ZGlmZiAtLWdpdCBhL1VQU1RSRUFNX1JFVklTSU9OIGIvVVBTVFJFQU1fUkVWSVNJT04KaW5kZXggZmNlYzcyNy4uNDYzYjAxMyAxMDA2NDQKLS0tIGEvVVBTVFJFQU1fUkVWSVNJT04KKysrIGIvVVBTVFJFQU1fUkVWSVNJT04KQEAgLTEgKzEgQEAKLTk4YmI4MTllNzhjY2ZkOGRiMGU5YzA4YzRiZjkxZDFmYWIxNjJhYjgKK2E3ZjFjMWIzYWJlY2ZjYzY0Yzc1NjFjZTkzM2U0MDZmNGQ0N2JjN2IKZGlmZiAtLWdpdCBhL3ByZWZpeC5odG1sIGIvcHJlZml4Lmh0bWwKaW5kZXggMTQxOWYzMC4uMWMwMjcwZiAxMDA2NDQKLS0tIGEvcHJlZml4Lmh0bWwKKysrIGIvcHJlZml4Lmh0bWwKQEAgLTUsNTUgKzUsNjUgQEAKIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CiA8dGl0bGU+QW5kcm9pZCBTeXN0ZW0gVHJhY2U8L3RpdGxlPgogPHN0eWxlPgotICBodG1sLCBib2R5IHsKLSAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgbWFyZ2luOiAwcHg7Ci0gICAgcGFkZGluZzogMDsKLSAgICB3aWR0aDogMTAwJTsKKyAgaHRtbCwKKyAgYm9keSB7CiAgICAgaGVpZ2h0OiAxMDAlOwogICB9Ci0gIGJvZHkgPiB4LXRpbWVsaW5lLXZpZXcgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwJTsKKworICBib2R5IHsKKyAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIG1hcmdpbjogMDsKKyAgICBwYWRkaW5nOiAwOworICB9CisKKyAgYm9keSA+IHRyLXVpLXRpbWVsaW5lLXZpZXcgeworICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgICAgbWluLWhlaWdodDogMDsKKyAgfQorICBib2R5ID4gdHItdWktdGltZWxpbmUtdmlldzpmb2N1cyB7CisgICAgb3V0bGluZTogbm9uZTsKICAgfQogPC9zdHlsZT4KIHt7U1lTVFJBQ0VfVFJBQ0VfVklFV0VSX0hUTUx9fQotPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+Ci1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7Ci0gIHZhciB0cmFjZVZpZXdlckVsID0gbmV3IHRyLlRyYWNlVmlld2VyKCk7Ci0gIHRyYWNlVmlld2VyRWwudmlld1RpdGxlID0gJ0FuZHJvaWQgU3lzdGVtIFRyYWNlJzsKLSAgdmFyIHZpZXdJbnNlcnRpb25QdCA9IGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcignI3RyYWNlLXZpZXdlci1pbnNlcnRpb24tcHQnKTsKLSAgdmlld0luc2VydGlvblB0LnBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkKHRyYWNlVmlld2VyRWwsIHZpZXdJbnNlcnRpb25QdCk7Ci0KLSAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLQotICB2YXIgdHJhY2VEYXRhRWxzID0gZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKCcudHJhY2UtZGF0YScpOwotICB2YXIgdHJhY2VzID0gW107Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgdHJhY2VEYXRhRWxzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdHJhY2VUZXh0ID0gdHJhY2VEYXRhRWxzW2ldLnRleHRDb250ZW50OwotICAgIC8vIFJlbW92ZSB0aGUgbGVhZGluZyBuZXdsaW5lLgotICAgIHRyYWNlVGV4dCA9IHRyYWNlVGV4dC5zdWJzdHJpbmcoMSk7Ci0gICAgdHJhY2VzLnB1c2godHJhY2VUZXh0KTsKLSAgfQotCi0gIHZhciBwID0gbS5pbXBvcnRUcmFjZXNXaXRoUHJvZ3Jlc3NEaWFsb2codHJhY2VzLCB0cnVlKTsKLSAgcC50aGVuKAotICAgIGZ1bmN0aW9uKCkgewotICAgICAgdHJhY2VWaWV3ZXJFbC5tb2RlbCA9IG07Ci0gICAgICB0cmFjZVZpZXdlckVsLnRhYkluZGV4ID0gMTsKLSAgICAgIGlmICh0cmFjZVZpZXdlckVsLnRpbWVsaW5lKQotICAgICAgICB0cmFjZVZpZXdlckVsLnRpbWVsaW5lLmZvY3VzRWxlbWVudCA9IHRyYWNlVmlld2VyRWw7Ci0gICAgfSwKLSAgICBmdW5jdGlvbihlcnIpIHsKLSAgICAgIHZhciBvdmVybGF5ID0gbmV3IHRyLmIudWkuT3ZlcmxheSgpOwotICAgICAgb3ZlcmxheS50ZXh0Q29udGVudCA9IHRyLmIubm9ybWFsaXplRXhjZXB0aW9uKGVycikubWVzc2FnZTsKLSAgICAgIG92ZXJsYXkudGl0bGUgPSAnSW1wb3J0IGVycm9yJzsKLSAgICAgIG92ZXJsYXkudmlzaWJsZSA9IHRydWU7Ci0gICAgfSk7Ci19KTsKLTwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci0gIDxkaXYgaWQ9InRyYWNlLXZpZXdlci1pbnNlcnRpb24tcHQiPgotICA8L2Rpdj4KKyAgPHRyLXVpLXRpbWVsaW5lLXZpZXc+CisgICAgPHRyYWNrLXZpZXctY29udGFpbmVyIGlkPSd0cmFja192aWV3X2NvbnRhaW5lcic+PC90cmFjay12aWV3LWNvbnRhaW5lcj4KKyAgPC90ci11aS10aW1lbGluZS12aWV3PgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgdmFyIHRpbWVsaW5lVmlld0VsOworCisgIGZ1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICB0aW1lbGluZVZpZXdFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RyLXVpLXRpbWVsaW5lLXZpZXcnKTsKKyAgICB0aW1lbGluZVZpZXdFbC5nbG9iYWxNb2RlID0gdHJ1ZTsKKworICAgIHZhciB0cmFjZURhdGFFbHMgPSBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJy50cmFjZS1kYXRhJyk7CisgICAgdmFyIHRyYWNlcyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJhY2VEYXRhRWxzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgdHJhY2VUZXh0ID0gdHJhY2VEYXRhRWxzW2ldLnRleHRDb250ZW50OworICAgICAgLy8gUmVtb3ZlIHRoZSBsZWFkaW5nIG5ld2xpbmUuCisgICAgICB0cmFjZVRleHQgPSB0cmFjZVRleHQuc3Vic3RyaW5nKDEpOworICAgICAgdHJhY2VzLnB1c2godHJhY2VUZXh0KTsKKyAgICB9CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwID0gbS5pbXBvcnRUcmFjZXNXaXRoUHJvZ3Jlc3NEaWFsb2codHJhY2VzLCB0cnVlKTsKKyAgICBwLnRoZW4oCisgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgdGltZWxpbmVWaWV3RWwubW9kZWwgPSBtOworICAgICAgICB0aW1lbGluZVZpZXdFbC51cGRhdGVEb2N1bWVudEZhdmljb24oKTsKKyAgICAgICAgdGltZWxpbmVWaWV3RWwuZ2xvYmFsTW9kZSA9IHRydWU7CisgICAgICAgIHRpbWVsaW5lVmlld0VsLnZpZXdUaXRsZSA9ICdBbmRyb2lkIFN5c3RlbSBUcmFjZSc7CisgICAgICB9LAorICAgICAgZnVuY3Rpb24oZXJyKSB7CisgICAgICAgIHZhciBvdmVybGF5ID0gbmV3IHRyLnVpLmIuT3ZlcmxheSgpOworICAgICAgICBvdmVybGF5LnRleHRDb250ZW50ID0gdHIuYi5ub3JtYWxpemVFeGNlcHRpb24oZXJyKS5tZXNzYWdlOworICAgICAgICBvdmVybGF5LnRpdGxlID0gJ0ltcG9ydCBlcnJvcic7CisgICAgICAgIG92ZXJsYXkudmlzaWJsZSA9IHRydWU7CisgICAgICB9KTsKKyAgfQorICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uTG9hZCk7CisgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvc3lzdHJhY2VfdHJhY2Vfdmlld2VyLmh0bWwgYi9zeXN0cmFjZV90cmFjZV92aWV3ZXIuaHRtbAppbmRleCBiYmY2ZmIzLi4wOTk4YmEzIDEwMDY0NAotLS0gYS9zeXN0cmFjZV90cmFjZV92aWV3ZXIuaHRtbAorKysgYi9zeXN0cmFjZV90cmFjZV92aWV3ZXIuaHRtbApAQCAtMSw5ICsxLDQgQEAKLTxzdHlsZT4KLSogL2RlZXAvIC5sYWJlbGVkLWNoZWNrYm94IHsKLSAgZGlzcGxheTogZmxleDsKLSAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKLX0KLTwvc3R5bGU+PHRlbXBsYXRlIGlkPSJvdmVybGF5LXRlbXBsYXRlIj4KKzx0ZW1wbGF0ZSBpZD0ib3ZlcmxheS10ZW1wbGF0ZSI+CiA8c3R5bGU+CiAgICAgb3ZlcmxheS1tYXNrIHsKICAgICAgIGxlZnQ6IDA7CkBAIC0xMDAsNzAgKzk1LDEyIEBACiA8L292ZXJsYXktZnJhbWU+CiA8L292ZXJsYXktdmVydGljYWwtY2VudGVyaW5nLWNvbnRhaW5lcj4KIDwvb3ZlcmxheS1tYXNrPgotPC90ZW1wbGF0ZT48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdWktZHJvcGRvd24iPgotPHRlbXBsYXRlPgotPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgICNvdXRlciB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleDogMCAwIGF1dG87Ci0gICAgICBwYWRkaW5nOiAxcHggNHB4IDFweCA0cHg7Ci0gICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKLSAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICBjdXJzb3I6IGRlZmF1bHQ7Ci0gICAgfQotCi0gICAgI3N0YXRlIHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIG1hcmdpbi1sZWZ0OiAycHg7Ci0gICAgICBtYXJnaW4tcmlnaHQ6IDBweDsKLSAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgIH0KLQotICAgICNpY29uIHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgIH0KLSAgICBkaWFsb2cgewotICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgcGFkZGluZzogMDsKLSAgICAgIGJvcmRlcjogMDsKLSAgICAgIG1hcmdpbjogMDsKLSAgICB9Ci0gICAgZGlhbG9nOjpiYWNrZHJvcCB7Ci0gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4wNSk7Ci0gICAgfQotCi0gICAgI2RpYWxvZy1mcmFtZSB7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICAgIHBhZGRpbmc6IDZweDsKLSAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwotICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAgIGN1cnNvcjogZGVmYXVsdDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLTxkaXYgaWQ9Im91dGVyIj4KLTxkaXYgaWQ9Imljb24iPiYjOTg4MTs8L2Rpdj4KLTxkaXYgaWQ9InN0YXRlIj4mIzk2NjI7PC9kaXY+Ci08L2Rpdj4KLTxkaWFsb2cgaWQ9ImRpYWxvZyI+Ci08ZGl2IGlkPSJkaWFsb2ctZnJhbWUiPgotPGNvbnRlbnQ+PC9jb250ZW50PgotPC9kaXY+Ci08L2RpYWxvZz4KLTwvdGVtcGxhdGU+Ci0KLTwvcG9seW1lci1lbGVtZW50PjxzdHlsZT4KLSogL2RlZXAvIHgtZHJhZy1oYW5kbGV7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmJsb2NrfSogL2RlZXAvIHgtZHJhZy1oYW5kbGUuaG9yaXpvbnRhbC1kcmFnLWhhbmRsZXtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLDAgMCwwIDEwMCUsZnJvbSgjRTVFNUU1KSx0bygjRDFEMUQxKSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzhlOGU4ZTtib3JkZXItdG9wOjFweCBzb2xpZCB3aGl0ZTtjdXJzb3I6bnMtcmVzaXplO2hlaWdodDo3cHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMH0qIC9kZWVwLyB4LWRyYWctaGFuZGxlLnZlcnRpY2FsLWRyYWctaGFuZGxle2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsMCAwLDEwMCUgMCxmcm9tKCNFNUU1RTUpLHRvKCNEMUQxRDEpKTtib3JkZXItbGVmdDoxcHggc29saWQgd2hpdGU7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOGU4ZThlO2N1cnNvcjpldy1yZXNpemU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6N3B4O3otaW5kZXg6MTB9Ci08L3N0eWxlPjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHJhY2luZy1hbmFseXNpcy10YWItdmlldyIgY29uc3RydWN0b3I9IlRyYWNpbmdBbmFseXNpc1RhYlZpZXciPgorPC90ZW1wbGF0ZT48c3R5bGU+CisqIC9kZWVwLyAubGFiZWxlZC1jaGVja2JveCB7CisgIGRpc3BsYXk6IGZsZXg7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9Cis8L3N0eWxlPjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS10YWItdmlldyIgY29uc3RydWN0b3I9IlRyYWNpbmdBbmFseXNpc1RhYlZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgICAgOmhvc3QgewpAQCAtMjQ5LDMwICsxODYsOSBAQAogPC90YWJzLWNvbnRlbnQtY29udGFpbmVyPgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc3ViLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuIj4KLTx0ZW1wbGF0ZT4KLTxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgfQotICAgICN3YXJuaW5nIHsKLSAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7Ci0gICAgICBmb250LXNpemU6IDY2JTsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLTxzcGFuIGlkPSJjb250ZW50Ij48L3NwYW4+Ci08c3BhbiBpZD0id2FybmluZyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+JiM5ODg4Ozwvc3Bhbj4KLTwvdGVtcGxhdGU+Ci0KLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYi11LXRpbWUtc3RhbXAtc3BhbiI+Ci08dGVtcGxhdGU+Ci08L3RlbXBsYXRlPgotCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1hbmFseXNpcy1saW5rIiBpcz0iYSI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtYW5hbHlzaXMtbGluayIgaXM9ImEiIG9uLWNsaWNrPSJ7e29uQ2xpY2tlZF99fSIgb24tbW91c2VlbnRlcj0ie3tvbk1vdXNlRW50ZXJffX0iIG9uLW1vdXNlbGVhdmU9Int7b25Nb3VzZUxlYXZlX319Ij4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CkBAIC0yOTIsMTkgKzIwOCw3IEBACiA8Y29udGVudD48L2NvbnRlbnQ+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdS1zaXplLWluLWJ5dGVzLXNwYW4iPgotPHRlbXBsYXRlPgotPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwotICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLTxzcGFuIGlkPSJjb250ZW50Ij48L3NwYW4+Ci08L3RlbXBsYXRlPgotCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdWktdGFibGUiPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLXRhYmxlIj4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICAgIDpob3N0IHsKQEAgLTMzMywxMCArMjM3LDYgQEAKICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCByZ2JhKDAsMCwwLDAuMSk7CiAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwOwogICAgICAgfQotICAgICAgdHJbc2VsZWN0ZWRdLAotICAgICAgdGRbc2VsZWN0ZWRdIHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMywgMTk5LCAxNjUpOwotICAgICAgfQogCiAgICAgICBidXR0b24udG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgIGhlaWdodDogMTVweDsKQEAgLTM3NiwxNSArMjc2LDM1IEBACiAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgfQogCi0gICAgICB0YWJsZSA+IHRib2R5LnJvdy1zZWxlY3Rpb24tbW9kZSA+IHRyOmhvdmVyW3NlbGVjdGVkXSwKLSAgICAgIHRhYmxlID4gdGJvZHkuY2VsbC1zZWxlY3Rpb24tbW9kZSA+IHRyID4gdGQ6aG92ZXJbc2VsZWN0ZWRdIHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MSwgMjE3LCAyMDIpOworICAgICAgLyogU2VsZWN0aW9uLiAqLworICAgICAgdGFibGUgPiB0Ym9keS5yb3ctc2VsZWN0aW9uLW1vZGUgPiB0cltzZWxlY3RlZF0sCisgICAgICB0YWJsZSA+IHRib2R5LmNlbGwtc2VsZWN0aW9uLW1vZGUgPiB0ciA+IHRkW3NlbGVjdGVkXSB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDMsIDE5OSwgMTY1KTsgIC8qIHR1cnF1b2lzZSAqLwogICAgICAgfQotICAgICAgdGFibGUgPiB0Ym9keS5yb3ctc2VsZWN0aW9uLW1vZGUgPiB0cjpob3Zlcjpub3QoLmVtcHR5LXJvdyksCi0gICAgICB0YWJsZSA+IHRib2R5LmNlbGwtc2VsZWN0aW9uLW1vZGUgPiB0cjpub3QoLmVtcHR5LXJvdykgPgotICAgICAgICAgIHRkLnN1cHBvcnRzLXNlbGVjdGlvbjpob3ZlciwKKyAgICAgIHRhYmxlID4gdGJvZHkuY2VsbC1zZWxlY3Rpb24tbW9kZS5yb3ctaGlnaGxpZ2h0LWVuYWJsZWQgPgorICAgICAgICAgIHRyLmhpZ2hsaWdodGVkLXJvdyB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTMsIDIzNiwgMjI5KTsgIC8qIGxpZ2h0IHR1cnF1b2lzZSAqLworICAgICAgfQorCisgICAgICAvKiBIb3Zlci4gKi8KKyAgICAgIHRhYmxlID4gdGJvZHkucm93LXNlbGVjdGlvbi1tb2RlID4KKyAgICAgICAgICB0cjpob3Zlcjpub3QoLmVtcHR5LXJvdyk6bm90KFtzZWxlY3RlZF0pLAorICAgICAgdGFibGUgPiB0Ym9keS5jZWxsLXNlbGVjdGlvbi1tb2RlID4KKyAgICAgICAgICB0cjpub3QoLmVtcHR5LXJvdyk6bm90KC5oaWdobGlnaHRlZC1yb3cpID4KKyAgICAgICAgICB0ZC5zdXBwb3J0cy1zZWxlY3Rpb246aG92ZXI6bm90KFtzZWxlY3RlZF0pLAogICAgICAgdGFibGUgPiB0Zm9vdCA+IHRyOmhvdmVyIHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNgorICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyAgLyogZ3JleSAqLworICAgICAgfQorICAgICAgdGFibGUgPiB0Ym9keS5jZWxsLXNlbGVjdGlvbi1tb2RlLnJvdy1oaWdobGlnaHQtZW5hYmxlZCA+CisgICAgICAgICAgdHI6aG92ZXI6bm90KC5lbXB0eS1yb3cpOm5vdCguaGlnaGxpZ2h0ZWQtcm93KSB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjY7ICAvKiBsaWdodCBncmV5ICovCisgICAgICB9CisKKyAgICAgIC8qIEhvdmVyIG9uIHNlbGVjdGVkIGFuZCBoaWdobGlnaHRlZCBlbGVtZW50cy4gKi8KKyAgICAgIHRhYmxlID4gdGJvZHkucm93LXNlbGVjdGlvbi1tb2RlID4gdHI6aG92ZXJbc2VsZWN0ZWRdLAorICAgICAgdGFibGUgPiB0Ym9keS5jZWxsLXNlbGVjdGlvbi1tb2RlID4gdHIgPiB0ZDpob3ZlcltzZWxlY3RlZF0sCisgICAgICB0YWJsZSA+IHRib2R5LmNlbGwtc2VsZWN0aW9uLW1vZGUgPiB0ci5oaWdobGlnaHRlZC1yb3cgPiB0ZDpob3ZlciB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzEsIDIxNywgMjAyKTsgIC8qIHNlbWktbGlnaHQgdHVycXVvaXNlICovCiAgICAgICB9CiAKICAgICAgIHRhYmxlID4gdGJvZHkgPiB0ci5lbXB0eS1yb3cgPiB0ZCB7CkBAIC00MjUsNyArMzQ1LDcgQEAKIDwvdGVtcGxhdGU+CiAKIDwvcG9seW1lci1lbGVtZW50PgotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1iLXVpLXRhYmxlLWhlYWRlci1jZWxsIiBvbi10YXA9Im9uVGFwXyI+Cis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWItdGFibGUtaGVhZGVyLWNlbGwiIG9uLXRhcD0ib25UYXBfIj4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CkBAIC00NTEsNyArMzcxLDU2IEBACiA8c3BhbiBpZD0idGl0bGUiPjwvc3Bhbj48c2lkZS1lbGVtZW50IGlkPSJzaWRlIj48L3NpZGUtZWxlbWVudD4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXciIGlzPSJIVE1MVW5rbm93bkVsZW1lbnQiPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS11LXNpemUtaW4tYnl0ZXMtc3BhbiI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIH0KKyAgICA8L3N0eWxlPgorPHNwYW4gaWQ9ImNvbnRlbnQiPjwvc3Bhbj4KKzwvdGVtcGxhdGU+CisKKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4iPgorPHRlbXBsYXRlPgorPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAgICAjY29udGVudC5yaWdodC1hbGlnbiB7CisgICAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAgICAjc3BhcmtsaW5lIHsKKyAgICAgIHdpZHRoOiAwJTsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGJvdHRvbTogMDsKKyAgICAgIHJpZ2h0OiAwOworICAgICAgZGlzcGxheTogbm9uZTsKKyAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTYsIDEwMCUsIDk0LjUlKTsKKyAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgaHNsKDIxNiwgMTAwJSwgODklKTsKKyAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQorICAgICN3YXJuaW5nIHsKKyAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CisgICAgICBmb250LXNpemU6IDY2JTsKKyAgICB9CisgICAgPC9zdHlsZT4KKzxzcGFuIGlkPSJzcGFya2xpbmUiPjwvc3Bhbj4KKzxzcGFuIGlkPSJjb250ZW50Ij48L3NwYW4+Cis8c3BhbiBpZD0id2FybmluZyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+JiM5ODg4Ozwvc3Bhbj4KKzwvdGVtcGxhdGU+CisKKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktdS10aW1lLXN0YW1wLXNwYW4iPgorPHRlbXBsYXRlPgorPC90ZW1wbGF0ZT4KKworPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXciIGlzPSJIVE1MVW5rbm93bkVsZW1lbnQiPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTQ2NCw3ICs0MzMsNyBAQAogPC90ZW1wbGF0ZT4KIAogPC9wb2x5bWVyLWVsZW1lbnQ+Ci08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3LXdpdGgtbGFiZWwiIGlzPSJIVE1MVW5rbm93bkVsZW1lbnQiPgorPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXctd2l0aC1sYWJlbCIgaXM9IkhUTUxVbmtub3duRWxlbWVudCI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtNDczLDcgKzQ0Miw3IEBACiAgICAgPC9zdHlsZT4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXN0YWNrLWZyYW1lIj4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zdGFjay1mcmFtZSI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtNDgyLDExICs0NTEsMTAgQEAKICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgfQogICAgIDwvc3R5bGU+Ci08dHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcgaWQ9Im92Ij4KLTwvdHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXc+Cis8dHItdWktYi10YWJsZSBpZD0idGFibGUiPjwvdHItdWktYi10YWJsZT4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTQ5OCwxMSArNDY2LDExIEBACiAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgIH0KICAgICA8L3N0eWxlPgotPHRyLWItdWktdGFibGUgaWQ9InRhYmxlIj4KLTwvdHItYi11aS10YWJsZT4KKzx0ci11aS1iLXRhYmxlIGlkPSJ0YWJsZSI+Cis8L3RyLXVpLWItdGFibGU+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1yZWxhdGVkLWV2ZW50cyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtcmVsYXRlZC1ldmVudHMiPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTUxNCwxMCArNDgyLDEwIEBACiAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgIH0KICAgICA8L3N0eWxlPgotPHRyLWItdWktdGFibGUgaWQ9InRhYmxlIj48L3RyLWItdWktdGFibGU+Cis8dHItdWktYi10YWJsZSBpZD0idGFibGUiPjwvdHItdWktYi10YWJsZT4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS10aHJlYWQtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLXRocmVhZC1zbGljZS1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtNTMwLDE0ICs0OTgsMTQgQEAKICAgICB9CiAKICAgICA8L3N0eWxlPgotPHRyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcgaWQ9ImNvbnRlbnQiPjwvdHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldz4KKzx0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldyBpZD0iY29udGVudCI+PC90ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldz4KIDxkaXYgaWQ9ImV2ZW50cyI+Ci08dHItYy1hLXJlbGF0ZWQtZXZlbnRzIGlkPSJyZWxhdGVkRXZlbnRzIj4KLTwvdHItYy1hLXJlbGF0ZWQtZXZlbnRzPgorPHRyLXVpLWEtcmVsYXRlZC1ldmVudHMgaWQ9InJlbGF0ZWRFdmVudHMiPgorPC90ci11aS1hLXJlbGF0ZWQtZXZlbnRzPgogPC9kaXY+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZSI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2VsZWN0aW9uLXN1bW1hcnktdGFibGUiPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTU0OCwxMSArNTE2LDExIEBACiAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgIH0KICAgICA8L3N0eWxlPgotPHRyLWItdWktdGFibGUgaWQ9InRhYmxlIj4KLTwvdHItYi11aS10YWJsZT4KKzx0ci11aS1iLXRhYmxlIGlkPSJ0YWJsZSI+Cis8L3RyLXVpLWItdGFibGU+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlIj4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlIj4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CkBAIC01NjMsMTEgKzUzMSwxMSBAQAogICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICB9CiAgICAgPC9zdHlsZT4KLTx0ci1iLXVpLXRhYmxlIGlkPSJ0YWJsZSI+Ci08L3RyLWItdWktdGFibGU+Cis8dHItdWktYi10YWJsZSBpZD0idGFibGUiPgorPC90ci11aS1iLXRhYmxlPgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZSI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZSI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtNTg3LDEzICs1NTUsMTMgQEAKICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICB9CiAgICAgPC9zdHlsZT4KLTx0ci1iLXVpLXRhYmxlIGlkPSJ0aXRsZXRhYmxlIj4KLTwvdHItYi11aS10YWJsZT4KLTx0ci1iLXVpLXRhYmxlIGlkPSJ0YWJsZSI+Ci08L3RyLWItdWktdGFibGU+Cis8dHItdWktYi10YWJsZSBpZD0idGl0bGV0YWJsZSI+Cis8L3RyLXVpLWItdGFibGU+Cis8dHItdWktYi10YWJsZSBpZD0idGFibGUiPgorPC90ci11aS1iLXRhYmxlPgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTYxMCwxMSArNTc4LDExIEBACiAgICAgICBmbGV4OiAwIDAgYXV0bzsKICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgfQotICAgIHRyLWMtYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlIHsKKyAgICB0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUgewogICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7CiAgICAgfQogCi0gICAgdHItYy1hLXNlbGVjdGlvbi1zdW1tYXJ5LXRhYmxlICB7CisgICAgdHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZSAgewogICAgICAgbWFyZ2luLXRvcDogMS4yNWVtOwogICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhYWE7CiAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwpAQCAtNjI2LDcgKzU5NCw3IEBACiA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLXRocmVhZC1zbGljZS1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS10aHJlYWQtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTYzNiwyNiArNjA0LDI3IEBACiAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgfQotICAgICNjb250ZW50ID4gdHItYy1hLXJlbGF0ZWQtZXZlbnRzIHsKKyAgICAjY29udGVudCA+IHRyLXVpLWEtcmVsYXRlZC1ldmVudHMgewogICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKKyAgICAgIGZsZXg6IDAgMSAyMDBweDsKICAgICB9CiAgICAgPC9zdHlsZT4KIDxkaXYgaWQ9ImNvbnRlbnQiPjwvZGl2PgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtYXN5bmMtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Ij4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktYXN5bmMtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktYXN5bmMtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgfQogICAgIDwvc3R5bGU+Ci08dHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldz4KKzx0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXc+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zaW5nbGUtY3B1LXNsaWNlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1jcHUtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIHRhYmxlIHsKQEAgLTY5NSwxMCArNjY0LDE4IEBACiA8dGQ+UnVubmluZyB0aHJlYWQ6PC90ZD48dGQgaWQ9InRocmVhZC1uYW1lIj48L3RkPgogPC90cj4KIDx0cj4KLTx0ZD5TdGFydDo8L3RkPjx0ZCBpZD0ic3RhcnQiPjwvdGQ+Cis8dGQ+U3RhcnQ6PC90ZD4KKzx0ZD4KKzx0ci11aS11LXRpbWUtc3RhbXAtc3BhbiBpZD0ic3RhcnQiPgorPC90ci11aS11LXRpbWUtc3RhbXAtc3Bhbj4KKzwvdGQ+CiA8L3RyPgogPHRyPgotPHRkPkR1cmF0aW9uOjwvdGQ+PHRkIGlkPSJkdXJhdGlvbiI+PC90ZD4KKzx0ZD5EdXJhdGlvbjo8L3RkPgorPHRkPgorPHRyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuIGlkPSJkdXJhdGlvbiI+Cis8L3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuPgorPC90ZD4KIDwvdHI+CiA8dHI+CiA8dGQ+QWN0aXZlIHNsaWNlczo8L3RkPjx0ZCBpZD0icnVubmluZy10aHJlYWQiPjwvdGQ+CkBAIC03MDYsMTQgKzY4MywxNCBAQAogPHRyPgogPHRkPkFyZ3M6PC90ZD4KIDx0ZD4KLTx0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldyBpZD0iYXJncyI+Ci08L3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3PgorPHRyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldyBpZD0iYXJncyI+Cis8L3RyLXVpLWEtZ2VuZXJpYy1vYmplY3Qtdmlldz4KIDwvdGQ+CiA8L3RyPgogPC90YWJsZT4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLWNwdS1zbGljZS1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1jcHUtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTcyMywxMCArNzAwLDEwIEBACiAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICB9CiAgICAgPC9zdHlsZT4KLTx0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcgaWQ9ImNvbnRlbnQiPjwvdHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3PgorPHRyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcgaWQ9ImNvbnRlbnQiPjwvdHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldz4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIHRhYmxlIHsKQEAgLTc3MCwxMCArNzQ3LDE4IEBACiA8dGQ+PGI+PHNwYW4gaWQ9InN0YXRlIj48L3NwYW4+PC9iPjwvdGQ+CiA8L3RyPgogPHRyPgotPHRkPlN0YXJ0OjwvdGQ+PHRkIGlkPSJzdGFydCI+PC90ZD4KKzx0ZD5TdGFydDo8L3RkPgorPHRkPgorPHRyLXVpLXUtdGltZS1zdGFtcC1zcGFuIGlkPSJzdGFydCI+Cis8L3RyLXVpLXUtdGltZS1zdGFtcC1zcGFuPgorPC90ZD4KIDwvdHI+CiA8dHI+Ci08dGQ+RHVyYXRpb246PC90ZD48dGQgaWQ9ImR1cmF0aW9uIj48L3RkPgorPHRkPkR1cmF0aW9uOjwvdGQ+Cis8dGQ+Cis8dHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4gaWQ9ImR1cmF0aW9uIj4KKzwvdHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4+Cis8L3RkPgogPC90cj4KIDx0cj4KIDx0ZD5PbiBDUFU6PC90ZD48dGQgaWQ9Im9uLWNwdSI+PC90ZD4KQEAgLTc4Nyw3ICs3NzIsNyBAQAogPC90YWJsZT4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CkBAIC03OTcsMTAgKzc4MiwxMCBAQAogICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgfQogICAgIDwvc3R5bGU+Ci08dHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldz4KKzx0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXc+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zaW5nbGUtaW5zdGFudC1ldmVudC1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtaW5zdGFudC1ldmVudC1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtODEwLDcgKzc5NSw3IEBACiA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLWluc3RhbnQtZXZlbnQtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktaW5zdGFudC1ldmVudC1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtODIwLDIzICs4MDUsMjkgQEAKIDxkaXYgaWQ9ImNvbnRlbnQiPjwvZGl2PgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHN0eWxlPgotLmFuYWx5c2lzLWhlYWRlcntmb250LXdlaWdodDpib2xkfS5hbmFseXNpcy1yZXN1bHRze2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTt3aGl0ZS1zcGFjZTpwcmV9LmFuYWx5c2lzLXJlc3VsdHMgKnstd2Via2l0LXVzZXItc2VsZWN0OnRleHQhaW1wb3J0YW50O2N1cnNvcjp0ZXh0fS5hbmFseXNpcy10YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLXdpZHRoOjA7bWFyZ2luLWJvdHRvbToyNXB4O3dpZHRoOjEwMCV9LmFuYWx5c2lzLXRhYmxlIHRyPnRkOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoycHh9LmFuYWx5c2lzLXRhYmxlIHRyPnRke3BhZGRpbmc6MnB4IDRweCAycHggNHB4O3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wO3dpZHRoOjE1MHB4fS5hbmFseXNpcy10YWJsZSB0ZCB0ZHtwYWRkaW5nOjAgMCAwIDA7d2lkdGg6YXV0b30uYW5hbHlzaXMtdGFibGUtaGVhZGVye3RleHQtYWxpZ246bGVmdH0uYW5hbHlzaXMtdGFibGUtcm93e3ZlcnRpY2FsLWFsaWduOnRvcH0uYW5hbHlzaXMtdGFibGUtcm93Om50aC1jaGlsZCgybiswKXtiYWNrZ3JvdW5kLWNvbG9yOiNlMmUyZTJ9LmFuYWx5c2lzLXRhYmxlLXJvdy1pbnZlcnRlZDpudGgtY2hpbGQoMm4rMSl7YmFja2dyb3VuZC1jb2xvcjojZTJlMmUyfS5zZWxlY3Rpb24tY2hhbmdpbmctbGlua3tjb2xvcjotd2Via2l0LWxpbms7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uYW5hbHlzaXMtdGFibGUgdGhlYWR7YmFja2dyb3VuZC1jb2xvcjojZTJlMmUyO2ZvbnQtd2VpZ2h0OmJvbGR9LmFuYWx5c2lzLXRhYmxlIHRmb290e2ZvbnQtd2VpZ2h0OmJvbGR9Ci08L3N0eWxlPjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKzx0ZW1wbGF0ZT4KKzxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICB9CisgICAgPC9zdHlsZT4KKzx0ci11aS1iLXRhYmxlIGlkPSJ0YWJsZSI+PC90ci11aS1iLXRhYmxlPgorPC90ZW1wbGF0ZT4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXciPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldyI+Ci0KLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLWZsb3ctZXZlbnQtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktZmxvdy1ldmVudC1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewogICAgICAgZGlzcGxheTogZmxleDsKICAgICB9CiAgICAgPC9zdHlsZT4KLTx0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcgaWQ9ImNvbnRlbnQiPjwvdHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3PgorPHRyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcgaWQ9ImNvbnRlbnQiPjwvdHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldz4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1vYmplY3QtaW5zdGFuY2Utc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLW9iamVjdC1pbnN0YW5jZS1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtODcwLDcgKzg2MSw3IEBACiA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1vYmplY3Qtc25hcHNob3Qtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLW9iamVjdC1zbmFwc2hvdC1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgI2FyZ3MgewpAQCAtODgyLDE3ICs4NzMsMTcgQEAKICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgfQogCi0gICAgKiB7CisgICAgOjpjb250ZW50ICogewogICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgICB9CiAKLSAgICAudGl0bGUgeworICAgIDo6Y29udGVudCAudGl0bGUgewogICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxMjgsIDEyOCwgMTI4KTsKICAgICAgIGZvbnQtc2l6ZTogMTEwJTsKICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgIH0KIAotICAgIHRkLCB0aCB7CisgICAgOjpjb250ZW50IHRkLCB0aCB7CiAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICB9CkBAIC05MDAsMjcgKzg5MSwyNyBAQAogPGNvbnRlbnQ+PC9jb250ZW50PgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktb2JqZWN0LXN1Yi12aWV3IiBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLW9iamVjdC1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewogICAgICAgZGlzcGxheTogZmxleDsKICAgICB9CiAgICAgPC9zdHlsZT4KLTx0ci1iLXVpLXRhYmxlIGlkPSJjb250ZW50Ij48L3RyLWItdWktdGFibGU+Cis8dHItdWktYi10YWJsZSBpZD0iY29udGVudCI+PC90ci11aS1iLXRhYmxlPgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLXNhbXBsZS1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtc2FtcGxlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CiAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgIH0KICAgICA8L3N0eWxlPgotPHRyLWItdWktdGFibGUgaWQ9ImNvbnRlbnQiPjwvdHItYi11aS10YWJsZT4KKzx0ci11aS1iLXRhYmxlIGlkPSJjb250ZW50Ij48L3RyLXVpLWItdGFibGU+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1zYW1wbGUtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktc2FtcGxlLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CkBAIC05MzAsMTEgKzkyMSwxMSBAQAogPGRpdiBpZD0iY29udGVudCI+PC9kaXY+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zaW5nbGUtaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1pbnRlcmFjdGlvbi1yZWNvcmQtc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1pbnRlcmFjdGlvbi1yZWNvcmQtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtYWxlcnQtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtYWxlcnQtc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTk0NiwxMSArOTM3LDExIEBACiAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgIH0KICAgICA8L3N0eWxlPgotPHRyLWItdWktdGFibGUgaWQ9InRhYmxlIj4KLTwvdHItYi11aS10YWJsZT4KKzx0ci11aS1iLXRhYmxlIGlkPSJ0YWJsZSI+Cis8L3RyLXVpLWItdGFibGU+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zaW5nbGUtZnJhbWUtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLWZyYW1lLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CkBAIC05NjIsMTMgKzk1MywxMyBAQAogICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICB9CiAgICAgPC9zdHlsZT4KLTx0ci1jLWEtYWxlcnQtc3ViLXZpZXcgaWQ9ImFzdiI+Ci08L3RyLWMtYS1hbGVydC1zdWItdmlldz4KKzx0ci11aS1hLWFsZXJ0LXN1Yi12aWV3IGlkPSJhc3YiPgorPC90ci11aS1hLWFsZXJ0LXN1Yi12aWV3PgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktZnJhbWUtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktZnJhbWUtc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdWktY29sb3ItbGVnZW5kIj4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYi1jb2xvci1sZWdlbmQiPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTk4NCw3ICs5NzUsNyBAQAogPHNwYW4gaWQ9ImxhYmVsIj48L3NwYW4+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lIj4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lIj4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICAgIDpob3N0IHsKQEAgLTEwMjEsNyArMTAxMiw3IEBACiA8ZGl2IGlkPSJjb250ZW50cyI+PC9kaXY+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZSI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbWVtb3J5LWR1bXAtdm0tcmVnaW9ucy1kZXRhaWxzLXBhbmUiPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgICAgOmhvc3QgewpAQCAtMTA1OCw3ICsxMDQ5LDkgQEAKIDxkaXYgaWQ9ImNvbnRlbnRzIj48L2Rpdj4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW1lbW9yeS1kdW1wLW92ZXJ2aWV3LXBhbmUiPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLXZpZXctc3BlY2lmaWMtYnJ1c2hpbmctc3RhdGUiPgorCis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZSI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgICA6aG9zdCB7CkBAIC0xMDgzLDEyICsxMDc2LDE0IEBACiAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgICB9CiAgICAgPC9zdHlsZT4KKzx0ci11aS1iLXZpZXctc3BlY2lmaWMtYnJ1c2hpbmctc3RhdGUgaWQ9InN0YXRlIiB2aWV3LWlkPSJhbmFseXNpcy5tZW1vcnlfZHVtcF9vdmVydmlld19wYW5lIj4KKzwvdHItdWktYi12aWV3LXNwZWNpZmljLWJydXNoaW5nLXN0YXRlPgogPGRpdiBpZD0ibGFiZWwiPk92ZXJ2aWV3PC9kaXY+Ci08dHItYi11aS10YWJsZSBpZD0idGFibGUiPgotPC90ci1iLXVpLXRhYmxlPgorPHRyLXVpLWItdGFibGUgaWQ9InRhYmxlIj4KKzwvdHItdWktYi10YWJsZT4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW1lbW9yeS1kdW1wLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW1lbW9yeS1kdW1wLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKQEAgLTExMDEsNDUgKzEwOTYsNjAgQEAKICAgICAgIGZsZXg6IDAgMCBhdXRvOwogICAgIH0KICAgICA8L3N0eWxlPgotPHRyLWMtYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lIGlkPSJvdmVydmlld19wYW5lIj4KLTwvdHItYy1hLW1lbW9yeS1kdW1wLW92ZXJ2aWV3LXBhbmU+Cis8dHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lIGlkPSJvdmVydmlld19wYW5lIj4KKzwvdHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lPgogPGRpdiBpZD0iZGV0YWlsc19wYW5lX2NvbnRhaW5lciI+CiA8L2Rpdj4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIDx0ZW1wbGF0ZT4KLTx0ci1jLWEtbWVtb3J5LWR1bXAtdmlldyBpZD0ibWVtb3J5X2R1bXBfdmlldyI+Ci08L3RyLWMtYS1tZW1vcnktZHVtcC12aWV3PgorPHRyLXVpLWEtbWVtb3J5LWR1bXAtdmlldyBpZD0ibWVtb3J5X2R1bXBfdmlldyI+Cis8L3RyLXVpLWEtbWVtb3J5LWR1bXAtdmlldz4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXciIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktcHJvY2Vzcy1tZW1vcnktZHVtcC1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewogICAgICAgZGlzcGxheTogZmxleDsKICAgICB9CiAgICAgPC9zdHlsZT4KLTx0ci1iLXVpLXRhYmxlIGlkPSJjb250ZW50Ij48L3RyLWItdWktdGFibGU+Cis8dHItdWktYi10YWJsZSBpZD0iY29udGVudCI+PC90ci11aS1iLXRhYmxlPgogPC90ZW1wbGF0ZT4KIAotPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLWdsb2JhbC1tZW1vcnktZHVtcC1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtZ2xvYmFsLW1lbW9yeS1kdW1wLXN1Yi12aWV3IiBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KIDx0ZW1wbGF0ZT4KLTx0ci1jLWEtbWVtb3J5LWR1bXAtdmlldyBpZD0ibWVtb3J5X2R1bXBfdmlldyI+Ci08L3RyLWMtYS1tZW1vcnktZHVtcC12aWV3PgorPHRyLXVpLWEtbWVtb3J5LWR1bXAtdmlldyBpZD0ibWVtb3J5X2R1bXBfdmlldyI+Cis8L3RyLXVpLWEtbWVtb3J5LWR1bXAtdmlldz4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLWdsb2JhbC1tZW1vcnktZHVtcC1zdWItdmlldyIgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXciIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgogPHRlbXBsYXRlPgogPHN0eWxlPgogICAgIDpob3N0IHsKICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgfQogICAgIDwvc3R5bGU+Ci08dHItYi11aS10YWJsZSBpZD0iY29udGVudCI+PC90ci1iLXVpLXRhYmxlPgorPHRyLXVpLWItdGFibGUgaWQ9ImNvbnRlbnQiPjwvdHItdWktYi10YWJsZT4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLWFuYWx5c2lzLXZpZXciPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLXBvd2VyLXNhbXBsZS1zdWItdmlldyIgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgfQorICAgICN0YWJsZSB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CisgICAgfQorICAgIDwvc3R5bGU+Cis8dHItdWktYi10YWJsZSBpZD0idGFibGUiPjwvdHItdWktYi10YWJsZT4KKzwvdGVtcGxhdGU+CisKKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1hbmFseXNpcy12aWV3Ij4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICAgIDpob3N0IHsKQEAgLTExNjIsMzcgKzExNzIsMjI0IEBACiA8L3RlbXBsYXRlPgogCiA8L3BvbHltZXItZWxlbWVudD48c3R5bGU+Ci0qIC9kZWVwLyAubW91c2UtbW9kZS1zZWxlY3Rvcnstd2Via2l0LXVzZXItZHJhZzplbGVtZW50Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kOiNEREQ7Ym9yZGVyOjFweCBzb2xpZCAjQkJCO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsMC4yKTtsZWZ0OmNhbGMoMTAwJSAtIDEyMHB4KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwcHg7dXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoyOXB4O3otaW5kZXg6MjB9KiAvZGVlcC8gLm1vdXNlLW1vZGUtaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUR3QUFBQ2hDQVlBQUFDYkJOenZBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJWMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBM0x6RTJMekV6Uk5FS1V3QUFBQngwUlZoMFUyOW1kSGRoY21VQVFXUnZZbVVnUm1seVpYZHZjbXR6SUVOVE51aThzb3dBQUE5YVNVUkJWSGljN1YxclRGdmwvLytVcmdVbVpXTXBiTGE2Y0xFcndwWXhrcUxHa2pBRzg4V1NibXVtR1VsbHZsbUFKY3RNUnR5YnZsSHJMWGlKVWVrTUladVlTQ0w1Z1MrRXVMSVhHRUdqcUNzbGxDRVc2eFFFQ2d6V0c3UzA1LytDL3prcDlMVG4wZ3NMNnljaDlKenpuT2R6UGoxOUx1ZjVQTi9uQ041OTkxM2l4UmRmUkZkWEZ4THgvMkdEZ0NBSVltcHFDb1dGaFVqRS80Y05hZSs5OXg0QUlGSC9IemFrN25EcUR1K3dPeXl3Mld6RWRsOUVNcEcyM1JlUWJLUUU3M1E4Y29KM2JmY0ZXSzFXL1BiYmIvRDcvVWhMaS8zN0R3YURFSXZGS0M4dlIwbEpTZGp4YlJWc3RWb3hQRHlNeHg5L0hBVUZCY2pNeklSQUlPQ2RYekFZaE52dGh0MXV4L0R3TUFDRWlkNVd3U01qSTNqeXlTZFJYRndNc1ZnTW9WQVlrMkNDSUpDWm1ZbnM3R3lNam81aVpHUWtQb0tYbDVleGQrOWUzaGRHSWhnTUlqOC9INW1abVJDSlJJeUN5UTVOSkJBRWdVQWdBS0ZRaUlLQ0Fpd3NMSVNsNFZ4b0hBNEgrdnY3NFhhN3VaNGFCcUZRaU96c2JJaEVJb2pGWW9qRllvaEVJdHEvOGZGeFhMbHlCVXRMU3hIVGhPYXhaODhlQ0lYQzJBV1BqNDhEQUg3OTlkZVlCYWVscFVFb0ZMTDYrK3FycndBQUgzendBYXYwWXJHWXRoTGtKSGg2ZWhwemMzTUFnUG41ZVV4UFQ4Y3NXaUFRTUpiYm9hRWhtTTFtQUlERllzSFEwQkR2UERrSnRsZ3NZZHQrdjU5TEZyeHcvZnIxc0cyWHk4VXJMMDZDNit2cnc3YkZZakV2WWk3NDdydnZ3cllsRWdtdnZEalYwZzZISStwMm9oQlAzcWgzMk9Gd29MZTNsMVZHdmIyOXNOdnR2QzhrRkNNakk5RHBkS3pTNm5RNm1Fd20xbm5UUGcvNy9YNk1qWTFoY25LUy9WWCtQL2J1M1l1eXNqTGs1dVl5cHYzNjY2OXg4dVJKWkdSa1FDUVN3ZXYxb3FPakF6MDlQWng1Q3dzTGNlblNKUncrZkJoK3Z4K3JxNnN3bVV4NDZhV1hOcVdqdmNNREF3Tzh4QUliblpLQmdRRmVOWGh6Y3pNdnNjQkdwNlM1dVJrLy92aGoxSFMwZ3JWYUxZcUxpM2tSeStWeTFOWFZSZTBSUmNLTkd6ZWcwV2g0OGFwVUtuUjFkYUc2dWpwcU90cEt5K1Z5UWExV282U2tCTGR2MzhhRkN4ZW9ZNTk4OGduMStmTGx5OVRuTDc3NEFwV1ZsWGppaVNmZ2REcXh0cmJHK2FKOVBoLzBlajNPbkRrRHZWNlBXN2R1VWNlT0hEbENmUjRkSGFVK3YvRENDN2gyN1JyVWFqV2NUaWRXVjFlamN0QUtKZ2dDS3lzcnlNek1oRTZudyt6c0xPM0pvZnQxT2gwZVBIaUFwYVVsZHVxaThCWVZGYUd2cjQ4VmIxOWZIeWZlcU0yU3orZGozUVRFczRsS0pDK25qc2ZXSm9wdGt4VXJ0alpSYkpzc09uQVNYRnRiRzNVN1VYanJyYmVpYm5NQko4RlpXVmtvS3lzREFCUVVGQ0FySzRzM01SY29GQXJxcmxaWFYwT2hVUERPaTVOZ244K0h3NGNQUXlxVjR0bG5uNFhQNStOTlRJSWdtSDBBbjgrSFYxNTVCVXFsRXErKytpb3Iza0FnUUx1Zjg0akgydG9hamg4L2p2WDFkYTZuMHNMajhTQWpJNE14SFVFUStQVFRUMW5sU1JBRUhqeDRRSHRzVzhlMFJDSVI3SFk3OXV6WkUvR09jRVVnRUVBZ0VNRGZmLzhOa1VnVWRueGJCUjg1Y2dSbXN4a0NnUUQ1K2ZrUmgyWFlJaEFJNFA3OSs1aWFtb0xENGNDeFk4ZkMwbXlyNEtlZWVnb0NnUUJXcXhWemMzTklTMHVMZWRReUdBeGkxNjVkS0M4dlIxRlJVVmlhbEh1NDA1RVN2TlB4eUFsT3VZZkpSTW85ZkZqZHczaUJxM3ZJQkRidTRiWUszdW9leHRLdEpFSDJ5V055RDhueUVHOHd1WWNmZnZnaGEzY3hydTZoM1c1SGYzOS9Rb3l6YUU2ZnlXUkNRME1EWitNc0x1N2g4dkl5ZW50N3NieTh6SWs4Vmt4TlRVR24wOEZtczhVbFAwNE5uOS92UjM5L2Y5dzhKTFp3dTkxb2JHems1Q0ZGQXErV2ZuaDRtREtvazRtV2xoYTB0cmJHbEFmdnJzM2s1Q1FHQmdhU1lvaUhvcWVuQjFldlhrMk9JYjRWRG9jREpwTXA2ZVhhWXJHZ3NiR1JWN21PdWZQcThYZ3dNRENROUhJOU56ZUhxMWV2Y2k3WHZEc2VVcWtVV3EwVzZlbnBDQWFEY0RxZDhIcTlmTE5qRGFWU2lSczNia0Fpa2ZEaTVYU0h4V0l4YW1wcUFBQUxDd3NZR2hyQzdPd3M1dWZuRXlwV0lwSEFZREFBQUNZbUpuRDkrblhldkp3RW56cDFDaktaREJVVkZRQ0FzYkd4cEpUZmp6NzZDRlZWVldocWFnSUFkSFIwOEc2WFdRdXVxYW5CN3QyNzRmVjZVVnBhaXV6c2JBQWJUenlKaE1GZ2dFS2hnTmZyUlgxOVBXUXlHUURBYURUeXlvK1Y0SnFhR3Noa01zcmljTGxjT0g3OE9JQ05DV3A4cDBjd3dXQXdvS3FxYWhQdkcyKzhBV0RqaSs3dTd1YWNKeXZCTXBrc3JLeGtaV1ZSMHlMR3hzWTRFN05CVlZWVkdLOUNvYUNtUlhSMGRIRE9rNVZndW9yQjUvT2hvcUlDWXJFNFlaMlBTTHhYcmx5QlJDTGhOY0UxcHVmaDFkVlZYTHg0RVdscGFSR25KekNCalh0SWQ4N2c0R0JVM3JpNWgxdUo1K2ZuWThtQ3RYdkloVGZsSG9ZZzVSNG1FeW4zTUFsNDVLeVdsT0NkamtkT2NNbzlUQ1pTN21IS1BlU0doTG1INUxCT3JBR1hYTjFEY2xpSHJnZEZnc2s5NUN6WWJyZkRiRGJENy9lanJLd3N0cG10Tk81aEpKaE1KclMydHNMdGRxT3BxUWxhclRaaTJtanVJV3ZCZnI4ZlpyTjUwL2l6Mld6RzlQUTBubi8rZWRvbkV6WmdpajEwdVZ3d0dvMmJ4cCtOUmlPR2hvYncrdXV2MDA1aGp0azlKRU56NkFiYnlXQ3VSRVNwMld3Mk5EYzMwdzYyV3l3VzZIUTZ6b09Jck81d2JtNHV6cDgvajVXVkZYUjJkbTQ2VmxkWGgzMzc5bUY1ZVRrdTg2ZERVVnhjaks2dUx0aHN0ckNscXJxNnVuRG8wQ0hPdkt3RSsvMStMQzR1VXFHMG9aaVltSWhhaWNRQ2t2ZnUzYnRoeHdZR0JuaFZtcHk2Tm5TRDdreHhRdkVBM1pvK2ZJc1FKOEYwNDBqMzc5L25SY3dGZEY0MDM3RndUb0xwaGtVWEZ4ZDVFWE1CM2Noa1VnUTduYzZ3ZlQ2ZkwrR20rSC8vL1JlMnorVnk4VExGR1N1dC92NStSc1BzbTIrK0FiRFI4NHBYTEZORFF3UGplbHhuejU0RnNCRksrL25ubjdQS2wvRU9hN1ZhVm1IdllyRTRhdStISzI3ZXZNa3E3RjBpa2VEbXpadXM4MlVVN0hLNXFHOHlHczZlUGN0NzNnVWRmRDRmMnR2YkdkTzF0N2R6YW9jWkJSTUVBYUZRU0JuaGRLaXBxWUZRS09SbG0wVGp6Y3ZMbzR4d09oZ01CdVRsNVhIaVpWVnArZjEreUdReTJpRHE0dUppeUdTeWhGUmNmcjhmVlZWVnRFSFVHbzBHVlZWVm5IbFoxOUplcnhkcXRScFNxWlRhSjVWS29WYXJFenJkd2V2MVFxL1hRNmxVVXZ1VVNpWDBlajB2WGs3TjBzcktDalFhRGJYbWpVYWp3Y3JLQ21mU1VMRDVPYTZzcktDdHJRMFNpUVFTaVFSdGJXMk12SEZ6RDBNcnNYaFVVbXpkdzlCS2pLbVNpcXQ3U0JCRTNDb25ydTRoT2E4a1dxQm55ajNjZ2wwRVFjUTBjTVlXVzNrSWdraUtlN2lWVjJDMVdvbjA5UFNZeExDQjErdEZabVltdGIyMnRvYnQ0RTFMQmltQVRhUUFraUtXanZlUjg1WlNnbmM2VXU1aE1wRnlEMVB1SVRla1lnL1p4QjUyZFhYRlRNbzJuMUQzOE5TcFU3empERVAveUh6aXNuSnBJc0JtNWRKNDVybnRncE9OdUlUVEppcmN0cVdsSmFiamRHQVV2TlVFcDBOb3V4Y3Z0TGEyTWdaaG1Vd216cUtqQ3JiYjdhdzlIQzVwbVdBeW1WaXZiMmt5bVRnRmUwUnNscmJlTlRhMXJ0bHNoa2drUW41K1B1c0wySXF0ZDQyTmRXTTBHcEdWbFlXVEowOHlwbzE0aC9uR0k4VWF4OFEzWEpidGVSRUZWMVpXOGlMbWV4NkphOWV1SmZTOGlEOXB1VnlPbXBvYTNMNTlHOERtVlVxM2dsek5sQXpvaW1WZ3ZycTZHbWxwYWREcjlRQTJyMUs2RmVScXBtUkFGeHZlaUlLOVhpOFZaL2pMTDc4d2h1bFVWRlRFTEpia0plTU1qVVlqSTI5VFV4TnJzUUJEWDVxTU00dzBxRTJpdUxnWXBhV2xjWE1QeVRoRHBoV01OUm9ONnV2ck9mR3lza3ZWYW5YVU5HcTFPcTVXS2NsTC9xd2pRYS9YYytabDFkTmk4bkZpOVplU3ladnFTMGVyamJtQWJUNmtUN1gxbFFwOFFlWVR5YXNLRTh3M2FKSnZQaDZQQndSQllHWm1KaTY4TXpNenFkakRVRHg2N21Fc0Z4d3JVckdIU1VDcVdkcnBTQW5lNmRpeDd1Rnp6ejFIVzBzL0ZPN2gvdjM3VVZCUWdNY2VleXhtOTlEbGNzRnV0Mk53Y0JBQ2dTRHNuVEhiN2g0ZVBIZ1F4Y1hGY1RQVE1qSXlJSkZJY09mT0hmeisrKzhQbDJEU1BTVGZ0eFF2OTNEWHJsMG9LaXJDblR0M3d0SXdGaHE2MmFwdXR4dG1zNW1hQ1I4cEhST0VRaUVrRWdudGV3L1gxdGJDM211NHRMU0U5dloybkQ5L25qWmQ2UG43OXUzakhvbzNPVG1Kc2JFeG5EbHpCc0RHV0xYZGJxY05vZW50N1lWQ29jQ2hRNGRZaCtWRmlqM3M3dTVHUjBjSDlZV2FUQ2JjdW5WcjB5TWttZmJDaFF2UWFyWFFhclZVV0Y0d0dFUjZlanA3d2RQVDB6Q2J6ZkI0UEp2MlI3TlQvSDQvckZZckppY25VVlpXeG5vd1B0VHBHeG9hZ3RGb0RBc0lpMmFudU4xdWZQbmxsK2p1N3NhbFM1ZHc0c1FKS2srNjRoSDJGVGdjRGd3UEQ0ZUpaUXUvM3crYnpjWjVKU1NMeFlMMzMzK2ZOdnFORGR4dU4zcDZlaGpQRHhNc2w4dGpqa3c1Y2VJRU5mT1ZMVlFxRmQ1ODg4MlllQTBHQTdXaVdpU0VDZmI1ZlBqcHA1OEFiS3lCeC9iQ3BWSXA2dXJxQUFEZmYvODk1d2Y2dGJVMWZQYlpad0NBanovK21QSENTU2lWU3NyM2V1ZWRkeGg1YVd0cE1yd3VKeWVIOWN1Y3pwMDdSNVVadmt0Ty9mbm5ud0NBWThlT29hK3ZqOVU1bloyZDFDc0gyZmhhVVp1bHdjRkIxa0dOaTR1TGpLL2dZd3VEd2NDSjkrMjMzMmFkZDlSbXlXNjN3KzEyUTZGUUlDOHZENWN2WDhiQ3dnSTE5VmNxbGNKbXM4SGhjR0J5Y2pKdVN6NmFUQ2JNenM1Q3E5WGk2TkdqR0IwZHhjVEVCSnhPSnlRU0NaUktKVVpHUmpBeU1vTC8vZTkvakJGc29hQVZMSmZMS1p2RDRYQlEzN1pFSXRsVXBoME9CMjM4Z1Z3dTV5U1FoRXFsb3BvK2k4VkN0YnN5bVd4VG1iNTc5eTZ0NDZCU3FSZzVhQVhYMXRiaTIyKy9EWnZZNVhRNmFRTXVReUdWU2xGYlc4dHJnYjZXbGhZME5EUmdZbUppMC82Wm1SbkdZVnlsVW9tV2xoYkdlR2JhTXV6eGVLRFJhS2hWRGRrZ096c2JsWldWT0hmdUhPODJmSDE5SFcxdGJXaHFhbUw5dWwyWlRJYlhYbnNObloyZHJON3lGZkZGank2WEM2V2xwVkNwVkZoYVdzSy8vLzVMVmZuejgvUEl5OHNEQU96ZXZSdTV1Ym5JeWNtQngrT0pLWjZZSUFqNGZEN1UxOWVqc2JFUmYvenhCNGFIaHlrcmRIeDhIRTgvL1RRQVlQLysvVkFxbFZBb0ZKeDRJMVphcEdpeXJCdzRjQUQzN3QyRFhDN0hnUU1IQUd4MFFYTnljckMrdmg2M1ZSNUNlY253M0o2ZUhxaFVLcFNYbHdQWTZPSSs4OHd6QUxpSHhuTjZQUHo1NTUvRDloMDhlSkFUSVIvUXpkOWdFL0ZLaDlTWUZsdkk1WEtxUE1VQ3JsRnVLcFVLcDArZlprd1hEQVpwOTNNU0xCYUxVVkpTZ3FOSGp5SWpJd05lcnpmbU9SMHVsNHN4OWxBaWtlRDA2ZE40K2VXWElaVktHWG5qNWg1ZXZIZ1JYcThYSG8rSGQ5TVRDcEZJaEh2MzdpRW5KeWRxcC8rSEgzNkExK3VGeStWaXJLVGk2aDdHdWc3dFZwRHVJVUVRS0N3c2pPZ2UvdlBQUDZ6eUN3UUNXRjVleGw5Ly9ZWDUrWGxhOTNEYnpUU2J6UWFyMVlyMTlmVzR1b2NsSlNVcDl4QjRCSnVsbE9DZGprZE84UDhCR0NRMGhuRjFEeFVBQUFBQVNVVk9SSzVDWUlJPSl9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLmRyYWctaGFuZGxle2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRHdBQUFDaENBWUFBQUNiQk56dkFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFBTEVnQUFDeElCMHQxKy9BQUFBQlYwUlZoMFEzSmxZWFJwYjI0Z1ZHbHRaUUEzTHpFMkx6RXpSTkVLVXdBQUFCeDBSVmgwVTI5bWRIZGhjbVVBUVdSdlltVWdSbWx5WlhkdmNtdHpJRU5UTnVpOHNvd0FBQTlhU1VSQlZIaWM3VjFyVEZ2bC8vK1VyZ1VtWldNcGJMYTZjTEVyd3BZeGtxTEdrakFHODhXU2JtdW1HVWxsdmxtQUpjdE1SdHlidmxIckxYaUpVZWtNSVp1WVNDTDVnUytFdUxJWEdFR2pxQ3NsbENFVzZ4UUVDZ3pXRzdTMDUvK0MvemtwOUxUbjBnc0w2eWNoOUp6em5PZHpQajE5THVmNVBOL25DTjU5OTEzaXhSZGZSRmRYRnhMeC8yR0RnQ0FJWW1wcUNvV0ZoVWpFLzRjTmFlKzk5eDRBSUZIL0h6YWs3bkRxRHUrd095eXcyV3pFZGw5RU1wRzIzUmVRYktRRTczUThjb0ozYmZjRldLMVcvUGJiYi9ENy9VaExpLzM3RHdhREVJdkZLQzh2UjBsSlNkanhiUlZzdFZveFBEeU14eDkvSEFVRkJjak16SVJBSU9DZFh6QVloTnZ0aHQxdXgvRHdNQUNFaWQ1V3dTTWpJM2p5eVNkUlhGd01zVmdNb1ZBWWsyQ0NJSkNabVluczdHeU1qbzVpWkdRa1BvS1hsNWV4ZCs5ZTNoZEdJaGdNSWo4L0g1bVptUkNKUkl5Q3lRNU5KQkFFZ1VBZ0FLRlFpSUtDQWl3c0xJU2w0VnhvSEE0SCt2djc0WGE3dVo0YUJxRlFpT3pzYkloRUlvakZZb2pGWW9oRUl0cS84ZkZ4WExseUJVdExTeEhUaE9heFo4OGVDSVhDMkFXUGo0OERBSDc5OWRlWUJhZWxwVUVvRkxMNisrcXJyd0FBSDN6d0FhdjBZckdZdGhMa0pIaDZlaHB6YzNNQWdQbjVlVXhQVDhjc1dpQVFNSmJib2FFaG1NMW1BSURGWXNIUTBCRHZQRGtKdGxnc1lkdCt2NTlMRnJ4dy9mcjFzRzJYeThVckwwNkM2K3ZydzdiRllqRXZZaTc0N3J2dndyWWxFZ212dkRqVjBnNkhJK3Ayb2hCUDNxaDMyT0Z3b0xlM2wxVkd2YjI5c052dHZDOGtGQ01qSTlEcGRLelM2blE2bUV3bTFublRQZy83L1g2TWpZMWhjbktTL1ZYK1AvYnUzWXV5c2pMazV1WXlwdjM2NjY5eDh1UkpaR1JrUUNRU3dldjFvcU9qQXowOVBaeDVDd3NMY2VuU0pSdytmQmgrdngrcnE2c3dtVXg0NmFXWE5xV2p2Y01EQXdPOHhBSWJuWktCZ1FGZU5YaHpjek12c2NCR3A2UzV1UmsvL3ZoajFIUzBnclZhTFlxTGkza1J5K1Z5MU5YVlJlMFJSY0tOR3plZzBXaDQ4YXBVS25SMWRhRzZ1anBxT3RwS3krVnlRYTFXbzZTa0JMZHYzOGFGQ3hlb1k1OTg4Z24xK2ZMbHk5VG5MNzc0QXBXVmxYamlpU2ZnZERxeHRyYkcrYUo5UGgvMGVqM09uRGtEdlY2UFc3ZHVVY2VPSERsQ2ZSNGRIYVUrdi9EQ0M3aDI3UnJVYWpXY1RpZFdWMWVqY3RBS0pnZ0NLeXNyeU16TWhFNm53K3pzTE8zSm9mdDFPaDBlUEhpQXBhVWxkdXFpOEJZVkZhR3ZyNDhWYjE5Zkh5ZmVxTTJTeitkajNRVEVzNGxLSkMrbmpzZldKb3B0a3hVcnRqWlJiSnNzT25BU1hGdGJHM1U3VVhqcnJiZWlibk1CSjhGWldWa29LeXNEQUJRVUZDQXJLNHMzTVJjb0ZBcnFybFpYVjBPaFVQRE9pNU5nbjgrSHc0Y1BReXFWNHRsbm40WFA1K05OVElJZ21IMEFuOCtIVjE1NUJVcWxFcSsrK2lvcjNrQWdRTHVmODRqSDJ0b2FqaDgvanZYMWRhNm4wc0xqOFNBakk0TXhIVUVRK1BUVFQxbmxTUkFFSGp4NFFIdHNXOGUwUkNJUjdIWTc5dXpaRS9HT2NFVWdFRUFnRU1EZmYvOE5rVWdVZG54YkJSODVjZ1Jtc3hrQ2dRRDUrZmtSaDJYWUloQUk0UDc5KzVpYW1vTEQ0Y0N4WThmQzBteXI0S2VlZWdvQ2dRQldxeFZ6YzNOSVMwdUxlZFF5R0F4aTE2NWRLQzh2UjFGUlVWaWFsSHU0MDVFU3ZOUHh5QWxPdVlmSlJNbzlmRmpkdzNpQnEzdklCRGJ1NGJZSzN1b2V4dEt0SkVIMnlXTnlEOG55RUc4d3VZY2ZmdmdoYTNjeHJ1NmgzVzVIZjM5L1FveXphRTZmeVdSQ1EwTURaK01zTHU3aDh2SXllbnQ3c2J5OHpJazhWa3hOVFVHbjA4Rm1zOFVsUDA0Tm45L3ZSMzkvZjl3OEpMWnd1OTFvYkd6azVDRkZBcStXZm5oNG1ES29rNG1XbGhhMHRyYkdsQWZ2cnMzazVDUUdCZ2FTWW9pSG9xZW5CMWV2WGsyT0liNFZEb2NESnBNcDZlWGFZckdnc2JHUlY3bU91ZlBxOFhnd01EQ1E5SEk5TnplSHExZXZjaTdYdkRzZVVxa1VXcTBXNmVucENBYURjRHFkOEhxOWZMTmpEYVZTaVJzM2JrQWlrZkRpNVhTSHhXSXhhbXBxQUFBTEN3c1lHaHJDN093czV1Zm5FeXBXSXBIQVlEQUFBQ1ltSm5EOStuWGV2SndFbnpwMUNqS1pEQlVWRlFDQXNiR3hwSlRmano3NkNGVlZWV2hxYWdJQWRIUjA4RzZYV1F1dXFhbkI3dDI3NGZWNlVWcGFpdXpzYkFBYlR6eUpoTUZnZ0VLaGdOZnJSWDE5UFdReUdRREFhRFR5eW8rVjRKcWFHc2hrTXNyaWNMbGNPSDc4T0lDTkNXcDhwMGN3d1dBd29LcXFhaFB2RzIrOEFXRGppKzd1N3VhY0p5dkJNcGtzckt4a1pXVlIweUxHeHNZNEU3TkJWVlZWR0s5Q29hQ21SWFIwZEhET2s1Vmd1b3JCNS9PaG9xSUNZckU0WVoyUFNMeFhybHlCUkNMaE5jRTFwdWZoMWRWVlhMeDRFV2xwYVJHbkp6Q0JqWHRJZDg3ZzRHQlUzcmk1aDF1SjUrZm5ZOG1DdFh2SWhUZmxIb1lnNVI0bUV5bjNNQWw0NUt5V2xPQ2Rqa2RPY01vOVRDWlM3bUhLUGVTR2hMbUg1TEJPckFHWFhOMURjbGlIcmdkRmdzazk1Q3pZYnJmRGJEYkQ3L2Vqckt3c3RwbXROTzVoSkpoTUpyUzJ0c0x0ZHFPcHFRbGFyVFppMm1qdUlXdkJmcjhmWnJONTAvaXoyV3pHOVBRMG5uLytlZG9uRXpaZ2lqMTB1Vnd3R28yYnhwK05SaU9HaG9idyt1dXYwMDVoanRrOUpFTno2QWJieVdDdVJFU3AyV3cyTkRjMzB3NjJXeXdXNkhRNnpvT0lyTzV3Ym00dXpwOC9qNVdWRlhSMmRtNDZWbGRYaDMzNzltRjVlVGt1ODZkRFVWeGNqSzZ1THRoc3RyQ2xxcnE2dW5EbzBDSE92S3dFKy8xK0xDNHVVcUcwb1ppWW1JaGFpY1FDa3ZmdTNidGh4d1lHQm5oVm1weTZOblNEN2t4eFF2RUEzWm8rZklzUUo4RjA0MGozNzkvblJjd0ZkRjQwMzdGd1RvTHBoa1VYRnhkNUVYTUIzY2hrVWdRN25jNndmVDZmTCtHbStILy8vUmUyeitWeThUTEZHU3V0L3Y1K1JzUHNtMisrQWJEUjg0cFhMRk5EUXdQamVseG56NTRGc0JGSysvbm5uN1BLbC9FT2E3VmFWbUh2WXJFNGF1K0hLMjdldk1rcTdGMGlrZURtelp1czgyVVU3SEs1cUc4eUdzNmVQY3Q3M2dVZGZENGYydHZiR2RPMXQ3ZHphb2NaQlJNRUFhRlFTQm5oZEtpcHFZRlFLT1JsbTBUanpjdkxvNHh3T2hnTUJ1VGw1WEhpWlZWcCtmMSt5R1F5MmlEcTR1Sml5R1N5aEZSY2ZyOGZWVlZWdEVIVUdvMEdWVlZWbkhsWjE5SmVyeGRxdFJwU3FaVGFKNVZLb1ZhckV6cmR3ZXYxUXEvWFE2bFVVdnVVU2lYMGVqMHZYazdOMHNyS0NqUWFEYlhtalVhandjcktDbWZTVUxENU9hNnNyS0N0clEwU2lRUVNpUVJ0YlcyTXZIRnpEME1yc1hoVVVtemR3OUJLakttU2lxdDdTQkJFM0NvbnJ1NGhPYThrV3FCbnlqM2NnbDBFUWNRMGNNWVdXM2tJZ2tpS2U3aVZWMkMxV29uMDlQU1l4TENCMSt0RlptWW10YjIydG9idDRFMUxCaW1BVGFRQWtpS1dqdmVSODVaU2duYzZVdTVoTXBGeUQxUHVJVGVrWWcvWnhCNTJkWFhGVE1vMm4xRDM4TlNwVTd6akRFUC95SHppc25KcElzQm01ZEo0NXJudGdwT051SVRUSmlyY3RxV2xKYWJqZEdBVXZOVUVwME5vdXhjdnRMYTJNZ1pobVV3bXpxS2pDcmJiN2F3OUhDNXBtV0F5bVZpdmIya3ltVGdGZTBSc2xyYmVOVGExcnRsc2hrZ2tRbjUrUHVzTDJJcXRkNDJOZFdNMEdwR1ZsWVdUSjA4eXBvMTRoL25HSThVYXg4UTNYSmJ0ZVJFRlYxWlc4aUxtZXg2SmE5ZXVKZlM4aUQ5cHVWeU9tcG9hM0w1OUc4RG1WVXEzZ2x6TmxBem9pbVZndnJxNkdtbHBhZERyOVFBMnIxSzZGZVJxcG1SQUZ4dmVpSUs5WGk4VlovakxMNzh3aHVsVVZGVEVMSmJrSmVNTWpVWWpJMjlUVXhOcnNRQkRYNXFNTTR3MHFFMml1TGdZcGFXbGNYTVB5VGhEcGhXTU5Sb042dXZyT2ZHeXNrdlZhblhVTkdxMU9xNVdLY2xML3F3alFhL1hjK1psMWROaThuRmk5WmVTeVp2cVMwZXJqYm1BYlQ2a1Q3WDFsUXA4UWVZVHlhc0tFOHczYUpKdlBoNlBCd1JCWUdabUppNjhNek16cWRqRFVEeDY3bUVzRnh3clVyR0hTVUNxV2RycFNBbmU2ZGl4N3VGenp6MUhXMHMvRk83aC92MzdVVkJRZ01jZWV5eG05OURsY3NGdXQyTndjQkFDZ1NEc25USGI3aDRlUEhnUXhjWEZjVFBUTWpJeUlKRkljT2ZPSGZ6KysrOFBsMkRTUFNUZnR4UXY5M0RYcmwwb0tpckNuVHQzd3RJd0ZocTYyYXB1dHh0bXM1bWFDUjhwSFJPRVFpRWtFZ250ZXcvWDF0YkMzbXU0dExTRTl2WjJuRDkvbmpaZDZQbjc5dTNqSG9vM09UbUpzYkV4bkRsekJzREdXTFhkYnFjTm9lbnQ3WVZDb2NDaFE0ZFloK1ZGaWozczd1NUdSMGNIOVlXYVRDYmN1blZyMHlNa21mYkNoUXZRYXJYUWFyVlVXRjR3R0VSNmVqcDd3ZFBUMHpDYnpmQjRQSnYyUjdOVC9INC9yRllySmljblVWWld4bm93UHRUcEd4b2FndEZvREFzSWkyYW51TjF1ZlBubGwranU3c2FsUzVkdzRzUUpLays2NGhIMkZUZ2NEZ3dQRDRlSlpRdS8zdytiemNaNUpTU0x4WUwzMzMrZk52cU5EZHh1TjNwNmVoalBEeE1zbDh0amprdzVjZUlFTmZPVkxWUXFGZDU4ODgyWWVBMEdBN1dpV2lTRUNmYjVmUGpwcDU4QWJLeUJ4L2JDcFZJcDZ1cnFBQURmZi84OTV3ZjZ0YlUxZlBiWlp3Q0Fqei8rbVBIQ1NTaVZTc3IzZXVlZGR4aDVhV3RwTXJ3dUp5ZUg5Y3VjenAwN1I1VVp2a3RPL2Zubm53Q0FZOGVPb2Erdmo5VTVuWjJkMUNzSDJmaGFVWnVsd2NGQjFrR05pNHVMaksvZ1l3dUR3Y0NKOSsyMzMyYWRkOVJteVc2M3crMTJRNkZRSUM4dkQ1Y3ZYOGJDd2dJMTlWY3FsY0ptczhIaGNHQnljakp1U3o2YVRDYk16czVDcTlYaTZOR2pHQjBkeGNURUJKeE9KeVFTQ1pSS0pVWkdSakF5TW9MLy9lOS9qQkZzb2FBVkxKZkxLWnZENFhCUTM3WkVJdGxVcGgwT0IyMzhnVnd1NXlTUWhFcWxvcG8raThWQ3Ric3ltV3hUbWI1Nzl5NnQ0NkJTcVJnNWFBWFgxdGJpMjIrL0Radlk1WFE2YVFNdVF5R1ZTbEZiVzh0cmdiNldsaFkwTkRSZ1ltSmkwLzZabVJuR1lWeWxVb21XbGhiR2VHYmFNdXp4ZUtEUmFLaFZEZGtnT3pzYmxaV1ZPSGZ1SE84MmZIMTlIVzF0YldocWFtTDl1bDJaVEliWFhuc05uWjJkck43eUZmRkZqeTZYQzZXbHBWQ3BWRmhhV3NLLy8vNUxWZm56OC9QSXk4c0RBT3pldlJ1NXVibkl5Y21CeCtPSktaNllJQWo0ZkQ3VTE5ZWpzYkVSZi96eEI0YUhoeWtyZEh4OEhFOC8vVFFBWVAvKy9WQXFsVkFvRkp4NEkxWmFwR2l5ckJ3NGNBRDM3dDJEWEM3SGdRTUhBR3gwUVhOeWNyQyt2aDYzVlI1Q2VjbnczSjZlSHFoVUtwU1hsd1BZNk9JKzg4d3pBTGlIeG5ONlBQejU1NS9EOWgwOGVKQVRJUi9RemQ5Z0UvRktoOVNZRmx2STVYS3FQTVVDcmxGdUtwVUtwMCtmWmt3WERBWnA5M01TTEJhTFVWSlNncU5IanlJakl3TmVyemZtT1IwdWw0c3g5bEFpa2VEMDZkTjQrZVdYSVpWS0dYbmo1aDVldkhnUlhxOFhIbytIZDlNVENwRkloSHYzN2lFbkp5ZHFwLytISDM2QTErdUZ5K1ZpcktUaTZoN0d1Zzd0VnBEdUlVRVFLQ3dzak9nZS92UFBQNnp5Q3dRQ1dGNWV4bDkvL1lYNStYbGE5M0RielRTYnpRYXIxWXIxOWZXNHVvY2xKU1VwOXhCNEJKdWxsT0NkamtkTzhQOEJHQ1EwaG5GMUR4VUFBQUFBU1VWT1JLNUNZSUk9KSAycHggM3B4IG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI0JDQkNCQztjdXJzb3I6bW92ZTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxM3B4O3dpZHRoOjI3cHh9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnBhbi1zY2FuLW1vZGUtYnV0dG9ue2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRHdBQUFDaENBWUFBQUNiQk56dkFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFBTEVnQUFDeElCMHQxKy9BQUFBQlYwUlZoMFEzSmxZWFJwYjI0Z1ZHbHRaUUEzTHpFMkx6RXpSTkVLVXdBQUFCeDBSVmgwVTI5bWRIZGhjbVVBUVdSdlltVWdSbWx5WlhkdmNtdHpJRU5UTnVpOHNvd0FBQTlhU1VSQlZIaWM3VjFyVEZ2bC8vK1VyZ1VtWldNcGJMYTZjTEVyd3BZeGtxTEdrakFHODhXU2JtdW1HVWxsdmxtQUpjdE1SdHlidmxIckxYaUpVZWtNSVp1WVNDTDVnUytFdUxJWEdFR2pxQ3NsbENFVzZ4UUVDZ3pXRzdTMDUvK0MvemtwOUxUbjBnc0w2eWNoOUp6em5PZHpQajE5THVmNVBOL25DTjU5OTEzaXhSZGZSRmRYRnhMeC8yR0RnQ0FJWW1wcUNvV0ZoVWpFLzRjTmFlKzk5eDRBSUZIL0h6YWs3bkRxRHUrd095eXcyV3pFZGw5RU1wRzIzUmVRYktRRTczUThjb0ozYmZjRldLMVcvUGJiYi9ENy9VaExpLzM3RHdhREVJdkZLQzh2UjBsSlNkanhiUlZzdFZveFBEeU14eDkvSEFVRkJjak16SVJBSU9DZFh6QVloTnZ0aHQxdXgvRHdNQUNFaWQ1V3dTTWpJM2p5eVNkUlhGd01zVmdNb1ZBWWsyQ0NJSkNabVluczdHeU1qbzVpWkdRa1BvS1hsNWV4ZCs5ZTNoZEdJaGdNSWo4L0g1bVptUkNKUkl5Q3lRNU5KQkFFZ1VBZ0FLRlFpSUtDQWl3c0xJU2w0VnhvSEE0SCt2djc0WGE3dVo0YUJxRlFpT3pzYkloRUlvakZZb2pGWW9oRUl0cS84ZkZ4WExseUJVdExTeEhUaE9heFo4OGVDSVhDMkFXUGo0OERBSDc5OWRlWUJhZWxwVUVvRkxMNisrcXJyd0FBSDN6d0FhdjBZckdZdGhMa0pIaDZlaHB6YzNNQWdQbjVlVXhQVDhjc1dpQVFNSmJib2FFaG1NMW1BSURGWXNIUTBCRHZQRGtKdGxnc1lkdCt2NTlMRnJ4dy9mcjFzRzJYeThVckwwNkM2K3ZydzdiRllqRXZZaTc0N3J2dndyWWxFZ212dkRqVjBnNkhJK3Ayb2hCUDNxaDMyT0Z3b0xlM2wxVkd2YjI5c052dHZDOGtGQ01qSTlEcGRLelM2blE2bUV3bTFublRQZy83L1g2TWpZMWhjbktTL1ZYK1AvYnUzWXV5c2pMazV1WXlwdjM2NjY5eDh1UkpaR1JrUUNRU3dldjFvcU9qQXowOVBaeDVDd3NMY2VuU0pSdytmQmgrdngrcnE2c3dtVXg0NmFXWE5xV2p2Y01EQXdPOHhBSWJuWktCZ1FGZU5YaHpjek12c2NCR3A2UzV1UmsvL3ZoajFIUzBnclZhTFlxTGkza1J5K1Z5MU5YVlJlMFJSY0tOR3plZzBXaDQ4YXBVS25SMWRhRzZ1anBxT3RwS3krVnlRYTFXbzZTa0JMZHYzOGFGQ3hlb1k1OTg4Z24xK2ZMbHk5VG5MNzc0QXBXVmxYamlpU2ZnZERxeHRyYkcrYUo5UGgvMGVqM09uRGtEdlY2UFc3ZHVVY2VPSERsQ2ZSNGRIYVUrdi9EQ0M3aDI3UnJVYWpXY1RpZFdWMWVqY3RBS0pnZ0NLeXNyeU16TWhFNm53K3pzTE8zSm9mdDFPaDBlUEhpQXBhVWxkdXFpOEJZVkZhR3ZyNDhWYjE5Zkh5ZmVxTTJTeitkajNRVEVzNGxLSkMrbmpzZldKb3B0a3hVcnRqWlJiSnNzT25BU1hGdGJHM1U3VVhqcnJiZWlibk1CSjhGWldWa29LeXNEQUJRVUZDQXJLNHMzTVJjb0ZBcnFybFpYVjBPaFVQRE9pNU5nbjgrSHc0Y1BReXFWNHRsbm40WFA1K05OVElJZ21IMEFuOCtIVjE1NUJVcWxFcSsrK2lvcjNrQWdRTHVmODRqSDJ0b2FqaDgvanZYMWRhNm4wc0xqOFNBakk0TXhIVUVRK1BUVFQxbmxTUkFFSGp4NFFIdHNXOGUwUkNJUjdIWTc5dXpaRS9HT2NFVWdFRUFnRU1EZmYvOE5rVWdVZG54YkJSODVjZ1Jtc3hrQ2dRRDUrZmtSaDJYWUloQUk0UDc5KzVpYW1vTEQ0Y0N4WThmQzBteXI0S2VlZWdvQ2dRQldxeFZ6YzNOSVMwdUxlZFF5R0F4aTE2NWRLQzh2UjFGUlVWaWFsSHU0MDVFU3ZOUHh5QWxPdVlmSlJNbzlmRmpkdzNpQnEzdklCRGJ1NGJZSzN1b2V4dEt0SkVIMnlXTnlEOG55RUc4d3VZY2ZmdmdoYTNjeHJ1NmgzVzVIZjM5L1FveXphRTZmeVdSQ1EwTURaK01zTHU3aDh2SXllbnQ3c2J5OHpJazhWa3hOVFVHbjA4Rm1zOFVsUDA0Tm45L3ZSMzkvZjl3OEpMWnd1OTFvYkd6azVDRkZBcStXZm5oNG1ES29rNG1XbGhhMHRyYkdsQWZ2cnMzazVDUUdCZ2FTWW9pSG9xZW5CMWV2WGsyT0liNFZEb2NESnBNcDZlWGFZckdnc2JHUlY3bU91ZlBxOFhnd01EQ1E5SEk5TnplSHExZXZjaTdYdkRzZVVxa1VXcTBXNmVucENBYURjRHFkOEhxOWZMTmpEYVZTaVJzM2JrQWlrZkRpNVhTSHhXSXhhbXBxQUFBTEN3c1lHaHJDN093czV1Zm5FeXBXSXBIQVlEQUFBQ1ltSm5EOStuWGV2SndFbnpwMUNqS1pEQlVWRlFDQXNiR3hwSlRmano3NkNGVlZWV2hxYWdJQWRIUjA4RzZYV1F1dXFhbkI3dDI3NGZWNlVWcGFpdXpzYkFBYlR6eUpoTUZnZ0VLaGdOZnJSWDE5UFdReUdRREFhRFR5eW8rVjRKcWFHc2hrTXNyaWNMbGNPSDc4T0lDTkNXcDhwMGN3d1dBd29LcXFhaFB2RzIrOEFXRGppKzd1N3VhY0p5dkJNcGtzckt4a1pXVlIweUxHeHNZNEU3TkJWVlZWR0s5Q29hQ21SWFIwZEhET2s1Vmd1b3JCNS9PaG9xSUNZckU0WVoyUFNMeFhybHlCUkNMaE5jRTFwdWZoMWRWVlhMeDRFV2xwYVJHbkp6Q0JqWHRJZDg3ZzRHQlUzcmk1aDF1SjUrZm5ZOG1DdFh2SWhUZmxIb1lnNVI0bUV5bjNNQWw0NUt5V2xPQ2Rqa2RPY01vOVRDWlM3bUhLUGVTR2hMbUg1TEJPckFHWFhOMURjbGlIcmdkRmdzazk1Q3pZYnJmRGJEYkQ3L2Vqckt3c3RwbXROTzVoSkpoTUpyUzJ0c0x0ZHFPcHFRbGFyVFppMm1qdUlXdkJmcjhmWnJONTAvaXoyV3pHOVBRMG5uLytlZG9uRXpaZ2lqMTB1Vnd3R28yYnhwK05SaU9HaG9idyt1dXYwMDVoanRrOUpFTno2QWJieVdDdVJFU3AyV3cyTkRjMzB3NjJXeXdXNkhRNnpvT0lyTzV3Ym00dXpwOC9qNVdWRlhSMmRtNDZWbGRYaDMzNzltRjVlVGt1ODZkRFVWeGNqSzZ1THRoc3RyQ2xxcnE2dW5EbzBDSE92S3dFKy8xK0xDNHVVcUcwb1ppWW1JaGFpY1FDa3ZmdTNidGh4d1lHQm5oVm1weTZOblNEN2t4eFF2RUEzWm8rZklzUUo4RjA0MGozNzkvblJjd0ZkRjQwMzdGd1RvTHBoa1VYRnhkNUVYTUIzY2hrVWdRN25jNndmVDZmTCtHbStILy8vUmUyeitWeThUTEZHU3V0L3Y1K1JzUHNtMisrQWJEUjg0cFhMRk5EUXdQamVseG56NTRGc0JGSysvbm5uN1BLbC9FT2E3VmFWbUh2WXJFNGF1K0hLMjdldk1rcTdGMGlrZURtelp1czgyVVU3SEs1cUc4eUdzNmVQY3Q3M2dVZGZENGYydHZiR2RPMXQ3ZHphb2NaQlJNRUFhRlFTQm5oZEtpcHFZRlFLT1JsbTBUanpjdkxvNHh3T2hnTUJ1VGw1WEhpWlZWcCtmMSt5R1F5MmlEcTR1Sml5R1N5aEZSY2ZyOGZWVlZWdEVIVUdvMEdWVlZWbkhsWjE5SmVyeGRxdFJwU3FaVGFKNVZLb1ZhckV6cmR3ZXYxUXEvWFE2bFVVdnVVU2lYMGVqMHZYazdOMHNyS0NqUWFEYlhtalVhandjcktDbWZTVUxENU9hNnNyS0N0clEwU2lRUVNpUVJ0YlcyTXZIRnpEME1yc1hoVVVtemR3OUJLakttU2lxdDdTQkJFM0NvbnJ1NGhPYThrV3FCbnlqM2NnbDBFUWNRMGNNWVdXM2tJZ2tpS2U3aVZWMkMxV29uMDlQU1l4TENCMSt0RlptWW10YjIydG9idDRFMUxCaW1BVGFRQWtpS1dqdmVSODVaU2duYzZVdTVoTXBGeUQxUHVJVGVrWWcvWnhCNTJkWFhGVE1vMm4xRDM4TlNwVTd6akRFUC95SHppc25KcElzQm01ZEo0NXJudGdwT051SVRUSmlyY3RxV2xKYWJqZEdBVXZOVUVwME5vdXhjdnRMYTJNZ1pobVV3bXpxS2pDcmJiN2F3OUhDNXBtV0F5bVZpdmIya3ltVGdGZTBSc2xyYmVOVGExcnRsc2hrZ2tRbjUrUHVzTDJJcXRkNDJOZFdNMEdwR1ZsWVdUSjA4eXBvMTRoL25HSThVYXg4UTNYSmJ0ZVJFRlYxWlc4aUxtZXg2SmE5ZXVKZlM4aUQ5cHVWeU9tcG9hM0w1OUc4RG1WVXEzZ2x6TmxBem9pbVZndnJxNkdtbHBhZERyOVFBMnIxSzZGZVJxcG1SQUZ4dmVpSUs5WGk4VlovakxMNzh3aHVsVVZGVEVMSmJrSmVNTWpVWWpJMjlUVXhOcnNRQkRYNXFNTTR3MHFFMml1TGdZcGFXbGNYTVB5VGhEcGhXTU5Sb042dXZyT2ZHeXNrdlZhblhVTkdxMU9xNVdLY2xML3F3alFhL1hjK1psMWROaThuRmk5WmVTeVp2cVMwZXJqYm1BYlQ2a1Q3WDFsUXA4UWVZVHlhc0tFOHczYUpKdlBoNlBCd1JCWUdabUppNjhNek16cWRqRFVEeDY3bUVzRnh3clVyR0hTVUNxV2RycFNBbmU2ZGl4N3VGenp6MUhXMHMvRk83aC92MzdVVkJRZ01jZWV5eG05OURsY3NGdXQyTndjQkFDZ1NEc25USGI3aDRlUEhnUXhjWEZjVFBUTWpJeUlKRkljT2ZPSGZ6KysrOFBsMkRTUFNUZnR4UXY5M0RYcmwwb0tpckNuVHQzd3RJd0ZocTYyYXB1dHh0bXM1bWFDUjhwSFJPRVFpRWtFZ250ZXcvWDF0YkMzbXU0dExTRTl2WjJuRDkvbmpaZDZQbjc5dTNqSG9vM09UbUpzYkV4bkRsekJzREdXTFhkYnFjTm9lbnQ3WVZDb2NDaFE0ZFloK1ZGaWozczd1NUdSMGNIOVlXYVRDYmN1blZyMHlNa21mYkNoUXZRYXJYUWFyVlVXRjR3R0VSNmVqcDd3ZFBUMHpDYnpmQjRQSnYyUjdOVC9INC9yRllySmljblVWWld4bm93UHRUcEd4b2FndEZvREFzSWkyYW51TjF1ZlBubGwranU3c2FsUzVkdzRzUUpLays2NGhIMkZUZ2NEZ3dQRDRlSlpRdS8zdytiemNaNUpTU0x4WUwzMzMrZk52cU5EZHh1TjNwNmVoalBEeE1zbDh0amprdzVjZUlFTmZPVkxWUXFGZDU4ODgyWWVBMEdBN1dpV2lTRUNmYjVmUGpwcDU4QWJLeUJ4L2JDcFZJcDZ1cnFBQURmZi84OTV3ZjZ0YlUxZlBiWlp3Q0Fqei8rbVBIQ1NTaVZTc3IzZXVlZGR4aDVhV3RwTXJ3dUp5ZUg5Y3VjenAwN1I1VVp2a3RPL2Zubm53Q0FZOGVPb2Erdmo5VTVuWjJkMUNzSDJmaGFVWnVsd2NGQjFrR05pNHVMaksvZ1l3dUR3Y0NKOSsyMzMyYWRkOVJteVc2M3crMTJRNkZRSUM4dkQ1Y3ZYOGJDd2dJMTlWY3FsY0ptczhIaGNHQnljakp1U3o2YVRDYk16czVDcTlYaTZOR2pHQjBkeGNURUJKeE9KeVFTQ1pSS0pVWkdSakF5TW9MLy9lOS9qQkZzb2FBVkxKZkxLWnZENFhCUTM3WkVJdGxVcGgwT0IyMzhnVnd1NXlTUWhFcWxvcG8raThWQ3Ric3ltV3hUbWI1Nzl5NnQ0NkJTcVJnNWFBWFgxdGJpMjIrL0Radlk1WFE2YVFNdVF5R1ZTbEZiVzh0cmdiNldsaFkwTkRSZ1ltSmkwLzZabVJuR1lWeWxVb21XbGhiR2VHYmFNdXp4ZUtEUmFLaFZEZGtnT3pzYmxaV1ZPSGZ1SE84MmZIMTlIVzF0YldocWFtTDl1bDJaVEliWFhuc05uWjJkck43eUZmRkZqeTZYQzZXbHBWQ3BWRmhhV3NLLy8vNUxWZm56OC9QSXk4c0RBT3pldlJ1NXVibkl5Y21CeCtPSktaNllJQWo0ZkQ3VTE5ZWpzYkVSZi96eEI0YUhoeWtyZEh4OEhFOC8vVFFBWVAvKy9WQXFsVkFvRkp4NEkxWmFwR2l5ckJ3NGNBRDM3dDJEWEM3SGdRTUhBR3gwUVhOeWNyQyt2aDYzVlI1Q2VjbnczSjZlSHFoVUtwU1hsd1BZNk9JKzg4d3pBTGlIeG5ONlBQejU1NS9EOWgwOGVKQVRJUi9RemQ5Z0UvRktoOVNZRmx2STVYS3FQTVVDcmxGdUtwVUtwMCtmWmt3WERBWnA5M01TTEJhTFVWSlNncU5IanlJakl3TmVyemZtT1IwdWw0c3g5bEFpa2VEMDZkTjQrZVdYSVpWS0dYbmo1aDVldkhnUlhxOFhIbytIZDlNVENwRkloSHYzN2lFbkp5ZHFwLytISDM2QTErdUZ5K1ZpcktUaTZoN0d1Zzd0VnBEdUlVRVFLQ3dzak9nZS92UFBQNnp5Q3dRQ1dGNWV4bDkvL1lYNStYbGE5M0RielRTYnpRYXIxWXIxOWZXNHVvY2xKU1VwOXhCNEJKdWxsT0NkamtkTzhQOEJHQ1EwaG5GMUR4VUFBQUFBU1VWT1JLNUNZSUk9KTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEwcHh9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnBhbi1zY2FuLW1vZGUtYnV0dG9uLmFjdGl2ZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMHB4IC0xMHB4fSogL2RlZXAvIC5tb3VzZS1tb2RlLXNlbGVjdG9yIC5zZWxlY3Rpb24tbW9kZS1idXR0b257YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEd0FBQUNoQ0FZQUFBQ2JCTnp2QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUFMRWdBQUN4SUIwdDErL0FBQUFCVjBSVmgwUTNKbFlYUnBiMjRnVkdsdFpRQTNMekUyTHpFelJORUtVd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBOWFTVVJCVkhpYzdWMXJURnZsLy8rVXJnVW1aV01wYkxhNmNMRXJ3cFl4a3FMR2tqQUc4OFdTYm11bUdVbGx2bG1BSmN0TVJ0eWJ2bEhyTFhpSlVla01JWnVZU0NMNWdTK0V1TElYR0VHanFDc2xsQ0VXNnhRRUNneldHN1MwNS8rQy96a3A5TFRuMGdzTDZ5Y2g5Snp6bk9kelBqMTlMdWY1UE4vbkNONTk5MTNpeFJkZlJGZFhGeEx4LzJHRGdDQUlZbXBxQ29XRmhVakUvNGNOYWUrOTl4NEFJRkgvSHphazduRHFEdSt3T3l5dzJXekVkbDlFTXBHMjNSZVFiS1FFNzNROGNvSjNiZmNGV0sxVy9QYmJiL0Q3L1VoTGkvMzdEd2FERUl2RktDOHZSMGxKU2RqeGJSVnN0Vm94UER5TXh4OS9IQVVGQmNqTXpJUkFJT0NkWHpBWWhOdnRodDF1eC9Ed01BQ0VpZDVXd1NNakkzanl5U2RSWEZ3TXNWZ01vVkFZazJDQ0lKQ1ptWW5zN0d5TWpvNWlaR1FrUG9LWGw1ZXhkKzllM2hkR0loZ01JajgvSDVtWm1SQ0pSSXlDeVE1TkpCQUVnVUFnQUtGUWlJS0NBaXdzTElTbDRWeG9IQTRIK3Z2NzRYYTd1WjRhQnFGUWlPenNiSWhFSW9qRllvakZZb2hFSXRxLzhmRnhYTGx5QlV0TFN4SFRoT2F4Wjg4ZUNJWEMyQVdQajQ4REFINzk5ZGVZQmFlbHBVRW9GTEw2KytxcnJ3QUFIM3p3QWF2MFlyR1l0aExrSkhoNmVocHpjM01BZ1BuNWVVeFBUOGNzV2lBUU1KYmJvYUVobU0xbUFJREZZc0hRMEJEdlBEa0p0bGdzWWR0K3Y1OUxGcnh3L2ZyMXNHMlh5OFVyTDA2QzYrdnJ3N2JGWWpFdllpNzQ3cnZ2d3JZbEVnbXZ2RGpWMGc2SEkrcDJvaEJQM3FoMzJPRndvTGUzbDFWR3ZiMjlzTnZ0dkM4a0ZDTWpJOURwZEt6UzZuUTZtRXdtMW5uVFBnLzcvWDZNalkxaGNuS1MvVlgrUC9idTNZdXlzakxrNXVZeXB2MzY2Njl4OHVSSlpHUmtRQ1FTd2V2MW9xT2pBejA5UFp4NUN3c0xjZW5TSlJ3K2ZCaCt2eCtycTZzd21VeDQ2YVdYTnFXanZjTURBd084eEFJYm5aS0JnUUZlTlhoemN6TXZzY0JHcDZTNXVSay8vdmhqMUhTMGdyVmFMWXFMaTNrUnkrVnkxTlhWUmUwUlJjS05HemVnMFdoNDhhcFVLblIxZGFHNnVqcHFPdHBLeStWeVFhMVdvNlNrQkxkdjM4YUZDeGVvWTU5ODhnbjErZkxseTlUbkw3NzRBcFdWbFhqaWlTZmdkRHF4dHJiRythSjlQaC8wZWozT25Ea0R2VjZQVzdkdVVjZU9IRGxDZlI0ZEhhVSt2L0RDQzdoMjdSclVhaldjVGlkV1YxZWpjdEFLSmdnQ0t5c3J5TXpNaEU2bncrenNMTzNKb2Z0MU9oMGVQSGlBcGFVbGR1cWk4QllWRmFHdnI0OFZiMTlmSHlmZXFNMlN6K2RqM1FURXM0bEtKQytuanNmV0pvcHRreFVydGpaUmJKc3NPbkFTWEZ0YkczVTdVWGpycmJlaWJuTUJKOEZaV1Zrb0t5c0RBQlFVRkNBcks0czNNUmNvRkFycXJsWlhWME9oVVBET2k1TmduOCtIdzRjUFF5cVY0dGxubjRYUDUrTk5USUlnbUgwQW44K0hWMTU1QlVxbEVxKysraW9yM2tBZ1FMdWY4NGpIMnRvYWpoOC9qdlgxZGE2bjBzTGo4U0FqSTRNeEhVRVErUFRUVDFubFNSQUVIang0UUh0c1c4ZTBSQ0lSN0hZNzl1elpFL0dPY0VVZ0VFQWdFTURmZi84TmtVZ1VkbnhiQlI4NWNnUm1zeGtDZ1FENStma1JoMlhZSWhBSTRQNzkrNWlhbW9MRDRjQ3hZOGZDMG15cjRLZWVlZ29DZ1FCV3F4VnpjM05JUzB1TGVkUXlHQXhpMTY1ZEtDOHZSMUZSVVZpYWxIdTQwNUVTdk5QeHlBbE91WWZKUk1vOWZGamR3M2lCcTN2SUJEYnU0YllLM3VvZXh0S3RKRUgyeVdOeUQ4bnlFRzh3dVljZmZ2Z2hhM2N4cnU2aDNXNUhmMzkvUW95emFFNmZ5V1JDUTBNRForTXNMdTdoOHZJeWVudDdzYnk4eklrOFZreE5UVUduMDhGbXM4VWxQMDRObjkvdlIzOS9mOXc4Skxad3U5MW9iR3prNUNGRkFxK1dmbmg0bURLb2s0bVdsaGEwdHJiR2xBZnZyczNrNUNRR0JnYVNZb2lIb3FlbkIxZXZYazJPSWI0VkRvY0RKcE1wNmVYYVlyR2dzYkdSVjdtT3VmUHE4WGd3TURDUTlISTlOemVIcTFldmNpN1h2RHNlVXFrVVdxMFc2ZW5wQ0FhRGNEcWQ4SHE5ZkxOakRhVlNpUnMzYmtBaWtmRGk1WFNIeFdJeGFtcHFBQUFMQ3dzWUdockM3T3dzNXVmbkV5cFdJcEhBWURBQUFDWW1KbkQ5K25YZXZKd0VuenAxQ2pLWkRCVVZGUUNBc2JHeHBKVGZqejc2Q0ZWVlZXaHFhZ0lBZEhSMDhHNlhXUXV1cWFuQjd0Mjc0ZlY2VVZwYWl1enNiQUFiVHp5SmhNRmdnRUtoZ05mclJYMTlQV1F5R1FEQWFEVHl5bytWNEpxYUdzaGtNc3JpY0xsY09INzhPSUNOQ1dwOHAwY3d3V0F3b0txcWFoUHZHMis4QVdEamkrN3U3dWFjSnl2Qk1wa3NyS3hrWldWUjB5TEd4c1k0RTdOQlZWVlZHSzlDb2FDbVJYUjBkSERPazVWZ3VvckI1L09ob3FJQ1lyRTRZWjJQU0x4WHJseUJSQ0xoTmNFMXB1ZmgxZFZWWEx4NEVXbHBhUkduSnpDQmpYdElkODdnNEdCVTNyaTVoMXVKNStmblk4bUN0WHZJaFRmbEhvWWc1UjRtRXluM01BbDQ1S3lXbE9DZGprZE9jTW85VENaUzdtSEtQZVNHaExtSDVMQk9yQUdYWE4xRGNsaUhyZ2RGZ3NrOTVDellicmZEYkRiRDcvZWpyS3dzdHBtdE5PNWhKSmhNSnJTMnRzTHRkcU9wcVFsYXJUWmkybWp1SVd2QmZyOGZack41MC9pejJXekc5UFEwbm4vK2Vkb25FelpnaWoxMHVWd3dHbzJieHArTlJpT0dob2J3K3V1djAwNWhqdGs5SkVOejZBYmJ5V0N1UkVTcDJXdzJORGMzMHc2Mld5d1c2SFE2em9PSXJPNXdibTR1enA4L2o1V1ZGWFIyZG00NlZsZFhoMzM3OW1GNWVUa3U4NmREVVZ4Y2pLNnVMdGhzdHJDbHFycTZ1bkRvMENIT3ZLd0UrLzErTEM0dVVxRzBvWmlZbUloYWljUUNrdmZ1M2J0aHh3WUdCbmhWbXB5Nk5uU0Q3a3h4UXZFQTNabytmSXNRSjhGMDQwajM3OS9uUmN3RmRGNDAzN0Z3VG9McGhrVVhGeGQ1RVhNQjNjaGtVZ1E3bmM2d2ZUNmZMK0dtK0gvLy9SZTJ6K1Z5OFRMRkdTdXQvdjUrUnNQc20yKytBYkRSODRwWExGTkRRd1BqZWx4bno1NEZzQkZLKy9ubm43UEtsL0VPYTdWYVZtSHZZckU0YXUrSEsyN2V2TWtxN0YwaWtlRG16WnVzODJVVTdISzVxRzh5R3M2ZVBjdDczZ1VkZkQ0ZjJ0dmJHZE8xdDdkemFvY1pCUk1FQWFGUVNCbmhkS2lwcVlGUUtPUmxtMFRqemN2TG80eHdPaGdNQnVUbDVYSGlaVlZwK2YxK3lHUXkyaURxNHVKaXlHU3loRlJjZnI4ZlZWVlZ0RUhVR28wR1ZWVlZuSGxaMTlKZXJ4ZHF0UnBTcVpUYUo1VktvVmFyRXpyZHdldjFRcS9YUTZsVVV2dVVTaVgwZWowdlhrN04wc3JLQ2pRYURiWG1qVWFqd2NyS0NtZlNVTEQ1T2E2c3JLQ3RyUTBTaVFRU2lRUnRiVzJNdkhGekQwTXJzWGhVVW16ZHc5QktqS21TaXF0N1NCQkUzQ29ucnU0aE9hOGtXcUJueWozY2dsMEVRY1EwY01ZV1cza0lna2lLZTdpVlYyQzFXb24wOVBTWXhMQ0IxK3RGWm1ZbXRiMjJ0b2J0NEUxTEJpbUFUYVFBa2lLV2p2ZVI4NVpTZ25jNlV1NWhNcEZ5RDFQdUlUZWtZZy9aeEI1MmRYWEZUTW8ybjFEMzhOU3BVN3pqREVQL3lIemlzbkpwSXNCbTVkSjQ1cm50Z3BPTnVJVFRKaXJjdHFXbEphYmpkR0FVdk5VRXAwTm91eGN2dExhMk1nWmhtVXdtenFLakNyYmI3YXc5SEM1cG1XQXltVml2YjJreW1UZ0ZlMFJzbHJiZU5UYTFydGxzaGtna1FuNStQdXNMMklxdGQ0Mk5kV00wR3BHVmxZV1RKMDh5cG8xNGgvbkdJOFVheDhRM1hKYnRlUkVGVjFaVzhpTG1leDZKYTlldUpmUzhpRDlwdVZ5T21wb2EzTDU5RzhEbVZVcTNnbHpObEF6b2ltVmd2cnE2R21scGFkRHI5UUEycjFLNkZlUnFwbVJBRnh2ZWlJSzlYaThWWi9qTEw3OHdodWxVVkZURUxKYmtKZU1NalVZakkyOVRVeE5yc1FCRFg1cU1NNHcwcUUyaXVMZ1lwYVdsY1hNUHlUaERwaFdNTlJvTjZ1dnJPZkd5c2t2VmFuWFVOR3ExT3E1V0tjbEwvcXdqUWEvWGMrWmwxZE5pOG5GaTlaZVN5WnZxUzBlcmpibUFiVDZrVDdYMWxRcDhRZVlUeWFzS0U4dzNhSkp2UGg2UEJ3UkJZR1ptSmk2OE16TXpxZGpEVUR4NjdtRXNGeHdyVXJHSFNVQ3FXZHJwU0FuZTZkaXg3dUZ6enoxSFcwcy9GTzdoL3YzN1VWQlFnTWNlZXl4bTk5RGxjc0Z1dDJOd2NCQUNnU0RzblRIYjdoNGVQSGdReGNYRmNUUFRNakl5SUpGSWNPZk9IZnorKys4UGwyRFNQU1RmdHhRdjkzRFhybDBvS2lyQ25UdDN3dEl3RmhxNjJhcHV0eHRtczVtYUNSOHBIUk9FUWlFa0VnbnRldy9YMXRiQzNtdTR0TFNFOXZaMm5EOS9ualpkNlBuNzl1M2pIb28zT1RtSnNiRXhuRGx6QnNER1dMWGRicWNOb2VudDdZVkNvY0NoUTRkWWgrVkZpajNzN3U1R1IwY0g5WVdhVENiY3VuVnIweU1rbWZiQ2hRdlFhclhRYXJWVVdGNHdHRVI2ZWpwN3dkUFQwekNiemZCNFBKdjJSN05UL0g0L3JGWXJKaWNuVVZaV3hub3dQdFRwR3hvYWd0Rm9EQXNJaTJhbnVOMXVmUG5sbCtqdTdzYWxTNWR3NHNRSktrKzY0aEgyRlRnY0Rnd1BENGVKWlF1LzN3K2J6Y1o1SlNTTHhZTDMzMytmTnZxTkRkeHVOM3A2ZWhqUER4TXNsOHRqamt3NWNlSUVOZk9WTFZRcUZkNTg4ODJZZUEwR0E3V2lXaVNFQ2ZiNWZQanBwNThBYkt5QngvYkNwVklwNnVycUFBRGZmLzg5NXdmNnRiVTFmUGJaWndDQWp6LyttUEhDU1NpVlNzcjNldWVkZHhoNWFXdHBNcnd1SnllSDljdWN6cDA3UjVVWnZrdE8vZm5ubndDQVk4ZU9vYSt2ajlVNW5aMmQxQ3NIMmZoYVVadWx3Y0ZCMWtHTmk0dUxqSy9nWXd1RHdjQ0o5KzIzMzJhZGQ5Um15VzYzdysxMlE2RlFJQzh2RDVjdlg4YkN3Z0kxOVZjcWxjSm1zOEhoY0dCeWNqSnVTejZhVENiTXpzNUNxOVhpNk5HakdCMGR4Y1RFQkp4T0p5UVNDWlJLSlVaR1JqQXlNb0wvL2U5L2pCRnNvYUFWTEpmTEtadkQ0WEJRMzdaRUl0bFVwaDBPQjIzOGdWd3U1eVNRaEVxbG9wbytpOFZDdGJzeW1XeFRtYjU3OXk2dDQ2QlNxUmc1YUFYWDF0YmkyMisvRFp2WTVYUTZhUU11UXlHVlNsRmJXOHRyZ2I2V2xoWTBORFJnWW1KaTAvNlptUm5HWVZ5bFVvbVdsaGJHZUdiYU11enhlS0RSYUtoVkRka2dPenNibFpXVk9IZnVITzgyZkgxOUhXMXRiV2hxYW1MOXVsMlpUSWJYWG5zTm5aMmRyTjd5RmZGRmp5NlhDNldscFZDcFZGaGFXc0svLy81TFZmbno4L1BJeThzREFPemV2UnU1dWJuSXljbUJ4K09KS1o2WUlBajRmRDdVMTllanNiRVJmL3p4QjRhSGh5a3JkSHg4SEU4Ly9UUUFZUC8rL1ZBcWxWQW9GSng0STFaYXBHaXlyQnc0Y0FEMzd0MkRYQzdIZ1FNSEFHeDBRWE55Y3JDK3ZoNjNWUjVDZWNudzNKNmVIcWhVS3BTWGx3UFk2T0krODh3ekFMaUh4bk42UFB6NTU1L0Q5aDA4ZUpBVElSL1F6ZDlnRS9GS2g5U1lGbHZJNVhLcVBNVUNybEZ1S3BVS3AwK2Zaa3dYREFacDkzTVNMQmFMVVZKU2dxTkhqeUlqSXdOZXJ6Zm1PUjB1bDRzeDlsQWlrZUQwNmRONCtlV1hJWlZLR1huajVoNWV2SGdSWHE4WEhvK0hkOU1UQ3BGSWhIdjM3aUVuSnlkcXAvK0hIMzZBMSt1RnkrVmlyS1RpNmg3R3VnN3RWcER1SVVFUUtDd3NqT2dlL3ZQUFA2enlDd1FDV0Y1ZXhsOS8vWVg1K1hsYTkzRGJ6VFNielFhcjFZcjE5Zlc0dW9jbEpTVXA5eEI0Qkp1bGxPQ2Rqa2RPOFA4QkdDUTBobkYxRHhVQUFBQUFTVVZPUks1Q1lJST0pO2JhY2tncm91bmQtcG9zaXRpb246MCAtNDBweH0qIC9kZWVwLyAubW91c2UtbW9kZS1zZWxlY3RvciAuc2VsZWN0aW9uLW1vZGUtYnV0dG9uLmFjdGl2ZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMHB4IC00MHB4fSogL2RlZXAvIC5tb3VzZS1tb2RlLXNlbGVjdG9yIC56b29tLW1vZGUtYnV0dG9ue2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRHdBQUFDaENBWUFBQUNiQk56dkFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFBTEVnQUFDeElCMHQxKy9BQUFBQlYwUlZoMFEzSmxZWFJwYjI0Z1ZHbHRaUUEzTHpFMkx6RXpSTkVLVXdBQUFCeDBSVmgwVTI5bWRIZGhjbVVBUVdSdlltVWdSbWx5WlhkdmNtdHpJRU5UTnVpOHNvd0FBQTlhU1VSQlZIaWM3VjFyVEZ2bC8vK1VyZ1VtWldNcGJMYTZjTEVyd3BZeGtxTEdrakFHODhXU2JtdW1HVWxsdmxtQUpjdE1SdHlidmxIckxYaUpVZWtNSVp1WVNDTDVnUytFdUxJWEdFR2pxQ3NsbENFVzZ4UUVDZ3pXRzdTMDUvK0MvemtwOUxUbjBnc0w2eWNoOUp6em5PZHpQajE5THVmNVBOL25DTjU5OTEzaXhSZGZSRmRYRnhMeC8yR0RnQ0FJWW1wcUNvV0ZoVWpFLzRjTmFlKzk5eDRBSUZIL0h6YWs3bkRxRHUrd095eXcyV3pFZGw5RU1wRzIzUmVRYktRRTczUThjb0ozYmZjRldLMVcvUGJiYi9ENy9VaExpLzM3RHdhREVJdkZLQzh2UjBsSlNkanhiUlZzdFZveFBEeU14eDkvSEFVRkJjak16SVJBSU9DZFh6QVloTnZ0aHQxdXgvRHdNQUNFaWQ1V3dTTWpJM2p5eVNkUlhGd01zVmdNb1ZBWWsyQ0NJSkNabVluczdHeU1qbzVpWkdRa1BvS1hsNWV4ZCs5ZTNoZEdJaGdNSWo4L0g1bVptUkNKUkl5Q3lRNU5KQkFFZ1VBZ0FLRlFpSUtDQWl3c0xJU2w0VnhvSEE0SCt2djc0WGE3dVo0YUJxRlFpT3pzYkloRUlvakZZb2pGWW9oRUl0cS84ZkZ4WExseUJVdExTeEhUaE9heFo4OGVDSVhDMkFXUGo0OERBSDc5OWRlWUJhZWxwVUVvRkxMNisrcXJyd0FBSDN6d0FhdjBZckdZdGhMa0pIaDZlaHB6YzNNQWdQbjVlVXhQVDhjc1dpQVFNSmJib2FFaG1NMW1BSURGWXNIUTBCRHZQRGtKdGxnc1lkdCt2NTlMRnJ4dy9mcjFzRzJYeThVckwwNkM2K3ZydzdiRllqRXZZaTc0N3J2dndyWWxFZ212dkRqVjBnNkhJK3Ayb2hCUDNxaDMyT0Z3b0xlM2wxVkd2YjI5c052dHZDOGtGQ01qSTlEcGRLelM2blE2bUV3bTFublRQZy83L1g2TWpZMWhjbktTL1ZYK1AvYnUzWXV5c2pMazV1WXlwdjM2NjY5eDh1UkpaR1JrUUNRU3dldjFvcU9qQXowOVBaeDVDd3NMY2VuU0pSdytmQmgrdngrcnE2c3dtVXg0NmFXWE5xV2p2Y01EQXdPOHhBSWJuWktCZ1FGZU5YaHpjek12c2NCR3A2UzV1UmsvL3ZoajFIUzBnclZhTFlxTGkza1J5K1Z5MU5YVlJlMFJSY0tOR3plZzBXaDQ4YXBVS25SMWRhRzZ1anBxT3RwS3krVnlRYTFXbzZTa0JMZHYzOGFGQ3hlb1k1OTg4Z24xK2ZMbHk5VG5MNzc0QXBXVmxYamlpU2ZnZERxeHRyYkcrYUo5UGgvMGVqM09uRGtEdlY2UFc3ZHVVY2VPSERsQ2ZSNGRIYVUrdi9EQ0M3aDI3UnJVYWpXY1RpZFdWMWVqY3RBS0pnZ0NLeXNyeU16TWhFNm53K3pzTE8zSm9mdDFPaDBlUEhpQXBhVWxkdXFpOEJZVkZhR3ZyNDhWYjE5Zkh5ZmVxTTJTeitkajNRVEVzNGxLSkMrbmpzZldKb3B0a3hVcnRqWlJiSnNzT25BU1hGdGJHM1U3VVhqcnJiZWlibk1CSjhGWldWa29LeXNEQUJRVUZDQXJLNHMzTVJjb0ZBcnFybFpYVjBPaFVQRE9pNU5nbjgrSHc0Y1BReXFWNHRsbm40WFA1K05OVElJZ21IMEFuOCtIVjE1NUJVcWxFcSsrK2lvcjNrQWdRTHVmODRqSDJ0b2FqaDgvanZYMWRhNm4wc0xqOFNBakk0TXhIVUVRK1BUVFQxbmxTUkFFSGp4NFFIdHNXOGUwUkNJUjdIWTc5dXpaRS9HT2NFVWdFRUFnRU1EZmYvOE5rVWdVZG54YkJSODVjZ1Jtc3hrQ2dRRDUrZmtSaDJYWUloQUk0UDc5KzVpYW1vTEQ0Y0N4WThmQzBteXI0S2VlZWdvQ2dRQldxeFZ6YzNOSVMwdUxlZFF5R0F4aTE2NWRLQzh2UjFGUlVWaWFsSHU0MDVFU3ZOUHh5QWxPdVlmSlJNbzlmRmpkdzNpQnEzdklCRGJ1NGJZSzN1b2V4dEt0SkVIMnlXTnlEOG55RUc4d3VZY2ZmdmdoYTNjeHJ1NmgzVzVIZjM5L1FveXphRTZmeVdSQ1EwTURaK01zTHU3aDh2SXllbnQ3c2J5OHpJazhWa3hOVFVHbjA4Rm1zOFVsUDA0Tm45L3ZSMzkvZjl3OEpMWnd1OTFvYkd6azVDRkZBcStXZm5oNG1ES29rNG1XbGhhMHRyYkdsQWZ2cnMzazVDUUdCZ2FTWW9pSG9xZW5CMWV2WGsyT0liNFZEb2NESnBNcDZlWGFZckdnc2JHUlY3bU91ZlBxOFhnd01EQ1E5SEk5TnplSHExZXZjaTdYdkRzZVVxa1VXcTBXNmVucENBYURjRHFkOEhxOWZMTmpEYVZTaVJzM2JrQWlrZkRpNVhTSHhXSXhhbXBxQUFBTEN3c1lHaHJDN093czV1Zm5FeXBXSXBIQVlEQUFBQ1ltSm5EOStuWGV2SndFbnpwMUNqS1pEQlVWRlFDQXNiR3hwSlRmano3NkNGVlZWV2hxYWdJQWRIUjA4RzZYV1F1dXFhbkI3dDI3NGZWNlVWcGFpdXpzYkFBYlR6eUpoTUZnZ0VLaGdOZnJSWDE5UFdReUdRREFhRFR5eW8rVjRKcWFHc2hrTXNyaWNMbGNPSDc4T0lDTkNXcDhwMGN3d1dBd29LcXFhaFB2RzIrOEFXRGppKzd1N3VhY0p5dkJNcGtzckt4a1pXVlIweUxHeHNZNEU3TkJWVlZWR0s5Q29hQ21SWFIwZEhET2s1Vmd1b3JCNS9PaG9xSUNZckU0WVoyUFNMeFhybHlCUkNMaE5jRTFwdWZoMWRWVlhMeDRFV2xwYVJHbkp6Q0JqWHRJZDg3ZzRHQlUzcmk1aDF1SjUrZm5ZOG1DdFh2SWhUZmxIb1lnNVI0bUV5bjNNQWw0NUt5V2xPQ2Rqa2RPY01vOVRDWlM3bUhLUGVTR2hMbUg1TEJPckFHWFhOMURjbGlIcmdkRmdzazk1Q3pZYnJmRGJEYkQ3L2Vqckt3c3RwbXROTzVoSkpoTUpyUzJ0c0x0ZHFPcHFRbGFyVFppMm1qdUlXdkJmcjhmWnJONTAvaXoyV3pHOVBRMG5uLytlZG9uRXpaZ2lqMTB1Vnd3R28yYnhwK05SaU9HaG9idyt1dXYwMDVoanRrOUpFTno2QWJieVdDdVJFU3AyV3cyTkRjMzB3NjJXeXdXNkhRNnpvT0lyTzV3Ym00dXpwOC9qNVdWRlhSMmRtNDZWbGRYaDMzNzltRjVlVGt1ODZkRFVWeGNqSzZ1THRoc3RyQ2xxcnE2dW5EbzBDSE92S3dFKy8xK0xDNHVVcUcwb1ppWW1JaGFpY1FDa3ZmdTNidGh4d1lHQm5oVm1weTZOblNEN2t4eFF2RUEzWm8rZklzUUo4RjA0MGozNzkvblJjd0ZkRjQwMzdGd1RvTHBoa1VYRnhkNUVYTUIzY2hrVWdRN25jNndmVDZmTCtHbStILy8vUmUyeitWeThUTEZHU3V0L3Y1K1JzUHNtMisrQWJEUjg0cFhMRk5EUXdQamVseG56NTRGc0JGSysvbm5uN1BLbC9FT2E3VmFWbUh2WXJFNGF1K0hLMjdldk1rcTdGMGlrZURtelp1czgyVVU3SEs1cUc4eUdzNmVQY3Q3M2dVZGZENGYydHZiR2RPMXQ3ZHphb2NaQlJNRUFhRlFTQm5oZEtpcHFZRlFLT1JsbTBUanpjdkxvNHh3T2hnTUJ1VGw1WEhpWlZWcCtmMSt5R1F5MmlEcTR1Sml5R1N5aEZSY2ZyOGZWVlZWdEVIVUdvMEdWVlZWbkhsWjE5SmVyeGRxdFJwU3FaVGFKNVZLb1ZhckV6cmR3ZXYxUXEvWFE2bFVVdnVVU2lYMGVqMHZYazdOMHNyS0NqUWFEYlhtalVhandjcktDbWZTVUxENU9hNnNyS0N0clEwU2lRUVNpUVJ0YlcyTXZIRnpEME1yc1hoVVVtemR3OUJLakttU2lxdDdTQkJFM0NvbnJ1NGhPYThrV3FCbnlqM2NnbDBFUWNRMGNNWVdXM2tJZ2tpS2U3aVZWMkMxV29uMDlQU1l4TENCMSt0RlptWW10YjIydG9idDRFMUxCaW1BVGFRQWtpS1dqdmVSODVaU2duYzZVdTVoTXBGeUQxUHVJVGVrWWcvWnhCNTJkWFhGVE1vMm4xRDM4TlNwVTd6akRFUC95SHppc25KcElzQm01ZEo0NXJudGdwT051SVRUSmlyY3RxV2xKYWJqZEdBVXZOVUVwME5vdXhjdnRMYTJNZ1pobVV3bXpxS2pDcmJiN2F3OUhDNXBtV0F5bVZpdmIya3ltVGdGZTBSc2xyYmVOVGExcnRsc2hrZ2tRbjUrUHVzTDJJcXRkNDJOZFdNMEdwR1ZsWVdUSjA4eXBvMTRoL25HSThVYXg4UTNYSmJ0ZVJFRlYxWlc4aUxtZXg2SmE5ZXVKZlM4aUQ5cHVWeU9tcG9hM0w1OUc4RG1WVXEzZ2x6TmxBem9pbVZndnJxNkdtbHBhZERyOVFBMnIxSzZGZVJxcG1SQUZ4dmVpSUs5WGk4VlovakxMNzh3aHVsVVZGVEVMSmJrSmVNTWpVWWpJMjlUVXhOcnNRQkRYNXFNTTR3MHFFMml1TGdZcGFXbGNYTVB5VGhEcGhXTU5Sb042dXZyT2ZHeXNrdlZhblhVTkdxMU9xNVdLY2xML3F3alFhL1hjK1psMWROaThuRmk5WmVTeVp2cVMwZXJqYm1BYlQ2a1Q3WDFsUXA4UWVZVHlhc0tFOHczYUpKdlBoNlBCd1JCWUdabUppNjhNek16cWRqRFVEeDY3bUVzRnh3clVyR0hTVUNxV2RycFNBbmU2ZGl4N3VGenp6MUhXMHMvRk83aC92MzdVVkJRZ01jZWV5eG05OURsY3NGdXQyTndjQkFDZ1NEc25USGI3aDRlUEhnUXhjWEZjVFBUTWpJeUlKRkljT2ZPSGZ6KysrOFBsMkRTUFNUZnR4UXY5M0RYcmwwb0tpckNuVHQzd3RJd0ZocTYyYXB1dHh0bXM1bWFDUjhwSFJPRVFpRWtFZ250ZXcvWDF0YkMzbXU0dExTRTl2WjJuRDkvbmpaZDZQbjc5dTNqSG9vM09UbUpzYkV4bkRsekJzREdXTFhkYnFjTm9lbnQ3WVZDb2NDaFE0ZFloK1ZGaWozczd1NUdSMGNIOVlXYVRDYmN1blZyMHlNa21mYkNoUXZRYXJYUWFyVlVXRjR3R0VSNmVqcDd3ZFBUMHpDYnpmQjRQSnYyUjdOVC9INC9yRllySmljblVWWld4bm93UHRUcEd4b2FndEZvREFzSWkyYW51TjF1ZlBubGwranU3c2FsUzVkdzRzUUpLays2NGhIMkZUZ2NEZ3dQRDRlSlpRdS8zdytiemNaNUpTU0x4WUwzMzMrZk52cU5EZHh1TjNwNmVoalBEeE1zbDh0amprdzVjZUlFTmZPVkxWUXFGZDU4ODgyWWVBMEdBN1dpV2lTRUNmYjVmUGpwcDU4QWJLeUJ4L2JDcFZJcDZ1cnFBQURmZi84OTV3ZjZ0YlUxZlBiWlp3Q0Fqei8rbVBIQ1NTaVZTc3IzZXVlZGR4aDVhV3RwTXJ3dUp5ZUg5Y3VjenAwN1I1VVp2a3RPL2Zubm53Q0FZOGVPb2Erdmo5VTVuWjJkMUNzSDJmaGFVWnVsd2NGQjFrR05pNHVMaksvZ1l3dUR3Y0NKOSsyMzMyYWRkOVJteVc2M3crMTJRNkZRSUM4dkQ1Y3ZYOGJDd2dJMTlWY3FsY0ptczhIaGNHQnljakp1U3o2YVRDYk16czVDcTlYaTZOR2pHQjBkeGNURUJKeE9KeVFTQ1pSS0pVWkdSakF5TW9MLy9lOS9qQkZzb2FBVkxKZkxLWnZENFhCUTM3WkVJdGxVcGgwT0IyMzhnVnd1NXlTUWhFcWxvcG8raThWQ3Ric3ltV3hUbWI1Nzl5NnQ0NkJTcVJnNWFBWFgxdGJpMjIrL0Radlk1WFE2YVFNdVF5R1ZTbEZiVzh0cmdiNldsaFkwTkRSZ1ltSmkwLzZabVJuR1lWeWxVb21XbGhiR2VHYmFNdXp4ZUtEUmFLaFZEZGtnT3pzYmxaV1ZPSGZ1SE84MmZIMTlIVzF0YldocWFtTDl1bDJaVEliWFhuc05uWjJkck43eUZmRkZqeTZYQzZXbHBWQ3BWRmhhV3NLLy8vNUxWZm56OC9QSXk4c0RBT3pldlJ1NXVibkl5Y21CeCtPSktaNllJQWo0ZkQ3VTE5ZWpzYkVSZi96eEI0YUhoeWtyZEh4OEhFOC8vVFFBWVAvKy9WQXFsVkFvRkp4NEkxWmFwR2l5ckJ3NGNBRDM3dDJEWEM3SGdRTUhBR3gwUVhOeWNyQyt2aDYzVlI1Q2VjbnczSjZlSHFoVUtwU1hsd1BZNk9JKzg4d3pBTGlIeG5ONlBQejU1NS9EOWgwOGVKQVRJUi9RemQ5Z0UvRktoOVNZRmx2STVYS3FQTVVDcmxGdUtwVUtwMCtmWmt3WERBWnA5M01TTEJhTFVWSlNncU5IanlJakl3TmVyemZtT1IwdWw0c3g5bEFpa2VEMDZkTjQrZVdYSVpWS0dYbmo1aDVldkhnUlhxOFhIbytIZDlNVENwRkloSHYzN2lFbkp5ZHFwLytISDM2QTErdUZ5K1ZpcktUaTZoN0d1Zzd0VnBEdUlVRVFLQ3dzak9nZS92UFBQNnp5Q3dRQ1dGNWV4bDkvL1lYNStYbGE5M0RielRTYnpRYXIxWXIxOWZXNHVvY2xKU1VwOXhCNEJKdWxsT0NkamtkTzhQOEJHQ1EwaG5GMUR4VUFBQUFBU1VWT1JLNUNZSUk9KTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTcwcHh9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnpvb20tbW9kZS1idXR0b24uYWN0aXZle2JhY2tncm91bmQtcG9zaXRpb246LTMwcHggLTcwcHh9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnRpbWluZy1tb2RlLWJ1dHRvbntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUR3QUFBQ2hDQVlBQUFDYkJOenZBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJWMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBM0x6RTJMekV6Uk5FS1V3QUFBQngwUlZoMFUyOW1kSGRoY21VQVFXUnZZbVVnUm1seVpYZHZjbXR6SUVOVE51aThzb3dBQUE5YVNVUkJWSGljN1YxclRGdmwvLytVcmdVbVpXTXBiTGE2Y0xFcndwWXhrcUxHa2pBRzg4V1NibXVtR1VsbHZsbUFKY3RNUnR5YnZsSHJMWGlKVWVrTUladVlTQ0w1Z1MrRXVMSVhHRUdqcUNzbGxDRVc2eFFFQ2d6V0c3UzA1LytDL3prcDlMVG4wZ3NMNnljaDlKenpuT2R6UGoxOUx1ZjVQTi9uQ041OTkxM2l4UmRmUkZkWEZ4THgvMkdEZ0NBSVltcHFDb1dGaFVqRS80Y05hZSs5OXg0QUlGSC9IemFrN25EcUR1K3dPeXl3Mld6RWRsOUVNcEcyM1JlUWJLUUU3M1E4Y29KM2JmY0ZXSzFXL1BiYmIvRDcvVWhMaS8zN0R3YURFSXZGS0M4dlIwbEpTZGp4YlJWc3RWb3hQRHlNeHg5L0hBVUZCY2pNeklSQUlPQ2RYekFZaE52dGh0MXV4L0R3TUFDRWlkNVd3U01qSTNqeXlTZFJYRndNc1ZnTW9WQVlrMkNDSUpDWm1ZbnM3R3lNam81aVpHUWtQb0tYbDVleGQrOWUzaGRHSWhnTUlqOC9INW1abVJDSlJJeUN5UTVOSkJBRWdVQWdBS0ZRaUlLQ0Fpd3NMSVNsNFZ4b0hBNEgrdnY3NFhhN3VaNGFCcUZRaU96c2JJaEVJb2pGWW9qRllvaEVJdHEvOGZGeFhMbHlCVXRMU3hIVGhPYXhaODhlQ0lYQzJBV1BqNDhEQUg3OTlkZVlCYWVscFVFb0ZMTDYrK3FycndBQUgzendBYXYwWXJHWXRoTGtKSGg2ZWhwemMzTUFnUG41ZVV4UFQ4Y3NXaUFRTUpiYm9hRWhtTTFtQUlERllzSFEwQkR2UERrSnRsZ3NZZHQrdjU5TEZyeHcvZnIxc0cyWHk4VXJMMDZDNit2cnc3YkZZakV2WWk3NDdydnZ3cllsRWdtdnZEalYwZzZISStwMm9oQlAzcWgzMk9Gd29MZTNsMVZHdmIyOXNOdnR2QzhrRkNNakk5RHBkS3pTNm5RNm1Fd20xbm5UUGcvNy9YNk1qWTFoY25LUy9WWCtQL2J1M1l1eXNqTGs1dVl5cHYzNjY2OXg4dVJKWkdSa1FDUVN3ZXYxb3FPakF6MDlQWng1Q3dzTGNlblNKUncrZkJoK3Z4K3JxNnN3bVV4NDZhV1hOcVdqdmNNREF3Tzh4QUliblpLQmdRRmVOWGh6Y3pNdnNjQkdwNlM1dVJrLy92aGoxSFMwZ3JWYUxZcUxpM2tSeStWeTFOWFZSZTBSUmNLTkd6ZWcwV2g0OGFwVUtuUjFkYUc2dWpwcU90cEt5K1Z5UWExV282U2tCTGR2MzhhRkN4ZW9ZNTk4OGduMStmTGx5OVRuTDc3NEFwV1ZsWGppaVNmZ2REcXh0cmJHK2FKOVBoLzBlajNPbkRrRHZWNlBXN2R1VWNlT0hEbENmUjRkSGFVK3YvRENDN2gyN1JyVWFqV2NUaWRXVjFlamN0QUtKZ2dDS3lzcnlNek1oRTZudyt6c0xPM0pvZnQxT2gwZVBIaUFwYVVsZHVxaThCWVZGYUd2cjQ4VmIxOWZIeWZlcU0yU3orZGozUVRFczRsS0pDK25qc2ZXSm9wdGt4VXJ0alpSYkpzc09uQVNYRnRiRzNVN1VYanJyYmVpYm5NQko4RlpXVmtvS3lzREFCUVVGQ0FySzRzM01SY29GQXJxcmxaWFYwT2hVUERPaTVOZ244K0h3NGNQUXlxVjR0bG5uNFhQNStOTlRJSWdtSDBBbjgrSFYxNTVCVXFsRXErKytpb3Iza0FnUUx1Zjg0akgydG9hamg4L2p2WDFkYTZuMHNMajhTQWpJNE14SFVFUStQVFRUMW5sU1JBRUhqeDRRSHRzVzhlMFJDSVI3SFk3OXV6WkUvR09jRVVnRUVBZ0VNRGZmLzhOa1VnVWRueGJCUjg1Y2dSbXN4a0NnUUQ1K2ZrUmgyWFlJaEFJNFA3OSs1aWFtb0xENGNDeFk4ZkMwbXlyNEtlZWVnb0NnUUJXcXhWemMzTklTMHVMZWRReUdBeGkxNjVkS0M4dlIxRlJVVmlhbEh1NDA1RVN2TlB4eUFsT3VZZkpSTW85ZkZqZHczaUJxM3ZJQkRidTRiWUszdW9leHRLdEpFSDJ5V055RDhueUVHOHd1WWNmZnZnaGEzY3hydTZoM1c1SGYzOS9Rb3l6YUU2ZnlXUkNRME1EWitNc0x1N2g4dkl5ZW50N3NieTh6SWs4Vmt4TlRVR24wOEZtczhVbFAwNE5uOS92UjM5L2Y5dzhKTFp3dTkxb2JHems1Q0ZGQXErV2ZuaDRtREtvazRtV2xoYTB0cmJHbEFmdnJzM2s1Q1FHQmdhU1lvaUhvcWVuQjFldlhrMk9JYjRWRG9jREpwTXA2ZVhhWXJHZ3NiR1JWN21PdWZQcThYZ3dNRENROUhJOU56ZUhxMWV2Y2k3WHZEc2VVcWtVV3EwVzZlbnBDQWFEY0RxZDhIcTlmTE5qRGFWU2lSczNia0Fpa2ZEaTVYU0h4V0l4YW1wcUFBQUxDd3NZR2hyQzdPd3M1dWZuRXlwV0lwSEFZREFBQUNZbUpuRDkrblhldkp3RW56cDFDaktaREJVVkZRQ0FzYkd4cEpUZmp6NzZDRlZWVldocWFnSUFkSFIwOEc2WFdRdXVxYW5CN3QyNzRmVjZVVnBhaXV6c2JBQWJUenlKaE1GZ2dFS2hnTmZyUlgxOVBXUXlHUURBYURUeXlvK1Y0SnFhR3Noa01zcmljTGxjT0g3OE9JQ05DV3A4cDBjd3dXQXdvS3FxYWhQdkcyKzhBV0RqaSs3dTd1YWNKeXZCTXBrc3JLeGtaV1ZSMHlMR3hzWTRFN05CVlZWVkdLOUNvYUNtUlhSMGRIRE9rNVZndW9yQjUvT2hvcUlDWXJFNFlaMlBTTHhYcmx5QlJDTGhOY0UxcHVmaDFkVlZYTHg0RVdscGFSR25KekNCalh0SWQ4N2c0R0JVM3JpNWgxdUo1K2ZuWThtQ3RYdkloVGZsSG9ZZzVSNG1FeW4zTUFsNDVLeVdsT0NkamtkT2NNbzlUQ1pTN21IS1BlU0doTG1INUxCT3JBR1hYTjFEY2xpSHJnZEZnc2s5NUN6WWJyZkRiRGJENy9lanJLd3N0cG10Tk81aEpKaE1KclMydHNMdGRxT3BxUWxhclRaaTJtanVJV3ZCZnI4ZlpyTjUwL2l6Mld6RzlQUTBubi8rZWRvbkV6WmdpajEwdVZ3d0dvMmJ4cCtOUmlPR2hvYncrdXV2MDA1aGp0azlKRU56NkFiYnlXQ3VSRVNwMld3Mk5EYzMwdzYyV3l3VzZIUTZ6b09Jck81d2JtNHV6cDgvajVXVkZYUjJkbTQ2VmxkWGgzMzc5bUY1ZVRrdTg2ZERVVnhjaks2dUx0aHN0ckNscXJxNnVuRG8wQ0hPdkt3RSsvMStMQzR1VXFHMG9aaVltSWhhaWNRQ2t2ZnUzYnRoeHdZR0JuaFZtcHk2Tm5TRDdreHhRdkVBM1pvK2ZJc1FKOEYwNDBqMzc5L25SY3dGZEY0MDM3RndUb0xwaGtVWEZ4ZDVFWE1CM2Noa1VnUTduYzZ3ZlQ2ZkwrR20rSC8vL1JlMnorVnk4VExGR1N1dC92NStSc1BzbTIrK0FiRFI4NHBYTEZORFF3UGplbHhuejU0RnNCRksrL25ubjdQS2wvRU9hN1ZhVm1IdllyRTRhdStISzI3ZXZNa3E3RjBpa2VEbXpadXM4MlVVN0hLNXFHOHlHczZlUGN0NzNnVWRmRDRmMnR2YkdkTzF0N2R6YW9jWkJSTUVBYUZRU0JuaGRLaXBxWUZRS09SbG0wVGp6Y3ZMbzR4d09oZ01CdVRsNVhIaVpWVnArZjEreUdReTJpRHE0dUppeUdTeWhGUmNmcjhmVlZWVnRFSFVHbzBHVlZWVm5IbFoxOUplcnhkcXRScFNxWlRhSjVWS29WYXJFenJkd2V2MVFxL1hRNmxVVXZ1VVNpWDBlajB2WGs3TjBzcktDalFhRGJYbWpVYWp3Y3JLQ21mU1VMRDVPYTZzcktDdHJRMFNpUVFTaVFSdGJXMk12SEZ6RDBNcnNYaFVVbXpkdzlCS2pLbVNpcXQ3U0JCRTNDb25ydTRoT2E4a1dxQm55ajNjZ2wwRVFjUTBjTVlXVzNrSWdraUtlN2lWVjJDMVdvbjA5UFNZeExDQjErdEZabVltdGIyMnRvYnQ0RTFMQmltQVRhUUFraUtXanZlUjg1WlNnbmM2VXU1aE1wRnlEMVB1SVRla1lnL1p4QjUyZFhYRlRNbzJuMUQzOE5TcFU3empERVAveUh6aXNuSnBJc0JtNWRKNDVybnRncE9OdUlUVEppcmN0cVdsSmFiamRHQVV2TlVFcDBOb3V4Y3Z0TGEyTWdaaG1Vd216cUtqQ3JiYjdhdzlIQzVwbVdBeW1WaXZiMmt5bVRnRmUwUnNscmJlTlRhMXJ0bHNoa2drUW41K1B1c0wySXF0ZDQyTmRXTTBHcEdWbFlXVEowOHlwbzE0aC9uR0k4VWF4OFEzWEpidGVSRUZWMVpXOGlMbWV4NkphOWV1SmZTOGlEOXB1VnlPbXBvYTNMNTlHOERtVlVxM2dsek5sQXpvaW1WZ3ZycTZHbWxwYWREcjlRQTJyMUs2RmVScXBtUkFGeHZlaUlLOVhpOFZaL2pMTDc4d2h1bFVWRlRFTEpia0plTU1qVVlqSTI5VFV4TnJzUUJEWDVxTU00dzBxRTJpdUxnWXBhV2xjWE1QeVRoRHBoV01OUm9ONnV2ck9mR3lza3ZWYW5YVU5HcTFPcTVXS2NsTC9xd2pRYS9YYytabDFkTmk4bkZpOVplU3ladnFTMGVyamJtQWJUNmtUN1gxbFFwOFFlWVR5YXNLRTh3M2FKSnZQaDZQQndSQllHWm1KaTY4TXpNenFkakRVRHg2N21Fc0Z4d3JVckdIU1VDcVdkcnBTQW5lNmRpeDd1Rnp6ejFIVzBzL0ZPN2gvdjM3VVZCUWdNY2VleXhtOTlEbGNzRnV0Mk53Y0JBQ2dTRHNuVEhiN2g0ZVBIZ1F4Y1hGY1RQVE1qSXlJSkZJY09mT0hmeisrKzhQbDJEU1BTVGZ0eFF2OTNEWHJsMG9LaXJDblR0M3d0SXdGaHE2MmFwdXR4dG1zNW1hQ1I4cEhST0VRaUVrRWdudGV3L1gxdGJDM211NHRMU0U5dloybkQ5L25qWmQ2UG43OXUzakhvbzNPVG1Kc2JFeG5EbHpCc0RHV0xYZGJxY05vZW50N1lWQ29jQ2hRNGRZaCtWRmlqM3M3dTVHUjBjSDlZV2FUQ2JjdW5WcjB5TWttZmJDaFF2UWFyWFFhclZVV0Y0d0dFUjZlanA3d2RQVDB6Q2J6ZkI0UEp2MlI3TlQvSDQvckZZckppY25VVlpXeG5vd1B0VHBHeG9hZ3RGb0RBc0lpMmFudU4xdWZQbmxsK2p1N3NhbFM1ZHc0c1FKS2srNjRoSDJGVGdjRGd3UEQ0ZUpaUXUvM3crYnpjWjVKU1NMeFlMMzMzK2ZOdnFORGR4dU4zcDZlaGpQRHhNc2w4dGpqa3c1Y2VJRU5mT1ZMVlFxRmQ1ODg4MlllQTBHQTdXaVdpU0VDZmI1ZlBqcHA1OEFiS3lCeC9iQ3BWSXA2dXJxQUFEZmYvODk1d2Y2dGJVMWZQYlpad0NBanovK21QSENTU2lWU3NyM2V1ZWRkeGg1YVd0cE1yd3VKeWVIOWN1Y3pwMDdSNVVadmt0Ty9mbm5ud0NBWThlT29hK3ZqOVU1bloyZDFDc0gyZmhhVVp1bHdjRkIxa0dOaTR1TGpLL2dZd3VEd2NDSjkrMjMzMmFkZDlSbXlXNjN3KzEyUTZGUUlDOHZENWN2WDhiQ3dnSTE5VmNxbGNKbXM4SGhjR0J5Y2pKdVN6NmFUQ2JNenM1Q3E5WGk2TkdqR0IwZHhjVEVCSnhPSnlRU0NaUktKVVpHUmpBeU1vTC8vZTkvakJGc29hQVZMSmZMS1p2RDRYQlEzN1pFSXRsVXBoME9CMjM4Z1Z3dTV5U1FoRXFsb3BvK2k4VkN0YnN5bVd4VG1iNTc5eTZ0NDZCU3FSZzVhQVhYMXRiaTIyKy9EWnZZNVhRNmFRTXVReUdWU2xGYlc4dHJnYjZXbGhZME5EUmdZbUppMC82Wm1SbkdZVnlsVW9tV2xoYkdlR2JhTXV6eGVLRFJhS2hWRGRrZ096c2JsWldWT0hmdUhPODJmSDE5SFcxdGJXaHFhbUw5dWwyWlRJYlhYbnNObloyZHJON3lGZkZGank2WEM2V2xwVkNwVkZoYVdzSy8vLzVMVmZuejgvUEl5OHNEQU96ZXZSdTV1Ym5JeWNtQngrT0pLWjZZSUFqNGZEN1UxOWVqc2JFUmYvenhCNGFIaHlrcmRIeDhIRTgvL1RRQVlQLysvVkFxbFZBb0ZKeDRJMVphcEdpeXJCdzRjQUQzN3QyRFhDN0hnUU1IQUd4MFFYTnljckMrdmg2M1ZSNUNlY253M0o2ZUhxaFVLcFNYbHdQWTZPSSs4OHd6QUxpSHhuTjZQUHo1NTUvRDloMDhlSkFUSVIvUXpkOWdFL0ZLaDlTWUZsdkk1WEtxUE1VQ3JsRnVLcFVLcDArZlprd1hEQVpwOTNNU0xCYUxVVkpTZ3FOSGp5SWpJd05lcnpmbU9SMHVsNHN4OWxBaWtlRDA2ZE40K2VXWElaVktHWG5qNWg1ZXZIZ1JYcThYSG8rSGQ5TVRDcEZJaEh2MzdpRW5KeWRxcC8rSEgzNkExK3VGeStWaXJLVGk2aDdHdWc3dFZwRHVJVUVRS0N3c2pPZ2UvdlBQUDZ6eUN3UUNXRjVleGw5Ly9ZWDUrWGxhOTNEYnpUU2J6UWFyMVlyMTlmVzR1b2NsSlNVcDl4QjRCSnVsbE9DZGprZE84UDhCR0NRMGhuRjFEeFVBQUFBQVNVVk9SSzVDWUlJPSk7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMDBweDtib3JkZXItYm90dG9tOm5vbmV9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnRpbWluZy1tb2RlLWJ1dHRvbi5hY3RpdmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzBweCAtMTAwcHh9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnJvdGF0ZS1tb2RlLWJ1dHRvbntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUR3QUFBQ2hDQVlBQUFDYkJOenZBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJWMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBM0x6RTJMekV6Uk5FS1V3QUFBQngwUlZoMFUyOW1kSGRoY21VQVFXUnZZbVVnUm1seVpYZHZjbXR6SUVOVE51aThzb3dBQUE5YVNVUkJWSGljN1YxclRGdmwvLytVcmdVbVpXTXBiTGE2Y0xFcndwWXhrcUxHa2pBRzg4V1NibXVtR1VsbHZsbUFKY3RNUnR5YnZsSHJMWGlKVWVrTUladVlTQ0w1Z1MrRXVMSVhHRUdqcUNzbGxDRVc2eFFFQ2d6V0c3UzA1LytDL3prcDlMVG4wZ3NMNnljaDlKenpuT2R6UGoxOUx1ZjVQTi9uQ041OTkxM2l4UmRmUkZkWEZ4THgvMkdEZ0NBSVltcHFDb1dGaFVqRS80Y05hZSs5OXg0QUlGSC9IemFrN25EcUR1K3dPeXl3Mld6RWRsOUVNcEcyM1JlUWJLUUU3M1E4Y29KM2JmY0ZXSzFXL1BiYmIvRDcvVWhMaS8zN0R3YURFSXZGS0M4dlIwbEpTZGp4YlJWc3RWb3hQRHlNeHg5L0hBVUZCY2pNeklSQUlPQ2RYekFZaE52dGh0MXV4L0R3TUFDRWlkNVd3U01qSTNqeXlTZFJYRndNc1ZnTW9WQVlrMkNDSUpDWm1ZbnM3R3lNam81aVpHUWtQb0tYbDVleGQrOWUzaGRHSWhnTUlqOC9INW1abVJDSlJJeUN5UTVOSkJBRWdVQWdBS0ZRaUlLQ0Fpd3NMSVNsNFZ4b0hBNEgrdnY3NFhhN3VaNGFCcUZRaU96c2JJaEVJb2pGWW9qRllvaEVJdHEvOGZGeFhMbHlCVXRMU3hIVGhPYXhaODhlQ0lYQzJBV1BqNDhEQUg3OTlkZVlCYWVscFVFb0ZMTDYrK3FycndBQUgzendBYXYwWXJHWXRoTGtKSGg2ZWhwemMzTUFnUG41ZVV4UFQ4Y3NXaUFRTUpiYm9hRWhtTTFtQUlERllzSFEwQkR2UERrSnRsZ3NZZHQrdjU5TEZyeHcvZnIxc0cyWHk4VXJMMDZDNit2cnc3YkZZakV2WWk3NDdydnZ3cllsRWdtdnZEalYwZzZISStwMm9oQlAzcWgzMk9Gd29MZTNsMVZHdmIyOXNOdnR2QzhrRkNNakk5RHBkS3pTNm5RNm1Fd20xbm5UUGcvNy9YNk1qWTFoY25LUy9WWCtQL2J1M1l1eXNqTGs1dVl5cHYzNjY2OXg4dVJKWkdSa1FDUVN3ZXYxb3FPakF6MDlQWng1Q3dzTGNlblNKUncrZkJoK3Z4K3JxNnN3bVV4NDZhV1hOcVdqdmNNREF3Tzh4QUliblpLQmdRRmVOWGh6Y3pNdnNjQkdwNlM1dVJrLy92aGoxSFMwZ3JWYUxZcUxpM2tSeStWeTFOWFZSZTBSUmNLTkd6ZWcwV2g0OGFwVUtuUjFkYUc2dWpwcU90cEt5K1Z5UWExV282U2tCTGR2MzhhRkN4ZW9ZNTk4OGduMStmTGx5OVRuTDc3NEFwV1ZsWGppaVNmZ2REcXh0cmJHK2FKOVBoLzBlajNPbkRrRHZWNlBXN2R1VWNlT0hEbENmUjRkSGFVK3YvRENDN2gyN1JyVWFqV2NUaWRXVjFlamN0QUtKZ2dDS3lzcnlNek1oRTZudyt6c0xPM0pvZnQxT2gwZVBIaUFwYVVsZHVxaThCWVZGYUd2cjQ4VmIxOWZIeWZlcU0yU3orZGozUVRFczRsS0pDK25qc2ZXSm9wdGt4VXJ0alpSYkpzc09uQVNYRnRiRzNVN1VYanJyYmVpYm5NQko4RlpXVmtvS3lzREFCUVVGQ0FySzRzM01SY29GQXJxcmxaWFYwT2hVUERPaTVOZ244K0h3NGNQUXlxVjR0bG5uNFhQNStOTlRJSWdtSDBBbjgrSFYxNTVCVXFsRXErKytpb3Iza0FnUUx1Zjg0akgydG9hamg4L2p2WDFkYTZuMHNMajhTQWpJNE14SFVFUStQVFRUMW5sU1JBRUhqeDRRSHRzVzhlMFJDSVI3SFk3OXV6WkUvR09jRVVnRUVBZ0VNRGZmLzhOa1VnVWRueGJCUjg1Y2dSbXN4a0NnUUQ1K2ZrUmgyWFlJaEFJNFA3OSs1aWFtb0xENGNDeFk4ZkMwbXlyNEtlZWVnb0NnUUJXcXhWemMzTklTMHVMZWRReUdBeGkxNjVkS0M4dlIxRlJVVmlhbEh1NDA1RVN2TlB4eUFsT3VZZkpSTW85ZkZqZHczaUJxM3ZJQkRidTRiWUszdW9leHRLdEpFSDJ5V055RDhueUVHOHd1WWNmZnZnaGEzY3hydTZoM1c1SGYzOS9Rb3l6YUU2ZnlXUkNRME1EWitNc0x1N2g4dkl5ZW50N3NieTh6SWs4Vmt4TlRVR24wOEZtczhVbFAwNE5uOS92UjM5L2Y5dzhKTFp3dTkxb2JHems1Q0ZGQXErV2ZuaDRtREtvazRtV2xoYTB0cmJHbEFmdnJzM2s1Q1FHQmdhU1lvaUhvcWVuQjFldlhrMk9JYjRWRG9jREpwTXA2ZVhhWXJHZ3NiR1JWN21PdWZQcThYZ3dNRENROUhJOU56ZUhxMWV2Y2k3WHZEc2VVcWtVV3EwVzZlbnBDQWFEY0RxZDhIcTlmTE5qRGFWU2lSczNia0Fpa2ZEaTVYU0h4V0l4YW1wcUFBQUxDd3NZR2hyQzdPd3M1dWZuRXlwV0lwSEFZREFBQUNZbUpuRDkrblhldkp3RW56cDFDaktaREJVVkZRQ0FzYkd4cEpUZmp6NzZDRlZWVldocWFnSUFkSFIwOEc2WFdRdXVxYW5CN3QyNzRmVjZVVnBhaXV6c2JBQWJUenlKaE1GZ2dFS2hnTmZyUlgxOVBXUXlHUURBYURUeXlvK1Y0SnFhR3Noa01zcmljTGxjT0g3OE9JQ05DV3A4cDBjd3dXQXdvS3FxYWhQdkcyKzhBV0RqaSs3dTd1YWNKeXZCTXBrc3JLeGtaV1ZSMHlMR3hzWTRFN05CVlZWVkdLOUNvYUNtUlhSMGRIRE9rNVZndW9yQjUvT2hvcUlDWXJFNFlaMlBTTHhYcmx5QlJDTGhOY0UxcHVmaDFkVlZYTHg0RVdscGFSR25KekNCalh0SWQ4N2c0R0JVM3JpNWgxdUo1K2ZuWThtQ3RYdkloVGZsSG9ZZzVSNG1FeW4zTUFsNDVLeVdsT0NkamtkT2NNbzlUQ1pTN21IS1BlU0doTG1INUxCT3JBR1hYTjFEY2xpSHJnZEZnc2s5NUN6WWJyZkRiRGJENy9lanJLd3N0cG10Tk81aEpKaE1KclMydHNMdGRxT3BxUWxhclRaaTJtanVJV3ZCZnI4ZlpyTjUwL2l6Mld6RzlQUTBubi8rZWRvbkV6WmdpajEwdVZ3d0dvMmJ4cCtOUmlPR2hvYncrdXV2MDA1aGp0azlKRU56NkFiYnlXQ3VSRVNwMld3Mk5EYzMwdzYyV3l3VzZIUTZ6b09Jck81d2JtNHV6cDgvajVXVkZYUjJkbTQ2VmxkWGgzMzc5bUY1ZVRrdTg2ZERVVnhjaks2dUx0aHN0ckNscXJxNnVuRG8wQ0hPdkt3RSsvMStMQzR1VXFHMG9aaVltSWhhaWNRQ2t2ZnUzYnRoeHdZR0JuaFZtcHk2Tm5TRDdreHhRdkVBM1pvK2ZJc1FKOEYwNDBqMzc5L25SY3dGZEY0MDM3RndUb0xwaGtVWEZ4ZDVFWE1CM2Noa1VnUTduYzZ3ZlQ2ZkwrR20rSC8vL1JlMnorVnk4VExGR1N1dC92NStSc1BzbTIrK0FiRFI4NHBYTEZORFF3UGplbHhuejU0RnNCRksrL25ubjdQS2wvRU9hN1ZhVm1IdllyRTRhdStISzI3ZXZNa3E3RjBpa2VEbXpadXM4MlVVN0hLNXFHOHlHczZlUGN0NzNnVWRmRDRmMnR2YkdkTzF0N2R6YW9jWkJSTUVBYUZRU0JuaGRLaXBxWUZRS09SbG0wVGp6Y3ZMbzR4d09oZ01CdVRsNVhIaVpWVnArZjEreUdReTJpRHE0dUppeUdTeWhGUmNmcjhmVlZWVnRFSFVHbzBHVlZWVm5IbFoxOUplcnhkcXRScFNxWlRhSjVWS29WYXJFenJkd2V2MVFxL1hRNmxVVXZ1VVNpWDBlajB2WGs3TjBzcktDalFhRGJYbWpVYWp3Y3JLQ21mU1VMRDVPYTZzcktDdHJRMFNpUVFTaVFSdGJXMk12SEZ6RDBNcnNYaFVVbXpkdzlCS2pLbVNpcXQ3U0JCRTNDb25ydTRoT2E4a1dxQm55ajNjZ2wwRVFjUTBjTVlXVzNrSWdraUtlN2lWVjJDMVdvbjA5UFNZeExDQjErdEZabVltdGIyMnRvYnQ0RTFMQmltQVRhUUFraUtXanZlUjg1WlNnbmM2VXU1aE1wRnlEMVB1SVRla1lnL1p4QjUyZFhYRlRNbzJuMUQzOE5TcFU3empERVAveUh6aXNuSnBJc0JtNWRKNDVybnRncE9OdUlUVEppcmN0cVdsSmFiamRHQVV2TlVFcDBOb3V4Y3Z0TGEyTWdaaG1Vd216cUtqQ3JiYjdhdzlIQzVwbVdBeW1WaXZiMmt5bVRnRmUwUnNscmJlTlRhMXJ0bHNoa2drUW41K1B1c0wySXF0ZDQyTmRXTTBHcEdWbFlXVEowOHlwbzE0aC9uR0k4VWF4OFEzWEpidGVSRUZWMVpXOGlMbWV4NkphOWV1SmZTOGlEOXB1VnlPbXBvYTNMNTlHOERtVlVxM2dsek5sQXpvaW1WZ3ZycTZHbWxwYWREcjlRQTJyMUs2RmVScXBtUkFGeHZlaUlLOVhpOFZaL2pMTDc4d2h1bFVWRlRFTEpia0plTU1qVVlqSTI5VFV4TnJzUUJEWDVxTU00dzBxRTJpdUxnWXBhV2xjWE1QeVRoRHBoV01OUm9ONnV2ck9mR3lza3ZWYW5YVU5HcTFPcTVXS2NsTC9xd2pRYS9YYytabDFkTmk4bkZpOVplU3ladnFTMGVyamJtQWJUNmtUN1gxbFFwOFFlWVR5YXNLRTh3M2FKSnZQaDZQQndSQllHWm1KaTY4TXpNenFkakRVRHg2N21Fc0Z4d3JVckdIU1VDcVdkcnBTQW5lNmRpeDd1Rnp6ejFIVzBzL0ZPN2gvdjM3VVZCUWdNY2VleXhtOTlEbGNzRnV0Mk53Y0JBQ2dTRHNuVEhiN2g0ZVBIZ1F4Y1hGY1RQVE1qSXlJSkZJY09mT0hmeisrKzhQbDJEU1BTVGZ0eFF2OTNEWHJsMG9LaXJDblR0M3d0SXdGaHE2MmFwdXR4dG1zNW1hQ1I4cEhST0VRaUVrRWdudGV3L1gxdGJDM211NHRMU0U5dloybkQ5L25qWmQ2UG43OXUzakhvbzNPVG1Kc2JFeG5EbHpCc0RHV0xYZGJxY05vZW50N1lWQ29jQ2hRNGRZaCtWRmlqM3M3dTVHUjBjSDlZV2FUQ2JjdW5WcjB5TWttZmJDaFF2UWFyWFFhclZVV0Y0d0dFUjZlanA3d2RQVDB6Q2J6ZkI0UEp2MlI3TlQvSDQvckZZckppY25VVlpXeG5vd1B0VHBHeG9hZ3RGb0RBc0lpMmFudU4xdWZQbmxsK2p1N3NhbFM1ZHc0c1FKS2srNjRoSDJGVGdjRGd3UEQ0ZUpaUXUvM3crYnpjWjVKU1NMeFlMMzMzK2ZOdnFORGR4dU4zcDZlaGpQRHhNc2w4dGpqa3c1Y2VJRU5mT1ZMVlFxRmQ1ODg4MlllQTBHQTdXaVdpU0VDZmI1ZlBqcHA1OEFiS3lCeC9iQ3BWSXA2dXJxQUFEZmYvODk1d2Y2dGJVMWZQYlpad0NBanovK21QSENTU2lWU3NyM2V1ZWRkeGg1YVd0cE1yd3VKeWVIOWN1Y3pwMDdSNVVadmt0Ty9mbm5ud0NBWThlT29hK3ZqOVU1bloyZDFDc0gyZmhhVVp1bHdjRkIxa0dOaTR1TGpLL2dZd3VEd2NDSjkrMjMzMmFkZDlSbXlXNjN3KzEyUTZGUUlDOHZENWN2WDhiQ3dnSTE5VmNxbGNKbXM4SGhjR0J5Y2pKdVN6NmFUQ2JNenM1Q3E5WGk2TkdqR0IwZHhjVEVCSnhPSnlRU0NaUktKVVpHUmpBeU1vTC8vZTkvakJGc29hQVZMSmZMS1p2RDRYQlEzN1pFSXRsVXBoME9CMjM4Z1Z3dTV5U1FoRXFsb3BvK2k4VkN0YnN5bVd4VG1iNTc5eTZ0NDZCU3FSZzVhQVhYMXRiaTIyKy9EWnZZNVhRNmFRTXVReUdWU2xGYlc4dHJnYjZXbGhZME5EUmdZbUppMC82Wm1SbkdZVnlsVW9tV2xoYkdlR2JhTXV6eGVLRFJhS2hWRGRrZ096c2JsWldWT0hmdUhPODJmSDE5SFcxdGJXaHFhbUw5dWwyWlRJYlhYbnNObloyZHJON3lGZkZGank2WEM2V2xwVkNwVkZoYVdzSy8vLzVMVmZuejgvUEl5OHNEQU96ZXZSdTV1Ym5JeWNtQngrT0pLWjZZSUFqNGZEN1UxOWVqc2JFUmYvenhCNGFIaHlrcmRIeDhIRTgvL1RRQVlQLysvVkFxbFZBb0ZKeDRJMVphcEdpeXJCdzRjQUQzN3QyRFhDN0hnUU1IQUd4MFFYTnljckMrdmg2M1ZSNUNlY253M0o2ZUhxaFVLcFNYbHdQWTZPSSs4OHd6QUxpSHhuTjZQUHo1NTUvRDloMDhlSkFUSVIvUXpkOWdFL0ZLaDlTWUZsdkk1WEtxUE1VQ3JsRnVLcFVLcDArZlprd1hEQVpwOTNNU0xCYUxVVkpTZ3FOSGp5SWpJd05lcnpmbU9SMHVsNHN4OWxBaWtlRDA2ZE40K2VXWElaVktHWG5qNWg1ZXZIZ1JYcThYSG8rSGQ5TVRDcEZJaEh2MzdpRW5KeWRxcC8rSEgzNkExK3VGeStWaXJLVGk2aDdHdWc3dFZwRHVJVUVRS0N3c2pPZ2UvdlBQUDZ6eUN3UUNXRjVleGw5Ly9ZWDUrWGxhOTNEYnpUU2J6UWFyMVlyMTlmVzR1b2NsSlNVcDl4QjRCSnVsbE9DZGprZE84UDhCR0NRMGhuRjFEeFVBQUFBQVNVVk9SSzVDWUlJPSk7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMzBweDtib3JkZXItYm90dG9tOm5vbmV9KiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnJvdGF0ZS1tb2RlLWJ1dHRvbi5hY3RpdmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzBweCAtMTMwcHh9Ci08L3N0eWxlPgorKiAvZGVlcC8geC1kcmFnLWhhbmRsZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2t9KiAvZGVlcC8geC1kcmFnLWhhbmRsZS5ob3Jpem9udGFsLWRyYWctaGFuZGxle2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsMCAwLDAgMTAwJSxmcm9tKCNFNUU1RTUpLHRvKCNEMUQxRDEpKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOGU4ZThlO2JvcmRlci10b3A6MXB4IHNvbGlkIHdoaXRlO2N1cnNvcjpucy1yZXNpemU7aGVpZ2h0OjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwfSogL2RlZXAvIHgtZHJhZy1oYW5kbGUudmVydGljYWwtZHJhZy1oYW5kbGV7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhciwwIDAsMTAwJSAwLGZyb20oI0U1RTVFNSksdG8oI0QxRDFEMSkpO2JvcmRlci1sZWZ0OjFweCBzb2xpZCB3aGl0ZTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICM4ZThlOGU7Y3Vyc29yOmV3LXJlc2l6ZTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo3cHg7ei1pbmRleDoxMH0KKzwvc3R5bGU+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLWRyb3Bkb3duIj4KKzx0ZW1wbGF0ZT4KIDxzdHlsZT4KLSogL2RlZXAvIC50b29sLWJ1dHRvbntiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNCQ0JDQkM7Ym9yZGVyLXRvcDoxcHggc29saWQgI0YxRjFGMTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MzBweH0qIC9kZWVwLyAudG9vbC1idXR0b24uYWN0aXZle2N1cnNvcjphdXRvfQotPC9zdHlsZT4KLTx0ZW1wbGF0ZSBpZD0ibW91c2UtbW9kZS1zZWxlY3Rvci10ZW1wbGF0ZSI+CisgICAgOmhvc3QgeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgI291dGVyIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIHBhZGRpbmc6IDFweCA0cHggMXB4IDRweDsKKyAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgfQorCisgICAgI3N0YXRlIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CisgICAgICBtYXJnaW4tcmlnaHQ6IDBweDsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgIH0KKworICAgICNpY29uIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgIH0KKyAgICBkaWFsb2cgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgcGFkZGluZzogMDsKKyAgICAgIGJvcmRlcjogMDsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgZGlhbG9nOjpiYWNrZHJvcCB7CisgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4wNSk7CisgICAgfQorCisgICAgI2RpYWxvZy1mcmFtZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIHBhZGRpbmc6IDZweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgIGN1cnNvcjogZGVmYXVsdDsKKyAgICB9CisgICAgPC9zdHlsZT4KKzx0ci11aS1iLXRvb2xiYXItYnV0dG9uIGlkPSJvdXRlciIgb24ta2V5ZG93bj0ie3sgb25PdXRlcktleURvd25fIH19IiBvbi1jbGljaz0ie3sgb25PdXRlckNsaWNrXyB9fSI+Cis8ZGl2IGlkPSJpY29uIj4mIzk4ODE7PC9kaXY+Cis8ZGl2IGlkPSJzdGF0ZSI+JiM5NjYyOzwvZGl2PgorPC90ci11aS1iLXRvb2xiYXItYnV0dG9uPgorPGRpYWxvZyBpZD0iZGlhbG9nIiBvbi1jbGljaz0ie3sgb25EaWFsb2dDbGlja18gfX0iIG9uLWNhbmNlbD0ie3sgb25EaWFsb2dDYW5jZWxfIH19Ij4KKzxkaXYgaWQ9ImRpYWxvZy1mcmFtZSI+Cis8Y29udGVudD48L2NvbnRlbnQ+Cis8L2Rpdj4KKzwvZGlhbG9nPgorPC90ZW1wbGF0ZT4KKworPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0di11aS1iLWhvdGtleS1jb250cm9sbGVyIj4KKworPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLXRvb2xiYXItYnV0dG9uIiBub3NjcmlwdD0ibm9zY3JpcHQiPgorPHRlbXBsYXRlPgorPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OworICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpOworICAgICAgY29sb3I6IHJnYmEoMCwwLDAsMC44KTsKKyAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICAgIG1pbi13aWR0aDogMjNweDsKKyAgICB9CisKKyAgICA6aG9zdCg6aG92ZXIpIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKKyAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOworICAgICAgYm94LXNoYWRvdzogMCAwIC4wNWVtIHJnYmEoMCwgMCwgMCwgMC40KTsKKyAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEpOworICAgIH0KKworICAgICNhbGlnbmVyIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKKyAgICB9CisgICAgPC9zdHlsZT4KKzxkaXYgaWQ9ImFsaWduZXIiPgorPGNvbnRlbnQ+PC9jb250ZW50PgorPC9kaXY+Cis8L3RlbXBsYXRlPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLW1vdXNlLW1vZGUtaWNvbiI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEd0FBQUNoQ0FZQUFBQ2JCTnp2QUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUFMRWdBQUN4SUIwdDErL0FBQUFCVjBSVmgwUTNKbFlYUnBiMjRnVkdsdFpRQTNMekUyTHpFelJORUtVd0FBQUJ4MFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1JtbHlaWGR2Y210eklFTlROdWk4c293QUFBOWFTVVJCVkhpYzdWMXJURnZsLy8rVXJnVW1aV01wYkxhNmNMRXJ3cFl4a3FMR2tqQUc4OFdTYm11bUdVbGx2bG1BSmN0TVJ0eWJ2bEhyTFhpSlVla01JWnVZU0NMNWdTK0V1TElYR0VHanFDc2xsQ0VXNnhRRUNneldHN1MwNS8rQy96a3A5TFRuMGdzTDZ5Y2g5Snp6bk9kelBqMTlMdWY1UE4vbkNONTk5MTNpeFJkZlJGZFhGeEx4LzJHRGdDQUlZbXBxQ29XRmhVakUvNGNOYWUrOTl4NEFJRkgvSHphazduRHFEdSt3T3l5dzJXekVkbDlFTXBHMjNSZVFiS1FFNzNROGNvSjNiZmNGV0sxVy9QYmJiL0Q3L1VoTGkvMzdEd2FERUl2RktDOHZSMGxKU2RqeGJSVnN0Vm94UER5TXh4OS9IQVVGQmNqTXpJUkFJT0NkWHpBWWhOdnRodDF1eC9Ed01BQ0VpZDVXd1NNakkzanl5U2RSWEZ3TXNWZ01vVkFZazJDQ0lKQ1ptWW5zN0d5TWpvNWlaR1FrUG9LWGw1ZXhkKzllM2hkR0loZ01JajgvSDVtWm1SQ0pSSXlDeVE1TkpCQUVnVUFnQUtGUWlJS0NBaXdzTElTbDRWeG9IQTRIK3Z2NzRYYTd1WjRhQnFGUWlPenNiSWhFSW9qRllvakZZb2hFSXRxLzhmRnhYTGx5QlV0TFN4SFRoT2F4Wjg4ZUNJWEMyQVdQajQ4REFINzk5ZGVZQmFlbHBVRW9GTEw2KytxcnJ3QUFIM3p3QWF2MFlyR1l0aExrSkhoNmVocHpjM01BZ1BuNWVVeFBUOGNzV2lBUU1KYmJvYUVobU0xbUFJREZZc0hRMEJEdlBEa0p0bGdzWWR0K3Y1OUxGcnh3L2ZyMXNHMlh5OFVyTDA2QzYrdnJ3N2JGWWpFdllpNzQ3cnZ2d3JZbEVnbXZ2RGpWMGc2SEkrcDJvaEJQM3FoMzJPRndvTGUzbDFWR3ZiMjlzTnZ0dkM4a0ZDTWpJOURwZEt6UzZuUTZtRXdtMW5uVFBnLzcvWDZNalkxaGNuS1MvVlgrUC9idTNZdXlzakxrNXVZeXB2MzY2Njl4OHVSSlpHUmtRQ1FTd2V2MW9xT2pBejA5UFp4NUN3c0xjZW5TSlJ3K2ZCaCt2eCtycTZzd21VeDQ2YVdYTnFXanZjTURBd084eEFJYm5aS0JnUUZlTlhoemN6TXZzY0JHcDZTNXVSay8vdmhqMUhTMGdyVmFMWXFMaTNrUnkrVnkxTlhWUmUwUlJjS05HemVnMFdoNDhhcFVLblIxZGFHNnVqcHFPdHBLeStWeVFhMVdvNlNrQkxkdjM4YUZDeGVvWTU5ODhnbjErZkxseTlUbkw3NzRBcFdWbFhqaWlTZmdkRHF4dHJiRythSjlQaC8wZWozT25Ea0R2VjZQVzdkdVVjZU9IRGxDZlI0ZEhhVSt2L0RDQzdoMjdSclVhaldjVGlkV1YxZWpjdEFLSmdnQ0t5c3J5TXpNaEU2bncrenNMTzNKb2Z0MU9oMGVQSGlBcGFVbGR1cWk4QllWRmFHdnI0OFZiMTlmSHlmZXFNMlN6K2RqM1FURXM0bEtKQytuanNmV0pvcHRreFVydGpaUmJKc3NPbkFTWEZ0YkczVTdVWGpycmJlaWJuTUJKOEZaV1Zrb0t5c0RBQlFVRkNBcks0czNNUmNvRkFycXJsWlhWME9oVVBET2k1TmduOCtIdzRjUFF5cVY0dGxubjRYUDUrTk5USUlnbUgwQW44K0hWMTU1QlVxbEVxKysraW9yM2tBZ1FMdWY4NGpIMnRvYWpoOC9qdlgxZGE2bjBzTGo4U0FqSTRNeEhVRVErUFRUVDFubFNSQUVIang0UUh0c1c4ZTBSQ0lSN0hZNzl1elpFL0dPY0VVZ0VFQWdFTURmZi84TmtVZ1VkbnhiQlI4NWNnUm1zeGtDZ1FENStma1JoMlhZSWhBSTRQNzkrNWlhbW9MRDRjQ3hZOGZDMG15cjRLZWVlZ29DZ1FCV3F4VnpjM05JUzB1TGVkUXlHQXhpMTY1ZEtDOHZSMUZSVVZpYWxIdTQwNUVTdk5QeHlBbE91WWZKUk1vOWZGamR3M2lCcTN2SUJEYnU0YllLM3VvZXh0S3RKRUgyeVdOeUQ4bnlFRzh3dVljZmZ2Z2hhM2N4cnU2aDNXNUhmMzkvUW95emFFNmZ5V1JDUTBNRForTXNMdTdoOHZJeWVudDdzYnk4eklrOFZreE5UVUduMDhGbXM4VWxQMDRObjkvdlIzOS9mOXc4Skxad3U5MW9iR3prNUNGRkFxK1dmbmg0bURLb2s0bVdsaGEwdHJiR2xBZnZyczNrNUNRR0JnYVNZb2lIb3FlbkIxZXZYazJPSWI0VkRvY0RKcE1wNmVYYVlyR2dzYkdSVjdtT3VmUHE4WGd3TURDUTlISTlOemVIcTFldmNpN1h2RHNlVXFrVVdxMFc2ZW5wQ0FhRGNEcWQ4SHE5ZkxOakRhVlNpUnMzYmtBaWtmRGk1WFNIeFdJeGFtcHFBQUFMQ3dzWUdockM3T3dzNXVmbkV5cFdJcEhBWURBQUFDWW1KbkQ5K25YZXZKd0VuenAxQ2pLWkRCVVZGUUNBc2JHeHBKVGZqejc2Q0ZWVlZXaHFhZ0lBZEhSMDhHNlhXUXV1cWFuQjd0Mjc0ZlY2VVZwYWl1enNiQUFiVHp5SmhNRmdnRUtoZ05mclJYMTlQV1F5R1FEQWFEVHl5bytWNEpxYUdzaGtNc3JpY0xsY09INzhPSUNOQ1dwOHAwY3d3V0F3b0txcWFoUHZHMis4QVdEamkrN3U3dWFjSnl2Qk1wa3NyS3hrWldWUjB5TEd4c1k0RTdOQlZWVlZHSzlDb2FDbVJYUjBkSERPazVWZ3VvckI1L09ob3FJQ1lyRTRZWjJQU0x4WHJseUJSQ0xoTmNFMXB1ZmgxZFZWWEx4NEVXbHBhUkduSnpDQmpYdElkODdnNEdCVTNyaTVoMXVKNStmblk4bUN0WHZJaFRmbEhvWWc1UjRtRXluM01BbDQ1S3lXbE9DZGprZE9jTW85VENaUzdtSEtQZVNHaExtSDVMQk9yQUdYWE4xRGNsaUhyZ2RGZ3NrOTVDellicmZEYkRiRDcvZWpyS3dzdHBtdE5PNWhKSmhNSnJTMnRzTHRkcU9wcVFsYXJUWmkybWp1SVd2QmZyOGZack41MC9pejJXekc5UFEwbm4vK2Vkb25FelpnaWoxMHVWd3dHbzJieHArTlJpT0dob2J3K3V1djAwNWhqdGs5SkVOejZBYmJ5V0N1UkVTcDJXdzJORGMzMHc2Mld5d1c2SFE2em9PSXJPNXdibTR1enA4L2o1V1ZGWFIyZG00NlZsZFhoMzM3OW1GNWVUa3U4NmREVVZ4Y2pLNnVMdGhzdHJDbHFycTZ1bkRvMENIT3ZLd0UrLzErTEM0dVVxRzBvWmlZbUloYWljUUNrdmZ1M2J0aHh3WUdCbmhWbXB5Nk5uU0Q3a3h4UXZFQTNabytmSXNRSjhGMDQwajM3OS9uUmN3RmRGNDAzN0Z3VG9McGhrVVhGeGQ1RVhNQjNjaGtVZ1E3bmM2d2ZUNmZMK0dtK0gvLy9SZTJ6K1Z5OFRMRkdTdXQvdjUrUnNQc20yKytBYkRSODRwWExGTkRRd1BqZWx4bno1NEZzQkZLKy9ubm43UEtsL0VPYTdWYVZtSHZZckU0YXUrSEsyN2V2TWtxN0YwaWtlRG16WnVzODJVVTdISzVxRzh5R3M2ZVBjdDczZ1VkZkQ0ZjJ0dmJHZE8xdDdkemFvY1pCUk1FQWFGUVNCbmhkS2lwcVlGUUtPUmxtMFRqemN2TG80eHdPaGdNQnVUbDVYSGlaVlZwK2YxK3lHUXkyaURxNHVKaXlHU3loRlJjZnI4ZlZWVlZ0RUhVR28wR1ZWVlZuSGxaMTlKZXJ4ZHF0UnBTcVpUYUo1VktvVmFyRXpyZHdldjFRcS9YUTZsVVV2dVVTaVgwZWowdlhrN04wc3JLQ2pRYURiWG1qVWFqd2NyS0NtZlNVTEQ1T2E2c3JLQ3RyUTBTaVFRU2lRUnRiVzJNdkhGekQwTXJzWGhVVW16ZHc5QktqS21TaXF0N1NCQkUzQ29ucnU0aE9hOGtXcUJueWozY2dsMEVRY1EwY01ZV1cza0lna2lLZTdpVlYyQzFXb24wOVBTWXhMQ0IxK3RGWm1ZbXRiMjJ0b2J0NEUxTEJpbUFUYVFBa2lLV2p2ZVI4NVpTZ25jNlV1NWhNcEZ5RDFQdUlUZWtZZy9aeEI1MmRYWEZUTW8ybjFEMzhOU3BVN3pqREVQL3lIemlzbkpwSXNCbTVkSjQ1cm50Z3BPTnVJVFRKaXJjdHFXbEphYmpkR0FVdk5VRXAwTm91eGN2dExhMk1nWmhtVXdtenFLakNyYmI3YXc5SEM1cG1XQXltVml2YjJreW1UZ0ZlMFJzbHJiZU5UYTFydGxzaGtna1FuNStQdXNMMklxdGQ0Mk5kV00wR3BHVmxZV1RKMDh5cG8xNGgvbkdJOFVheDhRM1hKYnRlUkVGVjFaVzhpTG1leDZKYTlldUpmUzhpRDlwdVZ5T21wb2EzTDU5RzhEbVZVcTNnbHpObEF6b2ltVmd2cnE2R21scGFkRHI5UUEycjFLNkZlUnFwbVJBRnh2ZWlJSzlYaThWWi9qTEw3OHdodWxVVkZURUxKYmtKZU1NalVZakkyOVRVeE5yc1FCRFg1cU1NNHcwcUUyaXVMZ1lwYVdsY1hNUHlUaERwaFdNTlJvTjZ1dnJPZkd5c2t2VmFuWFVOR3ExT3E1V0tjbEwvcXdqUWEvWGMrWmwxZE5pOG5GaTlaZVN5WnZxUzBlcmpibUFiVDZrVDdYMWxRcDhRZVlUeWFzS0U4dzNhSkp2UGg2UEJ3UkJZR1ptSmk2OE16TXpxZGpEVUR4NjdtRXNGeHdyVXJHSFNVQ3FXZHJwU0FuZTZkaXg3dUZ6enoxSFcwcy9GTzdoL3YzN1VWQlFnTWNlZXl4bTk5RGxjc0Z1dDJOd2NCQUNnU0RzblRIYjdoNGVQSGdReGNYRmNUUFRNakl5SUpGSWNPZk9IZnorKys4UGwyRFNQU1RmdHhRdjkzRFhybDBvS2lyQ25UdDN3dEl3RmhxNjJhcHV0eHRtczVtYUNSOHBIUk9FUWlFa0VnbnRldy9YMXRiQzNtdTR0TFNFOXZaMm5EOS9ualpkNlBuNzl1M2pIb28zT1RtSnNiRXhuRGx6QnNER1dMWGRicWNOb2VudDdZVkNvY0NoUTRkWWgrVkZpajNzN3U1R1IwY0g5WVdhVENiY3VuVnIweU1rbWZiQ2hRdlFhclhRYXJWVVdGNHdHRVI2ZWpwN3dkUFQwekNiemZCNFBKdjJSN05UL0g0L3JGWXJKaWNuVVZaV3hub3dQdFRwR3hvYWd0Rm9EQXNJaTJhbnVOMXVmUG5sbCtqdTdzYWxTNWR3NHNRSktrKzY0aEgyRlRnY0Rnd1BENGVKWlF1LzN3K2J6Y1o1SlNTTHhZTDMzMytmTnZxTkRkeHVOM3A2ZWhqUER4TXNsOHRqamt3NWNlSUVOZk9WTFZRcUZkNTg4ODJZZUEwR0E3V2lXaVNFQ2ZiNWZQanBwNThBYkt5QngvYkNwVklwNnVycUFBRGZmLzg5NXdmNnRiVTFmUGJaWndDQWp6LyttUEhDU1NpVlNzcjNldWVkZHhoNWFXdHBNcnd1SnllSDljdWN6cDA3UjVVWnZrdE8vZm5ubndDQVk4ZU9vYSt2ajlVNW5aMmQxQ3NIMmZoYVVadWx3Y0ZCMWtHTmk0dUxqSy9nWXd1RHdjQ0o5KzIzMzJhZGQ5Um15VzYzdysxMlE2RlFJQzh2RDVjdlg4YkN3Z0kxOVZjcWxjSm1zOEhoY0dCeWNqSnVTejZhVENiTXpzNUNxOVhpNk5HakdCMGR4Y1RFQkp4T0p5UVNDWlJLSlVaR1JqQXlNb0wvL2U5L2pCRnNvYUFWTEpmTEtadkQ0WEJRMzdaRUl0bFVwaDBPQjIzOGdWd3U1eVNRaEVxbG9wbytpOFZDdGJzeW1XeFRtYjU3OXk2dDQ2QlNxUmc1YUFYWDF0YmkyMisvRFp2WTVYUTZhUU11UXlHVlNsRmJXOHRyZ2I2V2xoWTBORFJnWW1KaTAvNlptUm5HWVZ5bFVvbVdsaGJHZUdiYU11enhlS0RSYUtoVkRka2dPenNibFpXVk9IZnVITzgyZkgxOUhXMXRiV2hxYW1MOXVsMlpUSWJYWG5zTm5aMmRyTjd5RmZGRmp5NlhDNldscFZDcFZGaGFXc0svLy81TFZmbno4L1BJeThzREFPemV2UnU1dWJuSXljbUJ4K09KS1o2WUlBajRmRDdVMTllanNiRVJmL3p4QjRhSGh5a3JkSHg4SEU4Ly9UUUFZUC8rL1ZBcWxWQW9GSng0STFaYXBHaXlyQnc0Y0FEMzd0MkRYQzdIZ1FNSEFHeDBRWE55Y3JDK3ZoNjNWUjVDZWNudzNKNmVIcWhVS3BTWGx3UFk2T0krODh3ekFMaUh4bk42UFB6NTU1L0Q5aDA4ZUpBVElSL1F6ZDlnRS9GS2g5U1lGbHZJNVhLcVBNVUNybEZ1S3BVS3AwK2Zaa3dYREFacDkzTVNMQmFMVVZKU2dxTkhqeUlqSXdOZXJ6Zm1PUjB1bDRzeDlsQWlrZUQwNmRONCtlV1hJWlZLR1huajVoNWV2SGdSWHE4WEhvK0hkOU1UQ3BGSWhIdjM3aUVuSnlkcXAvK0hIMzZBMSt1RnkrVmlyS1RpNmg3R3VnN3RWcER1SVVFUUtDd3NqT2dlL3ZQUFA2enlDd1FDV0Y1ZXhsOS8vWVg1K1hsYTkzRGJ6VFNielFhcjFZcjE5Zlc0dW9jbEpTVXA5eEI0Qkp1bGxPQ2Rqa2RPOFA4QkdDUTBobkYxRHhVQUFBQUFTVVZPUks1Q1lJST0pOworICAgICAgd2lkdGg6IDI3cHg7CisgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgfQorICAgIDpob3N0LmFjdGl2ZSB7CisgICAgICBjdXJzb3I6IGF1dG87CisgICAgfQorICAgIDwvc3R5bGU+Cis8L3RlbXBsYXRlPgorCis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWItbW91c2UtbW9kZS1zZWxlY3RvciI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgOmhvc3QgeworCisgICAgICAtd2Via2l0LXVzZXItZHJhZzogZWxlbWVudDsKKyAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisKKyAgICAgIGJhY2tncm91bmQ6ICNEREQ7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQkJCOworICAgICAgYm9yZGVyLXJhZGl1czogNHB4OworICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4yKTsKKyAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogMTAwcHg7CisgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgIHdpZHRoOiAyOXB4OworICAgICAgei1pbmRleDogMjA7CisgICAgfQorCisgICAgLmRyYWctaGFuZGxlIHsKKyAgICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUR3QUFBQ2hDQVlBQUFDYkJOenZBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFZ0FBQ3hJQjB0MSsvQUFBQUJWMFJWaDBRM0psWVhScGIyNGdWR2x0WlFBM0x6RTJMekV6Uk5FS1V3QUFBQngwUlZoMFUyOW1kSGRoY21VQVFXUnZZbVVnUm1seVpYZHZjbXR6SUVOVE51aThzb3dBQUE5YVNVUkJWSGljN1YxclRGdmwvLytVcmdVbVpXTXBiTGE2Y0xFcndwWXhrcUxHa2pBRzg4V1NibXVtR1VsbHZsbUFKY3RNUnR5YnZsSHJMWGlKVWVrTUladVlTQ0w1Z1MrRXVMSVhHRUdqcUNzbGxDRVc2eFFFQ2d6V0c3UzA1LytDL3prcDlMVG4wZ3NMNnljaDlKenpuT2R6UGoxOUx1ZjVQTi9uQ041OTkxM2l4UmRmUkZkWEZ4THgvMkdEZ0NBSVltcHFDb1dGaFVqRS80Y05hZSs5OXg0QUlGSC9IemFrN25EcUR1K3dPeXl3Mld6RWRsOUVNcEcyM1JlUWJLUUU3M1E4Y29KM2JmY0ZXSzFXL1BiYmIvRDcvVWhMaS8zN0R3YURFSXZGS0M4dlIwbEpTZGp4YlJWc3RWb3hQRHlNeHg5L0hBVUZCY2pNeklSQUlPQ2RYekFZaE52dGh0MXV4L0R3TUFDRWlkNVd3U01qSTNqeXlTZFJYRndNc1ZnTW9WQVlrMkNDSUpDWm1ZbnM3R3lNam81aVpHUWtQb0tYbDVleGQrOWUzaGRHSWhnTUlqOC9INW1abVJDSlJJeUN5UTVOSkJBRWdVQWdBS0ZRaUlLQ0Fpd3NMSVNsNFZ4b0hBNEgrdnY3NFhhN3VaNGFCcUZRaU96c2JJaEVJb2pGWW9qRllvaEVJdHEvOGZGeFhMbHlCVXRMU3hIVGhPYXhaODhlQ0lYQzJBV1BqNDhEQUg3OTlkZVlCYWVscFVFb0ZMTDYrK3FycndBQUgzendBYXYwWXJHWXRoTGtKSGg2ZWhwemMzTUFnUG41ZVV4UFQ4Y3NXaUFRTUpiYm9hRWhtTTFtQUlERllzSFEwQkR2UERrSnRsZ3NZZHQrdjU5TEZyeHcvZnIxc0cyWHk4VXJMMDZDNit2cnc3YkZZakV2WWk3NDdydnZ3cllsRWdtdnZEalYwZzZISStwMm9oQlAzcWgzMk9Gd29MZTNsMVZHdmIyOXNOdnR2QzhrRkNNakk5RHBkS3pTNm5RNm1Fd20xbm5UUGcvNy9YNk1qWTFoY25LUy9WWCtQL2J1M1l1eXNqTGs1dVl5cHYzNjY2OXg4dVJKWkdSa1FDUVN3ZXYxb3FPakF6MDlQWng1Q3dzTGNlblNKUncrZkJoK3Z4K3JxNnN3bVV4NDZhV1hOcVdqdmNNREF3Tzh4QUliblpLQmdRRmVOWGh6Y3pNdnNjQkdwNlM1dVJrLy92aGoxSFMwZ3JWYUxZcUxpM2tSeStWeTFOWFZSZTBSUmNLTkd6ZWcwV2g0OGFwVUtuUjFkYUc2dWpwcU90cEt5K1Z5UWExV282U2tCTGR2MzhhRkN4ZW9ZNTk4OGduMStmTGx5OVRuTDc3NEFwV1ZsWGppaVNmZ2REcXh0cmJHK2FKOVBoLzBlajNPbkRrRHZWNlBXN2R1VWNlT0hEbENmUjRkSGFVK3YvRENDN2gyN1JyVWFqV2NUaWRXVjFlamN0QUtKZ2dDS3lzcnlNek1oRTZudyt6c0xPM0pvZnQxT2gwZVBIaUFwYVVsZHVxaThCWVZGYUd2cjQ4VmIxOWZIeWZlcU0yU3orZGozUVRFczRsS0pDK25qc2ZXSm9wdGt4VXJ0alpSYkpzc09uQVNYRnRiRzNVN1VYanJyYmVpYm5NQko4RlpXVmtvS3lzREFCUVVGQ0FySzRzM01SY29GQXJxcmxaWFYwT2hVUERPaTVOZ244K0h3NGNQUXlxVjR0bG5uNFhQNStOTlRJSWdtSDBBbjgrSFYxNTVCVXFsRXErKytpb3Iza0FnUUx1Zjg0akgydG9hamg4L2p2WDFkYTZuMHNMajhTQWpJNE14SFVFUStQVFRUMW5sU1JBRUhqeDRRSHRzVzhlMFJDSVI3SFk3OXV6WkUvR09jRVVnRUVBZ0VNRGZmLzhOa1VnVWRueGJCUjg1Y2dSbXN4a0NnUUQ1K2ZrUmgyWFlJaEFJNFA3OSs1aWFtb0xENGNDeFk4ZkMwbXlyNEtlZWVnb0NnUUJXcXhWemMzTklTMHVMZWRReUdBeGkxNjVkS0M4dlIxRlJVVmlhbEh1NDA1RVN2TlB4eUFsT3VZZkpSTW85ZkZqZHczaUJxM3ZJQkRidTRiWUszdW9leHRLdEpFSDJ5V055RDhueUVHOHd1WWNmZnZnaGEzY3hydTZoM1c1SGYzOS9Rb3l6YUU2ZnlXUkNRME1EWitNc0x1N2g4dkl5ZW50N3NieTh6SWs4Vmt4TlRVR24wOEZtczhVbFAwNE5uOS92UjM5L2Y5dzhKTFp3dTkxb2JHems1Q0ZGQXErV2ZuaDRtREtvazRtV2xoYTB0cmJHbEFmdnJzM2s1Q1FHQmdhU1lvaUhvcWVuQjFldlhrMk9JYjRWRG9jREpwTXA2ZVhhWXJHZ3NiR1JWN21PdWZQcThYZ3dNRENROUhJOU56ZUhxMWV2Y2k3WHZEc2VVcWtVV3EwVzZlbnBDQWFEY0RxZDhIcTlmTE5qRGFWU2lSczNia0Fpa2ZEaTVYU0h4V0l4YW1wcUFBQUxDd3NZR2hyQzdPd3M1dWZuRXlwV0lwSEFZREFBQUNZbUpuRDkrblhldkp3RW56cDFDaktaREJVVkZRQ0FzYkd4cEpUZmp6NzZDRlZWVldocWFnSUFkSFIwOEc2WFdRdXVxYW5CN3QyNzRmVjZVVnBhaXV6c2JBQWJUenlKaE1GZ2dFS2hnTmZyUlgxOVBXUXlHUURBYURUeXlvK1Y0SnFhR3Noa01zcmljTGxjT0g3OE9JQ05DV3A4cDBjd3dXQXdvS3FxYWhQdkcyKzhBV0RqaSs3dTd1YWNKeXZCTXBrc3JLeGtaV1ZSMHlMR3hzWTRFN05CVlZWVkdLOUNvYUNtUlhSMGRIRE9rNVZndW9yQjUvT2hvcUlDWXJFNFlaMlBTTHhYcmx5QlJDTGhOY0UxcHVmaDFkVlZYTHg0RVdscGFSR25KekNCalh0SWQ4N2c0R0JVM3JpNWgxdUo1K2ZuWThtQ3RYdkloVGZsSG9ZZzVSNG1FeW4zTUFsNDVLeVdsT0NkamtkT2NNbzlUQ1pTN21IS1BlU0doTG1INUxCT3JBR1hYTjFEY2xpSHJnZEZnc2s5NUN6WWJyZkRiRGJENy9lanJLd3N0cG10Tk81aEpKaE1KclMydHNMdGRxT3BxUWxhclRaaTJtanVJV3ZCZnI4ZlpyTjUwL2l6Mld6RzlQUTBubi8rZWRvbkV6WmdpajEwdVZ3d0dvMmJ4cCtOUmlPR2hvYncrdXV2MDA1aGp0azlKRU56NkFiYnlXQ3VSRVNwMld3Mk5EYzMwdzYyV3l3VzZIUTZ6b09Jck81d2JtNHV6cDgvajVXVkZYUjJkbTQ2VmxkWGgzMzc5bUY1ZVRrdTg2ZERVVnhjaks2dUx0aHN0ckNscXJxNnVuRG8wQ0hPdkt3RSsvMStMQzR1VXFHMG9aaVltSWhhaWNRQ2t2ZnUzYnRoeHdZR0JuaFZtcHk2Tm5TRDdreHhRdkVBM1pvK2ZJc1FKOEYwNDBqMzc5L25SY3dGZEY0MDM3RndUb0xwaGtVWEZ4ZDVFWE1CM2Noa1VnUTduYzZ3ZlQ2ZkwrR20rSC8vL1JlMnorVnk4VExGR1N1dC92NStSc1BzbTIrK0FiRFI4NHBYTEZORFF3UGplbHhuejU0RnNCRksrL25ubjdQS2wvRU9hN1ZhVm1IdllyRTRhdStISzI3ZXZNa3E3RjBpa2VEbXpadXM4MlVVN0hLNXFHOHlHczZlUGN0NzNnVWRmRDRmMnR2YkdkTzF0N2R6YW9jWkJSTUVBYUZRU0JuaGRLaXBxWUZRS09SbG0wVGp6Y3ZMbzR4d09oZ01CdVRsNVhIaVpWVnArZjEreUdReTJpRHE0dUppeUdTeWhGUmNmcjhmVlZWVnRFSFVHbzBHVlZWVm5IbFoxOUplcnhkcXRScFNxWlRhSjVWS29WYXJFenJkd2V2MVFxL1hRNmxVVXZ1VVNpWDBlajB2WGs3TjBzcktDalFhRGJYbWpVYWp3Y3JLQ21mU1VMRDVPYTZzcktDdHJRMFNpUVFTaVFSdGJXMk12SEZ6RDBNcnNYaFVVbXpkdzlCS2pLbVNpcXQ3U0JCRTNDb25ydTRoT2E4a1dxQm55ajNjZ2wwRVFjUTBjTVlXVzNrSWdraUtlN2lWVjJDMVdvbjA5UFNZeExDQjErdEZabVltdGIyMnRvYnQ0RTFMQmltQVRhUUFraUtXanZlUjg1WlNnbmM2VXU1aE1wRnlEMVB1SVRla1lnL1p4QjUyZFhYRlRNbzJuMUQzOE5TcFU3empERVAveUh6aXNuSnBJc0JtNWRKNDVybnRncE9OdUlUVEppcmN0cVdsSmFiamRHQVV2TlVFcDBOb3V4Y3Z0TGEyTWdaaG1Vd216cUtqQ3JiYjdhdzlIQzVwbVdBeW1WaXZiMmt5bVRnRmUwUnNscmJlTlRhMXJ0bHNoa2drUW41K1B1c0wySXF0ZDQyTmRXTTBHcEdWbFlXVEowOHlwbzE0aC9uR0k4VWF4OFEzWEpidGVSRUZWMVpXOGlMbWV4NkphOWV1SmZTOGlEOXB1VnlPbXBvYTNMNTlHOERtVlVxM2dsek5sQXpvaW1WZ3ZycTZHbWxwYWREcjlRQTJyMUs2RmVScXBtUkFGeHZlaUlLOVhpOFZaL2pMTDc4d2h1bFVWRlRFTEpia0plTU1qVVlqSTI5VFV4TnJzUUJEWDVxTU00dzBxRTJpdUxnWXBhV2xjWE1QeVRoRHBoV01OUm9ONnV2ck9mR3lza3ZWYW5YVU5HcTFPcTVXS2NsTC9xd2pRYS9YYytabDFkTmk4bkZpOVplU3ladnFTMGVyamJtQWJUNmtUN1gxbFFwOFFlWVR5YXNLRTh3M2FKSnZQaDZQQndSQllHWm1KaTY4TXpNenFkakRVRHg2N21Fc0Z4d3JVckdIU1VDcVdkcnBTQW5lNmRpeDd1Rnp6ejFIVzBzL0ZPN2gvdjM3VVZCUWdNY2VleXhtOTlEbGNzRnV0Mk53Y0JBQ2dTRHNuVEhiN2g0ZVBIZ1F4Y1hGY1RQVE1qSXlJSkZJY09mT0hmeisrKzhQbDJEU1BTVGZ0eFF2OTNEWHJsMG9LaXJDblR0M3d0SXdGaHE2MmFwdXR4dG1zNW1hQ1I4cEhST0VRaUVrRWdudGV3L1gxdGJDM211NHRMU0U5dloybkQ5L25qWmQ2UG43OXUzakhvbzNPVG1Kc2JFeG5EbHpCc0RHV0xYZGJxY05vZW50N1lWQ29jQ2hRNGRZaCtWRmlqM3M3dTVHUjBjSDlZV2FUQ2JjdW5WcjB5TWttZmJDaFF2UWFyWFFhclZVV0Y0d0dFUjZlanA3d2RQVDB6Q2J6ZkI0UEp2MlI3TlQvSDQvckZZckppY25VVlpXeG5vd1B0VHBHeG9hZ3RGb0RBc0lpMmFudU4xdWZQbmxsK2p1N3NhbFM1ZHc0c1FKS2srNjRoSDJGVGdjRGd3UEQ0ZUpaUXUvM3crYnpjWjVKU1NMeFlMMzMzK2ZOdnFORGR4dU4zcDZlaGpQRHhNc2w4dGpqa3c1Y2VJRU5mT1ZMVlFxRmQ1ODg4MlllQTBHQTdXaVdpU0VDZmI1ZlBqcHA1OEFiS3lCeC9iQ3BWSXA2dXJxQUFEZmYvODk1d2Y2dGJVMWZQYlpad0NBanovK21QSENTU2lWU3NyM2V1ZWRkeGg1YVd0cE1yd3VKeWVIOWN1Y3pwMDdSNVVadmt0Ty9mbm5ud0NBWThlT29hK3ZqOVU1bloyZDFDc0gyZmhhVVp1bHdjRkIxa0dOaTR1TGpLL2dZd3VEd2NDSjkrMjMzMmFkZDlSbXlXNjN3KzEyUTZGUUlDOHZENWN2WDhiQ3dnSTE5VmNxbGNKbXM4SGhjR0J5Y2pKdVN6NmFUQ2JNenM1Q3E5WGk2TkdqR0IwZHhjVEVCSnhPSnlRU0NaUktKVVpHUmpBeU1vTC8vZTkvakJGc29hQVZMSmZMS1p2RDRYQlEzN1pFSXRsVXBoME9CMjM4Z1Z3dTV5U1FoRXFsb3BvK2k4VkN0YnN5bVd4VG1iNTc5eTZ0NDZCU3FSZzVhQVhYMXRiaTIyKy9EWnZZNVhRNmFRTXVReUdWU2xGYlc4dHJnYjZXbGhZME5EUmdZbUppMC82Wm1SbkdZVnlsVW9tV2xoYkdlR2JhTXV6eGVLRFJhS2hWRGRrZ096c2JsWldWT0hmdUhPODJmSDE5SFcxdGJXaHFhbUw5dWwyWlRJYlhYbnNObloyZHJON3lGZkZGank2WEM2V2xwVkNwVkZoYVdzSy8vLzVMVmZuejgvUEl5OHNEQU96ZXZSdTV1Ym5JeWNtQngrT0pLWjZZSUFqNGZEN1UxOWVqc2JFUmYvenhCNGFIaHlrcmRIeDhIRTgvL1RRQVlQLysvVkFxbFZBb0ZKeDRJMVphcEdpeXJCdzRjQUQzN3QyRFhDN0hnUU1IQUd4MFFYTnljckMrdmg2M1ZSNUNlY253M0o2ZUhxaFVLcFNYbHdQWTZPSSs4OHd6QUxpSHhuTjZQUHo1NTUvRDloMDhlSkFUSVIvUXpkOWdFL0ZLaDlTWUZsdkk1WEtxUE1VQ3JsRnVLcFVLcDArZlprd1hEQVpwOTNNU0xCYUxVVkpTZ3FOSGp5SWpJd05lcnpmbU9SMHVsNHN4OWxBaWtlRDA2ZE40K2VXWElaVktHWG5qNWg1ZXZIZ1JYcThYSG8rSGQ5TVRDcEZJaEh2MzdpRW5KeWRxcC8rSEgzNkExK3VGeStWaXJLVGk2aDdHdWc3dFZwRHVJVUVRS0N3c2pPZ2UvdlBQUDZ6eUN3UUNXRjVleGw5Ly9ZWDUrWGxhOTNEYnpUU2J6UWFyMVlyMTlmVzR1b2NsSlNVcDl4QjRCSnVsbE9DZGprZE84UDhCR0NRMGhuRjFEeFVBQUFBQVNVVk9SSzVDWUlJPSkgMnB4IDNweCBuby1yZXBlYXQ7CisgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCQ0JDQkM7CisgICAgICBjdXJzb3I6IG1vdmU7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIGhlaWdodDogMTNweDsKKyAgICAgIHdpZHRoOiAyN3B4OworICAgIH0KKworICAgIC50b29sLWJ1dHRvbiB7CisgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOworICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkNCQ0JDOworICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGMUYxRjE7CisgICAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgfQorCisgICAgLmJ1dHRvbnMgPiAudG9vbC1idXR0b246bGFzdC1jaGlsZCB7CisgICAgICBib3JkZXItYm90dG9tOiBub25lOworICAgIH0KKworICAgIDwvc3R5bGU+CiA8ZGl2IGNsYXNzPSJkcmFnLWhhbmRsZSI+PC9kaXY+CiA8ZGl2IGNsYXNzPSJidXR0b25zIj4KIDwvZGl2PgotPC90ZW1wbGF0ZT48c3R5bGU+Cis8L3RlbXBsYXRlPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHN0eWxlPgogLnRyYWNrLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC41KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtjb2xvcjpyZ2JhKDAsMCwwLDAuMik7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjEycHg7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTJweH0udHJhY2stYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxLjApO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjUpO2JveC1zaGFkb3c6MCAwIC4wNWVtIHJnYmEoMCwwLDAsMC40KTtjb2xvcjpyZ2JhKDAsMCwwLDEpfS50cmFjay1jbG9zZS1idXR0b257bGVmdDoycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweH0udHJhY2stY29sbGFwc2UtYnV0dG9ue2xlZnQ6M3B4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoycHh9CiA8L3N0eWxlPjxzdHlsZT4KIC5kcmF3aW5nLWNvbnRhaW5lcnstd2Via2l0LWJveC1mbGV4OjE7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0uZHJhd2luZy1jb250YWluZXItY2FudmFzey13ZWJraXQtYm94LWZsZXg6MTtkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9Ci08L3N0eWxlPjxzdHlsZT4KLS5oZWFkaW5nLXRyYWNrey13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7ZGlzcGxheTotd2Via2l0LWJveDttYXJnaW46MDtwYWRkaW5nOjAgNXB4IDAgMH0uaGVhZGluZy10cmFjaz5oZWFkaW5ney13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQtY29sb3I6cmdiKDI0MywyNDUsMjQ3KTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICM4ZThlOGU7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdy14OmhpZGRlbjtwYWRkaW5nLXJpZ2h0OjVweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmhlYWRpbmctdHJhY2s+aGVhZGluZz4uaGVhZGluZy1hcnJvd3std2Via2l0LWZsZXg6MCAwIGF1dG87bWFyZ2luLWxlZnQ6NXB4O21hcmdpbi1yaWdodDo1cHg7d2lkdGg6OHB4O2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWZ9Cis8L3N0eWxlPjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktaGVhZGluZyI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MywgMjQ1LCAyNDcpOworICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzhlOGU4ZTsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgbWFyZ2luOiAwOworICAgICAgcGFkZGluZzogMCA1cHggMCAwOworICAgIH0KKworICAgIGhlYWRpbmcgeworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CisgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CisgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIH0KKworICAgICNhcnJvdyB7CisgICAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOworICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICAgICBtYXJnaW4tbGVmdDogNXB4OworICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CisgICAgICB3aWR0aDogOHB4OworICAgIH0KKworICAgICNsaW5rLCAjaGVhZGluZ19jb250ZW50IHsKKyAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorICAgIDwvc3R5bGU+Cis8aGVhZGluZyBpZD0iaGVhZGluZyIgb24tY2xpY2s9Int7b25IZWFkaW5nRGl2Q2xpY2tlZF99fSI+Cis8c3BhbiBpZD0iYXJyb3ciPjwvc3Bhbj4KKzxzcGFuIGlkPSJoZWFkaW5nX2NvbnRlbnQiPjwvc3Bhbj4KKzx0ci11aS1hLWFuYWx5c2lzLWxpbmsgaWQ9ImxpbmsiPjwvdHItdWktYS1hbmFseXNpcy1saW5rPgorPC9oZWFkaW5nPgorPC90ZW1wbGF0ZT4KKworPC9wb2x5bWVyLWVsZW1lbnQ+PHN0eWxlPgorLmxldHRlci1kb3QtdHJhY2sgeworICBoZWlnaHQ6IDE4cHg7Cit9CiA8L3N0eWxlPjxzdHlsZT4KIC5jaGFydC10cmFjayB7CiAgIGhlaWdodDogMzBweDsKICAgcG9zaXRpb246IHJlbGF0aXZlOwogfQogPC9zdHlsZT48c3R5bGU+Ci0ubGV0dGVyLWRvdC10cmFjayB7Ci0gIGhlaWdodDogMThweDsKKy5wb3dlci1zZXJpZXMtdHJhY2sgeworICBoZWlnaHQ6IDkwcHg7CiB9CiA8L3N0eWxlPjxzdHlsZT4KKy5zcGFjaW5nLXRyYWNre2hlaWdodDo0cHh9Cis8L3N0eWxlPjxzdHlsZT4KIC5vYmplY3QtaW5zdGFuY2UtdHJhY2t7aGVpZ2h0OjE4cHh9CiA8L3N0eWxlPjxzdHlsZT4KIC5yZWN0LXRyYWNre2hlaWdodDoxOHB4fQogPC9zdHlsZT48c3R5bGU+Ci0uc3BhY2luZy10cmFja3toZWlnaHQ6NHB4fQotPC9zdHlsZT48c3R5bGU+CiAudGhyZWFkLXRyYWNrey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O3Bvc2l0aW9uOnJlbGF0aXZlfQogPC9zdHlsZT48c3R5bGU+CiAucHJvY2Vzcy10cmFjay1oZWFkZXJ7LXdlYmtpdC1mbGV4OjAgMCBhdXRvO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsMCAwLDEwMCUgMCxmcm9tKCNFNUU1RTUpLHRvKCNEMUQxRDEpKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOGU4ZThlO2JvcmRlci10b3A6MXB4IHNvbGlkIHdoaXRlO2ZvbnQtc2l6ZTo3NSV9LnByb2Nlc3MtdHJhY2stbmFtZTpiZWZvcmV7Y29udGVudDonXDI1QjgnO3BhZGRpbmc6MCA1cHh9LnByb2Nlc3MtdHJhY2stYmFzZS5leHBhbmRlZCAucHJvY2Vzcy10cmFjay1uYW1lOmJlZm9yZXtjb250ZW50OidcMjVCRSd9CkBAIC0xMjAyLDE1ICsxMzk5LDQ1IEBACiB9CiA8L3N0eWxlPjxzdHlsZT4KIC5ydWxlci10cmFja3toZWlnaHQ6MTJweH0ucnVsZXItdHJhY2sudGFsbC1tb2Rle2hlaWdodDozMHB4fQotPC9zdHlsZT48c3R5bGU+Ci1ib2R5ICp7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveH0KLTwvc3R5bGU+Ci08c3R5bGU+Ci0udGltZWxpbmUtdHJhY2stdmlldyAqey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0udGltZWxpbmUtdHJhY2stdmlldyAudG9vbC1idXR0b257Y3Vyc29yOnBvaW50ZXJ9LnRpbWVsaW5lLXRyYWNrLXZpZXd7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7cG9zaXRpb246cmVsYXRpdmV9Lm1vZGVsLXRyYWNrLWNvbnRhaW5lcnstd2Via2l0LWJveC1mbGV4OjE7b3ZlcmZsb3c6YXV0b30uZHJhZy1ib3h7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwyNTUsMC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2IoMCwwLDk2KTtmb250LXNpemU6NzUlO3Bvc2l0aW9uOmZpeGVkfS50aW1lbGluZS10cmFjay12aWV3Pi5oaW50LXRleHR7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjZweDtyaWdodDo2cHg7Zm9udC1zaXplOjhwdH0KLTwvc3R5bGU+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0cmFjaW5nLWZpbmQtY29udHJvbCIgY29uc3RydWN0b3I9IlRyYWNpbmdGaW5kQ29udHJvbCI+Cis8L3N0eWxlPjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktdGltZWxpbmUtdHJhY2stdmlldyI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+Ci0gICAgICBkaXYucm9vdCB7CisgICAgOmhvc3QgeworICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKKyAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgIDpob3N0IDo6Y29udGVudCAqIHsKKyAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgfQorCisgICAgI2RyYWdfYm94IHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMjU1LCAwLjI1KTsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigwLCAwLCA5Nik7CisgICAgICBmb250LXNpemU6IDc1JTsKKyAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICB9CisKKyAgICAjaGludF90ZXh0IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGJvdHRvbTogNnB4OworICAgICAgcmlnaHQ6IDZweDsKKyAgICAgIGZvbnQtc2l6ZTogOHB0OworICAgIH0KKyAgICA8L3N0eWxlPgorPGNvbnRlbnQ+PC9jb250ZW50PgorPGRpdiBpZD0iZHJhZ19ib3giPjwvZGl2PgorPGRpdiBpZD0iaGludF90ZXh0Ij48L2Rpdj4KKzx0di11aS1iLWhvdGtleS1jb250cm9sbGVyIGlkPSJob3RrZXlfY29udHJvbGxlciI+Cis8L3R2LXVpLWItaG90a2V5LWNvbnRyb2xsZXI+Cis8L3RlbXBsYXRlPgorCis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWZpbmQtY29udHJvbCI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgICA6aG9zdCB7CiAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwpAQCAtMTIyMCwzOCArMTQ0NywyNSBAQAogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OwogICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNSk7CiAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgICAgIGhlaWdodDogMTlweDsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTogMXB4OwotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwotICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CisgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgd2lkdGg6IDE3MHB4OwogICAgICAgfQogICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgIH0KLSAgICAgIC5idXR0b24gewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OwotICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNSk7CisgICAgICB0ci11aS1iLXRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7Ci0gICAgICAgIGZvbnQtc2l6ZTogMTRweDsKLSAgICAgICAgaGVpZ2h0OiAxN3B4OwotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAgICAgICAgbWFyZ2luLXRvcDogMXB4OwotICAgICAgfQotICAgICAgLmJ1dHRvbiA6Zmlyc3Qtb2YtdHlwZSB7Ci0gICAgICAgIG1hcmdpbi1yaWdodDogMDsKKyAgICAgICAgbWFyZ2luOiAwOwogICAgICAgfQogICAgICAgI2hpdENvdW50IHsKLSAgICAgICAgaGVpZ2h0OiAxOXB4OwogICAgICAgICBsZWZ0OiAwOwogICAgICAgICBvcGFjaXR5OiAwLjI1OwogICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgdG9wOiAycHg7Ci0gICAgICAgIHdpZHRoOiAxNzBweDsKKyAgICAgICAgd2lkdGg6IDE2N3B4OwogICAgICAgICB6LWluZGV4OiAxOwogICAgICAgfQogICAgICAgI3NwaW5uZXIgewpAQCAtMTI3MywxNiArMTQ4NywxOCBAQAogICAgICAgfQogICAgICAgQGtleWZyYW1lcyBzcGluIHsgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfQogICAgIDwvc3R5bGU+Ci08ZGl2IGNsYXNzPSJyb290Ij4KLTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmlsdGVyIiBvbi1pbnB1dD0ie3sgZmlsdGVyVGV4dENoYW5nZWQgfX0iIG9uLWtleXByZXNzPSJ7eyBmaWx0ZXJLZXlQcmVzcyB9fSIgb24ta2V5ZG93bj0ie3sgZmlsdGVyS2V5RG93biB9fSIgb24tYmx1cj0ie3sgZmlsdGVyQmx1ciB9fSIgb24tZm9jdXM9Int7IGZpbHRlckZvY3VzIH19IiBvbi1tb3VzZXVwPSJ7eyBmaWx0ZXJNb3VzZVVwIH19IiAvPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJmaWx0ZXIiIG9uLWlucHV0PSJ7eyBmaWx0ZXJUZXh0Q2hhbmdlZCB9fSIgb24ta2V5ZG93bj0ie3sgZmlsdGVyS2V5RG93biB9fSIgb24tYmx1cj0ie3sgZmlsdGVyQmx1ciB9fSIgb24tZm9jdXM9Int7IGZpbHRlckZvY3VzIH19IiBvbi1tb3VzZXVwPSJ7eyBmaWx0ZXJNb3VzZVVwIH19IiAvPgogPGRpdiBpZD0ic3Bpbm5lciI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJidXR0b24iIG9uLWNsaWNrPSJ7eyBmaW5kUHJldmlvdXMgfX0iPiZsYXJyOzwvZGl2PgotPGRpdiBjbGFzcz0iYnV0dG9uIiBvbi1jbGljaz0ie3sgZmluZE5leHQgfX0iPiZyYXJyOzwvZGl2PgorPHRyLXVpLWItdG9vbGJhci1idXR0b24gb24tY2xpY2s9Int7IGZpbmRQcmV2aW91cyB9fSI+CisgICAgICAmbGFycjsKKyAgICA8L3RyLXVpLWItdG9vbGJhci1idXR0b24+Cis8dHItdWktYi10b29sYmFyLWJ1dHRvbiBvbi1jbGljaz0ie3sgZmluZE5leHQgfX0iPgorICAgICAgJnJhcnI7CisgICAgPC90ci11aS1iLXRvb2xiYXItYnV0dG9uPgogPGRpdiBpZD0iaGl0Q291bnQiPjAgb2YgMDwvZGl2PgotPC9kaXY+CiA8L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyYWNpbmctc2NyaXB0aW5nLWNvbnRyb2wiIGNvbnN0cnVjdG9yPSJUcmFjaW5nU2NyaXB0aW5nQ29udHJvbCI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXNjcmlwdGluZy1jb250cm9sIj4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICAgIDpob3N0IHsKQEAgLTEzNDEsOSArMTU1Nyw5IEBACiA8ZGl2IGlkPSJwcm9tcHQiIG9uLWtleXByZXNzPSJ7eyBwcm9tcHRLZXlQcmVzcyB9fSIgb24ta2V5ZG93bj0ie3sgcHJvbXB0S2V5RG93biB9fSIgb24tYmx1cj0ie3sgb25Db25zb2xlQmx1ciB9fSI+CiA8L2Rpdj48L2Rpdj48L3RlbXBsYXRlPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtc2lkZS1wYW5lbCI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXNpZGUtcGFuZWwiPgogCi08L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtc2lkZS1wYW5lbC1jb250YWluZXIiIGlzPSJIVE1MVW5rbm93bkVsZW1lbnQiPgorPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1zaWRlLXBhbmVsLWNvbnRhaW5lciIgaXM9IkhUTUxVbmtub3duRWxlbWVudCI+CiA8dGVtcGxhdGU+CiA8c3R5bGU+CiAgICAgOmhvc3QgewpAQCAtMTQwMyw0MyArMTYxOSw2NyBAQAogPHRhYi1zdHJpcCBpZD0idGFiX3N0cmlwIj48L3RhYi1zdHJpcD4KIDwvdGVtcGxhdGU+CiAKLTwvcG9seW1lci1lbGVtZW50PjxzdHlsZT4KLXgtdGltZWxpbmUtdmlld3std2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5Oi13ZWJraXQtZmxleDtmb250LWZhbWlseTpzYW5zLXNlcmlmO3BhZGRpbmc6MH14LXRpbWVsaW5lLXZpZXc+LmNvbnRyb2w+LnRpdGxle2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoyMnB4O3BhZGRpbmctbGVmdDoycHg7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy10b3A6MnB4O2ZsZXg6MSAwIGF1dG99eC10aW1lbGluZS12aWV3Pi5jb250cm9se2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLDAgMCwwIDEwMCUsZnJvbSgjRTVFNUU1KSx0bygjRDFEMUQxKSk7ZmxleDowIDAgYXV0bztvdmVyZmxvdy14OmF1dG99eC10aW1lbGluZS12aWV3Pi5jb250cm9sPi5iYXJ7ZGlzcGxheTpmbGV4fXgtdGltZWxpbmUtdmlldz4uY29udHJvbDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjBweH14LXRpbWVsaW5lLXZpZXc+LmNvbnRyb2w+LmJhcj4jcmlnaHQtY29udHJvbHN7bWFyZ2luLWxlZnQ6YXV0b314LXRpbWVsaW5lLXZpZXc+LmNvbnRyb2w+I2NvbGxhcHNpbmctY29udHJvbHN7ZGlzcGxheTotd2Via2l0LWZsZXh9eC10aW1lbGluZS12aWV3Pi5jb250cm9sIC5jb250cm9sc3tkaXNwbGF5Oi13ZWJraXQtZmxleDtmbGV4OjAgMCBhdXRvfXgtdGltZWxpbmUtdmlldz4uY29udHJvbD4uYmFyPnNwYW57cGFkZGluZy1sZWZ0OjVweDtwYWRkaW5nLXJpZ2h0OjEwcHh9eC10aW1lbGluZS12aWV3Pi5jb250cm9sPi5iYXI+LmNvbnRyb2xzIGJ1dHRvbix4LXRpbWVsaW5lLXZpZXc+LmNvbnRyb2w+LmJhcj4uY29udHJvbHMgbGFiZWwseC10aW1lbGluZS12aWV3Pi5jb250cm9sPi5iYXI+LmNvbnRyb2xzIHRyLWItdWktZHJvcGRvd257Zm9udC1zaXplOjE0cHg7bWFyZ2luOjFweCAycHggMXB4IDJweH14LXRpbWVsaW5lLXZpZXc+LmNvbnRyb2w+LmJhcj4uc3BhY2Vyey13ZWJraXQtZmxleDoxIDEgYXV0b314LXRpbWVsaW5lLXZpZXc+bWlkZGxlLWNvbnRhaW5lcnstd2Via2l0LWZsZXg6MSAxIGF1dG87LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzhlOGU4ZTtkaXNwbGF5Oi13ZWJraXQtZmxleDttaW4taGVpZ2h0OjB9eC10aW1lbGluZS12aWV3Pm1pZGRsZS1jb250YWluZXI+dHJhY2stdmlldy1jb250YWluZXJ7LXdlYmtpdC1mbGV4OjEgMSBhdXRvO2Rpc3BsYXk6LXdlYmtpdC1mbGV4O21pbi1oZWlnaHQ6MDttaW4td2lkdGg6MH14LXRpbWVsaW5lLXZpZXc+bWlkZGxlLWNvbnRhaW5lcj50cmFjay12aWV3LWNvbnRhaW5lcj4qey13ZWJraXQtZmxleDoxIDEgYXV0b314LXRpbWVsaW5lLXZpZXc+bWlkZGxlLWNvbnRhaW5lcj54LXRpbWVsaW5lLXZpZXctc2lkZS1wYW5lbC1jb250YWluZXJ7LXdlYmtpdC1mbGV4OjAgMCBhdXRvfXgtdGltZWxpbmUtdmlldz54LWRyYWctaGFuZGxley13ZWJraXQtZmxleDowIDAgYXV0b314LXRpbWVsaW5lLXZpZXc+dHItYy1hLWFuYWx5c2lzLXZpZXd7LXdlYmtpdC1mbGV4OjAgMCBhdXRvfXgtdGltZWxpbmUtdmlldyAuc2VsZWN0aW9ue21hcmdpbjoycHh9eC10aW1lbGluZS12aWV3IC5zZWxlY3Rpb24gdWx7bWFyZ2luOjB9LmJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuNSk7Y29sb3I6cmdiYSgwLDAsMCwwLjgpO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxOXB4O21hcmdpbjoxcHg7bWluLXdpZHRoOjIzcHg7dGV4dC1hbGlnbjpjZW50ZXJ9eC10aW1lbGluZS12aWV3Pi5jb250cm9sPi5iYXI+LmNvbnRyb2xzIHRyLWItdWktZHJvcGRvd257Zm9udC1zaXplOjEycHg7aGVpZ2h0OjE5cHg7YmFja2dyb3VuZC1jb2xvcjojZjhmOGY4fS5idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEuMCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuOCk7Ym94LXNoYWRvdzowIDAgLjA1ZW0gcmdiYSgwLDAsMCwwLjQpO2NvbG9yOnJnYmEoMCwwLDAsMSl9LnZpZXctaW5mby1idXR0b257cGFkZGluZy1sZWZ0OjRweDtwYWRkaW5nLXJpZ2h0OjRweDt3aWR0aDphdXRvfS52aWV3LWluZm8tYnV0dG9uOmhvdmVye2JvcmRlcjpzb2xpZCAxcHh9Lm1ldGFkYXRhLWRpYWxvZy10ZXh0e2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtvdmVyZmxvdzphdXRvO3doaXRlLXNwYWNlOnByZX0udmlldy1oZWxwLXRleHR7LXdlYmtpdC1mbGV4OjEgMSBhdXRvOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O3dpZHRoOjcwMHB4fS52aWV3LWhlbHAtdGV4dCAuY29sdW1ue3dpZHRoOjUwJX0udmlldy1oZWxwLXRleHQgaDJ7Zm9udC1zaXplOjEuMmVtO21hcmdpbjowO21hcmdpbi10b3A6NXB4O3RleHQtYWxpZ246Y2VudGVyfS52aWV3LWhlbHAtdGV4dCBoM3ttYXJnaW46MDttYXJnaW4tbGVmdDoxMjZweDttYXJnaW4tdG9wOjEwcHh9LnZpZXctaGVscC10ZXh0IC5wYWlyey13ZWJraXQtZmxleDoxIDEgYXV0bzstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztkaXNwbGF5Oi13ZWJraXQtZmxleH0udmlldy1oZWxwLXRleHQgLmNvbW1hbmR7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO21hcmdpbi1yaWdodDo1cHg7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDoxNTBweH0udmlldy1oZWxwLXRleHQgLmFjdGlvbntmb250LXNpemU6MC45ZW07dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjIwMHB4fS52aWV3LWhlbHAtdGV4dCAubW91c2UtbW9kZS1pY29ue2JvcmRlcjoxcHggc29saWQgIzg4ODtib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93Omluc2V0IDAgMCAycHggcmdiYSgwLDAsMCwwLjMpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyNnB4O21hcmdpbi1yaWdodDoxcHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOjRweDt3aWR0aDoyN3B4O3pvb206MC43NX0udmlldy1oZWxwLXRleHQgLm1vdXNlLW1vZGUtaWNvbi5wYW4tbW9kZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xcHggLTExcHh9LnZpZXctaGVscC10ZXh0IC5tb3VzZS1tb2RlLWljb24uc2VsZWN0LW1vZGV7YmFja2dyb3VuZC1wb3NpdGlvbjotMXB4IC00MXB4fS52aWV3LWhlbHAtdGV4dCAubW91c2UtbW9kZS1pY29uLnpvb20tbW9kZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xcHggLTcxcHh9LnZpZXctaGVscC10ZXh0IC5tb3VzZS1tb2RlLWljb24udGltaW5nLW1vZGV7YmFja2dyb3VuZC1wb3NpdGlvbjotMXB4IC0xMDFweH0KLTwvc3R5bGU+Ci0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi08dGVtcGxhdGUgaWQ9InRpbWVsaW5lLXZpZXctdGVtcGxhdGUiPgotPGRpdiBjbGFzcz0iY29udHJvbCI+Ci08ZGl2IGNsYXNzPSJiYXIiPgotPGRpdiBpZD0ibGVmdC1jb250cm9scyIgY2xhc3M9ImNvbnRyb2xzIj48L2Rpdj4KLTxkaXYgY2xhc3M9InRpdGxlIj5eX148L2Rpdj4KLTxkaXYgaWQ9InJpZ2h0LWNvbnRyb2xzIiBjbGFzcz0iY29udHJvbHMiPjwvZGl2PgotPC9kaXY+Ci08ZGl2IGlkPSJjb2xsYXBzaW5nLWNvbnRyb2xzIiBjbGFzcz0iY29udHJvbHMiPjwvZGl2PgotPC9kaXY+Ci08bWlkZGxlLWNvbnRhaW5lcj4KLTx0cmFjay12aWV3LWNvbnRhaW5lcj48L3RyYWNrLXZpZXctY29udGFpbmVyPgotPHRyLWMtc2lkZS1wYW5lbC1jb250YWluZXI+PC90ci1jLXNpZGUtcGFuZWwtY29udGFpbmVyPgotPC9taWRkbGUtY29udGFpbmVyPgotPHgtZHJhZy1oYW5kbGU+PC94LWRyYWctaGFuZGxlPgotPHRyLWMtYS1hbmFseXNpcy12aWV3IGlkPSJhbmFseXNpcyI+PC90ci1jLWEtYW5hbHlzaXMtdmlldz4KLTwvdGVtcGxhdGU+Ci08dGVtcGxhdGUgaWQ9ImhlbHAtYnRuLXRlbXBsYXRlIj4KLTxkaXYgY2xhc3M9ImJ1dHRvbiB2aWV3LWhlbHAtYnV0dG9uIj4/PC9kaXY+Ci08ZGl2IGNsYXNzPSJ2aWV3LWhlbHAtdGV4dCI+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXRpbWVsaW5lLXZpZXctaGVscC1vdmVybGF5Ij4KKzx0ZW1wbGF0ZT4KKzxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93OworICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgICAgd2lkdGg6IDcwMHB4OworICAgIH0KKyAgICAuY29sdW1uIHsKKyAgICAgIHdpZHRoOiA1MCU7CisgICAgfQorICAgIGgyIHsKKyAgICAgIGZvbnQtc2l6ZTogMS4yZW07CisgICAgICBtYXJnaW46IDA7CisgICAgICBtYXJnaW4tdG9wOiA1cHg7CisgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgfQorICAgIGgzIHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICAgIG1hcmdpbi1sZWZ0OiAxMjZweDsKKyAgICAgIG1hcmdpbi10b3A6IDEwcHg7CisgICAgfQorICAgIC5wYWlyIHsKKyAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgfQorICAgIC5jb21tYW5kIHsKKyAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKKyAgICAgIHRleHQtYWxpZ246IHJpZ2h0OworICAgICAgd2lkdGg6IDE1MHB4OworICAgIH0KKyAgICAuYWN0aW9uIHsKKyAgICAgIGZvbnQtc2l6ZTogMC45ZW07CisgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgICAgd2lkdGg6IDIwMHB4OworICAgIH0KKyAgICB0ci11aS1iLW1vdXNlLW1vZGUtaWNvbiB7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4OworICAgICAgYm9yZGVyLXJhZGl1czogM3B4OworICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsMCwwLDAuMyk7CisgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICBtYXJnaW4tcmlnaHQ6IDFweDsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIHRvcDogNHB4OworICAgIH0KKyAgICAubW91c2UtbW9kZS1pY29uLnBhbi1tb2RlIHsKKyAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xcHggLTExcHg7CisgICAgfQorICAgIC5tb3VzZS1tb2RlLWljb24uc2VsZWN0LW1vZGUgeworICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTFweCAtNDFweDsKKyAgICB9CisgICAgLm1vdXNlLW1vZGUtaWNvbi56b29tLW1vZGUgeworICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTFweCAtNzFweDsKKyAgICB9CisgICAgLm1vdXNlLW1vZGUtaWNvbi50aW1pbmctbW9kZSB7CisgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXB4IC0xMDFweDsKKyAgICB9CisgICAgPC9zdHlsZT4KIDxkaXYgY2xhc3M9ImNvbHVtbiBsZWZ0Ij4KIDxoMj5OYXZpZ2F0aW9uPC9oMj4KIDxkaXYgY2xhc3M9InBhaXIiPgpAQCAtMTQ2OCw3ICsxNzA4LDcgQEAKIDxkaXYgY2xhc3M9ImFjdGlvbiI+Wm9vbSBpbi9vdXQ8L2Rpdj4KIDwvZGl2PgogPGgzPgotPHNwYW4gY2xhc3M9Im1vdXNlLW1vZGUtaWNvbiBzZWxlY3QtbW9kZSI+PC9zcGFuPgorPHRyLXVpLWItbW91c2UtbW9kZS1pY29uIG1vZGVuYW1lPSJTRUxFQ1RJT04iPjwvdHItdWktYi1tb3VzZS1tb2RlLWljb24+CiAgICAgICAgIFNlbGVjdCBtb2RlCiAgICAgICA8L2gzPgogPGRpdiBjbGFzcz0icGFpciI+CkBAIC0xNDgwLDcgKzE3MjAsNyBAQAogPGRpdiBjbGFzcz0iYWN0aW9uIj5TZWxlY3QgYWxsIGV2ZW50cyB3aXRoIHNhbWUgdGl0bGU8L2Rpdj4KIDwvZGl2PgogPGgzPgotPHNwYW4gY2xhc3M9Im1vdXNlLW1vZGUtaWNvbiBwYW4tbW9kZSI+PC9zcGFuPgorPHRyLXVpLWItbW91c2UtbW9kZS1pY29uIG1vZGVuYW1lPSJQQU5TQ0FOIj48L3RyLXVpLWItbW91c2UtbW9kZS1pY29uPgogICAgICAgICBQYW4gbW9kZQogICAgICAgPC9oMz4KIDxkaXYgY2xhc3M9InBhaXIiPgpAQCAtMTQ4OCw3ICsxNzI4LDcgQEAKIDxkaXYgY2xhc3M9ImFjdGlvbiI+UGFuIHRoZSB2aWV3PC9kaXY+CiA8L2Rpdj4KIDxoMz4KLTxzcGFuIGNsYXNzPSJtb3VzZS1tb2RlLWljb24gem9vbS1tb2RlIj48L3NwYW4+Cis8dHItdWktYi1tb3VzZS1tb2RlLWljb24gbW9kZW5hbWU9IlpPT00iPjwvdHItdWktYi1tb3VzZS1tb2RlLWljb24+CiAgICAgICAgIFpvb20gbW9kZQogICAgICAgPC9oMz4KIDxkaXYgY2xhc3M9InBhaXIiPgpAQCAtMTQ5Niw3ICsxNzM2LDcgQEAKIDxkaXYgY2xhc3M9ImFjdGlvbiI+Wm9vbSBpbi9vdXQgYnkgZHJhZ2dpbmcgdXAvZG93bjwvZGl2PgogPC9kaXY+CiA8aDM+Ci08c3BhbiBjbGFzcz0ibW91c2UtbW9kZS1pY29uIHRpbWluZy1tb2RlIj48L3NwYW4+Cis8dHItdWktYi1tb3VzZS1tb2RlLWljb24gbW9kZW5hbWU9IlRJTUlORyI+PC90ci11aS1iLW1vdXNlLW1vZGUtaWNvbj4KICAgICAgICAgVGltaW5nIG1vZGUKICAgICAgIDwvaDM+CiA8ZGl2IGNsYXNzPSJwYWlyIj4KQEAgLTE1NjcsMTUgKzE4MDcsMTM5IEBACiA8ZGl2IGNsYXNzPSJhY3Rpb24iPlNob3cgaGVscDwvZGl2PgogPC9kaXY+CiA8L2Rpdj4KKzwvdGVtcGxhdGU+CisKKzwvcG9seW1lci1lbGVtZW50Pjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktdS1hcnJheS1vZi1udW1iZXJzLXNwYW4iPgorPHRlbXBsYXRlPgorPC90ZW1wbGF0ZT4KKworPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS11LWdlbmVyaWMtdGFibGUtdmlldyI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgOmhvc3QgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgfQorICAgICN0YWJsZSB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CisgICAgfQorICAgIDwvc3R5bGU+Cis8dHItdWktYi10YWJsZSBpZD0idGFibGUiPjwvdHItdWktYi10YWJsZT4KKzwvdGVtcGxhdGU+Cis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXRpbWVsaW5lLXZpZXctbWV0YWRhdGEtb3ZlcmxheSI+Cis8dGVtcGxhdGU+Cis8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgd2lkdGg6IDcwMHB4OworCisgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB9CisgICAgPC9zdHlsZT4KKzx0ci11aS11LWdlbmVyaWMtdGFibGUtdmlldyBpZD0iZ3R2Ij48L3RyLXVpLXUtZ2VuZXJpYy10YWJsZS12aWV3PgorPC90ZW1wbGF0ZT4KKworPC9wb2x5bWVyLWVsZW1lbnQ+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS11LXByZWZlcnJlZC1kaXNwbGF5LXVuaXQiPgorCis8L3BvbHltZXItZWxlbWVudD48cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXRpbWVsaW5lLXZpZXciPgorPHRlbXBsYXRlPgorPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICAgICBwYWRkaW5nOiAwOworICAgIH0KKworICAgICNjb250cm9sIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7CisgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsCisgICAgICAgICAgZnJvbSgjRTVFNUU1KSwgdG8oI0QxRDFEMSkpOworICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICBvdmVyZmxvdy14OiBhdXRvOworICAgIH0KKworICAgICNjb250cm9sOjotd2Via2l0LXNjcm9sbGJhciB7IGhlaWdodDogMHB4OyB9CisKKyAgICAjY29udHJvbCA+ICNiYXIgeworICAgICAgZm9udC1zaXplOiAxMnB4OworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBtYXJnaW46IDFweDsKKyAgICB9CisKKyAgICAjY29udHJvbCA+ICNiYXIgPiAjdGl0bGUgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKKyAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgIH0KKworICAgICNjb250cm9sID4gI2JhciA+ICNsZWZ0X2NvbnRyb2xzLAorICAgICNjb250cm9sID4gI2JhciA+ICNyaWdodF9jb250cm9scyB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOworICAgIH0KKworICAgICNjb250cm9sID4gI2JhciA+ICNsZWZ0X2NvbnRyb2xzID4gKiB7IG1hcmdpbi1yaWdodDogMnB4OyB9CisgICAgI2NvbnRyb2wgPiAjYmFyID4gI3JpZ2h0X2NvbnRyb2xzID4gKiB7IG1hcmdpbi1sZWZ0OiAycHg7IH0KKyAgICAjY29udHJvbCA+ICNjb2xsYXBzaW5nX2NvbnRyb2xzIHsgZGlzcGxheTogZmxleDsgfQorCisgICAgbWlkZGxlLWNvbnRhaW5lciB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzhlOGU4ZTsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBtaW4taGVpZ2h0OiAwOworICAgIH0KKworICAgIG1pZGRsZS1jb250YWluZXIgOjpjb250ZW50IHRyYWNrLXZpZXctY29udGFpbmVyIHsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIG1pbi1oZWlnaHQ6IDA7CisgICAgICBtaW4td2lkdGg6IDA7CisgICAgfQorCisgICAgbWlkZGxlLWNvbnRhaW5lciA6OmNvbnRlbnQgdHJhY2stdmlldy1jb250YWluZXIgPiAqIHsgZmxleDogMSAxIGF1dG87IH0KKyAgICBtaWRkbGUtY29udGFpbmVyID4geC10aW1lbGluZS12aWV3LXNpZGUtcGFuZWwtY29udGFpbmVyIHsgZmxleDogMCAwIGF1dG87IH0KKyAgICB4LWRyYWctaGFuZGxlIHsgZmxleDogMCAwIGF1dG87IH0KKyAgICB0ci11aS1hLWFuYWx5c2lzLXZpZXcgeyBmbGV4OiAwIDAgYXV0bzsgfQorICAgIDwvc3R5bGU+Cis8dHYtdWktYi1ob3RrZXktY29udHJvbGxlciBpZD0iaGtjIj48L3R2LXVpLWItaG90a2V5LWNvbnRyb2xsZXI+Cis8ZGl2IGlkPSJjb250cm9sIj4KKzxkaXYgaWQ9ImJhciI+Cis8ZGl2IGlkPSJsZWZ0X2NvbnRyb2xzIj48L2Rpdj4KKzxkaXYgaWQ9InRpdGxlIj5eX148L2Rpdj4KKzxkaXYgaWQ9InJpZ2h0X2NvbnRyb2xzIj4KKzx0ci11aS1iLXRvb2xiYXItYnV0dG9uIGlkPSJ2aWV3X21ldGFkYXRhX2J1dHRvbiI+CisgICAgICAgICAgICBNCisgICAgICAgICAgPC90ci11aS1iLXRvb2xiYXItYnV0dG9uPgorPHRyLXVpLWItZHJvcGRvd24gaWQ9InZpZXdfb3B0aW9uc19kcm9wZG93biI+PC90ci11aS1iLWRyb3Bkb3duPgorPHRyLXVpLWZpbmQtY29udHJvbCBpZD0idmlld19maW5kX2NvbnRyb2wiPjwvdHItdWktZmluZC1jb250cm9sPgorPHRyLXVpLWItdG9vbGJhci1idXR0b24gaWQ9InZpZXdfY29uc29sZV9idXR0b24iPgorICAgICAgICAgICAgJiMxODc7CisgICAgICAgICAgPC90ci11aS1iLXRvb2xiYXItYnV0dG9uPgorPHRyLXVpLWItdG9vbGJhci1idXR0b24gaWQ9InZpZXdfaGVscF9idXR0b24iPgorICAgICAgICAgICAgPworICAgICAgICAgIDwvdHItdWktYi10b29sYmFyLWJ1dHRvbj4KIDwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb2xsYXBzaW5nX2NvbnRyb2xzIj48L2Rpdj4KKzwvZGl2PgorPG1pZGRsZS1jb250YWluZXI+Cis8Y29udGVudD48L2NvbnRlbnQ+Cis8dHItdWktc2lkZS1wYW5lbC1jb250YWluZXIgaWQ9InNpZGVfcGFuZWxfY29udGFpbmVyIj4KKzwvdHItdWktc2lkZS1wYW5lbC1jb250YWluZXI+Cis8L21pZGRsZS1jb250YWluZXI+Cis8eC1kcmFnLWhhbmRsZSBpZD0iZHJhZ19oYW5kbGUiPjwveC1kcmFnLWhhbmRsZT4KKzx0ci11aS1hLWFuYWx5c2lzLXZpZXcgaWQ9ImFuYWx5c2lzIj48L3RyLXVpLWEtYW5hbHlzaXMtdmlldz4KKzx0ci11aS11LXByZWZlcnJlZC1kaXNwbGF5LXVuaXQgaWQ9ImRpc3BsYXlfdW5pdCI+Cis8L3RyLXVpLXUtcHJlZmVycmVkLWRpc3BsYXktdW5pdD4KIDwvdGVtcGxhdGU+Ci08dGVtcGxhdGUgaWQ9Im1ldGFkYXRhLWJ0bi10ZW1wbGF0ZSI+Ci08ZGl2IGNsYXNzPSJidXR0b24gdmlldy1tZXRhZGF0YS1idXR0b24gdmlldy1pbmZvLWJ1dHRvbiI+TWV0YWRhdGE8L2Rpdj4KLTxkaXYgY2xhc3M9ImluZm8tYnV0dG9uLXRleHQgbWV0YWRhdGEtZGlhbG9nLXRleHQiPjwvZGl2PgotPC90ZW1wbGF0ZT4KLTx0ZW1wbGF0ZSBpZD0iY29uc29sZS1idG4tdGVtcGxhdGUiPgotPGRpdiBjbGFzcz0iYnV0dG9uIHZpZXctY29uc29sZS1idXR0b24iPiYjMTg3OzwvZGl2PgotPC90ZW1wbGF0ZT48c3R5bGU+CisKKzwvcG9seW1lci1lbGVtZW50PjxzdHlsZT4KICAgKiAvZGVlcC8gLmNoYXJ0LWJhc2UgI3RpdGxlIHsKICAgICBmb250LXNpemU6IDE2cHQ7CiAgIH0KQEAgLTE2MDIsNyArMTk2Niw3IEBACiA8L3N2Zz4KIDwvdGVtcGxhdGU+PHN0eWxlPgogKiAvZGVlcC8gLmxpbmUtY2hhcnQgLmxpbmV7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoxLjVweH0qIC9kZWVwLyAubGluZS1jaGFydCAjYnJ1c2hlcz5yZWN0e2ZpbGw6cmdiKDE5MiwxOTIsMTkyKX0KLTwvc3R5bGU+PHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1lLXMtYWxlcnRzLXNpZGUtcGFuZWwiIGV4dGVuZHM9InRyLWMtc2lkZS1wYW5lbCI+Cis8L3N0eWxlPjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktZS1zLWFsZXJ0cy1zaWRlLXBhbmVsIiBleHRlbmRzPSJ0ci11aS1zaWRlLXBhbmVsIj4KIDx0ZW1wbGF0ZT4KIDxzdHlsZT4KICAgICA6aG9zdCB7CkBAIC0xNjQ0LDQwICsyMDA4LDE1MCBAQAogd2luZG93LlBvbHltZXJHZXN0dXJlcz17fSxmdW5jdGlvbihhKXt2YXIgYj0hMSxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtpZihjLmNyZWF0ZVNoYWRvd1Jvb3Qpe3ZhciBkPWMuY3JlYXRlU2hhZG93Um9vdCgpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2QuYXBwZW5kQ2hpbGQoZSksYy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0cGF0aCIsZnVuY3Rpb24oYSl7YS5wYXRoJiYoYj1hLnBhdGhbMF09PT1lKSxhLnN0b3BQcm9wYWdhdGlvbigpfSk7dmFyIGY9bmV3IEN1c3RvbUV2ZW50KCJ0ZXN0cGF0aCIse2J1YmJsZXM6ITB9KTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGMpLGUuZGlzcGF0Y2hFdmVudChmKSxjLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyksZD1lPW51bGx9Yz1udWxsO3ZhciBnPXtzaGFkb3c6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS5zaGFkb3dSb290fHxhLndlYmtpdFNoYWRvd1Jvb3Q6dm9pZCAwfSxjYW5UYXJnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJkJvb2xlYW4oYS5lbGVtZW50RnJvbVBvaW50KX0sdGFyZ2V0aW5nU2hhZG93OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuc2hhZG93KGEpO3JldHVybiB0aGlzLmNhblRhcmdldChiKT9iOnZvaWQgMH0sb2xkZXJTaGFkb3c6ZnVuY3Rpb24oYSl7dmFyIGI9YS5vbGRlclNoYWRvd1Jvb3Q7aWYoIWIpe3ZhciBjPWEucXVlcnlTZWxlY3Rvcigic2hhZG93Iik7YyYmKGI9Yy5vbGRlclNoYWRvd1Jvb3QpfXJldHVybiBifSxhbGxTaGFkb3dzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPXRoaXMuc2hhZG93KGEpO2M7KWIucHVzaChjKSxjPXRoaXMub2xkZXJTaGFkb3coYyk7cmV0dXJuIGJ9LHNlYXJjaFJvb3Q6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU7cmV0dXJuIGE/KGQ9YS5lbGVtZW50RnJvbVBvaW50KGIsYyksZD9lPXRoaXMudGFyZ2V0aW5nU2hhZG93KGQpOmEhPT1kb2N1bWVudCYmKGU9dGhpcy5vbGRlclNoYWRvdyhhKSksdGhpcy5zZWFyY2hSb290KGUsYixjKXx8ZCk6dm9pZCAwfSxvd25lcjpmdW5jdGlvbihhKXtpZighYSlyZXR1cm4gZG9jdW1lbnQ7Zm9yKHZhciBiPWE7Yi5wYXJlbnROb2RlOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYi5ub2RlVHlwZSE9Tm9kZS5ET0NVTUVOVF9OT0RFJiZiLm5vZGVUeXBlIT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUmJihiPWRvY3VtZW50KSxifSxmaW5kVGFyZ2V0OmZ1bmN0aW9uKGEpe2lmKGImJmEucGF0aCYmYS5wYXRoLmxlbmd0aClyZXR1cm4gYS5wYXRoWzBdO3ZhciBjPWEuY2xpZW50WCxkPWEuY2xpZW50WSxlPXRoaXMub3duZXIoYS50YXJnZXQpO3JldHVybiBlLmVsZW1lbnRGcm9tUG9pbnQoYyxkKXx8KGU9ZG9jdW1lbnQpLHRoaXMuc2VhcmNoUm9vdChlLGMsZCl9LGZpbmRUb3VjaEFjdGlvbjpmdW5jdGlvbihhKXt2YXIgYztpZihiJiZhLnBhdGgmJmEucGF0aC5sZW5ndGgpe2Zvcih2YXIgZD1hLnBhdGgsZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGM9ZFtlXSxjLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmMuaGFzQXR0cmlidXRlKCJ0b3VjaC1hY3Rpb24iKSlyZXR1cm4gYy5nZXRBdHRyaWJ1dGUoInRvdWNoLWFjdGlvbiIpfWVsc2UgZm9yKGM9YS50YXJnZXQ7Yzspe2lmKGMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYy5oYXNBdHRyaWJ1dGUoInRvdWNoLWFjdGlvbiIpKXJldHVybiBjLmdldEF0dHJpYnV0ZSgidG91Y2gtYWN0aW9uIik7Yz1jLnBhcmVudE5vZGV8fGMuaG9zdH1yZXR1cm4iYXV0byJ9LExDQTpmdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBhO2lmKGEmJiFiKXJldHVybiBhO2lmKGImJiFhKXJldHVybiBiO2lmKCFiJiYhYSlyZXR1cm4gZG9jdW1lbnQ7aWYoYS5jb250YWlucyYmYS5jb250YWlucyhiKSlyZXR1cm4gYTtpZihiLmNvbnRhaW5zJiZiLmNvbnRhaW5zKGEpKXJldHVybiBiO3ZhciBjPXRoaXMuZGVwdGgoYSksZD10aGlzLmRlcHRoKGIpLGU9Yy1kO2ZvcihlPj0wP2E9dGhpcy53YWxrKGEsZSk6Yj10aGlzLndhbGsoYiwtZSk7YSYmYiYmYSE9PWI7KWE9YS5wYXJlbnROb2RlfHxhLmhvc3QsYj1iLnBhcmVudE5vZGV8fGIuaG9zdDtyZXR1cm4gYX0sd2FsazpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2EmJmI+YztjKyspYT1hLnBhcmVudE5vZGV8fGEuaG9zdDtyZXR1cm4gYX0sZGVwdGg6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7YTspYisrLGE9YS5wYXJlbnROb2RlfHxhLmhvc3Q7cmV0dXJuIGJ9LGRlZXBDb250YWluczpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTENBKGEsYik7cmV0dXJuIGM9PT1hfSxpbnNpZGVOb2RlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBkLmxlZnQ8PWImJmI8PWQucmlnaHQmJmQudG9wPD1jJiZjPD1kLmJvdHRvbX0scGF0aDpmdW5jdGlvbihhKXt2YXIgYztpZihiJiZhLnBhdGgmJmEucGF0aC5sZW5ndGgpYz1hLnBhdGg7ZWxzZXtjPVtdO2Zvcih2YXIgZD10aGlzLmZpbmRUYXJnZXQoYSk7ZDspYy5wdXNoKGQpLGQ9ZC5wYXJlbnROb2RlfHxkLmhvc3R9cmV0dXJuIGN9fTthLnRhcmdldEZpbmRpbmc9ZyxhLmZpbmRUYXJnZXQ9Zy5maW5kVGFyZ2V0LmJpbmQoZyksYS5kZWVwQ29udGFpbnM9Zy5kZWVwQ29udGFpbnMuYmluZChnKSxhLmluc2lkZU5vZGU9Zy5pbnNpZGVOb2RlfSh3aW5kb3cuUG9seW1lckdlc3R1cmVzKSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSl7cmV0dXJuImh0bWwgL2RlZXAvICIrYihhKX1mdW5jdGlvbiBiKGEpe3JldHVybidbdG91Y2gtYWN0aW9uPSInK2ErJyJdJ31mdW5jdGlvbiBjKGEpe3JldHVybiJ7IC1tcy10b3VjaC1hY3Rpb246ICIrYSsiOyB0b3VjaC1hY3Rpb246ICIrYSsiO30ifXZhciBkPVsibm9uZSIsImF1dG8iLCJwYW4teCIsInBhbi15Iix7cnVsZToicGFuLXggcGFuLXkiLHNlbGVjdG9yczpbInBhbi14IHBhbi15IiwicGFuLXkgcGFuLXgiXX0sIm1hbmlwdWxhdGlvbiJdLGU9IiIsZj0ic3RyaW5nIj09dHlwZW9mIGRvY3VtZW50LmhlYWQuc3R5bGUudG91Y2hBY3Rpb24sZz0hd2luZG93LlNoYWRvd0RPTVBvbHlmaWxsJiZkb2N1bWVudC5oZWFkLmNyZWF0ZVNoYWRvd1Jvb3Q7aWYoZil7ZC5mb3JFYWNoKGZ1bmN0aW9uKGQpe1N0cmluZyhkKT09PWQ/KGUrPWIoZCkrYyhkKSsiXG4iLGcmJihlKz1hKGQpK2MoZCkrIlxuIikpOihlKz1kLnNlbGVjdG9ycy5tYXAoYikrYyhkLnJ1bGUpKyJcbiIsZyYmKGUrPWQuc2VsZWN0b3JzLm1hcChhKStjKGQucnVsZSkrIlxuIikpfSk7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtoLnRleHRDb250ZW50PWUsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChoKX19KCksZnVuY3Rpb24oYSl7dmFyIGI9WyJidWJibGVzIiwiY2FuY2VsYWJsZSIsInZpZXciLCJkZXRhaWwiLCJzY3JlZW5YIiwic2NyZWVuWSIsImNsaWVudFgiLCJjbGllbnRZIiwiY3RybEtleSIsImFsdEtleSIsInNoaWZ0S2V5IiwibWV0YUtleSIsImJ1dHRvbiIsInJlbGF0ZWRUYXJnZXQiLCJwYWdlWCIsInBhZ2VZIl0sYz1bITEsITEsbnVsbCxudWxsLDAsMCwwLDAsITEsITEsITEsITEsMCxudWxsLDAsMF0sZD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319LGU9e3ByZXZlbnRUYXA6ZCxtYWtlQmFzZUV2ZW50OmZ1bmN0aW9uKGEsYil7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIGMuaW5pdEV2ZW50KGEsYi5idWJibGVzfHwhMSxiLmNhbmNlbGFibGV8fCExKSxjLnByZXZlbnRUYXA9ZS5wcmV2ZW50VGFwKGMpLGN9LG1ha2VHZXN0dXJlRXZlbnQ6ZnVuY3Rpb24oYSxiKXtiPWJ8fE9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBjLGQ9dGhpcy5tYWtlQmFzZUV2ZW50KGEsYiksZT0wLGY9T2JqZWN0LmtleXMoYik7ZTxmLmxlbmd0aDtlKyspYz1mW2VdLCJidWJibGVzIiE9PWMmJiJjYW5jZWxhYmxlIiE9PWMmJihkW2NdPWJbY10pO3JldHVybiBkfSxtYWtlUG9pbnRlckV2ZW50OmZ1bmN0aW9uKGEsZCl7ZD1kfHxPYmplY3QuY3JlYXRlKG51bGwpO2Zvcih2YXIgZSxmPXRoaXMubWFrZUJhc2VFdmVudChhLGQpLGc9MjtnPGIubGVuZ3RoO2crKyllPWJbZ10sZltlXT1kW2VdfHxjW2ddO2YuYnV0dG9ucz1kLmJ1dHRvbnN8fDA7dmFyIGg9MDtyZXR1cm4gaD1kLnByZXNzdXJlP2QucHJlc3N1cmU6Zi5idXR0b25zPy41OjAsZi54PWYuY2xpZW50WCxmLnk9Zi5jbGllbnRZLGYucG9pbnRlcklkPWQucG9pbnRlcklkfHwwLGYud2lkdGg9ZC53aWR0aHx8MCxmLmhlaWdodD1kLmhlaWdodHx8MCxmLnByZXNzdXJlPWgsZi50aWx0WD1kLnRpbHRYfHwwLGYudGlsdFk9ZC50aWx0WXx8MCxmLnBvaW50ZXJUeXBlPWQucG9pbnRlclR5cGV8fCIiLGYuaHdUaW1lc3RhbXA9ZC5od1RpbWVzdGFtcHx8MCxmLmlzUHJpbWFyeT1kLmlzUHJpbWFyeXx8ITEsZi5fc291cmNlPWQuX3NvdXJjZXx8IiIsZn19O2EuZXZlbnRGYWN0b3J5PWV9KHdpbmRvdy5Qb2x5bWVyR2VzdHVyZXMpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtpZihjKXt2YXIgYT1uZXcgTWFwO3JldHVybiBhLnBvaW50ZXJzPWQsYX10aGlzLmtleXM9W10sdGhpcy52YWx1ZXM9W119dmFyIGM9d2luZG93Lk1hcCYmd2luZG93Lk1hcC5wcm90b3R5cGUuZm9yRWFjaCxkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l6ZX07Yi5wcm90b3R5cGU9e3NldDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMua2V5cy5pbmRleE9mKGEpO2M+LTE/dGhpcy52YWx1ZXNbY109YjoodGhpcy5rZXlzLnB1c2goYSksdGhpcy52YWx1ZXMucHVzaChiKSl9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5rZXlzLmluZGV4T2YoYSk+LTF9LCJkZWxldGUiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMua2V5cy5pbmRleE9mKGEpO2I+LTEmJih0aGlzLmtleXMuc3BsaWNlKGIsMSksdGhpcy52YWx1ZXMuc3BsaWNlKGIsMSkpfSxnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7cmV0dXJuIHRoaXMudmFsdWVzW2JdfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMua2V5cy5sZW5ndGg9MCx0aGlzLnZhbHVlcy5sZW5ndGg9MH0sZm9yRWFjaDpmdW5jdGlvbihhLGIpe3RoaXMudmFsdWVzLmZvckVhY2goZnVuY3Rpb24oYyxkKXthLmNhbGwoYixjLHRoaXMua2V5c1tkXSx0aGlzKX0sdGhpcyl9LHBvaW50ZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMua2V5cy5sZW5ndGh9fSxhLlBvaW50ZXJNYXA9Yn0od2luZG93LlBvbHltZXJHZXN0dXJlcyksZnVuY3Rpb24oYSl7dmFyIGIsYz1bImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwidmlldyIsImRldGFpbCIsInNjcmVlblgiLCJzY3JlZW5ZIiwiY2xpZW50WCIsImNsaWVudFkiLCJjdHJsS2V5IiwiYWx0S2V5Iiwic2hpZnRLZXkiLCJtZXRhS2V5IiwiYnV0dG9uIiwicmVsYXRlZFRhcmdldCIsImJ1dHRvbnMiLCJwb2ludGVySWQiLCJ3aWR0aCIsImhlaWdodCIsInByZXNzdXJlIiwidGlsdFgiLCJ0aWx0WSIsInBvaW50ZXJUeXBlIiwiaHdUaW1lc3RhbXAiLCJpc1ByaW1hcnkiLCJ0eXBlIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsIndoaWNoIiwicGFnZVgiLCJwYWdlWSIsInRpbWVTdGFtcCIsInByZXZlbnRUYXAiLCJ0YXBQcmV2ZW50ZWQiLCJfc291cmNlIl0sZD1bITEsITEsbnVsbCxudWxsLDAsMCwwLDAsITEsITEsITEsITEsMCxudWxsLDAsMCwwLDAsMCwwLDAsIiIsMCwhMSwiIixudWxsLG51bGwsMCwwLDAsMCxmdW5jdGlvbigpe30sITFdLGU9InVuZGVmaW5lZCIhPXR5cGVvZiBTVkdFbGVtZW50SW5zdGFuY2UsZj1hLmV2ZW50RmFjdG9yeSxnPXtJU19JT1M6ITEscG9pbnRlcm1hcDpuZXcgYS5Qb2ludGVyTWFwLHJlcXVpcmVkR2VzdHVyZXM6bmV3IGEuUG9pbnRlck1hcCxldmVudE1hcDpPYmplY3QuY3JlYXRlKG51bGwpLGV2ZW50U291cmNlczpPYmplY3QuY3JlYXRlKG51bGwpLGV2ZW50U291cmNlTGlzdDpbXSxnZXN0dXJlczpbXSxkZXBlbmRlbmN5TWFwOntkb3duOntsaXN0ZW5lcnM6MCxpbmRleDotMX0sdXA6e2xpc3RlbmVyczowLGluZGV4Oi0xfX0sZ2VzdHVyZVF1ZXVlOltdLHJlZ2lzdGVyU291cmNlOmZ1bmN0aW9uKGEsYil7dmFyIGM9YixkPWMuZXZlbnRzO2QmJihkLmZvckVhY2goZnVuY3Rpb24oYSl7Y1thXSYmKHRoaXMuZXZlbnRNYXBbYV09Y1thXS5iaW5kKGMpKX0sdGhpcyksdGhpcy5ldmVudFNvdXJjZXNbYV09Yyx0aGlzLmV2ZW50U291cmNlTGlzdC5wdXNoKGMpKX0scmVnaXN0ZXJHZXN0dXJlOmZ1bmN0aW9uKGEsYil7dmFyIGM9T2JqZWN0LmNyZWF0ZShudWxsKTtjLmxpc3RlbmVycz0wLGMuaW5kZXg9dGhpcy5nZXN0dXJlcy5sZW5ndGg7Zm9yKHZhciBkLGU9MDtlPGIuZXhwb3Nlcy5sZW5ndGg7ZSsrKWQ9Yi5leHBvc2VzW2VdLnRvTG93ZXJDYXNlKCksdGhpcy5kZXBlbmRlbmN5TWFwW2RdPWM7dGhpcy5nZXN0dXJlcy5wdXNoKGIpfSxyZWdpc3RlcjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPXRoaXMuZXZlbnRTb3VyY2VMaXN0Lmxlbmd0aCxlPTA7ZD5lJiYoYz10aGlzLmV2ZW50U291cmNlTGlzdFtlXSk7ZSsrKWMucmVnaXN0ZXIuY2FsbChjLGEsYil9LHVucmVnaXN0ZXI6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGM9dGhpcy5ldmVudFNvdXJjZUxpc3QubGVuZ3RoLGQ9MDtjPmQmJihiPXRoaXMuZXZlbnRTb3VyY2VMaXN0W2RdKTtkKyspYi51bnJlZ2lzdGVyLmNhbGwoYixhKX0sZG93bjpmdW5jdGlvbihhKXt0aGlzLnJlcXVpcmVkR2VzdHVyZXMuc2V0KGEucG9pbnRlcklkLGIpLHRoaXMuZmlyZUV2ZW50KCJkb3duIixhKX0sbW92ZTpmdW5jdGlvbihhKXthLnR5cGU9Im1vdmUiLHRoaXMuZmlsbEdlc3R1cmVRdWV1ZShhKX0sdXA6ZnVuY3Rpb24oYSl7dGhpcy5maXJlRXZlbnQoInVwIixhKSx0aGlzLnJlcXVpcmVkR2VzdHVyZXNbImRlbGV0ZSJdKGEucG9pbnRlcklkKX0sY2FuY2VsOmZ1bmN0aW9uKGEpe2EudGFwUHJldmVudGVkPSEwLHRoaXMuZmlyZUV2ZW50KCJ1cCIsYSksdGhpcy5yZXF1aXJlZEdlc3R1cmVzWyJkZWxldGUiXShhLnBvaW50ZXJJZCl9LGFkZEdlc3R1cmVEZXBlbmRlbmN5OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5fcGdFdmVudHM7aWYoYyYmYilmb3IodmFyIGQsZSxmLGc9T2JqZWN0LmtleXMoYyksaD0wO2g8Zy5sZW5ndGg7aCsrKWY9Z1toXSxjW2ZdPjAmJihkPXRoaXMuZGVwZW5kZW5jeU1hcFtmXSxlPWQ/ZC5pbmRleDotMSxiW2VdPSEwKX0sZXZlbnRIYW5kbGVyOmZ1bmN0aW9uKGMpe3ZhciBkPWMudHlwZTtpZigidG91Y2hzdGFydCI9PT1kfHwibW91c2Vkb3duIj09PWR8fCJwb2ludGVyZG93biI9PT1kfHwiTVNQb2ludGVyRG93biI9PT1kKWlmKGMuX2hhbmRsZWRCeVBHfHwoYj17fSksdGhpcy5JU19JT1Mpe3ZhciBlPWM7aWYoInRvdWNoc3RhcnQiPT09ZCl7dmFyIGY9Yy5jaGFuZ2VkVG91Y2hlc1swXTtlPXt0YXJnZXQ6Yy50YXJnZXQsY2xpZW50WDpmLmNsaWVudFgsY2xpZW50WTpmLmNsaWVudFkscGF0aDpjLnBhdGh9fWZvcih2YXIgZyxoPWMucGF0aHx8YS50YXJnZXRGaW5kaW5nLnBhdGgoZSksaT0wO2k8aC5sZW5ndGg7aSsrKWc9aFtpXSx0aGlzLmFkZEdlc3R1cmVEZXBlbmRlbmN5KGcsYil9ZWxzZSB0aGlzLmFkZEdlc3R1cmVEZXBlbmRlbmN5KGMuY3VycmVudFRhcmdldCxiKTtpZighYy5faGFuZGxlZEJ5UEcpe3ZhciBqPXRoaXMuZXZlbnRNYXAmJnRoaXMuZXZlbnRNYXBbZF07aiYmaihjKSxjLl9oYW5kbGVkQnlQRz0hMH19LGxpc3RlbjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTAsZT1iLmxlbmd0aDtlPmQmJihjPWJbZF0pO2QrKyl0aGlzLmFkZEV2ZW50KGEsYyl9LHVubGlzdGVuOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9MCxlPWIubGVuZ3RoO2U+ZCYmKGM9YltkXSk7ZCsrKXRoaXMucmVtb3ZlRXZlbnQoYSxjKX0sYWRkRXZlbnQ6ZnVuY3Rpb24oYSxiKXthLmFkZEV2ZW50TGlzdGVuZXIoYix0aGlzLmJvdW5kSGFuZGxlcil9LHJlbW92ZUV2ZW50OmZ1bmN0aW9uKGEsYil7YS5yZW1vdmVFdmVudExpc3RlbmVyKGIsdGhpcy5ib3VuZEhhbmRsZXIpfSxtYWtlRXZlbnQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1mLm1ha2VQb2ludGVyRXZlbnQoYSxiKTtyZXR1cm4gYy5wcmV2ZW50RGVmYXVsdD1iLnByZXZlbnREZWZhdWx0LGMudGFwUHJldmVudGVkPWIudGFwUHJldmVudGVkLGMuX3RhcmdldD1jLl90YXJnZXR8fGIudGFyZ2V0LGN9LGZpcmVFdmVudDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMubWFrZUV2ZW50KGEsYik7cmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChjKX0sY2xvbmVFdmVudDpmdW5jdGlvbihhKXtmb3IodmFyIGIsZj1PYmplY3QuY3JlYXRlKG51bGwpLGc9MDtnPGMubGVuZ3RoO2crKyliPWNbZ10sZltiXT1hW2JdfHxkW2ddLCgidGFyZ2V0Ij09PWJ8fCJyZWxhdGVkVGFyZ2V0Ij09PWIpJiZlJiZmW2JdaW5zdGFuY2VvZiBTVkdFbGVtZW50SW5zdGFuY2UmJihmW2JdPWZbYl0uY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpO3JldHVybiBmLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7YS5wcmV2ZW50RGVmYXVsdCgpfSxmfSxkaXNwYXRjaEV2ZW50OmZ1bmN0aW9uKGEpe3ZhciBiPWEuX3RhcmdldDtpZihiKXtiLmRpc3BhdGNoRXZlbnQoYSk7dmFyIGM9dGhpcy5jbG9uZUV2ZW50KGEpO2MudGFyZ2V0PWIsdGhpcy5maWxsR2VzdHVyZVF1ZXVlKGMpfX0sZ2VzdHVyZVRyaWdnZXI6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYixjPTA7Yzx0aGlzLmdlc3R1cmVRdWV1ZS5sZW5ndGg7YysrKWlmKGE9dGhpcy5nZXN0dXJlUXVldWVbY10sYj1hLl9yZXF1aXJlZEdlc3R1cmVzKWZvcih2YXIgZCxlLGY9MDtmPHRoaXMuZ2VzdHVyZXMubGVuZ3RoO2YrKyliW2ZdJiYoZD10aGlzLmdlc3R1cmVzW2ZdLGU9ZFthLnR5cGVdLGUmJmUuY2FsbChkLGEpKTt0aGlzLmdlc3R1cmVRdWV1ZS5sZW5ndGg9MH0sZmlsbEdlc3R1cmVRdWV1ZTpmdW5jdGlvbihhKXt0aGlzLmdlc3R1cmVRdWV1ZS5sZW5ndGh8fHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmJvdW5kR2VzdHVyZVRyaWdnZXIpLGEuX3JlcXVpcmVkR2VzdHVyZXM9dGhpcy5yZXF1aXJlZEdlc3R1cmVzLmdldChhLnBvaW50ZXJJZCksdGhpcy5nZXN0dXJlUXVldWUucHVzaChhKX19O2cuYm91bmRIYW5kbGVyPWcuZXZlbnRIYW5kbGVyLmJpbmQoZyksZy5ib3VuZEdlc3R1cmVUcmlnZ2VyPWcuZ2VzdHVyZVRyaWdnZXIuYmluZChnKSxhLmRpc3BhdGNoZXI9ZyxhLmFjdGl2YXRlR2VzdHVyZT1mdW5jdGlvbihhLGIpe3ZhciBjPWIudG9Mb3dlckNhc2UoKSxkPWcuZGVwZW5kZW5jeU1hcFtjXTtpZihkKXt2YXIgZT1nLmdlc3R1cmVzW2QuaW5kZXhdO2lmKGEuX3BnTGlzdGVuZXJzfHwoZy5yZWdpc3RlcihhKSxhLl9wZ0xpc3RlbmVycz0wKSxlKXt2YXIgZixoPWUuZGVmYXVsdEFjdGlvbnMmJmUuZGVmYXVsdEFjdGlvbnNbY107c3dpdGNoKGEubm9kZVR5cGUpe2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Zj1hO2JyZWFrO2Nhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOmY9YS5ob3N0O2JyZWFrO2RlZmF1bHQ6Zj1udWxsfWgmJmYmJiFmLmhhc0F0dHJpYnV0ZSgidG91Y2gtYWN0aW9uIikmJmYuc2V0QXR0cmlidXRlKCJ0b3VjaC1hY3Rpb24iLGgpfWEuX3BnRXZlbnRzfHwoYS5fcGdFdmVudHM9e30pLGEuX3BnRXZlbnRzW2NdPShhLl9wZ0V2ZW50c1tjXXx8MCkrMSxhLl9wZ0xpc3RlbmVycysrfXJldHVybiBCb29sZWFuKGQpfSxhLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYixjLGQsZSl7ZCYmKGEuYWN0aXZhdGVHZXN0dXJlKGIsYyksYi5hZGRFdmVudExpc3RlbmVyKGMsZCxlKSl9LGEuZGVhY3RpdmF0ZUdlc3R1cmU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnRvTG93ZXJDYXNlKCksZD1nLmRlcGVuZGVuY3lNYXBbY107cmV0dXJuIGQmJihhLl9wZ0xpc3RlbmVycz4wJiZhLl9wZ0xpc3RlbmVycy0tLDA9PT1hLl9wZ0xpc3RlbmVycyYmZy51bnJlZ2lzdGVyKGEpLGEuX3BnRXZlbnRzJiYoYS5fcGdFdmVudHNbY10+MD9hLl9wZ0V2ZW50c1tjXS0tOmEuX3BnRXZlbnRzW2NdPTApKSxCb29sZWFuKGQpfSxhLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYixjLGQsZSl7ZCYmKGEuZGVhY3RpdmF0ZUdlc3R1cmUoYixjKSxiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyxkLGUpKX19KHdpbmRvdy5Qb2x5bWVyR2VzdHVyZXMpLGZ1bmN0aW9uKGEpe3ZhciBiPWEuZGlzcGF0Y2hlcixjPWIucG9pbnRlcm1hcCxkPTI1LGU9WzAsMSw0LDJdLGY9MCxnPS9MaW51eC4qRmlyZWZveFwvL2ksaD1mdW5jdGlvbigpe2lmKGcudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSlyZXR1cm4hMTt0cnl7cmV0dXJuIDE9PT1uZXcgTW91c2VFdmVudCgidGVzdCIse2J1dHRvbnM6MX0pLmJ1dHRvbnN9Y2F0Y2goYSl7cmV0dXJuITF9fSgpLGk9e1BPSU5URVJfSUQ6MSxQT0lOVEVSX1RZUEU6Im1vdXNlIixldmVudHM6WyJtb3VzZWRvd24iLCJtb3VzZW1vdmUiLCJtb3VzZXVwIl0sZXhwb3NlczpbImRvd24iLCJ1cCIsIm1vdmUiXSxyZWdpc3RlcjpmdW5jdGlvbihhKXtiLmxpc3RlbihhLHRoaXMuZXZlbnRzKX0sdW5yZWdpc3RlcjpmdW5jdGlvbihhKXthLm5vZGVUeXBlIT09Tm9kZS5ET0NVTUVOVF9OT0RFJiZiLnVubGlzdGVuKGEsdGhpcy5ldmVudHMpfSxsYXN0VG91Y2hlczpbXSxpc0V2ZW50U2ltdWxhdGVkRnJvbVRvdWNoOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPXRoaXMubGFzdFRvdWNoZXMsZT1hLmNsaWVudFgsZj1hLmNsaWVudFksZz0wLGg9Yy5sZW5ndGg7aD5nJiYoYj1jW2ddKTtnKyspe3ZhciBpPU1hdGguYWJzKGUtYi54KSxqPU1hdGguYWJzKGYtYi55KTtpZihkPj1pJiZkPj1qKXJldHVybiEwfX0scHJlcGFyZUV2ZW50OmZ1bmN0aW9uKGEpe3ZhciBjPWIuY2xvbmVFdmVudChhKTtpZihjLnBvaW50ZXJJZD10aGlzLlBPSU5URVJfSUQsYy5pc1ByaW1hcnk9ITAsYy5wb2ludGVyVHlwZT10aGlzLlBPSU5URVJfVFlQRSxjLl9zb3VyY2U9Im1vdXNlIiwhaCl7dmFyIGQ9YS50eXBlLGc9ZVthLndoaWNoXXx8MDsibW91c2Vkb3duIj09PWQ/Znw9ZzoibW91c2V1cCI9PT1kJiYoZiY9fmcpLGMuYnV0dG9ucz1mfXJldHVybiBjfSxtb3VzZWRvd246ZnVuY3Rpb24oZCl7aWYoIXRoaXMuaXNFdmVudFNpbXVsYXRlZEZyb21Ub3VjaChkKSl7dmFyIGU9KGMuaGFzKHRoaXMuUE9JTlRFUl9JRCksdGhpcy5wcmVwYXJlRXZlbnQoZCkpO2UudGFyZ2V0PWEuZmluZFRhcmdldChkKSxjLnNldCh0aGlzLlBPSU5URVJfSUQsZS50YXJnZXQpLGIuZG93bihlKX19LG1vdXNlbW92ZTpmdW5jdGlvbihhKXtpZighdGhpcy5pc0V2ZW50U2ltdWxhdGVkRnJvbVRvdWNoKGEpKXt2YXIgZD1jLmdldCh0aGlzLlBPSU5URVJfSUQpO2lmKGQpe3ZhciBlPXRoaXMucHJlcGFyZUV2ZW50KGEpO2UudGFyZ2V0PWQsMD09PShoP2UuYnV0dG9uczplLndoaWNoKT8oaHx8KGY9ZS5idXR0b25zPTApLGIuY2FuY2VsKGUpLHRoaXMuY2xlYW51cE1vdXNlKGUuYnV0dG9ucykpOmIubW92ZShlKX19fSxtb3VzZXVwOmZ1bmN0aW9uKGQpe2lmKCF0aGlzLmlzRXZlbnRTaW11bGF0ZWRGcm9tVG91Y2goZCkpe3ZhciBlPXRoaXMucHJlcGFyZUV2ZW50KGQpO2UucmVsYXRlZFRhcmdldD1hLmZpbmRUYXJnZXQoZCksZS50YXJnZXQ9Yy5nZXQodGhpcy5QT0lOVEVSX0lEKSxiLnVwKGUpLHRoaXMuY2xlYW51cE1vdXNlKGUuYnV0dG9ucyl9fSxjbGVhbnVwTW91c2U6ZnVuY3Rpb24oYSl7MD09PWEmJmNbImRlbGV0ZSJdKHRoaXMuUE9JTlRFUl9JRCl9fTthLm1vdXNlRXZlbnRzPWl9KHdpbmRvdy5Qb2x5bWVyR2VzdHVyZXMpLGZ1bmN0aW9uKGEpe3ZhciBiPWEuZGlzcGF0Y2hlcixjPShhLnRhcmdldEZpbmRpbmcuYWxsU2hhZG93cy5iaW5kKGEudGFyZ2V0RmluZGluZyksYi5wb2ludGVybWFwKSxkPShBcnJheS5wcm90b3R5cGUubWFwLmNhbGwuYmluZChBcnJheS5wcm90b3R5cGUubWFwKSwyNTAwKSxlPTI1LGY9MjAwLGc9MjAsaD0hMSxpPXtJU19JT1M6ITEsZXZlbnRzOlsidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiXSxleHBvc2VzOlsiZG93biIsInVwIiwibW92ZSJdLHJlZ2lzdGVyOmZ1bmN0aW9uKGEsYyl7KHRoaXMuSVNfSU9TP2M6IWMpJiZiLmxpc3RlbihhLHRoaXMuZXZlbnRzKX0sdW5yZWdpc3RlcjpmdW5jdGlvbihhKXt0aGlzLklTX0lPU3x8Yi51bmxpc3RlbihhLHRoaXMuZXZlbnRzKX0sc2Nyb2xsVHlwZXM6e0VNSVRURVI6Im5vbmUiLFhTQ1JPTExFUjoicGFuLXgiLFlTQ1JPTExFUjoicGFuLXkifSx0b3VjaEFjdGlvblRvU2Nyb2xsVHlwZTpmdW5jdGlvbihhKXt2YXIgYj1hLGM9dGhpcy5zY3JvbGxUeXBlcztyZXR1cm4gYj09PWMuRU1JVFRFUj8ibm9uZSI6Yj09PWMuWFNDUk9MTEVSPyJYIjpiPT09Yy5ZU0NST0xMRVI/IlkiOiJYWSJ9LFBPSU5URVJfVFlQRToidG91Y2giLGZpcnN0VG91Y2g6bnVsbCxpc1ByaW1hcnlUb3VjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5maXJzdFRvdWNoPT09YS5pZGVudGlmaWVyfSxzZXRQcmltYXJ5VG91Y2g6ZnVuY3Rpb24oYSl7KDA9PT1jLnBvaW50ZXJzKCl8fDE9PT1jLnBvaW50ZXJzKCkmJmMuaGFzKDEpKSYmKHRoaXMuZmlyc3RUb3VjaD1hLmlkZW50aWZpZXIsdGhpcy5maXJzdFhZPXtYOmEuY2xpZW50WCxZOmEuY2xpZW50WX0sdGhpcy5maXJzdFRhcmdldD1hLnRhcmdldCx0aGlzLnNjcm9sbGluZz1udWxsLHRoaXMuY2FuY2VsUmVzZXRDbGlja0NvdW50KCkpfSxyZW1vdmVQcmltYXJ5UG9pbnRlcjpmdW5jdGlvbihhKXthLmlzUHJpbWFyeSYmKHRoaXMuZmlyc3RUb3VjaD1udWxsLHRoaXMuZmlyc3RYWT1udWxsLHRoaXMucmVzZXRDbGlja0NvdW50KCkpfSxjbGlja0NvdW50OjAscmVzZXRJZDpudWxsLHJlc2V0Q2xpY2tDb3VudDpmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKCl7dGhpcy5jbGlja0NvdW50PTAsdGhpcy5yZXNldElkPW51bGx9LmJpbmQodGhpcyk7dGhpcy5yZXNldElkPXNldFRpbWVvdXQoYSxmKX0sY2FuY2VsUmVzZXRDbGlja0NvdW50OmZ1bmN0aW9uKCl7dGhpcy5yZXNldElkJiZjbGVhclRpbWVvdXQodGhpcy5yZXNldElkKX0sdHlwZVRvQnV0dG9uczpmdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybigidG91Y2hzdGFydCI9PT1hfHwidG91Y2htb3ZlIj09PWEpJiYoYj0xKSxifSxmaW5kVGFyZ2V0OmZ1bmN0aW9uKGIsZCl7aWYoInRvdWNoc3RhcnQiPT09dGhpcy5jdXJyZW50VG91Y2hFdmVudC50eXBlKXtpZih0aGlzLmlzUHJpbWFyeVRvdWNoKGIpKXt2YXIgZT17Y2xpZW50WDpiLmNsaWVudFgsY2xpZW50WTpiLmNsaWVudFkscGF0aDp0aGlzLmN1cnJlbnRUb3VjaEV2ZW50LnBhdGgsdGFyZ2V0OnRoaXMuY3VycmVudFRvdWNoRXZlbnQudGFyZ2V0fTtyZXR1cm4gYS5maW5kVGFyZ2V0KGUpfXJldHVybiBhLmZpbmRUYXJnZXQoYil9cmV0dXJuIGMuZ2V0KGQpfSx0b3VjaFRvUG9pbnRlcjpmdW5jdGlvbihhKXt2YXIgYz10aGlzLmN1cnJlbnRUb3VjaEV2ZW50LGQ9Yi5jbG9uZUV2ZW50KGEpLGU9ZC5wb2ludGVySWQ9YS5pZGVudGlmaWVyKzI7ZC50YXJnZXQ9dGhpcy5maW5kVGFyZ2V0KGEsZSksZC5idWJibGVzPSEwLGQuY2FuY2VsYWJsZT0hMCxkLmRldGFpbD10aGlzLmNsaWNrQ291bnQsZC5idXR0b25zPXRoaXMudHlwZVRvQnV0dG9ucyhjLnR5cGUpLGQud2lkdGg9YS53ZWJraXRSYWRpdXNYfHxhLnJhZGl1c1h8fDAsZC5oZWlnaHQ9YS53ZWJraXRSYWRpdXNZfHxhLnJhZGl1c1l8fDAsZC5wcmVzc3VyZT1hLndlYmtpdEZvcmNlfHxhLmZvcmNlfHwuNSxkLmlzUHJpbWFyeT10aGlzLmlzUHJpbWFyeVRvdWNoKGEpLGQucG9pbnRlclR5cGU9dGhpcy5QT0lOVEVSX1RZUEUsZC5fc291cmNlPSJ0b3VjaCI7dmFyIGY9dGhpcztyZXR1cm4gZC5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe2Yuc2Nyb2xsaW5nPSExLGYuZmlyc3RYWT1udWxsLGMucHJldmVudERlZmF1bHQoKX0sZH0scHJvY2Vzc1RvdWNoZXM6ZnVuY3Rpb24oYSxiKXt2YXIgZD1hLmNoYW5nZWRUb3VjaGVzO3RoaXMuY3VycmVudFRvdWNoRXZlbnQ9YTtmb3IodmFyIGUsZixnPTA7ZzxkLmxlbmd0aDtnKyspZT1kW2ddLGY9dGhpcy50b3VjaFRvUG9pbnRlcihlKSwidG91Y2hzdGFydCI9PT1hLnR5cGUmJmMuc2V0KGYucG9pbnRlcklkLGYudGFyZ2V0KSxjLmhhcyhmLnBvaW50ZXJJZCkmJmIuY2FsbCh0aGlzLGYpLCgidG91Y2hlbmQiPT09YS50eXBlfHxhLl9jYW5jZWwpJiZ0aGlzLmNsZWFuVXBQb2ludGVyKGYpfSxzaG91bGRTY3JvbGw6ZnVuY3Rpb24oYil7aWYodGhpcy5maXJzdFhZKXt2YXIgYyxkPWEudGFyZ2V0RmluZGluZy5maW5kVG91Y2hBY3Rpb24oYiksZT10aGlzLnRvdWNoQWN0aW9uVG9TY3JvbGxUeXBlKGQpO2lmKCJub25lIj09PWUpYz0hMTtlbHNlIGlmKCJYWSI9PT1lKWM9ITA7ZWxzZXt2YXIgZj1iLmNoYW5nZWRUb3VjaGVzWzBdLGc9ZSxoPSJZIj09PWU/IlgiOiJZIixpPU1hdGguYWJzKGZbImNsaWVudCIrZ10tdGhpcy5maXJzdFhZW2ddKSxqPU1hdGguYWJzKGZbImNsaWVudCIraF0tdGhpcy5maXJzdFhZW2hdKTtjPWk+PWp9cmV0dXJuIGN9fSxmaW5kVG91Y2g6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9YS5sZW5ndGg7ZT5kJiYoYz1hW2RdKTtkKyspaWYoYy5pZGVudGlmaWVyPT09YilyZXR1cm4hMH0sdmFjdXVtVG91Y2hlczpmdW5jdGlvbihhKXt2YXIgYj1hLnRvdWNoZXM7aWYoYy5wb2ludGVycygpPj1iLmxlbmd0aCl7dmFyIGQ9W107Yy5mb3JFYWNoKGZ1bmN0aW9uKGEsYyl7aWYoMSE9PWMmJiF0aGlzLmZpbmRUb3VjaChiLGMtMikpe3ZhciBlPWE7ZC5wdXNoKGUpfX0sdGhpcyksZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3RoaXMuY2FuY2VsKGEpLGNbImRlbGV0ZSJdKGEucG9pbnRlcklkKX0sdGhpcyl9fSx0b3VjaHN0YXJ0OmZ1bmN0aW9uKGEpe3RoaXMudmFjdXVtVG91Y2hlcyhhKSx0aGlzLnNldFByaW1hcnlUb3VjaChhLmNoYW5nZWRUb3VjaGVzWzBdKSx0aGlzLmRlZHVwU3ludGhNb3VzZShhKSx0aGlzLnNjcm9sbGluZ3x8KHRoaXMuY2xpY2tDb3VudCsrLHRoaXMucHJvY2Vzc1RvdWNoZXMoYSx0aGlzLmRvd24pKX0sZG93bjpmdW5jdGlvbihhKXtiLmRvd24oYSl9LHRvdWNobW92ZTpmdW5jdGlvbihhKXtpZihoKWEuY2FuY2VsYWJsZSYmdGhpcy5wcm9jZXNzVG91Y2hlcyhhLHRoaXMubW92ZSk7ZWxzZSBpZih0aGlzLnNjcm9sbGluZyl7aWYodGhpcy5maXJzdFhZKXt2YXIgYj1hLmNoYW5nZWRUb3VjaGVzWzBdLGM9Yi5jbGllbnRYLXRoaXMuZmlyc3RYWS5YLGQ9Yi5jbGllbnRZLXRoaXMuZmlyc3RYWS5ZLGU9TWF0aC5zcXJ0KGMqYytkKmQpO2U+PWcmJih0aGlzLnRvdWNoY2FuY2VsKGEpLHRoaXMuc2Nyb2xsaW5nPSEwLHRoaXMuZmlyc3RYWT1udWxsKX19ZWxzZSBudWxsPT09dGhpcy5zY3JvbGxpbmcmJnRoaXMuc2hvdWxkU2Nyb2xsKGEpP3RoaXMuc2Nyb2xsaW5nPSEwOih0aGlzLnNjcm9sbGluZz0hMSxhLnByZXZlbnREZWZhdWx0KCksdGhpcy5wcm9jZXNzVG91Y2hlcyhhLHRoaXMubW92ZSkpfSxtb3ZlOmZ1bmN0aW9uKGEpe2IubW92ZShhKX0sdG91Y2hlbmQ6ZnVuY3Rpb24oYSl7dGhpcy5kZWR1cFN5bnRoTW91c2UoYSksdGhpcy5wcm9jZXNzVG91Y2hlcyhhLHRoaXMudXApfSx1cDpmdW5jdGlvbihjKXtjLnJlbGF0ZWRUYXJnZXQ9YS5maW5kVGFyZ2V0KGMpLGIudXAoYyl9LGNhbmNlbDpmdW5jdGlvbihhKXtiLmNhbmNlbChhKX0sdG91Y2hjYW5jZWw6ZnVuY3Rpb24oYSl7YS5fY2FuY2VsPSEwLHRoaXMucHJvY2Vzc1RvdWNoZXMoYSx0aGlzLmNhbmNlbCl9LGNsZWFuVXBQb2ludGVyOmZ1bmN0aW9uKGEpe2NbImRlbGV0ZSJdKGEucG9pbnRlcklkKSx0aGlzLnJlbW92ZVByaW1hcnlQb2ludGVyKGEpfSxkZWR1cFN5bnRoTW91c2U6ZnVuY3Rpb24oYil7dmFyIGM9YS5tb3VzZUV2ZW50cy5sYXN0VG91Y2hlcyxlPWIuY2hhbmdlZFRvdWNoZXNbMF07aWYodGhpcy5pc1ByaW1hcnlUb3VjaChlKSl7dmFyIGY9e3g6ZS5jbGllbnRYLHk6ZS5jbGllbnRZfTtjLnB1c2goZik7dmFyIGc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmluZGV4T2YoYik7Yz4tMSYmYS5zcGxpY2UoYywxKX0uYmluZChudWxsLGMsZik7c2V0VGltZW91dChnLGQpfX19LGo9RXZlbnQucHJvdG90eXBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbnx8RXZlbnQucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbjtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIGM9Yi5jbGllbnRYLGQ9Yi5jbGllbnRZLGY9ZnVuY3Rpb24oYSl7dmFyIGI9TWF0aC5hYnMoYy1hLngpLGY9TWF0aC5hYnMoZC1hLnkpO3JldHVybiBlPj1iJiZlPj1mfSxnPWEubW91c2VFdmVudHMubGFzdFRvdWNoZXMuc29tZShmKSxoPWEudGFyZ2V0RmluZGluZy5wYXRoKGIpO2lmKGcpe2Zvcih2YXIgaz0wO2s8aC5sZW5ndGg7aysrKWlmKGhba109PT1pLmZpcnN0VGFyZ2V0KXJldHVybjtiLnByZXZlbnREZWZhdWx0KCksai5jYWxsKGIpfX0sITApLGEudG91Y2hFdmVudHM9aX0od2luZG93LlBvbHltZXJHZXN0dXJlcyksZnVuY3Rpb24oYSl7dmFyIGI9YS5kaXNwYXRjaGVyLGM9Yi5wb2ludGVybWFwLGQ9d2luZG93Lk1TUG9pbnRlckV2ZW50JiYibnVtYmVyIj09dHlwZW9mIHdpbmRvdy5NU1BvaW50ZXJFdmVudC5NU1BPSU5URVJfVFlQRV9NT1VTRSxlPXtldmVudHM6WyJNU1BvaW50ZXJEb3duIiwiTVNQb2ludGVyTW92ZSIsIk1TUG9pbnRlclVwIiwiTVNQb2ludGVyQ2FuY2VsIl0scmVnaXN0ZXI6ZnVuY3Rpb24oYSl7Yi5saXN0ZW4oYSx0aGlzLmV2ZW50cyl9LHVucmVnaXN0ZXI6ZnVuY3Rpb24oYSl7YS5ub2RlVHlwZSE9PU5vZGUuRE9DVU1FTlRfTk9ERSYmYi51bmxpc3RlbihhLHRoaXMuZXZlbnRzKX0sUE9JTlRFUl9UWVBFUzpbIiIsInVuYXZhaWxhYmxlIiwidG91Y2giLCJwZW4iLCJtb3VzZSJdLHByZXBhcmVFdmVudDpmdW5jdGlvbihhKXt2YXIgYz1hO3JldHVybiBjPWIuY2xvbmVFdmVudChhKSxkJiYoYy5wb2ludGVyVHlwZT10aGlzLlBPSU5URVJfVFlQRVNbYS5wb2ludGVyVHlwZV0pLGMuX3NvdXJjZT0ibXMiLGN9LGNsZWFudXA6ZnVuY3Rpb24oYSl7Y1siZGVsZXRlIl0oYSl9LE1TUG9pbnRlckRvd246ZnVuY3Rpb24oZCl7dmFyIGU9dGhpcy5wcmVwYXJlRXZlbnQoZCk7ZS50YXJnZXQ9YS5maW5kVGFyZ2V0KGQpLGMuc2V0KGQucG9pbnRlcklkLGUudGFyZ2V0KSxiLmRvd24oZSl9LE1TUG9pbnRlck1vdmU6ZnVuY3Rpb24oYSl7dmFyIGQ9Yy5nZXQoYS5wb2ludGVySWQpO2lmKGQpe3ZhciBlPXRoaXMucHJlcGFyZUV2ZW50KGEpO2UudGFyZ2V0PWQsYi5tb3ZlKGUpfX0sTVNQb2ludGVyVXA6ZnVuY3Rpb24oZCl7dmFyIGU9dGhpcy5wcmVwYXJlRXZlbnQoZCk7ZS5yZWxhdGVkVGFyZ2V0PWEuZmluZFRhcmdldChkKSxlLnRhcmdldD1jLmdldChlLnBvaW50ZXJJZCksYi51cChlKSx0aGlzLmNsZWFudXAoZC5wb2ludGVySWQpfSxNU1BvaW50ZXJDYW5jZWw6ZnVuY3Rpb24oZCl7dmFyIGU9dGhpcy5wcmVwYXJlRXZlbnQoZCk7ZS5yZWxhdGVkVGFyZ2V0PWEuZmluZFRhcmdldChkKSxlLnRhcmdldD1jLmdldChlLnBvaW50ZXJJZCksYi5jYW5jZWwoZSksdGhpcy5jbGVhbnVwKGQucG9pbnRlcklkKX19O2EubXNFdmVudHM9ZX0od2luZG93LlBvbHltZXJHZXN0dXJlcyksZnVuY3Rpb24oYSl7dmFyIGI9YS5kaXNwYXRjaGVyLGM9Yi5wb2ludGVybWFwLGQ9e2V2ZW50czpbInBvaW50ZXJkb3duIiwicG9pbnRlcm1vdmUiLCJwb2ludGVydXAiLCJwb2ludGVyY2FuY2VsIl0scHJlcGFyZUV2ZW50OmZ1bmN0aW9uKGEpe3ZhciBjPWIuY2xvbmVFdmVudChhKTtyZXR1cm4gYy5fc291cmNlPSJwb2ludGVyIixjfSxyZWdpc3RlcjpmdW5jdGlvbihhKXtiLmxpc3RlbihhLHRoaXMuZXZlbnRzKX0sdW5yZWdpc3RlcjpmdW5jdGlvbihhKXthLm5vZGVUeXBlIT09Tm9kZS5ET0NVTUVOVF9OT0RFJiZiLnVubGlzdGVuKGEsdGhpcy5ldmVudHMpfSxjbGVhbnVwOmZ1bmN0aW9uKGEpe2NbImRlbGV0ZSJdKGEpfSxwb2ludGVyZG93bjpmdW5jdGlvbihkKXt2YXIgZT10aGlzLnByZXBhcmVFdmVudChkKTtlLnRhcmdldD1hLmZpbmRUYXJnZXQoZCksYy5zZXQoZS5wb2ludGVySWQsZS50YXJnZXQpLGIuZG93bihlKX0scG9pbnRlcm1vdmU6ZnVuY3Rpb24oYSl7dmFyIGQ9Yy5nZXQoYS5wb2ludGVySWQpO2lmKGQpe3ZhciBlPXRoaXMucHJlcGFyZUV2ZW50KGEpO2UudGFyZ2V0PWQsYi5tb3ZlKGUpfX0scG9pbnRlcnVwOmZ1bmN0aW9uKGQpe3ZhciBlPXRoaXMucHJlcGFyZUV2ZW50KGQpO2UucmVsYXRlZFRhcmdldD1hLmZpbmRUYXJnZXQoZCksZS50YXJnZXQ9Yy5nZXQoZS5wb2ludGVySWQpLGIudXAoZSksdGhpcy5jbGVhbnVwKGQucG9pbnRlcklkKX0scG9pbnRlcmNhbmNlbDpmdW5jdGlvbihkKXt2YXIgZT10aGlzLnByZXBhcmVFdmVudChkKTtlLnJlbGF0ZWRUYXJnZXQ9YS5maW5kVGFyZ2V0KGQpLGUudGFyZ2V0PWMuZ2V0KGUucG9pbnRlcklkKSxiLmNhbmNlbChlKSx0aGlzLmNsZWFudXAoZC5wb2ludGVySWQpfX07YS5wb2ludGVyRXZlbnRzPWR9KHdpbmRvdy5Qb2x5bWVyR2VzdHVyZXMpLGZ1bmN0aW9uKGEpe3ZhciBiPWEuZGlzcGF0Y2hlcixjPXdpbmRvdy5uYXZpZ2F0b3I7d2luZG93LlBvaW50ZXJFdmVudD9iLnJlZ2lzdGVyU291cmNlKCJwb2ludGVyIixhLnBvaW50ZXJFdmVudHMpOmMubXNQb2ludGVyRW5hYmxlZD9iLnJlZ2lzdGVyU291cmNlKCJtcyIsYS5tc0V2ZW50cyk6KGIucmVnaXN0ZXJTb3VyY2UoIm1vdXNlIixhLm1vdXNlRXZlbnRzKSx2b2lkIDAhPT13aW5kb3cub250b3VjaHN0YXJ0JiZiLnJlZ2lzdGVyU291cmNlKCJ0b3VjaCIsYS50b3VjaEV2ZW50cykpO3ZhciBkPW5hdmlnYXRvci51c2VyQWdlbnQsZT1kLm1hdGNoKC9pUGFkfGlQaG9uZXxpUG9kLykmJiJvbnRvdWNoc3RhcnQiaW4gd2luZG93O2IuSVNfSU9TPWUsYS50b3VjaEV2ZW50cy5JU19JT1M9ZSxiLnJlZ2lzdGVyKGRvY3VtZW50LCEwKX0od2luZG93LlBvbHltZXJHZXN0dXJlcyksZnVuY3Rpb24oYSl7dmFyIGI9YS5kaXNwYXRjaGVyLGM9YS5ldmVudEZhY3RvcnksZD1uZXcgYS5Qb2ludGVyTWFwLGU9e2V2ZW50czpbImRvd24iLCJtb3ZlIiwidXAiXSxleHBvc2VzOlsidHJhY2tzdGFydCIsInRyYWNrIiwidHJhY2t4IiwidHJhY2t5IiwidHJhY2tlbmQiXSxkZWZhdWx0QWN0aW9uczp7dHJhY2s6Im5vbmUiLHRyYWNreDoicGFuLXkiLHRyYWNreToicGFuLXgifSxXSUdHTEVfVEhSRVNIT0xEOjQsY2xhbXBEaXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGE+MD8xOi0xfSxjYWxjUG9zaXRpb25EZWx0YTpmdW5jdGlvbihhLGIpe3ZhciBjPTAsZD0wO3JldHVybiBhJiZiJiYoYz1iLnBhZ2VYLWEucGFnZVgsZD1iLnBhZ2VZLWEucGFnZVkpLHt4OmMseTpkfX0sZmlyZVRyYWNrOmZ1bmN0aW9uKGEsYixkKXt2YXIgZT1kLGY9dGhpcy5jYWxjUG9zaXRpb25EZWx0YShlLmRvd25FdmVudCxiKSxnPXRoaXMuY2FsY1Bvc2l0aW9uRGVsdGEoZS5sYXN0TW92ZUV2ZW50LGIpO2lmKGcueCllLnhEaXJlY3Rpb249dGhpcy5jbGFtcERpcihnLngpO2Vsc2UgaWYoInRyYWNreCI9PT1hKXJldHVybjtpZihnLnkpZS55RGlyZWN0aW9uPXRoaXMuY2xhbXBEaXIoZy55KTtlbHNlIGlmKCJ0cmFja3kiPT09YSlyZXR1cm47dmFyIGg9e2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCx0cmFja0luZm86ZS50cmFja0luZm8scmVsYXRlZFRhcmdldDpiLnJlbGF0ZWRUYXJnZXQscG9pbnRlclR5cGU6Yi5wb2ludGVyVHlwZSxwb2ludGVySWQ6Yi5wb2ludGVySWQsX3NvdXJjZToidHJhY2sifTsidHJhY2t5IiE9PWEmJihoLng9Yi54LGguZHg9Zi54LGguZGR4PWcueCxoLmNsaWVudFg9Yi5jbGllbnRYLGgucGFnZVg9Yi5wYWdlWCxoLnNjcmVlblg9Yi5zY3JlZW5YLGgueERpcmVjdGlvbj1lLnhEaXJlY3Rpb24pLCJ0cmFja3giIT09YSYmKGguZHk9Zi55LGguZGR5PWcueSxoLnk9Yi55LGguY2xpZW50WT1iLmNsaWVudFksaC5wYWdlWT1iLnBhZ2VZLGguc2NyZWVuWT1iLnNjcmVlblksaC55RGlyZWN0aW9uPWUueURpcmVjdGlvbik7dmFyIGk9Yy5tYWtlR2VzdHVyZUV2ZW50KGEsaCk7ZS5kb3duVGFyZ2V0LmRpc3BhdGNoRXZlbnQoaSl9LGRvd246ZnVuY3Rpb24oYSl7aWYoYS5pc1ByaW1hcnkmJigibW91c2UiPT09YS5wb2ludGVyVHlwZT8xPT09YS5idXR0b25zOiEwKSl7dmFyIGI9e2Rvd25FdmVudDphLGRvd25UYXJnZXQ6YS50YXJnZXQsdHJhY2tJbmZvOnt9LGxhc3RNb3ZlRXZlbnQ6bnVsbCx4RGlyZWN0aW9uOjAseURpcmVjdGlvbjowLHRyYWNraW5nOiExfTtkLnNldChhLnBvaW50ZXJJZCxiKX19LG1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9ZC5nZXQoYS5wb2ludGVySWQpO2lmKGIpe2lmKCFiLnRyYWNraW5nKXt2YXIgYz10aGlzLmNhbGNQb3NpdGlvbkRlbHRhKGIuZG93bkV2ZW50LGEpLGU9Yy54KmMueCtjLnkqYy55O2U+dGhpcy5XSUdHTEVfVEhSRVNIT0xEJiYoYi50cmFja2luZz0hMCxiLmxhc3RNb3ZlRXZlbnQ9Yi5kb3duRXZlbnQsdGhpcy5maXJlVHJhY2soInRyYWNrc3RhcnQiLGEsYikpfWIudHJhY2tpbmcmJih0aGlzLmZpcmVUcmFjaygidHJhY2siLGEsYiksdGhpcy5maXJlVHJhY2soInRyYWNreCIsYSxiKSx0aGlzLmZpcmVUcmFjaygidHJhY2t5IixhLGIpKSxiLmxhc3RNb3ZlRXZlbnQ9YX19LHVwOmZ1bmN0aW9uKGEpe3ZhciBiPWQuZ2V0KGEucG9pbnRlcklkKTtiJiYoYi50cmFja2luZyYmdGhpcy5maXJlVHJhY2soInRyYWNrZW5kIixhLGIpLGRbImRlbGV0ZSJdKGEucG9pbnRlcklkKSl9fTtiLnJlZ2lzdGVyR2VzdHVyZSgidHJhY2siLGUpfSh3aW5kb3cuUG9seW1lckdlc3R1cmVzKSxmdW5jdGlvbihhKXt2YXIgYj1hLmRpc3BhdGNoZXIsYz1hLmV2ZW50RmFjdG9yeSxkPXtIT0xEX0RFTEFZOjIwMCxXSUdHTEVfVEhSRVNIT0xEOjE2LGV2ZW50czpbImRvd24iLCJtb3ZlIiwidXAiXSxleHBvc2VzOlsiaG9sZCIsImhvbGRwdWxzZSIsInJlbGVhc2UiXSxoZWxkUG9pbnRlcjpudWxsLGhvbGRKb2I6bnVsbCxwdWxzZTpmdW5jdGlvbigpe3ZhciBhPURhdGUubm93KCktdGhpcy5oZWxkUG9pbnRlci50aW1lU3RhbXAsYj10aGlzLmhlbGQ/ImhvbGRwdWxzZSI6ImhvbGQiO3RoaXMuZmlyZUhvbGQoYixhKSx0aGlzLmhlbGQ9ITB9LGNhbmNlbDpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwodGhpcy5ob2xkSm9iKSx0aGlzLmhlbGQmJnRoaXMuZmlyZUhvbGQoInJlbGVhc2UiKSx0aGlzLmhlbGQ9ITEsdGhpcy5oZWxkUG9pbnRlcj1udWxsLHRoaXMudGFyZ2V0PW51bGwsdGhpcy5ob2xkSm9iPW51bGx9LGRvd246ZnVuY3Rpb24oYSl7YS5pc1ByaW1hcnkmJiF0aGlzLmhlbGRQb2ludGVyJiYodGhpcy5oZWxkUG9pbnRlcj1hLHRoaXMudGFyZ2V0PWEudGFyZ2V0LHRoaXMuaG9sZEpvYj1zZXRJbnRlcnZhbCh0aGlzLnB1bHNlLmJpbmQodGhpcyksdGhpcy5IT0xEX0RFTEFZKSl9LHVwOmZ1bmN0aW9uKGEpe3RoaXMuaGVsZFBvaW50ZXImJnRoaXMuaGVsZFBvaW50ZXIucG9pbnRlcklkPT09YS5wb2ludGVySWQmJnRoaXMuY2FuY2VsKCl9LG1vdmU6ZnVuY3Rpb24oYSl7aWYodGhpcy5oZWxkUG9pbnRlciYmdGhpcy5oZWxkUG9pbnRlci5wb2ludGVySWQ9PT1hLnBvaW50ZXJJZCl7dmFyIGI9YS5jbGllbnRYLXRoaXMuaGVsZFBvaW50ZXIuY2xpZW50WCxjPWEuY2xpZW50WS10aGlzLmhlbGRQb2ludGVyLmNsaWVudFk7YipiK2MqYz50aGlzLldJR0dMRV9USFJFU0hPTEQmJnRoaXMuY2FuY2VsKCl9fSxmaXJlSG9sZDpmdW5jdGlvbihhLGIpe3ZhciBkPXtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAscG9pbnRlclR5cGU6dGhpcy5oZWxkUG9pbnRlci5wb2ludGVyVHlwZSxwb2ludGVySWQ6dGhpcy5oZWxkUG9pbnRlci5wb2ludGVySWQseDp0aGlzLmhlbGRQb2ludGVyLmNsaWVudFgseTp0aGlzLmhlbGRQb2ludGVyLmNsaWVudFksX3NvdXJjZToiaG9sZCJ9O2ImJihkLmhvbGRUaW1lPWIpO3ZhciBlPWMubWFrZUdlc3R1cmVFdmVudChhLGQpO3RoaXMudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZSl9fTtiLnJlZ2lzdGVyR2VzdHVyZSgiaG9sZCIsZCl9KHdpbmRvdy5Qb2x5bWVyR2VzdHVyZXMpLGZ1bmN0aW9uKGEpe3ZhciBiPWEuZGlzcGF0Y2hlcixjPWEuZXZlbnRGYWN0b3J5LGQ9bmV3IGEuUG9pbnRlck1hcCxlPXtldmVudHM6WyJkb3duIiwidXAiXSxleHBvc2VzOlsidGFwIl0sZG93bjpmdW5jdGlvbihhKXthLmlzUHJpbWFyeSYmIWEudGFwUHJldmVudGVkJiZkLnNldChhLnBvaW50ZXJJZCx7dGFyZ2V0OmEudGFyZ2V0LGJ1dHRvbnM6YS5idXR0b25zLHg6YS5jbGllbnRYLHk6YS5jbGllbnRZfSl9LHNob3VsZFRhcDpmdW5jdGlvbihhLGIpe3ZhciBjPSEwO3JldHVybiJtb3VzZSI9PT1hLnBvaW50ZXJUeXBlJiYoYz0xXmEuYnV0dG9ucyYmMSZiLmJ1dHRvbnMpLGMmJiFhLnRhcFByZXZlbnRlZH0sdXA6ZnVuY3Rpb24oYil7dmFyIGU9ZC5nZXQoYi5wb2ludGVySWQpO2lmKGUmJnRoaXMuc2hvdWxkVGFwKGIsZSkpe3ZhciBmPWEudGFyZ2V0RmluZGluZy5MQ0EoZS50YXJnZXQsYi5yZWxhdGVkVGFyZ2V0KTtpZihmKXt2YXIgZz1jLm1ha2VHZXN0dXJlRXZlbnQoInRhcCIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCx4OmIuY2xpZW50WCx5OmIuY2xpZW50WSxkZXRhaWw6Yi5kZXRhaWwscG9pbnRlclR5cGU6Yi5wb2ludGVyVHlwZSxwb2ludGVySWQ6Yi5wb2ludGVySWQsYWx0S2V5OmIuYWx0S2V5LGN0cmxLZXk6Yi5jdHJsS2V5LG1ldGFLZXk6Yi5tZXRhS2V5LHNoaWZ0S2V5OmIuc2hpZnRLZXksX3NvdXJjZToidGFwIn0pO2YuZGlzcGF0Y2hFdmVudChnKX19ZFsiZGVsZXRlIl0oYi5wb2ludGVySWQpfX07Yy5wcmV2ZW50VGFwPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe2EudGFwUHJldmVudGVkPSEwLGRbImRlbGV0ZSJdKGEucG9pbnRlcklkKX19LGIucmVnaXN0ZXJHZXN0dXJlKCJ0YXAiLGUpfSh3aW5kb3cuUG9seW1lckdlc3R1cmVzKSxmdW5jdGlvbihhKXt2YXIgYj1hLmRpc3BhdGNoZXIsYz1hLmV2ZW50RmFjdG9yeSxkPW5ldyBhLlBvaW50ZXJNYXAsZT0xODAvTWF0aC5QSSxmPXtldmVudHM6WyJkb3duIiwidXAiLCJtb3ZlIiwiY2FuY2VsIl0sZXhwb3NlczpbInBpbmNoc3RhcnQiLCJwaW5jaCIsInBpbmNoZW5kIiwicm90YXRlIl0sZGVmYXVsdEFjdGlvbnM6e3BpbmNoOiJub25lIixyb3RhdGU6Im5vbmUifSxyZWZlcmVuY2U6e30sZG93bjpmdW5jdGlvbihiKXtpZihkLnNldChiLnBvaW50ZXJJZCxiKSwyPT1kLnBvaW50ZXJzKCkpe3ZhciBjPXRoaXMuY2FsY0Nob3JkKCksZT10aGlzLmNhbGNBbmdsZShjKTt0aGlzLnJlZmVyZW5jZT17YW5nbGU6ZSxkaWFtZXRlcjpjLmRpYW1ldGVyLHRhcmdldDphLnRhcmdldEZpbmRpbmcuTENBKGMuYS50YXJnZXQsYy5iLnRhcmdldCl9LHRoaXMuZmlyZVBpbmNoKCJwaW5jaHN0YXJ0IixjLmRpYW1ldGVyLGMpfX0sdXA6ZnVuY3Rpb24oYSl7dmFyIGI9ZC5nZXQoYS5wb2ludGVySWQpLGM9ZC5wb2ludGVycygpO2lmKGIpe2lmKDI9PT1jKXt2YXIgZT10aGlzLmNhbGNDaG9yZCgpO3RoaXMuZmlyZVBpbmNoKCJwaW5jaGVuZCIsZS5kaWFtZXRlcixlKX1kWyJkZWxldGUiXShhLnBvaW50ZXJJZCl9fSxtb3ZlOmZ1bmN0aW9uKGEpe2QuaGFzKGEucG9pbnRlcklkKSYmKGQuc2V0KGEucG9pbnRlcklkLGEpLGQucG9pbnRlcnMoKT4xJiZ0aGlzLmNhbGNQaW5jaFJvdGF0ZSgpKX0sY2FuY2VsOmZ1bmN0aW9uKGEpe3RoaXMudXAoYSl9LGZpcmVQaW5jaDpmdW5jdGlvbihhLGIsZCl7dmFyIGU9Yi90aGlzLnJlZmVyZW5jZS5kaWFtZXRlcixmPWMubWFrZUdlc3R1cmVFdmVudChhLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsc2NhbGU6ZSxjZW50ZXJYOmQuY2VudGVyLngsY2VudGVyWTpkLmNlbnRlci55LF9zb3VyY2U6InBpbmNoIn0pO3RoaXMucmVmZXJlbmNlLnRhcmdldC5kaXNwYXRjaEV2ZW50KGYpfSxmaXJlUm90YXRlOmZ1bmN0aW9uKGEsYil7dmFyIGQ9TWF0aC5yb3VuZCgoYS10aGlzLnJlZmVyZW5jZS5hbmdsZSklMzYwKSxlPWMubWFrZUdlc3R1cmVFdmVudCgicm90YXRlIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGFuZ2xlOmQsY2VudGVyWDpiLmNlbnRlci54LGNlbnRlclk6Yi5jZW50ZXIueSxfc291cmNlOiJwaW5jaCJ9KTt0aGlzLnJlZmVyZW5jZS50YXJnZXQuZGlzcGF0Y2hFdmVudChlKX0sY2FsY1BpbmNoUm90YXRlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jYWxjQ2hvcmQoKSxiPWEuZGlhbWV0ZXIsYz10aGlzLmNhbGNBbmdsZShhKTtiIT10aGlzLnJlZmVyZW5jZS5kaWFtZXRlciYmdGhpcy5maXJlUGluY2goInBpbmNoIixiLGEpLGMhPXRoaXMucmVmZXJlbmNlLmFuZ2xlJiZ0aGlzLmZpcmVSb3RhdGUoYyxhKX0sY2FsY0Nob3JkOmZ1bmN0aW9uKCl7dmFyIGE9W107ZC5mb3JFYWNoKGZ1bmN0aW9uKGIpe2EucHVzaChiKX0pO2Zvcih2YXIgYixjLGUsZj0wLGc9e2E6YVswXSxiOmFbMV19LGg9MDtoPGEubGVuZ3RoO2grKylmb3IodmFyIGk9YVtoXSxqPWgrMTtqPGEubGVuZ3RoO2orKyl7dmFyIGs9YVtqXTtiPU1hdGguYWJzKGkuY2xpZW50WC1rLmNsaWVudFgpLGM9TWF0aC5hYnMoaS5jbGllbnRZLWsuY2xpZW50WSksZT1iK2MsZT5mJiYoZj1lLGc9e2E6aSxiOmt9KX1yZXR1cm4gYj1NYXRoLmFicyhnLmEuY2xpZW50WCtnLmIuY2xpZW50WCkvMixjPU1hdGguYWJzKGcuYS5jbGllbnRZK2cuYi5jbGllbnRZKS8yLGcuY2VudGVyPXt4OmIseTpjfSxnLmRpYW1ldGVyPWYsZ30sY2FsY0FuZ2xlOmZ1bmN0aW9uKGEpe3ZhciBiPWEuYS5jbGllbnRYLWEuYi5jbGllbnRYLGM9YS5hLmNsaWVudFktYS5iLmNsaWVudFk7cmV0dXJuKDM2MCtNYXRoLmF0YW4yKGMsYikqZSklMzYwfX07Yi5yZWdpc3Rlckdlc3R1cmUoInBpbmNoIixmKX0od2luZG93LlBvbHltZXJHZXN0dXJlcyksZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYSxiKXtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkFTU0VSVDogIitiKX1mdW5jdGlvbiBjKGEpe3JldHVybiBhPj00OCYmNTc+PWF9ZnVuY3Rpb24gZChhKXtyZXR1cm4gMzI9PT1hfHw5PT09YXx8MTE9PT1hfHwxMj09PWF8fDE2MD09PWF8fGE+PTU3NjAmJiLhmoDhoI7igIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIDvu78iLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZShhKSk+MH1mdW5jdGlvbiBlKGEpe3JldHVybiAxMD09PWF8fDEzPT09YXx8ODIzMj09PWF8fDgyMzM9PT1hfWZ1bmN0aW9uIGYoYSl7cmV0dXJuIDM2PT09YXx8OTU9PT1hfHxhPj02NSYmOTA+PWF8fGE+PTk3JiYxMjI+PWF9ZnVuY3Rpb24gZyhhKXtyZXR1cm4gMzY9PT1hfHw5NT09PWF8fGE+PTY1JiY5MD49YXx8YT49OTcmJjEyMj49YXx8YT49NDgmJjU3Pj1hfWZ1bmN0aW9uIGgoYSl7cmV0dXJuInRoaXMiPT09YX1mdW5jdGlvbiBpKCl7Zm9yKDtZPlgmJmQoVy5jaGFyQ29kZUF0KFgpKTspKytYfWZ1bmN0aW9uIGooKXt2YXIgYSxiO2ZvcihhPVgrKztZPlgmJihiPVcuY2hhckNvZGVBdChYKSxnKGIpKTspKytYO3JldHVybiBXLnNsaWNlKGEsWCl9ZnVuY3Rpb24gaygpe3ZhciBhLGIsYztyZXR1cm4gYT1YLGI9aigpLGM9MT09PWIubGVuZ3RoP1MuSWRlbnRpZmllcjpoKGIpP1MuS2V5d29yZDoibnVsbCI9PT1iP1MuTnVsbExpdGVyYWw6InRydWUiPT09Ynx8ImZhbHNlIj09PWI/Uy5Cb29sZWFuTGl0ZXJhbDpTLklkZW50aWZpZXIse3R5cGU6Yyx2YWx1ZTpiLHJhbmdlOlthLFhdfX1mdW5jdGlvbiBsKCl7dmFyIGEsYixjPVgsZD1XLmNoYXJDb2RlQXQoWCksZT1XW1hdO3N3aXRjaChkKXtjYXNlIDQ2OmNhc2UgNDA6Y2FzZSA0MTpjYXNlIDU5OmNhc2UgNDQ6Y2FzZSAxMjM6Y2FzZSAxMjU6Y2FzZSA5MTpjYXNlIDkzOmNhc2UgNTg6Y2FzZSA2MzpyZXR1cm4rK1gse3R5cGU6Uy5QdW5jdHVhdG9yLHZhbHVlOlN0cmluZy5mcm9tQ2hhckNvZGUoZCkscmFuZ2U6W2MsWF19O2RlZmF1bHQ6aWYoYT1XLmNoYXJDb2RlQXQoWCsxKSw2MT09PWEpc3dpdGNoKGQpe2Nhc2UgMzc6Y2FzZSAzODpjYXNlIDQyOmNhc2UgNDM6Y2FzZSA0NTpjYXNlIDQ3OmNhc2UgNjA6Y2FzZSA2MjpjYXNlIDEyNDpyZXR1cm4gWCs9Mix7dHlwZTpTLlB1bmN0dWF0b3IsdmFsdWU6U3RyaW5nLmZyb21DaGFyQ29kZShkKStTdHJpbmcuZnJvbUNoYXJDb2RlKGEpLHJhbmdlOltjLFhdfTtjYXNlIDMzOmNhc2UgNjE6cmV0dXJuIFgrPTIsNjE9PT1XLmNoYXJDb2RlQXQoWCkmJisrWCx7dHlwZTpTLlB1bmN0dWF0b3IsdmFsdWU6Vy5zbGljZShjLFgpLHJhbmdlOltjLFhdfX19cmV0dXJuIGI9V1tYKzFdLGU9PT1iJiYiJnwiLmluZGV4T2YoZSk+PTA/KFgrPTIse3R5cGU6Uy5QdW5jdHVhdG9yLHZhbHVlOmUrYixyYW5nZTpbYyxYXX0pOiI8Pj0hKy0qJSZ8Xi8iLmluZGV4T2YoZSk+PTA/KCsrWCx7dHlwZTpTLlB1bmN0dWF0b3IsdmFsdWU6ZSxyYW5nZTpbYyxYXX0pOnZvaWQgcyh7fSxWLlVuZXhwZWN0ZWRUb2tlbiwiSUxMRUdBTCIpfWZ1bmN0aW9uIG0oKXt2YXIgYSxkLGU7aWYoZT1XW1hdLGIoYyhlLmNoYXJDb2RlQXQoMCkpfHwiLiI9PT1lLCJOdW1lcmljIGxpdGVyYWwgbXVzdCBzdGFydCB3aXRoIGEgZGVjaW1hbCBkaWdpdCBvciBhIGRlY2ltYWwgcG9pbnQiKSxkPVgsYT0iIiwiLiIhPT1lKXtmb3IoYT1XW1grK10sZT1XW1hdLCIwIj09PWEmJmUmJmMoZS5jaGFyQ29kZUF0KDApKSYmcyh7fSxWLlVuZXhwZWN0ZWRUb2tlbiwiSUxMRUdBTCIpO2MoVy5jaGFyQ29kZUF0KFgpKTspYSs9V1tYKytdO2U9V1tYXX1pZigiLiI9PT1lKXtmb3IoYSs9V1tYKytdO2MoVy5jaGFyQ29kZUF0KFgpKTspYSs9V1tYKytdO2U9V1tYXX1pZigiZSI9PT1lfHwiRSI9PT1lKWlmKGErPVdbWCsrXSxlPVdbWF0sKCIrIj09PWV8fCItIj09PWUpJiYoYSs9V1tYKytdKSxjKFcuY2hhckNvZGVBdChYKSkpZm9yKDtjKFcuY2hhckNvZGVBdChYKSk7KWErPVdbWCsrXTtlbHNlIHMoe30sVi5VbmV4cGVjdGVkVG9rZW4sIklMTEVHQUwiKTtyZXR1cm4gZihXLmNoYXJDb2RlQXQoWCkpJiZzKHt9LFYuVW5leHBlY3RlZFRva2VuLCJJTExFR0FMIikse3R5cGU6Uy5OdW1lcmljTGl0ZXJhbCx2YWx1ZTpwYXJzZUZsb2F0KGEpLHJhbmdlOltkLFhdfX1mdW5jdGlvbiBuKCl7dmFyIGEsYyxkLGY9IiIsZz0hMTtmb3IoYT1XW1hdLGIoIiciPT09YXx8JyInPT09YSwiU3RyaW5nIGxpdGVyYWwgbXVzdCBzdGFydHMgd2l0aCBhIHF1b3RlIiksYz1YLCsrWDtZPlg7KXtpZihkPVdbWCsrXSxkPT09YSl7YT0iIjticmVha31pZigiXFwiPT09ZClpZihkPVdbWCsrXSxkJiZlKGQuY2hhckNvZGVBdCgwKSkpIlxyIj09PWQmJiJcbiI9PT1XW1hdJiYrK1g7ZWxzZSBzd2l0Y2goZCl7Y2FzZSJuIjpmKz0iXG4iO2JyZWFrO2Nhc2UiciI6Zis9IlxyIjticmVhaztjYXNlInQiOmYrPSIJIjticmVhaztjYXNlImIiOmYrPSJcYiI7YnJlYWs7Y2FzZSJmIjpmKz0iXGYiO2JyZWFrO2Nhc2UidiI6Zis9IgsiO2JyZWFrO2RlZmF1bHQ6Zis9ZH1lbHNle2lmKGUoZC5jaGFyQ29kZUF0KDApKSlicmVhaztmKz1kfX1yZXR1cm4iIiE9PWEmJnMoe30sVi5VbmV4cGVjdGVkVG9rZW4sIklMTEVHQUwiKSx7dHlwZTpTLlN0cmluZ0xpdGVyYWwsdmFsdWU6ZixvY3RhbDpnLHJhbmdlOltjLFhdfX1mdW5jdGlvbiBvKGEpe3JldHVybiBhLnR5cGU9PT1TLklkZW50aWZpZXJ8fGEudHlwZT09PVMuS2V5d29yZHx8YS50eXBlPT09Uy5Cb29sZWFuTGl0ZXJhbHx8YS50eXBlPT09Uy5OdWxsTGl0ZXJhbH1mdW5jdGlvbiBwKCl7dmFyIGE7cmV0dXJuIGkoKSxYPj1ZP3t0eXBlOlMuRU9GLHJhbmdlOltYLFhdfTooYT1XLmNoYXJDb2RlQXQoWCksNDA9PT1hfHw0MT09PWF8fDU4PT09YT9sKCk6Mzk9PT1hfHwzND09PWE/bigpOmYoYSk/aygpOjQ2PT09YT9jKFcuY2hhckNvZGVBdChYKzEpKT9tKCk6bCgpOmMoYSk/bSgpOmwoKSl9ZnVuY3Rpb24gcSgpe3ZhciBhO3JldHVybiBhPSQsWD1hLnJhbmdlWzFdLCQ9cCgpLFg9YS5yYW5nZVsxXSxhfWZ1bmN0aW9uIHIoKXt2YXIgYTthPVgsJD1wKCksWD1hfWZ1bmN0aW9uIHMoYSxjKXt2YXIgZCxlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSxmPWMucmVwbGFjZSgvJShcZCkvZyxmdW5jdGlvbihhLGMpe3JldHVybiBiKGM8ZS5sZW5ndGgsIk1lc3NhZ2UgcmVmZXJlbmNlIG11c3QgYmUgaW4gcmFuZ2UiKSxlW2NdfSk7dGhyb3cgZD1uZXcgRXJyb3IoZiksZC5pbmRleD1YLGQuZGVzY3JpcHRpb249ZixkfWZ1bmN0aW9uIHQoYSl7cyhhLFYuVW5leHBlY3RlZFRva2VuLGEudmFsdWUpfWZ1bmN0aW9uIHUoYSl7dmFyIGI9cSgpOyhiLnR5cGUhPT1TLlB1bmN0dWF0b3J8fGIudmFsdWUhPT1hKSYmdChiKX1mdW5jdGlvbiB2KGEpe3JldHVybiAkLnR5cGU9PT1TLlB1bmN0dWF0b3ImJiQudmFsdWU9PT1hfWZ1bmN0aW9uIHcoYSl7cmV0dXJuICQudHlwZT09PVMuS2V5d29yZCYmJC52YWx1ZT09PWF9ZnVuY3Rpb24geCgpe3ZhciBhPVtdO2Zvcih1KCJbIik7IXYoIl0iKTspdigiLCIpPyhxKCksYS5wdXNoKG51bGwpKTooYS5wdXNoKGJiKCkpLHYoIl0iKXx8dSgiLCIpKTtyZXR1cm4gdSgiXSIpLFouY3JlYXRlQXJyYXlFeHByZXNzaW9uKGEpfWZ1bmN0aW9uIHkoKXt2YXIgYTtyZXR1cm4gaSgpLGE9cSgpLGEudHlwZT09PVMuU3RyaW5nTGl0ZXJhbHx8YS50eXBlPT09Uy5OdW1lcmljTGl0ZXJhbD9aLmNyZWF0ZUxpdGVyYWwoYSk6Wi5jcmVhdGVJZGVudGlmaWVyKGEudmFsdWUpfWZ1bmN0aW9uIHooKXt2YXIgYSxiO3JldHVybiBhPSQsaSgpLChhLnR5cGU9PT1TLkVPRnx8YS50eXBlPT09Uy5QdW5jdHVhdG9yKSYmdChhKSxiPXkoKSx1KCI6IiksWi5jcmVhdGVQcm9wZXJ0eSgiaW5pdCIsYixiYigpKX1mdW5jdGlvbiBBKCl7dmFyIGE9W107Zm9yKHUoInsiKTshdigifSIpOylhLnB1c2goeigpKSx2KCJ9Iil8fHUoIiwiKTtyZXR1cm4gdSgifSIpLFouY3JlYXRlT2JqZWN0RXhwcmVzc2lvbihhKX1mdW5jdGlvbiBCKCl7dmFyIGE7cmV0dXJuIHUoIigiKSxhPWJiKCksdSgiKSIpLGF9ZnVuY3Rpb24gQygpe3ZhciBhLGIsYztyZXR1cm4gdigiKCIpP0IoKTooYT0kLnR5cGUsYT09PVMuSWRlbnRpZmllcj9jPVouY3JlYXRlSWRlbnRpZmllcihxKCkudmFsdWUpOmE9PT1TLlN0cmluZ0xpdGVyYWx8fGE9PT1TLk51bWVyaWNMaXRlcmFsP2M9Wi5jcmVhdGVMaXRlcmFsKHEoKSk6YT09PVMuS2V5d29yZD93KCJ0aGlzIikmJihxKCksYz1aLmNyZWF0ZVRoaXNFeHByZXNzaW9uKCkpOmE9PT1TLkJvb2xlYW5MaXRlcmFsPyhiPXEoKSxiLnZhbHVlPSJ0cnVlIj09PWIudmFsdWUsYz1aLmNyZWF0ZUxpdGVyYWwoYikpOmE9PT1TLk51bGxMaXRlcmFsPyhiPXEoKSxiLnZhbHVlPW51bGwsYz1aLmNyZWF0ZUxpdGVyYWwoYikpOnYoIlsiKT9jPXgoKTp2KCJ7IikmJihjPUEoKSksYz9jOnZvaWQgdChxKCkpKX1mdW5jdGlvbiBEKCl7dmFyIGE9W107aWYodSgiKCIpLCF2KCIpIikpZm9yKDtZPlgmJihhLnB1c2goYmIoKSksIXYoIikiKSk7KXUoIiwiKTtyZXR1cm4gdSgiKSIpLGF9ZnVuY3Rpb24gRSgpe3ZhciBhO3JldHVybiBhPXEoKSxvKGEpfHx0KGEpLFouY3JlYXRlSWRlbnRpZmllcihhLnZhbHVlKX1mdW5jdGlvbiBGKCl7cmV0dXJuIHUoIi4iKSxFKCl9ZnVuY3Rpb24gRygpe3ZhciBhO3JldHVybiB1KCJbIiksYT1iYigpLHUoIl0iKSxhfWZ1bmN0aW9uIEgoKXt2YXIgYSxiLGM7Zm9yKGE9QygpOzspaWYodigiWyIpKWM9RygpLGE9Wi5jcmVhdGVNZW1iZXJFeHByZXNzaW9uKCJbIixhLGMpO2Vsc2UgaWYodigiLiIpKWM9RigpLGE9Wi5jcmVhdGVNZW1iZXJFeHByZXNzaW9uKCIuIixhLGMpO2Vsc2V7aWYoIXYoIigiKSlicmVhaztiPUQoKSxhPVouY3JlYXRlQ2FsbEV4cHJlc3Npb24oYSxiKX1yZXR1cm4gYX1mdW5jdGlvbiBJKCl7dmFyIGEsYjtyZXR1cm4gJC50eXBlIT09Uy5QdW5jdHVhdG9yJiYkLnR5cGUhPT1TLktleXdvcmQ/Yj1hYigpOnYoIisiKXx8digiLSIpfHx2KCIhIik/KGE9cSgpLGI9SSgpLGI9Wi5jcmVhdGVVbmFyeUV4cHJlc3Npb24oYS52YWx1ZSxiKSk6dygiZGVsZXRlIil8fHcoInZvaWQiKXx8dygidHlwZW9mIik/cyh7fSxWLlVuZXhwZWN0ZWRUb2tlbik6Yj1hYigpLGJ9ZnVuY3Rpb24gSihhKXt2YXIgYj0wO2lmKGEudHlwZSE9PVMuUHVuY3R1YXRvciYmYS50eXBlIT09Uy5LZXl3b3JkKXJldHVybiAwO3N3aXRjaChhLnZhbHVlKXtjYXNlInx8IjpiPTE7YnJlYWs7Y2FzZSImJiI6Yj0yO2JyZWFrO2Nhc2UiPT0iOmNhc2UiIT0iOmNhc2UiPT09IjpjYXNlIiE9PSI6Yj02O2JyZWFrO2Nhc2UiPCI6Y2FzZSI+IjpjYXNlIjw9IjpjYXNlIj49IjpjYXNlImluc3RhbmNlb2YiOmI9NzticmVhaztjYXNlImluIjpiPTc7YnJlYWs7Y2FzZSIrIjpjYXNlIi0iOmI9OTticmVhaztjYXNlIioiOmNhc2UiLyI6Y2FzZSIlIjpiPTExfXJldHVybiBifWZ1bmN0aW9uIEsoKXt2YXIgYSxiLGMsZCxlLGYsZyxoO2lmKGc9SSgpLGI9JCxjPUooYiksMD09PWMpcmV0dXJuIGc7Zm9yKGIucHJlYz1jLHEoKSxlPUkoKSxkPVtnLGIsZV07KGM9SigkKSk+MDspe2Zvcig7ZC5sZW5ndGg+MiYmYzw9ZFtkLmxlbmd0aC0yXS5wcmVjOyllPWQucG9wKCksZj1kLnBvcCgpLnZhbHVlLGc9ZC5wb3AoKSxhPVouY3JlYXRlQmluYXJ5RXhwcmVzc2lvbihmLGcsZSksZC5wdXNoKGEpO2I9cSgpLGIucHJlYz1jLGQucHVzaChiKSxhPUkoKSxkLnB1c2goYSl9Zm9yKGg9ZC5sZW5ndGgtMSxhPWRbaF07aD4xOylhPVouY3JlYXRlQmluYXJ5RXhwcmVzc2lvbihkW2gtMV0udmFsdWUsZFtoLTJdLGEpLGgtPTI7cmV0dXJuIGF9ZnVuY3Rpb24gTCgpe3ZhciBhLGIsYztyZXR1cm4gYT1LKCksdigiPyIpJiYocSgpLGI9TCgpLHUoIjoiKSxjPUwoKSxhPVouY3JlYXRlQ29uZGl0aW9uYWxFeHByZXNzaW9uKGEsYixjKSksYX1mdW5jdGlvbiBNKCl7dmFyIGEsYjtyZXR1cm4gYT1xKCksYS50eXBlIT09Uy5JZGVudGlmaWVyJiZ0KGEpLGI9digiKCIpP0QoKTpbXSxaLmNyZWF0ZUZpbHRlcihhLnZhbHVlLGIpfWZ1bmN0aW9uIE4oKXtmb3IoO3YoInwiKTspcSgpLE0oKX1mdW5jdGlvbiBPKCl7aSgpLHIoKTt2YXIgYT1iYigpO2EmJigiLCI9PT0kLnZhbHVlfHwiaW4iPT0kLnZhbHVlJiZhLnR5cGU9PT1VLklkZW50aWZpZXI/UShhKTooTigpLCJhcyI9PT0kLnZhbHVlP1AoYSk6Wi5jcmVhdGVUb3BMZXZlbChhKSkpLCQudHlwZSE9PVMuRU9GJiZ0KCQpfWZ1bmN0aW9uIFAoYSl7cSgpO3ZhciBiPXEoKS52YWx1ZTtaLmNyZWF0ZUFzRXhwcmVzc2lvbihhLGIpfWZ1bmN0aW9uIFEoYSl7dmFyIGI7IiwiPT09JC52YWx1ZSYmKHEoKSwkLnR5cGUhPT1TLklkZW50aWZpZXImJnQoJCksYj1xKCkudmFsdWUpLHEoKTt2YXIgYz1iYigpO04oKSxaLmNyZWF0ZUluRXhwcmVzc2lvbihhLm5hbWUsYixjKX1mdW5jdGlvbiBSKGEsYil7cmV0dXJuIFo9YixXPWEsWD0wLFk9Vy5sZW5ndGgsJD1udWxsLF89e2xhYmVsU2V0Ont9fSxPKCl9dmFyIFMsVCxVLFYsVyxYLFksWiwkLF87Uz17Qm9vbGVhbkxpdGVyYWw6MSxFT0Y6MixJZGVudGlmaWVyOjMsS2V5d29yZDo0LE51bGxMaXRlcmFsOjUsTnVtZXJpY0xpdGVyYWw6NixQdW5jdHVhdG9yOjcsU3RyaW5nTGl0ZXJhbDo4fSxUPXt9LFRbUy5Cb29sZWFuTGl0ZXJhbF09IkJvb2xlYW4iLFRbUy5FT0ZdPSI8ZW5kPiIsVFtTLklkZW50aWZpZXJdPSJJZGVudGlmaWVyIixUW1MuS2V5d29yZF09IktleXdvcmQiLFRbUy5OdWxsTGl0ZXJhbF09Ik51bGwiLFRbUy5OdW1lcmljTGl0ZXJhbF09Ik51bWVyaWMiLFRbUy5QdW5jdHVhdG9yXT0iUHVuY3R1YXRvciIsVFtTLlN0cmluZ0xpdGVyYWxdPSJTdHJpbmciLFU9e0FycmF5RXhwcmVzc2lvbjoiQXJyYXlFeHByZXNzaW9uIixCaW5hcnlFeHByZXNzaW9uOiJCaW5hcnlFeHByZXNzaW9uIixDYWxsRXhwcmVzc2lvbjoiQ2FsbEV4cHJlc3Npb24iLENvbmRpdGlvbmFsRXhwcmVzc2lvbjoiQ29uZGl0aW9uYWxFeHByZXNzaW9uIixFbXB0eVN0YXRlbWVudDoiRW1wdHlTdGF0ZW1lbnQiLEV4cHJlc3Npb25TdGF0ZW1lbnQ6IkV4cHJlc3Npb25TdGF0ZW1lbnQiLElkZW50aWZpZXI6IklkZW50aWZpZXIiLExpdGVyYWw6IkxpdGVyYWwiLExhYmVsZWRTdGF0ZW1lbnQ6IkxhYmVsZWRTdGF0ZW1lbnQiLExvZ2ljYWxFeHByZXNzaW9uOiJMb2dpY2FsRXhwcmVzc2lvbiIsTWVtYmVyRXhwcmVzc2lvbjoiTWVtYmVyRXhwcmVzc2lvbiIsT2JqZWN0RXhwcmVzc2lvbjoiT2JqZWN0RXhwcmVzc2lvbiIsUHJvZ3JhbToiUHJvZ3JhbSIsUHJvcGVydHk6IlByb3BlcnR5IixUaGlzRXhwcmVzc2lvbjoiVGhpc0V4cHJlc3Npb24iLFVuYXJ5RXhwcmVzc2lvbjoiVW5hcnlFeHByZXNzaW9uIn0sVj17VW5leHBlY3RlZFRva2VuOiJVbmV4cGVjdGVkIHRva2VuICUwIixVbmtub3duTGFiZWw6IlVuZGVmaW5lZCBsYWJlbCAnJTAnIixSZWRlY2xhcmF0aW9uOiIlMCAnJTEnIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQifTsKIHZhciBhYj1ILGJiPUw7YS5lc3ByaW1hPXtwYXJzZTpSfX0odGhpcyksZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYSxiLGQsZSl7dmFyIGY7dHJ5e2lmKGY9YyhhKSxmLnNjb3BlSWRlbnQmJihkLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREV8fCJURU1QTEFURSIhPT1kLnRhZ05hbWV8fCJiaW5kIiE9PWImJiJyZXBlYXQiIT09YikpdGhyb3cgRXJyb3IoImFzIGFuZCBpbiBjYW4gb25seSBiZSB1c2VkIHdpdGhpbiA8dGVtcGxhdGUgYmluZC9yZXBlYXQ+Iil9Y2F0Y2goZyl7cmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiSW52YWxpZCBleHByZXNzaW9uIHN5bnRheDogIithLGcpfXJldHVybiBmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Zi5nZXRCaW5kaW5nKGEsZSxjKTtyZXR1cm4gZi5zY29wZUlkZW50JiZkJiYoYi5wb2x5bWVyRXhwcmVzc2lvblNjb3BlSWRlbnRfPWYuc2NvcGVJZGVudCxmLmluZGV4SWRlbnQmJihiLnBvbHltZXJFeHByZXNzaW9uSW5kZXhJZGVudF89Zi5pbmRleElkZW50KSksZH19ZnVuY3Rpb24gYyhhKXt2YXIgYj1xW2FdO2lmKCFiKXt2YXIgYz1uZXcgajtlc3ByaW1hLnBhcnNlKGEsYyksYj1uZXcgbChjKSxxW2FdPWJ9cmV0dXJuIGJ9ZnVuY3Rpb24gZChhKXt0aGlzLnZhbHVlPWEsdGhpcy52YWx1ZUZuXz12b2lkIDB9ZnVuY3Rpb24gZShhKXt0aGlzLm5hbWU9YSx0aGlzLnBhdGg9UGF0aC5nZXQoYSl9ZnVuY3Rpb24gZihhLGIsYyl7dGhpcy5jb21wdXRlZD0iWyI9PWMsdGhpcy5keW5hbWljRGVwcz0iZnVuY3Rpb24iPT10eXBlb2YgYXx8YS5keW5hbWljRGVwc3x8dGhpcy5jb21wdXRlZCYmIShiIGluc3RhbmNlb2YgZCksdGhpcy5zaW1wbGVQYXRoPSF0aGlzLmR5bmFtaWNEZXBzJiYoYiBpbnN0YW5jZW9mIGV8fGIgaW5zdGFuY2VvZiBkKSYmKGEgaW5zdGFuY2VvZiBmfHxhIGluc3RhbmNlb2YgZSksdGhpcy5vYmplY3Q9dGhpcy5zaW1wbGVQYXRoP2E6aShhKSx0aGlzLnByb3BlcnR5PSF0aGlzLmNvbXB1dGVkfHx0aGlzLnNpbXBsZVBhdGg/YjppKGIpfWZ1bmN0aW9uIGcoYSxiKXt0aGlzLm5hbWU9YSx0aGlzLmFyZ3M9W107Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspdGhpcy5hcmdzW2NdPWkoYltjXSl9ZnVuY3Rpb24gaCgpe3Rocm93IEVycm9yKCJOb3QgSW1wbGVtZW50ZWQiKX1mdW5jdGlvbiBpKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhP2E6YS52YWx1ZUZuKCl9ZnVuY3Rpb24gaigpe3RoaXMuZXhwcmVzc2lvbj1udWxsLHRoaXMuZmlsdGVycz1bXSx0aGlzLmRlcHM9e30sdGhpcy5jdXJyZW50UGF0aD12b2lkIDAsdGhpcy5zY29wZUlkZW50PXZvaWQgMCx0aGlzLmluZGV4SWRlbnQ9dm9pZCAwLHRoaXMuZHluYW1pY0RlcHM9ITF9ZnVuY3Rpb24gayhhKXt0aGlzLnZhbHVlXz1hfWZ1bmN0aW9uIGwoYSl7aWYodGhpcy5zY29wZUlkZW50PWEuc2NvcGVJZGVudCx0aGlzLmluZGV4SWRlbnQ9YS5pbmRleElkZW50LCFhLmV4cHJlc3Npb24pdGhyb3cgRXJyb3IoIk5vIGV4cHJlc3Npb24gZm91bmQuIik7dGhpcy5leHByZXNzaW9uPWEuZXhwcmVzc2lvbixpKHRoaXMuZXhwcmVzc2lvbiksdGhpcy5maWx0ZXJzPWEuZmlsdGVycyx0aGlzLmR5bmFtaWNEZXBzPWEuZHluYW1pY0RlcHN9ZnVuY3Rpb24gbShhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoL1tBLVpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIi0iK2EudG9Mb3dlckNhc2UoKX0pfWZ1bmN0aW9uIG4oYSxiKXtmb3IoO2FbdF0mJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxiKTspYT1hW3RdO3JldHVybiBhfWZ1bmN0aW9uIG8oYSl7c3dpdGNoKGEpe2Nhc2UiIjpyZXR1cm4hMTtjYXNlImZhbHNlIjpjYXNlIm51bGwiOmNhc2UidHJ1ZSI6cmV0dXJuITB9cmV0dXJuIGlzTmFOKE51bWJlcihhKSk/ITE6ITB9ZnVuY3Rpb24gcCgpe312YXIgcT1PYmplY3QuY3JlYXRlKG51bGwpO2QucHJvdG90eXBlPXt2YWx1ZUZuOmZ1bmN0aW9uKCl7aWYoIXRoaXMudmFsdWVGbl8pe3ZhciBhPXRoaXMudmFsdWU7dGhpcy52YWx1ZUZuXz1mdW5jdGlvbigpe3JldHVybiBhfX1yZXR1cm4gdGhpcy52YWx1ZUZuX319LGUucHJvdG90eXBlPXt2YWx1ZUZuOmZ1bmN0aW9uKCl7aWYoIXRoaXMudmFsdWVGbl8pe3ZhciBhPSh0aGlzLm5hbWUsdGhpcy5wYXRoKTt0aGlzLnZhbHVlRm5fPWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGMmJmMuYWRkUGF0aChiLGEpLGEuZ2V0VmFsdWVGcm9tKGIpfX1yZXR1cm4gdGhpcy52YWx1ZUZuX30sc2V0VmFsdWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gMT09dGhpcy5wYXRoLmxlbmd0aCYmKGE9bihhLHRoaXMucGF0aFswXSkpLHRoaXMucGF0aC5zZXRWYWx1ZUZyb20oYSxiKX19LGYucHJvdG90eXBlPXtnZXQgZnVsbFBhdGgoKXtpZighdGhpcy5mdWxsUGF0aF8pe3ZhciBhPXRoaXMub2JqZWN0IGluc3RhbmNlb2YgZj90aGlzLm9iamVjdC5mdWxsUGF0aC5zbGljZSgpOlt0aGlzLm9iamVjdC5uYW1lXTthLnB1c2godGhpcy5wcm9wZXJ0eSBpbnN0YW5jZW9mIGU/dGhpcy5wcm9wZXJ0eS5uYW1lOnRoaXMucHJvcGVydHkudmFsdWUpLHRoaXMuZnVsbFBhdGhfPVBhdGguZ2V0KGEpfXJldHVybiB0aGlzLmZ1bGxQYXRoX30sdmFsdWVGbjpmdW5jdGlvbigpe2lmKCF0aGlzLnZhbHVlRm5fKXt2YXIgYT10aGlzLm9iamVjdDtpZih0aGlzLnNpbXBsZVBhdGgpe3ZhciBiPXRoaXMuZnVsbFBhdGg7dGhpcy52YWx1ZUZuXz1mdW5jdGlvbihhLGMpe3JldHVybiBjJiZjLmFkZFBhdGgoYSxiKSxiLmdldFZhbHVlRnJvbShhKX19ZWxzZSBpZih0aGlzLmNvbXB1dGVkKXt2YXIgYz10aGlzLnByb3BlcnR5O3RoaXMudmFsdWVGbl89ZnVuY3Rpb24oYixkLGUpe3ZhciBmPWEoYixkLGUpLGc9YyhiLGQsZSk7cmV0dXJuIGQmJmQuYWRkUGF0aChmLFtnXSksZj9mW2ddOnZvaWQgMH19ZWxzZXt2YXIgYj1QYXRoLmdldCh0aGlzLnByb3BlcnR5Lm5hbWUpO3RoaXMudmFsdWVGbl89ZnVuY3Rpb24oYyxkLGUpe3ZhciBmPWEoYyxkLGUpO3JldHVybiBkJiZkLmFkZFBhdGgoZixiKSxiLmdldFZhbHVlRnJvbShmKX19fXJldHVybiB0aGlzLnZhbHVlRm5ffSxzZXRWYWx1ZTpmdW5jdGlvbihhLGIpe2lmKHRoaXMuc2ltcGxlUGF0aClyZXR1cm4gdGhpcy5mdWxsUGF0aC5zZXRWYWx1ZUZyb20oYSxiKSxiO3ZhciBjPXRoaXMub2JqZWN0KGEpLGQ9dGhpcy5wcm9wZXJ0eSBpbnN0YW5jZW9mIGU/dGhpcy5wcm9wZXJ0eS5uYW1lOnRoaXMucHJvcGVydHkoYSk7cmV0dXJuIGNbZF09Yn19LGcucHJvdG90eXBlPXt0cmFuc2Zvcm06ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1hLGc9Zlt0aGlzLm5hbWVdO2lmKCFnJiYoZz1jW3RoaXMubmFtZV0sIWcpKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkNhbm5vdCBmaW5kIGZ1bmN0aW9uIG9yIGZpbHRlcjogIit0aGlzLm5hbWUpO2lmKGQ/Zz1nLnRvTW9kZWw6ImZ1bmN0aW9uIj09dHlwZW9mIGcudG9ET00mJihnPWcudG9ET00pLCJmdW5jdGlvbiIhPXR5cGVvZiBnKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkNhbm5vdCBmaW5kIGZ1bmN0aW9uIG9yIGZpbHRlcjogIit0aGlzLm5hbWUpO2Zvcih2YXIgaD1lfHxbXSxqPTA7ajx0aGlzLmFyZ3MubGVuZ3RoO2orKyloLnB1c2goaSh0aGlzLmFyZ3Nbal0pKGEsYixjKSk7cmV0dXJuIGcuYXBwbHkoZixoKX19O3ZhciByPXsiKyI6ZnVuY3Rpb24oYSl7cmV0dXJuK2F9LCItIjpmdW5jdGlvbihhKXtyZXR1cm4tYX0sIiEiOmZ1bmN0aW9uKGEpe3JldHVybiFhfX0scz17IisiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0sIi0iOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEtYn0sIioiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEqYn0sIi8iOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEvYn0sIiUiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGElYn0sIjwiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI+YX0sIj4iOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE+Yn0sIjw9IjpmdW5jdGlvbihhLGIpe3JldHVybiBiPj1hfSwiPj0iOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE+PWJ9LCI9PSI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09Yn0sIiE9IjpmdW5jdGlvbihhLGIpe3JldHVybiBhIT1ifSwiPT09IjpmdW5jdGlvbihhLGIpe3JldHVybiBhPT09Yn0sIiE9PSI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9PWJ9LCImJiI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSYmYn0sInx8IjpmdW5jdGlvbihhLGIpe3JldHVybiBhfHxifX07ai5wcm90b3R5cGU9e2NyZWF0ZVVuYXJ5RXhwcmVzc2lvbjpmdW5jdGlvbihhLGIpe2lmKCFyW2FdKXRocm93IEVycm9yKCJEaXNhbGxvd2VkIG9wZXJhdG9yOiAiK2EpO3JldHVybiBiPWkoYiksZnVuY3Rpb24oYyxkLGUpe3JldHVybiByW2FdKGIoYyxkLGUpKX19LGNyZWF0ZUJpbmFyeUV4cHJlc3Npb246ZnVuY3Rpb24oYSxiLGMpe2lmKCFzW2FdKXRocm93IEVycm9yKCJEaXNhbGxvd2VkIG9wZXJhdG9yOiAiK2EpO3N3aXRjaChiPWkoYiksYz1pKGMpLGEpe2Nhc2UifHwiOnJldHVybiB0aGlzLmR5bmFtaWNEZXBzPSEwLGZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gYihhLGQsZSl8fGMoYSxkLGUpfTtjYXNlIiYmIjpyZXR1cm4gdGhpcy5keW5hbWljRGVwcz0hMCxmdW5jdGlvbihhLGQsZSl7cmV0dXJuIGIoYSxkLGUpJiZjKGEsZCxlKX19cmV0dXJuIGZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gc1thXShiKGQsZSxmKSxjKGQsZSxmKSl9fSxjcmVhdGVDb25kaXRpb25hbEV4cHJlc3Npb246ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhPWkoYSksYj1pKGIpLGM9aShjKSx0aGlzLmR5bmFtaWNEZXBzPSEwLGZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gYShkLGUsZik/YihkLGUsZik6YyhkLGUsZil9fSxjcmVhdGVJZGVudGlmaWVyOmZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBlKGEpO3JldHVybiBiLnR5cGU9IklkZW50aWZpZXIiLGJ9LGNyZWF0ZU1lbWJlckV4cHJlc3Npb246ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBmKGIsYyxhKTtyZXR1cm4gZC5keW5hbWljRGVwcyYmKHRoaXMuZHluYW1pY0RlcHM9ITApLGR9LGNyZWF0ZUNhbGxFeHByZXNzaW9uOmZ1bmN0aW9uKGEsYil7aWYoIShhIGluc3RhbmNlb2YgZSkpdGhyb3cgRXJyb3IoIk9ubHkgaWRlbnRpZmllciBmdW5jdGlvbiBpbnZvY2F0aW9ucyBhcmUgYWxsb3dlZCIpO3ZhciBjPW5ldyBnKGEubmFtZSxiKTtyZXR1cm4gZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLnRyYW5zZm9ybShhLGIsZCwhMSl9fSxjcmVhdGVMaXRlcmFsOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgZChhLnZhbHVlKX0sY3JlYXRlQXJyYXlFeHByZXNzaW9uOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl09aShhW2JdKTtyZXR1cm4gZnVuY3Rpb24oYixjLGQpe2Zvcih2YXIgZT1bXSxmPTA7ZjxhLmxlbmd0aDtmKyspZS5wdXNoKGFbZl0oYixjLGQpKTtyZXR1cm4gZX19LGNyZWF0ZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm57a2V5OmIgaW5zdGFuY2VvZiBlP2IubmFtZTpiLnZhbHVlLHZhbHVlOmN9fSxjcmVhdGVPYmplY3RFeHByZXNzaW9uOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0udmFsdWU9aShhW2JdLnZhbHVlKTtyZXR1cm4gZnVuY3Rpb24oYixjLGQpe2Zvcih2YXIgZT17fSxmPTA7ZjxhLmxlbmd0aDtmKyspZVthW2ZdLmtleV09YVtmXS52YWx1ZShiLGMsZCk7cmV0dXJuIGV9fSxjcmVhdGVGaWx0ZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLmZpbHRlcnMucHVzaChuZXcgZyhhLGIpKX0sY3JlYXRlQXNFeHByZXNzaW9uOmZ1bmN0aW9uKGEsYil7dGhpcy5leHByZXNzaW9uPWEsdGhpcy5zY29wZUlkZW50PWJ9LGNyZWF0ZUluRXhwcmVzc2lvbjpmdW5jdGlvbihhLGIsYyl7dGhpcy5leHByZXNzaW9uPWMsdGhpcy5zY29wZUlkZW50PWEsdGhpcy5pbmRleElkZW50PWJ9LGNyZWF0ZVRvcExldmVsOmZ1bmN0aW9uKGEpe3RoaXMuZXhwcmVzc2lvbj1hfSxjcmVhdGVUaGlzRXhwcmVzc2lvbjpofSxrLnByb3RvdHlwZT17b3BlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlX30sZGlzY2FyZENoYW5nZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZV99LGRlbGl2ZXI6ZnVuY3Rpb24oKXt9LGNsb3NlOmZ1bmN0aW9uKCl7fX0sbC5wcm90b3R5cGU9e2dldEJpbmRpbmc6ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoKXtpZihoKXJldHVybiBoPSExLGc7aS5keW5hbWljRGVwcyYmZi5zdGFydFJlc2V0KCk7dmFyIGM9aS5nZXRWYWx1ZShhLGkuZHluYW1pY0RlcHM/Zjp2b2lkIDAsYik7cmV0dXJuIGkuZHluYW1pY0RlcHMmJmYuZmluaXNoUmVzZXQoKSxjfWZ1bmN0aW9uIGUoYyl7cmV0dXJuIGkuc2V0VmFsdWUoYSxjLGIpLGN9aWYoYylyZXR1cm4gdGhpcy5nZXRWYWx1ZShhLHZvaWQgMCxiKTt2YXIgZj1uZXcgQ29tcG91bmRPYnNlcnZlcixnPXRoaXMuZ2V0VmFsdWUoYSxmLGIpLGg9ITAsaT10aGlzO3JldHVybiBuZXcgT2JzZXJ2ZXJUcmFuc2Zvcm0oZixkLGUsITApfSxnZXRWYWx1ZTpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWkodGhpcy5leHByZXNzaW9uKShhLGIsYyksZT0wO2U8dGhpcy5maWx0ZXJzLmxlbmd0aDtlKyspZD10aGlzLmZpbHRlcnNbZV0udHJhbnNmb3JtKGEsYixjLCExLFtkXSk7cmV0dXJuIGR9LHNldFZhbHVlOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9dGhpcy5maWx0ZXJzP3RoaXMuZmlsdGVycy5sZW5ndGg6MDtkLS0+MDspYj10aGlzLmZpbHRlcnNbZF0udHJhbnNmb3JtKGEsdm9pZCAwLGMsITAsW2JdKTtyZXR1cm4gdGhpcy5leHByZXNzaW9uLnNldFZhbHVlP3RoaXMuZXhwcmVzc2lvbi5zZXRWYWx1ZShhLGIpOnZvaWQgMH19O3ZhciB0PSJAIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtwLnByb3RvdHlwZT17c3R5bGVPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI9W107Zm9yKHZhciBjIGluIGEpYi5wdXNoKG0oYykrIjogIithW2NdKTtyZXR1cm4gYi5qb2luKCI7ICIpfSx0b2tlbkxpc3Q6ZnVuY3Rpb24oYSl7dmFyIGI9W107Zm9yKHZhciBjIGluIGEpYVtjXSYmYi5wdXNoKGMpO3JldHVybiBiLmpvaW4oIiAiKX0scHJlcGFyZUluc3RhbmNlUG9zaXRpb25DaGFuZ2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEucG9seW1lckV4cHJlc3Npb25JbmRleElkZW50XztpZihiKXJldHVybiBmdW5jdGlvbihhLGMpe2EubW9kZWxbYl09Y319LHByZXBhcmVCaW5kaW5nOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZT1QYXRoLmdldChhKTt7aWYobyhhKXx8IWUudmFsaWQpcmV0dXJuIGIoYSxjLGQsdGhpcyk7aWYoMT09ZS5sZW5ndGgpcmV0dXJuIGZ1bmN0aW9uKGEsYixjKXtpZihjKXJldHVybiBlLmdldFZhbHVlRnJvbShhKTt2YXIgZD1uKGEsZVswXSk7cmV0dXJuIG5ldyBQYXRoT2JzZXJ2ZXIoZCxlKX19fSxwcmVwYXJlSW5zdGFuY2VNb2RlbDpmdW5jdGlvbihhKXt2YXIgYj1hLnBvbHltZXJFeHByZXNzaW9uU2NvcGVJZGVudF87aWYoYil7dmFyIGM9YS50ZW1wbGF0ZUluc3RhbmNlP2EudGVtcGxhdGVJbnN0YW5jZS5tb2RlbDphLm1vZGVsLGQ9YS5wb2x5bWVyRXhwcmVzc2lvbkluZGV4SWRlbnRfO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gdShjLGEsYixkKX19fX07dmFyIHU9Il9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXt9O3JldHVybiBlW2NdPWIsZVtkXT12b2lkIDAsZVt0XT1hLGUuX19wcm90b19fPWEsZX06ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9T2JqZWN0LmNyZWF0ZShhKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYyx7dmFsdWU6Yixjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxkLHt2YWx1ZTp2b2lkIDAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6YSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSxlfTthLlBvbHltZXJFeHByZXNzaW9ucz1wLHAuZ2V0RXhwcmVzc2lvbj1jfSh0aGlzKSxQb2x5bWVyPXt2ZXJzaW9uOiIwLjUuNSJ9LCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuUG9seW1lciYmKFBvbHltZXI9e30pLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXtyZXR1cm4gYj1ifHxbXSxiLm1hcHx8KGI9W2JdKSxhLmFwcGx5KHRoaXMsYi5tYXAoZCkpfWZ1bmN0aW9uIGMoYSxjLGQpe3ZhciBlO3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuO2Nhc2UgMTplPW51bGw7YnJlYWs7Y2FzZSAyOmU9Yy5hcHBseSh0aGlzKTticmVhaztkZWZhdWx0OmU9YihkLGMpfWZbYV09ZX1mdW5jdGlvbiBkKGEpe3JldHVybiBmW2FdfWZ1bmN0aW9uIGUoYSxjKXtIVE1MSW1wb3J0cy53aGVuSW1wb3J0c1JlYWR5KGZ1bmN0aW9uKCl7YihjLGEpfSl9dmFyIGY9e307YS5tYXJzaGFsPWQsYS5tb2R1bGFyaXplPWMsYS51c2luZz1lfSh3aW5kb3cpLHdpbmRvdy5XZWJDb21wb25lbnRzfHwod2luZG93LldlYkNvbXBvbmVudHN8fChXZWJDb21wb25lbnRzPXtmbHVzaDpmdW5jdGlvbigpe30sZmxhZ3M6e2xvZzp7fX19LFBsYXRmb3JtPVdlYkNvbXBvbmVudHMsQ3VzdG9tRWxlbWVudHM9e3VzZU5hdGl2ZTohMCxyZWFkeTohMCx0YWtlUmVjb3JkczpmdW5jdGlvbigpe30sImluc3RhbmNlb2YiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEgaW5zdGFuY2VvZiBifX0sSFRNTEltcG9ydHM9e3VzZU5hdGl2ZTohMH0sYWRkRXZlbnRMaXN0ZW5lcigiSFRNTEltcG9ydHNMb2FkZWQiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIldlYkNvbXBvbmVudHNSZWFkeSIse2J1YmJsZXM6ITB9KSl9KSxTaGFkb3dET01Qb2x5ZmlsbD1udWxsLHdyYXA9dW53cmFwPWZ1bmN0aW9uKGEpe3JldHVybiBhfSksd2luZG93LkhUTUxJbXBvcnRzPXdpbmRvdy5IVE1MSW1wb3J0c3x8e2ZsYWdzOnt9fSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEsYil7Yj1ifHxvLGQoZnVuY3Rpb24oKXtmKGEsYil9LGIpfWZ1bmN0aW9uIGMoYSl7cmV0dXJuImNvbXBsZXRlIj09PWEucmVhZHlTdGF0ZXx8YS5yZWFkeVN0YXRlPT09cn1mdW5jdGlvbiBkKGEsYil7aWYoYyhiKSlhJiZhKCk7ZWxzZXt2YXIgZT1mdW5jdGlvbigpeygiY29tcGxldGUiPT09Yi5yZWFkeVN0YXRlfHxiLnJlYWR5U3RhdGU9PT1yKSYmKGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLGUpLGQoYSxiKSl9O2IuYWRkRXZlbnRMaXN0ZW5lcihzLGUpfX1mdW5jdGlvbiBlKGEpe2EudGFyZ2V0Ll9fbG9hZGVkPSEwfWZ1bmN0aW9uIGYoYSxiKXtmdW5jdGlvbiBjKCl7aD09aSYmYSYmYSgpfWZ1bmN0aW9uIGQoYSl7ZShhKSxoKyssYygpfXZhciBmPWIucXVlcnlTZWxlY3RvckFsbCgibGlua1tyZWw9aW1wb3J0XSIpLGg9MCxpPWYubGVuZ3RoO2lmKGkpZm9yKHZhciBqLGs9MDtpPmsmJihqPWZba10pO2srKylnKGopP2QuY2FsbChqLHt0YXJnZXQ6an0pOihqLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGQpLGouYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGQpKTtlbHNlIGMoKX1mdW5jdGlvbiBnKGEpe3JldHVybiBsP2EuX19sb2FkZWR8fGFbImltcG9ydCJdJiYibG9hZGluZyIhPT1hWyJpbXBvcnQiXS5yZWFkeVN0YXRlOmEuX19pbXBvcnRQYXJzZWR9ZnVuY3Rpb24gaChhKXtmb3IodmFyIGIsYz0wLGQ9YS5sZW5ndGg7ZD5jJiYoYj1hW2NdKTtjKyspaShiKSYmaihiKX1mdW5jdGlvbiBpKGEpe3JldHVybiJsaW5rIj09PWEubG9jYWxOYW1lJiYiaW1wb3J0Ij09PWEucmVsfWZ1bmN0aW9uIGooYSl7dmFyIGI9YVsiaW1wb3J0Il07Yj9lKHt0YXJnZXQ6YX0pOihhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGUpLGEuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGUpKX12YXIgaz0iaW1wb3J0IixsPUJvb2xlYW4oayBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIikpLG09Qm9vbGVhbih3aW5kb3cuU2hhZG93RE9NUG9seWZpbGwpLG49ZnVuY3Rpb24oYSl7cmV0dXJuIG0/U2hhZG93RE9NUG9seWZpbGwud3JhcElmTmVlZGVkKGEpOmF9LG89bihkb2N1bWVudCkscD17Z2V0OmZ1bmN0aW9uKCl7dmFyIGE9SFRNTEltcG9ydHMuY3VycmVudFNjcmlwdHx8ZG9jdW1lbnQuY3VycmVudFNjcmlwdHx8KCJjb21wbGV0ZSIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP2RvY3VtZW50LnNjcmlwdHNbZG9jdW1lbnQuc2NyaXB0cy5sZW5ndGgtMV06bnVsbCk7cmV0dXJuIG4oYSl9LGNvbmZpZ3VyYWJsZTohMH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGRvY3VtZW50LCJfY3VycmVudFNjcmlwdCIscCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIl9jdXJyZW50U2NyaXB0IixwKTt2YXIgcT0vVHJpZGVudC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxyPXE/ImNvbXBsZXRlIjoiaW50ZXJhY3RpdmUiLHM9InJlYWR5c3RhdGVjaGFuZ2UiO2wmJihuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihhKXtmb3IodmFyIGIsYz0wLGQ9YS5sZW5ndGg7ZD5jJiYoYj1hW2NdKTtjKyspYi5hZGRlZE5vZGVzJiZoKGIuYWRkZWROb2Rlcyl9KS5vYnNlcnZlKGRvY3VtZW50LmhlYWQse2NoaWxkTGlzdDohMH0pLGZ1bmN0aW9uKCl7aWYoImxvYWRpbmciPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSlmb3IodmFyIGEsYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJsaW5rW3JlbD1pbXBvcnRdIiksYz0wLGQ9Yi5sZW5ndGg7ZD5jJiYoYT1iW2NdKTtjKyspaihhKX0oKSksYihmdW5jdGlvbigpe0hUTUxJbXBvcnRzLnJlYWR5PSEwLEhUTUxJbXBvcnRzLnJlYWR5VGltZT0obmV3IERhdGUpLmdldFRpbWUoKSxvLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJIVE1MSW1wb3J0c0xvYWRlZCIse2J1YmJsZXM6ITB9KSl9KSxhLklNUE9SVF9MSU5LX1RZUEU9ayxhLnVzZU5hdGl2ZT1sLGEucm9vdERvY3VtZW50PW8sYS53aGVuUmVhZHk9YixhLmlzSUU9cX0oSFRNTEltcG9ydHMpLGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTthLnRleHRDb250ZW50PSJib2R5IHt0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2UtaW4gMC4yczsgfSBcbmJvZHlbdW5yZXNvbHZlZF0ge29wYWNpdHk6IDA7IGRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdzogaGlkZGVuOyB9IFxuIjt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJoZWFkIik7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfShQbGF0Zm9ybSkpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7ZnVuY3Rpb24gYShhKXtiPWF9aWYoImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5vYnNlcnZlfHwiZnVuY3Rpb24iIT10eXBlb2YgQXJyYXkub2JzZXJ2ZSlyZXR1cm4hMTt2YXIgYj1bXSxjPXt9LGQ9W107cmV0dXJuIE9iamVjdC5vYnNlcnZlKGMsYSksQXJyYXkub2JzZXJ2ZShkLGEpLGMuaWQ9MSxjLmlkPTIsZGVsZXRlIGMuaWQsZC5wdXNoKDEsMiksZC5sZW5ndGg9MCxPYmplY3QuZGVsaXZlckNoYW5nZVJlY29yZHMoYSksNSE9PWIubGVuZ3RoPyExOiJhZGQiIT1iWzBdLnR5cGV8fCJ1cGRhdGUiIT1iWzFdLnR5cGV8fCJkZWxldGUiIT1iWzJdLnR5cGV8fCJzcGxpY2UiIT1iWzNdLnR5cGV8fCJzcGxpY2UiIT1iWzRdLnR5cGU/ITE6KE9iamVjdC51bm9ic2VydmUoYyxhKSxBcnJheS51bm9ic2VydmUoZCxhKSwhMCl9ZnVuY3Rpb24gYygpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY2hyb21lJiZjaHJvbWUuYXBwJiZjaHJvbWUuYXBwLnJ1bnRpbWUpcmV0dXJuITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5nZXREZXZpY2VTdG9yYWdlKXJldHVybiExO3RyeXt2YXIgYT1uZXcgRnVuY3Rpb24oIiIsInJldHVybiB0cnVlOyIpO3JldHVybiBhKCl9Y2F0Y2goYil7cmV0dXJuITF9fWZ1bmN0aW9uIGQoYSl7cmV0dXJuK2E9PT1hPj4+MCYmIiIhPT1hfWZ1bmN0aW9uIGUoYSl7cmV0dXJuK2F9ZnVuY3Rpb24gZihhKXtyZXR1cm4gYT09PU9iamVjdChhKX1mdW5jdGlvbiBnKGEsYil7cmV0dXJuIGE9PT1iPzAhPT1hfHwxL2E9PT0xL2I6UihhKSYmUihiKT8hMDphIT09YSYmYiE9PWJ9ZnVuY3Rpb24gaChhKXtpZih2b2lkIDA9PT1hKXJldHVybiJlb2YiO3ZhciBiPWEuY2hhckNvZGVBdCgwKTtzd2l0Y2goYil7Y2FzZSA5MTpjYXNlIDkzOmNhc2UgNDY6Y2FzZSAzNDpjYXNlIDM5OmNhc2UgNDg6cmV0dXJuIGE7Y2FzZSA5NTpjYXNlIDM2OnJldHVybiJpZGVudCI7Y2FzZSAzMjpjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMTYwOmNhc2UgNjUyNzk6Y2FzZSA4MjMyOmNhc2UgODIzMzpyZXR1cm4id3MifXJldHVybiBiPj05NyYmMTIyPj1ifHxiPj02NSYmOTA+PWI/ImlkZW50IjpiPj00OSYmNTc+PWI/Im51bWJlciI6ImVsc2UifWZ1bmN0aW9uIGkoKXt9ZnVuY3Rpb24gaihhKXtmdW5jdGlvbiBiKCl7aWYoIShtPj1hLmxlbmd0aCkpe3ZhciBiPWFbbSsxXTtyZXR1cm4iaW5TaW5nbGVRdW90ZSI9PW4mJiInIj09Ynx8ImluRG91YmxlUXVvdGUiPT1uJiYnIic9PWI/KG0rKyxkPWIsby5hcHBlbmQoKSwhMCk6dm9pZCAwfX1mb3IodmFyIGMsZCxlLGYsZyxqLGssbD1bXSxtPS0xLG49ImJlZm9yZVBhdGgiLG89e3B1c2g6ZnVuY3Rpb24oKXt2b2lkIDAhPT1lJiYobC5wdXNoKGUpLGU9dm9pZCAwKX0sYXBwZW5kOmZ1bmN0aW9uKCl7dm9pZCAwPT09ZT9lPWQ6ZSs9ZH19O247KWlmKG0rKyxjPWFbbV0sIlxcIiE9Y3x8IWIobikpe2lmKGY9aChjKSxrPVdbbl0sZz1rW2ZdfHxrWyJlbHNlIl18fCJlcnJvciIsImVycm9yIj09ZylyZXR1cm47aWYobj1nWzBdLGo9b1tnWzFdXXx8aSxkPXZvaWQgMD09PWdbMl0/YzpnWzJdLGooKSwiYWZ0ZXJQYXRoIj09PW4pcmV0dXJuIGx9fWZ1bmN0aW9uIGsoYSl7cmV0dXJuIFYudGVzdChhKX1mdW5jdGlvbiBsKGEsYil7aWYoYiE9PVgpdGhyb3cgRXJyb3IoIlVzZSBQYXRoLmdldCB0byByZXRyaWV2ZSBwYXRoIG9iamVjdHMiKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl0aGlzLnB1c2goU3RyaW5nKGFbY10pKTtRJiZ0aGlzLmxlbmd0aCYmKHRoaXMuZ2V0VmFsdWVGcm9tPXRoaXMuY29tcGlsZWRHZXRWYWx1ZUZyb21GbigpKX1mdW5jdGlvbiBtKGEpe2lmKGEgaW5zdGFuY2VvZiBsKXJldHVybiBhO2lmKChudWxsPT1hfHwwPT1hLmxlbmd0aCkmJihhPSIiKSwic3RyaW5nIiE9dHlwZW9mIGEpe2lmKGQoYS5sZW5ndGgpKXJldHVybiBuZXcgbChhLFgpO2E9U3RyaW5nKGEpfXZhciBiPVlbYV07aWYoYilyZXR1cm4gYjt2YXIgYz1qKGEpO2lmKCFjKXJldHVybiBaO3ZhciBiPW5ldyBsKGMsWCk7cmV0dXJuIFlbYV09YixifWZ1bmN0aW9uIG4oYSl7cmV0dXJuIGQoYSk/IlsiK2ErIl0iOidbIicrYS5yZXBsYWNlKC8iL2csJ1xcIicpKyciXSd9ZnVuY3Rpb24gbyhiKXtmb3IodmFyIGM9MDtfPmMmJmIuY2hlY2tfKCk7KWMrKztyZXR1cm4gTyYmKGEuZGlydHlDaGVja0N5Y2xlQ291bnQ9YyksYz4wfWZ1bmN0aW9uIHAoYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gcShhKXtyZXR1cm4gcChhLmFkZGVkKSYmcChhLnJlbW92ZWQpJiZwKGEuY2hhbmdlZCl9ZnVuY3Rpb24gcihhLGIpe3ZhciBjPXt9LGQ9e30sZT17fTtmb3IodmFyIGYgaW4gYil7dmFyIGc9YVtmXTsodm9pZCAwPT09Z3x8ZyE9PWJbZl0pJiYoZiBpbiBhP2chPT1iW2ZdJiYoZVtmXT1nKTpkW2ZdPXZvaWQgMCl9Zm9yKHZhciBmIGluIGEpZiBpbiBifHwoY1tmXT1hW2ZdKTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmYS5sZW5ndGghPT1iLmxlbmd0aCYmKGUubGVuZ3RoPWEubGVuZ3RoKSx7YWRkZWQ6YyxyZW1vdmVkOmQsY2hhbmdlZDplfX1mdW5jdGlvbiBzKCl7aWYoIWFiLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGE9MDthPGFiLmxlbmd0aDthKyspYWJbYV0oKTtyZXR1cm4gYWIubGVuZ3RoPTAsITB9ZnVuY3Rpb24gdCgpe2Z1bmN0aW9uIGEoYSl7YiYmYi5zdGF0ZV89PT1mYiYmIWQmJmIuY2hlY2tfKGEpfXZhciBiLGMsZD0hMSxlPSEwO3JldHVybntvcGVuOmZ1bmN0aW9uKGMpe2lmKGIpdGhyb3cgRXJyb3IoIk9ic2VydmVkT2JqZWN0IGluIHVzZSIpO2V8fE9iamVjdC5kZWxpdmVyQ2hhbmdlUmVjb3JkcyhhKSxiPWMsZT0hMX0sb2JzZXJ2ZTpmdW5jdGlvbihiLGQpe2M9YixkP0FycmF5Lm9ic2VydmUoYyxhKTpPYmplY3Qub2JzZXJ2ZShjLGEpfSxkZWxpdmVyOmZ1bmN0aW9uKGIpe2Q9YixPYmplY3QuZGVsaXZlckNoYW5nZVJlY29yZHMoYSksZD0hMX0sY2xvc2U6ZnVuY3Rpb24oKXtiPXZvaWQgMCxPYmplY3QudW5vYnNlcnZlKGMsYSksY2IucHVzaCh0aGlzKX19fWZ1bmN0aW9uIHUoYSxiLGMpe3ZhciBkPWNiLnBvcCgpfHx0KCk7cmV0dXJuIGQub3BlbihhKSxkLm9ic2VydmUoYixjKSxkfWZ1bmN0aW9uIHYoKXtmdW5jdGlvbiBhKGIsZil7YiYmKGI9PT1kJiYoZVtmXT0hMCksaC5pbmRleE9mKGIpPDAmJihoLnB1c2goYiksT2JqZWN0Lm9ic2VydmUoYixjKSksYShPYmplY3QuZ2V0UHJvdG90eXBlT2YoYiksZikpfWZ1bmN0aW9uIGIoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBjPWFbYl07aWYoYy5vYmplY3QhPT1kfHxlW2MubmFtZV18fCJzZXRQcm90b3R5cGUiPT09Yy50eXBlKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGMoYyl7aWYoIWIoYykpe2Zvcih2YXIgZCxlPTA7ZTxnLmxlbmd0aDtlKyspZD1nW2VdLGQuc3RhdGVfPT1mYiYmZC5pdGVyYXRlT2JqZWN0c18oYSk7Zm9yKHZhciBlPTA7ZTxnLmxlbmd0aDtlKyspZD1nW2VdLGQuc3RhdGVfPT1mYiYmZC5jaGVja18oKX19dmFyIGQsZSxmPTAsZz1bXSxoPVtdLGk9e29iamVjdHM6aCxnZXQgcm9vdE9iamVjdCgpe3JldHVybiBkfSxzZXQgcm9vdE9iamVjdChhKXtkPWEsZT17fX0sb3BlbjpmdW5jdGlvbihiKXtnLnB1c2goYiksZisrLGIuaXRlcmF0ZU9iamVjdHNfKGEpfSxjbG9zZTpmdW5jdGlvbigpe2lmKGYtLSwhKGY+MCkpe2Zvcih2YXIgYT0wO2E8aC5sZW5ndGg7YSsrKU9iamVjdC51bm9ic2VydmUoaFthXSxjKSx4LnVub2JzZXJ2ZWRDb3VudCsrO2cubGVuZ3RoPTAsaC5sZW5ndGg9MCxkPXZvaWQgMCxlPXZvaWQgMCxkYi5wdXNoKHRoaXMpLCQ9PT10aGlzJiYoJD1udWxsKX19fTtyZXR1cm4gaX1mdW5jdGlvbiB3KGEsYil7cmV0dXJuICQmJiQucm9vdE9iamVjdD09PWJ8fCgkPWRiLnBvcCgpfHx2KCksJC5yb290T2JqZWN0PWIpLCQub3BlbihhLGIpLCR9ZnVuY3Rpb24geCgpe3RoaXMuc3RhdGVfPWViLHRoaXMuY2FsbGJhY2tfPXZvaWQgMCx0aGlzLnRhcmdldF89dm9pZCAwLHRoaXMuZGlyZWN0T2JzZXJ2ZXJfPXZvaWQgMCx0aGlzLnZhbHVlXz12b2lkIDAsdGhpcy5pZF89aWIrK31mdW5jdGlvbiB5KGEpe3guX2FsbE9ic2VydmVyc0NvdW50Kyssa2ImJmpiLnB1c2goYSl9ZnVuY3Rpb24geigpe3guX2FsbE9ic2VydmVyc0NvdW50LS19ZnVuY3Rpb24gQShhKXt4LmNhbGwodGhpcyksdGhpcy52YWx1ZV89YSx0aGlzLm9sZE9iamVjdF89dm9pZCAwfWZ1bmN0aW9uIEIoYSl7aWYoIUFycmF5LmlzQXJyYXkoYSkpdGhyb3cgRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBpcyBub3QgYW4gQXJyYXkiKTtBLmNhbGwodGhpcyxhKX1mdW5jdGlvbiBDKGEsYil7eC5jYWxsKHRoaXMpLHRoaXMub2JqZWN0Xz1hLHRoaXMucGF0aF89bShiKSx0aGlzLmRpcmVjdE9ic2VydmVyXz12b2lkIDB9ZnVuY3Rpb24gRChhKXt4LmNhbGwodGhpcyksdGhpcy5yZXBvcnRDaGFuZ2VzT25PcGVuXz1hLHRoaXMudmFsdWVfPVtdLHRoaXMuZGlyZWN0T2JzZXJ2ZXJfPXZvaWQgMCx0aGlzLm9ic2VydmVkXz1bXX1mdW5jdGlvbiBFKGEpe3JldHVybiBhfWZ1bmN0aW9uIEYoYSxiLGMsZCl7dGhpcy5jYWxsYmFja189dm9pZCAwLHRoaXMudGFyZ2V0Xz12b2lkIDAsdGhpcy52YWx1ZV89dm9pZCAwLHRoaXMub2JzZXJ2YWJsZV89YSx0aGlzLmdldFZhbHVlRm5fPWJ8fEUsdGhpcy5zZXRWYWx1ZUZuXz1jfHxFLHRoaXMuZG9udFBhc3NUaHJvdWdoU2V0Xz1kfWZ1bmN0aW9uIEcoYSxiLGMpe2Zvcih2YXIgZD17fSxlPXt9LGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXTtuYltnLnR5cGVdPyhnLm5hbWUgaW4gY3x8KGNbZy5uYW1lXT1nLm9sZFZhbHVlKSwidXBkYXRlIiE9Zy50eXBlJiYoImFkZCIhPWcudHlwZT9nLm5hbWUgaW4gZD8oZGVsZXRlIGRbZy5uYW1lXSxkZWxldGUgY1tnLm5hbWVdKTplW2cubmFtZV09ITA6Zy5uYW1lIGluIGU/ZGVsZXRlIGVbZy5uYW1lXTpkW2cubmFtZV09ITApKTooY29uc29sZS5lcnJvcigiVW5rbm93biBjaGFuZ2VSZWNvcmQgdHlwZTogIitnLnR5cGUpLGNvbnNvbGUuZXJyb3IoZykpfWZvcih2YXIgaCBpbiBkKWRbaF09YVtoXTtmb3IodmFyIGggaW4gZSllW2hdPXZvaWQgMDt2YXIgaT17fTtmb3IodmFyIGggaW4gYylpZighKGggaW4gZHx8aCBpbiBlKSl7dmFyIGo9YVtoXTtjW2hdIT09aiYmKGlbaF09ail9cmV0dXJue2FkZGVkOmQscmVtb3ZlZDplLGNoYW5nZWQ6aX19ZnVuY3Rpb24gSChhLGIsYyl7cmV0dXJue2luZGV4OmEscmVtb3ZlZDpiLGFkZGVkQ291bnQ6Y319ZnVuY3Rpb24gSSgpe31mdW5jdGlvbiBKKGEsYixjLGQsZSxmKXtyZXR1cm4gc2IuY2FsY1NwbGljZXMoYSxiLGMsZCxlLGYpfWZ1bmN0aW9uIEsoYSxiLGMsZCl7cmV0dXJuIGM+Ynx8YT5kPy0xOmI9PWN8fGQ9PWE/MDpjPmE/ZD5iP2ItYzpkLWM6Yj5kP2QtYTpiLWF9ZnVuY3Rpb24gTChhLGIsYyxkKXtmb3IodmFyIGU9SChiLGMsZCksZj0hMSxnPTAsaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgaT1hW2hdO2lmKGkuaW5kZXgrPWcsIWYpe3ZhciBqPUsoZS5pbmRleCxlLmluZGV4K2UucmVtb3ZlZC5sZW5ndGgsaS5pbmRleCxpLmluZGV4K2kuYWRkZWRDb3VudCk7aWYoaj49MCl7YS5zcGxpY2UoaCwxKSxoLS0sZy09aS5hZGRlZENvdW50LWkucmVtb3ZlZC5sZW5ndGgsZS5hZGRlZENvdW50Kz1pLmFkZGVkQ291bnQtajt2YXIgaz1lLnJlbW92ZWQubGVuZ3RoK2kucmVtb3ZlZC5sZW5ndGgtajtpZihlLmFkZGVkQ291bnR8fGspe3ZhciBjPWkucmVtb3ZlZDtpZihlLmluZGV4PGkuaW5kZXgpe3ZhciBsPWUucmVtb3ZlZC5zbGljZSgwLGkuaW5kZXgtZS5pbmRleCk7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkobCxjKSxjPWx9aWYoZS5pbmRleCtlLnJlbW92ZWQubGVuZ3RoPmkuaW5kZXgraS5hZGRlZENvdW50KXt2YXIgbT1lLnJlbW92ZWQuc2xpY2UoaS5pbmRleCtpLmFkZGVkQ291bnQtZS5pbmRleCk7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYyxtKX1lLnJlbW92ZWQ9YyxpLmluZGV4PGUuaW5kZXgmJihlLmluZGV4PWkuaW5kZXgpfWVsc2UgZj0hMH1lbHNlIGlmKGUuaW5kZXg8aS5pbmRleCl7Zj0hMCxhLnNwbGljZShoLDAsZSksaCsrO3ZhciBuPWUuYWRkZWRDb3VudC1lLnJlbW92ZWQubGVuZ3RoO2kuaW5kZXgrPW4sZys9bn19fWZ8fGEucHVzaChlKX1mdW5jdGlvbiBNKGEsYil7Zm9yKHZhciBjPVtdLGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXTtzd2l0Y2goZy50eXBlKXtjYXNlInNwbGljZSI6TChjLGcuaW5kZXgsZy5yZW1vdmVkLnNsaWNlKCksZy5hZGRlZENvdW50KTticmVhaztjYXNlImFkZCI6Y2FzZSJ1cGRhdGUiOmNhc2UiZGVsZXRlIjppZighZChnLm5hbWUpKWNvbnRpbnVlO3ZhciBoPWUoZy5uYW1lKTtpZigwPmgpY29udGludWU7TChjLGgsW2cub2xkVmFsdWVdLDEpO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVW5leHBlY3RlZCByZWNvcmQgdHlwZTogIitKU09OLnN0cmluZ2lmeShnKSl9fXJldHVybiBjfWZ1bmN0aW9uIE4oYSxiKXt2YXIgYz1bXTtyZXR1cm4gTShhLGIpLmZvckVhY2goZnVuY3Rpb24oYil7cmV0dXJuIDE9PWIuYWRkZWRDb3VudCYmMT09Yi5yZW1vdmVkLmxlbmd0aD92b2lkKGIucmVtb3ZlZFswXSE9PWFbYi5pbmRleF0mJmMucHVzaChiKSk6dm9pZChjPWMuY29uY2F0KEooYSxiLmluZGV4LGIuaW5kZXgrYi5hZGRlZENvdW50LGIucmVtb3ZlZCwwLGIucmVtb3ZlZC5sZW5ndGgpKSl9KSxjfXZhciBPPWEudGVzdGluZ0V4cG9zZUN5Y2xlQ291bnQsUD1iKCksUT1jKCksUj1hLk51bWJlci5pc05hTnx8ZnVuY3Rpb24oYil7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBiJiZhLmlzTmFOKGIpfSxTPSJfX3Byb3RvX18iaW57fT9mdW5jdGlvbihhKXtyZXR1cm4gYX06ZnVuY3Rpb24oYSl7dmFyIGI9YS5fX3Byb3RvX187aWYoIWIpcmV0dXJuIGE7dmFyIGM9T2JqZWN0LmNyZWF0ZShiKTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYSkuZm9yRWFjaChmdW5jdGlvbihiKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxiLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxiKSl9KSxjfSxUPSJbJF9hLXpBLVpdIixVPSJbJF9hLXpBLVowLTldIixWPW5ldyBSZWdFeHAoIl4iK1QrIisiK1UrIiokIiksVz17YmVmb3JlUGF0aDp7d3M6WyJiZWZvcmVQYXRoIl0saWRlbnQ6WyJpbklkZW50IiwiYXBwZW5kIl0sIlsiOlsiYmVmb3JlRWxlbWVudCJdLGVvZjpbImFmdGVyUGF0aCJdfSxpblBhdGg6e3dzOlsiaW5QYXRoIl0sIi4iOlsiYmVmb3JlSWRlbnQiXSwiWyI6WyJiZWZvcmVFbGVtZW50Il0sZW9mOlsiYWZ0ZXJQYXRoIl19LGJlZm9yZUlkZW50Ont3czpbImJlZm9yZUlkZW50Il0saWRlbnQ6WyJpbklkZW50IiwiYXBwZW5kIl19LGluSWRlbnQ6e2lkZW50OlsiaW5JZGVudCIsImFwcGVuZCJdLDA6WyJpbklkZW50IiwiYXBwZW5kIl0sbnVtYmVyOlsiaW5JZGVudCIsImFwcGVuZCJdLHdzOlsiaW5QYXRoIiwicHVzaCJdLCIuIjpbImJlZm9yZUlkZW50IiwicHVzaCJdLCJbIjpbImJlZm9yZUVsZW1lbnQiLCJwdXNoIl0sZW9mOlsiYWZ0ZXJQYXRoIiwicHVzaCJdfSxiZWZvcmVFbGVtZW50Ont3czpbImJlZm9yZUVsZW1lbnQiXSwwOlsiYWZ0ZXJaZXJvIiwiYXBwZW5kIl0sbnVtYmVyOlsiaW5JbmRleCIsImFwcGVuZCJdLCInIjpbImluU2luZ2xlUXVvdGUiLCJhcHBlbmQiLCIiXSwnIic6WyJpbkRvdWJsZVF1b3RlIiwiYXBwZW5kIiwiIl19LGFmdGVyWmVybzp7d3M6WyJhZnRlckVsZW1lbnQiLCJwdXNoIl0sIl0iOlsiaW5QYXRoIiwicHVzaCJdfSxpbkluZGV4OnswOlsiaW5JbmRleCIsImFwcGVuZCJdLG51bWJlcjpbImluSW5kZXgiLCJhcHBlbmQiXSx3czpbImFmdGVyRWxlbWVudCJdLCJdIjpbImluUGF0aCIsInB1c2giXX0saW5TaW5nbGVRdW90ZTp7IiciOlsiYWZ0ZXJFbGVtZW50Il0sZW9mOlsiZXJyb3IiXSwiZWxzZSI6WyJpblNpbmdsZVF1b3RlIiwiYXBwZW5kIl19LGluRG91YmxlUXVvdGU6eyciJzpbImFmdGVyRWxlbWVudCJdLGVvZjpbImVycm9yIl0sImVsc2UiOlsiaW5Eb3VibGVRdW90ZSIsImFwcGVuZCJdfSxhZnRlckVsZW1lbnQ6e3dzOlsiYWZ0ZXJFbGVtZW50Il0sIl0iOlsiaW5QYXRoIiwicHVzaCJdfX0sWD17fSxZPXt9O2wuZ2V0PW0sbC5wcm90b3R5cGU9Uyh7X19wcm90b19fOltdLHZhbGlkOiEwLHRvU3RyaW5nOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPSIiLGI9MDtiPHRoaXMubGVuZ3RoO2IrKyl7dmFyIGM9dGhpc1tiXTthKz1rKGMpP2I/Ii4iK2M6YzpuKGMpfXJldHVybiBhfSxnZXRWYWx1ZUZyb206ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7Yjx0aGlzLmxlbmd0aDtiKyspe2lmKG51bGw9PWEpcmV0dXJuO2E9YVt0aGlzW2JdXX1yZXR1cm4gYX0saXRlcmF0ZU9iamVjdHM6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPHRoaXMubGVuZ3RoO2MrKyl7aWYoYyYmKGE9YVt0aGlzW2MtMV1dKSwhZihhKSlyZXR1cm47YihhLHRoaXNbY10pfX0sY29tcGlsZWRHZXRWYWx1ZUZyb21GbjpmdW5jdGlvbigpe3ZhciBhPSIiLGI9Im9iaiI7YSs9ImlmIChvYmogIT0gbnVsbCI7Zm9yKHZhciBjLGQ9MDtkPHRoaXMubGVuZ3RoLTE7ZCsrKWM9dGhpc1tkXSxiKz1rKGMpPyIuIitjOm4oYyksYSs9IiAmJlxuICAgICAiK2IrIiAhPSBudWxsIjthKz0iKVxuIjt2YXIgYz10aGlzW2RdO3JldHVybiBiKz1rKGMpPyIuIitjOm4oYyksYSs9IiAgcmV0dXJuICIrYisiO1xuZWxzZVxuICByZXR1cm4gdW5kZWZpbmVkOyIsbmV3IEZ1bmN0aW9uKCJvYmoiLGEpfSxzZXRWYWx1ZUZyb206ZnVuY3Rpb24oYSxiKXtpZighdGhpcy5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBjPTA7Yzx0aGlzLmxlbmd0aC0xO2MrKyl7aWYoIWYoYSkpcmV0dXJuITE7YT1hW3RoaXNbY11dfXJldHVybiBmKGEpPyhhW3RoaXNbY11dPWIsITApOiExfX0pO3ZhciBaPW5ldyBsKCIiLFgpO1oudmFsaWQ9ITEsWi5nZXRWYWx1ZUZyb209Wi5zZXRWYWx1ZUZyb209ZnVuY3Rpb24oKXt9O3ZhciAkLF89MWUzLGFiPVtdLGJiPVA/ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYSl9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe2FiLnB1c2goYSl9fSgpLGNiPVtdLGRiPVtdLGViPTAsZmI9MSxnYj0yLGhiPTMsaWI9MTt4LnByb3RvdHlwZT17b3BlbjpmdW5jdGlvbihhLGIpe2lmKHRoaXMuc3RhdGVfIT1lYil0aHJvdyBFcnJvcigiT2JzZXJ2ZXIgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQuIik7cmV0dXJuIHkodGhpcyksdGhpcy5jYWxsYmFja189YSx0aGlzLnRhcmdldF89Yix0aGlzLmNvbm5lY3RfKCksdGhpcy5zdGF0ZV89ZmIsdGhpcy52YWx1ZV99LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZV89PWZiJiYoeih0aGlzKSx0aGlzLmRpc2Nvbm5lY3RfKCksdGhpcy52YWx1ZV89dm9pZCAwLHRoaXMuY2FsbGJhY2tfPXZvaWQgMCx0aGlzLnRhcmdldF89dm9pZCAwLHRoaXMuc3RhdGVfPWdiKX0sZGVsaXZlcjpmdW5jdGlvbigpe3RoaXMuc3RhdGVfPT1mYiYmbyh0aGlzKX0scmVwb3J0XzpmdW5jdGlvbihhKXt0cnl7dGhpcy5jYWxsYmFja18uYXBwbHkodGhpcy50YXJnZXRfLGEpfWNhdGNoKGIpe3guX2Vycm9yVGhyb3duRHVyaW5nQ2FsbGJhY2s9ITAsY29uc29sZS5lcnJvcigiRXhjZXB0aW9uIGNhdWdodCBkdXJpbmcgb2JzZXJ2ZXIgY2FsbGJhY2s6ICIrKGIuc3RhY2t8fGIpKX19LGRpc2NhcmRDaGFuZ2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hlY2tfKHZvaWQgMCwhMCksdGhpcy52YWx1ZV99fTt2YXIgamIsa2I9IVA7eC5fYWxsT2JzZXJ2ZXJzQ291bnQ9MCxrYiYmKGpiPVtdKTt2YXIgbGI9ITE7YS5QbGF0Zm9ybT1hLlBsYXRmb3JtfHx7fSxhLlBsYXRmb3JtLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50PWZ1bmN0aW9uKCl7aWYoIWxiJiZrYil7bGI9ITA7dmFyIGIsYyxkPTA7ZG97ZCsrLGM9amIsamI9W10sYj0hMTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXTtmLnN0YXRlXz09ZmImJihmLmNoZWNrXygpJiYoYj0hMCksamIucHVzaChmKSl9cygpJiYoYj0hMCl9d2hpbGUoXz5kJiZiKTtPJiYoYS5kaXJ0eUNoZWNrQ3ljbGVDb3VudD1kKSxsYj0hMX19LGtiJiYoYS5QbGF0Zm9ybS5jbGVhck9ic2VydmVycz1mdW5jdGlvbigpe2piPVtdfSksQS5wcm90b3R5cGU9Uyh7X19wcm90b19fOngucHJvdG90eXBlLGFycmF5T2JzZXJ2ZTohMSxjb25uZWN0XzpmdW5jdGlvbigpe1A/dGhpcy5kaXJlY3RPYnNlcnZlcl89dSh0aGlzLHRoaXMudmFsdWVfLHRoaXMuYXJyYXlPYnNlcnZlKTp0aGlzLm9sZE9iamVjdF89dGhpcy5jb3B5T2JqZWN0KHRoaXMudmFsdWVfKX0sY29weU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYj1BcnJheS5pc0FycmF5KGEpP1tdOnt9O2Zvcih2YXIgYyBpbiBhKWJbY109YVtjXTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmKGIubGVuZ3RoPWEubGVuZ3RoKSxifSxjaGVja186ZnVuY3Rpb24oYSl7dmFyIGIsYztpZihQKXtpZighYSlyZXR1cm4hMTtjPXt9LGI9Ryh0aGlzLnZhbHVlXyxhLGMpfWVsc2UgYz10aGlzLm9sZE9iamVjdF8sYj1yKHRoaXMudmFsdWVfLHRoaXMub2xkT2JqZWN0Xyk7cmV0dXJuIHEoYik/ITE6KFB8fCh0aGlzLm9sZE9iamVjdF89dGhpcy5jb3B5T2JqZWN0KHRoaXMudmFsdWVfKSksdGhpcy5yZXBvcnRfKFtiLmFkZGVkfHx7fSxiLnJlbW92ZWR8fHt9LGIuY2hhbmdlZHx8e30sZnVuY3Rpb24oYSl7cmV0dXJuIGNbYV19XSksITApfSxkaXNjb25uZWN0XzpmdW5jdGlvbigpe1A/KHRoaXMuZGlyZWN0T2JzZXJ2ZXJfLmNsb3NlKCksdGhpcy5kaXJlY3RPYnNlcnZlcl89dm9pZCAwKTp0aGlzLm9sZE9iamVjdF89dm9pZCAwfSxkZWxpdmVyOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZV89PWZiJiYoUD90aGlzLmRpcmVjdE9ic2VydmVyXy5kZWxpdmVyKCExKTpvKHRoaXMpKX0sZGlzY2FyZENoYW5nZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXJlY3RPYnNlcnZlcl8/dGhpcy5kaXJlY3RPYnNlcnZlcl8uZGVsaXZlcighMCk6dGhpcy5vbGRPYmplY3RfPXRoaXMuY29weU9iamVjdCh0aGlzLnZhbHVlXyksdGhpcy52YWx1ZV99fSksQi5wcm90b3R5cGU9Uyh7X19wcm90b19fOkEucHJvdG90eXBlLGFycmF5T2JzZXJ2ZTohMCxjb3B5T2JqZWN0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKCl9LGNoZWNrXzpmdW5jdGlvbihhKXt2YXIgYjtpZihQKXtpZighYSlyZXR1cm4hMTtiPU4odGhpcy52YWx1ZV8sYSl9ZWxzZSBiPUoodGhpcy52YWx1ZV8sMCx0aGlzLnZhbHVlXy5sZW5ndGgsdGhpcy5vbGRPYmplY3RfLDAsdGhpcy5vbGRPYmplY3RfLmxlbmd0aCk7cmV0dXJuIGImJmIubGVuZ3RoPyhQfHwodGhpcy5vbGRPYmplY3RfPXRoaXMuY29weU9iamVjdCh0aGlzLnZhbHVlXykpLHRoaXMucmVwb3J0XyhbYl0pLCEwKTohMX19KSxCLmFwcGx5U3BsaWNlcz1mdW5jdGlvbihhLGIsYyl7Yy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2Zvcih2YXIgZD1bYy5pbmRleCxjLnJlbW92ZWQubGVuZ3RoXSxlPWMuaW5kZXg7ZTxjLmluZGV4K2MuYWRkZWRDb3VudDspZC5wdXNoKGJbZV0pLGUrKztBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGEsZCl9KX0sQy5wcm90b3R5cGU9Uyh7X19wcm90b19fOngucHJvdG90eXBlLGdldCBwYXRoKCl7cmV0dXJuIHRoaXMucGF0aF99LGNvbm5lY3RfOmZ1bmN0aW9uKCl7UCYmKHRoaXMuZGlyZWN0T2JzZXJ2ZXJfPXcodGhpcyx0aGlzLm9iamVjdF8pKSx0aGlzLmNoZWNrXyh2b2lkIDAsITApfSxkaXNjb25uZWN0XzpmdW5jdGlvbigpe3RoaXMudmFsdWVfPXZvaWQgMCx0aGlzLmRpcmVjdE9ic2VydmVyXyYmKHRoaXMuZGlyZWN0T2JzZXJ2ZXJfLmNsb3NlKHRoaXMpLHRoaXMuZGlyZWN0T2JzZXJ2ZXJfPXZvaWQgMCl9LGl0ZXJhdGVPYmplY3RzXzpmdW5jdGlvbihhKXt0aGlzLnBhdGhfLml0ZXJhdGVPYmplY3RzKHRoaXMub2JqZWN0XyxhKX0sY2hlY2tfOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy52YWx1ZV87cmV0dXJuIHRoaXMudmFsdWVfPXRoaXMucGF0aF8uZ2V0VmFsdWVGcm9tKHRoaXMub2JqZWN0XyksYnx8Zyh0aGlzLnZhbHVlXyxjKT8hMToodGhpcy5yZXBvcnRfKFt0aGlzLnZhbHVlXyxjLHRoaXNdKSwhMCl9LHNldFZhbHVlOmZ1bmN0aW9uKGEpe3RoaXMucGF0aF8mJnRoaXMucGF0aF8uc2V0VmFsdWVGcm9tKHRoaXMub2JqZWN0XyxhKX19KTt2YXIgbWI9e307RC5wcm90b3R5cGU9Uyh7X19wcm90b19fOngucHJvdG90eXBlLGNvbm5lY3RfOmZ1bmN0aW9uKCl7aWYoUCl7Zm9yKHZhciBhLGI9ITEsYz0wO2M8dGhpcy5vYnNlcnZlZF8ubGVuZ3RoO2MrPTIpaWYoYT10aGlzLm9ic2VydmVkX1tjXSxhIT09bWIpe2I9ITA7YnJlYWt9YiYmKHRoaXMuZGlyZWN0T2JzZXJ2ZXJfPXcodGhpcyxhKSl9dGhpcy5jaGVja18odm9pZCAwLCF0aGlzLnJlcG9ydENoYW5nZXNPbk9wZW5fKX0sZGlzY29ubmVjdF86ZnVuY3Rpb24oKXtmb3IodmFyIGE9MDthPHRoaXMub2JzZXJ2ZWRfLmxlbmd0aDthKz0yKXRoaXMub2JzZXJ2ZWRfW2FdPT09bWImJnRoaXMub2JzZXJ2ZWRfW2ErMV0uY2xvc2UoKTt0aGlzLm9ic2VydmVkXy5sZW5ndGg9MCx0aGlzLnZhbHVlXy5sZW5ndGg9MCx0aGlzLmRpcmVjdE9ic2VydmVyXyYmKHRoaXMuZGlyZWN0T2JzZXJ2ZXJfLmNsb3NlKHRoaXMpLHRoaXMuZGlyZWN0T2JzZXJ2ZXJfPXZvaWQgMCl9LGFkZFBhdGg6ZnVuY3Rpb24oYSxiKXtpZih0aGlzLnN0YXRlXyE9ZWImJnRoaXMuc3RhdGVfIT1oYil0aHJvdyBFcnJvcigiQ2Fubm90IGFkZCBwYXRocyBvbmNlIHN0YXJ0ZWQuIik7dmFyIGI9bShiKTtpZih0aGlzLm9ic2VydmVkXy5wdXNoKGEsYiksdGhpcy5yZXBvcnRDaGFuZ2VzT25PcGVuXyl7dmFyIGM9dGhpcy5vYnNlcnZlZF8ubGVuZ3RoLzItMTt0aGlzLnZhbHVlX1tjXT1iLmdldFZhbHVlRnJvbShhKX19LGFkZE9ic2VydmVyOmZ1bmN0aW9uKGEpe2lmKHRoaXMuc3RhdGVfIT1lYiYmdGhpcy5zdGF0ZV8hPWhiKXRocm93IEVycm9yKCJDYW5ub3QgYWRkIG9ic2VydmVycyBvbmNlIHN0YXJ0ZWQuIik7aWYodGhpcy5vYnNlcnZlZF8ucHVzaChtYixhKSx0aGlzLnJlcG9ydENoYW5nZXNPbk9wZW5fKXt2YXIgYj10aGlzLm9ic2VydmVkXy5sZW5ndGgvMi0xO3RoaXMudmFsdWVfW2JdPWEub3Blbih0aGlzLmRlbGl2ZXIsdGhpcyl9fSxzdGFydFJlc2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0ZV8hPWZiKXRocm93IEVycm9yKCJDYW4gb25seSByZXNldCB3aGlsZSBvcGVuIik7dGhpcy5zdGF0ZV89aGIsdGhpcy5kaXNjb25uZWN0XygpfSxmaW5pc2hSZXNldDpmdW5jdGlvbigpe2lmKHRoaXMuc3RhdGVfIT1oYil0aHJvdyBFcnJvcigiQ2FuIG9ubHkgZmluaXNoUmVzZXQgYWZ0ZXIgc3RhcnRSZXNldCIpO3JldHVybiB0aGlzLnN0YXRlXz1mYix0aGlzLmNvbm5lY3RfKCksdGhpcy52YWx1ZV99LGl0ZXJhdGVPYmplY3RzXzpmdW5jdGlvbihhKXtmb3IodmFyIGIsYz0wO2M8dGhpcy5vYnNlcnZlZF8ubGVuZ3RoO2MrPTIpYj10aGlzLm9ic2VydmVkX1tjXSxiIT09bWImJnRoaXMub2JzZXJ2ZWRfW2MrMV0uaXRlcmF0ZU9iamVjdHMoYixhKX0sY2hlY2tfOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9MDtkPHRoaXMub2JzZXJ2ZWRfLmxlbmd0aDtkKz0yKXt2YXIgZSxmPXRoaXMub2JzZXJ2ZWRfW2RdLGg9dGhpcy5vYnNlcnZlZF9bZCsxXTtpZihmPT09bWIpe3ZhciBpPWg7ZT10aGlzLnN0YXRlXz09PWViP2kub3Blbih0aGlzLmRlbGl2ZXIsdGhpcyk6aS5kaXNjYXJkQ2hhbmdlcygpfWVsc2UgZT1oLmdldFZhbHVlRnJvbShmKTtiP3RoaXMudmFsdWVfW2QvMl09ZTpnKGUsdGhpcy52YWx1ZV9bZC8yXSl8fChjPWN8fFtdLGNbZC8yXT10aGlzLnZhbHVlX1tkLzJdLHRoaXMudmFsdWVfW2QvMl09ZSl9cmV0dXJuIGM/KHRoaXMucmVwb3J0XyhbdGhpcy52YWx1ZV8sYyx0aGlzLm9ic2VydmVkX10pLCEwKTohMX19KSxGLnByb3RvdHlwZT17b3BlbjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmNhbGxiYWNrXz1hLHRoaXMudGFyZ2V0Xz1iLHRoaXMudmFsdWVfPXRoaXMuZ2V0VmFsdWVGbl8odGhpcy5vYnNlcnZhYmxlXy5vcGVuKHRoaXMub2JzZXJ2ZWRDYWxsYmFja18sdGhpcykpLHRoaXMudmFsdWVffSxvYnNlcnZlZENhbGxiYWNrXzpmdW5jdGlvbihhKXtpZihhPXRoaXMuZ2V0VmFsdWVGbl8oYSksIWcoYSx0aGlzLnZhbHVlXykpe3ZhciBiPXRoaXMudmFsdWVfO3RoaXMudmFsdWVfPWEsdGhpcy5jYWxsYmFja18uY2FsbCh0aGlzLnRhcmdldF8sdGhpcy52YWx1ZV8sYil9fSxkaXNjYXJkQ2hhbmdlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlXz10aGlzLmdldFZhbHVlRm5fKHRoaXMub2JzZXJ2YWJsZV8uZGlzY2FyZENoYW5nZXMoKSksdGhpcy52YWx1ZV99LGRlbGl2ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlXy5kZWxpdmVyKCl9LHNldFZhbHVlOmZ1bmN0aW9uKGEpe3JldHVybiBhPXRoaXMuc2V0VmFsdWVGbl8oYSksIXRoaXMuZG9udFBhc3NUaHJvdWdoU2V0XyYmdGhpcy5vYnNlcnZhYmxlXy5zZXRWYWx1ZT90aGlzLm9ic2VydmFibGVfLnNldFZhbHVlKGEpOnZvaWQgMH0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLm9ic2VydmFibGVfJiZ0aGlzLm9ic2VydmFibGVfLmNsb3NlKCksdGhpcy5jYWxsYmFja189dm9pZCAwLHRoaXMudGFyZ2V0Xz12b2lkIDAsdGhpcy5vYnNlcnZhYmxlXz12b2lkIDAsdGhpcy52YWx1ZV89dm9pZCAwLHRoaXMuZ2V0VmFsdWVGbl89dm9pZCAwLHRoaXMuc2V0VmFsdWVGbl89dm9pZCAwfX07dmFyIG5iPXthZGQ6ITAsdXBkYXRlOiEwLCJkZWxldGUiOiEwfSxvYj0wLHBiPTEscWI9MixyYj0zO0kucHJvdG90eXBlPXtjYWxjRWRpdERpc3RhbmNlczpmdW5jdGlvbihhLGIsYyxkLGUsZil7Zm9yKHZhciBnPWYtZSsxLGg9Yy1iKzEsaT1uZXcgQXJyYXkoZyksaj0wO2c+ajtqKyspaVtqXT1uZXcgQXJyYXkoaCksaVtqXVswXT1qO2Zvcih2YXIgaz0wO2g+aztrKyspaVswXVtrXT1rO2Zvcih2YXIgaj0xO2c+ajtqKyspZm9yKHZhciBrPTE7aD5rO2srKylpZih0aGlzLmVxdWFscyhhW2Iray0xXSxkW2Urai0xXSkpaVtqXVtrXT1pW2otMV1bay0xXTtlbHNle3ZhciBsPWlbai0xXVtrXSsxLG09aVtqXVtrLTFdKzE7aVtqXVtrXT1tPmw/bDptfXJldHVybiBpfSxzcGxpY2VPcGVyYXRpb25zRnJvbUVkaXREaXN0YW5jZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEubGVuZ3RoLTEsYz1hWzBdLmxlbmd0aC0xLGQ9YVtiXVtjXSxlPVtdO2I+MHx8Yz4wOylpZigwIT1iKWlmKDAhPWMpe3ZhciBmLGc9YVtiLTFdW2MtMV0saD1hW2ItMV1bY10saT1hW2JdW2MtMV07Zj1pPmg/Zz5oP2g6ZzpnPmk/aTpnLGY9PWc/KGc9PWQ/ZS5wdXNoKG9iKTooZS5wdXNoKHBiKSxkPWcpLGItLSxjLS0pOmY9PWg/KGUucHVzaChyYiksYi0tLGQ9aCk6KGUucHVzaChxYiksYy0tLGQ9aSl9ZWxzZSBlLnB1c2gocmIpLGItLTtlbHNlIGUucHVzaChxYiksYy0tO3JldHVybiBlLnJldmVyc2UoKSxlfSxjYWxjU3BsaWNlczpmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9MCxoPTAsaT1NYXRoLm1pbihjLWIsZi1lKTtpZigwPT1iJiYwPT1lJiYoZz10aGlzLnNoYXJlZFByZWZpeChhLGQsaSkpLGM9PWEubGVuZ3RoJiZmPT1kLmxlbmd0aCYmKGg9dGhpcy5zaGFyZWRTdWZmaXgoYSxkLGktZykpLGIrPWcsZSs9ZyxjLT1oLGYtPWgsYy1iPT0wJiZmLWU9PTApcmV0dXJuW107aWYoYj09Yyl7Zm9yKHZhciBqPUgoYixbXSwwKTtmPmU7KWoucmVtb3ZlZC5wdXNoKGRbZSsrXSk7cmV0dXJuW2pdfWlmKGU9PWYpcmV0dXJuW0goYixbXSxjLWIpXTtmb3IodmFyIGs9dGhpcy5zcGxpY2VPcGVyYXRpb25zRnJvbUVkaXREaXN0YW5jZXModGhpcy5jYWxjRWRpdERpc3RhbmNlcyhhLGIsYyxkLGUsZikpLGo9dm9pZCAwLGw9W10sbT1iLG49ZSxvPTA7bzxrLmxlbmd0aDtvKyspc3dpdGNoKGtbb10pe2Nhc2Ugb2I6aiYmKGwucHVzaChqKSxqPXZvaWQgMCksbSsrLG4rKzticmVhaztjYXNlIHBiOmp8fChqPUgobSxbXSwwKSksai5hZGRlZENvdW50KyssbSsrLGoucmVtb3ZlZC5wdXNoKGRbbl0pLG4rKzticmVhaztjYXNlIHFiOmp8fChqPUgobSxbXSwwKSksai5hZGRlZENvdW50KyssbSsrO2JyZWFrO2Nhc2UgcmI6anx8KGo9SChtLFtdLDApKSxqLnJlbW92ZWQucHVzaChkW25dKSxuKyt9cmV0dXJuIGomJmwucHVzaChqKSxsfSxzaGFyZWRQcmVmaXg6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2M+ZDtkKyspaWYoIXRoaXMuZXF1YWxzKGFbZF0sYltkXSkpcmV0dXJuIGQ7cmV0dXJuIGN9LHNoYXJlZFN1ZmZpeDpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWEubGVuZ3RoLGU9Yi5sZW5ndGgsZj0wO2M+ZiYmdGhpcy5lcXVhbHMoYVstLWRdLGJbLS1lXSk7KWYrKztyZXR1cm4gZn0sY2FsY3VsYXRlU3BsaWNlczpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmNhbGNTcGxpY2VzKGEsMCxhLmxlbmd0aCxiLDAsYi5sZW5ndGgpfSxlcXVhbHM6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWJ9fTt2YXIgc2I9bmV3IEksdGI9YTsidW5kZWZpbmVkIj09dHlwZW9mIGV4cG9ydHN8fGV4cG9ydHMubm9kZVR5cGV8fCgidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMmJihleHBvcnRzPW1vZHVsZS5leHBvcnRzKSx0Yj1leHBvcnRzKSx0Yi5PYnNlcnZlcj14LHRiLk9ic2VydmVyLnJ1bkVPTV89YmIsdGIuT2JzZXJ2ZXIub2JzZXJ2ZXJTZW50aW5lbF89bWIsdGIuT2JzZXJ2ZXIuaGFzT2JqZWN0T2JzZXJ2ZT1QLHRiLkFycmF5T2JzZXJ2ZXI9Qix0Yi5BcnJheU9ic2VydmVyLmNhbGN1bGF0ZVNwbGljZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gc2IuY2FsY3VsYXRlU3BsaWNlcyhhLGIpfSx0Yi5BcnJheVNwbGljZT1JLHRiLk9iamVjdE9ic2VydmVyPUEsdGIuUGF0aE9ic2VydmVyPUMsdGIuQ29tcG91bmRPYnNlcnZlcj1ELHRiLlBhdGg9bCx0Yi5PYnNlcnZlclRyYW5zZm9ybT1GfSgidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlP2dsb2JhbDp0aGlzfHx3aW5kb3cpLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoYSl7Zm9yKDthLnBhcmVudE5vZGU7KWE9YS5wYXJlbnROb2RlO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhLmdldEVsZW1lbnRCeUlkP2E6bnVsbH1mdW5jdGlvbiBiKGEsYixjKXt2YXIgZD1hLmJpbmRpbmdzXztyZXR1cm4gZHx8KGQ9YS5iaW5kaW5nc189e30pLGRbYl0mJmNbYl0uY2xvc2UoKSxkW2JdPWN9ZnVuY3Rpb24gYyhhLGIsYyl7cmV0dXJuIGN9ZnVuY3Rpb24gZChhKXtyZXR1cm4gbnVsbD09YT8iIjphfWZ1bmN0aW9uIGUoYSxiKXthLmRhdGE9ZChiKX1mdW5jdGlvbiBmKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZShhLGIpfX1mdW5jdGlvbiBnKGEsYixjLGUpe3JldHVybiBjP3ZvaWQoZT9hLnNldEF0dHJpYnV0ZShiLCIiKTphLnJlbW92ZUF0dHJpYnV0ZShiKSk6dm9pZCBhLnNldEF0dHJpYnV0ZShiLGQoZSkpfWZ1bmN0aW9uIGgoYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtnKGEsYixjLGQpfX1mdW5jdGlvbiBpKGEpe3N3aXRjaChhLnR5cGUpe2Nhc2UiY2hlY2tib3giOnJldHVybiB1O2Nhc2UicmFkaW8iOmNhc2Uic2VsZWN0LW11bHRpcGxlIjpjYXNlInNlbGVjdC1vbmUiOnJldHVybiJjaGFuZ2UiO2Nhc2UicmFuZ2UiOmlmKC9UcmlkZW50fE1TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpcmV0dXJuImNoYW5nZSI7ZGVmYXVsdDpyZXR1cm4iaW5wdXQifX1mdW5jdGlvbiBqKGEsYixjLGUpe2FbYl09KGV8fGQpKGMpfWZ1bmN0aW9uIGsoYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gaihhLGIsZCxjKX19ZnVuY3Rpb24gbCgpe31mdW5jdGlvbiBtKGEsYixjLGQpe2Z1bmN0aW9uIGUoKXt2YXIgZT0idmFsdWUiPT1iJiYibnVtYmVyIj09YS50eXBlO2Muc2V0VmFsdWUoZT9hLnZhbHVlQXNOdW1iZXI6YVtiXSksYy5kaXNjYXJkQ2hhbmdlcygpLChkfHxsKShhKSxQbGF0Zm9ybS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpfXZhciBmPWkoYSk7cmV0dXJuIGEuYWRkRXZlbnRMaXN0ZW5lcihmLGUpLHtjbG9zZTpmdW5jdGlvbigpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihmLGUpLGMuY2xvc2UoKX0sb2JzZXJ2YWJsZV86Y319ZnVuY3Rpb24gbihhKXtyZXR1cm4gQm9vbGVhbihhKX1mdW5jdGlvbiBvKGIpe2lmKGIuZm9ybSlyZXR1cm4gcyhiLmZvcm0uZWxlbWVudHMsZnVuY3Rpb24oYSl7cmV0dXJuIGEhPWImJiJJTlBVVCI9PWEudGFnTmFtZSYmInJhZGlvIj09YS50eXBlJiZhLm5hbWU9PWIubmFtZX0pO3ZhciBjPWEoYik7aWYoIWMpcmV0dXJuW107dmFyIGQ9Yy5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9IicrYi5uYW1lKyciXScpO3JldHVybiBzKGQsZnVuY3Rpb24oYSl7cmV0dXJuIGEhPWImJiFhLmZvcm19KX1mdW5jdGlvbiBwKGEpeyJJTlBVVCI9PT1hLnRhZ05hbWUmJiJyYWRpbyI9PT1hLnR5cGUmJm8oYSkuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLmJpbmRpbmdzXy5jaGVja2VkO2ImJmIub2JzZXJ2YWJsZV8uc2V0VmFsdWUoITEpfSl9ZnVuY3Rpb24gcShhLGIpe3ZhciBjLGUsZixnPWEucGFyZW50Tm9kZTtnIGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQmJmcuYmluZGluZ3NfJiZnLmJpbmRpbmdzXy52YWx1ZSYmKGM9ZyxlPWMuYmluZGluZ3NfLnZhbHVlLGY9Yy52YWx1ZSksYS52YWx1ZT1kKGIpLGMmJmMudmFsdWUhPWYmJihlLm9ic2VydmFibGVfLnNldFZhbHVlKGMudmFsdWUpLGUub2JzZXJ2YWJsZV8uZGlzY2FyZENoYW5nZXMoKSxQbGF0Zm9ybS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpKX1mdW5jdGlvbiByKGEpe3JldHVybiBmdW5jdGlvbihiKXtxKGEsYil9fXZhciBzPUFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbC5iaW5kKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpO05vZGUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oYSxiKXtjb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgYmluZGluZyB0byBOb2RlOiAiLHRoaXMsYSxiKX0sTm9kZS5wcm90b3R5cGUuYmluZEZpbmlzaGVkPWZ1bmN0aW9uKCl7fTt2YXIgdD1jO09iamVjdC5kZWZpbmVQcm9wZXJ0eShQbGF0Zm9ybSwiZW5hYmxlQmluZGluZ3NSZWZsZWN0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQ9PT1ifSxzZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHQ9YT9iOmMsYX0sY29uZmlndXJhYmxlOiEwfSksVGV4dC5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihhLGIsYyl7aWYoInRleHRDb250ZW50IiE9PWEpcmV0dXJuIE5vZGUucHJvdG90eXBlLmJpbmQuY2FsbCh0aGlzLGEsYixjKTtpZihjKXJldHVybiBlKHRoaXMsYik7dmFyIGQ9YjtyZXR1cm4gZSh0aGlzLGQub3BlbihmKHRoaXMpKSksdCh0aGlzLGEsZCl9LEVsZW1lbnQucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSI/Ij09YVthLmxlbmd0aC0xXTtpZihkJiYodGhpcy5yZW1vdmVBdHRyaWJ1dGUoYSksYT1hLnNsaWNlKDAsLTEpKSxjKXJldHVybiBnKHRoaXMsYSxkLGIpO3ZhciBlPWI7cmV0dXJuIGcodGhpcyxhLGQsZS5vcGVuKGgodGhpcyxhLGQpKSksdCh0aGlzLGEsZSl9O3ZhciB1OyFmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGI9YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKTtiLnNldEF0dHJpYnV0ZSgidHlwZSIsImNoZWNrYm94Iik7dmFyIGMsZD0wO2IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ZCsrLGM9Y3x8ImNsaWNrIn0pLGIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2QrKyxjPWN8fCJjaGFuZ2UifSk7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTtlLmluaXRNb3VzZUV2ZW50KCJjbGljayIsITAsITAsd2luZG93LDAsMCwwLDAsMCwhMSwhMSwhMSwhMSwwLG51bGwpLGIuZGlzcGF0Y2hFdmVudChlKSx1PTE9PWQ/ImNoYW5nZSI6Y30oKSxIVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKGEsYyxlKXtpZigidmFsdWUiIT09YSYmImNoZWNrZWQiIT09YSlyZXR1cm4gSFRNTEVsZW1lbnQucHJvdG90eXBlLmJpbmQuY2FsbCh0aGlzLGEsYyxlKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZShhKTt2YXIgZj0iY2hlY2tlZCI9PWE/bjpkLGc9ImNoZWNrZWQiPT1hP3A6bDtpZihlKXJldHVybiBqKHRoaXMsYSxjLGYpO3ZhciBoPWMsaT1tKHRoaXMsYSxoLGcpO3JldHVybiBqKHRoaXMsYSxoLm9wZW4oayh0aGlzLGEsZikpLGYpLGIodGhpcyxhLGkpfSxIVE1MVGV4dEFyZWFFbGVtZW50LnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKGEsYixjKXtpZigidmFsdWUiIT09YSlyZXR1cm4gSFRNTEVsZW1lbnQucHJvdG90eXBlLmJpbmQuY2FsbCh0aGlzLGEsYixjKTtpZih0aGlzLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSxjKXJldHVybiBqKHRoaXMsInZhbHVlIixiKTt2YXIgZT1iLGY9bSh0aGlzLCJ2YWx1ZSIsZSk7cmV0dXJuIGoodGhpcywidmFsdWUiLGUub3BlbihrKHRoaXMsInZhbHVlIixkKSkpLHQodGhpcyxhLGYpfSxIVE1MT3B0aW9uRWxlbWVudC5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihhLGIsYyl7aWYoInZhbHVlIiE9PWEpcmV0dXJuIEhUTUxFbGVtZW50LnByb3RvdHlwZS5iaW5kLmNhbGwodGhpcyxhLGIsYyk7aWYodGhpcy5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIiksYylyZXR1cm4gcSh0aGlzLGIpO3ZhciBkPWIsZT1tKHRoaXMsInZhbHVlIixkKTsKIHJldHVybiBxKHRoaXMsZC5vcGVuKHIodGhpcykpKSx0KHRoaXMsYSxlKX0sSFRNTFNlbGVjdEVsZW1lbnQucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oYSxjLGQpe2lmKCJzZWxlY3RlZGluZGV4Ij09PWEmJihhPSJzZWxlY3RlZEluZGV4IiksInNlbGVjdGVkSW5kZXgiIT09YSYmInZhbHVlIiE9PWEpcmV0dXJuIEhUTUxFbGVtZW50LnByb3RvdHlwZS5iaW5kLmNhbGwodGhpcyxhLGMsZCk7aWYodGhpcy5yZW1vdmVBdHRyaWJ1dGUoYSksZClyZXR1cm4gaih0aGlzLGEsYyk7dmFyIGU9YyxmPW0odGhpcyxhLGUpO3JldHVybiBqKHRoaXMsYSxlLm9wZW4oayh0aGlzLGEpKSksYih0aGlzLGEsZil9fSh0aGlzKSxmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihhKXtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBjKGEpe2Zvcih2YXIgYjtiPWEucGFyZW50Tm9kZTspYT1iO3JldHVybiBhfWZ1bmN0aW9uIGQoYSxiKXtpZihiKXtmb3IodmFyIGQsZT0iIyIrYjshZCYmKGE9YyhhKSxhLnByb3RvQ29udGVudF8/ZD1hLnByb3RvQ29udGVudF8ucXVlcnlTZWxlY3RvcihlKTphLmdldEVsZW1lbnRCeUlkJiYoZD1hLmdldEVsZW1lbnRCeUlkKGIpKSwhZCYmYS50ZW1wbGF0ZUNyZWF0b3JfKTspYT1hLnRlbXBsYXRlQ3JlYXRvcl87cmV0dXJuIGR9fWZ1bmN0aW9uIGUoYSl7cmV0dXJuInRlbXBsYXRlIj09YS50YWdOYW1lJiYiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPT1hLm5hbWVzcGFjZVVSSX1mdW5jdGlvbiBmKGEpe3JldHVybiJURU1QTEFURSI9PWEudGFnTmFtZSYmImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT1hLm5hbWVzcGFjZVVSSX1mdW5jdGlvbiBnKGEpe3JldHVybiBCb29sZWFuKExbYS50YWdOYW1lXSYmYS5oYXNBdHRyaWJ1dGUoInRlbXBsYXRlIikpfWZ1bmN0aW9uIGgoYSl7cmV0dXJuIHZvaWQgMD09PWEuaXNUZW1wbGF0ZV8mJihhLmlzVGVtcGxhdGVfPSJURU1QTEFURSI9PWEudGFnTmFtZXx8ZyhhKSksYS5pc1RlbXBsYXRlX31mdW5jdGlvbiBpKGEsYil7dmFyIGM9YS5xdWVyeVNlbGVjdG9yQWxsKE4pO2goYSkmJmIoYSksRyhjLGIpfWZ1bmN0aW9uIGooYSl7ZnVuY3Rpb24gYihhKXtIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlKGEpfHxqKGEuY29udGVudCl9aShhLGIpfWZ1bmN0aW9uIGsoYSxiKXtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGMsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpKX0pfWZ1bmN0aW9uIGwoYSl7dmFyIGI9YS5vd25lckRvY3VtZW50O2lmKCFiLmRlZmF1bHRWaWV3KXJldHVybiBiO3ZhciBjPWIudGVtcGxhdGVDb250ZW50c093bmVyXztpZighYyl7Zm9yKGM9Yi5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO2MubGFzdENoaWxkOyljLnJlbW92ZUNoaWxkKGMubGFzdENoaWxkKTtiLnRlbXBsYXRlQ29udGVudHNPd25lcl89Y31yZXR1cm4gY31mdW5jdGlvbiBtKGEpe2lmKCFhLnN0YWdpbmdEb2N1bWVudF8pe3ZhciBiPWEub3duZXJEb2N1bWVudDtpZighYi5zdGFnaW5nRG9jdW1lbnRfKXtiLnN0YWdpbmdEb2N1bWVudF89Yi5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLGIuc3RhZ2luZ0RvY3VtZW50Xy5pc1N0YWdpbmdEb2N1bWVudD0hMDt2YXIgYz1iLnN0YWdpbmdEb2N1bWVudF8uY3JlYXRlRWxlbWVudCgiYmFzZSIpO2MuaHJlZj1kb2N1bWVudC5iYXNlVVJJLGIuc3RhZ2luZ0RvY3VtZW50Xy5oZWFkLmFwcGVuZENoaWxkKGMpLGIuc3RhZ2luZ0RvY3VtZW50Xy5zdGFnaW5nRG9jdW1lbnRfPWIuc3RhZ2luZ0RvY3VtZW50X31hLnN0YWdpbmdEb2N1bWVudF89Yi5zdGFnaW5nRG9jdW1lbnRffXJldHVybiBhLnN0YWdpbmdEb2N1bWVudF99ZnVuY3Rpb24gbihhKXt2YXIgYj1hLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTthLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsYSk7Zm9yKHZhciBjPWEuYXR0cmlidXRlcyxkPWMubGVuZ3RoO2QtLT4wOyl7dmFyIGU9Y1tkXTtLW2UubmFtZV0mJigidGVtcGxhdGUiIT09ZS5uYW1lJiZiLnNldEF0dHJpYnV0ZShlLm5hbWUsZS52YWx1ZSksYS5yZW1vdmVBdHRyaWJ1dGUoZS5uYW1lKSl9cmV0dXJuIGJ9ZnVuY3Rpb24gbyhhKXt2YXIgYj1hLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTthLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsYSk7Zm9yKHZhciBjPWEuYXR0cmlidXRlcyxkPWMubGVuZ3RoO2QtLT4wOyl7dmFyIGU9Y1tkXTtiLnNldEF0dHJpYnV0ZShlLm5hbWUsZS52YWx1ZSksYS5yZW1vdmVBdHRyaWJ1dGUoZS5uYW1lKX1yZXR1cm4gYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpLGJ9ZnVuY3Rpb24gcChhLGIsYyl7dmFyIGQ9YS5jb250ZW50O2lmKGMpcmV0dXJuIHZvaWQgZC5hcHBlbmRDaGlsZChiKTtmb3IodmFyIGU7ZT1iLmZpcnN0Q2hpbGQ7KWQuYXBwZW5kQ2hpbGQoZSl9ZnVuY3Rpb24gcShhKXtQP2EuX19wcm90b19fPUhUTUxUZW1wbGF0ZUVsZW1lbnQucHJvdG90eXBlOmsoYSxIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZSl9ZnVuY3Rpb24gcihhKXthLnNldE1vZGVsRm5ffHwoYS5zZXRNb2RlbEZuXz1mdW5jdGlvbigpe2Euc2V0TW9kZWxGblNjaGVkdWxlZF89ITE7dmFyIGI9eihhLGEuZGVsZWdhdGVfJiZhLmRlbGVnYXRlXy5wcmVwYXJlQmluZGluZyk7dyhhLGIsYS5tb2RlbF8pfSksYS5zZXRNb2RlbEZuU2NoZWR1bGVkX3x8KGEuc2V0TW9kZWxGblNjaGVkdWxlZF89ITAsT2JzZXJ2ZXIucnVuRU9NXyhhLnNldE1vZGVsRm5fKSl9ZnVuY3Rpb24gcyhhLGIsYyxkKXtpZihhJiZhLmxlbmd0aCl7Zm9yKHZhciBlLGY9YS5sZW5ndGgsZz0wLGg9MCxpPTAsaj0hMDtmPmg7KXt2YXIgZz1hLmluZGV4T2YoInt7IixoKSxrPWEuaW5kZXhPZigiW1siLGgpLGw9ITEsbT0ifX0iO2lmKGs+PTAmJigwPmd8fGc+aykmJihnPWssbD0hMCxtPSJdXSIpLGk9MD5nPy0xOmEuaW5kZXhPZihtLGcrMiksMD5pKXtpZighZSlyZXR1cm47ZS5wdXNoKGEuc2xpY2UoaCkpO2JyZWFrfWU9ZXx8W10sZS5wdXNoKGEuc2xpY2UoaCxnKSk7dmFyIG49YS5zbGljZShnKzIsaSkudHJpbSgpO2UucHVzaChsKSxqPWomJmw7dmFyIG89ZCYmZChuLGIsYyk7ZS5wdXNoKG51bGw9PW8/UGF0aC5nZXQobik6bnVsbCksZS5wdXNoKG8pLGg9aSsyfXJldHVybiBoPT09ZiYmZS5wdXNoKCIiKSxlLmhhc09uZVBhdGg9NT09PWUubGVuZ3RoLGUuaXNTaW1wbGVQYXRoPWUuaGFzT25lUGF0aCYmIiI9PWVbMF0mJiIiPT1lWzRdLGUub25seU9uZVRpbWU9aixlLmNvbWJpbmF0b3I9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWVbMF0sYz0xO2M8ZS5sZW5ndGg7Yys9NCl7dmFyIGQ9ZS5oYXNPbmVQYXRoP2E6YVsoYy0xKS80XTt2b2lkIDAhPT1kJiYoYis9ZCksYis9ZVtjKzNdfXJldHVybiBifSxlfX1mdW5jdGlvbiB0KGEsYixjLGQpe2lmKGIuaGFzT25lUGF0aCl7dmFyIGU9YlszXSxmPWU/ZShkLGMsITApOmJbMl0uZ2V0VmFsdWVGcm9tKGQpO3JldHVybiBiLmlzU2ltcGxlUGF0aD9mOmIuY29tYmluYXRvcihmKX1mb3IodmFyIGc9W10saD0xO2g8Yi5sZW5ndGg7aCs9NCl7dmFyIGU9YltoKzJdO2dbKGgtMSkvNF09ZT9lKGQsYyk6YltoKzFdLmdldFZhbHVlRnJvbShkKX1yZXR1cm4gYi5jb21iaW5hdG9yKGcpfWZ1bmN0aW9uIHUoYSxiLGMsZCl7dmFyIGU9YlszXSxmPWU/ZShkLGMsITEpOm5ldyBQYXRoT2JzZXJ2ZXIoZCxiWzJdKTtyZXR1cm4gYi5pc1NpbXBsZVBhdGg/ZjpuZXcgT2JzZXJ2ZXJUcmFuc2Zvcm0oZixiLmNvbWJpbmF0b3IpfWZ1bmN0aW9uIHYoYSxiLGMsZCl7aWYoYi5vbmx5T25lVGltZSlyZXR1cm4gdChhLGIsYyxkKTtpZihiLmhhc09uZVBhdGgpcmV0dXJuIHUoYSxiLGMsZCk7Zm9yKHZhciBlPW5ldyBDb21wb3VuZE9ic2VydmVyLGY9MTtmPGIubGVuZ3RoO2YrPTQpe3ZhciBnPWJbZl0saD1iW2YrMl07aWYoaCl7dmFyIGk9aChkLGMsZyk7Zz9lLmFkZFBhdGgoaSk6ZS5hZGRPYnNlcnZlcihpKX1lbHNle3ZhciBqPWJbZisxXTtnP2UuYWRkUGF0aChqLmdldFZhbHVlRnJvbShkKSk6ZS5hZGRQYXRoKGQsail9fXJldHVybiBuZXcgT2JzZXJ2ZXJUcmFuc2Zvcm0oZSxiLmNvbWJpbmF0b3IpfWZ1bmN0aW9uIHcoYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKz0yKXt2YXIgZj1iW2VdLGc9YltlKzFdLGg9dihmLGcsYSxjKSxpPWEuYmluZChmLGgsZy5vbmx5T25lVGltZSk7aSYmZCYmZC5wdXNoKGkpfWlmKGEuYmluZEZpbmlzaGVkKCksYi5pc1RlbXBsYXRlKXthLm1vZGVsXz1jO3ZhciBqPWEucHJvY2Vzc0JpbmRpbmdEaXJlY3RpdmVzXyhiKTtkJiZqJiZkLnB1c2goail9fWZ1bmN0aW9uIHgoYSxiLGMpe3ZhciBkPWEuZ2V0QXR0cmlidXRlKGIpO3JldHVybiBzKCIiPT1kPyJ7e319IjpkLGIsYSxjKX1mdW5jdGlvbiB5KGEsYyl7YihhKTtmb3IodmFyIGQ9W10sZT0wO2U8YS5hdHRyaWJ1dGVzLmxlbmd0aDtlKyspe2Zvcih2YXIgZj1hLmF0dHJpYnV0ZXNbZV0sZz1mLm5hbWUsaT1mLnZhbHVlOyJfIj09PWdbMF07KWc9Zy5zdWJzdHJpbmcoMSk7aWYoIWgoYSl8fGchPT1KJiZnIT09SCYmZyE9PUkpe3ZhciBqPXMoaSxnLGEsYyk7aiYmZC5wdXNoKGcsail9fXJldHVybiBoKGEpJiYoZC5pc1RlbXBsYXRlPSEwLGRbImlmIl09eChhLEosYyksZC5iaW5kPXgoYSxILGMpLGQucmVwZWF0PXgoYSxJLGMpLCFkWyJpZiJdfHxkLmJpbmR8fGQucmVwZWF0fHwoZC5iaW5kPXMoInt7fX0iLEgsYSxjKSkpLGR9ZnVuY3Rpb24geihhLGIpe2lmKGEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4geShhLGIpO2lmKGEubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7dmFyIGM9cyhhLmRhdGEsInRleHRDb250ZW50IixhLGIpO2lmKGMpcmV0dXJuWyJ0ZXh0Q29udGVudCIsY119cmV0dXJuW119ZnVuY3Rpb24gQShhLGIsYyxkLGUsZixnKXtmb3IodmFyIGg9Yi5hcHBlbmRDaGlsZChjLmltcG9ydE5vZGUoYSwhMSkpLGk9MCxqPWEuZmlyc3RDaGlsZDtqO2o9ai5uZXh0U2libGluZylBKGosaCxjLGQuY2hpbGRyZW5baSsrXSxlLGYsZyk7cmV0dXJuIGQuaXNUZW1wbGF0ZSYmKEhUTUxUZW1wbGF0ZUVsZW1lbnQuZGVjb3JhdGUoaCxhKSxmJiZoLnNldERlbGVnYXRlXyhmKSksdyhoLGQsZSxnKSxofWZ1bmN0aW9uIEIoYSxiKXt2YXIgYz16KGEsYik7Yy5jaGlsZHJlbj17fTtmb3IodmFyIGQ9MCxlPWEuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyljLmNoaWxkcmVuW2QrK109QihlLGIpO3JldHVybiBjfWZ1bmN0aW9uIEMoYSl7dmFyIGI9YS5pZF87cmV0dXJuIGJ8fChiPWEuaWRfPVMrKyksYn1mdW5jdGlvbiBEKGEsYil7dmFyIGM9QyhhKTtpZihiKXt2YXIgZD1iLmJpbmRpbmdNYXBzW2NdO3JldHVybiBkfHwoZD1iLmJpbmRpbmdNYXBzW2NdPUIoYSxiLnByZXBhcmVCaW5kaW5nKXx8W10pLGR9dmFyIGQ9YS5iaW5kaW5nTWFwXztyZXR1cm4gZHx8KGQ9YS5iaW5kaW5nTWFwXz1CKGEsdm9pZCAwKXx8W10pLGR9ZnVuY3Rpb24gRShhKXt0aGlzLmNsb3NlZD0hMSx0aGlzLnRlbXBsYXRlRWxlbWVudF89YSx0aGlzLmluc3RhbmNlcz1bXSx0aGlzLmRlcHM9dm9pZCAwLHRoaXMuaXRlcmF0ZWRWYWx1ZT1bXSx0aGlzLnByZXNlbnRWYWx1ZT12b2lkIDAsdGhpcy5hcnJheU9ic2VydmVyPXZvaWQgMH12YXIgRixHPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwuYmluZChBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7YS5NYXAmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLk1hcC5wcm90b3R5cGUuZm9yRWFjaD9GPWEuTWFwOihGPWZ1bmN0aW9uKCl7dGhpcy5rZXlzPVtdLHRoaXMudmFsdWVzPVtdfSxGLnByb3RvdHlwZT17c2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5rZXlzLmluZGV4T2YoYSk7MD5jPyh0aGlzLmtleXMucHVzaChhKSx0aGlzLnZhbHVlcy5wdXNoKGIpKTp0aGlzLnZhbHVlc1tjXT1ifSxnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7aWYoISgwPmIpKXJldHVybiB0aGlzLnZhbHVlc1tiXX0sImRlbGV0ZSI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7cmV0dXJuIDA+Yj8hMToodGhpcy5rZXlzLnNwbGljZShiLDEpLHRoaXMudmFsdWVzLnNwbGljZShiLDEpLCEwKX0sZm9yRWFjaDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8dGhpcy5rZXlzLmxlbmd0aDtjKyspYS5jYWxsKGJ8fHRoaXMsdGhpcy52YWx1ZXNbY10sdGhpcy5rZXlzW2NdLHRoaXMpfX0pOyJmdW5jdGlvbiIhPXR5cGVvZiBkb2N1bWVudC5jb250YWlucyYmKERvY3VtZW50LnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gYT09PXRoaXN8fGEucGFyZW50Tm9kZT09PXRoaXM/ITA6dGhpcy5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMoYSl9KTt2YXIgSD0iYmluZCIsST0icmVwZWF0IixKPSJpZiIsSz17dGVtcGxhdGU6ITAscmVwZWF0OiEwLGJpbmQ6ITAscmVmOiEwLCJpZiI6ITB9LEw9e1RIRUFEOiEwLFRCT0RZOiEwLFRGT09UOiEwLFRIOiEwLFRSOiEwLFREOiEwLENPTEdST1VQOiEwLENPTDohMCxDQVBUSU9OOiEwLE9QVElPTjohMCxPUFRHUk9VUDohMH0sTT0idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxUZW1wbGF0ZUVsZW1lbnQ7TSYmIWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKSxiPWEuY29udGVudC5vd25lckRvY3VtZW50LGM9Yi5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsZW1lbnQoImh0bWwiKSksZD1jLmFwcGVuZENoaWxkKGIuY3JlYXRlRWxlbWVudCgiaGVhZCIpKSxlPWIuY3JlYXRlRWxlbWVudCgiYmFzZSIpO2UuaHJlZj1kb2N1bWVudC5iYXNlVVJJLGQuYXBwZW5kQ2hpbGQoZSl9KCk7dmFyIE49InRlbXBsYXRlLCAiK09iamVjdC5rZXlzKEwpLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpKyJbdGVtcGxhdGVdIn0pLmpvaW4oIiwgIik7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXtqKGRvY3VtZW50KSxQbGF0Zm9ybS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpfSwhMSksTXx8KGEuSFRNTFRlbXBsYXRlRWxlbWVudD1mdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcigiSWxsZWdhbCBjb25zdHJ1Y3RvciIpfSk7dmFyIE8sUD0iX19wcm90b19fImlue307ImZ1bmN0aW9uIj09dHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXImJihPPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0udGFyZ2V0LnJlZkNoYW5nZWRfKCl9KSksSFRNTFRlbXBsYXRlRWxlbWVudC5kZWNvcmF0ZT1mdW5jdGlvbihhLGMpe2lmKGEudGVtcGxhdGVJc0RlY29yYXRlZF8pcmV0dXJuITE7dmFyIGQ9YTtkLnRlbXBsYXRlSXNEZWNvcmF0ZWRfPSEwO3ZhciBoPWYoZCkmJk0saT1oLGs9IWgsbT0hMTtpZihofHwoZyhkKT8oYighYyksZD1uKGEpLGQudGVtcGxhdGVJc0RlY29yYXRlZF89ITAsaD1NLG09ITApOmUoZCkmJihkPW8oYSksZC50ZW1wbGF0ZUlzRGVjb3JhdGVkXz0hMCxoPU0pKSwhaCl7cShkKTt2YXIgcj1sKGQpO2QuY29udGVudF89ci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCl9cmV0dXJuIGM/ZC5pbnN0YW5jZVJlZl89YzprP3AoZCxhLG0pOmkmJmooZC5jb250ZW50KSwhMH0sSFRNTFRlbXBsYXRlRWxlbWVudC5ib290c3RyYXA9ajt2YXIgUT1hLkhUTUxVbmtub3duRWxlbWVudHx8SFRNTEVsZW1lbnQsUj17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudF99LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfTtNfHwoSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShRLnByb3RvdHlwZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEhUTUxUZW1wbGF0ZUVsZW1lbnQucHJvdG90eXBlLCJjb250ZW50IixSKSksayhIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZSx7YmluZDpmdW5jdGlvbihhLGIsYyl7aWYoInJlZiIhPWEpcmV0dXJuIEVsZW1lbnQucHJvdG90eXBlLmJpbmQuY2FsbCh0aGlzLGEsYixjKTt2YXIgZD10aGlzLGU9Yz9iOmIub3BlbihmdW5jdGlvbihhKXtkLnNldEF0dHJpYnV0ZSgicmVmIixhKSxkLnJlZkNoYW5nZWRfKCl9KTtyZXR1cm4gdGhpcy5zZXRBdHRyaWJ1dGUoInJlZiIsZSksdGhpcy5yZWZDaGFuZ2VkXygpLGM/dm9pZCAwOih0aGlzLmJpbmRpbmdzXz90aGlzLmJpbmRpbmdzXy5yZWY9Yjp0aGlzLmJpbmRpbmdzXz17cmVmOmJ9LGIpfSxwcm9jZXNzQmluZGluZ0RpcmVjdGl2ZXNfOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yXyYmdGhpcy5pdGVyYXRvcl8uY2xvc2VEZXBzKCksYVsiaWYiXXx8YS5iaW5kfHxhLnJlcGVhdD8odGhpcy5pdGVyYXRvcl98fCh0aGlzLml0ZXJhdG9yXz1uZXcgRSh0aGlzKSksdGhpcy5pdGVyYXRvcl8udXBkYXRlRGVwZW5kZW5jaWVzKGEsdGhpcy5tb2RlbF8pLE8mJk8ub2JzZXJ2ZSh0aGlzLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInJlZiJdfSksdGhpcy5pdGVyYXRvcl8pOnZvaWQodGhpcy5pdGVyYXRvcl8mJih0aGlzLml0ZXJhdG9yXy5jbG9zZSgpLHRoaXMuaXRlcmF0b3JfPXZvaWQgMCkpfSxjcmVhdGVJbnN0YW5jZTpmdW5jdGlvbihhLGIsYyl7Yj9jPXRoaXMubmV3RGVsZWdhdGVfKGIpOmN8fChjPXRoaXMuZGVsZWdhdGVfKSx0aGlzLnJlZkNvbnRlbnRffHwodGhpcy5yZWZDb250ZW50Xz10aGlzLnJlZl8uY29udGVudCk7dmFyIGQ9dGhpcy5yZWZDb250ZW50XztpZihudWxsPT09ZC5maXJzdENoaWxkKXJldHVybiBUO3ZhciBlPUQoZCxjKSxmPW0odGhpcyksZz1mLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtnLnRlbXBsYXRlQ3JlYXRvcl89dGhpcyxnLnByb3RvQ29udGVudF89ZCxnLmJpbmRpbmdzXz1bXSxnLnRlcm1pbmF0b3JfPW51bGw7Zm9yKHZhciBoPWcudGVtcGxhdGVJbnN0YW5jZV89e2ZpcnN0Tm9kZTpudWxsLGxhc3ROb2RlOm51bGwsbW9kZWw6YX0saT0wLGo9ITEsaz1kLmZpcnN0Q2hpbGQ7aztrPWsubmV4dFNpYmxpbmcpe251bGw9PT1rLm5leHRTaWJsaW5nJiYoaj0hMCk7dmFyIGw9QShrLGcsZixlLmNoaWxkcmVuW2krK10sYSxjLGcuYmluZGluZ3NfKTtsLnRlbXBsYXRlSW5zdGFuY2VfPWgsaiYmKGcudGVybWluYXRvcl89bCl9cmV0dXJuIGguZmlyc3ROb2RlPWcuZmlyc3RDaGlsZCxoLmxhc3ROb2RlPWcubGFzdENoaWxkLGcudGVtcGxhdGVDcmVhdG9yXz12b2lkIDAsZy5wcm90b0NvbnRlbnRfPXZvaWQgMCxnfSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5tb2RlbF99LHNldCBtb2RlbChhKXt0aGlzLm1vZGVsXz1hLHIodGhpcyl9LGdldCBiaW5kaW5nRGVsZWdhdGUoKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZV8mJnRoaXMuZGVsZWdhdGVfLnJhd30scmVmQ2hhbmdlZF86ZnVuY3Rpb24oKXt0aGlzLml0ZXJhdG9yXyYmdGhpcy5yZWZDb250ZW50XyE9PXRoaXMucmVmXy5jb250ZW50JiYodGhpcy5yZWZDb250ZW50Xz12b2lkIDAsdGhpcy5pdGVyYXRvcl8udmFsdWVDaGFuZ2VkKCksdGhpcy5pdGVyYXRvcl8udXBkYXRlSXRlcmF0ZWRWYWx1ZSh0aGlzLml0ZXJhdG9yXy5nZXRVcGRhdGVkVmFsdWUoKSkpfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMubW9kZWxfPXZvaWQgMCx0aGlzLmRlbGVnYXRlXz12b2lkIDAsdGhpcy5iaW5kaW5nc18mJnRoaXMuYmluZGluZ3NfLnJlZiYmdGhpcy5iaW5kaW5nc18ucmVmLmNsb3NlKCksdGhpcy5yZWZDb250ZW50Xz12b2lkIDAsdGhpcy5pdGVyYXRvcl8mJih0aGlzLml0ZXJhdG9yXy52YWx1ZUNoYW5nZWQoKSx0aGlzLml0ZXJhdG9yXy5jbG9zZSgpLHRoaXMuaXRlcmF0b3JfPXZvaWQgMCl9LHNldERlbGVnYXRlXzpmdW5jdGlvbihhKXt0aGlzLmRlbGVnYXRlXz1hLHRoaXMuYmluZGluZ01hcF89dm9pZCAwLHRoaXMuaXRlcmF0b3JfJiYodGhpcy5pdGVyYXRvcl8uaW5zdGFuY2VQb3NpdGlvbkNoYW5nZWRGbl89dm9pZCAwLHRoaXMuaXRlcmF0b3JfLmluc3RhbmNlTW9kZWxGbl89dm9pZCAwKX0sbmV3RGVsZWdhdGVfOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYil7dmFyIGM9YSYmYVtiXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYylyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYy5hcHBseShhLGFyZ3VtZW50cyl9fWlmKGEpcmV0dXJue2JpbmRpbmdNYXBzOnt9LHJhdzphLHByZXBhcmVCaW5kaW5nOmIoInByZXBhcmVCaW5kaW5nIikscHJlcGFyZUluc3RhbmNlTW9kZWw6YigicHJlcGFyZUluc3RhbmNlTW9kZWwiKSxwcmVwYXJlSW5zdGFuY2VQb3NpdGlvbkNoYW5nZWQ6YigicHJlcGFyZUluc3RhbmNlUG9zaXRpb25DaGFuZ2VkIil9fSxzZXQgYmluZGluZ0RlbGVnYXRlKGEpe2lmKHRoaXMuZGVsZWdhdGVfKXRocm93IEVycm9yKCJUZW1wbGF0ZSBtdXN0IGJlIGNsZWFyZWQgYmVmb3JlIGEgbmV3IGJpbmRpbmdEZWxlZ2F0ZSBjYW4gYmUgYXNzaWduZWQiKTt0aGlzLnNldERlbGVnYXRlXyh0aGlzLm5ld0RlbGVnYXRlXyhhKSl9LGdldCByZWZfKCl7dmFyIGE9ZCh0aGlzLHRoaXMuZ2V0QXR0cmlidXRlKCJyZWYiKSk7aWYoYXx8KGE9dGhpcy5pbnN0YW5jZVJlZl8pLCFhKXJldHVybiB0aGlzO3ZhciBiPWEucmVmXztyZXR1cm4gYj9iOmF9fSk7dmFyIFM9MTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsInRlbXBsYXRlSW5zdGFuY2UiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnRlbXBsYXRlSW5zdGFuY2VfO3JldHVybiBhP2E6dGhpcy5wYXJlbnROb2RlP3RoaXMucGFyZW50Tm9kZS50ZW1wbGF0ZUluc3RhbmNlOnZvaWQgMH19KTt2YXIgVD1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7VC5iaW5kaW5nc189W10sVC50ZXJtaW5hdG9yXz1udWxsLEUucHJvdG90eXBlPXtjbG9zZURlcHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmRlcHM7YSYmKGEuaWZPbmVUaW1lPT09ITEmJmEuaWZWYWx1ZS5jbG9zZSgpLGEub25lVGltZT09PSExJiZhLnZhbHVlLmNsb3NlKCkpfSx1cGRhdGVEZXBlbmRlbmNpZXM6ZnVuY3Rpb24oYSxiKXt0aGlzLmNsb3NlRGVwcygpO3ZhciBjPXRoaXMuZGVwcz17fSxkPXRoaXMudGVtcGxhdGVFbGVtZW50XyxlPSEwO2lmKGFbImlmIl0pe2lmKGMuaGFzSWY9ITAsYy5pZk9uZVRpbWU9YVsiaWYiXS5vbmx5T25lVGltZSxjLmlmVmFsdWU9dihKLGFbImlmIl0sZCxiKSxlPWMuaWZWYWx1ZSxjLmlmT25lVGltZSYmIWUpcmV0dXJuIHZvaWQgdGhpcy52YWx1ZUNoYW5nZWQoKTtjLmlmT25lVGltZXx8KGU9ZS5vcGVuKHRoaXMudXBkYXRlSWZWYWx1ZSx0aGlzKSl9YS5yZXBlYXQ/KGMucmVwZWF0PSEwLGMub25lVGltZT1hLnJlcGVhdC5vbmx5T25lVGltZSxjLnZhbHVlPXYoSSxhLnJlcGVhdCxkLGIpKTooYy5yZXBlYXQ9ITEsYy5vbmVUaW1lPWEuYmluZC5vbmx5T25lVGltZSxjLnZhbHVlPXYoSCxhLmJpbmQsZCxiKSk7dmFyIGY9Yy52YWx1ZTtyZXR1cm4gYy5vbmVUaW1lfHwoZj1mLm9wZW4odGhpcy51cGRhdGVJdGVyYXRlZFZhbHVlLHRoaXMpKSxlP3ZvaWQgdGhpcy51cGRhdGVWYWx1ZShmKTp2b2lkIHRoaXMudmFsdWVDaGFuZ2VkKCl9LGdldFVwZGF0ZWRWYWx1ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZGVwcy52YWx1ZTtyZXR1cm4gdGhpcy5kZXBzLm9uZVRpbWV8fChhPWEuZGlzY2FyZENoYW5nZXMoKSksYX0sdXBkYXRlSWZWYWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gYT92b2lkIHRoaXMudXBkYXRlVmFsdWUodGhpcy5nZXRVcGRhdGVkVmFsdWUoKSk6dm9pZCB0aGlzLnZhbHVlQ2hhbmdlZCgpfSx1cGRhdGVJdGVyYXRlZFZhbHVlOmZ1bmN0aW9uKGEpe2lmKHRoaXMuZGVwcy5oYXNJZil7dmFyIGI9dGhpcy5kZXBzLmlmVmFsdWU7aWYodGhpcy5kZXBzLmlmT25lVGltZXx8KGI9Yi5kaXNjYXJkQ2hhbmdlcygpKSwhYilyZXR1cm4gdm9pZCB0aGlzLnZhbHVlQ2hhbmdlZCgpfXRoaXMudXBkYXRlVmFsdWUoYSl9LHVwZGF0ZVZhbHVlOmZ1bmN0aW9uKGEpe3RoaXMuZGVwcy5yZXBlYXR8fChhPVthXSk7dmFyIGI9dGhpcy5kZXBzLnJlcGVhdCYmIXRoaXMuZGVwcy5vbmVUaW1lJiZBcnJheS5pc0FycmF5KGEpO3RoaXMudmFsdWVDaGFuZ2VkKGEsYil9LHZhbHVlQ2hhbmdlZDpmdW5jdGlvbihhLGIpe0FycmF5LmlzQXJyYXkoYSl8fChhPVtdKSxhIT09dGhpcy5pdGVyYXRlZFZhbHVlJiYodGhpcy51bm9ic2VydmUoKSx0aGlzLnByZXNlbnRWYWx1ZT1hLGImJih0aGlzLmFycmF5T2JzZXJ2ZXI9bmV3IEFycmF5T2JzZXJ2ZXIodGhpcy5wcmVzZW50VmFsdWUpLHRoaXMuYXJyYXlPYnNlcnZlci5vcGVuKHRoaXMuaGFuZGxlU3BsaWNlcyx0aGlzKSksdGhpcy5oYW5kbGVTcGxpY2VzKEFycmF5T2JzZXJ2ZXIuY2FsY3VsYXRlU3BsaWNlcyh0aGlzLnByZXNlbnRWYWx1ZSx0aGlzLml0ZXJhdGVkVmFsdWUpKSl9LGdldExhc3RJbnN0YW5jZU5vZGU6ZnVuY3Rpb24oYSl7aWYoLTE9PWEpcmV0dXJuIHRoaXMudGVtcGxhdGVFbGVtZW50Xzt2YXIgYj10aGlzLmluc3RhbmNlc1thXSxjPWIudGVybWluYXRvcl87aWYoIWMpcmV0dXJuIHRoaXMuZ2V0TGFzdEluc3RhbmNlTm9kZShhLTEpO2lmKGMubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERXx8dGhpcy50ZW1wbGF0ZUVsZW1lbnRfPT09YylyZXR1cm4gYzt2YXIgZD1jLml0ZXJhdG9yXztyZXR1cm4gZD9kLmdldExhc3RUZW1wbGF0ZU5vZGUoKTpjfSxnZXRMYXN0VGVtcGxhdGVOb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdEluc3RhbmNlTm9kZSh0aGlzLmluc3RhbmNlcy5sZW5ndGgtMSl9LGluc2VydEluc3RhbmNlQXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmdldExhc3RJbnN0YW5jZU5vZGUoYS0xKSxkPXRoaXMudGVtcGxhdGVFbGVtZW50Xy5wYXJlbnROb2RlO3RoaXMuaW5zdGFuY2VzLnNwbGljZShhLDAsYiksZC5pbnNlcnRCZWZvcmUoYixjLm5leHRTaWJsaW5nKX0sZXh0cmFjdEluc3RhbmNlQXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMuZ2V0TGFzdEluc3RhbmNlTm9kZShhLTEpLGM9dGhpcy5nZXRMYXN0SW5zdGFuY2VOb2RlKGEpLGQ9dGhpcy50ZW1wbGF0ZUVsZW1lbnRfLnBhcmVudE5vZGUsZT10aGlzLmluc3RhbmNlcy5zcGxpY2UoYSwxKVswXTtjIT09Yjspe3ZhciBmPWIubmV4dFNpYmxpbmc7Zj09YyYmKGM9YiksZS5hcHBlbmRDaGlsZChkLnJlbW92ZUNoaWxkKGYpKX1yZXR1cm4gZX0sZ2V0RGVsZWdhdGVGbjpmdW5jdGlvbihhKXtyZXR1cm4gYT1hJiZhKHRoaXMudGVtcGxhdGVFbGVtZW50XyksImZ1bmN0aW9uIj09dHlwZW9mIGE/YTpudWxsfSxoYW5kbGVTcGxpY2VzOmZ1bmN0aW9uKGEpe2lmKCF0aGlzLmNsb3NlZCYmYS5sZW5ndGgpe3ZhciBiPXRoaXMudGVtcGxhdGVFbGVtZW50XztpZighYi5wYXJlbnROb2RlKXJldHVybiB2b2lkIHRoaXMuY2xvc2UoKTtBcnJheU9ic2VydmVyLmFwcGx5U3BsaWNlcyh0aGlzLml0ZXJhdGVkVmFsdWUsdGhpcy5wcmVzZW50VmFsdWUsYSk7dmFyIGM9Yi5kZWxlZ2F0ZV87dm9pZCAwPT09dGhpcy5pbnN0YW5jZU1vZGVsRm5fJiYodGhpcy5pbnN0YW5jZU1vZGVsRm5fPXRoaXMuZ2V0RGVsZWdhdGVGbihjJiZjLnByZXBhcmVJbnN0YW5jZU1vZGVsKSksdm9pZCAwPT09dGhpcy5pbnN0YW5jZVBvc2l0aW9uQ2hhbmdlZEZuXyYmKHRoaXMuaW5zdGFuY2VQb3NpdGlvbkNoYW5nZWRGbl89dGhpcy5nZXREZWxlZ2F0ZUZuKGMmJmMucHJlcGFyZUluc3RhbmNlUG9zaXRpb25DaGFuZ2VkKSk7Zm9yKHZhciBkPW5ldyBGLGU9MCxmPTA7ZjxhLmxlbmd0aDtmKyspe2Zvcih2YXIgZz1hW2ZdLGg9Zy5yZW1vdmVkLGk9MDtpPGgubGVuZ3RoO2krKyl7dmFyIGo9aFtpXSxrPXRoaXMuZXh0cmFjdEluc3RhbmNlQXQoZy5pbmRleCtlKTtrIT09VCYmZC5zZXQoaixrKX1lLT1nLmFkZGVkQ291bnR9Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspZm9yKHZhciBnPWFbZl0sbD1nLmluZGV4O2w8Zy5pbmRleCtnLmFkZGVkQ291bnQ7bCsrKXt2YXIgaj10aGlzLml0ZXJhdGVkVmFsdWVbbF0saz1kLmdldChqKTtrP2RbImRlbGV0ZSJdKGopOih0aGlzLmluc3RhbmNlTW9kZWxGbl8mJihqPXRoaXMuaW5zdGFuY2VNb2RlbEZuXyhqKSksaz12b2lkIDA9PT1qP1Q6Yi5jcmVhdGVJbnN0YW5jZShqLHZvaWQgMCxjKSksdGhpcy5pbnNlcnRJbnN0YW5jZUF0KGwsayl9ZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3RoaXMuY2xvc2VJbnN0YW5jZUJpbmRpbmdzKGEpfSx0aGlzKSx0aGlzLmluc3RhbmNlUG9zaXRpb25DaGFuZ2VkRm5fJiZ0aGlzLnJlcG9ydEluc3RhbmNlc01vdmVkKGEpfX0scmVwb3J0SW5zdGFuY2VNb3ZlZDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmluc3RhbmNlc1thXTtiIT09VCYmdGhpcy5pbnN0YW5jZVBvc2l0aW9uQ2hhbmdlZEZuXyhiLnRlbXBsYXRlSW5zdGFuY2VfLGEpfSxyZXBvcnRJbnN0YW5jZXNNb3ZlZDpmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hW2RdO2lmKDAhPWMpZm9yKDtiPGUuaW5kZXg7KXRoaXMucmVwb3J0SW5zdGFuY2VNb3ZlZChiKSxiKys7ZWxzZSBiPWUuaW5kZXg7Zm9yKDtiPGUuaW5kZXgrZS5hZGRlZENvdW50Oyl0aGlzLnJlcG9ydEluc3RhbmNlTW92ZWQoYiksYisrO2MrPWUuYWRkZWRDb3VudC1lLnJlbW92ZWQubGVuZ3RofWlmKDAhPWMpZm9yKHZhciBmPXRoaXMuaW5zdGFuY2VzLmxlbmd0aDtmPmI7KXRoaXMucmVwb3J0SW5zdGFuY2VNb3ZlZChiKSxiKyt9LGNsb3NlSW5zdGFuY2VCaW5kaW5nczpmdW5jdGlvbihhKXtmb3IodmFyIGI9YS5iaW5kaW5nc18sYz0wO2M8Yi5sZW5ndGg7YysrKWJbY10uY2xvc2UoKX0sdW5vYnNlcnZlOmZ1bmN0aW9uKCl7dGhpcy5hcnJheU9ic2VydmVyJiYodGhpcy5hcnJheU9ic2VydmVyLmNsb3NlKCksdGhpcy5hcnJheU9ic2VydmVyPXZvaWQgMCl9LGNsb3NlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt0aGlzLnVub2JzZXJ2ZSgpO2Zvcih2YXIgYT0wO2E8dGhpcy5pbnN0YW5jZXMubGVuZ3RoO2ErKyl0aGlzLmNsb3NlSW5zdGFuY2VCaW5kaW5ncyh0aGlzLmluc3RhbmNlc1thXSk7dGhpcy5pbnN0YW5jZXMubGVuZ3RoPTAsdGhpcy5jbG9zZURlcHMoKSx0aGlzLnRlbXBsYXRlRWxlbWVudF8uaXRlcmF0b3JfPXZvaWQgMCx0aGlzLmNsb3NlZD0hMH19fSxIVE1MVGVtcGxhdGVFbGVtZW50LmZvckFsbFRlbXBsYXRlc0Zyb21fPWl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGEpe3JldHVybiB2b2lkIDAhPT1tW2FdfWZ1bmN0aW9uIGMoKXtoLmNhbGwodGhpcyksdGhpcy5faXNJbnZhbGlkPSEwfWZ1bmN0aW9uIGQoYSl7cmV0dXJuIiI9PWEmJmMuY2FsbCh0aGlzKSxhLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZShhKXt2YXIgYj1hLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGI+MzImJjEyNz5iJiYtMT09WzM0LDM1LDYwLDYyLDYzLDk2XS5pbmRleE9mKGIpP2E6ZW5jb2RlVVJJQ29tcG9uZW50KGEpfWZ1bmN0aW9uIGYoYSl7dmFyIGI9YS5jaGFyQ29kZUF0KDApO3JldHVybiBiPjMyJiYxMjc+YiYmLTE9PVszNCwzNSw2MCw2Miw5Nl0uaW5kZXhPZihiKT9hOmVuY29kZVVSSUNvbXBvbmVudChhKX1mdW5jdGlvbiBnKGEsZyxoKXtmdW5jdGlvbiBpKGEpe3QucHVzaChhKX12YXIgaj1nfHwic2NoZW1lIHN0YXJ0IixrPTAsbD0iIixyPSExLHM9ITEsdD1bXTthOmZvcig7KGFbay0xXSE9b3x8MD09aykmJiF0aGlzLl9pc0ludmFsaWQ7KXt2YXIgdT1hW2tdO3N3aXRjaChqKXtjYXNlInNjaGVtZSBzdGFydCI6aWYoIXV8fCFwLnRlc3QodSkpe2lmKGcpe2koIkludmFsaWQgc2NoZW1lLiIpO2JyZWFrIGF9bD0iIixqPSJubyBzY2hlbWUiO2NvbnRpbnVlfWwrPXUudG9Mb3dlckNhc2UoKSxqPSJzY2hlbWUiO2JyZWFrO2Nhc2Uic2NoZW1lIjppZih1JiZxLnRlc3QodSkpbCs9dS50b0xvd2VyQ2FzZSgpO2Vsc2V7aWYoIjoiIT11KXtpZihnKXtpZihvPT11KWJyZWFrIGE7aSgiQ29kZSBwb2ludCBub3QgYWxsb3dlZCBpbiBzY2hlbWU6ICIrdSk7YnJlYWsgYX1sPSIiLGs9MCxqPSJubyBzY2hlbWUiO2NvbnRpbnVlfWlmKHRoaXMuX3NjaGVtZT1sLGw9IiIsZylicmVhayBhO2IodGhpcy5fc2NoZW1lKSYmKHRoaXMuX2lzUmVsYXRpdmU9ITApLGo9ImZpbGUiPT10aGlzLl9zY2hlbWU/InJlbGF0aXZlIjp0aGlzLl9pc1JlbGF0aXZlJiZoJiZoLl9zY2hlbWU9PXRoaXMuX3NjaGVtZT8icmVsYXRpdmUgb3IgYXV0aG9yaXR5Ijp0aGlzLl9pc1JlbGF0aXZlPyJhdXRob3JpdHkgZmlyc3Qgc2xhc2giOiJzY2hlbWUgZGF0YSJ9YnJlYWs7Y2FzZSJzY2hlbWUgZGF0YSI6Ij8iPT11PyhxdWVyeT0iPyIsaj0icXVlcnkiKToiIyI9PXU/KHRoaXMuX2ZyYWdtZW50PSIjIixqPSJmcmFnbWVudCIpOm8hPXUmJiIJIiE9dSYmIlxuIiE9dSYmIlxyIiE9dSYmKHRoaXMuX3NjaGVtZURhdGErPWUodSkpO2JyZWFrO2Nhc2Uibm8gc2NoZW1lIjppZihoJiZiKGguX3NjaGVtZSkpe2o9InJlbGF0aXZlIjtjb250aW51ZX1pKCJNaXNzaW5nIHNjaGVtZS4iKSxjLmNhbGwodGhpcyk7YnJlYWs7Y2FzZSJyZWxhdGl2ZSBvciBhdXRob3JpdHkiOmlmKCIvIiE9dXx8Ii8iIT1hW2srMV0pe2koIkV4cGVjdGVkIC8sIGdvdDogIit1KSxqPSJyZWxhdGl2ZSI7Y29udGludWV9aj0iYXV0aG9yaXR5IGlnbm9yZSBzbGFzaGVzIjticmVhaztjYXNlInJlbGF0aXZlIjppZih0aGlzLl9pc1JlbGF0aXZlPSEwLCJmaWxlIiE9dGhpcy5fc2NoZW1lJiYodGhpcy5fc2NoZW1lPWguX3NjaGVtZSksbz09dSl7dGhpcy5faG9zdD1oLl9ob3N0LHRoaXMuX3BvcnQ9aC5fcG9ydCx0aGlzLl9wYXRoPWguX3BhdGguc2xpY2UoKSx0aGlzLl9xdWVyeT1oLl9xdWVyeTticmVhayBhfWlmKCIvIj09dXx8IlxcIj09dSkiXFwiPT11JiZpKCJcXCBpcyBhbiBpbnZhbGlkIGNvZGUgcG9pbnQuIiksaj0icmVsYXRpdmUgc2xhc2giO2Vsc2UgaWYoIj8iPT11KXRoaXMuX2hvc3Q9aC5faG9zdCx0aGlzLl9wb3J0PWguX3BvcnQsdGhpcy5fcGF0aD1oLl9wYXRoLnNsaWNlKCksdGhpcy5fcXVlcnk9Ij8iLGo9InF1ZXJ5IjtlbHNle2lmKCIjIiE9dSl7dmFyIHY9YVtrKzFdLHc9YVtrKzJdOygiZmlsZSIhPXRoaXMuX3NjaGVtZXx8IXAudGVzdCh1KXx8IjoiIT12JiYifCIhPXZ8fG8hPXcmJiIvIiE9dyYmIlxcIiE9dyYmIj8iIT13JiYiIyIhPXcpJiYodGhpcy5faG9zdD1oLl9ob3N0LHRoaXMuX3BvcnQ9aC5fcG9ydCx0aGlzLl9wYXRoPWguX3BhdGguc2xpY2UoKSx0aGlzLl9wYXRoLnBvcCgpKSxqPSJyZWxhdGl2ZSBwYXRoIjtjb250aW51ZX10aGlzLl9ob3N0PWguX2hvc3QsdGhpcy5fcG9ydD1oLl9wb3J0LHRoaXMuX3BhdGg9aC5fcGF0aC5zbGljZSgpLHRoaXMuX3F1ZXJ5PWguX3F1ZXJ5LHRoaXMuX2ZyYWdtZW50PSIjIixqPSJmcmFnbWVudCJ9YnJlYWs7Y2FzZSJyZWxhdGl2ZSBzbGFzaCI6aWYoIi8iIT11JiYiXFwiIT11KXsiZmlsZSIhPXRoaXMuX3NjaGVtZSYmKHRoaXMuX2hvc3Q9aC5faG9zdCx0aGlzLl9wb3J0PWguX3BvcnQpLGo9InJlbGF0aXZlIHBhdGgiO2NvbnRpbnVlfSJcXCI9PXUmJmkoIlxcIGlzIGFuIGludmFsaWQgY29kZSBwb2ludC4iKSxqPSJmaWxlIj09dGhpcy5fc2NoZW1lPyJmaWxlIGhvc3QiOiJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2JyZWFrO2Nhc2UiYXV0aG9yaXR5IGZpcnN0IHNsYXNoIjppZigiLyIhPXUpe2koIkV4cGVjdGVkICcvJywgZ290OiAiK3UpLGo9ImF1dGhvcml0eSBpZ25vcmUgc2xhc2hlcyI7Y29udGludWV9aj0iYXV0aG9yaXR5IHNlY29uZCBzbGFzaCI7YnJlYWs7Y2FzZSJhdXRob3JpdHkgc2Vjb25kIHNsYXNoIjppZihqPSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiLCIvIiE9dSl7aSgiRXhwZWN0ZWQgJy8nLCBnb3Q6ICIrdSk7Y29udGludWV9YnJlYWs7Y2FzZSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiOmlmKCIvIiE9dSYmIlxcIiE9dSl7aj0iYXV0aG9yaXR5Ijtjb250aW51ZX1pKCJFeHBlY3RlZCBhdXRob3JpdHksIGdvdDogIit1KTticmVhaztjYXNlImF1dGhvcml0eSI6aWYoIkAiPT11KXtyJiYoaSgiQCBhbHJlYWR5IHNlZW4uIiksbCs9IiU0MCIpLHI9ITA7Zm9yKHZhciB4PTA7eDxsLmxlbmd0aDt4Kyspe3ZhciB5PWxbeF07aWYoIgkiIT15JiYiXG4iIT15JiYiXHIiIT15KWlmKCI6IiE9eXx8bnVsbCE9PXRoaXMuX3Bhc3N3b3JkKXt2YXIgej1lKHkpO251bGwhPT10aGlzLl9wYXNzd29yZD90aGlzLl9wYXNzd29yZCs9ejp0aGlzLl91c2VybmFtZSs9en1lbHNlIHRoaXMuX3Bhc3N3b3JkPSIiO2Vsc2UgaSgiSW52YWxpZCB3aGl0ZXNwYWNlIGluIGF1dGhvcml0eS4iKX1sPSIifWVsc2V7aWYobz09dXx8Ii8iPT11fHwiXFwiPT11fHwiPyI9PXV8fCIjIj09dSl7ay09bC5sZW5ndGgsbD0iIixqPSJob3N0Ijtjb250aW51ZX1sKz11fWJyZWFrO2Nhc2UiZmlsZSBob3N0IjppZihvPT11fHwiLyI9PXV8fCJcXCI9PXV8fCI/Ij09dXx8IiMiPT11KXsyIT1sLmxlbmd0aHx8IXAudGVzdChsWzBdKXx8IjoiIT1sWzFdJiYifCIhPWxbMV0/MD09bC5sZW5ndGg/aj0icmVsYXRpdmUgcGF0aCBzdGFydCI6KHRoaXMuX2hvc3Q9ZC5jYWxsKHRoaXMsbCksbD0iIixqPSJyZWxhdGl2ZSBwYXRoIHN0YXJ0Iik6aj0icmVsYXRpdmUgcGF0aCI7Y29udGludWV9IgkiPT11fHwiXG4iPT11fHwiXHIiPT11P2koIkludmFsaWQgd2hpdGVzcGFjZSBpbiBmaWxlIGhvc3QuIik6bCs9dTticmVhaztjYXNlImhvc3QiOmNhc2UiaG9zdG5hbWUiOmlmKCI6IiE9dXx8cyl7aWYobz09dXx8Ii8iPT11fHwiXFwiPT11fHwiPyI9PXV8fCIjIj09dSl7aWYodGhpcy5faG9zdD1kLmNhbGwodGhpcyxsKSxsPSIiLGo9InJlbGF0aXZlIHBhdGggc3RhcnQiLGcpYnJlYWsgYTtjb250aW51ZX0iCSIhPXUmJiJcbiIhPXUmJiJcciIhPXU/KCJbIj09dT9zPSEwOiJdIj09dSYmKHM9ITEpLGwrPXUpOmkoIkludmFsaWQgY29kZSBwb2ludCBpbiBob3N0L2hvc3RuYW1lOiAiK3UpfWVsc2UgaWYodGhpcy5faG9zdD1kLmNhbGwodGhpcyxsKSxsPSIiLGo9InBvcnQiLCJob3N0bmFtZSI9PWcpYnJlYWsgYTticmVhaztjYXNlInBvcnQiOmlmKC9bMC05XS8udGVzdCh1KSlsKz11O2Vsc2V7aWYobz09dXx8Ii8iPT11fHwiXFwiPT11fHwiPyI9PXV8fCIjIj09dXx8Zyl7aWYoIiIhPWwpe3ZhciBBPXBhcnNlSW50KGwsMTApO0EhPW1bdGhpcy5fc2NoZW1lXSYmKHRoaXMuX3BvcnQ9QSsiIiksbD0iIn1pZihnKWJyZWFrIGE7aj0icmVsYXRpdmUgcGF0aCBzdGFydCI7Y29udGludWV9IgkiPT11fHwiXG4iPT11fHwiXHIiPT11P2koIkludmFsaWQgY29kZSBwb2ludCBpbiBwb3J0OiAiK3UpOmMuY2FsbCh0aGlzKX1icmVhaztjYXNlInJlbGF0aXZlIHBhdGggc3RhcnQiOmlmKCJcXCI9PXUmJmkoIidcXCcgbm90IGFsbG93ZWQgaW4gcGF0aC4iKSxqPSJyZWxhdGl2ZSBwYXRoIiwiLyIhPXUmJiJcXCIhPXUpY29udGludWU7YnJlYWs7Y2FzZSJyZWxhdGl2ZSBwYXRoIjppZihvIT11JiYiLyIhPXUmJiJcXCIhPXUmJihnfHwiPyIhPXUmJiIjIiE9dSkpIgkiIT11JiYiXG4iIT11JiYiXHIiIT11JiYobCs9ZSh1KSk7ZWxzZXsiXFwiPT11JiZpKCJcXCBub3QgYWxsb3dlZCBpbiByZWxhdGl2ZSBwYXRoLiIpO3ZhciBCOyhCPW5bbC50b0xvd2VyQ2FzZSgpXSkmJihsPUIpLCIuLiI9PWw/KHRoaXMuX3BhdGgucG9wKCksIi8iIT11JiYiXFwiIT11JiZ0aGlzLl9wYXRoLnB1c2goIiIpKToiLiI9PWwmJiIvIiE9dSYmIlxcIiE9dT90aGlzLl9wYXRoLnB1c2goIiIpOiIuIiE9bCYmKCJmaWxlIj09dGhpcy5fc2NoZW1lJiYwPT10aGlzLl9wYXRoLmxlbmd0aCYmMj09bC5sZW5ndGgmJnAudGVzdChsWzBdKSYmInwiPT1sWzFdJiYobD1sWzBdKyI6IiksdGhpcy5fcGF0aC5wdXNoKGwpKSxsPSIiLCI/Ij09dT8odGhpcy5fcXVlcnk9Ij8iLGo9InF1ZXJ5Iik6IiMiPT11JiYodGhpcy5fZnJhZ21lbnQ9IiMiLGo9ImZyYWdtZW50Iil9YnJlYWs7Y2FzZSJxdWVyeSI6Z3x8IiMiIT11P28hPXUmJiIJIiE9dSYmIlxuIiE9dSYmIlxyIiE9dSYmKHRoaXMuX3F1ZXJ5Kz1mKHUpKToodGhpcy5fZnJhZ21lbnQ9IiMiLGo9ImZyYWdtZW50Iik7YnJlYWs7Y2FzZSJmcmFnbWVudCI6byE9dSYmIgkiIT11JiYiXG4iIT11JiYiXHIiIT11JiYodGhpcy5fZnJhZ21lbnQrPXUpfWsrK319ZnVuY3Rpb24gaCgpe3RoaXMuX3NjaGVtZT0iIix0aGlzLl9zY2hlbWVEYXRhPSIiLHRoaXMuX3VzZXJuYW1lPSIiLHRoaXMuX3Bhc3N3b3JkPW51bGwsdGhpcy5faG9zdD0iIix0aGlzLl9wb3J0PSIiLHRoaXMuX3BhdGg9W10sdGhpcy5fcXVlcnk9IiIsdGhpcy5fZnJhZ21lbnQ9IiIsdGhpcy5faXNJbnZhbGlkPSExLHRoaXMuX2lzUmVsYXRpdmU9ITF9ZnVuY3Rpb24gaShhLGIpe3ZvaWQgMD09PWJ8fGIgaW5zdGFuY2VvZiBpfHwoYj1uZXcgaShTdHJpbmcoYikpKSx0aGlzLl91cmw9YSxoLmNhbGwodGhpcyk7dmFyIGM9YS5yZXBsYWNlKC9eWyBcdFxyXG5cZl0rfFsgXHRcclxuXGZdKyQvZywiIik7Zy5jYWxsKHRoaXMsYyxudWxsLGIpfXZhciBqPSExO2lmKCFhLmZvcmNlSlVSTCl0cnl7dmFyIGs9bmV3IFVSTCgiYiIsImh0dHA6Ly9hIik7ay5wYXRobmFtZT0iYyUyMGQiLGo9Imh0dHA6Ly9hL2MlMjBkIj09PWsuaHJlZn1jYXRjaChsKXt9aWYoIWope3ZhciBtPU9iamVjdC5jcmVhdGUobnVsbCk7bS5mdHA9MjEsbS5maWxlPTAsbS5nb3BoZXI9NzAsbS5odHRwPTgwLG0uaHR0cHM9NDQzLG0ud3M9ODAsbS53c3M9NDQzO3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7blsiJTJlIl09Ii4iLG5bIi4lMmUiXT0iLi4iLG5bIiUyZS4iXT0iLi4iLG5bIiUyZSUyZSJdPSIuLiI7dmFyIG89dm9pZCAwLHA9L1thLXpBLVpdLyxxPS9bYS16QS1aMC05XCtcLVwuXS87aS5wcm90b3R5cGU9e2dldCBocmVmKCl7aWYodGhpcy5faXNJbnZhbGlkKXJldHVybiB0aGlzLl91cmw7dmFyIGE9IiI7cmV0dXJuKCIiIT10aGlzLl91c2VybmFtZXx8bnVsbCE9dGhpcy5fcGFzc3dvcmQpJiYoYT10aGlzLl91c2VybmFtZSsobnVsbCE9dGhpcy5fcGFzc3dvcmQ/IjoiK3RoaXMuX3Bhc3N3b3JkOiIiKSsiQCIpLHRoaXMucHJvdG9jb2wrKHRoaXMuX2lzUmVsYXRpdmU/Ii8vIithK3RoaXMuaG9zdDoiIikrdGhpcy5wYXRobmFtZSt0aGlzLl9xdWVyeSt0aGlzLl9mcmFnbWVudH0sc2V0IGhyZWYoYSl7aC5jYWxsKHRoaXMpLGcuY2FsbCh0aGlzLGEpfSxnZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5fc2NoZW1lKyI6In0sc2V0IHByb3RvY29sKGEpe3RoaXMuX2lzSW52YWxpZHx8Zy5jYWxsKHRoaXMsYSsiOiIsInNjaGVtZSBzdGFydCIpfSxnZXQgaG9zdCgpe3JldHVybiB0aGlzLl9pc0ludmFsaWQ/IiI6dGhpcy5fcG9ydD90aGlzLl9ob3N0KyI6Iit0aGlzLl9wb3J0OnRoaXMuX2hvc3R9LHNldCBob3N0KGEpeyF0aGlzLl9pc0ludmFsaWQmJnRoaXMuX2lzUmVsYXRpdmUmJmcuY2FsbCh0aGlzLGEsImhvc3QiKX0sZ2V0IGhvc3RuYW1lKCl7cmV0dXJuIHRoaXMuX2hvc3R9LHNldCBob3N0bmFtZShhKXshdGhpcy5faXNJbnZhbGlkJiZ0aGlzLl9pc1JlbGF0aXZlJiZnLmNhbGwodGhpcyxhLCJob3N0bmFtZSIpfSxnZXQgcG9ydCgpe3JldHVybiB0aGlzLl9wb3J0fSxzZXQgcG9ydChhKXshdGhpcy5faXNJbnZhbGlkJiZ0aGlzLl9pc1JlbGF0aXZlJiZnLmNhbGwodGhpcyxhLCJwb3J0Iil9LGdldCBwYXRobmFtZSgpe3JldHVybiB0aGlzLl9pc0ludmFsaWQ/IiI6dGhpcy5faXNSZWxhdGl2ZT8iLyIrdGhpcy5fcGF0aC5qb2luKCIvIik6dGhpcy5fc2NoZW1lRGF0YX0sc2V0IHBhdGhuYW1lKGEpeyF0aGlzLl9pc0ludmFsaWQmJnRoaXMuX2lzUmVsYXRpdmUmJih0aGlzLl9wYXRoPVtdLGcuY2FsbCh0aGlzLGEsInJlbGF0aXZlIHBhdGggc3RhcnQiKSl9LGdldCBzZWFyY2goKXtyZXR1cm4gdGhpcy5faXNJbnZhbGlkfHwhdGhpcy5fcXVlcnl8fCI/Ij09dGhpcy5fcXVlcnk/IiI6dGhpcy5fcXVlcnl9LHNldCBzZWFyY2goYSl7IXRoaXMuX2lzSW52YWxpZCYmdGhpcy5faXNSZWxhdGl2ZSYmKHRoaXMuX3F1ZXJ5PSI/IiwiPyI9PWFbMF0mJihhPWEuc2xpY2UoMSkpLGcuY2FsbCh0aGlzLGEsInF1ZXJ5IikpfSxnZXQgaGFzaCgpe3JldHVybiB0aGlzLl9pc0ludmFsaWR8fCF0aGlzLl9mcmFnbWVudHx8IiMiPT10aGlzLl9mcmFnbWVudD8iIjp0aGlzLl9mcmFnbWVudH0sc2V0IGhhc2goYSl7dGhpcy5faXNJbnZhbGlkfHwodGhpcy5fZnJhZ21lbnQ9IiMiLCIjIj09YVswXSYmKGE9YS5zbGljZSgxKSksZy5jYWxsKHRoaXMsYSwiZnJhZ21lbnQiKSl9LGdldCBvcmlnaW4oKXt2YXIgYTtpZih0aGlzLl9pc0ludmFsaWR8fCF0aGlzLl9zY2hlbWUpcmV0dXJuIiI7c3dpdGNoKHRoaXMuX3NjaGVtZSl7Y2FzZSJkYXRhIjpjYXNlImZpbGUiOmNhc2UiamF2YXNjcmlwdCI6Y2FzZSJtYWlsdG8iOnJldHVybiJudWxsIn1yZXR1cm4gYT10aGlzLmhvc3QsYT90aGlzLl9zY2hlbWUrIjovLyIrYToiIn19O3ZhciByPWEuVVJMO3ImJihpLmNyZWF0ZU9iamVjdFVSTD1mdW5jdGlvbigpe3JldHVybiByLmNyZWF0ZU9iamVjdFVSTC5hcHBseShyLGFyZ3VtZW50cyl9LGkucmV2b2tlT2JqZWN0VVJMPWZ1bmN0aW9uKGEpe3IucmV2b2tlT2JqZWN0VVJMKGEpfSksYS5VUkw9aX19KHRoaXMpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSl7Zi50ZXh0Q29udGVudD1kKyssZS5wdXNoKGEpfWZ1bmN0aW9uIGMoKXtmb3IoO2UubGVuZ3RoOyllLnNoaWZ0KCkoKX12YXIgZD0wLGU9W10sZj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik7bmV3KHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyfHxKc011dGF0aW9uT2JzZXJ2ZXIpKGMpLm9ic2VydmUoZix7Y2hhcmFjdGVyRGF0YTohMH0pLGEuZW5kT2ZNaWNyb3Rhc2s9YixQbGF0Zm9ybS5lbmRPZk1pY3JvdGFzaz1ifShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7Z3x8KGc9ITAsYyhmdW5jdGlvbigpe2c9ITEsZC5kYXRhJiZjb25zb2xlLmdyb3VwKCJmbHVzaCIpLFBsYXRmb3JtLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCksZC5kYXRhJiZjb25zb2xlLmdyb3VwRW5kKCl9KSl9dmFyIGM9YS5lbmRPZk1pY3JvdGFzayxkPXdpbmRvdy5XZWJDb21wb25lbnRzP1dlYkNvbXBvbmVudHMuZmxhZ3MubG9nOnt9LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlLnRleHRDb250ZW50PSJ0ZW1wbGF0ZSB7ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O30gLyogaW5qZWN0ZWQgYnkgcGxhdGZvcm0uanMgKi8iO3ZhciBmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKTtmLmluc2VydEJlZm9yZShlLGYuZmlyc3RDaGlsZCk7dmFyIGc7aWYoT2JzZXJ2ZXIuaGFzT2JqZWN0T2JzZXJ2ZSliPWZ1bmN0aW9uKCl7fTtlbHNle3ZhciBoPTEyNTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiV2ViQ29tcG9uZW50c1JlYWR5IixmdW5jdGlvbigpe2IoKTt2YXIgYz1mdW5jdGlvbigpeyJoaWRkZW4iPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP2EuZmx1c2hQb2xsJiZjbGVhckludGVydmFsKGEuZmx1c2hQb2xsKTphLmZsdXNoUG9sbD1zZXRJbnRlcnZhbChiLGgpfTsic3RyaW5nIj09dHlwZW9mIGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsYyksYygpfSl9aWYod2luZG93LkN1c3RvbUVsZW1lbnRzJiYhQ3VzdG9tRWxlbWVudHMudXNlTmF0aXZlKXt2YXIgaT1Eb2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZTtEb2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZT1mdW5jdGlvbihhLGIpe3ZhciBjPWkuY2FsbCh0aGlzLGEsYik7cmV0dXJuIEN1c3RvbUVsZW1lbnRzLnVwZ3JhZGVBbGwoYyksY319YS5mbHVzaD1iLFBsYXRmb3JtLmZsdXNoPWJ9KHdpbmRvdy5Qb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3ZhciBiPW5ldyBVUkwoYS5vd25lckRvY3VtZW50LmJhc2VVUkkpO3JldHVybiBiLnNlYXJjaD0iIixiLmhhc2g9IiIsYn1mdW5jdGlvbiBjKGEsYixjLGUpe3JldHVybiBhLnJlcGxhY2UoZSxmdW5jdGlvbihhLGUsZixnKXt2YXIgaD1mLnJlcGxhY2UoL1siJ10vZywiIik7cmV0dXJuIGg9ZChiLGgsYyksZSsiJyIraCsiJyIrZ30pfWZ1bmN0aW9uIGQoYSxiLGMpe2lmKGImJiIvIj09PWJbMF0pcmV0dXJuIGI7aWYoYiYmIiMiPT09YlswXSlyZXR1cm4gYjt2YXIgZD1uZXcgVVJMKGIsYSk7cmV0dXJuIGM/ZC5ocmVmOmUoZC5ocmVmKX1mdW5jdGlvbiBlKGEpe3ZhciBjPWIoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSxkPW5ldyBVUkwoYSxjKTtyZXR1cm4gZC5ob3N0PT09Yy5ob3N0JiZkLnBvcnQ9PT1jLnBvcnQmJmQucHJvdG9jb2w9PT1jLnByb3RvY29sP2YoYyxkKTphfWZ1bmN0aW9uIGYoYSxiKXtmb3IodmFyIGM9YS5wYXRobmFtZSxkPWIucGF0aG5hbWUsZT1jLnNwbGl0KCIvIiksZj1kLnNwbGl0KCIvIik7ZS5sZW5ndGgmJmVbMF09PT1mWzBdOyllLnNoaWZ0KCksZi5zaGlmdCgpO2Zvcih2YXIgZz0wLGg9ZS5sZW5ndGgtMTtoPmc7ZysrKWYudW5zaGlmdCgiLi4iKTt2YXIgaT1iLmhyZWYuc2xpY2UoLTEpPT09bT9tOmIuaGFzaDtyZXR1cm4gZi5qb2luKCIvIikrYi5zZWFyY2graX12YXIgZz17cmVzb2x2ZURvbTpmdW5jdGlvbihhLGMpe2M9Y3x8YihhKSx0aGlzLnJlc29sdmVBdHRyaWJ1dGVzKGEsYyksdGhpcy5yZXNvbHZlU3R5bGVzKGEsYyk7dmFyIGQ9YS5xdWVyeVNlbGVjdG9yQWxsKCJ0ZW1wbGF0ZSIpO2lmKGQpZm9yKHZhciBlLGY9MCxnPWQubGVuZ3RoO2c+ZiYmKGU9ZFtmXSk7ZisrKWUuY29udGVudCYmdGhpcy5yZXNvbHZlRG9tKGUuY29udGVudCxjKX0scmVzb2x2ZVRlbXBsYXRlOmZ1bmN0aW9uKGEpe3RoaXMucmVzb2x2ZURvbShhLmNvbnRlbnQsYihhKSl9LHJlc29sdmVTdHlsZXM6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIik7aWYoYylmb3IodmFyIGQsZT0wLGY9Yy5sZW5ndGg7Zj5lJiYoZD1jW2VdKTtlKyspdGhpcy5yZXNvbHZlU3R5bGUoZCxiKX0scmVzb2x2ZVN0eWxlOmZ1bmN0aW9uKGEsYyl7Yz1jfHxiKGEpLGEudGV4dENvbnRlbnQ9dGhpcy5yZXNvbHZlQ3NzVGV4dChhLnRleHRDb250ZW50LGMpfSxyZXNvbHZlQ3NzVGV4dDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGE9YyhhLGIsZCxoKSxjKGEsYixkLGkpfSxyZXNvbHZlQXR0cmlidXRlczpmdW5jdGlvbihhLGIpe2EuaGFzQXR0cmlidXRlcyYmYS5oYXNBdHRyaWJ1dGVzKCkmJnRoaXMucmVzb2x2ZUVsZW1lbnRBdHRyaWJ1dGVzKGEsYik7dmFyIGM9YSYmYS5xdWVyeVNlbGVjdG9yQWxsKGspO2lmKGMpZm9yKHZhciBkLGU9MCxmPWMubGVuZ3RoO2Y+ZSYmKGQ9Y1tlXSk7ZSsrKXRoaXMucmVzb2x2ZUVsZW1lbnRBdHRyaWJ1dGVzKGQsYil9LHJlc29sdmVFbGVtZW50QXR0cmlidXRlczpmdW5jdGlvbihhLGUpe2U9ZXx8YihhKSxqLmZvckVhY2goZnVuY3Rpb24oYil7dmFyIGYsZz1hLmF0dHJpYnV0ZXNbYl0saT1nJiZnLnZhbHVlO2kmJmkuc2VhcmNoKGwpPDAmJihmPSJzdHlsZSI9PT1iP2MoaSxlLCExLGgpOmQoZSxpKSxnLnZhbHVlPWYpfSl9fSxoPS8odXJsXCgpKFteKV0qKShcKSkvZyxpPS8oQGltcG9ydFtcc10rKD8hdXJsXCgpKShbXjtdKikoOykvZyxqPVsiaHJlZiIsInNyYyIsImFjdGlvbiIsInN0eWxlIiwidXJsIl0saz0iWyIrai5qb2luKCJdLFsiKSsiXSIsbD0ie3suKn19IixtPSIjIjthLnVybFJlc29sdmVyPWd9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSl7dGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMubWFwPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5yZXF1ZXN0cz0wLHRoaXMucmVnZXg9YX12YXIgYz1Qb2x5bWVyLmVuZE9mTWljcm90YXNrO2IucHJvdG90eXBlPXtleHRyYWN0VXJsczpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkLGU9W107Yz10aGlzLnJlZ2V4LmV4ZWMoYSk7KWQ9bmV3IFVSTChjWzFdLGIpLGUucHVzaCh7bWF0Y2hlZDpjWzBdLHVybDpkLmhyZWZ9KTtyZXR1cm4gZX0scHJvY2VzczpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5leHRyYWN0VXJscyhhLGIpLGU9Yy5iaW5kKG51bGwsdGhpcy5tYXApO3RoaXMuZmV0Y2goZCxlKX0sZmV0Y2g6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxlbmd0aDtpZighYylyZXR1cm4gYigpO2Zvcih2YXIgZCxlLGYsZz1mdW5jdGlvbigpezA9PT0tLWMmJmIoKX0saD0wO2M+aDtoKyspZD1hW2hdLGY9ZC51cmwsZT10aGlzLmNhY2hlW2ZdLGV8fChlPXRoaXMueGhyKGYpLGUubWF0Y2g9ZCx0aGlzLmNhY2hlW2ZdPWUpLGUud2FpdChnKX0saGFuZGxlWGhyOmZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2gsYz1iLnVybCxkPWEucmVzcG9uc2V8fGEucmVzcG9uc2VUZXh0fHwiIjt0aGlzLm1hcFtjXT1kLHRoaXMuZmV0Y2godGhpcy5leHRyYWN0VXJscyhkLGMpLGEucmVzb2x2ZSl9LHhocjpmdW5jdGlvbihhKXt0aGlzLnJlcXVlc3RzKys7dmFyIGI9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBiLm9wZW4oIkdFVCIsYSwhMCksYi5zZW5kKCksYi5vbmVycm9yPWIub25sb2FkPXRoaXMuaGFuZGxlWGhyLmJpbmQodGhpcyxiKSxiLnBlbmRpbmc9W10sYi5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPWIucGVuZGluZyxjPTA7YzxhLmxlbmd0aDtjKyspYVtjXSgpO2IucGVuZGluZz1udWxsfSxiLndhaXQ9ZnVuY3Rpb24oYSl7Yi5wZW5kaW5nP2IucGVuZGluZy5wdXNoKGEpOmMoYSl9LGJ9fSxhLkxvYWRlcj1ifShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7dGhpcy5sb2FkZXI9bmV3IGQodGhpcy5yZWdleCl9dmFyIGM9YS51cmxSZXNvbHZlcixkPWEuTG9hZGVyO2IucHJvdG90eXBlPXtyZWdleDovQGltcG9ydFxzKyg/OnVybCk/WyInXChdKihbXiciXCldKilbJyJcKV0qOy9nLHJlc29sdmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWZ1bmN0aW9uKGQpe2ModGhpcy5mbGF0dGVuKGEsYixkKSl9LmJpbmQodGhpcyk7dGhpcy5sb2FkZXIucHJvY2VzcyhhLGIsZCl9LHJlc29sdmVOb2RlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLnRleHRDb250ZW50LGU9ZnVuY3Rpb24oYil7YS50ZXh0Q29udGVudD1iLGMoYSl9O3RoaXMucmVzb2x2ZShkLGIsZSl9LGZsYXR0ZW46ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZSxmLGcsaD10aGlzLmxvYWRlci5leHRyYWN0VXJscyhhLGIpLGk9MDtpPGgubGVuZ3RoO2krKyllPWhbaV0sZj1lLnVybCxnPWMucmVzb2x2ZUNzc1RleHQoZFtmXSxmLCEwKSxnPXRoaXMuZmxhdHRlbihnLGIsZCksYT1hLnJlcGxhY2UoZS5tYXRjaGVkLGcpO3JldHVybiBhfSxsb2FkU3R5bGVzOmZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKCl7ZisrLGY9PT1nJiZjJiZjKCl9Zm9yKHZhciBlLGY9MCxnPWEubGVuZ3RoLGg9MDtnPmgmJihlPWFbaF0pO2grKyl0aGlzLnJlc29sdmVOb2RlKGUsYixkKX19O3ZhciBlPW5ldyBiO2Euc3R5bGVSZXNvbHZlcj1lfShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEsYil7cmV0dXJuIGEmJmImJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpO2QmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpLCJmdW5jdGlvbiI9PXR5cGVvZiBkLnZhbHVlJiYoZC52YWx1ZS5ub209YykpfSksYX1mdW5jdGlvbiBjKGEpe2Zvcih2YXIgYj1hfHx7fSxjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGU9YXJndW1lbnRzW2NdO3RyeXtmb3IodmFyIGYgaW4gZSlkKGYsZSxiKX1jYXRjaChnKXt9fXJldHVybiBifWZ1bmN0aW9uIGQoYSxiLGMpe3ZhciBkPWUoYixhKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxhLGQpfWZ1bmN0aW9uIGUoYSxiKXtpZihhKXt2YXIgYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsYik7cmV0dXJuIGN8fGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGEpLGIpfX1hLmV4dGVuZD1iLGEubWl4aW49YyxQbGF0Zm9ybS5taXhpbj1jfShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEsYixkKXtyZXR1cm4gYT9hLnN0b3AoKTphPW5ldyBjKHRoaXMpLGEuZ28oYixkKSxhfXZhciBjPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dD1hLHRoaXMuYm91bmRDb21wbGV0ZT10aGlzLmNvbXBsZXRlLmJpbmQodGhpcyl9O2MucHJvdG90eXBlPXtnbzpmdW5jdGlvbihhLGIpe3RoaXMuY2FsbGJhY2s9YTt2YXIgYztiPyhjPXNldFRpbWVvdXQodGhpcy5ib3VuZENvbXBsZXRlLGIpLHRoaXMuaGFuZGxlPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGMpfSk6KGM9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuYm91bmRDb21wbGV0ZSksdGhpcy5oYW5kbGU9ZnVuY3Rpb24oKXtjYW5jZWxBbmltYXRpb25GcmFtZShjKX0pfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGUmJih0aGlzLmhhbmRsZSgpLHRoaXMuaGFuZGxlPW51bGwpfSxjb21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlJiYodGhpcy5zdG9wKCksdGhpcy5jYWxsYmFjay5jYWxsKHRoaXMuY29udGV4dCkpfX0sYS5qb2I9Yn0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIsYyl7dmFyIGQ9InN0cmluZyI9PXR5cGVvZiBhP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYSk6YS5jbG9uZU5vZGUoITApO2lmKGQuaW5uZXJIVE1MPWIsYylmb3IodmFyIGUgaW4gYylkLnNldEF0dHJpYnV0ZShlLGNbZV0pO3JldHVybiBkfXZhciBjPXt9O0hUTUxFbGVtZW50LnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYil7Y1thXT1ifSxIVE1MRWxlbWVudC5nZXRQcm90b3R5cGVGb3JUYWc9ZnVuY3Rpb24oYSl7dmFyIGI9YT9jW2FdOkhUTUxFbGVtZW50LnByb3RvdHlwZTtyZXR1cm4gYnx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYSkpfTt2YXIgZD1FdmVudC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uO0V2ZW50LnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEJ1YmJsZT0hMCxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIGU9RE9NVG9rZW5MaXN0LnByb3RvdHlwZS5hZGQsZj1ET01Ub2tlbkxpc3QucHJvdG90eXBlLnJlbW92ZTtET01Ub2tlbkxpc3QucHJvdG90eXBlLmFkZD1mdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZS5jYWxsKHRoaXMsYXJndW1lbnRzW2FdKX0sRE9NVG9rZW5MaXN0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtmb3IodmFyIGE9MDthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKWYuY2FsbCh0aGlzLGFyZ3VtZW50c1thXSl9LERPTVRva2VuTGlzdC5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGEsYil7MT09YXJndW1lbnRzLmxlbmd0aCYmKGI9IXRoaXMuY29udGFpbnMoYSkpLGI/dGhpcy5hZGQoYSk6dGhpcy5yZW1vdmUoYSl9LERPTVRva2VuTGlzdC5wcm90b3R5cGVbInN3aXRjaCJdPWZ1bmN0aW9uKGEsYil7YSYmdGhpcy5yZW1vdmUoYSksYiYmdGhpcy5hZGQoYil9O3ZhciBnPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMpfSxoPXdpbmRvdy5OYW1lZE5vZGVNYXB8fHdpbmRvdy5Nb3pOYW1lZEF0dHJNYXB8fHt9O05vZGVMaXN0LnByb3RvdHlwZS5hcnJheT1nLGgucHJvdG90eXBlLmFycmF5PWcsSFRNTENvbGxlY3Rpb24ucHJvdG90eXBlLmFycmF5PWcsYS5jcmVhdGVET009Yn0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXt2YXIgZT1iLmNhbGxlcixnPWUubm9tLGg9ZS5fc3VwZXI7aHx8KGd8fChnPWUubm9tPWMuY2FsbCh0aGlzLGUpKSxnfHxjb25zb2xlLndhcm4oImNhbGxlZCBzdXBlcigpIG9uIGEgbWV0aG9kIG5vdCBpbnN0YWxsZWQgZGVjbGFyYXRpdmVseSAoaGFzIG5vIC5ub20gcHJvcGVydHkpIiksaD1kKGUsZyxmKHRoaXMpKSk7dmFyIGk9aFtnXTtyZXR1cm4gaT8oaS5fc3VwZXJ8fGQoaSxnLGgpLGkuYXBwbHkodGhpcyxhfHxbXSkpOnZvaWQgMH1mdW5jdGlvbiBjKGEpe2Zvcih2YXIgYj10aGlzLl9fcHJvdG9fXztiJiZiIT09SFRNTEVsZW1lbnQucHJvdG90eXBlOyl7Zm9yKHZhciBjLGQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYiksZT0wLGY9ZC5sZW5ndGg7Zj5lJiYoYz1kW2VdKTtlKyspe3ZhciBnPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZy52YWx1ZSYmZy52YWx1ZT09PWEpcmV0dXJuIGN9Yj1iLl9fcHJvdG9fX319ZnVuY3Rpb24gZChhLGIsYyl7dmFyIGQ9ZShjLGIsYSk7cmV0dXJuIGRbYl0mJihkW2JdLm5vbT1iKSxhLl9zdXBlcj1kfWZ1bmN0aW9uIGUoYSxiLGMpe2Zvcig7YTspe2lmKGFbYl0hPT1jJiZhW2JdKXJldHVybiBhO2E9ZihhKX1yZXR1cm4gT2JqZWN0fWZ1bmN0aW9uIGYoYSl7cmV0dXJuIGEuX19wcm90b19ffWFbInN1cGVyIl09Yn0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXtyZXR1cm4gYX1mdW5jdGlvbiBjKGEsYil7dmFyIGM9dHlwZW9mIGI7cmV0dXJuIGIgaW5zdGFuY2VvZiBEYXRlJiYoYz0iZGF0ZSIpLGRbY10oYSxiKX12YXIgZD17c3RyaW5nOmIsdW5kZWZpbmVkOmIsZGF0ZTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoRGF0ZS5wYXJzZShhKXx8RGF0ZS5ub3coKSl9LCJib29sZWFuIjpmdW5jdGlvbihhKXtyZXR1cm4iIj09PWE/ITA6ImZhbHNlIj09PWE/ITE6ISFhfSxudW1iZXI6ZnVuY3Rpb24oYSl7dmFyIGI9cGFyc2VGbG9hdChhKTtyZXR1cm4gMD09PWImJihiPXBhcnNlSW50KGEpKSxpc05hTihiKT9hOmJ9LG9iamVjdDpmdW5jdGlvbihhLGIpe2lmKG51bGw9PT1iKXJldHVybiBhO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShhLnJlcGxhY2UoLycvZywnIicpKX1jYXRjaChjKXtyZXR1cm4gYX19LCJmdW5jdGlvbiI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYn19O2EuZGVzZXJpYWxpemVWYWx1ZT1jfShQb2x5bWVyKSxmdW5jdGlvbihhKXt2YXIgYj1hLmV4dGVuZCxjPXt9O2MuZGVjbGFyYXRpb249e30sYy5pbnN0YW5jZT17fSxjLnB1Ymxpc2g9ZnVuY3Rpb24oYSxjKXtmb3IodmFyIGQgaW4gYSliKGMsYVtkXSl9LGEuYXBpPWN9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe3ZhciBiPXthc3luYzpmdW5jdGlvbihhLGIsYyl7UG9seW1lci5mbHVzaCgpLGI9YiYmYi5sZW5ndGg/YjpbYl07dmFyIGQ9ZnVuY3Rpb24oKXsodGhpc1thXXx8YSkuYXBwbHkodGhpcyxiKX0uYmluZCh0aGlzKSxlPWM/c2V0VGltZW91dChkLGMpOnJlcXVlc3RBbmltYXRpb25GcmFtZShkKTtyZXR1cm4gYz9lOn5lfSxjYW5jZWxBc3luYzpmdW5jdGlvbihhKXswPmE/Y2FuY2VsQW5pbWF0aW9uRnJhbWUofmEpOmNsZWFyVGltZW91dChhKX0sZmlyZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWN8fHRoaXMsYj1udWxsPT09Ynx8dm9pZCAwPT09Yj97fTpiLGc9bmV3IEN1c3RvbUV2ZW50KGEse2J1YmJsZXM6dm9pZCAwIT09ZD9kOiEwLGNhbmNlbGFibGU6dm9pZCAwIT09ZT9lOiEwLGRldGFpbDpifSk7cmV0dXJuIGYuZGlzcGF0Y2hFdmVudChnKSxnfSxhc3luY0ZpcmU6ZnVuY3Rpb24oKXt0aGlzLmFzeW5jKCJmaXJlIixhcmd1bWVudHMpfSxjbGFzc0ZvbGxvd3M6ZnVuY3Rpb24oYSxiLGMpe2ImJmIuY2xhc3NMaXN0LnJlbW92ZShjKSxhJiZhLmNsYXNzTGlzdC5hZGQoYyl9LGluamVjdEJvdW5kSFRNTDpmdW5jdGlvbihhLGIpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7Yy5pbm5lckhUTUw9YTt2YXIgZD10aGlzLmluc3RhbmNlVGVtcGxhdGUoYyk7cmV0dXJuIGImJihiLnRleHRDb250ZW50PSIiLGIuYXBwZW5kQ2hpbGQoZCkpLGR9fSxjPWZ1bmN0aW9uKCl7fSxkPXt9O2IuYXN5bmNNZXRob2Q9Yi5hc3luYyxhLmFwaS5pbnN0YW5jZS51dGlscz1iLGEubm9wPWMsYS5ub2I9ZH0oUG9seW1lciksZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93LldlYkNvbXBvbmVudHM/V2ViQ29tcG9uZW50cy5mbGFncy5sb2c6e30sYz0ib24tIixkPXtFVkVOVF9QUkVGSVg6YyxhZGRIb3N0TGlzdGVuZXJzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5ldmVudERlbGVnYXRlczsKLWIuZXZlbnRzJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCYmY29uc29sZS5sb2coIlslc10gYWRkSG9zdExpc3RlbmVyczoiLHRoaXMubG9jYWxOYW1lLGEpO2Zvcih2YXIgYyBpbiBhKXt2YXIgZD1hW2NdO1BvbHltZXJHZXN0dXJlcy5hZGRFdmVudExpc3RlbmVyKHRoaXMsYyx0aGlzLmVsZW1lbnQuZ2V0RXZlbnRIYW5kbGVyKHRoaXMsdGhpcyxkKSl9fSxkaXNwYXRjaE1ldGhvZDpmdW5jdGlvbihhLGMsZCl7aWYoYSl7Yi5ldmVudHMmJmNvbnNvbGUuZ3JvdXAoIlslc10gZGlzcGF0Y2ggWyVzXSIsYS5sb2NhbE5hbWUsYyk7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIGM/YzphW2NdO2UmJmVbZD8iYXBwbHkiOiJjYWxsIl0oYSxkKSxiLmV2ZW50cyYmY29uc29sZS5ncm91cEVuZCgpLFBvbHltZXIuZmx1c2goKX19fTthLmFwaS5pbnN0YW5jZS5ldmVudHM9ZCxhLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMsZCl7UG9seW1lckdlc3R1cmVzLmFkZEV2ZW50TGlzdGVuZXIod3JhcChhKSxiLGMsZCl9LGEucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtQb2x5bWVyR2VzdHVyZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih3cmFwKGEpLGIsYyxkKX19KFBvbHltZXIpLGZ1bmN0aW9uKGEpe3ZhciBiPXtjb3B5SW5zdGFuY2VBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5faW5zdGFuY2VBdHRyaWJ1dGVzO2Zvcih2YXIgYiBpbiBhKXRoaXMuaGFzQXR0cmlidXRlKGIpfHx0aGlzLnNldEF0dHJpYnV0ZShiLGFbYl0pfSx0YWtlQXR0cmlidXRlczpmdW5jdGlvbigpe2lmKHRoaXMuX3B1Ymxpc2hMQylmb3IodmFyIGEsYj0wLGM9dGhpcy5hdHRyaWJ1dGVzLGQ9Yy5sZW5ndGg7KGE9Y1tiXSkmJmQ+YjtiKyspdGhpcy5hdHRyaWJ1dGVUb1Byb3BlcnR5KGEubmFtZSxhLnZhbHVlKX0sYXR0cmlidXRlVG9Qcm9wZXJ0eTpmdW5jdGlvbihiLGMpe3ZhciBiPXRoaXMucHJvcGVydHlGb3JBdHRyaWJ1dGUoYik7aWYoYil7aWYoYyYmYy5zZWFyY2goYS5iaW5kUGF0dGVybik+PTApcmV0dXJuO3ZhciBkPXRoaXNbYl0sYz10aGlzLmRlc2VyaWFsaXplVmFsdWUoYyxkKTtjIT09ZCYmKHRoaXNbYl09Yyl9fSxwcm9wZXJ0eUZvckF0dHJpYnV0ZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLl9wdWJsaXNoTEMmJnRoaXMuX3B1Ymxpc2hMQ1thXTtyZXR1cm4gYn0sZGVzZXJpYWxpemVWYWx1ZTpmdW5jdGlvbihiLGMpe3JldHVybiBhLmRlc2VyaWFsaXplVmFsdWUoYixjKX0sc2VyaWFsaXplVmFsdWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4iYm9vbGVhbiI9PT1iP2E/IiI6dm9pZCAwOiJvYmplY3QiIT09YiYmImZ1bmN0aW9uIiE9PWImJnZvaWQgMCE9PWE/YTp2b2lkIDB9LHJlZmxlY3RQcm9wZXJ0eVRvQXR0cmlidXRlOmZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiB0aGlzW2FdLGM9dGhpcy5zZXJpYWxpemVWYWx1ZSh0aGlzW2FdLGIpO3ZvaWQgMCE9PWM/dGhpcy5zZXRBdHRyaWJ1dGUoYSxjKToiYm9vbGVhbiI9PT1iJiZ0aGlzLnJlbW92ZUF0dHJpYnV0ZShhKX19O2EuYXBpLmluc3RhbmNlLmF0dHJpYnV0ZXM9Yn0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIpe3JldHVybiBhPT09Yj8wIT09YXx8MS9hPT09MS9iOmYoYSkmJmYoYik/ITA6YSE9PWEmJmIhPT1ifWZ1bmN0aW9uIGMoYSxiKXtyZXR1cm4gdm9pZCAwPT09YiYmbnVsbD09PWE/YjpudWxsPT09Ynx8dm9pZCAwPT09Yj9hOmJ9dmFyIGQ9d2luZG93LldlYkNvbXBvbmVudHM/V2ViQ29tcG9uZW50cy5mbGFncy5sb2c6e30sZT17b2JqZWN0OnZvaWQgMCx0eXBlOiJ1cGRhdGUiLG5hbWU6dm9pZCAwLG9sZFZhbHVlOnZvaWQgMH0sZj1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKGEpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYSYmaXNOYU4oYSl9LGc9e2NyZWF0ZVByb3BlcnR5T2JzZXJ2ZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9vYnNlcnZlTmFtZXM7aWYoYSYmYS5sZW5ndGgpe3ZhciBiPXRoaXMuX3Byb3BlcnR5T2JzZXJ2ZXI9bmV3IENvbXBvdW5kT2JzZXJ2ZXIoITApO3RoaXMucmVnaXN0ZXJPYnNlcnZlcihiKTtmb3IodmFyIGMsZD0wLGU9YS5sZW5ndGg7ZT5kJiYoYz1hW2RdKTtkKyspYi5hZGRQYXRoKHRoaXMsYyksdGhpcy5vYnNlcnZlQXJyYXlWYWx1ZShjLHRoaXNbY10sbnVsbCl9fSxvcGVuUHJvcGVydHlPYnNlcnZlcjpmdW5jdGlvbigpe3RoaXMuX3Byb3BlcnR5T2JzZXJ2ZXImJnRoaXMuX3Byb3BlcnR5T2JzZXJ2ZXIub3Blbih0aGlzLm5vdGlmeVByb3BlcnR5Q2hhbmdlcyx0aGlzKX0sbm90aWZ5UHJvcGVydHlDaGFuZ2VzOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9e307Zm9yKHZhciBnIGluIGIpaWYoZD1jWzIqZysxXSxlPXRoaXMub2JzZXJ2ZVtkXSl7dmFyIGg9YltnXSxpPWFbZ107dGhpcy5vYnNlcnZlQXJyYXlWYWx1ZShkLGksaCksZltlXXx8KHZvaWQgMCE9PWgmJm51bGwhPT1ofHx2b2lkIDAhPT1pJiZudWxsIT09aSkmJihmW2VdPSEwLHRoaXMuaW52b2tlTWV0aG9kKGUsW2gsaSxhcmd1bWVudHNdKSl9fSxpbnZva2VNZXRob2Q6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzW2FdfHxhOyJmdW5jdGlvbiI9PXR5cGVvZiBjJiZjLmFwcGx5KHRoaXMsYil9LGRlbGl2ZXJDaGFuZ2VzOmZ1bmN0aW9uKCl7dGhpcy5fcHJvcGVydHlPYnNlcnZlciYmdGhpcy5fcHJvcGVydHlPYnNlcnZlci5kZWxpdmVyKCl9LG9ic2VydmVBcnJheVZhbHVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT10aGlzLm9ic2VydmVbYV07aWYoZSYmKEFycmF5LmlzQXJyYXkoYykmJihkLm9ic2VydmUmJmNvbnNvbGUubG9nKCJbJXNdIG9ic2VydmVBcnJheVZhbHVlOiB1bnJlZ2lzdGVyIG9ic2VydmVyIFslc10iLHRoaXMubG9jYWxOYW1lLGEpLHRoaXMuY2xvc2VOYW1lZE9ic2VydmVyKGErIl9fYXJyYXkiKSksQXJyYXkuaXNBcnJheShiKSkpe2Qub2JzZXJ2ZSYmY29uc29sZS5sb2coIlslc10gb2JzZXJ2ZUFycmF5VmFsdWU6IHJlZ2lzdGVyIG9ic2VydmVyIFslc10iLHRoaXMubG9jYWxOYW1lLGEsYik7dmFyIGY9bmV3IEFycmF5T2JzZXJ2ZXIoYik7Zi5vcGVuKGZ1bmN0aW9uKGEpe3RoaXMuaW52b2tlTWV0aG9kKGUsW2FdKX0sdGhpcyksdGhpcy5yZWdpc3Rlck5hbWVkT2JzZXJ2ZXIoYSsiX19hcnJheSIsZil9fSxlbWl0UHJvcGVydHlDaGFuZ2VSZWNvcmQ6ZnVuY3Rpb24oYSxjLGQpe2lmKCFiKGMsZCkmJih0aGlzLl9wcm9wZXJ0eUNoYW5nZWQoYSxjLGQpLE9ic2VydmVyLmhhc09iamVjdE9ic2VydmUpKXt2YXIgZj10aGlzLl9vYmplY3ROb3RpZmllcjtmfHwoZj10aGlzLl9vYmplY3ROb3RpZmllcj1PYmplY3QuZ2V0Tm90aWZpZXIodGhpcykpLGUub2JqZWN0PXRoaXMsZS5uYW1lPWEsZS5vbGRWYWx1ZT1kLGYubm90aWZ5KGUpfX0sX3Byb3BlcnR5Q2hhbmdlZDpmdW5jdGlvbihhKXt0aGlzLnJlZmxlY3RbYV0mJnRoaXMucmVmbGVjdFByb3BlcnR5VG9BdHRyaWJ1dGUoYSl9LGJpbmRQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZCl7aWYoZClyZXR1cm4gdm9pZCh0aGlzW2FdPWIpO3ZhciBlPXRoaXMuZWxlbWVudC5wcm90b3R5cGUuY29tcHV0ZWQ7aWYoZSYmZVthXSl7dmFyIGY9YSsiQ29tcHV0ZWRCb3VuZE9ic2VydmFibGVfIjtyZXR1cm4gdm9pZCh0aGlzW2ZdPWIpfXJldHVybiB0aGlzLmJpbmRUb0FjY2Vzc29yKGEsYixjKX0sYmluZFRvQWNjZXNzb3I6ZnVuY3Rpb24oYSxjLGQpe2Z1bmN0aW9uIGUoYixjKXtqW2ZdPWI7dmFyIGQ9altoXTtkJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5zZXRWYWx1ZSYmZC5zZXRWYWx1ZShiKSxqLmVtaXRQcm9wZXJ0eUNoYW5nZVJlY29yZChhLGIsYyl9dmFyIGY9YSsiXyIsZz1hKyJPYnNlcnZhYmxlXyIsaD1hKyJDb21wdXRlZEJvdW5kT2JzZXJ2YWJsZV8iO3RoaXNbZ109Yzt2YXIgaT10aGlzW2ZdLGo9dGhpcyxrPWMub3BlbihlKTtpZihkJiYhYihpLGspKXt2YXIgbD1kKGksayk7YihrLGwpfHwoaz1sLGMuc2V0VmFsdWUmJmMuc2V0VmFsdWUoaykpfWUoayxpKTt2YXIgbT17Y2xvc2U6ZnVuY3Rpb24oKXtjLmNsb3NlKCksaltnXT12b2lkIDAsaltoXT12b2lkIDB9fTtyZXR1cm4gdGhpcy5yZWdpc3Rlck9ic2VydmVyKG0pLG19LGNyZWF0ZUNvbXB1dGVkUHJvcGVydGllczpmdW5jdGlvbigpe2lmKHRoaXMuX2NvbXB1dGVkTmFtZXMpZm9yKHZhciBhPTA7YTx0aGlzLl9jb21wdXRlZE5hbWVzLmxlbmd0aDthKyspe3ZhciBiPXRoaXMuX2NvbXB1dGVkTmFtZXNbYV0sYz10aGlzLmNvbXB1dGVkW2JdO3RyeXt2YXIgZD1Qb2x5bWVyRXhwcmVzc2lvbnMuZ2V0RXhwcmVzc2lvbihjKSxlPWQuZ2V0QmluZGluZyh0aGlzLHRoaXMuZWxlbWVudC5zeW50YXgpO3RoaXMuYmluZFRvQWNjZXNzb3IoYixlKX1jYXRjaChmKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGNvbXB1dGVkIHByb3BlcnR5IixmKX19fSxyZWdpc3Rlck9ic2VydmVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLl9vYnNlcnZlcnM/dm9pZCB0aGlzLl9vYnNlcnZlcnMucHVzaChhKTp2b2lkKHRoaXMuX29ic2VydmVycz1bYV0pfSxjbG9zZU9ic2VydmVyczpmdW5jdGlvbigpe2lmKHRoaXMuX29ic2VydmVycyl7Zm9yKHZhciBhPXRoaXMuX29ic2VydmVycyxiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBjPWFbYl07YyYmImZ1bmN0aW9uIj09dHlwZW9mIGMuY2xvc2UmJmMuY2xvc2UoKX10aGlzLl9vYnNlcnZlcnM9W119fSxyZWdpc3Rlck5hbWVkT2JzZXJ2ZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9uYW1lZE9ic2VydmVyc3x8KHRoaXMuX25hbWVkT2JzZXJ2ZXJzPXt9KTtjW2FdPWJ9LGNsb3NlTmFtZWRPYnNlcnZlcjpmdW5jdGlvbihhKXt2YXIgYj10aGlzLl9uYW1lZE9ic2VydmVycztyZXR1cm4gYiYmYlthXT8oYlthXS5jbG9zZSgpLGJbYV09bnVsbCwhMCk6dm9pZCAwfSxjbG9zZU5hbWVkT2JzZXJ2ZXJzOmZ1bmN0aW9uKCl7aWYodGhpcy5fbmFtZWRPYnNlcnZlcnMpe2Zvcih2YXIgYSBpbiB0aGlzLl9uYW1lZE9ic2VydmVycyl0aGlzLmNsb3NlTmFtZWRPYnNlcnZlcihhKTt0aGlzLl9uYW1lZE9ic2VydmVycz17fX19fTthLmFwaS5pbnN0YW5jZS5wcm9wZXJ0aWVzPWd9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe3ZhciBiPXdpbmRvdy5XZWJDb21wb25lbnRzP1dlYkNvbXBvbmVudHMuZmxhZ3MubG9nOnt9LGM9e2luc3RhbmNlVGVtcGxhdGU6ZnVuY3Rpb24oYSl7SFRNTFRlbXBsYXRlRWxlbWVudC5kZWNvcmF0ZShhKTtmb3IodmFyIGI9dGhpcy5zeW50YXh8fCFhLmJpbmRpbmdEZWxlZ2F0ZSYmdGhpcy5lbGVtZW50LnN5bnRheCxjPWEuY3JlYXRlSW5zdGFuY2UodGhpcyxiKSxkPWMuYmluZGluZ3NfLGU9MDtlPGQubGVuZ3RoO2UrKyl0aGlzLnJlZ2lzdGVyT2JzZXJ2ZXIoZFtlXSk7cmV0dXJuIGN9LGJpbmQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMucHJvcGVydHlGb3JBdHRyaWJ1dGUoYSk7aWYoZCl7dmFyIGU9dGhpcy5iaW5kUHJvcGVydHkoZCxiLGMpO3JldHVybiBQbGF0Zm9ybS5lbmFibGVCaW5kaW5nc1JlZmxlY3Rpb24mJmUmJihlLnBhdGg9Yi5wYXRoXyx0aGlzLl9yZWNvcmRCaW5kaW5nKGQsZSkpLHRoaXMucmVmbGVjdFtkXSYmdGhpcy5yZWZsZWN0UHJvcGVydHlUb0F0dHJpYnV0ZShkKSxlfXJldHVybiB0aGlzLm1peGluU3VwZXIoYXJndW1lbnRzKX0sX3JlY29yZEJpbmRpbmc6ZnVuY3Rpb24oYSxiKXt0aGlzLmJpbmRpbmdzXz10aGlzLmJpbmRpbmdzX3x8e30sdGhpcy5iaW5kaW5nc19bYV09Yn0sYmluZEZpbmlzaGVkOmZ1bmN0aW9uKCl7dGhpcy5tYWtlRWxlbWVudFJlYWR5KCl9LGFzeW5jVW5iaW5kQWxsOmZ1bmN0aW9uKCl7dGhpcy5fdW5ib3VuZHx8KGIudW5iaW5kJiZjb25zb2xlLmxvZygiWyVzXSBhc3luY1VuYmluZEFsbCIsdGhpcy5sb2NhbE5hbWUpLHRoaXMuX3VuYmluZEFsbEpvYj10aGlzLmpvYih0aGlzLl91bmJpbmRBbGxKb2IsdGhpcy51bmJpbmRBbGwsMCkpfSx1bmJpbmRBbGw6ZnVuY3Rpb24oKXt0aGlzLl91bmJvdW5kfHwodGhpcy5jbG9zZU9ic2VydmVycygpLHRoaXMuY2xvc2VOYW1lZE9ic2VydmVycygpLHRoaXMuX3VuYm91bmQ9ITApfSxjYW5jZWxVbmJpbmRBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW5ib3VuZD92b2lkKGIudW5iaW5kJiZjb25zb2xlLndhcm4oIlslc10gYWxyZWFkeSB1bmJvdW5kLCBjYW5ub3QgY2FuY2VsIHVuYmluZEFsbCIsdGhpcy5sb2NhbE5hbWUpKTooYi51bmJpbmQmJmNvbnNvbGUubG9nKCJbJXNdIGNhbmNlbFVuYmluZEFsbCIsdGhpcy5sb2NhbE5hbWUpLHZvaWQodGhpcy5fdW5iaW5kQWxsSm9iJiYodGhpcy5fdW5iaW5kQWxsSm9iPXRoaXMuX3VuYmluZEFsbEpvYi5zdG9wKCkpKSl9fSxkPS9ce1x7KFtee31dKil9fS87YS5iaW5kUGF0dGVybj1kLGEuYXBpLmluc3RhbmNlLm1kdj1jfShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3JldHVybiBhLmhhc093blByb3BlcnR5KCJQb2x5bWVyQmFzZSIpfWZ1bmN0aW9uIGMoKXt9dmFyIGQ9e1BvbHltZXJCYXNlOiEwLGpvYjpmdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybiBQb2x5bWVyLmpvYi5jYWxsKHRoaXMsYSxiLGMpO3ZhciBkPSJfX18iK2E7dGhpc1tkXT1Qb2x5bWVyLmpvYi5jYWxsKHRoaXMsdGhpc1tkXSxiLGMpfSwic3VwZXIiOlBvbHltZXJbInN1cGVyIl0sY3JlYXRlZDpmdW5jdGlvbigpe30scmVhZHk6ZnVuY3Rpb24oKXt9LGNyZWF0ZWRDYWxsYmFjazpmdW5jdGlvbigpe3RoaXMudGVtcGxhdGVJbnN0YW5jZSYmdGhpcy50ZW1wbGF0ZUluc3RhbmNlLm1vZGVsJiZjb25zb2xlLndhcm4oIkF0dHJpYnV0ZXMgb24gIit0aGlzLmxvY2FsTmFtZSsiIHdlcmUgZGF0YSBib3VuZCBwcmlvciB0byBQb2x5bWVyIHVwZ3JhZGluZyB0aGUgZWxlbWVudC4gVGhpcyBtYXkgcmVzdWx0IGluIGluY29ycmVjdCBiaW5kaW5nIHR5cGVzLiIpLHRoaXMuY3JlYXRlZCgpLHRoaXMucHJlcGFyZUVsZW1lbnQoKSx0aGlzLm93bmVyRG9jdW1lbnQuaXNTdGFnaW5nRG9jdW1lbnR8fHRoaXMubWFrZUVsZW1lbnRSZWFkeSgpfSxwcmVwYXJlRWxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGVtZW50UHJlcGFyZWQ/dm9pZCBjb25zb2xlLndhcm4oIkVsZW1lbnQgYWxyZWFkeSBwcmVwYXJlZCIsdGhpcy5sb2NhbE5hbWUpOih0aGlzLl9lbGVtZW50UHJlcGFyZWQ9ITAsdGhpcy5zaGFkb3dSb290cz17fSx0aGlzLmNyZWF0ZVByb3BlcnR5T2JzZXJ2ZXIoKSx0aGlzLm9wZW5Qcm9wZXJ0eU9ic2VydmVyKCksdGhpcy5jb3B5SW5zdGFuY2VBdHRyaWJ1dGVzKCksdGhpcy50YWtlQXR0cmlidXRlcygpLHZvaWQgdGhpcy5hZGRIb3N0TGlzdGVuZXJzKCkpfSxtYWtlRWxlbWVudFJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5fcmVhZGllZHx8KHRoaXMuX3JlYWRpZWQ9ITAsdGhpcy5jcmVhdGVDb21wdXRlZFByb3BlcnRpZXMoKSx0aGlzLnBhcnNlRGVjbGFyYXRpb25zKHRoaXMuX19wcm90b19fKSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgidW5yZXNvbHZlZCIpLHRoaXMucmVhZHkoKSl9LGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjazpmdW5jdGlvbihhKXsiY2xhc3MiIT09YSYmInN0eWxlIiE9PWEmJnRoaXMuYXR0cmlidXRlVG9Qcm9wZXJ0eShhLHRoaXMuZ2V0QXR0cmlidXRlKGEpKSx0aGlzLmF0dHJpYnV0ZUNoYW5nZWQmJnRoaXMuYXR0cmlidXRlQ2hhbmdlZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGF0dGFjaGVkQ2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbFVuYmluZEFsbCgpLHRoaXMuYXR0YWNoZWQmJnRoaXMuYXR0YWNoZWQoKSx0aGlzLmhhc0JlZW5BdHRhY2hlZHx8KHRoaXMuaGFzQmVlbkF0dGFjaGVkPSEwLHRoaXMuZG9tUmVhZHkmJnRoaXMuYXN5bmMoImRvbVJlYWR5IikpfSxkZXRhY2hlZENhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5wcmV2ZW50RGlzcG9zZXx8dGhpcy5hc3luY1VuYmluZEFsbCgpLHRoaXMuZGV0YWNoZWQmJnRoaXMuZGV0YWNoZWQoKSx0aGlzLmxlZnRWaWV3JiZ0aGlzLmxlZnRWaWV3KCl9LHBhcnNlRGVjbGFyYXRpb25zOmZ1bmN0aW9uKGEpe2EmJmEuZWxlbWVudCYmKHRoaXMucGFyc2VEZWNsYXJhdGlvbnMoYS5fX3Byb3RvX18pLGEucGFyc2VEZWNsYXJhdGlvbi5jYWxsKHRoaXMsYS5lbGVtZW50KSl9LHBhcnNlRGVjbGFyYXRpb246ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5mZXRjaFRlbXBsYXRlKGEpO2lmKGIpe3ZhciBjPXRoaXMuc2hhZG93RnJvbVRlbXBsYXRlKGIpO3RoaXMuc2hhZG93Um9vdHNbYS5uYW1lXT1jfX0sZmV0Y2hUZW1wbGF0ZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpfSxzaGFkb3dGcm9tVGVtcGxhdGU6ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9dGhpcy5jcmVhdGVTaGFkb3dSb290KCksYz10aGlzLmluc3RhbmNlVGVtcGxhdGUoYSk7cmV0dXJuIGIuYXBwZW5kQ2hpbGQoYyksdGhpcy5zaGFkb3dSb290UmVhZHkoYixhKSxifX0sbGlnaHRGcm9tVGVtcGxhdGU6ZnVuY3Rpb24oYSxiKXtpZihhKXt0aGlzLmV2ZW50Q29udHJvbGxlcj10aGlzO3ZhciBjPXRoaXMuaW5zdGFuY2VUZW1wbGF0ZShhKTtyZXR1cm4gYj90aGlzLmluc2VydEJlZm9yZShjLGIpOnRoaXMuYXBwZW5kQ2hpbGQoYyksdGhpcy5zaGFkb3dSb290UmVhZHkodGhpcyksY319LHNoYWRvd1Jvb3RSZWFkeTpmdW5jdGlvbihhKXt0aGlzLm1hcnNoYWxOb2RlUmVmZXJlbmNlcyhhKX0sbWFyc2hhbE5vZGVSZWZlcmVuY2VzOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuJD10aGlzLiR8fHt9O2lmKGEpZm9yKHZhciBjLGQ9YS5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdIiksZT0wLGY9ZC5sZW5ndGg7Zj5lJiYoYz1kW2VdKTtlKyspYltjLmlkXT1jfSxvbk11dGF0aW9uOmZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSl7Yi5jYWxsKHRoaXMsYyxhKSxjLmRpc2Nvbm5lY3QoKX0uYmluZCh0aGlzKSk7Yy5vYnNlcnZlKGEse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSl9fTtjLnByb3RvdHlwZT1kLGQuY29uc3RydWN0b3I9YyxhLkJhc2U9YyxhLmlzQmFzZT1iLGEuYXBpLmluc3RhbmNlLmJhc2U9ZH0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXtyZXR1cm4gYS5fX3Byb3RvX199ZnVuY3Rpb24gYyhhLGIpe3ZhciBjPSIiLGQ9ITE7YiYmKGM9Yi5sb2NhbE5hbWUsZD1iLmhhc0F0dHJpYnV0ZSgiaXMiKSk7dmFyIGU9V2ViQ29tcG9uZW50cy5TaGFkb3dDU1MubWFrZVNjb3BlU2VsZWN0b3IoYyxkKTtyZXR1cm4gV2ViQ29tcG9uZW50cy5TaGFkb3dDU1Muc2hpbUNzc1RleHQoYSxlKX12YXIgZD0od2luZG93LldlYkNvbXBvbmVudHM/V2ViQ29tcG9uZW50cy5mbGFncy5sb2c6e30sd2luZG93LlNoYWRvd0RPTVBvbHlmaWxsKSxlPSJlbGVtZW50IixmPSJjb250cm9sbGVyIixnPXtTVFlMRV9TQ09QRV9BVFRSSUJVVEU6ZSxpbnN0YWxsQ29udHJvbGxlclN0eWxlczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZmluZFN0eWxlU2NvcGUoKTtpZihhJiYhdGhpcy5zY29wZUhhc05hbWVkU3R5bGUoYSx0aGlzLmxvY2FsTmFtZSkpe2Zvcih2YXIgYz1iKHRoaXMpLGQ9IiI7YyYmYy5lbGVtZW50OylkKz1jLmVsZW1lbnQuY3NzVGV4dEZvclNjb3BlKGYpLGM9YihjKTtkJiZ0aGlzLmluc3RhbGxTY29wZUNzc1RleHQoZCxhKX19LGluc3RhbGxTY29wZVN0eWxlOmZ1bmN0aW9uKGEsYixjKXt2YXIgYz1jfHx0aGlzLmZpbmRTdHlsZVNjb3BlKCksYj1ifHwiIjtpZihjJiYhdGhpcy5zY29wZUhhc05hbWVkU3R5bGUoYyx0aGlzLmxvY2FsTmFtZStiKSl7dmFyIGQ9IiI7aWYoYSBpbnN0YW5jZW9mIEFycmF5KWZvcih2YXIgZSxmPTAsZz1hLmxlbmd0aDtnPmYmJihlPWFbZl0pO2YrKylkKz1lLnRleHRDb250ZW50KyJcblxuIjtlbHNlIGQ9YS50ZXh0Q29udGVudDt0aGlzLmluc3RhbGxTY29wZUNzc1RleHQoZCxjLGIpfX0saW5zdGFsbFNjb3BlQ3NzVGV4dDpmdW5jdGlvbihhLGIsZSl7aWYoYj1ifHx0aGlzLmZpbmRTdHlsZVNjb3BlKCksZT1lfHwiIixiKXtkJiYoYT1jKGEsYi5ob3N0KSk7dmFyIGc9dGhpcy5lbGVtZW50LmNzc1RleHRUb1Njb3BlU3R5bGUoYSxmKTtQb2x5bWVyLmFwcGx5U3R5bGVUb1Njb3BlKGcsYiksdGhpcy5zdHlsZUNhY2hlRm9yU2NvcGUoYilbdGhpcy5sb2NhbE5hbWUrZV09ITB9fSxmaW5kU3R5bGVTY29wZTpmdW5jdGlvbihhKXtmb3IodmFyIGI9YXx8dGhpcztiLnBhcmVudE5vZGU7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBifSxzY29wZUhhc05hbWVkU3R5bGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnN0eWxlQ2FjaGVGb3JTY29wZShhKTtyZXR1cm4gY1tiXX0sc3R5bGVDYWNoZUZvclNjb3BlOmZ1bmN0aW9uKGEpe2lmKGQpe3ZhciBiPWEuaG9zdD9hLmhvc3QubG9jYWxOYW1lOmEubG9jYWxOYW1lO3JldHVybiBoW2JdfHwoaFtiXT17fSl9cmV0dXJuIGEuX3Njb3BlU3R5bGVzPWEuX3Njb3BlU3R5bGVzfHx7fX19LGg9e307YS5hcGkuaW5zdGFuY2Uuc3R5bGVzPWd9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXtpZigic3RyaW5nIiE9dHlwZW9mIGEpe3ZhciBjPWJ8fGRvY3VtZW50Ll9jdXJyZW50U2NyaXB0O2lmKGI9YSxhPWMmJmMucGFyZW50Tm9kZSYmYy5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZT9jLnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCJuYW1lIik6IiIsIWEpdGhyb3ciRWxlbWVudCBuYW1lIGNvdWxkIG5vdCBiZSBpbmZlcnJlZC4ifWlmKGYoYSkpdGhyb3ciQWxyZWFkeSByZWdpc3RlcmVkIChQb2x5bWVyKSBwcm90b3R5cGUgZm9yIGVsZW1lbnQgIithO2UoYSxiKSxkKGEpfWZ1bmN0aW9uIGMoYSxiKXtpW2FdPWJ9ZnVuY3Rpb24gZChhKXtpW2FdJiYoaVthXS5yZWdpc3RlcldoZW5SZWFkeSgpLGRlbGV0ZSBpW2FdKX1mdW5jdGlvbiBlKGEsYil7cmV0dXJuIGpbYV09Ynx8e319ZnVuY3Rpb24gZihhKXtyZXR1cm4galthXX1mdW5jdGlvbiBnKGEsYil7aWYoInN0cmluZyIhPXR5cGVvZiBiKXJldHVybiExO3ZhciBjPUhUTUxFbGVtZW50LmdldFByb3RvdHlwZUZvclRhZyhiKSxkPWMmJmMuY29uc3RydWN0b3I7cmV0dXJuIGQ/Q3VzdG9tRWxlbWVudHNbImluc3RhbmNlb2YiXT9DdXN0b21FbGVtZW50c1siaW5zdGFuY2VvZiJdKGEsZCk6YSBpbnN0YW5jZW9mIGQ6ITF9dmFyIGg9YS5leHRlbmQsaT0oYS5hcGkse30pLGo9e307YS5nZXRSZWdpc3RlcmVkUHJvdG90eXBlPWYsYS53YWl0aW5nRm9yUHJvdG90eXBlPWMsYS5pbnN0YW5jZU9mVHlwZT1nLHdpbmRvdy5Qb2x5bWVyPWIsaChQb2x5bWVyLGEpLFdlYkNvbXBvbmVudHMuY29uc3VtZURlY2xhcmF0aW9ucyYmV2ViQ29tcG9uZW50cy5jb25zdW1lRGVjbGFyYXRpb25zKGZ1bmN0aW9uKGEpe2lmKGEpZm9yKHZhciBjLGQ9MCxlPWEubGVuZ3RoO2U+ZCYmKGM9YVtkXSk7ZCsrKWIuYXBwbHkobnVsbCxjKX0pfShQb2x5bWVyKSxmdW5jdGlvbihhKXt2YXIgYj17cmVzb2x2ZUVsZW1lbnRQYXRoczpmdW5jdGlvbihhKXtQb2x5bWVyLnVybFJlc29sdmVyLnJlc29sdmVEb20oYSl9LGFkZFJlc29sdmVQYXRoQXBpOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGUoImFzc2V0cGF0aCIpfHwiIixiPW5ldyBVUkwoYSx0aGlzLm93bmVyRG9jdW1lbnQuYmFzZVVSSSk7dGhpcy5wcm90b3R5cGUucmVzb2x2ZVBhdGg9ZnVuY3Rpb24oYSxjKXt2YXIgZD1uZXcgVVJMKGEsY3x8Yik7cmV0dXJuIGQuaHJlZn19fTthLmFwaS5kZWNsYXJhdGlvbi5wYXRoPWJ9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXt2YXIgYz1uZXcgVVJMKGEuZ2V0QXR0cmlidXRlKCJocmVmIiksYikuaHJlZjtyZXR1cm4iQGltcG9ydCAnIitjKyInOyJ9ZnVuY3Rpb24gYyhhLGIpe2lmKGEpe2I9PT1kb2N1bWVudCYmKGI9ZG9jdW1lbnQuaGVhZCksaSYmKGI9ZG9jdW1lbnQuaGVhZCk7dmFyIGM9ZChhLnRleHRDb250ZW50KSxlPWEuZ2V0QXR0cmlidXRlKGgpO2UmJmMuc2V0QXR0cmlidXRlKGgsZSk7dmFyIGY9Yi5maXJzdEVsZW1lbnRDaGlsZDtpZihiPT09ZG9jdW1lbnQuaGVhZCl7dmFyIGc9InN0eWxlWyIraCsiXSIsaj1kb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3JBbGwoZyk7ai5sZW5ndGgmJihmPWpbai5sZW5ndGgtMV0ubmV4dEVsZW1lbnRTaWJsaW5nKX1iLmluc2VydEJlZm9yZShjLGYpfX1mdW5jdGlvbiBkKGEsYil7Yj1ifHxkb2N1bWVudCxiPWIuY3JlYXRlRWxlbWVudD9iOmIub3duZXJEb2N1bWVudDt2YXIgYz1iLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIGMudGV4dENvbnRlbnQ9YSxjfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIGEmJmEuX19yZXNvdXJjZXx8IiJ9ZnVuY3Rpb24gZihhLGIpe3JldHVybiBxP3EuY2FsbChhLGIpOnZvaWQgMH12YXIgZz0od2luZG93LldlYkNvbXBvbmVudHM/V2ViQ29tcG9uZW50cy5mbGFncy5sb2c6e30sYS5hcGkuaW5zdGFuY2Uuc3R5bGVzKSxoPWcuU1RZTEVfU0NPUEVfQVRUUklCVVRFLGk9d2luZG93LlNoYWRvd0RPTVBvbHlmaWxsLGo9InN0eWxlIixrPSJAaW1wb3J0IixsPSJsaW5rW3JlbD1zdHlsZXNoZWV0XSIsbT0iZ2xvYmFsIixuPSJwb2x5bWVyLXNjb3BlIixvPXtsb2FkU3R5bGVzOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZmV0Y2hUZW1wbGF0ZSgpLGM9YiYmdGhpcy50ZW1wbGF0ZUNvbnRlbnQoKTtpZihjKXt0aGlzLmNvbnZlcnRTaGVldHNUb1N0eWxlcyhjKTt2YXIgZD10aGlzLmZpbmRMb2FkYWJsZVN0eWxlcyhjKTtpZihkLmxlbmd0aCl7dmFyIGU9Yi5vd25lckRvY3VtZW50LmJhc2VVUkk7cmV0dXJuIFBvbHltZXIuc3R5bGVSZXNvbHZlci5sb2FkU3R5bGVzKGQsZSxhKX19YSYmYSgpfSxjb252ZXJ0U2hlZXRzVG9TdHlsZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjLGUsZj1hLnF1ZXJ5U2VsZWN0b3JBbGwobCksZz0wLGg9Zi5sZW5ndGg7aD5nJiYoYz1mW2ddKTtnKyspZT1kKGIoYyx0aGlzLm93bmVyRG9jdW1lbnQuYmFzZVVSSSksdGhpcy5vd25lckRvY3VtZW50KSx0aGlzLmNvcHlTaGVldEF0dHJpYnV0ZXMoZSxjKSxjLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsYyl9LGNvcHlTaGVldEF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9Yi5hdHRyaWJ1dGVzLGY9ZS5sZW5ndGg7KGM9ZVtkXSkmJmY+ZDtkKyspInJlbCIhPT1jLm5hbWUmJiJocmVmIiE9PWMubmFtZSYmYS5zZXRBdHRyaWJ1dGUoYy5uYW1lLGMudmFsdWUpfSxmaW5kTG9hZGFibGVTdHlsZXM6ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoYSlmb3IodmFyIGMsZD1hLnF1ZXJ5U2VsZWN0b3JBbGwoaiksZT0wLGY9ZC5sZW5ndGg7Zj5lJiYoYz1kW2VdKTtlKyspYy50ZXh0Q29udGVudC5tYXRjaChrKSYmYi5wdXNoKGMpO3JldHVybiBifSxpbnN0YWxsU2hlZXRzOmZ1bmN0aW9uKCl7dGhpcy5jYWNoZVNoZWV0cygpLHRoaXMuY2FjaGVTdHlsZXMoKSx0aGlzLmluc3RhbGxMb2NhbFNoZWV0cygpLHRoaXMuaW5zdGFsbEdsb2JhbFN0eWxlcygpfSxjYWNoZVNoZWV0czpmdW5jdGlvbigpe3RoaXMuc2hlZXRzPXRoaXMuZmluZE5vZGVzKGwpLHRoaXMuc2hlZXRzLmZvckVhY2goZnVuY3Rpb24oYSl7YS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSl9KX0sY2FjaGVTdHlsZXM6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlcz10aGlzLmZpbmROb2RlcyhqKyJbIituKyJdIiksdGhpcy5zdHlsZXMuZm9yRWFjaChmdW5jdGlvbihhKXthLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKX0pfSxpbnN0YWxsTG9jYWxTaGVldHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnNoZWV0cy5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIWEuaGFzQXR0cmlidXRlKG4pfSksYj10aGlzLnRlbXBsYXRlQ29udGVudCgpO2lmKGIpe3ZhciBjPSIiO2lmKGEuZm9yRWFjaChmdW5jdGlvbihhKXtjKz1lKGEpKyJcbiJ9KSxjKXt2YXIgZj1kKGMsdGhpcy5vd25lckRvY3VtZW50KTtiLmluc2VydEJlZm9yZShmLGIuZmlyc3RDaGlsZCl9fX0sZmluZE5vZGVzOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5xdWVyeVNlbGVjdG9yQWxsKGEpLmFycmF5KCksZD10aGlzLnRlbXBsYXRlQ29udGVudCgpO2lmKGQpe3ZhciBlPWQucXVlcnlTZWxlY3RvckFsbChhKS5hcnJheSgpO2M9Yy5jb25jYXQoZSl9cmV0dXJuIGI/Yy5maWx0ZXIoYik6Y30saW5zdGFsbEdsb2JhbFN0eWxlczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuc3R5bGVGb3JTY29wZShtKTtjKGEsZG9jdW1lbnQuaGVhZCl9LGNzc1RleHRGb3JTY29wZTpmdW5jdGlvbihhKXt2YXIgYj0iIixjPSJbIituKyI9IithKyJdIixkPWZ1bmN0aW9uKGEpe3JldHVybiBmKGEsYyl9LGc9dGhpcy5zaGVldHMuZmlsdGVyKGQpO2cuZm9yRWFjaChmdW5jdGlvbihhKXtiKz1lKGEpKyJcblxuIn0pO3ZhciBoPXRoaXMuc3R5bGVzLmZpbHRlcihkKTtyZXR1cm4gaC5mb3JFYWNoKGZ1bmN0aW9uKGEpe2IrPWEudGV4dENvbnRlbnQrIlxuXG4ifSksYn0sc3R5bGVGb3JTY29wZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNzc1RleHRGb3JTY29wZShhKTtyZXR1cm4gdGhpcy5jc3NUZXh0VG9TY29wZVN0eWxlKGIsYSl9LGNzc1RleHRUb1Njb3BlU3R5bGU6ZnVuY3Rpb24oYSxiKXtpZihhKXt2YXIgYz1kKGEpO3JldHVybiBjLnNldEF0dHJpYnV0ZShoLHRoaXMuZ2V0QXR0cmlidXRlKCJuYW1lIikrIi0iK2IpLGN9fX0scD1IVE1MRWxlbWVudC5wcm90b3R5cGUscT1wLm1hdGNoZXN8fHAubWF0Y2hlc1NlbGVjdG9yfHxwLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8cC5tb3pNYXRjaGVzU2VsZWN0b3I7YS5hcGkuZGVjbGFyYXRpb24uc3R5bGVzPW8sYS5hcHBseVN0eWxlVG9TY29wZT1jfShQb2x5bWVyKSxmdW5jdGlvbihhKXt2YXIgYj0od2luZG93LldlYkNvbXBvbmVudHM/V2ViQ29tcG9uZW50cy5mbGFncy5sb2c6e30sYS5hcGkuaW5zdGFuY2UuZXZlbnRzKSxjPWIuRVZFTlRfUFJFRklYLGQ9e307WyJ3ZWJraXRBbmltYXRpb25TdGFydCIsIndlYmtpdEFuaW1hdGlvbkVuZCIsIndlYmtpdFRyYW5zaXRpb25FbmQiLCJET01Gb2N1c091dCIsIkRPTUZvY3VzSW4iLCJET01Nb3VzZVNjcm9sbCJdLmZvckVhY2goZnVuY3Rpb24oYSl7ZFthLnRvTG93ZXJDYXNlKCldPWF9KTt2YXIgZT17cGFyc2VIb3N0RXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5wcm90b3R5cGUuZXZlbnREZWxlZ2F0ZXM7dGhpcy5hZGRBdHRyaWJ1dGVEZWxlZ2F0ZXMoYSl9LGFkZEF0dHJpYnV0ZURlbGVnYXRlczpmdW5jdGlvbihhKXtmb3IodmFyIGIsYz0wO2I9dGhpcy5hdHRyaWJ1dGVzW2NdO2MrKyl0aGlzLmhhc0V2ZW50UHJlZml4KGIubmFtZSkmJihhW3RoaXMucmVtb3ZlRXZlbnRQcmVmaXgoYi5uYW1lKV09Yi52YWx1ZS5yZXBsYWNlKCJ7eyIsIiIpLnJlcGxhY2UoIn19IiwiIikudHJpbSgpKX0saGFzRXZlbnRQcmVmaXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJiJvIj09PWFbMF0mJiJuIj09PWFbMV0mJiItIj09PWFbMl19LHJlbW92ZUV2ZW50UHJlZml4OmZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKGYpfSxmaW5kQ29udHJvbGxlcjpmdW5jdGlvbihhKXtmb3IoO2EucGFyZW50Tm9kZTspe2lmKGEuZXZlbnRDb250cm9sbGVyKXJldHVybiBhLmV2ZW50Q29udHJvbGxlcjthPWEucGFyZW50Tm9kZX1yZXR1cm4gYS5ob3N0fSxnZXRFdmVudEhhbmRsZXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKGUpe2EmJmEuUG9seW1lckJhc2V8fChhPWQuZmluZENvbnRyb2xsZXIoYikpO3ZhciBmPVtlLGUuZGV0YWlsLGUuY3VycmVudFRhcmdldF07YS5kaXNwYXRjaE1ldGhvZChhLGMsZil9fSxwcmVwYXJlRXZlbnRCaW5kaW5nOmZ1bmN0aW9uKGEsYil7aWYodGhpcy5oYXNFdmVudFByZWZpeChiKSl7dmFyIGM9dGhpcy5yZW1vdmVFdmVudFByZWZpeChiKTtjPWRbY118fGM7dmFyIGU9dGhpcztyZXR1cm4gZnVuY3Rpb24oYixkLGYpe2Z1bmN0aW9uIGcoKXtyZXR1cm4ie3sgIithKyIgfX0ifXZhciBoPWUuZ2V0RXZlbnRIYW5kbGVyKHZvaWQgMCxkLGEpO3JldHVybiBQb2x5bWVyR2VzdHVyZXMuYWRkRXZlbnRMaXN0ZW5lcihkLGMsaCksZj92b2lkIDA6e29wZW46ZyxkaXNjYXJkQ2hhbmdlczpnLGNsb3NlOmZ1bmN0aW9uKCl7UG9seW1lckdlc3R1cmVzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCxjLGgpfX19fX19LGY9Yy5sZW5ndGg7YS5hcGkuZGVjbGFyYXRpb24uZXZlbnRzPWV9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe3ZhciBiPVsiYXR0cmlidXRlIl0sYz17aW5mZXJPYnNlcnZlcnM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1hLm9ic2VydmU7Zm9yKHZhciBkIGluIGEpIkNoYW5nZWQiPT09ZC5zbGljZSgtNykmJihiPWQuc2xpY2UoMCwtNyksdGhpcy5jYW5PYnNlcnZlUHJvcGVydHkoYikmJihjfHwoYz1hLm9ic2VydmU9e30pLGNbYl09Y1tiXXx8ZCkpfSxjYW5PYnNlcnZlUHJvcGVydHk6ZnVuY3Rpb24oYSl7cmV0dXJuIGIuaW5kZXhPZihhKTwwfSxleHBsb2RlT2JzZXJ2ZXJzOmZ1bmN0aW9uKGEpe3ZhciBiPWEub2JzZXJ2ZTtpZihiKXt2YXIgYz17fTtmb3IodmFyIGQgaW4gYilmb3IodmFyIGUsZj1kLnNwbGl0KCIgIiksZz0wO2U9ZltnXTtnKyspY1tlXT1iW2RdO2Eub2JzZXJ2ZT1jfX0sb3B0aW1pemVQcm9wZXJ0eU1hcHM6ZnVuY3Rpb24oYSl7aWYoYS5vYnNlcnZlKXt2YXIgYj1hLl9vYnNlcnZlTmFtZXM9W107Zm9yKHZhciBjIGluIGEub2JzZXJ2ZSlmb3IodmFyIGQsZT1jLnNwbGl0KCIgIiksZj0wO2Q9ZVtmXTtmKyspYi5wdXNoKGQpfWlmKGEucHVibGlzaCl7dmFyIGI9YS5fcHVibGlzaE5hbWVzPVtdO2Zvcih2YXIgYyBpbiBhLnB1Ymxpc2gpYi5wdXNoKGMpfWlmKGEuY29tcHV0ZWQpe3ZhciBiPWEuX2NvbXB1dGVkTmFtZXM9W107Zm9yKHZhciBjIGluIGEuY29tcHV0ZWQpYi5wdXNoKGMpfX0scHVibGlzaFByb3BlcnRpZXM6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnB1Ymxpc2g7YyYmKHRoaXMucmVxdWlyZVByb3BlcnRpZXMoYyxhLGIpLHRoaXMuZmlsdGVySW52YWxpZEFjY2Vzc29yTmFtZXMoYyksYS5fcHVibGlzaExDPXRoaXMubG93ZXJDYXNlTWFwKGMpKTt2YXIgZD1hLmNvbXB1dGVkO2QmJnRoaXMuZmlsdGVySW52YWxpZEFjY2Vzc29yTmFtZXMoZCl9LGZpbHRlckludmFsaWRBY2Nlc3Nvck5hbWVzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydHlOYW1lQmxhY2tsaXN0W2JdJiYoY29uc29sZS53YXJuKCdDYW5ub3QgZGVmaW5lIHByb3BlcnR5ICInK2IrJyIgZm9yIGVsZW1lbnQgIicrdGhpcy5uYW1lKyciIGJlY2F1c2UgaXQgaGFzIHRoZSBzYW1lIG5hbWUgYXMgYW4gSFRNTEVsZW1lbnQgcHJvcGVydHksIGFuZCBub3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgb3ZlcnJpZGluZyB0aGF0LiBDb25zaWRlciBnaXZpbmcgaXQgYSBkaWZmZXJlbnQgbmFtZS4nKSxkZWxldGUgYVtiXSl9LHJlcXVpcmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKGEsYil7Yi5yZWZsZWN0PWIucmVmbGVjdHx8e307Zm9yKHZhciBjIGluIGEpe3ZhciBkPWFbY107ZCYmdm9pZCAwIT09ZC5yZWZsZWN0JiYoYi5yZWZsZWN0W2NdPUJvb2xlYW4oZC5yZWZsZWN0KSxkPWQudmFsdWUpLHZvaWQgMCE9PWQmJihiW2NdPWQpfX0sbG93ZXJDYXNlTWFwOmZ1bmN0aW9uKGEpe3ZhciBiPXt9O2Zvcih2YXIgYyBpbiBhKWJbYy50b0xvd2VyQ2FzZSgpXT1jO3JldHVybiBifSxjcmVhdGVQcm9wZXJ0eUFjY2Vzc29yOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5wcm90b3R5cGUsZD1hKyJfIixlPWErIk9ic2VydmFibGVfIjtjW2RdPWNbYV0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsYSx7Z2V0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpc1tlXTtyZXR1cm4gYSYmYS5kZWxpdmVyKCksdGhpc1tkXX0sc2V0OmZ1bmN0aW9uKGMpe2lmKGIpcmV0dXJuIHRoaXNbZF07dmFyIGY9dGhpc1tlXTtpZihmKXJldHVybiB2b2lkIGYuc2V0VmFsdWUoYyk7dmFyIGc9dGhpc1tkXTtyZXR1cm4gdGhpc1tkXT1jLHRoaXMuZW1pdFByb3BlcnR5Q2hhbmdlUmVjb3JkKGEsYyxnKSxjfSxjb25maWd1cmFibGU6ITB9KX0sY3JlYXRlUHJvcGVydHlBY2Nlc3NvcnM6ZnVuY3Rpb24oYSl7dmFyIGI9YS5fY29tcHV0ZWROYW1lcztpZihiJiZiLmxlbmd0aClmb3IodmFyIGMsZD0wLGU9Yi5sZW5ndGg7ZT5kJiYoYz1iW2RdKTtkKyspdGhpcy5jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKGMsITApO3ZhciBiPWEuX3B1Ymxpc2hOYW1lcztpZihiJiZiLmxlbmd0aClmb3IodmFyIGMsZD0wLGU9Yi5sZW5ndGg7ZT5kJiYoYz1iW2RdKTtkKyspYS5jb21wdXRlZCYmYS5jb21wdXRlZFtjXXx8dGhpcy5jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKGMpfSxwcm9wZXJ0eU5hbWVCbGFja2xpc3Q6e2NoaWxkcmVuOjEsImNsYXNzIjoxLGlkOjEsaGlkZGVuOjEsc3R5bGU6MSx0aXRsZToxfX07YS5hcGkuZGVjbGFyYXRpb24ucHJvcGVydGllcz1jfShQb2x5bWVyKSxmdW5jdGlvbihhKXt2YXIgYj0iYXR0cmlidXRlcyIsYz0vXHN8LC8sZD17aW5oZXJpdEF0dHJpYnV0ZXNPYmplY3RzOmZ1bmN0aW9uKGEpe3RoaXMuaW5oZXJpdE9iamVjdChhLCJwdWJsaXNoTEMiKSx0aGlzLmluaGVyaXRPYmplY3QoYSwiX2luc3RhbmNlQXR0cmlidXRlcyIpfSxwdWJsaXNoQXR0cmlidXRlczpmdW5jdGlvbihhKXt2YXIgZD10aGlzLmdldEF0dHJpYnV0ZShiKTtpZihkKWZvcih2YXIgZSxmPWEucHVibGlzaHx8KGEucHVibGlzaD17fSksZz1kLnNwbGl0KGMpLGg9MCxpPWcubGVuZ3RoO2k+aDtoKyspZT1nW2hdLnRyaW0oKSxlJiZ2b2lkIDA9PT1mW2VdJiYoZltlXT12b2lkIDApfSxhY2N1bXVsYXRlSW5zdGFuY2VBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9dGhpcy5wcm90b3R5cGUuX2luc3RhbmNlQXR0cmlidXRlcyxjPXRoaXMuYXR0cmlidXRlcyxkPTAsZT1jLmxlbmd0aDtlPmQmJihhPWNbZF0pO2QrKyl0aGlzLmlzSW5zdGFuY2VBdHRyaWJ1dGUoYS5uYW1lKSYmKGJbYS5uYW1lXT1hLnZhbHVlKX0saXNJbnN0YW5jZUF0dHJpYnV0ZTpmdW5jdGlvbihhKXtyZXR1cm4hdGhpcy5ibGFja0xpc3RbYV0mJiJvbi0iIT09YS5zbGljZSgwLDMpfSxibGFja0xpc3Q6e25hbWU6MSwiZXh0ZW5kcyI6MSxjb25zdHJ1Y3RvcjoxLG5vc2NyaXB0OjEsYXNzZXRwYXRoOjEsImNhY2hlLWNzc3RleHQiOjF9fTtkLmJsYWNrTGlzdFtiXT0xLGEuYXBpLmRlY2xhcmF0aW9uLmF0dHJpYnV0ZXM9ZH0oUG9seW1lciksZnVuY3Rpb24oYSl7dmFyIGI9YS5hcGkuZGVjbGFyYXRpb24uZXZlbnRzLGM9bmV3IFBvbHltZXJFeHByZXNzaW9ucyxkPWMucHJlcGFyZUJpbmRpbmc7Yy5wcmVwYXJlQmluZGluZz1mdW5jdGlvbihhLGUsZil7cmV0dXJuIGIucHJlcGFyZUV2ZW50QmluZGluZyhhLGUsZil8fGQuY2FsbChjLGEsZSxmKX07dmFyIGU9e3N5bnRheDpjLGZldGNoVGVtcGxhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKCJ0ZW1wbGF0ZSIpfSx0ZW1wbGF0ZUNvbnRlbnQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmZldGNoVGVtcGxhdGUoKTtyZXR1cm4gYSYmYS5jb250ZW50fSxpbnN0YWxsQmluZGluZ0RlbGVnYXRlOmZ1bmN0aW9uKGEpe2EmJihhLmJpbmRpbmdEZWxlZ2F0ZT10aGlzLnN5bnRheCl9fTthLmFwaS5kZWNsYXJhdGlvbi5tZHY9ZX0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXtpZighT2JqZWN0Ll9fcHJvdG9fXyl7dmFyIGI9T2JqZWN0LmdldFByb3RvdHlwZU9mKGEpO2EuX19wcm90b19fPWIsZChiKSYmKGIuX19wcm90b19fPU9iamVjdC5nZXRQcm90b3R5cGVPZihiKSl9fXZhciBjPWEuYXBpLGQ9YS5pc0Jhc2UsZT1hLmV4dGVuZCxmPXdpbmRvdy5TaGFkb3dET01Qb2x5ZmlsbCxnPXtyZWdpc3RlcjpmdW5jdGlvbihhLGIpe3RoaXMuYnVpbGRQcm90b3R5cGUoYSxiKSx0aGlzLnJlZ2lzdGVyUHJvdG90eXBlKGEsYiksdGhpcy5wdWJsaXNoQ29uc3RydWN0b3IoKX0sYnVpbGRQcm90b3R5cGU6ZnVuY3Rpb24oYixjKXt2YXIgZD1hLmdldFJlZ2lzdGVyZWRQcm90b3R5cGUoYiksZT10aGlzLmdlbmVyYXRlQmFzZVByb3RvdHlwZShjKTt0aGlzLmRlc3VnYXJCZWZvcmVDaGFpbmluZyhkLGUpLHRoaXMucHJvdG90eXBlPXRoaXMuY2hhaW5Qcm90b3R5cGVzKGQsZSksdGhpcy5kZXN1Z2FyQWZ0ZXJDaGFpbmluZyhiLGMpfSxkZXN1Z2FyQmVmb3JlQ2hhaW5pbmc6ZnVuY3Rpb24oYSxiKXthLmVsZW1lbnQ9dGhpcyx0aGlzLnB1Ymxpc2hBdHRyaWJ1dGVzKGEsYiksdGhpcy5wdWJsaXNoUHJvcGVydGllcyhhLGIpLHRoaXMuaW5mZXJPYnNlcnZlcnMoYSksdGhpcy5leHBsb2RlT2JzZXJ2ZXJzKGEpfSxjaGFpblByb3RvdHlwZXM6ZnVuY3Rpb24oYSxjKXt0aGlzLmluaGVyaXRNZXRhRGF0YShhLGMpO3ZhciBkPXRoaXMuY2hhaW5PYmplY3QoYSxjKTtyZXR1cm4gYihkKSxkfSxpbmhlcml0TWV0YURhdGE6ZnVuY3Rpb24oYSxiKXt0aGlzLmluaGVyaXRPYmplY3QoIm9ic2VydmUiLGEsYiksdGhpcy5pbmhlcml0T2JqZWN0KCJwdWJsaXNoIixhLGIpLHRoaXMuaW5oZXJpdE9iamVjdCgicmVmbGVjdCIsYSxiKSx0aGlzLmluaGVyaXRPYmplY3QoIl9wdWJsaXNoTEMiLGEsYiksdGhpcy5pbmhlcml0T2JqZWN0KCJfaW5zdGFuY2VBdHRyaWJ1dGVzIixhLGIpLHRoaXMuaW5oZXJpdE9iamVjdCgiZXZlbnREZWxlZ2F0ZXMiLGEsYil9LGRlc3VnYXJBZnRlckNoYWluaW5nOmZ1bmN0aW9uKGEsYil7dGhpcy5vcHRpbWl6ZVByb3BlcnR5TWFwcyh0aGlzLnByb3RvdHlwZSksdGhpcy5jcmVhdGVQcm9wZXJ0eUFjY2Vzc29ycyh0aGlzLnByb3RvdHlwZSksdGhpcy5pbnN0YWxsQmluZGluZ0RlbGVnYXRlKHRoaXMuZmV0Y2hUZW1wbGF0ZSgpKSx0aGlzLmluc3RhbGxTaGVldHMoKSx0aGlzLnJlc29sdmVFbGVtZW50UGF0aHModGhpcyksdGhpcy5hY2N1bXVsYXRlSW5zdGFuY2VBdHRyaWJ1dGVzKCksdGhpcy5wYXJzZUhvc3RFdmVudHMoKSx0aGlzLmFkZFJlc29sdmVQYXRoQXBpKCksZiYmV2ViQ29tcG9uZW50cy5TaGFkb3dDU1Muc2hpbVN0eWxpbmcodGhpcy50ZW1wbGF0ZUNvbnRlbnQoKSxhLGIpLHRoaXMucHJvdG90eXBlLnJlZ2lzdGVyQ2FsbGJhY2smJnRoaXMucHJvdG90eXBlLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcyl9LHB1Ymxpc2hDb25zdHJ1Y3RvcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKCJjb25zdHJ1Y3RvciIpO2EmJih3aW5kb3dbYV09dGhpcy5jdG9yKX0sZ2VuZXJhdGVCYXNlUHJvdG90eXBlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZmluZEJhc2VQcm90b3R5cGUoYSk7aWYoIWIpe3ZhciBiPUhUTUxFbGVtZW50LmdldFByb3RvdHlwZUZvclRhZyhhKTtiPXRoaXMuZW5zdXJlQmFzZUFwaShiKSxoW2FdPWJ9cmV0dXJuIGJ9LGZpbmRCYXNlUHJvdG90eXBlOmZ1bmN0aW9uKGEpe3JldHVybiBoW2FdfSxlbnN1cmVCYXNlQXBpOmZ1bmN0aW9uKGEpe2lmKGEuUG9seW1lckJhc2UpcmV0dXJuIGE7dmFyIGI9T2JqZWN0LmNyZWF0ZShhKTtyZXR1cm4gYy5wdWJsaXNoKGMuaW5zdGFuY2UsYiksdGhpcy5taXhpbk1ldGhvZChiLGEsYy5pbnN0YW5jZS5tZHYsImJpbmQiKSxifSxtaXhpbk1ldGhvZDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1mdW5jdGlvbihhKXtyZXR1cm4gYltkXS5hcHBseSh0aGlzLGEpfTthW2RdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWl4aW5TdXBlcj1lLGNbZF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0saW5oZXJpdE9iamVjdDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YlthXXx8e307YlthXT10aGlzLmNoYWluT2JqZWN0KGQsY1thXSl9LHJlZ2lzdGVyUHJvdG90eXBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9e3Byb3RvdHlwZTp0aGlzLnByb3RvdHlwZX0sZD10aGlzLmZpbmRUeXBlRXh0ZW5zaW9uKGIpO2QmJihjWyJleHRlbmRzIl09ZCksSFRNTEVsZW1lbnQucmVnaXN0ZXIoYSx0aGlzLnByb3RvdHlwZSksdGhpcy5jdG9yPWRvY3VtZW50LnJlZ2lzdGVyRWxlbWVudChhLGMpfSxmaW5kVHlwZUV4dGVuc2lvbjpmdW5jdGlvbihhKXtpZihhJiZhLmluZGV4T2YoIi0iKTwwKXJldHVybiBhO3ZhciBiPXRoaXMuZmluZEJhc2VQcm90b3R5cGUoYSk7cmV0dXJuIGIuZWxlbWVudD90aGlzLmZpbmRUeXBlRXh0ZW5zaW9uKGIuZWxlbWVudFsiZXh0ZW5kcyJdKTp2b2lkIDB9fSxoPXt9O2cuY2hhaW5PYmplY3Q9T2JqZWN0Ll9fcHJvdG9fXz9mdW5jdGlvbihhLGIpe3JldHVybiBhJiZiJiZhIT09YiYmKGEuX19wcm90b19fPWIpLGF9OmZ1bmN0aW9uKGEsYil7aWYoYSYmYiYmYSE9PWIpe3ZhciBjPU9iamVjdC5jcmVhdGUoYik7YT1lKGMsYSl9cmV0dXJuIGF9LGMuZGVjbGFyYXRpb24ucHJvdG90eXBlPWd9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSl7cmV0dXJuIGRvY3VtZW50LmNvbnRhaW5zKGEpP2o6aX1mdW5jdGlvbiBjKCl7cmV0dXJuIGkubGVuZ3RoP2lbMF06alswXX1mdW5jdGlvbiBkKGEpe2Yud2FpdFRvUmVhZHk9ITAsUG9seW1lci5lbmRPZk1pY3JvdGFzayhmdW5jdGlvbigpe0hUTUxJbXBvcnRzLndoZW5SZWFkeShmdW5jdGlvbigpe2YuYWRkUmVhZHlDYWxsYmFjayhhKSxmLndhaXRUb1JlYWR5PSExLGYuY2hlY2soKX0pfSl9ZnVuY3Rpb24gZShhKXtpZih2b2lkIDA9PT1hKXJldHVybiB2b2lkIGYucmVhZHkoKTt2YXIgYj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zi5yZWFkeSgpfSxhKTtQb2x5bWVyLndoZW5SZWFkeShmdW5jdGlvbigpe2NsZWFyVGltZW91dChiKX0pfXZhciBmPXt3YWl0OmZ1bmN0aW9uKGEpe2EuX19xdWV1ZXx8KGEuX19xdWV1ZT17fSxnLnB1c2goYSkpfSxlbnF1ZXVlOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZT1hLl9fcXVldWUmJiFhLl9fcXVldWUuY2hlY2s7cmV0dXJuIGUmJihiKGEpLnB1c2goYSksYS5fX3F1ZXVlLmNoZWNrPWMsYS5fX3F1ZXVlLmdvPWQpLDAhPT10aGlzLmluZGV4T2YoYSl9LGluZGV4T2Y6ZnVuY3Rpb24oYSl7dmFyIGM9YihhKS5pbmRleE9mKGEpO3JldHVybiBjPj0wJiZkb2N1bWVudC5jb250YWlucyhhKSYmKGMrPUhUTUxJbXBvcnRzLnVzZU5hdGl2ZXx8SFRNTEltcG9ydHMucmVhZHk/aS5sZW5ndGg6MWU5KSxjfSxnbzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnJlbW92ZShhKTtiJiYoYS5fX3F1ZXVlLmZsdXNoYWJsZT0hMCx0aGlzLmFkZFRvRmx1c2hRdWV1ZShiKSx0aGlzLmNoZWNrKCkpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGM9dGhpcy5pbmRleE9mKGEpO2lmKDA9PT1jKXJldHVybiBiKGEpLnNoaWZ0KCl9LGNoZWNrOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5uZXh0RWxlbWVudCgpO3JldHVybiBhJiZhLl9fcXVldWUuY2hlY2suY2FsbChhKSx0aGlzLmNhblJlYWR5KCk/KHRoaXMucmVhZHkoKSwhMCk6dm9pZCAwfSxuZXh0RWxlbWVudDpmdW5jdGlvbigpe3JldHVybiBjKCl9LGNhblJlYWR5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMud2FpdFRvUmVhZHkmJnRoaXMuaXNFbXB0eSgpfSxpc0VtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MCxjPWcubGVuZ3RoO2M+YiYmKGE9Z1tiXSk7YisrKWlmKGEuX19xdWV1ZSYmIWEuX19xdWV1ZS5mbHVzaGFibGUpcmV0dXJuO3JldHVybiEwfSxhZGRUb0ZsdXNoUXVldWU6ZnVuY3Rpb24oYSl7aC5wdXNoKGEpfSxmbHVzaDpmdW5jdGlvbigpe2lmKCF0aGlzLmZsdXNoaW5nKXt0aGlzLmZsdXNoaW5nPSEwO2Zvcih2YXIgYTtoLmxlbmd0aDspYT1oLnNoaWZ0KCksYS5fX3F1ZXVlLmdvLmNhbGwoYSksYS5fX3F1ZXVlPW51bGw7dGhpcy5mbHVzaGluZz0hMX19LHJlYWR5OmZ1bmN0aW9uKCl7dmFyIGE9Q3VzdG9tRWxlbWVudHMucmVhZHk7Q3VzdG9tRWxlbWVudHMucmVhZHk9ITEsdGhpcy5mbHVzaCgpLEN1c3RvbUVsZW1lbnRzLnVzZU5hdGl2ZXx8Q3VzdG9tRWxlbWVudHMudXBncmFkZURvY3VtZW50VHJlZShkb2N1bWVudCksQ3VzdG9tRWxlbWVudHMucmVhZHk9YSxQb2x5bWVyLmZsdXNoKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuZmx1c2hSZWFkeUNhbGxiYWNrcyl9LGFkZFJlYWR5Q2FsbGJhY2s6ZnVuY3Rpb24oYSl7YSYmay5wdXNoKGEpfSxmbHVzaFJlYWR5Q2FsbGJhY2tzOmZ1bmN0aW9uKCl7aWYoaylmb3IodmFyIGE7ay5sZW5ndGg7KShhPWsuc2hpZnQoKSkoKX0sd2FpdGluZ0ZvcjpmdW5jdGlvbigpe2Zvcih2YXIgYSxiPVtdLGM9MCxkPWcubGVuZ3RoO2Q+YyYmKGE9Z1tjXSk7YysrKWEuX19xdWV1ZSYmIWEuX19xdWV1ZS5mbHVzaGFibGUmJmIucHVzaChhKTtyZXR1cm4gYn0sd2FpdFRvUmVhZHk6ITB9LGc9W10saD1bXSxpPVtdLGo9W10saz1bXTthLmVsZW1lbnRzPWcsYS53YWl0aW5nRm9yPWYud2FpdGluZ0Zvci5iaW5kKGYpLGEuZm9yY2VSZWFkeT1lLGEucXVldWU9ZixhLndoZW5SZWFkeT1hLndoZW5Qb2x5bWVyUmVhZHk9ZH0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXtyZXR1cm4gQm9vbGVhbihIVE1MRWxlbWVudC5nZXRQcm90b3R5cGVGb3JUYWcoYSkpfWZ1bmN0aW9uIGMoYSl7cmV0dXJuIGEmJmEuaW5kZXhPZigiLSIpPj0wfXZhciBkPWEuZXh0ZW5kLGU9YS5hcGksZj1hLnF1ZXVlLGc9YS53aGVuUmVhZHksaD1hLmdldFJlZ2lzdGVyZWRQcm90b3R5cGUsaT1hLndhaXRpbmdGb3JQcm90b3R5cGUsaj1kKE9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlKSx7Y3JlYXRlZENhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5nZXRBdHRyaWJ1dGUoIm5hbWUiKSYmdGhpcy5pbml0KCl9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLm5hbWU9dGhpcy5nZXRBdHRyaWJ1dGUoIm5hbWUiKSx0aGlzWyJleHRlbmRzIl09dGhpcy5nZXRBdHRyaWJ1dGUoImV4dGVuZHMiKSxmLndhaXQodGhpcyksdGhpcy5sb2FkUmVzb3VyY2VzKCksdGhpcy5yZWdpc3RlcldoZW5SZWFkeSgpfSxyZWdpc3RlcldoZW5SZWFkeTpmdW5jdGlvbigpe3RoaXMucmVnaXN0ZXJlZHx8dGhpcy53YWl0aW5nRm9yUHJvdG90eXBlKHRoaXMubmFtZSl8fHRoaXMud2FpdGluZ0ZvclF1ZXVlKCl8fHRoaXMud2FpdGluZ0ZvclJlc291cmNlcygpfHxmLmdvKHRoaXMpfSxfcmVnaXN0ZXI6ZnVuY3Rpb24oKXtjKHRoaXNbImV4dGVuZHMiXSkmJiFiKHRoaXNbImV4dGVuZHMiXSkmJmNvbnNvbGUud2FybigiJXMgaXMgYXR0ZW1wdGluZyB0byBleHRlbmQgJXMsIGFuIHVucmVnaXN0ZXJlZCBlbGVtZW50IG9yIG9uZSB0aGF0IHdhcyBub3QgcmVnaXN0ZXJlZCB3aXRoIFBvbHltZXIuIix0aGlzLm5hbWUsdGhpc1siZXh0ZW5kcyJdKSx0aGlzLnJlZ2lzdGVyKHRoaXMubmFtZSx0aGlzWyJleHRlbmRzIl0pLHRoaXMucmVnaXN0ZXJlZD0hMH0sd2FpdGluZ0ZvclByb3RvdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gaChhKT92b2lkIDA6KGkoYSx0aGlzKSx0aGlzLmhhbmRsZU5vU2NyaXB0KGEpLCEwKX0saGFuZGxlTm9TY3JpcHQ6ZnVuY3Rpb24oYSl7dGhpcy5oYXNBdHRyaWJ1dGUoIm5vc2NyaXB0IikmJiF0aGlzLm5vc2NyaXB0JiYodGhpcy5ub3NjcmlwdD0hMCxQb2x5bWVyKGEpKX0sd2FpdGluZ0ZvclJlc291cmNlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9uZWVkc1Jlc291cmNlc30sd2FpdGluZ0ZvclF1ZXVlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZW5xdWV1ZSh0aGlzLHRoaXMucmVnaXN0ZXJXaGVuUmVhZHksdGhpcy5fcmVnaXN0ZXIpfSxsb2FkUmVzb3VyY2VzOmZ1bmN0aW9uKCl7dGhpcy5fbmVlZHNSZXNvdXJjZXM9ITAsdGhpcy5sb2FkU3R5bGVzKGZ1bmN0aW9uKCl7dGhpcy5fbmVlZHNSZXNvdXJjZXM9ITEsdGhpcy5yZWdpc3RlcldoZW5SZWFkeSgpfS5iaW5kKHRoaXMpKX19KTtlLnB1Ymxpc2goZS5kZWNsYXJhdGlvbixqKSxnKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoInVucmVzb2x2ZWQiKSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicG9seW1lci1yZWFkeSIse2J1YmJsZXM6ITB9KSl9KSxkb2N1bWVudC5yZWdpc3RlckVsZW1lbnQoInBvbHltZXItZWxlbWVudCIse3Byb3RvdHlwZTpqfSl9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXthPyhkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpLGQoYikpOmImJmIoKX1mdW5jdGlvbiBjKGEsYyl7aWYoYSYmYS5sZW5ndGgpe2Zvcih2YXIgZCxlLGY9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGc9MCxoPWEubGVuZ3RoO2g+ZyYmKGQ9YVtnXSk7ZysrKWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpLGUucmVsPSJpbXBvcnQiLGUuaHJlZj1kLGYuYXBwZW5kQ2hpbGQoZSk7YihmLGMpfWVsc2UgYyYmYygpfXZhciBkPWEud2hlblJlYWR5O2FbImltcG9ydCJdPWMsYS5pbXBvcnRFbGVtZW50cz1ifShQb2x5bWVyKSxmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInBvbHltZXItZWxlbWVudCIpO2Euc2V0QXR0cmlidXRlKCJuYW1lIiwiYXV0by1iaW5kaW5nIiksYS5zZXRBdHRyaWJ1dGUoImV4dGVuZHMiLCJ0ZW1wbGF0ZSIpLGEuaW5pdCgpLFBvbHltZXIoImF1dG8tYmluZGluZyIse2NyZWF0ZWRDYWxsYmFjazpmdW5jdGlvbigpe3RoaXMuc3ludGF4PXRoaXMuYmluZGluZ0RlbGVnYXRlPXRoaXMubWFrZVN5bnRheCgpLFBvbHltZXIud2hlblBvbHltZXJSZWFkeShmdW5jdGlvbigpe3RoaXMubW9kZWw9dGhpcyx0aGlzLnNldEF0dHJpYnV0ZSgiYmluZCIsIiIpLHRoaXMuYXN5bmMoZnVuY3Rpb24oKXt0aGlzLm1hcnNoYWxOb2RlUmVmZXJlbmNlcyh0aGlzLnBhcmVudE5vZGUpLHRoaXMuZmlyZSgidGVtcGxhdGUtYm91bmQiKX0pfS5iaW5kKHRoaXMpKX0sbWFrZVN5bnRheDpmdW5jdGlvbigpe3ZhciBhPU9iamVjdC5jcmVhdGUoUG9seW1lci5hcGkuZGVjbGFyYXRpb24uZXZlbnRzKSxiPXRoaXM7YS5maW5kQ29udHJvbGxlcj1mdW5jdGlvbigpe3JldHVybiBiLm1vZGVsfTt2YXIgYz1uZXcgUG9seW1lckV4cHJlc3Npb25zLGQ9Yy5wcmVwYXJlQmluZGluZztyZXR1cm4gYy5wcmVwYXJlQmluZGluZz1mdW5jdGlvbihiLGUsZil7cmV0dXJuIGEucHJlcGFyZUV2ZW50QmluZGluZyhiLGUsZil8fGQuY2FsbChjLGIsZSxmKX0sY319KX0oKTsKLXdpbmRvdy5fVFZfSVNfQ09NUElMRUQgPSB0cnVlOwotJ3VzZSBzdHJpY3QnO3ZhciBnbG9iYWw9dGhpczt0aGlzLnRyPShmdW5jdGlvbigpe2lmKHdpbmRvdy50cil7Y29uc29sZS53YXJuKCdCYXNlIHdhcyBtdWx0aXBseSBpbml0aWFsaXplZC4gRmlyc3QgaW5pdCB3aW5zLicpO3JldHVybiB3aW5kb3cudHI7fQotZnVuY3Rpb24gZXhwb3J0UGF0aChuYW1lLG9wdF9vYmplY3Qsb3B0X29iamVjdFRvRXhwb3J0VG8pe3ZhciBwYXJ0cz1uYW1lLnNwbGl0KCcuJyk7dmFyIGN1cj1vcHRfb2JqZWN0VG9FeHBvcnRUb3x8Z2xvYmFsO2Zvcih2YXIgcGFydDtwYXJ0cy5sZW5ndGgmJihwYXJ0PXBhcnRzLnNoaWZ0KCkpOyl7aWYoIXBhcnRzLmxlbmd0aCYmb3B0X29iamVjdCE9PXVuZGVmaW5lZCl7Y3VyW3BhcnRdPW9wdF9vYmplY3Q7fWVsc2UgaWYocGFydCBpbiBjdXIpe2N1cj1jdXJbcGFydF07fWVsc2V7Y3VyPWN1cltwYXJ0XT17fTt9fQotcmV0dXJuIGN1cjt9O2Z1bmN0aW9uIGlzRGVmaW5lZChuYW1lLG9wdF9nbG9iYWxPYmplY3Qpe3ZhciBwYXJ0cz1uYW1lLnNwbGl0KCcuJyk7dmFyIGN1ck9iamVjdD1vcHRfZ2xvYmFsT2JqZWN0fHxnbG9iYWw7Zm9yKHZhciBpPTA7aTxwYXJ0cy5sZW5ndGg7aSsrKXt2YXIgcGFydE5hbWU9cGFydHNbaV07dmFyIG5leHRPYmplY3Q9Y3VyT2JqZWN0W3BhcnROYW1lXTtpZihuZXh0T2JqZWN0PT09dW5kZWZpbmVkKQorYi5ldmVudHMmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wJiZjb25zb2xlLmxvZygiWyVzXSBhZGRIb3N0TGlzdGVuZXJzOiIsdGhpcy5sb2NhbE5hbWUsYSk7Zm9yKHZhciBjIGluIGEpe3ZhciBkPWFbY107UG9seW1lckdlc3R1cmVzLmFkZEV2ZW50TGlzdGVuZXIodGhpcyxjLHRoaXMuZWxlbWVudC5nZXRFdmVudEhhbmRsZXIodGhpcyx0aGlzLGQpKX19LGRpc3BhdGNoTWV0aG9kOmZ1bmN0aW9uKGEsYyxkKXtpZihhKXtiLmV2ZW50cyYmY29uc29sZS5ncm91cCgiWyVzXSBkaXNwYXRjaCBbJXNdIixhLmxvY2FsTmFtZSxjKTt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgYz9jOmFbY107ZSYmZVtkPyJhcHBseSI6ImNhbGwiXShhLGQpLGIuZXZlbnRzJiZjb25zb2xlLmdyb3VwRW5kKCksUG9seW1lci5mbHVzaCgpfX19O2EuYXBpLmluc3RhbmNlLmV2ZW50cz1kLGEuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtQb2x5bWVyR2VzdHVyZXMuYWRkRXZlbnRMaXN0ZW5lcih3cmFwKGEpLGIsYyxkKX0sYS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe1BvbHltZXJHZXN0dXJlcy5yZW1vdmVFdmVudExpc3RlbmVyKHdyYXAoYSksYixjLGQpfX0oUG9seW1lciksZnVuY3Rpb24oYSl7dmFyIGI9e2NvcHlJbnN0YW5jZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9pbnN0YW5jZUF0dHJpYnV0ZXM7Zm9yKHZhciBiIGluIGEpdGhpcy5oYXNBdHRyaWJ1dGUoYil8fHRoaXMuc2V0QXR0cmlidXRlKGIsYVtiXSl9LHRha2VBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7aWYodGhpcy5fcHVibGlzaExDKWZvcih2YXIgYSxiPTAsYz10aGlzLmF0dHJpYnV0ZXMsZD1jLmxlbmd0aDsoYT1jW2JdKSYmZD5iO2IrKyl0aGlzLmF0dHJpYnV0ZVRvUHJvcGVydHkoYS5uYW1lLGEudmFsdWUpfSxhdHRyaWJ1dGVUb1Byb3BlcnR5OmZ1bmN0aW9uKGIsYyl7dmFyIGI9dGhpcy5wcm9wZXJ0eUZvckF0dHJpYnV0ZShiKTtpZihiKXtpZihjJiZjLnNlYXJjaChhLmJpbmRQYXR0ZXJuKT49MClyZXR1cm47dmFyIGQ9dGhpc1tiXSxjPXRoaXMuZGVzZXJpYWxpemVWYWx1ZShjLGQpO2MhPT1kJiYodGhpc1tiXT1jKX19LHByb3BlcnR5Rm9yQXR0cmlidXRlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX3B1Ymxpc2hMQyYmdGhpcy5fcHVibGlzaExDW2FdO3JldHVybiBifSxkZXNlcmlhbGl6ZVZhbHVlOmZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuZGVzZXJpYWxpemVWYWx1ZShiLGMpfSxzZXJpYWxpemVWYWx1ZTpmdW5jdGlvbihhLGIpe3JldHVybiJib29sZWFuIj09PWI/YT8iIjp2b2lkIDA6Im9iamVjdCIhPT1iJiYiZnVuY3Rpb24iIT09YiYmdm9pZCAwIT09YT9hOnZvaWQgMH0scmVmbGVjdFByb3BlcnR5VG9BdHRyaWJ1dGU6ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIHRoaXNbYV0sYz10aGlzLnNlcmlhbGl6ZVZhbHVlKHRoaXNbYV0sYik7dm9pZCAwIT09Yz90aGlzLnNldEF0dHJpYnV0ZShhLGMpOiJib29sZWFuIj09PWImJnRoaXMucmVtb3ZlQXR0cmlidXRlKGEpfX07YS5hcGkuaW5zdGFuY2UuYXR0cmlidXRlcz1ifShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEsYil7cmV0dXJuIGE9PT1iPzAhPT1hfHwxL2E9PT0xL2I6ZihhKSYmZihiKT8hMDphIT09YSYmYiE9PWJ9ZnVuY3Rpb24gYyhhLGIpe3JldHVybiB2b2lkIDA9PT1iJiZudWxsPT09YT9iOm51bGw9PT1ifHx2b2lkIDA9PT1iP2E6Yn12YXIgZD13aW5kb3cuV2ViQ29tcG9uZW50cz9XZWJDb21wb25lbnRzLmZsYWdzLmxvZzp7fSxlPXtvYmplY3Q6dm9pZCAwLHR5cGU6InVwZGF0ZSIsbmFtZTp2b2lkIDAsb2xkVmFsdWU6dm9pZCAwfSxmPU51bWJlci5pc05hTnx8ZnVuY3Rpb24oYSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBhJiZpc05hTihhKX0sZz17Y3JlYXRlUHJvcGVydHlPYnNlcnZlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX29ic2VydmVOYW1lcztpZihhJiZhLmxlbmd0aCl7dmFyIGI9dGhpcy5fcHJvcGVydHlPYnNlcnZlcj1uZXcgQ29tcG91bmRPYnNlcnZlcighMCk7dGhpcy5yZWdpc3Rlck9ic2VydmVyKGIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQmJihjPWFbZF0pO2QrKyliLmFkZFBhdGgodGhpcyxjKSx0aGlzLm9ic2VydmVBcnJheVZhbHVlKGMsdGhpc1tjXSxudWxsKX19LG9wZW5Qcm9wZXJ0eU9ic2VydmVyOmZ1bmN0aW9uKCl7dGhpcy5fcHJvcGVydHlPYnNlcnZlciYmdGhpcy5fcHJvcGVydHlPYnNlcnZlci5vcGVuKHRoaXMubm90aWZ5UHJvcGVydHlDaGFuZ2VzLHRoaXMpfSxub3RpZnlQcm9wZXJ0eUNoYW5nZXM6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fTtmb3IodmFyIGcgaW4gYilpZihkPWNbMipnKzFdLGU9dGhpcy5vYnNlcnZlW2RdKXt2YXIgaD1iW2ddLGk9YVtnXTt0aGlzLm9ic2VydmVBcnJheVZhbHVlKGQsaSxoKSxmW2VdfHwodm9pZCAwIT09aCYmbnVsbCE9PWh8fHZvaWQgMCE9PWkmJm51bGwhPT1pKSYmKGZbZV09ITAsdGhpcy5pbnZva2VNZXRob2QoZSxbaCxpLGFyZ3VtZW50c10pKX19LGludm9rZU1ldGhvZDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXNbYV18fGE7ImZ1bmN0aW9uIj09dHlwZW9mIGMmJmMuYXBwbHkodGhpcyxiKX0sZGVsaXZlckNoYW5nZXM6ZnVuY3Rpb24oKXt0aGlzLl9wcm9wZXJ0eU9ic2VydmVyJiZ0aGlzLl9wcm9wZXJ0eU9ic2VydmVyLmRlbGl2ZXIoKX0sb2JzZXJ2ZUFycmF5VmFsdWU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPXRoaXMub2JzZXJ2ZVthXTtpZihlJiYoQXJyYXkuaXNBcnJheShjKSYmKGQub2JzZXJ2ZSYmY29uc29sZS5sb2coIlslc10gb2JzZXJ2ZUFycmF5VmFsdWU6IHVucmVnaXN0ZXIgb2JzZXJ2ZXIgWyVzXSIsdGhpcy5sb2NhbE5hbWUsYSksdGhpcy5jbG9zZU5hbWVkT2JzZXJ2ZXIoYSsiX19hcnJheSIpKSxBcnJheS5pc0FycmF5KGIpKSl7ZC5vYnNlcnZlJiZjb25zb2xlLmxvZygiWyVzXSBvYnNlcnZlQXJyYXlWYWx1ZTogcmVnaXN0ZXIgb2JzZXJ2ZXIgWyVzXSIsdGhpcy5sb2NhbE5hbWUsYSxiKTt2YXIgZj1uZXcgQXJyYXlPYnNlcnZlcihiKTtmLm9wZW4oZnVuY3Rpb24oYSl7dGhpcy5pbnZva2VNZXRob2QoZSxbYV0pfSx0aGlzKSx0aGlzLnJlZ2lzdGVyTmFtZWRPYnNlcnZlcihhKyJfX2FycmF5IixmKX19LGVtaXRQcm9wZXJ0eUNoYW5nZVJlY29yZDpmdW5jdGlvbihhLGMsZCl7aWYoIWIoYyxkKSYmKHRoaXMuX3Byb3BlcnR5Q2hhbmdlZChhLGMsZCksT2JzZXJ2ZXIuaGFzT2JqZWN0T2JzZXJ2ZSkpe3ZhciBmPXRoaXMuX29iamVjdE5vdGlmaWVyO2Z8fChmPXRoaXMuX29iamVjdE5vdGlmaWVyPU9iamVjdC5nZXROb3RpZmllcih0aGlzKSksZS5vYmplY3Q9dGhpcyxlLm5hbWU9YSxlLm9sZFZhbHVlPWQsZi5ub3RpZnkoZSl9fSxfcHJvcGVydHlDaGFuZ2VkOmZ1bmN0aW9uKGEpe3RoaXMucmVmbGVjdFthXSYmdGhpcy5yZWZsZWN0UHJvcGVydHlUb0F0dHJpYnV0ZShhKX0sYmluZFByb3BlcnR5OmZ1bmN0aW9uKGEsYixkKXtpZihkKXJldHVybiB2b2lkKHRoaXNbYV09Yik7dmFyIGU9dGhpcy5lbGVtZW50LnByb3RvdHlwZS5jb21wdXRlZDtpZihlJiZlW2FdKXt2YXIgZj1hKyJDb21wdXRlZEJvdW5kT2JzZXJ2YWJsZV8iO3JldHVybiB2b2lkKHRoaXNbZl09Yil9cmV0dXJuIHRoaXMuYmluZFRvQWNjZXNzb3IoYSxiLGMpfSxiaW5kVG9BY2Nlc3NvcjpmdW5jdGlvbihhLGMsZCl7ZnVuY3Rpb24gZShiLGMpe2pbZl09Yjt2YXIgZD1qW2hdO2QmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnNldFZhbHVlJiZkLnNldFZhbHVlKGIpLGouZW1pdFByb3BlcnR5Q2hhbmdlUmVjb3JkKGEsYixjKX12YXIgZj1hKyJfIixnPWErIk9ic2VydmFibGVfIixoPWErIkNvbXB1dGVkQm91bmRPYnNlcnZhYmxlXyI7dGhpc1tnXT1jO3ZhciBpPXRoaXNbZl0saj10aGlzLGs9Yy5vcGVuKGUpO2lmKGQmJiFiKGksaykpe3ZhciBsPWQoaSxrKTtiKGssbCl8fChrPWwsYy5zZXRWYWx1ZSYmYy5zZXRWYWx1ZShrKSl9ZShrLGkpO3ZhciBtPXtjbG9zZTpmdW5jdGlvbigpe2MuY2xvc2UoKSxqW2ddPXZvaWQgMCxqW2hdPXZvaWQgMH19O3JldHVybiB0aGlzLnJlZ2lzdGVyT2JzZXJ2ZXIobSksbX0sY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7aWYodGhpcy5fY29tcHV0ZWROYW1lcylmb3IodmFyIGE9MDthPHRoaXMuX2NvbXB1dGVkTmFtZXMubGVuZ3RoO2ErKyl7dmFyIGI9dGhpcy5fY29tcHV0ZWROYW1lc1thXSxjPXRoaXMuY29tcHV0ZWRbYl07dHJ5e3ZhciBkPVBvbHltZXJFeHByZXNzaW9ucy5nZXRFeHByZXNzaW9uKGMpLGU9ZC5nZXRCaW5kaW5nKHRoaXMsdGhpcy5lbGVtZW50LnN5bnRheCk7dGhpcy5iaW5kVG9BY2Nlc3NvcihiLGUpfWNhdGNoKGYpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgY29tcHV0ZWQgcHJvcGVydHkiLGYpfX19LHJlZ2lzdGVyT2JzZXJ2ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX29ic2VydmVycz92b2lkIHRoaXMuX29ic2VydmVycy5wdXNoKGEpOnZvaWQodGhpcy5fb2JzZXJ2ZXJzPVthXSl9LGNsb3NlT2JzZXJ2ZXJzOmZ1bmN0aW9uKCl7aWYodGhpcy5fb2JzZXJ2ZXJzKXtmb3IodmFyIGE9dGhpcy5fb2JzZXJ2ZXJzLGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGM9YVtiXTtjJiYiZnVuY3Rpb24iPT10eXBlb2YgYy5jbG9zZSYmYy5jbG9zZSgpfXRoaXMuX29ic2VydmVycz1bXX19LHJlZ2lzdGVyTmFtZWRPYnNlcnZlcjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX25hbWVkT2JzZXJ2ZXJzfHwodGhpcy5fbmFtZWRPYnNlcnZlcnM9e30pO2NbYV09Yn0sY2xvc2VOYW1lZE9ic2VydmVyOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX25hbWVkT2JzZXJ2ZXJzO3JldHVybiBiJiZiW2FdPyhiW2FdLmNsb3NlKCksYlthXT1udWxsLCEwKTp2b2lkIDB9LGNsb3NlTmFtZWRPYnNlcnZlcnM6ZnVuY3Rpb24oKXtpZih0aGlzLl9uYW1lZE9ic2VydmVycyl7Zm9yKHZhciBhIGluIHRoaXMuX25hbWVkT2JzZXJ2ZXJzKXRoaXMuY2xvc2VOYW1lZE9ic2VydmVyKGEpO3RoaXMuX25hbWVkT2JzZXJ2ZXJzPXt9fX19O2EuYXBpLmluc3RhbmNlLnByb3BlcnRpZXM9Z30oUG9seW1lciksZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93LldlYkNvbXBvbmVudHM/V2ViQ29tcG9uZW50cy5mbGFncy5sb2c6e30sYz17aW5zdGFuY2VUZW1wbGF0ZTpmdW5jdGlvbihhKXtIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlKGEpO2Zvcih2YXIgYj10aGlzLnN5bnRheHx8IWEuYmluZGluZ0RlbGVnYXRlJiZ0aGlzLmVsZW1lbnQuc3ludGF4LGM9YS5jcmVhdGVJbnN0YW5jZSh0aGlzLGIpLGQ9Yy5iaW5kaW5nc18sZT0wO2U8ZC5sZW5ndGg7ZSsrKXRoaXMucmVnaXN0ZXJPYnNlcnZlcihkW2VdKTtyZXR1cm4gY30sYmluZDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5wcm9wZXJ0eUZvckF0dHJpYnV0ZShhKTtpZihkKXt2YXIgZT10aGlzLmJpbmRQcm9wZXJ0eShkLGIsYyk7cmV0dXJuIFBsYXRmb3JtLmVuYWJsZUJpbmRpbmdzUmVmbGVjdGlvbiYmZSYmKGUucGF0aD1iLnBhdGhfLHRoaXMuX3JlY29yZEJpbmRpbmcoZCxlKSksdGhpcy5yZWZsZWN0W2RdJiZ0aGlzLnJlZmxlY3RQcm9wZXJ0eVRvQXR0cmlidXRlKGQpLGV9cmV0dXJuIHRoaXMubWl4aW5TdXBlcihhcmd1bWVudHMpfSxfcmVjb3JkQmluZGluZzpmdW5jdGlvbihhLGIpe3RoaXMuYmluZGluZ3NfPXRoaXMuYmluZGluZ3NffHx7fSx0aGlzLmJpbmRpbmdzX1thXT1ifSxiaW5kRmluaXNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm1ha2VFbGVtZW50UmVhZHkoKX0sYXN5bmNVbmJpbmRBbGw6ZnVuY3Rpb24oKXt0aGlzLl91bmJvdW5kfHwoYi51bmJpbmQmJmNvbnNvbGUubG9nKCJbJXNdIGFzeW5jVW5iaW5kQWxsIix0aGlzLmxvY2FsTmFtZSksdGhpcy5fdW5iaW5kQWxsSm9iPXRoaXMuam9iKHRoaXMuX3VuYmluZEFsbEpvYix0aGlzLnVuYmluZEFsbCwwKSl9LHVuYmluZEFsbDpmdW5jdGlvbigpe3RoaXMuX3VuYm91bmR8fCh0aGlzLmNsb3NlT2JzZXJ2ZXJzKCksdGhpcy5jbG9zZU5hbWVkT2JzZXJ2ZXJzKCksdGhpcy5fdW5ib3VuZD0hMCl9LGNhbmNlbFVuYmluZEFsbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl91bmJvdW5kP3ZvaWQoYi51bmJpbmQmJmNvbnNvbGUud2FybigiWyVzXSBhbHJlYWR5IHVuYm91bmQsIGNhbm5vdCBjYW5jZWwgdW5iaW5kQWxsIix0aGlzLmxvY2FsTmFtZSkpOihiLnVuYmluZCYmY29uc29sZS5sb2coIlslc10gY2FuY2VsVW5iaW5kQWxsIix0aGlzLmxvY2FsTmFtZSksdm9pZCh0aGlzLl91bmJpbmRBbGxKb2ImJih0aGlzLl91bmJpbmRBbGxKb2I9dGhpcy5fdW5iaW5kQWxsSm9iLnN0b3AoKSkpKX19LGQ9L1x7XHsoW157fV0qKX19LzthLmJpbmRQYXR0ZXJuPWQsYS5hcGkuaW5zdGFuY2UubWR2PWN9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSl7cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoIlBvbHltZXJCYXNlIil9ZnVuY3Rpb24gYygpe312YXIgZD17UG9seW1lckJhc2U6ITAsam9iOmZ1bmN0aW9uKGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIFBvbHltZXIuam9iLmNhbGwodGhpcyxhLGIsYyk7dmFyIGQ9Il9fXyIrYTt0aGlzW2RdPVBvbHltZXIuam9iLmNhbGwodGhpcyx0aGlzW2RdLGIsYyl9LCJzdXBlciI6UG9seW1lclsic3VwZXIiXSxjcmVhdGVkOmZ1bmN0aW9uKCl7fSxyZWFkeTpmdW5jdGlvbigpe30sY3JlYXRlZENhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy50ZW1wbGF0ZUluc3RhbmNlJiZ0aGlzLnRlbXBsYXRlSW5zdGFuY2UubW9kZWwmJmNvbnNvbGUud2FybigiQXR0cmlidXRlcyBvbiAiK3RoaXMubG9jYWxOYW1lKyIgd2VyZSBkYXRhIGJvdW5kIHByaW9yIHRvIFBvbHltZXIgdXBncmFkaW5nIHRoZSBlbGVtZW50LiBUaGlzIG1heSByZXN1bHQgaW4gaW5jb3JyZWN0IGJpbmRpbmcgdHlwZXMuIiksdGhpcy5jcmVhdGVkKCksdGhpcy5wcmVwYXJlRWxlbWVudCgpLHRoaXMub3duZXJEb2N1bWVudC5pc1N0YWdpbmdEb2N1bWVudHx8dGhpcy5tYWtlRWxlbWVudFJlYWR5KCl9LHByZXBhcmVFbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRQcmVwYXJlZD92b2lkIGNvbnNvbGUud2FybigiRWxlbWVudCBhbHJlYWR5IHByZXBhcmVkIix0aGlzLmxvY2FsTmFtZSk6KHRoaXMuX2VsZW1lbnRQcmVwYXJlZD0hMCx0aGlzLnNoYWRvd1Jvb3RzPXt9LHRoaXMuY3JlYXRlUHJvcGVydHlPYnNlcnZlcigpLHRoaXMub3BlblByb3BlcnR5T2JzZXJ2ZXIoKSx0aGlzLmNvcHlJbnN0YW5jZUF0dHJpYnV0ZXMoKSx0aGlzLnRha2VBdHRyaWJ1dGVzKCksdm9pZCB0aGlzLmFkZEhvc3RMaXN0ZW5lcnMoKSl9LG1ha2VFbGVtZW50UmVhZHk6ZnVuY3Rpb24oKXt0aGlzLl9yZWFkaWVkfHwodGhpcy5fcmVhZGllZD0hMCx0aGlzLmNyZWF0ZUNvbXB1dGVkUHJvcGVydGllcygpLHRoaXMucGFyc2VEZWNsYXJhdGlvbnModGhpcy5fX3Byb3RvX18pLHRoaXMucmVtb3ZlQXR0cmlidXRlKCJ1bnJlc29sdmVkIiksdGhpcy5yZWFkeSgpKX0sYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOmZ1bmN0aW9uKGEpeyJjbGFzcyIhPT1hJiYic3R5bGUiIT09YSYmdGhpcy5hdHRyaWJ1dGVUb1Byb3BlcnR5KGEsdGhpcy5nZXRBdHRyaWJ1dGUoYSkpLHRoaXMuYXR0cmlidXRlQ2hhbmdlZCYmdGhpcy5hdHRyaWJ1dGVDaGFuZ2VkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sYXR0YWNoZWRDYWxsYmFjazpmdW5jdGlvbigpe3RoaXMuY2FuY2VsVW5iaW5kQWxsKCksdGhpcy5hdHRhY2hlZCYmdGhpcy5hdHRhY2hlZCgpLHRoaXMuaGFzQmVlbkF0dGFjaGVkfHwodGhpcy5oYXNCZWVuQXR0YWNoZWQ9ITAsdGhpcy5kb21SZWFkeSYmdGhpcy5hc3luYygiZG9tUmVhZHkiKSl9LGRldGFjaGVkQ2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLnByZXZlbnREaXNwb3NlfHx0aGlzLmFzeW5jVW5iaW5kQWxsKCksdGhpcy5kZXRhY2hlZCYmdGhpcy5kZXRhY2hlZCgpLHRoaXMubGVmdFZpZXcmJnRoaXMubGVmdFZpZXcoKX0scGFyc2VEZWNsYXJhdGlvbnM6ZnVuY3Rpb24oYSl7YSYmYS5lbGVtZW50JiYodGhpcy5wYXJzZURlY2xhcmF0aW9ucyhhLl9fcHJvdG9fXyksYS5wYXJzZURlY2xhcmF0aW9uLmNhbGwodGhpcyxhLmVsZW1lbnQpKX0scGFyc2VEZWNsYXJhdGlvbjpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmZldGNoVGVtcGxhdGUoYSk7aWYoYil7dmFyIGM9dGhpcy5zaGFkb3dGcm9tVGVtcGxhdGUoYik7dGhpcy5zaGFkb3dSb290c1thLm5hbWVdPWN9fSxmZXRjaFRlbXBsYXRlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIil9LHNoYWRvd0Zyb21UZW1wbGF0ZTpmdW5jdGlvbihhKXtpZihhKXt2YXIgYj10aGlzLmNyZWF0ZVNoYWRvd1Jvb3QoKSxjPXRoaXMuaW5zdGFuY2VUZW1wbGF0ZShhKTtyZXR1cm4gYi5hcHBlbmRDaGlsZChjKSx0aGlzLnNoYWRvd1Jvb3RSZWFkeShiLGEpLGJ9fSxsaWdodEZyb21UZW1wbGF0ZTpmdW5jdGlvbihhLGIpe2lmKGEpe3RoaXMuZXZlbnRDb250cm9sbGVyPXRoaXM7dmFyIGM9dGhpcy5pbnN0YW5jZVRlbXBsYXRlKGEpO3JldHVybiBiP3RoaXMuaW5zZXJ0QmVmb3JlKGMsYik6dGhpcy5hcHBlbmRDaGlsZChjKSx0aGlzLnNoYWRvd1Jvb3RSZWFkeSh0aGlzKSxjfX0sc2hhZG93Um9vdFJlYWR5OmZ1bmN0aW9uKGEpe3RoaXMubWFyc2hhbE5vZGVSZWZlcmVuY2VzKGEpfSxtYXJzaGFsTm9kZVJlZmVyZW5jZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy4kPXRoaXMuJHx8e307aWYoYSlmb3IodmFyIGMsZD1hLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZF0iKSxlPTAsZj1kLmxlbmd0aDtmPmUmJihjPWRbZV0pO2UrKyliW2MuaWRdPWN9LG9uTXV0YXRpb246ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihhKXtiLmNhbGwodGhpcyxjLGEpLGMuZGlzY29ubmVjdCgpfS5iaW5kKHRoaXMpKTtjLm9ic2VydmUoYSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX19O2MucHJvdG90eXBlPWQsZC5jb25zdHJ1Y3Rvcj1jLGEuQmFzZT1jLGEuaXNCYXNlPWIsYS5hcGkuaW5zdGFuY2UuYmFzZT1kfShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3JldHVybiBhLl9fcHJvdG9fX31mdW5jdGlvbiBjKGEsYil7dmFyIGM9IiIsZD0hMTtiJiYoYz1iLmxvY2FsTmFtZSxkPWIuaGFzQXR0cmlidXRlKCJpcyIpKTt2YXIgZT1XZWJDb21wb25lbnRzLlNoYWRvd0NTUy5tYWtlU2NvcGVTZWxlY3RvcihjLGQpO3JldHVybiBXZWJDb21wb25lbnRzLlNoYWRvd0NTUy5zaGltQ3NzVGV4dChhLGUpfXZhciBkPSh3aW5kb3cuV2ViQ29tcG9uZW50cz9XZWJDb21wb25lbnRzLmZsYWdzLmxvZzp7fSx3aW5kb3cuU2hhZG93RE9NUG9seWZpbGwpLGU9ImVsZW1lbnQiLGY9ImNvbnRyb2xsZXIiLGc9e1NUWUxFX1NDT1BFX0FUVFJJQlVURTplLGluc3RhbGxDb250cm9sbGVyU3R5bGVzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5maW5kU3R5bGVTY29wZSgpO2lmKGEmJiF0aGlzLnNjb3BlSGFzTmFtZWRTdHlsZShhLHRoaXMubG9jYWxOYW1lKSl7Zm9yKHZhciBjPWIodGhpcyksZD0iIjtjJiZjLmVsZW1lbnQ7KWQrPWMuZWxlbWVudC5jc3NUZXh0Rm9yU2NvcGUoZiksYz1iKGMpO2QmJnRoaXMuaW5zdGFsbFNjb3BlQ3NzVGV4dChkLGEpfX0saW5zdGFsbFNjb3BlU3R5bGU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBjPWN8fHRoaXMuZmluZFN0eWxlU2NvcGUoKSxiPWJ8fCIiO2lmKGMmJiF0aGlzLnNjb3BlSGFzTmFtZWRTdHlsZShjLHRoaXMubG9jYWxOYW1lK2IpKXt2YXIgZD0iIjtpZihhIGluc3RhbmNlb2YgQXJyYXkpZm9yKHZhciBlLGY9MCxnPWEubGVuZ3RoO2c+ZiYmKGU9YVtmXSk7ZisrKWQrPWUudGV4dENvbnRlbnQrIlxuXG4iO2Vsc2UgZD1hLnRleHRDb250ZW50O3RoaXMuaW5zdGFsbFNjb3BlQ3NzVGV4dChkLGMsYil9fSxpbnN0YWxsU2NvcGVDc3NUZXh0OmZ1bmN0aW9uKGEsYixlKXtpZihiPWJ8fHRoaXMuZmluZFN0eWxlU2NvcGUoKSxlPWV8fCIiLGIpe2QmJihhPWMoYSxiLmhvc3QpKTt2YXIgZz10aGlzLmVsZW1lbnQuY3NzVGV4dFRvU2NvcGVTdHlsZShhLGYpO1BvbHltZXIuYXBwbHlTdHlsZVRvU2NvcGUoZyxiKSx0aGlzLnN0eWxlQ2FjaGVGb3JTY29wZShiKVt0aGlzLmxvY2FsTmFtZStlXT0hMH19LGZpbmRTdHlsZVNjb3BlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hfHx0aGlzO2IucGFyZW50Tm9kZTspYj1iLnBhcmVudE5vZGU7cmV0dXJuIGJ9LHNjb3BlSGFzTmFtZWRTdHlsZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuc3R5bGVDYWNoZUZvclNjb3BlKGEpO3JldHVybiBjW2JdfSxzdHlsZUNhY2hlRm9yU2NvcGU6ZnVuY3Rpb24oYSl7aWYoZCl7dmFyIGI9YS5ob3N0P2EuaG9zdC5sb2NhbE5hbWU6YS5sb2NhbE5hbWU7cmV0dXJuIGhbYl18fChoW2JdPXt9KX1yZXR1cm4gYS5fc2NvcGVTdHlsZXM9YS5fc2NvcGVTdHlsZXN8fHt9fX0saD17fTthLmFwaS5pbnN0YW5jZS5zdHlsZXM9Z30oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIpe2lmKCJzdHJpbmciIT10eXBlb2YgYSl7dmFyIGM9Ynx8ZG9jdW1lbnQuX2N1cnJlbnRTY3JpcHQ7aWYoYj1hLGE9YyYmYy5wYXJlbnROb2RlJiZjLnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlP2MucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoIm5hbWUiKToiIiwhYSl0aHJvdyJFbGVtZW50IG5hbWUgY291bGQgbm90IGJlIGluZmVycmVkLiJ9aWYoZihhKSl0aHJvdyJBbHJlYWR5IHJlZ2lzdGVyZWQgKFBvbHltZXIpIHByb3RvdHlwZSBmb3IgZWxlbWVudCAiK2E7ZShhLGIpLGQoYSl9ZnVuY3Rpb24gYyhhLGIpe2lbYV09Yn1mdW5jdGlvbiBkKGEpe2lbYV0mJihpW2FdLnJlZ2lzdGVyV2hlblJlYWR5KCksZGVsZXRlIGlbYV0pfWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4galthXT1ifHx7fX1mdW5jdGlvbiBmKGEpe3JldHVybiBqW2FdfWZ1bmN0aW9uIGcoYSxiKXtpZigic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuITE7dmFyIGM9SFRNTEVsZW1lbnQuZ2V0UHJvdG90eXBlRm9yVGFnKGIpLGQ9YyYmYy5jb25zdHJ1Y3RvcjtyZXR1cm4gZD9DdXN0b21FbGVtZW50c1siaW5zdGFuY2VvZiJdP0N1c3RvbUVsZW1lbnRzWyJpbnN0YW5jZW9mIl0oYSxkKTphIGluc3RhbmNlb2YgZDohMX12YXIgaD1hLmV4dGVuZCxpPShhLmFwaSx7fSksaj17fTthLmdldFJlZ2lzdGVyZWRQcm90b3R5cGU9ZixhLndhaXRpbmdGb3JQcm90b3R5cGU9YyxhLmluc3RhbmNlT2ZUeXBlPWcsd2luZG93LlBvbHltZXI9YixoKFBvbHltZXIsYSksV2ViQ29tcG9uZW50cy5jb25zdW1lRGVjbGFyYXRpb25zJiZXZWJDb21wb25lbnRzLmNvbnN1bWVEZWNsYXJhdGlvbnMoZnVuY3Rpb24oYSl7aWYoYSlmb3IodmFyIGMsZD0wLGU9YS5sZW5ndGg7ZT5kJiYoYz1hW2RdKTtkKyspYi5hcHBseShudWxsLGMpfSl9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe3ZhciBiPXtyZXNvbHZlRWxlbWVudFBhdGhzOmZ1bmN0aW9uKGEpe1BvbHltZXIudXJsUmVzb2x2ZXIucmVzb2x2ZURvbShhKX0sYWRkUmVzb2x2ZVBhdGhBcGk6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldEF0dHJpYnV0ZSgiYXNzZXRwYXRoIil8fCIiLGI9bmV3IFVSTChhLHRoaXMub3duZXJEb2N1bWVudC5iYXNlVVJJKTt0aGlzLnByb3RvdHlwZS5yZXNvbHZlUGF0aD1mdW5jdGlvbihhLGMpe3ZhciBkPW5ldyBVUkwoYSxjfHxiKTtyZXR1cm4gZC5ocmVmfX19O2EuYXBpLmRlY2xhcmF0aW9uLnBhdGg9Yn0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIpe3ZhciBjPW5ldyBVUkwoYS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxiKS5ocmVmO3JldHVybiJAaW1wb3J0ICciK2MrIic7In1mdW5jdGlvbiBjKGEsYil7aWYoYSl7Yj09PWRvY3VtZW50JiYoYj1kb2N1bWVudC5oZWFkKSxpJiYoYj1kb2N1bWVudC5oZWFkKTt2YXIgYz1kKGEudGV4dENvbnRlbnQpLGU9YS5nZXRBdHRyaWJ1dGUoaCk7ZSYmYy5zZXRBdHRyaWJ1dGUoaCxlKTt2YXIgZj1iLmZpcnN0RWxlbWVudENoaWxkO2lmKGI9PT1kb2N1bWVudC5oZWFkKXt2YXIgZz0ic3R5bGVbIitoKyJdIixqPWRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvckFsbChnKTtqLmxlbmd0aCYmKGY9altqLmxlbmd0aC0xXS5uZXh0RWxlbWVudFNpYmxpbmcpfWIuaW5zZXJ0QmVmb3JlKGMsZil9fWZ1bmN0aW9uIGQoYSxiKXtiPWJ8fGRvY3VtZW50LGI9Yi5jcmVhdGVFbGVtZW50P2I6Yi5vd25lckRvY3VtZW50O3ZhciBjPWIuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gYy50ZXh0Q29udGVudD1hLGN9ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSYmYS5fX3Jlc291cmNlfHwiIn1mdW5jdGlvbiBmKGEsYil7cmV0dXJuIHE/cS5jYWxsKGEsYik6dm9pZCAwfXZhciBnPSh3aW5kb3cuV2ViQ29tcG9uZW50cz9XZWJDb21wb25lbnRzLmZsYWdzLmxvZzp7fSxhLmFwaS5pbnN0YW5jZS5zdHlsZXMpLGg9Zy5TVFlMRV9TQ09QRV9BVFRSSUJVVEUsaT13aW5kb3cuU2hhZG93RE9NUG9seWZpbGwsaj0ic3R5bGUiLGs9IkBpbXBvcnQiLGw9ImxpbmtbcmVsPXN0eWxlc2hlZXRdIixtPSJnbG9iYWwiLG49InBvbHltZXItc2NvcGUiLG89e2xvYWRTdHlsZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5mZXRjaFRlbXBsYXRlKCksYz1iJiZ0aGlzLnRlbXBsYXRlQ29udGVudCgpO2lmKGMpe3RoaXMuY29udmVydFNoZWV0c1RvU3R5bGVzKGMpO3ZhciBkPXRoaXMuZmluZExvYWRhYmxlU3R5bGVzKGMpO2lmKGQubGVuZ3RoKXt2YXIgZT1iLm93bmVyRG9jdW1lbnQuYmFzZVVSSTtyZXR1cm4gUG9seW1lci5zdHlsZVJlc29sdmVyLmxvYWRTdHlsZXMoZCxlLGEpfX1hJiZhKCl9LGNvbnZlcnRTaGVldHNUb1N0eWxlczpmdW5jdGlvbihhKXtmb3IodmFyIGMsZSxmPWEucXVlcnlTZWxlY3RvckFsbChsKSxnPTAsaD1mLmxlbmd0aDtoPmcmJihjPWZbZ10pO2crKyllPWQoYihjLHRoaXMub3duZXJEb2N1bWVudC5iYXNlVVJJKSx0aGlzLm93bmVyRG9jdW1lbnQpLHRoaXMuY29weVNoZWV0QXR0cmlidXRlcyhlLGMpLGMucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoZSxjKX0sY29weVNoZWV0QXR0cmlidXRlczpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTAsZT1iLmF0dHJpYnV0ZXMsZj1lLmxlbmd0aDsoYz1lW2RdKSYmZj5kO2QrKykicmVsIiE9PWMubmFtZSYmImhyZWYiIT09Yy5uYW1lJiZhLnNldEF0dHJpYnV0ZShjLm5hbWUsYy52YWx1ZSl9LGZpbmRMb2FkYWJsZVN0eWxlczpmdW5jdGlvbihhKXt2YXIgYj1bXTtpZihhKWZvcih2YXIgYyxkPWEucXVlcnlTZWxlY3RvckFsbChqKSxlPTAsZj1kLmxlbmd0aDtmPmUmJihjPWRbZV0pO2UrKyljLnRleHRDb250ZW50Lm1hdGNoKGspJiZiLnB1c2goYyk7cmV0dXJuIGJ9LGluc3RhbGxTaGVldHM6ZnVuY3Rpb24oKXt0aGlzLmNhY2hlU2hlZXRzKCksdGhpcy5jYWNoZVN0eWxlcygpLHRoaXMuaW5zdGFsbExvY2FsU2hlZXRzKCksdGhpcy5pbnN0YWxsR2xvYmFsU3R5bGVzKCl9LGNhY2hlU2hlZXRzOmZ1bmN0aW9uKCl7dGhpcy5zaGVldHM9dGhpcy5maW5kTm9kZXMobCksdGhpcy5zaGVldHMuZm9yRWFjaChmdW5jdGlvbihhKXthLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKX0pfSxjYWNoZVN0eWxlczpmdW5jdGlvbigpe3RoaXMuc3R5bGVzPXRoaXMuZmluZE5vZGVzKGorIlsiK24rIl0iKSx0aGlzLnN0eWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpfSl9LGluc3RhbGxMb2NhbFNoZWV0czpmdW5jdGlvbigpe3ZhciBhPXRoaXMuc2hlZXRzLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hYS5oYXNBdHRyaWJ1dGUobil9KSxiPXRoaXMudGVtcGxhdGVDb250ZW50KCk7aWYoYil7dmFyIGM9IiI7aWYoYS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2MrPWUoYSkrIlxuIn0pLGMpe3ZhciBmPWQoYyx0aGlzLm93bmVyRG9jdW1lbnQpO2IuaW5zZXJ0QmVmb3JlKGYsYi5maXJzdENoaWxkKX19fSxmaW5kTm9kZXM6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoYSkuYXJyYXkoKSxkPXRoaXMudGVtcGxhdGVDb250ZW50KCk7aWYoZCl7dmFyIGU9ZC5xdWVyeVNlbGVjdG9yQWxsKGEpLmFycmF5KCk7Yz1jLmNvbmNhdChlKX1yZXR1cm4gYj9jLmZpbHRlcihiKTpjfSxpbnN0YWxsR2xvYmFsU3R5bGVzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5zdHlsZUZvclNjb3BlKG0pO2MoYSxkb2N1bWVudC5oZWFkKX0sY3NzVGV4dEZvclNjb3BlOmZ1bmN0aW9uKGEpe3ZhciBiPSIiLGM9IlsiK24rIj0iK2ErIl0iLGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGYoYSxjKX0sZz10aGlzLnNoZWV0cy5maWx0ZXIoZCk7Zy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2IrPWUoYSkrIlxuXG4ifSk7dmFyIGg9dGhpcy5zdHlsZXMuZmlsdGVyKGQpO3JldHVybiBoLmZvckVhY2goZnVuY3Rpb24oYSl7Yis9YS50ZXh0Q29udGVudCsiXG5cbiJ9KSxifSxzdHlsZUZvclNjb3BlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY3NzVGV4dEZvclNjb3BlKGEpO3JldHVybiB0aGlzLmNzc1RleHRUb1Njb3BlU3R5bGUoYixhKX0sY3NzVGV4dFRvU2NvcGVTdHlsZTpmdW5jdGlvbihhLGIpe2lmKGEpe3ZhciBjPWQoYSk7cmV0dXJuIGMuc2V0QXR0cmlidXRlKGgsdGhpcy5nZXRBdHRyaWJ1dGUoIm5hbWUiKSsiLSIrYiksY319fSxwPUhUTUxFbGVtZW50LnByb3RvdHlwZSxxPXAubWF0Y2hlc3x8cC5tYXRjaGVzU2VsZWN0b3J8fHAud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxwLm1vek1hdGNoZXNTZWxlY3RvcjthLmFwaS5kZWNsYXJhdGlvbi5zdHlsZXM9byxhLmFwcGx5U3R5bGVUb1Njb3BlPWN9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe3ZhciBiPSh3aW5kb3cuV2ViQ29tcG9uZW50cz9XZWJDb21wb25lbnRzLmZsYWdzLmxvZzp7fSxhLmFwaS5pbnN0YW5jZS5ldmVudHMpLGM9Yi5FVkVOVF9QUkVGSVgsZD17fTtbIndlYmtpdEFuaW1hdGlvblN0YXJ0Iiwid2Via2l0QW5pbWF0aW9uRW5kIiwid2Via2l0VHJhbnNpdGlvbkVuZCIsIkRPTUZvY3VzT3V0IiwiRE9NRm9jdXNJbiIsIkRPTU1vdXNlU2Nyb2xsIl0uZm9yRWFjaChmdW5jdGlvbihhKXtkW2EudG9Mb3dlckNhc2UoKV09YX0pO3ZhciBlPXtwYXJzZUhvc3RFdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnByb3RvdHlwZS5ldmVudERlbGVnYXRlczt0aGlzLmFkZEF0dHJpYnV0ZURlbGVnYXRlcyhhKX0sYWRkQXR0cmlidXRlRGVsZWdhdGVzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPTA7Yj10aGlzLmF0dHJpYnV0ZXNbY107YysrKXRoaXMuaGFzRXZlbnRQcmVmaXgoYi5uYW1lKSYmKGFbdGhpcy5yZW1vdmVFdmVudFByZWZpeChiLm5hbWUpXT1iLnZhbHVlLnJlcGxhY2UoInt7IiwiIikucmVwbGFjZSgifX0iLCIiKS50cmltKCkpfSxoYXNFdmVudFByZWZpeDpmdW5jdGlvbihhKXtyZXR1cm4gYSYmIm8iPT09YVswXSYmIm4iPT09YVsxXSYmIi0iPT09YVsyXX0scmVtb3ZlRXZlbnRQcmVmaXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc2xpY2UoZil9LGZpbmRDb250cm9sbGVyOmZ1bmN0aW9uKGEpe2Zvcig7YS5wYXJlbnROb2RlOyl7aWYoYS5ldmVudENvbnRyb2xsZXIpcmV0dXJuIGEuZXZlbnRDb250cm9sbGVyO2E9YS5wYXJlbnROb2RlfXJldHVybiBhLmhvc3R9LGdldEV2ZW50SGFuZGxlcjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztyZXR1cm4gZnVuY3Rpb24oZSl7YSYmYS5Qb2x5bWVyQmFzZXx8KGE9ZC5maW5kQ29udHJvbGxlcihiKSk7dmFyIGY9W2UsZS5kZXRhaWwsZS5jdXJyZW50VGFyZ2V0XTthLmRpc3BhdGNoTWV0aG9kKGEsYyxmKX19LHByZXBhcmVFdmVudEJpbmRpbmc6ZnVuY3Rpb24oYSxiKXtpZih0aGlzLmhhc0V2ZW50UHJlZml4KGIpKXt2YXIgYz10aGlzLnJlbW92ZUV2ZW50UHJlZml4KGIpO2M9ZFtjXXx8Yzt2YXIgZT10aGlzO3JldHVybiBmdW5jdGlvbihiLGQsZil7ZnVuY3Rpb24gZygpe3JldHVybiJ7eyAiK2ErIiB9fSJ9dmFyIGg9ZS5nZXRFdmVudEhhbmRsZXIodm9pZCAwLGQsYSk7cmV0dXJuIFBvbHltZXJHZXN0dXJlcy5hZGRFdmVudExpc3RlbmVyKGQsYyxoKSxmP3ZvaWQgMDp7b3BlbjpnLGRpc2NhcmRDaGFuZ2VzOmcsY2xvc2U6ZnVuY3Rpb24oKXtQb2x5bWVyR2VzdHVyZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLGMsaCl9fX19fX0sZj1jLmxlbmd0aDthLmFwaS5kZWNsYXJhdGlvbi5ldmVudHM9ZX0oUG9seW1lciksZnVuY3Rpb24oYSl7dmFyIGI9WyJhdHRyaWJ1dGUiXSxjPXtpbmZlck9ic2VydmVyczpmdW5jdGlvbihhKXt2YXIgYixjPWEub2JzZXJ2ZTtmb3IodmFyIGQgaW4gYSkiQ2hhbmdlZCI9PT1kLnNsaWNlKC03KSYmKGI9ZC5zbGljZSgwLC03KSx0aGlzLmNhbk9ic2VydmVQcm9wZXJ0eShiKSYmKGN8fChjPWEub2JzZXJ2ZT17fSksY1tiXT1jW2JdfHxkKSl9LGNhbk9ic2VydmVQcm9wZXJ0eTpmdW5jdGlvbihhKXtyZXR1cm4gYi5pbmRleE9mKGEpPDB9LGV4cGxvZGVPYnNlcnZlcnM6ZnVuY3Rpb24oYSl7dmFyIGI9YS5vYnNlcnZlO2lmKGIpe3ZhciBjPXt9O2Zvcih2YXIgZCBpbiBiKWZvcih2YXIgZSxmPWQuc3BsaXQoIiAiKSxnPTA7ZT1mW2ddO2crKyljW2VdPWJbZF07YS5vYnNlcnZlPWN9fSxvcHRpbWl6ZVByb3BlcnR5TWFwczpmdW5jdGlvbihhKXtpZihhLm9ic2VydmUpe3ZhciBiPWEuX29ic2VydmVOYW1lcz1bXTtmb3IodmFyIGMgaW4gYS5vYnNlcnZlKWZvcih2YXIgZCxlPWMuc3BsaXQoIiAiKSxmPTA7ZD1lW2ZdO2YrKyliLnB1c2goZCl9aWYoYS5wdWJsaXNoKXt2YXIgYj1hLl9wdWJsaXNoTmFtZXM9W107Zm9yKHZhciBjIGluIGEucHVibGlzaCliLnB1c2goYyl9aWYoYS5jb21wdXRlZCl7dmFyIGI9YS5fY29tcHV0ZWROYW1lcz1bXTtmb3IodmFyIGMgaW4gYS5jb21wdXRlZCliLnB1c2goYyl9fSxwdWJsaXNoUHJvcGVydGllczpmdW5jdGlvbihhLGIpe3ZhciBjPWEucHVibGlzaDtjJiYodGhpcy5yZXF1aXJlUHJvcGVydGllcyhjLGEsYiksdGhpcy5maWx0ZXJJbnZhbGlkQWNjZXNzb3JOYW1lcyhjKSxhLl9wdWJsaXNoTEM9dGhpcy5sb3dlckNhc2VNYXAoYykpO3ZhciBkPWEuY29tcHV0ZWQ7ZCYmdGhpcy5maWx0ZXJJbnZhbGlkQWNjZXNzb3JOYW1lcyhkKX0sZmlsdGVySW52YWxpZEFjY2Vzc29yTmFtZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0eU5hbWVCbGFja2xpc3RbYl0mJihjb25zb2xlLndhcm4oJ0Nhbm5vdCBkZWZpbmUgcHJvcGVydHkgIicrYisnIiBmb3IgZWxlbWVudCAiJyt0aGlzLm5hbWUrJyIgYmVjYXVzZSBpdCBoYXMgdGhlIHNhbWUgbmFtZSBhcyBhbiBIVE1MRWxlbWVudCBwcm9wZXJ0eSwgYW5kIG5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCBvdmVycmlkaW5nIHRoYXQuIENvbnNpZGVyIGdpdmluZyBpdCBhIGRpZmZlcmVudCBuYW1lLicpLGRlbGV0ZSBhW2JdKX0scmVxdWlyZVByb3BlcnRpZXM6ZnVuY3Rpb24oYSxiKXtiLnJlZmxlY3Q9Yi5yZWZsZWN0fHx7fTtmb3IodmFyIGMgaW4gYSl7dmFyIGQ9YVtjXTtkJiZ2b2lkIDAhPT1kLnJlZmxlY3QmJihiLnJlZmxlY3RbY109Qm9vbGVhbihkLnJlZmxlY3QpLGQ9ZC52YWx1ZSksdm9pZCAwIT09ZCYmKGJbY109ZCl9fSxsb3dlckNhc2VNYXA6ZnVuY3Rpb24oYSl7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjLnRvTG93ZXJDYXNlKCldPWM7cmV0dXJuIGJ9LGNyZWF0ZVByb3BlcnR5QWNjZXNzb3I6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnByb3RvdHlwZSxkPWErIl8iLGU9YSsiT2JzZXJ2YWJsZV8iO2NbZF09Y1thXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxhLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzW2VdO3JldHVybiBhJiZhLmRlbGl2ZXIoKSx0aGlzW2RdfSxzZXQ6ZnVuY3Rpb24oYyl7aWYoYilyZXR1cm4gdGhpc1tkXTt2YXIgZj10aGlzW2VdO2lmKGYpcmV0dXJuIHZvaWQgZi5zZXRWYWx1ZShjKTt2YXIgZz10aGlzW2RdO3JldHVybiB0aGlzW2RdPWMsdGhpcy5lbWl0UHJvcGVydHlDaGFuZ2VSZWNvcmQoYSxjLGcpLGN9LGNvbmZpZ3VyYWJsZTohMH0pfSxjcmVhdGVQcm9wZXJ0eUFjY2Vzc29yczpmdW5jdGlvbihhKXt2YXIgYj1hLl9jb21wdXRlZE5hbWVzO2lmKGImJmIubGVuZ3RoKWZvcih2YXIgYyxkPTAsZT1iLmxlbmd0aDtlPmQmJihjPWJbZF0pO2QrKyl0aGlzLmNyZWF0ZVByb3BlcnR5QWNjZXNzb3IoYywhMCk7dmFyIGI9YS5fcHVibGlzaE5hbWVzO2lmKGImJmIubGVuZ3RoKWZvcih2YXIgYyxkPTAsZT1iLmxlbmd0aDtlPmQmJihjPWJbZF0pO2QrKylhLmNvbXB1dGVkJiZhLmNvbXB1dGVkW2NdfHx0aGlzLmNyZWF0ZVByb3BlcnR5QWNjZXNzb3IoYyl9LHByb3BlcnR5TmFtZUJsYWNrbGlzdDp7Y2hpbGRyZW46MSwiY2xhc3MiOjEsaWQ6MSxoaWRkZW46MSxzdHlsZToxLHRpdGxlOjF9fTthLmFwaS5kZWNsYXJhdGlvbi5wcm9wZXJ0aWVzPWN9KFBvbHltZXIpLGZ1bmN0aW9uKGEpe3ZhciBiPSJhdHRyaWJ1dGVzIixjPS9cc3wsLyxkPXtpbmhlcml0QXR0cmlidXRlc09iamVjdHM6ZnVuY3Rpb24oYSl7dGhpcy5pbmhlcml0T2JqZWN0KGEsInB1Ymxpc2hMQyIpLHRoaXMuaW5oZXJpdE9iamVjdChhLCJfaW5zdGFuY2VBdHRyaWJ1dGVzIil9LHB1Ymxpc2hBdHRyaWJ1dGVzOmZ1bmN0aW9uKGEpe3ZhciBkPXRoaXMuZ2V0QXR0cmlidXRlKGIpO2lmKGQpZm9yKHZhciBlLGY9YS5wdWJsaXNofHwoYS5wdWJsaXNoPXt9KSxnPWQuc3BsaXQoYyksaD0wLGk9Zy5sZW5ndGg7aT5oO2grKyllPWdbaF0udHJpbSgpLGUmJnZvaWQgMD09PWZbZV0mJihmW2VdPXZvaWQgMCl9LGFjY3VtdWxhdGVJbnN0YW5jZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj10aGlzLnByb3RvdHlwZS5faW5zdGFuY2VBdHRyaWJ1dGVzLGM9dGhpcy5hdHRyaWJ1dGVzLGQ9MCxlPWMubGVuZ3RoO2U+ZCYmKGE9Y1tkXSk7ZCsrKXRoaXMuaXNJbnN0YW5jZUF0dHJpYnV0ZShhLm5hbWUpJiYoYlthLm5hbWVdPWEudmFsdWUpfSxpc0luc3RhbmNlQXR0cmlidXRlOmZ1bmN0aW9uKGEpe3JldHVybiF0aGlzLmJsYWNrTGlzdFthXSYmIm9uLSIhPT1hLnNsaWNlKDAsMyl9LGJsYWNrTGlzdDp7bmFtZToxLCJleHRlbmRzIjoxLGNvbnN0cnVjdG9yOjEsbm9zY3JpcHQ6MSxhc3NldHBhdGg6MSwiY2FjaGUtY3NzdGV4dCI6MX19O2QuYmxhY2tMaXN0W2JdPTEsYS5hcGkuZGVjbGFyYXRpb24uYXR0cmlidXRlcz1kfShQb2x5bWVyKSxmdW5jdGlvbihhKXt2YXIgYj1hLmFwaS5kZWNsYXJhdGlvbi5ldmVudHMsYz1uZXcgUG9seW1lckV4cHJlc3Npb25zLGQ9Yy5wcmVwYXJlQmluZGluZztjLnByZXBhcmVCaW5kaW5nPWZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYi5wcmVwYXJlRXZlbnRCaW5kaW5nKGEsZSxmKXx8ZC5jYWxsKGMsYSxlLGYpfTt2YXIgZT17c3ludGF4OmMsZmV0Y2hUZW1wbGF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIil9LHRlbXBsYXRlQ29udGVudDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZmV0Y2hUZW1wbGF0ZSgpO3JldHVybiBhJiZhLmNvbnRlbnR9LGluc3RhbGxCaW5kaW5nRGVsZWdhdGU6ZnVuY3Rpb24oYSl7YSYmKGEuYmluZGluZ0RlbGVnYXRlPXRoaXMuc3ludGF4KX19O2EuYXBpLmRlY2xhcmF0aW9uLm1kdj1lfShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe2lmKCFPYmplY3QuX19wcm90b19fKXt2YXIgYj1PYmplY3QuZ2V0UHJvdG90eXBlT2YoYSk7YS5fX3Byb3RvX189YixkKGIpJiYoYi5fX3Byb3RvX189T2JqZWN0LmdldFByb3RvdHlwZU9mKGIpKX19dmFyIGM9YS5hcGksZD1hLmlzQmFzZSxlPWEuZXh0ZW5kLGY9d2luZG93LlNoYWRvd0RPTVBvbHlmaWxsLGc9e3JlZ2lzdGVyOmZ1bmN0aW9uKGEsYil7dGhpcy5idWlsZFByb3RvdHlwZShhLGIpLHRoaXMucmVnaXN0ZXJQcm90b3R5cGUoYSxiKSx0aGlzLnB1Ymxpc2hDb25zdHJ1Y3RvcigpfSxidWlsZFByb3RvdHlwZTpmdW5jdGlvbihiLGMpe3ZhciBkPWEuZ2V0UmVnaXN0ZXJlZFByb3RvdHlwZShiKSxlPXRoaXMuZ2VuZXJhdGVCYXNlUHJvdG90eXBlKGMpO3RoaXMuZGVzdWdhckJlZm9yZUNoYWluaW5nKGQsZSksdGhpcy5wcm90b3R5cGU9dGhpcy5jaGFpblByb3RvdHlwZXMoZCxlKSx0aGlzLmRlc3VnYXJBZnRlckNoYWluaW5nKGIsYyl9LGRlc3VnYXJCZWZvcmVDaGFpbmluZzpmdW5jdGlvbihhLGIpe2EuZWxlbWVudD10aGlzLHRoaXMucHVibGlzaEF0dHJpYnV0ZXMoYSxiKSx0aGlzLnB1Ymxpc2hQcm9wZXJ0aWVzKGEsYiksdGhpcy5pbmZlck9ic2VydmVycyhhKSx0aGlzLmV4cGxvZGVPYnNlcnZlcnMoYSl9LGNoYWluUHJvdG90eXBlczpmdW5jdGlvbihhLGMpe3RoaXMuaW5oZXJpdE1ldGFEYXRhKGEsYyk7dmFyIGQ9dGhpcy5jaGFpbk9iamVjdChhLGMpO3JldHVybiBiKGQpLGR9LGluaGVyaXRNZXRhRGF0YTpmdW5jdGlvbihhLGIpe3RoaXMuaW5oZXJpdE9iamVjdCgib2JzZXJ2ZSIsYSxiKSx0aGlzLmluaGVyaXRPYmplY3QoInB1Ymxpc2giLGEsYiksdGhpcy5pbmhlcml0T2JqZWN0KCJyZWZsZWN0IixhLGIpLHRoaXMuaW5oZXJpdE9iamVjdCgiX3B1Ymxpc2hMQyIsYSxiKSx0aGlzLmluaGVyaXRPYmplY3QoIl9pbnN0YW5jZUF0dHJpYnV0ZXMiLGEsYiksdGhpcy5pbmhlcml0T2JqZWN0KCJldmVudERlbGVnYXRlcyIsYSxiKX0sZGVzdWdhckFmdGVyQ2hhaW5pbmc6ZnVuY3Rpb24oYSxiKXt0aGlzLm9wdGltaXplUHJvcGVydHlNYXBzKHRoaXMucHJvdG90eXBlKSx0aGlzLmNyZWF0ZVByb3BlcnR5QWNjZXNzb3JzKHRoaXMucHJvdG90eXBlKSx0aGlzLmluc3RhbGxCaW5kaW5nRGVsZWdhdGUodGhpcy5mZXRjaFRlbXBsYXRlKCkpLHRoaXMuaW5zdGFsbFNoZWV0cygpLHRoaXMucmVzb2x2ZUVsZW1lbnRQYXRocyh0aGlzKSx0aGlzLmFjY3VtdWxhdGVJbnN0YW5jZUF0dHJpYnV0ZXMoKSx0aGlzLnBhcnNlSG9zdEV2ZW50cygpLHRoaXMuYWRkUmVzb2x2ZVBhdGhBcGkoKSxmJiZXZWJDb21wb25lbnRzLlNoYWRvd0NTUy5zaGltU3R5bGluZyh0aGlzLnRlbXBsYXRlQ29udGVudCgpLGEsYiksdGhpcy5wcm90b3R5cGUucmVnaXN0ZXJDYWxsYmFjayYmdGhpcy5wcm90b3R5cGUucmVnaXN0ZXJDYWxsYmFjayh0aGlzKX0scHVibGlzaENvbnN0cnVjdG9yOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGUoImNvbnN0cnVjdG9yIik7YSYmKHdpbmRvd1thXT10aGlzLmN0b3IpfSxnZW5lcmF0ZUJhc2VQcm90b3R5cGU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5maW5kQmFzZVByb3RvdHlwZShhKTtpZighYil7dmFyIGI9SFRNTEVsZW1lbnQuZ2V0UHJvdG90eXBlRm9yVGFnKGEpO2I9dGhpcy5lbnN1cmVCYXNlQXBpKGIpLGhbYV09Yn1yZXR1cm4gYn0sZmluZEJhc2VQcm90b3R5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGhbYV19LGVuc3VyZUJhc2VBcGk6ZnVuY3Rpb24oYSl7aWYoYS5Qb2x5bWVyQmFzZSlyZXR1cm4gYTt2YXIgYj1PYmplY3QuY3JlYXRlKGEpO3JldHVybiBjLnB1Ymxpc2goYy5pbnN0YW5jZSxiKSx0aGlzLm1peGluTWV0aG9kKGIsYSxjLmluc3RhbmNlLm1kdiwiYmluZCIpLGJ9LG1peGluTWV0aG9kOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWZ1bmN0aW9uKGEpe3JldHVybiBiW2RdLmFwcGx5KHRoaXMsYSl9O2FbZF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5taXhpblN1cGVyPWUsY1tkXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxpbmhlcml0T2JqZWN0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iW2FdfHx7fTtiW2FdPXRoaXMuY2hhaW5PYmplY3QoZCxjW2FdKX0scmVnaXN0ZXJQcm90b3R5cGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz17cHJvdG90eXBlOnRoaXMucHJvdG90eXBlfSxkPXRoaXMuZmluZFR5cGVFeHRlbnNpb24oYik7ZCYmKGNbImV4dGVuZHMiXT1kKSxIVE1MRWxlbWVudC5yZWdpc3RlcihhLHRoaXMucHJvdG90eXBlKSx0aGlzLmN0b3I9ZG9jdW1lbnQucmVnaXN0ZXJFbGVtZW50KGEsYyl9LGZpbmRUeXBlRXh0ZW5zaW9uOmZ1bmN0aW9uKGEpe2lmKGEmJmEuaW5kZXhPZigiLSIpPDApcmV0dXJuIGE7dmFyIGI9dGhpcy5maW5kQmFzZVByb3RvdHlwZShhKTtyZXR1cm4gYi5lbGVtZW50P3RoaXMuZmluZFR5cGVFeHRlbnNpb24oYi5lbGVtZW50WyJleHRlbmRzIl0pOnZvaWQgMH19LGg9e307Zy5jaGFpbk9iamVjdD1PYmplY3QuX19wcm90b19fP2Z1bmN0aW9uKGEsYil7cmV0dXJuIGEmJmImJmEhPT1iJiYoYS5fX3Byb3RvX189YiksYX06ZnVuY3Rpb24oYSxiKXtpZihhJiZiJiZhIT09Yil7dmFyIGM9T2JqZWN0LmNyZWF0ZShiKTthPWUoYyxhKX1yZXR1cm4gYX0sYy5kZWNsYXJhdGlvbi5wcm90b3R5cGU9Z30oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXtyZXR1cm4gZG9jdW1lbnQuY29udGFpbnMoYSk/ajppfWZ1bmN0aW9uIGMoKXtyZXR1cm4gaS5sZW5ndGg/aVswXTpqWzBdfWZ1bmN0aW9uIGQoYSl7Zi53YWl0VG9SZWFkeT0hMCxQb2x5bWVyLmVuZE9mTWljcm90YXNrKGZ1bmN0aW9uKCl7SFRNTEltcG9ydHMud2hlblJlYWR5KGZ1bmN0aW9uKCl7Zi5hZGRSZWFkeUNhbGxiYWNrKGEpLGYud2FpdFRvUmVhZHk9ITEsZi5jaGVjaygpfSl9KX1mdW5jdGlvbiBlKGEpe2lmKHZvaWQgMD09PWEpcmV0dXJuIHZvaWQgZi5yZWFkeSgpO3ZhciBiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmLnJlYWR5KCl9LGEpO1BvbHltZXIud2hlblJlYWR5KGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGIpfSl9dmFyIGY9e3dhaXQ6ZnVuY3Rpb24oYSl7YS5fX3F1ZXVlfHwoYS5fX3F1ZXVlPXt9LGcucHVzaChhKSl9LGVucXVldWU6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWEuX19xdWV1ZSYmIWEuX19xdWV1ZS5jaGVjaztyZXR1cm4gZSYmKGIoYSkucHVzaChhKSxhLl9fcXVldWUuY2hlY2s9YyxhLl9fcXVldWUuZ289ZCksMCE9PXRoaXMuaW5kZXhPZihhKX0saW5kZXhPZjpmdW5jdGlvbihhKXt2YXIgYz1iKGEpLmluZGV4T2YoYSk7cmV0dXJuIGM+PTAmJmRvY3VtZW50LmNvbnRhaW5zKGEpJiYoYys9SFRNTEltcG9ydHMudXNlTmF0aXZlfHxIVE1MSW1wb3J0cy5yZWFkeT9pLmxlbmd0aDoxZTkpLGN9LGdvOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmVtb3ZlKGEpO2ImJihhLl9fcXVldWUuZmx1c2hhYmxlPSEwLHRoaXMuYWRkVG9GbHVzaFF1ZXVlKGIpLHRoaXMuY2hlY2soKSl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgYz10aGlzLmluZGV4T2YoYSk7aWYoMD09PWMpcmV0dXJuIGIoYSkuc2hpZnQoKX0sY2hlY2s6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm5leHRFbGVtZW50KCk7cmV0dXJuIGEmJmEuX19xdWV1ZS5jaGVjay5jYWxsKGEpLHRoaXMuY2FuUmVhZHkoKT8odGhpcy5yZWFkeSgpLCEwKTp2b2lkIDB9LG5leHRFbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGMoKX0sY2FuUmVhZHk6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy53YWl0VG9SZWFkeSYmdGhpcy5pc0VtcHR5KCl9LGlzRW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wLGM9Zy5sZW5ndGg7Yz5iJiYoYT1nW2JdKTtiKyspaWYoYS5fX3F1ZXVlJiYhYS5fX3F1ZXVlLmZsdXNoYWJsZSlyZXR1cm47cmV0dXJuITB9LGFkZFRvRmx1c2hRdWV1ZTpmdW5jdGlvbihhKXtoLnB1c2goYSl9LGZsdXNoOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZmx1c2hpbmcpe3RoaXMuZmx1c2hpbmc9ITA7Zm9yKHZhciBhO2gubGVuZ3RoOylhPWguc2hpZnQoKSxhLl9fcXVldWUuZ28uY2FsbChhKSxhLl9fcXVldWU9bnVsbDt0aGlzLmZsdXNoaW5nPSExfX0scmVhZHk6ZnVuY3Rpb24oKXt2YXIgYT1DdXN0b21FbGVtZW50cy5yZWFkeTtDdXN0b21FbGVtZW50cy5yZWFkeT0hMSx0aGlzLmZsdXNoKCksQ3VzdG9tRWxlbWVudHMudXNlTmF0aXZlfHxDdXN0b21FbGVtZW50cy51cGdyYWRlRG9jdW1lbnRUcmVlKGRvY3VtZW50KSxDdXN0b21FbGVtZW50cy5yZWFkeT1hLFBvbHltZXIuZmx1c2goKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5mbHVzaFJlYWR5Q2FsbGJhY2tzKX0sYWRkUmVhZHlDYWxsYmFjazpmdW5jdGlvbihhKXthJiZrLnB1c2goYSl9LGZsdXNoUmVhZHlDYWxsYmFja3M6ZnVuY3Rpb24oKXtpZihrKWZvcih2YXIgYTtrLmxlbmd0aDspKGE9ay5zaGlmdCgpKSgpfSx3YWl0aW5nRm9yOmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9W10sYz0wLGQ9Zy5sZW5ndGg7ZD5jJiYoYT1nW2NdKTtjKyspYS5fX3F1ZXVlJiYhYS5fX3F1ZXVlLmZsdXNoYWJsZSYmYi5wdXNoKGEpO3JldHVybiBifSx3YWl0VG9SZWFkeTohMH0sZz1bXSxoPVtdLGk9W10saj1bXSxrPVtdO2EuZWxlbWVudHM9ZyxhLndhaXRpbmdGb3I9Zi53YWl0aW5nRm9yLmJpbmQoZiksYS5mb3JjZVJlYWR5PWUsYS5xdWV1ZT1mLGEud2hlblJlYWR5PWEud2hlblBvbHltZXJSZWFkeT1kfShQb2x5bWVyKSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3JldHVybiBCb29sZWFuKEhUTUxFbGVtZW50LmdldFByb3RvdHlwZUZvclRhZyhhKSl9ZnVuY3Rpb24gYyhhKXtyZXR1cm4gYSYmYS5pbmRleE9mKCItIik+PTB9dmFyIGQ9YS5leHRlbmQsZT1hLmFwaSxmPWEucXVldWUsZz1hLndoZW5SZWFkeSxoPWEuZ2V0UmVnaXN0ZXJlZFByb3RvdHlwZSxpPWEud2FpdGluZ0ZvclByb3RvdHlwZSxqPWQoT2JqZWN0LmNyZWF0ZShIVE1MRWxlbWVudC5wcm90b3R5cGUpLHtjcmVhdGVkQ2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLmdldEF0dHJpYnV0ZSgibmFtZSIpJiZ0aGlzLmluaXQoKX0saW5pdDpmdW5jdGlvbigpe3RoaXMubmFtZT10aGlzLmdldEF0dHJpYnV0ZSgibmFtZSIpLHRoaXNbImV4dGVuZHMiXT10aGlzLmdldEF0dHJpYnV0ZSgiZXh0ZW5kcyIpLGYud2FpdCh0aGlzKSx0aGlzLmxvYWRSZXNvdXJjZXMoKSx0aGlzLnJlZ2lzdGVyV2hlblJlYWR5KCl9LHJlZ2lzdGVyV2hlblJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5yZWdpc3RlcmVkfHx0aGlzLndhaXRpbmdGb3JQcm90b3R5cGUodGhpcy5uYW1lKXx8dGhpcy53YWl0aW5nRm9yUXVldWUoKXx8dGhpcy53YWl0aW5nRm9yUmVzb3VyY2VzKCl8fGYuZ28odGhpcyl9LF9yZWdpc3RlcjpmdW5jdGlvbigpe2ModGhpc1siZXh0ZW5kcyJdKSYmIWIodGhpc1siZXh0ZW5kcyJdKSYmY29uc29sZS53YXJuKCIlcyBpcyBhdHRlbXB0aW5nIHRvIGV4dGVuZCAlcywgYW4gdW5yZWdpc3RlcmVkIGVsZW1lbnQgb3Igb25lIHRoYXQgd2FzIG5vdCByZWdpc3RlcmVkIHdpdGggUG9seW1lci4iLHRoaXMubmFtZSx0aGlzWyJleHRlbmRzIl0pLHRoaXMucmVnaXN0ZXIodGhpcy5uYW1lLHRoaXNbImV4dGVuZHMiXSksdGhpcy5yZWdpc3RlcmVkPSEwfSx3YWl0aW5nRm9yUHJvdG90eXBlOmZ1bmN0aW9uKGEpe3JldHVybiBoKGEpP3ZvaWQgMDooaShhLHRoaXMpLHRoaXMuaGFuZGxlTm9TY3JpcHQoYSksITApfSxoYW5kbGVOb1NjcmlwdDpmdW5jdGlvbihhKXt0aGlzLmhhc0F0dHJpYnV0ZSgibm9zY3JpcHQiKSYmIXRoaXMubm9zY3JpcHQmJih0aGlzLm5vc2NyaXB0PSEwLFBvbHltZXIoYSkpfSx3YWl0aW5nRm9yUmVzb3VyY2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lZWRzUmVzb3VyY2VzfSx3YWl0aW5nRm9yUXVldWU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5lbnF1ZXVlKHRoaXMsdGhpcy5yZWdpc3RlcldoZW5SZWFkeSx0aGlzLl9yZWdpc3Rlcil9LGxvYWRSZXNvdXJjZXM6ZnVuY3Rpb24oKXt0aGlzLl9uZWVkc1Jlc291cmNlcz0hMCx0aGlzLmxvYWRTdHlsZXMoZnVuY3Rpb24oKXt0aGlzLl9uZWVkc1Jlc291cmNlcz0hMSx0aGlzLnJlZ2lzdGVyV2hlblJlYWR5KCl9LmJpbmQodGhpcykpfX0pO2UucHVibGlzaChlLmRlY2xhcmF0aW9uLGopLGcoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgidW5yZXNvbHZlZCIpLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwb2x5bWVyLXJlYWR5Iix7YnViYmxlczohMH0pKX0pLGRvY3VtZW50LnJlZ2lzdGVyRWxlbWVudCgicG9seW1lci1lbGVtZW50Iix7cHJvdG90eXBlOmp9KX0oUG9seW1lciksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIpe2E/KGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYSksZChiKSk6YiYmYigpfWZ1bmN0aW9uIGMoYSxjKXtpZihhJiZhLmxlbmd0aCl7Zm9yKHZhciBkLGUsZj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZz0wLGg9YS5sZW5ndGg7aD5nJiYoZD1hW2ddKTtnKyspZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIiksZS5yZWw9ImltcG9ydCIsZS5ocmVmPWQsZi5hcHBlbmRDaGlsZChlKTtiKGYsYyl9ZWxzZSBjJiZjKCl9dmFyIGQ9YS53aGVuUmVhZHk7YVsiaW1wb3J0Il09YyxhLmltcG9ydEVsZW1lbnRzPWJ9KFBvbHltZXIpLGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicG9seW1lci1lbGVtZW50Iik7YS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJhdXRvLWJpbmRpbmciKSxhLnNldEF0dHJpYnV0ZSgiZXh0ZW5kcyIsInRlbXBsYXRlIiksYS5pbml0KCksUG9seW1lcigiYXV0by1iaW5kaW5nIix7Y3JlYXRlZENhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5zeW50YXg9dGhpcy5iaW5kaW5nRGVsZWdhdGU9dGhpcy5tYWtlU3ludGF4KCksUG9seW1lci53aGVuUG9seW1lclJlYWR5KGZ1bmN0aW9uKCl7dGhpcy5tb2RlbD10aGlzLHRoaXMuc2V0QXR0cmlidXRlKCJiaW5kIiwiIiksdGhpcy5hc3luYyhmdW5jdGlvbigpe3RoaXMubWFyc2hhbE5vZGVSZWZlcmVuY2VzKHRoaXMucGFyZW50Tm9kZSksdGhpcy5maXJlKCJ0ZW1wbGF0ZS1ib3VuZCIpfSl9LmJpbmQodGhpcykpfSxtYWtlU3ludGF4OmZ1bmN0aW9uKCl7dmFyIGE9T2JqZWN0LmNyZWF0ZShQb2x5bWVyLmFwaS5kZWNsYXJhdGlvbi5ldmVudHMpLGI9dGhpczthLmZpbmRDb250cm9sbGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGIubW9kZWx9O3ZhciBjPW5ldyBQb2x5bWVyRXhwcmVzc2lvbnMsZD1jLnByZXBhcmVCaW5kaW5nO3JldHVybiBjLnByZXBhcmVCaW5kaW5nPWZ1bmN0aW9uKGIsZSxmKXtyZXR1cm4gYS5wcmVwYXJlRXZlbnRCaW5kaW5nKGIsZSxmKXx8ZC5jYWxsKGMsYixlLGYpfSxjfX0pfSgpOyd1c2Ugc3RyaWN0Jzt2YXIgZ2xvYmFsPXRoaXM7dGhpcy50cj0oZnVuY3Rpb24oKXtpZihnbG9iYWwudHIpe2NvbnNvbGUud2FybignQmFzZSB3YXMgbXVsdGlwbHkgaW5pdGlhbGl6ZWQuIEZpcnN0IGluaXQgd2lucy4nKTtyZXR1cm4gZ2xvYmFsLnRyO30KK2Z1bmN0aW9uIGV4cG9ydFBhdGgobmFtZSl7dmFyIHBhcnRzPW5hbWUuc3BsaXQoJy4nKTt2YXIgY3VyPWdsb2JhbDtmb3IodmFyIHBhcnQ7cGFydHMubGVuZ3RoJiYocGFydD1wYXJ0cy5zaGlmdCgpKTspe2lmKHBhcnQgaW4gY3VyKXtjdXI9Y3VyW3BhcnRdO31lbHNle2N1cj1jdXJbcGFydF09e307fX0KK3JldHVybiBjdXI7fTtmdW5jdGlvbiBpc0V4cG9ydGVkKG5hbWUpe3ZhciBwYXJ0cz1uYW1lLnNwbGl0KCcuJyk7dmFyIGN1cj1nbG9iYWw7Zm9yKHZhciBwYXJ0O3BhcnRzLmxlbmd0aCYmKHBhcnQ9cGFydHMuc2hpZnQoKSk7KXtpZihwYXJ0IGluIGN1cil7Y3VyPWN1cltwYXJ0XTt9ZWxzZXtyZXR1cm4gZmFsc2U7fX0KK3JldHVybiB0cnVlO30KK2Z1bmN0aW9uIGlzRGVmaW5lZChuYW1lKXt2YXIgcGFydHM9bmFtZS5zcGxpdCgnLicpO3ZhciBjdXJPYmplY3Q9Z2xvYmFsO2Zvcih2YXIgaT0wO2k8cGFydHMubGVuZ3RoO2krKyl7dmFyIHBhcnROYW1lPXBhcnRzW2ldO3ZhciBuZXh0T2JqZWN0PWN1ck9iamVjdFtwYXJ0TmFtZV07aWYobmV4dE9iamVjdD09PXVuZGVmaW5lZCkKIHJldHVybiBmYWxzZTtjdXJPYmplY3Q9bmV4dE9iamVjdDt9CiByZXR1cm4gdHJ1ZTt9CiB2YXIgcGFuaWNFbGVtZW50PXVuZGVmaW5lZDt2YXIgcmF3UGFuaWNNZXNzYWdlcz1bXTtmdW5jdGlvbiBzaG93UGFuaWNFbGVtZW50SWZOZWVkZWQoKXtpZihwYW5pY0VsZW1lbnQpCiByZXR1cm47dmFyIHBhbmljT3ZlcmxheT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtwYW5pY092ZXJsYXkuc3R5bGUuYmFja2dyb3VuZENvbG9yPSd3aGl0ZSc7cGFuaWNPdmVybGF5LnN0eWxlLmJvcmRlcj0nM3B4IHNvbGlkIHJlZCc7cGFuaWNPdmVybGF5LnN0eWxlLmJveFNpemluZz0nYm9yZGVyLWJveCc7cGFuaWNPdmVybGF5LnN0eWxlLmNvbG9yPSdibGFjayc7cGFuaWNPdmVybGF5LnN0eWxlLmRpc3BsYXk9Jy13ZWJraXQtZmxleCc7cGFuaWNPdmVybGF5LnN0eWxlLmhlaWdodD0nMTAwJSc7cGFuaWNPdmVybGF5LnN0eWxlLmxlZnQ9MDtwYW5pY092ZXJsYXkuc3R5bGUucGFkZGluZz0nOHB4JztwYW5pY092ZXJsYXkuc3R5bGUucG9zaXRpb249J2ZpeGVkJztwYW5pY092ZXJsYXkuc3R5bGUudG9wPTA7cGFuaWNPdmVybGF5LnN0eWxlLndlYmtpdEZsZXhEaXJlY3Rpb249J2NvbHVtbic7cGFuaWNPdmVybGF5LnN0eWxlLndpZHRoPScxMDAlJztwYW5pY0VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7cGFuaWNFbGVtZW50LnN0eWxlLndlYmtpdEZsZXg9JzEgMSBhdXRvJztwYW5pY0VsZW1lbnQuc3R5bGUub3ZlcmZsb3c9J2F1dG8nO3BhbmljT3ZlcmxheS5hcHBlbmRDaGlsZChwYW5pY0VsZW1lbnQpO2lmKCFkb2N1bWVudC5ib2R5KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYW5pY092ZXJsYXkpO30sMTUwKTt9ZWxzZXtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhbmljT3ZlcmxheSk7fX0KLWZ1bmN0aW9uIHNob3dQYW5pYyhwYW5pY1RpdGxlLHBhbmljRGV0YWlscyl7aWYocGFuaWNEZXRhaWxzIGluc3RhbmNlb2YgRXJyb3IpCitmdW5jdGlvbiBzaG93UGFuaWMocGFuaWNUaXRsZSxwYW5pY0RldGFpbHMpe2lmKHRyLmlzSGVhZGxlc3Mpe2lmKHBhbmljRGV0YWlscyBpbnN0YW5jZW9mIEVycm9yKQordGhyb3cgcGFuaWNEZXRhaWxzO3Rocm93IG5ldyBFcnJvcignUGFuaWM6ICcrcGFuaWNUaXRsZSsnOlxuJytwYW5pY0RldGFpbHMpO30KK2lmKHBhbmljRGV0YWlscyBpbnN0YW5jZW9mIEVycm9yKQogcGFuaWNEZXRhaWxzPXBhbmljRGV0YWlscy5zdGFjaztzaG93UGFuaWNFbGVtZW50SWZOZWVkZWQoKTt2YXIgcGFuaWNNZXNzYWdlRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7cGFuaWNNZXNzYWdlRWwuaW5uZXJIVE1MPSc8aDIgaWQ9Im1lc3NhZ2UiPjwvaDI+JysnPHByZSBpZD0iZGV0YWlscyI+PC9wcmU+JztwYW5pY01lc3NhZ2VFbC5xdWVyeVNlbGVjdG9yKCcjbWVzc2FnZScpLnRleHRDb250ZW50PXBhbmljVGl0bGU7cGFuaWNNZXNzYWdlRWwucXVlcnlTZWxlY3RvcignI2RldGFpbHMnKS50ZXh0Q29udGVudD1wYW5pY0RldGFpbHM7cGFuaWNFbGVtZW50LmFwcGVuZENoaWxkKHBhbmljTWVzc2FnZUVsKTtyYXdQYW5pY01lc3NhZ2VzLnB1c2goe3RpdGxlOnBhbmljVGl0bGUsZGV0YWlsczpwYW5pY0RldGFpbHN9KTt9CiBmdW5jdGlvbiBoYXNQYW5pYygpe3JldHVybiByYXdQYW5pY01lc3NhZ2VzLmxlbmd0aCE9PTA7fQogZnVuY3Rpb24gZ2V0UGFuaWNUZXh0KCl7cmV0dXJuIHJhd1BhbmljTWVzc2FnZXMubWFwKGZ1bmN0aW9uKG1zZyl7cmV0dXJuIG1zZy50aXRsZTt9KS5qb2luKCcsICcpO30KIGZ1bmN0aW9uIGV4cG9ydFRvKG5hbWVzcGFjZSxmbil7dmFyIG9iaj1leHBvcnRQYXRoKG5hbWVzcGFjZSk7dmFyIGV4cG9ydHM9Zm4oKTtmb3IodmFyIHByb3BlcnR5TmFtZSBpbiBleHBvcnRzKXt2YXIgcHJvcGVydHlEZXNjcmlwdG9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhwb3J0cyxwcm9wZXJ0eU5hbWUpO2lmKHByb3BlcnR5RGVzY3JpcHRvcikKLU9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmoscHJvcGVydHlOYW1lLHByb3BlcnR5RGVzY3JpcHRvcik7fX07ZnVuY3Rpb24gaW5pdGlhbGl6ZSgpe2lmKCF3aW5kb3cuX1RSQUNFX1ZJRVdFUl9JU19DT01QSUxFRCl7dmFyIHZlcj1wYXJzZUludCh3aW5kb3cubmF2aWdhdG9yLmFwcFZlcnNpb24ubWF0Y2goL0Nocm9tZVwvKFxkKylcLi8pWzFdLDEwKTt2YXIgc3VwcG9ydF9jb250ZW50X3NoZWxsPXdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbi5tYXRjaCgnNzcuMzQuNScpO2lmKHZlcjwzNiYmIXN1cHBvcnRfY29udGVudF9zaGVsbCl7dmFyIG1zZz0nQSBDaHJvbWUgdmVyc2lvbiBvZiAzNiBvciBoaWdoZXIgaXMgcmVxdWlyZWQgZm9yICcrJ3RyYWNlLXZpZXdlciBkZXZlbG9wbWVudC4gUGxlYXNlIHVwZ3JhZGUgeW91ciB2ZXJzaW9uIG9mIENocm9tZSAnKydhbmQgdHJ5IGFnYWluLic7c2hvd1BhbmljKCdJbnZhbGlkIENocm9tZSB2ZXJzaW9uJyxtc2cpO319Ci10ci5kb2M9ZG9jdW1lbnQ7dHIuaXNNYWM9L01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO3RyLmlzV2luZG93cz0vV2luLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk7dHIuaXNDaHJvbWVPUz0vQ3JPUy8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTt0ci5pc0xpbnV4PS9MaW51eC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTt9Ci1yZXR1cm57aW5pdGlhbGl6ZTppbml0aWFsaXplLGV4cG9ydFRvOmV4cG9ydFRvLGlzRGVmaW5lZDppc0RlZmluZWQsc2hvd1BhbmljOnNob3dQYW5pYyxoYXNQYW5pYzpoYXNQYW5pYyxnZXRQYW5pY1RleHQ6Z2V0UGFuaWNUZXh0fTt9KSgpO3RyLmluaXRpYWxpemUoKTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmIudWknLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZGVjb3JhdGUoc291cmNlLGNvbnN0cil7dmFyIGVsZW1lbnRzO2lmKHR5cGVvZiBzb3VyY2U9PSdzdHJpbmcnKQotZWxlbWVudHM9dHIuZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoc291cmNlKTtlbHNlCi1lbGVtZW50cz1bc291cmNlXTtmb3IodmFyIGk9MCxlbDtlbD1lbGVtZW50c1tpXTtpKyspe2lmKCEoZWwgaW5zdGFuY2VvZiBjb25zdHIpKQotY29uc3RyLmRlY29yYXRlKGVsKTt9fQotZnVuY3Rpb24gZGVmaW5lKGNsYXNzTmFtZSxvcHRfcGFyZW50Q29uc3RydWN0b3Isb3B0X3RhZ05TKXtpZih0eXBlb2YgY2xhc3NOYW1lPT0nZnVuY3Rpb24nKXt0aHJvdyBuZXcgRXJyb3IoJ1Bhc3NpbmcgZnVuY3Rpb25zIGFzIGNsYXNzTmFtZSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgJysndXNlIChjbGFzc05hbWUsIG9wdF9wYXJlbnRDb25zdHJ1Y3RvcikgdG8gc3ViY2xhc3MnKTt9Ci12YXIgY2xhc3NOYW1lPWNsYXNzTmFtZS50b0xvd2VyQ2FzZSgpO2lmKG9wdF9wYXJlbnRDb25zdHJ1Y3RvciYmIW9wdF9wYXJlbnRDb25zdHJ1Y3Rvci50YWdOYW1lKQotdGhyb3cgbmV3IEVycm9yKCdvcHRfcGFyZW50Q29uc3RydWN0b3Igd2FzIG5vdCAnKydjcmVhdGVkIGJ5IHRyLmIudWkuZGVmaW5lJyk7dmFyIHRhZ05hbWU9Y2xhc3NOYW1lO3ZhciB0YWdOUz11bmRlZmluZWQ7aWYob3B0X3BhcmVudENvbnN0cnVjdG9yKXtpZihvcHRfdGFnTlMpCi10aHJvdyBuZXcgRXJyb3IoJ011c3Qgbm90IHNwZWNpZnkgdGFnTlMgaWYgcGFyZW50Q29uc3RydWN0b3IgaXMgZ2l2ZW4nKTt2YXIgcGFyZW50PW9wdF9wYXJlbnRDb25zdHJ1Y3Rvcjt3aGlsZShwYXJlbnQmJnBhcmVudC50YWdOYW1lKXt0YWdOYW1lPXBhcmVudC50YWdOYW1lO3RhZ05TPXBhcmVudC50YWdOUztwYXJlbnQ9cGFyZW50LnBhcmVudENvbnN0cnVjdG9yO319ZWxzZXt0YWdOUz1vcHRfdGFnTlM7fQotZnVuY3Rpb24gZigpe2lmKG9wdF9wYXJlbnRDb25zdHJ1Y3RvciYmZi5wcm90b3R5cGUuX19wcm90b19fIT1vcHRfcGFyZW50Q29uc3RydWN0b3IucHJvdG90eXBlKXt0aHJvdyBuZXcgRXJyb3IoY2xhc3NOYW1lKycgcHJvdG90eWVcJ3MgX19wcm90b19fIGZpZWxkIGlzIG1lc3NlZCB1cC4gJysnSXQgTVVTVCBiZSB0aGUgcHJvdG90eXBlIG9mICcrb3B0X3BhcmVudENvbnN0cnVjdG9yLnRhZ05hbWUpO30KLXZhciBlbDtpZih0YWdOUz09PXVuZGVmaW5lZCkKLWVsPXRyLmRvYy5jcmVhdGVFbGVtZW50KHRhZ05hbWUpO2Vsc2UKLWVsPXRyLmRvYy5jcmVhdGVFbGVtZW50TlModGFnTlMsdGFnTmFtZSk7Zi5kZWNvcmF0ZS5jYWxsKHRoaXMsZWwsYXJndW1lbnRzKTtyZXR1cm4gZWw7fQotZi5kZWNvcmF0ZT1mdW5jdGlvbihlbCl7ZWwuX19wcm90b19fPWYucHJvdG90eXBlO2VsLmRlY29yYXRlLmFwcGx5KGVsLGFyZ3VtZW50c1sxXSk7ZWwuY29uc3RydWN0b3I9Zjt9O2YuY2xhc3NOYW1lPWNsYXNzTmFtZTtmLnRhZ05hbWU9dGFnTmFtZTtmLnRhZ05TPXRhZ05TO2YucGFyZW50Q29uc3RydWN0b3I9KG9wdF9wYXJlbnRDb25zdHJ1Y3Rvcj9vcHRfcGFyZW50Q29uc3RydWN0b3I6dW5kZWZpbmVkKTtmLnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYoIWYucGFyZW50Q29uc3RydWN0b3IpCi1yZXR1cm4gZi50YWdOYW1lO3JldHVybiBmLnBhcmVudENvbnN0cnVjdG9yLnRvU3RyaW5nKCkrJzo6JytmLmNsYXNzTmFtZTt9O3JldHVybiBmO30KLWZ1bmN0aW9uIGVsZW1lbnRJc0NoaWxkT2YoZWwscG90ZW50aWFsUGFyZW50KXtpZihlbD09cG90ZW50aWFsUGFyZW50KQotcmV0dXJuIGZhbHNlO3ZhciBjdXI9ZWw7d2hpbGUoY3VyLnBhcmVudE5vZGUpe2lmKGN1cj09cG90ZW50aWFsUGFyZW50KQotcmV0dXJuIHRydWU7Y3VyPWN1ci5wYXJlbnROb2RlO30KLXJldHVybiBmYWxzZTt9O3JldHVybntkZWNvcmF0ZTpkZWNvcmF0ZSxkZWZpbmU6ZGVmaW5lLGVsZW1lbnRJc0NoaWxkT2Y6ZWxlbWVudElzQ2hpbGRPZn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGFzQXJyYXkoYXJyYXlpc2gpe3ZhciB2YWx1ZXM9W107Zm9yKHZhciBpPTA7aTxhcnJheWlzaC5sZW5ndGg7aSsrKQorT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaixwcm9wZXJ0eU5hbWUscHJvcGVydHlEZXNjcmlwdG9yKTt9fTtmdW5jdGlvbiBpbml0aWFsaXplKCl7aWYoZ2xvYmFsLnZlcnNpb24mJmdsb2JhbC52ZXJzaW9uKCkpe3RyLmlzRDg9dHJ1ZTt9ZWxzZSBpZihnbG9iYWwucHJvY2VzcyYmZ2xvYmFsLnByb2Nlc3MudmVyc2lvbnMubm9kZSl7dHIuaXNOb2RlPXRydWU7fWVsc2V7dHIuaXNEOD1mYWxzZTt0ci5pc05vZGU9ZmFsc2U7dHIuZG9jPWRvY3VtZW50O3RyLmlzTWFjPS9NYWMvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKTt0ci5pc1dpbmRvd3M9L1dpbi8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO3RyLmlzQ2hyb21lT1M9L0NyT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7dHIuaXNMaW51eD0vTGludXgvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7fQordHIuaXNIZWFkbGVzcz10ci5pc0Q4fHx0ci5pc05vZGU7fQorcmV0dXJue2luaXRpYWxpemU6aW5pdGlhbGl6ZSxleHBvcnRUbzpleHBvcnRUbyxpc0V4cG9ydGVkOmlzRXhwb3J0ZWQsaXNEZWZpbmVkOmlzRGVmaW5lZCxzaG93UGFuaWM6c2hvd1BhbmljLGhhc1BhbmljOmhhc1BhbmljLGdldFBhbmljVGV4dDpnZXRQYW5pY1RleHR9O30pKCk7dHIuaW5pdGlhbGl6ZSgpOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBFdmVudFRhcmdldCgpe30KK0V2ZW50VGFyZ2V0LmRlY29yYXRlPWZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBrIGluIEV2ZW50VGFyZ2V0LnByb3RvdHlwZSl7aWYoaz09J2RlY29yYXRlJykKK2NvbnRpbnVlO3ZhciB2PUV2ZW50VGFyZ2V0LnByb3RvdHlwZVtrXTtpZih0eXBlb2YgdiE9PSdmdW5jdGlvbicpCitjb250aW51ZTt0YXJnZXRba109djt9fTtFdmVudFRhcmdldC5wcm90b3R5cGU9e2FkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odHlwZSxoYW5kbGVyKXtpZighdGhpcy5saXN0ZW5lcnNfKQordGhpcy5saXN0ZW5lcnNfPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoISh0eXBlIGluIHRoaXMubGlzdGVuZXJzXykpe3RoaXMubGlzdGVuZXJzX1t0eXBlXT1baGFuZGxlcl07fWVsc2V7dmFyIGhhbmRsZXJzPXRoaXMubGlzdGVuZXJzX1t0eXBlXTtpZihoYW5kbGVycy5pbmRleE9mKGhhbmRsZXIpPDApCitoYW5kbGVycy5wdXNoKGhhbmRsZXIpO319LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odHlwZSxoYW5kbGVyKXtpZighdGhpcy5saXN0ZW5lcnNfKQorcmV0dXJuO2lmKHR5cGUgaW4gdGhpcy5saXN0ZW5lcnNfKXt2YXIgaGFuZGxlcnM9dGhpcy5saXN0ZW5lcnNfW3R5cGVdO3ZhciBpbmRleD1oYW5kbGVycy5pbmRleE9mKGhhbmRsZXIpO2lmKGluZGV4Pj0wKXtpZihoYW5kbGVycy5sZW5ndGg9PTEpCitkZWxldGUgdGhpcy5saXN0ZW5lcnNfW3R5cGVdO2Vsc2UKK2hhbmRsZXJzLnNwbGljZShpbmRleCwxKTt9fX0sZGlzcGF0Y2hFdmVudDpmdW5jdGlvbihldmVudCl7aWYoIXRoaXMubGlzdGVuZXJzXykKK3JldHVybiB0cnVlO3ZhciBzZWxmPXRoaXM7ZXZlbnQuX19kZWZpbmVHZXR0ZXJfXygndGFyZ2V0JyxmdW5jdGlvbigpe3JldHVybiBzZWxmO30pO3ZhciByZWFsUHJldmVudERlZmF1bHQ9ZXZlbnQucHJldmVudERlZmF1bHQ7ZXZlbnQucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtyZWFsUHJldmVudERlZmF1bHQuY2FsbCh0aGlzKTt0aGlzLnJhd1JldHVyblZhbHVlPWZhbHNlO307dmFyIHR5cGU9ZXZlbnQudHlwZTt2YXIgcHJldmVudGVkPTA7aWYodHlwZSBpbiB0aGlzLmxpc3RlbmVyc18pe3ZhciBoYW5kbGVycz10aGlzLmxpc3RlbmVyc19bdHlwZV0uY29uY2F0KCk7Zm9yKHZhciBpPTAsaGFuZGxlcjtoYW5kbGVyPWhhbmRsZXJzW2ldO2krKyl7aWYoaGFuZGxlci5oYW5kbGVFdmVudCkKK3ByZXZlbnRlZHw9aGFuZGxlci5oYW5kbGVFdmVudC5jYWxsKGhhbmRsZXIsZXZlbnQpPT09ZmFsc2U7ZWxzZQorcHJldmVudGVkfD1oYW5kbGVyLmNhbGwodGhpcyxldmVudCk9PT1mYWxzZTt9fQorcmV0dXJuIXByZXZlbnRlZCYmZXZlbnQucmF3UmV0dXJuVmFsdWU7fSxoYXNFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHR5cGUpe3JldHVybiB0aGlzLmxpc3RlbmVyc19bdHlwZV0hPT11bmRlZmluZWQ7fX07dmFyIEV2ZW50VGFyZ2V0SGVscGVyPXtkZWNvcmF0ZTpmdW5jdGlvbih0YXJnZXQpe2Zvcih2YXIgayBpbiBFdmVudFRhcmdldEhlbHBlcil7aWYoaz09J2RlY29yYXRlJykKK2NvbnRpbnVlO3ZhciB2PUV2ZW50VGFyZ2V0SGVscGVyW2tdO2lmKHR5cGVvZiB2IT09J2Z1bmN0aW9uJykKK2NvbnRpbnVlO3RhcmdldFtrXT12O30KK3RhcmdldC5saXN0ZW5lckNvdW50c189e307fSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHR5cGUsbGlzdGVuZXIsdXNlQ2FwdHVyZSl7dGhpcy5fX3Byb3RvX18uYWRkRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsdHlwZSxsaXN0ZW5lcix1c2VDYXB0dXJlKTtpZih0aGlzLmxpc3RlbmVyQ291bnRzX1t0eXBlXT09PXVuZGVmaW5lZCkKK3RoaXMubGlzdGVuZXJDb3VudHNfW3R5cGVdPTA7dGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV0rKzt9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odHlwZSxsaXN0ZW5lcix1c2VDYXB0dXJlKXt0aGlzLl9fcHJvdG9fXy5yZW1vdmVFdmVudExpc3RlbmVyLmNhbGwodGhpcyx0eXBlLGxpc3RlbmVyLHVzZUNhcHR1cmUpO3RoaXMubGlzdGVuZXJDb3VudHNfW3R5cGVdLS07fSxoYXNFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHR5cGUpe3JldHVybiB0aGlzLmxpc3RlbmVyQ291bnRzX1t0eXBlXT4wO319O3JldHVybntFdmVudFRhcmdldDpFdmVudFRhcmdldCxFdmVudFRhcmdldEhlbHBlcjpFdmVudFRhcmdldEhlbHBlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe3ZhciBFdmVudDtpZih0ci5pc0hlYWRsZXNzKXtmdW5jdGlvbiBIZWFkbGVzc0V2ZW50KHR5cGUsb3B0X2J1YmJsZXMsb3B0X3ByZXZlbnRhYmxlKXt0aGlzLnR5cGU9dHlwZTt0aGlzLmJ1YmJsZXM9KG9wdF9idWJibGVzIT09dW5kZWZpbmVkPyEhb3B0X2J1YmJsZXM6ZmFsc2UpO3RoaXMuY2FuY2VsYWJsZT0ob3B0X3ByZXZlbnRhYmxlIT09dW5kZWZpbmVkPyEhb3B0X3ByZXZlbnRhYmxlOmZhbHNlKTt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ZmFsc2U7dGhpcy5jYW5jZWxCdWJibGU9ZmFsc2U7fTtIZWFkbGVzc0V2ZW50LnByb3RvdHlwZT17cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dHJ1ZTt9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuY2FuY2VsQnViYmxlPXRydWU7fX07RXZlbnQ9SGVhZGxlc3NFdmVudDt9ZWxzZXtmdW5jdGlvbiBUckV2ZW50KHR5cGUsb3B0X2J1YmJsZXMsb3B0X3ByZXZlbnRhYmxlKXt2YXIgZT10ci5kb2MuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7ZS5pbml0RXZlbnQodHlwZSwhIW9wdF9idWJibGVzLCEhb3B0X3ByZXZlbnRhYmxlKTtlLl9fcHJvdG9fXz1nbG9iYWwuRXZlbnQucHJvdG90eXBlO3JldHVybiBlO307VHJFdmVudC5wcm90b3R5cGU9e19fcHJvdG9fXzpnbG9iYWwuRXZlbnQucHJvdG90eXBlfTtFdmVudD1UckV2ZW50O30KK2Z1bmN0aW9uIGRpc3BhdGNoU2ltcGxlRXZlbnQodGFyZ2V0LHR5cGUsb3B0X2J1YmJsZXMsb3B0X2NhbmNlbGFibGUpe3ZhciBlPW5ldyB0ci5iLkV2ZW50KHR5cGUsb3B0X2J1YmJsZXMsb3B0X2NhbmNlbGFibGUpO3JldHVybiB0YXJnZXQuZGlzcGF0Y2hFdmVudChlKTt9CityZXR1cm57RXZlbnQ6RXZlbnQsZGlzcGF0Y2hTaW1wbGVFdmVudDpkaXNwYXRjaFNpbXBsZUV2ZW50fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbWF4KGEsYil7aWYoYT09PXVuZGVmaW5lZCkKK3JldHVybiBiO2lmKGI9PT11bmRlZmluZWQpCityZXR1cm4gYTtyZXR1cm4gTWF0aC5tYXgoYSxiKTt9CitmdW5jdGlvbiBJbnRlcnZhbFRyZWUoYmVnaW5Qb3NpdGlvbkNiLGVuZFBvc2l0aW9uQ2Ipe3RoaXMuYmVnaW5Qb3NpdGlvbkNiXz1iZWdpblBvc2l0aW9uQ2I7dGhpcy5lbmRQb3NpdGlvbkNiXz1lbmRQb3NpdGlvbkNiO3RoaXMucm9vdF89dW5kZWZpbmVkO3RoaXMuc2l6ZV89MDt9CitJbnRlcnZhbFRyZWUucHJvdG90eXBlPXtpbnNlcnQ6ZnVuY3Rpb24oZGF0dW0pe3ZhciBzdGFydFBvc2l0aW9uPXRoaXMuYmVnaW5Qb3NpdGlvbkNiXyhkYXR1bSk7dmFyIGVuZFBvc2l0aW9uPXRoaXMuZW5kUG9zaXRpb25DYl8oZGF0dW0pO3ZhciBub2RlPW5ldyBJbnRlcnZhbFRyZWVOb2RlKGRhdHVtLHN0YXJ0UG9zaXRpb24sZW5kUG9zaXRpb24pO3RoaXMuc2l6ZV8rKzt0aGlzLnJvb3RfPXRoaXMuaW5zZXJ0Tm9kZV8odGhpcy5yb290Xyxub2RlKTt0aGlzLnJvb3RfLmNvbG91cj1Db2xvdXIuQkxBQ0s7cmV0dXJuIGRhdHVtO30saW5zZXJ0Tm9kZV86ZnVuY3Rpb24ocm9vdCxub2RlKXtpZihyb290PT09dW5kZWZpbmVkKQorcmV0dXJuIG5vZGU7aWYocm9vdC5sZWZ0Tm9kZSYmcm9vdC5sZWZ0Tm9kZS5pc1JlZCYmcm9vdC5yaWdodE5vZGUmJnJvb3QucmlnaHROb2RlLmlzUmVkKQordGhpcy5mbGlwTm9kZUNvbG91cl8ocm9vdCk7aWYobm9kZS5rZXk8cm9vdC5rZXkpCityb290LmxlZnROb2RlPXRoaXMuaW5zZXJ0Tm9kZV8ocm9vdC5sZWZ0Tm9kZSxub2RlKTtlbHNlIGlmKG5vZGUua2V5PT09cm9vdC5rZXkpCityb290Lm1lcmdlKG5vZGUpO2Vsc2UKK3Jvb3QucmlnaHROb2RlPXRoaXMuaW5zZXJ0Tm9kZV8ocm9vdC5yaWdodE5vZGUsbm9kZSk7aWYocm9vdC5yaWdodE5vZGUmJnJvb3QucmlnaHROb2RlLmlzUmVkJiYocm9vdC5sZWZ0Tm9kZT09PXVuZGVmaW5lZHx8IXJvb3QubGVmdE5vZGUuaXNSZWQpKQorcm9vdD10aGlzLnJvdGF0ZUxlZnRfKHJvb3QpO2lmKHJvb3QubGVmdE5vZGUmJnJvb3QubGVmdE5vZGUuaXNSZWQmJnJvb3QubGVmdE5vZGUubGVmdE5vZGUmJnJvb3QubGVmdE5vZGUubGVmdE5vZGUuaXNSZWQpCityb290PXRoaXMucm90YXRlUmlnaHRfKHJvb3QpO3JldHVybiByb290O30scm90YXRlUmlnaHRfOmZ1bmN0aW9uKG5vZGUpe3ZhciBzaWJsaW5nPW5vZGUubGVmdE5vZGU7bm9kZS5sZWZ0Tm9kZT1zaWJsaW5nLnJpZ2h0Tm9kZTtzaWJsaW5nLnJpZ2h0Tm9kZT1ub2RlO3NpYmxpbmcuY29sb3VyPW5vZGUuY29sb3VyO25vZGUuY29sb3VyPUNvbG91ci5SRUQ7cmV0dXJuIHNpYmxpbmc7fSxyb3RhdGVMZWZ0XzpmdW5jdGlvbihub2RlKXt2YXIgc2libGluZz1ub2RlLnJpZ2h0Tm9kZTtub2RlLnJpZ2h0Tm9kZT1zaWJsaW5nLmxlZnROb2RlO3NpYmxpbmcubGVmdE5vZGU9bm9kZTtzaWJsaW5nLmNvbG91cj1ub2RlLmNvbG91cjtub2RlLmNvbG91cj1Db2xvdXIuUkVEO3JldHVybiBzaWJsaW5nO30sZmxpcE5vZGVDb2xvdXJfOmZ1bmN0aW9uKG5vZGUpe25vZGUuY29sb3VyPXRoaXMuZmxpcENvbG91cl8obm9kZS5jb2xvdXIpO25vZGUubGVmdE5vZGUuY29sb3VyPXRoaXMuZmxpcENvbG91cl8obm9kZS5sZWZ0Tm9kZS5jb2xvdXIpO25vZGUucmlnaHROb2RlLmNvbG91cj10aGlzLmZsaXBDb2xvdXJfKG5vZGUucmlnaHROb2RlLmNvbG91cik7fSxmbGlwQ29sb3VyXzpmdW5jdGlvbihjb2xvdXIpe3JldHVybiBjb2xvdXI9PT1Db2xvdXIuUkVEP0NvbG91ci5CTEFDSzpDb2xvdXIuUkVEO30sdXBkYXRlSGlnaFZhbHVlczpmdW5jdGlvbigpe3RoaXMudXBkYXRlSGlnaFZhbHVlc18odGhpcy5yb290Xyk7fSx1cGRhdGVIaWdoVmFsdWVzXzpmdW5jdGlvbihub2RlKXtpZihub2RlPT09dW5kZWZpbmVkKQorcmV0dXJuIHVuZGVmaW5lZDtub2RlLm1heEhpZ2hMZWZ0PXRoaXMudXBkYXRlSGlnaFZhbHVlc18obm9kZS5sZWZ0Tm9kZSk7bm9kZS5tYXhIaWdoUmlnaHQ9dGhpcy51cGRhdGVIaWdoVmFsdWVzXyhub2RlLnJpZ2h0Tm9kZSk7cmV0dXJuIG1heChtYXgobm9kZS5tYXhIaWdoTGVmdCxub2RlLmhpZ2hWYWx1ZSksbm9kZS5tYXhIaWdoUmlnaHQpO30sdmFsaWRhdGVGaW5kQXJndW1lbnRzXzpmdW5jdGlvbihxdWVyeUxvdyxxdWVyeUhpZ2gpe2lmKHF1ZXJ5TG93PT09dW5kZWZpbmVkfHxxdWVyeUhpZ2g9PT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoJ3F1ZXJ5TG93IGFuZCBxdWVyeUhpZ2ggbXVzdCBiZSBkZWZpbmVkJyk7aWYoKHR5cGVvZiBxdWVyeUxvdyE9PSdudW1iZXInKXx8KHR5cGVvZiBxdWVyeUhpZ2ghPT0nbnVtYmVyJykpCit0aHJvdyBuZXcgRXJyb3IoJ3F1ZXJ5TG93IGFuZCBxdWVyeUhpZ2ggbXVzdCBiZSBudW1iZXJzJyk7fSxmaW5kSW50ZXJzZWN0aW9uOmZ1bmN0aW9uKHF1ZXJ5TG93LHF1ZXJ5SGlnaCl7dGhpcy52YWxpZGF0ZUZpbmRBcmd1bWVudHNfKHF1ZXJ5TG93LHF1ZXJ5SGlnaCk7aWYodGhpcy5yb290Xz09PXVuZGVmaW5lZCkKK3JldHVybltdO3ZhciByZXQ9W107dGhpcy5yb290Xy5hcHBlbmRJbnRlcnNlY3Rpb25zSW50b18ocmV0LHF1ZXJ5TG93LHF1ZXJ5SGlnaCk7cmV0dXJuIHJldDt9LGdldCBzaXplKCl7cmV0dXJuIHRoaXMuc2l6ZV87fSxnZXQgcm9vdCgpe3JldHVybiB0aGlzLnJvb3RfO30sZHVtcF86ZnVuY3Rpb24oKXtpZih0aGlzLnJvb3RfPT09dW5kZWZpbmVkKQorcmV0dXJuW107cmV0dXJuIHRoaXMucm9vdF8uZHVtcCgpO319O3ZhciBDb2xvdXI9e1JFRDoncmVkJyxCTEFDSzonYmxhY2snfTtmdW5jdGlvbiBJbnRlcnZhbFRyZWVOb2RlKGRhdHVtLGxvd1ZhbHVlLGhpZ2hWYWx1ZSl7dGhpcy5sb3dWYWx1ZV89bG93VmFsdWU7dGhpcy5kYXRhXz1be2RhdHVtOmRhdHVtLGhpZ2g6aGlnaFZhbHVlLGxvdzpsb3dWYWx1ZX1dO3RoaXMuY29sb3VyXz1Db2xvdXIuUkVEO3RoaXMucGFyZW50Tm9kZV89dW5kZWZpbmVkO3RoaXMubGVmdE5vZGVfPXVuZGVmaW5lZDt0aGlzLnJpZ2h0Tm9kZV89dW5kZWZpbmVkO3RoaXMubWF4SGlnaExlZnRfPXVuZGVmaW5lZDt0aGlzLm1heEhpZ2hSaWdodF89dW5kZWZpbmVkO30KK0ludGVydmFsVHJlZU5vZGUucHJvdG90eXBlPXthcHBlbmRJbnRlcnNlY3Rpb25zSW50b186ZnVuY3Rpb24ocmV0LHF1ZXJ5TG93LHF1ZXJ5SGlnaCl7aWYodGhpcy5sb3dWYWx1ZV8+PXF1ZXJ5SGlnaCl7aWYoIXRoaXMubGVmdE5vZGVfKQorcmV0dXJuO3JldHVybiB0aGlzLmxlZnROb2RlXy5hcHBlbmRJbnRlcnNlY3Rpb25zSW50b18ocmV0LHF1ZXJ5TG93LHF1ZXJ5SGlnaCk7fQoraWYodGhpcy5tYXhIaWdoTGVmdF8+cXVlcnlMb3cpe3RoaXMubGVmdE5vZGVfLmFwcGVuZEludGVyc2VjdGlvbnNJbnRvXyhyZXQscXVlcnlMb3cscXVlcnlIaWdoKTt9CitpZih0aGlzLmhpZ2hWYWx1ZT5xdWVyeUxvdyl7Zm9yKHZhciBpPSh0aGlzLmRhdGEubGVuZ3RoLTEpO2k+PTA7LS1pKXtpZih0aGlzLmRhdGFbaV0uaGlnaDxxdWVyeUxvdykKK2JyZWFrO3JldC5wdXNoKHRoaXMuZGF0YVtpXS5kYXR1bSk7fX0KK2lmKHRoaXMucmlnaHROb2RlXyl7dGhpcy5yaWdodE5vZGVfLmFwcGVuZEludGVyc2VjdGlvbnNJbnRvXyhyZXQscXVlcnlMb3cscXVlcnlIaWdoKTt9fSxnZXQgY29sb3VyKCl7cmV0dXJuIHRoaXMuY29sb3VyXzt9LHNldCBjb2xvdXIoY29sb3VyKXt0aGlzLmNvbG91cl89Y29sb3VyO30sZ2V0IGtleSgpe3JldHVybiB0aGlzLmxvd1ZhbHVlXzt9LGdldCBsb3dWYWx1ZSgpe3JldHVybiB0aGlzLmxvd1ZhbHVlXzt9LGdldCBoaWdoVmFsdWUoKXtyZXR1cm4gdGhpcy5kYXRhX1t0aGlzLmRhdGFfLmxlbmd0aC0xXS5oaWdoO30sc2V0IGxlZnROb2RlKGxlZnQpe3RoaXMubGVmdE5vZGVfPWxlZnQ7fSxnZXQgbGVmdE5vZGUoKXtyZXR1cm4gdGhpcy5sZWZ0Tm9kZV87fSxnZXQgaGFzTGVmdE5vZGUoKXtyZXR1cm4gdGhpcy5sZWZ0Tm9kZV8hPT11bmRlZmluZWQ7fSxzZXQgcmlnaHROb2RlKHJpZ2h0KXt0aGlzLnJpZ2h0Tm9kZV89cmlnaHQ7fSxnZXQgcmlnaHROb2RlKCl7cmV0dXJuIHRoaXMucmlnaHROb2RlXzt9LGdldCBoYXNSaWdodE5vZGUoKXtyZXR1cm4gdGhpcy5yaWdodE5vZGVfIT09dW5kZWZpbmVkO30sc2V0IHBhcmVudE5vZGUocGFyZW50KXt0aGlzLnBhcmVudE5vZGVfPXBhcmVudDt9LGdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZV87fSxnZXQgaXNSb290Tm9kZSgpe3JldHVybiB0aGlzLnBhcmVudE5vZGVfPT09dW5kZWZpbmVkO30sc2V0IG1heEhpZ2hMZWZ0KGhpZ2gpe3RoaXMubWF4SGlnaExlZnRfPWhpZ2g7fSxnZXQgbWF4SGlnaExlZnQoKXtyZXR1cm4gdGhpcy5tYXhIaWdoTGVmdF87fSxzZXQgbWF4SGlnaFJpZ2h0KGhpZ2gpe3RoaXMubWF4SGlnaFJpZ2h0Xz1oaWdoO30sZ2V0IG1heEhpZ2hSaWdodCgpe3JldHVybiB0aGlzLm1heEhpZ2hSaWdodF87fSxnZXQgZGF0YSgpe3JldHVybiB0aGlzLmRhdGFfO30sZ2V0IGlzUmVkKCl7cmV0dXJuIHRoaXMuY29sb3VyXz09PUNvbG91ci5SRUQ7fSxtZXJnZTpmdW5jdGlvbihub2RlKXtmb3IodmFyIGk9MDtpPG5vZGUuZGF0YS5sZW5ndGg7aSsrKQordGhpcy5kYXRhXy5wdXNoKG5vZGUuZGF0YVtpXSk7dGhpcy5kYXRhXy5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuaGlnaC1iLmhpZ2g7fSk7fSxkdW1wOmZ1bmN0aW9uKCl7dmFyIHJldD17fTtpZih0aGlzLmxlZnROb2RlXykKK3JldFsnbGVmdCddPXRoaXMubGVmdE5vZGVfLmR1bXAoKTtyZXRbJ2RhdGEnXT10aGlzLmRhdGFfLm1hcChmdW5jdGlvbihkKXtyZXR1cm5bZC5sb3csZC5oaWdoXTt9KTtpZih0aGlzLnJpZ2h0Tm9kZV8pCityZXRbJ3JpZ2h0J109dGhpcy5yaWdodE5vZGVfLmR1bXAoKTtyZXR1cm4gcmV0O319O3JldHVybntJbnRlcnZhbFRyZWU6SW50ZXJ2YWxUcmVlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUmFuZ2UoKXt0aGlzLmlzRW1wdHlfPXRydWU7dGhpcy5taW5fPXVuZGVmaW5lZDt0aGlzLm1heF89dW5kZWZpbmVkO307UmFuZ2UucHJvdG90eXBlPXtfX3Byb3RvX186T2JqZWN0LnByb3RvdHlwZSxyZXNldDpmdW5jdGlvbigpe3RoaXMuaXNFbXB0eV89dHJ1ZTt0aGlzLm1pbl89dW5kZWZpbmVkO3RoaXMubWF4Xz11bmRlZmluZWQ7fSxnZXQgaXNFbXB0eSgpe3JldHVybiB0aGlzLmlzRW1wdHlfO30sYWRkUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe2lmKHJhbmdlLmlzRW1wdHkpCityZXR1cm47dGhpcy5hZGRWYWx1ZShyYW5nZS5taW4pO3RoaXMuYWRkVmFsdWUocmFuZ2UubWF4KTt9LGFkZFZhbHVlOmZ1bmN0aW9uKHZhbHVlKXtpZih0aGlzLmlzRW1wdHlfKXt0aGlzLm1heF89dmFsdWU7dGhpcy5taW5fPXZhbHVlO3RoaXMuaXNFbXB0eV89ZmFsc2U7cmV0dXJuO30KK3RoaXMubWF4Xz1NYXRoLm1heCh0aGlzLm1heF8sdmFsdWUpO3RoaXMubWluXz1NYXRoLm1pbih0aGlzLm1pbl8sdmFsdWUpO30sc2V0IG1pbihtaW4pe3RoaXMuaXNFbXB0eV89ZmFsc2U7dGhpcy5taW5fPW1pbjt9LGdldCBtaW4oKXtpZih0aGlzLmlzRW1wdHlfKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5taW5fO30sZ2V0IG1heCgpe2lmKHRoaXMuaXNFbXB0eV8pCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzLm1heF87fSxzZXQgbWF4KG1heCl7dGhpcy5pc0VtcHR5Xz1mYWxzZTt0aGlzLm1heF89bWF4O30sZ2V0IHJhbmdlKCl7aWYodGhpcy5pc0VtcHR5XykKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMubWF4Xy10aGlzLm1pbl87fSxnZXQgY2VudGVyKCl7cmV0dXJuKHRoaXMubWluXyt0aGlzLm1heF8pKjAuNTt9LGVxdWFsczpmdW5jdGlvbih0aGF0KXtpZih0aGlzLmlzRW1wdHkmJnRoYXQuaXNFbXB0eSkKK3JldHVybiB0cnVlO2lmKHRoaXMuaXNFbXB0eSE9dGhhdC5pc0VtcHR5KQorcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLm1pbj09PXRoYXQubWluJiZ0aGlzLm1heD09PXRoYXQubWF4O30sY29udGFpbnNSYW5nZTpmdW5jdGlvbihyYW5nZSl7aWYodGhpcy5pc0VtcHR5fHxyYW5nZS5pc0VtcHR5KQorcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLm1pbjw9cmFuZ2UubWluJiZ0aGlzLm1heD49cmFuZ2UubWF4O30sY29udGFpbnNFeHBsaWNpdFJhbmdlOmZ1bmN0aW9uKG1pbixtYXgpe2lmKHRoaXMuaXNFbXB0eSkKK3JldHVybiBmYWxzZTtyZXR1cm4gdGhpcy5taW48PW1pbiYmdGhpcy5tYXg+PW1heDt9LGludGVyc2VjdHNSYW5nZTpmdW5jdGlvbihyYW5nZSl7aWYodGhpcy5pc0VtcHR5fHxyYW5nZS5pc0VtcHR5KQorcmV0dXJuIGZhbHNlO3JldHVybiEocmFuZ2UubWF4PHRoaXMubWlufHxyYW5nZS5taW4+dGhpcy5tYXgpO30saW50ZXJzZWN0c0V4cGxpY2l0UmFuZ2U6ZnVuY3Rpb24obWluLG1heCl7aWYodGhpcy5pc0VtcHR5KQorcmV0dXJuIGZhbHNlO3JldHVybiEobWF4PHRoaXMubWlufHxtaW4+dGhpcy5tYXgpO319O1JhbmdlLmZyb21FeHBsaWNpdFJhbmdlPWZ1bmN0aW9uKG1pbixtYXgpe3ZhciByYW5nZT1uZXcgUmFuZ2UoKTtyYW5nZS5taW49bWluO3JhbmdlLm1heD1tYXg7cmV0dXJuIHJhbmdlO307UmFuZ2UuY29tcGFyZUJ5TWluVGltZXM9ZnVuY3Rpb24oYSxiKXtpZighYS5pc0VtcHR5JiYhYi5pc0VtcHR5KQorcmV0dXJuIGEubWluXy1iLm1pbl87aWYoYS5pc0VtcHR5JiYhYi5pc0VtcHR5KQorcmV0dXJuLTE7aWYoIWEuaXNFbXB0eSYmYi5pc0VtcHR5KQorcmV0dXJuIDE7cmV0dXJuIDA7fTtyZXR1cm57UmFuZ2U6UmFuZ2V9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBhZGRTaW5nbGV0b25HZXR0ZXIoY3Rvcil7Y3Rvci5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBjdG9yLmluc3RhbmNlX3x8KGN0b3IuaW5zdGFuY2VfPW5ldyBjdG9yKCkpO307fQorZnVuY3Rpb24gbm9ybWFsaXplRXhjZXB0aW9uKGUpe2lmKGU9PT11bmRlZmluZWR8fGU9PT1udWxsKXtyZXR1cm57bWVzc2FnZTonVW5rbm93bjogbnVsbCBvciB1bmRlZmluZWQgZXhjZXB0aW9uJyxzdGFjazonVW5rbm93bid9O30KK2lmKHR5cGVvZihlKT09J3N0cmluZycpe3JldHVybnttZXNzYWdlOmUsc3RhY2s6W2VdfTt9Cit2YXIgbXNnPWUubWVzc2FnZT9lLm1lc3NhZ2U6J1Vua25vd24nO3JldHVybnttZXNzYWdlOm1zZyxzdGFjazplLnN0YWNrP2Uuc3RhY2s6W21zZ119O30KK2Z1bmN0aW9uIHN0YWNrVHJhY2UoKXt2YXIgc3RhY2s9bmV3IEVycm9yKCkuc3RhY2srJyc7c3RhY2s9c3RhY2suc3BsaXQoJ1xuJyk7cmV0dXJuIHN0YWNrLnNsaWNlKDIpO30KK2Z1bmN0aW9uIGdldFVzaW5nUGF0aChwYXRoLGZyb21fZGljdCl7dmFyIHBhcnRzPXBhdGguc3BsaXQoJy4nKTt2YXIgY3VyPWZyb21fZGljdDtmb3IodmFyIHBhcnQ7cGFydHMubGVuZ3RoJiYocGFydD1wYXJ0cy5zaGlmdCgpKTspe2lmKCFwYXJ0cy5sZW5ndGgpe3JldHVybiBjdXJbcGFydF07fWVsc2UgaWYocGFydCBpbiBjdXIpe2N1cj1jdXJbcGFydF07fWVsc2V7cmV0dXJuIHVuZGVmaW5lZDt9fQorcmV0dXJuIHVuZGVmaW5lZDt9CityZXR1cm57YWRkU2luZ2xldG9uR2V0dGVyOmFkZFNpbmdsZXRvbkdldHRlcixub3JtYWxpemVFeGNlcHRpb246bm9ybWFsaXplRXhjZXB0aW9uLHN0YWNrVHJhY2U6c3RhY2tUcmFjZSxnZXRVc2luZ1BhdGg6Z2V0VXNpbmdQYXRofTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7dmFyIHJlY29yZFJBRlN0YWNrcz1mYWxzZTt2YXIgcGVuZGluZ1ByZUFGcz1bXTt2YXIgcGVuZGluZ1JBRnM9W107dmFyIHBlbmRpbmdJZGxlQ2FsbGJhY2tzPVtdO3ZhciBjdXJyZW50UkFGRGlzcGF0Y2hMaXN0PXVuZGVmaW5lZDt2YXIgcmFmU2NoZWR1bGVkPWZhbHNlO2Z1bmN0aW9uIHNjaGVkdWxlUkFGKCl7aWYocmFmU2NoZWR1bGVkKQorcmV0dXJuO3JhZlNjaGVkdWxlZD10cnVlO2lmKHRyLmlzSGVhZGxlc3Mpe1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtwcm9jZXNzUmVxdWVzdHMoMCk7fSxmdW5jdGlvbihlKXtjb25zb2xlLmxvZyhlLnN0YWNrKTt0aHJvdyBlO30pO31lbHNle2lmKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocHJvY2Vzc1JlcXVlc3RzKTt9ZWxzZXt2YXIgZGVsdGE9RGF0ZS5ub3coKS13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7d2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbihkb21UaW1lU3RhbXApe3Byb2Nlc3NSZXF1ZXN0cyhkb21UaW1lU3RhbXAtZGVsdGEpO30pO319fQorZnVuY3Rpb24gb25BbmltYXRpb25GcmFtZUVycm9yKGUsb3B0X3N0YWNrKXtjb25zb2xlLmxvZyhlLnN0YWNrKTtpZih0ci5pc0hlYWRsZXNzKQordGhyb3cgZTtpZihvcHRfc3RhY2spCitjb25zb2xlLmxvZyhvcHRfc3RhY2spO2lmKGUubWVzc2FnZSkKK2NvbnNvbGUuZXJyb3IoZS5tZXNzYWdlLGUuc3RhY2spO2Vsc2UKK2NvbnNvbGUuZXJyb3IoZSk7fQorZnVuY3Rpb24gcnVuVGFzayh0YXNrLGZyYW1lQmVnaW5UaW1lKXt0cnl7dGFzay5jYWxsYmFjay5jYWxsKHRhc2suY29udGV4dCxmcmFtZUJlZ2luVGltZSk7fWNhdGNoKGUpe3RyLmIub25BbmltYXRpb25GcmFtZUVycm9yKGUsdGFzay5zdGFjayk7fX0KK2Z1bmN0aW9uIHByb2Nlc3NSZXF1ZXN0cyhmcmFtZUJlZ2luVGltZSl7dmFyIHJhZkNvbXBsZXRpb25EZWFkbGluZT1mcmFtZUJlZ2luVGltZSsxMDtyYWZTY2hlZHVsZWQ9ZmFsc2U7dmFyIGN1cnJlbnRQcmVBRnM9cGVuZGluZ1ByZUFGcztjdXJyZW50UkFGRGlzcGF0Y2hMaXN0PXBlbmRpbmdSQUZzO3BlbmRpbmdQcmVBRnM9W107cGVuZGluZ1JBRnM9W107dmFyIGhhc1JBRlRhc2tzPWN1cnJlbnRQcmVBRnMubGVuZ3RofHxjdXJyZW50UkFGRGlzcGF0Y2hMaXN0Lmxlbmd0aDtmb3IodmFyIGk9MDtpPGN1cnJlbnRQcmVBRnMubGVuZ3RoO2krKykKK3J1blRhc2soY3VycmVudFByZUFGc1tpXSxmcmFtZUJlZ2luVGltZSk7d2hpbGUoY3VycmVudFJBRkRpc3BhdGNoTGlzdC5sZW5ndGg+MCkKK3J1blRhc2soY3VycmVudFJBRkRpc3BhdGNoTGlzdC5zaGlmdCgpLGZyYW1lQmVnaW5UaW1lKTtjdXJyZW50UkFGRGlzcGF0Y2hMaXN0PXVuZGVmaW5lZDtpZighaGFzUkFGVGFza3Mpe3doaWxlKHBlbmRpbmdJZGxlQ2FsbGJhY2tzLmxlbmd0aD4wKXtydW5UYXNrKHBlbmRpbmdJZGxlQ2FsbGJhY2tzLnNoaWZ0KCkpO2lmKHRyLmlzSGVhZGxlc3N8fHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKT49cmFmQ29tcGxldGlvbkRlYWRsaW5lKQorYnJlYWs7fX0KK2lmKHBlbmRpbmdJZGxlQ2FsbGJhY2tzLmxlbmd0aD4wKQorc2NoZWR1bGVSQUYoKTt9CitmdW5jdGlvbiBnZXRTdGFja18oKXtpZighcmVjb3JkUkFGU3RhY2tzKQorcmV0dXJuJyc7dmFyIHN0YWNrTGluZXM9dHIuYi5zdGFja1RyYWNlKCk7c3RhY2tMaW5lcy5zaGlmdCgpO3JldHVybiBzdGFja0xpbmVzLmpvaW4oJ1xuJyk7fQorZnVuY3Rpb24gcmVxdWVzdFByZUFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrLG9wdF90aGlzKXtwZW5kaW5nUHJlQUZzLnB1c2goe2NhbGxiYWNrOmNhbGxiYWNrLGNvbnRleHQ6b3B0X3RoaXN8fHdpbmRvdyxzdGFjazpnZXRTdGFja18oKX0pO3NjaGVkdWxlUkFGKCk7fQorZnVuY3Rpb24gcmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5UaGlzRnJhbWVJZlBvc3NpYmxlKGNhbGxiYWNrLG9wdF90aGlzKXtpZighY3VycmVudFJBRkRpc3BhdGNoTGlzdCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrLG9wdF90aGlzKTtyZXR1cm47fQorY3VycmVudFJBRkRpc3BhdGNoTGlzdC5wdXNoKHtjYWxsYmFjazpjYWxsYmFjayxjb250ZXh0Om9wdF90aGlzfHx3aW5kb3csc3RhY2s6Z2V0U3RhY2tfKCl9KTtyZXR1cm47fQorZnVuY3Rpb24gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrLG9wdF90aGlzKXtwZW5kaW5nUkFGcy5wdXNoKHtjYWxsYmFjazpjYWxsYmFjayxjb250ZXh0Om9wdF90aGlzfHx3aW5kb3csc3RhY2s6Z2V0U3RhY2tfKCl9KTtzY2hlZHVsZVJBRigpO30KK2Z1bmN0aW9uIHJlcXVlc3RJZGxlQ2FsbGJhY2soY2FsbGJhY2ssb3B0X3RoaXMpe3BlbmRpbmdJZGxlQ2FsbGJhY2tzLnB1c2goe2NhbGxiYWNrOmNhbGxiYWNrLGNvbnRleHQ6b3B0X3RoaXN8fHdpbmRvdyxzdGFjazpnZXRTdGFja18oKX0pO3NjaGVkdWxlUkFGKCk7fQorZnVuY3Rpb24gZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bihmcmFtZUJlZ2luVGltZSl7aWYoIXJhZlNjaGVkdWxlZCkKK3JldHVybjtwcm9jZXNzUmVxdWVzdHMoZnJhbWVCZWdpblRpbWUpO30KK3JldHVybntvbkFuaW1hdGlvbkZyYW1lRXJyb3I6b25BbmltYXRpb25GcmFtZUVycm9yLHJlcXVlc3RQcmVBbmltYXRpb25GcmFtZTpyZXF1ZXN0UHJlQW5pbWF0aW9uRnJhbWUscmVxdWVzdEFuaW1hdGlvbkZyYW1lOnJlcXVlc3RBbmltYXRpb25GcmFtZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGU6cmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5UaGlzRnJhbWVJZlBvc3NpYmxlLHJlcXVlc3RJZGxlQ2FsbGJhY2s6cmVxdWVzdElkbGVDYWxsYmFjayxmb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuOmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW59O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBUYXNrKHJ1bkNiLHRoaXNBcmcpe2lmKHJ1bkNiIT09dW5kZWZpbmVkJiZ0aGlzQXJnPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdBbG1vc3QgY2VydGFpbmx5LCB5b3UgbWVhbnQgdG8gcGFzcyBhIHRoaXNBcmcuJyk7dGhpcy5ydW5DYl89cnVuQ2I7dGhpcy50aGlzQXJnXz10aGlzQXJnO3RoaXMuYWZ0ZXJUYXNrXz11bmRlZmluZWQ7dGhpcy5zdWJUYXNrc189W107fQorVGFzay5wcm90b3R5cGU9e3N1YlRhc2s6ZnVuY3Rpb24oY2IsdGhpc0FyZyl7aWYoY2IgaW5zdGFuY2VvZiBUYXNrKQordGhpcy5zdWJUYXNrc18ucHVzaChjYik7ZWxzZQordGhpcy5zdWJUYXNrc18ucHVzaChuZXcgVGFzayhjYix0aGlzQXJnKSk7cmV0dXJuIHRoaXMuc3ViVGFza3NfW3RoaXMuc3ViVGFza3NfLmxlbmd0aC0xXTt9LHJ1bjpmdW5jdGlvbigpe2lmKHRoaXMucnVuQ2JfIT09dW5kZWZpbmVkKQordGhpcy5ydW5DYl8uY2FsbCh0aGlzLnRoaXNBcmdfLHRoaXMpO3ZhciBzdWJUYXNrcz10aGlzLnN1YlRhc2tzXzt0aGlzLnN1YlRhc2tzXz11bmRlZmluZWQ7aWYoIXN1YlRhc2tzLmxlbmd0aCkKK3JldHVybiB0aGlzLmFmdGVyVGFza187Zm9yKHZhciBpPTE7aTxzdWJUYXNrcy5sZW5ndGg7aSsrKQorc3ViVGFza3NbaS0xXS5hZnRlclRhc2tfPXN1YlRhc2tzW2ldO3N1YlRhc2tzW3N1YlRhc2tzLmxlbmd0aC0xXS5hZnRlclRhc2tfPXRoaXMuYWZ0ZXJUYXNrXztyZXR1cm4gc3ViVGFza3NbMF07fSxhZnRlcjpmdW5jdGlvbihjYix0aGlzQXJnKXtpZih0aGlzLmFmdGVyVGFza18pCit0aHJvdyBuZXcgRXJyb3IoJ0hhcyBhbiBhZnRlciB0YXNrIGFscmVhZHknKTtpZihjYiBpbnN0YW5jZW9mIFRhc2spCit0aGlzLmFmdGVyVGFza189Y2I7ZWxzZQordGhpcy5hZnRlclRhc2tfPW5ldyBUYXNrKGNiLHRoaXNBcmcpO3JldHVybiB0aGlzLmFmdGVyVGFza187fSxlbnF1ZXVlOmZ1bmN0aW9uKGNiLHRoaXNBcmcpe3ZhciBsYXN0VGFzaz10aGlzO3doaWxlKGxhc3RUYXNrLmFmdGVyVGFza18pCitsYXN0VGFzaz1sYXN0VGFzay5hZnRlclRhc2tfO3JldHVybiBsYXN0VGFzay5hZnRlcihjYix0aGlzQXJnKTt9fTtUYXNrLlJ1blN5bmNocm9ub3VzbHk9ZnVuY3Rpb24odGFzayl7dmFyIGN1clRhc2s9dGFzazt3aGlsZShjdXJUYXNrKQorY3VyVGFzaz1jdXJUYXNrLnJ1bigpO30KK1Rhc2suUnVuV2hlbklkbGU9ZnVuY3Rpb24odGFzayl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUscmVqZWN0KXt2YXIgY3VyVGFzaz10YXNrO2Z1bmN0aW9uIHJ1bkFub3RoZXIoKXt0cnl7Y3VyVGFzaz1jdXJUYXNrLnJ1bigpO31jYXRjaChlKXtyZWplY3QoZSk7Y29uc29sZS5lcnJvcihlLnN0YWNrKTtyZXR1cm47fQoraWYoY3VyVGFzayl7dHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKHJ1bkFub3RoZXIpO3JldHVybjt9CityZXNvbHZlKCk7fQordHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKHJ1bkFub3RoZXIpO30pO30KK3JldHVybntUYXNrOlRhc2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBfaXRlcmF0ZUVsZW1lbnREZWVwbHlJbXBsKGVsZW1lbnQsY2IsdGhpc0FyZyxpbmNsdWRlRWxlbWVudCl7aWYoaW5jbHVkZUVsZW1lbnQpe2lmKGNiLmNhbGwodGhpc0FyZyxlbGVtZW50KSkKK3JldHVybiB0cnVlO30KK2lmKGVsZW1lbnQuc2hhZG93Um9vdCl7aWYoX2l0ZXJhdGVFbGVtZW50RGVlcGx5SW1wbChlbGVtZW50LnNoYWRvd1Jvb3QsY2IsdGhpc0FyZyxmYWxzZSkpCityZXR1cm4gdHJ1ZTt9Citmb3IodmFyIGk9MDtpPGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO2krKyl7aWYoX2l0ZXJhdGVFbGVtZW50RGVlcGx5SW1wbChlbGVtZW50LmNoaWxkcmVuW2ldLGNiLHRoaXNBcmcsdHJ1ZSkpCityZXR1cm4gdHJ1ZTt9fQorZnVuY3Rpb24gaXRlcmF0ZUVsZW1lbnREZWVwbHkoZWxlbWVudCxjYix0aGlzQXJnKXtfaXRlcmF0ZUVsZW1lbnREZWVwbHlJbXBsKGVsZW1lbnQsY2IsdGhpc0FyZyxmYWxzZSk7fQorZnVuY3Rpb24gZmluZERlZXBFbGVtZW50TWF0Y2hpbmdQcmVkaWNhdGUoZWxlbWVudCxwcmVkaWNhdGUpe3ZhciBmb3VuZEVsZW1lbnQ9dW5kZWZpbmVkO2Z1bmN0aW9uIG1hdGNoZXMoZWxlbWVudCl7dmFyIG1hdGNoPXByZWRpY2F0ZShlbGVtZW50KTtpZighbWF0Y2gpCityZXR1cm4gZmFsc2U7Zm91bmRFbGVtZW50PWVsZW1lbnQ7cmV0dXJuIHRydWU7fQoraXRlcmF0ZUVsZW1lbnREZWVwbHkoZWxlbWVudCxtYXRjaGVzKTtyZXR1cm4gZm91bmRFbGVtZW50O30KK2Z1bmN0aW9uIGZpbmREZWVwRWxlbWVudHNNYXRjaGluZ1ByZWRpY2F0ZShlbGVtZW50LHByZWRpY2F0ZSl7dmFyIGZvdW5kRWxlbWVudHM9W107ZnVuY3Rpb24gbWF0Y2hlcyhlbGVtZW50KXt2YXIgbWF0Y2g9cHJlZGljYXRlKGVsZW1lbnQpO2lmKG1hdGNoKXtmb3VuZEVsZW1lbnRzLnB1c2goZWxlbWVudCk7fQorcmV0dXJuIGZhbHNlO30KK2l0ZXJhdGVFbGVtZW50RGVlcGx5KGVsZW1lbnQsbWF0Y2hlcyk7cmV0dXJuIGZvdW5kRWxlbWVudHM7fQorZnVuY3Rpb24gZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoZWxlbWVudCxzZWxlY3Rvcil7cmV0dXJuIGZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlKGVsZW1lbnQsZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuIGVsZW1lbnQubWF0Y2hlcyhzZWxlY3Rvcik7fSk7fQorZnVuY3Rpb24gZmluZERlZXBFbGVtZW50c01hdGNoaW5nKGVsZW1lbnQsc2VsZWN0b3Ipe3JldHVybiBmaW5kRGVlcEVsZW1lbnRzTWF0Y2hpbmdQcmVkaWNhdGUoZWxlbWVudCxmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gZWxlbWVudC5tYXRjaGVzKHNlbGVjdG9yKTt9KTt9CitmdW5jdGlvbiBmaW5kRGVlcEVsZW1lbnRXaXRoVGV4dENvbnRlbnQoZWxlbWVudCxyZSl7cmV0dXJuIGZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlKGVsZW1lbnQsZnVuY3Rpb24oZWxlbWVudCl7aWYoZWxlbWVudC5jaGlsZHJlbi5sZW5ndGghPT0wKQorcmV0dXJuIGZhbHNlO3JldHVybiByZS50ZXN0KGVsZW1lbnQudGV4dENvbnRlbnQpO30pO30KK3JldHVybntpdGVyYXRlRWxlbWVudERlZXBseTppdGVyYXRlRWxlbWVudERlZXBseSxmaW5kRGVlcEVsZW1lbnRNYXRjaGluZzpmaW5kRGVlcEVsZW1lbnRNYXRjaGluZyxmaW5kRGVlcEVsZW1lbnRzTWF0Y2hpbmc6ZmluZERlZXBFbGVtZW50c01hdGNoaW5nLGZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlOmZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlLGZpbmREZWVwRWxlbWVudHNNYXRjaGluZ1ByZWRpY2F0ZTpmaW5kRGVlcEVsZW1lbnRzTWF0Y2hpbmdQcmVkaWNhdGUsZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50OmZpbmREZWVwRWxlbWVudFdpdGhUZXh0Q29udGVudH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVuaXRzJyxmdW5jdGlvbigpe3ZhciBtcz17c2NhbGU6MWUtMyxzdWZmaXg6J21zJyxyb3VuZGVkTGVzczpmdW5jdGlvbihhLGIpe3JldHVybiBNYXRoLnJvdW5kKGEqMTAwMCk8TWF0aC5yb3VuZChiKjEwMDApO30sZm9ybWF0OmZ1bmN0aW9uKHRzKXt2YXIgdHNSb3VuZGVkPU1hdGgucm91bmQodHMqMTAwMC4wKS8xMDAwLjA7dmFyIG49bmV3IE51bWJlcih0c1JvdW5kZWQpO3JldHVybiBuLnRvTG9jYWxlU3RyaW5nKHVuZGVmaW5lZCx7bWluaW11bUZyYWN0aW9uRGlnaXRzOjN9KSsnIG1zJzt9fTt2YXIgbnM9e3NjYWxlOjFlLTksc3VmZml4Oiducycscm91bmRlZExlc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gTWF0aC5yb3VuZChhKjEwMDAwMDApPE1hdGgucm91bmQoYioxMDAwMDAwKTt9LGZvcm1hdDpmdW5jdGlvbih0cyl7dmFyIHRzUm91bmRlZD1NYXRoLnJvdW5kKHRzKjEwMDAwMDAuMCk7dmFyIG49bmV3IE51bWJlcih0c1JvdW5kZWQpO3JldHVybiBuLnRvTG9jYWxlU3RyaW5nKHVuZGVmaW5lZCx7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjB9KSsnIG5zJzt9fTtmdW5jdGlvbiBtYXgoYSxiKXtpZihhPT09dW5kZWZpbmVkKQorcmV0dXJuIGI7aWYoYj09PXVuZGVmaW5lZCkKK3JldHVybiBhO3JldHVybiBhLnNjYWxlPmIuc2NhbGU/YTpiO30KK3ZhciBUaW1lPXtzdXBwb3J0ZWRVbml0czp7bXM6bXMsbnM6bnN9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50RGlzcGxheVVuaXQ9bXM7fSxjdXJyZW50RGlzcGxheVVuaXRfOm1zLGdldCBjdXJyZW50RGlzcGxheVVuaXQoKXtyZXR1cm4gdGhpcy5jdXJyZW50RGlzcGxheVVuaXRfO30sc2V0IGN1cnJlbnREaXNwbGF5VW5pdCh2YWx1ZSl7aWYodGhpcy5jdXJyZW50RGlzcGxheVVuaXRfPT12YWx1ZSkKK3JldHVybjt0aGlzLmN1cnJlbnREaXNwbGF5VW5pdF89dmFsdWU7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyB0ci5iLkV2ZW50KCdkaXNwbGF5LXVuaXQtY2hhbmdlZCcpKTt9LGRpZFByZWZlcnJlZFVuaXRDaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgbGFyZ2VzdD11bmRlZmluZWQ7dmFyIGVscz10ci5iLmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhkb2N1bWVudC5ib2R5LCd0ci11aS11LXByZWZlcnJlZC1kaXNwbGF5LXVuaXQnKTtlbHMuZm9yRWFjaChmdW5jdGlvbihlbCl7bGFyZ2VzdD1tYXgobGFyZ2VzdCxlbC5wcmVmZXJyZWREaXNwbGF5VW5pdCk7fSk7dGhpcy5jdXJyZW50RGlzcGxheVVuaXQ9bGFyZ2VzdD09PXVuZGVmaW5lZD9tczpsYXJnZXN0O30sdGltZXN0YW1wRnJvbVVzOmZ1bmN0aW9uKHVzKXtyZXR1cm4gdXMvMTAwMDt9LG1heWJlVGltZXN0YW1wRnJvbVVzOmZ1bmN0aW9uKHVzKXtyZXR1cm4gdXM9PT11bmRlZmluZWQ/dW5kZWZpbmVkOnVzLzEwMDA7fX07dHIuYi5FdmVudFRhcmdldC5kZWNvcmF0ZShUaW1lKTtyZXR1cm57VGltZTpUaW1lfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYXNBcnJheShhcnJheWlzaCl7dmFyIHZhbHVlcz1bXTtmb3IodmFyIGk9MDtpPGFycmF5aXNoLmxlbmd0aDtpKyspCiB2YWx1ZXMucHVzaChhcnJheWlzaFtpXSk7cmV0dXJuIHZhbHVlczt9CiBmdW5jdGlvbiBjb21wYXJlQXJyYXlzKHgseSxlbGVtZW50Q21wKXt2YXIgbWluTGVuZ3RoPU1hdGgubWluKHgubGVuZ3RoLHkubGVuZ3RoKTtmb3IodmFyIGk9MDtpPG1pbkxlbmd0aDtpKyspe3ZhciB0bXA9ZWxlbWVudENtcCh4W2ldLHlbaV0pO2lmKHRtcCkKIHJldHVybiB0bXA7fQpAQCAtMTcxNSw0OCArMjE4OSw3NTcgQEAKIHJldHVybi0xO30KIGZ1bmN0aW9uIGZpbmRGaXJzdEluQXJyYXkoYXJ5LG9wdF9mdW5jLG9wdF90aGlzKXt2YXIgaT1maW5kRmlyc3RJbmRleEluQXJyYXkoYXJ5LG9wdF9mdW5jLG9wdF9mdW5jKTtpZihpPT09LTEpCiByZXR1cm4gdW5kZWZpbmVkO3JldHVybiBhcnlbaV07fQotcmV0dXJue2FzQXJyYXk6YXNBcnJheSxjb25jYXRlbmF0ZUFycmF5czpjb25jYXRlbmF0ZUFycmF5cyxjb25jYXRlbmF0ZU9iamVjdHM6Y29uY2F0ZW5hdGVPYmplY3RzLGNvbXBhcmVBcnJheXM6Y29tcGFyZUFycmF5cyxjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXM6Y29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzLGRpY3Rpb25hcnlMZW5ndGg6ZGljdGlvbmFyeUxlbmd0aCxkaWN0aW9uYXJ5S2V5czpkaWN0aW9uYXJ5S2V5cyxkaWN0aW9uYXJ5VmFsdWVzOmRpY3Rpb25hcnlWYWx1ZXMsZ3JvdXA6Z3JvdXAsaXRlckl0ZW1zOml0ZXJJdGVtcyxtYXBJdGVtczptYXBJdGVtcyxpdGVyT2JqZWN0RmllbGRzUmVjdXJzaXZlbHk6aXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5LGlkZW50aXR5OmlkZW50aXR5LGZpbmRGaXJzdEluZGV4SW5BcnJheTpmaW5kRmlyc3RJbmRleEluQXJyYXksZmluZEZpcnN0SW5BcnJheTpmaW5kRmlyc3RJbkFycmF5fTt9KTsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9e307dHlwZW9mIGV4cG9ydHM9PSJ1bmRlZmluZWQiP3R5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJnR5cGVvZiBkZWZpbmUuYW1kPT0ib2JqZWN0IiYmZGVmaW5lLmFtZD8oZS5leHBvcnRzPXt9LGRlZmluZShmdW5jdGlvbigpe3JldHVybiBlLmV4cG9ydHN9KSk6ZS5leHBvcnRzPXdpbmRvdzplLmV4cG9ydHM9ZXhwb3J0cyxmdW5jdGlvbihlKXtpZighdCl2YXIgdD0xZS02O2lmKCFuKXZhciBuPXR5cGVvZiBGbG9hdDMyQXJyYXkhPSJ1bmRlZmluZWQiP0Zsb2F0MzJBcnJheTpBcnJheTt2YXIgcj17fTtyLnNldE1hdHJpeEFycmF5VHlwZT1mdW5jdGlvbihlKXtuPWV9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUuZ2xNYXRyaXg9cik7dmFyIGk9e307aS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbigyKTtyZXR1cm4gZVswXT0wLGVbMV09MCxlfSxpLmNsb25lPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuKDIpO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHR9LGkuZnJvbVZhbHVlcz1mdW5jdGlvbihlLHQpe3ZhciByPW5ldyBuKDIpO3JldHVybiByWzBdPWUsclsxXT10LHJ9LGkuY29weT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGV9LGkuc2V0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10LGVbMV09bixlfSxpLmFkZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXStuWzBdLGVbMV09dFsxXStuWzFdLGV9LGkuc3VidHJhY3Q9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0tblswXSxlWzFdPXRbMV0tblsxXSxlfSxpLnN1Yj1pLnN1YnRyYWN0LGkubXVsdGlwbHk9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0qblswXSxlWzFdPXRbMV0qblsxXSxlfSxpLm11bD1pLm11bHRpcGx5LGkuZGl2aWRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdL25bMF0sZVsxXT10WzFdL25bMV0sZX0saS5kaXY9aS5kaXZpZGUsaS5taW49ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPU1hdGgubWluKHRbMF0sblswXSksZVsxXT1NYXRoLm1pbih0WzFdLG5bMV0pLGV9LGkubWF4PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT1NYXRoLm1heCh0WzBdLG5bMF0pLGVbMV09TWF0aC5tYXgodFsxXSxuWzFdKSxlfSxpLnNjYWxlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdKm4sZVsxXT10WzFdKm4sZX0saS5kaXN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0tZVswXSxyPXRbMV0tZVsxXTtyZXR1cm4gTWF0aC5zcXJ0KG4qbityKnIpfSxpLmRpc3Q9aS5kaXN0YW5jZSxpLnNxdWFyZWREaXN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0tZVswXSxyPXRbMV0tZVsxXTtyZXR1cm4gbipuK3Iqcn0saS5zcXJEaXN0PWkuc3F1YXJlZERpc3RhbmNlLGkubGVuZ3RoPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sbj1lWzFdO3JldHVybiBNYXRoLnNxcnQodCp0K24qbil9LGkubGVuPWkubGVuZ3RoLGkuc3F1YXJlZExlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1lWzBdLG49ZVsxXTtyZXR1cm4gdCp0K24qbn0saS5zcXJMZW49aS5zcXVhcmVkTGVuZ3RoLGkubmVnYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09LXRbMF0sZVsxXT0tdFsxXSxlfSxpLm5vcm1hbGl6ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9bipuK3IqcjtyZXR1cm4gaT4wJiYoaT0xL01hdGguc3FydChpKSxlWzBdPXRbMF0qaSxlWzFdPXRbMV0qaSksZX0saS5kb3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXSp0WzBdK2VbMV0qdFsxXX0saS5jcm9zcz1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSpuWzFdLXRbMV0qblswXTtyZXR1cm4gZVswXT1lWzFdPTAsZVsyXT1yLGV9LGkubGVycD1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT10WzBdLHM9dFsxXTtyZXR1cm4gZVswXT1pK3IqKG5bMF0taSksZVsxXT1zK3IqKG5bMV0tcyksZX0saS50cmFuc2Zvcm1NYXQyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXTtyZXR1cm4gZVswXT1uWzBdKnIrblsyXSppLGVbMV09blsxXSpyK25bM10qaSxlfSxpLnRyYW5zZm9ybU1hdDJkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXTtyZXR1cm4gZVswXT1uWzBdKnIrblsyXSppK25bNF0sZVsxXT1uWzFdKnIrblszXSppK25bNV0sZX0saS50cmFuc2Zvcm1NYXQzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXTtyZXR1cm4gZVswXT1uWzBdKnIrblszXSppK25bNl0sZVsxXT1uWzFdKnIrbls0XSppK25bN10sZX0saS50cmFuc2Zvcm1NYXQ0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXTtyZXR1cm4gZVswXT1uWzBdKnIrbls0XSppK25bMTJdLGVbMV09blsxXSpyK25bNV0qaStuWzEzXSxlfSxpLmZvckVhY2g9ZnVuY3Rpb24oKXt2YXIgZT1pLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbih0LG4scixpLHMsbyl7dmFyIHUsYTtufHwobj0yKSxyfHwocj0wKSxpP2E9TWF0aC5taW4oaSpuK3IsdC5sZW5ndGgpOmE9dC5sZW5ndGg7Zm9yKHU9cjt1PGE7dSs9billWzBdPXRbdV0sZVsxXT10W3UrMV0scyhlLGUsbyksdFt1XT1lWzBdLHRbdSsxXT1lWzFdO3JldHVybiB0fX0oKSxpLnN0cj1mdW5jdGlvbihlKXtyZXR1cm4idmVjMigiK2VbMF0rIiwgIitlWzFdKyIpIn0sdHlwZW9mIGUhPSJ1bmRlZmluZWQiJiYoZS52ZWMyPWkpO3ZhciBzPXt9O3MuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4oMyk7cmV0dXJuIGVbMF09MCxlWzFdPTAsZVsyXT0wLGV9LHMuY2xvbmU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4oMyk7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9LHMuZnJvbVZhbHVlcz1mdW5jdGlvbihlLHQscil7dmFyIGk9bmV3IG4oMyk7cmV0dXJuIGlbMF09ZSxpWzFdPXQsaVsyXT1yLGl9LHMuY29weT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlfSxzLnNldD1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZVswXT10LGVbMV09bixlWzJdPXIsZX0scy5hZGQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0rblswXSxlWzFdPXRbMV0rblsxXSxlWzJdPXRbMl0rblsyXSxlfSxzLnN1YnRyYWN0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdLW5bMF0sZVsxXT10WzFdLW5bMV0sZVsyXT10WzJdLW5bMl0sZX0scy5zdWI9cy5zdWJ0cmFjdCxzLm11bHRpcGx5PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdKm5bMF0sZVsxXT10WzFdKm5bMV0sZVsyXT10WzJdKm5bMl0sZX0scy5tdWw9cy5tdWx0aXBseSxzLmRpdmlkZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXS9uWzBdLGVbMV09dFsxXS9uWzFdLGVbMl09dFsyXS9uWzJdLGV9LHMuZGl2PXMuZGl2aWRlLHMubWluPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT1NYXRoLm1pbih0WzBdLG5bMF0pLGVbMV09TWF0aC5taW4odFsxXSxuWzFdKSxlWzJdPU1hdGgubWluKHRbMl0sblsyXSksZX0scy5tYXg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPU1hdGgubWF4KHRbMF0sblswXSksZVsxXT1NYXRoLm1heCh0WzFdLG5bMV0pLGVbMl09TWF0aC5tYXgodFsyXSxuWzJdKSxlfSxzLnNjYWxlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdKm4sZVsxXT10WzFdKm4sZVsyXT10WzJdKm4sZX0scy5kaXN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0tZVswXSxyPXRbMV0tZVsxXSxpPXRbMl0tZVsyXTtyZXR1cm4gTWF0aC5zcXJ0KG4qbityKnIraSppKX0scy5kaXN0PXMuZGlzdGFuY2Uscy5zcXVhcmVkRGlzdGFuY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLWVbMF0scj10WzFdLWVbMV0saT10WzJdLWVbMl07cmV0dXJuIG4qbityKnIraSppfSxzLnNxckRpc3Q9cy5zcXVhcmVkRGlzdGFuY2Uscy5sZW5ndGg9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxuPWVbMV0scj1lWzJdO3JldHVybiBNYXRoLnNxcnQodCp0K24qbityKnIpfSxzLmxlbj1zLmxlbmd0aCxzLnNxdWFyZWRMZW5ndGg9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxuPWVbMV0scj1lWzJdO3JldHVybiB0KnQrbipuK3Iqcn0scy5zcXJMZW49cy5zcXVhcmVkTGVuZ3RoLHMubmVnYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09LXRbMF0sZVsxXT0tdFsxXSxlWzJdPS10WzJdLGV9LHMubm9ybWFsaXplPWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9bipuK3IqcitpKmk7cmV0dXJuIHM+MCYmKHM9MS9NYXRoLnNxcnQocyksZVswXT10WzBdKnMsZVsxXT10WzFdKnMsZVsyXT10WzJdKnMpLGV9LHMuZG90PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF0qdFswXStlWzFdKnRbMV0rZVsyXSp0WzJdfSxzLmNyb3NzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz1uWzBdLHU9blsxXSxhPW5bMl07cmV0dXJuIGVbMF09aSphLXMqdSxlWzFdPXMqby1yKmEsZVsyXT1yKnUtaSpvLGV9LHMubGVycD1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT10WzBdLHM9dFsxXSxvPXRbMl07cmV0dXJuIGVbMF09aStyKihuWzBdLWkpLGVbMV09cytyKihuWzFdLXMpLGVbMl09bytyKihuWzJdLW8pLGV9LHMudHJhbnNmb3JtTWF0ND1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdO3JldHVybiBlWzBdPW5bMF0qcituWzRdKmkrbls4XSpzK25bMTJdLGVbMV09blsxXSpyK25bNV0qaStuWzldKnMrblsxM10sZVsyXT1uWzJdKnIrbls2XSppK25bMTBdKnMrblsxNF0sZX0scy50cmFuc2Zvcm1RdWF0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz1uWzBdLHU9blsxXSxhPW5bMl0sZj1uWzNdLGw9ZipyK3Uqcy1hKmksYz1mKmkrYSpyLW8qcyxoPWYqcytvKmktdSpyLHA9LW8qci11KmktYSpzO3JldHVybiBlWzBdPWwqZitwKi1vK2MqLWEtaCotdSxlWzFdPWMqZitwKi11K2gqLW8tbCotYSxlWzJdPWgqZitwKi1hK2wqLXUtYyotbyxlfSxzLmZvckVhY2g9ZnVuY3Rpb24oKXt2YXIgZT1zLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbih0LG4scixpLHMsbyl7dmFyIHUsYTtufHwobj0zKSxyfHwocj0wKSxpP2E9TWF0aC5taW4oaSpuK3IsdC5sZW5ndGgpOmE9dC5sZW5ndGg7Zm9yKHU9cjt1PGE7dSs9billWzBdPXRbdV0sZVsxXT10W3UrMV0sZVsyXT10W3UrMl0scyhlLGUsbyksdFt1XT1lWzBdLHRbdSsxXT1lWzFdLHRbdSsyXT1lWzJdO3JldHVybiB0fX0oKSxzLnN0cj1mdW5jdGlvbihlKXtyZXR1cm4idmVjMygiK2VbMF0rIiwgIitlWzFdKyIsICIrZVsyXSsiKSJ9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUudmVjMz1zKTt2YXIgbz17fTtvLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuKDQpO3JldHVybiBlWzBdPTAsZVsxXT0wLGVbMl09MCxlWzNdPTAsZX0sby5jbG9uZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbig0KTtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHR9LG8uZnJvbVZhbHVlcz1mdW5jdGlvbihlLHQscixpKXt2YXIgcz1uZXcgbig0KTtyZXR1cm4gc1swXT1lLHNbMV09dCxzWzJdPXIsc1szXT1pLHN9LG8uY29weT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZX0sby5zZXQ9ZnVuY3Rpb24oZSx0LG4scixpKXtyZXR1cm4gZVswXT10LGVbMV09bixlWzJdPXIsZVszXT1pLGV9LG8uYWRkPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdK25bMF0sZVsxXT10WzFdK25bMV0sZVsyXT10WzJdK25bMl0sZVszXT10WzNdK25bM10sZX0sby5zdWJ0cmFjdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXS1uWzBdLGVbMV09dFsxXS1uWzFdLGVbMl09dFsyXS1uWzJdLGVbM109dFszXS1uWzNdLGV9LG8uc3ViPW8uc3VidHJhY3Qsby5tdWx0aXBseT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXSpuWzBdLGVbMV09dFsxXSpuWzFdLGVbMl09dFsyXSpuWzJdLGVbM109dFszXSpuWzNdLGV9LG8ubXVsPW8ubXVsdGlwbHksby5kaXZpZGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0vblswXSxlWzFdPXRbMV0vblsxXSxlWzJdPXRbMl0vblsyXSxlWzNdPXRbM10vblszXSxlfSxvLmRpdj1vLmRpdmlkZSxvLm1pbj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09TWF0aC5taW4odFswXSxuWzBdKSxlWzFdPU1hdGgubWluKHRbMV0sblsxXSksZVsyXT1NYXRoLm1pbih0WzJdLG5bMl0pLGVbM109TWF0aC5taW4odFszXSxuWzNdKSxlfSxvLm1heD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09TWF0aC5tYXgodFswXSxuWzBdKSxlWzFdPU1hdGgubWF4KHRbMV0sblsxXSksZVsyXT1NYXRoLm1heCh0WzJdLG5bMl0pLGVbM109TWF0aC5tYXgodFszXSxuWzNdKSxlfSxvLnNjYWxlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdKm4sZVsxXT10WzFdKm4sZVsyXT10WzJdKm4sZVszXT10WzNdKm4sZX0sby5kaXN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0tZVswXSxyPXRbMV0tZVsxXSxpPXRbMl0tZVsyXSxzPXRbM10tZVszXTtyZXR1cm4gTWF0aC5zcXJ0KG4qbityKnIraSppK3Mqcyl9LG8uZGlzdD1vLmRpc3RhbmNlLG8uc3F1YXJlZERpc3RhbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXS1lWzBdLHI9dFsxXS1lWzFdLGk9dFsyXS1lWzJdLHM9dFszXS1lWzNdO3JldHVybiBuKm4rcipyK2kqaStzKnN9LG8uc3FyRGlzdD1vLnNxdWFyZWREaXN0YW5jZSxvLmxlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1lWzBdLG49ZVsxXSxyPWVbMl0saT1lWzNdO3JldHVybiBNYXRoLnNxcnQodCp0K24qbityKnIraSppKX0sby5sZW49by5sZW5ndGgsby5zcXVhcmVkTGVuZ3RoPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sbj1lWzFdLHI9ZVsyXSxpPWVbM107cmV0dXJuIHQqdCtuKm4rcipyK2kqaX0sby5zcXJMZW49by5zcXVhcmVkTGVuZ3RoLG8ubmVnYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09LXRbMF0sZVsxXT0tdFsxXSxlWzJdPS10WzJdLGVbM109LXRbM10sZX0sby5ub3JtYWxpemU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLG89bipuK3IqcitpKmkrcypzO3JldHVybiBvPjAmJihvPTEvTWF0aC5zcXJ0KG8pLGVbMF09dFswXSpvLGVbMV09dFsxXSpvLGVbMl09dFsyXSpvLGVbM109dFszXSpvKSxlfSxvLmRvdD1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdKnRbMF0rZVsxXSp0WzFdK2VbMl0qdFsyXStlWzNdKnRbM119LG8ubGVycD1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT10WzBdLHM9dFsxXSxvPXRbMl0sdT10WzNdO3JldHVybiBlWzBdPWkrciooblswXS1pKSxlWzFdPXMrciooblsxXS1zKSxlWzJdPW8rciooblsyXS1vKSxlWzNdPXUrciooblszXS11KSxlfSxvLnRyYW5zZm9ybU1hdDQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM107cmV0dXJuIGVbMF09blswXSpyK25bNF0qaStuWzhdKnMrblsxMl0qbyxlWzFdPW5bMV0qcituWzVdKmkrbls5XSpzK25bMTNdKm8sZVsyXT1uWzJdKnIrbls2XSppK25bMTBdKnMrblsxNF0qbyxlWzNdPW5bM10qcituWzddKmkrblsxMV0qcytuWzE1XSpvLGV9LG8udHJhbnNmb3JtUXVhdD1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89blswXSx1PW5bMV0sYT1uWzJdLGY9blszXSxsPWYqcit1KnMtYSppLGM9ZippK2Eqci1vKnMsaD1mKnMrbyppLXUqcixwPS1vKnItdSppLWEqcztyZXR1cm4gZVswXT1sKmYrcCotbytjKi1hLWgqLXUsZVsxXT1jKmYrcCotdStoKi1vLWwqLWEsZVsyXT1oKmYrcCotYStsKi11LWMqLW8sZX0sby5mb3JFYWNoPWZ1bmN0aW9uKCl7dmFyIGU9by5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24odCxuLHIsaSxzLG8pe3ZhciB1LGE7bnx8KG49NCkscnx8KHI9MCksaT9hPU1hdGgubWluKGkqbityLHQubGVuZ3RoKTphPXQubGVuZ3RoO2Zvcih1PXI7dTxhO3UrPW4pZVswXT10W3VdLGVbMV09dFt1KzFdLGVbMl09dFt1KzJdLGVbM109dFt1KzNdLHMoZSxlLG8pLHRbdV09ZVswXSx0W3UrMV09ZVsxXSx0W3UrMl09ZVsyXSx0W3UrM109ZVszXTtyZXR1cm4gdH19KCksby5zdHI9ZnVuY3Rpb24oZSl7cmV0dXJuInZlYzQoIitlWzBdKyIsICIrZVsxXSsiLCAiK2VbMl0rIiwgIitlWzNdKyIpIn0sdHlwZW9mIGUhPSJ1bmRlZmluZWQiJiYoZS52ZWM0PW8pO3ZhciB1PXt9O3UuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4oNCk7cmV0dXJuIGVbMF09MSxlWzFdPTAsZVsyXT0wLGVbM109MSxlfSx1LmNsb25lPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuKDQpO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdH0sdS5jb3B5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlfSx1LmlkZW50aXR5PWZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPTEsZVsxXT0wLGVbMl09MCxlWzNdPTEsZX0sdS50cmFuc3Bvc2U9ZnVuY3Rpb24oZSx0KXtpZihlPT09dCl7dmFyIG49dFsxXTtlWzFdPXRbMl0sZVsyXT1ufWVsc2UgZVswXT10WzBdLGVbMV09dFsyXSxlWzJdPXRbMV0sZVszXT10WzNdO3JldHVybiBlfSx1LmludmVydD1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbM10sbz1uKnMtaSpyO3JldHVybiBvPyhvPTEvbyxlWzBdPXMqbyxlWzFdPS1yKm8sZVsyXT0taSpvLGVbM109bipvLGUpOm51bGx9LHUuYWRqb2ludD1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF07cmV0dXJuIGVbMF09dFszXSxlWzFdPS10WzFdLGVbMl09LXRbMl0sZVszXT1uLGV9LHUuZGV0ZXJtaW5hbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF0qZVszXS1lWzJdKmVbMV19LHUubXVsdGlwbHk9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT1uWzBdLGE9blsxXSxmPW5bMl0sbD1uWzNdO3JldHVybiBlWzBdPXIqdStpKmYsZVsxXT1yKmEraSpsLGVbMl09cyp1K28qZixlWzNdPXMqYStvKmwsZX0sdS5tdWw9dS5tdWx0aXBseSx1LnJvdGF0ZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89dFszXSx1PU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIGVbMF09ciphK2kqdSxlWzFdPXIqLXUraSphLGVbMl09cyphK28qdSxlWzNdPXMqLXUrbyphLGV9LHUuc2NhbGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT1uWzBdLGE9blsxXTtyZXR1cm4gZVswXT1yKnUsZVsxXT1pKmEsZVsyXT1zKnUsZVszXT1vKmEsZX0sdS5zdHI9ZnVuY3Rpb24oZSl7cmV0dXJuIm1hdDIoIitlWzBdKyIsICIrZVsxXSsiLCAiK2VbMl0rIiwgIitlWzNdKyIpIn0sdHlwZW9mIGUhPSJ1bmRlZmluZWQiJiYoZS5tYXQyPXUpO3ZhciBhPXt9O2EuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4oNik7cmV0dXJuIGVbMF09MSxlWzFdPTAsZVsyXT0wLGVbM109MSxlWzRdPTAsZVs1XT0wLGV9LGEuY2xvbmU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4oNik7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzRdPWVbNF0sdFs1XT1lWzVdLHR9LGEuY29weT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlfSxhLmlkZW50aXR5PWZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPTEsZVsxXT0wLGVbMl09MCxlWzNdPTEsZVs0XT0wLGVbNV09MCxlfSxhLmludmVydD1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbM10sbz10WzRdLHU9dFs1XSxhPW4qcy1yKmk7cmV0dXJuIGE/KGE9MS9hLGVbMF09cyphLGVbMV09LXIqYSxlWzJdPS1pKmEsZVszXT1uKmEsZVs0XT0oaSp1LXMqbykqYSxlWzVdPShyKm8tbip1KSphLGUpOm51bGx9LGEuZGV0ZXJtaW5hbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF0qZVszXS1lWzFdKmVbMl19LGEubXVsdGlwbHk9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT10WzRdLGE9dFs1XSxmPW5bMF0sbD1uWzFdLGM9blsyXSxoPW5bM10scD1uWzRdLGQ9bls1XTtyZXR1cm4gZVswXT1yKmYraSpjLGVbMV09cipsK2kqaCxlWzJdPXMqZitvKmMsZVszXT1zKmwrbypoLGVbNF09Zip1K2MqYStwLGVbNV09bCp1K2gqYStkLGV9LGEubXVsPWEubXVsdGlwbHksYS5yb3RhdGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT10WzRdLGE9dFs1XSxmPU1hdGguc2luKG4pLGw9TWF0aC5jb3Mobik7cmV0dXJuIGVbMF09cipsK2kqZixlWzFdPS1yKmYraSpsLGVbMl09cypsK28qZixlWzNdPS1zKmYrbCpvLGVbNF09bCp1K2YqYSxlWzVdPWwqYS1mKnUsZX0sYS5zY2FsZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9blswXSxpPW5bMV07cmV0dXJuIGVbMF09dFswXSpyLGVbMV09dFsxXSppLGVbMl09dFsyXSpyLGVbM109dFszXSppLGVbNF09dFs0XSpyLGVbNV09dFs1XSppLGV9LGEudHJhbnNsYXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XStuWzBdLGVbNV09dFs1XStuWzFdLGV9LGEuc3RyPWZ1bmN0aW9uKGUpe3JldHVybiJtYXQyZCgiK2VbMF0rIiwgIitlWzFdKyIsICIrZVsyXSsiLCAiK2VbM10rIiwgIitlWzRdKyIsICIrZVs1XSsiKSJ9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUubWF0MmQ9YSk7dmFyIGY9e307Zi5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbig5KTtyZXR1cm4gZVswXT0xLGVbMV09MCxlWzJdPTAsZVszXT0wLGVbNF09MSxlWzVdPTAsZVs2XT0wLGVbN109MCxlWzhdPTEsZX0sZi5mcm9tTWF0ND1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbNF0sZVs0XT10WzVdLGVbNV09dFs2XSxlWzZdPXRbOF0sZVs3XT10WzldLGVbOF09dFsxMF0sZX0sZi5jbG9uZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbig5KTtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHRbNF09ZVs0XSx0WzVdPWVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzhdPWVbOF0sdH0sZi5jb3B5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGV9LGYuaWRlbnRpdHk9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09MSxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPTEsZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT0xLGV9LGYudHJhbnNwb3NlPWZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpe3ZhciBuPXRbMV0scj10WzJdLGk9dFs1XTtlWzFdPXRbM10sZVsyXT10WzZdLGVbM109bixlWzVdPXRbN10sZVs2XT1yLGVbN109aX1lbHNlIGVbMF09dFswXSxlWzFdPXRbM10sZVsyXT10WzZdLGVbM109dFsxXSxlWzRdPXRbNF0sZVs1XT10WzddLGVbNl09dFsyXSxlWzddPXRbNV0sZVs4XT10WzhdO3JldHVybiBlfSxmLmludmVydD1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbM10sbz10WzRdLHU9dFs1XSxhPXRbNl0sZj10WzddLGw9dFs4XSxjPWwqby11KmYsaD0tbCpzK3UqYSxwPWYqcy1vKmEsZD1uKmMrcipoK2kqcDtyZXR1cm4gZD8oZD0xL2QsZVswXT1jKmQsZVsxXT0oLWwqcitpKmYpKmQsZVsyXT0odSpyLWkqbykqZCxlWzNdPWgqZCxlWzRdPShsKm4taSphKSpkLGVbNV09KC11Km4raSpzKSpkLGVbNl09cCpkLGVbN109KC1mKm4rciphKSpkLGVbOF09KG8qbi1yKnMpKmQsZSk6bnVsbH0sZi5hZGpvaW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9dFszXSxvPXRbNF0sdT10WzVdLGE9dFs2XSxmPXRbN10sbD10WzhdO3JldHVybiBlWzBdPW8qbC11KmYsZVsxXT1pKmYtcipsLGVbMl09cip1LWkqbyxlWzNdPXUqYS1zKmwsZVs0XT1uKmwtaSphLGVbNV09aSpzLW4qdSxlWzZdPXMqZi1vKmEsZVs3XT1yKmEtbipmLGVbOF09bipvLXIqcyxlfSxmLmRldGVybWluYW50PWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sbj1lWzFdLHI9ZVsyXSxpPWVbM10scz1lWzRdLG89ZVs1XSx1PWVbNl0sYT1lWzddLGY9ZVs4XTtyZXR1cm4gdCooZipzLW8qYSkrbiooLWYqaStvKnUpK3IqKGEqaS1zKnUpfSxmLm11bHRpcGx5PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9dFs0XSxhPXRbNV0sZj10WzZdLGw9dFs3XSxjPXRbOF0saD1uWzBdLHA9blsxXSxkPW5bMl0sdj1uWzNdLG09bls0XSxnPW5bNV0seT1uWzZdLGI9bls3XSx3PW5bOF07cmV0dXJuIGVbMF09aCpyK3AqbytkKmYsZVsxXT1oKmkrcCp1K2QqbCxlWzJdPWgqcytwKmErZCpjLGVbM109dipyK20qbytnKmYsZVs0XT12KmkrbSp1K2cqbCxlWzVdPXYqcyttKmErZypjLGVbNl09eSpyK2Iqbyt3KmYsZVs3XT15KmkrYip1K3cqbCxlWzhdPXkqcytiKmErdypjLGV9LGYubXVsPWYubXVsdGlwbHksZi50cmFuc2xhdGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT10WzRdLGE9dFs1XSxmPXRbNl0sbD10WzddLGM9dFs4XSxoPW5bMF0scD1uWzFdO3JldHVybiBlWzBdPXIsZVsxXT1pLGVbMl09cyxlWzNdPW8sZVs0XT11LGVbNV09YSxlWzZdPWgqcitwKm8rZixlWzddPWgqaStwKnUrbCxlWzhdPWgqcytwKmErYyxlfSxmLnJvdGF0ZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89dFszXSx1PXRbNF0sYT10WzVdLGY9dFs2XSxsPXRbN10sYz10WzhdLGg9TWF0aC5zaW4obikscD1NYXRoLmNvcyhuKTtyZXR1cm4gZVswXT1wKnIraCpvLGVbMV09cCppK2gqdSxlWzJdPXAqcytoKmEsZVszXT1wKm8taCpyLGVbNF09cCp1LWgqaSxlWzVdPXAqYS1oKnMsZVs2XT1mLGVbN109bCxlWzhdPWMsZX0sZi5zY2FsZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9blswXSxpPW5bMl07cmV0dXJuIGVbMF09cip0WzBdLGVbMV09cip0WzFdLGVbMl09cip0WzJdLGVbM109aSp0WzNdLGVbNF09aSp0WzRdLGVbNV09aSp0WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGV9LGYuZnJvbU1hdDJkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT0wLGVbM109dFsyXSxlWzRdPXRbM10sZVs1XT0wLGVbNl09dFs0XSxlWzddPXRbNV0sZVs4XT0xLGV9LGYuZnJvbVF1YXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLG89bituLHU9cityLGE9aStpLGY9bipvLGw9bip1LGM9biphLGg9cip1LHA9ciphLGQ9aSphLHY9cypvLG09cyp1LGc9cyphO3JldHVybiBlWzBdPTEtKGgrZCksZVsxXT1sK2csZVsyXT1jLW0sZVszXT1sLWcsZVs0XT0xLShmK2QpLGVbNV09cCt2LGVbNl09YyttLGVbN109cC12LGVbOF09MS0oZitoKSxlfSxmLnN0cj1mdW5jdGlvbihlKXtyZXR1cm4ibWF0MygiK2VbMF0rIiwgIitlWzFdKyIsICIrZVsyXSsiLCAiK2VbM10rIiwgIitlWzRdKyIsICIrZVs1XSsiLCAiK2VbNl0rIiwgIitlWzddKyIsICIrZVs4XSsiKSJ9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUubWF0Mz1mKTt2YXIgbD17fTtsLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuKDE2KTtyZXR1cm4gZVswXT0xLGVbMV09MCxlWzJdPTAsZVszXT0wLGVbNF09MCxlWzVdPTEsZVs2XT0wLGVbN109MCxlWzhdPTAsZVs5XT0wLGVbMTBdPTEsZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLGV9LGwuY2xvbmU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4oMTYpO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbOF09ZVs4XSx0WzldPWVbOV0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxMV0sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH0sbC5jb3B5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGVbOV09dFs5XSxlWzEwXT10WzEwXSxlWzExXT10WzExXSxlWzEyXT10WzEyXSxlWzEzXT10WzEzXSxlWzE0XT10WzE0XSxlWzE1XT10WzE1XSxlfSxsLmlkZW50aXR5PWZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPTEsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0wLGVbNV09MSxlWzZdPTAsZVs3XT0wLGVbOF09MCxlWzldPTAsZVsxMF09MSxlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsZX0sbC50cmFuc3Bvc2U9ZnVuY3Rpb24oZSx0KXtpZihlPT09dCl7dmFyIG49dFsxXSxyPXRbMl0saT10WzNdLHM9dFs2XSxvPXRbN10sdT10WzExXTtlWzFdPXRbNF0sZVsyXT10WzhdLGVbM109dFsxMl0sZVs0XT1uLGVbNl09dFs5XSxlWzddPXRbMTNdLGVbOF09cixlWzldPXMsZVsxMV09dFsxNF0sZVsxMl09aSxlWzEzXT1vLGVbMTRdPXV9ZWxzZSBlWzBdPXRbMF0sZVsxXT10WzRdLGVbMl09dFs4XSxlWzNdPXRbMTJdLGVbNF09dFsxXSxlWzVdPXRbNV0sZVs2XT10WzldLGVbN109dFsxM10sZVs4XT10WzJdLGVbOV09dFs2XSxlWzEwXT10WzEwXSxlWzExXT10WzE0XSxlWzEyXT10WzNdLGVbMTNdPXRbN10sZVsxNF09dFsxMV0sZVsxNV09dFsxNV07cmV0dXJuIGV9LGwuaW52ZXJ0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9dFszXSxvPXRbNF0sdT10WzVdLGE9dFs2XSxmPXRbN10sbD10WzhdLGM9dFs5XSxoPXRbMTBdLHA9dFsxMV0sZD10WzEyXSx2PXRbMTNdLG09dFsxNF0sZz10WzE1XSx5PW4qdS1yKm8sYj1uKmEtaSpvLHc9bipmLXMqbyxFPXIqYS1pKnUsUz1yKmYtcyp1LHg9aSpmLXMqYSxUPWwqdi1jKmQsTj1sKm0taCpkLEM9bCpnLXAqZCxrPWMqbS1oKnYsTD1jKmctcCp2LEE9aCpnLXAqbSxPPXkqQS1iKkwrdyprK0UqQy1TKk4reCpUO3JldHVybiBPPyhPPTEvTyxlWzBdPSh1KkEtYSpMK2YqaykqTyxlWzFdPShpKkwtcipBLXMqaykqTyxlWzJdPSh2KngtbSpTK2cqRSkqTyxlWzNdPShoKlMtYyp4LXAqRSkqTyxlWzRdPShhKkMtbypBLWYqTikqTyxlWzVdPShuKkEtaSpDK3MqTikqTyxlWzZdPShtKnctZCp4LWcqYikqTyxlWzddPShsKngtaCp3K3AqYikqTyxlWzhdPShvKkwtdSpDK2YqVCkqTyxlWzldPShyKkMtbipMLXMqVCkqTyxlWzEwXT0oZCpTLXYqdytnKnkpKk8sZVsxMV09KGMqdy1sKlMtcCp5KSpPLGVbMTJdPSh1Kk4tbyprLWEqVCkqTyxlWzEzXT0obiprLXIqTitpKlQpKk8sZVsxNF09KHYqYi1kKkUtbSp5KSpPLGVbMTVdPShsKkUtYypiK2gqeSkqTyxlKTpudWxsfSxsLmFkam9pbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLG89dFs0XSx1PXRbNV0sYT10WzZdLGY9dFs3XSxsPXRbOF0sYz10WzldLGg9dFsxMF0scD10WzExXSxkPXRbMTJdLHY9dFsxM10sbT10WzE0XSxnPXRbMTVdO3JldHVybiBlWzBdPXUqKGgqZy1wKm0pLWMqKGEqZy1mKm0pK3YqKGEqcC1mKmgpLGVbMV09LShyKihoKmctcCptKS1jKihpKmctcyptKSt2KihpKnAtcypoKSksZVsyXT1yKihhKmctZiptKS11KihpKmctcyptKSt2KihpKmYtcyphKSxlWzNdPS0ociooYSpwLWYqaCktdSooaSpwLXMqaCkrYyooaSpmLXMqYSkpLGVbNF09LShvKihoKmctcCptKS1sKihhKmctZiptKStkKihhKnAtZipoKSksZVs1XT1uKihoKmctcCptKS1sKihpKmctcyptKStkKihpKnAtcypoKSxlWzZdPS0obiooYSpnLWYqbSktbyooaSpnLXMqbSkrZCooaSpmLXMqYSkpLGVbN109biooYSpwLWYqaCktbyooaSpwLXMqaCkrbCooaSpmLXMqYSksZVs4XT1vKihjKmctcCp2KS1sKih1KmctZip2KStkKih1KnAtZipjKSxlWzldPS0obiooYypnLXAqdiktbCoocipnLXMqdikrZCoocipwLXMqYykpLGVbMTBdPW4qKHUqZy1mKnYpLW8qKHIqZy1zKnYpK2QqKHIqZi1zKnUpLGVbMTFdPS0obioodSpwLWYqYyktbyoocipwLXMqYykrbCoocipmLXMqdSkpLGVbMTJdPS0obyooYyptLWgqdiktbCoodSptLWEqdikrZCoodSpoLWEqYykpLGVbMTNdPW4qKGMqbS1oKnYpLWwqKHIqbS1pKnYpK2QqKHIqaC1pKmMpLGVbMTRdPS0obioodSptLWEqdiktbyoociptLWkqdikrZCoociphLWkqdSkpLGVbMTVdPW4qKHUqaC1hKmMpLW8qKHIqaC1pKmMpK2wqKHIqYS1pKnUpLGV9LGwuZGV0ZXJtaW5hbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxuPWVbMV0scj1lWzJdLGk9ZVszXSxzPWVbNF0sbz1lWzVdLHU9ZVs2XSxhPWVbN10sZj1lWzhdLGw9ZVs5XSxjPWVbMTBdLGg9ZVsxMV0scD1lWzEyXSxkPWVbMTNdLHY9ZVsxNF0sbT1lWzE1XSxnPXQqby1uKnMseT10KnUtcipzLGI9dCphLWkqcyx3PW4qdS1yKm8sRT1uKmEtaSpvLFM9ciphLWkqdSx4PWYqZC1sKnAsVD1mKnYtYypwLE49ZiptLWgqcCxDPWwqdi1jKmQsaz1sKm0taCpkLEw9YyptLWgqdjtyZXR1cm4gZypMLXkqaytiKkMrdypOLUUqVCtTKnh9LGwubXVsdGlwbHk9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT10WzRdLGE9dFs1XSxmPXRbNl0sbD10WzddLGM9dFs4XSxoPXRbOV0scD10WzEwXSxkPXRbMTFdLHY9dFsxMl0sbT10WzEzXSxnPXRbMTRdLHk9dFsxNV0sYj1uWzBdLHc9blsxXSxFPW5bMl0sUz1uWzNdO3JldHVybiBlWzBdPWIqcit3KnUrRSpjK1MqdixlWzFdPWIqaSt3KmErRSpoK1MqbSxlWzJdPWIqcyt3KmYrRSpwK1MqZyxlWzNdPWIqbyt3KmwrRSpkK1MqeSxiPW5bNF0sdz1uWzVdLEU9bls2XSxTPW5bN10sZVs0XT1iKnIrdyp1K0UqYytTKnYsZVs1XT1iKmkrdyphK0UqaCtTKm0sZVs2XT1iKnMrdypmK0UqcCtTKmcsZVs3XT1iKm8rdypsK0UqZCtTKnksYj1uWzhdLHc9bls5XSxFPW5bMTBdLFM9blsxMV0sZVs4XT1iKnIrdyp1K0UqYytTKnYsZVs5XT1iKmkrdyphK0UqaCtTKm0sZVsxMF09YipzK3cqZitFKnArUypnLGVbMTFdPWIqbyt3KmwrRSpkK1MqeSxiPW5bMTJdLHc9blsxM10sRT1uWzE0XSxTPW5bMTVdLGVbMTJdPWIqcit3KnUrRSpjK1MqdixlWzEzXT1iKmkrdyphK0UqaCtTKm0sZVsxNF09YipzK3cqZitFKnArUypnLGVbMTVdPWIqbyt3KmwrRSpkK1MqeSxlfSxsLm11bD1sLm11bHRpcGx5LGwudHJhbnNsYXRlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uWzBdLGk9blsxXSxzPW5bMl0sbyx1LGEsZixsLGMsaCxwLGQsdixtLGc7cmV0dXJuIHQ9PT1lPyhlWzEyXT10WzBdKnIrdFs0XSppK3RbOF0qcyt0WzEyXSxlWzEzXT10WzFdKnIrdFs1XSppK3RbOV0qcyt0WzEzXSxlWzE0XT10WzJdKnIrdFs2XSppK3RbMTBdKnMrdFsxNF0sZVsxNV09dFszXSpyK3RbN10qaSt0WzExXSpzK3RbMTVdKToobz10WzBdLHU9dFsxXSxhPXRbMl0sZj10WzNdLGw9dFs0XSxjPXRbNV0saD10WzZdLHA9dFs3XSxkPXRbOF0sdj10WzldLG09dFsxMF0sZz10WzExXSxlWzBdPW8sZVsxXT11LGVbMl09YSxlWzNdPWYsZVs0XT1sLGVbNV09YyxlWzZdPWgsZVs3XT1wLGVbOF09ZCxlWzldPXYsZVsxMF09bSxlWzExXT1nLGVbMTJdPW8qcitsKmkrZCpzK3RbMTJdLGVbMTNdPXUqcitjKmkrdipzK3RbMTNdLGVbMTRdPWEqcitoKmkrbSpzK3RbMTRdLGVbMTVdPWYqcitwKmkrZypzK3RbMTVdKSxlfSxsLnNjYWxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uWzBdLGk9blsxXSxzPW5bMl07cmV0dXJuIGVbMF09dFswXSpyLGVbMV09dFsxXSpyLGVbMl09dFsyXSpyLGVbM109dFszXSpyLGVbNF09dFs0XSppLGVbNV09dFs1XSppLGVbNl09dFs2XSppLGVbN109dFs3XSppLGVbOF09dFs4XSpzLGVbOV09dFs5XSpzLGVbMTBdPXRbMTBdKnMsZVsxMV09dFsxMV0qcyxlWzEyXT10WzEyXSxlWzEzXT10WzEzXSxlWzE0XT10WzE0XSxlWzE1XT10WzE1XSxlfSxsLnJvdGF0ZT1mdW5jdGlvbihlLG4scixpKXt2YXIgcz1pWzBdLG89aVsxXSx1PWlbMl0sYT1NYXRoLnNxcnQocypzK28qbyt1KnUpLGYsbCxjLGgscCxkLHYsbSxnLHksYix3LEUsUyx4LFQsTixDLGssTCxBLE8sTSxfO3JldHVybiBNYXRoLmFicyhhKTx0P251bGw6KGE9MS9hLHMqPWEsbyo9YSx1Kj1hLGY9TWF0aC5zaW4ociksbD1NYXRoLmNvcyhyKSxjPTEtbCxoPW5bMF0scD1uWzFdLGQ9blsyXSx2PW5bM10sbT1uWzRdLGc9bls1XSx5PW5bNl0sYj1uWzddLHc9bls4XSxFPW5bOV0sUz1uWzEwXSx4PW5bMTFdLFQ9cypzKmMrbCxOPW8qcypjK3UqZixDPXUqcypjLW8qZixrPXMqbypjLXUqZixMPW8qbypjK2wsQT11Km8qYytzKmYsTz1zKnUqYytvKmYsTT1vKnUqYy1zKmYsXz11KnUqYytsLGVbMF09aCpUK20qTit3KkMsZVsxXT1wKlQrZypOK0UqQyxlWzJdPWQqVCt5Kk4rUypDLGVbM109dipUK2IqTit4KkMsZVs0XT1oKmsrbSpMK3cqQSxlWzVdPXAqaytnKkwrRSpBLGVbNl09ZCprK3kqTCtTKkEsZVs3XT12KmsrYipMK3gqQSxlWzhdPWgqTyttKk0rdypfLGVbOV09cCpPK2cqTStFKl8sZVsxMF09ZCpPK3kqTStTKl8sZVsxMV09dipPK2IqTSt4Kl8sbiE9PWUmJihlWzEyXT1uWzEyXSxlWzEzXT1uWzEzXSxlWzE0XT1uWzE0XSxlWzE1XT1uWzE1XSksZSl9LGwucm90YXRlWD1mdW5jdGlvbihlLHQsbil7dmFyIHI9TWF0aC5zaW4obiksaT1NYXRoLmNvcyhuKSxzPXRbNF0sbz10WzVdLHU9dFs2XSxhPXRbN10sZj10WzhdLGw9dFs5XSxjPXRbMTBdLGg9dFsxMV07cmV0dXJuIHQhPT1lJiYoZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdKSxlWzRdPXMqaStmKnIsZVs1XT1vKmkrbCpyLGVbNl09dSppK2MqcixlWzddPWEqaStoKnIsZVs4XT1mKmktcypyLGVbOV09bCppLW8qcixlWzEwXT1jKmktdSpyLGVbMTFdPWgqaS1hKnIsZX0sbC5yb3RhdGVZPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1NYXRoLnNpbihuKSxpPU1hdGguY29zKG4pLHM9dFswXSxvPXRbMV0sdT10WzJdLGE9dFszXSxmPXRbOF0sbD10WzldLGM9dFsxMF0saD10WzExXTtyZXR1cm4gdCE9PWUmJihlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0pLGVbMF09cyppLWYqcixlWzFdPW8qaS1sKnIsZVsyXT11KmktYypyLGVbM109YSppLWgqcixlWzhdPXMqcitmKmksZVs5XT1vKnIrbCppLGVbMTBdPXUqcitjKmksZVsxMV09YSpyK2gqaSxlfSxsLnJvdGF0ZVo9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPU1hdGguc2luKG4pLGk9TWF0aC5jb3Mobikscz10WzBdLG89dFsxXSx1PXRbMl0sYT10WzNdLGY9dFs0XSxsPXRbNV0sYz10WzZdLGg9dFs3XTtyZXR1cm4gdCE9PWUmJihlWzhdPXRbOF0sZVs5XT10WzldLGVbMTBdPXRbMTBdLGVbMTFdPXRbMTFdLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdKSxlWzBdPXMqaStmKnIsZVsxXT1vKmkrbCpyLGVbMl09dSppK2MqcixlWzNdPWEqaStoKnIsZVs0XT1mKmktcypyLGVbNV09bCppLW8qcixlWzZdPWMqaS11KnIsZVs3XT1oKmktYSpyLGV9LGwuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb249ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT1yK3IsYT1pK2ksZj1zK3MsbD1yKnUsYz1yKmEsaD1yKmYscD1pKmEsZD1pKmYsdj1zKmYsbT1vKnUsZz1vKmEseT1vKmY7cmV0dXJuIGVbMF09MS0ocCt2KSxlWzFdPWMreSxlWzJdPWgtZyxlWzNdPTAsZVs0XT1jLXksZVs1XT0xLShsK3YpLGVbNl09ZCttLGVbN109MCxlWzhdPWgrZyxlWzldPWQtbSxlWzEwXT0xLShsK3ApLGVbMTFdPTAsZVsxMl09blswXSxlWzEzXT1uWzFdLGVbMTRdPW5bMl0sZVsxNV09MSxlfSxsLmZyb21RdWF0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9dFszXSxvPW4rbix1PXIrcixhPWkraSxmPW4qbyxsPW4qdSxjPW4qYSxoPXIqdSxwPXIqYSxkPWkqYSx2PXMqbyxtPXMqdSxnPXMqYTtyZXR1cm4gZVswXT0xLShoK2QpLGVbMV09bCtnLGVbMl09Yy1tLGVbM109MCxlWzRdPWwtZyxlWzVdPTEtKGYrZCksZVs2XT1wK3YsZVs3XT0wLGVbOF09YyttLGVbOV09cC12LGVbMTBdPTEtKGYraCksZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLGV9LGwuZnJ1c3R1bT1mdW5jdGlvbihlLHQsbixyLGkscyxvKXt2YXIgdT0xLyhuLXQpLGE9MS8oaS1yKSxmPTEvKHMtbyk7cmV0dXJuIGVbMF09cyoyKnUsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0wLGVbNV09cyoyKmEsZVs2XT0wLGVbN109MCxlWzhdPShuK3QpKnUsZVs5XT0oaStyKSphLGVbMTBdPShvK3MpKmYsZVsxMV09LTEsZVsxMl09MCxlWzEzXT0wLGVbMTRdPW8qcyoyKmYsZVsxNV09MCxlfSxsLnBlcnNwZWN0aXZlPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIHM9MS9NYXRoLnRhbih0LzIpLG89MS8oci1pKTtyZXR1cm4gZVswXT1zL24sZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0wLGVbNV09cyxlWzZdPTAsZVs3XT0wLGVbOF09MCxlWzldPTAsZVsxMF09KGkrcikqbyxlWzExXT0tMSxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MippKnIqbyxlWzE1XT0wLGV9LGwub3J0aG89ZnVuY3Rpb24oZSx0LG4scixpLHMsbyl7dmFyIHU9MS8odC1uKSxhPTEvKHItaSksZj0xLyhzLW8pO3JldHVybiBlWzBdPS0yKnUsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0wLGVbNV09LTIqYSxlWzZdPTAsZVs3XT0wLGVbOF09MCxlWzldPTAsZVsxMF09MipmLGVbMTFdPTAsZVsxMl09KHQrbikqdSxlWzEzXT0oaStyKSphLGVbMTRdPShvK3MpKmYsZVsxNV09MSxlfSxsLmxvb2tBdD1mdW5jdGlvbihlLG4scixpKXt2YXIgcyxvLHUsYSxmLGMsaCxwLGQsdixtPW5bMF0sZz1uWzFdLHk9blsyXSxiPWlbMF0sdz1pWzFdLEU9aVsyXSxTPXJbMF0seD1yWzFdLFQ9clsyXTtyZXR1cm4gTWF0aC5hYnMobS1TKTx0JiZNYXRoLmFicyhnLXgpPHQmJk1hdGguYWJzKHktVCk8dD9sLmlkZW50aXR5KGUpOihoPW0tUyxwPWcteCxkPXktVCx2PTEvTWF0aC5zcXJ0KGgqaCtwKnArZCpkKSxoKj12LHAqPXYsZCo9dixzPXcqZC1FKnAsbz1FKmgtYipkLHU9YipwLXcqaCx2PU1hdGguc3FydChzKnMrbypvK3UqdSksdj8odj0xL3Yscyo9dixvKj12LHUqPXYpOihzPTAsbz0wLHU9MCksYT1wKnUtZCpvLGY9ZCpzLWgqdSxjPWgqby1wKnMsdj1NYXRoLnNxcnQoYSphK2YqZitjKmMpLHY/KHY9MS92LGEqPXYsZio9dixjKj12KTooYT0wLGY9MCxjPTApLGVbMF09cyxlWzFdPWEsZVsyXT1oLGVbM109MCxlWzRdPW8sZVs1XT1mLGVbNl09cCxlWzddPTAsZVs4XT11LGVbOV09YyxlWzEwXT1kLGVbMTFdPTAsZVsxMl09LShzKm0rbypnK3UqeSksZVsxM109LShhKm0rZipnK2MqeSksZVsxNF09LShoKm0rcCpnK2QqeSksZVsxNV09MSxlKX0sbC5zdHI9ZnVuY3Rpb24oZSl7cmV0dXJuIm1hdDQoIitlWzBdKyIsICIrZVsxXSsiLCAiK2VbMl0rIiwgIitlWzNdKyIsICIrZVs0XSsiLCAiK2VbNV0rIiwgIitlWzZdKyIsICIrZVs3XSsiLCAiK2VbOF0rIiwgIitlWzldKyIsICIrZVsxMF0rIiwgIitlWzExXSsiLCAiK2VbMTJdKyIsICIrZVsxM10rIiwgIitlWzE0XSsiLCAiK2VbMTVdKyIpIn0sdHlwZW9mIGUhPSJ1bmRlZmluZWQiJiYoZS5tYXQ0PWwpO3ZhciBjPXt9O2MuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4oNCk7cmV0dXJuIGVbMF09MCxlWzFdPTAsZVsyXT0wLGVbM109MSxlfSxjLmNsb25lPW8uY2xvbmUsYy5mcm9tVmFsdWVzPW8uZnJvbVZhbHVlcyxjLmNvcHk9by5jb3B5LGMuc2V0PW8uc2V0LGMuaWRlbnRpdHk9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09MCxlWzFdPTAsZVsyXT0wLGVbM109MSxlfSxjLnNldEF4aXNBbmdsZT1mdW5jdGlvbihlLHQsbil7bio9LjU7dmFyIHI9TWF0aC5zaW4obik7cmV0dXJuIGVbMF09cip0WzBdLGVbMV09cip0WzFdLGVbMl09cip0WzJdLGVbM109TWF0aC5jb3MobiksZX0sYy5hZGQ9by5hZGQsYy5tdWx0aXBseT1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89dFszXSx1PW5bMF0sYT1uWzFdLGY9blsyXSxsPW5bM107cmV0dXJuIGVbMF09cipsK28qdStpKmYtcyphLGVbMV09aSpsK28qYStzKnUtcipmLGVbMl09cypsK28qZityKmEtaSp1LGVbM109bypsLXIqdS1pKmEtcypmLGV9LGMubXVsPWMubXVsdGlwbHksYy5zY2FsZT1vLnNjYWxlLGMucm90YXRlWD1mdW5jdGlvbihlLHQsbil7bio9LjU7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89dFszXSx1PU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIGVbMF09ciphK28qdSxlWzFdPWkqYStzKnUsZVsyXT1zKmEtaSp1LGVbM109byphLXIqdSxlfSxjLnJvdGF0ZVk9ZnVuY3Rpb24oZSx0LG4pe24qPS41O3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT1NYXRoLnNpbihuKSxhPU1hdGguY29zKG4pO3JldHVybiBlWzBdPXIqYS1zKnUsZVsxXT1pKmErbyp1LGVbMl09cyphK3IqdSxlWzNdPW8qYS1pKnUsZX0sYy5yb3RhdGVaPWZ1bmN0aW9uKGUsdCxuKXtuKj0uNTt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9TWF0aC5zaW4obiksYT1NYXRoLmNvcyhuKTtyZXR1cm4gZVswXT1yKmEraSp1LGVbMV09aSphLXIqdSxlWzJdPXMqYStvKnUsZVszXT1vKmEtcyp1LGV9LGMuY2FsY3VsYXRlVz1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXTtyZXR1cm4gZVswXT1uLGVbMV09cixlWzJdPWksZVszXT0tTWF0aC5zcXJ0KE1hdGguYWJzKDEtbipuLXIqci1pKmkpKSxlfSxjLmRvdD1vLmRvdCxjLmxlcnA9by5sZXJwLGMuc2xlcnA9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dFswXSxzPXRbMV0sbz10WzJdLHU9dFszXSxhPW5bMF0sZj1uWzFdLGw9blsyXSxjPW5bM10saD1pKmErcypmK28qbCt1KmMscCxkLHYsbTtyZXR1cm4gTWF0aC5hYnMoaCk+PTE/KGUhPT10JiYoZVswXT1pLGVbMV09cyxlWzJdPW8sZVszXT11KSxlKToocD1NYXRoLmFjb3MoaCksZD1NYXRoLnNxcnQoMS1oKmgpLE1hdGguYWJzKGQpPC4wMDE/KGVbMF09aSouNSthKi41LGVbMV09cyouNStmKi41LGVbMl09byouNStsKi41LGVbM109dSouNStjKi41LGUpOih2PU1hdGguc2luKCgxLXIpKnApL2QsbT1NYXRoLnNpbihyKnApL2QsZVswXT1pKnYrYSptLGVbMV09cyp2K2YqbSxlWzJdPW8qditsKm0sZVszXT11KnYrYyptLGUpKX0sYy5pbnZlcnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLG89bipuK3IqcitpKmkrcypzLHU9bz8xL286MDtyZXR1cm4gZVswXT0tbip1LGVbMV09LXIqdSxlWzJdPS1pKnUsZVszXT1zKnUsZX0sYy5jb25qdWdhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXT0tdFswXSxlWzFdPS10WzFdLGVbMl09LXRbMl0sZVszXT10WzNdLGV9LGMubGVuZ3RoPW8ubGVuZ3RoLGMubGVuPWMubGVuZ3RoLGMuc3F1YXJlZExlbmd0aD1vLnNxdWFyZWRMZW5ndGgsYy5zcXJMZW49Yy5zcXVhcmVkTGVuZ3RoLGMubm9ybWFsaXplPW8ubm9ybWFsaXplLGMuZnJvbU1hdDM9ZnVuY3Rpb24oKXt2YXIgZT1bMSwyLDBdO3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciByPW5bMF0rbls0XStuWzhdLGk7aWYocj4wKWk9TWF0aC5zcXJ0KHIrMSksdFszXT0uNSppLGk9LjUvaSx0WzBdPShuWzddLW5bNV0pKmksdFsxXT0oblsyXS1uWzZdKSppLHRbMl09KG5bM10tblsxXSkqaTtlbHNle3ZhciBzPTA7bls0XT5uWzBdJiYocz0xKSxuWzhdPm5bcyozK3NdJiYocz0yKTt2YXIgbz1lW3NdLHU9ZVtvXTtpPU1hdGguc3FydChuW3MqMytzXS1uW28qMytvXS1uW3UqMyt1XSsxKSx0W3NdPS41KmksaT0uNS9pLHRbM109KG5bdSozK29dLW5bbyozK3VdKSppLHRbb109KG5bbyozK3NdK25bcyozK29dKSppLHRbdV09KG5bdSozK3NdK25bcyozK3VdKSppfXJldHVybiB0fX0oKSxjLnN0cj1mdW5jdGlvbihlKXtyZXR1cm4icXVhdCgiK2VbMF0rIiwgIitlWzFdKyIsICIrZVsyXSsiLCAiK2VbM10rIikifSx0eXBlb2YgZSE9InVuZGVmaW5lZCImJihlLnF1YXQ9Yyl9KGUuZXhwb3J0cyl9KSgpOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBjbGFtcCh4LGxvLGhpKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoeCxsbyksaGkpO30KK2Z1bmN0aW9uIGZpbmRGaXJzdEtleUluRGljdE1hdGNoaW5nKGRpY3Qsb3B0X2Z1bmMsb3B0X3RoaXMpe3ZhciBmdW5jPW9wdF9mdW5jfHxpZGVudGl0eTtmb3IodmFyIGtleSBpbiBkaWN0KXtpZihmdW5jLmNhbGwob3B0X3RoaXMsa2V5LGRpY3Rba2V5XSkpCityZXR1cm4ga2V5O30KK3JldHVybiB1bmRlZmluZWQ7fQorcmV0dXJue2FzQXJyYXk6YXNBcnJheSxjb25jYXRlbmF0ZUFycmF5czpjb25jYXRlbmF0ZUFycmF5cyxjb25jYXRlbmF0ZU9iamVjdHM6Y29uY2F0ZW5hdGVPYmplY3RzLGNvbXBhcmVBcnJheXM6Y29tcGFyZUFycmF5cyxjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXM6Y29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzLGRpY3Rpb25hcnlMZW5ndGg6ZGljdGlvbmFyeUxlbmd0aCxkaWN0aW9uYXJ5S2V5czpkaWN0aW9uYXJ5S2V5cyxkaWN0aW9uYXJ5VmFsdWVzOmRpY3Rpb25hcnlWYWx1ZXMsZ3JvdXA6Z3JvdXAsaXRlckl0ZW1zOml0ZXJJdGVtcyxtYXBJdGVtczptYXBJdGVtcyxpdGVyT2JqZWN0RmllbGRzUmVjdXJzaXZlbHk6aXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5LGlkZW50aXR5OmlkZW50aXR5LGZpbmRGaXJzdEluZGV4SW5BcnJheTpmaW5kRmlyc3RJbmRleEluQXJyYXksZmluZEZpcnN0SW5BcnJheTpmaW5kRmlyc3RJbkFycmF5LGZpbmRGaXJzdEtleUluRGljdE1hdGNoaW5nOmZpbmRGaXJzdEtleUluRGljdE1hdGNoaW5nfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUmVnaXN0ZXJlZFR5cGVJbmZvKGNvbnN0cnVjdG9yLG1ldGFkYXRhKXt0aGlzLmNvbnN0cnVjdG9yPWNvbnN0cnVjdG9yO3RoaXMubWV0YWRhdGE9bWV0YWRhdGE7fTt2YXIgQkFTSUNfUkVHSVNUUllfTU9ERT0nQkFTSUNfUkVHSVNUUllfTU9ERSc7dmFyIFRZUEVfQkFTRURfUkVHSVNUUllfTU9ERT0nVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFJzt2YXIgQUxMX01PREVTPXtCQVNJQ19SRUdJU1RSWV9NT0RFOnRydWUsVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFOnRydWV9O2Z1bmN0aW9uIEV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyhtb2RlKXtpZihtb2RlPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdNb2RlIGlzIHJlcXVpcmVkJyk7aWYoIUFMTF9NT0RFU1ttb2RlXSkKK3Rocm93IG5ldyBFcnJvcignTm90IGEgbW9kZS4nKTt0aGlzLm1vZGVfPW1vZGU7dGhpcy5kZWZhdWx0TWV0YWRhdGFfPXt9O3RoaXMuZGVmYXVsdENvbnN0cnVjdG9yXz11bmRlZmluZWQ7dGhpcy5tYW5kYXRvcnlCYXNlQ2xhc3NfPXVuZGVmaW5lZDt0aGlzLmRlZmF1bHRUeXBlSW5mb189dW5kZWZpbmVkO3RoaXMuZnJvemVuXz1mYWxzZTt9CitFeHRlbnNpb25SZWdpc3RyeU9wdGlvbnMucHJvdG90eXBlPXtmcmVlemU6ZnVuY3Rpb24oKXtpZih0aGlzLmZyb3plbl8pCit0aHJvdyBuZXcgRXJyb3IoJ0Zyb3plbicpO3RoaXMuZnJvemVuXz10cnVlO30sZ2V0IG1vZGUoKXtyZXR1cm4gdGhpcy5tb2RlXzt9LGdldCBkZWZhdWx0TWV0YWRhdGEoKXtyZXR1cm4gdGhpcy5kZWZhdWx0TWV0YWRhdGFfO30sc2V0IGRlZmF1bHRNZXRhZGF0YShkZWZhdWx0TWV0YWRhdGEpe2lmKHRoaXMuZnJvemVuXykKK3Rocm93IG5ldyBFcnJvcignRnJvemVuJyk7dGhpcy5kZWZhdWx0TWV0YWRhdGFfPWRlZmF1bHRNZXRhZGF0YTt0aGlzLmRlZmF1bHRUeXBlSW5mb189dW5kZWZpbmVkO30sZ2V0IGRlZmF1bHRDb25zdHJ1Y3Rvcigpe3JldHVybiB0aGlzLmRlZmF1bHRDb25zdHJ1Y3Rvcl87fSxzZXQgZGVmYXVsdENvbnN0cnVjdG9yKGRlZmF1bHRDb25zdHJ1Y3Rvcil7aWYodGhpcy5mcm96ZW5fKQordGhyb3cgbmV3IEVycm9yKCdGcm96ZW4nKTt0aGlzLmRlZmF1bHRDb25zdHJ1Y3Rvcl89ZGVmYXVsdENvbnN0cnVjdG9yO3RoaXMuZGVmYXVsdFR5cGVJbmZvXz11bmRlZmluZWQ7fSxnZXQgZGVmYXVsdFR5cGVJbmZvKCl7aWYodGhpcy5kZWZhdWx0VHlwZUluZm9fPT09dW5kZWZpbmVkJiZ0aGlzLmRlZmF1bHRDb25zdHJ1Y3Rvcl8pe3RoaXMuZGVmYXVsdFR5cGVJbmZvXz1uZXcgUmVnaXN0ZXJlZFR5cGVJbmZvKHRoaXMuZGVmYXVsdENvbnN0cnVjdG9yLHRoaXMuZGVmYXVsdE1ldGFkYXRhKTt9CityZXR1cm4gdGhpcy5kZWZhdWx0VHlwZUluZm9fO30sdmFsaWRhdGVDb25zdHJ1Y3RvcjpmdW5jdGlvbihjb25zdHJ1Y3Rvcil7aWYoIXRoaXMubWFuZGF0b3J5QmFzZUNsYXNzKQorcmV0dXJuO3ZhciBjdXJQcm90bz1jb25zdHJ1Y3Rvci5wcm90b3R5cGUuX19wcm90b19fO3ZhciBvaz1mYWxzZTt3aGlsZShjdXJQcm90byl7aWYoY3VyUHJvdG89PT10aGlzLm1hbmRhdG9yeUJhc2VDbGFzcy5wcm90b3R5cGUpe29rPXRydWU7YnJlYWs7fQorY3VyUHJvdG89Y3VyUHJvdG8uX19wcm90b19fO30KK2lmKCFvaykKK3Rocm93IG5ldyBFcnJvcihjb25zdHJ1Y3RvcisnbXVzdCBiZSBzdWJjbGFzcyBvZiAnK3JlZ2lzdHJ5KTt9fTtyZXR1cm57QkFTSUNfUkVHSVNUUllfTU9ERTpCQVNJQ19SRUdJU1RSWV9NT0RFLFRZUEVfQkFTRURfUkVHSVNUUllfTU9ERTpUWVBFX0JBU0VEX1JFR0lTVFJZX01PREUsRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zOkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyxSZWdpc3RlcmVkVHlwZUluZm86UmVnaXN0ZXJlZFR5cGVJbmZvfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7dmFyIFJlZ2lzdGVyZWRUeXBlSW5mbz10ci5iLlJlZ2lzdGVyZWRUeXBlSW5mbzt2YXIgRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zPXRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zO2Z1bmN0aW9uIGRlY29yYXRlQmFzaWNFeHRlbnNpb25SZWdpc3RyeShyZWdpc3RyeSxleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMpe3ZhciBzYXZlZFN0YXRlU3RhY2s9W107cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc189W107cmVnaXN0cnkucmVnaXN0ZXI9ZnVuY3Rpb24oY29uc3RydWN0b3Isb3B0X21ldGFkYXRhKXtpZihyZWdpc3RyeS5maW5kSW5kZXhPZlJlZ2lzdGVyZWRDb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikhPT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoJ0hhbmRsZXIgYWxyZWFkeSByZWdpc3RlcmVkIGZvciAnK2NvbnN0cnVjdG9yKTtleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMudmFsaWRhdGVDb25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvcik7dmFyIG1ldGFkYXRhPXt9O2Zvcih2YXIgayBpbiBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMuZGVmYXVsdE1ldGFkYXRhKQorbWV0YWRhdGFba109ZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRNZXRhZGF0YVtrXTtpZihvcHRfbWV0YWRhdGEpe2Zvcih2YXIgayBpbiBvcHRfbWV0YWRhdGEpCittZXRhZGF0YVtrXT1vcHRfbWV0YWRhdGFba107fQordmFyIHR5cGVJbmZvPW5ldyBSZWdpc3RlcmVkVHlwZUluZm8oY29uc3RydWN0b3IsbWV0YWRhdGEpO3ZhciBlPW5ldyB0ci5iLkV2ZW50KCd3aWxsLXJlZ2lzdGVyJyk7ZS50eXBlSW5mbz10eXBlSW5mbztyZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLnB1c2godHlwZUluZm8pO2U9bmV3IHRyLmIuRXZlbnQoJ3JlZ2lzdHJ5LWNoYW5nZWQnKTtyZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpO307cmVnaXN0cnkucHVzaENsZWFuU3RhdGVCZWZvcmVUZXN0PWZ1bmN0aW9uKCl7c2F2ZWRTdGF0ZVN0YWNrLnB1c2gocmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18pO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfPVtdO3ZhciBlPW5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LnBvcENsZWFuU3RhdGVBZnRlclRlc3Q9ZnVuY3Rpb24oKXtyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXz1zYXZlZFN0YXRlU3RhY2tbMF07c2F2ZWRTdGF0ZVN0YWNrLnNwbGljZSgwLDEpO3ZhciBlPW5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LmZpbmRJbmRleE9mUmVnaXN0ZXJlZENvbnN0cnVjdG9yPWZ1bmN0aW9uKGNvbnN0cnVjdG9yKXtmb3IodmFyIGk9MDtpPHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLmxlbmd0aDtpKyspCitpZihyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zX1tpXS5jb25zdHJ1Y3Rvcj09Y29uc3RydWN0b3IpCityZXR1cm4gaTtyZXR1cm4gdW5kZWZpbmVkO307cmVnaXN0cnkudW5yZWdpc3Rlcj1mdW5jdGlvbihjb25zdHJ1Y3Rvcil7dmFyIGZvdW5kSW5kZXg9cmVnaXN0cnkuZmluZEluZGV4T2ZSZWdpc3RlcmVkQ29uc3RydWN0b3IoY29uc3RydWN0b3IpO2lmKGZvdW5kSW5kZXg9PT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoY29uc3RydWN0b3IrJyBub3QgcmVnaXN0ZXJlZCcpO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLnNwbGljZShmb3VuZEluZGV4LDEpO3ZhciBlPW5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3M9ZnVuY3Rpb24oKXtyZXR1cm4gcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc187fTtyZWdpc3RyeS5maW5kVHlwZUluZm89ZnVuY3Rpb24oY29uc3RydWN0b3Ipe3ZhciBmb3VuZEluZGV4PXRoaXMuZmluZEluZGV4T2ZSZWdpc3RlcmVkQ29uc3RydWN0b3IoY29uc3RydWN0b3IpO2lmKGZvdW5kSW5kZXghPT11bmRlZmluZWQpCityZXR1cm4gdGhpcy5yZWdpc3RlcmVkVHlwZUluZm9zX1tmb3VuZEluZGV4XTtyZXR1cm4gdW5kZWZpbmVkO307cmVnaXN0cnkuZmluZFR5cGVJbmZvTWF0Y2hpbmc9ZnVuY3Rpb24ocHJlZGljYXRlLG9wdF90aGlzKXtvcHRfdGhpcz1vcHRfdGhpcz9vcHRfdGhpczp1bmRlZmluZWQ7Zm9yKHZhciBpPTA7aTxyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5sZW5ndGg7KytpKXt2YXIgdHlwZUluZm89cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc19baV07aWYocHJlZGljYXRlLmNhbGwob3B0X3RoaXMsdHlwZUluZm8pKQorcmV0dXJuIHR5cGVJbmZvO30KK3JldHVybiBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMuZGVmYXVsdFR5cGVJbmZvO307fQorcmV0dXJue19kZWNvcmF0ZUJhc2ljRXh0ZW5zaW9uUmVnaXN0cnk6ZGVjb3JhdGVCYXNpY0V4dGVuc2lvblJlZ2lzdHJ5fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7dmFyIGNhdGVnb3J5UGFydHNGb3I9e307ZnVuY3Rpb24gZ2V0Q2F0ZWdvcnlQYXJ0cyhjYXRlZ29yeSl7dmFyIHBhcnRzPWNhdGVnb3J5UGFydHNGb3JbY2F0ZWdvcnldO2lmKHBhcnRzIT09dW5kZWZpbmVkKQorcmV0dXJuIHBhcnRzO3BhcnRzPWNhdGVnb3J5LnNwbGl0KCcsJyk7Y2F0ZWdvcnlQYXJ0c0ZvcltjYXRlZ29yeV09cGFydHM7cmV0dXJuIHBhcnRzO30KK3JldHVybntnZXRDYXRlZ29yeVBhcnRzOmdldENhdGVnb3J5UGFydHN9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXt2YXIgZ2V0Q2F0ZWdvcnlQYXJ0cz10ci5iLmdldENhdGVnb3J5UGFydHM7dmFyIFJlZ2lzdGVyZWRUeXBlSW5mbz10ci5iLlJlZ2lzdGVyZWRUeXBlSW5mbzt2YXIgRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zPXRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zO2Z1bmN0aW9uIGRlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnkocmVnaXN0cnksZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKXt2YXIgc2F2ZWRTdGF0ZVN0YWNrPVtdO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfPVtdO3JlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfPXt9O3JlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF89e307cmVnaXN0cnkucmVnaXN0ZXI9ZnVuY3Rpb24oY29uc3RydWN0b3IsbWV0YWRhdGEpe2V4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucy52YWxpZGF0ZUNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKTt2YXIgdHlwZUluZm89bmV3IFJlZ2lzdGVyZWRUeXBlSW5mbyhjb25zdHJ1Y3RvcixtZXRhZGF0YXx8ZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRNZXRhZGF0YSk7dHlwZUluZm8udHlwZU5hbWVzPVtdO3R5cGVJbmZvLmNhdGVnb3J5UGFydHM9W107aWYobWV0YWRhdGEmJm1ldGFkYXRhLnR5cGVOYW1lKQordHlwZUluZm8udHlwZU5hbWVzLnB1c2gobWV0YWRhdGEudHlwZU5hbWUpO2lmKG1ldGFkYXRhJiZtZXRhZGF0YS50eXBlTmFtZXMpe3R5cGVJbmZvLnR5cGVOYW1lcy5wdXNoLmFwcGx5KHR5cGVJbmZvLnR5cGVOYW1lcyxtZXRhZGF0YS50eXBlTmFtZXMpO30KK2lmKG1ldGFkYXRhJiZtZXRhZGF0YS5jYXRlZ29yeVBhcnRzKXt0eXBlSW5mby5jYXRlZ29yeVBhcnRzLnB1c2guYXBwbHkodHlwZUluZm8uY2F0ZWdvcnlQYXJ0cyxtZXRhZGF0YS5jYXRlZ29yeVBhcnRzKTt9CitpZih0eXBlSW5mby50eXBlTmFtZXMubGVuZ3RoPT09MCYmdHlwZUluZm8uY2F0ZWdvcnlQYXJ0cy5sZW5ndGg9PT0wKQordGhyb3cgbmV3IEVycm9yKCd0eXBlTmFtZSBvciB0eXBlTmFtZXMgbXVzdCBiZSBwcm92aWRlZCcpO3R5cGVJbmZvLnR5cGVOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGVOYW1lKXtpZihyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXSkKK3Rocm93IG5ldyBFcnJvcigndHlwZU5hbWUgJyt0eXBlTmFtZSsnIGFscmVhZHkgcmVnaXN0ZXJlZCcpO30pO3R5cGVJbmZvLmNhdGVnb3J5UGFydHMuZm9yRWFjaChmdW5jdGlvbihjYXRlZ29yeVBhcnQpe2lmKHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF0pe3Rocm93IG5ldyBFcnJvcignY2F0ZWdvcnlQYXJ0ICcrY2F0ZWdvcnlQYXJ0KycgYWxyZWFkeSByZWdpc3RlcmVkJyk7fX0pO3ZhciBlPW5ldyB0ci5iLkV2ZW50KCd3aWxsLXJlZ2lzdGVyJyk7ZS50eXBlSW5mbz10eXBlSW5mbztyZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpO3R5cGVJbmZvLnR5cGVOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGVOYW1lKXtyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXT10eXBlSW5mbzt9KTt0eXBlSW5mby5jYXRlZ29yeVBhcnRzLmZvckVhY2goZnVuY3Rpb24oY2F0ZWdvcnlQYXJ0KXtyZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdPXR5cGVJbmZvO30pO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLnB1c2godHlwZUluZm8pO3ZhciBlPW5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LnB1c2hDbGVhblN0YXRlQmVmb3JlVGVzdD1mdW5jdGlvbigpe3NhdmVkU3RhdGVTdGFjay5wdXNoKHtyZWdpc3RlcmVkVHlwZUluZm9zOnJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLHR5cGVOYW1lVG9UeXBlSW5mb01hcDpyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfLGNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXA6cmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF99KTtyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXz1bXTtyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfPXt9O3JlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfPXt9O3ZhciBlPW5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LnBvcENsZWFuU3RhdGVBZnRlclRlc3Q9ZnVuY3Rpb24oKXt2YXIgc3RhdGU9c2F2ZWRTdGF0ZVN0YWNrWzBdO3NhdmVkU3RhdGVTdGFjay5zcGxpY2UoMCwxKTtyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXz1zdGF0ZS5yZWdpc3RlcmVkVHlwZUluZm9zO3JlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF89c3RhdGUudHlwZU5hbWVUb1R5cGVJbmZvTWFwO3JlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfPXN0YXRlLmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXA7dmFyIGU9bmV3IHRyLmIuRXZlbnQoJ3JlZ2lzdHJ5LWNoYW5nZWQnKTtyZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpO307cmVnaXN0cnkudW5yZWdpc3Rlcj1mdW5jdGlvbihjb25zdHJ1Y3Rvcil7dmFyIHR5cGVJbmZvSW5kZXg9LTE7Zm9yKHZhciBpPTA7aTxyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5sZW5ndGg7aSsrKXtpZihyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zX1tpXS5jb25zdHJ1Y3Rvcj09Y29uc3RydWN0b3Ipe3R5cGVJbmZvSW5kZXg9aTticmVhazt9fQoraWYodHlwZUluZm9JbmRleD09PS0xKQordGhyb3cgbmV3IEVycm9yKGNvbnN0cnVjdG9yKycgbm90IHJlZ2lzdGVyZWQnKTt2YXIgdHlwZUluZm89cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc19bdHlwZUluZm9JbmRleF07cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18uc3BsaWNlKHR5cGVJbmZvSW5kZXgsMSk7dHlwZUluZm8udHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24odHlwZU5hbWUpe2RlbGV0ZSByZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXTt9KTt0eXBlSW5mby5jYXRlZ29yeVBhcnRzLmZvckVhY2goZnVuY3Rpb24oY2F0ZWdvcnlQYXJ0KXtkZWxldGUgcmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF9bY2F0ZWdvcnlQYXJ0XTt9KTt2YXIgZT1uZXcgdHIuYi5FdmVudCgncmVnaXN0cnktY2hhbmdlZCcpO3JlZ2lzdHJ5LmRpc3BhdGNoRXZlbnQoZSk7fTtyZWdpc3RyeS5nZXRUeXBlSW5mbz1mdW5jdGlvbihjYXRlZ29yeSx0eXBlTmFtZSl7aWYoY2F0ZWdvcnkpe3ZhciBjYXRlZ29yeVBhcnRzPWdldENhdGVnb3J5UGFydHMoY2F0ZWdvcnkpO2Zvcih2YXIgaT0wO2k8Y2F0ZWdvcnlQYXJ0cy5sZW5ndGg7aSsrKXt2YXIgY2F0ZWdvcnlQYXJ0PWNhdGVnb3J5UGFydHNbaV07aWYocmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF9bY2F0ZWdvcnlQYXJ0XSkKK3JldHVybiByZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdO319CitpZihyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXSkKK3JldHVybiByZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXTtyZXR1cm4gZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRUeXBlSW5mbzt9O3JlZ2lzdHJ5LmdldENvbnN0cnVjdG9yPWZ1bmN0aW9uKGNhdGVnb3J5LHR5cGVOYW1lKXt2YXIgdHlwZUluZm89cmVnaXN0cnkuZ2V0VHlwZUluZm8oY2F0ZWdvcnksdHlwZU5hbWUpO2lmKHR5cGVJbmZvKQorcmV0dXJuIHR5cGVJbmZvLmNvbnN0cnVjdG9yO3JldHVybiB1bmRlZmluZWQ7fTt9CityZXR1cm57X2RlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnk6ZGVjb3JhdGVUeXBlQmFzZWRFeHRlbnNpb25SZWdpc3RyeX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkocmVnaXN0cnkscmVnaXN0cnlPcHRpb25zKXtpZihyZWdpc3RyeS5yZWdpc3RlcikKK3Rocm93IG5ldyBFcnJvcignQWxyZWFkeSBoYXMgcmVnaXN0cnknKTtyZWdpc3RyeU9wdGlvbnMuZnJlZXplKCk7aWYocmVnaXN0cnlPcHRpb25zLm1vZGU9PXRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSl7dHIuYi5fZGVjb3JhdGVCYXNpY0V4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LHJlZ2lzdHJ5T3B0aW9ucyk7fWVsc2UgaWYocmVnaXN0cnlPcHRpb25zLm1vZGU9PXRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKXt0ci5iLl9kZWNvcmF0ZVR5cGVCYXNlZEV4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LHJlZ2lzdHJ5T3B0aW9ucyk7fWVsc2V7dGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgbW9kZScpO30KK2lmKHJlZ2lzdHJ5LmFkZEV2ZW50TGlzdGVuZXI9PT11bmRlZmluZWQpCit0ci5iLkV2ZW50VGFyZ2V0LmRlY29yYXRlKHJlZ2lzdHJ5KTt9CityZXR1cm57ZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeTpkZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQXVkaXRvcihtb2RlbCl7dGhpcy5tb2RlbF89bW9kZWw7fQorQXVkaXRvci5wcm90b3R5cGU9e19fcHJvdG9fXzpPYmplY3QucHJvdG90eXBlLGdldCBtb2RlbCgpe3JldHVybiB0aGlzLm1vZGVsXzt9LHJ1bkFubm90YXRlOmZ1bmN0aW9uKCl7fSxydW5BdWRpdDpmdW5jdGlvbigpe319O3ZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpO29wdGlvbnMuZGVmYXVsdE1ldGFkYXRhPXt9O29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPUF1ZGl0b3I7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEF1ZGl0b3Isb3B0aW9ucyk7cmV0dXJue0F1ZGl0b3I6QXVkaXRvcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe2Z1bmN0aW9uIG1ha2VDYXNlSW5zZW5zaXRpdmVSZWdleChwYXR0ZXJuKXtwYXR0ZXJuPXBhdHRlcm4ucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csJ1xcJCYnKTtyZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuLCdpJyk7fQorZnVuY3Rpb24gRmlsdGVyKCl7fQorRmlsdGVyLnByb3RvdHlwZT17X19wcm90b19fOk9iamVjdC5wcm90b3R5cGUsbWF0Y2hDb3VudGVyOmZ1bmN0aW9uKGNvdW50ZXIpe3JldHVybiB0cnVlO30sbWF0Y2hDcHU6ZnVuY3Rpb24oY3B1KXtyZXR1cm4gdHJ1ZTt9LG1hdGNoUHJvY2VzczpmdW5jdGlvbihwcm9jZXNzKXtyZXR1cm4gdHJ1ZTt9LG1hdGNoU2xpY2U6ZnVuY3Rpb24oc2xpY2Upe3JldHVybiB0cnVlO30sbWF0Y2hUaHJlYWQ6ZnVuY3Rpb24odGhyZWFkKXtyZXR1cm4gdHJ1ZTt9fTtmdW5jdGlvbiBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIodGV4dCl7RmlsdGVyLmNhbGwodGhpcyk7dGhpcy5yZWdleF89bWFrZUNhc2VJbnNlbnNpdGl2ZVJlZ2V4KHRleHQpO2lmKCF0ZXh0Lmxlbmd0aCkKK3Rocm93IG5ldyBFcnJvcignRmlsdGVyIHRleHQgaXMgZW1wdHkuJyk7fQorVGl0bGVPckNhdGVnb3J5RmlsdGVyLnByb3RvdHlwZT17X19wcm90b19fOkZpbHRlci5wcm90b3R5cGUsbWF0Y2hTbGljZTpmdW5jdGlvbihzbGljZSl7aWYoc2xpY2UudGl0bGU9PT11bmRlZmluZWQmJnNsaWNlLmNhdGVnb3J5PT09dW5kZWZpbmVkKQorcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLnJlZ2V4Xy50ZXN0KHNsaWNlLnRpdGxlKXx8KCEhc2xpY2UuY2F0ZWdvcnkmJnRoaXMucmVnZXhfLnRlc3Qoc2xpY2UuY2F0ZWdvcnkpKTt9fTtmdW5jdGlvbiBFeGFjdFRpdGxlRmlsdGVyKHRleHQpe0ZpbHRlci5jYWxsKHRoaXMpO3RoaXMudGV4dF89dGV4dDtpZighdGV4dC5sZW5ndGgpCit0aHJvdyBuZXcgRXJyb3IoJ0ZpbHRlciB0ZXh0IGlzIGVtcHR5LicpO30KK0V4YWN0VGl0bGVGaWx0ZXIucHJvdG90eXBlPXtfX3Byb3RvX186RmlsdGVyLnByb3RvdHlwZSxtYXRjaFNsaWNlOmZ1bmN0aW9uKHNsaWNlKXtyZXR1cm4gc2xpY2UudGl0bGU9PT10aGlzLnRleHRfO319O2Z1bmN0aW9uIEZ1bGxUZXh0RmlsdGVyKHRleHQpe0ZpbHRlci5jYWxsKHRoaXMpO3RoaXMucmVnZXhfPW1ha2VDYXNlSW5zZW5zaXRpdmVSZWdleCh0ZXh0KTt0aGlzLnRpdGxlT3JDYXRlZ29yeUZpbHRlcl89bmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcih0ZXh0KTt9CitGdWxsVGV4dEZpbHRlci5wcm90b3R5cGU9e19fcHJvdG9fXzpGaWx0ZXIucHJvdG90eXBlLG1hdGNoT2JqZWN0XzpmdW5jdGlvbihvYmope2Zvcih2YXIga2V5IGluIG9iail7aWYoIW9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKQorY29udGludWU7aWYodGhpcy5yZWdleF8udGVzdChrZXkpKQorcmV0dXJuIHRydWU7aWYodGhpcy5yZWdleF8udGVzdChvYmpba2V5XSkpCityZXR1cm4gdHJ1ZTt9CityZXR1cm4gZmFsc2U7fSxtYXRjaFNsaWNlOmZ1bmN0aW9uKHNsaWNlKXtpZih0aGlzLnRpdGxlT3JDYXRlZ29yeUZpbHRlcl8ubWF0Y2hTbGljZShzbGljZSkpCityZXR1cm4gdHJ1ZTtyZXR1cm4gdGhpcy5tYXRjaE9iamVjdF8oc2xpY2UuYXJncyk7fX07cmV0dXJue0ZpbHRlcjpGaWx0ZXIsVGl0bGVPckNhdGVnb3J5RmlsdGVyOlRpdGxlT3JDYXRlZ29yeUZpbHRlcixFeGFjdFRpdGxlRmlsdGVyOkV4YWN0VGl0bGVGaWx0ZXIsRnVsbFRleHRGaWx0ZXI6RnVsbFRleHRGaWx0ZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuaW1wb3J0ZXInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gSW1wb3J0ZXIoKXt9CitJbXBvcnRlci5wcm90b3R5cGU9e19fcHJvdG9fXzpPYmplY3QucHJvdG90eXBlLGlzVHJhY2VEYXRhQ29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlO30sZXh0cmFjdFN1YnRyYWNlczpmdW5jdGlvbigpe3JldHVybltdO30saW1wb3J0RXZlbnRzOmZ1bmN0aW9uKCl7fSxpbXBvcnRTYW1wbGVEYXRhOmZ1bmN0aW9uKCl7fSxmaW5hbGl6ZUltcG9ydDpmdW5jdGlvbigpe30sam9pblJlZnM6ZnVuY3Rpb24oKXt9fTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTtvcHRpb25zLmRlZmF1bHRNZXRhZGF0YT17fTtvcHRpb25zLm1hbmRhdG9yeUJhc2VDbGFzcz1JbXBvcnRlcjt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoSW1wb3J0ZXIsb3B0aW9ucyk7SW1wb3J0ZXIuZmluZEltcG9ydGVyRm9yPWZ1bmN0aW9uKGV2ZW50RGF0YSl7dmFyIHR5cGVJbmZvPUltcG9ydGVyLmZpbmRUeXBlSW5mb01hdGNoaW5nKGZ1bmN0aW9uKHRpKXtyZXR1cm4gdGkuY29uc3RydWN0b3IuY2FuSW1wb3J0KGV2ZW50RGF0YSk7fSk7aWYodHlwZUluZm8pCityZXR1cm4gdHlwZUluZm8uY29uc3RydWN0b3I7cmV0dXJuIHVuZGVmaW5lZDt9O3JldHVybntJbXBvcnRlcjpJbXBvcnRlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5pbXBvcnRlcicsZnVuY3Rpb24oKXt2YXIgSW1wb3J0ZXI9dHIuaW1wb3J0ZXIuSW1wb3J0ZXI7ZnVuY3Rpb24gRW1wdHlJbXBvcnRlcihldmVudHMpe3RoaXMuaW1wb3J0UHJpb3JpdHk9MDt9O0VtcHR5SW1wb3J0ZXIuY2FuSW1wb3J0PWZ1bmN0aW9uKGV2ZW50RGF0YSl7aWYoZXZlbnREYXRhIGluc3RhbmNlb2YgQXJyYXkmJmV2ZW50RGF0YS5sZW5ndGg9PTApCityZXR1cm4gdHJ1ZTtpZih0eXBlb2YoZXZlbnREYXRhKT09PSdzdHJpbmcnfHxldmVudERhdGEgaW5zdGFuY2VvZiBTdHJpbmcpe3JldHVybiBldmVudERhdGEubGVuZ3RoPT0wO30KK3JldHVybiBmYWxzZTt9O0VtcHR5SW1wb3J0ZXIucHJvdG90eXBlPXtfX3Byb3RvX186SW1wb3J0ZXIucHJvdG90eXBlfTtJbXBvcnRlci5yZWdpc3RlcihFbXB0eUltcG9ydGVyKTtyZXR1cm57RW1wdHlJbXBvcnRlcjpFbXB0eUltcG9ydGVyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gVGltZVN0YW1wKHRpbWVzdGFtcCl7dGhpcy50aW1lc3RhbXA9dGltZXN0YW1wO307VGltZVN0YW1wLnByb3RvdHlwZT17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gVGltZVN0YW1wLmZvcm1hdCh0aGlzLnRpbWVzdGFtcCk7fX07VGltZVN0YW1wLmZvcm1hdD1mdW5jdGlvbih0aW1lc3RhbXApe3JldHVybiB0ci5iLnVuaXRzLlRpbWUuY3VycmVudERpc3BsYXlVbml0LmZvcm1hdCh0aW1lc3RhbXApO307cmV0dXJue1RpbWVTdGFtcDpUaW1lU3RhbXB9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBib3VuZENoYW5uZWwodil7cmV0dXJuIE1hdGgubWluKDI1NSxNYXRoLm1heCgwLE1hdGguZmxvb3IodikpKTt9CitmdW5jdGlvbiBicmlnaHRlbkNvbG9yKGMpe3ZhciBrO2lmKGMucj49MjQwJiZjLmc+PTI0MCYmYy5iPj0yNDApCitrPTAuODA7ZWxzZQoraz0xLjQ1O3JldHVybntyOmJvdW5kQ2hhbm5lbChjLnIqayksZzpib3VuZENoYW5uZWwoYy5nKmspLGI6Ym91bmRDaGFubmVsKGMuYiprKX07fQorZnVuY3Rpb24gZGVzYXR1cmF0ZUNvbG9yKGMpe3ZhciB2YWx1ZT1ib3VuZENoYW5uZWwoKGMucitjLmcrYy5iKS8zKTtyZXR1cm57cjp2YWx1ZSxnOnZhbHVlLGI6dmFsdWV9O30KK2Z1bmN0aW9uIGNvbG9yVG9SR0JTdHJpbmcoYyl7cmV0dXJuJ3JnYignK2MucisnLCcrYy5nKycsJytjLmIrJyknO30KK2Z1bmN0aW9uIGNvbG9yVG9SR0JBU3RyaW5nKGMsYSl7cmV0dXJuJ3JnYmEoJytjLnIrJywnK2MuZysnLCcrYy5iKycsJythKycpJzt9CityZXR1cm57YnJpZ2h0ZW5Db2xvcjpicmlnaHRlbkNvbG9yLGRlc2F0dXJhdGVDb2xvcjpkZXNhdHVyYXRlQ29sb3IsY29sb3JUb1JHQlN0cmluZzpjb2xvclRvUkdCU3RyaW5nLGNvbG9yVG9SR0JBU3RyaW5nOmNvbG9yVG9SR0JBU3RyaW5nfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7dmFyIGNvbG9yVG9SR0JTdHJpbmc9dHIudWkuYi5jb2xvclRvUkdCU3RyaW5nO3ZhciBjb2xvclRvUkdCQVN0cmluZz10ci51aS5iLmNvbG9yVG9SR0JBU3RyaW5nO3ZhciBnZW5lcmFsUHVycG9zZUNvbG9ycz1be3I6MTM4LGc6MTEzLGI6MTUyfSx7cjoxNzUsZzoxMTIsYjoxMzN9LHtyOjEyNyxnOjEzNSxiOjIyNX0se3I6OTMsZzo4MSxiOjEzN30se3I6MTE2LGc6MTQzLGI6MTE5fSx7cjoxNzgsZzoyMTQsYjoxMjJ9LHtyOjg3LGc6MTA5LGI6MTQ3fSx7cjoxMTksZzoxNTUsYjo5NX0se3I6MTE0LGc6MTgwLGI6MTYwfSx7cjoxMzIsZzo4NSxiOjEwM30se3I6MTU3LGc6MjEwLGI6MTUwfSx7cjoxNDgsZzo5NCxiOjg2fSx7cjoxNjQsZzoxMDgsYjoxMzh9LHtyOjEzOSxnOjE5MSxiOjE1MH0se3I6MTEwLGc6OTksYjoxNDV9LHtyOjgwLGc6MTI5LGI6MTA5fSx7cjoxMjUsZzoxNDAsYjoxNDl9LHtyOjkzLGc6MTI0LGI6MTMyfSx7cjoxNDAsZzo4NSxiOjE0MH0se3I6MTA0LGc6MTYzLGI6MTYyfSx7cjoxMzIsZzoxNDEsYjoxNzh9LHtyOjEzMSxnOjEwNSxiOjE0N30se3I6MTM1LGc6MTgzLGI6OTh9LHtyOjE1MixnOjEzNCxiOjE3N30se3I6MTQxLGc6MTg4LGI6MTQxfSx7cjoxMzMsZzoxNjAsYjoyMTB9LHtyOjEyNixnOjE4NixiOjE0OH0se3I6MTEyLGc6MTk4LGI6MjA1fSx7cjoxODAsZzoxMjIsYjoxOTV9LHtyOjIwMyxnOjE0NCxiOjE1Mn1dO3ZhciByZXNlcnZlZENvbG9yc0J5TmFtZT17dGhyZWFkX3N0YXRlX2lvd2FpdDp7cjoxODIsZzoxMjUsYjoxNDN9LHRocmVhZF9zdGF0ZV9ydW5uaW5nOntyOjEyNixnOjIwMCxiOjE0OH0sdGhyZWFkX3N0YXRlX3J1bm5hYmxlOntyOjEzMyxnOjE2MCxiOjIxMH0sdGhyZWFkX3N0YXRlX3NsZWVwaW5nOntyOjI0MCxnOjI0MCxiOjI0MH0sdGhyZWFkX3N0YXRlX3Vua25vd246e3I6MTk5LGc6MTU1LGI6MTI1fSxtZW1vcnlfZHVtcDp7cjowLGc6MCxiOjE4MH0sZ2VuZXJpY193b3JrOntyOjEyNSxnOjEyNSxiOjEyNX0sZ29vZDp7cjowLGc6MTI1LGI6MH0sYmFkOntyOjE4MCxnOjEyNSxiOjB9LHRlcnJpYmxlOntyOjE4MCxnOjAsYjowfSxibGFjazp7cjowLGc6MCxiOjB9LHJhaWxfcmVzcG9uc2U6e3I6NjcsZzoxMzUsYjoyNTN9LHJhaWxfYW5pbWF0ZTp7cjoyNDQsZzo3NCxiOjYzfSxyYWlsX2lkbGU6e3I6MjM4LGc6MTQyLGI6MH0scmFpbF9sb2FkOntyOjEzLGc6MTY4LGI6OTd9LHVzZWRfbWVtb3J5X2NvbHVtbjp7cjowLGc6MCxiOjI1NX0sb2xkZXJfdXNlZF9tZW1vcnlfY29sdW1uOntyOjE1MyxnOjIwNCxiOjI1NX0sdHJhY2luZ19tZW1vcnlfY29sdW1uOntyOjE1MyxnOjE1MyxiOjE1M30sY3FfYnVpbGRfcnVubmluZzp7cjoyNTUsZzoyNTUsYjoxMTl9LGNxX2J1aWxkX3Bhc3NlZDp7cjoxNTMsZzoyMzgsYjoxMDJ9LGNxX2J1aWxkX2ZhaWxlZDp7cjoyMzgsZzoxMzYsYjoxMzZ9LGNxX2J1aWxkX2FiYW5kb25lZDp7cjoxODcsZzoxODcsYjoxODd9LGNxX2J1aWxkX2F0dGVtcHRfcnVubmluZzp7cjoyMjIsZzoyMjIsYjo3NX0sY3FfYnVpbGRfYXR0ZW1wdF9wYXNzZWQ6e3I6MTAzLGc6MjE4LGI6MzV9LGNxX2J1aWxkX2F0dGVtcHRfZmFpbGVkOntyOjE5NyxnOjgxLGI6ODF9fTt2YXIgbnVtR2VuZXJhbFB1cnBvc2VDb2xvcklkcz1nZW5lcmFsUHVycG9zZUNvbG9ycy5sZW5ndGg7dmFyIG51bVJlc2VydmVkQ29sb3JJZHM9dHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKHJlc2VydmVkQ29sb3JzQnlOYW1lKTt2YXIgcGFsZXR0ZVJhdz0oZnVuY3Rpb24oKXt2YXIgcGFsZXR0ZUJhc2U9W107cGFsZXR0ZUJhc2UucHVzaC5hcHBseShwYWxldHRlQmFzZSxnZW5lcmFsUHVycG9zZUNvbG9ycyk7cGFsZXR0ZUJhc2UucHVzaC5hcHBseShwYWxldHRlQmFzZSx0ci5iLmRpY3Rpb25hcnlWYWx1ZXMocmVzZXJ2ZWRDb2xvcnNCeU5hbWUpKTtyZXR1cm4gcGFsZXR0ZUJhc2UuY29uY2F0KHBhbGV0dGVCYXNlLm1hcCh0ci51aS5iLmJyaWdodGVuQ29sb3IpLHBhbGV0dGVCYXNlLm1hcCh0ci51aS5iLmRlc2F0dXJhdGVDb2xvcikpO30pKCk7dmFyIHBhbGV0dGU9cGFsZXR0ZVJhdy5tYXAoY29sb3JUb1JHQlN0cmluZyk7dmFyIGhpZ2hsaWdodElkQm9vc3Q9cGFsZXR0ZVJhdy5sZW5ndGgvMzt2YXIgZGVzYXR1cmF0ZUlkQm9vc3Q9KHBhbGV0dGVSYXcubGVuZ3RoLzMpKjI7dmFyIHJlc2VydmVkQ29sb3JOYW1lVG9JZE1hcD0oZnVuY3Rpb24oKXt2YXIgbT17fTt2YXIgaT1nZW5lcmFsUHVycG9zZUNvbG9ycy5sZW5ndGg7dHIuYi5pdGVySXRlbXMocmVzZXJ2ZWRDb2xvcnNCeU5hbWUsZnVuY3Rpb24oa2V5LHZhbHVlKXttW2tleV09aSsrO30pO3JldHVybiBtO30pKCk7ZnVuY3Rpb24gZ2V0U3RyaW5nSGFzaChuYW1lKXt2YXIgaGFzaD0wO2Zvcih2YXIgaT0wO2k8bmFtZS5sZW5ndGg7KytpKQoraGFzaD0oaGFzaCszNypoYXNoKzExKm5hbWUuY2hhckNvZGVBdChpKSklMHhGRkZGRkZGRjtyZXR1cm4gaGFzaDt9CitmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGUoKXtyZXR1cm4gcGFsZXR0ZTt9CitmdW5jdGlvbiBnZXRSYXdDb2xvclBhbGV0dGUoKXtyZXR1cm4gcGFsZXR0ZVJhdzt9CitmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGVIaWdobGlnaHRJZEJvb3N0KCl7cmV0dXJuIGhpZ2hsaWdodElkQm9vc3Q7fQorZnVuY3Rpb24gZ2V0Q29sb3JQYWxldHRlRGVzYXR1cmF0ZUlkQm9vc3QoKXtyZXR1cm4gZGVzYXR1cmF0ZUlkQm9vc3Q7fQorZnVuY3Rpb24gZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZShuYW1lKXt2YXIgaWQ9cmVzZXJ2ZWRDb2xvck5hbWVUb0lkTWFwW25hbWVdO2lmKGlkPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgY29sb3IgJykrbmFtZTtyZXR1cm4gaWQ7fQordmFyIHN0cmluZ0NvbG9ySWRDYWNoZT17fTtmdW5jdGlvbiBnZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoc3RyaW5nKXtpZihzdHJpbmdDb2xvcklkQ2FjaGVbc3RyaW5nXT09PXVuZGVmaW5lZCl7dmFyIGhhc2g9Z2V0U3RyaW5nSGFzaChzdHJpbmcpO3N0cmluZ0NvbG9ySWRDYWNoZVtzdHJpbmddPWhhc2glbnVtR2VuZXJhbFB1cnBvc2VDb2xvcklkczt9CityZXR1cm4gc3RyaW5nQ29sb3JJZENhY2hlW3N0cmluZ107fQordmFyIHBhbGV0dGVQcm9wZXJ0aWVzPXtudW1HZW5lcmFsUHVycG9zZUNvbG9ySWRzOm51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHMsaGlnaGxpZ2h0SWRCb29zdDpoaWdobGlnaHRJZEJvb3N0LGRlc2F0dXJhdGVJZEJvb3N0OmRlc2F0dXJhdGVJZEJvb3N0fTtyZXR1cm57Z2V0UmF3Q29sb3JQYWxldHRlOmdldFJhd0NvbG9yUGFsZXR0ZSxnZXRDb2xvclBhbGV0dGU6Z2V0Q29sb3JQYWxldHRlLHBhbGV0dGVQcm9wZXJ0aWVzOnBhbGV0dGVQcm9wZXJ0aWVzLGdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3Q6Z2V0Q29sb3JQYWxldHRlSGlnaGxpZ2h0SWRCb29zdCxnZXRDb2xvclBhbGV0dGVEZXNhdHVyYXRlSWRCb29zdDpnZXRDb2xvclBhbGV0dGVEZXNhdHVyYXRlSWRCb29zdCxnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lOmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUsZ2V0U3RyaW5nSGFzaDpnZXRTdHJpbmdIYXNoLGdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZzpnZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmd9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRXZlbnRJbmZvKHRpdGxlLGRlc2NyaXB0aW9uLGRvY0xpbmtzKXt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuZGVzY3JpcHRpb249ZGVzY3JpcHRpb247dGhpcy5kb2NMaW5rcz1kb2NMaW5rczt0aGlzLmNvbG9ySWQ9dHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcodGl0bGUpO30KK3JldHVybntFdmVudEluZm86RXZlbnRJbmZvfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7dmFyIG5leHRHVUlEPTE7dmFyIEdVSUQ9e2FsbG9jYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG5leHRHVUlEKys7fSxnZXRMYXN0R3VpZDpmdW5jdGlvbigpe3JldHVybiBuZXh0R1VJRC0xO319O3JldHVybntHVUlEOkdVSUR9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRXZlbnRSZWdpc3RyeSgpe30KK3ZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpO3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShFdmVudFJlZ2lzdHJ5LG9wdGlvbnMpO0V2ZW50UmVnaXN0cnkuYWRkRXZlbnRMaXN0ZW5lcignd2lsbC1yZWdpc3RlcicsZnVuY3Rpb24oZSl7dmFyIG1ldGFkYXRhPWUudHlwZUluZm8ubWV0YWRhdGE7aWYobWV0YWRhdGEubmFtZT09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignUmVnaXN0ZXJlZCBldmVudHMgbXVzdCBwcm92aWRlIG5hbWUgbWV0YWRhdGEnKTt2YXIgaT10ci5iLmZpbmRGaXJzdEluQXJyYXkoRXZlbnRSZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCksZnVuY3Rpb24oeCl7cmV0dXJuIHgubWV0YWRhdGEubmFtZT09PW1ldGFkYXRhLm5hbWU7fSk7aWYoaSE9PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignRXZlbnQgdHlwZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IHJlZ2lzdGVyZWQnKTtpZihtZXRhZGF0YS5wbHVyYWxOYW1lPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdSZWdpc3RlcmVkIGV2ZW50cyBtdXN0IHByb3ZpZGUgcGx1cmFsTmFtZSBtZXRhZGF0YScpO2lmKG1ldGFkYXRhLnNpbmdsZVZpZXdFbGVtZW50TmFtZT09PXVuZGVmaW5lZCl7dGhyb3cgbmV3IEVycm9yKCdSZWdpc3RlcmVkIGV2ZW50cyBtdXN0IHByb3ZpZGUgJysnc2luZ2xlVmlld0VsZW1lbnROYW1lIG1ldGFkYXRhJyk7fQoraWYobWV0YWRhdGEubXVsdGlWaWV3RWxlbWVudE5hbWU9PT11bmRlZmluZWQpe3Rocm93IG5ldyBFcnJvcignUmVnaXN0ZXJlZCBldmVudHMgbXVzdCBwcm92aWRlICcrJ211bHRpVmlld0VsZW1lbnROYW1lIG1ldGFkYXRhJyk7fX0pO3ZhciBldmVudHNCeVR5cGVOYW1lPXVuZGVmaW5lZDtFdmVudFJlZ2lzdHJ5LmdldEV2ZW50VHlwZUluZm9CeVR5cGVOYW1lPWZ1bmN0aW9uKHR5cGVOYW1lKXtpZihldmVudHNCeVR5cGVOYW1lPT09dW5kZWZpbmVkKXtldmVudHNCeVR5cGVOYW1lPXt9O0V2ZW50UmVnaXN0cnkuZ2V0QWxsUmVnaXN0ZXJlZFR5cGVJbmZvcygpLmZvckVhY2goZnVuY3Rpb24odHlwZUluZm8pe2V2ZW50c0J5VHlwZU5hbWVbdHlwZUluZm8ubWV0YWRhdGEubmFtZV09dHlwZUluZm87fSk7fQorcmV0dXJuIGV2ZW50c0J5VHlwZU5hbWVbdHlwZU5hbWVdO30KK0V2ZW50UmVnaXN0cnkuYWRkRXZlbnRMaXN0ZW5lcigncmVnaXN0cnktY2hhbmdlZCcsZnVuY3Rpb24oKXtldmVudHNCeVR5cGVOYW1lPXVuZGVmaW5lZDt9KTtmdW5jdGlvbiBjb252ZXJ0Q2FtZWxDYXNlVG9UaXRsZUNhc2UobmFtZSl7dmFyIHJlc3VsdD1uYW1lLnJlcGxhY2UoL1tBLVpdL2csJyAkJicpO3Jlc3VsdD1yZXN1bHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcmVzdWx0LnNsaWNlKDEpO3JldHVybiByZXN1bHQ7fQorRXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlTaW5ndWxhck5hbWU9ZnVuY3Rpb24odHlwZU5hbWUpe3ZhciB0eXBlSW5mbz1FdmVudFJlZ2lzdHJ5LmdldEV2ZW50VHlwZUluZm9CeVR5cGVOYW1lKHR5cGVOYW1lKTt2YXIgc3RyPXR5cGVJbmZvLm1ldGFkYXRhLm5hbWU7cmV0dXJuIGNvbnZlcnRDYW1lbENhc2VUb1RpdGxlQ2FzZShzdHIpO307RXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlQbHVyYWxOYW1lPWZ1bmN0aW9uKHR5cGVOYW1lKXt2YXIgdHlwZUluZm89RXZlbnRSZWdpc3RyeS5nZXRFdmVudFR5cGVJbmZvQnlUeXBlTmFtZSh0eXBlTmFtZSk7dmFyIHN0cj10eXBlSW5mby5tZXRhZGF0YS5wbHVyYWxOYW1lO3JldHVybiBjb252ZXJ0Q2FtZWxDYXNlVG9UaXRsZUNhc2Uoc3RyKTt9O3JldHVybntFdmVudFJlZ2lzdHJ5OkV2ZW50UmVnaXN0cnl9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIEV2ZW50UmVnaXN0cnk9dHIubW9kZWwuRXZlbnRSZWdpc3RyeTt2YXIgUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50PXRyLmIuRXZlbnQuYmluZCh1bmRlZmluZWQsJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLHRydWUsZmFsc2UpO2Z1bmN0aW9uIEV2ZW50U2V0KG9wdF9ldmVudHMpe3RoaXMuc3VuYnVyc3Rfem9vbV9sZXZlbD11bmRlZmluZWQ7dGhpcy5ib3VuZHNfZGlydHlfPXRydWU7dGhpcy5ib3VuZHNfPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5sZW5ndGhfPTA7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLnB1c2hlZF9ndWlkc189e307aWYob3B0X2V2ZW50cyl7aWYob3B0X2V2ZW50cyBpbnN0YW5jZW9mIEFycmF5KXtmb3IodmFyIGk9MDtpPG9wdF9ldmVudHMubGVuZ3RoO2krKykKK3RoaXMucHVzaChvcHRfZXZlbnRzW2ldKTt9ZWxzZSBpZihvcHRfZXZlbnRzIGluc3RhbmNlb2YgRXZlbnRTZXQpe3RoaXMuYWRkRXZlbnRTZXQob3B0X2V2ZW50cyk7fWVsc2V7dGhpcy5wdXNoKG9wdF9ldmVudHMpO319fQorRXZlbnRTZXQucHJvdG90eXBlPXtfX3Byb3RvX186T2JqZWN0LnByb3RvdHlwZSxnZXQgYm91bmRzKCl7aWYodGhpcy5ib3VuZHNfZGlydHlfKXt0aGlzLmJvdW5kc18ucmVzZXQoKTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoXztpKyspCit0aGlzW2ldLmFkZEJvdW5kc1RvUmFuZ2UodGhpcy5ib3VuZHNfKTt0aGlzLmJvdW5kc19kaXJ0eV89ZmFsc2U7fQorcmV0dXJuIHRoaXMuYm91bmRzXzt9LGdldCBkdXJhdGlvbigpe2lmKHRoaXMuYm91bmRzXy5pc0VtcHR5KQorcmV0dXJuIDA7cmV0dXJuIHRoaXMuYm91bmRzXy5tYXgtdGhpcy5ib3VuZHNfLm1pbjt9LGdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sZW5ndGhfO30sZ2V0IGd1aWQoKXtyZXR1cm4gdGhpcy5ndWlkXzt9LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aF87KytpKQorZGVsZXRlIHRoaXNbaV07dGhpcy5sZW5ndGhfPTA7dGhpcy5ib3VuZHNfZGlydHlfPXRydWU7fSxwdXNoOmZ1bmN0aW9uKGV2ZW50KXtpZihldmVudC5ndWlkPT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoJ0V2ZW50IG11c3QgaGF2ZSBhIEdVSUQnKTtpZih0aGlzLmNvbnRhaW5zKGV2ZW50KSkKK3JldHVybiBldmVudDt0aGlzLnB1c2hlZF9ndWlkc19bZXZlbnQuZ3VpZF09dHJ1ZTt0aGlzW3RoaXMubGVuZ3RoXysrXT1ldmVudDt0aGlzLmJvdW5kc19kaXJ0eV89dHJ1ZTtyZXR1cm4gZXZlbnQ7fSxjb250YWluczpmdW5jdGlvbihldmVudCl7cmV0dXJuIHRoaXMucHVzaGVkX2d1aWRzX1tldmVudC5ndWlkXTt9LGFkZEV2ZW50U2V0OmZ1bmN0aW9uKGV2ZW50U2V0KXtmb3IodmFyIGk9MDtpPGV2ZW50U2V0Lmxlbmd0aDtpKyspCit0aGlzLnB1c2goZXZlbnRTZXRbaV0pO30sc3ViRXZlbnRTZXQ6ZnVuY3Rpb24oaW5kZXgsY291bnQpe2NvdW50PWNvdW50fHwxO3ZhciBldmVudFNldD1uZXcgRXZlbnRTZXQoKTtldmVudFNldC5ib3VuZHNfZGlydHlfPXRydWU7aWYoaW5kZXg8MHx8aW5kZXgrY291bnQ+dGhpcy5sZW5ndGhfKQordGhyb3cgbmV3IEVycm9yKCdJbmRleCBvdXQgb2YgYm91bmRzJyk7Zm9yKHZhciBpPWluZGV4O2k8aW5kZXgrY291bnQ7aSsrKQorZXZlbnRTZXQucHVzaCh0aGlzW2ldKTtyZXR1cm4gZXZlbnRTZXQ7fSxpbnRlcnNlY3Rpb25Jc0VtcHR5OmZ1bmN0aW9uKG90aGVyRXZlbnRTZXQpe3JldHVybiF0aGlzLnNvbWUoZnVuY3Rpb24oZXZlbnQpe3JldHVybiBvdGhlckV2ZW50U2V0LmNvbnRhaW5zKGV2ZW50KTt9KTt9LGVxdWFsczpmdW5jdGlvbih0aGF0KXtpZih0aGlzLmxlbmd0aCE9PXRoYXQubGVuZ3RoKQorcmV0dXJuIGZhbHNlO2Zvcih2YXIgaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXt2YXIgZXZlbnQ9dGhpc1tpXTtpZih0aGF0LnB1c2hlZF9ndWlkc19bZXZlbnQuZ3VpZF09PT11bmRlZmluZWQpCityZXR1cm4gZmFsc2U7fQorcmV0dXJuIHRydWU7fSxnZXRFdmVudHNPcmdhbml6ZWRCeUJhc2VUeXBlOmZ1bmN0aW9uKG9wdF9wcnVuZUVtcHR5KXt2YXIgZXZlbnRzPXt9O3ZhciBhbGxUeXBlSW5mb3M9RXZlbnRSZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCk7YWxsVHlwZUluZm9zLmZvckVhY2goZnVuY3Rpb24oZXZlbnRUeXBlSW5mbyl7ZXZlbnRzW2V2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV09bmV3IEV2ZW50U2V0KCk7aWYodGhpcy5zdW5idXJzdF96b29tX2xldmVsIT09dW5kZWZpbmVkKQorZXZlbnRzW2V2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV0uc3VuYnVyc3Rfem9vbV9sZXZlbD10aGlzLnN1bmJ1cnN0X3pvb21fbGV2ZWw7fSx0aGlzKTt0aGlzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQsaSl7dmFyIG1heEV2ZW50SW5kZXg9LTE7dmFyIG1heEV2ZW50VHlwZUluZm89dW5kZWZpbmVkO2FsbFR5cGVJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50VHlwZUluZm8sZXZlbnRJbmRleCl7aWYoIShldmVudCBpbnN0YW5jZW9mIGV2ZW50VHlwZUluZm8uY29uc3RydWN0b3IpKQorcmV0dXJuO2lmKGV2ZW50SW5kZXg+bWF4RXZlbnRJbmRleCl7bWF4RXZlbnRJbmRleD1ldmVudEluZGV4O21heEV2ZW50VHlwZUluZm89ZXZlbnRUeXBlSW5mbzt9fSk7aWYobWF4RXZlbnRJbmRleD09LTEpe2NvbnNvbGUubG9nKGV2ZW50KTt0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBldmVudCB0eXBlJyk7fQorZXZlbnRzW21heEV2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV0ucHVzaChldmVudCk7fSk7aWYob3B0X3BydW5lRW1wdHkpe3ZhciBwcnVuZWRFdmVudHM9e307Zm9yKHZhciBldmVudFR5cGUgaW4gZXZlbnRzKXtpZihldmVudHNbZXZlbnRUeXBlXS5sZW5ndGg+MCkKK3BydW5lZEV2ZW50c1tldmVudFR5cGVdPWV2ZW50c1tldmVudFR5cGVdO30KK3JldHVybiBwcnVuZWRFdmVudHM7fWVsc2V7cmV0dXJuIGV2ZW50czt9fSxnZXRFdmVudHNPcmdhbml6ZWRCeVRpdGxlOmZ1bmN0aW9uKCl7dmFyIGV2ZW50c0J5VGl0bGU9e307Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspe3ZhciBldmVudD10aGlzW2ldO2lmKGV2ZW50LnRpdGxlPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdBbiBldmVudCBkaWRuXCd0IGhhdmUgYSB0aXRsZSEnKTtpZihldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXT09dW5kZWZpbmVkKXtldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXT1bXTt9CitldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXS5wdXNoKGV2ZW50KTt9CityZXR1cm4gZXZlbnRzQnlUaXRsZTt9LGVudW1FdmVudHNPZlR5cGU6ZnVuY3Rpb24odHlwZSxmdW5jKXtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoXztpKyspCitpZih0aGlzW2ldaW5zdGFuY2VvZiB0eXBlKQorZnVuYyh0aGlzW2ldKTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7aWYodGhpcy5sZW5ndGg9PT0wKXt0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IGV2ZW50IHNldCcpO30KK3ZhciBldmVudHNCeUJhc2VUeXBlPXRoaXMuZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZSh0cnVlKTt2YXIgZXZlbnRUeXBlTmFtZT10ci5iLmRpY3Rpb25hcnlLZXlzKGV2ZW50c0J5QmFzZVR5cGUpWzBdO2lmKHRoaXMubGVuZ3RoPT09MSl7dmFyIHRtcD1FdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVNpbmd1bGFyTmFtZShldmVudFR5cGVOYW1lKTtyZXR1cm4gdGhpc1swXS51c2VyRnJpZW5kbHlOYW1lO30KK3ZhciBudW1FdmVudFR5cGVzPXRyLmIuZGljdGlvbmFyeUxlbmd0aChldmVudHNCeUJhc2VUeXBlKTtpZihudW1FdmVudFR5cGVzIT09MSl7cmV0dXJuIHRoaXMubGVuZ3RoKycgZXZlbnRzIG9mIHZhcmlvdXMgdHlwZXMnO30KK3ZhciB0bXA9RXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlQbHVyYWxOYW1lKGV2ZW50VHlwZU5hbWUpO3JldHVybiB0aGlzLmxlbmd0aCsnICcrdG1wO30sZmlsdGVyOmZ1bmN0aW9uKGZuLG9wdF90aGlzKXt2YXIgcmVzPW5ldyBFdmVudFNldCgpO3RoaXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSl7aWYoZm4uY2FsbCh0aGlzLHNsaWNlKSkKK3Jlcy5wdXNoKHNsaWNlKTt9LG9wdF90aGlzKTtyZXR1cm4gcmVzO30sdG9BcnJheTpmdW5jdGlvbigpe3ZhciBhcnk9W107Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCithcnkucHVzaCh0aGlzW2ldKTtyZXR1cm4gYXJ5O30sZm9yRWFjaDpmdW5jdGlvbihmbixvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCitmbi5jYWxsKG9wdF90aGlzLHRoaXNbaV0saSk7fSxtYXA6ZnVuY3Rpb24oZm4sb3B0X3RoaXMpe3ZhciByZXM9W107Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCityZXMucHVzaChmbi5jYWxsKG9wdF90aGlzLHRoaXNbaV0saSkpO3JldHVybiByZXM7fSxldmVyeTpmdW5jdGlvbihmbixvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCitpZighZm4uY2FsbChvcHRfdGhpcyx0aGlzW2ldLGkpKQorcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlO30sc29tZTpmdW5jdGlvbihmbixvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCitpZihmbi5jYWxsKG9wdF90aGlzLHRoaXNbaV0saSkpCityZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fX07cmV0dXJue0V2ZW50U2V0OkV2ZW50U2V0LFJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudDpSZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnR9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNlbGVjdGlvblN0YXRlPXtOT05FOjAsU0VMRUNURUQ6MSxISUdITElHSFRFRDoyLERJTU1FRDozfTtyZXR1cm57U2VsZWN0aW9uU3RhdGU6U2VsZWN0aW9uU3RhdGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO2Z1bmN0aW9uIFNlbGVjdGFibGVJdGVtKG1vZGVsSXRlbSl7dGhpcy5tb2RlbEl0ZW1fPW1vZGVsSXRlbTt9CitTZWxlY3RhYmxlSXRlbS5wcm90b3R5cGU9e2dldCBtb2RlbEl0ZW0oKXtyZXR1cm4gdGhpcy5tb2RlbEl0ZW1fO30sZ2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uU3RhdGU9PT1TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDt9LGFkZFRvU2VsZWN0aW9uOmZ1bmN0aW9uKHNlbGVjdGlvbil7dmFyIG1vZGVsSXRlbT10aGlzLm1vZGVsSXRlbV87aWYoIW1vZGVsSXRlbSkKK3JldHVybjtzZWxlY3Rpb24ucHVzaChtb2RlbEl0ZW0pO30sYWRkVG9UcmFja01hcDpmdW5jdGlvbihldmVudFRvVHJhY2tNYXAsdHJhY2spe3ZhciBtb2RlbEl0ZW09dGhpcy5tb2RlbEl0ZW1fO2lmKCFtb2RlbEl0ZW0pCityZXR1cm47ZXZlbnRUb1RyYWNrTWFwLmFkZEV2ZW50KG1vZGVsSXRlbSx0cmFjayk7fX07cmV0dXJue1NlbGVjdGFibGVJdGVtOlNlbGVjdGFibGVJdGVtfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBTZWxlY3RhYmxlSXRlbT10ci5tb2RlbC5TZWxlY3RhYmxlSXRlbTt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7ZnVuY3Rpb24gRXZlbnQoKXtTZWxlY3RhYmxlSXRlbS5jYWxsKHRoaXMsdGhpcyk7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLnNlbGVjdGlvblN0YXRlPVNlbGVjdGlvblN0YXRlLk5PTkU7dGhpcy5hc3NvY2lhdGVkQWxlcnRzPW5ldyB0ci5tb2RlbC5FdmVudFNldCgpO3RoaXMuaW5mbz11bmRlZmluZWQ7fQorRXZlbnQucHJvdG90eXBlPXtfX3Byb3RvX186U2VsZWN0YWJsZUl0ZW0ucHJvdG90eXBlLGdldCBndWlkKCl7cmV0dXJuIHRoaXMuZ3VpZF87fX07cmV0dXJue0V2ZW50OkV2ZW50fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFRpbWVkRXZlbnQoc3RhcnQpe3RyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7dGhpcy5zdGFydD1zdGFydDt0aGlzLmR1cmF0aW9uPTA7dGhpcy5jcHVTdGFydD11bmRlZmluZWQ7dGhpcy5jcHVEdXJhdGlvbj11bmRlZmluZWQ7fQorVGltZWRFdmVudC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsZ2V0IGVuZCgpe3JldHVybiB0aGlzLnN0YXJ0K3RoaXMuZHVyYXRpb247fSxhZGRCb3VuZHNUb1JhbmdlOmZ1bmN0aW9uKHJhbmdlKXtyYW5nZS5hZGRWYWx1ZSh0aGlzLnN0YXJ0KTtyYW5nZS5hZGRWYWx1ZSh0aGlzLmVuZCk7fSxib3VuZHM6ZnVuY3Rpb24odGhhdCxwcmVjaXNpb25Vbml0KXtpZihwcmVjaXNpb25Vbml0PT09dW5kZWZpbmVkKXtwcmVjaXNpb25Vbml0PXRyLmIudW5pdHMuVGltZS5zdXBwb3J0ZWRVbml0cy5tczt9Cit2YXIgc3RhcnRzQmVmb3JlPXByZWNpc2lvblVuaXQucm91bmRlZExlc3ModGhhdC5zdGFydCx0aGlzLnN0YXJ0KTt2YXIgZW5kc0FmdGVyPXByZWNpc2lvblVuaXQucm91bmRlZExlc3ModGhpcy5lbmQsdGhhdC5lbmQpO3JldHVybiFzdGFydHNCZWZvcmUmJiFlbmRzQWZ0ZXI7fX07cmV0dXJue1RpbWVkRXZlbnQ6VGltZWRFdmVudH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBBbGVydChpbmZvLHN0YXJ0LG9wdF9hc3NvY2lhdGVkRXZlbnRzLG9wdF9hcmdzKXt0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcyxzdGFydCk7dGhpcy5pbmZvPWluZm87dGhpcy5hcmdzPW9wdF9hcmdzfHx7fTt0aGlzLmFzc29jaWF0ZWRFdmVudHM9bmV3IHRyLm1vZGVsLkV2ZW50U2V0KG9wdF9hc3NvY2lhdGVkRXZlbnRzKTt0aGlzLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCl7ZXZlbnQuYXNzb2NpYXRlZEFsZXJ0cy5wdXNoKHRoaXMpO30sdGhpcyk7fQorQWxlcnQucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsZ2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuaW5mby50aXRsZTt9LGdldCBjb2xvcklkKCl7cmV0dXJuIHRoaXMuaW5mby5jb2xvcklkO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nQWxlcnQgJyt0aGlzLnRpdGxlKycgYXQgJysKK3RyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnN0YXJ0KTt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKEFsZXJ0LHtuYW1lOidhbGVydCcscGx1cmFsTmFtZTonYWxlcnRzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtYWxlcnQtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLWFsZXJ0LXN1Yi12aWV3J30pO3JldHVybntBbGVydDpBbGVydH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBFdmVudENvbnRhaW5lcigpe3RoaXMuaW1wb3J0YW50PXRydWU7dGhpcy5ib3VuZHNfPW5ldyB0ci5iLlJhbmdlKCk7fQorRXZlbnRDb250YWluZXIucHJvdG90eXBlPXtnZXQgc3RhYmxlSWQoKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sZ2V0IGJvdW5kcygpe3JldHVybiB0aGlzLmJvdW5kc187fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGl0ZXJhdGVBbGxFdmVudHM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe3RoaXMuaXRlcmF0ZUFsbEV2ZW50Q29udGFpbmVycyhmdW5jdGlvbihlYyl7ZWMuaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcihmdW5jdGlvbihldmVudFR5cGUpe3JldHVybiB0cnVlO30sY2FsbGJhY2ssb3B0X3RoaXMpO30pO30saXRlcmF0ZUFsbEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7ZnVuY3Rpb24gdmlzaXQoZWMpe2NhbGxiYWNrLmNhbGwob3B0X3RoaXMsZWMpO2VjLml0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVycyh2aXNpdCk7fQordmlzaXQodGhpcyk7fX07cmV0dXJue0V2ZW50Q29udGFpbmVyOkV2ZW50Q29udGFpbmVyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBFdmVudD10ci5tb2RlbC5FdmVudDt2YXIgRXZlbnRSZWdpc3RyeT10ci5tb2RlbC5FdmVudFJlZ2lzdHJ5O2Z1bmN0aW9uIFBvd2VyU2FtcGxlKHNlcmllcyxzdGFydCxwb3dlcil7RXZlbnQuY2FsbCh0aGlzKTt0aGlzLnNlcmllc189c2VyaWVzO3RoaXMuc3RhcnRfPXN0YXJ0O3RoaXMucG93ZXJfPXBvd2VyO30KK1Bvd2VyU2FtcGxlLnByb3RvdHlwZT17X19wcm90b19fOkV2ZW50LnByb3RvdHlwZSxnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuc2VyaWVzXzt9LGdldCBzdGFydCgpe3JldHVybiB0aGlzLnN0YXJ0Xzt9LHNldCBzdGFydCh2YWx1ZSl7dGhpcy5zdGFydF89dmFsdWU7fSxnZXQgcG93ZXIoKXtyZXR1cm4gdGhpcy5wb3dlcl87fSxzZXQgcG93ZXIodmFsdWUpe3RoaXMucG93ZXJfPXZhbHVlO319O0V2ZW50UmVnaXN0cnkucmVnaXN0ZXIoUG93ZXJTYW1wbGUse25hbWU6J3Bvd2VyU2FtcGxlJyxwbHVyYWxOYW1lOidwb3dlclNhbXBsZXMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLW11bHRpLXBvd2VyLXNhbXBsZS1zdWItdmlldyd9KTtyZXR1cm57UG93ZXJTYW1wbGU6UG93ZXJTYW1wbGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFBvd2VyU2FtcGxlPXRyLm1vZGVsLlBvd2VyU2FtcGxlO2Z1bmN0aW9uIFBvd2VyU2VyaWVzKGRldmljZSl7dHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTt0aGlzLmRldmljZV89ZGV2aWNlO3RoaXMuc2FtcGxlc189W107fQorUG93ZXJTZXJpZXMucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLGdldCBkZXZpY2UoKXtyZXR1cm4gdGhpcy5kZXZpY2VfO30sZ2V0IHNhbXBsZXMoKXtyZXR1cm4gdGhpcy5zYW1wbGVzXzt9LGdldCBzdGFibGVJZCgpe3JldHVybiB0aGlzLmRldmljZV8uc3RhYmxlSWQrJy5Qb3dlclNlcmllcyc7fSxhZGRQb3dlclNhbXBsZTpmdW5jdGlvbih0cyx2YWwpe3ZhciBzYW1wbGU9bmV3IFBvd2VyU2FtcGxlKHRoaXMsdHMsdmFsKTt0aGlzLnNhbXBsZXNfLnB1c2goc2FtcGxlKTtyZXR1cm4gc2FtcGxlO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe2Zvcih2YXIgaT0wO2k8dGhpcy5zYW1wbGVzXy5sZW5ndGg7KytpKQordGhpcy5zYW1wbGVzX1tpXS5zdGFydCs9YW1vdW50O30sdXBkYXRlQm91bmRzOmZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMucmVzZXQoKTtpZih0aGlzLnNhbXBsZXNfLmxlbmd0aD09PTApCityZXR1cm47dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zYW1wbGVzX1swXS5zdGFydCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zYW1wbGVzX1t0aGlzLnNhbXBsZXNfLmxlbmd0aC0xXS5zdGFydCk7fSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsUG93ZXJTYW1wbGUpKQordGhpcy5zYW1wbGVzXy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7fX07cmV0dXJue1Bvd2VyU2VyaWVzOlBvd2VyU2VyaWVzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIERldmljZShtb2RlbCl7aWYoIW1vZGVsKQordGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSBtb2RlbC4nKTt0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpO3RoaXMuZ3VpZD10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLnBvd2VyU2VyaWVzXz11bmRlZmluZWQ7dGhpcy52U3luY1RpbWVzdGFtcHNfPVtdO307RGV2aWNlLmNvbXBhcmU9ZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5ndWlkLXkuZ3VpZDt9O0RldmljZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsY29tcGFyZVRvOmZ1bmN0aW9uKHRoYXQpe3JldHVybiBEZXZpY2UuY29tcGFyZSh0aGlzLHRoYXQpO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nRGV2aWNlJzt9LGdldCB1c2VyRnJpZW5kbHlEZXRhaWxzKCl7cmV0dXJuJ0RldmljZSc7fSxnZXQgc3RhYmxlSWQoKXtyZXR1cm4nRGV2aWNlJzt9LGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7cmV0dXJuJ2RldmljZSc7fSxnZXQgcG93ZXJTZXJpZXMoKXtyZXR1cm4gdGhpcy5wb3dlclNlcmllc187fSxzZXQgcG93ZXJTZXJpZXMocG93ZXJTZXJpZXMpe3RoaXMucG93ZXJTZXJpZXNfPXBvd2VyU2VyaWVzO30sZ2V0IHZTeW5jVGltZXN0YW1wcygpe3JldHVybiB0aGlzLnZTeW5jVGltZXN0YW1wc187fSxzZXQgdlN5bmNUaW1lc3RhbXBzKHZhbHVlKXt0aGlzLnZTeW5jVGltZXN0YW1wc189dmFsdWU7fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXt0aGlzLmJvdW5kcy5yZXNldCgpO3RoaXMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGNoaWxkKXtjaGlsZC51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZShjaGlsZC5ib3VuZHMpO30sdGhpcyk7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMoZnVuY3Rpb24oY2hpbGQpe2NoaWxkLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTt9KTtmb3IodmFyIGk9MDtpPHRoaXMudlN5bmNUaW1lc3RhbXBzXy5sZW5ndGg7aSsrKQordGhpcy52U3luY1RpbWVzdGFtcHNfW2ldKz1hbW91bnQ7fSxhZGRDYXRlZ29yaWVzVG9EaWN0OmZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KXt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7aWYodGhpcy5wb3dlclNlcmllc18pCitjYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMucG93ZXJTZXJpZXNfKTt9fTtyZXR1cm57RGV2aWNlOkRldmljZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBGbG93RXZlbnQoY2F0ZWdvcnksaWQsdGl0bGUsY29sb3JJZCxzdGFydCxhcmdzLG9wdF9kdXJhdGlvbil7dHIubW9kZWwuVGltZWRFdmVudC5jYWxsKHRoaXMsc3RhcnQpO3RoaXMuY2F0ZWdvcnk9Y2F0ZWdvcnl8fCcnO3RoaXMudGl0bGU9dGl0bGU7dGhpcy5jb2xvcklkPWNvbG9ySWQ7dGhpcy5zdGFydD1zdGFydDt0aGlzLmFyZ3M9YXJnczt0aGlzLmlkPWlkO3RoaXMuc3RhcnRTbGljZT11bmRlZmluZWQ7dGhpcy5lbmRTbGljZT11bmRlZmluZWQ7aWYob3B0X2R1cmF0aW9uIT09dW5kZWZpbmVkKQordGhpcy5kdXJhdGlvbj1vcHRfZHVyYXRpb247fQorRmxvd0V2ZW50LnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLlRpbWVkRXZlbnQucHJvdG90eXBlLGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuJ0Zsb3cgZXZlbnQgbmFtZWQgJyt0aGlzLnRpdGxlKycgYXQgJysKK3RyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnRpbWVzdGFtcCk7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihGbG93RXZlbnQse25hbWU6J2Zsb3dFdmVudCcscGx1cmFsTmFtZTonZmxvd0V2ZW50cycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci11aS1hLXNpbmdsZS1mbG93LWV2ZW50LXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItdWktYS1tdWx0aS1mbG93LWV2ZW50LXN1Yi12aWV3J30pO3JldHVybntGbG93RXZlbnQ6Rmxvd0V2ZW50fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gaWRlbnRpdHkoZCl7cmV0dXJuIGQ7fQorZnVuY3Rpb24gU3RhdGlzdGljcygpe30KK1N0YXRpc3RpY3Muc3VtPWZ1bmN0aW9uKGFyeSxvcHRfZnVuYyxvcHRfdGhpcyl7dmFyIGZ1bmM9b3B0X2Z1bmN8fGlkZW50aXR5O3ZhciByZXQ9MDtmb3IodmFyIGk9MDtpPGFyeS5sZW5ndGg7aSsrKQorcmV0Kz1mdW5jLmNhbGwob3B0X3RoaXMsYXJ5W2ldLGkpO3JldHVybiByZXQ7fTtTdGF0aXN0aWNzLm1lYW49ZnVuY3Rpb24oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKXtyZXR1cm4gU3RhdGlzdGljcy5zdW0oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKS9hcnkubGVuZ3RoO307U3RhdGlzdGljcy52YXJpYW5jZT1mdW5jdGlvbihhcnksb3B0X2Z1bmMsb3B0X3RoaXMpe3ZhciBmdW5jPW9wdF9mdW5jfHxpZGVudGl0eTt2YXIgbWVhbj1TdGF0aXN0aWNzLm1lYW4oYXJ5LGZ1bmMsb3B0X3RoaXMpO3ZhciBzdW1PZlNxdWFyZWREaXN0YW5jZXM9U3RhdGlzdGljcy5zdW0oYXJ5LGZ1bmN0aW9uKGQsaSl7dmFyIHY9ZnVuYy5jYWxsKHRoaXMsZCxpKS1tZWFuO3JldHVybiB2KnY7fSxvcHRfdGhpcyk7cmV0dXJuIHN1bU9mU3F1YXJlZERpc3RhbmNlcy8oYXJ5Lmxlbmd0aC0xKTt9O1N0YXRpc3RpY3Muc3RkZGV2PWZ1bmN0aW9uKGFyeSxvcHRfZnVuYyxvcHRfdGhpcyl7cmV0dXJuIE1hdGguc3FydChTdGF0aXN0aWNzLnZhcmlhbmNlKGFyeSxvcHRfZnVuYyxvcHRfdGhpcykpO307U3RhdGlzdGljcy5tYXg9ZnVuY3Rpb24oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKXt2YXIgZnVuYz1vcHRfZnVuY3x8aWRlbnRpdHk7dmFyIHJldD0tSW5maW5pdHk7Zm9yKHZhciBpPTA7aTxhcnkubGVuZ3RoO2krKykKK3JldD1NYXRoLm1heChyZXQsZnVuYy5jYWxsKG9wdF90aGlzLGFyeVtpXSxpKSk7cmV0dXJuIHJldDt9O1N0YXRpc3RpY3MubWluPWZ1bmN0aW9uKGFyeSxvcHRfZnVuYyxvcHRfdGhpcyl7dmFyIGZ1bmM9b3B0X2Z1bmN8fGlkZW50aXR5O3ZhciByZXQ9SW5maW5pdHk7Zm9yKHZhciBpPTA7aTxhcnkubGVuZ3RoO2krKykKK3JldD1NYXRoLm1pbihyZXQsZnVuYy5jYWxsKG9wdF90aGlzLGFyeVtpXSxpKSk7cmV0dXJuIHJldDt9O1N0YXRpc3RpY3MucmFuZ2U9ZnVuY3Rpb24oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKXt2YXIgZnVuYz1vcHRfZnVuY3x8aWRlbnRpdHk7dmFyIHJldD1uZXcgdHIuYi5SYW5nZSgpO2Zvcih2YXIgaT0wO2k8YXJ5Lmxlbmd0aDtpKyspCityZXQuYWRkVmFsdWUoZnVuYy5jYWxsKG9wdF90aGlzLGFyeVtpXSxpKSk7cmV0dXJuIHJldDt9CitTdGF0aXN0aWNzLnBlcmNlbnRpbGU9ZnVuY3Rpb24oYXJ5LHBlcmNlbnQsb3B0X2Z1bmMsb3B0X3RoaXMpe2lmKCEocGVyY2VudD49MCYmcGVyY2VudDw9MSkpCit0aHJvdyBuZXcgRXJyb3IoJ3BlcmNlbnQgbXVzdCBiZSBbMCwxXScpO3ZhciBmdW5jPW9wdF9mdW5jfHxpZGVudGl0eTt2YXIgdG1wPW5ldyBBcnJheShhcnkubGVuZ3RoKTtmb3IodmFyIGk9MDtpPGFyeS5sZW5ndGg7aSsrKQordG1wW2ldPWZ1bmMuY2FsbChvcHRfdGhpcyxhcnlbaV0saSk7dG1wLnNvcnQoKTt2YXIgaWR4PU1hdGguZmxvb3IoKGFyeS5sZW5ndGgtMSkqcGVyY2VudCk7cmV0dXJuIHRtcFtpZHhdO307cmV0dXJue1N0YXRpc3RpY3M6U3RhdGlzdGljc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgU3RhdGlzdGljcz10ci5iLlN0YXRpc3RpY3M7dmFyIEZSQU1FX1BFUkZfQ0xBU1M9e0dPT0Q6J2dvb2QnLEJBRDonYmFkJyxURVJSSUJMRTondGVycmlibGUnLE5FVVRSQUw6J2dlbmVyaWNfd29yayd9O2Z1bmN0aW9uIEZyYW1lKGFzc29jaWF0ZWRFdmVudHMsdGhyZWFkVGltZVJhbmdlcyxvcHRfYXJncyl7dHIubW9kZWwuRXZlbnQuY2FsbCh0aGlzKTt0aGlzLnRocmVhZFRpbWVSYW5nZXM9dGhyZWFkVGltZVJhbmdlczt0aGlzLmFzc29jaWF0ZWRFdmVudHM9bmV3IHRyLm1vZGVsLkV2ZW50U2V0KGFzc29jaWF0ZWRFdmVudHMpO3RoaXMuYXJncz1vcHRfYXJnc3x8e307dGhpcy50aXRsZT0nRnJhbWUnO3RoaXMuc3RhcnQ9U3RhdGlzdGljcy5taW4odGhyZWFkVGltZVJhbmdlcyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydDt9KTt0aGlzLmVuZD1TdGF0aXN0aWNzLm1heCh0aHJlYWRUaW1lUmFuZ2VzLGZ1bmN0aW9uKHgpe3JldHVybiB4LmVuZDt9KTt0aGlzLnRvdGFsRHVyYXRpb249U3RhdGlzdGljcy5zdW0odGhyZWFkVGltZVJhbmdlcyxmdW5jdGlvbih4KXtyZXR1cm4geC5lbmQteC5zdGFydDt9KTt0aGlzLnBlcmZDbGFzcz1GUkFNRV9QRVJGX0NMQVNTLk5FVVRSQUw7fTtGcmFtZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsc2V0IHBlcmZDbGFzcyhwZXJmQ2xhc3Mpe3RoaXMuY29sb3JJZD10ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUocGVyZkNsYXNzKTt0aGlzLnBlcmZDbGFzc189cGVyZkNsYXNzO30sZ2V0IHBlcmZDbGFzcygpe3JldHVybiB0aGlzLnBlcmZDbGFzc187fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5zdGFydCs9YW1vdW50O3RoaXMuZW5kKz1hbW91bnQ7Zm9yKHZhciBpPTA7aTx0aGlzLnRocmVhZFRpbWVSYW5nZXMubGVuZ3RoO2krKyl7dGhpcy50aHJlYWRUaW1lUmFuZ2VzW2ldLnN0YXJ0Kz1hbW91bnQ7dGhpcy50aHJlYWRUaW1lUmFuZ2VzW2ldLmVuZCs9YW1vdW50O319LGFkZEJvdW5kc1RvUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe3JhbmdlLmFkZFZhbHVlKHRoaXMuc3RhcnQpO3JhbmdlLmFkZFZhbHVlKHRoaXMuZW5kKTt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKEZyYW1lLHtuYW1lOidmcmFtZScscGx1cmFsTmFtZTonZnJhbWVzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtc2luZ2xlLWZyYW1lLXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItdWktYS1tdWx0aS1mcmFtZS1zdWItdmlldyd9KTtyZXR1cm57RnJhbWU6RnJhbWUsRlJBTUVfUEVSRl9DTEFTUzpGUkFNRV9QRVJGX0NMQVNTfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLGZ1bmN0aW9uKCl7dmFyIFVOSVRfUFJFRklYRVM9WycnLCdLaScsJ01pJywnR2knLCdUaSddO2Z1bmN0aW9uIFNpemVJbkJ5dGVzKG51bUJ5dGVzKXt0aGlzLm51bUJ5dGVzPW51bUJ5dGVzO307U2l6ZUluQnl0ZXMucHJvdG90eXBlPXt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBTaXplSW5CeXRlcy5mb3JtYXQodGhpcy5udW1CeXRlcyk7fX07U2l6ZUluQnl0ZXMuZm9ybWF0PWZ1bmN0aW9uKG51bUJ5dGVzKXt2YXIgc2lnblByZWZpeD0nJztpZihudW1CeXRlczwwKXtzaWduUHJlZml4PSctJztudW1CeXRlcz0tbnVtQnl0ZXM7fQordmFyIGk9MDt3aGlsZShudW1CeXRlcz49MTAyNCYmaTxVTklUX1BSRUZJWEVTLmxlbmd0aC0xKXtudW1CeXRlcy89MTAyNDtpKys7fQorcmV0dXJuIHNpZ25QcmVmaXgrbnVtQnl0ZXMudG9GaXhlZCgxKSsnICcrVU5JVF9QUkVGSVhFU1tpXSsnQic7fTtyZXR1cm57U2l6ZUluQnl0ZXM6U2l6ZUluQnl0ZXN9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQXR0cmlidXRlKHVuaXRzKXt0aGlzLnVuaXRzPXVuaXRzO3RoaXMuaW5mb3M9W107fQorQXR0cmlidXRlLmZyb21EaWN0SWZQb3NzaWJsZT1mdW5jdGlvbihkaWN0LG9wdF9tb2RlbCl7dmFyIHR5cGVJbmZvPUF0dHJpYnV0ZS5maW5kVHlwZUluZm9NYXRjaGluZyhmdW5jdGlvbih0eXBlSW5mbyl7cmV0dXJuIHR5cGVJbmZvLm1ldGFkYXRhLnR5cGU9PT1kaWN0LnR5cGU7fSk7aWYodHlwZUluZm89PT11bmRlZmluZWQpe2lmKG9wdF9tb2RlbCl7b3B0X21vZGVsLmltcG9ydFdhcm5pbmcoe3R5cGU6J2F0dHJpYnV0ZV9wYXJzZV9lcnJvcicsbWVzc2FnZTonVW5rbm93biBhdHRyaWJ1dGUgdHlwZSBcJycrZGljdC50eXBlKydcJy4nfSk7fQorcmV0dXJuIFVua25vd25BdHRyaWJ1dGUuZnJvbURpY3QoZGljdCxvcHRfbW9kZWwpO30KK3JldHVybiB0eXBlSW5mby5jb25zdHJ1Y3Rvci5mcm9tRGljdChkaWN0LG9wdF9tb2RlbCk7fTtBdHRyaWJ1dGUuZmluZENvbW1vblRyYWl0cz1mdW5jdGlvbihhdHRyaWJ1dGVzLG9wdF9tb2RlbCl7dmFyIGNvbW1vblRyYWl0cztmb3IodmFyIGk9MDtpPGF0dHJpYnV0ZXMubGVuZ3RoO2krKyl7dmFyIGF0dHJpYnV0ZT1hdHRyaWJ1dGVzW2ldO2lmKGF0dHJpYnV0ZT09PXVuZGVmaW5lZCkKK2NvbnRpbnVlO3ZhciBhdHRyaWJ1dGVDb25zdHJ1Y3Rvcj1hdHRyaWJ1dGUuY29uc3RydWN0b3I7dmFyIGF0dHJpYnV0ZVVuaXRzPWF0dHJpYnV0ZS51bml0cztpZihjb21tb25UcmFpdHM9PT11bmRlZmluZWQpe2NvbW1vblRyYWl0cz17Y29uc3RydWN0b3I6YXR0cmlidXRlQ29uc3RydWN0b3IsdW5pdHM6YXR0cmlidXRlVW5pdHN9O31lbHNlIGlmKGF0dHJpYnV0ZUNvbnN0cnVjdG9yIT09Y29tbW9uVHJhaXRzLmNvbnN0cnVjdG9yKXtpZihvcHRfbW9kZWwpe29wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHt0eXBlOidhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLG1lc3NhZ2U6J0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB0eXBlczogJysKK2NvbW1vblRyYWl0cy5jb25zdHJ1Y3RvcisnIGFuZCAnK2F0dHJpYnV0ZUNvbnN0cnVjdG9yKycuJ30pO30KK2NvbW1vblRyYWl0cz17Y29uc3RydWN0b3I6VW5rbm93bkF0dHJpYnV0ZSx1bml0czp1bmRlZmluZWR9O2JyZWFrO31lbHNlIGlmKGF0dHJpYnV0ZVVuaXRzIT09Y29tbW9uVHJhaXRzLnVuaXRzKXtpZihvcHRfbW9kZWwpe29wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHt0eXBlOidhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLG1lc3NhZ2U6J0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB1bml0czogJytjb21tb25UcmFpdHMudW5pdHMrJyBhbmQgJythdHRyaWJ1dGVVbml0cysnLid9KTt9Citjb21tb25UcmFpdHM9e2NvbnN0cnVjdG9yOlVua25vd25BdHRyaWJ1dGUsdW5pdHM6dW5kZWZpbmVkfTticmVhazt9fQorcmV0dXJuIGNvbW1vblRyYWl0czt9O0F0dHJpYnV0ZS5hZ2dyZWdhdGU9ZnVuY3Rpb24oY2hpbGRBdHRyaWJ1dGVzLGV4aXN0aW5nUGFyZW50QXR0cmlidXRlLG9wdF9tb2RlbCl7dmFyIGRlZmluZWRDaGlsZEF0dHJpYnV0ZXM9Y2hpbGRBdHRyaWJ1dGVzLmZpbHRlcihmdW5jdGlvbihjaGlsZEF0dHJpYnV0ZSl7cmV0dXJuIGNoaWxkQXR0cmlidXRlIT09dW5kZWZpbmVkO30pO3ZhciB0cmFpdHM9QXR0cmlidXRlLmZpbmRDb21tb25UcmFpdHMoZGVmaW5lZENoaWxkQXR0cmlidXRlcyxvcHRfbW9kZWwpO2lmKHRyYWl0cz09PXVuZGVmaW5lZCkKK3JldHVybiBleGlzdGluZ1BhcmVudEF0dHJpYnV0ZTt2YXIgY29uc3RydWN0b3I9dHJhaXRzLmNvbnN0cnVjdG9yO2lmKGNvbnN0cnVjdG9yLm1lcmdlPT09dW5kZWZpbmVkKQorcmV0dXJuIGV4aXN0aW5nUGFyZW50QXR0cmlidXRlO3ZhciBtZXJnZWRBdHRyaWJ1dGU9Y29uc3RydWN0b3IubWVyZ2UoZGVmaW5lZENoaWxkQXR0cmlidXRlcyx0cmFpdHMudW5pdHMsb3B0X21vZGVsKTtpZihleGlzdGluZ1BhcmVudEF0dHJpYnV0ZT09PXVuZGVmaW5lZCkKK3JldHVybiBtZXJnZWRBdHRyaWJ1dGU7ZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGUudXNlTWVyZ2VkQXR0cmlidXRlKG1lcmdlZEF0dHJpYnV0ZSxvcHRfbW9kZWwpO3JldHVybiBleGlzdGluZ1BhcmVudEF0dHJpYnV0ZTt9CitBdHRyaWJ1dGUuZnJvbVRyYWNlVmFsdWU9ZnVuY3Rpb24oZGljdCxvcHRfbW9kZWwpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fTtBdHRyaWJ1dGUucHJvdG90eXBlLnVzZU1lcmdlZEF0dHJpYnV0ZT1mdW5jdGlvbihtZXJnZWRBdHRyaWJ1dGUsb3B0X21vZGVsKXtpZihtZXJnZWRBdHRyaWJ1dGUuY29uc3RydWN0b3IhPT10aGlzLmNvbnN0cnVjdG9yKXtpZihvcHRfbW9kZWwpe29wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHt0eXBlOidhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLG1lc3NhZ2U6J0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB0eXBlczogJyt0aGlzLmNvbnN0cnVjdG9yKycgYW5kICcrbWVyZ2VkQXR0cmlidXRlLmNvbnN0cnVjdG9yKycuJ30pO319ZWxzZSBpZihtZXJnZWRBdHRyaWJ1dGUudW5pdHMhPT10aGlzLnVuaXRzKXtpZihvcHRfbW9kZWwpe29wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHt0eXBlOidhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLG1lc3NhZ2U6J0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB1bml0czogJyt0aGlzLnVuaXRzKycgYW5kICcrbWVyZ2VkQXR0cmlidXRlLnVuaXRzKycuJ30pO319fTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoQXR0cmlidXRlLG9wdGlvbnMpO0F0dHJpYnV0ZS5hZGRFdmVudExpc3RlbmVyKCd3aWxsLXJlZ2lzdGVyJyxmdW5jdGlvbihlKXtpZighZS50eXBlSW5mby5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eSgnZnJvbURpY3QnKSkKK3Rocm93IG5ldyBFcnJvcignQXR0cmlidXRlcyBtdXN0IGhhdmUgZnJvbURpY3QgbWV0aG9kJyk7aWYoIWUudHlwZUluZm8ubWV0YWRhdGEudHlwZSkKK3Rocm93IG5ldyBFcnJvcignQXR0cmlidXRlcyBtdXN0IHByb3ZpZGUgdHlwZScpO2lmKGUudHlwZUluZm8uY29uc3RydWN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yIT09ZS50eXBlSW5mby5jb25zdHJ1Y3RvcikKK3Rocm93IG5ldyBFcnJvcignQXR0cmlidXRlIHByb3RvdHlwZXMgbXVzdCBwcm92aWRlIGNvbnN0cnVjdG9yLicpO30pO2Z1bmN0aW9uIFNjYWxhckF0dHJpYnV0ZSh1bml0cyx2YWx1ZSl7QXR0cmlidXRlLmNhbGwodGhpcyx1bml0cyk7dGhpcy52YWx1ZT12YWx1ZTt9CitTY2FsYXJBdHRyaWJ1dGUuZnJvbURpY3Q9ZnVuY3Rpb24oZGljdCl7cmV0dXJuIG5ldyBTY2FsYXJBdHRyaWJ1dGUoZGljdC51bml0cyxwYXJzZUludChkaWN0LnZhbHVlLDE2KSk7fTtTY2FsYXJBdHRyaWJ1dGUubWVyZ2U9ZnVuY3Rpb24oY2hpbGRBdHRyaWJ1dGVzLHVuaXRzKXt2YXIgc3VtPTA7Y2hpbGRBdHRyaWJ1dGVzLmZvckVhY2goZnVuY3Rpb24oY2hpbGRBdHRyaWJ1dGUpe3N1bSs9Y2hpbGRBdHRyaWJ1dGUudmFsdWU7fSk7cmV0dXJuIG5ldyBTY2FsYXJBdHRyaWJ1dGUodW5pdHMsc3VtKTt9CitTY2FsYXJBdHRyaWJ1dGUucHJvdG90eXBlLl9fcHJvdG9fXz1BdHRyaWJ1dGUucHJvdG90eXBlO0F0dHJpYnV0ZS5yZWdpc3RlcihTY2FsYXJBdHRyaWJ1dGUse3R5cGU6J3NjYWxhcid9KTtmdW5jdGlvbiBTdHJpbmdBdHRyaWJ1dGUodW5pdHMsdmFsdWUpe0F0dHJpYnV0ZS5jYWxsKHRoaXMsdW5pdHMpO3RoaXMudmFsdWU9dmFsdWU7fQorU3RyaW5nQXR0cmlidXRlLmZyb21EaWN0PWZ1bmN0aW9uKGRpY3Qpe3JldHVybiBuZXcgU3RyaW5nQXR0cmlidXRlKGRpY3QudW5pdHMsZGljdC52YWx1ZSk7fTtBdHRyaWJ1dGUucmVnaXN0ZXIoU3RyaW5nQXR0cmlidXRlLHt0eXBlOidzdHJpbmcnfSk7ZnVuY3Rpb24gVW5rbm93bkF0dHJpYnV0ZSh1bml0cyxvcHRfdmFsdWUpe0F0dHJpYnV0ZS5jYWxsKHRoaXMsdW5pdHMsb3B0X3ZhbHVlKTt0aGlzLnZhbHVlPW9wdF92YWx1ZTt9CitVbmtub3duQXR0cmlidXRlLmZyb21EaWN0PWZ1bmN0aW9uKGRpY3Qpe3JldHVybiBuZXcgVW5rbm93bkF0dHJpYnV0ZShkaWN0LnVuaXRzKTt9O1Vua25vd25BdHRyaWJ1dGUucHJvdG90eXBlLl9fcHJvdG9fXz1BdHRyaWJ1dGUucHJvdG90eXBlO2Z1bmN0aW9uIEF0dHJpYnV0ZUluZm8odHlwZSxtZXNzYWdlKXt0aGlzLnR5cGU9dHlwZTt0aGlzLm1lc3NhZ2U9bWVzc2FnZTt9Cit2YXIgQXR0cmlidXRlSW5mb1R5cGU9e0lORk9STUFUSU9OOjAsV0FSTklORzoxLExJTks6MixNRU1PUllfT1dORVI6MyxNRU1PUllfT1dORUQ6NH07cmV0dXJue0F0dHJpYnV0ZTpBdHRyaWJ1dGUsU2NhbGFyQXR0cmlidXRlOlNjYWxhckF0dHJpYnV0ZSxTdHJpbmdBdHRyaWJ1dGU6U3RyaW5nQXR0cmlidXRlLFVua25vd25BdHRyaWJ1dGU6VW5rbm93bkF0dHJpYnV0ZSxBdHRyaWJ1dGVJbmZvOkF0dHJpYnV0ZUluZm8sQXR0cmlidXRlSW5mb1R5cGU6QXR0cmlidXRlSW5mb1R5cGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQ29udGFpbmVyTWVtb3J5RHVtcChzdGFydCl7dHIubW9kZWwuVGltZWRFdmVudC5jYWxsKHRoaXMsc3RhcnQpO3RoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNfPXVuZGVmaW5lZDt0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV89dW5kZWZpbmVkO307Q29udGFpbmVyTWVtb3J5RHVtcC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5zdGFydCs9YW1vdW50O30sZ2V0IG1lbW9yeUFsbG9jYXRvckR1bXBzKCl7cmV0dXJuIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNfO30sc2V0IG1lbW9yeUFsbG9jYXRvckR1bXBzKG1lbW9yeUFsbG9jYXRvckR1bXBzKXt0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXz1tZW1vcnlBbGxvY2F0b3JEdW1wczt0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV89dW5kZWZpbmVkO30sZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWU6ZnVuY3Rpb24oZnVsbE5hbWUpe2lmKHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNfPT09dW5kZWZpbmVkKQorcmV0dXJuIHVuZGVmaW5lZDtpZih0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV89PT11bmRlZmluZWQpe3ZhciBpbmRleD17fTtmdW5jdGlvbiBhZGREdW1wc1RvSW5kZXgoZHVtcHMpe2R1bXBzLmZvckVhY2goZnVuY3Rpb24oZHVtcCl7aW5kZXhbZHVtcC5mdWxsTmFtZV09ZHVtcDthZGREdW1wc1RvSW5kZXgoZHVtcC5jaGlsZHJlbik7fSk7fTthZGREdW1wc1RvSW5kZXgodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc18pO3RoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lXz1pbmRleDt9CityZXR1cm4gdGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWVfW2Z1bGxOYW1lXTt9fTtyZXR1cm57Q29udGFpbmVyTWVtb3J5RHVtcDpDb250YWluZXJNZW1vcnlEdW1wfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIE1lbW9yeUFsbG9jYXRvckR1bXAoY29udGFpbmVyTWVtb3J5RHVtcCxmdWxsTmFtZSxvcHRfZ3VpZCl7dGhpcy5mdWxsTmFtZT1mdWxsTmFtZTt0aGlzLnBhcmVudD11bmRlZmluZWQ7dGhpcy5jaGlsZHJlbj1bXTt0aGlzLmF0dHJpYnV0ZXM9e307dGhpcy5jb250YWluZXJNZW1vcnlEdW1wPWNvbnRhaW5lck1lbW9yeUR1bXA7dGhpcy5vd25zPXVuZGVmaW5lZDt0aGlzLm93bmVkQnk9W107dGhpcy5yZXRhaW5zPVtdO3RoaXMucmV0YWluZWRCeT1bXTt0aGlzLmd1aWQ9b3B0X2d1aWQ7fTtNZW1vcnlBbGxvY2F0b3JEdW1wLnByb3RvdHlwZT17Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5mdWxsTmFtZS5zdWJzdHJpbmcodGhpcy5mdWxsTmFtZS5sYXN0SW5kZXhPZignLycpKzEpO30sZ2V0IHF1YW50aWZpZWROYW1lKCl7cmV0dXJuJ1wnJyt0aGlzLmZ1bGxOYW1lKydcJyBpbiAnKwordGhpcy5jb250YWluZXJNZW1vcnlEdW1wLmNvbnRhaW5lck5hbWU7fSxpc0Rlc2NlbmRhbnRPZjpmdW5jdGlvbihvdGhlckR1bXApe3ZhciBkdW1wPXRoaXM7d2hpbGUoZHVtcCE9PXVuZGVmaW5lZCl7aWYoZHVtcD09PW90aGVyRHVtcCkKK3JldHVybiB0cnVlO2R1bXA9ZHVtcC5wYXJlbnQ7fQorcmV0dXJuIGZhbHNlO30sYWRkQXR0cmlidXRlOmZ1bmN0aW9uKG5hbWUsdmFsdWUpe2lmKG5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKQordGhyb3cgbmV3IEVycm9yKCdEdXBsaWNhdGUgYXR0cmlidXRlIG5hbWU6ICcrbmFtZSsnLicpO3RoaXMuYXR0cmlidXRlc1tuYW1lXT12YWx1ZTt9LGFnZ3JlZ2F0ZUF0dHJpYnV0ZXM6ZnVuY3Rpb24ob3B0X21vZGVsKXt2YXIgYXR0cmlidXRlcz17fTt0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGQpe2NoaWxkLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXMob3B0X21vZGVsKTt0ci5iLml0ZXJJdGVtcyhjaGlsZC5hdHRyaWJ1dGVzLGZ1bmN0aW9uKG5hbWUpe2F0dHJpYnV0ZXNbbmFtZV09dHJ1ZTt9LHRoaXMpO30sdGhpcyk7dHIuYi5pdGVySXRlbXMoYXR0cmlidXRlcyxmdW5jdGlvbihuYW1lKXt2YXIgY2hpbGRBdHRyaWJ1dGVzPXRoaXMuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKGNoaWxkKXtyZXR1cm4gY2hpbGQuYXR0cmlidXRlc1tuYW1lXTt9LHRoaXMpO3ZhciBjdXJyZW50QXR0cmlidXRlPXRoaXMuYXR0cmlidXRlc1tuYW1lXTt0aGlzLmF0dHJpYnV0ZXNbbmFtZV09dHIubW9kZWwuQXR0cmlidXRlLmFnZ3JlZ2F0ZShjaGlsZEF0dHJpYnV0ZXMsY3VycmVudEF0dHJpYnV0ZSxvcHRfbW9kZWwpO30sdGhpcyk7fSxnZXRWYWxpZFNpemVBdHRyaWJ1dGVPclVuZGVmaW5lZDpmdW5jdGlvbihzaXplQXR0ck5hbWUsb3B0X21vZGVsKXt2YXIgc2l6ZUF0dHI9dGhpcy5hdHRyaWJ1dGVzW3NpemVBdHRyTmFtZV07aWYoc2l6ZUF0dHI9PT11bmRlZmluZWQpCityZXR1cm4gdW5kZWZpbmVkO2lmKCEoc2l6ZUF0dHIgaW5zdGFuY2VvZiB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUpKXtpZihvcHRfbW9kZWwhPT11bmRlZmluZWQpe29wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHt0eXBlOidtZW1vcnlfZHVtcF9wYXJzZV9lcnJvcicsbWVzc2FnZTonXCcnK3NpemVBdHRyTmFtZSsnXCcgYXR0cmlidXRlIG9mIG1lbW9yeSBhbGxvY2F0b3IgJysnZHVtcCBcJycrbWVtb3J5QWxsb2NhdG9yRHVtcC5mdWxsTmFtZSsnXCcgaXMgbm90IGEgc2NhbGFyLid9KTt9CityZXR1cm4gdW5kZWZpbmVkO30KK3JldHVybiBzaXplQXR0cjt9fTtmdW5jdGlvbiBNZW1vcnlBbGxvY2F0b3JEdW1wTGluayhzb3VyY2UsdGFyZ2V0LG9wdF9pbXBvcnRhbmNlKXt0aGlzLnNvdXJjZT1zb3VyY2U7dGhpcy50YXJnZXQ9dGFyZ2V0O3RoaXMuaW1wb3J0YW5jZT1vcHRfaW1wb3J0YW5jZTt9CityZXR1cm57TWVtb3J5QWxsb2NhdG9yRHVtcDpNZW1vcnlBbGxvY2F0b3JEdW1wLE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rOk1lbW9yeUFsbG9jYXRvckR1bXBMaW5rfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsc3RhcnQpe3RyLm1vZGVsLkNvbnRhaW5lck1lbW9yeUR1bXAuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLm1vZGVsPW1vZGVsO3RoaXMucHJvY2Vzc01lbW9yeUR1bXBzPXt9O30KK3ZhciBTSVpFX0FUVFJJQlVURV9OQU1FPSdzaXplJzt2YXIgRUZGRUNUSVZFX1NJWkVfQVRUUklCVVRFX05BTUU9J2VmZmVjdGl2ZV9zaXplJztmdW5jdGlvbiBnZXRTaXplKGR1bXApe3ZhciBhdHRyPWR1bXAuYXR0cmlidXRlc1tTSVpFX0FUVFJJQlVURV9OQU1FXTtpZihhdHRyPT09dW5kZWZpbmVkKQorcmV0dXJuIDA7cmV0dXJuIGF0dHIudmFsdWU7fQorZnVuY3Rpb24gaGFzU2l6ZShkdW1wKXtyZXR1cm4gZHVtcC5hdHRyaWJ1dGVzW1NJWkVfQVRUUklCVVRFX05BTUVdIT09dW5kZWZpbmVkO30KK2Z1bmN0aW9uIG9wdGlvbmFsKHZhbHVlLGRlZmF1bHRWYWx1ZSl7aWYodmFsdWU9PT11bmRlZmluZWQpCityZXR1cm4gZGVmYXVsdFZhbHVlO3JldHVybiB2YWx1ZTt9CitmdW5jdGlvbiBvd25lcnNoaXBUb1VzZXJGcmllbmRseVN0cmluZyhkdW1wLGltcG9ydGFuY2Upe3JldHVybiBkdW1wLnF1YW50aWZpZWROYW1lKycgKHNoYXJpbmcgaW1wb3J0YW5jZSAnKworb3B0aW9uYWwoaW1wb3J0YW5jZSwwKSsnKSc7fQorR2xvYmFsTWVtb3J5RHVtcC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLnByb3RvdHlwZSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidHbG9iYWwgbWVtb3J5IGR1bXAgYXQgJyt0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQodGhpcy5zdGFydCk7fSxnZXQgY29udGFpbmVyTmFtZSgpe3JldHVybidnbG9iYWwgc3BhY2UnO30sY2FsY3VsYXRlR3JhcGhBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7dGhpcy5jYWxjdWxhdGVTaXplcygpO3RoaXMuY2FsY3VsYXRlRWZmZWN0aXZlU2l6ZXMoKTt0aGlzLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXMoKTt0aGlzLmRpc2NvdW50VHJhY2luZ092ZXJoZWFkKCk7fSxjYWxjdWxhdGVTaXplczpmdW5jdGlvbigpe3RoaXMudHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdFBvc3RPcmRlcih0aGlzLmNhbGN1bGF0ZU1lbW9yeUFsbG9jYXRvckR1bXBTaXplXy5iaW5kKHRoaXMpKTt9LGNhbGN1bGF0ZU1lbW9yeUFsbG9jYXRvckR1bXBTaXplXzpmdW5jdGlvbihkdW1wKXt2YXIgc2hvdWxkRGVmaW5lU2l6ZT1mYWxzZTtmdW5jdGlvbiBnZXREZXBlbmRlbmN5U2l6ZShkZXBlbmRlbmN5RHVtcCl7dmFyIGF0dHI9ZGVwZW5kZW5jeUR1bXAuYXR0cmlidXRlc1tTSVpFX0FUVFJJQlVURV9OQU1FXTtpZihhdHRyPT09dW5kZWZpbmVkKQorcmV0dXJuIDA7c2hvdWxkRGVmaW5lU2l6ZT10cnVlO3JldHVybiBhdHRyLnZhbHVlO30KK3ZhciBzaXplQXR0cmlidXRlPWR1bXAuZ2V0VmFsaWRTaXplQXR0cmlidXRlT3JVbmRlZmluZWQoU0laRV9BVFRSSUJVVEVfTkFNRSx0aGlzLm1vZGVsKTt2YXIgc2l6ZT0wO3ZhciBpbmZvcz1bXTt2YXIgY2hlY2tEZXBlbmRlbnRTaXplSXNDb25zaXN0ZW50PWZ1bmN0aW9uKCl7fTtpZihzaXplQXR0cmlidXRlIT09dW5kZWZpbmVkKXtzaXplPXNpemVBdHRyaWJ1dGUudmFsdWU7c2hvdWxkRGVmaW5lU2l6ZT10cnVlO2NoZWNrRGVwZW5kZW50U2l6ZUlzQ29uc2lzdGVudD1mdW5jdGlvbihkZXBlbmRlbnRTaXplLGRlcGVuZGVudE5hbWUpe2lmKHNpemU+PWRlcGVuZGVudFNpemUpCityZXR1cm47dmFyIG1lc3NhZ2VTdWZmaXg9JyAoJyt0ci5iLnVuaXRzLlNpemVJbkJ5dGVzLmZvcm1hdChzaXplKSsnKSBpcyBsZXNzIHRoYW4gJytkZXBlbmRlbnROYW1lKycgKCcrCit0ci5iLnVuaXRzLlNpemVJbkJ5dGVzLmZvcm1hdChkZXBlbmRlbnRTaXplKSsnKS4nO3RoaXMubW9kZWwuaW1wb3J0V2FybmluZyh7dHlwZTonbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLG1lc3NhZ2U6J1NpemUgcHJvdmlkZWQgYnkgbWVtb3J5IGFsbG9jYXRvciBkdW1wIFwnJysKK2R1bXAuZnVsbE5hbWUrJ1wnJyttZXNzYWdlU3VmZml4fSk7aW5mb3MucHVzaChuZXcgdHIubW9kZWwuQXR0cmlidXRlSW5mbyh0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvVHlwZS5XQVJOSU5HLCdTaXplIHByb3ZpZGVkIGJ5IHRoaXMgbWVtb3J5IGFsbG9jYXRvciBkdW1wJyttZXNzYWdlU3VmZml4KSk7fS5iaW5kKHRoaXMpO30KK3ZhciBhZ2dyZWdhdGVkQ2hpbGRyZW5TaXplPTA7dmFyIGFsbE92ZXJsYXBzPXt9O2R1bXAuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihjaGlsZER1bXApe2Z1bmN0aW9uIGFnZ3JlZ2F0ZURlc2NlbmRhbnREdW1wKGRlc2NlbmRhbnREdW1wKXt2YXIgb3duZWREdW1wTGluaz1kZXNjZW5kYW50RHVtcC5vd25zO2lmKG93bmVkRHVtcExpbmshPT11bmRlZmluZWQmJm93bmVkRHVtcExpbmsudGFyZ2V0LmlzRGVzY2VuZGFudE9mKGR1bXApKXt2YXIgb3duZWREZXNjZW5kYW50RHVtcD1vd25lZER1bXBMaW5rLnRhcmdldDt2YXIgb3duZWRDaGlsZER1bXA9b3duZWREZXNjZW5kYW50RHVtcDt3aGlsZShvd25lZENoaWxkRHVtcC5wYXJlbnQhPT1kdW1wKQorb3duZWRDaGlsZER1bXA9b3duZWRDaGlsZER1bXAucGFyZW50O2lmKGNoaWxkRHVtcCE9PW93bmVkQ2hpbGREdW1wKXt2YXIgb3ZlcmxhcD1nZXREZXBlbmRlbmN5U2l6ZShkZXNjZW5kYW50RHVtcCk7aWYob3ZlcmxhcD4wKXt2YXIgb3duZWRDaGlsZE92ZXJsYXBzPWFsbE92ZXJsYXBzW293bmVkQ2hpbGREdW1wLm5hbWVdO2lmKG93bmVkQ2hpbGRPdmVybGFwcz09PXVuZGVmaW5lZCkKK2FsbE92ZXJsYXBzW293bmVkQ2hpbGREdW1wLm5hbWVdPW93bmVkQ2hpbGRPdmVybGFwcz17fTt2YXIgcHJldmlvdXNUb3RhbE92ZXJsYXA9b3duZWRDaGlsZE92ZXJsYXBzW2NoaWxkRHVtcC5uYW1lXXx8MDt2YXIgdXBkYXRlZFRvdGFsT3ZlcmxhcD1wcmV2aW91c1RvdGFsT3ZlcmxhcCtvdmVybGFwO293bmVkQ2hpbGRPdmVybGFwc1tjaGlsZER1bXAubmFtZV09dXBkYXRlZFRvdGFsT3ZlcmxhcDt9fQorcmV0dXJuO30KK2lmKGRlc2NlbmRhbnREdW1wLmNoaWxkcmVuLmxlbmd0aD09PTApe2FnZ3JlZ2F0ZWRDaGlsZHJlblNpemUrPWdldERlcGVuZGVuY3lTaXplKGRlc2NlbmRhbnREdW1wKTtyZXR1cm47fQorZGVzY2VuZGFudER1bXAuY2hpbGRyZW4uZm9yRWFjaChhZ2dyZWdhdGVEZXNjZW5kYW50RHVtcCk7fQorYWdncmVnYXRlRGVzY2VuZGFudER1bXAoY2hpbGREdW1wKTt9KTtkdW1wLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGREdW1wKXt2YXIgY2hpbGRPdmVybGFwcz1hbGxPdmVybGFwc1tjaGlsZER1bXAubmFtZV07aWYoY2hpbGRPdmVybGFwcz09PXVuZGVmaW5lZCkKK3JldHVybjt2YXIgbWVzc2FnZT10ci5iLmRpY3Rpb25hcnlWYWx1ZXModHIuYi5tYXBJdGVtcyhjaGlsZE92ZXJsYXBzLGZ1bmN0aW9uKG93bmVyQ2hpbGROYW1lLG92ZXJsYXApe3JldHVybidUaGlzIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBvdmVybGFwcyB3aXRoIGl0cyBzaWJsaW5nIFwnJysKK293bmVyQ2hpbGROYW1lKydcJyAoJysKK3RyLmIudW5pdHMuU2l6ZUluQnl0ZXMuZm9ybWF0KG92ZXJsYXApKycpLic7fSkpLmpvaW4oJyAnKTtjaGlsZER1bXAuYXR0cmlidXRlc1tTSVpFX0FUVFJJQlVURV9OQU1FXS5pbmZvcy5wdXNoKG5ldyB0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvKHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLklORk9STUFUSU9OLG1lc3NhZ2UpKTt9KTtjaGVja0RlcGVuZGVudFNpemVJc0NvbnNpc3RlbnQoYWdncmVnYXRlZENoaWxkcmVuU2l6ZSwndGhlIGFnZ3JlZ2F0ZWQgc2l6ZSBvZiBpdHMgY2hpbGRyZW4nKTt2YXIgbGFyZ2VzdE93bmVyU2l6ZT0wO2R1bXAub3duZWRCeS5mb3JFYWNoKGZ1bmN0aW9uKG93bmVyc2hpcExpbmspe3ZhciBvd25lcj1vd25lcnNoaXBMaW5rLnNvdXJjZTt2YXIgb3duZXJTaXplPWdldERlcGVuZGVuY3lTaXplKG93bmVyKTtsYXJnZXN0T3duZXJTaXplPU1hdGgubWF4KGxhcmdlc3RPd25lclNpemUsb3duZXJTaXplKTt9KTtjaGVja0RlcGVuZGVudFNpemVJc0NvbnNpc3RlbnQobGFyZ2VzdE93bmVyU2l6ZSwndGhlIHNpemUgb2YgaXRzIGxhcmdlc3Qgb3duZXInKTtpZighc2hvdWxkRGVmaW5lU2l6ZSl7ZHVtcC5hdHRyaWJ1dGVzW1NJWkVfQVRUUklCVVRFX05BTUVdPXVuZGVmaW5lZDtyZXR1cm47fQorc2l6ZT1NYXRoLm1heChzaXplLGFnZ3JlZ2F0ZWRDaGlsZHJlblNpemUsbGFyZ2VzdE93bmVyU2l6ZSk7dmFyIHNpemVBdHRyaWJ1dGU9bmV3IHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLHNpemUpO3NpemVBdHRyaWJ1dGUuaW5mb3M9aW5mb3M7ZHVtcC5hdHRyaWJ1dGVzW1NJWkVfQVRUUklCVVRFX05BTUVdPXNpemVBdHRyaWJ1dGU7aWYoYWdncmVnYXRlZENoaWxkcmVuU2l6ZTxzaXplJiZkdW1wLmNoaWxkcmVuIT09dW5kZWZpbmVkJiZkdW1wLmNoaWxkcmVuLmxlbmd0aD4wKXt2YXIgdmlydHVhbENoaWxkPW5ldyB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wKGR1bXAuY29udGFpbmVyTWVtb3J5RHVtcCxkdW1wLmZ1bGxOYW1lKycvPHVuc3BlY2lmaWVkPicpO3ZpcnR1YWxDaGlsZC5wYXJlbnQ9ZHVtcDtkdW1wLmNoaWxkcmVuLnVuc2hpZnQodmlydHVhbENoaWxkKTt2aXJ0dWFsQ2hpbGQuYXR0cmlidXRlc1tTSVpFX0FUVFJJQlVURV9OQU1FXT1uZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsc2l6ZS1hZ2dyZWdhdGVkQ2hpbGRyZW5TaXplKTt9fSxjYWxjdWxhdGVFZmZlY3RpdmVTaXplczpmdW5jdGlvbigpe3RoaXMudHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdFBvc3RPcmRlcih0aGlzLmNhbGN1bGF0ZUR1bXBTdWJTaXplc18uYmluZCh0aGlzKSk7dGhpcy50cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0UG9zdE9yZGVyKHRoaXMuY2FsY3VsYXRlRHVtcE93bmVyc2hpcENvZWZmaWNpZW50Xy5iaW5kKHRoaXMpKTt0aGlzLnRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQcmVPcmRlcih0aGlzLmNhbGN1bGF0ZUR1bXBDdW11bGF0aXZlT3duZXJzaGlwQ29lZmZpY2llbnRfLmJpbmQodGhpcykpO3RoaXMudHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdFBvc3RPcmRlcih0aGlzLmNhbGN1bGF0ZUR1bXBFZmZlY3RpdmVTaXplXy5iaW5kKHRoaXMpKTt9LGNhbGN1bGF0ZUR1bXBTdWJTaXplc186ZnVuY3Rpb24oZHVtcCl7aWYoIWhhc1NpemUoZHVtcCkpCityZXR1cm47aWYoZHVtcC5jaGlsZHJlbj09PXVuZGVmaW5lZHx8ZHVtcC5jaGlsZHJlbi5sZW5ndGg9PT0wKXt2YXIgc2l6ZT1nZXRTaXplKGR1bXApO2R1bXAubm90T3duaW5nU3ViU2l6ZV89c2l6ZTtkdW1wLm5vdE93bmVkU3ViU2l6ZV89c2l6ZTtyZXR1cm47fQordmFyIG5vdE93bmluZ1N1YlNpemU9MDtkdW1wLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGREdW1wKXtpZihjaGlsZER1bXAub3ducyE9PXVuZGVmaW5lZCkKK3JldHVybjtub3RPd25pbmdTdWJTaXplKz1vcHRpb25hbChjaGlsZER1bXAubm90T3duaW5nU3ViU2l6ZV8sMCk7fSk7ZHVtcC5ub3RPd25pbmdTdWJTaXplXz1ub3RPd25pbmdTdWJTaXplO3ZhciBub3RPd25lZFN1YlNpemU9MDtkdW1wLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGREdW1wKXtpZihjaGlsZER1bXAub3duZWRCeS5sZW5ndGg9PT0wKXtub3RPd25lZFN1YlNpemUrPW9wdGlvbmFsKGNoaWxkRHVtcC5ub3RPd25lZFN1YlNpemVfLDApO3JldHVybjt9Cit2YXIgbGFyZ2VzdENoaWxkT3duZXJTaXplPTA7Y2hpbGREdW1wLm93bmVkQnkuZm9yRWFjaChmdW5jdGlvbihvd25lcnNoaXBMaW5rKXtsYXJnZXN0Q2hpbGRPd25lclNpemU9TWF0aC5tYXgobGFyZ2VzdENoaWxkT3duZXJTaXplLGdldFNpemUob3duZXJzaGlwTGluay5zb3VyY2UpKTt9KTtub3RPd25lZFN1YlNpemUrPWdldFNpemUoY2hpbGREdW1wKS1sYXJnZXN0Q2hpbGRPd25lclNpemU7fSk7ZHVtcC5ub3RPd25lZFN1YlNpemVfPW5vdE93bmVkU3ViU2l6ZTt9LGNhbGN1bGF0ZUR1bXBPd25lcnNoaXBDb2VmZmljaWVudF86ZnVuY3Rpb24oZHVtcCl7aWYoIWhhc1NpemUoZHVtcCkpCityZXR1cm47aWYoZHVtcC5vd25lZEJ5Lmxlbmd0aD09PTApCityZXR1cm47dmFyIG93bmVycz1kdW1wLm93bmVkQnkubWFwKGZ1bmN0aW9uKG93bmVyc2hpcExpbmspe3JldHVybntkdW1wOm93bmVyc2hpcExpbmsuc291cmNlLGltcG9ydGFuY2U6b3B0aW9uYWwob3duZXJzaGlwTGluay5pbXBvcnRhbmNlLDApLG5vdE93bmluZ1N1YlNpemU6b3B0aW9uYWwob3duZXJzaGlwTGluay5zb3VyY2Uubm90T3duaW5nU3ViU2l6ZV8sMCl9O30pO293bmVycy5zb3J0KGZ1bmN0aW9uKGEsYil7aWYoYS5pbXBvcnRhbmNlPT09Yi5pbXBvcnRhbmNlKQorcmV0dXJuIGEubm90T3duaW5nU3ViU2l6ZS1iLm5vdE93bmluZ1N1YlNpemU7cmV0dXJuIGIuaW1wb3J0YW5jZS1hLmltcG9ydGFuY2U7fSk7dmFyIGN1cnJlbnRJbXBvcnRhbmNlU3RhcnRQb3M9MDt2YXIgYWxyZWFkeUF0dHJpYnV0ZWRTdWJTaXplPTA7d2hpbGUoY3VycmVudEltcG9ydGFuY2VTdGFydFBvczxvd25lcnMubGVuZ3RoKXt2YXIgY3VycmVudEltcG9ydGFuY2U9b3duZXJzW2N1cnJlbnRJbXBvcnRhbmNlU3RhcnRQb3NdLmltcG9ydGFuY2U7dmFyIG5leHRJbXBvcnRhbmNlU3RhcnRQb3M9Y3VycmVudEltcG9ydGFuY2VTdGFydFBvcysxO3doaWxlKG5leHRJbXBvcnRhbmNlU3RhcnRQb3M8b3duZXJzLmxlbmd0aCYmb3duZXJzW25leHRJbXBvcnRhbmNlU3RhcnRQb3NdLmltcG9ydGFuY2U9PT1jdXJyZW50SW1wb3J0YW5jZSl7bmV4dEltcG9ydGFuY2VTdGFydFBvcysrO30KK3ZhciBhdHRyaWJ1dGVkTm90T3duaW5nU3ViU2l6ZT0wO2Zvcih2YXIgcG9zPWN1cnJlbnRJbXBvcnRhbmNlU3RhcnRQb3M7cG9zPG5leHRJbXBvcnRhbmNlU3RhcnRQb3M7cG9zKyspe3ZhciBvd25lcj1vd25lcnNbcG9zXTt2YXIgbm90T3duaW5nU3ViU2l6ZT1vd25lci5ub3RPd25pbmdTdWJTaXplO2lmKG5vdE93bmluZ1N1YlNpemU+YWxyZWFkeUF0dHJpYnV0ZWRTdWJTaXplKXthdHRyaWJ1dGVkTm90T3duaW5nU3ViU2l6ZSs9KG5vdE93bmluZ1N1YlNpemUtYWxyZWFkeUF0dHJpYnV0ZWRTdWJTaXplKS8obmV4dEltcG9ydGFuY2VTdGFydFBvcy1wb3MpO2FscmVhZHlBdHRyaWJ1dGVkU3ViU2l6ZT1ub3RPd25pbmdTdWJTaXplO30KK3ZhciBvd25pbmdDb2VmZmljaWVudD0wO2lmKG5vdE93bmluZ1N1YlNpemUhPT0wKQorb3duaW5nQ29lZmZpY2llbnQ9YXR0cmlidXRlZE5vdE93bmluZ1N1YlNpemUvbm90T3duaW5nU3ViU2l6ZTtvd25lci5kdW1wLm93bmluZ0NvZWZmaWNpZW50Xz1vd25pbmdDb2VmZmljaWVudDt9CitjdXJyZW50SW1wb3J0YW5jZVN0YXJ0UG9zPW5leHRJbXBvcnRhbmNlU3RhcnRQb3M7fQordmFyIG5vdE93bmVkU3ViU2l6ZT1vcHRpb25hbChkdW1wLm5vdE93bmVkU3ViU2l6ZV8sMCk7dmFyIHJlbWFpbmRlclN1YlNpemU9bm90T3duZWRTdWJTaXplLWFscmVhZHlBdHRyaWJ1dGVkU3ViU2l6ZTt2YXIgb3duZWRDb2VmZmljaWVudD0wO2lmKG5vdE93bmVkU3ViU2l6ZSE9PTApCitvd25lZENvZWZmaWNpZW50PXJlbWFpbmRlclN1YlNpemUvbm90T3duZWRTdWJTaXplO2R1bXAub3duZWRDb2VmZmljaWVudF89b3duZWRDb2VmZmljaWVudDt9LGNhbGN1bGF0ZUR1bXBDdW11bGF0aXZlT3duZXJzaGlwQ29lZmZpY2llbnRfOmZ1bmN0aW9uKGR1bXApe2lmKCFoYXNTaXplKGR1bXApKQorcmV0dXJuO3ZhciBjdW11bGF0aXZlT3duZWRDb2VmZmljaWVudD1vcHRpb25hbChkdW1wLm93bmVkQ29lZmZpY2llbnRfLDEpO3ZhciBwYXJlbnQ9ZHVtcC5wYXJlbnQ7aWYoZHVtcC5wYXJlbnQhPT11bmRlZmluZWQpCitjdW11bGF0aXZlT3duZWRDb2VmZmljaWVudCo9ZHVtcC5wYXJlbnQuY3VtdWxhdGl2ZU93bmVkQ29lZmZpY2llbnRfO2R1bXAuY3VtdWxhdGl2ZU93bmVkQ29lZmZpY2llbnRfPWN1bXVsYXRpdmVPd25lZENvZWZmaWNpZW50O3ZhciBjdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnQ7aWYoZHVtcC5vd25zIT09dW5kZWZpbmVkKXtjdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnQ9ZHVtcC5vd25pbmdDb2VmZmljaWVudF8qZHVtcC5vd25zLnRhcmdldC5jdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnRfO31lbHNlIGlmKGR1bXAucGFyZW50IT09dW5kZWZpbmVkKXtjdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnQ9ZHVtcC5wYXJlbnQuY3VtdWxhdGl2ZU93bmluZ0NvZWZmaWNpZW50Xzt9ZWxzZXtjdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnQ9MTt9CitkdW1wLmN1bXVsYXRpdmVPd25pbmdDb2VmZmljaWVudF89Y3VtdWxhdGl2ZU93bmluZ0NvZWZmaWNpZW50O30sY2FsY3VsYXRlRHVtcEVmZmVjdGl2ZVNpemVfOmZ1bmN0aW9uKGR1bXApe2lmKCFoYXNTaXplKGR1bXApKXtkdW1wLmF0dHJpYnV0ZXNbRUZGRUNUSVZFX1NJWkVfQVRUUklCVVRFX05BTUVdPXVuZGVmaW5lZDtyZXR1cm47fQordmFyIGVmZmVjdGl2ZVNpemU7aWYoZHVtcC5jaGlsZHJlbj09PXVuZGVmaW5lZHx8ZHVtcC5jaGlsZHJlbi5sZW5ndGg9PT0wKXtlZmZlY3RpdmVTaXplPWdldFNpemUoZHVtcCkqZHVtcC5jdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnRfKmR1bXAuY3VtdWxhdGl2ZU93bmVkQ29lZmZpY2llbnRfO31lbHNle2VmZmVjdGl2ZVNpemU9MDtkdW1wLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGREdW1wKXtpZighaGFzU2l6ZShjaGlsZER1bXApKQorcmV0dXJuO2VmZmVjdGl2ZVNpemUrPWNoaWxkRHVtcC5hdHRyaWJ1dGVzW0VGRkVDVElWRV9TSVpFX0FUVFJJQlVURV9OQU1FXS52YWx1ZTt9KTt9Cit2YXIgYXR0cmlidXRlPW5ldyB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJyxlZmZlY3RpdmVTaXplKTtkdW1wLmF0dHJpYnV0ZXNbRUZGRUNUSVZFX1NJWkVfQVRUUklCVVRFX05BTUVdPWF0dHJpYnV0ZTtpZihkdW1wLm93bmVkQnkubGVuZ3RoPjApe3ZhciBtZXNzYWdlPSdUaGlzIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBpcyBzaGFyZWQgYnkgJysKK2R1bXAub3duZWRCeS5tYXAoZnVuY3Rpb24ob3duZXJzaGlwTGluayl7cmV0dXJuIG93bmVyc2hpcFRvVXNlckZyaWVuZGx5U3RyaW5nKG93bmVyc2hpcExpbmsuc291cmNlLG93bmVyc2hpcExpbmsuaW1wb3J0YW5jZSk7fSkuam9pbignLCAnKSsnLic7YXR0cmlidXRlLmluZm9zLnB1c2gobmV3IHRyLm1vZGVsLkF0dHJpYnV0ZUluZm8odHIubW9kZWwuQXR0cmlidXRlSW5mb1R5cGUuTUVNT1JZX09XTkVELG1lc3NhZ2UpKTt9CitpZihkdW1wLm93bnMhPT11bmRlZmluZWQpe3ZhciBtZXNzYWdlPSdUaGlzIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBzaGFyZXMgJysKK293bmVyc2hpcFRvVXNlckZyaWVuZGx5U3RyaW5nKGR1bXAub3ducy50YXJnZXQsZHVtcC5vd25zLmltcG9ydGFuY2UpKycuJzthdHRyaWJ1dGUuaW5mb3MucHVzaChuZXcgdHIubW9kZWwuQXR0cmlidXRlSW5mbyh0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvVHlwZS5NRU1PUllfT1dORVIsbWVzc2FnZSkpO319LGFnZ3JlZ2F0ZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oKXt0aGlzLml0ZXJhdGVSb290QWxsb2NhdG9yRHVtcHMoZnVuY3Rpb24oZHVtcCl7ZHVtcC5hZ2dyZWdhdGVBdHRyaWJ1dGVzKHRoaXMubW9kZWwpO30pO30sZGlzY291bnRUcmFjaW5nT3ZlcmhlYWQ6ZnVuY3Rpb24oKXt0ci5iLml0ZXJJdGVtcyh0aGlzLnByb2Nlc3NNZW1vcnlEdW1wcyxmdW5jdGlvbihwaWQsZHVtcCl7ZHVtcC5kaXNjb3VudFRyYWNpbmdPdmVyaGVhZCh0aGlzLm1vZGVsKTt9LHRoaXMpO30saXRlcmF0ZUNvbnRhaW5lckR1bXBzOmZ1bmN0aW9uKGZuKXtmbi5jYWxsKHRoaXMsdGhpcyk7dHIuYi5pdGVySXRlbXModGhpcy5wcm9jZXNzTWVtb3J5RHVtcHMsZnVuY3Rpb24ocGlkLHByb2Nlc3NEdW1wKXtmbi5jYWxsKHRoaXMscHJvY2Vzc0R1bXApO30sdGhpcyk7fSxpdGVyYXRlUm9vdEFsbG9jYXRvckR1bXBzOmZ1bmN0aW9uKGZuKXt0aGlzLml0ZXJhdGVDb250YWluZXJEdW1wcyhmdW5jdGlvbihjb250YWluZXJEdW1wKXt2YXIgbWVtb3J5QWxsb2NhdG9yRHVtcHM9Y29udGFpbmVyRHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcztpZihtZW1vcnlBbGxvY2F0b3JEdW1wcz09PXVuZGVmaW5lZCkKK3JldHVybjttZW1vcnlBbGxvY2F0b3JEdW1wcy5mb3JFYWNoKGZuLHRoaXMpO30pO30sdHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdFBvc3RPcmRlcjpmdW5jdGlvbihmbil7dmFyIHZpc2l0ZWREdW1wcz1uZXcgV2Vha1NldCgpO3ZhciBvcGVuRHVtcHM9bmV3IFdlYWtTZXQoKTtmdW5jdGlvbiB2aXNpdChkdW1wKXtpZih2aXNpdGVkRHVtcHMuaGFzKGR1bXApKQorcmV0dXJuO2lmKG9wZW5EdW1wcy5oYXMoZHVtcCkpCit0aHJvdyBuZXcgRXJyb3IoZHVtcC51c2VyRnJpZW5kbHlOYW1lKycgY29udGFpbnMgYSBjeWNsZScpO29wZW5EdW1wcy5hZGQoZHVtcCk7ZHVtcC5vd25lZEJ5LmZvckVhY2goZnVuY3Rpb24ob3duZXJzaGlwTGluayl7dmlzaXQuY2FsbCh0aGlzLG93bmVyc2hpcExpbmsuc291cmNlKTt9LHRoaXMpO2R1bXAuY2hpbGRyZW4uZm9yRWFjaCh2aXNpdCx0aGlzKTtmbi5jYWxsKHRoaXMsZHVtcCk7dmlzaXRlZER1bXBzLmFkZChkdW1wKTtvcGVuRHVtcHMuZGVsZXRlKGR1bXApO30KK3RoaXMuaXRlcmF0ZVJvb3RBbGxvY2F0b3JEdW1wcyh2aXNpdCk7fSx0cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0UHJlT3JkZXI6ZnVuY3Rpb24oZm4pe3ZhciB2aXNpdGVkRHVtcHM9bmV3IFdlYWtTZXQoKTtmdW5jdGlvbiB2aXNpdChkdW1wKXtpZih2aXNpdGVkRHVtcHMuaGFzKGR1bXApKQorcmV0dXJuO2lmKGR1bXAub3ducyE9PXVuZGVmaW5lZCYmIXZpc2l0ZWREdW1wcy5oYXMoZHVtcC5vd25zLnRhcmdldCkpCityZXR1cm47aWYoZHVtcC5wYXJlbnQhPT11bmRlZmluZWQmJiF2aXNpdGVkRHVtcHMuaGFzKGR1bXAucGFyZW50KSkKK3JldHVybjtmbi5jYWxsKHRoaXMsZHVtcCk7dmlzaXRlZER1bXBzLmFkZChkdW1wKTtkdW1wLm93bmVkQnkuZm9yRWFjaChmdW5jdGlvbihvd25lcnNoaXBMaW5rKXt2aXNpdC5jYWxsKHRoaXMsb3duZXJzaGlwTGluay5zb3VyY2UpO30sdGhpcyk7ZHVtcC5jaGlsZHJlbi5mb3JFYWNoKHZpc2l0LHRoaXMpO30KK3RoaXMuaXRlcmF0ZVJvb3RBbGxvY2F0b3JEdW1wcyh2aXNpdCk7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihHbG9iYWxNZW1vcnlEdW1wLHtuYW1lOidnbG9iYWxNZW1vcnlEdW1wJyxwbHVyYWxOYW1lOidnbG9iYWxNZW1vcnlEdW1wcycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci11aS1hLXNpbmdsZS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLW11bHRpLWdsb2JhbC1tZW1vcnktZHVtcC1zdWItdmlldyd9KTtyZXR1cm57R2xvYmFsTWVtb3J5RHVtcDpHbG9iYWxNZW1vcnlEdW1wfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBJbnN0YW50RXZlbnRUeXBlPXtHTE9CQUw6MSxQUk9DRVNTOjJ9O2Z1bmN0aW9uIEluc3RhbnRFdmVudChjYXRlZ29yeSx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Mpe3RyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzKTt0aGlzLmNhdGVnb3J5PWNhdGVnb3J5fHwnJzt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuY29sb3JJZD1jb2xvcklkO3RoaXMuc3RhcnQ9c3RhcnQ7dGhpcy5hcmdzPWFyZ3M7dGhpcy50eXBlPXVuZGVmaW5lZDt9O0luc3RhbnRFdmVudC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZX07ZnVuY3Rpb24gR2xvYmFsSW5zdGFudEV2ZW50KGNhdGVnb3J5LHRpdGxlLGNvbG9ySWQsc3RhcnQsYXJncyl7SW5zdGFudEV2ZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnR5cGU9SW5zdGFudEV2ZW50VHlwZS5HTE9CQUw7fTtHbG9iYWxJbnN0YW50RXZlbnQucHJvdG90eXBlPXtfX3Byb3RvX186SW5zdGFudEV2ZW50LnByb3RvdHlwZSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidHbG9iYWwgaW5zdGFudCBldmVudCAnK3RoaXMudGl0bGUrJyBAICcrCit0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQoc3RhcnQpO319O2Z1bmN0aW9uIFByb2Nlc3NJbnN0YW50RXZlbnQoY2F0ZWdvcnksdGl0bGUsY29sb3JJZCxzdGFydCxhcmdzKXtJbnN0YW50RXZlbnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudHlwZT1JbnN0YW50RXZlbnRUeXBlLlBST0NFU1M7fTtQcm9jZXNzSW5zdGFudEV2ZW50LnByb3RvdHlwZT17X19wcm90b19fOkluc3RhbnRFdmVudC5wcm90b3R5cGUsZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nUHJvY2Vzcy1sZXZlbCBpbnN0YW50IGV2ZW50ICcrdGhpcy50aXRsZSsnIEAgJysKK3RyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdChzdGFydCk7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihJbnN0YW50RXZlbnQse25hbWU6J2luc3RhbnRFdmVudCcscGx1cmFsTmFtZTonaW5zdGFudEV2ZW50cycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci11aS1hLXNpbmdsZS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItdWktYS1tdWx0aS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3J30pO3JldHVybntHbG9iYWxJbnN0YW50RXZlbnQ6R2xvYmFsSW5zdGFudEV2ZW50LFByb2Nlc3NJbnN0YW50RXZlbnQ6UHJvY2Vzc0luc3RhbnRFdmVudCxJbnN0YW50RXZlbnRUeXBlOkluc3RhbnRFdmVudFR5cGUsSW5zdGFudEV2ZW50Okluc3RhbnRFdmVudH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlPXtOT1RfU0VMRUNURUQ6MCxFVkVOVF9TRUxFQ1RFRDoweDEsU09NRV9BU1NPQ0lBVEVEX0VWRU5UU19TRUxFQ1RFRDoweDIsQUxMX0FTU09DSUFURURfRVZFTlRTX1NFTEVDVEVEOjB4NCxFVkVOVF9BTkRfU09NRV9BU1NPQ0lBVEVEX1NFTEVDVEVEOjB4MXwweDIsRVZFTlRfQU5EX0FMTF9BU1NPQ0lBVEVEX1NFTEVDVEVEOjB4MXwweDR9O3JldHVybntDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGU6Q29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlO2Z1bmN0aW9uIEludGVyYWN0aW9uUmVjb3JkKHRpdGxlLGNvbG9ySWQsc3RhcnQsZHVyYXRpb24pe3RyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuY29sb3JJZD1jb2xvcklkO3RoaXMuZHVyYXRpb249ZHVyYXRpb247dGhpcy5hcmdzPXt9O3RoaXMuYXNzb2NpYXRlZEV2ZW50cz1uZXcgdHIubW9kZWwuRXZlbnRTZXQoKTt9CitJbnRlcmFjdGlvblJlY29yZC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSxnZXQgc3ViU2xpY2VzKCl7cmV0dXJuW107fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybiB0aGlzLnRpdGxlKycgaW50ZXJhY3Rpb24gYXQgJysKK3RyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnN0YXJ0KTt9LGNvbXB1dGVDb21wb3VuZEV2ZW5TZWxlY3Rpb25TdGF0ZTpmdW5jdGlvbihzZWxlY3Rpb24pe3ZhciBjZXNzPUNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZS5OT1RfU0VMRUNURUQ7aWYoc2VsZWN0aW9uLmNvbnRhaW5zKHRoaXMpKQorY2Vzc3w9Q29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlLkVWRU5UX1NFTEVDVEVEO2lmKHRoaXMuYXNzb2NpYXRlZEV2ZW50cy5pbnRlcnNlY3Rpb25Jc0VtcHR5KHNlbGVjdGlvbikpCityZXR1cm4gY2Vzczt2YXIgYWxsQ29udGFpbmVkPXRoaXMuYXNzb2NpYXRlZEV2ZW50cy5ldmVyeShmdW5jdGlvbihldmVudCl7cmV0dXJuIHNlbGVjdGlvbi5jb250YWlucyhldmVudCk7fSk7aWYoYWxsQ29udGFpbmVkKQorY2Vzc3w9Q29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlLkFMTF9BU1NPQ0lBVEVEX0VWRU5UU19TRUxFQ1RFRDtlbHNlCitjZXNzfD1Db21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUuU09NRV9BU1NPQ0lBVEVEX0VWRU5UU19TRUxFQ1RFRDtyZXR1cm4gY2Vzczt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKEludGVyYWN0aW9uUmVjb3JkLHtuYW1lOidpbnRlcmFjdGlvbicscGx1cmFsTmFtZTonaW50ZXJhY3Rpb25zJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtc2luZ2xlLWludGVyYWN0aW9uLXJlY29yZC1zdWItdmlldycsbXVsdGlWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtbXVsdGktaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3J30pO3JldHVybntJbnRlcmFjdGlvblJlY29yZDpJbnRlcmFjdGlvblJlY29yZH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoYXJ5LG1hcEZuLGxvVmFsKXtpZihhcnkubGVuZ3RoPT0wKQorcmV0dXJuIDE7dmFyIGxvdz0wO3ZhciBoaWdoPWFyeS5sZW5ndGgtMTt2YXIgaSxjb21wYXJpc29uO3ZhciBoaXRQb3M9LTE7d2hpbGUobG93PD1oaWdoKXtpPU1hdGguZmxvb3IoKGxvdytoaWdoKS8yKTtjb21wYXJpc29uPW1hcEZuKGFyeVtpXSktbG9WYWw7aWYoY29tcGFyaXNvbjwwKXtsb3c9aSsxO2NvbnRpbnVlO31lbHNlIGlmKGNvbXBhcmlzb24+MCl7aGlnaD1pLTE7Y29udGludWU7fWVsc2V7aGl0UG9zPWk7aGlnaD1pLTE7fX0KK3JldHVybiBoaXRQb3MhPS0xP2hpdFBvczpsb3c7fQorZnVuY3Rpb24gZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMoYXJ5LG1hcExvRm4sbWFwV2lkdGhGbixsb1ZhbCl7dmFyIGZpcnN0PWZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoYXJ5LG1hcExvRm4sbG9WYWwpO2lmKGZpcnN0PT0wKXtpZihsb1ZhbD49bWFwTG9GbihhcnlbMF0pJiZsb1ZhbDxtYXBMb0ZuKGFyeVswXSkrbWFwV2lkdGhGbihhcnlbMF0sMCkpe3JldHVybiAwO31lbHNle3JldHVybi0xO319ZWxzZSBpZihmaXJzdDxhcnkubGVuZ3RoKXtpZihsb1ZhbD49bWFwTG9GbihhcnlbZmlyc3RdKSYmbG9WYWw8bWFwTG9GbihhcnlbZmlyc3RdKSttYXBXaWR0aEZuKGFyeVtmaXJzdF0sZmlyc3QpKXtyZXR1cm4gZmlyc3Q7fWVsc2UgaWYobG9WYWw+PW1hcExvRm4oYXJ5W2ZpcnN0LTFdKSYmbG9WYWw8bWFwTG9GbihhcnlbZmlyc3QtMV0pKworbWFwV2lkdGhGbihhcnlbZmlyc3QtMV0sZmlyc3QtMSkpe3JldHVybiBmaXJzdC0xO31lbHNle3JldHVybiBhcnkubGVuZ3RoO319ZWxzZSBpZihmaXJzdD09YXJ5Lmxlbmd0aCl7aWYobG9WYWw+PW1hcExvRm4oYXJ5W2ZpcnN0LTFdKSYmbG9WYWw8bWFwTG9GbihhcnlbZmlyc3QtMV0pKworbWFwV2lkdGhGbihhcnlbZmlyc3QtMV0sZmlyc3QtMSkpe3JldHVybiBmaXJzdC0xO31lbHNle3JldHVybiBhcnkubGVuZ3RoO319ZWxzZXtyZXR1cm4gYXJ5Lmxlbmd0aDt9fQorZnVuY3Rpb24gZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHMoYXJ5LG1hcExvRm4sbWFwSGlGbix2YWwpe3ZhciBpPWZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoYXJ5LG1hcExvRm4sdmFsKTtpZihpPT09MCl7aWYodmFsPj1tYXBMb0ZuKGFyeVswXSwwKSYmdmFsPD1tYXBIaUZuKGFyeVswXSwwKSl7cmV0dXJuIDA7fWVsc2V7cmV0dXJuLTE7fX1lbHNlIGlmKGk8YXJ5Lmxlbmd0aCl7aWYodmFsPj1tYXBMb0ZuKGFyeVtpLTFdLGktMSkmJnZhbDw9bWFwSGlGbihhcnlbaS0xXSxpLTEpKXtyZXR1cm4gaS0xO31lbHNlIGlmKHZhbD49bWFwTG9GbihhcnlbaV0saSkmJnZhbDw9bWFwSGlGbihhcnlbaV0saSkpe3JldHVybiBpO31lbHNle3JldHVybiBhcnkubGVuZ3RoO319ZWxzZSBpZihpPT1hcnkubGVuZ3RoKXtpZih2YWw+PW1hcExvRm4oYXJ5W2ktMV0saS0xKSYmdmFsPD1tYXBIaUZuKGFyeVtpLTFdLGktMSkpe3JldHVybiBpLTE7fWVsc2V7cmV0dXJuIGFyeS5sZW5ndGg7fX1lbHNle3JldHVybiBhcnkubGVuZ3RoO319CitmdW5jdGlvbiBpdGVyYXRlT3ZlckludGVyc2VjdGluZ0ludGVydmFscyhhcnksbWFwTG9GbixtYXBXaWR0aEZuLGxvVmFsLGhpVmFsLGNiKXtpZihhcnkubGVuZ3RoPT0wKQorcmV0dXJuO2lmKGxvVmFsPmhpVmFsKXJldHVybjt2YXIgaT1maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KGFyeSxtYXBMb0ZuLGxvVmFsKTtpZihpPT0tMSl7cmV0dXJuO30KK2lmKGk+MCl7dmFyIGhpPW1hcExvRm4oYXJ5W2ktMV0pK21hcFdpZHRoRm4oYXJ5W2ktMV0saS0xKTtpZihoaT49bG9WYWwpe2NiKGFyeVtpLTFdLGktMSk7fX0KK2lmKGk9PWFyeS5sZW5ndGgpe3JldHVybjt9Citmb3IodmFyIG49YXJ5Lmxlbmd0aDtpPG47aSsrKXt2YXIgbG89bWFwTG9GbihhcnlbaV0pO2lmKGxvPj1oaVZhbCkKK2JyZWFrO2NiKGFyeVtpXSxpKTt9fQorZnVuY3Rpb24gZ2V0SW50ZXJzZWN0aW5nSW50ZXJ2YWxzKGFyeSxtYXBMb0ZuLG1hcFdpZHRoRm4sbG9WYWwsaGlWYWwpe3ZhciB0bXA9W107aXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMoYXJ5LG1hcExvRm4sbWFwV2lkdGhGbixsb1ZhbCxoaVZhbCxmdW5jdGlvbihkKXt0bXAucHVzaChkKTt9KTtyZXR1cm4gdG1wO30KK2Z1bmN0aW9uIGZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXkoYXJ5LG1hcEZuLHZhbCxtYXhEaWZmKXtpZihhcnkubGVuZ3RoPT09MCkKK3JldHVybiBudWxsO3ZhciBhZnRJZHg9ZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheShhcnksbWFwRm4sdmFsKTt2YXIgYmVmSWR4PWFmdElkeD4wP2FmdElkeC0xOjA7aWYoYWZ0SWR4PT09YXJ5Lmxlbmd0aCkKK2FmdElkeC09MTt2YXIgYmVmRGlmZj1NYXRoLmFicyh2YWwtbWFwRm4oYXJ5W2JlZklkeF0pKTt2YXIgYWZ0RGlmZj1NYXRoLmFicyh2YWwtbWFwRm4oYXJ5W2FmdElkeF0pKTtpZihiZWZEaWZmPm1heERpZmYmJmFmdERpZmY+bWF4RGlmZikKK3JldHVybiBudWxsO3ZhciBpZHg9YmVmRGlmZjxhZnREaWZmP2JlZklkeDphZnRJZHg7cmV0dXJuIGFyeVtpZHhdO30KK2Z1bmN0aW9uIGZpbmRDbG9zZXN0SW50ZXJ2YWxJblNvcnRlZEludGVydmFscyhhcnksbWFwTG9GbixtYXBIaUZuLHZhbCxtYXhEaWZmKXtpZihhcnkubGVuZ3RoPT09MCkKK3JldHVybiBudWxsO3ZhciBpZHg9ZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheShhcnksbWFwTG9Gbix2YWwpO2lmKGlkeD4wKQoraWR4LT0xO3ZhciBoaUludD1hcnlbaWR4XTt2YXIgbG9JbnQ9aGlJbnQ7aWYodmFsPm1hcEhpRm4oaGlJbnQpJiZpZHgrMTxhcnkubGVuZ3RoKQorbG9JbnQ9YXJ5W2lkeCsxXTt2YXIgbG9EaWZmPU1hdGguYWJzKHZhbC1tYXBMb0ZuKGxvSW50KSk7dmFyIGhpRGlmZj1NYXRoLmFicyh2YWwtbWFwSGlGbihoaUludCkpO2lmKGxvRGlmZj5tYXhEaWZmJiZoaURpZmY+bWF4RGlmZikKK3JldHVybiBudWxsO2lmKGxvRGlmZjxoaURpZmYpCityZXR1cm4gbG9JbnQ7ZWxzZQorcmV0dXJuIGhpSW50O30KK3JldHVybntmaW5kTG93SW5kZXhJblNvcnRlZEFycmF5OmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXksZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHM6ZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMsZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHM6ZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHMsaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHM6aXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMsZ2V0SW50ZXJzZWN0aW5nSW50ZXJ2YWxzOmdldEludGVyc2VjdGluZ0ludGVydmFscyxmaW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5OmZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXksZmluZENsb3Nlc3RJbnRlcnZhbEluU29ydGVkSW50ZXJ2YWxzOmZpbmRDbG9zZXN0SW50ZXJ2YWxJblNvcnRlZEludGVydmFsc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBDb3VudGVyU2FtcGxlKHNlcmllcyx0aW1lc3RhbXAsdmFsdWUpe3RyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7dGhpcy5zZXJpZXNfPXNlcmllczt0aGlzLnRpbWVzdGFtcF89dGltZXN0YW1wO3RoaXMudmFsdWVfPXZhbHVlO30KK0NvdW50ZXJTYW1wbGUuZ3JvdXBCeVRpbWVzdGFtcD1mdW5jdGlvbihzYW1wbGVzKXt2YXIgc2FtcGxlc0J5VGltZXN0YW1wPXRyLmIuZ3JvdXAoc2FtcGxlcyxmdW5jdGlvbihzYW1wbGUpe3JldHVybiBzYW1wbGUudGltZXN0YW1wO30pO3ZhciB0aW1lc3RhbXBzPXRyLmIuZGljdGlvbmFyeUtleXMoc2FtcGxlc0J5VGltZXN0YW1wKTt0aW1lc3RhbXBzLnNvcnQoKTt2YXIgZ3JvdXBzPVtdO2Zvcih2YXIgaT0wO2k8dGltZXN0YW1wcy5sZW5ndGg7aSsrKXt2YXIgdHM9dGltZXN0YW1wc1tpXTt2YXIgZ3JvdXA9c2FtcGxlc0J5VGltZXN0YW1wW3RzXTtncm91cC5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHguc2VyaWVzLnNlcmllc0luZGV4LXkuc2VyaWVzLnNlcmllc0luZGV4O30pO2dyb3Vwcy5wdXNoKGdyb3VwKTt9CityZXR1cm4gZ3JvdXBzO30KK0NvdW50ZXJTYW1wbGUucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnQucHJvdG90eXBlLGdldCBzZXJpZXMoKXtyZXR1cm4gdGhpcy5zZXJpZXNfO30sZ2V0IHRpbWVzdGFtcCgpe3JldHVybiB0aGlzLnRpbWVzdGFtcF87fSxnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZV87fSxzZXQgdGltZXN0YW1wKHRpbWVzdGFtcCl7dGhpcy50aW1lc3RhbXBfPXRpbWVzdGFtcDt9LGFkZEJvdW5kc1RvUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe3JhbmdlLmFkZFZhbHVlKHRoaXMudGltZXN0YW1wKTt9LGdldFNhbXBsZUluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSh0aGlzLnNlcmllcy50aW1lc3RhbXBzLGZ1bmN0aW9uKHgpe3JldHVybiB4O30sdGhpcy50aW1lc3RhbXBfKTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuJ0NvdW50ZXIgc2FtcGxlIGZyb20gJyt0aGlzLnNlcmllc18udGl0bGUrJyBhdCAnKwordHIuYi51bml0cy5UaW1lU3RhbXAuZm9ybWF0KHRoaXMudGltZXN0YW1wKTt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKENvdW50ZXJTYW1wbGUse25hbWU6J2NvdW50ZXJTYW1wbGUnLHBsdXJhbE5hbWU6J2NvdW50ZXJTYW1wbGVzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3J30pO3JldHVybntDb3VudGVyU2FtcGxlOkNvdW50ZXJTYW1wbGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIENvdW50ZXJTYW1wbGU9dHIubW9kZWwuQ291bnRlclNhbXBsZTtmdW5jdGlvbiBDb3VudGVyU2VyaWVzKG5hbWUsY29sb3Ipe3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLm5hbWVfPW5hbWU7dGhpcy5jb2xvcl89Y29sb3I7dGhpcy50aW1lc3RhbXBzXz1bXTt0aGlzLnNhbXBsZXNfPVtdO3RoaXMuY291bnRlcj11bmRlZmluZWQ7dGhpcy5zZXJpZXNJbmRleD11bmRlZmluZWQ7fQorQ291bnRlclNlcmllcy5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsZ2V0IGd1aWQoKXtyZXR1cm4gdGhpcy5ndWlkXzt9LGdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy50aW1lc3RhbXBzXy5sZW5ndGg7fSxnZXQgbmFtZSgpe3JldHVybiB0aGlzLm5hbWVfO30sZ2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuY29sb3JfO30sZ2V0IHNhbXBsZXMoKXtyZXR1cm4gdGhpcy5zYW1wbGVzXzt9LGdldCB0aW1lc3RhbXBzKCl7cmV0dXJuIHRoaXMudGltZXN0YW1wc187fSxnZXRTYW1wbGU6ZnVuY3Rpb24oaWR4KXtyZXR1cm4gdGhpcy5zYW1wbGVzX1tpZHhdO30sZ2V0VGltZXN0YW1wOmZ1bmN0aW9uKGlkeCl7cmV0dXJuIHRoaXMudGltZXN0YW1wc19baWR4XTt9LGFkZENvdW50ZXJTYW1wbGU6ZnVuY3Rpb24odHMsdmFsKXt2YXIgc2FtcGxlPW5ldyBDb3VudGVyU2FtcGxlKHRoaXMsdHMsdmFsKTt0aGlzLmFkZFNhbXBsZShzYW1wbGUpO3JldHVybiBzYW1wbGU7fSxhZGRTYW1wbGU6ZnVuY3Rpb24oc2FtcGxlKXt0aGlzLnRpbWVzdGFtcHNfLnB1c2goc2FtcGxlLnRpbWVzdGFtcCk7dGhpcy5zYW1wbGVzXy5wdXNoKHNhbXBsZSk7fSxnZXRTdGF0aXN0aWNzOmZ1bmN0aW9uKHNhbXBsZUluZGljZXMpe3ZhciBzdW09MDt2YXIgbWluPU51bWJlci5NQVhfVkFMVUU7dmFyIG1heD0tTnVtYmVyLk1BWF9WQUxVRTtmb3IodmFyIGk9MDtpPHNhbXBsZUluZGljZXMubGVuZ3RoOysraSl7dmFyIHNhbXBsZT10aGlzLmdldFNhbXBsZShzYW1wbGVJbmRpY2VzW2ldKS52YWx1ZTtzdW0rPXNhbXBsZTttaW49TWF0aC5taW4oc2FtcGxlLG1pbik7bWF4PU1hdGgubWF4KHNhbXBsZSxtYXgpO30KK3JldHVybnttaW46bWluLG1heDptYXgsYXZnOihzdW0vc2FtcGxlSW5kaWNlcy5sZW5ndGgpLHN0YXJ0OnRoaXMuZ2V0U2FtcGxlKHNhbXBsZUluZGljZXNbMF0pLnZhbHVlLGVuZDp0aGlzLmdldFNhbXBsZShzYW1wbGVJbmRpY2VzLmxlbmd0aC0xKS52YWx1ZX07fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7Zm9yKHZhciBpPTA7aTx0aGlzLnRpbWVzdGFtcHNfLmxlbmd0aDsrK2kpe3RoaXMudGltZXN0YW1wc19baV0rPWFtb3VudDt0aGlzLnNhbXBsZXNfW2ldLnRpbWVzdGFtcD10aGlzLnRpbWVzdGFtcHNfW2ldO319LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyx0ci5tb2RlbC5Db3VudGVyU2FtcGxlKSl7dGhpcy5zYW1wbGVzXy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTt9fSxpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe319O3JldHVybntDb3VudGVyU2VyaWVzOkNvdW50ZXJTZXJpZXN9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQ291bnRlcihwYXJlbnQsaWQsY2F0ZWdvcnksbmFtZSl7dHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMucGFyZW50Xz1wYXJlbnQ7dGhpcy5pZF89aWQ7dGhpcy5jYXRlZ29yeV89Y2F0ZWdvcnl8fCcnO3RoaXMubmFtZV89bmFtZTt0aGlzLnNlcmllc189W107dGhpcy50b3RhbHM9W107fQorQ291bnRlci5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsZ2V0IGd1aWQoKXtyZXR1cm4gdGhpcy5ndWlkXzt9LGdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5wYXJlbnRfO30sZ2V0IGlkKCl7cmV0dXJuIHRoaXMuaWRfO30sZ2V0IGNhdGVnb3J5KCl7cmV0dXJuIHRoaXMuY2F0ZWdvcnlfO30sZ2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5uYW1lXzt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLnNlcmllc18ubGVuZ3RoO2krKykKK2NhbGxiYWNrLmNhbGwob3B0X3RoaXMsdGhpcy5zZXJpZXNfW2ldKTt9LHNldCB0aW1lc3RhbXBzKGFyZyl7dGhyb3cgbmV3IEVycm9yKCdCYWQgY291bnRlciBBUEkuIE5vIGNvb2tpZS4nKTt9LHNldCBzZXJpZXNOYW1lcyhhcmcpe3Rocm93IG5ldyBFcnJvcignQmFkIGNvdW50ZXIgQVBJLiBObyBjb29raWUuJyk7fSxzZXQgc2VyaWVzQ29sb3JzKGFyZyl7dGhyb3cgbmV3IEVycm9yKCdCYWQgY291bnRlciBBUEkuIE5vIGNvb2tpZS4nKTt9LHNldCBzYW1wbGVzKGFyZyl7dGhyb3cgbmV3IEVycm9yKCdCYWQgY291bnRlciBBUEkuIE5vIGNvb2tpZS4nKTt9LGFkZFNlcmllczpmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5jb3VudGVyPXRoaXM7c2VyaWVzLnNlcmllc0luZGV4PXRoaXMuc2VyaWVzXy5sZW5ndGg7dGhpcy5zZXJpZXNfLnB1c2goc2VyaWVzKTtyZXR1cm4gc2VyaWVzO30sZ2V0U2VyaWVzOmZ1bmN0aW9uKGlkeCl7cmV0dXJuIHRoaXMuc2VyaWVzX1tpZHhdO30sZ2V0IHNlcmllcygpe3JldHVybiB0aGlzLnNlcmllc187fSxnZXQgbnVtU2VyaWVzKCl7cmV0dXJuIHRoaXMuc2VyaWVzXy5sZW5ndGg7fSxnZXQgbnVtU2FtcGxlcygpe2lmKHRoaXMuc2VyaWVzXy5sZW5ndGg9PT0wKQorcmV0dXJuIDA7cmV0dXJuIHRoaXMuc2VyaWVzX1swXS5sZW5ndGg7fSxnZXQgdGltZXN0YW1wcygpe2lmKHRoaXMuc2VyaWVzXy5sZW5ndGg9PT0wKQorcmV0dXJuW107cmV0dXJuIHRoaXMuc2VyaWVzX1swXS50aW1lc3RhbXBzO30sZ2V0U2FtcGxlU3RhdGlzdGljczpmdW5jdGlvbihzYW1wbGVJbmRpY2VzKXtzYW1wbGVJbmRpY2VzLnNvcnQoKTt2YXIgcmV0PVtdO3RoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7cmV0LnB1c2goc2VyaWVzLmdldFN0YXRpc3RpY3Moc2FtcGxlSW5kaWNlcykpO30pO3JldHVybiByZXQ7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7Zm9yKHZhciBpPTA7aTx0aGlzLnNlcmllc18ubGVuZ3RoOysraSkKK3RoaXMuc2VyaWVzX1tpXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXt0aGlzLnRvdGFscz1bXTt0aGlzLm1heFRvdGFsPTA7dGhpcy5ib3VuZHMucmVzZXQoKTtpZih0aGlzLnNlcmllc18ubGVuZ3RoPT09MCkKK3JldHVybjt2YXIgZmlyc3RTZXJpZXM9dGhpcy5zZXJpZXNfWzBdO3ZhciBsYXN0U2VyaWVzPXRoaXMuc2VyaWVzX1t0aGlzLnNlcmllc18ubGVuZ3RoLTFdO3RoaXMuYm91bmRzLmFkZFZhbHVlKGZpcnN0U2VyaWVzLmdldFRpbWVzdGFtcCgwKSk7dGhpcy5ib3VuZHMuYWRkVmFsdWUobGFzdFNlcmllcy5nZXRUaW1lc3RhbXAobGFzdFNlcmllcy5sZW5ndGgtMSkpO3ZhciBudW1TZXJpZXM9dGhpcy5udW1TZXJpZXM7dGhpcy5tYXhUb3RhbD0tSW5maW5pdHk7Zm9yKHZhciBpPTA7aTxmaXJzdFNlcmllcy5sZW5ndGg7KytpKXt2YXIgdG90YWw9MDt0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3RvdGFsKz1zZXJpZXMuZ2V0U2FtcGxlKGkpLnZhbHVlO3RoaXMudG90YWxzLnB1c2godG90YWwpO30uYmluZCh0aGlzKSk7dGhpcy5tYXhUb3RhbD1NYXRoLm1heCh0b3RhbCx0aGlzLm1heFRvdGFsKTt9fX07Q291bnRlci5jb21wYXJlPWZ1bmN0aW9uKHgseSl7dmFyIHRtcD14LnBhcmVudC5jb21wYXJlVG8oeSk7aWYodG1wIT0wKQorcmV0dXJuIHRtcDt2YXIgdG1wPXgubmFtZS5sb2NhbGVDb21wYXJlKHkubmFtZSk7aWYodG1wPT0wKQorcmV0dXJuIHgudGlkLXkudGlkO3JldHVybiB0bXA7fTtyZXR1cm57Q291bnRlcjpDb3VudGVyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFNsaWNlKGNhdGVnb3J5LHRpdGxlLGNvbG9ySWQsc3RhcnQsYXJncyxvcHRfZHVyYXRpb24sb3B0X2NwdVN0YXJ0LG9wdF9jcHVEdXJhdGlvbixvcHRfYXJnc1N0cmlwcGVkKXt0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcyxzdGFydCk7dGhpcy5jYXRlZ29yeT1jYXRlZ29yeXx8Jyc7dGhpcy50aXRsZT10aXRsZTt0aGlzLmNvbG9ySWQ9Y29sb3JJZDt0aGlzLmFyZ3M9YXJnczt0aGlzLnN0YXJ0U3RhY2tGcmFtZT11bmRlZmluZWQ7dGhpcy5lbmRTdGFja0ZyYW1lPXVuZGVmaW5lZDt0aGlzLmRpZE5vdEZpbmlzaD1mYWxzZTt0aGlzLmluRmxvd0V2ZW50cz1bXTt0aGlzLm91dEZsb3dFdmVudHM9W107dGhpcy5zdWJTbGljZXM9W107dGhpcy5zZWxmVGltZT11bmRlZmluZWQ7dGhpcy5jcHVTZWxmVGltZT11bmRlZmluZWQ7dGhpcy5pbXBvcnRhbnQ9ZmFsc2U7dGhpcy5wYXJlbnRDb250YWluZXI9dW5kZWZpbmVkO3RoaXMuYXJnc1N0cmlwcGVkPWZhbHNlO3RoaXMucGFyZW50U2xpY2U9dW5kZWZpbmVkO3RoaXMuaXNUb3BMZXZlbD1mYWxzZTtpZihvcHRfZHVyYXRpb24hPT11bmRlZmluZWQpCit0aGlzLmR1cmF0aW9uPW9wdF9kdXJhdGlvbjtpZihvcHRfY3B1U3RhcnQhPT11bmRlZmluZWQpCit0aGlzLmNwdVN0YXJ0PW9wdF9jcHVTdGFydDtpZihvcHRfY3B1RHVyYXRpb24hPT11bmRlZmluZWQpCit0aGlzLmNwdUR1cmF0aW9uPW9wdF9jcHVEdXJhdGlvbjtpZihvcHRfYXJnc1N0cmlwcGVkIT09dW5kZWZpbmVkKQordGhpcy5hcmdzU3RyaXBwZWQ9dHJ1ZTt9CitTbGljZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSxnZXQgYW5hbHlzaXNUeXBlTmFtZSgpe3JldHVybiB0aGlzLnRpdGxlO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nU2xpY2UgJyt0aGlzLnRpdGxlKycgYXQgJysKK3RyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnN0YXJ0KTt9LGZpbmREZXNjZW5kZW50U2xpY2U6ZnVuY3Rpb24odGFyZ2V0VGl0bGUpe2lmKCF0aGlzLnN1YlNsaWNlcykKK3JldHVybiB1bmRlZmluZWQ7Zm9yKHZhciBpPTA7aTx0aGlzLnN1YlNsaWNlcy5sZW5ndGg7aSsrKXtpZih0aGlzLnN1YlNsaWNlc1tpXS50aXRsZT09dGFyZ2V0VGl0bGUpCityZXR1cm4gdGhpcy5zdWJTbGljZXNbaV07dmFyIHNsaWNlPXRoaXMuc3ViU2xpY2VzW2ldLmZpbmREZXNjZW5kZW50U2xpY2UodGFyZ2V0VGl0bGUpO2lmKHNsaWNlKXJldHVybiBzbGljZTt9CityZXR1cm4gdW5kZWZpbmVkO30sZ2V0IG1vc3RUb3BMZXZlbFNsaWNlKCl7dmFyIGN1clNsaWNlPXRoaXM7d2hpbGUoY3VyU2xpY2UucGFyZW50U2xpY2UpCitjdXJTbGljZT1jdXJTbGljZS5wYXJlbnRTbGljZTtyZXR1cm4gY3VyU2xpY2U7fSxpdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7dmFyIHBhcmVudFN0YWNrPVtdO3ZhciBzdGFydGVkPWZhbHNlO3ZhciB0b3Btb3N0U2xpY2U9dGhpcy5tb3N0VG9wTGV2ZWxTbGljZTtwYXJlbnRTdGFjay5wdXNoKHRvcG1vc3RTbGljZSk7d2hpbGUocGFyZW50U3RhY2subGVuZ3RoIT09MCl7dmFyIGN1clNsaWNlPXBhcmVudFN0YWNrLnBvcCgpO2lmKHN0YXJ0ZWQpCitjYWxsYmFjay5jYWxsKG9wdF90aGlzLGN1clNsaWNlKTtlbHNlCitzdGFydGVkPShjdXJTbGljZS5ndWlkPT09dGhpcy5ndWlkKTtmb3IodmFyIGk9Y3VyU2xpY2Uuc3ViU2xpY2VzLmxlbmd0aC0xO2k+PTA7aS0tKXtwYXJlbnRTdGFjay5wdXNoKGN1clNsaWNlLnN1YlNsaWNlc1tpXSk7fX19LGdldCBzdWJzZXF1ZW50U2xpY2VzKCl7dmFyIHJlcz1bXTt0aGlzLml0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzKGZ1bmN0aW9uKHN1YnNlcVNsaWNlKXtyZXMucHVzaChzdWJzZXFTbGljZSk7fSk7cmV0dXJuIHJlczt9LGl0ZXJhdGVBbGxBbmNlc3RvcnM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe3ZhciBjdXJTbGljZT10aGlzO3doaWxlKGN1clNsaWNlLnBhcmVudFNsaWNlKXtjdXJTbGljZT1jdXJTbGljZS5wYXJlbnRTbGljZTtjYWxsYmFjay5jYWxsKG9wdF90aGlzLGN1clNsaWNlKTt9fSxnZXQgYW5jZXN0b3JTbGljZXMoKXt2YXIgcmVzPVtdO3RoaXMuaXRlcmF0ZUFsbEFuY2VzdG9ycyhmdW5jdGlvbihhbmNlc3Rvcil7cmVzLnB1c2goYW5jZXN0b3IpO30pO3JldHVybiByZXM7fSxpdGVyYXRlRW50aXJlSGllcmFyY2h5OmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt2YXIgbW9zdFRvcExldmVsU2xpY2U9dGhpcy5tb3N0VG9wTGV2ZWxTbGljZTtjYWxsYmFjay5jYWxsKG9wdF90aGlzLG1vc3RUb3BMZXZlbFNsaWNlKTttb3N0VG9wTGV2ZWxTbGljZS5pdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlcyhjYWxsYmFjayxvcHRfdGhpcyk7fSxnZXQgZW50aXJlSGllcmFyY2h5KCl7dmFyIHJlcz1bXTt0aGlzLml0ZXJhdGVFbnRpcmVIaWVyYXJjaHkoZnVuY3Rpb24oc2xpY2Upe3Jlcy5wdXNoKHNsaWNlKTt9KTtyZXR1cm4gcmVzO30sZ2V0IGFuY2VzdG9yQW5kU3Vic2VxdWVudFNsaWNlcygpe3ZhciByZXM9W107cmVzLnB1c2godGhpcyk7dGhpcy5pdGVyYXRlQWxsQW5jZXN0b3JzKGZ1bmN0aW9uKGFTbGljZSl7cmVzLnB1c2goYVNsaWNlKTt9KTt0aGlzLml0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzKGZ1bmN0aW9uKHNTbGljZSl7cmVzLnB1c2goc1NsaWNlKTt9KTtyZXR1cm4gcmVzO30saXRlcmF0ZUFsbERlc2NlbmRlbnRzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt0aGlzLnN1YlNsaWNlcy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTt0aGlzLnN1YlNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlNsaWNlKXtzdWJTbGljZS5pdGVyYXRlQWxsRGVzY2VuZGVudHMoY2FsbGJhY2ssb3B0X3RoaXMpO30sb3B0X3RoaXMpO30sZ2V0IGRlc2NlbmRlbnRTbGljZXMoKXt2YXIgcmVzPVtdO3RoaXMuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGZ1bmN0aW9uKGRlcyl7cmVzLnB1c2goZGVzKTt9KTtyZXR1cm4gcmVzO319O3JldHVybntTbGljZTpTbGljZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgU2xpY2U9dHIubW9kZWwuU2xpY2U7dmFyIFNDSEVEVUxJTkdfU1RBVEU9e0RFQlVHOidEZWJ1ZycsRVhJVF9ERUFEOidFeGl0IERlYWQnLFJVTk5BQkxFOidSdW5uYWJsZScsUlVOTklORzonUnVubmluZycsU0xFRVBJTkc6J1NsZWVwaW5nJyxTVE9QUEVEOidTdG9wcGVkJyxUQVNLX0RFQUQ6J1Rhc2sgRGVhZCcsVU5JTlRSX1NMRUVQOidVbmludGVycnVwdGlibGUgU2xlZXAnLFVOSU5UUl9TTEVFUF9XQUtFX0tJTEw6J1VuaW50ZXJydXB0aWJsZSBTbGVlcCB8IFdha2VLaWxsJyxVTklOVFJfU0xFRVBfV0FLSU5HOidVbmludGVycnVwdGlibGUgU2xlZXAgfCBXYWtpbmcnLFVOS05PV046J1VOS05PV04nLFdBS0VfS0lMTDonV2FrZWtpbGwnLFdBS0lORzonV2FraW5nJyxaT01CSUU6J1pvbWJpZSd9O2Z1bmN0aW9uIFRocmVhZFRpbWVTbGljZSh0aHJlYWQsc2NoZWR1bGluZ1N0YXRlLGNhdCxzdGFydCxhcmdzLG9wdF9kdXJhdGlvbil7U2xpY2UuY2FsbCh0aGlzLGNhdCxzY2hlZHVsaW5nU3RhdGUsdGhpcy5nZXRDb2xvckZvclN0YXRlXyhzY2hlZHVsaW5nU3RhdGUpLHN0YXJ0LGFyZ3Msb3B0X2R1cmF0aW9uKTt0aGlzLnRocmVhZD10aHJlYWQ7dGhpcy5zY2hlZHVsaW5nU3RhdGU9c2NoZWR1bGluZ1N0YXRlO3RoaXMuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmc9dW5kZWZpbmVkO30KK1RocmVhZFRpbWVTbGljZS5wcm90b3R5cGU9e19fcHJvdG9fXzpTbGljZS5wcm90b3R5cGUsZ2V0Q29sb3JGb3JTdGF0ZV86ZnVuY3Rpb24oc3RhdGUpe3ZhciBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lPXRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZTtzd2l0Y2goc3RhdGUpe2Nhc2UgU0NIRURVTElOR19TVEFURS5SVU5OQUJMRTpyZXR1cm4gZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgndGhyZWFkX3N0YXRlX3J1bm5hYmxlJyk7Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkc6cmV0dXJuIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ3RocmVhZF9zdGF0ZV9ydW5uaW5nJyk7Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HOnJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfc2xlZXBpbmcnKTtjYXNlIFNDSEVEVUxJTkdfU1RBVEUuREVCVUc6Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLkVYSVRfREVBRDpjYXNlIFNDSEVEVUxJTkdfU1RBVEUuU1RPUFBFRDpjYXNlIFNDSEVEVUxJTkdfU1RBVEUuVEFTS19ERUFEOmNhc2UgU0NIRURVTElOR19TVEFURS5VTklOVFJfU0xFRVA6Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUF9XQUtFX0tJTEw6Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUF9XQUtJTkc6Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlVOS05PV046Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLldBS0VfS0lMTDpjYXNlIFNDSEVEVUxJTkdfU1RBVEUuV0FLSU5HOmNhc2UgU0NIRURVTElOR19TVEFURS5aT01CSUU6cmV0dXJuIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ3RocmVhZF9zdGF0ZV9pb3dhaXQnKTtkZWZhdWx0OnJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfdW5rbm93bicpO319LGdldCBhbmFseXNpc1R5cGVOYW1lKCl7cmV0dXJuJ3RyLnVpLmFuYWx5c2lzLlRocmVhZFRpbWVTbGljZSc7fSxnZXRBc3NvY2lhdGVkQ3B1U2xpY2U6ZnVuY3Rpb24oKXtpZighdGhpcy5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZykKK3JldHVybiB1bmRlZmluZWQ7dmFyIGNwdVNsaWNlcz10aGlzLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nLnNsaWNlcztmb3IodmFyIGk9MDtpPGNwdVNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgY3B1U2xpY2U9Y3B1U2xpY2VzW2ldO2lmKGNwdVNsaWNlLnN0YXJ0IT09dGhpcy5zdGFydCkKK2NvbnRpbnVlO2lmKGNwdVNsaWNlLmR1cmF0aW9uIT09dGhpcy5kdXJhdGlvbikKK2NvbnRpbnVlO3JldHVybiBjcHVTbGljZTt9CityZXR1cm4gdW5kZWZpbmVkO30sZ2V0Q3B1U2xpY2VUaGF0VG9va0NwdTpmdW5jdGlvbigpe2lmKHRoaXMuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcpCityZXR1cm4gdW5kZWZpbmVkO3ZhciBjdXJJbmRleD10aGlzLnRocmVhZC5pbmRleE9mVGltZVNsaWNlKHRoaXMpO3ZhciBjcHVTbGljZVdoZW5MYXN0UnVubmluZzt3aGlsZShjdXJJbmRleD49MCl7dmFyIGN1clNsaWNlPXRoaXMudGhyZWFkLnRpbWVTbGljZXNbY3VySW5kZXhdO2lmKCFjdXJTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZyl7Y3VySW5kZXgtLTtjb250aW51ZTt9CitjcHVTbGljZVdoZW5MYXN0UnVubmluZz1jdXJTbGljZS5nZXRBc3NvY2lhdGVkQ3B1U2xpY2UoKTticmVhazt9CitpZighY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcpCityZXR1cm4gdW5kZWZpbmVkO3ZhciBjcHU9Y3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcuY3B1O3ZhciBpbmRleE9mU2xpY2VPbkNwdVdoZW5MYXN0UnVubmluZz1jcHUuaW5kZXhPZihjcHVTbGljZVdoZW5MYXN0UnVubmluZyk7dmFyIG5leHRSdW5uaW5nU2xpY2U9Y3B1LnNsaWNlc1tpbmRleE9mU2xpY2VPbkNwdVdoZW5MYXN0UnVubmluZysxXTtpZighbmV4dFJ1bm5pbmdTbGljZSkKK3JldHVybiB1bmRlZmluZWQ7aWYoTWF0aC5hYnMobmV4dFJ1bm5pbmdTbGljZS5zdGFydC1jcHVTbGljZVdoZW5MYXN0UnVubmluZy5lbmQpPDAuMDAwMDEpCityZXR1cm4gbmV4dFJ1bm5pbmdTbGljZTtyZXR1cm4gdW5kZWZpbmVkO319O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoVGhyZWFkVGltZVNsaWNlLHtuYW1lOid0aHJlYWRUaW1lU2xpY2UnLHBsdXJhbE5hbWU6J3RocmVhZFRpbWVTbGljZXMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItdWktYS1zaW5nbGUtdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3J30pO3JldHVybntUaHJlYWRUaW1lU2xpY2U6VGhyZWFkVGltZVNsaWNlLFNDSEVEVUxJTkdfU1RBVEU6U0NIRURVTElOR19TVEFURX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgU2xpY2U9dHIubW9kZWwuU2xpY2U7ZnVuY3Rpb24gQ3B1U2xpY2UoY2F0LHRpdGxlLGNvbG9ySWQsc3RhcnQsYXJncyxvcHRfZHVyYXRpb24pe1NsaWNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRocmVhZFRoYXRXYXNSdW5uaW5nPXVuZGVmaW5lZDt0aGlzLmNwdT11bmRlZmluZWQ7fQorQ3B1U2xpY2UucHJvdG90eXBlPXtfX3Byb3RvX186U2xpY2UucHJvdG90eXBlLGdldCBhbmFseXNpc1R5cGVOYW1lKCl7cmV0dXJuJ3RyLnVpLmFuYWx5c2lzLkNwdVNsaWNlJzt9LGdldEFzc29jaWF0ZWRUaW1lc2xpY2U6ZnVuY3Rpb24oKXtpZighdGhpcy50aHJlYWRUaGF0V2FzUnVubmluZykKK3JldHVybiB1bmRlZmluZWQ7dmFyIHRpbWVTbGljZXM9dGhpcy50aHJlYWRUaGF0V2FzUnVubmluZy50aW1lU2xpY2VzO2Zvcih2YXIgaT0wO2k8dGltZVNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgdGltZVNsaWNlPXRpbWVTbGljZXNbaV07aWYodGltZVNsaWNlLnN0YXJ0IT09dGhpcy5zdGFydCkKK2NvbnRpbnVlO2lmKHRpbWVTbGljZS5kdXJhdGlvbiE9PXRoaXMuZHVyYXRpb24pCitjb250aW51ZTtyZXR1cm4gdGltZVNsaWNlO30KK3JldHVybiB1bmRlZmluZWQ7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihDcHVTbGljZSx7bmFtZTonY3B1U2xpY2UnLHBsdXJhbE5hbWU6J2NwdVNsaWNlcycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci11aS1hLXNpbmdsZS1jcHUtc2xpY2Utc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLW11bHRpLWNwdS1zbGljZS1zdWItdmlldyd9KTtyZXR1cm57Q3B1U2xpY2U6Q3B1U2xpY2V9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIENvdW50ZXI9dHIubW9kZWwuQ291bnRlcjt2YXIgU2xpY2U9dHIubW9kZWwuU2xpY2U7dmFyIENwdVNsaWNlPXRyLm1vZGVsLkNwdVNsaWNlO2Z1bmN0aW9uIENwdShrZXJuZWwsbnVtYmVyKXtpZihrZXJuZWw9PT11bmRlZmluZWR8fG51bWJlcj09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignTWlzc2luZyBhcmd1bWVudHMnKTt0aGlzLmtlcm5lbD1rZXJuZWw7dGhpcy5jcHVOdW1iZXI9bnVtYmVyO3RoaXMuc2xpY2VzPVtdO3RoaXMuY291bnRlcnM9e307dGhpcy5ib3VuZHM9bmV3IHRyLmIuUmFuZ2UoKTt0aGlzLnNhbXBsZXNfPXVuZGVmaW5lZDt0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfPXVuZGVmaW5lZDt0aGlzLmxhc3RBY3RpdmVUaHJlYWRfPXVuZGVmaW5lZDt0aGlzLmxhc3RBY3RpdmVOYW1lXz11bmRlZmluZWQ7dGhpcy5sYXN0QWN0aXZlQXJnc189dW5kZWZpbmVkO307Q3B1LnByb3RvdHlwZT17aXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjpmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsY2FsbGJhY2ssb3B0X3RoaXMpe2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLHRyLm1vZGVsLkNwdVNsaWNlKSkKK3RoaXMuc2xpY2VzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO2lmKHRoaXMuc2FtcGxlc18pe2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLHRyLm1vZGVsLlNhbXBsZSkpCit0aGlzLnNhbXBsZXNfLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO319LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7Zm9yKHZhciBpZCBpbiB0aGlzLmNvdW50ZXJzKQorY2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLmNvdW50ZXJzW2lkXSk7fSxnZXRPckNyZWF0ZUNvdW50ZXI6ZnVuY3Rpb24oY2F0LG5hbWUpe3ZhciBpZD1jYXQrJy4nK25hbWU7aWYoIXRoaXMuY291bnRlcnNbaWRdKQordGhpcy5jb3VudGVyc1tpZF09bmV3IENvdW50ZXIodGhpcyxpZCxjYXQsbmFtZSk7cmV0dXJuIHRoaXMuY291bnRlcnNbaWRdO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe2Zvcih2YXIgc0k9MDtzSTx0aGlzLnNsaWNlcy5sZW5ndGg7c0krKykKK3RoaXMuc2xpY2VzW3NJXS5zdGFydD0odGhpcy5zbGljZXNbc0ldLnN0YXJ0K2Ftb3VudCk7Zm9yKHZhciBpZCBpbiB0aGlzLmNvdW50ZXJzKQordGhpcy5jb3VudGVyc1tpZF0uc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpO30sdXBkYXRlQm91bmRzOmZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMucmVzZXQoKTtpZih0aGlzLnNsaWNlcy5sZW5ndGgpe3RoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2xpY2VzWzBdLnN0YXJ0KTt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1t0aGlzLnNsaWNlcy5sZW5ndGgtMV0uZW5kKTt9Citmb3IodmFyIGlkIGluIHRoaXMuY291bnRlcnMpe3RoaXMuY291bnRlcnNbaWRdLnVwZGF0ZUJvdW5kcygpO3RoaXMuYm91bmRzLmFkZFJhbmdlKHRoaXMuY291bnRlcnNbaWRdLmJvdW5kcyk7fQoraWYodGhpcy5zYW1wbGVzXyYmdGhpcy5zYW1wbGVzXy5sZW5ndGgpe3RoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2FtcGxlc19bMF0uc3RhcnQpO3RoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2FtcGxlc19bdGhpcy5zYW1wbGVzXy5sZW5ndGgtMV0uZW5kKTt9fSxjcmVhdGVTdWJTbGljZXM6ZnVuY3Rpb24oKXt0aGlzLnNhbXBsZXNfPXRoaXMua2VybmVsLm1vZGVsLnNhbXBsZXMuZmlsdGVyKGZ1bmN0aW9uKHNhbXBsZSl7cmV0dXJuIHNhbXBsZS5jcHU9PXRoaXM7fSx0aGlzKTt9LGFkZENhdGVnb3JpZXNUb0RpY3Q6ZnVuY3Rpb24oY2F0ZWdvcmllc0RpY3Qpe2Zvcih2YXIgaT0wO2k8dGhpcy5zbGljZXMubGVuZ3RoO2krKykKK2NhdGVnb3JpZXNEaWN0W3RoaXMuc2xpY2VzW2ldLmNhdGVnb3J5XT10cnVlO2Zvcih2YXIgaWQgaW4gdGhpcy5jb3VudGVycykKK2NhdGVnb3JpZXNEaWN0W3RoaXMuY291bnRlcnNbaWRdLmNhdGVnb3J5XT10cnVlO2Zvcih2YXIgaT0wO2k8dGhpcy5zYW1wbGVzXy5sZW5ndGg7aSsrKQorY2F0ZWdvcmllc0RpY3RbdGhpcy5zYW1wbGVzX1tpXS5jYXRlZ29yeV09dHJ1ZTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuJ0NQVSAnK3RoaXMuY3B1TnVtYmVyO30saW5kZXhPZjpmdW5jdGlvbihjcHVTbGljZSl7dmFyIGk9dHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KHRoaXMuc2xpY2VzLGZ1bmN0aW9uKHNsaWNlKXtyZXR1cm4gc2xpY2Uuc3RhcnQ7fSxjcHVTbGljZS5zdGFydCk7aWYodGhpcy5zbGljZXNbaV0hPT1jcHVTbGljZSkKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIGk7fSxjbG9zZUFjdGl2ZVRocmVhZDpmdW5jdGlvbihlbmRfdGltZXN0YW1wLGFyZ3Mpe2lmKHRoaXMubGFzdEFjdGl2ZVRocmVhZF89PXVuZGVmaW5lZHx8dGhpcy5sYXN0QWN0aXZlVGhyZWFkXz09MCkKK3JldHVybjtpZihlbmRfdGltZXN0YW1wPHRoaXMubGFzdEFjdGl2ZVRpbWVzdGFtcF8pe3Rocm93IG5ldyBFcnJvcignVGhlIGVuZCB0aW1lc3RhbXAgb2YgYSB0aHJlYWQgcnVubmluZyBvbiBDUFUgJysKK3RoaXMuY3B1TnVtYmVyKycgaXMgYmVmb3JlIGl0cyBzdGFydCB0aW1lc3RhbXAuJyk7fQorZm9yKHZhciBrZXkgaW4gYXJncyl7dGhpcy5sYXN0QWN0aXZlQXJnc19ba2V5XT1hcmdzW2tleV07fQordmFyIGR1cmF0aW9uPWVuZF90aW1lc3RhbXAtdGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXzt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLkNwdVNsaWNlKCcnLHRoaXMubGFzdEFjdGl2ZU5hbWVfLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHRoaXMubGFzdEFjdGl2ZU5hbWVfKSx0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfLHRoaXMubGFzdEFjdGl2ZUFyZ3NfLGR1cmF0aW9uKTtzbGljZS5jcHU9dGhpczt0aGlzLnNsaWNlcy5wdXNoKHNsaWNlKTt0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfPXVuZGVmaW5lZDt0aGlzLmxhc3RBY3RpdmVUaHJlYWRfPXVuZGVmaW5lZDt0aGlzLmxhc3RBY3RpdmVOYW1lXz11bmRlZmluZWQ7dGhpcy5sYXN0QWN0aXZlQXJnc189dW5kZWZpbmVkO30sc3dpdGNoQWN0aXZlVGhyZWFkOmZ1bmN0aW9uKHRpbWVzdGFtcCxvbGRfdGhyZWFkX2FyZ3MsbmV3X3RocmVhZF9pZCxuZXdfdGhyZWFkX25hbWUsbmV3X3RocmVhZF9hcmdzKXt0aGlzLmNsb3NlQWN0aXZlVGhyZWFkKHRpbWVzdGFtcCxvbGRfdGhyZWFkX2FyZ3MpO3RoaXMubGFzdEFjdGl2ZVRpbWVzdGFtcF89dGltZXN0YW1wO3RoaXMubGFzdEFjdGl2ZVRocmVhZF89bmV3X3RocmVhZF9pZDt0aGlzLmxhc3RBY3RpdmVOYW1lXz1uZXdfdGhyZWFkX25hbWU7dGhpcy5sYXN0QWN0aXZlQXJnc189bmV3X3RocmVhZF9hcmdzO30sZ2V0IHNhbXBsZXMoKXtyZXR1cm4gdGhpcy5zYW1wbGVzXzt9fTtDcHUuY29tcGFyZT1mdW5jdGlvbih4LHkpe3JldHVybiB4LmNwdU51bWJlci15LmNwdU51bWJlcjt9O3JldHVybntDcHU6Q3B1fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIE9iamVjdFNuYXBzaG90KG9iamVjdEluc3RhbmNlLHRzLGFyZ3Mpe3RyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7dGhpcy5vYmplY3RJbnN0YW5jZT1vYmplY3RJbnN0YW5jZTt0aGlzLnRzPXRzO3RoaXMuYXJncz1hcmdzO30KK09iamVjdFNuYXBzaG90LnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50LnByb3RvdHlwZSxwcmVJbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxhZGRCb3VuZHNUb1JhbmdlOmZ1bmN0aW9uKHJhbmdlKXtyYW5nZS5hZGRWYWx1ZSh0aGlzLnRzKTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuJ1NuYXBzaG90IG9mICcrCit0aGlzLm9iamVjdEluc3RhbmNlLnR5cGVOYW1lKycgJysKK3RoaXMub2JqZWN0SW5zdGFuY2UuaWQrJyBAICcrCit0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQodGhpcy50cyk7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihPYmplY3RTbmFwc2hvdCx7bmFtZTonb2JqZWN0U25hcHNob3QnLHBsdXJhbE5hbWU6J29iamVjdFNuYXBzaG90cycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci11aS1hLXNpbmdsZS1vYmplY3Qtc25hcHNob3Qtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLW11bHRpLW9iamVjdC1zdWItdmlldyd9KTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPU9iamVjdFNuYXBzaG90O29wdGlvbnMuZGVmYXVsdENvbnN0cnVjdG9yPU9iamVjdFNuYXBzaG90O3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RTbmFwc2hvdCxvcHRpb25zKTtyZXR1cm57T2JqZWN0U25hcHNob3Q6T2JqZWN0U25hcHNob3R9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIE9iamVjdFNuYXBzaG90PXRyLm1vZGVsLk9iamVjdFNuYXBzaG90O2Z1bmN0aW9uIE9iamVjdEluc3RhbmNlKHBhcmVudCxpZCxjYXRlZ29yeSxuYW1lLGNyZWF0aW9uVHMsb3B0X2Jhc2VUeXBlTmFtZSl7dHIubW9kZWwuRXZlbnQuY2FsbCh0aGlzKTt0aGlzLnBhcmVudD1wYXJlbnQ7dGhpcy5pZD1pZDt0aGlzLmNhdGVnb3J5PWNhdGVnb3J5O3RoaXMuYmFzZVR5cGVOYW1lPW9wdF9iYXNlVHlwZU5hbWU/b3B0X2Jhc2VUeXBlTmFtZTpuYW1lO3RoaXMubmFtZT1uYW1lO3RoaXMuY3JlYXRpb25Ucz1jcmVhdGlvblRzO3RoaXMuY3JlYXRpb25Uc1dhc0V4cGxpY2l0PWZhbHNlO3RoaXMuZGVsZXRpb25Ucz1OdW1iZXIuTUFYX1ZBTFVFO3RoaXMuZGVsZXRpb25Uc1dhc0V4cGxpY2l0PWZhbHNlO3RoaXMuY29sb3JJZD0wO3RoaXMuYm91bmRzPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5zbmFwc2hvdHM9W107dGhpcy5oYXNJbXBsaWNpdFNuYXBzaG90cz1mYWxzZTt9CitPYmplY3RJbnN0YW5jZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsZ2V0IHR5cGVOYW1lKCl7cmV0dXJuIHRoaXMubmFtZTt9LGFkZEJvdW5kc1RvUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe3JhbmdlLmFkZFJhbmdlKHRoaXMuYm91bmRzKTt9LGFkZFNuYXBzaG90OmZ1bmN0aW9uKHRzLGFyZ3Msb3B0X25hbWUsb3B0X2Jhc2VUeXBlTmFtZSl7aWYodHM8dGhpcy5jcmVhdGlvblRzKQordGhyb3cgbmV3IEVycm9yKCdTbmFwc2hvdHMgbXVzdCBiZSA+PSBpbnN0YW5jZS5jcmVhdGlvblRzJyk7aWYodHM+PXRoaXMuZGVsZXRpb25UcykKK3Rocm93IG5ldyBFcnJvcignU25hcHNob3RzIGNhbm5vdCBiZSBhZGRlZCBhZnRlciAnKydhbiBvYmplY3RzIGRlbGV0aW9uIHRpbWVzdGFtcC4nKTt2YXIgbGFzdFNuYXBzaG90O2lmKHRoaXMuc25hcHNob3RzLmxlbmd0aD4wKXtsYXN0U25hcHNob3Q9dGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoLTFdO2lmKGxhc3RTbmFwc2hvdC50cz09dHMpCit0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBhbHJlYWR5IGV4aXN0cyBhdCB0aGlzIHRpbWUhJyk7aWYodHM8bGFzdFNuYXBzaG90LnRzKXt0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBtdXN0IGJlIGFkZGVkIGluIGluY3JlYXNpbmcgdGltZXN0YW1wIG9yZGVyJyk7fX0KK2lmKG9wdF9uYW1lJiYodGhpcy5uYW1lIT1vcHRfbmFtZSkpe2lmKCFvcHRfYmFzZVR5cGVOYW1lKQordGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYmFzZSB0eXBlIG5hbWUgZm9yIG5hbWUgdXBkYXRlJyk7aWYodGhpcy5iYXNlVHlwZU5hbWUhPW9wdF9iYXNlVHlwZU5hbWUpCit0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgdHlwZSBuYW1lOiBiYXNlIHR5cGVzIGRvbnQgbWF0Y2gnKTt0aGlzLm5hbWU9b3B0X25hbWU7fQordmFyIHNuYXBzaG90Q29uc3RydWN0b3I9dHIubW9kZWwuT2JqZWN0U25hcHNob3QuZ2V0Q29uc3RydWN0b3IodGhpcy5jYXRlZ29yeSx0aGlzLm5hbWUpO3ZhciBzbmFwc2hvdD1uZXcgc25hcHNob3RDb25zdHJ1Y3Rvcih0aGlzLHRzLGFyZ3MpO3RoaXMuc25hcHNob3RzLnB1c2goc25hcHNob3QpO3JldHVybiBzbmFwc2hvdDt9LHdhc0RlbGV0ZWQ6ZnVuY3Rpb24odHMpe3ZhciBsYXN0U25hcHNob3Q7aWYodGhpcy5zbmFwc2hvdHMubGVuZ3RoPjApe2xhc3RTbmFwc2hvdD10aGlzLnNuYXBzaG90c1t0aGlzLnNuYXBzaG90cy5sZW5ndGgtMV07aWYobGFzdFNuYXBzaG90LnRzPnRzKQordGhyb3cgbmV3IEVycm9yKCdJbnN0YW5jZSBjYW5ub3QgYmUgZGVsZXRlZCBhdCB0cz0nKwordHMrJy4gQSBzbmFwc2hvdCBleGlzdHMgdGhhdCBpcyBvbGRlci4nKTt9Cit0aGlzLmRlbGV0aW9uVHM9dHM7dGhpcy5kZWxldGlvblRzV2FzRXhwbGljaXQ9dHJ1ZTt9LHByZUluaXRpYWxpemU6ZnVuY3Rpb24oKXtmb3IodmFyIGk9MDtpPHRoaXMuc25hcHNob3RzLmxlbmd0aDtpKyspCit0aGlzLnNuYXBzaG90c1tpXS5wcmVJbml0aWFsaXplKCk7fSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTx0aGlzLnNuYXBzaG90cy5sZW5ndGg7aSsrKQordGhpcy5zbmFwc2hvdHNbaV0uaW5pdGlhbGl6ZSgpO30sZ2V0U25hcHNob3RBdDpmdW5jdGlvbih0cyl7aWYodHM8dGhpcy5jcmVhdGlvblRzKXtpZih0aGlzLmNyZWF0aW9uVHNXYXNFeHBsaWNpdCkKK3Rocm93IG5ldyBFcnJvcigndHMgbXVzdCBiZSB3aXRoaW4gbGlmZXRpbWUgb2YgdGhpcyBpbnN0YW5jZScpO3JldHVybiB0aGlzLnNuYXBzaG90c1swXTt9CitpZih0cz50aGlzLmRlbGV0aW9uVHMpCit0aHJvdyBuZXcgRXJyb3IoJ3RzIG11c3QgYmUgd2l0aGluIGxpZmV0aW1lIG9mIHRoaXMgaW5zdGFuY2UnKTt2YXIgc25hcHNob3RzPXRoaXMuc25hcHNob3RzO3ZhciBpPXRyLmIuZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMoc25hcHNob3RzLGZ1bmN0aW9uKHNuYXBzaG90KXtyZXR1cm4gc25hcHNob3QudHM7fSxmdW5jdGlvbihzbmFwc2hvdCxpKXtpZihpPT1zbmFwc2hvdHMubGVuZ3RoLTEpCityZXR1cm4gc25hcHNob3RzW2ldLm9iamVjdEluc3RhbmNlLmRlbGV0aW9uVHM7cmV0dXJuIHNuYXBzaG90c1tpKzFdLnRzLXNuYXBzaG90c1tpXS50czt9LHRzKTtpZihpPDApe3JldHVybiB0aGlzLnNuYXBzaG90c1swXTt9CitpZihpPj10aGlzLnNuYXBzaG90cy5sZW5ndGgpCityZXR1cm4gdGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoLTFdO3JldHVybiB0aGlzLnNuYXBzaG90c1tpXTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5jcmVhdGlvblRzKTtpZih0aGlzLmRlbGV0aW9uVHMhPU51bWJlci5NQVhfVkFMVUUpCit0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLmRlbGV0aW9uVHMpO2Vsc2UgaWYodGhpcy5zbmFwc2hvdHMubGVuZ3RoPjApCit0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNuYXBzaG90c1t0aGlzLnNuYXBzaG90cy5sZW5ndGgtMV0udHMpO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe3RoaXMuY3JlYXRpb25Ucys9YW1vdW50O2lmKHRoaXMuZGVsZXRpb25UcyE9TnVtYmVyLk1BWF9WQUxVRSkKK3RoaXMuZGVsZXRpb25Ucys9YW1vdW50O3RoaXMuc25hcHNob3RzLmZvckVhY2goZnVuY3Rpb24oc25hcHNob3Qpe3NuYXBzaG90LnRzKz1hbW91bnQ7fSk7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybiB0aGlzLnR5cGVOYW1lKycgb2JqZWN0ICcrdGhpcy5pZDt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKE9iamVjdEluc3RhbmNlLHtuYW1lOidvYmplY3RJbnN0YW5jZScscGx1cmFsTmFtZTonb2JqZWN0SW5zdGFuY2VzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtc2luZ2xlLW9iamVjdC1pbnN0YW5jZS1zdWItdmlldycsbXVsdGlWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtbXVsdGktb2JqZWN0LXN1Yi12aWV3J30pO3ZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLlRZUEVfQkFTRURfUkVHSVNUUllfTU9ERSk7b3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3M9T2JqZWN0SW5zdGFuY2U7b3B0aW9ucy5kZWZhdWx0Q29uc3RydWN0b3I9T2JqZWN0SW5zdGFuY2U7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KE9iamVjdEluc3RhbmNlLG9wdGlvbnMpO3JldHVybntPYmplY3RJbnN0YW5jZTpPYmplY3RJbnN0YW5jZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBUaW1lVG9PYmplY3RJbnN0YW5jZU1hcChjcmVhdGVPYmplY3RJbnN0YW5jZUZ1bmN0aW9uLHBhcmVudCxpZCl7dGhpcy5jcmVhdGVPYmplY3RJbnN0YW5jZUZ1bmN0aW9uXz1jcmVhdGVPYmplY3RJbnN0YW5jZUZ1bmN0aW9uO3RoaXMucGFyZW50PXBhcmVudDt0aGlzLmlkPWlkO3RoaXMuaW5zdGFuY2VzPVtdO30KK1RpbWVUb09iamVjdEluc3RhbmNlTWFwLnByb3RvdHlwZT17aWRXYXNDcmVhdGVkOmZ1bmN0aW9uKGNhdGVnb3J5LG5hbWUsdHMpe2lmKHRoaXMuaW5zdGFuY2VzLmxlbmd0aD09MCl7dGhpcy5pbnN0YW5jZXMucHVzaCh0aGlzLmNyZWF0ZU9iamVjdEluc3RhbmNlRnVuY3Rpb25fKHRoaXMucGFyZW50LHRoaXMuaWQsY2F0ZWdvcnksbmFtZSx0cykpO3RoaXMuaW5zdGFuY2VzWzBdLmNyZWF0aW9uVHNXYXNFeHBsaWNpdD10cnVlO3JldHVybiB0aGlzLmluc3RhbmNlc1swXTt9Cit2YXIgbGFzdEluc3RhbmNlPXRoaXMuaW5zdGFuY2VzW3RoaXMuaW5zdGFuY2VzLmxlbmd0aC0xXTtpZih0czxsYXN0SW5zdGFuY2UuZGVsZXRpb25Ucyl7dGhyb3cgbmV3IEVycm9yKCdNdXRhdGlvbiBvZiB0aGUgVGltZVRvT2JqZWN0SW5zdGFuY2VNYXAgbXVzdCBiZSAnKydkb25lIGluIGFzY2VuZGluZyB0aW1lc3RhbXAgb3JkZXIuJyk7fQorbGFzdEluc3RhbmNlPXRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl8odGhpcy5wYXJlbnQsdGhpcy5pZCxjYXRlZ29yeSxuYW1lLHRzKTtsYXN0SW5zdGFuY2UuY3JlYXRpb25Uc1dhc0V4cGxpY2l0PXRydWU7dGhpcy5pbnN0YW5jZXMucHVzaChsYXN0SW5zdGFuY2UpO3JldHVybiBsYXN0SW5zdGFuY2U7fSxhZGRTbmFwc2hvdDpmdW5jdGlvbihjYXRlZ29yeSxuYW1lLHRzLGFyZ3Msb3B0X2Jhc2VUeXBlTmFtZSl7aWYodGhpcy5pbnN0YW5jZXMubGVuZ3RoPT0wKXt0aGlzLmluc3RhbmNlcy5wdXNoKHRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl8odGhpcy5wYXJlbnQsdGhpcy5pZCxjYXRlZ29yeSxuYW1lLHRzLG9wdF9iYXNlVHlwZU5hbWUpKTt9Cit2YXIgaT10ci5iLmZpbmRJbmRleEluU29ydGVkSW50ZXJ2YWxzKHRoaXMuaW5zdGFuY2VzLGZ1bmN0aW9uKGluc3Qpe3JldHVybiBpbnN0LmNyZWF0aW9uVHM7fSxmdW5jdGlvbihpbnN0KXtyZXR1cm4gaW5zdC5kZWxldGlvblRzLWluc3QuY3JlYXRpb25Uczt9LHRzKTt2YXIgaW5zdGFuY2U7aWYoaTwwKXtpbnN0YW5jZT10aGlzLmluc3RhbmNlc1swXTtpZih0cz5pbnN0YW5jZS5kZWxldGlvblRzfHxpbnN0YW5jZS5jcmVhdGlvblRzV2FzRXhwbGljaXQpe3Rocm93IG5ldyBFcnJvcignQXQgdGhlIHByb3ZpZGVkIHRpbWVzdGFtcCwgbm8gaW5zdGFuY2Ugd2FzIHN0aWxsIGFsaXZlJyk7fQoraWYoaW5zdGFuY2Uuc25hcHNob3RzLmxlbmd0aCE9MCl7dGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc2hpZnQgY3JlYXRpb25UcyBmb3J3YXJkLCAnKydzbmFwc2hvdHMgaGF2ZSBiZWVuIGFkZGVkLiBGaXJzdCBzbmFwIHdhcyBhdCB0cz0nKworaW5zdGFuY2Uuc25hcHNob3RzWzBdLnRzKycgYW5kIGNyZWF0aW9uVHMgd2FzICcrCitpbnN0YW5jZS5jcmVhdGlvblRzKTt9CitpbnN0YW5jZS5jcmVhdGlvblRzPXRzO31lbHNlIGlmKGk+PXRoaXMuaW5zdGFuY2VzLmxlbmd0aCl7aW5zdGFuY2U9dGhpcy5pbnN0YW5jZXNbdGhpcy5pbnN0YW5jZXMubGVuZ3RoLTFdO2lmKHRzPj1pbnN0YW5jZS5kZWxldGlvblRzKXtpbnN0YW5jZT10aGlzLmNyZWF0ZU9iamVjdEluc3RhbmNlRnVuY3Rpb25fKHRoaXMucGFyZW50LHRoaXMuaWQsY2F0ZWdvcnksbmFtZSx0cyxvcHRfYmFzZVR5cGVOYW1lKTt0aGlzLmluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTt9ZWxzZXt2YXIgbGFzdFZhbGlkSW5kZXg7Zm9yKHZhciBpPXRoaXMuaW5zdGFuY2VzLmxlbmd0aC0xO2k+PTA7aS0tKXt2YXIgdG1wPXRoaXMuaW5zdGFuY2VzW2ldO2lmKHRzPj10bXAuZGVsZXRpb25UcykKK2JyZWFrO2lmKHRtcC5jcmVhdGlvblRzV2FzRXhwbGljaXQ9PWZhbHNlJiZ0bXAuc25hcHNob3RzLmxlbmd0aD09MCkKK2xhc3RWYWxpZEluZGV4PWk7fQoraWYobGFzdFZhbGlkSW5kZXg9PT11bmRlZmluZWQpe3Rocm93IG5ldyBFcnJvcignQ2Fubm90IGFkZCBzbmFwc2hvdC4gTm8gaW5zdGFuY2Ugd2FzIGFsaXZlIHRoYXQgd2FzIG11dGFibGUuJyk7fQoraW5zdGFuY2U9dGhpcy5pbnN0YW5jZXNbbGFzdFZhbGlkSW5kZXhdO2luc3RhbmNlLmNyZWF0aW9uVHM9dHM7fX1lbHNle2luc3RhbmNlPXRoaXMuaW5zdGFuY2VzW2ldO30KK3JldHVybiBpbnN0YW5jZS5hZGRTbmFwc2hvdCh0cyxhcmdzLG5hbWUsb3B0X2Jhc2VUeXBlTmFtZSk7fSxnZXQgbGFzdEluc3RhbmNlKCl7aWYodGhpcy5pbnN0YW5jZXMubGVuZ3RoPT0wKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5pbnN0YW5jZXNbdGhpcy5pbnN0YW5jZXMubGVuZ3RoLTFdO30saWRXYXNEZWxldGVkOmZ1bmN0aW9uKGNhdGVnb3J5LG5hbWUsdHMpe2lmKHRoaXMuaW5zdGFuY2VzLmxlbmd0aD09MCl7dGhpcy5pbnN0YW5jZXMucHVzaCh0aGlzLmNyZWF0ZU9iamVjdEluc3RhbmNlRnVuY3Rpb25fKHRoaXMucGFyZW50LHRoaXMuaWQsY2F0ZWdvcnksbmFtZSx0cykpO30KK3ZhciBsYXN0SW5zdGFuY2U9dGhpcy5pbnN0YW5jZXNbdGhpcy5pbnN0YW5jZXMubGVuZ3RoLTFdO2lmKHRzPGxhc3RJbnN0YW5jZS5jcmVhdGlvblRzKQordGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGEgaWQgYmVmb3JlIGl0IHdhcyBjcmF0ZWQnKTtpZihsYXN0SW5zdGFuY2UuZGVsZXRpb25Ucz09TnVtYmVyLk1BWF9WQUxVRSl7bGFzdEluc3RhbmNlLndhc0RlbGV0ZWQodHMpO3JldHVybiBsYXN0SW5zdGFuY2U7fQoraWYodHM8bGFzdEluc3RhbmNlLmRlbGV0aW9uVHMpCit0aHJvdyBuZXcgRXJyb3IoJ2lkIHdhcyBhbHJlYWR5IGRlbGV0ZWQgZWFybGllci4nKTtsYXN0SW5zdGFuY2U9dGhpcy5jcmVhdGVPYmplY3RJbnN0YW5jZUZ1bmN0aW9uXyh0aGlzLnBhcmVudCx0aGlzLmlkLGNhdGVnb3J5LG5hbWUsdHMpO3RoaXMuaW5zdGFuY2VzLnB1c2gobGFzdEluc3RhbmNlKTtsYXN0SW5zdGFuY2Uud2FzRGVsZXRlZCh0cyk7cmV0dXJuIGxhc3RJbnN0YW5jZTt9LGdldEluc3RhbmNlQXQ6ZnVuY3Rpb24odHMpe3ZhciBpPXRyLmIuZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHModGhpcy5pbnN0YW5jZXMsZnVuY3Rpb24oaW5zdCl7cmV0dXJuIGluc3QuY3JlYXRpb25Uczt9LGZ1bmN0aW9uKGluc3Qpe3JldHVybiBpbnN0LmRlbGV0aW9uVHMtaW5zdC5jcmVhdGlvblRzO30sdHMpO2lmKGk8MCl7aWYodGhpcy5pbnN0YW5jZXNbMF0uY3JlYXRpb25Uc1dhc0V4cGxpY2l0KQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5pbnN0YW5jZXNbMF07fWVsc2UgaWYoaT49dGhpcy5pbnN0YW5jZXMubGVuZ3RoKXtyZXR1cm4gdW5kZWZpbmVkO30KK3JldHVybiB0aGlzLmluc3RhbmNlc1tpXTt9LGxvZ1RvQ29uc29sZTpmdW5jdGlvbigpe2Zvcih2YXIgaT0wO2k8dGhpcy5pbnN0YW5jZXMubGVuZ3RoO2krKyl7dmFyIGluc3RhbmNlPXRoaXMuaW5zdGFuY2VzW2ldO3ZhciBjRUY9Jyc7dmFyIGRFRj0nJztpZihpbnN0YW5jZS5jcmVhdGlvblRzV2FzRXhwbGljaXQpCitjRUY9JyhleHBsaWNpdEMpJztpZihpbnN0YW5jZS5kZWxldGlvblRzV2FzRXhwbGljaXQpCitkRUY9JyhleHBsaWNpdCknO2NvbnNvbGUubG9nKGluc3RhbmNlLmNyZWF0aW9uVHMsY0VGLGluc3RhbmNlLmRlbGV0aW9uVHMsZEVGLGluc3RhbmNlLmNhdGVnb3J5LGluc3RhbmNlLm5hbWUsaW5zdGFuY2Uuc25hcHNob3RzLmxlbmd0aCsnIHNuYXBzaG90cycpO319fTtyZXR1cm57VGltZVRvT2JqZWN0SW5zdGFuY2VNYXA6VGltZVRvT2JqZWN0SW5zdGFuY2VNYXB9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIE9iamVjdEluc3RhbmNlPXRyLm1vZGVsLk9iamVjdEluc3RhbmNlO3ZhciBPYmplY3RTbmFwc2hvdD10ci5tb2RlbC5PYmplY3RTbmFwc2hvdDtmdW5jdGlvbiBPYmplY3RDb2xsZWN0aW9uKHBhcmVudCl7dHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTt0aGlzLnBhcmVudD1wYXJlbnQ7dGhpcy5pbnN0YW5jZU1hcHNCeUlkXz17fTt0aGlzLmluc3RhbmNlc0J5VHlwZU5hbWVfPXt9O3RoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfPXRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfLmJpbmQodGhpcyk7fQorT2JqZWN0Q29sbGVjdGlvbi5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXt2YXIgYkk9ISFldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxPYmplY3RJbnN0YW5jZSk7dmFyIGJTPSEhZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsT2JqZWN0U25hcHNob3QpO2lmKGJJPT09ZmFsc2UmJmJTPT09ZmFsc2UpCityZXR1cm47dGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKXtpZihiSSkKK2NhbGxiYWNrLmNhbGwob3B0X3RoaXMsaW5zdGFuY2UpO2lmKGJTKQoraW5zdGFuY2Uuc25hcHNob3RzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO30sb3B0X3RoaXMpO30sY3JlYXRlT2JqZWN0SW5zdGFuY2VfOmZ1bmN0aW9uKHBhcmVudCxpZCxjYXRlZ29yeSxuYW1lLGNyZWF0aW9uVHMsb3B0X2Jhc2VUeXBlTmFtZSl7dmFyIGNvbnN0cnVjdG9yPXRyLm1vZGVsLk9iamVjdEluc3RhbmNlLmdldENvbnN0cnVjdG9yKGNhdGVnb3J5LG5hbWUpO3ZhciBpbnN0YW5jZT1uZXcgY29uc3RydWN0b3IocGFyZW50LGlkLGNhdGVnb3J5LG5hbWUsY3JlYXRpb25UcyxvcHRfYmFzZVR5cGVOYW1lKTt2YXIgdHlwZU5hbWU9aW5zdGFuY2UudHlwZU5hbWU7dmFyIGluc3RhbmNlc09mVHlwZU5hbWU9dGhpcy5pbnN0YW5jZXNCeVR5cGVOYW1lX1t0eXBlTmFtZV07aWYoIWluc3RhbmNlc09mVHlwZU5hbWUpe2luc3RhbmNlc09mVHlwZU5hbWU9W107dGhpcy5pbnN0YW5jZXNCeVR5cGVOYW1lX1t0eXBlTmFtZV09aW5zdGFuY2VzT2ZUeXBlTmFtZTt9CitpbnN0YW5jZXNPZlR5cGVOYW1lLnB1c2goaW5zdGFuY2UpO3JldHVybiBpbnN0YW5jZTt9LGdldE9yQ3JlYXRlSW5zdGFuY2VNYXBfOmZ1bmN0aW9uKGlkKXt2YXIgaW5zdGFuY2VNYXA9dGhpcy5pbnN0YW5jZU1hcHNCeUlkX1tpZF07aWYoaW5zdGFuY2VNYXApCityZXR1cm4gaW5zdGFuY2VNYXA7aW5zdGFuY2VNYXA9bmV3IHRyLm1vZGVsLlRpbWVUb09iamVjdEluc3RhbmNlTWFwKHRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfLHRoaXMucGFyZW50LGlkKTt0aGlzLmluc3RhbmNlTWFwc0J5SWRfW2lkXT1pbnN0YW5jZU1hcDtyZXR1cm4gaW5zdGFuY2VNYXA7fSxpZFdhc0NyZWF0ZWQ6ZnVuY3Rpb24oaWQsY2F0ZWdvcnksbmFtZSx0cyl7dmFyIGluc3RhbmNlTWFwPXRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpO3JldHVybiBpbnN0YW5jZU1hcC5pZFdhc0NyZWF0ZWQoY2F0ZWdvcnksbmFtZSx0cyk7fSxhZGRTbmFwc2hvdDpmdW5jdGlvbihpZCxjYXRlZ29yeSxuYW1lLHRzLGFyZ3Msb3B0X2Jhc2VUeXBlTmFtZSl7dmFyIGluc3RhbmNlTWFwPXRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpO3ZhciBzbmFwc2hvdD1pbnN0YW5jZU1hcC5hZGRTbmFwc2hvdChjYXRlZ29yeSxuYW1lLHRzLGFyZ3Msb3B0X2Jhc2VUeXBlTmFtZSk7aWYoc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuY2F0ZWdvcnkhPWNhdGVnb3J5KXt2YXIgbXNnPSdBZGRlZCBzbmFwc2hvdCBuYW1lPScrbmFtZSsnIHdpdGggY2F0PScrY2F0ZWdvcnkrJyBpbXBvc3NpYmxlLiBJdCBpbnN0YW5jZSB3YXMgY3JlYXRlZC9zbmFwc2hvdHRlZCB3aXRoIGNhdD0nKworc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuY2F0ZWdvcnkrJyBuYW1lPScrCitzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5uYW1lO3Rocm93IG5ldyBFcnJvcihtc2cpO30KK2lmKG9wdF9iYXNlVHlwZU5hbWUmJnNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmJhc2VUeXBlTmFtZSE9b3B0X2Jhc2VUeXBlTmFtZSl7dGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgYWRkIHNuYXBzaG90IHdpdGggYmFzZVR5cGVOYW1lPScrCitvcHRfYmFzZVR5cGVOYW1lKycuIEl0ICcrJ3dhcyBwcmV2aW91c2x5IGNyZWF0ZWQgd2l0aCBuYW1lPScrCitzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5iYXNlVHlwZU5hbWUpO30KK2lmKHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLm5hbWUhPW5hbWUpe3Rocm93IG5ldyBFcnJvcignQ291bGQgbm90IGFkZCBzbmFwc2hvdCB3aXRoIG5hbWU9JytuYW1lKycuIEl0ICcrJ3dhcyBwcmV2aW91c2x5IGNyZWF0ZWQgd2l0aCBuYW1lPScrCitzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5uYW1lKTt9CityZXR1cm4gc25hcHNob3Q7fSxpZFdhc0RlbGV0ZWQ6ZnVuY3Rpb24oaWQsY2F0ZWdvcnksbmFtZSx0cyl7dmFyIGluc3RhbmNlTWFwPXRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpO3ZhciBkZWxldGVkSW5zdGFuY2U9aW5zdGFuY2VNYXAuaWRXYXNEZWxldGVkKGNhdGVnb3J5LG5hbWUsdHMpO2lmKCFkZWxldGVkSW5zdGFuY2UpCityZXR1cm47aWYoZGVsZXRlZEluc3RhbmNlLmNhdGVnb3J5IT1jYXRlZ29yeSl7dmFyIG1zZz0nRGVsZXRpbmcgb2JqZWN0ICcrZGVsZXRlZEluc3RhbmNlLm5hbWUrJyB3aXRoIGEgZGlmZmVyZW50IGNhdGVnb3J5ICcrJ3RoYW4gd2hlbiBpdCB3YXMgY3JlYXRlZC4gSXQgcHJldmlvdXMgaGFkIGNhdD0nKworZGVsZXRlZEluc3RhbmNlLmNhdGVnb3J5KycgYnV0IHRoZSBkZWxldGUgY29tbWFuZCAnKydoYWQgY2F0PScrY2F0ZWdvcnk7dGhyb3cgbmV3IEVycm9yKG1zZyk7fQoraWYoZGVsZXRlZEluc3RhbmNlLmJhc2VUeXBlTmFtZSE9bmFtZSl7dGhyb3cgbmV3IEVycm9yKCdEZWxldGlvbiByZXF1ZXN0ZWQgZm9yIG5hbWU9JysKK25hbWUrJyBjb3VsZCBub3QgcHJvY2VlZDogJysnQW4gZXhpc3Rpbmcgb2JqZWN0IHdpdGggYmFzZVR5cGVOYW1lPScrCitkZWxldGVkSW5zdGFuY2UuYmFzZVR5cGVOYW1lKycgZXhpc3RlZC4nKTt9fSxhdXRvRGVsZXRlT2JqZWN0czpmdW5jdGlvbihtYXhUaW1lc3RhbXApe3RyLmIuaXRlckl0ZW1zKHRoaXMuaW5zdGFuY2VNYXBzQnlJZF8sZnVuY3Rpb24oaWQsaTJpbWFwKXt2YXIgbGFzdEluc3RhbmNlPWkyaW1hcC5sYXN0SW5zdGFuY2U7aWYobGFzdEluc3RhbmNlLmRlbGV0aW9uVHMhPU51bWJlci5NQVhfVkFMVUUpCityZXR1cm47aTJpbWFwLmlkV2FzRGVsZXRlZChsYXN0SW5zdGFuY2UuY2F0ZWdvcnksbGFzdEluc3RhbmNlLm5hbWUsbWF4VGltZXN0YW1wKTtsYXN0SW5zdGFuY2UuZGVsZXRpb25Uc1dhc0V4cGxpY2l0PWZhbHNlO30pO30sZ2V0T2JqZWN0SW5zdGFuY2VBdDpmdW5jdGlvbihpZCx0cyl7dmFyIGluc3RhbmNlTWFwPXRoaXMuaW5zdGFuY2VNYXBzQnlJZF9baWRdO2lmKCFpbnN0YW5jZU1hcCkKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIGluc3RhbmNlTWFwLmdldEluc3RhbmNlQXQodHMpO30sZ2V0U25hcHNob3RBdDpmdW5jdGlvbihpZCx0cyl7dmFyIGluc3RhbmNlPXRoaXMuZ2V0T2JqZWN0SW5zdGFuY2VBdChpZCx0cyk7aWYoIWluc3RhbmNlKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gaW5zdGFuY2UuZ2V0U25hcHNob3RBdCh0cyk7fSxpdGVyT2JqZWN0SW5zdGFuY2VzOmZ1bmN0aW9uKGl0ZXIsb3B0X3RoaXMpe29wdF90aGlzPW9wdF90aGlzfHx0aGlzO3RyLmIuaXRlckl0ZW1zKHRoaXMuaW5zdGFuY2VNYXBzQnlJZF8sZnVuY3Rpb24oaWQsaTJpbWFwKXtpMmltYXAuaW5zdGFuY2VzLmZvckVhY2goaXRlcixvcHRfdGhpcyk7fSk7fSxnZXRBbGxPYmplY3RJbnN0YW5jZXM6ZnVuY3Rpb24oKXt2YXIgaW5zdGFuY2VzPVtdO3RoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpKXtpbnN0YW5jZXMucHVzaChpKTt9KTtyZXR1cm4gaW5zdGFuY2VzO30sZ2V0QWxsSW5zdGFuY2VzTmFtZWQ6ZnVuY3Rpb24obmFtZSl7cmV0dXJuIHRoaXMuaW5zdGFuY2VzQnlUeXBlTmFtZV9bbmFtZV07fSxnZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2VzQnlUeXBlTmFtZV87fSxwcmVJbml0aWFsaXplQWxsT2JqZWN0czpmdW5jdGlvbigpe3RoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSl7aW5zdGFuY2UucHJlSW5pdGlhbGl6ZSgpO30pO30saW5pdGlhbGl6ZUFsbE9iamVjdHM6ZnVuY3Rpb24oKXt0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2Upe2luc3RhbmNlLmluaXRpYWxpemUoKTt9KTt9LGluaXRpYWxpemVJbnN0YW5jZXM6ZnVuY3Rpb24oKXt0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2Upe2luc3RhbmNlLmluaXRpYWxpemUoKTt9KTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7dGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKXtpbnN0YW5jZS51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZShpbnN0YW5jZS5ib3VuZHMpO30sdGhpcyk7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKXtpbnN0YW5jZS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7fSk7fSxhZGRDYXRlZ29yaWVzVG9EaWN0OmZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KXt0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2Upe2NhdGVnb3JpZXNEaWN0W2luc3RhbmNlLmNhdGVnb3J5XT10cnVlO30pO319O3JldHVybntPYmplY3RDb2xsZWN0aW9uOk9iamVjdENvbGxlY3Rpb259O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNsaWNlPXRyLm1vZGVsLlNsaWNlO2Z1bmN0aW9uIFRocmVhZFNsaWNlKGNhdCx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Msb3B0X2R1cmF0aW9uLG9wdF9jcHVTdGFydCxvcHRfY3B1RHVyYXRpb24sb3B0X2FyZ3NTdHJpcHBlZCl7U2xpY2UuY2FsbCh0aGlzLGNhdCx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Msb3B0X2R1cmF0aW9uLG9wdF9jcHVTdGFydCxvcHRfY3B1RHVyYXRpb24sb3B0X2FyZ3NTdHJpcHBlZCk7dGhpcy5zdWJTbGljZXM9W107fQorVGhyZWFkU2xpY2UucHJvdG90eXBlPXtfX3Byb3RvX186U2xpY2UucHJvdG90eXBlfTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKFRocmVhZFNsaWNlLHtuYW1lOidzbGljZScscGx1cmFsTmFtZTonc2xpY2VzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtc2luZ2xlLXRocmVhZC1zbGljZS1zdWItdmlldycsbXVsdGlWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtbXVsdGktdGhyZWFkLXNsaWNlLXN1Yi12aWV3J30pO3JldHVybntUaHJlYWRTbGljZTpUaHJlYWRTbGljZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgU2xpY2U9dHIubW9kZWwuU2xpY2U7ZnVuY3Rpb24gZ2V0U2xpY2VMbyhzKXtyZXR1cm4gcy5zdGFydDt9CitmdW5jdGlvbiBnZXRTbGljZUhpKHMpe3JldHVybiBzLmVuZDt9CitmdW5jdGlvbiBTbGljZUdyb3VwKHBhcmVudENvbnRhaW5lcixvcHRfc2xpY2VDb25zdHJ1Y3RvcixvcHRfbmFtZSl7dHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMucGFyZW50Q29udGFpbmVyXz1wYXJlbnRDb250YWluZXI7dmFyIHNsaWNlQ29uc3RydWN0b3I9b3B0X3NsaWNlQ29uc3RydWN0b3J8fFNsaWNlO3RoaXMuc2xpY2VDb25zdHJ1Y3Rvcj1zbGljZUNvbnN0cnVjdG9yO3RoaXMub3BlblBhcnRpYWxTbGljZXNfPVtdO3RoaXMuc2xpY2VzPVtdO3RoaXMudG9wTGV2ZWxTbGljZXM9W107dGhpcy5oYXZlVG9wTGV2ZWxTbGljZXNCZWVuQnVpbHQ9ZmFsc2U7dGhpcy5uYW1lXz1vcHRfbmFtZTtpZih0aGlzLm1vZGVsPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdTbGljZUdyb3VwIG11c3QgaGF2ZSBtb2RlbCBkZWZpbmVkLicpO30KK1NsaWNlR3JvdXAucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLGdldCBndWlkKCl7cmV0dXJuIHRoaXMuZ3VpZF87fSxnZXQgcGFyZW50Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXzt9LGdldCBtb2RlbCgpe3JldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl8ubW9kZWw7fSxnZXQgc3RhYmxlSWQoKXtyZXR1cm4gdGhpcy5wYXJlbnRDb250YWluZXJfLnN0YWJsZUlkKycuU2xpY2VHcm91cCc7fSxnZXRTZXR0aW5nc0tleTpmdW5jdGlvbigpe2lmKCF0aGlzLm5hbWVfKQorcmV0dXJuIHVuZGVmaW5lZDt2YXIgcGFyZW50S2V5PXRoaXMucGFyZW50Q29udGFpbmVyXy5nZXRTZXR0aW5nc0tleSgpO2lmKCFwYXJlbnRLZXkpCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiBwYXJlbnRLZXkrJy4nK3RoaXMubmFtZTt9LGdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5zbGljZXMubGVuZ3RoO30scHVzaFNsaWNlOmZ1bmN0aW9uKHNsaWNlKXt0aGlzLmhhdmVUb3BMZXZlbFNsaWNlc0JlZW5CdWlsdD1mYWxzZTtzbGljZS5wYXJlbnRDb250YWluZXI9dGhpcy5wYXJlbnRDb250YWluZXJfO3RoaXMuc2xpY2VzLnB1c2goc2xpY2UpO3JldHVybiBzbGljZTt9LHB1c2hTbGljZXM6ZnVuY3Rpb24oc2xpY2VzKXt0aGlzLmhhdmVUb3BMZXZlbFNsaWNlc0JlZW5CdWlsdD1mYWxzZTtzbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSl7c2xpY2UucGFyZW50Q29udGFpbmVyPXRoaXMucGFyZW50Q29udGFpbmVyXzt0aGlzLnNsaWNlcy5wdXNoKHNsaWNlKTt9LHRoaXMpO30sYmVnaW5TbGljZTpmdW5jdGlvbihjYXRlZ29yeSx0aXRsZSx0cyxvcHRfYXJncyxvcHRfdHRzLG9wdF9hcmdzU3RyaXBwZWQsb3B0X2NvbG9ySWQpe2lmKHRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCl7dmFyIHByZXZTbGljZT10aGlzLm9wZW5QYXJ0aWFsU2xpY2VzX1t0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGgtMV07aWYodHM8cHJldlNsaWNlLnN0YXJ0KQordGhyb3cgbmV3IEVycm9yKCdTbGljZXMgbXVzdCBiZSBhZGRlZCBpbiBpbmNyZWFzaW5nIHRpbWVzdGFtcCBvcmRlcicpO30KK3ZhciBjb2xvcklkPW9wdF9jb2xvcklkfHx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aXRsZSk7dmFyIHNsaWNlPW5ldyB0aGlzLnNsaWNlQ29uc3RydWN0b3IoY2F0ZWdvcnksdGl0bGUsY29sb3JJZCx0cyxvcHRfYXJncz9vcHRfYXJnczp7fSxudWxsLG9wdF90dHMsdW5kZWZpbmVkLG9wdF9hcmdzU3RyaXBwZWQpO3RoaXMub3BlblBhcnRpYWxTbGljZXNfLnB1c2goc2xpY2UpO3NsaWNlLmRpZE5vdEZpbmlzaD10cnVlO3RoaXMucHVzaFNsaWNlKHNsaWNlKTtyZXR1cm4gc2xpY2U7fSxpc1RpbWVzdGFtcFZhbGlkRm9yQmVnaW5PckVuZDpmdW5jdGlvbih0cyl7aWYoIXRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCkKK3JldHVybiB0cnVlO3ZhciB0b3A9dGhpcy5vcGVuUGFydGlhbFNsaWNlc19bdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoLTFdO3JldHVybiB0cz49dG9wLnN0YXJ0O30sZ2V0IG9wZW5TbGljZUNvdW50KCl7cmV0dXJuIHRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aDt9LGdldCBtb3N0UmVjZW50bHlPcGVuZWRQYXJ0aWFsU2xpY2UoKXtpZighdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5vcGVuUGFydGlhbFNsaWNlc19bdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoLTFdO30sZW5kU2xpY2U6ZnVuY3Rpb24odHMsb3B0X3R0cyxvcHRfY29sb3JJZCl7aWYoIXRoaXMub3BlblNsaWNlQ291bnQpCit0aHJvdyBuZXcgRXJyb3IoJ2VuZFNsaWNlIGNhbGxlZCB3aXRob3V0IGFuIG9wZW4gc2xpY2UnKTt2YXIgc2xpY2U9dGhpcy5vcGVuUGFydGlhbFNsaWNlc19bdGhpcy5vcGVuU2xpY2VDb3VudC0xXTt0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5zcGxpY2UodGhpcy5vcGVuU2xpY2VDb3VudC0xLDEpO2lmKHRzPHNsaWNlLnN0YXJ0KQordGhyb3cgbmV3IEVycm9yKCdTbGljZSAnK3NsaWNlLnRpdGxlKycgZW5kIHRpbWUgaXMgYmVmb3JlIGl0cyBzdGFydC4nKTtzbGljZS5kdXJhdGlvbj10cy1zbGljZS5zdGFydDtzbGljZS5kaWROb3RGaW5pc2g9ZmFsc2U7c2xpY2UuY29sb3JJZD1vcHRfY29sb3JJZHx8c2xpY2UuY29sb3JJZDtpZihvcHRfdHRzJiZzbGljZS5jcHVTdGFydCE9PXVuZGVmaW5lZCkKK3NsaWNlLmNwdUR1cmF0aW9uPW9wdF90dHMtc2xpY2UuY3B1U3RhcnQ7cmV0dXJuIHNsaWNlO30scHVzaENvbXBsZXRlU2xpY2U6ZnVuY3Rpb24oY2F0ZWdvcnksdGl0bGUsdHMsZHVyYXRpb24sdHRzLGNwdUR1cmF0aW9uLG9wdF9hcmdzLG9wdF9hcmdzU3RyaXBwZWQsb3B0X2NvbG9ySWQpe3ZhciBjb2xvcklkPW9wdF9jb2xvcklkfHx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aXRsZSk7dmFyIHNsaWNlPW5ldyB0aGlzLnNsaWNlQ29uc3RydWN0b3IoY2F0ZWdvcnksdGl0bGUsY29sb3JJZCx0cyxvcHRfYXJncz9vcHRfYXJnczp7fSxkdXJhdGlvbix0dHMsY3B1RHVyYXRpb24sb3B0X2FyZ3NTdHJpcHBlZCk7aWYoZHVyYXRpb249PT11bmRlZmluZWQpCitzbGljZS5kaWROb3RGaW5pc2g9dHJ1ZTt0aGlzLnB1c2hTbGljZShzbGljZSk7cmV0dXJuIHNsaWNlO30sYXV0b0Nsb3NlT3BlblNsaWNlczpmdW5jdGlvbihvcHRfbWF4VGltZXN0YW1wKXtpZighb3B0X21heFRpbWVzdGFtcCl7dGhpcy51cGRhdGVCb3VuZHMoKTtvcHRfbWF4VGltZXN0YW1wPXRoaXMuYm91bmRzLm1heDt9Citmb3IodmFyIHNJPTA7c0k8dGhpcy5zbGljZXMubGVuZ3RoO3NJKyspe3ZhciBzbGljZT10aGlzLnNsaWNlc1tzSV07aWYoc2xpY2UuZGlkTm90RmluaXNoKQorc2xpY2UuZHVyYXRpb249b3B0X21heFRpbWVzdGFtcC1zbGljZS5zdGFydDt9Cit0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXz1bXTt9LHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6ZnVuY3Rpb24oYW1vdW50KXtmb3IodmFyIHNJPTA7c0k8dGhpcy5zbGljZXMubGVuZ3RoO3NJKyspe3ZhciBzbGljZT10aGlzLnNsaWNlc1tzSV07c2xpY2Uuc3RhcnQ9KHNsaWNlLnN0YXJ0K2Ftb3VudCk7fX0sdXBkYXRlQm91bmRzOmZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMucmVzZXQoKTtmb3IodmFyIGk9MDtpPHRoaXMuc2xpY2VzLmxlbmd0aDtpKyspe3RoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2xpY2VzW2ldLnN0YXJ0KTt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1tpXS5lbmQpO319LGNvcHlTbGljZTpmdW5jdGlvbihzbGljZSl7dmFyIG5ld1NsaWNlPW5ldyB0aGlzLnNsaWNlQ29uc3RydWN0b3Ioc2xpY2UuY2F0ZWdvcnksc2xpY2UudGl0bGUsc2xpY2UuY29sb3JJZCxzbGljZS5zdGFydCxzbGljZS5hcmdzLHNsaWNlLmR1cmF0aW9uLHNsaWNlLmNwdVN0YXJ0LHNsaWNlLmNwdUR1cmF0aW9uKTtuZXdTbGljZS5kaWROb3RGaW5pc2g9c2xpY2UuZGlkTm90RmluaXNoO3JldHVybiBuZXdTbGljZTt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyx0aGlzLnNsaWNlQ29uc3RydWN0b3IpKQordGhpcy5zbGljZXMuZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7fSxpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe30sZ2V0U2xpY2VzT2ZOYW1lOmZ1bmN0aW9uKHRpdGxlKXt2YXIgc2xpY2VzPVtdO2Zvcih2YXIgaT0wO2k8dGhpcy5zbGljZXMubGVuZ3RoO2krKyl7aWYodGhpcy5zbGljZXNbaV0udGl0bGU9PXRpdGxlKXtzbGljZXMucHVzaCh0aGlzLnNsaWNlc1tpXSk7fX0KK3JldHVybiBzbGljZXM7fSxpdGVyU2xpY2VzSW5UaW1lUmFuZ2U6ZnVuY3Rpb24oY2FsbGJhY2ssc3RhcnQsZW5kKXt2YXIgcmV0PVtdO3RyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy50b3BMZXZlbFNsaWNlcyxmdW5jdGlvbihzKXtyZXR1cm4gcy5zdGFydDt9LGZ1bmN0aW9uKHMpe3JldHVybiBzLmR1cmF0aW9uO30sc3RhcnQsZW5kLGZ1bmN0aW9uKHRvcExldmVsU2xpY2Upe2NhbGxiYWNrKHRvcExldmVsU2xpY2UpO3RvcExldmVsU2xpY2UuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGNhbGxiYWNrKTt9KTtyZXR1cm4gcmV0O30sZmluZFNsaWNlQXRUczpmdW5jdGlvbih0cyl7aWYoIXRoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0KQordGhyb3cgbmV3IEVycm9yKCdOb3BlJyk7dmFyIGk9dHIuYi5maW5kSW5kZXhJblNvcnRlZENsb3NlZEludGVydmFscyh0aGlzLnRvcExldmVsU2xpY2VzLGdldFNsaWNlTG8sZ2V0U2xpY2VIaSx0cyk7aWYoaT09LTF8fGk9PXRoaXMudG9wTGV2ZWxTbGljZXMubGVuZ3RoKQorcmV0dXJuIHVuZGVmaW5lZDt2YXIgY3VyU2xpY2U9dGhpcy50b3BMZXZlbFNsaWNlc1tpXTt3aGlsZSh0cnVlKXt2YXIgaT10ci5iLmZpbmRJbmRleEluU29ydGVkQ2xvc2VkSW50ZXJ2YWxzKGN1clNsaWNlLnN1YlNsaWNlcyxnZXRTbGljZUxvLGdldFNsaWNlSGksdHMpO2lmKGk9PS0xfHxpPT1jdXJTbGljZS5zdWJTbGljZXMubGVuZ3RoKQorcmV0dXJuIGN1clNsaWNlO2N1clNsaWNlPWN1clNsaWNlLnN1YlNsaWNlc1tpXTt9fSxmaW5kTmV4dFNsaWNlQWZ0ZXI6ZnVuY3Rpb24odHMscmVmR3VpZCl7dmFyIGk9dHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KHRoaXMuc2xpY2VzLGdldFNsaWNlTG8sdHMpO2lmKGk9PT10aGlzLnNsaWNlcy5sZW5ndGgpCityZXR1cm4gdW5kZWZpbmVkO2Zvcig7aTx0aGlzLnNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgc2xpY2U9dGhpcy5zbGljZXNbaV07aWYoc2xpY2Uuc3RhcnQ+dHMpCityZXR1cm4gc2xpY2U7aWYoc2xpY2UuZ3VpZDw9cmVmR3VpZCkKK2NvbnRpbnVlO3JldHVybiBzbGljZTt9CityZXR1cm4gdW5kZWZpbmVkO30sY3JlYXRlU3ViU2xpY2VzOmZ1bmN0aW9uKCl7dGhpcy5oYXZlVG9wTGV2ZWxTbGljZXNCZWVuQnVpbHQ9dHJ1ZTt0aGlzLmNyZWF0ZVN1YlNsaWNlc0ltcGxfKCk7aWYodGhpcy5wYXJlbnRDb250YWluZXIudGltZVNsaWNlcykKK3RoaXMuYWRkQ3B1VGltZVRvU3Vic2xpY2VzXyh0aGlzLnBhcmVudENvbnRhaW5lci50aW1lU2xpY2VzKTt0aGlzLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXt2YXIgc2VsZlRpbWU9c2xpY2UuZHVyYXRpb247Zm9yKHZhciBpPTA7aTxzbGljZS5zdWJTbGljZXMubGVuZ3RoO2krKykKK3NlbGZUaW1lLT1zbGljZS5zdWJTbGljZXNbaV0uZHVyYXRpb247c2xpY2Uuc2VsZlRpbWU9c2VsZlRpbWU7aWYoc2xpY2UuY3B1RHVyYXRpb249PT11bmRlZmluZWQpCityZXR1cm47dmFyIGNwdVNlbGZUaW1lPXNsaWNlLmNwdUR1cmF0aW9uO2Zvcih2YXIgaT0wO2k8c2xpY2Uuc3ViU2xpY2VzLmxlbmd0aDtpKyspe2lmKHNsaWNlLnN1YlNsaWNlc1tpXS5jcHVEdXJhdGlvbiE9PXVuZGVmaW5lZCkKK2NwdVNlbGZUaW1lLT1zbGljZS5zdWJTbGljZXNbaV0uY3B1RHVyYXRpb247fQorc2xpY2UuY3B1U2VsZlRpbWU9Y3B1U2VsZlRpbWU7fSk7fSxjcmVhdGVTdWJTbGljZXNJbXBsXzpmdW5jdGlvbigpe3ZhciBwcmVjaXNpb25Vbml0PXRoaXMubW9kZWwuaW50cmluc2ljVGltZVVuaXQ7ZnVuY3Rpb24gYWRkU2xpY2VJZkJvdW5kcyhyb290LGNoaWxkKXtpZihyb290LmJvdW5kcyhjaGlsZCxwcmVjaXNpb25Vbml0KSl7aWYocm9vdC5zdWJTbGljZXMmJnJvb3Quc3ViU2xpY2VzLmxlbmd0aD4wKXtpZihhZGRTbGljZUlmQm91bmRzKHJvb3Quc3ViU2xpY2VzW3Jvb3Quc3ViU2xpY2VzLmxlbmd0aC0xXSxjaGlsZCkpCityZXR1cm4gdHJ1ZTt9CitjaGlsZC5wYXJlbnRTbGljZT1yb290O2lmKHJvb3Quc3ViU2xpY2VzPT09dW5kZWZpbmVkKQorcm9vdC5zdWJTbGljZXM9W107cm9vdC5zdWJTbGljZXMucHVzaChjaGlsZCk7cmV0dXJuIHRydWU7fQorcmV0dXJuIGZhbHNlO30KK2lmKCF0aGlzLnNsaWNlcy5sZW5ndGgpCityZXR1cm47dmFyIG9wcz1bXTtmb3IodmFyIGk9MDtpPHRoaXMuc2xpY2VzLmxlbmd0aDtpKyspe2lmKHRoaXMuc2xpY2VzW2ldLnN1YlNsaWNlcykKK3RoaXMuc2xpY2VzW2ldLnN1YlNsaWNlcy5zcGxpY2UoMCx0aGlzLnNsaWNlc1tpXS5zdWJTbGljZXMubGVuZ3RoKTtvcHMucHVzaChpKTt9Cit2YXIgb3JpZ2luYWxTbGljZXM9dGhpcy5zbGljZXM7b3BzLnNvcnQoZnVuY3Rpb24oaXgsaXkpe3ZhciB4PW9yaWdpbmFsU2xpY2VzW2l4XTt2YXIgeT1vcmlnaW5hbFNsaWNlc1tpeV07aWYoeC5zdGFydCE9eS5zdGFydCkKK3JldHVybiB4LnN0YXJ0LXkuc3RhcnQ7cmV0dXJuIGl4LWl5O30pO3ZhciBzbGljZXM9bmV3IEFycmF5KHRoaXMuc2xpY2VzLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTxvcHMubGVuZ3RoO2krKyl7c2xpY2VzW2ldPW9yaWdpbmFsU2xpY2VzW29wc1tpXV07fQordmFyIHJvb3RTbGljZT1zbGljZXNbMF07dGhpcy50b3BMZXZlbFNsaWNlcz1bXTt0aGlzLnRvcExldmVsU2xpY2VzLnB1c2gocm9vdFNsaWNlKTtyb290U2xpY2UuaXNUb3BMZXZlbD10cnVlO2Zvcih2YXIgaT0xO2k8c2xpY2VzLmxlbmd0aDtpKyspe3ZhciBzbGljZT1zbGljZXNbaV07aWYoIWFkZFNsaWNlSWZCb3VuZHMocm9vdFNsaWNlLHNsaWNlKSl7cm9vdFNsaWNlPXNsaWNlO3Jvb3RTbGljZS5pc1RvcExldmVsPXRydWU7dGhpcy50b3BMZXZlbFNsaWNlcy5wdXNoKHJvb3RTbGljZSk7fX0KK3RoaXMuc2xpY2VzPXNsaWNlczt9LGFkZENwdVRpbWVUb1N1YnNsaWNlc186ZnVuY3Rpb24odGltZVNsaWNlcyl7dmFyIFNDSEVEVUxJTkdfU1RBVEU9dHIubW9kZWwuU0NIRURVTElOR19TVEFURTt2YXIgc2xpY2VJZHg9MDt0aW1lU2xpY2VzLmZvckVhY2goZnVuY3Rpb24odGltZVNsaWNlKXtpZih0aW1lU2xpY2Uuc2NoZWR1bGluZ1N0YXRlPT1TQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcpe3doaWxlKHNsaWNlSWR4PHRoaXMudG9wTGV2ZWxTbGljZXMubGVuZ3RoKXtpZih0aGlzLmFkZENwdVRpbWVUb1N1YnNsaWNlXyh0aGlzLnRvcExldmVsU2xpY2VzW3NsaWNlSWR4XSx0aW1lU2xpY2UpKXtzbGljZUlkeCsrO31lbHNle2JyZWFrO319fX0sdGhpcyk7fSxhZGRDcHVUaW1lVG9TdWJzbGljZV86ZnVuY3Rpb24oc2xpY2UsdGltZVNsaWNlKXtpZihzbGljZS5zdGFydD50aW1lU2xpY2UuZW5kfHxzbGljZS5lbmQ8dGltZVNsaWNlLnN0YXJ0KQorcmV0dXJuIHNsaWNlLmVuZDw9dGltZVNsaWNlLmVuZDt2YXIgZHVyYXRpb249dGltZVNsaWNlLmR1cmF0aW9uO2lmKHNsaWNlLnN0YXJ0PnRpbWVTbGljZS5zdGFydCkKK2R1cmF0aW9uLT1zbGljZS5zdGFydC10aW1lU2xpY2Uuc3RhcnQ7aWYodGltZVNsaWNlLmVuZD5zbGljZS5lbmQpCitkdXJhdGlvbi09dGltZVNsaWNlLmVuZC1zbGljZS5lbmQ7aWYoc2xpY2UuY3B1RHVyYXRpb24pe3NsaWNlLmNwdUR1cmF0aW9uKz1kdXJhdGlvbjt9ZWxzZXtzbGljZS5jcHVEdXJhdGlvbj1kdXJhdGlvbjt9Citmb3IodmFyIGk9MDtpPHNsaWNlLnN1YlNsaWNlcy5sZW5ndGg7aSsrKXt0aGlzLmFkZENwdVRpbWVUb1N1YnNsaWNlXyhzbGljZS5zdWJTbGljZXNbaV0sdGltZVNsaWNlKTt9CityZXR1cm4gc2xpY2UuZW5kPD10aW1lU2xpY2UuZW5kO319O1NsaWNlR3JvdXAubWVyZ2U9ZnVuY3Rpb24oZ3JvdXBBLGdyb3VwQil7aWYoZ3JvdXBBLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGg+MCkKK3Rocm93IG5ldyBFcnJvcignZ3JvdXBBIGhhcyBvcGVuIHBhcnRpYWwgc2xpY2VzJyk7aWYoZ3JvdXBCLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGg+MCkKK3Rocm93IG5ldyBFcnJvcignZ3JvdXBCIGhhcyBvcGVuIHBhcnRpYWwgc2xpY2VzJyk7aWYoZ3JvdXBBLnBhcmVudENvbnRhaW5lciE9Z3JvdXBCLnBhcmVudENvbnRhaW5lcikKK3Rocm93IG5ldyBFcnJvcignRGlmZmVyZW50IHBhcmVudCB0aHJlYWRzLiBDYW5ub3QgbWVyZ2UnKTtpZihncm91cEEuc2xpY2VDb25zdHJ1Y3RvciE9Z3JvdXBCLnNsaWNlQ29uc3RydWN0b3IpCit0aHJvdyBuZXcgRXJyb3IoJ0RpZmZlcmVudCBzbGljZSBjb25zdHJ1Y3RvcnMuIENhbm5vdCBtZXJnZScpO3ZhciByZXN1bHQ9bmV3IFNsaWNlR3JvdXAoZ3JvdXBBLnBhcmVudENvbnRhaW5lcixncm91cEEuc2xpY2VDb25zdHJ1Y3Rvcixncm91cEEubmFtZV8pO3ZhciBzbGljZXNBPWdyb3VwQS5zbGljZXM7dmFyIHNsaWNlc0I9Z3JvdXBCLnNsaWNlczt2YXIgaWR4QT0wO3ZhciBpZHhCPTA7dmFyIG9wZW5BPVtdO3ZhciBvcGVuQj1bXTt2YXIgc3BsaXRPcGVuU2xpY2VzPWZ1bmN0aW9uKHdoZW4pe2Zvcih2YXIgaT0wO2k8b3BlbkIubGVuZ3RoO2krKyl7dmFyIG9sZFNsaWNlPW9wZW5CW2ldO3ZhciBvbGRFbmQ9b2xkU2xpY2UuZW5kO2lmKHdoZW48b2xkU2xpY2Uuc3RhcnR8fG9sZEVuZDx3aGVuKXt0aHJvdyBuZXcgRXJyb3IoJ3NsaWNlIHNob3VsZCBub3QgYmUgc3BsaXQnKTt9Cit2YXIgbmV3U2xpY2U9cmVzdWx0LmNvcHlTbGljZShvbGRTbGljZSk7bmV3U2xpY2Uuc3RhcnQ9d2hlbjtuZXdTbGljZS5kdXJhdGlvbj1vbGRFbmQtd2hlbjtpZihuZXdTbGljZS50aXRsZS5pbmRleE9mKCcgKGNvbnQuKScpPT0tMSkKK25ld1NsaWNlLnRpdGxlKz0nIChjb250LiknO29sZFNsaWNlLmR1cmF0aW9uPXdoZW4tb2xkU2xpY2Uuc3RhcnQ7b3BlbkJbaV09bmV3U2xpY2U7cmVzdWx0LnB1c2hTbGljZShuZXdTbGljZSk7fX07dmFyIGNsb3NlT3BlblNsaWNlcz1mdW5jdGlvbih1cFRvKXt3aGlsZShvcGVuQS5sZW5ndGg+MHx8b3BlbkIubGVuZ3RoPjApe3ZhciBuZXh0QT1vcGVuQVtvcGVuQS5sZW5ndGgtMV07dmFyIG5leHRCPW9wZW5CW29wZW5CLmxlbmd0aC0xXTt2YXIgZW5kQT1uZXh0QSYmbmV4dEEuZW5kO3ZhciBlbmRCPW5leHRCJiZuZXh0Qi5lbmQ7aWYoKGVuZEE9PT11bmRlZmluZWR8fGVuZEE+dXBUbykmJihlbmRCPT09dW5kZWZpbmVkfHxlbmRCPnVwVG8pKXtyZXR1cm47fQoraWYoZW5kQj09PXVuZGVmaW5lZHx8ZW5kQTxlbmRCKXtzcGxpdE9wZW5TbGljZXMoZW5kQSk7b3BlbkEucG9wKCk7fWVsc2V7b3BlbkIucG9wKCk7fX19O3doaWxlKGlkeEE8c2xpY2VzQS5sZW5ndGh8fGlkeEI8c2xpY2VzQi5sZW5ndGgpe3ZhciBzQT1zbGljZXNBW2lkeEFdO3ZhciBzQj1zbGljZXNCW2lkeEJdO3ZhciBuZXh0U2xpY2UsaXNGcm9tQjtpZihzQT09PXVuZGVmaW5lZHx8KHNCIT09dW5kZWZpbmVkJiZzQS5zdGFydD5zQi5zdGFydCkpe25leHRTbGljZT1yZXN1bHQuY29weVNsaWNlKHNCKTtpc0Zyb21CPXRydWU7aWR4QisrO31lbHNle25leHRTbGljZT1yZXN1bHQuY29weVNsaWNlKHNBKTtpc0Zyb21CPWZhbHNlO2lkeEErKzt9CitjbG9zZU9wZW5TbGljZXMobmV4dFNsaWNlLnN0YXJ0KTtyZXN1bHQucHVzaFNsaWNlKG5leHRTbGljZSk7aWYoaXNGcm9tQil7b3BlbkIucHVzaChuZXh0U2xpY2UpO31lbHNle3NwbGl0T3BlblNsaWNlcyhuZXh0U2xpY2Uuc3RhcnQpO29wZW5BLnB1c2gobmV4dFNsaWNlKTt9fQorY2xvc2VPcGVuU2xpY2VzKCk7cmV0dXJuIHJlc3VsdDt9O3JldHVybntTbGljZUdyb3VwOlNsaWNlR3JvdXB9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQXN5bmNTbGljZShjYXRlZ29yeSx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3MsZHVyYXRpb24sb3B0X2lzVG9wTGV2ZWwsb3B0X2NwdVN0YXJ0LG9wdF9jcHVEdXJhdGlvbixvcHRfYXJnc1N0cmlwcGVkKXt0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcyxzdGFydCk7dGhpcy5jYXRlZ29yeT1jYXRlZ29yeXx8Jyc7dGhpcy50aXRsZT10aXRsZTt0aGlzLmNvbG9ySWQ9Y29sb3JJZDt0aGlzLmFyZ3M9YXJnczt0aGlzLnN0YXJ0U3RhY2tGcmFtZT11bmRlZmluZWQ7dGhpcy5lbmRTdGFja0ZyYW1lPXVuZGVmaW5lZDt0aGlzLmRpZE5vdEZpbmlzaD1mYWxzZTt0aGlzLmltcG9ydGFudD1mYWxzZTt0aGlzLnN1YlNsaWNlcz1bXTt0aGlzLnBhcmVudENvbnRhaW5lcj11bmRlZmluZWQ7dGhpcy5pZD11bmRlZmluZWQ7dGhpcy5zdGFydFRocmVhZD11bmRlZmluZWQ7dGhpcy5lbmRUaHJlYWQ9dW5kZWZpbmVkO3RoaXMuY3B1U3RhcnQ9dW5kZWZpbmVkO3RoaXMuY3B1RHVyYXRpb249dW5kZWZpbmVkO3RoaXMuYXJnc1N0cmlwcGVkPWZhbHNlO3RoaXMuZHVyYXRpb249ZHVyYXRpb247dGhpcy5pc1RvcExldmVsPShvcHRfaXNUb3BMZXZlbD09PXRydWUpO2lmKG9wdF9jcHVTdGFydCE9PXVuZGVmaW5lZCkKK3RoaXMuY3B1U3RhcnQ9b3B0X2NwdVN0YXJ0O2lmKG9wdF9jcHVEdXJhdGlvbiE9PXVuZGVmaW5lZCkKK3RoaXMuY3B1RHVyYXRpb249b3B0X2NwdUR1cmF0aW9uO2lmKG9wdF9hcmdzU3RyaXBwZWQhPT11bmRlZmluZWQpCit0aGlzLmFyZ3NTdHJpcHBlZD1vcHRfYXJnc1N0cmlwcGVkO307QXN5bmNTbGljZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSxnZXQgYW5hbHlzaXNUeXBlTmFtZSgpe3JldHVybiB0aGlzLnRpdGxlO30sZ2V0IHZpZXdTdWJHcm91cFRpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGU7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidBc3luYyBzbGljZSAnK3RoaXMudGl0bGUrJyBhdCAnKwordHIuYi51bml0cy5UaW1lU3RhbXAuZm9ybWF0KHRoaXMuc3RhcnQpO30sZmluZERlc2NlbmRlbnRTbGljZTpmdW5jdGlvbih0YXJnZXRUaXRsZSl7aWYoIXRoaXMuc3ViU2xpY2VzKQorcmV0dXJuIHVuZGVmaW5lZDtmb3IodmFyIGk9MDtpPHRoaXMuc3ViU2xpY2VzLmxlbmd0aDtpKyspe2lmKHRoaXMuc3ViU2xpY2VzW2ldLnRpdGxlPT10YXJnZXRUaXRsZSkKK3JldHVybiB0aGlzLnN1YlNsaWNlc1tpXTt2YXIgc2xpY2U9dGhpcy5zdWJTbGljZXNbaV0uZmluZERlc2NlbmRlbnRTbGljZSh0YXJnZXRUaXRsZSk7aWYoc2xpY2UpcmV0dXJuIHNsaWNlO30KK3JldHVybiB1bmRlZmluZWQ7fSxpdGVyYXRlQWxsRGVzY2VuZGVudHM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe3RoaXMuc3ViU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO3RoaXMuc3ViU2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc3ViU2xpY2Upe3N1YlNsaWNlLml0ZXJhdGVBbGxEZXNjZW5kZW50cyhjYWxsYmFjayxvcHRfdGhpcyk7fSxvcHRfdGhpcyk7fSxjb21wYXJlVG86ZnVuY3Rpb24odGhhdCl7cmV0dXJuIHRoaXMudGl0bGUubG9jYWxlQ29tcGFyZSh0aGF0LnRpdGxlKTt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKEFzeW5jU2xpY2Use25hbWU6J2FzeW5jU2xpY2UnLHBsdXJhbE5hbWU6J2FzeW5jU2xpY2VzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItdWktYS1tdWx0aS1hc3luYy1zbGljZS1zdWItdmlldyd9KTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPUFzeW5jU2xpY2U7b3B0aW9ucy5kZWZhdWx0Q29uc3RydWN0b3I9QXN5bmNTbGljZTt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoQXN5bmNTbGljZSxvcHRpb25zKTtyZXR1cm57QXN5bmNTbGljZTpBc3luY1NsaWNlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEFzeW5jU2xpY2VHcm91cChwYXJlbnRDb250YWluZXIsb3B0X25hbWUpe3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7dGhpcy5wYXJlbnRDb250YWluZXJfPXBhcmVudENvbnRhaW5lcjt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMuc2xpY2VzPVtdO3RoaXMubmFtZV89b3B0X25hbWU7dGhpcy52aWV3U3ViR3JvdXBzXz11bmRlZmluZWQ7fQorQXN5bmNTbGljZUdyb3VwLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSxnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sZ2V0IHBhcmVudENvbnRhaW5lcigpe3JldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl87fSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5wYXJlbnRDb250YWluZXJfLnBhcmVudC5tb2RlbDt9LGdldCBzdGFibGVJZCgpe3JldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl8uc3RhYmxlSWQrJy5Bc3luY1NsaWNlR3JvdXAnO30sZ2V0U2V0dGluZ3NLZXk6ZnVuY3Rpb24oKXtpZighdGhpcy5uYW1lXykKK3JldHVybiB1bmRlZmluZWQ7dmFyIHBhcmVudEtleT10aGlzLnBhcmVudENvbnRhaW5lcl8uZ2V0U2V0dGluZ3NLZXkoKTtpZighcGFyZW50S2V5KQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gcGFyZW50S2V5KycuJyt0aGlzLm5hbWVfO30scHVzaDpmdW5jdGlvbihzbGljZSl7c2xpY2UucGFyZW50Q29udGFpbmVyPXRoaXMucGFyZW50Q29udGFpbmVyO3RoaXMuc2xpY2VzLnB1c2goc2xpY2UpO3JldHVybiBzbGljZTt9LGdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5zbGljZXMubGVuZ3RoO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe2Zvcih2YXIgc0k9MDtzSTx0aGlzLnNsaWNlcy5sZW5ndGg7c0krKyl7dmFyIHNsaWNlPXRoaXMuc2xpY2VzW3NJXTtzbGljZS5zdGFydD0oc2xpY2Uuc3RhcnQrYW1vdW50KTt2YXIgc2hpZnRTdWJTbGljZXM9ZnVuY3Rpb24oc3ViU2xpY2VzKXtpZihzdWJTbGljZXM9PT11bmRlZmluZWR8fHN1YlNsaWNlcy5sZW5ndGg9PT0wKQorcmV0dXJuO2Zvcih2YXIgc0o9MDtzSjxzdWJTbGljZXMubGVuZ3RoO3NKKyspe3N1YlNsaWNlc1tzSl0uc3RhcnQrPWFtb3VudDtzaGlmdFN1YlNsaWNlcyhzdWJTbGljZXNbc0pdLnN1YlNsaWNlcyk7fX07c2hpZnRTdWJTbGljZXMoc2xpY2Uuc3ViU2xpY2VzKTt9fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXt0aGlzLmJvdW5kcy5yZXNldCgpO2Zvcih2YXIgaT0wO2k8dGhpcy5zbGljZXMubGVuZ3RoO2krKyl7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbaV0uc3RhcnQpO3RoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2xpY2VzW2ldLmVuZCk7fX0sZ2V0IHZpZXdTdWJHcm91cHMoKXtpZih0aGlzLnZpZXdTdWJHcm91cHNfPT09dW5kZWZpbmVkKXt2YXIgcHJlZml4PScnO2lmKHRoaXMubmFtZSE9PXVuZGVmaW5lZCkKK3ByZWZpeD10aGlzLm5hbWUrJy4nO2Vsc2UKK3ByZWZpeD0nJzt2YXIgc3ViR3JvdXBzQnlUaXRsZT17fTtmb3IodmFyIGk9MDtpPHRoaXMuc2xpY2VzLmxlbmd0aDsrK2kpe3ZhciBzbGljZT10aGlzLnNsaWNlc1tpXTt2YXIgc3ViR3JvdXBUaXRsZT1zbGljZS52aWV3U3ViR3JvdXBUaXRsZTtpZighc3ViR3JvdXBzQnlUaXRsZVtzdWJHcm91cFRpdGxlXSl7c3ViR3JvdXBzQnlUaXRsZVtzdWJHcm91cFRpdGxlXT1uZXcgQXN5bmNTbGljZUdyb3VwKHRoaXMucGFyZW50Q29udGFpbmVyXyxwcmVmaXgrc3ViR3JvdXBUaXRsZSk7fQorc3ViR3JvdXBzQnlUaXRsZVtzdWJHcm91cFRpdGxlXS5wdXNoKHNsaWNlKTt9Cit0aGlzLnZpZXdTdWJHcm91cHNfPXRyLmIuZGljdGlvbmFyeVZhbHVlcyhzdWJHcm91cHNCeVRpdGxlKTt0aGlzLnZpZXdTdWJHcm91cHNfLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5zbGljZXNbMF0uY29tcGFyZVRvKGIuc2xpY2VzWzBdKTt9KTt9CityZXR1cm4gdGhpcy52aWV3U3ViR3JvdXBzXzt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyx0ci5tb2RlbC5Bc3luY1NsaWNlKSl7Zm9yKHZhciBpPTA7aTx0aGlzLnNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgc2xpY2U9dGhpcy5zbGljZXNbaV07Y2FsbGJhY2suY2FsbChvcHRfdGhpcyxzbGljZSk7aWYoc2xpY2Uuc3ViU2xpY2VzKQorc2xpY2Uuc3ViU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO319fSxpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe319O3JldHVybntBc3luY1NsaWNlR3JvdXA6QXN5bmNTbGljZUdyb3VwfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBBc3luY1NsaWNlPXRyLm1vZGVsLkFzeW5jU2xpY2U7dmFyIEFzeW5jU2xpY2VHcm91cD10ci5tb2RlbC5Bc3luY1NsaWNlR3JvdXA7dmFyIFNsaWNlPXRyLm1vZGVsLlNsaWNlO3ZhciBTbGljZUdyb3VwPXRyLm1vZGVsLlNsaWNlR3JvdXA7dmFyIFRocmVhZFNsaWNlPXRyLm1vZGVsLlRocmVhZFNsaWNlO3ZhciBUaHJlYWRUaW1lU2xpY2U9dHIubW9kZWwuVGhyZWFkVGltZVNsaWNlO2Z1bmN0aW9uIFRocmVhZChwYXJlbnQsdGlkKXtpZighcGFyZW50KQordGhyb3cgbmV3IEVycm9yKCdQYXJlbnQgbXVzdCBiZSBwcm92aWRlZC4nKTt0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpO3RoaXMucGFyZW50PXBhcmVudDt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMuc29ydEluZGV4PTA7dGhpcy50aWQ9dGlkO3RoaXMubmFtZT11bmRlZmluZWQ7dGhpcy5zYW1wbGVzXz11bmRlZmluZWQ7dmFyIHRoYXQ9dGhpczt0aGlzLnNsaWNlR3JvdXA9bmV3IFNsaWNlR3JvdXAodGhpcyxUaHJlYWRTbGljZSwnc2xpY2VzJyk7dGhpcy50aW1lU2xpY2VzPXVuZGVmaW5lZDt0aGlzLmtlcm5lbFNsaWNlR3JvdXA9bmV3IFNsaWNlR3JvdXAodGhpcyxUaHJlYWRTbGljZSwna2VybmVsLXNsaWNlcycpO3RoaXMuYXN5bmNTbGljZUdyb3VwPW5ldyBBc3luY1NsaWNlR3JvdXAodGhpcywnYXN5bmMtc2xpY2VzJyk7fQorVGhyZWFkLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSxnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sZ2V0IG1vZGVsKCl7cmV0dXJuIHRoaXMucGFyZW50Lm1vZGVsO30sZ2V0IHN0YWJsZUlkKCl7cmV0dXJuIHRoaXMucGFyZW50LnN0YWJsZUlkKycuJyt0aGlzLnRpZDt9LGNvbXBhcmVUbzpmdW5jdGlvbih0aGF0KXtyZXR1cm4gVGhyZWFkLmNvbXBhcmUodGhpcyx0aGF0KTt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7aWYodGhpcy5zbGljZUdyb3VwLmxlbmd0aCkKK2NhbGxiYWNrLmNhbGwob3B0X3RoaXMsdGhpcy5zbGljZUdyb3VwKTtpZih0aGlzLmtlcm5lbFNsaWNlR3JvdXAubGVuZ3RoKQorY2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLmtlcm5lbFNsaWNlR3JvdXApO2lmKHRoaXMuYXN5bmNTbGljZUdyb3VwLmxlbmd0aCkKK2NhbGxiYWNrLmNhbGwob3B0X3RoaXMsdGhpcy5hc3luY1NsaWNlR3JvdXApO30saXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjpmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsY2FsbGJhY2ssb3B0X3RoaXMpe2lmKHRoaXMudGltZVNsaWNlcyYmdGhpcy50aW1lU2xpY2VzLmxlbmd0aCl7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsVGhyZWFkVGltZVNsaWNlKSkKK3RoaXMudGltZVNsaWNlcy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTt9fSxpdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzOmZ1bmN0aW9uKGNiKXtjYih0aGlzKTtpZih0aGlzLnNsaWNlR3JvdXAubGVuZ3RoKQorY2IodGhpcy5zbGljZUdyb3VwKTt0aGlzLmFzeW5jU2xpY2VHcm91cC52aWV3U3ViR3JvdXBzLmZvckVhY2goY2IpO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe3RoaXMuc2xpY2VHcm91cC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7aWYodGhpcy50aW1lU2xpY2VzKXtmb3IodmFyIGk9MDtpPHRoaXMudGltZVNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgc2xpY2U9dGhpcy50aW1lU2xpY2VzW2ldO3NsaWNlLnN0YXJ0Kz1hbW91bnQ7fX0KK3RoaXMua2VybmVsU2xpY2VHcm91cC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7dGhpcy5hc3luY1NsaWNlR3JvdXAuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpO30sZ2V0IGlzRW1wdHkoKXtpZih0aGlzLnNsaWNlR3JvdXAubGVuZ3RoKQorcmV0dXJuIGZhbHNlO2lmKHRoaXMuc2xpY2VHcm91cC5vcGVuU2xpY2VDb3VudCkKK3JldHVybiBmYWxzZTtpZih0aGlzLnRpbWVTbGljZXMmJnRoaXMudGltZVNsaWNlcy5sZW5ndGgpCityZXR1cm4gZmFsc2U7aWYodGhpcy5rZXJuZWxTbGljZUdyb3VwLmxlbmd0aCkKK3JldHVybiBmYWxzZTtpZih0aGlzLmFzeW5jU2xpY2VHcm91cC5sZW5ndGgpCityZXR1cm4gZmFsc2U7aWYodGhpcy5zYW1wbGVzXy5sZW5ndGgpCityZXR1cm4gZmFsc2U7cmV0dXJuIHRydWU7fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXt0aGlzLmJvdW5kcy5yZXNldCgpO3RoaXMuc2xpY2VHcm91cC51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLnNsaWNlR3JvdXAuYm91bmRzKTt0aGlzLmtlcm5lbFNsaWNlR3JvdXAudXBkYXRlQm91bmRzKCk7dGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5rZXJuZWxTbGljZUdyb3VwLmJvdW5kcyk7dGhpcy5hc3luY1NsaWNlR3JvdXAudXBkYXRlQm91bmRzKCk7dGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5hc3luY1NsaWNlR3JvdXAuYm91bmRzKTtpZih0aGlzLnRpbWVTbGljZXMmJnRoaXMudGltZVNsaWNlcy5sZW5ndGgpe3RoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMudGltZVNsaWNlc1swXS5zdGFydCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy50aW1lU2xpY2VzW3RoaXMudGltZVNsaWNlcy5sZW5ndGgtMV0uZW5kKTt9CitpZih0aGlzLnNhbXBsZXNfJiZ0aGlzLnNhbXBsZXNfLmxlbmd0aCl7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zYW1wbGVzX1swXS5zdGFydCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zYW1wbGVzX1t0aGlzLnNhbXBsZXNfLmxlbmd0aC0xXS5lbmQpO319LGFkZENhdGVnb3JpZXNUb0RpY3Q6ZnVuY3Rpb24oY2F0ZWdvcmllc0RpY3Qpe2Zvcih2YXIgaT0wO2k8dGhpcy5zbGljZUdyb3VwLmxlbmd0aDtpKyspCitjYXRlZ29yaWVzRGljdFt0aGlzLnNsaWNlR3JvdXAuc2xpY2VzW2ldLmNhdGVnb3J5XT10cnVlO2Zvcih2YXIgaT0wO2k8dGhpcy5rZXJuZWxTbGljZUdyb3VwLmxlbmd0aDtpKyspCitjYXRlZ29yaWVzRGljdFt0aGlzLmtlcm5lbFNsaWNlR3JvdXAuc2xpY2VzW2ldLmNhdGVnb3J5XT10cnVlO2Zvcih2YXIgaT0wO2k8dGhpcy5hc3luY1NsaWNlR3JvdXAubGVuZ3RoO2krKykKK2NhdGVnb3JpZXNEaWN0W3RoaXMuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1tpXS5jYXRlZ29yeV09dHJ1ZTtpZih0aGlzLnNhbXBsZXNfKXtmb3IodmFyIGk9MDtpPHRoaXMuc2FtcGxlc18ubGVuZ3RoO2krKykKK2NhdGVnb3JpZXNEaWN0W3RoaXMuc2FtcGxlc19baV0uY2F0ZWdvcnldPXRydWU7fX0sYXV0b0Nsb3NlT3BlblNsaWNlczpmdW5jdGlvbihvcHRfbWF4VGltZXN0YW1wKXt0aGlzLnNsaWNlR3JvdXAuYXV0b0Nsb3NlT3BlblNsaWNlcyhvcHRfbWF4VGltZXN0YW1wKTt0aGlzLmtlcm5lbFNsaWNlR3JvdXAuYXV0b0Nsb3NlT3BlblNsaWNlcyhvcHRfbWF4VGltZXN0YW1wKTt9LG1lcmdlS2VybmVsV2l0aFVzZXJsYW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5rZXJuZWxTbGljZUdyb3VwLmxlbmd0aD4wKXt2YXIgbmV3U2xpY2VzPVNsaWNlR3JvdXAubWVyZ2UodGhpcy5zbGljZUdyb3VwLHRoaXMua2VybmVsU2xpY2VHcm91cCk7dGhpcy5zbGljZUdyb3VwLnNsaWNlcz1uZXdTbGljZXMuc2xpY2VzO3RoaXMua2VybmVsU2xpY2VHcm91cD1uZXcgU2xpY2VHcm91cCh0aGlzKTt0aGlzLnVwZGF0ZUJvdW5kcygpO319LGNyZWF0ZVN1YlNsaWNlczpmdW5jdGlvbigpe3RoaXMuc2xpY2VHcm91cC5jcmVhdGVTdWJTbGljZXMoKTt0aGlzLnNhbXBsZXNfPXRoaXMucGFyZW50Lm1vZGVsLnNhbXBsZXMuZmlsdGVyKGZ1bmN0aW9uKHNhbXBsZSl7cmV0dXJuIHNhbXBsZS50aHJlYWQ9PXRoaXM7fSx0aGlzKTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuIHRoaXMubmFtZXx8dGhpcy50aWQ7fSxnZXQgdXNlckZyaWVuZGx5RGV0YWlscygpe3JldHVybid0aWQ6ICcrdGhpcy50aWQrCisodGhpcy5uYW1lPycsIG5hbWU6ICcrdGhpcy5uYW1lOicnKTt9LGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7aWYoIXRoaXMubmFtZSkKK3JldHVybiB1bmRlZmluZWQ7dmFyIHBhcmVudEtleT10aGlzLnBhcmVudC5nZXRTZXR0aW5nc0tleSgpO2lmKCFwYXJlbnRLZXkpCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiBwYXJlbnRLZXkrJy4nK3RoaXMubmFtZTt9LGluZGV4T2ZUaW1lU2xpY2U6ZnVuY3Rpb24odGltZVNsaWNlKXt2YXIgaT10ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkodGhpcy50aW1lU2xpY2VzLGZ1bmN0aW9uKHNsaWNlKXtyZXR1cm4gc2xpY2Uuc3RhcnQ7fSx0aW1lU2xpY2Uuc3RhcnQpO2lmKHRoaXMudGltZVNsaWNlc1tpXSE9PXRpbWVTbGljZSkKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIGk7fSxnZXRTY2hlZHVsaW5nU3RhdHNGb3JSYW5nZTpmdW5jdGlvbihzdGFydCxlbmQpe3ZhciBzdGF0cz17fTtpZighdGhpcy50aW1lU2xpY2VzKXJldHVybiBzdGF0cztmdW5jdGlvbiBhZGRTdGF0c0ZvclNsaWNlKHRocmVhZFRpbWVTbGljZSl7dmFyIG92ZXJsYXBTdGFydD1NYXRoLm1heCh0aHJlYWRUaW1lU2xpY2Uuc3RhcnQsc3RhcnQpO3ZhciBvdmVybGFwRW5kPU1hdGgubWluKHRocmVhZFRpbWVTbGljZS5lbmQsZW5kKTt2YXIgc2NoZWR1bGluZ1N0YXRlPXRocmVhZFRpbWVTbGljZS5zY2hlZHVsaW5nU3RhdGU7aWYoIShzY2hlZHVsaW5nU3RhdGUgaW4gc3RhdHMpKQorc3RhdHNbc2NoZWR1bGluZ1N0YXRlXT0wO3N0YXRzW3NjaGVkdWxpbmdTdGF0ZV0rPW92ZXJsYXBFbmQtb3ZlcmxhcFN0YXJ0O30KK3RyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy50aW1lU2xpY2VzLGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0YXJ0O30sZnVuY3Rpb24oeCl7cmV0dXJuIHguZW5kO30sc3RhcnQsZW5kLGFkZFN0YXRzRm9yU2xpY2UpO3JldHVybiBzdGF0czt9LGdldCBzYW1wbGVzKCl7cmV0dXJuIHRoaXMuc2FtcGxlc187fX07VGhyZWFkLmNvbXBhcmU9ZnVuY3Rpb24oeCx5KXt2YXIgdG1wPXgucGFyZW50LmNvbXBhcmVUbyh5LnBhcmVudCk7aWYodG1wKQorcmV0dXJuIHRtcDt0bXA9eC5zb3J0SW5kZXgteS5zb3J0SW5kZXg7aWYodG1wKQorcmV0dXJuIHRtcDt0bXA9dHIuYi5jb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoeC5uYW1lLHkubmFtZSxmdW5jdGlvbih4LHkpe3JldHVybiB4LmxvY2FsZUNvbXBhcmUoeSk7fSk7aWYodG1wKQorcmV0dXJuIHRtcDtyZXR1cm4geC50aWQteS50aWQ7fTtyZXR1cm57VGhyZWFkOlRocmVhZH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgVGhyZWFkPXRyLm1vZGVsLlRocmVhZDt2YXIgQ291bnRlcj10ci5tb2RlbC5Db3VudGVyO2Z1bmN0aW9uIFByb2Nlc3NCYXNlKG1vZGVsKXtpZighbW9kZWwpCit0aHJvdyBuZXcgRXJyb3IoJ011c3QgcHJvdmlkZSBhIG1vZGVsJyk7dHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMubW9kZWw9bW9kZWw7dGhpcy50aHJlYWRzPXt9O3RoaXMuY291bnRlcnM9e307dGhpcy5vYmplY3RzPW5ldyB0ci5tb2RlbC5PYmplY3RDb2xsZWN0aW9uKHRoaXMpO3RoaXMuc29ydEluZGV4PTA7fTtQcm9jZXNzQmFzZS5jb21wYXJlPWZ1bmN0aW9uKHgseSl7cmV0dXJuIHguc29ydEluZGV4LXkuc29ydEluZGV4O307UHJvY2Vzc0Jhc2UucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLGdldCBndWlkKCl7cmV0dXJuIHRoaXMuZ3VpZF87fSxnZXQgc3RhYmxlSWQoKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30saXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXtmb3IodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpCitjYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMudGhyZWFkc1t0aWRdKTtmb3IodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCitjYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMuY291bnRlcnNbaWRdKTtjYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMub2JqZWN0cyk7fSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7fSxpdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzOmZ1bmN0aW9uKGNiKXtjYih0aGlzKTtmb3IodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpCit0aGlzLnRocmVhZHNbdGlkXS5pdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzKGNiKTt9LGdldCBudW1UaHJlYWRzKCl7dmFyIG49MDtmb3IodmFyIHAgaW4gdGhpcy50aHJlYWRzKXtuKys7fQorcmV0dXJuIG47fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMoZnVuY3Rpb24oY2hpbGQpe2NoaWxkLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTt9KTt9LGF1dG9DbG9zZU9wZW5TbGljZXM6ZnVuY3Rpb24ob3B0X21heFRpbWVzdGFtcCl7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt2YXIgdGhyZWFkPXRoaXMudGhyZWFkc1t0aWRdO3RocmVhZC5hdXRvQ2xvc2VPcGVuU2xpY2VzKG9wdF9tYXhUaW1lc3RhbXApO319LGF1dG9EZWxldGVPYmplY3RzOmZ1bmN0aW9uKG1heFRpbWVzdGFtcCl7dGhpcy5vYmplY3RzLmF1dG9EZWxldGVPYmplY3RzKG1heFRpbWVzdGFtcCk7fSxwcmVJbml0aWFsaXplT2JqZWN0czpmdW5jdGlvbigpe3RoaXMub2JqZWN0cy5wcmVJbml0aWFsaXplQWxsT2JqZWN0cygpO30saW5pdGlhbGl6ZU9iamVjdHM6ZnVuY3Rpb24oKXt0aGlzLm9iamVjdHMuaW5pdGlhbGl6ZUFsbE9iamVjdHMoKTt9LG1lcmdlS2VybmVsV2l0aFVzZXJsYW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt2YXIgdGhyZWFkPXRoaXMudGhyZWFkc1t0aWRdO3RocmVhZC5tZXJnZUtlcm5lbFdpdGhVc2VybGFuZCgpO319LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt0aGlzLnRocmVhZHNbdGlkXS51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLnRocmVhZHNbdGlkXS5ib3VuZHMpO30KK2Zvcih2YXIgaWQgaW4gdGhpcy5jb3VudGVycyl7dGhpcy5jb3VudGVyc1tpZF0udXBkYXRlQm91bmRzKCk7dGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5jb3VudGVyc1tpZF0uYm91bmRzKTt9Cit0aGlzLm9iamVjdHMudXBkYXRlQm91bmRzKCk7dGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5vYmplY3RzLmJvdW5kcyk7fSxhZGRDYXRlZ29yaWVzVG9EaWN0OmZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KXtmb3IodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpCit0aGlzLnRocmVhZHNbdGlkXS5hZGRDYXRlZ29yaWVzVG9EaWN0KGNhdGVnb3JpZXNEaWN0KTtmb3IodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCitjYXRlZ29yaWVzRGljdFt0aGlzLmNvdW50ZXJzW2lkXS5jYXRlZ29yeV09dHJ1ZTt0aGlzLm9iamVjdHMuYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7fSxmaW5kQWxsVGhyZWFkc01hdGNoaW5nOmZ1bmN0aW9uKHByZWRpY2F0ZSxvcHRfdGhpcyl7dmFyIHRocmVhZHM9W107Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt2YXIgdGhyZWFkPXRoaXMudGhyZWFkc1t0aWRdO2lmKHByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLHRocmVhZCkpCit0aHJlYWRzLnB1c2godGhyZWFkKTt9CityZXR1cm4gdGhyZWFkczt9LGZpbmRBbGxUaHJlYWRzTmFtZWQ6ZnVuY3Rpb24obmFtZSl7dmFyIHRocmVhZHM9dGhpcy5maW5kQWxsVGhyZWFkc01hdGNoaW5nKGZ1bmN0aW9uKHRocmVhZCl7aWYoIXRocmVhZC5uYW1lKQorcmV0dXJuIGZhbHNlO3JldHVybiB0aHJlYWQubmFtZT09PW5hbWU7fSk7cmV0dXJuIHRocmVhZHM7fSxmaW5kQXRNb3N0T25lVGhyZWFkTmFtZWQ6ZnVuY3Rpb24obmFtZSl7dmFyIHRocmVhZHM9dGhpcy5maW5kQWxsVGhyZWFkc05hbWVkKG5hbWUpO2lmKHRocmVhZHMubGVuZ3RoPT09MCkKK3JldHVybiB1bmRlZmluZWQ7aWYodGhyZWFkcy5sZW5ndGg+MSkKK3Rocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm8gbW9yZSB0aGFuIG9uZSAnK25hbWUpO3JldHVybiB0aHJlYWRzWzBdO30scHJ1bmVFbXB0eUNvbnRhaW5lcnM6ZnVuY3Rpb24oKXt2YXIgdGhyZWFkc1RvS2VlcD17fTtmb3IodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpe3ZhciB0aHJlYWQ9dGhpcy50aHJlYWRzW3RpZF07aWYoIXRocmVhZC5pc0VtcHR5KQordGhyZWFkc1RvS2VlcFt0aWRdPXRocmVhZDt9Cit0aGlzLnRocmVhZHM9dGhyZWFkc1RvS2VlcDt9LGdldFRocmVhZDpmdW5jdGlvbih0aWQpe3JldHVybiB0aGlzLnRocmVhZHNbdGlkXTt9LGdldE9yQ3JlYXRlVGhyZWFkOmZ1bmN0aW9uKHRpZCl7aWYoIXRoaXMudGhyZWFkc1t0aWRdKQordGhpcy50aHJlYWRzW3RpZF09bmV3IFRocmVhZCh0aGlzLHRpZCk7cmV0dXJuIHRoaXMudGhyZWFkc1t0aWRdO30sZ2V0T3JDcmVhdGVDb3VudGVyOmZ1bmN0aW9uKGNhdCxuYW1lKXt2YXIgaWQ9Y2F0KycuJytuYW1lO2lmKCF0aGlzLmNvdW50ZXJzW2lkXSkKK3RoaXMuY291bnRlcnNbaWRdPW5ldyBDb3VudGVyKHRoaXMsaWQsY2F0LG5hbWUpO3JldHVybiB0aGlzLmNvdW50ZXJzW2lkXTt9LGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGNyZWF0ZVN1YlNsaWNlczpmdW5jdGlvbigpe2Zvcih2YXIgdGlkIGluIHRoaXMudGhyZWFkcykKK3RoaXMudGhyZWFkc1t0aWRdLmNyZWF0ZVN1YlNsaWNlcygpO319O3JldHVybntQcm9jZXNzQmFzZTpQcm9jZXNzQmFzZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgQ3B1PXRyLm1vZGVsLkNwdTt2YXIgUHJvY2Vzc0Jhc2U9dHIubW9kZWwuUHJvY2Vzc0Jhc2U7ZnVuY3Rpb24gS2VybmVsKG1vZGVsKXtQcm9jZXNzQmFzZS5jYWxsKHRoaXMsbW9kZWwpO3RoaXMuY3B1cz17fTt0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF89dW5kZWZpbmVkO307S2VybmVsLmNvbXBhcmU9ZnVuY3Rpb24oeCx5KXtyZXR1cm4gMDt9O0tlcm5lbC5wcm90b3R5cGU9e19fcHJvdG9fXzpQcm9jZXNzQmFzZS5wcm90b3R5cGUsY29tcGFyZVRvOmZ1bmN0aW9uKHRoYXQpe3JldHVybiBLZXJuZWwuY29tcGFyZSh0aGlzLHRoYXQpO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nS2VybmVsJzt9LGdldCB1c2VyRnJpZW5kbHlEZXRhaWxzKCl7cmV0dXJuJ0tlcm5lbCc7fSxnZXQgc3RhYmxlSWQoKXtyZXR1cm4nS2VybmVsJzt9LGdldE9yQ3JlYXRlQ3B1OmZ1bmN0aW9uKGNwdU51bWJlcil7aWYoIXRoaXMuY3B1c1tjcHVOdW1iZXJdKQordGhpcy5jcHVzW2NwdU51bWJlcl09bmV3IENwdSh0aGlzLGNwdU51bWJlcik7cmV0dXJuIHRoaXMuY3B1c1tjcHVOdW1iZXJdO30sZ2V0IHNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCgpe3JldHVybiB0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF87fSxzZXQgc29mdHdhcmVNZWFzdXJlZENwdUNvdW50KHNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCl7aWYodGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfIT09dW5kZWZpbmVkJiZ0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF8hPT1zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQpe3Rocm93IG5ldyBFcnJvcignQ2Fubm90IGNoYW5nZSB0aGUgc29mdHdhcmVNZWFzdXJlZENwdUNvdW50IG9uY2UgaXQgaXMgc2V0Jyk7fQordGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfPXNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudDt9LGdldCBiZXN0R3Vlc3NBdENwdUNvdW50KCl7dmFyIHJlYWxDcHVDb3VudD10ci5iLmRpY3Rpb25hcnlMZW5ndGgodGhpcy5jcHVzKTtpZihyZWFsQ3B1Q291bnQhPT0wKQorcmV0dXJuIHJlYWxDcHVDb3VudDtyZXR1cm4gdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQ7fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXtQcm9jZXNzQmFzZS5wcm90b3R5cGUudXBkYXRlQm91bmRzLmNhbGwodGhpcyk7Zm9yKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5jcHVzKXt2YXIgY3B1PXRoaXMuY3B1c1tjcHVOdW1iZXJdO2NwdS51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZShjcHUuYm91bmRzKTt9fSxjcmVhdGVTdWJTbGljZXM6ZnVuY3Rpb24oKXtQcm9jZXNzQmFzZS5wcm90b3R5cGUuY3JlYXRlU3ViU2xpY2VzLmNhbGwodGhpcyk7Zm9yKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5jcHVzKXt2YXIgY3B1PXRoaXMuY3B1c1tjcHVOdW1iZXJdO2NwdS5jcmVhdGVTdWJTbGljZXMoKTt9fSxhZGRDYXRlZ29yaWVzVG9EaWN0OmZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KXtQcm9jZXNzQmFzZS5wcm90b3R5cGUuYWRkQ2F0ZWdvcmllc1RvRGljdC5jYWxsKHRoaXMsY2F0ZWdvcmllc0RpY3QpO2Zvcih2YXIgY3B1TnVtYmVyIGluIHRoaXMuY3B1cykKK3RoaXMuY3B1c1tjcHVOdW1iZXJdLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpO30sZ2V0U2V0dGluZ3NLZXk6ZnVuY3Rpb24oKXtyZXR1cm4na2VybmVsJzt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7UHJvY2Vzc0Jhc2UucHJvdG90eXBlLml0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVycy5jYWxsKHRoaXMsY2FsbGJhY2ssb3B0X3RoaXMpO2Zvcih2YXIgY3B1SWQgaW4gdGhpcy5jcHVzKQorY2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLmNwdXNbY3B1SWRdKTt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXtQcm9jZXNzQmFzZS5wcm90b3R5cGUuaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lci5jYWxsKHRoaXMsZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKTt9fTtyZXR1cm57S2VybmVsOktlcm5lbH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBNb2RlbEluZGljZXMobW9kZWwpe3RoaXMuZmxvd0V2ZW50c0J5SWRfPXt9O21vZGVsLmZsb3dFdmVudHMuZm9yRWFjaChmdW5jdGlvbihmZSl7aWYoZmUuaWQhPT11bmRlZmluZWQpe2lmKCF0aGlzLmZsb3dFdmVudHNCeUlkXy5oYXNPd25Qcm9wZXJ0eShmZS5pZCkpe3RoaXMuZmxvd0V2ZW50c0J5SWRfW2ZlLmlkXT1uZXcgQXJyYXkoKTt9Cit0aGlzLmZsb3dFdmVudHNCeUlkX1tmZS5pZF0ucHVzaChmZSk7fX0sdGhpcyk7fQorTW9kZWxJbmRpY2VzLnByb3RvdHlwZT17YWRkRXZlbnRXaXRoSWQ6ZnVuY3Rpb24oaWQsZXZlbnQpe2lmKCF0aGlzLmZsb3dFdmVudHNCeUlkXy5oYXNPd25Qcm9wZXJ0eShpZCkpe3RoaXMuZmxvd0V2ZW50c0J5SWRfW2lkXT1uZXcgQXJyYXkoKTt9Cit0aGlzLmZsb3dFdmVudHNCeUlkX1tpZF0ucHVzaChldmVudCk7fSxnZXRGbG93RXZlbnRzV2l0aElkOmZ1bmN0aW9uKGlkKXtpZighdGhpcy5mbG93RXZlbnRzQnlJZF8uaGFzT3duUHJvcGVydHkoaWQpKQorcmV0dXJuW107cmV0dXJuIHRoaXMuZmxvd0V2ZW50c0J5SWRfW2lkXTt9fTtyZXR1cm57TW9kZWxJbmRpY2VzOk1vZGVsSW5kaWNlc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgRElTQ09VTlRFRF9BTExPQ0FUT1JfTkFNRVM9Wyd3aW5oZWFwJywnbWFsbG9jJ107ZnVuY3Rpb24gUHJvY2Vzc01lbW9yeUR1bXAoZ2xvYmFsTWVtb3J5RHVtcCxwcm9jZXNzLHN0YXJ0KXt0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLmNhbGwodGhpcyxzdGFydCk7dGhpcy5wcm9jZXNzPXByb2Nlc3M7dGhpcy5nbG9iYWxNZW1vcnlEdW1wPWdsb2JhbE1lbW9yeUR1bXA7dGhpcy50b3RhbFJlc2lkZW50Qnl0ZXM9dW5kZWZpbmVkO3RoaXMudm1SZWdpb25zXz11bmRlZmluZWQ7dGhpcy50cmFjaW5nTWVtb3J5RGlzY291bnRlZF89ZmFsc2U7fTtQcm9jZXNzTWVtb3J5RHVtcC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLnByb3RvdHlwZSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidQcm9jZXNzIG1lbW9yeSBkdW1wIGF0ICcrCit0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQodGhpcy5zdGFydCk7fSxnZXQgY29udGFpbmVyTmFtZSgpe3JldHVybiB0aGlzLnByb2Nlc3MudXNlckZyaWVuZGx5TmFtZTt9LGdldCB2bVJlZ2lvbnMoKXt0aHJvdyBuZXcgRXJyb3IoJ1ZNIHJlZ2lvbnMgbXVzdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBtb3N0UmVjZW50Vm1SZWdpb25zIGZpZWxkJyk7fSxzZXQgdm1SZWdpb25zKHZtUmVnaW9ucyl7dGhpcy52bVJlZ2lvbnNfPXZtUmVnaW9uczt9LGdldCBoYXNPd25WbVJlZ2lvbnMoKXtyZXR1cm4gdGhpcy52bVJlZ2lvbnNfIT09dW5kZWZpbmVkO30sZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0OmZ1bmN0aW9uKHN0YXROYW1lKXtpZih0aGlzLm1vc3RSZWNlbnRWbVJlZ2lvbnM9PT11bmRlZmluZWQpCityZXR1cm4gdW5kZWZpbmVkO3ZhciB0b3RhbD0wO3RoaXMubW9zdFJlY2VudFZtUmVnaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHZtUmVnaW9uKXt2YXIgc3RhdFZhbHVlPXZtUmVnaW9uLmJ5dGVTdGF0c1tzdGF0TmFtZV07aWYoc3RhdFZhbHVlPT09dW5kZWZpbmVkKQorcmV0dXJuO3RvdGFsKz1zdGF0VmFsdWU7fSk7cmV0dXJuIHRvdGFsO30sZGlzY291bnRUcmFjaW5nT3ZlcmhlYWQ6ZnVuY3Rpb24ob3B0X21vZGVsKXtpZih0aGlzLnRyYWNpbmdNZW1vcnlEaXNjb3VudGVkXykKK3JldHVybjt0aGlzLnRyYWNpbmdNZW1vcnlEaXNjb3VudGVkXz10cnVlO3ZhciB0cmFjaW5nRHVtcD10aGlzLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0cmFjaW5nJyk7aWYodHJhY2luZ0R1bXA9PT11bmRlZmluZWQpCityZXR1cm47dmFyIHRyYWNpbmdSZXNpZGVudFNpemVBdHRyPXRyYWNpbmdEdW1wLmdldFZhbGlkU2l6ZUF0dHJpYnV0ZU9yVW5kZWZpbmVkKCdyZXNpZGVudF9zaXplJyxvcHRfbW9kZWwpO2lmKHRyYWNpbmdSZXNpZGVudFNpemVBdHRyIT09dW5kZWZpbmVkKXt2YXIgdHJhY2luZ1Jlc2lkZW50U2l6ZT10cmFjaW5nUmVzaWRlbnRTaXplQXR0ci52YWx1ZTtpZih0aGlzLnRvdGFsUmVzaWRlbnRCeXRlcyE9PXVuZGVmaW5lZCkKK3RoaXMudG90YWxSZXNpZGVudEJ5dGVzLT10cmFjaW5nUmVzaWRlbnRTaXplO2lmKHRoaXMudm1SZWdpb25zXyE9PXVuZGVmaW5lZCl7dGhpcy52bVJlZ2lvbnNfLnB1c2goVk1SZWdpb24uZnJvbURpY3Qoe21hcHBlZEZpbGU6J1tkaXNjb3VudGVkIHRyYWNpbmcgb3ZlcmhlYWRdJyxieXRlU3RhdHM6e3ByaXZhdGVEaXJ0eVJlc2lkZW50Oi10cmFjaW5nUmVzaWRlbnRTaXplLHByb3BvcnRpb25hbFJlc2lkZW50Oi10cmFjaW5nUmVzaWRlbnRTaXplfX0pKTt9fQordmFyIHRyYWNpbmdTaXplQXR0cj10cmFjaW5nRHVtcC5nZXRWYWxpZFNpemVBdHRyaWJ1dGVPclVuZGVmaW5lZCgnc2l6ZScsb3B0X21vZGVsKTtpZih0cmFjaW5nU2l6ZUF0dHIhPT11bmRlZmluZWQpe3ZhciB0cmFjaW5nU2l6ZT10cmFjaW5nU2l6ZUF0dHIudmFsdWU7dmFyIGhhc0Rpc2NvdW50ZWRGcm9tQWxsb2NhdG9yRHVtcHM9RElTQ09VTlRFRF9BTExPQ0FUT1JfTkFNRVMuc29tZShmdW5jdGlvbihhbGxvY2F0b3JOYW1lKXt2YXIgZHVtcD10aGlzLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKGFsbG9jYXRvck5hbWUpO2lmKGR1bXA9PT11bmRlZmluZWQpCityZXR1cm4gZmFsc2U7dmFyIG92ZXJoZWFkU2l6ZUF0dHJpYnV0ZT1uZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsLXRyYWNpbmdTaXplKTt2YXIgb3ZlcmhlYWREdW1wPW5ldyB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wKHRoaXMsYWxsb2NhdG9yTmFtZSsnL2Rpc2NvdW50ZWRfdHJhY2luZ19vdmVyaGVhZCcpO292ZXJoZWFkRHVtcC5wYXJlbnQ9ZHVtcDtvdmVyaGVhZER1bXAuYWRkQXR0cmlidXRlKCdzaXplJyxvdmVyaGVhZFNpemVBdHRyaWJ1dGUpO2R1bXAuY2hpbGRyZW4ucHVzaChvdmVyaGVhZER1bXApO3ZhciBkdW1wU2l6ZUF0dHI9ZHVtcC5nZXRWYWxpZFNpemVBdHRyaWJ1dGVPclVuZGVmaW5lZCgnc2l6ZScsb3B0X21vZGVsKTtpZihkdW1wU2l6ZUF0dHIhPT11bmRlZmluZWQpCitkdW1wU2l6ZUF0dHIudmFsdWUtPXRyYWNpbmdTaXplO3JldHVybiB0cnVlO30sdGhpcyk7aWYoaGFzRGlzY291bnRlZEZyb21BbGxvY2F0b3JEdW1wcykKK3RoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHM9dGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wczt9fX07UHJvY2Vzc01lbW9yeUR1bXAuaG9va1VwTW9zdFJlY2VudFZtUmVnaW9uc0xpbmtzPWZ1bmN0aW9uKHByb2Nlc3NEdW1wcyl7dmFyIG1vc3RSZWNlbnRWbVJlZ2lvbnM9dW5kZWZpbmVkO3Byb2Nlc3NEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKHByb2Nlc3NEdW1wKXtpZihwcm9jZXNzRHVtcC52bVJlZ2lvbnNfIT09dW5kZWZpbmVkKQorbW9zdFJlY2VudFZtUmVnaW9ucz1wcm9jZXNzRHVtcC52bVJlZ2lvbnNfO3Byb2Nlc3NEdW1wLm1vc3RSZWNlbnRWbVJlZ2lvbnM9bW9zdFJlY2VudFZtUmVnaW9uczt9KTt9O2Z1bmN0aW9uIFZNUmVnaW9uKHN0YXJ0QWRkcmVzcyxzaXplSW5CeXRlcyxwcm90ZWN0aW9uRmxhZ3MsbWFwcGVkRmlsZSxieXRlU3RhdHMpe3RoaXMuc3RhcnRBZGRyZXNzPXN0YXJ0QWRkcmVzczt0aGlzLnNpemVJbkJ5dGVzPXNpemVJbkJ5dGVzO3RoaXMucHJvdGVjdGlvbkZsYWdzPXByb3RlY3Rpb25GbGFnczt0aGlzLm1hcHBlZEZpbGU9bWFwcGVkRmlsZTt0aGlzLmJ5dGVTdGF0cz1ieXRlU3RhdHM7fTtWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRD00O1ZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURT0yO1ZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19FWEVDVVRFPTE7Vk1SZWdpb24ucHJvdG90eXBlPXtnZXQgcHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcoKXtpZih0aGlzLnByb3RlY3Rpb25GbGFncz09PXVuZGVmaW5lZCkKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuKCh0aGlzLnByb3RlY3Rpb25GbGFncyZWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRD8ncic6Jy0nKSsKKyh0aGlzLnByb3RlY3Rpb25GbGFncyZWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfV1JJVEU/J3cnOictJykrCisodGhpcy5wcm90ZWN0aW9uRmxhZ3MmVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX0VYRUNVVEU/J3gnOictJykpO319O1ZNUmVnaW9uLmZyb21EaWN0PWZ1bmN0aW9uKGRpY3Qpe3JldHVybiBuZXcgVk1SZWdpb24oZGljdC5zdGFydEFkZHJlc3MsZGljdC5zaXplSW5CeXRlcyxkaWN0LnByb3RlY3Rpb25GbGFncyxkaWN0Lm1hcHBlZEZpbGUsVk1SZWdpb25CeXRlU3RhdHMuZnJvbURpY3QoZGljdC5ieXRlU3RhdHMpKTt9O2Z1bmN0aW9uIFZNUmVnaW9uQnl0ZVN0YXRzKHByaXZhdGVDbGVhblJlc2lkZW50LHByaXZhdGVEaXJ0eVJlc2lkZW50LHNoYXJlZENsZWFuUmVzaWRlbnQsc2hhcmVkRGlydHlSZXNpZGVudCxwcm9wb3J0aW9uYWxSZXNpZGVudCxzd2FwcGVkKXt0aGlzLnByaXZhdGVDbGVhblJlc2lkZW50PXByaXZhdGVDbGVhblJlc2lkZW50O3RoaXMucHJpdmF0ZURpcnR5UmVzaWRlbnQ9cHJpdmF0ZURpcnR5UmVzaWRlbnQ7dGhpcy5zaGFyZWRDbGVhblJlc2lkZW50PXNoYXJlZENsZWFuUmVzaWRlbnQ7dGhpcy5zaGFyZWREaXJ0eVJlc2lkZW50PXNoYXJlZERpcnR5UmVzaWRlbnQ7dGhpcy5wcm9wb3J0aW9uYWxSZXNpZGVudD1wcm9wb3J0aW9uYWxSZXNpZGVudDt0aGlzLnN3YXBwZWQ9c3dhcHBlZDt9CitWTVJlZ2lvbkJ5dGVTdGF0cy5mcm9tRGljdD1mdW5jdGlvbihkaWN0KXtyZXR1cm4gbmV3IFZNUmVnaW9uQnl0ZVN0YXRzKGRpY3QucHJpdmF0ZUNsZWFuUmVzaWRlbnQsZGljdC5wcml2YXRlRGlydHlSZXNpZGVudCxkaWN0LnNoYXJlZENsZWFuUmVzaWRlbnQsZGljdC5zaGFyZWREaXJ0eVJlc2lkZW50LGRpY3QucHJvcG9ydGlvbmFsUmVzaWRlbnQsZGljdC5zd2FwcGVkKTt9Cit0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKFByb2Nlc3NNZW1vcnlEdW1wLHtuYW1lOidwcm9jZXNzTWVtb3J5RHVtcCcscGx1cmFsTmFtZToncHJvY2Vzc01lbW9yeUR1bXBzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLXVpLWEtc2luZ2xlLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci11aS1hLW11bHRpLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXcnfSk7cmV0dXJue1Byb2Nlc3NNZW1vcnlEdW1wOlByb2Nlc3NNZW1vcnlEdW1wLFZNUmVnaW9uOlZNUmVnaW9uLFZNUmVnaW9uQnl0ZVN0YXRzOlZNUmVnaW9uQnl0ZVN0YXRzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBQcm9jZXNzQmFzZT10ci5tb2RlbC5Qcm9jZXNzQmFzZTt2YXIgUHJvY2Vzc0luc3RhbnRFdmVudD10ci5tb2RlbC5Qcm9jZXNzSW5zdGFudEV2ZW50O3ZhciBGcmFtZT10ci5tb2RlbC5GcmFtZTt2YXIgUHJvY2Vzc01lbW9yeUR1bXA9dHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXA7ZnVuY3Rpb24gUHJvY2Vzcyhtb2RlbCxwaWQpe2lmKG1vZGVsPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdtb2RlbCBtdXN0IGJlIHByb3ZpZGVkJyk7aWYocGlkPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdwaWQgbXVzdCBiZSBwcm92aWRlZCcpO3RyLm1vZGVsLlByb2Nlc3NCYXNlLmNhbGwodGhpcyxtb2RlbCk7dGhpcy5waWQ9cGlkO3RoaXMubmFtZT11bmRlZmluZWQ7dGhpcy5sYWJlbHM9W107dGhpcy5pbnN0YW50RXZlbnRzPVtdO3RoaXMubWVtb3J5RHVtcHM9W107dGhpcy5mcmFtZXM9W107fTtQcm9jZXNzLmNvbXBhcmU9ZnVuY3Rpb24oeCx5KXt2YXIgdG1wPXRyLm1vZGVsLlByb2Nlc3NCYXNlLmNvbXBhcmUoeCx5KTtpZih0bXApCityZXR1cm4gdG1wO3RtcD10ci5iLmNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyh4Lm5hbWUseS5uYW1lLGZ1bmN0aW9uKHgseSl7cmV0dXJuIHgubG9jYWxlQ29tcGFyZSh5KTt9KTtpZih0bXApCityZXR1cm4gdG1wO3RtcD10ci5iLmNvbXBhcmVBcnJheXMoeC5sYWJlbHMseS5sYWJlbHMsZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5sb2NhbGVDb21wYXJlKHkpO30pO2lmKHRtcCkKK3JldHVybiB0bXA7cmV0dXJuIHgucGlkLXkucGlkO307UHJvY2Vzcy5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Qcm9jZXNzQmFzZS5wcm90b3R5cGUsZ2V0IHN0YWJsZUlkKCl7cmV0dXJuIHRoaXMucGlkO30sY29tcGFyZVRvOmZ1bmN0aW9uKHRoYXQpe3JldHVybiBQcm9jZXNzLmNvbXBhcmUodGhpcyx0aGF0KTt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXtQcm9jZXNzQmFzZS5wcm90b3R5cGUuaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lci5jYWxsKHRoaXMsZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKTtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxQcm9jZXNzSW5zdGFudEV2ZW50KSkKK3RoaXMuaW5zdGFudEV2ZW50cy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxGcmFtZSkpCit0aGlzLmZyYW1lcy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxQcm9jZXNzTWVtb3J5RHVtcCkpCit0aGlzLm1lbW9yeUR1bXBzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO30scHVzaEluc3RhbnRFdmVudDpmdW5jdGlvbihpbnN0YW50RXZlbnQpe3RoaXMuaW5zdGFudEV2ZW50cy5wdXNoKGluc3RhbnRFdmVudCk7fSxhZGRMYWJlbElmTmVlZGVkOmZ1bmN0aW9uKGxhYmVsTmFtZSl7Zm9yKHZhciBpPTA7aTx0aGlzLmxhYmVscy5sZW5ndGg7aSsrKXtpZih0aGlzLmxhYmVsc1tpXT09PWxhYmVsTmFtZSkKK3JldHVybjt9Cit0aGlzLmxhYmVscy5wdXNoKGxhYmVsTmFtZSk7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3ZhciByZXM7aWYodGhpcy5uYW1lKQorcmVzPXRoaXMubmFtZSsnIChwaWQgJyt0aGlzLnBpZCsnKSc7ZWxzZQorcmVzPSdQcm9jZXNzICcrdGhpcy5waWQ7aWYodGhpcy5sYWJlbHMubGVuZ3RoKQorcmVzKz0nOiAnK3RoaXMubGFiZWxzLmpvaW4oJywgJyk7cmV0dXJuIHJlczt9LGdldCB1c2VyRnJpZW5kbHlEZXRhaWxzKCl7aWYodGhpcy5uYW1lKQorcmV0dXJuIHRoaXMubmFtZSsnIChwaWQgJyt0aGlzLnBpZCsnKSc7cmV0dXJuJ3BpZDogJyt0aGlzLnBpZDt9LGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7aWYoIXRoaXMubmFtZSkKK3JldHVybiB1bmRlZmluZWQ7aWYoIXRoaXMubGFiZWxzLmxlbmd0aCkKK3JldHVybidwcm9jZXNzZXMuJyt0aGlzLm5hbWU7cmV0dXJuJ3Byb2Nlc3Nlcy4nK3RoaXMubmFtZSsnLicrdGhpcy5sYWJlbHMuam9pbignLicpO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe2Zvcih2YXIgaWQgaW4gdGhpcy5pbnN0YW50RXZlbnRzKQordGhpcy5pbnN0YW50RXZlbnRzW2lkXS5zdGFydCs9YW1vdW50O2Zvcih2YXIgaT0wO2k8dGhpcy5mcmFtZXMubGVuZ3RoO2krKykKK3RoaXMuZnJhbWVzW2ldLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTtmb3IodmFyIGk9MDtpPHRoaXMubWVtb3J5RHVtcHMubGVuZ3RoO2krKykKK3RoaXMubWVtb3J5RHVtcHNbaV0uc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpO3RyLm1vZGVsLlByb2Nlc3NCYXNlLnByb3RvdHlwZS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RyLm1vZGVsLlByb2Nlc3NCYXNlLnByb3RvdHlwZS51cGRhdGVCb3VuZHMuYXBwbHkodGhpcyk7Zm9yKHZhciBpPTA7aTx0aGlzLmZyYW1lcy5sZW5ndGg7aSsrKQordGhpcy5mcmFtZXNbaV0uYWRkQm91bmRzVG9SYW5nZSh0aGlzLmJvdW5kcyk7Zm9yKHZhciBpPTA7aTx0aGlzLm1lbW9yeUR1bXBzLmxlbmd0aDtpKyspCit0aGlzLm1lbW9yeUR1bXBzW2ldLmFkZEJvdW5kc1RvUmFuZ2UodGhpcy5ib3VuZHMpO30sc29ydE1lbW9yeUR1bXBzOmZ1bmN0aW9uKCl7dGhpcy5tZW1vcnlEdW1wcy5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHguc3RhcnQteS5zdGFydDt9KTt0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcC5ob29rVXBNb3N0UmVjZW50Vm1SZWdpb25zTGlua3ModGhpcy5tZW1vcnlEdW1wcyk7fX07cmV0dXJue1Byb2Nlc3M6UHJvY2Vzc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBTYW1wbGUoY3B1LHRocmVhZCx0aXRsZSxzdGFydCxsZWFmU3RhY2tGcmFtZSxvcHRfd2VpZ2h0LG9wdF9hcmdzKXt0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcyxzdGFydCk7dGhpcy50aXRsZT10aXRsZTt0aGlzLmNwdT1jcHU7dGhpcy50aHJlYWQ9dGhyZWFkO3RoaXMubGVhZlN0YWNrRnJhbWU9bGVhZlN0YWNrRnJhbWU7dGhpcy53ZWlnaHQ9b3B0X3dlaWdodDt0aGlzLmFyZ3M9b3B0X2FyZ3N8fHt9O30KK1NhbXBsZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSxnZXQgY29sb3JJZCgpe3JldHVybiB0aGlzLmxlYWZTdGFja0ZyYW1lLmNvbG9ySWQ7fSxnZXQgc3RhY2tUcmFjZSgpe3JldHVybiB0aGlzLmxlYWZTdGFja0ZyYW1lLnN0YWNrVHJhY2U7fSxnZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVhZlN0YWNrRnJhbWUuZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nU2FtcGxlIGF0ICcrdHIuYi51bml0cy5UaW1lU3RhbXAuZm9ybWF0KHRoaXMuc3RhcnQpO319O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoU2FtcGxlLHtuYW1lOidzYW1wbGUnLHBsdXJhbE5hbWU6J3NhbXBsZXMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItdWktYS1zaW5nbGUtc2FtcGxlLXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItdWktYS1tdWx0aS1zYW1wbGUtc3ViLXZpZXcnfSk7cmV0dXJue1NhbXBsZTpTYW1wbGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gU3RhY2tGcmFtZShwYXJlbnRGcmFtZSxpZCxjYXRlZ29yeSx0aXRsZSxjb2xvcklkKXtpZihpZD09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignaWQgbXVzdCBiZSBnaXZlbicpO3RoaXMucGFyZW50RnJhbWVfPXBhcmVudEZyYW1lO3RoaXMuaWQ9aWQ7dGhpcy5jYXRlZ29yeT1jYXRlZ29yeXx8Jyc7dGhpcy50aXRsZT10aXRsZTt0aGlzLmNvbG9ySWQ9Y29sb3JJZDt0aGlzLmNoaWxkcmVuPVtdO2lmKHRoaXMucGFyZW50RnJhbWVfKQordGhpcy5wYXJlbnRGcmFtZV8uYWRkQ2hpbGQodGhpcyk7fQorU3RhY2tGcmFtZS5wcm90b3R5cGU9e2dldCBwYXJlbnRGcmFtZSgpe3JldHVybiB0aGlzLnBhcmVudEZyYW1lXzt9LHNldCBwYXJlbnRGcmFtZShwYXJlbnRGcmFtZSl7aWYodGhpcy5wYXJlbnRGcmFtZV8pCit0aGlzLnBhcmVudEZyYW1lXy5yZW1vdmVDaGlsZCh0aGlzKTt0aGlzLnBhcmVudEZyYW1lXz1wYXJlbnRGcmFtZTtpZih0aGlzLnBhcmVudEZyYW1lXykKK3RoaXMucGFyZW50RnJhbWVfLmFkZENoaWxkKHRoaXMpO30sYWRkQ2hpbGQ6ZnVuY3Rpb24oY2hpbGQpe3RoaXMuY2hpbGRyZW4ucHVzaChjaGlsZCk7fSxyZW1vdmVDaGlsZDpmdW5jdGlvbihjaGlsZCl7dmFyIGk9dGhpcy5jaGlsZHJlbi5pbmRleE9mKGNoaWxkLmlkKTtpZihpPT0tMSkKK3Rocm93IG5ldyBFcnJvcignb21nJyk7dGhpcy5jaGlsZHJlbi5zcGxpY2UoaSwxKTt9LHJlbW92ZUFsbENoaWxkcmVuOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTx0aGlzLmNoaWxkcmVuLmxlbmd0aDtpKyspCit0aGlzLmNoaWxkcmVuW2ldLnBhcmVudEZyYW1lXz11bmRlZmluZWQ7dGhpcy5jaGlsZHJlbi5zcGxpY2UoMCx0aGlzLmNoaWxkcmVuLmxlbmd0aCk7fSxnZXQgc3RhY2tUcmFjZSgpe3ZhciBzdGFjaz1bXTt2YXIgY3VyPXRoaXM7d2hpbGUoY3VyKXtzdGFjay5wdXNoKGN1cik7Y3VyPWN1ci5wYXJlbnRGcmFtZTt9CityZXR1cm4gc3RhY2s7fSxnZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhY2tUcmFjZS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguY2F0ZWdvcnkrJzogJyt4LnRpdGxlO30pO319O3JldHVybntTdGFja0ZyYW1lOlN0YWNrRnJhbWV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBkZWNvcmF0ZShzb3VyY2UsY29uc3RyKXt2YXIgZWxlbWVudHM7aWYodHlwZW9mIHNvdXJjZT09J3N0cmluZycpCitlbGVtZW50cz10ci5kb2MucXVlcnlTZWxlY3RvckFsbChzb3VyY2UpO2Vsc2UKK2VsZW1lbnRzPVtzb3VyY2VdO2Zvcih2YXIgaT0wLGVsO2VsPWVsZW1lbnRzW2ldO2krKyl7aWYoIShlbCBpbnN0YW5jZW9mIGNvbnN0cikpCitjb25zdHIuZGVjb3JhdGUoZWwpO319CitmdW5jdGlvbiBkZWZpbmUoY2xhc3NOYW1lLG9wdF9wYXJlbnRDb25zdHJ1Y3RvcixvcHRfdGFnTlMpe2lmKHR5cGVvZiBjbGFzc05hbWU9PSdmdW5jdGlvbicpe3Rocm93IG5ldyBFcnJvcignUGFzc2luZyBmdW5jdGlvbnMgYXMgY2xhc3NOYW1lIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSAnKyd1c2UgKGNsYXNzTmFtZSwgb3B0X3BhcmVudENvbnN0cnVjdG9yKSB0byBzdWJjbGFzcycpO30KK3ZhciBjbGFzc05hbWU9Y2xhc3NOYW1lLnRvTG93ZXJDYXNlKCk7aWYob3B0X3BhcmVudENvbnN0cnVjdG9yJiYhb3B0X3BhcmVudENvbnN0cnVjdG9yLnRhZ05hbWUpCit0aHJvdyBuZXcgRXJyb3IoJ29wdF9wYXJlbnRDb25zdHJ1Y3RvciB3YXMgbm90ICcrJ2NyZWF0ZWQgYnkgdHIudWkuYi5kZWZpbmUnKTt2YXIgdGFnTmFtZT1jbGFzc05hbWU7dmFyIHRhZ05TPXVuZGVmaW5lZDtpZihvcHRfcGFyZW50Q29uc3RydWN0b3Ipe2lmKG9wdF90YWdOUykKK3Rocm93IG5ldyBFcnJvcignTXVzdCBub3Qgc3BlY2lmeSB0YWdOUyBpZiBwYXJlbnRDb25zdHJ1Y3RvciBpcyBnaXZlbicpO3ZhciBwYXJlbnQ9b3B0X3BhcmVudENvbnN0cnVjdG9yO3doaWxlKHBhcmVudCYmcGFyZW50LnRhZ05hbWUpe3RhZ05hbWU9cGFyZW50LnRhZ05hbWU7dGFnTlM9cGFyZW50LnRhZ05TO3BhcmVudD1wYXJlbnQucGFyZW50Q29uc3RydWN0b3I7fX1lbHNle3RhZ05TPW9wdF90YWdOUzt9CitmdW5jdGlvbiBmKCl7aWYob3B0X3BhcmVudENvbnN0cnVjdG9yJiZmLnByb3RvdHlwZS5fX3Byb3RvX18hPW9wdF9wYXJlbnRDb25zdHJ1Y3Rvci5wcm90b3R5cGUpe3Rocm93IG5ldyBFcnJvcihjbGFzc05hbWUrJyBwcm90b3R5ZVwncyBfX3Byb3RvX18gZmllbGQgaXMgbWVzc2VkIHVwLiAnKydJdCBNVVNUIGJlIHRoZSBwcm90b3R5cGUgb2YgJytvcHRfcGFyZW50Q29uc3RydWN0b3IudGFnTmFtZSk7fQordmFyIGVsO2lmKHRhZ05TPT09dW5kZWZpbmVkKQorZWw9dHIuZG9jLmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7ZWxzZQorZWw9dHIuZG9jLmNyZWF0ZUVsZW1lbnROUyh0YWdOUyx0YWdOYW1lKTtmLmRlY29yYXRlLmNhbGwodGhpcyxlbCxhcmd1bWVudHMpO3JldHVybiBlbDt9CitmLmRlY29yYXRlPWZ1bmN0aW9uKGVsKXtlbC5fX3Byb3RvX189Zi5wcm90b3R5cGU7ZWwuZGVjb3JhdGUuYXBwbHkoZWwsYXJndW1lbnRzWzFdKTtlbC5jb25zdHJ1Y3Rvcj1mO307Zi5jbGFzc05hbWU9Y2xhc3NOYW1lO2YudGFnTmFtZT10YWdOYW1lO2YudGFnTlM9dGFnTlM7Zi5wYXJlbnRDb25zdHJ1Y3Rvcj0ob3B0X3BhcmVudENvbnN0cnVjdG9yP29wdF9wYXJlbnRDb25zdHJ1Y3Rvcjp1bmRlZmluZWQpO2YudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZighZi5wYXJlbnRDb25zdHJ1Y3RvcikKK3JldHVybiBmLnRhZ05hbWU7cmV0dXJuIGYucGFyZW50Q29uc3RydWN0b3IudG9TdHJpbmcoKSsnOjonK2YuY2xhc3NOYW1lO307cmV0dXJuIGY7fQorZnVuY3Rpb24gZWxlbWVudElzQ2hpbGRPZihlbCxwb3RlbnRpYWxQYXJlbnQpe2lmKGVsPT1wb3RlbnRpYWxQYXJlbnQpCityZXR1cm4gZmFsc2U7dmFyIGN1cj1lbDt3aGlsZShjdXIucGFyZW50Tm9kZSl7aWYoY3VyPT1wb3RlbnRpYWxQYXJlbnQpCityZXR1cm4gdHJ1ZTtjdXI9Y3VyLnBhcmVudE5vZGU7fQorcmV0dXJuIGZhbHNlO307cmV0dXJue2RlY29yYXRlOmRlY29yYXRlLGRlZmluZTpkZWZpbmUsZWxlbWVudElzQ2hpbGRPZjplbGVtZW50SXNDaGlsZE9mfTt9KTshZnVuY3Rpb24odCxuKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPW4oKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpZGVmaW5lKG4pO2Vsc2V7dmFyIHI9bigpO2Zvcih2YXIgYSBpbiByKSgib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0czp0KVthXT1yW2FdfX0odGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGEpe2lmKHJbYV0pcmV0dXJuIHJbYV0uZXhwb3J0czt2YXIgZT1yW2FdPXtleHBvcnRzOnt9LGlkOmEsbG9hZGVkOiExfTtyZXR1cm4gdFthXS5jYWxsKGUuZXhwb3J0cyxlLGUuZXhwb3J0cyxuKSxlLmxvYWRlZD0hMCxlLmV4cG9ydHN9dmFyIHI9e307cmV0dXJuIG4ubT10LG4uYz1yLG4ucD0iIixuKDApfShbZnVuY3Rpb24odCxuLHIpe24uZ2xNYXRyaXg9cigxKSxuLm1hdDI9cigyKSxuLm1hdDJkPXIoMyksbi5tYXQzPXIoNCksbi5tYXQ0PXIoNSksbi5xdWF0PXIoNiksbi52ZWMyPXIoOSksbi52ZWMzPXIoNyksbi52ZWM0PXIoOCl9LGZ1bmN0aW9uKHQsbixyKXt2YXIgYT17fTthLkVQU0lMT049MWUtNixhLkFSUkFZX1RZUEU9InVuZGVmaW5lZCIhPXR5cGVvZiBGbG9hdDMyQXJyYXk/RmxvYXQzMkFycmF5OkFycmF5LGEuUkFORE9NPU1hdGgucmFuZG9tLGEuc2V0TWF0cml4QXJyYXlUeXBlPWZ1bmN0aW9uKHQpe0dMTUFUX0FSUkFZX1RZUEU9dH07dmFyIGU9TWF0aC5QSS8xODA7YS50b1JhZGlhbj1mdW5jdGlvbih0KXtyZXR1cm4gdCplfSx0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIoMSksZT17fTtlLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhLkFSUkFZX1RZUEUoNCk7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MSx0fSxlLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBhLkFSUkFZX1RZUEUoNCk7cmV0dXJuIG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109dFszXSxufSxlLmNvcHk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09blsxXSx0WzJdPW5bMl0sdFszXT1uWzNdLHR9LGUuaWRlbnRpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MSx0fSxlLnRyYW5zcG9zZT1mdW5jdGlvbih0LG4pe2lmKHQ9PT1uKXt2YXIgcj1uWzFdO3RbMV09blsyXSx0WzJdPXJ9ZWxzZSB0WzBdPW5bMF0sdFsxXT1uWzJdLHRbMl09blsxXSx0WzNdPW5bM107cmV0dXJuIHR9LGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdLHU9blszXSxvPXIqdS1lKmE7cmV0dXJuIG8/KG89MS9vLHRbMF09dSpvLHRbMV09LWEqbyx0WzJdPS1lKm8sdFszXT1yKm8sdCk6bnVsbH0sZS5hZGpvaW50PWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXTtyZXR1cm4gdFswXT1uWzNdLHRbMV09LW5bMV0sdFsyXT0tblsyXSx0WzNdPXIsdH0sZS5kZXRlcm1pbmFudD1mdW5jdGlvbih0KXtyZXR1cm4gdFswXSp0WzNdLXRbMl0qdFsxXX0sZS5tdWx0aXBseT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPXJbMF0sYz1yWzFdLGY9clsyXSxzPXJbM107cmV0dXJuIHRbMF09YSppK3UqYyx0WzFdPWUqaStvKmMsdFsyXT1hKmYrdSpzLHRbM109ZSpmK28qcyx0fSxlLm11bD1lLm11bHRpcGx5LGUucm90YXRlPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9TWF0aC5zaW4ociksYz1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1hKmMrdSppLHRbMV09ZSpjK28qaSx0WzJdPWEqLWkrdSpjLHRbM109ZSotaStvKmMsdH0sZS5zY2FsZT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPXJbMF0sYz1yWzFdO3JldHVybiB0WzBdPWEqaSx0WzFdPWUqaSx0WzJdPXUqYyx0WzNdPW8qYyx0fSxlLmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LG4pe3ZhciByPU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIHRbMF09YSx0WzFdPXIsdFsyXT0tcix0WzNdPWEsdH0sZS5mcm9tU2NhbGluZz1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT0wLHRbMl09MCx0WzNdPW5bMV0sdH0sZS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuIm1hdDIoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIpIn0sZS5mcm9iPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codFswXSwyKStNYXRoLnBvdyh0WzFdLDIpK01hdGgucG93KHRbMl0sMikrTWF0aC5wb3codFszXSwyKSl9LGUuTERVPWZ1bmN0aW9uKHQsbixyLGEpe3JldHVybiB0WzJdPWFbMl0vYVswXSxyWzBdPWFbMF0sclsxXT1hWzFdLHJbM109YVszXS10WzJdKnJbMV0sW3QsbixyXX0sdC5leHBvcnRzPWV9LGZ1bmN0aW9uKHQsbixyKXt2YXIgYT1yKDEpLGU9e307ZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYS5BUlJBWV9UWVBFKDYpO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTEsdFs0XT0wLHRbNV09MCx0fSxlLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBhLkFSUkFZX1RZUEUoNik7cmV0dXJuIG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109dFszXSxuWzRdPXRbNF0sbls1XT10WzVdLG59LGUuY29weT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT1uWzFdLHRbMl09blsyXSx0WzNdPW5bM10sdFs0XT1uWzRdLHRbNV09bls1XSx0fSxlLmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTEsdFs0XT0wLHRbNV09MCx0fSxlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1uWzRdLGk9bls1XSxjPXIqdS1hKmU7cmV0dXJuIGM/KGM9MS9jLHRbMF09dSpjLHRbMV09LWEqYyx0WzJdPS1lKmMsdFszXT1yKmMsdFs0XT0oZSppLXUqbykqYyx0WzVdPShhKm8tcippKSpjLHQpOm51bGx9LGUuZGV0ZXJtaW5hbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0qdFszXS10WzFdKnRbMl19LGUubXVsdGlwbHk9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1uWzRdLGM9bls1XSxmPXJbMF0scz1yWzFdLGg9clsyXSxNPXJbM10sbD1yWzRdLHY9cls1XTtyZXR1cm4gdFswXT1hKmYrdSpzLHRbMV09ZSpmK28qcyx0WzJdPWEqaCt1Kk0sdFszXT1lKmgrbypNLHRbNF09YSpsK3UqditpLHRbNV09ZSpsK28qditjLHR9LGUubXVsPWUubXVsdGlwbHksZS5yb3RhdGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1uWzRdLGM9bls1XSxmPU1hdGguc2luKHIpLHM9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09YSpzK3UqZix0WzFdPWUqcytvKmYsdFsyXT1hKi1mK3Uqcyx0WzNdPWUqLWYrbypzLHRbNF09aSx0WzVdPWMsdH0sZS5zY2FsZT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9clswXSxzPXJbMV07cmV0dXJuIHRbMF09YSpmLHRbMV09ZSpmLHRbMl09dSpzLHRbM109bypzLHRbNF09aSx0WzVdPWMsdH0sZS50cmFuc2xhdGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1uWzRdLGM9bls1XSxmPXJbMF0scz1yWzFdO3JldHVybiB0WzBdPWEsdFsxXT1lLHRbMl09dSx0WzNdPW8sdFs0XT1hKmYrdSpzK2ksdFs1XT1lKmYrbypzK2MsdH0sZS5mcm9tUm90YXRpb249ZnVuY3Rpb24odCxuKXt2YXIgcj1NYXRoLnNpbihuKSxhPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWEsdFsxXT1yLHRbMl09LXIsdFszXT1hLHRbNF09MCx0WzVdPTAsdH0sZS5mcm9tU2NhbGluZz1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT0wLHRbMl09MCx0WzNdPW5bMV0sdFs0XT0wLHRbNV09MCx0fSxlLmZyb21UcmFuc2xhdGlvbj1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTEsdFs0XT1uWzBdLHRbNV09blsxXSx0fSxlLnN0cj1mdW5jdGlvbih0KXtyZXR1cm4ibWF0MmQoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIsICIrdFs0XSsiLCAiK3RbNV0rIikifSxlLmZyb2I9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0WzBdLDIpK01hdGgucG93KHRbMV0sMikrTWF0aC5wb3codFsyXSwyKStNYXRoLnBvdyh0WzNdLDIpK01hdGgucG93KHRbNF0sMikrTWF0aC5wb3codFs1XSwyKSsxKX0sdC5leHBvcnRzPWV9LGZ1bmN0aW9uKHQsbixyKXt2YXIgYT1yKDEpLGU9e307ZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYS5BUlJBWV9UWVBFKDkpO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0xLHRbNV09MCx0WzZdPTAsdFs3XT0wLHRbOF09MSx0fSxlLmZyb21NYXQ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPW5bMV0sdFsyXT1uWzJdLHRbM109bls0XSx0WzRdPW5bNV0sdFs1XT1uWzZdLHRbNl09bls4XSx0WzddPW5bOV0sdFs4XT1uWzEwXSx0fSxlLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBhLkFSUkFZX1RZUEUoOSk7cmV0dXJuIG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109dFszXSxuWzRdPXRbNF0sbls1XT10WzVdLG5bNl09dFs2XSxuWzddPXRbN10sbls4XT10WzhdLG59LGUuY29weT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT1uWzFdLHRbMl09blsyXSx0WzNdPW5bM10sdFs0XT1uWzRdLHRbNV09bls1XSx0WzZdPW5bNl0sdFs3XT1uWzddLHRbOF09bls4XSx0fSxlLmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0xLHRbNV09MCx0WzZdPTAsdFs3XT0wLHRbOF09MSx0fSxlLnRyYW5zcG9zZT1mdW5jdGlvbih0LG4pe2lmKHQ9PT1uKXt2YXIgcj1uWzFdLGE9blsyXSxlPW5bNV07dFsxXT1uWzNdLHRbMl09bls2XSx0WzNdPXIsdFs1XT1uWzddLHRbNl09YSx0WzddPWV9ZWxzZSB0WzBdPW5bMF0sdFsxXT1uWzNdLHRbMl09bls2XSx0WzNdPW5bMV0sdFs0XT1uWzRdLHRbNV09bls3XSx0WzZdPW5bMl0sdFs3XT1uWzVdLHRbOF09bls4XTtyZXR1cm4gdH0sZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89bls0XSxpPW5bNV0sYz1uWzZdLGY9bls3XSxzPW5bOF0saD1zKm8taSpmLE09LXMqdStpKmMsbD1mKnUtbypjLHY9cipoK2EqTStlKmw7cmV0dXJuIHY/KHY9MS92LHRbMF09aCp2LHRbMV09KC1zKmErZSpmKSp2LHRbMl09KGkqYS1lKm8pKnYsdFszXT1NKnYsdFs0XT0ocypyLWUqYykqdix0WzVdPSgtaSpyK2UqdSkqdix0WzZdPWwqdix0WzddPSgtZipyK2EqYykqdix0WzhdPShvKnItYSp1KSp2LHQpOm51bGx9LGUuYWRqb2ludD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1uWzRdLGk9bls1XSxjPW5bNl0sZj1uWzddLHM9bls4XTtyZXR1cm4gdFswXT1vKnMtaSpmLHRbMV09ZSpmLWEqcyx0WzJdPWEqaS1lKm8sdFszXT1pKmMtdSpzLHRbNF09cipzLWUqYyx0WzVdPWUqdS1yKmksdFs2XT11KmYtbypjLHRbN109YSpjLXIqZix0WzhdPXIqby1hKnUsdH0sZS5kZXRlcm1pbmFudD1mdW5jdGlvbih0KXt2YXIgbj10WzBdLHI9dFsxXSxhPXRbMl0sZT10WzNdLHU9dFs0XSxvPXRbNV0saT10WzZdLGM9dFs3XSxmPXRbOF07cmV0dXJuIG4qKGYqdS1vKmMpK3IqKC1mKmUrbyppKSthKihjKmUtdSppKX0sZS5tdWx0aXBseT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9bls2XSxzPW5bN10saD1uWzhdLE09clswXSxsPXJbMV0sdj1yWzJdLG09clszXSxwPXJbNF0sZD1yWzVdLEE9cls2XSxSPXJbN10sdz1yWzhdO3JldHVybiB0WzBdPU0qYStsKm8rdipmLHRbMV09TSplK2wqaSt2KnMsdFsyXT1NKnUrbCpjK3YqaCx0WzNdPW0qYStwKm8rZCpmLHRbNF09bSplK3AqaStkKnMsdFs1XT1tKnUrcCpjK2QqaCx0WzZdPUEqYStSKm8rdypmLHRbN109QSplK1IqaSt3KnMsdFs4XT1BKnUrUipjK3cqaCx0fSxlLm11bD1lLm11bHRpcGx5LGUudHJhbnNsYXRlPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9bls0XSxjPW5bNV0sZj1uWzZdLHM9bls3XSxoPW5bOF0sTT1yWzBdLGw9clsxXTtyZXR1cm4gdFswXT1hLHRbMV09ZSx0WzJdPXUsdFszXT1vLHRbNF09aSx0WzVdPWMsdFs2XT1NKmErbCpvK2YsdFs3XT1NKmUrbCppK3MsdFs4XT1NKnUrbCpjK2gsdH0sZS5yb3RhdGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1uWzRdLGM9bls1XSxmPW5bNl0scz1uWzddLGg9bls4XSxNPU1hdGguc2luKHIpLGw9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09bCphK00qbyx0WzFdPWwqZStNKmksdFsyXT1sKnUrTSpjLHRbM109bCpvLU0qYSx0WzRdPWwqaS1NKmUsdFs1XT1sKmMtTSp1LHRbNl09Zix0WzddPXMsdFs4XT1oLHR9LGUuc2NhbGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPXJbMF0sZT1yWzFdO3JldHVybiB0WzBdPWEqblswXSx0WzFdPWEqblsxXSx0WzJdPWEqblsyXSx0WzNdPWUqblszXSx0WzRdPWUqbls0XSx0WzVdPWUqbls1XSx0WzZdPW5bNl0sdFs3XT1uWzddLHRbOF09bls4XSx0fSxlLmZyb21UcmFuc2xhdGlvbj1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0xLHRbNV09MCx0WzZdPW5bMF0sdFs3XT1uWzFdLHRbOF09MSx0fSxlLmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LG4pe3ZhciByPU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIHRbMF09YSx0WzFdPXIsdFsyXT0wLHRbM109LXIsdFs0XT1hLHRbNV09MCx0WzZdPTAsdFs3XT0wLHRbOF09MSx0fSxlLmZyb21TY2FsaW5nPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPW5bMV0sdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9LGUuZnJvbU1hdDJkPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPW5bMV0sdFsyXT0wLHRbM109blsyXSx0WzRdPW5bM10sdFs1XT0wLHRbNl09bls0XSx0WzddPW5bNV0sdFs4XT0xLHR9LGUuZnJvbVF1YXQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89cityLGk9YSthLGM9ZStlLGY9cipvLHM9YSpvLGg9YSppLE09ZSpvLGw9ZSppLHY9ZSpjLG09dSpvLHA9dSppLGQ9dSpjO3JldHVybiB0WzBdPTEtaC12LHRbM109cy1kLHRbNl09TStwLHRbMV09cytkLHRbNF09MS1mLXYsdFs3XT1sLW0sdFsyXT1NLXAsdFs1XT1sK20sdFs4XT0xLWYtaCx0fSxlLm5vcm1hbEZyb21NYXQ0PWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdLHU9blszXSxvPW5bNF0saT1uWzVdLGM9bls2XSxmPW5bN10scz1uWzhdLGg9bls5XSxNPW5bMTBdLGw9blsxMV0sdj1uWzEyXSxtPW5bMTNdLHA9blsxNF0sZD1uWzE1XSxBPXIqaS1hKm8sUj1yKmMtZSpvLHc9cipmLXUqbyxxPWEqYy1lKmksWT1hKmYtdSppLGc9ZSpmLXUqYyx5PXMqbS1oKnYseD1zKnAtTSp2LFA9cypkLWwqdixFPWgqcC1NKm0sVD1oKmQtbCptLGI9TSpkLWwqcCxEPUEqYi1SKlQrdypFK3EqUC1ZKngrZyp5O3JldHVybiBEPyhEPTEvRCx0WzBdPShpKmItYypUK2YqRSkqRCx0WzFdPShjKlAtbypiLWYqeCkqRCx0WzJdPShvKlQtaSpQK2YqeSkqRCx0WzNdPShlKlQtYSpiLXUqRSkqRCx0WzRdPShyKmItZSpQK3UqeCkqRCx0WzVdPShhKlAtcipULXUqeSkqRCx0WzZdPShtKmctcCpZK2QqcSkqRCx0WzddPShwKnctdipnLWQqUikqRCx0WzhdPSh2KlktbSp3K2QqQSkqRCx0KTpudWxsfSxlLnN0cj1mdW5jdGlvbih0KXtyZXR1cm4ibWF0MygiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIiwgIit0WzRdKyIsICIrdFs1XSsiLCAiK3RbNl0rIiwgIit0WzddKyIsICIrdFs4XSsiKSJ9LGUuZnJvYj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHRbMF0sMikrTWF0aC5wb3codFsxXSwyKStNYXRoLnBvdyh0WzJdLDIpK01hdGgucG93KHRbM10sMikrTWF0aC5wb3codFs0XSwyKStNYXRoLnBvdyh0WzVdLDIpK01hdGgucG93KHRbNl0sMikrTWF0aC5wb3codFs3XSwyKStNYXRoLnBvdyh0WzhdLDIpKX0sdC5leHBvcnRzPWV9LGZ1bmN0aW9uKHQsbixyKXt2YXIgYT1yKDEpLGU9e307ZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYS5BUlJBWV9UWVBFKDE2KTtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LGUuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIG49bmV3IGEuQVJSQVlfVFlQRSgxNik7cmV0dXJuIG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109dFszXSxuWzRdPXRbNF0sbls1XT10WzVdLG5bNl09dFs2XSxuWzddPXRbN10sbls4XT10WzhdLG5bOV09dFs5XSxuWzEwXT10WzEwXSxuWzExXT10WzExXSxuWzEyXT10WzEyXSxuWzEzXT10WzEzXSxuWzE0XT10WzE0XSxuWzE1XT10WzE1XSxufSxlLmNvcHk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09blsxXSx0WzJdPW5bMl0sdFszXT1uWzNdLHRbNF09bls0XSx0WzVdPW5bNV0sdFs2XT1uWzZdLHRbN109bls3XSx0WzhdPW5bOF0sdFs5XT1uWzldLHRbMTBdPW5bMTBdLHRbMTFdPW5bMTFdLHRbMTJdPW5bMTJdLHRbMTNdPW5bMTNdLHRbMTRdPW5bMTRdLHRbMTVdPW5bMTVdLHR9LGUuaWRlbnRpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0xLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0xLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fSxlLnRyYW5zcG9zZT1mdW5jdGlvbih0LG4pe2lmKHQ9PT1uKXt2YXIgcj1uWzFdLGE9blsyXSxlPW5bM10sdT1uWzZdLG89bls3XSxpPW5bMTFdO3RbMV09bls0XSx0WzJdPW5bOF0sdFszXT1uWzEyXSx0WzRdPXIsdFs2XT1uWzldLHRbN109blsxM10sdFs4XT1hLHRbOV09dSx0WzExXT1uWzE0XSx0WzEyXT1lLHRbMTNdPW8sdFsxNF09aX1lbHNlIHRbMF09blswXSx0WzFdPW5bNF0sdFsyXT1uWzhdLHRbM109blsxMl0sdFs0XT1uWzFdLHRbNV09bls1XSx0WzZdPW5bOV0sdFs3XT1uWzEzXSx0WzhdPW5bMl0sdFs5XT1uWzZdLHRbMTBdPW5bMTBdLHRbMTFdPW5bMTRdLHRbMTJdPW5bM10sdFsxM109bls3XSx0WzE0XT1uWzExXSx0WzE1XT1uWzE1XTtyZXR1cm4gdH0sZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89bls0XSxpPW5bNV0sYz1uWzZdLGY9bls3XSxzPW5bOF0saD1uWzldLE09blsxMF0sbD1uWzExXSx2PW5bMTJdLG09blsxM10scD1uWzE0XSxkPW5bMTVdLEE9cippLWEqbyxSPXIqYy1lKm8sdz1yKmYtdSpvLHE9YSpjLWUqaSxZPWEqZi11KmksZz1lKmYtdSpjLHk9cyptLWgqdix4PXMqcC1NKnYsUD1zKmQtbCp2LEU9aCpwLU0qbSxUPWgqZC1sKm0sYj1NKmQtbCpwLEQ9QSpiLVIqVCt3KkUrcSpQLVkqeCtnKnk7cmV0dXJuIEQ/KEQ9MS9ELHRbMF09KGkqYi1jKlQrZipFKSpELHRbMV09KGUqVC1hKmItdSpFKSpELHRbMl09KG0qZy1wKlkrZCpxKSpELHRbM109KE0qWS1oKmctbCpxKSpELHRbNF09KGMqUC1vKmItZip4KSpELHRbNV09KHIqYi1lKlArdSp4KSpELHRbNl09KHAqdy12KmctZCpSKSpELHRbN109KHMqZy1NKncrbCpSKSpELHRbOF09KG8qVC1pKlArZip5KSpELHRbOV09KGEqUC1yKlQtdSp5KSpELHRbMTBdPSh2KlktbSp3K2QqQSkqRCx0WzExXT0oaCp3LXMqWS1sKkEpKkQsdFsxMl09KGkqeC1vKkUtYyp5KSpELHRbMTNdPShyKkUtYSp4K2UqeSkqRCx0WzE0XT0obSpSLXYqcS1wKkEpKkQsdFsxNV09KHMqcS1oKlIrTSpBKSpELHQpOm51bGx9LGUuYWRqb2ludD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1uWzRdLGk9bls1XSxjPW5bNl0sZj1uWzddLHM9bls4XSxoPW5bOV0sTT1uWzEwXSxsPW5bMTFdLHY9blsxMl0sbT1uWzEzXSxwPW5bMTRdLGQ9blsxNV07cmV0dXJuIHRbMF09aSooTSpkLWwqcCktaCooYypkLWYqcCkrbSooYypsLWYqTSksdFsxXT0tKGEqKE0qZC1sKnApLWgqKGUqZC11KnApK20qKGUqbC11Kk0pKSx0WzJdPWEqKGMqZC1mKnApLWkqKGUqZC11KnApK20qKGUqZi11KmMpLHRbM109LShhKihjKmwtZipNKS1pKihlKmwtdSpNKStoKihlKmYtdSpjKSksdFs0XT0tKG8qKE0qZC1sKnApLXMqKGMqZC1mKnApK3YqKGMqbC1mKk0pKSx0WzVdPXIqKE0qZC1sKnApLXMqKGUqZC11KnApK3YqKGUqbC11Kk0pLHRbNl09LShyKihjKmQtZipwKS1vKihlKmQtdSpwKSt2KihlKmYtdSpjKSksdFs3XT1yKihjKmwtZipNKS1vKihlKmwtdSpNKStzKihlKmYtdSpjKSx0WzhdPW8qKGgqZC1sKm0pLXMqKGkqZC1mKm0pK3YqKGkqbC1mKmgpLHRbOV09LShyKihoKmQtbCptKS1zKihhKmQtdSptKSt2KihhKmwtdSpoKSksdFsxMF09ciooaSpkLWYqbSktbyooYSpkLXUqbSkrdiooYSpmLXUqaSksdFsxMV09LShyKihpKmwtZipoKS1vKihhKmwtdSpoKStzKihhKmYtdSppKSksdFsxMl09LShvKihoKnAtTSptKS1zKihpKnAtYyptKSt2KihpKk0tYypoKSksdFsxM109ciooaCpwLU0qbSktcyooYSpwLWUqbSkrdiooYSpNLWUqaCksdFsxNF09LShyKihpKnAtYyptKS1vKihhKnAtZSptKSt2KihhKmMtZSppKSksdFsxNV09ciooaSpNLWMqaCktbyooYSpNLWUqaCkrcyooYSpjLWUqaSksdH0sZS5kZXRlcm1pbmFudD1mdW5jdGlvbih0KXt2YXIgbj10WzBdLHI9dFsxXSxhPXRbMl0sZT10WzNdLHU9dFs0XSxvPXRbNV0saT10WzZdLGM9dFs3XSxmPXRbOF0scz10WzldLGg9dFsxMF0sTT10WzExXSxsPXRbMTJdLHY9dFsxM10sbT10WzE0XSxwPXRbMTVdLGQ9bipvLXIqdSxBPW4qaS1hKnUsUj1uKmMtZSp1LHc9cippLWEqbyxxPXIqYy1lKm8sWT1hKmMtZSppLGc9Zip2LXMqbCx5PWYqbS1oKmwseD1mKnAtTSpsLFA9cyptLWgqdixFPXMqcC1NKnYsVD1oKnAtTSptO3JldHVybiBkKlQtQSpFK1IqUCt3KngtcSp5K1kqZ30sZS5tdWx0aXBseT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9bls2XSxzPW5bN10saD1uWzhdLE09bls5XSxsPW5bMTBdLHY9blsxMV0sbT1uWzEyXSxwPW5bMTNdLGQ9blsxNF0sQT1uWzE1XSxSPXJbMF0sdz1yWzFdLHE9clsyXSxZPXJbM107cmV0dXJuIHRbMF09UiphK3cqaStxKmgrWSptLHRbMV09UiplK3cqYytxKk0rWSpwLHRbMl09Uip1K3cqZitxKmwrWSpkLHRbM109UipvK3cqcytxKnYrWSpBLFI9cls0XSx3PXJbNV0scT1yWzZdLFk9cls3XSx0WzRdPVIqYSt3KmkrcSpoK1kqbSx0WzVdPVIqZSt3KmMrcSpNK1kqcCx0WzZdPVIqdSt3KmYrcSpsK1kqZCx0WzddPVIqbyt3KnMrcSp2K1kqQSxSPXJbOF0sdz1yWzldLHE9clsxMF0sWT1yWzExXSx0WzhdPVIqYSt3KmkrcSpoK1kqbSx0WzldPVIqZSt3KmMrcSpNK1kqcCx0WzEwXT1SKnUrdypmK3EqbCtZKmQsdFsxMV09UipvK3cqcytxKnYrWSpBLFI9clsxMl0sdz1yWzEzXSxxPXJbMTRdLFk9clsxNV0sdFsxMl09UiphK3cqaStxKmgrWSptLHRbMTNdPVIqZSt3KmMrcSpNK1kqcCx0WzE0XT1SKnUrdypmK3EqbCtZKmQsdFsxNV09UipvK3cqcytxKnYrWSpBLHR9LGUubXVsPWUubXVsdGlwbHksZS50cmFuc2xhdGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhLGUsdSxvLGksYyxmLHMsaCxNLGwsdixtPXJbMF0scD1yWzFdLGQ9clsyXTtyZXR1cm4gbj09PXQ/KHRbMTJdPW5bMF0qbStuWzRdKnArbls4XSpkK25bMTJdLHRbMTNdPW5bMV0qbStuWzVdKnArbls5XSpkK25bMTNdLHRbMTRdPW5bMl0qbStuWzZdKnArblsxMF0qZCtuWzE0XSx0WzE1XT1uWzNdKm0rbls3XSpwK25bMTFdKmQrblsxNV0pOihhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1uWzRdLGM9bls1XSxmPW5bNl0scz1uWzddLGg9bls4XSxNPW5bOV0sbD1uWzEwXSx2PW5bMTFdLHRbMF09YSx0WzFdPWUsdFsyXT11LHRbM109byx0WzRdPWksdFs1XT1jLHRbNl09Zix0WzddPXMsdFs4XT1oLHRbOV09TSx0WzEwXT1sLHRbMTFdPXYsdFsxMl09YSptK2kqcCtoKmQrblsxMl0sdFsxM109ZSptK2MqcCtNKmQrblsxM10sdFsxNF09dSptK2YqcCtsKmQrblsxNF0sdFsxNV09byptK3MqcCt2KmQrblsxNV0pLHR9LGUuc2NhbGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPXJbMF0sZT1yWzFdLHU9clsyXTtyZXR1cm4gdFswXT1uWzBdKmEsdFsxXT1uWzFdKmEsdFsyXT1uWzJdKmEsdFszXT1uWzNdKmEsdFs0XT1uWzRdKmUsdFs1XT1uWzVdKmUsdFs2XT1uWzZdKmUsdFs3XT1uWzddKmUsdFs4XT1uWzhdKnUsdFs5XT1uWzldKnUsdFsxMF09blsxMF0qdSx0WzExXT1uWzExXSp1LHRbMTJdPW5bMTJdLHRbMTNdPW5bMTNdLHRbMTRdPW5bMTRdLHRbMTVdPW5bMTVdLHR9LGUucm90YXRlPWZ1bmN0aW9uKHQsbixyLGUpe3ZhciB1LG8saSxjLGYscyxoLE0sbCx2LG0scCxkLEEsUix3LHEsWSxnLHkseCxQLEUsVCxiPWVbMF0sRD1lWzFdLEw9ZVsyXSxfPU1hdGguc3FydChiKmIrRCpEK0wqTCk7cmV0dXJuIE1hdGguYWJzKF8pPGEuRVBTSUxPTj9udWxsOihfPTEvXyxiKj1fLEQqPV8sTCo9Xyx1PU1hdGguc2luKHIpLG89TWF0aC5jb3MociksaT0xLW8sYz1uWzBdLGY9blsxXSxzPW5bMl0saD1uWzNdLE09bls0XSxsPW5bNV0sdj1uWzZdLG09bls3XSxwPW5bOF0sZD1uWzldLEE9blsxMF0sUj1uWzExXSx3PWIqYippK28scT1EKmIqaStMKnUsWT1MKmIqaS1EKnUsZz1iKkQqaS1MKnUseT1EKkQqaStvLHg9TCpEKmkrYip1LFA9YipMKmkrRCp1LEU9RCpMKmktYip1LFQ9TCpMKmkrbyx0WzBdPWMqdytNKnErcCpZLHRbMV09Zip3K2wqcStkKlksdFsyXT1zKncrdipxK0EqWSx0WzNdPWgqdyttKnErUipZLHRbNF09YypnK00qeStwKngsdFs1XT1mKmcrbCp5K2QqeCx0WzZdPXMqZyt2KnkrQSp4LHRbN109aCpnK20qeStSKngsdFs4XT1jKlArTSpFK3AqVCx0WzldPWYqUCtsKkUrZCpULHRbMTBdPXMqUCt2KkUrQSpULHRbMTFdPWgqUCttKkUrUipULG4hPT10JiYodFsxMl09blsxMl0sdFsxM109blsxM10sdFsxNF09blsxNF0sdFsxNV09blsxNV0pLHQpfSxlLnJvdGF0ZVg9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPU1hdGguc2luKHIpLGU9TWF0aC5jb3MociksdT1uWzRdLG89bls1XSxpPW5bNl0sYz1uWzddLGY9bls4XSxzPW5bOV0saD1uWzEwXSxNPW5bMTFdO3JldHVybiBuIT09dCYmKHRbMF09blswXSx0WzFdPW5bMV0sdFsyXT1uWzJdLHRbM109blszXSx0WzEyXT1uWzEyXSx0WzEzXT1uWzEzXSx0WzE0XT1uWzE0XSx0WzE1XT1uWzE1XSksdFs0XT11KmUrZiphLHRbNV09byplK3MqYSx0WzZdPWkqZStoKmEsdFs3XT1jKmUrTSphLHRbOF09ZiplLXUqYSx0WzldPXMqZS1vKmEsdFsxMF09aCplLWkqYSx0WzExXT1NKmUtYyphLHR9LGUucm90YXRlWT1mdW5jdGlvbih0LG4scil7dmFyIGE9TWF0aC5zaW4ociksZT1NYXRoLmNvcyhyKSx1PW5bMF0sbz1uWzFdLGk9blsyXSxjPW5bM10sZj1uWzhdLHM9bls5XSxoPW5bMTBdLE09blsxMV07cmV0dXJuIG4hPT10JiYodFs0XT1uWzRdLHRbNV09bls1XSx0WzZdPW5bNl0sdFs3XT1uWzddLHRbMTJdPW5bMTJdLHRbMTNdPW5bMTNdLHRbMTRdPW5bMTRdLHRbMTVdPW5bMTVdKSx0WzBdPXUqZS1mKmEsdFsxXT1vKmUtcyphLHRbMl09aSplLWgqYSx0WzNdPWMqZS1NKmEsdFs4XT11KmErZiplLHRbOV09byphK3MqZSx0WzEwXT1pKmEraCplLHRbMTFdPWMqYStNKmUsdH0sZS5yb3RhdGVaPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1NYXRoLnNpbihyKSxlPU1hdGguY29zKHIpLHU9blswXSxvPW5bMV0saT1uWzJdLGM9blszXSxmPW5bNF0scz1uWzVdLGg9bls2XSxNPW5bN107cmV0dXJuIG4hPT10JiYodFs4XT1uWzhdLHRbOV09bls5XSx0WzEwXT1uWzEwXSx0WzExXT1uWzExXSx0WzEyXT1uWzEyXSx0WzEzXT1uWzEzXSx0WzE0XT1uWzE0XSx0WzE1XT1uWzE1XSksdFswXT11KmUrZiphLHRbMV09byplK3MqYSx0WzJdPWkqZStoKmEsdFszXT1jKmUrTSphLHRbNF09ZiplLXUqYSx0WzVdPXMqZS1vKmEsdFs2XT1oKmUtaSphLHRbN109TSplLWMqYSx0fSxlLmZyb21UcmFuc2xhdGlvbj1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPW5bMF0sdFsxM109blsxXSx0WzE0XT1uWzJdLHRbMTVdPTEsdH0sZS5mcm9tU2NhbGluZz1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09blsxXSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09blsyXSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0sZS5mcm9tUm90YXRpb249ZnVuY3Rpb24odCxuLHIpe3ZhciBlLHUsbyxpPXJbMF0sYz1yWzFdLGY9clsyXSxzPU1hdGguc3FydChpKmkrYypjK2YqZik7cmV0dXJuIE1hdGguYWJzKHMpPGEuRVBTSUxPTj9udWxsOihzPTEvcyxpKj1zLGMqPXMsZio9cyxlPU1hdGguc2luKG4pLHU9TWF0aC5jb3Mobiksbz0xLXUsdFswXT1pKmkqbyt1LHRbMV09YyppKm8rZiplLHRbMl09ZippKm8tYyplLHRbM109MCx0WzRdPWkqYypvLWYqZSx0WzVdPWMqYypvK3UsdFs2XT1mKmMqbytpKmUsdFs3XT0wLHRbOF09aSpmKm8rYyplLHRbOV09YypmKm8taSplLHRbMTBdPWYqZipvK3UsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHQpfSxlLmZyb21YUm90YXRpb249ZnVuY3Rpb24odCxuKXt2YXIgcj1NYXRoLnNpbihuKSxhPU1hdGguY29zKG4pO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09YSx0WzZdPXIsdFs3XT0wLHRbOF09MCx0WzldPS1yLHRbMTBdPWEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LGUuZnJvbVlSb3RhdGlvbj1mdW5jdGlvbih0LG4pe3ZhciByPU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIHRbMF09YSx0WzFdPTAsdFsyXT0tcix0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09cix0WzldPTAsdFsxMF09YSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0sZS5mcm9tWlJvdGF0aW9uPWZ1bmN0aW9uKHQsbil7dmFyIHI9TWF0aC5zaW4obiksYT1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1hLHRbMV09cix0WzJdPTAsdFszXT0wLHRbNF09LXIsdFs1XT1hLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0xLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fSxlLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9YSthLGM9ZStlLGY9dSt1LHM9YSppLGg9YSpjLE09YSpmLGw9ZSpjLHY9ZSpmLG09dSpmLHA9byppLGQ9bypjLEE9bypmO3JldHVybiB0WzBdPTEtKGwrbSksdFsxXT1oK0EsdFsyXT1NLWQsdFszXT0wLHRbNF09aC1BLHRbNV09MS0ocyttKSx0WzZdPXYrcCx0WzddPTAsdFs4XT1NK2QsdFs5XT12LXAsdFsxMF09MS0ocytsKSx0WzExXT0wLHRbMTJdPXJbMF0sdFsxM109clsxXSx0WzE0XT1yWzJdLHRbMTVdPTEsdH0sZS5mcm9tUm90YXRpb25UcmFuc2xhdGlvblNjYWxlPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBlPW5bMF0sdT1uWzFdLG89blsyXSxpPW5bM10sYz1lK2UsZj11K3Uscz1vK28saD1lKmMsTT1lKmYsbD1lKnMsdj11KmYsbT11KnMscD1vKnMsZD1pKmMsQT1pKmYsUj1pKnMsdz1hWzBdLHE9YVsxXSxZPWFbMl07cmV0dXJuIHRbMF09KDEtKHYrcCkpKncsdFsxXT0oTStSKSp3LHRbMl09KGwtQSkqdyx0WzNdPTAsdFs0XT0oTS1SKSpxLHRbNV09KDEtKGgrcCkpKnEsdFs2XT0obStkKSpxLHRbN109MCx0WzhdPShsK0EpKlksdFs5XT0obS1kKSpZLHRbMTBdPSgxLShoK3YpKSpZLHRbMTFdPTAsdFsxMl09clswXSx0WzEzXT1yWzFdLHRbMTRdPXJbMl0sdFsxNV09MSx0fSxlLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uU2NhbGVPcmlnaW49ZnVuY3Rpb24odCxuLHIsYSxlKXt2YXIgdT1uWzBdLG89blsxXSxpPW5bMl0sYz1uWzNdLGY9dSt1LHM9bytvLGg9aStpLE09dSpmLGw9dSpzLHY9dSpoLG09bypzLHA9bypoLGQ9aSpoLEE9YypmLFI9YypzLHc9YypoLHE9YVswXSxZPWFbMV0sZz1hWzJdLHk9ZVswXSx4PWVbMV0sUD1lWzJdO3JldHVybiB0WzBdPSgxLShtK2QpKSpxLHRbMV09KGwrdykqcSx0WzJdPSh2LVIpKnEsdFszXT0wLHRbNF09KGwtdykqWSx0WzVdPSgxLShNK2QpKSpZLHRbNl09KHArQSkqWSx0WzddPTAsdFs4XT0oditSKSpnLHRbOV09KHAtQSkqZyx0WzEwXT0oMS0oTSttKSkqZyx0WzExXT0wLHRbMTJdPXJbMF0reS0odFswXSp5K3RbNF0qeCt0WzhdKlApLHRbMTNdPXJbMV0reC0odFsxXSp5K3RbNV0qeCt0WzldKlApLHRbMTRdPXJbMl0rUC0odFsyXSp5K3RbNl0qeCt0WzEwXSpQKSx0WzE1XT0xLHR9LGUuZnJvbVF1YXQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89cityLGk9YSthLGM9ZStlLGY9cipvLHM9YSpvLGg9YSppLE09ZSpvLGw9ZSppLHY9ZSpjLG09dSpvLHA9dSppLGQ9dSpjO3JldHVybiB0WzBdPTEtaC12LHRbMV09cytkLHRbMl09TS1wLHRbM109MCx0WzRdPXMtZCx0WzVdPTEtZi12LHRbNl09bCttLHRbN109MCx0WzhdPU0rcCx0WzldPWwtbSx0WzEwXT0xLWYtaCx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0sZS5mcnVzdHVtPWZ1bmN0aW9uKHQsbixyLGEsZSx1LG8pe3ZhciBpPTEvKHItbiksYz0xLyhlLWEpLGY9MS8odS1vKTtyZXR1cm4gdFswXT0yKnUqaSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0yKnUqYyx0WzZdPTAsdFs3XT0wLHRbOF09KHIrbikqaSx0WzldPShlK2EpKmMsdFsxMF09KG8rdSkqZix0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNF09byp1KjIqZix0WzE1XT0wLHR9LGUucGVyc3BlY3RpdmU9ZnVuY3Rpb24odCxuLHIsYSxlKXt2YXIgdT0xL01hdGgudGFuKG4vMiksbz0xLyhhLWUpO3JldHVybiB0WzBdPXUvcix0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT11LHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0oZSthKSpvLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT0yKmUqYSpvLHRbMTVdPTAsdH0sZS5wZXJzcGVjdGl2ZUZyb21GaWVsZE9mVmlldz1mdW5jdGlvbih0LG4scixhKXt2YXIgZT1NYXRoLnRhbihuLnVwRGVncmVlcypNYXRoLlBJLzE4MCksdT1NYXRoLnRhbihuLmRvd25EZWdyZWVzKk1hdGguUEkvMTgwKSxvPU1hdGgudGFuKG4ubGVmdERlZ3JlZXMqTWF0aC5QSS8xODApLGk9TWF0aC50YW4obi5yaWdodERlZ3JlZXMqTWF0aC5QSS8xODApLGM9Mi8obytpKSxmPTIvKGUrdSk7cmV0dXJuIHRbMF09Yyx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1mLHRbNl09MCx0WzddPTAsdFs4XT0tKChvLWkpKmMqLjUpLHRbOV09KGUtdSkqZiouNSx0WzEwXT1hLyhyLWEpLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT1hKnIvKHItYSksdFsxNV09MCx0fSxlLm9ydGhvPWZ1bmN0aW9uKHQsbixyLGEsZSx1LG8pe3ZhciBpPTEvKG4tciksYz0xLyhhLWUpLGY9MS8odS1vKTtyZXR1cm4gdFswXT0tMippLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPS0yKmMsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTIqZix0WzExXT0wLHRbMTJdPShuK3IpKmksdFsxM109KGUrYSkqYyx0WzE0XT0obyt1KSpmLHRbMTVdPTEsdH0sZS5sb29rQXQ9ZnVuY3Rpb24odCxuLHIsdSl7dmFyIG8saSxjLGYscyxoLE0sbCx2LG0scD1uWzBdLGQ9blsxXSxBPW5bMl0sUj11WzBdLHc9dVsxXSxxPXVbMl0sWT1yWzBdLGc9clsxXSx5PXJbMl07cmV0dXJuIE1hdGguYWJzKHAtWSk8YS5FUFNJTE9OJiZNYXRoLmFicyhkLWcpPGEuRVBTSUxPTiYmTWF0aC5hYnMoQS15KTxhLkVQU0lMT04/ZS5pZGVudGl0eSh0KTooTT1wLVksbD1kLWcsdj1BLXksbT0xL01hdGguc3FydChNKk0rbCpsK3YqdiksTSo9bSxsKj1tLHYqPW0sbz13KnYtcSpsLGk9cSpNLVIqdixjPVIqbC13Kk0sbT1NYXRoLnNxcnQobypvK2kqaStjKmMpLG0/KG09MS9tLG8qPW0saSo9bSxjKj1tKToobz0wLGk9MCxjPTApLGY9bCpjLXYqaSxzPXYqby1NKmMsaD1NKmktbCpvLG09TWF0aC5zcXJ0KGYqZitzKnMraCpoKSxtPyhtPTEvbSxmKj1tLHMqPW0saCo9bSk6KGY9MCxzPTAsaD0wKSx0WzBdPW8sdFsxXT1mLHRbMl09TSx0WzNdPTAsdFs0XT1pLHRbNV09cyx0WzZdPWwsdFs3XT0wLHRbOF09Yyx0WzldPWgsdFsxMF09dix0WzExXT0wLHRbMTJdPS0obypwK2kqZCtjKkEpLHRbMTNdPS0oZipwK3MqZCtoKkEpLHRbMTRdPS0oTSpwK2wqZCt2KkEpLHRbMTVdPTEsdCl9LGUuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJtYXQ0KCIrdFswXSsiLCAiK3RbMV0rIiwgIit0WzJdKyIsICIrdFszXSsiLCAiK3RbNF0rIiwgIit0WzVdKyIsICIrdFs2XSsiLCAiK3RbN10rIiwgIit0WzhdKyIsICIrdFs5XSsiLCAiK3RbMTBdKyIsICIrdFsxMV0rIiwgIit0WzEyXSsiLCAiK3RbMTNdKyIsICIrdFsxNF0rIiwgIit0WzE1XSsiKSJ9LGUuZnJvYj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHRbMF0sMikrTWF0aC5wb3codFsxXSwyKStNYXRoLnBvdyh0WzJdLDIpK01hdGgucG93KHRbM10sMikrTWF0aC5wb3codFs0XSwyKStNYXRoLnBvdyh0WzVdLDIpK01hdGgucG93KHRbNl0sMikrTWF0aC5wb3codFs3XSwyKStNYXRoLnBvdyh0WzhdLDIpK01hdGgucG93KHRbOV0sMikrTWF0aC5wb3codFsxMF0sMikrTWF0aC5wb3codFsxMV0sMikrTWF0aC5wb3codFsxMl0sMikrTWF0aC5wb3codFsxM10sMikrTWF0aC5wb3codFsxNF0sMikrTWF0aC5wb3codFsxNV0sMikpfSx0LmV4cG9ydHM9ZX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIoMSksZT1yKDQpLHU9cig3KSxvPXIoOCksaT17fTtpLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhLkFSUkFZX1RZUEUoNCk7cmV0dXJuIHRbMF09MCx0WzFdPTAsdFsyXT0wLHRbM109MSx0fSxpLnJvdGF0aW9uVG89ZnVuY3Rpb24oKXt2YXIgdD11LmNyZWF0ZSgpLG49dS5mcm9tVmFsdWVzKDEsMCwwKSxyPXUuZnJvbVZhbHVlcygwLDEsMCk7cmV0dXJuIGZ1bmN0aW9uKGEsZSxvKXt2YXIgYz11LmRvdChlLG8pO3JldHVybi0uOTk5OTk5PmM/KHUuY3Jvc3ModCxuLGUpLHUubGVuZ3RoKHQpPDFlLTYmJnUuY3Jvc3ModCxyLGUpLHUubm9ybWFsaXplKHQsdCksaS5zZXRBeGlzQW5nbGUoYSx0LE1hdGguUEkpLGEpOmM+Ljk5OTk5OT8oYVswXT0wLGFbMV09MCxhWzJdPTAsYVszXT0xLGEpOih1LmNyb3NzKHQsZSxvKSxhWzBdPXRbMF0sYVsxXT10WzFdLGFbMl09dFsyXSxhWzNdPTErYyxpLm5vcm1hbGl6ZShhLGEpKX19KCksaS5zZXRBeGVzPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24obixyLGEsZSl7cmV0dXJuIHRbMF09YVswXSx0WzNdPWFbMV0sdFs2XT1hWzJdLHRbMV09ZVswXSx0WzRdPWVbMV0sdFs3XT1lWzJdLHRbMl09LXJbMF0sdFs1XT0tclsxXSx0WzhdPS1yWzJdLGkubm9ybWFsaXplKG4saS5mcm9tTWF0MyhuLHQpKX19KCksaS5jbG9uZT1vLmNsb25lLGkuZnJvbVZhbHVlcz1vLmZyb21WYWx1ZXMsaS5jb3B5PW8uY29weSxpLnNldD1vLnNldCxpLmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTEsdH0saS5zZXRBeGlzQW5nbGU9ZnVuY3Rpb24odCxuLHIpe3I9LjUqcjt2YXIgYT1NYXRoLnNpbihyKTtyZXR1cm4gdFswXT1hKm5bMF0sdFsxXT1hKm5bMV0sdFsyXT1hKm5bMl0sdFszXT1NYXRoLmNvcyhyKSx0fSxpLmFkZD1vLmFkZCxpLm11bHRpcGx5PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9clswXSxjPXJbMV0sZj1yWzJdLHM9clszXTtyZXR1cm4gdFswXT1hKnMrbyppK2UqZi11KmMsdFsxXT1lKnMrbypjK3UqaS1hKmYsdFsyXT11KnMrbypmK2EqYy1lKmksdFszXT1vKnMtYSppLWUqYy11KmYsdH0saS5tdWw9aS5tdWx0aXBseSxpLnNjYWxlPW8uc2NhbGUsaS5yb3RhdGVYPWZ1bmN0aW9uKHQsbixyKXtyKj0uNTt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9TWF0aC5zaW4ociksYz1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1hKmMrbyppLHRbMV09ZSpjK3UqaSx0WzJdPXUqYy1lKmksdFszXT1vKmMtYSppLHR9LGkucm90YXRlWT1mdW5jdGlvbih0LG4scil7cio9LjU7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPU1hdGguc2luKHIpLGM9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09YSpjLXUqaSx0WzFdPWUqYytvKmksdFsyXT11KmMrYSppLHRbM109bypjLWUqaSx0fSxpLnJvdGF0ZVo9ZnVuY3Rpb24odCxuLHIpe3IqPS41O3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1NYXRoLnNpbihyKSxjPU1hdGguY29zKHIpO3JldHVybiB0WzBdPWEqYytlKmksdFsxXT1lKmMtYSppLHRbMl09dSpjK28qaSx0WzNdPW8qYy11KmksdH0saS5jYWxjdWxhdGVXPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdO3JldHVybiB0WzBdPXIsdFsxXT1hLHRbMl09ZSx0WzNdPU1hdGguc3FydChNYXRoLmFicygxLXIqci1hKmEtZSplKSksdH0saS5kb3Q9by5kb3QsaS5sZXJwPW8ubGVycCxpLnNsZXJwPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBlLHUsbyxpLGMsZj1uWzBdLHM9blsxXSxoPW5bMl0sTT1uWzNdLGw9clswXSx2PXJbMV0sbT1yWzJdLHA9clszXTtyZXR1cm4gdT1mKmwrcyp2K2gqbStNKnAsMD51JiYodT0tdSxsPS1sLHY9LXYsbT0tbSxwPS1wKSwxLXU+MWUtNj8oZT1NYXRoLmFjb3ModSksbz1NYXRoLnNpbihlKSxpPU1hdGguc2luKCgxLWEpKmUpL28sYz1NYXRoLnNpbihhKmUpL28pOihpPTEtYSxjPWEpLHRbMF09aSpmK2MqbCx0WzFdPWkqcytjKnYsdFsyXT1pKmgrYyptLHRbM109aSpNK2MqcCx0fSxpLnNxbGVycD1mdW5jdGlvbigpe3ZhciB0PWkuY3JlYXRlKCksbj1pLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbihyLGEsZSx1LG8sYyl7cmV0dXJuIGkuc2xlcnAodCxhLG8sYyksaS5zbGVycChuLGUsdSxjKSxpLnNsZXJwKHIsdCxuLDIqYyooMS1jKSkscn19KCksaS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89cipyK2EqYStlKmUrdSp1LGk9bz8xL286MDtyZXR1cm4gdFswXT0tcippLHRbMV09LWEqaSx0WzJdPS1lKmksdFszXT11KmksdH0saS5jb25qdWdhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT0tblswXSx0WzFdPS1uWzFdLHRbMl09LW5bMl0sdFszXT1uWzNdLHR9LGkubGVuZ3RoPW8ubGVuZ3RoLGkubGVuPWkubGVuZ3RoLGkuc3F1YXJlZExlbmd0aD1vLnNxdWFyZWRMZW5ndGgsaS5zcXJMZW49aS5zcXVhcmVkTGVuZ3RoLGkubm9ybWFsaXplPW8ubm9ybWFsaXplLGkuZnJvbU1hdDM9ZnVuY3Rpb24odCxuKXt2YXIgcixhPW5bMF0rbls0XStuWzhdO2lmKGE+MClyPU1hdGguc3FydChhKzEpLHRbM109LjUqcixyPS41L3IsdFswXT0obls1XS1uWzddKSpyLHRbMV09KG5bNl0tblsyXSkqcix0WzJdPShuWzFdLW5bM10pKnI7ZWxzZXt2YXIgZT0wO25bNF0+blswXSYmKGU9MSksbls4XT5uWzMqZStlXSYmKGU9Mik7dmFyIHU9KGUrMSklMyxvPShlKzIpJTM7cj1NYXRoLnNxcnQoblszKmUrZV0tblszKnUrdV0tblszKm8rb10rMSksdFtlXT0uNSpyLHI9LjUvcix0WzNdPShuWzMqdStvXS1uWzMqbyt1XSkqcix0W3VdPShuWzMqdStlXStuWzMqZSt1XSkqcix0W29dPShuWzMqbytlXStuWzMqZStvXSkqcn1yZXR1cm4gdH0saS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuInF1YXQoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIpIn0sdC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsbixyKXt2YXIgYT1yKDEpLGU9e307ZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYS5BUlJBWV9UWVBFKDMpO3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0fSxlLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBhLkFSUkFZX1RZUEUoMyk7cmV0dXJuIG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG59LGUuZnJvbVZhbHVlcz1mdW5jdGlvbih0LG4scil7dmFyIGU9bmV3IGEuQVJSQVlfVFlQRSgzKTtyZXR1cm4gZVswXT10LGVbMV09bixlWzJdPXIsZX0sZS5jb3B5PWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPW5bMV0sdFsyXT1uWzJdLHR9LGUuc2V0PWZ1bmN0aW9uKHQsbixyLGEpe3JldHVybiB0WzBdPW4sdFsxXT1yLHRbMl09YSx0fSxlLmFkZD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXStyWzBdLHRbMV09blsxXStyWzFdLHRbMl09blsyXStyWzJdLHR9LGUuc3VidHJhY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0tclswXSx0WzFdPW5bMV0tclsxXSx0WzJdPW5bMl0tclsyXSx0fSxlLnN1Yj1lLnN1YnRyYWN0LGUubXVsdGlwbHk9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0qclswXSx0WzFdPW5bMV0qclsxXSx0WzJdPW5bMl0qclsyXSx0fSxlLm11bD1lLm11bHRpcGx5LGUuZGl2aWRlPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdL3JbMF0sdFsxXT1uWzFdL3JbMV0sdFsyXT1uWzJdL3JbMl0sdH0sZS5kaXY9ZS5kaXZpZGUsZS5taW49ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPU1hdGgubWluKG5bMF0sclswXSksdFsxXT1NYXRoLm1pbihuWzFdLHJbMV0pLHRbMl09TWF0aC5taW4oblsyXSxyWzJdKSx0fSxlLm1heD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09TWF0aC5tYXgoblswXSxyWzBdKSx0WzFdPU1hdGgubWF4KG5bMV0sclsxXSksdFsyXT1NYXRoLm1heChuWzJdLHJbMl0pLHR9LGUuc2NhbGU9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0qcix0WzFdPW5bMV0qcix0WzJdPW5bMl0qcix0fSxlLnNjYWxlQW5kQWRkPWZ1bmN0aW9uKHQsbixyLGEpe3JldHVybiB0WzBdPW5bMF0rclswXSphLHRbMV09blsxXStyWzFdKmEsdFsyXT1uWzJdK3JbMl0qYSx0fSxlLmRpc3RhbmNlPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXS10WzBdLGE9blsxXS10WzFdLGU9blsyXS10WzJdO3JldHVybiBNYXRoLnNxcnQocipyK2EqYStlKmUpfSxlLmRpc3Q9ZS5kaXN0YW5jZSxlLnNxdWFyZWREaXN0YW5jZT1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0tdFswXSxhPW5bMV0tdFsxXSxlPW5bMl0tdFsyXTtyZXR1cm4gcipyK2EqYStlKmV9LGUuc3FyRGlzdD1lLnNxdWFyZWREaXN0YW5jZSxlLmxlbmd0aD1mdW5jdGlvbih0KXt2YXIgbj10WzBdLHI9dFsxXSxhPXRbMl07cmV0dXJuIE1hdGguc3FydChuKm4rcipyK2EqYSl9LGUubGVuPWUubGVuZ3RoLGUuc3F1YXJlZExlbmd0aD1mdW5jdGlvbih0KXt2YXIgbj10WzBdLHI9dFsxXSxhPXRbMl07cmV0dXJuIG4qbityKnIrYSphfSxlLnNxckxlbj1lLnNxdWFyZWRMZW5ndGgsZS5uZWdhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT0tblswXSx0WzFdPS1uWzFdLHRbMl09LW5bMl0sdH0sZS5pbnZlcnNlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09MS9uWzBdLHRbMV09MS9uWzFdLHRbMl09MS9uWzJdLHR9LGUubm9ybWFsaXplPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdLHU9cipyK2EqYStlKmU7cmV0dXJuIHU+MCYmKHU9MS9NYXRoLnNxcnQodSksdFswXT1uWzBdKnUsdFsxXT1uWzFdKnUsdFsyXT1uWzJdKnUpLHR9LGUuZG90PWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF0qblswXSt0WzFdKm5bMV0rdFsyXSpuWzJdfSxlLmNyb3NzPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1yWzBdLGk9clsxXSxjPXJbMl07cmV0dXJuIHRbMF09ZSpjLXUqaSx0WzFdPXUqby1hKmMsdFsyXT1hKmktZSpvLHR9LGUubGVycD1mdW5jdGlvbih0LG4scixhKXt2YXIgZT1uWzBdLHU9blsxXSxvPW5bMl07cmV0dXJuIHRbMF09ZSthKihyWzBdLWUpLHRbMV09dSthKihyWzFdLXUpLHRbMl09bythKihyWzJdLW8pLHR9LGUuaGVybWl0ZT1mdW5jdGlvbih0LG4scixhLGUsdSl7dmFyIG89dSp1LGk9byooMip1LTMpKzEsYz1vKih1LTIpK3UsZj1vKih1LTEpLHM9byooMy0yKnUpO3JldHVybiB0WzBdPW5bMF0qaStyWzBdKmMrYVswXSpmK2VbMF0qcyx0WzFdPW5bMV0qaStyWzFdKmMrYVsxXSpmK2VbMV0qcyx0WzJdPW5bMl0qaStyWzJdKmMrYVsyXSpmK2VbMl0qcyx0fSxlLmJlemllcj1mdW5jdGlvbih0LG4scixhLGUsdSl7dmFyIG89MS11LGk9bypvLGM9dSp1LGY9aSpvLHM9Myp1KmksaD0zKmMqbyxNPWMqdTtyZXR1cm4gdFswXT1uWzBdKmYrclswXSpzK2FbMF0qaCtlWzBdKk0sdFsxXT1uWzFdKmYrclsxXSpzK2FbMV0qaCtlWzFdKk0sdFsyXT1uWzJdKmYrclsyXSpzK2FbMl0qaCtlWzJdKk0sdH0sZS5yYW5kb209ZnVuY3Rpb24odCxuKXtuPW58fDE7dmFyIHI9MiphLlJBTkRPTSgpKk1hdGguUEksZT0yKmEuUkFORE9NKCktMSx1PU1hdGguc3FydCgxLWUqZSkqbjtyZXR1cm4gdFswXT1NYXRoLmNvcyhyKSp1LHRbMV09TWF0aC5zaW4ocikqdSx0WzJdPWUqbix0fSxlLnRyYW5zZm9ybU1hdDQ9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPXJbM10qYStyWzddKmUrclsxMV0qdStyWzE1XTtyZXR1cm4gbz1vfHwxLHRbMF09KHJbMF0qYStyWzRdKmUrcls4XSp1K3JbMTJdKS9vLHRbMV09KHJbMV0qYStyWzVdKmUrcls5XSp1K3JbMTNdKS9vLHRbMl09KHJbMl0qYStyWzZdKmUrclsxMF0qdStyWzE0XSkvbyx0fSxlLnRyYW5zZm9ybU1hdDM9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXTtyZXR1cm4gdFswXT1hKnJbMF0rZSpyWzNdK3Uqcls2XSx0WzFdPWEqclsxXStlKnJbNF0rdSpyWzddLHRbMl09YSpyWzJdK2Uqcls1XSt1KnJbOF0sdH0sZS50cmFuc2Zvcm1RdWF0PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1yWzBdLGk9clsxXSxjPXJbMl0sZj1yWzNdLHM9ZiphK2kqdS1jKmUsaD1mKmUrYyphLW8qdSxNPWYqdStvKmUtaSphLGw9LW8qYS1pKmUtYyp1O3JldHVybiB0WzBdPXMqZitsKi1vK2gqLWMtTSotaSx0WzFdPWgqZitsKi1pK00qLW8tcyotYyx0WzJdPU0qZitsKi1jK3MqLWktaCotbyx0fSxlLnJvdGF0ZVg9ZnVuY3Rpb24odCxuLHIsYSl7dmFyIGU9W10sdT1bXTtyZXR1cm4gZVswXT1uWzBdLXJbMF0sZVsxXT1uWzFdLXJbMV0sZVsyXT1uWzJdLXJbMl0sdVswXT1lWzBdLHVbMV09ZVsxXSpNYXRoLmNvcyhhKS1lWzJdKk1hdGguc2luKGEpLHVbMl09ZVsxXSpNYXRoLnNpbihhKStlWzJdKk1hdGguY29zKGEpLHRbMF09dVswXStyWzBdLHRbMV09dVsxXStyWzFdLHRbMl09dVsyXStyWzJdLHR9LGUucm90YXRlWT1mdW5jdGlvbih0LG4scixhKXt2YXIgZT1bXSx1PVtdO3JldHVybiBlWzBdPW5bMF0tclswXSxlWzFdPW5bMV0tclsxXSxlWzJdPW5bMl0tclsyXSx1WzBdPWVbMl0qTWF0aC5zaW4oYSkrZVswXSpNYXRoLmNvcyhhKSx1WzFdPWVbMV0sdVsyXT1lWzJdKk1hdGguY29zKGEpLWVbMF0qTWF0aC5zaW4oYSksdFswXT11WzBdK3JbMF0sdFsxXT11WzFdK3JbMV0sdFsyXT11WzJdK3JbMl0sdH0sZS5yb3RhdGVaPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBlPVtdLHU9W107cmV0dXJuIGVbMF09blswXS1yWzBdLGVbMV09blsxXS1yWzFdLGVbMl09blsyXS1yWzJdLHVbMF09ZVswXSpNYXRoLmNvcyhhKS1lWzFdKk1hdGguc2luKGEpLHVbMV09ZVswXSpNYXRoLnNpbihhKStlWzFdKk1hdGguY29zKGEpLHVbMl09ZVsyXSx0WzBdPXVbMF0rclswXSx0WzFdPXVbMV0rclsxXSx0WzJdPXVbMl0rclsyXSx0fSxlLmZvckVhY2g9ZnVuY3Rpb24oKXt2YXIgdD1lLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbihuLHIsYSxlLHUsbyl7dmFyIGksYztmb3Iocnx8KHI9MyksYXx8KGE9MCksYz1lP01hdGgubWluKGUqcithLG4ubGVuZ3RoKTpuLmxlbmd0aCxpPWE7Yz5pO2krPXIpdFswXT1uW2ldLHRbMV09bltpKzFdLHRbMl09bltpKzJdLHUodCx0LG8pLG5baV09dFswXSxuW2krMV09dFsxXSxuW2krMl09dFsyXTtyZXR1cm4gbn19KCksZS5hbmdsZT1mdW5jdGlvbih0LG4pe3ZhciByPWUuZnJvbVZhbHVlcyh0WzBdLHRbMV0sdFsyXSksYT1lLmZyb21WYWx1ZXMoblswXSxuWzFdLG5bMl0pO2Uubm9ybWFsaXplKHIsciksZS5ub3JtYWxpemUoYSxhKTt2YXIgdT1lLmRvdChyLGEpO3JldHVybiB1PjE/MDpNYXRoLmFjb3ModSl9LGUuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJ2ZWMzKCIrdFswXSsiLCAiK3RbMV0rIiwgIit0WzJdKyIpIn0sdC5leHBvcnRzPWV9LGZ1bmN0aW9uKHQsbixyKXt2YXIgYT1yKDEpLGU9e307ZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYS5BUlJBWV9UWVBFKDQpO3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTAsdH0sZS5jbG9uZT1mdW5jdGlvbih0KXt2YXIgbj1uZXcgYS5BUlJBWV9UWVBFKDQpO3JldHVybiBuWzBdPXRbMF0sblsxXT10WzFdLG5bMl09dFsyXSxuWzNdPXRbM10sbn0sZS5mcm9tVmFsdWVzPWZ1bmN0aW9uKHQsbixyLGUpe3ZhciB1PW5ldyBhLkFSUkFZX1RZUEUoNCk7cmV0dXJuIHVbMF09dCx1WzFdPW4sdVsyXT1yLHVbM109ZSx1fSxlLmNvcHk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09blsxXSx0WzJdPW5bMl0sdFszXT1uWzNdLHR9LGUuc2V0PWZ1bmN0aW9uKHQsbixyLGEsZSl7cmV0dXJuIHRbMF09bix0WzFdPXIsdFsyXT1hLHRbM109ZSx0fSxlLmFkZD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXStyWzBdLHRbMV09blsxXStyWzFdLHRbMl09blsyXStyWzJdLHRbM109blszXStyWzNdLHR9LGUuc3VidHJhY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0tclswXSx0WzFdPW5bMV0tclsxXSx0WzJdPW5bMl0tclsyXSx0WzNdPW5bM10tclszXSx0fSxlLnN1Yj1lLnN1YnRyYWN0LGUubXVsdGlwbHk9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0qclswXSx0WzFdPW5bMV0qclsxXSx0WzJdPW5bMl0qclsyXSx0WzNdPW5bM10qclszXSx0fSxlLm11bD1lLm11bHRpcGx5LGUuZGl2aWRlPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdL3JbMF0sdFsxXT1uWzFdL3JbMV0sdFsyXT1uWzJdL3JbMl0sdFszXT1uWzNdL3JbM10sdH0sZS5kaXY9ZS5kaXZpZGUsZS5taW49ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPU1hdGgubWluKG5bMF0sclswXSksdFsxXT1NYXRoLm1pbihuWzFdLHJbMV0pLHRbMl09TWF0aC5taW4oblsyXSxyWzJdKSx0WzNdPU1hdGgubWluKG5bM10sclszXSksdH0sZS5tYXg9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPU1hdGgubWF4KG5bMF0sclswXSksdFsxXT1NYXRoLm1heChuWzFdLHJbMV0pLHRbMl09TWF0aC5tYXgoblsyXSxyWzJdKSx0WzNdPU1hdGgubWF4KG5bM10sclszXSksdH0sZS5zY2FsZT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXSpyLHRbMV09blsxXSpyLHRbMl09blsyXSpyLHRbM109blszXSpyLHR9LGUuc2NhbGVBbmRBZGQ9ZnVuY3Rpb24odCxuLHIsYSl7cmV0dXJuIHRbMF09blswXStyWzBdKmEsdFsxXT1uWzFdK3JbMV0qYSx0WzJdPW5bMl0rclsyXSphLHRbM109blszXStyWzNdKmEsdH0sZS5kaXN0YW5jZT1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0tdFswXSxhPW5bMV0tdFsxXSxlPW5bMl0tdFsyXSx1PW5bM10tdFszXTtyZXR1cm4gTWF0aC5zcXJ0KHIqcithKmErZSplK3UqdSl9LGUuZGlzdD1lLmRpc3RhbmNlLGUuc3F1YXJlZERpc3RhbmNlPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXS10WzBdLGE9blsxXS10WzFdLGU9blsyXS10WzJdLHU9blszXS10WzNdO3JldHVybiByKnIrYSphK2UqZSt1KnV9LGUuc3FyRGlzdD1lLnNxdWFyZWREaXN0YW5jZSxlLmxlbmd0aD1mdW5jdGlvbih0KXt2YXIgbj10WzBdLHI9dFsxXSxhPXRbMl0sZT10WzNdO3JldHVybiBNYXRoLnNxcnQobipuK3IqcithKmErZSplKX0sZS5sZW49ZS5sZW5ndGgsZS5zcXVhcmVkTGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBuPXRbMF0scj10WzFdLGE9dFsyXSxlPXRbM107cmV0dXJuIG4qbityKnIrYSphK2UqZX0sZS5zcXJMZW49ZS5zcXVhcmVkTGVuZ3RoLGUubmVnYXRlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09LW5bMF0sdFsxXT0tblsxXSx0WzJdPS1uWzJdLHRbM109LW5bM10sdH0sZS5pbnZlcnNlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09MS9uWzBdLHRbMV09MS9uWzFdLHRbMl09MS9uWzJdLHRbM109MS9uWzNdLHR9LGUubm9ybWFsaXplPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdLHU9blszXSxvPXIqcithKmErZSplK3UqdTtyZXR1cm4gbz4wJiYobz0xL01hdGguc3FydChvKSx0WzBdPXIqbyx0WzFdPWEqbyx0WzJdPWUqbyx0WzNdPXUqbyksdH0sZS5kb3Q9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXSpuWzBdK3RbMV0qblsxXSt0WzJdKm5bMl0rdFszXSpuWzNdfSxlLmxlcnA9ZnVuY3Rpb24odCxuLHIsYSl7dmFyIGU9blswXSx1PW5bMV0sbz1uWzJdLGk9blszXTtyZXR1cm4gdFswXT1lK2EqKHJbMF0tZSksdFsxXT11K2EqKHJbMV0tdSksdFsyXT1vK2EqKHJbMl0tbyksdFszXT1pK2EqKHJbM10taSksdH0sZS5yYW5kb209ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj1ufHwxLHRbMF09YS5SQU5ET00oKSx0WzFdPWEuUkFORE9NKCksdFsyXT1hLlJBTkRPTSgpLHRbM109YS5SQU5ET00oKSxlLm5vcm1hbGl6ZSh0LHQpLGUuc2NhbGUodCx0LG4pLHR9LGUudHJhbnNmb3JtTWF0ND1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXTtyZXR1cm4gdFswXT1yWzBdKmErcls0XSplK3JbOF0qdStyWzEyXSpvLHRbMV09clsxXSphK3JbNV0qZStyWzldKnUrclsxM10qbyx0WzJdPXJbMl0qYStyWzZdKmUrclsxMF0qdStyWzE0XSpvLHRbM109clszXSphK3JbN10qZStyWzExXSp1K3JbMTVdKm8sdH0sZS50cmFuc2Zvcm1RdWF0PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1yWzBdLGk9clsxXSxjPXJbMl0sZj1yWzNdLHM9ZiphK2kqdS1jKmUsaD1mKmUrYyphLW8qdSxNPWYqdStvKmUtaSphLGw9LW8qYS1pKmUtYyp1O3JldHVybiB0WzBdPXMqZitsKi1vK2gqLWMtTSotaSx0WzFdPWgqZitsKi1pK00qLW8tcyotYyx0WzJdPU0qZitsKi1jK3MqLWktaCotbyx0WzNdPW5bM10sdH0sZS5mb3JFYWNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24obixyLGEsZSx1LG8pe3ZhciBpLGM7Zm9yKHJ8fChyPTQpLGF8fChhPTApLGM9ZT9NYXRoLm1pbihlKnIrYSxuLmxlbmd0aCk6bi5sZW5ndGgsaT1hO2M+aTtpKz1yKXRbMF09bltpXSx0WzFdPW5baSsxXSx0WzJdPW5baSsyXSx0WzNdPW5baSszXSx1KHQsdCxvKSxuW2ldPXRbMF0sbltpKzFdPXRbMV0sbltpKzJdPXRbMl0sbltpKzNdPXRbM107cmV0dXJuIG59fSgpLGUuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJ2ZWM0KCIrdFswXSsiLCAiK3RbMV0rIiwgIit0WzJdKyIsICIrdFszXSsiKSJ9LHQuZXhwb3J0cz1lfSxmdW5jdGlvbih0LG4scil7dmFyIGE9cigxKSxlPXt9O2UuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGEuQVJSQVlfVFlQRSgyKTtyZXR1cm4gdFswXT0wLHRbMV09MCx0fSxlLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBhLkFSUkFZX1RZUEUoMik7cmV0dXJuIG5bMF09dFswXSxuWzFdPXRbMV0sbn0sZS5mcm9tVmFsdWVzPWZ1bmN0aW9uKHQsbil7dmFyIHI9bmV3IGEuQVJSQVlfVFlQRSgyKTtyZXR1cm4gclswXT10LHJbMV09bixyfSxlLmNvcHk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09blsxXSx0fSxlLnNldD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09bix0WzFdPXIsdH0sZS5hZGQ9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0rclswXSx0WzFdPW5bMV0rclsxXSx0fSxlLnN1YnRyYWN0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdLXJbMF0sdFsxXT1uWzFdLXJbMV0sdH0sZS5zdWI9ZS5zdWJ0cmFjdCxlLm11bHRpcGx5PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdKnJbMF0sdFsxXT1uWzFdKnJbMV0sdH0sZS5tdWw9ZS5tdWx0aXBseSxlLmRpdmlkZT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXS9yWzBdLHRbMV09blsxXS9yWzFdLHR9LGUuZGl2PWUuZGl2aWRlLGUubWluPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1NYXRoLm1pbihuWzBdLHJbMF0pLHRbMV09TWF0aC5taW4oblsxXSxyWzFdKSx0fSxlLm1heD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09TWF0aC5tYXgoblswXSxyWzBdKSx0WzFdPU1hdGgubWF4KG5bMV0sclsxXSksdH0sZS5zY2FsZT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXSpyLHRbMV09blsxXSpyLHR9LGUuc2NhbGVBbmRBZGQ9ZnVuY3Rpb24odCxuLHIsYSl7cmV0dXJuIHRbMF09blswXStyWzBdKmEsdFsxXT1uWzFdK3JbMV0qYSx0fSxlLmRpc3RhbmNlPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXS10WzBdLGE9blsxXS10WzFdO3JldHVybiBNYXRoLnNxcnQocipyK2EqYSl9LGUuZGlzdD1lLmRpc3RhbmNlLGUuc3F1YXJlZERpc3RhbmNlPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXS10WzBdLGE9blsxXS10WzFdO3JldHVybiByKnIrYSphfSxlLnNxckRpc3Q9ZS5zcXVhcmVkRGlzdGFuY2UsZS5sZW5ndGg9ZnVuY3Rpb24odCl7dmFyIG49dFswXSxyPXRbMV07cmV0dXJuIE1hdGguc3FydChuKm4rcipyKX0sZS5sZW49ZS5sZW5ndGgsZS5zcXVhcmVkTGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBuPXRbMF0scj10WzFdO3JldHVybiBuKm4rcipyfSxlLnNxckxlbj1lLnNxdWFyZWRMZW5ndGgsZS5uZWdhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT0tblswXSx0WzFdPS1uWzFdLHR9LGUuaW52ZXJzZT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPTEvblswXSx0WzFdPTEvblsxXSx0fSxlLm5vcm1hbGl6ZT1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9cipyK2EqYTtyZXR1cm4gZT4wJiYoZT0xL01hdGguc3FydChlKSx0WzBdPW5bMF0qZSx0WzFdPW5bMV0qZSksdH0sZS5kb3Q9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXSpuWzBdK3RbMV0qblsxXX0sZS5jcm9zcz1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSpyWzFdLW5bMV0qclswXTtyZXR1cm4gdFswXT10WzFdPTAsdFsyXT1hLHR9LGUubGVycD1mdW5jdGlvbih0LG4scixhKXt2YXIgZT1uWzBdLHU9blsxXTtyZXR1cm4gdFswXT1lK2EqKHJbMF0tZSksdFsxXT11K2EqKHJbMV0tdSksdH0sZS5yYW5kb209ZnVuY3Rpb24odCxuKXtuPW58fDE7dmFyIHI9MiphLlJBTkRPTSgpKk1hdGguUEk7cmV0dXJuIHRbMF09TWF0aC5jb3Mocikqbix0WzFdPU1hdGguc2luKHIpKm4sdH0sZS50cmFuc2Zvcm1NYXQyPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXTtyZXR1cm4gdFswXT1yWzBdKmErclsyXSplLHRbMV09clsxXSphK3JbM10qZSx0fSxlLnRyYW5zZm9ybU1hdDJkPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXTtyZXR1cm4gdFswXT1yWzBdKmErclsyXSplK3JbNF0sdFsxXT1yWzFdKmErclszXSplK3JbNV0sdH0sZS50cmFuc2Zvcm1NYXQzPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXTtyZXR1cm4gdFswXT1yWzBdKmErclszXSplK3JbNl0sdFsxXT1yWzFdKmErcls0XSplK3JbN10sdH0sZS50cmFuc2Zvcm1NYXQ0PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXTtyZXR1cm4gdFswXT1yWzBdKmErcls0XSplK3JbMTJdLHRbMV09clsxXSphK3JbNV0qZStyWzEzXSx0fSxlLmZvckVhY2g9ZnVuY3Rpb24oKXt2YXIgdD1lLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbihuLHIsYSxlLHUsbyl7dmFyIGksYztmb3Iocnx8KHI9MiksYXx8KGE9MCksYz1lP01hdGgubWluKGUqcithLG4ubGVuZ3RoKTpuLmxlbmd0aCxpPWE7Yz5pO2krPXIpdFswXT1uW2ldLHRbMV09bltpKzFdLHUodCx0LG8pLG5baV09dFswXSxuW2krMV09dFsxXTtyZXR1cm4gbn19KCksZS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuInZlYzIoIit0WzBdKyIsICIrdFsxXSsiKSJ9LHQuZXhwb3J0cz1lfV0pfSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGNsYW1wKHgsbG8saGkpe3JldHVybiBNYXRoLm1pbihNYXRoLm1heCh4LGxvKSxoaSk7fQogZnVuY3Rpb24gbGVycChwZXJjZW50YWdlLGxvLGhpKXt2YXIgcmFuZ2U9aGktbG87cmV0dXJuIGxvK3BlcmNlbnRhZ2UqcmFuZ2U7fQorZnVuY3Rpb24gbm9ybWFsaXplKHZhbHVlLGxvLGhpKXtyZXR1cm4odmFsdWUtbG8pLyhoaS1sbyk7fQogZnVuY3Rpb24gZGVnMnJhZChkZWcpe3JldHVybihNYXRoLlBJKmRlZykvMTgwLjA7fQogdmFyIHRtcF92ZWMyPXZlYzIuY3JlYXRlKCk7dmFyIHRtcF92ZWMyYj12ZWMyLmNyZWF0ZSgpO3ZhciB0bXBfdmVjND12ZWM0LmNyZWF0ZSgpO3ZhciB0bXBfbWF0MmQ9bWF0MmQuY3JlYXRlKCk7dmVjMi5jcmVhdGVGcm9tQXJyYXk9ZnVuY3Rpb24oYXJyKXtpZihhcnIubGVuZ3RoIT0yKQogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgYmUgbGVuZ3RoIDInKTt2YXIgdj12ZWMyLmNyZWF0ZSgpO3ZlYzIuc2V0KHYsYXJyWzBdLGFyclsxXSk7cmV0dXJuIHY7fTt2ZWMyLmNyZWF0ZVhZPWZ1bmN0aW9uKHgseSl7dmFyIHY9dmVjMi5jcmVhdGUoKTt2ZWMyLnNldCh2LHgseSk7cmV0dXJuIHY7fTt2ZWMyLnRvU3RyaW5nPWZ1bmN0aW9uKGEpe3JldHVybidbJythWzBdKycsICcrYVsxXSsnXSc7fTt2ZWMyLmFkZFR3b1NjYWxlZFVuaXRWZWN0b3JzPWZ1bmN0aW9uKG91dCx1MSxzY2FsZTEsdTIsc2NhbGUyKXt2ZWMyLnNjYWxlKHRtcF92ZWMyLHUxLHNjYWxlMSk7dmVjMi5zY2FsZSh0bXBfdmVjMmIsdTIsc2NhbGUyKTt2ZWMyLmFkZChvdXQsdG1wX3ZlYzIsdG1wX3ZlYzJiKTt9O3ZlYzIuaW50ZXJwb2xhdGVQaWVjZXdpc2VGdW5jdGlvbj1mdW5jdGlvbihwb2ludHMseCl7aWYoeDxwb2ludHNbMF1bMF0pCi1yZXR1cm4gcG9pbnRzWzBdWzFdO2Zvcih2YXIgaT0xO2k8cG9pbnRzLmxlbmd0aDsrK2kpe2lmKHg8cG9pbnRzW2ldWzBdKXt2YXIgcGVyY2VudD0oeC1wb2ludHNbaS0xXVswXSkvKHBvaW50c1tpXVswXS1wb2ludHNbaS0xXVswXSk7cmV0dXJuIGxlcnAocGVyY2VudCxwb2ludHNbaS0xXVsxXSxwb2ludHNbaV1bMV0pO319CityZXR1cm4gcG9pbnRzWzBdWzFdO2Zvcih2YXIgaT0xO2k8cG9pbnRzLmxlbmd0aDsrK2kpe2lmKHg8cG9pbnRzW2ldWzBdKXt2YXIgcGVyY2VudD1ub3JtYWxpemUoeCxwb2ludHNbaS0xXVswXSxwb2ludHNbaV1bMF0pO3JldHVybiBsZXJwKHBlcmNlbnQscG9pbnRzW2ktMV1bMV0scG9pbnRzW2ldWzFdKTt9fQogcmV0dXJuIHBvaW50c1twb2ludHMubGVuZ3RoLTFdWzFdO307dmVjMy5jcmVhdGVYWVo9ZnVuY3Rpb24oeCx5LHope3ZhciB2PXZlYzMuY3JlYXRlKCk7dmVjMy5zZXQodix4LHkseik7cmV0dXJuIHY7fTt2ZWMzLnRvU3RyaW5nPWZ1bmN0aW9uKGEpe3JldHVybid2ZWMzKCcrYVswXSsnLCAnK2FbMV0rJywgJythWzJdKycpJzt9CiBtYXQyZC50cmFuc2xhdGVYWT1mdW5jdGlvbihvdXQseCx5KXt2ZWMyLnNldCh0bXBfdmVjMix4LHkpO21hdDJkLnRyYW5zbGF0ZShvdXQsb3V0LHRtcF92ZWMyKTt9CiBtYXQyZC5zY2FsZVhZPWZ1bmN0aW9uKG91dCx4LHkpe3ZlYzIuc2V0KHRtcF92ZWMyLHgseSk7bWF0MmQuc2NhbGUob3V0LG91dCx0bXBfdmVjMik7fQogdmVjNC51bml0aXplPWZ1bmN0aW9uKG91dCxhKXtvdXRbMF09YVswXS9hWzNdO291dFsxXT1hWzFdL2FbM107b3V0WzJdPWFbMl0vYVszXTtvdXRbM109MTtyZXR1cm4gb3V0O30KIHZlYzIuY29weUZyb21WZWM0PWZ1bmN0aW9uKG91dCxhKXt2ZWM0LnVuaXRpemUodG1wX3ZlYzQsYSk7dmVjMi5jb3B5KG91dCx0bXBfdmVjNCk7fQotcmV0dXJue2NsYW1wOmNsYW1wLGxlcnA6bGVycCxkZWcycmFkOmRlZzJyYWR9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBSZWN0KCl7dGhpcy54PTA7dGhpcy55PTA7dGhpcy53aWR0aD0wO3RoaXMuaGVpZ2h0PTA7fTtSZWN0LmZyb21YWVdIPWZ1bmN0aW9uKHgseSx3LGgpe3ZhciByZWN0PW5ldyBSZWN0KCk7cmVjdC54PXg7cmVjdC55PXk7cmVjdC53aWR0aD13O3JlY3QuaGVpZ2h0PWg7cmV0dXJuIHJlY3Q7fQorcmV0dXJue2NsYW1wOmNsYW1wLGxlcnA6bGVycCxub3JtYWxpemU6bm9ybWFsaXplLGRlZzJyYWQ6ZGVnMnJhZH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFJlY3QoKXt0aGlzLng9MDt0aGlzLnk9MDt0aGlzLndpZHRoPTA7dGhpcy5oZWlnaHQ9MDt9O1JlY3QuZnJvbVhZV0g9ZnVuY3Rpb24oeCx5LHcsaCl7dmFyIHJlY3Q9bmV3IFJlY3QoKTtyZWN0Lng9eDtyZWN0Lnk9eTtyZWN0LndpZHRoPXc7cmVjdC5oZWlnaHQ9aDtyZXR1cm4gcmVjdDt9CiBSZWN0LmZyb21BcnJheT1mdW5jdGlvbihhcnkpe2lmKGFyeS5sZW5ndGghPTQpCiB0aHJvdyBuZXcgRXJyb3IoJ2FyeS5sZW5ndGggbXVzdCBiZSA0Jyk7dmFyIHJlY3Q9bmV3IFJlY3QoKTtyZWN0Lng9YXJ5WzBdO3JlY3QueT1hcnlbMV07cmVjdC53aWR0aD1hcnlbMl07cmVjdC5oZWlnaHQ9YXJ5WzNdO3JldHVybiByZWN0O30KIFJlY3QucHJvdG90eXBlPXtfX3Byb3RvX186T2JqZWN0LnByb3RvdHlwZSxnZXQgbGVmdCgpe3JldHVybiB0aGlzLng7fSxnZXQgdG9wKCl7cmV0dXJuIHRoaXMueTt9LGdldCByaWdodCgpe3JldHVybiB0aGlzLngrdGhpcy53aWR0aDt9LGdldCBib3R0b20oKXtyZXR1cm4gdGhpcy55K3RoaXMuaGVpZ2h0O30sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4nUmVjdCgnK3RoaXMueCsnLCAnK3RoaXMueSsnLCAnKwotdGhpcy53aWR0aCsnLCAnK3RoaXMuaGVpZ2h0KycpJzt9LHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy54LHRoaXMueSx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XTt9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHJlY3Q9bmV3IFJlY3QoKTtyZWN0Lng9dGhpcy54O3JlY3QueT10aGlzLnk7cmVjdC53aWR0aD10aGlzLndpZHRoO3JlY3QuaGVpZ2h0PXRoaXMuaGVpZ2h0O3JldHVybiByZWN0O30sZW5sYXJnZTpmdW5jdGlvbihwYWQpe3ZhciByZWN0PW5ldyBSZWN0KCk7dGhpcy5lbmxhcmdlRmFzdChyZWN0LHBhZCk7cmV0dXJuIHJlY3Q7fSxlbmxhcmdlRmFzdDpmdW5jdGlvbihvdXQscGFkKXtvdXQueD10aGlzLngtcGFkO291dC55PXRoaXMueS1wYWQ7b3V0LndpZHRoPXRoaXMud2lkdGgrMipwYWQ7b3V0LmhlaWdodD10aGlzLmhlaWdodCsyKnBhZDtyZXR1cm4gb3V0O30sc2l6ZTpmdW5jdGlvbigpe3JldHVybnt3aWR0aDp0aGlzLndpZHRoLGhlaWdodDp0aGlzLmhlaWdodH07fSxzY2FsZTpmdW5jdGlvbihzKXt2YXIgcmVjdD1uZXcgUmVjdCgpO3RoaXMuc2NhbGVGYXN0KHJlY3Qscyk7cmV0dXJuIHJlY3Q7fSxzY2FsZVNpemU6ZnVuY3Rpb24ocyl7cmV0dXJuIFJlY3QuZnJvbVhZV0godGhpcy54LHRoaXMueSx0aGlzLndpZHRoKnMsdGhpcy5oZWlnaHQqcyk7fSxzY2FsZUZhc3Q6ZnVuY3Rpb24ob3V0LHMpe291dC54PXRoaXMueCpzO291dC55PXRoaXMueSpzO291dC53aWR0aD10aGlzLndpZHRoKnM7b3V0LmhlaWdodD10aGlzLmhlaWdodCpzO3JldHVybiBvdXQ7fSx0cmFuc2xhdGU6ZnVuY3Rpb24odil7dmFyIHJlY3Q9bmV3IFJlY3QoKTt0aGlzLnRyYW5zbGF0ZUZhc3QocmVjdCx2KTtyZXR1cm4gcmVjdDt9LHRyYW5zbGF0ZUZhc3Q6ZnVuY3Rpb24ob3V0LHYpe291dC54PXRoaXMueCt2WzBdO291dC55PXRoaXMueCt2WzFdO291dC53aWR0aD10aGlzLndpZHRoO291dC5oZWlnaHQ9dGhpcy5oZWlnaHQ7cmV0dXJuIG91dDt9LGFzVVZSZWN0SW5zaWRlOmZ1bmN0aW9uKGNvbnRhaW5pbmdSZWN0KXt2YXIgcmVjdD1uZXcgUmVjdCgpO3JlY3QueD0odGhpcy54LWNvbnRhaW5pbmdSZWN0LngpL2NvbnRhaW5pbmdSZWN0LndpZHRoO3JlY3QueT0odGhpcy55LWNvbnRhaW5pbmdSZWN0LnkpL2NvbnRhaW5pbmdSZWN0LmhlaWdodDtyZWN0LndpZHRoPXRoaXMud2lkdGgvY29udGFpbmluZ1JlY3Qud2lkdGg7cmVjdC5oZWlnaHQ9dGhpcy5oZWlnaHQvY29udGFpbmluZ1JlY3QuaGVpZ2h0O3JldHVybiByZWN0O30saW50ZXJzZWN0czpmdW5jdGlvbih0aGF0KXt2YXIgb2s9dHJ1ZTtvayY9dGhpcy54PHRoYXQucmlnaHQ7b2smPXRoaXMucmlnaHQ+dGhhdC54O29rJj10aGlzLnk8dGhhdC5ib3R0b207b2smPXRoaXMuYm90dG9tPnRoYXQueTtyZXR1cm4gb2s7fSxlcXVhbFRvOmZ1bmN0aW9uKHJlY3Qpe3JldHVybiByZWN0JiYodGhpcy54PT09cmVjdC54KSYmKHRoaXMueT09PXJlY3QueSkmJih0aGlzLndpZHRoPT09cmVjdC53aWR0aCkmJih0aGlzLmhlaWdodD09PXJlY3QuaGVpZ2h0KTt9fTtyZXR1cm57UmVjdDpSZWN0fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYWRkU2luZ2xldG9uR2V0dGVyKGN0b3Ipe2N0b3IuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gY3Rvci5pbnN0YW5jZV98fChjdG9yLmluc3RhbmNlXz1uZXcgY3RvcigpKTt9O30KLWZ1bmN0aW9uIGluc3RhbnRpYXRlVGVtcGxhdGUoc2VsZWN0b3IsZG9jKXtkb2M9ZG9jfHxkb2N1bWVudDt2YXIgZWw9ZG9jLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO2lmKCFlbCkKK3RoaXMud2lkdGgrJywgJyt0aGlzLmhlaWdodCsnKSc7fSx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMueCx0aGlzLnksdGhpcy53aWR0aCx0aGlzLmhlaWdodF07fSxjbG9uZTpmdW5jdGlvbigpe3ZhciByZWN0PW5ldyBSZWN0KCk7cmVjdC54PXRoaXMueDtyZWN0Lnk9dGhpcy55O3JlY3Qud2lkdGg9dGhpcy53aWR0aDtyZWN0LmhlaWdodD10aGlzLmhlaWdodDtyZXR1cm4gcmVjdDt9LGVubGFyZ2U6ZnVuY3Rpb24ocGFkKXt2YXIgcmVjdD1uZXcgUmVjdCgpO3RoaXMuZW5sYXJnZUZhc3QocmVjdCxwYWQpO3JldHVybiByZWN0O30sZW5sYXJnZUZhc3Q6ZnVuY3Rpb24ob3V0LHBhZCl7b3V0Lng9dGhpcy54LXBhZDtvdXQueT10aGlzLnktcGFkO291dC53aWR0aD10aGlzLndpZHRoKzIqcGFkO291dC5oZWlnaHQ9dGhpcy5oZWlnaHQrMipwYWQ7cmV0dXJuIG91dDt9LHNpemU6ZnVuY3Rpb24oKXtyZXR1cm57d2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHR9O30sc2NhbGU6ZnVuY3Rpb24ocyl7dmFyIHJlY3Q9bmV3IFJlY3QoKTt0aGlzLnNjYWxlRmFzdChyZWN0LHMpO3JldHVybiByZWN0O30sc2NhbGVTaXplOmZ1bmN0aW9uKHMpe3JldHVybiBSZWN0LmZyb21YWVdIKHRoaXMueCx0aGlzLnksdGhpcy53aWR0aCpzLHRoaXMuaGVpZ2h0KnMpO30sc2NhbGVGYXN0OmZ1bmN0aW9uKG91dCxzKXtvdXQueD10aGlzLngqcztvdXQueT10aGlzLnkqcztvdXQud2lkdGg9dGhpcy53aWR0aCpzO291dC5oZWlnaHQ9dGhpcy5oZWlnaHQqcztyZXR1cm4gb3V0O30sdHJhbnNsYXRlOmZ1bmN0aW9uKHYpe3ZhciByZWN0PW5ldyBSZWN0KCk7dGhpcy50cmFuc2xhdGVGYXN0KHJlY3Qsdik7cmV0dXJuIHJlY3Q7fSx0cmFuc2xhdGVGYXN0OmZ1bmN0aW9uKG91dCx2KXtvdXQueD10aGlzLngrdlswXTtvdXQueT10aGlzLngrdlsxXTtvdXQud2lkdGg9dGhpcy53aWR0aDtvdXQuaGVpZ2h0PXRoaXMuaGVpZ2h0O3JldHVybiBvdXQ7fSxhc1VWUmVjdEluc2lkZTpmdW5jdGlvbihjb250YWluaW5nUmVjdCl7dmFyIHJlY3Q9bmV3IFJlY3QoKTtyZWN0Lng9KHRoaXMueC1jb250YWluaW5nUmVjdC54KS9jb250YWluaW5nUmVjdC53aWR0aDtyZWN0Lnk9KHRoaXMueS1jb250YWluaW5nUmVjdC55KS9jb250YWluaW5nUmVjdC5oZWlnaHQ7cmVjdC53aWR0aD10aGlzLndpZHRoL2NvbnRhaW5pbmdSZWN0LndpZHRoO3JlY3QuaGVpZ2h0PXRoaXMuaGVpZ2h0L2NvbnRhaW5pbmdSZWN0LmhlaWdodDtyZXR1cm4gcmVjdDt9LGludGVyc2VjdHM6ZnVuY3Rpb24odGhhdCl7dmFyIG9rPXRydWU7b2smPXRoaXMueDx0aGF0LnJpZ2h0O29rJj10aGlzLnJpZ2h0PnRoYXQueDtvayY9dGhpcy55PHRoYXQuYm90dG9tO29rJj10aGlzLmJvdHRvbT50aGF0Lnk7cmV0dXJuIG9rO30sZXF1YWxUbzpmdW5jdGlvbihyZWN0KXtyZXR1cm4gcmVjdCYmKHRoaXMueD09PXJlY3QueCkmJih0aGlzLnk9PT1yZWN0LnkpJiYodGhpcy53aWR0aD09PXJlY3Qud2lkdGgpJiYodGhpcy5oZWlnaHQ9PT1yZWN0LmhlaWdodCk7fX07cmV0dXJue1JlY3Q6UmVjdH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGluc3RhbnRpYXRlVGVtcGxhdGUoc2VsZWN0b3IsZG9jKXtkb2M9ZG9jfHxkb2N1bWVudDt2YXIgZWw9ZG9jLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO2lmKCFlbCkKIHRocm93IG5ldyBFcnJvcignRWxlbWVudCBub3QgZm91bmQnKTtyZXR1cm4gZWwuY3JlYXRlSW5zdGFuY2UoKTt9Ci1mdW5jdGlvbiB0cmFjZWRGdW5jdGlvbihmbixuYW1lLG9wdF90aGlzKXtmdW5jdGlvbiBGKCl7Y29uc29sZS50aW1lKG5hbWUpO3RyeXtmbi5hcHBseShvcHRfdGhpcyxhcmd1bWVudHMpO31maW5hbGx5e2NvbnNvbGUudGltZUVuZChuYW1lKTt9fQotcmV0dXJuIEY7fQotZnVuY3Rpb24gbm9ybWFsaXplRXhjZXB0aW9uKGUpe2lmKHR5cGVvZihlKT09J3N0cmluZycpe3JldHVybnttZXNzYWdlOmUsc3RhY2s6Wyc8dW5rbm93bj4nXX07fQotcmV0dXJue21lc3NhZ2U6ZS5tZXNzYWdlLHN0YWNrOmUuc3RhY2s/ZS5zdGFjazpbJzx1bmtub3duPiddfTt9Ci1mdW5jdGlvbiBzdGFja1RyYWNlKCl7dmFyIHN0YWNrPW5ldyBFcnJvcigpLnN0YWNrKycnO3N0YWNrPXN0YWNrLnNwbGl0KCdcbicpO3JldHVybiBzdGFjay5zbGljZSgyKTt9CiBmdW5jdGlvbiB3aW5kb3dSZWN0Rm9yRWxlbWVudChlbGVtZW50KXt2YXIgcG9zaXRpb249W2VsZW1lbnQub2Zmc2V0TGVmdCxlbGVtZW50Lm9mZnNldFRvcF07dmFyIHNpemU9W2VsZW1lbnQub2Zmc2V0V2lkdGgsZWxlbWVudC5vZmZzZXRIZWlnaHRdO3ZhciBub2RlPWVsZW1lbnQub2Zmc2V0UGFyZW50O3doaWxlKG5vZGUpe3Bvc2l0aW9uWzBdKz1ub2RlLm9mZnNldExlZnQ7cG9zaXRpb25bMV0rPW5vZGUub2Zmc2V0VG9wO25vZGU9bm9kZS5vZmZzZXRQYXJlbnQ7fQogcmV0dXJuIHRyLmIuUmVjdC5mcm9tWFlXSChwb3NpdGlvblswXSxwb3NpdGlvblsxXSxzaXplWzBdLHNpemVbMV0pO30KIGZ1bmN0aW9uIHNjcm9sbEludG9WaWV3SWZOZWVkZWQoZWwpe3ZhciBwcj1lbC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBjcj1lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihjci50b3A8cHIudG9wKXtlbC5zY3JvbGxJbnRvVmlldyh0cnVlKTt9ZWxzZSBpZihjci5ib3R0b20+cHIuYm90dG9tKXtlbC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7fX0KLWZ1bmN0aW9uIGdldFVzaW5nUGF0aChwYXRoLGZyb21fZGljdCl7dmFyIHBhcnRzPXBhdGguc3BsaXQoJy4nKTt2YXIgY3VyPWZyb21fZGljdDtmb3IodmFyIHBhcnQ7cGFydHMubGVuZ3RoJiYocGFydD1wYXJ0cy5zaGlmdCgpKTspe2lmKCFwYXJ0cy5sZW5ndGgpe3JldHVybiBjdXJbcGFydF07fWVsc2UgaWYocGFydCBpbiBjdXIpe2N1cj1jdXJbcGFydF07fWVsc2V7cmV0dXJuIHVuZGVmaW5lZDt9fQotcmV0dXJuIHVuZGVmaW5lZDt9Ci1yZXR1cm57YWRkU2luZ2xldG9uR2V0dGVyOmFkZFNpbmdsZXRvbkdldHRlcix0cmFjZWRGdW5jdGlvbjp0cmFjZWRGdW5jdGlvbixub3JtYWxpemVFeGNlcHRpb246bm9ybWFsaXplRXhjZXB0aW9uLGluc3RhbnRpYXRlVGVtcGxhdGU6aW5zdGFudGlhdGVUZW1wbGF0ZSxzdGFja1RyYWNlOnN0YWNrVHJhY2Usd2luZG93UmVjdEZvckVsZW1lbnQ6d2luZG93UmVjdEZvckVsZW1lbnQsc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZDpzY3JvbGxJbnRvVmlld0lmTmVlZGVkLGdldFVzaW5nUGF0aDpnZXRVc2luZ1BhdGh9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBTZXR0aW5ncygpe3JldHVybiBTZXR0aW5nczt9O2RvY3VtZW50LmhlYWQuYWRkRXZlbnRMaXN0ZW5lcigndHItdW5pdHRlc3Qtd2lsbC1ydW4nLGZ1bmN0aW9uKCl7U2V0dGluZ3Muc2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2UoZ2xvYmFsLnNlc3Npb25TdG9yYWdlKTt9KTtmdW5jdGlvbiBTZXNzaW9uU2V0dGluZ3MoKXtyZXR1cm4gU2Vzc2lvblNldHRpbmdzO30KK3JldHVybntpbnN0YW50aWF0ZVRlbXBsYXRlOmluc3RhbnRpYXRlVGVtcGxhdGUsd2luZG93UmVjdEZvckVsZW1lbnQ6d2luZG93UmVjdEZvckVsZW1lbnQsc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZDpzY3JvbGxJbnRvVmlld0lmTmVlZGVkfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7aWYodHIuaXNIZWFkbGVzcykKK3JldHVybnt9O3ZhciBUSElTX0RPQz1kb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7dmFyIE92ZXJsYXk9dHIudWkuYi5kZWZpbmUoJ292ZXJsYXknKTtPdmVybGF5LnByb3RvdHlwZT17X19wcm90b19fOkhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbigpe3RoaXMuY2xhc3NMaXN0LmFkZCgnb3ZlcmxheScpO3RoaXMucGFyZW50RWxfPXRoaXMub3duZXJEb2N1bWVudC5ib2R5O3RoaXMudmlzaWJsZV89ZmFsc2U7dGhpcy51c2VyQ2FuQ2xvc2VfPXRydWU7dGhpcy5vbktleURvd25fPXRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpO3RoaXMub25DbGlja189dGhpcy5vbkNsaWNrXy5iaW5kKHRoaXMpO3RoaXMub25Gb2N1c0luXz10aGlzLm9uRm9jdXNJbl8uYmluZCh0aGlzKTt0aGlzLm9uRG9jdW1lbnRDbGlja189dGhpcy5vbkRvY3VtZW50Q2xpY2tfLmJpbmQodGhpcyk7dGhpcy5vbkNsb3NlXz10aGlzLm9uQ2xvc2VfLmJpbmQodGhpcyk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmxlLWNoYW5nZScsdHIudWkuYi5PdmVybGF5LnByb3RvdHlwZS5vblZpc2libGVDaGFuZ2VfLmJpbmQodGhpcyksdHJ1ZSk7dmFyIGNyZWF0ZVNoYWRvd1Jvb3Q9dGhpcy5jcmVhdGVTaGFkb3dSb290fHx0aGlzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Q7dGhpcy5zaGFkb3dfPWNyZWF0ZVNoYWRvd1Jvb3QuY2FsbCh0aGlzKTt0aGlzLnNoYWRvd18uYXBwZW5kQ2hpbGQodHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjb3ZlcmxheS10ZW1wbGF0ZScsVEhJU19ET0MpKTt0aGlzLmNsb3NlQnRuXz10aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcignY2xvc2UtYnV0dG9uJyk7dGhpcy5jbG9zZUJ0bl8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHRoaXMub25DbG9zZV8pO3RoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdvdmVybGF5LWZyYW1lJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHRoaXMub25DbGlja18pO3RoaXMub2JzZXJ2ZXJfPW5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKHRoaXMuZGlkQnV0dG9uQmFyTXV0YXRlXy5iaW5kKHRoaXMpKTt0aGlzLm9ic2VydmVyXy5vYnNlcnZlKHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJykse2NoaWxkTGlzdDp0cnVlfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsJ3RpdGxlJyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCd0aXRsZScpLnRleHRDb250ZW50O30sc2V0OmZ1bmN0aW9uKHRpdGxlKXt0aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcigndGl0bGUnKS50ZXh0Q29udGVudD10aXRsZTt9fSk7fSxzZXQgdXNlckNhbkNsb3NlKHVzZXJDYW5DbG9zZSl7dGhpcy51c2VyQ2FuQ2xvc2VfPXVzZXJDYW5DbG9zZTt0aGlzLmNsb3NlQnRuXy5zdHlsZS5kaXNwbGF5PXVzZXJDYW5DbG9zZT8nYmxvY2snOidub25lJzt9LGdldCBidXR0b25zKCl7cmV0dXJuIHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJyk7fSxnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLnZpc2libGVfO30sc2V0IHZpc2libGUobmV3VmFsdWUpe2lmKHRoaXMudmlzaWJsZV89PT1uZXdWYWx1ZSkKK3JldHVybjt0aGlzLnZpc2libGVfPW5ld1ZhbHVlO3ZhciBlPW5ldyB0ci5iLkV2ZW50KCd2aXNpYmxlLWNoYW5nZScpO3RoaXMuZGlzcGF0Y2hFdmVudChlKTt9LG9uVmlzaWJsZUNoYW5nZV86ZnVuY3Rpb24oKXt0aGlzLnZpc2libGVfP3RoaXMuc2hvd18oKTp0aGlzLmhpZGVfKCk7fSxzaG93XzpmdW5jdGlvbigpe3RoaXMucGFyZW50RWxfLmFwcGVuZENoaWxkKHRoaXMpO2lmKHRoaXMudXNlckNhbkNsb3NlXyl7dGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJyx0aGlzLm9uS2V5RG93bl8uYmluZCh0aGlzKSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsdGhpcy5vbkRvY3VtZW50Q2xpY2tfLmJpbmQodGhpcykpO30KK3RoaXMucGFyZW50RWxfLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLHRoaXMub25Gb2N1c0luXyk7dGhpcy50YWJJbmRleD0wO3ZhciBmb2N1c0VsPXVuZGVmaW5lZDt2YXIgZWxMaXN0PXRoaXMucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBpbnB1dCwgbGlzdCwgc2VsZWN0LCBhJyk7aWYoZWxMaXN0Lmxlbmd0aD4wKXtpZihlbExpc3RbMF09PT10aGlzLmNsb3NlQnRuXyl7aWYoZWxMaXN0Lmxlbmd0aD4xKQorZm9jdXNFbD1lbExpc3RbMV07fWVsc2V7Zm9jdXNFbD1lbExpc3RbMF07fX0KK2lmKGZvY3VzRWw9PT11bmRlZmluZWQpCitmb2N1c0VsPXRoaXM7Zm9jdXNFbC5mb2N1cygpO30saGlkZV86ZnVuY3Rpb24oKXt0aGlzLnBhcmVudEVsXy5yZW1vdmVDaGlsZCh0aGlzKTt0aGlzLnBhcmVudEVsXy5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJyx0aGlzLm9uRm9jdXNJbl8pO2lmKHRoaXMuY2xvc2VCdG5fKQordGhpcy5jbG9zZUJ0bl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm9uQ2xvc2VfKTtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJyx0aGlzLm9uS2V5RG93bl8pO2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJyx0aGlzLm9uRG9jdW1lbnRDbGlja18pO30sb25DbG9zZV86ZnVuY3Rpb24oZSl7dGhpcy52aXNpYmxlPWZhbHNlO2lmKChlLnR5cGUhPSdrZXlkb3duJyl8fChlLnR5cGU9PT0na2V5ZG93bicmJmUua2V5Q29kZT09PTI3KSkKK2Uuc3RvcFByb3BhZ2F0aW9uKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO3RyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCdjbG9zZWNsaWNrJyk7fSxvbkZvY3VzSW5fOmZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09dGhpcykKK3JldHVybjt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuZm9jdXMoKTt9LDApO2UucHJldmVudERlZmF1bHQoKTtlLnN0b3BQcm9wYWdhdGlvbigpO30sZGlkQnV0dG9uQmFyTXV0YXRlXzpmdW5jdGlvbihlKXt2YXIgaGFzQnV0dG9ucz10aGlzLmJ1dHRvbnMuY2hpbGRyZW4ubGVuZ3RoPjA7aWYoaGFzQnV0dG9ucykKK3RoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJykuc3R5bGUuZGlzcGxheT11bmRlZmluZWQ7ZWxzZQordGhpcy5zaGFkb3dfLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi1iYXInKS5zdHlsZS5kaXNwbGF5PSdub25lJzt9LG9uS2V5RG93bl86ZnVuY3Rpb24oZSl7aWYoZS5rZXlDb2RlPT09OSYmZS5zaGlmdEtleSYmZS50YXJnZXQ9PT10aGlzKXtlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuO30KK2lmKGUua2V5Q29kZSE9PTI3KQorcmV0dXJuO3RoaXMub25DbG9zZV8oZSk7fSxvbkNsaWNrXzpmdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpO30sb25Eb2N1bWVudENsaWNrXzpmdW5jdGlvbihlKXtpZighdGhpcy51c2VyQ2FuQ2xvc2VfKQorcmV0dXJuO3RoaXMub25DbG9zZV8oZSk7fX07T3ZlcmxheS5zaG93RXJyb3I9ZnVuY3Rpb24obXNnLG9wdF9lcnIpe3ZhciBvPW5ldyBPdmVybGF5KCk7by50aXRsZT0nRXJyb3InO28udGV4dENvbnRlbnQ9bXNnO2lmKG9wdF9lcnIpe3ZhciBlPXRyLmIubm9ybWFsaXplRXhjZXB0aW9uKG9wdF9lcnIpO3ZhciBzdGFja0Rpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTtzdGFja0Rpdi50ZXh0Q29udGVudD1lLnN0YWNrO3N0YWNrRGl2LnN0eWxlLnBhZGRpbmdMZWZ0PSc4cHgnO3N0YWNrRGl2LnN0eWxlLm1hcmdpbj0wO28uYXBwZW5kQ2hpbGQoc3RhY2tEaXYpO30KK3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO2IudGV4dENvbnRlbnQ9J09LJztiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe28udmlzaWJsZT1mYWxzZTt9KTtvLmJ1dHRvbnMuYXBwZW5kQ2hpbGQoYik7by52aXNpYmxlPXRydWU7cmV0dXJuIG87fQorcmV0dXJue092ZXJsYXk6T3ZlcmxheX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0cicsZnVuY3Rpb24oKXt2YXIgSW1wb3J0ZXI9dHIuaW1wb3J0ZXIuSW1wb3J0ZXI7dmFyIFByb2Nlc3M9dHIubW9kZWwuUHJvY2Vzczt2YXIgRGV2aWNlPXRyLm1vZGVsLkRldmljZTt2YXIgS2VybmVsPXRyLm1vZGVsLktlcm5lbDt2YXIgR2xvYmFsTWVtb3J5RHVtcD10ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wO3ZhciBHbG9iYWxJbnN0YW50RXZlbnQ9dHIubW9kZWwuR2xvYmFsSW5zdGFudEV2ZW50O3ZhciBGbG93RXZlbnQ9dHIubW9kZWwuRmxvd0V2ZW50O3ZhciBBbGVydD10ci5tb2RlbC5BbGVydDt2YXIgSW50ZXJhY3Rpb25SZWNvcmQ9dHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQ7dmFyIFNhbXBsZT10ci5tb2RlbC5TYW1wbGU7ZnVuY3Rpb24gSW1wb3J0T3B0aW9ucygpe3RoaXMuc2hpZnRXb3JsZFRvWmVybz10cnVlO3RoaXMucHJ1bmVFbXB0eUNvbnRhaW5lcnM9dHJ1ZTt0aGlzLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2s9dW5kZWZpbmVkO3ZhciBhdWRpdG9yVHlwZXM9dHIuYy5BdWRpdG9yLmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTt0aGlzLmF1ZGl0b3JDb25zdHJ1Y3RvcnM9YXVkaXRvclR5cGVzLm1hcChmdW5jdGlvbih0eXBlSW5mbyl7cmV0dXJuIHR5cGVJbmZvLmNvbnN0cnVjdG9yO30pO30KK0ltcG9ydE9wdGlvbnMuZnJvbUFyZ3VtZW50cz1mdW5jdGlvbihhcmdzLGFyZ3NTdGFydEluZGV4KXt2YXIgYXJnMD1hcmdzW2FyZ3NTdGFydEluZGV4KzBdO2lmKHR5cGVvZiBhcmcwPT09J29iamVjdCcpe2lmKCEoYXJnMCBpbnN0YW5jZW9mIEltcG9ydE9wdGlvbnMpKQordGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkJyk7cmV0dXJuIGFyZzA7fQordmFyIG9wdGlvbnM9bmV3IEltcG9ydE9wdGlvbnMoKTtpZihhcmdzW2FyZ3NTdGFydEluZGV4XSE9PXVuZGVmaW5lZCkKK29wdGlvbnMuc2hpZnRXb3JsZFRvWmVybz1hcmdzW2FyZ3NTdGFydEluZGV4XTtpZihhcmdzW2FyZ3NTdGFydEluZGV4KzFdIT09dW5kZWZpbmVkKQorb3B0aW9ucy5wcnVuZUVtcHR5Q29udGFpbmVycz1hcmdzW2FyZ3NTdGFydEluZGV4KzFdO2lmKGFyZ3NbYXJnc1N0YXJ0SW5kZXgrMl0pCitvcHRpb25zLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2s9YXJnc1thcmdzU3RhcnRJbmRleCsyXTtyZXR1cm4gb3B0aW9uczt9CitmdW5jdGlvbiBDbG9ja1N5bmNSZWNvcmQobmFtZSx0cyxhcmdzKXt0aGlzLm5hbWU9bmFtZTt0aGlzLnRzPXRzO3RoaXMuYXJncz1hcmdzO30KK2Z1bmN0aW9uIE1vZGVsKG9wdF9ldmVudERhdGEsb3B0X29wdGlvbnMpe3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7dHIuYi5FdmVudFRhcmdldC5kZWNvcmF0ZSh0aGlzKTt0aGlzLmZhdmljb25IdWU9J2JsdWUnO3RoaXMuZGV2aWNlPW5ldyBEZXZpY2UodGhpcyk7dGhpcy5rZXJuZWw9bmV3IEtlcm5lbCh0aGlzKTt0aGlzLnByb2Nlc3Nlcz17fTt0aGlzLm1ldGFkYXRhPVtdO3RoaXMuY2F0ZWdvcmllcz1bXTt0aGlzLmluc3RhbnRFdmVudHM9W107dGhpcy5mbG93RXZlbnRzPVtdO3RoaXMuY2xvY2tTeW5jUmVjb3Jkcz1bXTt0aGlzLmludHJpbnNpY1RpbWVVbml0Xz11bmRlZmluZWQ7dGhpcy5zdGFja0ZyYW1lcz17fTt0aGlzLnNhbXBsZXM9W107dGhpcy5hbGVydHM9W107dGhpcy5pbnRlcmFjdGlvbl9yZWNvcmRzPVtdO3RoaXMuZmxvd0ludGVydmFsVHJlZT1uZXcgdHIuYi5JbnRlcnZhbFRyZWUoZnVuY3Rpb24oZil7cmV0dXJuIGYuc3RhcnQ7fSxmdW5jdGlvbihmKXtyZXR1cm4gZi5lbmQ7fSk7dGhpcy5nbG9iYWxNZW1vcnlEdW1wcz1bXTt0aGlzLmFubm90YXRpb25zQnlHdWlkXz17fTt0aGlzLmltcG9ydFdhcm5pbmdzXz1bXTt0aGlzLnJlcG9ydGVkSW1wb3J0V2FybmluZ3NfPXt9O3RoaXMubW9kZWxJbmRpY2VzPXVuZGVmaW5lZDt2YXIgb3B0aW9ucz1JbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMoYXJndW1lbnRzLDEpO2lmKG9wdF9ldmVudERhdGEpCit0aGlzLmltcG9ydFRyYWNlcyhbb3B0X2V2ZW50RGF0YV0sb3B0aW9ucyk7fQorTW9kZWwucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxHbG9iYWxNZW1vcnlEdW1wKSkKK3RoaXMuZ2xvYmFsTWVtb3J5RHVtcHMuZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsR2xvYmFsSW5zdGFudEV2ZW50KSkKK3RoaXMuaW5zdGFudEV2ZW50cy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxGbG93RXZlbnQpKQordGhpcy5mbG93RXZlbnRzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLEFsZXJ0KSkKK3RoaXMuYWxlcnRzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLEludGVyYWN0aW9uUmVjb3JkKSkKK3RoaXMuaW50ZXJhY3Rpb25fcmVjb3Jkcy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxTYW1wbGUpKQordGhpcy5zYW1wbGVzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO30saXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXtjYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMuZGV2aWNlKTtjYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMua2VybmVsKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKK2NhbGxiYWNrLmNhbGwob3B0X3RoaXMsdGhpcy5wcm9jZXNzZXNbcGlkXSk7fSxpdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzOmZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLmtlcm5lbC5pdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzKGNhbGxiYWNrKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKK3RoaXMucHJvY2Vzc2VzW3BpZF0uaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0cyhjYWxsYmFjayk7fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXt0aGlzLmJvdW5kcy5yZXNldCgpO3ZhciBib3VuZHM9dGhpcy5ib3VuZHM7dGhpcy5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMoZnVuY3Rpb24oZWMpe2VjLnVwZGF0ZUJvdW5kcygpO2JvdW5kcy5hZGRSYW5nZShlYy5ib3VuZHMpO30pO3RoaXMuaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcihmdW5jdGlvbihldmVudENvbnN0cnVjdG9yKXtyZXR1cm4gdHJ1ZTt9LGZ1bmN0aW9uKGV2ZW50KXtldmVudC5hZGRCb3VuZHNUb1JhbmdlKGJvdW5kcyk7fSk7fSxzaGlmdFdvcmxkVG9aZXJvOmZ1bmN0aW9uKCl7dmFyIHNoaWZ0QW1vdW50PS10aGlzLmJvdW5kcy5taW47dGhpcy5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMoZnVuY3Rpb24oZWMpe2VjLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoc2hpZnRBbW91bnQpO30pO3RoaXMuaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcihmdW5jdGlvbihldmVudENvbnN0cnVjdG9yKXtyZXR1cm4gdHJ1ZTt9LGZ1bmN0aW9uKGV2ZW50KXtldmVudC5zdGFydCs9c2hpZnRBbW91bnQ7fSk7dGhpcy51cGRhdGVCb3VuZHMoKTt9LGdldCBudW1Qcm9jZXNzZXMoKXt2YXIgbj0wO2Zvcih2YXIgcCBpbiB0aGlzLnByb2Nlc3NlcykKK24rKztyZXR1cm4gbjt9LGdldFByb2Nlc3M6ZnVuY3Rpb24ocGlkKXtyZXR1cm4gdGhpcy5wcm9jZXNzZXNbcGlkXTt9LGdldE9yQ3JlYXRlUHJvY2VzczpmdW5jdGlvbihwaWQpe2lmKCF0aGlzLnByb2Nlc3Nlc1twaWRdKQordGhpcy5wcm9jZXNzZXNbcGlkXT1uZXcgUHJvY2Vzcyh0aGlzLHBpZCk7cmV0dXJuIHRoaXMucHJvY2Vzc2VzW3BpZF07fSxwdXNoSW5zdGFudEV2ZW50OmZ1bmN0aW9uKGluc3RhbnRFdmVudCl7dGhpcy5pbnN0YW50RXZlbnRzLnB1c2goaW5zdGFudEV2ZW50KTt9LGFkZFN0YWNrRnJhbWU6ZnVuY3Rpb24oc3RhY2tGcmFtZSl7aWYodGhpcy5zdGFja0ZyYW1lc1tzdGFja0ZyYW1lLmlkXSkKK3Rocm93IG5ldyBFcnJvcignU3RhY2sgZnJhbWUgYWxyZWFkeSBleGlzdHMnKTt0aGlzLnN0YWNrRnJhbWVzW3N0YWNrRnJhbWUuaWRdPXN0YWNrRnJhbWU7cmV0dXJuIHN0YWNrRnJhbWU7fSxhZGRJbnRlcmFjdGlvblJlY29yZDpmdW5jdGlvbihpcil7dGhpcy5pbnRlcmFjdGlvbl9yZWNvcmRzLnB1c2goaXIpO3JldHVybiBpcjt9LGdldENsb2NrU3luY1JlY29yZHNOYW1lZDpmdW5jdGlvbihuYW1lKXtyZXR1cm4gdGhpcy5jbG9ja1N5bmNSZWNvcmRzLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT09bmFtZTt9KTt9LHVwZGF0ZUNhdGVnb3JpZXNfOmZ1bmN0aW9uKCl7dmFyIGNhdGVnb3JpZXNEaWN0PXt9O3RoaXMuZGV2aWNlLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpO3RoaXMua2VybmVsLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQordGhpcy5wcm9jZXNzZXNbcGlkXS5hZGRDYXRlZ29yaWVzVG9EaWN0KGNhdGVnb3JpZXNEaWN0KTt0aGlzLmNhdGVnb3JpZXM9W107Zm9yKHZhciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzRGljdCkKK2lmKGNhdGVnb3J5IT0nJykKK3RoaXMuY2F0ZWdvcmllcy5wdXNoKGNhdGVnb3J5KTt9LGdldEFsbFRocmVhZHM6ZnVuY3Rpb24oKXt2YXIgdGhyZWFkcz1bXTtmb3IodmFyIHRpZCBpbiB0aGlzLmtlcm5lbC50aHJlYWRzKXt0aHJlYWRzLnB1c2gocHJvY2Vzcy50aHJlYWRzW3RpZF0pO30KK2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKXt2YXIgcHJvY2Vzcz10aGlzLnByb2Nlc3Nlc1twaWRdO2Zvcih2YXIgdGlkIGluIHByb2Nlc3MudGhyZWFkcyl7dGhyZWFkcy5wdXNoKHByb2Nlc3MudGhyZWFkc1t0aWRdKTt9fQorcmV0dXJuIHRocmVhZHM7fSxnZXRBbGxQcm9jZXNzZXM6ZnVuY3Rpb24oKXt2YXIgcHJvY2Vzc2VzPVtdO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQorcHJvY2Vzc2VzLnB1c2godGhpcy5wcm9jZXNzZXNbcGlkXSk7cmV0dXJuIHByb2Nlc3Nlczt9LGdldEFsbENvdW50ZXJzOmZ1bmN0aW9uKCl7dmFyIGNvdW50ZXJzPVtdO2NvdW50ZXJzLnB1c2guYXBwbHkoY291bnRlcnMsdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHRoaXMuZGV2aWNlLmNvdW50ZXJzKSk7Y291bnRlcnMucHVzaC5hcHBseShjb3VudGVycyx0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5rZXJuZWwuY291bnRlcnMpKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3Nlcyl7dmFyIHByb2Nlc3M9dGhpcy5wcm9jZXNzZXNbcGlkXTtmb3IodmFyIHRpZCBpbiBwcm9jZXNzLmNvdW50ZXJzKXtjb3VudGVycy5wdXNoKHByb2Nlc3MuY291bnRlcnNbdGlkXSk7fX0KK3JldHVybiBjb3VudGVyczt9LGdldEFubm90YXRpb25CeUdVSUQ6ZnVuY3Rpb24oZ3VpZCl7cmV0dXJuIHRoaXMuYW5ub3RhdGlvbnNCeUd1aWRfW2d1aWRdO30sYWRkQW5ub3RhdGlvbjpmdW5jdGlvbihhbm5vdGF0aW9uKXtpZighYW5ub3RhdGlvbi5ndWlkKQordGhyb3cgbmV3IEVycm9yKCdBbm5vdGF0aW9uIHdpdGggdW5kZWZpbmVkIGd1aWQgZ2l2ZW4nKTt0aGlzLmFubm90YXRpb25zQnlHdWlkX1thbm5vdGF0aW9uLmd1aWRdPWFubm90YXRpb247dHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsJ2Fubm90YXRpb25DaGFuZ2UnKTt9LHJlbW92ZUFubm90YXRpb246ZnVuY3Rpb24oYW5ub3RhdGlvbil7dGhpcy5hbm5vdGF0aW9uc0J5R3VpZF9bYW5ub3RhdGlvbi5ndWlkXS5vblJlbW92ZSgpO2RlbGV0ZSB0aGlzLmFubm90YXRpb25zQnlHdWlkX1thbm5vdGF0aW9uLmd1aWRdO3RyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCdhbm5vdGF0aW9uQ2hhbmdlJyk7fSxnZXRBbGxBbm5vdGF0aW9uczpmdW5jdGlvbigpe3JldHVybiB0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5hbm5vdGF0aW9uc0J5R3VpZF8pO30sZmluZEFsbFRocmVhZHNOYW1lZDpmdW5jdGlvbihuYW1lKXt2YXIgbmFtZWRUaHJlYWRzPVtdO25hbWVkVGhyZWFkcy5wdXNoLmFwcGx5KG5hbWVkVGhyZWFkcyx0aGlzLmtlcm5lbC5maW5kQWxsVGhyZWFkc05hbWVkKG5hbWUpKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3Nlcyl7bmFtZWRUaHJlYWRzLnB1c2guYXBwbHkobmFtZWRUaHJlYWRzLHRoaXMucHJvY2Vzc2VzW3BpZF0uZmluZEFsbFRocmVhZHNOYW1lZChuYW1lKSk7fQorcmV0dXJuIG5hbWVkVGhyZWFkczt9LGNyZWF0ZUltcG9ydGVyXzpmdW5jdGlvbihldmVudERhdGEpe3ZhciBpbXBvcnRlckNvbnN0cnVjdG9yPXRyLmltcG9ydGVyLkltcG9ydGVyLmZpbmRJbXBvcnRlckZvcihldmVudERhdGEpO2lmKCFpbXBvcnRlckNvbnN0cnVjdG9yKQordGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBhbiBpbXBvcnRlciBmb3IgdGhlIHByb3ZpZGVkIGV2ZW50RGF0YS4nKTt2YXIgaW1wb3J0ZXI9bmV3IGltcG9ydGVyQ29uc3RydWN0b3IodGhpcyxldmVudERhdGEpO3JldHVybiBpbXBvcnRlcjt9LGltcG9ydFRyYWNlczpmdW5jdGlvbih0cmFjZXMsb3B0X29wdGlvbnMpe3ZhciBwcm9ncmVzc01ldGVyPXt1cGRhdGU6ZnVuY3Rpb24obXNnKXt9fTt2YXIgb3B0aW9ucz1JbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMoYXJndW1lbnRzLDEpO3ZhciB0YXNrPXRoaXMuY3JlYXRlSW1wb3J0VHJhY2VzVGFzayhwcm9ncmVzc01ldGVyLHRyYWNlcyxvcHRpb25zKTt0ci5iLlRhc2suUnVuU3luY2hyb25vdXNseSh0YXNrKTt9LGltcG9ydFRyYWNlc1dpdGhQcm9ncmVzc0RpYWxvZzpmdW5jdGlvbih0cmFjZXMsb3B0X29wdGlvbnMpe2lmKHRyLmlzSGVhZGxlc3MpCit0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgdGhpcyBtZXRob2QgaW4gaGVhZGxlc3MgbW9kZSEnKTt2YXIgb3B0aW9ucz1JbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMoYXJndW1lbnRzLDEpO3ZhciBvdmVybGF5PXRyLnVpLmIuT3ZlcmxheSgpO292ZXJsYXkudGl0bGU9J0ltcG9ydGluZy4uLic7b3ZlcmxheS51c2VyQ2FuQ2xvc2U9ZmFsc2U7b3ZlcmxheS5tc2dFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtvdmVybGF5LmFwcGVuZENoaWxkKG92ZXJsYXkubXNnRWwpO292ZXJsYXkubXNnRWwuc3R5bGUubWFyZ2luPScyMHB4JztvdmVybGF5LnVwZGF0ZT1mdW5jdGlvbihtc2cpe3RoaXMubXNnRWwudGV4dENvbnRlbnQ9bXNnO30KK292ZXJsYXkudmlzaWJsZT10cnVlO3ZhciB0YXNrPXRoaXMuY3JlYXRlSW1wb3J0VHJhY2VzVGFzayhvdmVybGF5LHRyYWNlcyxvcHRpb25zKTt2YXIgcHJvbWlzZT10ci5iLlRhc2suUnVuV2hlbklkbGUodGFzayk7cHJvbWlzZS50aGVuKGZ1bmN0aW9uKCl7b3ZlcmxheS52aXNpYmxlPWZhbHNlO30sZnVuY3Rpb24oZXJyKXtvdmVybGF5LnZpc2libGU9ZmFsc2U7fSk7cmV0dXJuIHByb21pc2U7fSxoYXNFdmVudERhdGFEZWNvZGVyXzpmdW5jdGlvbihpbXBvcnRlcnMpe2lmKGltcG9ydGVycy5sZW5ndGg9PT0wKQorcmV0dXJuIGZhbHNlO2Zvcih2YXIgaT0wO2k8aW1wb3J0ZXJzLmxlbmd0aDsrK2kpe2lmKCFpbXBvcnRlcnNbaV0uaXNUcmFjZURhdGFDb250YWluZXIoKSkKK3JldHVybiB0cnVlO30KK3JldHVybiBmYWxzZTt9LGNyZWF0ZUltcG9ydFRyYWNlc1Rhc2s6ZnVuY3Rpb24ocHJvZ3Jlc3NNZXRlcix0cmFjZXMsb3B0X29wdGlvbnMpe3ZhciBvcHRpb25zPUltcG9ydE9wdGlvbnMuZnJvbUFyZ3VtZW50cyhhcmd1bWVudHMsMik7aWYodGhpcy5pbXBvcnRpbmdfKQordGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IGltcG9ydGluZy4nKTt0aGlzLmltcG9ydGluZ189dHJ1ZTt2YXIgaW1wb3J0VGFzaz1uZXcgdHIuYi5UYXNrKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0kgd2lsbCBub3cgaW1wb3J0IHlvdXIgdHJhY2VzIGZvciB5b3UuLi4nKTt9LHRoaXMpO3ZhciBsYXN0VGFzaz1pbXBvcnRUYXNrO3ZhciBpbXBvcnRlcnM9W107bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXt0cmFjZXM9dHJhY2VzLnNsaWNlKDApO3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdDcmVhdGluZyBpbXBvcnRlcnMuLi4nKTtmb3IodmFyIGk9MDtpPHRyYWNlcy5sZW5ndGg7KytpKQoraW1wb3J0ZXJzLnB1c2godGhpcy5jcmVhdGVJbXBvcnRlcl8odHJhY2VzW2ldKSk7Zm9yKHZhciBpPTA7aTxpbXBvcnRlcnMubGVuZ3RoO2krKyl7dmFyIHN1YnRyYWNlcz1pbXBvcnRlcnNbaV0uZXh0cmFjdFN1YnRyYWNlcygpO2Zvcih2YXIgaj0wO2o8c3VidHJhY2VzLmxlbmd0aDtqKyspe3RyeXt0cmFjZXMucHVzaChzdWJ0cmFjZXNbal0pO2ltcG9ydGVycy5wdXNoKHRoaXMuY3JlYXRlSW1wb3J0ZXJfKHN1YnRyYWNlc1tqXSkpO31jYXRjaChlcnJvcil7Y29uc29sZS53YXJuKGVycm9yLm5hbWUrJzogJytlcnJvci5tZXNzYWdlKTtjb250aW51ZTt9fX0KK2lmKHRyYWNlcy5sZW5ndGgmJiF0aGlzLmhhc0V2ZW50RGF0YURlY29kZXJfKGltcG9ydGVycykpe3Rocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgYW4gaW1wb3J0ZXIgZm9yICcrJ3RoZSBwcm92aWRlZCBldmVudERhdGEuJyk7fQoraW1wb3J0ZXJzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5pbXBvcnRQcmlvcml0eS15LmltcG9ydFByaW9yaXR5O30pO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24odGFzayl7aW1wb3J0ZXJzLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZXIsaW5kZXgpe3Rhc2suc3ViVGFzayhmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdJbXBvcnRpbmcgJysoaW5kZXgrMSkrJyBvZiAnK2ltcG9ydGVycy5sZW5ndGgpO2ltcG9ydGVyLmltcG9ydEV2ZW50cygpO30sdGhpcyk7fSx0aGlzKTt9LHRoaXMpO2lmKG9wdGlvbnMuY3VzdG9taXplTW9kZWxDYWxsYmFjayl7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24odGFzayl7b3B0aW9ucy5jdXN0b21pemVNb2RlbENhbGxiYWNrKHRoaXMpO30sdGhpcyk7fQorbGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24odGFzayl7aW1wb3J0ZXJzLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZXIsaW5kZXgpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdJbXBvcnRpbmcgc2FtcGxlIGRhdGEgJysoaW5kZXgrMSkrJy8nK2ltcG9ydGVycy5sZW5ndGgpO2ltcG9ydGVyLmltcG9ydFNhbXBsZURhdGEoKTt9LHRoaXMpO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQXV0b2Nsb3Npbmcgb3BlbiBzbGljZXMuLi4nKTt0aGlzLnNhbXBsZXMuc29ydChmdW5jdGlvbih4LHkpe3JldHVybiB4LnN0YXJ0LXkuc3RhcnQ7fSk7dGhpcy51cGRhdGVCb3VuZHMoKTt0aGlzLmtlcm5lbC5hdXRvQ2xvc2VPcGVuU2xpY2VzKHRoaXMuYm91bmRzLm1heCk7Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCit0aGlzLnByb2Nlc3Nlc1twaWRdLmF1dG9DbG9zZU9wZW5TbGljZXModGhpcy5ib3VuZHMubWF4KTt0aGlzLmtlcm5lbC5jcmVhdGVTdWJTbGljZXMoKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKK3RoaXMucHJvY2Vzc2VzW3BpZF0uY3JlYXRlU3ViU2xpY2VzKCk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbih0YXNrKXtpbXBvcnRlcnMuZm9yRWFjaChmdW5jdGlvbihpbXBvcnRlcixpbmRleCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0ZpbmFsaXppbmcgaW1wb3J0ICcrKGluZGV4KzEpKycvJytpbXBvcnRlcnMubGVuZ3RoKTtpbXBvcnRlci5maW5hbGl6ZUltcG9ydCgpO30sdGhpcyk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdJbml0aWFsaXppbmcgb2JqZWN0cyAoc3RlcCAxLzIpLi4uJyk7Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCit0aGlzLnByb2Nlc3Nlc1twaWRdLnByZUluaXRpYWxpemVPYmplY3RzKCk7fSx0aGlzKTtpZihvcHRpb25zLnBydW5lRW1wdHlDb250YWluZXJzKXtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdQcnVuaW5nIGVtcHR5IGNvbnRhaW5lcnMuLi4nKTt0aGlzLmtlcm5lbC5wcnVuZUVtcHR5Q29udGFpbmVycygpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKXt0aGlzLnByb2Nlc3Nlc1twaWRdLnBydW5lRW1wdHlDb250YWluZXJzKCk7fX0sdGhpcyk7fQorbGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnTWVyZ2luZyBrZXJuZWwgd2l0aCB1c2VybGFuZC4uLicpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQordGhpcy5wcm9jZXNzZXNbcGlkXS5tZXJnZUtlcm5lbFdpdGhVc2VybGFuZCgpO30sdGhpcyk7dmFyIGF1ZGl0b3JzPVtdO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0FkZGluZyBhcmJpdHJhcnkgZGF0YSB0byBtb2RlbC4uLicpO2F1ZGl0b3JzPW9wdGlvbnMuYXVkaXRvckNvbnN0cnVjdG9ycy5tYXAoZnVuY3Rpb24oYXVkaXRvckNvbnN0cnVjdG9yKXtyZXR1cm4gbmV3IGF1ZGl0b3JDb25zdHJ1Y3Rvcih0aGlzKTt9LHRoaXMpO2F1ZGl0b3JzLmZvckVhY2goZnVuY3Rpb24oYXVkaXRvcil7YXVkaXRvci5ydW5Bbm5vdGF0ZSgpO30pO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQ29tcHV0aW5nIGZpbmFsIHdvcmxkIGJvdW5kcy4uLicpO3RoaXMudXBkYXRlQm91bmRzKCk7dGhpcy51cGRhdGVDYXRlZ29yaWVzXygpO2lmKG9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybykKK3RoaXMuc2hpZnRXb3JsZFRvWmVybygpO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQnVpbGRpbmcgZmxvdyBldmVudCBtYXAuLi4nKTtmb3IodmFyIGk9MDtpPHRoaXMuZmxvd0V2ZW50cy5sZW5ndGg7KytpKXt2YXIgZmxvd0V2ZW50PXRoaXMuZmxvd0V2ZW50c1tpXTt0aGlzLmZsb3dJbnRlcnZhbFRyZWUuaW5zZXJ0KGZsb3dFdmVudCk7fQordGhpcy5mbG93SW50ZXJ2YWxUcmVlLnVwZGF0ZUhpZ2hWYWx1ZXMoKTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0pvaW5pbmcgb2JqZWN0IHJlZnMuLi4nKTtmb3IodmFyIGk9MDtpPGltcG9ydGVycy5sZW5ndGg7aSsrKQoraW1wb3J0ZXJzW2ldLmpvaW5SZWZzKCk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdDbGVhbmluZyB1cCB1bmRlbGV0ZWQgb2JqZWN0cy4uLicpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQordGhpcy5wcm9jZXNzZXNbcGlkXS5hdXRvRGVsZXRlT2JqZWN0cyh0aGlzLmJvdW5kcy5tYXgpO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnU29ydGluZyBtZW1vcnkgZHVtcHMuLi4nKTt0aGlzLmdsb2JhbE1lbW9yeUR1bXBzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5zdGFydC15LnN0YXJ0O30pO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQordGhpcy5wcm9jZXNzZXNbcGlkXS5zb3J0TWVtb3J5RHVtcHMoKTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0NhbGN1bGF0aW5nIG1lbW9yeSBkdW1wIGdyYXBoIGF0dHJpYnV0ZXMuLi4nKTt0aGlzLmdsb2JhbE1lbW9yeUR1bXBzLmZvckVhY2goZnVuY3Rpb24oZHVtcCl7ZHVtcC5jYWxjdWxhdGVHcmFwaEF0dHJpYnV0ZXMoKTt9KTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0luaXRpYWxpemluZyBvYmplY3RzIChzdGVwIDIvMikuLi4nKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKK3RoaXMucHJvY2Vzc2VzW3BpZF0uaW5pdGlhbGl6ZU9iamVjdHMoKTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0J1aWxkaW5nIGZsb3cgZXZlbnQgaW5kaWNlcy4uLicpO3RoaXMubW9kZWxJbmRpY2VzPW5ldyB0ci5tb2RlbC5Nb2RlbEluZGljZXModGhpcyk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdSdW5uaW5nIGF1ZGl0b3JzLi4uJyk7YXVkaXRvcnMuZm9yRWFjaChmdW5jdGlvbihhdWRpdG9yKXthdWRpdG9yLnJ1bkF1ZGl0KCk7fSk7dGhpcy5pbnRlcmFjdGlvbl9yZWNvcmRzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5zdGFydC15LnN0YXJ0O30pO3RoaXMuYWxlcnRzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5zdGFydC15LnN0YXJ0O30pO3RoaXMudXBkYXRlQm91bmRzKCk7fSx0aGlzKTtsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3RoaXMuaW1wb3J0aW5nXz1mYWxzZTt9LHRoaXMpO3JldHVybiBpbXBvcnRUYXNrO30saW1wb3J0V2FybmluZzpmdW5jdGlvbihkYXRhKXt0aGlzLmltcG9ydFdhcm5pbmdzXy5wdXNoKGRhdGEpO2lmKHRoaXMucmVwb3J0ZWRJbXBvcnRXYXJuaW5nc19bZGF0YS50eXBlXT09PXRydWUpCityZXR1cm47Y29uc29sZS53YXJuKGRhdGEubWVzc2FnZSk7dGhpcy5yZXBvcnRlZEltcG9ydFdhcm5pbmdzX1tkYXRhLnR5cGVdPXRydWU7fSxnZXQgaW50cmluc2ljVGltZVVuaXQoKXtpZih0aGlzLmludHJpbnNpY1RpbWVVbml0Xz09PXVuZGVmaW5lZCkKK3JldHVybiB0ci5iLnVuaXRzLlRpbWUuc3VwcG9ydGVkVW5pdHMubXM7cmV0dXJuIHRoaXMuaW50cmluc2ljVGltZVVuaXRfO30sc2V0IGludHJpbnNpY1RpbWVVbml0KHZhbHVlKXtpZih0aGlzLmludHJpbnNpY1RpbWVVbml0Xz09PXZhbHVlKQorcmV0dXJuO2lmKHRoaXMuaW50cmluc2ljVGltZVVuaXRfIT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdJbnRyaW5zaWMgdGltZSB1bml0IGFscmVhZHkgc2V0Jyk7dGhpcy5pbnRyaW5zaWNUaW1lVW5pdF89dmFsdWU7fSxnZXQgaGFzSW1wb3J0V2FybmluZ3MoKXtyZXR1cm4odGhpcy5pbXBvcnRXYXJuaW5nc18ubGVuZ3RoPjApO30sZ2V0IGltcG9ydFdhcm5pbmdzKCl7cmV0dXJuIHRoaXMuaW1wb3J0V2FybmluZ3NfO319O3JldHVybntJbXBvcnRPcHRpb25zOkltcG9ydE9wdGlvbnMsQ2xvY2tTeW5jUmVjb3JkOkNsb2NrU3luY1JlY29yZCxNb2RlbDpNb2RlbH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFNldHRpbmdzKCl7cmV0dXJuIFNldHRpbmdzO307aWYodHIuYi51bml0dGVzdCYmdHIuYi51bml0dGVzdC5UZXN0UnVubmVyKXt0ci5iLnVuaXR0ZXN0LlRlc3RSdW5uZXIuYWRkRXZlbnRMaXN0ZW5lcigndHItdW5pdHRlc3Qtd2lsbC1ydW4nLGZ1bmN0aW9uKCl7aWYodHIuaXNIZWFkbGVzcykKK1NldHRpbmdzLnNldEFsdGVybmF0aXZlU3RvcmFnZUluc3RhbmNlKG5ldyBIZWFkbGVzc1N0b3JhZ2UoKSk7ZWxzZQorU2V0dGluZ3Muc2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2UoZ2xvYmFsLnNlc3Npb25TdG9yYWdlKTt9KTt9CitmdW5jdGlvbiBTZXNzaW9uU2V0dGluZ3MoKXtyZXR1cm4gU2Vzc2lvblNldHRpbmdzO30KIGZ1bmN0aW9uIEFkZFN0YXRpY1N0b3JhZ2VGdW5jdGlvbnNUb0NsYXNzXyhpbnB1dF9jbGFzcyxzdG9yYWdlKXtpbnB1dF9jbGFzcy5zdG9yYWdlXz1zdG9yYWdlO2lucHV0X2NsYXNzLmdldD1mdW5jdGlvbihrZXksb3B0X2RlZmF1bHQsb3B0X25hbWVzcGFjZSl7a2V5PWlucHV0X2NsYXNzLm5hbWVzcGFjZV8oa2V5LG9wdF9uYW1lc3BhY2UpO3ZhciByYXdWYWw9aW5wdXRfY2xhc3Muc3RvcmFnZV8uZ2V0SXRlbShrZXkpO2lmKHJhd1ZhbD09PW51bGx8fHJhd1ZhbD09PXVuZGVmaW5lZCkKLXJldHVybiBvcHRfZGVmYXVsdDt0cnl7cmV0dXJuIEpTT04ucGFyc2UocmF3VmFsKS52YWx1ZTt9Y2F0Y2goZSl7aW5wdXRfY2xhc3Muc3RvcmFnZV8ucmVtb3ZlSXRlbShpbnB1dF9jbGFzcy5uYW1lc3BhY2VfKGtleSxvcHRfbmFtZXNwYWNlKSk7cmV0dXJuIG9wdF9kZWZhdWx0O319O2lucHV0X2NsYXNzLnNldD1mdW5jdGlvbihrZXksdmFsdWUsb3B0X25hbWVzcGFjZSl7aWYodmFsdWU9PT11bmRlZmluZWQpCityZXR1cm4gb3B0X2RlZmF1bHQ7dHJ5e3JldHVybiBKU09OLnBhcnNlKHJhd1ZhbCkudmFsdWU7fWNhdGNoKGUpe2lucHV0X2NsYXNzLnN0b3JhZ2VfLnJlbW92ZUl0ZW0oa2V5KTtyZXR1cm4gb3B0X2RlZmF1bHQ7fX07aW5wdXRfY2xhc3Muc2V0PWZ1bmN0aW9uKGtleSx2YWx1ZSxvcHRfbmFtZXNwYWNlKXtpZih2YWx1ZT09PXVuZGVmaW5lZCkKIHRocm93IG5ldyBFcnJvcignU2V0dGluZ3Muc2V0OiB2YWx1ZSBtdXN0IG5vdCBiZSB1bmRlZmluZWQnKTt2YXIgdj1KU09OLnN0cmluZ2lmeSh7dmFsdWU6dmFsdWV9KTtpbnB1dF9jbGFzcy5zdG9yYWdlXy5zZXRJdGVtKGlucHV0X2NsYXNzLm5hbWVzcGFjZV8oa2V5LG9wdF9uYW1lc3BhY2UpLHYpO307aW5wdXRfY2xhc3Mua2V5cz1mdW5jdGlvbihvcHRfbmFtZXNwYWNlKXt2YXIgcmVzdWx0PVtdO29wdF9uYW1lc3BhY2U9b3B0X25hbWVzcGFjZXx8Jyc7Zm9yKHZhciBpPTA7aTxpbnB1dF9jbGFzcy5zdG9yYWdlXy5sZW5ndGg7aSsrKXt2YXIga2V5PWlucHV0X2NsYXNzLnN0b3JhZ2VfLmtleShpKTtpZihpbnB1dF9jbGFzcy5pc25hbWVzcGFjZWRfKGtleSxvcHRfbmFtZXNwYWNlKSkKIHJlc3VsdC5wdXNoKGlucHV0X2NsYXNzLnVubmFtZXNwYWNlXyhrZXksb3B0X25hbWVzcGFjZSkpO30KLXJldHVybiByZXN1bHQ7fTtpbnB1dF9jbGFzcy5pc25hbWVzcGFjZWRfPWZ1bmN0aW9uKGtleSxvcHRfbmFtZXNwYWNlKXtyZXR1cm4ga2V5LmluZGV4T2YoaW5wdXRfY2xhc3Mubm9ybWFsaXplXyhvcHRfbmFtZXNwYWNlKSk9PTA7fTtpbnB1dF9jbGFzcy5uYW1lc3BhY2VfPWZ1bmN0aW9uKGtleSxvcHRfbmFtZXNwYWNlKXtyZXR1cm4gaW5wdXRfY2xhc3Mubm9ybWFsaXplXyhvcHRfbmFtZXNwYWNlKStrZXk7fTtpbnB1dF9jbGFzcy51bm5hbWVzcGFjZV89ZnVuY3Rpb24oa2V5LG9wdF9uYW1lc3BhY2Upe3JldHVybiBrZXkucmVwbGFjZShpbnB1dF9jbGFzcy5ub3JtYWxpemVfKG9wdF9uYW1lc3BhY2UpLCcnKTt9O2lucHV0X2NsYXNzLm5vcm1hbGl6ZV89ZnVuY3Rpb24ob3B0X25hbWVzcGFjZSl7cmV0dXJuIGlucHV0X2NsYXNzLk5BTUVTUEFDRSsob3B0X25hbWVzcGFjZT9vcHRfbmFtZXNwYWNlKycuJzonJyk7fTtpbnB1dF9jbGFzcy5zZXRBbHRlcm5hdGl2ZVN0b3JhZ2VJbnN0YW5jZT1mdW5jdGlvbihpbnN0YW5jZSl7aW5wdXRfY2xhc3Muc3RvcmFnZV89aW5zdGFuY2U7fTtpbnB1dF9jbGFzcy5nZXRBbHRlcm5hdGl2ZVN0b3JhZ2VJbnN0YW5jZT1mdW5jdGlvbigpe2lmKGlucHV0X2NsYXNzLnN0b3JhZ2VfPT09bG9jYWxTdG9yYWdlKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gaW5wdXRfY2xhc3Muc3RvcmFnZV87fTtpbnB1dF9jbGFzcy5OQU1FU1BBQ0U9J3RyYWNlLXZpZXdlcic7fTtBZGRTdGF0aWNTdG9yYWdlRnVuY3Rpb25zVG9DbGFzc18oU2V0dGluZ3MsbG9jYWxTdG9yYWdlKTtBZGRTdGF0aWNTdG9yYWdlRnVuY3Rpb25zVG9DbGFzc18oU2Vzc2lvblNldHRpbmdzLHNlc3Npb25TdG9yYWdlKTtyZXR1cm57U2V0dGluZ3M6U2V0dGluZ3MsU2Vzc2lvblNldHRpbmdzOlNlc3Npb25TZXR0aW5nc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVpJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGNyZWF0ZVNwYW4ob3B0X2RpY3Rpb25hcnkpe3ZhciBzcGFuRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO2lmKG9wdF9kaWN0aW9uYXJ5KXtpZihvcHRfZGljdGlvbmFyeS5jbGFzc05hbWUpCityZXR1cm4gcmVzdWx0O307aW5wdXRfY2xhc3MuaXNuYW1lc3BhY2VkXz1mdW5jdGlvbihrZXksb3B0X25hbWVzcGFjZSl7cmV0dXJuIGtleS5pbmRleE9mKGlucHV0X2NsYXNzLm5vcm1hbGl6ZV8ob3B0X25hbWVzcGFjZSkpPT0wO307aW5wdXRfY2xhc3MubmFtZXNwYWNlXz1mdW5jdGlvbihrZXksb3B0X25hbWVzcGFjZSl7cmV0dXJuIGlucHV0X2NsYXNzLm5vcm1hbGl6ZV8ob3B0X25hbWVzcGFjZSkra2V5O307aW5wdXRfY2xhc3MudW5uYW1lc3BhY2VfPWZ1bmN0aW9uKGtleSxvcHRfbmFtZXNwYWNlKXtyZXR1cm4ga2V5LnJlcGxhY2UoaW5wdXRfY2xhc3Mubm9ybWFsaXplXyhvcHRfbmFtZXNwYWNlKSwnJyk7fTtpbnB1dF9jbGFzcy5ub3JtYWxpemVfPWZ1bmN0aW9uKG9wdF9uYW1lc3BhY2Upe3JldHVybiBpbnB1dF9jbGFzcy5OQU1FU1BBQ0UrKG9wdF9uYW1lc3BhY2U/b3B0X25hbWVzcGFjZSsnLic6JycpO307aW5wdXRfY2xhc3Muc2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2U9ZnVuY3Rpb24oaW5zdGFuY2Upe2lucHV0X2NsYXNzLnN0b3JhZ2VfPWluc3RhbmNlO307aW5wdXRfY2xhc3MuZ2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2U9ZnVuY3Rpb24oKXtpZighdHIuaXNIZWFkbGVzcyYmaW5wdXRfY2xhc3Muc3RvcmFnZV89PT1sb2NhbFN0b3JhZ2UpCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiBpbnB1dF9jbGFzcy5zdG9yYWdlXzt9O2lucHV0X2NsYXNzLk5BTUVTUEFDRT0ndHJhY2Utdmlld2VyJzt9O2Z1bmN0aW9uIEhlYWRsZXNzU3RvcmFnZSgpe3RoaXMubGVuZ3RoPTA7dGhpcy5oYXNJdGVtXz17fTt0aGlzLml0ZW1zXz17fTt0aGlzLml0ZW1zQXNBcnJheV89dW5kZWZpbmVkO30KK0hlYWRsZXNzU3RvcmFnZS5wcm90b3R5cGU9e2tleTpmdW5jdGlvbihpbmRleCl7cmV0dXJuIHRoaXMuaXRlbXNBc0FycmF5W2luZGV4XTt9LGdldCBpdGVtc0FzQXJyYXkoKXtpZih0aGlzLml0ZW1zQXNBcnJheV8hPT11bmRlZmluZWQpCityZXR1cm4gdGhpcy5pdGVtc0FzQXJyYXlfO3ZhciBpdGVtc0FzQXJyYXk9W107Zm9yKHZhciBrIGluIHRoaXMuaXRlbXNfKQoraXRlbXNBc0FycmF5LnB1c2goayk7dGhpcy5pdGVtc0FzQXJyYXlfPWl0ZW1zQXNBcnJheTtyZXR1cm4gdGhpcy5pdGVtc0FzQXJyYXlfO30sZ2V0SXRlbTpmdW5jdGlvbihrZXkpe2lmKCF0aGlzLmhhc0l0ZW1fW2tleV0pCityZXR1cm4gbnVsbDtyZXR1cm4gdGhpcy5pdGVtc19ba2V5XTt9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oa2V5KXtpZighdGhpcy5oYXNJdGVtX1trZXldKQorcmV0dXJuO3ZhciB2YWx1ZT10aGlzLml0ZW1zX1trZXldO2RlbGV0ZSB0aGlzLmhhc0l0ZW1fW2tleV07ZGVsZXRlIHRoaXMuaXRlbXNfW2tleV07dGhpcy5sZW5ndGgtLTt0aGlzLml0ZW1zQXNBcnJheV89dW5kZWZpbmVkO3JldHVybiB2YWx1ZTt9LHNldEl0ZW06ZnVuY3Rpb24oa2V5LHZhbHVlKXtpZih0aGlzLmhhc0l0ZW1fW2tleV0pe3RoaXMuaXRlbXNfW2tleV09dmFsdWU7cmV0dXJuO30KK3RoaXMuaXRlbXNfW2tleV09dmFsdWU7dGhpcy5oYXNJdGVtX1trZXldPXRydWU7dGhpcy5sZW5ndGgrKzt0aGlzLml0ZW1zQXNBcnJheV89dW5kZWZpbmVkO3JldHVybiB2YWx1ZTt9fTtpZih0ci5pc0hlYWRsZXNzKXtBZGRTdGF0aWNTdG9yYWdlRnVuY3Rpb25zVG9DbGFzc18oU2V0dGluZ3MsbmV3IEhlYWRsZXNzU3RvcmFnZSgpKTtBZGRTdGF0aWNTdG9yYWdlRnVuY3Rpb25zVG9DbGFzc18oU2Vzc2lvblNldHRpbmdzLG5ldyBIZWFkbGVzc1N0b3JhZ2UoKSk7fWVsc2V7QWRkU3RhdGljU3RvcmFnZUZ1bmN0aW9uc1RvQ2xhc3NfKFNldHRpbmdzLGxvY2FsU3RvcmFnZSk7QWRkU3RhdGljU3RvcmFnZUZ1bmN0aW9uc1RvQ2xhc3NfKFNlc3Npb25TZXR0aW5ncyxzZXNzaW9uU3RvcmFnZSk7fQorcmV0dXJue1NldHRpbmdzOlNldHRpbmdzLFNlc3Npb25TZXR0aW5nczpTZXNzaW9uU2V0dGluZ3N9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYicsZnVuY3Rpb24oKXt2YXIgRXZlbnRTZXQ9dHIubW9kZWwuRXZlbnRTZXQ7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO2Z1bmN0aW9uIEJydXNoaW5nU3RhdGUoKXt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMuc2VsZWN0aW9uXz1uZXcgRXZlbnRTZXQoKTt0aGlzLmZpbmRNYXRjaGVzXz1uZXcgRXZlbnRTZXQoKTt0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfPW5ldyBFdmVudFNldCgpO3RoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c189bmV3IEV2ZW50U2V0KCk7dGhpcy5hcHBsaWVkVG9Nb2RlbF89dW5kZWZpbmVkO3RoaXMudmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXNfPXt9O30KK0JydXNoaW5nU3RhdGUucHJvdG90eXBlPXtnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdGhhdD1uZXcgQnJ1c2hpbmdTdGF0ZSgpO3RoYXQuc2VsZWN0aW9uXz10aGlzLnNlbGVjdGlvbl87dGhhdC5maW5kTWF0Y2hlc189dGhpcy5maW5kTWF0Y2hlc187dGhhdC5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXz10aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfO3RoYXQuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c189dGhpcy5hbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzXzt0aGF0LnZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGVzXz10aGlzLnZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGVzXztyZXR1cm4gdGhhdDt9LGVxdWFsczpmdW5jdGlvbih0aGF0KXtpZighdGhpcy5zZWxlY3Rpb25fLmVxdWFscyh0aGF0LnNlbGVjdGlvbl8pKQorcmV0dXJuIGZhbHNlO2lmKCF0aGlzLmZpbmRNYXRjaGVzXy5lcXVhbHModGhhdC5maW5kTWF0Y2hlc18pKQorcmV0dXJuIGZhbHNlO2lmKCF0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfLmVxdWFscyh0aGF0LmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfKSl7cmV0dXJuIGZhbHNlO30KK2lmKCF0aGlzLmFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHNfLmVxdWFscyh0aGF0LmFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHNfKSl7cmV0dXJuIGZhbHNlO30KK3JldHVybiB0cnVlO30sZ2V0IHNlbGVjdGlvbk9mSW50ZXJlc3QoKXtpZih0aGlzLnNlbGVjdGlvbl8ubGVuZ3RoKQorcmV0dXJuIHRoaXMuc2VsZWN0aW9uXztpZih0aGlzLmhpZ2hsaWdodF8ubGVuZ3RoKQorcmV0dXJuIHRoaXMuaGlnaGxpZ2h0XztpZih0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfLmxlbmd0aCkKK3JldHVybiB0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfO2lmKHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18ubGVuZ3RoKQorcmV0dXJuIHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c187cmV0dXJuIHRoaXMuc2VsZWN0aW9uXzt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHRoaXMuYXBwbGllZFRvTW9kZWxfKQordGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbXV0YXRlIHRoaXMgc3RhdGUgcmlnaHQgbm93Jyk7aWYoc2VsZWN0aW9uPT09dW5kZWZpbmVkKQorc2VsZWN0aW9uPW5ldyBFdmVudFNldCgpO3RoaXMuc2VsZWN0aW9uXz1zZWxlY3Rpb247fSxnZXQgZmluZE1hdGNoZXMoKXtyZXR1cm4gdGhpcy5maW5kTWF0Y2hlc187fSxzZXQgZmluZE1hdGNoZXMoZmluZE1hdGNoZXMpe2lmKHRoaXMuYXBwbGllZFRvTW9kZWxfKQordGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbXV0YXRlIHRoaXMgc3RhdGUgcmlnaHQgbm93Jyk7aWYoZmluZE1hdGNoZXM9PT11bmRlZmluZWQpCitmaW5kTWF0Y2hlcz1uZXcgRXZlbnRTZXQoKTt0aGlzLmZpbmRNYXRjaGVzXz1maW5kTWF0Y2hlczt9LGdldCBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKCl7cmV0dXJuIHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c187fSxzZXQgYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50cyhhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKXtpZih0aGlzLmFwcGxpZWRUb01vZGVsXykKK3Rocm93IG5ldyBFcnJvcignQ2Fubm90IG11dGF0ZSB0aGlzIHN0YXRlIHJpZ2h0IG5vdycpO2lmKGFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHM9PT11bmRlZmluZWQpCithbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzPW5ldyBFdmVudFNldCgpO3RoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c189YW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50czt9LGdldCBhbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzKCl7cmV0dXJuIHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c187fSxzZXQgYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50cyhhbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzKXtpZih0aGlzLmFwcGxpZWRUb01vZGVsXykKK3Rocm93IG5ldyBFcnJvcignQ2Fubm90IG11dGF0ZSB0aGlzIHN0YXRlIHJpZ2h0IG5vdycpO2lmKGFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHM9PT11bmRlZmluZWQpCithbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzPW5ldyBFdmVudFNldCgpO3RoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c189YW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50czt9LGdldCBpc0FwcGxpZWRUb01vZGVsKCl7cmV0dXJuIHRoaXMuYXBwbGllZFRvTW9kZWxfIT09dW5kZWZpbmVkO30sZ2V0IGhhc0hpZ2hsaWdodF8oKXtyZXR1cm4gdGhpcy5maW5kTWF0Y2hlc18ubGVuZ3RoPjB8fHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18ubGVuZ3RoPjB8fHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18ubGVuZ3RoPjA7fSxnZXQgdmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXMoKXtyZXR1cm4gdGhpcy52aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlc187fSxzZXQgdmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXModmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXMpe3RoaXMudmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXNfPXZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGVzO30sYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGU6ZnVuY3Rpb24obW9kZWwpe3RoaXMuYXBwbGllZFRvTW9kZWxfPW1vZGVsO2lmKCF0aGlzLmhhc0hpZ2hsaWdodF8pe3RoaXMuc2VsZWN0aW9uXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Uuc2VsZWN0aW9uU3RhdGU9U2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7fSk7cmV0dXJuO30KK21vZGVsLml0ZXJhdGVBbGxFdmVudHMoZnVuY3Rpb24oZSl7dmFyIHNlbGVjdGlvblN0YXRlO2lmKHRoaXMuc2VsZWN0aW9uXy5jb250YWlucyhlKSl7c2VsZWN0aW9uU3RhdGU9U2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7fWVsc2UgaWYodGhpcy5maW5kTWF0Y2hlc18uY29udGFpbnMoZSl8fHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18uY29udGFpbnMoZSl8fHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18uY29udGFpbnMoZSkpe3NlbGVjdGlvblN0YXRlPVNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEO31lbHNle3NlbGVjdGlvblN0YXRlPVNlbGVjdGlvblN0YXRlLkRJTU1FRDt9CitlLnNlbGVjdGlvblN0YXRlPXNlbGVjdGlvblN0YXRlO30uYmluZCh0aGlzKSk7fSx0cmFuc2Zlck1vZGVsT3duZXJzaGlwVG9DbG9uZTpmdW5jdGlvbih0aGF0KXtpZighdGhpcy5hcHBsaWVkVG9Nb2RlbF8pCit0aHJvdyBuZXcgRXJyb3IoJ05vdCBhcHBsaWVkJyk7dGhhdC5hcHBsaWVkVG9Nb2RlbF89dGhpcy5hcHBsaWVkVG9Nb2RlbF87dGhpcy5hcHBsaWVkVG9Nb2RlbF89dW5kZWZpbmVkO30sdW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuYXBwbGllZFRvTW9kZWxfKQordGhyb3cgbmV3IEVycm9yKCdOb3QgYXBwbGllZCcpO3ZhciBtb2RlbD10aGlzLmFwcGxpZWRUb01vZGVsXzt0aGlzLmFwcGxpZWRUb01vZGVsXz11bmRlZmluZWQ7aWYoIXRoaXMuaGFzSGlnaGxpZ2h0Xyl7dGhpcy5zZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5zZWxlY3Rpb25TdGF0ZT1TZWxlY3Rpb25TdGF0ZS5OT05FO30pO3JldHVybjt9Cittb2RlbC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGUpe2Uuc2VsZWN0aW9uU3RhdGU9U2VsZWN0aW9uU3RhdGUuTk9ORTt9KTt9fTtyZXR1cm57QnJ1c2hpbmdTdGF0ZTpCcnVzaGluZ1N0YXRlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQW5pbWF0aW9uKCl7fQorQW5pbWF0aW9uLnByb3RvdHlwZT17Y2FuVGFrZU92ZXJGb3I6ZnVuY3Rpb24oZXhpc3RpbmdBbmltYXRpb24pe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSx0YWtlT3ZlckZvcjpmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbixuZXdTdGFydFRpbWVzdGFtcCx0YXJnZXQpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxzdGFydDpmdW5jdGlvbih0aW1lc3RhbXAsdGFyZ2V0KXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sZGlkU3RvcEVhcmx5OmZ1bmN0aW9uKHRpbWVzdGFtcCx0YXJnZXQsd2lsbEJlVGFrZW5PdmVyQnlBbm90aGVyQW5pbWF0aW9uKXt9LHRpY2s6ZnVuY3Rpb24odGltZXN0YW1wLHRhcmdldCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9fTtyZXR1cm57QW5pbWF0aW9uOkFuaW1hdGlvbn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEFuaW1hdGlvbkNvbnRyb2xsZXIoKXt0ci5iLkV2ZW50VGFyZ2V0LmNhbGwodGhpcyk7dGhpcy50YXJnZXRfPXVuZGVmaW5lZDt0aGlzLmFjdGl2ZUFuaW1hdGlvbl89dW5kZWZpbmVkO3RoaXMudGlja1NjaGVkdWxlZF89ZmFsc2U7fQorQW5pbWF0aW9uQ29udHJvbGxlci5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5iLkV2ZW50VGFyZ2V0LnByb3RvdHlwZSxnZXQgdGFyZ2V0KCl7cmV0dXJuIHRoaXMudGFyZ2V0Xzt9LHNldCB0YXJnZXQodGFyZ2V0KXtpZih0aGlzLmFjdGl2ZUFuaW1hdGlvbl8pCit0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjaGFuZ2UgdGFyZ2V0IHdoaWxlIGFuaW1hdGlvbiBpcyBydW5uaW5nLicpO2lmKHRhcmdldC5jbG9uZUFuaW1hdGlvblN0YXRlPT09dW5kZWZpbmVkfHx0eXBlb2YgdGFyZ2V0LmNsb25lQW5pbWF0aW9uU3RhdGUhPT0nZnVuY3Rpb24nKQordGhyb3cgbmV3IEVycm9yKCd0YXJnZXQgbXVzdCBoYXZlIGEgY2xvbmVBbmltYXRpb25TdGF0ZSBmdW5jdGlvbicpO3RoaXMudGFyZ2V0Xz10YXJnZXQ7fSxnZXQgYWN0aXZlQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlQW5pbWF0aW9uXzt9LGdldCBoYXNBY3RpdmVBbmltYXRpb24oKXtyZXR1cm4hIXRoaXMuYWN0aXZlQW5pbWF0aW9uXzt9LHF1ZXVlQW5pbWF0aW9uOmZ1bmN0aW9uKGFuaW1hdGlvbixvcHRfbm93KXtpZih0aGlzLnRhcmdldF89PT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBxdWV1ZSBhbmltYXRpb25zIHdpdGhvdXQgYSB0YXJnZXQnKTt2YXIgbm93O2lmKG9wdF9ub3chPT11bmRlZmluZWQpCitub3c9b3B0X25vdztlbHNlCitub3c9d2luZG93LnBlcmZvcm1hbmNlLm5vdygpO2lmKHRoaXMuYWN0aXZlQW5pbWF0aW9uXyl7dmFyIGRvbmU9dGhpcy5hY3RpdmVBbmltYXRpb25fLnRpY2sobm93LHRoaXMudGFyZ2V0Xyk7aWYoZG9uZSkKK3RoaXMuYWN0aXZlQW5pbWF0aW9uXz11bmRlZmluZWQ7fQoraWYodGhpcy5hY3RpdmVBbmltYXRpb25fKXtpZihhbmltYXRpb24uY2FuVGFrZU92ZXJGb3IodGhpcy5hY3RpdmVBbmltYXRpb25fKSl7dGhpcy5hY3RpdmVBbmltYXRpb25fLmRpZFN0b3BFYXJseShub3csdGhpcy50YXJnZXRfLHRydWUpO2FuaW1hdGlvbi50YWtlT3ZlckZvcih0aGlzLmFjdGl2ZUFuaW1hdGlvbl8sbm93LHRoaXMudGFyZ2V0Xyk7fWVsc2V7dGhpcy5hY3RpdmVBbmltYXRpb25fLmRpZFN0b3BFYXJseShub3csdGhpcy50YXJnZXRfLGZhbHNlKTt9fQordGhpcy5hY3RpdmVBbmltYXRpb25fPWFuaW1hdGlvbjt0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uc3RhcnQobm93LHRoaXMudGFyZ2V0Xyk7aWYodGhpcy50aWNrU2NoZWR1bGVkXykKK3JldHVybjt0aGlzLnRpY2tTY2hlZHVsZWRfPXRydWU7dHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy50aWNrQWN0aXZlQW5pbWF0aW9uXyx0aGlzKTt9LGNhbmNlbEFjdGl2ZUFuaW1hdGlvbjpmdW5jdGlvbihvcHRfbm93KXtpZighdGhpcy5hY3RpdmVBbmltYXRpb25fKQorcmV0dXJuO3ZhciBub3c7aWYob3B0X25vdyE9PXVuZGVmaW5lZCkKK25vdz1vcHRfbm93O2Vsc2UKK25vdz13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7dGhpcy5hY3RpdmVBbmltYXRpb25fLmRpZFN0b3BFYXJseShub3csdGhpcy50YXJnZXRfLGZhbHNlKTt0aGlzLmFjdGl2ZUFuaW1hdGlvbl89dW5kZWZpbmVkO30sdGlja0FjdGl2ZUFuaW1hdGlvbl86ZnVuY3Rpb24oZnJhbWVCZWdpblRpbWUpe3RoaXMudGlja1NjaGVkdWxlZF89ZmFsc2U7aWYoIXRoaXMuYWN0aXZlQW5pbWF0aW9uXykKK3JldHVybjtpZih0aGlzLnRhcmdldF89PT11bmRlZmluZWQpe3RoaXMuYWN0aXZlQW5pbWF0aW9uXy5kaWRTdG9wRWFybHkoZnJhbWVCZWdpblRpbWUsdGhpcy50YXJnZXRfLGZhbHNlKTtyZXR1cm47fQordmFyIG9sZFRhcmdldFN0YXRlPXRoaXMudGFyZ2V0Xy5jbG9uZUFuaW1hdGlvblN0YXRlKCk7dmFyIGRvbmU9dGhpcy5hY3RpdmVBbmltYXRpb25fLnRpY2soZnJhbWVCZWdpblRpbWUsdGhpcy50YXJnZXRfKTtpZihkb25lKQordGhpcy5hY3RpdmVBbmltYXRpb25fPXVuZGVmaW5lZDtpZih0aGlzLmFjdGl2ZUFuaW1hdGlvbl8pe3RoaXMudGlja1NjaGVkdWxlZF89dHJ1ZTt0ci5iLnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnRpY2tBY3RpdmVBbmltYXRpb25fLHRoaXMpO30KK2lmKG9sZFRhcmdldFN0YXRlKXt2YXIgZT1uZXcgdHIuYi5FdmVudCgnZGlkdGljaycpO2Uub2xkVGFyZ2V0U3RhdGU9b2xkVGFyZ2V0U3RhdGU7dGhpcy5kaXNwYXRjaEV2ZW50KGUsZmFsc2UsZmFsc2UpO319fTtyZXR1cm57QW5pbWF0aW9uQ29udHJvbGxlcjpBbmltYXRpb25Db250cm9sbGVyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gY3JlYXRlU3BhbihvcHRfZGljdGlvbmFyeSl7dmFyIHNwYW5FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7aWYob3B0X2RpY3Rpb25hcnkpe2lmKG9wdF9kaWN0aW9uYXJ5LmNsYXNzTmFtZSkKIHNwYW5FbC5jbGFzc05hbWU9b3B0X2RpY3Rpb25hcnkuY2xhc3NOYW1lO2lmKG9wdF9kaWN0aW9uYXJ5LnRleHRDb250ZW50KQogc3BhbkVsLnRleHRDb250ZW50PW9wdF9kaWN0aW9uYXJ5LnRleHRDb250ZW50O2lmKG9wdF9kaWN0aW9uYXJ5LnBhcmVudCkKIG9wdF9kaWN0aW9uYXJ5LnBhcmVudC5hcHBlbmRDaGlsZChzcGFuRWwpO2lmKG9wdF9kaWN0aW9uYXJ5LmJvbGQpCiBzcGFuRWwuc3R5bGUuZm9udFdlaWdodD0nYm9sZCc7aWYob3B0X2RpY3Rpb25hcnkubWFyZ2luTGVmdCkKIHNwYW5FbC5zdHlsZS5tYXJnaW5MZWZ0PW9wdF9kaWN0aW9uYXJ5Lm1hcmdpbkxlZnQ7aWYob3B0X2RpY3Rpb25hcnkubWFyZ2luUmlnaHQpCiBzcGFuRWwuc3R5bGUubWFyZ2luUmlnaHQ9b3B0X2RpY3Rpb25hcnkubWFyZ2luUmlnaHQ7aWYob3B0X2RpY3Rpb25hcnkuYmFja2dyb3VuZENvbG9yKQotc3BhbkVsLnN0eWxlLmJhY2tncm91bmRDb2xvcj1vcHRfZGljdGlvbmFyeS5iYWNrZ3JvdW5kQ29sb3I7fQorc3BhbkVsLnN0eWxlLmJhY2tncm91bmRDb2xvcj1vcHRfZGljdGlvbmFyeS5iYWNrZ3JvdW5kQ29sb3I7aWYob3B0X2RpY3Rpb25hcnkuY29sb3IpCitzcGFuRWwuc3R5bGUuY29sb3I9b3B0X2RpY3Rpb25hcnkuY29sb3I7fQogcmV0dXJuIHNwYW5FbDt9O2Z1bmN0aW9uIGNyZWF0ZURpdihvcHRfZGljdGlvbmFyeSl7dmFyIGRpdkVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2lmKG9wdF9kaWN0aW9uYXJ5KXtpZihvcHRfZGljdGlvbmFyeS5jbGFzc05hbWUpCiBkaXZFbC5jbGFzc05hbWU9b3B0X2RpY3Rpb25hcnkuY2xhc3NOYW1lO2lmKG9wdF9kaWN0aW9uYXJ5LnBhcmVudCkKIG9wdF9kaWN0aW9uYXJ5LnBhcmVudC5hcHBlbmRDaGlsZChkaXZFbCk7aWYob3B0X2RpY3Rpb25hcnkudGV4dENvbnRlbnQpCkBAIC0xNzg5LDEzMTAgKzI5NzIsMTMgQEAKIHJldHVybjtidXR0b25FbC5jaGVja2VkPSEhb3B0X2Jvb2w7b25DaGFuZ2UoKTt9KTtzcGFuRWwuX19kZWZpbmVHZXR0ZXJfXygnY2hlY2tlZCcsZnVuY3Rpb24oKXtyZXR1cm4gYnV0dG9uRWwuY2hlY2tlZDt9KTtyZXR1cm4gc3BhbkVsO30KIGZ1bmN0aW9uIGlzRWxlbWVudEF0dGFjaGVkVG9Eb2N1bWVudChlbCl7dmFyIGN1cj1lbDt3aGlsZShjdXIucGFyZW50Tm9kZSkKIGN1cj1jdXIucGFyZW50Tm9kZTtyZXR1cm4oY3VyPT09ZWwub3duZXJEb2N1bWVudHx8Y3VyLm5vZGVOYW1lPT09JyNkb2N1bWVudC1mcmFnbWVudCcpO30KLXJldHVybntjcmVhdGVTcGFuOmNyZWF0ZVNwYW4sY3JlYXRlRGl2OmNyZWF0ZURpdixjcmVhdGVTY29wZWRTdHlsZTpjcmVhdGVTY29wZWRTdHlsZSxjcmVhdGVTZWxlY3RvcjpjcmVhdGVTZWxlY3RvcixjcmVhdGVPcHRpb25Hcm91cDpjcmVhdGVPcHRpb25Hcm91cCxjcmVhdGVDaGVja0JveDpjcmVhdGVDaGVja0JveCxpc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQ6aXNFbGVtZW50QXR0YWNoZWRUb0RvY3VtZW50fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRXZlbnRUYXJnZXQoKXt9Ci1FdmVudFRhcmdldC5kZWNvcmF0ZT1mdW5jdGlvbih0YXJnZXQpe2Zvcih2YXIgayBpbiBFdmVudFRhcmdldC5wcm90b3R5cGUpe2lmKGs9PSdkZWNvcmF0ZScpCi1jb250aW51ZTt2YXIgdj1FdmVudFRhcmdldC5wcm90b3R5cGVba107aWYodHlwZW9mIHYhPT0nZnVuY3Rpb24nKQotY29udGludWU7dGFyZ2V0W2tdPXY7fX07RXZlbnRUYXJnZXQucHJvdG90eXBlPXthZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHR5cGUsaGFuZGxlcil7aWYoIXRoaXMubGlzdGVuZXJzXykKLXRoaXMubGlzdGVuZXJzXz1PYmplY3QuY3JlYXRlKG51bGwpO2lmKCEodHlwZSBpbiB0aGlzLmxpc3RlbmVyc18pKXt0aGlzLmxpc3RlbmVyc19bdHlwZV09W2hhbmRsZXJdO31lbHNle3ZhciBoYW5kbGVycz10aGlzLmxpc3RlbmVyc19bdHlwZV07aWYoaGFuZGxlcnMuaW5kZXhPZihoYW5kbGVyKTwwKQotaGFuZGxlcnMucHVzaChoYW5kbGVyKTt9fSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHR5cGUsaGFuZGxlcil7aWYoIXRoaXMubGlzdGVuZXJzXykKLXJldHVybjtpZih0eXBlIGluIHRoaXMubGlzdGVuZXJzXyl7dmFyIGhhbmRsZXJzPXRoaXMubGlzdGVuZXJzX1t0eXBlXTt2YXIgaW5kZXg9aGFuZGxlcnMuaW5kZXhPZihoYW5kbGVyKTtpZihpbmRleD49MCl7aWYoaGFuZGxlcnMubGVuZ3RoPT0xKQotZGVsZXRlIHRoaXMubGlzdGVuZXJzX1t0eXBlXTtlbHNlCi1oYW5kbGVycy5zcGxpY2UoaW5kZXgsMSk7fX19LGRpc3BhdGNoRXZlbnQ6ZnVuY3Rpb24oZXZlbnQpe2lmKCF0aGlzLmxpc3RlbmVyc18pCi1yZXR1cm4gdHJ1ZTt2YXIgc2VsZj10aGlzO2V2ZW50Ll9fZGVmaW5lR2V0dGVyX18oJ3RhcmdldCcsZnVuY3Rpb24oKXtyZXR1cm4gc2VsZjt9KTt2YXIgcmVhbFByZXZlbnREZWZhdWx0PWV2ZW50LnByZXZlbnREZWZhdWx0O2V2ZW50LnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7cmVhbFByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7dGhpcy5yYXdSZXR1cm5WYWx1ZT1mYWxzZTt9O3ZhciB0eXBlPWV2ZW50LnR5cGU7dmFyIHByZXZlbnRlZD0wO2lmKHR5cGUgaW4gdGhpcy5saXN0ZW5lcnNfKXt2YXIgaGFuZGxlcnM9dGhpcy5saXN0ZW5lcnNfW3R5cGVdLmNvbmNhdCgpO2Zvcih2YXIgaT0wLGhhbmRsZXI7aGFuZGxlcj1oYW5kbGVyc1tpXTtpKyspe2lmKGhhbmRsZXIuaGFuZGxlRXZlbnQpCi1wcmV2ZW50ZWR8PWhhbmRsZXIuaGFuZGxlRXZlbnQuY2FsbChoYW5kbGVyLGV2ZW50KT09PWZhbHNlO2Vsc2UKLXByZXZlbnRlZHw9aGFuZGxlci5jYWxsKHRoaXMsZXZlbnQpPT09ZmFsc2U7fX0KLXJldHVybiFwcmV2ZW50ZWQmJmV2ZW50LnJhd1JldHVyblZhbHVlO30saGFzRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0eXBlKXtyZXR1cm4gdGhpcy5saXN0ZW5lcnNfW3R5cGVdIT09dW5kZWZpbmVkO319O3ZhciBFdmVudFRhcmdldEhlbHBlcj17ZGVjb3JhdGU6ZnVuY3Rpb24odGFyZ2V0KXtmb3IodmFyIGsgaW4gRXZlbnRUYXJnZXRIZWxwZXIpe2lmKGs9PSdkZWNvcmF0ZScpCi1jb250aW51ZTt2YXIgdj1FdmVudFRhcmdldEhlbHBlcltrXTtpZih0eXBlb2YgdiE9PSdmdW5jdGlvbicpCi1jb250aW51ZTt0YXJnZXRba109djt9Ci10YXJnZXQubGlzdGVuZXJDb3VudHNfPXt9O30sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0eXBlLGxpc3RlbmVyLHVzZUNhcHR1cmUpe3RoaXMuX19wcm90b19fLmFkZEV2ZW50TGlzdGVuZXIuY2FsbCh0aGlzLHR5cGUsbGlzdGVuZXIsdXNlQ2FwdHVyZSk7aWYodGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV09PT11bmRlZmluZWQpCi10aGlzLmxpc3RlbmVyQ291bnRzX1t0eXBlXT0wO3RoaXMubGlzdGVuZXJDb3VudHNfW3R5cGVdKys7fSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHR5cGUsbGlzdGVuZXIsdXNlQ2FwdHVyZSl7dGhpcy5fX3Byb3RvX18ucmVtb3ZlRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsdHlwZSxsaXN0ZW5lcix1c2VDYXB0dXJlKTt0aGlzLmxpc3RlbmVyQ291bnRzX1t0eXBlXS0tO30saGFzRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0eXBlKXtyZXR1cm4gdGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV0+MDt9fTtyZXR1cm57RXZlbnRUYXJnZXQ6RXZlbnRUYXJnZXQsRXZlbnRUYXJnZXRIZWxwZXI6RXZlbnRUYXJnZXRIZWxwZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBFdmVudCh0eXBlLG9wdF9idWJibGVzLG9wdF9wcmV2ZW50YWJsZSl7dmFyIGU9dHIuZG9jLmNyZWF0ZUV2ZW50KCdFdmVudCcpO2UuaW5pdEV2ZW50KHR5cGUsISFvcHRfYnViYmxlcywhIW9wdF9wcmV2ZW50YWJsZSk7ZS5fX3Byb3RvX189Z2xvYmFsLkV2ZW50LnByb3RvdHlwZTtyZXR1cm4gZTt9O0V2ZW50LnByb3RvdHlwZT17X19wcm90b19fOmdsb2JhbC5FdmVudC5wcm90b3R5cGV9O2Z1bmN0aW9uIGRpc3BhdGNoU2ltcGxlRXZlbnQodGFyZ2V0LHR5cGUsb3B0X2J1YmJsZXMsb3B0X2NhbmNlbGFibGUpe3ZhciBlPW5ldyBFdmVudCh0eXBlLG9wdF9idWJibGVzLG9wdF9jYW5jZWxhYmxlKTtyZXR1cm4gdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZSk7fQotcmV0dXJue0V2ZW50OkV2ZW50LGRpc3BhdGNoU2ltcGxlRXZlbnQ6ZGlzcGF0Y2hTaW1wbGVFdmVudH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGRpc3BhdGNoUHJvcGVydHlDaGFuZ2UodGFyZ2V0LHByb3BlcnR5TmFtZSxuZXdWYWx1ZSxvbGRWYWx1ZSxvcHRfYnViYmxlcyxvcHRfY2FuY2VsYWJsZSl7dmFyIGU9bmV3IHRyLmIuRXZlbnQocHJvcGVydHlOYW1lKydDaGFuZ2UnLG9wdF9idWJibGVzLG9wdF9jYW5jZWxhYmxlKTtlLnByb3BlcnR5TmFtZT1wcm9wZXJ0eU5hbWU7ZS5uZXdWYWx1ZT1uZXdWYWx1ZTtlLm9sZFZhbHVlPW9sZFZhbHVlO3ZhciBlcnJvcjtlLnRocm93RXJyb3I9ZnVuY3Rpb24oZXJyKXtlcnJvcj1lcnI7fTt0YXJnZXQuZGlzcGF0Y2hFdmVudChlKTtpZihlcnJvcikKLXRocm93IGVycm9yO30KLWZ1bmN0aW9uIHNldFByb3BlcnR5QW5kRGlzcGF0Y2hDaGFuZ2Uob2JqLHByb3BlcnR5TmFtZSxuZXdWYWx1ZSl7dmFyIHByaXZhdGVOYW1lPXByb3BlcnR5TmFtZSsnXyc7dmFyIG9sZFZhbHVlPW9ialtwcm9wZXJ0eU5hbWVdO29ialtwcml2YXRlTmFtZV09bmV3VmFsdWU7aWYob2xkVmFsdWUhPT1uZXdWYWx1ZSkKLXRyLmIuZGlzcGF0Y2hQcm9wZXJ0eUNoYW5nZShvYmoscHJvcGVydHlOYW1lLG5ld1ZhbHVlLG9sZFZhbHVlLHRydWUsZmFsc2UpO30KLWZ1bmN0aW9uIGdldEF0dHJpYnV0ZU5hbWUoanNOYW1lKXtyZXR1cm4ganNOYW1lLnJlcGxhY2UoLyhbQS1aXSkvZywnLSQxJykudG9Mb3dlckNhc2UoKTt9Ci1mdW5jdGlvbiBnZXRQcml2YXRlTmFtZShuYW1lKXtyZXR1cm4gbmFtZSsnX3RyXyc7fQotdmFyIFByb3BlcnR5S2luZD17SlM6J2pzJyxBVFRSOidhdHRyJyxCT09MX0FUVFI6J2Jvb2xBdHRyJ307ZnVuY3Rpb24gZ2V0R2V0dGVyKG5hbWUsa2luZCl7c3dpdGNoKGtpbmQpe2Nhc2UgUHJvcGVydHlLaW5kLkpTOnZhciBwcml2YXRlTmFtZT1nZXRQcml2YXRlTmFtZShuYW1lKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1twcml2YXRlTmFtZV07fTtjYXNlIFByb3BlcnR5S2luZC5BVFRSOnZhciBhdHRyaWJ1dGVOYW1lPWdldEF0dHJpYnV0ZU5hbWUobmFtZSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO307Y2FzZSBQcm9wZXJ0eUtpbmQuQk9PTF9BVFRSOnZhciBhdHRyaWJ1dGVOYW1lPWdldEF0dHJpYnV0ZU5hbWUobmFtZSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO307fX0KLWZ1bmN0aW9uIGdldFNldHRlcihuYW1lLGtpbmQsb3B0X3NldEhvb2ssb3B0X2J1YmJsZXMsb3B0X2NhbmNlbGFibGUpe3N3aXRjaChraW5kKXtjYXNlIFByb3BlcnR5S2luZC5KUzp2YXIgcHJpdmF0ZU5hbWU9Z2V0UHJpdmF0ZU5hbWUobmFtZSk7cmV0dXJuIGZ1bmN0aW9uKHZhbHVlKXt2YXIgb2xkVmFsdWU9dGhpc1twcml2YXRlTmFtZV07aWYodmFsdWUhPT1vbGRWYWx1ZSl7dGhpc1twcml2YXRlTmFtZV09dmFsdWU7aWYob3B0X3NldEhvb2spCi1vcHRfc2V0SG9vay5jYWxsKHRoaXMsdmFsdWUsb2xkVmFsdWUpO2Rpc3BhdGNoUHJvcGVydHlDaGFuZ2UodGhpcyxuYW1lLHZhbHVlLG9sZFZhbHVlLG9wdF9idWJibGVzLG9wdF9jYW5jZWxhYmxlKTt9fTtjYXNlIFByb3BlcnR5S2luZC5BVFRSOnZhciBhdHRyaWJ1dGVOYW1lPWdldEF0dHJpYnV0ZU5hbWUobmFtZSk7cmV0dXJuIGZ1bmN0aW9uKHZhbHVlKXt2YXIgb2xkVmFsdWU9dGhpcy5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7aWYodmFsdWUhPT1vbGRWYWx1ZSl7aWYodmFsdWU9PXVuZGVmaW5lZCkKLXRoaXMucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO2Vsc2UKLXRoaXMuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsdmFsdWUpO2lmKG9wdF9zZXRIb29rKQotb3B0X3NldEhvb2suY2FsbCh0aGlzLHZhbHVlLG9sZFZhbHVlKTtkaXNwYXRjaFByb3BlcnR5Q2hhbmdlKHRoaXMsbmFtZSx2YWx1ZSxvbGRWYWx1ZSxvcHRfYnViYmxlcyxvcHRfY2FuY2VsYWJsZSk7fX07Y2FzZSBQcm9wZXJ0eUtpbmQuQk9PTF9BVFRSOnZhciBhdHRyaWJ1dGVOYW1lPWdldEF0dHJpYnV0ZU5hbWUobmFtZSk7cmV0dXJuIGZ1bmN0aW9uKHZhbHVlKXt2YXIgb2xkVmFsdWU9KHRoaXMuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpPT09bmFtZSk7aWYodmFsdWUhPT1vbGRWYWx1ZSl7aWYodmFsdWUpCi10aGlzLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLG5hbWUpO2Vsc2UKLXRoaXMucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO2lmKG9wdF9zZXRIb29rKQotb3B0X3NldEhvb2suY2FsbCh0aGlzLHZhbHVlLG9sZFZhbHVlKTtkaXNwYXRjaFByb3BlcnR5Q2hhbmdlKHRoaXMsbmFtZSx2YWx1ZSxvbGRWYWx1ZSxvcHRfYnViYmxlcyxvcHRfY2FuY2VsYWJsZSk7fX07fX0KLWZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KG9iaixuYW1lLG9wdF9raW5kLG9wdF9zZXRIb29rLG9wdF9idWJibGVzLG9wdF9jYW5jZWxhYmxlKXtjb25zb2xlLmVycm9yKCJEb24ndCB1c2UgdHIuYi5kZWZpbmVQcm9wZXJ0eSIpO2lmKHR5cGVvZiBvYmo9PSdmdW5jdGlvbicpCi1vYmo9b2JqLnByb3RvdHlwZTt2YXIga2luZD1vcHRfa2luZHx8UHJvcGVydHlLaW5kLkpTO2lmKCFvYmouX19sb29rdXBHZXR0ZXJfXyhuYW1lKSkKLW9iai5fX2RlZmluZUdldHRlcl9fKG5hbWUsZ2V0R2V0dGVyKG5hbWUsa2luZCkpO2lmKCFvYmouX19sb29rdXBTZXR0ZXJfXyhuYW1lKSkKLW9iai5fX2RlZmluZVNldHRlcl9fKG5hbWUsZ2V0U2V0dGVyKG5hbWUsa2luZCxvcHRfc2V0SG9vayxvcHRfYnViYmxlcyxvcHRfY2FuY2VsYWJsZSkpO30KLXJldHVybntQcm9wZXJ0eUtpbmQ6UHJvcGVydHlLaW5kLGRlZmluZVByb3BlcnR5OmRlZmluZVByb3BlcnR5LGRpc3BhdGNoUHJvcGVydHlDaGFuZ2U6ZGlzcGF0Y2hQcm9wZXJ0eUNoYW5nZSxzZXRQcm9wZXJ0eUFuZERpc3BhdGNoQ2hhbmdlOnNldFByb3BlcnR5QW5kRGlzcGF0Y2hDaGFuZ2V9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51aScsZnVuY3Rpb24oKXt2YXIgVEhJU19ET0M9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50O3ZhciBPdmVybGF5PXRyLmIudWkuZGVmaW5lKCdvdmVybGF5Jyk7T3ZlcmxheS5wcm90b3R5cGU9e19fcHJvdG9fXzpIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24oKXt0aGlzLmNsYXNzTGlzdC5hZGQoJ292ZXJsYXknKTt0aGlzLnBhcmVudEVsXz10aGlzLm93bmVyRG9jdW1lbnQuYm9keTt0aGlzLnZpc2libGVfPWZhbHNlO3RoaXMudXNlckNhbkNsb3NlXz10cnVlO3RoaXMub25LZXlEb3duXz10aGlzLm9uS2V5RG93bl8uYmluZCh0aGlzKTt0aGlzLm9uQ2xpY2tfPXRoaXMub25DbGlja18uYmluZCh0aGlzKTt0aGlzLm9uRm9jdXNJbl89dGhpcy5vbkZvY3VzSW5fLmJpbmQodGhpcyk7dGhpcy5vbkRvY3VtZW50Q2xpY2tfPXRoaXMub25Eb2N1bWVudENsaWNrXy5iaW5kKHRoaXMpO3RoaXMub25DbG9zZV89dGhpcy5vbkNsb3NlXy5iaW5kKHRoaXMpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJsZUNoYW5nZScsdHIuYi51aS5PdmVybGF5LnByb3RvdHlwZS5vblZpc2libGVDaGFuZ2VfLmJpbmQodGhpcyksdHJ1ZSk7dmFyIGNyZWF0ZVNoYWRvd1Jvb3Q9dGhpcy5jcmVhdGVTaGFkb3dSb290fHx0aGlzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Q7dGhpcy5zaGFkb3dfPWNyZWF0ZVNoYWRvd1Jvb3QuY2FsbCh0aGlzKTt0aGlzLnNoYWRvd18uYXBwZW5kQ2hpbGQodHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjb3ZlcmxheS10ZW1wbGF0ZScsVEhJU19ET0MpKTt0aGlzLmNsb3NlQnRuXz10aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcignY2xvc2UtYnV0dG9uJyk7dGhpcy5jbG9zZUJ0bl8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHRoaXMub25DbG9zZV8pO3RoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdvdmVybGF5LWZyYW1lJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHRoaXMub25DbGlja18pO3RoaXMub2JzZXJ2ZXJfPW5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKHRoaXMuZGlkQnV0dG9uQmFyTXV0YXRlXy5iaW5kKHRoaXMpKTt0aGlzLm9ic2VydmVyXy5vYnNlcnZlKHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJykse2NoaWxkTGlzdDp0cnVlfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsJ3RpdGxlJyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCd0aXRsZScpLnRleHRDb250ZW50O30sc2V0OmZ1bmN0aW9uKHRpdGxlKXt0aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcigndGl0bGUnKS50ZXh0Q29udGVudD10aXRsZTt9fSk7fSxzZXQgdXNlckNhbkNsb3NlKHVzZXJDYW5DbG9zZSl7dGhpcy51c2VyQ2FuQ2xvc2VfPXVzZXJDYW5DbG9zZTt0aGlzLmNsb3NlQnRuXy5zdHlsZS5kaXNwbGF5PXVzZXJDYW5DbG9zZT8nYmxvY2snOidub25lJzt9LGdldCBidXR0b25zKCl7cmV0dXJuIHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJyk7fSxnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLnZpc2libGVfO30sc2V0IHZpc2libGUobmV3VmFsdWUpe2lmKHRoaXMudmlzaWJsZV89PT1uZXdWYWx1ZSkKLXJldHVybjt0ci5iLnNldFByb3BlcnR5QW5kRGlzcGF0Y2hDaGFuZ2UodGhpcywndmlzaWJsZScsbmV3VmFsdWUpO30sb25WaXNpYmxlQ2hhbmdlXzpmdW5jdGlvbigpe3RoaXMudmlzaWJsZV8/dGhpcy5zaG93XygpOnRoaXMuaGlkZV8oKTt9LHNob3dfOmZ1bmN0aW9uKCl7dGhpcy5wYXJlbnRFbF8uYXBwZW5kQ2hpbGQodGhpcyk7aWYodGhpcy51c2VyQ2FuQ2xvc2VfKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyx0aGlzLm9uRG9jdW1lbnRDbGlja18uYmluZCh0aGlzKSk7fQotdGhpcy5wYXJlbnRFbF8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsdGhpcy5vbkZvY3VzSW5fKTt0aGlzLnRhYkluZGV4PTA7dmFyIGZvY3VzRWw9dW5kZWZpbmVkO3ZhciBlbExpc3Q9dGhpcy5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24sIGlucHV0LCBsaXN0LCBzZWxlY3QsIGEnKTtpZihlbExpc3QubGVuZ3RoPjApe2lmKGVsTGlzdFswXT09PXRoaXMuY2xvc2VCdG5fKXtpZihlbExpc3QubGVuZ3RoPjEpCi1mb2N1c0VsPWVsTGlzdFsxXTt9ZWxzZXtmb2N1c0VsPWVsTGlzdFswXTt9fQotaWYoZm9jdXNFbD09PXVuZGVmaW5lZCkKLWZvY3VzRWw9dGhpcztmb2N1c0VsLmZvY3VzKCk7fSxoaWRlXzpmdW5jdGlvbigpe3RoaXMucGFyZW50RWxfLnJlbW92ZUNoaWxkKHRoaXMpO3RoaXMucGFyZW50RWxfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLHRoaXMub25Gb2N1c0luXyk7aWYodGhpcy5jbG9zZUJ0bl8pCi10aGlzLmNsb3NlQnRuXy5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMub25DbG9zZV8pO2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25LZXlEb3duXyk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLHRoaXMub25Eb2N1bWVudENsaWNrXyk7fSxvbkNsb3NlXzpmdW5jdGlvbihlKXt0aGlzLnZpc2libGU9ZmFsc2U7aWYoKGUudHlwZSE9J2tleWRvd24nKXx8KGUudHlwZT09PSdrZXlkb3duJyYmZS5rZXlDb2RlPT09MjcpKQotZS5zdG9wUHJvcGFnYXRpb24oKTtlLnByZXZlbnREZWZhdWx0KCk7dHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsJ2Nsb3NlY2xpY2snKTt9LG9uRm9jdXNJbl86ZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT10aGlzKQotcmV0dXJuO3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5mb2N1cygpO30sMCk7ZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fSxkaWRCdXR0b25CYXJNdXRhdGVfOmZ1bmN0aW9uKGUpe3ZhciBoYXNCdXR0b25zPXRoaXMuYnV0dG9ucy5jaGlsZHJlbi5sZW5ndGg+MDtpZihoYXNCdXR0b25zKQotdGhpcy5zaGFkb3dfLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi1iYXInKS5zdHlsZS5kaXNwbGF5PXVuZGVmaW5lZDtlbHNlCi10aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcignYnV0dG9uLWJhcicpLnN0eWxlLmRpc3BsYXk9J25vbmUnO30sb25LZXlEb3duXzpmdW5jdGlvbihlKXtpZihlLmtleUNvZGU9PT05JiZlLnNoaWZ0S2V5JiZlLnRhcmdldD09PXRoaXMpe2UucHJldmVudERlZmF1bHQoKTtyZXR1cm47fQotaWYoZS5rZXlDb2RlIT09MjcpCi1yZXR1cm47dGhpcy5vbkNsb3NlXyhlKTt9LG9uQ2xpY2tfOmZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7fSxvbkRvY3VtZW50Q2xpY2tfOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLnVzZXJDYW5DbG9zZV8pCi1yZXR1cm47dGhpcy5vbkNsb3NlXyhlKTt9fTtPdmVybGF5LnNob3dFcnJvcj1mdW5jdGlvbihtc2csb3B0X2Vycil7dmFyIG89bmV3IE92ZXJsYXkoKTtvLnRpdGxlPSdFcnJvcic7by50ZXh0Q29udGVudD1tc2c7aWYob3B0X2Vycil7dmFyIGU9dHIuYi5ub3JtYWxpemVFeGNlcHRpb24ob3B0X2Vycik7dmFyIHN0YWNrRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ByZScpO3N0YWNrRGl2LnRleHRDb250ZW50PWUuc3RhY2s7c3RhY2tEaXYuc3R5bGUucGFkZGluZ0xlZnQ9JzhweCc7c3RhY2tEaXYuc3R5bGUubWFyZ2luPTA7by5hcHBlbmRDaGlsZChzdGFja0Rpdik7fQotdmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Yi50ZXh0Q29udGVudD0nT0snO2IuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7by52aXNpYmxlPWZhbHNlO30pO28uYnV0dG9ucy5hcHBlbmRDaGlsZChiKTtvLnZpc2libGU9dHJ1ZTtyZXR1cm4gbzt9Ci1yZXR1cm57T3ZlcmxheTpPdmVybGF5fTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYi11aS1kcm9wZG93bicse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy4kLm91dGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyx0aGlzLm9uT3V0ZXJDbGlja18uYmluZCh0aGlzKSk7dGhpcy4kLmRpYWxvZy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsdGhpcy5vbkRpYWxvZ0NsaWNrXy5iaW5kKHRoaXMpKTt0aGlzLiQuZGlhbG9nLmFkZEV2ZW50TGlzdGVuZXIoJ2NhbmNlbCcsdGhpcy5vbkRpYWxvZ0NhbmNlbF8uYmluZCh0aGlzKSk7fSxnZXQgaWNvbkVsZW1lbnQoKXtyZXR1cm4gdGhpcy4kLmljb247fSxvbk91dGVyQ2xpY2tfOmZ1bmN0aW9uKGUpe3ZhciBvcj10aGlzLiQub3V0ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGluc2lkZT10cnVlO2luc2lkZSY9ZS5jbGllbnRYPj1vci5sZWZ0O2luc2lkZSY9ZS5jbGllbnRYPG9yLnJpZ2h0O2luc2lkZSY9ZS5jbGllbnRZPj1vci50b3A7aW5zaWRlJj1lLmNsaWVudFk8b3IuYm90dG9tO2lmKCFpbnNpZGUpCi1yZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO2lmKCF0aGlzLmlzT3BlbikKLXRoaXMuc2hvdygpO2Vsc2UKLXRoaXMuY2xvc2UoKTt9LHNob3c6ZnVuY3Rpb24oKXtpZih0aGlzLmlzT3BlbikKLXJldHVybjt0aGlzLiQub3V0ZXIuY2xhc3NMaXN0LmFkZCgnb3BlbicpO3ZhciBkZHI9dGhpcy4kLm91dGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciByVz1NYXRoLm1heChkZHIud2lkdGgsMTUwKTt0aGlzLiQuZGlhbG9nLnN0eWxlLm1pbldpZHRoPXJXKydweCc7dGhpcy4kLmRpYWxvZy5zaG93TW9kYWwoKTt2YXIgZGR3PXRoaXMuJC5vdXRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDt2YXIgdz10aGlzLiQuZGlhbG9nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO3RoaXMuJC5kaWFsb2cuc3R5bGUudG9wPWRkci5ib3R0b20tMSsncHgnO3RoaXMuJC5kaWFsb2cuc3R5bGUubGVmdD1kZHIubGVmdCsncHgnO30sb25EaWFsb2dDbGlja186ZnVuY3Rpb24oZSl7aWYoIXRoaXMuaXNPcGVuKQotcmV0dXJuO3ZhciBkcj10aGlzLiQuZGlhbG9nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBpbnNpZGU9dHJ1ZTtpbnNpZGUmPWUuY2xpZW50WD49ZHIubGVmdDtpbnNpZGUmPWUuY2xpZW50WDxkci5yaWdodDtpbnNpZGUmPWUuY2xpZW50WT49ZHIudG9wO2luc2lkZSY9ZS5jbGllbnRZPGRyLmJvdHRvbTtpZighaW5zaWRlKXtlLnByZXZlbnREZWZhdWx0KCk7dGhpcy5jbG9zZSgpO319LG9uRGlhbG9nQ2FuY2VsXzpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dGhpcy5jbG9zZSgpO30sY2xvc2U6ZnVuY3Rpb24oKXtpZighdGhpcy5pc09wZW4pCi1yZXR1cm47dGhpcy4kLmRpYWxvZy5jbG9zZSgpO3RoaXMuJC5vdXRlci5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7fSxnZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuJC5kaWFsb2cuaGFzQXR0cmlidXRlKCdvcGVuJyk7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51aScsZnVuY3Rpb24oKXt2YXIgRHJhZ0hhbmRsZT10ci5iLnVpLmRlZmluZSgneC1kcmFnLWhhbmRsZScpO0RyYWdIYW5kbGUucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTERpdkVsZW1lbnQucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKCl7dGhpcy5sYXN0TW91c2VQb3NfPTA7dGhpcy5vbk1vdXNlTW92ZV89dGhpcy5vbk1vdXNlTW92ZV8uYmluZCh0aGlzKTt0aGlzLm9uTW91c2VVcF89dGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLHRoaXMub25Nb3VzZURvd25fKTt0aGlzLnRhcmdldF89dW5kZWZpbmVkO3RoaXMuaG9yaXpvbnRhbD10cnVlO3RoaXMub2JzZXJ2ZXJfPW5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKHRoaXMuZGlkVGFyZ2V0TXV0YXRlXy5iaW5kKHRoaXMpKTt0aGlzLnRhcmdldFNpemVzQnlNb2RlS2V5Xz17fTt9LGdldCBtb2RlS2V5Xygpe3JldHVybiB0aGlzLnRhcmdldF8uY2xhc3NOYW1lPT0nJz8nLic6dGhpcy50YXJnZXRfLmNsYXNzTmFtZTt9LGdldCB0YXJnZXQoKXtyZXR1cm4gdGhpcy50YXJnZXRfO30sc2V0IHRhcmdldCh0YXJnZXQpe3RoaXMub2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTt0aGlzLnRhcmdldF89dGFyZ2V0O2lmKCF0aGlzLnRhcmdldF8pCi1yZXR1cm47dGhpcy5vYnNlcnZlcl8ub2JzZXJ2ZSh0aGlzLnRhcmdldF8se2F0dHJpYnV0ZXM6dHJ1ZSxhdHRyaWJ1dGVGaWx0ZXI6WydjbGFzcyddfSk7fSxnZXQgaG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLmhvcml6b250YWxfO30sc2V0IGhvcml6b250YWwoaCl7dGhpcy5ob3Jpem9udGFsXz1oO2lmKHRoaXMuaG9yaXpvbnRhbF8pCi10aGlzLmNsYXNzTmFtZT0naG9yaXpvbnRhbC1kcmFnLWhhbmRsZSc7ZWxzZQotdGhpcy5jbGFzc05hbWU9J3ZlcnRpY2FsLWRyYWctaGFuZGxlJzt9LGdldCB2ZXJ0aWNhbCgpe3JldHVybiF0aGlzLmhvcml6b250YWxfO30sc2V0IHZlcnRpY2FsKHYpe3RoaXMuaG9yaXpvbnRhbD0hdjt9LGZvcmNlTXV0YXRpb25PYnNlcnZlckZsdXNoXzpmdW5jdGlvbigpe3ZhciByZWNvcmRzPXRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCk7aWYocmVjb3Jkcy5sZW5ndGgpCi10aGlzLmRpZFRhcmdldE11dGF0ZV8ocmVjb3Jkcyk7fSxkaWRUYXJnZXRNdXRhdGVfOmZ1bmN0aW9uKGUpe3ZhciBtb2RlU2l6ZT10aGlzLnRhcmdldFNpemVzQnlNb2RlS2V5X1t0aGlzLm1vZGVLZXlfXTtpZihtb2RlU2l6ZSE9PXVuZGVmaW5lZCl7dGhpcy5zZXRUYXJnZXRTaXplXyhtb2RlU2l6ZSk7cmV0dXJuO30KLXRoaXMudGFyZ2V0Xy5zdHlsZVt0aGlzLnRhcmdldFN0eWxlS2V5X109Jyc7fSxnZXQgdGFyZ2V0U3R5bGVLZXlfKCl7cmV0dXJuIHRoaXMuaG9yaXpvbnRhbF8/J2hlaWdodCc6J3dpZHRoJzt9LGdldFRhcmdldFNpemVfOmZ1bmN0aW9uKCl7dmFyIHRhcmdldFN0eWxlS2V5PXRoaXMudGFyZ2V0U3R5bGVLZXlfO2lmKCF0aGlzLnRhcmdldF8uc3R5bGVbdGFyZ2V0U3R5bGVLZXldKXt0aGlzLnRhcmdldF8uc3R5bGVbdGFyZ2V0U3R5bGVLZXldPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMudGFyZ2V0XylbdGFyZ2V0U3R5bGVLZXldO30KLXZhciBzaXplPXBhcnNlSW50KHRoaXMudGFyZ2V0Xy5zdHlsZVt0YXJnZXRTdHlsZUtleV0pO3RoaXMudGFyZ2V0U2l6ZXNCeU1vZGVLZXlfW3RoaXMubW9kZUtleV9dPXNpemU7cmV0dXJuIHNpemU7fSxzZXRUYXJnZXRTaXplXzpmdW5jdGlvbihzKXt0aGlzLnRhcmdldF8uc3R5bGVbdGhpcy50YXJnZXRTdHlsZUtleV9dPXMrJ3B4Jzt0aGlzLnRhcmdldFNpemVzQnlNb2RlS2V5X1t0aGlzLm1vZGVLZXlfXT1zO30sYXBwbHlEZWx0YV86ZnVuY3Rpb24oZGVsdGEpe3ZhciBjdXJTaXplPXRoaXMuZ2V0VGFyZ2V0U2l6ZV8oKTt2YXIgbmV3U2l6ZTtpZih0aGlzLnRhcmdldF89PT10aGlzLm5leHRFbGVtZW50U2libGluZyl7bmV3U2l6ZT1jdXJTaXplK2RlbHRhO31lbHNle25ld1NpemU9Y3VyU2l6ZS1kZWx0YTt9Ci10aGlzLnNldFRhcmdldFNpemVfKG5ld1NpemUpO30sb25Nb3VzZU1vdmVfOmZ1bmN0aW9uKGUpe3ZhciBjdXJNb3VzZVBvcz10aGlzLmhvcml6b250YWxfP2UuY2xpZW50WTplLmNsaWVudFg7dmFyIGRlbHRhPXRoaXMubGFzdE1vdXNlUG9zXy1jdXJNb3VzZVBvczt0aGlzLmFwcGx5RGVsdGFfKGRlbHRhKTt0aGlzLmxhc3RNb3VzZVBvc189Y3VyTW91c2VQb3M7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiB0cnVlO30sb25Nb3VzZURvd25fOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLnRhcmdldF8pCi1yZXR1cm47dGhpcy5mb3JjZU11dGF0aW9uT2JzZXJ2ZXJGbHVzaF8oKTt0aGlzLmxhc3RNb3VzZVBvc189dGhpcy5ob3Jpem9udGFsXz9lLmNsaWVudFk6ZS5jbGllbnRYO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsdGhpcy5vbk1vdXNlTW92ZV8pO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLHRoaXMub25Nb3VzZVVwXyk7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiB0cnVlO30sb25Nb3VzZVVwXzpmdW5jdGlvbihlKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLHRoaXMub25Nb3VzZU1vdmVfKTtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJyx0aGlzLm9uTW91c2VVcF8pO2UucHJldmVudERlZmF1bHQoKTt9fTtyZXR1cm57RHJhZ0hhbmRsZTpEcmFnSGFuZGxlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7T2JqZWN0Lm9ic2VydmUoUG9seW1lci5lbGVtZW50cyxjbGVhclBvbHltZXJFbGVtZW50Q2FjaGVzKTt2YXIgZWxlbWVudHNCeU5hbWU9dW5kZWZpbmVkO3ZhciBlbGVtZW50c1RoYXRFeHRlbmQ9dW5kZWZpbmVkO3ZhciBlbGVtZW50U3ViY2xhc3Nlcz11bmRlZmluZWQ7ZnVuY3Rpb24gY2xlYXJQb2x5bWVyRWxlbWVudENhY2hlcygpe2VsZW1lbnRzQnlOYW1lPXt9O2VsZW1lbnRzVGhhdEV4dGVuZD11bmRlZmluZWQ7ZWxlbWVudFN1YmNsYXNzZXM9e307fQotZnVuY3Rpb24gYnVpbGRFbGVtZW50TWFwc0lmTmVlZGVkKCl7aWYoZWxlbWVudHNUaGF0RXh0ZW5kIT09dW5kZWZpbmVkJiZlbGVtZW50c0J5TmFtZSE9PXVuZGVmaW5lZCkKLXJldHVybjtlbGVtZW50c0J5TmFtZT17fTtlbGVtZW50c1RoYXRFeHRlbmQ9e307UG9seW1lci5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpe2lmKGVsZW1lbnRzQnlOYW1lW2VsZW1lbnQubmFtZV0pCi10aHJvdyBuZXcgRXJyb3IoJ1NvbWV0aGluZyBpcyBzdHJhbmdlOiBkdXBlIHBvbHltZXIgZWxlbWVudCBuYW1lcycpO2VsZW1lbnRzQnlOYW1lW2VsZW1lbnQubmFtZV09ZWxlbWVudDtpZihlbGVtZW50LmV4dGVuZHMpe2lmKGVsZW1lbnRzVGhhdEV4dGVuZFtlbGVtZW50LmV4dGVuZHNdPT09dW5kZWZpbmVkKQotZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQuZXh0ZW5kc109W107ZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQuZXh0ZW5kc10ucHVzaChlbGVtZW50Lm5hbWUpO319KTt9Ci1mdW5jdGlvbiBnZXRQb2x5bWVyRWxlbWVudE5hbWVkKHRhZ05hbWUpe2J1aWxkRWxlbWVudE1hcHNJZk5lZWRlZCgpO3JldHVybiBlbGVtZW50c0J5TmFtZVt0YWdOYW1lXTt9Ci1mdW5jdGlvbiBnZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3ModGFnTmFtZSl7aWYoUG9seW1lci53YWl0aW5nRm9yKCkubGVuZ3RoKXt0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGFyZSB1bnJlc29sdmVkIHBvbHltZXIgZWxlbWVudHMuICcrJ1dhaXQgdW50aWwgUG9seW1lci53aGVuUmVhZHknKTt9Ci1idWlsZEVsZW1lbnRNYXBzSWZOZWVkZWQoKTt2YXIgZWxlbWVudD1nZXRQb2x5bWVyRWxlbWVudE5hbWVkKHRhZ05hbWUpO2lmKCFlbGVtZW50KQotdGhyb3cgbmV3IEVycm9yKHRhZ05hbWUrJyBpcyBub3QgYSBwb2x5bWVyIGVsZW1lbnQnKTtpZihlbGVtZW50U3ViY2xhc3Nlcz09PXVuZGVmaW5lZCkKLWVsZW1lbnRTdWJjbGFzc2VzPXt9O2lmKGVsZW1lbnRTdWJjbGFzc2VzW3RhZ05hbWVdPT09dW5kZWZpbmVkKXt2YXIgaW1tZWRpYXRlU3ViRWxlbWVudHM9ZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQubmFtZV07dmFyIGFsbFN1YkVsZW1lbnRzPVtdO2lmKGltbWVkaWF0ZVN1YkVsZW1lbnRzIT09dW5kZWZpbmVkJiZpbW1lZGlhdGVTdWJFbGVtZW50cy5sZW5ndGgpe2ltbWVkaWF0ZVN1YkVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oc3ViRWxlbWVudCl7YWxsU3ViRWxlbWVudHMucHVzaChzdWJFbGVtZW50KTthbGxTdWJFbGVtZW50cy5wdXNoLmFwcGx5KGFsbFN1YkVsZW1lbnRzLGdldFBvbHltZXJFbGVtZW50c1RoYXRTdWJjbGFzcyhzdWJFbGVtZW50KSk7fSk7fQotZWxlbWVudFN1YmNsYXNzZXNbdGFnTmFtZV09YWxsU3ViRWxlbWVudHM7fQotcmV0dXJuIGVsZW1lbnRTdWJjbGFzc2VzW3RhZ05hbWVdO30KLWZ1bmN0aW9uIGdldFBvbHltZXJTdWJjbGFzc2luZ0RlcHRoRnJvbSh0YWdOYW1lLHRhZ0Jhc2Upe2lmKFBvbHltZXIud2FpdGluZ0ZvcigpLmxlbmd0aCl7dGhyb3cgbmV3IEVycm9yKCdUaGVyZSBhcmUgdW5yZXNvbHZlZCBwb2x5bWVyIGVsZW1lbnRzLiAnKydXYWl0IHVudGlsIFBvbHltZXIud2hlblJlYWR5Jyk7fQotaWYoIVBvbHltZXIuZWxlbWVudHNbdGFnQmFzZV0pCi10aHJvdyBuZXcgRXJyb3IodGFnQmFzZSsnIGlzIG5vdCBhIHBvbHltZXIgZWxlbWVudCcpO2lmKCFQb2x5bWVyLmVsZW1lbnRzW3RhZ05hbWVdKQotdGhyb3cgbmV3IEVycm9yKHRhZ05hbWUrJyBpcyBub3QgYSBwb2x5bWVyIGVsZW1lbnQnKTt2YXIgc3RlcHM9MDt2YXIgdGFnQ3VyPXRhZ05hbWU7d2hpbGUodGFnQ3VyIT10YWdCYXNlKXtzdGVwcys9MTt0YWdDdXI9UG9seW1lci5lbGVtZW50c1t0YWdDdXJdLmV4dGVuZHM7aWYoIXRhZ0N1cikKLXRocm93IG5ldyBFcnJvcih0YWdOYW1lKycgZG9lcyBub3Qgc3ViY2xhc3MgJyt0YWdCYXNlKTt9Ci1yZXR1cm4gc3RlcHM7fQotcmV0dXJue2dldFBvbHltZXJFbGVtZW50TmFtZWQ6Z2V0UG9seW1lckVsZW1lbnROYW1lZCxnZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3M6Z2V0UG9seW1lckVsZW1lbnRzVGhhdFN1YmNsYXNzLGdldFBvbHltZXJTdWJjbGFzc2luZ0RlcHRoRnJvbTpnZXRQb2x5bWVyU3ViY2xhc3NpbmdEZXB0aEZyb219O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0cmFjaW5nLWFuYWx5c2lzLXRhYi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQudHNoaC5zdHlsZS5kaXNwbGF5PSdub25lJzt0aGlzLnRhYnNfPVtdO3RoaXMuc2VsZWN0ZWRUYWJfPXVuZGVmaW5lZDtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2krKykKLXRoaXMucHJvY2Vzc0FkZGVkQ2hpbGRfKHRoaXMuY2hpbGRyZW5baV0pO3RoaXMuY2hpbGRyZW5PYnNlcnZlcl89bmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5jaGlsZHJlblVwZGF0ZWRfLmJpbmQodGhpcykpO3RoaXMuY2hpbGRyZW5PYnNlcnZlcl8ub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6J3RydWUnfSk7fSxnZXQgdGFiU3RyaXBIZWFkaW5nVGV4dCgpe3JldHVybiB0aGlzLiQudHNoLnRleHRDb250ZW50O30sc2V0IHRhYlN0cmlwSGVhZGluZ1RleHQodGFiU3RyaXBIZWFkaW5nVGV4dCl7dGhpcy4kLnRzaC50ZXh0Q29udGVudD10YWJTdHJpcEhlYWRpbmdUZXh0O2lmKCEhdGFiU3RyaXBIZWFkaW5nVGV4dCkKLXRoaXMuJC50c2hoLnN0eWxlLmRpc3BsYXk9Jyc7ZWxzZQotdGhpcy4kLnRzaGguc3R5bGUuZGlzcGxheT0nbm9uZSc7fSxnZXQgc2VsZWN0ZWRUYWIoKXt0aGlzLmNoaWxkcmVuVXBkYXRlZF8odGhpcy5jaGlsZHJlbk9ic2VydmVyXy50YWtlUmVjb3JkcygpLHRoaXMuY2hpbGRyZW5PYnNlcnZlcl8pO2lmKHRoaXMuc2VsZWN0ZWRUYWJfKQotcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQ7cmV0dXJuIHVuZGVmaW5lZDt9LHNldCBzZWxlY3RlZFRhYihjb250ZW50KXt0aGlzLmNoaWxkcmVuVXBkYXRlZF8odGhpcy5jaGlsZHJlbk9ic2VydmVyXy50YWtlUmVjb3JkcygpLHRoaXMuY2hpbGRyZW5PYnNlcnZlcl8pO2lmKGNvbnRlbnQ9PT11bmRlZmluZWR8fGNvbnRlbnQ9PT1udWxsKXt0aGlzLmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8odW5kZWZpbmVkKTtyZXR1cm47fQotdmFyIGNvbnRlbnRUYWJJZD11bmRlZmluZWQ7Zm9yKHZhciBpPTA7aTx0aGlzLnRhYnNfLmxlbmd0aDtpKyspCi1pZih0aGlzLnRhYnNfW2ldLmNvbnRlbnQ9PT1jb250ZW50KXtjb250ZW50VGFiSWQ9dGhpcy50YWJzX1tpXS5pZDticmVhazt9Ci1pZihjb250ZW50VGFiSWQ9PT11bmRlZmluZWQpe2NvbnNvbGUud2FybignVGFiIG5vdCBpbiB0YWJzIGxpc3QuIElnbm9yaW5nIGNoYW5nZWQgc2VsZWN0aW9uLicpO3JldHVybjt9Ci10aGlzLmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8oY29udGVudFRhYklkKTt9LGdldCB0YWJzSGlkZGVuKCl7dmFyIHRzPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCd0YWItc3RyaXAnKTtyZXR1cm4gdHMuaGFzQXR0cmlidXRlKCd0YWJzLWhpZGRlbicpO30sc2V0IHRhYnNIaWRkZW4odGFic0hpZGRlbil7dGFic0hpZGRlbj0hIXRhYnNIaWRkZW47dmFyIHRzPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCd0YWItc3RyaXAnKTtpZih0YWJzSGlkZGVuKQotdHMuc2V0QXR0cmlidXRlKCd0YWJzLWhpZGRlbicsdHJ1ZSk7ZWxzZQotdHMucmVtb3ZlQXR0cmlidXRlKCd0YWJzLWhpZGRlbicpO30scHJvY2Vzc0FkZGVkQ2hpbGRfOmZ1bmN0aW9uKGNoaWxkKXt2YXIgb2JzZXJ2ZXJBdHRyaWJ1dGVTZWxlY3RlZD1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLmNoaWxkQXR0cmlidXRlc0NoYW5nZWRfLmJpbmQodGhpcykpO3ZhciBvYnNlcnZlckF0dHJpYnV0ZVRhYkxhYmVsPW5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMuY2hpbGRBdHRyaWJ1dGVzQ2hhbmdlZF8uYmluZCh0aGlzKSk7dmFyIHRhYk9iamVjdD17aWQ6dGhpcy50YWJzXy5sZW5ndGgsY29udGVudDpjaGlsZCxsYWJlbDpjaGlsZC5nZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcpLG9ic2VydmVyczp7Zm9yQXR0cmlidXRlU2VsZWN0ZWQ6b2JzZXJ2ZXJBdHRyaWJ1dGVTZWxlY3RlZCxmb3JBdHRyaWJ1dGVUYWJMYWJlbDpvYnNlcnZlckF0dHJpYnV0ZVRhYkxhYmVsfSxzYXZlZFNjcm9sbFRvcDowLHNhdmVkU2Nyb2xsTGVmdDowfTt0aGlzLnRhYnNfLnB1c2godGFiT2JqZWN0KTtpZihjaGlsZC5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpe2lmKHRoaXMuc2VsZWN0ZWRUYWJfKQotY2hpbGQucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpO2Vsc2UKLXRoaXMuc2V0U2VsZWN0ZWRUYWJCeUlkXyh0YWJPYmplY3QuaWQpO30KLXZhciBwcmV2aW91c1NlbGVjdGVkPWNoaWxkLnNlbGVjdGVkO3ZhciB0YWJWaWV3PXRoaXM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCdzZWxlY3RlZCcse2NvbmZpZ3VyYWJsZTp0cnVlLHNldDpmdW5jdGlvbih2YWx1ZSl7aWYodmFsdWUpe3RhYlZpZXcuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh0YWJPYmplY3QuaWQpO3JldHVybjt9Ci12YXIgd2FzU2VsZWN0ZWQ9dGFiVmlldy5zZWxlY3RlZFRhYl89PT10YWJPYmplY3Q7aWYod2FzU2VsZWN0ZWQpCi10YWJWaWV3LmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8odW5kZWZpbmVkKTt9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKTt9fSk7aWYocHJldmlvdXNTZWxlY3RlZCkKLWNoaWxkLnNlbGVjdGVkPXByZXZpb3VzU2VsZWN0ZWQ7b2JzZXJ2ZXJBdHRyaWJ1dGVTZWxlY3RlZC5vYnNlcnZlKGNoaWxkLHthdHRyaWJ1dGVGaWx0ZXI6WydzZWxlY3RlZCddfSk7b2JzZXJ2ZXJBdHRyaWJ1dGVUYWJMYWJlbC5vYnNlcnZlKGNoaWxkLHthdHRyaWJ1dGVGaWx0ZXI6Wyd0YWItbGFiZWwnXX0pO30scHJvY2Vzc1JlbW92ZWRDaGlsZF86ZnVuY3Rpb24oY2hpbGQpe2Zvcih2YXIgaT0wO2k8dGhpcy50YWJzXy5sZW5ndGg7aSsrKXt0aGlzLnRhYnNfW2ldLmlkPWk7aWYodGhpcy50YWJzX1tpXS5jb250ZW50PT09Y2hpbGQpe3RoaXMudGFic19baV0ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLmRpc2Nvbm5lY3QoKTt0aGlzLnRhYnNfW2ldLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVUYWJMYWJlbC5kaXNjb25uZWN0KCk7aWYodGhpcy50YWJzX1tpXT09PXRoaXMuc2VsZWN0ZWRUYWJfKXt0aGlzLmNsZWFyU2VsZWN0ZWRUYWJfKCk7dGhpcy5maXJlKCdzZWxlY3RlZC10YWItY2hhbmdlJyk7fQotY2hpbGQucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpO2RlbGV0ZSBjaGlsZC5zZWxlY3RlZDt0aGlzLnRhYnNfLnNwbGljZShpLDEpO2ktLTt9fX0sY2hpbGRBdHRyaWJ1dGVzQ2hhbmdlZF86ZnVuY3Rpb24obXV0YXRpb25zLG9ic2VydmVyKXt2YXIgdGFiT2JqZWN0PXVuZGVmaW5lZDtmb3IodmFyIGk9MDtpPHRoaXMudGFic18ubGVuZ3RoO2krKyl7dmFyIG9ic2VydmVycz10aGlzLnRhYnNfW2ldLm9ic2VydmVycztpZihvYnNlcnZlcnMuZm9yQXR0cmlidXRlU2VsZWN0ZWQ9PT1vYnNlcnZlcnx8b2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVRhYkxhYmVsPT09b2JzZXJ2ZXIpe3RhYk9iamVjdD10aGlzLnRhYnNfW2ldO2JyZWFrO319Ci1pZighdGFiT2JqZWN0KQotcmV0dXJuO2Zvcih2YXIgaT0wO2k8bXV0YXRpb25zLmxlbmd0aDtpKyspe3ZhciBub2RlPXRhYk9iamVjdC5jb250ZW50O2lmKG11dGF0aW9uc1tpXS5hdHRyaWJ1dGVOYW1lPT09J3RhYi1sYWJlbCcpCi10YWJPYmplY3QubGFiZWw9bm9kZS5nZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcpO2lmKG11dGF0aW9uc1tpXS5hdHRyaWJ1dGVOYW1lPT09J3NlbGVjdGVkJyl7dmFyIG5vZGVJc1NlbGVjdGVkPW5vZGUuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpO2lmKG5vZGVJc1NlbGVjdGVkKQotdGhpcy5jaGFuZ2VTZWxlY3RlZFRhYkJ5SWRfKHRhYk9iamVjdC5pZCk7ZWxzZQotdGhpcy5jaGFuZ2VTZWxlY3RlZFRhYkJ5SWRfKHVuZGVmaW5lZCk7fX19LGNoaWxkcmVuVXBkYXRlZF86ZnVuY3Rpb24obXV0YXRpb25zLG9ic2VydmVyKXttdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbil7Zm9yKHZhciBpPTA7aTxtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoO2krKykKLXRoaXMucHJvY2Vzc1JlbW92ZWRDaGlsZF8obXV0YXRpb24ucmVtb3ZlZE5vZGVzW2ldKTtmb3IodmFyIGk9MDtpPG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoO2krKykKLXRoaXMucHJvY2Vzc0FkZGVkQ2hpbGRfKG11dGF0aW9uLmFkZGVkTm9kZXNbaV0pO30sdGhpcyk7fSx0YWJCdXR0b25TZWxlY3RIYW5kbGVyXzpmdW5jdGlvbihldmVudCxkZXRhaWwsc2VuZGVyKXt0aGlzLmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8oc2VuZGVyLmdldEF0dHJpYnV0ZSgnYnV0dG9uLWlkJykpO30sY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXzpmdW5jdGlvbihpZCl7dmFyIG5ld1RhYj1pZCE9PXVuZGVmaW5lZD90aGlzLnRhYnNfW2lkXTp1bmRlZmluZWQ7dmFyIGNoYW5nZWQ9dGhpcy5zZWxlY3RlZFRhYl8hPT1uZXdUYWI7dGhpcy5zYXZlQ3VycmVudFRhYlNjcm9sbFBvc2l0aW9uXygpO3RoaXMuY2xlYXJTZWxlY3RlZFRhYl8oKTtpZihpZCE9PXVuZGVmaW5lZCl7dGhpcy5zZXRTZWxlY3RlZFRhYkJ5SWRfKGlkKTt0aGlzLnJlc3RvcmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fKCk7fQotaWYoY2hhbmdlZCkKLXRoaXMuZmlyZSgnc2VsZWN0ZWQtdGFiLWNoYW5nZScpO30sc2V0U2VsZWN0ZWRUYWJCeUlkXzpmdW5jdGlvbihpZCl7dGhpcy5zZWxlY3RlZFRhYl89dGhpcy50YWJzX1tpZF07dGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLmRpc2Nvbm5lY3QoKTt0aGlzLnNlbGVjdGVkVGFiXy5jb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCdzZWxlY3RlZCcpO3RoaXMuc2VsZWN0ZWRUYWJfLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZC5vYnNlcnZlKHRoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQse2F0dHJpYnV0ZUZpbHRlcjpbJ3NlbGVjdGVkJ119KTt9LHNhdmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fOmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFRhYl8pe3RoaXMuc2VsZWN0ZWRUYWJfLnNhdmVkU2Nyb2xsVG9wPXRoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxUb3A7dGhpcy5zZWxlY3RlZFRhYl8uc2F2ZWRTY3JvbGxMZWZ0PXRoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxMZWZ0O319LHJlc3RvcmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fOmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFRhYl8pe3RoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxUb3A9dGhpcy5zZWxlY3RlZFRhYl8uc2F2ZWRTY3JvbGxUb3A7dGhpcy4kWydjb250ZW50LWNvbnRhaW5lciddLnNjcm9sbExlZnQ9dGhpcy5zZWxlY3RlZFRhYl8uc2F2ZWRTY3JvbGxMZWZ0O319LGNsZWFyU2VsZWN0ZWRUYWJfOmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFRhYl8pe3RoaXMuc2VsZWN0ZWRUYWJfLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZC5kaXNjb25uZWN0KCk7dGhpcy5zZWxlY3RlZFRhYl8uY29udGVudC5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7dGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUodGhpcy5zZWxlY3RlZFRhYl8uY29udGVudCx7YXR0cmlidXRlRmlsdGVyOlsnc2VsZWN0ZWQnXX0pO3RoaXMuc2VsZWN0ZWRUYWJfPXVuZGVmaW5lZDt9fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXt2YXIgbmV4dEdVSUQ9MTt2YXIgR1VJRD17YWxsb2NhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV4dEdVSUQrKzt9LGdldExhc3RHdWlkOmZ1bmN0aW9uKCl7cmV0dXJuIG5leHRHVUlELTE7fX07cmV0dXJue0dVSUQ6R1VJRH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFJhbmdlKCl7dGhpcy5pc0VtcHR5Xz10cnVlO3RoaXMubWluXz11bmRlZmluZWQ7dGhpcy5tYXhfPXVuZGVmaW5lZDt9O1JhbmdlLnByb3RvdHlwZT17X19wcm90b19fOk9iamVjdC5wcm90b3R5cGUscmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmlzRW1wdHlfPXRydWU7dGhpcy5taW5fPXVuZGVmaW5lZDt0aGlzLm1heF89dW5kZWZpbmVkO30sZ2V0IGlzRW1wdHkoKXtyZXR1cm4gdGhpcy5pc0VtcHR5Xzt9LGFkZFJhbmdlOmZ1bmN0aW9uKHJhbmdlKXtpZihyYW5nZS5pc0VtcHR5KQotcmV0dXJuO3RoaXMuYWRkVmFsdWUocmFuZ2UubWluKTt0aGlzLmFkZFZhbHVlKHJhbmdlLm1heCk7fSxhZGRWYWx1ZTpmdW5jdGlvbih2YWx1ZSl7aWYodGhpcy5pc0VtcHR5Xyl7dGhpcy5tYXhfPXZhbHVlO3RoaXMubWluXz12YWx1ZTt0aGlzLmlzRW1wdHlfPWZhbHNlO3JldHVybjt9Ci10aGlzLm1heF89TWF0aC5tYXgodGhpcy5tYXhfLHZhbHVlKTt0aGlzLm1pbl89TWF0aC5taW4odGhpcy5taW5fLHZhbHVlKTt9LHNldCBtaW4obWluKXt0aGlzLmlzRW1wdHlfPWZhbHNlO3RoaXMubWluXz1taW47fSxnZXQgbWluKCl7aWYodGhpcy5pc0VtcHR5XykKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMubWluXzt9LGdldCBtYXgoKXtpZih0aGlzLmlzRW1wdHlfKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5tYXhfO30sc2V0IG1heChtYXgpe3RoaXMuaXNFbXB0eV89ZmFsc2U7dGhpcy5tYXhfPW1heDt9LGdldCByYW5nZSgpe2lmKHRoaXMuaXNFbXB0eV8pCi1yZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzLm1heF8tdGhpcy5taW5fO30sZ2V0IGNlbnRlcigpe3JldHVybih0aGlzLm1pbl8rdGhpcy5tYXhfKSowLjU7fSxlcXVhbHM6ZnVuY3Rpb24odGhhdCl7aWYodGhpcy5pc0VtcHR5JiZ0aGF0LmlzRW1wdHkpCi1yZXR1cm4gdHJ1ZTtpZih0aGlzLmlzRW1wdHkhPXRoYXQuaXNFbXB0eSkKLXJldHVybiBmYWxzZTtyZXR1cm4gdGhpcy5taW49PT10aGF0Lm1pbiYmdGhpcy5tYXg9PT10aGF0Lm1heDt9LGNvbnRhaW5zUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe2lmKHRoaXMuaXNFbXB0eXx8cmFuZ2UuaXNFbXB0eSkKLXJldHVybiBmYWxzZTtyZXR1cm4gdGhpcy5taW48PXJhbmdlLm1pbiYmdGhpcy5tYXg+PXJhbmdlLm1heDt9LGNvbnRhaW5zRXhwbGljaXRSYW5nZTpmdW5jdGlvbihtaW4sbWF4KXtpZih0aGlzLmlzRW1wdHkpCi1yZXR1cm4gZmFsc2U7cmV0dXJuIHRoaXMubWluPD1taW4mJnRoaXMubWF4Pj1tYXg7fSxpbnRlcnNlY3RzUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe2lmKHRoaXMuaXNFbXB0eXx8cmFuZ2UuaXNFbXB0eSkKLXJldHVybiBmYWxzZTtyZXR1cm4hKHJhbmdlLm1heDx0aGlzLm1pbnx8cmFuZ2UubWluPnRoaXMubWF4KTt9LGludGVyc2VjdHNFeHBsaWNpdFJhbmdlOmZ1bmN0aW9uKG1pbixtYXgpe2lmKHRoaXMuaXNFbXB0eSkKLXJldHVybiBmYWxzZTtyZXR1cm4hKG1heDx0aGlzLm1pbnx8bWluPnRoaXMubWF4KTt9fTtSYW5nZS5mcm9tRXhwbGljaXRSYW5nZT1mdW5jdGlvbihtaW4sbWF4KXt2YXIgcmFuZ2U9bmV3IFJhbmdlKCk7cmFuZ2UubWluPW1pbjtyYW5nZS5tYXg9bWF4O3JldHVybiByYW5nZTt9O1JhbmdlLmNvbXBhcmVCeU1pblRpbWVzPWZ1bmN0aW9uKGEsYil7aWYoIWEuaXNFbXB0eSYmIWIuaXNFbXB0eSkKLXJldHVybiBhLm1pbl8tYi5taW5fO2lmKGEuaXNFbXB0eSYmIWIuaXNFbXB0eSkKLXJldHVybi0xO2lmKCFhLmlzRW1wdHkmJmIuaXNFbXB0eSkKLXJldHVybiAxO3JldHVybiAwO307cmV0dXJue1JhbmdlOlJhbmdlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbWF4KGEsYil7aWYoYT09PXVuZGVmaW5lZCkKLXJldHVybiBiO2lmKGI9PT11bmRlZmluZWQpCi1yZXR1cm4gYTtyZXR1cm4gTWF0aC5tYXgoYSxiKTt9Ci1mdW5jdGlvbiBJbnRlcnZhbFRyZWUoYmVnaW5Qb3NpdGlvbkNiLGVuZFBvc2l0aW9uQ2Ipe3RoaXMuYmVnaW5Qb3NpdGlvbkNiXz1iZWdpblBvc2l0aW9uQ2I7dGhpcy5lbmRQb3NpdGlvbkNiXz1lbmRQb3NpdGlvbkNiO3RoaXMucm9vdF89dW5kZWZpbmVkO3RoaXMuc2l6ZV89MDt9Ci1JbnRlcnZhbFRyZWUucHJvdG90eXBlPXtpbnNlcnQ6ZnVuY3Rpb24oZGF0dW0pe3ZhciBzdGFydFBvc2l0aW9uPXRoaXMuYmVnaW5Qb3NpdGlvbkNiXyhkYXR1bSk7dmFyIGVuZFBvc2l0aW9uPXRoaXMuZW5kUG9zaXRpb25DYl8oZGF0dW0pO3ZhciBub2RlPW5ldyBJbnRlcnZhbFRyZWVOb2RlKGRhdHVtLHN0YXJ0UG9zaXRpb24sZW5kUG9zaXRpb24pO3RoaXMuc2l6ZV8rKzt0aGlzLnJvb3RfPXRoaXMuaW5zZXJ0Tm9kZV8odGhpcy5yb290Xyxub2RlKTt0aGlzLnJvb3RfLmNvbG91cj1Db2xvdXIuQkxBQ0s7cmV0dXJuIGRhdHVtO30saW5zZXJ0Tm9kZV86ZnVuY3Rpb24ocm9vdCxub2RlKXtpZihyb290PT09dW5kZWZpbmVkKQotcmV0dXJuIG5vZGU7aWYocm9vdC5sZWZ0Tm9kZSYmcm9vdC5sZWZ0Tm9kZS5pc1JlZCYmcm9vdC5yaWdodE5vZGUmJnJvb3QucmlnaHROb2RlLmlzUmVkKQotdGhpcy5mbGlwTm9kZUNvbG91cl8ocm9vdCk7aWYobm9kZS5rZXk8cm9vdC5rZXkpCi1yb290LmxlZnROb2RlPXRoaXMuaW5zZXJ0Tm9kZV8ocm9vdC5sZWZ0Tm9kZSxub2RlKTtlbHNlIGlmKG5vZGUua2V5PT09cm9vdC5rZXkpCi1yb290Lm1lcmdlKG5vZGUpO2Vsc2UKLXJvb3QucmlnaHROb2RlPXRoaXMuaW5zZXJ0Tm9kZV8ocm9vdC5yaWdodE5vZGUsbm9kZSk7aWYocm9vdC5yaWdodE5vZGUmJnJvb3QucmlnaHROb2RlLmlzUmVkJiYocm9vdC5sZWZ0Tm9kZT09PXVuZGVmaW5lZHx8IXJvb3QubGVmdE5vZGUuaXNSZWQpKQotcm9vdD10aGlzLnJvdGF0ZUxlZnRfKHJvb3QpO2lmKHJvb3QubGVmdE5vZGUmJnJvb3QubGVmdE5vZGUuaXNSZWQmJnJvb3QubGVmdE5vZGUubGVmdE5vZGUmJnJvb3QubGVmdE5vZGUubGVmdE5vZGUuaXNSZWQpCi1yb290PXRoaXMucm90YXRlUmlnaHRfKHJvb3QpO3JldHVybiByb290O30scm90YXRlUmlnaHRfOmZ1bmN0aW9uKG5vZGUpe3ZhciBzaWJsaW5nPW5vZGUubGVmdE5vZGU7bm9kZS5sZWZ0Tm9kZT1zaWJsaW5nLnJpZ2h0Tm9kZTtzaWJsaW5nLnJpZ2h0Tm9kZT1ub2RlO3NpYmxpbmcuY29sb3VyPW5vZGUuY29sb3VyO25vZGUuY29sb3VyPUNvbG91ci5SRUQ7cmV0dXJuIHNpYmxpbmc7fSxyb3RhdGVMZWZ0XzpmdW5jdGlvbihub2RlKXt2YXIgc2libGluZz1ub2RlLnJpZ2h0Tm9kZTtub2RlLnJpZ2h0Tm9kZT1zaWJsaW5nLmxlZnROb2RlO3NpYmxpbmcubGVmdE5vZGU9bm9kZTtzaWJsaW5nLmNvbG91cj1ub2RlLmNvbG91cjtub2RlLmNvbG91cj1Db2xvdXIuUkVEO3JldHVybiBzaWJsaW5nO30sZmxpcE5vZGVDb2xvdXJfOmZ1bmN0aW9uKG5vZGUpe25vZGUuY29sb3VyPXRoaXMuZmxpcENvbG91cl8obm9kZS5jb2xvdXIpO25vZGUubGVmdE5vZGUuY29sb3VyPXRoaXMuZmxpcENvbG91cl8obm9kZS5sZWZ0Tm9kZS5jb2xvdXIpO25vZGUucmlnaHROb2RlLmNvbG91cj10aGlzLmZsaXBDb2xvdXJfKG5vZGUucmlnaHROb2RlLmNvbG91cik7fSxmbGlwQ29sb3VyXzpmdW5jdGlvbihjb2xvdXIpe3JldHVybiBjb2xvdXI9PT1Db2xvdXIuUkVEP0NvbG91ci5CTEFDSzpDb2xvdXIuUkVEO30sdXBkYXRlSGlnaFZhbHVlczpmdW5jdGlvbigpe3RoaXMudXBkYXRlSGlnaFZhbHVlc18odGhpcy5yb290Xyk7fSx1cGRhdGVIaWdoVmFsdWVzXzpmdW5jdGlvbihub2RlKXtpZihub2RlPT09dW5kZWZpbmVkKQotcmV0dXJuIHVuZGVmaW5lZDtub2RlLm1heEhpZ2hMZWZ0PXRoaXMudXBkYXRlSGlnaFZhbHVlc18obm9kZS5sZWZ0Tm9kZSk7bm9kZS5tYXhIaWdoUmlnaHQ9dGhpcy51cGRhdGVIaWdoVmFsdWVzXyhub2RlLnJpZ2h0Tm9kZSk7cmV0dXJuIG1heChtYXgobm9kZS5tYXhIaWdoTGVmdCxub2RlLmhpZ2hWYWx1ZSksbm9kZS5tYXhIaWdoUmlnaHQpO30sdmFsaWRhdGVGaW5kQXJndW1lbnRzXzpmdW5jdGlvbihxdWVyeUxvdyxxdWVyeUhpZ2gpe2lmKHF1ZXJ5TG93PT09dW5kZWZpbmVkfHxxdWVyeUhpZ2g9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ3F1ZXJ5TG93IGFuZCBxdWVyeUhpZ2ggbXVzdCBiZSBkZWZpbmVkJyk7aWYoKHR5cGVvZiBxdWVyeUxvdyE9PSdudW1iZXInKXx8KHR5cGVvZiBxdWVyeUhpZ2ghPT0nbnVtYmVyJykpCi10aHJvdyBuZXcgRXJyb3IoJ3F1ZXJ5TG93IGFuZCBxdWVyeUhpZ2ggbXVzdCBiZSBudW1iZXJzJyk7fSxmaW5kSW50ZXJzZWN0aW9uOmZ1bmN0aW9uKHF1ZXJ5TG93LHF1ZXJ5SGlnaCl7dGhpcy52YWxpZGF0ZUZpbmRBcmd1bWVudHNfKHF1ZXJ5TG93LHF1ZXJ5SGlnaCk7aWYodGhpcy5yb290Xz09PXVuZGVmaW5lZCkKLXJldHVybltdO3ZhciByZXQ9W107dGhpcy5yb290Xy5hcHBlbmRJbnRlcnNlY3Rpb25zSW50b18ocmV0LHF1ZXJ5TG93LHF1ZXJ5SGlnaCk7cmV0dXJuIHJldDt9LGdldCBzaXplKCl7cmV0dXJuIHRoaXMuc2l6ZV87fSxnZXQgcm9vdCgpe3JldHVybiB0aGlzLnJvb3RfO30sZHVtcF86ZnVuY3Rpb24oKXtpZih0aGlzLnJvb3RfPT09dW5kZWZpbmVkKQotcmV0dXJuW107cmV0dXJuIHRoaXMucm9vdF8uZHVtcCgpO319O3ZhciBDb2xvdXI9e1JFRDoncmVkJyxCTEFDSzonYmxhY2snfTtmdW5jdGlvbiBJbnRlcnZhbFRyZWVOb2RlKGRhdHVtLGxvd1ZhbHVlLGhpZ2hWYWx1ZSl7dGhpcy5sb3dWYWx1ZV89bG93VmFsdWU7dGhpcy5kYXRhXz1be2RhdHVtOmRhdHVtLGhpZ2g6aGlnaFZhbHVlLGxvdzpsb3dWYWx1ZX1dO3RoaXMuY29sb3VyXz1Db2xvdXIuUkVEO3RoaXMucGFyZW50Tm9kZV89dW5kZWZpbmVkO3RoaXMubGVmdE5vZGVfPXVuZGVmaW5lZDt0aGlzLnJpZ2h0Tm9kZV89dW5kZWZpbmVkO3RoaXMubWF4SGlnaExlZnRfPXVuZGVmaW5lZDt0aGlzLm1heEhpZ2hSaWdodF89dW5kZWZpbmVkO30KLUludGVydmFsVHJlZU5vZGUucHJvdG90eXBlPXthcHBlbmRJbnRlcnNlY3Rpb25zSW50b186ZnVuY3Rpb24ocmV0LHF1ZXJ5TG93LHF1ZXJ5SGlnaCl7aWYodGhpcy5sb3dWYWx1ZV8+PXF1ZXJ5SGlnaCl7aWYoIXRoaXMubGVmdE5vZGVfKQotcmV0dXJuO3JldHVybiB0aGlzLmxlZnROb2RlXy5hcHBlbmRJbnRlcnNlY3Rpb25zSW50b18ocmV0LHF1ZXJ5TG93LHF1ZXJ5SGlnaCk7fQotaWYodGhpcy5tYXhIaWdoTGVmdF8+cXVlcnlMb3cpe3RoaXMubGVmdE5vZGVfLmFwcGVuZEludGVyc2VjdGlvbnNJbnRvXyhyZXQscXVlcnlMb3cscXVlcnlIaWdoKTt9Ci1pZih0aGlzLmhpZ2hWYWx1ZT5xdWVyeUxvdyl7Zm9yKHZhciBpPSh0aGlzLmRhdGEubGVuZ3RoLTEpO2k+PTA7LS1pKXtpZih0aGlzLmRhdGFbaV0uaGlnaDxxdWVyeUxvdykKLWJyZWFrO3JldC5wdXNoKHRoaXMuZGF0YVtpXS5kYXR1bSk7fX0KLWlmKHRoaXMucmlnaHROb2RlXyl7dGhpcy5yaWdodE5vZGVfLmFwcGVuZEludGVyc2VjdGlvbnNJbnRvXyhyZXQscXVlcnlMb3cscXVlcnlIaWdoKTt9fSxnZXQgY29sb3VyKCl7cmV0dXJuIHRoaXMuY29sb3VyXzt9LHNldCBjb2xvdXIoY29sb3VyKXt0aGlzLmNvbG91cl89Y29sb3VyO30sZ2V0IGtleSgpe3JldHVybiB0aGlzLmxvd1ZhbHVlXzt9LGdldCBsb3dWYWx1ZSgpe3JldHVybiB0aGlzLmxvd1ZhbHVlXzt9LGdldCBoaWdoVmFsdWUoKXtyZXR1cm4gdGhpcy5kYXRhX1t0aGlzLmRhdGFfLmxlbmd0aC0xXS5oaWdoO30sc2V0IGxlZnROb2RlKGxlZnQpe3RoaXMubGVmdE5vZGVfPWxlZnQ7fSxnZXQgbGVmdE5vZGUoKXtyZXR1cm4gdGhpcy5sZWZ0Tm9kZV87fSxnZXQgaGFzTGVmdE5vZGUoKXtyZXR1cm4gdGhpcy5sZWZ0Tm9kZV8hPT11bmRlZmluZWQ7fSxzZXQgcmlnaHROb2RlKHJpZ2h0KXt0aGlzLnJpZ2h0Tm9kZV89cmlnaHQ7fSxnZXQgcmlnaHROb2RlKCl7cmV0dXJuIHRoaXMucmlnaHROb2RlXzt9LGdldCBoYXNSaWdodE5vZGUoKXtyZXR1cm4gdGhpcy5yaWdodE5vZGVfIT09dW5kZWZpbmVkO30sc2V0IHBhcmVudE5vZGUocGFyZW50KXt0aGlzLnBhcmVudE5vZGVfPXBhcmVudDt9LGdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZV87fSxnZXQgaXNSb290Tm9kZSgpe3JldHVybiB0aGlzLnBhcmVudE5vZGVfPT09dW5kZWZpbmVkO30sc2V0IG1heEhpZ2hMZWZ0KGhpZ2gpe3RoaXMubWF4SGlnaExlZnRfPWhpZ2g7fSxnZXQgbWF4SGlnaExlZnQoKXtyZXR1cm4gdGhpcy5tYXhIaWdoTGVmdF87fSxzZXQgbWF4SGlnaFJpZ2h0KGhpZ2gpe3RoaXMubWF4SGlnaFJpZ2h0Xz1oaWdoO30sZ2V0IG1heEhpZ2hSaWdodCgpe3JldHVybiB0aGlzLm1heEhpZ2hSaWdodF87fSxnZXQgZGF0YSgpe3JldHVybiB0aGlzLmRhdGFfO30sZ2V0IGlzUmVkKCl7cmV0dXJuIHRoaXMuY29sb3VyXz09PUNvbG91ci5SRUQ7fSxtZXJnZTpmdW5jdGlvbihub2RlKXtmb3IodmFyIGk9MDtpPG5vZGUuZGF0YS5sZW5ndGg7aSsrKQotdGhpcy5kYXRhXy5wdXNoKG5vZGUuZGF0YVtpXSk7dGhpcy5kYXRhXy5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuaGlnaC1iLmhpZ2g7fSk7fSxkdW1wOmZ1bmN0aW9uKCl7dmFyIHJldD17fTtpZih0aGlzLmxlZnROb2RlXykKLXJldFsnbGVmdCddPXRoaXMubGVmdE5vZGVfLmR1bXAoKTtyZXRbJ2RhdGEnXT10aGlzLmRhdGFfLm1hcChmdW5jdGlvbihkKXtyZXR1cm5bZC5sb3csZC5oaWdoXTt9KTtpZih0aGlzLnJpZ2h0Tm9kZV8pCi1yZXRbJ3JpZ2h0J109dGhpcy5yaWdodE5vZGVfLmR1bXAoKTtyZXR1cm4gcmV0O319O3JldHVybntJbnRlcnZhbFRyZWU6SW50ZXJ2YWxUcmVlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7dmFyIHJlY29yZFJBRlN0YWNrcz1mYWxzZTt2YXIgcGVuZGluZ1ByZUFGcz1bXTt2YXIgcGVuZGluZ1JBRnM9W107dmFyIHBlbmRpbmdJZGxlQ2FsbGJhY2tzPVtdO3ZhciBjdXJyZW50UkFGRGlzcGF0Y2hMaXN0PXVuZGVmaW5lZDt2YXIgcmFmU2NoZWR1bGVkPWZhbHNlO2Z1bmN0aW9uIHNjaGVkdWxlUkFGKCl7aWYocmFmU2NoZWR1bGVkKQotcmV0dXJuO3JhZlNjaGVkdWxlZD10cnVlO2lmKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocHJvY2Vzc1JlcXVlc3RzKTt9ZWxzZXt2YXIgZGVsdGE9RGF0ZS5ub3coKS13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7d2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbihkb21UaW1lU3RhbXApe3Byb2Nlc3NSZXF1ZXN0cyhkb21UaW1lU3RhbXAtZGVsdGEpO30pO319Ci1mdW5jdGlvbiBvbkFuaW1hdGlvbkZyYW1lRXJyb3IoZSxvcHRfc3RhY2spe2lmKG9wdF9zdGFjaykKLWNvbnNvbGUubG9nKG9wdF9zdGFjayk7aWYoZS5tZXNzYWdlKQotY29uc29sZS5lcnJvcihlLm1lc3NhZ2UsZS5zdGFjayk7ZWxzZQotY29uc29sZS5lcnJvcihlKTt9Ci1mdW5jdGlvbiBydW5UYXNrKHRhc2ssZnJhbWVCZWdpblRpbWUpe3RyeXt0YXNrLmNhbGxiYWNrLmNhbGwodGFzay5jb250ZXh0LGZyYW1lQmVnaW5UaW1lKTt9Y2F0Y2goZSl7dHIuYi5vbkFuaW1hdGlvbkZyYW1lRXJyb3IoZSx0YXNrLnN0YWNrKTt9fQotZnVuY3Rpb24gcHJvY2Vzc1JlcXVlc3RzKGZyYW1lQmVnaW5UaW1lKXt2YXIgcmFmQ29tcGxldGlvbkRlYWRsaW5lPWZyYW1lQmVnaW5UaW1lKzEwO3JhZlNjaGVkdWxlZD1mYWxzZTt2YXIgY3VycmVudFByZUFGcz1wZW5kaW5nUHJlQUZzO2N1cnJlbnRSQUZEaXNwYXRjaExpc3Q9cGVuZGluZ1JBRnM7cGVuZGluZ1ByZUFGcz1bXTtwZW5kaW5nUkFGcz1bXTt2YXIgaGFzUkFGVGFza3M9Y3VycmVudFByZUFGcy5sZW5ndGh8fGN1cnJlbnRSQUZEaXNwYXRjaExpc3QubGVuZ3RoO2Zvcih2YXIgaT0wO2k8Y3VycmVudFByZUFGcy5sZW5ndGg7aSsrKQotcnVuVGFzayhjdXJyZW50UHJlQUZzW2ldLGZyYW1lQmVnaW5UaW1lKTt3aGlsZShjdXJyZW50UkFGRGlzcGF0Y2hMaXN0Lmxlbmd0aD4wKQotcnVuVGFzayhjdXJyZW50UkFGRGlzcGF0Y2hMaXN0LnNoaWZ0KCksZnJhbWVCZWdpblRpbWUpO2N1cnJlbnRSQUZEaXNwYXRjaExpc3Q9dW5kZWZpbmVkO2lmKCFoYXNSQUZUYXNrcyl7d2hpbGUocGVuZGluZ0lkbGVDYWxsYmFja3MubGVuZ3RoPjApe3J1blRhc2socGVuZGluZ0lkbGVDYWxsYmFja3Muc2hpZnQoKSk7aWYod2luZG93LnBlcmZvcm1hbmNlLm5vdygpPj1yYWZDb21wbGV0aW9uRGVhZGxpbmUpCi1icmVhazt9fQotaWYocGVuZGluZ0lkbGVDYWxsYmFja3MubGVuZ3RoPjApCi1zY2hlZHVsZVJBRigpO30KLWZ1bmN0aW9uIGdldFN0YWNrXygpe2lmKCFyZWNvcmRSQUZTdGFja3MpCi1yZXR1cm4nJzt2YXIgc3RhY2tMaW5lcz10ci5iLnN0YWNrVHJhY2UoKTtzdGFja0xpbmVzLnNoaWZ0KCk7cmV0dXJuIHN0YWNrTGluZXMuam9pbignXG4nKTt9Ci1mdW5jdGlvbiByZXF1ZXN0UHJlQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2ssb3B0X3RoaXMpe3BlbmRpbmdQcmVBRnMucHVzaCh7Y2FsbGJhY2s6Y2FsbGJhY2ssY29udGV4dDpvcHRfdGhpc3x8d2luZG93LHN0YWNrOmdldFN0YWNrXygpfSk7c2NoZWR1bGVSQUYoKTt9Ci1mdW5jdGlvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUoY2FsbGJhY2ssb3B0X3RoaXMpe2lmKCFjdXJyZW50UkFGRGlzcGF0Y2hMaXN0KXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2ssb3B0X3RoaXMpO3JldHVybjt9Ci1jdXJyZW50UkFGRGlzcGF0Y2hMaXN0LnB1c2goe2NhbGxiYWNrOmNhbGxiYWNrLGNvbnRleHQ6b3B0X3RoaXN8fHdpbmRvdyxzdGFjazpnZXRTdGFja18oKX0pO3JldHVybjt9Ci1mdW5jdGlvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2ssb3B0X3RoaXMpe3BlbmRpbmdSQUZzLnB1c2goe2NhbGxiYWNrOmNhbGxiYWNrLGNvbnRleHQ6b3B0X3RoaXN8fHdpbmRvdyxzdGFjazpnZXRTdGFja18oKX0pO3NjaGVkdWxlUkFGKCk7fQotZnVuY3Rpb24gcmVxdWVzdElkbGVDYWxsYmFjayhjYWxsYmFjayxvcHRfdGhpcyl7cGVuZGluZ0lkbGVDYWxsYmFja3MucHVzaCh7Y2FsbGJhY2s6Y2FsbGJhY2ssY29udGV4dDpvcHRfdGhpc3x8d2luZG93LHN0YWNrOmdldFN0YWNrXygpfSk7c2NoZWR1bGVSQUYoKTt9Ci1mdW5jdGlvbiBmb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKGZyYW1lQmVnaW5UaW1lKXtpZighcmFmU2NoZWR1bGVkKQotcmV0dXJuO3Byb2Nlc3NSZXF1ZXN0cyhmcmFtZUJlZ2luVGltZSk7fQotcmV0dXJue29uQW5pbWF0aW9uRnJhbWVFcnJvcjpvbkFuaW1hdGlvbkZyYW1lRXJyb3IscmVxdWVzdFByZUFuaW1hdGlvbkZyYW1lOnJlcXVlc3RQcmVBbmltYXRpb25GcmFtZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWU6cmVxdWVzdEFuaW1hdGlvbkZyYW1lLHJlcXVlc3RBbmltYXRpb25GcmFtZUluVGhpc0ZyYW1lSWZQb3NzaWJsZTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUscmVxdWVzdElkbGVDYWxsYmFjazpyZXF1ZXN0SWRsZUNhbGxiYWNrLGZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW46Zm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFRhc2socnVuQ2IsdGhpc0FyZyl7aWYocnVuQ2IhPT11bmRlZmluZWQmJnRoaXNBcmc9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ0FsbW9zdCBjZXJ0YWlubHksIHlvdSBtZWFudCB0byBwYXNzIGEgdGhpc0FyZy4nKTt0aGlzLnJ1bkNiXz1ydW5DYjt0aGlzLnRoaXNBcmdfPXRoaXNBcmc7dGhpcy5hZnRlclRhc2tfPXVuZGVmaW5lZDt0aGlzLnN1YlRhc2tzXz1bXTt9Ci1UYXNrLnByb3RvdHlwZT17c3ViVGFzazpmdW5jdGlvbihjYix0aGlzQXJnKXtpZihjYiBpbnN0YW5jZW9mIFRhc2spCi10aGlzLnN1YlRhc2tzXy5wdXNoKGNiKTtlbHNlCi10aGlzLnN1YlRhc2tzXy5wdXNoKG5ldyBUYXNrKGNiLHRoaXNBcmcpKTtyZXR1cm4gdGhpcy5zdWJUYXNrc19bdGhpcy5zdWJUYXNrc18ubGVuZ3RoLTFdO30scnVuOmZ1bmN0aW9uKCl7aWYodGhpcy5ydW5DYl8hPT11bmRlZmluZWQpCi10aGlzLnJ1bkNiXy5jYWxsKHRoaXMudGhpc0FyZ18sdGhpcyk7dmFyIHN1YlRhc2tzPXRoaXMuc3ViVGFza3NfO3RoaXMuc3ViVGFza3NfPXVuZGVmaW5lZDtpZighc3ViVGFza3MubGVuZ3RoKQotcmV0dXJuIHRoaXMuYWZ0ZXJUYXNrXztmb3IodmFyIGk9MTtpPHN1YlRhc2tzLmxlbmd0aDtpKyspCi1zdWJUYXNrc1tpLTFdLmFmdGVyVGFza189c3ViVGFza3NbaV07c3ViVGFza3Nbc3ViVGFza3MubGVuZ3RoLTFdLmFmdGVyVGFza189dGhpcy5hZnRlclRhc2tfO3JldHVybiBzdWJUYXNrc1swXTt9LGFmdGVyOmZ1bmN0aW9uKGNiLHRoaXNBcmcpe2lmKHRoaXMuYWZ0ZXJUYXNrXykKLXRocm93IG5ldyBFcnJvcignSGFzIGFuIGFmdGVyIHRhc2sgYWxyZWFkeScpO2lmKGNiIGluc3RhbmNlb2YgVGFzaykKLXRoaXMuYWZ0ZXJUYXNrXz1jYjtlbHNlCi10aGlzLmFmdGVyVGFza189bmV3IFRhc2soY2IsdGhpc0FyZyk7cmV0dXJuIHRoaXMuYWZ0ZXJUYXNrXzt9LGVucXVldWU6ZnVuY3Rpb24oY2IsdGhpc0FyZyl7dmFyIGxhc3RUYXNrPXRoaXM7d2hpbGUobGFzdFRhc2suYWZ0ZXJUYXNrXykKLWxhc3RUYXNrPWxhc3RUYXNrLmFmdGVyVGFza187cmV0dXJuIGxhc3RUYXNrLmFmdGVyKGNiLHRoaXNBcmcpO319O1Rhc2suUnVuU3luY2hyb25vdXNseT1mdW5jdGlvbih0YXNrKXt2YXIgY3VyVGFzaz10YXNrO3doaWxlKGN1clRhc2spCi1jdXJUYXNrPWN1clRhc2sucnVuKCk7fQotVGFzay5SdW5XaGVuSWRsZT1mdW5jdGlvbih0YXNrKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSxyZWplY3Qpe3ZhciBjdXJUYXNrPXRhc2s7ZnVuY3Rpb24gcnVuQW5vdGhlcigpe3RyeXtjdXJUYXNrPWN1clRhc2sucnVuKCk7fWNhdGNoKGUpe3JlamVjdChlKTtjb25zb2xlLmVycm9yKGUuc3RhY2spO3JldHVybjt9Ci1pZihjdXJUYXNrKXt0ci5iLnJlcXVlc3RJZGxlQ2FsbGJhY2socnVuQW5vdGhlcik7cmV0dXJuO30KLXJlc29sdmUoKTt9Ci10ci5iLnJlcXVlc3RJZGxlQ2FsbGJhY2socnVuQW5vdGhlcik7fSk7fQotcmV0dXJue1Rhc2s6VGFza307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe2Z1bmN0aW9uIG1hdGNoTG93ZXIodmFsdWUscGF0dGVybil7cmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihwYXR0ZXJuKSE9PS0xO30KLWZ1bmN0aW9uIEZpbHRlcigpe30KLUZpbHRlci5wcm90b3R5cGU9e19fcHJvdG9fXzpPYmplY3QucHJvdG90eXBlLG1hdGNoQ291bnRlcjpmdW5jdGlvbihjb3VudGVyKXtyZXR1cm4gdHJ1ZTt9LG1hdGNoQ3B1OmZ1bmN0aW9uKGNwdSl7cmV0dXJuIHRydWU7fSxtYXRjaFByb2Nlc3M6ZnVuY3Rpb24ocHJvY2Vzcyl7cmV0dXJuIHRydWU7fSxtYXRjaFNsaWNlOmZ1bmN0aW9uKHNsaWNlKXtyZXR1cm4gdHJ1ZTt9LG1hdGNoVGhyZWFkOmZ1bmN0aW9uKHRocmVhZCl7cmV0dXJuIHRydWU7fX07ZnVuY3Rpb24gVGl0bGVPckNhdGVnb3J5RmlsdGVyKHRleHQpe0ZpbHRlci5jYWxsKHRoaXMpO3RoaXMudGV4dF89dGV4dC50b0xvd2VyQ2FzZSgpO2lmKCF0ZXh0Lmxlbmd0aCkKLXRocm93IG5ldyBFcnJvcignRmlsdGVyIHRleHQgaXMgZW1wdHkuJyk7fQotVGl0bGVPckNhdGVnb3J5RmlsdGVyLnByb3RvdHlwZT17X19wcm90b19fOkZpbHRlci5wcm90b3R5cGUsbWF0Y2hTbGljZTpmdW5jdGlvbihzbGljZSl7aWYoc2xpY2UudGl0bGU9PT11bmRlZmluZWQmJnNsaWNlLmNhdGVnb3J5PT09dW5kZWZpbmVkKQotcmV0dXJuIGZhbHNlO3JldHVybiBtYXRjaExvd2VyKHNsaWNlLnRpdGxlLHRoaXMudGV4dF8pfHwoISFzbGljZS5jYXRlZ29yeSYmbWF0Y2hMb3dlcihzbGljZS5jYXRlZ29yeSx0aGlzLnRleHRfKSk7fX07ZnVuY3Rpb24gRXhhY3RUaXRsZUZpbHRlcih0ZXh0KXtGaWx0ZXIuY2FsbCh0aGlzKTt0aGlzLnRleHRfPXRleHQ7aWYoIXRleHQubGVuZ3RoKQotdGhyb3cgbmV3IEVycm9yKCdGaWx0ZXIgdGV4dCBpcyBlbXB0eS4nKTt9Ci1FeGFjdFRpdGxlRmlsdGVyLnByb3RvdHlwZT17X19wcm90b19fOkZpbHRlci5wcm90b3R5cGUsbWF0Y2hTbGljZTpmdW5jdGlvbihzbGljZSl7cmV0dXJuIHNsaWNlLnRpdGxlPT09dGhpcy50ZXh0Xzt9fTtyZXR1cm57RmlsdGVyOkZpbHRlcixUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXI6VGl0bGVPckNhdGVnb3J5RmlsdGVyLEV4YWN0VGl0bGVGaWx0ZXI6RXhhY3RUaXRsZUZpbHRlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFJlZ2lzdGVyZWRUeXBlSW5mbyhjb25zdHJ1Y3RvcixtZXRhZGF0YSl7dGhpcy5jb25zdHJ1Y3Rvcj1jb25zdHJ1Y3Rvcjt0aGlzLm1ldGFkYXRhPW1ldGFkYXRhO307dmFyIEJBU0lDX1JFR0lTVFJZX01PREU9J0JBU0lDX1JFR0lTVFJZX01PREUnO3ZhciBUWVBFX0JBU0VEX1JFR0lTVFJZX01PREU9J1RZUEVfQkFTRURfUkVHSVNUUllfTU9ERSc7dmFyIEFMTF9NT0RFUz17QkFTSUNfUkVHSVNUUllfTU9ERTp0cnVlLFRZUEVfQkFTRURfUkVHSVNUUllfTU9ERTp0cnVlfTtmdW5jdGlvbiBFeHRlbnNpb25SZWdpc3RyeU9wdGlvbnMobW9kZSl7aWYobW9kZT09PXVuZGVmaW5lZCkKLXRocm93IG5ldyBFcnJvcignTW9kZSBpcyByZXF1aXJlZCcpO2lmKCFBTExfTU9ERVNbbW9kZV0pCi10aHJvdyBuZXcgRXJyb3IoJ05vdCBhIG1vZGUuJyk7dGhpcy5tb2RlXz1tb2RlO3RoaXMuZGVmYXVsdE1ldGFkYXRhXz17fTt0aGlzLmRlZmF1bHRDb25zdHJ1Y3Rvcl89dW5kZWZpbmVkO3RoaXMubWFuZGF0b3J5QmFzZUNsYXNzXz11bmRlZmluZWQ7dGhpcy5kZWZhdWx0VHlwZUluZm9fPXVuZGVmaW5lZDt0aGlzLmZyb3plbl89ZmFsc2U7fQotRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLnByb3RvdHlwZT17ZnJlZXplOmZ1bmN0aW9uKCl7aWYodGhpcy5mcm96ZW5fKQotdGhyb3cgbmV3IEVycm9yKCdGcm96ZW4nKTt0aGlzLmZyb3plbl89dHJ1ZTt9LGdldCBtb2RlKCl7cmV0dXJuIHRoaXMubW9kZV87fSxnZXQgZGVmYXVsdE1ldGFkYXRhKCl7cmV0dXJuIHRoaXMuZGVmYXVsdE1ldGFkYXRhXzt9LHNldCBkZWZhdWx0TWV0YWRhdGEoZGVmYXVsdE1ldGFkYXRhKXtpZih0aGlzLmZyb3plbl8pCi10aHJvdyBuZXcgRXJyb3IoJ0Zyb3plbicpO3RoaXMuZGVmYXVsdE1ldGFkYXRhXz1kZWZhdWx0TWV0YWRhdGE7dGhpcy5kZWZhdWx0VHlwZUluZm9fPXVuZGVmaW5lZDt9LGdldCBkZWZhdWx0Q29uc3RydWN0b3IoKXtyZXR1cm4gdGhpcy5kZWZhdWx0Q29uc3RydWN0b3JfO30sc2V0IGRlZmF1bHRDb25zdHJ1Y3RvcihkZWZhdWx0Q29uc3RydWN0b3Ipe2lmKHRoaXMuZnJvemVuXykKLXRocm93IG5ldyBFcnJvcignRnJvemVuJyk7dGhpcy5kZWZhdWx0Q29uc3RydWN0b3JfPWRlZmF1bHRDb25zdHJ1Y3Rvcjt0aGlzLmRlZmF1bHRUeXBlSW5mb189dW5kZWZpbmVkO30sZ2V0IGRlZmF1bHRUeXBlSW5mbygpe2lmKHRoaXMuZGVmYXVsdFR5cGVJbmZvXz09PXVuZGVmaW5lZCYmdGhpcy5kZWZhdWx0Q29uc3RydWN0b3JfKXt0aGlzLmRlZmF1bHRUeXBlSW5mb189bmV3IFJlZ2lzdGVyZWRUeXBlSW5mbyh0aGlzLmRlZmF1bHRDb25zdHJ1Y3Rvcix0aGlzLmRlZmF1bHRNZXRhZGF0YSk7fQotcmV0dXJuIHRoaXMuZGVmYXVsdFR5cGVJbmZvXzt9LHZhbGlkYXRlQ29uc3RydWN0b3I6ZnVuY3Rpb24oY29uc3RydWN0b3Ipe2lmKCF0aGlzLm1hbmRhdG9yeUJhc2VDbGFzcykKLXJldHVybjt2YXIgY3VyUHJvdG89Y29uc3RydWN0b3IucHJvdG90eXBlLl9fcHJvdG9fXzt2YXIgb2s9ZmFsc2U7d2hpbGUoY3VyUHJvdG8pe2lmKGN1clByb3RvPT09dGhpcy5tYW5kYXRvcnlCYXNlQ2xhc3MucHJvdG90eXBlKXtvaz10cnVlO2JyZWFrO30KLWN1clByb3RvPWN1clByb3RvLl9fcHJvdG9fXzt9Ci1pZighb2spCi10aHJvdyBuZXcgRXJyb3IoY29uc3RydWN0b3IrJ211c3QgYmUgc3ViY2xhc3Mgb2YgJytyZWdpc3RyeSk7fX07cmV0dXJue0JBU0lDX1JFR0lTVFJZX01PREU6QkFTSUNfUkVHSVNUUllfTU9ERSxUWVBFX0JBU0VEX1JFR0lTVFJZX01PREU6VFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFLEV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9uczpFeHRlbnNpb25SZWdpc3RyeU9wdGlvbnMsUmVnaXN0ZXJlZFR5cGVJbmZvOlJlZ2lzdGVyZWRUeXBlSW5mb307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe3ZhciBSZWdpc3RlcmVkVHlwZUluZm89dHIuYi5SZWdpc3RlcmVkVHlwZUluZm87dmFyIEV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucz10ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucztmdW5jdGlvbiBkZWNvcmF0ZUJhc2ljRXh0ZW5zaW9uUmVnaXN0cnkocmVnaXN0cnksZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKXt2YXIgc2F2ZWRTdGF0ZVN0YWNrPVtdO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfPVtdO3JlZ2lzdHJ5LnJlZ2lzdGVyPWZ1bmN0aW9uKGNvbnN0cnVjdG9yLG9wdF9tZXRhZGF0YSl7aWYocmVnaXN0cnkuZmluZEluZGV4T2ZSZWdpc3RlcmVkQ29uc3RydWN0b3IoY29uc3RydWN0b3IpIT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdIYW5kbGVyIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgJytjb25zdHJ1Y3Rvcik7ZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLnZhbGlkYXRlQ29uc3RydWN0b3IoY29uc3RydWN0b3IpO3ZhciBtZXRhZGF0YT17fTtmb3IodmFyIGsgaW4gZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRNZXRhZGF0YSkKLW1ldGFkYXRhW2tdPWV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucy5kZWZhdWx0TWV0YWRhdGFba107aWYob3B0X21ldGFkYXRhKXtmb3IodmFyIGsgaW4gb3B0X21ldGFkYXRhKQotbWV0YWRhdGFba109b3B0X21ldGFkYXRhW2tdO30KLXZhciB0eXBlSW5mbz1uZXcgUmVnaXN0ZXJlZFR5cGVJbmZvKGNvbnN0cnVjdG9yLG1ldGFkYXRhKTt2YXIgZT1uZXcgRXZlbnQoJ3dpbGwtcmVnaXN0ZXInKTtlLnR5cGVJbmZvPXR5cGVJbmZvO3JlZ2lzdHJ5LmRpc3BhdGNoRXZlbnQoZSk7cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18ucHVzaCh0eXBlSW5mbyk7ZT1uZXcgRXZlbnQoJ3JlZ2lzdHJ5LWNoYW5nZWQnKTtyZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpO307cmVnaXN0cnkucHVzaENsZWFuU3RhdGVCZWZvcmVUZXN0PWZ1bmN0aW9uKCl7c2F2ZWRTdGF0ZVN0YWNrLnB1c2gocmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18pO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfPVtdO3ZhciBlPW5ldyBFdmVudCgncmVnaXN0cnktY2hhbmdlZCcpO3JlZ2lzdHJ5LmRpc3BhdGNoRXZlbnQoZSk7fTtyZWdpc3RyeS5wb3BDbGVhblN0YXRlQWZ0ZXJUZXN0PWZ1bmN0aW9uKCl7cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc189c2F2ZWRTdGF0ZVN0YWNrWzBdO3NhdmVkU3RhdGVTdGFjay5zcGxpY2UoMCwxKTt2YXIgZT1uZXcgRXZlbnQoJ3JlZ2lzdHJ5LWNoYW5nZWQnKTtyZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpO307cmVnaXN0cnkuZmluZEluZGV4T2ZSZWdpc3RlcmVkQ29uc3RydWN0b3I9ZnVuY3Rpb24oY29uc3RydWN0b3Ipe2Zvcih2YXIgaT0wO2k8cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18ubGVuZ3RoO2krKykKLWlmKHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfW2ldLmNvbnN0cnVjdG9yPT1jb25zdHJ1Y3RvcikKLXJldHVybiBpO3JldHVybiB1bmRlZmluZWQ7fTtyZWdpc3RyeS51bnJlZ2lzdGVyPWZ1bmN0aW9uKGNvbnN0cnVjdG9yKXt2YXIgZm91bmRJbmRleD1yZWdpc3RyeS5maW5kSW5kZXhPZlJlZ2lzdGVyZWRDb25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvcik7aWYoZm91bmRJbmRleD09PXVuZGVmaW5lZCkKLXRocm93IG5ldyBFcnJvcihjb25zdHJ1Y3RvcisnIG5vdCByZWdpc3RlcmVkJyk7cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18uc3BsaWNlKGZvdW5kSW5kZXgsMSk7dmFyIGU9bmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3M9ZnVuY3Rpb24oKXtyZXR1cm4gcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc187fTtyZWdpc3RyeS5maW5kVHlwZUluZm89ZnVuY3Rpb24oY29uc3RydWN0b3Ipe3ZhciBmb3VuZEluZGV4PXRoaXMuZmluZEluZGV4T2ZSZWdpc3RlcmVkQ29uc3RydWN0b3IoY29uc3RydWN0b3IpO2lmKGZvdW5kSW5kZXghPT11bmRlZmluZWQpCi1yZXR1cm4gdGhpcy5yZWdpc3RlcmVkVHlwZUluZm9zX1tmb3VuZEluZGV4XTtyZXR1cm4gdW5kZWZpbmVkO307cmVnaXN0cnkuZmluZFR5cGVJbmZvTWF0Y2hpbmc9ZnVuY3Rpb24ocHJlZGljYXRlLG9wdF90aGlzKXtvcHRfdGhpcz1vcHRfdGhpcz9vcHRfdGhpczp1bmRlZmluZWQ7Zm9yKHZhciBpPTA7aTxyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5sZW5ndGg7KytpKXt2YXIgdHlwZUluZm89cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc19baV07aWYocHJlZGljYXRlLmNhbGwob3B0X3RoaXMsdHlwZUluZm8pKQotcmV0dXJuIHR5cGVJbmZvO30KLXJldHVybiBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMuZGVmYXVsdFR5cGVJbmZvO307fQotcmV0dXJue19kZWNvcmF0ZUJhc2ljRXh0ZW5zaW9uUmVnaXN0cnk6ZGVjb3JhdGVCYXNpY0V4dGVuc2lvblJlZ2lzdHJ5fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7dmFyIGNhdGVnb3J5UGFydHNGb3I9e307ZnVuY3Rpb24gZ2V0Q2F0ZWdvcnlQYXJ0cyhjYXRlZ29yeSl7dmFyIHBhcnRzPWNhdGVnb3J5UGFydHNGb3JbY2F0ZWdvcnldO2lmKHBhcnRzIT09dW5kZWZpbmVkKQotcmV0dXJuIHBhcnRzO3BhcnRzPWNhdGVnb3J5LnNwbGl0KCcsJyk7Y2F0ZWdvcnlQYXJ0c0ZvcltjYXRlZ29yeV09cGFydHM7cmV0dXJuIHBhcnRzO30KLXJldHVybntnZXRDYXRlZ29yeVBhcnRzOmdldENhdGVnb3J5UGFydHN9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXt2YXIgZ2V0Q2F0ZWdvcnlQYXJ0cz10ci5iLmdldENhdGVnb3J5UGFydHM7dmFyIFJlZ2lzdGVyZWRUeXBlSW5mbz10ci5iLlJlZ2lzdGVyZWRUeXBlSW5mbzt2YXIgRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zPXRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zO2Z1bmN0aW9uIGRlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnkocmVnaXN0cnksZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKXt2YXIgc2F2ZWRTdGF0ZVN0YWNrPVtdO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfPVtdO3JlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfPXt9O3JlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF89e307cmVnaXN0cnkucmVnaXN0ZXI9ZnVuY3Rpb24oY29uc3RydWN0b3IsbWV0YWRhdGEpe2V4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucy52YWxpZGF0ZUNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKTt2YXIgdHlwZUluZm89bmV3IFJlZ2lzdGVyZWRUeXBlSW5mbyhjb25zdHJ1Y3RvcixtZXRhZGF0YXx8ZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRNZXRhZGF0YSk7dHlwZUluZm8udHlwZU5hbWVzPVtdO3R5cGVJbmZvLmNhdGVnb3J5UGFydHM9W107aWYobWV0YWRhdGEmJm1ldGFkYXRhLnR5cGVOYW1lKQotdHlwZUluZm8udHlwZU5hbWVzLnB1c2gobWV0YWRhdGEudHlwZU5hbWUpO2lmKG1ldGFkYXRhJiZtZXRhZGF0YS50eXBlTmFtZXMpe3R5cGVJbmZvLnR5cGVOYW1lcy5wdXNoLmFwcGx5KHR5cGVJbmZvLnR5cGVOYW1lcyxtZXRhZGF0YS50eXBlTmFtZXMpO30KLWlmKG1ldGFkYXRhJiZtZXRhZGF0YS5jYXRlZ29yeVBhcnRzKXt0eXBlSW5mby5jYXRlZ29yeVBhcnRzLnB1c2guYXBwbHkodHlwZUluZm8uY2F0ZWdvcnlQYXJ0cyxtZXRhZGF0YS5jYXRlZ29yeVBhcnRzKTt9Ci1pZih0eXBlSW5mby50eXBlTmFtZXMubGVuZ3RoPT09MCYmdHlwZUluZm8uY2F0ZWdvcnlQYXJ0cy5sZW5ndGg9PT0wKQotdGhyb3cgbmV3IEVycm9yKCd0eXBlTmFtZSBvciB0eXBlTmFtZXMgbXVzdCBiZSBwcm92aWRlZCcpO3R5cGVJbmZvLnR5cGVOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGVOYW1lKXtpZihyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXSkKLXRocm93IG5ldyBFcnJvcigndHlwZU5hbWUgJyt0eXBlTmFtZSsnIGFscmVhZHkgcmVnaXN0ZXJlZCcpO30pO3R5cGVJbmZvLmNhdGVnb3J5UGFydHMuZm9yRWFjaChmdW5jdGlvbihjYXRlZ29yeVBhcnQpe2lmKHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF0pe3Rocm93IG5ldyBFcnJvcignY2F0ZWdvcnlQYXJ0ICcrY2F0ZWdvcnlQYXJ0KycgYWxyZWFkeSByZWdpc3RlcmVkJyk7fX0pO3ZhciBlPW5ldyBFdmVudCgnd2lsbC1yZWdpc3RlcicpO2UudHlwZUluZm89dHlwZUluZm87cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt0eXBlSW5mby50eXBlTmFtZXMuZm9yRWFjaChmdW5jdGlvbih0eXBlTmFtZSl7cmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwX1t0eXBlTmFtZV09dHlwZUluZm87fSk7dHlwZUluZm8uY2F0ZWdvcnlQYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKGNhdGVnb3J5UGFydCl7cmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF9bY2F0ZWdvcnlQYXJ0XT10eXBlSW5mbzt9KTtyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5wdXNoKHR5cGVJbmZvKTt2YXIgZT1uZXcgRXZlbnQoJ3JlZ2lzdHJ5LWNoYW5nZWQnKTtyZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpO307cmVnaXN0cnkucHVzaENsZWFuU3RhdGVCZWZvcmVUZXN0PWZ1bmN0aW9uKCl7c2F2ZWRTdGF0ZVN0YWNrLnB1c2goe3JlZ2lzdGVyZWRUeXBlSW5mb3M6cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18sdHlwZU5hbWVUb1R5cGVJbmZvTWFwOnJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF8sY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcDpyZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX30pO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfPVtdO3JlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF89e307cmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF89e307dmFyIGU9bmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LnBvcENsZWFuU3RhdGVBZnRlclRlc3Q9ZnVuY3Rpb24oKXt2YXIgc3RhdGU9c2F2ZWRTdGF0ZVN0YWNrWzBdO3NhdmVkU3RhdGVTdGFjay5zcGxpY2UoMCwxKTtyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXz1zdGF0ZS5yZWdpc3RlcmVkVHlwZUluZm9zO3JlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF89c3RhdGUudHlwZU5hbWVUb1R5cGVJbmZvTWFwO3JlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfPXN0YXRlLmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXA7dmFyIGU9bmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LnVucmVnaXN0ZXI9ZnVuY3Rpb24oY29uc3RydWN0b3Ipe3ZhciB0eXBlSW5mb0luZGV4PS0xO2Zvcih2YXIgaT0wO2k8cmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18ubGVuZ3RoO2krKyl7aWYocmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc19baV0uY29uc3RydWN0b3I9PWNvbnN0cnVjdG9yKXt0eXBlSW5mb0luZGV4PWk7YnJlYWs7fX0KLWlmKHR5cGVJbmZvSW5kZXg9PT0tMSkKLXRocm93IG5ldyBFcnJvcihjb25zdHJ1Y3RvcisnIG5vdCByZWdpc3RlcmVkJyk7dmFyIHR5cGVJbmZvPXJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfW3R5cGVJbmZvSW5kZXhdO3JlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLnNwbGljZSh0eXBlSW5mb0luZGV4LDEpO3R5cGVJbmZvLnR5cGVOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGVOYW1lKXtkZWxldGUgcmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwX1t0eXBlTmFtZV07fSk7dHlwZUluZm8uY2F0ZWdvcnlQYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKGNhdGVnb3J5UGFydCl7ZGVsZXRlIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF07fSk7dmFyIGU9bmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7cmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTt9O3JlZ2lzdHJ5LmdldFR5cGVJbmZvPWZ1bmN0aW9uKGNhdGVnb3J5LHR5cGVOYW1lKXtpZihjYXRlZ29yeSl7dmFyIGNhdGVnb3J5UGFydHM9Z2V0Q2F0ZWdvcnlQYXJ0cyhjYXRlZ29yeSk7Zm9yKHZhciBpPTA7aTxjYXRlZ29yeVBhcnRzLmxlbmd0aDtpKyspe3ZhciBjYXRlZ29yeVBhcnQ9Y2F0ZWdvcnlQYXJ0c1tpXTtpZihyZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdKQotcmV0dXJuIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF07fX0KLWlmKHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF9bdHlwZU5hbWVdKQotcmV0dXJuIHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF9bdHlwZU5hbWVdO3JldHVybiBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMuZGVmYXVsdFR5cGVJbmZvO307cmVnaXN0cnkuZ2V0Q29uc3RydWN0b3I9ZnVuY3Rpb24oY2F0ZWdvcnksdHlwZU5hbWUpe3ZhciB0eXBlSW5mbz1yZWdpc3RyeS5nZXRUeXBlSW5mbyhjYXRlZ29yeSx0eXBlTmFtZSk7aWYodHlwZUluZm8pCi1yZXR1cm4gdHlwZUluZm8uY29uc3RydWN0b3I7cmV0dXJuIHVuZGVmaW5lZDt9O30KLXJldHVybntfZGVjb3JhdGVUeXBlQmFzZWRFeHRlbnNpb25SZWdpc3RyeTpkZWNvcmF0ZVR5cGVCYXNlZEV4dGVuc2lvblJlZ2lzdHJ5fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShyZWdpc3RyeSxyZWdpc3RyeU9wdGlvbnMpe2lmKHJlZ2lzdHJ5LnJlZ2lzdGVyKQotdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IGhhcyByZWdpc3RyeScpO3JlZ2lzdHJ5T3B0aW9ucy5mcmVlemUoKTtpZihyZWdpc3RyeU9wdGlvbnMubW9kZT09dHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKXt0ci5iLl9kZWNvcmF0ZUJhc2ljRXh0ZW5zaW9uUmVnaXN0cnkocmVnaXN0cnkscmVnaXN0cnlPcHRpb25zKTt9ZWxzZSBpZihyZWdpc3RyeU9wdGlvbnMubW9kZT09dHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpe3RyLmIuX2RlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnkocmVnaXN0cnkscmVnaXN0cnlPcHRpb25zKTt9ZWxzZXt0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBtb2RlJyk7fQotaWYocmVnaXN0cnkuYWRkRXZlbnRMaXN0ZW5lcj09PXVuZGVmaW5lZCkKLXRyLmIuRXZlbnRUYXJnZXQuZGVjb3JhdGUocmVnaXN0cnkpO30KLXJldHVybntkZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5OmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnl9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXtmdW5jdGlvbiBBdWRpdG9yKG1vZGVsKXt9Ci1BdWRpdG9yLnByb3RvdHlwZT17X19wcm90b19fOk9iamVjdC5wcm90b3R5cGUscnVuQW5ub3RhdGU6ZnVuY3Rpb24oKXt9LHJ1bkF1ZGl0OmZ1bmN0aW9uKCl7fX07dmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7b3B0aW9ucy5kZWZhdWx0TWV0YWRhdGE9e307b3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3M9QXVkaXRvcjt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoQXVkaXRvcixvcHRpb25zKTtyZXR1cm57QXVkaXRvcjpBdWRpdG9yfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmltcG9ydGVyJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEltcG9ydGVyKCl7fQotSW1wb3J0ZXIucHJvdG90eXBlPXtfX3Byb3RvX186T2JqZWN0LnByb3RvdHlwZSxpc1RyYWNlRGF0YUNvbnRhaW5lcjpmdW5jdGlvbigpe3JldHVybiBmYWxzZTt9LGV4dHJhY3RTdWJ0cmFjZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXTt9LGltcG9ydEV2ZW50czpmdW5jdGlvbigpe30saW1wb3J0U2FtcGxlRGF0YTpmdW5jdGlvbigpe30sZmluYWxpemVJbXBvcnQ6ZnVuY3Rpb24oKXt9LGpvaW5SZWZzOmZ1bmN0aW9uKCl7fX07dmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7b3B0aW9ucy5kZWZhdWx0TWV0YWRhdGE9e307b3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3M9SW1wb3J0ZXI7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEltcG9ydGVyLG9wdGlvbnMpO0ltcG9ydGVyLmZpbmRJbXBvcnRlckZvcj1mdW5jdGlvbihldmVudERhdGEpe3ZhciB0eXBlSW5mbz1JbXBvcnRlci5maW5kVHlwZUluZm9NYXRjaGluZyhmdW5jdGlvbih0aSl7cmV0dXJuIHRpLmNvbnN0cnVjdG9yLmNhbkltcG9ydChldmVudERhdGEpO30pO2lmKHR5cGVJbmZvKQotcmV0dXJuIHR5cGVJbmZvLmNvbnN0cnVjdG9yO3JldHVybiB1bmRlZmluZWQ7fTtyZXR1cm57SW1wb3J0ZXI6SW1wb3J0ZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuaW1wb3J0ZXInLGZ1bmN0aW9uKCl7dmFyIEltcG9ydGVyPXRyLmltcG9ydGVyLkltcG9ydGVyO2Z1bmN0aW9uIEVtcHR5SW1wb3J0ZXIoZXZlbnRzKXt0aGlzLmltcG9ydFByaW9yaXR5PTA7fTtFbXB0eUltcG9ydGVyLmNhbkltcG9ydD1mdW5jdGlvbihldmVudERhdGEpe2lmKGV2ZW50RGF0YSBpbnN0YW5jZW9mIEFycmF5JiZldmVudERhdGEubGVuZ3RoPT0wKQotcmV0dXJuIHRydWU7aWYodHlwZW9mKGV2ZW50RGF0YSk9PT0nc3RyaW5nJ3x8ZXZlbnREYXRhIGluc3RhbmNlb2YgU3RyaW5nKXtyZXR1cm4gZXZlbnREYXRhLmxlbmd0aD09MDt9Ci1yZXR1cm4gZmFsc2U7fTtFbXB0eUltcG9ydGVyLnByb3RvdHlwZT17X19wcm90b19fOkltcG9ydGVyLnByb3RvdHlwZX07SW1wb3J0ZXIucmVnaXN0ZXIoRW1wdHlJbXBvcnRlcik7cmV0dXJue0VtcHR5SW1wb3J0ZXI6RW1wdHlJbXBvcnRlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBFdmVudENvbnRhaW5lcigpe3RoaXMuaW1wb3J0YW50PXRydWU7dGhpcy5ib3VuZHM9dW5kZWZpbmVkO30KLUV2ZW50Q29udGFpbmVyLnByb3RvdHlwZT17Z2V0IHN0YWJsZUlkKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30saXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30saXRlcmF0ZUFsbEV2ZW50czpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7dGhpcy5pdGVyYXRlQWxsRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGVjKXtlYy5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyKGZ1bmN0aW9uKGV2ZW50VHlwZSl7cmV0dXJuIHRydWU7fSxjYWxsYmFjayxvcHRfdGhpcyk7fSk7fSxpdGVyYXRlQWxsRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXtmdW5jdGlvbiB2aXNpdChlYyl7Y2FsbGJhY2suY2FsbChvcHRfdGhpcyxlYyk7ZWMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKHZpc2l0KTt9Ci12aXNpdCh0aGlzKTt9fTtyZXR1cm57RXZlbnRDb250YWluZXI6RXZlbnRDb250YWluZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRGV2aWNlKG1vZGVsKXtpZighbW9kZWwpCi10aHJvdyBuZXcgRXJyb3IoJ011c3QgcHJvdmlkZSBhIG1vZGVsLicpO3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7dGhpcy5ib3VuZHM9bmV3IHRyLmIuUmFuZ2UoKTt0aGlzLmd1aWQ9dHIuYi5HVUlELmFsbG9jYXRlKCk7fTtEZXZpY2UuY29tcGFyZT1mdW5jdGlvbih4LHkpe3JldHVybiB4Lmd1aWQteS5ndWlkO307RGV2aWNlLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSxjb21wYXJlVG86ZnVuY3Rpb24odGhhdCl7cmV0dXJuIERldmljZS5jb21wYXJlKHRoaXMsdGhhdCk7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidEZXZpY2UnO30sZ2V0IHVzZXJGcmllbmRseURldGFpbHMoKXtyZXR1cm4nRGV2aWNlJzt9LGdldCBzdGFibGVJZCgpe3JldHVybidEZXZpY2UnO30sZ2V0U2V0dGluZ3NLZXk6ZnVuY3Rpb24oKXtyZXR1cm4nZGV2aWNlJzt9LGdldCBjb3VudGVycygpe3JldHVybnt9O30sdXBkYXRlQm91bmRzOmZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMucmVzZXQoKTt9LHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6ZnVuY3Rpb24oYW1vdW50KXt9LGFkZENhdGVnb3JpZXNUb0RpY3Q6ZnVuY3Rpb24oY2F0ZWdvcmllc0RpY3Qpe30saXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjpmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsY2FsbGJhY2ssb3B0X3RoaXMpe30saXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt9fTtyZXR1cm57RGV2aWNlOkRldmljZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgU2VsZWN0aW9uU3RhdGU9e05PTkU6MCxTRUxFQ1RFRDoxLEhJR0hMSUdIVEVEOjIsRElNTUVEOjN9O3JldHVybntTZWxlY3Rpb25TdGF0ZTpTZWxlY3Rpb25TdGF0ZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7ZnVuY3Rpb24gU2VsZWN0YWJsZUl0ZW0obW9kZWxJdGVtKXt0aGlzLm1vZGVsSXRlbV89bW9kZWxJdGVtO30KLVNlbGVjdGFibGVJdGVtLnByb3RvdHlwZT17Z2V0IG1vZGVsSXRlbSgpe3JldHVybiB0aGlzLm1vZGVsSXRlbV87fSxnZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25TdGF0ZT09PVNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO30sYWRkVG9TZWxlY3Rpb246ZnVuY3Rpb24oc2VsZWN0aW9uKXt2YXIgbW9kZWxJdGVtPXRoaXMubW9kZWxJdGVtXztpZighbW9kZWxJdGVtKQotcmV0dXJuO3NlbGVjdGlvbi5wdXNoKG1vZGVsSXRlbSk7fSxhZGRUb1RyYWNrTWFwOmZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCx0cmFjayl7dmFyIG1vZGVsSXRlbT10aGlzLm1vZGVsSXRlbV87aWYoIW1vZGVsSXRlbSkKLXJldHVybjtldmVudFRvVHJhY2tNYXAuYWRkRXZlbnQobW9kZWxJdGVtLHRyYWNrKTt9fTtyZXR1cm57U2VsZWN0YWJsZUl0ZW06U2VsZWN0YWJsZUl0ZW19O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNlbGVjdGFibGVJdGVtPXRyLm1vZGVsLlNlbGVjdGFibGVJdGVtO3ZhciBTZWxlY3Rpb25TdGF0ZT10ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTt2YXIgY2F0ZWdvcnlQYXJ0c0Zvcj17fTtmdW5jdGlvbiBnZXRDYXRlZ29yeVBhcnRzKGNhdGVnb3J5KXt2YXIgcGFydHM9Y2F0ZWdvcnlQYXJ0c0ZvcltjYXRlZ29yeV07aWYocGFydHMhPT11bmRlZmluZWQpCi1yZXR1cm4gcGFydHM7cGFydHM9Y2F0ZWdvcnkuc3BsaXQoJywnKTtjYXRlZ29yeVBhcnRzRm9yW2NhdGVnb3J5XT1wYXJ0cztyZXR1cm4gcGFydHM7fQotZnVuY3Rpb24gRXZlbnQoKXtTZWxlY3RhYmxlSXRlbS5jYWxsKHRoaXMsdGhpcyk7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLnNlbGVjdGlvblN0YXRlPVNlbGVjdGlvblN0YXRlLk5PTkU7dGhpcy5hc3NvY2lhdGVkQWxlcnRzPVtdO3RoaXMuaW5mbz11bmRlZmluZWQ7fQotRXZlbnQucHJvdG90eXBlPXtfX3Byb3RvX186U2VsZWN0YWJsZUl0ZW0ucHJvdG90eXBlLGdldCBndWlkKCl7cmV0dXJuIHRoaXMuZ3VpZF87fX07ZnVuY3Rpb24gRXZlbnRSZWdpc3RyeSgpe30KLXZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZVR5cGU9RXZlbnQ7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEV2ZW50UmVnaXN0cnksb3B0aW9ucyk7RXZlbnRSZWdpc3RyeS5hZGRFdmVudExpc3RlbmVyKCd3aWxsLXJlZ2lzdGVyJyxmdW5jdGlvbihlKXt2YXIgbWV0YWRhdGE9ZS50eXBlSW5mby5tZXRhZGF0YTtpZihtZXRhZGF0YS5uYW1lPT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdSZWdpc3RlcmVkIGV2ZW50cyBtdXN0IHByb3ZpZGUgbmFtZSBtZXRhZGF0YScpO3ZhciBpPXRyLmIuZmluZEZpcnN0SW5BcnJheShFdmVudFJlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKSxmdW5jdGlvbih4KXtyZXR1cm4geC5tZXRhZGF0YS5uYW1lPT09bWV0YWRhdGEubmFtZTt9KTtpZihpIT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdFdmVudCB0eXBlIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgcmVnaXN0ZXJlZCcpO2lmKG1ldGFkYXRhLnBsdXJhbE5hbWU9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgZXZlbnRzIG11c3QgcHJvdmlkZSBwbHVyYWxOYW1lIG1ldGFkYXRhJyk7aWYobWV0YWRhdGEuc2luZ2xlVmlld0VsZW1lbnROYW1lPT09dW5kZWZpbmVkKXt0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgZXZlbnRzIG11c3QgcHJvdmlkZSAnKydzaW5nbGVWaWV3RWxlbWVudE5hbWUgbWV0YWRhdGEnKTt9Ci1pZihtZXRhZGF0YS5tdWx0aVZpZXdFbGVtZW50TmFtZT09PXVuZGVmaW5lZCl7dGhyb3cgbmV3IEVycm9yKCdSZWdpc3RlcmVkIGV2ZW50cyBtdXN0IHByb3ZpZGUgJysnbXVsdGlWaWV3RWxlbWVudE5hbWUgbWV0YWRhdGEnKTt9fSk7dmFyIGV2ZW50c0J5VHlwZU5hbWU9dW5kZWZpbmVkO0V2ZW50UmVnaXN0cnkuZ2V0RXZlbnRUeXBlSW5mb0J5VHlwZU5hbWU9ZnVuY3Rpb24odHlwZU5hbWUpe2lmKGV2ZW50c0J5VHlwZU5hbWU9PT11bmRlZmluZWQpe2V2ZW50c0J5VHlwZU5hbWU9e307RXZlbnRSZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCkuZm9yRWFjaChmdW5jdGlvbih0eXBlSW5mbyl7ZXZlbnRzQnlUeXBlTmFtZVt0eXBlSW5mby5tZXRhZGF0YS5uYW1lXT10eXBlSW5mbzt9KTt9Ci1yZXR1cm4gZXZlbnRzQnlUeXBlTmFtZVt0eXBlTmFtZV07fQotRXZlbnRSZWdpc3RyeS5hZGRFdmVudExpc3RlbmVyKCdyZWdpc3RyeS1jaGFuZ2VkJyxmdW5jdGlvbigpe2V2ZW50c0J5VHlwZU5hbWU9dW5kZWZpbmVkO30pO2Z1bmN0aW9uIGNvbnZlcnRDYW1lbENhc2VUb1RpdGxlQ2FzZShuYW1lKXt2YXIgcmVzdWx0PW5hbWUucmVwbGFjZSgvW0EtWl0vZywnICQmJyk7cmVzdWx0PXJlc3VsdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStyZXN1bHQuc2xpY2UoMSk7cmV0dXJuIHJlc3VsdDt9Ci1FdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVNpbmd1bGFyTmFtZT1mdW5jdGlvbih0eXBlTmFtZSl7dmFyIHR5cGVJbmZvPUV2ZW50UmVnaXN0cnkuZ2V0RXZlbnRUeXBlSW5mb0J5VHlwZU5hbWUodHlwZU5hbWUpO3ZhciBzdHI9dHlwZUluZm8ubWV0YWRhdGEubmFtZTtyZXR1cm4gY29udmVydENhbWVsQ2FzZVRvVGl0bGVDYXNlKHN0cik7fTtFdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVBsdXJhbE5hbWU9ZnVuY3Rpb24odHlwZU5hbWUpe3ZhciB0eXBlSW5mbz1FdmVudFJlZ2lzdHJ5LmdldEV2ZW50VHlwZUluZm9CeVR5cGVOYW1lKHR5cGVOYW1lKTt2YXIgc3RyPXR5cGVJbmZvLm1ldGFkYXRhLnBsdXJhbE5hbWU7cmV0dXJuIGNvbnZlcnRDYW1lbENhc2VUb1RpdGxlQ2FzZShzdHIpO307cmV0dXJue0V2ZW50OkV2ZW50LEV2ZW50UmVnaXN0cnk6RXZlbnRSZWdpc3RyeX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVuaXRzJyxmdW5jdGlvbigpe3ZhciBtcz17c3VmZml4OidtcycsZm9ybWF0OmZ1bmN0aW9uKHRzKXt2YXIgdHNSb3VuZGVkPU1hdGgucm91bmQodHMqMTAwMC4wKS8xMDAwLjA7dmFyIG49bmV3IE51bWJlcih0c1JvdW5kZWQpO3JldHVybiBuLnRvTG9jYWxlU3RyaW5nKHVuZGVmaW5lZCx7bWluaW11bUZyYWN0aW9uRGlnaXRzOjN9KSsnIG1zJzt9fTt2YXIgbnM9e3N1ZmZpeDonbnMnLGZvcm1hdDpmdW5jdGlvbih0cyl7dmFyIHRzUm91bmRlZD1NYXRoLnJvdW5kKHRzKjEwMDAwMDAuMCk7dmFyIG49bmV3IE51bWJlcih0c1JvdW5kZWQpO3JldHVybiBuLnRvTG9jYWxlU3RyaW5nKHVuZGVmaW5lZCx7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjB9KSsnIG5zJzt9fTt2YXIgVGltZT17c3VwcG9ydGVkVW5pdHM6e21zOm1zLG5zOm5zfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuY3VycmVudERpc3BsYXlVbml0PW1zO30sY3VycmVudERpc3BsYXlVbml0XzptcyxnZXQgY3VycmVudERpc3BsYXlVbml0KCl7cmV0dXJuIHRoaXMuY3VycmVudERpc3BsYXlVbml0Xzt9LHNldCBjdXJyZW50RGlzcGxheVVuaXQodmFsdWUpe2lmKHRoaXMuY3VycmVudERpc3BsYXlVbml0Xz09dmFsdWUpCi1yZXR1cm47dGhpcy5jdXJyZW50RGlzcGxheVVuaXRfPXZhbHVlO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Rpc3BsYXktdW5pdC1jaGFuZ2VkJykpO319O3RyLmIuRXZlbnRUYXJnZXQuZGVjb3JhdGUoVGltZSk7cmV0dXJue1RpbWU6VGltZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVuaXRzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIHRzU3RyaW5nKHRzKXtyZXR1cm4gdHIuYi51bml0cy5UaW1lLmN1cnJlbnREaXNwbGF5VW5pdC5mb3JtYXQodHMpO30KLXJldHVybnt0c1N0cmluZzp0c1N0cmluZ307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoYXJ5LG1hcEZuLGxvVmFsKXtpZihhcnkubGVuZ3RoPT0wKQotcmV0dXJuIDE7dmFyIGxvdz0wO3ZhciBoaWdoPWFyeS5sZW5ndGgtMTt2YXIgaSxjb21wYXJpc29uO3ZhciBoaXRQb3M9LTE7d2hpbGUobG93PD1oaWdoKXtpPU1hdGguZmxvb3IoKGxvdytoaWdoKS8yKTtjb21wYXJpc29uPW1hcEZuKGFyeVtpXSktbG9WYWw7aWYoY29tcGFyaXNvbjwwKXtsb3c9aSsxO2NvbnRpbnVlO31lbHNlIGlmKGNvbXBhcmlzb24+MCl7aGlnaD1pLTE7Y29udGludWU7fWVsc2V7aGl0UG9zPWk7aGlnaD1pLTE7fX0KLXJldHVybiBoaXRQb3MhPS0xP2hpdFBvczpsb3c7fQotZnVuY3Rpb24gZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMoYXJ5LG1hcExvRm4sbWFwV2lkdGhGbixsb1ZhbCl7dmFyIGZpcnN0PWZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoYXJ5LG1hcExvRm4sbG9WYWwpO2lmKGZpcnN0PT0wKXtpZihsb1ZhbD49bWFwTG9GbihhcnlbMF0pJiZsb1ZhbDxtYXBMb0ZuKGFyeVswXSkrbWFwV2lkdGhGbihhcnlbMF0sMCkpe3JldHVybiAwO31lbHNle3JldHVybi0xO319ZWxzZSBpZihmaXJzdDxhcnkubGVuZ3RoKXtpZihsb1ZhbD49bWFwTG9GbihhcnlbZmlyc3RdKSYmbG9WYWw8bWFwTG9GbihhcnlbZmlyc3RdKSttYXBXaWR0aEZuKGFyeVtmaXJzdF0sZmlyc3QpKXtyZXR1cm4gZmlyc3Q7fWVsc2UgaWYobG9WYWw+PW1hcExvRm4oYXJ5W2ZpcnN0LTFdKSYmbG9WYWw8bWFwTG9GbihhcnlbZmlyc3QtMV0pKwotbWFwV2lkdGhGbihhcnlbZmlyc3QtMV0sZmlyc3QtMSkpe3JldHVybiBmaXJzdC0xO31lbHNle3JldHVybiBhcnkubGVuZ3RoO319ZWxzZSBpZihmaXJzdD09YXJ5Lmxlbmd0aCl7aWYobG9WYWw+PW1hcExvRm4oYXJ5W2ZpcnN0LTFdKSYmbG9WYWw8bWFwTG9GbihhcnlbZmlyc3QtMV0pKwotbWFwV2lkdGhGbihhcnlbZmlyc3QtMV0sZmlyc3QtMSkpe3JldHVybiBmaXJzdC0xO31lbHNle3JldHVybiBhcnkubGVuZ3RoO319ZWxzZXtyZXR1cm4gYXJ5Lmxlbmd0aDt9fQotZnVuY3Rpb24gZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHMoYXJ5LG1hcExvRm4sbWFwSGlGbix2YWwpe3ZhciBpPWZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoYXJ5LG1hcExvRm4sdmFsKTtpZihpPT09MCl7aWYodmFsPj1tYXBMb0ZuKGFyeVswXSwwKSYmdmFsPD1tYXBIaUZuKGFyeVswXSwwKSl7cmV0dXJuIDA7fWVsc2V7cmV0dXJuLTE7fX1lbHNlIGlmKGk8YXJ5Lmxlbmd0aCl7aWYodmFsPj1tYXBMb0ZuKGFyeVtpLTFdLGktMSkmJnZhbDw9bWFwSGlGbihhcnlbaS0xXSxpLTEpKXtyZXR1cm4gaS0xO31lbHNlIGlmKHZhbD49bWFwTG9GbihhcnlbaV0saSkmJnZhbDw9bWFwSGlGbihhcnlbaV0saSkpe3JldHVybiBpO31lbHNle3JldHVybiBhcnkubGVuZ3RoO319ZWxzZSBpZihpPT1hcnkubGVuZ3RoKXtpZih2YWw+PW1hcExvRm4oYXJ5W2ktMV0saS0xKSYmdmFsPD1tYXBIaUZuKGFyeVtpLTFdLGktMSkpe3JldHVybiBpLTE7fWVsc2V7cmV0dXJuIGFyeS5sZW5ndGg7fX1lbHNle3JldHVybiBhcnkubGVuZ3RoO319Ci1mdW5jdGlvbiBpdGVyYXRlT3ZlckludGVyc2VjdGluZ0ludGVydmFscyhhcnksbWFwTG9GbixtYXBXaWR0aEZuLGxvVmFsLGhpVmFsLGNiKXtpZihhcnkubGVuZ3RoPT0wKQotcmV0dXJuO2lmKGxvVmFsPmhpVmFsKXJldHVybjt2YXIgaT1maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KGFyeSxtYXBMb0ZuLGxvVmFsKTtpZihpPT0tMSl7cmV0dXJuO30KLWlmKGk+MCl7dmFyIGhpPW1hcExvRm4oYXJ5W2ktMV0pK21hcFdpZHRoRm4oYXJ5W2ktMV0saS0xKTtpZihoaT49bG9WYWwpe2NiKGFyeVtpLTFdLGktMSk7fX0KLWlmKGk9PWFyeS5sZW5ndGgpe3JldHVybjt9Ci1mb3IodmFyIG49YXJ5Lmxlbmd0aDtpPG47aSsrKXt2YXIgbG89bWFwTG9GbihhcnlbaV0pO2lmKGxvPj1oaVZhbCkKLWJyZWFrO2NiKGFyeVtpXSxpKTt9fQotZnVuY3Rpb24gZ2V0SW50ZXJzZWN0aW5nSW50ZXJ2YWxzKGFyeSxtYXBMb0ZuLG1hcFdpZHRoRm4sbG9WYWwsaGlWYWwpe3ZhciB0bXA9W107aXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMoYXJ5LG1hcExvRm4sbWFwV2lkdGhGbixsb1ZhbCxoaVZhbCxmdW5jdGlvbihkKXt0bXAucHVzaChkKTt9KTtyZXR1cm4gdG1wO30KLWZ1bmN0aW9uIGZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXkoYXJ5LG1hcEZuLHZhbCxtYXhEaWZmKXtpZihhcnkubGVuZ3RoPT09MCkKLXJldHVybiBudWxsO3ZhciBhZnRJZHg9ZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheShhcnksbWFwRm4sdmFsKTt2YXIgYmVmSWR4PWFmdElkeD4wP2FmdElkeC0xOjA7aWYoYWZ0SWR4PT09YXJ5Lmxlbmd0aCkKLWFmdElkeC09MTt2YXIgYmVmRGlmZj1NYXRoLmFicyh2YWwtbWFwRm4oYXJ5W2JlZklkeF0pKTt2YXIgYWZ0RGlmZj1NYXRoLmFicyh2YWwtbWFwRm4oYXJ5W2FmdElkeF0pKTtpZihiZWZEaWZmPm1heERpZmYmJmFmdERpZmY+bWF4RGlmZikKLXJldHVybiBudWxsO3ZhciBpZHg9YmVmRGlmZjxhZnREaWZmP2JlZklkeDphZnRJZHg7cmV0dXJuIGFyeVtpZHhdO30KLWZ1bmN0aW9uIGZpbmRDbG9zZXN0SW50ZXJ2YWxJblNvcnRlZEludGVydmFscyhhcnksbWFwTG9GbixtYXBIaUZuLHZhbCxtYXhEaWZmKXtpZihhcnkubGVuZ3RoPT09MCkKLXJldHVybiBudWxsO3ZhciBpZHg9ZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheShhcnksbWFwTG9Gbix2YWwpO2lmKGlkeD4wKQotaWR4LT0xO3ZhciBoaUludD1hcnlbaWR4XTt2YXIgbG9JbnQ9aGlJbnQ7aWYodmFsPm1hcEhpRm4oaGlJbnQpJiZpZHgrMTxhcnkubGVuZ3RoKQotbG9JbnQ9YXJ5W2lkeCsxXTt2YXIgbG9EaWZmPU1hdGguYWJzKHZhbC1tYXBMb0ZuKGxvSW50KSk7dmFyIGhpRGlmZj1NYXRoLmFicyh2YWwtbWFwSGlGbihoaUludCkpO2lmKGxvRGlmZj5tYXhEaWZmJiZoaURpZmY+bWF4RGlmZikKLXJldHVybiBudWxsO2lmKGxvRGlmZjxoaURpZmYpCi1yZXR1cm4gbG9JbnQ7ZWxzZQotcmV0dXJuIGhpSW50O30KLXJldHVybntmaW5kTG93SW5kZXhJblNvcnRlZEFycmF5OmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXksZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHM6ZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMsZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHM6ZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHMsaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHM6aXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMsZ2V0SW50ZXJzZWN0aW5nSW50ZXJ2YWxzOmdldEludGVyc2VjdGluZ0ludGVydmFscyxmaW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5OmZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXksZmluZENsb3Nlc3RJbnRlcnZhbEluU29ydGVkSW50ZXJ2YWxzOmZpbmRDbG9zZXN0SW50ZXJ2YWxJblNvcnRlZEludGVydmFsc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBDb3VudGVyU2FtcGxlKHNlcmllcyx0aW1lc3RhbXAsdmFsdWUpe3RyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7dGhpcy5zZXJpZXNfPXNlcmllczt0aGlzLnRpbWVzdGFtcF89dGltZXN0YW1wO3RoaXMudmFsdWVfPXZhbHVlO30KLUNvdW50ZXJTYW1wbGUuZ3JvdXBCeVRpbWVzdGFtcD1mdW5jdGlvbihzYW1wbGVzKXt2YXIgc2FtcGxlc0J5VGltZXN0YW1wPXRyLmIuZ3JvdXAoc2FtcGxlcyxmdW5jdGlvbihzYW1wbGUpe3JldHVybiBzYW1wbGUudGltZXN0YW1wO30pO3ZhciB0aW1lc3RhbXBzPXRyLmIuZGljdGlvbmFyeUtleXMoc2FtcGxlc0J5VGltZXN0YW1wKTt0aW1lc3RhbXBzLnNvcnQoKTt2YXIgZ3JvdXBzPVtdO2Zvcih2YXIgaT0wO2k8dGltZXN0YW1wcy5sZW5ndGg7aSsrKXt2YXIgdHM9dGltZXN0YW1wc1tpXTt2YXIgZ3JvdXA9c2FtcGxlc0J5VGltZXN0YW1wW3RzXTtncm91cC5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHguc2VyaWVzLnNlcmllc0luZGV4LXkuc2VyaWVzLnNlcmllc0luZGV4O30pO2dyb3Vwcy5wdXNoKGdyb3VwKTt9Ci1yZXR1cm4gZ3JvdXBzO30KLUNvdW50ZXJTYW1wbGUucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnQucHJvdG90eXBlLGdldCBzZXJpZXMoKXtyZXR1cm4gdGhpcy5zZXJpZXNfO30sZ2V0IHRpbWVzdGFtcCgpe3JldHVybiB0aGlzLnRpbWVzdGFtcF87fSxnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZV87fSxzZXQgdGltZXN0YW1wKHRpbWVzdGFtcCl7dGhpcy50aW1lc3RhbXBfPXRpbWVzdGFtcDt9LGFkZEJvdW5kc1RvUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe3JhbmdlLmFkZFZhbHVlKHRoaXMudGltZXN0YW1wKTt9LGdldFNhbXBsZUluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSh0aGlzLnNlcmllcy50aW1lc3RhbXBzLGZ1bmN0aW9uKHgpe3JldHVybiB4O30sdGhpcy50aW1lc3RhbXBfKTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuJ0NvdW50ZXIgc2FtcGxlIGZyb20gJyt0aGlzLnNlcmllc18udGl0bGUrJyBhdCAnKwotdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnRpbWVzdGFtcCk7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihDb3VudGVyU2FtcGxlLHtuYW1lOidjb3VudGVyU2FtcGxlJyxwbHVyYWxOYW1lOidjb3VudGVyU2FtcGxlcycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci1jLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci1jLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnfSk7cmV0dXJue0NvdW50ZXJTYW1wbGU6Q291bnRlclNhbXBsZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgQ291bnRlclNhbXBsZT10ci5tb2RlbC5Db3VudGVyU2FtcGxlO2Z1bmN0aW9uIENvdW50ZXJTZXJpZXMobmFtZSxjb2xvcil7dHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMubmFtZV89bmFtZTt0aGlzLmNvbG9yXz1jb2xvcjt0aGlzLnRpbWVzdGFtcHNfPVtdO3RoaXMuc2FtcGxlc189W107dGhpcy5jb3VudGVyPXVuZGVmaW5lZDt0aGlzLnNlcmllc0luZGV4PXVuZGVmaW5lZDt9Ci1Db3VudGVyU2VyaWVzLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSxnZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMudGltZXN0YW1wc18ubGVuZ3RoO30sZ2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5uYW1lXzt9LGdldCBjb2xvcigpe3JldHVybiB0aGlzLmNvbG9yXzt9LGdldCBzYW1wbGVzKCl7cmV0dXJuIHRoaXMuc2FtcGxlc187fSxnZXQgdGltZXN0YW1wcygpe3JldHVybiB0aGlzLnRpbWVzdGFtcHNfO30sZ2V0U2FtcGxlOmZ1bmN0aW9uKGlkeCl7cmV0dXJuIHRoaXMuc2FtcGxlc19baWR4XTt9LGdldFRpbWVzdGFtcDpmdW5jdGlvbihpZHgpe3JldHVybiB0aGlzLnRpbWVzdGFtcHNfW2lkeF07fSxhZGRDb3VudGVyU2FtcGxlOmZ1bmN0aW9uKHRzLHZhbCl7dmFyIHNhbXBsZT1uZXcgQ291bnRlclNhbXBsZSh0aGlzLHRzLHZhbCk7dGhpcy5hZGRTYW1wbGUoc2FtcGxlKTtyZXR1cm4gc2FtcGxlO30sYWRkU2FtcGxlOmZ1bmN0aW9uKHNhbXBsZSl7dGhpcy50aW1lc3RhbXBzXy5wdXNoKHNhbXBsZS50aW1lc3RhbXApO3RoaXMuc2FtcGxlc18ucHVzaChzYW1wbGUpO30sZ2V0U3RhdGlzdGljczpmdW5jdGlvbihzYW1wbGVJbmRpY2VzKXt2YXIgc3VtPTA7dmFyIG1pbj1OdW1iZXIuTUFYX1ZBTFVFO3ZhciBtYXg9LU51bWJlci5NQVhfVkFMVUU7Zm9yKHZhciBpPTA7aTxzYW1wbGVJbmRpY2VzLmxlbmd0aDsrK2kpe3ZhciBzYW1wbGU9dGhpcy5nZXRTYW1wbGUoc2FtcGxlSW5kaWNlc1tpXSkudmFsdWU7c3VtKz1zYW1wbGU7bWluPU1hdGgubWluKHNhbXBsZSxtaW4pO21heD1NYXRoLm1heChzYW1wbGUsbWF4KTt9Ci1yZXR1cm57bWluOm1pbixtYXg6bWF4LGF2Zzooc3VtL3NhbXBsZUluZGljZXMubGVuZ3RoKSxzdGFydDp0aGlzLmdldFNhbXBsZShzYW1wbGVJbmRpY2VzWzBdKS52YWx1ZSxlbmQ6dGhpcy5nZXRTYW1wbGUoc2FtcGxlSW5kaWNlcy5sZW5ndGgtMSkudmFsdWV9O30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe2Zvcih2YXIgaT0wO2k8dGhpcy50aW1lc3RhbXBzXy5sZW5ndGg7KytpKXt0aGlzLnRpbWVzdGFtcHNfW2ldKz1hbW91bnQ7dGhpcy5zYW1wbGVzX1tpXS50aW1lc3RhbXA9dGhpcy50aW1lc3RhbXBzX1tpXTt9fSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsdHIubW9kZWwuQ291bnRlclNhbXBsZSkpe3RoaXMuc2FtcGxlc18uZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7fX0saXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt9fTtyZXR1cm57Q291bnRlclNlcmllczpDb3VudGVyU2VyaWVzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIENvdW50ZXIocGFyZW50LGlkLGNhdGVnb3J5LG5hbWUpe3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLnBhcmVudF89cGFyZW50O3RoaXMuaWRfPWlkO3RoaXMuY2F0ZWdvcnlfPWNhdGVnb3J5fHwnJzt0aGlzLm5hbWVfPW5hbWU7dGhpcy5zZXJpZXNfPVtdO3RoaXMudG90YWxzPVtdO3RoaXMuYm91bmRzPW5ldyB0ci5iLlJhbmdlKCk7fQotQ291bnRlci5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsZ2V0IGd1aWQoKXtyZXR1cm4gdGhpcy5ndWlkXzt9LGdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5wYXJlbnRfO30sZ2V0IGlkKCl7cmV0dXJuIHRoaXMuaWRfO30sZ2V0IGNhdGVnb3J5KCl7cmV0dXJuIHRoaXMuY2F0ZWdvcnlfO30sZ2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5uYW1lXzt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLnNlcmllc18ubGVuZ3RoO2krKykKLWNhbGxiYWNrLmNhbGwob3B0X3RoaXMsdGhpcy5zZXJpZXNfW2ldKTt9LHNldCB0aW1lc3RhbXBzKGFyZyl7dGhyb3cgbmV3IEVycm9yKCdCYWQgY291bnRlciBBUEkuIE5vIGNvb2tpZS4nKTt9LHNldCBzZXJpZXNOYW1lcyhhcmcpe3Rocm93IG5ldyBFcnJvcignQmFkIGNvdW50ZXIgQVBJLiBObyBjb29raWUuJyk7fSxzZXQgc2VyaWVzQ29sb3JzKGFyZyl7dGhyb3cgbmV3IEVycm9yKCdCYWQgY291bnRlciBBUEkuIE5vIGNvb2tpZS4nKTt9LHNldCBzYW1wbGVzKGFyZyl7dGhyb3cgbmV3IEVycm9yKCdCYWQgY291bnRlciBBUEkuIE5vIGNvb2tpZS4nKTt9LGFkZFNlcmllczpmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5jb3VudGVyPXRoaXM7c2VyaWVzLnNlcmllc0luZGV4PXRoaXMuc2VyaWVzXy5sZW5ndGg7dGhpcy5zZXJpZXNfLnB1c2goc2VyaWVzKTtyZXR1cm4gc2VyaWVzO30sZ2V0U2VyaWVzOmZ1bmN0aW9uKGlkeCl7cmV0dXJuIHRoaXMuc2VyaWVzX1tpZHhdO30sZ2V0IHNlcmllcygpe3JldHVybiB0aGlzLnNlcmllc187fSxnZXQgbnVtU2VyaWVzKCl7cmV0dXJuIHRoaXMuc2VyaWVzXy5sZW5ndGg7fSxnZXQgbnVtU2FtcGxlcygpe2lmKHRoaXMuc2VyaWVzXy5sZW5ndGg9PT0wKQotcmV0dXJuIDA7cmV0dXJuIHRoaXMuc2VyaWVzX1swXS5sZW5ndGg7fSxnZXQgdGltZXN0YW1wcygpe2lmKHRoaXMuc2VyaWVzXy5sZW5ndGg9PT0wKQotcmV0dXJuW107cmV0dXJuIHRoaXMuc2VyaWVzX1swXS50aW1lc3RhbXBzO30sZ2V0U2FtcGxlU3RhdGlzdGljczpmdW5jdGlvbihzYW1wbGVJbmRpY2VzKXtzYW1wbGVJbmRpY2VzLnNvcnQoKTt2YXIgcmV0PVtdO3RoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7cmV0LnB1c2goc2VyaWVzLmdldFN0YXRpc3RpY3Moc2FtcGxlSW5kaWNlcykpO30pO3JldHVybiByZXQ7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7Zm9yKHZhciBpPTA7aTx0aGlzLnNlcmllc18ubGVuZ3RoOysraSkKLXRoaXMuc2VyaWVzX1tpXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7fSx1cGRhdGVCb3VuZHM6ZnVuY3Rpb24oKXt0aGlzLnRvdGFscz1bXTt0aGlzLm1heFRvdGFsPTA7dGhpcy5ib3VuZHMucmVzZXQoKTtpZih0aGlzLnNlcmllc18ubGVuZ3RoPT09MCkKLXJldHVybjt2YXIgZmlyc3RTZXJpZXM9dGhpcy5zZXJpZXNfWzBdO3ZhciBsYXN0U2VyaWVzPXRoaXMuc2VyaWVzX1t0aGlzLnNlcmllc18ubGVuZ3RoLTFdO3RoaXMuYm91bmRzLmFkZFZhbHVlKGZpcnN0U2VyaWVzLmdldFRpbWVzdGFtcCgwKSk7dGhpcy5ib3VuZHMuYWRkVmFsdWUobGFzdFNlcmllcy5nZXRUaW1lc3RhbXAobGFzdFNlcmllcy5sZW5ndGgtMSkpO3ZhciBudW1TZXJpZXM9dGhpcy5udW1TZXJpZXM7dGhpcy5tYXhUb3RhbD0tSW5maW5pdHk7Zm9yKHZhciBpPTA7aTxmaXJzdFNlcmllcy5sZW5ndGg7KytpKXt2YXIgdG90YWw9MDt0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3RvdGFsKz1zZXJpZXMuZ2V0U2FtcGxlKGkpLnZhbHVlO3RoaXMudG90YWxzLnB1c2godG90YWwpO30uYmluZCh0aGlzKSk7dGhpcy5tYXhUb3RhbD1NYXRoLm1heCh0b3RhbCx0aGlzLm1heFRvdGFsKTt9fX07Q291bnRlci5jb21wYXJlPWZ1bmN0aW9uKHgseSl7dmFyIHRtcD14LnBhcmVudC5jb21wYXJlVG8oeSk7aWYodG1wIT0wKQotcmV0dXJuIHRtcDt2YXIgdG1wPXgubmFtZS5sb2NhbGVDb21wYXJlKHkubmFtZSk7aWYodG1wPT0wKQotcmV0dXJuIHgudGlkLXkudGlkO3JldHVybiB0bXA7fTtyZXR1cm57Q291bnRlcjpDb3VudGVyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFRpbWVkRXZlbnQoc3RhcnQpe3RyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7dGhpcy5zdGFydD1zdGFydDt0aGlzLmR1cmF0aW9uPTA7dGhpcy5jcHVTdGFydD11bmRlZmluZWQ7dGhpcy5jcHVEdXJhdGlvbj11bmRlZmluZWQ7fQotVGltZWRFdmVudC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsZ2V0IGVuZCgpe3JldHVybiB0aGlzLnN0YXJ0K3RoaXMuZHVyYXRpb247fSxhZGRCb3VuZHNUb1JhbmdlOmZ1bmN0aW9uKHJhbmdlKXtyYW5nZS5hZGRWYWx1ZSh0aGlzLnN0YXJ0KTtyYW5nZS5hZGRWYWx1ZSh0aGlzLmVuZCk7fSxib3VuZHM6ZnVuY3Rpb24odGhhdCl7dmFyIHRoaXNfZW5kX21pY3Jvcz1NYXRoLnJvdW5kKHRoaXMuZW5kKjEwMDApO3ZhciB0aGF0X2VuZF9taWNyb3M9TWF0aC5yb3VuZCh0aGF0LmVuZCoxMDAwKTtyZXR1cm4gdGhpcy5zdGFydDw9dGhhdC5zdGFydCYmdGhpc19lbmRfbWljcm9zPj10aGF0X2VuZF9taWNyb3M7fX07cmV0dXJue1RpbWVkRXZlbnQ6VGltZWRFdmVudH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBTbGljZShjYXRlZ29yeSx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Msb3B0X2R1cmF0aW9uLG9wdF9jcHVTdGFydCxvcHRfY3B1RHVyYXRpb24pe3RyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLmNhdGVnb3J5PWNhdGVnb3J5fHwnJzt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuY29sb3JJZD1jb2xvcklkO3RoaXMuYXJncz1hcmdzO3RoaXMuc3RhcnRTdGFja0ZyYW1lPXVuZGVmaW5lZDt0aGlzLmVuZFN0YWNrRnJhbWU9dW5kZWZpbmVkO3RoaXMuZGlkTm90RmluaXNoPWZhbHNlO3RoaXMuaW5GbG93RXZlbnRzPVtdO3RoaXMub3V0Rmxvd0V2ZW50cz1bXTt0aGlzLnN1YlNsaWNlcz1bXTt0aGlzLnNlbGZUaW1lPXVuZGVmaW5lZDt0aGlzLmNwdVNlbGZUaW1lPXVuZGVmaW5lZDt0aGlzLmltcG9ydGFudD1mYWxzZTt0aGlzLnBhcmVudENvbnRhaW5lcj11bmRlZmluZWQ7aWYob3B0X2R1cmF0aW9uIT09dW5kZWZpbmVkKQotdGhpcy5kdXJhdGlvbj1vcHRfZHVyYXRpb247aWYob3B0X2NwdVN0YXJ0IT09dW5kZWZpbmVkKQotdGhpcy5jcHVTdGFydD1vcHRfY3B1U3RhcnQ7aWYob3B0X2NwdUR1cmF0aW9uIT09dW5kZWZpbmVkKQotdGhpcy5jcHVEdXJhdGlvbj1vcHRfY3B1RHVyYXRpb247fQotU2xpY2UucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsZ2V0IGFuYWx5c2lzVHlwZU5hbWUoKXtyZXR1cm4gdGhpcy50aXRsZTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuJ1NsaWNlICcrdGhpcy50aXRsZSsnIGF0ICcrCi10ci5iLnVuaXRzLnRzU3RyaW5nKHRoaXMuc3RhcnQpO30sZmluZERlc2NlbmRlbnRTbGljZTpmdW5jdGlvbih0YXJnZXRUaXRsZSl7aWYoIXRoaXMuc3ViU2xpY2VzKQotcmV0dXJuIHVuZGVmaW5lZDtmb3IodmFyIGk9MDtpPHRoaXMuc3ViU2xpY2VzLmxlbmd0aDtpKyspe2lmKHRoaXMuc3ViU2xpY2VzW2ldLnRpdGxlPT10YXJnZXRUaXRsZSkKLXJldHVybiB0aGlzLnN1YlNsaWNlc1tpXTt2YXIgc2xpY2U9dGhpcy5zdWJTbGljZXNbaV0uZmluZERlc2NlbmRlbnRTbGljZSh0YXJnZXRUaXRsZSk7aWYoc2xpY2UpcmV0dXJuIHNsaWNlO30KLXJldHVybiB1bmRlZmluZWQ7fSxnZXQgbW9zdFRvcExldmVsU2xpY2UoKXt2YXIgY3VyU2xpY2U9dGhpczt3aGlsZShjdXJTbGljZS5wYXJlbnRTbGljZSkKLWN1clNsaWNlPWN1clNsaWNlLnBhcmVudFNsaWNlO3JldHVybiBjdXJTbGljZTt9LGl0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt2YXIgcGFyZW50U3RhY2s9W107dmFyIHN0YXJ0ZWQ9ZmFsc2U7dmFyIHRvcG1vc3RTbGljZT10aGlzLm1vc3RUb3BMZXZlbFNsaWNlO3BhcmVudFN0YWNrLnB1c2godG9wbW9zdFNsaWNlKTt3aGlsZShwYXJlbnRTdGFjay5sZW5ndGghPT0wKXt2YXIgY3VyU2xpY2U9cGFyZW50U3RhY2sucG9wKCk7aWYoc3RhcnRlZCkKLWNhbGxiYWNrLmNhbGwob3B0X3RoaXMsY3VyU2xpY2UpO2Vsc2UKLXN0YXJ0ZWQ9KGN1clNsaWNlLmd1aWQ9PT10aGlzLmd1aWQpO2Zvcih2YXIgaT1jdXJTbGljZS5zdWJTbGljZXMubGVuZ3RoLTE7aT49MDtpLS0pe3BhcmVudFN0YWNrLnB1c2goY3VyU2xpY2Uuc3ViU2xpY2VzW2ldKTt9fX0sZ2V0IHN1YnNlcXVlbnRTbGljZXMoKXt2YXIgcmVzPVtdO3RoaXMuaXRlcmF0ZUFsbFN1YnNlcXVlbnRTbGljZXMoZnVuY3Rpb24oc3Vic2VxU2xpY2Upe3Jlcy5wdXNoKHN1YnNlcVNsaWNlKTt9KTtyZXR1cm4gcmVzO30saXRlcmF0ZUFsbEFuY2VzdG9yczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7dmFyIGN1clNsaWNlPXRoaXM7d2hpbGUoY3VyU2xpY2UucGFyZW50U2xpY2Upe2N1clNsaWNlPWN1clNsaWNlLnBhcmVudFNsaWNlO2NhbGxiYWNrLmNhbGwob3B0X3RoaXMsY3VyU2xpY2UpO319LGdldCBhbmNlc3RvclNsaWNlcygpe3ZhciByZXM9W107dGhpcy5pdGVyYXRlQWxsQW5jZXN0b3JzKGZ1bmN0aW9uKGFuY2VzdG9yKXtyZXMucHVzaChhbmNlc3Rvcik7fSk7cmV0dXJuIHJlczt9LGdldCBhbmNlc3RvckFuZFN1YnNlcXVlbnRTbGljZXMoKXt2YXIgcmVzPVtdO3Jlcy5wdXNoKHRoaXMpO3RoaXMuaXRlcmF0ZUFsbEFuY2VzdG9ycyhmdW5jdGlvbihhU2xpY2Upe3Jlcy5wdXNoKGFTbGljZSk7fSk7dGhpcy5pdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlcyhmdW5jdGlvbihzU2xpY2Upe3Jlcy5wdXNoKHNTbGljZSk7fSk7cmV0dXJuIHJlczt9LGl0ZXJhdGVBbGxEZXNjZW5kZW50czpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7dGhpcy5zdWJTbGljZXMuZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7dGhpcy5zdWJTbGljZXMuZm9yRWFjaChmdW5jdGlvbihzdWJTbGljZSl7c3ViU2xpY2UuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGNhbGxiYWNrLG9wdF90aGlzKTt9LG9wdF90aGlzKTt9LGdldCBkZXNjZW5kZW50U2xpY2VzKCl7dmFyIHJlcz1bXTt0aGlzLml0ZXJhdGVBbGxEZXNjZW5kZW50cyhmdW5jdGlvbihkZXMpe3Jlcy5wdXNoKGRlcyk7fSk7cmV0dXJuIHJlczt9fTtyZXR1cm57U2xpY2U6U2xpY2V9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNsaWNlPXRyLm1vZGVsLlNsaWNlO3ZhciBTQ0hFRFVMSU5HX1NUQVRFPXtERUJVRzonRGVidWcnLEVYSVRfREVBRDonRXhpdCBEZWFkJyxSVU5OQUJMRTonUnVubmFibGUnLFJVTk5JTkc6J1J1bm5pbmcnLFNMRUVQSU5HOidTbGVlcGluZycsU1RPUFBFRDonU3RvcHBlZCcsVEFTS19ERUFEOidUYXNrIERlYWQnLFVOSU5UUl9TTEVFUDonVW5pbnRlcnJ1cHRpYmxlIFNsZWVwJyxVTklOVFJfU0xFRVBfV0FLRV9LSUxMOidVbmludGVycnVwdGlibGUgU2xlZXAgfCBXYWtlS2lsbCcsVU5JTlRSX1NMRUVQX1dBS0lORzonVW5pbnRlcnJ1cHRpYmxlIFNsZWVwIHwgV2FraW5nJyxVTktOT1dOOidVTktOT1dOJyxXQUtFX0tJTEw6J1dha2VraWxsJyxXQUtJTkc6J1dha2luZycsWk9NQklFOidab21iaWUnfTtmdW5jdGlvbiBUaHJlYWRUaW1lU2xpY2UodGhyZWFkLHNjaGVkdWxpbmdTdGF0ZSxjYXQsc3RhcnQsYXJncyxvcHRfZHVyYXRpb24pe1NsaWNlLmNhbGwodGhpcyxjYXQsc2NoZWR1bGluZ1N0YXRlLHRoaXMuZ2V0Q29sb3JGb3JTdGF0ZV8oc2NoZWR1bGluZ1N0YXRlKSxzdGFydCxhcmdzLG9wdF9kdXJhdGlvbik7dGhpcy50aHJlYWQ9dGhyZWFkO3RoaXMuc2NoZWR1bGluZ1N0YXRlPXNjaGVkdWxpbmdTdGF0ZTt0aGlzLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nPXVuZGVmaW5lZDt9Ci1UaHJlYWRUaW1lU2xpY2UucHJvdG90eXBlPXtfX3Byb3RvX186U2xpY2UucHJvdG90eXBlLGdldENvbG9yRm9yU3RhdGVfOmZ1bmN0aW9uKHN0YXRlKXt2YXIgZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZT10ci5iLnVpLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWU7c3dpdGNoKHN0YXRlKXtjYXNlIFNDSEVEVUxJTkdfU1RBVEUuUlVOTkFCTEU6cmV0dXJuIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ3RocmVhZF9zdGF0ZV9ydW5uYWJsZScpO2Nhc2UgU0NIRURVTElOR19TVEFURS5SVU5OSU5HOnJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfcnVubmluZycpO2Nhc2UgU0NIRURVTElOR19TVEFURS5TTEVFUElORzpyZXR1cm4gZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgndGhyZWFkX3N0YXRlX3NsZWVwaW5nJyk7Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLkRFQlVHOmNhc2UgU0NIRURVTElOR19TVEFURS5FWElUX0RFQUQ6Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlNUT1BQRUQ6Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlRBU0tfREVBRDpjYXNlIFNDSEVEVUxJTkdfU1RBVEUuVU5JTlRSX1NMRUVQOmNhc2UgU0NIRURVTElOR19TVEFURS5VTklOVFJfU0xFRVBfV0FLRV9LSUxMOmNhc2UgU0NIRURVTElOR19TVEFURS5VTklOVFJfU0xFRVBfV0FLSU5HOmNhc2UgU0NIRURVTElOR19TVEFURS5VTktOT1dOOmNhc2UgU0NIRURVTElOR19TVEFURS5XQUtFX0tJTEw6Y2FzZSBTQ0hFRFVMSU5HX1NUQVRFLldBS0lORzpjYXNlIFNDSEVEVUxJTkdfU1RBVEUuWk9NQklFOnJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfaW93YWl0Jyk7ZGVmYXVsdDpyZXR1cm4gZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgndGhyZWFkX3N0YXRlX3Vua25vd24nKTt9fSxnZXQgYW5hbHlzaXNUeXBlTmFtZSgpe3JldHVybid0ci5jLmFuYWx5c2lzLlRocmVhZFRpbWVTbGljZSc7fSxnZXRBc3NvY2lhdGVkQ3B1U2xpY2U6ZnVuY3Rpb24oKXtpZighdGhpcy5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZykKLXJldHVybiB1bmRlZmluZWQ7dmFyIGNwdVNsaWNlcz10aGlzLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nLnNsaWNlcztmb3IodmFyIGk9MDtpPGNwdVNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgY3B1U2xpY2U9Y3B1U2xpY2VzW2ldO2lmKGNwdVNsaWNlLnN0YXJ0IT09dGhpcy5zdGFydCkKLWNvbnRpbnVlO2lmKGNwdVNsaWNlLmR1cmF0aW9uIT09dGhpcy5kdXJhdGlvbikKLWNvbnRpbnVlO3JldHVybiBjcHVTbGljZTt9Ci1yZXR1cm4gdW5kZWZpbmVkO30sZ2V0Q3B1U2xpY2VUaGF0VG9va0NwdTpmdW5jdGlvbigpe2lmKHRoaXMuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcpCi1yZXR1cm4gdW5kZWZpbmVkO3ZhciBjdXJJbmRleD10aGlzLnRocmVhZC5pbmRleE9mVGltZVNsaWNlKHRoaXMpO3ZhciBjcHVTbGljZVdoZW5MYXN0UnVubmluZzt3aGlsZShjdXJJbmRleD49MCl7dmFyIGN1clNsaWNlPXRoaXMudGhyZWFkLnRpbWVTbGljZXNbY3VySW5kZXhdO2lmKCFjdXJTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZyl7Y3VySW5kZXgtLTtjb250aW51ZTt9Ci1jcHVTbGljZVdoZW5MYXN0UnVubmluZz1jdXJTbGljZS5nZXRBc3NvY2lhdGVkQ3B1U2xpY2UoKTticmVhazt9Ci1pZighY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcpCi1yZXR1cm4gdW5kZWZpbmVkO3ZhciBjcHU9Y3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcuY3B1O3ZhciBpbmRleE9mU2xpY2VPbkNwdVdoZW5MYXN0UnVubmluZz1jcHUuaW5kZXhPZihjcHVTbGljZVdoZW5MYXN0UnVubmluZyk7dmFyIG5leHRSdW5uaW5nU2xpY2U9Y3B1LnNsaWNlc1tpbmRleE9mU2xpY2VPbkNwdVdoZW5MYXN0UnVubmluZysxXTtpZighbmV4dFJ1bm5pbmdTbGljZSkKLXJldHVybiB1bmRlZmluZWQ7aWYoTWF0aC5hYnMobmV4dFJ1bm5pbmdTbGljZS5zdGFydC1jcHVTbGljZVdoZW5MYXN0UnVubmluZy5lbmQpPDAuMDAwMDEpCi1yZXR1cm4gbmV4dFJ1bm5pbmdTbGljZTtyZXR1cm4gdW5kZWZpbmVkO319O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoVGhyZWFkVGltZVNsaWNlLHtuYW1lOid0aHJlYWRUaW1lU2xpY2UnLHBsdXJhbE5hbWU6J3RocmVhZFRpbWVTbGljZXMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItYy1hLXNpbmdsZS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldycsbXVsdGlWaWV3RWxlbWVudE5hbWU6J3RyLWMtYS1tdWx0aS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldyd9KTtyZXR1cm57VGhyZWFkVGltZVNsaWNlOlRocmVhZFRpbWVTbGljZSxTQ0hFRFVMSU5HX1NUQVRFOlNDSEVEVUxJTkdfU1RBVEV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNsaWNlPXRyLm1vZGVsLlNsaWNlO2Z1bmN0aW9uIENwdVNsaWNlKGNhdCx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Msb3B0X2R1cmF0aW9uKXtTbGljZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50aHJlYWRUaGF0V2FzUnVubmluZz11bmRlZmluZWQ7dGhpcy5jcHU9dW5kZWZpbmVkO30KLUNwdVNsaWNlLnByb3RvdHlwZT17X19wcm90b19fOlNsaWNlLnByb3RvdHlwZSxnZXQgYW5hbHlzaXNUeXBlTmFtZSgpe3JldHVybid0ci5jLmFuYWx5c2lzLkNwdVNsaWNlJzt9LGdldEFzc29jaWF0ZWRUaW1lc2xpY2U6ZnVuY3Rpb24oKXtpZighdGhpcy50aHJlYWRUaGF0V2FzUnVubmluZykKLXJldHVybiB1bmRlZmluZWQ7dmFyIHRpbWVTbGljZXM9dGhpcy50aHJlYWRUaGF0V2FzUnVubmluZy50aW1lU2xpY2VzO2Zvcih2YXIgaT0wO2k8dGltZVNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgdGltZVNsaWNlPXRpbWVTbGljZXNbaV07aWYodGltZVNsaWNlLnN0YXJ0IT09dGhpcy5zdGFydCkKLWNvbnRpbnVlO2lmKHRpbWVTbGljZS5kdXJhdGlvbiE9PXRoaXMuZHVyYXRpb24pCi1jb250aW51ZTtyZXR1cm4gdGltZVNsaWNlO30KLXJldHVybiB1bmRlZmluZWQ7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihDcHVTbGljZSx7bmFtZTonY3B1U2xpY2UnLHBsdXJhbE5hbWU6J2NwdVNsaWNlcycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci1jLWEtc2luZ2xlLWNwdS1zbGljZS1zdWItdmlldycsbXVsdGlWaWV3RWxlbWVudE5hbWU6J3RyLWMtYS1tdWx0aS1jcHUtc2xpY2Utc3ViLXZpZXcnfSk7cmV0dXJue0NwdVNsaWNlOkNwdVNsaWNlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBDb3VudGVyPXRyLm1vZGVsLkNvdW50ZXI7dmFyIFNsaWNlPXRyLm1vZGVsLlNsaWNlO3ZhciBDcHVTbGljZT10ci5tb2RlbC5DcHVTbGljZTtmdW5jdGlvbiBDcHUoa2VybmVsLG51bWJlcil7aWYoa2VybmVsPT09dW5kZWZpbmVkfHxudW1iZXI9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgYXJndW1lbnRzJyk7dGhpcy5rZXJuZWw9a2VybmVsO3RoaXMuY3B1TnVtYmVyPW51bWJlcjt0aGlzLnNsaWNlcz1bXTt0aGlzLmNvdW50ZXJzPXt9O3RoaXMuYm91bmRzPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5zYW1wbGVzXz11bmRlZmluZWQ7dGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXz11bmRlZmluZWQ7dGhpcy5sYXN0QWN0aXZlVGhyZWFkXz11bmRlZmluZWQ7dGhpcy5sYXN0QWN0aXZlTmFtZV89dW5kZWZpbmVkO3RoaXMubGFzdEFjdGl2ZUFyZ3NfPXVuZGVmaW5lZDt9O0NwdS5wcm90b3R5cGU9e2l0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyx0ci5tb2RlbC5DcHVTbGljZSkpCi10aGlzLnNsaWNlcy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTtpZih0aGlzLnNhbXBsZXNfKXtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyx0ci5tb2RlbC5TYW1wbGUpKQotdGhpcy5zYW1wbGVzXy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTt9fSxpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe2Zvcih2YXIgaWQgaW4gdGhpcy5jb3VudGVycykKLWNhbGxiYWNrLmNhbGwob3B0X3RoaXMsdGhpcy5jb3VudGVyc1tpZF0pO30sZ2V0T3JDcmVhdGVDb3VudGVyOmZ1bmN0aW9uKGNhdCxuYW1lKXt2YXIgaWQ7aWYoY2F0Lmxlbmd0aCkKLWlkPWNhdCsnLicrbmFtZTtlbHNlCi1pZD1uYW1lO2lmKCF0aGlzLmNvdW50ZXJzW2lkXSkKLXRoaXMuY291bnRlcnNbaWRdPW5ldyBDb3VudGVyKHRoaXMsaWQsY2F0LG5hbWUpO3JldHVybiB0aGlzLmNvdW50ZXJzW2lkXTt9LHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6ZnVuY3Rpb24oYW1vdW50KXtmb3IodmFyIHNJPTA7c0k8dGhpcy5zbGljZXMubGVuZ3RoO3NJKyspCi10aGlzLnNsaWNlc1tzSV0uc3RhcnQ9KHRoaXMuc2xpY2VzW3NJXS5zdGFydCthbW91bnQpO2Zvcih2YXIgaWQgaW4gdGhpcy5jb3VudGVycykKLXRoaXMuY291bnRlcnNbaWRdLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7aWYodGhpcy5zbGljZXMubGVuZ3RoKXt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1swXS5zdGFydCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbdGhpcy5zbGljZXMubGVuZ3RoLTFdLmVuZCk7fQotZm9yKHZhciBpZCBpbiB0aGlzLmNvdW50ZXJzKXt0aGlzLmNvdW50ZXJzW2lkXS51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLmNvdW50ZXJzW2lkXS5ib3VuZHMpO30KLWlmKHRoaXMuc2FtcGxlc18mJnRoaXMuc2FtcGxlc18ubGVuZ3RoKXt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfWzBdLnN0YXJ0KTt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfW3RoaXMuc2FtcGxlc18ubGVuZ3RoLTFdLmVuZCk7fX0sY3JlYXRlU3ViU2xpY2VzOmZ1bmN0aW9uKCl7dGhpcy5zYW1wbGVzXz10aGlzLmtlcm5lbC5tb2RlbC5zYW1wbGVzLmZpbHRlcihmdW5jdGlvbihzYW1wbGUpe3JldHVybiBzYW1wbGUuY3B1PT10aGlzO30sdGhpcyk7fSxhZGRDYXRlZ29yaWVzVG9EaWN0OmZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KXtmb3IodmFyIGk9MDtpPHRoaXMuc2xpY2VzLmxlbmd0aDtpKyspCi1jYXRlZ29yaWVzRGljdFt0aGlzLnNsaWNlc1tpXS5jYXRlZ29yeV09dHJ1ZTtmb3IodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCi1jYXRlZ29yaWVzRGljdFt0aGlzLmNvdW50ZXJzW2lkXS5jYXRlZ29yeV09dHJ1ZTtmb3IodmFyIGk9MDtpPHRoaXMuc2FtcGxlc18ubGVuZ3RoO2krKykKLWNhdGVnb3JpZXNEaWN0W3RoaXMuc2FtcGxlc19baV0uY2F0ZWdvcnldPXRydWU7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidDUFUgJyt0aGlzLmNwdU51bWJlcjt9LGluZGV4T2Y6ZnVuY3Rpb24oY3B1U2xpY2Upe3ZhciBpPXRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSh0aGlzLnNsaWNlcyxmdW5jdGlvbihzbGljZSl7cmV0dXJuIHNsaWNlLnN0YXJ0O30sY3B1U2xpY2Uuc3RhcnQpO2lmKHRoaXMuc2xpY2VzW2ldIT09Y3B1U2xpY2UpCi1yZXR1cm4gdW5kZWZpbmVkO3JldHVybiBpO30sY2xvc2VBY3RpdmVUaHJlYWQ6ZnVuY3Rpb24oZW5kX3RpbWVzdGFtcCxhcmdzKXtpZih0aGlzLmxhc3RBY3RpdmVUaHJlYWRfPT11bmRlZmluZWR8fHRoaXMubGFzdEFjdGl2ZVRocmVhZF89PTApCi1yZXR1cm47aWYoZW5kX3RpbWVzdGFtcDx0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfKXt0aHJvdyBuZXcgRXJyb3IoJ1RoZSBlbmQgdGltZXN0YW1wIG9mIGEgdGhyZWFkIHJ1bm5pbmcgb24gQ1BVICcrCi10aGlzLmNwdU51bWJlcisnIGlzIGJlZm9yZSBpdHMgc3RhcnQgdGltZXN0YW1wLicpO30KLWZvcih2YXIga2V5IGluIGFyZ3Mpe3RoaXMubGFzdEFjdGl2ZUFyZ3NfW2tleV09YXJnc1trZXldO30KLXZhciBkdXJhdGlvbj1lbmRfdGltZXN0YW1wLXRoaXMubGFzdEFjdGl2ZVRpbWVzdGFtcF87dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5DcHVTbGljZSgnJyx0aGlzLmxhc3RBY3RpdmVOYW1lXyx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aGlzLmxhc3RBY3RpdmVOYW1lXyksdGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXyx0aGlzLmxhc3RBY3RpdmVBcmdzXyxkdXJhdGlvbik7c2xpY2UuY3B1PXRoaXM7dGhpcy5zbGljZXMucHVzaChzbGljZSk7dGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXz11bmRlZmluZWQ7dGhpcy5sYXN0QWN0aXZlVGhyZWFkXz11bmRlZmluZWQ7dGhpcy5sYXN0QWN0aXZlTmFtZV89dW5kZWZpbmVkO3RoaXMubGFzdEFjdGl2ZUFyZ3NfPXVuZGVmaW5lZDt9LHN3aXRjaEFjdGl2ZVRocmVhZDpmdW5jdGlvbih0aW1lc3RhbXAsb2xkX3RocmVhZF9hcmdzLG5ld190aHJlYWRfaWQsbmV3X3RocmVhZF9uYW1lLG5ld190aHJlYWRfYXJncyl7dGhpcy5jbG9zZUFjdGl2ZVRocmVhZCh0aW1lc3RhbXAsb2xkX3RocmVhZF9hcmdzKTt0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfPXRpbWVzdGFtcDt0aGlzLmxhc3RBY3RpdmVUaHJlYWRfPW5ld190aHJlYWRfaWQ7dGhpcy5sYXN0QWN0aXZlTmFtZV89bmV3X3RocmVhZF9uYW1lO3RoaXMubGFzdEFjdGl2ZUFyZ3NfPW5ld190aHJlYWRfYXJnczt9LGdldCBzYW1wbGVzKCl7cmV0dXJuIHRoaXMuc2FtcGxlc187fX07Q3B1LmNvbXBhcmU9ZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5jcHVOdW1iZXIteS5jcHVOdW1iZXI7fTtyZXR1cm57Q3B1OkNwdX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBPYmplY3RTbmFwc2hvdChvYmplY3RJbnN0YW5jZSx0cyxhcmdzKXt0ci5tb2RlbC5FdmVudC5jYWxsKHRoaXMpO3RoaXMub2JqZWN0SW5zdGFuY2U9b2JqZWN0SW5zdGFuY2U7dGhpcy50cz10czt0aGlzLmFyZ3M9YXJnczt9Ci1PYmplY3RTbmFwc2hvdC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUscHJlSW5pdGlhbGl6ZTpmdW5jdGlvbigpe30saW5pdGlhbGl6ZTpmdW5jdGlvbigpe30sYWRkQm91bmRzVG9SYW5nZTpmdW5jdGlvbihyYW5nZSl7cmFuZ2UuYWRkVmFsdWUodGhpcy50cyk7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidTbmFwc2hvdCBvZiAnKwotdGhpcy5vYmplY3RJbnN0YW5jZS50eXBlTmFtZSsnICcrCi10aGlzLm9iamVjdEluc3RhbmNlLmlkKycgQCAnKwotdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnRzKTt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKE9iamVjdFNuYXBzaG90LHtuYW1lOidvYmplY3RTbmFwc2hvdCcscGx1cmFsTmFtZTonb2JqZWN0U25hcHNob3RzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLWMtYS1zaW5nbGUtb2JqZWN0LXNuYXBzaG90LXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItYy1hLW11bHRpLW9iamVjdC1zdWItdmlldyd9KTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPU9iamVjdFNuYXBzaG90O29wdGlvbnMuZGVmYXVsdENvbnN0cnVjdG9yPU9iamVjdFNuYXBzaG90O3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RTbmFwc2hvdCxvcHRpb25zKTtyZXR1cm57T2JqZWN0U25hcHNob3Q6T2JqZWN0U25hcHNob3R9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIE9iamVjdFNuYXBzaG90PXRyLm1vZGVsLk9iamVjdFNuYXBzaG90O2Z1bmN0aW9uIE9iamVjdEluc3RhbmNlKHBhcmVudCxpZCxjYXRlZ29yeSxuYW1lLGNyZWF0aW9uVHMsb3B0X2Jhc2VUeXBlTmFtZSl7dHIubW9kZWwuRXZlbnQuY2FsbCh0aGlzKTt0aGlzLnBhcmVudD1wYXJlbnQ7dGhpcy5pZD1pZDt0aGlzLmNhdGVnb3J5PWNhdGVnb3J5O3RoaXMuYmFzZVR5cGVOYW1lPW9wdF9iYXNlVHlwZU5hbWU/b3B0X2Jhc2VUeXBlTmFtZTpuYW1lO3RoaXMubmFtZT1uYW1lO3RoaXMuY3JlYXRpb25Ucz1jcmVhdGlvblRzO3RoaXMuY3JlYXRpb25Uc1dhc0V4cGxpY2l0PWZhbHNlO3RoaXMuZGVsZXRpb25Ucz1OdW1iZXIuTUFYX1ZBTFVFO3RoaXMuZGVsZXRpb25Uc1dhc0V4cGxpY2l0PWZhbHNlO3RoaXMuY29sb3JJZD0wO3RoaXMuYm91bmRzPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5zbmFwc2hvdHM9W107dGhpcy5oYXNJbXBsaWNpdFNuYXBzaG90cz1mYWxzZTt9Ci1PYmplY3RJbnN0YW5jZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsZ2V0IHR5cGVOYW1lKCl7cmV0dXJuIHRoaXMubmFtZTt9LGFkZEJvdW5kc1RvUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe3JhbmdlLmFkZFJhbmdlKHRoaXMuYm91bmRzKTt9LGFkZFNuYXBzaG90OmZ1bmN0aW9uKHRzLGFyZ3Msb3B0X25hbWUsb3B0X2Jhc2VUeXBlTmFtZSl7aWYodHM8dGhpcy5jcmVhdGlvblRzKQotdGhyb3cgbmV3IEVycm9yKCdTbmFwc2hvdHMgbXVzdCBiZSA+PSBpbnN0YW5jZS5jcmVhdGlvblRzJyk7aWYodHM+PXRoaXMuZGVsZXRpb25UcykKLXRocm93IG5ldyBFcnJvcignU25hcHNob3RzIGNhbm5vdCBiZSBhZGRlZCBhZnRlciAnKydhbiBvYmplY3RzIGRlbGV0aW9uIHRpbWVzdGFtcC4nKTt2YXIgbGFzdFNuYXBzaG90O2lmKHRoaXMuc25hcHNob3RzLmxlbmd0aD4wKXtsYXN0U25hcHNob3Q9dGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoLTFdO2lmKGxhc3RTbmFwc2hvdC50cz09dHMpCi10aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBhbHJlYWR5IGV4aXN0cyBhdCB0aGlzIHRpbWUhJyk7aWYodHM8bGFzdFNuYXBzaG90LnRzKXt0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBtdXN0IGJlIGFkZGVkIGluIGluY3JlYXNpbmcgdGltZXN0YW1wIG9yZGVyJyk7fX0KLWlmKG9wdF9uYW1lJiYodGhpcy5uYW1lIT1vcHRfbmFtZSkpe2lmKCFvcHRfYmFzZVR5cGVOYW1lKQotdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYmFzZSB0eXBlIG5hbWUgZm9yIG5hbWUgdXBkYXRlJyk7aWYodGhpcy5iYXNlVHlwZU5hbWUhPW9wdF9iYXNlVHlwZU5hbWUpCi10aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgdHlwZSBuYW1lOiBiYXNlIHR5cGVzIGRvbnQgbWF0Y2gnKTt0aGlzLm5hbWU9b3B0X25hbWU7fQotdmFyIHNuYXBzaG90Q29uc3RydWN0b3I9dHIubW9kZWwuT2JqZWN0U25hcHNob3QuZ2V0Q29uc3RydWN0b3IodGhpcy5jYXRlZ29yeSx0aGlzLm5hbWUpO3ZhciBzbmFwc2hvdD1uZXcgc25hcHNob3RDb25zdHJ1Y3Rvcih0aGlzLHRzLGFyZ3MpO3RoaXMuc25hcHNob3RzLnB1c2goc25hcHNob3QpO3JldHVybiBzbmFwc2hvdDt9LHdhc0RlbGV0ZWQ6ZnVuY3Rpb24odHMpe3ZhciBsYXN0U25hcHNob3Q7aWYodGhpcy5zbmFwc2hvdHMubGVuZ3RoPjApe2xhc3RTbmFwc2hvdD10aGlzLnNuYXBzaG90c1t0aGlzLnNuYXBzaG90cy5sZW5ndGgtMV07aWYobGFzdFNuYXBzaG90LnRzPnRzKQotdGhyb3cgbmV3IEVycm9yKCdJbnN0YW5jZSBjYW5ub3QgYmUgZGVsZXRlZCBhdCB0cz0nKwotdHMrJy4gQSBzbmFwc2hvdCBleGlzdHMgdGhhdCBpcyBvbGRlci4nKTt9Ci10aGlzLmRlbGV0aW9uVHM9dHM7dGhpcy5kZWxldGlvblRzV2FzRXhwbGljaXQ9dHJ1ZTt9LHByZUluaXRpYWxpemU6ZnVuY3Rpb24oKXtmb3IodmFyIGk9MDtpPHRoaXMuc25hcHNob3RzLmxlbmd0aDtpKyspCi10aGlzLnNuYXBzaG90c1tpXS5wcmVJbml0aWFsaXplKCk7fSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTx0aGlzLnNuYXBzaG90cy5sZW5ndGg7aSsrKQotdGhpcy5zbmFwc2hvdHNbaV0uaW5pdGlhbGl6ZSgpO30sZ2V0U25hcHNob3RBdDpmdW5jdGlvbih0cyl7aWYodHM8dGhpcy5jcmVhdGlvblRzKXtpZih0aGlzLmNyZWF0aW9uVHNXYXNFeHBsaWNpdCkKLXRocm93IG5ldyBFcnJvcigndHMgbXVzdCBiZSB3aXRoaW4gbGlmZXRpbWUgb2YgdGhpcyBpbnN0YW5jZScpO3JldHVybiB0aGlzLnNuYXBzaG90c1swXTt9Ci1pZih0cz50aGlzLmRlbGV0aW9uVHMpCi10aHJvdyBuZXcgRXJyb3IoJ3RzIG11c3QgYmUgd2l0aGluIGxpZmV0aW1lIG9mIHRoaXMgaW5zdGFuY2UnKTt2YXIgc25hcHNob3RzPXRoaXMuc25hcHNob3RzO3ZhciBpPXRyLmIuZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMoc25hcHNob3RzLGZ1bmN0aW9uKHNuYXBzaG90KXtyZXR1cm4gc25hcHNob3QudHM7fSxmdW5jdGlvbihzbmFwc2hvdCxpKXtpZihpPT1zbmFwc2hvdHMubGVuZ3RoLTEpCi1yZXR1cm4gc25hcHNob3RzW2ldLm9iamVjdEluc3RhbmNlLmRlbGV0aW9uVHM7cmV0dXJuIHNuYXBzaG90c1tpKzFdLnRzLXNuYXBzaG90c1tpXS50czt9LHRzKTtpZihpPDApe3JldHVybiB0aGlzLnNuYXBzaG90c1swXTt9Ci1pZihpPj10aGlzLnNuYXBzaG90cy5sZW5ndGgpCi1yZXR1cm4gdGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoLTFdO3JldHVybiB0aGlzLnNuYXBzaG90c1tpXTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5jcmVhdGlvblRzKTtpZih0aGlzLmRlbGV0aW9uVHMhPU51bWJlci5NQVhfVkFMVUUpCi10aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLmRlbGV0aW9uVHMpO2Vsc2UgaWYodGhpcy5zbmFwc2hvdHMubGVuZ3RoPjApCi10aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNuYXBzaG90c1t0aGlzLnNuYXBzaG90cy5sZW5ndGgtMV0udHMpO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe3RoaXMuY3JlYXRpb25Ucys9YW1vdW50O2lmKHRoaXMuZGVsZXRpb25UcyE9TnVtYmVyLk1BWF9WQUxVRSkKLXRoaXMuZGVsZXRpb25Ucys9YW1vdW50O3RoaXMuc25hcHNob3RzLmZvckVhY2goZnVuY3Rpb24oc25hcHNob3Qpe3NuYXBzaG90LnRzKz1hbW91bnQ7fSk7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybiB0aGlzLnR5cGVOYW1lKycgb2JqZWN0ICcrdGhpcy5pZDt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKE9iamVjdEluc3RhbmNlLHtuYW1lOidvYmplY3RJbnN0YW5jZScscGx1cmFsTmFtZTonb2JqZWN0SW5zdGFuY2VzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLWMtYS1zaW5nbGUtb2JqZWN0LWluc3RhbmNlLXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItYy1hLW11bHRpLW9iamVjdC1zdWItdmlldyd9KTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPU9iamVjdEluc3RhbmNlO29wdGlvbnMuZGVmYXVsdENvbnN0cnVjdG9yPU9iamVjdEluc3RhbmNlO3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RJbnN0YW5jZSxvcHRpb25zKTtyZXR1cm57T2JqZWN0SW5zdGFuY2U6T2JqZWN0SW5zdGFuY2V9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gVGltZVRvT2JqZWN0SW5zdGFuY2VNYXAoY3JlYXRlT2JqZWN0SW5zdGFuY2VGdW5jdGlvbixwYXJlbnQsaWQpe3RoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl89Y3JlYXRlT2JqZWN0SW5zdGFuY2VGdW5jdGlvbjt0aGlzLnBhcmVudD1wYXJlbnQ7dGhpcy5pZD1pZDt0aGlzLmluc3RhbmNlcz1bXTt9Ci1UaW1lVG9PYmplY3RJbnN0YW5jZU1hcC5wcm90b3R5cGU9e2lkV2FzQ3JlYXRlZDpmdW5jdGlvbihjYXRlZ29yeSxuYW1lLHRzKXtpZih0aGlzLmluc3RhbmNlcy5sZW5ndGg9PTApe3RoaXMuaW5zdGFuY2VzLnB1c2godGhpcy5jcmVhdGVPYmplY3RJbnN0YW5jZUZ1bmN0aW9uXyh0aGlzLnBhcmVudCx0aGlzLmlkLGNhdGVnb3J5LG5hbWUsdHMpKTt0aGlzLmluc3RhbmNlc1swXS5jcmVhdGlvblRzV2FzRXhwbGljaXQ9dHJ1ZTtyZXR1cm4gdGhpcy5pbnN0YW5jZXNbMF07fQotdmFyIGxhc3RJbnN0YW5jZT10aGlzLmluc3RhbmNlc1t0aGlzLmluc3RhbmNlcy5sZW5ndGgtMV07aWYodHM8bGFzdEluc3RhbmNlLmRlbGV0aW9uVHMpe3Rocm93IG5ldyBFcnJvcignTXV0YXRpb24gb2YgdGhlIFRpbWVUb09iamVjdEluc3RhbmNlTWFwIG11c3QgYmUgJysnZG9uZSBpbiBhc2NlbmRpbmcgdGltZXN0YW1wIG9yZGVyLicpO30KLWxhc3RJbnN0YW5jZT10aGlzLmNyZWF0ZU9iamVjdEluc3RhbmNlRnVuY3Rpb25fKHRoaXMucGFyZW50LHRoaXMuaWQsY2F0ZWdvcnksbmFtZSx0cyk7bGFzdEluc3RhbmNlLmNyZWF0aW9uVHNXYXNFeHBsaWNpdD10cnVlO3RoaXMuaW5zdGFuY2VzLnB1c2gobGFzdEluc3RhbmNlKTtyZXR1cm4gbGFzdEluc3RhbmNlO30sYWRkU25hcHNob3Q6ZnVuY3Rpb24oY2F0ZWdvcnksbmFtZSx0cyxhcmdzLG9wdF9iYXNlVHlwZU5hbWUpe2lmKHRoaXMuaW5zdGFuY2VzLmxlbmd0aD09MCl7dGhpcy5pbnN0YW5jZXMucHVzaCh0aGlzLmNyZWF0ZU9iamVjdEluc3RhbmNlRnVuY3Rpb25fKHRoaXMucGFyZW50LHRoaXMuaWQsY2F0ZWdvcnksbmFtZSx0cyxvcHRfYmFzZVR5cGVOYW1lKSk7fQotdmFyIGk9dHIuYi5maW5kSW5kZXhJblNvcnRlZEludGVydmFscyh0aGlzLmluc3RhbmNlcyxmdW5jdGlvbihpbnN0KXtyZXR1cm4gaW5zdC5jcmVhdGlvblRzO30sZnVuY3Rpb24oaW5zdCl7cmV0dXJuIGluc3QuZGVsZXRpb25Ucy1pbnN0LmNyZWF0aW9uVHM7fSx0cyk7dmFyIGluc3RhbmNlO2lmKGk8MCl7aW5zdGFuY2U9dGhpcy5pbnN0YW5jZXNbMF07aWYodHM+aW5zdGFuY2UuZGVsZXRpb25Uc3x8aW5zdGFuY2UuY3JlYXRpb25Uc1dhc0V4cGxpY2l0KXt0aHJvdyBuZXcgRXJyb3IoJ0F0IHRoZSBwcm92aWRlZCB0aW1lc3RhbXAsIG5vIGluc3RhbmNlIHdhcyBzdGlsbCBhbGl2ZScpO30KLWlmKGluc3RhbmNlLnNuYXBzaG90cy5sZW5ndGghPTApe3Rocm93IG5ldyBFcnJvcignQ2Fubm90IHNoaWZ0IGNyZWF0aW9uVHMgZm9yd2FyZCwgJysnc25hcHNob3RzIGhhdmUgYmVlbiBhZGRlZC4gRmlyc3Qgc25hcCB3YXMgYXQgdHM9JysKLWluc3RhbmNlLnNuYXBzaG90c1swXS50cysnIGFuZCBjcmVhdGlvblRzIHdhcyAnKwotaW5zdGFuY2UuY3JlYXRpb25Ucyk7fQotaW5zdGFuY2UuY3JlYXRpb25Ucz10czt9ZWxzZSBpZihpPj10aGlzLmluc3RhbmNlcy5sZW5ndGgpe2luc3RhbmNlPXRoaXMuaW5zdGFuY2VzW3RoaXMuaW5zdGFuY2VzLmxlbmd0aC0xXTtpZih0cz49aW5zdGFuY2UuZGVsZXRpb25Ucyl7aW5zdGFuY2U9dGhpcy5jcmVhdGVPYmplY3RJbnN0YW5jZUZ1bmN0aW9uXyh0aGlzLnBhcmVudCx0aGlzLmlkLGNhdGVnb3J5LG5hbWUsdHMsb3B0X2Jhc2VUeXBlTmFtZSk7dGhpcy5pbnN0YW5jZXMucHVzaChpbnN0YW5jZSk7fWVsc2V7dmFyIGxhc3RWYWxpZEluZGV4O2Zvcih2YXIgaT10aGlzLmluc3RhbmNlcy5sZW5ndGgtMTtpPj0wO2ktLSl7dmFyIHRtcD10aGlzLmluc3RhbmNlc1tpXTtpZih0cz49dG1wLmRlbGV0aW9uVHMpCi1icmVhaztpZih0bXAuY3JlYXRpb25Uc1dhc0V4cGxpY2l0PT1mYWxzZSYmdG1wLnNuYXBzaG90cy5sZW5ndGg9PTApCi1sYXN0VmFsaWRJbmRleD1pO30KLWlmKGxhc3RWYWxpZEluZGV4PT09dW5kZWZpbmVkKXt0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhZGQgc25hcHNob3QuIE5vIGluc3RhbmNlIHdhcyBhbGl2ZSB0aGF0IHdhcyBtdXRhYmxlLicpO30KLWluc3RhbmNlPXRoaXMuaW5zdGFuY2VzW2xhc3RWYWxpZEluZGV4XTtpbnN0YW5jZS5jcmVhdGlvblRzPXRzO319ZWxzZXtpbnN0YW5jZT10aGlzLmluc3RhbmNlc1tpXTt9Ci1yZXR1cm4gaW5zdGFuY2UuYWRkU25hcHNob3QodHMsYXJncyxuYW1lLG9wdF9iYXNlVHlwZU5hbWUpO30sZ2V0IGxhc3RJbnN0YW5jZSgpe2lmKHRoaXMuaW5zdGFuY2VzLmxlbmd0aD09MCkKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMuaW5zdGFuY2VzW3RoaXMuaW5zdGFuY2VzLmxlbmd0aC0xXTt9LGlkV2FzRGVsZXRlZDpmdW5jdGlvbihjYXRlZ29yeSxuYW1lLHRzKXtpZih0aGlzLmluc3RhbmNlcy5sZW5ndGg9PTApe3RoaXMuaW5zdGFuY2VzLnB1c2godGhpcy5jcmVhdGVPYmplY3RJbnN0YW5jZUZ1bmN0aW9uXyh0aGlzLnBhcmVudCx0aGlzLmlkLGNhdGVnb3J5LG5hbWUsdHMpKTt9Ci12YXIgbGFzdEluc3RhbmNlPXRoaXMuaW5zdGFuY2VzW3RoaXMuaW5zdGFuY2VzLmxlbmd0aC0xXTtpZih0czxsYXN0SW5zdGFuY2UuY3JlYXRpb25UcykKLXRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlbGV0ZSBhIGlkIGJlZm9yZSBpdCB3YXMgY3JhdGVkJyk7aWYobGFzdEluc3RhbmNlLmRlbGV0aW9uVHM9PU51bWJlci5NQVhfVkFMVUUpe2xhc3RJbnN0YW5jZS53YXNEZWxldGVkKHRzKTtyZXR1cm4gbGFzdEluc3RhbmNlO30KLWlmKHRzPGxhc3RJbnN0YW5jZS5kZWxldGlvblRzKQotdGhyb3cgbmV3IEVycm9yKCdpZCB3YXMgYWxyZWFkeSBkZWxldGVkIGVhcmxpZXIuJyk7bGFzdEluc3RhbmNlPXRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl8odGhpcy5wYXJlbnQsdGhpcy5pZCxjYXRlZ29yeSxuYW1lLHRzKTt0aGlzLmluc3RhbmNlcy5wdXNoKGxhc3RJbnN0YW5jZSk7bGFzdEluc3RhbmNlLndhc0RlbGV0ZWQodHMpO3JldHVybiBsYXN0SW5zdGFuY2U7fSxnZXRJbnN0YW5jZUF0OmZ1bmN0aW9uKHRzKXt2YXIgaT10ci5iLmZpbmRJbmRleEluU29ydGVkSW50ZXJ2YWxzKHRoaXMuaW5zdGFuY2VzLGZ1bmN0aW9uKGluc3Qpe3JldHVybiBpbnN0LmNyZWF0aW9uVHM7fSxmdW5jdGlvbihpbnN0KXtyZXR1cm4gaW5zdC5kZWxldGlvblRzLWluc3QuY3JlYXRpb25Uczt9LHRzKTtpZihpPDApe2lmKHRoaXMuaW5zdGFuY2VzWzBdLmNyZWF0aW9uVHNXYXNFeHBsaWNpdCkKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMuaW5zdGFuY2VzWzBdO31lbHNlIGlmKGk+PXRoaXMuaW5zdGFuY2VzLmxlbmd0aCl7cmV0dXJuIHVuZGVmaW5lZDt9Ci1yZXR1cm4gdGhpcy5pbnN0YW5jZXNbaV07fSxsb2dUb0NvbnNvbGU6ZnVuY3Rpb24oKXtmb3IodmFyIGk9MDtpPHRoaXMuaW5zdGFuY2VzLmxlbmd0aDtpKyspe3ZhciBpbnN0YW5jZT10aGlzLmluc3RhbmNlc1tpXTt2YXIgY0VGPScnO3ZhciBkRUY9Jyc7aWYoaW5zdGFuY2UuY3JlYXRpb25Uc1dhc0V4cGxpY2l0KQotY0VGPScoZXhwbGljaXRDKSc7aWYoaW5zdGFuY2UuZGVsZXRpb25Uc1dhc0V4cGxpY2l0KQotZEVGPScoZXhwbGljaXQpJztjb25zb2xlLmxvZyhpbnN0YW5jZS5jcmVhdGlvblRzLGNFRixpbnN0YW5jZS5kZWxldGlvblRzLGRFRixpbnN0YW5jZS5jYXRlZ29yeSxpbnN0YW5jZS5uYW1lLGluc3RhbmNlLnNuYXBzaG90cy5sZW5ndGgrJyBzbmFwc2hvdHMnKTt9fX07cmV0dXJue1RpbWVUb09iamVjdEluc3RhbmNlTWFwOlRpbWVUb09iamVjdEluc3RhbmNlTWFwfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBPYmplY3RJbnN0YW5jZT10ci5tb2RlbC5PYmplY3RJbnN0YW5jZTt2YXIgT2JqZWN0U25hcHNob3Q9dHIubW9kZWwuT2JqZWN0U25hcHNob3Q7ZnVuY3Rpb24gT2JqZWN0Q29sbGVjdGlvbihwYXJlbnQpe3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7dGhpcy5wYXJlbnQ9cGFyZW50O3RoaXMuYm91bmRzPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5pbnN0YW5jZU1hcHNCeUlkXz17fTt0aGlzLmluc3RhbmNlc0J5VHlwZU5hbWVfPXt9O3RoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfPXRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfLmJpbmQodGhpcyk7fQotT2JqZWN0Q29sbGVjdGlvbi5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt9LGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6ZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLGNhbGxiYWNrLG9wdF90aGlzKXt2YXIgYkk9ISFldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxPYmplY3RJbnN0YW5jZSk7dmFyIGJTPSEhZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsT2JqZWN0U25hcHNob3QpO2lmKGJJPT09ZmFsc2UmJmJTPT09ZmFsc2UpCi1yZXR1cm47dGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKXtpZihiSSkKLWNhbGxiYWNrLmNhbGwob3B0X3RoaXMsaW5zdGFuY2UpO2lmKGJTKQotaW5zdGFuY2Uuc25hcHNob3RzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO30sb3B0X3RoaXMpO30sY3JlYXRlT2JqZWN0SW5zdGFuY2VfOmZ1bmN0aW9uKHBhcmVudCxpZCxjYXRlZ29yeSxuYW1lLGNyZWF0aW9uVHMsb3B0X2Jhc2VUeXBlTmFtZSl7dmFyIGNvbnN0cnVjdG9yPXRyLm1vZGVsLk9iamVjdEluc3RhbmNlLmdldENvbnN0cnVjdG9yKGNhdGVnb3J5LG5hbWUpO3ZhciBpbnN0YW5jZT1uZXcgY29uc3RydWN0b3IocGFyZW50LGlkLGNhdGVnb3J5LG5hbWUsY3JlYXRpb25UcyxvcHRfYmFzZVR5cGVOYW1lKTt2YXIgdHlwZU5hbWU9aW5zdGFuY2UudHlwZU5hbWU7dmFyIGluc3RhbmNlc09mVHlwZU5hbWU9dGhpcy5pbnN0YW5jZXNCeVR5cGVOYW1lX1t0eXBlTmFtZV07aWYoIWluc3RhbmNlc09mVHlwZU5hbWUpe2luc3RhbmNlc09mVHlwZU5hbWU9W107dGhpcy5pbnN0YW5jZXNCeVR5cGVOYW1lX1t0eXBlTmFtZV09aW5zdGFuY2VzT2ZUeXBlTmFtZTt9Ci1pbnN0YW5jZXNPZlR5cGVOYW1lLnB1c2goaW5zdGFuY2UpO3JldHVybiBpbnN0YW5jZTt9LGdldE9yQ3JlYXRlSW5zdGFuY2VNYXBfOmZ1bmN0aW9uKGlkKXt2YXIgaW5zdGFuY2VNYXA9dGhpcy5pbnN0YW5jZU1hcHNCeUlkX1tpZF07aWYoaW5zdGFuY2VNYXApCi1yZXR1cm4gaW5zdGFuY2VNYXA7aW5zdGFuY2VNYXA9bmV3IHRyLm1vZGVsLlRpbWVUb09iamVjdEluc3RhbmNlTWFwKHRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfLHRoaXMucGFyZW50LGlkKTt0aGlzLmluc3RhbmNlTWFwc0J5SWRfW2lkXT1pbnN0YW5jZU1hcDtyZXR1cm4gaW5zdGFuY2VNYXA7fSxpZFdhc0NyZWF0ZWQ6ZnVuY3Rpb24oaWQsY2F0ZWdvcnksbmFtZSx0cyl7dmFyIGluc3RhbmNlTWFwPXRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpO3JldHVybiBpbnN0YW5jZU1hcC5pZFdhc0NyZWF0ZWQoY2F0ZWdvcnksbmFtZSx0cyk7fSxhZGRTbmFwc2hvdDpmdW5jdGlvbihpZCxjYXRlZ29yeSxuYW1lLHRzLGFyZ3Msb3B0X2Jhc2VUeXBlTmFtZSl7dmFyIGluc3RhbmNlTWFwPXRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpO3ZhciBzbmFwc2hvdD1pbnN0YW5jZU1hcC5hZGRTbmFwc2hvdChjYXRlZ29yeSxuYW1lLHRzLGFyZ3Msb3B0X2Jhc2VUeXBlTmFtZSk7aWYoc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuY2F0ZWdvcnkhPWNhdGVnb3J5KXt2YXIgbXNnPSdBZGRlZCBzbmFwc2hvdCBuYW1lPScrbmFtZSsnIHdpdGggY2F0PScrY2F0ZWdvcnkrJyBpbXBvc3NpYmxlLiBJdCBpbnN0YW5jZSB3YXMgY3JlYXRlZC9zbmFwc2hvdHRlZCB3aXRoIGNhdD0nKwotc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuY2F0ZWdvcnkrJyBuYW1lPScrCi1zbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5uYW1lO3Rocm93IG5ldyBFcnJvcihtc2cpO30KLWlmKG9wdF9iYXNlVHlwZU5hbWUmJnNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmJhc2VUeXBlTmFtZSE9b3B0X2Jhc2VUeXBlTmFtZSl7dGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgYWRkIHNuYXBzaG90IHdpdGggYmFzZVR5cGVOYW1lPScrCi1vcHRfYmFzZVR5cGVOYW1lKycuIEl0ICcrJ3dhcyBwcmV2aW91c2x5IGNyZWF0ZWQgd2l0aCBuYW1lPScrCi1zbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5iYXNlVHlwZU5hbWUpO30KLWlmKHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLm5hbWUhPW5hbWUpe3Rocm93IG5ldyBFcnJvcignQ291bGQgbm90IGFkZCBzbmFwc2hvdCB3aXRoIG5hbWU9JytuYW1lKycuIEl0ICcrJ3dhcyBwcmV2aW91c2x5IGNyZWF0ZWQgd2l0aCBuYW1lPScrCi1zbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5uYW1lKTt9Ci1yZXR1cm4gc25hcHNob3Q7fSxpZFdhc0RlbGV0ZWQ6ZnVuY3Rpb24oaWQsY2F0ZWdvcnksbmFtZSx0cyl7dmFyIGluc3RhbmNlTWFwPXRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpO3ZhciBkZWxldGVkSW5zdGFuY2U9aW5zdGFuY2VNYXAuaWRXYXNEZWxldGVkKGNhdGVnb3J5LG5hbWUsdHMpO2lmKCFkZWxldGVkSW5zdGFuY2UpCi1yZXR1cm47aWYoZGVsZXRlZEluc3RhbmNlLmNhdGVnb3J5IT1jYXRlZ29yeSl7dmFyIG1zZz0nRGVsZXRpbmcgb2JqZWN0ICcrZGVsZXRlZEluc3RhbmNlLm5hbWUrJyB3aXRoIGEgZGlmZmVyZW50IGNhdGVnb3J5ICcrJ3RoYW4gd2hlbiBpdCB3YXMgY3JlYXRlZC4gSXQgcHJldmlvdXMgaGFkIGNhdD0nKwotZGVsZXRlZEluc3RhbmNlLmNhdGVnb3J5KycgYnV0IHRoZSBkZWxldGUgY29tbWFuZCAnKydoYWQgY2F0PScrY2F0ZWdvcnk7dGhyb3cgbmV3IEVycm9yKG1zZyk7fQotaWYoZGVsZXRlZEluc3RhbmNlLmJhc2VUeXBlTmFtZSE9bmFtZSl7dGhyb3cgbmV3IEVycm9yKCdEZWxldGlvbiByZXF1ZXN0ZWQgZm9yIG5hbWU9JysKLW5hbWUrJyBjb3VsZCBub3QgcHJvY2VlZDogJysnQW4gZXhpc3Rpbmcgb2JqZWN0IHdpdGggYmFzZVR5cGVOYW1lPScrCi1kZWxldGVkSW5zdGFuY2UuYmFzZVR5cGVOYW1lKycgZXhpc3RlZC4nKTt9fSxhdXRvRGVsZXRlT2JqZWN0czpmdW5jdGlvbihtYXhUaW1lc3RhbXApe3RyLmIuaXRlckl0ZW1zKHRoaXMuaW5zdGFuY2VNYXBzQnlJZF8sZnVuY3Rpb24oaWQsaTJpbWFwKXt2YXIgbGFzdEluc3RhbmNlPWkyaW1hcC5sYXN0SW5zdGFuY2U7aWYobGFzdEluc3RhbmNlLmRlbGV0aW9uVHMhPU51bWJlci5NQVhfVkFMVUUpCi1yZXR1cm47aTJpbWFwLmlkV2FzRGVsZXRlZChsYXN0SW5zdGFuY2UuY2F0ZWdvcnksbGFzdEluc3RhbmNlLm5hbWUsbWF4VGltZXN0YW1wKTtsYXN0SW5zdGFuY2UuZGVsZXRpb25Uc1dhc0V4cGxpY2l0PWZhbHNlO30pO30sZ2V0T2JqZWN0SW5zdGFuY2VBdDpmdW5jdGlvbihpZCx0cyl7dmFyIGluc3RhbmNlTWFwPXRoaXMuaW5zdGFuY2VNYXBzQnlJZF9baWRdO2lmKCFpbnN0YW5jZU1hcCkKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIGluc3RhbmNlTWFwLmdldEluc3RhbmNlQXQodHMpO30sZ2V0U25hcHNob3RBdDpmdW5jdGlvbihpZCx0cyl7dmFyIGluc3RhbmNlPXRoaXMuZ2V0T2JqZWN0SW5zdGFuY2VBdChpZCx0cyk7aWYoIWluc3RhbmNlKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gaW5zdGFuY2UuZ2V0U25hcHNob3RBdCh0cyk7fSxpdGVyT2JqZWN0SW5zdGFuY2VzOmZ1bmN0aW9uKGl0ZXIsb3B0X3RoaXMpe29wdF90aGlzPW9wdF90aGlzfHx0aGlzO3RyLmIuaXRlckl0ZW1zKHRoaXMuaW5zdGFuY2VNYXBzQnlJZF8sZnVuY3Rpb24oaWQsaTJpbWFwKXtpMmltYXAuaW5zdGFuY2VzLmZvckVhY2goaXRlcixvcHRfdGhpcyk7fSk7fSxnZXRBbGxPYmplY3RJbnN0YW5jZXM6ZnVuY3Rpb24oKXt2YXIgaW5zdGFuY2VzPVtdO3RoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpKXtpbnN0YW5jZXMucHVzaChpKTt9KTtyZXR1cm4gaW5zdGFuY2VzO30sZ2V0QWxsSW5zdGFuY2VzTmFtZWQ6ZnVuY3Rpb24obmFtZSl7cmV0dXJuIHRoaXMuaW5zdGFuY2VzQnlUeXBlTmFtZV9bbmFtZV07fSxnZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2VzQnlUeXBlTmFtZV87fSxwcmVJbml0aWFsaXplQWxsT2JqZWN0czpmdW5jdGlvbigpe3RoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSl7aW5zdGFuY2UucHJlSW5pdGlhbGl6ZSgpO30pO30saW5pdGlhbGl6ZUFsbE9iamVjdHM6ZnVuY3Rpb24oKXt0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2Upe2luc3RhbmNlLmluaXRpYWxpemUoKTt9KTt9LGluaXRpYWxpemVJbnN0YW5jZXM6ZnVuY3Rpb24oKXt0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2Upe2luc3RhbmNlLmluaXRpYWxpemUoKTt9KTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7dGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKXtpbnN0YW5jZS51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZShpbnN0YW5jZS5ib3VuZHMpO30sdGhpcyk7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKXtpbnN0YW5jZS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7fSk7fSxhZGRDYXRlZ29yaWVzVG9EaWN0OmZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KXt0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2Upe2NhdGVnb3JpZXNEaWN0W2luc3RhbmNlLmNhdGVnb3J5XT10cnVlO30pO319O3JldHVybntPYmplY3RDb2xsZWN0aW9uOk9iamVjdENvbGxlY3Rpb259O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNsaWNlPXRyLm1vZGVsLlNsaWNlO2Z1bmN0aW9uIFRocmVhZFNsaWNlKGNhdCx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Msb3B0X2R1cmF0aW9uLG9wdF9jcHVTdGFydCxvcHRfY3B1RHVyYXRpb24pe1NsaWNlLmNhbGwodGhpcyxjYXQsdGl0bGUsY29sb3JJZCxzdGFydCxhcmdzLG9wdF9kdXJhdGlvbixvcHRfY3B1U3RhcnQsb3B0X2NwdUR1cmF0aW9uKTt0aGlzLnN1YlNsaWNlcz1bXTt9Ci1UaHJlYWRTbGljZS5wcm90b3R5cGU9e19fcHJvdG9fXzpTbGljZS5wcm90b3R5cGV9O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoVGhyZWFkU2xpY2Use25hbWU6J3NsaWNlJyxwbHVyYWxOYW1lOidzbGljZXMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItYy1hLXNpbmdsZS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci1jLWEtbXVsdGktdGhyZWFkLXNsaWNlLXN1Yi12aWV3J30pO3JldHVybntUaHJlYWRTbGljZTpUaHJlYWRTbGljZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVpJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGJvdW5kQ2hhbm5lbCh2KXtyZXR1cm4gTWF0aC5taW4oMjU1LE1hdGgubWF4KDAsTWF0aC5mbG9vcih2KSkpO30KLWZ1bmN0aW9uIGJyaWdodGVuQ29sb3IoYyl7dmFyIGs7aWYoYy5yPj0yNDAmJmMuZz49MjQwJiZjLmI+PTI0MCkKLWs9MC44MDtlbHNlCi1rPTEuNDU7cmV0dXJue3I6Ym91bmRDaGFubmVsKGMuciprKSxnOmJvdW5kQ2hhbm5lbChjLmcqayksYjpib3VuZENoYW5uZWwoYy5iKmspfTt9Ci1mdW5jdGlvbiBkZXNhdHVyYXRlQ29sb3IoYyl7dmFyIHZhbHVlPWJvdW5kQ2hhbm5lbCgoYy5yK2MuZytjLmIpLzMpO3JldHVybntyOnZhbHVlLGc6dmFsdWUsYjp2YWx1ZX07fQotZnVuY3Rpb24gY29sb3JUb1JHQlN0cmluZyhjKXtyZXR1cm4ncmdiKCcrYy5yKycsJytjLmcrJywnK2MuYisnKSc7fQotZnVuY3Rpb24gY29sb3JUb1JHQkFTdHJpbmcoYyxhKXtyZXR1cm4ncmdiYSgnK2MucisnLCcrYy5nKycsJytjLmIrJywnK2ErJyknO30KLXJldHVybnticmlnaHRlbkNvbG9yOmJyaWdodGVuQ29sb3IsZGVzYXR1cmF0ZUNvbG9yOmRlc2F0dXJhdGVDb2xvcixjb2xvclRvUkdCU3RyaW5nOmNvbG9yVG9SR0JTdHJpbmcsY29sb3JUb1JHQkFTdHJpbmc6Y29sb3JUb1JHQkFTdHJpbmd9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51aScsZnVuY3Rpb24oKXt2YXIgY29sb3JUb1JHQlN0cmluZz10ci5iLnVpLmNvbG9yVG9SR0JTdHJpbmc7dmFyIGNvbG9yVG9SR0JBU3RyaW5nPXRyLmIudWkuY29sb3JUb1JHQkFTdHJpbmc7dmFyIGdlbmVyYWxQdXJwb3NlQ29sb3JzPVt7cjoxMzgsZzoxMTMsYjoxNTJ9LHtyOjE3NSxnOjExMixiOjEzM30se3I6MTI3LGc6MTM1LGI6MjI1fSx7cjo5MyxnOjgxLGI6MTM3fSx7cjoxMTYsZzoxNDMsYjoxMTl9LHtyOjE3OCxnOjIxNCxiOjEyMn0se3I6ODcsZzoxMDksYjoxNDd9LHtyOjExOSxnOjE1NSxiOjk1fSx7cjoxMTQsZzoxODAsYjoxNjB9LHtyOjEzMixnOjg1LGI6MTAzfSx7cjoxNTcsZzoyMTAsYjoxNTB9LHtyOjE0OCxnOjk0LGI6ODZ9LHtyOjE2NCxnOjEwOCxiOjEzOH0se3I6MTM5LGc6MTkxLGI6MTUwfSx7cjoxMTAsZzo5OSxiOjE0NX0se3I6ODAsZzoxMjksYjoxMDl9LHtyOjEyNSxnOjE0MCxiOjE0OX0se3I6OTMsZzoxMjQsYjoxMzJ9LHtyOjE0MCxnOjg1LGI6MTQwfSx7cjoxMDQsZzoxNjMsYjoxNjJ9LHtyOjEzMixnOjE0MSxiOjE3OH0se3I6MTMxLGc6MTA1LGI6MTQ3fSx7cjoxMzUsZzoxODMsYjo5OH0se3I6MTUyLGc6MTM0LGI6MTc3fSx7cjoxNDEsZzoxODgsYjoxNDF9LHtyOjEzMyxnOjE2MCxiOjIxMH0se3I6MTI2LGc6MTg2LGI6MTQ4fSx7cjoxMTIsZzoxOTgsYjoyMDV9LHtyOjE4MCxnOjEyMixiOjE5NX0se3I6MjAzLGc6MTQ0LGI6MTUyfV07dmFyIHJlc2VydmVkQ29sb3JzQnlOYW1lPXt0aHJlYWRfc3RhdGVfaW93YWl0OntyOjE4MixnOjEyNSxiOjE0M30sdGhyZWFkX3N0YXRlX3J1bm5pbmc6e3I6MTI2LGc6MjAwLGI6MTQ4fSx0aHJlYWRfc3RhdGVfcnVubmFibGU6e3I6MTMzLGc6MTYwLGI6MjEwfSx0aHJlYWRfc3RhdGVfc2xlZXBpbmc6e3I6MjQwLGc6MjQwLGI6MjQwfSx0aHJlYWRfc3RhdGVfdW5rbm93bjp7cjoxOTksZzoxNTUsYjoxMjV9LG1lbW9yeV9kdW1wOntyOjAsZzowLGI6MTgwfSxnZW5lcmljX3dvcms6e3I6MTI1LGc6MTI1LGI6MTI1fSxnb29kOntyOjAsZzoxMjUsYjowfSxiYWQ6e3I6MTgwLGc6MTI1LGI6MH0sdGVycmlibGU6e3I6MTgwLGc6MCxiOjB9LGJsYWNrOntyOjAsZzowLGI6MH0scmFpbF9yZXNwb25zZTp7cjo2NyxnOjEzNSxiOjI1M30scmFpbF9hbmltYXRlOntyOjI0NCxnOjc0LGI6NjN9LHJhaWxfaWRsZTp7cjoyMzgsZzoxNDIsYjowfSxyYWlsX2xvYWQ6e3I6MTMsZzoxNjgsYjo5N319O3ZhciBudW1HZW5lcmFsUHVycG9zZUNvbG9ySWRzPWdlbmVyYWxQdXJwb3NlQ29sb3JzLmxlbmd0aDt2YXIgbnVtUmVzZXJ2ZWRDb2xvcklkcz10ci5iLmRpY3Rpb25hcnlMZW5ndGgocmVzZXJ2ZWRDb2xvcnNCeU5hbWUpO3ZhciBwYWxldHRlUmF3PShmdW5jdGlvbigpe3ZhciBwYWxldHRlQmFzZT1bXTtwYWxldHRlQmFzZS5wdXNoLmFwcGx5KHBhbGV0dGVCYXNlLGdlbmVyYWxQdXJwb3NlQ29sb3JzKTtwYWxldHRlQmFzZS5wdXNoLmFwcGx5KHBhbGV0dGVCYXNlLHRyLmIuZGljdGlvbmFyeVZhbHVlcyhyZXNlcnZlZENvbG9yc0J5TmFtZSkpO3JldHVybiBwYWxldHRlQmFzZS5jb25jYXQocGFsZXR0ZUJhc2UubWFwKHRyLmIudWkuYnJpZ2h0ZW5Db2xvcikscGFsZXR0ZUJhc2UubWFwKHRyLmIudWkuZGVzYXR1cmF0ZUNvbG9yKSk7fSkoKTt2YXIgcGFsZXR0ZT1wYWxldHRlUmF3Lm1hcChjb2xvclRvUkdCU3RyaW5nKTt2YXIgaGlnaGxpZ2h0SWRCb29zdD1wYWxldHRlUmF3Lmxlbmd0aC8zO3ZhciBkZXNhdHVyYXRlSWRCb29zdD0ocGFsZXR0ZVJhdy5sZW5ndGgvMykqMjt2YXIgcmVzZXJ2ZWRDb2xvck5hbWVUb0lkTWFwPShmdW5jdGlvbigpe3ZhciBtPXt9O3ZhciBpPWdlbmVyYWxQdXJwb3NlQ29sb3JzLmxlbmd0aDt0ci5iLml0ZXJJdGVtcyhyZXNlcnZlZENvbG9yc0J5TmFtZSxmdW5jdGlvbihrZXksdmFsdWUpe21ba2V5XT1pKys7fSk7cmV0dXJuIG07fSkoKTtmdW5jdGlvbiBnZXRTdHJpbmdIYXNoKG5hbWUpe3ZhciBoYXNoPTA7Zm9yKHZhciBpPTA7aTxuYW1lLmxlbmd0aDsrK2kpCi1oYXNoPShoYXNoKzM3Kmhhc2grMTEqbmFtZS5jaGFyQ29kZUF0KGkpKSUweEZGRkZGRkZGO3JldHVybiBoYXNoO30KLWZ1bmN0aW9uIGdldENvbG9yUGFsZXR0ZSgpe3JldHVybiBwYWxldHRlO30KLWZ1bmN0aW9uIGdldFJhd0NvbG9yUGFsZXR0ZSgpe3JldHVybiBwYWxldHRlUmF3O30KLWZ1bmN0aW9uIGdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3QoKXtyZXR1cm4gaGlnaGxpZ2h0SWRCb29zdDt9Ci1mdW5jdGlvbiBnZXRDb2xvclBhbGV0dGVEZXNhdHVyYXRlSWRCb29zdCgpe3JldHVybiBkZXNhdHVyYXRlSWRCb29zdDt9Ci1mdW5jdGlvbiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKG5hbWUpe3ZhciBpZD1yZXNlcnZlZENvbG9yTmFtZVRvSWRNYXBbbmFtZV07aWYoaWQ9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBjb2xvciAnKStuYW1lO3JldHVybiBpZDt9Ci12YXIgc3RyaW5nQ29sb3JJZENhY2hlPXt9O2Z1bmN0aW9uIGdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhzdHJpbmcpe2lmKHN0cmluZ0NvbG9ySWRDYWNoZVtzdHJpbmddPT09dW5kZWZpbmVkKXt2YXIgaGFzaD1nZXRTdHJpbmdIYXNoKHN0cmluZyk7c3RyaW5nQ29sb3JJZENhY2hlW3N0cmluZ109aGFzaCVudW1HZW5lcmFsUHVycG9zZUNvbG9ySWRzO30KLXJldHVybiBzdHJpbmdDb2xvcklkQ2FjaGVbc3RyaW5nXTt9Ci12YXIgcGFsZXR0ZVByb3BlcnRpZXM9e251bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHM6bnVtR2VuZXJhbFB1cnBvc2VDb2xvcklkcyxoaWdobGlnaHRJZEJvb3N0OmhpZ2hsaWdodElkQm9vc3QsZGVzYXR1cmF0ZUlkQm9vc3Q6ZGVzYXR1cmF0ZUlkQm9vc3R9O3JldHVybntnZXRSYXdDb2xvclBhbGV0dGU6Z2V0UmF3Q29sb3JQYWxldHRlLGdldENvbG9yUGFsZXR0ZTpnZXRDb2xvclBhbGV0dGUscGFsZXR0ZVByb3BlcnRpZXM6cGFsZXR0ZVByb3BlcnRpZXMsZ2V0Q29sb3JQYWxldHRlSGlnaGxpZ2h0SWRCb29zdDpnZXRDb2xvclBhbGV0dGVIaWdobGlnaHRJZEJvb3N0LGdldENvbG9yUGFsZXR0ZURlc2F0dXJhdGVJZEJvb3N0OmdldENvbG9yUGFsZXR0ZURlc2F0dXJhdGVJZEJvb3N0LGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWU6Z2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSxnZXRTdHJpbmdIYXNoOmdldFN0cmluZ0hhc2gsZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nOmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZ307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgU2xpY2U9dHIubW9kZWwuU2xpY2U7ZnVuY3Rpb24gZ2V0U2xpY2VMbyhzKXtyZXR1cm4gcy5zdGFydDt9Ci1mdW5jdGlvbiBnZXRTbGljZUhpKHMpe3JldHVybiBzLmVuZDt9Ci1mdW5jdGlvbiBTbGljZUdyb3VwKHBhcmVudENvbnRhaW5lcixvcHRfc2xpY2VDb25zdHJ1Y3RvcixvcHRfbmFtZSl7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLnBhcmVudENvbnRhaW5lcl89cGFyZW50Q29udGFpbmVyO3ZhciBzbGljZUNvbnN0cnVjdG9yPW9wdF9zbGljZUNvbnN0cnVjdG9yfHxTbGljZTt0aGlzLnNsaWNlQ29uc3RydWN0b3I9c2xpY2VDb25zdHJ1Y3Rvcjt0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXz1bXTt0aGlzLnNsaWNlcz1bXTt0aGlzLmJvdW5kcz1uZXcgdHIuYi5SYW5nZSgpO3RoaXMudG9wTGV2ZWxTbGljZXM9W107dGhpcy5oYXZlVG9wTGV2ZWxTbGljZXNCZWVuQnVpbHQ9ZmFsc2U7dGhpcy5uYW1lXz1vcHRfbmFtZTt9Ci1TbGljZUdyb3VwLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSxnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sZ2V0IHBhcmVudENvbnRhaW5lcigpe3JldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl87fSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5wYXJlbnRDb250YWluZXJfLnBhcmVudC5tb2RlbDt9LGdldCBzdGFibGVJZCgpe3JldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl8uc3RhYmxlSWQrJy5TbGljZUdyb3VwJzt9LGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7aWYoIXRoaXMubmFtZV8pCi1yZXR1cm4gdW5kZWZpbmVkO3ZhciBwYXJlbnRLZXk9dGhpcy5wYXJlbnRDb250YWluZXJfLmdldFNldHRpbmdzS2V5KCk7aWYoIXBhcmVudEtleSkKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIHBhcmVudEtleSsnLicrdGhpcy5uYW1lO30sZ2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnNsaWNlcy5sZW5ndGg7fSxwdXNoU2xpY2U6ZnVuY3Rpb24oc2xpY2Upe3RoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0PWZhbHNlO3NsaWNlLnBhcmVudENvbnRhaW5lcj10aGlzLnBhcmVudENvbnRhaW5lcl87dGhpcy5zbGljZXMucHVzaChzbGljZSk7cmV0dXJuIHNsaWNlO30scHVzaFNsaWNlczpmdW5jdGlvbihzbGljZXMpe3RoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0PWZhbHNlO3NsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXtzbGljZS5wYXJlbnRDb250YWluZXI9dGhpcy5wYXJlbnRDb250YWluZXJfO3RoaXMuc2xpY2VzLnB1c2goc2xpY2UpO30sdGhpcyk7fSxiZWdpblNsaWNlOmZ1bmN0aW9uKGNhdGVnb3J5LHRpdGxlLHRzLG9wdF9hcmdzLG9wdF90dHMpe2lmKHRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCl7dmFyIHByZXZTbGljZT10aGlzLm9wZW5QYXJ0aWFsU2xpY2VzX1t0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGgtMV07aWYodHM8cHJldlNsaWNlLnN0YXJ0KQotdGhyb3cgbmV3IEVycm9yKCdTbGljZXMgbXVzdCBiZSBhZGRlZCBpbiBpbmNyZWFzaW5nIHRpbWVzdGFtcCBvcmRlcicpO30KLXZhciBjb2xvcklkPXRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHRpdGxlKTt2YXIgc2xpY2U9bmV3IHRoaXMuc2xpY2VDb25zdHJ1Y3RvcihjYXRlZ29yeSx0aXRsZSxjb2xvcklkLHRzLG9wdF9hcmdzP29wdF9hcmdzOnt9LG51bGwsb3B0X3R0cyk7dGhpcy5vcGVuUGFydGlhbFNsaWNlc18ucHVzaChzbGljZSk7c2xpY2UuZGlkTm90RmluaXNoPXRydWU7dGhpcy5wdXNoU2xpY2Uoc2xpY2UpO3JldHVybiBzbGljZTt9LGlzVGltZXN0YW1wVmFsaWRGb3JCZWdpbk9yRW5kOmZ1bmN0aW9uKHRzKXtpZighdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoKQotcmV0dXJuIHRydWU7dmFyIHRvcD10aGlzLm9wZW5QYXJ0aWFsU2xpY2VzX1t0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGgtMV07cmV0dXJuIHRzPj10b3Auc3RhcnQ7fSxnZXQgb3BlblNsaWNlQ291bnQoKXtyZXR1cm4gdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoO30sZ2V0IG1vc3RSZWNlbnRseU9wZW5lZFBhcnRpYWxTbGljZSgpe2lmKCF0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGgpCi1yZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzX1t0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGgtMV07fSxlbmRTbGljZTpmdW5jdGlvbih0cyxvcHRfdHRzKXtpZighdGhpcy5vcGVuU2xpY2VDb3VudCkKLXRocm93IG5ldyBFcnJvcignZW5kU2xpY2UgY2FsbGVkIHdpdGhvdXQgYW4gb3BlbiBzbGljZScpO3ZhciBzbGljZT10aGlzLm9wZW5QYXJ0aWFsU2xpY2VzX1t0aGlzLm9wZW5TbGljZUNvdW50LTFdO3RoaXMub3BlblBhcnRpYWxTbGljZXNfLnNwbGljZSh0aGlzLm9wZW5TbGljZUNvdW50LTEsMSk7aWYodHM8c2xpY2Uuc3RhcnQpCi10aHJvdyBuZXcgRXJyb3IoJ1NsaWNlICcrc2xpY2UudGl0bGUrJyBlbmQgdGltZSBpcyBiZWZvcmUgaXRzIHN0YXJ0LicpO3NsaWNlLmR1cmF0aW9uPXRzLXNsaWNlLnN0YXJ0O3NsaWNlLmRpZE5vdEZpbmlzaD1mYWxzZTtpZihvcHRfdHRzJiZzbGljZS5jcHVTdGFydCE9PXVuZGVmaW5lZCkKLXNsaWNlLmNwdUR1cmF0aW9uPW9wdF90dHMtc2xpY2UuY3B1U3RhcnQ7cmV0dXJuIHNsaWNlO30scHVzaENvbXBsZXRlU2xpY2U6ZnVuY3Rpb24oY2F0ZWdvcnksdGl0bGUsdHMsZHVyYXRpb24sdHRzLGNwdUR1cmF0aW9uLG9wdF9hcmdzKXt2YXIgY29sb3JJZD10ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aXRsZSk7dmFyIHNsaWNlPW5ldyB0aGlzLnNsaWNlQ29uc3RydWN0b3IoY2F0ZWdvcnksdGl0bGUsY29sb3JJZCx0cyxvcHRfYXJncz9vcHRfYXJnczp7fSxkdXJhdGlvbix0dHMsY3B1RHVyYXRpb24pO2lmKGR1cmF0aW9uPT09dW5kZWZpbmVkKQotc2xpY2UuZGlkTm90RmluaXNoPXRydWU7dGhpcy5wdXNoU2xpY2Uoc2xpY2UpO3JldHVybiBzbGljZTt9LGF1dG9DbG9zZU9wZW5TbGljZXM6ZnVuY3Rpb24ob3B0X21heFRpbWVzdGFtcCl7aWYoIW9wdF9tYXhUaW1lc3RhbXApe3RoaXMudXBkYXRlQm91bmRzKCk7b3B0X21heFRpbWVzdGFtcD10aGlzLmJvdW5kcy5tYXg7fQotZm9yKHZhciBzST0wO3NJPHRoaXMuc2xpY2VzLmxlbmd0aDtzSSsrKXt2YXIgc2xpY2U9dGhpcy5zbGljZXNbc0ldO2lmKHNsaWNlLmRpZE5vdEZpbmlzaCkKLXNsaWNlLmR1cmF0aW9uPW9wdF9tYXhUaW1lc3RhbXAtc2xpY2Uuc3RhcnQ7fQotdGhpcy5vcGVuUGFydGlhbFNsaWNlc189W107fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7Zm9yKHZhciBzST0wO3NJPHRoaXMuc2xpY2VzLmxlbmd0aDtzSSsrKXt2YXIgc2xpY2U9dGhpcy5zbGljZXNbc0ldO3NsaWNlLnN0YXJ0PShzbGljZS5zdGFydCthbW91bnQpO319LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7Zm9yKHZhciBpPTA7aTx0aGlzLnNsaWNlcy5sZW5ndGg7aSsrKXt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1tpXS5zdGFydCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbaV0uZW5kKTt9fSxjb3B5U2xpY2U6ZnVuY3Rpb24oc2xpY2Upe3ZhciBuZXdTbGljZT1uZXcgdGhpcy5zbGljZUNvbnN0cnVjdG9yKHNsaWNlLmNhdGVnb3J5LHNsaWNlLnRpdGxlLHNsaWNlLmNvbG9ySWQsc2xpY2Uuc3RhcnQsc2xpY2UuYXJncyxzbGljZS5kdXJhdGlvbixzbGljZS5jcHVTdGFydCxzbGljZS5jcHVEdXJhdGlvbik7bmV3U2xpY2UuZGlkTm90RmluaXNoPXNsaWNlLmRpZE5vdEZpbmlzaDtyZXR1cm4gbmV3U2xpY2U7fSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsdGhpcy5zbGljZUNvbnN0cnVjdG9yKSkKLXRoaXMuc2xpY2VzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO30saXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt9LGdldFNsaWNlc09mTmFtZTpmdW5jdGlvbih0aXRsZSl7dmFyIHNsaWNlcz1bXTtmb3IodmFyIGk9MDtpPHRoaXMuc2xpY2VzLmxlbmd0aDtpKyspe2lmKHRoaXMuc2xpY2VzW2ldLnRpdGxlPT10aXRsZSl7c2xpY2VzLnB1c2godGhpcy5zbGljZXNbaV0pO319Ci1yZXR1cm4gc2xpY2VzO30saXRlclNsaWNlc0luVGltZVJhbmdlOmZ1bmN0aW9uKGNhbGxiYWNrLHN0YXJ0LGVuZCl7dmFyIHJldD1bXTt0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKHRoaXMudG9wTGV2ZWxTbGljZXMsZnVuY3Rpb24ocyl7cmV0dXJuIHMuc3RhcnQ7fSxmdW5jdGlvbihzKXtyZXR1cm4gcy5kdXJhdGlvbjt9LHN0YXJ0LGVuZCxmdW5jdGlvbih0b3BMZXZlbFNsaWNlKXtjYWxsYmFjayh0b3BMZXZlbFNsaWNlKTt0b3BMZXZlbFNsaWNlLml0ZXJhdGVBbGxEZXNjZW5kZW50cyhjYWxsYmFjayk7fSk7cmV0dXJuIHJldDt9LGZpbmRTbGljZUF0VHM6ZnVuY3Rpb24odHMpe2lmKCF0aGlzLmhhdmVUb3BMZXZlbFNsaWNlc0JlZW5CdWlsdCkKLXRocm93IG5ldyBFcnJvcignTm9wZScpO3ZhciBpPXRyLmIuZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHModGhpcy50b3BMZXZlbFNsaWNlcyxnZXRTbGljZUxvLGdldFNsaWNlSGksdHMpO2lmKGk9PS0xfHxpPT10aGlzLnRvcExldmVsU2xpY2VzLmxlbmd0aCkKLXJldHVybiB1bmRlZmluZWQ7dmFyIGN1clNsaWNlPXRoaXMudG9wTGV2ZWxTbGljZXNbaV07d2hpbGUodHJ1ZSl7dmFyIGk9dHIuYi5maW5kSW5kZXhJblNvcnRlZENsb3NlZEludGVydmFscyhjdXJTbGljZS5zdWJTbGljZXMsZ2V0U2xpY2VMbyxnZXRTbGljZUhpLHRzKTtpZihpPT0tMXx8aT09Y3VyU2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCkKLXJldHVybiBjdXJTbGljZTtjdXJTbGljZT1jdXJTbGljZS5zdWJTbGljZXNbaV07fX0sZmluZE5leHRTbGljZUFmdGVyOmZ1bmN0aW9uKHRzLHJlZkd1aWQpe3ZhciBpPXRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSh0aGlzLnNsaWNlcyxnZXRTbGljZUxvLHRzKTtpZihpPT09dGhpcy5zbGljZXMubGVuZ3RoKQotcmV0dXJuIHVuZGVmaW5lZDtmb3IoO2k8dGhpcy5zbGljZXMubGVuZ3RoO2krKyl7dmFyIHNsaWNlPXRoaXMuc2xpY2VzW2ldO2lmKHNsaWNlLnN0YXJ0PnRzKQotcmV0dXJuIHNsaWNlO2lmKHNsaWNlLmd1aWQ8PXJlZkd1aWQpCi1jb250aW51ZTtyZXR1cm4gc2xpY2U7fQotcmV0dXJuIHVuZGVmaW5lZDt9LGNyZWF0ZVN1YlNsaWNlczpmdW5jdGlvbigpe3RoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0PXRydWU7dGhpcy5jcmVhdGVTdWJTbGljZXNJbXBsXygpO2lmKHRoaXMucGFyZW50Q29udGFpbmVyLnRpbWVTbGljZXMpCi10aGlzLmFkZENwdVRpbWVUb1N1YnNsaWNlc18odGhpcy5wYXJlbnRDb250YWluZXIudGltZVNsaWNlcyk7dGhpcy5zbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSl7dmFyIHNlbGZUaW1lPXNsaWNlLmR1cmF0aW9uO2Zvcih2YXIgaT0wO2k8c2xpY2Uuc3ViU2xpY2VzLmxlbmd0aDtpKyspCi1zZWxmVGltZS09c2xpY2Uuc3ViU2xpY2VzW2ldLmR1cmF0aW9uO3NsaWNlLnNlbGZUaW1lPXNlbGZUaW1lO2lmKHNsaWNlLmNwdUR1cmF0aW9uPT09dW5kZWZpbmVkKQotcmV0dXJuO3ZhciBjcHVTZWxmVGltZT1zbGljZS5jcHVEdXJhdGlvbjtmb3IodmFyIGk9MDtpPHNsaWNlLnN1YlNsaWNlcy5sZW5ndGg7aSsrKXtpZihzbGljZS5zdWJTbGljZXNbaV0uY3B1RHVyYXRpb24hPT11bmRlZmluZWQpCi1jcHVTZWxmVGltZS09c2xpY2Uuc3ViU2xpY2VzW2ldLmNwdUR1cmF0aW9uO30KLXNsaWNlLmNwdVNlbGZUaW1lPWNwdVNlbGZUaW1lO30pO30sY3JlYXRlU3ViU2xpY2VzSW1wbF86ZnVuY3Rpb24oKXtmdW5jdGlvbiBhZGRTbGljZUlmQm91bmRzKHJvb3QsY2hpbGQpe2lmKHJvb3QuYm91bmRzKGNoaWxkKSl7aWYocm9vdC5zdWJTbGljZXMmJnJvb3Quc3ViU2xpY2VzLmxlbmd0aD4wKXtpZihhZGRTbGljZUlmQm91bmRzKHJvb3Quc3ViU2xpY2VzW3Jvb3Quc3ViU2xpY2VzLmxlbmd0aC0xXSxjaGlsZCkpCi1yZXR1cm4gdHJ1ZTt9Ci1jaGlsZC5wYXJlbnRTbGljZT1yb290O2lmKHJvb3Quc3ViU2xpY2VzPT09dW5kZWZpbmVkKQotcm9vdC5zdWJTbGljZXM9W107cm9vdC5zdWJTbGljZXMucHVzaChjaGlsZCk7cmV0dXJuIHRydWU7fQotcmV0dXJuIGZhbHNlO30KLWlmKCF0aGlzLnNsaWNlcy5sZW5ndGgpCi1yZXR1cm47dmFyIG9wcz1bXTtmb3IodmFyIGk9MDtpPHRoaXMuc2xpY2VzLmxlbmd0aDtpKyspe2lmKHRoaXMuc2xpY2VzW2ldLnN1YlNsaWNlcykKLXRoaXMuc2xpY2VzW2ldLnN1YlNsaWNlcy5zcGxpY2UoMCx0aGlzLnNsaWNlc1tpXS5zdWJTbGljZXMubGVuZ3RoKTtvcHMucHVzaChpKTt9Ci12YXIgb3JpZ2luYWxTbGljZXM9dGhpcy5zbGljZXM7b3BzLnNvcnQoZnVuY3Rpb24oaXgsaXkpe3ZhciB4PW9yaWdpbmFsU2xpY2VzW2l4XTt2YXIgeT1vcmlnaW5hbFNsaWNlc1tpeV07aWYoeC5zdGFydCE9eS5zdGFydCkKLXJldHVybiB4LnN0YXJ0LXkuc3RhcnQ7cmV0dXJuIGl4LWl5O30pO3ZhciBzbGljZXM9bmV3IEFycmF5KHRoaXMuc2xpY2VzLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTxvcHMubGVuZ3RoO2krKyl7c2xpY2VzW2ldPW9yaWdpbmFsU2xpY2VzW29wc1tpXV07fQotdmFyIHJvb3RTbGljZT1zbGljZXNbMF07dGhpcy50b3BMZXZlbFNsaWNlcz1bXTt0aGlzLnRvcExldmVsU2xpY2VzLnB1c2gocm9vdFNsaWNlKTtmb3IodmFyIGk9MTtpPHNsaWNlcy5sZW5ndGg7aSsrKXt2YXIgc2xpY2U9c2xpY2VzW2ldO2lmKCFhZGRTbGljZUlmQm91bmRzKHJvb3RTbGljZSxzbGljZSkpe3Jvb3RTbGljZT1zbGljZTt0aGlzLnRvcExldmVsU2xpY2VzLnB1c2gocm9vdFNsaWNlKTt9fQotdGhpcy5zbGljZXM9c2xpY2VzO30sYWRkQ3B1VGltZVRvU3Vic2xpY2VzXzpmdW5jdGlvbih0aW1lU2xpY2VzKXt2YXIgU0NIRURVTElOR19TVEFURT10ci5tb2RlbC5TQ0hFRFVMSU5HX1NUQVRFO3ZhciBzbGljZUlkeD0wO3RpbWVTbGljZXMuZm9yRWFjaChmdW5jdGlvbih0aW1lU2xpY2Upe2lmKHRpbWVTbGljZS5zY2hlZHVsaW5nU3RhdGU9PVNDSEVEVUxJTkdfU1RBVEUuUlVOTklORyl7d2hpbGUoc2xpY2VJZHg8dGhpcy50b3BMZXZlbFNsaWNlcy5sZW5ndGgpe2lmKHRoaXMuYWRkQ3B1VGltZVRvU3Vic2xpY2VfKHRoaXMudG9wTGV2ZWxTbGljZXNbc2xpY2VJZHhdLHRpbWVTbGljZSkpe3NsaWNlSWR4Kys7fWVsc2V7YnJlYWs7fX19fSx0aGlzKTt9LGFkZENwdVRpbWVUb1N1YnNsaWNlXzpmdW5jdGlvbihzbGljZSx0aW1lU2xpY2Upe2lmKHNsaWNlLnN0YXJ0PnRpbWVTbGljZS5lbmR8fHNsaWNlLmVuZDx0aW1lU2xpY2Uuc3RhcnQpCi1yZXR1cm4gc2xpY2UuZW5kPD10aW1lU2xpY2UuZW5kO3ZhciBkdXJhdGlvbj10aW1lU2xpY2UuZHVyYXRpb247aWYoc2xpY2Uuc3RhcnQ+dGltZVNsaWNlLnN0YXJ0KQotZHVyYXRpb24tPXNsaWNlLnN0YXJ0LXRpbWVTbGljZS5zdGFydDtpZih0aW1lU2xpY2UuZW5kPnNsaWNlLmVuZCkKLWR1cmF0aW9uLT10aW1lU2xpY2UuZW5kLXNsaWNlLmVuZDtpZihzbGljZS5jcHVEdXJhdGlvbil7c2xpY2UuY3B1RHVyYXRpb24rPWR1cmF0aW9uO31lbHNle3NsaWNlLmNwdUR1cmF0aW9uPWR1cmF0aW9uO30KLWZvcih2YXIgaT0wO2k8c2xpY2Uuc3ViU2xpY2VzLmxlbmd0aDtpKyspe3RoaXMuYWRkQ3B1VGltZVRvU3Vic2xpY2VfKHNsaWNlLnN1YlNsaWNlc1tpXSx0aW1lU2xpY2UpO30KLXJldHVybiBzbGljZS5lbmQ8PXRpbWVTbGljZS5lbmQ7fX07U2xpY2VHcm91cC5tZXJnZT1mdW5jdGlvbihncm91cEEsZ3JvdXBCKXtpZihncm91cEEub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aD4wKQotdGhyb3cgbmV3IEVycm9yKCdncm91cEEgaGFzIG9wZW4gcGFydGlhbCBzbGljZXMnKTtpZihncm91cEIub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aD4wKQotdGhyb3cgbmV3IEVycm9yKCdncm91cEIgaGFzIG9wZW4gcGFydGlhbCBzbGljZXMnKTtpZihncm91cEEucGFyZW50Q29udGFpbmVyIT1ncm91cEIucGFyZW50Q29udGFpbmVyKQotdGhyb3cgbmV3IEVycm9yKCdEaWZmZXJlbnQgcGFyZW50IHRocmVhZHMuIENhbm5vdCBtZXJnZScpO2lmKGdyb3VwQS5zbGljZUNvbnN0cnVjdG9yIT1ncm91cEIuc2xpY2VDb25zdHJ1Y3RvcikKLXRocm93IG5ldyBFcnJvcignRGlmZmVyZW50IHNsaWNlIGNvbnN0cnVjdG9ycy4gQ2Fubm90IG1lcmdlJyk7dmFyIHJlc3VsdD1uZXcgU2xpY2VHcm91cChncm91cEEucGFyZW50Q29udGFpbmVyLGdyb3VwQS5zbGljZUNvbnN0cnVjdG9yLGdyb3VwQS5uYW1lXyk7dmFyIHNsaWNlc0E9Z3JvdXBBLnNsaWNlczt2YXIgc2xpY2VzQj1ncm91cEIuc2xpY2VzO3ZhciBpZHhBPTA7dmFyIGlkeEI9MDt2YXIgb3BlbkE9W107dmFyIG9wZW5CPVtdO3ZhciBzcGxpdE9wZW5TbGljZXM9ZnVuY3Rpb24od2hlbil7Zm9yKHZhciBpPTA7aTxvcGVuQi5sZW5ndGg7aSsrKXt2YXIgb2xkU2xpY2U9b3BlbkJbaV07dmFyIG9sZEVuZD1vbGRTbGljZS5lbmQ7aWYod2hlbjxvbGRTbGljZS5zdGFydHx8b2xkRW5kPHdoZW4pe3Rocm93IG5ldyBFcnJvcignc2xpY2Ugc2hvdWxkIG5vdCBiZSBzcGxpdCcpO30KLXZhciBuZXdTbGljZT1yZXN1bHQuY29weVNsaWNlKG9sZFNsaWNlKTtuZXdTbGljZS5zdGFydD13aGVuO25ld1NsaWNlLmR1cmF0aW9uPW9sZEVuZC13aGVuO2lmKG5ld1NsaWNlLnRpdGxlLmluZGV4T2YoJyAoY29udC4pJyk9PS0xKQotbmV3U2xpY2UudGl0bGUrPScgKGNvbnQuKSc7b2xkU2xpY2UuZHVyYXRpb249d2hlbi1vbGRTbGljZS5zdGFydDtvcGVuQltpXT1uZXdTbGljZTtyZXN1bHQucHVzaFNsaWNlKG5ld1NsaWNlKTt9fTt2YXIgY2xvc2VPcGVuU2xpY2VzPWZ1bmN0aW9uKHVwVG8pe3doaWxlKG9wZW5BLmxlbmd0aD4wfHxvcGVuQi5sZW5ndGg+MCl7dmFyIG5leHRBPW9wZW5BW29wZW5BLmxlbmd0aC0xXTt2YXIgbmV4dEI9b3BlbkJbb3BlbkIubGVuZ3RoLTFdO3ZhciBlbmRBPW5leHRBJiZuZXh0QS5lbmQ7dmFyIGVuZEI9bmV4dEImJm5leHRCLmVuZDtpZigoZW5kQT09PXVuZGVmaW5lZHx8ZW5kQT51cFRvKSYmKGVuZEI9PT11bmRlZmluZWR8fGVuZEI+dXBUbykpe3JldHVybjt9Ci1pZihlbmRCPT09dW5kZWZpbmVkfHxlbmRBPGVuZEIpe3NwbGl0T3BlblNsaWNlcyhlbmRBKTtvcGVuQS5wb3AoKTt9ZWxzZXtvcGVuQi5wb3AoKTt9fX07d2hpbGUoaWR4QTxzbGljZXNBLmxlbmd0aHx8aWR4QjxzbGljZXNCLmxlbmd0aCl7dmFyIHNBPXNsaWNlc0FbaWR4QV07dmFyIHNCPXNsaWNlc0JbaWR4Ql07dmFyIG5leHRTbGljZSxpc0Zyb21CO2lmKHNBPT09dW5kZWZpbmVkfHwoc0IhPT11bmRlZmluZWQmJnNBLnN0YXJ0PnNCLnN0YXJ0KSl7bmV4dFNsaWNlPXJlc3VsdC5jb3B5U2xpY2Uoc0IpO2lzRnJvbUI9dHJ1ZTtpZHhCKys7fWVsc2V7bmV4dFNsaWNlPXJlc3VsdC5jb3B5U2xpY2Uoc0EpO2lzRnJvbUI9ZmFsc2U7aWR4QSsrO30KLWNsb3NlT3BlblNsaWNlcyhuZXh0U2xpY2Uuc3RhcnQpO3Jlc3VsdC5wdXNoU2xpY2UobmV4dFNsaWNlKTtpZihpc0Zyb21CKXtvcGVuQi5wdXNoKG5leHRTbGljZSk7fWVsc2V7c3BsaXRPcGVuU2xpY2VzKG5leHRTbGljZS5zdGFydCk7b3BlbkEucHVzaChuZXh0U2xpY2UpO319Ci1jbG9zZU9wZW5TbGljZXMoKTtyZXR1cm4gcmVzdWx0O307cmV0dXJue1NsaWNlR3JvdXA6U2xpY2VHcm91cH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBBc3luY1NsaWNlKGNhdGVnb3J5LHRpdGxlLGNvbG9ySWQsc3RhcnQsYXJncyxkdXJhdGlvbixvcHRfaXNUb3BMZXZlbCxvcHRfY3B1U3RhcnQsb3B0X2NwdUR1cmF0aW9uKXt0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcyxzdGFydCk7dGhpcy5jYXRlZ29yeT1jYXRlZ29yeXx8Jyc7dGhpcy50aXRsZT10aXRsZTt0aGlzLmNvbG9ySWQ9Y29sb3JJZDt0aGlzLmFyZ3M9YXJnczt0aGlzLnN0YXJ0U3RhY2tGcmFtZT11bmRlZmluZWQ7dGhpcy5lbmRTdGFja0ZyYW1lPXVuZGVmaW5lZDt0aGlzLmRpZE5vdEZpbmlzaD1mYWxzZTt0aGlzLmltcG9ydGFudD1mYWxzZTt0aGlzLnN1YlNsaWNlcz1bXTt0aGlzLnBhcmVudENvbnRhaW5lcj11bmRlZmluZWQ7dGhpcy5pZD11bmRlZmluZWQ7dGhpcy5zdGFydFRocmVhZD11bmRlZmluZWQ7dGhpcy5lbmRUaHJlYWQ9dW5kZWZpbmVkO3RoaXMuY3B1U3RhcnQ9dW5kZWZpbmVkO3RoaXMuY3B1RHVyYXRpb249dW5kZWZpbmVkO3RoaXMuZHVyYXRpb249ZHVyYXRpb247dGhpcy5pc1RvcExldmVsPShvcHRfaXNUb3BMZXZlbD09PXRydWUpO2lmKG9wdF9jcHVTdGFydCE9PXVuZGVmaW5lZCkKLXRoaXMuY3B1U3RhcnQ9b3B0X2NwdVN0YXJ0O2lmKG9wdF9jcHVEdXJhdGlvbiE9PXVuZGVmaW5lZCkKLXRoaXMuY3B1RHVyYXRpb249b3B0X2NwdUR1cmF0aW9uO307QXN5bmNTbGljZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSxnZXQgYW5hbHlzaXNUeXBlTmFtZSgpe3JldHVybiB0aGlzLnRpdGxlO30sZ2V0IHZpZXdTdWJHcm91cFRpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGU7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidBc3luYyBzbGljZSAnK3RoaXMudGl0bGUrJyBhdCAnKwotdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnN0YXJ0KTt9LGZpbmREZXNjZW5kZW50U2xpY2U6ZnVuY3Rpb24odGFyZ2V0VGl0bGUpe2lmKCF0aGlzLnN1YlNsaWNlcykKLXJldHVybiB1bmRlZmluZWQ7Zm9yKHZhciBpPTA7aTx0aGlzLnN1YlNsaWNlcy5sZW5ndGg7aSsrKXtpZih0aGlzLnN1YlNsaWNlc1tpXS50aXRsZT09dGFyZ2V0VGl0bGUpCi1yZXR1cm4gdGhpcy5zdWJTbGljZXNbaV07dmFyIHNsaWNlPXRoaXMuc3ViU2xpY2VzW2ldLmZpbmREZXNjZW5kZW50U2xpY2UodGFyZ2V0VGl0bGUpO2lmKHNsaWNlKXJldHVybiBzbGljZTt9Ci1yZXR1cm4gdW5kZWZpbmVkO30saXRlcmF0ZUFsbERlc2NlbmRlbnRzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXt0aGlzLnN1YlNsaWNlcy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTt0aGlzLnN1YlNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlNsaWNlKXtzdWJTbGljZS5pdGVyYXRlQWxsRGVzY2VuZGVudHMoY2FsbGJhY2ssb3B0X3RoaXMpO30sb3B0X3RoaXMpO30sY29tcGFyZVRvOmZ1bmN0aW9uKHRoYXQpe3JldHVybiB0aGlzLnRpdGxlLmxvY2FsZUNvbXBhcmUodGhhdC50aXRsZSk7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihBc3luY1NsaWNlLHtuYW1lOidhc3luY1NsaWNlJyxwbHVyYWxOYW1lOidhc3luY1NsaWNlcycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci1jLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItYy1hLW11bHRpLWFzeW5jLXNsaWNlLXN1Yi12aWV3J30pO3ZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLlRZUEVfQkFTRURfUkVHSVNUUllfTU9ERSk7b3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3M9QXN5bmNTbGljZTtvcHRpb25zLmRlZmF1bHRDb25zdHJ1Y3Rvcj1Bc3luY1NsaWNlO3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShBc3luY1NsaWNlLG9wdGlvbnMpO3JldHVybntBc3luY1NsaWNlOkFzeW5jU2xpY2V9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQXN5bmNTbGljZUdyb3VwKHBhcmVudENvbnRhaW5lcixvcHRfbmFtZSl7dGhpcy5wYXJlbnRDb250YWluZXJfPXBhcmVudENvbnRhaW5lcjt0aGlzLmd1aWRfPXRyLmIuR1VJRC5hbGxvY2F0ZSgpO3RoaXMuc2xpY2VzPVtdO3RoaXMuYm91bmRzPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5uYW1lXz1vcHRfbmFtZTt0aGlzLnZpZXdTdWJHcm91cHNfPXVuZGVmaW5lZDt9Ci1Bc3luY1NsaWNlR3JvdXAucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLGdldCBndWlkKCl7cmV0dXJuIHRoaXMuZ3VpZF87fSxnZXQgcGFyZW50Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXzt9LGdldCBtb2RlbCgpe3JldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl8ucGFyZW50Lm1vZGVsO30sZ2V0IHN0YWJsZUlkKCl7cmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXy5zdGFibGVJZCsnLkFzeW5jU2xpY2VHcm91cCc7fSxnZXRTZXR0aW5nc0tleTpmdW5jdGlvbigpe2lmKCF0aGlzLm5hbWVfKQotcmV0dXJuIHVuZGVmaW5lZDt2YXIgcGFyZW50S2V5PXRoaXMucGFyZW50Q29udGFpbmVyXy5nZXRTZXR0aW5nc0tleSgpO2lmKCFwYXJlbnRLZXkpCi1yZXR1cm4gdW5kZWZpbmVkO3JldHVybiBwYXJlbnRLZXkrJy4nK3RoaXMubmFtZV87fSxwdXNoOmZ1bmN0aW9uKHNsaWNlKXtzbGljZS5wYXJlbnRDb250YWluZXI9dGhpcy5wYXJlbnRDb250YWluZXI7dGhpcy5zbGljZXMucHVzaChzbGljZSk7cmV0dXJuIHNsaWNlO30sZ2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnNsaWNlcy5sZW5ndGg7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7Zm9yKHZhciBzST0wO3NJPHRoaXMuc2xpY2VzLmxlbmd0aDtzSSsrKXt2YXIgc2xpY2U9dGhpcy5zbGljZXNbc0ldO3NsaWNlLnN0YXJ0PShzbGljZS5zdGFydCthbW91bnQpO3ZhciBzaGlmdFN1YlNsaWNlcz1mdW5jdGlvbihzdWJTbGljZXMpe2lmKHN1YlNsaWNlcz09PXVuZGVmaW5lZHx8c3ViU2xpY2VzLmxlbmd0aD09PTApCi1yZXR1cm47Zm9yKHZhciBzSj0wO3NKPHN1YlNsaWNlcy5sZW5ndGg7c0orKyl7c3ViU2xpY2VzW3NKXS5zdGFydCs9YW1vdW50O3NoaWZ0U3ViU2xpY2VzKHN1YlNsaWNlc1tzSl0uc3ViU2xpY2VzKTt9fTtzaGlmdFN1YlNsaWNlcyhzbGljZS5zdWJTbGljZXMpO319LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7Zm9yKHZhciBpPTA7aTx0aGlzLnNsaWNlcy5sZW5ndGg7aSsrKXt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1tpXS5zdGFydCk7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbaV0uZW5kKTt9fSxnZXQgdmlld1N1Ykdyb3Vwcygpe2lmKHRoaXMudmlld1N1Ykdyb3Vwc189PT11bmRlZmluZWQpe3ZhciBwcmVmaXg9Jyc7aWYodGhpcy5uYW1lIT09dW5kZWZpbmVkKQotcHJlZml4PXRoaXMubmFtZSsnLic7ZWxzZQotcHJlZml4PScnO3ZhciBzdWJHcm91cHNCeVRpdGxlPXt9O2Zvcih2YXIgaT0wO2k8dGhpcy5zbGljZXMubGVuZ3RoOysraSl7dmFyIHNsaWNlPXRoaXMuc2xpY2VzW2ldO3ZhciBzdWJHcm91cFRpdGxlPXNsaWNlLnZpZXdTdWJHcm91cFRpdGxlO2lmKCFzdWJHcm91cHNCeVRpdGxlW3N1Ykdyb3VwVGl0bGVdKXtzdWJHcm91cHNCeVRpdGxlW3N1Ykdyb3VwVGl0bGVdPW5ldyBBc3luY1NsaWNlR3JvdXAodGhpcy5wYXJlbnRDb250YWluZXJfLHByZWZpeCtzdWJHcm91cFRpdGxlKTt9Ci1zdWJHcm91cHNCeVRpdGxlW3N1Ykdyb3VwVGl0bGVdLnB1c2goc2xpY2UpO30KLXRoaXMudmlld1N1Ykdyb3Vwc189dHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHN1Ykdyb3Vwc0J5VGl0bGUpO3RoaXMudmlld1N1Ykdyb3Vwc18uc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhLnNsaWNlc1swXS5jb21wYXJlVG8oYi5zbGljZXNbMF0pO30pO30KLXJldHVybiB0aGlzLnZpZXdTdWJHcm91cHNfO30saXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjpmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsY2FsbGJhY2ssb3B0X3RoaXMpe2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLHRyLm1vZGVsLkFzeW5jU2xpY2UpKXtmb3IodmFyIGk9MDtpPHRoaXMuc2xpY2VzLmxlbmd0aDtpKyspe3ZhciBzbGljZT10aGlzLnNsaWNlc1tpXTtjYWxsYmFjay5jYWxsKG9wdF90aGlzLHNsaWNlKTtpZihzbGljZS5zdWJTbGljZXMpCi1zbGljZS5zdWJTbGljZXMuZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7fX19LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7fX07cmV0dXJue0FzeW5jU2xpY2VHcm91cDpBc3luY1NsaWNlR3JvdXB9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNsaWNlPXRyLm1vZGVsLlNsaWNlO3ZhciBTbGljZUdyb3VwPXRyLm1vZGVsLlNsaWNlR3JvdXA7dmFyIEFzeW5jU2xpY2U9dHIubW9kZWwuQXN5bmNTbGljZTt2YXIgQXN5bmNTbGljZUdyb3VwPXRyLm1vZGVsLkFzeW5jU2xpY2VHcm91cDt2YXIgVGhyZWFkU2xpY2U9dHIubW9kZWwuVGhyZWFkU2xpY2U7dmFyIFRocmVhZFRpbWVTbGljZT10ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2U7ZnVuY3Rpb24gVGhyZWFkKHBhcmVudCx0aWQpe3RoaXMuZ3VpZF89dHIuYi5HVUlELmFsbG9jYXRlKCk7aWYoIXBhcmVudCkKLXRocm93IG5ldyBFcnJvcignUGFyZW50IG11c3QgYmUgcHJvdmlkZWQuJyk7dGhpcy5wYXJlbnQ9cGFyZW50O3RoaXMuc29ydEluZGV4PTA7dGhpcy50aWQ9dGlkO3RoaXMubmFtZT11bmRlZmluZWQ7dGhpcy5zYW1wbGVzXz11bmRlZmluZWQ7dmFyIHRoYXQ9dGhpczt0aGlzLnNsaWNlR3JvdXA9bmV3IFNsaWNlR3JvdXAodGhpcyxUaHJlYWRTbGljZSwnc2xpY2VzJyk7dGhpcy50aW1lU2xpY2VzPXVuZGVmaW5lZDt0aGlzLmtlcm5lbFNsaWNlR3JvdXA9bmV3IFNsaWNlR3JvdXAodGhpcyxUaHJlYWRTbGljZSwna2VybmVsLXNsaWNlcycpO3RoaXMuYXN5bmNTbGljZUdyb3VwPW5ldyBBc3luY1NsaWNlR3JvdXAodGhpcywnYXN5bmMtc2xpY2VzJyk7dGhpcy5ib3VuZHM9bmV3IHRyLmIuUmFuZ2UoKTt9Ci1UaHJlYWQucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLGdldCBndWlkKCl7cmV0dXJuIHRoaXMuZ3VpZF87fSxnZXQgc3RhYmxlSWQoKXtyZXR1cm4gdGhpcy5wYXJlbnQuc3RhYmxlSWQrJy4nK3RoaXMudGlkO30sY29tcGFyZVRvOmZ1bmN0aW9uKHRoYXQpe3JldHVybiBUaHJlYWQuY29tcGFyZSh0aGlzLHRoYXQpO30saXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOmZ1bmN0aW9uKGNhbGxiYWNrLG9wdF90aGlzKXtpZih0aGlzLnNsaWNlR3JvdXAubGVuZ3RoKQotY2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLnNsaWNlR3JvdXApO2lmKHRoaXMua2VybmVsU2xpY2VHcm91cC5sZW5ndGgpCi1jYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMua2VybmVsU2xpY2VHcm91cCk7aWYodGhpcy5hc3luY1NsaWNlR3JvdXAubGVuZ3RoKQotY2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLmFzeW5jU2xpY2VHcm91cCk7fSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7aWYodGhpcy50aW1lU2xpY2VzJiZ0aGlzLnRpbWVTbGljZXMubGVuZ3RoKXtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxUaHJlYWRUaW1lU2xpY2UpKQotdGhpcy50aW1lU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO319LGl0ZXJhdGVBbGxQZXJzaXN0YWJsZU9iamVjdHM6ZnVuY3Rpb24oY2Ipe2NiKHRoaXMpO2lmKHRoaXMuc2xpY2VHcm91cC5sZW5ndGgpCi1jYih0aGlzLnNsaWNlR3JvdXApO3RoaXMuYXN5bmNTbGljZUdyb3VwLnZpZXdTdWJHcm91cHMuZm9yRWFjaChjYik7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5zbGljZUdyb3VwLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTtpZih0aGlzLnRpbWVTbGljZXMpe2Zvcih2YXIgaT0wO2k8dGhpcy50aW1lU2xpY2VzLmxlbmd0aDtpKyspe3ZhciBzbGljZT10aGlzLnRpbWVTbGljZXNbaV07c2xpY2Uuc3RhcnQrPWFtb3VudDt9fQotdGhpcy5rZXJuZWxTbGljZUdyb3VwLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTt0aGlzLmFzeW5jU2xpY2VHcm91cC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7fSxnZXQgaXNFbXB0eSgpe2lmKHRoaXMuc2xpY2VHcm91cC5sZW5ndGgpCi1yZXR1cm4gZmFsc2U7aWYodGhpcy5zbGljZUdyb3VwLm9wZW5TbGljZUNvdW50KQotcmV0dXJuIGZhbHNlO2lmKHRoaXMudGltZVNsaWNlcyYmdGhpcy50aW1lU2xpY2VzLmxlbmd0aCkKLXJldHVybiBmYWxzZTtpZih0aGlzLmtlcm5lbFNsaWNlR3JvdXAubGVuZ3RoKQotcmV0dXJuIGZhbHNlO2lmKHRoaXMuYXN5bmNTbGljZUdyb3VwLmxlbmd0aCkKLXJldHVybiBmYWxzZTtpZih0aGlzLnNhbXBsZXNfLmxlbmd0aCkKLXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZTt9LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7dGhpcy5zbGljZUdyb3VwLnVwZGF0ZUJvdW5kcygpO3RoaXMuYm91bmRzLmFkZFJhbmdlKHRoaXMuc2xpY2VHcm91cC5ib3VuZHMpO3RoaXMua2VybmVsU2xpY2VHcm91cC51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLmtlcm5lbFNsaWNlR3JvdXAuYm91bmRzKTt0aGlzLmFzeW5jU2xpY2VHcm91cC51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLmFzeW5jU2xpY2VHcm91cC5ib3VuZHMpO2lmKHRoaXMudGltZVNsaWNlcyYmdGhpcy50aW1lU2xpY2VzLmxlbmd0aCl7dGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy50aW1lU2xpY2VzWzBdLnN0YXJ0KTt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnRpbWVTbGljZXNbdGhpcy50aW1lU2xpY2VzLmxlbmd0aC0xXS5lbmQpO30KLWlmKHRoaXMuc2FtcGxlc18mJnRoaXMuc2FtcGxlc18ubGVuZ3RoKXt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfWzBdLnN0YXJ0KTt0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfW3RoaXMuc2FtcGxlc18ubGVuZ3RoLTFdLmVuZCk7fX0sYWRkQ2F0ZWdvcmllc1RvRGljdDpmdW5jdGlvbihjYXRlZ29yaWVzRGljdCl7Zm9yKHZhciBpPTA7aTx0aGlzLnNsaWNlR3JvdXAubGVuZ3RoO2krKykKLWNhdGVnb3JpZXNEaWN0W3RoaXMuc2xpY2VHcm91cC5zbGljZXNbaV0uY2F0ZWdvcnldPXRydWU7Zm9yKHZhciBpPTA7aTx0aGlzLmtlcm5lbFNsaWNlR3JvdXAubGVuZ3RoO2krKykKLWNhdGVnb3JpZXNEaWN0W3RoaXMua2VybmVsU2xpY2VHcm91cC5zbGljZXNbaV0uY2F0ZWdvcnldPXRydWU7Zm9yKHZhciBpPTA7aTx0aGlzLmFzeW5jU2xpY2VHcm91cC5sZW5ndGg7aSsrKQotY2F0ZWdvcmllc0RpY3RbdGhpcy5hc3luY1NsaWNlR3JvdXAuc2xpY2VzW2ldLmNhdGVnb3J5XT10cnVlO2lmKHRoaXMuc2FtcGxlc18pe2Zvcih2YXIgaT0wO2k8dGhpcy5zYW1wbGVzXy5sZW5ndGg7aSsrKQotY2F0ZWdvcmllc0RpY3RbdGhpcy5zYW1wbGVzX1tpXS5jYXRlZ29yeV09dHJ1ZTt9fSxhdXRvQ2xvc2VPcGVuU2xpY2VzOmZ1bmN0aW9uKG9wdF9tYXhUaW1lc3RhbXApe3RoaXMuc2xpY2VHcm91cC5hdXRvQ2xvc2VPcGVuU2xpY2VzKG9wdF9tYXhUaW1lc3RhbXApO3RoaXMua2VybmVsU2xpY2VHcm91cC5hdXRvQ2xvc2VPcGVuU2xpY2VzKG9wdF9tYXhUaW1lc3RhbXApO30sbWVyZ2VLZXJuZWxXaXRoVXNlcmxhbmQ6ZnVuY3Rpb24oKXtpZih0aGlzLmtlcm5lbFNsaWNlR3JvdXAubGVuZ3RoPjApe3ZhciBuZXdTbGljZXM9U2xpY2VHcm91cC5tZXJnZSh0aGlzLnNsaWNlR3JvdXAsdGhpcy5rZXJuZWxTbGljZUdyb3VwKTt0aGlzLnNsaWNlR3JvdXAuc2xpY2VzPW5ld1NsaWNlcy5zbGljZXM7dGhpcy5rZXJuZWxTbGljZUdyb3VwPW5ldyBTbGljZUdyb3VwKHRoaXMpO3RoaXMudXBkYXRlQm91bmRzKCk7fX0sY3JlYXRlU3ViU2xpY2VzOmZ1bmN0aW9uKCl7dGhpcy5zbGljZUdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpO3RoaXMuc2FtcGxlc189dGhpcy5wYXJlbnQubW9kZWwuc2FtcGxlcy5maWx0ZXIoZnVuY3Rpb24oc2FtcGxlKXtyZXR1cm4gc2FtcGxlLnRocmVhZD09dGhpczt9LHRoaXMpO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4gdGhpcy5uYW1lfHx0aGlzLnRpZDt9LGdldCB1c2VyRnJpZW5kbHlEZXRhaWxzKCl7cmV0dXJuJ3RpZDogJyt0aGlzLnRpZCsKLSh0aGlzLm5hbWU/JywgbmFtZTogJyt0aGlzLm5hbWU6JycpO30sZ2V0U2V0dGluZ3NLZXk6ZnVuY3Rpb24oKXtpZighdGhpcy5uYW1lKQotcmV0dXJuIHVuZGVmaW5lZDt2YXIgcGFyZW50S2V5PXRoaXMucGFyZW50LmdldFNldHRpbmdzS2V5KCk7aWYoIXBhcmVudEtleSkKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIHBhcmVudEtleSsnLicrdGhpcy5uYW1lO30saW5kZXhPZlRpbWVTbGljZTpmdW5jdGlvbih0aW1lU2xpY2Upe3ZhciBpPXRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSh0aGlzLnRpbWVTbGljZXMsZnVuY3Rpb24oc2xpY2Upe3JldHVybiBzbGljZS5zdGFydDt9LHRpbWVTbGljZS5zdGFydCk7aWYodGhpcy50aW1lU2xpY2VzW2ldIT09dGltZVNsaWNlKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gaTt9LGdldFNjaGVkdWxpbmdTdGF0c0ZvclJhbmdlOmZ1bmN0aW9uKHN0YXJ0LGVuZCl7dmFyIHN0YXRzPXt9O2lmKCF0aGlzLnRpbWVTbGljZXMpcmV0dXJuIHN0YXRzO2Z1bmN0aW9uIGFkZFN0YXRzRm9yU2xpY2UodGhyZWFkVGltZVNsaWNlKXt2YXIgb3ZlcmxhcFN0YXJ0PU1hdGgubWF4KHRocmVhZFRpbWVTbGljZS5zdGFydCxzdGFydCk7dmFyIG92ZXJsYXBFbmQ9TWF0aC5taW4odGhyZWFkVGltZVNsaWNlLmVuZCxlbmQpO3ZhciBzY2hlZHVsaW5nU3RhdGU9dGhyZWFkVGltZVNsaWNlLnNjaGVkdWxpbmdTdGF0ZTtpZighKHNjaGVkdWxpbmdTdGF0ZSBpbiBzdGF0cykpCi1zdGF0c1tzY2hlZHVsaW5nU3RhdGVdPTA7c3RhdHNbc2NoZWR1bGluZ1N0YXRlXSs9b3ZlcmxhcEVuZC1vdmVybGFwU3RhcnQ7fQotdHIuYi5pdGVyYXRlT3ZlckludGVyc2VjdGluZ0ludGVydmFscyh0aGlzLnRpbWVTbGljZXMsZnVuY3Rpb24oeCl7cmV0dXJuIHguc3RhcnQ7fSxmdW5jdGlvbih4KXtyZXR1cm4geC5lbmQ7fSxzdGFydCxlbmQsYWRkU3RhdHNGb3JTbGljZSk7cmV0dXJuIHN0YXRzO30sZ2V0IHNhbXBsZXMoKXtyZXR1cm4gdGhpcy5zYW1wbGVzXzt9fTtUaHJlYWQuY29tcGFyZT1mdW5jdGlvbih4LHkpe3ZhciB0bXA9eC5wYXJlbnQuY29tcGFyZVRvKHkucGFyZW50KTtpZih0bXApCi1yZXR1cm4gdG1wO3RtcD14LnNvcnRJbmRleC15LnNvcnRJbmRleDtpZih0bXApCi1yZXR1cm4gdG1wO3RtcD10ci5iLmNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyh4Lm5hbWUseS5uYW1lLGZ1bmN0aW9uKHgseSl7cmV0dXJuIHgubG9jYWxlQ29tcGFyZSh5KTt9KTtpZih0bXApCi1yZXR1cm4gdG1wO3JldHVybiB4LnRpZC15LnRpZDt9O3JldHVybntUaHJlYWQ6VGhyZWFkfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBTZXR0aW5ncz10ci5iLlNldHRpbmdzO2Z1bmN0aW9uIE1vZGVsU2V0dGluZ3MobW9kZWwpe3RoaXMubW9kZWw9bW9kZWw7dGhpcy5vYmplY3RzQnlLZXlfPVtdO3RoaXMubm9udW5pcXVlS2V5c189W107dGhpcy5idWlsZE9iamVjdHNCeUtleU1hcF8oKTt0aGlzLnJlbW92ZU5vbnVuaXF1ZUtleXNGcm9tU2V0dGluZ3NfKCk7dGhpcy5lcGhlbWVyYWxTZXR0aW5nc0J5R1VJRF89e307fQotTW9kZWxTZXR0aW5ncy5wcm90b3R5cGU9e2J1aWxkT2JqZWN0c0J5S2V5TWFwXzpmdW5jdGlvbigpe3ZhciBvYmplY3RzPVtdO3RoaXMubW9kZWwuaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0cyhmdW5jdGlvbihvKXtvYmplY3RzLnB1c2gobyk7fSk7dmFyIG9iamVjdHNCeUtleT17fTt2YXIgTk9OVU5JUVVFX0tFWT0nbm9udW5pcXVlS2V5Jztmb3IodmFyIGk9MDtpPG9iamVjdHMubGVuZ3RoO2krKyl7dmFyIG9iamVjdD1vYmplY3RzW2ldO3ZhciBvYmplY3RLZXk9b2JqZWN0LmdldFNldHRpbmdzS2V5KCk7aWYoIW9iamVjdEtleSkKLWNvbnRpbnVlO2lmKG9iamVjdHNCeUtleVtvYmplY3RLZXldPT09dW5kZWZpbmVkKXtvYmplY3RzQnlLZXlbb2JqZWN0S2V5XT1vYmplY3Q7Y29udGludWU7fQotb2JqZWN0c0J5S2V5W29iamVjdEtleV09Tk9OVU5JUVVFX0tFWTt9Ci12YXIgbm9udW5pcXVlS2V5cz17fTt0ci5iLmRpY3Rpb25hcnlLZXlzKG9iamVjdHNCeUtleSkuZm9yRWFjaChmdW5jdGlvbihvYmplY3RLZXkpe2lmKG9iamVjdHNCeUtleVtvYmplY3RLZXldIT09Tk9OVU5JUVVFX0tFWSkKLXJldHVybjtkZWxldGUgb2JqZWN0c0J5S2V5W29iamVjdEtleV07bm9udW5pcXVlS2V5c1tvYmplY3RLZXldPXRydWU7fSk7dGhpcy5ub251bmlxdWVLZXlzPW5vbnVuaXF1ZUtleXM7dGhpcy5vYmplY3RzQnlLZXlfPW9iamVjdHNCeUtleTt9LHJlbW92ZU5vbnVuaXF1ZUtleXNGcm9tU2V0dGluZ3NfOmZ1bmN0aW9uKCl7dmFyIHNldHRpbmdzPVNldHRpbmdzLmdldCgndHJhY2VfbW9kZWxfc2V0dGluZ3MnLHt9KTt2YXIgc2V0dGluZ3NDaGFuZ2VkPWZhbHNlO3RyLmIuZGljdGlvbmFyeUtleXMoc2V0dGluZ3MpLmZvckVhY2goZnVuY3Rpb24ob2JqZWN0S2V5KXtpZighdGhpcy5ub251bmlxdWVLZXlzW29iamVjdEtleV0pCi1yZXR1cm47c2V0dGluZ3NDaGFuZ2VkPXRydWU7ZGVsZXRlIHNldHRpbmdzW29iamVjdEtleV07fSx0aGlzKTtpZihzZXR0aW5nc0NoYW5nZWQpCi1TZXR0aW5ncy5zZXQoJ3RyYWNlX21vZGVsX3NldHRpbmdzJyxzZXR0aW5ncyk7fSxoYXNVbmlxdWVTZXR0aW5nS2V5OmZ1bmN0aW9uKG9iamVjdCl7dmFyIG9iamVjdEtleT1vYmplY3QuZ2V0U2V0dGluZ3NLZXkoKTtpZighb2JqZWN0S2V5KQotcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLm9iamVjdHNCeUtleV9bb2JqZWN0S2V5XSE9PXVuZGVmaW5lZDt9LGdldFNldHRpbmdGb3I6ZnVuY3Rpb24ob2JqZWN0LG9iamVjdExldmVsS2V5LGRlZmF1bHRWYWx1ZSl7dmFyIG9iamVjdEtleT1vYmplY3QuZ2V0U2V0dGluZ3NLZXkoKTtpZighb2JqZWN0S2V5fHwhdGhpcy5vYmplY3RzQnlLZXlfW29iamVjdEtleV0pe3ZhciBzZXR0aW5ncz10aGlzLmdldEVwaGVtZXJhbFNldHRpbmdzRm9yXyhvYmplY3QpO3ZhciBlcGhlbWVyYWxWYWx1ZT1zZXR0aW5nc1tvYmplY3RMZXZlbEtleV07aWYoZXBoZW1lcmFsVmFsdWUhPT11bmRlZmluZWQpCi1yZXR1cm4gZXBoZW1lcmFsVmFsdWU7cmV0dXJuIGRlZmF1bHRWYWx1ZTt9Ci12YXIgc2V0dGluZ3M9U2V0dGluZ3MuZ2V0KCd0cmFjZV9tb2RlbF9zZXR0aW5ncycse30pO2lmKCFzZXR0aW5nc1tvYmplY3RLZXldKQotc2V0dGluZ3Nbb2JqZWN0S2V5XT17fTt2YXIgdmFsdWU9c2V0dGluZ3Nbb2JqZWN0S2V5XVtvYmplY3RMZXZlbEtleV07aWYodmFsdWUhPT11bmRlZmluZWQpCi1yZXR1cm4gdmFsdWU7cmV0dXJuIGRlZmF1bHRWYWx1ZTt9LHNldFNldHRpbmdGb3I6ZnVuY3Rpb24ob2JqZWN0LG9iamVjdExldmVsS2V5LHZhbHVlKXt2YXIgb2JqZWN0S2V5PW9iamVjdC5nZXRTZXR0aW5nc0tleSgpO2lmKCFvYmplY3RLZXl8fCF0aGlzLm9iamVjdHNCeUtleV9bb2JqZWN0S2V5XSl7dGhpcy5nZXRFcGhlbWVyYWxTZXR0aW5nc0Zvcl8ob2JqZWN0KVtvYmplY3RMZXZlbEtleV09dmFsdWU7cmV0dXJuO30KLXZhciBzZXR0aW5ncz1TZXR0aW5ncy5nZXQoJ3RyYWNlX21vZGVsX3NldHRpbmdzJyx7fSk7aWYoIXNldHRpbmdzW29iamVjdEtleV0pCi1zZXR0aW5nc1tvYmplY3RLZXldPXt9O2lmKHNldHRpbmdzW29iamVjdEtleV1bb2JqZWN0TGV2ZWxLZXldPT09dmFsdWUpCi1yZXR1cm47c2V0dGluZ3Nbb2JqZWN0S2V5XVtvYmplY3RMZXZlbEtleV09dmFsdWU7U2V0dGluZ3Muc2V0KCd0cmFjZV9tb2RlbF9zZXR0aW5ncycsc2V0dGluZ3MpO30sZ2V0RXBoZW1lcmFsU2V0dGluZ3NGb3JfOmZ1bmN0aW9uKG9iamVjdCl7aWYob2JqZWN0Lmd1aWQ9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ09ubHkgb2JqZWN0cyB3aXRoIEdVSURzIGNhbiBiZSBwZXJzaXN0ZWQnKTtpZih0aGlzLmVwaGVtZXJhbFNldHRpbmdzQnlHVUlEX1tvYmplY3QuZ3VpZF09PT11bmRlZmluZWQpCi10aGlzLmVwaGVtZXJhbFNldHRpbmdzQnlHVUlEX1tvYmplY3QuZ3VpZF09e307cmV0dXJuIHRoaXMuZXBoZW1lcmFsU2V0dGluZ3NCeUdVSURfW29iamVjdC5ndWlkXTt9fTtyZXR1cm57TW9kZWxTZXR0aW5nczpNb2RlbFNldHRpbmdzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBUaHJlYWQ9dHIubW9kZWwuVGhyZWFkO3ZhciBDb3VudGVyPXRyLm1vZGVsLkNvdW50ZXI7ZnVuY3Rpb24gUHJvY2Vzc0Jhc2UobW9kZWwpe2lmKCFtb2RlbCkKLXRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgbW9kZWwnKTt0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpO3RoaXMuZ3VpZF89dHIuYi5HVUlELmFsbG9jYXRlKCk7dGhpcy5tb2RlbD1tb2RlbDt0aGlzLnRocmVhZHM9e307dGhpcy5jb3VudGVycz17fTt0aGlzLm9iamVjdHM9bmV3IHRyLm1vZGVsLk9iamVjdENvbGxlY3Rpb24odGhpcyk7dGhpcy5ib3VuZHM9bmV3IHRyLmIuUmFuZ2UoKTt0aGlzLnNvcnRJbmRleD0wO307UHJvY2Vzc0Jhc2UuY29tcGFyZT1mdW5jdGlvbih4LHkpe3JldHVybiB4LnNvcnRJbmRleC15LnNvcnRJbmRleDt9O1Byb2Nlc3NCYXNlLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSxnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sZ2V0IHN0YWJsZUlkKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKQotY2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLnRocmVhZHNbdGlkXSk7Zm9yKHZhciBpZCBpbiB0aGlzLmNvdW50ZXJzKQotY2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLmNvdW50ZXJzW2lkXSk7Y2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLm9iamVjdHMpO30saXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjpmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsY2FsbGJhY2ssb3B0X3RoaXMpe30saXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0czpmdW5jdGlvbihjYil7Y2IodGhpcyk7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKQotdGhpcy50aHJlYWRzW3RpZF0uaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0cyhjYik7fSxnZXQgbnVtVGhyZWFkcygpe3ZhciBuPTA7Zm9yKHZhciBwIGluIHRoaXMudGhyZWFkcyl7bisrO30KLXJldHVybiBuO30sc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe2Zvcih2YXIgdGlkIGluIHRoaXMudGhyZWFkcykKLXRoaXMudGhyZWFkc1t0aWRdLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTtmb3IodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCi10aGlzLmNvdW50ZXJzW2lkXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7dGhpcy5vYmplY3RzLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTt9LGF1dG9DbG9zZU9wZW5TbGljZXM6ZnVuY3Rpb24ob3B0X21heFRpbWVzdGFtcCl7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt2YXIgdGhyZWFkPXRoaXMudGhyZWFkc1t0aWRdO3RocmVhZC5hdXRvQ2xvc2VPcGVuU2xpY2VzKG9wdF9tYXhUaW1lc3RhbXApO319LGF1dG9EZWxldGVPYmplY3RzOmZ1bmN0aW9uKG1heFRpbWVzdGFtcCl7dGhpcy5vYmplY3RzLmF1dG9EZWxldGVPYmplY3RzKG1heFRpbWVzdGFtcCk7fSxwcmVJbml0aWFsaXplT2JqZWN0czpmdW5jdGlvbigpe3RoaXMub2JqZWN0cy5wcmVJbml0aWFsaXplQWxsT2JqZWN0cygpO30saW5pdGlhbGl6ZU9iamVjdHM6ZnVuY3Rpb24oKXt0aGlzLm9iamVjdHMuaW5pdGlhbGl6ZUFsbE9iamVjdHMoKTt9LG1lcmdlS2VybmVsV2l0aFVzZXJsYW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt2YXIgdGhyZWFkPXRoaXMudGhyZWFkc1t0aWRdO3RocmVhZC5tZXJnZUtlcm5lbFdpdGhVc2VybGFuZCgpO319LHVwZGF0ZUJvdW5kczpmdW5jdGlvbigpe3RoaXMuYm91bmRzLnJlc2V0KCk7Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt0aGlzLnRocmVhZHNbdGlkXS51cGRhdGVCb3VuZHMoKTt0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLnRocmVhZHNbdGlkXS5ib3VuZHMpO30KLWZvcih2YXIgaWQgaW4gdGhpcy5jb3VudGVycyl7dGhpcy5jb3VudGVyc1tpZF0udXBkYXRlQm91bmRzKCk7dGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5jb3VudGVyc1tpZF0uYm91bmRzKTt9Ci10aGlzLm9iamVjdHMudXBkYXRlQm91bmRzKCk7dGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5vYmplY3RzLmJvdW5kcyk7fSxhZGRDYXRlZ29yaWVzVG9EaWN0OmZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KXtmb3IodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpCi10aGlzLnRocmVhZHNbdGlkXS5hZGRDYXRlZ29yaWVzVG9EaWN0KGNhdGVnb3JpZXNEaWN0KTtmb3IodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCi1jYXRlZ29yaWVzRGljdFt0aGlzLmNvdW50ZXJzW2lkXS5jYXRlZ29yeV09dHJ1ZTt0aGlzLm9iamVjdHMuYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7fSxmaW5kQWxsVGhyZWFkc01hdGNoaW5nOmZ1bmN0aW9uKHByZWRpY2F0ZSxvcHRfdGhpcyl7dmFyIHRocmVhZHM9W107Zm9yKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKXt2YXIgdGhyZWFkPXRoaXMudGhyZWFkc1t0aWRdO2lmKHByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLHRocmVhZCkpCi10aHJlYWRzLnB1c2godGhyZWFkKTt9Ci1yZXR1cm4gdGhyZWFkczt9LGZpbmRBbGxUaHJlYWRzTmFtZWQ6ZnVuY3Rpb24obmFtZSl7dmFyIHRocmVhZHM9dGhpcy5maW5kQWxsVGhyZWFkc01hdGNoaW5nKGZ1bmN0aW9uKHRocmVhZCl7aWYoIXRocmVhZC5uYW1lKQotcmV0dXJuIGZhbHNlO3JldHVybiB0aHJlYWQubmFtZT09PW5hbWU7fSk7cmV0dXJuIHRocmVhZHM7fSxmaW5kQXRNb3N0T25lVGhyZWFkTmFtZWQ6ZnVuY3Rpb24obmFtZSl7dmFyIHRocmVhZHM9dGhpcy5maW5kQWxsVGhyZWFkc05hbWVkKG5hbWUpO2lmKHRocmVhZHMubGVuZ3RoPT09MCkKLXJldHVybiB1bmRlZmluZWQ7aWYodGhyZWFkcy5sZW5ndGg+MSkKLXRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm8gbW9yZSB0aGFuIG9uZSAnK25hbWUpO3JldHVybiB0aHJlYWRzWzBdO30scHJ1bmVFbXB0eUNvbnRhaW5lcnM6ZnVuY3Rpb24oKXt2YXIgdGhyZWFkc1RvS2VlcD17fTtmb3IodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpe3ZhciB0aHJlYWQ9dGhpcy50aHJlYWRzW3RpZF07aWYoIXRocmVhZC5pc0VtcHR5KQotdGhyZWFkc1RvS2VlcFt0aWRdPXRocmVhZDt9Ci10aGlzLnRocmVhZHM9dGhyZWFkc1RvS2VlcDt9LGdldFRocmVhZDpmdW5jdGlvbih0aWQpe3JldHVybiB0aGlzLnRocmVhZHNbdGlkXTt9LGdldE9yQ3JlYXRlVGhyZWFkOmZ1bmN0aW9uKHRpZCl7aWYoIXRoaXMudGhyZWFkc1t0aWRdKQotdGhpcy50aHJlYWRzW3RpZF09bmV3IFRocmVhZCh0aGlzLHRpZCk7cmV0dXJuIHRoaXMudGhyZWFkc1t0aWRdO30sZ2V0T3JDcmVhdGVDb3VudGVyOmZ1bmN0aW9uKGNhdCxuYW1lKXt2YXIgaWQ9Y2F0KycuJytuYW1lO2lmKCF0aGlzLmNvdW50ZXJzW2lkXSkKLXRoaXMuY291bnRlcnNbaWRdPW5ldyBDb3VudGVyKHRoaXMsaWQsY2F0LG5hbWUpO3JldHVybiB0aGlzLmNvdW50ZXJzW2lkXTt9LGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGNyZWF0ZVN1YlNsaWNlczpmdW5jdGlvbigpe2Zvcih2YXIgdGlkIGluIHRoaXMudGhyZWFkcykKLXRoaXMudGhyZWFkc1t0aWRdLmNyZWF0ZVN1YlNsaWNlcygpO319O3JldHVybntQcm9jZXNzQmFzZTpQcm9jZXNzQmFzZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgQ3B1PXRyLm1vZGVsLkNwdTt2YXIgUHJvY2Vzc0Jhc2U9dHIubW9kZWwuUHJvY2Vzc0Jhc2U7ZnVuY3Rpb24gS2VybmVsKG1vZGVsKXtQcm9jZXNzQmFzZS5jYWxsKHRoaXMsbW9kZWwpO3RoaXMuY3B1cz17fTt0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF89dW5kZWZpbmVkO307S2VybmVsLmNvbXBhcmU9ZnVuY3Rpb24oeCx5KXtyZXR1cm4gMDt9O0tlcm5lbC5wcm90b3R5cGU9e19fcHJvdG9fXzpQcm9jZXNzQmFzZS5wcm90b3R5cGUsY29tcGFyZVRvOmZ1bmN0aW9uKHRoYXQpe3JldHVybiBLZXJuZWwuY29tcGFyZSh0aGlzLHRoYXQpO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nS2VybmVsJzt9LGdldCB1c2VyRnJpZW5kbHlEZXRhaWxzKCl7cmV0dXJuJ0tlcm5lbCc7fSxnZXQgc3RhYmxlSWQoKXtyZXR1cm4nS2VybmVsJzt9LGdldE9yQ3JlYXRlQ3B1OmZ1bmN0aW9uKGNwdU51bWJlcil7aWYoIXRoaXMuY3B1c1tjcHVOdW1iZXJdKQotdGhpcy5jcHVzW2NwdU51bWJlcl09bmV3IENwdSh0aGlzLGNwdU51bWJlcik7cmV0dXJuIHRoaXMuY3B1c1tjcHVOdW1iZXJdO30sZ2V0IHNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCgpe3JldHVybiB0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF87fSxzZXQgc29mdHdhcmVNZWFzdXJlZENwdUNvdW50KHNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCl7aWYodGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfIT09dW5kZWZpbmVkJiZ0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF8hPT1zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQpe3Rocm93IG5ldyBFcnJvcignQ2Fubm90IGNoYW5nZSB0aGUgc29mdHdhcmVNZWFzdXJlZENwdUNvdW50IG9uY2UgaXQgaXMgc2V0Jyk7fQotdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfPXNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudDt9LGdldCBiZXN0R3Vlc3NBdENwdUNvdW50KCl7dmFyIHJlYWxDcHVDb3VudD10ci5iLmRpY3Rpb25hcnlMZW5ndGgodGhpcy5jcHVzKTtpZihyZWFsQ3B1Q291bnQhPT0wKQotcmV0dXJuIHJlYWxDcHVDb3VudDtyZXR1cm4gdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQ7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7UHJvY2Vzc0Jhc2UucHJvdG90eXBlLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQuY2FsbCh0aGlzLGFtb3VudCk7Zm9yKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5jcHVzKQotdGhpcy5jcHVzW2NwdU51bWJlcl0uc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpO30sdXBkYXRlQm91bmRzOmZ1bmN0aW9uKCl7UHJvY2Vzc0Jhc2UucHJvdG90eXBlLnVwZGF0ZUJvdW5kcy5jYWxsKHRoaXMpO2Zvcih2YXIgY3B1TnVtYmVyIGluIHRoaXMuY3B1cyl7dmFyIGNwdT10aGlzLmNwdXNbY3B1TnVtYmVyXTtjcHUudXBkYXRlQm91bmRzKCk7dGhpcy5ib3VuZHMuYWRkUmFuZ2UoY3B1LmJvdW5kcyk7fX0sY3JlYXRlU3ViU2xpY2VzOmZ1bmN0aW9uKCl7UHJvY2Vzc0Jhc2UucHJvdG90eXBlLmNyZWF0ZVN1YlNsaWNlcy5jYWxsKHRoaXMpO2Zvcih2YXIgY3B1TnVtYmVyIGluIHRoaXMuY3B1cyl7dmFyIGNwdT10aGlzLmNwdXNbY3B1TnVtYmVyXTtjcHUuY3JlYXRlU3ViU2xpY2VzKCk7fX0sYWRkQ2F0ZWdvcmllc1RvRGljdDpmdW5jdGlvbihjYXRlZ29yaWVzRGljdCl7UHJvY2Vzc0Jhc2UucHJvdG90eXBlLmFkZENhdGVnb3JpZXNUb0RpY3QuY2FsbCh0aGlzLGNhdGVnb3JpZXNEaWN0KTtmb3IodmFyIGNwdU51bWJlciBpbiB0aGlzLmNwdXMpCi10aGlzLmNwdXNbY3B1TnVtYmVyXS5hZGRDYXRlZ29yaWVzVG9EaWN0KGNhdGVnb3JpZXNEaWN0KTt9LGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7cmV0dXJuJ2tlcm5lbCc7fSxpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6ZnVuY3Rpb24oY2FsbGJhY2ssb3B0X3RoaXMpe1Byb2Nlc3NCYXNlLnByb3RvdHlwZS5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMuY2FsbCh0aGlzLGNhbGxiYWNrLG9wdF90aGlzKTtmb3IodmFyIGNwdUlkIGluIHRoaXMuY3B1cykKLWNhbGxiYWNrLmNhbGwob3B0X3RoaXMsdGhpcy5jcHVzW2NwdUlkXSk7fSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7UHJvY2Vzc0Jhc2UucHJvdG90eXBlLml0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXIuY2FsbCh0aGlzLGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyk7fX07cmV0dXJue0tlcm5lbDpLZXJuZWx9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQXR0cmlidXRlKHVuaXRzKXt0aGlzLnVuaXRzPXVuaXRzO30KLUF0dHJpYnV0ZS5mcm9tRGljdElmUG9zc2libGU9ZnVuY3Rpb24oZGljdCxvcHRfbW9kZWwpe3ZhciB0eXBlSW5mbz1BdHRyaWJ1dGUuZmluZFR5cGVJbmZvTWF0Y2hpbmcoZnVuY3Rpb24odHlwZUluZm8pe3JldHVybiB0eXBlSW5mby5tZXRhZGF0YS50eXBlPT09ZGljdC50eXBlO30pO2lmKHR5cGVJbmZvPT09dW5kZWZpbmVkKXtpZihvcHRfbW9kZWwpe29wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHt0eXBlOidhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLG1lc3NhZ2U6J1Vua25vd24gYXR0cmlidXRlIHR5cGUgXCcnK2RpY3QudHlwZSsnXCcuJ30pO30KLXJldHVybiBVbmtub3duQXR0cmlidXRlLmZyb21EaWN0KGRpY3Qsb3B0X21vZGVsKTt9Ci1yZXR1cm4gdHlwZUluZm8uY29uc3RydWN0b3IuZnJvbURpY3QoZGljdCxvcHRfbW9kZWwpO307QXR0cmlidXRlLmZpbmRDb21tb25UcmFpdHM9ZnVuY3Rpb24oYXR0cmlidXRlcyxvcHRfbW9kZWwpe3ZhciBjb21tb25UcmFpdHM7Zm9yKHZhciBpPTA7aTxhdHRyaWJ1dGVzLmxlbmd0aDtpKyspe3ZhciBhdHRyaWJ1dGU9YXR0cmlidXRlc1tpXTtpZihhdHRyaWJ1dGU9PT11bmRlZmluZWQpCi1jb250aW51ZTt2YXIgYXR0cmlidXRlQ29uc3RydWN0b3I9YXR0cmlidXRlLmNvbnN0cnVjdG9yO3ZhciBhdHRyaWJ1dGVVbml0cz1hdHRyaWJ1dGUudW5pdHM7aWYoY29tbW9uVHJhaXRzPT09dW5kZWZpbmVkKXtjb21tb25UcmFpdHM9e2NvbnN0cnVjdG9yOmF0dHJpYnV0ZUNvbnN0cnVjdG9yLHVuaXRzOmF0dHJpYnV0ZVVuaXRzfTt9ZWxzZSBpZihhdHRyaWJ1dGVDb25zdHJ1Y3RvciE9PWNvbW1vblRyYWl0cy5jb25zdHJ1Y3Rvcil7aWYob3B0X21vZGVsKXtvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7dHlwZTonYXR0cmlidXRlX3BhcnNlX2Vycm9yJyxtZXNzYWdlOidBdHRyaWJ1dGUgd2l0aCBkaWZmZXJlbnQgdHlwZXM6ICcrCi1jb21tb25UcmFpdHMuY29uc3RydWN0b3IrJyBhbmQgJythdHRyaWJ1dGVDb25zdHJ1Y3RvcisnLid9KTt9Ci1jb21tb25UcmFpdHM9e2NvbnN0cnVjdG9yOlVua25vd25BdHRyaWJ1dGUsdW5pdHM6dW5kZWZpbmVkfTticmVhazt9ZWxzZSBpZihhdHRyaWJ1dGVVbml0cyE9PWNvbW1vblRyYWl0cy51bml0cyl7aWYob3B0X21vZGVsKXtvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7dHlwZTonYXR0cmlidXRlX3BhcnNlX2Vycm9yJyxtZXNzYWdlOidBdHRyaWJ1dGUgd2l0aCBkaWZmZXJlbnQgdW5pdHM6ICcrY29tbW9uVHJhaXRzLnVuaXRzKycgYW5kICcrYXR0cmlidXRlVW5pdHMrJy4nfSk7fQotY29tbW9uVHJhaXRzPXtjb25zdHJ1Y3RvcjpVbmtub3duQXR0cmlidXRlLHVuaXRzOnVuZGVmaW5lZH07YnJlYWs7fX0KLXJldHVybiBjb21tb25UcmFpdHM7fTtBdHRyaWJ1dGUuYWdncmVnYXRlPWZ1bmN0aW9uKGNoaWxkQXR0cmlidXRlcyxleGlzdGluZ1BhcmVudEF0dHJpYnV0ZSxvcHRfbW9kZWwpe3ZhciBkZWZpbmVkQ2hpbGRBdHRyaWJ1dGVzPWNoaWxkQXR0cmlidXRlcy5maWx0ZXIoZnVuY3Rpb24oY2hpbGRBdHRyaWJ1dGUpe3JldHVybiBjaGlsZEF0dHJpYnV0ZSE9PXVuZGVmaW5lZDt9KTt2YXIgdHJhaXRzPUF0dHJpYnV0ZS5maW5kQ29tbW9uVHJhaXRzKGRlZmluZWRDaGlsZEF0dHJpYnV0ZXMsb3B0X21vZGVsKTtpZih0cmFpdHM9PT11bmRlZmluZWQpCi1yZXR1cm4gZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGU7dmFyIGNvbnN0cnVjdG9yPXRyYWl0cy5jb25zdHJ1Y3RvcjtpZihjb25zdHJ1Y3Rvci5tZXJnZT09PXVuZGVmaW5lZCkKLXJldHVybiBleGlzdGluZ1BhcmVudEF0dHJpYnV0ZTt2YXIgbWVyZ2VkQXR0cmlidXRlPWNvbnN0cnVjdG9yLm1lcmdlKGRlZmluZWRDaGlsZEF0dHJpYnV0ZXMsdHJhaXRzLnVuaXRzLG9wdF9tb2RlbCk7aWYoZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGU9PT11bmRlZmluZWQpCi1yZXR1cm4gbWVyZ2VkQXR0cmlidXRlO2V4aXN0aW5nUGFyZW50QXR0cmlidXRlLnVzZU1lcmdlZEF0dHJpYnV0ZShtZXJnZWRBdHRyaWJ1dGUsb3B0X21vZGVsKTtyZXR1cm4gZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGU7fQotQXR0cmlidXRlLmZyb21UcmFjZVZhbHVlPWZ1bmN0aW9uKGRpY3Qsb3B0X21vZGVsKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO307QXR0cmlidXRlLnByb3RvdHlwZS51c2VNZXJnZWRBdHRyaWJ1dGU9ZnVuY3Rpb24obWVyZ2VkQXR0cmlidXRlLG9wdF9tb2RlbCl7aWYobWVyZ2VkQXR0cmlidXRlLmNvbnN0cnVjdG9yIT09dGhpcy5jb25zdHJ1Y3Rvcil7aWYob3B0X21vZGVsKXtvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7dHlwZTonYXR0cmlidXRlX3BhcnNlX2Vycm9yJyxtZXNzYWdlOidBdHRyaWJ1dGUgd2l0aCBkaWZmZXJlbnQgdHlwZXM6ICcrdGhpcy5jb25zdHJ1Y3RvcisnIGFuZCAnK21lcmdlZEF0dHJpYnV0ZS5jb25zdHJ1Y3RvcisnLid9KTt9fWVsc2UgaWYobWVyZ2VkQXR0cmlidXRlLnVuaXRzIT09dGhpcy51bml0cyl7aWYob3B0X21vZGVsKXtvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7dHlwZTonYXR0cmlidXRlX3BhcnNlX2Vycm9yJyxtZXNzYWdlOidBdHRyaWJ1dGUgd2l0aCBkaWZmZXJlbnQgdW5pdHM6ICcrdGhpcy51bml0cysnIGFuZCAnK21lcmdlZEF0dHJpYnV0ZS51bml0cysnLid9KTt9fX07dmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7b3B0aW9ucy5tYW5kYXRvcnlCYXNlVHlwZT1BdHRyaWJ1dGU7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEF0dHJpYnV0ZSxvcHRpb25zKTtBdHRyaWJ1dGUuYWRkRXZlbnRMaXN0ZW5lcignd2lsbC1yZWdpc3RlcicsZnVuY3Rpb24oZSl7aWYoIWUudHlwZUluZm8uY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoJ2Zyb21EaWN0JykpCi10aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZXMgbXVzdCBoYXZlIGZyb21EaWN0IG1ldGhvZCcpO2lmKCFlLnR5cGVJbmZvLm1ldGFkYXRhLnR5cGUpCi10aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZXMgbXVzdCBwcm92aWRlIHR5cGUnKTtpZihlLnR5cGVJbmZvLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciE9PWUudHlwZUluZm8uY29uc3RydWN0b3IpCi10aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSBwcm90b3R5cGVzIG11c3QgcHJvdmlkZSBjb25zdHJ1Y3Rvci4nKTt9KTtmdW5jdGlvbiBTY2FsYXJBdHRyaWJ1dGUodW5pdHMsdmFsdWUpe0F0dHJpYnV0ZS5jYWxsKHRoaXMsdW5pdHMpO3RoaXMudmFsdWU9dmFsdWU7fQotU2NhbGFyQXR0cmlidXRlLmZyb21EaWN0PWZ1bmN0aW9uKGRpY3Qpe3JldHVybiBuZXcgU2NhbGFyQXR0cmlidXRlKGRpY3QudW5pdHMscGFyc2VJbnQoZGljdC52YWx1ZSwxNikpO307U2NhbGFyQXR0cmlidXRlLm1lcmdlPWZ1bmN0aW9uKGNoaWxkQXR0cmlidXRlcyx1bml0cyl7dmFyIHN1bT0wO2NoaWxkQXR0cmlidXRlcy5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkQXR0cmlidXRlKXtzdW0rPWNoaWxkQXR0cmlidXRlLnZhbHVlO30pO3JldHVybiBuZXcgU2NhbGFyQXR0cmlidXRlKHVuaXRzLHN1bSk7fQotU2NhbGFyQXR0cmlidXRlLnByb3RvdHlwZS5fX3Byb3RvX189QXR0cmlidXRlLnByb3RvdHlwZTtBdHRyaWJ1dGUucmVnaXN0ZXIoU2NhbGFyQXR0cmlidXRlLHt0eXBlOidzY2FsYXInfSk7ZnVuY3Rpb24gU3RyaW5nQXR0cmlidXRlKHVuaXRzLHZhbHVlKXtBdHRyaWJ1dGUuY2FsbCh0aGlzLHVuaXRzKTt0aGlzLnZhbHVlPXZhbHVlO30KLVN0cmluZ0F0dHJpYnV0ZS5mcm9tRGljdD1mdW5jdGlvbihkaWN0KXtyZXR1cm4gbmV3IFN0cmluZ0F0dHJpYnV0ZShkaWN0LnVuaXRzLGRpY3QudmFsdWUpO307QXR0cmlidXRlLnJlZ2lzdGVyKFN0cmluZ0F0dHJpYnV0ZSx7dHlwZTonc3RyaW5nJ30pO2Z1bmN0aW9uIFVua25vd25BdHRyaWJ1dGUodW5pdHMsb3B0X3ZhbHVlKXtBdHRyaWJ1dGUuY2FsbCh0aGlzLHVuaXRzLG9wdF92YWx1ZSk7dGhpcy52YWx1ZT1vcHRfdmFsdWU7fQotVW5rbm93bkF0dHJpYnV0ZS5mcm9tRGljdD1mdW5jdGlvbihkaWN0KXtyZXR1cm4gbmV3IFVua25vd25BdHRyaWJ1dGUoZGljdC51bml0cyk7fTtVbmtub3duQXR0cmlidXRlLnByb3RvdHlwZS5fX3Byb3RvX189QXR0cmlidXRlLnByb3RvdHlwZTtyZXR1cm57QXR0cmlidXRlOkF0dHJpYnV0ZSxTY2FsYXJBdHRyaWJ1dGU6U2NhbGFyQXR0cmlidXRlLFN0cmluZ0F0dHJpYnV0ZTpTdHJpbmdBdHRyaWJ1dGUsVW5rbm93bkF0dHJpYnV0ZTpVbmtub3duQXR0cmlidXRlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIENvbnRhaW5lck1lbW9yeUR1bXAoc3RhcnQpe3RyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXz11bmRlZmluZWQ7dGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWVfPXVuZGVmaW5lZDt9O0NvbnRhaW5lck1lbW9yeUR1bXAucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDpmdW5jdGlvbihhbW91bnQpe3RoaXMuc3RhcnQrPWFtb3VudDt9LGdldCBtZW1vcnlBbGxvY2F0b3JEdW1wcygpe3JldHVybiB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXzt9LHNldCBtZW1vcnlBbGxvY2F0b3JEdW1wcyhtZW1vcnlBbGxvY2F0b3JEdW1wcyl7dGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc189bWVtb3J5QWxsb2NhdG9yRHVtcHM7dGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWVfPXVuZGVmaW5lZDt9LGdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lOmZ1bmN0aW9uKGZ1bGxOYW1lKXtpZih0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXz09PXVuZGVmaW5lZCkKLXJldHVybiB1bmRlZmluZWQ7aWYodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWVfPT09dW5kZWZpbmVkKXt2YXIgaW5kZXg9e307ZnVuY3Rpb24gYWRkRHVtcHNUb0luZGV4KGR1bXBzKXtkdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGR1bXApe2luZGV4W2R1bXAuZnVsbE5hbWVdPWR1bXA7YWRkRHVtcHNUb0luZGV4KGR1bXAuY2hpbGRyZW4pO30pO307YWRkRHVtcHNUb0luZGV4KHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNfKTt0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV89aW5kZXg7fQotcmV0dXJuIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lX1tmdWxsTmFtZV07fSxhZ2dyZWdhdGVNZW1vcnlBbGxvY2F0b3JEdW1wQXR0cmlidXRlczpmdW5jdGlvbihvcHRfbW9kZWwpe2lmKHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNfPT09dW5kZWZpbmVkKQotcmV0dXJuO3RoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNfLmZvckVhY2goZnVuY3Rpb24oZHVtcCl7ZHVtcC5hZ2dyZWdhdGVBdHRyaWJ1dGVzKG9wdF9tb2RlbCk7fSk7fX07cmV0dXJue0NvbnRhaW5lck1lbW9yeUR1bXA6Q29udGFpbmVyTWVtb3J5RHVtcH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBNZW1vcnlBbGxvY2F0b3JEdW1wKGNvbnRhaW5lck1lbW9yeUR1bXAsZnVsbE5hbWUsb3B0X2d1aWQpe3RoaXMuZnVsbE5hbWU9ZnVsbE5hbWU7dGhpcy5wYXJlbnQ9dW5kZWZpbmVkO3RoaXMuY2hpbGRyZW49W107dGhpcy5hdHRyaWJ1dGVzPXt9O3RoaXMuY29udGFpbmVyTWVtb3J5RHVtcD1jb250YWluZXJNZW1vcnlEdW1wO3RoaXMub3ducz11bmRlZmluZWQ7dGhpcy5vd25lZEJ5PVtdO3RoaXMucmV0YWlucz1bXTt0aGlzLnJldGFpbmVkQnk9W107dGhpcy5ndWlkPW9wdF9ndWlkO307TWVtb3J5QWxsb2NhdG9yRHVtcC5wcm90b3R5cGU9e2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuZnVsbE5hbWUuc3Vic3RyaW5nKHRoaXMuZnVsbE5hbWUubGFzdEluZGV4T2YoJy8nKSsxKTt9LGFkZEF0dHJpYnV0ZTpmdW5jdGlvbihuYW1lLHZhbHVlKXtpZihuYW1lIGluIHRoaXMuYXR0cmlidXRlcykKLXRocm93IG5ldyBFcnJvcignRHVwbGljYXRlIGF0dHJpYnV0ZSBuYW1lOiAnK25hbWUrJy4nKTt0aGlzLmF0dHJpYnV0ZXNbbmFtZV09dmFsdWU7fSxhZ2dyZWdhdGVBdHRyaWJ1dGVzOmZ1bmN0aW9uKG9wdF9tb2RlbCl7dmFyIGF0dHJpYnV0ZXM9e307dGhpcy5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkKXtjaGlsZC5hZ2dyZWdhdGVBdHRyaWJ1dGVzKG9wdF9tb2RlbCk7dHIuYi5pdGVySXRlbXMoY2hpbGQuYXR0cmlidXRlcyxmdW5jdGlvbihuYW1lKXthdHRyaWJ1dGVzW25hbWVdPXRydWU7fSx0aGlzKTt9LHRoaXMpO3RyLmIuaXRlckl0ZW1zKGF0dHJpYnV0ZXMsZnVuY3Rpb24obmFtZSl7dmFyIGNoaWxkQXR0cmlidXRlcz10aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbihjaGlsZCl7cmV0dXJuIGNoaWxkLmF0dHJpYnV0ZXNbbmFtZV07fSx0aGlzKTt2YXIgY3VycmVudEF0dHJpYnV0ZT10aGlzLmF0dHJpYnV0ZXNbbmFtZV07dGhpcy5hdHRyaWJ1dGVzW25hbWVdPXRyLm1vZGVsLkF0dHJpYnV0ZS5hZ2dyZWdhdGUoY2hpbGRBdHRyaWJ1dGVzLGN1cnJlbnRBdHRyaWJ1dGUsb3B0X21vZGVsKTt9LHRoaXMpO319O2Z1bmN0aW9uIE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rKHNvdXJjZSx0YXJnZXQsb3B0X2ltcG9ydGFuY2Upe3RoaXMuc291cmNlPXNvdXJjZTt0aGlzLnRhcmdldD10YXJnZXQ7dGhpcy5pbXBvcnRhbmNlPW9wdF9pbXBvcnRhbmNlO30KLXJldHVybntNZW1vcnlBbGxvY2F0b3JEdW1wOk1lbW9yeUFsbG9jYXRvckR1bXAsTWVtb3J5QWxsb2NhdG9yRHVtcExpbms6TWVtb3J5QWxsb2NhdG9yRHVtcExpbmt9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZ2V0VmFsaWRTaXplQXR0cmlidXRlT3JVbmRlZmluZWQobWVtb3J5QWxsb2NhdG9yRHVtcCxvcHRfbW9kZWwpe3ZhciBzaXplQXR0cj1tZW1vcnlBbGxvY2F0b3JEdW1wLmF0dHJpYnV0ZXNbJ3NpemUnXTtpZihzaXplQXR0cj09PXVuZGVmaW5lZCkKLXJldHVybiB1bmRlZmluZWQ7aWYoIShzaXplQXR0ciBpbnN0YW5jZW9mIHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZSkpe2lmKG9wdF9tb2RlbCE9PXVuZGVmaW5lZCl7b3B0X21vZGVsLmltcG9ydFdhcm5pbmcoe3R5cGU6J21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJyxtZXNzYWdlOidcJ3NpemVcJyBhdHRyaWJ1dGUgb2YgbWVtb3J5IGFsbG9jYXRvciBkdW1wIFwnJysKLW1lbW9yeUFsbG9jYXRvckR1bXAuZnVsbE5hbWUrJ1wnIGlzIG5vdCBhIHNjYWxhci4nfSk7fQotcmV0dXJuIHVuZGVmaW5lZDt9Ci1yZXR1cm4gc2l6ZUF0dHI7fQotZnVuY3Rpb24gUHJvY2Vzc01lbW9yeUR1bXAoZ2xvYmFsTWVtb3J5RHVtcCxwcm9jZXNzLHN0YXJ0KXt0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLmNhbGwodGhpcyxzdGFydCk7dGhpcy5wcm9jZXNzPXByb2Nlc3M7dGhpcy5nbG9iYWxNZW1vcnlEdW1wPWdsb2JhbE1lbW9yeUR1bXA7dGhpcy50b3RhbFJlc2lkZW50Qnl0ZXM9dW5kZWZpbmVkO3RoaXMudm1SZWdpb25zXz11bmRlZmluZWQ7dGhpcy50cmFjaW5nTWVtb3J5RGlzY291bnRlZF89ZmFsc2U7fTtQcm9jZXNzTWVtb3J5RHVtcC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLnByb3RvdHlwZSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidQcm9jZXNzIG1lbW9yeSBkdW1wIGF0ICcrdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnN0YXJ0KTt9LGdldCB2bVJlZ2lvbnMoKXt0aHJvdyBuZXcgRXJyb3IoJ1ZNIHJlZ2lvbnMgbXVzdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBtb3N0UmVjZW50Vm1SZWdpb25zIGZpZWxkJyk7fSxzZXQgdm1SZWdpb25zKHZtUmVnaW9ucyl7dGhpcy52bVJlZ2lvbnNfPXZtUmVnaW9uczt9LGdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdDpmdW5jdGlvbihzdGF0TmFtZSl7aWYodGhpcy5tb3N0UmVjZW50Vm1SZWdpb25zPT09dW5kZWZpbmVkKQotcmV0dXJuIHVuZGVmaW5lZDt2YXIgdG90YWw9MDt0aGlzLm1vc3RSZWNlbnRWbVJlZ2lvbnMuZm9yRWFjaChmdW5jdGlvbih2bVJlZ2lvbil7dmFyIHN0YXRWYWx1ZT12bVJlZ2lvbi5ieXRlU3RhdHNbc3RhdE5hbWVdO2lmKHN0YXRWYWx1ZT09PXVuZGVmaW5lZCkKLXJldHVybjt0b3RhbCs9c3RhdFZhbHVlO30pO3JldHVybiB0b3RhbDt9LGRpc2NvdW50VHJhY2luZ092ZXJoZWFkOmZ1bmN0aW9uKG9wdF9tb2RlbCl7aWYodGhpcy50cmFjaW5nTWVtb3J5RGlzY291bnRlZF8pCi1yZXR1cm47dGhpcy50cmFjaW5nTWVtb3J5RGlzY291bnRlZF89dHJ1ZTt2YXIgdHJhY2luZ0R1bXA9dGhpcy5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgndHJhY2luZycpO2lmKHRyYWNpbmdEdW1wPT09dW5kZWZpbmVkKQotcmV0dXJuO3ZhciB0cmFjaW5nU2l6ZUF0dHI9Z2V0VmFsaWRTaXplQXR0cmlidXRlT3JVbmRlZmluZWQodHJhY2luZ0R1bXAsb3B0X21vZGVsKTtpZih0cmFjaW5nU2l6ZUF0dHI9PT11bmRlZmluZWQpCi1yZXR1cm47dmFyIHRyYWNpbmdTaXplPXRyYWNpbmdTaXplQXR0ci52YWx1ZTtpZih0aGlzLnRvdGFsUmVzaWRlbnRCeXRlcyE9PXVuZGVmaW5lZCkKLXRoaXMudG90YWxSZXNpZGVudEJ5dGVzLT10cmFjaW5nU2l6ZTtpZih0aGlzLnZtUmVnaW9uc18hPT11bmRlZmluZWQpe3RoaXMudm1SZWdpb25zXy5wdXNoKFZNUmVnaW9uLmZyb21EaWN0KHttYXBwZWRGaWxlOidbZGlzY291bnRlZCB0cmFjaW5nIG92ZXJoZWFkXScsYnl0ZVN0YXRzOntwcml2YXRlRGlydHlSZXNpZGVudDotdHJhY2luZ1NpemUscHJvcG9ydGlvbmFsUmVzaWRlbnQ6LXRyYWNpbmdTaXplfX0pKTt9Ci12YXIgbWFsbG9jRHVtcD10aGlzLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdtYWxsb2MnKTtpZihtYWxsb2NEdW1wIT09dW5kZWZpbmVkKXt2YXIgb3ZlcmhlYWRTaXplQXR0cmlidXRlPW5ldyB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywtdHJhY2luZ1NpemUpO3ZhciBvdmVyaGVhZER1bXA9bmV3IHRyLm1vZGVsLk1lbW9yeUFsbG9jYXRvckR1bXAodGhpcywnbWFsbG9jL2Rpc2NvdW50ZWRfdHJhY2luZ19vdmVyaGVhZCcpO292ZXJoZWFkRHVtcC5wYXJlbnQ9bWFsbG9jRHVtcDtvdmVyaGVhZER1bXAuYWRkQXR0cmlidXRlKCdzaXplJyxvdmVyaGVhZFNpemVBdHRyaWJ1dGUpO21hbGxvY0R1bXAuY2hpbGRyZW4ucHVzaChvdmVyaGVhZER1bXApO3ZhciBtYWxsb2NEdW1wU2l6ZUF0dHI9Z2V0VmFsaWRTaXplQXR0cmlidXRlT3JVbmRlZmluZWQobWFsbG9jRHVtcCxvcHRfbW9kZWwpO2lmKG1hbGxvY0R1bXBTaXplQXR0ciE9PXVuZGVmaW5lZCkKLW1hbGxvY0R1bXBTaXplQXR0ci52YWx1ZS09dHJhY2luZ1NpemU7dGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wcz10aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzO319fTtQcm9jZXNzTWVtb3J5RHVtcC5ob29rVXBNb3N0UmVjZW50Vm1SZWdpb25zTGlua3M9ZnVuY3Rpb24ocHJvY2Vzc0R1bXBzKXt2YXIgbW9zdFJlY2VudFZtUmVnaW9ucz11bmRlZmluZWQ7cHJvY2Vzc0R1bXBzLmZvckVhY2goZnVuY3Rpb24ocHJvY2Vzc0R1bXApe2lmKHByb2Nlc3NEdW1wLnZtUmVnaW9uc18hPT11bmRlZmluZWQpCi1tb3N0UmVjZW50Vm1SZWdpb25zPXByb2Nlc3NEdW1wLnZtUmVnaW9uc187cHJvY2Vzc0R1bXAubW9zdFJlY2VudFZtUmVnaW9ucz1tb3N0UmVjZW50Vm1SZWdpb25zO30pO307ZnVuY3Rpb24gVk1SZWdpb24oc3RhcnRBZGRyZXNzLHNpemVJbkJ5dGVzLHByb3RlY3Rpb25GbGFncyxtYXBwZWRGaWxlLGJ5dGVTdGF0cyl7dGhpcy5zdGFydEFkZHJlc3M9c3RhcnRBZGRyZXNzO3RoaXMuc2l6ZUluQnl0ZXM9c2l6ZUluQnl0ZXM7dGhpcy5wcm90ZWN0aW9uRmxhZ3M9cHJvdGVjdGlvbkZsYWdzO3RoaXMubWFwcGVkRmlsZT1tYXBwZWRGaWxlO3RoaXMuYnl0ZVN0YXRzPWJ5dGVTdGF0czt9O1ZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEPTQ7Vk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFPTI7Vk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX0VYRUNVVEU9MTtWTVJlZ2lvbi5wcm90b3R5cGU9e2dldCBwcm90ZWN0aW9uRmxhZ3NUb1N0cmluZygpe2lmKHRoaXMucHJvdGVjdGlvbkZsYWdzPT09dW5kZWZpbmVkKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4oKHRoaXMucHJvdGVjdGlvbkZsYWdzJlZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEPydyJzonLScpKwotKHRoaXMucHJvdGVjdGlvbkZsYWdzJlZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURT8ndyc6Jy0nKSsKLSh0aGlzLnByb3RlY3Rpb25GbGFncyZWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfRVhFQ1VURT8neCc6Jy0nKSk7fX07Vk1SZWdpb24uZnJvbURpY3Q9ZnVuY3Rpb24oZGljdCl7cmV0dXJuIG5ldyBWTVJlZ2lvbihkaWN0LnN0YXJ0QWRkcmVzcyxkaWN0LnNpemVJbkJ5dGVzLGRpY3QucHJvdGVjdGlvbkZsYWdzLGRpY3QubWFwcGVkRmlsZSxWTVJlZ2lvbkJ5dGVTdGF0cy5mcm9tRGljdChkaWN0LmJ5dGVTdGF0cykpO307ZnVuY3Rpb24gVk1SZWdpb25CeXRlU3RhdHMocHJpdmF0ZUNsZWFuUmVzaWRlbnQscHJpdmF0ZURpcnR5UmVzaWRlbnQsc2hhcmVkQ2xlYW5SZXNpZGVudCxzaGFyZWREaXJ0eVJlc2lkZW50LHByb3BvcnRpb25hbFJlc2lkZW50LHN3YXBwZWQpe3RoaXMucHJpdmF0ZUNsZWFuUmVzaWRlbnQ9cHJpdmF0ZUNsZWFuUmVzaWRlbnQ7dGhpcy5wcml2YXRlRGlydHlSZXNpZGVudD1wcml2YXRlRGlydHlSZXNpZGVudDt0aGlzLnNoYXJlZENsZWFuUmVzaWRlbnQ9c2hhcmVkQ2xlYW5SZXNpZGVudDt0aGlzLnNoYXJlZERpcnR5UmVzaWRlbnQ9c2hhcmVkRGlydHlSZXNpZGVudDt0aGlzLnByb3BvcnRpb25hbFJlc2lkZW50PXByb3BvcnRpb25hbFJlc2lkZW50O3RoaXMuc3dhcHBlZD1zd2FwcGVkO30KLVZNUmVnaW9uQnl0ZVN0YXRzLmZyb21EaWN0PWZ1bmN0aW9uKGRpY3Qpe3JldHVybiBuZXcgVk1SZWdpb25CeXRlU3RhdHMoZGljdC5wcml2YXRlQ2xlYW5SZXNpZGVudCxkaWN0LnByaXZhdGVEaXJ0eVJlc2lkZW50LGRpY3Quc2hhcmVkQ2xlYW5SZXNpZGVudCxkaWN0LnNoYXJlZERpcnR5UmVzaWRlbnQsZGljdC5wcm9wb3J0aW9uYWxSZXNpZGVudCxkaWN0LnN3YXBwZWQpO30KLXRyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoUHJvY2Vzc01lbW9yeUR1bXAse25hbWU6J3Byb2Nlc3NNZW1vcnlEdW1wJyxwbHVyYWxOYW1lOidwcm9jZXNzTWVtb3J5RHVtcHMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItYy1hLXNpbmdsZS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItYy1hLW11bHRpLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXcnfSk7cmV0dXJue1Byb2Nlc3NNZW1vcnlEdW1wOlByb2Nlc3NNZW1vcnlEdW1wLFZNUmVnaW9uOlZNUmVnaW9uLFZNUmVnaW9uQnl0ZVN0YXRzOlZNUmVnaW9uQnl0ZVN0YXRzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBQcm9jZXNzQmFzZT10ci5tb2RlbC5Qcm9jZXNzQmFzZTt2YXIgUHJvY2Vzc0luc3RhbnRFdmVudD10ci5tb2RlbC5Qcm9jZXNzSW5zdGFudEV2ZW50O3ZhciBGcmFtZT10ci5tb2RlbC5GcmFtZTt2YXIgUHJvY2Vzc01lbW9yeUR1bXA9dHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXA7ZnVuY3Rpb24gUHJvY2Vzcyhtb2RlbCxwaWQpe2lmKG1vZGVsPT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdtb2RlbCBtdXN0IGJlIHByb3ZpZGVkJyk7aWYocGlkPT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdwaWQgbXVzdCBiZSBwcm92aWRlZCcpO3RyLm1vZGVsLlByb2Nlc3NCYXNlLmNhbGwodGhpcyxtb2RlbCk7dGhpcy5waWQ9cGlkO3RoaXMubmFtZT11bmRlZmluZWQ7dGhpcy5sYWJlbHM9W107dGhpcy5pbnN0YW50RXZlbnRzPVtdO3RoaXMubWVtb3J5RHVtcHM9W107dGhpcy5mcmFtZXM9W107fTtQcm9jZXNzLmNvbXBhcmU9ZnVuY3Rpb24oeCx5KXt2YXIgdG1wPXRyLm1vZGVsLlByb2Nlc3NCYXNlLmNvbXBhcmUoeCx5KTtpZih0bXApCi1yZXR1cm4gdG1wO3RtcD10ci5iLmNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyh4Lm5hbWUseS5uYW1lLGZ1bmN0aW9uKHgseSl7cmV0dXJuIHgubG9jYWxlQ29tcGFyZSh5KTt9KTtpZih0bXApCi1yZXR1cm4gdG1wO3RtcD10ci5iLmNvbXBhcmVBcnJheXMoeC5sYWJlbHMseS5sYWJlbHMsZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5sb2NhbGVDb21wYXJlKHkpO30pO2lmKHRtcCkKLXJldHVybiB0bXA7cmV0dXJuIHgucGlkLXkucGlkO307UHJvY2Vzcy5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Qcm9jZXNzQmFzZS5wcm90b3R5cGUsZ2V0IHN0YWJsZUlkKCl7cmV0dXJuIHRoaXMucGlkO30sY29tcGFyZVRvOmZ1bmN0aW9uKHRoYXQpe3JldHVybiBQcm9jZXNzLmNvbXBhcmUodGhpcyx0aGF0KTt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7UHJvY2Vzc0Jhc2UucHJvdG90eXBlLml0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVycy5jYWxsKHRoaXMsY2FsbGJhY2ssb3B0X3RoaXMpO30saXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjpmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsY2FsbGJhY2ssb3B0X3RoaXMpe1Byb2Nlc3NCYXNlLnByb3RvdHlwZS5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyLmNhbGwodGhpcyxldmVudFR5cGVQcmVkaWNhdGUsY2FsbGJhY2ssb3B0X3RoaXMpO2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLFByb2Nlc3NJbnN0YW50RXZlbnQpKQotdGhpcy5pbnN0YW50RXZlbnRzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLEZyYW1lKSkKLXRoaXMuZnJhbWVzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLFByb2Nlc3NNZW1vcnlEdW1wKSkKLXRoaXMubWVtb3J5RHVtcHMuZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7fSxwdXNoSW5zdGFudEV2ZW50OmZ1bmN0aW9uKGluc3RhbnRFdmVudCl7dGhpcy5pbnN0YW50RXZlbnRzLnB1c2goaW5zdGFudEV2ZW50KTt9LGFkZExhYmVsSWZOZWVkZWQ6ZnVuY3Rpb24obGFiZWxOYW1lKXtmb3IodmFyIGk9MDtpPHRoaXMubGFiZWxzLmxlbmd0aDtpKyspe2lmKHRoaXMubGFiZWxzW2ldPT09bGFiZWxOYW1lKQotcmV0dXJuO30KLXRoaXMubGFiZWxzLnB1c2gobGFiZWxOYW1lKTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7dmFyIHJlcztpZih0aGlzLm5hbWUpCi1yZXM9dGhpcy5uYW1lKycgKHBpZCAnK3RoaXMucGlkKycpJztlbHNlCi1yZXM9J1Byb2Nlc3MgJyt0aGlzLnBpZDtpZih0aGlzLmxhYmVscy5sZW5ndGgpCi1yZXMrPSc6ICcrdGhpcy5sYWJlbHMuam9pbignLCAnKTtyZXR1cm4gcmVzO30sZ2V0IHVzZXJGcmllbmRseURldGFpbHMoKXtpZih0aGlzLm5hbWUpCi1yZXR1cm4gdGhpcy5uYW1lKycgKHBpZCAnK3RoaXMucGlkKycpJztyZXR1cm4ncGlkOiAnK3RoaXMucGlkO30sZ2V0U2V0dGluZ3NLZXk6ZnVuY3Rpb24oKXtpZighdGhpcy5uYW1lKQotcmV0dXJuIHVuZGVmaW5lZDtpZighdGhpcy5sYWJlbHMubGVuZ3RoKQotcmV0dXJuJ3Byb2Nlc3Nlcy4nK3RoaXMubmFtZTtyZXR1cm4ncHJvY2Vzc2VzLicrdGhpcy5uYW1lKycuJyt0aGlzLmxhYmVscy5qb2luKCcuJyk7fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7Zm9yKHZhciBpZCBpbiB0aGlzLmluc3RhbnRFdmVudHMpCi10aGlzLmluc3RhbnRFdmVudHNbaWRdLnN0YXJ0Kz1hbW91bnQ7Zm9yKHZhciBpPTA7aTx0aGlzLmZyYW1lcy5sZW5ndGg7aSsrKQotdGhpcy5mcmFtZXNbaV0uc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpO2Zvcih2YXIgaT0wO2k8dGhpcy5tZW1vcnlEdW1wcy5sZW5ndGg7aSsrKQotdGhpcy5tZW1vcnlEdW1wc1tpXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7dHIubW9kZWwuUHJvY2Vzc0Jhc2UucHJvdG90eXBlLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQuYXBwbHkodGhpcyxhcmd1bWVudHMpO30sdXBkYXRlQm91bmRzOmZ1bmN0aW9uKCl7dHIubW9kZWwuUHJvY2Vzc0Jhc2UucHJvdG90eXBlLnVwZGF0ZUJvdW5kcy5hcHBseSh0aGlzKTtmb3IodmFyIGk9MDtpPHRoaXMuZnJhbWVzLmxlbmd0aDtpKyspCi10aGlzLmZyYW1lc1tpXS5hZGRCb3VuZHNUb1JhbmdlKHRoaXMuYm91bmRzKTtmb3IodmFyIGk9MDtpPHRoaXMubWVtb3J5RHVtcHMubGVuZ3RoO2krKykKLXRoaXMubWVtb3J5RHVtcHNbaV0uYWRkQm91bmRzVG9SYW5nZSh0aGlzLmJvdW5kcyk7fSxzb3J0TWVtb3J5RHVtcHM6ZnVuY3Rpb24oKXt0aGlzLm1lbW9yeUR1bXBzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5zdGFydC15LnN0YXJ0O30pO3RyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wLmhvb2tVcE1vc3RSZWNlbnRWbVJlZ2lvbnNMaW5rcyh0aGlzLm1lbW9yeUR1bXBzKTt9fTtyZXR1cm57UHJvY2VzczpQcm9jZXNzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFNhbXBsZShjcHUsdGhyZWFkLHRpdGxlLHN0YXJ0LGxlYWZTdGFja0ZyYW1lLG9wdF93ZWlnaHQsb3B0X2FyZ3Mpe3RyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuY3B1PWNwdTt0aGlzLnRocmVhZD10aHJlYWQ7dGhpcy5sZWFmU3RhY2tGcmFtZT1sZWFmU3RhY2tGcmFtZTt0aGlzLndlaWdodD1vcHRfd2VpZ2h0O3RoaXMuYXJncz1vcHRfYXJnc3x8e307fQotU2FtcGxlLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLlRpbWVkRXZlbnQucHJvdG90eXBlLGdldCBjb2xvcklkKCl7cmV0dXJuIHRoaXMubGVhZlN0YWNrRnJhbWUuY29sb3JJZDt9LGdldCBzdGFja1RyYWNlKCl7cmV0dXJuIHRoaXMubGVhZlN0YWNrRnJhbWUuc3RhY2tUcmFjZTt9LGdldFVzZXJGcmllbmRseVN0YWNrVHJhY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZWFmU3RhY2tGcmFtZS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCk7fSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidTYW1wbGUgJysnIGF0ICcrCi10ci5iLnVuaXRzLnRzU3RyaW5nKHRoaXMuc3RhcnQpO319O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoU2FtcGxlLHtuYW1lOidzYW1wbGUnLHBsdXJhbE5hbWU6J3NhbXBsZXMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItYy1hLXNpbmdsZS1zYW1wbGUtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci1jLWEtbXVsdGktc2FtcGxlLXN1Yi12aWV3J30pO3JldHVybntTYW1wbGU6U2FtcGxlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFN0YWNrRnJhbWUocGFyZW50RnJhbWUsaWQsY2F0ZWdvcnksdGl0bGUsY29sb3JJZCl7aWYoaWQ9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ2lkIG11c3QgYmUgZ2l2ZW4nKTt0aGlzLnBhcmVudEZyYW1lXz1wYXJlbnRGcmFtZTt0aGlzLmlkPWlkO3RoaXMuY2F0ZWdvcnk9Y2F0ZWdvcnl8fCcnO3RoaXMudGl0bGU9dGl0bGU7dGhpcy5jb2xvcklkPWNvbG9ySWQ7dGhpcy5jaGlsZHJlbj1bXTtpZih0aGlzLnBhcmVudEZyYW1lXykKLXRoaXMucGFyZW50RnJhbWVfLmFkZENoaWxkKHRoaXMpO30KLVN0YWNrRnJhbWUucHJvdG90eXBlPXtnZXQgcGFyZW50RnJhbWUoKXtyZXR1cm4gdGhpcy5wYXJlbnRGcmFtZV87fSxzZXQgcGFyZW50RnJhbWUocGFyZW50RnJhbWUpe2lmKHRoaXMucGFyZW50RnJhbWVfKQotdGhpcy5wYXJlbnRGcmFtZV8ucmVtb3ZlQ2hpbGQodGhpcyk7dGhpcy5wYXJlbnRGcmFtZV89cGFyZW50RnJhbWU7aWYodGhpcy5wYXJlbnRGcmFtZV8pCi10aGlzLnBhcmVudEZyYW1lXy5hZGRDaGlsZCh0aGlzKTt9LGFkZENoaWxkOmZ1bmN0aW9uKGNoaWxkKXt0aGlzLmNoaWxkcmVuLnB1c2goY2hpbGQpO30scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oY2hpbGQpe3ZhciBpPXRoaXMuY2hpbGRyZW4uaW5kZXhPZihjaGlsZC5pZCk7aWYoaT09LTEpCi10aHJvdyBuZXcgRXJyb3IoJ29tZycpO3RoaXMuY2hpbGRyZW4uc3BsaWNlKGksMSk7fSxyZW1vdmVBbGxDaGlsZHJlbjpmdW5jdGlvbigpe2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7aSsrKQotdGhpcy5jaGlsZHJlbltpXS5wYXJlbnRGcmFtZV89dW5kZWZpbmVkO3RoaXMuY2hpbGRyZW4uc3BsaWNlKDAsdGhpcy5jaGlsZHJlbi5sZW5ndGgpO30sZ2V0IHN0YWNrVHJhY2UoKXt2YXIgc3RhY2s9W107dmFyIGN1cj10aGlzO3doaWxlKGN1cil7c3RhY2sucHVzaChjdXIpO2N1cj1jdXIucGFyZW50RnJhbWU7fQotc3RhY2sucmV2ZXJzZSgpO3JldHVybiBzdGFjazt9LGdldFVzZXJGcmllbmRseVN0YWNrVHJhY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFja1RyYWNlLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5jYXRlZ29yeSsnOiAnK3gudGl0bGU7fSk7fX07cmV0dXJue1N0YWNrRnJhbWU6U3RhY2tGcmFtZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXt2YXIgSW5zdGFudEV2ZW50VHlwZT17R0xPQkFMOjEsUFJPQ0VTUzoyfTtmdW5jdGlvbiBJbnN0YW50RXZlbnQoY2F0ZWdvcnksdGl0bGUsY29sb3JJZCxzdGFydCxhcmdzKXt0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcyk7dGhpcy5jYXRlZ29yeT1jYXRlZ29yeXx8Jyc7dGhpcy50aXRsZT10aXRsZTt0aGlzLmNvbG9ySWQ9Y29sb3JJZDt0aGlzLnN0YXJ0PXN0YXJ0O3RoaXMuYXJncz1hcmdzO3RoaXMudHlwZT11bmRlZmluZWQ7fTtJbnN0YW50RXZlbnQucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGV9O2Z1bmN0aW9uIEdsb2JhbEluc3RhbnRFdmVudChjYXRlZ29yeSx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Mpe0luc3RhbnRFdmVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50eXBlPUluc3RhbnRFdmVudFR5cGUuR0xPQkFMO307R2xvYmFsSW5zdGFudEV2ZW50LnByb3RvdHlwZT17X19wcm90b19fOkluc3RhbnRFdmVudC5wcm90b3R5cGUsZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nR2xvYmFsIGluc3RhbnQgZXZlbnQgJyt0aGlzLnRpdGxlKycgQCAnKwotdGhpcy50c1N0cmluZyhzdGFydCk7fX07ZnVuY3Rpb24gUHJvY2Vzc0luc3RhbnRFdmVudChjYXRlZ29yeSx0aXRsZSxjb2xvcklkLHN0YXJ0LGFyZ3Mpe0luc3RhbnRFdmVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50eXBlPUluc3RhbnRFdmVudFR5cGUuUFJPQ0VTUzt9O1Byb2Nlc3NJbnN0YW50RXZlbnQucHJvdG90eXBlPXtfX3Byb3RvX186SW5zdGFudEV2ZW50LnByb3RvdHlwZSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidQcm9jZXNzLWxldmVsIGluc3RhbnQgZXZlbnQgJyt0aGlzLnRpdGxlKycgQCAnKwotdGhpcy50c1N0cmluZyhzdGFydCk7fX07dHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcihJbnN0YW50RXZlbnQse25hbWU6J2luc3RhbnRFdmVudCcscGx1cmFsTmFtZTonaW5zdGFudEV2ZW50cycsc2luZ2xlVmlld0VsZW1lbnROYW1lOid0ci1jLWEtc2luZ2xlLWluc3RhbnQtZXZlbnQtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci1jLWEtbXVsdGktaW5zdGFudC1ldmVudC1zdWItdmlldyd9KTtyZXR1cm57R2xvYmFsSW5zdGFudEV2ZW50Okdsb2JhbEluc3RhbnRFdmVudCxQcm9jZXNzSW5zdGFudEV2ZW50OlByb2Nlc3NJbnN0YW50RXZlbnQsSW5zdGFudEV2ZW50VHlwZTpJbnN0YW50RXZlbnRUeXBlLEluc3RhbnRFdmVudDpJbnN0YW50RXZlbnR9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRmxvd0V2ZW50KGNhdGVnb3J5LGlkLHRpdGxlLGNvbG9ySWQsc3RhcnQsYXJncyxvcHRfZHVyYXRpb24pe3RyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLmNhdGVnb3J5PWNhdGVnb3J5fHwnJzt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuY29sb3JJZD1jb2xvcklkO3RoaXMuc3RhcnQ9c3RhcnQ7dGhpcy5hcmdzPWFyZ3M7dGhpcy5pZD1pZDt0aGlzLnN0YXJ0U2xpY2U9dW5kZWZpbmVkO3RoaXMuZW5kU2xpY2U9dW5kZWZpbmVkO2lmKG9wdF9kdXJhdGlvbiE9PXVuZGVmaW5lZCkKLXRoaXMuZHVyYXRpb249b3B0X2R1cmF0aW9uO30KLUZsb3dFdmVudC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSxnZXQgdXNlckZyaWVuZGx5TmFtZSgpe3JldHVybidGbG93IGV2ZW50IG5hbWVkICcrdGhpcy50aXRsZSsnIGF0ICcrCi10ci5iLnVuaXRzLnRzU3RyaW5nKHRoaXMudGltZXN0YW1wKTt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKEZsb3dFdmVudCx7bmFtZTonZmxvd0V2ZW50JyxwbHVyYWxOYW1lOidmbG93RXZlbnRzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLWMtYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldycsbXVsdGlWaWV3RWxlbWVudE5hbWU6J3RyLWMtYS1tdWx0aS1mbG93LWV2ZW50LXN1Yi12aWV3J30pO3JldHVybntGbG93RXZlbnQ6Rmxvd0V2ZW50fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsc3RhcnQpe3RyLm1vZGVsLkNvbnRhaW5lck1lbW9yeUR1bXAuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLm1vZGVsPW1vZGVsO3RoaXMucHJvY2Vzc01lbW9yeUR1bXBzPXt9O30KLUdsb2JhbE1lbW9yeUR1bXAucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuQ29udGFpbmVyTWVtb3J5RHVtcC5wcm90b3R5cGUsZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4nR2xvYmFsIG1lbW9yeSBkdW1wICcrJyBhdCAnKwotdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnN0YXJ0KTt9LGNhbGN1bGF0ZUdyYXBoQXR0cmlidXRlczpmdW5jdGlvbigpe3RoaXMuYWdncmVnYXRlTWVtb3J5QWxsb2NhdG9yRHVtcEF0dHJpYnV0ZXModGhpcy5tb2RlbCk7dHIuYi5pdGVySXRlbXModGhpcy5wcm9jZXNzTWVtb3J5RHVtcHMsZnVuY3Rpb24ocGlkLGR1bXApe2R1bXAuYWdncmVnYXRlTWVtb3J5QWxsb2NhdG9yRHVtcEF0dHJpYnV0ZXModGhpcy5tb2RlbCk7fSx0aGlzKTt0ci5iLml0ZXJJdGVtcyh0aGlzLnByb2Nlc3NNZW1vcnlEdW1wcyxmdW5jdGlvbihwaWQsZHVtcCl7ZHVtcC5kaXNjb3VudFRyYWNpbmdPdmVyaGVhZCh0aGlzLm1vZGVsKTt9LHRoaXMpO319O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoR2xvYmFsTWVtb3J5RHVtcCx7bmFtZTonZ2xvYmFsTWVtb3J5RHVtcCcscGx1cmFsTmFtZTonZ2xvYmFsTWVtb3J5RHVtcHMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItYy1hLXNpbmdsZS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci1jLWEtbXVsdGktZ2xvYmFsLW1lbW9yeS1kdW1wLXN1Yi12aWV3J30pO3JldHVybntHbG9iYWxNZW1vcnlEdW1wOkdsb2JhbE1lbW9yeUR1bXB9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRXZlbnRJbmZvKHRpdGxlLGRlc2NyaXB0aW9uLGRvY0xpbmtzKXt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuZGVzY3JpcHRpb249ZGVzY3JpcHRpb247dGhpcy5kb2NMaW5rcz1kb2NMaW5rczt0aGlzLmNvbG9ySWQ9dHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcodGl0bGUpO30KLXJldHVybntFdmVudEluZm86RXZlbnRJbmZvfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEFsZXJ0KGluZm8sc3RhcnQsb3B0X2Fzc29jaWF0ZWRFdmVudHMsb3B0X2FyZ3Mpe3RyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLHN0YXJ0KTt0aGlzLmluZm89aW5mbzt0aGlzLmFyZ3M9b3B0X2FyZ3N8fHt9O3RoaXMuYXNzb2NpYXRlZEV2ZW50cz1vcHRfYXNzb2NpYXRlZEV2ZW50c3x8W107dGhpcy5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpe2V2ZW50LmFzc29jaWF0ZWRBbGVydHMucHVzaCh0aGlzKTt9LHRoaXMpO30KLUFsZXJ0LnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLlRpbWVkRXZlbnQucHJvdG90eXBlLGdldCB0aXRsZSgpe3JldHVybiB0aGlzLmluZm8udGl0bGU7fSxnZXQgY29sb3JJZCgpe3JldHVybiB0aGlzLmluZm8uY29sb3JJZDt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7cmV0dXJuJ0FsZXJ0ICcrdGhpcy50aXRsZSsnIGF0ICcrCi10ci5iLnVuaXRzLnRzU3RyaW5nKHRoaXMuc3RhcnQpO319O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoQWxlcnQse25hbWU6J2FsZXJ0JyxwbHVyYWxOYW1lOidhbGVydHMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItYy1hLWFsZXJ0LXN1Yi12aWV3JyxtdWx0aVZpZXdFbGVtZW50TmFtZTondHItYy1hLWFsZXJ0LXN1Yi12aWV3J30pO3JldHVybntBbGVydDpBbGVydH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBJbnRlcmFjdGlvblJlY29yZCh0aXRsZSxjb2xvcklkLHN0YXJ0LGR1cmF0aW9uKXt0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcyxzdGFydCk7dGhpcy50aXRsZT10aXRsZTt0aGlzLmNvbG9ySWQ9Y29sb3JJZDt0aGlzLmR1cmF0aW9uPWR1cmF0aW9uO3RoaXMuYXJncz17fTt0aGlzLmFzc29jaWF0ZWRFdmVudHM9W107fQotSW50ZXJhY3Rpb25SZWNvcmQucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsZ2V0IHN1YlNsaWNlcygpe3JldHVybltdO30sZ2V0IHVzZXJGcmllbmRseU5hbWUoKXtyZXR1cm4gdGhpcy50aXRsZSsnIGludGVyYWN0aW9uIGF0ICcrCi10ci5iLnVuaXRzLnRzU3RyaW5nKHRoaXMuc3RhcnQpO319O3RyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoSW50ZXJhY3Rpb25SZWNvcmQse25hbWU6J2ludGVyYWN0aW9uJyxwbHVyYWxOYW1lOidpbnRlcmFjdGlvbnMnLHNpbmdsZVZpZXdFbGVtZW50TmFtZTondHItYy1hLXNpbmdsZS1pbnRlcmFjdGlvbi1yZWNvcmQtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci1jLWEtbXVsdGktaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3J30pO3JldHVybntJbnRlcmFjdGlvblJlY29yZDpJbnRlcmFjdGlvblJlY29yZH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBNb2RlbEluZGljZXMobW9kZWwpe3RoaXMuZmxvd0V2ZW50c0J5SWRfPXt9O21vZGVsLmZsb3dFdmVudHMuZm9yRWFjaChmdW5jdGlvbihmZSl7aWYoZmUuaWQhPT11bmRlZmluZWQpe2lmKCF0aGlzLmZsb3dFdmVudHNCeUlkXy5oYXNPd25Qcm9wZXJ0eShmZS5pZCkpe3RoaXMuZmxvd0V2ZW50c0J5SWRfW2ZlLmlkXT1uZXcgQXJyYXkoKTt9Ci10aGlzLmZsb3dFdmVudHNCeUlkX1tmZS5pZF0ucHVzaChmZSk7fX0sdGhpcyk7fQotTW9kZWxJbmRpY2VzLnByb3RvdHlwZT17YWRkRXZlbnRXaXRoSWQ6ZnVuY3Rpb24oaWQsZXZlbnQpe2lmKCF0aGlzLmZsb3dFdmVudHNCeUlkXy5oYXNPd25Qcm9wZXJ0eShpZCkpe3RoaXMuZmxvd0V2ZW50c0J5SWRfW2lkXT1uZXcgQXJyYXkoKTt9Ci10aGlzLmZsb3dFdmVudHNCeUlkX1tpZF0ucHVzaChldmVudCk7fSxnZXRGbG93RXZlbnRzV2l0aElkOmZ1bmN0aW9uKGlkKXtpZighdGhpcy5mbG93RXZlbnRzQnlJZF8uaGFzT3duUHJvcGVydHkoaWQpKQotcmV0dXJuW107cmV0dXJuIHRoaXMuZmxvd0V2ZW50c0J5SWRfW2lkXTt9fTtyZXR1cm57TW9kZWxJbmRpY2VzOk1vZGVsSW5kaWNlc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0cicsZnVuY3Rpb24oKXt2YXIgSW1wb3J0ZXI9dHIuaW1wb3J0ZXIuSW1wb3J0ZXI7dmFyIFByb2Nlc3M9dHIubW9kZWwuUHJvY2Vzczt2YXIgRGV2aWNlPXRyLm1vZGVsLkRldmljZTt2YXIgS2VybmVsPXRyLm1vZGVsLktlcm5lbDt2YXIgR2xvYmFsTWVtb3J5RHVtcD10ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wO3ZhciBHbG9iYWxJbnN0YW50RXZlbnQ9dHIubW9kZWwuR2xvYmFsSW5zdGFudEV2ZW50O3ZhciBGbG93RXZlbnQ9dHIubW9kZWwuRmxvd0V2ZW50O3ZhciBBbGVydD10ci5tb2RlbC5BbGVydDt2YXIgSW50ZXJhY3Rpb25SZWNvcmQ9dHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQ7dmFyIFNhbXBsZT10ci5tb2RlbC5TYW1wbGU7ZnVuY3Rpb24gSW1wb3J0T3B0aW9ucygpe3RoaXMuc2hpZnRXb3JsZFRvWmVybz10cnVlO3RoaXMucHJ1bmVFbXB0eUNvbnRhaW5lcnM9dHJ1ZTt0aGlzLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2s9dW5kZWZpbmVkO3ZhciBhdWRpdG9yVHlwZXM9dHIuYy5BdWRpdG9yLmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTt0aGlzLmF1ZGl0b3JDb25zdHJ1Y3RvcnM9YXVkaXRvclR5cGVzLm1hcChmdW5jdGlvbih0eXBlSW5mbyl7cmV0dXJuIHR5cGVJbmZvLmNvbnN0cnVjdG9yO30pO30KLUltcG9ydE9wdGlvbnMuZnJvbUFyZ3VtZW50cz1mdW5jdGlvbihhcmdzLGFyZ3NTdGFydEluZGV4KXt2YXIgYXJnMD1hcmdzW2FyZ3NTdGFydEluZGV4KzBdO2lmKHR5cGVvZiBhcmcwPT09J29iamVjdCcpe2lmKCEoYXJnMCBpbnN0YW5jZW9mIEltcG9ydE9wdGlvbnMpKQotdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkJyk7cmV0dXJuIGFyZzA7fQotdmFyIG9wdGlvbnM9bmV3IEltcG9ydE9wdGlvbnMoKTtpZihhcmdzW2FyZ3NTdGFydEluZGV4XSE9PXVuZGVmaW5lZCkKLW9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybz1hcmdzW2FyZ3NTdGFydEluZGV4XTtpZihhcmdzW2FyZ3NTdGFydEluZGV4KzFdIT09dW5kZWZpbmVkKQotb3B0aW9ucy5wcnVuZUVtcHR5Q29udGFpbmVycz1hcmdzW2FyZ3NTdGFydEluZGV4KzFdO2lmKGFyZ3NbYXJnc1N0YXJ0SW5kZXgrMl0pCi1vcHRpb25zLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2s9YXJnc1thcmdzU3RhcnRJbmRleCsyXTtyZXR1cm4gb3B0aW9uczt9Ci1mdW5jdGlvbiBDbG9ja1N5bmNSZWNvcmQobmFtZSx0cyxhcmdzKXt0aGlzLm5hbWU9bmFtZTt0aGlzLnRzPXRzO3RoaXMuYXJncz1hcmdzO30KLWZ1bmN0aW9uIE1vZGVsKG9wdF9ldmVudERhdGEsb3B0X29wdGlvbnMpe3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7dHIuYi5FdmVudFRhcmdldC5kZWNvcmF0ZSh0aGlzKTt0aGlzLmZhdmljb25IdWU9J2JsdWUnO3RoaXMuZGV2aWNlPW5ldyBEZXZpY2UodGhpcyk7dGhpcy5rZXJuZWw9bmV3IEtlcm5lbCh0aGlzKTt0aGlzLnByb2Nlc3Nlcz17fTt0aGlzLm1ldGFkYXRhPVtdO3RoaXMuY2F0ZWdvcmllcz1bXTt0aGlzLmJvdW5kcz1uZXcgdHIuYi5SYW5nZSgpO3RoaXMuaW5zdGFudEV2ZW50cz1bXTt0aGlzLmZsb3dFdmVudHM9W107dGhpcy5jbG9ja1N5bmNSZWNvcmRzPVtdO3RoaXMuc3RhY2tGcmFtZXM9e307dGhpcy5zYW1wbGVzPVtdO3RoaXMuYWxlcnRzPVtdO3RoaXMuaW50ZXJhY3Rpb25fcmVjb3Jkcz1bXTt0aGlzLmZsb3dJbnRlcnZhbFRyZWU9bmV3IHRyLmIuSW50ZXJ2YWxUcmVlKGZ1bmN0aW9uKGYpe3JldHVybiBmLnN0YXJ0O30sZnVuY3Rpb24oZil7cmV0dXJuIGYuZW5kO30pO3RoaXMuZ2xvYmFsTWVtb3J5RHVtcHM9W107dGhpcy5hbm5vdGF0aW9uc0J5R3VpZF89e307dGhpcy5pbXBvcnRXYXJuaW5nc189W107dGhpcy5yZXBvcnRlZEltcG9ydFdhcm5pbmdzXz17fTt0aGlzLm1vZGVsSW5kaWNlcz11bmRlZmluZWQ7dmFyIG9wdGlvbnM9SW1wb3J0T3B0aW9ucy5mcm9tQXJndW1lbnRzKGFyZ3VtZW50cywxKTtpZihvcHRfZXZlbnREYXRhKQotdGhpcy5pbXBvcnRUcmFjZXMoW29wdF9ldmVudERhdGFdLG9wdGlvbnMpO30KLU1vZGVsLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSxpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOmZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSxjYWxsYmFjayxvcHRfdGhpcyl7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsR2xvYmFsTWVtb3J5RHVtcCkpCi10aGlzLmdsb2JhbE1lbW9yeUR1bXBzLmZvckVhY2goY2FsbGJhY2ssb3B0X3RoaXMpO2lmKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLEdsb2JhbEluc3RhbnRFdmVudCkpCi10aGlzLmluc3RhbnRFdmVudHMuZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsRmxvd0V2ZW50KSkKLXRoaXMuZmxvd0V2ZW50cy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxBbGVydCkpCi10aGlzLmFsZXJ0cy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTtpZihldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcyxJbnRlcmFjdGlvblJlY29yZCkpCi10aGlzLmludGVyYWN0aW9uX3JlY29yZHMuZm9yRWFjaChjYWxsYmFjayxvcHRfdGhpcyk7aWYoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsU2FtcGxlKSkKLXRoaXMuc2FtcGxlcy5mb3JFYWNoKGNhbGxiYWNrLG9wdF90aGlzKTt9LGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczpmdW5jdGlvbihjYWxsYmFjayxvcHRfdGhpcyl7Y2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLmRldmljZSk7Y2FsbGJhY2suY2FsbChvcHRfdGhpcyx0aGlzLmtlcm5lbCk7Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi1jYWxsYmFjay5jYWxsKG9wdF90aGlzLHRoaXMucHJvY2Vzc2VzW3BpZF0pO30saXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0czpmdW5jdGlvbihjYWxsYmFjayl7dGhpcy5rZXJuZWwuaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0cyhjYWxsYmFjayk7Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi10aGlzLnByb2Nlc3Nlc1twaWRdLml0ZXJhdGVBbGxQZXJzaXN0YWJsZU9iamVjdHMoY2FsbGJhY2spO30sdXBkYXRlQm91bmRzOmZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMucmVzZXQoKTt2YXIgYm91bmRzPXRoaXMuYm91bmRzO3RoaXMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGVjKXtlYy51cGRhdGVCb3VuZHMoKTtib3VuZHMuYWRkUmFuZ2UoZWMuYm91bmRzKTt9KTt0aGlzLml0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXIoZnVuY3Rpb24oZXZlbnRDb25zdHJ1Y3Rvcil7cmV0dXJuIHRydWU7fSxmdW5jdGlvbihldmVudCl7ZXZlbnQuYWRkQm91bmRzVG9SYW5nZShib3VuZHMpO30pO30sc2hpZnRXb3JsZFRvWmVybzpmdW5jdGlvbigpe3ZhciBzaGlmdEFtb3VudD0tdGhpcy5ib3VuZHMubWluO3RoaXMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGVjKXtlYy5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKHNoaWZ0QW1vdW50KTt9KTt0aGlzLml0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXIoZnVuY3Rpb24oZXZlbnRDb25zdHJ1Y3Rvcil7cmV0dXJuIHRydWU7fSxmdW5jdGlvbihldmVudCl7ZXZlbnQuc3RhcnQrPXNoaWZ0QW1vdW50O30pO3RoaXMudXBkYXRlQm91bmRzKCk7fSxnZXQgbnVtUHJvY2Vzc2VzKCl7dmFyIG49MDtmb3IodmFyIHAgaW4gdGhpcy5wcm9jZXNzZXMpCi1uKys7cmV0dXJuIG47fSxnZXRQcm9jZXNzOmZ1bmN0aW9uKHBpZCl7cmV0dXJuIHRoaXMucHJvY2Vzc2VzW3BpZF07fSxnZXRPckNyZWF0ZVByb2Nlc3M6ZnVuY3Rpb24ocGlkKXtpZighdGhpcy5wcm9jZXNzZXNbcGlkXSkKLXRoaXMucHJvY2Vzc2VzW3BpZF09bmV3IFByb2Nlc3ModGhpcyxwaWQpO3JldHVybiB0aGlzLnByb2Nlc3Nlc1twaWRdO30scHVzaEluc3RhbnRFdmVudDpmdW5jdGlvbihpbnN0YW50RXZlbnQpe3RoaXMuaW5zdGFudEV2ZW50cy5wdXNoKGluc3RhbnRFdmVudCk7fSxhZGRTdGFja0ZyYW1lOmZ1bmN0aW9uKHN0YWNrRnJhbWUpe2lmKHRoaXMuc3RhY2tGcmFtZXNbc3RhY2tGcmFtZS5pZF0pCi10aHJvdyBuZXcgRXJyb3IoJ1N0YWNrIGZyYW1lIGFscmVhZHkgZXhpc3RzJyk7dGhpcy5zdGFja0ZyYW1lc1tzdGFja0ZyYW1lLmlkXT1zdGFja0ZyYW1lO3JldHVybiBzdGFja0ZyYW1lO30sYWRkSW50ZXJhY3Rpb25SZWNvcmQ6ZnVuY3Rpb24oaXIxKXt0aGlzLmludGVyYWN0aW9uX3JlY29yZHMucHVzaChpcjEpO30sZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkOmZ1bmN0aW9uKG5hbWUpe3JldHVybiB0aGlzLmNsb2NrU3luY1JlY29yZHMuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PT1uYW1lO30pO30sdXBkYXRlQ2F0ZWdvcmllc186ZnVuY3Rpb24oKXt2YXIgY2F0ZWdvcmllc0RpY3Q9e307dGhpcy5kZXZpY2UuYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7dGhpcy5rZXJuZWwuYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi10aGlzLnByb2Nlc3Nlc1twaWRdLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpO3RoaXMuY2F0ZWdvcmllcz1bXTtmb3IodmFyIGNhdGVnb3J5IGluIGNhdGVnb3JpZXNEaWN0KQotaWYoY2F0ZWdvcnkhPScnKQotdGhpcy5jYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpO30sZ2V0QWxsVGhyZWFkczpmdW5jdGlvbigpe3ZhciB0aHJlYWRzPVtdO2Zvcih2YXIgdGlkIGluIHRoaXMua2VybmVsLnRocmVhZHMpe3RocmVhZHMucHVzaChwcm9jZXNzLnRocmVhZHNbdGlkXSk7fQotZm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpe3ZhciBwcm9jZXNzPXRoaXMucHJvY2Vzc2VzW3BpZF07Zm9yKHZhciB0aWQgaW4gcHJvY2Vzcy50aHJlYWRzKXt0aHJlYWRzLnB1c2gocHJvY2Vzcy50aHJlYWRzW3RpZF0pO319Ci1yZXR1cm4gdGhyZWFkczt9LGdldEFsbFByb2Nlc3NlczpmdW5jdGlvbigpe3ZhciBwcm9jZXNzZXM9W107Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi1wcm9jZXNzZXMucHVzaCh0aGlzLnByb2Nlc3Nlc1twaWRdKTtyZXR1cm4gcHJvY2Vzc2VzO30sZ2V0QWxsQ291bnRlcnM6ZnVuY3Rpb24oKXt2YXIgY291bnRlcnM9W107Y291bnRlcnMucHVzaC5hcHBseShjb3VudGVycyx0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5kZXZpY2UuY291bnRlcnMpKTtjb3VudGVycy5wdXNoLmFwcGx5KGNvdW50ZXJzLHRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLmtlcm5lbC5jb3VudGVycykpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKXt2YXIgcHJvY2Vzcz10aGlzLnByb2Nlc3Nlc1twaWRdO2Zvcih2YXIgdGlkIGluIHByb2Nlc3MuY291bnRlcnMpe2NvdW50ZXJzLnB1c2gocHJvY2Vzcy5jb3VudGVyc1t0aWRdKTt9fQotcmV0dXJuIGNvdW50ZXJzO30sZ2V0QW5ub3RhdGlvbkJ5R1VJRDpmdW5jdGlvbihndWlkKXtyZXR1cm4gdGhpcy5hbm5vdGF0aW9uc0J5R3VpZF9bZ3VpZF07fSxhZGRBbm5vdGF0aW9uOmZ1bmN0aW9uKGFubm90YXRpb24pe2lmKCFhbm5vdGF0aW9uLmd1aWQpCi10aHJvdyBuZXcgRXJyb3IoJ0Fubm90YXRpb24gd2l0aCB1bmRlZmluZWQgZ3VpZCBnaXZlbicpO3RoaXMuYW5ub3RhdGlvbnNCeUd1aWRfW2Fubm90YXRpb24uZ3VpZF09YW5ub3RhdGlvbjt0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywnYW5ub3RhdGlvbkNoYW5nZScpO30scmVtb3ZlQW5ub3RhdGlvbjpmdW5jdGlvbihhbm5vdGF0aW9uKXt0aGlzLmFubm90YXRpb25zQnlHdWlkX1thbm5vdGF0aW9uLmd1aWRdLm9uUmVtb3ZlKCk7ZGVsZXRlIHRoaXMuYW5ub3RhdGlvbnNCeUd1aWRfW2Fubm90YXRpb24uZ3VpZF07dHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsJ2Fubm90YXRpb25DaGFuZ2UnKTt9LGdldEFsbEFubm90YXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLmFubm90YXRpb25zQnlHdWlkXyk7fSxmaW5kQWxsVGhyZWFkc05hbWVkOmZ1bmN0aW9uKG5hbWUpe3ZhciBuYW1lZFRocmVhZHM9W107bmFtZWRUaHJlYWRzLnB1c2guYXBwbHkobmFtZWRUaHJlYWRzLHRoaXMua2VybmVsLmZpbmRBbGxUaHJlYWRzTmFtZWQobmFtZSkpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKXtuYW1lZFRocmVhZHMucHVzaC5hcHBseShuYW1lZFRocmVhZHMsdGhpcy5wcm9jZXNzZXNbcGlkXS5maW5kQWxsVGhyZWFkc05hbWVkKG5hbWUpKTt9Ci1yZXR1cm4gbmFtZWRUaHJlYWRzO30sY3JlYXRlSW1wb3J0ZXJfOmZ1bmN0aW9uKGV2ZW50RGF0YSl7dmFyIGltcG9ydGVyQ29uc3RydWN0b3I9dHIuaW1wb3J0ZXIuSW1wb3J0ZXIuZmluZEltcG9ydGVyRm9yKGV2ZW50RGF0YSk7aWYoIWltcG9ydGVyQ29uc3RydWN0b3IpCi10aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGFuIGltcG9ydGVyIGZvciB0aGUgcHJvdmlkZWQgZXZlbnREYXRhLicpO3ZhciBpbXBvcnRlcj1uZXcgaW1wb3J0ZXJDb25zdHJ1Y3Rvcih0aGlzLGV2ZW50RGF0YSk7cmV0dXJuIGltcG9ydGVyO30saW1wb3J0VHJhY2VzOmZ1bmN0aW9uKHRyYWNlcyxvcHRfb3B0aW9ucyl7dmFyIHByb2dyZXNzTWV0ZXI9e3VwZGF0ZTpmdW5jdGlvbihtc2cpe319O3ZhciBvcHRpb25zPUltcG9ydE9wdGlvbnMuZnJvbUFyZ3VtZW50cyhhcmd1bWVudHMsMSk7dmFyIHRhc2s9dGhpcy5jcmVhdGVJbXBvcnRUcmFjZXNUYXNrKHByb2dyZXNzTWV0ZXIsdHJhY2VzLG9wdGlvbnMpO3RyLmIuVGFzay5SdW5TeW5jaHJvbm91c2x5KHRhc2spO30saW1wb3J0VHJhY2VzV2l0aFByb2dyZXNzRGlhbG9nOmZ1bmN0aW9uKHRyYWNlcyxvcHRfb3B0aW9ucyl7dmFyIG9wdGlvbnM9SW1wb3J0T3B0aW9ucy5mcm9tQXJndW1lbnRzKGFyZ3VtZW50cywxKTt2YXIgb3ZlcmxheT10ci5iLnVpLk92ZXJsYXkoKTtvdmVybGF5LnRpdGxlPSdJbXBvcnRpbmcuLi4nO292ZXJsYXkudXNlckNhbkNsb3NlPWZhbHNlO292ZXJsYXkubXNnRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7b3ZlcmxheS5hcHBlbmRDaGlsZChvdmVybGF5Lm1zZ0VsKTtvdmVybGF5Lm1zZ0VsLnN0eWxlLm1hcmdpbj0nMjBweCc7b3ZlcmxheS51cGRhdGU9ZnVuY3Rpb24obXNnKXt0aGlzLm1zZ0VsLnRleHRDb250ZW50PW1zZzt9Ci1vdmVybGF5LnZpc2libGU9dHJ1ZTt2YXIgdGFzaz10aGlzLmNyZWF0ZUltcG9ydFRyYWNlc1Rhc2sob3ZlcmxheSx0cmFjZXMsb3B0aW9ucyk7dmFyIHByb21pc2U9dHIuYi5UYXNrLlJ1bldoZW5JZGxlKHRhc2spO3Byb21pc2UudGhlbihmdW5jdGlvbigpe292ZXJsYXkudmlzaWJsZT1mYWxzZTt9LGZ1bmN0aW9uKGVycil7b3ZlcmxheS52aXNpYmxlPWZhbHNlO30pO3JldHVybiBwcm9taXNlO30saGFzRXZlbnREYXRhRGVjb2Rlcl86ZnVuY3Rpb24oaW1wb3J0ZXJzKXtpZihpbXBvcnRlcnMubGVuZ3RoPT09MCkKLXJldHVybiBmYWxzZTtmb3IodmFyIGk9MDtpPGltcG9ydGVycy5sZW5ndGg7KytpKXtpZighaW1wb3J0ZXJzW2ldLmlzVHJhY2VEYXRhQ29udGFpbmVyKCkpCi1yZXR1cm4gdHJ1ZTt9Ci1yZXR1cm4gZmFsc2U7fSxjcmVhdGVJbXBvcnRUcmFjZXNUYXNrOmZ1bmN0aW9uKHByb2dyZXNzTWV0ZXIsdHJhY2VzLG9wdF9vcHRpb25zKXt2YXIgb3B0aW9ucz1JbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMoYXJndW1lbnRzLDIpO2lmKHRoaXMuaW1wb3J0aW5nXykKLXRocm93IG5ldyBFcnJvcignQWxyZWFkeSBpbXBvcnRpbmcuJyk7dGhpcy5pbXBvcnRpbmdfPXRydWU7dmFyIGltcG9ydFRhc2s9bmV3IHRyLmIuVGFzayhmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdJIHdpbGwgbm93IGltcG9ydCB5b3VyIHRyYWNlcyBmb3IgeW91Li4uJyk7fSx0aGlzKTt2YXIgbGFzdFRhc2s9aW1wb3J0VGFzazt2YXIgaW1wb3J0ZXJzPVtdO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7dHJhY2VzPXRyYWNlcy5zbGljZSgwKTtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQ3JlYXRpbmcgaW1wb3J0ZXJzLi4uJyk7Zm9yKHZhciBpPTA7aTx0cmFjZXMubGVuZ3RoOysraSkKLWltcG9ydGVycy5wdXNoKHRoaXMuY3JlYXRlSW1wb3J0ZXJfKHRyYWNlc1tpXSkpO2Zvcih2YXIgaT0wO2k8aW1wb3J0ZXJzLmxlbmd0aDtpKyspe3ZhciBzdWJ0cmFjZXM9aW1wb3J0ZXJzW2ldLmV4dHJhY3RTdWJ0cmFjZXMoKTtmb3IodmFyIGo9MDtqPHN1YnRyYWNlcy5sZW5ndGg7aisrKXt0cnl7dHJhY2VzLnB1c2goc3VidHJhY2VzW2pdKTtpbXBvcnRlcnMucHVzaCh0aGlzLmNyZWF0ZUltcG9ydGVyXyhzdWJ0cmFjZXNbal0pKTt9Y2F0Y2goZXJyb3Ipe2NvbnNvbGUud2FybihlcnJvci5uYW1lKyc6ICcrZXJyb3IubWVzc2FnZSk7Y29udGludWU7fX19Ci1pZih0cmFjZXMubGVuZ3RoJiYhdGhpcy5oYXNFdmVudERhdGFEZWNvZGVyXyhpbXBvcnRlcnMpKXt0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGFuIGltcG9ydGVyIGZvciAnKyd0aGUgcHJvdmlkZWQgZXZlbnREYXRhLicpO30KLWltcG9ydGVycy5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHguaW1wb3J0UHJpb3JpdHkteS5pbXBvcnRQcmlvcml0eTt9KTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKHRhc2spe2ltcG9ydGVycy5mb3JFYWNoKGZ1bmN0aW9uKGltcG9ydGVyLGluZGV4KXt0YXNrLnN1YlRhc2soZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnSW1wb3J0aW5nICcrKGluZGV4KzEpKycgb2YgJytpbXBvcnRlcnMubGVuZ3RoKTtpbXBvcnRlci5pbXBvcnRFdmVudHMoKTt9LHRoaXMpO30sdGhpcyk7fSx0aGlzKTtpZihvcHRpb25zLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2spe2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKHRhc2spe29wdGlvbnMuY3VzdG9taXplTW9kZWxDYWxsYmFjayh0aGlzKTt9LHRoaXMpO30KLWxhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKHRhc2spe2ltcG9ydGVycy5mb3JFYWNoKGZ1bmN0aW9uKGltcG9ydGVyLGluZGV4KXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnSW1wb3J0aW5nIHNhbXBsZSBkYXRhICcrKGluZGV4KzEpKycvJytpbXBvcnRlcnMubGVuZ3RoKTtpbXBvcnRlci5pbXBvcnRTYW1wbGVEYXRhKCk7fSx0aGlzKTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0F1dG9jbG9zaW5nIG9wZW4gc2xpY2VzLi4uJyk7dGhpcy5zYW1wbGVzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5zdGFydC15LnN0YXJ0O30pO3RoaXMudXBkYXRlQm91bmRzKCk7dGhpcy5rZXJuZWwuYXV0b0Nsb3NlT3BlblNsaWNlcyh0aGlzLmJvdW5kcy5tYXgpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQotdGhpcy5wcm9jZXNzZXNbcGlkXS5hdXRvQ2xvc2VPcGVuU2xpY2VzKHRoaXMuYm91bmRzLm1heCk7dGhpcy5rZXJuZWwuY3JlYXRlU3ViU2xpY2VzKCk7Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi10aGlzLnByb2Nlc3Nlc1twaWRdLmNyZWF0ZVN1YlNsaWNlcygpO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24odGFzayl7aW1wb3J0ZXJzLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZXIsaW5kZXgpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdGaW5hbGl6aW5nIGltcG9ydCAnKyhpbmRleCsxKSsnLycraW1wb3J0ZXJzLmxlbmd0aCk7aW1wb3J0ZXIuZmluYWxpemVJbXBvcnQoKTt9LHRoaXMpO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnSW5pdGlhbGl6aW5nIG9iamVjdHMgKHN0ZXAgMS8yKS4uLicpO2Zvcih2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQotdGhpcy5wcm9jZXNzZXNbcGlkXS5wcmVJbml0aWFsaXplT2JqZWN0cygpO30sdGhpcyk7aWYob3B0aW9ucy5wcnVuZUVtcHR5Q29udGFpbmVycyl7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnUHJ1bmluZyBlbXB0eSBjb250YWluZXJzLi4uJyk7dGhpcy5rZXJuZWwucHJ1bmVFbXB0eUNvbnRhaW5lcnMoKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3Nlcyl7dGhpcy5wcm9jZXNzZXNbcGlkXS5wcnVuZUVtcHR5Q29udGFpbmVycygpO319LHRoaXMpO30KLWxhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ01lcmdpbmcga2VybmVsIHdpdGggdXNlcmxhbmQuLi4nKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLXRoaXMucHJvY2Vzc2VzW3BpZF0ubWVyZ2VLZXJuZWxXaXRoVXNlcmxhbmQoKTt9LHRoaXMpO3ZhciBhdWRpdG9ycz1bXTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdBZGRpbmcgYXJiaXRyYXJ5IGRhdGEgdG8gbW9kZWwuLi4nKTthdWRpdG9ycz1vcHRpb25zLmF1ZGl0b3JDb25zdHJ1Y3RvcnMubWFwKGZ1bmN0aW9uKGF1ZGl0b3JDb25zdHJ1Y3Rvcil7cmV0dXJuIG5ldyBhdWRpdG9yQ29uc3RydWN0b3IodGhpcyk7fSx0aGlzKTthdWRpdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGF1ZGl0b3Ipe2F1ZGl0b3IucnVuQW5ub3RhdGUoKTt9KTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0NvbXB1dGluZyBmaW5hbCB3b3JsZCBib3VuZHMuLi4nKTt0aGlzLnVwZGF0ZUJvdW5kcygpO3RoaXMudXBkYXRlQ2F0ZWdvcmllc18oKTtpZihvcHRpb25zLnNoaWZ0V29ybGRUb1plcm8pCi10aGlzLnNoaWZ0V29ybGRUb1plcm8oKTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0J1aWxkaW5nIGZsb3cgZXZlbnQgbWFwLi4uJyk7Zm9yKHZhciBpPTA7aTx0aGlzLmZsb3dFdmVudHMubGVuZ3RoOysraSl7dmFyIGZsb3dFdmVudD10aGlzLmZsb3dFdmVudHNbaV07dGhpcy5mbG93SW50ZXJ2YWxUcmVlLmluc2VydChmbG93RXZlbnQpO30KLXRoaXMuZmxvd0ludGVydmFsVHJlZS51cGRhdGVIaWdoVmFsdWVzKCk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdKb2luaW5nIG9iamVjdCByZWZzLi4uJyk7Zm9yKHZhciBpPTA7aTxpbXBvcnRlcnMubGVuZ3RoO2krKykKLWltcG9ydGVyc1tpXS5qb2luUmVmcygpO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQ2xlYW5pbmcgdXAgdW5kZWxldGVkIG9iamVjdHMuLi4nKTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLXRoaXMucHJvY2Vzc2VzW3BpZF0uYXV0b0RlbGV0ZU9iamVjdHModGhpcy5ib3VuZHMubWF4KTt9LHRoaXMpO2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7cHJvZ3Jlc3NNZXRlci51cGRhdGUoJ1NvcnRpbmcgbWVtb3J5IGR1bXBzLi4uJyk7dGhpcy5nbG9iYWxNZW1vcnlEdW1wcy5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHguc3RhcnQteS5zdGFydDt9KTtmb3IodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLXRoaXMucHJvY2Vzc2VzW3BpZF0uc29ydE1lbW9yeUR1bXBzKCk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdDYWxjdWxhdGluZyBtZW1vcnkgZHVtcCBncmFwaCBhdHRyaWJ1dGVzLi4uJyk7dGhpcy5nbG9iYWxNZW1vcnlEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGR1bXApe2R1bXAuY2FsY3VsYXRlR3JhcGhBdHRyaWJ1dGVzKCk7fSk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdJbml0aWFsaXppbmcgb2JqZWN0cyAoc3RlcCAyLzIpLi4uJyk7Zm9yKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi10aGlzLnByb2Nlc3Nlc1twaWRdLmluaXRpYWxpemVPYmplY3RzKCk7fSx0aGlzKTtsYXN0VGFzaz1sYXN0VGFzay5hZnRlcihmdW5jdGlvbigpe3Byb2dyZXNzTWV0ZXIudXBkYXRlKCdCdWlsZGluZyBmbG93IGV2ZW50IGluZGljZXMuLi4nKTt0aGlzLm1vZGVsSW5kaWNlcz1uZXcgdHIubW9kZWwuTW9kZWxJbmRpY2VzKHRoaXMpO30sdGhpcyk7bGFzdFRhc2s9bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtwcm9ncmVzc01ldGVyLnVwZGF0ZSgnUnVubmluZyBhdWRpdG9ycy4uLicpO2F1ZGl0b3JzLmZvckVhY2goZnVuY3Rpb24oYXVkaXRvcil7YXVkaXRvci5ydW5BdWRpdCgpO30pO3RoaXMuaW50ZXJhY3Rpb25fcmVjb3Jkcy5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHguc3RhcnQteS5zdGFydDt9KTt0aGlzLmFsZXJ0cy5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHguc3RhcnQteS5zdGFydDt9KTt0aGlzLnVwZGF0ZUJvdW5kcygpO30sdGhpcyk7bGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXt0aGlzLmltcG9ydGluZ189ZmFsc2U7fSx0aGlzKTtyZXR1cm4gaW1wb3J0VGFzazt9LGltcG9ydFdhcm5pbmc6ZnVuY3Rpb24oZGF0YSl7dGhpcy5pbXBvcnRXYXJuaW5nc18ucHVzaChkYXRhKTtpZih0aGlzLnJlcG9ydGVkSW1wb3J0V2FybmluZ3NfW2RhdGEudHlwZV09PT10cnVlKQotcmV0dXJuO2NvbnNvbGUud2FybihkYXRhLm1lc3NhZ2UpO3RoaXMucmVwb3J0ZWRJbXBvcnRXYXJuaW5nc19bZGF0YS50eXBlXT10cnVlO30sZ2V0IGhhc0ltcG9ydFdhcm5pbmdzKCl7cmV0dXJuKHRoaXMuaW1wb3J0V2FybmluZ3NfLmxlbmd0aD4wKTt9LGdldCBpbXBvcnRXYXJuaW5ncygpe3JldHVybiB0aGlzLmltcG9ydFdhcm5pbmdzXzt9fTtyZXR1cm57SW1wb3J0T3B0aW9uczpJbXBvcnRPcHRpb25zLENsb2NrU3luY1JlY29yZDpDbG9ja1N5bmNSZWNvcmQsTW9kZWw6TW9kZWx9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXt2YXIgRXZlbnRSZWdpc3RyeT10ci5tb2RlbC5FdmVudFJlZ2lzdHJ5O3ZhciBSZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ9dHIuYi5FdmVudC5iaW5kKHVuZGVmaW5lZCwncmVxdWVzdFNlbGVjdGlvbkNoYW5nZScsdHJ1ZSxmYWxzZSk7ZnVuY3Rpb24gU2VsZWN0aW9uKG9wdF9ldmVudHMpe3RoaXMuc3VuYnVyc3Rfem9vbV9sZXZlbD11bmRlZmluZWQ7dGhpcy5ib3VuZHNfZGlydHlfPXRydWU7dGhpcy5ib3VuZHNfPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5sZW5ndGhfPTA7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLnB1c2hlZF9ndWlkc189e307aWYob3B0X2V2ZW50cyl7aWYob3B0X2V2ZW50cyBpbnN0YW5jZW9mIEFycmF5KXtmb3IodmFyIGk9MDtpPG9wdF9ldmVudHMubGVuZ3RoO2krKykKLXRoaXMucHVzaChvcHRfZXZlbnRzW2ldKTt9ZWxzZXt0aGlzLnB1c2gob3B0X2V2ZW50cyk7fX19Ci1TZWxlY3Rpb24ucHJvdG90eXBlPXtfX3Byb3RvX186T2JqZWN0LnByb3RvdHlwZSxnZXQgYm91bmRzKCl7aWYodGhpcy5ib3VuZHNfZGlydHlfKXt0aGlzLmJvdW5kc18ucmVzZXQoKTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoXztpKyspCi10aGlzW2ldLmFkZEJvdW5kc1RvUmFuZ2UodGhpcy5ib3VuZHNfKTt0aGlzLmJvdW5kc19kaXJ0eV89ZmFsc2U7fQotcmV0dXJuIHRoaXMuYm91bmRzXzt9LGdldCBkdXJhdGlvbigpe2lmKHRoaXMuYm91bmRzXy5pc0VtcHR5KQotcmV0dXJuIDA7cmV0dXJuIHRoaXMuYm91bmRzXy5tYXgtdGhpcy5ib3VuZHNfLm1pbjt9LGdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sZW5ndGhfO30sZ2V0IGd1aWQoKXtyZXR1cm4gdGhpcy5ndWlkXzt9LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aF87KytpKQotZGVsZXRlIHRoaXNbaV07dGhpcy5sZW5ndGhfPTA7dGhpcy5ib3VuZHNfZGlydHlfPXRydWU7fSxwdXNoOmZ1bmN0aW9uKGV2ZW50KXtpZihldmVudC5ndWlkPT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ0V2ZW50IG11c3QgaGF2ZSBhIEdVSUQnKTtpZih0aGlzLmNvbnRhaW5zKGV2ZW50KSkKLXJldHVybiBldmVudDt0aGlzLnB1c2hlZF9ndWlkc19bZXZlbnQuZ3VpZF09dHJ1ZTt0aGlzW3RoaXMubGVuZ3RoXysrXT1ldmVudDt0aGlzLmJvdW5kc19kaXJ0eV89dHJ1ZTtyZXR1cm4gZXZlbnQ7fSxjb250YWluczpmdW5jdGlvbihldmVudCl7cmV0dXJuIHRoaXMucHVzaGVkX2d1aWRzX1tldmVudC5ndWlkXTt9LGFkZFNlbGVjdGlvbjpmdW5jdGlvbihzZWxlY3Rpb24pe2Zvcih2YXIgaT0wO2k8c2VsZWN0aW9uLmxlbmd0aDtpKyspCi10aGlzLnB1c2goc2VsZWN0aW9uW2ldKTt9LHN1YlNlbGVjdGlvbjpmdW5jdGlvbihpbmRleCxjb3VudCl7Y291bnQ9Y291bnR8fDE7dmFyIHNlbGVjdGlvbj1uZXcgU2VsZWN0aW9uKCk7c2VsZWN0aW9uLmJvdW5kc19kaXJ0eV89dHJ1ZTtpZihpbmRleDwwfHxpbmRleCtjb3VudD50aGlzLmxlbmd0aF8pCi10aHJvdyBuZXcgRXJyb3IoJ0luZGV4IG91dCBvZiBib3VuZHMnKTtmb3IodmFyIGk9aW5kZXg7aTxpbmRleCtjb3VudDtpKyspCi1zZWxlY3Rpb24ucHVzaCh0aGlzW2ldKTtyZXR1cm4gc2VsZWN0aW9uO30sZXF1YWxzOmZ1bmN0aW9uKHRoYXQpe2lmKHRoaXMubGVuZ3RoIT09dGhhdC5sZW5ndGgpCi1yZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspe3ZhciBldmVudD10aGlzW2ldO2lmKHRoYXQucHVzaGVkX2d1aWRzX1tldmVudC5ndWlkXT09PXVuZGVmaW5lZCkKLXJldHVybiBmYWxzZTt9Ci1yZXR1cm4gdHJ1ZTt9LGdldEV2ZW50c09yZ2FuaXplZEJ5QmFzZVR5cGU6ZnVuY3Rpb24ob3B0X3BydW5lRW1wdHkpe3ZhciBldmVudHM9e307dmFyIGFsbFR5cGVJbmZvcz1FdmVudFJlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTthbGxUeXBlSW5mb3MuZm9yRWFjaChmdW5jdGlvbihldmVudFR5cGVJbmZvKXtldmVudHNbZXZlbnRUeXBlSW5mby5tZXRhZGF0YS5uYW1lXT1uZXcgU2VsZWN0aW9uKCk7aWYodGhpcy5zdW5idXJzdF96b29tX2xldmVsIT09dW5kZWZpbmVkKQotZXZlbnRzW2V2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV0uc3VuYnVyc3Rfem9vbV9sZXZlbD10aGlzLnN1bmJ1cnN0X3pvb21fbGV2ZWw7fSx0aGlzKTt0aGlzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQsaSl7dmFyIG1heEV2ZW50SW5kZXg9LTE7dmFyIG1heEV2ZW50VHlwZUluZm89dW5kZWZpbmVkO2FsbFR5cGVJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50VHlwZUluZm8sZXZlbnRJbmRleCl7aWYoIShldmVudCBpbnN0YW5jZW9mIGV2ZW50VHlwZUluZm8uY29uc3RydWN0b3IpKQotcmV0dXJuO2lmKGV2ZW50SW5kZXg+bWF4RXZlbnRJbmRleCl7bWF4RXZlbnRJbmRleD1ldmVudEluZGV4O21heEV2ZW50VHlwZUluZm89ZXZlbnRUeXBlSW5mbzt9fSk7aWYobWF4RXZlbnRJbmRleD09LTEpe2NvbnNvbGUubG9nKGV2ZW50KTt0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBldmVudCB0eXBlJyk7fQotZXZlbnRzW21heEV2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV0ucHVzaChldmVudCk7fSk7aWYob3B0X3BydW5lRW1wdHkpe3ZhciBwcnVuZWRFdmVudHM9e307Zm9yKHZhciBldmVudFR5cGUgaW4gZXZlbnRzKXtpZihldmVudHNbZXZlbnRUeXBlXS5sZW5ndGg+MCkKLXBydW5lZEV2ZW50c1tldmVudFR5cGVdPWV2ZW50c1tldmVudFR5cGVdO30KLXJldHVybiBwcnVuZWRFdmVudHM7fWVsc2V7cmV0dXJuIGV2ZW50czt9fSxnZXRFdmVudHNPcmdhbml6ZWRCeVRpdGxlOmZ1bmN0aW9uKCl7dmFyIGV2ZW50c0J5VGl0bGU9e307Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspe3ZhciBldmVudD10aGlzW2ldO2lmKGV2ZW50LnRpdGxlPT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdBbiBldmVudCBkaWRuXCd0IGhhdmUgYSB0aXRsZSEnKTtpZihldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXT09dW5kZWZpbmVkKXtldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXT1bXTt9Ci1ldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXS5wdXNoKGV2ZW50KTt9Ci1yZXR1cm4gZXZlbnRzQnlUaXRsZTt9LGVudW1FdmVudHNPZlR5cGU6ZnVuY3Rpb24odHlwZSxmdW5jKXtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoXztpKyspCi1pZih0aGlzW2ldaW5zdGFuY2VvZiB0eXBlKQotZnVuYyh0aGlzW2ldKTt9LGdldCB1c2VyRnJpZW5kbHlOYW1lKCl7aWYodGhpcy5sZW5ndGg9PT0wKXt0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IHNlbGVjdGlvbicpO30KLXZhciBldmVudHNCeUJhc2VUeXBlPXRoaXMuZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZSh0cnVlKTt2YXIgZXZlbnRUeXBlTmFtZT10ci5iLmRpY3Rpb25hcnlLZXlzKGV2ZW50c0J5QmFzZVR5cGUpWzBdO2lmKHRoaXMubGVuZ3RoPT09MSl7dmFyIHRtcD1FdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVNpbmd1bGFyTmFtZShldmVudFR5cGVOYW1lKTtyZXR1cm4gdGhpc1swXS51c2VyRnJpZW5kbHlOYW1lO30KLXZhciBudW1FdmVudFR5cGVzPXRyLmIuZGljdGlvbmFyeUxlbmd0aChldmVudHNCeUJhc2VUeXBlKTtpZihudW1FdmVudFR5cGVzIT09MSl7cmV0dXJuIHRoaXMubGVuZ3RoKycgZXZlbnRzIG9mIHZhcmlvdXMgdHlwZXMnO30KLXZhciB0bXA9RXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlQbHVyYWxOYW1lKGV2ZW50VHlwZU5hbWUpO3JldHVybiB0aGlzLmxlbmd0aCsnICcrdG1wO30sZ2V0U2hpZnRlZFNlbGVjdGlvbjpmdW5jdGlvbih2aWV3cG9ydCxvZmZzZXQpe3ZhciBuZXdTZWxlY3Rpb249bmV3IFNlbGVjdGlvbigpO2Zvcih2YXIgaT0wO2k8dGhpcy5sZW5ndGhfO2krKyl7dmFyIGV2ZW50PXRoaXNbaV07aWYoZXZlbnQgaW5zdGFuY2VvZiB0ci5tb2RlbC5GbG93RXZlbnQpe2lmKG9mZnNldD4wKXtuZXdTZWxlY3Rpb24ucHVzaChldmVudC5lbmRTbGljZSk7fWVsc2UgaWYob2Zmc2V0PDApe25ld1NlbGVjdGlvbi5wdXNoKGV2ZW50LnN0YXJ0U2xpY2UpO31lbHNle30KLWNvbnRpbnVlO30KLXZhciB0cmFjaz12aWV3cG9ydC50cmFja0ZvckV2ZW50KGV2ZW50KTt0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbihldmVudCxvZmZzZXQsbmV3U2VsZWN0aW9uKTt9Ci1pZihuZXdTZWxlY3Rpb24ubGVuZ3RoPT0wKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gbmV3U2VsZWN0aW9uO30sZm9yRWFjaDpmdW5jdGlvbihmbixvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCi1mbi5jYWxsKG9wdF90aGlzLHRoaXNbaV0saSk7fSxtYXA6ZnVuY3Rpb24oZm4sb3B0X3RoaXMpe3ZhciByZXM9W107Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCi1yZXMucHVzaChmbi5jYWxsKG9wdF90aGlzLHRoaXNbaV0saSkpO3JldHVybiByZXM7fSxldmVyeTpmdW5jdGlvbihmbixvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCi1pZighZm4uY2FsbChvcHRfdGhpcyx0aGlzW2ldLGkpKQotcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlO30sc29tZTpmdW5jdGlvbihmbixvcHRfdGhpcyl7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspCi1pZihmbi5jYWxsKG9wdF90aGlzLHRoaXNbaV0saSkpCi1yZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fX07cmV0dXJue1NlbGVjdGlvbjpTZWxlY3Rpb24sUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50OlJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudH07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1zdWItdmlldycse3NldCB0YWJMYWJlbChsYWJlbCl7cmV0dXJuIHRoaXMuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLGxhYmVsKTt9LGdldCB0YWJMYWJlbCgpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgndGFiLWxhYmVsJyk7fSxnZXQgcmVxdWlyZXNUYWxsVmlldygpe3JldHVybiBmYWxzZTt9LGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKXtyZXR1cm4gdW5kZWZpbmVkO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkIScpO30sZ2V0IHNlbGVjdGlvbigpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkIScpO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gX2l0ZXJhdGVFbGVtZW50RGVlcGx5SW1wbChlbGVtZW50LGNiLHRoaXNBcmcsaW5jbHVkZUVsZW1lbnQpe2lmKGluY2x1ZGVFbGVtZW50KXtpZihjYi5jYWxsKHRoaXNBcmcsZWxlbWVudCkpCi1yZXR1cm4gdHJ1ZTt9Ci1pZihlbGVtZW50LnNoYWRvd1Jvb3Qpe2lmKF9pdGVyYXRlRWxlbWVudERlZXBseUltcGwoZWxlbWVudC5zaGFkb3dSb290LGNiLHRoaXNBcmcsZmFsc2UpKQotcmV0dXJuIHRydWU7fQotZm9yKHZhciBpPTA7aTxlbGVtZW50LmNoaWxkcmVuLmxlbmd0aDtpKyspe2lmKF9pdGVyYXRlRWxlbWVudERlZXBseUltcGwoZWxlbWVudC5jaGlsZHJlbltpXSxjYix0aGlzQXJnLHRydWUpKQotcmV0dXJuIHRydWU7fX0KLWZ1bmN0aW9uIGl0ZXJhdGVFbGVtZW50RGVlcGx5KGVsZW1lbnQsY2IsdGhpc0FyZyl7X2l0ZXJhdGVFbGVtZW50RGVlcGx5SW1wbChlbGVtZW50LGNiLHRoaXNBcmcsZmFsc2UpO30KLWZ1bmN0aW9uIGZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlKGVsZW1lbnQscHJlZGljYXRlKXt2YXIgZm91bmRFbGVtZW50PXVuZGVmaW5lZDtmdW5jdGlvbiBtYXRjaGVzKGVsZW1lbnQpe3ZhciBtYXRjaD1wcmVkaWNhdGUoZWxlbWVudCk7aWYoIW1hdGNoKQotcmV0dXJuIGZhbHNlO2ZvdW5kRWxlbWVudD1lbGVtZW50O3JldHVybiB0cnVlO30KLWl0ZXJhdGVFbGVtZW50RGVlcGx5KGVsZW1lbnQsbWF0Y2hlcyk7cmV0dXJuIGZvdW5kRWxlbWVudDt9Ci1mdW5jdGlvbiBmaW5kRGVlcEVsZW1lbnRzTWF0Y2hpbmdQcmVkaWNhdGUoZWxlbWVudCxwcmVkaWNhdGUpe3ZhciBmb3VuZEVsZW1lbnRzPVtdO2Z1bmN0aW9uIG1hdGNoZXMoZWxlbWVudCl7dmFyIG1hdGNoPXByZWRpY2F0ZShlbGVtZW50KTtpZihtYXRjaCl7Zm91bmRFbGVtZW50cy5wdXNoKGVsZW1lbnQpO30KLXJldHVybiBmYWxzZTt9Ci1pdGVyYXRlRWxlbWVudERlZXBseShlbGVtZW50LG1hdGNoZXMpO3JldHVybiBmb3VuZEVsZW1lbnRzO30KLWZ1bmN0aW9uIGZpbmREZWVwRWxlbWVudE1hdGNoaW5nKGVsZW1lbnQsc2VsZWN0b3Ipe3JldHVybiBmaW5kRGVlcEVsZW1lbnRNYXRjaGluZ1ByZWRpY2F0ZShlbGVtZW50LGZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiBlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpO30pO30KLWZ1bmN0aW9uIGZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhlbGVtZW50LHNlbGVjdG9yKXtyZXR1cm4gZmluZERlZXBFbGVtZW50c01hdGNoaW5nUHJlZGljYXRlKGVsZW1lbnQsZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuIGVsZW1lbnQubWF0Y2hlcyhzZWxlY3Rvcik7fSk7fQotZnVuY3Rpb24gZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KGVsZW1lbnQscmUpe3JldHVybiBmaW5kRGVlcEVsZW1lbnRNYXRjaGluZ1ByZWRpY2F0ZShlbGVtZW50LGZ1bmN0aW9uKGVsZW1lbnQpe2lmKGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIT09MCkKLXJldHVybiBmYWxzZTtyZXR1cm4gcmUudGVzdChlbGVtZW50LnRleHRDb250ZW50KTt9KTt9Ci1yZXR1cm57aXRlcmF0ZUVsZW1lbnREZWVwbHk6aXRlcmF0ZUVsZW1lbnREZWVwbHksZmluZERlZXBFbGVtZW50TWF0Y2hpbmc6ZmluZERlZXBFbGVtZW50TWF0Y2hpbmcsZmluZERlZXBFbGVtZW50c01hdGNoaW5nOmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyxmaW5kRGVlcEVsZW1lbnRNYXRjaGluZ1ByZWRpY2F0ZTpmaW5kRGVlcEVsZW1lbnRNYXRjaGluZ1ByZWRpY2F0ZSxmaW5kRGVlcEVsZW1lbnRzTWF0Y2hpbmdQcmVkaWNhdGU6ZmluZERlZXBFbGVtZW50c01hdGNoaW5nUHJlZGljYXRlLGZpbmREZWVwRWxlbWVudFdpdGhUZXh0Q29udGVudDpmaW5kRGVlcEVsZW1lbnRXaXRoVGV4dENvbnRlbnR9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51bml0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBUaW1lRHVyYXRpb24oZHVyYXRpb24pe3RoaXMuZHVyYXRpb249ZHVyYXRpb247fTtUaW1lRHVyYXRpb24ucHJvdG90eXBlPXt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmR1cmF0aW9uLnRvRml4ZWQoMykrJyBtcyc7fX07cmV0dXJue1RpbWVEdXJhdGlvbjpUaW1lRHVyYXRpb259O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51bml0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBjcmVhdGVUaW1lU3BhbihkdXJhdGlvbil7aWYoZHVyYXRpb249PT11bmRlZmluZWQpCi1yZXR1cm4nJzt2YXIgc3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7c3Bhbi5kdXJhdGlvbj1kdXJhdGlvbjtyZXR1cm4gc3Bhbjt9Ci10ci5iLnVuaXRzLlRpbWUuYWRkRXZlbnRMaXN0ZW5lcignZGlzcGxheS11bml0LWNoYW5nZWQnLGZ1bmN0aW9uKGUpe3RyLmIuZmluZERlZXBFbGVtZW50c01hdGNoaW5nKGRvY3VtZW50LmJvZHksJ3RyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKXtlbC51cGRhdGVDb250ZW50XygpO30pO30pO3JldHVybntjcmVhdGVUaW1lU3BhbjpjcmVhdGVUaW1lU3Bhbn07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4nLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMud2FybmluZ189dW5kZWZpbmVkO3RoaXMuZHVyYXRpb25fPXVuZGVmaW5lZDt9LGdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLmR1cmF0aW9uXzt9LHNldCBkdXJhdGlvbihkdXJhdGlvbil7aWYoZHVyYXRpb24gaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbikKLXRoaXMuZHVyYXRpb25fPWR1cmF0aW9uLmR1cmF0aW9uO2Vsc2UKLXRoaXMuZHVyYXRpb25fPWR1cmF0aW9uO3RoaXMudXBkYXRlQ29udGVudF8oKTt9LHVwZGF0ZUNvbnRlbnRfOmZ1bmN0aW9uKCl7dmFyIGNvbnRlbnQ9dHIuYi51bml0cy5UaW1lLmN1cnJlbnREaXNwbGF5VW5pdC5mb3JtYXQodGhpcy5kdXJhdGlvbl8pO3RoaXMuJC5jb250ZW50LnRleHRDb250ZW50PWNvbnRlbnQ7fSxnZXQgd2FybmluZygpe3JldHVybiB0aGlzLndhcm5pbmdfO30sc2V0IHdhcm5pbmcod2FybmluZyl7dGhpcy53YXJuaW5nXz13YXJuaW5nO3ZhciB3YXJuaW5nRWw9dGhpcy4kLndhcm5pbmc7aWYodGhpcy53YXJuaW5nXyl7d2FybmluZ0VsLnRpdGxlPXdhcm5pbmc7d2FybmluZ0VsLnN0eWxlLmRpc3BsYXk9Jyc7fWVsc2V7d2FybmluZ0VsLnRpdGxlPScnO3dhcm5pbmdFbC5zdHlsZS5kaXNwbGF5PSdub25lJzt9fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51bml0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBUaW1lU3RhbXAodGltZXN0YW1wKXt0aGlzLnRpbWVzdGFtcD10aW1lc3RhbXA7fTtUaW1lU3RhbXAucHJvdG90eXBlPXt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRpbWVzdGFtcC50b0ZpeGVkKDQpKycgbXMnO319O3JldHVybntUaW1lU3RhbXA6VGltZVN0YW1wfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gY3JlYXRlVGltZVN0YW1wU3Bhbih0aW1lc3RhbXApe2lmKHRpbWVzdGFtcD09PXVuZGVmaW5lZCkKLXJldHVybicnO3ZhciBzcGFuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLXN0YW1wLXNwYW4nKTtzcGFuLnRpbWVzdGFtcD10aW1lc3RhbXA7cmV0dXJuIHNwYW47fQotdHIuYi51bml0cy5UaW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2Rpc3BsYXktdW5pdC1jaGFuZ2VkJyxmdW5jdGlvbihlKXt0ci5iLmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhkb2N1bWVudC5ib2R5LCd0ci1iLXUtdGltZS1zdGFtcC1zcGFuJykuZm9yRWFjaChmdW5jdGlvbihlbCl7ZWwudXBkYXRlQ29udGVudF8oKTt9KTt9KTtyZXR1cm57Y3JlYXRlVGltZVN0YW1wU3BhbjpjcmVhdGVUaW1lU3RhbXBTcGFufTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYi11LXRpbWUtc3RhbXAtc3Bhbicse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy50aW1lc3RhbXBfPXVuZGVmaW5lZDt9LGdldCB0aW1lc3RhbXAoKXtyZXR1cm4gdGhpcy50aW1lc3RhbXBfO30sc2V0IHRpbWVzdGFtcCh0aW1lc3RhbXApe2lmKHRpbWVzdGFtcCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuVGltZVN0YW1wKQotdGhpcy50aW1lc3RhbXBfPXRpbWVzdGFtcC50aW1lc3RhbXA7ZWxzZQotdGhpcy50aW1lc3RhbXBfPXRpbWVzdGFtcDt0aGlzLnVwZGF0ZUNvbnRlbnRfKCk7fSx1cGRhdGVDb250ZW50XzpmdW5jdGlvbigpe3ZhciBjb250ZW50PXRyLmIudW5pdHMuVGltZS5jdXJyZW50RGlzcGxheVVuaXQuZm9ybWF0KHRoaXMudGltZXN0YW1wXyk7dGhpcy5zaGFkb3dSb290LnRleHRDb250ZW50PWNvbnRlbnQ7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtYW5hbHlzaXMtbGluaycse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsdGhpcy5vbkNsaWNrZWRfLmJpbmQodGhpcykpO3RoaXMuc2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLnNlbGVjdGlvbl89c2VsZWN0aW9uO3RoaXMudGV4dENvbnRlbnQ9c2VsZWN0aW9uLnVzZXJGcmllbmRseU5hbWU7fSxzZXRTZWxlY3Rpb25BbmRDb250ZW50OmZ1bmN0aW9uKHNlbGVjdGlvbixvcHRfdGV4dENvbnRlbnQpe3RoaXMuc2VsZWN0aW9uXz1zZWxlY3Rpb247aWYob3B0X3RleHRDb250ZW50KQotdGhpcy50ZXh0Q29udGVudD1vcHRfdGV4dENvbnRlbnQ7fSxvbkNsaWNrZWRfOmZ1bmN0aW9uKCl7aWYoIXRoaXMuc2VsZWN0aW9uXykKLXJldHVybjt2YXIgZXZlbnQ9bmV3IHRyLmMuUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7aWYodHlwZW9mIHRoaXMuc2VsZWN0aW9uXz09PSdmdW5jdGlvbicpCi1ldmVudC5zZWxlY3Rpb249dGhpcy5zZWxlY3Rpb25fKCk7ZWxzZQotZXZlbnQuc2VsZWN0aW9uPXRoaXMuc2VsZWN0aW9uXzt0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gU2l6ZUluQnl0ZXMobnVtQnl0ZXMpe3RoaXMubnVtQnl0ZXM9bnVtQnl0ZXM7fTtTaXplSW5CeXRlcy5wcm90b3R5cGU9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubnVtQnl0ZXMudG9GaXhlZCgwKSsnIGJ5dGVzJzt9fTtyZXR1cm57U2l6ZUluQnl0ZXM6U2l6ZUluQnl0ZXN9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1iLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD1TdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpO3RoaXMubnVtQnl0ZXNfPXVuZGVmaW5lZDt9LGdldCBudW1CeXRlcygpe3JldHVybiB0aGlzLm51bUJ5dGVzXzt9LHNldCBudW1CeXRlcyhudW1CeXRlc09yU2l6ZUluQnl0ZXMpe2lmKG51bUJ5dGVzT3JTaXplSW5CeXRlcyBpbnN0YW5jZW9mIHRyLmIudW5pdHMuU2l6ZUluQnl0ZXMpCi10aGlzLm51bUJ5dGVzXz1udW1CeXRlc09yU2l6ZUluQnl0ZXMubnVtQnl0ZXM7ZWxzZQotdGhpcy5udW1CeXRlc189bnVtQnl0ZXNPclNpemVJbkJ5dGVzO3ZhciBudW1CeXRlcz10aGlzLm51bUJ5dGVzO3ZhciBzaWduUHJlZml4PScnO2lmKG51bUJ5dGVzPDApe3NpZ25QcmVmaXg9Jy0nO251bUJ5dGVzPS1udW1CeXRlczt9Ci12YXIgdW5pdFByZWZpeGVzPVsnJywnS2knLCdNaScsJ0dpJywnVGknXTt2YXIgaT0wO3doaWxlKG51bUJ5dGVzPj0xMDI0JiZpPHVuaXRQcmVmaXhlcy5sZW5ndGgtMSl7bnVtQnl0ZXMvPTEwMjQ7aSsrO30KLXZhciBzaXplU3RyaW5nPXNpZ25QcmVmaXgrbnVtQnl0ZXMudG9GaXhlZCgxKSsnICcrdW5pdFByZWZpeGVzW2ldKydCJzt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD1zaXplU3RyaW5nO30sZ2V0IHN0cmluZ0NvbnRlbnQoKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ7fX0pOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXt2YXIgUklHSFRfQVJST1c9U3RyaW5nLmZyb21DaGFyQ29kZSgweDI1YjYpO3ZhciBVTlNPUlRFRF9BUlJPVz1TdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCRik7dmFyIEFTQ0VORElOR19BUlJPVz1TdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCRSk7dmFyIERFU0NFTkRJTkdfQVJST1c9U3RyaW5nLmZyb21DaGFyQ29kZSgweDI1QjQpO3ZhciBCQVNJQ19JTkRFTlRBVElPTj04O1BvbHltZXIoJ3RyLWItdWktdGFibGUnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5zdXBwb3J0c1NlbGVjdGlvbl89ZmFsc2U7dGhpcy5jZWxsU2VsZWN0aW9uTW9kZV89ZmFsc2U7dGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb189dW5kZWZpbmVkO3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF89dW5kZWZpbmVkO3RoaXMudGFibGVDb2x1bW5zXz1bXTt0aGlzLnRhYmxlUm93c189W107dGhpcy50YWJsZVJvd3NJbmZvXz1bXTt0aGlzLnRhYmxlRm9vdGVyUm93c189W107dGhpcy5zb3J0Q29sdW1uSW5kZXhfPXVuZGVmaW5lZDt0aGlzLnNvcnREZXNjZW5kaW5nXz1mYWxzZTt0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc189W107dGhpcy5oZWFkZXJDZWxsc189W107dGhpcy5zaG93SGVhZGVyXz10cnVlO3RoaXMuZW1wdHlWYWx1ZV89dW5kZWZpbmVkO3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV89J3N1YlJvd3MnO30scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJyx0aGlzLm9uS2V5RG93bl8uYmluZCh0aGlzKSx0cnVlKTt9LGNsZWFyOmZ1bmN0aW9uKCl7dGhpcy5zdXBwb3J0c1NlbGVjdGlvbl89ZmFsc2U7dGhpcy5jZWxsU2VsZWN0aW9uTW9kZV89ZmFsc2U7dGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb189dW5kZWZpbmVkO3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF89dW5kZWZpbmVkO3RoaXMudGV4dENvbnRlbnQ9Jyc7dGhpcy50YWJsZUNvbHVtbnNfPVtdO3RoaXMudGFibGVSb3dzXz1bXTt0aGlzLnRhYmxlUm93c0luZm9fPW5ldyBXZWFrTWFwKCk7dGhpcy50YWJsZUZvb3RlclJvd3NfPVtdO3RoaXMudGFibGVGb290ZXJSb3dzSW5mb189bmV3IFdlYWtNYXAoKTt0aGlzLnNvcnRDb2x1bW5JbmRleF89dW5kZWZpbmVkO3RoaXMuc29ydERlc2NlbmRpbmdfPWZhbHNlO3RoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXz1bXTt0aGlzLmhlYWRlckNlbGxzXz1bXTt0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfPSdzdWJSb3dzJzt9LGdldCBzaG93SGVhZGVyKCl7cmV0dXJuIHRoaXMuc2hvd0hlYWRlcl87fSxzZXQgc2hvd0hlYWRlcihzaG93SGVhZGVyKXt0aGlzLnNob3dIZWFkZXJfPXNob3dIZWFkZXI7dGhpcy5zY2hlZHVsZVJlYnVpbGRIZWFkZXJzXygpO30sc2V0IHN1YlJvd3NQcm9wZXJ0eU5hbWUobmFtZSl7dGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXz1uYW1lO30sZ2V0IGVtcHR5VmFsdWUoKXtyZXR1cm4gdGhpcy5lbXB0eVZhbHVlXzt9LHNldCBlbXB0eVZhbHVlKGVtcHR5VmFsdWUpe3ZhciBwcmV2aW91c0VtcHR5VmFsdWU9dGhpcy5lbXB0eVZhbHVlXzt0aGlzLmVtcHR5VmFsdWVfPWVtcHR5VmFsdWU7aWYodGhpcy50YWJsZVJvd3NfLmxlbmd0aD09PTAmJmVtcHR5VmFsdWUhPT1wcmV2aW91c0VtcHR5VmFsdWUpCi10aGlzLnNjaGVkdWxlUmVidWlsZEJvZHlfKCk7fSxzZXQgdGFibGVDb2x1bW5zKGNvbHVtbnMpe3ZhciBjb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnM9W107Zm9yKHZhciBpPTA7aTxjb2x1bW5zLmxlbmd0aDtpKyspe2lmKGNvbHVtbnNbaV0uc2hvd0V4cGFuZEJ1dHRvbnMpCi1jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnMucHVzaChpKTt9Ci1pZihjb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnMubGVuZ3RoPT09MCl7Y29sdW1uc1dpdGhFeHBhbmRCdXR0b25zPVswXTt9Ci1mb3IodmFyIGk9MDtpPGNvbHVtbnMubGVuZ3RoO2krKyl7dmFyIGNvbEluZm89Y29sdW1uc1tpXTtpZihjb2xJbmZvLndpZHRoPT09dW5kZWZpbmVkKQotY29udGludWU7dmFyIGhhc0V4cGFuZEJ1dHRvbj1jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnMuaW5kZXhPZihpKSE9PS0xO3ZhciB3PWNvbEluZm8ud2lkdGg7aWYodyl7aWYoL1xkK3B4Ly50ZXN0KHcpKXtjb250aW51ZTt9ZWxzZSBpZigvXGQrJS8udGVzdCh3KSl7aWYoaGFzRXhwYW5kQnV0dG9uKXt0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbnMgY2Fubm90IGJlICUtc2l6ZWQgYW5kIGhvc3QgJysnIGFuIGV4cGFuZCBidXR0b24nKTt9fWVsc2V7dGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgd2lkdGggc3RyaW5nJyk7fX19Ci10aGlzLnRhYmxlQ29sdW1uc189Y29sdW1uczt0aGlzLmhlYWRlckNlbGxzXz1bXTt0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc189Y29sdW1uc1dpdGhFeHBhbmRCdXR0b25zO3RoaXMuc29ydENvbHVtbkluZGV4PXVuZGVmaW5lZDt0aGlzLnNjaGVkdWxlUmVidWlsZEhlYWRlcnNfKCk7dGhpcy50YWJsZVJvd3M9dGhpcy50YWJsZVJvd3NfO30sZ2V0IHRhYmxlQ29sdW1ucygpe3JldHVybiB0aGlzLnRhYmxlQ29sdW1uc187fSxzZXQgdGFibGVSb3dzKHJvd3Mpe3RoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fPXVuZGVmaW5lZDt0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfPXVuZGVmaW5lZDt0aGlzLm1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfKCk7dGhpcy50YWJsZVJvd3NfPXJvd3M7dGhpcy50YWJsZVJvd3NJbmZvXz1uZXcgV2Vha01hcCgpO3RoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTt9LGdldCB0YWJsZVJvd3MoKXtyZXR1cm4gdGhpcy50YWJsZVJvd3NfO30sc2V0IGZvb3RlclJvd3Mocm93cyl7dGhpcy50YWJsZUZvb3RlclJvd3NfPXJvd3M7dGhpcy50YWJsZUZvb3RlclJvd3NJbmZvXz1uZXcgV2Vha01hcCgpO3RoaXMuc2NoZWR1bGVSZWJ1aWxkRm9vdGVyXygpO30sZ2V0IGZvb3RlclJvd3MoKXtyZXR1cm4gdGhpcy50YWJsZUZvb3RlclJvd3NfO30sc2V0IHNvcnRDb2x1bW5JbmRleChudW1iZXIpe2lmKG51bWJlcj09PXVuZGVmaW5lZCl7dGhpcy5zb3J0Q29sdW1uSW5kZXhfPXVuZGVmaW5lZDt0aGlzLnVwZGF0ZUhlYWRlckFycm93c18oKTtyZXR1cm47fQotaWYodGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDw9bnVtYmVyKQotdGhyb3cgbmV3IEVycm9yKCdDb2x1bW4gbnVtYmVyICcrbnVtYmVyKycgaXMgb3V0IG9mIGJvdW5kcy4nKTtpZighdGhpcy50YWJsZUNvbHVtbnNfW251bWJlcl0uY21wKQotdGhyb3cgbmV3IEVycm9yKCdDb2x1bW4gJytudW1iZXIrJyBkb2VzIG5vdCBoYXZlIGEgY29tcGFyYXRvci4nKTt0aGlzLnNvcnRDb2x1bW5JbmRleF89bnVtYmVyO3RoaXMudXBkYXRlSGVhZGVyQXJyb3dzXygpO3RoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTt9LGdldCBzb3J0Q29sdW1uSW5kZXgoKXtyZXR1cm4gdGhpcy5zb3J0Q29sdW1uSW5kZXhfO30sc2V0IHNvcnREZXNjZW5kaW5nKHZhbHVlKXt2YXIgbmV3VmFsdWU9ISF2YWx1ZTtpZihuZXdWYWx1ZSE9PXRoaXMuc29ydERlc2NlbmRpbmdfKXt0aGlzLnNvcnREZXNjZW5kaW5nXz1uZXdWYWx1ZTt0aGlzLnVwZGF0ZUhlYWRlckFycm93c18oKTt0aGlzLnNjaGVkdWxlUmVidWlsZEJvZHlfKCk7fX0sZ2V0IHNvcnREZXNjZW5kaW5nKCl7cmV0dXJuIHRoaXMuc29ydERlc2NlbmRpbmdfO30sdXBkYXRlSGVhZGVyQXJyb3dzXzpmdW5jdGlvbigpe2Zvcih2YXIgaT0wO2k8dGhpcy5oZWFkZXJDZWxsc18ubGVuZ3RoO2krKyl7aWYoIXRoaXMudGFibGVDb2x1bW5zX1tpXS5jbXApe3RoaXMuaGVhZGVyQ2VsbHNfW2ldLnNpZGVDb250ZW50PScnO2NvbnRpbnVlO30KLWlmKGkhPT10aGlzLnNvcnRDb2x1bW5JbmRleF8pe3RoaXMuaGVhZGVyQ2VsbHNfW2ldLnNpZGVDb250ZW50PVVOU09SVEVEX0FSUk9XO2NvbnRpbnVlO30KLXRoaXMuaGVhZGVyQ2VsbHNfW2ldLnNpZGVDb250ZW50PXRoaXMuc29ydERlc2NlbmRpbmdfP0RFU0NFTkRJTkdfQVJST1c6QVNDRU5ESU5HX0FSUk9XO319LHNvcnRSb3dzXzpmdW5jdGlvbihyb3dzKXtyb3dzLnNvcnQoZnVuY3Rpb24ocm93QSxyb3dCKXtpZih0aGlzLnNvcnREZXNjZW5kaW5nXykKLXJldHVybiB0aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAocm93Qi51c2VyUm93LHJvd0EudXNlclJvdyk7cmV0dXJuIHRoaXMudGFibGVDb2x1bW5zX1t0aGlzLnNvcnRDb2x1bW5JbmRleF9dLmNtcChyb3dBLnVzZXJSb3cscm93Qi51c2VyUm93KTt9LmJpbmQodGhpcykpO2Zvcih2YXIgaT0wO2k8cm93cy5sZW5ndGg7aSsrKXtpZihyb3dzW2ldLmlzRXhwYW5kZWQpCi10aGlzLnNvcnRSb3dzXyhyb3dzW2ldW3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dKTt9fSxnZW5lcmF0ZUhlYWRlckNvbHVtbnNfOmZ1bmN0aW9uKCl7dGhpcy5oZWFkZXJDZWxsc189W107dGhpcy4kLmhlYWQudGV4dENvbnRlbnQ9Jyc7aWYoIXRoaXMuc2hvd0hlYWRlcl8pCi1yZXR1cm47dmFyIHRyPXRoaXMuYXBwZW5kTmV3RWxlbWVudF8odGhpcy4kLmhlYWQsJ3RyJyk7Zm9yKHZhciBpPTA7aTx0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoO2krKyl7dmFyIHRkPXRoaXMuYXBwZW5kTmV3RWxlbWVudF8odHIsJ3RkJyk7dmFyIGhlYWRlckNlbGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZS1oZWFkZXItY2VsbCcpO2lmKHRoaXMuc2hvd0hlYWRlcikKLWhlYWRlckNlbGwuY2VsbFRpdGxlPXRoaXMudGFibGVDb2x1bW5zX1tpXS50aXRsZTtlbHNlCi1oZWFkZXJDZWxsLmNlbGxUaXRsZT0nJztpZih0aGlzLnRhYmxlQ29sdW1uc19baV0uY21wKXt0ZC5jbGFzc0xpc3QuYWRkKCdzZW5zaXRpdmUnKTtoZWFkZXJDZWxsLnRhcENhbGxiYWNrPXRoaXMuY3JlYXRlU29ydENhbGxiYWNrXyhpKTtpZih0aGlzLnNvcnRDb2x1bW5JbmRleF89PT1pKQotaGVhZGVyQ2VsbC5zaWRlQ29udGVudD10aGlzLnNvcnREZXNjZW5kaW5nXz9ERVNDRU5ESU5HX0FSUk9XOkFTQ0VORElOR19BUlJPVztlbHNlCi1oZWFkZXJDZWxsLnNpZGVDb250ZW50PVVOU09SVEVEX0FSUk9XO30KLXRkLmFwcGVuZENoaWxkKGhlYWRlckNlbGwpO3RoaXMuaGVhZGVyQ2VsbHNfLnB1c2goaGVhZGVyQ2VsbCk7fX0sYXBwbHlTaXplc186ZnVuY3Rpb24oKXtpZih0aGlzLnRhYmxlUm93c18ubGVuZ3RoPT09MCYmIXRoaXMuc2hvd0hlYWRlcikKLXJldHVybjt2YXIgcm93VG9SZW1vdmVTaXppbmc7dmFyIHJvd1RvU2l6ZTtpZih0aGlzLnNob3dIZWFkZXIpe3Jvd1RvU2l6ZT10aGlzLiQuaGVhZC5jaGlsZHJlblswXTtyb3dUb1JlbW92ZVNpemluZz10aGlzLiQuYm9keS5jaGlsZHJlblswXTt9ZWxzZXtyb3dUb1NpemU9dGhpcy4kLmJvZHkuY2hpbGRyZW5bMF07cm93VG9SZW1vdmVTaXppbmc9dGhpcy4kLmhlYWQuY2hpbGRyZW5bMF07fQotZm9yKHZhciBpPTA7aTx0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoO2krKyl7aWYocm93VG9SZW1vdmVTaXppbmcmJnJvd1RvUmVtb3ZlU2l6aW5nLmNoaWxkcmVuW2ldKXt2YXIgdGRUb1JlbW92ZVNpemluZz1yb3dUb1JlbW92ZVNpemluZy5jaGlsZHJlbltpXTt0ZFRvUmVtb3ZlU2l6aW5nLnN0eWxlLm1pbldpZHRoPScnO3RkVG9SZW1vdmVTaXppbmcuc3R5bGUud2lkdGg9Jyc7fQotdmFyIHRkPXJvd1RvU2l6ZS5jaGlsZHJlbltpXTt2YXIgZGVsdGE7aWYodGhpcy5jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnNfLmluZGV4T2YoaSkhPT0tMSl7dGQuc3R5bGUucGFkZGluZ0xlZnQ9QkFTSUNfSU5ERU5UQVRJT04rJ3B4JztkZWx0YT1CQVNJQ19JTkRFTlRBVElPTisncHgnO31lbHNle2RlbHRhPXVuZGVmaW5lZDt9Ci1mdW5jdGlvbiBjYWxjKGJhc2UsZGVsdGEpe2lmKGRlbHRhKQotcmV0dXJuJ2NhbGMoJytiYXNlKycgLSAnK2RlbHRhKycpJztlbHNlCi1yZXR1cm4gYmFzZTt9Ci12YXIgdz10aGlzLnRhYmxlQ29sdW1uc19baV0ud2lkdGg7aWYodyl7aWYoL1xkK3B4Ly50ZXN0KHcpKXt0ZC5zdHlsZS5taW5XaWR0aD1jYWxjKHcsZGVsdGEpO31lbHNlIGlmKC9cZCslLy50ZXN0KHcpKXt0ZC5zdHlsZS53aWR0aD13O31lbHNle3Rocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIHdpZHRoIHN0cmluZzogJyt3KTt9fX19LGNyZWF0ZVNvcnRDYWxsYmFja186ZnVuY3Rpb24oY29sdW1uTnVtYmVyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcHJldmlvdXNJbmRleD10aGlzLnNvcnRDb2x1bW5JbmRleDt0aGlzLnNvcnRDb2x1bW5JbmRleD1jb2x1bW5OdW1iZXI7aWYocHJldmlvdXNJbmRleCE9PWNvbHVtbk51bWJlcikKLXRoaXMuc29ydERlc2NlbmRpbmc9ZmFsc2U7ZWxzZQotdGhpcy5zb3J0RGVzY2VuZGluZz0hdGhpcy5zb3J0RGVzY2VuZGluZzt9LmJpbmQodGhpcyk7fSxnZW5lcmF0ZVRhYmxlUm93Tm9kZXNfOmZ1bmN0aW9uKHRhYmxlU2VjdGlvbix1c2VyUm93cyxyb3dJbmZvTWFwLGluZGVudGF0aW9uLGxhc3RBZGRlZFJvdyxwYXJlbnRSb3dJbmZvKXtpZih0aGlzLnNvcnRDb2x1bW5JbmRleF8hPT11bmRlZmluZWQmJnRhYmxlU2VjdGlvbj09PXRoaXMuJC5ib2R5KXt1c2VyUm93cz11c2VyUm93cy5zbGljZSgpO3VzZXJSb3dzLnNvcnQoZnVuY3Rpb24ocm93QSxyb3dCKXt2YXIgYz10aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAocm93QSxyb3dCKTtpZih0aGlzLnNvcnREZXNjZW5kaW5nXykKLWM9LWM7cmV0dXJuIGM7fS5iaW5kKHRoaXMpKTt9Ci1mb3IodmFyIGk9MDtpPHVzZXJSb3dzLmxlbmd0aDtpKyspe3ZhciB1c2VyUm93PXVzZXJSb3dzW2ldO3ZhciByb3dJbmZvPXRoaXMuZ2V0T3JDcmVhdGVSb3dJbmZvRm9yXyhyb3dJbmZvTWFwLHVzZXJSb3cscGFyZW50Um93SW5mbyk7dmFyIGh0bWxOb2RlPXRoaXMuZ2V0SFRNTE5vZGVGb3JSb3dJbmZvXyh0YWJsZVNlY3Rpb24scm93SW5mbyxyb3dJbmZvTWFwLGluZGVudGF0aW9uKTtpZihsYXN0QWRkZWRSb3c9PT11bmRlZmluZWQpe3RhYmxlU2VjdGlvbi5pbnNlcnRCZWZvcmUoaHRtbE5vZGUsdGFibGVTZWN0aW9uLmZpcnN0Q2hpbGQpO31lbHNle3ZhciBuZXh0U2libGluZ09mTGFzdEFkZGVkPWxhc3RBZGRlZFJvdy5uZXh0U2libGluZzt0YWJsZVNlY3Rpb24uaW5zZXJ0QmVmb3JlKGh0bWxOb2RlLG5leHRTaWJsaW5nT2ZMYXN0QWRkZWQpO30KLXRoaXMudXBkYXRlVGFiSW5kZXhGb3JUYWJsZVJvd05vZGVfKGh0bWxOb2RlKTtsYXN0QWRkZWRSb3c9aHRtbE5vZGU7aWYoIXJvd0luZm8uaXNFeHBhbmRlZCkKLWNvbnRpbnVlO2xhc3RBZGRlZFJvdz10aGlzLmdlbmVyYXRlVGFibGVSb3dOb2Rlc18odGFibGVTZWN0aW9uLHVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10scm93SW5mb01hcCxpbmRlbnRhdGlvbisxLGxhc3RBZGRlZFJvdyxyb3dJbmZvKTt9Ci1yZXR1cm4gbGFzdEFkZGVkUm93O30sZ2V0T3JDcmVhdGVSb3dJbmZvRm9yXzpmdW5jdGlvbihyb3dJbmZvTWFwLHVzZXJSb3cscGFyZW50Um93SW5mbyl7aWYocm93SW5mb01hcC5oYXModXNlclJvdykpCi1yZXR1cm4gcm93SW5mb01hcC5nZXQodXNlclJvdyk7dmFyIHJvd0luZm89e3VzZXJSb3c6dXNlclJvdyxodG1sTm9kZTp1bmRlZmluZWQsaXNFeHBhbmRlZDp1c2VyUm93LmlzRXhwYW5kZWR8fGZhbHNlLHBhcmVudFJvd0luZm86cGFyZW50Um93SW5mb307cm93SW5mb01hcC5zZXQodXNlclJvdyxyb3dJbmZvKTtyZXR1cm4gcm93SW5mbzt9LGdldEhUTUxOb2RlRm9yUm93SW5mb186ZnVuY3Rpb24odGFibGVTZWN0aW9uLHJvd0luZm8scm93SW5mb01hcCxpbmRlbnRhdGlvbil7aWYocm93SW5mby5odG1sTm9kZSkKLXJldHVybiByb3dJbmZvLmh0bWxOb2RlO3ZhciBJTkRFTlRfU1BBQ0U9aW5kZW50YXRpb24qMTY7dmFyIElOREVOVF9TUEFDRV9OT19CVVRUT049aW5kZW50YXRpb24qMTYrQkFTSUNfSU5ERU5UQVRJT047dmFyIHRyPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpO3Jvd0luZm8uaHRtbE5vZGU9dHI7cm93SW5mby5pbmRlbnRhdGlvbj1pbmRlbnRhdGlvbjt0ci5yb3dJbmZvPXJvd0luZm87Zm9yKHZhciBpPTA7aTx0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoOyl7dmFyIHRkPXRoaXMuYXBwZW5kTmV3RWxlbWVudF8odHIsJ3RkJyk7dGQuY29sdW1uSW5kZXg9aTt2YXIgY29sdW1uPXRoaXMudGFibGVDb2x1bW5zX1tpXTt2YXIgdmFsdWU9Y29sdW1uLnZhbHVlKHJvd0luZm8udXNlclJvdyk7dmFyIGNvbFNwYW49Y29sdW1uLmNvbFNwYW4/Y29sdW1uLmNvbFNwYW46MTt0ZC5zdHlsZS5jb2xTcGFuPWNvbFNwYW47aWYoY29sdW1uLnRleHRBbGlnbil7dGQuc3R5bGUudGV4dEFsaWduPWNvbHVtbi50ZXh0QWxpZ247fQotaWYodGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGkpKQotdGQuY2xhc3NMaXN0LmFkZCgnc3VwcG9ydHMtc2VsZWN0aW9uJyk7aWYodGhpcy5jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnNfLmluZGV4T2YoaSkhPS0xKXtpZihyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10mJnJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGg+MCl7dGQuc3R5bGUucGFkZGluZ0xlZnQ9SU5ERU5UX1NQQUNFKydweCc7dmFyIGV4cGFuZEJ1dHRvbj10aGlzLmFwcGVuZE5ld0VsZW1lbnRfKHRkLCdleHBhbmQtYnV0dG9uJyk7ZXhwYW5kQnV0dG9uLnRleHRDb250ZW50PVJJR0hUX0FSUk9XO2lmKHJvd0luZm8uaXNFeHBhbmRlZCkKLWV4cGFuZEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdidXR0b24tZXhwYW5kZWQnKTt9ZWxzZXt0ZC5zdHlsZS5wYWRkaW5nTGVmdD1JTkRFTlRfU1BBQ0VfTk9fQlVUVE9OKydweCc7fX0KLWlmKHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpCi10ZC5hcHBlbmRDaGlsZCh2YWx1ZSk7ZWxzZQotdGQuYXBwZW5kQ2hpbGQodGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHZhbHVlKSk7aSs9Y29sU3Bhbjt9Ci12YXIgbmVlZHNDbGlja0xpc3RlbmVyPWZhbHNlO2lmKHRoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXy5sZW5ndGgpCi1uZWVkc0NsaWNrTGlzdGVuZXI9dHJ1ZTtlbHNlIGlmKHRhYmxlU2VjdGlvbj09dGhpcy4kLmJvZHkpCi1uZWVkc0NsaWNrTGlzdGVuZXI9dHJ1ZTtpZihuZWVkc0NsaWNrTGlzdGVuZXIpe3RyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpO2lmKGUudGFyZ2V0LnRhZ05hbWU9PSdFWFBBTkQtQlVUVE9OJyl7dGhpcy5zZXRFeHBhbmRlZEZvclVzZXJSb3dfKHRhYmxlU2VjdGlvbixyb3dJbmZvTWFwLHJvd0luZm8udXNlclJvdywhcm93SW5mby5pc0V4cGFuZGVkKTtyZXR1cm47fQotZnVuY3Rpb24gZ2V0VEQoY3VyKXtpZihjdXI9PXRyKQotdGhyb3cgbmV3IEVycm9yKCd3b2FoJyk7aWYoY3VyLnBhcmVudEVsZW1lbnQ9PT10cikKLXJldHVybiBjdXI7cmV0dXJuIGdldFREKGN1ci5wYXJlbnRFbGVtZW50KTt9Ci1pZih0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXyl7dmFyIGlzQWxyZWFkeVNlbGVjdGVkPWZhbHNlO3ZhciB0ZFRoYXRXYXNDbGlja2VkPWdldFREKGUudGFyZ2V0KTtpZighdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pe2lzQWxyZWFkeVNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fPT09cm93SW5mbzt9ZWxzZXtpc0FscmVhZHlTZWxlY3RlZD10aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz09PXJvd0luZm87aXNBbHJlYWR5U2VsZWN0ZWQmPSh0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfPT09dGRUaGF0V2FzQ2xpY2tlZC5jb2x1bW5JbmRleCk7fQotaWYoaXNBbHJlYWR5U2VsZWN0ZWQpe2lmKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSYmcm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLmxlbmd0aCl7dGhpcy5zZXRFeHBhbmRlZEZvclVzZXJSb3dfKHRhYmxlU2VjdGlvbixyb3dJbmZvTWFwLHJvd0luZm8udXNlclJvdywhcm93SW5mby5pc0V4cGFuZGVkKTt9fWVsc2V7dGhpcy5kaWRUYWJsZVJvd0luZm9HZXRDbGlja2VkXyhyb3dJbmZvLHRkVGhhdFdhc0NsaWNrZWQuY29sdW1uSW5kZXgpO319ZWxzZXtpZihyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10mJnJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGgpe3RoaXMuc2V0RXhwYW5kZWRGb3JVc2VyUm93Xyh0YWJsZVNlY3Rpb24scm93SW5mb01hcCxyb3dJbmZvLnVzZXJSb3csIXJvd0luZm8uaXNFeHBhbmRlZCk7fX19LmJpbmQodGhpcykpO30KLXJldHVybiByb3dJbmZvLmh0bWxOb2RlO30scmVtb3ZlU3ViTm9kZXNfOmZ1bmN0aW9uKHRhYmxlU2VjdGlvbixyb3dJbmZvLHJvd0luZm9NYXApe2lmKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXT09PXVuZGVmaW5lZCkKLXJldHVybjtmb3IodmFyIGk9MDtpPHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGg7aSsrKXt2YXIgc3ViUm93PXJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXVtpXTt2YXIgc3ViUm93SW5mbz1yb3dJbmZvTWFwLmdldChzdWJSb3cpO2lmKCFzdWJSb3dJbmZvKQotY29udGludWU7dmFyIHN1Yk5vZGU9c3ViUm93SW5mby5odG1sTm9kZTtpZihzdWJOb2RlJiZzdWJOb2RlLnBhcmVudE5vZGU9PT10YWJsZVNlY3Rpb24pe3RhYmxlU2VjdGlvbi5yZW1vdmVDaGlsZChzdWJOb2RlKTt0aGlzLnJlbW92ZVN1Yk5vZGVzXyh0YWJsZVNlY3Rpb24sc3ViUm93SW5mbyxyb3dJbmZvTWFwKTt9fX0sc2NoZWR1bGVSZWJ1aWxkSGVhZGVyc186ZnVuY3Rpb24oKXt0aGlzLmhlYWRlckRpcnR5Xz10cnVlO3RoaXMuc2NoZWR1bGVSZWJ1aWxkXygpO30sc2NoZWR1bGVSZWJ1aWxkQm9keV86ZnVuY3Rpb24oKXt0aGlzLmJvZHlEaXJ0eV89dHJ1ZTt0aGlzLnNjaGVkdWxlUmVidWlsZF8oKTt9LHNjaGVkdWxlUmVidWlsZEZvb3Rlcl86ZnVuY3Rpb24oKXt0aGlzLmZvb3RlckRpcnR5Xz10cnVlO3RoaXMuc2NoZWR1bGVSZWJ1aWxkXygpO30sc2NoZWR1bGVSZWJ1aWxkXzpmdW5jdGlvbigpe2lmKHRoaXMucmVidWlsZFBlbmRpbmdfKQotcmV0dXJuO3RoaXMucmVidWlsZFBlbmRpbmdfPXRydWU7c2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMucmVidWlsZFBlbmRpbmdfPWZhbHNlO3RoaXMucmVidWlsZCgpO30uYmluZCh0aGlzKSwwKTt9LHJlYnVpbGRJZk5lZWRlZF86ZnVuY3Rpb24oKXt0aGlzLnJlYnVpbGQoKTt9LHJlYnVpbGQ6ZnVuY3Rpb24oKXt2YXIgd2FzQm9keU9ySGVhZGVyRGlydHk9dGhpcy5oZWFkZXJEaXJ0eV98fHRoaXMuYm9keURpcnR5XztpZih0aGlzLmhlYWRlckRpcnR5Xyl7dGhpcy5nZW5lcmF0ZUhlYWRlckNvbHVtbnNfKCk7dGhpcy5oZWFkZXJEaXJ0eV89ZmFsc2U7fQotaWYodGhpcy5ib2R5RGlydHlfKXt0aGlzLiQuYm9keS50ZXh0Q29udGVudD0nJzt0aGlzLmdlbmVyYXRlVGFibGVSb3dOb2Rlc18odGhpcy4kLmJvZHksdGhpcy50YWJsZVJvd3NfLHRoaXMudGFibGVSb3dzSW5mb18sMCx1bmRlZmluZWQsdW5kZWZpbmVkKTtpZih0aGlzLnRhYmxlUm93c18ubGVuZ3RoPT09MCYmdGhpcy5lbXB0eVZhbHVlXyE9PXVuZGVmaW5lZCl7dmFyIHRyPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpO3RoaXMuJC5ib2R5LmFwcGVuZENoaWxkKHRyKTt0ci5jbGFzc0xpc3QuYWRkKCdlbXB0eS1yb3cnKTt2YXIgdGQ9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7dHIuYXBwZW5kQ2hpbGQodGQpO3RkLmNvbFNwYW49dGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDt2YXIgZW1wdHlWYWx1ZT10aGlzLmVtcHR5VmFsdWVfO2lmKGVtcHR5VmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkKLXRkLmFwcGVuZENoaWxkKGVtcHR5VmFsdWUpO2Vsc2UKLXRkLmFwcGVuZENoaWxkKHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlbXB0eVZhbHVlKSk7fQotdGhpcy5ib2R5RGlydHlfPWZhbHNlO30KLWlmKHdhc0JvZHlPckhlYWRlckRpcnR5KQotdGhpcy5hcHBseVNpemVzXygpO2lmKHRoaXMuZm9vdGVyRGlydHlfKXt0aGlzLiQuZm9vdC50ZXh0Q29udGVudD0nJzt0aGlzLmdlbmVyYXRlVGFibGVSb3dOb2Rlc18odGhpcy4kLmZvb3QsdGhpcy50YWJsZUZvb3RlclJvd3NfLHRoaXMudGFibGVGb290ZXJSb3dzSW5mb18sMCx1bmRlZmluZWQsdW5kZWZpbmVkKTtpZih0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fLmxlbmd0aCl7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgnaGFzLWZvb3RlcicpO31lbHNle3RoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2hhcy1mb290ZXInKTt9Ci10aGlzLmZvb3RlckRpcnR5Xz1mYWxzZTt9fSxhcHBlbmROZXdFbGVtZW50XzpmdW5jdGlvbihwYXJlbnQsdGFnTmFtZSl7dmFyIGVsZW1lbnQ9cGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtwYXJlbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7cmV0dXJuIGVsZW1lbnQ7fSxnZXRFeHBhbmRlZEZvclRhYmxlUm93OmZ1bmN0aW9uKHVzZXJSb3cpe3RoaXMucmVidWlsZElmTmVlZGVkXygpO3ZhciByb3dJbmZvPXRoaXMudGFibGVSb3dzSW5mb18uZ2V0KHVzZXJSb3cpO2lmKHJvd0luZm89PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ1JvdyBoYXMgbm90IGJlZW4gc2VlbiwgbXVzdCBleHBhbmQgaXRzIHBhcmVudHMnKTtyZXR1cm4gcm93SW5mby5pc0V4cGFuZGVkO30sc2V0RXhwYW5kZWRGb3JUYWJsZVJvdzpmdW5jdGlvbih1c2VyUm93LGV4cGFuZGVkKXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTt2YXIgcm93SW5mbz10aGlzLnRhYmxlUm93c0luZm9fLmdldCh1c2VyUm93KTtpZihyb3dJbmZvPT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdSb3cgaGFzIG5vdCBiZWVuIHNlZW4sIG11c3QgZXhwYW5kIGl0cyBwYXJlbnRzJyk7cmV0dXJuIHRoaXMuc2V0RXhwYW5kZWRGb3JVc2VyUm93Xyh0aGlzLiQuYm9keSx0aGlzLnRhYmxlUm93c0luZm9fLHVzZXJSb3csZXhwYW5kZWQpO30sc2V0RXhwYW5kZWRGb3JVc2VyUm93XzpmdW5jdGlvbih0YWJsZVNlY3Rpb24scm93SW5mb01hcCx1c2VyUm93LGV4cGFuZGVkKXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTt2YXIgcm93SW5mbz1yb3dJbmZvTWFwLmdldCh1c2VyUm93KTtpZihyb3dJbmZvPT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdSb3cgaGFzIG5vdCBiZWVuIHNlZW4sIG11c3QgZXhwYW5kIGl0cyBwYXJlbnRzJyk7cm93SW5mby5pc0V4cGFuZGVkPSEhZXhwYW5kZWQ7aWYocm93SW5mby5odG1sTm9kZT09PXVuZGVmaW5lZCkKLXJldHVybjtpZihyb3dJbmZvLmh0bWxOb2RlLnBhcmVudEVsZW1lbnQhPT10YWJsZVNlY3Rpb24pCi1yZXR1cm47dmFyIGV4cGFuZEJ1dHRvbj1yb3dJbmZvLmh0bWxOb2RlLnF1ZXJ5U2VsZWN0b3IoJ2V4cGFuZC1idXR0b24nKTtpZihyb3dJbmZvLmlzRXhwYW5kZWQpe2V4cGFuZEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdidXR0b24tZXhwYW5kZWQnKTt2YXIgbGFzdEFkZGVkUm93PXJvd0luZm8uaHRtbE5vZGU7aWYocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dKXt0aGlzLmdlbmVyYXRlVGFibGVSb3dOb2Rlc18odGFibGVTZWN0aW9uLHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSxyb3dJbmZvTWFwLHJvd0luZm8uaW5kZW50YXRpb24rMSxsYXN0QWRkZWRSb3cscm93SW5mbyk7fX1lbHNle2V4cGFuZEJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdidXR0b24tZXhwYW5kZWQnKTt0aGlzLnJlbW92ZVN1Yk5vZGVzXyh0YWJsZVNlY3Rpb24scm93SW5mbyxyb3dJbmZvTWFwKTt9Ci10aGlzLm1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfKCk7fSxnZXQgc3VwcG9ydHNTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl87fSxzZXQgc3VwcG9ydHNTZWxlY3Rpb24oc3VwcG9ydHNTZWxlY3Rpb24pe3RoaXMucmVidWlsZElmTmVlZGVkXygpO3RoaXMuc3VwcG9ydHNTZWxlY3Rpb25fPSEhc3VwcG9ydHNTZWxlY3Rpb247dGhpcy5kaWRTZWxlY3Rpb25TdGF0ZUNoYW5nZV8oKTt9LGdldCBjZWxsU2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXzt9LHNldCBjZWxsU2VsZWN0aW9uTW9kZShjZWxsU2VsZWN0aW9uTW9kZSl7dGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7dGhpcy5jZWxsU2VsZWN0aW9uTW9kZV89ISFjZWxsU2VsZWN0aW9uTW9kZTt0aGlzLmRpZFNlbGVjdGlvblN0YXRlQ2hhbmdlXygpO30sZGlkU2VsZWN0aW9uU3RhdGVDaGFuZ2VfOmZ1bmN0aW9uKCl7aWYoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKXt0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXNlbGVjdGlvbi1tb2RlJyk7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgncm93LXNlbGVjdGlvbi1tb2RlJyk7fWVsc2UgaWYoIXRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKXt0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXNlbGVjdGlvbi1tb2RlJyk7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgncm93LXNlbGVjdGlvbi1tb2RlJyk7fWVsc2V7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgnY2VsbC1zZWxlY3Rpb24tbW9kZScpO3RoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3Jvdy1zZWxlY3Rpb24tbW9kZScpO30KLWZvcih2YXIgaT0wO2k8dGhpcy4kLmJvZHkuY2hpbGRyZW4ubGVuZ3RoO2krKykKLXRoaXMudXBkYXRlVGFiSW5kZXhGb3JUYWJsZVJvd05vZGVfKHRoaXMuJC5ib2R5LmNoaWxkcmVuW2ldKTt0aGlzLm1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfKCk7fSxtYXliZVVwZGF0ZVNlbGVjdGVkUm93XzpmdW5jdGlvbigpe2lmKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fPT09dW5kZWZpbmVkKQotcmV0dXJuO2lmKCF0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXyl7aWYoIXRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fKQotcmV0dXJuO3RoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fLmh0bWxOb2RlLnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTt0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz11bmRlZmluZWQ7cmV0dXJuO30KLWZ1bmN0aW9uIGlzVmlzaWJsZShyb3dJbmZvKXtpZighcm93SW5mby5odG1sTm9kZSkKLXJldHVybiBmYWxzZTtyZXR1cm4hIXJvd0luZm8uaHRtbE5vZGUucGFyZW50RWxlbWVudDt9Ci1pZihpc1Zpc2libGUodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18pKXt0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXy5odG1sTm9kZS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJyx0cnVlKTtyZXR1cm47fQotdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGUucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpO3ZhciBjdXJSb3dJbmZvPXRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fO3doaWxlKGN1clJvd0luZm8mJiFpc1Zpc2libGUoY3VyUm93SW5mbykpCi1jdXJSb3dJbmZvPWN1clJvd0luZm8ucGFyZW50Um93SW5mbzt0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz1jdXJSb3dJbmZvO2lmKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fKQotdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGUuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsdHJ1ZSk7fSxkaWRUYWJsZVJvd0luZm9HZXRDbGlja2VkXzpmdW5jdGlvbihyb3dJbmZvLGNvbHVtbkluZGV4KXtpZighdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCi1yZXR1cm47aWYodGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pe2lmKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oY29sdW1uSW5kZXgpKQotcmV0dXJuO30KLWlmKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fIT09cm93SW5mbykKLXRoaXMuc2VsZWN0ZWRUYWJsZVJvdz1yb3dJbmZvLnVzZXJSb3c7aWYodGhpcy5zZWxlY3RlZENvbHVtbkluZGV4IT09Y29sdW1uSW5kZXgpCi10aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXg9Y29sdW1uSW5kZXg7fSxnZXQgc2VsZWN0ZWRUYWJsZVJvdygpe2lmKCF0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fLnVzZXJSb3c7fSxzZXQgc2VsZWN0ZWRUYWJsZVJvdyh1c2VyUm93KXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTtpZighdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCi10aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdGlvbiBpcyBvZmYuIFNldCBzdXBwb3J0c1NlbGVjdGlvbj10cnVlLicpO3ZhciByb3dJbmZvPXRoaXMudGFibGVSb3dzSW5mb18uZ2V0KHVzZXJSb3cpO2lmKHJvd0luZm89PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ1JvdyBoYXMgbm90IGJlZW4gc2VlbiwgbXVzdCBleHBhbmQgaXRzIHBhcmVudHMnKTt2YXIgZT10aGlzLnByZXBhcmVUb0NoYW5nZVNlbGVjdGlvbl8oKTt0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz1yb3dJbmZvO2lmKHRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKXtpZih0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyYmdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4Xz09PXVuZGVmaW5lZCl7dmFyIGk9dGhpcy5nZXRGaXJzdFNlbGVjdGFibGVDb2x1bW5JbmRleF8oKTtpZihpPT0tMSkKLXRocm93IG5ldyBFcnJvcignbm9wZScpO3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF89aTt9fWVsc2V7dGhpcy5zZWxlY3RlZENvbHVtbkluZGV4Xz11bmRlZmluZWQ7fQotdGhpcy51cGRhdGVTZWxlY3RlZFN0YXRlXygpO3RoaXMuZGlzcGF0Y2hFdmVudChlKTt9LHVwZGF0ZVRhYkluZGV4Rm9yVGFibGVSb3dOb2RlXzpmdW5jdGlvbihyb3cpe2lmKHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKXtpZighdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pe3Jvdy50YWJJbmRleD0wO31lbHNle2Zvcih2YXIgaT0wO2k8dGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDtpKyspe2lmKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oaSkpCi1jb250aW51ZTtyb3cuY2hpbGRyZW5baV0udGFiSW5kZXg9MDt9fX1lbHNle2lmKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyl7cm93LnJlbW92ZUF0dHJpYnV0ZSgndGFiSW5kZXgnKTt9ZWxzZXtmb3IodmFyIGk9MDtpPHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7aSsrKXtpZighdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGkpKQotY29udGludWU7cm93LmNoaWxkcmVuW2ldLnJlbW92ZUF0dHJpYnV0ZSgndGFiSW5kZXgnKTt9fX19LHByZXBhcmVUb0NoYW5nZVNlbGVjdGlvbl86ZnVuY3Rpb24oKXt2YXIgZT1uZXcgRXZlbnQoJ3NlbGVjdGlvbi1jaGFuZ2VkJyk7dmFyIHByZXZpb3VzU2VsZWN0ZWRSb3dJbmZvPXRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fO2lmKHByZXZpb3VzU2VsZWN0ZWRSb3dJbmZvKQotZS5wcmV2aW91c1NlbGVjdGVkVGFibGVSb3c9cHJldmlvdXNTZWxlY3RlZFJvd0luZm8udXNlclJvdztlbHNlCi1lLnByZXZpb3VzU2VsZWN0ZWRUYWJsZVJvdz11bmRlZmluZWQ7aWYodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18pe3ZhciBub2RlPXRoaXMuZ2V0U2VsZWN0YWJsZU5vZGVHaXZlblRhYmxlUm93Tm9kZV8odGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGUpO25vZGUucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpO30KLXJldHVybiBlO30sdXBkYXRlU2VsZWN0ZWRTdGF0ZV86ZnVuY3Rpb24oKXtpZih0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz09PXVuZGVmaW5lZCkKLXJldHVybjt2YXIgbm9kZT10aGlzLmdldFNlbGVjdGFibGVOb2RlR2l2ZW5UYWJsZVJvd05vZGVfKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fLmh0bWxOb2RlKTtub2RlLnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLHRydWUpO30sZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbjpmdW5jdGlvbihjb2x1bW5JbmRleCl7dmFyIGNvbHVtbkluZm89dGhpcy50YWJsZUNvbHVtbnNfW2NvbHVtbkluZGV4XTt2YXIgc2NzPWNvbHVtbkluZm8uc3VwcG9ydHNDZWxsU2VsZWN0aW9uO2lmKHNjcz09PWZhbHNlKQotcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlO30sZ2V0Rmlyc3RTZWxlY3RhYmxlQ29sdW1uSW5kZXhfOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTx0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoO2krKyl7aWYodGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGkpKQotcmV0dXJuIGk7fQotcmV0dXJuLTE7fSxnZXRTZWxlY3RhYmxlTm9kZUdpdmVuVGFibGVSb3dOb2RlXzpmdW5jdGlvbihodG1sTm9kZSl7aWYoIXRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKXtyZXR1cm4gaHRtbE5vZGU7fWVsc2V7cmV0dXJuIGh0bWxOb2RlLmNoaWxkcmVuW3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF9dO319LGdldCBzZWxlY3RlZENvbHVtbkluZGV4KCl7aWYoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKQotcmV0dXJuIHVuZGVmaW5lZDtpZighdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pCi1yZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfO30sc2V0IHNlbGVjdGVkQ29sdW1uSW5kZXgoc2VsZWN0ZWRDb2x1bW5JbmRleCl7dGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7aWYoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKQotdGhyb3cgbmV3IEVycm9yKCdTZWxlY3Rpb24gaXMgb2ZmLiBTZXQgc3VwcG9ydHNTZWxlY3Rpb249dHJ1ZS4nKTtpZihzZWxlY3RlZENvbHVtbkluZGV4PDB8fHNlbGVjdGVkQ29sdW1uSW5kZXg+PXRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGgpCi10aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5kZXgnKTtpZighdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKHNlbGVjdGVkQ29sdW1uSW5kZXgpKQotdGhyb3cgbmV3IEVycm9yKCdTZWxlY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGNvbHVtbicpO3ZhciBlPXRoaXMucHJlcGFyZVRvQ2hhbmdlU2VsZWN0aW9uXygpO3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF89c2VsZWN0ZWRDb2x1bW5JbmRleDtpZih0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfPT09dW5kZWZpbmVkKQotdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb189dW5kZWZpbmVkO3RoaXMudXBkYXRlU2VsZWN0ZWRTdGF0ZV8oKTt0aGlzLmRpc3BhdGNoRXZlbnQoZSk7fSxvbktleURvd25fOmZ1bmN0aW9uKGUpe2lmKHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fPT09ZmFsc2UpCi1yZXR1cm47aWYodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb189PT11bmRlZmluZWQpCi1yZXR1cm47dmFyIGNvZGVfdG9fY29tbWFuZF9uYW1lcz17Mzc6J0FSUk9XX0xFRlQnLDM4OidBUlJPV19VUCcsMzk6J0FSUk9XX1JJR0hUJyw0MDonQVJST1dfRE9XTid9O3ZhciBjbWROYW1lPWNvZGVfdG9fY29tbWFuZF9uYW1lc1tlLmtleUNvZGVdO2lmKGNtZE5hbWU9PT11bmRlZmluZWQpCi1yZXR1cm47ZS5zdG9wUHJvcGFnYXRpb24oKTtlLnByZXZlbnREZWZhdWx0KCk7dGhpcy5wZXJmb3JtS2V5Q29tbWFuZF8oY21kTmFtZSk7fSxwZXJmb3JtS2V5Q29tbWFuZF86ZnVuY3Rpb24oY21kTmFtZSl7dGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7dmFyIHJvd0luZm89dGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb187dmFyIGh0bWxOb2RlPXJvd0luZm8uaHRtbE5vZGU7aWYoY21kTmFtZT09PSdBUlJPV19VUCcpe3ZhciBwcmV2PWh0bWxOb2RlLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7aWYocHJldil7dHIuYi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKHByZXYpO3RoaXMuc2VsZWN0ZWRUYWJsZVJvdz1wcmV2LnJvd0luZm8udXNlclJvdzt0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7cmV0dXJuO30KLXJldHVybjt9Ci1pZihjbWROYW1lPT09J0FSUk9XX0RPV04nKXt2YXIgbmV4dD1odG1sTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7aWYobmV4dCl7dHIuYi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5leHQpO3RoaXMuc2VsZWN0ZWRUYWJsZVJvdz1uZXh0LnJvd0luZm8udXNlclJvdzt0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7cmV0dXJuO30KLXJldHVybjt9Ci1pZihjbWROYW1lPT09J0FSUk9XX1JJR0hUJyl7aWYodGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pe3ZhciBuZXdJbmRleD10aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfKzE7aWYobmV3SW5kZXg+PXRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGgpCi1yZXR1cm47aWYoIXRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihuZXdJbmRleCkpCi1yZXR1cm47dGhpcy5zZWxlY3RlZENvbHVtbkluZGV4PW5ld0luZGV4O3RoaXMuZm9jdXNTZWxlY3RlZF8oKTtyZXR1cm47fWVsc2V7aWYocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dPT09dW5kZWZpbmVkKQotcmV0dXJuO2lmKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGg9PT0wKQotcmV0dXJuO2lmKCFyb3dJbmZvLmlzRXhwYW5kZWQpCi10aGlzLnNldEV4cGFuZGVkRm9yVGFibGVSb3cocm93SW5mby51c2VyUm93LHRydWUpO3RoaXMuc2VsZWN0ZWRUYWJsZVJvdz1yb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX11bMF07dGhpcy5mb2N1c1NlbGVjdGVkXygpO3JldHVybjt9fQotaWYoY21kTmFtZT09PSdBUlJPV19MRUZUJyl7aWYodGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pe3ZhciBuZXdJbmRleD10aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfLTE7aWYobmV3SW5kZXg8MCkKLXJldHVybjtpZighdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKG5ld0luZGV4KSkKLXJldHVybjt0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXg9bmV3SW5kZXg7dGhpcy5mb2N1c1NlbGVjdGVkXygpO3JldHVybjt9ZWxzZXtpZihyb3dJbmZvLmlzRXhwYW5kZWQpe3RoaXMuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dJbmZvLnVzZXJSb3csZmFsc2UpO3RoaXMuZm9jdXNTZWxlY3RlZF8oKTtyZXR1cm47fQotdmFyIHBhcmVudFJvd0luZm89cm93SW5mby5wYXJlbnRSb3dJbmZvO2lmKHBhcmVudFJvd0luZm8pe3RoaXMuc2VsZWN0ZWRUYWJsZVJvdz1wYXJlbnRSb3dJbmZvLnVzZXJSb3c7dGhpcy5mb2N1c1NlbGVjdGVkXygpO3JldHVybjt9Ci1yZXR1cm47fX0KLXRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIGNvbW1hbmQnKTt9LGZvY3VzU2VsZWN0ZWRfOmZ1bmN0aW9uKCl7aWYoIXRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fKQotcmV0dXJuO3ZhciBub2RlPXRoaXMuZ2V0U2VsZWN0YWJsZU5vZGVHaXZlblRhYmxlUm93Tm9kZV8odGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGUpO25vZGUuZm9jdXMoKTt9fSk7fSkoKTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYi11aS10YWJsZS1oZWFkZXItY2VsbCcse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnRhcENhbGxiYWNrXz11bmRlZmluZWQ7dGhpcy5jZWxsVGl0bGVfPScnO30sc2V0IGNlbGxUaXRsZSh2YWx1ZSl7dGhpcy5jZWxsVGl0bGVfPXZhbHVlO3ZhciB0aXRsZU5vZGU7aWYodGhpcy5jZWxsVGl0bGVfIGluc3RhbmNlb2YgTm9kZSkKLXRpdGxlTm9kZT10aGlzLmNlbGxUaXRsZV87ZWxzZQotdGl0bGVOb2RlPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmNlbGxUaXRsZV8pO3RoaXMuJC50aXRsZS5pbm5lclRleHQ9Jyc7dGhpcy4kLnRpdGxlLmFwcGVuZENoaWxkKHRpdGxlTm9kZSk7fSxnZXQgY2VsbFRpdGxlKCl7cmV0dXJuIHRoaXMuY2VsbFRpdGxlXzt9LGNsZWFyU2lkZUNvbnRlbnQ6ZnVuY3Rpb24oKXt0aGlzLiQuc2lkZS50ZXh0Q29udGVudD0nJzt9LHNldCBzaWRlQ29udGVudChjb250ZW50KXt0aGlzLiQuc2lkZS50ZXh0Q29udGVudD1jb250ZW50O30sZ2V0IHNpZGVDb250ZW50KCl7cmV0dXJuIHRoaXMuJC5zaWRlLnRleHRDb250ZW50O30sc2V0IHRhcENhbGxiYWNrKGNhbGxiYWNrKXt0aGlzLnN0eWxlLmN1cnNvcj0ncG9pbnRlcic7dGhpcy50YXBDYWxsYmFja189Y2FsbGJhY2s7fSxnZXQgdGFwQ2FsbGJhY2soKXtyZXR1cm4gdGhpcy50YXBDYWxsYmFja187fSxvblRhcF86ZnVuY3Rpb24oKXtpZih0aGlzLnRhcENhbGxiYWNrXykKLXRoaXMudGFwQ2FsbGJhY2tfKCk7fX0pOyd1c2Ugc3RyaWN0JztmdW5jdGlvbiBpc1RhYmxlKG9iamVjdCl7aWYoIShvYmplY3QgaW5zdGFuY2VvZiBBcnJheSl8fChvYmplY3QubGVuZ3RoPDIpKXJldHVybiBmYWxzZTtmb3IodmFyIGNvbE5hbWUgaW4gb2JqZWN0WzBdKXtpZih0eXBlb2YgY29sTmFtZSE9PSdzdHJpbmcnKXJldHVybiBmYWxzZTt9Ci1mb3IodmFyIGk9MDtpPG9iamVjdC5sZW5ndGg7KytpKXtpZighKG9iamVjdFtpXWluc3RhbmNlb2YgT2JqZWN0KSlyZXR1cm4gZmFsc2U7Zm9yKHZhciBjb2xOYW1lIGluIG9iamVjdFtpXSl7aWYoaSYmKG9iamVjdFswXVtjb2xOYW1lXT09PXVuZGVmaW5lZCkpcmV0dXJuIGZhbHNlO3ZhciBjZWxsVHlwZT10eXBlb2Ygb2JqZWN0W2ldW2NvbE5hbWVdO2lmKGNlbGxUeXBlIT09J3N0cmluZycmJmNlbGxUeXBlIT0nbnVtYmVyJylyZXR1cm4gZmFsc2U7fQotaWYoaSl7Zm9yKHZhciBjb2xOYW1lIGluIG9iamVjdFswXSl7aWYob2JqZWN0W2ldW2NvbE5hbWVdPT09dW5kZWZpbmVkKXJldHVybiBmYWxzZTt9fX0KLXJldHVybiB0cnVlO30KLVBvbHltZXIoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLm9iamVjdF89dW5kZWZpbmVkO30sZ2V0IG9iamVjdCgpe3JldHVybiB0aGlzLm9iamVjdF87fSxzZXQgb2JqZWN0KG9iamVjdCl7dGhpcy5vYmplY3RfPW9iamVjdDt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9Jyc7dGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKCcnLHRoaXMub2JqZWN0XywwLDAsNSwnJyk7fSxhcHBlbmRFbGVtZW50c0ZvclR5cGVfOmZ1bmN0aW9uKGxhYmVsLG9iamVjdCxpbmRlbnQsZGVwdGgsbWF4RGVwdGgsc3VmZml4KXtpZihkZXB0aD5tYXhEZXB0aCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJzxyZWN1cnNpb24gbGltaXQgcmVhY2hlZD4nLHN1ZmZpeCk7cmV0dXJuO30KLWlmKG9iamVjdD09PXVuZGVmaW5lZCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJ3VuZGVmaW5lZCcsc3VmZml4KTtyZXR1cm47fQotaWYob2JqZWN0PT09bnVsbCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJ251bGwnLHN1ZmZpeCk7cmV0dXJuO30KLWlmKCEob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSl7dmFyIHR5cGU9dHlwZW9mIG9iamVjdDtpZih0eXBlPT0nc3RyaW5nJyl7dmFyIG9iamVjdFJlcGxhY2VkPWZhbHNlO2lmKChvYmplY3RbMF09PSd7JyYmb2JqZWN0W29iamVjdC5sZW5ndGgtMV09PSd9Jyl8fChvYmplY3RbMF09PSdbJyYmb2JqZWN0W29iamVjdC5sZW5ndGgtMV09PSddJykpe3RyeXtvYmplY3Q9SlNPTi5wYXJzZShvYmplY3QpO29iamVjdFJlcGxhY2VkPXRydWU7fWNhdGNoKGUpe319Ci1pZighb2JqZWN0UmVwbGFjZWQpe2lmKG9iamVjdC5pbmRleE9mKCdcbicpIT09LTEpe3ZhciBsaW5lcz1vYmplY3Quc3BsaXQoJ1xuJyk7bGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLGkpe3ZhciB0ZXh0LGlvZmYsbGwsc3M7aWYoaT09MCl7dGV4dD0nIicrbGluZTtpb2ZmPTA7bGw9bGFiZWw7c3M9Jyc7fWVsc2UgaWYoaTxsaW5lcy5sZW5ndGgtMSl7dGV4dD1saW5lO2lvZmY9MTtsbD0nJztzcz0nJzt9ZWxzZXt0ZXh0PWxpbmUrJyInO2lvZmY9MTtsbD0nJztzcz1zdWZmaXg7fQotdmFyIGVsPXRoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGwsaW5kZW50K2lvZmYqbGFiZWwubGVuZ3RoK2lvZmYsdGV4dCxzcyk7ZWwuc3R5bGUud2hpdGVTcGFjZT0ncHJlJztyZXR1cm4gZWw7fSx0aGlzKTtyZXR1cm47fWVsc2V7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJyInK29iamVjdCsnIicsc3VmZml4KTtyZXR1cm47fX0KLWVsc2V7fX1lbHNle3JldHVybiB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLGluZGVudCxvYmplY3Qsc3VmZml4KTt9fQotaWYob2JqZWN0IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3Qpe3ZhciBsaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7bGluay5zZWxlY3Rpb249bmV3IHRyLmMuU2VsZWN0aW9uKG9iamVjdCk7dGhpcy5hcHBlbmRFbGVtZW50V2l0aExhYmVsXyhsYWJlbCxpbmRlbnQsbGluayxzdWZmaXgpO3JldHVybjt9Ci1pZihvYmplY3QgaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSl7dmFyIGxpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rLnNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24ob2JqZWN0KTt0aGlzLmFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfKGxhYmVsLGluZGVudCxsaW5rLHN1ZmZpeCk7cmV0dXJuO30KLWlmKG9iamVjdCBpbnN0YW5jZW9mIHRyLmIuUmVjdCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsb2JqZWN0LnRvU3RyaW5nKCksc3VmZml4KTtyZXR1cm47fQotaWYob2JqZWN0IGluc3RhbmNlb2YgdHIuYi51bml0cy5TaXplSW5CeXRlcyl7dmFyIGVsPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7ZWwubnVtQnl0ZXM9b2JqZWN0Lm51bUJ5dGVzO3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LGVsLHN1ZmZpeCk7cmV0dXJuO30KLWlmKG9iamVjdCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuVGltZUR1cmF0aW9uKXt2YXIgZWw9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4nKTtlbC5kdXJhdGlvbj1vYmplY3QuZHVyYXRpb247dGhpcy5hcHBlbmRFbGVtZW50V2l0aExhYmVsXyhsYWJlbCxpbmRlbnQsZWwsc3VmZml4KTtyZXR1cm47fQotaWYob2JqZWN0IGluc3RhbmNlb2YgdHIuYi51bml0cy5UaW1lU3RhbXApe3ZhciBlbD10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LXRpbWUtc3RhbXAtc3BhbicpO2VsLnRpbWVzdGFtcD1vYmplY3QudGltZXN0YW1wO3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LGVsLHN1ZmZpeCk7cmV0dXJuO30KLWlmKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KXt0aGlzLmFwcGVuZEVsZW1lbnRzRm9yQXJyYXlfKGxhYmVsLG9iamVjdCxpbmRlbnQsZGVwdGgsbWF4RGVwdGgsc3VmZml4KTtyZXR1cm47fQotdGhpcy5hcHBlbmRFbGVtZW50c0Zvck9iamVjdF8obGFiZWwsb2JqZWN0LGluZGVudCxkZXB0aCxtYXhEZXB0aCxzdWZmaXgpO30sYXBwZW5kRWxlbWVudHNGb3JBcnJheV86ZnVuY3Rpb24obGFiZWwsb2JqZWN0LGluZGVudCxkZXB0aCxtYXhEZXB0aCxzdWZmaXgpe2lmKG9iamVjdC5sZW5ndGg9PTApe3RoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGFiZWwsaW5kZW50LCdbXScsc3VmZml4KTtyZXR1cm47fQotaWYoaXNUYWJsZShvYmplY3QpKXt2YXIgdGFibGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpO3ZhciBjb2x1bW5zPVtdO3RyLmIuaXRlckl0ZW1zKG9iamVjdFswXSxmdW5jdGlvbihjb2xOYW1lKXtjb2x1bW5zLnB1c2goe3RpdGxlOmNvbE5hbWUsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93W2NvbE5hbWVdO319KTt9KTt0YWJsZS50YWJsZUNvbHVtbnM9Y29sdW1uczt0YWJsZS50YWJsZVJvd3M9b2JqZWN0O3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LHRhYmxlLHN1ZmZpeCk7dGFibGUucmVidWlsZCgpO3JldHVybjt9Ci10aGlzLmFwcGVuZEVsZW1lbnRzRm9yVHlwZV8obGFiZWwrJ1snLG9iamVjdFswXSxpbmRlbnQsZGVwdGgrMSxtYXhEZXB0aCxvYmplY3QubGVuZ3RoPjE/JywnOiddJytzdWZmaXgpO2Zvcih2YXIgaT0xO2k8b2JqZWN0Lmxlbmd0aDtpKyspe3RoaXMuYXBwZW5kRWxlbWVudHNGb3JUeXBlXygnJyxvYmplY3RbaV0saW5kZW50K2xhYmVsLmxlbmd0aCsxLGRlcHRoKzEsbWF4RGVwdGgsaTxvYmplY3QubGVuZ3RoLTE/JywnOiddJytzdWZmaXgpO30KLXJldHVybjt9LGFwcGVuZEVsZW1lbnRzRm9yT2JqZWN0XzpmdW5jdGlvbihsYWJlbCxvYmplY3QsaW5kZW50LGRlcHRoLG1heERlcHRoLHN1ZmZpeCl7dmFyIGtleXM9dHIuYi5kaWN0aW9uYXJ5S2V5cyhvYmplY3QpO2lmKGtleXMubGVuZ3RoPT0wKXt0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLGluZGVudCwne30nLHN1ZmZpeCk7cmV0dXJuO30KLXRoaXMuYXBwZW5kRWxlbWVudHNGb3JUeXBlXyhsYWJlbCsneycra2V5c1swXSsnOiAnLG9iamVjdFtrZXlzWzBdXSxpbmRlbnQsZGVwdGgsbWF4RGVwdGgsa2V5cy5sZW5ndGg+MT8nLCc6J30nK3N1ZmZpeCk7Zm9yKHZhciBpPTE7aTxrZXlzLmxlbmd0aDtpKyspe3RoaXMuYXBwZW5kRWxlbWVudHNGb3JUeXBlXyhrZXlzW2ldKyc6ICcsb2JqZWN0W2tleXNbaV1dLGluZGVudCtsYWJlbC5sZW5ndGgrMSxkZXB0aCsxLG1heERlcHRoLGk8a2V5cy5sZW5ndGgtMT8nLCc6J30nK3N1ZmZpeCk7fX0sYXBwZW5kRWxlbWVudFdpdGhMYWJlbF86ZnVuY3Rpb24obGFiZWwsaW5kZW50LGRhdGFFbGVtZW50LHN1ZmZpeCl7dmFyIHJvdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTt2YXIgaW5kZW50U3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7aW5kZW50U3Bhbi5zdHlsZS53aGl0ZVNwYWNlPSdwcmUnO2Zvcih2YXIgaT0wO2k8aW5kZW50O2krKykKLWluZGVudFNwYW4udGV4dENvbnRlbnQrPScgJztyb3cuYXBwZW5kQ2hpbGQoaW5kZW50U3Bhbik7dmFyIGxhYmVsU3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7bGFiZWxTcGFuLnRleHRDb250ZW50PWxhYmVsO3Jvdy5hcHBlbmRDaGlsZChsYWJlbFNwYW4pO3Jvdy5hcHBlbmRDaGlsZChkYXRhRWxlbWVudCk7dmFyIHN1ZmZpeFNwYW49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO3N1ZmZpeFNwYW4udGV4dENvbnRlbnQ9c3VmZml4O3Jvdy5hcHBlbmRDaGlsZChzdWZmaXhTcGFuKTtyb3cuZGF0YUVsZW1lbnQ9ZGF0YUVsZW1lbnQ7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocm93KTt9LGFwcGVuZFNpbXBsZVRleHRfOmZ1bmN0aW9uKGxhYmVsLGluZGVudCx0ZXh0LHN1ZmZpeCl7dmFyIGVsPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7ZWwudGV4dENvbnRlbnQ9dGV4dDt0aGlzLmFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfKGxhYmVsLGluZGVudCxlbCxzdWZmaXgpO3JldHVybiBlbDt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3LXdpdGgtbGFiZWwnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMubGFiZWxFbF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7dGhpcy5nZW5lcmljT2JqZWN0Vmlld189ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTt0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5sYWJlbEVsXyk7dGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfKTt9LGdldCBsYWJlbCgpe3JldHVybiB0aGlzLmxhYmVsRWxfLnRleHRDb250ZW50O30sc2V0IGxhYmVsKGxhYmVsKXt0aGlzLmxhYmVsRWxfLnRleHRDb250ZW50PWxhYmVsO30sZ2V0IG9iamVjdCgpe3JldHVybiB0aGlzLmdlbmVyaWNPYmplY3RWaWV3Xy5vYmplY3Q7fSxzZXQgb2JqZWN0KG9iamVjdCl7dGhpcy5nZW5lcmljT2JqZWN0Vmlld18ub2JqZWN0PW9iamVjdDt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1zdGFjay1mcmFtZScse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy5zdGFja0ZyYW1lXz11bmRlZmluZWQ7fSxnZXQgc3RhY2tGcmFtZSgpe3JldHVybiB0aGlzLnN0YWNrRnJhbWVfO30sc2V0IHN0YWNrRnJhbWUoc3RhY2tGcmFtZSl7dGhpcy5zdGFja0ZyYW1lXz1zdGFja0ZyYW1lO3RoaXMuJC5vdi5vYmplY3Q9c3RhY2tGcmFtZS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt0aGlzLiQudGFibGUudGFibGVDb2x1bW5zPVt7dGl0bGU6J0xhYmVsJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cubmFtZTt9LHdpZHRoOicxNTBweCd9LHt0aXRsZTonVmFsdWUnLHdpZHRoOicxMDAlJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cudmFsdWU7fX1dO3RoaXMuJC50YWJsZS5zaG93SGVhZGVyPWZhbHNlO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHNlbGVjdGlvbi5sZW5ndGghPT0xKQotdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBzbGljZXMnKTt0aGlzLnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO30sc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzOmZ1bmN0aW9uKHNlbGVjdGlvbil7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldEV2ZW50Um93c186ZnVuY3Rpb24oZXZlbnQpe3ZhciByb3dzPVtdO2lmKGV2ZW50LmVycm9yKQotcm93cy5wdXNoKHtuYW1lOidFcnJvcicsdmFsdWU6ZXZlbnQuZXJyb3J9KTtpZihldmVudC50aXRsZSkKLXJvd3MucHVzaCh7bmFtZTonVGl0bGUnLHZhbHVlOmV2ZW50LnRpdGxlfSk7aWYoZXZlbnQuY2F0ZWdvcnkpCi1yb3dzLnB1c2goe25hbWU6J0NhdGVnb3J5Jyx2YWx1ZTpldmVudC5jYXRlZ29yeX0pO3ZhciBzdGFydEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLXN0YW1wLXNwYW4nKTtzdGFydEVsLnRpbWVzdGFtcD1ldmVudC5zdGFydDtyb3dzLnB1c2goe25hbWU6J1N0YXJ0Jyx2YWx1ZTpzdGFydEVsfSk7aWYoZXZlbnQuZHVyYXRpb24pe3ZhciB3YWxsRHVyYXRpb25FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7d2FsbER1cmF0aW9uRWwuZHVyYXRpb249ZXZlbnQuZHVyYXRpb247cm93cy5wdXNoKHtuYW1lOidXYWxsIER1cmF0aW9uJyx2YWx1ZTp3YWxsRHVyYXRpb25FbH0pO30KLWlmKGV2ZW50LmNwdUR1cmF0aW9uKXt2YXIgY3B1RHVyYXRpb25FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7Y3B1RHVyYXRpb25FbC5kdXJhdGlvbj1ldmVudC5jcHVEdXJhdGlvbjtyb3dzLnB1c2goe25hbWU6J0NQVSBEdXJhdGlvbicsdmFsdWU6Y3B1RHVyYXRpb25FbH0pO30KLWlmKGV2ZW50LnN1YlNsaWNlcyE9PXVuZGVmaW5lZCYmZXZlbnQuc3ViU2xpY2VzLmxlbmd0aCE9PTApe2lmKGV2ZW50LnNlbGZUaW1lKXt2YXIgc2VsZlRpbWVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7c2VsZlRpbWVFbC5kdXJhdGlvbj1ldmVudC5zZWxmVGltZTtyb3dzLnB1c2goe25hbWU6J1NlbGYgVGltZScsdmFsdWU6c2VsZlRpbWVFbH0pO30KLWlmKGV2ZW50LmNwdVNlbGZUaW1lKXt2YXIgY3B1U2VsZlRpbWVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7Y3B1U2VsZlRpbWVFbC5kdXJhdGlvbj1ldmVudC5jcHVTZWxmVGltZTtpZihldmVudC5jcHVTZWxmVGltZT5ldmVudC5zZWxmVGltZSl7Y3B1U2VsZlRpbWVFbC53YXJuaW5nPScgTm90ZSB0aGF0IENQVSBTZWxmIFRpbWUgaXMgbGFyZ2VyIHRoYW4gU2VsZiBUaW1lLiAnKydUaGlzIGlzIGEga25vd24gbGltaXRhdGlvbiBvZiB0aGlzIHN5c3RlbSwgd2hpY2ggb2NjdXJzICcrJ2R1ZSB0byBzZXZlcmFsIHN1YnNsaWNlcywgcm91bmRpbmcgaXNzdWVzLCBhbmQgaW1wcmVjaXNlICcrJ3RpbWUgYXQgd2hpY2ggd2UgZ2V0IGNwdS0gYW5kIHJlYWwtdGltZS4nO30KLXJvd3MucHVzaCh7bmFtZTonQ1BVIFNlbGYgVGltZScsdmFsdWU6Y3B1U2VsZlRpbWVFbH0pO319Ci1pZihldmVudC5kdXJhdGlvbkluVXNlclRpbWUpe3ZhciBkdXJhdGlvbkluVXNlclRpbWVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7ZHVyYXRpb25JblVzZXJUaW1lRWwuZHVyYXRpb249ZXZlbnQuZHVyYXRpb25JblVzZXJUaW1lO3Jvd3MucHVzaCh7bmFtZTonRHVyYXRpb24gKFUpJyx2YWx1ZTpkdXJhdGlvbkluVXNlclRpbWVFbH0pO30KLWZ1bmN0aW9uIGNyZWF0ZVN0YWNrRnJhbWVFbChzZil7dmFyIHNmRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXN0YWNrLWZyYW1lJyk7c2ZFbC5zdGFja0ZyYW1lPXNmO3JldHVybiBzZkVsO30KLWlmKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSYmZXZlbnQuZW5kU3RhY2tGcmFtZSl7aWYoZXZlbnQuc3RhcnRTdGFja0ZyYW1lPT09ZXZlbnQuZW5kU3RhY2tGcmFtZSl7cm93cy5wdXNoKHtuYW1lOidTdGFydCtFbmQgU3RhY2sgVHJhY2UnLHZhbHVlOmNyZWF0ZVN0YWNrRnJhbWVFbChldmVudC5zdGFydFN0YWNrRnJhbWUpfSk7fWVsc2V7cm93cy5wdXNoKHtuYW1lOidTdGFydCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTtyb3dzLnB1c2goe25hbWU6J0VuZCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LmVuZFN0YWNrRnJhbWUpfSk7fX1lbHNlIGlmKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl7cm93cy5wdXNoKHtuYW1lOidTdGFydCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTt9ZWxzZSBpZihldmVudC5lbmRTdGFja0ZyYW1lKXtyb3dzLnB1c2goe25hbWU6J0VuZCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LmVuZFN0YWNrRnJhbWUpfSk7fQotaWYoZXZlbnQuaW5mbyl7dmFyIGRlc2NyaXB0aW9uRWw9dHIuYi51aS5jcmVhdGVEaXYoe3RleHRDb250ZW50OmV2ZW50LmluZm8uZGVzY3JpcHRpb24sbWF4V2lkdGg6JzMwMHB4J30pO3Jvd3MucHVzaCh7bmFtZTonRGVzY3JpcHRpb24nLHZhbHVlOmRlc2NyaXB0aW9uRWx9KTtpZihldmVudC5pbmZvLmRvY0xpbmtzKXtldmVudC5pbmZvLmRvY0xpbmtzLmZvckVhY2goZnVuY3Rpb24obGlua09iamVjdCl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7bGlua0VsLnRhcmdldD0nX2JsYW5rJztsaW5rRWwuaHJlZj1saW5rT2JqZWN0LmhyZWY7bGlua0VsLnRleHRDb250ZW50PWxpbmtPYmplY3QudGV4dENvbnRlbnQ7cm93cy5wdXNoKHtuYW1lOmxpbmtPYmplY3QubGFiZWwsdmFsdWU6bGlua0VsfSk7fSk7fX0KLWlmKGV2ZW50LmFzc29jaWF0ZWRBbGVydHMubGVuZ3RoKXt2YXIgYWxlcnRTdWJSb3dzPVtdO2V2ZW50LmFzc29jaWF0ZWRBbGVydHMuZm9yRWFjaChmdW5jdGlvbihhbGVydCl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpO2xpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbihhbGVydCk7fSxhbGVydC5pbmZvLmRlc2NyaXB0aW9uKTthbGVydFN1YlJvd3MucHVzaCh7bmFtZTphbGVydC50aXRsZSx2YWx1ZTpsaW5rRWx9KTt9KTtyb3dzLnB1c2goe25hbWU6J0FsZXJ0cycsdmFsdWU6JycsaXNFeHBhbmRlZDp0cnVlLHN1YlJvd3M6YWxlcnRTdWJSb3dzfSk7fQotcmV0dXJuIHJvd3M7fSxhZGRBcmdzVG9Sb3dzXzpmdW5jdGlvbihyb3dzLGFyZ3Mpe3ZhciBuPTA7Zm9yKHZhciBhcmdOYW1lIGluIGFyZ3Mpe24rPTE7fQotaWYobj4wKXt2YXIgc3ViUm93cz1bXTtmb3IodmFyIGFyZ05hbWUgaW4gYXJncyl7dmFyIGFyZ1ZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTthcmdWaWV3Lm9iamVjdD1hcmdzW2FyZ05hbWVdO3N1YlJvd3MucHVzaCh7bmFtZTphcmdOYW1lLHZhbHVlOmFyZ1ZpZXd9KTt9Ci1yb3dzLnB1c2goe25hbWU6J0FyZ3MnLHZhbHVlOicnLGlzRXhwYW5kZWQ6dHJ1ZSxzdWJSb3dzOnN1YlJvd3N9KTt9Ci1yZXR1cm4gcm93czt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe2lmKHRoaXMuY3VycmVudFNlbGVjdGlvbl89PT11bmRlZmluZWQpe3RoaXMuJC50YWJsZS5yb3dzPVtdO3RoaXMuJC50YWJsZS5yZWJ1aWxkKCk7cmV0dXJuO30KLXZhciBldmVudD10aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdO3ZhciByb3dzPXRoaXMuZ2V0RXZlbnRSb3dzXyhldmVudCk7dGhpcy5hZGRBcmdzVG9Sb3dzXyhyb3dzLGV2ZW50LmFyZ3MpO3RoaXMuJC50YWJsZS50YWJsZVJvd3M9cm93czt0aGlzLiQudGFibGUucmVidWlsZCgpO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMuYW5hbHlzaXMnLGZ1bmN0aW9uKCl7dmFyIEZMT1dfSU49MHgxO3ZhciBGTE9XX09VVD0weDI7dmFyIEZMT1dfSU5fT1VUPUZMT1dfSU58RkxPV19PVVQ7ZnVuY3Rpb24gRmxvd0NsYXNzaWZpZXIoKXt0aGlzLm51bUV2ZW50c189MDt0aGlzLmV2ZW50c0J5R1VJRF89e307fQotRmxvd0NsYXNzaWZpZXIucHJvdG90eXBlPXtnZXRGU186ZnVuY3Rpb24oZXZlbnQpe3ZhciBmcz10aGlzLmV2ZW50c0J5R1VJRF9bZXZlbnQuZ3VpZF07aWYoZnM9PT11bmRlZmluZWQpe3RoaXMubnVtRXZlbnRzXysrO2ZzPXtzdGF0ZTowLGV2ZW50OmV2ZW50fTt0aGlzLmV2ZW50c0J5R1VJRF9bZXZlbnQuZ3VpZF09ZnM7fQotcmV0dXJuIGZzO30sYWRkSW5GbG93OmZ1bmN0aW9uKGV2ZW50KXt2YXIgZnM9dGhpcy5nZXRGU18oZXZlbnQpO2ZzLnN0YXRlfD1GTE9XX0lOO3JldHVybiBldmVudDt9LGFkZE91dEZsb3c6ZnVuY3Rpb24oZXZlbnQpe3ZhciBmcz10aGlzLmdldEZTXyhldmVudCk7ZnMuc3RhdGV8PUZMT1dfT1VUO3JldHVybiBldmVudDt9LGhhc0V2ZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLm51bUV2ZW50c18+MDt9LGdldCBpbkZsb3dFdmVudHMoKXt2YXIgc2VsZWN0aW9uPW5ldyB0ci5jLlNlbGVjdGlvbigpO2Zvcih2YXIgZ3VpZCBpbiB0aGlzLmV2ZW50c0J5R1VJRF8pe3ZhciBmcz10aGlzLmV2ZW50c0J5R1VJRF9bZ3VpZF07aWYoZnMuc3RhdGU9PT1GTE9XX0lOKQotc2VsZWN0aW9uLnB1c2goZnMuZXZlbnQpO30KLXJldHVybiBzZWxlY3Rpb247fSxnZXQgb3V0Rmxvd0V2ZW50cygpe3ZhciBzZWxlY3Rpb249bmV3IHRyLmMuU2VsZWN0aW9uKCk7Zm9yKHZhciBndWlkIGluIHRoaXMuZXZlbnRzQnlHVUlEXyl7dmFyIGZzPXRoaXMuZXZlbnRzQnlHVUlEX1tndWlkXTtpZihmcy5zdGF0ZT09PUZMT1dfT1VUKQotc2VsZWN0aW9uLnB1c2goZnMuZXZlbnQpO30KLXJldHVybiBzZWxlY3Rpb247fSxnZXQgaW50ZXJuYWxGbG93RXZlbnRzKCl7dmFyIHNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24oKTtmb3IodmFyIGd1aWQgaW4gdGhpcy5ldmVudHNCeUdVSURfKXt2YXIgZnM9dGhpcy5ldmVudHNCeUdVSURfW2d1aWRdO2lmKGZzLnN0YXRlPT09RkxPV19JTl9PVVQpCi1zZWxlY3Rpb24ucHVzaChmcy5ldmVudCk7fQotcmV0dXJuIHNlbGVjdGlvbjt9fTtyZXR1cm57Rmxvd0NsYXNzaWZpZXI6Rmxvd0NsYXNzaWZpZXJ9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtcmVsYXRlZC1ldmVudHMnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuZXZlbnRHcm91cHNfPVtdO3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9W3t0aXRsZTonRXZlbnQocyknLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy50eXBlO30sd2lkdGg6JzE1MHB4J30se3RpdGxlOidMaW5rJyx3aWR0aDonMTAwJScsdmFsdWU6ZnVuY3Rpb24ocm93KXt2YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7aWYocm93Lm5hbWUpCi1saW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChyb3cuc2VsZWN0aW9uLHJvdy5uYW1lKTtlbHNlCi1saW5rRWwuc2VsZWN0aW9uPXJvdy5zZWxlY3Rpb247cmV0dXJuIGxpbmtFbDt9fV07fSxoYXNSZWxhdGVkRXZlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuZXZlbnRHcm91cHNfJiZ0aGlzLmV2ZW50R3JvdXBzXy5sZW5ndGg+MCk7fSxhZGRSZWxhdGVkRXZlbnRzOmZ1bmN0aW9uKHNlbGVjdGlvbil7dGhpcy5hZGRDb25uZWN0ZWRGbG93c18oc2VsZWN0aW9uKTt0aGlzLmFkZENvbm5lY3RlZEV2ZW50c18oc2VsZWN0aW9uKTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sYWRkQ29ubmVjdGVkRmxvd3NfOmZ1bmN0aW9uKHNlbGVjdGlvbil7dmFyIGNsYXNzaWZpZXI9bmV3IHRyLmMuYW5hbHlzaXMuRmxvd0NsYXNzaWZpZXIoKTtzZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbihzbGljZSl7aWYoc2xpY2UuaW5GbG93RXZlbnRzKXtzbGljZS5pbkZsb3dFdmVudHMuZm9yRWFjaChmdW5jdGlvbihmbG93KXtjbGFzc2lmaWVyLmFkZEluRmxvdyhmbG93KTt9KTt9Ci1pZihzbGljZS5vdXRGbG93RXZlbnRzKXtzbGljZS5vdXRGbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZmxvdyl7Y2xhc3NpZmllci5hZGRPdXRGbG93KGZsb3cpO30pO319KTtpZighY2xhc3NpZmllci5oYXNFdmVudHMoKSkKLXJldHVybjt2YXIgYWRkVG9FdmVudEdyb3Vwcz1mdW5jdGlvbih0eXBlLGZsb3dFdmVudCl7dGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7dHlwZTp0eXBlLHNlbGVjdGlvbjpuZXcgdHIuYy5TZWxlY3Rpb24oZmxvd0V2ZW50KSxuYW1lOmZsb3dFdmVudC50aXRsZX0pO307Y2xhc3NpZmllci5pbkZsb3dFdmVudHMuZm9yRWFjaChhZGRUb0V2ZW50R3JvdXBzLmJpbmQodGhpcywnSW5jb21pbmcgZmxvdycpKTtjbGFzc2lmaWVyLm91dEZsb3dFdmVudHMuZm9yRWFjaChhZGRUb0V2ZW50R3JvdXBzLmJpbmQodGhpcywnT3V0Z29pbmcgZmxvdycpKTtjbGFzc2lmaWVyLmludGVybmFsRmxvd0V2ZW50cy5mb3JFYWNoKGFkZFRvRXZlbnRHcm91cHMuYmluZCh0aGlzLCdJbnRlcm5hbCBmbG93JykpO30sYWRkQ29ubmVjdGVkRXZlbnRzXzpmdW5jdGlvbihzZWxlY3Rpb24pe2lmKHNlbGVjdGlvbi5sZW5ndGg9PT0xKQotdGhpcy5hZGRDb25uZWN0ZWRFdmVudHNGb3JTbGljZV8oc2VsZWN0aW9uWzBdKTtlbHNlCi10aGlzLmFkZENvbm5lY3RlZEV2ZW50c0ZvclNlbGVjdGlvbl8oc2VsZWN0aW9uKTt9LGFkZENvbm5lY3RlZEV2ZW50c0ZvclNsaWNlXzpmdW5jdGlvbihzbGljZSl7dmFyIHByZWNlZGluZ0V2ZW50c1NlbGVjdGlvbj11bmRlZmluZWQ7dmFyIGZvbGxvd2luZ0V2ZW50c1NlbGVjdGlvbj11bmRlZmluZWQ7aWYoc2xpY2UuaW5GbG93RXZlbnRzJiZzbGljZS5pbkZsb3dFdmVudHMubGVuZ3RoIT09MCl7cHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9uPW5ldyB0ci5jLlNlbGVjdGlvbigpO3RoaXMucmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfKHByZWNlZGluZ0V2ZW50c1NlbGVjdGlvbix7fSxzbGljZSxmdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LmluRmxvd0V2ZW50czt9KTt0aGlzLmV2ZW50R3JvdXBzXy5wdXNoKHt0eXBlOidQcmVjZWRpbmcgZXZlbnRzJyxzZWxlY3Rpb246cHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9ufSk7fQotaWYoc2xpY2Uub3V0Rmxvd0V2ZW50cyYmc2xpY2Uub3V0Rmxvd0V2ZW50cy5sZW5ndGghPT0wKXtmb2xsb3dpbmdFdmVudHNTZWxlY3Rpb249bmV3IHRyLmMuU2VsZWN0aW9uKCk7dGhpcy5yZWN1cnNpdmVseUFkZENvbm5lY3RlZEV2ZW50c18oZm9sbG93aW5nRXZlbnRzU2VsZWN0aW9uLHt9LHNsaWNlLGZ1bmN0aW9uKGV2ZW50KXtyZXR1cm4gZXZlbnQub3V0Rmxvd0V2ZW50czt9KTt0aGlzLmV2ZW50R3JvdXBzXy5wdXNoKHt0eXBlOidGb2xsb3dpbmcgZXZlbnRzJyxzZWxlY3Rpb246Zm9sbG93aW5nRXZlbnRzU2VsZWN0aW9ufSk7fQotaWYocHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9uJiZmb2xsb3dpbmdFdmVudHNTZWxlY3Rpb24pe3ZhciBhbGxFdmVudHNTZWxlY3Rpb249bmV3IHRyLmMuU2VsZWN0aW9uKCk7Zm9yKHZhciBpPTA7aTxwcmVjZWRpbmdFdmVudHNTZWxlY3Rpb24ubGVuZ3RoOysraSkKLWFsbEV2ZW50c1NlbGVjdGlvbi5wdXNoKHByZWNlZGluZ0V2ZW50c1NlbGVjdGlvbltpXSk7Zm9yKHZhciBpPTE7aTxmb2xsb3dpbmdFdmVudHNTZWxlY3Rpb24ubGVuZ3RoOysraSkKLWFsbEV2ZW50c1NlbGVjdGlvbi5wdXNoKGZvbGxvd2luZ0V2ZW50c1NlbGVjdGlvbltpXSk7dGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7dHlwZTonQWxsIGNvbm5lY3RlZCBldmVudHMnLHNlbGVjdGlvbjphbGxFdmVudHNTZWxlY3Rpb259KTt9fSxhZGRDb25uZWN0ZWRFdmVudHNGb3JTZWxlY3Rpb25fOmZ1bmN0aW9uKHNlbGVjdGlvbil7dmFyIGV2ZW50SWRzPXt9O3ZhciBhbGxFdmVudHNTZWxlY3Rpb249bmV3IHRyLmMuU2VsZWN0aW9uKCk7c2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24oc2xpY2Upe3RoaXMucmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfKGFsbEV2ZW50c1NlbGVjdGlvbixldmVudElkcyxzbGljZSxmdW5jdGlvbihldmVudCl7dmFyIGZsb3dzPVtdO2lmKGV2ZW50LmluRmxvd0V2ZW50cykKLWZsb3dzPWZsb3dzLmNvbmNhdChldmVudC5pbkZsb3dFdmVudHMpO2lmKGV2ZW50Lm91dEZsb3dFdmVudHMpCi1mbG93cz1mbG93cy5jb25jYXQoZXZlbnQub3V0Rmxvd0V2ZW50cyk7cmV0dXJuIGZsb3dzO30pO30uYmluZCh0aGlzKSk7aWYoYWxsRXZlbnRzU2VsZWN0aW9uLmxlbmd0aD5zZWxlY3Rpb24ubGVuZ3RoKXt0aGlzLmV2ZW50R3JvdXBzXy5wdXNoKHt0eXBlOidBbGwgY29ubmVjdGVkIGV2ZW50cycsc2VsZWN0aW9uOmFsbEV2ZW50c1NlbGVjdGlvbn0pO319LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3ZhciB0YWJsZT10aGlzLiQudGFibGU7aWYodGhpcy5ldmVudEdyb3Vwc189PT11bmRlZmluZWQpCi10YWJsZS50YWJsZVJvd3M9W107ZWxzZQotdGFibGUudGFibGVSb3dzPXRoaXMuZXZlbnRHcm91cHNfLnNsaWNlKCk7dGFibGUucmVidWlsZCgpO30scmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfOmZ1bmN0aW9uKHNlbGVjdGlvbixldmVudElkcyxldmVudCxnZXRGbG93cyl7aWYoIWV2ZW50fHxldmVudElkc1tldmVudC5ndWlkXSkKLXJldHVybjtldmVudElkc1tldmVudC5ndWlkXT10cnVlO3NlbGVjdGlvbi5wdXNoKGV2ZW50KTt2YXIgZmxvd0V2ZW50cz1nZXRGbG93cyhldmVudCk7aWYoIWZsb3dFdmVudHMpCi1yZXR1cm47Zm9yKHZhciBpPTA7aTxmbG93RXZlbnRzLmxlbmd0aDsrK2kpe3NlbGVjdGlvbi5wdXNoKGZsb3dFdmVudHNbaV0pO3RoaXMucmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfKHNlbGVjdGlvbixldmVudElkcyxmbG93RXZlbnRzW2ldLnN0YXJ0U2xpY2UsZ2V0Rmxvd3MpO3RoaXMucmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfKHNlbGVjdGlvbixldmVudElkcyxmbG93RXZlbnRzW2ldLmVuZFNsaWNlLGdldEZsb3dzKTt9fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2luZ2xlLXRocmVhZC1zbGljZS1zdWItdmlldycse2dldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnNlbGVjdGlvbj1zZWxlY3Rpb247dGhpcy4kLnJlbGF0ZWRFdmVudHMuYWRkUmVsYXRlZEV2ZW50cyhzZWxlY3Rpb24pO2lmKHRoaXMuJC5yZWxhdGVkRXZlbnRzLmhhc1JlbGF0ZWRFdmVudHMoKSkKLXRoaXMuJC5yZWxhdGVkRXZlbnRzLnN0eWxlLmRpc3BsYXk9Jyc7ZWxzZQotdGhpcy4kLnJlbGF0ZWRFdmVudHMuc3R5bGUuZGlzcGxheT0nbm9uZSc7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2VsZWN0aW9uLXN1bW1hcnktdGFibGUnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25fPW5ldyB0ci5iLlJhbmdlKCk7fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuJC50YWJsZS5zaG93SGVhZGVyPWZhbHNlO3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9W3t0aXRsZTonTmFtZScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnRpdGxlO30sd2lkdGg6JzM1MHB4J30se3RpdGxlOidWYWx1ZScsd2lkdGg6JzEwMCUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy52YWx1ZTt9fV07fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLnNlbGVjdGlvbl89c2VsZWN0aW9uO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt2YXIgc2VsZWN0aW9uPXRoaXMuc2VsZWN0aW9uXzt2YXIgcm93cz1bXTt2YXIgaGFzUmFuZ2U7aWYodGhpcy5zZWxlY3Rpb25fJiYoIXNlbGVjdGlvbi5ib3VuZHMuaXNFbXB0eSkpCi1oYXNSYW5nZT10cnVlO2Vsc2UKLWhhc1JhbmdlPWZhbHNlO3Jvd3MucHVzaCh7dGl0bGU6J1NlbGVjdGlvbiBzdGFydCcsdmFsdWU6aGFzUmFuZ2U/dHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKHNlbGVjdGlvbi5ib3VuZHMubWluKTonPGVtcHR5Pid9KTtyb3dzLnB1c2goe3RpdGxlOidTZWxlY3Rpb24gZXh0ZW50Jyx2YWx1ZTpoYXNSYW5nZT90ci5iLnVuaXRzLmNyZWF0ZVRpbWVTcGFuKHNlbGVjdGlvbi5ib3VuZHMucmFuZ2UpOic8ZW1wdHk+J30pO3RoaXMuJC50YWJsZS50YWJsZVJvd3M9cm93czt0aGlzLiQudGFibGUucmVidWlsZCgpO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gaWRlbnRpdHkoZCl7cmV0dXJuIGQ7fQotZnVuY3Rpb24gU3RhdGlzdGljcygpe30KLVN0YXRpc3RpY3Muc3VtPWZ1bmN0aW9uKGFyeSxvcHRfZnVuYyxvcHRfdGhpcyl7dmFyIGZ1bmM9b3B0X2Z1bmN8fGlkZW50aXR5O3ZhciByZXQ9MDtmb3IodmFyIGk9MDtpPGFyeS5sZW5ndGg7aSsrKQotcmV0Kz1mdW5jLmNhbGwob3B0X3RoaXMsYXJ5W2ldLGkpO3JldHVybiByZXQ7fTtTdGF0aXN0aWNzLm1lYW49ZnVuY3Rpb24oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKXtyZXR1cm4gU3RhdGlzdGljcy5zdW0oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKS9hcnkubGVuZ3RoO307U3RhdGlzdGljcy52YXJpYW5jZT1mdW5jdGlvbihhcnksb3B0X2Z1bmMsb3B0X3RoaXMpe3ZhciBmdW5jPW9wdF9mdW5jfHxpZGVudGl0eTt2YXIgbWVhbj1TdGF0aXN0aWNzLm1lYW4oYXJ5LGZ1bmMsb3B0X3RoaXMpO3ZhciBzdW1PZlNxdWFyZWREaXN0YW5jZXM9U3RhdGlzdGljcy5zdW0oYXJ5LGZ1bmN0aW9uKGQsaSl7dmFyIHY9ZnVuYy5jYWxsKHRoaXMsZCxpKS1tZWFuO3JldHVybiB2KnY7fSxvcHRfdGhpcyk7cmV0dXJuIHN1bU9mU3F1YXJlZERpc3RhbmNlcy8oYXJ5Lmxlbmd0aC0xKTt9O1N0YXRpc3RpY3Muc3RkZGV2PWZ1bmN0aW9uKGFyeSxvcHRfZnVuYyxvcHRfdGhpcyl7cmV0dXJuIE1hdGguc3FydChTdGF0aXN0aWNzLnZhcmlhbmNlKGFyeSxvcHRfZnVuYyxvcHRfdGhpcykpO307U3RhdGlzdGljcy5tYXg9ZnVuY3Rpb24oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKXt2YXIgZnVuYz1vcHRfZnVuY3x8aWRlbnRpdHk7dmFyIHJldD0tSW5maW5pdHk7Zm9yKHZhciBpPTA7aTxhcnkubGVuZ3RoO2krKykKLXJldD1NYXRoLm1heChyZXQsZnVuYy5jYWxsKG9wdF90aGlzLGFyeVtpXSxpKSk7cmV0dXJuIHJldDt9O1N0YXRpc3RpY3MubWluPWZ1bmN0aW9uKGFyeSxvcHRfZnVuYyxvcHRfdGhpcyl7dmFyIGZ1bmM9b3B0X2Z1bmN8fGlkZW50aXR5O3ZhciByZXQ9SW5maW5pdHk7Zm9yKHZhciBpPTA7aTxhcnkubGVuZ3RoO2krKykKLXJldD1NYXRoLm1pbihyZXQsZnVuYy5jYWxsKG9wdF90aGlzLGFyeVtpXSxpKSk7cmV0dXJuIHJldDt9O1N0YXRpc3RpY3MucmFuZ2U9ZnVuY3Rpb24oYXJ5LG9wdF9mdW5jLG9wdF90aGlzKXt2YXIgZnVuYz1vcHRfZnVuY3x8aWRlbnRpdHk7dmFyIHJldD1uZXcgdHIuYi5SYW5nZSgpO2Zvcih2YXIgaT0wO2k8YXJ5Lmxlbmd0aDtpKyspCi1yZXQuYWRkVmFsdWUoZnVuYy5jYWxsKG9wdF90aGlzLGFyeVtpXSxpKSk7cmV0dXJuIHJldDt9Ci1TdGF0aXN0aWNzLnBlcmNlbnRpbGU9ZnVuY3Rpb24oYXJ5LHBlcmNlbnQsb3B0X2Z1bmMsb3B0X3RoaXMpe2lmKCEocGVyY2VudD49MCYmcGVyY2VudDw9MSkpCi10aHJvdyBuZXcgRXJyb3IoJ3BlcmNlbnQgbXVzdCBiZSBbMCwxXScpO3ZhciBmdW5jPW9wdF9mdW5jfHxpZGVudGl0eTt2YXIgdG1wPW5ldyBBcnJheShhcnkubGVuZ3RoKTtmb3IodmFyIGk9MDtpPGFyeS5sZW5ndGg7aSsrKQotdG1wW2ldPWZ1bmMuY2FsbChvcHRfdGhpcyxhcnlbaV0saSk7dG1wLnNvcnQoKTt2YXIgaWR4PU1hdGguZmxvb3IoKGFyeS5sZW5ndGgtMSkqcGVyY2VudCk7cmV0dXJuIHRtcFtpZHhdO307cmV0dXJue1N0YXRpc3RpY3M6U3RhdGlzdGljc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLmFuYWx5c2lzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIE11bHRpRXZlbnRTdW1tYXJ5KHRpdGxlLGV2ZW50cyl7dGhpcy50aXRsZT10aXRsZTt0aGlzLmR1cmF0aW9uXz11bmRlZmluZWQ7dGhpcy5zZWxmVGltZV89dW5kZWZpbmVkO3RoaXMuZXZlbnRzXz1ldmVudHM7dGhpcy5jcHVUaW1lc0NvbXB1dGVkXz1mYWxzZTt0aGlzLmNwdVNlbGZUaW1lXz11bmRlZmluZWQ7dGhpcy5jcHVEdXJhdGlvbl89dW5kZWZpbmVkO3RoaXMudW50b3RhbGxhYmxlQXJnc189W107dGhpcy50b3RhbGxlZEFyZ3NfPXVuZGVmaW5lZDt9O011bHRpRXZlbnRTdW1tYXJ5LnByb3RvdHlwZT17Z2V0IGR1cmF0aW9uKCl7aWYodGhpcy5kdXJhdGlvbl89PT11bmRlZmluZWQpe3RoaXMuZHVyYXRpb25fPXRyLmIuU3RhdGlzdGljcy5zdW0odGhpcy5ldmVudHNfLGZ1bmN0aW9uKGV2ZW50KXtyZXR1cm4gZXZlbnQuZHVyYXRpb247fSk7fQotcmV0dXJuIHRoaXMuZHVyYXRpb25fO30sZ2V0IGNwdVNlbGZUaW1lKCl7dGhpcy5jb21wdXRlQ3B1VGltZXNJZk5lZWRlZF8oKTtyZXR1cm4gdGhpcy5jcHVTZWxmVGltZV87fSxnZXQgY3B1RHVyYXRpb24oKXt0aGlzLmNvbXB1dGVDcHVUaW1lc0lmTmVlZGVkXygpO3JldHVybiB0aGlzLmNwdUR1cmF0aW9uXzt9LGNvbXB1dGVDcHVUaW1lc0lmTmVlZGVkXzpmdW5jdGlvbigpe2lmKHRoaXMuY3B1VGltZXNDb21wdXRlZF8pCi1yZXR1cm47dGhpcy5jcHVUaW1lc0NvbXB1dGVkXz10cnVlO3ZhciBjcHVTZWxmVGltZT0wO3ZhciBjcHVEdXJhdGlvbj0wO3ZhciBoYXNDcHVEYXRhPWZhbHNlO2Zvcih2YXIgaT0wO2k8dGhpcy5ldmVudHNfLmxlbmd0aDtpKyspe3ZhciBldmVudD10aGlzLmV2ZW50c19baV07aWYoZXZlbnQuY3B1RHVyYXRpb24hPT11bmRlZmluZWQpe2NwdUR1cmF0aW9uKz1ldmVudC5jcHVEdXJhdGlvbjtoYXNDcHVEYXRhPXRydWU7fQotaWYoZXZlbnQuY3B1U2VsZlRpbWUhPT11bmRlZmluZWQpe2NwdVNlbGZUaW1lKz1ldmVudC5jcHVTZWxmVGltZTtoYXNDcHVEYXRhPXRydWU7fX0KLWlmKGhhc0NwdURhdGEpe3RoaXMuY3B1RHVyYXRpb25fPWNwdUR1cmF0aW9uO3RoaXMuY3B1U2VsZlRpbWVfPWNwdVNlbGZUaW1lO319LGdldCBzZWxmVGltZSgpe2lmKHRoaXMuc2VsZlRpbWVfPT09dW5kZWZpbmVkKXt0aGlzLnNlbGZUaW1lXz0wO2Zvcih2YXIgaT0wO2k8dGhpcy5ldmVudHNfLmxlbmd0aDtpKyspe2lmKHRoaXMuZXZlbnRzX1tpXS5zZWxmVGltZSE9PXVuZGVmaW5lZCkKLXRoaXMuc2VsZlRpbWVfKz10aGlzLmV2ZW50c1tpXS5zZWxmVGltZTt9fQotcmV0dXJuIHRoaXMuc2VsZlRpbWVfO30sZ2V0IGV2ZW50cygpe3JldHVybiB0aGlzLmV2ZW50c187fSxnZXQgbnVtRXZlbnRzKCl7cmV0dXJuIHRoaXMuZXZlbnRzXy5sZW5ndGg7fSxnZXQgbnVtQWxlcnRzKCl7aWYodGhpcy5udW1BbGVydHNfPT09dW5kZWZpbmVkKXt0aGlzLm51bUFsZXJ0c189dHIuYi5TdGF0aXN0aWNzLnN1bSh0aGlzLmV2ZW50c18sZnVuY3Rpb24oZXZlbnQpe3JldHVybiBldmVudC5hc3NvY2lhdGVkQWxlcnRzLmxlbmd0aDt9KTt9Ci1yZXR1cm4gdGhpcy5udW1BbGVydHNfO30sZ2V0IHVudG90YWxsYWJsZUFyZ3MoKXt0aGlzLnVwZGF0ZUFyZ3NJZk5lZWRlZF8oKTtyZXR1cm4gdGhpcy51bnRvdGFsbGFibGVBcmdzXzt9LGdldCB0b3RhbGxlZEFyZ3MoKXt0aGlzLnVwZGF0ZUFyZ3NJZk5lZWRlZF8oKTtyZXR1cm4gdGhpcy50b3RhbGxlZEFyZ3NfO30sdXBkYXRlQXJnc0lmTmVlZGVkXzpmdW5jdGlvbigpe2lmKHRoaXMudG90YWxsZWRBcmdzXyE9PXVuZGVmaW5lZCkKLXJldHVybjt2YXIgdW50b3RhbGxhYmxlQXJncz17fTt2YXIgdG90YWxsZWRBcmdzPXt9O2Zvcih2YXIgaT0wO2k8dGhpcy5ldmVudHNfLmxlbmd0aDtpKyspe3ZhciBldmVudD10aGlzLmV2ZW50c19baV07Zm9yKHZhciBhcmdOYW1lIGluIGV2ZW50LmFyZ3Mpe3ZhciBhcmdWYWw9ZXZlbnQuYXJnc1thcmdOYW1lXTt2YXIgdHlwZT10eXBlb2YgYXJnVmFsO2lmKHR5cGUhPT0nbnVtYmVyJyl7dW50b3RhbGxhYmxlQXJnc1thcmdOYW1lXT10cnVlO2RlbGV0ZSB0b3RhbGxlZEFyZ3NbYXJnTmFtZV07Y29udGludWU7fQotaWYodW50b3RhbGxhYmxlQXJnc1thcmdOYW1lXSl7Y29udGludWU7fQotaWYodG90YWxsZWRBcmdzW2FyZ05hbWVdPT09dW5kZWZpbmVkKQotdG90YWxsZWRBcmdzW2FyZ05hbWVdPTA7dG90YWxsZWRBcmdzW2FyZ05hbWVdKz1hcmdWYWw7fX0KLXRoaXMudW50b3RhbGxhYmxlQXJnc189dHIuYi5kaWN0aW9uYXJ5S2V5cyh1bnRvdGFsbGFibGVBcmdzKTt0aGlzLnRvdGFsbGVkQXJnc189dG90YWxsZWRBcmdzO319O3JldHVybntNdWx0aUV2ZW50U3VtbWFyeTpNdWx0aUV2ZW50U3VtbWFyeX07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnNob3dUb3RhbHNfPWZhbHNlO3RoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXz10cnVlO3RoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfPXRydWU7dGhpcy5ldmVudHNCeVRpdGxlXz11bmRlZmluZWQ7fSx1cGRhdGVUYWJsZUNvbHVtbnNfOmZ1bmN0aW9uKHJvd3Mpe3ZhciBoYXNDcHVEYXRhPWZhbHNlO3ZhciBoYXNBbGVydHM9ZmFsc2U7cm93cy5mb3JFYWNoKGZ1bmN0aW9uKHJvdyl7aWYocm93LmNwdUR1cmF0aW9uIT09dW5kZWZpbmVkKQotaGFzQ3B1RGF0YT10cnVlO2lmKHJvdy5jcHVTZWxmVGltZSE9PXVuZGVmaW5lZCkKLWhhc0NwdURhdGE9dHJ1ZTtpZihyb3cubnVtQWxlcnRzKQotaGFzQWxlcnRzPXRydWU7fSk7dmFyIGNvbHVtbnM9W107Y29sdW1ucy5wdXNoKHt0aXRsZTonTmFtZScsdmFsdWU6ZnVuY3Rpb24ocm93KXtpZihyb3cudGl0bGU9PT0nVG90YWxzJykKLXJldHVybidUb3RhbHMnO3ZhciBsaW5rRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpe3JldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24ocm93LmV2ZW50cyk7fSxyb3cudGl0bGUpO3JldHVybiBsaW5rRWw7fSx3aWR0aDonMzUwcHgnLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLnRpdGxlLmxvY2FsZUNvbXBhcmUocm93Qi50aXRsZSk7fX0pO2lmKHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyl7Y29sdW1ucy5wdXNoKHt0aXRsZTonV2FsbCBEdXJhdGlvbiAobXMpJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTcGFuKHJvdy5kdXJhdGlvbik7fSx3aWR0aDonPHVwYXRlZCBmdXJ0aGVyIGRvd24+JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS5kdXJhdGlvbi1yb3dCLmR1cmF0aW9uO319KTt9Ci1pZih0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8mJmhhc0NwdURhdGEpe2NvbHVtbnMucHVzaCh7dGl0bGU6J0NQVSBEdXJhdGlvbiAobXMpJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTcGFuKHJvdy5jcHVEdXJhdGlvbik7fSx3aWR0aDonPHVwYXRlZCBmdXJ0aGVyIGRvd24+JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS5jcHVEdXJhdGlvbi1yb3dCLmNwdUR1cmF0aW9uO319KTt9Ci1pZih0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyYmdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fKXtjb2x1bW5zLnB1c2goe3RpdGxlOidTZWxmIHRpbWUgKG1zKScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIuYi51bml0cy5jcmVhdGVUaW1lU3Bhbihyb3cuc2VsZlRpbWUpO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0Euc2VsZlRpbWUtcm93Qi5zZWxmVGltZTt9fSk7fQotaWYodGhpcy5ldmVudHNIYXZlU3ViUm93c18mJnRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyYmaGFzQ3B1RGF0YSl7Y29sdW1ucy5wdXNoKHt0aXRsZTonQ1BVIFNlbGYgVGltZSAobXMpJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTcGFuKHJvdy5jcHVTZWxmVGltZSk7fSx3aWR0aDonPHVwYXRlZCBmdXJ0aGVyIGRvd24+JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS5jcHVTZWxmVGltZS1yb3dCLmNwdVNlbGZUaW1lO319KTt9Ci1jb2x1bW5zLnB1c2goe3RpdGxlOidPY2N1cnJlbmNlcycsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93Lm51bUV2ZW50czt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLm51bUV2ZW50cy1yb3dCLm51bUV2ZW50czt9fSk7dmFyIGFsZXJ0c0NvbHVtbkluZGV4O2lmKGhhc0FsZXJ0cyl7Y29sdW1ucy5wdXNoKHt0aXRsZTonTnVtIEFsZXJ0cycsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93Lm51bUFsZXJ0czt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLm51bUFsZXJ0cy1yb3dCLm51bUFsZXJ0czt9fSk7YWxlcnRzQ29sdW1uSW5kZXg9Y29sdW1ucy5sZW5ndGgtMTt9Ci12YXIgY29sV2lkdGhQZXJjZW50YWdlO2lmKGNvbHVtbnMubGVuZ3RoPT0xKQotY29sV2lkdGhQZXJjZW50YWdlPScxMDAlJztlbHNlCi1jb2xXaWR0aFBlcmNlbnRhZ2U9KDEwMC8oY29sdW1ucy5sZW5ndGgtMSkpLnRvRml4ZWQoMykrJyUnO2Zvcih2YXIgaT0xO2k8Y29sdW1ucy5sZW5ndGg7aSsrKQotY29sdW1uc1tpXS53aWR0aD1jb2xXaWR0aFBlcmNlbnRhZ2U7dGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1ucz1jb2x1bW5zO2lmKGhhc0FsZXJ0cyl7dGhpcy4kLnRhYmxlLnNvcnRDb2x1bW5JbmRleD1hbGVydHNDb2x1bW5JbmRleDt0aGlzLiQudGFibGUuc29ydERlc2NlbmRpbmc9dHJ1ZTt9fSxjb25maWd1cmU6ZnVuY3Rpb24oY29uZmlnKXtpZihjb25maWcuZXZlbnRzQnlUaXRsZT09PXVuZGVmaW5lZCkKLXRocm93IG5ldyBFcnJvcignUmVxdWlyZWQ6IGV2ZW50c0J5VGl0bGUnKTtpZihjb25maWcuc2hvd1RvdGFscyE9PXVuZGVmaW5lZCkKLXRoaXMuc2hvd1RvdGFsc189Y29uZmlnLnNob3dUb3RhbHM7ZWxzZQotdGhpcy5zaG93VG90YWxzXz10cnVlO2lmKGNvbmZpZy5ldmVudHNIYXZlRHVyYXRpb24hPT11bmRlZmluZWQpCi10aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl89Y29uZmlnLmV2ZW50c0hhdmVEdXJhdGlvbjtlbHNlCi10aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl89dHJ1ZTtpZihjb25maWcuZXZlbnRzSGF2ZVN1YlJvd3MhPT11bmRlZmluZWQpCi10aGlzLmV2ZW50c0hhdmVTdWJSb3dzXz1jb25maWcuZXZlbnRzSGF2ZVN1YlJvd3M7ZWxzZQotdGhpcy5ldmVudHNIYXZlU3ViUm93c189dHJ1ZTt0aGlzLmV2ZW50c0J5VGl0bGVfPWNvbmZpZy5ldmVudHNCeVRpdGxlO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgc2hvd1RvdGFscygpe3JldHVybiB0aGlzLnNob3dUb3RhbHNfO30sc2V0IHNob3dUb3RhbHMoc2hvd1RvdGFscyl7dGhpcy5zaG93VG90YWxzXz1zaG93VG90YWxzO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgZXZlbnRzSGF2ZUR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXzt9LHNldCBldmVudHNIYXZlRHVyYXRpb24oZXZlbnRzSGF2ZUR1cmF0aW9uKXt0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl89ZXZlbnRzSGF2ZUR1cmF0aW9uO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgZXZlbnRzSGF2ZVN1YlJvd3MoKXtyZXR1cm4gdGhpcy5ldmVudHNIYXZlU3ViUm93c187fSxzZXQgZXZlbnRzSGF2ZVN1YlJvd3MoZXZlbnRzSGF2ZVN1YlJvd3Mpe3RoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfPWV2ZW50c0hhdmVTdWJSb3dzO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgZXZlbnRzQnlUaXRsZSgpe3JldHVybiB0aGlzLmV2ZW50c0J5VGl0bGVfO30sc2V0IGV2ZW50c0J5VGl0bGUoZXZlbnRzQnlUaXRsZSl7dGhpcy5ldmVudHNCeVRpdGxlXz1ldmVudHNCeVRpdGxlO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgc2VsZWN0aW9uQm91bmRzKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uQm91bmRzXzt9LHNldCBzZWxlY3Rpb25Cb3VuZHMoc2VsZWN0aW9uQm91bmRzKXt0aGlzLnNlbGVjdGlvbkJvdW5kc189c2VsZWN0aW9uQm91bmRzO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt2YXIgZXZlbnRzQnlUaXRsZTtpZih0aGlzLmV2ZW50c0J5VGl0bGVfIT09dW5kZWZpbmVkKQotZXZlbnRzQnlUaXRsZT10aGlzLmV2ZW50c0J5VGl0bGVfO2Vsc2UKLWV2ZW50c0J5VGl0bGU9W107dmFyIGFsbEV2ZW50cz1bXTt2YXIgcm93cz1bXTt0ci5iLml0ZXJJdGVtcyhldmVudHNCeVRpdGxlLGZ1bmN0aW9uKHRpdGxlLGV2ZW50c09mU2luZ2xlVGl0bGUpe2FsbEV2ZW50cy5wdXNoLmFwcGx5KGFsbEV2ZW50cyxldmVudHNPZlNpbmdsZVRpdGxlKTt2YXIgcm93PW5ldyB0ci5jLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KHRpdGxlLGV2ZW50c09mU2luZ2xlVGl0bGUpO3Jvd3MucHVzaChyb3cpO30pO3RoaXMudXBkYXRlVGFibGVDb2x1bW5zXyhyb3dzKTt0aGlzLiQudGFibGUudGFibGVSb3dzPXJvd3M7dmFyIGZvb3RlclJvd3M9W107aWYodGhpcy5zaG93VG90YWxzXyl7Zm9vdGVyUm93cy5wdXNoKG5ldyB0ci5jLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KCdUb3RhbHMnLGFsbEV2ZW50cykpO30KLXRoaXMuJC50YWJsZS5mb290ZXJSb3dzPWZvb3RlclJvd3M7dGhpcy4kLnRhYmxlLnJlYnVpbGQoKTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1tdWx0aS1ldmVudC1kZXRhaWxzLXRhYmxlJyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uXz11bmRlZmluZWQ7dGhpcy5ldmVudHNIYXZlRHVyYXRpb25fPXRydWU7dGhpcy5ldmVudHNIYXZlU3ViUm93c189dHJ1ZTt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5pbml0VGl0bGVUYWJsZV8oKTt9LGdldCBldmVudHNIYXZlRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fO30sc2V0IGV2ZW50c0hhdmVEdXJhdGlvbihldmVudHNIYXZlRHVyYXRpb24pe3RoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXz1ldmVudHNIYXZlRHVyYXRpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBldmVudHNIYXZlU3ViUm93cygpe3JldHVybiB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXzt9LHNldCBldmVudHNIYXZlU3ViUm93cyhldmVudHNIYXZlU3ViUm93cyl7dGhpcy5ldmVudHNIYXZlU3ViUm93c189ZXZlbnRzSGF2ZVN1YlJvd3M7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuc2VsZWN0aW9uXz1zZWxlY3Rpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3ZhciBzZWxlY3Rpb249dGhpcy5zZWxlY3Rpb25fO3RoaXMudXBkYXRlVGl0bGVUYWJsZV8oKTtpZih0aGlzLnNlbGVjdGlvbl89PT11bmRlZmluZWQpe3RoaXMuJC50YWJsZS50YWJsZVJvd3M9W107dGhpcy4kLnRhYmxlLnRhYmxlRm9vdGVyUm93cz1bXTt0aGlzLiQudGFibGUucmVidWlsZCgpO3JldHVybjt9Ci12YXIgc3VtbWFyeT1uZXcgdHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSgnVG90YWxzJyx0aGlzLnNlbGVjdGlvbl8pO3RoaXMudXBkYXRlQ29sdW1uc18oc3VtbWFyeSk7dGhpcy51cGRhdGVSb3dzXyhzdW1tYXJ5KTt0aGlzLiQudGFibGUucmVidWlsZCgpO30saW5pdFRpdGxlVGFibGVfOmZ1bmN0aW9uKCl7dmFyIHRhYmxlPXRoaXMuJC50aXRsZXRhYmxlO3RhYmxlLnNob3dIZWFkZXI9ZmFsc2U7dGFibGUudGFibGVDb2x1bW5zPVt7dGl0bGU6J1RpdGxlJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cudGl0bGU7fSx3aWR0aDonMzUwcHgnfSx7dGl0bGU6J1ZhbHVlJyx3aWR0aDonMTAwJScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnZhbHVlO319XTt9LHVwZGF0ZVRpdGxlVGFibGVfOmZ1bmN0aW9uKCl7dmFyIHRpdGxlO2lmKHRoaXMuc2VsZWN0aW9uXyYmdGhpcy5zZWxlY3Rpb25fLmxlbmd0aCkKLXRpdGxlPXRoaXMuc2VsZWN0aW9uX1swXS50aXRsZTtlbHNlCi10aXRsZT0nPE5vIHNlbGVjdGlvbj4nO3ZhciB0YWJsZT10aGlzLiQudGl0bGV0YWJsZTt0YWJsZS50YWJsZVJvd3M9W3t0aXRsZTonVGl0bGUnLHZhbHVlOnRpdGxlfV07fSx1cGRhdGVDb2x1bW5zXzpmdW5jdGlvbihzdW1tYXJ5KXt2YXIgaGFzQ3B1RGF0YTtpZihzdW1tYXJ5LmNwdUR1cmF0aW9uIT09dW5kZWZpbmVkKQotaGFzQ3B1RGF0YT10cnVlO2lmKHN1bW1hcnkuY3B1U2VsZlRpbWUhPT11bmRlZmluZWQpCi1oYXNDcHVEYXRhPXRydWU7dmFyIGNvbFdpZHRoUGVyY2VudGFnZTtpZihoYXNDcHVEYXRhKQotY29sV2lkdGhQZXJjZW50YWdlPScyMCUnO2Vsc2UKLWNvbFdpZHRoUGVyY2VudGFnZT0nMzMuMzMzMyUnO3ZhciBjb2x1bW5zPVtdO2NvbHVtbnMucHVzaCh7dGl0bGU6J1N0YXJ0Jyx2YWx1ZTpmdW5jdGlvbihyb3cpe2lmKHJvdy5fX3Byb3RvX189PT10ci5jLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5LnByb3RvdHlwZSl7cmV0dXJuIHJvdy50aXRsZTt9Ci12YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7bGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHRyLmMuU2VsZWN0aW9uKHJvdy5ldmVudCk7fSk7bGlua0VsLmFwcGVuZENoaWxkKHRyLmIudW5pdHMuY3JlYXRlVGltZVN0YW1wU3Bhbihyb3cuc3RhcnQpKTtyZXR1cm4gbGlua0VsO30sd2lkdGg6JzM1MHB4JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS5zdGFydC1yb3dCLnN0YXJ0O319KTtpZih0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8pe2NvbHVtbnMucHVzaCh7dGl0bGU6J1dhbGwgRHVyYXRpb24gKG1zKScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIuYi51bml0cy5jcmVhdGVUaW1lU3Bhbihyb3cuZHVyYXRpb24pO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EuZHVyYXRpb24tcm93Qi5kdXJhdGlvbjt9fSk7fQotaWYodGhpcy5ldmVudHNIYXZlRHVyYXRpb25fJiZoYXNDcHVEYXRhKXtjb2x1bW5zLnB1c2goe3RpdGxlOidDUFUgRHVyYXRpb24gKG1zKScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIuYi51bml0cy5jcmVhdGVUaW1lU3Bhbihyb3cuY3B1RHVyYXRpb24pO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EuY3B1RHVyYXRpb24tcm93Qi5jcHVEdXJhdGlvbjt9fSk7fQotaWYodGhpcy5ldmVudHNIYXZlU3ViUm93c18mJnRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyl7Y29sdW1ucy5wdXNoKHt0aXRsZTonU2VsZiB0aW1lIChtcyknLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LnNlbGZUaW1lKTt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLnNlbGZUaW1lLXJvd0Iuc2VsZlRpbWU7fX0pO30KLWlmKHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfJiZ0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8mJmhhc0NwdURhdGEpe2NvbHVtbnMucHVzaCh7dGl0bGU6J0NQVSBTZWxmIFRpbWUgKG1zKScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIuYi51bml0cy5jcmVhdGVUaW1lU3Bhbihyb3cuY3B1U2VsZlRpbWUpO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EuY3B1U2VsZlRpbWUtcm93Qi5jcHVTZWxmVGltZTt9fSk7fQotdmFyIGFyZ0tleXM9dHIuYi5kaWN0aW9uYXJ5S2V5cyhzdW1tYXJ5LnRvdGFsbGVkQXJncyk7YXJnS2V5cy5zb3J0KCk7dmFyIG90aGVyS2V5cz1zdW1tYXJ5LnVudG90YWxsYWJsZUFyZ3Muc2xpY2UoMCk7b3RoZXJLZXlzLnNvcnQoKTthcmdLZXlzLnB1c2guYXBwbHkoYXJnS2V5cyxvdGhlcktleXMpO3ZhciBrZXlzV2l0aENvbHVtbnM9YXJnS2V5cy5zbGljZSgwLDQpO3ZhciBrZXlzSW5PdGhlckNvbHVtbj1hcmdLZXlzLnNsaWNlKDQpO2tleXNXaXRoQ29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGFyZ0tleSl7dmFyIGhhc1RvdGFsPXN1bW1hcnkudG90YWxsZWRBcmdzW2FyZ0tleV07dmFyIGNvbERlc2M9e3RpdGxlOidBcmc6ICcrYXJnS2V5LHZhbHVlOmZ1bmN0aW9uKHJvdyl7aWYocm93Ll9fcHJvdG9fXyE9PXRyLmMuYW5hbHlzaXMuTXVsdGlFdmVudFN1bW1hcnkucHJvdG90eXBlKXt2YXIgYXJnVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpO2FyZ1ZpZXcub2JqZWN0PXJvdy5hcmdzW2FyZ0tleV07cmV0dXJuIGFyZ1ZpZXc7fQotaWYoaGFzVG90YWwpCi1yZXR1cm4gcm93LnRvdGFsbGVkQXJnc1thcmdLZXldO3JldHVybicnO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPid9O2lmKGhhc1RvdGFsKXtjb2xEZXNjLmNtcD1mdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLmFyZ3NbYXJnS2V5XS1yb3dCLmFyZ3NbYXJnS2V5XTt9fQotY29sdW1ucy5wdXNoKGNvbERlc2MpO30pO2lmKGtleXNJbk90aGVyQ29sdW1uLmxlbmd0aCl7Y29sdW1ucy5wdXNoKHt0aXRsZTonT3RoZXIgQXJncycsdmFsdWU6ZnVuY3Rpb24ocm93KXtpZihyb3cuX19wcm90b19fPT09dHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGUpCi1yZXR1cm4nJzt2YXIgYXJnVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpO3ZhciBvYmo9e307Zm9yKHZhciBpPTA7aTxrZXlzSW5PdGhlckNvbHVtbi5sZW5ndGg7aSsrKQotb2JqW2tleXNJbk90aGVyQ29sdW1uW2ldXT1yb3cuYXJnc1trZXlzSW5PdGhlckNvbHVtbltpXV07YXJnVmlldy5vYmplY3Q9b2JqO3JldHVybiBhcmdWaWV3O30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPid9KTt9Ci12YXIgY29sV2lkdGhQZXJjZW50YWdlO2lmKGNvbHVtbnMubGVuZ3RoPT0xKQotY29sV2lkdGhQZXJjZW50YWdlPScxMDAlJztlbHNlCi1jb2xXaWR0aFBlcmNlbnRhZ2U9KDEwMC8oY29sdW1ucy5sZW5ndGgtMSkpLnRvRml4ZWQoMykrJyUnO2Zvcih2YXIgaT0xO2k8Y29sdW1ucy5sZW5ndGg7aSsrKQotY29sdW1uc1tpXS53aWR0aD1jb2xXaWR0aFBlcmNlbnRhZ2U7dGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1ucz1jb2x1bW5zO30sdXBkYXRlUm93c186ZnVuY3Rpb24oc3VtbWFyeSl7dGhpcy4kLnRhYmxlLnNvcnRDb2x1bW5JbmRleD0wO2Z1bmN0aW9uIFJvdyhldmVudCl7dGhpcy5ldmVudD1ldmVudDt9Ci1Sb3cucHJvdG90eXBlPXtnZXQgc3RhcnQoKXtyZXR1cm4gdGhpcy5ldmVudC5zdGFydDt9LGdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLmV2ZW50LmR1cmF0aW9uO30sZ2V0IGNwdUR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuZXZlbnQuY3B1RHVyYXRpb247fSxnZXQgc2VsZlRpbWUoKXtyZXR1cm4gdGhpcy5ldmVudC5zZWxmVGltZTt9LGdldCBjcHVTZWxmVGltZSgpe3JldHVybiB0aGlzLmV2ZW50LmNwdVNlbGZUaW1lO30sZ2V0IGFyZ3MoKXtyZXR1cm4gdGhpcy5ldmVudC5hcmdzO319O3RoaXMuJC50YWJsZS50YWJsZVJvd3M9dGhpcy5zZWxlY3Rpb25fLm1hcChmdW5jdGlvbihldmVudCl7cmV0dXJuIG5ldyBSb3coZXZlbnQpO30pO3RoaXMuJC50YWJsZS5mb290ZXJSb3dzPVtzdW1tYXJ5XTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl89dHJ1ZTt0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXz10cnVlO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHNlbGVjdGlvbi5sZW5ndGg8PTEpCi10aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgbXVsdGlwbGUgaXRlbXMnKTt0aGlzLnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzOmZ1bmN0aW9uKHNlbGVjdGlvbil7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBldmVudHNIYXZlRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fO30sc2V0IGV2ZW50c0hhdmVEdXJhdGlvbihldmVudHNIYXZlRHVyYXRpb24pe3RoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXz1ldmVudHNIYXZlRHVyYXRpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBldmVudHNIYXZlU3ViUm93cygpe3JldHVybiB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXzt9LHNldCBldmVudHNIYXZlU3ViUm93cyhldmVudHNIYXZlU3ViUm93cyl7dGhpcy5ldmVudHNIYXZlU3ViUm93c189ZXZlbnRzSGF2ZVN1YlJvd3M7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3ZhciBzZWxlY3Rpb249dGhpcy5jdXJyZW50U2VsZWN0aW9uXzt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD0nJztpZighc2VsZWN0aW9uKQotcmV0dXJuO3ZhciBldmVudHNCeVRpdGxlPXNlbGVjdGlvbi5nZXRFdmVudHNPcmdhbml6ZWRCeVRpdGxlKCk7dmFyIG51bVRpdGxlcz10ci5iLmRpY3Rpb25hcnlMZW5ndGgoZXZlbnRzQnlUaXRsZSk7dmFyIHN1bW1hcnlUYWJsZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlJyk7c3VtbWFyeVRhYmxlRWwuY29uZmlndXJlKHtzaG93VG90YWxzOm51bVRpdGxlcz4xLGV2ZW50c0J5VGl0bGU6ZXZlbnRzQnlUaXRsZSxldmVudHNIYXZlRHVyYXRpb246dGhpcy5ldmVudHNIYXZlRHVyYXRpb25fLGV2ZW50c0hhdmVTdWJSb3dzOnRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NffSk7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoc3VtbWFyeVRhYmxlRWwpO3ZhciBzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2VsZWN0aW9uLXN1bW1hcnktdGFibGUnKTtzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbC5zZWxlY3Rpb249dGhpcy5jdXJyZW50U2VsZWN0aW9uXzt0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbCk7aWYobnVtVGl0bGVzPT09MSl7dmFyIGRldGFpbHNUYWJsZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1kZXRhaWxzLXRhYmxlJyk7ZGV0YWlsc1RhYmxlRWwuZXZlbnRzSGF2ZUR1cmF0aW9uPXRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXztkZXRhaWxzVGFibGVFbC5ldmVudHNIYXZlU3ViUm93cz10aGlzLmV2ZW50c0hhdmVTdWJSb3dzXztkZXRhaWxzVGFibGVFbC5zZWxlY3Rpb249c2VsZWN0aW9uO3RoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKGRldGFpbHNUYWJsZUVsKTt9fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtbXVsdGktdGhyZWFkLXNsaWNlLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLnNlbGVjdGlvbl89c2VsZWN0aW9uO2lmKHdpbmRvdy5SYXN0ZXJUYXNrVmlldyE9PXVuZGVmaW5lZCl7aWYodHIuZS5jYy5SYXN0ZXJUYXNrU2VsZWN0aW9uLnN1cHBvcnRzKHNlbGVjdGlvbikpe3ZhciBsdHZTZWxlY3Rpb249bmV3IHRyLmUuY2MuUmFzdGVyVGFza1NlbGVjdGlvbihzZWxlY3Rpb24pO3ZhciBsdHY9bmV3IHRyLmUuY2MuTGF5ZXJUcmVlSG9zdEltcGxTbmFwc2hvdFZpZXcoKTtsdHYub2JqZWN0U25hcHNob3Q9bHR2U2VsZWN0aW9uLmNvbnRhaW5pbmdTbmFwc2hvdDtsdHYuc2VsZWN0aW9uPWx0dlNlbGVjdGlvbjtsdHYuZXh0cmFIaWdobGlnaHRzQnlMYXllcklkPWx0dlNlbGVjdGlvbi5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQ7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9Jyc7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQobHR2KTt0aGlzLnJlcXVpcmVzVGFsbFZpZXdfPXRydWU7cmV0dXJuO319Ci10aGlzLiQuY29udGVudC50ZXh0Q29udGVudD0nJzt2YXIgbWVzdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTttZXN2LnNlbGVjdGlvbj1zZWxlY3Rpb247dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQobWVzdik7dmFyIHJlbGF0ZWRFdmVudHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXJlbGF0ZWQtZXZlbnRzJyk7cmVsYXRlZEV2ZW50cy5hZGRSZWxhdGVkRXZlbnRzKHNlbGVjdGlvbik7aWYocmVsYXRlZEV2ZW50cy5oYXNSZWxhdGVkRXZlbnRzKCkpe3RoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKHJlbGF0ZWRFdmVudHMpO319LGdldCByZXF1aXJlc1RhbGxWaWV3KCl7aWYodGhpcy4kLmNvbnRlbnQuY2hpbGRyZW4ubGVuZ3RoPT09MCkKLXJldHVybiBmYWxzZTt2YXIgY2hpbGRUYWdOYW1lPXRoaXMuJC5jb250ZW50LmNoaWxkcmVuWzBdLnRhZ05hbWU7aWYoY2hpbGRUYWdOYW1lPT09J1RSLUMtQS1NVUxUSS1FVkVOVC1TVUItVklFVycpCi1yZXR1cm4gZmFsc2U7cmV0dXJuIHRydWU7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3Jyx7Z2V0RXZlbnRSb3dzXzpmdW5jdGlvbihldmVudCl7dmFyIHJvd3M9dGhpcy5fX3Byb3RvX18uX19wcm90b19fLmdldEV2ZW50Um93c18oZXZlbnQpO3Jvd3Muc3BsaWNlKDAsMCx7bmFtZTonSUQnLHZhbHVlOmV2ZW50LmlkfSk7cmV0dXJuIHJvd3M7fSxnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCl7aWYoIXRoaXMuY3VycmVudFNlbGVjdGlvbl8pCi1yZXR1cm4gdW5kZWZpbmVkO2lmKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdLmFzc29jaWF0ZWRFdmVudHMpCi1yZXR1cm47cmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbih0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdLmFzc29jaWF0ZWRFdmVudHMpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLW11bHRpLWFzeW5jLXNsaWNlLXN1Yi12aWV3Jyx7Z2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLiQuY29udGVudC5zZWxlY3Rpb247fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uPXNlbGVjdGlvbjt9LGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKXtpZighdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKLXJldHVybiB1bmRlZmluZWQ7dmFyIHNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24oKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oYXN5bmNFdmVudCl7aWYoIWFzeW5jRXZlbnQuYXNzb2NpYXRlZEV2ZW50cykKLXJldHVybjthc3luY0V2ZW50LmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCl7c2VsZWN0aW9uLnB1c2goZXZlbnQpO30pO30pO2lmKHNlbGVjdGlvbi5sZW5ndGgpCi1yZXR1cm4gc2VsZWN0aW9uO3JldHVybiB1bmRlZmluZWQ7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2luZ2xlLWNwdS1zbGljZS1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXtpZihzZWxlY3Rpb24ubGVuZ3RoIT09MSkKLXRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgc2xpY2VzJyk7aWYoIShzZWxlY3Rpb25bMF1pbnN0YW5jZW9mIHRyLm1vZGVsLkNwdVNsaWNlKSkKLXRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyB0aHJlYWQgdGltZSBzbGljZXMnKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt2YXIgY3B1U2xpY2U9c2VsZWN0aW9uWzBdO3ZhciB0aHJlYWQ9Y3B1U2xpY2UudGhyZWFkVGhhdFdhc1J1bm5pbmc7dmFyIHNoYWRvd1Jvb3Q9dGhpcy5zaGFkb3dSb290O2lmKHRocmVhZCl7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcHJvY2Vzcy1uYW1lJykudGV4dENvbnRlbnQ9dGhyZWFkLnBhcmVudC51c2VyRnJpZW5kbHlOYW1lO3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3RocmVhZC1uYW1lJykudGV4dENvbnRlbnQ9dGhyZWFkLnVzZXJGcmllbmRseU5hbWU7fWVsc2V7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcHJvY2Vzcy1uYW1lJykucGFyZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5PSdub25lJztzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN0aHJlYWQtbmFtZScpLnRleHRDb250ZW50PWNwdVNsaWNlLnRpdGxlO30KLXNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N0YXJ0JykudGV4dENvbnRlbnQ9dHIuYi51bml0cy50c1N0cmluZyhjcHVTbGljZS5zdGFydCk7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjZHVyYXRpb24nKS50ZXh0Q29udGVudD10ci5iLnVuaXRzLnRzU3RyaW5nKGNwdVNsaWNlLmR1cmF0aW9uKTt2YXIgcnVubmluZ1RocmVhZEVsPXNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3J1bm5pbmctdGhyZWFkJyk7dmFyIHRpbWVTbGljZT1jcHVTbGljZS5nZXRBc3NvY2lhdGVkVGltZXNsaWNlKCk7aWYoIXRpbWVTbGljZSl7cnVubmluZ1RocmVhZEVsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheT0nbm9uZSc7fWVsc2V7dmFyIHRocmVhZExpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTt0aHJlYWRMaW5rLnNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24odGltZVNsaWNlKTt0aHJlYWRMaW5rLnRleHRDb250ZW50PSdDbGljayB0byBzZWxlY3QnO3J1bm5pbmdUaHJlYWRFbC5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXk9Jyc7cnVubmluZ1RocmVhZEVsLnRleHRDb250ZW50PScnO3J1bm5pbmdUaHJlYWRFbC5hcHBlbmRDaGlsZCh0aHJlYWRMaW5rKTt9Ci1zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNhcmdzJykub2JqZWN0PWNwdVNsaWNlLmFyZ3M7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtbXVsdGktY3B1LXNsaWNlLXN1Yi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudC5ldmVudHNIYXZlU3ViUm93cz1mYWxzZTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLXNpbmdsZS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXtpZihzZWxlY3Rpb24ubGVuZ3RoIT09MSkKLXRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgc2xpY2VzJyk7aWYoIShzZWxlY3Rpb25bMF1pbnN0YW5jZW9mIHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSkpCi10aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgdGhyZWFkIHRpbWUgc2xpY2VzJyk7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247dmFyIHRpbWVTbGljZT1zZWxlY3Rpb25bMF07dmFyIHRocmVhZD10aW1lU2xpY2UudGhyZWFkO3ZhciBzaGFkb3dSb290PXRoaXMuc2hhZG93Um9vdDtzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNzdGF0ZScpLnRleHRDb250ZW50PXRpbWVTbGljZS50aXRsZTt2YXIgc3RhdGVDb2xvcj10ci5iLnVpLmdldENvbG9yUGFsZXR0ZSgpW3RpbWVTbGljZS5jb2xvcklkXTtzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNzdGF0ZScpLnN0eWxlLmJhY2tncm91bmRDb2xvcj1zdGF0ZUNvbG9yO3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3Byb2Nlc3MtbmFtZScpLnRleHRDb250ZW50PXRocmVhZC5wYXJlbnQudXNlckZyaWVuZGx5TmFtZTtzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN0aHJlYWQtbmFtZScpLnRleHRDb250ZW50PXRocmVhZC51c2VyRnJpZW5kbHlOYW1lO3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N0YXJ0JykudGV4dENvbnRlbnQ9dHIuYi51bml0cy50c1N0cmluZyh0aW1lU2xpY2Uuc3RhcnQpO3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2R1cmF0aW9uJykudGV4dENvbnRlbnQ9dHIuYi51bml0cy50c1N0cmluZyh0aW1lU2xpY2UuZHVyYXRpb24pO3ZhciBvbkNwdUVsPXNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI29uLWNwdScpO29uQ3B1RWwudGV4dENvbnRlbnQ9Jyc7dmFyIHJ1bm5pbmdJbnN0ZWFkRWw9c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcnVubmluZy1pbnN0ZWFkJyk7aWYodGltZVNsaWNlLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nKXtydW5uaW5nSW5zdGVhZEVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocnVubmluZ0luc3RlYWRFbCk7dmFyIGNwdUxpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTtjcHVMaW5rLnNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24odGltZVNsaWNlLmdldEFzc29jaWF0ZWRDcHVTbGljZSgpKTtjcHVMaW5rLnRleHRDb250ZW50PXRpbWVTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZy51c2VyRnJpZW5kbHlOYW1lO29uQ3B1RWwuYXBwZW5kQ2hpbGQoY3B1TGluayk7fWVsc2V7b25DcHVFbC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKG9uQ3B1RWwpO3ZhciBjcHVTbGljZVRoYXRUb29rQ3B1PXRpbWVTbGljZS5nZXRDcHVTbGljZVRoYXRUb29rQ3B1KCk7aWYoY3B1U2xpY2VUaGF0VG9va0NwdSl7dmFyIGNwdUxpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTtjcHVMaW5rLnNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24oY3B1U2xpY2VUaGF0VG9va0NwdSk7aWYoY3B1U2xpY2VUaGF0VG9va0NwdS50aHJlYWQpCi1jcHVMaW5rLnRleHRDb250ZW50PWNwdVNsaWNlVGhhdFRvb2tDcHUudGhyZWFkLnVzZXJGcmllbmRseU5hbWU7ZWxzZQotY3B1TGluay50ZXh0Q29udGVudD1jcHVTbGljZVRoYXRUb29rQ3B1LnRpdGxlO3J1bm5pbmdJbnN0ZWFkRWwuYXBwZW5kQ2hpbGQoY3B1TGluayk7fWVsc2V7cnVubmluZ0luc3RlYWRFbC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHJ1bm5pbmdJbnN0ZWFkRWwpO319Ci12YXIgYXJnc0VsPXNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2FyZ3MnKTtpZih0ci5iLmRpY3Rpb25hcnlLZXlzKHRpbWVTbGljZS5hcmdzKS5sZW5ndGg+MCl7dmFyIGFyZ3NWaWV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7YXJnc1ZpZXcub2JqZWN0PXRpbWVTbGljZS5hcmdzO2FyZ3NFbC5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXk9Jyc7YXJnc0VsLnRleHRDb250ZW50PScnO2FyZ3NFbC5hcHBlbmRDaGlsZChhcmdzVmlldyk7fWVsc2V7YXJnc0VsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheT0nbm9uZSc7fX19KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudC5ldmVudHNIYXZlU3ViUm93cz1mYWxzZTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLXNpbmdsZS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnRleHRDb250ZW50PScnO3ZhciByZWFsVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7cmVhbFZpZXcuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocmVhbFZpZXcpO3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLW11bHRpLWluc3RhbnQtZXZlbnQtc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9Jyc7dmFyIHJlYWxWaWV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldycpO3JlYWxWaWV3LmV2ZW50c0hhdmVEdXJhdGlvbj1mYWxzZTtyZWFsVmlldy5ldmVudHNIYXZlU3ViUm93cz1mYWxzZTt0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChyZWFsVmlldyk7cmVhbFZpZXcuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy5hbmFseXNpcycsZnVuY3Rpb24oKXt2YXIgQW5hbHlzaXNSZXN1bHRzPXRyLmIudWkuZGVmaW5lKCdkaXYnKTtBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTERpdkVsZW1lbnQucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKCl7dGhpcy5jbGFzc05hbWU9J2FuYWx5c2lzLXJlc3VsdHMnO30sZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKXtyZXR1cm4gdHJ1ZTt9LGNsZWFyOmZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD0nJzt9LGNyZWF0ZVNlbGVjdGlvbkNoYW5naW5nTGluazpmdW5jdGlvbih0ZXh0LHNlbGVjdGlvbkdlbmVyYXRvcixvcHRfdG9vbHRpcCl7dmFyIGVsPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpO2Z1bmN0aW9uIHdyYXAoKXtyZXR1cm4gc2VsZWN0aW9uR2VuZXJhdG9yKCk7fQotd3JhcC51c2VyRnJpZW5kbHlOYW1lPXRleHQ7ZWwuc2VsZWN0aW9uPXdyYXA7aWYob3B0X3Rvb2x0aXApCi1lbC50aXRsZT1vcHRfdG9vbHRpcDtyZXR1cm4gZWw7fSxhcHBlbmRFbGVtZW50XzpmdW5jdGlvbihwYXJlbnQsdGFnTmFtZSxvcHRfdGV4dCl7dmFyIG49cGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtwYXJlbnQuYXBwZW5kQ2hpbGQobik7aWYob3B0X3RleHQhPXVuZGVmaW5lZCkKLW4udGV4dENvbnRlbnQ9b3B0X3RleHQ7cmV0dXJuIG47fSxhcHBlbmRUZXh0XzpmdW5jdGlvbihwYXJlbnQsdGV4dCl7dmFyIHRleHRFbGVtZW50PXBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpO3BhcmVudC5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7cmV0dXJuIHRleHROb2RlO30sYXBwZW5kVGFibGVDZWxsXzpmdW5jdGlvbih0YWJsZSxyb3csY2VsbG51bSx0ZXh0LG9wdF93YXJuaW5nKXt2YXIgdGQ9dGhpcy5hcHBlbmRFbGVtZW50Xyhyb3csJ3RkJyx0ZXh0KTt0ZC5jbGFzc05hbWU9dGFibGUuY2xhc3NOYW1lKyctY29sLScrY2VsbG51bTtpZihvcHRfd2FybmluZyl7dmFyIHNwYW49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO3NwYW4udGV4dENvbnRlbnQ9JyAnK1N0cmluZy5mcm9tQ2hhckNvZGUoOTg4OCk7c3Bhbi50aXRsZT1vcHRfd2FybmluZzt0ZC5hcHBlbmRDaGlsZChzcGFuKTt9Ci1yZXR1cm4gdGQ7fSxhcHBlbmRUYWJsZUNlbGw6ZnVuY3Rpb24odGFibGUscm93LHRleHQpe3JldHVybiB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUscm93LHJvdy5jaGlsZHJlbi5sZW5ndGgsdGV4dCk7fSxhcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF86ZnVuY3Rpb24odGFibGUscm93LGNlbGxudW0sdGV4dCx0b29sdGlwKXtpZih0b29sdGlwKXt2YXIgdGQ9dGhpcy5hcHBlbmRFbGVtZW50Xyhyb3csJ3RkJyk7dGQuY2xhc3NOYW1lPXRhYmxlLmNsYXNzTmFtZSsnLWNvbC0nK2NlbGxudW07dmFyIHNwYW49dGhpcy5hcHBlbmRFbGVtZW50Xyh0ZCwnc3BhbicsdGV4dCk7c3Bhbi5jbGFzc05hbWU9J3Rvb2x0aXAnO3NwYW4udGl0bGU9dG9vbHRpcDtyZXR1cm4gdGQ7fWVsc2V7cmV0dXJuIHRoaXMuYXBwZW5kVGFibGVDZWxsXyh0YWJsZSxyb3csY2VsbG51bSx0ZXh0KTt9fSxhcHBlbmRIZWFkZXI6ZnVuY3Rpb24obGFiZWwpe3ZhciBoZWFkZXI9dGhpcy5hcHBlbmRFbGVtZW50Xyh0aGlzLCdzcGFuJyxsYWJlbCk7aGVhZGVyLmNsYXNzTmFtZT0nYW5hbHlzaXMtaGVhZGVyJztyZXR1cm4gaGVhZGVyO30sYXBwZW5kSW5mbzpmdW5jdGlvbihsYWJlbCx2YWx1ZSl7dmFyIGRpdj10aGlzLmFwcGVuZEVsZW1lbnRfKHRoaXMsJ2RpdicpO2Rpdi5sYWJlbD10aGlzLmFwcGVuZEVsZW1lbnRfKGRpdiwnYicsbGFiZWwpO2Rpdi52YWx1ZT10aGlzLmFwcGVuZEVsZW1lbnRfKGRpdiwnc3BhbicsdmFsdWUpO3JldHVybiBkaXY7fSxhcHBlbmRUYWJsZTpmdW5jdGlvbihjbGFzc05hbWUsbnVtQ29sdW1ucyl7dmFyIHRhYmxlPXRoaXMuYXBwZW5kRWxlbWVudF8odGhpcywndGFibGUnKTt0YWJsZS5jbGFzc05hbWU9Y2xhc3NOYW1lKycgYW5hbHlzaXMtdGFibGUnO3RhYmxlLm51bUNvbHVtbnM9bnVtQ29sdW1ucztyZXR1cm4gdGFibGU7fSxhcHBlbmRIZWFkUm93OmZ1bmN0aW9uKHRhYmxlKXtpZih0YWJsZS5oZWFkZXJSb3cpCi10aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIGhlYWRlciByb3cgYWxsb3dlZC4nKTtpZih0YWJsZS50Ym9keXx8dGFibGUudGZvb3QpCi10aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhZGQgYSBoZWFkZXIgcm93IGFmdGVyIGRhdGEgcm93cyBoYXZlIGJlZW4gYWRkZWQuJyk7dGFibGUuaGVhZGVyUm93PXRoaXMuYXBwZW5kRWxlbWVudF8odGhpcy5hcHBlbmRFbGVtZW50Xyh0YWJsZSwndGhlYWQnKSwndHInKTt0YWJsZS5oZWFkZXJSb3cuY2xhc3NOYW1lPSdhbmFseXNpcy10YWJsZS1oZWFkZXInO3JldHVybiB0YWJsZS5oZWFkZXJSb3c7fSxhcHBlbmRCb2R5Um93OmZ1bmN0aW9uKHRhYmxlKXtpZih0YWJsZS50Zm9vdCkKLXRocm93IG5ldyBFcnJvcignQ2Fubm90IGFkZCBhIHRib2R5IHJvdyBhZnRlciBmb290ZXIgcm93cyBoYXZlIGJlZW4gYWRkZWQuJyk7aWYoIXRhYmxlLnRib2R5KQotdGFibGUudGJvZHk9dGhpcy5hcHBlbmRFbGVtZW50Xyh0YWJsZSwndGJvZHknKTt2YXIgcm93PXRoaXMuYXBwZW5kRWxlbWVudF8odGFibGUudGJvZHksJ3RyJyk7aWYodGFibGUuaGVhZGVyUm93KQotcm93LmNsYXNzTmFtZT0nYW5hbHlzaXMtdGFibGUtcm93JztlbHNlCi1yb3cuY2xhc3NOYW1lPSdhbmFseXNpcy10YWJsZS1yb3ctaW52ZXJ0ZWQnO3JldHVybiByb3c7fSxhcHBlbmRGb290Um93OmZ1bmN0aW9uKHRhYmxlKXtpZighdGFibGUudGZvb3Qpe3RhYmxlLnRmb290PXRoaXMuYXBwZW5kRWxlbWVudF8odGFibGUsJ3Rmb290Jyk7dGFibGUudGZvb3Qucm93c0NsYXNzTmFtZT0oKHRhYmxlLmhlYWRlclJvdz8xOjApKwotKHRhYmxlLnRib2R5P3RhYmxlLnRib2R5LnJvd3MubGVuZ3RoOjApKSUyPydhbmFseXNpcy10YWJsZS1yb3cnOidhbmFseXNpcy10YWJsZS1yb3ctaW52ZXJ0ZWQnO30KLXZhciByb3c9dGhpcy5hcHBlbmRFbGVtZW50Xyh0YWJsZS50Zm9vdCwndHInKTtyb3cuY2xhc3NOYW1lPXRhYmxlLnRmb290LnJvd3NDbGFzc05hbWU7cmV0dXJuIHJvdzt9LGFwcGVuZFNwYWNpbmdSb3c6ZnVuY3Rpb24odGFibGUsb3B0X2luRm9vdCl7aWYodGFibGUudGZvb3R8fG9wdF9pbkZvb3QpCi12YXIgcm93PXRoaXMuYXBwZW5kRm9vdFJvdyh0YWJsZSk7ZWxzZQotdmFyIHJvdz10aGlzLmFwcGVuZEJvZHlSb3codGFibGUpO2Zvcih2YXIgaT0wO2k8dGFibGUubnVtQ29sdW1ucztpKyspCi10aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUscm93LGksJyAnKTt9LGFwcGVuZEluZm9Sb3c6ZnVuY3Rpb24odGFibGUsbGFiZWwsb3B0X3ZhbHVlLG9wdF9pbkZvb3Qpe2lmKHRhYmxlLnRmb290fHxvcHRfaW5Gb290KQotdmFyIHJvdz10aGlzLmFwcGVuZEZvb3RSb3codGFibGUpO2Vsc2UKLXZhciByb3c9dGhpcy5hcHBlbmRCb2R5Um93KHRhYmxlKTt0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUscm93LDAsbGFiZWwpO2lmKG9wdF92YWx1ZSE9PXVuZGVmaW5lZCl7dmFyIG9iamVjdFZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTtvYmplY3RWaWV3Lm9iamVjdD1vcHRfdmFsdWU7b2JqZWN0Vmlldy5jbGFzc0xpc3QuYWRkKCdhbmFseXNpcy10YWJsZS1jb2wtMScpO29iamVjdFZpZXcuc3R5bGUuZGlzcGxheT0ndGFibGUtY2VsbCc7cm93LmFwcGVuZENoaWxkKG9iamVjdFZpZXcpO31lbHNle3RoaXMuYXBwZW5kVGFibGVDZWxsXyh0YWJsZSxyb3csMSwnJyk7fQotZm9yKHZhciBpPTI7aTx0YWJsZS5udW1Db2x1bW5zO2krKykKLXRoaXMuYXBwZW5kVGFibGVDZWxsXyh0YWJsZSxyb3csaSwnJyk7fSxhcHBlbmRJbmZvUm93VGltZTpmdW5jdGlvbih0YWJsZSxsYWJlbCx0aW1lLG9wdF9pbkZvb3Qsb3B0X3dhcm5pbmcpe2lmKHRhYmxlLnRmb290fHxvcHRfaW5Gb290KQotdmFyIHJvdz10aGlzLmFwcGVuZEZvb3RSb3codGFibGUpO2Vsc2UKLXZhciByb3c9dGhpcy5hcHBlbmRCb2R5Um93KHRhYmxlKTt0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUscm93LDAsbGFiZWwpO3RoaXMuYXBwZW5kVGFibGVDZWxsXyh0YWJsZSxyb3csMSx0ci5iLnVuaXRzLnRzU3RyaW5nKHRpbWUpLG9wdF93YXJuaW5nKTt9LGFwcGVuZERldGFpbHNSb3c6ZnVuY3Rpb24odGFibGUsc3RhcnQsZHVyYXRpb24sc2VsZlRpbWUsYXJncyxvcHRfc2VsZWN0aW9uR2VuZXJhdG9yLG9wdF9jcHVEdXJhdGlvbixvcHRfaW5Gb290KXtpZihvcHRfaW5Gb290KXt2YXIgcm93PXRoaXMuYXBwZW5kRm9vdFJvdyh0YWJsZSk7dGhpcy5hcHBlbmRUYWJsZUNlbGwodGFibGUscm93LCdUb3RhbHMnKTt9Ci1lbHNle3ZhciByb3c9dGhpcy5hcHBlbmRCb2R5Um93KHRhYmxlKTtpZihvcHRfc2VsZWN0aW9uR2VuZXJhdG9yKXt2YXIgbGFiZWxFbD10aGlzLmFwcGVuZFRhYmxlQ2VsbCh0YWJsZSxyb3csdHIuYi51bml0cy50c1N0cmluZyhzdGFydCkpO2xhYmVsRWwudGV4dENvbnRlbnQ9Jyc7bGFiZWxFbC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNlbGVjdGlvbkNoYW5naW5nTGluayh0ci5iLnVuaXRzLnRzU3RyaW5nKHN0YXJ0KSxvcHRfc2VsZWN0aW9uR2VuZXJhdG9yLCcnKSk7fWVsc2V7dGhpcy5hcHBlbmRUYWJsZUNlbGwodGFibGUscm93LHRyLmIudW5pdHMudHNTdHJpbmcoc3RhcnQpKTt9fQotaWYoZHVyYXRpb24hPT1udWxsKQotdGhpcy5hcHBlbmRUYWJsZUNlbGwodGFibGUscm93LHRyLmIudW5pdHMudHNTdHJpbmcoZHVyYXRpb24pKTtpZihvcHRfY3B1RHVyYXRpb24pCi10aGlzLmFwcGVuZFRhYmxlQ2VsbCh0YWJsZSxyb3csb3B0X2NwdUR1cmF0aW9uIT0nJz90ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9jcHVEdXJhdGlvbik6JycpO2lmKHNlbGZUaW1lIT09bnVsbCkKLXRoaXMuYXBwZW5kVGFibGVDZWxsKHRhYmxlLHJvdyx0ci5iLnVuaXRzLnRzU3RyaW5nKHNlbGZUaW1lKSk7dmFyIGFyZ3NDZWxsPXRoaXMuYXBwZW5kVGFibGVDZWxsKHRhYmxlLHJvdywnJyk7dmFyIG49MDtmb3IodmFyIGFyZ05hbWUgaW4gYXJncyl7bis9MTt9Ci1pZihuPjApe2Zvcih2YXIgYXJnTmFtZSBpbiBhcmdzKXt2YXIgYXJnVmFsPWFyZ3NbYXJnTmFtZV07dmFyIG9iamVjdFZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTtvYmplY3RWaWV3Lm9iamVjdD1hcmdWYWw7dmFyIGFyZ3NSb3c9dGhpcy5hcHBlbmRFbGVtZW50Xyh0aGlzLmFwcGVuZEVsZW1lbnRfKGFyZ3NDZWxsLCd0YWJsZScpLCd0cicpO3RoaXMuYXBwZW5kRWxlbWVudF8oYXJnc1JvdywndGQnLGFyZ05hbWUrJzonKTt0aGlzLmFwcGVuZEVsZW1lbnRfKGFyZ3NSb3csJ3RkJykuYXBwZW5kQ2hpbGQob2JqZWN0Vmlldyk7fX19LGFwcGVuZERhdGFSb3c6ZnVuY3Rpb24odGFibGUsbGFiZWwsb3B0X2R1cmF0aW9uLG9wdF9jcHVEdXJhdGlvbixvcHRfc2VsZlRpbWUsb3B0X2NwdVNlbGZUaW1lLG9wdF9vY2N1cnJlbmNlcyxvcHRfcGVyY2VudGFnZSxvcHRfc3RhdGlzdGljcyxvcHRfc2VsZWN0aW9uR2VuZXJhdG9yLG9wdF9pbkZvb3Qpe3ZhciB0b29sdGlwPXVuZGVmaW5lZDtpZihvcHRfc3RhdGlzdGljcyl7dmFyIHN0ZGRldlJvdW5kZWQ9TWF0aC5yb3VuZChvcHRfc3RhdGlzdGljcy5hdmdfc3RkZGV2KjEwMDApLzEwMDA7dG9vbHRpcD0nTWluIER1cmF0aW9uOlx1MDAwOScrCi10ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9zdGF0aXN0aWNzLm1pbikrJyBcdTAwMERNYXggRHVyYXRpb246XHUwMDA5JysKLXRyLmIudW5pdHMudHNTdHJpbmcob3B0X3N0YXRpc3RpY3MubWF4KSsnIFx1MDAwREF2ZyBEdXJhdGlvbjpcdTAwMDknKwotdHIuYi51bml0cy50c1N0cmluZyhvcHRfc3RhdGlzdGljcy5hdmcpKycgKFx1MDNDMyA9ICcrc3RkZGV2Um91bmRlZCsnKSc7aWYob3B0X3N0YXRpc3RpY3Muc3RhcnQpe3Rvb2x0aXArPSdcdTAwMERTdGFydCBUaW1lOlx1MDAwOScrCi10ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9zdGF0aXN0aWNzLnN0YXJ0KTt9Ci1pZihvcHRfc3RhdGlzdGljcy5lbmQpe3Rvb2x0aXArPSdcdTAwMERFbmQgVGltZTpcdTAwMDknKwotdHIuYi51bml0cy50c1N0cmluZyhvcHRfc3RhdGlzdGljcy5lbmQpO30KLWlmKG9wdF9zdGF0aXN0aWNzLmZyZXF1ZW5jeSYmb3B0X3N0YXRpc3RpY3MuZnJlcXVlbmN5X3N0ZGRldil7dmFyIGZSPU1hdGgucm91bmQob3B0X3N0YXRpc3RpY3MuZnJlcXVlbmN5KjEwMDApLzEwMDA7dmFyIGZTUj1NYXRoLnJvdW5kKG9wdF9zdGF0aXN0aWNzLmZyZXF1ZW5jeV9zdGRkZXYqMTAwMCkvMTAwMDt0b29sdGlwKz0nXHUwMDBERnJlcXVlbmN5Olx1MDAwOScrCi1mUisnIG9jY3VycmVuY2VzL3MgKFx1MDNDMyA9ICcrZlNSKycpJzt9fQotaWYodGFibGUudGZvb3R8fG9wdF9pbkZvb3QpCi12YXIgcm93PXRoaXMuYXBwZW5kRm9vdFJvdyh0YWJsZSk7ZWxzZQotdmFyIHJvdz10aGlzLmFwcGVuZEJvZHlSb3codGFibGUpO3ZhciBjZWxsTnVtPTA7aWYoIW9wdF9zZWxlY3Rpb25HZW5lcmF0b3Ipe3RoaXMuYXBwZW5kVGFibGVDZWxsV2l0aFRvb2x0aXBfKHRhYmxlLHJvdyxjZWxsTnVtLGxhYmVsLHRvb2x0aXApO31lbHNle3ZhciBsYWJlbEVsPXRoaXMuYXBwZW5kVGFibGVDZWxsV2l0aFRvb2x0aXBfKHRhYmxlLHJvdyxjZWxsTnVtLGxhYmVsLHRvb2x0aXApO2lmKGxhYmVsRWwpe2xhYmVsRWwudGV4dENvbnRlbnQ9Jyc7bGFiZWxFbC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNlbGVjdGlvbkNoYW5naW5nTGluayhsYWJlbCxvcHRfc2VsZWN0aW9uR2VuZXJhdG9yLHRvb2x0aXApKTt9fQotY2VsbE51bSsrO2lmKG9wdF9kdXJhdGlvbiE9PW51bGwpe2lmKG9wdF9kdXJhdGlvbil7aWYob3B0X2R1cmF0aW9uIGluc3RhbmNlb2YgQXJyYXkpe3RoaXMuYXBwZW5kVGFibGVDZWxsV2l0aFRvb2x0aXBfKHRhYmxlLHJvdyxjZWxsTnVtLCdbJytvcHRfZHVyYXRpb24uam9pbignLCAnKSsnXScsdG9vbHRpcCk7fWVsc2V7dGhpcy5hcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF8odGFibGUscm93LGNlbGxOdW0sdHIuYi51bml0cy50c1N0cmluZyhvcHRfZHVyYXRpb24pLHRvb2x0aXApO319ZWxzZXt0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUscm93LGNlbGxOdW0sJycpO30KLWNlbGxOdW0rKzt9Ci1pZihvcHRfY3B1RHVyYXRpb24hPT1udWxsKXtpZihvcHRfY3B1RHVyYXRpb24hPScnKXt0aGlzLmFwcGVuZFRhYmxlQ2VsbFdpdGhUb29sdGlwXyh0YWJsZSxyb3csY2VsbE51bSx0ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9jcHVEdXJhdGlvbiksdG9vbHRpcCk7fWVsc2V7dGhpcy5hcHBlbmRUYWJsZUNlbGxfKHRhYmxlLHJvdyxjZWxsTnVtLCcnKTt9Ci1jZWxsTnVtKys7fQotaWYob3B0X3NlbGZUaW1lIT09bnVsbCl7aWYob3B0X3NlbGZUaW1lKXt0aGlzLmFwcGVuZFRhYmxlQ2VsbFdpdGhUb29sdGlwXyh0YWJsZSxyb3csY2VsbE51bSx0ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9zZWxmVGltZSksdG9vbHRpcCk7fWVsc2V7dGhpcy5hcHBlbmRUYWJsZUNlbGxfKHRhYmxlLHJvdyxjZWxsTnVtLCcnKTt9Ci1jZWxsTnVtKys7fQotaWYob3B0X2NwdVNlbGZUaW1lIT09bnVsbCl7aWYob3B0X2NwdVNlbGZUaW1lKXt0aGlzLmFwcGVuZFRhYmxlQ2VsbFdpdGhUb29sdGlwXyh0YWJsZSxyb3csY2VsbE51bSx0ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9jcHVTZWxmVGltZSksdG9vbHRpcCk7fWVsc2V7dGhpcy5hcHBlbmRUYWJsZUNlbGxfKHRhYmxlLHJvdyxjZWxsTnVtLCcnKTt9Ci1jZWxsTnVtKys7fQotaWYob3B0X3BlcmNlbnRhZ2UhPT1udWxsKXtpZihvcHRfcGVyY2VudGFnZSl7dGhpcy5hcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF8odGFibGUscm93LGNlbGxOdW0sb3B0X3BlcmNlbnRhZ2UsdG9vbHRpcCk7fWVsc2V7dGhpcy5hcHBlbmRUYWJsZUNlbGxfKHRhYmxlLHJvdyxjZWxsTnVtLCcnKTt9Ci1jZWxsTnVtKys7fQotaWYob3B0X29jY3VycmVuY2VzKXt0aGlzLmFwcGVuZFRhYmxlQ2VsbFdpdGhUb29sdGlwXyh0YWJsZSxyb3csY2VsbE51bSxTdHJpbmcob3B0X29jY3VycmVuY2VzKSx0b29sdGlwKTt9ZWxzZXt0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUscm93LGNlbGxOdW0sJycpO30KLWNlbGxOdW0rKzt9fTtyZXR1cm57QW5hbHlzaXNSZXN1bHRzOkFuYWx5c2lzUmVzdWx0c307fSk7J3VzZSBzdHJpY3QnOyhmdW5jdGlvbigpe3ZhciBDb3VudGVyU2FtcGxlPXRyLm1vZGVsLkNvdW50ZXJTYW1wbGU7UG9seW1lcigndHItYy1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3ZhciByZXN1bHRzPW5ldyB0ci5jLmFuYWx5c2lzLkFuYWx5c2lzUmVzdWx0cygpO3RoaXMuYXBwZW5kQ2hpbGQocmVzdWx0cyk7dGhpcy5hbmFseXplQ291bnRlclNhbXBsZXNfKHJlc3VsdHMsc2VsZWN0aW9uKTt9LGFuYWx5emVDb3VudGVyU2FtcGxlc186ZnVuY3Rpb24ocmVzdWx0cyxhbGxTYW1wbGVzKXt2YXIgc2FtcGxlc0J5Q291bnRlcj17fTtmb3IodmFyIGk9MDtpPGFsbFNhbXBsZXMubGVuZ3RoO2krKyl7dmFyIGN0cj1hbGxTYW1wbGVzW2ldLnNlcmllcy5jb3VudGVyO2lmKCFzYW1wbGVzQnlDb3VudGVyW2N0ci5ndWlkXSkKLXNhbXBsZXNCeUNvdW50ZXJbY3RyLmd1aWRdPVtdO3NhbXBsZXNCeUNvdW50ZXJbY3RyLmd1aWRdLnB1c2goYWxsU2FtcGxlc1tpXSk7fQotZm9yKHZhciBndWlkIGluIHNhbXBsZXNCeUNvdW50ZXIpe3ZhciBzYW1wbGVzPXNhbXBsZXNCeUNvdW50ZXJbZ3VpZF07dmFyIGN0cj1zYW1wbGVzWzBdLnNlcmllcy5jb3VudGVyO3ZhciB0aW1lc3RhbXBHcm91cHM9Q291bnRlclNhbXBsZS5ncm91cEJ5VGltZXN0YW1wKHNhbXBsZXMpO2lmKHRpbWVzdGFtcEdyb3Vwcy5sZW5ndGg9PTEpCi10aGlzLmFuYWx5emVTaW5nbGVDb3VudGVyVGltZXN0YW1wXyhyZXN1bHRzLGN0cix0aW1lc3RhbXBHcm91cHNbMF0pO2Vsc2UKLXRoaXMuYW5hbHl6ZU11bHRpcGxlQ291bnRlclRpbWVzdGFtcHNfKHJlc3VsdHMsY3RyLHRpbWVzdGFtcEdyb3Vwcyk7fX0sYW5hbHl6ZVNpbmdsZUNvdW50ZXJUaW1lc3RhbXBfOmZ1bmN0aW9uKHJlc3VsdHMsY3RyLHNhbXBsZXNXaXRoU2FtZVRpbWVzdGFtcCl7cmVzdWx0cy5hcHBlbmRIZWFkZXIoJ1NlbGVjdGVkIGNvdW50ZXI6Jyk7dmFyIHRhYmxlPXJlc3VsdHMuYXBwZW5kVGFibGUoJ2FuYWx5c2lzLWNvdW50ZXItdGFibGUnLDIpO3Jlc3VsdHMuYXBwZW5kSW5mb1Jvdyh0YWJsZSwnVGl0bGUnLGN0ci5uYW1lKTtyZXN1bHRzLmFwcGVuZEluZm9Sb3dUaW1lKHRhYmxlLCdUaW1lc3RhbXAnLHNhbXBsZXNXaXRoU2FtZVRpbWVzdGFtcFswXS50aW1lc3RhbXApO2Zvcih2YXIgaT0wO2k8c2FtcGxlc1dpdGhTYW1lVGltZXN0YW1wLmxlbmd0aDtpKyspe3ZhciBzYW1wbGU9c2FtcGxlc1dpdGhTYW1lVGltZXN0YW1wW2ldO3Jlc3VsdHMuYXBwZW5kSW5mb1Jvdyh0YWJsZSxzYW1wbGUuc2VyaWVzLm5hbWUsc2FtcGxlLnZhbHVlKTt9fSxhbmFseXplTXVsdGlwbGVDb3VudGVyVGltZXN0YW1wc186ZnVuY3Rpb24ocmVzdWx0cyxjdHIsc2FtcGxlc0J5VGltZXN0YW1wKXtyZXN1bHRzLmFwcGVuZEhlYWRlcignQ291bnRlciAnK2N0ci5uYW1lKTt2YXIgdGFibGU9cmVzdWx0cy5hcHBlbmRUYWJsZSgnYW5hbHlzaXMtY291bnRlci10YWJsZScsMik7dmFyIHNhbXBsZUluZGljZXM9W107Zm9yKHZhciBpPTA7aTxzYW1wbGVzQnlUaW1lc3RhbXAubGVuZ3RoO2krKykKLXNhbXBsZUluZGljZXMucHVzaChzYW1wbGVzQnlUaW1lc3RhbXBbaV1bMF0uZ2V0U2FtcGxlSW5kZXgoKSk7dmFyIHN0YXRzPWN0ci5nZXRTYW1wbGVTdGF0aXN0aWNzKHNhbXBsZUluZGljZXMpO2Zvcih2YXIgaT0wO2k8c3RhdHMubGVuZ3RoO2krKyl7dmFyIHNhbXBsZXM9W107Zm9yKHZhciBrPTA7azxzYW1wbGVJbmRpY2VzLmxlbmd0aDsrK2spCi1zYW1wbGVzLnB1c2goY3RyLmdldFNlcmllcyhpKS5nZXRTYW1wbGUoc2FtcGxlSW5kaWNlc1trXSkudmFsdWUpO3Jlc3VsdHMuYXBwZW5kRGF0YVJvdyh0YWJsZSxjdHIubmFtZSsnOiBzZXJpZXMoJytjdHIuZ2V0U2VyaWVzKGkpLm5hbWUrJyknLHNhbXBsZXMsbnVsbCxudWxsLG51bGwsc2FtcGxlcy5sZW5ndGgsbnVsbCxzdGF0c1tpXSk7fX19KTt9KSgpOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2luZ2xlLWZsb3ctZXZlbnQtc3ViLXZpZXcnLHtnZXRFdmVudFJvd3NfOmZ1bmN0aW9uKGV2ZW50KXt2YXIgcm93cz10aGlzLl9fcHJvdG9fXy5fX3Byb3RvX18uZ2V0RXZlbnRSb3dzXyhldmVudCk7cm93cy5zcGxpY2UoMCwwLHtuYW1lOidJRCcsdmFsdWU6ZXZlbnQuaWR9KTtmdW5jdGlvbiBjcmVhdGVMaW5rVG8oc2xpY2Upe3ZhciBsaW5rRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpe3JldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24oc2xpY2UpO30pO2xpbmtFbC50ZXh0Q29udGVudD1zbGljZS51c2VyRnJpZW5kbHlOYW1lO3JldHVybiBsaW5rRWw7fQotcm93cy5wdXNoKHtuYW1lOidGcm9tJyx2YWx1ZTpjcmVhdGVMaW5rVG8oZXZlbnQuc3RhcnRTbGljZSl9KTtyb3dzLnB1c2goe25hbWU6J1RvJyx2YWx1ZTpjcmVhdGVMaW5rVG8oZXZlbnQuZW5kU2xpY2UpfSk7cmV0dXJuIHJvd3M7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtbXVsdGktZmxvdy1ldmVudC1zdWItdmlldycse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy4kLmNvbnRlbnQuZXZlbnRzSGF2ZUR1cmF0aW9uPWZhbHNlO3RoaXMuJC5jb250ZW50LmV2ZW50c0hhdmVTdWJSb3dzPWZhbHNlO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnNlbGVjdGlvbj1zZWxlY3Rpb247fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbjt9fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLmFuYWx5c2lzJyxmdW5jdGlvbigpe3ZhciBPYmplY3RJbnN0YW5jZVZpZXc9dHIuYi51aS5kZWZpbmUoJ29iamVjdC1pbnN0YW5jZS12aWV3Jyk7T2JqZWN0SW5zdGFuY2VWaWV3LnByb3RvdHlwZT17X19wcm90b19fOkhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24oKXt0aGlzLm9iamVjdEluc3RhbmNlXz11bmRlZmluZWQ7fSxnZXQgcmVxdWlyZXNUYWxsVmlldygpe3JldHVybiB0cnVlO30sc2V0IG1vZGVsRXZlbnQob2JqKXt0aGlzLm9iamVjdEluc3RhbmNlPW9iajt9LGdldCBtb2RlbEV2ZW50KCl7cmV0dXJuIHRoaXMub2JqZWN0SW5zdGFuY2U7fSxnZXQgb2JqZWN0SW5zdGFuY2UoKXtyZXR1cm4gdGhpcy5vYmplY3RJbnN0YW5jZV87fSxzZXQgb2JqZWN0SW5zdGFuY2UoaSl7dGhpcy5vYmplY3RJbnN0YW5jZV89aTt0aGlzLnVwZGF0ZUNvbnRlbnRzKCk7fSx1cGRhdGVDb250ZW50czpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fX07dmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTtvcHRpb25zLm1hbmRhdG9yeUJhc2VDbGFzcz1PYmplY3RJbnN0YW5jZVZpZXc7b3B0aW9ucy5kZWZhdWx0TWV0YWRhdGE9e3Nob3dJblRyYWNrVmlldzp0cnVlfTt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoT2JqZWN0SW5zdGFuY2VWaWV3LG9wdGlvbnMpO3JldHVybntPYmplY3RJbnN0YW5jZVZpZXc6T2JqZWN0SW5zdGFuY2VWaWV3fTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLXNpbmdsZS1vYmplY3QtaW5zdGFuY2Utc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgcmVxdWlyZXNUYWxsVmlldygpe2lmKHRoaXMuJC5jb250ZW50LmNoaWxkcmVuLmxlbmd0aD09PTApCi1yZXR1cm4gZmFsc2U7aWYodGhpcy4kLmNvbnRlbnQuY2hpbGRyZW5bMF1pbnN0YW5jZW9mCi10ci5jLmFuYWx5c2lzLk9iamVjdEluc3RhbmNlVmlldykKLXJldHVybiB0aGlzLiQuY29udGVudC5jaGlsZHJlblswXS5yZXF1aXJlc1RhbGxWaWV3O30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHNlbGVjdGlvbi5sZW5ndGghPT0xKQotdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBpdGVtIHNlbGVjdGlvbnMnKTtpZighKHNlbGVjdGlvblswXWluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UpKQotdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIG9iamVjdCBpbnN0YW5jZXMnKTt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD0nJzt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt2YXIgaW5zdGFuY2U9c2VsZWN0aW9uWzBdO3ZhciB0eXBlSW5mbz10ci5jLmFuYWx5c2lzLk9iamVjdEluc3RhbmNlVmlldy5nZXRUeXBlSW5mbyhpbnN0YW5jZS5jYXRlZ29yeSxpbnN0YW5jZS50eXBlTmFtZSk7aWYodHlwZUluZm8pe3ZhciBjdXN0b21WaWV3PW5ldyB0eXBlSW5mby5jb25zdHJ1Y3RvcigpO3RoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKGN1c3RvbVZpZXcpO2N1c3RvbVZpZXcubW9kZWxFdmVudD1pbnN0YW5jZTt9ZWxzZXt0aGlzLmFwcGVuZEdlbmVyaWNBbmFseXNpc18oaW5zdGFuY2UpO319LGFwcGVuZEdlbmVyaWNBbmFseXNpc186ZnVuY3Rpb24oaW5zdGFuY2Upe3ZhciBodG1sPScnO2h0bWwrPSc8ZGl2IGNsYXNzPSJ0aXRsZSI+JysKLWluc3RhbmNlLnR5cGVOYW1lKycgJysKLWluc3RhbmNlLmlkKyc8L2Rpdj5cbic7aHRtbCs9Jzx0YWJsZT4nO2h0bWwrPSc8dHI+JztodG1sKz0nPHRyPjx0ZD5jcmVhdGlvblRzOjwvdGQ+PHRkPicrCi1pbnN0YW5jZS5jcmVhdGlvblRzKyc8L3RkPjwvdHI+XG4nO2lmKGluc3RhbmNlLmRlbGV0aW9uVHMhPU51bWJlci5NQVhfVkFMVUUpe2h0bWwrPSc8dHI+PHRkPmRlbGV0aW9uVHM6PC90ZD48dGQ+JysKLWluc3RhbmNlLmRlbGV0aW9uVHMrJzwvdGQ+PC90cj5cbic7fWVsc2V7aHRtbCs9Jzx0cj48dGQ+ZGVsZXRpb25Uczo8L3RkPjx0ZD5ub3QgZGVsZXRlZDwvdGQ+PC90cj5cbic7fQotaHRtbCs9Jzx0cj48dGQ+c25hcHNob3RzOjwvdGQ+PHRkIGlkPSJzbmFwc2hvdHMiPjwvdGQ+PC90cj5cbic7aHRtbCs9JzwvdGFibGU+Jzt0aGlzLiQuY29udGVudC5pbm5lckhUTUw9aHRtbDt2YXIgc25hcHNob3RzRWw9dGhpcy4kLmNvbnRlbnQucXVlcnlTZWxlY3RvcignI3NuYXBzaG90cycpO2luc3RhbmNlLnNuYXBzaG90cy5mb3JFYWNoKGZ1bmN0aW9uKHNuYXBzaG90KXt2YXIgc25hcHNob3RMaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7c25hcHNob3RMaW5rLnNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24oc25hcHNob3QpO3NuYXBzaG90c0VsLmFwcGVuZENoaWxkKHNuYXBzaG90TGluayk7fSk7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy5hbmFseXNpcycsZnVuY3Rpb24oKXt2YXIgT2JqZWN0U25hcHNob3RWaWV3PXRyLmIudWkuZGVmaW5lKCdvYmplY3Qtc25hcHNob3QtdmlldycpO09iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGU9e19fcHJvdG9fXzpIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKCl7dGhpcy5vYmplY3RTbmFwc2hvdF89dW5kZWZpbmVkO30sZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKXtyZXR1cm4gdHJ1ZTt9LHNldCBtb2RlbEV2ZW50KG9iail7dGhpcy5vYmplY3RTbmFwc2hvdD1vYmo7fSxnZXQgbW9kZWxFdmVudCgpe3JldHVybiB0aGlzLm9iamVjdFNuYXBzaG90O30sZ2V0IG9iamVjdFNuYXBzaG90KCl7cmV0dXJuIHRoaXMub2JqZWN0U25hcHNob3RfO30sc2V0IG9iamVjdFNuYXBzaG90KGkpe3RoaXMub2JqZWN0U25hcHNob3RfPWk7dGhpcy51cGRhdGVDb250ZW50cygpO30sdXBkYXRlQ29udGVudHM6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO319O3ZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLlRZUEVfQkFTRURfUkVHSVNUUllfTU9ERSk7b3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3M9T2JqZWN0U25hcHNob3RWaWV3O29wdGlvbnMuZGVmYXVsdE1ldGFkYXRhPXtzaG93SW5zdGFuY2VzOnRydWUsc2hvd0luVHJhY2tWaWV3OnRydWV9O3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RTbmFwc2hvdFZpZXcsb3B0aW9ucyk7cmV0dXJue09iamVjdFNuYXBzaG90VmlldzpPYmplY3RTbmFwc2hvdFZpZXd9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2luZ2xlLW9iamVjdC1zbmFwc2hvdC1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCByZXF1aXJlc1RhbGxWaWV3KCl7aWYodGhpcy5jaGlsZHJlbi5sZW5ndGg9PT0wKQotcmV0dXJuIGZhbHNlO2lmKHRoaXMuY2hpbGRyZW5bMF1pbnN0YW5jZW9mIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3KQotcmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ucmVxdWlyZXNUYWxsVmlldzt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXtpZihzZWxlY3Rpb24ubGVuZ3RoIT09MSkKLXRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgaXRlbSBzZWxlY3Rpb25zJyk7aWYoIShzZWxlY3Rpb25bMF1pbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KSkKLXRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBvYmplY3QgaW5zdGFuY2VzJyk7dGhpcy50ZXh0Q29udGVudD0nJzt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt2YXIgc25hcHNob3Q9c2VsZWN0aW9uWzBdO3ZhciB0eXBlSW5mbz10ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5nZXRUeXBlSW5mbyhzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5jYXRlZ29yeSxzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS50eXBlTmFtZSk7aWYodHlwZUluZm8pe3ZhciBjdXN0b21WaWV3PW5ldyB0eXBlSW5mby5jb25zdHJ1Y3RvcigpO3RoaXMuYXBwZW5kQ2hpbGQoY3VzdG9tVmlldyk7Y3VzdG9tVmlldy5tb2RlbEV2ZW50PXNuYXBzaG90O31lbHNle3RoaXMuYXBwZW5kR2VuZXJpY0FuYWx5c2lzXyhzbmFwc2hvdCk7fX0sYXBwZW5kR2VuZXJpY0FuYWx5c2lzXzpmdW5jdGlvbihzbmFwc2hvdCl7dmFyIGluc3RhbmNlPXNuYXBzaG90Lm9iamVjdEluc3RhbmNlO3ZhciBodG1sPScnO2h0bWwrPSc8ZGl2IGNsYXNzPSJ0aXRsZSI+U25hcHNob3Qgb2YgPGEgaWQ9Imluc3RhbmNlLWxpbmsiPjwvYT4gQCAnKwotdHIuYi51bml0cy50c1N0cmluZyhzbmFwc2hvdC50cykrJzwvZGl2PlxuJztodG1sKz0nPHRhYmxlPic7aHRtbCs9Jzx0cj4nO2h0bWwrPSc8dHI+PHRkPmFyZ3M6PC90ZD48dGQgaWQ9ImFyZ3MiPjwvdGQ+PC90cj5cbic7aHRtbCs9JzwvdGFibGU+Jzt0aGlzLmlubmVySFRNTD1odG1sO3ZhciBpbnN0YW5jZUxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpO2luc3RhbmNlTGlua0VsLnNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24oaW5zdGFuY2UpO3ZhciB0bXA9dGhpcy5xdWVyeVNlbGVjdG9yKCcjaW5zdGFuY2UtbGluaycpO3RtcC5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZChpbnN0YW5jZUxpbmtFbCx0bXApO3ZhciBhcmdzRWw9dGhpcy5xdWVyeVNlbGVjdG9yKCcjYXJncycpO2FyZ3NFbC50ZXh0Q29udGVudD0nJzt2YXIgb2JqZWN0Vmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpO29iamVjdFZpZXcub2JqZWN0PXNuYXBzaG90LmFyZ3M7YXJnc0VsLmFwcGVuZENoaWxkKG9iamVjdFZpZXcpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLW11bHRpLW9iamVjdC1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy4kLmNvbnRlbnQuc2hvd0hlYWRlcj1mYWxzZTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt2YXIgb2JqZWN0RXZlbnRzPXRyLmIuYXNBcnJheShzZWxlY3Rpb24pLnNvcnQodHIuYi5SYW5nZS5jb21wYXJlQnlNaW5UaW1lcyk7dmFyIHRhYmxlPXRoaXMuJC5jb250ZW50O3RhYmxlLnRhYmxlQ29sdW1ucz1be3RpdGxlOidGaXJzdCcsdmFsdWU6ZnVuY3Rpb24oZXZlbnQpe2lmKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpCi1yZXR1cm4gdHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKGV2ZW50LnRzKTt2YXIgc3BhbkVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtzcGFuRWwuYXBwZW5kQ2hpbGQodHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKGV2ZW50LmNyZWF0aW9uVHMpKTtzcGFuRWwuYXBwZW5kQ2hpbGQodHIuYi51aS5jcmVhdGVTcGFuKHt0ZXh0Q29udGVudDonLScsbWFyZ2luTGVmdDonNHB4JyxtYXJnaW5SaWdodDonNHB4J30pKTtpZihldmVudC5kZWxldGlvblRzIT1OdW1iZXIuTUFYX1ZBTFVFKXtzcGFuRWwuYXBwZW5kQ2hpbGQodHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKGV2ZW50LmRlbGV0aW9uVHMpKTt9Ci1yZXR1cm4gc3BhbkVsO30sd2lkdGg6JzIwMHB4J30se3RpdGxlOidTZWNvbmQnLHZhbHVlOmZ1bmN0aW9uKGV2ZW50KXt2YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7bGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHRyLmMuU2VsZWN0aW9uKGV2ZW50KTt9LGV2ZW50LnVzZXJGcmllbmRseU5hbWUpO3JldHVybiBsaW5rRWw7fSx3aWR0aDonMTAwJSd9XTt0YWJsZS50YWJsZVJvd3M9b2JqZWN0RXZlbnRzO3RhYmxlLnJlYnVpbGQoKTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1zaW5nbGUtc2FtcGxlLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudC50YWJsZUNvbHVtbnM9W3t0aXRsZTonRmlyc3RDb2x1bW4nLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy50aXRsZTt9LHdpZHRoOicyNTBweCd9LHt0aXRsZTonU2Vjb25kQ29sdW1uJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cudmFsdWU7fSx3aWR0aDonMTAwJSd9XTt0aGlzLiQuY29udGVudC5zaG93SGVhZGVyPWZhbHNlO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO2lmKHRoaXMuY3VycmVudFNlbGVjdGlvbl89PT11bmRlZmluZWQpe3RoaXMuJC5jb250ZW50LnRhYmxlUm93cz1bXTtyZXR1cm47fQotdmFyIHNhbXBsZT10aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdO3ZhciB0YWJsZT10aGlzLiQuY29udGVudDt2YXIgcm93cz1bXTtyb3dzLnB1c2goe3RpdGxlOidUaXRsZScsdmFsdWU6c2FtcGxlLnRpdGxlfSk7cm93cy5wdXNoKHt0aXRsZTonU2FtcGxlIHRpbWUnLHZhbHVlOnRyLmIudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbihzYW1wbGUuc3RhcnQpfSk7dmFyIHNmRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXN0YWNrLWZyYW1lJyk7c2ZFbC5zdGFja0ZyYW1lPXNhbXBsZS5sZWFmU3RhY2tGcmFtZTtyb3dzLnB1c2goe3RpdGxlOidTdGFjayB0cmFjZScsdmFsdWU6c2ZFbH0pO3RhYmxlLnRhYmxlUm93cz1yb3dzO3RhYmxlLnJlYnVpbGQoKTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1tdWx0aS1zYW1wbGUtc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgcmVxdWlyZXNUYWxsVmlldygpe3JldHVybiB0cnVlO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnRleHRDb250ZW50PScnO3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO2lmKHRyLmlzRGVmaW5lZCgndHIuZS5hbmFseXNpcy5TYW1wbGluZ1N1bW1hcnlQYW5lbCcpKXt2YXIgcGFuZWw9bmV3IHRyLmUuYW5hbHlzaXMuU2FtcGxpbmdTdW1tYXJ5UGFuZWwoKTt0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChwYW5lbCk7cGFuZWwuc2VsZWN0aW9uPXNlbGVjdGlvbjt9ZWxzZXt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD0nU2FtcGxpbmdTdW1tYXJ5UGFuZWwgbm90IGluc3RhbGxlZC4gOignO319LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1zaW5nbGUtaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMudGV4dENvbnRlbnQ9Jyc7dmFyIHJlYWxWaWV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTt0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTtyZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt9LGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKXtpZighdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbih0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdLmFzc29jaWF0ZWRFdmVudHMpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLW11bHRpLWludGVyYWN0aW9uLXJlY29yZC1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLnRleHRDb250ZW50PScnO3ZhciByZWFsVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTt0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTtyZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKXtpZighdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKLXJldHVybiB1bmRlZmluZWQ7dmFyIHNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24oKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oaXIpe2lyLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCl7c2VsZWN0aW9uLnB1c2goZXZlbnQpO30pO30pO3JldHVybiBzZWxlY3Rpb247fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtYWxlcnQtc3ViLXZpZXcnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9W3t0aXRsZTonTGFiZWwnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy5uYW1lO30sd2lkdGg6JzE1MHB4J30se3RpdGxlOidWYWx1ZScsd2lkdGg6JzEwMCUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy52YWx1ZTt9fV07dGhpcy4kLnRhYmxlLnNob3dIZWFkZXI9ZmFsc2U7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldFJvd3NGb3JTaW5nbGVBbGVydF86ZnVuY3Rpb24oYWxlcnQpe3ZhciByb3dzPVtdO2Zvcih2YXIgYXJnTmFtZSBpbiBhbGVydC5hcmdzKXt2YXIgYXJnVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpO2FyZ1ZpZXcub2JqZWN0PWFsZXJ0LmFyZ3NbYXJnTmFtZV07cm93cy5wdXNoKHtuYW1lOmFyZ05hbWUsdmFsdWU6YXJnVmlld30pO30KLWlmKGFsZXJ0LmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoKXthbGVydC5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQsaSl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpO2xpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbihldmVudCk7fSxldmVudC50aXRsZSk7dmFyIHZhbHVlU3RyaW5nPScnO2lmKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuVGltZWRFdmVudCkKLXZhbHVlU3RyaW5nPSd0b29rICcrZXZlbnQuZHVyYXRpb24udG9GaXhlZCgyKSsnbXMnO3Jvd3MucHVzaCh7bmFtZTpsaW5rRWwsdmFsdWU6dmFsdWVTdHJpbmd9KTt9KTt9Ci12YXIgZGVzY3JpcHRpb25FbD10ci5iLnVpLmNyZWF0ZURpdih7dGV4dENvbnRlbnQ6YWxlcnQuaW5mby5kZXNjcmlwdGlvbixtYXhXaWR0aDonMzAwcHgnfSk7cm93cy5wdXNoKHtuYW1lOidEZXNjcmlwdGlvbicsdmFsdWU6ZGVzY3JpcHRpb25FbH0pO2lmKGFsZXJ0LmluZm8uZG9jTGlua3Mpe2FsZXJ0LmluZm8uZG9jTGlua3MuZm9yRWFjaChmdW5jdGlvbihsaW5rT2JqZWN0KXt2YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtsaW5rRWwudGFyZ2V0PSdfYmxhbmsnO2xpbmtFbC5ocmVmPWxpbmtPYmplY3QuaHJlZjtsaW5rRWwudGV4dENvbnRlbnQ9bGlua09iamVjdC50ZXh0Q29udGVudDtyb3dzLnB1c2goe25hbWU6bGlua09iamVjdC5sYWJlbCx2YWx1ZTpsaW5rRWx9KTt9KTt9Ci1yZXR1cm4gcm93czt9LGdldFJvd3NGb3JBbGVydHNfOmZ1bmN0aW9uKGFsZXJ0cyl7aWYoYWxlcnRzLmxlbmd0aD09MSl7dmFyIHJvd3M9W3tuYW1lOidBbGVydCcsdmFsdWU6YWxlcnRzWzBdLnRpdGxlfV07dmFyIGRldGFpbFJvd3M9dGhpcy5nZXRSb3dzRm9yU2luZ2xlQWxlcnRfKGFsZXJ0c1swXSk7cm93cy5wdXNoLmFwcGx5KHJvd3MsZGV0YWlsUm93cyk7cmV0dXJuIHJvd3M7fWVsc2V7cmV0dXJuIGFsZXJ0cy5tYXAoZnVuY3Rpb24oYWxlcnQpe3JldHVybntuYW1lOidBbGVydCcsdmFsdWU6YWxlcnQudGl0bGUsaXNFeHBhbmRlZDphbGVydHMuc2l6ZTwxMCxzdWJSb3dzOnRoaXMuZ2V0Um93c0ZvclNpbmdsZUFsZXJ0XyhhbGVydCl9O30sdGhpcyk7fX0sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7aWYodGhpcy5jdXJyZW50U2VsZWN0aW9uXz09PXVuZGVmaW5lZCl7dGhpcy4kLnRhYmxlLnJvd3M9W107dGhpcy4kLnRhYmxlLnJlYnVpbGQoKTtyZXR1cm47fQotdmFyIGFsZXJ0cz10aGlzLmN1cnJlbnRTZWxlY3Rpb25fO3RoaXMuJC50YWJsZS50YWJsZVJvd3M9dGhpcy5nZXRSb3dzRm9yQWxlcnRzXyhhbGVydHMpO3RoaXMuJC50YWJsZS5yZWJ1aWxkKCk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtc2luZ2xlLWZyYW1lLXN1Yi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXtpZihzZWxlY3Rpb24ubGVuZ3RoIT0xKQotdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBmcmFtZSEnKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLiQuYXN2LnNlbGVjdGlvbj1uZXcgdHIuYy5TZWxlY3Rpb24oc2VsZWN0aW9uWzBdLmFzc29jaWF0ZWRBbGVydHMpO30sZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpe2lmKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gbmV3IHRyLmMuU2VsZWN0aW9uKHRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF0uYXNzb2NpYXRlZEV2ZW50cyk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtbXVsdGktZnJhbWUtc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy50ZXh0Q29udGVudD0nJzt2YXIgcmVhbFZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3Jyk7cmVhbFZpZXcuZXZlbnRzSGF2ZUR1cmF0aW9uPWZhbHNlO3JlYWxWaWV3LmV2ZW50c0hhdmVTdWJSb3dzPWZhbHNlO3RoaXMuYXBwZW5kQ2hpbGQocmVhbFZpZXcpO3JlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpe2lmKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQotcmV0dXJuIHVuZGVmaW5lZDt2YXIgc2VsZWN0aW9uPW5ldyB0ci5jLlNlbGVjdGlvbigpO3RoaXMuY3VycmVudFNlbGVjdGlvbl8uZm9yRWFjaChmdW5jdGlvbihmcmFtZUV2ZW50KXtmcmFtZUV2ZW50LmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCl7c2VsZWN0aW9uLnB1c2goZXZlbnQpO30pO30pO3JldHVybiBzZWxlY3Rpb247fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1iLXVpLWNvbG9yLWxlZ2VuZCcse3JlYWR5OmZ1bmN0aW9uKCl7dmFyIGJsYWNrU3F1YXJlQ2hhckNvZGU9OTYzMjt0aGlzLiQuc3F1YXJlLmlubmVyVGV4dD1TdHJpbmcuZnJvbUNoYXJDb2RlKGJsYWNrU3F1YXJlQ2hhckNvZGUpO3RoaXMubGFiZWxfPXVuZGVmaW5lZDt9LGdldCBsYWJlbCgpe3JldHVybiB0aGlzLmxhYmVsXzt9LHNldCBsYWJlbChsYWJlbCl7dGhpcy5sYWJlbF89bGFiZWw7aWYodGhpcy5sYWJlbF89PT11bmRlZmluZWQpe3RoaXMuJC5zcXVhcmUuc3R5bGUuY29sb3I9J2luaXRpYWwnO3RoaXMuJC5sYWJlbC5pbm5lclRleHQ9Jyc7cmV0dXJuO30KLXZhciBwYWxldHRlUmF3PXRyLmIudWkuZ2V0UmF3Q29sb3JQYWxldHRlKCk7dmFyIGNvbG9ySWQ9dHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcodGhpcy5sYWJlbF8pO3ZhciBjb2xvcj10ci5iLnVpLmNvbG9yVG9SR0JTdHJpbmcocGFsZXR0ZVJhd1tjb2xvcklkXSk7dGhpcy4kLnNxdWFyZS5zdHlsZS5jb2xvcj1jb2xvcjt0aGlzLiQubGFiZWwuaW5uZXJUZXh0PXRoaXMubGFiZWxfO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMuYW5hbHlzaXMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gTWVtb3J5Q29sdW1uKG5hbWUsdGl0bGUsdW5pdHMsY2VsbEdldHRlcil7dGhpcy5uYW1lPW5hbWU7dGhpcy50aXRsZT10aXRsZTt0aGlzLnVuaXRzPXVuaXRzO3RoaXMuY2VsbD1jZWxsR2V0dGVyO30KLU1lbW9yeUNvbHVtbi5mcm9tUm93cz1mdW5jdGlvbihyb3dzLGNlbGxLZXksb3B0X3RpdGxlQnVpbGRlcil7dmFyIGNvbHVtblRyYWl0cz17fTtmdW5jdGlvbiBnYXRoZXJUcmFpdHMocm93KXtpZihyb3c9PT11bmRlZmluZWQpCi1yZXR1cm47dmFyIGF0dHJDZWxscz1yb3dbY2VsbEtleV07dHIuYi5pdGVySXRlbXMoYXR0ckNlbGxzLGZ1bmN0aW9uKGF0dHJOYW1lLGF0dHJDZWxsKXtpZihhdHRyQ2VsbD09PXVuZGVmaW5lZCkKLXJldHVybjt2YXIgYXR0clZhbHVlPWF0dHJDZWxsLmF0dHI7aWYoYXR0clZhbHVlPT09dW5kZWZpbmVkKQotcmV0dXJuO3ZhciBleGlzdGluZ1RyYWl0cz1jb2x1bW5UcmFpdHNbYXR0ck5hbWVdO2lmKGV4aXN0aW5nVHJhaXRzPT09dW5kZWZpbmVkKXtjb2x1bW5UcmFpdHNbYXR0ck5hbWVdPXtjb25zdHJ1Y3RvcjphdHRyVmFsdWUuY29uc3RydWN0b3IsdW5pdHM6YXR0clZhbHVlLnVuaXRzfTtyZXR1cm47fQotaWYoZXhpc3RpbmdUcmFpdHMuY29uc3RydWN0b3IhPT1hdHRyVmFsdWUuY29uc3RydWN0b3J8fGV4aXN0aW5nVHJhaXRzLnVuaXRzIT09YXR0clZhbHVlLnVuaXRzKXtleGlzdGluZ1RyYWl0cy5jb25zdHJ1Y3Rvcj10ci5tb2RlbC5Vbmtub3duQXR0cmlidXRlO2V4aXN0aW5nVHJhaXRzLnVuaXRzPXVuZGVmaW5lZDt9fSk7aWYocm93LnN1YlJvd3MhPT11bmRlZmluZWQpCi1yb3cuc3ViUm93cy5mb3JFYWNoKGdhdGhlclRyYWl0cyk7fTtyb3dzLmZvckVhY2goZ2F0aGVyVHJhaXRzKTt2YXIgdGl0bGVCdWlsZGVyPW9wdF90aXRsZUJ1aWxkZXJ8fHRyLmIuaWRlbnRpdHk7dmFyIGNvbHVtbnM9W107dHIuYi5pdGVySXRlbXMoY29sdW1uVHJhaXRzLGZ1bmN0aW9uKGNvbHVtbk5hbWUsY29sdW1uVHJhaXRzKXt2YXIgY2VsbEdldHRlcj1maWVsZEdldHRlcihjZWxsS2V5LGNvbHVtbk5hbWUpO3ZhciB0aXRsZT10aXRsZUJ1aWxkZXIoY29sdW1uTmFtZSk7Y29sdW1ucy5wdXNoKE1lbW9yeUNvbHVtbi5mcm9tQXR0cmlidXRlVHJhaXRzKGNvbHVtbk5hbWUsdGl0bGUsY29sdW1uVHJhaXRzLGNlbGxHZXR0ZXIpKTt9KTtyZXR1cm4gY29sdW1uczt9O01lbW9yeUNvbHVtbi5mcm9tQXR0cmlidXRlVHJhaXRzPWZ1bmN0aW9uKG5hbWUsdGl0bGUsdHJhaXRzLGNlbGxHZXR0ZXIpe3ZhciBjb25zdHJ1Y3RvcjtpZih0cmFpdHMuY29uc3RydWN0b3I9PT10ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUpCi1jb25zdHJ1Y3Rvcj1TY2FsYXJNZW1vcnlDb2x1bW47ZWxzZQotY29uc3RydWN0b3I9TWVtb3J5Q29sdW1uO3JldHVybiBuZXcgY29uc3RydWN0b3IobmFtZSx0aXRsZSx0cmFpdHMudW5pdHMsY2VsbEdldHRlcik7fTtNZW1vcnlDb2x1bW4uc3BhY2VFcXVhbGx5PWZ1bmN0aW9uKGNvbHVtbnMpe3ZhciBjb2x1bW5XaWR0aD0oMTAwL2NvbHVtbnMubGVuZ3RoKS50b0ZpeGVkKDMpKyclJztjb2x1bW5zLmZvckVhY2goZnVuY3Rpb24oY29sdW1uKXtjb2x1bW4ud2lkdGg9Y29sdW1uV2lkdGg7fSk7fTtNZW1vcnlDb2x1bW4uc29ydEJ5SW1wb3J0YW5jZT1mdW5jdGlvbihjb2x1bW5zLGltcG9ydGFuY2VSdWxlcyl7dmFyIHBvc2l0aW9ucz1jb2x1bW5zLm1hcChmdW5jdGlvbihjb2x1bW4sc3JjSW5kZXgpe3JldHVybntpbXBvcnRhbmNlOmNvbHVtbi5nZXRJbXBvcnRhbmNlKGltcG9ydGFuY2VSdWxlcyksc3JjSW5kZXg6c3JjSW5kZXgsY29sdW1uOmNvbHVtbn07fSk7cG9zaXRpb25zLnNvcnQoZnVuY3Rpb24oYSxiKXtpZihhLmltcG9ydGFuY2U9PT1iLmltcG9ydGFuY2UpCi1yZXR1cm4gYS5zcmNJbmRleC1iLnNyY0luZGV4O3JldHVybiBiLmltcG9ydGFuY2UtYS5pbXBvcnRhbmNlO30pO3Bvc2l0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHBvc2l0aW9uLGRzdEluZGV4KXtjb2x1bW5zW2RzdEluZGV4XT1wb3NpdGlvbi5jb2x1bW47fSk7fTtNZW1vcnlDb2x1bW4ucHJvdG90eXBlPXthdHRyOmZ1bmN0aW9uKHJvdyl7dmFyIGNlbGw9dGhpcy5jZWxsKHJvdyk7aWYoY2VsbD09PXVuZGVmaW5lZCkKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIGNlbGwuYXR0cjt9LHZhbHVlOmZ1bmN0aW9uKHJvdyl7dmFyIGF0dHI9dGhpcy5hdHRyKHJvdyk7aWYoYXR0cj09PXVuZGVmaW5lZCkKLXJldHVybicnO3JldHVybiB0aGlzLmZvcm1hdERlZmluZWRBdHRyaWJ1dGUoYXR0cik7fSxmb3JtYXREZWZpbmVkQXR0cmlidXRlOmZ1bmN0aW9uKGF0dHIpe3JldHVybiBTdHJpbmcoYXR0ci52YWx1ZSk7fSxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXt2YXIgYXR0ckE9dGhpcy5hdHRyKHJvd0EpO3ZhciBhdHRyQj10aGlzLmF0dHIocm93Qik7aWYoYXR0ckE9PT11bmRlZmluZWQmJmF0dHJCPT09dW5kZWZpbmVkKQotcmV0dXJuIDA7aWYoYXR0ckE9PT11bmRlZmluZWQpCi1yZXR1cm4tMTtpZihhdHRyQj09PXVuZGVmaW5lZCkKLXJldHVybiAxO3JldHVybiB0aGlzLmNvbXBhcmVEZWZpbmVkQXR0cmlidXRlcyhhdHRyQSxhdHRyQik7fSxjb21wYXJlRGVmaW5lZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oYXR0ckEsYXR0ckIpe3ZhciBzdHJBPVN0cmluZyhhdHRyQS52YWx1ZSk7dmFyIHN0ckI9U3RyaW5nKGF0dHJCLnZhbHVlKTtyZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpO30sZ2V0SW1wb3J0YW5jZTpmdW5jdGlvbihpbXBvcnRhbmNlUnVsZXMpe2lmKGltcG9ydGFuY2VSdWxlcy5sZW5ndGg9PT0wKQotcmV0dXJuIDA7Zm9yKHZhciBpPTA7aTxpbXBvcnRhbmNlUnVsZXMubGVuZ3RoO2krKyl7dmFyIGltcG9ydGFuY2VSdWxlPWltcG9ydGFuY2VSdWxlc1tpXTtpZih0aGlzLm1hdGNoZXNOYW1lQ29uZGl0aW9uKGltcG9ydGFuY2VSdWxlLmNvbmRpdGlvbikpCi1yZXR1cm4gaW1wb3J0YW5jZVJ1bGUuaW1wb3J0YW5jZTt9Ci12YXIgbWluSW1wb3J0YW5jZT1pbXBvcnRhbmNlUnVsZXNbMF0uaW1wb3J0YW5jZTtmb3IodmFyIGk9MTtpPGltcG9ydGFuY2VSdWxlcy5sZW5ndGg7aSsrKXttaW5JbXBvcnRhbmNlPU1hdGgubWluKG1pbkltcG9ydGFuY2UsaW1wb3J0YW5jZVJ1bGVzW2ldLmltcG9ydGFuY2UpO30KLXJldHVybiBtaW5JbXBvcnRhbmNlLTE7fSxtYXRjaGVzTmFtZUNvbmRpdGlvbjpmdW5jdGlvbihjb25kaXRpb24pe2lmKGNvbmRpdGlvbj09PXVuZGVmaW5lZCkKLXJldHVybiB0cnVlO2lmKHR5cGVvZihjb25kaXRpb24pPT09J3N0cmluZycpCi1yZXR1cm4gdGhpcy5uYW1lPT09Y29uZGl0aW9uO3JldHVybiBjb25kaXRpb24udGVzdCh0aGlzLm5hbWUpO319O2Z1bmN0aW9uIFNjYWxhck1lbW9yeUNvbHVtbihuYW1lLHRpdGxlLHVuaXRzLGNlbGxHZXR0ZXIpe01lbW9yeUNvbHVtbi5jYWxsKHRoaXMsbmFtZSx0aXRsZSx1bml0cyxjZWxsR2V0dGVyKTt9Ci1TY2FsYXJNZW1vcnlDb2x1bW4ucHJvdG90eXBlPXtfX3Byb3RvX186TWVtb3J5Q29sdW1uLnByb3RvdHlwZSxmb3JtYXREZWZpbmVkQXR0cmlidXRlOmZ1bmN0aW9uKGF0dHIpe2lmKHRoaXMudW5pdHM9PT0nYnl0ZXMnKXt2YXIgc2l6ZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS1zaXplLWluLWJ5dGVzLXNwYW4nKTtzaXplRWwubnVtQnl0ZXM9YXR0ci52YWx1ZTtyZXR1cm4gc2l6ZUVsO30KLXJldHVybiBNZW1vcnlDb2x1bW4ucHJvdG90eXBlLmZvcm1hdERlZmluZWRBdHRyaWJ1dGUuY2FsbCh0aGlzLGF0dHIpO30sY29tcGFyZURlZmluZWRBdHRyaWJ1dGVzOmZ1bmN0aW9uKGF0dHJBLGF0dHJCKXtyZXR1cm4gYXR0ckEudmFsdWUtYXR0ckIudmFsdWU7fX07ZnVuY3Rpb24gTWVtb3J5Q2VsbChhdHRyKXt0aGlzLmF0dHI9YXR0cjt9Ci1mdW5jdGlvbiBmaWVsZEdldHRlcigpe3ZhciBmaWVsZHM9dHIuYi5hc0FycmF5KGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHJvdyl7dmFyIHZhbHVlPXJvdztmb3IodmFyIGk9MDtpPGZpZWxkcy5sZW5ndGg7aSsrKQotdmFsdWU9dmFsdWVbZmllbGRzW2ldXTtyZXR1cm4gdmFsdWU7fTt9Ci12YXIgUkVDVVJTSVZFX0VYUEFOU0lPTl9NQVhfU1VCX1JPV19DT1VOVD0xMDtmdW5jdGlvbiBleHBhbmRUYWJsZVJvd3NSZWN1cnNpdmVseSh0YWJsZSl7ZnVuY3Rpb24gZXhwYW5kUm93UmVjdXJzaXZlbHkocm93KXtpZihyb3cuc3ViUm93cz09PXVuZGVmaW5lZHx8cm93LnN1YlJvd3MubGVuZ3RoPT09MCkKLXJldHVybjtpZihyb3cuc3ViUm93cy5sZW5ndGg+UkVDVVJTSVZFX0VYUEFOU0lPTl9NQVhfU1VCX1JPV19DT1VOVCkKLXJldHVybjt0YWJsZS5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvdyx0cnVlKTtyb3cuc3ViUm93cy5mb3JFYWNoKGV4cGFuZFJvd1JlY3Vyc2l2ZWx5KTt9Ci10YWJsZS50YWJsZVJvd3MuZm9yRWFjaChleHBhbmRSb3dSZWN1cnNpdmVseSk7fQotcmV0dXJue01lbW9yeUNvbHVtbjpNZW1vcnlDb2x1bW4sU2NhbGFyTWVtb3J5Q29sdW1uOlNjYWxhck1lbW9yeUNvbHVtbixNZW1vcnlDZWxsOk1lbW9yeUNlbGwsZmllbGRHZXR0ZXI6ZmllbGRHZXR0ZXIsZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHk6ZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHl9O30pOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXt2YXIgSU1QT1JUQU5DRV9SVUxFUz1be2NvbmRpdGlvbjonc2l6ZScsaW1wb3J0YW5jZToxMH0se2NvbmRpdGlvbjonb3V0ZXJfc2l6ZScsaW1wb3J0YW5jZTo5fSx7Y29uZGl0aW9uOidwYWdlX3NpemUnLGltcG9ydGFuY2U6MH0se2NvbmRpdGlvbjovc2l6ZS8saW1wb3J0YW5jZTo1fSx7aW1wb3J0YW5jZTowfV07UG9seW1lcigndHItYy1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wXz11bmRlZmluZWQ7fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxzZXQgbWVtb3J5QWxsb2NhdG9yRHVtcChtZW1vcnlBbGxvY2F0b3JEdW1wKXt0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfPW1lbW9yeUFsbG9jYXRvckR1bXA7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBtZW1vcnlBbGxvY2F0b3JEdW1wKCl7cmV0dXJuIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcF87fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudHMudGV4dENvbnRlbnQ9Jyc7aWYodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wXz09PXVuZGVmaW5lZCl7dmFyIGluZm9UZXh0PXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTt0aGlzLiQuY29udGVudHMuYXBwZW5kQ2hpbGQoaW5mb1RleHQpO2luZm9UZXh0LmNsYXNzTGlzdC5hZGQoJ2luZm8tdGV4dCcpO2luZm9UZXh0LmlubmVyVGV4dD0nTm8gbWVtb3J5IGFsbG9jYXRvciBkdW1wIHNlbGVjdGVkJztyZXR1cm47fQotdmFyIHJvd3M9dGhpcy5jcmVhdGVSb3dzXygpO3ZhciBjb2x1bW5zPXRoaXMuY3JlYXRlQ29sdW1uc18ocm93cyk7dmFyIHRhYmxlPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLXRhYmxlJyk7dGhpcy4kLmNvbnRlbnRzLmFwcGVuZENoaWxkKHRhYmxlKTt0YWJsZS5zdXBwb3J0c1NlbGVjdGlvbj10cnVlO3RhYmxlLnRhYmxlUm93cz1yb3dzO3RhYmxlLnRhYmxlQ29sdW1ucz1jb2x1bW5zO3RhYmxlLnJlYnVpbGQoKTt0ci5jLmFuYWx5c2lzLmV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5KHRhYmxlKTt9LGNyZWF0ZVJvd3NfOmZ1bmN0aW9uKCl7dmFyIGNyZWF0ZUFsbG9jYXRvclJvdz1mdW5jdGlvbihhbGxvY2F0b3JEdW1wKXt2YXIgY2VsbHM9dHIuYi5tYXBJdGVtcyhhbGxvY2F0b3JEdW1wLmF0dHJpYnV0ZXMsZnVuY3Rpb24oYXR0ck5hbWUsYXR0clZhbHVlKXtyZXR1cm4gbmV3IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q2VsbChhdHRyVmFsdWUpO30pO3ZhciByb3c9e3RpdGxlOmFsbG9jYXRvckR1bXAubmFtZSxjZWxsczpjZWxsc307aWYoYWxsb2NhdG9yRHVtcC5jaGlsZHJlbi5sZW5ndGg+MCkKLXJvdy5zdWJSb3dzPWFsbG9jYXRvckR1bXAuY2hpbGRyZW4ubWFwKGNyZWF0ZUFsbG9jYXRvclJvdyk7cmV0dXJuIHJvdzt9O3ZhciByb3dzPVtjcmVhdGVBbGxvY2F0b3JSb3codGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wXyldO3JldHVybiByb3dzO30sY3JlYXRlQ29sdW1uc186ZnVuY3Rpb24ocm93cyl7dmFyIHRpdGxlQ29sdW1uPXt0aXRsZTonQWxsb2NhdG9yJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cudGl0bGU7fSx3aWR0aDonMjAwcHgnLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLnRpdGxlLmxvY2FsZUNvbXBhcmUocm93Qi50aXRsZSk7fX07dmFyIGF0dHJpYnV0ZUNvbHVtbnM9dHIuYy5hbmFseXNpcy5NZW1vcnlDb2x1bW4uZnJvbVJvd3Mocm93cywnY2VsbHMnKTt0ci5jLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHkoYXR0cmlidXRlQ29sdW1ucyk7dHIuYy5hbmFseXNpcy5NZW1vcnlDb2x1bW4uc29ydEJ5SW1wb3J0YW5jZShhdHRyaWJ1dGVDb2x1bW5zLElNUE9SVEFOQ0VfUlVMRVMpO3ZhciBjb2x1bW5zPVt0aXRsZUNvbHVtbl0uY29uY2F0KGF0dHJpYnV0ZUNvbHVtbnMpO3JldHVybiBjb2x1bW5zO319KTt9KSgpOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXt2YXIgQ0xBU1NJRklDQVRJT05fUlVMRVM9e25hbWU6J1RvdGFsJyxjaGlsZHJlbjpbe25hbWU6J0FuZHJvaWQnLGZpbGU6L15cL2RldlwvYXNobWVtLyxjaGlsZHJlbjpbe25hbWU6J0phdmEgcnVudGltZScsZmlsZTovXlwvZGV2XC9hc2htZW1cL2RhbHZpay0uKiQvLGNoaWxkcmVuOlt7bmFtZTonU3BhY2VzJyxmaWxlOi9cYnNwYWNlLyxjaGlsZHJlbjpbe25hbWU6J05vcm1hbCcsZmlsZTovKGFsbG9jKXwobWFpbikvfSx7bmFtZTonTGFyZ2UnLGZpbGU6L2xhcmdlLm9iamVjdC99LHtuYW1lOidaeWdvdGUnLGZpbGU6L3p5Z290ZS99LHtuYW1lOidOb24tbW92aW5nJyxmaWxlOi9ub24ubW92aW5nL31dfSx7bmFtZTonTGluZWFyIEFsbG9jJyxmaWxlOi9MaW5lYXJBbGxvYy99LHtuYW1lOidJbmRpcmVjdCBSZWZlcmVuY2UgVGFibGUnLGZpbGU6L2luZGlyZWN0LnJlZi99LHtuYW1lOidDYWNoZScsZmlsZTovaml0LWNvZGUtY2FjaGUvfSx7bmFtZTonQWNjb3VudGluZyd9XX0se25hbWU6J0N1cnNvcicsZmlsZTovQ3Vyc29yV2luZG93L30se25hbWU6J0FzaG1lbSd9XX0se25hbWU6J05hdGl2ZSBoZWFwJyxmaWxlOi9eKChcW2hlYXBcXSl8KFxbYW5vbjopfChcL2RldlwvYXNobWVtXC9saWJjIG1hbGxvYyl8JCkvfSx7bmFtZTonU3RhY2snLGZpbGU6L15cW3N0YWNrL30se25hbWU6J0ZpbGVzJyxmaWxlOi9cLigoKChzbyl8KGphcil8KGFwayl8KHR0Zil8KG9kZXgpfChvYXQpfChhcmcpKSQpfChkZXgpKS8sY2hpbGRyZW46W3tuYW1lOidzbycsZmlsZTovXC5zbyQvfSx7bmFtZTonamFyJyxmaWxlOi9cLmphciQvfSx7bmFtZTonYXBrJyxmaWxlOi9cLmFwayQvfSx7bmFtZTondHRmJyxmaWxlOi9cLnR0ZiQvfSx7bmFtZTonZGV4JyxmaWxlOi9cLigoZGV4KXwob2RleCQpKS99LHtuYW1lOidvYXQnLGZpbGU6L1wub2F0JC99LHtuYW1lOidhcnQnLGZpbGU6L1wuYXJ0JC99XX0se25hbWU6J0RldmljZXMnLGZpbGU6LyheXC9kZXZcLyl8KGFub25faW5vZGU6ZG1hYnVmKS8sY2hpbGRyZW46W3tuYW1lOidHUFUnLGZpbGU6L1wvKChudil8KG1hbGkpfChrZ3NsKSkvfSx7bmFtZTonRE1BJyxmaWxlOi9hbm9uX2lub2RlOmRtYWJ1Zi99XX0se25hbWU6J0Rpc2NvdW50ZWQgdHJhY2luZyBvdmVyaGVhZCcsZmlsZTovXFtkaXNjb3VudGVkIHRyYWNpbmcgb3ZlcmhlYWRcXS99XX07ZnVuY3Rpb24gY3JlYXRlRW1wdHlSb3cocnVsZSl7dmFyIHJvdz17dGl0bGU6cnVsZS5uYW1lLHJ1bGU6cnVsZSxjZWxsczp7fSxzdWJSb3dzOltdfTtpZihydWxlLmNoaWxkcmVuIT09dW5kZWZpbmVkKQotcm93LnN1YlJvd3M9cnVsZS5jaGlsZHJlbi5tYXAoY3JlYXRlRW1wdHlSb3cpO3JldHVybiByb3c7fQotZnVuY3Rpb24gaGV4U3RyaW5nKGFkZHJlc3MsaXM2NEJpdEFkZHJlc3Mpe3ZhciBoZXhQYWRkaW5nPWlzNjRCaXRBZGRyZXNzPycwMDAwMDAwMDAwMDAwMDAwJzonMDAwMDAwMDAnO2lmKGFkZHJlc3M9PT11bmRlZmluZWQpCi1yZXR1cm4gdW5kZWZpbmVkO3JldHVybihoZXhQYWRkaW5nK2FkZHJlc3MudG9TdHJpbmcoMTYpKS5zdWJzdHIoLWhleFBhZGRpbmcubGVuZ3RoKTt9Ci1mdW5jdGlvbiBjbGFzc2lmeVZNUmVnaW9uKHJvdyx2bVJlZ2lvbixpczY0Qml0QWRkcmVzcyl7dmFyIHJ1bGU9cm93LnJ1bGU7aWYocnVsZT09PXVuZGVmaW5lZHx8cnVsZS5jaGlsZHJlbj09PXVuZGVmaW5lZHx8cnVsZS5jaGlsZHJlbi5sZW5ndGg9PT0wKXt2YXIgbWFwcGVkRmlsZT12bVJlZ2lvbi5tYXBwZWRGaWxlfHwnJzt2YXIgY2VsbHM9e307ZnVuY3Rpb24gYWRkQ2VsbElmVmFsdWVEZWZpbmVkKGNvbHVtbk5hbWUsYXR0ckNsYXNzLHVuaXRzLHZhbHVlKXtpZih2YWx1ZT09PXVuZGVmaW5lZCkKLXJldHVybjt2YXIgYXR0cj1uZXcgYXR0ckNsYXNzKHVuaXRzLHZhbHVlKTt2YXIgY2VsbD1uZXcgdHIuYy5hbmFseXNpcy5NZW1vcnlDZWxsKGF0dHIpO2NlbGxzW2NvbHVtbk5hbWVdPWNlbGw7fQotZnVuY3Rpb24gYWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoY29sdW1uTmFtZSx2YWx1ZSl7YWRkQ2VsbElmVmFsdWVEZWZpbmVkKGNvbHVtbk5hbWUsdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlLCdieXRlcycsdmFsdWUpO30KLWFkZENlbGxJZlZhbHVlRGVmaW5lZCgnU3RhcnQgYWRkcmVzcycsdHIubW9kZWwuU3RyaW5nQXR0cmlidXRlLCcnLGhleFN0cmluZyh2bVJlZ2lvbi5zdGFydEFkZHJlc3MsaXM2NEJpdEFkZHJlc3MpKTthZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnVmlydHVhbCBzaXplJyx2bVJlZ2lvbi5zaXplSW5CeXRlcyk7YWRkQ2VsbElmVmFsdWVEZWZpbmVkKCdQcm90ZWN0aW9uIGZsYWdzJyx0ci5tb2RlbC5TdHJpbmdBdHRyaWJ1dGUsJycsdm1SZWdpb24ucHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcpO2FkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdQU1MnLHZtUmVnaW9uLmJ5dGVTdGF0cy5wcm9wb3J0aW9uYWxSZXNpZGVudCk7YWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1ByaXZhdGUgZGlydHknLHZtUmVnaW9uLmJ5dGVTdGF0cy5wcml2YXRlRGlydHlSZXNpZGVudCk7YWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1ByaXZhdGUgY2xlYW4nLHZtUmVnaW9uLmJ5dGVTdGF0cy5wcml2YXRlQ2xlYW5SZXNpZGVudCk7YWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1NoYXJlZCBkaXJ0eScsdm1SZWdpb24uYnl0ZVN0YXRzLnNoYXJlZERpcnR5UmVzaWRlbnQpO2FkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdTaGFyZWQgY2xlYW4nLHZtUmVnaW9uLmJ5dGVTdGF0cy5zaGFyZWRDbGVhblJlc2lkZW50KTthZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnU3dhcHBlZCcsdm1SZWdpb24uYnl0ZVN0YXRzLnN3YXBwZWQpO3Jvdy5zdWJSb3dzLnB1c2goe3RpdGxlOm1hcHBlZEZpbGUsY2VsbHM6Y2VsbHN9KTtyZXR1cm47fQotZnVuY3Rpb24gdm1SZWdpb25NYXRjaGVzQ2hpbGRSdWxlKGNoaWxkUnVsZSl7dmFyIGZpbGVSZWdFeHA9Y2hpbGRSdWxlLmZpbGU7aWYoZmlsZVJlZ0V4cD09PXVuZGVmaW5lZCkKLXJldHVybiB0cnVlO3JldHVybiBmaWxlUmVnRXhwLnRlc3Qodm1SZWdpb24ubWFwcGVkRmlsZSk7fQotdmFyIG1hdGNoZWRDaGlsZFJ1bGVJbmRleD10ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheShydWxlLmNoaWxkcmVuLHZtUmVnaW9uTWF0Y2hlc0NoaWxkUnVsZSk7aWYobWF0Y2hlZENoaWxkUnVsZUluZGV4PT09LTEpe21hdGNoZWRDaGlsZFJ1bGVJbmRleD1ydWxlLmNoaWxkcmVuLmxlbmd0aDtpZihtYXRjaGVkQ2hpbGRSdWxlSW5kZXg+PXJvdy5zdWJSb3dzLmxlbmd0aCl7cm93LnN1YlJvd3MucHVzaCh7dGl0bGU6J090aGVyJyxjZWxsczp7fSxzdWJSb3dzOltdfSk7fX0KLWNsYXNzaWZ5Vk1SZWdpb24ocm93LnN1YlJvd3NbbWF0Y2hlZENoaWxkUnVsZUluZGV4XSx2bVJlZ2lvbixpczY0Qml0QWRkcmVzcyk7fQotZnVuY3Rpb24gYWdncmVnYXRlUm93Q2VsbHMocm93KXtpZihyb3cuc3ViUm93cz09PXVuZGVmaW5lZCkKLXJldHVybjt2YXIgY2VsbHM9e307cm93LnN1YlJvd3MuZm9yRWFjaChmdW5jdGlvbihzdWJSb3cpe2FnZ3JlZ2F0ZVJvd0NlbGxzKHN1YlJvdyk7dHIuYi5pdGVySXRlbXMoc3ViUm93LmNlbGxzLGZ1bmN0aW9uKGNvbHVtbk5hbWUpe2NlbGxzW2NvbHVtbk5hbWVdPXRydWU7fSk7fSk7dHIuYi5pdGVySXRlbXMoY2VsbHMsZnVuY3Rpb24obmFtZSl7dmFyIGNoaWxkQXR0cmlidXRlcz1yb3cuc3ViUm93cy5tYXAoZnVuY3Rpb24oc3ViUm93KXt2YXIgY2VsbD1zdWJSb3cuY2VsbHNbbmFtZV07aWYoY2VsbD09PXVuZGVmaW5lZCkKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIGNlbGwuYXR0cjt9LHRoaXMpO3Jvdy5jZWxsc1tuYW1lXT1uZXcgdHIuYy5hbmFseXNpcy5NZW1vcnlDZWxsKHRyLm1vZGVsLkF0dHJpYnV0ZS5hZ2dyZWdhdGUoY2hpbGRBdHRyaWJ1dGVzKSk7fSk7fQotUG9seW1lcigndHItYy1hLW1lbW9yeS1kdW1wLXZtLXJlZ2lvbnMtZGV0YWlscy1wYW5lJyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMudm1SZWdpb25zXz11bmRlZmluZWQ7fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxzZXQgdm1SZWdpb25zKHZtUmVnaW9ucyl7dGhpcy52bVJlZ2lvbnNfPXZtUmVnaW9uczt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IHZtUmVnaW9ucygpe3JldHVybiB0aGlzLnZtUmVnaW9uc187fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudHMudGV4dENvbnRlbnQ9Jyc7aWYodGhpcy52bVJlZ2lvbnNfPT09dW5kZWZpbmVkKXt2YXIgaW5mb1RleHQ9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3RoaXMuJC5jb250ZW50cy5hcHBlbmRDaGlsZChpbmZvVGV4dCk7aW5mb1RleHQuY2xhc3NMaXN0LmFkZCgnaW5mby10ZXh0Jyk7aW5mb1RleHQuaW5uZXJUZXh0PSdObyBtZW1vcnkgbWFwcyBzZWxlY3RlZCc7cmV0dXJuO30KLXZhciByb3dzPXRoaXMuY3JlYXRlUm93c18oKTt2YXIgY29sdW1ucz10aGlzLmNyZWF0ZUNvbHVtbnNfKHJvd3MpO3ZhciB0YWJsZT10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpO3RoaXMuJC5jb250ZW50cy5hcHBlbmRDaGlsZCh0YWJsZSk7dGFibGUuc3VwcG9ydHNTZWxlY3Rpb249dHJ1ZTt0YWJsZS50YWJsZVJvd3M9cm93czt0YWJsZS50YWJsZUNvbHVtbnM9Y29sdW1uczt0YWJsZS5yZWJ1aWxkKCk7dHIuYy5hbmFseXNpcy5leHBhbmRUYWJsZVJvd3NSZWN1cnNpdmVseSh0YWJsZSk7fSxjcmVhdGVSb3dzXzpmdW5jdGlvbigpe3ZhciBpczY0Qml0QWRkcmVzcz10aGlzLnZtUmVnaW9uc18uc29tZShmdW5jdGlvbih2bVJlZ2lvbil7aWYodm1SZWdpb24uc3RhcnRBZGRyZXNzPT09dW5kZWZpbmVkKQotcmV0dXJuO3JldHVybiB2bVJlZ2lvbi5zdGFydEFkZHJlc3M+PTQyOTQ5NjcyOTY7fSk7dmFyIHJvb3RSb3c9Y3JlYXRlRW1wdHlSb3coQ0xBU1NJRklDQVRJT05fUlVMRVMpO3RoaXMudm1SZWdpb25zXy5tYXAoZnVuY3Rpb24odm1SZWdpb24pe2NsYXNzaWZ5Vk1SZWdpb24ocm9vdFJvdyx2bVJlZ2lvbixpczY0Qml0QWRkcmVzcyk7fSk7YWdncmVnYXRlUm93Q2VsbHMocm9vdFJvdyk7cmV0dXJuW3Jvb3RSb3ddO30sY3JlYXRlQ29sdW1uc186ZnVuY3Rpb24ocm93cyl7dmFyIHRpdGxlQ29sdW1uPXt0aXRsZTonTWFwcGVkIGZpbGUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy50aXRsZTt9LHdpZHRoOicyMDBweCcsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EudGl0bGUubG9jYWxlQ29tcGFyZShyb3dCLnRpdGxlKTt9fTt2YXIgYXR0cmlidXRlQ29sdW1ucz10ci5jLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5mcm9tUm93cyhyb3dzLCdjZWxscycpO3RyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShhdHRyaWJ1dGVDb2x1bW5zKTt2YXIgY29sdW1ucz1bdGl0bGVDb2x1bW5dLmNvbmNhdChhdHRyaWJ1dGVDb2x1bW5zKTtyZXR1cm4gY29sdW1uczt9fSk7fSkoKTsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7dmFyIElNUE9SVEFOQ0VfUlVMRVM9W3tjb25kaXRpb246J3RyYWNpbmcnLGltcG9ydGFuY2U6MH0se2ltcG9ydGFuY2U6MX1dO1BvbHltZXIoJ3RyLWMtYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lJyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMucHJvY2Vzc01lbW9yeUR1bXBzXz11bmRlZmluZWQ7fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuJC50YWJsZS5zdXBwb3J0c1NlbGVjdGlvbj10cnVlO3RoaXMuJC50YWJsZS5jZWxsU2VsZWN0aW9uTW9kZT10cnVlO3RoaXMuJC50YWJsZS5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlZCcsZnVuY3Rpb24odGFibGVFdmVudCl7dGFibGVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcGFuZUV2ZW50PW5ldyBFdmVudCgnc2VsZWN0ZWQtbWVtb3J5LWNlbGwtY2hhbmdlZCcpO3RoaXMuZGlzcGF0Y2hFdmVudChwYW5lRXZlbnQpO30uYmluZCh0aGlzKSk7fSxzZXQgcHJvY2Vzc01lbW9yeUR1bXBzKHByb2Nlc3NNZW1vcnlEdW1wcyl7dGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfPXByb2Nlc3NNZW1vcnlEdW1wczt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IHByb2Nlc3NNZW1vcnlEdW1wcygpe3JldHVybiB0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc187fSxnZXQgc2VsZWN0ZWRNZW1vcnlDZWxsKCl7dmFyIHNlbGVjdGVkVGFibGVSb3c9dGhpcy4kLnRhYmxlLnNlbGVjdGVkVGFibGVSb3c7aWYoIXNlbGVjdGVkVGFibGVSb3cpCi1yZXR1cm4gdW5kZWZpbmVkO3ZhciBzZWxlY3RlZENvbHVtbkluZGV4PXRoaXMuJC50YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4O2lmKHNlbGVjdGVkQ29sdW1uSW5kZXg9PT11bmRlZmluZWQpCi1yZXR1cm4gdW5kZWZpbmVkO3ZhciBzZWxlY3RlZENvbHVtbj10aGlzLiQudGFibGUudGFibGVDb2x1bW5zW3NlbGVjdGVkQ29sdW1uSW5kZXhdO3ZhciBzZWxlY3RlZE1lbW9yeUNlbGw9c2VsZWN0ZWRDb2x1bW4uY2VsbChzZWxlY3RlZFRhYmxlUm93KTtyZXR1cm4gc2VsZWN0ZWRNZW1vcnlDZWxsO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dmFyIHByb2Nlc3NNZW1vcnlEdW1wcz10aGlzLnByb2Nlc3NNZW1vcnlEdW1wc198fFtdO3ZhciByb3dzPXByb2Nlc3NNZW1vcnlEdW1wcy5tYXAoZnVuY3Rpb24ocHJvY2Vzc01lbW9yeUR1bXApe2Z1bmN0aW9uIGJ1aWxkVk1SZWdpb25zUGFuZSgpe3ZhciBwYW5lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScpO3BhbmUudm1SZWdpb25zPXByb2Nlc3NNZW1vcnlEdW1wLm1vc3RSZWNlbnRWbVJlZ2lvbnM7cmV0dXJuIHBhbmU7fQotdmFyIHVzZWRNZW1vcnlTaXplcz17fTt2YXIgdG90YWxSZXNpZGVudD1wcm9jZXNzTWVtb3J5RHVtcC50b3RhbFJlc2lkZW50Qnl0ZXM7aWYodG90YWxSZXNpZGVudCE9PXVuZGVmaW5lZCl7dmFyIGNlbGw9bmV3IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q2VsbChuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsdG90YWxSZXNpZGVudCkpO2NlbGwuYnVpbGREZXRhaWxzUGFuZT1idWlsZFZNUmVnaW9uc1BhbmU7dXNlZE1lbW9yeVNpemVzWydUb3RhbCByZXNpZGVudCddPWNlbGw7fQotZnVuY3Rpb24gYWRkQnl0ZVN0YXRDZWxsKGJ5dGVTdGF0TmFtZSxjb2x1bW5UaXRsZSl7dmFyIGJ5dGVTdGF0PXByb2Nlc3NNZW1vcnlEdW1wLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdChieXRlU3RhdE5hbWUpO2lmKGJ5dGVTdGF0IT09dW5kZWZpbmVkKXt2YXIgY2VsbD1uZXcgdHIuYy5hbmFseXNpcy5NZW1vcnlDZWxsKG5ldyB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJyxieXRlU3RhdCkpO2NlbGwuYnVpbGREZXRhaWxzUGFuZT1idWlsZFZNUmVnaW9uc1BhbmU7dXNlZE1lbW9yeVNpemVzW2NvbHVtblRpdGxlXT1jZWxsO319Ci1hZGRCeXRlU3RhdENlbGwoJ3Byb3BvcnRpb25hbFJlc2lkZW50JywnUFNTJyk7YWRkQnl0ZVN0YXRDZWxsKCdwcml2YXRlRGlydHlSZXNpZGVudCcsJ1ByaXZhdGUgZGlydHknKTthZGRCeXRlU3RhdENlbGwoJ3N3YXBwZWQnLCdTd2FwcGVkJyk7dmFyIGFsbG9jYXRvclNpemVzPXt9O2lmKHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzIT09dW5kZWZpbmVkKXtwcm9jZXNzTWVtb3J5RHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGR1bXApe3ZhciBhdHRyPWR1bXAuYXR0cmlidXRlc1snc2l6ZSddO2lmKGF0dHI9PT11bmRlZmluZWQpCi1hdHRyPWR1bXAuYXR0cmlidXRlc1snb3V0ZXJfc2l6ZSddO3ZhciBjZWxsPW5ldyB0ci5jLmFuYWx5c2lzLk1lbW9yeUNlbGwoYXR0cik7Y2VsbC5idWlsZERldGFpbHNQYW5lPWZ1bmN0aW9uKCl7dmFyIHBhbmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUnKTtwYW5lLm1lbW9yeUFsbG9jYXRvckR1bXA9ZHVtcDtyZXR1cm4gcGFuZTt9O2FsbG9jYXRvclNpemVzW2R1bXAuZnVsbE5hbWVdPWNlbGw7fSx0aGlzKTt9Ci1yZXR1cm57dGl0bGU6cHJvY2Vzc01lbW9yeUR1bXAucHJvY2Vzcy51c2VyRnJpZW5kbHlOYW1lLHVzZWRNZW1vcnlTaXplczp1c2VkTWVtb3J5U2l6ZXMsYWxsb2NhdG9yU2l6ZXM6YWxsb2NhdG9yU2l6ZXN9O30sdGhpcyk7dGhpcy4kLnRhYmxlLnRhYmxlUm93cz1yb3dzO3RoaXMudXBkYXRlQ29sdW1uc18ocm93cyk7dGhpcy4kLnRhYmxlLnJlYnVpbGQoKTt9LHVwZGF0ZUNvbHVtbnNfOmZ1bmN0aW9uKHJvd3Mpe3ZhciB0aXRsZUNvbHVtbj17dGl0bGU6J1Byb2Nlc3MnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7dmFyIHRpdGxlRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1jb2xvci1sZWdlbmQnKTt0aXRsZUVsLmxhYmVsPXJvdy50aXRsZTtyZXR1cm4gdGl0bGVFbDt9LHdpZHRoOicyMDBweCcsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EudGl0bGUubG9jYWxlQ29tcGFyZShyb3dCLnRpdGxlKTt9LHN1cHBvcnRzQ2VsbFNlbGVjdGlvbjpmYWxzZX07dmFyIHVzZWRNZW1vcnlTaXplQ29sdW1ucz10ci5jLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5mcm9tUm93cyhyb3dzLCd1c2VkTWVtb3J5U2l6ZXMnKTt2YXIgYWxsb2NhdG9yU2l6ZUNvbHVtbnM9dHIuYy5hbmFseXNpcy5NZW1vcnlDb2x1bW4uZnJvbVJvd3Mocm93cywnYWxsb2NhdG9yU2l6ZXMnLGZ1bmN0aW9uKGFsbG9jYXRvck5hbWUpe3ZhciB0aXRsZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktY29sb3ItbGVnZW5kJyk7dGl0bGVFbC5sYWJlbD1hbGxvY2F0b3JOYW1lO3JldHVybiB0aXRsZUVsO30pO3RyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNvcnRCeUltcG9ydGFuY2UoYWxsb2NhdG9yU2l6ZUNvbHVtbnMsSU1QT1JUQU5DRV9SVUxFUyk7dmFyIHRyYWNpbmdDb2x1bW49dHIuYi5maW5kRmlyc3RJbkFycmF5KGFsbG9jYXRvclNpemVDb2x1bW5zLGZ1bmN0aW9uKGNvbHVtbil7cmV0dXJuIGNvbHVtbi5uYW1lPT09J3RyYWNpbmcnO30pO2lmKHRyYWNpbmdDb2x1bW4hPT11bmRlZmluZWQpe3ZhciB0aXRsZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTt0aXRsZUVsLnN0eWxlLmNvbG9yPScjOTk5Jzt0aXRsZUVsLnRleHRDb250ZW50PSd0cmFjaW5nJzt0cmFjaW5nQ29sdW1uLnRpdGxlPXRpdGxlRWw7dmFyIG9sZFZhbHVlQ2FsbGJhY2s9dHJhY2luZ0NvbHVtbi52YWx1ZTt0cmFjaW5nQ29sdW1uLnZhbHVlPWZ1bmN0aW9uKHJvdyl7dmFyIG9sZFZhbHVlPW9sZFZhbHVlQ2FsbGJhY2suY2FsbCh0aGlzLHJvdyk7aWYoIShvbGRWYWx1ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkKLW9sZFZhbHVlPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG9sZFZhbHVlKTt2YXIgdmFsdWVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7dmFsdWVFbC5zdHlsZS5jb2xvcj0nIzk5OSc7dmFsdWVFbC5hcHBlbmRDaGlsZChvbGRWYWx1ZSk7cmV0dXJuIHZhbHVlRWw7fTt9Ci12YXIgc2l6ZUNvbHVtbnM9dXNlZE1lbW9yeVNpemVDb2x1bW5zLmNvbmNhdChhbGxvY2F0b3JTaXplQ29sdW1ucyk7dHIuYy5hbmFseXNpcy5NZW1vcnlDb2x1bW4uc3BhY2VFcXVhbGx5KHNpemVDb2x1bW5zKTt2YXIgY29sdW1ucz1bdGl0bGVDb2x1bW5dLmNvbmNhdChzaXplQ29sdW1ucyk7dGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1ucz1jb2x1bW5zO319KTt9KSgpOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLWEtbWVtb3J5LWR1bXAtdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc189dW5kZWZpbmVkO30scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQub3ZlcnZpZXdfcGFuZS5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RlZC1tZW1vcnktY2VsbC1jaGFuZ2VkJyx0aGlzLnVwZGF0ZURldGFpbHNQYW5lXy5iaW5kKHRoaXMpKTt9LHNldCBwcm9jZXNzTWVtb3J5RHVtcHMocHJvY2Vzc01lbW9yeUR1bXBzKXt0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc189cHJvY2Vzc01lbW9yeUR1bXBzO3RoaXMuJC5vdmVydmlld19wYW5lLnByb2Nlc3NNZW1vcnlEdW1wcz10aGlzLnByb2Nlc3NNZW1vcnlEdW1wc187dGhpcy51cGRhdGVEZXRhaWxzUGFuZV8oKTt9LGdldCBwcm9jZXNzTWVtb3J5RHVtcHMoKXtyZXR1cm4gdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfO30sdXBkYXRlRGV0YWlsc1BhbmVfOmZ1bmN0aW9uKCl7dGhpcy4kLmRldGFpbHNfcGFuZV9jb250YWluZXIudGV4dENvbnRlbnQ9Jyc7dmFyIHNlbGVjdGVkTWVtb3J5Q2VsbD10aGlzLiQub3ZlcnZpZXdfcGFuZS5zZWxlY3RlZE1lbW9yeUNlbGw7aWYoIXNlbGVjdGVkTWVtb3J5Q2VsbHx8IXNlbGVjdGVkTWVtb3J5Q2VsbC5idWlsZERldGFpbHNQYW5lKQotcmV0dXJuO3RoaXMuJC5kZXRhaWxzX3BhbmVfY29udGFpbmVyLmFwcGVuZENoaWxkKHNlbGVjdGVkTWVtb3J5Q2VsbC5idWlsZERldGFpbHNQYW5lKCkpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLXNpbmdsZS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3Jyx7c2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHNlbGVjdGlvbi5sZW5ndGghPT0xKQotdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIGEgc2luZ2xlIHByb2Nlc3MgbWVtb3J5IGR1bXAnKTtpZighKHNlbGVjdGlvblswXWluc3RhbmNlb2YgdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXApKQotdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHByb2Nlc3MgbWVtb3J5IGR1bXBzJyk7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247dGhpcy4kLm1lbW9yeV9kdW1wX3ZpZXcucHJvY2Vzc01lbW9yeUR1bXBzPVtzZWxlY3Rpb25bMF1dO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKXtyZXR1cm4gdHJ1ZTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1tdWx0aS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO3NlbGVjdGlvbj10ci5iLmFzQXJyYXkoc2VsZWN0aW9uKS5zb3J0KHRyLmIuUmFuZ2UuY29tcGFyZUJ5TWluVGltZXMpO3ZhciB0YWJsZT10aGlzLiQuY29udGVudDt0YWJsZS50YWJsZUNvbHVtbnM9W3t0aXRsZTonRHVtcCcsdmFsdWU6ZnVuY3Rpb24ocm93KXt2YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7bGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHRyLmMuU2VsZWN0aW9uKHJvdyk7fSk7dmFyIHNwYW5FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7c3BhbkVsLnRleHRDb250ZW50PSdQcm9jZXNzIG1lbW9yeSBkdW1wIGF0ICc7bGlua0VsLmFwcGVuZENoaWxkKHNwYW5FbCk7bGlua0VsLmFwcGVuZENoaWxkKHRyLmIudW5pdHMuY3JlYXRlVGltZVN0YW1wU3Bhbihyb3cuc3RhcnQpKTtyZXR1cm4gbGlua0VsO319XTt0YWJsZS5zaG93SGVhZGVyPWZhbHNlO3RhYmxlLnRhYmxlUm93cz1zZWxlY3Rpb247dGFibGUucmVidWlsZCgpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItYy1hLXNpbmdsZS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXcnLHtzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7aWYoc2VsZWN0aW9uLmxlbmd0aCE9PTEpCi10aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgYSBzaW5nbGUgZ2xvYmFsIG1lbW9yeSBkdW1wJyk7aWYoIShzZWxlY3Rpb25bMF1pbnN0YW5jZW9mIHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXApKQotdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIGdsb2JhbCBtZW1vcnkgZHVtcHMnKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLiQubWVtb3J5X2R1bXBfdmlldy5wcm9jZXNzTWVtb3J5RHVtcHM9dHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHNlbGVjdGlvblswXS5wcm9jZXNzTWVtb3J5RHVtcHMpO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKXtyZXR1cm4gdHJ1ZTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtYS1tdWx0aS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247c2VsZWN0aW9uPXRyLmIuYXNBcnJheShzZWxlY3Rpb24pLnNvcnQodHIuYi5SYW5nZS5jb21wYXJlQnlNaW5UaW1lcyk7dmFyIHRhYmxlPXRoaXMuJC5jb250ZW50O3RhYmxlLnRhYmxlQ29sdW1ucz1be3RpdGxlOidEdW1wJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3ZhciBsaW5rRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpe3JldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24ocm93KTt9KTt2YXIgc3BhbkVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtzcGFuRWwudGV4dENvbnRlbnQ9J0dsb2JhbCBtZW1vcnkgZHVtcCBhdCAnO2xpbmtFbC5hcHBlbmRDaGlsZChzcGFuRWwpO2xpbmtFbC5hcHBlbmRDaGlsZCh0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4ocm93LnN0YXJ0KSk7cmV0dXJuIGxpbmtFbDt9fV07dGFibGUuc2hvd0hlYWRlcj1mYWxzZTt0YWJsZS50YWJsZVJvd3M9c2VsZWN0aW9uO3RhYmxlLnJlYnVpbGQoKTt9fSk7J3VzZSBzdHJpY3QnOyhmdW5jdGlvbigpe3ZhciBFdmVudFJlZ2lzdHJ5PXRyLm1vZGVsLkV2ZW50UmVnaXN0cnk7UG9seW1lcigndHItYy1hLWFuYWx5c2lzLXZpZXcnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMudGFiVmlld189ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHJhY2luZy1hbmFseXNpcy10YWItdmlldycpO3RoaXMudGFiVmlld18uc3R5bGUuZmxleD0nMSAxIGF1dG8nO3RoaXMuYXBwZW5kQ2hpbGQodGhpcy50YWJWaWV3Xyk7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXz11bmRlZmluZWQ7dGhpcy5vblNlbGVjdGVkVGFiQ2hhbmdlXz10aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfLmJpbmQodGhpcyk7dGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfPXRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpO3RoaXMubGFzdFNlZW5TZWxlY3Rpb25fPW5ldyB0ci5jLlNlbGVjdGlvbigpO30sc2V0IHRhbGxNb2RlKHZhbHVlKXtpZih2YWx1ZSkKLXRoaXMuY2xhc3NMaXN0LmFkZCgndGFsbC1tb2RlJyk7ZWxzZQotdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCd0YWxsLW1vZGUnKTt9LGdldCB0YWxsTW9kZSgpe3JldHVybiB0aGlzLmNsYXNzTGlzdC5jb250YWlucygndGFsbC1tb2RlJyk7fSxnZXQgdGFiVmlldygpe3JldHVybiB0aGlzLnRhYlZpZXdfO30sZ2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzt9LHNldCBzZWxlY3Rpb25Db250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpe2lmKHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcil7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7fQotdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXz1zZWxlY3Rpb25Db250cm9sbGVyO2lmKHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcil7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7fQotdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKCk7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uc2VsZWN0aW9uO30sb25TZWxlY3Rpb25DaGFuZ2VkXzpmdW5jdGlvbihlKXt2YXIgc2VsZWN0aW9uPXRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uc2VsZWN0aW9uO3ZhciBzZWxlY3Rpb25IYXNTYW1lVmFsdWU9dGhpcy5sYXN0U2VlblNlbGVjdGlvbl8uZXF1YWxzKHNlbGVjdGlvbik7dGhpcy5sYXN0U2VlblNlbGVjdGlvbl89c2VsZWN0aW9uO2lmKHNlbGVjdGlvbkhhc1NhbWVWYWx1ZSkKLXJldHVybjt2YXIgbGFzdFNlbGVjdGVkVGFiVGFnTmFtZTt2YXIgbGFzdFNlbGVjdGVkVGFiVHlwZU5hbWU7aWYodGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYil7bGFzdFNlbGVjdGVkVGFiVGFnTmFtZT10aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiLnRhZ05hbWU7bGFzdFNlbGVjdGVkVGFiVHlwZU5hbWU9dGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYi5fZXZlbnRUeXBlTmFtZTt9Ci10aGlzLnRhbGxNb2RlPWZhbHNlO3ZhciBwcmV2aW91c2x5U2VsZWN0ZWRUYWI9dGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYjt0aGlzLnRhYlZpZXdfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnLHRoaXMub25TZWxlY3RlZFRhYkNoYW5nZV8pO3RoaXMudGFiVmlld18udGV4dENvbnRlbnQ9Jyc7aWYoc2VsZWN0aW9uLmxlbmd0aD09MCl7dGhpcy50YWJWaWV3Xy50YWJTdHJpcEhlYWRpbmdUZXh0PSdOb3RoaW5nIHNlbGVjdGVkLiBUYXAgc3R1ZmYuJzt9ZWxzZSBpZihzZWxlY3Rpb24ubGVuZ3RoPT0xKXt0aGlzLnRhYlZpZXdfLnRhYlN0cmlwSGVhZGluZ1RleHQ9JzEgaXRlbSBzZWxlY3RlZDogJzt9ZWxzZXt0aGlzLnRhYlZpZXdfLnRhYlN0cmlwSGVhZGluZ1RleHQ9c2VsZWN0aW9uLmxlbmd0aCsnIGl0ZW1zIHNlbGVjdGVkOiAnO30KLXZhciBldmVudHNCeUJhc2VUeXBlTmFtZT1zZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZSh0cnVlKTt2YXIgbnVtQmFzZVR5cGVzVG9BbmFseXplPXRyLmIuZGljdGlvbmFyeUxlbmd0aChldmVudHNCeUJhc2VUeXBlTmFtZSk7Zm9yKHZhciBldmVudFR5cGVOYW1lIGluIGV2ZW50c0J5QmFzZVR5cGVOYW1lKXt2YXIgc3ViU2VsZWN0aW9uPWV2ZW50c0J5QmFzZVR5cGVOYW1lW2V2ZW50VHlwZU5hbWVdO3ZhciBzdWJWaWV3PXRoaXMuY3JlYXRlU3ViVmlld0ZvclNlbGVjdGlvbl8oZXZlbnRUeXBlTmFtZSxzdWJTZWxlY3Rpb24pO3N1YlZpZXcuX2V2ZW50VHlwZU5hbWU9ZXZlbnRUeXBlTmFtZTt0aGlzLnRhYlZpZXdfLmFwcGVuZENoaWxkKHN1YlZpZXcpO3N1YlZpZXcuc2VsZWN0aW9uPXN1YlNlbGVjdGlvbjt9Ci12YXIgdGFiO2lmKGxhc3RTZWxlY3RlZFRhYlRhZ05hbWUpCi10YWI9dGhpcy50YWJWaWV3Xy5xdWVyeVNlbGVjdG9yKGxhc3RTZWxlY3RlZFRhYlRhZ05hbWUpO2lmKCF0YWImJmxhc3RTZWxlY3RlZFRhYlR5cGVOYW1lKXt2YXIgdGFiPXRyLmIuZmluZEZpcnN0SW5BcnJheSh0aGlzLnRhYlZpZXdfLmNoaWxkcmVuLGZ1bmN0aW9uKHRhYil7cmV0dXJuIHRhYi5fZXZlbnRUeXBlTmFtZT09PWxhc3RTZWxlY3RlZFRhYlR5cGVOYW1lO30pO30KLWlmKCF0YWIpCi10YWI9dGhpcy50YWJWaWV3Xy5maXJzdENoaWxkO3RoaXMudGFiVmlld18uc2VsZWN0ZWRUYWI9dGFiO2lmKHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWIhPT1wcmV2aW91c2x5U2VsZWN0ZWRUYWIpCi10aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfKCk7dGhpcy50YWJWaWV3Xy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RlZC10YWItY2hhbmdlJyx0aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfKTt9LGNyZWF0ZVN1YlZpZXdGb3JTZWxlY3Rpb25fOmZ1bmN0aW9uKGV2ZW50VHlwZU5hbWUsc3ViU2VsZWN0aW9uKXt2YXIgZXZlbnRUeXBlSW5mbz1FdmVudFJlZ2lzdHJ5LmdldEV2ZW50VHlwZUluZm9CeVR5cGVOYW1lKGV2ZW50VHlwZU5hbWUpO3ZhciBzaW5nbGVNb2RlPXN1YlNlbGVjdGlvbi5sZW5ndGg9PTE7dmFyIHRhZ05hbWU7aWYoc3ViU2VsZWN0aW9uLmxlbmd0aD09PTEpCi10YWdOYW1lPWV2ZW50VHlwZUluZm8ubWV0YWRhdGEuc2luZ2xlVmlld0VsZW1lbnROYW1lO2Vsc2UKLXRhZ05hbWU9ZXZlbnRUeXBlSW5mby5tZXRhZGF0YS5tdWx0aVZpZXdFbGVtZW50TmFtZTtpZighdHIuYi5nZXRQb2x5bWVyRWxlbWVudE5hbWVkKHRhZ05hbWUpKQotdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50IG5vdCByZWdpc3RlcmVkOiAnK3RhZ05hbWUpO3ZhciBzdWJWaWV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7dmFyIGNhbWVsTGFiZWw7aWYoc3ViU2VsZWN0aW9uLmxlbmd0aD09PTEpCi1jYW1lbExhYmVsPUV2ZW50UmVnaXN0cnkuZ2V0VXNlckZyaWVuZGx5U2luZ3VsYXJOYW1lKGV2ZW50VHlwZU5hbWUpO2Vsc2UKLWNhbWVsTGFiZWw9RXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlQbHVyYWxOYW1lKGV2ZW50VHlwZU5hbWUpO3N1YlZpZXcudGFiTGFiZWw9Y2FtZWxMYWJlbCsnICgnK3N1YlNlbGVjdGlvbi5sZW5ndGgrJyknO3JldHVybiBzdWJWaWV3O30sb25TZWxlY3RlZFRhYkNoYW5nZV86ZnVuY3Rpb24oKXt2YXIgc2VsZWN0aW9uQ29udHJvbGxlcj10aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfO2lmKHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWIpe3ZhciBzZWxlY3RlZFRhYj10aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiO3RoaXMudGFsbE1vZGU9c2VsZWN0ZWRUYWIucmVxdWlyZXNUYWxsVmlldztpZihzZWxlY3Rpb25Db250cm9sbGVyKXt2YXIgcmx0aD1zZWxlY3RlZFRhYi5yZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQ7c2VsZWN0aW9uQ29udHJvbGxlci5jaGFuZ2VBbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKHJsdGgpO319ZWxzZXt0aGlzLnRhbGxNb2RlPWZhbHNlO2lmKHNlbGVjdGlvbkNvbnRyb2xsZXIpCi1zZWxlY3Rpb25Db250cm9sbGVyLmNoYW5nZUFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHModW5kZWZpbmVkKTt9fX0pO30pKCk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe3ZhciBGYXZpY29uc0J5SHVlPXtibHVlOidkYXRhOmltYWdlL3ZuZG1pY3Jvc29mdGljb247YmFzZTY0LEFBQUJBQUlBRUJBQUFBRUFJQUJvQkFBQUpnQUFBQ0FnQUFBQkFDQUFxQkFBQUk0RUFBQW9BQUFBRUFBQUFDQUFBQUFCQUNBQUFBQUFBQUFFQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWpqOHhBR0FySWdxT1B6RThuVVkzZHFKSk9KZWlTVGlYblVZM2RvNC9NVHhoS3lJS2prQXhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFKQndBQUFBQUFaSkJNelNvU3pxbHNVOCs2YlJRUC8yMVVULy90VkUvLzdSUVAvMndUejNwcGtvNnBZOUFNalFBQUFBQlR5TWJBQUFBQUFCN2Uzc0FBUC8vQUtGU1JFK3dUejNkdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8relVENy9zRTg5LzdCT1BmK3FURHZkbDBNMFR3QUFBQUJXSng0QStmbjVBTmpkM1RuSWlYN2Z0VkE5LzdWUlAvKzFVVC8vdFZFLy83VlJQLyt4VHozL3JFMDgvNnhNTy8rc1REdi9yRTA4LzZkS090K1NRVE01cTB3N0FMTzB0QTN2OGZHdTA1dVIvN05NT2YrMFR6ei90RTg4LzdSUFB2K3VUVDMvcDBvNy82WkpPdittU1RyL3BrazYvNlpKT3YrbVNqci9uMFk0cm5Jd0tnM2g0ZUZLOS9qNDhOMnpyUC9GZUdyL3hucHMvOFo2YlAvQWFVdi90bHcxLzdSYk5mKzFXelgvdEZzMS83UmJOZiswV3pYL3RGczEvN05iTlBDcVd5MUs3ZTN0alBuNStmLzQ5dlgvOXZMeS8vYnk4di8yOHZILzhiWnYvKzZSSC8vdWt5UC83cE1qLys2U0kvL3VraVAvN3BNai8rMlNJdi9xanlMLzM0a2ZqUEh4OGJMNStmbi8rZm41Ly9uNStmLzUrZnIvK2ZuNS8vVzdjUC96bEIzLzg1WWgvL09XSWYvemxpSC84NVloLy9HVklmL3JrUi8vNlpBZi8rS0xIckx6OC9PMitmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzF1bkQvODVRZC8vT1dJZi96bGlILzg1WWgvL0NVSVAvbWpoLy80NHdlLytPTUh2L2RpUjYyOHZMeW1mbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi85YngwLy9PWEkvL3ptQ2IvODVnbS8rK1ZJdi9oakIvLzNZb2UvOTJLSHYvZGloNy8ySVlkbWZIeDhWejQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvL2pvMC8vMzNidi85OTI5Ly9iYnRmL2V1RFgvMDZvSi85T3JDLy9UcXd2LzA2b005OHlmRDF6cjYrc1k5L2YzeHZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K3Z2LytmdjgvL243L2YvMytQSC8zTXM2LzlPOEFQL1V2UUQvMUwwQS85SzhBTWJJdEFBWS8vLy9BUFQwOUZiNCtQankrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZyLzkvYnUvOXpLT2YvVHV3RC8xTHdBLzlTOEFQTFF1QUJXM2NRQUFPenM3QURtNXVZRjl2YjJlUG41K2ZUNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNi8vZjI3di9jeVRuLzA3c0EvOVM4QVBUUnVnQjR3NjBBQmNteUFBQUFBQUFBOFBEd0FPenM3QWIyOXZaZCtQajQwdm41K2Z6NStmbi8rZm41Ly9uNStmLzQ5L0gvNU5kdS9OakVJZExTdWdCZHliSUFCc3kxQUFBQUFBQUFBQUFBQUFBQUFBRG41K2NBcUtpb0FQVDA5Q0gzOS9keStQajR0dmo0K05YNCtQalYrUGo0dHZYMDYzTHQ2TU1oT1FBQUFNKy9SQUFBQUFBQUFBQUFBUEFQQUFEQUF3QUF3QU1BQUlBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQkFBQ0FBUUFBd0FNQUFQQVBBQUFvQUFBQUlBQUFBRUFBQUFBQkFDQUFBQUFBQUFBUUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJDd1VFRERnWkV4eFdKeDR0WWl3aU4ySXNJamRXSng0dE9Ca1RIQXNGQkF3QUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy93QWJEQWtLWlMwak1ZcytNV3lkUmplaXBrbzZ4NnRNTzl1dFRUempyVTA4NDZ0TU85dW1TanJIblVZM29vcytNV3hsTFNNeEd3d0pDdi8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ1pGQUFQQndVSGNqTW9QSnRGTnBxc1RUemhzMUErL0xWUlAvKzJVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1pSUC8rMVVULy9zMUErL0t4TlBPR2JSVGFhY1RJblBBOEhCUWM0R1JNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL3lwNEFVQ1FjR1pWRE5JQ3RUanprdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLyswVVQvL3MxQSsvN0pRUHYrclREdmtra0V6Z0U4akd4bi94Wm9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBLy8vL0FHc3dKU3FpU1RpdnMxQSsrN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90RkErLzdGUFBmK3hUejMvc1U4OS83RlBQZit2VGozN25rYzNyMmd1SkNyLy8vOEFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3TURBUC9Eb2dCL1ZFd3NxRTA5djdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83TlFQdit2VGozL3IwNDkvNjlPUGYrdlRqMy9yMDQ5LzY5T1BmK3VUanovb1VnNHYyMHhKaXovbm5zQUFnRUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDE5ZlVBa3AyZkhkSzJzYlc1VzByL3RWQSsvN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8reVVENy9yVTA4LzZ4TlBQK3RUVHovclUwOC82MU5QUCt0VFR6L3JVMDgvNjFOUFArc1RUei9ua1kzdFdBcUlSMnBTenNBQUFBQUFBQUFBQUFBQUFBQWVYbDVBRFkyTmduZDM5K082dGJUL2JsYlN2KzFVRDcvdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vc2xBKy82eE5QUCtyVER2L3EwdzcvNnRNTy8rclREdi9xMHc3LzZ0TU8vK3JURHYvcTB3Ny82dE1PLytxVER2OWxrTTBqaVVRRFFsU0pSMEFBQUFBQUFBQUFBRC8vLzhBeE1URVMvWDI5dTNzMk5YL3VWdEsvN1ZRUHYrMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN0ZQUHYrcVREdi9xRXM2LzZoTE92K29TenIvcUVzNi82aExPditvU3pyL3FFczYvNmhMT3Yrb1N6ci9xRXM2LzZsTE92K2xTVG50aERzdVMvK1RjZ0FBQUFBQW01dWJBSEJ3Y0EvbzZPaXgrdnY4Lyt6WTFQKzVXMHIvdFZBKy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvK3hUejMvcUVzNi82WktPdittU2pyL3BrbzYvNlpLT3YrbVNqci9wa282LzZaS092K21TanIvcGtvNi82WktPdittU2pyL3BrbzYvNlpLT3YrYlJUYXhTaUVhRDJjdUpBRC8vLzhBeWNuSlJmWDE5ZkQ2Ky96LzY5ZlUvN2hZUi8rMFRqdi90RTQ4LzdST1BQKzBUanovdEU0OC83Uk9QUCswVHozL3IwNCsvNlZKT3YralNEbi9vMGc1LzZOSU9mK2pTRG4vbzBnNS82TklPZitqU0RuL28wZzUvNk5JT2YralNEci9vMGc1LzZOSU9mK2pTRG4vbzBnNi82QkhPZkNDT1M5RjBGeEtBQUFBQUFMazVPU04rZm41Ly9uNit2L3k1K1gvMDV1Uy85Q1RpUC9RbEluLzBKU0ovOUNVaWYvUWxJbi8wSlNLLzh5R2IvL0FhRGIvdldjMC83MW5OZis5WnpUL3ZXYzAvNzFuTlArOVpqVC92V1kwLzcxbU5QKzlaalQvdkdZMC83eG1OUCs4WmpUL3ZHWTAvN3htTlArOFpqVC91MlUwLzdGaUxZMEFBQUFDazVPVEZ1L3Y3OFg1K2ZuLytmbjUvL241K2YvNSt2ci8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81Ky8zLzk5aXkvL0tXSS8veWxTSC84WlVoLy9HVklmL3hsU0gvOFpVaC8vR1ZJZi94bFNILzhaVWgvL0dWSWYveGxTSC84WlVoLy9HVklmL3hsU0gvOFpVaC8vQ1VJZi92a3lELzVZMGZ4WTFYRXhiRHc4TXo5UFQwNWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNy9mLzMyTEwvODVjai8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvd2xDRC83cElnLys2U0lQL3BqeC9sdW5JWk05WFYxVkQzOS9mMCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmdjkvL2ZZc3Yvemx5UC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvNzVNZy8rdVJILy9xa0IvLzZwQWYvK2lQSC9USWZCdFEzZDNkWWZqNCtQbjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrLzMvOTlpeS8vT1hJLy96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvKzZUSVAvb2p4Ly81NDhmLytlUEgvL25qeC8vNW80ZitjMS9IR0hoNGVGbCtQajQrdm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL243L2YvMzJMTC84NWNqLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3RraUQvNVkwZi8rU05ILy9salIvLzVZMGYvK1dOSC8va2pCLzZ6bjhjWmVEZzRGcjQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2Z2OS8vZllzdi96bHlQLzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzY1RWcvK0tNSHYvaWl4Ny80b3NlLytLTEh2L2lpeDcvNG9zZS8rQ0xIdmZMZlJ0YTNOemNRdmYzOSsvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNSsvMy85OWl5Ly9PWEkvL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLytxUklQL2dpaDcvMzRvZS85K0tIdi9maWg3LzM0b2UvOStLSHYvZmloNy8zWWdlNzhWNkdrTFMwdElqOWZYMTJmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjcvZi8zMkxILzg1WWcvL09WSHYvemxSNy84NVVlLy9PVkh2L3psUjcvODVVZS8vT1ZJZi9wanlILzNvZ2YvOTJISC8vZGh4Ly8zWWNmLzkySEgvL2RoeC8vM1ljZi85MkhILy9haGg3WnVuTVpJNTZlbmdqeTh2S3UrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZnI3Ly9qcjJmLzJ5cEwvOXNtUC8vYkprUC8yeVpELzlzbVEvL2JKa1AvMnlaRC81ck5JLzlPZUZQL1NuaFgvMHA0Vi85S2VGZi9TbmhYLzBaMFYvOUdkRmYvUm5SWC8wWjBWLzh5V0ZxNktWQmNJLy8vL0FPM3Q3V3I1K2ZuKytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjYvL242L1AvNSt2ei8rZnI4Ly9uNi9QLzUrdnovK2ZyOC8vbjYvUC9oMDEzLzByc0EvOU84QVAvVHZBRC8wN3dBLzlPOEFQL1R2QUQvMDd3QS85TzhBUC9TdkFEK3lMTUFhdi9tQUFEcjYrc0E0ZUhoSlBiMjl0djUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LytMU1cvL1R1d0QvMUx3QS85UzhBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC8xTHdBLzlLNkFOdS9xZ0FreUxFQUFMdTd1d0FBQUFBQTh2THlnZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLzR0SmIvOU83QVAvVXZBRC8xTHdBLzlTOEFQL1V2QUQvMUx3QS85UzhBUC9VdkFEL3pyWUFnUUFBQUFDZmpRQUFBQUFBQU96czdBRGs1T1FlOXZiMnpQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmL2kwbHYvMDdzQS85UzhBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC8xTHdBLzlLNkFNekNyQUFleWJJQUFBQUFBQUFBQUFBQXNMQ3dBUC8vL3dEdjcrOU8rUGo0N1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvK0xTVy8vVHV3RC8xTHdBLzlTOEFQL1V2QUQvMUx3QS85UzhBUC9UdXdEc3k3UUFUdTdVQUFDWGhRQUFBQUFBQUFBQUFBQUFBQUFBMXRiV0FMUzB0QVB5OHZKditQajQ5UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vNHRKYi85TzdBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC8wN3dBOU02M0FHNlppUUFEdHFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0dUxpQU5mWDF3Yno4L056K1BqNDhQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvaTBsdi8wN3NBLzlTOEFQL1V2QUQvMUx3QS85TzhBUERQdUFCenVLTUFCc0dyQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTQrUGpBTmpZMkFUeTh2SlorUGo0MnZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8rSFNXLy9UdWdELzFMc0EvOVM4QVAvVHV3RGF6cmNBV2JlakFBVEJxd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMU5UVUFCOGZId0R3OFBBcjl2YjJuUGo0K08zNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi83dWFzLytiWmR2L2oxbXZ0MmNZem5NdTBBQ3NVRkFBQXRhRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU92cjZ3RGo0K01HOHZMeU92YjI5cEQ0K1BqUytmbjU4dm41K2YzNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS9mbjUrZkw0K2ZyUzkvajhrUFQxL1Ryczh2OEc4UFAvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEaDRlRUExdGJXQXUvdjd4djA5UFJKOXZiMmR2YjI5cGYzOS9lbzkvZjNxUGIyOXBmMjl2WjI5UFQwU2Uvdjd4dlcxdFlDNGVIaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL2dCLy8vZ0FILy9nQUFmL3dBQUQvNEFBQWY4QUFBRCtBQUFBZkFBQUFEd0FBQUE0QUFBQUdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFHQUFBQUJ3QUFBQThBQUFBUGdBQUFINEFBQUIvQUFBQS80QUFBZi9nQUFmLzhBQVAvL3dBUC8nLGdyZWVuOidkYXRhOmltYWdlL3ZuZG1pY3Jvc29mdGljb247YmFzZTY0LEFBQUJBQUlBRUJBQUFBRUFJQUJvQkFBQUpnQUFBQ0FnQUFBQkFDQUFxQkFBQUk0RUFBQW9BQUFBRUFBQUFDQUFBQUFCQUNBQUFBQUFBQUFFQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWJXSkxBRXBDTXdwdFlrczhlV3hUZG4xd1ZwZDljRmFYZVd4VGRtMWlTenhLUXpNS2JXSkxBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQStPQ3NBQUFBQUFYQmxUVFNCZEZtbGlIcGU2WXA4WC8yTGZXRC9pMzFnLzRwOFgvMkhlVjNwZjNOWXBXNWpURFFBQUFBQlBUY3FBQUFBQUFCN2Uzc0Fsdi8vQUlCMVhrK0hlVjNkaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArSmUxLy9oM3BkLzRkNVhmK0RkVnJkZEdoUVR3QUFBQUJEUEM0QStmbjVBTnJiM0RtdXBaUGZpbnhmLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtJZWw3L2hIZGIvNFIyVy8rRWRsdi9oSGRiLzRCeldOOXdaVTA1ZzNaYUFMUzB0QTN3OFBHdXU3U2ovNGg1Vy8rSmUxNy9pWHRlLzR0OFgvK0hlRnovZ25OWS80RnlXUCtCY2xqL2dYSlkvNEZ5V1ArQmNsai9mRzFVcmw5TlBBM2g0ZUZLOS9qNDhNdkZ1ZitrbW9QL3BwdUYvNmFiaGYrSmtITC9jNFJqLzNPRVkvOXpoR1AvY29Oai8zS0RZLzl5ZzJQL2NvTmovM0NEWXZCZ2YxOUs3ZTN0alBuNStmLzM5dmIvOWZUei8vWDA4Ly8wOVBQL2l0S3cvMG0raC85TXY0bi9UTCtKLzB5L2lmOU12NG4vVEwrSi8weStpUDlMdTRiL1JySi9qUEh4OGJMNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS80clh0UDlId29uL1NzT0wvMHJEaS85S3c0di9Tc09MLzBuQ2l2OUh2WWIvUnJ1Ri8wUzFnYkx6OC9PMitmbjUvL241K2YvNStmbi8rZm41Ly9uNStmK0sxN1AvUjhLSi8wckRpLzlLdzR2L1NzT0wvMG5CaWY5R3VZVC9SYmFDLzBXMmd2OURzbisyOHZMeW1mbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9qZGkxLzB2RGpQOU94STcvVHNTTy8wckFpdjlGdG9QL1JMS0EvMFN5Z1A5RXNvRC9RcTU5bWZIeDhWejQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvOXJ3NXYvSDZ0bi95T3JhLzhMcDJmOWUxYjcvTzh5ei96M010UDg5ekxUL1BjdXk5enpBcFZ6cjYrc1k5L2YzeHZuNStmLzUrZm4vK2ZuNS8vbjUrZi83K3ZyLy9QcjcvL3o2Ky8veitmbi9adVBZL3piY3p2ODUzYzcvT2QzTy96amJ6Y1kxMHNZWS8vLy9BUFQwOUZiNCtQankrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi82K2ZuLzhQajMvMlhqMS84MjNNei9PZHpOL3puY3pmSTQyTWxXTytYV0FPenM3QURtNXVZRjl2YjJlUG41K2ZUNStmbi8rZm41Ly9uNStmLzUrZm4vK3ZuNS8vRDQ5LzlqNHRmL05kdk0vem5jemZRNDJjdDROY3U5QlRiUndnQUFBQUFBOFBEd0FPenM3QWIyOXZaZCtQajQwdm41K2Z6NStmbi8rZm41Ly9uNStmL3orUGovanVuZy9GTGYwdEk0MmN0ZE5kSENCamZVeGdBQUFBQUFBQUFBQUFBQUFBRG41K2NBcUtpb0FQVDA5Q0gzOS9keStQajR0dmo0K05YNCtQalYrUGo0dHUzMjlYTE83K3doQUZRbUFHclV5Z0FBQUFBQUFBQUFBUEFQQUFEQUF3QUF3QU1BQUlBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQkFBQ0FBUUFBd0FNQUFQQVBBQUFvQUFBQUlBQUFBRUFBQUFBQkFDQUFBQUFBQUFBUUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJDUWdHRENzbUhSeENPeTR0UzBNME4wdERORGRDT3k0dEt5WWRIQWtJQmd3QUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy93QVZFZzRLVFVVMU1XdGdTbXg1YlZPaWdITll4NE4yVzl1RmQxempoWGRjNDROMlc5dUFjMWpIZVcxVG9tdGdTbXhOUmpVeEZSTU9Ddi8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDc25IZ0FMQ2dnSFdFODhQSGRyVXBxRWQxdmhpWHhmL0l0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pWHhmL0lSM1crRjNhMUthVjA0OFBBc0tDQWNySng0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vQUFQamNxR1hKblQ0Q0ZlRnpraTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtLZldEL2lYeGYvNGw3WHYrRGRscmtjR1ZOZ0R3Mktobi8vK3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vL0FGSktPU3A5Y0ZhdmlueGYrNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pbnhmLzRoNlh2K0llbDMvaUhwZC80aDZYditHZVYzN2VXMVVyMUJJTnlyLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3TURBUC8vM2dCc1oxb3NnblZidjR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80bDhYLytIZVYzL2hubGMvNFo1WFArR2VWei9obmxjLzRaNVhQK0dlRnovZkc5VnYxUkxPaXovOUxvQUFnSUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDE5ZlVBbDVpYkhjYkN1cldTaEduL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArSmUxLy9oWGhjLzRSM1cvK0ZkMXYvaFhkYi80VjNXLytGZDF2L2hYZGIvNFYzVy8rRWQxdi9lVzFUdFVsQ01oMkNkVmtBQUFBQUFBQUFBQUFBQUFBQWVYbDVBRFkyTmduZTN0K080dC9aL1pLRmFmK0xmVi8vaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaVh0ZS80UjNXLytEZGxyL2czWmEvNE4yV3YrRGRsci9nM1phLzROMld2K0RkbHIvZzNaYS80TjJXditDZFZyOWMyZFBqaHdaRXdrL09Tc0FBQUFBQUFBQUFBRC8vLzhBeE1URVMvWDE5dTNrNGR2L2tvUnAvNHQ5WC8rTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNGg2WHYrQ2RWci9nWFJaLzRGMFdmK0JkRm4vZ1hSWi80RjBXZitCZEZuL2dYUlovNEYwV2YrQmRGbi9nWFJaLzRGMFdmOStjbGZ0WlZ0R1MvM2pyZ0FBQUFBQW01dWJBSEJ3Y0EvbzZPaXgrL3Y3LytQZzIvK1NoR24vaTMxZi80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0llbDcvZ1hSWi80QnpXUCtBYzFqL2dITlkvNEJ6V1ArQWMxai9nSE5ZLzRCeldQK0FjMWovZ0hOWS80QnpXUCtBYzFqL2dITlkvNEJ6V1A5M2ExS3hPVE1uRDFCSE53RC8vLzhBeWNuSlJmWDE5ZkQ3Ky92LzQrRGEvNUNDWi8rSmVsMy9pWHRkLzRsN1hmK0plMTMvaVh0ZC80bDdYZitLZTE3L2lIaGQvNEJ4Vi85L2NGYi9mM0JXLzM5d1Z2OS9jRmIvZjNCVy8zOXdWdjkvY0ZiL2YzQlcvMzl3VnY5L2NGYi9mM0JXLzM5d1Z2OS9jRmIvZjNCVy8zMXVWUEJuV1VSRm80NXRBQUFBQUFMazVPU04rZm41Ly9yNit2L3Q3T2ovdkxTay83YXVuUCszcnAzL3Q2NmQvN2V1bmYrM3JwMy91SytlLzZHbWp2OXZrRzMvYkk1ci8yeU9hLzlzam12L2JJNXIvMnlPYS85c2ptdi9iSTVyLzJ5T2EvOXNqbXIvYkkxcS8yeU5hdjlzaldyL2JJMXEvMnVOYXY5cmpXci9hNDFxLzE2R1pJMEFBQUFDazVPVEZ1L3Y3OFg1K2ZuLytmbjUvL241K2YvNStmci8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi84K3Z2L3dPZlYvMHZDaS85S3dvci9Tc0tLLzByQ2l2OUt3b3IvU3NLSy8wckNpdjlLd29yL1NzS0svMHJDaXY5S3dvci9Tc0tLLzByQ2l2OUt3b3IvU3NLSy8wbkFpZjlKdjRqL1JyZUN4U3R4VUJiRHc4TXo5UFQwNWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96NisvKy81OVgvVE1TTS8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85SndZbi9TTDZJLzBpK2lQOUd1b1hsT0pWcU05WFYxVkQzOS9mMCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QcjcvNy9uMWY5TXc0ei9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU2NDSi8wZThodjlIdkliL1I3eUcvMGE2aGZROW9YSlEzZDNkWWZqNCtQbjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzgrdnYvditmVi8wekRqUDlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMGkvaVA5R3VvWC9ScnFFLzBhNmhQOUd1b1QvUnJtRCtUNmxkV0hoNGVGbCtQajQrdm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o2Ky8rLzU5WC9UTU9NLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUl2b2YvUmJpRC8wVzNndjlGdUlQL1JiaUQvMFc0Zy85RnQ0TDZQcVoyWmVEZzRGcjQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vL1ByNy83L24xZjlNdzR6L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NMMkgvMFcyZ3Y5RnRZSC9SYldCLzBXMWdmOUZ0WUgvUmJXQi8wUzBnUGMrbzNSYTNOemNRdmYzOSsvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOCt2di92K2ZWLzB6RGpQOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzBlOGh2OUV0SUQvUkxPQS8wU3pnUDlFczREL1JMT0EvMFN6Z1A5RXM0RC9RN0YvN3p5ZWNVTFMwdElqOWZYMTJmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejYrLysvNTlYL1NzT0wvMGpDaXY5SXdvci9TTUtLLzBqQ2l2OUl3b3IvU01LSy8wckNpdjlIdW9UL1JMRisvME93ZmY5RXNIMy9STEI5LzBTd2ZmOUVzSDMvUkxCOS8wU3dmZjlDcm56Wk9KWnJJNTZlbmdqeTh2S3UrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rdm42LzkveDZmK2wzOFgvbzkvRC82VGZ3LytrMzhQL3BOL0QvNlRmdy8razM4VC9hOUt6LzBEQm9mOUJ3S0gvUWNDaC8wSEFvZjlCd0tEL1FjQ2cvMEcvb1A5QnY2RC9RYitnLzBDNG1LNHRiVTRJLy8vL0FPM3Q3V3I1K2ZuKytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2bjYvL3Y2Ky8vNyt2di8rL3I3Ly92NisvLzcrdnYvL1ByNy8vdjYrLytCNTk3L05kdk4vem5jemY4NTNNMy9PZHpOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1MjgzK050SERha2IvK2dEcjYrc0E0ZUhoSlBiMjl0djUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzMvbjNmODIzTXovT2R6Ti96bmN6Zjg1M00zL09kek4vem5jemY4NTNNMy9PZHpOL3pqYXk5czB4N2trTnMvQkFMdTd1d0FBQUFBQTh2THlnZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2YrZmQvemJielA4NTNNMy9PZHpOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1M00zL045WEhnUUFBQUFBc3Bab0FBQUFBQU96czdBRGs1T1FlOXZiMnpQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmOS81OTMvTnR2TS96bmN6Zjg1M00zL09kek4vem5jemY4NTNNMy9PZHpOL3pqYXk4dzB5cndlTnREQ0FBQUFBQUFBQUFBQXNMQ3dBUC8vL3dEdjcrOU8rUGo0N1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMy9uM2Y4MjI4ei9PZHpOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1Mjh6c045UEVUa0Q0NWdBb25KRUFBQUFBQUFBQUFBQUFBQUFBMXRiV0FMUzB0QVB5OHZKditQajQ5UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vZitmZC96YmJ6UDg1M00zL09kek4vem5jemY4NTNNMy9PZHZNOURqV3gyNHFvSlVETWIyd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0dUxpQU5mWDF3Yno4L056K1BqNDhQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2Y5LzU5My9OdHZNL3puY3pmODUzTTMvT2R6Ti96bmJ6UEE0MThoek1yNnhCalRJdWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTQrUGpBTmpZMkFUeTh2SlorUGo0MnZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8zN20zZjh6Mjh6L045ek4vem5jemY4NTI4emFPTmJJV1RLL3NnUTB5THNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMU5UVUFCOGZId0R3OFBBcjl2YjJuUGo0K08zNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi92ZkRyLzVUcTR2K0w2T0R0WU9EVW5EVFR4U3NBR0JzQU1yeXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU92cjZ3RGo0K01HOHZMeU92YjI5cEQ0K1BqUytmbjU4dm41K2YzNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS9mbjUrZkw2K1BqUyt2ZjNrUHYwOVRyLzZ1NEcvKy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEaDRlRUExdGJXQXUvdjd4djA5UFJKOXZiMmR2YjI5cGYzOS9lbzkvZjNxUGIyOXBmMjl2WjI5UFQwU2Uvdjd4dlcxdFlDNGVIaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL2dCLy8vZ0FILy9nQUFmL3dBQUQvNEFBQWY4QUFBRCtBQUFBZkFBQUFEd0FBQUE0QUFBQUdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFHQUFBQUJ3QUFBQThBQUFBUGdBQUFINEFBQUIvQUFBQS80QUFBZi9nQUFmLzhBQVAvL3dBUC8nLHJlZDonZGF0YTppbWFnZS92bmRtaWNyb3NvZnRpY29uO2Jhc2U2NCxBQUFCQUFJQUVCQUFBQUVBSUFCb0JBQUFKZ0FBQUNBZ0FBQUJBQ0FBcUJBQUFJNEVBQUFvQUFBQUVBQUFBQ0FBQUFBQkFDQUFBQUFBQUFBRUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFReG1iQUMwUmFncERHWnM4U2h5c2Rrd2RzcGRNSGJLWFNoeXNka01abXp3dUVXb0tReG1jQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFtRGxnQUFBQUFBVVFhbnpSUEhyaWxVeC9CNlZRZ3hmMVZJTWIvVlNERy8xUWd4ZjFUSDhEcFRoMjJwVU1abkRRQUFBQUJKUTVYQUFBQUFBQjdlbnNBLy84QUFGVXJyMDlTSDhEZFZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVVIOFAvVXgvQi8xSWZ3UDlRSHJyZFJ4cWxUd0FBQUFBb0QxNEErZm41QU56ZjF6bU1hdFBmVkI3Ry8xVWd4djlWSU1iL1ZTREcvMVVneHY5VEg4TC9VUjY4LzFBZXZQOVFIcnovVVI2OC8wNGR0OTlFR2FBNVVCNjdBTFMwc3czeDh1K3VuWURkLzFBWnhQOVRIY1gvVXgzRi8xUWV4ZjlUSHIvL1R4MjMvMDhjdHY5UEhiYi9UeDIyLzA4ZHR2OVBIYmIvU3h1dXJqa1NmZzNoNGVGSytQajM4TFdmNVA5N1V0TC9mVlhTLzMxVjAvOWZPY3ovU1NmQy8wa253UDlKSjhEL1NTZkEvMGtud1A5Sko4RC9TU2ZBLzBnbnYvQS9LTE5LN2UzdGpQbjUrZi8yOWZqLzh2RDMvL1B4OS8veThQZi9mSUx6L3pRLzhQODNRdkQvTjBMdy96ZEM4UDgzUXZEL04wTHcvemRCNy84MlFPei9NejNnalBIeDhiTDUrZm4vK2ZuNS8vbjYrZi81K3ZuLytmbjUvMzZHOXY4eVFQVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96VkM4djgwUU96L00wRHEvekkrNDdMejgvTzIrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZjk5aHZiL01rRDAvelpEOVA4MlEvVC9Oa1AwL3pWQzhmOHpQK2YvTWo3ay96SSs1UDh4UGQ2Mjh2THltZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vZ1luMi96ZEU5UDg3Ui9UL08wZjAvelpGOFA4eVFPUC9NVC9lL3pFLzN2OHhQOTcvTHozWm1mSHg4Vno0K1BqMytmbjUvL241K2YvNStmbi8rZm41LzlmWitQL0J4Zmovd3NiNC83dkQrUDg3ai9YL0RuengveEY5OGY4UmZmSC9FWHp3OXhadjVWenI2K3NZOS9mM3h2bjUrZi81K2ZuLytmbjUvL241K2YvNysvbi8vUHo1Ly8zOCtmL3grUG4vT3JEKy93Q1kvLzhBbWYvL0FKbi8vd0NaL2NZQWxQTVkvLy8vQVBUMDlGYjQrUGp5K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNitmbi83dlg1L3ptdS92OEFsLy8vQUpqLy93Q1kvdklBbGZwV0FKLy9BT3pzN0FEbTV1WUY5dmIyZVBuNStmVDUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2bjUvKzcxK2Y4NXJmNy9BSmIvL3dDWS8vUUFsdng0QUl6ckJRQ1E4Z0FBQUFBQThQRHdBT3pzN0FiMjl2WmQrUGo0MHZuNStmejUrZm4vK2ZuNS8vbjUrZi94OXZuL2JzUDgvQ0drL3RJQWx2eGRBSkR5QmdDVDlRQUFBQUFBQUFBQUFBQUFBQURuNStjQXFLaW9BUFQwOUNIMzkvZHkrUGo0dHZqNCtOWDQrUGpWK1BqNHR1dnk5M0xENGZVaEFBQzdBRVNvNndBQUFBQUFBQUFBQVBBUEFBREFBd0FBd0FNQUFJQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUJBQUNBQVFBQXdBTUFBUEFQQUFBb0FBQUFJQUFBQUVBQUFBQUJBQ0FBQUFBQUFBQVFBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQmdJTURCb0tQUndvRDE0dExoRnJOeTRSYXpjb0QxNHRHZ285SEFZQ0RBd0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQKzMvd0FOQlIwS0x4SnVNVUVZbUd4S0hLeWlUaDIyeDFBZXU5dFJIcjNqVVI2OTQxQWV1OXRPSGJiSFNoeXNva0VZbUd3dkVtNHhEUVVlQ3YrNi93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQm9LUGdBSEF4QUhOaFI5UEVrYnFwcFJIcjNoVkNERS9GVWd4djlWSU1mL1ZTREgvMVVneHY5VklNYi9WU0RILzFVZ3gvOVZJTWIvVkNERS9GRWV2T0ZJRzZtYU5SUjhQQWNERUFjYUNqMEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFZVUDhBSmc1WUdVWWFvNEJSSDc3a1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNWC9WQi9FLzFRZncvOVFIcnZrUlJtZ2dDVU9WaG5RVHY4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQS8vLy9BRElUZFNwTUhiS3ZWQ0RFKzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVkNERS8xTWZ3djlUSDhIL1V4L0IvMU1md3Y5U0g3LzdTaHl0cnpFU2NTci8vLzhBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd01EQU10by93QlZQb1lzVVNDM3YxVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVFmeFA5U0hzRC9VaDYvLzFJZXYvOVNIci8vVWg2Ly8xSWV2LzlTSHIvL1N4eXd2ek1UZHl5bVBmOEFBUUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQxOWZVQW5hS1FIYmVwMXJWZkxjbi9WQi9HLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVVIOFAvVVI2Ky8xRWV2ZjlSSHIzL1VSNjkvMUVldmY5UkhyMy9VUjY5LzFFZXZmOVJIcjMvU2h1dHRTMFJhQjFQSHJrQUFBQUFBQUFBQUFBQUFBQUFlWGw1QURZMk5nbmY0TnlPMTh6dS9WOHR5ZjlVSDhiL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZCL0QvMUVldlA5UUhyci9VQjY3LzFBZXUvOVFIcnYvVUI2Ny8xQWV1LzlRSHJ2L1VCNjcvMUFldS85UUhycjlSaHFramhFR0tBa25EbG9BQUFBQUFBQUFBQUQvLy84QXhNVEVTL2IzOU8zWnp1Ly9YeTNKLzFRZnh2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFNZnd2OVFIYnIvVHgyNC8wOGR1UDlQSGJqL1R4MjQvMDhkdVA5UEhiai9UeDI0LzA4ZHVQOVBIYmovVHgyNC8wOGR1ZjlOSExUdFBoZVJTNXM1L3dBQUFBQUFtNXViQUhCd2NBL282T2l4Ky96Ni85ak83LzlmTGNuL1ZCL0cvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlUSDhIL1R4MjQvMDRkdHY5T0hiYi9UaDIyLzA0ZHR2OU9IYmIvVGgyMi8wNGR0djlPSGJiL1RoMjIvMDRkdHY5T0hiYi9UaDIyLzA0ZHR2OUpHNm14SXcxUkR6QVNjUUQvLy84QXljbkpSZlgxOWZENy9Qci8yTTN2LzF3cXlQOVNITVgvVWh6Ri8xSWN4ZjlTSE1YL1VoekYvMUljeGY5VEhjWC9VeDdBLzA0Y3RmOU5ITEwvVGh5ei8wNGNzLzlOSExQL1RSeXovMDBjcy85T0hMUC9UaHl6LzA0Y3MvOU9ITFAvVGh5ei8wNGNzLzlOSExQL1RoeXovMHdjc1BBL0ZvOUZZeVRrQUFBQUFBTGs1T1NOK2ZuNS8vcjYrZi9uNHZUL25vRGQvNVoyMnYrV2R0ci9sbmJhLzVaMjJ2K1dkdHIvbUhmYi8zNWcxLzlLTU1yL1NDL0gvMGd2eC85SUw4Zi9TQy9ILzBndngvOUlMOGIvU0MvRy8wZ3Z4djlITDhiL1J5L0cvMGN2eHY5SEw4Yi9SeS9HLzBjdnh2OUhMOFgvUnk3Ri96OHR1STBBQUFBQ2s1T1RGdS92NzhYNStmbi8rZm41Ly9uNStmLzYrdm4vK2ZyNS8vbjYrZi81K3ZuLytmcjUvL242K2YvOS9mbi91YjczL3poRjh2ODJRL0wvTmtQeS96WkQ4djgyUS9ML05rUHkvelpEOHY4MlEvTC9Oa1B5L3paRDh2ODJRL0wvTmtQeS96WkQ4djgyUS9ML05rUHkvelZDOGY4MVF2RC9Nei9teFI4bmpoYkR3OE16OVBUMDVmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejgrZis1dmZmL09FWDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODFRdkgvTkVIdi96UkI3Lzh6UU9ybEtUTzZNOVhWMVZEMzkvZjArZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vUHo1LzdtOTkvODRSZlQvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05VTHcvelJBN1A4MFFPdi9ORURyL3pOQTZmUXNOOGxRM2QzZFlmajQrUG41K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi84L1BuL3ViMzMvemhGOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3pWQjcvOHpRT24vTXovby96TS82UDh6UU9qL016L24rUzA0em1IaDRlRmwrUGo0K3ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96OCtmKzV2ZmYvT0VYMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgwUWU3L016L20vek0vNWY4elArYi9Nei9tL3pNLzV2OHlQK1g2TGpuUFplRGc0RnI0K1BqMytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QejUvN205OS84NFJmVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9ORUhzL3pJKzQvOHlQdVAvTWo3ai96SSs0Lzh5UHVQL01qN2ovekkrNGZjdE9NeGEzTnpjUXZmMzkrLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzgvUG4vdWIzMy96aEY5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96UkE2Lzh4UGVIL01UM2cvekU5NFA4eFBlRC9NVDNnL3pFOTRQOHhQZUQvTVQzZTd5czJ4a0xTMHRJajlmWDEyZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o4K2YrNHZmZi9Oa1AwL3pOQjlQODBRZlQvTkVIMC96UkI5UDgwUWZUL05FSDAvelpDOC84MVArbi9NanplL3pJNzNmOHlPOTMvTWp2ZC96STczZjh5TzkzL01qdmQvekk3M2Y4eE85clpLVE83STU2ZW5nank4dkt1K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vKy9yNS85emUrUCtjb3ZmL21xRDMvNXFnOS8rYW9QZi9tcUQzLzVxZzkvK2FvUGYvVW9Mei94MXA1LzhlYWViL0htbm0veDVwNXY4ZWFlWC9IbW5sL3g1cDVmOGVhT1gvSG1qbC95QmgzYTRqSm9rSS8vLy9BTzN0N1dyNStmbisrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rdnI1Ly96OCtmLzgvUG4vL1B6NS8vejgrZi84L1BuLy9QejUvL3o4K2Y5ZHZmei9BSmYrL3dDWi92OEFtZjcvQUpuKy93Q1ovdjhBbWY3L0FKbisvd0NaL3Y4QW1QNytBSkx4YWdDNC93RHI2K3NBNGVIaEpQYjI5dHY1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8xdTgvZjhBbHYvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1cvTnNBaWVja0FJL3hBTHU3dXdBQUFBQUE4dkx5Z2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9XN3o5L3dDVy8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSlAzZ1FBQUFBQUFjcjhBQUFBQUFPenM3QURrNU9RZTl2YjJ6UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZjlidlAzL0FKYi8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1cvTXdBaStvZUFKRHhBQUFBQUFBQUFBQUFzTEN3QVAvLy93RHY3KzlPK1BqNDdQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzF1OC9mOEFsdi8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QWwvN3NBSkwwVGdDci93QUFhN1FBQUFBQUFBQUFBQUFBQUFBQTF0YldBTFMwdEFQeTh2SnYrUGo0OVBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL1c3ejkvd0NXLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqKzlBQ1UrRzRBYnJnREFJUGFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNHVMaUFOZlgxd2J6OC9OeitQajQ4UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmOWJ2UDMvQUpiLy93Q1kvLzhBbVAvL0FKai8vd0NZL3ZBQWxmbHpBSVRjQmdDSzV3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0K1BqQU5qWTJBVHk4dkpaK1BqNDJ2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMXU3L2Y4QWxmLy9BSmYvL3dDWS8vOEFsLzdhQUpUNFdRQ0UzQVFBaXVjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTFOVFVBQjhmSHdEdzhQQXI5dmIyblBqNCtPMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vck52Ny8zYkcvUDlyd2Z6dE02cjduQUNSOVNzQUVSMEFBSVBaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPdnI2d0RqNCtNRzh2THlPdmIyOXBENCtQalMrZm41OHZuNStmMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvZm41K2ZMNitmalMvUGoya1AzMzhqci8rZUlHLy9mcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGg0ZUVBMXRiV0F1L3Y3eHYwOVBSSjl2YjJkdmIyOXBmMzkvZW85L2YzcVBiMjlwZjI5dloyOVBUMFNlL3Y3eHZXMXRZQzRlSGhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9nQi8vL2dBSC8vZ0FBZi93QUFELzRBQUFmOEFBQUQrQUFBQWZBQUFBRHdBQUFBNEFBQUFHQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBR0FBQUFCd0FBQUE4QUFBQVBnQUFBSDRBQUFCL0FBQUEvNEFBQWYvZ0FBZi84QUFQLy93QVAvJyx5ZWxsb3c6J2RhdGE6aW1hZ2Uvdm5kbWljcm9zb2Z0aWNvbjtiYXNlNjQsQUFBQkFBSUFJQ0FBQUFFQUlBQ29FQUFBSmdBQUFCQVFBQUFCQUNBQWFBUUFBTTRRQUFBb0FBQUFJQUFBQUVBQUFBQUJBQ0FBQUFBQUFBQVFBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QVpLaFFBT1dBaUFFVjBLZ0JGZENvQU9XQWlBQmtxRkFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQThaQUFBQ2hBSEFFcDhKd0J2dTEwQWdOZVNBSW5sdUFDTjdjNEFqL0RYQUkvdzF3Q043YzRBaWVXNEFJRFhrZ0J2dTEwQVNud25BQW9RQndBOFpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFiTGdBQUFBQUZBRm1XTXdCLzFZd0FqL0RYQUpYNytRQ1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpYNytRQ1A3OWNBZnRXTUFGbVZNd0FBQUFVQUd5NEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE3djhBQUQxbUZRQjZ6WFlBa1BMZEFKZisvZ0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QNy9BSmYrL3dDVi9QNEFqdkRkQUhqS2RnQThaQlVBNmY4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy9BQUJXa0NZQWgrS29BSmI4K1FDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpmKy93Q1YrdjhBbFByL0FKVDYvd0NWK3Y4QWt2ZjVBSVBkcUFCVGpDWUEvLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0lDQUJiLy93QWthNXdxQW96cXV3Q1kvdjhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NYL2Y4QWsvai9BSlAzL3dDVDkvOEFrL2YvQUpQMy93Q1Q5LzhBa3ZiL0FJYml1d0JabHlvQS8vOEFBQUVDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUR6OC9NQXFKYUpIWkRENXJRTG5QNy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFsdnovQUpMMi93Q1I5UDhBa2ZUL0FKSDAvd0NSOVA4QWtmVC9BSkgwL3dDUjlQOEFrZlQvQUlUZnRBQlFoaDBBak8wQUFBQUFBQUFBQUFBQUFBQUFmWDE5QUR3OFBBbmkzdHVQdXVENS9RdWMvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKYjgvd0NROC84QWovSC9BSS94L3dDUDhmOEFqL0gvQUkveC93Q1A4ZjhBai9IL0FJL3gvd0NQOGY4QWp2RDlBSDdVandBaU9Ra0FTSGtBQUFBQUFBZ0lDQUQvLy84QXhjWEZUL2oxOU8rOTR2di9DcHovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDVisvOEFqL0gvQUkzdS93Q043djhBamU3L0FJM3Uvd0NON3Y4QWplNy9BSTN1L3dDTjd2OEFqZTcvQUkzdS93Q083djhBaXVudkFIQzhUd0QvL3dBQUJRZ0FxS2lvQUhwNmVoSHA2ZW0zL2Z2NS83emgrdjhLblAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbGZyL0FJN3Uvd0NNNi84QWpPdi9BSXpyL3dDTTYvOEFqT3YvQUl6ci93Q002LzhBak92L0FJenIvd0NNNi84QWpPdi9BSXpyL3dDTTYvOEFnOXkzQUVSeUVRQmVuUUQvLy84QXpNek1UZmIyOXZQOSsvbi92T0g2L3dxYi8vOEFsdi8vQUpiLy93Q1cvLzhBbHYvL0FKYi8vd0NXLy84QWwvLy9BSlQ1L3dDTDYvOEFpZWovQUluby93Q0o2UDhBaWVqL0FJbm8vd0NKNlA4QWllai9BSW5vL3dDSjZQOEFpZWovQUluby93Q0o2UDhBaWVqL0FJbm8vd0NINWZNQWI3NU5BTVAvQUFBQUFBWGw1ZVdYK2ZuNS8vdjYrZi9UNnZyL1didjkvMCszL2Y5UXQvMy9VTGY5LzFDMy9mOVF0LzMvVWJqOS96ZXcrLzhJbk8vL0I1bnIvd2VaNi84SG1ldi9CNW5xL3dlWjZ2OEhtZXIvQjVucS93ZVo2djhIbWVyL0I1anEvd2VZNnY4SG1Pbi9CNWpwL3dlWTZmOEhtT24vQnBqcC93ZVAxNWNCQUFBRnBLU2tIZkR3OE0vNStmbi8rZm41Ly9uNStmLzErUG4vOVBmNS8vVDMrZi8wOS9uLzlQZjUvL1QzK2YvNCtQbi9vK1Q2L3dxLy9mOEh2LzMvQ0wvOS93aS8vZjhJdi8zL0NMLzkvd2kvL2Y4SXYvMy9DTC84L3dpKy9QOEl2dnovQ0w3OC93aSsvUDhJdnZ6L0NMNzgvd2U5Ky84SHZQci9CcmJ4endSOXBSM0x5OHRBOWZYMTdQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vMzYrZitsNXZ2L0NjTC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh2LzMvQnIzNi93YTkrdjhHdXZic0JabkxRTnJhMm1EMzkvZjQrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vZnI1LzZYbSsvOEp3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I3Nzgvd2E3OS84R3V2Zi9CcnIzL3dhNTlmZ0ZvOWhnNHVMaWRQajQrUDM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi85K3ZuL3BlYjcvd25CLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dlKysvOEd1ZlgvQnJqMC93YTQ5UDhHdVBUL0JyZnovUVdtM1hUazVPUjYrUGo0L2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly8zNitmK2w1dnYvQ2NILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhIdmZyL0JyZnkvd2EyOGY4R3R2SC9CcmJ4L3dhMjhmOEd0ZkQ5QmFmZGV1WGw1Vy80K1BqOCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9mcjUvNlhtKy84SndmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9CN3o1L3dhMTcvOEd0TzcvQnJUdS93YTA3djhHdE83L0JyVHUvd2F6N2Z3RnBkdHY0ZUhoVnZqNCtQYjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzkrdm4vcGViNy93bkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZTcrUDhHc3UzL0JySHIvd2F4Ni84R3Nldi9CckhyL3dheDYvOEdzZXYvQnJEcTlnV2gxVmJhMnRvejl2YjI1dm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvLzM2K2YrazVmdi9Cc0gvL3dQQS8vOER3UC8vQThELy93UEEvLzhEd1AvL0E4RC8vd1hBLy84R3V2Yi9CckRxL3dhdTZQOEdydWovQnE3by93YXU2UDhHcnVqL0JxN28vd2F1NlA4R3JlWG1CWm5MTTcrL3Z4SDA5UFRDK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vKy9yNS84M3Yrdjl4MnZ6L2J0bjkvMi9aL2Y5djJmMy9iOW45LzIvWi9mOXYyZjMvUmRMNS95WEc3djhteE96L0pzVHMveWJFNi84bXhPdi9Kc1RyL3lYRTYvOGx3K3YvSmNQci95Szk1Y0lRaXJBUi8vLy9BUER3OElINStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rdm41Ly9yNStmLzYrZm4vK3ZuNS8vcjUrZi82K2ZuLyt2bjUvL3I1K2YrSDhQei9PZXIrL3p6cS92ODg2djcvUE9yKy96enEvdjg4NnY3L1BPcisvenpxL3Y4ODZ2My9PdUR6Z1d6Ly93RDA5UFFBNStmbk5QZjM5K241K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS80WHcvZjg0Ni8vL08rdi8venZyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Ly96dnAvZWszMiswME91ZjZBTXJLeWdDenM3TUY4L1B6bXZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9oZkQ5L3pqci8vODc2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8venZyLy84NzYvLy9PdVg1bWlxcHR3VXd2ODhBQUFBQUFQUHo4d0RwNmVrdTkvZjMzZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZitGOFAzL09Pdi8venZyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Ly96dnAvZDAzM084dU91WDVBQUFBQUFBQUFBQUF2cjYrQVAvLy93RHg4ZkZsK1BqNDlmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzRYdy9mODQ2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8venZyLy84NzZ2NzFPZVAyWlk3Ly93QXVzOElBQUFBQUFBQUFBQUFBQUFBQTRPRGdBTlBUMHdqMDlQU0krZm41K3ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2hmRDkvempyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Lytqcm0rWWd5eDlnSU5kUGxBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNmVucEFPSGg0UTMwOVBTTStmbjUrUG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmK0Y4UDMvT092Ly96dnIvLzg3Ni8vL08rdi8venZyLy9nNjUvcU1OdFhuRFRqZDd3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE2ZW5wQU9MaTRncjA5UFJ3K1BqNDUvbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvNFB3L2Y4MTYvLy9PZXYvL3p2ci8vODc2djduT3ViNWNEYlc1d28zM080QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRPRGdBTkhSMFFMeDhmRTg5L2Yzc2ZuNStmWDUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vdC9UNy80WHgvZitBOFAzMVhlejhzVG5rOXp3dXhkVUNOdFRrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUkVSRUFQLy8vd0RvNk9nTTlQVDBUZmYzOTZUNCtQamYrZm41K1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2ZqNStQamY5dmYzcFBMMDlFM202T2dNNy8zL0FQdGJPd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNNakl3RDE5ZlVBNHVMaUJ2SHg4U24xOWZWZDl2YjJqZmYzOTY3MzkvZTk5L2YzdmZmMzk2NzI5dmFOOWZYMVhmSHg4U25sNHVJRzlQWDFBRkVuSWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC93RC8vL2dBSC8vZ0FBZi93QUFELzRBQUFmOEFBQUQrQUFBQWZBQUFBRHdBQUFBNEFBQUFHQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBR0FBQUFCZ0FBQUFjQUFBQVBnQUFBSDRBQUFCL0FBQUEvNEFBQWYvQUFBUC84QUFQLy93QVAvS0FBQUFCQUFBQUFnQUFBQUFRQWdBQUFBQUFBQUJBQUFFZ3NBQUJJTEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJvcmdBQVMzNElBSFRETlFDQzIyd0FoK09NQUlmampBQ0MyMndBZE1RMUFFeC9DQUJvcndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVCckFBQUFBQUFBZWNzd0FJenNuZ0NVK09VQWwvMzdBSmorL3dDWS92OEFsLzM3QUpQMzVRQ0w2WjRBZDhnd0FBQUFBQUErYVFBQUFBQUFjWGQ2QVA4QUFBQU9pTnROQUpQMzJnQ1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmI4L3dDVStmOEFrL2ovQUk3dzJnQisxRTBBQUFBQUFFZDRBUG43L0FEYzJOVTVUN1AzM2dDWC8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKWDYvd0NSOC84QWtQTC9BSkR6L3dDUTgvOEFqT3plQUhyT09RQ1I5QUMzdDdjTzhlL3ZzR25BL2Y4QWxmLy9BSmYvL3dDWC8vOEFsLy8vQUpQNC93Q043djhBak96L0FJenMvd0NNN1A4QWpPei9BSXp0L3dDRzRyQUFZNm9PNHVMaVQvajM5L0dJemZ6L01hdisvelNzL3Y4MHJQNy9GYUg1L3dPVjdmOERsT3YvQTVUci93T1U2LzhEbE92L0E1VHIvd09VNi84RGsranhCSXZWVCszdDdaVDUrZm4vOGZiNS8rdnorZi9yOVBuLzZ2UDUvMW5SKy84RXZQei9CNzM4L3dlOS9QOEh2ZnovQjczOC93ZTkvUDhIdlB2L0I3cjQvd2F4N1pUeTh2SzcrZm41Ly9uNStmLzYrZm4vK3ZuNS8vbjUrZjllMWYzL0E4RC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3UDMvQnJ2My93YTU5ZjhHdE82NzgvUHp3Zm41K2YvNStmbi8rZm41Ly9uNStmLzQrZm4vWHRYOS93UEEvLzhId2YvL0I4SC8vd2ZCLy84SHYvei9CcmZ6L3dhMTcvOEd0ZS8vQnJIcXdmUHo4Nlg1K2ZuLytmbjUvL241K2YvNStmbi8rUG41LzJEVy9mOEd3Zi8vQ3NMLy93ckMvLzhKdi92L0NMWHUvd2l4NmY4SXNlbi9DTEhwL3dldDVLWHk4dkpvK2ZuNSt2bjUrZi81K2ZuLytmbjUvL241K2YvSTd2ci9xdWY3LzZ6bisvK201L3YvVGR6NS95elY5UDh1MWZUL0x0WDAveTdVOC9vb3lPcG83T3pzSC9mMzk5RDUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QcjUvLzM2K2YvKyt2bi85Zm41LzJydi92ODU3UC8vUE96Ly96enMvLzg4Ni8zUU91THpILy8vL3dEMDlQUmgrZm41OXZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL0g0K2Y5bzd2Ny9PT3YvL3p2ci8vODc2Ly8yT3VmNllVSC8vd0R1N3U0QTZlbnBCL2IyOW9UNStmbjMrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi94K1BuL1p1NysvemZyLy84NzYvLzNPdWo4aERmYzd3YzQ0UE1BQUFBQUFQSHg4UUR1N3U0STl2YjJhUGo0K05uNStmbjkrZm41Ly9uNStmLzUrZm4vOC9uNS80engvUDFTN1A3Wk8rbjhhRGZoOUFnNTVQY0FBQUFBQUFBQUFBQUFBQUFBNit2ckFOL2Yzd0gxOWZVbzkvZjNmdmo0K01INCtQamUrUGo0M3ZqNCtNSHE5dmgrdy9IMktBRE01d0ZrNGU4QUFBQUFBQUFBQUFEd0R3QUE0QWNBQU1BREFBQ0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBUUFBZ0FFQUFNQURBQURnQndBQSd9O3JldHVybntGYXZpY29uc0J5SHVlOkZhdmljb25zQnlIdWV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXt2YXIgVGFzaz10ci5iLlRhc2s7ZnVuY3Rpb24gRmluZENvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcil7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXz1zZWxlY3Rpb25Db250cm9sbGVyO3RoaXMuZmlsdGVySGl0c189bmV3IHRyLmMuU2VsZWN0aW9uKCk7dGhpcy5jdXJyZW50SGl0SW5kZXhfPS0xO3RoaXMuYWN0aXZlUHJvbWlzZV89UHJvbWlzZS5yZXNvbHZlKCk7dGhpcy5hY3RpdmVUYXNrXz11bmRlZmluZWQ7fTtGaW5kQ29udHJvbGxlci5wcm90b3R5cGU9e19fcHJvdG9fXzpPYmplY3QucHJvdG90eXBlLGdldCBtb2RlbCgpe3JldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLm1vZGVsO30sZ2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzt9LGVucXVldWVPcGVyYXRpb25fOmZ1bmN0aW9uKG9wZXJhdGlvbil7dmFyIHRhc2s7aWYob3BlcmF0aW9uIGluc3RhbmNlb2YgdHIuYi5UYXNrKQotdGFzaz1vcGVyYXRpb247ZWxzZQotdGFzaz1uZXcgdHIuYi5UYXNrKG9wZXJhdGlvbix0aGlzKTtpZih0aGlzLmFjdGl2ZVRhc2tfKXt0aGlzLmFjdGl2ZVRhc2tfPXRoaXMuYWN0aXZlVGFza18uZW5xdWV1ZSh0YXNrKTt9ZWxzZXt0aGlzLmFjdGl2ZVRhc2tfPXRhc2s7dGhpcy5hY3RpdmVQcm9taXNlXz1UYXNrLlJ1bldoZW5JZGxlKHRoaXMuYWN0aXZlVGFza18pO3RoaXMuYWN0aXZlUHJvbWlzZV8udGhlbihmdW5jdGlvbigpe3RoaXMuYWN0aXZlUHJvbWlzZV89dW5kZWZpbmVkO3RoaXMuYWN0aXZlVGFza189dW5kZWZpbmVkO30uYmluZCh0aGlzKSk7fX0sc3RhcnRGaWx0ZXJpbmc6ZnVuY3Rpb24oZmlsdGVyVGV4dCl7dmFyIHNjPXRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl87aWYoIXNjKQotcmV0dXJuO3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oZnVuY3Rpb24oKXt0aGlzLmZpbHRlckhpdHNfPW5ldyB0ci5jLlNlbGVjdGlvbigpO3RoaXMuY3VycmVudEhpdEluZGV4Xz0tMTt9LmJpbmQodGhpcykpO3ZhciBzdGF0ZUZyb21TdHJpbmc7dHJ5e3N0YXRlRnJvbVN0cmluZz1zYy51aVN0YXRlRnJvbVN0cmluZyhmaWx0ZXJUZXh0KTt9Y2F0Y2goZSl7dGhpcy5lbnF1ZXVlT3BlcmF0aW9uXyhmdW5jdGlvbigpe3ZhciBvdmVybGF5PW5ldyB0ci5iLnVpLk92ZXJsYXkoKTtvdmVybGF5LnRleHRDb250ZW50PWUubWVzc2FnZTtvdmVybGF5LnRpdGxlPSdVSSBTdGF0ZSBOYXZpZ2F0aW9uIEVycm9yJztvdmVybGF5LnZpc2libGU9dHJ1ZTt9KTtyZXR1cm4gdGhpcy5hY3RpdmVQcm9taXNlXzt9Ci1pZihzdGF0ZUZyb21TdHJpbmchPT11bmRlZmluZWQpe3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oc2MubmF2VG9Qb3NpdGlvbi5iaW5kKHRoaXMsc3RhdGVGcm9tU3RyaW5nLHRydWUpKTt9ZWxzZXtpZihmaWx0ZXJUZXh0Lmxlbmd0aD09PTApe3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oc2MuZmluZFRleHRDbGVhcmVkLmJpbmQoc2MpKTt9ZWxzZXt2YXIgZmlsdGVyPW5ldyB0ci5jLlRpdGxlT3JDYXRlZ29yeUZpbHRlcihmaWx0ZXJUZXh0KTt2YXIgZmlsdGVySGl0cz1uZXcgdHIuYy5TZWxlY3Rpb24oKTt0aGlzLmVucXVldWVPcGVyYXRpb25fKHNjLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2soZmlsdGVyLGZpbHRlckhpdHMpKTt0aGlzLmVucXVldWVPcGVyYXRpb25fKGZ1bmN0aW9uKCl7dGhpcy5maWx0ZXJIaXRzXz1maWx0ZXJIaXRzO3NjLmZpbmRUZXh0Q2hhbmdlZFRvKGZpbHRlckhpdHMpO30uYmluZCh0aGlzKSk7fX0KLXJldHVybiB0aGlzLmFjdGl2ZVByb21pc2VfO30sZ2V0IGZpbHRlckhpdHMoKXtyZXR1cm4gdGhpcy5maWx0ZXJIaXRzXzt9LGdldCBjdXJyZW50SGl0SW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50SGl0SW5kZXhfO30sZmluZF86ZnVuY3Rpb24oZGlyKXt2YXIgZmlyc3RIaXQ9dGhpcy5jdXJyZW50SGl0SW5kZXhfPT09LTE7aWYoZmlyc3RIaXQmJmRpcjwwKQotdGhpcy5jdXJyZW50SGl0SW5kZXhfPTA7dmFyIE49dGhpcy5maWx0ZXJIaXRzLmxlbmd0aDt0aGlzLmN1cnJlbnRIaXRJbmRleF89KHRoaXMuY3VycmVudEhpdEluZGV4XytkaXIrTiklTjtpZighdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXykKLXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLmZpbmRGb2N1c0NoYW5nZWRUbyh0aGlzLmZpbHRlckhpdHMuc3ViU2VsZWN0aW9uKHRoaXMuY3VycmVudEhpdEluZGV4XywxKSk7fSxmaW5kTmV4dDpmdW5jdGlvbigpe3RoaXMuZmluZF8oMSk7fSxmaW5kUHJldmlvdXM6ZnVuY3Rpb24oKXt0aGlzLmZpbmRfKC0xKTt9fTtyZXR1cm57RmluZENvbnRyb2xsZXI6RmluZENvbnRyb2xsZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBLZXlFdmVudE1hbmFnZXIob3B0X2RvY3VtZW50KXt0aGlzLmRvY3VtZW50Xz1vcHRfZG9jdW1lbnR8fGRvY3VtZW50O2lmKEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZSkKLXRocm93IG5ldyBFcnJvcignS2V5RXZlbnRNYW5hZ2VyIGlzIGEgc2luZ2xldG9uLicpO3RoaXMub25FdmVudF89dGhpcy5vbkV2ZW50Xy5iaW5kKHRoaXMpO3RoaXMuZG9jdW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25FdmVudF8pO3RoaXMuZG9jdW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJyx0aGlzLm9uRXZlbnRfKTt0aGlzLmRvY3VtZW50Xy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsdGhpcy5vbkV2ZW50Xyk7dGhpcy5saXN0ZW5lcnNfPVtdO30KLUtleUV2ZW50TWFuYWdlci5pbnN0YW5jZT11bmRlZmluZWQ7ZG9jdW1lbnQuaGVhZC5hZGRFdmVudExpc3RlbmVyKCd0ci11bml0dGVzdC13aWxsLXJ1bicsZnVuY3Rpb24oKXtpZihLZXlFdmVudE1hbmFnZXIuaW5zdGFuY2Upe0tleUV2ZW50TWFuYWdlci5pbnN0YW5jZS5kZXN0cm95KCk7S2V5RXZlbnRNYW5hZ2VyLmluc3RhbmNlPXVuZGVmaW5lZDt9Ci1LZXlFdmVudE1hbmFnZXIuaW5zdGFuY2U9bmV3IEtleUV2ZW50TWFuYWdlcigpO30pO0tleUV2ZW50TWFuYWdlci5wcm90b3R5cGU9e2FkZExpc3RlbmVyOmZ1bmN0aW9uKHR5cGUsaGFuZGxlcix0aGlzQXJnKXtpZighdGhpc0FyZy5rZXlFdmVudE1hbmFnZXJHdWlkXyl7dGhpc0FyZy5rZXlFdmVudE1hbmFnZXJHdWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzQXJnLmtleUV2ZW50TWFuYWdlclJlZkNvdW50Xz0wO30KLXRoaXNBcmcuY2xhc3NMaXN0LmFkZCgna2V5LWV2ZW50LW1hbmFnZXItdGFyZ2V0Jyk7dGhpc0FyZy5rZXlFdmVudE1hbmFnZXJSZWZDb3VudF8rKzt2YXIgZ3VpZD10aGlzQXJnLmtleUV2ZW50TWFuYWdlckd1aWRfO3RoaXMubGlzdGVuZXJzXy5wdXNoKHtndWlkOmd1aWQsdHlwZTp0eXBlLGhhbmRsZXI6aGFuZGxlcn0pO30sb25FdmVudF86ZnVuY3Rpb24oZXZlbnQpe3ZhciBwcmV2ZW50RGVmYXVsdFN0YXRlPXVuZGVmaW5lZDt2YXIgc3RvcFByb3BhZ2F0aW9uQ2FsbGVkPWZhbHNlO3ZhciBvbGRQcmV2ZW50RGVmYXVsdD1ldmVudC5wcmV2ZW50RGVmYXVsdDtldmVudC5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3ByZXZlbnREZWZhdWx0U3RhdGU9ZmFsc2U7b2xkUHJldmVudERlZmF1bHQuY2FsbCh0aGlzKTt9O3ZhciBvbGRTdG9wUHJvcGFnYXRpb249ZXZlbnQuc3RvcFByb3BhZ2F0aW9uO2V2ZW50LnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3N0b3BQcm9wYWdhdGlvbkNhbGxlZD10cnVlO29sZFN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO307ZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9O3ZhciBwb3NzaWJsZVRoaXNBcmdzPXRoaXMuZG9jdW1lbnRfLnF1ZXJ5U2VsZWN0b3JBbGwoJy5rZXktZXZlbnQtbWFuYWdlci10YXJnZXQnKTt2YXIgcG9zc2libGVUaGlzQXJnc0J5R1VJRD17fTtmb3IodmFyIGk9MDtpPHBvc3NpYmxlVGhpc0FyZ3MubGVuZ3RoO2krKyl7cG9zc2libGVUaGlzQXJnc0J5R1VJRFtwb3NzaWJsZVRoaXNBcmdzW2ldLmtleUV2ZW50TWFuYWdlckd1aWRfXT1wb3NzaWJsZVRoaXNBcmdzW2ldO30KLXZhciBsaXN0ZW5lcnM9dGhpcy5saXN0ZW5lcnNfLmNvbmNhdCgpO3ZhciB0eXBlPWV2ZW50LnR5cGU7dmFyIHByZXZlbnRlZD0wO2Zvcih2YXIgaT0wO2k8bGlzdGVuZXJzLmxlbmd0aDtpKyspe3ZhciBsaXN0ZW5lcj1saXN0ZW5lcnNbaV07aWYobGlzdGVuZXIudHlwZSE9PXR5cGUpCi1jb250aW51ZTt2YXIgdGhpc0FyZz1wb3NzaWJsZVRoaXNBcmdzQnlHVUlEW2xpc3RlbmVyLmd1aWRdO2lmKCF0aGlzQXJnKQotY29udGludWU7dmFyIGhhbmRsZXI9bGlzdGVuZXIuaGFuZGxlcjtpZihoYW5kbGVyLmhhbmRsZUV2ZW50KQotcHJldmVudGVkfD1oYW5kbGVyLmhhbmRsZUV2ZW50LmNhbGwoaGFuZGxlcixldmVudCk9PT1mYWxzZTtlbHNlCi1wcmV2ZW50ZWR8PWhhbmRsZXIuY2FsbCh0aGlzQXJnLGV2ZW50KT09PWZhbHNlO2lmKHN0b3BQcm9wYWdhdGlvbkNhbGxlZCkKLWJyZWFrO30KLXJldHVybiFwcmV2ZW50ZWQmJnByZXZlbnREZWZhdWx0U3RhdGU7fSxyZW1vdmVMaXN0ZW5lcjpmdW5jdGlvbih0eXBlLGhhbmRsZXIsdGhpc0FyZyl7aWYodGhpc0FyZy5rZXlFdmVudE1hbmFnZXJHdWlkXz09PXVuZGVmaW5lZCkKLXRocm93IG5ldyBFcnJvcignV2FzIG5vdCByZWdpc3RlcmVkIHdpdGggS2V5RXZlbnRNYW5hZ2VyJyk7aWYodGhpc0FyZy5rZXlFdmVudE1hbmFnZXJSZWZDb3VudF89PT0wKQotdGhyb3cgbmV3IEVycm9yKCdObyBldmVudHMgd2VyZSByZWdpc3RlcmVkIG9uIHRoZSBwcm92aWRlZCB0aGlzQXJnJyk7Zm9yKHZhciBpPTA7aTx0aGlzLmxpc3RlbmVyc18ubGVuZ3RoO2krKyl7dmFyIGxpc3RlbmVyPXRoaXMubGlzdGVuZXJzX1tpXTtpZihsaXN0ZW5lci50eXBlPT10eXBlJiZsaXN0ZW5lci5oYW5kbGVyPT1oYW5kbGVyJiZsaXN0ZW5lci5ndWlkPT10aGlzQXJnLmtleUV2ZW50TWFuYWdlckd1aWRfKXt0aGlzQXJnLmtleUV2ZW50TWFuYWdlclJlZkNvdW50Xy0tO2lmKHRoaXNBcmcua2V5RXZlbnRNYW5hZ2VyUmVmQ291bnRfPT09MCkKLXRoaXNBcmcuY2xhc3NMaXN0LnJlbW92ZSgna2V5LWV2ZW50LW1hbmFnZXItdGFyZ2V0Jyk7dGhpcy5saXN0ZW5lcnNfLnNwbGljZShpLDEpO3JldHVybjt9fQotdGhyb3cgbmV3IEVycm9yKCdMaXN0ZW5lciBub3QgZm91bmQnKTt9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmxpc3RlbmVyc18uc3BsaWNlKDApO3RoaXMuZG9jdW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25FdmVudF8pO3RoaXMuZG9jdW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJyx0aGlzLm9uRXZlbnRfKTt0aGlzLmRvY3VtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsdGhpcy5vbkV2ZW50Xyk7fSxkaXNwYXRjaEZha2VFdmVudDpmdW5jdGlvbih0eXBlLGFyZ3Mpe3ZhciBlPW5ldyBLZXlib2FyZEV2ZW50KHR5cGUsYXJncyk7cmV0dXJuIEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZS5vbkV2ZW50Xy5jYWxsKHVuZGVmaW5lZCxlKTt9fTtLZXlFdmVudE1hbmFnZXIuaW5zdGFuY2U9bmV3IEtleUV2ZW50TWFuYWdlcigpO3JldHVybntLZXlFdmVudE1hbmFnZXI6S2V5RXZlbnRNYW5hZ2VyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmIudWknLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gTW91c2VUcmFja2VyKG9wdF90YXJnZXRFbGVtZW50KXt0aGlzLm9uTW91c2VEb3duXz10aGlzLm9uTW91c2VEb3duXy5iaW5kKHRoaXMpO3RoaXMub25Nb3VzZU1vdmVfPXRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7dGhpcy5vbk1vdXNlVXBfPXRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpO3RoaXMudGFyZ2V0RWxlbWVudD1vcHRfdGFyZ2V0RWxlbWVudDt9Ci1Nb3VzZVRyYWNrZXIucHJvdG90eXBlPXtnZXQgdGFyZ2V0RWxlbWVudCgpe3JldHVybiB0aGlzLnRhcmdldEVsZW1lbnRfO30sc2V0IHRhcmdldEVsZW1lbnQodGFyZ2V0RWxlbWVudCl7aWYodGhpcy50YXJnZXRFbGVtZW50XykKLXRoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0aGlzLm9uTW91c2VEb3duXyk7dGhpcy50YXJnZXRFbGVtZW50Xz10YXJnZXRFbGVtZW50O2lmKHRoaXMudGFyZ2V0RWxlbWVudF8pCi10aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsdGhpcy5vbk1vdXNlRG93bl8pO30sb25Nb3VzZURvd25fOmZ1bmN0aW9uKGUpe2lmKGUuYnV0dG9uIT09MCkKLXJldHVybiB0cnVlO2U9dGhpcy5yZW1ha2VFdmVudF8oZSwnbW91c2UtdHJhY2tlci1zdGFydCcpO3RoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLHRoaXMub25Nb3VzZU1vdmVfKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJyx0aGlzLm9uTW91c2VVcF8pO3RoaXMudGFyZ2V0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsdGhpcy5vbk1vdXNlVXBfKTt0aGlzLnNhdmVQcmV2aW91c1VzZXJTZWxlY3RfPWRvY3VtZW50LmJvZHkuc3R5bGVbJy13ZWJraXQtdXNlci1zZWxlY3QnXTtkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J109J25vbmUnO2UucHJldmVudERlZmF1bHQoKTtyZXR1cm4gdHJ1ZTt9LG9uTW91c2VNb3ZlXzpmdW5jdGlvbihlKXtlPXRoaXMucmVtYWtlRXZlbnRfKGUsJ21vdXNlLXRyYWNrZXItbW92ZScpO3RoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTt9LG9uTW91c2VVcF86ZnVuY3Rpb24oZSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyx0aGlzLm9uTW91c2VNb3ZlXyk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsdGhpcy5vbk1vdXNlVXBfKTt0aGlzLnRhcmdldEVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLHRoaXMub25Nb3VzZVVwXyk7ZG9jdW1lbnQuYm9keS5zdHlsZVsnLXdlYmtpdC11c2VyLXNlbGVjdCddPXRoaXMuc2F2ZVByZXZpb3VzVXNlclNlbGVjdF87ZT10aGlzLnJlbWFrZUV2ZW50XyhlLCdtb3VzZS10cmFja2VyLWVuZCcpO3RoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTt9LHJlbWFrZUV2ZW50XzpmdW5jdGlvbihlLG5ld1R5cGUpe3ZhciByZW1hZGU9bmV3IHRyLmIuRXZlbnQobmV3VHlwZSx0cnVlLHRydWUpO3JlbWFkZS54PWUueDtyZW1hZGUueT1lLnk7cmVtYWRlLm9mZnNldFg9ZS5vZmZzZXRYO3JlbWFkZS5vZmZzZXRZPWUub2Zmc2V0WTtyZW1hZGUuY2xpZW50WD1lLmNsaWVudFg7cmVtYWRlLmNsaWVudFk9ZS5jbGllbnRZO3JldHVybiByZW1hZGU7fX07ZnVuY3Rpb24gdHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwKG1vdXNlTW92ZUhhbmRsZXIsb3B0X21vdXNlVXBIYW5kbGVyKXtmdW5jdGlvbiBjbGVhbnVwQW5kRGlzcGF0Y2hUb01vdXNlVXAoZSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyxtb3VzZU1vdmVIYW5kbGVyKTtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJyxjbGVhbnVwQW5kRGlzcGF0Y2hUb01vdXNlVXApO2lmKG9wdF9tb3VzZVVwSGFuZGxlcikKLW9wdF9tb3VzZVVwSGFuZGxlcihlKTt9Ci1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLG1vdXNlTW92ZUhhbmRsZXIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLGNsZWFudXBBbmREaXNwYXRjaFRvTW91c2VVcCk7fQotcmV0dXJue01vdXNlVHJhY2tlcjpNb3VzZVRyYWNrZXIsdHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwOnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVpJyxmdW5jdGlvbigpe3ZhciBUSElTX0RPQz1kb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7dmFyIE1JTl9NT1VTRV9TRUxFQ1RJT05fRElTVEFOQ0U9NDt2YXIgTU9VU0VfU0VMRUNUT1JfTU9ERT17fTtNT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTj0weDE7TU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOPTB4MjtNT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT009MHg0O01PVVNFX1NFTEVDVE9SX01PREUuVElNSU5HPTB4ODtNT1VTRV9TRUxFQ1RPUl9NT0RFLlJPVEFURT0weDEwO01PVVNFX1NFTEVDVE9SX01PREUuQUxMX01PREVTPTB4MUY7dmFyIGFsbE1vZGVJbmZvPXt9O2FsbE1vZGVJbmZvW01PVVNFX1NFTEVDVE9SX01PREUuUEFOU0NBTl09e3RpdGxlOidwYW4nLGNsYXNzTmFtZToncGFuLXNjYW4tbW9kZS1idXR0b24nLGV2ZW50TmFtZXM6e2VudGVyOidlbnRlcnBhbicsYmVnaW46J2JlZ2lucGFuJyx1cGRhdGU6J3VwZGF0ZXBhbicsZW5kOidlbmRwYW4nLGV4aXQ6J2V4aXRwYW4nfX07YWxsTW9kZUluZm9bTU9VU0VfU0VMRUNUT1JfTU9ERS5TRUxFQ1RJT05dPXt0aXRsZTonc2VsZWN0aW9uJyxjbGFzc05hbWU6J3NlbGVjdGlvbi1tb2RlLWJ1dHRvbicsZXZlbnROYW1lczp7ZW50ZXI6J2VudGVyc2VsZWN0aW9uJyxiZWdpbjonYmVnaW5zZWxlY3Rpb24nLHVwZGF0ZTondXBkYXRlc2VsZWN0aW9uJyxlbmQ6J2VuZHNlbGVjdGlvbicsZXhpdDonZXhpdHNlbGVjdGlvbid9fTthbGxNb2RlSW5mb1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT01dPXt0aXRsZTonem9vbScsY2xhc3NOYW1lOid6b29tLW1vZGUtYnV0dG9uJyxldmVudE5hbWVzOntlbnRlcjonZW50ZXJ6b29tJyxiZWdpbjonYmVnaW56b29tJyx1cGRhdGU6J3VwZGF0ZXpvb20nLGVuZDonZW5kem9vbScsZXhpdDonZXhpdHpvb20nfX07YWxsTW9kZUluZm9bTU9VU0VfU0VMRUNUT1JfTU9ERS5USU1JTkddPXt0aXRsZTondGltaW5nJyxjbGFzc05hbWU6J3RpbWluZy1tb2RlLWJ1dHRvbicsZXZlbnROYW1lczp7ZW50ZXI6J2VudGVydGltaW5nJyxiZWdpbjonYmVnaW50aW1pbmcnLHVwZGF0ZTondXBkYXRldGltaW5nJyxlbmQ6J2VuZHRpbWluZycsZXhpdDonZXhpdHRpbWluZyd9fTthbGxNb2RlSW5mb1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlJPVEFURV09e3RpdGxlOidyb3RhdGUnLGNsYXNzTmFtZToncm90YXRlLW1vZGUtYnV0dG9uJyxldmVudE5hbWVzOntlbnRlcjonZW50ZXJyb3RhdGUnLGJlZ2luOidiZWdpbnJvdGF0ZScsdXBkYXRlOid1cGRhdGVyb3RhdGUnLGVuZDonZW5kcm90YXRlJyxleGl0OidleGl0cm90YXRlJ319O3ZhciBNT0RJRklFUj17U0hJRlQ6MHgxLFNQQUNFOjB4MixDTURfT1JfQ1RSTDoweDR9O3ZhciBNb3VzZU1vZGVTZWxlY3Rvcj10ci5iLnVpLmRlZmluZSgnZGl2Jyk7TW91c2VNb2RlU2VsZWN0b3IucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTERpdkVsZW1lbnQucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKG9wdF90YXJnZXRFbGVtZW50KXt0aGlzLmNsYXNzTGlzdC5hZGQoJ21vdXNlLW1vZGUtc2VsZWN0b3InKTt2YXIgbm9kZT10ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNtb3VzZS1tb2RlLXNlbGVjdG9yLXRlbXBsYXRlJyxUSElTX0RPQyk7dGhpcy5hcHBlbmRDaGlsZChub2RlKTt0aGlzLmJ1dHRvbnNFbF89dGhpcy5xdWVyeVNlbGVjdG9yKCcuYnV0dG9ucycpO3RoaXMuZHJhZ0hhbmRsZUVsXz10aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kcmFnLWhhbmRsZScpO3RoaXMuc3VwcG9ydGVkTW9kZU1hc2s9TU9VU0VfU0VMRUNUT1JfTU9ERS5BTExfTU9ERVM7dGhpcy5pbml0aWFsUmVsYXRpdmVNb3VzZURvd25Qb3NfPXt4OjAseTowfTt0aGlzLmRlZmF1bHRNb2RlXz1NT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU47dGhpcy5zZXR0aW5nc0tleV89dW5kZWZpbmVkO3RoaXMubW91c2VQb3NfPXt4OjAseTowfTt0aGlzLm1vdXNlRG93blBvc189e3g6MCx5OjB9O3RoaXMuZHJhZ0hhbmRsZUVsXy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLHRoaXMub25EcmFnSGFuZGxlTW91c2VEb3duXy5iaW5kKHRoaXMpKTt0aGlzLm9uTW91c2VEb3duXz10aGlzLm9uTW91c2VEb3duXy5iaW5kKHRoaXMpO3RoaXMub25Nb3VzZU1vdmVfPXRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7dGhpcy5vbk1vdXNlVXBfPXRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpO3RoaXMuYnV0dG9uc0VsXy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJyx0aGlzLm9uQnV0dG9uTW91c2VVcF8pO3RoaXMuYnV0dG9uc0VsXy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLHRoaXMub25CdXR0b25Nb3VzZURvd25fKTt0aGlzLmJ1dHRvbnNFbF8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHRoaXMub25CdXR0b25QcmVzc18uYmluZCh0aGlzKSk7dHIuYi5LZXlFdmVudE1hbmFnZXIuaW5zdGFuY2UuYWRkTGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25LZXlEb3duXyx0aGlzKTt0ci5iLktleUV2ZW50TWFuYWdlci5pbnN0YW5jZS5hZGRMaXN0ZW5lcigna2V5dXAnLHRoaXMub25LZXlVcF8sdGhpcyk7dGhpcy5rZXlDb2RlQ29uZGl0aW9uPXVuZGVmaW5lZDt0aGlzLm1vZGVfPXVuZGVmaW5lZDt0aGlzLm1vZGVUb0tleUNvZGVNYXBfPXt9O3RoaXMubW9kaWZpZXJUb01vZGVNYXBfPXt9O3RoaXMudGFyZ2V0RWxlbWVudD1vcHRfdGFyZ2V0RWxlbWVudDt0aGlzLnNwYWNlUHJlc3NlZF89ZmFsc2U7dGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXz1udWxsO3RoaXMuaXNJbnRlcmFjdGluZ189ZmFsc2U7dGhpcy5pc0NsaWNrXz1mYWxzZTt9LGdldCB0YXJnZXRFbGVtZW50KCl7cmV0dXJuIHRoaXMudGFyZ2V0RWxlbWVudF87fSxzZXQgdGFyZ2V0RWxlbWVudCh0YXJnZXQpe2lmKHRoaXMudGFyZ2V0RWxlbWVudF8pCi10aGlzLnRhcmdldEVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsdGhpcy5vbk1vdXNlRG93bl8pO3RoaXMudGFyZ2V0RWxlbWVudF89dGFyZ2V0O2lmKHRoaXMudGFyZ2V0RWxlbWVudF8pCi10aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsdGhpcy5vbk1vdXNlRG93bl8pO30sZ2V0IGRlZmF1bHRNb2RlKCl7cmV0dXJuIHRoaXMuZGVmYXVsdE1vZGVfO30sc2V0IGRlZmF1bHRNb2RlKGRlZmF1bHRNb2RlKXt0aGlzLmRlZmF1bHRNb2RlXz1kZWZhdWx0TW9kZTt9LGdldCBzZXR0aW5nc0tleSgpe3JldHVybiB0aGlzLnNldHRpbmdzS2V5Xzt9LHNldCBzZXR0aW5nc0tleShzZXR0aW5nc0tleSl7dGhpcy5zZXR0aW5nc0tleV89c2V0dGluZ3NLZXk7aWYoIXRoaXMuc2V0dGluZ3NLZXlfKQotcmV0dXJuO3ZhciBtb2RlPXRyLmIuU2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ3NLZXlfKycubW9kZScsdW5kZWZpbmVkKTtpZihhbGxNb2RlSW5mb1ttb2RlXT09PXVuZGVmaW5lZCkKLW1vZGU9dW5kZWZpbmVkO2lmKChtb2RlJnRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfKT09PTApCi1tb2RlPXVuZGVmaW5lZDtpZighbW9kZSkKLW1vZGU9dGhpcy5kZWZhdWx0TW9kZV87dGhpcy5tb2RlPW1vZGU7dmFyIHBvcz10ci5iLlNldHRpbmdzLmdldCh0aGlzLnNldHRpbmdzS2V5XysnLnBvcycsdW5kZWZpbmVkKTtpZihwb3MpCi10aGlzLnBvcz1wb3M7fSxnZXQgc3VwcG9ydGVkTW9kZU1hc2soKXtyZXR1cm4gdGhpcy5zdXBwb3J0ZWRNb2RlTWFza187fSxzZXQgc3VwcG9ydGVkTW9kZU1hc2soc3VwcG9ydGVkTW9kZU1hc2spe2lmKHRoaXMubW9kZSYmKHN1cHBvcnRlZE1vZGVNYXNrJnRoaXMubW9kZSk9PT0wKQotdGhyb3cgbmV3IEVycm9yKCdzdXBwb3J0ZWRNb2RlTWFzayBtdXN0IGluY2x1ZGUgY3VycmVudCBtb2RlLicpO2Z1bmN0aW9uIGNyZWF0ZUJ1dHRvbkZvck1vZGUobW9kZSl7dmFyIGJ1dHRvbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtidXR0b24ubW9kZT1tb2RlO2J1dHRvbi50aXRsZT1hbGxNb2RlSW5mb1ttb2RlXS50aXRsZTtidXR0b24uY2xhc3NMaXN0LmFkZCgndG9vbC1idXR0b24nKTtidXR0b24uY2xhc3NMaXN0LmFkZChhbGxNb2RlSW5mb1ttb2RlXS5jbGFzc05hbWUpO3JldHVybiBidXR0b247fQotdGhpcy5zdXBwb3J0ZWRNb2RlTWFza189c3VwcG9ydGVkTW9kZU1hc2s7dGhpcy5idXR0b25zRWxfLnRleHRDb250ZW50PScnO2Zvcih2YXIgbW9kZU5hbWUgaW4gTU9VU0VfU0VMRUNUT1JfTU9ERSl7aWYobW9kZU5hbWU9PSdBTExfTU9ERVMnKQotY29udGludWU7dmFyIG1vZGU9TU9VU0VfU0VMRUNUT1JfTU9ERVttb2RlTmFtZV07aWYoKHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfJm1vZGUpPT09MCkKLWNvbnRpbnVlO3RoaXMuYnV0dG9uc0VsXy5hcHBlbmRDaGlsZChjcmVhdGVCdXR0b25Gb3JNb2RlKG1vZGUpKTt9fSxnZXQgbW9kZSgpe3JldHVybiB0aGlzLmN1cnJlbnRNb2RlXzt9LHNldCBtb2RlKG5ld01vZGUpe2lmKG5ld01vZGUhPT11bmRlZmluZWQpe2lmKHR5cGVvZiBuZXdNb2RlIT09J251bWJlcicpCi10aHJvdyBuZXcgRXJyb3IoJ01vZGUgbXVzdCBiZSBhIG51bWJlcicpO2lmKChuZXdNb2RlJnRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfKT09PTApCi10aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzd2l0Y2ggdG8gdGhpcyBtb2RlLCBpdCBpcyBub3Qgc3VwcG9ydGVkJyk7aWYoYWxsTW9kZUluZm9bbmV3TW9kZV09PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBtb2RlJyk7fQotdmFyIG1vZGVJbmZvO2lmKHRoaXMuY3VycmVudE1vZGVfPT09bmV3TW9kZSkKLXJldHVybjtpZih0aGlzLmN1cnJlbnRNb2RlXyl7bW9kZUluZm89YWxsTW9kZUluZm9bdGhpcy5jdXJyZW50TW9kZV9dO3ZhciBidXR0b25FbD10aGlzLmJ1dHRvbnNFbF8ucXVlcnlTZWxlY3RvcignLicrbW9kZUluZm8uY2xhc3NOYW1lKTtpZihidXR0b25FbCkKLWJ1dHRvbkVsLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO2lmKHRoaXMuaXNJbnRlcmFjdGluZ18pe3ZhciBtb3VzZUV2ZW50PXRoaXMuY3JlYXRlRXZlbnRfKGFsbE1vZGVJbmZvW3RoaXMubW9kZV0uZXZlbnROYW1lcy5lbmQpO3RoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTt9Ci10ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcyxtb2RlSW5mby5ldmVudE5hbWVzLmV4aXQsdHJ1ZSk7fQotdGhpcy5jdXJyZW50TW9kZV89bmV3TW9kZTtpZih0aGlzLmN1cnJlbnRNb2RlXyl7bW9kZUluZm89YWxsTW9kZUluZm9bdGhpcy5jdXJyZW50TW9kZV9dO3ZhciBidXR0b25FbD10aGlzLmJ1dHRvbnNFbF8ucXVlcnlTZWxlY3RvcignLicrbW9kZUluZm8uY2xhc3NOYW1lKTtpZihidXR0b25FbCkKLWJ1dHRvbkVsLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO3RoaXMubW91c2VEb3duUG9zXy54PXRoaXMubW91c2VQb3NfLng7dGhpcy5tb3VzZURvd25Qb3NfLnk9dGhpcy5tb3VzZVBvc18ueTtpZighdGhpcy5pc0luQWx0ZXJuYXRpdmVNb2RlXykKLXRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLG1vZGVJbmZvLmV2ZW50TmFtZXMuZW50ZXIsdHJ1ZSk7aWYodGhpcy5pc0ludGVyYWN0aW5nXyl7dmFyIG1vdXNlRXZlbnQ9dGhpcy5jcmVhdGVFdmVudF8oYWxsTW9kZUluZm9bdGhpcy5tb2RlXS5ldmVudE5hbWVzLmJlZ2luKTt0aGlzLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7fX0KLWlmKHRoaXMuc2V0dGluZ3NLZXlfJiYhdGhpcy5pc0luQWx0ZXJuYXRpdmVNb2RlXykKLXRyLmIuU2V0dGluZ3Muc2V0KHRoaXMuc2V0dGluZ3NLZXlfKycubW9kZScsdGhpcy5tb2RlKTt9LHNldEtleUNvZGVGb3JNb2RlOmZ1bmN0aW9uKG1vZGUsa2V5Q29kZSl7aWYoKG1vZGUmdGhpcy5zdXBwb3J0ZWRNb2RlTWFza18pPT09MCkKLXRocm93IG5ldyBFcnJvcignTW9kZSBub3Qgc3VwcG9ydGVkJyk7dGhpcy5tb2RlVG9LZXlDb2RlTWFwX1ttb2RlXT1rZXlDb2RlO2lmKCF0aGlzLmJ1dHRvbnNFbF8pCi1yZXR1cm47dmFyIG1vZGVJbmZvPWFsbE1vZGVJbmZvW21vZGVdO3ZhciBidXR0b25FbD10aGlzLmJ1dHRvbnNFbF8ucXVlcnlTZWxlY3RvcignLicrbW9kZUluZm8uY2xhc3NOYW1lKTtpZihidXR0b25FbCl7YnV0dG9uRWwudGl0bGU9bW9kZUluZm8udGl0bGUrJyAoJytTdHJpbmcuZnJvbUNoYXJDb2RlKGtleUNvZGUpKycpJzt9fSxzZXRLZXlDb2RlQ29uZGl0aW9uOmZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLmtleUNvZGVDb25kaXRpb249Y2FsbGJhY2s7fSxzZXRDdXJyZW50TW91c2VQb3NGcm9tRXZlbnRfOmZ1bmN0aW9uKGUpe3RoaXMubW91c2VQb3NfLng9ZS5jbGllbnRYO3RoaXMubW91c2VQb3NfLnk9ZS5jbGllbnRZO30sY3JlYXRlRXZlbnRfOmZ1bmN0aW9uKGV2ZW50TmFtZSxzb3VyY2VFdmVudCl7dmFyIGV2ZW50PW5ldyB0ci5iLkV2ZW50KGV2ZW50TmFtZSx0cnVlKTtldmVudC5jbGllbnRYPXRoaXMubW91c2VQb3NfLng7ZXZlbnQuY2xpZW50WT10aGlzLm1vdXNlUG9zXy55O2V2ZW50LmRlbHRhWD10aGlzLm1vdXNlUG9zXy54LXRoaXMubW91c2VEb3duUG9zXy54O2V2ZW50LmRlbHRhWT10aGlzLm1vdXNlUG9zXy55LXRoaXMubW91c2VEb3duUG9zXy55O2V2ZW50Lm1vdXNlRG93blg9dGhpcy5tb3VzZURvd25Qb3NfLng7ZXZlbnQubW91c2VEb3duWT10aGlzLm1vdXNlRG93blBvc18ueTtldmVudC5kaWRQcmV2ZW50RGVmYXVsdD1mYWxzZTtldmVudC5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe2V2ZW50LmRpZFByZXZlbnREZWZhdWx0PXRydWU7aWYoc291cmNlRXZlbnQpCi1zb3VyY2VFdmVudC5wcmV2ZW50RGVmYXVsdCgpO307ZXZlbnQuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7c291cmNlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7fTtldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb249ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO307cmV0dXJuIGV2ZW50O30sb25Nb3VzZURvd25fOmZ1bmN0aW9uKGUpe2lmKGUuYnV0dG9uIT09MCkKLXJldHVybjt0aGlzLnNldEN1cnJlbnRNb3VzZVBvc0Zyb21FdmVudF8oZSk7dmFyIG1vdXNlRXZlbnQ9dGhpcy5jcmVhdGVFdmVudF8oYWxsTW9kZUluZm9bdGhpcy5tb2RlXS5ldmVudE5hbWVzLmJlZ2luLGUpO3RoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTt0aGlzLmlzSW50ZXJhY3RpbmdfPXRydWU7dGhpcy5pc0NsaWNrXz10cnVlO3RyLmIudWkudHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwKHRoaXMub25Nb3VzZU1vdmVfLHRoaXMub25Nb3VzZVVwXyk7fSxvbk1vdXNlTW92ZV86ZnVuY3Rpb24oZSl7dGhpcy5zZXRDdXJyZW50TW91c2VQb3NGcm9tRXZlbnRfKGUpO3ZhciBtb3VzZUV2ZW50PXRoaXMuY3JlYXRlRXZlbnRfKGFsbE1vZGVJbmZvW3RoaXMubW9kZV0uZXZlbnROYW1lcy51cGRhdGUsZSk7dGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpO2lmKHRoaXMuaXNJbnRlcmFjdGluZ18pCi10aGlzLmNoZWNrSXNDbGlja18oZSk7fSxvbk1vdXNlVXBfOmZ1bmN0aW9uKGUpe2lmKGUuYnV0dG9uIT09MCkKLXJldHVybjt2YXIgbW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhhbGxNb2RlSW5mb1t0aGlzLm1vZGVdLmV2ZW50TmFtZXMuZW5kLGUpO21vdXNlRXZlbnQuaXNDbGljaz10aGlzLmlzQ2xpY2tfO3RoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTtpZih0aGlzLmlzQ2xpY2tfJiYhbW91c2VFdmVudC5kaWRQcmV2ZW50RGVmYXVsdCkKLXRoaXMuZGlzcGF0Y2hDbGlja0V2ZW50c18oZSk7dGhpcy5pc0ludGVyYWN0aW5nXz1mYWxzZTt0aGlzLnVwZGF0ZUFsdGVybmF0aXZlTW9kZVN0YXRlXyhlKTt9LG9uQnV0dG9uTW91c2VEb3duXzpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTt9LG9uQnV0dG9uTW91c2VVcF86ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7fSxvbkJ1dHRvblByZXNzXzpmdW5jdGlvbihlKXt0aGlzLm1vZGVCZWZvcmVBbHRlcm5hdGl2ZU1vZGVBY3RpdmF0ZWRfPXVuZGVmaW5lZDt0aGlzLm1vZGU9ZS50YXJnZXQubW9kZTtlLnByZXZlbnREZWZhdWx0KCk7fSxvbktleURvd25fOmZ1bmN0aW9uKGUpe2lmKGUua2V5Q29kZT09PScgJy5jaGFyQ29kZUF0KDApKQotdGhpcy5zcGFjZVByZXNzZWRfPXRydWU7dGhpcy51cGRhdGVBbHRlcm5hdGl2ZU1vZGVTdGF0ZV8oZSk7fSxvbktleVVwXzpmdW5jdGlvbihlKXtpZihlLmtleUNvZGU9PT0nICcuY2hhckNvZGVBdCgwKSkKLXRoaXMuc3BhY2VQcmVzc2VkXz1mYWxzZTtpZih0aGlzLmtleUNvZGVDb25kaXRpb24hPXVuZGVmaW5lZCYmIXRoaXMua2V5Q29kZUNvbmRpdGlvbigpKXtyZXR1cm47fQotdmFyIGRpZEhhbmRsZUtleT1mYWxzZTt0ci5iLml0ZXJJdGVtcyh0aGlzLm1vZGVUb0tleUNvZGVNYXBfLGZ1bmN0aW9uKG1vZGVTdHIsa2V5Q29kZSl7aWYoZS5rZXlDb2RlPT09a2V5Q29kZSl7dGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXz11bmRlZmluZWQ7dmFyIG1vZGU9cGFyc2VJbnQobW9kZVN0cik7dGhpcy5tb2RlPW1vZGU7ZGlkSGFuZGxlS2V5PXRydWU7fX0sdGhpcyk7aWYoZGlkSGFuZGxlS2V5KXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTtyZXR1cm47fQotdGhpcy51cGRhdGVBbHRlcm5hdGl2ZU1vZGVTdGF0ZV8oZSk7fSx1cGRhdGVBbHRlcm5hdGl2ZU1vZGVTdGF0ZV86ZnVuY3Rpb24oZSl7dmFyIHNoaWZ0UHJlc3NlZD1lLnNoaWZ0S2V5O3ZhciBzcGFjZVByZXNzZWQ9dGhpcy5zcGFjZVByZXNzZWRfO3ZhciBjbWRPckN0cmxQcmVzc2VkPSh0ci5pc01hYyYmZS5tZXRhS2V5KXx8KCF0ci5pc01hYyYmZS5jdHJsS2V5KTt2YXIgc21tPXRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfO3ZhciBuZXdNb2RlO3ZhciBpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZT1mYWxzZTtpZihzaGlmdFByZXNzZWQmJih0aGlzLm1vZGlmaWVyVG9Nb2RlTWFwX1tNT0RJRklFUi5TSElGVF0mc21tKSE9PTApe25ld01vZGU9dGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU0hJRlRdO2lzTmV3TW9kZUFuQWx0ZXJuYXRpdmVNb2RlPXRydWU7fWVsc2UgaWYoc3BhY2VQcmVzc2VkJiYodGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU1BBQ0VdJnNtbSkhPT0wKXtuZXdNb2RlPXRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLlNQQUNFXTtpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZT10cnVlO31lbHNlIGlmKGNtZE9yQ3RybFByZXNzZWQmJih0aGlzLm1vZGlmaWVyVG9Nb2RlTWFwX1tNT0RJRklFUi5DTURfT1JfQ1RSTF0mc21tKSE9PTApe25ld01vZGU9dGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuQ01EX09SX0NUUkxdO2lzTmV3TW9kZUFuQWx0ZXJuYXRpdmVNb2RlPXRydWU7fWVsc2V7aWYodGhpcy5pc0luQWx0ZXJuYXRpdmVNb2RlXyl7bmV3TW9kZT10aGlzLm1vZGVCZWZvcmVBbHRlcm5hdGl2ZU1vZGVBY3RpdmF0ZWRfO2lzTmV3TW9kZUFuQWx0ZXJuYXRpdmVNb2RlPWZhbHNlO31lbHNle25ld01vZGU9dW5kZWZpbmVkO319Ci1pZih0aGlzLm1vZGU9PT1uZXdNb2RlfHxuZXdNb2RlPT09dW5kZWZpbmVkKQotcmV0dXJuO2lmKGlzTmV3TW9kZUFuQWx0ZXJuYXRpdmVNb2RlKQotdGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXz10aGlzLm1vZGU7dGhpcy5tb2RlPW5ld01vZGU7fSxnZXQgaXNJbkFsdGVybmF0aXZlTW9kZV8oKXtyZXR1cm4hIXRoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF87fSxzZXRNb2RpZmllckZvckFsdGVybmF0ZU1vZGU6ZnVuY3Rpb24obW9kZSxtb2RpZmllcil7dGhpcy5tb2RpZmllclRvTW9kZU1hcF9bbW9kaWZpZXJdPW1vZGU7fSxnZXQgcG9zKCl7cmV0dXJue3g6cGFyc2VJbnQodGhpcy5zdHlsZS5sZWZ0KSx5OnBhcnNlSW50KHRoaXMuc3R5bGUudG9wKX07fSxzZXQgcG9zKHBvcyl7cG9zPXRoaXMuY29uc3RyYWluUG9zaXRpb25Ub0JvdW5kc18ocG9zKTt0aGlzLnN0eWxlLmxlZnQ9cG9zLngrJ3B4Jzt0aGlzLnN0eWxlLnRvcD1wb3MueSsncHgnO2lmKHRoaXMuc2V0dGluZ3NLZXlfKQotdHIuYi5TZXR0aW5ncy5zZXQodGhpcy5zZXR0aW5nc0tleV8rJy5wb3MnLHRoaXMucG9zKTt9LGNvbnN0cmFpblBvc2l0aW9uVG9Cb3VuZHNfOmZ1bmN0aW9uKHBvcyl7dmFyIHBhcmVudD10aGlzLm9mZnNldFBhcmVudHx8ZG9jdW1lbnQuYm9keTt2YXIgcGFyZW50UmVjdD10ci5iLndpbmRvd1JlY3RGb3JFbGVtZW50KHBhcmVudCk7dmFyIHRvcD0wO3ZhciBib3R0b209cGFyZW50UmVjdC5oZWlnaHQtdGhpcy5vZmZzZXRIZWlnaHQ7dmFyIGxlZnQ9MDt2YXIgcmlnaHQ9cGFyZW50UmVjdC53aWR0aC10aGlzLm9mZnNldFdpZHRoO3ZhciByZXM9e307cmVzLng9TWF0aC5tYXgocG9zLngsbGVmdCk7cmVzLng9TWF0aC5taW4ocmVzLngscmlnaHQpO3Jlcy55PU1hdGgubWF4KHBvcy55LHRvcCk7cmVzLnk9TWF0aC5taW4ocmVzLnksYm90dG9tKTtyZXR1cm4gcmVzO30sb25EcmFnSGFuZGxlTW91c2VEb3duXzpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTt2YXIgbW91c2VEb3duUG9zPXt4OmUuY2xpZW50WC10aGlzLm9mZnNldExlZnQseTplLmNsaWVudFktdGhpcy5vZmZzZXRUb3B9O3RyLmIudWkudHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwKGZ1bmN0aW9uKGUpe3ZhciBwb3M9e307cG9zLng9ZS5jbGllbnRYLW1vdXNlRG93blBvcy54O3Bvcy55PWUuY2xpZW50WS1tb3VzZURvd25Qb3MueTt0aGlzLnBvcz1wb3M7fS5iaW5kKHRoaXMpKTt9LGNoZWNrSXNDbGlja186ZnVuY3Rpb24oZSl7aWYoIXRoaXMuaXNJbnRlcmFjdGluZ198fCF0aGlzLmlzQ2xpY2tfKQotcmV0dXJuO3ZhciBkZWx0YVg9dGhpcy5tb3VzZVBvc18ueC10aGlzLm1vdXNlRG93blBvc18ueDt2YXIgZGVsdGFZPXRoaXMubW91c2VQb3NfLnktdGhpcy5tb3VzZURvd25Qb3NfLnk7dmFyIG1pbkRpc3Q9TUlOX01PVVNFX1NFTEVDVElPTl9ESVNUQU5DRTtpZihkZWx0YVgqZGVsdGFYK2RlbHRhWSpkZWx0YVk+bWluRGlzdCptaW5EaXN0KQotdGhpcy5pc0NsaWNrXz1mYWxzZTt9LGRpc3BhdGNoQ2xpY2tFdmVudHNfOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmlzQ2xpY2tfKQotcmV0dXJuO3ZhciBldmVudE5hbWVzPWFsbE1vZGVJbmZvW01PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OXS5ldmVudE5hbWVzO3ZhciBtb3VzZUV2ZW50PXRoaXMuY3JlYXRlRXZlbnRfKGV2ZW50TmFtZXMuYmVnaW4pO3RoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTttb3VzZUV2ZW50PXRoaXMuY3JlYXRlRXZlbnRfKGV2ZW50TmFtZXMuZW5kKTt0aGlzLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7fX07cmV0dXJue01JTl9NT1VTRV9TRUxFQ1RJT05fRElTVEFOQ0U6TUlOX01PVVNFX1NFTEVDVElPTl9ESVNUQU5DRSxNb3VzZU1vZGVTZWxlY3RvcjpNb3VzZU1vZGVTZWxlY3RvcixNT1VTRV9TRUxFQ1RPUl9NT0RFOk1PVVNFX1NFTEVDVE9SX01PREUsTU9ESUZJRVI6TU9ESUZJRVJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXt2YXIgcGFsZXR0ZVJhdz10ci5iLnVpLmdldFJhd0NvbG9yUGFsZXR0ZSgpO3ZhciBwYWxldHRlPXRyLmIudWkuZ2V0Q29sb3JQYWxldHRlKCk7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO3ZhciBFdmVudFByZXNlbnRlcj17Z2V0U2VsZWN0YWJsZUl0ZW1Db2xvcjpmdW5jdGlvbihpdGVtKXt2YXIgY29sb3JJZD1pdGVtLmNvbG9ySWQrdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhpdGVtKTtyZXR1cm4gcGFsZXR0ZVtjb2xvcklkXTt9LGdldENvbG9ySWRPZmZzZXRfOmZ1bmN0aW9uKGV2ZW50KXtpZihldmVudC5zZWxlY3Rpb25TdGF0ZT09PVNlbGVjdGlvblN0YXRlLlNFTEVDVEVEKQotcmV0dXJuIHRyLmIudWkucGFsZXR0ZVByb3BlcnRpZXMuaGlnaGxpZ2h0SWRCb29zdDtlbHNlIGlmKGV2ZW50LnNlbGVjdGlvblN0YXRlPT09U2VsZWN0aW9uU3RhdGUuRElNTUVEKQotcmV0dXJuIHRyLmIudWkucGFsZXR0ZVByb3BlcnRpZXMuZGVzYXR1cmF0ZUlkQm9vc3Q7cmV0dXJuIDA7fSxnZXRUZXh0Q29sb3I6ZnVuY3Rpb24oZXZlbnQpe2lmKGV2ZW50LnNlbGVjdGlvblN0YXRlPT09U2VsZWN0aW9uU3RhdGUuRElNTUVEKQorZnVuY3Rpb24gYXNIVE1MT3JUZXh0Tm9kZSh2YWx1ZSxvcHRfb3duZXJEb2N1bWVudCl7aWYodmFsdWUgaW5zdGFuY2VvZiBOb2RlKQorcmV0dXJuIHZhbHVlO3ZhciBvd25lckRvY3VtZW50PW9wdF9vd25lckRvY3VtZW50fHxkb2N1bWVudDtyZXR1cm4gb3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh2YWx1ZSk7fQorcmV0dXJue2NyZWF0ZVNwYW46Y3JlYXRlU3BhbixjcmVhdGVEaXY6Y3JlYXRlRGl2LGNyZWF0ZVNjb3BlZFN0eWxlOmNyZWF0ZVNjb3BlZFN0eWxlLGNyZWF0ZVNlbGVjdG9yOmNyZWF0ZVNlbGVjdG9yLGNyZWF0ZU9wdGlvbkdyb3VwOmNyZWF0ZU9wdGlvbkdyb3VwLGNyZWF0ZUNoZWNrQm94OmNyZWF0ZUNoZWNrQm94LGlzRWxlbWVudEF0dGFjaGVkVG9Eb2N1bWVudDppc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQsYXNIVE1MT3JUZXh0Tm9kZTphc0hUTUxPclRleHROb2RlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7dmFyIHBhbGV0dGVSYXc9dHIudWkuYi5nZXRSYXdDb2xvclBhbGV0dGUoKTt2YXIgcGFsZXR0ZT10ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpO3ZhciBTZWxlY3Rpb25TdGF0ZT10ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTt2YXIgRXZlbnRQcmVzZW50ZXI9e2dldFNlbGVjdGFibGVJdGVtQ29sb3I6ZnVuY3Rpb24oaXRlbSl7dmFyIGNvbG9ySWQ9aXRlbS5jb2xvcklkK3RoaXMuZ2V0Q29sb3JJZE9mZnNldF8oaXRlbSk7cmV0dXJuIHBhbGV0dGVbY29sb3JJZF07fSxnZXRDb2xvcklkT2Zmc2V0XzpmdW5jdGlvbihldmVudCl7aWYoZXZlbnQuc2VsZWN0aW9uU3RhdGU9PT1TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCkKK3JldHVybiB0ci51aS5iLnBhbGV0dGVQcm9wZXJ0aWVzLmhpZ2hsaWdodElkQm9vc3Q7ZWxzZSBpZihldmVudC5zZWxlY3Rpb25TdGF0ZT09PVNlbGVjdGlvblN0YXRlLkRJTU1FRCkKK3JldHVybiB0ci51aS5iLnBhbGV0dGVQcm9wZXJ0aWVzLmRlc2F0dXJhdGVJZEJvb3N0O3JldHVybiAwO30sZ2V0VGV4dENvbG9yOmZ1bmN0aW9uKGV2ZW50KXtpZihldmVudC5zZWxlY3Rpb25TdGF0ZT09PVNlbGVjdGlvblN0YXRlLkRJTU1FRCkKIHJldHVybidyZ2IoNjAsNjAsNjApJztyZXR1cm4ncmdiKDAsMCwwKSc7fSxnZXRTbGljZUNvbG9ySWQ6ZnVuY3Rpb24oc2xpY2Upe3JldHVybiBzbGljZS5jb2xvcklkK3RoaXMuZ2V0Q29sb3JJZE9mZnNldF8oc2xpY2UpO30sZ2V0U2xpY2VBbHBoYTpmdW5jdGlvbihzbGljZSxhc3luYyl7dmFyIGFscGhhPTE7aWYoYXN5bmMpCi1hbHBoYSo9MC4zO3JldHVybiBhbHBoYTt9LGdldEluc3RhbnRTbGljZUNvbG9yOmZ1bmN0aW9uKGluc3RhbnQpe3ZhciBjb2xvcklkPWluc3RhbnQuY29sb3JJZCt0aGlzLmdldENvbG9ySWRPZmZzZXRfKGluc3RhbnQpO3JldHVybiB0ci5iLnVpLmNvbG9yVG9SR0JBU3RyaW5nKHBhbGV0dGVSYXdbY29sb3JJZF0sMS4wKTt9LGdldE9iamVjdEluc3RhbmNlQ29sb3I6ZnVuY3Rpb24oaW5zdGFuY2Upe3ZhciBjb2xvcklkPWluc3RhbmNlLmNvbG9ySWQrdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhpbnN0YW5jZSk7cmV0dXJuIHRyLmIudWkuY29sb3JUb1JHQkFTdHJpbmcocGFsZXR0ZVJhd1tjb2xvcklkXSwwLjI1KTt9LGdldE9iamVjdFNuYXBzaG90Q29sb3I6ZnVuY3Rpb24oc25hcHNob3Qpe3ZhciBjb2xvcklkPXNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNvbG9ySWQrdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhzbmFwc2hvdCk7cmV0dXJuIHBhbGV0dGVbY29sb3JJZF07fSxnZXRDb3VudGVyU2VyaWVzQ29sb3I6ZnVuY3Rpb24oY29sb3JJZCxzZWxlY3Rpb25TdGF0ZSxvcHRfYWxwaGFNdWx0aXBsaWVyKXt2YXIgZXZlbnQ9e3NlbGVjdGlvblN0YXRlOnNlbGVjdGlvblN0YXRlfTtyZXR1cm4gdHIuYi51aS5jb2xvclRvUkdCQVN0cmluZyhwYWxldHRlUmF3W2NvbG9ySWQrdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhldmVudCldLChvcHRfYWxwaGFNdWx0aXBsaWVyIT09dW5kZWZpbmVkP29wdF9hbHBoYU11bHRpcGxpZXI6MS4wKSk7fSxnZXRCYXJTbmFwc2hvdENvbG9yOmZ1bmN0aW9uKHNuYXBzaG90LG9mZnNldCl7dmFyIGNvbG9ySWQ9KHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNvbG9ySWQrb2Zmc2V0KSV0ci5iLnVpLnBhbGV0dGVQcm9wZXJ0aWVzLm51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHM7Y29sb3JJZCs9dGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhzbmFwc2hvdCk7cmV0dXJuIHRyLmIudWkuY29sb3JUb1JHQkFTdHJpbmcocGFsZXR0ZVJhd1tjb2xvcklkXSwxLjApO319O3JldHVybntFdmVudFByZXNlbnRlcjpFdmVudFByZXNlbnRlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe3ZhciBlbGlkZWRUaXRsZUNhY2hlRGljdD17fTt2YXIgZWxpZGVkVGl0bGVDYWNoZT1uZXcgRWxpZGVkVGl0bGVDYWNoZSgpO2Z1bmN0aW9uIEVsaWRlZFRpdGxlQ2FjaGUoKXt0aGlzLnRleHRXaWR0aE1hcD17fTt9CithbHBoYSo9MC4zO3JldHVybiBhbHBoYTt9LGdldEluc3RhbnRTbGljZUNvbG9yOmZ1bmN0aW9uKGluc3RhbnQpe3ZhciBjb2xvcklkPWluc3RhbnQuY29sb3JJZCt0aGlzLmdldENvbG9ySWRPZmZzZXRfKGluc3RhbnQpO3JldHVybiB0ci51aS5iLmNvbG9yVG9SR0JBU3RyaW5nKHBhbGV0dGVSYXdbY29sb3JJZF0sMS4wKTt9LGdldE9iamVjdEluc3RhbmNlQ29sb3I6ZnVuY3Rpb24oaW5zdGFuY2Upe3ZhciBjb2xvcklkPWluc3RhbmNlLmNvbG9ySWQrdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhpbnN0YW5jZSk7cmV0dXJuIHRyLnVpLmIuY29sb3JUb1JHQkFTdHJpbmcocGFsZXR0ZVJhd1tjb2xvcklkXSwwLjI1KTt9LGdldE9iamVjdFNuYXBzaG90Q29sb3I6ZnVuY3Rpb24oc25hcHNob3Qpe3ZhciBjb2xvcklkPXNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNvbG9ySWQrdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhzbmFwc2hvdCk7cmV0dXJuIHBhbGV0dGVbY29sb3JJZF07fSxnZXRDb3VudGVyU2VyaWVzQ29sb3I6ZnVuY3Rpb24oY29sb3JJZCxzZWxlY3Rpb25TdGF0ZSxvcHRfYWxwaGFNdWx0aXBsaWVyKXt2YXIgZXZlbnQ9e3NlbGVjdGlvblN0YXRlOnNlbGVjdGlvblN0YXRlfTtyZXR1cm4gdHIudWkuYi5jb2xvclRvUkdCQVN0cmluZyhwYWxldHRlUmF3W2NvbG9ySWQrdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhldmVudCldLChvcHRfYWxwaGFNdWx0aXBsaWVyIT09dW5kZWZpbmVkP29wdF9hbHBoYU11bHRpcGxpZXI6MS4wKSk7fSxnZXRCYXJTbmFwc2hvdENvbG9yOmZ1bmN0aW9uKHNuYXBzaG90LG9mZnNldCl7dmFyIGNvbG9ySWQ9KHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNvbG9ySWQrb2Zmc2V0KSV0ci51aS5iLnBhbGV0dGVQcm9wZXJ0aWVzLm51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHM7Y29sb3JJZCs9dGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhzbmFwc2hvdCk7cmV0dXJuIHRyLnVpLmIuY29sb3JUb1JHQkFTdHJpbmcocGFsZXR0ZVJhd1tjb2xvcklkXSwxLjApO319O3JldHVybntFdmVudFByZXNlbnRlcjpFdmVudFByZXNlbnRlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5iJyxmdW5jdGlvbigpe3ZhciBlbGlkZWRUaXRsZUNhY2hlRGljdD17fTt2YXIgZWxpZGVkVGl0bGVDYWNoZT1uZXcgRWxpZGVkVGl0bGVDYWNoZSgpO2Z1bmN0aW9uIEVsaWRlZFRpdGxlQ2FjaGUoKXt0aGlzLnRleHRXaWR0aE1hcD17fTt9CiBFbGlkZWRUaXRsZUNhY2hlLnByb3RvdHlwZT17Z2V0OmZ1bmN0aW9uKGN0eCxwaXhXaWR0aCx0aXRsZSx3aWR0aCxzbGljZUR1cmF0aW9uKXt2YXIgZWxpZGVkRGljdD1lbGlkZWRUaXRsZUNhY2hlRGljdFt0aXRsZV07aWYoIWVsaWRlZERpY3Qpe2VsaWRlZERpY3Q9e307ZWxpZGVkVGl0bGVDYWNoZURpY3RbdGl0bGVdPWVsaWRlZERpY3Q7fQogdmFyIGVsaWRlZERpY3RGb3JQaXhXaWR0aD1lbGlkZWREaWN0W3BpeFdpZHRoXTtpZighZWxpZGVkRGljdEZvclBpeFdpZHRoKXtlbGlkZWREaWN0W3BpeFdpZHRoXT17fTtlbGlkZWREaWN0Rm9yUGl4V2lkdGg9ZWxpZGVkRGljdFtwaXhXaWR0aF07fQogdmFyIHN0cmluZ1dpZHRoUGFpcj1lbGlkZWREaWN0Rm9yUGl4V2lkdGhbc2xpY2VEdXJhdGlvbl07aWYoc3RyaW5nV2lkdGhQYWlyPT09dW5kZWZpbmVkKXt2YXIgbmV3dGl0bGU9dGl0bGU7dmFyIGVsaWRlZD1mYWxzZTt3aGlsZSh0aGlzLmxhYmVsV2lkdGhXb3JsZChjdHgsbmV3dGl0bGUscGl4V2lkdGgpPnNsaWNlRHVyYXRpb24pe2lmKG5ld3RpdGxlLmxlbmd0aCowLjc1PDEpCkBAIC0zMTAxLDE0ICsyOTg3LDE0IEBACiBuZXd0aXRsZT1uZXd0aXRsZS5zdWJzdHJpbmcoMCxuZXd0aXRsZS5sZW5ndGgtMykrJy4uLic7c3RyaW5nV2lkdGhQYWlyPW5ldyBFbGlkZWRTdHJpbmdXaWR0aFBhaXIobmV3dGl0bGUsdGhpcy5sYWJlbFdpZHRoKGN0eCxuZXd0aXRsZSkpO2VsaWRlZERpY3RGb3JQaXhXaWR0aFtzbGljZUR1cmF0aW9uXT1zdHJpbmdXaWR0aFBhaXI7fQogcmV0dXJuIHN0cmluZ1dpZHRoUGFpcjt9LHF1aWNrTWVhc3VyZVRleHRfOmZ1bmN0aW9uKGN0eCx0ZXh0KXt2YXIgdz10aGlzLnRleHRXaWR0aE1hcFt0ZXh0XTtpZighdyl7dz1jdHgubWVhc3VyZVRleHQodGV4dCkud2lkdGg7dGhpcy50ZXh0V2lkdGhNYXBbdGV4dF09dzt9CiByZXR1cm4gdzt9LGxhYmVsV2lkdGg6ZnVuY3Rpb24oY3R4LHRpdGxlKXtyZXR1cm4gdGhpcy5xdWlja01lYXN1cmVUZXh0XyhjdHgsdGl0bGUpKzI7fSxsYWJlbFdpZHRoV29ybGQ6ZnVuY3Rpb24oY3R4LHRpdGxlLHBpeFdpZHRoKXtyZXR1cm4gdGhpcy5sYWJlbFdpZHRoKGN0eCx0aXRsZSkqcGl4V2lkdGg7fX07ZnVuY3Rpb24gRWxpZGVkU3RyaW5nV2lkdGhQYWlyKHN0cmluZyx3aWR0aCl7dGhpcy5zdHJpbmc9c3RyaW5nO3RoaXMud2lkdGg9d2lkdGg7fQotcmV0dXJue0VsaWRlZFRpdGxlQ2FjaGU6RWxpZGVkVGl0bGVDYWNoZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe3ZhciBlbGlkZWRUaXRsZUNhY2hlPW5ldyB0ci5jLkVsaWRlZFRpdGxlQ2FjaGUoKTt2YXIgcGFsZXR0ZT10ci5iLnVpLmdldENvbG9yUGFsZXR0ZSgpO3ZhciBFdmVudFByZXNlbnRlcj10ci5jLkV2ZW50UHJlc2VudGVyO3ZhciBibGFja0NvbG9ySWQ9dHIuYi51aS5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdibGFjaycpO3ZhciBUSElOX1NMSUNFX0hFSUdIVD00O3ZhciBTTElDRV9XQUlUSU5HX1dJRFRIX0RSQVdfVEhSRVNIT0xEPTM7dmFyIFNMSUNFX0FDVElWRV9XSURUSF9EUkFXX1RIUkVTSE9MRD0xO3ZhciBTSE9VTERfRUxJREVfVEVYVD10cnVlO2Z1bmN0aW9uIGRyYXdMaW5lKGN0eCx4MSx5MSx4Mix5Mil7Y3R4Lm1vdmVUbyh4MSx5MSk7Y3R4LmxpbmVUbyh4Mix5Mik7fQorcmV0dXJue0VsaWRlZFRpdGxlQ2FjaGU6RWxpZGVkVGl0bGVDYWNoZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5iJyxmdW5jdGlvbigpe3ZhciBlbGlkZWRUaXRsZUNhY2hlPW5ldyB0ci51aS5iLkVsaWRlZFRpdGxlQ2FjaGUoKTt2YXIgcGFsZXR0ZT10ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpO3ZhciBFdmVudFByZXNlbnRlcj10ci51aS5iLkV2ZW50UHJlc2VudGVyO3ZhciBibGFja0NvbG9ySWQ9dHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdibGFjaycpO3ZhciBUSElOX1NMSUNFX0hFSUdIVD00O3ZhciBTTElDRV9XQUlUSU5HX1dJRFRIX0RSQVdfVEhSRVNIT0xEPTM7dmFyIFNMSUNFX0FDVElWRV9XSURUSF9EUkFXX1RIUkVTSE9MRD0xO3ZhciBTSE9VTERfRUxJREVfVEVYVD10cnVlO2Z1bmN0aW9uIGRyYXdMaW5lKGN0eCx4MSx5MSx4Mix5Mil7Y3R4Lm1vdmVUbyh4MSx5MSk7Y3R4LmxpbmVUbyh4Mix5Mik7fQogZnVuY3Rpb24gZHJhd1RyaWFuZ2xlKGN0eCx4MSx5MSx4Mix5Mix4Myx5Myl7Y3R4LmJlZ2luUGF0aCgpO2N0eC5tb3ZlVG8oeDEseTEpO2N0eC5saW5lVG8oeDIseTIpO2N0eC5saW5lVG8oeDMseTMpO2N0eC5jbG9zZVBhdGgoKTt9CiBmdW5jdGlvbiBkcmF3QXJyb3coY3R4LHgxLHkxLHgyLHkyLGFycm93TGVuZ3RoLGFycm93V2lkdGgpe3ZhciBkeD14Mi14MTt2YXIgZHk9eTIteTE7dmFyIGxlbj1NYXRoLnNxcnQoZHgqZHgrZHkqZHkpO3ZhciBwZXJjPShsZW4tYXJyb3dMZW5ndGgpL2xlbjt2YXIgYng9eDErcGVyYypkeDt2YXIgYnk9eTErcGVyYypkeTt2YXIgdXg9ZHgvbGVuO3ZhciB1eT1keS9sZW47dmFyIGF4PXV5KmFycm93V2lkdGg7dmFyIGF5PS11eCphcnJvd1dpZHRoO2N0eC5iZWdpblBhdGgoKTtkcmF3TGluZShjdHgseDEseTEseDIseTIpO2N0eC5zdHJva2UoKTtkcmF3VHJpYW5nbGUoY3R4LGJ4K2F4LGJ5K2F5LHgyLHkyLGJ4LWF4LGJ5LWF5KTtjdHguZmlsbCgpO30KIGZ1bmN0aW9uIGRyYXdTbGljZXMoY3R4LGR0LHZpZXdMV29ybGQsdmlld1JXb3JsZCx2aWV3SGVpZ2h0LHNsaWNlcyxhc3luYyl7dmFyIHBpeGVsUmF0aW89d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIHBpeFdpZHRoPWR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTt2YXIgaGVpZ2h0PXZpZXdIZWlnaHQqcGl4ZWxSYXRpbzt2YXIgZGFya1JlY3RIZWlnaHQ9VEhJTl9TTElDRV9IRUlHSFQqcGl4ZWxSYXRpbztpZihoZWlnaHQ8ZGFya1JlY3RIZWlnaHQpCi1kYXJrUmVjdEhlaWdodD0wO3ZhciBsaWdodFJlY3RIZWlnaHQ9aGVpZ2h0LWRhcmtSZWN0SGVpZ2h0O2N0eC5zYXZlKCk7ZHQuYXBwbHlUcmFuc2Zvcm1Ub0NhbnZhcyhjdHgpO3ZhciByZWN0PW5ldyB0ci5jLkZhc3RSZWN0UmVuZGVyZXIoY3R4LDIqcGl4V2lkdGgsMipwaXhXaWR0aCxwYWxldHRlKTtyZWN0LnNldFlhbmRIKDAsaGVpZ2h0KTt2YXIgbG93U2xpY2U9dHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KHNsaWNlcyxmdW5jdGlvbihzbGljZSl7cmV0dXJuIHNsaWNlLnN0YXJ0K3NsaWNlLmR1cmF0aW9uO30sdmlld0xXb3JsZCk7dmFyIGhhZFRvcExldmVsPWZhbHNlO2Zvcih2YXIgaT1sb3dTbGljZTtpPHNsaWNlcy5sZW5ndGg7KytpKXt2YXIgc2xpY2U9c2xpY2VzW2ldO3ZhciB4PXNsaWNlLnN0YXJ0O2lmKHg+dmlld1JXb3JsZCkKK2RhcmtSZWN0SGVpZ2h0PTA7dmFyIGxpZ2h0UmVjdEhlaWdodD1oZWlnaHQtZGFya1JlY3RIZWlnaHQ7Y3R4LnNhdmUoKTtkdC5hcHBseVRyYW5zZm9ybVRvQ2FudmFzKGN0eCk7dmFyIHJlY3Q9bmV3IHRyLnVpLmIuRmFzdFJlY3RSZW5kZXJlcihjdHgsMipwaXhXaWR0aCwyKnBpeFdpZHRoLHBhbGV0dGUpO3JlY3Quc2V0WWFuZEgoMCxoZWlnaHQpO3ZhciBsb3dTbGljZT10ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoc2xpY2VzLGZ1bmN0aW9uKHNsaWNlKXtyZXR1cm4gc2xpY2Uuc3RhcnQrc2xpY2UuZHVyYXRpb247fSx2aWV3TFdvcmxkKTt2YXIgaGFkVG9wTGV2ZWw9ZmFsc2U7Zm9yKHZhciBpPWxvd1NsaWNlO2k8c2xpY2VzLmxlbmd0aDsrK2kpe3ZhciBzbGljZT1zbGljZXNbaV07dmFyIHg9c2xpY2Uuc3RhcnQ7aWYoeD52aWV3UldvcmxkKQogYnJlYWs7dmFyIHc9cGl4V2lkdGg7aWYoc2xpY2UuZHVyYXRpb24+MCl7dz1NYXRoLm1heChzbGljZS5kdXJhdGlvbiwwLjAwMDAwMSk7aWYodzxwaXhXaWR0aCkKIHc9cGl4V2lkdGg7fQotdmFyIGNvbG9ySWQ9RXZlbnRQcmVzZW50ZXIuZ2V0U2xpY2VDb2xvcklkKHNsaWNlKTt2YXIgYWxwaGE9RXZlbnRQcmVzZW50ZXIuZ2V0U2xpY2VBbHBoYShzbGljZSxhc3luYyk7dmFyIGxpZ2h0QWxwaGE9YWxwaGEqMC43MDtpZihzbGljZS5pc1RvcExldmVsKXtyZWN0LnNldFlhbmRIKDMsaGVpZ2h0LTMpO2hhZFRvcExldmVsPXRydWU7fWVsc2V7cmVjdC5zZXRZYW5kSCgwLGhlaWdodCk7fQordmFyIGNvbG9ySWQ9RXZlbnRQcmVzZW50ZXIuZ2V0U2xpY2VDb2xvcklkKHNsaWNlKTt2YXIgYWxwaGE9RXZlbnRQcmVzZW50ZXIuZ2V0U2xpY2VBbHBoYShzbGljZSxhc3luYyk7dmFyIGxpZ2h0QWxwaGE9YWxwaGEqMC43MDtpZihhc3luYyYmc2xpY2UuaXNUb3BMZXZlbCl7cmVjdC5zZXRZYW5kSCgzLGhlaWdodC0zKTtoYWRUb3BMZXZlbD10cnVlO31lbHNle3JlY3Quc2V0WWFuZEgoMCxoZWlnaHQpO30KIGlmKCFzbGljZS5jcHVEdXJhdGlvbil7cmVjdC5maWxsUmVjdCh4LHcsY29sb3JJZCxhbHBoYSk7Y29udGludWU7fQogdmFyIGFjdGl2ZVdpZHRoPXcqKHNsaWNlLmNwdUR1cmF0aW9uL3NsaWNlLmR1cmF0aW9uKTt2YXIgd2FpdGluZ1dpZHRoPXctYWN0aXZlV2lkdGg7aWYoYWN0aXZlV2lkdGg8U0xJQ0VfQUNUSVZFX1dJRFRIX0RSQVdfVEhSRVNIT0xEKnBpeFdpZHRoKXthY3RpdmVXaWR0aD0wO3dhaXRpbmdXaWR0aD13O30KIGlmKHdhaXRpbmdXaWR0aDxTTElDRV9XQUlUSU5HX1dJRFRIX0RSQVdfVEhSRVNIT0xEKnBpeFdpZHRoKXthY3RpdmVXaWR0aD13O3dhaXRpbmdXaWR0aD0wO30KQEAgLTMxMzEsNyArMzAxNyw3IEBACiAoc2xpY2UuZGlkTm90RmluaXNoPycgKERpZCBOb3QgRmluaXNoKSc6JycpO3ZhciBkcmF3blRpdGxlPXRpdGxlO3ZhciBkcmF3bldpZHRoPWVsaWRlZFRpdGxlQ2FjaGUubGFiZWxXaWR0aChjdHgsZHJhd25UaXRsZSk7dmFyIGZ1bGxMYWJlbFdpZHRoPWVsaWRlZFRpdGxlQ2FjaGUubGFiZWxXaWR0aFdvcmxkKGN0eCxkcmF3blRpdGxlLHBpeFdpZHRoKTtpZihTSE9VTERfRUxJREVfVEVYVCYmZnVsbExhYmVsV2lkdGg+c2xpY2UuZHVyYXRpb24pe3ZhciBlbGlkZWRWYWx1ZXM9ZWxpZGVkVGl0bGVDYWNoZS5nZXQoY3R4LHBpeFdpZHRoLGRyYXduVGl0bGUsZHJhd25XaWR0aCxzbGljZS5kdXJhdGlvbik7ZHJhd25UaXRsZT1lbGlkZWRWYWx1ZXMuc3RyaW5nO2RyYXduV2lkdGg9ZWxpZGVkVmFsdWVzLndpZHRoO30KIGlmKGRyYXduV2lkdGgqcGl4V2lkdGg8c2xpY2UuZHVyYXRpb24pe2N0eC5maWxsU3R5bGU9RXZlbnRQcmVzZW50ZXIuZ2V0VGV4dENvbG9yKHNsaWNlKTt2YXIgY1g9ZHQueFdvcmxkVG9WaWV3KHNsaWNlLnN0YXJ0KzAuNSpzbGljZS5kdXJhdGlvbik7Y3R4LmZpbGxUZXh0KGRyYXduVGl0bGUsY1gsY1ksZHJhd25XaWR0aCk7fX0KIGN0eC5yZXN0b3JlKCk7fQotcmV0dXJue2RyYXdTbGljZXM6ZHJhd1NsaWNlcyxkcmF3SW5zdGFudFNsaWNlc0FzTGluZXM6ZHJhd0luc3RhbnRTbGljZXNBc0xpbmVzLGRyYXdMYWJlbHM6ZHJhd0xhYmVscyxkcmF3TGluZTpkcmF3TGluZSxkcmF3VHJpYW5nbGU6ZHJhd1RyaWFuZ2xlLGRyYXdBcnJvdzpkcmF3QXJyb3csZWxpZGVkVGl0bGVDYWNoZV86ZWxpZGVkVGl0bGVDYWNoZSxUSElOX1NMSUNFX0hFSUdIVDpUSElOX1NMSUNFX0hFSUdIVH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFNuYXBJbmRpY2F0b3IoeSxoZWlnaHQpe3RoaXMueT15O3RoaXMuaGVpZ2h0PWhlaWdodDt9CityZXR1cm57ZHJhd1NsaWNlczpkcmF3U2xpY2VzLGRyYXdJbnN0YW50U2xpY2VzQXNMaW5lczpkcmF3SW5zdGFudFNsaWNlc0FzTGluZXMsZHJhd0xhYmVsczpkcmF3TGFiZWxzLGRyYXdMaW5lOmRyYXdMaW5lLGRyYXdUcmlhbmdsZTpkcmF3VHJpYW5nbGUsZHJhd0Fycm93OmRyYXdBcnJvdyxlbGlkZWRUaXRsZUNhY2hlXzplbGlkZWRUaXRsZUNhY2hlLFRISU5fU0xJQ0VfSEVJR0hUOlRISU5fU0xJQ0VfSEVJR0hUfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFNuYXBJbmRpY2F0b3IoeSxoZWlnaHQpe3RoaXMueT15O3RoaXMuaGVpZ2h0PWhlaWdodDt9CiBmdW5jdGlvbiBUaW1lbGluZUludGVyZXN0UmFuZ2UodnApe3RoaXMudmlld3BvcnRfPXZwO3RoaXMucmFuZ2VfPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5sZWZ0U2VsZWN0ZWRfPWZhbHNlO3RoaXMucmlnaHRTZWxlY3RlZF89ZmFsc2U7dGhpcy5sZWZ0U25hcEluZGljYXRvcl89dW5kZWZpbmVkO3RoaXMucmlnaHRTbmFwSW5kaWNhdG9yXz11bmRlZmluZWQ7fQogVGltZWxpbmVJbnRlcmVzdFJhbmdlLnByb3RvdHlwZT17Z2V0IGlzRW1wdHkoKXtyZXR1cm4gdGhpcy5yYW5nZV8uaXNFbXB0eTt9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5yYW5nZV8ucmVzZXQoKTt0aGlzLmxlZnRTZWxlY3RlZF89ZmFsc2U7dGhpcy5yaWdodFNlbGVjdGVkXz1mYWxzZTt0aGlzLmxlZnRTbmFwSW5kaWNhdG9yXz11bmRlZmluZWQ7dGhpcy5yaWdodFNuYXBJbmRpY2F0b3JfPXVuZGVmaW5lZDt0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxnZXQgbWluKCl7cmV0dXJuIHRoaXMucmFuZ2VfLm1pbjt9LHNldCBtaW4obWluKXt0aGlzLnJhbmdlXy5taW49bWluO3RoaXMudmlld3BvcnRfLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTt9LGdldCBtYXgoKXtyZXR1cm4gdGhpcy5yYW5nZV8ubWF4O30sc2V0IG1heChtYXgpe3RoaXMucmFuZ2VfLm1heD1tYXg7dGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpO30sc2V0OmZ1bmN0aW9uKHJhbmdlKXt0aGlzLnJhbmdlXy5yZXNldCgpO3RoaXMucmFuZ2VfLmFkZFJhbmdlKHJhbmdlKTt0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxzZXRNaW5BbmRNYXg6ZnVuY3Rpb24obWluLG1heCl7dGhpcy5yYW5nZV8ubWluPW1pbjt0aGlzLnJhbmdlXy5tYXg9bWF4O3RoaXMudmlld3BvcnRfLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTt9LGdldCByYW5nZSgpe3JldHVybiB0aGlzLnJhbmdlXy5yYW5nZTt9LGFzUmFuZ2VPYmplY3Q6ZnVuY3Rpb24oKXt2YXIgcmFuZ2U9bmV3IHRyLmIuUmFuZ2UoKTtyYW5nZS5hZGRSYW5nZSh0aGlzLnJhbmdlXyk7cmV0dXJuIHJhbmdlO30sZ2V0IGxlZnRTZWxlY3RlZCgpe3JldHVybiB0aGlzLmxlZnRTZWxlY3RlZF87fSxzZXQgbGVmdFNlbGVjdGVkKGxlZnRTZWxlY3RlZCl7aWYodGhpcy5sZWZ0U2VsZWN0ZWRfPT1sZWZ0U2VsZWN0ZWQpCiByZXR1cm47dGhpcy5sZWZ0U2VsZWN0ZWRfPWxlZnRTZWxlY3RlZDt0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxnZXQgcmlnaHRTZWxlY3RlZCgpe3JldHVybiB0aGlzLnJpZ2h0U2VsZWN0ZWRfO30sc2V0IHJpZ2h0U2VsZWN0ZWQocmlnaHRTZWxlY3RlZCl7aWYodGhpcy5yaWdodFNlbGVjdGVkXz09cmlnaHRTZWxlY3RlZCkKQEAgLTMxNDAsNDggKzMwMjYsMzIgQEAKIGlmKG1hcmtlclJXb3JsZDx2aWV3UldvcmxkKXtjdHguZmlsbFJlY3QobWFya2VyUlZpZXcsMCxkdC54V29ybGRUb1ZpZXcodmlld1JXb3JsZCksY3R4LmNhbnZhcy5oZWlnaHQpO30KIHZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO2N0eC5saW5lV2lkdGg9TWF0aC5yb3VuZChwaXhlbFJhdGlvKTtpZih0aGlzLnJhbmdlXy5yYW5nZT4wKXt0aGlzLmRyYXdMaW5lXyhjdHgsdmlld0xXb3JsZCx2aWV3UldvcmxkLGN0eC5jYW52YXMuaGVpZ2h0LHRoaXMubWluLHRoaXMubGVmdFNlbGVjdGVkXyk7dGhpcy5kcmF3TGluZV8oY3R4LHZpZXdMV29ybGQsdmlld1JXb3JsZCxjdHguY2FudmFzLmhlaWdodCx0aGlzLm1heCx0aGlzLnJpZ2h0U2VsZWN0ZWRfKTt9ZWxzZXt0aGlzLmRyYXdMaW5lXyhjdHgsdmlld0xXb3JsZCx2aWV3UldvcmxkLGN0eC5jYW52YXMuaGVpZ2h0LHRoaXMubWluLHRoaXMubGVmdFNlbGVjdGVkX3x8dGhpcy5yaWdodFNlbGVjdGVkXyk7fQogY3R4LmxpbmVXaWR0aD0xO30sZHJhd0xpbmVfOmZ1bmN0aW9uKGN0eCx2aWV3TFdvcmxkLHZpZXdSV29ybGQsaGVpZ2h0LHRzLHNlbGVjdGVkKXtpZih0czx2aWV3TFdvcmxkfHx0cz49dmlld1JXb3JsZCkKLXJldHVybjt2YXIgZHQ9dGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHZpZXdYPU1hdGgucm91bmQoZHQueFdvcmxkVG9WaWV3KHRzKSk7Y3R4LnNhdmUoKTtjdHgudHJhbnNsYXRlKChNYXRoLnJvdW5kKGN0eC5saW5lV2lkdGgpJTIpLzIsMCk7Y3R4LmJlZ2luUGF0aCgpO3RyLmMuZHJhd0xpbmUoY3R4LHZpZXdYLDAsdmlld1gsaGVpZ2h0KTtpZihzZWxlY3RlZCkKK3JldHVybjt2YXIgZHQ9dGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHZpZXdYPU1hdGgucm91bmQoZHQueFdvcmxkVG9WaWV3KHRzKSk7Y3R4LnNhdmUoKTtjdHgudHJhbnNsYXRlKChNYXRoLnJvdW5kKGN0eC5saW5lV2lkdGgpJTIpLzIsMCk7Y3R4LmJlZ2luUGF0aCgpO3RyLnVpLmIuZHJhd0xpbmUoY3R4LHZpZXdYLDAsdmlld1gsaGVpZ2h0KTtpZihzZWxlY3RlZCkKIGN0eC5zdHJva2VTdHlsZT0ncmdiKDI1NSwgMCwgMCknO2Vsc2UKIGN0eC5zdHJva2VTdHlsZT0ncmdiKDAsIDAsIDApJztjdHguc3Ryb2tlKCk7Y3R4LnJlc3RvcmUoKTt9LGRyYXdJbmRpY2F0b3JzOmZ1bmN0aW9uKGN0eCx2aWV3TFdvcmxkLHZpZXdSV29ybGQpe2lmKHRoaXMubGVmdFNuYXBJbmRpY2F0b3JfKXt0aGlzLmRyYXdJbmRpY2F0b3JfKGN0eCx2aWV3TFdvcmxkLHZpZXdSV29ybGQsdGhpcy5yYW5nZV8ubWluLHRoaXMubGVmdFNuYXBJbmRpY2F0b3JfLHRoaXMubGVmdFNlbGVjdGVkXyk7fQogaWYodGhpcy5yaWdodFNuYXBJbmRpY2F0b3JfKXt0aGlzLmRyYXdJbmRpY2F0b3JfKGN0eCx2aWV3TFdvcmxkLHZpZXdSV29ybGQsdGhpcy5yYW5nZV8ubWF4LHRoaXMucmlnaHRTbmFwSW5kaWNhdG9yXyx0aGlzLnJpZ2h0U2VsZWN0ZWRfKTt9fSxkcmF3SW5kaWNhdG9yXzpmdW5jdGlvbihjdHgsdmlld0xXb3JsZCx2aWV3UldvcmxkLHhXb3JsZCxzaSxzZWxlY3RlZCl7dmFyIGR0PXRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciB2aWV3WD1NYXRoLnJvdW5kKGR0LnhXb3JsZFRvVmlldyh4V29ybGQpKTtjdHguc2F2ZSgpO2N0eC50cmFuc2xhdGUoKE1hdGgucm91bmQoY3R4LmxpbmVXaWR0aCklMikvMiwwKTt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgdmlld1k9c2kueSpkZXZpY2VQaXhlbFJhdGlvO3ZhciB2aWV3SGVpZ2h0PXNpLmhlaWdodCpkZXZpY2VQaXhlbFJhdGlvO3ZhciBhcnJvd1NpemU9NCpwaXhlbFJhdGlvO2lmKHNlbGVjdGVkKQogY3R4LmZpbGxTdHlsZT0ncmdiKDI1NSwgMCwgMCknO2Vsc2UKLWN0eC5maWxsU3R5bGU9J3JnYigwLCAwLCAwKSc7dHIuYy5kcmF3VHJpYW5nbGUoY3R4LHZpZXdYLWFycm93U2l6ZSowLjc1LHZpZXdZLHZpZXdYK2Fycm93U2l6ZSowLjc1LHZpZXdZLHZpZXdYLHZpZXdZK2Fycm93U2l6ZSk7Y3R4LmZpbGwoKTt0ci5jLmRyYXdUcmlhbmdsZShjdHgsdmlld1gtYXJyb3dTaXplKjAuNzUsdmlld1krdmlld0hlaWdodCx2aWV3WCthcnJvd1NpemUqMC43NSx2aWV3WSt2aWV3SGVpZ2h0LHZpZXdYLHZpZXdZK3ZpZXdIZWlnaHQtYXJyb3dTaXplKTtjdHguZmlsbCgpO2N0eC5yZXN0b3JlKCk7fX07cmV0dXJue1NuYXBJbmRpY2F0b3I6U25hcEluZGljYXRvcixUaW1lbGluZUludGVyZXN0UmFuZ2U6VGltZWxpbmVJbnRlcmVzdFJhbmdlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKG9wdF90aGF0KXtpZihvcHRfdGhhdCl7dGhpcy5zZXQob3B0X3RoYXQpO3JldHVybjt9CitjdHguZmlsbFN0eWxlPSdyZ2IoMCwgMCwgMCknO3RyLnVpLmIuZHJhd1RyaWFuZ2xlKGN0eCx2aWV3WC1hcnJvd1NpemUqMC43NSx2aWV3WSx2aWV3WCthcnJvd1NpemUqMC43NSx2aWV3WSx2aWV3WCx2aWV3WSthcnJvd1NpemUpO2N0eC5maWxsKCk7dHIudWkuYi5kcmF3VHJpYW5nbGUoY3R4LHZpZXdYLWFycm93U2l6ZSowLjc1LHZpZXdZK3ZpZXdIZWlnaHQsdmlld1grYXJyb3dTaXplKjAuNzUsdmlld1krdmlld0hlaWdodCx2aWV3WCx2aWV3WSt2aWV3SGVpZ2h0LWFycm93U2l6ZSk7Y3R4LmZpbGwoKTtjdHgucmVzdG9yZSgpO319O3JldHVybntTbmFwSW5kaWNhdG9yOlNuYXBJbmRpY2F0b3IsVGltZWxpbmVJbnRlcmVzdFJhbmdlOlRpbWVsaW5lSW50ZXJlc3RSYW5nZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aScsZnVuY3Rpb24oKXtmdW5jdGlvbiBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0ob3B0X3RoYXQpe2lmKG9wdF90aGF0KXt0aGlzLnNldChvcHRfdGhhdCk7cmV0dXJuO30KIHRoaXMuc2NhbGVYPTE7dGhpcy5wYW5YPTA7dGhpcy5wYW5ZPTA7fQogVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtLnByb3RvdHlwZT17c2V0OmZ1bmN0aW9uKHRoYXQpe3RoaXMuc2NhbGVYPXRoYXQuc2NhbGVYO3RoaXMucGFuWD10aGF0LnBhblg7dGhpcy5wYW5ZPXRoYXQucGFuWTt9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0odGhpcyk7fSxlcXVhbHM6ZnVuY3Rpb24odGhhdCl7dmFyIGVxPXRydWU7aWYodGhhdD09PXVuZGVmaW5lZHx8dGhhdD09PW51bGwpCiByZXR1cm4gZmFsc2U7ZXEmPXRoaXMucGFuWD09PXRoYXQucGFuWDtlcSY9dGhpcy5wYW5ZPT09dGhhdC5wYW5ZO2VxJj10aGlzLnNjYWxlWD09PXRoYXQuc2NhbGVYO3JldHVybiEhZXE7fSxhbG1vc3RFcXVhbHM6ZnVuY3Rpb24odGhhdCl7dmFyIGVxPXRydWU7aWYodGhhdD09PXVuZGVmaW5lZHx8dGhhdD09PW51bGwpCiByZXR1cm4gZmFsc2U7ZXEmPU1hdGguYWJzKHRoaXMucGFuWC10aGF0LnBhblgpPDAuMDAxO2VxJj1NYXRoLmFicyh0aGlzLnBhblktdGhhdC5wYW5ZKTwwLjAwMTtlcSY9TWF0aC5hYnModGhpcy5zY2FsZVgtdGhhdC5zY2FsZVgpPDAuMDAxO3JldHVybiEhZXE7fSxpbmNyZW1lbnRQYW5YSW5WaWV3VW5pdHM6ZnVuY3Rpb24oeERlbHRhVmlldyl7dGhpcy5wYW5YKz10aGlzLnhWaWV3VmVjdG9yVG9Xb3JsZCh4RGVsdGFWaWV3KTt9LHhQYW5Xb3JsZFBvc1RvVmlld1BvczpmdW5jdGlvbih3b3JsZFgsdmlld1gsdmlld1dpZHRoKXtpZih0eXBlb2Ygdmlld1g9PSdzdHJpbmcnKXtpZih2aWV3WD09PSdsZWZ0Jyl7dmlld1g9MDt9ZWxzZSBpZih2aWV3WD09PSdjZW50ZXInKXt2aWV3WD12aWV3V2lkdGgvMjt9ZWxzZSBpZih2aWV3WD09PSdyaWdodCcpe3ZpZXdYPXZpZXdXaWR0aC0xO31lbHNle3Rocm93IG5ldyBFcnJvcigndmlld1ggbXVzdCBiZSBsZWZ0fGNlbnRlcnxyaWdodCBvciBudW1iZXIuJyk7fX0KIHRoaXMucGFuWD0odmlld1gvdGhpcy5zY2FsZVgpLXdvcmxkWDt9LHhQYW5Xb3JsZEJvdW5kc0ludG9WaWV3OmZ1bmN0aW9uKHdvcmxkTWluLHdvcmxkTWF4LHZpZXdXaWR0aCl7aWYodGhpcy54V29ybGRUb1ZpZXcod29ybGRNaW4pPDApCiB0aGlzLnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh3b3JsZE1pbiwnbGVmdCcsdmlld1dpZHRoKTtlbHNlIGlmKHRoaXMueFdvcmxkVG9WaWV3KHdvcmxkTWF4KT52aWV3V2lkdGgpCi10aGlzLnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh3b3JsZE1heCwncmlnaHQnLHZpZXdXaWR0aCk7fSx4U2V0V29ybGRCb3VuZHM6ZnVuY3Rpb24od29ybGRNaW4sd29ybGRNYXgsdmlld1dpZHRoKXt2YXIgd29ybGRXaWR0aD13b3JsZE1heC13b3JsZE1pbjt2YXIgc2NhbGVYPXZpZXdXaWR0aC93b3JsZFdpZHRoO3ZhciBwYW5YPS13b3JsZE1pbjt0aGlzLnNldFBhbkFuZFNjYWxlKHBhblgsc2NhbGVYKTt9LHNldFBhbkFuZFNjYWxlOmZ1bmN0aW9uKHAscyl7dGhpcy5zY2FsZVg9czt0aGlzLnBhblg9cDt9LHhXb3JsZFRvVmlldzpmdW5jdGlvbih4KXtyZXR1cm4oeCt0aGlzLnBhblgpKnRoaXMuc2NhbGVYO30seFdvcmxkVmVjdG9yVG9WaWV3OmZ1bmN0aW9uKHgpe3JldHVybiB4KnRoaXMuc2NhbGVYO30seFZpZXdUb1dvcmxkOmZ1bmN0aW9uKHgpe3JldHVybih4L3RoaXMuc2NhbGVYKS10aGlzLnBhblg7fSx4Vmlld1ZlY3RvclRvV29ybGQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHgvdGhpcy5zY2FsZVg7fSxhcHBseVRyYW5zZm9ybVRvQ2FudmFzOmZ1bmN0aW9uKGN0eCl7Y3R4LnRyYW5zZm9ybSh0aGlzLnNjYWxlWCwwLDAsMSx0aGlzLnBhblgqdGhpcy5zY2FsZVgsMCk7fX07cmV0dXJue1RpbWVsaW5lRGlzcGxheVRyYW5zZm9ybTpUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm19O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51aScsZnVuY3Rpb24oKXtmdW5jdGlvbiBBbmltYXRpb24oKXt9Ci1BbmltYXRpb24ucHJvdG90eXBlPXtjYW5UYWtlT3ZlckZvcjpmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbil7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHRha2VPdmVyRm9yOmZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uLG5ld1N0YXJ0VGltZXN0YW1wLHRhcmdldCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHN0YXJ0OmZ1bmN0aW9uKHRpbWVzdGFtcCx0YXJnZXQpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxkaWRTdG9wRWFybHk6ZnVuY3Rpb24odGltZXN0YW1wLHRhcmdldCx3aWxsQmVUYWtlbk92ZXJCeUFub3RoZXJBbmltYXRpb24pe30sdGljazpmdW5jdGlvbih0aW1lc3RhbXAsdGFyZ2V0KXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO319O3JldHVybntBbmltYXRpb246QW5pbWF0aW9ufTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmIudWknLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQW5pbWF0aW9uQ29udHJvbGxlcigpe3RyLmIuRXZlbnRUYXJnZXQuY2FsbCh0aGlzKTt0aGlzLnRhcmdldF89dW5kZWZpbmVkO3RoaXMuYWN0aXZlQW5pbWF0aW9uXz11bmRlZmluZWQ7dGhpcy50aWNrU2NoZWR1bGVkXz1mYWxzZTt9Ci1BbmltYXRpb25Db250cm9sbGVyLnByb3RvdHlwZT17X19wcm90b19fOnRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlLGdldCB0YXJnZXQoKXtyZXR1cm4gdGhpcy50YXJnZXRfO30sc2V0IHRhcmdldCh0YXJnZXQpe2lmKHRoaXMuYWN0aXZlQW5pbWF0aW9uXykKLXRocm93IG5ldyBFcnJvcignQ2Fubm90IGNoYW5nZSB0YXJnZXQgd2hpbGUgYW5pbWF0aW9uIGlzIHJ1bm5pbmcuJyk7aWYodGFyZ2V0LmNsb25lQW5pbWF0aW9uU3RhdGU9PT11bmRlZmluZWR8fHR5cGVvZiB0YXJnZXQuY2xvbmVBbmltYXRpb25TdGF0ZSE9PSdmdW5jdGlvbicpCi10aHJvdyBuZXcgRXJyb3IoJ3RhcmdldCBtdXN0IGhhdmUgYSBjbG9uZUFuaW1hdGlvblN0YXRlIGZ1bmN0aW9uJyk7dGhpcy50YXJnZXRfPXRhcmdldDt9LGdldCBhY3RpdmVBbmltYXRpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmVBbmltYXRpb25fO30sZ2V0IGhhc0FjdGl2ZUFuaW1hdGlvbigpe3JldHVybiEhdGhpcy5hY3RpdmVBbmltYXRpb25fO30scXVldWVBbmltYXRpb246ZnVuY3Rpb24oYW5pbWF0aW9uLG9wdF9ub3cpe2lmKHRoaXMudGFyZ2V0Xz09PXVuZGVmaW5lZCkKLXRocm93IG5ldyBFcnJvcignQ2Fubm90IHF1ZXVlIGFuaW1hdGlvbnMgd2l0aG91dCBhIHRhcmdldCcpO3ZhciBub3c7aWYob3B0X25vdyE9PXVuZGVmaW5lZCkKLW5vdz1vcHRfbm93O2Vsc2UKLW5vdz13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7aWYodGhpcy5hY3RpdmVBbmltYXRpb25fKXt2YXIgZG9uZT10aGlzLmFjdGl2ZUFuaW1hdGlvbl8udGljayhub3csdGhpcy50YXJnZXRfKTtpZihkb25lKQotdGhpcy5hY3RpdmVBbmltYXRpb25fPXVuZGVmaW5lZDt9Ci1pZih0aGlzLmFjdGl2ZUFuaW1hdGlvbl8pe2lmKGFuaW1hdGlvbi5jYW5UYWtlT3ZlckZvcih0aGlzLmFjdGl2ZUFuaW1hdGlvbl8pKXt0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uZGlkU3RvcEVhcmx5KG5vdyx0aGlzLnRhcmdldF8sdHJ1ZSk7YW5pbWF0aW9uLnRha2VPdmVyRm9yKHRoaXMuYWN0aXZlQW5pbWF0aW9uXyxub3csdGhpcy50YXJnZXRfKTt9ZWxzZXt0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uZGlkU3RvcEVhcmx5KG5vdyx0aGlzLnRhcmdldF8sZmFsc2UpO319Ci10aGlzLmFjdGl2ZUFuaW1hdGlvbl89YW5pbWF0aW9uO3RoaXMuYWN0aXZlQW5pbWF0aW9uXy5zdGFydChub3csdGhpcy50YXJnZXRfKTtpZih0aGlzLnRpY2tTY2hlZHVsZWRfKQotcmV0dXJuO3RoaXMudGlja1NjaGVkdWxlZF89dHJ1ZTt0ci5iLnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnRpY2tBY3RpdmVBbmltYXRpb25fLHRoaXMpO30sY2FuY2VsQWN0aXZlQW5pbWF0aW9uOmZ1bmN0aW9uKG9wdF9ub3cpe2lmKCF0aGlzLmFjdGl2ZUFuaW1hdGlvbl8pCi1yZXR1cm47dmFyIG5vdztpZihvcHRfbm93IT09dW5kZWZpbmVkKQotbm93PW9wdF9ub3c7ZWxzZQotbm93PXdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTt0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uZGlkU3RvcEVhcmx5KG5vdyx0aGlzLnRhcmdldF8sZmFsc2UpO3RoaXMuYWN0aXZlQW5pbWF0aW9uXz11bmRlZmluZWQ7fSx0aWNrQWN0aXZlQW5pbWF0aW9uXzpmdW5jdGlvbihmcmFtZUJlZ2luVGltZSl7dGhpcy50aWNrU2NoZWR1bGVkXz1mYWxzZTtpZighdGhpcy5hY3RpdmVBbmltYXRpb25fKQotcmV0dXJuO2lmKHRoaXMudGFyZ2V0Xz09PXVuZGVmaW5lZCl7dGhpcy5hY3RpdmVBbmltYXRpb25fLmRpZFN0b3BFYXJseShmcmFtZUJlZ2luVGltZSx0aGlzLnRhcmdldF8sZmFsc2UpO3JldHVybjt9Ci12YXIgb2xkVGFyZ2V0U3RhdGU9dGhpcy50YXJnZXRfLmNsb25lQW5pbWF0aW9uU3RhdGUoKTt2YXIgZG9uZT10aGlzLmFjdGl2ZUFuaW1hdGlvbl8udGljayhmcmFtZUJlZ2luVGltZSx0aGlzLnRhcmdldF8pO2lmKGRvbmUpCi10aGlzLmFjdGl2ZUFuaW1hdGlvbl89dW5kZWZpbmVkO2lmKHRoaXMuYWN0aXZlQW5pbWF0aW9uXyl7dGhpcy50aWNrU2NoZWR1bGVkXz10cnVlO3RyLmIucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudGlja0FjdGl2ZUFuaW1hdGlvbl8sdGhpcyk7fQotaWYob2xkVGFyZ2V0U3RhdGUpe3ZhciBlPW5ldyBFdmVudCgnZGlkdGljaycpO2Uub2xkVGFyZ2V0U3RhdGU9b2xkVGFyZ2V0U3RhdGU7dGhpcy5kaXNwYXRjaEV2ZW50KGUsZmFsc2UsZmFsc2UpO319fTtyZXR1cm57QW5pbWF0aW9uQ29udHJvbGxlcjpBbmltYXRpb25Db250cm9sbGVyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7dmFyIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybT10ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybTt2YXIgVGltZWxpbmVJbnRlcmVzdFJhbmdlPXRyLmMuVGltZWxpbmVJbnRlcmVzdFJhbmdlO2Z1bmN0aW9uIENvbnRhaW5lclRvVHJhY2tPYmooKXt0aGlzLnN0YWJsZUlkVG9UcmFja01hcF89e307fQotQ29udGFpbmVyVG9UcmFja09iai5wcm90b3R5cGU9e2FkZENvbnRhaW5lcjpmdW5jdGlvbihjb250YWluZXIsdHJhY2spe2lmKCF0cmFjaykKLXRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgdHJhY2suJyk7dGhpcy5zdGFibGVJZFRvVHJhY2tNYXBfW2NvbnRhaW5lci5zdGFibGVJZF09dHJhY2s7fSxjbGVhck1hcDpmdW5jdGlvbigpe3RoaXMuc3RhYmxlSWRUb1RyYWNrTWFwXz17fTt9LGdldFRyYWNrQnlTdGFibGVJZDpmdW5jdGlvbihzdGFibGVJZCl7cmV0dXJuIHRoaXMuc3RhYmxlSWRUb1RyYWNrTWFwX1tzdGFibGVJZF07fX07ZnVuY3Rpb24gVGltZWxpbmVWaWV3cG9ydChwYXJlbnRFbCl7dGhpcy5wYXJlbnRFbF89cGFyZW50RWw7dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXz11bmRlZmluZWQ7dGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV89bmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpO3RoaXMuaW5pdEFuaW1hdGlvbkNvbnRyb2xsZXJfKCk7dGhpcy5zaG93Rmxvd0V2ZW50c189ZmFsc2U7dGhpcy5oaWdobGlnaHRWU3luY189ZmFsc2U7dGhpcy5oaWdoRGV0YWlsc189ZmFsc2U7dGhpcy5ncmlkVGltZWJhc2VfPTA7dGhpcy5ncmlkU3RlcF89MTAwMC82MDt0aGlzLmdyaWRFbmFibGVkXz1mYWxzZTt0aGlzLmhhc0NhbGxlZFNldHVwRnVuY3Rpb25fPWZhbHNlO3RoaXMub25SZXNpemVfPXRoaXMub25SZXNpemVfLmJpbmQodGhpcyk7dGhpcy5vbk1vZGVsVHJhY2tDb250cm9sbGVyU2Nyb2xsXz10aGlzLm9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfLmJpbmQodGhpcyk7dGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXz1zZXRJbnRlcnZhbCh0aGlzLmNoZWNrRm9yQXR0YWNoXy5iaW5kKHRoaXMpLDI1MCk7dGhpcy5tYWpvck1hcmtQb3NpdGlvbnM9W107dGhpcy5pbnRlcmVzdFJhbmdlXz1uZXcgVGltZWxpbmVJbnRlcmVzdFJhbmdlKHRoaXMpO3RoaXMuZXZlbnRUb1RyYWNrTWFwXz17fTt0aGlzLmNvbnRhaW5lclRvVHJhY2tPYmo9bmV3IENvbnRhaW5lclRvVHJhY2tPYmooKTt9Cit0aGlzLnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh3b3JsZE1heCwncmlnaHQnLHZpZXdXaWR0aCk7fSx4U2V0V29ybGRCb3VuZHM6ZnVuY3Rpb24od29ybGRNaW4sd29ybGRNYXgsdmlld1dpZHRoKXt2YXIgd29ybGRXaWR0aD13b3JsZE1heC13b3JsZE1pbjt2YXIgc2NhbGVYPXZpZXdXaWR0aC93b3JsZFdpZHRoO3ZhciBwYW5YPS13b3JsZE1pbjt0aGlzLnNldFBhbkFuZFNjYWxlKHBhblgsc2NhbGVYKTt9LHNldFBhbkFuZFNjYWxlOmZ1bmN0aW9uKHAscyl7dGhpcy5zY2FsZVg9czt0aGlzLnBhblg9cDt9LHhXb3JsZFRvVmlldzpmdW5jdGlvbih4KXtyZXR1cm4oeCt0aGlzLnBhblgpKnRoaXMuc2NhbGVYO30seFdvcmxkVmVjdG9yVG9WaWV3OmZ1bmN0aW9uKHgpe3JldHVybiB4KnRoaXMuc2NhbGVYO30seFZpZXdUb1dvcmxkOmZ1bmN0aW9uKHgpe3JldHVybih4L3RoaXMuc2NhbGVYKS10aGlzLnBhblg7fSx4Vmlld1ZlY3RvclRvV29ybGQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHgvdGhpcy5zY2FsZVg7fSxhcHBseVRyYW5zZm9ybVRvQ2FudmFzOmZ1bmN0aW9uKGN0eCl7Y3R4LnRyYW5zZm9ybSh0aGlzLnNjYWxlWCwwLDAsMSx0aGlzLnBhblgqdGhpcy5zY2FsZVgsMCk7fX07cmV0dXJue1RpbWVsaW5lRGlzcGxheVRyYW5zZm9ybTpUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm19O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIENvbnRhaW5lclRvVHJhY2tNYXAoKXt0aGlzLnN0YWJsZUlkVG9UcmFja01hcF89e307fQorQ29udGFpbmVyVG9UcmFja01hcC5wcm90b3R5cGU9e2FkZENvbnRhaW5lcjpmdW5jdGlvbihjb250YWluZXIsdHJhY2spe2lmKCF0cmFjaykKK3Rocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgdHJhY2suJyk7dGhpcy5zdGFibGVJZFRvVHJhY2tNYXBfW2NvbnRhaW5lci5zdGFibGVJZF09dHJhY2s7fSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuc3RhYmxlSWRUb1RyYWNrTWFwXz17fTt9LGdldFRyYWNrQnlTdGFibGVJZDpmdW5jdGlvbihzdGFibGVJZCl7cmV0dXJuIHRoaXMuc3RhYmxlSWRUb1RyYWNrTWFwX1tzdGFibGVJZF07fX07cmV0dXJue0NvbnRhaW5lclRvVHJhY2tNYXA6Q29udGFpbmVyVG9UcmFja01hcH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRXZlbnRUb1RyYWNrTWFwKCl7fQorRXZlbnRUb1RyYWNrTWFwLnByb3RvdHlwZT17YWRkRXZlbnQ6ZnVuY3Rpb24oZXZlbnQsdHJhY2spe2lmKCF0cmFjaykKK3Rocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgdHJhY2suJyk7dGhpc1tldmVudC5ndWlkXT10cmFjazt9fTtyZXR1cm57RXZlbnRUb1RyYWNrTWFwOkV2ZW50VG9UcmFja01hcH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aScsZnVuY3Rpb24oKXt2YXIgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtPXRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybTt2YXIgVGltZWxpbmVJbnRlcmVzdFJhbmdlPXRyLnVpLlRpbWVsaW5lSW50ZXJlc3RSYW5nZTtmdW5jdGlvbiBUaW1lbGluZVZpZXdwb3J0KHBhcmVudEVsKXt0aGlzLnBhcmVudEVsXz1wYXJlbnRFbDt0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfPXVuZGVmaW5lZDt0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXz1uZXcgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7dGhpcy5pbml0QW5pbWF0aW9uQ29udHJvbGxlcl8oKTt0aGlzLnNob3dGbG93RXZlbnRzXz1mYWxzZTt0aGlzLmhpZ2hsaWdodFZTeW5jXz1mYWxzZTt0aGlzLmhpZ2hEZXRhaWxzXz1mYWxzZTt0aGlzLmdyaWRUaW1lYmFzZV89MDt0aGlzLmdyaWRTdGVwXz0xMDAwLzYwO3RoaXMuZ3JpZEVuYWJsZWRfPWZhbHNlO3RoaXMuaGFzQ2FsbGVkU2V0dXBGdW5jdGlvbl89ZmFsc2U7dGhpcy5vblJlc2l6ZV89dGhpcy5vblJlc2l6ZV8uYmluZCh0aGlzKTt0aGlzLm9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfPXRoaXMub25Nb2RlbFRyYWNrQ29udHJvbGxlclNjcm9sbF8uYmluZCh0aGlzKTt0aGlzLmNoZWNrRm9yQXR0YWNoSW50ZXJ2YWxfPXNldEludGVydmFsKHRoaXMuY2hlY2tGb3JBdHRhY2hfLmJpbmQodGhpcyksMjUwKTt0aGlzLm1ham9yTWFya1Bvc2l0aW9ucz1bXTt0aGlzLmludGVyZXN0UmFuZ2VfPW5ldyBUaW1lbGluZUludGVyZXN0UmFuZ2UodGhpcyk7dGhpcy5ldmVudFRvVHJhY2tNYXBfPW5ldyB0ci51aS50cmFja3MuRXZlbnRUb1RyYWNrTWFwKCk7dGhpcy5jb250YWluZXJUb1RyYWNrTWFwPW5ldyB0ci51aS50cmFja3MuQ29udGFpbmVyVG9UcmFja01hcCgpO30KIFRpbWVsaW5lVmlld3BvcnQucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYi5FdmVudFRhcmdldC5wcm90b3R5cGUsc2V0V2hlblBvc3NpYmxlOmZ1bmN0aW9uKGZuKXt0aGlzLnBlbmRpbmdTZXRGdW5jdGlvbl89Zm47fSxnZXQgaXNBdHRhY2hlZFRvRG9jdW1lbnRPckluVGVzdE1vZGUoKXtpZih0aGlzLnBhcmVudEVsXz09PXVuZGVmaW5lZCkKLXJldHVybjtyZXR1cm4gdHIuYi51aS5pc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQodGhpcy5wYXJlbnRFbF8pO30sb25SZXNpemVfOmZ1bmN0aW9uKCl7dGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxjaGVja0ZvckF0dGFjaF86ZnVuY3Rpb24oKXtpZighdGhpcy5pc0F0dGFjaGVkVG9Eb2N1bWVudE9ySW5UZXN0TW9kZXx8dGhpcy5jbGllbnRXaWR0aD09MCkKK3JldHVybjtyZXR1cm4gdHIudWkuYi5pc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQodGhpcy5wYXJlbnRFbF8pO30sb25SZXNpemVfOmZ1bmN0aW9uKCl7dGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxjaGVja0ZvckF0dGFjaF86ZnVuY3Rpb24oKXtpZighdGhpcy5pc0F0dGFjaGVkVG9Eb2N1bWVudE9ySW5UZXN0TW9kZXx8dGhpcy5jbGllbnRXaWR0aD09MCkKIHJldHVybjtpZighdGhpcy5pZnJhbWVfKXt0aGlzLmlmcmFtZV89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7dGhpcy5pZnJhbWVfLnN0eWxlLmNzc1RleHQ9J3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjA7Ym9yZGVyOjA7dmlzaWJpbGl0eTpoaWRkZW47Jzt0aGlzLnBhcmVudEVsXy5hcHBlbmRDaGlsZCh0aGlzLmlmcmFtZV8pO3RoaXMuaWZyYW1lXy5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsdGhpcy5vblJlc2l6ZV8pO30KIHZhciBjdXJTaXplPXRoaXMucGFyZW50RWxfLmNsaWVudFdpZHRoKyd4JysKIHRoaXMucGFyZW50RWxfLmNsaWVudEhlaWdodDtpZih0aGlzLnBlbmRpbmdTZXRGdW5jdGlvbl8pe3RoaXMubGFzdFNpemVfPWN1clNpemU7dHJ5e3RoaXMucGVuZGluZ1NldEZ1bmN0aW9uXygpO31jYXRjaChleCl7Y29uc29sZS5sb2coJ1doaWxlIHJ1bm5pbmcgc2V0V2hlblBvc3NpYmxlOicsZXgubWVzc2FnZT9leC5tZXNzYWdlKydcbicrZXguc3RhY2s6ZXguc3RhY2spO30KIHRoaXMucGVuZGluZ1NldEZ1bmN0aW9uXz11bmRlZmluZWQ7fQogd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXyk7dGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXz11bmRlZmluZWQ7fSxkaXNwYXRjaENoYW5nZUV2ZW50OmZ1bmN0aW9uKCl7dHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsJ2NoYW5nZScpO30sZGV0YWNoOmZ1bmN0aW9uKCl7aWYodGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXyl7d2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXyk7dGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXz11bmRlZmluZWQ7fQotaWYodGhpcy5pZnJhbWVfKXt0aGlzLmlmcmFtZV8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0aGlzLm9uUmVzaXplXyk7dGhpcy5wYXJlbnRFbF8ucmVtb3ZlQ2hpbGQodGhpcy5pZnJhbWVfKTt9fSxpbml0QW5pbWF0aW9uQ29udHJvbGxlcl86ZnVuY3Rpb24oKXt0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl89bmV3IHRyLmIudWkuQW5pbWF0aW9uQ29udHJvbGxlcigpO3RoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdkaWR0aWNrJyxmdW5jdGlvbihlKXt0aGlzLm9uQ3VyZW50RGlzcGxheVRyYW5zZm9ybUNoYW5nZV8oZS5vbGRUYXJnZXRTdGF0ZSk7fS5iaW5kKHRoaXMpKTt2YXIgdGhhdD10aGlzO3RoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy50YXJnZXQ9e2dldCBwYW5YKCl7cmV0dXJuIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnBhblg7fSxzZXQgcGFuWChwYW5YKXt0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5wYW5YPXBhblg7fSxnZXQgcGFuWSgpe3JldHVybiB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5wYW5ZO30sc2V0IHBhblkocGFuWSl7dGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8ucGFuWT1wYW5ZO30sZ2V0IHNjYWxlWCgpe3JldHVybiB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5zY2FsZVg7fSxzZXQgc2NhbGVYKHNjYWxlWCl7dGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8uc2NhbGVYPXNjYWxlWDt9LGNsb25lQW5pbWF0aW9uU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8uY2xvbmUoKTt9LHhQYW5Xb3JsZFBvc1RvVmlld1BvczpmdW5jdGlvbih4V29ybGQseFZpZXcpe3RoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh4V29ybGQseFZpZXcsdGhhdC5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMuY2xpZW50V2lkdGgpO319O30sZ2V0IGN1cnJlbnREaXNwbGF5VHJhbnNmb3JtKCl7cmV0dXJuIHRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fO30sc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5OmZ1bmN0aW9uKGRpc3BsYXlUcmFuc2Zvcm0pe3RoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5jYW5jZWxBY3RpdmVBbmltYXRpb24oKTt2YXIgb2xkRGlzcGxheVRyYW5zZm9ybT10aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8udGFyZ2V0LmNsb25lQW5pbWF0aW9uU3RhdGUoKTt0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5zZXQoZGlzcGxheVRyYW5zZm9ybSk7dGhpcy5vbkN1cmVudERpc3BsYXlUcmFuc2Zvcm1DaGFuZ2VfKG9sZERpc3BsYXlUcmFuc2Zvcm0pO30scXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uOmZ1bmN0aW9uKGFuaW1hdGlvbil7aWYoIShhbmltYXRpb24gaW5zdGFuY2VvZiB0ci5iLnVpLkFuaW1hdGlvbikpCi10aHJvdyBuZXcgRXJyb3IoJ2FuaW1hdGlvbiBtdXN0IGJlIGluc3RhbmNlb2YgdHIuYi51aS5BbmltYXRpb24nKTt0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8ucXVldWVBbmltYXRpb24oYW5pbWF0aW9uKTt9LG9uQ3VyZW50RGlzcGxheVRyYW5zZm9ybUNoYW5nZV86ZnVuY3Rpb24ob2xkRGlzcGxheVRyYW5zZm9ybSl7aWYodGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXyl7dGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZPXRyLmIuY2xhbXAodGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZLDAsdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5zY3JvbGxIZWlnaHQtCitpZih0aGlzLmlmcmFtZV8pe3RoaXMuaWZyYW1lXy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLHRoaXMub25SZXNpemVfKTt0aGlzLnBhcmVudEVsXy5yZW1vdmVDaGlsZCh0aGlzLmlmcmFtZV8pO319LGluaXRBbmltYXRpb25Db250cm9sbGVyXzpmdW5jdGlvbigpe3RoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXz1uZXcgdHIudWkuYi5BbmltYXRpb25Db250cm9sbGVyKCk7dGhpcy5kdEFuaW1hdGlvbkNvbnRyb2xsZXJfLmFkZEV2ZW50TGlzdGVuZXIoJ2RpZHRpY2snLGZ1bmN0aW9uKGUpe3RoaXMub25DdXJlbnREaXNwbGF5VHJhbnNmb3JtQ2hhbmdlXyhlLm9sZFRhcmdldFN0YXRlKTt9LmJpbmQodGhpcykpO3ZhciB0aGF0PXRoaXM7dGhpcy5kdEFuaW1hdGlvbkNvbnRyb2xsZXJfLnRhcmdldD17Z2V0IHBhblgoKXtyZXR1cm4gdGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8ucGFuWDt9LHNldCBwYW5YKHBhblgpe3RoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnBhblg9cGFuWDt9LGdldCBwYW5ZKCl7cmV0dXJuIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnBhblk7fSxzZXQgcGFuWShwYW5ZKXt0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5wYW5ZPXBhblk7fSxnZXQgc2NhbGVYKCl7cmV0dXJuIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnNjYWxlWDt9LHNldCBzY2FsZVgoc2NhbGVYKXt0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5zY2FsZVg9c2NhbGVYO30sY2xvbmVBbmltYXRpb25TdGF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5jbG9uZSgpO30seFBhbldvcmxkUG9zVG9WaWV3UG9zOmZ1bmN0aW9uKHhXb3JsZCx4Vmlldyl7dGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8ueFBhbldvcmxkUG9zVG9WaWV3UG9zKHhXb3JsZCx4Vmlldyx0aGF0Lm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy5jbGllbnRXaWR0aCk7fX07fSxnZXQgY3VycmVudERpc3BsYXlUcmFuc2Zvcm0oKXtyZXR1cm4gdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV87fSxzZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHk6ZnVuY3Rpb24oZGlzcGxheVRyYW5zZm9ybSl7dGhpcy5kdEFuaW1hdGlvbkNvbnRyb2xsZXJfLmNhbmNlbEFjdGl2ZUFuaW1hdGlvbigpO3ZhciBvbGREaXNwbGF5VHJhbnNmb3JtPXRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy50YXJnZXQuY2xvbmVBbmltYXRpb25TdGF0ZSgpO3RoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnNldChkaXNwbGF5VHJhbnNmb3JtKTt0aGlzLm9uQ3VyZW50RGlzcGxheVRyYW5zZm9ybUNoYW5nZV8ob2xkRGlzcGxheVRyYW5zZm9ybSk7fSxxdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb246ZnVuY3Rpb24oYW5pbWF0aW9uKXtpZighKGFuaW1hdGlvbiBpbnN0YW5jZW9mIHRyLnVpLmIuQW5pbWF0aW9uKSkKK3Rocm93IG5ldyBFcnJvcignYW5pbWF0aW9uIG11c3QgYmUgaW5zdGFuY2VvZiB0ci51aS5iLkFuaW1hdGlvbicpO3RoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5xdWV1ZUFuaW1hdGlvbihhbmltYXRpb24pO30sb25DdXJlbnREaXNwbGF5VHJhbnNmb3JtQ2hhbmdlXzpmdW5jdGlvbihvbGREaXNwbGF5VHJhbnNmb3JtKXtpZih0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfKXt0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblk9dHIuYi5jbGFtcCh0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblksMCx0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLnNjcm9sbEhlaWdodC0KIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2xpZW50SGVpZ2h0KTt9CiB2YXIgY2hhbmdlZD0hdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5lcXVhbHMob2xkRGlzcGxheVRyYW5zZm9ybSk7dmFyIHlDaGFuZ2VkPXRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSE9PW9sZERpc3BsYXlUcmFuc2Zvcm0ucGFuWTtpZih5Q2hhbmdlZCkKIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uc2Nyb2xsVG9wPXRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWTtpZihjaGFuZ2VkKQpAQCAtMzE4OSwyNCArMzA1OSw2ODEgQEAKIHRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5jYW5jZWxBY3RpdmVBbmltYXRpb24oKTt2YXIgcGFuWT10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLnNjcm9sbFRvcDt0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5wYW5ZPXBhblk7fSxnZXQgbW9kZWxUcmFja0NvbnRhaW5lcigpe3JldHVybiB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfO30sc2V0IG1vZGVsVHJhY2tDb250YWluZXIobSl7aWYodGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXykKIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJyx0aGlzLm9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfKTt0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfPW07dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLHRoaXMub25Nb2RlbFRyYWNrQ29udHJvbGxlclNjcm9sbF8pO30sZ2V0IHNob3dGbG93RXZlbnRzKCl7cmV0dXJuIHRoaXMuc2hvd0Zsb3dFdmVudHNfO30sc2V0IHNob3dGbG93RXZlbnRzKHNob3dGbG93RXZlbnRzKXt0aGlzLnNob3dGbG93RXZlbnRzXz1zaG93Rmxvd0V2ZW50czt0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTt9LGdldCBoaWdobGlnaHRWU3luYygpe3JldHVybiB0aGlzLmhpZ2hsaWdodFZTeW5jXzt9LHNldCBoaWdobGlnaHRWU3luYyhoaWdobGlnaHRWU3luYyl7dGhpcy5oaWdobGlnaHRWU3luY189aGlnaGxpZ2h0VlN5bmM7dGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxnZXQgaGlnaERldGFpbHMoKXtyZXR1cm4gdGhpcy5oaWdoRGV0YWlsc187fSxzZXQgaGlnaERldGFpbHMoaGlnaERldGFpbHMpe3RoaXMuaGlnaERldGFpbHNfPWhpZ2hEZXRhaWxzO3RoaXMuZGlzcGF0Y2hDaGFuZ2VFdmVudCgpO30sZ2V0IGdyaWRFbmFibGVkKCl7cmV0dXJuIHRoaXMuZ3JpZEVuYWJsZWRfO30sc2V0IGdyaWRFbmFibGVkKGVuYWJsZWQpe2lmKHRoaXMuZ3JpZEVuYWJsZWRfPT1lbmFibGVkKQogcmV0dXJuO3RoaXMuZ3JpZEVuYWJsZWRfPWVuYWJsZWQmJnRydWU7dGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxnZXQgZ3JpZFRpbWViYXNlKCl7cmV0dXJuIHRoaXMuZ3JpZFRpbWViYXNlXzt9LHNldCBncmlkVGltZWJhc2UodGltZWJhc2Upe2lmKHRoaXMuZ3JpZFRpbWViYXNlXz09dGltZWJhc2UpCi1yZXR1cm47dGhpcy5ncmlkVGltZWJhc2VfPXRpbWViYXNlO3RoaXMuZGlzcGF0Y2hDaGFuZ2VFdmVudCgpO30sZ2V0IGdyaWRTdGVwKCl7cmV0dXJuIHRoaXMuZ3JpZFN0ZXBfO30sZ2V0IGludGVyZXN0UmFuZ2UoKXtyZXR1cm4gdGhpcy5pbnRlcmVzdFJhbmdlXzt9LGRyYXdNYWpvck1hcmtMaW5lczpmdW5jdGlvbihjdHgpe2N0eC5zYXZlKCk7Y3R4LnRyYW5zbGF0ZSgoTWF0aC5yb3VuZChjdHgubGluZVdpZHRoKSUyKS8yLDApO2N0eC5iZWdpblBhdGgoKTtmb3IodmFyIGlkeCBpbiB0aGlzLm1ham9yTWFya1Bvc2l0aW9ucyl7dmFyIHg9TWF0aC5mbG9vcih0aGlzLm1ham9yTWFya1Bvc2l0aW9uc1tpZHhdKTt0ci5jLmRyYXdMaW5lKGN0eCx4LDAseCxjdHguY2FudmFzLmhlaWdodCk7fQorcmV0dXJuO3RoaXMuZ3JpZFRpbWViYXNlXz10aW1lYmFzZTt0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTt9LGdldCBncmlkU3RlcCgpe3JldHVybiB0aGlzLmdyaWRTdGVwXzt9LGdldCBpbnRlcmVzdFJhbmdlKCl7cmV0dXJuIHRoaXMuaW50ZXJlc3RSYW5nZV87fSxkcmF3TWFqb3JNYXJrTGluZXM6ZnVuY3Rpb24oY3R4KXtjdHguc2F2ZSgpO2N0eC50cmFuc2xhdGUoKE1hdGgucm91bmQoY3R4LmxpbmVXaWR0aCklMikvMiwwKTtjdHguYmVnaW5QYXRoKCk7Zm9yKHZhciBpZHggaW4gdGhpcy5tYWpvck1hcmtQb3NpdGlvbnMpe3ZhciB4PU1hdGguZmxvb3IodGhpcy5tYWpvck1hcmtQb3NpdGlvbnNbaWR4XSk7dHIudWkuYi5kcmF3TGluZShjdHgseCwwLHgsY3R4LmNhbnZhcy5oZWlnaHQpO30KIGN0eC5zdHJva2VTdHlsZT0nI2RkZCc7Y3R4LnN0cm9rZSgpO2N0eC5yZXN0b3JlKCk7fSxkcmF3R3JpZExpbmVzOmZ1bmN0aW9uKGN0eCx2aWV3TFdvcmxkLHZpZXdSV29ybGQpe2lmKCF0aGlzLmdyaWRFbmFibGVkKQotcmV0dXJuO3ZhciBkdD10aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciB4PXRoaXMuZ3JpZFRpbWViYXNlO2N0eC5zYXZlKCk7Y3R4LnRyYW5zbGF0ZSgoTWF0aC5yb3VuZChjdHgubGluZVdpZHRoKSUyKS8yLDApO2N0eC5iZWdpblBhdGgoKTt3aGlsZSh4PHZpZXdSV29ybGQpe2lmKHg+PXZpZXdMV29ybGQpe3ZhciB2eD1NYXRoLmZsb29yKGR0LnhXb3JsZFRvVmlldyh4KSk7dHIuYy5kcmF3TGluZShjdHgsdngsMCx2eCxjdHguY2FudmFzLmhlaWdodCk7fQorcmV0dXJuO3ZhciBkdD10aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciB4PXRoaXMuZ3JpZFRpbWViYXNlO2N0eC5zYXZlKCk7Y3R4LnRyYW5zbGF0ZSgoTWF0aC5yb3VuZChjdHgubGluZVdpZHRoKSUyKS8yLDApO2N0eC5iZWdpblBhdGgoKTt3aGlsZSh4PHZpZXdSV29ybGQpe2lmKHg+PXZpZXdMV29ybGQpe3ZhciB2eD1NYXRoLmZsb29yKGR0LnhXb3JsZFRvVmlldyh4KSk7dHIudWkuYi5kcmF3TGluZShjdHgsdngsMCx2eCxjdHguY2FudmFzLmhlaWdodCk7fQogeCs9dGhpcy5ncmlkU3RlcDt9Ci1jdHguc3Ryb2tlU3R5bGU9J3JnYmEoMjU1LCAwLCAwLCAwLjI1KSc7Y3R4LnN0cm9rZSgpO2N0eC5yZXN0b3JlKCk7fSxyZWJ1aWxkRXZlbnRUb1RyYWNrTWFwOmZ1bmN0aW9uKCl7dGhpcy5ldmVudFRvVHJhY2tNYXBfPXVuZGVmaW5lZDt2YXIgZXZlbnRUb1RyYWNrTWFwPXt9O2V2ZW50VG9UcmFja01hcC5hZGRFdmVudD1mdW5jdGlvbihldmVudCx0cmFjayl7aWYoIXRyYWNrKQotdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSB0cmFjay4nKTt0aGlzW2V2ZW50Lmd1aWRdPXRyYWNrO307dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7dGhpcy5ldmVudFRvVHJhY2tNYXBfPWV2ZW50VG9UcmFja01hcDt9LHJlYnVpbGRDb250YWluZXJUb1RyYWNrTWFwOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJUb1RyYWNrT2JqLmNsZWFyTWFwKCk7dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5hZGRDb250YWluZXJzVG9UcmFja01hcCh0aGlzLmNvbnRhaW5lclRvVHJhY2tPYmopO30sdHJhY2tGb3JFdmVudDpmdW5jdGlvbihldmVudCl7cmV0dXJuIHRoaXMuZXZlbnRUb1RyYWNrTWFwX1tldmVudC5ndWlkXTt9fTtyZXR1cm57Q29udGFpbmVyVG9UcmFja09iajpDb250YWluZXJUb1RyYWNrT2JqLFRpbWVsaW5lVmlld3BvcnQ6VGltZWxpbmVWaWV3cG9ydH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe3ZhciBrRGVmYXVsdFBhbkFuaW1hdG9pbkR1cmF0aW9uTXM9MTAwLjA7ZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKGRlbHRhWCxkZWx0YVksb3B0X2R1cmF0aW9uTXMpe3RoaXMuZGVsdGFYPWRlbHRhWDt0aGlzLmRlbHRhWT1kZWx0YVk7aWYob3B0X2R1cmF0aW9uTXM9PT11bmRlZmluZWQpCi10aGlzLmR1cmF0aW9uTXM9a0RlZmF1bHRQYW5BbmltYXRvaW5EdXJhdGlvbk1zO2Vsc2UKLXRoaXMuZHVyYXRpb25Ncz1vcHRfZHVyYXRpb25Nczt0aGlzLnN0YXJ0UGFuWD11bmRlZmluZWQ7dGhpcy5zdGFydFBhblk9dW5kZWZpbmVkO3RoaXMuc3RhcnRUaW1lTXM9dW5kZWZpbmVkO30KLVRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbi5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5iLnVpLkFuaW1hdGlvbi5wcm90b3R5cGUsZ2V0IGFmZmVjdHNQYW5ZKCl7cmV0dXJuIHRoaXMuZGVsdGFZIT09MDt9LGNhblRha2VPdmVyRm9yOmZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uKXtyZXR1cm4gZXhpc3RpbmdBbmltYXRpb24gaW5zdGFuY2VvZiBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb247fSx0YWtlT3ZlckZvcjpmdW5jdGlvbihleGlzdGluZyx0aW1lc3RhbXAsdGFyZ2V0KXt2YXIgcmVtYWluaW5nRGVsdGFYT25FeGlzdGluZz1leGlzdGluZy5nb2FsUGFuWC10YXJnZXQucGFuWDt2YXIgcmVtYWluaW5nRGVsdGFZT25FeGlzdGluZz1leGlzdGluZy5nb2FsUGFuWS10YXJnZXQucGFuWTt2YXIgcmVtYWluaW5nVGltZU9uRXhpc3Rpbmc9dGltZXN0YW1wLShleGlzdGluZy5zdGFydFRpbWVNcytleGlzdGluZy5kdXJhdGlvbk1zKTtyZW1haW5pbmdUaW1lT25FeGlzdGluZz1NYXRoLm1heChyZW1haW5pbmdUaW1lT25FeGlzdGluZywwKTt0aGlzLmRlbHRhWCs9cmVtYWluaW5nRGVsdGFYT25FeGlzdGluZzt0aGlzLmRlbHRhWSs9cmVtYWluaW5nRGVsdGFZT25FeGlzdGluZzt0aGlzLmR1cmF0aW9uTXMrPXJlbWFpbmluZ1RpbWVPbkV4aXN0aW5nO30sc3RhcnQ6ZnVuY3Rpb24odGltZXN0YW1wLHRhcmdldCl7dGhpcy5zdGFydFRpbWVNcz10aW1lc3RhbXA7dGhpcy5zdGFydFBhblg9dGFyZ2V0LnBhblg7dGhpcy5zdGFydFBhblk9dGFyZ2V0LnBhblk7fSx0aWNrOmZ1bmN0aW9uKHRpbWVzdGFtcCx0YXJnZXQpe3ZhciBwZXJjZW50RG9uZT0odGltZXN0YW1wLXRoaXMuc3RhcnRUaW1lTXMpL3RoaXMuZHVyYXRpb25NcztwZXJjZW50RG9uZT10ci5iLmNsYW1wKHBlcmNlbnREb25lLDAsMSk7dGFyZ2V0LnBhblg9dHIuYi5sZXJwKHBlcmNlbnREb25lLHRoaXMuc3RhcnRQYW5YLHRoaXMuZ29hbFBhblgpO2lmKHRoaXMuYWZmZWN0c1BhblkpCi10YXJnZXQucGFuWT10ci5iLmxlcnAocGVyY2VudERvbmUsdGhpcy5zdGFydFBhblksdGhpcy5nb2FsUGFuWSk7cmV0dXJuIHRpbWVzdGFtcD49dGhpcy5zdGFydFRpbWVNcyt0aGlzLmR1cmF0aW9uTXM7fSxnZXQgZ29hbFBhblgoKXtyZXR1cm4gdGhpcy5zdGFydFBhblgrdGhpcy5kZWx0YVg7fSxnZXQgZ29hbFBhblkoKXtyZXR1cm4gdGhpcy5zdGFydFBhblkrdGhpcy5kZWx0YVk7fX07ZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uKGdvYWxGb2NhbFBvaW50WFdvcmxkLGdvYWxGb2NhbFBvaW50WFZpZXcsZ29hbEZvY2FsUG9pbnRZLHpvb21JblJhdGlvWCxvcHRfZHVyYXRpb25Ncyl7dGhpcy5nb2FsRm9jYWxQb2ludFhXb3JsZD1nb2FsRm9jYWxQb2ludFhXb3JsZDt0aGlzLmdvYWxGb2NhbFBvaW50WFZpZXc9Z29hbEZvY2FsUG9pbnRYVmlldzt0aGlzLmdvYWxGb2NhbFBvaW50WT1nb2FsRm9jYWxQb2ludFk7dGhpcy56b29tSW5SYXRpb1g9em9vbUluUmF0aW9YO2lmKG9wdF9kdXJhdGlvbk1zPT09dW5kZWZpbmVkKQotdGhpcy5kdXJhdGlvbk1zPWtEZWZhdWx0UGFuQW5pbWF0b2luRHVyYXRpb25NcztlbHNlCi10aGlzLmR1cmF0aW9uTXM9b3B0X2R1cmF0aW9uTXM7dGhpcy5zdGFydFRpbWVNcz11bmRlZmluZWQ7dGhpcy5zdGFydFNjYWxlWD11bmRlZmluZWQ7dGhpcy5nb2FsU2NhbGVYPXVuZGVmaW5lZDt0aGlzLnN0YXJ0UGFuWT11bmRlZmluZWQ7fQotVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uLnByb3RvdHlwZT17X19wcm90b19fOnRyLmIudWkuQW5pbWF0aW9uLnByb3RvdHlwZSxnZXQgYWZmZWN0c1BhblkoKXtyZXR1cm4gdGhpcy5zdGFydFBhblkhPXRoaXMuZ29hbEZvY2FsUG9pbnRZO30sY2FuVGFrZU92ZXJGb3I6ZnVuY3Rpb24oZXhpc3RpbmdBbmltYXRpb24pe3JldHVybiBmYWxzZTt9LHRha2VPdmVyRm9yOmZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uLHRpbWVzdGFtcCx0YXJnZXQpe3RoaXMuZ29hbFNjYWxlWD10YXJnZXQuc2NhbGVYKnRoaXMuem9vbUluUmF0aW9YO30sc3RhcnQ6ZnVuY3Rpb24odGltZXN0YW1wLHRhcmdldCl7dGhpcy5zdGFydFRpbWVNcz10aW1lc3RhbXA7dGhpcy5zdGFydFNjYWxlWD10YXJnZXQuc2NhbGVYO3RoaXMuZ29hbFNjYWxlWD10aGlzLnpvb21JblJhdGlvWCp0YXJnZXQuc2NhbGVYO3RoaXMuc3RhcnRQYW5ZPXRhcmdldC5wYW5ZO30sdGljazpmdW5jdGlvbih0aW1lc3RhbXAsdGFyZ2V0KXt2YXIgcGVyY2VudERvbmU9KHRpbWVzdGFtcC10aGlzLnN0YXJ0VGltZU1zKS90aGlzLmR1cmF0aW9uTXM7cGVyY2VudERvbmU9dHIuYi5jbGFtcChwZXJjZW50RG9uZSwwLDEpO3RhcmdldC5zY2FsZVg9dHIuYi5sZXJwKHBlcmNlbnREb25lLHRoaXMuc3RhcnRTY2FsZVgsdGhpcy5nb2FsU2NhbGVYKTtpZih0aGlzLmFmZmVjdHNQYW5ZKXt0YXJnZXQucGFuWT10ci5iLmxlcnAocGVyY2VudERvbmUsdGhpcy5zdGFydFBhblksdGhpcy5nb2FsRm9jYWxQb2ludFkpO30KLXRhcmdldC54UGFuV29ybGRQb3NUb1ZpZXdQb3ModGhpcy5nb2FsRm9jYWxQb2ludFhXb3JsZCx0aGlzLmdvYWxGb2NhbFBvaW50WFZpZXcpO3JldHVybiB0aW1lc3RhbXA+PXRoaXMuc3RhcnRUaW1lTXMrdGhpcy5kdXJhdGlvbk1zO319O3JldHVybntUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb246VGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uLFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbjpUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb259O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXt2YXIgY29uc3RhbnRzPXtIRUFESU5HX1dJRFRIOjI1MH07cmV0dXJue2NvbnN0YW50czpjb25zdGFudHN9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXt2YXIgY29uc3RhbnRzPXRyLmMuY29uc3RhbnRzO2Z1bmN0aW9uIFRpbWluZ1Rvb2wodmlld3BvcnQsdGFyZ2V0RWxlbWVudCl7dGhpcy52aWV3cG9ydF89dmlld3BvcnQ7dGhpcy5vbk1vdXNlTW92ZV89dGhpcy5vbk1vdXNlTW92ZV8uYmluZCh0aGlzKTt0aGlzLm9uRGJsQ2xpY2tfPXRoaXMub25EYmxDbGlja18uYmluZCh0aGlzKTt0aGlzLnRhcmdldEVsZW1lbnRfPXRhcmdldEVsZW1lbnQ7dGhpcy5pc01vdmluZ0xlZnRFZGdlXz1mYWxzZTt9O1RpbWluZ1Rvb2wucHJvdG90eXBlPXtvbkVudGVyVGltaW5nOmZ1bmN0aW9uKGUpe3RoaXMudGFyZ2V0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyx0aGlzLm9uTW91c2VNb3ZlXyk7dGhpcy50YXJnZXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsdGhpcy5vbkRibENsaWNrXyk7fSxvbkJlZ2luVGltaW5nOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmlzVG91Y2hQb2ludEluc2lkZVRyYWNrQm91bmRzXyhlLmNsaWVudFgsZS5jbGllbnRZKSkKK2N0eC5zdHJva2VTdHlsZT0ncmdiYSgyNTUsIDAsIDAsIDAuMjUpJztjdHguc3Ryb2tlKCk7Y3R4LnJlc3RvcmUoKTt9LGdldFNoaWZ0ZWRTZWxlY3Rpb246ZnVuY3Rpb24oc2VsZWN0aW9uLG9mZnNldCl7dmFyIG5ld1NlbGVjdGlvbj1uZXcgdHIubW9kZWwuRXZlbnRTZXQoKTtmb3IodmFyIGk9MDtpPHNlbGVjdGlvbi5sZW5ndGg7aSsrKXt2YXIgZXZlbnQ9c2VsZWN0aW9uW2ldO2lmKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuRmxvd0V2ZW50KXtpZihvZmZzZXQ+MCl7bmV3U2VsZWN0aW9uLnB1c2goZXZlbnQuZW5kU2xpY2UpO31lbHNlIGlmKG9mZnNldDwwKXtuZXdTZWxlY3Rpb24ucHVzaChldmVudC5zdGFydFNsaWNlKTt9ZWxzZXt9Citjb250aW51ZTt9Cit2YXIgdHJhY2s9dGhpcy50cmFja0ZvckV2ZW50KGV2ZW50KTt0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbihldmVudCxvZmZzZXQsbmV3U2VsZWN0aW9uKTt9CitpZihuZXdTZWxlY3Rpb24ubGVuZ3RoPT0wKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gbmV3U2VsZWN0aW9uO30scmVidWlsZEV2ZW50VG9UcmFja01hcDpmdW5jdGlvbigpe3RoaXMuZXZlbnRUb1RyYWNrTWFwXz1uZXcgdHIudWkudHJhY2tzLkV2ZW50VG9UcmFja01hcCgpO3RoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uYWRkRXZlbnRzVG9UcmFja01hcCh0aGlzLmV2ZW50VG9UcmFja01hcF8pO30scmVidWlsZENvbnRhaW5lclRvVHJhY2tNYXA6ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lclRvVHJhY2tNYXAuY2xlYXIoKTt0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKHRoaXMuY29udGFpbmVyVG9UcmFja01hcCk7fSx0cmFja0ZvckV2ZW50OmZ1bmN0aW9uKGV2ZW50KXtyZXR1cm4gdGhpcy5ldmVudFRvVHJhY2tNYXBfW2V2ZW50Lmd1aWRdO319O3JldHVybntUaW1lbGluZVZpZXdwb3J0OlRpbWVsaW5lVmlld3BvcnR9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gWUNvbXBvbmVudChzdGFibGVJZCx5UGVyY2VudE9mZnNldCl7dGhpcy5zdGFibGVJZD1zdGFibGVJZDt0aGlzLnlQZXJjZW50T2Zmc2V0PXlQZXJjZW50T2Zmc2V0O30KK1lDb21wb25lbnQucHJvdG90eXBlPXt0b0RpY3Q6ZnVuY3Rpb24oKXtyZXR1cm57c3RhYmxlSWQ6dGhpcy5zdGFibGVJZCx5UGVyY2VudE9mZnNldDp0aGlzLnlQZXJjZW50T2Zmc2V0fTt9fTtmdW5jdGlvbiBMb2NhdGlvbih4V29ybGQseUNvbXBvbmVudHMpe3RoaXMueFdvcmxkXz14V29ybGQ7dGhpcy55Q29tcG9uZW50c189eUNvbXBvbmVudHM7fTtMb2NhdGlvbi5mcm9tVmlld0Nvb3JkaW5hdGVzPWZ1bmN0aW9uKHZpZXdwb3J0LHZpZXdYLHZpZXdZKXt2YXIgZHQ9dmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHhXb3JsZD1kdC54Vmlld1RvV29ybGQodmlld1gpO3ZhciB5Q29tcG9uZW50cz1bXTt2YXIgZWxlbT1kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHZpZXdYK3ZpZXdwb3J0Lm1vZGVsVHJhY2tDb250YWluZXIuY2FudmFzLm9mZnNldExlZnQsdmlld1krdmlld3BvcnQubW9kZWxUcmFja0NvbnRhaW5lci5jYW52YXMub2Zmc2V0VG9wKTt3aGlsZShlbGVtIGluc3RhbmNlb2YgdHIudWkudHJhY2tzLlRyYWNrKXtpZihlbGVtLmV2ZW50Q29udGFpbmVyKXt2YXIgYm91bmRSZWN0PWVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIHlQZXJjZW50T2Zmc2V0PSh2aWV3WS1ib3VuZFJlY3QudG9wKS9ib3VuZFJlY3QuaGVpZ2h0O3lDb21wb25lbnRzLnB1c2gobmV3IFlDb21wb25lbnQoZWxlbS5ldmVudENvbnRhaW5lci5zdGFibGVJZCx5UGVyY2VudE9mZnNldCkpO30KK2VsZW09ZWxlbS5wYXJlbnRFbGVtZW50O30KK2lmKHlDb21wb25lbnRzLmxlbmd0aD09MCkKK3JldHVybjtyZXR1cm4gbmV3IExvY2F0aW9uKHhXb3JsZCx5Q29tcG9uZW50cyk7fQorTG9jYXRpb24uZnJvbVN0YWJsZUlkQW5kVGltZXN0YW1wPWZ1bmN0aW9uKHZpZXdwb3J0LHN0YWJsZUlkLHRzKXt2YXIgeFdvcmxkPXRzO3ZhciB5Q29tcG9uZW50cz1bXTt2YXIgY29udGFpbmVyVG9UcmFjaz12aWV3cG9ydC5jb250YWluZXJUb1RyYWNrTWFwO3ZhciBlbGVtPWNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKHN0YWJsZUlkKTtpZighZWxlbSkKK3JldHVybjt2YXIgZmlyc3RZPWVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO3doaWxlKGVsZW0gaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spe2lmKGVsZW0uZXZlbnRDb250YWluZXIpe3ZhciBib3VuZFJlY3Q9ZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgeVBlcmNlbnRPZmZzZXQ9KGZpcnN0WS1ib3VuZFJlY3QudG9wKS9ib3VuZFJlY3QuaGVpZ2h0O3lDb21wb25lbnRzLnB1c2gobmV3IFlDb21wb25lbnQoZWxlbS5ldmVudENvbnRhaW5lci5zdGFibGVJZCx5UGVyY2VudE9mZnNldCkpO30KK2VsZW09ZWxlbS5wYXJlbnRFbGVtZW50O30KK2lmKHlDb21wb25lbnRzLmxlbmd0aD09MCkKK3JldHVybjtyZXR1cm4gbmV3IExvY2F0aW9uKHhXb3JsZCx5Q29tcG9uZW50cyk7fQorTG9jYXRpb24ucHJvdG90eXBlPXtnZXQgeFdvcmxkKCl7cmV0dXJuIHRoaXMueFdvcmxkXzt9LGdldENvbnRhaW5pbmdUcmFjazpmdW5jdGlvbih2aWV3cG9ydCl7dmFyIGNvbnRhaW5lclRvVHJhY2s9dmlld3BvcnQuY29udGFpbmVyVG9UcmFja01hcDtmb3IodmFyIGkgaW4gdGhpcy55Q29tcG9uZW50c18pe3ZhciB5Q29tcG9uZW50PXRoaXMueUNvbXBvbmVudHNfW2ldO3ZhciB0cmFjaz1jb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCh5Q29tcG9uZW50LnN0YWJsZUlkKTtpZih0cmFjayE9PXVuZGVmaW5lZCkKK3JldHVybiB0cmFjazt9fSx0b1ZpZXdDb29yZGluYXRlczpmdW5jdGlvbih2aWV3cG9ydCl7dmFyIGR0PXZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciBjb250YWluZXJUb1RyYWNrPXZpZXdwb3J0LmNvbnRhaW5lclRvVHJhY2tNYXA7dmFyIHZpZXdYPWR0LnhXb3JsZFRvVmlldyh0aGlzLnhXb3JsZF8pO3ZhciB2aWV3WT0tMTtmb3IodmFyIGluZGV4IGluIHRoaXMueUNvbXBvbmVudHNfKXt2YXIgeUNvbXBvbmVudD10aGlzLnlDb21wb25lbnRzX1tpbmRleF07dmFyIHRyYWNrPWNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKHlDb21wb25lbnQuc3RhYmxlSWQpO2lmKHRyYWNrIT09dW5kZWZpbmVkKXt2YXIgYm91bmRSZWN0PXRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZpZXdZPXlDb21wb25lbnQueVBlcmNlbnRPZmZzZXQqYm91bmRSZWN0LmhlaWdodCtib3VuZFJlY3QudG9wO2JyZWFrO319CityZXR1cm57dmlld1g6dmlld1gsdmlld1k6dmlld1l9O30sdG9EaWN0OmZ1bmN0aW9uKCl7cmV0dXJue3hXb3JsZDp0aGlzLnhXb3JsZF8seUNvbXBvbmVudHM6dGhpcy55Q29tcG9uZW50c199O319O3JldHVybntMb2NhdGlvbjpMb2NhdGlvbn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5iJyxmdW5jdGlvbigpe3ZhciBMb2NhdGlvbj10ci5tb2RlbC5Mb2NhdGlvbjtmdW5jdGlvbiBVSVN0YXRlKGxvY2F0aW9uLHNjYWxlWCl7dGhpcy5sb2NhdGlvbl89bG9jYXRpb247dGhpcy5zY2FsZVhfPXNjYWxlWDt9O1VJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZz1mdW5jdGlvbihtb2RlbCx2aWV3cG9ydCxzdGF0ZVN0cmluZyl7dmFyIG5hdkJ5RmluZGVyUGF0dGVybj0vXigtP1xkKyhcLlxkKyk/KUAoLispeChcZCsoXC5cZCspPykkL2c7dmFyIG1hdGNoPW5hdkJ5RmluZGVyUGF0dGVybi5leGVjKHN0YXRlU3RyaW5nKTtpZighbWF0Y2gpCityZXR1cm47dmFyIHRpbWVzdGFtcD1wYXJzZUZsb2F0KG1hdGNoWzFdKTt2YXIgc3RhYmxlSWQ9bWF0Y2hbM107dmFyIHNjYWxlWD1wYXJzZUZsb2F0KG1hdGNoWzRdKTtpZihzY2FsZVg8PTApCit0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgU2NhbGVYIHZhbHVlIGluIFVJIFN0YXRlIHN0cmluZy4nKTtpZighdmlld3BvcnQuY29udGFpbmVyVG9UcmFja01hcC5nZXRUcmFja0J5U3RhYmxlSWQoc3RhYmxlSWQpKQordGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFN0YWJsZUlEIGdpdmVuIGluIFVJIFN0YXRlIFN0cmluZy4nKTt2YXIgbG9jPXRyLm1vZGVsLkxvY2F0aW9uLmZyb21TdGFibGVJZEFuZFRpbWVzdGFtcCh2aWV3cG9ydCxzdGFibGVJZCx0aW1lc3RhbXApO3JldHVybiBuZXcgVUlTdGF0ZShsb2Msc2NhbGVYKTt9CitVSVN0YXRlLnByb3RvdHlwZT17Z2V0IGxvY2F0aW9uKCl7cmV0dXJuIHRoaXMubG9jYXRpb25fO30sZ2V0IHNjYWxlWCgpe3JldHVybiB0aGlzLnNjYWxlWF87fSx0b1VzZXJGcmllbmRseVN0cmluZzpmdW5jdGlvbih2aWV3cG9ydCl7dmFyIHRpbWVzdGFtcD10aGlzLmxvY2F0aW9uXy54V29ybGQ7dmFyIHN0YWJsZUlkPXRoaXMubG9jYXRpb25fLmdldENvbnRhaW5pbmdUcmFjayh2aWV3cG9ydCkuZXZlbnRDb250YWluZXIuc3RhYmxlSWQ7dmFyIHNjYWxlWD10aGlzLnNjYWxlWF87cmV0dXJuIHRpbWVzdGFtcC50b0ZpeGVkKDUpKydAJytzdGFibGVJZCsneCcrc2NhbGVYLnRvRml4ZWQoNSk7fSx0b0RpY3Q6ZnVuY3Rpb24oKXtyZXR1cm57bG9jYXRpb246dGhpcy5sb2NhdGlvbl8udG9EaWN0KCksc2NhbGVYOnRoaXMuc2NhbGVYX307fX07cmV0dXJue1VJU3RhdGU6VUlTdGF0ZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe3ZhciBCcnVzaGluZ1N0YXRlPXRyLnVpLmIuQnJ1c2hpbmdTdGF0ZTt2YXIgRXZlbnRTZXQ9dHIubW9kZWwuRXZlbnRTZXQ7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO3ZhciBWaWV3cG9ydD10ci51aS5UaW1lbGluZVZpZXdwb3J0O2Z1bmN0aW9uIEJydXNoaW5nU3RhdGVDb250cm9sbGVyKHRpbWVsaW5lVmlldyl7dHIuYi5FdmVudFRhcmdldC5jYWxsKHRoaXMpO3RoaXMudGltZWxpbmVWaWV3Xz10aW1lbGluZVZpZXc7dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV89bmV3IEJydXNoaW5nU3RhdGUoKTt0aGlzLm9uUG9wU3RhdGVfPXRoaXMub25Qb3BTdGF0ZV8uYmluZCh0aGlzKTt0aGlzLmhpc3RvcnlFbmFibGVkXz1mYWxzZTt0aGlzLnNlbGVjdGlvbnNfPXt9O30KK0JydXNoaW5nU3RhdGVDb250cm9sbGVyLnByb3RvdHlwZT17X19wcm90b19fOnRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlLGRpc3BhdGNoQ2hhbmdlRXZlbnRfOmZ1bmN0aW9uKCl7dmFyIGU9bmV3IHRyLmIuRXZlbnQoJ2NoYW5nZScsZmFsc2UsZmFsc2UpO3RoaXMuZGlzcGF0Y2hFdmVudChlKTt9LGdldCBtb2RlbCgpe2lmKCF0aGlzLnRpbWVsaW5lVmlld18pCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0aGlzLnRpbWVsaW5lVmlld18ubW9kZWw7fSxnZXQgdHJhY2tWaWV3KCl7aWYoIXRoaXMudGltZWxpbmVWaWV3XykKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMudGltZWxpbmVWaWV3Xy50cmFja1ZpZXc7fSxnZXQgdmlld3BvcnQoKXtpZighdGhpcy50aW1lbGluZVZpZXdfKQorcmV0dXJuIHVuZGVmaW5lZDtpZighdGhpcy50aW1lbGluZVZpZXdfLnRyYWNrVmlldykKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMudGltZWxpbmVWaWV3Xy50cmFja1ZpZXcudmlld3BvcnQ7fSxnZXQgaGlzdG9yeUVuYWJsZWQoKXtyZXR1cm4gdGhpcy5oaXN0b3J5RW5hYmxlZF87fSxzZXQgaGlzdG9yeUVuYWJsZWQoaGlzdG9yeUVuYWJsZWQpe3RoaXMuaGlzdG9yeUVuYWJsZWRfPSEhaGlzdG9yeUVuYWJsZWQ7aWYoaGlzdG9yeUVuYWJsZWQpCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLHRoaXMub25Qb3BTdGF0ZV8pO2Vsc2UKK3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsdGhpcy5vblBvcFN0YXRlXyk7fSxtb2RlbFdpbGxDaGFuZ2U6ZnVuY3Rpb24oKXtpZih0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5pc0FwcGxpZWRUb01vZGVsKQordGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8udW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlKCk7fSxtb2RlbERpZENoYW5nZTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uc189e307dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV89bmV3IEJydXNoaW5nU3RhdGUoKTt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5hcHBseVRvTW9kZWxTZWxlY3Rpb25TdGF0ZSh0aGlzLm1vZGVsKTt2YXIgZT1uZXcgdHIuYi5FdmVudCgnbW9kZWwtY2hhbmdlZCcsZmFsc2UsZmFsc2UpO3RoaXMuZGlzcGF0Y2hFdmVudChlKTt0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnRfKCk7fSxvblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfOmZ1bmN0aW9uKCl7dmFyIHNlbGVjdGlvbj10aGlzLnNlbGVjdGlvbjtpZih0aGlzLmhpc3RvcnlFbmFibGVkKXt0aGlzLnNlbGVjdGlvbnNfW3NlbGVjdGlvbi5ndWlkXT1zZWxlY3Rpb247dmFyIHN0YXRlPXtzZWxlY3Rpb25fZ3VpZDpzZWxlY3Rpb24uZ3VpZH07d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHN0YXRlLGRvY3VtZW50LnRpdGxlKTt9fSxvblBvcFN0YXRlXzpmdW5jdGlvbihlKXtpZihlLnN0YXRlPT09bnVsbCkKK3JldHVybjt2YXIgc2VsZWN0aW9uPXRoaXMuc2VsZWN0aW9uc19bZS5zdGF0ZS5zZWxlY3Rpb25fZ3VpZF07aWYoc2VsZWN0aW9uKXt2YXIgbmV3U3RhdGU9dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTtuZXdTdGF0ZS5zZWxlY3Rpb249c2VsZWN0aW9uO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3U3RhdGU7fQorZS5zdG9wUHJvcGFnYXRpb24oKTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uc2VsZWN0aW9uO30sZ2V0IGZpbmRNYXRjaGVzKCl7cmV0dXJuIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmZpbmRNYXRjaGVzO30sZ2V0IHNlbGVjdGlvbk9mSW50ZXJlc3QoKXtyZXR1cm4gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uc2VsZWN0aW9uT2ZJbnRlcmVzdDt9LGdldCBjdXJyZW50QnJ1c2hpbmdTdGF0ZSgpe3JldHVybiB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXzt9LHNldCBjdXJyZW50QnJ1c2hpbmdTdGF0ZShuZXdCcnVzaGluZ1N0YXRlKXtpZihuZXdCcnVzaGluZ1N0YXRlLmlzQXBwbGllZFRvTW9kZWwpCit0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhcHBseSB0aGlzIHN0YXRlLCBpdCBpcyBhcHBsaWVkJyk7dmFyIGhhc1ZhbHVlQ2hhbmdlZD0hdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uZXF1YWxzKG5ld0JydXNoaW5nU3RhdGUpO2lmKG5ld0JydXNoaW5nU3RhdGUhPT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXyYmIWhhc1ZhbHVlQ2hhbmdlZCl7aWYodGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uaXNBcHBsaWVkVG9Nb2RlbCl7dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8udHJhbnNmZXJNb2RlbE93bmVyc2hpcFRvQ2xvbmUobmV3QnJ1c2hpbmdTdGF0ZSk7fQordGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV89bmV3QnJ1c2hpbmdTdGF0ZTtyZXR1cm47fQoraWYodGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uaXNBcHBsaWVkVG9Nb2RlbCkKK3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLnVuYXBwbHlGcm9tTW9kZWxTZWxlY3Rpb25TdGF0ZSgpO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfPW5ld0JydXNoaW5nU3RhdGU7aWYodGhpcy5tb2RlbCkKK3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmFwcGx5VG9Nb2RlbFNlbGVjdGlvblN0YXRlKHRoaXMubW9kZWwpO3RoaXMuZGlzcGF0Y2hDaGFuZ2VFdmVudF8oKTt9LGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6ZnVuY3Rpb24oZmlsdGVyLHNlbGVjdGlvbil7dmFyIHRpbWVsaW5lVmlldz10aGlzLnRpbWVsaW5lVmlld18udHJhY2tWaWV3O2lmKCF0aW1lbGluZVZpZXcpCityZXR1cm4gbmV3IHRyLmIuVGFzaygpO3JldHVybiB0aW1lbGluZVZpZXcuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzayhmaWx0ZXIsc2VsZWN0aW9uKTt9LGZpbmRUZXh0Q2hhbmdlZFRvOmZ1bmN0aW9uKGFsbFBvc3NpYmxlTWF0Y2hlcyl7dmFyIG5ld0JydXNoaW5nU3RhdGU9dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTtuZXdCcnVzaGluZ1N0YXRlLmZpbmRNYXRjaGVzPWFsbFBvc3NpYmxlTWF0Y2hlczt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlPW5ld0JydXNoaW5nU3RhdGU7fSxmaW5kRm9jdXNDaGFuZ2VkVG86ZnVuY3Rpb24oY3VycmVudEZvY3VzKXt2YXIgbmV3QnJ1c2hpbmdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uPWN1cnJlbnRGb2N1czt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlPW5ld0JydXNoaW5nU3RhdGU7dGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7fSxmaW5kVGV4dENsZWFyZWQ6ZnVuY3Rpb24oKXtpZih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfIT09dW5kZWZpbmVkKXt0aGlzLm1vZGVsLnJlbW92ZUFubm90YXRpb24odGhpcy54TmF2U3RyaW5nTWFya2VyXyk7dGhpcy54TmF2U3RyaW5nTWFya2VyXz11bmRlZmluZWQ7fQoraWYodGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXyE9PXVuZGVmaW5lZCl7dGhpcy5tb2RlbC5yZW1vdmVBbm5vdGF0aW9uKHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8pO3RoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl89dW5kZWZpbmVkO30KK3ZhciBuZXdCcnVzaGluZ1N0YXRlPXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7bmV3QnJ1c2hpbmdTdGF0ZS5zZWxlY3Rpb249bmV3IEV2ZW50U2V0KCk7bmV3QnJ1c2hpbmdTdGF0ZS5maW5kTWF0Y2hlcz1uZXcgRXZlbnRTZXQoKTt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlPW5ld0JydXNoaW5nU3RhdGU7dGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7fSx1aVN0YXRlRnJvbVN0cmluZzpmdW5jdGlvbihzdHJpbmcpe3JldHVybiB0ci51aS5iLlVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyh0aGlzLm1vZGVsLHRoaXMudmlld3BvcnQsc3RyaW5nKTt9LG5hdlRvUG9zaXRpb246ZnVuY3Rpb24odWlTdGF0ZSxzaG93TmF2TGluZSl7dGhpcy50cmFja1ZpZXcubmF2VG9Qb3NpdGlvbih1aVN0YXRlLHNob3dOYXZMaW5lKTt9LGNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZTpmdW5jdGlvbihzZWxlY3Rpb24pe3ZhciBuZXdCcnVzaGluZ1N0YXRlPXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7bmV3QnJ1c2hpbmdTdGF0ZS5zZWxlY3Rpb249c2VsZWN0aW9uO25ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXM9bmV3IEV2ZW50U2V0KCk7dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZT1uZXdCcnVzaGluZ1N0YXRlO3RoaXMub25Vc2VySW5pdGlhdGVkU2VsZWN0aW9uQ2hhbmdlXygpO30sc2hvd1NjcmlwdENvbnRyb2xTZWxlY3Rpb246ZnVuY3Rpb24oc2VsZWN0aW9uKXt2YXIgbmV3QnJ1c2hpbmdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uPXNlbGVjdGlvbjtuZXdCcnVzaGluZ1N0YXRlLmZpbmRNYXRjaGVzPW5ldyBFdmVudFNldCgpO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt9LGNoYW5nZVNlbGVjdGlvbkZyb21SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ6ZnVuY3Rpb24oc2VsZWN0aW9uKXt2YXIgbmV3QnJ1c2hpbmdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uPXNlbGVjdGlvbjtuZXdCcnVzaGluZ1N0YXRlLmZpbmRNYXRjaGVzPW5ldyBFdmVudFNldCgpO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt0aGlzLm9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV8oKTt9LGNoYW5nZUFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHM6ZnVuY3Rpb24oZXZlbnRTZXQpe3ZhciBuZXdCcnVzaGluZ1N0YXRlPXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7bmV3QnJ1c2hpbmdTdGF0ZS5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzPWV2ZW50U2V0O3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt9LGNoYW5nZUFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHM6ZnVuY3Rpb24oZXZlbnRTZXQpe3ZhciBuZXdCcnVzaGluZ1N0YXRlPXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7bmV3QnJ1c2hpbmdTdGF0ZS5hbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzPWV2ZW50U2V0O3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt9LGdldFZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGU6ZnVuY3Rpb24odmlld0lkKXtyZXR1cm4gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZS52aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlc1t2aWV3SWRdO30sY2hhbmdlVmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZTpmdW5jdGlvbih2aWV3SWQsbmV3U3RhdGUpe3ZhciBvbGRTdGF0ZXM9dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8udmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXM7dmFyIG5ld1N0YXRlcz17fTtmb3IodmFyIGlkIGluIG9sZFN0YXRlcykKK25ld1N0YXRlc1tpZF09b2xkU3RhdGVzW2lkXTtpZihuZXdTdGF0ZT09PXVuZGVmaW5lZCkKK2RlbGV0ZSBuZXdTdGF0ZXNbdmlld0lkXTtlbHNlCituZXdTdGF0ZXNbdmlld0lkXT1uZXdTdGF0ZTt2YXIgbmV3QnJ1c2hpbmdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld0JydXNoaW5nU3RhdGUudmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXM9bmV3U3RhdGVzO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt9fTtCcnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRDb250cm9sbGVyRm9yRWxlbWVudD1mdW5jdGlvbihlbGVtZW50KXtpZih0ci5pc0hlYWRsZXNzKQordGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCcpO3ZhciBjdXJyZW50RWxlbWVudD1lbGVtZW50O3doaWxlKGN1cnJlbnRFbGVtZW50KXtpZihjdXJyZW50RWxlbWVudC5icnVzaGluZ1N0YXRlQ29udHJvbGxlcikKK3JldHVybiBjdXJyZW50RWxlbWVudC5icnVzaGluZ1N0YXRlQ29udHJvbGxlcjtpZihjdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50KXtjdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O2NvbnRpbnVlO30KK3ZhciBjdXJyZW50Tm9kZT1jdXJyZW50RWxlbWVudDt3aGlsZShjdXJyZW50Tm9kZS5wYXJlbnROb2RlKQorY3VycmVudE5vZGU9Y3VycmVudE5vZGUucGFyZW50Tm9kZTtjdXJyZW50RWxlbWVudD1jdXJyZW50Tm9kZS5ob3N0O30KK3JldHVybiB1bmRlZmluZWQ7fTtyZXR1cm57QnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI6QnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXtmdW5jdGlvbiBTY3JpcHRpbmdPYmplY3QoKXt9CitTY3JpcHRpbmdPYmplY3QucHJvdG90eXBlPXtvbk1vZGVsQ2hhbmdlZDpmdW5jdGlvbigpe319O3JldHVybntTY3JpcHRpbmdPYmplY3Q6U2NyaXB0aW5nT2JqZWN0fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gU2NyaXB0aW5nQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcil7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl89YnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI7dGhpcy5zY3JpcHRPYmplY3ROYW1lc189W107dGhpcy5zY3JpcHRPYmplY3RWYWx1ZXNfPVtdO3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcignbW9kZWwtY2hhbmdlZCcsdGhpcy5vbk1vZGVsQ2hhbmdlZF8uYmluZCh0aGlzKSk7dmFyIHR5cGVJbmZvcz1TY3JpcHRpbmdPYmplY3RSZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCk7dHlwZUluZm9zLmZvckVhY2goZnVuY3Rpb24odHlwZUluZm8pe3RoaXMuYWRkU2NyaXB0T2JqZWN0KHR5cGVJbmZvLm1ldGFkYXRhLm5hbWUsdHlwZUluZm8uY29uc3RydWN0b3IpO2dsb2JhbFt0eXBlSW5mby5tZXRhZGF0YS5uYW1lXT10eXBlSW5mby5jb25zdHJ1Y3Rvcjt9LmJpbmQodGhpcykpO30KK2Z1bmN0aW9uIFNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5KCl7fQordmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KFNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5LG9wdGlvbnMpO1NjcmlwdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlPXtnZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87fSxvbk1vZGVsQ2hhbmdlZF86ZnVuY3Rpb24oKXt0aGlzLnNjcmlwdE9iamVjdFZhbHVlc18uZm9yRWFjaChmdW5jdGlvbih2KXtpZih2Lm9uTW9kZWxDaGFuZ2VkKQordi5vbk1vZGVsQ2hhbmdlZCgpO30pO30sYWRkU2NyaXB0T2JqZWN0OmZ1bmN0aW9uKG5hbWUsdmFsdWUpe3RoaXMuc2NyaXB0T2JqZWN0TmFtZXNfLnB1c2gobmFtZSk7dGhpcy5zY3JpcHRPYmplY3RWYWx1ZXNfLnB1c2godmFsdWUpO30sZXhlY3V0ZUNvbW1hbmQ6ZnVuY3Rpb24oY29tbWFuZCl7dmFyIGY9bmV3IEZ1bmN0aW9uKHRoaXMuc2NyaXB0T2JqZWN0TmFtZXNfLCdyZXR1cm4gZXZhbCgnK2NvbW1hbmQrJyknKTtyZXR1cm4gZi5hcHBseShudWxsLHRoaXMuc2NyaXB0T2JqZWN0VmFsdWVzXyk7fX07cmV0dXJue1NjcmlwdGluZ0NvbnRyb2xsZXI6U2NyaXB0aW5nQ29udHJvbGxlcixTY3JpcHRpbmdPYmplY3RSZWdpc3RyeTpTY3JpcHRpbmdPYmplY3RSZWdpc3RyeX07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtdGFiLXZpZXcnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuJC50c2hoLnN0eWxlLmRpc3BsYXk9J25vbmUnO3RoaXMudGFic189W107dGhpcy5zZWxlY3RlZFRhYl89dW5kZWZpbmVkO2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7aSsrKQordGhpcy5wcm9jZXNzQWRkZWRDaGlsZF8odGhpcy5jaGlsZHJlbltpXSk7dGhpcy5jaGlsZHJlbk9ic2VydmVyXz1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLmNoaWxkcmVuVXBkYXRlZF8uYmluZCh0aGlzKSk7dGhpcy5jaGlsZHJlbk9ic2VydmVyXy5vYnNlcnZlKHRoaXMse2NoaWxkTGlzdDondHJ1ZSd9KTt9LGdldCB0YWJTdHJpcEhlYWRpbmdUZXh0KCl7cmV0dXJuIHRoaXMuJC50c2gudGV4dENvbnRlbnQ7fSxzZXQgdGFiU3RyaXBIZWFkaW5nVGV4dCh0YWJTdHJpcEhlYWRpbmdUZXh0KXt0aGlzLiQudHNoLnRleHRDb250ZW50PXRhYlN0cmlwSGVhZGluZ1RleHQ7aWYoISF0YWJTdHJpcEhlYWRpbmdUZXh0KQordGhpcy4kLnRzaGguc3R5bGUuZGlzcGxheT0nJztlbHNlCit0aGlzLiQudHNoaC5zdHlsZS5kaXNwbGF5PSdub25lJzt9LGdldCBzZWxlY3RlZFRhYigpe3RoaXMuY2hpbGRyZW5VcGRhdGVkXyh0aGlzLmNoaWxkcmVuT2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCksdGhpcy5jaGlsZHJlbk9ic2VydmVyXyk7aWYodGhpcy5zZWxlY3RlZFRhYl8pCityZXR1cm4gdGhpcy5zZWxlY3RlZFRhYl8uY29udGVudDtyZXR1cm4gdW5kZWZpbmVkO30sc2V0IHNlbGVjdGVkVGFiKGNvbnRlbnQpe3RoaXMuY2hpbGRyZW5VcGRhdGVkXyh0aGlzLmNoaWxkcmVuT2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCksdGhpcy5jaGlsZHJlbk9ic2VydmVyXyk7aWYoY29udGVudD09PXVuZGVmaW5lZHx8Y29udGVudD09PW51bGwpe3RoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh1bmRlZmluZWQpO3JldHVybjt9Cit2YXIgY29udGVudFRhYklkPXVuZGVmaW5lZDtmb3IodmFyIGk9MDtpPHRoaXMudGFic18ubGVuZ3RoO2krKykKK2lmKHRoaXMudGFic19baV0uY29udGVudD09PWNvbnRlbnQpe2NvbnRlbnRUYWJJZD10aGlzLnRhYnNfW2ldLmlkO2JyZWFrO30KK2lmKGNvbnRlbnRUYWJJZD09PXVuZGVmaW5lZCl7Y29uc29sZS53YXJuKCdUYWIgbm90IGluIHRhYnMgbGlzdC4gSWdub3JpbmcgY2hhbmdlZCBzZWxlY3Rpb24uJyk7cmV0dXJuO30KK3RoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyhjb250ZW50VGFiSWQpO30sZ2V0IHRhYnNIaWRkZW4oKXt2YXIgdHM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3RhYi1zdHJpcCcpO3JldHVybiB0cy5oYXNBdHRyaWJ1dGUoJ3RhYnMtaGlkZGVuJyk7fSxzZXQgdGFic0hpZGRlbih0YWJzSGlkZGVuKXt0YWJzSGlkZGVuPSEhdGFic0hpZGRlbjt2YXIgdHM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3RhYi1zdHJpcCcpO2lmKHRhYnNIaWRkZW4pCit0cy5zZXRBdHRyaWJ1dGUoJ3RhYnMtaGlkZGVuJyx0cnVlKTtlbHNlCit0cy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYnMtaGlkZGVuJyk7fSxnZXQgdGFicygpe3JldHVybiB0aGlzLnRhYnNfLm1hcChmdW5jdGlvbih0YWJPYmplY3Qpe3JldHVybiB0YWJPYmplY3QuY29udGVudDt9KTt9LHByb2Nlc3NBZGRlZENoaWxkXzpmdW5jdGlvbihjaGlsZCl7dmFyIG9ic2VydmVyQXR0cmlidXRlU2VsZWN0ZWQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5jaGlsZEF0dHJpYnV0ZXNDaGFuZ2VkXy5iaW5kKHRoaXMpKTt2YXIgb2JzZXJ2ZXJBdHRyaWJ1dGVUYWJMYWJlbD1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLmNoaWxkQXR0cmlidXRlc0NoYW5nZWRfLmJpbmQodGhpcykpO3ZhciB0YWJPYmplY3Q9e2lkOnRoaXMudGFic18ubGVuZ3RoLGNvbnRlbnQ6Y2hpbGQsbGFiZWw6Y2hpbGQuZ2V0QXR0cmlidXRlKCd0YWItbGFiZWwnKSxvYnNlcnZlcnM6e2ZvckF0dHJpYnV0ZVNlbGVjdGVkOm9ic2VydmVyQXR0cmlidXRlU2VsZWN0ZWQsZm9yQXR0cmlidXRlVGFiTGFiZWw6b2JzZXJ2ZXJBdHRyaWJ1dGVUYWJMYWJlbH19O3RoaXMudGFic18ucHVzaCh0YWJPYmplY3QpO2lmKGNoaWxkLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSl7aWYodGhpcy5zZWxlY3RlZFRhYl8pCitjaGlsZC5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7ZWxzZQordGhpcy5zZXRTZWxlY3RlZFRhYkJ5SWRfKHRhYk9iamVjdC5pZCk7fQordmFyIHByZXZpb3VzU2VsZWN0ZWQ9Y2hpbGQuc2VsZWN0ZWQ7dmFyIHRhYlZpZXc9dGhpcztPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsJ3NlbGVjdGVkJyx7Y29uZmlndXJhYmxlOnRydWUsc2V0OmZ1bmN0aW9uKHZhbHVlKXtpZih2YWx1ZSl7dGFiVmlldy5jaGFuZ2VTZWxlY3RlZFRhYkJ5SWRfKHRhYk9iamVjdC5pZCk7cmV0dXJuO30KK3ZhciB3YXNTZWxlY3RlZD10YWJWaWV3LnNlbGVjdGVkVGFiXz09PXRhYk9iamVjdDtpZih3YXNTZWxlY3RlZCkKK3RhYlZpZXcuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh1bmRlZmluZWQpO30sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpO319KTtpZihwcmV2aW91c1NlbGVjdGVkKQorY2hpbGQuc2VsZWN0ZWQ9cHJldmlvdXNTZWxlY3RlZDtvYnNlcnZlckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUoY2hpbGQse2F0dHJpYnV0ZUZpbHRlcjpbJ3NlbGVjdGVkJ119KTtvYnNlcnZlckF0dHJpYnV0ZVRhYkxhYmVsLm9ic2VydmUoY2hpbGQse2F0dHJpYnV0ZUZpbHRlcjpbJ3RhYi1sYWJlbCddfSk7fSxwcm9jZXNzUmVtb3ZlZENoaWxkXzpmdW5jdGlvbihjaGlsZCl7Zm9yKHZhciBpPTA7aTx0aGlzLnRhYnNfLmxlbmd0aDtpKyspe3RoaXMudGFic19baV0uaWQ9aTtpZih0aGlzLnRhYnNfW2ldLmNvbnRlbnQ9PT1jaGlsZCl7dGhpcy50YWJzX1tpXS5vYnNlcnZlcnMuZm9yQXR0cmlidXRlU2VsZWN0ZWQuZGlzY29ubmVjdCgpO3RoaXMudGFic19baV0ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVRhYkxhYmVsLmRpc2Nvbm5lY3QoKTtpZih0aGlzLnRhYnNfW2ldPT09dGhpcy5zZWxlY3RlZFRhYl8pe3RoaXMuY2xlYXJTZWxlY3RlZFRhYl8oKTt0aGlzLmZpcmUoJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnKTt9CitjaGlsZC5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7ZGVsZXRlIGNoaWxkLnNlbGVjdGVkO3RoaXMudGFic18uc3BsaWNlKGksMSk7aS0tO319fSxjaGlsZEF0dHJpYnV0ZXNDaGFuZ2VkXzpmdW5jdGlvbihtdXRhdGlvbnMsb2JzZXJ2ZXIpe3ZhciB0YWJPYmplY3Q9dW5kZWZpbmVkO2Zvcih2YXIgaT0wO2k8dGhpcy50YWJzXy5sZW5ndGg7aSsrKXt2YXIgb2JzZXJ2ZXJzPXRoaXMudGFic19baV0ub2JzZXJ2ZXJzO2lmKG9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZD09PW9ic2VydmVyfHxvYnNlcnZlcnMuZm9yQXR0cmlidXRlVGFiTGFiZWw9PT1vYnNlcnZlcil7dGFiT2JqZWN0PXRoaXMudGFic19baV07YnJlYWs7fX0KK2lmKCF0YWJPYmplY3QpCityZXR1cm47Zm9yKHZhciBpPTA7aTxtdXRhdGlvbnMubGVuZ3RoO2krKyl7dmFyIG5vZGU9dGFiT2JqZWN0LmNvbnRlbnQ7aWYobXV0YXRpb25zW2ldLmF0dHJpYnV0ZU5hbWU9PT0ndGFiLWxhYmVsJykKK3RhYk9iamVjdC5sYWJlbD1ub2RlLmdldEF0dHJpYnV0ZSgndGFiLWxhYmVsJyk7aWYobXV0YXRpb25zW2ldLmF0dHJpYnV0ZU5hbWU9PT0nc2VsZWN0ZWQnKXt2YXIgbm9kZUlzU2VsZWN0ZWQ9bm9kZS5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7aWYobm9kZUlzU2VsZWN0ZWQpCit0aGlzLmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8odGFiT2JqZWN0LmlkKTtlbHNlCit0aGlzLmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8odW5kZWZpbmVkKTt9fX0sY2hpbGRyZW5VcGRhdGVkXzpmdW5jdGlvbihtdXRhdGlvbnMsb2JzZXJ2ZXIpe211dGF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG11dGF0aW9uKXtmb3IodmFyIGk9MDtpPG11dGF0aW9uLnJlbW92ZWROb2Rlcy5sZW5ndGg7aSsrKQordGhpcy5wcm9jZXNzUmVtb3ZlZENoaWxkXyhtdXRhdGlvbi5yZW1vdmVkTm9kZXNbaV0pO2Zvcih2YXIgaT0wO2k8bXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7aSsrKQordGhpcy5wcm9jZXNzQWRkZWRDaGlsZF8obXV0YXRpb24uYWRkZWROb2Rlc1tpXSk7fSx0aGlzKTt9LHRhYkJ1dHRvblNlbGVjdEhhbmRsZXJfOmZ1bmN0aW9uKGV2ZW50LGRldGFpbCxzZW5kZXIpe3RoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyhzZW5kZXIuZ2V0QXR0cmlidXRlKCdidXR0b24taWQnKSk7fSxjaGFuZ2VTZWxlY3RlZFRhYkJ5SWRfOmZ1bmN0aW9uKGlkKXt2YXIgbmV3VGFiPWlkIT09dW5kZWZpbmVkP3RoaXMudGFic19baWRdOnVuZGVmaW5lZDt2YXIgY2hhbmdlZD10aGlzLnNlbGVjdGVkVGFiXyE9PW5ld1RhYjt0aGlzLnNhdmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fKCk7dGhpcy5jbGVhclNlbGVjdGVkVGFiXygpO2lmKGlkIT09dW5kZWZpbmVkKXt0aGlzLnNldFNlbGVjdGVkVGFiQnlJZF8oaWQpO3RoaXMucmVzdG9yZUN1cnJlbnRUYWJTY3JvbGxQb3NpdGlvbl8oKTt9CitpZihjaGFuZ2VkKQordGhpcy5maXJlKCdzZWxlY3RlZC10YWItY2hhbmdlJyk7fSxzZXRTZWxlY3RlZFRhYkJ5SWRfOmZ1bmN0aW9uKGlkKXt0aGlzLnNlbGVjdGVkVGFiXz10aGlzLnRhYnNfW2lkXTt0aGlzLnNlbGVjdGVkVGFiXy5vYnNlcnZlcnMuZm9yQXR0cmlidXRlU2VsZWN0ZWQuZGlzY29ubmVjdCgpO3RoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsJ3NlbGVjdGVkJyk7dGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUodGhpcy5zZWxlY3RlZFRhYl8uY29udGVudCx7YXR0cmlidXRlRmlsdGVyOlsnc2VsZWN0ZWQnXX0pO30sc2F2ZVRhYlN0YXRlczpmdW5jdGlvbigpe3RoaXMuc2F2ZUN1cnJlbnRUYWJTY3JvbGxQb3NpdGlvbl8oKTt9LHNhdmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fOmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFRhYl8pe3RoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQuX3NhdmVkU2Nyb2xsVG9wPXRoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxUb3A7dGhpcy5zZWxlY3RlZFRhYl8uY29udGVudC5fc2F2ZWRTY3JvbGxMZWZ0PXRoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxMZWZ0O319LHJlc3RvcmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fOmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFRhYl8pe3RoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxUb3A9dGhpcy5zZWxlY3RlZFRhYl8uY29udGVudC5fc2F2ZWRTY3JvbGxUb3B8fDA7dGhpcy4kWydjb250ZW50LWNvbnRhaW5lciddLnNjcm9sbExlZnQ9dGhpcy5zZWxlY3RlZFRhYl8uY29udGVudC5fc2F2ZWRTY3JvbGxMZWZ0fHwwO319LGNsZWFyU2VsZWN0ZWRUYWJfOmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFRhYl8pe3RoaXMuc2VsZWN0ZWRUYWJfLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZC5kaXNjb25uZWN0KCk7dGhpcy5zZWxlY3RlZFRhYl8uY29udGVudC5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7dGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUodGhpcy5zZWxlY3RlZFRhYl8uY29udGVudCx7YXR0cmlidXRlRmlsdGVyOlsnc2VsZWN0ZWQnXX0pO3RoaXMuc2VsZWN0ZWRUYWJfPXVuZGVmaW5lZDt9fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXN1Yi12aWV3Jyx7c2V0IHRhYkxhYmVsKGxhYmVsKXtyZXR1cm4gdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsbGFiZWwpO30sZ2V0IHRhYkxhYmVsKCl7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCd0YWItbGFiZWwnKTt9LGdldCByZXF1aXJlc1RhbGxWaWV3KCl7cmV0dXJuIGZhbHNlO30sZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpe3JldHVybiB1bmRlZmluZWQ7fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQhJyk7fSxnZXQgc2VsZWN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQhJyk7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51bml0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBUaW1lRHVyYXRpb24oZHVyYXRpb24pe3RoaXMuZHVyYXRpb249ZHVyYXRpb247fTtUaW1lRHVyYXRpb24ucHJvdG90eXBlPXt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBUaW1lRHVyYXRpb24uZm9ybWF0KHRoaXMuZHVyYXRpb24pO319O1RpbWVEdXJhdGlvbi5mb3JtYXQ9ZnVuY3Rpb24oZHVyYXRpb24pe3JldHVybiB0ci5iLnVuaXRzLlRpbWUuY3VycmVudERpc3BsYXlVbml0LmZvcm1hdChkdXJhdGlvbik7fTtyZXR1cm57VGltZUR1cmF0aW9uOlRpbWVEdXJhdGlvbn07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5jb250cm9sbGVyXz10ci5jLkJydXNoaW5nU3RhdGVDb250cm9sbGVyLmdldENvbnRyb2xsZXJGb3JFbGVtZW50KHRoaXMpO30sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLmNsZWFySGlnaGxpZ2h0XygpO3RoaXMuY29udHJvbGxlcl89dW5kZWZpbmVkO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy5zZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLnRleHRDb250ZW50PXNlbGVjdGlvbi51c2VyRnJpZW5kbHlOYW1lO30sc2V0U2VsZWN0aW9uQW5kQ29udGVudDpmdW5jdGlvbihzZWxlY3Rpb24sb3B0X3RleHRDb250ZW50KXt0aGlzLnNlbGVjdGlvbl89c2VsZWN0aW9uO2lmKG9wdF90ZXh0Q29udGVudCkKK3RoaXMudGV4dENvbnRlbnQ9b3B0X3RleHRDb250ZW50O30sZ2V0Q3VycmVudFNlbGVjdGlvbl86ZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5zZWxlY3Rpb25fPT09J2Z1bmN0aW9uJykKK3JldHVybiB0aGlzLnNlbGVjdGlvbl8oKTtyZXR1cm4gdGhpcy5zZWxlY3Rpb25fO30sc2V0SGlnaGxpZ2h0XzpmdW5jdGlvbihvcHRfZXZlbnRTZXQpe2lmKHRoaXMuY29udHJvbGxlcl8pCit0aGlzLmNvbnRyb2xsZXJfLmNoYW5nZUFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHMob3B0X2V2ZW50U2V0KTt9LGNsZWFySGlnaGxpZ2h0XzpmdW5jdGlvbihvcHRfZXZlbnRTZXQpe3RoaXMuc2V0SGlnaGxpZ2h0XygpO30sb25DbGlja2VkXzpmdW5jdGlvbigpe2lmKCF0aGlzLnNlbGVjdGlvbl8pCityZXR1cm47dmFyIGV2ZW50PW5ldyB0ci5tb2RlbC5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtldmVudC5zZWxlY3Rpb249dGhpcy5nZXRDdXJyZW50U2VsZWN0aW9uXygpO3RoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7fSxvbk1vdXNlRW50ZXJfOmZ1bmN0aW9uKCl7dGhpcy5zZXRIaWdobGlnaHRfKHRoaXMuZ2V0Q3VycmVudFNlbGVjdGlvbl8oKSk7fSxvbk1vdXNlTGVhdmVfOmZ1bmN0aW9uKCl7dGhpcy5jbGVhckhpZ2hsaWdodF8oKTt9fSk7J3VzZSBzdHJpY3QnOyhmdW5jdGlvbigpe3ZhciBSSUdIVF9BUlJPVz1TdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjViNik7dmFyIFVOU09SVEVEX0FSUk9XPVN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNUJGKTt2YXIgQVNDRU5ESU5HX0FSUk9XPVN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNUI0KTt2YXIgREVTQ0VORElOR19BUlJPVz1TdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCRSk7dmFyIEJBU0lDX0lOREVOVEFUSU9OPTg7UG9seW1lcigndHItdWktYi10YWJsZScse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXz1mYWxzZTt0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXz1mYWxzZTt0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz11bmRlZmluZWQ7dGhpcy5zZWxlY3RlZENvbHVtbkluZGV4Xz11bmRlZmluZWQ7dGhpcy50YWJsZUNvbHVtbnNfPVtdO3RoaXMudGFibGVSb3dzXz1bXTt0aGlzLnRhYmxlUm93c0luZm9fPVtdO3RoaXMudGFibGVGb290ZXJSb3dzXz1bXTt0aGlzLnNvcnRDb2x1bW5JbmRleF89dW5kZWZpbmVkO3RoaXMuc29ydERlc2NlbmRpbmdfPWZhbHNlO3RoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXz1bXTt0aGlzLmhlYWRlckNlbGxzXz1bXTt0aGlzLnNob3dIZWFkZXJfPXRydWU7dGhpcy5lbXB0eVZhbHVlXz11bmRlZmluZWQ7dGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXz0nc3ViUm93cyc7fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuJC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpLHRydWUpO30sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXz1mYWxzZTt0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXz1mYWxzZTt0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz11bmRlZmluZWQ7dGhpcy5zZWxlY3RlZENvbHVtbkluZGV4Xz11bmRlZmluZWQ7dGhpcy50ZXh0Q29udGVudD0nJzt0aGlzLnRhYmxlQ29sdW1uc189W107dGhpcy50YWJsZVJvd3NfPVtdO3RoaXMudGFibGVSb3dzSW5mb189bmV3IFdlYWtNYXAoKTt0aGlzLnRhYmxlRm9vdGVyUm93c189W107dGhpcy50YWJsZUZvb3RlclJvd3NJbmZvXz1uZXcgV2Vha01hcCgpO3RoaXMuc29ydENvbHVtbkluZGV4Xz11bmRlZmluZWQ7dGhpcy5zb3J0RGVzY2VuZGluZ189ZmFsc2U7dGhpcy5jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnNfPVtdO3RoaXMuaGVhZGVyQ2VsbHNfPVtdO3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV89J3N1YlJvd3MnO30sZ2V0IHNob3dIZWFkZXIoKXtyZXR1cm4gdGhpcy5zaG93SGVhZGVyXzt9LHNldCBzaG93SGVhZGVyKHNob3dIZWFkZXIpe3RoaXMuc2hvd0hlYWRlcl89c2hvd0hlYWRlcjt0aGlzLnNjaGVkdWxlUmVidWlsZEhlYWRlcnNfKCk7fSxzZXQgc3ViUm93c1Byb3BlcnR5TmFtZShuYW1lKXt0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfPW5hbWU7fSxnZXQgZW1wdHlWYWx1ZSgpe3JldHVybiB0aGlzLmVtcHR5VmFsdWVfO30sc2V0IGVtcHR5VmFsdWUoZW1wdHlWYWx1ZSl7dmFyIHByZXZpb3VzRW1wdHlWYWx1ZT10aGlzLmVtcHR5VmFsdWVfO3RoaXMuZW1wdHlWYWx1ZV89ZW1wdHlWYWx1ZTtpZih0aGlzLnRhYmxlUm93c18ubGVuZ3RoPT09MCYmZW1wdHlWYWx1ZSE9PXByZXZpb3VzRW1wdHlWYWx1ZSkKK3RoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTt9LHNldCB0YWJsZUNvbHVtbnMoY29sdW1ucyl7dmFyIGNvbHVtbnNXaXRoRXhwYW5kQnV0dG9ucz1bXTtmb3IodmFyIGk9MDtpPGNvbHVtbnMubGVuZ3RoO2krKyl7aWYoY29sdW1uc1tpXS5zaG93RXhwYW5kQnV0dG9ucykKK2NvbHVtbnNXaXRoRXhwYW5kQnV0dG9ucy5wdXNoKGkpO30KK2lmKGNvbHVtbnNXaXRoRXhwYW5kQnV0dG9ucy5sZW5ndGg9PT0wKXtjb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnM9WzBdO30KK2Zvcih2YXIgaT0wO2k8Y29sdW1ucy5sZW5ndGg7aSsrKXt2YXIgY29sSW5mbz1jb2x1bW5zW2ldO2lmKGNvbEluZm8ud2lkdGg9PT11bmRlZmluZWQpCitjb250aW51ZTt2YXIgaGFzRXhwYW5kQnV0dG9uPWNvbHVtbnNXaXRoRXhwYW5kQnV0dG9ucy5pbmRleE9mKGkpIT09LTE7dmFyIHc9Y29sSW5mby53aWR0aDtpZih3KXtpZigvXGQrcHgvLnRlc3Qodykpe2NvbnRpbnVlO31lbHNlIGlmKC9cZCslLy50ZXN0KHcpKXtpZihoYXNFeHBhbmRCdXR0b24pe3Rocm93IG5ldyBFcnJvcignQ29sdW1ucyBjYW5ub3QgYmUgJS1zaXplZCBhbmQgaG9zdCAnKycgYW4gZXhwYW5kIGJ1dHRvbicpO319ZWxzZXt0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB3aWR0aCBzdHJpbmcnKTt9fX0KK3RoaXMudGFibGVDb2x1bW5zXz1jb2x1bW5zO3RoaXMuaGVhZGVyQ2VsbHNfPVtdO3RoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXz1jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnM7dGhpcy5zb3J0Q29sdW1uSW5kZXg9dW5kZWZpbmVkO3RoaXMuc2NoZWR1bGVSZWJ1aWxkSGVhZGVyc18oKTt0aGlzLnRhYmxlUm93cz10aGlzLnRhYmxlUm93c187fSxnZXQgdGFibGVDb2x1bW5zKCl7cmV0dXJuIHRoaXMudGFibGVDb2x1bW5zXzt9LHNldCB0YWJsZVJvd3Mocm93cyl7dGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb189dW5kZWZpbmVkO3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF89dW5kZWZpbmVkO3RoaXMubWF5YmVVcGRhdGVTZWxlY3RlZFJvd18oKTt0aGlzLnRhYmxlUm93c189cm93czt0aGlzLnRhYmxlUm93c0luZm9fPW5ldyBXZWFrTWFwKCk7dGhpcy5zY2hlZHVsZVJlYnVpbGRCb2R5XygpO30sZ2V0IHRhYmxlUm93cygpe3JldHVybiB0aGlzLnRhYmxlUm93c187fSxzZXQgZm9vdGVyUm93cyhyb3dzKXt0aGlzLnRhYmxlRm9vdGVyUm93c189cm93czt0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fPW5ldyBXZWFrTWFwKCk7dGhpcy5zY2hlZHVsZVJlYnVpbGRGb290ZXJfKCk7fSxnZXQgZm9vdGVyUm93cygpe3JldHVybiB0aGlzLnRhYmxlRm9vdGVyUm93c187fSxzZXQgc29ydENvbHVtbkluZGV4KG51bWJlcil7aWYobnVtYmVyPT09dW5kZWZpbmVkKXt0aGlzLnNvcnRDb2x1bW5JbmRleF89dW5kZWZpbmVkO3RoaXMudXBkYXRlSGVhZGVyQXJyb3dzXygpO3JldHVybjt9CitpZih0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoPD1udW1iZXIpCit0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbiBudW1iZXIgJytudW1iZXIrJyBpcyBvdXQgb2YgYm91bmRzLicpO2lmKCF0aGlzLnRhYmxlQ29sdW1uc19bbnVtYmVyXS5jbXApCit0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbiAnK251bWJlcisnIGRvZXMgbm90IGhhdmUgYSBjb21wYXJhdG9yLicpO3RoaXMuc29ydENvbHVtbkluZGV4Xz1udW1iZXI7dGhpcy51cGRhdGVIZWFkZXJBcnJvd3NfKCk7dGhpcy5zY2hlZHVsZVJlYnVpbGRCb2R5XygpO30sZ2V0IHNvcnRDb2x1bW5JbmRleCgpe3JldHVybiB0aGlzLnNvcnRDb2x1bW5JbmRleF87fSxzZXQgc29ydERlc2NlbmRpbmcodmFsdWUpe3ZhciBuZXdWYWx1ZT0hIXZhbHVlO2lmKG5ld1ZhbHVlIT09dGhpcy5zb3J0RGVzY2VuZGluZ18pe3RoaXMuc29ydERlc2NlbmRpbmdfPW5ld1ZhbHVlO3RoaXMudXBkYXRlSGVhZGVyQXJyb3dzXygpO3RoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTt9fSxnZXQgc29ydERlc2NlbmRpbmcoKXtyZXR1cm4gdGhpcy5zb3J0RGVzY2VuZGluZ187fSx1cGRhdGVIZWFkZXJBcnJvd3NfOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTx0aGlzLmhlYWRlckNlbGxzXy5sZW5ndGg7aSsrKXtpZighdGhpcy50YWJsZUNvbHVtbnNfW2ldLmNtcCl7dGhpcy5oZWFkZXJDZWxsc19baV0uc2lkZUNvbnRlbnQ9Jyc7Y29udGludWU7fQoraWYoaSE9PXRoaXMuc29ydENvbHVtbkluZGV4Xyl7dGhpcy5oZWFkZXJDZWxsc19baV0uc2lkZUNvbnRlbnQ9VU5TT1JURURfQVJST1c7Y29udGludWU7fQordGhpcy5oZWFkZXJDZWxsc19baV0uc2lkZUNvbnRlbnQ9dGhpcy5zb3J0RGVzY2VuZGluZ18/REVTQ0VORElOR19BUlJPVzpBU0NFTkRJTkdfQVJST1c7fX0sc29ydFJvd3NfOmZ1bmN0aW9uKHJvd3Mpe3Jvd3Muc29ydChmdW5jdGlvbihyb3dBLHJvd0Ipe2lmKHRoaXMuc29ydERlc2NlbmRpbmdfKQorcmV0dXJuIHRoaXMudGFibGVDb2x1bW5zX1t0aGlzLnNvcnRDb2x1bW5JbmRleF9dLmNtcChyb3dCLnVzZXJSb3cscm93QS51c2VyUm93KTtyZXR1cm4gdGhpcy50YWJsZUNvbHVtbnNfW3RoaXMuc29ydENvbHVtbkluZGV4X10uY21wKHJvd0EudXNlclJvdyxyb3dCLnVzZXJSb3cpO30uYmluZCh0aGlzKSk7Zm9yKHZhciBpPTA7aTxyb3dzLmxlbmd0aDtpKyspe2lmKHJvd3NbaV0uaXNFeHBhbmRlZCkKK3RoaXMuc29ydFJvd3NfKHJvd3NbaV1bdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10pO319LGdlbmVyYXRlSGVhZGVyQ29sdW1uc186ZnVuY3Rpb24oKXt0aGlzLmhlYWRlckNlbGxzXz1bXTt0aGlzLiQuaGVhZC50ZXh0Q29udGVudD0nJztpZighdGhpcy5zaG93SGVhZGVyXykKK3JldHVybjt2YXIgdHI9dGhpcy5hcHBlbmROZXdFbGVtZW50Xyh0aGlzLiQuaGVhZCwndHInKTtmb3IodmFyIGk9MDtpPHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7aSsrKXt2YXIgdGQ9dGhpcy5hcHBlbmROZXdFbGVtZW50Xyh0ciwndGQnKTt2YXIgaGVhZGVyQ2VsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlLWhlYWRlci1jZWxsJyk7aWYodGhpcy5zaG93SGVhZGVyKQoraGVhZGVyQ2VsbC5jZWxsVGl0bGU9dGhpcy50YWJsZUNvbHVtbnNfW2ldLnRpdGxlO2Vsc2UKK2hlYWRlckNlbGwuY2VsbFRpdGxlPScnO2lmKHRoaXMudGFibGVDb2x1bW5zX1tpXS5jbXApe3RkLmNsYXNzTGlzdC5hZGQoJ3NlbnNpdGl2ZScpO2hlYWRlckNlbGwudGFwQ2FsbGJhY2s9dGhpcy5jcmVhdGVTb3J0Q2FsbGJhY2tfKGkpO2lmKHRoaXMuc29ydENvbHVtbkluZGV4Xz09PWkpCitoZWFkZXJDZWxsLnNpZGVDb250ZW50PXRoaXMuc29ydERlc2NlbmRpbmdfP0RFU0NFTkRJTkdfQVJST1c6QVNDRU5ESU5HX0FSUk9XO2Vsc2UKK2hlYWRlckNlbGwuc2lkZUNvbnRlbnQ9VU5TT1JURURfQVJST1c7fQordGQuYXBwZW5kQ2hpbGQoaGVhZGVyQ2VsbCk7dGhpcy5oZWFkZXJDZWxsc18ucHVzaChoZWFkZXJDZWxsKTt9fSxhcHBseVNpemVzXzpmdW5jdGlvbigpe2lmKHRoaXMudGFibGVSb3dzXy5sZW5ndGg9PT0wJiYhdGhpcy5zaG93SGVhZGVyKQorcmV0dXJuO3ZhciByb3dUb1JlbW92ZVNpemluZzt2YXIgcm93VG9TaXplO2lmKHRoaXMuc2hvd0hlYWRlcil7cm93VG9TaXplPXRoaXMuJC5oZWFkLmNoaWxkcmVuWzBdO3Jvd1RvUmVtb3ZlU2l6aW5nPXRoaXMuJC5ib2R5LmNoaWxkcmVuWzBdO31lbHNle3Jvd1RvU2l6ZT10aGlzLiQuYm9keS5jaGlsZHJlblswXTtyb3dUb1JlbW92ZVNpemluZz10aGlzLiQuaGVhZC5jaGlsZHJlblswXTt9Citmb3IodmFyIGk9MDtpPHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7aSsrKXtpZihyb3dUb1JlbW92ZVNpemluZyYmcm93VG9SZW1vdmVTaXppbmcuY2hpbGRyZW5baV0pe3ZhciB0ZFRvUmVtb3ZlU2l6aW5nPXJvd1RvUmVtb3ZlU2l6aW5nLmNoaWxkcmVuW2ldO3RkVG9SZW1vdmVTaXppbmcuc3R5bGUubWluV2lkdGg9Jyc7dGRUb1JlbW92ZVNpemluZy5zdHlsZS53aWR0aD0nJzt9Cit2YXIgdGQ9cm93VG9TaXplLmNoaWxkcmVuW2ldO3ZhciBkZWx0YTtpZih0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc18uaW5kZXhPZihpKSE9PS0xKXt0ZC5zdHlsZS5wYWRkaW5nTGVmdD1CQVNJQ19JTkRFTlRBVElPTisncHgnO2RlbHRhPUJBU0lDX0lOREVOVEFUSU9OKydweCc7fWVsc2V7ZGVsdGE9dW5kZWZpbmVkO30KK2Z1bmN0aW9uIGNhbGMoYmFzZSxkZWx0YSl7aWYoZGVsdGEpCityZXR1cm4nY2FsYygnK2Jhc2UrJyAtICcrZGVsdGErJyknO2Vsc2UKK3JldHVybiBiYXNlO30KK3ZhciB3PXRoaXMudGFibGVDb2x1bW5zX1tpXS53aWR0aDtpZih3KXtpZigvXGQrcHgvLnRlc3Qodykpe3RkLnN0eWxlLm1pbldpZHRoPWNhbGModyxkZWx0YSk7fWVsc2UgaWYoL1xkKyUvLnRlc3Qodykpe3RkLnN0eWxlLndpZHRoPXc7fWVsc2V7dGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgd2lkdGggc3RyaW5nOiAnK3cpO319fX0sY3JlYXRlU29ydENhbGxiYWNrXzpmdW5jdGlvbihjb2x1bW5OdW1iZXIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBwcmV2aW91c0luZGV4PXRoaXMuc29ydENvbHVtbkluZGV4O3RoaXMuc29ydENvbHVtbkluZGV4PWNvbHVtbk51bWJlcjtpZihwcmV2aW91c0luZGV4IT09Y29sdW1uTnVtYmVyKQordGhpcy5zb3J0RGVzY2VuZGluZz1mYWxzZTtlbHNlCit0aGlzLnNvcnREZXNjZW5kaW5nPSF0aGlzLnNvcnREZXNjZW5kaW5nO30uYmluZCh0aGlzKTt9LGdlbmVyYXRlVGFibGVSb3dOb2Rlc186ZnVuY3Rpb24odGFibGVTZWN0aW9uLHVzZXJSb3dzLHJvd0luZm9NYXAsaW5kZW50YXRpb24sbGFzdEFkZGVkUm93LHBhcmVudFJvd0luZm8pe2lmKHRoaXMuc29ydENvbHVtbkluZGV4XyE9PXVuZGVmaW5lZCYmdGFibGVTZWN0aW9uPT09dGhpcy4kLmJvZHkpe3VzZXJSb3dzPXVzZXJSb3dzLnNsaWNlKCk7dXNlclJvd3Muc29ydChmdW5jdGlvbihyb3dBLHJvd0Ipe3ZhciBjPXRoaXMudGFibGVDb2x1bW5zX1t0aGlzLnNvcnRDb2x1bW5JbmRleF9dLmNtcChyb3dBLHJvd0IpO2lmKHRoaXMuc29ydERlc2NlbmRpbmdfKQorYz0tYztyZXR1cm4gYzt9LmJpbmQodGhpcykpO30KK2Zvcih2YXIgaT0wO2k8dXNlclJvd3MubGVuZ3RoO2krKyl7dmFyIHVzZXJSb3c9dXNlclJvd3NbaV07dmFyIHJvd0luZm89dGhpcy5nZXRPckNyZWF0ZVJvd0luZm9Gb3JfKHJvd0luZm9NYXAsdXNlclJvdyxwYXJlbnRSb3dJbmZvKTt2YXIgaHRtbE5vZGU9dGhpcy5nZXRIVE1MTm9kZUZvclJvd0luZm9fKHRhYmxlU2VjdGlvbixyb3dJbmZvLHJvd0luZm9NYXAsaW5kZW50YXRpb24pO2lmKGxhc3RBZGRlZFJvdz09PXVuZGVmaW5lZCl7dGFibGVTZWN0aW9uLmluc2VydEJlZm9yZShodG1sTm9kZSx0YWJsZVNlY3Rpb24uZmlyc3RDaGlsZCk7fWVsc2V7dmFyIG5leHRTaWJsaW5nT2ZMYXN0QWRkZWQ9bGFzdEFkZGVkUm93Lm5leHRTaWJsaW5nO3RhYmxlU2VjdGlvbi5pbnNlcnRCZWZvcmUoaHRtbE5vZGUsbmV4dFNpYmxpbmdPZkxhc3RBZGRlZCk7fQordGhpcy51cGRhdGVUYWJJbmRleEZvclRhYmxlUm93Tm9kZV8oaHRtbE5vZGUpO2xhc3RBZGRlZFJvdz1odG1sTm9kZTtpZighcm93SW5mby5pc0V4cGFuZGVkKQorY29udGludWU7bGFzdEFkZGVkUm93PXRoaXMuZ2VuZXJhdGVUYWJsZVJvd05vZGVzXyh0YWJsZVNlY3Rpb24sdXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSxyb3dJbmZvTWFwLGluZGVudGF0aW9uKzEsbGFzdEFkZGVkUm93LHJvd0luZm8pO30KK3JldHVybiBsYXN0QWRkZWRSb3c7fSxnZXRPckNyZWF0ZVJvd0luZm9Gb3JfOmZ1bmN0aW9uKHJvd0luZm9NYXAsdXNlclJvdyxwYXJlbnRSb3dJbmZvKXtpZihyb3dJbmZvTWFwLmhhcyh1c2VyUm93KSkKK3JldHVybiByb3dJbmZvTWFwLmdldCh1c2VyUm93KTt2YXIgcm93SW5mbz17dXNlclJvdzp1c2VyUm93LGh0bWxOb2RlOnVuZGVmaW5lZCxpc0V4cGFuZGVkOnVzZXJSb3cuaXNFeHBhbmRlZHx8ZmFsc2UscGFyZW50Um93SW5mbzpwYXJlbnRSb3dJbmZvfTtyb3dJbmZvTWFwLnNldCh1c2VyUm93LHJvd0luZm8pO3JldHVybiByb3dJbmZvO30sZ2V0SFRNTE5vZGVGb3JSb3dJbmZvXzpmdW5jdGlvbih0YWJsZVNlY3Rpb24scm93SW5mbyxyb3dJbmZvTWFwLGluZGVudGF0aW9uKXtpZihyb3dJbmZvLmh0bWxOb2RlKQorcmV0dXJuIHJvd0luZm8uaHRtbE5vZGU7dmFyIElOREVOVF9TUEFDRT1pbmRlbnRhdGlvbioxNjt2YXIgSU5ERU5UX1NQQUNFX05PX0JVVFRPTj1pbmRlbnRhdGlvbioxNitCQVNJQ19JTkRFTlRBVElPTjt2YXIgdHJFbGVtZW50PXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpO3Jvd0luZm8uaHRtbE5vZGU9dHJFbGVtZW50O3Jvd0luZm8uaW5kZW50YXRpb249aW5kZW50YXRpb247dHJFbGVtZW50LnJvd0luZm89cm93SW5mbztmb3IodmFyIGk9MDtpPHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7KXt2YXIgdGQ9dGhpcy5hcHBlbmROZXdFbGVtZW50Xyh0ckVsZW1lbnQsJ3RkJyk7dGQuY29sdW1uSW5kZXg9aTt2YXIgY29sdW1uPXRoaXMudGFibGVDb2x1bW5zX1tpXTt2YXIgdmFsdWU9Y29sdW1uLnZhbHVlKHJvd0luZm8udXNlclJvdyk7dmFyIGNvbFNwYW49Y29sdW1uLmNvbFNwYW4/Y29sdW1uLmNvbFNwYW46MTt0ZC5zdHlsZS5jb2xTcGFuPWNvbFNwYW47aWYoY29sdW1uLnRleHRBbGlnbil7dGQuc3R5bGUudGV4dEFsaWduPWNvbHVtbi50ZXh0QWxpZ247fQoraWYodGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGkpKQordGQuY2xhc3NMaXN0LmFkZCgnc3VwcG9ydHMtc2VsZWN0aW9uJyk7aWYodGhpcy5jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnNfLmluZGV4T2YoaSkhPS0xKXtpZihyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10mJnJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGg+MCl7dGQuc3R5bGUucGFkZGluZ0xlZnQ9SU5ERU5UX1NQQUNFKydweCc7dmFyIGV4cGFuZEJ1dHRvbj10aGlzLmFwcGVuZE5ld0VsZW1lbnRfKHRkLCdleHBhbmQtYnV0dG9uJyk7ZXhwYW5kQnV0dG9uLnRleHRDb250ZW50PVJJR0hUX0FSUk9XO2lmKHJvd0luZm8uaXNFeHBhbmRlZCkKK2V4cGFuZEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdidXR0b24tZXhwYW5kZWQnKTt9ZWxzZXt0ZC5zdHlsZS5wYWRkaW5nTGVmdD1JTkRFTlRfU1BBQ0VfTk9fQlVUVE9OKydweCc7fX0KK2lmKHZhbHVlIT09dW5kZWZpbmVkKQordGQuYXBwZW5kQ2hpbGQodHIudWkuYi5hc0hUTUxPclRleHROb2RlKHZhbHVlLHRoaXMub3duZXJEb2N1bWVudCkpO2krPWNvbFNwYW47fQordmFyIG5lZWRzQ2xpY2tMaXN0ZW5lcj1mYWxzZTtpZih0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc18ubGVuZ3RoKQorbmVlZHNDbGlja0xpc3RlbmVyPXRydWU7ZWxzZSBpZih0YWJsZVNlY3Rpb249PXRoaXMuJC5ib2R5KQorbmVlZHNDbGlja0xpc3RlbmVyPXRydWU7aWYobmVlZHNDbGlja0xpc3RlbmVyKXt0ckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7aWYoZS50YXJnZXQudGFnTmFtZT09J0VYUEFORC1CVVRUT04nKXt0aGlzLnNldEV4cGFuZGVkRm9yVXNlclJvd18odGFibGVTZWN0aW9uLHJvd0luZm9NYXAscm93SW5mby51c2VyUm93LCFyb3dJbmZvLmlzRXhwYW5kZWQpO3JldHVybjt9CitmdW5jdGlvbiBnZXRURChjdXIpe2lmKGN1cj09PXRyRWxlbWVudCkKK3Rocm93IG5ldyBFcnJvcignd29haCcpO2lmKGN1ci5wYXJlbnRFbGVtZW50PT09dHJFbGVtZW50KQorcmV0dXJuIGN1cjtyZXR1cm4gZ2V0VEQoY3VyLnBhcmVudEVsZW1lbnQpO30KK2lmKHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKXt2YXIgaXNBbHJlYWR5U2VsZWN0ZWQ9ZmFsc2U7dmFyIHRkVGhhdFdhc0NsaWNrZWQ9Z2V0VEQoZS50YXJnZXQpO2lmKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyl7aXNBbHJlYWR5U2VsZWN0ZWQ9dGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb189PT1yb3dJbmZvO31lbHNle2lzQWxyZWFkeVNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fPT09cm93SW5mbztpc0FscmVhZHlTZWxlY3RlZCY9KHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF89PT10ZFRoYXRXYXNDbGlja2VkLmNvbHVtbkluZGV4KTt9CitpZihpc0FscmVhZHlTZWxlY3RlZCl7aWYocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dJiZyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10ubGVuZ3RoKXt0aGlzLnNldEV4cGFuZGVkRm9yVXNlclJvd18odGFibGVTZWN0aW9uLHJvd0luZm9NYXAscm93SW5mby51c2VyUm93LCFyb3dJbmZvLmlzRXhwYW5kZWQpO319ZWxzZXt0aGlzLmRpZFRhYmxlUm93SW5mb0dldENsaWNrZWRfKHJvd0luZm8sdGRUaGF0V2FzQ2xpY2tlZC5jb2x1bW5JbmRleCk7fX1lbHNle2lmKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSYmcm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLmxlbmd0aCl7dGhpcy5zZXRFeHBhbmRlZEZvclVzZXJSb3dfKHRhYmxlU2VjdGlvbixyb3dJbmZvTWFwLHJvd0luZm8udXNlclJvdywhcm93SW5mby5pc0V4cGFuZGVkKTt9fX0uYmluZCh0aGlzKSk7fQorcmV0dXJuIHJvd0luZm8uaHRtbE5vZGU7fSxyZW1vdmVTdWJOb2Rlc186ZnVuY3Rpb24odGFibGVTZWN0aW9uLHJvd0luZm8scm93SW5mb01hcCl7aWYocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dPT09dW5kZWZpbmVkKQorcmV0dXJuO2Zvcih2YXIgaT0wO2k8cm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLmxlbmd0aDtpKyspe3ZhciBzdWJSb3c9cm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dW2ldO3ZhciBzdWJSb3dJbmZvPXJvd0luZm9NYXAuZ2V0KHN1YlJvdyk7aWYoIXN1YlJvd0luZm8pCitjb250aW51ZTt2YXIgc3ViTm9kZT1zdWJSb3dJbmZvLmh0bWxOb2RlO2lmKHN1Yk5vZGUmJnN1Yk5vZGUucGFyZW50Tm9kZT09PXRhYmxlU2VjdGlvbil7dGFibGVTZWN0aW9uLnJlbW92ZUNoaWxkKHN1Yk5vZGUpO3RoaXMucmVtb3ZlU3ViTm9kZXNfKHRhYmxlU2VjdGlvbixzdWJSb3dJbmZvLHJvd0luZm9NYXApO319fSxzY2hlZHVsZVJlYnVpbGRIZWFkZXJzXzpmdW5jdGlvbigpe3RoaXMuaGVhZGVyRGlydHlfPXRydWU7dGhpcy5zY2hlZHVsZVJlYnVpbGRfKCk7fSxzY2hlZHVsZVJlYnVpbGRCb2R5XzpmdW5jdGlvbigpe3RoaXMuYm9keURpcnR5Xz10cnVlO3RoaXMuc2NoZWR1bGVSZWJ1aWxkXygpO30sc2NoZWR1bGVSZWJ1aWxkRm9vdGVyXzpmdW5jdGlvbigpe3RoaXMuZm9vdGVyRGlydHlfPXRydWU7dGhpcy5zY2hlZHVsZVJlYnVpbGRfKCk7fSxzY2hlZHVsZVJlYnVpbGRfOmZ1bmN0aW9uKCl7aWYodGhpcy5yZWJ1aWxkUGVuZGluZ18pCityZXR1cm47dGhpcy5yZWJ1aWxkUGVuZGluZ189dHJ1ZTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5yZWJ1aWxkUGVuZGluZ189ZmFsc2U7dGhpcy5yZWJ1aWxkKCk7fS5iaW5kKHRoaXMpLDApO30scmVidWlsZElmTmVlZGVkXzpmdW5jdGlvbigpe3RoaXMucmVidWlsZCgpO30scmVidWlsZDpmdW5jdGlvbigpe3ZhciB3YXNCb2R5T3JIZWFkZXJEaXJ0eT10aGlzLmhlYWRlckRpcnR5X3x8dGhpcy5ib2R5RGlydHlfO2lmKHRoaXMuaGVhZGVyRGlydHlfKXt0aGlzLmdlbmVyYXRlSGVhZGVyQ29sdW1uc18oKTt0aGlzLmhlYWRlckRpcnR5Xz1mYWxzZTt9CitpZih0aGlzLmJvZHlEaXJ0eV8pe3RoaXMuJC5ib2R5LnRleHRDb250ZW50PScnO3RoaXMuZ2VuZXJhdGVUYWJsZVJvd05vZGVzXyh0aGlzLiQuYm9keSx0aGlzLnRhYmxlUm93c18sdGhpcy50YWJsZVJvd3NJbmZvXywwLHVuZGVmaW5lZCx1bmRlZmluZWQpO2lmKHRoaXMudGFibGVSb3dzXy5sZW5ndGg9PT0wJiZ0aGlzLmVtcHR5VmFsdWVfIT09dW5kZWZpbmVkKXt2YXIgdHJFbGVtZW50PXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpO3RoaXMuJC5ib2R5LmFwcGVuZENoaWxkKHRyRWxlbWVudCk7dHJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2VtcHR5LXJvdycpO3ZhciB0ZD10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTt0ckVsZW1lbnQuYXBwZW5kQ2hpbGQodGQpO3RkLmNvbFNwYW49dGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDt2YXIgZW1wdHlWYWx1ZT10aGlzLmVtcHR5VmFsdWVfO3RkLmFwcGVuZENoaWxkKHRyLnVpLmIuYXNIVE1MT3JUZXh0Tm9kZShlbXB0eVZhbHVlLHRoaXMub3duZXJEb2N1bWVudCkpO30KK3RoaXMuYm9keURpcnR5Xz1mYWxzZTt9CitpZih3YXNCb2R5T3JIZWFkZXJEaXJ0eSkKK3RoaXMuYXBwbHlTaXplc18oKTtpZih0aGlzLmZvb3RlckRpcnR5Xyl7dGhpcy4kLmZvb3QudGV4dENvbnRlbnQ9Jyc7dGhpcy5nZW5lcmF0ZVRhYmxlUm93Tm9kZXNfKHRoaXMuJC5mb290LHRoaXMudGFibGVGb290ZXJSb3dzXyx0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fLDAsdW5kZWZpbmVkLHVuZGVmaW5lZCk7aWYodGhpcy50YWJsZUZvb3RlclJvd3NJbmZvXy5sZW5ndGgpe3RoaXMuJC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hhcy1mb290ZXInKTt9ZWxzZXt0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdoYXMtZm9vdGVyJyk7fQordGhpcy5mb290ZXJEaXJ0eV89ZmFsc2U7fX0sYXBwZW5kTmV3RWxlbWVudF86ZnVuY3Rpb24ocGFyZW50LHRhZ05hbWUpe3ZhciBlbGVtZW50PXBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7cGFyZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpO3JldHVybiBlbGVtZW50O30sZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdzpmdW5jdGlvbih1c2VyUm93KXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTt2YXIgcm93SW5mbz10aGlzLnRhYmxlUm93c0luZm9fLmdldCh1c2VyUm93KTtpZihyb3dJbmZvPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdSb3cgaGFzIG5vdCBiZWVuIHNlZW4sIG11c3QgZXhwYW5kIGl0cyBwYXJlbnRzJyk7cmV0dXJuIHJvd0luZm8uaXNFeHBhbmRlZDt9LHNldEV4cGFuZGVkRm9yVGFibGVSb3c6ZnVuY3Rpb24odXNlclJvdyxleHBhbmRlZCl7dGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7dmFyIHJvd0luZm89dGhpcy50YWJsZVJvd3NJbmZvXy5nZXQodXNlclJvdyk7aWYocm93SW5mbz09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignUm93IGhhcyBub3QgYmVlbiBzZWVuLCBtdXN0IGV4cGFuZCBpdHMgcGFyZW50cycpO3JldHVybiB0aGlzLnNldEV4cGFuZGVkRm9yVXNlclJvd18odGhpcy4kLmJvZHksdGhpcy50YWJsZVJvd3NJbmZvXyx1c2VyUm93LGV4cGFuZGVkKTt9LHNldEV4cGFuZGVkRm9yVXNlclJvd186ZnVuY3Rpb24odGFibGVTZWN0aW9uLHJvd0luZm9NYXAsdXNlclJvdyxleHBhbmRlZCl7dGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7dmFyIHJvd0luZm89cm93SW5mb01hcC5nZXQodXNlclJvdyk7aWYocm93SW5mbz09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignUm93IGhhcyBub3QgYmVlbiBzZWVuLCBtdXN0IGV4cGFuZCBpdHMgcGFyZW50cycpO3Jvd0luZm8uaXNFeHBhbmRlZD0hIWV4cGFuZGVkO2lmKHJvd0luZm8uaHRtbE5vZGU9PT11bmRlZmluZWQpCityZXR1cm47aWYocm93SW5mby5odG1sTm9kZS5wYXJlbnRFbGVtZW50IT09dGFibGVTZWN0aW9uKQorcmV0dXJuO3ZhciBleHBhbmRCdXR0b249cm93SW5mby5odG1sTm9kZS5xdWVyeVNlbGVjdG9yKCdleHBhbmQtYnV0dG9uJyk7aWYocm93SW5mby5pc0V4cGFuZGVkKXtleHBhbmRCdXR0b24uY2xhc3NMaXN0LmFkZCgnYnV0dG9uLWV4cGFuZGVkJyk7dmFyIGxhc3RBZGRlZFJvdz1yb3dJbmZvLmh0bWxOb2RlO2lmKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSl7dGhpcy5nZW5lcmF0ZVRhYmxlUm93Tm9kZXNfKHRhYmxlU2VjdGlvbixyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10scm93SW5mb01hcCxyb3dJbmZvLmluZGVudGF0aW9uKzEsbGFzdEFkZGVkUm93LHJvd0luZm8pO319ZWxzZXtleHBhbmRCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYnV0dG9uLWV4cGFuZGVkJyk7dGhpcy5yZW1vdmVTdWJOb2Rlc18odGFibGVTZWN0aW9uLHJvd0luZm8scm93SW5mb01hcCk7fQordGhpcy5tYXliZVVwZGF0ZVNlbGVjdGVkUm93XygpO30sZ2V0IHN1cHBvcnRzU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fO30sc2V0IHN1cHBvcnRzU2VsZWN0aW9uKHN1cHBvcnRzU2VsZWN0aW9uKXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTt0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXz0hIXN1cHBvcnRzU2VsZWN0aW9uO3RoaXMuZGlkU2VsZWN0aW9uU3RhdGVDaGFuZ2VfKCk7fSxnZXQgY2VsbFNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV87fSxzZXQgY2VsbFNlbGVjdGlvbk1vZGUoY2VsbFNlbGVjdGlvbk1vZGUpe3RoaXMucmVidWlsZElmTmVlZGVkXygpO3RoaXMuY2VsbFNlbGVjdGlvbk1vZGVfPSEhY2VsbFNlbGVjdGlvbk1vZGU7dGhpcy5kaWRTZWxlY3Rpb25TdGF0ZUNoYW5nZV8oKTt9LGdldCByb3dIaWdobGlnaHRFbmFibGVkKCl7cmV0dXJuIHRoaXMucm93SGlnaGxpZ2h0RW5hYmxlZF87fSxzZXQgcm93SGlnaGxpZ2h0RW5hYmxlZChyb3dIaWdobGlnaHRFbmFibGVkKXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTt0aGlzLnJvd0hpZ2hsaWdodEVuYWJsZWRfPSEhcm93SGlnaGxpZ2h0RW5hYmxlZDt0aGlzLmRpZFNlbGVjdGlvblN0YXRlQ2hhbmdlXygpO30sZGlkU2VsZWN0aW9uU3RhdGVDaGFuZ2VfOmZ1bmN0aW9uKCl7aWYoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKXt0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXNlbGVjdGlvbi1tb2RlJyk7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgncm93LXNlbGVjdGlvbi1tb2RlJyk7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgncm93LWhpZ2hsaWdodC1lbmFibGVkJyk7fWVsc2UgaWYoIXRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKXt0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXNlbGVjdGlvbi1tb2RlJyk7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgncm93LXNlbGVjdGlvbi1tb2RlJyk7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgncm93LWhpZ2hsaWdodC1lbmFibGVkJyk7fWVsc2V7dGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgnY2VsbC1zZWxlY3Rpb24tbW9kZScpO3RoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3Jvdy1zZWxlY3Rpb24tbW9kZScpO2lmKHRoaXMucm93SGlnaGxpZ2h0RW5hYmxlZF8pCit0aGlzLiQuYm9keS5jbGFzc0xpc3QuYWRkKCdyb3ctaGlnaGxpZ2h0LWVuYWJsZWQnKTtlbHNlCit0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdyb3ctaGlnaGxpZ2h0LWVuYWJsZWQnKTt9Citmb3IodmFyIGk9MDtpPHRoaXMuJC5ib2R5LmNoaWxkcmVuLmxlbmd0aDtpKyspCit0aGlzLnVwZGF0ZVRhYkluZGV4Rm9yVGFibGVSb3dOb2RlXyh0aGlzLiQuYm9keS5jaGlsZHJlbltpXSk7dGhpcy5tYXliZVVwZGF0ZVNlbGVjdGVkUm93XygpO30sbWF5YmVVcGRhdGVTZWxlY3RlZFJvd186ZnVuY3Rpb24oKXtpZih0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz09PXVuZGVmaW5lZCkKK3JldHVybjtpZighdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pe3RoaXMucmVtb3ZlU2VsZWN0ZWRTdGF0ZV8oKTt0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz11bmRlZmluZWQ7cmV0dXJuO30KK2Z1bmN0aW9uIGlzVmlzaWJsZShyb3dJbmZvKXtpZighcm93SW5mby5odG1sTm9kZSkKK3JldHVybiBmYWxzZTtyZXR1cm4hIXJvd0luZm8uaHRtbE5vZGUucGFyZW50RWxlbWVudDt9CitpZihpc1Zpc2libGUodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18pKXt0aGlzLnVwZGF0ZVNlbGVjdGVkU3RhdGVfKCk7cmV0dXJuO30KK3RoaXMucmVtb3ZlU2VsZWN0ZWRTdGF0ZV8oKTt2YXIgY3VyUm93SW5mbz10aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXzt3aGlsZShjdXJSb3dJbmZvJiYhaXNWaXNpYmxlKGN1clJvd0luZm8pKQorY3VyUm93SW5mbz1jdXJSb3dJbmZvLnBhcmVudFJvd0luZm87dGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb189Y3VyUm93SW5mbztpZih0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykKK3RoaXMudXBkYXRlU2VsZWN0ZWRTdGF0ZV8oKTt9LGRpZFRhYmxlUm93SW5mb0dldENsaWNrZWRfOmZ1bmN0aW9uKHJvd0luZm8sY29sdW1uSW5kZXgpe2lmKCF0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXykKK3JldHVybjtpZih0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyl7aWYoIXRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihjb2x1bW5JbmRleCkpCityZXR1cm47fQoraWYodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18hPT1yb3dJbmZvKQordGhpcy5zZWxlY3RlZFRhYmxlUm93PXJvd0luZm8udXNlclJvdztpZih0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXghPT1jb2x1bW5JbmRleCkKK3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleD1jb2x1bW5JbmRleDt9LGdldCBzZWxlY3RlZFRhYmxlUm93KCl7aWYoIXRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18udXNlclJvdzt9LHNldCBzZWxlY3RlZFRhYmxlUm93KHVzZXJSb3cpe3RoaXMucmVidWlsZElmTmVlZGVkXygpO2lmKCF0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXykKK3Rocm93IG5ldyBFcnJvcignU2VsZWN0aW9uIGlzIG9mZi4gU2V0IHN1cHBvcnRzU2VsZWN0aW9uPXRydWUuJyk7dmFyIHJvd0luZm89dGhpcy50YWJsZVJvd3NJbmZvXy5nZXQodXNlclJvdyk7aWYocm93SW5mbz09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignUm93IGhhcyBub3QgYmVlbiBzZWVuLCBtdXN0IGV4cGFuZCBpdHMgcGFyZW50cycpO3ZhciBlPXRoaXMucHJlcGFyZVRvQ2hhbmdlU2VsZWN0aW9uXygpO3RoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fPXJvd0luZm87aWYodGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pe2lmKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fJiZ0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfPT09dW5kZWZpbmVkKXt2YXIgaT10aGlzLmdldEZpcnN0U2VsZWN0YWJsZUNvbHVtbkluZGV4XygpO2lmKGk9PS0xKQordGhyb3cgbmV3IEVycm9yKCdub3BlJyk7dGhpcy5zZWxlY3RlZENvbHVtbkluZGV4Xz1pO319ZWxzZXt0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfPXVuZGVmaW5lZDt9Cit0aGlzLnVwZGF0ZVNlbGVjdGVkU3RhdGVfKCk7dGhpcy5kaXNwYXRjaEV2ZW50KGUpO30sdXBkYXRlVGFiSW5kZXhGb3JUYWJsZVJvd05vZGVfOmZ1bmN0aW9uKHJvdyl7aWYodGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pe2lmKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyl7cm93LnRhYkluZGV4PTA7fWVsc2V7Zm9yKHZhciBpPTA7aTx0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoO2krKyl7aWYoIXRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihpKSkKK2NvbnRpbnVlO3Jvdy5jaGlsZHJlbltpXS50YWJJbmRleD0wO319fWVsc2V7aWYoIXRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKXtyb3cucmVtb3ZlQXR0cmlidXRlKCd0YWJJbmRleCcpO31lbHNle2Zvcih2YXIgaT0wO2k8dGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDtpKyspe2lmKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oaSkpCitjb250aW51ZTtyb3cuY2hpbGRyZW5baV0ucmVtb3ZlQXR0cmlidXRlKCd0YWJJbmRleCcpO319fX0scHJlcGFyZVRvQ2hhbmdlU2VsZWN0aW9uXzpmdW5jdGlvbigpe3ZhciBlPW5ldyB0ci5iLkV2ZW50KCdzZWxlY3Rpb24tY2hhbmdlZCcpO3ZhciBwcmV2aW91c1NlbGVjdGVkUm93SW5mbz10aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXztpZihwcmV2aW91c1NlbGVjdGVkUm93SW5mbykKK2UucHJldmlvdXNTZWxlY3RlZFRhYmxlUm93PXByZXZpb3VzU2VsZWN0ZWRSb3dJbmZvLnVzZXJSb3c7ZWxzZQorZS5wcmV2aW91c1NlbGVjdGVkVGFibGVSb3c9dW5kZWZpbmVkO3RoaXMucmVtb3ZlU2VsZWN0ZWRTdGF0ZV8oKTtyZXR1cm4gZTt9LHJlbW92ZVNlbGVjdGVkU3RhdGVfOmZ1bmN0aW9uKCl7dGhpcy5zZXRTZWxlY3RlZFN0YXRlXyhmYWxzZSk7fSx1cGRhdGVTZWxlY3RlZFN0YXRlXzpmdW5jdGlvbigpe3RoaXMuc2V0U2VsZWN0ZWRTdGF0ZV8odHJ1ZSk7fSxzZXRTZWxlY3RlZFN0YXRlXzpmdW5jdGlvbihzZWxlY3Qpe2lmKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fPT09dW5kZWZpbmVkKQorcmV0dXJuO3ZhciB0YWJsZVJvd05vZGU9dGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGU7aWYodGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8mJnRoaXMucm93SGlnaGxpZ2h0RW5hYmxlZF8pe2lmKHNlbGVjdCkKK3RhYmxlUm93Tm9kZS5jbGFzc0xpc3QuYWRkKCdoaWdobGlnaHRlZC1yb3cnKTtlbHNlCit0YWJsZVJvd05vZGUuY2xhc3NMaXN0LnJlbW92ZSgnaGlnaGxpZ2h0ZWQtcm93Jyk7fQordmFyIG5vZGU9dGhpcy5nZXRTZWxlY3RhYmxlTm9kZUdpdmVuVGFibGVSb3dOb2RlXyh0YWJsZVJvd05vZGUpO2lmKHNlbGVjdCkKK25vZGUuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsdHJ1ZSk7ZWxzZQorbm9kZS5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7fSxkb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uOmZ1bmN0aW9uKGNvbHVtbkluZGV4KXt2YXIgY29sdW1uSW5mbz10aGlzLnRhYmxlQ29sdW1uc19bY29sdW1uSW5kZXhdO3ZhciBzY3M9Y29sdW1uSW5mby5zdXBwb3J0c0NlbGxTZWxlY3Rpb247aWYoc2NzPT09ZmFsc2UpCityZXR1cm4gZmFsc2U7cmV0dXJuIHRydWU7fSxnZXRGaXJzdFNlbGVjdGFibGVDb2x1bW5JbmRleF86ZnVuY3Rpb24oKXtmb3IodmFyIGk9MDtpPHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7aSsrKXtpZih0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oaSkpCityZXR1cm4gaTt9CityZXR1cm4tMTt9LGdldFNlbGVjdGFibGVOb2RlR2l2ZW5UYWJsZVJvd05vZGVfOmZ1bmN0aW9uKGh0bWxOb2RlKXtpZighdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pe3JldHVybiBodG1sTm9kZTt9ZWxzZXtyZXR1cm4gaHRtbE5vZGUuY2hpbGRyZW5bdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4X107fX0sZ2V0IHNlbGVjdGVkQ29sdW1uSW5kZXgoKXtpZighdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCityZXR1cm4gdW5kZWZpbmVkO2lmKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF87fSxzZXQgc2VsZWN0ZWRDb2x1bW5JbmRleChzZWxlY3RlZENvbHVtbkluZGV4KXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTtpZighdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCit0aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdGlvbiBpcyBvZmYuIFNldCBzdXBwb3J0c1NlbGVjdGlvbj10cnVlLicpO2lmKHNlbGVjdGVkQ29sdW1uSW5kZXg8MHx8c2VsZWN0ZWRDb2x1bW5JbmRleD49dGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aCkKK3Rocm93IG5ldyBFcnJvcignSW52YWxpZCBpbmRleCcpO2lmKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oc2VsZWN0ZWRDb2x1bW5JbmRleCkpCit0aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgY29sdW1uJyk7dmFyIGU9dGhpcy5wcmVwYXJlVG9DaGFuZ2VTZWxlY3Rpb25fKCk7dGhpcy5zZWxlY3RlZENvbHVtbkluZGV4Xz1zZWxlY3RlZENvbHVtbkluZGV4O2lmKHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF89PT11bmRlZmluZWQpCit0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz11bmRlZmluZWQ7dGhpcy51cGRhdGVTZWxlY3RlZFN0YXRlXygpO3RoaXMuZGlzcGF0Y2hFdmVudChlKTt9LG9uS2V5RG93bl86ZnVuY3Rpb24oZSl7aWYodGhpcy5zdXBwb3J0c1NlbGVjdGlvbl89PT1mYWxzZSkKK3JldHVybjtpZih0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXz09PXVuZGVmaW5lZCkKK3JldHVybjt2YXIgY29kZV90b19jb21tYW5kX25hbWVzPXszNzonQVJST1dfTEVGVCcsMzg6J0FSUk9XX1VQJywzOTonQVJST1dfUklHSFQnLDQwOidBUlJPV19ET1dOJ307dmFyIGNtZE5hbWU9Y29kZV90b19jb21tYW5kX25hbWVzW2Uua2V5Q29kZV07aWYoY21kTmFtZT09PXVuZGVmaW5lZCkKK3JldHVybjtlLnN0b3BQcm9wYWdhdGlvbigpO2UucHJldmVudERlZmF1bHQoKTt0aGlzLnBlcmZvcm1LZXlDb21tYW5kXyhjbWROYW1lKTt9LHBlcmZvcm1LZXlDb21tYW5kXzpmdW5jdGlvbihjbWROYW1lKXt0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTt2YXIgcm93SW5mbz10aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXzt2YXIgaHRtbE5vZGU9cm93SW5mby5odG1sTm9kZTtpZihjbWROYW1lPT09J0FSUk9XX1VQJyl7dmFyIHByZXY9aHRtbE5vZGUucHJldmlvdXNFbGVtZW50U2libGluZztpZihwcmV2KXt0ci51aS5iLnNjcm9sbEludG9WaWV3SWZOZWVkZWQocHJldik7dGhpcy5zZWxlY3RlZFRhYmxlUm93PXByZXYucm93SW5mby51c2VyUm93O3RoaXMuZm9jdXNTZWxlY3RlZF8oKTtyZXR1cm47fQorcmV0dXJuO30KK2lmKGNtZE5hbWU9PT0nQVJST1dfRE9XTicpe3ZhciBuZXh0PWh0bWxOb2RlLm5leHRFbGVtZW50U2libGluZztpZihuZXh0KXt0ci51aS5iLnNjcm9sbEludG9WaWV3SWZOZWVkZWQobmV4dCk7dGhpcy5zZWxlY3RlZFRhYmxlUm93PW5leHQucm93SW5mby51c2VyUm93O3RoaXMuZm9jdXNTZWxlY3RlZF8oKTtyZXR1cm47fQorcmV0dXJuO30KK2lmKGNtZE5hbWU9PT0nQVJST1dfUklHSFQnKXtpZih0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyl7dmFyIG5ld0luZGV4PXRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8rMTtpZihuZXdJbmRleD49dGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aCkKK3JldHVybjtpZighdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKG5ld0luZGV4KSkKK3JldHVybjt0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXg9bmV3SW5kZXg7dGhpcy5mb2N1c1NlbGVjdGVkXygpO3JldHVybjt9ZWxzZXtpZihyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX109PT11bmRlZmluZWQpCityZXR1cm47aWYocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLmxlbmd0aD09PTApCityZXR1cm47aWYoIXJvd0luZm8uaXNFeHBhbmRlZCkKK3RoaXMuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dJbmZvLnVzZXJSb3csdHJ1ZSk7dGhpcy5zZWxlY3RlZFRhYmxlUm93PXJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXVswXTt0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7cmV0dXJuO319CitpZihjbWROYW1lPT09J0FSUk9XX0xFRlQnKXtpZih0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyl7dmFyIG5ld0luZGV4PXRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8tMTtpZihuZXdJbmRleDwwKQorcmV0dXJuO2lmKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24obmV3SW5kZXgpKQorcmV0dXJuO3RoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleD1uZXdJbmRleDt0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7cmV0dXJuO31lbHNle2lmKHJvd0luZm8uaXNFeHBhbmRlZCl7dGhpcy5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd0luZm8udXNlclJvdyxmYWxzZSk7dGhpcy5mb2N1c1NlbGVjdGVkXygpO3JldHVybjt9Cit2YXIgcGFyZW50Um93SW5mbz1yb3dJbmZvLnBhcmVudFJvd0luZm87aWYocGFyZW50Um93SW5mbyl7dGhpcy5zZWxlY3RlZFRhYmxlUm93PXBhcmVudFJvd0luZm8udXNlclJvdzt0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7cmV0dXJuO30KK3JldHVybjt9fQordGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgY29tbWFuZCcpO30sZm9jdXNTZWxlY3RlZF86ZnVuY3Rpb24oKXtpZighdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18pCityZXR1cm47dmFyIG5vZGU9dGhpcy5nZXRTZWxlY3RhYmxlTm9kZUdpdmVuVGFibGVSb3dOb2RlXyh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXy5odG1sTm9kZSk7bm9kZS5mb2N1cygpO319KTt9KSgpOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1iLXRhYmxlLWhlYWRlci1jZWxsJyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMudGFwQ2FsbGJhY2tfPXVuZGVmaW5lZDt0aGlzLmNlbGxUaXRsZV89Jyc7fSxzZXQgY2VsbFRpdGxlKHZhbHVlKXt0aGlzLmNlbGxUaXRsZV89dmFsdWU7dmFyIHRpdGxlTm9kZT10ci51aS5iLmFzSFRNTE9yVGV4dE5vZGUodGhpcy5jZWxsVGl0bGVfLHRoaXMub3duZXJEb2N1bWVudCk7dGhpcy4kLnRpdGxlLmlubmVyVGV4dD0nJzt0aGlzLiQudGl0bGUuYXBwZW5kQ2hpbGQodGl0bGVOb2RlKTt9LGdldCBjZWxsVGl0bGUoKXtyZXR1cm4gdGhpcy5jZWxsVGl0bGVfO30sY2xlYXJTaWRlQ29udGVudDpmdW5jdGlvbigpe3RoaXMuJC5zaWRlLnRleHRDb250ZW50PScnO30sc2V0IHNpZGVDb250ZW50KGNvbnRlbnQpe3RoaXMuJC5zaWRlLnRleHRDb250ZW50PWNvbnRlbnQ7fSxnZXQgc2lkZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy4kLnNpZGUudGV4dENvbnRlbnQ7fSxzZXQgdGFwQ2FsbGJhY2soY2FsbGJhY2spe3RoaXMuc3R5bGUuY3Vyc29yPSdwb2ludGVyJzt0aGlzLnRhcENhbGxiYWNrXz1jYWxsYmFjazt9LGdldCB0YXBDYWxsYmFjaygpe3JldHVybiB0aGlzLnRhcENhbGxiYWNrXzt9LG9uVGFwXzpmdW5jdGlvbigpe2lmKHRoaXMudGFwQ2FsbGJhY2tfKQordGhpcy50YXBDYWxsYmFja18oKTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD1TdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpO3RoaXMubnVtQnl0ZXNfPXVuZGVmaW5lZDt9LGdldCBudW1CeXRlcygpe3JldHVybiB0aGlzLm51bUJ5dGVzXzt9LHNldCBudW1CeXRlcyhudW1CeXRlc09yU2l6ZUluQnl0ZXMpe2lmKG51bUJ5dGVzT3JTaXplSW5CeXRlcyBpbnN0YW5jZW9mIHRyLmIudW5pdHMuU2l6ZUluQnl0ZXMpCit0aGlzLm51bUJ5dGVzXz1udW1CeXRlc09yU2l6ZUluQnl0ZXMubnVtQnl0ZXM7ZWxzZQordGhpcy5udW1CeXRlc189bnVtQnl0ZXNPclNpemVJbkJ5dGVzO3RoaXMuJC5jb250ZW50LnRleHRDb250ZW50PXRyLmIudW5pdHMuU2l6ZUluQnl0ZXMuZm9ybWF0KHRoaXMubnVtQnl0ZXNfKTt9LGdldCBzdHJpbmdDb250ZW50KCl7cmV0dXJuIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50O319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnVuaXRzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIGNyZWF0ZVRpbWVEdXJhdGlvblNwYW4oZHVyYXRpb24sb3B0X2NvbmZpZyl7aWYoZHVyYXRpb249PT11bmRlZmluZWQpCityZXR1cm4nJzt2YXIgY29uZmlnPW9wdF9jb25maWd8fHt9O3ZhciBvd25lckRvY3VtZW50PWNvbmZpZy5vd25lckRvY3VtZW50fHxkb2N1bWVudDt2YXIgc3Bhbj1vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7aWYoY29uZmlnLnRvdGFsKQorc3Bhbi5wZXJjZW50YWdlPWR1cmF0aW9uL2NvbmZpZy50b3RhbDtzcGFuLmR1cmF0aW9uPWR1cmF0aW9uO2lmKGNvbmZpZy5yaWdodEFsaWduKQorc3Bhbi5yaWdodEFsaWduPXRydWU7cmV0dXJuIHNwYW47fQordHIuYi51bml0cy5UaW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2Rpc3BsYXktdW5pdC1jaGFuZ2VkJyxmdW5jdGlvbihlKXt0ci5iLmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhkb2N1bWVudC5ib2R5LCd0ci11aS11LXRpbWUtZHVyYXRpb24tc3BhbicpLmZvckVhY2goZnVuY3Rpb24oZWwpe2VsLnVwZGF0ZUNvbnRlbnRfKCk7fSk7fSk7cmV0dXJue2NyZWF0ZVRpbWVEdXJhdGlvblNwYW46Y3JlYXRlVGltZUR1cmF0aW9uU3Bhbn07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLndhcm5pbmdfPXVuZGVmaW5lZDt0aGlzLmR1cmF0aW9uXz11bmRlZmluZWQ7dGhpcy5wZXJjZW50YWdlXz11bmRlZmluZWQ7fSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5kdXJhdGlvbl87fSxzZXQgZHVyYXRpb24oZHVyYXRpb24pe2lmKGR1cmF0aW9uIGluc3RhbmNlb2YgdHIuYi51bml0cy5UaW1lRHVyYXRpb24pCit0aGlzLmR1cmF0aW9uXz1kdXJhdGlvbi5kdXJhdGlvbjtlbHNlCit0aGlzLmR1cmF0aW9uXz1kdXJhdGlvbjt0aGlzLnVwZGF0ZUNvbnRlbnRfKCk7fSxnZXQgcGVyY2VudGFnZSgpe3JldHVybiB0aGlzLnBlcmNlbnRhZ2VfO30sc2V0IHBlcmNlbnRhZ2UocGVyY2VudGFnZSl7dGhpcy5wZXJjZW50YWdlXz1wZXJjZW50YWdlO3RoaXMudXBkYXRlU3BhcmtsaW5lXygpO30sZ2V0IHJpZ2h0QWxpZ24oKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdyaWdodC1hbGlnbicpO30sc2V0IHJpZ2h0QWxpZ24ocmlnaHRBbGlnbil7aWYocmlnaHRBbGlnbikKK3RoaXMuJC5jb250ZW50LmNsYXNzTGlzdC5hZGQoJ3JpZ2h0LWFsaWduJyk7ZWxzZQordGhpcy4kLmNvbnRlbnQuY2xhc3NMaXN0LnJlbW92ZSgncmlnaHQtYWxpZ24nKTt9LHVwZGF0ZVNwYXJrbGluZV86ZnVuY3Rpb24oKXtpZih0aGlzLnBlcmNlbnRhZ2VfPT09dW5kZWZpbmVkKXt0aGlzLiQuc3BhcmtsaW5lLnN0eWxlLmRpc3BsYXk9J25vbmUnO3RoaXMuJC5zcGFya2xpbmUuc3R5bGUud2lkdGg9JzAnO31lbHNle3RoaXMuJC5zcGFya2xpbmUuc3R5bGUuZGlzcGxheT0nYmxvY2snO3RoaXMuJC5zcGFya2xpbmUuc3R5bGUud2lkdGg9KHRoaXMucGVyY2VudGFnZV8qMTAwKSsnJSc7fX0sdXBkYXRlQ29udGVudF86ZnVuY3Rpb24oKXt2YXIgY29udGVudD10ci5iLnVuaXRzLlRpbWVEdXJhdGlvbi5mb3JtYXQodGhpcy5kdXJhdGlvbl8pO3RoaXMuJC5jb250ZW50LnRleHRDb250ZW50PWNvbnRlbnQ7fSxnZXQgd2FybmluZygpe3JldHVybiB0aGlzLndhcm5pbmdfO30sc2V0IHdhcm5pbmcod2FybmluZyl7dGhpcy53YXJuaW5nXz13YXJuaW5nO3ZhciB3YXJuaW5nRWw9dGhpcy4kLndhcm5pbmc7aWYodGhpcy53YXJuaW5nXyl7d2FybmluZ0VsLnRpdGxlPXdhcm5pbmc7d2FybmluZ0VsLnN0eWxlLmRpc3BsYXk9Jyc7fWVsc2V7d2FybmluZ0VsLnRpdGxlPScnO3dhcm5pbmdFbC5zdHlsZS5kaXNwbGF5PSdub25lJzt9fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudW5pdHMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gY3JlYXRlVGltZVN0YW1wU3Bhbih0aW1lc3RhbXAsb3B0X2NvbmZpZyl7aWYodGltZXN0YW1wPT09dW5kZWZpbmVkKQorcmV0dXJuJyc7dmFyIGNvbmZpZz1vcHRfY29uZmlnfHx7fTt2YXIgb3duZXJEb2N1bWVudD1jb25maWcub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQ7dmFyIHNwYW49b3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtc3RhbXAtc3BhbicpO3NwYW4udGltZXN0YW1wPXRpbWVzdGFtcDtyZXR1cm4gc3Bhbjt9Cit0ci5iLnVuaXRzLlRpbWUuYWRkRXZlbnRMaXN0ZW5lcignZGlzcGxheS11bml0LWNoYW5nZWQnLGZ1bmN0aW9uKGUpe3RyLmIuZmluZERlZXBFbGVtZW50c01hdGNoaW5nKGRvY3VtZW50LmJvZHksJ3RyLXVpLXUtdGltZS1zdGFtcC1zcGFuJykuZm9yRWFjaChmdW5jdGlvbihlbCl7ZWwudXBkYXRlQ29udGVudF8oKTt9KTt9KTtyZXR1cm57Y3JlYXRlVGltZVN0YW1wU3BhbjpjcmVhdGVUaW1lU3RhbXBTcGFufTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktdS10aW1lLXN0YW1wLXNwYW4nLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMudGltZXN0YW1wXz11bmRlZmluZWQ7fSxnZXQgdGltZXN0YW1wKCl7cmV0dXJuIHRoaXMudGltZXN0YW1wXzt9LHNldCB0aW1lc3RhbXAodGltZXN0YW1wKXtpZih0aW1lc3RhbXAgaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlRpbWVTdGFtcCkKK3RoaXMudGltZXN0YW1wXz10aW1lc3RhbXAudGltZXN0YW1wO2Vsc2UKK3RoaXMudGltZXN0YW1wXz10aW1lc3RhbXA7dGhpcy51cGRhdGVDb250ZW50XygpO30sdXBkYXRlQ29udGVudF86ZnVuY3Rpb24oKXt2YXIgY29udGVudD10ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQodGhpcy50aW1lc3RhbXBfKTt0aGlzLnNoYWRvd1Jvb3QudGV4dENvbnRlbnQ9Y29udGVudDt9fSk7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIGlzVGFibGUob2JqZWN0KXtpZighKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KXx8KG9iamVjdC5sZW5ndGg8MikpcmV0dXJuIGZhbHNlO2Zvcih2YXIgY29sTmFtZSBpbiBvYmplY3RbMF0pe2lmKHR5cGVvZiBjb2xOYW1lIT09J3N0cmluZycpcmV0dXJuIGZhbHNlO30KK2Zvcih2YXIgaT0wO2k8b2JqZWN0Lmxlbmd0aDsrK2kpe2lmKCEob2JqZWN0W2ldaW5zdGFuY2VvZiBPYmplY3QpKXJldHVybiBmYWxzZTtmb3IodmFyIGNvbE5hbWUgaW4gb2JqZWN0W2ldKXtpZihpJiYob2JqZWN0WzBdW2NvbE5hbWVdPT09dW5kZWZpbmVkKSlyZXR1cm4gZmFsc2U7dmFyIGNlbGxUeXBlPXR5cGVvZiBvYmplY3RbaV1bY29sTmFtZV07aWYoY2VsbFR5cGUhPT0nc3RyaW5nJyYmY2VsbFR5cGUhPSdudW1iZXInKXJldHVybiBmYWxzZTt9CitpZihpKXtmb3IodmFyIGNvbE5hbWUgaW4gb2JqZWN0WzBdKXtpZihvYmplY3RbaV1bY29sTmFtZV09PT11bmRlZmluZWQpcmV0dXJuIGZhbHNlO319fQorcmV0dXJuIHRydWU7fQorUG9seW1lcigndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLm9iamVjdF89dW5kZWZpbmVkO30sZ2V0IG9iamVjdCgpe3JldHVybiB0aGlzLm9iamVjdF87fSxzZXQgb2JqZWN0KG9iamVjdCl7dGhpcy5vYmplY3RfPW9iamVjdDt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9Jyc7dGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKCcnLHRoaXMub2JqZWN0XywwLDAsNSwnJyk7fSxhcHBlbmRFbGVtZW50c0ZvclR5cGVfOmZ1bmN0aW9uKGxhYmVsLG9iamVjdCxpbmRlbnQsZGVwdGgsbWF4RGVwdGgsc3VmZml4KXtpZihkZXB0aD5tYXhEZXB0aCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJzxyZWN1cnNpb24gbGltaXQgcmVhY2hlZD4nLHN1ZmZpeCk7cmV0dXJuO30KK2lmKG9iamVjdD09PXVuZGVmaW5lZCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJ3VuZGVmaW5lZCcsc3VmZml4KTtyZXR1cm47fQoraWYob2JqZWN0PT09bnVsbCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJ251bGwnLHN1ZmZpeCk7cmV0dXJuO30KK2lmKCEob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSl7dmFyIHR5cGU9dHlwZW9mIG9iamVjdDtpZih0eXBlPT0nc3RyaW5nJyl7dmFyIG9iamVjdFJlcGxhY2VkPWZhbHNlO2lmKChvYmplY3RbMF09PSd7JyYmb2JqZWN0W29iamVjdC5sZW5ndGgtMV09PSd9Jyl8fChvYmplY3RbMF09PSdbJyYmb2JqZWN0W29iamVjdC5sZW5ndGgtMV09PSddJykpe3RyeXtvYmplY3Q9SlNPTi5wYXJzZShvYmplY3QpO29iamVjdFJlcGxhY2VkPXRydWU7fWNhdGNoKGUpe319CitpZighb2JqZWN0UmVwbGFjZWQpe2lmKG9iamVjdC5pbmRleE9mKCdcbicpIT09LTEpe3ZhciBsaW5lcz1vYmplY3Quc3BsaXQoJ1xuJyk7bGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLGkpe3ZhciB0ZXh0LGlvZmYsbGwsc3M7aWYoaT09MCl7dGV4dD0nIicrbGluZTtpb2ZmPTA7bGw9bGFiZWw7c3M9Jyc7fWVsc2UgaWYoaTxsaW5lcy5sZW5ndGgtMSl7dGV4dD1saW5lO2lvZmY9MTtsbD0nJztzcz0nJzt9ZWxzZXt0ZXh0PWxpbmUrJyInO2lvZmY9MTtsbD0nJztzcz1zdWZmaXg7fQordmFyIGVsPXRoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGwsaW5kZW50K2lvZmYqbGFiZWwubGVuZ3RoK2lvZmYsdGV4dCxzcyk7ZWwuc3R5bGUud2hpdGVTcGFjZT0ncHJlJztyZXR1cm4gZWw7fSx0aGlzKTtyZXR1cm47fWVsc2V7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJyInK29iamVjdCsnIicsc3VmZml4KTtyZXR1cm47fX0KK2Vsc2V7fX1lbHNle3JldHVybiB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLGluZGVudCxvYmplY3Qsc3VmZml4KTt9fQoraWYob2JqZWN0IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3Qpe3ZhciBsaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpO2xpbmsuc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldChvYmplY3QpO3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LGxpbmssc3VmZml4KTtyZXR1cm47fQoraWYob2JqZWN0IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2Upe3ZhciBsaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpO2xpbmsuc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldChvYmplY3QpO3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LGxpbmssc3VmZml4KTtyZXR1cm47fQoraWYob2JqZWN0IGluc3RhbmNlb2YgdHIuYi5SZWN0KXt0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLGluZGVudCxvYmplY3QudG9TdHJpbmcoKSxzdWZmaXgpO3JldHVybjt9CitpZihvYmplY3QgaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlNpemVJbkJ5dGVzKXt2YXIgZWw9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7ZWwubnVtQnl0ZXM9b2JqZWN0Lm51bUJ5dGVzO3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LGVsLHN1ZmZpeCk7cmV0dXJuO30KK2lmKG9iamVjdCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuVGltZUR1cmF0aW9uKXt2YXIgZWw9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7ZWwuZHVyYXRpb249b2JqZWN0LmR1cmF0aW9uO3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LGVsLHN1ZmZpeCk7cmV0dXJuO30KK2lmKG9iamVjdCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuVGltZVN0YW1wKXt2YXIgZWw9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtdGltZS1zdGFtcC1zcGFuJyk7ZWwudGltZXN0YW1wPW9iamVjdC50aW1lc3RhbXA7dGhpcy5hcHBlbmRFbGVtZW50V2l0aExhYmVsXyhsYWJlbCxpbmRlbnQsZWwsc3VmZml4KTtyZXR1cm47fQoraWYob2JqZWN0IGluc3RhbmNlb2YgQXJyYXkpe3RoaXMuYXBwZW5kRWxlbWVudHNGb3JBcnJheV8obGFiZWwsb2JqZWN0LGluZGVudCxkZXB0aCxtYXhEZXB0aCxzdWZmaXgpO3JldHVybjt9Cit0aGlzLmFwcGVuZEVsZW1lbnRzRm9yT2JqZWN0XyhsYWJlbCxvYmplY3QsaW5kZW50LGRlcHRoLG1heERlcHRoLHN1ZmZpeCk7fSxhcHBlbmRFbGVtZW50c0ZvckFycmF5XzpmdW5jdGlvbihsYWJlbCxvYmplY3QsaW5kZW50LGRlcHRoLG1heERlcHRoLHN1ZmZpeCl7aWYob2JqZWN0Lmxlbmd0aD09MCl7dGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCxpbmRlbnQsJ1tdJyxzdWZmaXgpO3JldHVybjt9CitpZihpc1RhYmxlKG9iamVjdCkpe3ZhciB0YWJsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7dmFyIGNvbHVtbnM9W107dHIuYi5pdGVySXRlbXMob2JqZWN0WzBdLGZ1bmN0aW9uKGNvbE5hbWUpe2NvbHVtbnMucHVzaCh7dGl0bGU6Y29sTmFtZSx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3dbY29sTmFtZV07fX0pO30pO3RhYmxlLnRhYmxlQ29sdW1ucz1jb2x1bW5zO3RhYmxlLnRhYmxlUm93cz1vYmplY3Q7dGhpcy5hcHBlbmRFbGVtZW50V2l0aExhYmVsXyhsYWJlbCxpbmRlbnQsdGFibGUsc3VmZml4KTt0YWJsZS5yZWJ1aWxkKCk7cmV0dXJuO30KK3RoaXMuYXBwZW5kRWxlbWVudHNGb3JUeXBlXyhsYWJlbCsnWycsb2JqZWN0WzBdLGluZGVudCxkZXB0aCsxLG1heERlcHRoLG9iamVjdC5sZW5ndGg+MT8nLCc6J10nK3N1ZmZpeCk7Zm9yKHZhciBpPTE7aTxvYmplY3QubGVuZ3RoO2krKyl7dGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKCcnLG9iamVjdFtpXSxpbmRlbnQrbGFiZWwubGVuZ3RoKzEsZGVwdGgrMSxtYXhEZXB0aCxpPG9iamVjdC5sZW5ndGgtMT8nLCc6J10nK3N1ZmZpeCk7fQorcmV0dXJuO30sYXBwZW5kRWxlbWVudHNGb3JPYmplY3RfOmZ1bmN0aW9uKGxhYmVsLG9iamVjdCxpbmRlbnQsZGVwdGgsbWF4RGVwdGgsc3VmZml4KXt2YXIga2V5cz10ci5iLmRpY3Rpb25hcnlLZXlzKG9iamVjdCk7aWYoa2V5cy5sZW5ndGg9PTApe3RoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGFiZWwsaW5kZW50LCd7fScsc3VmZml4KTtyZXR1cm47fQordGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKGxhYmVsKyd7JytrZXlzWzBdKyc6ICcsb2JqZWN0W2tleXNbMF1dLGluZGVudCxkZXB0aCxtYXhEZXB0aCxrZXlzLmxlbmd0aD4xPycsJzonfScrc3VmZml4KTtmb3IodmFyIGk9MTtpPGtleXMubGVuZ3RoO2krKyl7dGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKGtleXNbaV0rJzogJyxvYmplY3Rba2V5c1tpXV0saW5kZW50K2xhYmVsLmxlbmd0aCsxLGRlcHRoKzEsbWF4RGVwdGgsaTxrZXlzLmxlbmd0aC0xPycsJzonfScrc3VmZml4KTt9fSxhcHBlbmRFbGVtZW50V2l0aExhYmVsXzpmdW5jdGlvbihsYWJlbCxpbmRlbnQsZGF0YUVsZW1lbnQsc3VmZml4KXt2YXIgcm93PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3ZhciBpbmRlbnRTcGFuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtpbmRlbnRTcGFuLnN0eWxlLndoaXRlU3BhY2U9J3ByZSc7Zm9yKHZhciBpPTA7aTxpbmRlbnQ7aSsrKQoraW5kZW50U3Bhbi50ZXh0Q29udGVudCs9JyAnO3Jvdy5hcHBlbmRDaGlsZChpbmRlbnRTcGFuKTt2YXIgbGFiZWxTcGFuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtsYWJlbFNwYW4udGV4dENvbnRlbnQ9bGFiZWw7cm93LmFwcGVuZENoaWxkKGxhYmVsU3Bhbik7cm93LmFwcGVuZENoaWxkKGRhdGFFbGVtZW50KTt2YXIgc3VmZml4U3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7c3VmZml4U3Bhbi50ZXh0Q29udGVudD1zdWZmaXg7cm93LmFwcGVuZENoaWxkKHN1ZmZpeFNwYW4pO3Jvdy5kYXRhRWxlbWVudD1kYXRhRWxlbWVudDt0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChyb3cpO30sYXBwZW5kU2ltcGxlVGV4dF86ZnVuY3Rpb24obGFiZWwsaW5kZW50LHRleHQsc3VmZml4KXt2YXIgZWw9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtlbC50ZXh0Q29udGVudD10ZXh0O3RoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsaW5kZW50LGVsLHN1ZmZpeCk7cmV0dXJuIGVsO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3LXdpdGgtbGFiZWwnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMubGFiZWxFbF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7dGhpcy5nZW5lcmljT2JqZWN0Vmlld189ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7dGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMubGFiZWxFbF8pO3RoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZCh0aGlzLmdlbmVyaWNPYmplY3RWaWV3Xyk7fSxnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy5sYWJlbEVsXy50ZXh0Q29udGVudDt9LHNldCBsYWJlbChsYWJlbCl7dGhpcy5sYWJlbEVsXy50ZXh0Q29udGVudD1sYWJlbDt9LGdldCBvYmplY3QoKXtyZXR1cm4gdGhpcy5nZW5lcmljT2JqZWN0Vmlld18ub2JqZWN0O30sc2V0IG9iamVjdChvYmplY3Qpe3RoaXMuZ2VuZXJpY09iamVjdFZpZXdfLm9iamVjdD1vYmplY3Q7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXN0YWNrLWZyYW1lJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnN0YWNrRnJhbWVfPXVuZGVmaW5lZDt0aGlzLiQudGFibGUudGFibGVDb2x1bW5zPVtdO3RoaXMuJC50YWJsZS5zaG93SGVhZGVyPWZhbHNlO30sZ2V0IHN0YWNrRnJhbWUoKXtyZXR1cm4gdGhpcy5zdGFja0ZyYW1lXzt9LHNldCBzdGFja0ZyYW1lKHN0YWNrRnJhbWUpe3ZhciB0YWJsZT10aGlzLiQudGFibGU7dGhpcy5zdGFja0ZyYW1lXz1zdGFja0ZyYW1lO2lmKHN0YWNrRnJhbWU9PT11bmRlZmluZWQpe3RhYmxlLnRhYmxlQ29sdW1ucz1bXTt0YWJsZS50YWJsZVJvd3M9W107dGFibGUucmVidWlsZCgpO3JldHVybjt9Cit2YXIgaGFzQ2F0ZWdvcnk9ZmFsc2U7dmFyIGhhc05hbWU9ZmFsc2U7dmFyIGhhc1RpdGxlPWZhbHNlO3RhYmxlLnRhYmxlUm93cz1zdGFja0ZyYW1lLnN0YWNrVHJhY2U7dGFibGUudGFibGVSb3dzLmZvckVhY2goZnVuY3Rpb24ocm93KXtoYXNDYXRlZ29yeXw9cm93LmNhdGVnb3J5IT09dW5kZWZpbmVkO2hhc05hbWV8PXJvdy5uYW1lIT09dW5kZWZpbmVkO2hhc1RpdGxlfD1yb3cudGl0bGUhPT11bmRlZmluZWQ7fSk7dmFyIGNvbHM9W107aWYoaGFzQ2F0ZWdvcnkpCitjb2xzLnB1c2goe3RpdGxlOidDYXRlZ29yeScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LmNhdGVnb3J5O319KTtpZihoYXNOYW1lKQorY29scy5wdXNoKHt0aXRsZTonTmFtZScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93Lm5hbWU7fX0pO2lmKGhhc1RpdGxlKQorY29scy5wdXNoKHt0aXRsZTonVGl0bGUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy50aXRsZTt9fSk7dGFibGUudGFibGVDb2x1bW5zPWNvbHM7dGFibGUucmVidWlsZCgpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9W3t0aXRsZTonTGFiZWwnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy5uYW1lO30sd2lkdGg6JzE1MHB4J30se3RpdGxlOidWYWx1ZScsd2lkdGg6JzEwMCUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy52YWx1ZTt9fV07dGhpcy4kLnRhYmxlLnNob3dIZWFkZXI9ZmFsc2U7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7aWYoc2VsZWN0aW9uLmxlbmd0aCE9PTEpCit0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgc2luZ2xlIHNsaWNlcycpO3RoaXMuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7fSxzZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3M6ZnVuY3Rpb24oc2VsZWN0aW9uKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0RXZlbnRSb3dzXzpmdW5jdGlvbihldmVudCl7dmFyIHJvd3M9W107aWYoZXZlbnQuZXJyb3IpCityb3dzLnB1c2goe25hbWU6J0Vycm9yJyx2YWx1ZTpldmVudC5lcnJvcn0pO2lmKGV2ZW50LnRpdGxlKQorcm93cy5wdXNoKHtuYW1lOidUaXRsZScsdmFsdWU6ZXZlbnQudGl0bGV9KTtpZihldmVudC5jYXRlZ29yeSkKK3Jvd3MucHVzaCh7bmFtZTonQ2F0ZWdvcnknLHZhbHVlOmV2ZW50LmNhdGVnb3J5fSk7dmFyIHN0YXJ0RWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLXN0YW1wLXNwYW4nKTtzdGFydEVsLnRpbWVzdGFtcD1ldmVudC5zdGFydDtyb3dzLnB1c2goe25hbWU6J1N0YXJ0Jyx2YWx1ZTpzdGFydEVsfSk7aWYoZXZlbnQuZHVyYXRpb24pe3ZhciB3YWxsRHVyYXRpb25FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtZHVyYXRpb24tc3BhbicpO3dhbGxEdXJhdGlvbkVsLmR1cmF0aW9uPWV2ZW50LmR1cmF0aW9uO3Jvd3MucHVzaCh7bmFtZTonV2FsbCBEdXJhdGlvbicsdmFsdWU6d2FsbER1cmF0aW9uRWx9KTt9CitpZihldmVudC5jcHVEdXJhdGlvbil7dmFyIGNwdUR1cmF0aW9uRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTtjcHVEdXJhdGlvbkVsLmR1cmF0aW9uPWV2ZW50LmNwdUR1cmF0aW9uO3Jvd3MucHVzaCh7bmFtZTonQ1BVIER1cmF0aW9uJyx2YWx1ZTpjcHVEdXJhdGlvbkVsfSk7fQoraWYoZXZlbnQuc3ViU2xpY2VzIT09dW5kZWZpbmVkJiZldmVudC5zdWJTbGljZXMubGVuZ3RoIT09MCl7aWYoZXZlbnQuc2VsZlRpbWUpe3ZhciBzZWxmVGltZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7c2VsZlRpbWVFbC5kdXJhdGlvbj1ldmVudC5zZWxmVGltZTtyb3dzLnB1c2goe25hbWU6J1NlbGYgVGltZScsdmFsdWU6c2VsZlRpbWVFbH0pO30KK2lmKGV2ZW50LmNwdVNlbGZUaW1lKXt2YXIgY3B1U2VsZlRpbWVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtZHVyYXRpb24tc3BhbicpO2NwdVNlbGZUaW1lRWwuZHVyYXRpb249ZXZlbnQuY3B1U2VsZlRpbWU7aWYoZXZlbnQuY3B1U2VsZlRpbWU+ZXZlbnQuc2VsZlRpbWUpe2NwdVNlbGZUaW1lRWwud2FybmluZz0nIE5vdGUgdGhhdCBDUFUgU2VsZiBUaW1lIGlzIGxhcmdlciB0aGFuIFNlbGYgVGltZS4gJysnVGhpcyBpcyBhIGtub3duIGxpbWl0YXRpb24gb2YgdGhpcyBzeXN0ZW0sIHdoaWNoIG9jY3VycyAnKydkdWUgdG8gc2V2ZXJhbCBzdWJzbGljZXMsIHJvdW5kaW5nIGlzc3VlcywgYW5kIGltcHJlY2lzZSAnKyd0aW1lIGF0IHdoaWNoIHdlIGdldCBjcHUtIGFuZCByZWFsLXRpbWUuJzt9Cityb3dzLnB1c2goe25hbWU6J0NQVSBTZWxmIFRpbWUnLHZhbHVlOmNwdVNlbGZUaW1lRWx9KTt9fQoraWYoZXZlbnQuZHVyYXRpb25JblVzZXJUaW1lKXt2YXIgZHVyYXRpb25JblVzZXJUaW1lRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTtkdXJhdGlvbkluVXNlclRpbWVFbC5kdXJhdGlvbj1ldmVudC5kdXJhdGlvbkluVXNlclRpbWU7cm93cy5wdXNoKHtuYW1lOidEdXJhdGlvbiAoVSknLHZhbHVlOmR1cmF0aW9uSW5Vc2VyVGltZUVsfSk7fQorZnVuY3Rpb24gY3JlYXRlU3RhY2tGcmFtZUVsKHNmKXt2YXIgc2ZFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXN0YWNrLWZyYW1lJyk7c2ZFbC5zdGFja0ZyYW1lPXNmO3JldHVybiBzZkVsO30KK2lmKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSYmZXZlbnQuZW5kU3RhY2tGcmFtZSl7aWYoZXZlbnQuc3RhcnRTdGFja0ZyYW1lPT09ZXZlbnQuZW5kU3RhY2tGcmFtZSl7cm93cy5wdXNoKHtuYW1lOidTdGFydCtFbmQgU3RhY2sgVHJhY2UnLHZhbHVlOmNyZWF0ZVN0YWNrRnJhbWVFbChldmVudC5zdGFydFN0YWNrRnJhbWUpfSk7fWVsc2V7cm93cy5wdXNoKHtuYW1lOidTdGFydCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTtyb3dzLnB1c2goe25hbWU6J0VuZCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LmVuZFN0YWNrRnJhbWUpfSk7fX1lbHNlIGlmKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl7cm93cy5wdXNoKHtuYW1lOidTdGFydCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTt9ZWxzZSBpZihldmVudC5lbmRTdGFja0ZyYW1lKXtyb3dzLnB1c2goe25hbWU6J0VuZCBTdGFjayBUcmFjZScsdmFsdWU6Y3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LmVuZFN0YWNrRnJhbWUpfSk7fQoraWYoZXZlbnQuaW5mbyl7dmFyIGRlc2NyaXB0aW9uRWw9dHIudWkuYi5jcmVhdGVEaXYoe3RleHRDb250ZW50OmV2ZW50LmluZm8uZGVzY3JpcHRpb24sbWF4V2lkdGg6JzMwMHB4J30pO3Jvd3MucHVzaCh7bmFtZTonRGVzY3JpcHRpb24nLHZhbHVlOmRlc2NyaXB0aW9uRWx9KTtpZihldmVudC5pbmZvLmRvY0xpbmtzKXtldmVudC5pbmZvLmRvY0xpbmtzLmZvckVhY2goZnVuY3Rpb24obGlua09iamVjdCl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7bGlua0VsLnRhcmdldD0nX2JsYW5rJztsaW5rRWwuaHJlZj1saW5rT2JqZWN0LmhyZWY7bGlua0VsLnRleHRDb250ZW50PWxpbmtPYmplY3QudGV4dENvbnRlbnQ7cm93cy5wdXNoKHtuYW1lOmxpbmtPYmplY3QubGFiZWwsdmFsdWU6bGlua0VsfSk7fSk7fX0KK2lmKGV2ZW50LmFzc29jaWF0ZWRBbGVydHMubGVuZ3RoKXt2YXIgYWxlcnRTdWJSb3dzPVtdO2V2ZW50LmFzc29jaWF0ZWRBbGVydHMuZm9yRWFjaChmdW5jdGlvbihhbGVydCl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpe3JldHVybiBuZXcgdHIubW9kZWwuRXZlbnRTZXQoYWxlcnQpO30sYWxlcnQuaW5mby5kZXNjcmlwdGlvbik7YWxlcnRTdWJSb3dzLnB1c2goe25hbWU6YWxlcnQudGl0bGUsdmFsdWU6bGlua0VsfSk7fSk7cm93cy5wdXNoKHtuYW1lOidBbGVydHMnLHZhbHVlOicnLGlzRXhwYW5kZWQ6dHJ1ZSxzdWJSb3dzOmFsZXJ0U3ViUm93c30pO30KK3JldHVybiByb3dzO30sYWRkQXJnc1RvUm93c186ZnVuY3Rpb24ocm93cyxhcmdzKXt2YXIgbj0wO2Zvcih2YXIgYXJnTmFtZSBpbiBhcmdzKXtuKz0xO30KK2lmKG4+MCl7dmFyIHN1YlJvd3M9W107Zm9yKHZhciBhcmdOYW1lIGluIGFyZ3Mpe3ZhciBhcmdWaWV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpO2FyZ1ZpZXcub2JqZWN0PWFyZ3NbYXJnTmFtZV07c3ViUm93cy5wdXNoKHtuYW1lOmFyZ05hbWUsdmFsdWU6YXJnVmlld30pO30KK3Jvd3MucHVzaCh7bmFtZTonQXJncycsdmFsdWU6JycsaXNFeHBhbmRlZDp0cnVlLHN1YlJvd3M6c3ViUm93c30pO30KK3JldHVybiByb3dzO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7aWYodGhpcy5jdXJyZW50U2VsZWN0aW9uXz09PXVuZGVmaW5lZCl7dGhpcy4kLnRhYmxlLnJvd3M9W107dGhpcy4kLnRhYmxlLnJlYnVpbGQoKTtyZXR1cm47fQordmFyIGV2ZW50PXRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF07dmFyIHJvd3M9dGhpcy5nZXRFdmVudFJvd3NfKGV2ZW50KTtpZihldmVudC5hcmdzU3RyaXBwZWQpCityb3dzLnB1c2goe25hbWU6J0FyZ3MnLHZhbHVlOidTdHJpcHBlZCd9KTtlbHNlCit0aGlzLmFkZEFyZ3NUb1Jvd3NfKHJvd3MsZXZlbnQuYXJncyk7dGhpcy4kLnRhYmxlLnRhYmxlUm93cz1yb3dzO3RoaXMuJC50YWJsZS5yZWJ1aWxkKCk7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLGZ1bmN0aW9uKCl7dmFyIEZMT1dfSU49MHgxO3ZhciBGTE9XX09VVD0weDI7dmFyIEZMT1dfSU5fT1VUPUZMT1dfSU58RkxPV19PVVQ7ZnVuY3Rpb24gRmxvd0NsYXNzaWZpZXIoKXt0aGlzLm51bUV2ZW50c189MDt0aGlzLmV2ZW50c0J5R1VJRF89e307fQorRmxvd0NsYXNzaWZpZXIucHJvdG90eXBlPXtnZXRGU186ZnVuY3Rpb24oZXZlbnQpe3ZhciBmcz10aGlzLmV2ZW50c0J5R1VJRF9bZXZlbnQuZ3VpZF07aWYoZnM9PT11bmRlZmluZWQpe3RoaXMubnVtRXZlbnRzXysrO2ZzPXtzdGF0ZTowLGV2ZW50OmV2ZW50fTt0aGlzLmV2ZW50c0J5R1VJRF9bZXZlbnQuZ3VpZF09ZnM7fQorcmV0dXJuIGZzO30sYWRkSW5GbG93OmZ1bmN0aW9uKGV2ZW50KXt2YXIgZnM9dGhpcy5nZXRGU18oZXZlbnQpO2ZzLnN0YXRlfD1GTE9XX0lOO3JldHVybiBldmVudDt9LGFkZE91dEZsb3c6ZnVuY3Rpb24oZXZlbnQpe3ZhciBmcz10aGlzLmdldEZTXyhldmVudCk7ZnMuc3RhdGV8PUZMT1dfT1VUO3JldHVybiBldmVudDt9LGhhc0V2ZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLm51bUV2ZW50c18+MDt9LGdldCBpbkZsb3dFdmVudHMoKXt2YXIgc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldCgpO2Zvcih2YXIgZ3VpZCBpbiB0aGlzLmV2ZW50c0J5R1VJRF8pe3ZhciBmcz10aGlzLmV2ZW50c0J5R1VJRF9bZ3VpZF07aWYoZnMuc3RhdGU9PT1GTE9XX0lOKQorc2VsZWN0aW9uLnB1c2goZnMuZXZlbnQpO30KK3JldHVybiBzZWxlY3Rpb247fSxnZXQgb3V0Rmxvd0V2ZW50cygpe3ZhciBzZWxlY3Rpb249bmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7Zm9yKHZhciBndWlkIGluIHRoaXMuZXZlbnRzQnlHVUlEXyl7dmFyIGZzPXRoaXMuZXZlbnRzQnlHVUlEX1tndWlkXTtpZihmcy5zdGF0ZT09PUZMT1dfT1VUKQorc2VsZWN0aW9uLnB1c2goZnMuZXZlbnQpO30KK3JldHVybiBzZWxlY3Rpb247fSxnZXQgaW50ZXJuYWxGbG93RXZlbnRzKCl7dmFyIHNlbGVjdGlvbj1uZXcgdHIubW9kZWwuRXZlbnRTZXQoKTtmb3IodmFyIGd1aWQgaW4gdGhpcy5ldmVudHNCeUdVSURfKXt2YXIgZnM9dGhpcy5ldmVudHNCeUdVSURfW2d1aWRdO2lmKGZzLnN0YXRlPT09RkxPV19JTl9PVVQpCitzZWxlY3Rpb24ucHVzaChmcy5ldmVudCk7fQorcmV0dXJuIHNlbGVjdGlvbjt9fTtyZXR1cm57Rmxvd0NsYXNzaWZpZXI6Rmxvd0NsYXNzaWZpZXJ9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXJlbGF0ZWQtZXZlbnRzJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50R3JvdXBzXz1bXTt0aGlzLiQudGFibGUudGFibGVDb2x1bW5zPVt7dGl0bGU6J0V2ZW50KHMpJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3ZhciB0eXBlRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO3R5cGVFbC5pbm5lclRleHQ9cm93LnR5cGU7aWYocm93LnRvb2x0aXApCit0eXBlRWwudGl0bGU9cm93LnRvb2x0aXA7cmV0dXJuIHR5cGVFbDt9LHdpZHRoOicxNTBweCd9LHt0aXRsZTonTGluaycsd2lkdGg6JzEwMCUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTtpZihyb3cubmFtZSkKK2xpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KHJvdy5zZWxlY3Rpb24scm93Lm5hbWUpO2Vsc2UKK2xpbmtFbC5zZWxlY3Rpb249cm93LnNlbGVjdGlvbjtyZXR1cm4gbGlua0VsO319XTt9LGhhc1JlbGF0ZWRFdmVudHM6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5ldmVudEdyb3Vwc18mJnRoaXMuZXZlbnRHcm91cHNfLmxlbmd0aD4wKTt9LHNldFJlbGF0ZWRFdmVudHM6ZnVuY3Rpb24oZXZlbnRTZXQpe3RoaXMuZXZlbnRHcm91cHNfPVtdO3RoaXMuYWRkQ29ubmVjdGVkRmxvd3NfKGV2ZW50U2V0KTt0aGlzLmFkZENvbm5lY3RlZEV2ZW50c18oZXZlbnRTZXQpO3RoaXMuYWRkT3ZlcmxhcHBpbmdTYW1wbGVzXyhldmVudFNldCk7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGFkZENvbm5lY3RlZEZsb3dzXzpmdW5jdGlvbihldmVudFNldCl7dmFyIGNsYXNzaWZpZXI9bmV3IHRyLnVpLmFuYWx5c2lzLkZsb3dDbGFzc2lmaWVyKCk7ZXZlbnRTZXQuZm9yRWFjaChmdW5jdGlvbihzbGljZSl7aWYoc2xpY2UuaW5GbG93RXZlbnRzKXtzbGljZS5pbkZsb3dFdmVudHMuZm9yRWFjaChmdW5jdGlvbihmbG93KXtjbGFzc2lmaWVyLmFkZEluRmxvdyhmbG93KTt9KTt9CitpZihzbGljZS5vdXRGbG93RXZlbnRzKXtzbGljZS5vdXRGbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZmxvdyl7Y2xhc3NpZmllci5hZGRPdXRGbG93KGZsb3cpO30pO319KTtpZighY2xhc3NpZmllci5oYXNFdmVudHMoKSkKK3JldHVybjt2YXIgYWRkVG9FdmVudEdyb3Vwcz1mdW5jdGlvbih0eXBlLGZsb3dFdmVudCl7dGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7dHlwZTp0eXBlLHNlbGVjdGlvbjpuZXcgdHIubW9kZWwuRXZlbnRTZXQoZmxvd0V2ZW50KSxuYW1lOmZsb3dFdmVudC50aXRsZX0pO307Y2xhc3NpZmllci5pbkZsb3dFdmVudHMuZm9yRWFjaChhZGRUb0V2ZW50R3JvdXBzLmJpbmQodGhpcywnSW5jb21pbmcgZmxvdycpKTtjbGFzc2lmaWVyLm91dEZsb3dFdmVudHMuZm9yRWFjaChhZGRUb0V2ZW50R3JvdXBzLmJpbmQodGhpcywnT3V0Z29pbmcgZmxvdycpKTtjbGFzc2lmaWVyLmludGVybmFsRmxvd0V2ZW50cy5mb3JFYWNoKGFkZFRvRXZlbnRHcm91cHMuYmluZCh0aGlzLCdJbnRlcm5hbCBmbG93JykpO30sYWRkQ29ubmVjdGVkRXZlbnRzXzpmdW5jdGlvbihldmVudFNldCl7aWYoZXZlbnRTZXQubGVuZ3RoPT09MCkKK3JldHVybjt2YXIgcHJlY2VkaW5nRXZlbnRzPW5ldyB0ci5tb2RlbC5FdmVudFNldChldmVudFNldC50b0FycmF5KCkpO3ZhciBmb2xsb3dpbmdFdmVudHM9bmV3IHRyLm1vZGVsLkV2ZW50U2V0KGV2ZW50U2V0LnRvQXJyYXkoKSk7dmFyIGk9MDt3aGlsZShpPHByZWNlZGluZ0V2ZW50cy5sZW5ndGgpe3ZhciBldmVudD1wcmVjZWRpbmdFdmVudHNbaV07dGhpcy5hZGRJbkZsb3dFdmVudHNfKGV2ZW50LHByZWNlZGluZ0V2ZW50cyk7dGhpcy5hZGRBbmNlc3RvcnNfKGV2ZW50LHByZWNlZGluZ0V2ZW50cyk7aWYoZXZlbnQuc3RhcnRTbGljZSkKK3ByZWNlZGluZ0V2ZW50cy5wdXNoKGV2ZW50LnN0YXJ0U2xpY2UpO2krKzt9CitpPTA7d2hpbGUoaTxmb2xsb3dpbmdFdmVudHMubGVuZ3RoKXt2YXIgZXZlbnQ9Zm9sbG93aW5nRXZlbnRzW2ldO3RoaXMuYWRkT3V0Rmxvd0V2ZW50c18oZXZlbnQsZm9sbG93aW5nRXZlbnRzKTt0aGlzLmFkZERlc2NlbmRlbnRzXyhldmVudCxmb2xsb3dpbmdFdmVudHMpO2lmKGV2ZW50LmVuZFNsaWNlKQorZm9sbG93aW5nRXZlbnRzLnB1c2goZXZlbnQuZW5kU2xpY2UpO2krKzt9Cit2YXIgYWxsRXZlbnRzPW5ldyB0ci5tb2RlbC5FdmVudFNldChwcmVjZWRpbmdFdmVudHMudG9BcnJheSgpKTtmb2xsb3dpbmdFdmVudHMuZm9yRWFjaChmdW5jdGlvbihlKXthbGxFdmVudHMucHVzaChlKTt9KTtpPTA7d2hpbGUoaTxhbGxFdmVudHMubGVuZ3RoKXt2YXIgZXZlbnQ9YWxsRXZlbnRzW2ldO3RoaXMuYWRkSW5GbG93RXZlbnRzXyhldmVudCxhbGxFdmVudHMpO3RoaXMuYWRkT3V0Rmxvd0V2ZW50c18oZXZlbnQsYWxsRXZlbnRzKTt0aGlzLmFkZEFuY2VzdG9yc18oZXZlbnQsYWxsRXZlbnRzKTt0aGlzLmFkZERlc2NlbmRlbnRzXyhldmVudCxhbGxFdmVudHMpO2lmKGV2ZW50LnN0YXJ0U2xpY2UpCithbGxFdmVudHMucHVzaChldmVudC5zdGFydFNsaWNlKTtpZihldmVudC5lbmRTbGljZSkKK2FsbEV2ZW50cy5wdXNoKGV2ZW50LmVuZFNsaWNlKTtpKys7fQoraWYocHJlY2VkaW5nRXZlbnRzLmxlbmd0aCE9PWV2ZW50U2V0Lmxlbmd0aCl7dGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7dHlwZTonUHJlY2VkaW5nIGV2ZW50cycsdG9vbHRpcDonQWxsIGV2ZW50cyB0aGF0IGhhdmUgbGVkIHRvIHRoZSBzZWxlY3RlZCBvbmUocyksICcrJ2Nvbm5lY3RlZCBieSBmbG93IGFycm93cyBvciBieSBoaWVyYXJjaHkuJyxzZWxlY3Rpb246cHJlY2VkaW5nRXZlbnRzfSk7fQoraWYoZm9sbG93aW5nRXZlbnRzLmxlbmd0aCE9PWV2ZW50U2V0Lmxlbmd0aCl7dGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7dHlwZTonRm9sbG93aW5nIGV2ZW50cycsdG9vbHRpcDonQWxsIGV2ZW50cyB0aGF0IGhhdmUgYmVlbiBjYXVzZWQgYnkgdGhlIHNlbGVjdGVkIG9uZShzKSwgJysnY29ubmVjdGVkIGJ5IGZsb3cgYXJyb3dzIG9yIGJ5IGNhbGwgc3RhY2suJyxzZWxlY3Rpb246Zm9sbG93aW5nRXZlbnRzfSk7fQoraWYoYWxsRXZlbnRzLmxlbmd0aCE9PWV2ZW50U2V0Lmxlbmd0aCl7dGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7dHlwZTonQWxsIGNvbm5lY3RlZCBldmVudHMnLHRvb2x0aXA6J0FsbCBldmVudHMgY29ubmVjdGVkIHRvIHRoZSBzZWxlY3RlZCBvbmUocykgYnkgZmxvdyAnKydhcnJvd3Mgb3IgYnkgY2FsbCBzdGFjay4nLHNlbGVjdGlvbjphbGxFdmVudHN9KTt9fSxhZGRJbkZsb3dFdmVudHNfOmZ1bmN0aW9uKGV2ZW50LGV2ZW50U2V0KXtpZighZXZlbnQuaW5GbG93RXZlbnRzKQorcmV0dXJuO2V2ZW50LmluRmxvd0V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2V2ZW50U2V0LnB1c2goZSk7fSk7fSxhZGRPdXRGbG93RXZlbnRzXzpmdW5jdGlvbihldmVudCxldmVudFNldCl7aWYoIWV2ZW50Lm91dEZsb3dFdmVudHMpCityZXR1cm47ZXZlbnQub3V0Rmxvd0V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2V2ZW50U2V0LnB1c2goZSk7fSk7fSxhZGRBbmNlc3RvcnNfOmZ1bmN0aW9uKGV2ZW50LGV2ZW50U2V0KXtpZighZXZlbnQuaXRlcmF0ZUFsbEFuY2VzdG9ycykKK3JldHVybjtldmVudC5pdGVyYXRlQWxsQW5jZXN0b3JzKGZ1bmN0aW9uKGUpe2V2ZW50U2V0LnB1c2goZSk7fSk7fSxhZGREZXNjZW5kZW50c186ZnVuY3Rpb24oZXZlbnQsZXZlbnRTZXQpe2lmKCFldmVudC5pdGVyYXRlQWxsRGVzY2VuZGVudHMpCityZXR1cm47ZXZlbnQuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGZ1bmN0aW9uKGUpe2V2ZW50U2V0LnB1c2goZSk7fSk7fSxmaW5kT3ZlcmxhcHBpbmdTYW1wbGVJbmRpY2VzXzpmdW5jdGlvbihzYW1wbGVzLHNsaWNlKXtmdW5jdGlvbiBiaW5TZWFyY2godGVzdCl7dmFyIGkwPTA7dmFyIGkxPXNhbXBsZXMubGVuZ3RoO3doaWxlKGkwPGkxLTEpe3ZhciBpPU1hdGgudHJ1bmMoKGkwK2kxKS8yKTtpZih0ZXN0KGkpKQoraTE9aTtlbHNlCitpMD1pO30KK3JldHVybiBpMTt9Cit2YXIgZmlyc3Q9YmluU2VhcmNoKGZ1bmN0aW9uKGkpe3JldHVybiBzbGljZS5zdGFydDw9c2FtcGxlc1tpXS5zdGFydDt9KTt2YXIgc2xpY2VFbmQ9c2xpY2Uuc3RhcnQrc2xpY2UuZHVyYXRpb247dmFyIGxhc3Q9YmluU2VhcmNoKGZ1bmN0aW9uKGkpe3JldHVybiBzbGljZUVuZDxzYW1wbGVzW2ldLnN0YXJ0O30pO3JldHVybltmaXJzdCxsYXN0XTt9LGFkZE92ZXJsYXBwaW5nU2FtcGxlc186ZnVuY3Rpb24oZXZlbnRTZXQpe3ZhciBzYW1wbGVzPW5ldyB0ci5tb2RlbC5FdmVudFNldDtldmVudFNldC5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXtpZighc2xpY2UucGFyZW50Q29udGFpbmVyfHwhc2xpY2UucGFyZW50Q29udGFpbmVyLnNhbXBsZXMpCityZXR1cm47dmFyIGNhbmRpZGF0ZXM9c2xpY2UucGFyZW50Q29udGFpbmVyLnNhbXBsZXM7dmFyIGZpbHRlcmVkU2FtcGxlcz1jYW5kaWRhdGVzLnNsaWNlLmFwcGx5KGNhbmRpZGF0ZXMsdGhpcy5maW5kT3ZlcmxhcHBpbmdTYW1wbGVJbmRpY2VzXyhjYW5kaWRhdGVzLHNsaWNlKSk7ZmlsdGVyZWRTYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKXtzYW1wbGVzLnB1c2goc2FtcGxlKTt9KTt9LmJpbmQodGhpcykpO2lmKHNhbXBsZXMubGVuZ3RoPjApe3RoaXMuZXZlbnRHcm91cHNfLnB1c2goe3R5cGU6J092ZXJsYXBwaW5nIHNhbXBsZXMnLHRvb2x0aXA6J0FsbCBzYW1wbGVzIG92ZXJsYXBwaW5nIHRoZSBzZWxlY3RlZCBzbGljZShzKS4nLHNlbGVjdGlvbjpzYW1wbGVzfSk7fX0sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dmFyIHRhYmxlPXRoaXMuJC50YWJsZTtpZih0aGlzLmV2ZW50R3JvdXBzXz09PXVuZGVmaW5lZCkKK3RhYmxlLnRhYmxlUm93cz1bXTtlbHNlCit0YWJsZS50YWJsZVJvd3M9dGhpcy5ldmVudEdyb3Vwc18uc2xpY2UoKTt0YWJsZS5yZWJ1aWxkKCk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXNpbmdsZS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnLHtnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbjt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLiQuY29udGVudC5zZWxlY3Rpb249c2VsZWN0aW9uO3RoaXMuJC5yZWxhdGVkRXZlbnRzLnNldFJlbGF0ZWRFdmVudHMoc2VsZWN0aW9uKTtpZih0aGlzLiQucmVsYXRlZEV2ZW50cy5oYXNSZWxhdGVkRXZlbnRzKCkpCit0aGlzLiQucmVsYXRlZEV2ZW50cy5zdHlsZS5kaXNwbGF5PScnO2Vsc2UKK3RoaXMuJC5yZWxhdGVkRXZlbnRzLnN0eWxlLmRpc3BsYXk9J25vbmUnO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZScse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbl89bmV3IHRyLmIuUmFuZ2UoKTt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy4kLnRhYmxlLnNob3dIZWFkZXI9ZmFsc2U7dGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1ucz1be3RpdGxlOidOYW1lJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cudGl0bGU7fSx3aWR0aDonMzUwcHgnfSx7dGl0bGU6J1ZhbHVlJyx3aWR0aDonMTAwJScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnZhbHVlO319XTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuc2VsZWN0aW9uXz1zZWxlY3Rpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3ZhciBzZWxlY3Rpb249dGhpcy5zZWxlY3Rpb25fO3ZhciByb3dzPVtdO3ZhciBoYXNSYW5nZTtpZih0aGlzLnNlbGVjdGlvbl8mJighc2VsZWN0aW9uLmJvdW5kcy5pc0VtcHR5KSkKK2hhc1JhbmdlPXRydWU7ZWxzZQoraGFzUmFuZ2U9ZmFsc2U7dmFyIHRpbWVTcGFuQ29uZmlnPXtvd25lckRvY3VtZW50OnRoaXMub3duZXJEb2N1bWVudH07cm93cy5wdXNoKHt0aXRsZTonU2VsZWN0aW9uIHN0YXJ0Jyx2YWx1ZTpoYXNSYW5nZT90ci51aS51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKHNlbGVjdGlvbi5ib3VuZHMubWluLHRpbWVTcGFuQ29uZmlnKTonPGVtcHR5Pid9KTtyb3dzLnB1c2goe3RpdGxlOidTZWxlY3Rpb24gZXh0ZW50Jyx2YWx1ZTpoYXNSYW5nZT90ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKHNlbGVjdGlvbi5ib3VuZHMucmFuZ2UsdGltZVNwYW5Db25maWcpOic8ZW1wdHk+J30pO3RoaXMuJC50YWJsZS50YWJsZVJvd3M9cm93czt0aGlzLiQudGFibGUucmVidWlsZCgpO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmFuYWx5c2lzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIE11bHRpRXZlbnRTdW1tYXJ5KHRpdGxlLGV2ZW50cyl7dGhpcy50aXRsZT10aXRsZTt0aGlzLmR1cmF0aW9uXz11bmRlZmluZWQ7dGhpcy5zZWxmVGltZV89dW5kZWZpbmVkO3RoaXMuZXZlbnRzXz1ldmVudHM7dGhpcy5jcHVUaW1lc0NvbXB1dGVkXz1mYWxzZTt0aGlzLmNwdVNlbGZUaW1lXz11bmRlZmluZWQ7dGhpcy5jcHVEdXJhdGlvbl89dW5kZWZpbmVkO3RoaXMubWF4RHVyYXRpb25fPXVuZGVmaW5lZDt0aGlzLm1heENwdUR1cmF0aW9uXz11bmRlZmluZWQ7dGhpcy5tYXhTZWxmVGltZV89dW5kZWZpbmVkO3RoaXMubWF4Q3B1U2VsZlRpbWVfPXVuZGVmaW5lZDt0aGlzLnVudG90YWxsYWJsZUFyZ3NfPVtdO3RoaXMudG90YWxsZWRBcmdzXz11bmRlZmluZWQ7fTtNdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGU9e3NldCB0aXRsZSh0aXRsZSl7aWYodGl0bGU9PSdUb3RhbHMnKQordGhpcy50b3RhbHNSb3c9dHJ1ZTt0aGlzLnRpdGxlXz10aXRsZTt9LGdldCB0aXRsZSgpe3JldHVybiB0aGlzLnRpdGxlXzt9LGdldCBkdXJhdGlvbigpe2lmKHRoaXMuZHVyYXRpb25fPT09dW5kZWZpbmVkKXt0aGlzLmR1cmF0aW9uXz10ci5iLlN0YXRpc3RpY3Muc3VtKHRoaXMuZXZlbnRzXyxmdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LmR1cmF0aW9uO30pO30KK3JldHVybiB0aGlzLmR1cmF0aW9uXzt9LGdldCBjcHVTZWxmVGltZSgpe3RoaXMuY29tcHV0ZUNwdVRpbWVzSWZOZWVkZWRfKCk7cmV0dXJuIHRoaXMuY3B1U2VsZlRpbWVfO30sZ2V0IGNwdUR1cmF0aW9uKCl7dGhpcy5jb21wdXRlQ3B1VGltZXNJZk5lZWRlZF8oKTtyZXR1cm4gdGhpcy5jcHVEdXJhdGlvbl87fSxjb21wdXRlQ3B1VGltZXNJZk5lZWRlZF86ZnVuY3Rpb24oKXtpZih0aGlzLmNwdVRpbWVzQ29tcHV0ZWRfKQorcmV0dXJuO3RoaXMuY3B1VGltZXNDb21wdXRlZF89dHJ1ZTt2YXIgY3B1U2VsZlRpbWU9MDt2YXIgY3B1RHVyYXRpb249MDt2YXIgaGFzQ3B1RGF0YT1mYWxzZTtmb3IodmFyIGk9MDtpPHRoaXMuZXZlbnRzXy5sZW5ndGg7aSsrKXt2YXIgZXZlbnQ9dGhpcy5ldmVudHNfW2ldO2lmKGV2ZW50LmNwdUR1cmF0aW9uIT09dW5kZWZpbmVkKXtjcHVEdXJhdGlvbis9ZXZlbnQuY3B1RHVyYXRpb247aGFzQ3B1RGF0YT10cnVlO30KK2lmKGV2ZW50LmNwdVNlbGZUaW1lIT09dW5kZWZpbmVkKXtjcHVTZWxmVGltZSs9ZXZlbnQuY3B1U2VsZlRpbWU7aGFzQ3B1RGF0YT10cnVlO319CitpZihoYXNDcHVEYXRhKXt0aGlzLmNwdUR1cmF0aW9uXz1jcHVEdXJhdGlvbjt0aGlzLmNwdVNlbGZUaW1lXz1jcHVTZWxmVGltZTt9fSxnZXQgc2VsZlRpbWUoKXtpZih0aGlzLnNlbGZUaW1lXz09PXVuZGVmaW5lZCl7dGhpcy5zZWxmVGltZV89MDtmb3IodmFyIGk9MDtpPHRoaXMuZXZlbnRzXy5sZW5ndGg7aSsrKXtpZih0aGlzLmV2ZW50c19baV0uc2VsZlRpbWUhPT11bmRlZmluZWQpCit0aGlzLnNlbGZUaW1lXys9dGhpcy5ldmVudHNbaV0uc2VsZlRpbWU7fX0KK3JldHVybiB0aGlzLnNlbGZUaW1lXzt9LGdldCBldmVudHMoKXtyZXR1cm4gdGhpcy5ldmVudHNfO30sZ2V0IG51bUV2ZW50cygpe3JldHVybiB0aGlzLmV2ZW50c18ubGVuZ3RoO30sZ2V0IG51bUFsZXJ0cygpe2lmKHRoaXMubnVtQWxlcnRzXz09PXVuZGVmaW5lZCl7dGhpcy5udW1BbGVydHNfPXRyLmIuU3RhdGlzdGljcy5zdW0odGhpcy5ldmVudHNfLGZ1bmN0aW9uKGV2ZW50KXtyZXR1cm4gZXZlbnQuYXNzb2NpYXRlZEFsZXJ0cy5sZW5ndGg7fSk7fQorcmV0dXJuIHRoaXMubnVtQWxlcnRzXzt9LGdldCB1bnRvdGFsbGFibGVBcmdzKCl7dGhpcy51cGRhdGVBcmdzSWZOZWVkZWRfKCk7cmV0dXJuIHRoaXMudW50b3RhbGxhYmxlQXJnc187fSxnZXQgdG90YWxsZWRBcmdzKCl7dGhpcy51cGRhdGVBcmdzSWZOZWVkZWRfKCk7cmV0dXJuIHRoaXMudG90YWxsZWRBcmdzXzt9LGdldCBtYXhEdXJhdGlvbigpe2lmKHRoaXMubWF4RHVyYXRpb25fPT09dW5kZWZpbmVkKXt0aGlzLm1heER1cmF0aW9uXz10ci5iLlN0YXRpc3RpY3MubWF4KHRoaXMuZXZlbnRzXyxmdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LmR1cmF0aW9uO30pO30KK3JldHVybiB0aGlzLm1heER1cmF0aW9uXzt9LGdldCBtYXhDcHVEdXJhdGlvbigpe2lmKHRoaXMubWF4Q3B1RHVyYXRpb25fPT09dW5kZWZpbmVkKXt0aGlzLm1heENwdUR1cmF0aW9uXz10ci5iLlN0YXRpc3RpY3MubWF4KHRoaXMuZXZlbnRzXyxmdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LmNwdUR1cmF0aW9uO30pO30KK3JldHVybiB0aGlzLm1heENwdUR1cmF0aW9uXzt9LGdldCBtYXhTZWxmVGltZSgpe2lmKHRoaXMubWF4U2VsZlRpbWVfPT09dW5kZWZpbmVkKXt0aGlzLm1heFNlbGZUaW1lXz10ci5iLlN0YXRpc3RpY3MubWF4KHRoaXMuZXZlbnRzXyxmdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LnNlbGZUaW1lO30pO30KK3JldHVybiB0aGlzLm1heFNlbGZUaW1lXzt9LGdldCBtYXhDcHVTZWxmVGltZSgpe2lmKHRoaXMubWF4Q3B1U2VsZlRpbWVfPT09dW5kZWZpbmVkKXt0aGlzLm1heENwdVNlbGZUaW1lXz10ci5iLlN0YXRpc3RpY3MubWF4KHRoaXMuZXZlbnRzXyxmdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LmNwdVNlbGZUaW1lO30pO30KK3JldHVybiB0aGlzLm1heENwdVNlbGZUaW1lXzt9LHVwZGF0ZUFyZ3NJZk5lZWRlZF86ZnVuY3Rpb24oKXtpZih0aGlzLnRvdGFsbGVkQXJnc18hPT11bmRlZmluZWQpCityZXR1cm47dmFyIHVudG90YWxsYWJsZUFyZ3M9e307dmFyIHRvdGFsbGVkQXJncz17fTtmb3IodmFyIGk9MDtpPHRoaXMuZXZlbnRzXy5sZW5ndGg7aSsrKXt2YXIgZXZlbnQ9dGhpcy5ldmVudHNfW2ldO2Zvcih2YXIgYXJnTmFtZSBpbiBldmVudC5hcmdzKXt2YXIgYXJnVmFsPWV2ZW50LmFyZ3NbYXJnTmFtZV07dmFyIHR5cGU9dHlwZW9mIGFyZ1ZhbDtpZih0eXBlIT09J251bWJlcicpe3VudG90YWxsYWJsZUFyZ3NbYXJnTmFtZV09dHJ1ZTtkZWxldGUgdG90YWxsZWRBcmdzW2FyZ05hbWVdO2NvbnRpbnVlO30KK2lmKHVudG90YWxsYWJsZUFyZ3NbYXJnTmFtZV0pe2NvbnRpbnVlO30KK2lmKHRvdGFsbGVkQXJnc1thcmdOYW1lXT09PXVuZGVmaW5lZCkKK3RvdGFsbGVkQXJnc1thcmdOYW1lXT0wO3RvdGFsbGVkQXJnc1thcmdOYW1lXSs9YXJnVmFsO319Cit0aGlzLnVudG90YWxsYWJsZUFyZ3NfPXRyLmIuZGljdGlvbmFyeUtleXModW50b3RhbGxhYmxlQXJncyk7dGhpcy50b3RhbGxlZEFyZ3NfPXRvdGFsbGVkQXJnczt9fTtyZXR1cm57TXVsdGlFdmVudFN1bW1hcnk6TXVsdGlFdmVudFN1bW1hcnl9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuc2hvd1RvdGFsc189ZmFsc2U7dGhpcy5ldmVudHNIYXZlRHVyYXRpb25fPXRydWU7dGhpcy5ldmVudHNIYXZlU3ViUm93c189dHJ1ZTt0aGlzLmV2ZW50c0J5VGl0bGVfPXVuZGVmaW5lZDt9LHVwZGF0ZVRhYmxlQ29sdW1uc186ZnVuY3Rpb24ocm93cyxtYXhWYWx1ZXMpe3ZhciBoYXNDcHVEYXRhPWZhbHNlO3ZhciBoYXNBbGVydHM9ZmFsc2U7cm93cy5mb3JFYWNoKGZ1bmN0aW9uKHJvdyl7aWYocm93LmNwdUR1cmF0aW9uIT09dW5kZWZpbmVkKQoraGFzQ3B1RGF0YT10cnVlO2lmKHJvdy5jcHVTZWxmVGltZSE9PXVuZGVmaW5lZCkKK2hhc0NwdURhdGE9dHJ1ZTtpZihyb3cubnVtQWxlcnRzKQoraGFzQWxlcnRzPXRydWU7fSk7dmFyIG93bmVyRG9jdW1lbnQ9dGhpcy5vd25lckRvY3VtZW50O3ZhciBjb2x1bW5zPVtdO2NvbHVtbnMucHVzaCh7dGl0bGU6J05hbWUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7aWYocm93LnRpdGxlPT09J1RvdGFscycpCityZXR1cm4nVG90YWxzJzt2YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpO2xpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0ci5tb2RlbC5FdmVudFNldChyb3cuZXZlbnRzKTt9LHJvdy50aXRsZSk7cmV0dXJuIGxpbmtFbDt9LHdpZHRoOiczNTBweCcsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EudGl0bGUubG9jYWxlQ29tcGFyZShyb3dCLnRpdGxlKTt9fSk7aWYodGhpcy5ldmVudHNIYXZlRHVyYXRpb25fKXtjb2x1bW5zLnB1c2goe3RpdGxlOidXYWxsIER1cmF0aW9uJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKHJvdy5kdXJhdGlvbix7dG90YWw6cm93LnRvdGFsc1Jvdz91bmRlZmluZWQ6bWF4VmFsdWVzLmR1cmF0aW9uLG93bmVyRG9jdW1lbnQ6b3duZXJEb2N1bWVudCxyaWdodEFsaWduOnRydWV9KTt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLmR1cmF0aW9uLXJvd0IuZHVyYXRpb247fX0pO30KK2lmKHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyYmaGFzQ3B1RGF0YSl7Y29sdW1ucy5wdXNoKHt0aXRsZTonQ1BVIER1cmF0aW9uJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKHJvdy5jcHVEdXJhdGlvbix7dG90YWw6cm93LnRvdGFsc1Jvdz91bmRlZmluZWQ6bWF4VmFsdWVzLmNwdUR1cmF0aW9uLG93bmVyRG9jdW1lbnQ6b3duZXJEb2N1bWVudCxyaWdodEFsaWduOnRydWV9KTt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLmNwdUR1cmF0aW9uLXJvd0IuY3B1RHVyYXRpb247fX0pO30KK2lmKHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfJiZ0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8pe2NvbHVtbnMucHVzaCh7dGl0bGU6J1NlbGYgdGltZScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3Bhbihyb3cuc2VsZlRpbWUse3RvdGFsOnJvdy50b3RhbHNSb3c/dW5kZWZpbmVkOm1heFZhbHVlcy5zZWxmVGltZSxvd25lckRvY3VtZW50Om93bmVyRG9jdW1lbnQscmlnaHRBbGlnbjp0cnVlfSk7fSx3aWR0aDonPHVwYXRlZCBmdXJ0aGVyIGRvd24+JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS5zZWxmVGltZS1yb3dCLnNlbGZUaW1lO319KTt9CitpZih0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyYmdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fJiZoYXNDcHVEYXRhKXtjb2x1bW5zLnB1c2goe3RpdGxlOidDUFUgU2VsZiBUaW1lJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKHJvdy5jcHVTZWxmVGltZSx7dG90YWw6cm93LnRvdGFsc1Jvdz91bmRlZmluZWQ6bWF4VmFsdWVzLmNwdVNlbGZUaW1lLG93bmVyRG9jdW1lbnQ6b3duZXJEb2N1bWVudCxyaWdodEFsaWduOnRydWV9KTt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLmNwdVNlbGZUaW1lLXJvd0IuY3B1U2VsZlRpbWU7fX0pO30KK2NvbHVtbnMucHVzaCh7dGl0bGU6J09jY3VycmVuY2VzJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cubnVtRXZlbnRzO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EubnVtRXZlbnRzLXJvd0IubnVtRXZlbnRzO319KTt2YXIgYWxlcnRzQ29sdW1uSW5kZXg7aWYoaGFzQWxlcnRzKXtjb2x1bW5zLnB1c2goe3RpdGxlOidOdW0gQWxlcnRzJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cubnVtQWxlcnRzO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EubnVtQWxlcnRzLXJvd0IubnVtQWxlcnRzO319KTthbGVydHNDb2x1bW5JbmRleD1jb2x1bW5zLmxlbmd0aC0xO30KK3ZhciBjb2xXaWR0aFBlcmNlbnRhZ2U7aWYoY29sdW1ucy5sZW5ndGg9PTEpCitjb2xXaWR0aFBlcmNlbnRhZ2U9JzEwMCUnO2Vsc2UKK2NvbFdpZHRoUGVyY2VudGFnZT0oMTAwLyhjb2x1bW5zLmxlbmd0aC0xKSkudG9GaXhlZCgzKSsnJSc7Zm9yKHZhciBpPTE7aTxjb2x1bW5zLmxlbmd0aDtpKyspCitjb2x1bW5zW2ldLndpZHRoPWNvbFdpZHRoUGVyY2VudGFnZTt0aGlzLiQudGFibGUudGFibGVDb2x1bW5zPWNvbHVtbnM7aWYoaGFzQWxlcnRzKXt0aGlzLiQudGFibGUuc29ydENvbHVtbkluZGV4PWFsZXJ0c0NvbHVtbkluZGV4O3RoaXMuJC50YWJsZS5zb3J0RGVzY2VuZGluZz10cnVlO319LGNvbmZpZ3VyZTpmdW5jdGlvbihjb25maWcpe2lmKGNvbmZpZy5ldmVudHNCeVRpdGxlPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZDogZXZlbnRzQnlUaXRsZScpO2lmKGNvbmZpZy5zaG93VG90YWxzIT09dW5kZWZpbmVkKQordGhpcy5zaG93VG90YWxzXz1jb25maWcuc2hvd1RvdGFscztlbHNlCit0aGlzLnNob3dUb3RhbHNfPXRydWU7aWYoY29uZmlnLmV2ZW50c0hhdmVEdXJhdGlvbiE9PXVuZGVmaW5lZCkKK3RoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXz1jb25maWcuZXZlbnRzSGF2ZUR1cmF0aW9uO2Vsc2UKK3RoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXz10cnVlO2lmKGNvbmZpZy5ldmVudHNIYXZlU3ViUm93cyE9PXVuZGVmaW5lZCkKK3RoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfPWNvbmZpZy5ldmVudHNIYXZlU3ViUm93cztlbHNlCit0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXz10cnVlO3RoaXMuZXZlbnRzQnlUaXRsZV89Y29uZmlnLmV2ZW50c0J5VGl0bGU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBzaG93VG90YWxzKCl7cmV0dXJuIHRoaXMuc2hvd1RvdGFsc187fSxzZXQgc2hvd1RvdGFscyhzaG93VG90YWxzKXt0aGlzLnNob3dUb3RhbHNfPXNob3dUb3RhbHM7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBldmVudHNIYXZlRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fO30sc2V0IGV2ZW50c0hhdmVEdXJhdGlvbihldmVudHNIYXZlRHVyYXRpb24pe3RoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXz1ldmVudHNIYXZlRHVyYXRpb247dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBldmVudHNIYXZlU3ViUm93cygpe3JldHVybiB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXzt9LHNldCBldmVudHNIYXZlU3ViUm93cyhldmVudHNIYXZlU3ViUm93cyl7dGhpcy5ldmVudHNIYXZlU3ViUm93c189ZXZlbnRzSGF2ZVN1YlJvd3M7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBldmVudHNCeVRpdGxlKCl7cmV0dXJuIHRoaXMuZXZlbnRzQnlUaXRsZV87fSxzZXQgZXZlbnRzQnlUaXRsZShldmVudHNCeVRpdGxlKXt0aGlzLmV2ZW50c0J5VGl0bGVfPWV2ZW50c0J5VGl0bGU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBzZWxlY3Rpb25Cb3VuZHMoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Cb3VuZHNfO30sc2V0IHNlbGVjdGlvbkJvdW5kcyhzZWxlY3Rpb25Cb3VuZHMpe3RoaXMuc2VsZWN0aW9uQm91bmRzXz1zZWxlY3Rpb25Cb3VuZHM7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3ZhciBldmVudHNCeVRpdGxlO2lmKHRoaXMuZXZlbnRzQnlUaXRsZV8hPT11bmRlZmluZWQpCitldmVudHNCeVRpdGxlPXRoaXMuZXZlbnRzQnlUaXRsZV87ZWxzZQorZXZlbnRzQnlUaXRsZT1bXTt2YXIgYWxsRXZlbnRzPVtdO3ZhciByb3dzPVtdO3RyLmIuaXRlckl0ZW1zKGV2ZW50c0J5VGl0bGUsZnVuY3Rpb24odGl0bGUsZXZlbnRzT2ZTaW5nbGVUaXRsZSl7YWxsRXZlbnRzLnB1c2guYXBwbHkoYWxsRXZlbnRzLGV2ZW50c09mU2luZ2xlVGl0bGUpO3ZhciByb3c9bmV3IHRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KHRpdGxlLGV2ZW50c09mU2luZ2xlVGl0bGUpO3Jvd3MucHVzaChyb3cpO30pO3RoaXMudXBkYXRlVGFibGVDb2x1bW5zXyhyb3dzKTt0aGlzLiQudGFibGUudGFibGVSb3dzPXJvd3M7dmFyIG1heFZhbHVlcz17ZHVyYXRpb246dW5kZWZpbmVkLHNlbGZUaW1lOnVuZGVmaW5lZCxjcHVTZWxmVGltZTp1bmRlZmluZWQsY3B1RHVyYXRpb246dW5kZWZpbmVkfTtpZih0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbil7Zm9yKHZhciBjb2x1bW4gaW4gbWF4VmFsdWVzKXttYXhWYWx1ZXNbY29sdW1uXT10ci5iLlN0YXRpc3RpY3MubWF4KHJvd3MsZnVuY3Rpb24oZXZlbnQpe3JldHVybiBldmVudFtjb2x1bW5dO30pO319Cit2YXIgZm9vdGVyUm93cz1bXTtpZih0aGlzLnNob3dUb3RhbHNfKXt2YXIgbXVsdGlFdmVudFN1bW1hcnk9bmV3IHRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KCdUb3RhbHMnLGFsbEV2ZW50cyk7Zm9vdGVyUm93cy5wdXNoKG11bHRpRXZlbnRTdW1tYXJ5KTt9Cit0aGlzLnVwZGF0ZVRhYmxlQ29sdW1uc18ocm93cyxtYXhWYWx1ZXMpO3RoaXMuJC50YWJsZS50YWJsZVJvd3M9cm93czt0aGlzLiQudGFibGUuZm9vdGVyUm93cz1mb290ZXJSb3dzO3RoaXMuJC50YWJsZS5yZWJ1aWxkKCk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25fPXVuZGVmaW5lZDt0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl89dHJ1ZTt0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXz10cnVlO30scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmluaXRUaXRsZVRhYmxlXygpO30sZ2V0IGV2ZW50c0hhdmVEdXJhdGlvbigpe3JldHVybiB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl87fSxzZXQgZXZlbnRzSGF2ZUR1cmF0aW9uKGV2ZW50c0hhdmVEdXJhdGlvbil7dGhpcy5ldmVudHNIYXZlRHVyYXRpb25fPWV2ZW50c0hhdmVEdXJhdGlvbjt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGV2ZW50c0hhdmVTdWJSb3dzKCl7cmV0dXJuIHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfO30sc2V0IGV2ZW50c0hhdmVTdWJSb3dzKGV2ZW50c0hhdmVTdWJSb3dzKXt0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXz1ldmVudHNIYXZlU3ViUm93czt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy5zZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dmFyIHNlbGVjdGlvbj10aGlzLnNlbGVjdGlvbl87dGhpcy51cGRhdGVUaXRsZVRhYmxlXygpO2lmKHRoaXMuc2VsZWN0aW9uXz09PXVuZGVmaW5lZCl7dGhpcy4kLnRhYmxlLnRhYmxlUm93cz1bXTt0aGlzLiQudGFibGUudGFibGVGb290ZXJSb3dzPVtdO3RoaXMuJC50YWJsZS5yZWJ1aWxkKCk7cmV0dXJuO30KK3ZhciBzdW1tYXJ5PW5ldyB0ci51aS5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSgnVG90YWxzJyx0aGlzLnNlbGVjdGlvbl8pO3RoaXMudXBkYXRlQ29sdW1uc18oc3VtbWFyeSk7dGhpcy51cGRhdGVSb3dzXyhzdW1tYXJ5KTt0aGlzLiQudGFibGUucmVidWlsZCgpO30saW5pdFRpdGxlVGFibGVfOmZ1bmN0aW9uKCl7dmFyIHRhYmxlPXRoaXMuJC50aXRsZXRhYmxlO3RhYmxlLnNob3dIZWFkZXI9ZmFsc2U7dGFibGUudGFibGVDb2x1bW5zPVt7dGl0bGU6J1RpdGxlJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cudGl0bGU7fSx3aWR0aDonMzUwcHgnfSx7dGl0bGU6J1ZhbHVlJyx3aWR0aDonMTAwJScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnZhbHVlO319XTt9LHVwZGF0ZVRpdGxlVGFibGVfOmZ1bmN0aW9uKCl7dmFyIHRpdGxlO2lmKHRoaXMuc2VsZWN0aW9uXyYmdGhpcy5zZWxlY3Rpb25fLmxlbmd0aCkKK3RpdGxlPXRoaXMuc2VsZWN0aW9uX1swXS50aXRsZTtlbHNlCit0aXRsZT0nPE5vIHNlbGVjdGlvbj4nO3ZhciB0YWJsZT10aGlzLiQudGl0bGV0YWJsZTt0YWJsZS50YWJsZVJvd3M9W3t0aXRsZTonVGl0bGUnLHZhbHVlOnRpdGxlfV07fSx1cGRhdGVDb2x1bW5zXzpmdW5jdGlvbihzdW1tYXJ5KXt2YXIgaGFzQ3B1RGF0YTtpZihzdW1tYXJ5LmNwdUR1cmF0aW9uIT09dW5kZWZpbmVkKQoraGFzQ3B1RGF0YT10cnVlO2lmKHN1bW1hcnkuY3B1U2VsZlRpbWUhPT11bmRlZmluZWQpCitoYXNDcHVEYXRhPXRydWU7dmFyIGNvbFdpZHRoUGVyY2VudGFnZTtpZihoYXNDcHVEYXRhKQorY29sV2lkdGhQZXJjZW50YWdlPScyMCUnO2Vsc2UKK2NvbFdpZHRoUGVyY2VudGFnZT0nMzMuMzMzMyUnO3ZhciB0aW1lU3BhbkNvbmZpZz17b3duZXJEb2N1bWVudDp0aGlzLm93bmVyRG9jdW1lbnR9O3ZhciBjb2x1bW5zPVtdO2NvbHVtbnMucHVzaCh7dGl0bGU6J1N0YXJ0Jyx2YWx1ZTpmdW5jdGlvbihyb3cpe2lmKHJvdy5fX3Byb3RvX189PT10ci51aS5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGUpe3JldHVybiByb3cudGl0bGU7fQordmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpe3JldHVybiBuZXcgdHIubW9kZWwuRXZlbnRTZXQocm93LmV2ZW50KTt9KTtsaW5rRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3Bhbihyb3cuc3RhcnQsdGltZVNwYW5Db25maWcpKTtyZXR1cm4gbGlua0VsO30sd2lkdGg6JzM1MHB4JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS5zdGFydC1yb3dCLnN0YXJ0O319KTtpZih0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8pe2NvbHVtbnMucHVzaCh7dGl0bGU6J1dhbGwgRHVyYXRpb24gKG1zKScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3Bhbihyb3cuZHVyYXRpb24sdGltZVNwYW5Db25maWcpO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EuZHVyYXRpb24tcm93Qi5kdXJhdGlvbjt9fSk7fQoraWYodGhpcy5ldmVudHNIYXZlRHVyYXRpb25fJiZoYXNDcHVEYXRhKXtjb2x1bW5zLnB1c2goe3RpdGxlOidDUFUgRHVyYXRpb24gKG1zKScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3Bhbihyb3cuY3B1RHVyYXRpb24sdGltZVNwYW5Db25maWcpO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EuY3B1RHVyYXRpb24tcm93Qi5jcHVEdXJhdGlvbjt9fSk7fQoraWYodGhpcy5ldmVudHNIYXZlU3ViUm93c18mJnRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyl7Y29sdW1ucy5wdXNoKHt0aXRsZTonU2VsZiB0aW1lIChtcyknLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVEdXJhdGlvblNwYW4ocm93LnNlbGZUaW1lLHRpbWVTcGFuQ29uZmlnKTt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLGNtcDpmdW5jdGlvbihyb3dBLHJvd0Ipe3JldHVybiByb3dBLnNlbGZUaW1lLXJvd0Iuc2VsZlRpbWU7fX0pO30KK2lmKHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfJiZ0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8mJmhhc0NwdURhdGEpe2NvbHVtbnMucHVzaCh7dGl0bGU6J0NQVSBTZWxmIFRpbWUgKG1zKScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3Bhbihyb3cuY3B1U2VsZlRpbWUsdGltZVNwYW5Db25maWcpO30sd2lkdGg6Jzx1cGF0ZWQgZnVydGhlciBkb3duPicsY21wOmZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EuY3B1U2VsZlRpbWUtcm93Qi5jcHVTZWxmVGltZTt9fSk7fQordmFyIGFyZ0tleXM9dHIuYi5kaWN0aW9uYXJ5S2V5cyhzdW1tYXJ5LnRvdGFsbGVkQXJncyk7YXJnS2V5cy5zb3J0KCk7dmFyIG90aGVyS2V5cz1zdW1tYXJ5LnVudG90YWxsYWJsZUFyZ3Muc2xpY2UoMCk7b3RoZXJLZXlzLnNvcnQoKTthcmdLZXlzLnB1c2guYXBwbHkoYXJnS2V5cyxvdGhlcktleXMpO3ZhciBrZXlzV2l0aENvbHVtbnM9YXJnS2V5cy5zbGljZSgwLDQpO3ZhciBrZXlzSW5PdGhlckNvbHVtbj1hcmdLZXlzLnNsaWNlKDQpO2tleXNXaXRoQ29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGFyZ0tleSl7dmFyIGhhc1RvdGFsPXN1bW1hcnkudG90YWxsZWRBcmdzW2FyZ0tleV07dmFyIGNvbERlc2M9e3RpdGxlOidBcmc6ICcrYXJnS2V5LHZhbHVlOmZ1bmN0aW9uKHJvdyl7aWYocm93Ll9fcHJvdG9fXyE9PXRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5LnByb3RvdHlwZSl7dmFyIGFyZ1ZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7YXJnVmlldy5vYmplY3Q9cm93LmFyZ3NbYXJnS2V5XTtyZXR1cm4gYXJnVmlldzt9CitpZihoYXNUb3RhbCkKK3JldHVybiByb3cudG90YWxsZWRBcmdzW2FyZ0tleV07cmV0dXJuJyc7fSx3aWR0aDonPHVwYXRlZCBmdXJ0aGVyIGRvd24+J307aWYoaGFzVG90YWwpe2NvbERlc2MuY21wPWZ1bmN0aW9uKHJvd0Escm93Qil7cmV0dXJuIHJvd0EuYXJnc1thcmdLZXldLXJvd0IuYXJnc1thcmdLZXldO319Citjb2x1bW5zLnB1c2goY29sRGVzYyk7fSk7aWYoa2V5c0luT3RoZXJDb2x1bW4ubGVuZ3RoKXtjb2x1bW5zLnB1c2goe3RpdGxlOidPdGhlciBBcmdzJyx2YWx1ZTpmdW5jdGlvbihyb3cpe2lmKHJvdy5fX3Byb3RvX189PT10ci51aS5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGUpCityZXR1cm4nJzt2YXIgYXJnVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTt2YXIgb2JqPXt9O2Zvcih2YXIgaT0wO2k8a2V5c0luT3RoZXJDb2x1bW4ubGVuZ3RoO2krKykKK29ialtrZXlzSW5PdGhlckNvbHVtbltpXV09cm93LmFyZ3Nba2V5c0luT3RoZXJDb2x1bW5baV1dO2FyZ1ZpZXcub2JqZWN0PW9iajtyZXR1cm4gYXJnVmlldzt9LHdpZHRoOic8dXBhdGVkIGZ1cnRoZXIgZG93bj4nfSk7fQordmFyIGNvbFdpZHRoUGVyY2VudGFnZTtpZihjb2x1bW5zLmxlbmd0aD09MSkKK2NvbFdpZHRoUGVyY2VudGFnZT0nMTAwJSc7ZWxzZQorY29sV2lkdGhQZXJjZW50YWdlPSgxMDAvKGNvbHVtbnMubGVuZ3RoLTEpKS50b0ZpeGVkKDMpKyclJztmb3IodmFyIGk9MTtpPGNvbHVtbnMubGVuZ3RoO2krKykKK2NvbHVtbnNbaV0ud2lkdGg9Y29sV2lkdGhQZXJjZW50YWdlO3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9Y29sdW1uczt9LHVwZGF0ZVJvd3NfOmZ1bmN0aW9uKHN1bW1hcnkpe3RoaXMuJC50YWJsZS5zb3J0Q29sdW1uSW5kZXg9MDtmdW5jdGlvbiBSb3coZXZlbnQpe3RoaXMuZXZlbnQ9ZXZlbnQ7fQorUm93LnByb3RvdHlwZT17Z2V0IHN0YXJ0KCl7cmV0dXJuIHRoaXMuZXZlbnQuc3RhcnQ7fSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5ldmVudC5kdXJhdGlvbjt9LGdldCBjcHVEdXJhdGlvbigpe3JldHVybiB0aGlzLmV2ZW50LmNwdUR1cmF0aW9uO30sZ2V0IHNlbGZUaW1lKCl7cmV0dXJuIHRoaXMuZXZlbnQuc2VsZlRpbWU7fSxnZXQgY3B1U2VsZlRpbWUoKXtyZXR1cm4gdGhpcy5ldmVudC5jcHVTZWxmVGltZTt9LGdldCBhcmdzKCl7cmV0dXJuIHRoaXMuZXZlbnQuYXJnczt9fTt0aGlzLiQudGFibGUudGFibGVSb3dzPXRoaXMuc2VsZWN0aW9uXy5tYXAoZnVuY3Rpb24oZXZlbnQpe3JldHVybiBuZXcgUm93KGV2ZW50KTt9KTt0aGlzLiQudGFibGUuZm9vdGVyUm93cz1bc3VtbWFyeV07fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO3RoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXz10cnVlO3RoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfPXRydWU7fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7aWYoc2VsZWN0aW9uLmxlbmd0aDw9MSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBtdWx0aXBsZSBpdGVtcycpO3RoaXMuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxzZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3M6ZnVuY3Rpb24oc2VsZWN0aW9uKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGV2ZW50c0hhdmVEdXJhdGlvbigpe3JldHVybiB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl87fSxzZXQgZXZlbnRzSGF2ZUR1cmF0aW9uKGV2ZW50c0hhdmVEdXJhdGlvbil7dGhpcy5ldmVudHNIYXZlRHVyYXRpb25fPWV2ZW50c0hhdmVEdXJhdGlvbjt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGV2ZW50c0hhdmVTdWJSb3dzKCl7cmV0dXJuIHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfO30sc2V0IGV2ZW50c0hhdmVTdWJSb3dzKGV2ZW50c0hhdmVTdWJSb3dzKXt0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXz1ldmVudHNIYXZlU3ViUm93czt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dmFyIHNlbGVjdGlvbj10aGlzLmN1cnJlbnRTZWxlY3Rpb25fO3RoaXMuJC5jb250ZW50LnRleHRDb250ZW50PScnO2lmKCFzZWxlY3Rpb24pCityZXR1cm47dmFyIGV2ZW50c0J5VGl0bGU9c2VsZWN0aW9uLmdldEV2ZW50c09yZ2FuaXplZEJ5VGl0bGUoKTt2YXIgbnVtVGl0bGVzPXRyLmIuZGljdGlvbmFyeUxlbmd0aChldmVudHNCeVRpdGxlKTt2YXIgc3VtbWFyeVRhYmxlRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlJyk7c3VtbWFyeVRhYmxlRWwuY29uZmlndXJlKHtzaG93VG90YWxzOm51bVRpdGxlcz4xLGV2ZW50c0J5VGl0bGU6ZXZlbnRzQnlUaXRsZSxldmVudHNIYXZlRHVyYXRpb246dGhpcy5ldmVudHNIYXZlRHVyYXRpb25fLGV2ZW50c0hhdmVTdWJSb3dzOnRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NffSk7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoc3VtbWFyeVRhYmxlRWwpO3ZhciBzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNlbGVjdGlvbi1zdW1tYXJ5LXRhYmxlJyk7c2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwuc2VsZWN0aW9uPXRoaXMuY3VycmVudFNlbGVjdGlvbl87dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwpO2lmKG51bVRpdGxlcz09PTEpe3ZhciBkZXRhaWxzVGFibGVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTtkZXRhaWxzVGFibGVFbC5ldmVudHNIYXZlRHVyYXRpb249dGhpcy5ldmVudHNIYXZlRHVyYXRpb25fO2RldGFpbHNUYWJsZUVsLmV2ZW50c0hhdmVTdWJSb3dzPXRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfO2RldGFpbHNUYWJsZUVsLnNlbGVjdGlvbj1zZWxlY3Rpb247dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoZGV0YWlsc1RhYmxlRWwpO319fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtbXVsdGktdGhyZWFkLXNsaWNlLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLnNlbGVjdGlvbl89c2VsZWN0aW9uO2lmKHRyLmlzRXhwb3J0ZWQoJ3RyLnVpLmUuY2hyb21lLmNjLlJhc3RlclRhc2tTZWxlY3Rpb24nKSl7aWYodHIudWkuZS5jaHJvbWUuY2MuUmFzdGVyVGFza1NlbGVjdGlvbi5zdXBwb3J0cyhzZWxlY3Rpb24pKXt2YXIgbHR2U2VsZWN0aW9uPW5ldyB0ci51aS5lLmNocm9tZS5jYy5SYXN0ZXJUYXNrU2VsZWN0aW9uKHNlbGVjdGlvbik7dmFyIGx0dj1uZXcgdHIudWkuZS5jaHJvbWUuY2MuTGF5ZXJUcmVlSG9zdEltcGxTbmFwc2hvdFZpZXcoKTtsdHYub2JqZWN0U25hcHNob3Q9bHR2U2VsZWN0aW9uLmNvbnRhaW5pbmdTbmFwc2hvdDtsdHYuc2VsZWN0aW9uPWx0dlNlbGVjdGlvbjtsdHYuZXh0cmFIaWdobGlnaHRzQnlMYXllcklkPWx0dlNlbGVjdGlvbi5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQ7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9Jyc7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQobHR2KTt0aGlzLnJlcXVpcmVzVGFsbFZpZXdfPXRydWU7cmV0dXJuO319Cit0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD0nJzt2YXIgbWVzdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3Jyk7bWVzdi5zZWxlY3Rpb249c2VsZWN0aW9uO3RoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKG1lc3YpO3ZhciByZWxhdGVkRXZlbnRzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtcmVsYXRlZC1ldmVudHMnKTtyZWxhdGVkRXZlbnRzLnNldFJlbGF0ZWRFdmVudHMoc2VsZWN0aW9uKTtpZihyZWxhdGVkRXZlbnRzLmhhc1JlbGF0ZWRFdmVudHMoKSl7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocmVsYXRlZEV2ZW50cyk7fX0sZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKXtpZih0aGlzLiQuY29udGVudC5jaGlsZHJlbi5sZW5ndGg9PT0wKQorcmV0dXJuIGZhbHNlO3ZhciBjaGlsZFRhZ05hbWU9dGhpcy4kLmNvbnRlbnQuY2hpbGRyZW5bMF0udGFnTmFtZTtpZihjaGlsZFRhZ05hbWU9PT0nVFItVUktQS1NVUxUSS1FVkVOVC1TVUItVklFVycpCityZXR1cm4gZmFsc2U7cmV0dXJuIHRydWU7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXNpbmdsZS1hc3luYy1zbGljZS1zdWItdmlldycse2dldEV2ZW50Um93c186ZnVuY3Rpb24oZXZlbnQpe3ZhciByb3dzPXRoaXMuX19wcm90b19fLl9fcHJvdG9fXy5nZXRFdmVudFJvd3NfKGV2ZW50KTtyb3dzLnNwbGljZSgwLDAse25hbWU6J0lEJyx2YWx1ZTpldmVudC5pZH0pO3JldHVybiByb3dzO30sZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpe2lmKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uX1swXS5hc3NvY2lhdGVkRXZlbnRzO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1tdWx0aS1hc3luYy1zbGljZS1zdWItdmlldycse2dldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnNlbGVjdGlvbj1zZWxlY3Rpb247fSxnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCl7aWYoIXRoaXMuJC5jb250ZW50LnNlbGVjdGlvbikKK3JldHVybiB1bmRlZmluZWQ7dmFyIHNlbGVjdGlvbj1uZXcgdHIubW9kZWwuRXZlbnRTZXQoKTt0aGlzLiQuY29udGVudC5zZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbihhc3luY0V2ZW50KXtpZighYXN5bmNFdmVudC5hc3NvY2lhdGVkRXZlbnRzKQorcmV0dXJuO2FzeW5jRXZlbnQuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KXtzZWxlY3Rpb24ucHVzaChldmVudCk7fSk7fSk7aWYoc2VsZWN0aW9uLmxlbmd0aCkKK3JldHVybiBzZWxlY3Rpb247cmV0dXJuIHVuZGVmaW5lZDt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtc2luZ2xlLWNwdS1zbGljZS1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXtpZihzZWxlY3Rpb24ubGVuZ3RoIT09MSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgc2xpY2VzJyk7aWYoIShzZWxlY3Rpb25bMF1pbnN0YW5jZW9mIHRyLm1vZGVsLkNwdVNsaWNlKSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyB0aHJlYWQgdGltZSBzbGljZXMnKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt2YXIgY3B1U2xpY2U9c2VsZWN0aW9uWzBdO3ZhciB0aHJlYWQ9Y3B1U2xpY2UudGhyZWFkVGhhdFdhc1J1bm5pbmc7dmFyIHNoYWRvd1Jvb3Q9dGhpcy5zaGFkb3dSb290O2lmKHRocmVhZCl7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcHJvY2Vzcy1uYW1lJykudGV4dENvbnRlbnQ9dGhyZWFkLnBhcmVudC51c2VyRnJpZW5kbHlOYW1lO3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3RocmVhZC1uYW1lJykudGV4dENvbnRlbnQ9dGhyZWFkLnVzZXJGcmllbmRseU5hbWU7fWVsc2V7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcHJvY2Vzcy1uYW1lJykucGFyZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5PSdub25lJztzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN0aHJlYWQtbmFtZScpLnRleHRDb250ZW50PWNwdVNsaWNlLnRpdGxlO30KK3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N0YXJ0JykudGltZXN0YW1wPWNwdVNsaWNlLnN0YXJ0O3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2R1cmF0aW9uJykuZHVyYXRpb249Y3B1U2xpY2UuZHVyYXRpb247dmFyIHJ1bm5pbmdUaHJlYWRFbD1zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNydW5uaW5nLXRocmVhZCcpO3ZhciB0aW1lU2xpY2U9Y3B1U2xpY2UuZ2V0QXNzb2NpYXRlZFRpbWVzbGljZSgpO2lmKCF0aW1lU2xpY2Upe3J1bm5pbmdUaHJlYWRFbC5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXk9J25vbmUnO31lbHNle3ZhciB0aHJlYWRMaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpO3RocmVhZExpbmsuc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldCh0aW1lU2xpY2UpO3RocmVhZExpbmsudGV4dENvbnRlbnQ9J0NsaWNrIHRvIHNlbGVjdCc7cnVubmluZ1RocmVhZEVsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheT0nJztydW5uaW5nVGhyZWFkRWwudGV4dENvbnRlbnQ9Jyc7cnVubmluZ1RocmVhZEVsLmFwcGVuZENoaWxkKHRocmVhZExpbmspO30KK3NoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2FyZ3MnKS5vYmplY3Q9Y3B1U2xpY2UuYXJnczt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtbXVsdGktY3B1LXNsaWNlLXN1Yi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudC5ldmVudHNIYXZlU3ViUm93cz1mYWxzZTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zaW5nbGUtdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7aWYoc2VsZWN0aW9uLmxlbmd0aCE9PTEpCit0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgc2luZ2xlIHNsaWNlcycpO2lmKCEoc2VsZWN0aW9uWzBdaW5zdGFuY2VvZiB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UpKQordGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHRocmVhZCB0aW1lIHNsaWNlcycpO3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO3ZhciB0aW1lU2xpY2U9c2VsZWN0aW9uWzBdO3ZhciB0aHJlYWQ9dGltZVNsaWNlLnRocmVhZDt2YXIgc2hhZG93Um9vdD10aGlzLnNoYWRvd1Jvb3Q7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjc3RhdGUnKS50ZXh0Q29udGVudD10aW1lU2xpY2UudGl0bGU7dmFyIHN0YXRlQ29sb3I9dHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKVt0aW1lU2xpY2UuY29sb3JJZF07c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjc3RhdGUnKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9c3RhdGVDb2xvcjtzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNwcm9jZXNzLW5hbWUnKS50ZXh0Q29udGVudD10aHJlYWQucGFyZW50LnVzZXJGcmllbmRseU5hbWU7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjdGhyZWFkLW5hbWUnKS50ZXh0Q29udGVudD10aHJlYWQudXNlckZyaWVuZGx5TmFtZTtzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNzdGFydCcpLnRpbWVzdGFtcD10aW1lU2xpY2Uuc3RhcnQ7c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjZHVyYXRpb24nKS5kdXJhdGlvbj10aW1lU2xpY2UuZHVyYXRpb247dmFyIG9uQ3B1RWw9c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjb24tY3B1Jyk7b25DcHVFbC50ZXh0Q29udGVudD0nJzt2YXIgcnVubmluZ0luc3RlYWRFbD1zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNydW5uaW5nLWluc3RlYWQnKTtpZih0aW1lU2xpY2UuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcpe3J1bm5pbmdJbnN0ZWFkRWwucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChydW5uaW5nSW5zdGVhZEVsKTt2YXIgY3B1TGluaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTtjcHVMaW5rLnNlbGVjdGlvbj1uZXcgdHIubW9kZWwuRXZlbnRTZXQodGltZVNsaWNlLmdldEFzc29jaWF0ZWRDcHVTbGljZSgpKTtjcHVMaW5rLnRleHRDb250ZW50PXRpbWVTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZy51c2VyRnJpZW5kbHlOYW1lO29uQ3B1RWwuYXBwZW5kQ2hpbGQoY3B1TGluayk7fWVsc2V7b25DcHVFbC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKG9uQ3B1RWwpO3ZhciBjcHVTbGljZVRoYXRUb29rQ3B1PXRpbWVTbGljZS5nZXRDcHVTbGljZVRoYXRUb29rQ3B1KCk7aWYoY3B1U2xpY2VUaGF0VG9va0NwdSl7dmFyIGNwdUxpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7Y3B1TGluay5zZWxlY3Rpb249bmV3IHRyLm1vZGVsLkV2ZW50U2V0KGNwdVNsaWNlVGhhdFRvb2tDcHUpO2lmKGNwdVNsaWNlVGhhdFRvb2tDcHUudGhyZWFkKQorY3B1TGluay50ZXh0Q29udGVudD1jcHVTbGljZVRoYXRUb29rQ3B1LnRocmVhZC51c2VyRnJpZW5kbHlOYW1lO2Vsc2UKK2NwdUxpbmsudGV4dENvbnRlbnQ9Y3B1U2xpY2VUaGF0VG9va0NwdS50aXRsZTtydW5uaW5nSW5zdGVhZEVsLmFwcGVuZENoaWxkKGNwdUxpbmspO31lbHNle3J1bm5pbmdJbnN0ZWFkRWwucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChydW5uaW5nSW5zdGVhZEVsKTt9fQordmFyIGFyZ3NFbD1zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNhcmdzJyk7aWYodHIuYi5kaWN0aW9uYXJ5S2V5cyh0aW1lU2xpY2UuYXJncykubGVuZ3RoPjApe3ZhciBhcmdzVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTthcmdzVmlldy5vYmplY3Q9dGltZVNsaWNlLmFyZ3M7YXJnc0VsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheT0nJzthcmdzRWwudGV4dENvbnRlbnQ9Jyc7YXJnc0VsLmFwcGVuZENoaWxkKGFyZ3NWaWV3KTt9ZWxzZXthcmdzRWwucGFyZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5PSdub25lJzt9fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQuY29udGVudC5ldmVudHNIYXZlU3ViUm93cz1mYWxzZTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuJC5jb250ZW50LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zaW5nbGUtaW5zdGFudC1ldmVudC1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD0nJzt2YXIgcmVhbFZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTtyZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTt0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChyZWFsVmlldyk7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLWluc3RhbnQtZXZlbnQtc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9Jyc7dmFyIHJlYWxWaWV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTtyZWFsVmlldy5ldmVudHNIYXZlRHVyYXRpb249ZmFsc2U7cmVhbFZpZXcuZXZlbnRzSGF2ZVN1YlJvd3M9ZmFsc2U7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocmVhbFZpZXcpO3JlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO319KTsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7dmFyIENPVU5URVJfU0FNUExFX1RBQkxFX0NPTFVNTlM9W3t0aXRsZTonQ291bnRlcicsd2lkdGg6JzE1MHB4Jyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cuY291bnRlcjt9fSx7dGl0bGU6J1Nlcmllcycsd2lkdGg6JzE1MHB4Jyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cuc2VyaWVzO319LHt0aXRsZTonVGltZScsd2lkdGg6JzE1MHB4Jyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cuc3RhcnQ7fX0se3RpdGxlOidWYWx1ZScsd2lkdGg6JzEwMCUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy52YWx1ZTt9fV07UG9seW1lcigndHItdWktYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldycse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7dGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1ucz1DT1VOVEVSX1NBTVBMRV9UQUJMRV9DT0xVTU5TO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0aGlzLiQudGFibGUudGFibGVSb3dzPXRoaXMuc2VsZWN0aW9uP3RoaXMuZ2V0Um93c18odGhpcy5zZWxlY3Rpb24udG9BcnJheSgpKTpbXTt0aGlzLiQudGFibGUucmVidWlsZCgpO30sZ2V0Um93c186ZnVuY3Rpb24oc2FtcGxlcyl7dmFyIHNhbXBsZXNCeUNvdW50ZXI9dHIuYi5ncm91cChzYW1wbGVzLGZ1bmN0aW9uKHNhbXBsZSl7cmV0dXJuIHNhbXBsZS5zZXJpZXMuY291bnRlci5ndWlkO30pO3ZhciByb3dzPVtdO3RyLmIuaXRlckl0ZW1zKHNhbXBsZXNCeUNvdW50ZXIsZnVuY3Rpb24odW51c2VkLGNvdW50ZXJTYW1wbGVzKXt2YXIgc2FtcGxlc0J5U2VyaWVzPXRyLmIuZ3JvdXAoY291bnRlclNhbXBsZXMsZnVuY3Rpb24oc2FtcGxlKXtyZXR1cm4gc2FtcGxlLnNlcmllcy5ndWlkO30pO3RyLmIuaXRlckl0ZW1zKHNhbXBsZXNCeVNlcmllcyxmdW5jdGlvbih1bnVzZWQsc2VyaWVzU2FtcGxlcyl7dmFyIHNlcmllc1Jvd3M9dGhpcy5nZXRSb3dzRm9yU2FtcGxlc18oc2VyaWVzU2FtcGxlcyk7c2VyaWVzUm93c1swXS5jb3VudGVyPXNlcmllc1NhbXBsZXNbMF0uc2VyaWVzLmNvdW50ZXIubmFtZTtzZXJpZXNSb3dzWzBdLnNlcmllcz1zZXJpZXNTYW1wbGVzWzBdLnNlcmllcy5uYW1lO2lmKHNlcmllc1Jvd3MubGVuZ3RoPjEpe3Nlcmllc1Jvd3NbMF0uc3ViUm93cz1zZXJpZXNSb3dzLnNsaWNlKDEpO3Nlcmllc1Jvd3NbMF0uaXNFeHBhbmRlZD10cnVlO30KK3Jvd3MucHVzaChzZXJpZXNSb3dzWzBdKTt9LHRoaXMpO30sdGhpcyk7cmV0dXJuIHJvd3M7fSxnZXRSb3dzRm9yU2FtcGxlc186ZnVuY3Rpb24oc2FtcGxlcyl7cmV0dXJuIHNhbXBsZXMubWFwKGZ1bmN0aW9uKHNhbXBsZSl7cmV0dXJue3N0YXJ0OnNhbXBsZS50aW1lc3RhbXAsdmFsdWU6c2FtcGxlLnZhbHVlfTt9KTt9fSk7fSkoKTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldycse2dldEV2ZW50Um93c186ZnVuY3Rpb24oZXZlbnQpe3ZhciByb3dzPXRoaXMuX19wcm90b19fLl9fcHJvdG9fXy5nZXRFdmVudFJvd3NfKGV2ZW50KTtyb3dzLnNwbGljZSgwLDAse25hbWU6J0lEJyx2YWx1ZTpldmVudC5pZH0pO2Z1bmN0aW9uIGNyZWF0ZUxpbmtUbyhzbGljZSl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpe3JldHVybiBuZXcgdHIubW9kZWwuRXZlbnRTZXQoc2xpY2UpO30pO2xpbmtFbC50ZXh0Q29udGVudD1zbGljZS51c2VyRnJpZW5kbHlOYW1lO3JldHVybiBsaW5rRWw7fQorcm93cy5wdXNoKHtuYW1lOidGcm9tJyx2YWx1ZTpjcmVhdGVMaW5rVG8oZXZlbnQuc3RhcnRTbGljZSl9KTtyb3dzLnB1c2goe25hbWU6J1RvJyx2YWx1ZTpjcmVhdGVMaW5rVG8oZXZlbnQuZW5kU2xpY2UpfSk7cmV0dXJuIHJvd3M7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLWZsb3ctZXZlbnQtc3ViLXZpZXcnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuJC5jb250ZW50LmV2ZW50c0hhdmVEdXJhdGlvbj1mYWxzZTt0aGlzLiQuY29udGVudC5ldmVudHNIYXZlU3ViUm93cz1mYWxzZTt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLiQuY29udGVudC5zZWxlY3Rpb249c2VsZWN0aW9uO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLiQuY29udGVudC5zZWxlY3Rpb247fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLGZ1bmN0aW9uKCl7dmFyIE9iamVjdEluc3RhbmNlVmlldz10ci51aS5iLmRlZmluZSgnb2JqZWN0LWluc3RhbmNlLXZpZXcnKTtPYmplY3RJbnN0YW5jZVZpZXcucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbigpe3RoaXMub2JqZWN0SW5zdGFuY2VfPXVuZGVmaW5lZDt9LGdldCByZXF1aXJlc1RhbGxWaWV3KCl7cmV0dXJuIHRydWU7fSxzZXQgbW9kZWxFdmVudChvYmope3RoaXMub2JqZWN0SW5zdGFuY2U9b2JqO30sZ2V0IG1vZGVsRXZlbnQoKXtyZXR1cm4gdGhpcy5vYmplY3RJbnN0YW5jZTt9LGdldCBvYmplY3RJbnN0YW5jZSgpe3JldHVybiB0aGlzLm9iamVjdEluc3RhbmNlXzt9LHNldCBvYmplY3RJbnN0YW5jZShpKXt0aGlzLm9iamVjdEluc3RhbmNlXz1pO3RoaXMudXBkYXRlQ29udGVudHMoKTt9LHVwZGF0ZUNvbnRlbnRzOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9fTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPU9iamVjdEluc3RhbmNlVmlldztvcHRpb25zLmRlZmF1bHRNZXRhZGF0YT17c2hvd0luVHJhY2tWaWV3OnRydWV9O3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RJbnN0YW5jZVZpZXcsb3B0aW9ucyk7cmV0dXJue09iamVjdEluc3RhbmNlVmlldzpPYmplY3RJbnN0YW5jZVZpZXd9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXNpbmdsZS1vYmplY3QtaW5zdGFuY2Utc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgcmVxdWlyZXNUYWxsVmlldygpe2lmKHRoaXMuJC5jb250ZW50LmNoaWxkcmVuLmxlbmd0aD09PTApCityZXR1cm4gZmFsc2U7aWYodGhpcy4kLmNvbnRlbnQuY2hpbGRyZW5bMF1pbnN0YW5jZW9mCit0ci51aS5hbmFseXNpcy5PYmplY3RJbnN0YW5jZVZpZXcpCityZXR1cm4gdGhpcy4kLmNvbnRlbnQuY2hpbGRyZW5bMF0ucmVxdWlyZXNUYWxsVmlldzt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXtpZihzZWxlY3Rpb24ubGVuZ3RoIT09MSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgaXRlbSBzZWxlY3Rpb25zJyk7aWYoIShzZWxlY3Rpb25bMF1pbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdEluc3RhbmNlKSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBvYmplY3QgaW5zdGFuY2VzJyk7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9Jyc7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247dmFyIGluc3RhbmNlPXNlbGVjdGlvblswXTt2YXIgdHlwZUluZm89dHIudWkuYW5hbHlzaXMuT2JqZWN0SW5zdGFuY2VWaWV3LmdldFR5cGVJbmZvKGluc3RhbmNlLmNhdGVnb3J5LGluc3RhbmNlLnR5cGVOYW1lKTtpZih0eXBlSW5mbyl7dmFyIGN1c3RvbVZpZXc9bmV3IHR5cGVJbmZvLmNvbnN0cnVjdG9yKCk7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoY3VzdG9tVmlldyk7Y3VzdG9tVmlldy5tb2RlbEV2ZW50PWluc3RhbmNlO31lbHNle3RoaXMuYXBwZW5kR2VuZXJpY0FuYWx5c2lzXyhpbnN0YW5jZSk7fX0sYXBwZW5kR2VuZXJpY0FuYWx5c2lzXzpmdW5jdGlvbihpbnN0YW5jZSl7dmFyIGh0bWw9Jyc7aHRtbCs9JzxkaXYgY2xhc3M9InRpdGxlIj4nKworaW5zdGFuY2UudHlwZU5hbWUrJyAnKworaW5zdGFuY2UuaWQrJzwvZGl2PlxuJztodG1sKz0nPHRhYmxlPic7aHRtbCs9Jzx0cj4nO2h0bWwrPSc8dHI+PHRkPmNyZWF0aW9uVHM6PC90ZD48dGQ+JysKK2luc3RhbmNlLmNyZWF0aW9uVHMrJzwvdGQ+PC90cj5cbic7aWYoaW5zdGFuY2UuZGVsZXRpb25UcyE9TnVtYmVyLk1BWF9WQUxVRSl7aHRtbCs9Jzx0cj48dGQ+ZGVsZXRpb25Uczo8L3RkPjx0ZD4nKworaW5zdGFuY2UuZGVsZXRpb25UcysnPC90ZD48L3RyPlxuJzt9ZWxzZXtodG1sKz0nPHRyPjx0ZD5kZWxldGlvblRzOjwvdGQ+PHRkPm5vdCBkZWxldGVkPC90ZD48L3RyPlxuJzt9CitodG1sKz0nPHRyPjx0ZD5zbmFwc2hvdHM6PC90ZD48dGQgaWQ9InNuYXBzaG90cyI+PC90ZD48L3RyPlxuJztodG1sKz0nPC90YWJsZT4nO3RoaXMuJC5jb250ZW50LmlubmVySFRNTD1odG1sO3ZhciBzbmFwc2hvdHNFbD10aGlzLiQuY29udGVudC5xdWVyeVNlbGVjdG9yKCcjc25hcHNob3RzJyk7aW5zdGFuY2Uuc25hcHNob3RzLmZvckVhY2goZnVuY3Rpb24oc25hcHNob3Qpe3ZhciBzbmFwc2hvdExpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7c25hcHNob3RMaW5rLnNlbGVjdGlvbj1uZXcgdHIubW9kZWwuRXZlbnRTZXQoc25hcHNob3QpO3NuYXBzaG90c0VsLmFwcGVuZENoaWxkKHNuYXBzaG90TGluayk7fSk7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLGZ1bmN0aW9uKCl7dmFyIE9iamVjdFNuYXBzaG90Vmlldz10ci51aS5iLmRlZmluZSgnb2JqZWN0LXNuYXBzaG90LXZpZXcnKTtPYmplY3RTbmFwc2hvdFZpZXcucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbigpe3RoaXMub2JqZWN0U25hcHNob3RfPXVuZGVmaW5lZDt9LGdldCByZXF1aXJlc1RhbGxWaWV3KCl7cmV0dXJuIHRydWU7fSxzZXQgbW9kZWxFdmVudChvYmope3RoaXMub2JqZWN0U25hcHNob3Q9b2JqO30sZ2V0IG1vZGVsRXZlbnQoKXtyZXR1cm4gdGhpcy5vYmplY3RTbmFwc2hvdDt9LGdldCBvYmplY3RTbmFwc2hvdCgpe3JldHVybiB0aGlzLm9iamVjdFNuYXBzaG90Xzt9LHNldCBvYmplY3RTbmFwc2hvdChpKXt0aGlzLm9iamVjdFNuYXBzaG90Xz1pO3RoaXMudXBkYXRlQ29udGVudHMoKTt9LHVwZGF0ZUNvbnRlbnRzOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9fTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPU9iamVjdFNuYXBzaG90VmlldztvcHRpb25zLmRlZmF1bHRNZXRhZGF0YT17c2hvd0luc3RhbmNlczp0cnVlLHNob3dJblRyYWNrVmlldzp0cnVlfTt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoT2JqZWN0U25hcHNob3RWaWV3LG9wdGlvbnMpO3JldHVybntPYmplY3RTbmFwc2hvdFZpZXc6T2JqZWN0U25hcHNob3RWaWV3fTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zaW5nbGUtb2JqZWN0LXNuYXBzaG90LXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKXtpZih0aGlzLmNoaWxkcmVuLmxlbmd0aD09PTApCityZXR1cm4gZmFsc2U7aWYodGhpcy5jaGlsZHJlblswXWluc3RhbmNlb2YgdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3KQorcmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ucmVxdWlyZXNUYWxsVmlldzt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXtpZihzZWxlY3Rpb24ubGVuZ3RoIT09MSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgaXRlbSBzZWxlY3Rpb25zJyk7aWYoIShzZWxlY3Rpb25bMF1pbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBvYmplY3QgaW5zdGFuY2VzJyk7dGhpcy50ZXh0Q29udGVudD0nJzt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt2YXIgc25hcHNob3Q9c2VsZWN0aW9uWzBdO3ZhciB0eXBlSW5mbz10ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcuZ2V0VHlwZUluZm8oc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuY2F0ZWdvcnksc25hcHNob3Qub2JqZWN0SW5zdGFuY2UudHlwZU5hbWUpO2lmKHR5cGVJbmZvKXt2YXIgY3VzdG9tVmlldz1uZXcgdHlwZUluZm8uY29uc3RydWN0b3IoKTt0aGlzLmFwcGVuZENoaWxkKGN1c3RvbVZpZXcpO2N1c3RvbVZpZXcubW9kZWxFdmVudD1zbmFwc2hvdDt9ZWxzZXt0aGlzLmFwcGVuZEdlbmVyaWNBbmFseXNpc18oc25hcHNob3QpO319LGFwcGVuZEdlbmVyaWNBbmFseXNpc186ZnVuY3Rpb24oc25hcHNob3Qpe3ZhciBpbnN0YW5jZT1zbmFwc2hvdC5vYmplY3RJbnN0YW5jZTt0aGlzLnRleHRDb250ZW50PScnO3ZhciB0aXRsZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3RpdGxlRWwuY2xhc3NMaXN0LmFkZCgndGl0bGUnKTt0aXRsZUVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdTbmFwc2hvdCBvZiAnKSk7dGhpcy5hcHBlbmRDaGlsZCh0aXRsZUVsKTt2YXIgaW5zdGFuY2VMaW5rRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7aW5zdGFuY2VMaW5rRWwuc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldChpbnN0YW5jZSk7dGl0bGVFbC5hcHBlbmRDaGlsZChpbnN0YW5jZUxpbmtFbCk7dGl0bGVFbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnIEAgJykpO3RpdGxlRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbihzbmFwc2hvdC50cyx7b3duZXJEb2N1bWVudDp0aGlzLm93bmVyRG9jdW1lbnR9KSk7dmFyIHRhYmxlRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTt0aGlzLmFwcGVuZENoaWxkKHRhYmxlRWwpO3ZhciByb3dFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpO3RhYmxlRWwuYXBwZW5kQ2hpbGQocm93RWwpO3ZhciBsYWJlbEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7bGFiZWxFbC50ZXh0Q29udGVudD0nYXJnczonO3Jvd0VsLmFwcGVuZENoaWxkKGxhYmVsRWwpO3ZhciBhcmdzRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTthcmdzRWwuaWQ9J2FyZ3MnO3Jvd0VsLmFwcGVuZENoaWxkKGFyZ3NFbCk7dmFyIG9iamVjdFZpZXdFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTtvYmplY3RWaWV3RWwub2JqZWN0PXNuYXBzaG90LmFyZ3M7YXJnc0VsLmFwcGVuZENoaWxkKG9iamVjdFZpZXdFbCk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLW9iamVjdC1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy4kLmNvbnRlbnQuc2hvd0hlYWRlcj1mYWxzZTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt2YXIgb2JqZWN0RXZlbnRzPXRyLmIuYXNBcnJheShzZWxlY3Rpb24pLnNvcnQodHIuYi5SYW5nZS5jb21wYXJlQnlNaW5UaW1lcyk7dmFyIHRpbWVTcGFuQ29uZmlnPXtvd25lckRvY3VtZW50OnRoaXMub3duZXJEb2N1bWVudH07dmFyIHRhYmxlPXRoaXMuJC5jb250ZW50O3RhYmxlLnRhYmxlQ29sdW1ucz1be3RpdGxlOidGaXJzdCcsdmFsdWU6ZnVuY3Rpb24oZXZlbnQpe2lmKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpCityZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbihldmVudC50cyx0aW1lU3BhbkNvbmZpZyk7dmFyIHNwYW5FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7c3BhbkVsLmFwcGVuZENoaWxkKHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oZXZlbnQuY3JlYXRpb25Ucyx0aW1lU3BhbkNvbmZpZykpO3NwYW5FbC5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZVNwYW4oe3RleHRDb250ZW50OictJyxtYXJnaW5MZWZ0Oic0cHgnLG1hcmdpblJpZ2h0Oic0cHgnfSkpO2lmKGV2ZW50LmRlbGV0aW9uVHMhPU51bWJlci5NQVhfVkFMVUUpe3NwYW5FbC5hcHBlbmRDaGlsZCh0ci51aS51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKGV2ZW50LmRlbGV0aW9uVHMsdGltZVNwYW5Db25maWcpKTt9CityZXR1cm4gc3BhbkVsO30sd2lkdGg6JzIwMHB4J30se3RpdGxlOidTZWNvbmQnLHZhbHVlOmZ1bmN0aW9uKGV2ZW50KXt2YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpO2xpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0ci5tb2RlbC5FdmVudFNldChldmVudCk7fSxldmVudC51c2VyRnJpZW5kbHlOYW1lKTtyZXR1cm4gbGlua0VsO30sd2lkdGg6JzEwMCUnfV07dGFibGUudGFibGVSb3dzPW9iamVjdEV2ZW50czt0YWJsZS5yZWJ1aWxkKCk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXNpbmdsZS1zYW1wbGUtc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuJC5jb250ZW50LnRhYmxlQ29sdW1ucz1be3RpdGxlOidGaXJzdENvbHVtbicsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnRpdGxlO30sd2lkdGg6JzI1MHB4J30se3RpdGxlOidTZWNvbmRDb2x1bW4nLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy52YWx1ZTt9LHdpZHRoOicxMDAlJ31dO3RoaXMuJC5jb250ZW50LnNob3dIZWFkZXI9ZmFsc2U7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247aWYodGhpcy5jdXJyZW50U2VsZWN0aW9uXz09PXVuZGVmaW5lZCl7dGhpcy4kLmNvbnRlbnQudGFibGVSb3dzPVtdO3JldHVybjt9Cit2YXIgc2FtcGxlPXRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF07dmFyIHRhYmxlPXRoaXMuJC5jb250ZW50O3ZhciByb3dzPVtdO3Jvd3MucHVzaCh7dGl0bGU6J1RpdGxlJyx2YWx1ZTpzYW1wbGUudGl0bGV9KTtyb3dzLnB1c2goe3RpdGxlOidTYW1wbGUgdGltZScsdmFsdWU6dHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbihzYW1wbGUuc3RhcnQse293bmVyRG9jdW1lbnQ6dGhpcy5vd25lckRvY3VtZW50fSl9KTt2YXIgc2ZFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXN0YWNrLWZyYW1lJyk7c2ZFbC5zdGFja0ZyYW1lPXNhbXBsZS5sZWFmU3RhY2tGcmFtZTtyb3dzLnB1c2goe3RpdGxlOidTdGFjayB0cmFjZScsdmFsdWU6c2ZFbH0pO3RhYmxlLnRhYmxlUm93cz1yb3dzO3RhYmxlLnJlYnVpbGQoKTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtbXVsdGktc2FtcGxlLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKXtyZXR1cm4gdHJ1ZTt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLiQuY29udGVudC50ZXh0Q29udGVudD0nJzt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjtpZih0ci5pc0RlZmluZWQoJ3RyLnVpLmUuYW5hbHlzaXMuU2FtcGxpbmdTdW1tYXJ5UGFuZWwnKSl7dmFyIHBhbmVsPW5ldyB0ci51aS5lLmFuYWx5c2lzLlNhbXBsaW5nU3VtbWFyeVBhbmVsKCk7dGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocGFuZWwpO3BhbmVsLnNlbGVjdGlvbj1zZWxlY3Rpb247fWVsc2V7dGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQ9J1NhbXBsaW5nU3VtbWFyeVBhbmVsIG5vdCBpbnN0YWxsZWQuIDooJzt9fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLXNpbmdsZS1pbnRlcmFjdGlvbi1yZWNvcmQtc3ViLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz11bmRlZmluZWQ7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhpcy50ZXh0Q29udGVudD0nJzt2YXIgcmVhbFZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTt0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTtyZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt9LGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKXtpZighdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF0uYXNzb2NpYXRlZEV2ZW50czt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtbXVsdGktaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO3RoaXMudGV4dENvbnRlbnQ9Jyc7dmFyIHJlYWxWaWV3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTt0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTtyZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKXtpZighdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKK3JldHVybiB1bmRlZmluZWQ7dmFyIHNlbGVjdGlvbj1uZXcgdHIubW9kZWwuRXZlbnRTZXQoKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oaXIpe2lyLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCl7c2VsZWN0aW9uLnB1c2goZXZlbnQpO30pO30pO3JldHVybiBzZWxlY3Rpb247fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLWFsZXJ0LXN1Yi12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt0aGlzLiQudGFibGUudGFibGVDb2x1bW5zPVt7dGl0bGU6J0xhYmVsJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cubmFtZTt9LHdpZHRoOicxNTBweCd9LHt0aXRsZTonVmFsdWUnLHdpZHRoOicxMDAlJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cudmFsdWU7fX1dO3RoaXMuJC50YWJsZS5zaG93SGVhZGVyPWZhbHNlO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXRSb3dzRm9yU2luZ2xlQWxlcnRfOmZ1bmN0aW9uKGFsZXJ0KXt2YXIgcm93cz1bXTtmb3IodmFyIGFyZ05hbWUgaW4gYWxlcnQuYXJncyl7dmFyIGFyZ1ZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7YXJnVmlldy5vYmplY3Q9YWxlcnQuYXJnc1thcmdOYW1lXTtyb3dzLnB1c2goe25hbWU6YXJnTmFtZSx2YWx1ZTphcmdWaWV3fSk7fQoraWYoYWxlcnQuYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGgpe2FsZXJ0LmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCxpKXt2YXIgbGlua0VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpO2xpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCl7cmV0dXJuIGV2ZW50O30sZXZlbnQudGl0bGUpO3ZhciB2YWx1ZVN0cmluZz0nJztpZihldmVudCBpbnN0YW5jZW9mIHRyLm1vZGVsLlRpbWVkRXZlbnQpCit2YWx1ZVN0cmluZz0ndG9vayAnK2V2ZW50LmR1cmF0aW9uLnRvRml4ZWQoMikrJ21zJztyb3dzLnB1c2goe25hbWU6bGlua0VsLHZhbHVlOnZhbHVlU3RyaW5nfSk7fSk7fQordmFyIGRlc2NyaXB0aW9uRWw9dHIudWkuYi5jcmVhdGVEaXYoe3RleHRDb250ZW50OmFsZXJ0LmluZm8uZGVzY3JpcHRpb24sbWF4V2lkdGg6JzMwMHB4J30pO3Jvd3MucHVzaCh7bmFtZTonRGVzY3JpcHRpb24nLHZhbHVlOmRlc2NyaXB0aW9uRWx9KTtpZihhbGVydC5pbmZvLmRvY0xpbmtzKXthbGVydC5pbmZvLmRvY0xpbmtzLmZvckVhY2goZnVuY3Rpb24obGlua09iamVjdCl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7bGlua0VsLnRhcmdldD0nX2JsYW5rJztsaW5rRWwuaHJlZj1saW5rT2JqZWN0LmhyZWY7bGlua0VsLnRleHRDb250ZW50PWxpbmtPYmplY3QudGV4dENvbnRlbnQ7cm93cy5wdXNoKHtuYW1lOmxpbmtPYmplY3QubGFiZWwsdmFsdWU6bGlua0VsfSk7fSk7fQorcmV0dXJuIHJvd3M7fSxnZXRSb3dzRm9yQWxlcnRzXzpmdW5jdGlvbihhbGVydHMpe2lmKGFsZXJ0cy5sZW5ndGg9PTEpe3ZhciByb3dzPVt7bmFtZTonQWxlcnQnLHZhbHVlOmFsZXJ0c1swXS50aXRsZX1dO3ZhciBkZXRhaWxSb3dzPXRoaXMuZ2V0Um93c0ZvclNpbmdsZUFsZXJ0XyhhbGVydHNbMF0pO3Jvd3MucHVzaC5hcHBseShyb3dzLGRldGFpbFJvd3MpO3JldHVybiByb3dzO31lbHNle3JldHVybiBhbGVydHMubWFwKGZ1bmN0aW9uKGFsZXJ0KXtyZXR1cm57bmFtZTonQWxlcnQnLHZhbHVlOmFsZXJ0LnRpdGxlLGlzRXhwYW5kZWQ6YWxlcnRzLnNpemU8MTAsc3ViUm93czp0aGlzLmdldFJvd3NGb3JTaW5nbGVBbGVydF8oYWxlcnQpfTt9LHRoaXMpO319LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe2lmKHRoaXMuY3VycmVudFNlbGVjdGlvbl89PT11bmRlZmluZWQpe3RoaXMuJC50YWJsZS5yb3dzPVtdO3RoaXMuJC50YWJsZS5yZWJ1aWxkKCk7cmV0dXJuO30KK3ZhciBhbGVydHM9dGhpcy5jdXJyZW50U2VsZWN0aW9uXzt0aGlzLiQudGFibGUudGFibGVSb3dzPXRoaXMuZ2V0Um93c0ZvckFsZXJ0c18oYWxlcnRzKTt0aGlzLiQudGFibGUucmVidWlsZCgpO30sZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpe2lmKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uX1swXS5hc3NvY2lhdGVkRXZlbnRzO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zaW5nbGUtZnJhbWUtc3ViLXZpZXcnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHNlbGVjdGlvbi5sZW5ndGghPTEpCit0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgc2luZ2xlIGZyYW1lIScpO3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO3RoaXMuJC5hc3Yuc2VsZWN0aW9uPXNlbGVjdGlvblswXS5hc3NvY2lhdGVkQWxlcnRzO30sZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpe2lmKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uX1swXS5hc3NvY2lhdGVkRXZlbnRzO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1tdWx0aS1mcmFtZS1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLnRleHRDb250ZW50PScnO3ZhciByZWFsVmlldz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3Jyk7cmVhbFZpZXcuZXZlbnRzSGF2ZUR1cmF0aW9uPWZhbHNlO3JlYWxWaWV3LmV2ZW50c0hhdmVTdWJSb3dzPWZhbHNlO3RoaXMuYXBwZW5kQ2hpbGQocmVhbFZpZXcpO3JlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pO3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpe2lmKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQorcmV0dXJuIHVuZGVmaW5lZDt2YXIgc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldCgpO3RoaXMuY3VycmVudFNlbGVjdGlvbl8uZm9yRWFjaChmdW5jdGlvbihmcmFtZUV2ZW50KXtmcmFtZUV2ZW50LmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCl7c2VsZWN0aW9uLnB1c2goZXZlbnQpO30pO30pO3JldHVybiBzZWxlY3Rpb247fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcse3JlYWR5OmZ1bmN0aW9uKCl7dmFyIGJsYWNrU3F1YXJlQ2hhckNvZGU9OTYzMjt0aGlzLiQuc3F1YXJlLmlubmVyVGV4dD1TdHJpbmcuZnJvbUNoYXJDb2RlKGJsYWNrU3F1YXJlQ2hhckNvZGUpO3RoaXMubGFiZWxfPXVuZGVmaW5lZDt0aGlzLmNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZV89dHIubW9kZWwuQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlLk5PVF9TRUxFQ1RFRDt9LHNldCBjb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUoY29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlKXt0aGlzLmNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZV89Y29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlO30sZ2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMubGFiZWxfO30sc2V0IGxhYmVsKGxhYmVsKXtpZihsYWJlbD09PXVuZGVmaW5lZCl7dGhpcy5zZXRMYWJlbEFuZENvbG9ySWQodW5kZWZpbmVkLHVuZGVmaW5lZCk7cmV0dXJuO30KK3ZhciBjb2xvcklkPXRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGxhYmVsKTt0aGlzLnNldExhYmVsQW5kQ29sb3JJZChsYWJlbCxjb2xvcklkKTt9LHNldExhYmVsQW5kQ29sb3JJZDpmdW5jdGlvbihsYWJlbCxjb2xvcklkKXt0aGlzLmxhYmVsXz1sYWJlbDt0aGlzLiQubGFiZWwudGV4dENvbnRlbnQ9Jyc7dGhpcy4kLmxhYmVsLmFwcGVuZENoaWxkKHRyLnVpLmIuYXNIVE1MT3JUZXh0Tm9kZShsYWJlbCkpO2lmKGNvbG9ySWQ9PT11bmRlZmluZWQpe3RoaXMuJC5zcXVhcmUuc3R5bGUuY29sb3I9J2luaXRpYWwnO31lbHNle3ZhciBwYWxldHRlUmF3PXRyLnVpLmIuZ2V0UmF3Q29sb3JQYWxldHRlKCk7dmFyIGNvbG9yPXRyLnVpLmIuY29sb3JUb1JHQlN0cmluZyhwYWxldHRlUmF3W2NvbG9ySWRdKTt0aGlzLiQuc3F1YXJlLnN0eWxlLmNvbG9yPWNvbG9yO319fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5hbmFseXNpcycsZnVuY3Rpb24oKXtmdW5jdGlvbiBNZW1vcnlDb2x1bW4obmFtZSx0aXRsZSx1bml0cyxjZWxsR2V0dGVyKXt0aGlzLm5hbWU9bmFtZTt0aGlzLnRpdGxlPXRpdGxlO3RoaXMudW5pdHM9dW5pdHM7dGhpcy5jZWxsPWNlbGxHZXR0ZXI7dGhpcy5jb2xvcj11bmRlZmluZWQ7fQorTWVtb3J5Q29sdW1uLmZyb21Sb3dzPWZ1bmN0aW9uKHJvd3MsY2VsbEtleSxvcHRfdGl0bGVCdWlsZGVyKXt2YXIgY29sdW1uVHJhaXRzPXt9O2Z1bmN0aW9uIGdhdGhlclRyYWl0cyhyb3cpe2lmKHJvdz09PXVuZGVmaW5lZCkKK3JldHVybjt2YXIgYXR0ckNlbGxzPXJvd1tjZWxsS2V5XTt0ci5iLml0ZXJJdGVtcyhhdHRyQ2VsbHMsZnVuY3Rpb24oYXR0ck5hbWUsYXR0ckNlbGwpe2lmKGF0dHJDZWxsPT09dW5kZWZpbmVkKQorcmV0dXJuO3ZhciBhdHRyVmFsdWU9YXR0ckNlbGwuYXR0cjtpZihhdHRyVmFsdWU9PT11bmRlZmluZWQpCityZXR1cm47dmFyIGV4aXN0aW5nVHJhaXRzPWNvbHVtblRyYWl0c1thdHRyTmFtZV07aWYoZXhpc3RpbmdUcmFpdHM9PT11bmRlZmluZWQpe2NvbHVtblRyYWl0c1thdHRyTmFtZV09e2NvbnN0cnVjdG9yOmF0dHJWYWx1ZS5jb25zdHJ1Y3Rvcix1bml0czphdHRyVmFsdWUudW5pdHN9O3JldHVybjt9CitpZihleGlzdGluZ1RyYWl0cy5jb25zdHJ1Y3RvciE9PWF0dHJWYWx1ZS5jb25zdHJ1Y3Rvcnx8ZXhpc3RpbmdUcmFpdHMudW5pdHMhPT1hdHRyVmFsdWUudW5pdHMpe2V4aXN0aW5nVHJhaXRzLmNvbnN0cnVjdG9yPXRyLm1vZGVsLlVua25vd25BdHRyaWJ1dGU7ZXhpc3RpbmdUcmFpdHMudW5pdHM9dW5kZWZpbmVkO319KTtpZihyb3cuc3ViUm93cyE9PXVuZGVmaW5lZCkKK3Jvdy5zdWJSb3dzLmZvckVhY2goZ2F0aGVyVHJhaXRzKTt9O3Jvd3MuZm9yRWFjaChnYXRoZXJUcmFpdHMpO3ZhciB0aXRsZUJ1aWxkZXI9b3B0X3RpdGxlQnVpbGRlcnx8dHIuYi5pZGVudGl0eTt2YXIgY29sdW1ucz1bXTt0ci5iLml0ZXJJdGVtcyhjb2x1bW5UcmFpdHMsZnVuY3Rpb24oY29sdW1uTmFtZSxjb2x1bW5UcmFpdHMpe3ZhciBjZWxsR2V0dGVyPWZpZWxkR2V0dGVyKGNlbGxLZXksY29sdW1uTmFtZSk7dmFyIHRpdGxlPXRpdGxlQnVpbGRlcihjb2x1bW5OYW1lKTtjb2x1bW5zLnB1c2goTWVtb3J5Q29sdW1uLmZyb21BdHRyaWJ1dGVUcmFpdHMoY29sdW1uTmFtZSx0aXRsZSxjb2x1bW5UcmFpdHMsY2VsbEdldHRlcikpO30pO3JldHVybiBjb2x1bW5zO307TWVtb3J5Q29sdW1uLmZyb21BdHRyaWJ1dGVUcmFpdHM9ZnVuY3Rpb24obmFtZSx0aXRsZSx0cmFpdHMsY2VsbEdldHRlcil7dmFyIGNvbnN0cnVjdG9yO2lmKHRyYWl0cy5jb25zdHJ1Y3Rvcj09PXRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZSkKK2NvbnN0cnVjdG9yPVNjYWxhck1lbW9yeUNvbHVtbjtlbHNlCitjb25zdHJ1Y3Rvcj1NZW1vcnlDb2x1bW47cmV0dXJuIG5ldyBjb25zdHJ1Y3RvcihuYW1lLHRpdGxlLHRyYWl0cy51bml0cyxjZWxsR2V0dGVyKTt9O01lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHk9ZnVuY3Rpb24oY29sdW1ucyl7dmFyIGNvbHVtbldpZHRoPSgxMDAvY29sdW1ucy5sZW5ndGgpLnRvRml4ZWQoMykrJyUnO2NvbHVtbnMuZm9yRWFjaChmdW5jdGlvbihjb2x1bW4pe2NvbHVtbi53aWR0aD1jb2x1bW5XaWR0aDt9KTt9O01lbW9yeUNvbHVtbi5zb3J0QnlJbXBvcnRhbmNlPWZ1bmN0aW9uKGNvbHVtbnMsaW1wb3J0YW5jZVJ1bGVzKXt2YXIgcG9zaXRpb25zPWNvbHVtbnMubWFwKGZ1bmN0aW9uKGNvbHVtbixzcmNJbmRleCl7cmV0dXJue2ltcG9ydGFuY2U6Y29sdW1uLmdldEltcG9ydGFuY2UoaW1wb3J0YW5jZVJ1bGVzKSxzcmNJbmRleDpzcmNJbmRleCxjb2x1bW46Y29sdW1ufTt9KTtwb3NpdGlvbnMuc29ydChmdW5jdGlvbihhLGIpe2lmKGEuaW1wb3J0YW5jZT09PWIuaW1wb3J0YW5jZSkKK3JldHVybiBhLnNyY0luZGV4LWIuc3JjSW5kZXg7cmV0dXJuIGIuaW1wb3J0YW5jZS1hLmltcG9ydGFuY2U7fSk7cG9zaXRpb25zLmZvckVhY2goZnVuY3Rpb24ocG9zaXRpb24sZHN0SW5kZXgpe2NvbHVtbnNbZHN0SW5kZXhdPXBvc2l0aW9uLmNvbHVtbjt9KTt9O01lbW9yeUNvbHVtbi5pY29uRnJvbUF0dHJpYnV0ZUluZm9UeXBlPWZ1bmN0aW9uKHR5cGUpe3N3aXRjaCh0eXBlKXtjYXNlIHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLldBUk5JTkc6cmV0dXJue3N5bWJvbDpTdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpLGNvbG9yOidyZWQnfTtjYXNlIHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLkxJTks6cmV0dXJue3N5bWJvbDpTdHJpbmcuZnJvbUNoYXJDb2RlKDk5MDMpfTtjYXNlIHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLk1FTU9SWV9PV05FUjpyZXR1cm57c3ltYm9sOlN0cmluZy5mcm9tQ2hhckNvZGUoODcwMiksY29sb3I6J2dyZWVuJ307Y2FzZSB0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvVHlwZS5NRU1PUllfT1dORUQ6cmV0dXJue3N5bWJvbDpTdHJpbmcuZnJvbUNoYXJDb2RlKDg3MDEpLGNvbG9yOidncmVlbid9O2RlZmF1bHQ6cmV0dXJue3N5bWJvbDpTdHJpbmcuZnJvbUNoYXJDb2RlKDk0MzIpLGNvbG9yOidibHVlJ307fQordGhyb3cgbmV3IEVycm9yKCdVbnJlYWNoYWJsZScpO307TWVtb3J5Q29sdW1uLnByb3RvdHlwZT17YXR0cjpmdW5jdGlvbihyb3cpe3ZhciBjZWxsPXRoaXMuY2VsbChyb3cpO2lmKGNlbGw9PT11bmRlZmluZWQpCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiBjZWxsLmF0dHI7fSx2YWx1ZTpmdW5jdGlvbihyb3cpe3ZhciBhdHRyPXRoaXMuYXR0cihyb3cpO2lmKGF0dHI9PT11bmRlZmluZWQpCityZXR1cm4nJztyZXR1cm4gdGhpcy5mb3JtYXREZWZpbmVkQXR0cmlidXRlKGF0dHIpO30sZm9ybWF0RGVmaW5lZEF0dHJpYnV0ZTpmdW5jdGlvbihhdHRyKXt2YXIgZm9ybWF0dGVkVmFsdWU9dGhpcy5mb3JtYXREZWZpbmVkQXR0cmlidXRlVmFsdWUoYXR0cik7dmFyIGNvbG9yO2lmKHR5cGVvZiB0aGlzLmNvbG9yPT09J2Z1bmN0aW9uJykKK2NvbG9yPXRoaXMuY29sb3IoYXR0cik7ZWxzZQorY29sb3I9dGhpcy5jb2xvcjtpZihjb2xvcj09PXVuZGVmaW5lZCYmYXR0ci5pbmZvcy5sZW5ndGg9PT0wKQorcmV0dXJuIGZvcm1hdHRlZFZhbHVlO3ZhciBhdHRyRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO2F0dHJFbC5zdHlsZS5kaXNwbGF5PSdmbGV4JzthdHRyRWwuc3R5bGUuYWxpZ25JdGVtcz0nY2VudGVyJzthdHRyRWwuYXBwZW5kQ2hpbGQodHIudWkuYi5hc0hUTUxPclRleHROb2RlKGZvcm1hdHRlZFZhbHVlKSk7YXR0ci5pbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKGluZm8pe3ZhciBpbmZvRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO2luZm9FbC5zdHlsZS5wYWRkaW5nTGVmdD0nNHB4JztpbmZvRWwuc3R5bGUuY3Vyc29yPSdoZWxwJztpbmZvRWwuc3R5bGUuZm9udFdlaWdodD0nYm9sZCc7dmFyIGljb249TWVtb3J5Q29sdW1uLmljb25Gcm9tQXR0cmlidXRlSW5mb1R5cGUoaW5mby50eXBlKTtpbmZvRWwudGV4dENvbnRlbnQ9aWNvbi5zeW1ib2w7aWYoaWNvbi5jb2xvciE9PXVuZGVmaW5lZCkKK2luZm9FbC5zdHlsZS5jb2xvcj1pY29uLmNvbG9yO2luZm9FbC50aXRsZT1pbmZvLm1lc3NhZ2U7YXR0ckVsLmFwcGVuZENoaWxkKGluZm9FbCk7fSx0aGlzKTtpZihjb2xvciE9PXVuZGVmaW5lZCkKK2F0dHJFbC5zdHlsZS5jb2xvcj1jb2xvcjtyZXR1cm4gYXR0ckVsO30sZm9ybWF0RGVmaW5lZEF0dHJpYnV0ZVZhbHVlOmZ1bmN0aW9uKGF0dHIpe3JldHVybiBTdHJpbmcoYXR0ci52YWx1ZSk7fSxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXt2YXIgYXR0ckE9dGhpcy5hdHRyKHJvd0EpO3ZhciBhdHRyQj10aGlzLmF0dHIocm93Qik7aWYoYXR0ckE9PT11bmRlZmluZWQmJmF0dHJCPT09dW5kZWZpbmVkKQorcmV0dXJuIDA7aWYoYXR0ckE9PT11bmRlZmluZWQpCityZXR1cm4tMTtpZihhdHRyQj09PXVuZGVmaW5lZCkKK3JldHVybiAxO3JldHVybiB0aGlzLmNvbXBhcmVEZWZpbmVkQXR0cmlidXRlcyhhdHRyQSxhdHRyQik7fSxjb21wYXJlRGVmaW5lZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oYXR0ckEsYXR0ckIpe3ZhciBzdHJBPVN0cmluZyhhdHRyQS52YWx1ZSk7dmFyIHN0ckI9U3RyaW5nKGF0dHJCLnZhbHVlKTtyZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpO30sZ2V0SW1wb3J0YW5jZTpmdW5jdGlvbihpbXBvcnRhbmNlUnVsZXMpe2lmKGltcG9ydGFuY2VSdWxlcy5sZW5ndGg9PT0wKQorcmV0dXJuIDA7Zm9yKHZhciBpPTA7aTxpbXBvcnRhbmNlUnVsZXMubGVuZ3RoO2krKyl7dmFyIGltcG9ydGFuY2VSdWxlPWltcG9ydGFuY2VSdWxlc1tpXTtpZih0aGlzLm1hdGNoZXNOYW1lQ29uZGl0aW9uKGltcG9ydGFuY2VSdWxlLmNvbmRpdGlvbikpCityZXR1cm4gaW1wb3J0YW5jZVJ1bGUuaW1wb3J0YW5jZTt9Cit2YXIgbWluSW1wb3J0YW5jZT1pbXBvcnRhbmNlUnVsZXNbMF0uaW1wb3J0YW5jZTtmb3IodmFyIGk9MTtpPGltcG9ydGFuY2VSdWxlcy5sZW5ndGg7aSsrKXttaW5JbXBvcnRhbmNlPU1hdGgubWluKG1pbkltcG9ydGFuY2UsaW1wb3J0YW5jZVJ1bGVzW2ldLmltcG9ydGFuY2UpO30KK3JldHVybiBtaW5JbXBvcnRhbmNlLTE7fSxtYXRjaGVzTmFtZUNvbmRpdGlvbjpmdW5jdGlvbihjb25kaXRpb24pe2lmKGNvbmRpdGlvbj09PXVuZGVmaW5lZCkKK3JldHVybiB0cnVlO2lmKHR5cGVvZihjb25kaXRpb24pPT09J3N0cmluZycpCityZXR1cm4gdGhpcy5uYW1lPT09Y29uZGl0aW9uO3JldHVybiBjb25kaXRpb24udGVzdCh0aGlzLm5hbWUpO319O2Z1bmN0aW9uIFNjYWxhck1lbW9yeUNvbHVtbihuYW1lLHRpdGxlLHVuaXRzLGNlbGxHZXR0ZXIpe01lbW9yeUNvbHVtbi5jYWxsKHRoaXMsbmFtZSx0aXRsZSx1bml0cyxjZWxsR2V0dGVyKTt9CitTY2FsYXJNZW1vcnlDb2x1bW4ucHJvdG90eXBlPXtfX3Byb3RvX186TWVtb3J5Q29sdW1uLnByb3RvdHlwZSxmb3JtYXREZWZpbmVkQXR0cmlidXRlVmFsdWU6ZnVuY3Rpb24oYXR0cil7aWYodGhpcy51bml0cz09PSdieXRlcycpe3ZhciBzaXplRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS1zaXplLWluLWJ5dGVzLXNwYW4nKTtzaXplRWwubnVtQnl0ZXM9YXR0ci52YWx1ZTtyZXR1cm4gc2l6ZUVsO30KK3JldHVybiBNZW1vcnlDb2x1bW4ucHJvdG90eXBlLmZvcm1hdERlZmluZWRBdHRyaWJ1dGVWYWx1ZS5jYWxsKHRoaXMsYXR0cik7fSxjb21wYXJlRGVmaW5lZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oYXR0ckEsYXR0ckIpe3JldHVybiBhdHRyQS52YWx1ZS1hdHRyQi52YWx1ZTt9fTtmdW5jdGlvbiBNZW1vcnlDZWxsKGF0dHIpe3RoaXMuYXR0cj1hdHRyO30KK01lbW9yeUNlbGwuZXh0cmFjdEF0dHJpYnV0ZT1mdW5jdGlvbihjZWxsKXtpZihjZWxsPT09dW5kZWZpbmVkKQorcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gY2VsbC5hdHRyO307ZnVuY3Rpb24gZmllbGRHZXR0ZXIoKXt2YXIgZmllbGRzPXRyLmIuYXNBcnJheShhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbihyb3cpe3ZhciB2YWx1ZT1yb3c7Zm9yKHZhciBpPTA7aTxmaWVsZHMubGVuZ3RoO2krKykKK3ZhbHVlPXZhbHVlW2ZpZWxkc1tpXV07cmV0dXJuIHZhbHVlO307fQordmFyIFJFQ1VSU0lWRV9FWFBBTlNJT05fTUFYX1NVQl9ST1dfQ09VTlQ9MTA7ZnVuY3Rpb24gZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHkodGFibGUpe2Z1bmN0aW9uIGV4cGFuZFJvd1JlY3Vyc2l2ZWx5KHJvdyl7aWYocm93LnN1YlJvd3M9PT11bmRlZmluZWR8fHJvdy5zdWJSb3dzLmxlbmd0aD09PTApCityZXR1cm47aWYocm93LnN1YlJvd3MubGVuZ3RoPlJFQ1VSU0lWRV9FWFBBTlNJT05fTUFYX1NVQl9ST1dfQ09VTlQpCityZXR1cm47dGFibGUuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3csdHJ1ZSk7cm93LnN1YlJvd3MuZm9yRWFjaChleHBhbmRSb3dSZWN1cnNpdmVseSk7fQordGFibGUudGFibGVSb3dzLmZvckVhY2goZXhwYW5kUm93UmVjdXJzaXZlbHkpO30KK2Z1bmN0aW9uIGFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHNSZWN1cnNpdmVseShyb3csY2VsbEtleSl7dmFyIHN1YlJvd3M9cm93LnN1YlJvd3M7aWYoc3ViUm93cz09PXVuZGVmaW5lZCkKK3JldHVybjtzdWJSb3dzLmZvckVhY2goZnVuY3Rpb24oc3ViUm93KXthZ2dyZWdhdGVUYWJsZVJvd0NlbGxzUmVjdXJzaXZlbHkoc3ViUm93LGNlbGxLZXkpO30pO2FnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHMocm93LHN1YlJvd3MsY2VsbEtleSk7fQorZnVuY3Rpb24gYWdncmVnYXRlVGFibGVSb3dDZWxscyhyb3csc3ViUm93cyxjZWxsS2V5KXt2YXIgcm93Q2VsbHM9cm93W2NlbGxLZXldO2lmKHJvd0NlbGxzPT09dW5kZWZpbmVkKQorcm93W2NlbGxLZXldPXJvd0NlbGxzPXt9O3ZhciBzdWJSb3dDZWxsTmFtZXM9e307c3ViUm93cy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlJvdyl7dmFyIHN1YlJvd0NlbGxzPXN1YlJvd1tjZWxsS2V5XTtpZihzdWJSb3dDZWxscz09PXVuZGVmaW5lZCkKK3JldHVybjt0ci5iLml0ZXJJdGVtcyhzdWJSb3dDZWxscyxmdW5jdGlvbihjb2x1bW5OYW1lKXtzdWJSb3dDZWxsTmFtZXNbY29sdW1uTmFtZV09dHJ1ZTt9KTt9KTt0ci5iLml0ZXJJdGVtcyhzdWJSb3dDZWxsTmFtZXMsZnVuY3Rpb24oY2VsbE5hbWUpe3ZhciBzdWJSb3dBdHRyaWJ1dGVzPXN1YlJvd3MubWFwKGZ1bmN0aW9uKHN1YlJvdyl7dmFyIHN1YlJvd0NlbGxzPXN1YlJvd1tjZWxsS2V5XTtpZihzdWJSb3dDZWxscz09PXVuZGVmaW5lZCkKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuIE1lbW9yeUNlbGwuZXh0cmFjdEF0dHJpYnV0ZShzdWJSb3dDZWxsc1tjZWxsTmFtZV0pO30sdGhpcyk7dmFyIGV4aXN0aW5nUm93Q2VsbD1yb3dDZWxsc1tjZWxsTmFtZV07dmFyIGV4aXN0aW5nUm93QXR0cmlidXRlPU1lbW9yeUNlbGwuZXh0cmFjdEF0dHJpYnV0ZShleGlzdGluZ1Jvd0NlbGwpO3ZhciBhZ2dyZWdhdGVkQXR0cmlidXRlPXRyLm1vZGVsLkF0dHJpYnV0ZS5hZ2dyZWdhdGUoc3ViUm93QXR0cmlidXRlcyxleGlzdGluZ1Jvd0F0dHJpYnV0ZSk7aWYoZXhpc3RpbmdSb3dDZWxsIT09dW5kZWZpbmVkKXtleGlzdGluZ1Jvd0NlbGwuYXR0cj1hZ2dyZWdhdGVkQXR0cmlidXRlO31lbHNle3Jvd0NlbGxzW2NlbGxOYW1lXT1uZXcgTWVtb3J5Q2VsbChhZ2dyZWdhdGVkQXR0cmlidXRlKTt9fSk7fQorcmV0dXJue01lbW9yeUNvbHVtbjpNZW1vcnlDb2x1bW4sU2NhbGFyTWVtb3J5Q29sdW1uOlNjYWxhck1lbW9yeUNvbHVtbixNZW1vcnlDZWxsOk1lbW9yeUNlbGwsZmllbGRHZXR0ZXI6ZmllbGRHZXR0ZXIsZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHk6ZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHksYWdncmVnYXRlVGFibGVSb3dDZWxsc1JlY3Vyc2l2ZWx5OmFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHNSZWN1cnNpdmVseSxhZ2dyZWdhdGVUYWJsZVJvd0NlbGxzOmFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHN9O30pOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXt2YXIgSU1QT1JUQU5DRV9SVUxFUz1be2NvbmRpdGlvbjonc2l6ZScsaW1wb3J0YW5jZToxMH0se2NvbmRpdGlvbjoncGFnZV9zaXplJyxpbXBvcnRhbmNlOjB9LHtjb25kaXRpb246L3NpemUvLGltcG9ydGFuY2U6NX0se2ltcG9ydGFuY2U6MH1dO1BvbHltZXIoJ3RyLXVpLWEtbWVtb3J5LWR1bXAtYWxsb2NhdG9yLWRldGFpbHMtcGFuZScse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfPXVuZGVmaW5lZDt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHNldCBtZW1vcnlBbGxvY2F0b3JEdW1wKG1lbW9yeUFsbG9jYXRvckR1bXApe3RoaXMubWVtb3J5QWxsb2NhdG9yRHVtcF89bWVtb3J5QWxsb2NhdG9yRHVtcDt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IG1lbW9yeUFsbG9jYXRvckR1bXAoKXtyZXR1cm4gdGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wXzt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3RoaXMuJC5jb250ZW50cy50ZXh0Q29udGVudD0nJztpZih0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfPT09dW5kZWZpbmVkKXt2YXIgaW5mb1RleHQ9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3RoaXMuJC5jb250ZW50cy5hcHBlbmRDaGlsZChpbmZvVGV4dCk7aW5mb1RleHQuY2xhc3NMaXN0LmFkZCgnaW5mby10ZXh0Jyk7aW5mb1RleHQuaW5uZXJUZXh0PSdObyBtZW1vcnkgYWxsb2NhdG9yIGR1bXAgc2VsZWN0ZWQnO3JldHVybjt9Cit2YXIgcm93cz10aGlzLmNyZWF0ZVJvd3NfKCk7dmFyIGNvbHVtbnM9dGhpcy5jcmVhdGVDb2x1bW5zXyhyb3dzKTt2YXIgdGFibGU9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTt0aGlzLiQuY29udGVudHMuYXBwZW5kQ2hpbGQodGFibGUpO3RhYmxlLnN1cHBvcnRzU2VsZWN0aW9uPXRydWU7dGFibGUudGFibGVSb3dzPXJvd3M7dGFibGUudGFibGVDb2x1bW5zPWNvbHVtbnM7dGFibGUucmVidWlsZCgpO3RyLnVpLmFuYWx5c2lzLmV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5KHRhYmxlKTt9LGNyZWF0ZVJvd3NfOmZ1bmN0aW9uKCl7dmFyIGNyZWF0ZUFsbG9jYXRvclJvdz1mdW5jdGlvbihhbGxvY2F0b3JEdW1wKXt2YXIgY2VsbHM9dHIuYi5tYXBJdGVtcyhhbGxvY2F0b3JEdW1wLmF0dHJpYnV0ZXMsZnVuY3Rpb24oYXR0ck5hbWUsYXR0clZhbHVlKXtyZXR1cm4gbmV3IHRyLnVpLmFuYWx5c2lzLk1lbW9yeUNlbGwoYXR0clZhbHVlKTt9KTt2YXIgcm93PXt0aXRsZTphbGxvY2F0b3JEdW1wLm5hbWUsY2VsbHM6Y2VsbHN9O2lmKGFsbG9jYXRvckR1bXAuY2hpbGRyZW4ubGVuZ3RoPjApCityb3cuc3ViUm93cz1hbGxvY2F0b3JEdW1wLmNoaWxkcmVuLm1hcChjcmVhdGVBbGxvY2F0b3JSb3cpO3JldHVybiByb3c7fTt2YXIgcm93cz1bY3JlYXRlQWxsb2NhdG9yUm93KHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcF8pXTtyZXR1cm4gcm93czt9LGNyZWF0ZUNvbHVtbnNfOmZ1bmN0aW9uKHJvd3Mpe3ZhciB0aXRsZUNvbHVtbj17dGl0bGU6J0FsbG9jYXRvcicsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnRpdGxlO30sd2lkdGg6JzIwMHB4JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS50aXRsZS5sb2NhbGVDb21wYXJlKHJvd0IudGl0bGUpO319O3ZhciBhdHRyaWJ1dGVDb2x1bW5zPXRyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5mcm9tUm93cyhyb3dzLCdjZWxscycpO3RyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHkoYXR0cmlidXRlQ29sdW1ucyk7dHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNvcnRCeUltcG9ydGFuY2UoYXR0cmlidXRlQ29sdW1ucyxJTVBPUlRBTkNFX1JVTEVTKTt2YXIgY29sdW1ucz1bdGl0bGVDb2x1bW5dLmNvbmNhdChhdHRyaWJ1dGVDb2x1bW5zKTtyZXR1cm4gY29sdW1uczt9fSk7fSkoKTsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7dmFyIENMQVNTSUZJQ0FUSU9OX1JVTEVTPXtuYW1lOidUb3RhbCcsY2hpbGRyZW46W3tuYW1lOidBbmRyb2lkJyxmaWxlOi9eXC9kZXZcL2FzaG1lbSg/IVwvbGliYyBtYWxsb2MpLyxjaGlsZHJlbjpbe25hbWU6J0phdmEgcnVudGltZScsZmlsZTovXlwvZGV2XC9hc2htZW1cL2RhbHZpay0vLGNoaWxkcmVuOlt7bmFtZTonU3BhY2VzJyxmaWxlOi9cL2RhbHZpay0oYWxsb2N8bWFpbnxsYXJnZSBvYmplY3R8bm9uIG1vdmluZ3x6eWdvdGUpIHNwYWNlLyxjaGlsZHJlbjpbe25hbWU6J05vcm1hbCcsZmlsZTovXC9kYWx2aWstKGFsbG9jfG1haW4pL30se25hbWU6J0xhcmdlJyxmaWxlOi9cL2RhbHZpay1sYXJnZSBvYmplY3QvfSx7bmFtZTonWnlnb3RlJyxmaWxlOi9cL2RhbHZpay16eWdvdGUvfSx7bmFtZTonTm9uLW1vdmluZycsZmlsZTovXC9kYWx2aWstbm9uIG1vdmluZy99XX0se25hbWU6J0xpbmVhciBBbGxvYycsZmlsZTovXC9kYWx2aWstTGluZWFyQWxsb2MvfSx7bmFtZTonSW5kaXJlY3QgUmVmZXJlbmNlIFRhYmxlJyxmaWxlOi9cL2RhbHZpay1pbmRpcmVjdC5yZWYvfSx7bmFtZTonQ2FjaGUnLGZpbGU6L1wvZGFsdmlrLWppdC1jb2RlLWNhY2hlL30se25hbWU6J0FjY291bnRpbmcnfV19LHtuYW1lOidDdXJzb3InLGZpbGU6L1wvQ3Vyc29yV2luZG93L30se25hbWU6J0FzaG1lbSd9XX0se25hbWU6J05hdGl2ZSBoZWFwJyxmaWxlOi9eKChcW2hlYXBcXSl8KFxbYW5vbjopfChcL2RldlwvYXNobWVtXC9saWJjIG1hbGxvYyl8JCkvfSx7bmFtZTonU3RhY2snLGZpbGU6L15cW3N0YWNrL30se25hbWU6J0ZpbGVzJyxmaWxlOi9cLigoKChqYXIpfChhcGspfCh0dGYpfChvZGV4KXwob2F0KXwoYXJnKSkkKXwoZGV4KXwoc28pKS8sY2hpbGRyZW46W3tuYW1lOidzbycsZmlsZTovXC5zby99LHtuYW1lOidqYXInLGZpbGU6L1wuamFyJC99LHtuYW1lOidhcGsnLGZpbGU6L1wuYXBrJC99LHtuYW1lOid0dGYnLGZpbGU6L1wudHRmJC99LHtuYW1lOidkZXgnLGZpbGU6L1wuKChkZXgpfChvZGV4JCkpL30se25hbWU6J29hdCcsZmlsZTovXC5vYXQkL30se25hbWU6J2FydCcsZmlsZTovXC5hcnQkL31dfSx7bmFtZTonRGV2aWNlcycsZmlsZTovKF5cL2RldlwvKXwoYW5vbl9pbm9kZTpkbWFidWYpLyxjaGlsZHJlbjpbe25hbWU6J0dQVScsZmlsZTovXC8oKG52KXwobWFsaSl8KGtnc2wpKS99LHtuYW1lOidETUEnLGZpbGU6L2Fub25faW5vZGU6ZG1hYnVmL31dfSx7bmFtZTonRGlzY291bnRlZCB0cmFjaW5nIG92ZXJoZWFkJyxmaWxlOi9cW2Rpc2NvdW50ZWQgdHJhY2luZyBvdmVyaGVhZFxdL31dfTtmdW5jdGlvbiBjcmVhdGVFbXB0eVJvdyhydWxlKXt2YXIgcm93PXt0aXRsZTpydWxlLm5hbWUscnVsZTpydWxlLGNlbGxzOnt9LHN1YlJvd3M6W119O2lmKHJ1bGUuY2hpbGRyZW4hPT11bmRlZmluZWQpCityb3cuc3ViUm93cz1ydWxlLmNoaWxkcmVuLm1hcChjcmVhdGVFbXB0eVJvdyk7cmV0dXJuIHJvdzt9CitmdW5jdGlvbiBoZXhTdHJpbmcoYWRkcmVzcyxpczY0Qml0QWRkcmVzcyl7dmFyIGhleFBhZGRpbmc9aXM2NEJpdEFkZHJlc3M/JzAwMDAwMDAwMDAwMDAwMDAnOicwMDAwMDAwMCc7aWYoYWRkcmVzcz09PXVuZGVmaW5lZCkKK3JldHVybiB1bmRlZmluZWQ7cmV0dXJuKGhleFBhZGRpbmcrYWRkcmVzcy50b1N0cmluZygxNikpLnN1YnN0cigtaGV4UGFkZGluZy5sZW5ndGgpO30KK2Z1bmN0aW9uIGNsYXNzaWZ5Vk1SZWdpb24ocm93LHZtUmVnaW9uLGlzNjRCaXRBZGRyZXNzKXt2YXIgcnVsZT1yb3cucnVsZTtpZihydWxlPT09dW5kZWZpbmVkfHxydWxlLmNoaWxkcmVuPT09dW5kZWZpbmVkfHxydWxlLmNoaWxkcmVuLmxlbmd0aD09PTApe3ZhciBtYXBwZWRGaWxlPXZtUmVnaW9uLm1hcHBlZEZpbGV8fCcnO3ZhciBjZWxscz17fTtmdW5jdGlvbiBhZGRDZWxsSWZWYWx1ZURlZmluZWQoY29sdW1uTmFtZSxhdHRyQ2xhc3MsdW5pdHMsdmFsdWUpe2lmKHZhbHVlPT09dW5kZWZpbmVkKQorcmV0dXJuO3ZhciBhdHRyPW5ldyBhdHRyQ2xhc3ModW5pdHMsdmFsdWUpO3ZhciBjZWxsPW5ldyB0ci51aS5hbmFseXNpcy5NZW1vcnlDZWxsKGF0dHIpO2NlbGxzW2NvbHVtbk5hbWVdPWNlbGw7fQorZnVuY3Rpb24gYWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoY29sdW1uTmFtZSx2YWx1ZSl7YWRkQ2VsbElmVmFsdWVEZWZpbmVkKGNvbHVtbk5hbWUsdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlLCdieXRlcycsdmFsdWUpO30KK2FkZENlbGxJZlZhbHVlRGVmaW5lZCgnU3RhcnQgYWRkcmVzcycsdHIubW9kZWwuU3RyaW5nQXR0cmlidXRlLCcnLGhleFN0cmluZyh2bVJlZ2lvbi5zdGFydEFkZHJlc3MsaXM2NEJpdEFkZHJlc3MpKTthZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnVmlydHVhbCBzaXplJyx2bVJlZ2lvbi5zaXplSW5CeXRlcyk7YWRkQ2VsbElmVmFsdWVEZWZpbmVkKCdQcm90ZWN0aW9uIGZsYWdzJyx0ci5tb2RlbC5TdHJpbmdBdHRyaWJ1dGUsJycsdm1SZWdpb24ucHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcpO2FkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdQU1MnLHZtUmVnaW9uLmJ5dGVTdGF0cy5wcm9wb3J0aW9uYWxSZXNpZGVudCk7YWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1ByaXZhdGUgZGlydHknLHZtUmVnaW9uLmJ5dGVTdGF0cy5wcml2YXRlRGlydHlSZXNpZGVudCk7YWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1ByaXZhdGUgY2xlYW4nLHZtUmVnaW9uLmJ5dGVTdGF0cy5wcml2YXRlQ2xlYW5SZXNpZGVudCk7YWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1NoYXJlZCBkaXJ0eScsdm1SZWdpb24uYnl0ZVN0YXRzLnNoYXJlZERpcnR5UmVzaWRlbnQpO2FkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdTaGFyZWQgY2xlYW4nLHZtUmVnaW9uLmJ5dGVTdGF0cy5zaGFyZWRDbGVhblJlc2lkZW50KTthZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnU3dhcHBlZCcsdm1SZWdpb24uYnl0ZVN0YXRzLnN3YXBwZWQpO3Jvdy5zdWJSb3dzLnB1c2goe3RpdGxlOm1hcHBlZEZpbGUsY2VsbHM6Y2VsbHN9KTtyZXR1cm47fQorZnVuY3Rpb24gdm1SZWdpb25NYXRjaGVzQ2hpbGRSdWxlKGNoaWxkUnVsZSl7dmFyIGZpbGVSZWdFeHA9Y2hpbGRSdWxlLmZpbGU7aWYoZmlsZVJlZ0V4cD09PXVuZGVmaW5lZCkKK3JldHVybiB0cnVlO3JldHVybiBmaWxlUmVnRXhwLnRlc3Qodm1SZWdpb24ubWFwcGVkRmlsZSk7fQordmFyIG1hdGNoZWRDaGlsZFJ1bGVJbmRleD10ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheShydWxlLmNoaWxkcmVuLHZtUmVnaW9uTWF0Y2hlc0NoaWxkUnVsZSk7aWYobWF0Y2hlZENoaWxkUnVsZUluZGV4PT09LTEpe21hdGNoZWRDaGlsZFJ1bGVJbmRleD1ydWxlLmNoaWxkcmVuLmxlbmd0aDtpZihtYXRjaGVkQ2hpbGRSdWxlSW5kZXg+PXJvdy5zdWJSb3dzLmxlbmd0aCl7cm93LnN1YlJvd3MucHVzaCh7dGl0bGU6J090aGVyJyxjZWxsczp7fSxzdWJSb3dzOltdfSk7fX0KK2NsYXNzaWZ5Vk1SZWdpb24ocm93LnN1YlJvd3NbbWF0Y2hlZENoaWxkUnVsZUluZGV4XSx2bVJlZ2lvbixpczY0Qml0QWRkcmVzcyk7fQorUG9seW1lcigndHItdWktYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnZtUmVnaW9uc189dW5kZWZpbmVkO30scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sc2V0IHZtUmVnaW9ucyh2bVJlZ2lvbnMpe3RoaXMudm1SZWdpb25zXz12bVJlZ2lvbnM7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCB2bVJlZ2lvbnMoKXtyZXR1cm4gdGhpcy52bVJlZ2lvbnNfO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dGhpcy4kLmNvbnRlbnRzLnRleHRDb250ZW50PScnO2lmKHRoaXMudm1SZWdpb25zXz09PXVuZGVmaW5lZCl7dmFyIGluZm9UZXh0PXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTt0aGlzLiQuY29udGVudHMuYXBwZW5kQ2hpbGQoaW5mb1RleHQpO2luZm9UZXh0LmNsYXNzTGlzdC5hZGQoJ2luZm8tdGV4dCcpO2luZm9UZXh0LmlubmVyVGV4dD0nTm8gbWVtb3J5IG1hcHMgc2VsZWN0ZWQnO3JldHVybjt9Cit2YXIgcm93cz10aGlzLmNyZWF0ZVJvd3NfKCk7dmFyIGNvbHVtbnM9dGhpcy5jcmVhdGVDb2x1bW5zXyhyb3dzKTt2YXIgdGFibGU9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTt0aGlzLiQuY29udGVudHMuYXBwZW5kQ2hpbGQodGFibGUpO3RhYmxlLnN1cHBvcnRzU2VsZWN0aW9uPXRydWU7dGFibGUudGFibGVSb3dzPXJvd3M7dGFibGUudGFibGVDb2x1bW5zPWNvbHVtbnM7dGFibGUucmVidWlsZCgpO3RyLnVpLmFuYWx5c2lzLmV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5KHRhYmxlKTt9LGNyZWF0ZVJvd3NfOmZ1bmN0aW9uKCl7dmFyIGlzNjRCaXRBZGRyZXNzPXRoaXMudm1SZWdpb25zXy5zb21lKGZ1bmN0aW9uKHZtUmVnaW9uKXtpZih2bVJlZ2lvbi5zdGFydEFkZHJlc3M9PT11bmRlZmluZWQpCityZXR1cm47cmV0dXJuIHZtUmVnaW9uLnN0YXJ0QWRkcmVzcz49NDI5NDk2NzI5Njt9KTt2YXIgcm9vdFJvdz1jcmVhdGVFbXB0eVJvdyhDTEFTU0lGSUNBVElPTl9SVUxFUyk7dGhpcy52bVJlZ2lvbnNfLm1hcChmdW5jdGlvbih2bVJlZ2lvbil7Y2xhc3NpZnlWTVJlZ2lvbihyb290Um93LHZtUmVnaW9uLGlzNjRCaXRBZGRyZXNzKTt9KTt0ci51aS5hbmFseXNpcy5hZ2dyZWdhdGVUYWJsZVJvd0NlbGxzUmVjdXJzaXZlbHkocm9vdFJvdywnY2VsbHMnKTtyZXR1cm5bcm9vdFJvd107fSxjcmVhdGVDb2x1bW5zXzpmdW5jdGlvbihyb3dzKXt2YXIgdGl0bGVDb2x1bW49e3RpdGxlOidNYXBwZWQgZmlsZScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnRpdGxlO30sd2lkdGg6JzIwMHB4JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS50aXRsZS5sb2NhbGVDb21wYXJlKHJvd0IudGl0bGUpO319O3ZhciBhdHRyaWJ1dGVDb2x1bW5zPXRyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5mcm9tUm93cyhyb3dzLCdjZWxscycpO3RyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHkoYXR0cmlidXRlQ29sdW1ucyk7dmFyIGNvbHVtbnM9W3RpdGxlQ29sdW1uXS5jb25jYXQoYXR0cmlidXRlQ29sdW1ucyk7cmV0dXJuIGNvbHVtbnM7fX0pO30pKCk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWItdmlldy1zcGVjaWZpYy1icnVzaGluZy1zdGF0ZScse2dldCB2aWV3SWQoKXtyZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZpZXctaWQnKTt9LHNldCB2aWV3SWQodmlld0lkKXt0aGlzLnNldEF0dHJpYnV0ZSgndmlldy1pZCcsdmlld0lkKTt9LGdldDpmdW5jdGlvbigpe3ZhciB2aWV3SWQ9dGhpcy52aWV3SWQ7aWYoIXZpZXdJZCkKK3Rocm93IG5ldyBFcnJvcignRWxlbWVudCBtdXN0IGhhdmUgYSB2aWV3LWlkIGF0dHJpYnV0ZSEnKTt2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI9dHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRDb250cm9sbGVyRm9yRWxlbWVudCh0aGlzKTtpZighYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRWaWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlKHZpZXdJZCk7fSxzZXQ6ZnVuY3Rpb24oc3RhdGUpe3ZhciB2aWV3SWQ9dGhpcy52aWV3SWQ7aWYoIXZpZXdJZCkKK3Rocm93IG5ldyBFcnJvcignRWxlbWVudCBtdXN0IGhhdmUgYSB2aWV3LWlkIGF0dHJpYnV0ZSEnKTt2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI9dHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRDb250cm9sbGVyRm9yRWxlbWVudCh0aGlzKTtpZighYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpCityZXR1cm47YnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuY2hhbmdlVmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZSh2aWV3SWQsc3RhdGUpO319KTsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7dmFyIElNUE9SVEFOQ0VfUlVMRVM9W3tjb25kaXRpb246J3RyYWNpbmcnLGltcG9ydGFuY2U6MH0se2ltcG9ydGFuY2U6MX1dO3ZhciBMSU5LX1NZTUJPTD1TdHJpbmcuZnJvbUNoYXJDb2RlKDk5MDMpO1BvbHltZXIoJ3RyLXVpLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZScse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc189dW5kZWZpbmVkO30scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQudGFibGUuc3VwcG9ydHNTZWxlY3Rpb249dHJ1ZTt0aGlzLiQudGFibGUuY2VsbFNlbGVjdGlvbk1vZGU9dHJ1ZTt0aGlzLiQudGFibGUucm93SGlnaGxpZ2h0RW5hYmxlZD10cnVlO3RoaXMuJC50YWJsZS5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlZCcsZnVuY3Rpb24odGFibGVFdmVudCl7dGFibGVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcGFuZUV2ZW50PW5ldyB0ci5iLkV2ZW50KCdzZWxlY3RlZC1tZW1vcnktY2VsbC1jaGFuZ2VkJyk7dGhpcy5kaXNwYXRjaEV2ZW50KHBhbmVFdmVudCk7dGhpcy5zdG9yZVNlbGVjdGlvbl8oKTt9LmJpbmQodGhpcykpO30sc2V0IHByb2Nlc3NNZW1vcnlEdW1wcyhwcm9jZXNzTWVtb3J5RHVtcHMpe3RoaXMucHJvY2Vzc01lbW9yeUR1bXBzXz1wcm9jZXNzTWVtb3J5RHVtcHM7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBwcm9jZXNzTWVtb3J5RHVtcHMoKXtyZXR1cm4gdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfO30sZ2V0IHNlbGVjdGVkTWVtb3J5Q2VsbCgpe3ZhciBzZWxlY3RlZFRhYmxlUm93PXRoaXMuJC50YWJsZS5zZWxlY3RlZFRhYmxlUm93O2lmKCFzZWxlY3RlZFRhYmxlUm93KQorcmV0dXJuIHVuZGVmaW5lZDt2YXIgc2VsZWN0ZWRDb2x1bW5JbmRleD10aGlzLiQudGFibGUuc2VsZWN0ZWRDb2x1bW5JbmRleDtpZihzZWxlY3RlZENvbHVtbkluZGV4PT09dW5kZWZpbmVkKQorcmV0dXJuIHVuZGVmaW5lZDt2YXIgc2VsZWN0ZWRDb2x1bW49dGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1uc1tzZWxlY3RlZENvbHVtbkluZGV4XTt2YXIgc2VsZWN0ZWRNZW1vcnlDZWxsPXNlbGVjdGVkQ29sdW1uLmNlbGwoc2VsZWN0ZWRUYWJsZVJvdyk7cmV0dXJuIHNlbGVjdGVkTWVtb3J5Q2VsbDt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3ZhciBwcm9jZXNzTWVtb3J5RHVtcHM9dGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNffHxbXTt2YXIgcm93cz1wcm9jZXNzTWVtb3J5RHVtcHMubWFwKGZ1bmN0aW9uKHByb2Nlc3NNZW1vcnlEdW1wKXtmdW5jdGlvbiBidWlsZFZNUmVnaW9uc1BhbmUoKXt2YXIgcGFuZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW1lbW9yeS1kdW1wLXZtLXJlZ2lvbnMtZGV0YWlscy1wYW5lJyk7cGFuZS52bVJlZ2lvbnM9cHJvY2Vzc01lbW9yeUR1bXAubW9zdFJlY2VudFZtUmVnaW9ucztyZXR1cm4gcGFuZTt9Cit2YXIgdXNlZE1lbW9yeVNpemVzPXt9O3ZhciB0b3RhbFJlc2lkZW50PXByb2Nlc3NNZW1vcnlEdW1wLnRvdGFsUmVzaWRlbnRCeXRlcztpZih0b3RhbFJlc2lkZW50IT09dW5kZWZpbmVkKXt2YXIgY2VsbD1uZXcgdHIudWkuYW5hbHlzaXMuTWVtb3J5Q2VsbChuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsdG90YWxSZXNpZGVudCkpO2NlbGwuYnVpbGREZXRhaWxzUGFuZT1idWlsZFZNUmVnaW9uc1BhbmU7dXNlZE1lbW9yeVNpemVzWydUb3RhbCByZXNpZGVudCddPWNlbGw7fQorZnVuY3Rpb24gYWRkQnl0ZVN0YXRDZWxsKGJ5dGVTdGF0TmFtZSxjb2x1bW5UaXRsZSl7dmFyIGJ5dGVTdGF0PXByb2Nlc3NNZW1vcnlEdW1wLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdChieXRlU3RhdE5hbWUpO2lmKGJ5dGVTdGF0IT09dW5kZWZpbmVkKXt2YXIgYXR0cj1uZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsYnl0ZVN0YXQpO2lmKCFwcm9jZXNzTWVtb3J5RHVtcC5oYXNPd25WbVJlZ2lvbnMpe2F0dHIuaW5mb3MucHVzaChuZXcgdHIubW9kZWwuQXR0cmlidXRlSW5mbyh0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvVHlwZS5MSU5LLCdPbGRlciB2YWx1ZSAocHJvY2VzcyBkaWQgbm90IGR1bXAgbWVtb3J5IG1hcHMpLicpKTthdHRyLmlzT2xkZXJWYWx1ZT10cnVlO30KK3ZhciBjZWxsPW5ldyB0ci51aS5hbmFseXNpcy5NZW1vcnlDZWxsKGF0dHIpO2NlbGwuYnVpbGREZXRhaWxzUGFuZT1idWlsZFZNUmVnaW9uc1BhbmU7dXNlZE1lbW9yeVNpemVzW2NvbHVtblRpdGxlXT1jZWxsO319CithZGRCeXRlU3RhdENlbGwoJ3Byb3BvcnRpb25hbFJlc2lkZW50JywnUFNTJyk7YWRkQnl0ZVN0YXRDZWxsKCdwcml2YXRlRGlydHlSZXNpZGVudCcsJ1ByaXZhdGUgZGlydHknKTthZGRCeXRlU3RhdENlbGwoJ3N3YXBwZWQnLCdTd2FwcGVkJyk7dmFyIGFsbG9jYXRvclNpemVzPXt9O2lmKHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzIT09dW5kZWZpbmVkKXtwcm9jZXNzTWVtb3J5RHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGR1bXApe3ZhciBhdHRyPWR1bXAuYXR0cmlidXRlc1snc2l6ZSddO3ZhciBjZWxsPW5ldyB0ci51aS5hbmFseXNpcy5NZW1vcnlDZWxsKGF0dHIpO2NlbGwuYnVpbGREZXRhaWxzUGFuZT1mdW5jdGlvbigpe3ZhciBwYW5lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbWVtb3J5LWR1bXAtYWxsb2NhdG9yLWRldGFpbHMtcGFuZScpO3BhbmUubWVtb3J5QWxsb2NhdG9yRHVtcD1kdW1wO3JldHVybiBwYW5lO307YWxsb2NhdG9yU2l6ZXNbZHVtcC5mdWxsTmFtZV09Y2VsbDt9LHRoaXMpO30KK3JldHVybnt0aXRsZTpwcm9jZXNzTWVtb3J5RHVtcC5wcm9jZXNzLnVzZXJGcmllbmRseU5hbWUsdXNlZE1lbW9yeVNpemVzOnVzZWRNZW1vcnlTaXplcyxhbGxvY2F0b3JTaXplczphbGxvY2F0b3JTaXplc307fSx0aGlzKTt0aGlzLiQudGFibGUudGFibGVSb3dzPXJvd3M7aWYocm93cy5sZW5ndGg+MSl7dmFyIHRvdGFsUm93PXt0aXRsZTonVG90YWwnLG5vTGVnZW5kOnRydWV9O3RyLnVpLmFuYWx5c2lzLmFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHModG90YWxSb3cscm93cywndXNlZE1lbW9yeVNpemVzJyk7dHIudWkuYW5hbHlzaXMuYWdncmVnYXRlVGFibGVSb3dDZWxscyh0b3RhbFJvdyxyb3dzLCdhbGxvY2F0b3JTaXplcycpO3RoaXMuJC50YWJsZS5mb290ZXJSb3dzPVt0b3RhbFJvd107fQordGhpcy51cGRhdGVDb2x1bW5zXyhyb3dzKTt0aGlzLiQudGFibGUucmVidWlsZCgpO3RoaXMucmVzdG9yZVNlbGVjdGlvbl8oKTt9LHVwZGF0ZUNvbHVtbnNfOmZ1bmN0aW9uKHJvd3Mpe3ZhciB0aXRsZUNvbHVtbj17dGl0bGU6J1Byb2Nlc3MnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7aWYocm93Lm5vTGVnZW5kKQorcmV0dXJuIHJvdy50aXRsZTt2YXIgdGl0bGVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpO3RpdGxlRWwubGFiZWw9cm93LnRpdGxlO3JldHVybiB0aXRsZUVsO30sd2lkdGg6JzIwMHB4JyxjbXA6ZnVuY3Rpb24ocm93QSxyb3dCKXtyZXR1cm4gcm93QS50aXRsZS5sb2NhbGVDb21wYXJlKHJvd0IudGl0bGUpO30sc3VwcG9ydHNDZWxsU2VsZWN0aW9uOmZhbHNlfTt2YXIgdXNlZE1lbW9yeVNpemVDb2x1bW5zPXRyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5mcm9tUm93cyhyb3dzLCd1c2VkTWVtb3J5U2l6ZXMnKTt2YXIgYWxsb2NhdG9yU2l6ZUNvbHVtbnM9dHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLmZyb21Sb3dzKHJvd3MsJ2FsbG9jYXRvclNpemVzJyxmdW5jdGlvbihhbGxvY2F0b3JOYW1lKXt2YXIgdGl0bGVFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpO3RpdGxlRWwubGFiZWw9YWxsb2NhdG9yTmFtZTtyZXR1cm4gdGl0bGVFbDt9KTt0ci51aS5hbmFseXNpcy5NZW1vcnlDb2x1bW4uc29ydEJ5SW1wb3J0YW5jZShhbGxvY2F0b3JTaXplQ29sdW1ucyxJTVBPUlRBTkNFX1JVTEVTKTt2YXIgdHJhY2luZ0NvbHVtbj10ci5iLmZpbmRGaXJzdEluQXJyYXkoYWxsb2NhdG9yU2l6ZUNvbHVtbnMsZnVuY3Rpb24oY29sdW1uKXtyZXR1cm4gY29sdW1uLm5hbWU9PT0ndHJhY2luZyc7fSk7aWYodHJhY2luZ0NvbHVtbiE9PXVuZGVmaW5lZCl7dmFyIHRyYWNpbmdDb2x1bW5Db2xvcj10ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpW3RyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgndHJhY2luZ19tZW1vcnlfY29sdW1uJyldO3RyYWNpbmdDb2x1bW4udGl0bGU9dHIudWkuYi5jcmVhdGVTcGFuKHt0ZXh0Q29udGVudDondHJhY2luZycsY29sb3I6dHJhY2luZ0NvbHVtbkNvbG9yfSk7dHJhY2luZ0NvbHVtbi5jb2xvcj10cmFjaW5nQ29sdW1uQ29sb3I7fQordXNlZE1lbW9yeVNpemVDb2x1bW5zLmZvckVhY2goZnVuY3Rpb24oY29sdW1uKXt2YXIgb2xkZXJVc2VkTWVtb3J5Q29sdW1uQ29sb3I9dHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKVt0ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ29sZGVyX3VzZWRfbWVtb3J5X2NvbHVtbicpXTt2YXIgdXNlZE1lbW9yeUNvbHVtbkNvbG9yPXRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlKClbdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd1c2VkX21lbW9yeV9jb2x1bW4nKV07Y29sdW1uLnRpdGxlPXRyLnVpLmIuY3JlYXRlU3Bhbih7dGV4dENvbnRlbnQ6Y29sdW1uLnRpdGxlLGNvbG9yOnVzZWRNZW1vcnlDb2x1bW5Db2xvcn0pO2NvbHVtbi5jb2xvcj1mdW5jdGlvbihhdHRyKXtyZXR1cm4gYXR0ci5pc09sZGVyVmFsdWU/b2xkZXJVc2VkTWVtb3J5Q29sdW1uQ29sb3I6dXNlZE1lbW9yeUNvbHVtbkNvbG9yO319KTt2YXIgc2l6ZUNvbHVtbnM9dXNlZE1lbW9yeVNpemVDb2x1bW5zLmNvbmNhdChhbGxvY2F0b3JTaXplQ29sdW1ucyk7dHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShzaXplQ29sdW1ucyk7dmFyIGNvbHVtbnM9W3RpdGxlQ29sdW1uXS5jb25jYXQoc2l6ZUNvbHVtbnMpO3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9Y29sdW1uczt9LHN0b3JlU2VsZWN0aW9uXzpmdW5jdGlvbigpe3ZhciBzZWxlY3RlZFJvd1RpdGxlO3ZhciBzZWxlY3RlZFJvdz10aGlzLiQudGFibGUuc2VsZWN0ZWRUYWJsZVJvdztpZihzZWxlY3RlZFJvdyE9PXVuZGVmaW5lZCkKK3NlbGVjdGVkUm93VGl0bGU9c2VsZWN0ZWRSb3cudGl0bGU7dmFyIHNlbGVjdGVkQ29sdW1uTmFtZTt2YXIgc2VsZWN0ZWRDb2x1bW5JbmRleD10aGlzLiQudGFibGUuc2VsZWN0ZWRDb2x1bW5JbmRleDtpZihzZWxlY3RlZENvbHVtbkluZGV4IT09dW5kZWZpbmVkKXt2YXIgc2VsZWN0ZWRDb2x1bW49dGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1uc1tzZWxlY3RlZENvbHVtbkluZGV4XTtzZWxlY3RlZENvbHVtbk5hbWU9c2VsZWN0ZWRDb2x1bW4ubmFtZTt9Cit0aGlzLiQuc3RhdGUuc2V0KHtyb3dUaXRsZTpzZWxlY3RlZFJvd1RpdGxlLGNvbHVtbk5hbWU6c2VsZWN0ZWRDb2x1bW5OYW1lfSk7fSxyZXN0b3JlU2VsZWN0aW9uXzpmdW5jdGlvbigpe3ZhciBzZXR0aW5ncz10aGlzLiQuc3RhdGUuZ2V0KCk7aWYoc2V0dGluZ3M9PT11bmRlZmluZWR8fHNldHRpbmdzLnJvd1RpdGxlPT09dW5kZWZpbmVkfHxzZXR0aW5ncy5jb2x1bW5OYW1lPT09dW5kZWZpbmVkKQorcmV0dXJuO3ZhciBzZWxlY3RlZENvbHVtbk5hbWU9c2V0dGluZ3MuY29sdW1uTmFtZTt2YXIgc2VsZWN0ZWRDb2x1bW5JbmRleD10ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheSh0aGlzLiQudGFibGUudGFibGVDb2x1bW5zLGZ1bmN0aW9uKGNvbHVtbil7cmV0dXJuIGNvbHVtbi5uYW1lPT09c2VsZWN0ZWRDb2x1bW5OYW1lO30pO2lmKHNlbGVjdGVkQ29sdW1uSW5kZXg8MCkKK3JldHVybjt2YXIgc2VsZWN0ZWRSb3dUaXRsZT1zZXR0aW5ncy5yb3dUaXRsZTt2YXIgc2VsZWN0ZWRSb3c9dHIuYi5maW5kRmlyc3RJbkFycmF5KHRoaXMuJC50YWJsZS50YWJsZVJvd3MsZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnRpdGxlPT09c2VsZWN0ZWRSb3dUaXRsZTt9KTtpZihzZWxlY3RlZFJvdz09PXVuZGVmaW5lZCkKK3JldHVybjt0aGlzLiQudGFibGUuc2VsZWN0ZWRUYWJsZVJvdz1zZWxlY3RlZFJvdzt0aGlzLiQudGFibGUuc2VsZWN0ZWRDb2x1bW5JbmRleD1zZWxlY3RlZENvbHVtbkluZGV4O319KTt9KSgpOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW1lbW9yeS1kdW1wLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfPXVuZGVmaW5lZDt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy4kLm92ZXJ2aWV3X3BhbmUuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0ZWQtbWVtb3J5LWNlbGwtY2hhbmdlZCcsdGhpcy51cGRhdGVEZXRhaWxzUGFuZV8uYmluZCh0aGlzKSk7fSxzZXQgcHJvY2Vzc01lbW9yeUR1bXBzKHByb2Nlc3NNZW1vcnlEdW1wcyl7dGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfPXByb2Nlc3NNZW1vcnlEdW1wczt0aGlzLiQub3ZlcnZpZXdfcGFuZS5wcm9jZXNzTWVtb3J5RHVtcHM9dGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfO3RoaXMudXBkYXRlRGV0YWlsc1BhbmVfKCk7fSxnZXQgcHJvY2Vzc01lbW9yeUR1bXBzKCl7cmV0dXJuIHRoaXMucHJvY2Vzc01lbW9yeUR1bXBzXzt9LHVwZGF0ZURldGFpbHNQYW5lXzpmdW5jdGlvbigpe3RoaXMuJC5kZXRhaWxzX3BhbmVfY29udGFpbmVyLnRleHRDb250ZW50PScnO3ZhciBzZWxlY3RlZE1lbW9yeUNlbGw9dGhpcy4kLm92ZXJ2aWV3X3BhbmUuc2VsZWN0ZWRNZW1vcnlDZWxsO2lmKCFzZWxlY3RlZE1lbW9yeUNlbGx8fCFzZWxlY3RlZE1lbW9yeUNlbGwuYnVpbGREZXRhaWxzUGFuZSkKK3JldHVybjt0aGlzLiQuZGV0YWlsc19wYW5lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzZWxlY3RlZE1lbW9yeUNlbGwuYnVpbGREZXRhaWxzUGFuZSgpKTt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWEtc2luZ2xlLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXcnLHtzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7aWYoc2VsZWN0aW9uLmxlbmd0aCE9PTEpCit0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgYSBzaW5nbGUgcHJvY2VzcyBtZW1vcnkgZHVtcCcpO2lmKCEoc2VsZWN0aW9uWzBdaW5zdGFuY2VvZiB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcCkpCit0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgcHJvY2VzcyBtZW1vcnkgZHVtcHMnKTt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLiQubWVtb3J5X2R1bXBfdmlldy5wcm9jZXNzTWVtb3J5RHVtcHM9W3NlbGVjdGlvblswXV07fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87fSxnZXQgcmVxdWlyZXNUYWxsVmlldygpe3JldHVybiB0cnVlO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1tdWx0aS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3Jyx7Y3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3RoaXMuY3VycmVudFNlbGVjdGlvbl89c2VsZWN0aW9uO3NlbGVjdGlvbj10ci5iLmFzQXJyYXkoc2VsZWN0aW9uKS5zb3J0KHRyLmIuUmFuZ2UuY29tcGFyZUJ5TWluVGltZXMpO3ZhciBvd25lckRvY3VtZW50PXRoaXMub3duZXJEb2N1bWVudDt2YXIgdGFibGU9dGhpcy4kLmNvbnRlbnQ7dGFibGUudGFibGVDb2x1bW5zPVt7dGl0bGU6J0R1bXAnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7dmFyIGxpbmtFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTtsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpe3JldHVybiBuZXcgdHIubW9kZWwuRXZlbnRTZXQocm93KTt9KTt2YXIgc3BhbkVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtzcGFuRWwudGV4dENvbnRlbnQ9J1Byb2Nlc3MgbWVtb3J5IGR1bXAgYXQgJztsaW5rRWwuYXBwZW5kQ2hpbGQoc3BhbkVsKTtsaW5rRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3Bhbihyb3cuc3RhcnQse293bmVyRG9jdW1lbnQ6b3duZXJEb2N1bWVudH0pKTtyZXR1cm4gbGlua0VsO319XTt0YWJsZS5zaG93SGVhZGVyPWZhbHNlO3RhYmxlLnRhYmxlUm93cz1zZWxlY3Rpb247dGFibGUucmVidWlsZCgpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1zaW5nbGUtZ2xvYmFsLW1lbW9yeS1kdW1wLXN1Yi12aWV3Jyx7c2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHNlbGVjdGlvbi5sZW5ndGghPT0xKQordGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIGEgc2luZ2xlIGdsb2JhbCBtZW1vcnkgZHVtcCcpO2lmKCEoc2VsZWN0aW9uWzBdaW5zdGFuY2VvZiB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKSkKK3Rocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBnbG9iYWwgbWVtb3J5IGR1bXBzJyk7dGhpcy5jdXJyZW50U2VsZWN0aW9uXz1zZWxlY3Rpb247dGhpcy4kLm1lbW9yeV9kdW1wX3ZpZXcucHJvY2Vzc01lbW9yeUR1bXBzPXRyLmIuZGljdGlvbmFyeVZhbHVlcyhzZWxlY3Rpb25bMF0ucHJvY2Vzc01lbW9yeUR1bXBzKTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LGdldCByZXF1aXJlc1RhbGxWaWV3KCl7cmV0dXJuIHRydWU7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1hLW11bHRpLWdsb2JhbC1tZW1vcnktZHVtcC1zdWItdmlldycse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjtzZWxlY3Rpb249dHIuYi5hc0FycmF5KHNlbGVjdGlvbikuc29ydCh0ci5iLlJhbmdlLmNvbXBhcmVCeU1pblRpbWVzKTt2YXIgb3duZXJEb2N1bWVudD10aGlzLm93bmVyRG9jdW1lbnQ7dmFyIHRhYmxlPXRoaXMuJC5jb250ZW50O3RhYmxlLnRhYmxlQ29sdW1ucz1be3RpdGxlOidEdW1wJyx2YWx1ZTpmdW5jdGlvbihyb3cpe3ZhciBsaW5rRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7bGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KHJvdyk7fSk7dmFyIHNwYW5FbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7c3BhbkVsLnRleHRDb250ZW50PSdHbG9iYWwgbWVtb3J5IGR1bXAgYXQgJztsaW5rRWwuYXBwZW5kQ2hpbGQoc3BhbkVsKTtsaW5rRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3Bhbihyb3cuc3RhcnQse293bmVyRG9jdW1lbnQ6b3duZXJEb2N1bWVudH0pKTtyZXR1cm4gbGlua0VsO319XTt0YWJsZS5zaG93SGVhZGVyPWZhbHNlO3RhYmxlLnRhYmxlUm93cz1zZWxlY3Rpb247dGFibGUucmVidWlsZCgpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktYS1tdWx0aS1wb3dlci1zYW1wbGUtc3ViLXZpZXcnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuY3VycmVudFNlbGVjdGlvbl89dW5kZWZpbmVkO3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9W3t0aXRsZTonVGltZScsd2lkdGg6JzE1MHB4Jyx2YWx1ZTpmdW5jdGlvbihyb3cpe3JldHVybiByb3cuc3RhcnQ7fX0se3RpdGxlOidQb3dlciAobVcpJyx3aWR0aDonMTAwJScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LnBvd2VyO319XTt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aGlzLmN1cnJlbnRTZWxlY3Rpb25fPXNlbGVjdGlvbjt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7aWYodGhpcy5jdXJyZW50U2VsZWN0aW9uXz09PXVuZGVmaW5lZCl7dGhpcy4kLnRhYmxlLnJvd3M9W107dGhpcy4kLnRhYmxlLnJlYnVpbGQoKTtyZXR1cm47fQordmFyIHBvd2VyU2FtcGxlcz10aGlzLmN1cnJlbnRTZWxlY3Rpb25fO3RoaXMuJC50YWJsZS50YWJsZVJvd3M9dGhpcy5nZXRSb3dzRm9yUG93ZXJTYW1wbGVzXyhwb3dlclNhbXBsZXMpO3RoaXMuJC50YWJsZS5yZWJ1aWxkKCk7fSxnZXRSb3dzRm9yUG93ZXJTYW1wbGVzXzpmdW5jdGlvbihwb3dlclNhbXBsZXMpe3JldHVybiBwb3dlclNhbXBsZXMubWFwKGZ1bmN0aW9uKHBvd2VyU2FtcGxlKXtyZXR1cm57c3RhcnQ6cG93ZXJTYW1wbGUuc3RhcnQscG93ZXI6cG93ZXJTYW1wbGUucG93ZXJ9O30pO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7T2JqZWN0Lm9ic2VydmUoUG9seW1lci5lbGVtZW50cyxjbGVhclBvbHltZXJFbGVtZW50Q2FjaGVzKTt2YXIgZWxlbWVudHNCeU5hbWU9dW5kZWZpbmVkO3ZhciBlbGVtZW50c1RoYXRFeHRlbmQ9dW5kZWZpbmVkO3ZhciBlbGVtZW50U3ViY2xhc3Nlcz11bmRlZmluZWQ7ZnVuY3Rpb24gY2xlYXJQb2x5bWVyRWxlbWVudENhY2hlcygpe2VsZW1lbnRzQnlOYW1lPXt9O2VsZW1lbnRzVGhhdEV4dGVuZD11bmRlZmluZWQ7ZWxlbWVudFN1YmNsYXNzZXM9e307fQorZnVuY3Rpb24gYnVpbGRFbGVtZW50TWFwc0lmTmVlZGVkKCl7aWYoZWxlbWVudHNUaGF0RXh0ZW5kIT09dW5kZWZpbmVkJiZlbGVtZW50c0J5TmFtZSE9PXVuZGVmaW5lZCkKK3JldHVybjtlbGVtZW50c0J5TmFtZT17fTtlbGVtZW50c1RoYXRFeHRlbmQ9e307UG9seW1lci5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpe2lmKGVsZW1lbnRzQnlOYW1lW2VsZW1lbnQubmFtZV0pCit0aHJvdyBuZXcgRXJyb3IoJ1NvbWV0aGluZyBpcyBzdHJhbmdlOiBkdXBlIHBvbHltZXIgZWxlbWVudCBuYW1lcycpO2VsZW1lbnRzQnlOYW1lW2VsZW1lbnQubmFtZV09ZWxlbWVudDtpZihlbGVtZW50LmV4dGVuZHMpe2lmKGVsZW1lbnRzVGhhdEV4dGVuZFtlbGVtZW50LmV4dGVuZHNdPT09dW5kZWZpbmVkKQorZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQuZXh0ZW5kc109W107ZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQuZXh0ZW5kc10ucHVzaChlbGVtZW50Lm5hbWUpO319KTt9CitmdW5jdGlvbiBnZXRQb2x5bWVyRWxlbWVudE5hbWVkKHRhZ05hbWUpe2J1aWxkRWxlbWVudE1hcHNJZk5lZWRlZCgpO3JldHVybiBlbGVtZW50c0J5TmFtZVt0YWdOYW1lXTt9CitmdW5jdGlvbiBnZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3ModGFnTmFtZSl7aWYoUG9seW1lci53YWl0aW5nRm9yKCkubGVuZ3RoKXt0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGFyZSB1bnJlc29sdmVkIHBvbHltZXIgZWxlbWVudHMuICcrJ1dhaXQgdW50aWwgUG9seW1lci53aGVuUmVhZHknKTt9CitidWlsZEVsZW1lbnRNYXBzSWZOZWVkZWQoKTt2YXIgZWxlbWVudD1nZXRQb2x5bWVyRWxlbWVudE5hbWVkKHRhZ05hbWUpO2lmKCFlbGVtZW50KQordGhyb3cgbmV3IEVycm9yKHRhZ05hbWUrJyBpcyBub3QgYSBwb2x5bWVyIGVsZW1lbnQnKTtpZihlbGVtZW50U3ViY2xhc3Nlcz09PXVuZGVmaW5lZCkKK2VsZW1lbnRTdWJjbGFzc2VzPXt9O2lmKGVsZW1lbnRTdWJjbGFzc2VzW3RhZ05hbWVdPT09dW5kZWZpbmVkKXt2YXIgaW1tZWRpYXRlU3ViRWxlbWVudHM9ZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQubmFtZV07dmFyIGFsbFN1YkVsZW1lbnRzPVtdO2lmKGltbWVkaWF0ZVN1YkVsZW1lbnRzIT09dW5kZWZpbmVkJiZpbW1lZGlhdGVTdWJFbGVtZW50cy5sZW5ndGgpe2ltbWVkaWF0ZVN1YkVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oc3ViRWxlbWVudCl7YWxsU3ViRWxlbWVudHMucHVzaChzdWJFbGVtZW50KTthbGxTdWJFbGVtZW50cy5wdXNoLmFwcGx5KGFsbFN1YkVsZW1lbnRzLGdldFBvbHltZXJFbGVtZW50c1RoYXRTdWJjbGFzcyhzdWJFbGVtZW50KSk7fSk7fQorZWxlbWVudFN1YmNsYXNzZXNbdGFnTmFtZV09YWxsU3ViRWxlbWVudHM7fQorcmV0dXJuIGVsZW1lbnRTdWJjbGFzc2VzW3RhZ05hbWVdO30KK3JldHVybntnZXRQb2x5bWVyRWxlbWVudE5hbWVkOmdldFBvbHltZXJFbGVtZW50TmFtZWQsZ2V0UG9seW1lckVsZW1lbnRzVGhhdFN1YmNsYXNzOmdldFBvbHltZXJFbGVtZW50c1RoYXRTdWJjbGFzc307fSk7J3VzZSBzdHJpY3QnOyhmdW5jdGlvbigpe3ZhciBFdmVudFJlZ2lzdHJ5PXRyLm1vZGVsLkV2ZW50UmVnaXN0cnk7UG9seW1lcigndHItdWktYS1hbmFseXNpcy12aWV3Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnRhYlZpZXdfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtdGFiLXZpZXcnKTt0aGlzLnRhYlZpZXdfLnN0eWxlLmZsZXg9JzEgMSBhdXRvJzt0aGlzLmFwcGVuZENoaWxkKHRoaXMudGFiVmlld18pO3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfPXVuZGVmaW5lZDt0aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfPXRoaXMub25TZWxlY3RlZFRhYkNoYW5nZV8uYmluZCh0aGlzKTt0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF89dGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcyk7dGhpcy5sYXN0U2VlblNlbGVjdGlvbl89bmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7fSxzZXQgdGFsbE1vZGUodmFsdWUpe2lmKHZhbHVlKQordGhpcy5jbGFzc0xpc3QuYWRkKCd0YWxsLW1vZGUnKTtlbHNlCit0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ3RhbGwtbW9kZScpO30sZ2V0IHRhbGxNb2RlKCl7cmV0dXJuIHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCd0YWxsLW1vZGUnKTt9LGdldCB0YWJWaWV3KCl7cmV0dXJuIHRoaXMudGFiVmlld187fSxnZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87fSxzZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpe2lmKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpe3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKTt9Cit0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXz1icnVzaGluZ1N0YXRlQ29udHJvbGxlcjtpZih0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyKXt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7fQordGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKCk7fSxnZXQgc2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnNlbGVjdGlvbjt9LG9uU2VsZWN0aW9uQ2hhbmdlZF86ZnVuY3Rpb24oZSl7dmFyIHNlbGVjdGlvbj10aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5zZWxlY3Rpb247dmFyIHNlbGVjdGlvbkhhc1NhbWVWYWx1ZT10aGlzLmxhc3RTZWVuU2VsZWN0aW9uXy5lcXVhbHMoc2VsZWN0aW9uKTt0aGlzLmxhc3RTZWVuU2VsZWN0aW9uXz1zZWxlY3Rpb247aWYoc2VsZWN0aW9uSGFzU2FtZVZhbHVlKQorcmV0dXJuO3ZhciBsYXN0U2VsZWN0ZWRUYWJUYWdOYW1lO3ZhciBsYXN0U2VsZWN0ZWRUYWJUeXBlTmFtZTtpZih0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiKXtsYXN0U2VsZWN0ZWRUYWJUYWdOYW1lPXRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWIudGFnTmFtZTtsYXN0U2VsZWN0ZWRUYWJUeXBlTmFtZT10aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiLl9ldmVudFR5cGVOYW1lO30KK3RoaXMudGFsbE1vZGU9ZmFsc2U7dmFyIHByZXZpb3VzbHlTZWxlY3RlZFRhYj10aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiO3RoaXMudGFiVmlld18ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0ZWQtdGFiLWNoYW5nZScsdGhpcy5vblNlbGVjdGVkVGFiQ2hhbmdlXyk7dmFyIHByZXZpb3VzU3ViVmlld3M9e307Zm9yKHZhciBpPTA7aTx0aGlzLnRhYlZpZXdfLmNoaWxkcmVuLmxlbmd0aDtpKyspe3ZhciBwcmV2aW91c1N1YlZpZXc9dGhpcy50YWJWaWV3Xy5jaGlsZHJlbltpXTtwcmV2aW91c1N1YlZpZXdzW3ByZXZpb3VzU3ViVmlldy5fZXZlbnRUeXBlTmFtZV09cHJldmlvdXNTdWJWaWV3O30KK3RoaXMudGFiVmlld18uc2F2ZVRhYlN0YXRlcygpO3RoaXMudGFiVmlld18udGV4dENvbnRlbnQ9Jyc7aWYoc2VsZWN0aW9uLmxlbmd0aD09MCl7dGhpcy50YWJWaWV3Xy50YWJTdHJpcEhlYWRpbmdUZXh0PSdOb3RoaW5nIHNlbGVjdGVkLiBUYXAgc3R1ZmYuJzt9ZWxzZSBpZihzZWxlY3Rpb24ubGVuZ3RoPT0xKXt0aGlzLnRhYlZpZXdfLnRhYlN0cmlwSGVhZGluZ1RleHQ9JzEgaXRlbSBzZWxlY3RlZDogJzt9ZWxzZXt0aGlzLnRhYlZpZXdfLnRhYlN0cmlwSGVhZGluZ1RleHQ9c2VsZWN0aW9uLmxlbmd0aCsnIGl0ZW1zIHNlbGVjdGVkOiAnO30KK3ZhciBldmVudHNCeUJhc2VUeXBlTmFtZT1zZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZSh0cnVlKTt2YXIgbnVtQmFzZVR5cGVzVG9BbmFseXplPXRyLmIuZGljdGlvbmFyeUxlbmd0aChldmVudHNCeUJhc2VUeXBlTmFtZSk7Zm9yKHZhciBldmVudFR5cGVOYW1lIGluIGV2ZW50c0J5QmFzZVR5cGVOYW1lKXt2YXIgc3ViU2VsZWN0aW9uPWV2ZW50c0J5QmFzZVR5cGVOYW1lW2V2ZW50VHlwZU5hbWVdO3ZhciBzdWJWaWV3PXRoaXMuY3JlYXRlU3ViVmlld0ZvclNlbGVjdGlvbl8oZXZlbnRUeXBlTmFtZSxzdWJTZWxlY3Rpb24scHJldmlvdXNTdWJWaWV3c1tldmVudFR5cGVOYW1lXSk7c3ViVmlldy5fZXZlbnRUeXBlTmFtZT1ldmVudFR5cGVOYW1lO3RoaXMudGFiVmlld18uYXBwZW5kQ2hpbGQoc3ViVmlldyk7c3ViVmlldy5zZWxlY3Rpb249c3ViU2VsZWN0aW9uO30KK3ZhciB0YWI7aWYobGFzdFNlbGVjdGVkVGFiVGFnTmFtZSkKK3RhYj10aGlzLnRhYlZpZXdfLnF1ZXJ5U2VsZWN0b3IobGFzdFNlbGVjdGVkVGFiVGFnTmFtZSk7aWYoIXRhYiYmbGFzdFNlbGVjdGVkVGFiVHlwZU5hbWUpe3ZhciB0YWI9dHIuYi5maW5kRmlyc3RJbkFycmF5KHRoaXMudGFiVmlld18uY2hpbGRyZW4sZnVuY3Rpb24odGFiKXtyZXR1cm4gdGFiLl9ldmVudFR5cGVOYW1lPT09bGFzdFNlbGVjdGVkVGFiVHlwZU5hbWU7fSk7fQoraWYoIXRhYikKK3RhYj10aGlzLnRhYlZpZXdfLmZpcnN0Q2hpbGQ7dGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYj10YWI7dGhpcy5vblNlbGVjdGVkVGFiQ2hhbmdlXygpO3RoaXMudGFiVmlld18uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0ZWQtdGFiLWNoYW5nZScsdGhpcy5vblNlbGVjdGVkVGFiQ2hhbmdlXyk7fSxjcmVhdGVTdWJWaWV3Rm9yU2VsZWN0aW9uXzpmdW5jdGlvbihldmVudFR5cGVOYW1lLHN1YlNlbGVjdGlvbixwcmV2aW91c1N1YlZpZXcpe3ZhciBldmVudFR5cGVJbmZvPUV2ZW50UmVnaXN0cnkuZ2V0RXZlbnRUeXBlSW5mb0J5VHlwZU5hbWUoZXZlbnRUeXBlTmFtZSk7dmFyIHNpbmdsZU1vZGU9c3ViU2VsZWN0aW9uLmxlbmd0aD09MTt2YXIgdGFnTmFtZTtpZihzdWJTZWxlY3Rpb24ubGVuZ3RoPT09MSkKK3RhZ05hbWU9ZXZlbnRUeXBlSW5mby5tZXRhZGF0YS5zaW5nbGVWaWV3RWxlbWVudE5hbWU7ZWxzZQordGFnTmFtZT1ldmVudFR5cGVJbmZvLm1ldGFkYXRhLm11bHRpVmlld0VsZW1lbnROYW1lO2lmKCF0ci51aS5iLmdldFBvbHltZXJFbGVtZW50TmFtZWQodGFnTmFtZSkpCit0aHJvdyBuZXcgRXJyb3IoJ0VsZW1lbnQgbm90IHJlZ2lzdGVyZWQ6ICcrdGFnTmFtZSk7dmFyIHN1YlZpZXc7aWYocHJldmlvdXNTdWJWaWV3JiZwcmV2aW91c1N1YlZpZXcudGFnTmFtZT09PXRhZ05hbWUudG9VcHBlckNhc2UoKSkKK3N1YlZpZXc9cHJldmlvdXNTdWJWaWV3O2Vsc2UKK3N1YlZpZXc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTt2YXIgY2FtZWxMYWJlbDtpZihzdWJTZWxlY3Rpb24ubGVuZ3RoPT09MSkKK2NhbWVsTGFiZWw9RXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlTaW5ndWxhck5hbWUoZXZlbnRUeXBlTmFtZSk7ZWxzZQorY2FtZWxMYWJlbD1FdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVBsdXJhbE5hbWUoZXZlbnRUeXBlTmFtZSk7c3ViVmlldy50YWJMYWJlbD1jYW1lbExhYmVsKycgKCcrc3ViU2VsZWN0aW9uLmxlbmd0aCsnKSc7cmV0dXJuIHN1YlZpZXc7fSxvblNlbGVjdGVkVGFiQ2hhbmdlXzpmdW5jdGlvbigpe3ZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlcj10aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXztpZih0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiKXt2YXIgc2VsZWN0ZWRUYWI9dGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYjt0aGlzLnRhbGxNb2RlPXNlbGVjdGVkVGFiLnJlcXVpcmVzVGFsbFZpZXc7aWYoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpe3ZhciBybHRoPXNlbGVjdGVkVGFiLnJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodDticnVzaGluZ1N0YXRlQ29udHJvbGxlci5jaGFuZ2VBbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKHJsdGgpO319ZWxzZXt0aGlzLnRhbGxNb2RlPWZhbHNlO2lmKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKQorYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuY2hhbmdlQW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50cyh1bmRlZmluZWQpO319fSk7fSkoKTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7dmFyIERyYWdIYW5kbGU9dHIudWkuYi5kZWZpbmUoJ3gtZHJhZy1oYW5kbGUnKTtEcmFnSGFuZGxlLnByb3RvdHlwZT17X19wcm90b19fOkhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbigpe3RoaXMubGFzdE1vdXNlUG9zXz0wO3RoaXMub25Nb3VzZU1vdmVfPXRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7dGhpcy5vbk1vdXNlVXBfPXRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0aGlzLm9uTW91c2VEb3duXyk7dGhpcy50YXJnZXRfPXVuZGVmaW5lZDt0aGlzLmhvcml6b250YWw9dHJ1ZTt0aGlzLm9ic2VydmVyXz1uZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcih0aGlzLmRpZFRhcmdldE11dGF0ZV8uYmluZCh0aGlzKSk7dGhpcy50YXJnZXRTaXplc0J5TW9kZUtleV89e307fSxnZXQgbW9kZUtleV8oKXtyZXR1cm4gdGhpcy50YXJnZXRfLmNsYXNzTmFtZT09Jyc/Jy4nOnRoaXMudGFyZ2V0Xy5jbGFzc05hbWU7fSxnZXQgdGFyZ2V0KCl7cmV0dXJuIHRoaXMudGFyZ2V0Xzt9LHNldCB0YXJnZXQodGFyZ2V0KXt0aGlzLm9ic2VydmVyXy5kaXNjb25uZWN0KCk7dGhpcy50YXJnZXRfPXRhcmdldDtpZighdGhpcy50YXJnZXRfKQorcmV0dXJuO3RoaXMub2JzZXJ2ZXJfLm9ic2VydmUodGhpcy50YXJnZXRfLHthdHRyaWJ1dGVzOnRydWUsYXR0cmlidXRlRmlsdGVyOlsnY2xhc3MnXX0pO30sZ2V0IGhvcml6b250YWwoKXtyZXR1cm4gdGhpcy5ob3Jpem9udGFsXzt9LHNldCBob3Jpem9udGFsKGgpe3RoaXMuaG9yaXpvbnRhbF89aDtpZih0aGlzLmhvcml6b250YWxfKQordGhpcy5jbGFzc05hbWU9J2hvcml6b250YWwtZHJhZy1oYW5kbGUnO2Vsc2UKK3RoaXMuY2xhc3NOYW1lPSd2ZXJ0aWNhbC1kcmFnLWhhbmRsZSc7fSxnZXQgdmVydGljYWwoKXtyZXR1cm4hdGhpcy5ob3Jpem9udGFsXzt9LHNldCB2ZXJ0aWNhbCh2KXt0aGlzLmhvcml6b250YWw9IXY7fSxmb3JjZU11dGF0aW9uT2JzZXJ2ZXJGbHVzaF86ZnVuY3Rpb24oKXt2YXIgcmVjb3Jkcz10aGlzLm9ic2VydmVyXy50YWtlUmVjb3JkcygpO2lmKHJlY29yZHMubGVuZ3RoKQordGhpcy5kaWRUYXJnZXRNdXRhdGVfKHJlY29yZHMpO30sZGlkVGFyZ2V0TXV0YXRlXzpmdW5jdGlvbihlKXt2YXIgbW9kZVNpemU9dGhpcy50YXJnZXRTaXplc0J5TW9kZUtleV9bdGhpcy5tb2RlS2V5X107aWYobW9kZVNpemUhPT11bmRlZmluZWQpe3RoaXMuc2V0VGFyZ2V0U2l6ZV8obW9kZVNpemUpO3JldHVybjt9Cit0aGlzLnRhcmdldF8uc3R5bGVbdGhpcy50YXJnZXRTdHlsZUtleV9dPScnO30sZ2V0IHRhcmdldFN0eWxlS2V5Xygpe3JldHVybiB0aGlzLmhvcml6b250YWxfPydoZWlnaHQnOid3aWR0aCc7fSxnZXRUYXJnZXRTaXplXzpmdW5jdGlvbigpe3ZhciB0YXJnZXRTdHlsZUtleT10aGlzLnRhcmdldFN0eWxlS2V5XztpZighdGhpcy50YXJnZXRfLnN0eWxlW3RhcmdldFN0eWxlS2V5XSl7dGhpcy50YXJnZXRfLnN0eWxlW3RhcmdldFN0eWxlS2V5XT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnRhcmdldF8pW3RhcmdldFN0eWxlS2V5XTt9Cit2YXIgc2l6ZT1wYXJzZUludCh0aGlzLnRhcmdldF8uc3R5bGVbdGFyZ2V0U3R5bGVLZXldKTt0aGlzLnRhcmdldFNpemVzQnlNb2RlS2V5X1t0aGlzLm1vZGVLZXlfXT1zaXplO3JldHVybiBzaXplO30sc2V0VGFyZ2V0U2l6ZV86ZnVuY3Rpb24ocyl7dGhpcy50YXJnZXRfLnN0eWxlW3RoaXMudGFyZ2V0U3R5bGVLZXlfXT1zKydweCc7dGhpcy50YXJnZXRTaXplc0J5TW9kZUtleV9bdGhpcy5tb2RlS2V5X109czt9LGFwcGx5RGVsdGFfOmZ1bmN0aW9uKGRlbHRhKXt2YXIgY3VyU2l6ZT10aGlzLmdldFRhcmdldFNpemVfKCk7dmFyIG5ld1NpemU7aWYodGhpcy50YXJnZXRfPT09dGhpcy5uZXh0RWxlbWVudFNpYmxpbmcpe25ld1NpemU9Y3VyU2l6ZStkZWx0YTt9ZWxzZXtuZXdTaXplPWN1clNpemUtZGVsdGE7fQordGhpcy5zZXRUYXJnZXRTaXplXyhuZXdTaXplKTt9LG9uTW91c2VNb3ZlXzpmdW5jdGlvbihlKXt2YXIgY3VyTW91c2VQb3M9dGhpcy5ob3Jpem9udGFsXz9lLmNsaWVudFk6ZS5jbGllbnRYO3ZhciBkZWx0YT10aGlzLmxhc3RNb3VzZVBvc18tY3VyTW91c2VQb3M7dGhpcy5hcHBseURlbHRhXyhkZWx0YSk7dGhpcy5sYXN0TW91c2VQb3NfPWN1ck1vdXNlUG9zO2UucHJldmVudERlZmF1bHQoKTtyZXR1cm4gdHJ1ZTt9LG9uTW91c2VEb3duXzpmdW5jdGlvbihlKXtpZighdGhpcy50YXJnZXRfKQorcmV0dXJuO3RoaXMuZm9yY2VNdXRhdGlvbk9ic2VydmVyRmx1c2hfKCk7dGhpcy5sYXN0TW91c2VQb3NfPXRoaXMuaG9yaXpvbnRhbF8/ZS5jbGllbnRZOmUuY2xpZW50WDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLHRoaXMub25Nb3VzZU1vdmVfKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJyx0aGlzLm9uTW91c2VVcF8pO2UucHJldmVudERlZmF1bHQoKTtyZXR1cm4gdHJ1ZTt9LG9uTW91c2VVcF86ZnVuY3Rpb24oZSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyx0aGlzLm9uTW91c2VNb3ZlXyk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsdGhpcy5vbk1vdXNlVXBfKTtlLnByZXZlbnREZWZhdWx0KCk7fX07cmV0dXJue0RyYWdIYW5kbGU6RHJhZ0hhbmRsZX07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWItZHJvcGRvd24nLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuJC5vdXRlci50YWJJbmRleD0wO30sZ2V0IGljb25FbGVtZW50KCl7cmV0dXJuIHRoaXMuJC5pY29uO30sb25PdXRlcktleURvd25fOmZ1bmN0aW9uKGUpe2lmKGUua2V5Q29kZT09PScgJy5jaGFyQ29kZUF0KDApKXt0aGlzLnRvZ2dsZV8oKTtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt9fSxvbk91dGVyQ2xpY2tfOmZ1bmN0aW9uKGUpe3ZhciBvcj10aGlzLiQub3V0ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGluc2lkZT10cnVlO2luc2lkZSY9ZS5jbGllbnRYPj1vci5sZWZ0O2luc2lkZSY9ZS5jbGllbnRYPG9yLnJpZ2h0O2luc2lkZSY9ZS5jbGllbnRZPj1vci50b3A7aW5zaWRlJj1lLmNsaWVudFk8b3IuYm90dG9tO2lmKCFpbnNpZGUpCityZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO3RoaXMudG9nZ2xlXygpO30sdG9nZ2xlXzpmdW5jdGlvbigpe2lmKCF0aGlzLmlzT3BlbikKK3RoaXMuc2hvdygpO2Vsc2UKK3RoaXMuY2xvc2UoKTt9LHNob3c6ZnVuY3Rpb24oKXtpZih0aGlzLmlzT3BlbikKK3JldHVybjt0aGlzLiQub3V0ZXIuY2xhc3NMaXN0LmFkZCgnb3BlbicpO3ZhciBkZHI9dGhpcy4kLm91dGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciByVz1NYXRoLm1heChkZHIud2lkdGgsMTUwKTt0aGlzLiQuZGlhbG9nLnN0eWxlLm1pbldpZHRoPXJXKydweCc7dGhpcy4kLmRpYWxvZy5zaG93TW9kYWwoKTt2YXIgZGR3PXRoaXMuJC5vdXRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDt2YXIgdz10aGlzLiQuZGlhbG9nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO3RoaXMuJC5kaWFsb2cuc3R5bGUudG9wPWRkci5ib3R0b20tMSsncHgnO3RoaXMuJC5kaWFsb2cuc3R5bGUubGVmdD1kZHIubGVmdCsncHgnO30sb25EaWFsb2dDbGlja186ZnVuY3Rpb24oZSl7aWYoIXRoaXMuaXNPcGVuKQorcmV0dXJuO2lmKGUuc3JjRWxlbWVudCE9PXRoaXMuJC5kaWFsb2cpCityZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO3RoaXMuY2xvc2UoKTt9LG9uRGlhbG9nQ2FuY2VsXzpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dGhpcy5jbG9zZSgpO30sY2xvc2U6ZnVuY3Rpb24oKXtpZighdGhpcy5pc09wZW4pCityZXR1cm47dGhpcy4kLmRpYWxvZy5jbG9zZSgpO3RoaXMuJC5vdXRlci5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7dGhpcy4kLm91dGVyLmZvY3VzKCk7fSxnZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuJC5kaWFsb2cuaGFzQXR0cmlidXRlKCdvcGVuJyk7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYicsZnVuY3Rpb24oKXt2YXIgRmF2aWNvbnNCeUh1ZT17Ymx1ZTonZGF0YTppbWFnZS92bmRtaWNyb3NvZnRpY29uO2Jhc2U2NCxBQUFCQUFJQUVCQUFBQUVBSUFCb0JBQUFKZ0FBQUNBZ0FBQUJBQ0FBcUJBQUFJNEVBQUFvQUFBQUVBQUFBQ0FBQUFBQkFDQUFBQUFBQUFBRUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFqajh4QUdBcklncU9QekU4blVZM2RxSkpPSmVpU1RpWG5VWTNkbzQvTVR4aEt5SUtqa0F4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRSkJ3QUFBQUFBWkpCTXpTb1N6cWxzVTgrNmJSUVAvMjFVVC8vdFZFLy83UlFQLzJ3VHozcHBrbzZwWTlBTWpRQUFBQUJUeU1iQUFBQUFBQjdlM3NBQVAvL0FLRlNSRSt3VHozZHRWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvK3pVRDcvc0U4OS83Qk9QZitxVER2ZGwwTTBUd0FBQUFCV0p4NEErZm41QU5qZDNUbklpWDdmdFZBOS83VlJQLysxVVQvL3RWRS8vN1ZSUC8reFR6My9yRTA4LzZ4TU8vK3NURHYvckUwOC82ZEtPdCtTUVRNNXEwdzdBTE8wdEEzdjhmR3UwNXVSLzdOTU9mKzBUenovdEU4OC83UlBQdit1VFQzL3AwbzcvNlpKT3YrbVNUci9wa2s2LzZaSk92K21TanIvbjBZNHJuSXdLZzNoNGVGSzkvajQ4TjJ6clAvRmVHci94bnBzLzhaNmJQL0FhVXYvdGx3MS83UmJOZisxV3pYL3RGczEvN1JiTmYrMFd6WC90RnMxLzdOYk5QQ3FXeTFLN2UzdGpQbjUrZi80OXZYLzl2THkvL2J5OHYvMjh2SC84Ylp2Lys2UkgvL3VreVAvN3BNai8rNlNJLy91a2lQLzdwTWovKzJTSXYvcWp5TC8zNGtmalBIeDhiTDUrZm4vK2ZuNS8vbjUrZi81K2ZyLytmbjUvL1c3Y1AvemxCMy84NVloLy9PV0lmL3psaUgvODVZaC8vR1ZJZi9ya1IvLzZaQWYvK0tMSHJMejgvTzIrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi8xdW5ELzg1UWQvL09XSWYvemxpSC84NVloLy9DVUlQL21qaC8vNDR3ZS8rT01Idi9kaVI2Mjh2THltZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vOWJ4MC8vT1hJLy96bUNiLzg1Z20vKytWSXYvaGpCLy8zWW9lLzkyS0h2L2RpaDcvMklZZG1mSHg4Vno0K1BqMytmbjUvL241K2YvNStmbi8rZm41Ly9qbzAvLzMzYnYvOTkyOS8vYmJ0Zi9ldURYLzA2b0ovOU9yQy8vVHF3di8wNm9NOTh5ZkQxenI2K3NZOS9mM3h2bjUrZi81K2ZuLytmbjUvL241K2YvNSt2di8rZnY4Ly9uNy9mLzMrUEgvM01zNi85TzhBUC9VdlFELzFMMEEvOUs4QU1iSXRBQVkvLy8vQVBUMDlGYjQrUGp5K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmci85L2J1Lzl6S09mL1R1d0QvMUx3QS85UzhBUExRdUFCVzNjUUFBT3pzN0FEbTV1WUY5dmIyZVBuNStmVDUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjYvL2YyN3YvY3lUbi8wN3NBLzlTOEFQVFJ1Z0I0dzYwQUJjbXlBQUFBQUFBQThQRHdBT3pzN0FiMjl2WmQrUGo0MHZuNStmejUrZm4vK2ZuNS8vbjUrZi80OS9ILzVOZHUvTmpFSWRMU3VnQmR5YklBQnN5MUFBQUFBQUFBQUFBQUFBQUFBQURuNStjQXFLaW9BUFQwOUNIMzkvZHkrUGo0dHZqNCtOWDQrUGpWK1BqNHR2WDA2M0x0Nk1NaE9RQUFBTSsvUkFBQUFBQUFBQUFBQVBBUEFBREFBd0FBd0FNQUFJQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUJBQUNBQVFBQXdBTUFBUEFQQUFBb0FBQUFJQUFBQUVBQUFBQUJBQ0FBQUFBQUFBQVFBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQ3dVRUREZ1pFeHhXSng0dFlpd2lOMklzSWpkV0p4NHRPQmtUSEFzRkJBd0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vd0FiREFrS1pTMGpNWXMrTVd5ZFJqZWlwa282eDZ0TU85dXRUVHpqclUwODQ2dE1POXVtU2pySG5VWTNvb3MrTVd4bExTTXhHd3dKQ3YvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdaRkFBUEJ3VUhjak1vUEp0Rk5wcXNUVHpoczFBKy9MVlJQLysyVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdaUlAvKzFVVC8vczFBKy9LeE5QT0diUlRhYWNUSW5QQThIQlFjNEdSTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC95cDRBVUNRY0daVkROSUN0VGp6a3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMFVULy9zMUErLzdKUVB2K3JURHZra2tFemdFOGpHeG4veFpvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQS8vLy9BR3N3SlNxaVNUaXZzMUErKzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdEZBKy83RlBQZit4VHozL3NVODkvN0ZQUGYrdlRqMzdua2MzcjJndUpDci8vLzhBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd01EQVAvRG9nQi9WRXdzcUUwOXY3VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN05RUHYrdlRqMy9yMDQ5LzY5T1BmK3ZUajMvcjA0OS82OU9QZit1VGp6L29VZzR2MjB4Sml6L25uc0FBZ0VCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQxOWZVQWtwMmZIZEsyc2JXNVcwci90VkErLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvK3lVRDcvclUwOC82eE5QUCt0VFR6L3JVMDgvNjFOUFArdFRUei9yVTA4LzYxTlBQK3NUVHovbmtZM3RXQXFJUjJwU3pzQUFBQUFBQUFBQUFBQUFBQUFlWGw1QURZMk5nbmQzOStPNnRiVC9ibGJTdisxVUQ3L3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3NsQSsvNnhOUFArclREdi9xMHc3LzZ0TU8vK3JURHYvcTB3Ny82dE1PLytyVER2L3EwdzcvNnRNTy8rcVREdjlsa00wamlVUURRbFNKUjBBQUFBQUFBQUFBQUQvLy84QXhNVEVTL1gyOXUzczJOWC91VnRLLzdWUVB2KzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdGUFB2K3FURHYvcUVzNi82aExPditvU3pyL3FFczYvNmhMT3Yrb1N6ci9xRXM2LzZoTE92K29TenIvcUVzNi82bExPditsU1RudGhEc3VTLytUY2dBQUFBQUFtNXViQUhCd2NBL282T2l4K3Z2OC8relkxUCs1VzByL3RWQSsvN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLyt4VHozL3FFczYvNlpLT3YrbVNqci9wa282LzZaS092K21TanIvcGtvNi82WktPdittU2pyL3BrbzYvNlpLT3YrbVNqci9wa282LzZaS092K2JSVGF4U2lFYUQyY3VKQUQvLy84QXljbkpSZlgxOWZENisvei82OWZVLzdoWVIvKzBUanYvdEU0OC83Uk9QUCswVGp6L3RFNDgvN1JPUFArMFR6My9yMDQrLzZWSk92K2pTRG4vbzBnNS82TklPZitqU0RuL28wZzUvNk5JT2YralNEbi9vMGc1LzZOSU9mK2pTRHIvbzBnNS82TklPZitqU0RuL28wZzYvNkJIT2ZDQ09TOUYwRnhLQUFBQUFBTGs1T1NOK2ZuNS8vbjYrdi95NStYLzA1dVMvOUNUaVAvUWxJbi8wSlNKLzlDVWlmL1FsSW4vMEpTSy84eUdiLy9BYURiL3ZXYzAvNzFuTmYrOVp6VC92V2MwLzcxbk5QKzlaalQvdldZMC83MW1OUCs5WmpUL3ZHWTAvN3htTlArOFpqVC92R1kwLzd4bU5QKzhaalQvdTJVMC83RmlMWTBBQUFBQ2s1T1RGdS92NzhYNStmbi8rZm41Ly9uNStmLzUrdnIvK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNSsvMy85OWl5Ly9LV0kvL3lsU0gvOFpVaC8vR1ZJZi94bFNILzhaVWgvL0dWSWYveGxTSC84WlVoLy9HVklmL3hsU0gvOFpVaC8vR1ZJZi94bFNILzhaVWgvL0NVSWYvdmt5RC81WTBmeFkxWEV4YkR3OE16OVBUMDVmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjcvZi8zMkxMLzg1Y2ovL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3dsQ0QvN3BJZy8rNlNJUC9wangvbHVuSVpNOVhWMVZEMzkvZjArZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZnY5Ly9mWXN2L3pseVAvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzc1TWcvK3VSSC8vcWtCLy82cEFmLytpUEgvVElmQnRRM2QzZFlmajQrUG41K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81Ky8zLzk5aXkvL09YSS8vemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLys2VElQL29qeC8vNTQ4Zi8rZVBILy9uangvLzVvNGYrYzEvSEdIaDRlRmwrUGo0K3ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNy9mLzMyTEwvODVjai8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi90a2lELzVZMGYvK1NOSC8vbGpSLy81WTBmLytXTkgvL2tqQi82em44Y1plRGc0RnI0K1BqMytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmdjkvL2ZZc3Yvemx5UC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC82NUVnLytLTUh2L2lpeDcvNG9zZS8rS0xIdi9paXg3LzRvc2UvK0NMSHZmTGZSdGEzTnpjUXZmMzkrLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrLzMvOTlpeS8vT1hJLy96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8rcVJJUC9naWg3LzM0b2UvOStLSHYvZmloNy8zNG9lLzkrS0h2L2ZpaDcvM1lnZTc4VjZHa0xTMHRJajlmWDEyZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL243L2YvMzJMSC84NVlnLy9PVkh2L3psUjcvODVVZS8vT1ZIdi96bFI3Lzg1VWUvL09WSWYvcGp5SC8zb2dmLzkySEgvL2RoeC8vM1ljZi85MkhILy9kaHgvLzNZY2YvOTJISC8vYWhoN1p1bk1aSTU2ZW5nank4dkt1K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZyNy8vanIyZi8yeXBMLzlzbVAvL2JKa1AvMnlaRC85c21RLy9iSmtQLzJ5WkQvNXJOSS85T2VGUC9TbmhYLzBwNFYvOUtlRmYvU25oWC8wWjBWLzlHZEZmL1JuUlgvMFowVi84eVdGcTZLVkJjSS8vLy9BTzN0N1dyNStmbisrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm42Ly9uNi9QLzUrdnovK2ZyOC8vbjYvUC81K3Z6LytmcjgvL242L1AvaDAxMy8wcnNBLzlPOEFQL1R2QUQvMDd3QS85TzhBUC9UdkFELzA3d0EvOU84QVAvU3ZBRCt5TE1BYXYvbUFBRHI2K3NBNGVIaEpQYjI5dHY1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8rTFNXLy9UdXdELzFMd0EvOVM4QVAvVXZBRC8xTHdBLzlTOEFQL1V2QUQvMUx3QS85SzZBTnUvcWdBa3lMRUFBTHU3dXdBQUFBQUE4dkx5Z2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi80dEpiLzlPN0FQL1V2QUQvMUx3QS85UzhBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC96cllBZ1FBQUFBQ2ZqUUFBQUFBQUFPenM3QURrNU9RZTl2YjJ6UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi9pMGx2LzA3c0EvOVM4QVAvVXZBRC8xTHdBLzlTOEFQL1V2QUQvMUx3QS85SzZBTXpDckFBZXliSUFBQUFBQUFBQUFBQUFzTEN3QVAvLy93RHY3KzlPK1BqNDdQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LytMU1cvL1R1d0QvMUx3QS85UzhBUC9VdkFELzFMd0EvOVM4QVAvVHV3RHN5N1FBVHU3VUFBQ1hoUUFBQUFBQUFBQUFBQUFBQUFBQTF0YldBTFMwdEFQeTh2SnYrUGo0OVBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLzR0SmIvOU83QVAvVXZBRC8xTHdBLzlTOEFQL1V2QUQvMDd3QTlNNjNBRzZaaVFBRHRxSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNHVMaUFOZlgxd2J6OC9OeitQajQ4UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmL2kwbHYvMDdzQS85UzhBUC9VdkFELzFMd0EvOU84QVBEUHVBQnp1S01BQnNHckFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0K1BqQU5qWTJBVHk4dkpaK1BqNDJ2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvK0hTVy8vVHVnRC8xTHNBLzlTOEFQL1R1d0RhenJjQVdiZWpBQVRCcXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTFOVFVBQjhmSHdEdzhQQXI5dmIyblBqNCtPMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vN3Vhcy8rYlpkdi9qMW12dDJjWXpuTXUwQUNzVUZBQUF0YUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPdnI2d0RqNCtNRzh2THlPdmIyOXBENCtQalMrZm41OHZuNStmMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvZm41K2ZMNCtmclM5L2o4a1BUMS9UcnM4djhHOFBQL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGg0ZUVBMXRiV0F1L3Y3eHYwOVBSSjl2YjJkdmIyOXBmMzkvZW85L2YzcVBiMjlwZjI5dloyOVBUMFNlL3Y3eHZXMXRZQzRlSGhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9nQi8vL2dBSC8vZ0FBZi93QUFELzRBQUFmOEFBQUQrQUFBQWZBQUFBRHdBQUFBNEFBQUFHQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBR0FBQUFCd0FBQUE4QUFBQVBnQUFBSDRBQUFCL0FBQUEvNEFBQWYvZ0FBZi84QUFQLy93QVAvJyxncmVlbjonZGF0YTppbWFnZS92bmRtaWNyb3NvZnRpY29uO2Jhc2U2NCxBQUFCQUFJQUVCQUFBQUVBSUFCb0JBQUFKZ0FBQUNBZ0FBQUJBQ0FBcUJBQUFJNEVBQUFvQUFBQUVBQUFBQ0FBQUFBQkFDQUFBQUFBQUFBRUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFiV0pMQUVwQ013cHRZa3M4ZVd4VGRuMXdWcGQ5Y0ZhWGVXeFRkbTFpU3p4S1F6TUtiV0pMQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUErT0NzQUFBQUFBWEJsVFRTQmRGbWxpSHBlNllwOFgvMkxmV0QvaTMxZy80cDhYLzJIZVYzcGYzTllwVzVqVERRQUFBQUJQVGNxQUFBQUFBQjdlM3NBbHYvL0FJQjFYaytIZVYzZGkzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0plMS8vaDNwZC80ZDVYZitEZFZyZGRHaFFUd0FBQUFCRFBDNEErZm41QU5yYjNEbXVwWlBmaW54Zi80dDlZUCtMZldEL2kzMWcvNHQ5WVArSWVsNy9oSGRiLzRSMlcvK0VkbHYvaEhkYi80QnpXTjl3WlUwNWczWmFBTFMwdEEzdzhQR3V1N1NqLzRoNVcvK0plMTcvaVh0ZS80dDhYLytIZUZ6L2duTlkvNEZ5V1ArQmNsai9nWEpZLzRGeVdQK0JjbGovZkcxVXJsOU5QQTNoNGVGSzkvajQ4TXZGdWYra21vUC9wcHVGLzZhYmhmK0prSEwvYzRSai8zT0VZLzl6aEdQL2NvTmovM0tEWS85eWcyUC9jb05qLzNDRFl2QmdmMTlLN2UzdGpQbjUrZi8zOXZiLzlmVHovL1gwOC8vMDlQUC9pdEt3LzBtK2gvOU12NG4vVEwrSi8weS9pZjlNdjRuL1RMK0ovMHkraVA5THU0Yi9SckovalBIeDhiTDUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvNHJYdFA5SHdvbi9Tc09MLzByRGkvOUt3NHYvU3NPTC8wbkNpdjlIdlliL1JydUYvMFMxZ2JMejgvTzIrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZitLMTdQL1I4S0ovMHJEaS85S3c0di9Tc09MLzBuQmlmOUd1WVQvUmJhQy8wVzJndjlEc24rMjh2THltZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vamRpMS8wdkRqUDlPeEk3L1RzU08vMHJBaXY5RnRvUC9STEtBLzBTeWdQOUVzb0QvUXE1OW1mSHg4Vno0K1BqMytmbjUvL241K2YvNStmbi8rZm41LzlydzV2L0g2dG4veU9yYS84THAyZjllMWI3L084eXovejNNdFA4OXpMVC9QY3V5OXp6QXBWenI2K3NZOS9mM3h2bjUrZi81K2ZuLytmbjUvL241K2YvNyt2ci8vUHI3Ly96NisvL3orZm4vWnVQWS96YmN6djg1M2M3L09kM08vempiemNZMTBzWVkvLy8vQVBUMDlGYjQrUGp5K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNitmbi84UGozLzJYajEvODIzTXovT2R6Ti96bmN6Zkk0Mk1sV08rWFdBT3pzN0FEbTV1WUY5dmIyZVBuNStmVDUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2bjUvL0Q0OS85ajR0Zi9OZHZNL3puY3pmUTQyY3Q0TmN1OUJUYlJ3Z0FBQUFBQThQRHdBT3pzN0FiMjl2WmQrUGo0MHZuNStmejUrZm4vK2ZuNS8vbjUrZi96K1BqL2p1bmcvRkxmMHRJNDJjdGROZEhDQmpmVXhnQUFBQUFBQUFBQUFBQUFBQURuNStjQXFLaW9BUFQwOUNIMzkvZHkrUGo0dHZqNCtOWDQrUGpWK1BqNHR1MzI5WExPNyt3aEFGUW1BR3JVeWdBQUFBQUFBQUFBQVBBUEFBREFBd0FBd0FNQUFJQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUJBQUNBQVFBQXdBTUFBUEFQQUFBb0FBQUFJQUFBQUVBQUFBQUJBQ0FBQUFBQUFBQVFBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQ1FnR0RDc21IUnhDT3k0dFMwTTBOMHRETkRkQ095NHRLeVlkSEFrSUJnd0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vd0FWRWc0S1RVVTFNV3RnU214NWJWT2lnSE5ZeDROMlc5dUZkMXpqaFhkYzQ0TjJXOXVBYzFqSGVXMVRvbXRnU214TlJqVXhGUk1PQ3YvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ3NuSGdBTENnZ0hXRTg4UEhkclVwcUVkMXZoaVh4Zi9JdDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaVh4Zi9JUjNXK0YzYTFLYVYwNDhQQXNLQ0Fjckp4NEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vL0FBUGpjcUdYSm5UNENGZUZ6a2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArS2ZXRC9pWHhmLzRsN1h2K0RkbHJrY0dWTmdEdzJLaG4vLytzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy9BRkpLT1NwOWNGYXZpbnhmKzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaW54Zi80aDZYditJZWwzL2lIcGQvNGg2WHYrR2VWMzdlVzFVcjFCSU55ci8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd01EQVAvLzNnQnNaMW9zZ25WYnY0dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNGw4WC8rSGVWMy9obmxjLzRaNVhQK0dlVnovaG5sYy80WjVYUCtHZUZ6L2ZHOVZ2MVJMT2l6LzlMb0FBZ0lCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQxOWZVQWw1aWJIY2JDdXJXU2hHbi9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0plMS8vaFhoYy80UjNXLytGZDF2L2hYZGIvNFYzVy8rRmQxdi9oWGRiLzRWM1cvK0VkMXYvZVcxVHRVbENNaDJDZFZrQUFBQUFBQUFBQUFBQUFBQUFlWGw1QURZMk5nbmUzdCtPNHQvWi9aS0ZhZitMZlYvL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2lYdGUvNFIzVy8rRGRsci9nM1phLzROMld2K0RkbHIvZzNaYS80TjJXditEZGxyL2czWmEvNE4yV3YrQ2RWcjljMmRQamh3WkV3ay9PU3NBQUFBQUFBQUFBQUQvLy84QXhNVEVTL1gxOXUzazRkdi9rb1JwLzR0OVgvK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzRoNlh2K0NkVnIvZ1hSWi80RjBXZitCZEZuL2dYUlovNEYwV2YrQmRGbi9nWFJaLzRGMFdmK0JkRm4vZ1hSWi80RjBXZjkrY2xmdFpWdEdTLzNqcmdBQUFBQUFtNXViQUhCd2NBL282T2l4Ky92Ny8rUGcyLytTaEduL2kzMWYvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtJZWw3L2dYUlovNEJ6V1ArQWMxai9nSE5ZLzRCeldQK0FjMWovZ0hOWS80QnpXUCtBYzFqL2dITlkvNEJ6V1ArQWMxai9nSE5ZLzRCeldQOTNhMUt4T1RNbkQxQkhOd0QvLy84QXljbkpSZlgxOWZENysvdi80K0RhLzVDQ1ovK0plbDMvaVh0ZC80bDdYZitKZTEzL2lYdGQvNGw3WGYrS2UxNy9pSGhkLzRCeFYvOS9jRmIvZjNCVy8zOXdWdjkvY0ZiL2YzQlcvMzl3VnY5L2NGYi9mM0JXLzM5d1Z2OS9jRmIvZjNCVy8zOXdWdjkvY0ZiL2YzQlcvMzF1VlBCbldVUkZvNDV0QUFBQUFBTGs1T1NOK2ZuNS8vcjYrdi90N09qL3ZMU2svN2F1blArM3JwMy90NjZkLzdldW5mKzNycDMvdUsrZS82R21qdjl2a0czL2JJNXIvMnlPYS85c2ptdi9iSTVyLzJ5T2EvOXNqbXYvYkk1ci8yeU9hLzlzam1yL2JJMXEvMnlOYXY5c2pXci9iSTFxLzJ1TmF2OXJqV3IvYTQxcS8xNkdaSTBBQUFBQ2s1T1RGdS92NzhYNStmbi8rZm41Ly9uNStmLzUrZnIvK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOCt2di93T2ZWLzB2Q2kvOUt3b3IvU3NLSy8wckNpdjlLd29yL1NzS0svMHJDaXY5S3dvci9Tc0tLLzByQ2l2OUt3b3IvU3NLSy8wckNpdjlLd29yL1NzS0svMG5BaWY5SnY0ai9ScmVDeFN0eFVCYkR3OE16OVBUMDVmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejYrLysvNTlYL1RNU00vMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUp3WW4vU0w2SS8waStpUDlHdW9YbE9KVnFNOVhWMVZEMzkvZjArZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vUHI3LzcvbjFmOU13NHovU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NjQ0ovMGU4aHY5SHZJYi9SN3lHLzBhNmhmUTlvWEpRM2QzZFlmajQrUG41K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi84K3Z2L3YrZlYvMHpEalA5S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzBpL2lQOUd1b1gvUnJxRS8wYTZoUDlHdW9UL1JybUQrVDZsZFdIaDRlRmwrUGo0K3ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96NisvKy81OVgvVE1PTS8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlJdm9mL1JiaUQvMFczZ3Y5RnVJUC9SYmlELzBXNGcvOUZ0NEw2UHFaMlplRGc0RnI0K1BqMytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QcjcvNy9uMWY5TXc0ei9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9TTDJILzBXMmd2OUZ0WUgvUmJXQi8wVzFnZjlGdFlIL1JiV0IvMFMwZ1BjK28zUmEzTnpjUXZmMzkrLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzgrdnYvditmVi8wekRqUDlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wZThodjlFdElEL1JMT0EvMFN6Z1A5RXM0RC9STE9BLzBTemdQOUVzNEQvUTdGLzd6eWVjVUxTMHRJajlmWDEyZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o2Ky8rLzU5WC9Tc09MLzBqQ2l2OUl3b3IvU01LSy8wakNpdjlJd29yL1NNS0svMHJDaXY5SHVvVC9STEYrLzBPd2ZmOUVzSDMvUkxCOS8wU3dmZjlFc0gzL1JMQjkvMFN3ZmY5Q3JuelpPSlpySTU2ZW5nank4dkt1K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK3ZuNi85L3g2ZitsMzhYL285L0QvNlRmdy8razM4UC9wTi9ELzZUZncvK2szOFQvYTlLei8wREJvZjlCd0tIL1FjQ2gvMEhBb2Y5QndLRC9RY0NnLzBHL29QOUJ2NkQvUWIrZy8wQzRtSzR0YlU0SS8vLy9BTzN0N1dyNStmbisrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rdm42Ly92NisvLzcrdnYvKy9yNy8vdjYrLy83K3Z2Ly9QcjcvL3Y2Ky8rQjU5Ny9OZHZOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1M00zL09kek4vem5jemY4NTI4MytOdEhEYWtiLytnRHI2K3NBNGVIaEpQYjI5dHY1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8zL24zZjgyM016L09kek4vem5jemY4NTNNMy9PZHpOL3puY3pmODUzTTMvT2R6Ti96amF5OXMweDdra05zL0JBTHU3dXdBQUFBQUE4dkx5Z2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9mK2ZkL3piYnpQODUzTTMvT2R6Ti96bmN6Zjg1M00zL09kek4vem5jemY4NTNNMy9OOVhIZ1FBQUFBQXNwWm9BQUFBQUFPenM3QURrNU9RZTl2YjJ6UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZjkvNTkzL050dk0vem5jemY4NTNNMy9PZHpOL3puY3pmODUzTTMvT2R6Ti96amF5OHcweXJ3ZU50RENBQUFBQUFBQUFBQUFzTEN3QVAvLy93RHY3KzlPK1BqNDdQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzMvbjNmODIyOHovT2R6Ti96bmN6Zjg1M00zL09kek4vem5jemY4NTI4enNOOVBFVGtENDVnQW9uSkVBQUFBQUFBQUFBQUFBQUFBQTF0YldBTFMwdEFQeTh2SnYrUGo0OVBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2YrZmQvemJielA4NTNNMy9PZHpOL3puY3pmODUzTTMvT2R2TTlEald4MjRxb0pVRE1iMndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNHVMaUFOZlgxd2J6OC9OeitQajQ4UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmOS81OTMvTnR2TS96bmN6Zjg1M00zL09kek4vem5ielBBNDE4aHpNcjZ4QmpUSXVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0K1BqQU5qWTJBVHk4dkpaK1BqNDJ2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMzdtM2Y4ejI4ei9OOXpOL3puY3pmODUyOHphT05iSVdUSy9zZ1EweUxzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTFOVFVBQjhmSHdEdzhQQXI5dmIyblBqNCtPMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vdmZEci81VHE0ditMNk9EdFlPRFVuRFRUeFNzQUdCc0FNcnl3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPdnI2d0RqNCtNRzh2THlPdmIyOXBENCtQalMrZm41OHZuNStmMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvZm41K2ZMNitQalMrdmYza1B2MDlUci82dTRHLysvd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGg0ZUVBMXRiV0F1L3Y3eHYwOVBSSjl2YjJkdmIyOXBmMzkvZW85L2YzcVBiMjlwZjI5dloyOVBUMFNlL3Y3eHZXMXRZQzRlSGhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9nQi8vL2dBSC8vZ0FBZi93QUFELzRBQUFmOEFBQUQrQUFBQWZBQUFBRHdBQUFBNEFBQUFHQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBR0FBQUFCd0FBQUE4QUFBQVBnQUFBSDRBQUFCL0FBQUEvNEFBQWYvZ0FBZi84QUFQLy93QVAvJyxyZWQ6J2RhdGE6aW1hZ2Uvdm5kbWljcm9zb2Z0aWNvbjtiYXNlNjQsQUFBQkFBSUFFQkFBQUFFQUlBQm9CQUFBSmdBQUFDQWdBQUFCQUNBQXFCQUFBSTRFQUFBb0FBQUFFQUFBQUNBQUFBQUJBQ0FBQUFBQUFBQUVBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUXhtYkFDMFJhZ3BER1pzOFNoeXNka3dkc3BkTUhiS1hTaHlzZGtNWm16d3VFV29LUXhtY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBbURsZ0FBQUFBQVVRYW56UlBIcmlsVXgvQjZWUWd4ZjFWSU1iL1ZTREcvMVFneGYxVEg4RHBUaDIycFVNWm5EUUFBQUFCSlE1WEFBQUFBQUI3ZW5zQS8vOEFBRlVycjA5U0g4RGRWU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlVSDhQL1V4L0IvMUlmd1A5UUhycmRSeHFsVHdBQUFBQW9EMTRBK2ZuNUFOemYxem1NYXRQZlZCN0cvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVRIOEwvVVI2OC8xQWV2UDlRSHJ6L1VSNjgvMDRkdDk5RUdhQTVVQjY3QUxTMHN3M3g4dSt1bllEZC8xQVp4UDlUSGNYL1V4M0YvMVFleGY5VEhyLy9UeDIzLzA4Y3R2OVBIYmIvVHgyMi8wOGR0djlQSGJiL1N4dXVyamtTZmczaDRlRksrUGozOExXZjVQOTdVdEwvZlZYUy8zMVYwLzlmT2N6L1NTZkMvMGtud1A5Sko4RC9TU2ZBLzBrbndQOUpKOEQvU1NmQS8wZ252L0EvS0xOSzdlM3RqUG41K2YvMjlmai84dkQzLy9QeDkvL3k4UGYvZklMei96US84UDgzUXZEL04wTHcvemRDOFA4M1F2RC9OMEx3L3pkQjcvODJRT3ovTXozZ2pQSHg4Ykw1K2ZuLytmbjUvL242K2YvNSt2bi8rZm41LzM2Rzl2OHlRUFQvTmtQMC96WkQ5UDgyUS9UL05rUDAvelZDOHY4MFFPei9NMERxL3pJKzQ3THo4L08yK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2Y5OWh2Yi9Na0QwL3paRDlQODJRL1QvTmtQMC96VkM4Zjh6UCtmL01qN2svekkrNVA4eFBkNjI4dkx5bWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2dZbjIvemRFOVA4N1IvVC9PMGYwL3paRjhQOHlRT1AvTVQvZS96RS8zdjh4UDk3L0x6M1ptZkh4OFZ6NCtQajMrZm41Ly9uNStmLzUrZm4vK2ZuNS85ZlorUC9CeGZqL3dzYjQvN3ZEK1A4N2ovWC9Ebnp4L3hGOThmOFJmZkgvRVh6dzl4WnY1VnpyNitzWTkvZjN4dm41K2YvNStmbi8rZm41Ly9uNStmLzcrL24vL1B6NS8vMzgrZi94K1BuL09yRCsvd0NZLy84QW1mLy9BSm4vL3dDWi9jWUFsUE1ZLy8vL0FQVDA5RmI0K1BqeStmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzYrZm4vN3ZYNS96bXUvdjhBbC8vL0FKai8vd0NZL3ZJQWxmcFdBSi8vQU96czdBRG01dVlGOXZiMmVQbjUrZlQ1K2ZuLytmbjUvL241K2YvNStmbi8rdm41Lys3MStmODVyZjcvQUpiLy93Q1kvL1FBbHZ4NEFJenJCUUNROGdBQUFBQUE4UER3QU96czdBYjI5dlpkK1BqNDB2bjUrZno1K2ZuLytmbjUvL241K2YveDl2bi9ic1A4L0NHay90SUFsdnhkQUpEeUJnQ1Q5UUFBQUFBQUFBQUFBQUFBQUFEbjUrY0FxS2lvQVBUMDlDSDM5L2R5K1BqNHR2ajQrTlg0K1BqVitQajR0dXZ5OTNMRDRmVWhBQUM3QUVTbzZ3QUFBQUFBQUFBQUFQQVBBQURBQXdBQXdBTUFBSUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFCQUFDQUFRQUF3QU1BQVBBUEFBQW9BQUFBSUFBQUFFQUFBQUFCQUNBQUFBQUFBQUFRQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkJnSU1EQm9LUFJ3b0QxNHRMaEZyTnk0UmF6Y29EMTR0R2dvOUhBWUNEQXdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUCszL3dBTkJSMEtMeEp1TVVFWW1HeEtIS3lpVGgyMngxQWV1OXRSSHIzalVSNjk0MUFldTl0T0hiYkhTaHlzb2tFWW1Hd3ZFbTR4RFFVZUN2KzYvd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJvS1BnQUhBeEFITmhSOVBFa2JxcHBSSHIzaFZDREUvRlVneHY5VklNZi9WU0RILzFVZ3h2OVZJTWIvVlNESC8xVWd4LzlWSU1iL1ZDREUvRkVldk9GSUc2bWFOUlI4UEFjREVBY2FDajBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURWVVA4QUpnNVlHVVlhbzRCUkg3N2tWU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTVgvVkIvRS8xUWZ3LzlRSHJ2a1JSbWdnQ1VPVmhuUVR2OEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUEvLy8vQURJVGRTcE1IYkt2VkNERSsxVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZDREUvMU1md3Y5VEg4SC9VeC9CLzFNZnd2OVNINy83U2h5dHJ6RVNjU3IvLy84QUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdNREFNdG8vd0JWUG9Zc1VTQzN2MVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFRZnhQOVNIc0QvVWg2Ly8xSWV2LzlTSHIvL1VoNi8vMUlldi85U0hyLy9TeHl3dnpNVGR5eW1QZjhBQVFBQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFEMTlmVUFuYUtRSGJlcDFyVmZMY24vVkIvRy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlVSDhQL1VSNisvMUVldmY5UkhyMy9VUjY5LzFFZXZmOVJIcjMvVVI2OS8xRWV2ZjlSSHIzL1NodXR0UzBSYUIxUEhya0FBQUFBQUFBQUFBQUFBQUFBZVhsNUFEWTJOZ25mNE55TzE4enUvVjh0eWY5VUg4Yi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WQi9ELzFFZXZQOVFIcnIvVUI2Ny8xQWV1LzlRSHJ2L1VCNjcvMUFldS85UUhydi9VQjY3LzFBZXUvOVFIcnI5Umhxa2poRUdLQWtuRGxvQUFBQUFBQUFBQUFELy8vOEF4TVRFUy9iMzlPM1p6dS8vWHkzSi8xUWZ4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xTWZ3djlRSGJyL1R4MjQvMDhkdVA5UEhiai9UeDI0LzA4ZHVQOVBIYmovVHgyNC8wOGR1UDlQSGJqL1R4MjQvMDhkdWY5TkhMVHRQaGVSUzVzNS93QUFBQUFBbTV1YkFIQndjQS9vNk9peCsvejYvOWpPNy85Zkxjbi9WQi9HLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VEg4SC9UeDI0LzA0ZHR2OU9IYmIvVGgyMi8wNGR0djlPSGJiL1RoMjIvMDRkdHY5T0hiYi9UaDIyLzA0ZHR2OU9IYmIvVGgyMi8wNGR0djlKRzZteEl3MVJEekFTY1FELy8vOEF5Y25KUmZYMTlmRDcvUHIvMk0zdi8xd3F5UDlTSE1YL1VoekYvMUljeGY5U0hNWC9VaHpGLzFJY3hmOVRIY1gvVXg3QS8wNGN0ZjlOSExML1RoeXovMDRjcy85TkhMUC9UUnl6LzAwY3MvOU9ITFAvVGh5ei8wNGNzLzlPSExQL1RoeXovMDRjcy85TkhMUC9UaHl6LzB3Y3NQQS9GbzlGWXlUa0FBQUFBQUxrNU9TTitmbjUvL3I2K2YvbjR2VC9ub0RkLzVaMjJ2K1dkdHIvbG5iYS81WjIyditXZHRyL21IZmIvMzVnMS85S01Nci9TQy9ILzBndngvOUlMOGYvU0MvSC8wZ3Z4LzlJTDhiL1NDL0cvMGd2eHY5SEw4Yi9SeS9HLzBjdnh2OUhMOGIvUnkvRy8wY3Z4djlITDhYL1J5N0Yvejh0dUkwQUFBQUNrNU9URnUvdjc4WDUrZm4vK2ZuNS8vbjUrZi82K3ZuLytmcjUvL242K2YvNSt2bi8rZnI1Ly9uNitmLzkvZm4vdWI3My96aEY4djgyUS9ML05rUHkvelpEOHY4MlEvTC9Oa1B5L3paRDh2ODJRL0wvTmtQeS96WkQ4djgyUS9ML05rUHkvelpEOHY4MlEvTC9Oa1B5L3pWQzhmODFRdkQvTXovbXhSOG5qaGJEdzhNejlQVDA1Zm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o4K2YrNXZmZi9PRVgwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgxUXZIL05FSHYvelJCNy84elFPcmxLVE82TTlYVjFWRDM5L2YwK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vL1B6NS83bTk5Lzg0UmZUL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9OVUx3L3pSQTdQODBRT3YvTkVEci96TkE2ZlFzTjhsUTNkM2RZZmo0K1BuNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOC9Qbi91YjMzL3poRjlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96VkI3Lzh6UU9uL016L28vek0vNlA4elFPai9Nei9uK1MwNHptSGg0ZUZsK1BqNCt2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejgrZis1dmZmL09FWDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MFFlNy9Nei9tL3pNLzVmOHpQK2IvTXovbS96TS81djh5UCtYNkxqblBaZURnNEZyNCtQajMrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vUHo1LzdtOTkvODRSZlQvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTkVIcy96SSs0Lzh5UHVQL01qN2ovekkrNC84eVB1UC9NajdqL3pJKzRmY3RPTXhhM056Y1F2ZjM5Ky81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi84L1BuL3ViMzMvemhGOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelJBNi84eFBlSC9NVDNnL3pFOTRQOHhQZUQvTVQzZy96RTk0UDh4UGVEL01UM2U3eXMyeGtMUzB0SWo5ZlgxMmZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96OCtmKzR2ZmYvTmtQMC96TkI5UDgwUWZUL05FSDAvelJCOVA4MFFmVC9ORUgwL3paQzgvODFQK24vTWp6ZS96STczZjh5TzkzL01qdmQvekk3M2Y4eU85My9NanZkL3pJNzNmOHhPOXJaS1RPN0k1NmVuZ2p5OHZLdStmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLysvcjUvOXplK1ArY292Zi9tcUQzLzVxZzkvK2FvUGYvbXFEMy81cWc5Lythb1BmL1VvTHoveDFwNS84ZWFlYi9IbW5tL3g1cDV2OGVhZVgvSG1ubC94NXA1ZjhlYU9YL0htamwveUJoM2E0akpva0kvLy8vQU8zdDdXcjUrZm4rK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK3ZyNS8vejgrZi84L1BuLy9QejUvL3o4K2YvOC9Qbi8vUHo1Ly96OCtmOWR2ZnovQUpmKy93Q1ovdjhBbWY3L0FKbisvd0NaL3Y4QW1mNy9BSm4rL3dDWi92OEFtUDcrQUpMeGFnQzQvd0RyNitzQTRlSGhKUGIyOXR2NStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMXU4L2Y4QWx2Ly9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NXL05zQWllY2tBSS94QUx1N3V3QUFBQUFBOHZMeWdmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vVzd6OS93Q1cvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpQM2dRQUFBQUFBY3I4QUFBQUFBT3pzN0FEazVPUWU5dmIyelBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2Y5YnZQMy9BSmIvL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NXL013QWkrb2VBSkR4QUFBQUFBQUFBQUFBc0xDd0FQLy8vd0R2Nys5TytQajQ3UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8xdTgvZjhBbHYvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFsLzdzQUpMMFRnQ3Ivd0FBYTdRQUFBQUFBQUFBQUFBQUFBQUExdGJXQUxTMHRBUHk4dkp2K1BqNDlQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9XN3o5L3dDVy8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKais5QUNVK0c0QWJyZ0RBSVBhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTR1TGlBTmZYMXdiejgvTnorUGo0OFBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZjlidlAzL0FKYi8vd0NZLy84QW1QLy9BSmovL3dDWS92QUFsZmx6QUlUY0JnQ0s1d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNCtQakFOalkyQVR5OHZKWitQajQydm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzF1Ny9mOEFsZi8vQUpmLy93Q1kvLzhBbC83YUFKVDRXUUNFM0FRQWl1Y0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUExTlRVQUI4Zkh3RHc4UEFyOXZiMm5QajQrTzM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL3JOdjcvM2JHL1A5cndmenRNNnI3bkFDUjlTc0FFUjBBQUlQWkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT3ZyNndEajQrTUc4dkx5T3ZiMjlwRDQrUGpTK2ZuNTh2bjUrZjM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41L2ZuNStmTDYrZmpTL1BqMmtQMzM4anIvK2VJRy8vZnFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURoNGVFQTF0YldBdS92N3h2MDlQUko5dmIyZHZiMjlwZjM5L2VvOS9mM3FQYjI5cGYyOXZaMjlQVDBTZS92N3h2VzF0WUM0ZUhoQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvZ0IvLy9nQUgvL2dBQWYvd0FBRC80QUFBZjhBQUFEK0FBQUFmQUFBQUR3QUFBQTRBQUFBR0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUdBQUFBQndBQUFBOEFBQUFQZ0FBQUg0QUFBQi9BQUFBLzRBQUFmL2dBQWYvOEFBUC8vd0FQLycseWVsbG93OidkYXRhOmltYWdlL3ZuZG1pY3Jvc29mdGljb247YmFzZTY0LEFBQUJBQUlBSUNBQUFBRUFJQUNvRUFBQUpnQUFBQkFRQUFBQkFDQUFhQVFBQU00UUFBQW9BQUFBSUFBQUFFQUFBQUFCQUNBQUFBQUFBQUFRQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCd0FaS2hRQU9XQWlBRVYwS2dCRmRDb0FPV0FpQUJrcUZBQUFBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4WkFBQUNoQUhBRXA4SndCdnUxMEFnTmVTQUlubHVBQ043YzRBai9EWEFJL3cxd0NON2M0QWllVzRBSURYa2dCdnUxMEFTbnduQUFvUUJ3QThaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYkxnQUFBQUFGQUZtV013Qi8xWXdBai9EWEFKWDcrUUNZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKWDcrUUNQNzljQWZ0V01BRm1WTXdBQUFBVUFHeTRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBN3Y4QUFEMW1GUUI2elhZQWtQTGRBSmYrL2dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUDcvQUpmKy93Q1YvUDRBanZEZEFIaktkZ0E4WkJVQTZmOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vQUFCV2tDWUFoK0tvQUpiOCtRQ1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKZisvd0NWK3Y4QWxQci9BSlQ2L3dDVit2OEFrdmY1QUlQZHFBQlRqQ1lBLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdJQ0FCYi8vd0FrYTV3cUFvenF1d0NZL3Y4QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWC9mOEFrL2ovQUpQMy93Q1Q5LzhBay9mL0FKUDMvd0NUOS84QWt2Yi9BSWJpdXdCWmx5b0EvLzhBQUFFQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFEejgvTUFxSmFKSFpERDVyUUxuUDcvQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbHZ6L0FKTDIvd0NSOVA4QWtmVC9BSkgwL3dDUjlQOEFrZlQvQUpIMC93Q1I5UDhBa2ZUL0FJVGZ0QUJRaGgwQWpPMEFBQUFBQUFBQUFBQUFBQUFBZlgxOUFEdzhQQW5pM3R1UHV1RDUvUXVjLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmI4L3dDUTgvOEFqL0gvQUkveC93Q1A4ZjhBai9IL0FJL3gvd0NQOGY4QWovSC9BSS94L3dDUDhmOEFqdkQ5QUg3VWp3QWlPUWtBU0hrQUFBQUFBQWdJQ0FELy8vOEF4Y1hGVC9qMTlPKzk0dnYvQ3B6Ly93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1YrLzhBai9IL0FJM3Uvd0NON3Y4QWplNy9BSTN1L3dDTjd2OEFqZTcvQUkzdS93Q043djhBamU3L0FJM3Uvd0NPN3Y4QWl1bnZBSEM4VHdELy93QUFCUWdBcUtpb0FIcDZlaEhwNmVtMy9mdjUvN3poK3Y4S25QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QWxmci9BSTd1L3dDTTYvOEFqT3YvQUl6ci93Q002LzhBak92L0FJenIvd0NNNi84QWpPdi9BSXpyL3dDTTYvOEFqT3YvQUl6ci93Q002LzhBZzl5M0FFUnlFUUJlblFELy8vOEF6TXpNVGZiMjl2UDkrL24vdk9INi93cWIvLzhBbHYvL0FKYi8vd0NXLy84QWx2Ly9BSmIvL3dDVy8vOEFsLy8vQUpUNS93Q0w2LzhBaWVqL0FJbm8vd0NKNlA4QWllai9BSW5vL3dDSjZQOEFpZWovQUluby93Q0o2UDhBaWVqL0FJbm8vd0NKNlA4QWllai9BSW5vL3dDSDVmTUFiNzVOQU1QL0FBQUFBQVhsNWVXWCtmbjUvL3Y2K2YvVDZ2ci9XYnY5LzArMy9mOVF0LzMvVUxmOS8xQzMvZjlRdC8zL1ViajkvemV3Ky84SW5PLy9CNW5yL3dlWjYvOEhtZXYvQjVucS93ZVo2djhIbWVyL0I1bnEvd2VaNnY4SG1lci9CNWpxL3dlWTZ2OEhtT24vQjVqcC93ZVk2ZjhIbU9uL0JwanAvd2VQMTVjQkFBQUZwS1NrSGZEdzhNLzUrZm4vK2ZuNS8vbjUrZi8xK1BuLzlQZjUvL1QzK2YvMDkvbi85UGY1Ly9UMytmLzQrUG4vbytUNi93cS8vZjhIdi8zL0NMLzkvd2kvL2Y4SXYvMy9DTC85L3dpLy9mOEl2LzMvQ0wvOC93aSsvUDhJdnZ6L0NMNzgvd2krL1A4SXZ2ei9DTDc4L3dlOSsvOEh2UHIvQnJieHp3UjlwUjNMeTh0QTlmWDE3UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvLzM2K2YrbDV2di9DY0wvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhIdi8zL0JyMzYvd2E5K3Y4R3V2YnNCWm5MUU5yYTJtRDM5L2Y0K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vL2ZyNS82WG0rLzhKd2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9CNzc4L3dhNzkvOEd1dmYvQnJyMy93YTU5ZmdGbzloZzR1TGlkUGo0K1AzNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOSt2bi9wZWI3L3duQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZSsrLzhHdWZYL0JyajAvd2E0OVA4R3VQVC9CcmZ6L1FXbTNYVGs1T1I2K1BqNC9mbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vMzYrZitsNXZ2L0NjSC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHZmci9CcmZ5L3dhMjhmOEd0dkgvQnJieC93YTI4ZjhHdGZEOUJhZmRldVhsNVcvNCtQajgrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vZnI1LzZYbSsvOEp3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjd6NS93YTE3LzhHdE83L0JyVHUvd2EwN3Y4R3RPNy9CclR1L3dhejdmd0ZwZHR2NGVIaFZ2ajQrUGI1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi85K3ZuL3BlYjcvd25CLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2U3K1A4R3N1My9CckhyL3dheDYvOEdzZXYvQnJIci93YXg2LzhHc2V2L0JyRHE5Z1doMVZiYTJ0b3o5dmIyNXZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly8zNitmK2s1ZnYvQnNILy93UEEvLzhEd1AvL0E4RC8vd1BBLy84RHdQLy9BOEQvL3dYQS8vOEd1dmIvQnJEcS93YXU2UDhHcnVqL0JxN28vd2F1NlA4R3J1ai9CcTdvL3dhdTZQOEdyZVhtQlpuTE03Ky92eEgwOVBUQytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLysvcjUvODN2K3Y5eDJ2ei9idG45LzIvWi9mOXYyZjMvYjluOS8yL1ovZjl2MmYzL1JkTDUveVhHN3Y4bXhPei9Kc1RzL3liRTYvOG14T3YvSnNUci95WEU2Lzhsdyt2L0pjUHIveUs5NWNJUWlyQVIvLy8vQVBEdzhJSDUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK3ZuNS8vcjUrZi82K2ZuLyt2bjUvL3I1K2YvNitmbi8rdm41Ly9yNStmK0g4UHovT2VyKy96enEvdjg4NnY3L1BPcisvenpxL3Y4ODZ2Ny9QT3IrL3p6cS92ODg2djMvT3VEemdXei8vd0QwOVBRQTUrZm5OUGYzOStuNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvNFh3L2Y4NDYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8venZwL2VrMzIrMDBPdWY2QU1yS3lnQ3pzN01GOC9Qem12bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vaGZEOS96anIvLzg3Ni8vL08rdi8venZyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vT3VYNW1pcXB0d1V3djg4QUFBQUFBUFB6OHdEcDZla3U5L2YzM2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YrRjhQMy9PT3YvL3p2ci8vODc2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8venZwL2QwMzNPOHVPdVg1QUFBQUFBQUFBQUFBdnI2K0FQLy8vd0R4OGZGbCtQajQ5Zm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS80WHcvZjg0Ni8vL08rdi8venZyLy84NzYvLy9PK3YvL3p2ci8vODc2djcxT2VQMlpZNy8vd0F1czhJQUFBQUFBQUFBQUFBQUFBQUE0T0RnQU5QVDB3ajA5UFNJK2ZuNSt2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9oZkQ5L3pqci8vODc2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8ranJtK1lneXg5Z0lOZFBsQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTZlbnBBT0hoNFEzMDlQU00rZm41K1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZitGOFAzL09Pdi8venZyLy84NzYvLy9PK3YvL3p2ci8vZzY1L3FNTnRYbkRUamQ3d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNmVucEFPTGk0Z3IwOVBSdytQajQ1L241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzRQdy9mODE2Ly8vT2V2Ly96dnIvLzg3NnY3bk91YjVjRGJXNXdvMzNPNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0T0RnQU5IUjBRTHg4ZkU4OS9mM3NmbjUrZlg1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL3QvVDcvNFh4L2YrQThQMzFYZXo4c1Ruazl6d3V4ZFVDTnRUa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVJFUkVBUC8vL3dEbzZPZ005UFQwVGZmMzk2VDQrUGpmK2ZuNStQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmajUrUGpmOXZmM3BQTDA5RTNtNk9nTTcvMy9BUHRiT3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDTWpJd0QxOWZVQTR1TGlCdkh4OFNuMTlmVmQ5dmIyamZmMzk2NzM5L2U5OS9mM3ZmZjM5NjcyOXZhTjlmWDFYZkh4OFNubDR1SUc5UFgxQUZFbklnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvd0QvLy9nQUgvL2dBQWYvd0FBRC80QUFBZjhBQUFEK0FBQUFmQUFBQUR3QUFBQTRBQUFBR0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUdBQUFBQmdBQUFBY0FBQUFQZ0FBQUg0QUFBQi9BQUFBLzRBQUFmL0FBQVAvOEFBUC8vd0FQL0tBQUFBQkFBQUFBZ0FBQUFBUUFnQUFBQUFBQUFCQUFBRWdzQUFCSUxBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCb3JnQUFTMzRJQUhURE5RQ0MyMndBaCtPTUFJZmpqQUNDMjJ3QWRNUTFBRXgvQ0FCb3J3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQnJBQUFBQUFBQWVjc3dBSXpzbmdDVStPVUFsLzM3QUpqKy93Q1kvdjhBbC8zN0FKUDM1UUNMNlo0QWQ4Z3dBQUFBQUFBK2FRQUFBQUFBY1hkNkFQOEFBQUFPaU50TkFKUDMyZ0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpiOC93Q1UrZjhBay9qL0FJN3cyZ0IrMUUwQUFBQUFBRWQ0QVBuNy9BRGMyTlU1VDdQMzNnQ1gvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSlg2L3dDUjgvOEFrUEwvQUpEei93Q1E4LzhBak96ZUFIck9PUUNSOUFDM3Q3Y084ZS92c0duQS9mOEFsZi8vQUpmLy93Q1gvLzhBbC8vL0FKUDQvd0NON3Y4QWpPei9BSXpzL3dDTTdQOEFqT3ovQUl6dC93Q0c0ckFBWTZvTzR1TGlUL2ozOS9HSXpmei9NYXYrL3pTcy92ODByUDcvRmFINS93T1Y3ZjhEbE92L0E1VHIvd09VNi84RGxPdi9BNVRyL3dPVTYvOERrK2p4Qkl2VlQrM3Q3WlQ1K2ZuLzhmYjUvK3Z6K2YvcjlQbi82dlA1LzFuUisvOEV2UHovQjczOC93ZTkvUDhIdmZ6L0I3Mzgvd2U5L1A4SHZQdi9CN3I0L3dheDdaVHk4dks3K2ZuNS8vbjUrZi82K2ZuLyt2bjUvL241K2Y5ZTFmMy9BOEQvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId1AzL0JydjMvd2E1OWY4R3RPNjc4L1B6d2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi80K2ZuL1h0WDkvd1BBLy84SHdmLy9COEgvL3dmQi8vOEh2L3ovQnJmei93YTE3LzhHdGUvL0JySHF3ZlB6ODZYNStmbi8rZm41Ly9uNStmLzUrZm4vK1BuNS8yRFcvZjhHd2YvL0NzTC8vd3JDLy84SnYvdi9DTFh1L3dpeDZmOElzZW4vQ0xIcC93ZXQ1S1h5OHZKbytmbjUrdm41K2YvNStmbi8rZm41Ly9uNStmL0k3dnIvcXVmNy82em4rLyttNS92L1RkejUveXpWOVA4dTFmVC9MdFgwL3k3VTgvb295T3BvN096c0gvZjM5OUQ1K2ZuLytmbjUvL241K2YvNStmbi8vUHI1Ly8zNitmLysrdm4vOWZuNS8ycnYvdjg1N1AvL1BPei8venpzLy84ODYvM1FPdUx6SC8vLy93RDA5UFJoK2ZuNTl2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9INCtmOW83djcvT092Ly96dnIvLzg3Ni8vMk91ZjZZVUgvL3dEdTd1NEE2ZW5wQi9iMjlvVDUrZm4zK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YveCtQbi9adTcrL3pmci8vODc2Ly8zT3VqOGhEZmM3d2M0NFBNQUFBQUFBUEh4OFFEdTd1NEk5dmIyYVBqNCtObjUrZm45K2ZuNS8vbjUrZi81K2ZuLzgvbjUvNHp4L1AxUzdQN1pPK244YURmaDlBZzU1UGNBQUFBQUFBQUFBQUFBQUFBQTYrdnJBTi9mM3dIMTlmVW85L2YzZnZqNCtNSDQrUGplK1BqNDN2ajQrTUhxOXZoK3cvSDJLQURNNXdGazRlOEFBQUFBQUFBQUFBRHdEd0FBNEFjQUFNQURBQUNBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQVFBQWdBRUFBTUFEQUFEZ0J3QUEnfTtyZXR1cm57RmF2aWNvbnNCeUh1ZTpGYXZpY29uc0J5SHVlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gSG90S2V5KGRpY3Qpe2lmKGRpY3QuZXZlbnRUeXBlPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdldmVudFR5cGUgbXVzdCBiZSBnaXZlbicpO2lmKGRpY3Qua2V5Q29kZT09PXVuZGVmaW5lZCYmZGljdC5rZXlDb2Rlcz09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcigna2V5Q29kZSBvciBrZXlDb2RlcyBtdXN0IGJlIGdpdmVuJyk7aWYoZGljdC5rZXlDb2RlIT09dW5kZWZpbmVkJiZkaWN0LmtleUNvZGVzIT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdPbmx5IGtleUNvZGUgb3Iga2V5Q29kZXMgY2FuIGJlIGdpdmVuJyk7aWYoZGljdC5jYWxsYmFjaz09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignY2FsbGJhY2sgbXVzdCBiZSBnaXZlbicpO3RoaXMuZXZlbnRUeXBlXz1kaWN0LmV2ZW50VHlwZTt0aGlzLmtleUNvZGVzXz1bXTtpZihkaWN0LmtleUNvZGUpCit0aGlzLnB1c2hLZXlDb2RlXyhkaWN0LmtleUNvZGUpO2Vsc2UgaWYoZGljdC5rZXlDb2Rlcyl7ZGljdC5rZXlDb2Rlcy5mb3JFYWNoKHRoaXMucHVzaEtleUNvZGVfLHRoaXMpO30KK3RoaXMudXNlQ2FwdHVyZV89ISFkaWN0LnVzZUNhcHR1cmU7dGhpcy5jYWxsYmFja189ZGljdC5jYWxsYmFjazt0aGlzLnRoaXNBcmdfPWRpY3QudGhpc0FyZyE9PXVuZGVmaW5lZD9kaWN0LnRoaXNBcmc6dW5kZWZpbmVkO3RoaXMuaGVscFRleHRfPWRpY3QuaGVscFRleHQhPT11bmRlZmluZWQ/ZGljdC5oZWxwVGV4dDp1bmRlZmluZWQ7fQorSG90S2V5LnByb3RvdHlwZT17Z2V0IGV2ZW50VHlwZSgpe3JldHVybiB0aGlzLmV2ZW50VHlwZV87fSxnZXQga2V5Q29kZXMoKXtyZXR1cm4gdGhpcy5rZXlDb2Rlc187fSxnZXQgaGVscFRleHQoKXtyZXR1cm4gdGhpcy5oZWxwVGV4dF87fSxjYWxsOmZ1bmN0aW9uKGUpe3RoaXMuY2FsbGJhY2tfLmNhbGwodGhpcy50aGlzQXJnXyxlKTt9LHB1c2hLZXlDb2RlXzpmdW5jdGlvbihrZXlDb2RlKXt0aGlzLmtleUNvZGVzXy5wdXNoKGtleUNvZGUpO319O3JldHVybntIb3RLZXk6SG90S2V5fTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHYtdWktYi1ob3RrZXktY29udHJvbGxlcicse2NyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmdsb2JhbE1vZGVfPWZhbHNlO3RoaXMuc2xhdmVkVG9QYXJlbnRDb250cm9sbGVyXz11bmRlZmluZWQ7dGhpcy5jdXJIb3N0Xz11bmRlZmluZWQ7dGhpcy5jaGlsZENvbnRyb2xsZXJzXz1bXTt0aGlzLmJ1YmJsaW5nS2V5RG93bkhvdEtleXNfPXt9O3RoaXMuY2FwdHVyaW5nS2V5RG93bkhvdEtleXNfPXt9O3RoaXMuYnViYmxpbmdLZXlQcmVzc0hvdEtleXNfPXt9O3RoaXMuY2FwdHVyaW5nS2V5UHJlc3NIb3RLZXlzXz17fTt0aGlzLm9uQnViYmxpbmdLZXlEb3duXz10aGlzLm9uS2V5Xy5iaW5kKHRoaXMsZmFsc2UpO3RoaXMub25DYXB0dXJpbmdLZXlEb3duXz10aGlzLm9uS2V5Xy5iaW5kKHRoaXMsdHJ1ZSk7dGhpcy5vbkJ1YmJsaW5nS2V5UHJlc3NfPXRoaXMub25LZXlfLmJpbmQodGhpcyxmYWxzZSk7dGhpcy5vbkNhcHR1cmluZ0tleVByZXNzXz10aGlzLm9uS2V5Xy5iaW5kKHRoaXMsdHJ1ZSk7fSxhdHRhY2hlZDpmdW5jdGlvbigpe3ZhciBob3N0PXRoaXMuZmluZEhvc3RfKCk7aWYoaG9zdC5fX2hvdGtleUNvbnRyb2xsZXIpCit0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGxlIGhvdGtleSBjb250cm9sbGVycyBhdHRhY2hlZCB0byB0aGlzIGhvc3QnKTtob3N0Ll9faG90a2V5Q29udHJvbGxlcj10aGlzO3RoaXMuY3VySG9zdF89aG9zdDt2YXIgcGFyZW50RWxlbWVudDtpZihob3N0LnBhcmVudEVsZW1lbnQpCitwYXJlbnRFbGVtZW50PWhvc3QucGFyZW50RWxlbWVudDtlbHNlCitwYXJlbnRFbGVtZW50PWhvc3QucGFyZW50Tm9kZS5ob3N0O3ZhciBwYXJlbnRDb250cm9sbGVyPXRyLmIuZ2V0SG90a2V5Q29udHJvbGxlckZvckVsZW1lbnQocGFyZW50RWxlbWVudCk7aWYocGFyZW50Q29udHJvbGxlcil7dGhpcy5zbGF2ZWRUb1BhcmVudENvbnRyb2xsZXJfPXBhcmVudENvbnRyb2xsZXI7cGFyZW50Q29udHJvbGxlci5hZGRDaGlsZENvbnRyb2xsZXJfKHRoaXMpO3JldHVybjt9Citob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25CdWJibGluZ0tleURvd25fLGZhbHNlKTtob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25DYXB0dXJpbmdLZXlEb3duXyx0cnVlKTtob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJyx0aGlzLm9uQnViYmxpbmdLZXlQcmVzc18sZmFsc2UpO2hvc3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLHRoaXMub25DYXB0dXJpbmdLZXlQcmVzc18sdHJ1ZSk7fSxkZXRhY2hlZDpmdW5jdGlvbigpe3ZhciBob3N0PXRoaXMuY3VySG9zdF87aWYoIWhvc3QpCityZXR1cm47ZGVsZXRlIGhvc3QuX19ob3RrZXlDb250cm9sbGVyO3RoaXMuY3VySG9zdF89dW5kZWZpbmVkO2lmKHRoaXMuc2xhdmVkVG9QYXJlbnRDb250cm9sbGVyXyl7dGhpcy5zbGF2ZWRUb1BhcmVudENvbnRyb2xsZXJfLnJlbW92ZUNoaWxkQ29udHJvbGxlcl8odGhpcyk7dGhpcy5zbGF2ZWRUb1BhcmVudENvbnRyb2xsZXJfPXVuZGVmaW5lZDtyZXR1cm47fQoraG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJyx0aGlzLm9uQnViYmxpbmdLZXlEb3duXyxmYWxzZSk7aG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJyx0aGlzLm9uQ2FwdHVyaW5nS2V5RG93bl8sdHJ1ZSk7aG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlwcmVzcycsdGhpcy5vbkJ1YmJsaW5nS2V5UHJlc3NfLGZhbHNlKTtob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJyx0aGlzLm9uQ2FwdHVyaW5nS2V5UHJlc3NfLHRydWUpO30sYWRkQ2hpbGRDb250cm9sbGVyXzpmdW5jdGlvbihjb250cm9sbGVyKXt2YXIgaT10aGlzLmNoaWxkQ29udHJvbGxlcnNfLmluZGV4T2YoY29udHJvbGxlcik7aWYoaSE9PS0xKQordGhyb3cgbmV3IEVycm9yKCdDb250cm9sbGVyIGFscmVhZHkgcmVnaXN0ZXJlZCcpO3RoaXMuY2hpbGRDb250cm9sbGVyc18ucHVzaChjb250cm9sbGVyKTt9LHJlbW92ZUNoaWxkQ29udHJvbGxlcl86ZnVuY3Rpb24oY29udHJvbGxlcil7dmFyIGk9dGhpcy5jaGlsZENvbnRyb2xsZXJzXy5pbmRleE9mKGNvbnRyb2xsZXIpO2lmKGk9PT0tMSkKK3Rocm93IG5ldyBFcnJvcignQ29udHJvbGxlciBub3QgcmVnaXN0ZXJlZCcpO3RoaXMuY2hpbGRDb250cm9sbGVyc18uc3BsaWNlKGksMSk7cmV0dXJuIGNvbnRyb2xsZXI7fSxnZXRLZXlNYXBGb3JFdmVudFR5cGVfOmZ1bmN0aW9uKGV2ZW50VHlwZSx1c2VDYXB0dXJlKXtpZihldmVudFR5cGU9PT0na2V5ZG93bicpe2lmKCF1c2VDYXB0dXJlKQorcmV0dXJuIHRoaXMuYnViYmxpbmdLZXlEb3duSG90S2V5c187ZWxzZQorcmV0dXJuIHRoaXMuY2FwdHVyaW5nS2V5RG93bkhvdEtleXNfO31lbHNlIGlmKGV2ZW50VHlwZT09PSdrZXlwcmVzcycpe2lmKCF1c2VDYXB0dXJlKQorcmV0dXJuIHRoaXMuYnViYmxpbmdLZXlQcmVzc0hvdEtleXNfO2Vsc2UKK3JldHVybiB0aGlzLmNhcHR1cmluZ0tleVByZXNzSG90S2V5c187fWVsc2V7dGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBrZXkgZXZlbnQnKTt9fSxhZGRIb3RLZXk6ZnVuY3Rpb24oaG90S2V5KXtpZighKGhvdEtleSBpbnN0YW5jZW9mIHRyLnVpLmIuSG90S2V5KSkKK3Rocm93IG5ldyBFcnJvcignaG90S2V5IG11c3QgYmUgYSB0ci51aS5iLkhvdEtleScpO3ZhciBrZXlNYXA9dGhpcy5nZXRLZXlNYXBGb3JFdmVudFR5cGVfKGhvdEtleS5ldmVudFR5cGUsaG90S2V5LnVzZUNhcHR1cmUpO2Zvcih2YXIgaT0wO2k8aG90S2V5LmtleUNvZGVzLmxlbmd0aDtpKyspe3ZhciBrZXlDb2RlPWhvdEtleS5rZXlDb2Rlc1tpXTtpZihrZXlNYXBba2V5Q29kZV0pCit0aHJvdyBuZXcgRXJyb3IoJ0tleSBpcyBhbHJlYWR5IGJvdW5kIGZvciBrZXlDb2RlPScra2V5Q29kZSk7fQorZm9yKHZhciBpPTA7aTxob3RLZXkua2V5Q29kZXMubGVuZ3RoO2krKyl7dmFyIGtleUNvZGU9aG90S2V5LmtleUNvZGVzW2ldO2tleU1hcFtrZXlDb2RlXT1ob3RLZXk7fQorcmV0dXJuIGhvdEtleTt9LHJlbW92ZUhvdEtleTpmdW5jdGlvbihob3RLZXkpe2lmKCEoaG90S2V5IGluc3RhbmNlb2YgdHIudWkuYi5Ib3RLZXkpKQordGhyb3cgbmV3IEVycm9yKCdob3RLZXkgbXVzdCBiZSBhIHRyLnVpLmIuSG90S2V5Jyk7dmFyIGtleU1hcD10aGlzLmdldEtleU1hcEZvckV2ZW50VHlwZV8oaG90S2V5LmV2ZW50VHlwZSxob3RLZXkudXNlQ2FwdHVyZSk7Zm9yKHZhciBpPTA7aTxob3RLZXkua2V5Q29kZXMubGVuZ3RoO2krKyl7dmFyIGtleUNvZGU9aG90S2V5LmtleUNvZGVzW2ldO2lmKCFrZXlNYXBba2V5Q29kZV0pCit0aHJvdyBuZXcgRXJyb3IoJ0tleSBpcyBub3QgYm91bmQgZm9yIGtleUNvZGU9JytrZXlDb2RlKTtrZXlNYXBba2V5Q29kZV09aG90S2V5O30KK2Zvcih2YXIgaT0wO2k8aG90S2V5LmtleUNvZGVzLmxlbmd0aDtpKyspe3ZhciBrZXlDb2RlPWhvdEtleS5rZXlDb2Rlc1tpXTtkZWxldGUga2V5TWFwW2tleUNvZGVdO30KK3JldHVybiBob3RLZXk7fSxnZXQgZ2xvYmFsTW9kZSgpe3JldHVybiB0aGlzLmdsb2JhbE1vZGVfO30sc2V0IGdsb2JhbE1vZGUoZ2xvYmFsTW9kZSl7dGhpcy5kZXRhY2hlZCgpO3RoaXMuZ2xvYmFsTW9kZV89ISFnbG9iYWxNb2RlO3RoaXMuYXR0YWNoZWQoKTt9LGdldCB0b3Btb3N0Q29ucm9sbGVyXygpe2lmKHRoaXMuc2xhdmVkVG9QYXJlbnRDb250cm9sbGVyXykKK3JldHVybiB0aGlzLnNsYXZlZFRvUGFyZW50Q29udHJvbGxlcl8udG9wbW9zdENvbnJvbGxlcl87cmV0dXJuIHRoaXM7fSxjaGlsZFJlcXVlc3RzR2VuZXJhbEZvY3VzOmZ1bmN0aW9uKGNoaWxkKXt2YXIgdG9wbW9zdD10aGlzLnRvcG1vc3RDb25yb2xsZXJfO2lmKHRvcG1vc3QuY3VySG9zdF8pe2lmKHRvcG1vc3QuY3VySG9zdF8uaGFzQXR0cmlidXRlKCd0YWJJbmRleCcpKXt0b3Btb3N0LmN1ckhvc3RfLmZvY3VzKCk7fWVsc2V7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO319ZWxzZXtpZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KQorZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7fX0sY2hpbGRSZXF1ZXN0c0JsdXI6ZnVuY3Rpb24oY2hpbGQpe2NoaWxkLmJsdXIoKTt2YXIgdG9wbW9zdD10aGlzLnRvcG1vc3RDb25yb2xsZXJfO2lmKHRvcG1vc3QuY3VySG9zdF8pe3RvcG1vc3QuY3VySG9zdF8uZm9jdXMoKTt9fSxmaW5kSG9zdF86ZnVuY3Rpb24oKXtpZih0aGlzLmdsb2JhbE1vZGVfKXtyZXR1cm4gZG9jdW1lbnQuYm9keTt9ZWxzZXtpZih0aGlzLnBhcmVudEVsZW1lbnQpCityZXR1cm4gdGhpcy5wYXJlbnRFbGVtZW50O3ZhciBub2RlPXRoaXM7d2hpbGUobm9kZS5wYXJlbnROb2RlKXtub2RlPW5vZGUucGFyZW50Tm9kZTt9CityZXR1cm4gbm9kZS5ob3N0O319LGFwcGVuZE1hdGNoaW5nSG90S2V5c1RvXzpmdW5jdGlvbihtYXRjaGVkSG90S2V5cyx1c2VDYXB0dXJlLGUpe3ZhciBsb2NhbEtleU1hcD10aGlzLmdldEtleU1hcEZvckV2ZW50VHlwZV8oZS50eXBlLHVzZUNhcHR1cmUpO3ZhciBsb2NhbEhvdEtleT1sb2NhbEtleU1hcFtlLmtleUNvZGVdO2lmKGxvY2FsSG90S2V5KQorbWF0Y2hlZEhvdEtleXMucHVzaChsb2NhbEhvdEtleSk7Zm9yKHZhciBpPTA7aTx0aGlzLmNoaWxkQ29udHJvbGxlcnNfLmxlbmd0aDtpKyspe3ZhciBjb250cm9sbGVyPXRoaXMuY2hpbGRDb250cm9sbGVyc19baV07Y29udHJvbGxlci5hcHBlbmRNYXRjaGluZ0hvdEtleXNUb18obWF0Y2hlZEhvdEtleXMsdXNlQ2FwdHVyZSxlKTt9fSxvbktleV86ZnVuY3Rpb24odXNlQ2FwdHVyZSxlKXtpZih1c2VDYXB0dXJlPT1mYWxzZSYmZS5wYXRoWzBdLnRhZ05hbWU9PSdJTlBVVCcpCityZXR1cm47dmFyIHNvcnRlZENvbnRyb2xsZXJzO3ZhciBtYXRjaGVkSG90S2V5cz1bXTt0aGlzLmFwcGVuZE1hdGNoaW5nSG90S2V5c1RvXyhtYXRjaGVkSG90S2V5cyx1c2VDYXB0dXJlLGUpO2lmKG1hdGNoZWRIb3RLZXlzLmxlbmd0aD09PTApCityZXR1cm4gZmFsc2U7aWYobWF0Y2hlZEhvdEtleXMubGVuZ3RoPjEpe3Rocm93IG5ldyBFcnJvcignTW9yZSB0aGFuIG9uZSBob3RLZXkgaXMgY3VycmVudGx5IHVuc3VwcG9ydGVkJyk7fQordmFyIGhvdEtleT1tYXRjaGVkSG90S2V5c1swXTt2YXIgcHJldmVudGVkPTA7cHJldmVudGVkfD1ob3RLZXkuY2FsbChlKTtyZXR1cm4hcHJldmVudGVkJiZlLmRlZmF1bHRQcmV2ZW50ZWQ7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYicsZnVuY3Rpb24oKXtmdW5jdGlvbiBnZXRIb3RrZXlDb250cm9sbGVyRm9yRWxlbWVudChyZWZFbGVtZW50KXt2YXIgY3VyRWxlbWVudD1yZWZFbGVtZW50O3doaWxlKGN1ckVsZW1lbnQpe2lmKGN1ckVsZW1lbnQudGFnTmFtZT09PSd0di11aS1iLWhvdGtleS1jb250cm9sbGVyJykKK3JldHVybiBjdXJFbGVtZW50O2lmKGN1ckVsZW1lbnQuX19ob3RrZXlDb250cm9sbGVyKQorcmV0dXJuIGN1ckVsZW1lbnQuX19ob3RrZXlDb250cm9sbGVyO2lmKGN1ckVsZW1lbnQucGFyZW50RWxlbWVudCl7Y3VyRWxlbWVudD1jdXJFbGVtZW50LnBhcmVudEVsZW1lbnQ7Y29udGludWU7fQorY3VyRWxlbWVudD1maW5kSG9zdChjdXJFbGVtZW50KTt9CityZXR1cm4gdW5kZWZpbmVkO30KK2Z1bmN0aW9uIGZpbmRIb3N0KGluaXRpYWxOb2RlKXt2YXIgbm9kZT1pbml0aWFsTm9kZTt3aGlsZShub2RlLnBhcmVudE5vZGUpe25vZGU9bm9kZS5wYXJlbnROb2RlO30KK3JldHVybiBub2RlLmhvc3Q7fQorcmV0dXJue2dldEhvdGtleUNvbnRyb2xsZXJGb3JFbGVtZW50OmdldEhvdGtleUNvbnRyb2xsZXJGb3JFbGVtZW50fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpJyxmdW5jdGlvbigpe3ZhciBUYXNrPXRyLmIuVGFzaztmdW5jdGlvbiBGaW5kQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcil7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl89YnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI7dGhpcy5maWx0ZXJIaXRzXz1uZXcgdHIubW9kZWwuRXZlbnRTZXQoKTt0aGlzLmN1cnJlbnRIaXRJbmRleF89LTE7dGhpcy5hY3RpdmVQcm9taXNlXz1Qcm9taXNlLnJlc29sdmUoKTt0aGlzLmFjdGl2ZVRhc2tfPXVuZGVmaW5lZDt9O0ZpbmRDb250cm9sbGVyLnByb3RvdHlwZT17X19wcm90b19fOk9iamVjdC5wcm90b3R5cGUsZ2V0IG1vZGVsKCl7cmV0dXJuIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLm1vZGVsO30sZ2V0IGJydXNoaW5nU3RhdGVDb250cm9sbGVyKCl7cmV0dXJuIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfO30sZW5xdWV1ZU9wZXJhdGlvbl86ZnVuY3Rpb24ob3BlcmF0aW9uKXt2YXIgdGFzaztpZihvcGVyYXRpb24gaW5zdGFuY2VvZiB0ci5iLlRhc2spCit0YXNrPW9wZXJhdGlvbjtlbHNlCit0YXNrPW5ldyB0ci5iLlRhc2sob3BlcmF0aW9uLHRoaXMpO2lmKHRoaXMuYWN0aXZlVGFza18pe3RoaXMuYWN0aXZlVGFza189dGhpcy5hY3RpdmVUYXNrXy5lbnF1ZXVlKHRhc2spO31lbHNle3RoaXMuYWN0aXZlVGFza189dGFzazt0aGlzLmFjdGl2ZVByb21pc2VfPVRhc2suUnVuV2hlbklkbGUodGhpcy5hY3RpdmVUYXNrXyk7dGhpcy5hY3RpdmVQcm9taXNlXy50aGVuKGZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVQcm9taXNlXz11bmRlZmluZWQ7dGhpcy5hY3RpdmVUYXNrXz11bmRlZmluZWQ7fS5iaW5kKHRoaXMpKTt9fSxzdGFydEZpbHRlcmluZzpmdW5jdGlvbihmaWx0ZXJUZXh0KXt2YXIgc2M9dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87aWYoIXNjKQorcmV0dXJuO3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oZnVuY3Rpb24oKXt0aGlzLmZpbHRlckhpdHNfPW5ldyB0ci5tb2RlbC5FdmVudFNldCgpO3RoaXMuY3VycmVudEhpdEluZGV4Xz0tMTt9LmJpbmQodGhpcykpO3ZhciBzdGF0ZUZyb21TdHJpbmc7dHJ5e3N0YXRlRnJvbVN0cmluZz1zYy51aVN0YXRlRnJvbVN0cmluZyhmaWx0ZXJUZXh0KTt9Y2F0Y2goZSl7dGhpcy5lbnF1ZXVlT3BlcmF0aW9uXyhmdW5jdGlvbigpe3ZhciBvdmVybGF5PW5ldyB0ci51aS5iLk92ZXJsYXkoKTtvdmVybGF5LnRleHRDb250ZW50PWUubWVzc2FnZTtvdmVybGF5LnRpdGxlPSdVSSBTdGF0ZSBOYXZpZ2F0aW9uIEVycm9yJztvdmVybGF5LnZpc2libGU9dHJ1ZTt9KTtyZXR1cm4gdGhpcy5hY3RpdmVQcm9taXNlXzt9CitpZihzdGF0ZUZyb21TdHJpbmchPT11bmRlZmluZWQpe3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oc2MubmF2VG9Qb3NpdGlvbi5iaW5kKHRoaXMsc3RhdGVGcm9tU3RyaW5nLHRydWUpKTt9ZWxzZXtpZihmaWx0ZXJUZXh0Lmxlbmd0aD09PTApe3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oc2MuZmluZFRleHRDbGVhcmVkLmJpbmQoc2MpKTt9ZWxzZXt2YXIgZmlsdGVyPW5ldyB0ci5jLkZ1bGxUZXh0RmlsdGVyKGZpbHRlclRleHQpO3ZhciBmaWx0ZXJIaXRzPW5ldyB0ci5tb2RlbC5FdmVudFNldCgpO3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oc2MuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzayhmaWx0ZXIsZmlsdGVySGl0cykpO3RoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oZnVuY3Rpb24oKXt0aGlzLmZpbHRlckhpdHNfPWZpbHRlckhpdHM7c2MuZmluZFRleHRDaGFuZ2VkVG8oZmlsdGVySGl0cyk7fS5iaW5kKHRoaXMpKTt9fQorcmV0dXJuIHRoaXMuYWN0aXZlUHJvbWlzZV87fSxnZXQgZmlsdGVySGl0cygpe3JldHVybiB0aGlzLmZpbHRlckhpdHNfO30sZ2V0IGN1cnJlbnRIaXRJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRIaXRJbmRleF87fSxmaW5kXzpmdW5jdGlvbihkaXIpe3ZhciBmaXJzdEhpdD10aGlzLmN1cnJlbnRIaXRJbmRleF89PT0tMTtpZihmaXJzdEhpdCYmZGlyPDApCit0aGlzLmN1cnJlbnRIaXRJbmRleF89MDt2YXIgTj10aGlzLmZpbHRlckhpdHMubGVuZ3RoO3RoaXMuY3VycmVudEhpdEluZGV4Xz0odGhpcy5jdXJyZW50SGl0SW5kZXhfK2RpcitOKSVOO2lmKCF0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXykKK3JldHVybjt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5maW5kRm9jdXNDaGFuZ2VkVG8odGhpcy5maWx0ZXJIaXRzLnN1YkV2ZW50U2V0KHRoaXMuY3VycmVudEhpdEluZGV4XywxKSk7fSxmaW5kTmV4dDpmdW5jdGlvbigpe3RoaXMuZmluZF8oMSk7fSxmaW5kUHJldmlvdXM6ZnVuY3Rpb24oKXt0aGlzLmZpbmRfKC0xKTt9fTtyZXR1cm57RmluZENvbnRyb2xsZXI6RmluZENvbnRyb2xsZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQW5ub3RhdGlvbigpe3RoaXMuZ3VpZF89dHIuYi5HVUlELmFsbG9jYXRlKCk7dGhpcy52aWV3Xz11bmRlZmluZWQ7fTtBbm5vdGF0aW9uLmZyb21EaWN0SWZQb3NzaWJsZT1mdW5jdGlvbihhcmdzKXtpZihhcmdzLnR5cGVOYW1lPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHR5cGVOYW1lIGFyZ3VtZW50Jyk7dmFyIHR5cGVJbmZvPUFubm90YXRpb24uZmluZFR5cGVJbmZvTWF0Y2hpbmcoZnVuY3Rpb24odHlwZUluZm8pe3JldHVybiB0eXBlSW5mby5tZXRhZGF0YS50eXBlTmFtZT09PWFyZ3MudHlwZU5hbWU7fSk7aWYodHlwZUluZm89PT11bmRlZmluZWQpCityZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0eXBlSW5mby5jb25zdHJ1Y3Rvci5mcm9tRGljdChhcmdzKTt9O0Fubm90YXRpb24uZnJvbURpY3Q9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30KK0Fubm90YXRpb24ucHJvdG90eXBlPXtnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sb25SZW1vdmU6ZnVuY3Rpb24oKXt9LHRvRGljdDpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxnZXRPckNyZWF0ZVZpZXc6ZnVuY3Rpb24odmlld3BvcnQpe2lmKCF0aGlzLnZpZXdfKQordGhpcy52aWV3Xz10aGlzLmNyZWF0ZVZpZXdfKHZpZXdwb3J0KTtyZXR1cm4gdGhpcy52aWV3Xzt9LGNyZWF0ZVZpZXdfOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9fTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoQW5ub3RhdGlvbixvcHRpb25zKTtBbm5vdGF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3dpbGwtcmVnaXN0ZXInLGZ1bmN0aW9uKGUpe2lmKCFlLnR5cGVJbmZvLmNvbnN0cnVjdG9yLmhhc093blByb3BlcnR5KCdmcm9tRGljdCcpKQordGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgZnJvbURpY3QgbWV0aG9kJyk7aWYoIWUudHlwZUluZm8ubWV0YWRhdGEudHlwZU5hbWUpCit0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgQW5ub3RhdGlvbnMgbXVzdCBwcm92aWRlIHR5cGVOYW1lJyk7fSk7cmV0dXJue0Fubm90YXRpb246QW5ub3RhdGlvbn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5hbm5vdGF0aW9ucycsZnVuY3Rpb24oKXtmdW5jdGlvbiBBbm5vdGF0aW9uVmlldyh2aWV3cG9ydCxhbm5vdGF0aW9uKXt9CitBbm5vdGF0aW9uVmlldy5wcm90b3R5cGU9e2RyYXc6ZnVuY3Rpb24oY3R4KXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO319O3JldHVybntBbm5vdGF0aW9uVmlldzpBbm5vdGF0aW9uVmlld307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5hbm5vdGF0aW9ucycsZnVuY3Rpb24oKXtmdW5jdGlvbiBYTWFya2VyQW5ub3RhdGlvblZpZXcodmlld3BvcnQsYW5ub3RhdGlvbil7dGhpcy52aWV3cG9ydF89dmlld3BvcnQ7dGhpcy5hbm5vdGF0aW9uXz1hbm5vdGF0aW9uO30KK1hNYXJrZXJBbm5vdGF0aW9uVmlldy5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS5hbm5vdGF0aW9ucy5Bbm5vdGF0aW9uVmlldy5wcm90b3R5cGUsZHJhdzpmdW5jdGlvbihjdHgpe3ZhciBkdD10aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgdmlld1g9ZHQueFdvcmxkVG9WaWV3KHRoaXMuYW5ub3RhdGlvbl8udGltZXN0YW1wKTtjdHguYmVnaW5QYXRoKCk7dHIudWkuYi5kcmF3TGluZShjdHgsdmlld1gsMCx2aWV3WCxjdHguY2FudmFzLmhlaWdodCk7Y3R4LnN0cm9rZVN0eWxlPXRoaXMuYW5ub3RhdGlvbl8uc3Ryb2tlU3R5bGU7Y3R4LnN0cm9rZSgpO319O3JldHVybntYTWFya2VyQW5ub3RhdGlvblZpZXc6WE1hcmtlckFubm90YXRpb25WaWV3fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFhNYXJrZXJBbm5vdGF0aW9uKHRpbWVzdGFtcCl7dHIubW9kZWwuQW5ub3RhdGlvbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50aW1lc3RhbXA9dGltZXN0YW1wO3RoaXMuc3Ryb2tlU3R5bGU9J3JnYmEoMCwgMCwgMjU1LCAwLjUpJzt9CitYTWFya2VyQW5ub3RhdGlvbi5mcm9tRGljdD1mdW5jdGlvbihkaWN0KXtyZXR1cm4gbmV3IFhNYXJrZXJBbm5vdGF0aW9uKGRpY3QuYXJncy50aW1lc3RhbXApO30KK1hNYXJrZXJBbm5vdGF0aW9uLnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLkFubm90YXRpb24ucHJvdG90eXBlLHRvRGljdDpmdW5jdGlvbigpe3JldHVybnt0eXBlTmFtZToneG1hcmtlcicsYXJnczp7dGltZXN0YW1wOnRoaXMudGltZXN0YW1wfX07fSxjcmVhdGVWaWV3XzpmdW5jdGlvbih2aWV3cG9ydCl7cmV0dXJuIG5ldyB0ci51aS5hbm5vdGF0aW9ucy5YTWFya2VyQW5ub3RhdGlvblZpZXcodmlld3BvcnQsdGhpcyk7fX07dHIubW9kZWwuQW5ub3RhdGlvbi5yZWdpc3RlcihYTWFya2VyQW5ub3RhdGlvbix7dHlwZU5hbWU6J3htYXJrZXInfSk7cmV0dXJue1hNYXJrZXJBbm5vdGF0aW9uOlhNYXJrZXJBbm5vdGF0aW9ufTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gTW91c2VUcmFja2VyKG9wdF90YXJnZXRFbGVtZW50KXt0aGlzLm9uTW91c2VEb3duXz10aGlzLm9uTW91c2VEb3duXy5iaW5kKHRoaXMpO3RoaXMub25Nb3VzZU1vdmVfPXRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7dGhpcy5vbk1vdXNlVXBfPXRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpO3RoaXMudGFyZ2V0RWxlbWVudD1vcHRfdGFyZ2V0RWxlbWVudDt9CitNb3VzZVRyYWNrZXIucHJvdG90eXBlPXtnZXQgdGFyZ2V0RWxlbWVudCgpe3JldHVybiB0aGlzLnRhcmdldEVsZW1lbnRfO30sc2V0IHRhcmdldEVsZW1lbnQodGFyZ2V0RWxlbWVudCl7aWYodGhpcy50YXJnZXRFbGVtZW50XykKK3RoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0aGlzLm9uTW91c2VEb3duXyk7dGhpcy50YXJnZXRFbGVtZW50Xz10YXJnZXRFbGVtZW50O2lmKHRoaXMudGFyZ2V0RWxlbWVudF8pCit0aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsdGhpcy5vbk1vdXNlRG93bl8pO30sb25Nb3VzZURvd25fOmZ1bmN0aW9uKGUpe2lmKGUuYnV0dG9uIT09MCkKK3JldHVybiB0cnVlO2U9dGhpcy5yZW1ha2VFdmVudF8oZSwnbW91c2UtdHJhY2tlci1zdGFydCcpO3RoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLHRoaXMub25Nb3VzZU1vdmVfKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJyx0aGlzLm9uTW91c2VVcF8pO3RoaXMudGFyZ2V0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsdGhpcy5vbk1vdXNlVXBfKTt0aGlzLnNhdmVQcmV2aW91c1VzZXJTZWxlY3RfPWRvY3VtZW50LmJvZHkuc3R5bGVbJy13ZWJraXQtdXNlci1zZWxlY3QnXTtkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J109J25vbmUnO2UucHJldmVudERlZmF1bHQoKTtyZXR1cm4gdHJ1ZTt9LG9uTW91c2VNb3ZlXzpmdW5jdGlvbihlKXtlPXRoaXMucmVtYWtlRXZlbnRfKGUsJ21vdXNlLXRyYWNrZXItbW92ZScpO3RoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTt9LG9uTW91c2VVcF86ZnVuY3Rpb24oZSl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyx0aGlzLm9uTW91c2VNb3ZlXyk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsdGhpcy5vbk1vdXNlVXBfKTt0aGlzLnRhcmdldEVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLHRoaXMub25Nb3VzZVVwXyk7ZG9jdW1lbnQuYm9keS5zdHlsZVsnLXdlYmtpdC11c2VyLXNlbGVjdCddPXRoaXMuc2F2ZVByZXZpb3VzVXNlclNlbGVjdF87ZT10aGlzLnJlbWFrZUV2ZW50XyhlLCdtb3VzZS10cmFja2VyLWVuZCcpO3RoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTt9LHJlbWFrZUV2ZW50XzpmdW5jdGlvbihlLG5ld1R5cGUpe3ZhciByZW1hZGU9bmV3IHRyLmIuRXZlbnQobmV3VHlwZSx0cnVlLHRydWUpO3JlbWFkZS54PWUueDtyZW1hZGUueT1lLnk7cmVtYWRlLm9mZnNldFg9ZS5vZmZzZXRYO3JlbWFkZS5vZmZzZXRZPWUub2Zmc2V0WTtyZW1hZGUuY2xpZW50WD1lLmNsaWVudFg7cmVtYWRlLmNsaWVudFk9ZS5jbGllbnRZO3JldHVybiByZW1hZGU7fX07ZnVuY3Rpb24gdHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwKG1vdXNlTW92ZUhhbmRsZXIsb3B0X21vdXNlVXBIYW5kbGVyLG9wdF9rZXlVcEhhbmRsZXIpe2Z1bmN0aW9uIGNsZWFudXBBbmREaXNwYXRjaFRvTW91c2VVcChlKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLG1vdXNlTW92ZUhhbmRsZXIpO2lmKG9wdF9rZXlVcEhhbmRsZXIpCitkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsb3B0X2tleVVwSGFuZGxlcik7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsY2xlYW51cEFuZERpc3BhdGNoVG9Nb3VzZVVwKTtpZihvcHRfbW91c2VVcEhhbmRsZXIpCitvcHRfbW91c2VVcEhhbmRsZXIoZSk7fQorZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyxtb3VzZU1vdmVIYW5kbGVyKTtpZihvcHRfa2V5VXBIYW5kbGVyKQorZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLG9wdF9rZXlVcEhhbmRsZXIpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLGNsZWFudXBBbmREaXNwYXRjaFRvTW91c2VVcCk7fQorcmV0dXJue01vdXNlVHJhY2tlcjpNb3VzZVRyYWNrZXIsdHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwOnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5iJyxmdW5jdGlvbigpe3ZhciBNT1VTRV9TRUxFQ1RPUl9NT0RFPXt9O01PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OPTB4MTtNT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU49MHgyO01PVVNFX1NFTEVDVE9SX01PREUuWk9PTT0weDQ7TU9VU0VfU0VMRUNUT1JfTU9ERS5USU1JTkc9MHg4O01PVVNFX1NFTEVDVE9SX01PREUuUk9UQVRFPTB4MTA7TU9VU0VfU0VMRUNUT1JfTU9ERS5BTExfTU9ERVM9MHgxRjt2YXIgTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPUz17fTtNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW01PVVNFX1NFTEVDVE9SX01PREUuUEFOU0NBTl09e21vZGU6TU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOLHRpdGxlOidwYW4nLGV2ZW50TmFtZXM6e2VudGVyOidlbnRlcnBhbicsYmVnaW46J2JlZ2lucGFuJyx1cGRhdGU6J3VwZGF0ZXBhbicsZW5kOidlbmRwYW4nLGV4aXQ6J2V4aXRwYW4nfSxhY3RpdmVCYWNrZ3JvdW5kUG9zaXRpb246Jy0zMHB4IC0xMHB4JyxkZWZhdWx0QmFja2dyb3VuZFBvc2l0aW9uOicwIC0xMHB4J307TU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTl09e21vZGU6TU9VU0VfU0VMRUNUT1JfTU9ERS5TRUxFQ1RJT04sdGl0bGU6J3NlbGVjdGlvbicsZXZlbnROYW1lczp7ZW50ZXI6J2VudGVyc2VsZWN0aW9uJyxiZWdpbjonYmVnaW5zZWxlY3Rpb24nLHVwZGF0ZTondXBkYXRlc2VsZWN0aW9uJyxlbmQ6J2VuZHNlbGVjdGlvbicsZXhpdDonZXhpdHNlbGVjdGlvbid9LGFjdGl2ZUJhY2tncm91bmRQb3NpdGlvbjonLTMwcHggLTQwcHgnLGRlZmF1bHRCYWNrZ3JvdW5kUG9zaXRpb246JzAgLTQwcHgnfTtNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW01PVVNFX1NFTEVDVE9SX01PREUuWk9PTV09e21vZGU6TU9VU0VfU0VMRUNUT1JfTU9ERS5aT09NLHRpdGxlOid6b29tJyxldmVudE5hbWVzOntlbnRlcjonZW50ZXJ6b29tJyxiZWdpbjonYmVnaW56b29tJyx1cGRhdGU6J3VwZGF0ZXpvb20nLGVuZDonZW5kem9vbScsZXhpdDonZXhpdHpvb20nfSxhY3RpdmVCYWNrZ3JvdW5kUG9zaXRpb246Jy0zMHB4IC03MHB4JyxkZWZhdWx0QmFja2dyb3VuZFBvc2l0aW9uOicwIC03MHB4J307TU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlRJTUlOR109e21vZGU6TU9VU0VfU0VMRUNUT1JfTU9ERS5USU1JTkcsdGl0bGU6J3RpbWluZycsZXZlbnROYW1lczp7ZW50ZXI6J2VudGVydGltaW5nJyxiZWdpbjonYmVnaW50aW1pbmcnLHVwZGF0ZTondXBkYXRldGltaW5nJyxlbmQ6J2VuZHRpbWluZycsZXhpdDonZXhpdHRpbWluZyd9LGFjdGl2ZUJhY2tncm91bmRQb3NpdGlvbjonLTMwcHggLTEwMHB4JyxkZWZhdWx0QmFja2dyb3VuZFBvc2l0aW9uOicwIC0xMDBweCd9O01PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbTU9VU0VfU0VMRUNUT1JfTU9ERS5ST1RBVEVdPXttb2RlOk1PVVNFX1NFTEVDVE9SX01PREUuUk9UQVRFLHRpdGxlOidyb3RhdGUnLGV2ZW50TmFtZXM6e2VudGVyOidlbnRlcnJvdGF0ZScsYmVnaW46J2JlZ2lucm90YXRlJyx1cGRhdGU6J3VwZGF0ZXJvdGF0ZScsZW5kOidlbmRyb3RhdGUnLGV4aXQ6J2V4aXRyb3RhdGUnfSxhY3RpdmVCYWNrZ3JvdW5kUG9zaXRpb246Jy0zMHB4IC0xMzBweCcsZGVmYXVsdEJhY2tncm91bmRQb3NpdGlvbjonMCAtMTMwcHgnfTtyZXR1cm57TU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPUzpNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TLE1PVVNFX1NFTEVDVE9SX01PREU6TU9VU0VfU0VMRUNUT1JfTU9ERX07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLWItbW91c2UtbW9kZS1pY29uJyx7cHVibGlzaDp7bW9kZU5hbWU6e3ZhbHVlOnVuZGVmaW5lZCxyZWZsZWN0OnRydWV9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVfPWZhbHNlO3RoaXMuYWNjZWxlcmF0b3JLZXlfPXVuZGVmaW5lZDt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBtb2RlKCl7cmV0dXJuIHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERVt0aGlzLm1vZGVOYW1lXTt9LHNldCBtb2RlKG1vZGUpe3ZhciBtb2RlSW5mbz10ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbbW9kZV07dmFyIG1vZGVOYW1lPXRyLmIuZmluZEZpcnN0S2V5SW5EaWN0TWF0Y2hpbmcodHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLGZ1bmN0aW9uKG1vZGVOYW1lLGNhbmRpZGF0ZU1vZGUpe3JldHVybiBjYW5kaWRhdGVNb2RlPT09bW9kZTt9KTtpZihtb2RlTmFtZT09PXVuZGVmaW5lZCkKK3Rocm93IG5ldyBFcnJvcignVW5rbm93biBtb2RlJyk7dGhpcy5tb2RlTmFtZT1tb2RlTmFtZTt9LG1vZGVOYW1lQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuYWN0aXZlXzt9LHNldCBhY3RpdmUoYWN0aXZlKXt0aGlzLmFjdGl2ZV89ISFhY3RpdmU7aWYodGhpcy5hY3RpdmVfKQordGhpcy5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtlbHNlCit0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgYWNjZWxlcmF0b3JLZXkoKXtyZXR1cm4gdGhpcy5hY2NlbGVyYXRvcktleV87fSxzZXQgYWNjZWxlcmF0b3JLZXkoYWNjZWxlcmF0b3JLZXkpe3RoaXMuYWNjZWxlcmF0b3JLZXlfPWFjY2VsZXJhdG9yS2V5O3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXtpZih0aGlzLm1vZGVOYW1lPT09dW5kZWZpbmVkKQorcmV0dXJuO3ZhciBtb2RlPXRoaXMubW9kZTtpZihtb2RlPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1vZGUnKTt2YXIgbW9kZUluZm89dHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW21vZGVdO2lmKCFtb2RlSW5mbykKK3Rocm93IG5ldyBFcnJvcignSW52YWxpZCBtb2RlJyk7dmFyIHRpdGxlPW1vZGVJbmZvLnRpdGxlO2lmKHRoaXMuYWNjZWxlcmF0b3JLZXlfKQordGl0bGU9dGl0bGUrJyAoJyt0aGlzLmFjY2VsZXJhdG9yS2V5XysnKSc7dGhpcy50aXRsZT10aXRsZTt2YXIgYnA7aWYodGhpcy5hY3RpdmVfKQorYnA9bW9kZUluZm8uYWN0aXZlQmFja2dyb3VuZFBvc2l0aW9uO2Vsc2UKK2JwPW1vZGVJbmZvLmRlZmF1bHRCYWNrZ3JvdW5kUG9zaXRpb247dGhpcy5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb249YnA7fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYicsZnVuY3Rpb24oKXt2YXIgTU9VU0VfU0VMRUNUT1JfTU9ERT10ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREU7dmFyIE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1M9dHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TO3ZhciBNSU5fTU9VU0VfU0VMRUNUSU9OX0RJU1RBTkNFPTQ7dmFyIE1PRElGSUVSPXtTSElGVDoweDEsU1BBQ0U6MHgyLENNRF9PUl9DVFJMOjB4NH07UG9seW1lcigndHItdWktYi1tb3VzZS1tb2RlLXNlbGVjdG9yJyx7X19wcm90b19fOkhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5zdXBwb3J0ZWRNb2RlTWFza189TU9VU0VfU0VMRUNUT1JfTU9ERS5BTExfTU9ERVM7dGhpcy5pbml0aWFsUmVsYXRpdmVNb3VzZURvd25Qb3NfPXt4OjAseTowfTt0aGlzLmRlZmF1bHRNb2RlXz1NT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU47dGhpcy5zZXR0aW5nc0tleV89dW5kZWZpbmVkO3RoaXMubW91c2VQb3NfPXt4OjAseTowfTt0aGlzLm1vdXNlRG93blBvc189e3g6MCx5OjB9O3RoaXMub25Nb3VzZURvd25fPXRoaXMub25Nb3VzZURvd25fLmJpbmQodGhpcyk7dGhpcy5vbk1vdXNlTW92ZV89dGhpcy5vbk1vdXNlTW92ZV8uYmluZCh0aGlzKTt0aGlzLm9uTW91c2VVcF89dGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyk7dGhpcy5vbktleURvd25fPXRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpO3RoaXMub25LZXlVcF89dGhpcy5vbktleVVwXy5iaW5kKHRoaXMpO3RoaXMubW9kZV89dW5kZWZpbmVkO3RoaXMubW9kZVRvS2V5Q29kZU1hcF89e307dGhpcy5tb2RpZmllclRvTW9kZU1hcF89e307dGhpcy50YXJnZXRFbGVtZW50Xz11bmRlZmluZWQ7dGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXz1udWxsO3RoaXMuaXNJbnRlcmFjdGluZ189ZmFsc2U7dGhpcy5pc0NsaWNrXz1mYWxzZTt9LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5idXR0b25zRWxfPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuYnV0dG9ucycpO3RoaXMuZHJhZ0hhbmRsZUVsXz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmRyYWctaGFuZGxlJyk7dGhpcy5zdXBwb3J0ZWRNb2RlTWFzaz1NT1VTRV9TRUxFQ1RPUl9NT0RFLkFMTF9NT0RFUzt0aGlzLmRyYWdIYW5kbGVFbF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0aGlzLm9uRHJhZ0hhbmRsZU1vdXNlRG93bl8uYmluZCh0aGlzKSk7dGhpcy5idXR0b25zRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLHRoaXMub25CdXR0b25Nb3VzZVVwXyk7dGhpcy5idXR0b25zRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsdGhpcy5vbkJ1dHRvbk1vdXNlRG93bl8pO3RoaXMuYnV0dG9uc0VsXy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsdGhpcy5vbkJ1dHRvblByZXNzXy5iaW5kKHRoaXMpKTt9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsdGhpcy5vbktleURvd25fKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsdGhpcy5vbktleVVwXyk7fSxkZXRhY2hlZDpmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLHRoaXMub25LZXlEb3duXyk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLHRoaXMub25LZXlVcF8pO30sZ2V0IHRhcmdldEVsZW1lbnQoKXtyZXR1cm4gdGhpcy50YXJnZXRFbGVtZW50Xzt9LHNldCB0YXJnZXRFbGVtZW50KHRhcmdldCl7aWYodGhpcy50YXJnZXRFbGVtZW50XykKK3RoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0aGlzLm9uTW91c2VEb3duXyk7dGhpcy50YXJnZXRFbGVtZW50Xz10YXJnZXQ7aWYodGhpcy50YXJnZXRFbGVtZW50XykKK3RoaXMudGFyZ2V0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0aGlzLm9uTW91c2VEb3duXyk7fSxnZXQgZGVmYXVsdE1vZGUoKXtyZXR1cm4gdGhpcy5kZWZhdWx0TW9kZV87fSxzZXQgZGVmYXVsdE1vZGUoZGVmYXVsdE1vZGUpe3RoaXMuZGVmYXVsdE1vZGVfPWRlZmF1bHRNb2RlO30sZ2V0IHNldHRpbmdzS2V5KCl7cmV0dXJuIHRoaXMuc2V0dGluZ3NLZXlfO30sc2V0IHNldHRpbmdzS2V5KHNldHRpbmdzS2V5KXt0aGlzLnNldHRpbmdzS2V5Xz1zZXR0aW5nc0tleTtpZighdGhpcy5zZXR0aW5nc0tleV8pCityZXR1cm47dmFyIG1vZGU9dHIuYi5TZXR0aW5ncy5nZXQodGhpcy5zZXR0aW5nc0tleV8rJy5tb2RlJyx1bmRlZmluZWQpO2lmKE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbbW9kZV09PT11bmRlZmluZWQpCittb2RlPXVuZGVmaW5lZDtpZigobW9kZSZ0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXyk9PT0wKQorbW9kZT11bmRlZmluZWQ7aWYoIW1vZGUpCittb2RlPXRoaXMuZGVmYXVsdE1vZGVfO3RoaXMubW9kZT1tb2RlO3ZhciBwb3M9dHIuYi5TZXR0aW5ncy5nZXQodGhpcy5zZXR0aW5nc0tleV8rJy5wb3MnLHVuZGVmaW5lZCk7aWYocG9zKQordGhpcy5wb3M9cG9zO30sZ2V0IHN1cHBvcnRlZE1vZGVNYXNrKCl7cmV0dXJuIHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfO30sc2V0IHN1cHBvcnRlZE1vZGVNYXNrKHN1cHBvcnRlZE1vZGVNYXNrKXtpZih0aGlzLm1vZGUmJihzdXBwb3J0ZWRNb2RlTWFzayZ0aGlzLm1vZGUpPT09MCkKK3Rocm93IG5ldyBFcnJvcignc3VwcG9ydGVkTW9kZU1hc2sgbXVzdCBpbmNsdWRlIGN1cnJlbnQgbW9kZS4nKTtmdW5jdGlvbiBjcmVhdGVCdXR0b25Gb3JNb2RlKG1vZGUpe3JldHVybiBidXR0b247fQordGhpcy5zdXBwb3J0ZWRNb2RlTWFza189c3VwcG9ydGVkTW9kZU1hc2s7dGhpcy5idXR0b25zRWxfLnRleHRDb250ZW50PScnO2Zvcih2YXIgbW9kZU5hbWUgaW4gTU9VU0VfU0VMRUNUT1JfTU9ERSl7aWYobW9kZU5hbWU9PSdBTExfTU9ERVMnKQorY29udGludWU7dmFyIG1vZGU9TU9VU0VfU0VMRUNUT1JfTU9ERVttb2RlTmFtZV07aWYoKHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfJm1vZGUpPT09MCkKK2NvbnRpbnVlO3ZhciBidXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1tb3VzZS1tb2RlLWljb24nKTtidXR0b24ubW9kZT1tb2RlO2J1dHRvbi5jbGFzc0xpc3QuYWRkKCd0b29sLWJ1dHRvbicpO3RoaXMuYnV0dG9uc0VsXy5hcHBlbmRDaGlsZChidXR0b24pO319LGdldEJ1dHRvbkZvck1vZGVfOmZ1bmN0aW9uKG1vZGUpe2Zvcih2YXIgaT0wO2k8dGhpcy5idXR0b25zRWxfLmNoaWxkcmVuLmxlbmd0aDtpKyspe3ZhciBidXR0b25FbD10aGlzLmJ1dHRvbnNFbF8uY2hpbGRyZW5baV07aWYoYnV0dG9uRWwubW9kZT09PW1vZGUpCityZXR1cm4gYnV0dG9uRWw7fQorcmV0dXJuIHVuZGVmaW5lZDt9LGdldCBtb2RlKCl7cmV0dXJuIHRoaXMuY3VycmVudE1vZGVfO30sc2V0IG1vZGUobmV3TW9kZSl7aWYobmV3TW9kZSE9PXVuZGVmaW5lZCl7aWYodHlwZW9mIG5ld01vZGUhPT0nbnVtYmVyJykKK3Rocm93IG5ldyBFcnJvcignTW9kZSBtdXN0IGJlIGEgbnVtYmVyJyk7aWYoKG5ld01vZGUmdGhpcy5zdXBwb3J0ZWRNb2RlTWFza18pPT09MCkKK3Rocm93IG5ldyBFcnJvcignQ2Fubm90IHN3aXRjaCB0byB0aGlzIG1vZGUsIGl0IGlzIG5vdCBzdXBwb3J0ZWQnKTtpZihNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW25ld01vZGVdPT09dW5kZWZpbmVkKQordGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgbW9kZScpO30KK3ZhciBtb2RlSW5mbztpZih0aGlzLmN1cnJlbnRNb2RlXz09PW5ld01vZGUpCityZXR1cm47aWYodGhpcy5jdXJyZW50TW9kZV8pe3ZhciBidXR0b25FbD10aGlzLmdldEJ1dHRvbkZvck1vZGVfKHRoaXMuY3VycmVudE1vZGVfKTtpZihidXR0b25FbCkKK2J1dHRvbkVsLmFjdGl2ZT1mYWxzZTtpZih0aGlzLmlzSW50ZXJhY3RpbmdfKXt2YXIgbW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW3RoaXMubW9kZV0uZXZlbnROYW1lcy5lbmQpO3RoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTt9Cittb2RlSW5mbz1NT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW3RoaXMuY3VycmVudE1vZGVfXTt0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcyxtb2RlSW5mby5ldmVudE5hbWVzLmV4aXQsdHJ1ZSk7fQordGhpcy5jdXJyZW50TW9kZV89bmV3TW9kZTtpZih0aGlzLmN1cnJlbnRNb2RlXyl7dmFyIGJ1dHRvbkVsPXRoaXMuZ2V0QnV0dG9uRm9yTW9kZV8odGhpcy5jdXJyZW50TW9kZV8pO2lmKGJ1dHRvbkVsKQorYnV0dG9uRWwuYWN0aXZlPXRydWU7dGhpcy5tb3VzZURvd25Qb3NfLng9dGhpcy5tb3VzZVBvc18ueDt0aGlzLm1vdXNlRG93blBvc18ueT10aGlzLm1vdXNlUG9zXy55O21vZGVJbmZvPU1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbdGhpcy5jdXJyZW50TW9kZV9dO2lmKCF0aGlzLmlzSW5BbHRlcm5hdGl2ZU1vZGVfKQordHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsbW9kZUluZm8uZXZlbnROYW1lcy5lbnRlcix0cnVlKTtpZih0aGlzLmlzSW50ZXJhY3RpbmdfKXt2YXIgbW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW3RoaXMubW9kZV0uZXZlbnROYW1lcy5iZWdpbik7dGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpO319CitpZih0aGlzLnNldHRpbmdzS2V5XyYmIXRoaXMuaXNJbkFsdGVybmF0aXZlTW9kZV8pCit0ci5iLlNldHRpbmdzLnNldCh0aGlzLnNldHRpbmdzS2V5XysnLm1vZGUnLHRoaXMubW9kZSk7fSxzZXRLZXlDb2RlRm9yTW9kZTpmdW5jdGlvbihtb2RlLGtleUNvZGUpe2lmKChtb2RlJnRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfKT09PTApCit0aHJvdyBuZXcgRXJyb3IoJ01vZGUgbm90IHN1cHBvcnRlZCcpO3RoaXMubW9kZVRvS2V5Q29kZU1hcF9bbW9kZV09a2V5Q29kZTtpZighdGhpcy5idXR0b25zRWxfKQorcmV0dXJuO3ZhciBidXR0b25FbD10aGlzLmdldEJ1dHRvbkZvck1vZGVfKG1vZGUpO2lmKGJ1dHRvbkVsKQorYnV0dG9uRWwuYWNjZWxlcmF0b3JLZXk9U3RyaW5nLmZyb21DaGFyQ29kZShrZXlDb2RlKTt9LHNldEN1cnJlbnRNb3VzZVBvc0Zyb21FdmVudF86ZnVuY3Rpb24oZSl7dGhpcy5tb3VzZVBvc18ueD1lLmNsaWVudFg7dGhpcy5tb3VzZVBvc18ueT1lLmNsaWVudFk7fSxjcmVhdGVFdmVudF86ZnVuY3Rpb24oZXZlbnROYW1lLHNvdXJjZUV2ZW50KXt2YXIgZXZlbnQ9bmV3IHRyLmIuRXZlbnQoZXZlbnROYW1lLHRydWUpO2V2ZW50LmNsaWVudFg9dGhpcy5tb3VzZVBvc18ueDtldmVudC5jbGllbnRZPXRoaXMubW91c2VQb3NfLnk7ZXZlbnQuZGVsdGFYPXRoaXMubW91c2VQb3NfLngtdGhpcy5tb3VzZURvd25Qb3NfLng7ZXZlbnQuZGVsdGFZPXRoaXMubW91c2VQb3NfLnktdGhpcy5tb3VzZURvd25Qb3NfLnk7ZXZlbnQubW91c2VEb3duWD10aGlzLm1vdXNlRG93blBvc18ueDtldmVudC5tb3VzZURvd25ZPXRoaXMubW91c2VEb3duUG9zXy55O2V2ZW50LmRpZFByZXZlbnREZWZhdWx0PWZhbHNlO2V2ZW50LnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7ZXZlbnQuZGlkUHJldmVudERlZmF1bHQ9dHJ1ZTtpZihzb3VyY2VFdmVudCkKK3NvdXJjZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7fTtldmVudC5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtzb3VyY2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTt9O2V2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fTtyZXR1cm4gZXZlbnQ7fSxvbk1vdXNlRG93bl86ZnVuY3Rpb24oZSl7aWYoZS5idXR0b24hPT0wKQorcmV0dXJuO3RoaXMuc2V0Q3VycmVudE1vdXNlUG9zRnJvbUV2ZW50XyhlKTt2YXIgbW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW3RoaXMubW9kZV0uZXZlbnROYW1lcy5iZWdpbixlKTt0aGlzLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7dGhpcy5pc0ludGVyYWN0aW5nXz10cnVlO3RoaXMuaXNDbGlja189dHJ1ZTt0ci51aS5iLnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcCh0aGlzLm9uTW91c2VNb3ZlXyx0aGlzLm9uTW91c2VVcF8pO30sb25Nb3VzZU1vdmVfOmZ1bmN0aW9uKGUpe3RoaXMuc2V0Q3VycmVudE1vdXNlUG9zRnJvbUV2ZW50XyhlKTt2YXIgbW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW3RoaXMubW9kZV0uZXZlbnROYW1lcy51cGRhdGUsZSk7dGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpO2lmKHRoaXMuaXNJbnRlcmFjdGluZ18pCit0aGlzLmNoZWNrSXNDbGlja18oZSk7fSxvbk1vdXNlVXBfOmZ1bmN0aW9uKGUpe2lmKGUuYnV0dG9uIT09MCkKK3JldHVybjt2YXIgbW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW3RoaXMubW9kZV0uZXZlbnROYW1lcy5lbmQsZSk7bW91c2VFdmVudC5pc0NsaWNrPXRoaXMuaXNDbGlja187dGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpO2lmKHRoaXMuaXNDbGlja18mJiFtb3VzZUV2ZW50LmRpZFByZXZlbnREZWZhdWx0KQordGhpcy5kaXNwYXRjaENsaWNrRXZlbnRzXyhlKTt0aGlzLmlzSW50ZXJhY3RpbmdfPWZhbHNlO3RoaXMudXBkYXRlQWx0ZXJuYXRpdmVNb2RlU3RhdGVfKGUpO30sb25CdXR0b25Nb3VzZURvd25fOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTtlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO30sb25CdXR0b25Nb3VzZVVwXzpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTt9LG9uQnV0dG9uUHJlc3NfOmZ1bmN0aW9uKGUpe3RoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF89dW5kZWZpbmVkO3RoaXMubW9kZT1lLnRhcmdldC5tb2RlO2UucHJldmVudERlZmF1bHQoKTt9LG9uS2V5RG93bl86ZnVuY3Rpb24oZSl7aWYoZS5wYXRoWzBdLnRhZ05hbWU9PSdJTlBVVCcpCityZXR1cm47aWYoZS5rZXlDb2RlPT09JyAnLmNoYXJDb2RlQXQoMCkpCit0aGlzLnNwYWNlUHJlc3NlZF89dHJ1ZTt0aGlzLnVwZGF0ZUFsdGVybmF0aXZlTW9kZVN0YXRlXyhlKTt9LG9uS2V5VXBfOmZ1bmN0aW9uKGUpe2lmKGUucGF0aFswXS50YWdOYW1lPT0nSU5QVVQnKQorcmV0dXJuO2lmKGUua2V5Q29kZT09PScgJy5jaGFyQ29kZUF0KDApKQordGhpcy5zcGFjZVByZXNzZWRfPWZhbHNlO3ZhciBkaWRIYW5kbGVLZXk9ZmFsc2U7dHIuYi5pdGVySXRlbXModGhpcy5tb2RlVG9LZXlDb2RlTWFwXyxmdW5jdGlvbihtb2RlU3RyLGtleUNvZGUpe2lmKGUua2V5Q29kZT09PWtleUNvZGUpe3RoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF89dW5kZWZpbmVkO3ZhciBtb2RlPXBhcnNlSW50KG1vZGVTdHIpO3RoaXMubW9kZT1tb2RlO2RpZEhhbmRsZUtleT10cnVlO319LHRoaXMpO2lmKGRpZEhhbmRsZUtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJuO30KK3RoaXMudXBkYXRlQWx0ZXJuYXRpdmVNb2RlU3RhdGVfKGUpO30sdXBkYXRlQWx0ZXJuYXRpdmVNb2RlU3RhdGVfOmZ1bmN0aW9uKGUpe3ZhciBzaGlmdFByZXNzZWQ9ZS5zaGlmdEtleTt2YXIgc3BhY2VQcmVzc2VkPXRoaXMuc3BhY2VQcmVzc2VkXzt2YXIgY21kT3JDdHJsUHJlc3NlZD0odHIuaXNNYWMmJmUubWV0YUtleSl8fCghdHIuaXNNYWMmJmUuY3RybEtleSk7dmFyIHNtbT10aGlzLnN1cHBvcnRlZE1vZGVNYXNrXzt2YXIgbmV3TW9kZTt2YXIgaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGU9ZmFsc2U7aWYoc2hpZnRQcmVzc2VkJiYodGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU0hJRlRdJnNtbSkhPT0wKXtuZXdNb2RlPXRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLlNISUZUXTtpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZT10cnVlO31lbHNlIGlmKHNwYWNlUHJlc3NlZCYmKHRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLlNQQUNFXSZzbW0pIT09MCl7bmV3TW9kZT10aGlzLm1vZGlmaWVyVG9Nb2RlTWFwX1tNT0RJRklFUi5TUEFDRV07aXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGU9dHJ1ZTt9ZWxzZSBpZihjbWRPckN0cmxQcmVzc2VkJiYodGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuQ01EX09SX0NUUkxdJnNtbSkhPT0wKXtuZXdNb2RlPXRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLkNNRF9PUl9DVFJMXTtpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZT10cnVlO31lbHNle2lmKHRoaXMuaXNJbkFsdGVybmF0aXZlTW9kZV8pe25ld01vZGU9dGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXztpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZT1mYWxzZTt9ZWxzZXtuZXdNb2RlPXVuZGVmaW5lZDt9fQoraWYodGhpcy5tb2RlPT09bmV3TW9kZXx8bmV3TW9kZT09PXVuZGVmaW5lZCkKK3JldHVybjtpZihpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZSkKK3RoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF89dGhpcy5tb2RlO3RoaXMubW9kZT1uZXdNb2RlO30sZ2V0IGlzSW5BbHRlcm5hdGl2ZU1vZGVfKCl7cmV0dXJuISF0aGlzLm1vZGVCZWZvcmVBbHRlcm5hdGl2ZU1vZGVBY3RpdmF0ZWRfO30sc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlOmZ1bmN0aW9uKG1vZGUsbW9kaWZpZXIpe3RoaXMubW9kaWZpZXJUb01vZGVNYXBfW21vZGlmaWVyXT1tb2RlO30sZ2V0IHBvcygpe3JldHVybnt4OnBhcnNlSW50KHRoaXMuc3R5bGUubGVmdCkseTpwYXJzZUludCh0aGlzLnN0eWxlLnRvcCl9O30sc2V0IHBvcyhwb3Mpe3Bvcz10aGlzLmNvbnN0cmFpblBvc2l0aW9uVG9Cb3VuZHNfKHBvcyk7dGhpcy5zdHlsZS5sZWZ0PXBvcy54KydweCc7dGhpcy5zdHlsZS50b3A9cG9zLnkrJ3B4JztpZih0aGlzLnNldHRpbmdzS2V5XykKK3RyLmIuU2V0dGluZ3Muc2V0KHRoaXMuc2V0dGluZ3NLZXlfKycucG9zJyx0aGlzLnBvcyk7fSxjb25zdHJhaW5Qb3NpdGlvblRvQm91bmRzXzpmdW5jdGlvbihwb3Mpe3ZhciBwYXJlbnQ9dGhpcy5vZmZzZXRQYXJlbnR8fGRvY3VtZW50LmJvZHk7dmFyIHBhcmVudFJlY3Q9dHIudWkuYi53aW5kb3dSZWN0Rm9yRWxlbWVudChwYXJlbnQpO3ZhciB0b3A9MDt2YXIgYm90dG9tPXBhcmVudFJlY3QuaGVpZ2h0LXRoaXMub2Zmc2V0SGVpZ2h0O3ZhciBsZWZ0PTA7dmFyIHJpZ2h0PXBhcmVudFJlY3Qud2lkdGgtdGhpcy5vZmZzZXRXaWR0aDt2YXIgcmVzPXt9O3Jlcy54PU1hdGgubWF4KHBvcy54LGxlZnQpO3Jlcy54PU1hdGgubWluKHJlcy54LHJpZ2h0KTtyZXMueT1NYXRoLm1heChwb3MueSx0b3ApO3Jlcy55PU1hdGgubWluKHJlcy55LGJvdHRvbSk7cmV0dXJuIHJlczt9LG9uRHJhZ0hhbmRsZU1vdXNlRG93bl86ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7dmFyIG1vdXNlRG93blBvcz17eDplLmNsaWVudFgtdGhpcy5vZmZzZXRMZWZ0LHk6ZS5jbGllbnRZLXRoaXMub2Zmc2V0VG9wfTt0ci51aS5iLnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcChmdW5jdGlvbihlKXt2YXIgcG9zPXt9O3Bvcy54PWUuY2xpZW50WC1tb3VzZURvd25Qb3MueDtwb3MueT1lLmNsaWVudFktbW91c2VEb3duUG9zLnk7dGhpcy5wb3M9cG9zO30uYmluZCh0aGlzKSk7fSxjaGVja0lzQ2xpY2tfOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmlzSW50ZXJhY3RpbmdffHwhdGhpcy5pc0NsaWNrXykKK3JldHVybjt2YXIgZGVsdGFYPXRoaXMubW91c2VQb3NfLngtdGhpcy5tb3VzZURvd25Qb3NfLng7dmFyIGRlbHRhWT10aGlzLm1vdXNlUG9zXy55LXRoaXMubW91c2VEb3duUG9zXy55O3ZhciBtaW5EaXN0PU1JTl9NT1VTRV9TRUxFQ1RJT05fRElTVEFOQ0U7aWYoZGVsdGFYKmRlbHRhWCtkZWx0YVkqZGVsdGFZPm1pbkRpc3QqbWluRGlzdCkKK3RoaXMuaXNDbGlja189ZmFsc2U7fSxkaXNwYXRjaENsaWNrRXZlbnRzXzpmdW5jdGlvbihlKXtpZighdGhpcy5pc0NsaWNrXykKK3JldHVybjt2YXIgbW9kZUluZm89TU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTl07dmFyIGV2ZW50TmFtZXM9bW9kZUluZm8uZXZlbnROYW1lczt2YXIgbW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhldmVudE5hbWVzLmJlZ2luKTt0aGlzLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7bW91c2VFdmVudD10aGlzLmNyZWF0ZUV2ZW50XyhldmVudE5hbWVzLmVuZCk7dGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpO319KTtyZXR1cm57TUlOX01PVVNFX1NFTEVDVElPTl9ESVNUQU5DRTpNSU5fTU9VU0VfU0VMRUNUSU9OX0RJU1RBTkNFLE1PRElGSUVSOk1PRElGSUVSfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7dmFyIGNvbnN0YW50cz17SEVBRElOR19XSURUSDoyNTB9O3JldHVybntjb25zdGFudHM6Y29uc3RhbnRzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7dmFyIGNvbnN0YW50cz10ci5jLmNvbnN0YW50cztmdW5jdGlvbiBUaW1pbmdUb29sKHZpZXdwb3J0LHRhcmdldEVsZW1lbnQpe3RoaXMudmlld3BvcnRfPXZpZXdwb3J0O3RoaXMub25Nb3VzZU1vdmVfPXRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7dGhpcy5vbkRibENsaWNrXz10aGlzLm9uRGJsQ2xpY2tfLmJpbmQodGhpcyk7dGhpcy50YXJnZXRFbGVtZW50Xz10YXJnZXRFbGVtZW50O3RoaXMuaXNNb3ZpbmdMZWZ0RWRnZV89ZmFsc2U7fTtUaW1pbmdUb29sLnByb3RvdHlwZT17b25FbnRlclRpbWluZzpmdW5jdGlvbihlKXt0aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsdGhpcy5vbk1vdXNlTW92ZV8pO3RoaXMudGFyZ2V0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLHRoaXMub25EYmxDbGlja18pO30sb25CZWdpblRpbWluZzpmdW5jdGlvbihlKXtpZighdGhpcy5pc1RvdWNoUG9pbnRJbnNpZGVUcmFja0JvdW5kc18oZS5jbGllbnRYLGUuY2xpZW50WSkpCiByZXR1cm47dmFyIHB0PXRoaXMuZ2V0U25hcHBlZFRvRXZlbnRQb3NpdGlvbl8oZSk7dGhpcy5tb3VzZURvd25BdF8ocHQueCxwdC55KTt0aGlzLnVwZGF0ZVNuYXBJbmRpY2F0b3JzXyhwdCk7fSx1cGRhdGVTbmFwSW5kaWNhdG9yc186ZnVuY3Rpb24ocHQpe2lmKCFwdC5zbmFwcGVkKQogcmV0dXJuO3ZhciBpcj10aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlO2lmKGlyLm1pbj09PXB0LngpCi1pci5sZWZ0U25hcEluZGljYXRvcj1uZXcgdHIuYy5TbmFwSW5kaWNhdG9yKHB0LnkscHQuaGVpZ2h0KTtpZihpci5tYXg9PT1wdC54KQotaXIucmlnaHRTbmFwSW5kaWNhdG9yPW5ldyB0ci5jLlNuYXBJbmRpY2F0b3IocHQueSxwdC5oZWlnaHQpO30sb25VcGRhdGVUaW1pbmc6ZnVuY3Rpb24oZSl7dmFyIHB0PXRoaXMuZ2V0U25hcHBlZFRvRXZlbnRQb3NpdGlvbl8oZSk7dGhpcy5tb3VzZU1vdmVBdF8ocHQueCxwdC55LHRydWUpO3RoaXMudXBkYXRlU25hcEluZGljYXRvcnNfKHB0KTt9LG9uRW5kVGltaW5nOmZ1bmN0aW9uKGUpe3RoaXMubW91c2VVcF8oKTt9LG9uRXhpdFRpbWluZzpmdW5jdGlvbihlKXt0aGlzLnRhcmdldEVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsdGhpcy5vbk1vdXNlTW92ZV8pO3RoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLHRoaXMub25EYmxDbGlja18pO30sb25Nb3VzZU1vdmVfOmZ1bmN0aW9uKGUpe2lmKGUuYnV0dG9uKQoraXIubGVmdFNuYXBJbmRpY2F0b3I9bmV3IHRyLnVpLlNuYXBJbmRpY2F0b3IocHQueSxwdC5oZWlnaHQpO2lmKGlyLm1heD09PXB0LngpCitpci5yaWdodFNuYXBJbmRpY2F0b3I9bmV3IHRyLnVpLlNuYXBJbmRpY2F0b3IocHQueSxwdC5oZWlnaHQpO30sb25VcGRhdGVUaW1pbmc6ZnVuY3Rpb24oZSl7dmFyIHB0PXRoaXMuZ2V0U25hcHBlZFRvRXZlbnRQb3NpdGlvbl8oZSk7dGhpcy5tb3VzZU1vdmVBdF8ocHQueCxwdC55LHRydWUpO3RoaXMudXBkYXRlU25hcEluZGljYXRvcnNfKHB0KTt9LG9uRW5kVGltaW5nOmZ1bmN0aW9uKGUpe3RoaXMubW91c2VVcF8oKTt9LG9uRXhpdFRpbWluZzpmdW5jdGlvbihlKXt0aGlzLnRhcmdldEVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsdGhpcy5vbk1vdXNlTW92ZV8pO3RoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLHRoaXMub25EYmxDbGlja18pO30sb25Nb3VzZU1vdmVfOmZ1bmN0aW9uKGUpe2lmKGUuYnV0dG9uKQogcmV0dXJuO3ZhciB3b3JsZFg9dGhpcy5nZXRXb3JsZFhGcm9tRXZlbnRfKGUpO3RoaXMubW91c2VNb3ZlQXRfKHdvcmxkWCxlLmNsaWVudFksZmFsc2UpO30sb25EYmxDbGlja186ZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcignbm90IGltcGxlbWVudGVkJyk7fSxpc1RvdWNoUG9pbnRJbnNpZGVUcmFja0JvdW5kc186ZnVuY3Rpb24oY2xpZW50WCxjbGllbnRZKXtpZighdGhpcy52aWV3cG9ydF98fCF0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyfHwhdGhpcy52aWV3cG9ydF8ubW9kZWxUcmFja0NvbnRhaW5lci5jYW52YXMpCiByZXR1cm4gZmFsc2U7dmFyIGNhbnZhcz10aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyLmNhbnZhczt2YXIgY2FudmFzUmVjdD1jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY2xpZW50WD49Y2FudmFzUmVjdC5sZWZ0JiZjbGllbnRYPD1jYW52YXNSZWN0LnJpZ2h0JiZjbGllbnRZPj1jYW52YXNSZWN0LnRvcCYmY2xpZW50WTw9Y2FudmFzUmVjdC5ib3R0b20pCiByZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fSxtb3VzZURvd25BdF86ZnVuY3Rpb24od29ybGRYLHkpe3ZhciBpcj10aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlO3ZhciBkdD10aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgbmVhcm5lc3NUaHJlc2hvbGRXb3JsZD1kdC54Vmlld1ZlY3RvclRvV29ybGQoNipwaXhlbFJhdGlvKTtpZihpci5pc0VtcHR5KXtpci5zZXRNaW5BbmRNYXgod29ybGRYLHdvcmxkWCk7aXIucmlnaHRTZWxlY3RlZD10cnVlO3RoaXMuaXNNb3ZpbmdMZWZ0RWRnZV89ZmFsc2U7cmV0dXJuO30KQEAgLTMyMjAsMTcgKzM3NDcsMjUgQEAKIGI9bmV3V29ybGRYO2lmKGE8PWIpCiBpci5zZXRNaW5BbmRNYXgoYSxiKTtlbHNlCiBpci5zZXRNaW5BbmRNYXgoYixhKTtpZihpci5taW49PW5ld1dvcmxkWCl7dGhpcy5pc01vdmluZ0xlZnRFZGdlXz10cnVlO2lyLmxlZnRTZWxlY3RlZD10cnVlO2lyLnJpZ2h0U2VsZWN0ZWQ9ZmFsc2U7fWVsc2V7dGhpcy5pc01vdmluZ0xlZnRFZGdlXz1mYWxzZTtpci5sZWZ0U2VsZWN0ZWQ9ZmFsc2U7aXIucmlnaHRTZWxlY3RlZD10cnVlO319LG1vdXNlVXBfOmZ1bmN0aW9uKCl7dmFyIGR0PXRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciBpcj10aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlO2lyLmxlZnRTZWxlY3RlZD1mYWxzZTtpci5yaWdodFNlbGVjdGVkPWZhbHNlO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBtaW5XaWR0aFZhbHVlPWR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgyKnBpeGVsUmF0aW8pO2lmKGlyLnJhbmdlPG1pbldpZHRoVmFsdWUpCi1pci5yZXNldCgpO30sZ2V0V29ybGRYRnJvbUV2ZW50XzpmdW5jdGlvbihlKXt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgY2FudmFzPXRoaXMudmlld3BvcnRfLm1vZGVsVHJhY2tDb250YWluZXIuY2FudmFzO3ZhciB3b3JsZE9mZnNldD1jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDt2YXIgdmlld1g9KGUuY2xpZW50WC13b3JsZE9mZnNldCkqcGl4ZWxSYXRpbztyZXR1cm4gdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKHZpZXdYKTt9LGdldFNuYXBwZWRUb0V2ZW50UG9zaXRpb25fOmZ1bmN0aW9uKGUpe3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBFVkVOVF9TTkFQX1JBTkdFPTE2KnBpeGVsUmF0aW87dmFyIG1vZGVsVHJhY2tDb250YWluZXI9dGhpcy52aWV3cG9ydF8ubW9kZWxUcmFja0NvbnRhaW5lcjt2YXIgbW9kZWxUcmFja0NvbnRhaW5lclJlY3Q9bW9kZWxUcmFja0NvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgdmlld3BvcnQ9dGhpcy52aWV3cG9ydF87dmFyIGR0PXZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciB3b3JsZE1heERpc3Q9ZHQueFZpZXdWZWN0b3JUb1dvcmxkKEVWRU5UX1NOQVBfUkFOR0UpO3ZhciB3b3JsZFg9dGhpcy5nZXRXb3JsZFhGcm9tRXZlbnRfKGUpO3ZhciBtb3VzZVk9ZS5jbGllbnRZO3ZhciBzZWxlY3Rpb249bmV3IHRyLmMuU2VsZWN0aW9uKCk7bW9kZWxUcmFja0NvbnRhaW5lci5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LG1vdXNlWSxtb3VzZVksc2VsZWN0aW9uKTtpZighc2VsZWN0aW9uLmxlbmd0aCl7bW9kZWxUcmFja0NvbnRhaW5lci5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LG1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcCxtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5ib3R0b20sc2VsZWN0aW9uKTt9Citpci5yZXNldCgpO30sZ2V0V29ybGRYRnJvbUV2ZW50XzpmdW5jdGlvbihlKXt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgY2FudmFzPXRoaXMudmlld3BvcnRfLm1vZGVsVHJhY2tDb250YWluZXIuY2FudmFzO3ZhciB3b3JsZE9mZnNldD1jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDt2YXIgdmlld1g9KGUuY2xpZW50WC13b3JsZE9mZnNldCkqcGl4ZWxSYXRpbztyZXR1cm4gdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKHZpZXdYKTt9LGdldFNuYXBwZWRUb0V2ZW50UG9zaXRpb25fOmZ1bmN0aW9uKGUpe3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBFVkVOVF9TTkFQX1JBTkdFPTE2KnBpeGVsUmF0aW87dmFyIG1vZGVsVHJhY2tDb250YWluZXI9dGhpcy52aWV3cG9ydF8ubW9kZWxUcmFja0NvbnRhaW5lcjt2YXIgbW9kZWxUcmFja0NvbnRhaW5lclJlY3Q9bW9kZWxUcmFja0NvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgdmlld3BvcnQ9dGhpcy52aWV3cG9ydF87dmFyIGR0PXZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciB3b3JsZE1heERpc3Q9ZHQueFZpZXdWZWN0b3JUb1dvcmxkKEVWRU5UX1NOQVBfUkFOR0UpO3ZhciB3b3JsZFg9dGhpcy5nZXRXb3JsZFhGcm9tRXZlbnRfKGUpO3ZhciBtb3VzZVk9ZS5jbGllbnRZO3ZhciBzZWxlY3Rpb249bmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7bW9kZWxUcmFja0NvbnRhaW5lci5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LG1vdXNlWSxtb3VzZVksc2VsZWN0aW9uKTtpZighc2VsZWN0aW9uLmxlbmd0aCl7bW9kZWxUcmFja0NvbnRhaW5lci5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LG1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcCxtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5ib3R0b20sc2VsZWN0aW9uKTt9CiB2YXIgbWluRGlzdFg9d29ybGRNYXhEaXN0O3ZhciBtaW5EaXN0WT1JbmZpbml0eTt2YXIgcGl4V2lkdGg9ZHQueFZpZXdWZWN0b3JUb1dvcmxkKDEpO3ZhciByZXN1bHQ9e3g6d29ybGRYLHk6bW91c2VZLW1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcCxoZWlnaHQ6MCxzbmFwcGVkOmZhbHNlfTt2YXIgZXZlbnRCb3VuZHM9bmV3IHRyLmIuUmFuZ2UoKTtmb3IodmFyIGk9MDtpPHNlbGVjdGlvbi5sZW5ndGg7aSsrKXt2YXIgZXZlbnQ9c2VsZWN0aW9uW2ldO3ZhciB0cmFjaz12aWV3cG9ydC50cmFja0ZvckV2ZW50KGV2ZW50KTt2YXIgdHJhY2tSZWN0PXRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2V2ZW50Qm91bmRzLnJlc2V0KCk7ZXZlbnQuYWRkQm91bmRzVG9SYW5nZShldmVudEJvdW5kcyk7dmFyIGV2ZW50WDtpZihNYXRoLmFicyhldmVudEJvdW5kcy5taW4td29ybGRYKTxNYXRoLmFicyhldmVudEJvdW5kcy5tYXgtd29ybGRYKSl7ZXZlbnRYPWV2ZW50Qm91bmRzLm1pbjt9ZWxzZXtldmVudFg9ZXZlbnRCb3VuZHMubWF4O30KIHZhciBkaXN0WD1ldmVudFgtd29ybGRYO3ZhciBldmVudFk9dHJhY2tSZWN0LnRvcDt2YXIgZXZlbnRIZWlnaHQ9dHJhY2tSZWN0LmhlaWdodDt2YXIgZGlzdFk9TWF0aC5hYnMoZXZlbnRZK2V2ZW50SGVpZ2h0LzItbW91c2VZKTtpZigoZGlzdFg8PW1pbkRpc3RYfHxNYXRoLmFicyhkaXN0WC1taW5EaXN0WCk8cGl4V2lkdGgpJiZkaXN0WTxtaW5EaXN0WSl7bWluRGlzdFg9ZGlzdFg7bWluRGlzdFk9ZGlzdFk7cmVzdWx0Lng9ZXZlbnRYO3Jlc3VsdC55PWV2ZW50WSsKIG1vZGVsVHJhY2tDb250YWluZXIuc2Nyb2xsVG9wLW1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcDtyZXN1bHQuaGVpZ2h0PWV2ZW50SGVpZ2h0O3Jlc3VsdC5zbmFwcGVkPXRydWU7fX0KLXJldHVybiByZXN1bHQ7fX07cmV0dXJue1RpbWluZ1Rvb2w6VGltaW5nVG9vbH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVpJyxmdW5jdGlvbigpe3ZhciBDb250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW49dHIuYi51aS5kZWZpbmUoJ2RpdicpO0NvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbi5wcm90b3R5cGU9e19fcHJvdG9fXzpIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKCl7dGhpcy5vYnNlcnZlcl89bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5kaWRNdXRhdGVfLmJpbmQodGhpcykpO3RoaXMub2JzZXJ2ZXJfLm9ic2VydmUodGhpcyx7Y2hpbGRMaXN0OnRydWV9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywndGV4dENvbnRlbnQnLHtnZXQ6dW5kZWZpbmVkLHNldDp0aGlzLm9uU2V0VGV4dENvbnRlbnRffSk7fSxhcHBlbmRDaGlsZDpmdW5jdGlvbih4KXtIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZENoaWxkLmNhbGwodGhpcyx4KTt0aGlzLmRpZE11dGF0ZV8odGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKSk7fSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oeCx5KXtIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLmluc2VydEJlZm9yZS5jYWxsKHRoaXMseCx5KTt0aGlzLmRpZE11dGF0ZV8odGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKSk7fSxyZW1vdmVDaGlsZDpmdW5jdGlvbih4KXtIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkLmNhbGwodGhpcyx4KTt0aGlzLmRpZE11dGF0ZV8odGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKSk7fSxyZXBsYWNlQ2hpbGQ6ZnVuY3Rpb24oeCx5KXtIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLnJlcGxhY2VDaGlsZC5jYWxsKHRoaXMseCx5KTt0aGlzLmRpZE11dGF0ZV8odGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKSk7fSxvblNldFRleHRDb250ZW50XzpmdW5jdGlvbih0ZXh0Q29udGVudCl7aWYodGV4dENvbnRlbnQhPScnKQorcmV0dXJuIHJlc3VsdDt9fTtyZXR1cm57VGltaW5nVG9vbDpUaW1pbmdUb29sfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpJyxmdW5jdGlvbigpe3ZhciBrRGVmYXVsdFBhbkFuaW1hdG9pbkR1cmF0aW9uTXM9MTAwLjA7ZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKGRlbHRhWCxkZWx0YVksb3B0X2R1cmF0aW9uTXMpe3RoaXMuZGVsdGFYPWRlbHRhWDt0aGlzLmRlbHRhWT1kZWx0YVk7aWYob3B0X2R1cmF0aW9uTXM9PT11bmRlZmluZWQpCit0aGlzLmR1cmF0aW9uTXM9a0RlZmF1bHRQYW5BbmltYXRvaW5EdXJhdGlvbk1zO2Vsc2UKK3RoaXMuZHVyYXRpb25Ncz1vcHRfZHVyYXRpb25Nczt0aGlzLnN0YXJ0UGFuWD11bmRlZmluZWQ7dGhpcy5zdGFydFBhblk9dW5kZWZpbmVkO3RoaXMuc3RhcnRUaW1lTXM9dW5kZWZpbmVkO30KK1RpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbi5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS5iLkFuaW1hdGlvbi5wcm90b3R5cGUsZ2V0IGFmZmVjdHNQYW5ZKCl7cmV0dXJuIHRoaXMuZGVsdGFZIT09MDt9LGNhblRha2VPdmVyRm9yOmZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uKXtyZXR1cm4gZXhpc3RpbmdBbmltYXRpb24gaW5zdGFuY2VvZiBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb247fSx0YWtlT3ZlckZvcjpmdW5jdGlvbihleGlzdGluZyx0aW1lc3RhbXAsdGFyZ2V0KXt2YXIgcmVtYWluaW5nRGVsdGFYT25FeGlzdGluZz1leGlzdGluZy5nb2FsUGFuWC10YXJnZXQucGFuWDt2YXIgcmVtYWluaW5nRGVsdGFZT25FeGlzdGluZz1leGlzdGluZy5nb2FsUGFuWS10YXJnZXQucGFuWTt2YXIgcmVtYWluaW5nVGltZU9uRXhpc3Rpbmc9dGltZXN0YW1wLShleGlzdGluZy5zdGFydFRpbWVNcytleGlzdGluZy5kdXJhdGlvbk1zKTtyZW1haW5pbmdUaW1lT25FeGlzdGluZz1NYXRoLm1heChyZW1haW5pbmdUaW1lT25FeGlzdGluZywwKTt0aGlzLmRlbHRhWCs9cmVtYWluaW5nRGVsdGFYT25FeGlzdGluZzt0aGlzLmRlbHRhWSs9cmVtYWluaW5nRGVsdGFZT25FeGlzdGluZzt0aGlzLmR1cmF0aW9uTXMrPXJlbWFpbmluZ1RpbWVPbkV4aXN0aW5nO30sc3RhcnQ6ZnVuY3Rpb24odGltZXN0YW1wLHRhcmdldCl7dGhpcy5zdGFydFRpbWVNcz10aW1lc3RhbXA7dGhpcy5zdGFydFBhblg9dGFyZ2V0LnBhblg7dGhpcy5zdGFydFBhblk9dGFyZ2V0LnBhblk7fSx0aWNrOmZ1bmN0aW9uKHRpbWVzdGFtcCx0YXJnZXQpe3ZhciBwZXJjZW50RG9uZT0odGltZXN0YW1wLXRoaXMuc3RhcnRUaW1lTXMpL3RoaXMuZHVyYXRpb25NcztwZXJjZW50RG9uZT10ci5iLmNsYW1wKHBlcmNlbnREb25lLDAsMSk7dGFyZ2V0LnBhblg9dHIuYi5sZXJwKHBlcmNlbnREb25lLHRoaXMuc3RhcnRQYW5YLHRoaXMuZ29hbFBhblgpO2lmKHRoaXMuYWZmZWN0c1BhblkpCit0YXJnZXQucGFuWT10ci5iLmxlcnAocGVyY2VudERvbmUsdGhpcy5zdGFydFBhblksdGhpcy5nb2FsUGFuWSk7cmV0dXJuIHRpbWVzdGFtcD49dGhpcy5zdGFydFRpbWVNcyt0aGlzLmR1cmF0aW9uTXM7fSxnZXQgZ29hbFBhblgoKXtyZXR1cm4gdGhpcy5zdGFydFBhblgrdGhpcy5kZWx0YVg7fSxnZXQgZ29hbFBhblkoKXtyZXR1cm4gdGhpcy5zdGFydFBhblkrdGhpcy5kZWx0YVk7fX07ZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uKGdvYWxGb2NhbFBvaW50WFdvcmxkLGdvYWxGb2NhbFBvaW50WFZpZXcsZ29hbEZvY2FsUG9pbnRZLHpvb21JblJhdGlvWCxvcHRfZHVyYXRpb25Ncyl7dGhpcy5nb2FsRm9jYWxQb2ludFhXb3JsZD1nb2FsRm9jYWxQb2ludFhXb3JsZDt0aGlzLmdvYWxGb2NhbFBvaW50WFZpZXc9Z29hbEZvY2FsUG9pbnRYVmlldzt0aGlzLmdvYWxGb2NhbFBvaW50WT1nb2FsRm9jYWxQb2ludFk7dGhpcy56b29tSW5SYXRpb1g9em9vbUluUmF0aW9YO2lmKG9wdF9kdXJhdGlvbk1zPT09dW5kZWZpbmVkKQordGhpcy5kdXJhdGlvbk1zPWtEZWZhdWx0UGFuQW5pbWF0b2luRHVyYXRpb25NcztlbHNlCit0aGlzLmR1cmF0aW9uTXM9b3B0X2R1cmF0aW9uTXM7dGhpcy5zdGFydFRpbWVNcz11bmRlZmluZWQ7dGhpcy5zdGFydFNjYWxlWD11bmRlZmluZWQ7dGhpcy5nb2FsU2NhbGVYPXVuZGVmaW5lZDt0aGlzLnN0YXJ0UGFuWT11bmRlZmluZWQ7fQorVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uLnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLmIuQW5pbWF0aW9uLnByb3RvdHlwZSxnZXQgYWZmZWN0c1BhblkoKXtyZXR1cm4gdGhpcy5zdGFydFBhblkhPXRoaXMuZ29hbEZvY2FsUG9pbnRZO30sY2FuVGFrZU92ZXJGb3I6ZnVuY3Rpb24oZXhpc3RpbmdBbmltYXRpb24pe3JldHVybiBmYWxzZTt9LHRha2VPdmVyRm9yOmZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uLHRpbWVzdGFtcCx0YXJnZXQpe3RoaXMuZ29hbFNjYWxlWD10YXJnZXQuc2NhbGVYKnRoaXMuem9vbUluUmF0aW9YO30sc3RhcnQ6ZnVuY3Rpb24odGltZXN0YW1wLHRhcmdldCl7dGhpcy5zdGFydFRpbWVNcz10aW1lc3RhbXA7dGhpcy5zdGFydFNjYWxlWD10YXJnZXQuc2NhbGVYO3RoaXMuZ29hbFNjYWxlWD10aGlzLnpvb21JblJhdGlvWCp0YXJnZXQuc2NhbGVYO3RoaXMuc3RhcnRQYW5ZPXRhcmdldC5wYW5ZO30sdGljazpmdW5jdGlvbih0aW1lc3RhbXAsdGFyZ2V0KXt2YXIgcGVyY2VudERvbmU9KHRpbWVzdGFtcC10aGlzLnN0YXJ0VGltZU1zKS90aGlzLmR1cmF0aW9uTXM7cGVyY2VudERvbmU9dHIuYi5jbGFtcChwZXJjZW50RG9uZSwwLDEpO3RhcmdldC5zY2FsZVg9dHIuYi5sZXJwKHBlcmNlbnREb25lLHRoaXMuc3RhcnRTY2FsZVgsdGhpcy5nb2FsU2NhbGVYKTtpZih0aGlzLmFmZmVjdHNQYW5ZKXt0YXJnZXQucGFuWT10ci5iLmxlcnAocGVyY2VudERvbmUsdGhpcy5zdGFydFBhblksdGhpcy5nb2FsRm9jYWxQb2ludFkpO30KK3RhcmdldC54UGFuV29ybGRQb3NUb1ZpZXdQb3ModGhpcy5nb2FsRm9jYWxQb2ludFhXb3JsZCx0aGlzLmdvYWxGb2NhbFBvaW50WFZpZXcpO3JldHVybiB0aW1lc3RhbXA+PXRoaXMuc3RhcnRUaW1lTXMrdGhpcy5kdXJhdGlvbk1zO319O3JldHVybntUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb246VGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uLFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbjpUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb259O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkuYicsZnVuY3Rpb24oKXt2YXIgQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuPXRyLnVpLmIuZGVmaW5lKCdkaXYnKTtDb250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4ucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbigpe3RoaXMub2JzZXJ2ZXJfPW5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKHRoaXMuZGlkTXV0YXRlXy5iaW5kKHRoaXMpKTt0aGlzLm9ic2VydmVyXy5vYnNlcnZlKHRoaXMse2NoaWxkTGlzdDp0cnVlfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsJ3RleHRDb250ZW50Jyx7Z2V0OnVuZGVmaW5lZCxzZXQ6dGhpcy5vblNldFRleHRDb250ZW50X30pO30sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24oeCl7SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZC5jYWxsKHRoaXMseCk7dGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpO30saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHgseSl7SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZS5pbnNlcnRCZWZvcmUuY2FsbCh0aGlzLHgseSk7dGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpO30scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oeCl7SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZS5yZW1vdmVDaGlsZC5jYWxsKHRoaXMseCk7dGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpO30scmVwbGFjZUNoaWxkOmZ1bmN0aW9uKHgseSl7SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZS5yZXBsYWNlQ2hpbGQuY2FsbCh0aGlzLHgseSk7dGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpO30sb25TZXRUZXh0Q29udGVudF86ZnVuY3Rpb24odGV4dENvbnRlbnQpe2lmKHRleHRDb250ZW50IT0nJykKIHRocm93IG5ldyBFcnJvcigndGV4dENvbnRlbnQgY2FuIG9ubHkgYmUgc2V0IHRvIFwnXCcuJyk7dGhpcy5jbGVhcigpO30sY2xlYXI6ZnVuY3Rpb24oKXt3aGlsZSh0aGlzLmxhc3RDaGlsZCkKIEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hpbGQuY2FsbCh0aGlzLHRoaXMubGFzdENoaWxkKTt0aGlzLmRpZE11dGF0ZV8odGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKSk7fSxkaWRNdXRhdGVfOmZ1bmN0aW9uKHJlY29yZHMpe3RoaXMuYmVnaW5EZWNvcmF0aW5nXygpO2Zvcih2YXIgaT0wO2k8cmVjb3Jkcy5sZW5ndGg7aSsrKXt2YXIgYWRkZWROb2Rlcz1yZWNvcmRzW2ldLmFkZGVkTm9kZXM7aWYoYWRkZWROb2Rlcyl7Zm9yKHZhciBqPTA7ajxhZGRlZE5vZGVzLmxlbmd0aDtqKyspCiB0aGlzLmRlY29yYXRlQ2hpbGRfKGFkZGVkTm9kZXNbal0pO30KIHZhciByZW1vdmVkTm9kZXM9cmVjb3Jkc1tpXS5yZW1vdmVkTm9kZXM7aWYocmVtb3ZlZE5vZGVzKXtmb3IodmFyIGo9MDtqPHJlbW92ZWROb2Rlcy5sZW5ndGg7aisrKXt0aGlzLnVuZGVjb3JhdGVDaGlsZF8ocmVtb3ZlZE5vZGVzW2pdKTt9fX0KLXRoaXMuZG9uZURlY29yYXRpbmdGb3JOb3dfKCk7fSxkZWNvcmF0ZUNoaWxkXzpmdW5jdGlvbihjaGlsZCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHVuZGVjb3JhdGVDaGlsZF86ZnVuY3Rpb24oY2hpbGQpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxiZWdpbkRlY29yYXRpbmdfOmZ1bmN0aW9uKCl7fSxkb25lRGVjb3JhdGluZ0Zvck5vd186ZnVuY3Rpb24oKXt9fTtyZXR1cm57Q29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuOkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgVHJhY2s9dHIuYi51aS5kZWZpbmUoJ3RyYWNrJyx0ci5iLnVpLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbik7VHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYi51aS5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4ucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5iLnVpLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbi5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzKTtpZih2aWV3cG9ydD09PXVuZGVmaW5lZCkKLXRocm93IG5ldyBFcnJvcigndmlld3BvcnQgaXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyBhIFRyYWNrLicpO3RoaXMudmlld3BvcnRfPXZpZXdwb3J0O3RoaXMuY2xhc3NMaXN0LmFkZCgndHJhY2snKTt9LGdldCB2aWV3cG9ydCgpe3JldHVybiB0aGlzLnZpZXdwb3J0Xzt9LGdldCBkcmF3aW5nQ29udGFpbmVyKCl7dmFyIGN1cj10aGlzO3doaWxlKGN1cil7aWYoY3VyIGluc3RhbmNlb2YgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcikKK3RoaXMuZG9uZURlY29yYXRpbmdGb3JOb3dfKCk7fSxkZWNvcmF0ZUNoaWxkXzpmdW5jdGlvbihjaGlsZCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHVuZGVjb3JhdGVDaGlsZF86ZnVuY3Rpb24oY2hpbGQpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxiZWdpbkRlY29yYXRpbmdfOmZ1bmN0aW9uKCl7fSxkb25lRGVjb3JhdGluZ0Zvck5vd186ZnVuY3Rpb24oKXt9fTtyZXR1cm57Q29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuOkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIFRyYWNrPXRyLnVpLmIuZGVmaW5lKCd0cmFjaycsdHIudWkuYi5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4pO1RyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLmIuQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIudWkuYi5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4ucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7aWYodmlld3BvcnQ9PT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoJ3ZpZXdwb3J0IGlzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgYSBUcmFjay4nKTt0aGlzLnZpZXdwb3J0Xz12aWV3cG9ydDt0aGlzLmNsYXNzTGlzdC5hZGQoJ3RyYWNrJyk7fSxnZXQgdmlld3BvcnQoKXtyZXR1cm4gdGhpcy52aWV3cG9ydF87fSxnZXQgZHJhd2luZ0NvbnRhaW5lcigpe3ZhciBjdXI9dGhpczt3aGlsZShjdXIpe2lmKGN1ciBpbnN0YW5jZW9mIHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKQogcmV0dXJuIGN1cjtjdXI9Y3VyLnBhcmVudEVsZW1lbnQ7fQogcmV0dXJuIHVuZGVmaW5lZDt9LGdldCBldmVudENvbnRhaW5lcigpe30saW52YWxpZGF0ZURyYXdpbmdDb250YWluZXI6ZnVuY3Rpb24oKXt2YXIgZGM9dGhpcy5kcmF3aW5nQ29udGFpbmVyO2lmKGRjKQogZGMuaW52YWxpZGF0ZSgpO30sY29udGV4dDpmdW5jdGlvbigpe2lmKCF0aGlzLnBhcmVudE5vZGUpCkBAIC0zMjM4LDI3ICszNzczLDQ1IEBACiB0aHJvdyBuZXcgRXJyb3IoJ1BhcmVudCBjb250YWluZXIgZG9lcyBub3Qgc3VwcG9ydCBjb250ZXh0KCkgbWV0aG9kLicpO3JldHVybiB0aGlzLnBhcmVudE5vZGUuY29udGV4dCgpO30sZGVjb3JhdGVDaGlsZF86ZnVuY3Rpb24oY2hpbGRUcmFjayl7fSx1bmRlY29yYXRlQ2hpbGRfOmZ1bmN0aW9uKGNoaWxkVHJhY2spe2lmKGNoaWxkVHJhY2suZGV0YWNoKQogY2hpbGRUcmFjay5kZXRhY2goKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe30sZHJhd1RyYWNrOmZ1bmN0aW9uKHR5cGUpe3ZhciBjdHg9dGhpcy5jb250ZXh0KCk7dmFyIHBpeGVsUmF0aW89d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIGJvdW5kcz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBjYW52YXNCb3VuZHM9Y3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjdHguc2F2ZSgpO2N0eC50cmFuc2xhdGUoMCxwaXhlbFJhdGlvKihib3VuZHMudG9wLWNhbnZhc0JvdW5kcy50b3ApKTt2YXIgZHQ9dGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgdmlld0xXb3JsZD1kdC54Vmlld1RvV29ybGQoMCk7dmFyIHZpZXdSV29ybGQ9ZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCpwaXhlbFJhdGlvKTt0aGlzLmRyYXcodHlwZSx2aWV3TFdvcmxkLHZpZXdSV29ybGQpO2N0eC5yZXN0b3JlKCk7fSxkcmF3OmZ1bmN0aW9uKHR5cGUsdmlld0xXb3JsZCx2aWV3UldvcmxkKXt9LGFkZEV2ZW50c1RvVHJhY2tNYXA6ZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKXt9LGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOmZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApe30sYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uOmZ1bmN0aW9uKGxvVlgsaGlWWCxsb1ZZLGhpVlksc2VsZWN0aW9uKXt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgZHQ9dGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgdmlld1BpeFdpZHRoV29ybGQ9ZHQueFZpZXdWZWN0b3JUb1dvcmxkKDEpO3ZhciBsb1dYPWR0LnhWaWV3VG9Xb3JsZChsb1ZYKnBpeGVsUmF0aW8pO3ZhciBoaVdYPWR0LnhWaWV3VG9Xb3JsZChoaVZYKnBpeGVsUmF0aW8pO3ZhciBjbGllbnRSZWN0PXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGE9TWF0aC5tYXgobG9WWSxjbGllbnRSZWN0LnRvcCk7dmFyIGI9TWF0aC5taW4oaGlWWSxjbGllbnRSZWN0LmJvdHRvbSk7aWYoYT5iKQogcmV0dXJuO3RoaXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKGxvV1gsaGlXWCx2aWV3UGl4V2lkdGhXb3JsZCxzZWxlY3Rpb24pO30sYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlOmZ1bmN0aW9uKGxvV1gsaGlXWCx2aWV3UGl4V2lkdGhXb3JsZCxzZWxlY3Rpb24pe30sYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246ZnVuY3Rpb24od29ybGRYLHdvcmxkTWF4RGlzdCxsb1ksaGlZLHNlbGVjdGlvbil7fSxhZGRDbG9zZXN0SW5zdGFudEV2ZW50VG9TZWxlY3Rpb246ZnVuY3Rpb24oaW5zdGFudEV2ZW50cyx3b3JsZFgsd29ybGRNYXhEaXN0LHNlbGVjdGlvbil7dmFyIGluc3RhbnRFdmVudD10ci5iLmZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXkoaW5zdGFudEV2ZW50cyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydDt9LHdvcmxkWCx3b3JsZE1heERpc3QpO2lmKCFpbnN0YW50RXZlbnQpCi1yZXR1cm47c2VsZWN0aW9uLnB1c2goaW5zdGFudEV2ZW50KTt9fTtyZXR1cm57VHJhY2s6VHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIERyYXdUeXBlPXtHRU5FUkFMX0VWRU5UOjEsSU5TVEFOVF9FVkVOVDoyLEJBQ0tHUk9VTkQ6MyxHUklEOjQsRkxPV19BUlJPV1M6NSxNQVJLRVJTOjYsSElHSExJR0hUUzo3LEFOTk9UQVRJT05TOjh9O3ZhciBEcmF3aW5nQ29udGFpbmVyPXRyLmIudWkuZGVmaW5lKCdkcmF3aW5nLWNvbnRhaW5lcicsdHIuYy50cmFja3MuVHJhY2spO0RyYXdpbmdDb250YWluZXIucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ2RyYXdpbmctY29udGFpbmVyJyk7dGhpcy5jYW52YXNfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO3RoaXMuY2FudmFzXy5jbGFzc05hbWU9J2RyYXdpbmctY29udGFpbmVyLWNhbnZhcyc7dGhpcy5jYW52YXNfLnN0eWxlLmxlZnQ9dHIuYy5jb25zdGFudHMuSEVBRElOR19XSURUSCsncHgnO3RoaXMuYXBwZW5kQ2hpbGQodGhpcy5jYW52YXNfKTt0aGlzLmN0eF89dGhpcy5jYW52YXNfLmdldENvbnRleHQoJzJkJyk7dGhpcy52aWV3cG9ydENoYW5nZV89dGhpcy52aWV3cG9ydENoYW5nZV8uYmluZCh0aGlzKTt0aGlzLnZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdGhpcy52aWV3cG9ydENoYW5nZV8pO30sZ2V0IGNhbnZhcygpe3JldHVybiB0aGlzLmNhbnZhc187fSxjb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3R4Xzt9LHZpZXdwb3J0Q2hhbmdlXzpmdW5jdGlvbigpe3RoaXMuaW52YWxpZGF0ZSgpO30saW52YWxpZGF0ZTpmdW5jdGlvbigpe2lmKHRoaXMucmFmUGVuZGluZ18pCi1yZXR1cm47dGhpcy5yYWZQZW5kaW5nXz10cnVlO3RyLmIucmVxdWVzdFByZUFuaW1hdGlvbkZyYW1lKHRoaXMucHJlRHJhd18sdGhpcyk7fSxwcmVEcmF3XzpmdW5jdGlvbigpe3RoaXMucmFmUGVuZGluZ189ZmFsc2U7dGhpcy51cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfKCk7dHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUodGhpcy5kcmF3Xyx0aGlzKTt9LGRyYXdfOmZ1bmN0aW9uKCl7dGhpcy5jdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXNfLndpZHRoLHRoaXMuY2FudmFzXy5oZWlnaHQpO3ZhciB0eXBlc1RvRHJhdz1bRHJhd1R5cGUuQkFDS0dST1VORCxEcmF3VHlwZS5ISUdITElHSFRTLERyYXdUeXBlLkdSSUQsRHJhd1R5cGUuSU5TVEFOVF9FVkVOVCxEcmF3VHlwZS5HRU5FUkFMX0VWRU5ULERyYXdUeXBlLk1BUktFUlMsRHJhd1R5cGUuQU5OT1RBVElPTlMsRHJhd1R5cGUuRkxPV19BUlJPV1NdO2Zvcih2YXIgaWR4IGluIHR5cGVzVG9EcmF3KXtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoOysraSl7aWYoISh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCityZXR1cm47c2VsZWN0aW9uLnB1c2goaW5zdGFudEV2ZW50KTt9fTtyZXR1cm57VHJhY2s6VHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBEcmF3VHlwZT17R0VORVJBTF9FVkVOVDoxLElOU1RBTlRfRVZFTlQ6MixCQUNLR1JPVU5EOjMsR1JJRDo0LEZMT1dfQVJST1dTOjUsTUFSS0VSUzo2LEhJR0hMSUdIVFM6NyxBTk5PVEFUSU9OUzo4fTt2YXIgRHJhd2luZ0NvbnRhaW5lcj10ci51aS5iLmRlZmluZSgnZHJhd2luZy1jb250YWluZXInLHRyLnVpLnRyYWNrcy5UcmFjayk7RHJhd2luZ0NvbnRhaW5lci5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdkcmF3aW5nLWNvbnRhaW5lcicpO3RoaXMuY2FudmFzXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTt0aGlzLmNhbnZhc18uY2xhc3NOYW1lPSdkcmF3aW5nLWNvbnRhaW5lci1jYW52YXMnO3RoaXMuY2FudmFzXy5zdHlsZS5sZWZ0PXRyLmMuY29uc3RhbnRzLkhFQURJTkdfV0lEVEgrJ3B4Jzt0aGlzLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzXyk7dGhpcy5jdHhfPXRoaXMuY2FudmFzXy5nZXRDb250ZXh0KCcyZCcpO3RoaXMudmlld3BvcnRDaGFuZ2VfPXRoaXMudmlld3BvcnRDaGFuZ2VfLmJpbmQodGhpcyk7dGhpcy52aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMudmlld3BvcnRDaGFuZ2VfKTt9LGdldCBjYW52YXMoKXtyZXR1cm4gdGhpcy5jYW52YXNfO30sY29udGV4dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN0eF87fSx2aWV3cG9ydENoYW5nZV86ZnVuY3Rpb24oKXt0aGlzLmludmFsaWRhdGUoKTt9LGludmFsaWRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLnJhZlBlbmRpbmdfKQorcmV0dXJuO3RoaXMucmFmUGVuZGluZ189dHJ1ZTt0ci5iLnJlcXVlc3RQcmVBbmltYXRpb25GcmFtZSh0aGlzLnByZURyYXdfLHRoaXMpO30scHJlRHJhd186ZnVuY3Rpb24oKXt0aGlzLnJhZlBlbmRpbmdfPWZhbHNlO3RoaXMudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpO3RyLmIucmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5UaGlzRnJhbWVJZlBvc3NpYmxlKHRoaXMuZHJhd18sdGhpcyk7fSxkcmF3XzpmdW5jdGlvbigpe3RoaXMuY3R4Xy5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzXy53aWR0aCx0aGlzLmNhbnZhc18uaGVpZ2h0KTt2YXIgdHlwZXNUb0RyYXc9W0RyYXdUeXBlLkJBQ0tHUk9VTkQsRHJhd1R5cGUuSElHSExJR0hUUyxEcmF3VHlwZS5HUklELERyYXdUeXBlLklOU1RBTlRfRVZFTlQsRHJhd1R5cGUuR0VORVJBTF9FVkVOVCxEcmF3VHlwZS5NQVJLRVJTLERyYXdUeXBlLkFOTk9UQVRJT05TLERyYXdUeXBlLkZMT1dfQVJST1dTXTtmb3IodmFyIGlkeCBpbiB0eXBlc1RvRHJhdyl7Zm9yKHZhciBpPTA7aTx0aGlzLmNoaWxkcmVuLmxlbmd0aDsrK2kpe2lmKCEodGhpcy5jaGlsZHJlbltpXWluc3RhbmNlb2YgdHIudWkudHJhY2tzLlRyYWNrKSkKIGNvbnRpbnVlO3RoaXMuY2hpbGRyZW5baV0uZHJhd1RyYWNrKHR5cGVzVG9EcmF3W2lkeF0pO319CiB2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgYm91bmRzPXRoaXMuY2FudmFzXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgZHQ9dGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgdmlld0xXb3JsZD1kdC54Vmlld1RvV29ybGQoMCk7dmFyIHZpZXdSV29ybGQ9ZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCpwaXhlbFJhdGlvKTt0aGlzLnZpZXdwb3J0LmRyYXdHcmlkTGluZXModGhpcy5jdHhfLHZpZXdMV29ybGQsdmlld1JXb3JsZCk7fSx1cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfOmZ1bmN0aW9uKCl7dmFyIHZpc2libGVDaGlsZFRyYWNrcz10ci5iLmFzQXJyYXkodGhpcy5jaGlsZHJlbikuZmlsdGVyKHRoaXMudmlzaWJsZUZpbHRlcl8pO3ZhciB0aGlzQm91bmRzPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGZpcnN0Q2hpbGRUcmFja0JvdW5kcz12aXNpYmxlQ2hpbGRUcmFja3NbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGxhc3RDaGlsZFRyYWNrQm91bmRzPXZpc2libGVDaGlsZFRyYWNrc1t2aXNpYmxlQ2hpbGRUcmFja3MubGVuZ3RoLTFdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBpbm5lcldpZHRoPWZpcnN0Q2hpbGRUcmFja0JvdW5kcy53aWR0aC0KIHRyLmMuY29uc3RhbnRzLkhFQURJTkdfV0lEVEg7dmFyIGlubmVySGVpZ2h0PWxhc3RDaGlsZFRyYWNrQm91bmRzLmJvdHRvbS1maXJzdENoaWxkVHJhY2tCb3VuZHMudG9wO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO2lmKHRoaXMuY2FudmFzXy53aWR0aCE9aW5uZXJXaWR0aCpwaXhlbFJhdGlvKXt0aGlzLmNhbnZhc18ud2lkdGg9aW5uZXJXaWR0aCpwaXhlbFJhdGlvO3RoaXMuY2FudmFzXy5zdHlsZS53aWR0aD1pbm5lcldpZHRoKydweCc7fQotaWYodGhpcy5jYW52YXNfLmhlaWdodCE9aW5uZXJIZWlnaHQqcGl4ZWxSYXRpbyl7dGhpcy5jYW52YXNfLmhlaWdodD1pbm5lckhlaWdodCpwaXhlbFJhdGlvO3RoaXMuY2FudmFzXy5zdHlsZS5oZWlnaHQ9aW5uZXJIZWlnaHQrJ3B4Jzt9fSx2aXNpYmxlRmlsdGVyXzpmdW5jdGlvbihlbGVtZW50KXtpZighKGVsZW1lbnQgaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCi1yZXR1cm4gZmFsc2U7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmRpc3BsYXkhPT0nbm9uZSc7fSxhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjpmdW5jdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LGxvWSxoaVksc2VsZWN0aW9uKXtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoOysraSl7aWYoISh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCitpZih0aGlzLmNhbnZhc18uaGVpZ2h0IT1pbm5lckhlaWdodCpwaXhlbFJhdGlvKXt0aGlzLmNhbnZhc18uaGVpZ2h0PWlubmVySGVpZ2h0KnBpeGVsUmF0aW87dGhpcy5jYW52YXNfLnN0eWxlLmhlaWdodD1pbm5lckhlaWdodCsncHgnO319LHZpc2libGVGaWx0ZXJfOmZ1bmN0aW9uKGVsZW1lbnQpe2lmKCEoZWxlbWVudCBpbnN0YW5jZW9mIHRyLnVpLnRyYWNrcy5UcmFjaykpCityZXR1cm4gZmFsc2U7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmRpc3BsYXkhPT0nbm9uZSc7fSxhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjpmdW5jdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LGxvWSxoaVksc2VsZWN0aW9uKXtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoOysraSl7aWYoISh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spKQogY29udGludWU7dmFyIHRyYWNrQ2xpZW50UmVjdD10aGlzLmNoaWxkcmVuW2ldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBhPU1hdGgubWF4KGxvWSx0cmFja0NsaWVudFJlY3QudG9wKTt2YXIgYj1NYXRoLm1pbihoaVksdHJhY2tDbGllbnRSZWN0LmJvdHRvbSk7aWYoYTw9Yil7dGhpcy5jaGlsZHJlbltpXS5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LGxvWSxoaVksc2VsZWN0aW9uKTt9fQotdHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9LGFkZEV2ZW50c1RvVHJhY2tNYXA6ZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKXtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoOysraSl7aWYoISh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCi1jb250aW51ZTt0aGlzLmNoaWxkcmVuW2ldLmFkZEV2ZW50c1RvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwKTt9fSxhZGRDb250YWluZXJzVG9UcmFja01hcDpmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKXtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoOysraSl7aWYoISh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCi1jb250aW51ZTt0aGlzLmNoaWxkcmVuW2ldLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApO319fTtyZXR1cm57RHJhd2luZ0NvbnRhaW5lcjpEcmF3aW5nQ29udGFpbmVyLERyYXdUeXBlOkRyYXdUeXBlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEhpZ2hsaWdodGVyKHZpZXdwb3J0KXtpZih2aWV3cG9ydD09PXVuZGVmaW5lZCl7dGhyb3cgbmV3IEVycm9yKCd2aWV3cG9ydCBtdXN0IGJlIHByb3ZpZGVkJyk7fQotdGhpcy52aWV3cG9ydF89dmlld3BvcnQ7fTtIaWdobGlnaHRlci5wcm90b3R5cGU9e19fcHJvdG9fXzpPYmplY3QucHJvdG90eXBlLHByb2Nlc3NNb2RlbDpmdW5jdGlvbihtb2RlbCl7dGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzTW9kZWwgaW1wbGVtZW50YXRpb24gbWlzc2luZycpO30sZHJhd0hpZ2hsaWdodDpmdW5jdGlvbihjdHgsZHQsdmlld0xXb3JsZCx2aWV3UldvcmxkLHZpZXdIZWlnaHQpe3Rocm93IG5ldyBFcnJvcignZHJhd0hpZ2hsaWdodCBpbXBsZW1lbnRhdGlvbiBtaXNzaW5nJyk7fX07dmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7b3B0aW9ucy5kZWZhdWx0TWV0YWRhdGE9e307b3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3M9SGlnaGxpZ2h0ZXI7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEhpZ2hsaWdodGVyLG9wdGlvbnMpO3JldHVybntIaWdobGlnaHRlcjpIaWdobGlnaHRlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgVGFzaz10ci5iLlRhc2s7dmFyIENvbnRhaW5lclRyYWNrPXRyLmIudWkuZGVmaW5lKCdjb250YWluZXItdHJhY2snLHRyLmMudHJhY2tzLlRyYWNrKTtDb250YWluZXJUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO30sZGV0YWNoOmZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD0nJzt9LGdldCB0cmFja3NfKCl7dmFyIHRyYWNrcz1bXTtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2krKyl7aWYodGhpcy5jaGlsZHJlbltpXS5jbGFzc0xpc3QuY29udGFpbnMoJ3RyYWNrJykpCit0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9LGFkZEV2ZW50c1RvVHJhY2tNYXA6ZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKXtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoOysraSl7aWYoISh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spKQorY29udGludWU7dGhpcy5jaGlsZHJlbltpXS5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7fX0sYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6ZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCl7Zm9yKHZhciBpPTA7aTx0aGlzLmNoaWxkcmVuLmxlbmd0aDsrK2kpe2lmKCEodGhpcy5jaGlsZHJlbltpXWluc3RhbmNlb2YgdHIudWkudHJhY2tzLlRyYWNrKSkKK2NvbnRpbnVlO3RoaXMuY2hpbGRyZW5baV0uYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoY29udGFpbmVyVG9UcmFja01hcCk7fX19O3JldHVybntEcmF3aW5nQ29udGFpbmVyOkRyYXdpbmdDb250YWluZXIsRHJhd1R5cGU6RHJhd1R5cGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7dmFyIFNlbGVjdGFibGVJdGVtPXRyLm1vZGVsLlNlbGVjdGFibGVJdGVtO3ZhciBTZWxlY3Rpb25TdGF0ZT10ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTtmdW5jdGlvbiBQcm94eVNlbGVjdGFibGVJdGVtKG1vZGVsSXRlbSl7U2VsZWN0YWJsZUl0ZW0uY2FsbCh0aGlzLG1vZGVsSXRlbSk7fTtQcm94eVNlbGVjdGFibGVJdGVtLnByb3RvdHlwZT17X19wcm90b19fOlNlbGVjdGFibGVJdGVtLnByb3RvdHlwZSxnZXQgc2VsZWN0aW9uU3RhdGUoKXt2YXIgbW9kZWxJdGVtPXRoaXMubW9kZWxJdGVtXztpZihtb2RlbEl0ZW09PT11bmRlZmluZWQpCityZXR1cm4gU2VsZWN0aW9uU3RhdGUuTk9ORTtyZXR1cm4gbW9kZWxJdGVtLnNlbGVjdGlvblN0YXRlO319O3JldHVybntQcm94eVNlbGVjdGFibGVJdGVtOlByb3h5U2VsZWN0YWJsZUl0ZW19O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS1oZWFkaW5nJyx7RE9XTl9BUlJPVzpTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCRSksUklHSFRfQVJST1c6U3RyaW5nLmZyb21DaGFyQ29kZSgweDI1QjgpLHJlYWR5OmZ1bmN0aW9uKHZpZXdwb3J0KXt0aGlzLnN0eWxlLndpZHRoPSh0ci5jLmNvbnN0YW50cy5IRUFESU5HX1dJRFRILTYpKydweCc7dGhpcy5oZWFkaW5nXz0nJzt0aGlzLmV4cGFuZGVkXz10cnVlO3RoaXMuYXJyb3dWaXNpYmxlXz1mYWxzZTt0aGlzLnNlbGVjdGlvbkdlbmVyYXRvcl89dW5kZWZpbmVkO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLmhlYWRpbmdfO30sc2V0IGhlYWRpbmcodGV4dCl7aWYodGhpcy5oZWFkaW5nXz09PXRleHQpCityZXR1cm47dGhpcy5oZWFkaW5nXz10ZXh0O3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxzZXQgYXJyb3dWaXNpYmxlKHZhbCl7aWYodGhpcy5hcnJvd1Zpc2libGVfPT09dmFsKQorcmV0dXJuO3RoaXMuYXJyb3dWaXNpYmxlXz0hIXZhbDt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sc2V0IHRvb2x0aXAodGV4dCl7dGhpcy4kLmhlYWRpbmcudGl0bGU9dGV4dDt9LHNldCBzZWxlY3Rpb25HZW5lcmF0b3IoZ2VuZXJhdG9yKXtpZih0aGlzLnNlbGVjdGlvbkdlbmVyYXRvcl89PT1nZW5lcmF0b3IpCityZXR1cm47dGhpcy5zZWxlY3Rpb25HZW5lcmF0b3JfPWdlbmVyYXRvcjt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuZXhwYW5kZWRfO30sc2V0IGV4cGFuZGVkKGV4cGFuZGVkKXtpZih0aGlzLmV4cGFuZGVkXz09PWV4cGFuZGVkKQorcmV0dXJuO3RoaXMuZXhwYW5kZWRfPSEhZXhwYW5kZWQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LG9uSGVhZGluZ0RpdkNsaWNrZWRfOmZ1bmN0aW9uKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyB0ci5iLkV2ZW50KCdoZWFkaW5nLWNsaWNrZWQnLHsnYnViYmxlcyc6dHJ1ZX0pKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe2lmKHRoaXMuYXJyb3dWaXNpYmxlXyl7dGhpcy4kLmFycm93LnN0eWxlLmRpc3BsYXk9Jyc7fWVsc2V7dGhpcy4kLmFycm93LnN0eWxlLmRpc3BsYXk9J25vbmUnO3RoaXMuJC5oZWFkaW5nLnN0eWxlLmRpc3BsYXk9dGhpcy5leHBhbmRlZF8/Jyc6J25vbmUnO30KK2lmKHRoaXMuYXJyb3dWaXNpYmxlXyl7dGhpcy4kLmFycm93LnRleHRDb250ZW50PXRoaXMuZXhwYW5kZWRfP3RoaXMuRE9XTl9BUlJPVzp0aGlzLlJJR0hUX0FSUk9XO30KK3RoaXMuJC5saW5rLnN0eWxlLmRpc3BsYXk9J25vbmUnO3RoaXMuJC5oZWFkaW5nX2NvbnRlbnQuc3R5bGUuZGlzcGxheT0nbm9uZSc7aWYodGhpcy5zZWxlY3Rpb25HZW5lcmF0b3JfKXt0aGlzLiQubGluay5zdHlsZS5kaXNwbGF5PSdpbmxpbmUtYmxvY2snO3RoaXMuJC5saW5rLnNlbGVjdGlvbj10aGlzLnNlbGVjdGlvbkdlbmVyYXRvcl87dGhpcy4kLmxpbmsudGV4dENvbnRlbnQ9dGhpcy5oZWFkaW5nXzt9ZWxzZXt0aGlzLiQuaGVhZGluZ19jb250ZW50LnN0eWxlLmRpc3BsYXk9J2lubGluZS1ibG9jayc7dGhpcy4kLmhlYWRpbmdfY29udGVudC50ZXh0Q29udGVudD10aGlzLmhlYWRpbmdfO319fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIEV2ZW50UHJlc2VudGVyPXRyLnVpLmIuRXZlbnRQcmVzZW50ZXI7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO3ZhciBMZXR0ZXJEb3RUcmFjaz10ci51aS5iLmRlZmluZSgnbGV0dGVyLWRvdC10cmFjaycsdHIudWkudHJhY2tzLlRyYWNrKTtMZXR0ZXJEb3RUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdsZXR0ZXItZG90LXRyYWNrJyk7dGhpcy5pdGVtc189dW5kZWZpbmVkO3RoaXMuaGVhZGluZ189ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktaGVhZGluZycpO3RoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkaW5nXyk7fSxzZXQgaGVhZGluZyhoZWFkaW5nKXt0aGlzLmhlYWRpbmdfLmhlYWRpbmc9aGVhZGluZzt9LGdldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuaGVhZGluZ18uaGVhZGluZzt9LHNldCB0b29sdGlwKHRvb2x0aXApe3RoaXMuaGVhZGluZ18udG9vbHRpcD10b29sdGlwO30sZ2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuaXRlbXNfO30sc2V0IGl0ZW1zKGl0ZW1zKXt0aGlzLml0ZW1zXz1pdGVtczt0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7fSxnZXQgaGVpZ2h0KCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDt9LHNldCBoZWlnaHQoaGVpZ2h0KXt0aGlzLnN0eWxlLmhlaWdodD1oZWlnaHQ7fSxnZXQgZHVtcFJhZGl1c1ZpZXcoKXtyZXR1cm4gNyood2luZG93LmRldmljZVBpeGVsUmF0aW98fDEpO30sZHJhdzpmdW5jdGlvbih0eXBlLHZpZXdMV29ybGQsdmlld1JXb3JsZCl7aWYodGhpcy5pdGVtc189PT11bmRlZmluZWQpCityZXR1cm47c3dpdGNoKHR5cGUpe2Nhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6dGhpcy5kcmF3TGV0dGVyRG90c18odmlld0xXb3JsZCx2aWV3UldvcmxkKTticmVhazt9fSxkcmF3TGV0dGVyRG90c186ZnVuY3Rpb24odmlld0xXb3JsZCx2aWV3UldvcmxkKXt2YXIgY3R4PXRoaXMuY29udGV4dCgpO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBib3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgaGVpZ2h0PWJvdW5kcy5oZWlnaHQqcGl4ZWxSYXRpbzt2YXIgaGFsZkhlaWdodD1oZWlnaHQqMC41O3ZhciB0d29QaT1NYXRoLlBJKjI7dmFyIHBhbGV0dGU9dHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKTt2YXIgaGlnaGxpZ2h0SWRCb29zdD10ci51aS5iLnBhbGV0dGVQcm9wZXJ0aWVzLmhpZ2hsaWdodElkQm9vc3Q7dmFyIGR0PXRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIGR1bXBSYWRpdXNWaWV3PXRoaXMuZHVtcFJhZGl1c1ZpZXc7dmFyIGl0ZW1SYWRpdXNXb3JsZD1kdC54Vmlld1ZlY3RvclRvV29ybGQoaGVpZ2h0KTt2YXIgaXRlbXM9dGhpcy5pdGVtc187dmFyIGxvST10ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoaXRlbXMsZnVuY3Rpb24oaXRlbSl7cmV0dXJuIGl0ZW0uc3RhcnQ7fSx2aWV3TFdvcmxkKTt2YXIgb2xkRm9udD1jdHguZm9udDtjdHguZm9udD0nNDAwICcrTWF0aC5mbG9vcig5KnBpeGVsUmF0aW8pKydweCBBcmlhbCc7Y3R4LnN0cm9rZVN0eWxlPSdyZ2IoMCwwLDApJztjdHgudGV4dEJhc2VsaW5lPSdtaWRkbGUnO2N0eC50ZXh0QWxpZ249J2NlbnRlcic7dmFyIGRyYXdJdGVtcz1mdW5jdGlvbihzZWxlY3RlZCl7Zm9yKHZhciBpPWxvSTtpPGl0ZW1zLmxlbmd0aDsrK2kpe3ZhciBpdGVtPWl0ZW1zW2ldO3ZhciB4PWl0ZW0uc3RhcnQ7aWYoeC1pdGVtUmFkaXVzV29ybGQ+dmlld1JXb3JsZCkKK2JyZWFrO2lmKGl0ZW0uc2VsZWN0ZWQhPT1zZWxlY3RlZCkKK2NvbnRpbnVlO3ZhciB4Vmlldz1kdC54V29ybGRUb1ZpZXcoeCk7Y3R4LmZpbGxTdHlsZT1FdmVudFByZXNlbnRlci5nZXRTZWxlY3RhYmxlSXRlbUNvbG9yKGl0ZW0pO2N0eC5iZWdpblBhdGgoKTtjdHguYXJjKHhWaWV3LGhhbGZIZWlnaHQsZHVtcFJhZGl1c1ZpZXcrMC41LDAsdHdvUGkpO2N0eC5maWxsKCk7aWYoaXRlbS5zZWxlY3RlZCl7Y3R4LmxpbmVXaWR0aD0zO2N0eC5zdHJva2VTdHlsZT0ncmdiKDEwMCwxMDAsMCknO2N0eC5zdHJva2UoKTtjdHguYmVnaW5QYXRoKCk7Y3R4LmFyYyh4VmlldyxoYWxmSGVpZ2h0LGR1bXBSYWRpdXNWaWV3LDAsdHdvUGkpO2N0eC5saW5lV2lkdGg9MS41O2N0eC5zdHJva2VTdHlsZT0ncmdiKDI1NSwyNTUsMCknO2N0eC5zdHJva2UoKTt9ZWxzZXtjdHgubGluZVdpZHRoPTE7Y3R4LnN0cm9rZVN0eWxlPSdyZ2IoMCwwLDApJztjdHguc3Ryb2tlKCk7fQorY3R4LmZpbGxTdHlsZT0ncmdiKDI1NSwgMjU1LCAyNTUpJztjdHguZmlsbFRleHQoaXRlbS5kb3RMZXR0ZXIseFZpZXcsaGFsZkhlaWdodCk7fX07ZHJhd0l0ZW1zKGZhbHNlKTtkcmF3SXRlbXModHJ1ZSk7Y3R4LmxpbmVXaWR0aD0xO2N0eC5mb250PW9sZEZvbnQ7fSxhZGRFdmVudHNUb1RyYWNrTWFwOmZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCl7aWYodGhpcy5pdGVtc189PT11bmRlZmluZWQpCityZXR1cm47dGhpcy5pdGVtc18uZm9yRWFjaChmdW5jdGlvbihpdGVtKXtpdGVtLmFkZFRvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwLHRoaXMpO30sdGhpcyk7fSxhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6ZnVuY3Rpb24obG9XWCxoaVdYLHZpZXdQaXhXaWR0aFdvcmxkLHNlbGVjdGlvbil7aWYodGhpcy5pdGVtc189PT11bmRlZmluZWQpCityZXR1cm47dmFyIGl0ZW1SYWRpdXNXb3JsZD12aWV3UGl4V2lkdGhXb3JsZCp0aGlzLmR1bXBSYWRpdXNWaWV3O3RyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5pdGVtc18sZnVuY3Rpb24oeCl7cmV0dXJuIHguc3RhcnQtaXRlbVJhZGl1c1dvcmxkO30sZnVuY3Rpb24oeCl7cmV0dXJuIDIqaXRlbVJhZGl1c1dvcmxkO30sbG9XWCxoaVdYLGZ1bmN0aW9uKGl0ZW0pe2l0ZW0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTt9LmJpbmQodGhpcykpO30sYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb246ZnVuY3Rpb24oZXZlbnQsb2Zmc2V0LHNlbGVjdGlvbil7aWYodGhpcy5pdGVtc189PT11bmRlZmluZWQpCityZXR1cm47dmFyIGl0ZW1zPXRoaXMuaXRlbXNfO3ZhciBpbmRleD10ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheShpdGVtcyxmdW5jdGlvbihpdGVtKXtyZXR1cm4gaXRlbS5tb2RlbEl0ZW09PT1ldmVudDt9KTtpZihpbmRleD09PS0xKQorcmV0dXJuIGZhbHNlO3ZhciBuZXdJbmRleD1pbmRleCtvZmZzZXQ7aWYobmV3SW5kZXg+PTAmJm5ld0luZGV4PGl0ZW1zLmxlbmd0aCl7aXRlbXNbbmV3SW5kZXhdLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7cmV0dXJuIHRydWU7fQorcmV0dXJuIGZhbHNlO30sYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjpmdW5jdGlvbihmaWx0ZXIsc2VsZWN0aW9uKXt9LGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKHdvcmxkWCx3b3JsZE1heERpc3QsbG9ZLGhpWSxzZWxlY3Rpb24pe2lmKHRoaXMuaXRlbXNfPT09dW5kZWZpbmVkKQorcmV0dXJuO3ZhciBpdGVtPXRyLmIuZmluZENsb3Nlc3RFbGVtZW50SW5Tb3J0ZWRBcnJheSh0aGlzLml0ZW1zXyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydDt9LHdvcmxkWCx3b3JsZE1heERpc3QpO2lmKCFpdGVtKQorcmV0dXJuO2l0ZW0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTt9fTtmdW5jdGlvbiBMZXR0ZXJEb3QobW9kZWxJdGVtLGRvdExldHRlcixjb2xvcklkLHN0YXJ0KXt0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLmNhbGwodGhpcyxtb2RlbEl0ZW0pO3RoaXMuZG90TGV0dGVyPWRvdExldHRlcjt0aGlzLmNvbG9ySWQ9Y29sb3JJZDt0aGlzLnN0YXJ0PXN0YXJ0O307TGV0dGVyRG90LnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLlByb3h5U2VsZWN0YWJsZUl0ZW0ucHJvdG90eXBlfTtyZXR1cm57TGV0dGVyRG90VHJhY2s6TGV0dGVyRG90VHJhY2ssTGV0dGVyRG90OkxldHRlckRvdH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIEFsZXJ0VHJhY2s9dHIudWkuYi5kZWZpbmUoJ2FsZXJ0LXRyYWNrJyx0ci51aS50cmFja3MuTGV0dGVyRG90VHJhY2spO0FsZXJ0VHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLkxldHRlckRvdFRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIudWkudHJhY2tzLkxldHRlckRvdFRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuaGVhZGluZz0nQWxlcnRzJzt0aGlzLmFsZXJ0c189dW5kZWZpbmVkO30sZ2V0IGFsZXJ0cygpe3JldHVybiB0aGlzLmFsZXJ0c187fSxzZXQgYWxlcnRzKGFsZXJ0cyl7dGhpcy5hbGVydHNfPWFsZXJ0cztpZihhbGVydHM9PT11bmRlZmluZWQpe3RoaXMuaXRlbXM9dW5kZWZpbmVkO3JldHVybjt9Cit0aGlzLml0ZW1zPXRoaXMuYWxlcnRzXy5tYXAoZnVuY3Rpb24oYWxlcnQpe3JldHVybiBuZXcgdHIudWkudHJhY2tzLkxldHRlckRvdChhbGVydCxTdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpLGFsZXJ0LmNvbG9ySWQsYWxlcnQuc3RhcnQpO30pO319O3JldHVybntBbGVydFRyYWNrOkFsZXJ0VHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBUYXNrPXRyLmIuVGFzazt2YXIgQ29udGFpbmVyVHJhY2s9dHIudWkuYi5kZWZpbmUoJ2NvbnRhaW5lci10cmFjaycsdHIudWkudHJhY2tzLlRyYWNrKTtDb250YWluZXJUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7fSxkZXRhY2g6ZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PScnO30sZ2V0IHRyYWNrc18oKXt2YXIgdHJhY2tzPVtdO2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7aSsrKXtpZih0aGlzLmNoaWxkcmVuW2ldLmNsYXNzTGlzdC5jb250YWlucygndHJhY2snKSkKIHRyYWNrcy5wdXNoKHRoaXMuY2hpbGRyZW5baV0pO30KLXJldHVybiB0cmFja3M7fSxkcmF3VHJhY2s6ZnVuY3Rpb24odHlwZSl7Zm9yKHZhciBpPTA7aTx0aGlzLmNoaWxkcmVuLmxlbmd0aDsrK2kpe2lmKCEodGhpcy5jaGlsZHJlbltpXWluc3RhbmNlb2YgdHIuYy50cmFja3MuVHJhY2spKQorcmV0dXJuIHRyYWNrczt9LGRyYXdUcmFjazpmdW5jdGlvbih0eXBlKXtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGRyZW4ubGVuZ3RoOysraSl7aWYoISh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spKQogY29udGludWU7dGhpcy5jaGlsZHJlbltpXS5kcmF3VHJhY2sodHlwZSk7fX0sYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uOmZ1bmN0aW9uKGxvVlgsaGlWWCxsb1ksaGlZLHNlbGVjdGlvbil7Zm9yKHZhciBpPTA7aTx0aGlzLnRyYWNrc18ubGVuZ3RoO2krKyl7dmFyIHRyYWNrQ2xpZW50UmVjdD10aGlzLnRyYWNrc19baV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGE9TWF0aC5tYXgobG9ZLHRyYWNrQ2xpZW50UmVjdC50b3ApO3ZhciBiPU1hdGgubWluKGhpWSx0cmFja0NsaWVudFJlY3QuYm90dG9tKTtpZihhPD1iKQogdGhpcy50cmFja3NfW2ldLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbihsb1ZYLGhpVlgsbG9ZLGhpWSxzZWxlY3Rpb24pO30KLXRyLmMudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO30sYWRkRXZlbnRzVG9UcmFja01hcDpmdW5jdGlvbihldmVudFRvVHJhY2tNYXApe2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7KytpKQordHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO30sYWRkRXZlbnRzVG9UcmFja01hcDpmdW5jdGlvbihldmVudFRvVHJhY2tNYXApe2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7KytpKQogdGhpcy5jaGlsZHJlbltpXS5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7fSxhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOmZ1bmN0aW9uKGZpbHRlcixzZWxlY3Rpb24pe2Zvcih2YXIgaT0wO2k8dGhpcy50cmFja3NfLmxlbmd0aDtpKyspCiB0aGlzLnRyYWNrc19baV0uYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbihmaWx0ZXIsc2VsZWN0aW9uKTt9LGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6ZnVuY3Rpb24oZmlsdGVyLHNlbGVjdGlvbil7dmFyIHRhc2s9bmV3IFRhc2soKTtmb3IodmFyIGk9MDtpPHRoaXMudHJhY2tzXy5sZW5ndGg7aSsrKXt0YXNrLnN1YlRhc2soZnVuY3Rpb24oaSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50cmFja3NfW2ldLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oZmlsdGVyLHNlbGVjdGlvbik7fX0oaSksdGhpcyk7fQogcmV0dXJuIHRhc2s7fSxhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjpmdW5jdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LGxvWSxoaVksc2VsZWN0aW9uKXtmb3IodmFyIGk9MDtpPHRoaXMudHJhY2tzXy5sZW5ndGg7aSsrKXt2YXIgdHJhY2tDbGllbnRSZWN0PXRoaXMudHJhY2tzX1tpXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgYT1NYXRoLm1heChsb1ksdHJhY2tDbGllbnRSZWN0LnRvcCk7dmFyIGI9TWF0aC5taW4oaGlZLHRyYWNrQ2xpZW50UmVjdC5ib3R0b20pO2lmKGE8PWIpe3RoaXMudHJhY2tzX1tpXS5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LGxvWSxoaVksc2VsZWN0aW9uKTt9fQotdHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9fTtyZXR1cm57Q29udGFpbmVyVHJhY2s6Q29udGFpbmVyVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy50cmFja3MnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQ2hhcnRBeGlzKG9wdF9taW4sb3B0X21heCl7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLmJvdW5kcz1uZXcgdHIuYi5SYW5nZSgpO2lmKG9wdF9taW4hPT11bmRlZmluZWQpCit0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9LGNsZWFyVHJhY2tzXzpmdW5jdGlvbigpe3RoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKXt0aGlzLnJlbW92ZUNoaWxkKHRyYWNrKTt9LHRoaXMpO319O3JldHVybntDb250YWluZXJUcmFjazpDb250YWluZXJUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQ2hhcnRBeGlzKG9wdF9taW4sb3B0X21heCl7dGhpcy5ndWlkXz10ci5iLkdVSUQuYWxsb2NhdGUoKTt0aGlzLmJvdW5kcz1uZXcgdHIuYi5SYW5nZSgpO2lmKG9wdF9taW4hPT11bmRlZmluZWQpCiB0aGlzLmJvdW5kcy5hZGRWYWx1ZShvcHRfbWluKTtpZihvcHRfbWF4IT09dW5kZWZpbmVkKQogdGhpcy5ib3VuZHMuYWRkVmFsdWUob3B0X21heCk7fTtDaGFydEF4aXMucHJvdG90eXBlPXtnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sdmFsdWVUb1VuaXRSYW5nZTpmdW5jdGlvbih2YWx1ZSl7aWYodGhpcy5ib3VuZHMuaXNFbXB0eSkKIHRocm93IG5ldyBFcnJvcignQ2hhcnQgYXhpcyBib3VuZHMgYXJlIGVtcHR5Jyk7dmFyIGJvdW5kcz10aGlzLmJvdW5kcztpZihib3VuZHMucmFuZ2U9PT0wKQpAQCAtMzI2NywxMyArMzgyMCw3IEBACiBpZighb3B0X2NvbmZpZykKIHJldHVybjt2YXIgdXNlUmFuZ2VNaW49KG9wdF9jb25maWcuZXhwYW5kTWluJiZyYW5nZS5taW48Ym91bmRzLm1pbnx8b3B0X2NvbmZpZy5zaHJpbmtNaW4mJnJhbmdlLm1pbj5ib3VuZHMubWluKTt2YXIgdXNlUmFuZ2VNYXg9KG9wdF9jb25maWcuZXhwYW5kTWF4JiZyYW5nZS5tYXg+Ym91bmRzLm1heHx8b3B0X2NvbmZpZy5zaHJpbmtNYXgmJnJhbmdlLm1heDxib3VuZHMubWF4KTtpZighdXNlUmFuZ2VNaW4mJiF1c2VSYW5nZU1heCkKIHJldHVybjtpZih1c2VSYW5nZU1pbiYmdXNlUmFuZ2VNYXgpe2JvdW5kcy5taW49cmFuZ2UubWluO2JvdW5kcy5tYXg9cmFuZ2UubWF4O3JldHVybjt9Ci1pZih1c2VSYW5nZU1pbil7Ym91bmRzLm1pbj1NYXRoLm1pbihyYW5nZS5taW4sYm91bmRzLm1heCk7fWVsc2V7Ym91bmRzLm1heD1NYXRoLm1heChyYW5nZS5tYXgsYm91bmRzLm1pbik7fX19O3JldHVybntDaGFydEF4aXM6Q2hhcnRBeGlzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBTZWxlY3RhYmxlSXRlbT10ci5tb2RlbC5TZWxlY3RhYmxlSXRlbTt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7ZnVuY3Rpb24gUHJveHlTZWxlY3RhYmxlSXRlbShtb2RlbEl0ZW0pe1NlbGVjdGFibGVJdGVtLmNhbGwodGhpcyxtb2RlbEl0ZW0pO307UHJveHlTZWxlY3RhYmxlSXRlbS5wcm90b3R5cGU9e19fcHJvdG9fXzpTZWxlY3RhYmxlSXRlbS5wcm90b3R5cGUsZ2V0IHNlbGVjdGlvblN0YXRlKCl7dmFyIG1vZGVsSXRlbT10aGlzLm1vZGVsSXRlbV87aWYobW9kZWxJdGVtPT09dW5kZWZpbmVkKQotcmV0dXJuIFNlbGVjdGlvblN0YXRlLk5PTkU7cmV0dXJuIG1vZGVsSXRlbS5zZWxlY3Rpb25TdGF0ZTt9fTtyZXR1cm57UHJveHlTZWxlY3RhYmxlSXRlbTpQcm94eVNlbGVjdGFibGVJdGVtfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIENoYXJ0UG9pbnQobW9kZWxJdGVtLHgseSxvcHRfeUJhc2Upe3RyLm1vZGVsLlByb3h5U2VsZWN0YWJsZUl0ZW0uY2FsbCh0aGlzLG1vZGVsSXRlbSk7dGhpcy54PXg7dGhpcy55PXk7dGhpcy55QmFzZT1vcHRfeUJhc2U7fTtDaGFydFBvaW50LnByb3RvdHlwZT17X19wcm90b19fOnRyLm1vZGVsLlByb3h5U2VsZWN0YWJsZUl0ZW0ucHJvdG90eXBlfTtyZXR1cm57Q2hhcnRQb2ludDpDaGFydFBvaW50fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBET1dOX0FSUk9XPVN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNUJFKTt2YXIgUklHSFRfQVJST1c9U3RyaW5nLmZyb21DaGFyQ29kZSgweDI1QjgpO3ZhciBIZWFkaW5nVHJhY2s9dHIuYi51aS5kZWZpbmUoJ2hlYWRpbmctdHJhY2snLHRyLmMudHJhY2tzLlRyYWNrKTtIZWFkaW5nVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ2hlYWRpbmctdHJhY2snKTt0aGlzLmhlYWRpbmdEaXZfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2hlYWRpbmcnKTt0aGlzLmhlYWRpbmdEaXZfLnN0eWxlLndpZHRoPXRyLmMuY29uc3RhbnRzLkhFQURJTkdfV0lEVEgrJ3B4Jzt0aGlzLmhlYWRpbmdEaXZfLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyx0aGlzLm9uSGVhZGluZ0RpdkNsaWNrZWRfLmJpbmQodGhpcykpO3RoaXMuaGVhZGluZ189Jyc7dGhpcy5leHBhbmRlZF89dW5kZWZpbmVkO3RoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXz11bmRlZmluZWQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuaGVhZGluZ187fSxzZXQgaGVhZGluZyh0ZXh0KXt0aGlzLmhlYWRpbmdfPXRleHQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHNldCB0b29sdGlwKHRleHQpe3RoaXMuaGVhZGluZ0Rpdl8udGl0bGU9dGV4dDt9LHNldCBzZWxlY3Rpb25HZW5lcmF0b3IoZ2VuZXJhdG9yKXt0aGlzLnNlbGVjdGlvbkdlbmVyYXRvcl89Z2VuZXJhdG9yO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmRlZF87fSxzZXQgZXhwYW5kZWQoZXhwYW5kZWQpe2V4cGFuZGVkPWV4cGFuZGVkO2lmKHRoaXMuZXhwYW5kZWRfPT1leHBhbmRlZCkKLXJldHVybjt0aGlzLmV4cGFuZGVkXz1leHBhbmRlZDt0aGlzLmV4cGFuZGVkU3RhdGVDaGFuZ2VkXygpO30sZXhwYW5kZWRTdGF0ZUNoYW5nZWRfOmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVIZWFkaWdEaXZfKCk7fSxvbkhlYWRpbmdEaXZDbGlja2VkXzpmdW5jdGlvbigpe3ZhciBlPW5ldyBFdmVudCgnaGVhZGluZy1jbGlja2VkJyx7J2J1YmJsZXMnOnRydWV9KTt0aGlzLmRpc3BhdGNoRXZlbnQoZSk7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUhlYWRpZ0Rpdl8oKTt9LHVwZGF0ZUhlYWRpZ0Rpdl86ZnVuY3Rpb24oKXt0aGlzLmhlYWRpbmdEaXZfLmlubmVySFRNTD0nJzt2YXIgc3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7c3Bhbi5jbGFzc0xpc3QuYWRkKCdoZWFkaW5nLWFycm93Jyk7aWYodGhpcy5leHBhbmRlZD09PXRydWUpCi1zcGFuLnRleHRDb250ZW50PURPV05fQVJST1c7ZWxzZSBpZih0aGlzLmV4cGFuZGVkPT09ZmFsc2UpCi1zcGFuLnRleHRDb250ZW50PVJJR0hUX0FSUk9XO2Vsc2UKLXNwYW4udGV4dENvbnRlbnQ9Jyc7dGhpcy5oZWFkaW5nRGl2Xy5hcHBlbmRDaGlsZChzcGFuKTtpZih0aGlzLnNlbGVjdGlvbkdlbmVyYXRvcl8pe3RoaXMuaGVhZGluZ0xpbmtfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7dGhpcy5oZWFkaW5nTGlua18uc2VsZWN0aW9uPXRoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXzt0aGlzLmhlYWRpbmdMaW5rXy50ZXh0Q29udGVudD0nJzt0aGlzLmhlYWRpbmdEaXZfLmFwcGVuZENoaWxkKHRoaXMuaGVhZGluZ0xpbmtfKTt0aGlzLmhlYWRpbmdMaW5rXy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmhlYWRpbmdfKSk7fWVsc2V7c3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7c3Bhbi50ZXh0Q29udGVudD10aGlzLmhlYWRpbmdfO3RoaXMuaGVhZGluZ0Rpdl8uYXBwZW5kQ2hpbGQoc3Bhbik7fQotdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhlYWRpbmdEaXZfKTt9LGRyYXc6ZnVuY3Rpb24odHlwZSx2aWV3TFdvcmxkLHZpZXdSV29ybGQpe3Rocm93IG5ldyBFcnJvcignZHJhdyBpbXBsZW1lbnRhdGlvbiBtaXNzaW5nJyk7fX07cmV0dXJue0hlYWRpbmdUcmFjazpIZWFkaW5nVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIEV2ZW50UHJlc2VudGVyPXRyLmMuRXZlbnRQcmVzZW50ZXI7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO3ZhciBDaGFydFNlcmllc1R5cGU9e0xJTkU6MCxBUkVBOjF9O3ZhciBERUZBVUxUX1JFTkRFUklOR19DT05GSUc9e2NoYXJ0VHlwZTpDaGFydFNlcmllc1R5cGUuTElORSxzZWxlY3RlZFBvaW50U2l6ZTo0LHVuc2VsZWN0ZWRQb2ludFNpemU6Myxjb2xvcklkOjAsbGluZVdpZHRoOjEsc2tpcERpc3RhbmNlOjEsdW5zZWxlY3RlZFBvaW50RGVuc2l0eVRyYW5zcGFyZW50OjAuMTAsdW5zZWxlY3RlZFBvaW50RGVuc2l0eU9wYXF1ZTowLjA1LGJhY2tncm91bmRPcGFjaXR5OjAuNX07dmFyIExBU1RfUE9JTlRfV0lEVEg9MTY7dmFyIENoYXJ0U2VyaWVzQ29tcG9uZW50PXtCQUNLR1JPVU5EOjAsTElORToxLERPVFM6Mn07ZnVuY3Rpb24gQ2hhcnRTZXJpZXMocG9pbnRzLGF4aXMsb3B0X3JlbmRlcmluZ0NvbmZpZyl7dGhpcy5wb2ludHM9cG9pbnRzO3RoaXMuYXhpcz1heGlzO3RoaXMudXNlUmVuZGVyaW5nQ29uZmlnXyhvcHRfcmVuZGVyaW5nQ29uZmlnKTt9CitpZih1c2VSYW5nZU1pbil7Ym91bmRzLm1pbj1NYXRoLm1pbihyYW5nZS5taW4sYm91bmRzLm1heCk7fWVsc2V7Ym91bmRzLm1heD1NYXRoLm1heChyYW5nZS5tYXgsYm91bmRzLm1pbik7fX19O3JldHVybntDaGFydEF4aXM6Q2hhcnRBeGlzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXtmdW5jdGlvbiBDaGFydFBvaW50KG1vZGVsSXRlbSx4LHksb3B0X3lCYXNlKXt0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLmNhbGwodGhpcyxtb2RlbEl0ZW0pO3RoaXMueD14O3RoaXMueT15O3RoaXMueUJhc2U9b3B0X3lCYXNlO307Q2hhcnRQb2ludC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLnByb3RvdHlwZX07cmV0dXJue0NoYXJ0UG9pbnQ6Q2hhcnRQb2ludH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIEV2ZW50UHJlc2VudGVyPXRyLnVpLmIuRXZlbnRQcmVzZW50ZXI7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO3ZhciBDaGFydFNlcmllc1R5cGU9e0xJTkU6MCxBUkVBOjF9O3ZhciBERUZBVUxUX1JFTkRFUklOR19DT05GSUc9e2NoYXJ0VHlwZTpDaGFydFNlcmllc1R5cGUuTElORSxzZWxlY3RlZFBvaW50U2l6ZTo0LHVuc2VsZWN0ZWRQb2ludFNpemU6Myxjb2xvcklkOjAsbGluZVdpZHRoOjEsc2tpcERpc3RhbmNlOjEsdW5zZWxlY3RlZFBvaW50RGVuc2l0eVRyYW5zcGFyZW50OjAuMTAsdW5zZWxlY3RlZFBvaW50RGVuc2l0eU9wYXF1ZTowLjA1LGJhY2tncm91bmRPcGFjaXR5OjAuNX07dmFyIExBU1RfUE9JTlRfV0lEVEg9MTY7dmFyIENoYXJ0U2VyaWVzQ29tcG9uZW50PXtCQUNLR1JPVU5EOjAsTElORToxLERPVFM6Mn07ZnVuY3Rpb24gQ2hhcnRTZXJpZXMocG9pbnRzLGF4aXMsb3B0X3JlbmRlcmluZ0NvbmZpZyl7dGhpcy5wb2ludHM9cG9pbnRzO3RoaXMuYXhpcz1heGlzO3RoaXMudXNlUmVuZGVyaW5nQ29uZmlnXyhvcHRfcmVuZGVyaW5nQ29uZmlnKTt9CiBDaGFydFNlcmllcy5wcm90b3R5cGU9e3VzZVJlbmRlcmluZ0NvbmZpZ186ZnVuY3Rpb24ob3B0X3JlbmRlcmluZ0NvbmZpZyl7dmFyIGNvbmZpZz1vcHRfcmVuZGVyaW5nQ29uZmlnfHx7fTt0ci5iLml0ZXJJdGVtcyhERUZBVUxUX1JFTkRFUklOR19DT05GSUcsZnVuY3Rpb24oa2V5LGRlZmF1bHRWYWx1ZSl7dmFyIHZhbHVlPWNvbmZpZ1trZXldO2lmKHZhbHVlPT09dW5kZWZpbmVkKQogdmFsdWU9ZGVmYXVsdFZhbHVlO3RoaXNba2V5KydfJ109dmFsdWU7fSx0aGlzKTt0aGlzLnRvcFBhZGRpbmc9dGhpcy5ib3R0b21QYWRkaW5nPU1hdGgubWF4KHRoaXMuc2VsZWN0ZWRQb2ludFNpemVfLHRoaXMudW5zZWxlY3RlZFBvaW50U2l6ZV8pLzI7fSxnZXQgcmFuZ2UoKXt2YXIgcmFuZ2U9bmV3IHRyLmIuUmFuZ2UoKTt0aGlzLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKHBvaW50KXtyYW5nZS5hZGRWYWx1ZShwb2ludC55KTt9LHRoaXMpO3JldHVybiByYW5nZTt9LGRyYXc6ZnVuY3Rpb24oY3R4LHRyYW5zZm9ybSxoaWdoRGV0YWlscyl7aWYodGhpcy5wb2ludHM9PT11bmRlZmluZWR8fHRoaXMucG9pbnRzLmxlbmd0aD09PTApCiByZXR1cm47aWYodGhpcy5jaGFydFR5cGVfPT09Q2hhcnRTZXJpZXNUeXBlLkFSRUEpe3RoaXMuZHJhd0NvbXBvbmVudF8oY3R4LHRyYW5zZm9ybSxDaGFydFNlcmllc0NvbXBvbmVudC5CQUNLR1JPVU5ELGhpZ2hEZXRhaWxzKTt9CkBAIC0zMzEyLDMwICszODU5LDU5IEBACiByZXR1cm4gZmFsc2U7dmFyIG5ld0luZGV4PWluZGV4K29mZnNldDtpZihuZXdJbmRleDwwfHxuZXdJbmRleD49dGhpcy5wb2ludHMubGVuZ3RoKQogcmV0dXJuIGZhbHNlO3RoaXMucG9pbnRzW25ld0luZGV4XS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pO3JldHVybiB0cnVlO30sYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246ZnVuY3Rpb24od29ybGRYLHdvcmxkTWF4RGlzdCxsb1ksaGlZLHNlbGVjdGlvbil7aWYodGhpcy5wb2ludHM9PT11bmRlZmluZWQpCiByZXR1cm47dmFyIGl0ZW09dHIuYi5maW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5KHRoaXMucG9pbnRzLGZ1bmN0aW9uKHBvaW50KXtyZXR1cm4gcG9pbnQueH0sd29ybGRYLHdvcmxkTWF4RGlzdCk7aWYoIWl0ZW0pCi1yZXR1cm47aXRlbS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pO319O3JldHVybntDaGFydFNlcmllczpDaGFydFNlcmllcyxDaGFydFNlcmllc1R5cGU6Q2hhcnRTZXJpZXNUeXBlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIENoYXJ0VHJhbnNmb3JtKGRpc3BsYXlUcmFuc2Zvcm0sYXhpcyx0cmFja1dpZHRoLHRyYWNrSGVpZ2h0LHRvcFBhZGRpbmcsYm90dG9tUGFkZGluZyxwaXhlbFJhdGlvKXt0aGlzLnBpeGVsUmF0aW89cGl4ZWxSYXRpbzt0aGlzLmxlZnRWaWV3WD0wO3RoaXMucmlnaHRWaWV3WD10cmFja1dpZHRoO3RoaXMubGVmdFRpbWVzdGFtcD1kaXNwbGF5VHJhbnNmb3JtLnhWaWV3VG9Xb3JsZCh0aGlzLmxlZnRWaWV3WCk7dGhpcy5yaWdodFRpbWVzdGFtcD1kaXNwbGF5VHJhbnNmb3JtLnhWaWV3VG9Xb3JsZCh0aGlzLnJpZ2h0Vmlld1gpO3RoaXMuZGlzcGxheVRyYW5zZm9ybV89ZGlzcGxheVRyYW5zZm9ybTt0aGlzLm91dGVyVG9wVmlld1k9MDt0aGlzLmlubmVyVG9wVmlld1k9dG9wUGFkZGluZzt0aGlzLmlubmVyQm90dG9tVmlld1k9dHJhY2tIZWlnaHQtYm90dG9tUGFkZGluZzt0aGlzLm91dGVyQm90dG9tVmlld1k9dHJhY2tIZWlnaHQ7dGhpcy5heGlzXz1heGlzO3RoaXMuaW5uZXJIZWlnaHRfPXRoaXMuaW5uZXJCb3R0b21WaWV3WS10aGlzLmlubmVyVG9wVmlld1k7fTtDaGFydFRyYW5zZm9ybS5wcm90b3R5cGU9e3dvcmxkWFRvVmlld1g6ZnVuY3Rpb24od29ybGRYKXtyZXR1cm4gdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy54V29ybGRUb1ZpZXcod29ybGRYKTt9LHZpZXdYVG9Xb3JsZFg6ZnVuY3Rpb24odmlld1gpe3JldHVybiB0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnhWaWV3VG9Xb3JsZCh2aWV3WCk7fSx3b3JsZFlUb1ZpZXdZOmZ1bmN0aW9uKHdvcmxkWSl7dmFyIGlubmVySGVpZ2h0Q29lZmZpY2llbnQ9MS10aGlzLmF4aXNfLnZhbHVlVG9Vbml0UmFuZ2Uod29ybGRZKTtyZXR1cm4gaW5uZXJIZWlnaHRDb2VmZmljaWVudCp0aGlzLmlubmVySGVpZ2h0Xyt0aGlzLmlubmVyVG9wVmlld1k7fX07cmV0dXJue0NoYXJ0VHJhbnNmb3JtOkNoYXJ0VHJhbnNmb3JtfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBDaGFydFRyYWNrPXRyLmIudWkuZGVmaW5lKCdjaGFydC10cmFjaycsdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrKTtDaGFydFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ2NoYXJ0LXRyYWNrJyk7dGhpcy5zZXJpZXNfPXVuZGVmaW5lZDt0aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV89dW5kZWZpbmVkO3RoaXMudG9wUGFkZGluZ189dW5kZWZpbmVkO3RoaXMuYm90dG9tUGFkZGluZ189dW5kZWZpbmVkO30sZ2V0IHNlcmllcygpe3JldHVybiB0aGlzLnNlcmllc187fSxzZXQgc2VyaWVzKHNlcmllcyl7dGhpcy5zZXJpZXNfPXNlcmllczt0aGlzLmNhbGN1bGF0ZUF4aXNEYXRhQW5kUGFkZGluZ18oKTt0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7fSxnZXQgaGVpZ2h0KCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDt9LHNldCBoZWlnaHQoaGVpZ2h0KXt0aGlzLnN0eWxlLmhlaWdodD1oZWlnaHQ7dGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7cmV0dXJuISF0aGlzLnNlcmllcyYmdGhpcy5zZXJpZXMubGVuZ3RoPjA7fSxjYWxjdWxhdGVBeGlzRGF0YUFuZFBhZGRpbmdfOmZ1bmN0aW9uKCl7aWYoIXRoaXMuc2VyaWVzXyl7dGhpcy5heGlzR3VpZFRvQXhpc0RhdGFfPXVuZGVmaW5lZDt0aGlzLnRvcFBhZGRpbmdfPXVuZGVmaW5lZDt0aGlzLmJvdHRvbVBhZGRpbmdfPXVuZGVmaW5lZDtyZXR1cm47fQorcmV0dXJuO2l0ZW0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTt9fTtyZXR1cm57Q2hhcnRTZXJpZXM6Q2hhcnRTZXJpZXMsQ2hhcnRTZXJpZXNUeXBlOkNoYXJ0U2VyaWVzVHlwZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQ2hhcnRUcmFuc2Zvcm0oZGlzcGxheVRyYW5zZm9ybSxheGlzLHRyYWNrV2lkdGgsdHJhY2tIZWlnaHQsdG9wUGFkZGluZyxib3R0b21QYWRkaW5nLHBpeGVsUmF0aW8pe3RoaXMucGl4ZWxSYXRpbz1waXhlbFJhdGlvO3RoaXMubGVmdFZpZXdYPTA7dGhpcy5yaWdodFZpZXdYPXRyYWNrV2lkdGg7dGhpcy5sZWZ0VGltZXN0YW1wPWRpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKHRoaXMubGVmdFZpZXdYKTt0aGlzLnJpZ2h0VGltZXN0YW1wPWRpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKHRoaXMucmlnaHRWaWV3WCk7dGhpcy5kaXNwbGF5VHJhbnNmb3JtXz1kaXNwbGF5VHJhbnNmb3JtO3RoaXMub3V0ZXJUb3BWaWV3WT0wO3RoaXMuaW5uZXJUb3BWaWV3WT10b3BQYWRkaW5nO3RoaXMuaW5uZXJCb3R0b21WaWV3WT10cmFja0hlaWdodC1ib3R0b21QYWRkaW5nO3RoaXMub3V0ZXJCb3R0b21WaWV3WT10cmFja0hlaWdodDt0aGlzLmF4aXNfPWF4aXM7dGhpcy5pbm5lckhlaWdodF89dGhpcy5pbm5lckJvdHRvbVZpZXdZLXRoaXMuaW5uZXJUb3BWaWV3WTt9O0NoYXJ0VHJhbnNmb3JtLnByb3RvdHlwZT17d29ybGRYVG9WaWV3WDpmdW5jdGlvbih3b3JsZFgpe3JldHVybiB0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnhXb3JsZFRvVmlldyh3b3JsZFgpO30sdmlld1hUb1dvcmxkWDpmdW5jdGlvbih2aWV3WCl7cmV0dXJuIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8ueFZpZXdUb1dvcmxkKHZpZXdYKTt9LHdvcmxkWVRvVmlld1k6ZnVuY3Rpb24od29ybGRZKXt2YXIgaW5uZXJIZWlnaHRDb2VmZmljaWVudD0xLXRoaXMuYXhpc18udmFsdWVUb1VuaXRSYW5nZSh3b3JsZFkpO3JldHVybiBpbm5lckhlaWdodENvZWZmaWNpZW50KnRoaXMuaW5uZXJIZWlnaHRfK3RoaXMuaW5uZXJUb3BWaWV3WTt9fTtyZXR1cm57Q2hhcnRUcmFuc2Zvcm06Q2hhcnRUcmFuc2Zvcm19O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBDaGFydFRyYWNrPXRyLnVpLmIuZGVmaW5lKCdjaGFydC10cmFjaycsdHIudWkudHJhY2tzLlRyYWNrKTtDaGFydFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ2NoYXJ0LXRyYWNrJyk7dGhpcy5zZXJpZXNfPXVuZGVmaW5lZDt0aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV89dW5kZWZpbmVkO3RoaXMudG9wUGFkZGluZ189dW5kZWZpbmVkO3RoaXMuYm90dG9tUGFkZGluZ189dW5kZWZpbmVkO3RoaXMuaGVhZGluZ189ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktaGVhZGluZycpO3RoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkaW5nXyk7fSxzZXQgaGVhZGluZyhoZWFkaW5nKXt0aGlzLmhlYWRpbmdfLmhlYWRpbmc9aGVhZGluZzt9LGdldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuaGVhZGluZ18uaGVhZGluZzt9LHNldCB0b29sdGlwKHRvb2x0aXApe3RoaXMuaGVhZGluZ18udG9vbHRpcD10b29sdGlwO30sZ2V0IHNlcmllcygpe3JldHVybiB0aGlzLnNlcmllc187fSxzZXQgc2VyaWVzKHNlcmllcyl7dGhpcy5zZXJpZXNfPXNlcmllczt0aGlzLmNhbGN1bGF0ZUF4aXNEYXRhQW5kUGFkZGluZ18oKTt0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7fSxnZXQgaGVpZ2h0KCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDt9LHNldCBoZWlnaHQoaGVpZ2h0KXt0aGlzLnN0eWxlLmhlaWdodD1oZWlnaHQ7dGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7cmV0dXJuISF0aGlzLnNlcmllcyYmdGhpcy5zZXJpZXMubGVuZ3RoPjA7fSxjYWxjdWxhdGVBeGlzRGF0YUFuZFBhZGRpbmdfOmZ1bmN0aW9uKCl7aWYoIXRoaXMuc2VyaWVzXyl7dGhpcy5heGlzR3VpZFRvQXhpc0RhdGFfPXVuZGVmaW5lZDt0aGlzLnRvcFBhZGRpbmdfPXVuZGVmaW5lZDt0aGlzLmJvdHRvbVBhZGRpbmdfPXVuZGVmaW5lZDtyZXR1cm47fQogdmFyIGF4aXNHdWlkVG9BeGlzRGF0YT17fTt2YXIgdG9wUGFkZGluZz0wO3ZhciBib3R0b21QYWRkaW5nPTA7dGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXt2YXIgYXhpcz1zZXJpZXMuYXhpczt2YXIgYXhpc0d1aWQ9YXhpcy5ndWlkO2lmKCEoYXhpc0d1aWQgaW4gYXhpc0d1aWRUb0F4aXNEYXRhKSl7YXhpc0d1aWRUb0F4aXNEYXRhW2F4aXNHdWlkXT17YXhpczpheGlzLHNlcmllczpbXX07fQotYXhpc0d1aWRUb0F4aXNEYXRhW2F4aXNHdWlkXS5zZXJpZXMucHVzaChzZXJpZXMpO3RvcFBhZGRpbmc9TWF0aC5tYXgodG9wUGFkZGluZyxzZXJpZXMudG9wUGFkZGluZyk7Ym90dG9tUGFkZGluZz1NYXRoLm1heChib3R0b21QYWRkaW5nLHNlcmllcy5ib3R0b21QYWRkaW5nKTt9LHRoaXMpO3RoaXMuYXhpc0d1aWRUb0F4aXNEYXRhXz1heGlzR3VpZFRvQXhpc0RhdGE7dGhpcy50b3BQYWRkaW5nXz10b3BQYWRkaW5nO3RoaXMuYm90dG9tUGFkZGluZ189Ym90dG9tUGFkZGluZzt9LGRyYXc6ZnVuY3Rpb24odHlwZSx2aWV3TFdvcmxkLHZpZXdSV29ybGQpe3N3aXRjaCh0eXBlKXtjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6dGhpcy5kcmF3Q2hhcnRfKHZpZXdMV29ybGQsdmlld1JXb3JsZCk7YnJlYWs7fX0sZHJhd0NoYXJ0XzpmdW5jdGlvbih2aWV3TFdvcmxkLHZpZXdSV29ybGQpe2lmKCF0aGlzLnNlcmllc18pCi1yZXR1cm47dmFyIGN0eD10aGlzLmNvbnRleHQoKTt2YXIgZGlzcGxheVRyYW5zZm9ybT10aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBib3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgaGlnaERldGFpbHM9dGhpcy52aWV3cG9ydC5oaWdoRGV0YWlsczt2YXIgd2lkdGg9Ym91bmRzLndpZHRoKnBpeGVsUmF0aW87dmFyIGhlaWdodD1ib3VuZHMuaGVpZ2h0KnBpeGVsUmF0aW87dmFyIHRvcFBhZGRpbmc9dGhpcy50b3BQYWRkaW5nXypwaXhlbFJhdGlvO3ZhciBib3R0b21QYWRkaW5nPXRoaXMuYm90dG9tUGFkZGluZ18qcGl4ZWxSYXRpbztjdHguc2F2ZSgpO2N0eC5iZWdpblBhdGgoKTtjdHgucmVjdCgwLDAsd2lkdGgsaGVpZ2h0KTtjdHguY2xpcCgpO3RoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7dmFyIGNoYXJ0VHJhbnNmb3JtPW5ldyB0ci5jLnRyYWNrcy5DaGFydFRyYW5zZm9ybShkaXNwbGF5VHJhbnNmb3JtLHNlcmllcy5heGlzLHdpZHRoLGhlaWdodCx0b3BQYWRkaW5nLGJvdHRvbVBhZGRpbmcscGl4ZWxSYXRpbyk7c2VyaWVzLmRyYXcoY3R4LGNoYXJ0VHJhbnNmb3JtLGhpZ2hEZXRhaWxzKTt9LHRoaXMpO2N0eC5yZXN0b3JlKCk7fSxhZGRFdmVudHNUb1RyYWNrTWFwOmZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCl7dGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtzZXJpZXMucG9pbnRzLmZvckVhY2goZnVuY3Rpb24ocG9pbnQpe3BvaW50LmFkZFRvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwLHRoaXMpO30sdGhpcyk7fSx0aGlzKTt9LGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTpmdW5jdGlvbihsb1dYLGhpV1gsdmlld1BpeFdpZHRoV29ybGQsc2VsZWN0aW9uKXt0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UobG9XWCxoaVdYLHZpZXdQaXhXaWR0aFdvcmxkLHNlbGVjdGlvbik7fSx0aGlzKTt9LGFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKGV2ZW50LG9mZnNldCxzZWxlY3Rpb24pe3ZhciBmb3VuZEl0ZW09ZmFsc2U7dGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtmb3VuZEl0ZW09Zm91bmRJdGVtfHxzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oZXZlbnQsb2Zmc2V0LHNlbGVjdGlvbik7fSx0aGlzKTtyZXR1cm4gZm91bmRJdGVtO30sYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjpmdW5jdGlvbihmaWx0ZXIsc2VsZWN0aW9uKXt9LGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKHdvcmxkWCx3b3JsZE1heERpc3QsbG9ZLGhpWSxzZWxlY3Rpb24pe3RoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7c2VyaWVzLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKHdvcmxkWCx3b3JsZE1heERpc3QsbG9ZLGhpWSxzZWxlY3Rpb24pO30sdGhpcyk7fSxhdXRvU2V0QWxsQXhlczpmdW5jdGlvbihvcHRfY29uZmlnKXt0ci5iLml0ZXJJdGVtcyh0aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV8sZnVuY3Rpb24oYXhpc0d1aWQsYXhpc0RhdGEpe3ZhciBheGlzPWF4aXNEYXRhLmF4aXM7dmFyIHNlcmllcz1heGlzRGF0YS5zZXJpZXM7YXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsb3B0X2NvbmZpZyk7fSx0aGlzKTt9LGF1dG9TZXRBeGlzOmZ1bmN0aW9uKGF4aXMsb3B0X2NvbmZpZyl7dmFyIHNlcmllcz10aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV9bYXhpcy5ndWlkXS5zZXJpZXM7YXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsb3B0X2NvbmZpZyk7fX07cmV0dXJue0NoYXJ0VHJhY2s6Q2hhcnRUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgQ291bnRlclRyYWNrPXRyLmIudWkuZGVmaW5lKCdjb3VudGVyLXRyYWNrJyx0ci5jLnRyYWNrcy5DaGFydFRyYWNrKTtDb3VudGVyVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy50cmFja3MuQ2hhcnRUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkNoYXJ0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdjb3VudGVyLXRyYWNrJyk7fSxnZXQgY291bnRlcigpe3JldHVybiB0aGlzLmNoYXJ0O30sc2V0IGNvdW50ZXIoY291bnRlcil7dGhpcy5oZWFkaW5nPWNvdW50ZXIubmFtZSsnOiAnO3RoaXMuc2VyaWVzPUNvdW50ZXJUcmFjay5idWlsZENoYXJ0U2VyaWVzRnJvbUNvdW50ZXIoY291bnRlcik7dGhpcy5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OnRydWV9KTt9LGdldE1vZGVsRXZlbnRGcm9tSXRlbTpmdW5jdGlvbihjaGFydFZhbHVlKXtyZXR1cm4gY2hhcnRWYWx1ZTt9fTtDb3VudGVyVHJhY2suYnVpbGRDaGFydFNlcmllc0Zyb21Db3VudGVyPWZ1bmN0aW9uKGNvdW50ZXIpe3ZhciBudW1TZXJpZXM9Y291bnRlci5zZXJpZXMubGVuZ3RoO3ZhciB0b3RhbHM9Y291bnRlci50b3RhbHM7dmFyIGNoYXJ0QXhpcz1uZXcgdHIuYy50cmFja3MuQ2hhcnRBeGlzKDAsdW5kZWZpbmVkKTt2YXIgY2hhcnRTZXJpZXM9Y291bnRlci5zZXJpZXMubWFwKGZ1bmN0aW9uKHNlcmllcyxzZXJpZXNJbmRleCl7dmFyIGNoYXJ0UG9pbnRzPXNlcmllcy5zYW1wbGVzLm1hcChmdW5jdGlvbihzYW1wbGUsc2FtcGxlSW5kZXgpe3ZhciB0b3RhbD10b3RhbHNbc2FtcGxlSW5kZXgqbnVtU2VyaWVzK3Nlcmllc0luZGV4XTtyZXR1cm4gbmV3IHRyLmMudHJhY2tzLkNoYXJ0UG9pbnQoc2FtcGxlLHNhbXBsZS50aW1lc3RhbXAsdG90YWwpO30pO3ZhciByZW5kZXJpbmdDb25maWc9e2NoYXJ0VHlwZTp0ci5jLnRyYWNrcy5DaGFydFNlcmllc1R5cGUuQVJFQSxjb2xvcklkOnNlcmllcy5jb2xvcn07cmV0dXJuIG5ldyB0ci5jLnRyYWNrcy5DaGFydFNlcmllcyhjaGFydFBvaW50cyxjaGFydEF4aXMscmVuZGVyaW5nQ29uZmlnKTt9KTtjaGFydFNlcmllcy5yZXZlcnNlKCk7cmV0dXJuIGNoYXJ0U2VyaWVzO307cmV0dXJue0NvdW50ZXJUcmFjazpDb3VudGVyVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIEV2ZW50UHJlc2VudGVyPXRyLmMuRXZlbnRQcmVzZW50ZXI7dmFyIFNlbGVjdGlvblN0YXRlPXRyLm1vZGVsLlNlbGVjdGlvblN0YXRlO3ZhciBMZXR0ZXJEb3RUcmFjaz10ci5iLnVpLmRlZmluZSgnbGV0dGVyLWRvdC10cmFjaycsdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrKTtMZXR0ZXJEb3RUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdsZXR0ZXItZG90LXRyYWNrJyk7dGhpcy5pdGVtc189dW5kZWZpbmVkO30sZ2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuaXRlbXNfO30sc2V0IGl0ZW1zKGl0ZW1zKXt0aGlzLml0ZW1zXz1pdGVtczt0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7fSxnZXQgaGVpZ2h0KCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDt9LHNldCBoZWlnaHQoaGVpZ2h0KXt0aGlzLnN0eWxlLmhlaWdodD1oZWlnaHQ7fSxnZXQgZHVtcFJhZGl1c1ZpZXcoKXtyZXR1cm4gNyood2luZG93LmRldmljZVBpeGVsUmF0aW98fDEpO30sZHJhdzpmdW5jdGlvbih0eXBlLHZpZXdMV29ybGQsdmlld1JXb3JsZCl7aWYodGhpcy5pdGVtc189PT11bmRlZmluZWQpCi1yZXR1cm47c3dpdGNoKHR5cGUpe2Nhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDp0aGlzLmRyYXdMZXR0ZXJEb3RzXyh2aWV3TFdvcmxkLHZpZXdSV29ybGQpO2JyZWFrO319LGRyYXdMZXR0ZXJEb3RzXzpmdW5jdGlvbih2aWV3TFdvcmxkLHZpZXdSV29ybGQpe3ZhciBjdHg9dGhpcy5jb250ZXh0KCk7dmFyIHBpeGVsUmF0aW89d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIGJvdW5kcz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBoZWlnaHQ9Ym91bmRzLmhlaWdodCpwaXhlbFJhdGlvO3ZhciBoYWxmSGVpZ2h0PWhlaWdodCowLjU7dmFyIHR3b1BpPU1hdGguUEkqMjt2YXIgcGFsZXR0ZT10ci5iLnVpLmdldENvbG9yUGFsZXR0ZSgpO3ZhciBoaWdobGlnaHRJZEJvb3N0PXRyLmIudWkucGFsZXR0ZVByb3BlcnRpZXMuaGlnaGxpZ2h0SWRCb29zdDt2YXIgZHQ9dGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgZHVtcFJhZGl1c1ZpZXc9dGhpcy5kdW1wUmFkaXVzVmlldzt2YXIgaXRlbVJhZGl1c1dvcmxkPWR0LnhWaWV3VmVjdG9yVG9Xb3JsZChoZWlnaHQpO3ZhciBpdGVtcz10aGlzLml0ZW1zXzt2YXIgbG9JPXRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheShpdGVtcyxmdW5jdGlvbihpdGVtKXtyZXR1cm4gaXRlbS5zdGFydDt9LHZpZXdMV29ybGQpO3ZhciBvbGRGb250PWN0eC5mb250O2N0eC5mb250PSc0MDAgJytNYXRoLmZsb29yKDkqcGl4ZWxSYXRpbykrJ3B4IEFyaWFsJztjdHguc3Ryb2tlU3R5bGU9J3JnYigwLDAsMCknO2N0eC50ZXh0QmFzZWxpbmU9J21pZGRsZSc7Y3R4LnRleHRBbGlnbj0nY2VudGVyJzt2YXIgZHJhd0l0ZW1zPWZ1bmN0aW9uKHNlbGVjdGVkKXtmb3IodmFyIGk9bG9JO2k8aXRlbXMubGVuZ3RoOysraSl7dmFyIGl0ZW09aXRlbXNbaV07dmFyIHg9aXRlbS5zdGFydDtpZih4LWl0ZW1SYWRpdXNXb3JsZD52aWV3UldvcmxkKQotYnJlYWs7aWYoaXRlbS5zZWxlY3RlZCE9PXNlbGVjdGVkKQotY29udGludWU7dmFyIHhWaWV3PWR0LnhXb3JsZFRvVmlldyh4KTtjdHguZmlsbFN0eWxlPUV2ZW50UHJlc2VudGVyLmdldFNlbGVjdGFibGVJdGVtQ29sb3IoaXRlbSk7Y3R4LmJlZ2luUGF0aCgpO2N0eC5hcmMoeFZpZXcsaGFsZkhlaWdodCxkdW1wUmFkaXVzVmlldyswLjUsMCx0d29QaSk7Y3R4LmZpbGwoKTtpZihpdGVtLnNlbGVjdGVkKXtjdHgubGluZVdpZHRoPTM7Y3R4LnN0cm9rZVN0eWxlPSdyZ2IoMTAwLDEwMCwwKSc7Y3R4LnN0cm9rZSgpO2N0eC5iZWdpblBhdGgoKTtjdHguYXJjKHhWaWV3LGhhbGZIZWlnaHQsZHVtcFJhZGl1c1ZpZXcsMCx0d29QaSk7Y3R4LmxpbmVXaWR0aD0xLjU7Y3R4LnN0cm9rZVN0eWxlPSdyZ2IoMjU1LDI1NSwwKSc7Y3R4LnN0cm9rZSgpO31lbHNle2N0eC5saW5lV2lkdGg9MTtjdHguc3Ryb2tlU3R5bGU9J3JnYigwLDAsMCknO2N0eC5zdHJva2UoKTt9Ci1jdHguZmlsbFN0eWxlPSdyZ2IoMjU1LCAyNTUsIDI1NSknO2N0eC5maWxsVGV4dChpdGVtLmRvdExldHRlcix4VmlldyxoYWxmSGVpZ2h0KTt9fTtkcmF3SXRlbXMoZmFsc2UpO2RyYXdJdGVtcyh0cnVlKTtjdHgubGluZVdpZHRoPTE7Y3R4LmZvbnQ9b2xkRm9udDt9LGFkZEV2ZW50c1RvVHJhY2tNYXA6ZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKXtpZih0aGlzLml0ZW1zXz09PXVuZGVmaW5lZCkKLXJldHVybjt0aGlzLml0ZW1zXy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pe2l0ZW0uYWRkVG9UcmFja01hcChldmVudFRvVHJhY2tNYXAsdGhpcyk7fSx0aGlzKTt9LGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTpmdW5jdGlvbihsb1dYLGhpV1gsdmlld1BpeFdpZHRoV29ybGQsc2VsZWN0aW9uKXtpZih0aGlzLml0ZW1zXz09PXVuZGVmaW5lZCkKLXJldHVybjt2YXIgaXRlbVJhZGl1c1dvcmxkPXZpZXdQaXhXaWR0aFdvcmxkKnRoaXMuZHVtcFJhZGl1c1ZpZXc7dHIuYi5pdGVyYXRlT3ZlckludGVyc2VjdGluZ0ludGVydmFscyh0aGlzLml0ZW1zXyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydC1pdGVtUmFkaXVzV29ybGQ7fSxmdW5jdGlvbih4KXtyZXR1cm4gMippdGVtUmFkaXVzV29ybGQ7fSxsb1dYLGhpV1gsZnVuY3Rpb24oaXRlbSl7aXRlbS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pO30uYmluZCh0aGlzKSk7fSxhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbjpmdW5jdGlvbihldmVudCxvZmZzZXQsc2VsZWN0aW9uKXtpZih0aGlzLml0ZW1zXz09PXVuZGVmaW5lZCkKLXJldHVybjt2YXIgaXRlbXM9dGhpcy5pdGVtc187dmFyIGluZGV4PXRyLmIuZmluZEZpcnN0SW5kZXhJbkFycmF5KGl0ZW1zLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBpdGVtLm1vZGVsSXRlbT09PWV2ZW50O30pO2lmKGluZGV4PT09LTEpCi1yZXR1cm4gZmFsc2U7dmFyIG5ld0luZGV4PWluZGV4K29mZnNldDtpZihuZXdJbmRleD49MCYmbmV3SW5kZXg8aXRlbXMubGVuZ3RoKXtpdGVtc1tuZXdJbmRleF0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTtyZXR1cm4gdHJ1ZTt9Ci1yZXR1cm4gZmFsc2U7fSxhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOmZ1bmN0aW9uKGZpbHRlcixzZWxlY3Rpb24pe30sYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246ZnVuY3Rpb24od29ybGRYLHdvcmxkTWF4RGlzdCxsb1ksaGlZLHNlbGVjdGlvbil7aWYodGhpcy5pdGVtc189PT11bmRlZmluZWQpCi1yZXR1cm47dmFyIGl0ZW09dHIuYi5maW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5KHRoaXMuaXRlbXNfLGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0YXJ0O30sd29ybGRYLHdvcmxkTWF4RGlzdCk7aWYoIWl0ZW0pCi1yZXR1cm47aXRlbS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pO319O2Z1bmN0aW9uIExldHRlckRvdChtb2RlbEl0ZW0sZG90TGV0dGVyLGNvbG9ySWQsc3RhcnQpe3RyLm1vZGVsLlByb3h5U2VsZWN0YWJsZUl0ZW0uY2FsbCh0aGlzLG1vZGVsSXRlbSk7dGhpcy5kb3RMZXR0ZXI9ZG90TGV0dGVyO3RoaXMuY29sb3JJZD1jb2xvcklkO3RoaXMuc3RhcnQ9c3RhcnQ7fTtMZXR0ZXJEb3QucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuUHJveHlTZWxlY3RhYmxlSXRlbS5wcm90b3R5cGV9O3JldHVybntMZXR0ZXJEb3RUcmFjazpMZXR0ZXJEb3RUcmFjayxMZXR0ZXJEb3Q6TGV0dGVyRG90fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBwYWxldHRlPXRyLmIudWkuZ2V0Q29sb3JQYWxldHRlKCk7dmFyIHN0YXJ0Q29tcGFyZT1mdW5jdGlvbih4LHkpe3JldHVybiB4LnN0YXJ0LXkuc3RhcnQ7fQotdmFyIEZyYW1lVHJhY2s9dHIuYi51aS5kZWZpbmUoJ2ZyYW1lLXRyYWNrJyx0ci5jLnRyYWNrcy5MZXR0ZXJEb3RUcmFjayk7RnJhbWVUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5MZXR0ZXJEb3RUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkxldHRlckRvdFRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuaGVhZGluZz0nRnJhbWVzJzt0aGlzLmZyYW1lc189dW5kZWZpbmVkO3RoaXMuaXRlbXM9dW5kZWZpbmVkO30sZ2V0IGZyYW1lcygpe3JldHVybiB0aGlzLmZyYW1lc187fSxzZXQgZnJhbWVzKGZyYW1lcyl7dGhpcy5mcmFtZXNfPWZyYW1lcztpZihmcmFtZXM9PT11bmRlZmluZWQpCi1yZXR1cm47dGhpcy5mcmFtZXNfPXRoaXMuZnJhbWVzXy5zbGljZSgpO3RoaXMuZnJhbWVzXy5zb3J0KHN0YXJ0Q29tcGFyZSk7dGhpcy5pdGVtcz10aGlzLmZyYW1lc18ubWFwKGZ1bmN0aW9uKGZyYW1lKXtyZXR1cm4gbmV3IEZyYW1lRG90KGZyYW1lKTt9KTt9fTtmdW5jdGlvbiBGcmFtZURvdChmcmFtZSl7dHIuYy50cmFja3MuTGV0dGVyRG90LmNhbGwodGhpcyxmcmFtZSwnRicsZnJhbWUuY29sb3JJZCxmcmFtZS5zdGFydCk7fQotRnJhbWVEb3QucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy50cmFja3MuTGV0dGVyRG90LnByb3RvdHlwZX07cmV0dXJue0ZyYW1lVHJhY2s6RnJhbWVUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgTXVsdGlSb3dUcmFjaz10ci5iLnVpLmRlZmluZSgnbXVsdGktcm93LXRyYWNrJyx0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjayk7TXVsdGlSb3dUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMudG9vbHRpcF89Jyc7dGhpcy5oZWFkaW5nXz0nJzt0aGlzLmdyb3VwaW5nU291cmNlXz11bmRlZmluZWQ7dGhpcy5pdGVtc1RvR3JvdXBfPXVuZGVmaW5lZDt0aGlzLmRlZmF1bHRUb0NvbGxhcHNlZFdoZW5TdWJSb3dDb3VudE1vcmVUaGFuPTE7dGhpcy5pdGVtc0dyb3VwZWRPbkxhc3RVcGRhdGVDb250ZW50c189dW5kZWZpbmVkO3RoaXMuY3VycmVudFN1YlJvd3NfPVtdO3RoaXMuZXhwYW5kZWRfPXRydWU7fSxnZXQgaXRlbXNUb0dyb3VwKCl7cmV0dXJuIHRoaXMuaXRlbXNUb0dyb3VwXzt9LHNldEl0ZW1zVG9Hcm91cDpmdW5jdGlvbihpdGVtc1RvR3JvdXAsb3B0X2dyb3VwaW5nU291cmNlKXt0aGlzLml0ZW1zVG9Hcm91cF89aXRlbXNUb0dyb3VwO3RoaXMuZ3JvdXBpbmdTb3VyY2VfPW9wdF9ncm91cGluZ1NvdXJjZTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO3RoaXMudXBkYXRlRXhwYW5kZWRTdGF0ZUZyb21Hcm91cGluZ1NvdXJjZV8oKTt9LGdldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuaGVhZGluZ187fSxzZXQgaGVhZGluZyhoKXt0aGlzLmhlYWRpbmdfPWg7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCB0b29sdGlwKCl7cmV0dXJuIHRoaXMudG9vbHRpcF87fSxzZXQgdG9vbHRpcCh0KXt0aGlzLnRvb2x0aXBfPXQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBzdWJSb3dzKCl7cmV0dXJuIHRoaXMuY3VycmVudFN1YlJvd3NfO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjA7fSxnZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmRlZF87fSxzZXQgZXhwYW5kZWQoZXhwYW5kZWQpe2V4cGFuZGVkPWV4cGFuZGVkO2lmKHRoaXMuZXhwYW5kZWRfPT1leHBhbmRlZCkKK2F4aXNHdWlkVG9BeGlzRGF0YVtheGlzR3VpZF0uc2VyaWVzLnB1c2goc2VyaWVzKTt0b3BQYWRkaW5nPU1hdGgubWF4KHRvcFBhZGRpbmcsc2VyaWVzLnRvcFBhZGRpbmcpO2JvdHRvbVBhZGRpbmc9TWF0aC5tYXgoYm90dG9tUGFkZGluZyxzZXJpZXMuYm90dG9tUGFkZGluZyk7fSx0aGlzKTt0aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV89YXhpc0d1aWRUb0F4aXNEYXRhO3RoaXMudG9wUGFkZGluZ189dG9wUGFkZGluZzt0aGlzLmJvdHRvbVBhZGRpbmdfPWJvdHRvbVBhZGRpbmc7fSxkcmF3OmZ1bmN0aW9uKHR5cGUsdmlld0xXb3JsZCx2aWV3UldvcmxkKXtzd2l0Y2godHlwZSl7Y2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDp0aGlzLmRyYXdDaGFydF8odmlld0xXb3JsZCx2aWV3UldvcmxkKTticmVhazt9fSxkcmF3Q2hhcnRfOmZ1bmN0aW9uKHZpZXdMV29ybGQsdmlld1JXb3JsZCl7aWYoIXRoaXMuc2VyaWVzXykKK3JldHVybjt2YXIgY3R4PXRoaXMuY29udGV4dCgpO3ZhciBkaXNwbGF5VHJhbnNmb3JtPXRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHBpeGVsUmF0aW89d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIGJvdW5kcz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBoaWdoRGV0YWlscz10aGlzLnZpZXdwb3J0LmhpZ2hEZXRhaWxzO3ZhciB3aWR0aD1ib3VuZHMud2lkdGgqcGl4ZWxSYXRpbzt2YXIgaGVpZ2h0PWJvdW5kcy5oZWlnaHQqcGl4ZWxSYXRpbzt2YXIgdG9wUGFkZGluZz10aGlzLnRvcFBhZGRpbmdfKnBpeGVsUmF0aW87dmFyIGJvdHRvbVBhZGRpbmc9dGhpcy5ib3R0b21QYWRkaW5nXypwaXhlbFJhdGlvO2N0eC5zYXZlKCk7Y3R4LmJlZ2luUGF0aCgpO2N0eC5yZWN0KDAsMCx3aWR0aCxoZWlnaHQpO2N0eC5jbGlwKCk7dGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXt2YXIgY2hhcnRUcmFuc2Zvcm09bmV3IHRyLnVpLnRyYWNrcy5DaGFydFRyYW5zZm9ybShkaXNwbGF5VHJhbnNmb3JtLHNlcmllcy5heGlzLHdpZHRoLGhlaWdodCx0b3BQYWRkaW5nLGJvdHRvbVBhZGRpbmcscGl4ZWxSYXRpbyk7c2VyaWVzLmRyYXcoY3R4LGNoYXJ0VHJhbnNmb3JtLGhpZ2hEZXRhaWxzKTt9LHRoaXMpO2N0eC5yZXN0b3JlKCk7fSxhZGRFdmVudHNUb1RyYWNrTWFwOmZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCl7dGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtzZXJpZXMucG9pbnRzLmZvckVhY2goZnVuY3Rpb24ocG9pbnQpe3BvaW50LmFkZFRvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwLHRoaXMpO30sdGhpcyk7fSx0aGlzKTt9LGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTpmdW5jdGlvbihsb1dYLGhpV1gsdmlld1BpeFdpZHRoV29ybGQsc2VsZWN0aW9uKXt0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UobG9XWCxoaVdYLHZpZXdQaXhXaWR0aFdvcmxkLHNlbGVjdGlvbik7fSx0aGlzKTt9LGFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKGV2ZW50LG9mZnNldCxzZWxlY3Rpb24pe3ZhciBmb3VuZEl0ZW09ZmFsc2U7dGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtmb3VuZEl0ZW09Zm91bmRJdGVtfHxzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oZXZlbnQsb2Zmc2V0LHNlbGVjdGlvbik7fSx0aGlzKTtyZXR1cm4gZm91bmRJdGVtO30sYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjpmdW5jdGlvbihmaWx0ZXIsc2VsZWN0aW9uKXt9LGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKHdvcmxkWCx3b3JsZE1heERpc3QsbG9ZLGhpWSxzZWxlY3Rpb24pe3RoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7c2VyaWVzLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKHdvcmxkWCx3b3JsZE1heERpc3QsbG9ZLGhpWSxzZWxlY3Rpb24pO30sdGhpcyk7fSxhdXRvU2V0QWxsQXhlczpmdW5jdGlvbihvcHRfY29uZmlnKXt0ci5iLml0ZXJJdGVtcyh0aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV8sZnVuY3Rpb24oYXhpc0d1aWQsYXhpc0RhdGEpe3ZhciBheGlzPWF4aXNEYXRhLmF4aXM7dmFyIHNlcmllcz1heGlzRGF0YS5zZXJpZXM7YXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsb3B0X2NvbmZpZyk7fSx0aGlzKTt9LGF1dG9TZXRBeGlzOmZ1bmN0aW9uKGF4aXMsb3B0X2NvbmZpZyl7dmFyIHNlcmllcz10aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV9bYXhpcy5ndWlkXS5zZXJpZXM7YXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsb3B0X2NvbmZpZyk7fX07cmV0dXJue0NoYXJ0VHJhY2s6Q2hhcnRUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIENoYXJ0VHJhY2s9dHIudWkudHJhY2tzLkNoYXJ0VHJhY2s7dmFyIFBvd2VyU2VyaWVzVHJhY2s9dHIudWkuYi5kZWZpbmUoJ3Bvd2VyLXNlcmllcy10cmFjaycsQ2hhcnRUcmFjayk7UG93ZXJTZXJpZXNUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzpDaGFydFRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7Q2hhcnRUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ3Bvd2VyLXNlcmllcy10cmFjaycpO3RoaXMuaGVhZGluZz0nUG93ZXInO3RoaXMucG93ZXJTZXJpZXNfPXVuZGVmaW5lZDt9LHNldCBwb3dlclNlcmllcyhwb3dlclNlcmllcyl7dGhpcy5wb3dlclNlcmllc189cG93ZXJTZXJpZXM7dGhpcy5zZXJpZXM9dGhpcy5idWlsZENoYXJ0U2VyaWVzXygpO3RoaXMuYXV0b1NldEFsbEF4ZXMoe2V4cGFuZE1heDp0cnVlfSk7fSxnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKXtyZXR1cm4odGhpcy5wb3dlclNlcmllc18mJnRoaXMucG93ZXJTZXJpZXNfLnNhbXBsZXMubGVuZ3RoPjApO30sYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6ZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCl7Y29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5wb3dlclNlcmllc18sdGhpcyk7fSxidWlsZENoYXJ0U2VyaWVzXzpmdW5jdGlvbigpe2lmKCF0aGlzLmhhc1Zpc2libGVDb250ZW50KQorcmV0dXJuW107dmFyIGF4aXM9bmV3IHRyLnVpLnRyYWNrcy5DaGFydEF4aXMoMCx1bmRlZmluZWQpO3ZhciBwdHM9dGhpcy5wb3dlclNlcmllc18uc2FtcGxlcy5tYXAoZnVuY3Rpb24oc21wbCl7cmV0dXJuIG5ldyB0ci51aS50cmFja3MuQ2hhcnRQb2ludChzbXBsLHNtcGwuc3RhcnQsc21wbC5wb3dlcik7fSk7dmFyIHJlbmRlcmluZ0NvbmZpZz17Y2hhcnRUeXBlOnRyLnVpLnRyYWNrcy5DaGFydFNlcmllc1R5cGUuQVJFQSxjb2xvcklkOnRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHRoaXMuaGVhZGluZyl9O3JldHVybltuZXcgdHIudWkudHJhY2tzLkNoYXJ0U2VyaWVzKHB0cyxheGlzLHJlbmRlcmluZ0NvbmZpZyldO319O3JldHVybntQb3dlclNlcmllc1RyYWNrOlBvd2VyU2VyaWVzVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBTcGFjaW5nVHJhY2s9dHIudWkuYi5kZWZpbmUoJ3NwYWNpbmctdHJhY2snLHRyLnVpLnRyYWNrcy5UcmFjayk7U3BhY2luZ1RyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ3NwYWNpbmctdHJhY2snKTt0aGlzLmhlYWRpbmdfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWhlYWRpbmcnKTt0aGlzLmFwcGVuZENoaWxkKHRoaXMuaGVhZGluZ18pO30sZHJhdzpmdW5jdGlvbih0eXBlLHZpZXdMV29ybGQsdmlld1JXb3JsZCl7fSxhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOmZ1bmN0aW9uKGZpbHRlcixzZWxlY3Rpb24pe319O3JldHVybntTcGFjaW5nVHJhY2s6U3BhY2luZ1RyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgQ29udGFpbmVyVHJhY2s9dHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrO3ZhciBEZXZpY2VUcmFjaz10ci51aS5iLmRlZmluZSgnZGV2aWNlLXRyYWNrJyxDb250YWluZXJUcmFjayk7RGV2aWNlVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186Q29udGFpbmVyVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXtDb250YWluZXJUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ2RldmljZS10cmFjaycpO3RoaXMuZGV2aWNlXz11bmRlZmluZWQ7dGhpcy5wb3dlclNlcmllc1RyYWNrXz11bmRlZmluZWQ7fSxnZXQgZGV2aWNlKCl7cmV0dXJuIHRoaXMuZGV2aWNlXzt9LHNldCBkZXZpY2UoZGV2aWNlKXt0aGlzLmRldmljZV89ZGV2aWNlO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgcG93ZXJTZXJpZXNUcmFjaygpe3JldHVybiB0aGlzLnBvd2VyU2VyaWVzVHJhY2tfO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7cmV0dXJuKHRoaXMucG93ZXJTZXJpZXNUcmFja18mJnRoaXMucG93ZXJTZXJpZXNUcmFja18uaGFzVmlzaWJsZUNvbnRlbnQpO30sYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6ZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCl7Y29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5kZXZpY2UsdGhpcyk7dGhpcy50cmFja3NfLmZvckVhY2goZnVuY3Rpb24odHJhY2spe3RyYWNrLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApO30pO30sYWRkRXZlbnRzVG9UcmFja01hcDpmdW5jdGlvbihldmVudFRvVHJhY2tNYXApe3RoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKXt0cmFjay5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7fSk7fSxhcHBlbmRQb3dlclNlcmllc1RyYWNrXzpmdW5jdGlvbigpe3RoaXMucG93ZXJTZXJpZXNUcmFja189bmV3IHRyLnVpLnRyYWNrcy5Qb3dlclNlcmllc1RyYWNrKHRoaXMudmlld3BvcnQpO3RoaXMucG93ZXJTZXJpZXNUcmFja18ucG93ZXJTZXJpZXM9dGhpcy5kZXZpY2UucG93ZXJTZXJpZXM7aWYodGhpcy5wb3dlclNlcmllc1RyYWNrXy5oYXNWaXNpYmxlQ29udGVudCl7dGhpcy5hcHBlbmRDaGlsZCh0aGlzLnBvd2VyU2VyaWVzVHJhY2tfKTt0aGlzLmFwcGVuZENoaWxkKG5ldyB0ci51aS50cmFja3MuU3BhY2luZ1RyYWNrKHRoaXMudmlld3BvcnQpKTt9fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0aGlzLmNsZWFyVHJhY2tzXygpO3RoaXMuYXBwZW5kUG93ZXJTZXJpZXNUcmFja18oKTt9fTtyZXR1cm57RGV2aWNlVHJhY2s6RGV2aWNlVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfTkFNRT0nc2l6ZSc7ZnVuY3Rpb24gYWRkRGljdGlvbmFyeShkc3REaWN0LHNyY0RpY3Qpe3RyLmIuaXRlckl0ZW1zKHNyY0RpY3QsZnVuY3Rpb24oa2V5LHZhbHVlKXt2YXIgZXhpc3RpbmdWYWx1ZT1kc3REaWN0W2tleV07aWYoZXhpc3RpbmdWYWx1ZT09PXVuZGVmaW5lZCkKK2V4aXN0aW5nVmFsdWU9MDtkc3REaWN0W2tleV09ZXhpc3RpbmdWYWx1ZSt2YWx1ZTt9KTt9CitmdW5jdGlvbiBnZXRQcm9jZXNzTWVtb3J5RHVtcEFsbG9jYXRvclNpemVzKHByb2Nlc3NNZW1vcnlEdW1wKXt2YXIgYWxsb2NhdG9yRHVtcHM9cHJvY2Vzc01lbW9yeUR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHM7aWYoYWxsb2NhdG9yRHVtcHM9PT11bmRlZmluZWQpCityZXR1cm57fTt2YXIgYWxsb2NhdG9yU2l6ZXM9e307YWxsb2NhdG9yRHVtcHMuZm9yRWFjaChmdW5jdGlvbihhbGxvY2F0b3JEdW1wKXtpZihhbGxvY2F0b3JEdW1wLmZ1bGxOYW1lPT09J3RyYWNpbmcnKQorcmV0dXJuO3ZhciBhbGxvY2F0b3JTaXplPWFsbG9jYXRvckR1bXAuYXR0cmlidXRlc1tBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfTkFNRV07aWYoYWxsb2NhdG9yU2l6ZT09PXVuZGVmaW5lZCkKK3JldHVybjt2YXIgYWxsb2NhdG9yU2l6ZVZhbHVlPWFsbG9jYXRvclNpemUudmFsdWU7aWYoYWxsb2NhdG9yU2l6ZVZhbHVlPT09dW5kZWZpbmVkKQorcmV0dXJuO2FsbG9jYXRvclNpemVzW2FsbG9jYXRvckR1bXAuZnVsbE5hbWVdPWFsbG9jYXRvclNpemVWYWx1ZTt9KTtyZXR1cm4gYWxsb2NhdG9yU2l6ZXM7fTtmdW5jdGlvbiBnZXRHbG9iYWxNZW1vcnlEdW1wQWxsb2NhdG9yU2l6ZXMoZ2xvYmFsTWVtb3J5RHVtcCl7dmFyIGdsb2JhbEFsbG9jYXRvclNpemVzPXt9O3RyLmIuaXRlckl0ZW1zKGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzLGZ1bmN0aW9uKHBpZCxwcm9jZXNzTWVtb3J5RHVtcCl7YWRkRGljdGlvbmFyeShnbG9iYWxBbGxvY2F0b3JTaXplcyxnZXRQcm9jZXNzTWVtb3J5RHVtcEFsbG9jYXRvclNpemVzKHByb2Nlc3NNZW1vcnlEdW1wKSk7fSk7cmV0dXJuIGdsb2JhbEFsbG9jYXRvclNpemVzO30KK2Z1bmN0aW9uIGJ1aWxkQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMobWVtb3J5RHVtcHMsbWVtb3J5RHVtcFRvQWxsb2NhdG9yU2l6ZXNGbil7dmFyIGFsbG9jYXRvck5hbWVUb1BvaW50cz17fTt2YXIgZHVtcHNEYXRhPW1lbW9yeUR1bXBzLm1hcChmdW5jdGlvbihtZW1vcnlEdW1wKXt2YXIgYWxsb2NhdG9yU2l6ZXM9bWVtb3J5RHVtcFRvQWxsb2NhdG9yU2l6ZXNGbihtZW1vcnlEdW1wKTt0ci5iLml0ZXJJdGVtcyhhbGxvY2F0b3JTaXplcyxmdW5jdGlvbihhbGxvY2F0b3JOYW1lKXthbGxvY2F0b3JOYW1lVG9Qb2ludHNbYWxsb2NhdG9yTmFtZV09W107fSk7cmV0dXJue2R1bXA6bWVtb3J5RHVtcCxzaXplczphbGxvY2F0b3JTaXplc307fSk7aWYoT2JqZWN0LmtleXMoYWxsb2NhdG9yTmFtZVRvUG9pbnRzKS5sZW5ndGg9PT0wKQorcmV0dXJuIHVuZGVmaW5lZDtkdW1wc0RhdGEuZm9yRWFjaChmdW5jdGlvbihkdW1wRGF0YSl7dmFyIG1lbW9yeUR1bXA9ZHVtcERhdGEuZHVtcDt2YXIgYWxsb2NhdG9yU2l6ZXM9ZHVtcERhdGEuc2l6ZXM7dHIuYi5pdGVySXRlbXMoYWxsb2NhdG9yTmFtZVRvUG9pbnRzLGZ1bmN0aW9uKGFsbG9jYXRvck5hbWUscG9pbnRzKXt2YXIgYWxsb2NhdG9yU2l6ZT1hbGxvY2F0b3JTaXplc1thbGxvY2F0b3JOYW1lXXx8MDtwb2ludHMucHVzaChuZXcgdHIudWkudHJhY2tzLkNoYXJ0UG9pbnQobWVtb3J5RHVtcCxtZW1vcnlEdW1wLnN0YXJ0LGFsbG9jYXRvclNpemUpKTt9KTt9KTt2YXIgYXhpcz1uZXcgdHIudWkudHJhY2tzLkNoYXJ0QXhpcygwKTt2YXIgc2VyaWVzPVtdO3RyLmIuaXRlckl0ZW1zKGFsbG9jYXRvck5hbWVUb1BvaW50cyxmdW5jdGlvbihhbGxvY2F0b3JOYW1lLHBvaW50cyl7dmFyIGNvbG9ySWQ9dHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoYWxsb2NhdG9yTmFtZSk7dmFyIHJlbmRlcmluZ0NvbmZpZz17Y2hhcnRUeXBlOnRyLnVpLnRyYWNrcy5DaGFydFNlcmllc1R5cGUuTElORSxjb2xvcklkOmNvbG9ySWR9O3Nlcmllcy5wdXNoKG5ldyB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXMocG9pbnRzLGF4aXMscmVuZGVyaW5nQ29uZmlnKSk7fSk7cmV0dXJuIHNlcmllczt9CitmdW5jdGlvbiBidWlsZE1lbW9yeUxldHRlckRvdHMobWVtb3J5RHVtcHMpe3ZhciBtZW1vcnlDb2xvcklkPXRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgnbWVtb3J5X2R1bXAnKTtyZXR1cm4gbWVtb3J5RHVtcHMubWFwKGZ1bmN0aW9uKG1lbW9yeUR1bXApe3JldHVybiBuZXcgdHIudWkudHJhY2tzLkxldHRlckRvdChtZW1vcnlEdW1wLCdNJyxtZW1vcnlDb2xvcklkLG1lbW9yeUR1bXAuc3RhcnQpO30pO30KK2Z1bmN0aW9uIGJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzKGdsb2JhbE1lbW9yeUR1bXBzKXt2YXIgY29udGFpbnNWbVJlZ2lvbnM9Z2xvYmFsTWVtb3J5RHVtcHMuc29tZShmdW5jdGlvbihnbG9iYWxEdW1wKXtmb3IodmFyIHBpZCBpbiBnbG9iYWxEdW1wLnByb2Nlc3NNZW1vcnlEdW1wcykKK2lmKGdsb2JhbER1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3BpZF0ubW9zdFJlY2VudFZtUmVnaW9ucykKK3JldHVybiB0cnVlO3JldHVybiBmYWxzZTt9KTtpZighY29udGFpbnNWbVJlZ2lvbnMpCityZXR1cm4gdW5kZWZpbmVkO3ZhciBwaWRUb1Byb2Nlc3M9e307Z2xvYmFsTWVtb3J5RHVtcHMuZm9yRWFjaChmdW5jdGlvbihnbG9iYWxEdW1wKXt0ci5iLml0ZXJJdGVtcyhnbG9iYWxEdW1wLnByb2Nlc3NNZW1vcnlEdW1wcyxmdW5jdGlvbihwaWQscHJvY2Vzc0R1bXApe3BpZFRvUHJvY2Vzc1twaWRdPXByb2Nlc3NEdW1wLnByb2Nlc3M7fSk7fSk7dmFyIHBpZFRvUG9pbnRzPXt9O3RyLmIuaXRlckl0ZW1zKHBpZFRvUHJvY2VzcyxmdW5jdGlvbihwaWQscHJvY2Vzcyl7cGlkVG9Qb2ludHNbcGlkXT1bXTt9KTtnbG9iYWxNZW1vcnlEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGdsb2JhbER1bXApe3ZhciBwc3NCYXNlPTA7dHIuYi5pdGVySXRlbXMocGlkVG9Qb2ludHMsZnVuY3Rpb24ocGlkLHBvaW50cyl7dmFyIHByb2Nlc3NNZW1vcnlEdW1wPWdsb2JhbER1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3BpZF07dmFyIHBzcztpZihwcm9jZXNzTWVtb3J5RHVtcD09PXVuZGVmaW5lZCl7cHNzPTA7fWVsc2V7cHNzPXByb2Nlc3NNZW1vcnlEdW1wLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnKTtpZihwc3M9PT11bmRlZmluZWQpe3Bzcz0wO319Cit2YXIgY3VtdWxhdGl2ZVBzcz1wc3NCYXNlK3Bzcztwb2ludHMucHVzaChuZXcgdHIudWkudHJhY2tzLkNoYXJ0UG9pbnQoZ2xvYmFsRHVtcCxnbG9iYWxEdW1wLnN0YXJ0LGN1bXVsYXRpdmVQc3MscHNzQmFzZSkpO3Bzc0Jhc2U9Y3VtdWxhdGl2ZVBzczt9KTt9KTt2YXIgYXhpcz1uZXcgdHIudWkudHJhY2tzLkNoYXJ0QXhpcygwKTt2YXIgc2VyaWVzPVtdO3RyLmIuaXRlckl0ZW1zKHBpZFRvUG9pbnRzLGZ1bmN0aW9uKHBpZCxwb2ludHMpe3ZhciBwcm9jZXNzPXBpZFRvUHJvY2Vzc1twaWRdO3ZhciBjb2xvcklkPXRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHByb2Nlc3MudXNlckZyaWVuZGx5TmFtZSk7dmFyIHJlbmRlcmluZ0NvbmZpZz17Y2hhcnRUeXBlOnRyLnVpLnRyYWNrcy5DaGFydFNlcmllc1R5cGUuQVJFQSxjb2xvcklkOmNvbG9ySWQsYmFja2dyb3VuZE9wYWNpdHk6MC44fTtzZXJpZXMucHVzaChuZXcgdHIudWkudHJhY2tzLkNoYXJ0U2VyaWVzKHBvaW50cyxheGlzLHJlbmRlcmluZ0NvbmZpZykpO30pO3Nlcmllcy5yZXZlcnNlKCk7cmV0dXJuIHNlcmllczt9CitmdW5jdGlvbiBidWlsZFByb2Nlc3NBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyhwcm9jZXNzTWVtb3J5RHVtcHMpe3JldHVybiBidWlsZEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKHByb2Nlc3NNZW1vcnlEdW1wcyxnZXRQcm9jZXNzTWVtb3J5RHVtcEFsbG9jYXRvclNpemVzKTt9CitmdW5jdGlvbiBidWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKGdsb2JhbE1lbW9yeUR1bXBzKXtyZXR1cm4gYnVpbGRBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyhnbG9iYWxNZW1vcnlEdW1wcyxnZXRHbG9iYWxNZW1vcnlEdW1wQWxsb2NhdG9yU2l6ZXMpO30KK3JldHVybntidWlsZE1lbW9yeUxldHRlckRvdHM6YnVpbGRNZW1vcnlMZXR0ZXJEb3RzLGJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzOmJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzLGJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzOmJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzLGJ1aWxkR2xvYmFsQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXM6YnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllc307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIFVTRURfTUVNT1JZX1RSQUNLX0hFSUdIVD01MDt2YXIgQUxMT0NBVEVEX01FTU9SWV9UUkFDS19IRUlHSFQ9NTA7dmFyIEdsb2JhbE1lbW9yeUR1bXBUcmFjaz10ci51aS5iLmRlZmluZSgnZ2xvYmFsLW1lbW9yeS1kdW1wLXRyYWNrJyx0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2spO0dsb2JhbE1lbW9yeUR1bXBUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5tZW1vcnlEdW1wc189dW5kZWZpbmVkO30sZ2V0IG1lbW9yeUR1bXBzKCl7cmV0dXJuIHRoaXMubWVtb3J5RHVtcHNfO30sc2V0IG1lbW9yeUR1bXBzKG1lbW9yeUR1bXBzKXt0aGlzLm1lbW9yeUR1bXBzXz1tZW1vcnlEdW1wczt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dGhpcy5jbGVhclRyYWNrc18oKTtpZighdGhpcy5tZW1vcnlEdW1wc198fCF0aGlzLm1lbW9yeUR1bXBzXy5sZW5ndGgpCityZXR1cm47dGhpcy5hcHBlbmREdW1wRG90c1RyYWNrXygpO3RoaXMuYXBwZW5kVXNlZE1lbW9yeVRyYWNrXygpO3RoaXMuYXBwZW5kQWxsb2NhdGVkTWVtb3J5VHJhY2tfKCk7fSxhcHBlbmREdW1wRG90c1RyYWNrXzpmdW5jdGlvbigpe3ZhciBpdGVtcz10ci51aS50cmFja3MuYnVpbGRNZW1vcnlMZXR0ZXJEb3RzKHRoaXMubWVtb3J5RHVtcHNfKTtpZighaXRlbXMpCityZXR1cm47dmFyIHRyYWNrPW5ldyB0ci51aS50cmFja3MuTGV0dGVyRG90VHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suaGVhZGluZz0nTWVtb3J5IER1bXBzJzt0cmFjay5pdGVtcz1pdGVtczt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt9LGFwcGVuZFVzZWRNZW1vcnlUcmFja186ZnVuY3Rpb24oKXt2YXIgc2VyaWVzPXRyLnVpLnRyYWNrcy5idWlsZEdsb2JhbFVzZWRNZW1vcnlDaGFydFNlcmllcyh0aGlzLm1lbW9yeUR1bXBzXyk7aWYoIXNlcmllcykKK3JldHVybjt2YXIgdHJhY2s9bmV3IHRyLnVpLnRyYWNrcy5DaGFydFRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLmhlYWRpbmc9J1VzZWQgbWVtb3J5IChwZXIgcHJvY2VzcyknO3RyYWNrLmhlaWdodD1VU0VEX01FTU9SWV9UUkFDS19IRUlHSFQrJ3B4Jzt0cmFjay5zZXJpZXM9c2VyaWVzO3RyYWNrLmF1dG9TZXRBbGxBeGVzKHtleHBhbmRNYXg6dHJ1ZX0pO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO30sYXBwZW5kQWxsb2NhdGVkTWVtb3J5VHJhY2tfOmZ1bmN0aW9uKCl7dmFyIHNlcmllcz10ci51aS50cmFja3MuYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyh0aGlzLm1lbW9yeUR1bXBzXyk7aWYoIXNlcmllcykKK3JldHVybjt2YXIgdHJhY2s9bmV3IHRyLnVpLnRyYWNrcy5DaGFydFRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLmhlYWRpbmc9J0FsbG9jYXRlZCBtZW1vcnkgKHBlciBhbGxvY2F0b3IpJzt0cmFjay5oZWlnaHQ9QUxMT0NBVEVEX01FTU9SWV9UUkFDS19IRUlHSFQrJ3B4Jzt0cmFjay5zZXJpZXM9c2VyaWVzO3RyYWNrLmF1dG9TZXRBbGxBeGVzKHtleHBhbmRNYXg6dHJ1ZX0pO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO319O3JldHVybntHbG9iYWxNZW1vcnlEdW1wVHJhY2s6R2xvYmFsTWVtb3J5RHVtcFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXtmdW5jdGlvbiBIaWdobGlnaHRlcih2aWV3cG9ydCl7aWYodmlld3BvcnQ9PT11bmRlZmluZWQpe3Rocm93IG5ldyBFcnJvcigndmlld3BvcnQgbXVzdCBiZSBwcm92aWRlZCcpO30KK3RoaXMudmlld3BvcnRfPXZpZXdwb3J0O307SGlnaGxpZ2h0ZXIucHJvdG90eXBlPXtfX3Byb3RvX186T2JqZWN0LnByb3RvdHlwZSxwcm9jZXNzTW9kZWw6ZnVuY3Rpb24obW9kZWwpe3Rocm93IG5ldyBFcnJvcigncHJvY2Vzc01vZGVsIGltcGxlbWVudGF0aW9uIG1pc3NpbmcnKTt9LGRyYXdIaWdobGlnaHQ6ZnVuY3Rpb24oY3R4LGR0LHZpZXdMV29ybGQsdmlld1JXb3JsZCx2aWV3SGVpZ2h0KXt0aHJvdyBuZXcgRXJyb3IoJ2RyYXdIaWdobGlnaHQgaW1wbGVtZW50YXRpb24gbWlzc2luZycpO319O3ZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpO29wdGlvbnMuZGVmYXVsdE1ldGFkYXRhPXt9O29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPUhpZ2hsaWdodGVyO3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShIaWdobGlnaHRlcixvcHRpb25zKTtyZXR1cm57SGlnaGxpZ2h0ZXI6SGlnaGxpZ2h0ZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBDb3VudGVyVHJhY2s9dHIudWkuYi5kZWZpbmUoJ2NvdW50ZXItdHJhY2snLHRyLnVpLnRyYWNrcy5DaGFydFRyYWNrKTtDb3VudGVyVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLkNoYXJ0VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuQ2hhcnRUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ2NvdW50ZXItdHJhY2snKTt9LGdldCBjb3VudGVyKCl7cmV0dXJuIHRoaXMuY2hhcnQ7fSxzZXQgY291bnRlcihjb3VudGVyKXt0aGlzLmhlYWRpbmc9Y291bnRlci5uYW1lKyc6ICc7dGhpcy5zZXJpZXM9Q291bnRlclRyYWNrLmJ1aWxkQ2hhcnRTZXJpZXNGcm9tQ291bnRlcihjb3VudGVyKTt0aGlzLmF1dG9TZXRBbGxBeGVzKHtleHBhbmRNYXg6dHJ1ZX0pO30sZ2V0TW9kZWxFdmVudEZyb21JdGVtOmZ1bmN0aW9uKGNoYXJ0VmFsdWUpe3JldHVybiBjaGFydFZhbHVlO319O0NvdW50ZXJUcmFjay5idWlsZENoYXJ0U2VyaWVzRnJvbUNvdW50ZXI9ZnVuY3Rpb24oY291bnRlcil7dmFyIG51bVNlcmllcz1jb3VudGVyLnNlcmllcy5sZW5ndGg7dmFyIHRvdGFscz1jb3VudGVyLnRvdGFsczt2YXIgY2hhcnRBeGlzPW5ldyB0ci51aS50cmFja3MuQ2hhcnRBeGlzKDAsdW5kZWZpbmVkKTt2YXIgY2hhcnRTZXJpZXM9Y291bnRlci5zZXJpZXMubWFwKGZ1bmN0aW9uKHNlcmllcyxzZXJpZXNJbmRleCl7dmFyIGNoYXJ0UG9pbnRzPXNlcmllcy5zYW1wbGVzLm1hcChmdW5jdGlvbihzYW1wbGUsc2FtcGxlSW5kZXgpe3ZhciB0b3RhbD10b3RhbHNbc2FtcGxlSW5kZXgqbnVtU2VyaWVzK3Nlcmllc0luZGV4XTtyZXR1cm4gbmV3IHRyLnVpLnRyYWNrcy5DaGFydFBvaW50KHNhbXBsZSxzYW1wbGUudGltZXN0YW1wLHRvdGFsKTt9KTt2YXIgcmVuZGVyaW5nQ29uZmlnPXtjaGFydFR5cGU6dHIudWkudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZS5BUkVBLGNvbG9ySWQ6c2VyaWVzLmNvbG9yfTtyZXR1cm4gbmV3IHRyLnVpLnRyYWNrcy5DaGFydFNlcmllcyhjaGFydFBvaW50cyxjaGFydEF4aXMscmVuZGVyaW5nQ29uZmlnKTt9KTtjaGFydFNlcmllcy5yZXZlcnNlKCk7cmV0dXJuIGNoYXJ0U2VyaWVzO307cmV0dXJue0NvdW50ZXJUcmFjazpDb3VudGVyVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBwYWxldHRlPXRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlKCk7dmFyIHN0YXJ0Q29tcGFyZT1mdW5jdGlvbih4LHkpe3JldHVybiB4LnN0YXJ0LXkuc3RhcnQ7fQordmFyIEZyYW1lVHJhY2s9dHIudWkuYi5kZWZpbmUoJ2ZyYW1lLXRyYWNrJyx0ci51aS50cmFja3MuTGV0dGVyRG90VHJhY2spO0ZyYW1lVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLkxldHRlckRvdFRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIudWkudHJhY2tzLkxldHRlckRvdFRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuaGVhZGluZz0nRnJhbWVzJzt0aGlzLmZyYW1lc189dW5kZWZpbmVkO3RoaXMuaXRlbXM9dW5kZWZpbmVkO30sZ2V0IGZyYW1lcygpe3JldHVybiB0aGlzLmZyYW1lc187fSxzZXQgZnJhbWVzKGZyYW1lcyl7dGhpcy5mcmFtZXNfPWZyYW1lcztpZihmcmFtZXM9PT11bmRlZmluZWQpCityZXR1cm47dGhpcy5mcmFtZXNfPXRoaXMuZnJhbWVzXy5zbGljZSgpO3RoaXMuZnJhbWVzXy5zb3J0KHN0YXJ0Q29tcGFyZSk7dGhpcy5pdGVtcz10aGlzLmZyYW1lc18ubWFwKGZ1bmN0aW9uKGZyYW1lKXtyZXR1cm4gbmV3IEZyYW1lRG90KGZyYW1lKTt9KTt9fTtmdW5jdGlvbiBGcmFtZURvdChmcmFtZSl7dHIudWkudHJhY2tzLkxldHRlckRvdC5jYWxsKHRoaXMsZnJhbWUsJ0YnLGZyYW1lLmNvbG9ySWQsZnJhbWUuc3RhcnQpO30KK0ZyYW1lRG90LnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLnRyYWNrcy5MZXR0ZXJEb3QucHJvdG90eXBlfTtyZXR1cm57RnJhbWVUcmFjazpGcmFtZVRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBTZXR0aW5ncz10ci5iLlNldHRpbmdzO2Z1bmN0aW9uIE1vZGVsU2V0dGluZ3MobW9kZWwpe3RoaXMubW9kZWw9bW9kZWw7dGhpcy5vYmplY3RzQnlLZXlfPVtdO3RoaXMubm9udW5pcXVlS2V5c189W107dGhpcy5idWlsZE9iamVjdHNCeUtleU1hcF8oKTt0aGlzLnJlbW92ZU5vbnVuaXF1ZUtleXNGcm9tU2V0dGluZ3NfKCk7dGhpcy5lcGhlbWVyYWxTZXR0aW5nc0J5R1VJRF89e307fQorTW9kZWxTZXR0aW5ncy5wcm90b3R5cGU9e2J1aWxkT2JqZWN0c0J5S2V5TWFwXzpmdW5jdGlvbigpe3ZhciBvYmplY3RzPVtdO3RoaXMubW9kZWwuaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0cyhmdW5jdGlvbihvKXtvYmplY3RzLnB1c2gobyk7fSk7dmFyIG9iamVjdHNCeUtleT17fTt2YXIgTk9OVU5JUVVFX0tFWT0nbm9udW5pcXVlS2V5Jztmb3IodmFyIGk9MDtpPG9iamVjdHMubGVuZ3RoO2krKyl7dmFyIG9iamVjdD1vYmplY3RzW2ldO3ZhciBvYmplY3RLZXk9b2JqZWN0LmdldFNldHRpbmdzS2V5KCk7aWYoIW9iamVjdEtleSkKK2NvbnRpbnVlO2lmKG9iamVjdHNCeUtleVtvYmplY3RLZXldPT09dW5kZWZpbmVkKXtvYmplY3RzQnlLZXlbb2JqZWN0S2V5XT1vYmplY3Q7Y29udGludWU7fQorb2JqZWN0c0J5S2V5W29iamVjdEtleV09Tk9OVU5JUVVFX0tFWTt9Cit2YXIgbm9udW5pcXVlS2V5cz17fTt0ci5iLmRpY3Rpb25hcnlLZXlzKG9iamVjdHNCeUtleSkuZm9yRWFjaChmdW5jdGlvbihvYmplY3RLZXkpe2lmKG9iamVjdHNCeUtleVtvYmplY3RLZXldIT09Tk9OVU5JUVVFX0tFWSkKK3JldHVybjtkZWxldGUgb2JqZWN0c0J5S2V5W29iamVjdEtleV07bm9udW5pcXVlS2V5c1tvYmplY3RLZXldPXRydWU7fSk7dGhpcy5ub251bmlxdWVLZXlzPW5vbnVuaXF1ZUtleXM7dGhpcy5vYmplY3RzQnlLZXlfPW9iamVjdHNCeUtleTt9LHJlbW92ZU5vbnVuaXF1ZUtleXNGcm9tU2V0dGluZ3NfOmZ1bmN0aW9uKCl7dmFyIHNldHRpbmdzPVNldHRpbmdzLmdldCgndHJhY2VfbW9kZWxfc2V0dGluZ3MnLHt9KTt2YXIgc2V0dGluZ3NDaGFuZ2VkPWZhbHNlO3RyLmIuZGljdGlvbmFyeUtleXMoc2V0dGluZ3MpLmZvckVhY2goZnVuY3Rpb24ob2JqZWN0S2V5KXtpZighdGhpcy5ub251bmlxdWVLZXlzW29iamVjdEtleV0pCityZXR1cm47c2V0dGluZ3NDaGFuZ2VkPXRydWU7ZGVsZXRlIHNldHRpbmdzW29iamVjdEtleV07fSx0aGlzKTtpZihzZXR0aW5nc0NoYW5nZWQpCitTZXR0aW5ncy5zZXQoJ3RyYWNlX21vZGVsX3NldHRpbmdzJyxzZXR0aW5ncyk7fSxoYXNVbmlxdWVTZXR0aW5nS2V5OmZ1bmN0aW9uKG9iamVjdCl7dmFyIG9iamVjdEtleT1vYmplY3QuZ2V0U2V0dGluZ3NLZXkoKTtpZighb2JqZWN0S2V5KQorcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLm9iamVjdHNCeUtleV9bb2JqZWN0S2V5XSE9PXVuZGVmaW5lZDt9LGdldFNldHRpbmdGb3I6ZnVuY3Rpb24ob2JqZWN0LG9iamVjdExldmVsS2V5LGRlZmF1bHRWYWx1ZSl7dmFyIG9iamVjdEtleT1vYmplY3QuZ2V0U2V0dGluZ3NLZXkoKTtpZighb2JqZWN0S2V5fHwhdGhpcy5vYmplY3RzQnlLZXlfW29iamVjdEtleV0pe3ZhciBzZXR0aW5ncz10aGlzLmdldEVwaGVtZXJhbFNldHRpbmdzRm9yXyhvYmplY3QpO3ZhciBlcGhlbWVyYWxWYWx1ZT1zZXR0aW5nc1tvYmplY3RMZXZlbEtleV07aWYoZXBoZW1lcmFsVmFsdWUhPT11bmRlZmluZWQpCityZXR1cm4gZXBoZW1lcmFsVmFsdWU7cmV0dXJuIGRlZmF1bHRWYWx1ZTt9Cit2YXIgc2V0dGluZ3M9U2V0dGluZ3MuZ2V0KCd0cmFjZV9tb2RlbF9zZXR0aW5ncycse30pO2lmKCFzZXR0aW5nc1tvYmplY3RLZXldKQorc2V0dGluZ3Nbb2JqZWN0S2V5XT17fTt2YXIgdmFsdWU9c2V0dGluZ3Nbb2JqZWN0S2V5XVtvYmplY3RMZXZlbEtleV07aWYodmFsdWUhPT11bmRlZmluZWQpCityZXR1cm4gdmFsdWU7cmV0dXJuIGRlZmF1bHRWYWx1ZTt9LHNldFNldHRpbmdGb3I6ZnVuY3Rpb24ob2JqZWN0LG9iamVjdExldmVsS2V5LHZhbHVlKXt2YXIgb2JqZWN0S2V5PW9iamVjdC5nZXRTZXR0aW5nc0tleSgpO2lmKCFvYmplY3RLZXl8fCF0aGlzLm9iamVjdHNCeUtleV9bb2JqZWN0S2V5XSl7dGhpcy5nZXRFcGhlbWVyYWxTZXR0aW5nc0Zvcl8ob2JqZWN0KVtvYmplY3RMZXZlbEtleV09dmFsdWU7cmV0dXJuO30KK3ZhciBzZXR0aW5ncz1TZXR0aW5ncy5nZXQoJ3RyYWNlX21vZGVsX3NldHRpbmdzJyx7fSk7aWYoIXNldHRpbmdzW29iamVjdEtleV0pCitzZXR0aW5nc1tvYmplY3RLZXldPXt9O2lmKHNldHRpbmdzW29iamVjdEtleV1bb2JqZWN0TGV2ZWxLZXldPT09dmFsdWUpCityZXR1cm47c2V0dGluZ3Nbb2JqZWN0S2V5XVtvYmplY3RMZXZlbEtleV09dmFsdWU7U2V0dGluZ3Muc2V0KCd0cmFjZV9tb2RlbF9zZXR0aW5ncycsc2V0dGluZ3MpO30sZ2V0RXBoZW1lcmFsU2V0dGluZ3NGb3JfOmZ1bmN0aW9uKG9iamVjdCl7aWYob2JqZWN0Lmd1aWQ9PT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb2JqZWN0cyB3aXRoIEdVSURzIGNhbiBiZSBwZXJzaXN0ZWQnKTtpZih0aGlzLmVwaGVtZXJhbFNldHRpbmdzQnlHVUlEX1tvYmplY3QuZ3VpZF09PT11bmRlZmluZWQpCit0aGlzLmVwaGVtZXJhbFNldHRpbmdzQnlHVUlEX1tvYmplY3QuZ3VpZF09e307cmV0dXJuIHRoaXMuZXBoZW1lcmFsU2V0dGluZ3NCeUdVSURfW29iamVjdC5ndWlkXTt9fTtyZXR1cm57TW9kZWxTZXR0aW5nczpNb2RlbFNldHRpbmdzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgTXVsdGlSb3dUcmFjaz10ci51aS5iLmRlZmluZSgnbXVsdGktcm93LXRyYWNrJyx0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2spO011bHRpUm93VHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMudG9vbHRpcF89Jyc7dGhpcy5oZWFkaW5nXz0nJzt0aGlzLmdyb3VwaW5nU291cmNlXz11bmRlZmluZWQ7dGhpcy5pdGVtc1RvR3JvdXBfPXVuZGVmaW5lZDt0aGlzLmRlZmF1bHRUb0NvbGxhcHNlZFdoZW5TdWJSb3dDb3VudE1vcmVUaGFuPTE7dGhpcy5pdGVtc0dyb3VwZWRPbkxhc3RVcGRhdGVDb250ZW50c189dW5kZWZpbmVkO3RoaXMuY3VycmVudFN1YlJvd3NfPVtdO3RoaXMuZXhwYW5kZWRfPXRydWU7fSxnZXQgaXRlbXNUb0dyb3VwKCl7cmV0dXJuIHRoaXMuaXRlbXNUb0dyb3VwXzt9LHNldEl0ZW1zVG9Hcm91cDpmdW5jdGlvbihpdGVtc1RvR3JvdXAsb3B0X2dyb3VwaW5nU291cmNlKXt0aGlzLml0ZW1zVG9Hcm91cF89aXRlbXNUb0dyb3VwO3RoaXMuZ3JvdXBpbmdTb3VyY2VfPW9wdF9ncm91cGluZ1NvdXJjZTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO3RoaXMudXBkYXRlRXhwYW5kZWRTdGF0ZUZyb21Hcm91cGluZ1NvdXJjZV8oKTt9LGdldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuaGVhZGluZ187fSxzZXQgaGVhZGluZyhoKXt0aGlzLmhlYWRpbmdfPWg7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCB0b29sdGlwKCl7cmV0dXJuIHRoaXMudG9vbHRpcF87fSxzZXQgdG9vbHRpcCh0KXt0aGlzLnRvb2x0aXBfPXQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBzdWJSb3dzKCl7cmV0dXJuIHRoaXMuY3VycmVudFN1YlJvd3NfO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjA7fSxnZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmRlZF87fSxzZXQgZXhwYW5kZWQoZXhwYW5kZWQpe2lmKHRoaXMuZXhwYW5kZWRfPT1leHBhbmRlZCkKIHJldHVybjt0aGlzLmV4cGFuZGVkXz1leHBhbmRlZDt0aGlzLmV4cGFuZGVkU3RhdGVDaGFuZ2VkXygpO30sb25IZWFkaW5nQ2xpY2tlZF86ZnVuY3Rpb24oZSl7aWYodGhpcy5zdWJSb3dzLmxlbmd0aDw9MSkKIHJldHVybjt0aGlzLmV4cGFuZGVkPSF0aGlzLmV4cGFuZGVkO2lmKHRoaXMuZ3JvdXBpbmdTb3VyY2VfKXt2YXIgbW9kZWxTZXR0aW5ncz1uZXcgdHIubW9kZWwuTW9kZWxTZXR0aW5ncyh0aGlzLmdyb3VwaW5nU291cmNlXy5tb2RlbCk7bW9kZWxTZXR0aW5ncy5zZXRTZXR0aW5nRm9yKHRoaXMuZ3JvdXBpbmdTb3VyY2VfLCdleHBhbmRlZCcsdGhpcy5leHBhbmRlZCk7fQogZS5zdG9wUHJvcGFnYXRpb24oKTt9LHVwZGF0ZUV4cGFuZGVkU3RhdGVGcm9tR3JvdXBpbmdTb3VyY2VfOmZ1bmN0aW9uKCl7aWYodGhpcy5ncm91cGluZ1NvdXJjZV8pe3ZhciBudW1TdWJSb3dzPXRoaXMuc3ViUm93cy5sZW5ndGg7dmFyIG1vZGVsU2V0dGluZ3M9bmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3ModGhpcy5ncm91cGluZ1NvdXJjZV8ubW9kZWwpO2lmKG51bVN1YlJvd3M+MSl7dmFyIGRlZmF1bHRFeHBhbmRlZDtpZihudW1TdWJSb3dzPnRoaXMuZGVmYXVsdFRvQ29sbGFwc2VkV2hlblN1YlJvd0NvdW50TW9yZVRoYW4pe2RlZmF1bHRFeHBhbmRlZD1mYWxzZTt9ZWxzZXtkZWZhdWx0RXhwYW5kZWQ9dHJ1ZTt9Ci10aGlzLmV4cGFuZGVkPW1vZGVsU2V0dGluZ3MuZ2V0U2V0dGluZ0Zvcih0aGlzLmdyb3VwaW5nU291cmNlXywnZXhwYW5kZWQnLGRlZmF1bHRFeHBhbmRlZCk7fWVsc2V7dGhpcy5leHBhbmRlZD11bmRlZmluZWQ7fX19LGV4cGFuZGVkU3RhdGVDaGFuZ2VkXzpmdW5jdGlvbigpe3ZhciBtaW5IPU1hdGgubWF4KDIsTWF0aC5jZWlsKDE4L3RoaXMuY2hpbGRyZW4ubGVuZ3RoKSk7dmFyIGg9KHRoaXMuZXhwYW5kZWRfPzE4Om1pbkgpKydweCc7Zm9yKHZhciBpPTA7aTx0aGlzLmNoaWxkcmVuLmxlbmd0aDtpKyspCi10aGlzLmNoaWxkcmVuW2ldLmhlaWdodD1oO2lmKHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjApCi10aGlzLmNoaWxkcmVuWzBdLmV4cGFuZGVkPXRoaXMuZXhwYW5kZWQ7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUudXBkYXRlQ29udGVudHNfLmNhbGwodGhpcyk7aWYoIXRoaXMuaXRlbXNUb0dyb3VwXyl7dGhpcy51cGRhdGVIZWFkaW5nQW5kVG9vbHRpcF8oKTt0aGlzLmN1cnJlbnRTdWJSb3dzXz1bXTtyZXR1cm47fQordGhpcy5leHBhbmRlZD1tb2RlbFNldHRpbmdzLmdldFNldHRpbmdGb3IodGhpcy5ncm91cGluZ1NvdXJjZV8sJ2V4cGFuZGVkJyxkZWZhdWx0RXhwYW5kZWQpO31lbHNle3RoaXMuZXhwYW5kZWQ9dW5kZWZpbmVkO319fSxleHBhbmRlZFN0YXRlQ2hhbmdlZF86ZnVuY3Rpb24oKXt2YXIgbWluSD1NYXRoLm1heCgyLE1hdGguY2VpbCgxOC90aGlzLmNoaWxkcmVuLmxlbmd0aCkpO3ZhciBoPSh0aGlzLmV4cGFuZGVkXz8xODptaW5IKSsncHgnO2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7aSsrKXt0aGlzLmNoaWxkcmVuW2ldLmhlaWdodD1oO2lmKGk9PT0wKQordGhpcy5jaGlsZHJlbltpXS5hcnJvd1Zpc2libGU9dHJ1ZTt0aGlzLmNoaWxkcmVuW2ldLmV4cGFuZGVkPXRoaXMuZXhwYW5kZWQ7fQoraWYodGhpcy5jaGlsZHJlbi5sZW5ndGg9PT0xKXt0aGlzLmNoaWxkcmVuWzBdLmV4cGFuZGVkPXRydWU7dGhpcy5jaGlsZHJlblswXS5hcnJvd1Zpc2libGU9ZmFsc2U7fX0sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS51cGRhdGVDb250ZW50c18uY2FsbCh0aGlzKTtpZighdGhpcy5pdGVtc1RvR3JvdXBfKXt0aGlzLnVwZGF0ZUhlYWRpbmdBbmRUb29sdGlwXygpO3RoaXMuY3VycmVudFN1YlJvd3NfPVtdO3JldHVybjt9CiBpZih0aGlzLmFyZUFycmF5Q29udGVudHNTYW1lXyh0aGlzLml0ZW1zR3JvdXBlZE9uTGFzdFVwZGF0ZUNvbnRlbnRzXyx0aGlzLml0ZW1zVG9Hcm91cF8pKXt0aGlzLnVwZGF0ZUhlYWRpbmdBbmRUb29sdGlwXygpO3JldHVybjt9CiB0aGlzLml0ZW1zR3JvdXBlZE9uTGFzdFVwZGF0ZUNvbnRlbnRzXz10aGlzLml0ZW1zVG9Hcm91cF87dGhpcy5kZXRhY2goKTtpZighdGhpcy5pdGVtc1RvR3JvdXBfLmxlbmd0aCl7dGhpcy5jdXJyZW50U3ViUm93c189W107cmV0dXJuO30KIHZhciBzdWJSb3dzPXRoaXMuYnVpbGRTdWJSb3dzXyh0aGlzLml0ZW1zVG9Hcm91cF8pO3RoaXMuY3VycmVudFN1YlJvd3NfPXN1YlJvd3M7Zm9yKHZhciBzckk9MDtzckk8c3ViUm93cy5sZW5ndGg7c3JJKyspe3ZhciBzdWJSb3c9c3ViUm93c1tzckldO2lmKCFzdWJSb3cubGVuZ3RoKQpAQCAtMzM0Niw4ICszOTIyLDggQEAKIHJldHVybiBmYWxzZTtpZihhLmxlbmd0aCE9Yi5sZW5ndGgpCiByZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxhLmxlbmd0aDsrK2kpe2lmKGFbaV0hPWJbaV0pCiByZXR1cm4gZmFsc2U7fQotcmV0dXJuIHRydWU7fX07cmV0dXJue011bHRpUm93VHJhY2s6TXVsdGlSb3dUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7dmFyIEV2ZW50UHJlc2VudGVyPXRyLmMuRXZlbnRQcmVzZW50ZXI7dmFyIE9iamVjdEluc3RhbmNlVHJhY2s9dHIuYi51aS5kZWZpbmUoJ29iamVjdC1pbnN0YW5jZS10cmFjaycsdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrKTtPYmplY3RJbnN0YW5jZVRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ29iamVjdC1pbnN0YW5jZS10cmFjaycpO3RoaXMub2JqZWN0SW5zdGFuY2VzXz1bXTt0aGlzLm9iamVjdFNuYXBzaG90c189W107fSxnZXQgb2JqZWN0SW5zdGFuY2VzKCl7cmV0dXJuIHRoaXMub2JqZWN0SW5zdGFuY2VzXzt9LHNldCBvYmplY3RJbnN0YW5jZXMob2JqZWN0SW5zdGFuY2VzKXtpZighb2JqZWN0SW5zdGFuY2VzfHxvYmplY3RJbnN0YW5jZXMubGVuZ3RoPT0wKXt0aGlzLmhlYWRpbmc9Jyc7dGhpcy5vYmplY3RJbnN0YW5jZXNfPVtdO3RoaXMub2JqZWN0U25hcHNob3RzXz1bXTtyZXR1cm47fQotdGhpcy5oZWFkaW5nPW9iamVjdEluc3RhbmNlc1swXS50eXBlTmFtZTt0aGlzLm9iamVjdEluc3RhbmNlc189b2JqZWN0SW5zdGFuY2VzO3RoaXMub2JqZWN0U25hcHNob3RzXz1bXTt0aGlzLm9iamVjdEluc3RhbmNlc18uZm9yRWFjaChmdW5jdGlvbihpbnN0YW5jZSl7dGhpcy5vYmplY3RTbmFwc2hvdHNfLnB1c2guYXBwbHkodGhpcy5vYmplY3RTbmFwc2hvdHNfLGluc3RhbmNlLnNuYXBzaG90cyk7fSx0aGlzKTt0aGlzLm9iamVjdFNuYXBzaG90c18uc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhLnRzLWIudHM7fSk7fSxnZXQgaGVpZ2h0KCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDt9LHNldCBoZWlnaHQoaGVpZ2h0KXt0aGlzLnN0eWxlLmhlaWdodD1oZWlnaHQ7fSxnZXQgc25hcHNob3RSYWRpdXNWaWV3KCl7cmV0dXJuIDcqKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxKTt9LGRyYXc6ZnVuY3Rpb24odHlwZSx2aWV3TFdvcmxkLHZpZXdSV29ybGQpe3N3aXRjaCh0eXBlKXtjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6dGhpcy5kcmF3TGV0dGVyRG90c18odmlld0xXb3JsZCx2aWV3UldvcmxkKTticmVhazt9fSxkcmF3TGV0dGVyRG90c186ZnVuY3Rpb24odmlld0xXb3JsZCx2aWV3UldvcmxkKXt2YXIgY3R4PXRoaXMuY29udGV4dCgpO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBib3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgaGVpZ2h0PWJvdW5kcy5oZWlnaHQqcGl4ZWxSYXRpbzt2YXIgaGFsZkhlaWdodD1oZWlnaHQqMC41O3ZhciB0d29QaT1NYXRoLlBJKjI7dmFyIGR0PXRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHNuYXBzaG90UmFkaXVzVmlldz10aGlzLnNuYXBzaG90UmFkaXVzVmlldzt2YXIgc25hcHNob3RSYWRpdXNXb3JsZD1kdC54Vmlld1ZlY3RvclRvV29ybGQoaGVpZ2h0KTt2YXIgbG9JO2N0eC5zYXZlKCk7ZHQuYXBwbHlUcmFuc2Zvcm1Ub0NhbnZhcyhjdHgpO3ZhciBvYmplY3RJbnN0YW5jZXM9dGhpcy5vYmplY3RJbnN0YW5jZXNfO3ZhciBsb0k9dHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KG9iamVjdEluc3RhbmNlcyxmdW5jdGlvbihpbnN0YW5jZSl7cmV0dXJuIGluc3RhbmNlLmRlbGV0aW9uVHM7fSx2aWV3TFdvcmxkKTtjdHguc3Ryb2tlU3R5bGU9J3JnYigwLDAsMCknO2Zvcih2YXIgaT1sb0k7aTxvYmplY3RJbnN0YW5jZXMubGVuZ3RoOysraSl7dmFyIGluc3RhbmNlPW9iamVjdEluc3RhbmNlc1tpXTt2YXIgeD1pbnN0YW5jZS5jcmVhdGlvblRzO2lmKHg+dmlld1JXb3JsZCkKK3JldHVybiB0cnVlO319O3JldHVybntNdWx0aVJvd1RyYWNrOk11bHRpUm93VHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBTZWxlY3Rpb25TdGF0ZT10ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTt2YXIgRXZlbnRQcmVzZW50ZXI9dHIudWkuYi5FdmVudFByZXNlbnRlcjt2YXIgT2JqZWN0SW5zdGFuY2VUcmFjaz10ci51aS5iLmRlZmluZSgnb2JqZWN0LWluc3RhbmNlLXRyYWNrJyx0ci51aS50cmFja3MuVHJhY2spO09iamVjdEluc3RhbmNlVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnb2JqZWN0LWluc3RhbmNlLXRyYWNrJyk7dGhpcy5vYmplY3RJbnN0YW5jZXNfPVtdO3RoaXMub2JqZWN0U25hcHNob3RzXz1bXTt0aGlzLmhlYWRpbmdfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWhlYWRpbmcnKTt0aGlzLmFwcGVuZENoaWxkKHRoaXMuaGVhZGluZ18pO30sc2V0IGhlYWRpbmcoaGVhZGluZyl7dGhpcy5oZWFkaW5nXy5oZWFkaW5nPWhlYWRpbmc7fSxnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLmhlYWRpbmdfLmhlYWRpbmc7fSxzZXQgdG9vbHRpcCh0b29sdGlwKXt0aGlzLmhlYWRpbmdfLnRvb2x0aXA9dG9vbHRpcDt9LGdldCBvYmplY3RJbnN0YW5jZXMoKXtyZXR1cm4gdGhpcy5vYmplY3RJbnN0YW5jZXNfO30sc2V0IG9iamVjdEluc3RhbmNlcyhvYmplY3RJbnN0YW5jZXMpe2lmKCFvYmplY3RJbnN0YW5jZXN8fG9iamVjdEluc3RhbmNlcy5sZW5ndGg9PTApe3RoaXMuaGVhZGluZz0nJzt0aGlzLm9iamVjdEluc3RhbmNlc189W107dGhpcy5vYmplY3RTbmFwc2hvdHNfPVtdO3JldHVybjt9Cit0aGlzLmhlYWRpbmc9b2JqZWN0SW5zdGFuY2VzWzBdLnR5cGVOYW1lO3RoaXMub2JqZWN0SW5zdGFuY2VzXz1vYmplY3RJbnN0YW5jZXM7dGhpcy5vYmplY3RTbmFwc2hvdHNfPVtdO3RoaXMub2JqZWN0SW5zdGFuY2VzXy5mb3JFYWNoKGZ1bmN0aW9uKGluc3RhbmNlKXt0aGlzLm9iamVjdFNuYXBzaG90c18ucHVzaC5hcHBseSh0aGlzLm9iamVjdFNuYXBzaG90c18saW5zdGFuY2Uuc25hcHNob3RzKTt9LHRoaXMpO3RoaXMub2JqZWN0U25hcHNob3RzXy5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEudHMtYi50czt9KTt9LGdldCBoZWlnaHQoKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuaGVpZ2h0O30sc2V0IGhlaWdodChoZWlnaHQpe3RoaXMuc3R5bGUuaGVpZ2h0PWhlaWdodDt9LGdldCBzbmFwc2hvdFJhZGl1c1ZpZXcoKXtyZXR1cm4gNyood2luZG93LmRldmljZVBpeGVsUmF0aW98fDEpO30sZHJhdzpmdW5jdGlvbih0eXBlLHZpZXdMV29ybGQsdmlld1JXb3JsZCl7c3dpdGNoKHR5cGUpe2Nhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6dGhpcy5kcmF3TGV0dGVyRG90c18odmlld0xXb3JsZCx2aWV3UldvcmxkKTticmVhazt9fSxkcmF3TGV0dGVyRG90c186ZnVuY3Rpb24odmlld0xXb3JsZCx2aWV3UldvcmxkKXt2YXIgY3R4PXRoaXMuY29udGV4dCgpO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBib3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgaGVpZ2h0PWJvdW5kcy5oZWlnaHQqcGl4ZWxSYXRpbzt2YXIgaGFsZkhlaWdodD1oZWlnaHQqMC41O3ZhciB0d29QaT1NYXRoLlBJKjI7dmFyIGR0PXRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHNuYXBzaG90UmFkaXVzVmlldz10aGlzLnNuYXBzaG90UmFkaXVzVmlldzt2YXIgc25hcHNob3RSYWRpdXNXb3JsZD1kdC54Vmlld1ZlY3RvclRvV29ybGQoaGVpZ2h0KTt2YXIgbG9JO2N0eC5zYXZlKCk7ZHQuYXBwbHlUcmFuc2Zvcm1Ub0NhbnZhcyhjdHgpO3ZhciBvYmplY3RJbnN0YW5jZXM9dGhpcy5vYmplY3RJbnN0YW5jZXNfO3ZhciBsb0k9dHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KG9iamVjdEluc3RhbmNlcyxmdW5jdGlvbihpbnN0YW5jZSl7cmV0dXJuIGluc3RhbmNlLmRlbGV0aW9uVHM7fSx2aWV3TFdvcmxkKTtjdHguc3Ryb2tlU3R5bGU9J3JnYigwLDAsMCknO2Zvcih2YXIgaT1sb0k7aTxvYmplY3RJbnN0YW5jZXMubGVuZ3RoOysraSl7dmFyIGluc3RhbmNlPW9iamVjdEluc3RhbmNlc1tpXTt2YXIgeD1pbnN0YW5jZS5jcmVhdGlvblRzO2lmKHg+dmlld1JXb3JsZCkKIGJyZWFrO3ZhciByaWdodD1pbnN0YW5jZS5kZWxldGlvblRzPT1OdW1iZXIuTUFYX1ZBTFVFP3ZpZXdSV29ybGQ6aW5zdGFuY2UuZGVsZXRpb25UcztjdHguZmlsbFN0eWxlPUV2ZW50UHJlc2VudGVyLmdldE9iamVjdEluc3RhbmNlQ29sb3IoaW5zdGFuY2UpO2N0eC5maWxsUmVjdCh4LHBpeGVsUmF0aW8scmlnaHQteCxoZWlnaHQtMipwaXhlbFJhdGlvKTt9CiBjdHgucmVzdG9yZSgpO3ZhciBvYmplY3RTbmFwc2hvdHM9dGhpcy5vYmplY3RTbmFwc2hvdHNfO2xvST10ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkob2JqZWN0U25hcHNob3RzLGZ1bmN0aW9uKHNuYXBzaG90KXtyZXR1cm4gc25hcHNob3QudHMrc25hcHNob3RSYWRpdXNXb3JsZDt9LHZpZXdMV29ybGQpO2Zvcih2YXIgaT1sb0k7aTxvYmplY3RTbmFwc2hvdHMubGVuZ3RoOysraSl7dmFyIHNuYXBzaG90PW9iamVjdFNuYXBzaG90c1tpXTt2YXIgeD1zbmFwc2hvdC50cztpZih4LXNuYXBzaG90UmFkaXVzV29ybGQ+dmlld1JXb3JsZCkKIGJyZWFrO3ZhciB4Vmlldz1kdC54V29ybGRUb1ZpZXcoeCk7Y3R4LmZpbGxTdHlsZT1FdmVudFByZXNlbnRlci5nZXRPYmplY3RTbmFwc2hvdENvbG9yKHNuYXBzaG90KTtjdHguYmVnaW5QYXRoKCk7Y3R4LmFyYyh4VmlldyxoYWxmSGVpZ2h0LHNuYXBzaG90UmFkaXVzVmlldywwLHR3b1BpKTtjdHguZmlsbCgpO2lmKHNuYXBzaG90LnNlbGVjdGVkKXtjdHgubGluZVdpZHRoPTU7Y3R4LnN0cm9rZVN0eWxlPSdyZ2IoMTAwLDEwMCwwKSc7Y3R4LnN0cm9rZSgpO2N0eC5iZWdpblBhdGgoKTtjdHguYXJjKHhWaWV3LGhhbGZIZWlnaHQsc25hcHNob3RSYWRpdXNWaWV3LTEsMCx0d29QaSk7Y3R4LmxpbmVXaWR0aD0yO2N0eC5zdHJva2VTdHlsZT0ncmdiKDI1NSwyNTUsMCknO2N0eC5zdHJva2UoKTt9ZWxzZXtjdHgubGluZVdpZHRoPTE7Y3R4LnN0cm9rZVN0eWxlPSdyZ2IoMCwwLDApJztjdHguc3Ryb2tlKCk7fX0KQEAgLTMzNjAsMzcgKzM5MzYsMjYgQEAKIGV2ZW50cz10aGlzLm9iamVjdEluc3RhbmNlc187ZWxzZQogdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgZXZlbnQnKTt2YXIgaW5kZXg9ZXZlbnRzLmluZGV4T2YoZXZlbnQpO3ZhciBuZXdJbmRleD1pbmRleCtvZmZzZXQ7aWYobmV3SW5kZXg+PTAmJm5ld0luZGV4PGV2ZW50cy5sZW5ndGgpe3NlbGVjdGlvbi5wdXNoKGV2ZW50c1tuZXdJbmRleF0pO3JldHVybiB0cnVlO30KIHJldHVybiBmYWxzZTt9LGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246ZnVuY3Rpb24oZmlsdGVyLHNlbGVjdGlvbil7fSxhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjpmdW5jdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LGxvWSxoaVksc2VsZWN0aW9uKXt2YXIgc25hcHNob3Q9dHIuYi5maW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5KHRoaXMub2JqZWN0U25hcHNob3RzXyxmdW5jdGlvbih4KXtyZXR1cm4geC50czt9LHdvcmxkWCx3b3JsZE1heERpc3QpO2lmKCFzbmFwc2hvdCkKLXJldHVybjtzZWxlY3Rpb24ucHVzaChzbmFwc2hvdCk7fX07dmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoT2JqZWN0SW5zdGFuY2VUcmFjayxvcHRpb25zKTtyZXR1cm57T2JqZWN0SW5zdGFuY2VUcmFjazpPYmplY3RJbnN0YW5jZVRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBPYmplY3RJbnN0YW5jZUdyb3VwVHJhY2s9dHIuYi51aS5kZWZpbmUoJ29iamVjdC1pbnN0YW5jZS1ncm91cC10cmFjaycsdHIuYy50cmFja3MuTXVsdGlSb3dUcmFjayk7T2JqZWN0SW5zdGFuY2VHcm91cFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnb2JqZWN0LWluc3RhbmNlLWdyb3VwLXRyYWNrJyk7dGhpcy5vYmplY3RJbnN0YW5jZXNfPXVuZGVmaW5lZDt9LGdldCBvYmplY3RJbnN0YW5jZXMoKXtyZXR1cm4gdGhpcy5pdGVtc1RvR3JvdXA7fSxzZXQgb2JqZWN0SW5zdGFuY2VzKG9iamVjdEluc3RhbmNlcyl7dGhpcy5zZXRJdGVtc1RvR3JvdXAob2JqZWN0SW5zdGFuY2VzKTt9LGFkZFN1YlRyYWNrXzpmdW5jdGlvbihvYmplY3RJbnN0YW5jZXMpe3ZhciBoYXNNdWx0aXBsZVJvd3M9dGhpcy5zdWJSb3dzLmxlbmd0aD4xO3ZhciB0cmFjaz1uZXcgdHIuYy50cmFja3MuT2JqZWN0SW5zdGFuY2VUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5vYmplY3RJbnN0YW5jZXM9b2JqZWN0SW5zdGFuY2VzO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO3JldHVybiB0cmFjazt9LGJ1aWxkU3ViUm93c186ZnVuY3Rpb24ob2JqZWN0SW5zdGFuY2VzKXtvYmplY3RJbnN0YW5jZXMuc29ydChmdW5jdGlvbih4LHkpe3JldHVybiB4LmNyZWF0aW9uVHMteS5jcmVhdGlvblRzO30pO3ZhciBzdWJSb3dzPVtdO2Zvcih2YXIgaT0wO2k8b2JqZWN0SW5zdGFuY2VzLmxlbmd0aDtpKyspe3ZhciBvYmplY3RJbnN0YW5jZT1vYmplY3RJbnN0YW5jZXNbaV07dmFyIGZvdW5kPWZhbHNlO2Zvcih2YXIgaj0wO2o8c3ViUm93cy5sZW5ndGg7aisrKXt2YXIgc3ViUm93PXN1YlJvd3Nbal07dmFyIGxhc3RJdGVtSW5TdWJSb3c9c3ViUm93W3N1YlJvdy5sZW5ndGgtMV07aWYob2JqZWN0SW5zdGFuY2UuY3JlYXRpb25Ucz49bGFzdEl0ZW1JblN1YlJvdy5kZWxldGlvblRzKXtmb3VuZD10cnVlO3N1YlJvdy5wdXNoKG9iamVjdEluc3RhbmNlKTticmVhazt9fQorcmV0dXJuO3NlbGVjdGlvbi5wdXNoKHNuYXBzaG90KTt9fTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpO3RyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RJbnN0YW5jZVRyYWNrLG9wdGlvbnMpO3JldHVybntPYmplY3RJbnN0YW5jZVRyYWNrOk9iamVjdEluc3RhbmNlVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBPYmplY3RJbnN0YW5jZUdyb3VwVHJhY2s9dHIudWkuYi5kZWZpbmUoJ29iamVjdC1pbnN0YW5jZS1ncm91cC10cmFjaycsdHIudWkudHJhY2tzLk11bHRpUm93VHJhY2spO09iamVjdEluc3RhbmNlR3JvdXBUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnb2JqZWN0LWluc3RhbmNlLWdyb3VwLXRyYWNrJyk7dGhpcy5vYmplY3RJbnN0YW5jZXNfPXVuZGVmaW5lZDt9LGdldCBvYmplY3RJbnN0YW5jZXMoKXtyZXR1cm4gdGhpcy5pdGVtc1RvR3JvdXA7fSxzZXQgb2JqZWN0SW5zdGFuY2VzKG9iamVjdEluc3RhbmNlcyl7dGhpcy5zZXRJdGVtc1RvR3JvdXAob2JqZWN0SW5zdGFuY2VzKTt9LGFkZFN1YlRyYWNrXzpmdW5jdGlvbihvYmplY3RJbnN0YW5jZXMpe3ZhciBoYXNNdWx0aXBsZVJvd3M9dGhpcy5zdWJSb3dzLmxlbmd0aD4xO3ZhciB0cmFjaz1uZXcgdHIudWkudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2sub2JqZWN0SW5zdGFuY2VzPW9iamVjdEluc3RhbmNlczt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTtyZXR1cm4gdHJhY2s7fSxidWlsZFN1YlJvd3NfOmZ1bmN0aW9uKG9iamVjdEluc3RhbmNlcyl7b2JqZWN0SW5zdGFuY2VzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5jcmVhdGlvblRzLXkuY3JlYXRpb25Uczt9KTt2YXIgc3ViUm93cz1bXTtmb3IodmFyIGk9MDtpPG9iamVjdEluc3RhbmNlcy5sZW5ndGg7aSsrKXt2YXIgb2JqZWN0SW5zdGFuY2U9b2JqZWN0SW5zdGFuY2VzW2ldO3ZhciBmb3VuZD1mYWxzZTtmb3IodmFyIGo9MDtqPHN1YlJvd3MubGVuZ3RoO2orKyl7dmFyIHN1YlJvdz1zdWJSb3dzW2pdO3ZhciBsYXN0SXRlbUluU3ViUm93PXN1YlJvd1tzdWJSb3cubGVuZ3RoLTFdO2lmKG9iamVjdEluc3RhbmNlLmNyZWF0aW9uVHM+PWxhc3RJdGVtSW5TdWJSb3cuZGVsZXRpb25Ucyl7Zm91bmQ9dHJ1ZTtzdWJSb3cucHVzaChvYmplY3RJbnN0YW5jZSk7YnJlYWs7fX0KIGlmKCFmb3VuZCl7dmFyIHN1YlJvdz1bb2JqZWN0SW5zdGFuY2VdO3N1YlJvd3MucHVzaChzdWJSb3cpO319Ci1yZXR1cm4gc3ViUm93czt9LHVwZGF0ZUhlYWRpbmdBbmRUb29sdGlwXzpmdW5jdGlvbigpe319O3JldHVybntPYmplY3RJbnN0YW5jZUdyb3VwVHJhY2s6T2JqZWN0SW5zdGFuY2VHcm91cFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRmFzdFJlY3RSZW5kZXJlcihjdHgsbWluUmVjdFNpemUsbWF4TWVyZ2VEaXN0LHBhbGxldHRlKXt0aGlzLmN0eF89Y3R4O3RoaXMubWluUmVjdFNpemVfPW1pblJlY3RTaXplO3RoaXMubWF4TWVyZ2VEaXN0Xz1tYXhNZXJnZURpc3Q7dGhpcy5wYWxsZXR0ZV89cGFsbGV0dGU7fQorcmV0dXJuIHN1YlJvd3M7fSx1cGRhdGVIZWFkaW5nQW5kVG9vbHRpcF86ZnVuY3Rpb24oKXt9fTtyZXR1cm57T2JqZWN0SW5zdGFuY2VHcm91cFRyYWNrOk9iamVjdEluc3RhbmNlR3JvdXBUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS5iJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEZhc3RSZWN0UmVuZGVyZXIoY3R4LG1pblJlY3RTaXplLG1heE1lcmdlRGlzdCxwYWxsZXR0ZSl7dGhpcy5jdHhfPWN0eDt0aGlzLm1pblJlY3RTaXplXz1taW5SZWN0U2l6ZTt0aGlzLm1heE1lcmdlRGlzdF89bWF4TWVyZ2VEaXN0O3RoaXMucGFsbGV0dGVfPXBhbGxldHRlO30KIEZhc3RSZWN0UmVuZGVyZXIucHJvdG90eXBlPXt5XzowLGhfOjAsbWVyZ2luZ186ZmFsc2UsbWVyZ2VTdGFydFhfOjAsbWVyZ2VDdXJSaWdodF86MCxtZXJnZWRDb2xvcklkXzowLG1lcmdlZEFscGhhXzowLHNldFlhbmRIOmZ1bmN0aW9uKHksaCl7aWYodGhpcy55Xz09PXkmJnRoaXMuaF89PT1oKQogcmV0dXJuO3RoaXMuZmx1c2goKTt0aGlzLnlfPXk7dGhpcy5oXz1oO30sZmlsbFJlY3Q6ZnVuY3Rpb24oeCx3LGNvbG9ySWQsYWxwaGEpe3ZhciByPXgrdztpZih3PHRoaXMubWluUmVjdFNpemVfKXtpZihyLXRoaXMubWVyZ2VTdGFydFhfPnRoaXMubWF4TWVyZ2VEaXN0XykKIHRoaXMuZmx1c2goKTtpZighdGhpcy5tZXJnaW5nXyl7dGhpcy5tZXJnaW5nXz10cnVlO3RoaXMubWVyZ2VTdGFydFhfPXg7dGhpcy5tZXJnZUN1clJpZ2h0Xz1yO3RoaXMubWVyZ2VkQ29sb3JJZF89Y29sb3JJZDt0aGlzLm1lcmdlZEFscGhhXz1hbHBoYTt9ZWxzZXt0aGlzLm1lcmdlQ3VyUmlnaHRfPXI7aWYodGhpcy5tZXJnZWRBbHBoYV88YWxwaGF8fCh0aGlzLm1lcmdlZEFscGhhXz09PWFscGhhJiZ0aGlzLm1lcmdlZENvbG9ySWRfPGNvbG9ySWQpKXt0aGlzLm1lcmdlZEFscGhhXz1hbHBoYTt0aGlzLm1lcmdlZENvbG9ySWRfPWNvbG9ySWQ7fX19ZWxzZXtpZih0aGlzLm1lcmdpbmdfKQotdGhpcy5mbHVzaCgpO3RoaXMuY3R4Xy5maWxsU3R5bGU9dGhpcy5wYWxsZXR0ZV9bY29sb3JJZF07dGhpcy5jdHhfLmdsb2JhbEFscGhhPWFscGhhO3RoaXMuY3R4Xy5maWxsUmVjdCh4LHRoaXMueV8sdyx0aGlzLmhfKTt9fSxmbHVzaDpmdW5jdGlvbigpe2lmKHRoaXMubWVyZ2luZ18pe3RoaXMuY3R4Xy5maWxsU3R5bGU9dGhpcy5wYWxsZXR0ZV9bdGhpcy5tZXJnZWRDb2xvcklkX107dGhpcy5jdHhfLmdsb2JhbEFscGhhPXRoaXMubWVyZ2VkQWxwaGFfO3RoaXMuY3R4Xy5maWxsUmVjdCh0aGlzLm1lcmdlU3RhcnRYXyx0aGlzLnlfLHRoaXMubWVyZ2VDdXJSaWdodF8tdGhpcy5tZXJnZVN0YXJ0WF8sdGhpcy5oXyk7dGhpcy5tZXJnaW5nXz1mYWxzZTt9fX07cmV0dXJue0Zhc3RSZWN0UmVuZGVyZXI6RmFzdFJlY3RSZW5kZXJlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgUmVjdFRyYWNrPXRyLmIudWkuZGVmaW5lKCdyZWN0LXRyYWNrJyx0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2spO1JlY3RUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdyZWN0LXRyYWNrJyk7dGhpcy5hc3luY1N0eWxlXz1mYWxzZTt0aGlzLnJlY3RzXz1udWxsO30sZ2V0IGFzeW5jU3R5bGUoKXtyZXR1cm4gdGhpcy5hc3luY1N0eWxlXzt9LHNldCBhc3luY1N0eWxlKHYpe3RoaXMuYXN5bmNTdHlsZV89ISF2O30sZ2V0IHJlY3RzKCl7cmV0dXJuIHRoaXMucmVjdHNfO30sc2V0IHJlY3RzKHJlY3RzKXt0aGlzLnJlY3RzXz1yZWN0c3x8W107dGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpO30sZ2V0IGhlaWdodCgpe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7fSxzZXQgaGVpZ2h0KGhlaWdodCl7dGhpcy5zdHlsZS5oZWlnaHQ9aGVpZ2h0O3RoaXMuaW52YWxpZGF0ZURyYXdpbmdDb250YWluZXIoKTt9LGdldCBoYXNWaXNpYmxlQ29udGVudCgpe3JldHVybiB0aGlzLnJlY3RzXy5sZW5ndGg+MDt9LGRyYXc6ZnVuY3Rpb24odHlwZSx2aWV3TFdvcmxkLHZpZXdSV29ybGQpe3N3aXRjaCh0eXBlKXtjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6dGhpcy5kcmF3UmVjdHNfKHZpZXdMV29ybGQsdmlld1JXb3JsZCk7YnJlYWs7fX0sZHJhd1JlY3RzXzpmdW5jdGlvbih2aWV3TFdvcmxkLHZpZXdSV29ybGQpe3ZhciBjdHg9dGhpcy5jb250ZXh0KCk7Y3R4LnNhdmUoKTt2YXIgYm91bmRzPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dHIuYy5kcmF3U2xpY2VzKGN0eCx0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLHZpZXdMV29ybGQsdmlld1JXb3JsZCxib3VuZHMuaGVpZ2h0LHRoaXMucmVjdHNfLHRoaXMuYXN5bmNTdHlsZV8pO2N0eC5yZXN0b3JlKCk7aWYoYm91bmRzLmhlaWdodDw9NikKK3RoaXMuZmx1c2goKTt0aGlzLmN0eF8uZmlsbFN0eWxlPXRoaXMucGFsbGV0dGVfW2NvbG9ySWRdO3RoaXMuY3R4Xy5nbG9iYWxBbHBoYT1hbHBoYTt0aGlzLmN0eF8uZmlsbFJlY3QoeCx0aGlzLnlfLHcsdGhpcy5oXyk7fX0sZmx1c2g6ZnVuY3Rpb24oKXtpZih0aGlzLm1lcmdpbmdfKXt0aGlzLmN0eF8uZmlsbFN0eWxlPXRoaXMucGFsbGV0dGVfW3RoaXMubWVyZ2VkQ29sb3JJZF9dO3RoaXMuY3R4Xy5nbG9iYWxBbHBoYT10aGlzLm1lcmdlZEFscGhhXzt0aGlzLmN0eF8uZmlsbFJlY3QodGhpcy5tZXJnZVN0YXJ0WF8sdGhpcy55Xyx0aGlzLm1lcmdlQ3VyUmlnaHRfLXRoaXMubWVyZ2VTdGFydFhfLHRoaXMuaF8pO3RoaXMubWVyZ2luZ189ZmFsc2U7fX19O3JldHVybntGYXN0UmVjdFJlbmRlcmVyOkZhc3RSZWN0UmVuZGVyZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBSZWN0VHJhY2s9dHIudWkuYi5kZWZpbmUoJ3JlY3QtdHJhY2snLHRyLnVpLnRyYWNrcy5UcmFjayk7UmVjdFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ3JlY3QtdHJhY2snKTt0aGlzLmFzeW5jU3R5bGVfPWZhbHNlO3RoaXMucmVjdHNfPW51bGw7dGhpcy5oZWFkaW5nXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1oZWFkaW5nJyk7dGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhlYWRpbmdfKTt9LHNldCBoZWFkaW5nKGhlYWRpbmcpe3RoaXMuaGVhZGluZ18uaGVhZGluZz1oZWFkaW5nO30sZ2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy5oZWFkaW5nXy5oZWFkaW5nO30sc2V0IHRvb2x0aXAodG9vbHRpcCl7dGhpcy5oZWFkaW5nXy50b29sdGlwPXRvb2x0aXA7fSxzZXQgc2VsZWN0aW9uR2VuZXJhdG9yKGdlbmVyYXRvcil7dGhpcy5oZWFkaW5nXy5zZWxlY3Rpb25HZW5lcmF0b3I9Z2VuZXJhdG9yO30sc2V0IGV4cGFuZGVkKGV4cGFuZGVkKXt0aGlzLmhlYWRpbmdfLmV4cGFuZGVkPSEhZXhwYW5kZWQ7fSxzZXQgYXJyb3dWaXNpYmxlKGFycm93VmlzaWJsZSl7dGhpcy5oZWFkaW5nXy5hcnJvd1Zpc2libGU9ISFhcnJvd1Zpc2libGU7fSxnZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5oZWFkaW5nXy5leHBhbmRlZDt9LGdldCBhc3luY1N0eWxlKCl7cmV0dXJuIHRoaXMuYXN5bmNTdHlsZV87fSxzZXQgYXN5bmNTdHlsZSh2KXt0aGlzLmFzeW5jU3R5bGVfPSEhdjt9LGdldCByZWN0cygpe3JldHVybiB0aGlzLnJlY3RzXzt9LHNldCByZWN0cyhyZWN0cyl7dGhpcy5yZWN0c189cmVjdHN8fFtdO3RoaXMuaW52YWxpZGF0ZURyYXdpbmdDb250YWluZXIoKTt9LGdldCBoZWlnaHQoKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuaGVpZ2h0O30sc2V0IGhlaWdodChoZWlnaHQpe3RoaXMuc3R5bGUuaGVpZ2h0PWhlaWdodDt0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7fSxnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5yZWN0c18ubGVuZ3RoPjA7fSxkcmF3OmZ1bmN0aW9uKHR5cGUsdmlld0xXb3JsZCx2aWV3UldvcmxkKXtzd2l0Y2godHlwZSl7Y2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDp0aGlzLmRyYXdSZWN0c18odmlld0xXb3JsZCx2aWV3UldvcmxkKTticmVhazt9fSxkcmF3UmVjdHNfOmZ1bmN0aW9uKHZpZXdMV29ybGQsdmlld1JXb3JsZCl7dmFyIGN0eD10aGlzLmNvbnRleHQoKTtjdHguc2F2ZSgpO3ZhciBib3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0ci51aS5iLmRyYXdTbGljZXMoY3R4LHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0sdmlld0xXb3JsZCx2aWV3UldvcmxkLGJvdW5kcy5oZWlnaHQsdGhpcy5yZWN0c18sdGhpcy5hc3luY1N0eWxlXyk7Y3R4LnJlc3RvcmUoKTtpZihib3VuZHMuaGVpZ2h0PD02KQogcmV0dXJuO3ZhciBmb250U2l6ZSx5T2Zmc2V0O2lmKGJvdW5kcy5oZWlnaHQ8MTUpe2ZvbnRTaXplPTY7eU9mZnNldD0xLjA7fWVsc2V7Zm9udFNpemU9MTA7eU9mZnNldD0yLjU7fQotdHIuYy5kcmF3TGFiZWxzKGN0eCx0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLHZpZXdMV29ybGQsdmlld1JXb3JsZCx0aGlzLnJlY3RzXyx0aGlzLmFzeW5jU3R5bGVfLGZvbnRTaXplLHlPZmZzZXQpO30sYWRkRXZlbnRzVG9UcmFja01hcDpmdW5jdGlvbihldmVudFRvVHJhY2tNYXApe2lmKHRoaXMucmVjdHNfPT09dW5kZWZpbmVkfHx0aGlzLnJlY3RzXz09PW51bGwpCit0ci51aS5iLmRyYXdMYWJlbHMoY3R4LHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0sdmlld0xXb3JsZCx2aWV3UldvcmxkLHRoaXMucmVjdHNfLHRoaXMuYXN5bmNTdHlsZV8sZm9udFNpemUseU9mZnNldCk7fSxhZGRFdmVudHNUb1RyYWNrTWFwOmZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCl7aWYodGhpcy5yZWN0c189PT11bmRlZmluZWR8fHRoaXMucmVjdHNfPT09bnVsbCkKIHJldHVybjt0aGlzLnJlY3RzXy5mb3JFYWNoKGZ1bmN0aW9uKHJlY3Qpe3JlY3QuYWRkVG9UcmFja01hcChldmVudFRvVHJhY2tNYXAsdGhpcyk7fSx0aGlzKTt9LGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTpmdW5jdGlvbihsb1dYLGhpV1gsdmlld1BpeFdpZHRoV29ybGQsc2VsZWN0aW9uKXtmdW5jdGlvbiBvblJlY3QocmVjdCl7cmVjdC5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pO30KIG9uUmVjdD1vblJlY3QuYmluZCh0aGlzKTt0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKHRoaXMucmVjdHNfLGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0YXJ0O30sZnVuY3Rpb24oeCl7cmV0dXJuIHguZHVyYXRpb247fSxsb1dYLGhpV1gsb25SZWN0KTt9LGFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKGV2ZW50LG9mZnNldCxzZWxlY3Rpb24pe3ZhciBpbmRleD10ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheSh0aGlzLnJlY3RzXyxmdW5jdGlvbihyZWN0KXtyZXR1cm4gcmVjdC5tb2RlbEl0ZW09PT1ldmVudDt9KTtpZihpbmRleD09PS0xKQogcmV0dXJuIGZhbHNlO3ZhciBuZXdJbmRleD1pbmRleCtvZmZzZXQ7aWYobmV3SW5kZXg8MHx8bmV3SW5kZXg+PXRoaXMucmVjdHNfLmxlbmd0aCkKIHJldHVybiBmYWxzZTt0aGlzLnJlY3RzX1tuZXdJbmRleF0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTtyZXR1cm4gdHJ1ZTt9LGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246ZnVuY3Rpb24oZmlsdGVyLHNlbGVjdGlvbil7Zm9yKHZhciBpPTA7aTx0aGlzLnJlY3RzXy5sZW5ndGg7KytpKXt2YXIgbW9kZWxJdGVtPXRoaXMucmVjdHNfW2ldLm1vZGVsSXRlbTtpZighbW9kZWxJdGVtKQogY29udGludWU7aWYoZmlsdGVyLm1hdGNoU2xpY2UobW9kZWxJdGVtKSkKIHNlbGVjdGlvbi5wdXNoKG1vZGVsSXRlbSk7fX0sYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246ZnVuY3Rpb24od29ybGRYLHdvcmxkTWF4RGlzdCxsb1ksaGlZLHNlbGVjdGlvbil7dmFyIHJlY3Q9dHIuYi5maW5kQ2xvc2VzdEludGVydmFsSW5Tb3J0ZWRJbnRlcnZhbHModGhpcy5yZWN0c18sZnVuY3Rpb24oeCl7cmV0dXJuIHguc3RhcnQ7fSxmdW5jdGlvbih4KXtyZXR1cm4geC5lbmQ7fSx3b3JsZFgsd29ybGRNYXhEaXN0KTtpZighcmVjdCkKLXJldHVybjtyZWN0LmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7fX07ZnVuY3Rpb24gUmVjdChtb2RlbEl0ZW0sdGl0bGUsY29sb3JJZCxzdGFydCxkdXJhdGlvbil7dHIubW9kZWwuUHJveHlTZWxlY3RhYmxlSXRlbS5jYWxsKHRoaXMsbW9kZWxJdGVtKTt0aGlzLnRpdGxlPXRpdGxlO3RoaXMuY29sb3JJZD1jb2xvcklkO3RoaXMuc3RhcnQ9c3RhcnQ7dGhpcy5kdXJhdGlvbj1kdXJhdGlvbjt0aGlzLmVuZD1zdGFydCtkdXJhdGlvbjt9O1JlY3QucHJvdG90eXBlPXtfX3Byb3RvX186dHIubW9kZWwuUHJveHlTZWxlY3RhYmxlSXRlbS5wcm90b3R5cGV9O3JldHVybntSZWN0VHJhY2s6UmVjdFRyYWNrLFJlY3Q6UmVjdH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgUHJvY2Vzc1N1bW1hcnlUcmFjaz10ci5iLnVpLmRlZmluZSgncHJvY2Vzcy1zdW1tYXJ5LXRyYWNrJyx0ci5jLnRyYWNrcy5SZWN0VHJhY2spO1Byb2Nlc3NTdW1tYXJ5VHJhY2suYnVpbGRSZWN0c0Zyb21Qcm9jZXNzPWZ1bmN0aW9uKHByb2Nlc3Mpe2lmKCFwcm9jZXNzKQorcmV0dXJuO3JlY3QuYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTt9fTtmdW5jdGlvbiBSZWN0KG1vZGVsSXRlbSx0aXRsZSxjb2xvcklkLHN0YXJ0LGR1cmF0aW9uKXt0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLmNhbGwodGhpcyxtb2RlbEl0ZW0pO3RoaXMudGl0bGU9dGl0bGU7dGhpcy5jb2xvcklkPWNvbG9ySWQ7dGhpcy5zdGFydD1zdGFydDt0aGlzLmR1cmF0aW9uPWR1cmF0aW9uO3RoaXMuZW5kPXN0YXJ0K2R1cmF0aW9uO307UmVjdC5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLnByb3RvdHlwZX07cmV0dXJue1JlY3RUcmFjazpSZWN0VHJhY2ssUmVjdDpSZWN0fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgUHJvY2Vzc1N1bW1hcnlUcmFjaz10ci51aS5iLmRlZmluZSgncHJvY2Vzcy1zdW1tYXJ5LXRyYWNrJyx0ci51aS50cmFja3MuUmVjdFRyYWNrKTtQcm9jZXNzU3VtbWFyeVRyYWNrLmJ1aWxkUmVjdHNGcm9tUHJvY2Vzcz1mdW5jdGlvbihwcm9jZXNzKXtpZighcHJvY2VzcykKIHJldHVybltdO3ZhciBvcHM9W107dmFyIHB1c2hPcD1mdW5jdGlvbihpc1N0YXJ0LHRpbWUsc2xpY2Upe29wcy5wdXNoKHtpc1N0YXJ0OmlzU3RhcnQsdGltZTp0aW1lLHNsaWNlOnNsaWNlfSk7fTtmb3IodmFyIHRpZCBpbiBwcm9jZXNzLnRocmVhZHMpe3ZhciBzbGljZUdyb3VwPXByb2Nlc3MudGhyZWFkc1t0aWRdLnNsaWNlR3JvdXA7c2xpY2VHcm91cC50b3BMZXZlbFNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXtwdXNoT3AodHJ1ZSxzbGljZS5zdGFydCx1bmRlZmluZWQpO3B1c2hPcChmYWxzZSxzbGljZS5lbmQsdW5kZWZpbmVkKTt9KTtzbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXtpZihzbGljZS5pbXBvcnRhbnQpe3B1c2hPcCh0cnVlLHNsaWNlLnN0YXJ0LHNsaWNlKTtwdXNoT3AoZmFsc2Usc2xpY2UuZW5kLHNsaWNlKTt9fSk7fQotb3BzLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS50aW1lLWIudGltZTt9KTt2YXIgcmVjdHM9W107dmFyIGdlbmVyaWNDb2xvcklkPXRyLmIudWkuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgnZ2VuZXJpY193b3JrJyk7dmFyIHB1c2hSZWN0PWZ1bmN0aW9uKHN0YXJ0LGVuZCxzbGljZSl7cmVjdHMucHVzaChuZXcgdHIuYy50cmFja3MuUmVjdChzbGljZSxzbGljZT9zbGljZS50aXRsZTonJyxzbGljZT9zbGljZS5jb2xvcklkOmdlbmVyaWNDb2xvcklkLHN0YXJ0LGVuZC1zdGFydCkpO30KK29wcy5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEudGltZS1iLnRpbWU7fSk7dmFyIHJlY3RzPVtdO3ZhciBnZW5lcmljQ29sb3JJZD10ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ2dlbmVyaWNfd29yaycpO3ZhciBwdXNoUmVjdD1mdW5jdGlvbihzdGFydCxlbmQsc2xpY2Upe3JlY3RzLnB1c2gobmV3IHRyLnVpLnRyYWNrcy5SZWN0KHNsaWNlLHNsaWNlP3NsaWNlLnRpdGxlOicnLHNsaWNlP3NsaWNlLmNvbG9ySWQ6Z2VuZXJpY0NvbG9ySWQsc3RhcnQsZW5kLXN0YXJ0KSk7fQogdmFyIGRlcHRoPTA7dmFyIGN1cnJlbnRTbGljZT11bmRlZmluZWQ7dmFyIGxhc3RTdGFydD11bmRlZmluZWQ7b3BzLmZvckVhY2goZnVuY3Rpb24ob3Ape2RlcHRoKz1vcC5pc1N0YXJ0PzE6LTE7aWYoY3VycmVudFNsaWNlKXtpZighb3AuaXNTdGFydCYmb3Auc2xpY2U9PWN1cnJlbnRTbGljZSl7cHVzaFJlY3QobGFzdFN0YXJ0LG9wLnRpbWUsY3VycmVudFNsaWNlKTtsYXN0U3RhcnQ9ZGVwdGg+PTE/b3AudGltZTp1bmRlZmluZWQ7Y3VycmVudFNsaWNlPXVuZGVmaW5lZDt9fWVsc2V7aWYob3AuaXNTdGFydCl7aWYoZGVwdGg9PTEpe2xhc3RTdGFydD1vcC50aW1lO2N1cnJlbnRTbGljZT1vcC5zbGljZTt9ZWxzZSBpZihvcC5zbGljZSl7aWYob3AudGltZSE9bGFzdFN0YXJ0KXtwdXNoUmVjdChsYXN0U3RhcnQsb3AudGltZSx1bmRlZmluZWQpO2xhc3RTdGFydD1vcC50aW1lO30KLWN1cnJlbnRTbGljZT1vcC5zbGljZTt9fWVsc2V7aWYoZGVwdGg9PTApe3B1c2hSZWN0KGxhc3RTdGFydCxvcC50aW1lLHVuZGVmaW5lZCk7bGFzdFN0YXJ0PXVuZGVmaW5lZDt9fX19KTtyZXR1cm4gcmVjdHM7fTtQcm9jZXNzU3VtbWFyeVRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt9LGdldCBwcm9jZXNzKCl7cmV0dXJuIHRoaXMucHJvY2Vzc187fSxzZXQgcHJvY2Vzcyhwcm9jZXNzKXt0aGlzLnByb2Nlc3NfPXByb2Nlc3M7dGhpcy5yZWN0cz1Qcm9jZXNzU3VtbWFyeVRyYWNrLmJ1aWxkUmVjdHNGcm9tUHJvY2Vzcyhwcm9jZXNzKTt9fTtyZXR1cm57UHJvY2Vzc1N1bW1hcnlUcmFjazpQcm9jZXNzU3VtbWFyeVRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBTcGFjaW5nVHJhY2s9dHIuYi51aS5kZWZpbmUoJ3NwYWNpbmctdHJhY2snLHRyLmMudHJhY2tzLkhlYWRpbmdUcmFjayk7U3BhY2luZ1RyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ3NwYWNpbmctdHJhY2snKTt9LGRyYXc6ZnVuY3Rpb24odHlwZSx2aWV3TFdvcmxkLHZpZXdSV29ybGQpe30sYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjpmdW5jdGlvbihmaWx0ZXIsc2VsZWN0aW9uKXt9fTtyZXR1cm57U3BhY2luZ1RyYWNrOlNwYWNpbmdUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgU2FtcGxlVHJhY2s9dHIuYi51aS5kZWZpbmUoJ3NhbXBsZS10cmFjaycsdHIuYy50cmFja3MuUmVjdFRyYWNrKTtTYW1wbGVUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7fSxnZXQgc2FtcGxlcygpe3JldHVybiB0aGlzLnJlY3RzO30sc2V0IHNhbXBsZXMoc2FtcGxlcyl7dGhpcy5yZWN0cz1zYW1wbGVzO319O3JldHVybntTYW1wbGVUcmFjazpTYW1wbGVUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgU2xpY2VUcmFjaz10ci5iLnVpLmRlZmluZSgnc2xpY2UtdHJhY2snLHRyLmMudHJhY2tzLlJlY3RUcmFjayk7U2xpY2VUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7fSxnZXQgc2xpY2VzKCl7cmV0dXJuIHRoaXMucmVjdHM7fSxzZXQgc2xpY2VzKHNsaWNlcyl7dGhpcy5yZWN0cz1zbGljZXM7fX07cmV0dXJue1NsaWNlVHJhY2s6U2xpY2VUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgU2xpY2VHcm91cFRyYWNrPXRyLmIudWkuZGVmaW5lKCdzbGljZS1ncm91cC10cmFjaycsdHIuYy50cmFja3MuTXVsdGlSb3dUcmFjayk7U2xpY2VHcm91cFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnc2xpY2UtZ3JvdXAtdHJhY2snKTt0aGlzLmdyb3VwXz11bmRlZmluZWQ7dGhpcy5kZWZhdWx0VG9Db2xsYXBzZWRXaGVuU3ViUm93Q291bnRNb3JlVGhhbj0xMDA7fSxhZGRTdWJUcmFja186ZnVuY3Rpb24oc2xpY2VzKXt2YXIgdHJhY2s9bmV3IHRyLmMudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suc2xpY2VzPXNsaWNlczt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTtyZXR1cm4gdHJhY2s7fSxnZXQgZ3JvdXAoKXtyZXR1cm4gdGhpcy5ncm91cF87fSxzZXQgZ3JvdXAoZ3JvdXApe3RoaXMuZ3JvdXBfPWdyb3VwO3RoaXMuc2V0SXRlbXNUb0dyb3VwKHRoaXMuZ3JvdXBfLnNsaWNlcyx0aGlzLmdyb3VwXyk7fSxnZXQgZXZlbnRDb250YWluZXIoKXtyZXR1cm4gdGhpcy5ncm91cDt9LGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOmZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApe2NvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMuZ3JvdXAsdGhpcyk7fSxidWlsZFN1YlJvd3NfOmZ1bmN0aW9uKHNsaWNlcyl7aWYoIXNsaWNlcy5sZW5ndGgpCi1yZXR1cm5bXTt2YXIgb3BzPVtdO2Zvcih2YXIgaT0wO2k8c2xpY2VzLmxlbmd0aDtpKyspe2lmKHNsaWNlc1tpXS5zdWJTbGljZXMpCi1zbGljZXNbaV0uc3ViU2xpY2VzLnNwbGljZSgwLHNsaWNlc1tpXS5zdWJTbGljZXMubGVuZ3RoKTtvcHMucHVzaChpKTt9Ci1vcHMuc29ydChmdW5jdGlvbihpeCxpeSl7dmFyIHg9c2xpY2VzW2l4XTt2YXIgeT1zbGljZXNbaXldO2lmKHguc3RhcnQhPXkuc3RhcnQpCi1yZXR1cm4geC5zdGFydC15LnN0YXJ0O3JldHVybiBpeC1peTt9KTt2YXIgc3ViUm93cz1bW11dO3RoaXMuYmFkU2xpY2VzXz1bXTtmb3IodmFyIGk9MDtpPG9wcy5sZW5ndGg7aSsrKXt2YXIgb3A9b3BzW2ldO3ZhciBzbGljZT1zbGljZXNbb3BdO3ZhciBpbnNlcnRlZD1mYWxzZTtmb3IodmFyIGo9c3ViUm93cy5sZW5ndGgtMTtqPj0wO2otLSl7aWYoc3ViUm93c1tqXS5sZW5ndGg9PTApCi1jb250aW51ZTt2YXIgaW5zZXJ0ZWRTbGljZT1zdWJSb3dzW2pdW3N1YlJvd3Nbal0ubGVuZ3RoLTFdO2lmKHNsaWNlLnN0YXJ0PGluc2VydGVkU2xpY2Uuc3RhcnQpe3RoaXMuYmFkU2xpY2VzXy5wdXNoKHNsaWNlKTtpbnNlcnRlZD10cnVlO30KLWlmKGluc2VydGVkU2xpY2UuYm91bmRzKHNsaWNlKSl7d2hpbGUoc3ViUm93cy5sZW5ndGg8PWorMSkKLXN1YlJvd3MucHVzaChbXSk7c3ViUm93c1tqKzFdLnB1c2goc2xpY2UpO2lmKGluc2VydGVkU2xpY2Uuc3ViU2xpY2VzKQotaW5zZXJ0ZWRTbGljZS5zdWJTbGljZXMucHVzaChzbGljZSk7aW5zZXJ0ZWQ9dHJ1ZTticmVhazt9fQotaWYoaW5zZXJ0ZWQpCi1jb250aW51ZTtzdWJSb3dzWzBdLnB1c2goc2xpY2UpO30KLXJldHVybiBzdWJSb3dzO319O3JldHVybntTbGljZUdyb3VwVHJhY2s6U2xpY2VHcm91cFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBBc3luY1NsaWNlR3JvdXBUcmFjaz10ci5iLnVpLmRlZmluZSgnYXN5bmMtc2xpY2UtZ3JvdXAtdHJhY2snLHRyLmMudHJhY2tzLk11bHRpUm93VHJhY2spO0FzeW5jU2xpY2VHcm91cFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci5jLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnYXN5bmMtc2xpY2UtZ3JvdXAtdHJhY2snKTt0aGlzLmdyb3VwXz11bmRlZmluZWQ7fSxhZGRTdWJUcmFja186ZnVuY3Rpb24oc2xpY2VzKXt2YXIgdHJhY2s9bmV3IHRyLmMudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suc2xpY2VzPXNsaWNlczt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt0cmFjay5hc3luY1N0eWxlPXRydWU7cmV0dXJuIHRyYWNrO30sZ2V0IGdyb3VwKCl7cmV0dXJuIHRoaXMuZ3JvdXBfO30sc2V0IGdyb3VwKGdyb3VwKXt0aGlzLmdyb3VwXz1ncm91cDt0aGlzLnNldEl0ZW1zVG9Hcm91cCh0aGlzLmdyb3VwXy5zbGljZXMsdGhpcy5ncm91cF8pO30sZ2V0IGV2ZW50Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuZ3JvdXA7fSxhZGRDb250YWluZXJzVG9UcmFja01hcDpmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKXtjb250YWluZXJUb1RyYWNrTWFwLmFkZENvbnRhaW5lcih0aGlzLmdyb3VwLHRoaXMpO30sYnVpbGRTdWJSb3dzXzpmdW5jdGlvbihzbGljZXMsb3B0X3NraXBTb3J0KXtpZighb3B0X3NraXBTb3J0KXtzbGljZXMuc29ydChmdW5jdGlvbih4LHkpe3JldHVybiB4LnN0YXJ0LXkuc3RhcnQ7fSk7fQorY3VycmVudFNsaWNlPW9wLnNsaWNlO319ZWxzZXtpZihkZXB0aD09MCl7cHVzaFJlY3QobGFzdFN0YXJ0LG9wLnRpbWUsdW5kZWZpbmVkKTtsYXN0U3RhcnQ9dW5kZWZpbmVkO319fX0pO3JldHVybiByZWN0czt9O1Byb2Nlc3NTdW1tYXJ5VHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7fSxnZXQgcHJvY2Vzcygpe3JldHVybiB0aGlzLnByb2Nlc3NfO30sc2V0IHByb2Nlc3MocHJvY2Vzcyl7dGhpcy5wcm9jZXNzXz1wcm9jZXNzO3RoaXMucmVjdHM9UHJvY2Vzc1N1bW1hcnlUcmFjay5idWlsZFJlY3RzRnJvbVByb2Nlc3MocHJvY2Vzcyk7fX07cmV0dXJue1Byb2Nlc3NTdW1tYXJ5VHJhY2s6UHJvY2Vzc1N1bW1hcnlUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIFNsaWNlVHJhY2s9dHIudWkuYi5kZWZpbmUoJ3NsaWNlLXRyYWNrJyx0ci51aS50cmFja3MuUmVjdFRyYWNrKTtTbGljZVRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuUmVjdFRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO30sZ2V0IHNsaWNlcygpe3JldHVybiB0aGlzLnJlY3RzO30sc2V0IHNsaWNlcyhzbGljZXMpe3RoaXMucmVjdHM9c2xpY2VzO319O3JldHVybntTbGljZVRyYWNrOlNsaWNlVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBBc3luY1NsaWNlR3JvdXBUcmFjaz10ci51aS5iLmRlZmluZSgnYXN5bmMtc2xpY2UtZ3JvdXAtdHJhY2snLHRyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrKTtBc3luY1NsaWNlR3JvdXBUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnYXN5bmMtc2xpY2UtZ3JvdXAtdHJhY2snKTt0aGlzLmdyb3VwXz11bmRlZmluZWQ7fSxhZGRTdWJUcmFja186ZnVuY3Rpb24oc2xpY2VzKXt2YXIgdHJhY2s9bmV3IHRyLnVpLnRyYWNrcy5TbGljZVRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLnNsaWNlcz1zbGljZXM7dGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7dHJhY2suYXN5bmNTdHlsZT10cnVlO3JldHVybiB0cmFjazt9LGdldCBncm91cCgpe3JldHVybiB0aGlzLmdyb3VwXzt9LHNldCBncm91cChncm91cCl7dGhpcy5ncm91cF89Z3JvdXA7dGhpcy5zZXRJdGVtc1RvR3JvdXAodGhpcy5ncm91cF8uc2xpY2VzLHRoaXMuZ3JvdXBfKTt9LGdldCBldmVudENvbnRhaW5lcigpe3JldHVybiB0aGlzLmdyb3VwO30sYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6ZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCl7Y29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5ncm91cCx0aGlzKTt9LGJ1aWxkU3ViUm93c186ZnVuY3Rpb24oc2xpY2VzLG9wdF9za2lwU29ydCl7aWYoIW9wdF9za2lwU29ydCl7c2xpY2VzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4geC5zdGFydC15LnN0YXJ0O30pO30KIHZhciBmaW5kTGV2ZWw9ZnVuY3Rpb24oc2xpY2VUb1B1dCxyb3dzLG4pe2lmKG4+PXJvd3MubGVuZ3RoKQogcmV0dXJuIHRydWU7dmFyIHN1YlJvdz1yb3dzW25dO3ZhciBsYXN0U2xpY2VJblN1YlJvdz1zdWJSb3dbc3ViUm93Lmxlbmd0aC0xXTtpZihzbGljZVRvUHV0LnN0YXJ0Pj1sYXN0U2xpY2VJblN1YlJvdy5lbmQpe2lmKHNsaWNlVG9QdXQuc3ViU2xpY2VzPT09dW5kZWZpbmVkfHxzbGljZVRvUHV0LnN1YlNsaWNlcy5sZW5ndGg9PT0wKXtyZXR1cm4gdHJ1ZTt9CiBmb3IodmFyIGk9MDtpPHNsaWNlVG9QdXQuc3ViU2xpY2VzLmxlbmd0aDtpKyspe2lmKCFmaW5kTGV2ZWwoc2xpY2VUb1B1dC5zdWJTbGljZXNbaV0scm93cyxuKzEpKQpAQCAtMzQwMyw4OCArMzk2OCw3NSBAQAogcmV0dXJuO2lmKGxldmVsPT09cm93cy5sZW5ndGgpCiByb3dzLnB1c2goW10pO2Zvcih2YXIgaD0wO2g8c3ViU2xpY2VzLmxlbmd0aDtoKyspe3Jvd3NbbGV2ZWxdLnB1c2goc3ViU2xpY2VzW2hdKTtmaXRTdWJTbGljZXNSZWN1cnNpdmVseShzdWJTbGljZXNbaF0uc3ViU2xpY2VzLGxldmVsKzEscm93cyk7fX0KIGZpdFN1YlNsaWNlc1JlY3Vyc2l2ZWx5KHNsaWNlLnN1YlNsaWNlcyxpbmRleCsxLHN1YlJvd3MpO30KLXJldHVybiBzdWJSb3dzO319O3JldHVybntBc3luY1NsaWNlR3JvdXBUcmFjazpBc3luY1NsaWNlR3JvdXBUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgVGhyZWFkVHJhY2s9dHIuYi51aS5kZWZpbmUoJ3RocmVhZC10cmFjaycsdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2spO1RocmVhZFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCd0aHJlYWQtdHJhY2snKTt9LGdldCB0aHJlYWQoKXtyZXR1cm4gdGhpcy50aHJlYWRfO30sc2V0IHRocmVhZCh0aHJlYWQpe3RoaXMudGhyZWFkXz10aHJlYWQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBoYXNWaXNpYmxlQ29udGVudCgpe3JldHVybiB0aGlzLnRyYWNrc18ubGVuZ3RoPjA7fSxnZXQgZXZlbnRDb250YWluZXIoKXtyZXR1cm4gdGhpcy50aHJlYWQ7fSxhZGRDb250YWluZXJzVG9UcmFja01hcDpmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKXtjb250YWluZXJUb1RyYWNrTWFwLmFkZENvbnRhaW5lcih0aGlzLnRocmVhZCx0aGlzKTtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGROb2Rlcy5sZW5ndGg7KytpKQorcmV0dXJuIHN1YlJvd3M7fX07cmV0dXJue0FzeW5jU2xpY2VHcm91cFRyYWNrOkFzeW5jU2xpY2VHcm91cFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgU2FtcGxlVHJhY2s9dHIudWkuYi5kZWZpbmUoJ3NhbXBsZS10cmFjaycsdHIudWkudHJhY2tzLlJlY3RUcmFjayk7U2FtcGxlVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7fSxnZXQgc2FtcGxlcygpe3JldHVybiB0aGlzLnJlY3RzO30sc2V0IHNhbXBsZXMoc2FtcGxlcyl7dGhpcy5yZWN0cz1zYW1wbGVzO319O3JldHVybntTYW1wbGVUcmFjazpTYW1wbGVUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIFNsaWNlR3JvdXBUcmFjaz10ci51aS5iLmRlZmluZSgnc2xpY2UtZ3JvdXAtdHJhY2snLHRyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrKTtTbGljZUdyb3VwVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLmNsYXNzTGlzdC5hZGQoJ3NsaWNlLWdyb3VwLXRyYWNrJyk7dGhpcy5ncm91cF89dW5kZWZpbmVkO3RoaXMuZGVmYXVsdFRvQ29sbGFwc2VkV2hlblN1YlJvd0NvdW50TW9yZVRoYW49MTAwO30sYWRkU3ViVHJhY2tfOmZ1bmN0aW9uKHNsaWNlcyl7dmFyIHRyYWNrPW5ldyB0ci51aS50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5zbGljZXM9c2xpY2VzO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO3JldHVybiB0cmFjazt9LGdldCBncm91cCgpe3JldHVybiB0aGlzLmdyb3VwXzt9LHNldCBncm91cChncm91cCl7dGhpcy5ncm91cF89Z3JvdXA7dGhpcy5zZXRJdGVtc1RvR3JvdXAodGhpcy5ncm91cF8uc2xpY2VzLHRoaXMuZ3JvdXBfKTt9LGdldCBldmVudENvbnRhaW5lcigpe3JldHVybiB0aGlzLmdyb3VwO30sYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6ZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCl7Y29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5ncm91cCx0aGlzKTt9LGJ1aWxkU3ViUm93c186ZnVuY3Rpb24oc2xpY2VzKXt2YXIgcHJlY2lzaW9uVW5pdD10aGlzLmdyb3VwLm1vZGVsLmludHJpbnNpY1RpbWVVbml0O2lmKCFzbGljZXMubGVuZ3RoKQorcmV0dXJuW107dmFyIG9wcz1bXTtmb3IodmFyIGk9MDtpPHNsaWNlcy5sZW5ndGg7aSsrKXtpZihzbGljZXNbaV0uc3ViU2xpY2VzKQorc2xpY2VzW2ldLnN1YlNsaWNlcy5zcGxpY2UoMCxzbGljZXNbaV0uc3ViU2xpY2VzLmxlbmd0aCk7b3BzLnB1c2goaSk7fQorb3BzLnNvcnQoZnVuY3Rpb24oaXgsaXkpe3ZhciB4PXNsaWNlc1tpeF07dmFyIHk9c2xpY2VzW2l5XTtpZih4LnN0YXJ0IT15LnN0YXJ0KQorcmV0dXJuIHguc3RhcnQteS5zdGFydDtyZXR1cm4gaXgtaXk7fSk7dmFyIHN1YlJvd3M9W1tdXTt0aGlzLmJhZFNsaWNlc189W107Zm9yKHZhciBpPTA7aTxvcHMubGVuZ3RoO2krKyl7dmFyIG9wPW9wc1tpXTt2YXIgc2xpY2U9c2xpY2VzW29wXTt2YXIgaW5zZXJ0ZWQ9ZmFsc2U7Zm9yKHZhciBqPXN1YlJvd3MubGVuZ3RoLTE7aj49MDtqLS0pe2lmKHN1YlJvd3Nbal0ubGVuZ3RoPT0wKQorY29udGludWU7dmFyIGluc2VydGVkU2xpY2U9c3ViUm93c1tqXVtzdWJSb3dzW2pdLmxlbmd0aC0xXTtpZihzbGljZS5zdGFydDxpbnNlcnRlZFNsaWNlLnN0YXJ0KXt0aGlzLmJhZFNsaWNlc18ucHVzaChzbGljZSk7aW5zZXJ0ZWQ9dHJ1ZTt9CitpZihpbnNlcnRlZFNsaWNlLmJvdW5kcyhzbGljZSxwcmVjaXNpb25Vbml0KSl7d2hpbGUoc3ViUm93cy5sZW5ndGg8PWorMSkKK3N1YlJvd3MucHVzaChbXSk7c3ViUm93c1tqKzFdLnB1c2goc2xpY2UpO2lmKGluc2VydGVkU2xpY2Uuc3ViU2xpY2VzKQoraW5zZXJ0ZWRTbGljZS5zdWJTbGljZXMucHVzaChzbGljZSk7aW5zZXJ0ZWQ9dHJ1ZTticmVhazt9fQoraWYoaW5zZXJ0ZWQpCitjb250aW51ZTtzdWJSb3dzWzBdLnB1c2goc2xpY2UpO30KK3JldHVybiBzdWJSb3dzO319O3JldHVybntTbGljZUdyb3VwVHJhY2s6U2xpY2VHcm91cFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgVGhyZWFkVHJhY2s9dHIudWkuYi5kZWZpbmUoJ3RocmVhZC10cmFjaycsdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrKTtUaHJlYWRUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCd0aHJlYWQtdHJhY2snKTt9LGdldCB0aHJlYWQoKXtyZXR1cm4gdGhpcy50aHJlYWRfO30sc2V0IHRocmVhZCh0aHJlYWQpe3RoaXMudGhyZWFkXz10aHJlYWQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBoYXNWaXNpYmxlQ29udGVudCgpe3JldHVybiB0aGlzLnRyYWNrc18ubGVuZ3RoPjA7fSxnZXQgZXZlbnRDb250YWluZXIoKXtyZXR1cm4gdGhpcy50aHJlYWQ7fSxhZGRDb250YWluZXJzVG9UcmFja01hcDpmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKXtjb250YWluZXJUb1RyYWNrTWFwLmFkZENvbnRhaW5lcih0aGlzLnRocmVhZCx0aGlzKTtmb3IodmFyIGk9MDtpPHRoaXMuY2hpbGROb2Rlcy5sZW5ndGg7KytpKQogdGhpcy5jaGlsZE5vZGVzW2ldLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dGhpcy5kZXRhY2goKTtpZighdGhpcy50aHJlYWRfKQogcmV0dXJuO3RoaXMuaGVhZGluZz10aGlzLnRocmVhZF8udXNlckZyaWVuZGx5TmFtZSsnOiAnO3RoaXMudG9vbHRpcD10aGlzLnRocmVhZF8udXNlckZyaWVuZGx5RGV0YWlscztpZih0aGlzLnRocmVhZF8uYXN5bmNTbGljZUdyb3VwLmxlbmd0aCkKLXRoaXMuYXBwZW5kQXN5bmNTbGljZVRyYWNrc18oKTt0aGlzLmFwcGVuZFRocmVhZFNhbXBsZXNUcmFja3NfKCk7aWYodGhpcy50aHJlYWRfLnRpbWVTbGljZXMpe3ZhciB0aW1lU2xpY2VzVHJhY2s9bmV3IHRyLmMudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7dGltZVNsaWNlc1RyYWNrLmhlYWRpbmc9Jyc7dGltZVNsaWNlc1RyYWNrLmhlaWdodD10ci5jLlRISU5fU0xJQ0VfSEVJR0hUKydweCc7dGltZVNsaWNlc1RyYWNrLnNsaWNlcz10aGlzLnRocmVhZF8udGltZVNsaWNlcztpZih0aW1lU2xpY2VzVHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCit0aGlzLmFwcGVuZEFzeW5jU2xpY2VUcmFja3NfKCk7dGhpcy5hcHBlbmRUaHJlYWRTYW1wbGVzVHJhY2tzXygpO2lmKHRoaXMudGhyZWFkXy50aW1lU2xpY2VzKXt2YXIgdGltZVNsaWNlc1RyYWNrPW5ldyB0ci51aS50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTt0aW1lU2xpY2VzVHJhY2suaGVhZGluZz0nJzt0aW1lU2xpY2VzVHJhY2suaGVpZ2h0PXRyLnVpLmIuVEhJTl9TTElDRV9IRUlHSFQrJ3B4Jzt0aW1lU2xpY2VzVHJhY2suc2xpY2VzPXRoaXMudGhyZWFkXy50aW1lU2xpY2VzO2lmKHRpbWVTbGljZXNUcmFjay5oYXNWaXNpYmxlQ29udGVudCkKIHRoaXMuYXBwZW5kQ2hpbGQodGltZVNsaWNlc1RyYWNrKTt9Ci1pZih0aGlzLnRocmVhZF8uc2xpY2VHcm91cC5sZW5ndGgpe3ZhciB0cmFjaz1uZXcgdHIuYy50cmFja3MuU2xpY2VHcm91cFRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLmhlYWRpbmc9dGhpcy50aHJlYWRfLnVzZXJGcmllbmRseU5hbWU7dHJhY2sudG9vbHRpcD10aGlzLnRocmVhZF8udXNlckZyaWVuZGx5RGV0YWlsczt0cmFjay5ncm91cD10aGlzLnRocmVhZF8uc2xpY2VHcm91cDtpZih0cmFjay5oYXNWaXNpYmxlQ29udGVudCkKLXRoaXMuYXBwZW5kQ2hpbGQodHJhY2spO319LGFwcGVuZEFzeW5jU2xpY2VUcmFja3NfOmZ1bmN0aW9uKCl7dmFyIHN1Ykdyb3Vwcz10aGlzLnRocmVhZF8uYXN5bmNTbGljZUdyb3VwLnZpZXdTdWJHcm91cHM7c3ViR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oc3ViR3JvdXApe3ZhciBhc3luY1RyYWNrPW5ldyB0ci5jLnRyYWNrcy5Bc3luY1NsaWNlR3JvdXBUcmFjayh0aGlzLnZpZXdwb3J0KTt2YXIgdGl0bGU9c3ViR3JvdXAuc2xpY2VzWzBdLnZpZXdTdWJHcm91cFRpdGxlO2FzeW5jVHJhY2suZ3JvdXA9c3ViR3JvdXA7YXN5bmNUcmFjay5oZWFkaW5nPXRpdGxlO2lmKGFzeW5jVHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCitpZih0aGlzLnRocmVhZF8uc2xpY2VHcm91cC5sZW5ndGgpe3ZhciB0cmFjaz1uZXcgdHIudWkudHJhY2tzLlNsaWNlR3JvdXBUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5oZWFkaW5nPXRoaXMudGhyZWFkXy51c2VyRnJpZW5kbHlOYW1lO3RyYWNrLnRvb2x0aXA9dGhpcy50aHJlYWRfLnVzZXJGcmllbmRseURldGFpbHM7dHJhY2suZ3JvdXA9dGhpcy50aHJlYWRfLnNsaWNlR3JvdXA7aWYodHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCit0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt9fSxhcHBlbmRBc3luY1NsaWNlVHJhY2tzXzpmdW5jdGlvbigpe3ZhciBzdWJHcm91cHM9dGhpcy50aHJlYWRfLmFzeW5jU2xpY2VHcm91cC52aWV3U3ViR3JvdXBzO3N1Ykdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKHN1Ykdyb3VwKXt2YXIgYXN5bmNUcmFjaz1uZXcgdHIudWkudHJhY2tzLkFzeW5jU2xpY2VHcm91cFRyYWNrKHRoaXMudmlld3BvcnQpO3ZhciB0aXRsZT1zdWJHcm91cC5zbGljZXNbMF0udmlld1N1Ykdyb3VwVGl0bGU7YXN5bmNUcmFjay5ncm91cD1zdWJHcm91cDthc3luY1RyYWNrLmhlYWRpbmc9dGl0bGU7aWYoYXN5bmNUcmFjay5oYXNWaXNpYmxlQ29udGVudCkKIHRoaXMuYXBwZW5kQ2hpbGQoYXN5bmNUcmFjayk7fSx0aGlzKTt9LGFwcGVuZFRocmVhZFNhbXBsZXNUcmFja3NfOmZ1bmN0aW9uKCl7dmFyIHRocmVhZFNhbXBsZXM9dGhpcy50aHJlYWRfLnNhbXBsZXM7aWYodGhyZWFkU2FtcGxlcz09PXVuZGVmaW5lZHx8dGhyZWFkU2FtcGxlcy5sZW5ndGg9PT0wKQogcmV0dXJuO3ZhciBzYW1wbGVzQnlUaXRsZT17fTt0aHJlYWRTYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKXtpZihzYW1wbGVzQnlUaXRsZVtzYW1wbGUudGl0bGVdPT09dW5kZWZpbmVkKQotc2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXT1bXTtzYW1wbGVzQnlUaXRsZVtzYW1wbGUudGl0bGVdLnB1c2goc2FtcGxlKTt9KTt2YXIgc2FtcGxlVGl0bGVzPXRyLmIuZGljdGlvbmFyeUtleXMoc2FtcGxlc0J5VGl0bGUpO3NhbXBsZVRpdGxlcy5zb3J0KCk7c2FtcGxlVGl0bGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlVGl0bGUpe3ZhciBzYW1wbGVzPXNhbXBsZXNCeVRpdGxlW3NhbXBsZVRpdGxlXTt2YXIgc2FtcGxlc1RyYWNrPW5ldyB0ci5jLnRyYWNrcy5TYW1wbGVUcmFjayh0aGlzLnZpZXdwb3J0KTtzYW1wbGVzVHJhY2suZ3JvdXA9dGhpcy50aHJlYWRfO3NhbXBsZXNUcmFjay5zYW1wbGVzPXNhbXBsZXM7c2FtcGxlc1RyYWNrLmhlYWRpbmc9dGhpcy50aHJlYWRfLnVzZXJGcmllbmRseU5hbWUrJzogJysKLXNhbXBsZVRpdGxlO3NhbXBsZXNUcmFjay50b29sdGlwPXRoaXMudGhyZWFkXy51c2VyRnJpZW5kbHlEZXRhaWxzO3NhbXBsZXNUcmFjay5zZWxlY3Rpb25HZW5lcmF0b3I9ZnVuY3Rpb24oKXt2YXIgc2VsZWN0aW9uPW5ldyB0ci5jLlNlbGVjdGlvbigpO2Zvcih2YXIgaT0wO2k8c2FtcGxlc1RyYWNrLnNhbXBsZXMubGVuZ3RoO2krKyl7c2VsZWN0aW9uLnB1c2goc2FtcGxlc1RyYWNrLnNhbXBsZXNbaV0pO30KK3NhbXBsZXNCeVRpdGxlW3NhbXBsZS50aXRsZV09W107c2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXS5wdXNoKHNhbXBsZSk7fSk7dmFyIHNhbXBsZVRpdGxlcz10ci5iLmRpY3Rpb25hcnlLZXlzKHNhbXBsZXNCeVRpdGxlKTtzYW1wbGVUaXRsZXMuc29ydCgpO3NhbXBsZVRpdGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZVRpdGxlKXt2YXIgc2FtcGxlcz1zYW1wbGVzQnlUaXRsZVtzYW1wbGVUaXRsZV07dmFyIHNhbXBsZXNUcmFjaz1uZXcgdHIudWkudHJhY2tzLlNhbXBsZVRyYWNrKHRoaXMudmlld3BvcnQpO3NhbXBsZXNUcmFjay5ncm91cD10aGlzLnRocmVhZF87c2FtcGxlc1RyYWNrLnNhbXBsZXM9c2FtcGxlcztzYW1wbGVzVHJhY2suaGVhZGluZz10aGlzLnRocmVhZF8udXNlckZyaWVuZGx5TmFtZSsnOiAnKworc2FtcGxlVGl0bGU7c2FtcGxlc1RyYWNrLnRvb2x0aXA9dGhpcy50aHJlYWRfLnVzZXJGcmllbmRseURldGFpbHM7c2FtcGxlc1RyYWNrLnNlbGVjdGlvbkdlbmVyYXRvcj1mdW5jdGlvbigpe3ZhciBzZWxlY3Rpb249bmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7Zm9yKHZhciBpPTA7aTxzYW1wbGVzVHJhY2suc2FtcGxlcy5sZW5ndGg7aSsrKXtzZWxlY3Rpb24ucHVzaChzYW1wbGVzVHJhY2suc2FtcGxlc1tpXSk7fQogcmV0dXJuIHNlbGVjdGlvbjt9O3RoaXMuYXBwZW5kQ2hpbGQoc2FtcGxlc1RyYWNrKTt9LHRoaXMpO30sY29sbGFwc2VkRGlkQ2hhbmdlOmZ1bmN0aW9uKGNvbGxhcHNlZCl7aWYoY29sbGFwc2VkKXt2YXIgaD1wYXJzZUludCh0aGlzLnRyYWNrc1swXS5oZWlnaHQpO2Zvcih2YXIgaT0wO2k8dGhpcy50cmFja3MubGVuZ3RoOysraSl7aWYoaD4yKXt0aGlzLnRyYWNrc1tpXS5oZWlnaHQ9TWF0aC5mbG9vcihoKSsncHgnO31lbHNle3RoaXMudHJhY2tzW2ldLnN0eWxlLmRpc3BsYXk9J25vbmUnO30KLWg9aCowLjU7fX1lbHNle2Zvcih2YXIgaT0wO2k8dGhpcy50cmFja3MubGVuZ3RoOysraSl7dGhpcy50cmFja3NbaV0uaGVpZ2h0PXRoaXMudHJhY2tzWzBdLmhlaWdodDt0aGlzLnRyYWNrc1tpXS5zdHlsZS5kaXNwbGF5PScnO319fX07cmV0dXJue1RocmVhZFRyYWNrOlRocmVhZFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBPYmplY3RTbmFwc2hvdFZpZXc9dHIuYy5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXc7dmFyIE9iamVjdEluc3RhbmNlVmlldz10ci5jLmFuYWx5c2lzLk9iamVjdEluc3RhbmNlVmlldzt2YXIgU3BhY2luZ1RyYWNrPXRyLmMudHJhY2tzLlNwYWNpbmdUcmFjazt2YXIgUHJvY2Vzc1RyYWNrQmFzZT10ci5iLnVpLmRlZmluZSgncHJvY2Vzcy10cmFjay1iYXNlJyx0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjayk7UHJvY2Vzc1RyYWNrQmFzZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMucHJvY2Vzc0Jhc2VfPXVuZGVmaW5lZDt0aGlzLmNsYXNzTGlzdC5hZGQoJ3Byb2Nlc3MtdHJhY2stYmFzZScpO3RoaXMuY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKTt0aGlzLnByb2Nlc3NOYW1lRWxfPXRyLmIudWkuY3JlYXRlU3BhbigpO3RoaXMucHJvY2Vzc05hbWVFbF8uY2xhc3NMaXN0LmFkZCgncHJvY2Vzcy10cmFjay1uYW1lJyk7dGhpcy5oZWFkZXJFbF89dHIuYi51aS5jcmVhdGVEaXYoe2NsYXNzTmFtZToncHJvY2Vzcy10cmFjay1oZWFkZXInfSk7dGhpcy5oZWFkZXJFbF8uYXBwZW5kQ2hpbGQodGhpcy5wcm9jZXNzTmFtZUVsXyk7dGhpcy5oZWFkZXJFbF8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLHRoaXMub25IZWFkZXJDbGlja18uYmluZCh0aGlzKSk7dGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhlYWRlckVsXyk7fSxnZXQgcHJvY2Vzc0Jhc2UoKXtyZXR1cm4gdGhpcy5wcm9jZXNzQmFzZV87fSxzZXQgcHJvY2Vzc0Jhc2UocHJvY2Vzc0Jhc2Upe3RoaXMucHJvY2Vzc0Jhc2VfPXByb2Nlc3NCYXNlO2lmKHRoaXMucHJvY2Vzc0Jhc2VfKXt2YXIgbW9kZWxTZXR0aW5ncz1uZXcgdHIubW9kZWwuTW9kZWxTZXR0aW5ncyh0aGlzLnByb2Nlc3NCYXNlXy5tb2RlbCk7dmFyIGRlZmF1bHRWYWx1ZT10aGlzLnByb2Nlc3NCYXNlXy5pbXBvcnRhbnQ7dGhpcy5leHBhbmRlZD1tb2RlbFNldHRpbmdzLmdldFNldHRpbmdGb3IodGhpcy5wcm9jZXNzQmFzZV8sJ2V4cGFuZGVkJyxkZWZhdWx0VmFsdWUpO30KK2g9aCowLjU7fX1lbHNle2Zvcih2YXIgaT0wO2k8dGhpcy50cmFja3MubGVuZ3RoOysraSl7dGhpcy50cmFja3NbaV0uaGVpZ2h0PXRoaXMudHJhY2tzWzBdLmhlaWdodDt0aGlzLnRyYWNrc1tpXS5zdHlsZS5kaXNwbGF5PScnO319fX07cmV0dXJue1RocmVhZFRyYWNrOlRocmVhZFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgT2JqZWN0U25hcHNob3RWaWV3PXRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldzt2YXIgT2JqZWN0SW5zdGFuY2VWaWV3PXRyLnVpLmFuYWx5c2lzLk9iamVjdEluc3RhbmNlVmlldzt2YXIgU3BhY2luZ1RyYWNrPXRyLnVpLnRyYWNrcy5TcGFjaW5nVHJhY2s7dmFyIFByb2Nlc3NUcmFja0Jhc2U9dHIudWkuYi5kZWZpbmUoJ3Byb2Nlc3MtdHJhY2stYmFzZScsdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrKTtQcm9jZXNzVHJhY2tCYXNlLnByb3RvdHlwZT17X19wcm90b19fOnRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt0aGlzLnByb2Nlc3NCYXNlXz11bmRlZmluZWQ7dGhpcy5jbGFzc0xpc3QuYWRkKCdwcm9jZXNzLXRyYWNrLWJhc2UnKTt0aGlzLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJyk7dGhpcy5wcm9jZXNzTmFtZUVsXz10ci51aS5iLmNyZWF0ZVNwYW4oKTt0aGlzLnByb2Nlc3NOYW1lRWxfLmNsYXNzTGlzdC5hZGQoJ3Byb2Nlc3MtdHJhY2stbmFtZScpO3RoaXMuaGVhZGVyRWxfPXRyLnVpLmIuY3JlYXRlRGl2KHtjbGFzc05hbWU6J3Byb2Nlc3MtdHJhY2staGVhZGVyJ30pO3RoaXMuaGVhZGVyRWxfLmFwcGVuZENoaWxkKHRoaXMucHJvY2Vzc05hbWVFbF8pO3RoaXMuaGVhZGVyRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyx0aGlzLm9uSGVhZGVyQ2xpY2tfLmJpbmQodGhpcykpO3RoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkZXJFbF8pO30sZ2V0IHByb2Nlc3NCYXNlKCl7cmV0dXJuIHRoaXMucHJvY2Vzc0Jhc2VfO30sc2V0IHByb2Nlc3NCYXNlKHByb2Nlc3NCYXNlKXt0aGlzLnByb2Nlc3NCYXNlXz1wcm9jZXNzQmFzZTtpZih0aGlzLnByb2Nlc3NCYXNlXyl7dmFyIG1vZGVsU2V0dGluZ3M9bmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3ModGhpcy5wcm9jZXNzQmFzZV8ubW9kZWwpO3ZhciBkZWZhdWx0VmFsdWU9dGhpcy5wcm9jZXNzQmFzZV8uaW1wb3J0YW50O3RoaXMuZXhwYW5kZWQ9bW9kZWxTZXR0aW5ncy5nZXRTZXR0aW5nRm9yKHRoaXMucHJvY2Vzc0Jhc2VfLCdleHBhbmRlZCcsZGVmYXVsdFZhbHVlKTt9CiB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdleHBhbmRlZCcpO30sc2V0IGV4cGFuZGVkKGV4cGFuZGVkKXtleHBhbmRlZD0hIWV4cGFuZGVkO2lmKHRoaXMuZXhwYW5kZWQ9PT1leHBhbmRlZCkKIHJldHVybjt0aGlzLmNsYXNzTGlzdC50b2dnbGUoJ2V4cGFuZGVkJyk7dGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpO2lmKCF0aGlzLnByb2Nlc3NCYXNlXykKIHJldHVybjt2YXIgbW9kZWxTZXR0aW5ncz1uZXcgdHIubW9kZWwuTW9kZWxTZXR0aW5ncyh0aGlzLnByb2Nlc3NCYXNlXy5tb2RlbCk7bW9kZWxTZXR0aW5ncy5zZXRTZXR0aW5nRm9yKHRoaXMucHJvY2Vzc0Jhc2VfLCdleHBhbmRlZCcsZXhwYW5kZWQpO3RoaXMudXBkYXRlQ29udGVudHNfKCk7dGhpcy52aWV3cG9ydC5yZWJ1aWxkRXZlbnRUb1RyYWNrTWFwKCk7dGhpcy52aWV3cG9ydC5yZWJ1aWxkQ29udGFpbmVyVG9UcmFja01hcCgpO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7aWYodGhpcy5leHBhbmRlZCkKLXJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD4xO3JldHVybiB0cnVlO30sb25IZWFkZXJDbGlja186ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKTtlLnByZXZlbnREZWZhdWx0KCk7dGhpcy5leHBhbmRlZD0hdGhpcy5leHBhbmRlZDt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3RoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKXt0aGlzLnJlbW92ZUNoaWxkKHRyYWNrKTt9LHRoaXMpO2lmKCF0aGlzLnByb2Nlc3NCYXNlXykKK3JldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD4xO3JldHVybiB0cnVlO30sb25IZWFkZXJDbGlja186ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKTtlLnByZXZlbnREZWZhdWx0KCk7dGhpcy5leHBhbmRlZD0hdGhpcy5leHBhbmRlZDt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3RoaXMuY2xlYXJUcmFja3NfKCk7aWYoIXRoaXMucHJvY2Vzc0Jhc2VfKQogcmV0dXJuO3RoaXMucHJvY2Vzc05hbWVFbF8udGV4dENvbnRlbnQ9dGhpcy5wcm9jZXNzQmFzZV8udXNlckZyaWVuZGx5TmFtZTt0aGlzLmhlYWRlckVsXy50aXRsZT10aGlzLnByb2Nlc3NCYXNlXy51c2VyRnJpZW5kbHlEZXRhaWxzO3RoaXMud2lsbEFwcGVuZFRyYWNrc18oKTtpZih0aGlzLmV4cGFuZGVkKXt0aGlzLmFwcGVuZE1lbW9yeUR1bXBUcmFja18oKTt0aGlzLmFwcGVuZE9iamVjdEluc3RhbmNlVHJhY2tzXygpO3RoaXMuYXBwZW5kQ291bnRlclRyYWNrc18oKTt0aGlzLmFwcGVuZEZyYW1lVHJhY2tfKCk7dGhpcy5hcHBlbmRUaHJlYWRUcmFja3NfKCk7fWVsc2V7dGhpcy5hcHBlbmRTdW1tYXJ5VHJhY2tfKCk7fQotdGhpcy5kaWRBcHBlbmRUcmFja3NfKCk7fSxhZGRFdmVudHNUb1RyYWNrTWFwOmZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCl7dGhpcy50cmFja3NfLmZvckVhY2goZnVuY3Rpb24odHJhY2spe3RyYWNrLmFkZEV2ZW50c1RvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwKTt9KTt9LHdpbGxBcHBlbmRUcmFja3NfOmZ1bmN0aW9uKCl7fSxkaWRBcHBlbmRUcmFja3NfOmZ1bmN0aW9uKCl7fSxhcHBlbmRNZW1vcnlEdW1wVHJhY2tfOmZ1bmN0aW9uKCl7fSxhcHBlbmRTdW1tYXJ5VHJhY2tfOmZ1bmN0aW9uKCl7dmFyIHRyYWNrPW5ldyB0ci5jLnRyYWNrcy5Qcm9jZXNzU3VtbWFyeVRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLnByb2Nlc3M9dGhpcy5wcm9jZXNzO2lmKCF0cmFjay5oYXNWaXNpYmxlQ29udGVudCkKK3RoaXMuZGlkQXBwZW5kVHJhY2tzXygpO30sYWRkRXZlbnRzVG9UcmFja01hcDpmdW5jdGlvbihldmVudFRvVHJhY2tNYXApe3RoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKXt0cmFjay5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7fSk7fSx3aWxsQXBwZW5kVHJhY2tzXzpmdW5jdGlvbigpe30sZGlkQXBwZW5kVHJhY2tzXzpmdW5jdGlvbigpe30sYXBwZW5kTWVtb3J5RHVtcFRyYWNrXzpmdW5jdGlvbigpe30sYXBwZW5kU3VtbWFyeVRyYWNrXzpmdW5jdGlvbigpe3ZhciB0cmFjaz1uZXcgdHIudWkudHJhY2tzLlByb2Nlc3NTdW1tYXJ5VHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2sucHJvY2Vzcz10aGlzLnByb2Nlc3M7aWYoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQogcmV0dXJuO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO30sYXBwZW5kRnJhbWVUcmFja186ZnVuY3Rpb24oKXt2YXIgZnJhbWVzPXRoaXMucHJvY2Vzcz90aGlzLnByb2Nlc3MuZnJhbWVzOnVuZGVmaW5lZDtpZighZnJhbWVzfHwhZnJhbWVzLmxlbmd0aCkKLXJldHVybjt2YXIgdHJhY2s9bmV3IHRyLmMudHJhY2tzLkZyYW1lVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suZnJhbWVzPWZyYW1lczt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt0aGlzLmJhY2tncm91bmRQcm92aWRlcj10cmFjazt9LGFwcGVuZE9iamVjdEluc3RhbmNlVHJhY2tzXzpmdW5jdGlvbigpe3ZhciBpbnN0YW5jZXNCeVR5cGVOYW1lPXRoaXMucHJvY2Vzc0Jhc2VfLm9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzQnlUeXBlTmFtZSgpO3ZhciBpbnN0YW5jZVR5cGVOYW1lcz10ci5iLmRpY3Rpb25hcnlLZXlzKGluc3RhbmNlc0J5VHlwZU5hbWUpO2luc3RhbmNlVHlwZU5hbWVzLnNvcnQoKTt2YXIgZGlkQXBwZW5kQXRMZWFzdE9uZVRyYWNrPWZhbHNlO2luc3RhbmNlVHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24odHlwZU5hbWUpe3ZhciBhbGxJbnN0YW5jZXM9aW5zdGFuY2VzQnlUeXBlTmFtZVt0eXBlTmFtZV07dmFyIGluc3RhbmNlVmlld0luZm89T2JqZWN0SW5zdGFuY2VWaWV3LmdldFR5cGVJbmZvKHVuZGVmaW5lZCx0eXBlTmFtZSk7dmFyIHNuYXBzaG90Vmlld0luZm89T2JqZWN0U25hcHNob3RWaWV3LmdldFR5cGVJbmZvKHVuZGVmaW5lZCx0eXBlTmFtZSk7aWYoaW5zdGFuY2VWaWV3SW5mbyYmIWluc3RhbmNlVmlld0luZm8ubWV0YWRhdGEuc2hvd0luVHJhY2tWaWV3KQorcmV0dXJuO3ZhciB0cmFjaz1uZXcgdHIudWkudHJhY2tzLkZyYW1lVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suZnJhbWVzPWZyYW1lczt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt0aGlzLmJhY2tncm91bmRQcm92aWRlcj10cmFjazt9LGFwcGVuZE9iamVjdEluc3RhbmNlVHJhY2tzXzpmdW5jdGlvbigpe3ZhciBpbnN0YW5jZXNCeVR5cGVOYW1lPXRoaXMucHJvY2Vzc0Jhc2VfLm9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzQnlUeXBlTmFtZSgpO3ZhciBpbnN0YW5jZVR5cGVOYW1lcz10ci5iLmRpY3Rpb25hcnlLZXlzKGluc3RhbmNlc0J5VHlwZU5hbWUpO2luc3RhbmNlVHlwZU5hbWVzLnNvcnQoKTt2YXIgZGlkQXBwZW5kQXRMZWFzdE9uZVRyYWNrPWZhbHNlO2luc3RhbmNlVHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24odHlwZU5hbWUpe3ZhciBhbGxJbnN0YW5jZXM9aW5zdGFuY2VzQnlUeXBlTmFtZVt0eXBlTmFtZV07dmFyIGluc3RhbmNlVmlld0luZm89T2JqZWN0SW5zdGFuY2VWaWV3LmdldFR5cGVJbmZvKHVuZGVmaW5lZCx0eXBlTmFtZSk7dmFyIHNuYXBzaG90Vmlld0luZm89T2JqZWN0U25hcHNob3RWaWV3LmdldFR5cGVJbmZvKHVuZGVmaW5lZCx0eXBlTmFtZSk7aWYoaW5zdGFuY2VWaWV3SW5mbyYmIWluc3RhbmNlVmlld0luZm8ubWV0YWRhdGEuc2hvd0luVHJhY2tWaWV3KQogaW5zdGFuY2VWaWV3SW5mbz11bmRlZmluZWQ7aWYoc25hcHNob3RWaWV3SW5mbyYmIXNuYXBzaG90Vmlld0luZm8ubWV0YWRhdGEuc2hvd0luVHJhY2tWaWV3KQogc25hcHNob3RWaWV3SW5mbz11bmRlZmluZWQ7dmFyIGhhc1ZpZXdJbmZvPWluc3RhbmNlVmlld0luZm98fHNuYXBzaG90Vmlld0luZm87dmFyIHZpc2libGVJbnN0YW5jZXM9W107Zm9yKHZhciBpPTA7aTxhbGxJbnN0YW5jZXMubGVuZ3RoO2krKyl7dmFyIGluc3RhbmNlPWFsbEluc3RhbmNlc1tpXTtpZihpbnN0YW5jZS5zbmFwc2hvdHMubGVuZ3RoPT09MCkKIGNvbnRpbnVlO2lmKGluc3RhbmNlLmhhc0ltcGxpY2l0U25hcHNob3RzJiYhaGFzVmlld0luZm8pCiBjb250aW51ZTt2aXNpYmxlSW5zdGFuY2VzLnB1c2goaW5zdGFuY2UpO30KIGlmKHZpc2libGVJbnN0YW5jZXMubGVuZ3RoPT09MCkKLXJldHVybjt2YXIgdHJhY2tDb25zdHJ1Y3Rvcj10ci5jLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrLmdldENvbnN0cnVjdG9yKHVuZGVmaW5lZCx0eXBlTmFtZSk7aWYoIXRyYWNrQ29uc3RydWN0b3Ipe3ZhciBzbmFwc2hvdFZpZXdJbmZvPU9iamVjdFNuYXBzaG90Vmlldy5nZXRUeXBlSW5mbyh1bmRlZmluZWQsdHlwZU5hbWUpO2lmKHNuYXBzaG90Vmlld0luZm8mJnNuYXBzaG90Vmlld0luZm8ubWV0YWRhdGEuc2hvd0luc3RhbmNlcyl7dHJhY2tDb25zdHJ1Y3Rvcj10ci5jLnRyYWNrcy5PYmplY3RJbnN0YW5jZUdyb3VwVHJhY2s7fWVsc2V7dHJhY2tDb25zdHJ1Y3Rvcj10ci5jLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrO319CityZXR1cm47dmFyIHRyYWNrQ29uc3RydWN0b3I9dHIudWkudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2suZ2V0Q29uc3RydWN0b3IodW5kZWZpbmVkLHR5cGVOYW1lKTtpZighdHJhY2tDb25zdHJ1Y3Rvcil7dmFyIHNuYXBzaG90Vmlld0luZm89T2JqZWN0U25hcHNob3RWaWV3LmdldFR5cGVJbmZvKHVuZGVmaW5lZCx0eXBlTmFtZSk7aWYoc25hcHNob3RWaWV3SW5mbyYmc25hcHNob3RWaWV3SW5mby5tZXRhZGF0YS5zaG93SW5zdGFuY2VzKXt0cmFja0NvbnN0cnVjdG9yPXRyLnVpLnRyYWNrcy5PYmplY3RJbnN0YW5jZUdyb3VwVHJhY2s7fWVsc2V7dHJhY2tDb25zdHJ1Y3Rvcj10ci51aS50cmFja3MuT2JqZWN0SW5zdGFuY2VUcmFjazt9fQogdmFyIHRyYWNrPW5ldyB0cmFja0NvbnN0cnVjdG9yKHRoaXMudmlld3BvcnQpO3RyYWNrLm9iamVjdEluc3RhbmNlcz12aXNpYmxlSW5zdGFuY2VzO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO2RpZEFwcGVuZEF0TGVhc3RPbmVUcmFjaz10cnVlO30sdGhpcyk7aWYoZGlkQXBwZW5kQXRMZWFzdE9uZVRyYWNrKQotdGhpcy5hcHBlbmRDaGlsZChuZXcgU3BhY2luZ1RyYWNrKHRoaXMudmlld3BvcnQpKTt9LGFwcGVuZENvdW50ZXJUcmFja3NfOmZ1bmN0aW9uKCl7dmFyIGNvdW50ZXJzPXRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLnByb2Nlc3NCYXNlLmNvdW50ZXJzKTtjb3VudGVycy5zb3J0KHRyLm1vZGVsLkNvdW50ZXIuY29tcGFyZSk7Y291bnRlcnMuZm9yRWFjaChmdW5jdGlvbihjb3VudGVyKXt2YXIgdHJhY2s9bmV3IHRyLmMudHJhY2tzLkNvdW50ZXJUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5jb3VudGVyPWNvdW50ZXI7dGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7dGhpcy5hcHBlbmRDaGlsZChuZXcgU3BhY2luZ1RyYWNrKHRoaXMudmlld3BvcnQpKTt9LmJpbmQodGhpcykpO30sYXBwZW5kVGhyZWFkVHJhY2tzXzpmdW5jdGlvbigpe3ZhciB0aHJlYWRzPXRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLnByb2Nlc3NCYXNlLnRocmVhZHMpO3RocmVhZHMuc29ydCh0ci5tb2RlbC5UaHJlYWQuY29tcGFyZSk7dGhyZWFkcy5mb3JFYWNoKGZ1bmN0aW9uKHRocmVhZCl7dmFyIHRyYWNrPW5ldyB0ci5jLnRyYWNrcy5UaHJlYWRUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay50aHJlYWQ9dGhyZWFkO2lmKCF0cmFjay5oYXNWaXNpYmxlQ29udGVudCkKLXJldHVybjt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt0aGlzLmFwcGVuZENoaWxkKG5ldyBTcGFjaW5nVHJhY2sodGhpcy52aWV3cG9ydCkpO30uYmluZCh0aGlzKSk7fX07cmV0dXJue1Byb2Nlc3NUcmFja0Jhc2U6UHJvY2Vzc1RyYWNrQmFzZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgQ3B1VHJhY2s9dHIuYi51aS5kZWZpbmUoJ2NwdS10cmFjaycsdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2spO0NwdVRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdjcHUtdHJhY2snKTt0aGlzLmRldGFpbGVkTW9kZV89dHJ1ZTt9LGdldCBjcHUoKXtyZXR1cm4gdGhpcy5jcHVfO30sc2V0IGNwdShjcHUpe3RoaXMuY3B1Xz1jcHU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBkZXRhaWxlZE1vZGUoKXtyZXR1cm4gdGhpcy5kZXRhaWxlZE1vZGVfO30sc2V0IGRldGFpbGVkTW9kZShkZXRhaWxlZE1vZGUpe3RoaXMuZGV0YWlsZWRNb2RlXz1kZXRhaWxlZE1vZGU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCB0b29sdGlwKCl7cmV0dXJuIHRoaXMudG9vbHRpcF87fSxzZXQgdG9vbHRpcCh2YWx1ZSl7dGhpcy50b29sdGlwXz12YWx1ZTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7aWYodGhpcy5jcHVfPT09dW5kZWZpbmVkKQordGhpcy5hcHBlbmRDaGlsZChuZXcgU3BhY2luZ1RyYWNrKHRoaXMudmlld3BvcnQpKTt9LGFwcGVuZENvdW50ZXJUcmFja3NfOmZ1bmN0aW9uKCl7dmFyIGNvdW50ZXJzPXRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLnByb2Nlc3NCYXNlLmNvdW50ZXJzKTtjb3VudGVycy5zb3J0KHRyLm1vZGVsLkNvdW50ZXIuY29tcGFyZSk7Y291bnRlcnMuZm9yRWFjaChmdW5jdGlvbihjb3VudGVyKXt2YXIgdHJhY2s9bmV3IHRyLnVpLnRyYWNrcy5Db3VudGVyVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suY291bnRlcj1jb3VudGVyO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO3RoaXMuYXBwZW5kQ2hpbGQobmV3IFNwYWNpbmdUcmFjayh0aGlzLnZpZXdwb3J0KSk7fS5iaW5kKHRoaXMpKTt9LGFwcGVuZFRocmVhZFRyYWNrc186ZnVuY3Rpb24oKXt2YXIgdGhyZWFkcz10ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5wcm9jZXNzQmFzZS50aHJlYWRzKTt0aHJlYWRzLnNvcnQodHIubW9kZWwuVGhyZWFkLmNvbXBhcmUpO3RocmVhZHMuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpe3ZhciB0cmFjaz1uZXcgdHIudWkudHJhY2tzLlRocmVhZFRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLnRocmVhZD10aHJlYWQ7aWYoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQorcmV0dXJuO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO3RoaXMuYXBwZW5kQ2hpbGQobmV3IFNwYWNpbmdUcmFjayh0aGlzLnZpZXdwb3J0KSk7fS5iaW5kKHRoaXMpKTt9fTtyZXR1cm57UHJvY2Vzc1RyYWNrQmFzZTpQcm9jZXNzVHJhY2tCYXNlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgQ3B1VHJhY2s9dHIudWkuYi5kZWZpbmUoJ2NwdS10cmFjaycsdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrKTtDcHVUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdjcHUtdHJhY2snKTt0aGlzLmRldGFpbGVkTW9kZV89dHJ1ZTt9LGdldCBjcHUoKXtyZXR1cm4gdGhpcy5jcHVfO30sc2V0IGNwdShjcHUpe3RoaXMuY3B1Xz1jcHU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBkZXRhaWxlZE1vZGUoKXtyZXR1cm4gdGhpcy5kZXRhaWxlZE1vZGVfO30sc2V0IGRldGFpbGVkTW9kZShkZXRhaWxlZE1vZGUpe3RoaXMuZGV0YWlsZWRNb2RlXz1kZXRhaWxlZE1vZGU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCB0b29sdGlwKCl7cmV0dXJuIHRoaXMudG9vbHRpcF87fSxzZXQgdG9vbHRpcCh2YWx1ZSl7dGhpcy50b29sdGlwXz12YWx1ZTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7aWYodGhpcy5jcHVfPT09dW5kZWZpbmVkKQogcmV0dXJuIGZhbHNlO3ZhciBjcHU9dGhpcy5jcHVfO2lmKGNwdS5zbGljZXMubGVuZ3RoKQogcmV0dXJuIHRydWU7aWYoY3B1LnNhbXBsZXMmJmNwdS5zYW1wbGVzLmxlbmd0aCkKIHJldHVybiB0cnVlO2lmKHRyLmIuZGljdGlvbmFyeUxlbmd0aChjcHUuY291bnRlcnMpPjApCiByZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0aGlzLmRldGFjaCgpO2lmKCF0aGlzLmNwdV8pCi1yZXR1cm47dmFyIHNsaWNlcz10aGlzLmNwdV8uc2xpY2VzO2lmKHNsaWNlcy5sZW5ndGgpe3ZhciB0cmFjaz1uZXcgdHIuYy50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5zbGljZXM9c2xpY2VzO3RyYWNrLmhlYWRpbmc9dGhpcy5jcHVfLnVzZXJGcmllbmRseU5hbWUrJzonO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO30KLWlmKHRoaXMuZGV0YWlsZWRNb2RlXyl7dGhpcy5hcHBlbmRTYW1wbGVzVHJhY2tzXygpO2Zvcih2YXIgY291bnRlck5hbWUgaW4gdGhpcy5jcHVfLmNvdW50ZXJzKXt2YXIgY291bnRlcj10aGlzLmNwdV8uY291bnRlcnNbY291bnRlck5hbWVdO3RyYWNrPW5ldyB0ci5jLnRyYWNrcy5Db3VudGVyVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suaGVhZGluZz10aGlzLmNwdV8udXNlckZyaWVuZGx5TmFtZSsnICcrCityZXR1cm47dmFyIHNsaWNlcz10aGlzLmNwdV8uc2xpY2VzO2lmKHNsaWNlcy5sZW5ndGgpe3ZhciB0cmFjaz1uZXcgdHIudWkudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suc2xpY2VzPXNsaWNlczt0cmFjay5oZWFkaW5nPXRoaXMuY3B1Xy51c2VyRnJpZW5kbHlOYW1lKyc6Jzt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt9CitpZih0aGlzLmRldGFpbGVkTW9kZV8pe3RoaXMuYXBwZW5kU2FtcGxlc1RyYWNrc18oKTtmb3IodmFyIGNvdW50ZXJOYW1lIGluIHRoaXMuY3B1Xy5jb3VudGVycyl7dmFyIGNvdW50ZXI9dGhpcy5jcHVfLmNvdW50ZXJzW2NvdW50ZXJOYW1lXTt0cmFjaz1uZXcgdHIudWkudHJhY2tzLkNvdW50ZXJUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5oZWFkaW5nPXRoaXMuY3B1Xy51c2VyRnJpZW5kbHlOYW1lKycgJysKIGNvdW50ZXIubmFtZSsnOic7dHJhY2suY291bnRlcj1jb3VudGVyO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO319fSxhcHBlbmRTYW1wbGVzVHJhY2tzXzpmdW5jdGlvbigpe3ZhciBzYW1wbGVzPXRoaXMuY3B1Xy5zYW1wbGVzO2lmKHNhbXBsZXM9PT11bmRlZmluZWR8fHNhbXBsZXMubGVuZ3RoPT09MCkKIHJldHVybjt2YXIgc2FtcGxlc0J5VGl0bGU9e307c2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZSl7aWYoc2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXT09PXVuZGVmaW5lZCkKLXNhbXBsZXNCeVRpdGxlW3NhbXBsZS50aXRsZV09W107c2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXS5wdXNoKHNhbXBsZSk7fSk7dmFyIHNhbXBsZVRpdGxlcz10ci5iLmRpY3Rpb25hcnlLZXlzKHNhbXBsZXNCeVRpdGxlKTtzYW1wbGVUaXRsZXMuc29ydCgpO3NhbXBsZVRpdGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZVRpdGxlKXt2YXIgc2FtcGxlcz1zYW1wbGVzQnlUaXRsZVtzYW1wbGVUaXRsZV07dmFyIHNhbXBsZXNUcmFjaz1uZXcgdHIuYy50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTtzYW1wbGVzVHJhY2suZ3JvdXA9dGhpcy5jcHVfO3NhbXBsZXNUcmFjay5zbGljZXM9c2FtcGxlcztzYW1wbGVzVHJhY2suaGVhZGluZz10aGlzLmNwdV8udXNlckZyaWVuZGx5TmFtZSsnOiAnKwotc2FtcGxlVGl0bGU7c2FtcGxlc1RyYWNrLnRvb2x0aXA9dGhpcy5jcHVfLnVzZXJGcmllbmRseURldGFpbHM7c2FtcGxlc1RyYWNrLnNlbGVjdGlvbkdlbmVyYXRvcj1mdW5jdGlvbigpe3ZhciBzZWxlY3Rpb249bmV3IHRyLmMuU2VsZWN0aW9uKCk7Zm9yKHZhciBpPTA7aTxzYW1wbGVzVHJhY2suc2xpY2VzLmxlbmd0aDtpKyspe3NlbGVjdGlvbi5wdXNoKHNhbXBsZXNUcmFjay5zbGljZXNbaV0pO30KLXJldHVybiBzZWxlY3Rpb247fTt0aGlzLmFwcGVuZENoaWxkKHNhbXBsZXNUcmFjayk7fSx0aGlzKTt9fTtyZXR1cm57Q3B1VHJhY2s6Q3B1VHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIENwdT10ci5tb2RlbC5DcHU7dmFyIENwdVRyYWNrPXRyLmMudHJhY2tzLmNwdV90cmFjazt2YXIgUHJvY2Vzc1RyYWNrQmFzZT10ci5jLnRyYWNrcy5Qcm9jZXNzVHJhY2tCYXNlO3ZhciBTcGFjaW5nVHJhY2s9dHIuYy50cmFja3MuU3BhY2luZ1RyYWNrO3ZhciBLZXJuZWxUcmFjaz10ci5iLnVpLmRlZmluZSgna2VybmVsLXRyYWNrJyxQcm9jZXNzVHJhY2tCYXNlKTtLZXJuZWxUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzpQcm9jZXNzVHJhY2tCYXNlLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7UHJvY2Vzc1RyYWNrQmFzZS5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt9LHNldCBrZXJuZWwoa2VybmVsKXt0aGlzLnByb2Nlc3NCYXNlPWtlcm5lbDt9LGdldCBrZXJuZWwoKXtyZXR1cm4gdGhpcy5wcm9jZXNzQmFzZTt9LGdldCBldmVudENvbnRhaW5lcigpe3JldHVybiB0aGlzLmtlcm5lbDt9LGdldCBoYXNWaXNpYmxlQ29udGVudCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD4xO30sYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6ZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCl7Y29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5rZXJuZWwsdGhpcyk7fSx3aWxsQXBwZW5kVHJhY2tzXzpmdW5jdGlvbigpe3ZhciBjcHVzPXRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLmtlcm5lbC5jcHVzKTtjcHVzLnNvcnQodHIubW9kZWwuQ3B1LmNvbXBhcmUpO3ZhciBkaWRBcHBlbmRBdExlYXN0T25lVHJhY2s9ZmFsc2U7Zm9yKHZhciBpPTA7aTxjcHVzLmxlbmd0aDsrK2kpe3ZhciBjcHU9Y3B1c1tpXTt2YXIgdHJhY2s9bmV3IHRyLmMudHJhY2tzLkNwdVRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLmRldGFpbGVkTW9kZT10aGlzLmV4cGFuZGVkO3RyYWNrLmNwdT1jcHU7aWYoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQorc2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXT1bXTtzYW1wbGVzQnlUaXRsZVtzYW1wbGUudGl0bGVdLnB1c2goc2FtcGxlKTt9KTt2YXIgc2FtcGxlVGl0bGVzPXRyLmIuZGljdGlvbmFyeUtleXMoc2FtcGxlc0J5VGl0bGUpO3NhbXBsZVRpdGxlcy5zb3J0KCk7c2FtcGxlVGl0bGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlVGl0bGUpe3ZhciBzYW1wbGVzPXNhbXBsZXNCeVRpdGxlW3NhbXBsZVRpdGxlXTt2YXIgc2FtcGxlc1RyYWNrPW5ldyB0ci51aS50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTtzYW1wbGVzVHJhY2suZ3JvdXA9dGhpcy5jcHVfO3NhbXBsZXNUcmFjay5zbGljZXM9c2FtcGxlcztzYW1wbGVzVHJhY2suaGVhZGluZz10aGlzLmNwdV8udXNlckZyaWVuZGx5TmFtZSsnOiAnKworc2FtcGxlVGl0bGU7c2FtcGxlc1RyYWNrLnRvb2x0aXA9dGhpcy5jcHVfLnVzZXJGcmllbmRseURldGFpbHM7c2FtcGxlc1RyYWNrLnNlbGVjdGlvbkdlbmVyYXRvcj1mdW5jdGlvbigpe3ZhciBzZWxlY3Rpb249bmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7Zm9yKHZhciBpPTA7aTxzYW1wbGVzVHJhY2suc2xpY2VzLmxlbmd0aDtpKyspe3NlbGVjdGlvbi5wdXNoKHNhbXBsZXNUcmFjay5zbGljZXNbaV0pO30KK3JldHVybiBzZWxlY3Rpb247fTt0aGlzLmFwcGVuZENoaWxkKHNhbXBsZXNUcmFjayk7fSx0aGlzKTt9fTtyZXR1cm57Q3B1VHJhY2s6Q3B1VHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBDcHU9dHIubW9kZWwuQ3B1O3ZhciBDcHVUcmFjaz10ci51aS50cmFja3MuY3B1X3RyYWNrO3ZhciBQcm9jZXNzVHJhY2tCYXNlPXRyLnVpLnRyYWNrcy5Qcm9jZXNzVHJhY2tCYXNlO3ZhciBTcGFjaW5nVHJhY2s9dHIudWkudHJhY2tzLlNwYWNpbmdUcmFjazt2YXIgS2VybmVsVHJhY2s9dHIudWkuYi5kZWZpbmUoJ2tlcm5lbC10cmFjaycsUHJvY2Vzc1RyYWNrQmFzZSk7S2VybmVsVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186UHJvY2Vzc1RyYWNrQmFzZS5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe1Byb2Nlc3NUcmFja0Jhc2UucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7fSxzZXQga2VybmVsKGtlcm5lbCl7dGhpcy5wcm9jZXNzQmFzZT1rZXJuZWw7fSxnZXQga2VybmVsKCl7cmV0dXJuIHRoaXMucHJvY2Vzc0Jhc2U7fSxnZXQgZXZlbnRDb250YWluZXIoKXtyZXR1cm4gdGhpcy5rZXJuZWw7fSxnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGg+MTt9LGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOmZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApe2NvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMua2VybmVsLHRoaXMpO30sd2lsbEFwcGVuZFRyYWNrc186ZnVuY3Rpb24oKXt2YXIgY3B1cz10ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5rZXJuZWwuY3B1cyk7Y3B1cy5zb3J0KHRyLm1vZGVsLkNwdS5jb21wYXJlKTt2YXIgZGlkQXBwZW5kQXRMZWFzdE9uZVRyYWNrPWZhbHNlO2Zvcih2YXIgaT0wO2k8Y3B1cy5sZW5ndGg7KytpKXt2YXIgY3B1PWNwdXNbaV07dmFyIHRyYWNrPW5ldyB0ci51aS50cmFja3MuQ3B1VHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suZGV0YWlsZWRNb2RlPXRoaXMuZXhwYW5kZWQ7dHJhY2suY3B1PWNwdTtpZighdHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCiBjb250aW51ZTt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTtkaWRBcHBlbmRBdExlYXN0T25lVHJhY2s9dHJ1ZTt9CiBpZihkaWRBcHBlbmRBdExlYXN0T25lVHJhY2spCi10aGlzLmFwcGVuZENoaWxkKG5ldyBTcGFjaW5nVHJhY2sodGhpcy52aWV3cG9ydCkpO319O3JldHVybntLZXJuZWxUcmFjazpLZXJuZWxUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgQWxlcnRUcmFjaz10ci5iLnVpLmRlZmluZSgnYWxlcnQtdHJhY2snLHRyLmMudHJhY2tzLkxldHRlckRvdFRyYWNrKTtBbGVydFRyYWNrLnByb3RvdHlwZT17X19wcm90b19fOnRyLmMudHJhY2tzLkxldHRlckRvdFRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIuYy50cmFja3MuTGV0dGVyRG90VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5oZWFkaW5nPSdBbGVydHMnO3RoaXMuYWxlcnRzXz11bmRlZmluZWQ7fSxnZXQgYWxlcnRzKCl7cmV0dXJuIHRoaXMuYWxlcnRzXzt9LHNldCBhbGVydHMoYWxlcnRzKXt0aGlzLmFsZXJ0c189YWxlcnRzO2lmKGFsZXJ0cz09PXVuZGVmaW5lZCl7dGhpcy5pdGVtcz11bmRlZmluZWQ7cmV0dXJuO30KLXRoaXMuaXRlbXM9dGhpcy5hbGVydHNfLm1hcChmdW5jdGlvbihhbGVydCl7cmV0dXJuIG5ldyB0ci5jLnRyYWNrcy5MZXR0ZXJEb3QoYWxlcnQsU3RyaW5nLmZyb21DaGFyQ29kZSg5ODg4KSxhbGVydC5jb2xvcklkLGFsZXJ0LnN0YXJ0KTt9KTt9fTtyZXR1cm57QWxlcnRUcmFjazpBbGVydFRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfT0xEX05BTUU9J291dGVyX3NpemUnO3ZhciBBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfTkFNRT0nc2l6ZSc7ZnVuY3Rpb24gYWRkRGljdGlvbmFyeShkc3REaWN0LHNyY0RpY3Qpe3RyLmIuaXRlckl0ZW1zKHNyY0RpY3QsZnVuY3Rpb24oa2V5LHZhbHVlKXt2YXIgZXhpc3RpbmdWYWx1ZT1kc3REaWN0W2tleV07aWYoZXhpc3RpbmdWYWx1ZT09PXVuZGVmaW5lZCkKLWV4aXN0aW5nVmFsdWU9MDtkc3REaWN0W2tleV09ZXhpc3RpbmdWYWx1ZSt2YWx1ZTt9KTt9Ci1mdW5jdGlvbiBnZXRQcm9jZXNzTWVtb3J5RHVtcEFsbG9jYXRvclNpemVzKHByb2Nlc3NNZW1vcnlEdW1wKXt2YXIgYWxsb2NhdG9yRHVtcHM9cHJvY2Vzc01lbW9yeUR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHM7aWYoYWxsb2NhdG9yRHVtcHM9PT11bmRlZmluZWQpCi1yZXR1cm57fTt2YXIgYWxsb2NhdG9yU2l6ZXM9e307YWxsb2NhdG9yRHVtcHMuZm9yRWFjaChmdW5jdGlvbihhbGxvY2F0b3JEdW1wKXtpZihhbGxvY2F0b3JEdW1wLmZ1bGxOYW1lPT09J3RyYWNpbmcnKQotcmV0dXJuO3ZhciBhbGxvY2F0b3JTaXplPWFsbG9jYXRvckR1bXAuYXR0cmlidXRlc1tBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfTkFNRV07aWYoYWxsb2NhdG9yU2l6ZT09PXVuZGVmaW5lZCl7YWxsb2NhdG9yU2l6ZT1hbGxvY2F0b3JEdW1wLmF0dHJpYnV0ZXNbQUxMT0NBVE9SX1NJWkVfQVRUUklCVVRFX09MRF9OQU1FXTt9Ci1pZihhbGxvY2F0b3JTaXplPT09dW5kZWZpbmVkKQotcmV0dXJuO3ZhciBhbGxvY2F0b3JTaXplVmFsdWU9YWxsb2NhdG9yU2l6ZS52YWx1ZTtpZihhbGxvY2F0b3JTaXplVmFsdWU9PT11bmRlZmluZWQpCi1yZXR1cm47YWxsb2NhdG9yU2l6ZXNbYWxsb2NhdG9yRHVtcC5mdWxsTmFtZV09YWxsb2NhdG9yU2l6ZVZhbHVlO30pO3JldHVybiBhbGxvY2F0b3JTaXplczt9O2Z1bmN0aW9uIGdldEdsb2JhbE1lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyhnbG9iYWxNZW1vcnlEdW1wKXt2YXIgZ2xvYmFsQWxsb2NhdG9yU2l6ZXM9e307dHIuYi5pdGVySXRlbXMoZ2xvYmFsTWVtb3J5RHVtcC5wcm9jZXNzTWVtb3J5RHVtcHMsZnVuY3Rpb24ocGlkLHByb2Nlc3NNZW1vcnlEdW1wKXthZGREaWN0aW9uYXJ5KGdsb2JhbEFsbG9jYXRvclNpemVzLGdldFByb2Nlc3NNZW1vcnlEdW1wQWxsb2NhdG9yU2l6ZXMocHJvY2Vzc01lbW9yeUR1bXApKTt9KTtyZXR1cm4gZ2xvYmFsQWxsb2NhdG9yU2l6ZXM7fQotZnVuY3Rpb24gYnVpbGRBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyhtZW1vcnlEdW1wcyxtZW1vcnlEdW1wVG9BbGxvY2F0b3JTaXplc0ZuKXt2YXIgYWxsb2NhdG9yTmFtZVRvUG9pbnRzPXt9O3ZhciBkdW1wc0RhdGE9bWVtb3J5RHVtcHMubWFwKGZ1bmN0aW9uKG1lbW9yeUR1bXApe3ZhciBhbGxvY2F0b3JTaXplcz1tZW1vcnlEdW1wVG9BbGxvY2F0b3JTaXplc0ZuKG1lbW9yeUR1bXApO3RyLmIuaXRlckl0ZW1zKGFsbG9jYXRvclNpemVzLGZ1bmN0aW9uKGFsbG9jYXRvck5hbWUpe2FsbG9jYXRvck5hbWVUb1BvaW50c1thbGxvY2F0b3JOYW1lXT1bXTt9KTtyZXR1cm57ZHVtcDptZW1vcnlEdW1wLHNpemVzOmFsbG9jYXRvclNpemVzfTt9KTtpZihPYmplY3Qua2V5cyhhbGxvY2F0b3JOYW1lVG9Qb2ludHMpLmxlbmd0aD09PTApCi1yZXR1cm4gdW5kZWZpbmVkO2R1bXBzRGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGR1bXBEYXRhKXt2YXIgbWVtb3J5RHVtcD1kdW1wRGF0YS5kdW1wO3ZhciBhbGxvY2F0b3JTaXplcz1kdW1wRGF0YS5zaXplczt0ci5iLml0ZXJJdGVtcyhhbGxvY2F0b3JOYW1lVG9Qb2ludHMsZnVuY3Rpb24oYWxsb2NhdG9yTmFtZSxwb2ludHMpe3ZhciBhbGxvY2F0b3JTaXplPWFsbG9jYXRvclNpemVzW2FsbG9jYXRvck5hbWVdfHwwO3BvaW50cy5wdXNoKG5ldyB0ci5jLnRyYWNrcy5DaGFydFBvaW50KG1lbW9yeUR1bXAsbWVtb3J5RHVtcC5zdGFydCxhbGxvY2F0b3JTaXplKSk7fSk7fSk7dmFyIGF4aXM9bmV3IHRyLmMudHJhY2tzLkNoYXJ0QXhpcygwKTt2YXIgc2VyaWVzPVtdO3RyLmIuaXRlckl0ZW1zKGFsbG9jYXRvck5hbWVUb1BvaW50cyxmdW5jdGlvbihhbGxvY2F0b3JOYW1lLHBvaW50cyl7dmFyIGNvbG9ySWQ9dHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoYWxsb2NhdG9yTmFtZSk7dmFyIHJlbmRlcmluZ0NvbmZpZz17Y2hhcnRUeXBlOnRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZS5MSU5FLGNvbG9ySWQ6Y29sb3JJZH07c2VyaWVzLnB1c2gobmV3IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzKHBvaW50cyxheGlzLHJlbmRlcmluZ0NvbmZpZykpO30pO3JldHVybiBzZXJpZXM7fQotZnVuY3Rpb24gYnVpbGRNZW1vcnlMZXR0ZXJEb3RzKG1lbW9yeUR1bXBzKXt2YXIgbWVtb3J5Q29sb3JJZD10ci5iLnVpLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ21lbW9yeV9kdW1wJyk7cmV0dXJuIG1lbW9yeUR1bXBzLm1hcChmdW5jdGlvbihtZW1vcnlEdW1wKXtyZXR1cm4gbmV3IHRyLmMudHJhY2tzLkxldHRlckRvdChtZW1vcnlEdW1wLCdNJyxtZW1vcnlDb2xvcklkLG1lbW9yeUR1bXAuc3RhcnQpO30pO30KLWZ1bmN0aW9uIGJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzKGdsb2JhbE1lbW9yeUR1bXBzKXt2YXIgY29udGFpbnNWbVJlZ2lvbnM9Z2xvYmFsTWVtb3J5RHVtcHMuc29tZShmdW5jdGlvbihnbG9iYWxEdW1wKXtmb3IodmFyIHBpZCBpbiBnbG9iYWxEdW1wLnByb2Nlc3NNZW1vcnlEdW1wcykKLWlmKGdsb2JhbER1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3BpZF0ubW9zdFJlY2VudFZtUmVnaW9ucykKLXJldHVybiB0cnVlO3JldHVybiBmYWxzZTt9KTtpZighY29udGFpbnNWbVJlZ2lvbnMpCi1yZXR1cm4gdW5kZWZpbmVkO3ZhciBwaWRUb1Byb2Nlc3M9e307Z2xvYmFsTWVtb3J5RHVtcHMuZm9yRWFjaChmdW5jdGlvbihnbG9iYWxEdW1wKXt0ci5iLml0ZXJJdGVtcyhnbG9iYWxEdW1wLnByb2Nlc3NNZW1vcnlEdW1wcyxmdW5jdGlvbihwaWQscHJvY2Vzc0R1bXApe3BpZFRvUHJvY2Vzc1twaWRdPXByb2Nlc3NEdW1wLnByb2Nlc3M7fSk7fSk7dmFyIHBpZFRvUG9pbnRzPXt9O3RyLmIuaXRlckl0ZW1zKHBpZFRvUHJvY2VzcyxmdW5jdGlvbihwaWQscHJvY2Vzcyl7cGlkVG9Qb2ludHNbcGlkXT1bXTt9KTtnbG9iYWxNZW1vcnlEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGdsb2JhbER1bXApe3ZhciBwc3NCYXNlPTA7dHIuYi5pdGVySXRlbXMocGlkVG9Qb2ludHMsZnVuY3Rpb24ocGlkLHBvaW50cyl7dmFyIHByb2Nlc3NNZW1vcnlEdW1wPWdsb2JhbER1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3BpZF07dmFyIHBzcztpZihwcm9jZXNzTWVtb3J5RHVtcD09PXVuZGVmaW5lZCl7cHNzPTA7fWVsc2V7cHNzPXByb2Nlc3NNZW1vcnlEdW1wLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnKTtpZihwc3M9PT11bmRlZmluZWQpe3Bzcz0wO319Ci12YXIgY3VtdWxhdGl2ZVBzcz1wc3NCYXNlK3Bzcztwb2ludHMucHVzaChuZXcgdHIuYy50cmFja3MuQ2hhcnRQb2ludChnbG9iYWxEdW1wLGdsb2JhbER1bXAuc3RhcnQsY3VtdWxhdGl2ZVBzcyxwc3NCYXNlKSk7cHNzQmFzZT1jdW11bGF0aXZlUHNzO30pO30pO3ZhciBheGlzPW5ldyB0ci5jLnRyYWNrcy5DaGFydEF4aXMoMCk7dmFyIHNlcmllcz1bXTt0ci5iLml0ZXJJdGVtcyhwaWRUb1BvaW50cyxmdW5jdGlvbihwaWQscG9pbnRzKXt2YXIgcHJvY2Vzcz1waWRUb1Byb2Nlc3NbcGlkXTt2YXIgY29sb3JJZD10ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhwcm9jZXNzLnVzZXJGcmllbmRseU5hbWUpO3ZhciByZW5kZXJpbmdDb25maWc9e2NoYXJ0VHlwZTp0ci5jLnRyYWNrcy5DaGFydFNlcmllc1R5cGUuQVJFQSxjb2xvcklkOmNvbG9ySWQsYmFja2dyb3VuZE9wYWNpdHk6MC44fTtzZXJpZXMucHVzaChuZXcgdHIuYy50cmFja3MuQ2hhcnRTZXJpZXMocG9pbnRzLGF4aXMscmVuZGVyaW5nQ29uZmlnKSk7fSk7c2VyaWVzLnJldmVyc2UoKTtyZXR1cm4gc2VyaWVzO30KLWZ1bmN0aW9uIGJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKHByb2Nlc3NNZW1vcnlEdW1wcyl7cmV0dXJuIGJ1aWxkQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMocHJvY2Vzc01lbW9yeUR1bXBzLGdldFByb2Nlc3NNZW1vcnlEdW1wQWxsb2NhdG9yU2l6ZXMpO30KLWZ1bmN0aW9uIGJ1aWxkR2xvYmFsQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMoZ2xvYmFsTWVtb3J5RHVtcHMpe3JldHVybiBidWlsZEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKGdsb2JhbE1lbW9yeUR1bXBzLGdldEdsb2JhbE1lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyk7fQotcmV0dXJue2J1aWxkTWVtb3J5TGV0dGVyRG90czpidWlsZE1lbW9yeUxldHRlckRvdHMsYnVpbGRHbG9iYWxVc2VkTWVtb3J5Q2hhcnRTZXJpZXM6YnVpbGRHbG9iYWxVc2VkTWVtb3J5Q2hhcnRTZXJpZXMsYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXM6YnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMsYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllczpidWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBVU0VEX01FTU9SWV9UUkFDS19IRUlHSFQ9NTA7dmFyIEFMTE9DQVRFRF9NRU1PUllfVFJBQ0tfSEVJR0hUPTUwO3ZhciBHbG9iYWxNZW1vcnlEdW1wVHJhY2s9dHIuYi51aS5kZWZpbmUoJ2dsb2JhbC1tZW1vcnktZHVtcC10cmFjaycsdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2spO0dsb2JhbE1lbW9yeUR1bXBUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMubWVtb3J5RHVtcHNfPXVuZGVmaW5lZDt9LGdldCBtZW1vcnlEdW1wcygpe3JldHVybiB0aGlzLm1lbW9yeUR1bXBzXzt9LHNldCBtZW1vcnlEdW1wcyhtZW1vcnlEdW1wcyl7dGhpcy5tZW1vcnlEdW1wc189bWVtb3J5RHVtcHM7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3RoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKXt0aGlzLnJlbW92ZUNoaWxkKHRyYWNrKTt9LHRoaXMpO2lmKCF0aGlzLm1lbW9yeUR1bXBzX3x8IXRoaXMubWVtb3J5RHVtcHNfLmxlbmd0aCkKLXJldHVybjt0aGlzLmFwcGVuZER1bXBEb3RzVHJhY2tfKCk7dGhpcy5hcHBlbmRVc2VkTWVtb3J5VHJhY2tfKCk7dGhpcy5hcHBlbmRBbGxvY2F0ZWRNZW1vcnlUcmFja18oKTt9LGFwcGVuZER1bXBEb3RzVHJhY2tfOmZ1bmN0aW9uKCl7dmFyIGl0ZW1zPXRyLmMudHJhY2tzLmJ1aWxkTWVtb3J5TGV0dGVyRG90cyh0aGlzLm1lbW9yeUR1bXBzXyk7aWYoIWl0ZW1zKQotcmV0dXJuO3ZhciB0cmFjaz1uZXcgdHIuYy50cmFja3MuTGV0dGVyRG90VHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suaGVhZGluZz0nTWVtb3J5IER1bXBzJzt0cmFjay5pdGVtcz1pdGVtczt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt9LGFwcGVuZFVzZWRNZW1vcnlUcmFja186ZnVuY3Rpb24oKXt2YXIgc2VyaWVzPXRyLmMudHJhY2tzLmJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzKHRoaXMubWVtb3J5RHVtcHNfKTtpZighc2VyaWVzKQotcmV0dXJuO3ZhciB0cmFjaz1uZXcgdHIuYy50cmFja3MuQ2hhcnRUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5oZWFkaW5nPSdVc2VkIG1lbW9yeSAocGVyIHByb2Nlc3MpJzt0cmFjay5oZWlnaHQ9VVNFRF9NRU1PUllfVFJBQ0tfSEVJR0hUKydweCc7dHJhY2suc2VyaWVzPXNlcmllczt0cmFjay5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OnRydWV9KTt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt9LGFwcGVuZEFsbG9jYXRlZE1lbW9yeVRyYWNrXzpmdW5jdGlvbigpe3ZhciBzZXJpZXM9dHIuYy50cmFja3MuYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyh0aGlzLm1lbW9yeUR1bXBzXyk7aWYoIXNlcmllcykKLXJldHVybjt2YXIgdHJhY2s9bmV3IHRyLmMudHJhY2tzLkNoYXJ0VHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suaGVhZGluZz0nQWxsb2NhdGVkIG1lbW9yeSAocGVyIGFsbG9jYXRvciknO3RyYWNrLmhlaWdodD1BTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCsncHgnO3RyYWNrLnNlcmllcz1zZXJpZXM7dHJhY2suYXV0b1NldEFsbEF4ZXMoe2V4cGFuZE1heDp0cnVlfSk7dGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7fX07cmV0dXJue0dsb2JhbE1lbW9yeUR1bXBUcmFjazpHbG9iYWxNZW1vcnlEdW1wVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIEFMTE9DQVRFRF9NRU1PUllfVFJBQ0tfSEVJR0hUPTUwO3ZhciBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrPXRyLmIudWkuZGVmaW5lKCdwcm9jZXNzLW1lbW9yeS1kdW1wLXRyYWNrJyx0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjayk7UHJvY2Vzc01lbW9yeUR1bXBUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMubWVtb3J5RHVtcHNfPXVuZGVmaW5lZDt9LGdldCBtZW1vcnlEdW1wcygpe3JldHVybiB0aGlzLm1lbW9yeUR1bXBzXzt9LHNldCBtZW1vcnlEdW1wcyhtZW1vcnlEdW1wcyl7dGhpcy5tZW1vcnlEdW1wc189bWVtb3J5RHVtcHM7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3RoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKXt0aGlzLnJlbW92ZUNoaWxkKHRyYWNrKTt9LHRoaXMpO2lmKCF0aGlzLm1lbW9yeUR1bXBzX3x8IXRoaXMubWVtb3J5RHVtcHNfLmxlbmd0aCkKLXJldHVybjt0aGlzLmFwcGVuZEFsbG9jYXRlZE1lbW9yeVRyYWNrXygpO30sYXBwZW5kQWxsb2NhdGVkTWVtb3J5VHJhY2tfOmZ1bmN0aW9uKCl7dmFyIHNlcmllcz10ci5jLnRyYWNrcy5idWlsZFByb2Nlc3NBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyh0aGlzLm1lbW9yeUR1bXBzXyk7aWYoIXNlcmllcykKLXJldHVybjt2YXIgdHJhY2s9bmV3IHRyLmMudHJhY2tzLkNoYXJ0VHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suaGVhZGluZz0nQWxsb2NhdGVkIG1lbW9yeSAocGVyIGFsbG9jYXRvciknO3RyYWNrLmhlaWdodD1BTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCsncHgnO3RyYWNrLnNlcmllcz1zZXJpZXM7dHJhY2suYXV0b1NldEFsbEF4ZXMoe2V4cGFuZE1heDp0cnVlfSk7dGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7fX07cmV0dXJue1Byb2Nlc3NNZW1vcnlEdW1wVHJhY2s6UHJvY2Vzc01lbW9yeUR1bXBUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgUHJvY2Vzc1RyYWNrQmFzZT10ci5jLnRyYWNrcy5Qcm9jZXNzVHJhY2tCYXNlO3ZhciBQcm9jZXNzVHJhY2s9dHIuYi51aS5kZWZpbmUoJ3Byb2Nlc3MtdHJhY2snLFByb2Nlc3NUcmFja0Jhc2UpO1Byb2Nlc3NUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzpQcm9jZXNzVHJhY2tCYXNlLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIuYy50cmFja3MuUHJvY2Vzc1RyYWNrQmFzZS5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt9LGRyYXdUcmFjazpmdW5jdGlvbih0eXBlKXtzd2l0Y2godHlwZSl7Y2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5JTlNUQU5UX0VWRU5UOmlmKCF0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHN8fHRoaXMucHJvY2Vzc0Jhc2UuaW5zdGFudEV2ZW50cy5sZW5ndGg9PT0wKQotYnJlYWs7dmFyIGN0eD10aGlzLmNvbnRleHQoKTt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgYm91bmRzPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGNhbnZhc0JvdW5kcz1jdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2N0eC5zYXZlKCk7Y3R4LnRyYW5zbGF0ZSgwLHBpeGVsUmF0aW8qKGJvdW5kcy50b3AtY2FudmFzQm91bmRzLnRvcCkpO3ZhciBkdD10aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciB2aWV3TFdvcmxkPWR0LnhWaWV3VG9Xb3JsZCgwKTt2YXIgdmlld1JXb3JsZD1kdC54Vmlld1RvV29ybGQoYm91bmRzLndpZHRoKnBpeGVsUmF0aW8pO3RyLmMuZHJhd0luc3RhbnRTbGljZXNBc0xpbmVzKGN0eCx0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLHZpZXdMV29ybGQsdmlld1JXb3JsZCxib3VuZHMuaGVpZ2h0LHRoaXMucHJvY2Vzc0Jhc2UuaW5zdGFudEV2ZW50cywyKTtjdHgucmVzdG9yZSgpO2JyZWFrO2Nhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuQkFDS0dST1VORDp0aGlzLmRyYXdCYWNrZ3JvdW5kXygpO3JldHVybjt9Ci10ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZHJhd1RyYWNrLmNhbGwodGhpcyx0eXBlKTt9LGRyYXdCYWNrZ3JvdW5kXzpmdW5jdGlvbigpe3ZhciBjdHg9dGhpcy5jb250ZXh0KCk7dmFyIGNhbnZhc0JvdW5kcz1jdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBkcmF3PWZhbHNlO2N0eC5maWxsU3R5bGU9JyNlZWUnO2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7KytpKXtpZighKHRoaXMuY2hpbGRyZW5baV1pbnN0YW5jZW9mIHRyLmMudHJhY2tzLlRyYWNrKXx8KHRoaXMuY2hpbGRyZW5baV1pbnN0YW5jZW9mIHRyLmMudHJhY2tzLlNwYWNpbmdUcmFjaykpCit0aGlzLmFwcGVuZENoaWxkKG5ldyBTcGFjaW5nVHJhY2sodGhpcy52aWV3cG9ydCkpO319O3JldHVybntLZXJuZWxUcmFjazpLZXJuZWxUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIEludGVyYWN0aW9uVHJhY2s9dHIudWkuYi5kZWZpbmUoJ2ludGVyYWN0aW9uLXRyYWNrJyx0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjayk7SW50ZXJhY3Rpb25UcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuaGVhZGluZz0nSW50ZXJhY3Rpb25zJzt0aGlzLnN1YlJvd3NfPVtdO30sc2V0IG1vZGVsKG1vZGVsKXt0aGlzLnNldEl0ZW1zVG9Hcm91cChtb2RlbC5pbnRlcmFjdGlvbl9yZWNvcmRzLHtndWlkOnRyLmIuR1VJRC5hbGxvY2F0ZSgpLG1vZGVsOm1vZGVsLGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7cmV0dXJuIHVuZGVmaW5lZDt9fSk7fSxidWlsZFN1YlJvd3NfOmZ1bmN0aW9uKHNsaWNlcyl7aWYodGhpcy5zdWJSb3dzXy5sZW5ndGgpCityZXR1cm4gdGhpcy5zdWJSb3dzXzt0aGlzLnN1YlJvd3NfLnB1c2guYXBwbHkodGhpcy5zdWJSb3dzXyx0ci51aS50cmFja3MuQXN5bmNTbGljZUdyb3VwVHJhY2sucHJvdG90eXBlLmJ1aWxkU3ViUm93c18uY2FsbCh7fSxzbGljZXMsdHJ1ZSkpO3JldHVybiB0aGlzLnN1YlJvd3NfO30sYWRkU3ViVHJhY2tfOmZ1bmN0aW9uKHNsaWNlcyl7dmFyIHRyYWNrPW5ldyB0ci51aS50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5zbGljZXM9c2xpY2VzO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO3JldHVybiB0cmFjazt9fTtyZXR1cm57SW50ZXJhY3Rpb25UcmFjazpJbnRlcmFjdGlvblRyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgQUxMT0NBVEVEX01FTU9SWV9UUkFDS19IRUlHSFQ9NTA7dmFyIFByb2Nlc3NNZW1vcnlEdW1wVHJhY2s9dHIudWkuYi5kZWZpbmUoJ3Byb2Nlc3MtbWVtb3J5LWR1bXAtdHJhY2snLHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjayk7UHJvY2Vzc01lbW9yeUR1bXBUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5tZW1vcnlEdW1wc189dW5kZWZpbmVkO30sZ2V0IG1lbW9yeUR1bXBzKCl7cmV0dXJuIHRoaXMubWVtb3J5RHVtcHNfO30sc2V0IG1lbW9yeUR1bXBzKG1lbW9yeUR1bXBzKXt0aGlzLm1lbW9yeUR1bXBzXz1tZW1vcnlEdW1wczt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dGhpcy5jbGVhclRyYWNrc18oKTtpZighdGhpcy5tZW1vcnlEdW1wc198fCF0aGlzLm1lbW9yeUR1bXBzXy5sZW5ndGgpCityZXR1cm47dGhpcy5hcHBlbmRBbGxvY2F0ZWRNZW1vcnlUcmFja18oKTt9LGFwcGVuZEFsbG9jYXRlZE1lbW9yeVRyYWNrXzpmdW5jdGlvbigpe3ZhciBzZXJpZXM9dHIudWkudHJhY2tzLmJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKHRoaXMubWVtb3J5RHVtcHNfKTtpZighc2VyaWVzKQorcmV0dXJuO3ZhciB0cmFjaz1uZXcgdHIudWkudHJhY2tzLkNoYXJ0VHJhY2sodGhpcy52aWV3cG9ydCk7dHJhY2suaGVhZGluZz0nQWxsb2NhdGVkIG1lbW9yeSAocGVyIGFsbG9jYXRvciknO3RyYWNrLmhlaWdodD1BTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCsncHgnO3RyYWNrLnNlcmllcz1zZXJpZXM7dHJhY2suYXV0b1NldEFsbEF4ZXMoe2V4cGFuZE1heDp0cnVlfSk7dGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7fX07cmV0dXJue1Byb2Nlc3NNZW1vcnlEdW1wVHJhY2s6UHJvY2Vzc01lbW9yeUR1bXBUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLGZ1bmN0aW9uKCl7dmFyIFByb2Nlc3NUcmFja0Jhc2U9dHIudWkudHJhY2tzLlByb2Nlc3NUcmFja0Jhc2U7dmFyIFByb2Nlc3NUcmFjaz10ci51aS5iLmRlZmluZSgncHJvY2Vzcy10cmFjaycsUHJvY2Vzc1RyYWNrQmFzZSk7UHJvY2Vzc1RyYWNrLnByb3RvdHlwZT17X19wcm90b19fOlByb2Nlc3NUcmFja0Jhc2UucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuUHJvY2Vzc1RyYWNrQmFzZS5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLHZpZXdwb3J0KTt9LGRyYXdUcmFjazpmdW5jdGlvbih0eXBlKXtzd2l0Y2godHlwZSl7Y2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuSU5TVEFOVF9FVkVOVDppZighdGhpcy5wcm9jZXNzQmFzZS5pbnN0YW50RXZlbnRzfHx0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHMubGVuZ3RoPT09MCkKK2JyZWFrO3ZhciBjdHg9dGhpcy5jb250ZXh0KCk7dmFyIHBpeGVsUmF0aW89d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIGJvdW5kcz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBjYW52YXNCb3VuZHM9Y3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjdHguc2F2ZSgpO2N0eC50cmFuc2xhdGUoMCxwaXhlbFJhdGlvKihib3VuZHMudG9wLWNhbnZhc0JvdW5kcy50b3ApKTt2YXIgZHQ9dGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgdmlld0xXb3JsZD1kdC54Vmlld1RvV29ybGQoMCk7dmFyIHZpZXdSV29ybGQ9ZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCpwaXhlbFJhdGlvKTt0ci51aS5iLmRyYXdJbnN0YW50U2xpY2VzQXNMaW5lcyhjdHgsdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSx2aWV3TFdvcmxkLHZpZXdSV29ybGQsYm91bmRzLmhlaWdodCx0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHMsMik7Y3R4LnJlc3RvcmUoKTticmVhaztjYXNlIHRyLnVpLnRyYWNrcy5EcmF3VHlwZS5CQUNLR1JPVU5EOnRoaXMuZHJhd0JhY2tncm91bmRfKCk7cmV0dXJuO30KK3RyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZHJhd1RyYWNrLmNhbGwodGhpcyx0eXBlKTt9LGRyYXdCYWNrZ3JvdW5kXzpmdW5jdGlvbigpe3ZhciBjdHg9dGhpcy5jb250ZXh0KCk7dmFyIGNhbnZhc0JvdW5kcz1jdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBkcmF3PWZhbHNlO2N0eC5maWxsU3R5bGU9JyNlZWUnO2Zvcih2YXIgaT0wO2k8dGhpcy5jaGlsZHJlbi5sZW5ndGg7KytpKXtpZighKHRoaXMuY2hpbGRyZW5baV1pbnN0YW5jZW9mIHRyLnVpLnRyYWNrcy5UcmFjayl8fCh0aGlzLmNoaWxkcmVuW2ldaW5zdGFuY2VvZiB0ci51aS50cmFja3MuU3BhY2luZ1RyYWNrKSkKIGNvbnRpbnVlO2RyYXc9IWRyYXc7aWYoIWRyYXcpCi1jb250aW51ZTt2YXIgYm91bmRzPXRoaXMuY2hpbGRyZW5baV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y3R4LmZpbGxSZWN0KDAscGl4ZWxSYXRpbyooYm91bmRzLnRvcC1jYW52YXNCb3VuZHMudG9wKSxjdHguY2FudmFzLndpZHRoLHBpeGVsUmF0aW8qYm91bmRzLmhlaWdodCk7fX0sc2V0IHByb2Nlc3MocHJvY2Vzcyl7dGhpcy5wcm9jZXNzQmFzZT1wcm9jZXNzO30sZ2V0IHByb2Nlc3MoKXtyZXR1cm4gdGhpcy5wcm9jZXNzQmFzZTt9LGdldCBldmVudENvbnRhaW5lcigpe3JldHVybiB0aGlzLnByb2Nlc3M7fSxhZGRDb250YWluZXJzVG9UcmFja01hcDpmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKXtjb250YWluZXJUb1RyYWNrTWFwLmFkZENvbnRhaW5lcih0aGlzLnByb2Nlc3MsdGhpcyk7dGhpcy50cmFja3NfLmZvckVhY2goZnVuY3Rpb24odHJhY2spe3RyYWNrLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApO30pO30sYXBwZW5kTWVtb3J5RHVtcFRyYWNrXzpmdW5jdGlvbigpe3ZhciBwcm9jZXNzTWVtb3J5RHVtcHM9dGhpcy5wcm9jZXNzLm1lbW9yeUR1bXBzO2lmKHByb2Nlc3NNZW1vcnlEdW1wcy5sZW5ndGgpe3ZhciBwbWR0PW5ldyB0ci5jLnRyYWNrcy5Qcm9jZXNzTWVtb3J5RHVtcFRyYWNrKHRoaXMudmlld3BvcnRfKTtwbWR0Lm1lbW9yeUR1bXBzPXByb2Nlc3NNZW1vcnlEdW1wczt0aGlzLmFwcGVuZENoaWxkKHBtZHQpO319LGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTpmdW5jdGlvbihsb1dYLGhpV1gsdmlld1BpeFdpZHRoV29ybGQsc2VsZWN0aW9uKXtmdW5jdGlvbiBvblBpY2tIaXQoaW5zdGFudEV2ZW50KXtzZWxlY3Rpb24ucHVzaChpbnN0YW50RXZlbnQpO30KLXRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5wcm9jZXNzQmFzZS5pbnN0YW50RXZlbnRzLGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0YXJ0O30sZnVuY3Rpb24oeCl7cmV0dXJuIHguZHVyYXRpb247fSxsb1dYLGhpV1gsb25QaWNrSGl0LmJpbmQodGhpcykpO3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpO30sYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246ZnVuY3Rpb24od29ybGRYLHdvcmxkTWF4RGlzdCxsb1ksaGlZLHNlbGVjdGlvbil7dGhpcy5hZGRDbG9zZXN0SW5zdGFudEV2ZW50VG9TZWxlY3Rpb24odGhpcy5wcm9jZXNzQmFzZS5pbnN0YW50RXZlbnRzLHdvcmxkWCx3b3JsZE1heERpc3Qsc2VsZWN0aW9uKTt0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO319O3JldHVybntQcm9jZXNzVHJhY2s6UHJvY2Vzc1RyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIEhhY2t5TXVsdGlSb3dUcmFjayh2aWV3cG9ydCxtb2RlbCl7dmFyIG1ydD1uZXcgdHIuYy50cmFja3MuTXVsdGlSb3dUcmFjayh2aWV3cG9ydCk7bXJ0LmhlYWRpbmc9J0ludGVyYWN0aW9ucyc7bXJ0LmJ1aWxkU3ViUm93c189ZnVuY3Rpb24oc2xpY2VzKXtzbGljZXMuc29ydChmdW5jdGlvbih4LHkpe3ZhciByPXgudGl0bGUubG9jYWxlQ29tcGFyZSh5LnRpdGxlKTtpZihyKQotcmV0dXJuIHI7cmV0dXJuIHguc3RhcnQteS5zdGFydDt9KTtyZXR1cm4gdHIuYy50cmFja3MuQXN5bmNTbGljZUdyb3VwVHJhY2sucHJvdG90eXBlLmJ1aWxkU3ViUm93c18uY2FsbCh7fSxzbGljZXMsdHJ1ZSk7fTttcnQuYWRkU3ViVHJhY2tfPWZ1bmN0aW9uKHNsaWNlcyl7dmFyIHRyYWNrPW5ldyB0ci5jLnRyYWNrcy5TbGljZVRyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLnNsaWNlcz1zbGljZXM7dGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7cmV0dXJuIHRyYWNrO307bXJ0LnNldEl0ZW1zVG9Hcm91cChtb2RlbC5pbnRlcmFjdGlvbl9yZWNvcmRzLHtndWlkOnRyLmIuR1VJRC5hbGxvY2F0ZSgpLG1vZGVsOm1vZGVsLGdldFNldHRpbmdzS2V5OmZ1bmN0aW9uKCl7cmV0dXJuIHVuZGVmaW5lZDt9fSk7cmV0dXJuIG1ydDt9Ci12YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7dmFyIEV2ZW50UHJlc2VudGVyPXRyLmMuRXZlbnRQcmVzZW50ZXI7dmFyIE1vZGVsVHJhY2s9dHIuYi51aS5kZWZpbmUoJ21vZGVsLXRyYWNrJyx0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjayk7TW9kZWxUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24odmlld3BvcnQpe3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnbW9kZWwtdHJhY2snKTt2YXIgdHlwZUluZm9zPXRyLmMudHJhY2tzLkhpZ2hsaWdodGVyLmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTt0aGlzLmhpZ2hsaWdodGVyc189dHlwZUluZm9zLm1hcChmdW5jdGlvbih0eXBlSW5mbyl7cmV0dXJuIG5ldyB0eXBlSW5mby5jb25zdHJ1Y3Rvcih2aWV3cG9ydCk7fSk7dGhpcy51cHBlck1vZGVfPWZhbHNlO3RoaXMuYW5ub3RhdGlvblZpZXdzXz1bXTt9LGdldCB1cHBlck1vZGUoKXtyZXR1cm4gdGhpcy51cHBlck1vZGVfO30sc2V0IHVwcGVyTW9kZSh1cHBlck1vZGUpe3RoaXMudXBwZXJNb2RlXz11cHBlck1vZGU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGRldGFjaDpmdW5jdGlvbigpe3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKTt9LGdldCBtb2RlbCgpe3JldHVybiB0aGlzLm1vZGVsXzt9LHNldCBtb2RlbChtb2RlbCl7dGhpcy5tb2RlbF89bW9kZWw7dGhpcy51cGRhdGVDb250ZW50c18oKTt0aGlzLm1vZGVsXy5hZGRFdmVudExpc3RlbmVyKCdhbm5vdGF0aW9uQ2hhbmdlJyx0aGlzLnVwZGF0ZUFubm90YXRpb25zXy5iaW5kKHRoaXMpKTt9LGdldCBoYXNWaXNpYmxlQ29udGVudCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD4wO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD0nJztpZighdGhpcy5tb2RlbF8pCitjb250aW51ZTt2YXIgYm91bmRzPXRoaXMuY2hpbGRyZW5baV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y3R4LmZpbGxSZWN0KDAscGl4ZWxSYXRpbyooYm91bmRzLnRvcC1jYW52YXNCb3VuZHMudG9wKSxjdHguY2FudmFzLndpZHRoLHBpeGVsUmF0aW8qYm91bmRzLmhlaWdodCk7fX0sc2V0IHByb2Nlc3MocHJvY2Vzcyl7dGhpcy5wcm9jZXNzQmFzZT1wcm9jZXNzO30sZ2V0IHByb2Nlc3MoKXtyZXR1cm4gdGhpcy5wcm9jZXNzQmFzZTt9LGdldCBldmVudENvbnRhaW5lcigpe3JldHVybiB0aGlzLnByb2Nlc3M7fSxhZGRDb250YWluZXJzVG9UcmFja01hcDpmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKXtjb250YWluZXJUb1RyYWNrTWFwLmFkZENvbnRhaW5lcih0aGlzLnByb2Nlc3MsdGhpcyk7dGhpcy50cmFja3NfLmZvckVhY2goZnVuY3Rpb24odHJhY2spe3RyYWNrLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApO30pO30sYXBwZW5kTWVtb3J5RHVtcFRyYWNrXzpmdW5jdGlvbigpe3ZhciBwcm9jZXNzTWVtb3J5RHVtcHM9dGhpcy5wcm9jZXNzLm1lbW9yeUR1bXBzO2lmKHByb2Nlc3NNZW1vcnlEdW1wcy5sZW5ndGgpe3ZhciBwbWR0PW5ldyB0ci51aS50cmFja3MuUHJvY2Vzc01lbW9yeUR1bXBUcmFjayh0aGlzLnZpZXdwb3J0Xyk7cG1kdC5tZW1vcnlEdW1wcz1wcm9jZXNzTWVtb3J5RHVtcHM7dGhpcy5hcHBlbmRDaGlsZChwbWR0KTt9fSxhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6ZnVuY3Rpb24obG9XWCxoaVdYLHZpZXdQaXhXaWR0aFdvcmxkLHNlbGVjdGlvbil7ZnVuY3Rpb24gb25QaWNrSGl0KGluc3RhbnRFdmVudCl7c2VsZWN0aW9uLnB1c2goaW5zdGFudEV2ZW50KTt9Cit0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKHRoaXMucHJvY2Vzc0Jhc2UuaW5zdGFudEV2ZW50cyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydDt9LGZ1bmN0aW9uKHgpe3JldHVybiB4LmR1cmF0aW9uO30sbG9XWCxoaVdYLG9uUGlja0hpdC5iaW5kKHRoaXMpKTt0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fSxhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjpmdW5jdGlvbih3b3JsZFgsd29ybGRNYXhEaXN0LGxvWSxoaVksc2VsZWN0aW9uKXt0aGlzLmFkZENsb3Nlc3RJbnN0YW50RXZlbnRUb1NlbGVjdGlvbih0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHMsd29ybGRYLHdvcmxkTWF4RGlzdCxzZWxlY3Rpb24pO3RyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO319O3JldHVybntQcm9jZXNzVHJhY2s6UHJvY2Vzc1RyYWNrfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7dmFyIEV2ZW50UHJlc2VudGVyPXRyLnVpLmIuRXZlbnRQcmVzZW50ZXI7dmFyIE1vZGVsVHJhY2s9dHIudWkuYi5kZWZpbmUoJ21vZGVsLXRyYWNrJyx0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2spO01vZGVsVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgnbW9kZWwtdHJhY2snKTt2YXIgdHlwZUluZm9zPXRyLnVpLnRyYWNrcy5IaWdobGlnaHRlci5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCk7dGhpcy5oaWdobGlnaHRlcnNfPXR5cGVJbmZvcy5tYXAoZnVuY3Rpb24odHlwZUluZm8pe3JldHVybiBuZXcgdHlwZUluZm8uY29uc3RydWN0b3Iodmlld3BvcnQpO30pO3RoaXMudXBwZXJNb2RlXz1mYWxzZTt0aGlzLmFubm90YXRpb25WaWV3c189W107fSxnZXQgdXBwZXJNb2RlKCl7cmV0dXJuIHRoaXMudXBwZXJNb2RlXzt9LHNldCB1cHBlck1vZGUodXBwZXJNb2RlKXt0aGlzLnVwcGVyTW9kZV89dXBwZXJNb2RlO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxkZXRhY2g6ZnVuY3Rpb24oKXt0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRldGFjaC5jYWxsKHRoaXMpO30sZ2V0IG1vZGVsKCl7cmV0dXJuIHRoaXMubW9kZWxfO30sc2V0IG1vZGVsKG1vZGVsKXt0aGlzLm1vZGVsXz1tb2RlbDt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO3RoaXMubW9kZWxfLmFkZEV2ZW50TGlzdGVuZXIoJ2Fubm90YXRpb25DaGFuZ2UnLHRoaXMudXBkYXRlQW5ub3RhdGlvbnNfLmJpbmQodGhpcykpO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjA7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PScnO2lmKCF0aGlzLm1vZGVsXykKIHJldHVybjtpZih0aGlzLnVwcGVyTW9kZV8pCiB0aGlzLnVwZGF0ZUNvbnRlbnRzRm9yVXBwZXJNb2RlXygpO2Vsc2UKLXRoaXMudXBkYXRlQ29udGVudHNGb3JMb3dlck1vZGVfKCk7fSx1cGRhdGVDb250ZW50c0ZvclVwcGVyTW9kZV86ZnVuY3Rpb24oKXt9LHVwZGF0ZUNvbnRlbnRzRm9yTG93ZXJNb2RlXzpmdW5jdGlvbigpe2lmKHRoaXMubW9kZWxfLmludGVyYWN0aW9uX3JlY29yZHMubGVuZ3RoKXt2YXIgbXJ0PW5ldyBIYWNreU11bHRpUm93VHJhY2sodGhpcy52aWV3cG9ydF8sdGhpcy5tb2RlbF8pO3RoaXMuYXBwZW5kQ2hpbGQobXJ0KTt9Ci1pZih0aGlzLm1vZGVsXy5hbGVydHMubGVuZ3RoKXt2YXIgYXQ9bmV3IHRyLmMudHJhY2tzLkFsZXJ0VHJhY2sodGhpcy52aWV3cG9ydF8pO2F0LmFsZXJ0cz10aGlzLm1vZGVsXy5hbGVydHM7dGhpcy5hcHBlbmRDaGlsZChhdCk7fQotaWYodGhpcy5tb2RlbF8uZ2xvYmFsTWVtb3J5RHVtcHMubGVuZ3RoKXt2YXIgZ21kdD1uZXcgdHIuYy50cmFja3MuR2xvYmFsTWVtb3J5RHVtcFRyYWNrKHRoaXMudmlld3BvcnRfKTtnbWR0Lm1lbW9yeUR1bXBzPXRoaXMubW9kZWxfLmdsb2JhbE1lbW9yeUR1bXBzO3RoaXMuYXBwZW5kQ2hpbGQoZ21kdCk7fQotdGhpcy5hcHBlbmRLZXJuZWxUcmFja18oKTt2YXIgcHJvY2Vzc2VzPXRoaXMubW9kZWxfLmdldEFsbFByb2Nlc3NlcygpO3Byb2Nlc3Nlcy5zb3J0KHRyLm1vZGVsLlByb2Nlc3MuY29tcGFyZSk7Zm9yKHZhciBpPTA7aTxwcm9jZXNzZXMubGVuZ3RoOysraSl7dmFyIHByb2Nlc3M9cHJvY2Vzc2VzW2ldO3ZhciB0cmFjaz1uZXcgdHIuYy50cmFja3MuUHJvY2Vzc1RyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLnByb2Nlc3M9cHJvY2VzcztpZighdHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCit0aGlzLnVwZGF0ZUNvbnRlbnRzRm9yTG93ZXJNb2RlXygpO30sdXBkYXRlQ29udGVudHNGb3JVcHBlck1vZGVfOmZ1bmN0aW9uKCl7fSx1cGRhdGVDb250ZW50c0Zvckxvd2VyTW9kZV86ZnVuY3Rpb24oKXtpZih0aGlzLm1vZGVsXy5pbnRlcmFjdGlvbl9yZWNvcmRzLmxlbmd0aCl7dmFyIG1ydD1uZXcgdHIudWkudHJhY2tzLkludGVyYWN0aW9uVHJhY2sodGhpcy52aWV3cG9ydF8pO21ydC5tb2RlbD10aGlzLm1vZGVsXzt0aGlzLmFwcGVuZENoaWxkKG1ydCk7fQoraWYodGhpcy5tb2RlbF8uYWxlcnRzLmxlbmd0aCl7dmFyIGF0PW5ldyB0ci51aS50cmFja3MuQWxlcnRUcmFjayh0aGlzLnZpZXdwb3J0Xyk7YXQuYWxlcnRzPXRoaXMubW9kZWxfLmFsZXJ0czt0aGlzLmFwcGVuZENoaWxkKGF0KTt9CitpZih0aGlzLm1vZGVsXy5nbG9iYWxNZW1vcnlEdW1wcy5sZW5ndGgpe3ZhciBnbWR0PW5ldyB0ci51aS50cmFja3MuR2xvYmFsTWVtb3J5RHVtcFRyYWNrKHRoaXMudmlld3BvcnRfKTtnbWR0Lm1lbW9yeUR1bXBzPXRoaXMubW9kZWxfLmdsb2JhbE1lbW9yeUR1bXBzO3RoaXMuYXBwZW5kQ2hpbGQoZ21kdCk7fQordGhpcy5hcHBlbmREZXZpY2VUcmFja18oKTt0aGlzLmFwcGVuZEtlcm5lbFRyYWNrXygpO3ZhciBwcm9jZXNzZXM9dGhpcy5tb2RlbF8uZ2V0QWxsUHJvY2Vzc2VzKCk7cHJvY2Vzc2VzLnNvcnQodHIubW9kZWwuUHJvY2Vzcy5jb21wYXJlKTtmb3IodmFyIGk9MDtpPHByb2Nlc3Nlcy5sZW5ndGg7KytpKXt2YXIgcHJvY2Vzcz1wcm9jZXNzZXNbaV07dmFyIHRyYWNrPW5ldyB0ci51aS50cmFja3MuUHJvY2Vzc1RyYWNrKHRoaXMudmlld3BvcnQpO3RyYWNrLnByb2Nlc3M9cHJvY2VzcztpZighdHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCiBjb250aW51ZTt0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTt9CiB0aGlzLnZpZXdwb3J0Xy5yZWJ1aWxkRXZlbnRUb1RyYWNrTWFwKCk7dGhpcy52aWV3cG9ydF8ucmVidWlsZENvbnRhaW5lclRvVHJhY2tNYXAoKTtmb3IodmFyIGk9MDtpPHRoaXMuaGlnaGxpZ2h0ZXJzXy5sZW5ndGg7aSsrKXt0aGlzLmhpZ2hsaWdodGVyc19baV0ucHJvY2Vzc01vZGVsKHRoaXMubW9kZWxfKTt9CiB0aGlzLnVwZGF0ZUFubm90YXRpb25zXygpO30sdXBkYXRlQW5ub3RhdGlvbnNfOmZ1bmN0aW9uKCl7dGhpcy5hbm5vdGF0aW9uVmlld3NfPVtdO3ZhciBhbm5vdGF0aW9ucz10aGlzLm1vZGVsXy5nZXRBbGxBbm5vdGF0aW9ucygpO2Zvcih2YXIgaT0wO2k8YW5ub3RhdGlvbnMubGVuZ3RoO2krKyl7dGhpcy5hbm5vdGF0aW9uVmlld3NfLnB1c2goYW5ub3RhdGlvbnNbaV0uZ2V0T3JDcmVhdGVWaWV3KHRoaXMudmlld3BvcnRfKSk7fQpAQCAtMzQ5MiwxNzQgKzQwNDQsOTMgQEAKIHJldHVybjt2YXIgdHJhY2tzPXRoaXMuY2hpbGRyZW47Zm9yKHZhciBpPTA7aTx0cmFja3MubGVuZ3RoOysraSkKIHRyYWNrc1tpXS5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7aWYodGhpcy5pbnN0YW50RXZlbnRzPT09dW5kZWZpbmVkKQogcmV0dXJuO3ZhciB2cD10aGlzLnZpZXdwb3J0Xzt0aGlzLmluc3RhbnRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldil7ZXZlbnRUb1RyYWNrTWFwLmFkZEV2ZW50KGV2LHRoaXMpO30uYmluZCh0aGlzKSk7fSxhZGRDb250YWluZXJzVG9UcmFja01hcDpmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKXt2YXIgdHJhY2tzPXRoaXMuY2hpbGRyZW47Zm9yKHZhciBpPTA7aTx0cmFja3MubGVuZ3RoOysraSkKLXRyYWNrc1tpXS5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrTWFwKTt9LGFwcGVuZEtlcm5lbFRyYWNrXzpmdW5jdGlvbigpe3ZhciBrZXJuZWw9dGhpcy5tb2RlbC5rZXJuZWw7dmFyIHRyYWNrPW5ldyB0ci5jLnRyYWNrcy5LZXJuZWxUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5rZXJuZWw9dGhpcy5tb2RlbC5rZXJuZWw7aWYoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQordHJhY2tzW2ldLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApO30sYXBwZW5kRGV2aWNlVHJhY2tfOmZ1bmN0aW9uKCl7dmFyIGRldmljZT10aGlzLm1vZGVsLmRldmljZTt2YXIgdHJhY2s9bmV3IHRyLnVpLnRyYWNrcy5EZXZpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5kZXZpY2U9dGhpcy5tb2RlbC5kZXZpY2U7aWYoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQorcmV0dXJuO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO30sYXBwZW5kS2VybmVsVHJhY2tfOmZ1bmN0aW9uKCl7dmFyIGtlcm5lbD10aGlzLm1vZGVsLmtlcm5lbDt2YXIgdHJhY2s9bmV3IHRyLnVpLnRyYWNrcy5LZXJuZWxUcmFjayh0aGlzLnZpZXdwb3J0KTt0cmFjay5rZXJuZWw9dGhpcy5tb2RlbC5rZXJuZWw7aWYoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQogcmV0dXJuO3RoaXMuYXBwZW5kQ2hpbGQodHJhY2spO30sZHJhd1RyYWNrOmZ1bmN0aW9uKHR5cGUpe3ZhciBjdHg9dGhpcy5jb250ZXh0KCk7aWYoIXRoaXMubW9kZWxfKQotcmV0dXJuO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBib3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgY2FudmFzQm91bmRzPWN0eC5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y3R4LnNhdmUoKTtjdHgudHJhbnNsYXRlKDAscGl4ZWxSYXRpbyooYm91bmRzLnRvcC1jYW52YXNCb3VuZHMudG9wKSk7dmFyIGR0PXRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHZpZXdMV29ybGQ9ZHQueFZpZXdUb1dvcmxkKDApO3ZhciB2aWV3UldvcmxkPWR0LnhWaWV3VG9Xb3JsZChib3VuZHMud2lkdGgqcGl4ZWxSYXRpbyk7c3dpdGNoKHR5cGUpe2Nhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuR1JJRDp0aGlzLnZpZXdwb3J0LmRyYXdNYWpvck1hcmtMaW5lcyhjdHgpO2N0eC5yZXN0b3JlKCk7cmV0dXJuO2Nhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuRkxPV19BUlJPV1M6aWYodGhpcy5tb2RlbF8uZmxvd0ludGVydmFsVHJlZS5zaXplPT09MCl7Y3R4LnJlc3RvcmUoKTtyZXR1cm47fQotdGhpcy5kcmF3Rmxvd0Fycm93c18odmlld0xXb3JsZCx2aWV3UldvcmxkKTtjdHgucmVzdG9yZSgpO3JldHVybjtjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLklOU1RBTlRfRVZFTlQ6aWYoIXRoaXMubW9kZWxfLmluc3RhbnRFdmVudHN8fHRoaXMubW9kZWxfLmluc3RhbnRFdmVudHMubGVuZ3RoPT09MCkKLWJyZWFrO3RyLmMuZHJhd0luc3RhbnRTbGljZXNBc0xpbmVzKGN0eCx0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLHZpZXdMV29ybGQsdmlld1JXb3JsZCxib3VuZHMuaGVpZ2h0LHRoaXMubW9kZWxfLmluc3RhbnRFdmVudHMsNCk7YnJlYWs7Y2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5NQVJLRVJTOmlmKCF0aGlzLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuaXNFbXB0eSl7dGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmRyYXcoY3R4LHZpZXdMV29ybGQsdmlld1JXb3JsZCk7dGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmRyYXdJbmRpY2F0b3JzKGN0eCx2aWV3TFdvcmxkLHZpZXdSV29ybGQpO30KLWN0eC5yZXN0b3JlKCk7cmV0dXJuO2Nhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuSElHSExJR0hUUzpmb3IodmFyIGk9MDtpPHRoaXMuaGlnaGxpZ2h0ZXJzXy5sZW5ndGg7aSsrKXt0aGlzLmhpZ2hsaWdodGVyc19baV0uZHJhd0hpZ2hsaWdodChjdHgsZHQsdmlld0xXb3JsZCx2aWV3UldvcmxkLGJvdW5kcy5oZWlnaHQpO30KLWN0eC5yZXN0b3JlKCk7cmV0dXJuO2Nhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuQU5OT1RBVElPTlM6Zm9yKHZhciBpPTA7aTx0aGlzLmFubm90YXRpb25WaWV3c18ubGVuZ3RoO2krKyl7dGhpcy5hbm5vdGF0aW9uVmlld3NfW2ldLmRyYXcoY3R4KTt9CityZXR1cm47dmFyIHBpeGVsUmF0aW89d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIGJvdW5kcz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBjYW52YXNCb3VuZHM9Y3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjdHguc2F2ZSgpO2N0eC50cmFuc2xhdGUoMCxwaXhlbFJhdGlvKihib3VuZHMudG9wLWNhbnZhc0JvdW5kcy50b3ApKTt2YXIgZHQ9dGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgdmlld0xXb3JsZD1kdC54Vmlld1RvV29ybGQoMCk7dmFyIHZpZXdSV29ybGQ9ZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCpwaXhlbFJhdGlvKTtzd2l0Y2godHlwZSl7Y2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuR1JJRDp0aGlzLnZpZXdwb3J0LmRyYXdNYWpvck1hcmtMaW5lcyhjdHgpO2N0eC5yZXN0b3JlKCk7cmV0dXJuO2Nhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkZMT1dfQVJST1dTOmlmKHRoaXMubW9kZWxfLmZsb3dJbnRlcnZhbFRyZWUuc2l6ZT09PTApe2N0eC5yZXN0b3JlKCk7cmV0dXJuO30KK3RoaXMuZHJhd0Zsb3dBcnJvd3NfKHZpZXdMV29ybGQsdmlld1JXb3JsZCk7Y3R4LnJlc3RvcmUoKTtyZXR1cm47Y2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuSU5TVEFOVF9FVkVOVDppZighdGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50c3x8dGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cy5sZW5ndGg9PT0wKQorYnJlYWs7dHIudWkuYi5kcmF3SW5zdGFudFNsaWNlc0FzTGluZXMoY3R4LHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0sdmlld0xXb3JsZCx2aWV3UldvcmxkLGJvdW5kcy5oZWlnaHQsdGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cyw0KTticmVhaztjYXNlIHRyLnVpLnRyYWNrcy5EcmF3VHlwZS5NQVJLRVJTOmlmKCF0aGlzLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuaXNFbXB0eSl7dGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmRyYXcoY3R4LHZpZXdMV29ybGQsdmlld1JXb3JsZCk7dGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmRyYXdJbmRpY2F0b3JzKGN0eCx2aWV3TFdvcmxkLHZpZXdSV29ybGQpO30KK2N0eC5yZXN0b3JlKCk7cmV0dXJuO2Nhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkhJR0hMSUdIVFM6Zm9yKHZhciBpPTA7aTx0aGlzLmhpZ2hsaWdodGVyc18ubGVuZ3RoO2krKyl7dGhpcy5oaWdobGlnaHRlcnNfW2ldLmRyYXdIaWdobGlnaHQoY3R4LGR0LHZpZXdMV29ybGQsdmlld1JXb3JsZCxib3VuZHMuaGVpZ2h0KTt9CitjdHgucmVzdG9yZSgpO3JldHVybjtjYXNlIHRyLnVpLnRyYWNrcy5EcmF3VHlwZS5BTk5PVEFUSU9OUzpmb3IodmFyIGk9MDtpPHRoaXMuYW5ub3RhdGlvblZpZXdzXy5sZW5ndGg7aSsrKXt0aGlzLmFubm90YXRpb25WaWV3c19baV0uZHJhdyhjdHgpO30KIGN0eC5yZXN0b3JlKCk7cmV0dXJuO30KLWN0eC5yZXN0b3JlKCk7dHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRyYXdUcmFjay5jYWxsKHRoaXMsdHlwZSk7fSxkcmF3Rmxvd0Fycm93c186ZnVuY3Rpb24odmlld0xXb3JsZCx2aWV3UldvcmxkKXt2YXIgY3R4PXRoaXMuY29udGV4dCgpO3ZhciBkdD10aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO2R0LmFwcGx5VHJhbnNmb3JtVG9DYW52YXMoY3R4KTt2YXIgcGl4V2lkdGg9ZHQueFZpZXdWZWN0b3JUb1dvcmxkKDEpO2N0eC5zdHJva2VTdHlsZT0ncmdiYSgwLCAwLCAwLCAwLjQpJztjdHguZmlsbFN0eWxlPSdyZ2JhKDAsIDAsIDAsIDAuNCknO2N0eC5saW5lV2lkdGg9cGl4V2lkdGg+MS4wPzE6cGl4V2lkdGg7dmFyIGV2ZW50cz10aGlzLm1vZGVsXy5mbG93SW50ZXJ2YWxUcmVlLmZpbmRJbnRlcnNlY3Rpb24odmlld0xXb3JsZCx2aWV3UldvcmxkKTt2YXIgb25seUhpZ2hsaWdodGVkPSF0aGlzLnZpZXdwb3J0LnNob3dGbG93RXZlbnRzO3ZhciBjYW52YXNCb3VuZHM9Y3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtmb3IodmFyIGk9MDtpPGV2ZW50cy5sZW5ndGg7KytpKXtpZihvbmx5SGlnaGxpZ2h0ZWQmJmV2ZW50c1tpXS5zZWxlY3Rpb25TdGF0ZSE9PVNlbGVjdGlvblN0YXRlLlNFTEVDVEVEJiZldmVudHNbaV0uc2VsZWN0aW9uU3RhdGUhPT1TZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCkKK2N0eC5yZXN0b3JlKCk7dHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kcmF3VHJhY2suY2FsbCh0aGlzLHR5cGUpO30sZHJhd0Zsb3dBcnJvd3NfOmZ1bmN0aW9uKHZpZXdMV29ybGQsdmlld1JXb3JsZCl7dmFyIGN0eD10aGlzLmNvbnRleHQoKTt2YXIgZHQ9dGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTtkdC5hcHBseVRyYW5zZm9ybVRvQ2FudmFzKGN0eCk7dmFyIHBpeFdpZHRoPWR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTtjdHguc3Ryb2tlU3R5bGU9J3JnYmEoMCwgMCwgMCwgMC40KSc7Y3R4LmZpbGxTdHlsZT0ncmdiYSgwLCAwLCAwLCAwLjQpJztjdHgubGluZVdpZHRoPXBpeFdpZHRoPjEuMD8xOnBpeFdpZHRoO3ZhciBldmVudHM9dGhpcy5tb2RlbF8uZmxvd0ludGVydmFsVHJlZS5maW5kSW50ZXJzZWN0aW9uKHZpZXdMV29ybGQsdmlld1JXb3JsZCk7dmFyIG9ubHlIaWdobGlnaHRlZD0hdGhpcy52aWV3cG9ydC5zaG93Rmxvd0V2ZW50czt2YXIgY2FudmFzQm91bmRzPWN0eC5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Zm9yKHZhciBpPTA7aTxldmVudHMubGVuZ3RoOysraSl7aWYob25seUhpZ2hsaWdodGVkJiZldmVudHNbaV0uc2VsZWN0aW9uU3RhdGUhPT1TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCYmZXZlbnRzW2ldLnNlbGVjdGlvblN0YXRlIT09U2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQpCiBjb250aW51ZTt0aGlzLmRyYXdGbG93QXJyb3dfKGN0eCxldmVudHNbaV0sY2FudmFzQm91bmRzLHBpeFdpZHRoKTt9fSxkcmF3Rmxvd0Fycm93XzpmdW5jdGlvbihjdHgsZmxvd0V2ZW50LGNhbnZhc0JvdW5kcyxwaXhXaWR0aCl7dmFyIHBpeGVsUmF0aW89d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIHN0YXJ0VHJhY2s9dGhpcy52aWV3cG9ydC50cmFja0ZvckV2ZW50KGZsb3dFdmVudC5zdGFydFNsaWNlKTt2YXIgZW5kVHJhY2s9dGhpcy52aWV3cG9ydC50cmFja0ZvckV2ZW50KGZsb3dFdmVudC5lbmRTbGljZSk7aWYoc3RhcnRUcmFjaz09PXVuZGVmaW5lZHx8ZW5kVHJhY2s9PT11bmRlZmluZWQpCiByZXR1cm47dmFyIHN0YXJ0Qm91bmRzPXN0YXJ0VHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGVuZEJvdW5kcz1lbmRUcmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihmbG93RXZlbnQuc2VsZWN0aW9uU3RhdGU9PVNlbGVjdGlvblN0YXRlLlNFTEVDVEVEKXtjdHguc2hhZG93Qmx1cj0xO2N0eC5zaGFkb3dDb2xvcj0ncmVkJztjdHguc2hhZG93T2Zmc2V0eT0yO2N0eC5zdHJva2VTdHlsZT0ncmVkJzt9ZWxzZSBpZihmbG93RXZlbnQuc2VsZWN0aW9uU3RhdGU9PVNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEKXtjdHguc2hhZG93Qmx1cj0xO2N0eC5zaGFkb3dDb2xvcj0ncmVkJztjdHguc2hhZG93T2Zmc2V0eT0yO2N0eC5zdHJva2VTdHlsZT0ncmVkJzt9ZWxzZSBpZihmbG93RXZlbnQuc2VsZWN0aW9uU3RhdGU9PVNlbGVjdGlvblN0YXRlLkRJTU1FRCl7Y3R4LnNoYWRvd0JsdXI9MDtjdHguc2hhZG93T2Zmc2V0WD0wO2N0eC5zdHJva2VTdHlsZT0ncmdiYSgwLCAwLCAwLCAwLjIpJzt9ZWxzZXt2YXIgaGFzQm9vc3Q9ZmFsc2U7dmFyIHN0YXJ0U2xpY2U9Zmxvd0V2ZW50LnN0YXJ0U2xpY2U7aGFzQm9vc3R8PXN0YXJ0U2xpY2Uuc2VsZWN0aW9uU3RhdGU9PT1TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtoYXNCb29zdHw9c3RhcnRTbGljZS5zZWxlY3Rpb25TdGF0ZT09PVNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEO3ZhciBlbmRTbGljZT1mbG93RXZlbnQuZW5kU2xpY2U7aGFzQm9vc3R8PWVuZFNsaWNlLnNlbGVjdGlvblN0YXRlPT09U2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7aGFzQm9vc3R8PWVuZFNsaWNlLnNlbGVjdGlvblN0YXRlPT09U2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQ7aWYoaGFzQm9vc3Qpe2N0eC5zaGFkb3dCbHVyPTE7Y3R4LnNoYWRvd0NvbG9yPSdyZ2JhKDI1NSwgMCwgMCwgMC40KSc7Y3R4LnNoYWRvd09mZnNldHk9MjtjdHguc3Ryb2tlU3R5bGU9J3JnYmEoMjU1LCAwLCAwLCAwLjQpJzt9ZWxzZXtjdHguc2hhZG93Qmx1cj0wO2N0eC5zaGFkb3dPZmZzZXRYPTA7Y3R4LnN0cm9rZVN0eWxlPSdyZ2JhKDAsIDAsIDAsIDAuNCknO319CiB2YXIgc3RhcnRTaXplPXN0YXJ0Qm91bmRzLmxlZnQrc3RhcnRCb3VuZHMudG9wKwogc3RhcnRCb3VuZHMuYm90dG9tK3N0YXJ0Qm91bmRzLnJpZ2h0O3ZhciBlbmRTaXplPWVuZEJvdW5kcy5sZWZ0K2VuZEJvdW5kcy50b3ArCiBlbmRCb3VuZHMuYm90dG9tK2VuZEJvdW5kcy5yaWdodDtpZihzdGFydFNpemU9PT0wJiZlbmRTaXplPT09MCkKIHJldHVybjt2YXIgc3RhcnRZPXRoaXMuY2FsY3VsYXRlVHJhY2tZXyhzdGFydFRyYWNrLGNhbnZhc0JvdW5kcyk7dmFyIGVuZFk9dGhpcy5jYWxjdWxhdGVUcmFja1lfKGVuZFRyYWNrLGNhbnZhc0JvdW5kcyk7dmFyIHBpeGVsU3RhcnRZPXBpeGVsUmF0aW8qc3RhcnRZO3ZhciBwaXhlbEVuZFk9cGl4ZWxSYXRpbyplbmRZO3ZhciBoYWxmPShmbG93RXZlbnQuZW5kLWZsb3dFdmVudC5zdGFydCkvMjtjdHguYmVnaW5QYXRoKCk7Y3R4Lm1vdmVUbyhmbG93RXZlbnQuc3RhcnQscGl4ZWxTdGFydFkpO2N0eC5iZXppZXJDdXJ2ZVRvKGZsb3dFdmVudC5zdGFydCtoYWxmLHBpeGVsU3RhcnRZLGZsb3dFdmVudC5zdGFydCtoYWxmLHBpeGVsRW5kWSxmbG93RXZlbnQuZW5kLHBpeGVsRW5kWSk7Y3R4LnN0cm9rZSgpO3ZhciBhcnJvd1dpZHRoPTUqcGl4V2lkdGgqcGl4ZWxSYXRpbzt2YXIgZGlzdGFuY2U9Zmxvd0V2ZW50LmVuZC1mbG93RXZlbnQuc3RhcnQ7aWYoZGlzdGFuY2U8PSgyKmFycm93V2lkdGgpKQotcmV0dXJuO3ZhciB0aXBYPWZsb3dFdmVudC5lbmQ7dmFyIHRpcFk9cGl4ZWxFbmRZO3ZhciBhcnJvd0hlaWdodD0oZW5kQm91bmRzLmhlaWdodC80KSpwaXhlbFJhdGlvO3RyLmMuZHJhd1RyaWFuZ2xlKGN0eCx0aXBYLHRpcFksdGlwWC1hcnJvd1dpZHRoLHRpcFktYXJyb3dIZWlnaHQsdGlwWC1hcnJvd1dpZHRoLHRpcFkrYXJyb3dIZWlnaHQpO2N0eC5maWxsKCk7fSxjYWxjdWxhdGVUcmFja1lfOmZ1bmN0aW9uKHRyYWNrLGNhbnZhc0JvdW5kcyl7dmFyIGJvdW5kcz10cmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgc2l6ZT1ib3VuZHMubGVmdCtib3VuZHMudG9wK2JvdW5kcy5ib3R0b20rYm91bmRzLnJpZ2h0O2lmKHNpemU9PT0wKQorcmV0dXJuO3ZhciB0aXBYPWZsb3dFdmVudC5lbmQ7dmFyIHRpcFk9cGl4ZWxFbmRZO3ZhciBhcnJvd0hlaWdodD0oZW5kQm91bmRzLmhlaWdodC80KSpwaXhlbFJhdGlvO3RyLnVpLmIuZHJhd1RyaWFuZ2xlKGN0eCx0aXBYLHRpcFksdGlwWC1hcnJvd1dpZHRoLHRpcFktYXJyb3dIZWlnaHQsdGlwWC1hcnJvd1dpZHRoLHRpcFkrYXJyb3dIZWlnaHQpO2N0eC5maWxsKCk7fSxjYWxjdWxhdGVUcmFja1lfOmZ1bmN0aW9uKHRyYWNrLGNhbnZhc0JvdW5kcyl7dmFyIGJvdW5kcz10cmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgc2l6ZT1ib3VuZHMubGVmdCtib3VuZHMudG9wK2JvdW5kcy5ib3R0b20rYm91bmRzLnJpZ2h0O2lmKHNpemU9PT0wKQogcmV0dXJuIHRoaXMuY2FsY3VsYXRlVHJhY2tZXyh0cmFjay5wYXJlbnROb2RlLGNhbnZhc0JvdW5kcyk7cmV0dXJuIGJvdW5kcy50b3AtY2FudmFzQm91bmRzLnRvcCsoYm91bmRzLmhlaWdodC8yKTt9LGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTpmdW5jdGlvbihsb1dYLGhpV1gsdmlld1BpeFdpZHRoV29ybGQsc2VsZWN0aW9uKXtmdW5jdGlvbiBvblBpY2tIaXQoaW5zdGFudEV2ZW50KXtzZWxlY3Rpb24ucHVzaChpbnN0YW50RXZlbnQpO30KLXRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydDt9LGZ1bmN0aW9uKHgpe3JldHVybiB4LmR1cmF0aW9uO30sbG9XWCxoaVdYLG9uUGlja0hpdC5iaW5kKHRoaXMpKTt0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9LGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKHdvcmxkWCx3b3JsZE1heERpc3QsbG9ZLGhpWSxzZWxlY3Rpb24pe3RoaXMuYWRkQ2xvc2VzdEluc3RhbnRFdmVudFRvU2VsZWN0aW9uKHRoaXMubW9kZWxfLmluc3RhbnRFdmVudHMsd29ybGRYLHdvcmxkTWF4RGlzdCxzZWxlY3Rpb24pO3RyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fX07cmV0dXJue01vZGVsVHJhY2s6TW9kZWxUcmFja307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsZnVuY3Rpb24oKXt2YXIgUnVsZXJUcmFjaz10ci5iLnVpLmRlZmluZSgncnVsZXItdHJhY2snLHRyLmMudHJhY2tzLkhlYWRpbmdUcmFjayk7dmFyIGxvZ09mMTA9TWF0aC5sb2coMTApO2Z1bmN0aW9uIGxvZzEwKHgpe3JldHVybiBNYXRoLmxvZyh4KS9sb2dPZjEwO30KLVJ1bGVyVHJhY2sucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbih2aWV3cG9ydCl7dHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsdmlld3BvcnQpO3RoaXMuY2xhc3NMaXN0LmFkZCgncnVsZXItdHJhY2snKTt0aGlzLnN0cmluZ3Nfc2Vjc189W107dGhpcy5zdHJpbmdzX21zZWNzXz1bXTt0aGlzLnN0cmluZ3NfdXNlY3NfPVtdO3RoaXMuc3RyaW5nc19uc2Vjc189W107dGhpcy52aWV3cG9ydENoYW5nZV89dGhpcy52aWV3cG9ydENoYW5nZV8uYmluZCh0aGlzKTt2aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMudmlld3BvcnRDaGFuZ2VfKTt9LGRldGFjaDpmdW5jdGlvbigpe3RyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyk7dGhpcy52aWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMudmlld3BvcnRDaGFuZ2VfKTt9LHZpZXdwb3J0Q2hhbmdlXzpmdW5jdGlvbigpe2lmKHRoaXMudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5pc0VtcHR5KQordHIuYi5pdGVyYXRlT3ZlckludGVyc2VjdGluZ0ludGVydmFscyh0aGlzLm1vZGVsXy5pbnN0YW50RXZlbnRzLGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0YXJ0O30sZnVuY3Rpb24oeCl7cmV0dXJuIHguZHVyYXRpb247fSxsb1dYLGhpV1gsb25QaWNrSGl0LmJpbmQodGhpcykpO3RyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9LGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOmZ1bmN0aW9uKHdvcmxkWCx3b3JsZE1heERpc3QsbG9ZLGhpWSxzZWxlY3Rpb24pe3RoaXMuYWRkQ2xvc2VzdEluc3RhbnRFdmVudFRvU2VsZWN0aW9uKHRoaXMubW9kZWxfLmluc3RhbnRFdmVudHMsd29ybGRYLHdvcmxkTWF4RGlzdCxzZWxlY3Rpb24pO3RyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO319O3JldHVybntNb2RlbFRyYWNrOk1vZGVsVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIudWkudHJhY2tzJyxmdW5jdGlvbigpe3ZhciBSdWxlclRyYWNrPXRyLnVpLmIuZGVmaW5lKCdydWxlci10cmFjaycsdHIudWkudHJhY2tzLlRyYWNrKTt2YXIgbG9nT2YxMD1NYXRoLmxvZygxMCk7ZnVuY3Rpb24gbG9nMTAoeCl7cmV0dXJuIE1hdGgubG9nKHgpL2xvZ09mMTA7fQorUnVsZXJUcmFjay5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKHZpZXdwb3J0KXt0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyx2aWV3cG9ydCk7dGhpcy5jbGFzc0xpc3QuYWRkKCdydWxlci10cmFjaycpO3RoaXMuc3RyaW5nc19zZWNzXz1bXTt0aGlzLnN0cmluZ3NfbXNlY3NfPVtdO3RoaXMuc3RyaW5nc191c2Vjc189W107dGhpcy5zdHJpbmdzX25zZWNzXz1bXTt0aGlzLnZpZXdwb3J0Q2hhbmdlXz10aGlzLnZpZXdwb3J0Q2hhbmdlXy5iaW5kKHRoaXMpO3ZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdGhpcy52aWV3cG9ydENoYW5nZV8pO3ZhciBoZWFkaW5nPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWhlYWRpbmcnKTtoZWFkaW5nLmFycm93VmlzaWJsZT1mYWxzZTt0aGlzLmFwcGVuZENoaWxkKGhlYWRpbmcpO30sZGV0YWNoOmZ1bmN0aW9uKCl7dHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKTt0aGlzLnZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdGhpcy52aWV3cG9ydENoYW5nZV8pO30sdmlld3BvcnRDaGFuZ2VfOmZ1bmN0aW9uKCl7aWYodGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmlzRW1wdHkpCiB0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ3RhbGwtbW9kZScpO2Vsc2UKLXRoaXMuY2xhc3NMaXN0LmFkZCgndGFsbC1tb2RlJyk7fSxkcmF3OmZ1bmN0aW9uKHR5cGUsdmlld0xXb3JsZCx2aWV3UldvcmxkKXtzd2l0Y2godHlwZSl7Y2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5HUklEOnRoaXMuZHJhd0dyaWRfKHZpZXdMV29ybGQsdmlld1JXb3JsZCk7YnJlYWs7Y2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5NQVJLRVJTOmlmKCF0aGlzLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuaXNFbXB0eSkKK3RoaXMuY2xhc3NMaXN0LmFkZCgndGFsbC1tb2RlJyk7fSxkcmF3OmZ1bmN0aW9uKHR5cGUsdmlld0xXb3JsZCx2aWV3UldvcmxkKXtzd2l0Y2godHlwZSl7Y2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuR1JJRDp0aGlzLmRyYXdHcmlkXyh2aWV3TFdvcmxkLHZpZXdSV29ybGQpO2JyZWFrO2Nhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLk1BUktFUlM6aWYoIXRoaXMudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5pc0VtcHR5KQogdGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmRyYXcodGhpcy5jb250ZXh0KCksdmlld0xXb3JsZCx2aWV3UldvcmxkKTticmVhazt9fSxkcmF3R3JpZF86ZnVuY3Rpb24odmlld0xXb3JsZCx2aWV3UldvcmxkKXt2YXIgY3R4PXRoaXMuY29udGV4dCgpO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBjYW52YXNCb3VuZHM9Y3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgdHJhY2tCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgd2lkdGg9Y2FudmFzQm91bmRzLndpZHRoKnBpeGVsUmF0aW87dmFyIGhlaWdodD10cmFja0JvdW5kcy5oZWlnaHQqcGl4ZWxSYXRpbzt2YXIgaGFzSW50ZXJlc3RSYW5nZT0hdGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmlzRW1wdHk7dmFyIHJ1bGVySGVpZ2h0PWhhc0ludGVyZXN0UmFuZ2U/KGhlaWdodCoyKS81OmhlaWdodDt2YXIgdnA9dGhpcy52aWV3cG9ydDt2YXIgZHQ9dnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIGlkZWFsTWFqb3JNYXJrRGlzdGFuY2VQaXg9MTUwKnBpeGVsUmF0aW87dmFyIGlkZWFsTWFqb3JNYXJrRGlzdGFuY2VXb3JsZD1kdC54Vmlld1ZlY3RvclRvV29ybGQoaWRlYWxNYWpvck1hcmtEaXN0YW5jZVBpeCk7dmFyIG1ham9yTWFya0Rpc3RhbmNlV29ybGQ7dmFyIGNvbnNlcnZhdGl2ZUd1ZXNzPU1hdGgucG93KDEwLE1hdGguY2VpbChsb2cxMChpZGVhbE1ham9yTWFya0Rpc3RhbmNlV29ybGQpKSk7dmFyIGRpdmlzb3JzPVsxMCw1LDIsMV07Zm9yKHZhciBpPTA7aTxkaXZpc29ycy5sZW5ndGg7KytpKXt2YXIgdGlnaHRlbmVkR3Vlc3M9Y29uc2VydmF0aXZlR3Vlc3MvZGl2aXNvcnNbaV07aWYoZHQueFdvcmxkVmVjdG9yVG9WaWV3KHRpZ2h0ZW5lZEd1ZXNzKTxpZGVhbE1ham9yTWFya0Rpc3RhbmNlUGl4KQogY29udGludWU7bWFqb3JNYXJrRGlzdGFuY2VXb3JsZD1jb25zZXJ2YXRpdmVHdWVzcy9kaXZpc29yc1tpLTFdO2JyZWFrO30KIHZhciB1bml0O3ZhciB1bml0RGl2aXNvcjt2YXIgdGlja0xhYmVscz11bmRlZmluZWQ7aWYobWFqb3JNYXJrRGlzdGFuY2VXb3JsZDwwLjAwMDEpe3VuaXQ9J25zJzt1bml0RGl2aXNvcj0wLjAwMDAwMTt0aWNrTGFiZWxzPXRoaXMuc3RyaW5nc19uc2Vjc187fWVsc2UgaWYobWFqb3JNYXJrRGlzdGFuY2VXb3JsZDwwLjEpe3VuaXQ9J3VzJzt1bml0RGl2aXNvcj0wLjAwMTt0aWNrTGFiZWxzPXRoaXMuc3RyaW5nc191c2Vjc187fWVsc2UgaWYobWFqb3JNYXJrRGlzdGFuY2VXb3JsZDwxMDApe3VuaXQ9J21zJzt1bml0RGl2aXNvcj0xO3RpY2tMYWJlbHM9dGhpcy5zdHJpbmdzX21zZWNzXzt9ZWxzZXt1bml0PSdzJzt1bml0RGl2aXNvcj0xMDAwO3RpY2tMYWJlbHM9dGhpcy5zdHJpbmdzX3NlY3NfO30KIHZhciBudW1UaWNrc1Blck1ham9yPTU7dmFyIG1pbm9yTWFya0Rpc3RhbmNlV29ybGQ9bWFqb3JNYXJrRGlzdGFuY2VXb3JsZC9udW1UaWNrc1Blck1ham9yO3ZhciBtaW5vck1hcmtEaXN0YW5jZVB4PWR0LnhXb3JsZFZlY3RvclRvVmlldyhtaW5vck1hcmtEaXN0YW5jZVdvcmxkKTt2YXIgZmlyc3RNYWpvck1hcms9TWF0aC5mbG9vcih2aWV3TFdvcmxkL21ham9yTWFya0Rpc3RhbmNlV29ybGQpKm1ham9yTWFya0Rpc3RhbmNlV29ybGQ7dmFyIG1pbm9yVGlja0g9TWF0aC5mbG9vcihydWxlckhlaWdodCowLjI1KTtjdHguc2F2ZSgpO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO2N0eC5saW5lV2lkdGg9TWF0aC5yb3VuZChwaXhlbFJhdGlvKTt2YXIgY3Jpc3BMaW5lQ29ycmVjdGlvbj0oY3R4LmxpbmVXaWR0aCUyKS8yO2N0eC50cmFuc2xhdGUoY3Jpc3BMaW5lQ29ycmVjdGlvbiwtY3Jpc3BMaW5lQ29ycmVjdGlvbik7Y3R4LmZpbGxTdHlsZT0ncmdiKDAsIDAsIDApJztjdHguc3Ryb2tlU3R5bGU9J3JnYigwLCAwLCAwKSc7Y3R4LnRleHRBbGlnbj0nbGVmdCc7Y3R4LnRleHRCYXNlbGluZT0ndG9wJztjdHguZm9udD0oOSpwaXhlbFJhdGlvKSsncHggc2Fucy1zZXJpZic7dnAubWFqb3JNYXJrUG9zaXRpb25zPVtdO2N0eC5iZWdpblBhdGgoKTtmb3IodmFyIGN1clg9Zmlyc3RNYWpvck1hcms7Y3VyWDx2aWV3UldvcmxkO2N1clgrPW1ham9yTWFya0Rpc3RhbmNlV29ybGQpe3ZhciBjdXJYVmlldz1NYXRoLmZsb29yKGR0LnhXb3JsZFRvVmlldyhjdXJYKSk7dmFyIHVuaXRWYWx1ZT1jdXJYL3VuaXREaXZpc29yO3ZhciByb3VuZGVkVW5pdFZhbHVlPU1hdGgucm91bmQodW5pdFZhbHVlKjEwMDAwMCkvMTAwMDAwO2lmKCF0aWNrTGFiZWxzW3JvdW5kZWRVbml0VmFsdWVdKQotdGlja0xhYmVsc1tyb3VuZGVkVW5pdFZhbHVlXT1yb3VuZGVkVW5pdFZhbHVlKycgJyt1bml0O2N0eC5maWxsVGV4dCh0aWNrTGFiZWxzW3JvdW5kZWRVbml0VmFsdWVdLGN1clhWaWV3KygyKnBpeGVsUmF0aW8pLDApO3ZwLm1ham9yTWFya1Bvc2l0aW9ucy5wdXNoKGN1clhWaWV3KTt0ci5jLmRyYXdMaW5lKGN0eCxjdXJYVmlldywwLGN1clhWaWV3LHJ1bGVySGVpZ2h0KTtmb3IodmFyIGk9MTtpPG51bVRpY2tzUGVyTWFqb3I7KytpKXt2YXIgeFZpZXc9TWF0aC5mbG9vcihjdXJYVmlldyttaW5vck1hcmtEaXN0YW5jZVB4KmkpO3RyLmMuZHJhd0xpbmUoY3R4LHhWaWV3LHJ1bGVySGVpZ2h0LW1pbm9yVGlja0gseFZpZXcscnVsZXJIZWlnaHQpO319Ci1jdHguc3Ryb2tlU3R5bGU9J3JnYigwLCAwLCAwKSc7dHIuYy5kcmF3TGluZShjdHgsMCxoZWlnaHQsd2lkdGgsaGVpZ2h0KTtjdHguc3Ryb2tlKCk7aWYoIWhhc0ludGVyZXN0UmFuZ2UpCi1yZXR1cm47dHIuYy5kcmF3TGluZShjdHgsMCxydWxlckhlaWdodCx3aWR0aCxydWxlckhlaWdodCk7Y3R4LnN0cm9rZSgpO3ZhciBkaXNwbGF5RGlzdGFuY2U7dmFyIGRpc3BsYXlUZXh0Q29sb3I9J3JnYigwLDAsMCknO3ZhciBhcnJvd1NwYWNpbmc9MTAqcGl4ZWxSYXRpbzt2YXIgYXJyb3dDb2xvcj0ncmdiKDEyOCwxMjEsMTIxKSc7dmFyIGFycm93UG9zWT1ydWxlckhlaWdodCoxLjc1O3ZhciBhcnJvd1dpZHRoVmlldz0zKnBpeGVsUmF0aW87dmFyIGFycm93TGVuZ3RoVmlldz0xMCpwaXhlbFJhdGlvO3ZhciBzcGFjZUZvckFycm93c1ZpZXc9MiooYXJyb3dXaWR0aFZpZXcrYXJyb3dTcGFjaW5nKTtjdHgudGV4dEJhc2VsaW5lPSdtaWRkbGUnO2N0eC5mb250PSgxNCpwaXhlbFJhdGlvKSsncHggc2Fucy1zZXJpZic7dmFyIHRleHRQb3NZPWFycm93UG9zWTt2YXIgaW50ZXJlc3RSYW5nZT12cC5pbnRlcmVzdFJhbmdlO2lmKGludGVyZXN0UmFuZ2UucmFuZ2U9PT0wKXt2YXIgbWFya2VyV29ybGQ9aW50ZXJlc3RSYW5nZS5taW47dmFyIG1hcmtlclZpZXc9ZHQueFdvcmxkVG9WaWV3KG1hcmtlcldvcmxkKTt2YXIgZGlzcGxheVZhbHVlPW1hcmtlcldvcmxkL3VuaXREaXZpc29yO2Rpc3BsYXlWYWx1ZT1NYXRoLmFicygoTWF0aC5yb3VuZChkaXNwbGF5VmFsdWUqMTAwMCkvMTAwMCkpO3ZhciB0ZXh0VG9EcmF3PWRpc3BsYXlWYWx1ZSsnICcrdW5pdDt2YXIgdGV4dExlZnRWaWV3PW1hcmtlclZpZXcrNCpwaXhlbFJhdGlvO3ZhciB0ZXh0V2lkdGhWaWV3PWN0eC5tZWFzdXJlVGV4dCh0ZXh0VG9EcmF3KS53aWR0aDtpZih0ZXh0TGVmdFZpZXcrdGV4dFdpZHRoVmlldz53aWR0aCkKK3RpY2tMYWJlbHNbcm91bmRlZFVuaXRWYWx1ZV09cm91bmRlZFVuaXRWYWx1ZSsnICcrdW5pdDtjdHguZmlsbFRleHQodGlja0xhYmVsc1tyb3VuZGVkVW5pdFZhbHVlXSxjdXJYVmlldysoMipwaXhlbFJhdGlvKSwwKTt2cC5tYWpvck1hcmtQb3NpdGlvbnMucHVzaChjdXJYVmlldyk7dHIudWkuYi5kcmF3TGluZShjdHgsY3VyWFZpZXcsMCxjdXJYVmlldyxydWxlckhlaWdodCk7Zm9yKHZhciBpPTE7aTxudW1UaWNrc1Blck1ham9yOysraSl7dmFyIHhWaWV3PU1hdGguZmxvb3IoY3VyWFZpZXcrbWlub3JNYXJrRGlzdGFuY2VQeCppKTt0ci51aS5iLmRyYXdMaW5lKGN0eCx4VmlldyxydWxlckhlaWdodC1taW5vclRpY2tILHhWaWV3LHJ1bGVySGVpZ2h0KTt9fQorY3R4LnN0cm9rZVN0eWxlPSdyZ2IoMCwgMCwgMCknO3RyLnVpLmIuZHJhd0xpbmUoY3R4LDAsaGVpZ2h0LHdpZHRoLGhlaWdodCk7Y3R4LnN0cm9rZSgpO2lmKCFoYXNJbnRlcmVzdFJhbmdlKQorcmV0dXJuO3RyLnVpLmIuZHJhd0xpbmUoY3R4LDAscnVsZXJIZWlnaHQsd2lkdGgscnVsZXJIZWlnaHQpO2N0eC5zdHJva2UoKTt2YXIgZGlzcGxheURpc3RhbmNlO3ZhciBkaXNwbGF5VGV4dENvbG9yPSdyZ2IoMCwwLDApJzt2YXIgYXJyb3dTcGFjaW5nPTEwKnBpeGVsUmF0aW87dmFyIGFycm93Q29sb3I9J3JnYigxMjgsMTIxLDEyMSknO3ZhciBhcnJvd1Bvc1k9cnVsZXJIZWlnaHQqMS43NTt2YXIgYXJyb3dXaWR0aFZpZXc9MypwaXhlbFJhdGlvO3ZhciBhcnJvd0xlbmd0aFZpZXc9MTAqcGl4ZWxSYXRpbzt2YXIgc3BhY2VGb3JBcnJvd3NWaWV3PTIqKGFycm93V2lkdGhWaWV3K2Fycm93U3BhY2luZyk7Y3R4LnRleHRCYXNlbGluZT0nbWlkZGxlJztjdHguZm9udD0oMTQqcGl4ZWxSYXRpbykrJ3B4IHNhbnMtc2VyaWYnO3ZhciB0ZXh0UG9zWT1hcnJvd1Bvc1k7dmFyIGludGVyZXN0UmFuZ2U9dnAuaW50ZXJlc3RSYW5nZTtpZihpbnRlcmVzdFJhbmdlLnJhbmdlPT09MCl7dmFyIG1hcmtlcldvcmxkPWludGVyZXN0UmFuZ2UubWluO3ZhciBtYXJrZXJWaWV3PWR0LnhXb3JsZFRvVmlldyhtYXJrZXJXb3JsZCk7dmFyIGRpc3BsYXlWYWx1ZT1tYXJrZXJXb3JsZC91bml0RGl2aXNvcjtkaXNwbGF5VmFsdWU9TWF0aC5hYnMoKE1hdGgucm91bmQoZGlzcGxheVZhbHVlKjEwMDApLzEwMDApKTt2YXIgdGV4dFRvRHJhdz1kaXNwbGF5VmFsdWUrJyAnK3VuaXQ7dmFyIHRleHRMZWZ0Vmlldz1tYXJrZXJWaWV3KzQqcGl4ZWxSYXRpbzt2YXIgdGV4dFdpZHRoVmlldz1jdHgubWVhc3VyZVRleHQodGV4dFRvRHJhdykud2lkdGg7aWYodGV4dExlZnRWaWV3K3RleHRXaWR0aFZpZXc+d2lkdGgpCiB0ZXh0TGVmdFZpZXc9bWFya2VyVmlldy00KnBpeGVsUmF0aW8tdGV4dFdpZHRoVmlldztjdHguZmlsbFN0eWxlPWRpc3BsYXlUZXh0Q29sb3I7Y3R4LmZpbGxUZXh0KHRleHRUb0RyYXcsdGV4dExlZnRWaWV3LHRleHRQb3NZKTtyZXR1cm47fQogdmFyIGxlZnRNYXJrZXI9aW50ZXJlc3RSYW5nZS5taW47dmFyIHJpZ2h0TWFya2VyPWludGVyZXN0UmFuZ2UubWF4O3ZhciBsZWZ0TWFya2VyVmlldz1kdC54V29ybGRUb1ZpZXcobGVmdE1hcmtlcik7dmFyIHJpZ2h0TWFya2VyVmlldz1kdC54V29ybGRUb1ZpZXcocmlnaHRNYXJrZXIpO3ZhciBkaXN0YW5jZUJldHdlZW5NYXJrZXJzPWludGVyZXN0UmFuZ2UucmFuZ2U7dmFyIGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3PWR0LnhXb3JsZFZlY3RvclRvVmlldyhkaXN0YW5jZUJldHdlZW5NYXJrZXJzKTt2YXIgcG9zaXRpb25Jbk1pZGRsZU9mTWFya2Vyc1ZpZXc9bGVmdE1hcmtlclZpZXcrKGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3LzIpO2lmKGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnM8MC4wMDAxKXt1bml0PSducyc7dW5pdERpdmlzb3I9MC4wMDAwMDE7fWVsc2UgaWYoZGlzdGFuY2VCZXR3ZWVuTWFya2VyczwwLjEpe3VuaXQ9J3VzJzt1bml0RGl2aXNvcj0wLjAwMTt9ZWxzZSBpZihkaXN0YW5jZUJldHdlZW5NYXJrZXJzPDEwMCl7dW5pdD0nbXMnO3VuaXREaXZpc29yPTE7fWVsc2V7dW5pdD0ncyc7dW5pdERpdmlzb3I9MTAwMDt9CiBkaXNwbGF5RGlzdGFuY2U9ZGlzdGFuY2VCZXR3ZWVuTWFya2Vycy91bml0RGl2aXNvcjt2YXIgcm91bmRlZERpc3BsYXlEaXN0YW5jZT1NYXRoLmFicygoTWF0aC5yb3VuZChkaXNwbGF5RGlzdGFuY2UqMTAwMCkvMTAwMCkpO3ZhciB0ZXh0VG9EcmF3PXJvdW5kZWREaXNwbGF5RGlzdGFuY2UrJyAnK3VuaXQ7dmFyIHRleHRXaWR0aFZpZXc9Y3R4Lm1lYXN1cmVUZXh0KHRleHRUb0RyYXcpLndpZHRoO3ZhciBzcGFjZUZvckFycm93c0FuZFRleHRWaWV3PXRleHRXaWR0aFZpZXcrc3BhY2VGb3JBcnJvd3NWaWV3K2Fycm93U3BhY2luZzt2YXIgdGV4dExlZnRWaWV3PXBvc2l0aW9uSW5NaWRkbGVPZk1hcmtlcnNWaWV3LXRleHRXaWR0aFZpZXcvMjt2YXIgdGV4dFJpZ2h0Vmlldz10ZXh0TGVmdFZpZXcrdGV4dFdpZHRoVmlldztpZihzcGFjZUZvckFycm93c0FuZFRleHRWaWV3PmRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3KXt0ZXh0TGVmdFZpZXc9cmlnaHRNYXJrZXJWaWV3KzIqYXJyb3dTcGFjaW5nO2lmKHRleHRMZWZ0Vmlldyt0ZXh0V2lkdGhWaWV3PndpZHRoKQotdGV4dExlZnRWaWV3PWxlZnRNYXJrZXJWaWV3LTIqYXJyb3dTcGFjaW5nLXRleHRXaWR0aFZpZXc7Y3R4LmZpbGxTdHlsZT1kaXNwbGF5VGV4dENvbG9yO2N0eC5maWxsVGV4dCh0ZXh0VG9EcmF3LHRleHRMZWZ0Vmlldyx0ZXh0UG9zWSk7Y3R4LnN0cm9rZVN0eWxlPWFycm93Q29sb3I7Y3R4LmJlZ2luUGF0aCgpO3RyLmMuZHJhd0xpbmUoY3R4LGxlZnRNYXJrZXJWaWV3LGFycm93UG9zWSxyaWdodE1hcmtlclZpZXcsYXJyb3dQb3NZKTtjdHguc3Ryb2tlKCk7Y3R4LmZpbGxTdHlsZT1hcnJvd0NvbG9yO3RyLmMuZHJhd0Fycm93KGN0eCxsZWZ0TWFya2VyVmlldy0xLjUqYXJyb3dTcGFjaW5nLGFycm93UG9zWSxsZWZ0TWFya2VyVmlldyxhcnJvd1Bvc1ksYXJyb3dMZW5ndGhWaWV3LGFycm93V2lkdGhWaWV3KTt0ci5jLmRyYXdBcnJvdyhjdHgscmlnaHRNYXJrZXJWaWV3KzEuNSphcnJvd1NwYWNpbmcsYXJyb3dQb3NZLHJpZ2h0TWFya2VyVmlldyxhcnJvd1Bvc1ksYXJyb3dMZW5ndGhWaWV3LGFycm93V2lkdGhWaWV3KTt9ZWxzZSBpZihzcGFjZUZvckFycm93c1ZpZXc8PWRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3KXt2YXIgbGVmdEFycm93U3RhcnQ7dmFyIHJpZ2h0QXJyb3dTdGFydDtpZihzcGFjZUZvckFycm93c0FuZFRleHRWaWV3PD1kaXN0YW5jZUJldHdlZW5NYXJrZXJzVmlldyl7Y3R4LmZpbGxTdHlsZT1kaXNwbGF5VGV4dENvbG9yO2N0eC5maWxsVGV4dCh0ZXh0VG9EcmF3LHRleHRMZWZ0Vmlldyx0ZXh0UG9zWSk7bGVmdEFycm93U3RhcnQ9dGV4dExlZnRWaWV3LWFycm93U3BhY2luZztyaWdodEFycm93U3RhcnQ9dGV4dFJpZ2h0VmlldythcnJvd1NwYWNpbmc7fWVsc2V7bGVmdEFycm93U3RhcnQ9cG9zaXRpb25Jbk1pZGRsZU9mTWFya2Vyc1ZpZXc7cmlnaHRBcnJvd1N0YXJ0PXBvc2l0aW9uSW5NaWRkbGVPZk1hcmtlcnNWaWV3O30KLWN0eC5zdHJva2VTdHlsZT1hcnJvd0NvbG9yO2N0eC5maWxsU3R5bGU9YXJyb3dDb2xvcjt0ci5jLmRyYXdBcnJvdyhjdHgsbGVmdEFycm93U3RhcnQsYXJyb3dQb3NZLGxlZnRNYXJrZXJWaWV3LGFycm93UG9zWSxhcnJvd0xlbmd0aFZpZXcsYXJyb3dXaWR0aFZpZXcpO3RyLmMuZHJhd0Fycm93KGN0eCxyaWdodEFycm93U3RhcnQsYXJyb3dQb3NZLHJpZ2h0TWFya2VyVmlldyxhcnJvd1Bvc1ksYXJyb3dMZW5ndGhWaWV3LGFycm93V2lkdGhWaWV3KTt9Ci1jdHgucmVzdG9yZSgpO30sYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uOmZ1bmN0aW9uKGxvVlgsaGlWWCxsb1ksaGlZLHNlbGVjdGlvbil7fSxhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOmZ1bmN0aW9uKGZpbHRlcixzZWxlY3Rpb24pe319O3JldHVybntSdWxlclRyYWNrOlJ1bGVyVHJhY2t9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIubW9kZWwnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQW5ub3RhdGlvbigpe3RoaXMuZ3VpZF89dHIuYi5HVUlELmFsbG9jYXRlKCk7dGhpcy52aWV3Xz11bmRlZmluZWQ7fTtBbm5vdGF0aW9uLmZyb21EaWN0SWZQb3NzaWJsZT1mdW5jdGlvbihhcmdzKXtpZihhcmdzLnR5cGVOYW1lPT09dW5kZWZpbmVkKQotdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHR5cGVOYW1lIGFyZ3VtZW50Jyk7dmFyIHR5cGVJbmZvPUFubm90YXRpb24uZmluZFR5cGVJbmZvTWF0Y2hpbmcoZnVuY3Rpb24odHlwZUluZm8pe3JldHVybiB0eXBlSW5mby5tZXRhZGF0YS50eXBlTmFtZT09PWFyZ3MudHlwZU5hbWU7fSk7aWYodHlwZUluZm89PT11bmRlZmluZWQpCi1yZXR1cm4gdW5kZWZpbmVkO3JldHVybiB0eXBlSW5mby5jb25zdHJ1Y3Rvci5mcm9tRGljdChhcmdzKTt9O0Fubm90YXRpb24uZnJvbURpY3Q9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30KLUFubm90YXRpb24ucHJvdG90eXBlPXtnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sb25SZW1vdmU6ZnVuY3Rpb24oKXt9LHRvRGljdDpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxnZXRPckNyZWF0ZVZpZXc6ZnVuY3Rpb24odmlld3BvcnQpe2lmKCF0aGlzLnZpZXdfKQotdGhpcy52aWV3Xz10aGlzLmNyZWF0ZVZpZXdfKHZpZXdwb3J0KTtyZXR1cm4gdGhpcy52aWV3Xzt9LGNyZWF0ZVZpZXdfOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9fTt2YXIgb3B0aW9ucz1uZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTtvcHRpb25zLm1hbmRhdG9yeUJhc2VUeXBlPUFubm90YXRpb247dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEFubm90YXRpb24sb3B0aW9ucyk7QW5ub3RhdGlvbi5hZGRFdmVudExpc3RlbmVyKCd3aWxsLXJlZ2lzdGVyJyxmdW5jdGlvbihlKXtpZighZS50eXBlSW5mby5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eSgnZnJvbURpY3QnKSkKLXRocm93IG5ldyBFcnJvcignTXVzdCBoYXZlIGZyb21EaWN0IG1ldGhvZCcpO2lmKCFlLnR5cGVJbmZvLm1ldGFkYXRhLnR5cGVOYW1lKQotdGhyb3cgbmV3IEVycm9yKCdSZWdpc3RlcmVkIEFubm90YXRpb25zIG11c3QgcHJvdmlkZSB0eXBlTmFtZScpO30pO3JldHVybntBbm5vdGF0aW9uOkFubm90YXRpb259O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYy5hbm5vdGF0aW9ucycsZnVuY3Rpb24oKXtmdW5jdGlvbiBBbm5vdGF0aW9uVmlldyh2aWV3cG9ydCxhbm5vdGF0aW9uKXt9Ci1Bbm5vdGF0aW9uVmlldy5wcm90b3R5cGU9e2RyYXc6ZnVuY3Rpb24oY3R4KXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO319O3JldHVybntBbm5vdGF0aW9uVmlldzpBbm5vdGF0aW9uVmlld307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jLmFubm90YXRpb25zJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFhNYXJrZXJBbm5vdGF0aW9uVmlldyh2aWV3cG9ydCxhbm5vdGF0aW9uKXt0aGlzLnZpZXdwb3J0Xz12aWV3cG9ydDt0aGlzLmFubm90YXRpb25fPWFubm90YXRpb247fQotWE1hcmtlckFubm90YXRpb25WaWV3LnByb3RvdHlwZT17X19wcm90b19fOnRyLmMuYW5ub3RhdGlvbnMuQW5ub3RhdGlvblZpZXcucHJvdG90eXBlLGRyYXc6ZnVuY3Rpb24oY3R4KXt2YXIgZHQ9dGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIHZpZXdYPWR0LnhXb3JsZFRvVmlldyh0aGlzLmFubm90YXRpb25fLnRpbWVzdGFtcCk7Y3R4LmJlZ2luUGF0aCgpO3RyLmMuZHJhd0xpbmUoY3R4LHZpZXdYLDAsdmlld1gsY3R4LmNhbnZhcy5oZWlnaHQpO2N0eC5zdHJva2VTdHlsZT10aGlzLmFubm90YXRpb25fLnN0cm9rZVN0eWxlO2N0eC5zdHJva2UoKTt9fTtyZXR1cm57WE1hcmtlckFubm90YXRpb25WaWV3OlhNYXJrZXJBbm5vdGF0aW9uVmlld307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsZnVuY3Rpb24oKXtmdW5jdGlvbiBYTWFya2VyQW5ub3RhdGlvbih0aW1lc3RhbXApe3RyLm1vZGVsLkFubm90YXRpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGltZXN0YW1wPXRpbWVzdGFtcDt0aGlzLnN0cm9rZVN0eWxlPSdyZ2JhKDAsIDAsIDI1NSwgMC41KSc7fQotWE1hcmtlckFubm90YXRpb24uZnJvbURpY3Q9ZnVuY3Rpb24oZGljdCl7cmV0dXJuIG5ldyBYTWFya2VyQW5ub3RhdGlvbihkaWN0LmFyZ3MudGltZXN0YW1wKTt9Ci1YTWFya2VyQW5ub3RhdGlvbi5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5Bbm5vdGF0aW9uLnByb3RvdHlwZSx0b0RpY3Q6ZnVuY3Rpb24oKXtyZXR1cm57dHlwZU5hbWU6J3htYXJrZXInLGFyZ3M6e3RpbWVzdGFtcDp0aGlzLnRpbWVzdGFtcH19O30sY3JlYXRlVmlld186ZnVuY3Rpb24odmlld3BvcnQpe3JldHVybiBuZXcgdHIuYy5hbm5vdGF0aW9ucy5YTWFya2VyQW5ub3RhdGlvblZpZXcodmlld3BvcnQsdGhpcyk7fX07dHIubW9kZWwuQW5ub3RhdGlvbi5yZWdpc3RlcihYTWFya2VyQW5ub3RhdGlvbix7dHlwZU5hbWU6J3htYXJrZXInfSk7cmV0dXJue1hNYXJrZXJBbm5vdGF0aW9uOlhNYXJrZXJBbm5vdGF0aW9ufTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7dmFyIFNlbGVjdGlvbj10ci5jLlNlbGVjdGlvbjt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7dmFyIFZpZXdwb3J0PXRyLmMuVGltZWxpbmVWaWV3cG9ydDt2YXIgdGVtcERpc3BsYXlUcmFuc2Zvcm09bmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7ZnVuY3Rpb24gaW50ZXJzZWN0UmVjdF8ocjEscjIpe3ZhciByZXN1bHRzPW5ldyBPYmplY3Q7aWYocjIubGVmdD5yMS5yaWdodHx8cjIucmlnaHQ8cjEubGVmdHx8cjIudG9wPnIxLmJvdHRvbXx8cjIuYm90dG9tPHIxLnRvcCl7cmV0dXJuIGZhbHNlO30KLXJlc3VsdHMubGVmdD1NYXRoLm1heChyMS5sZWZ0LHIyLmxlZnQpO3Jlc3VsdHMudG9wPU1hdGgubWF4KHIxLnRvcCxyMi50b3ApO3Jlc3VsdHMucmlnaHQ9TWF0aC5taW4ocjEucmlnaHQscjIucmlnaHQpO3Jlc3VsdHMuYm90dG9tPU1hdGgubWluKHIxLmJvdHRvbSxyMi5ib3R0b20pO3Jlc3VsdHMud2lkdGg9KHJlc3VsdHMucmlnaHQtcmVzdWx0cy5sZWZ0KTtyZXN1bHRzLmhlaWdodD0ocmVzdWx0cy5ib3R0b20tcmVzdWx0cy50b3ApO3JldHVybiByZXN1bHRzO30KLXZhciBUaW1lbGluZVRyYWNrVmlldz10ci5iLnVpLmRlZmluZSgnZGl2Jyk7VGltZWxpbmVUcmFja1ZpZXcucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTERpdkVsZW1lbnQucHJvdG90eXBlLG1vZGVsXzpudWxsLGRlY29yYXRlOmZ1bmN0aW9uKHRpbWVsaW5lVmlldyl7dGhpcy5jbGFzc0xpc3QuYWRkKCd0aW1lbGluZS10cmFjay12aWV3Jyk7dGhpcy50aW1lbGluZVZpZXdfPXRpbWVsaW5lVmlldzt0aGlzLnZpZXdwb3J0Xz1uZXcgVmlld3BvcnQodGhpcyk7dGhpcy52aWV3cG9ydERpc3BsYXlUcmFuc2Zvcm1BdE1vdXNlRG93bl89bnVsbDt0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfPXVuZGVmaW5lZDt0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfPW5ldyB0ci5jLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHRoaXMudmlld3BvcnRfKTt0aGlzLmFwcGVuZENoaWxkKHRoaXMucnVsZXJUcmFja0NvbnRhaW5lcl8pO3RoaXMucnVsZXJUcmFja0NvbnRhaW5lcl8uaW52YWxpZGF0ZSgpO3RoaXMucnVsZXJUcmFja189bmV3IHRyLmMudHJhY2tzLlJ1bGVyVHJhY2sodGhpcy52aWV3cG9ydF8pO3RoaXMucnVsZXJUcmFja0NvbnRhaW5lcl8uYXBwZW5kQ2hpbGQodGhpcy5ydWxlclRyYWNrXyk7dGhpcy51cHBlck1vZGVsVHJhY2tfPW5ldyB0ci5jLnRyYWNrcy5Nb2RlbFRyYWNrKHRoaXMudmlld3BvcnRfKTt0aGlzLnVwcGVyTW9kZWxUcmFja18udXBwZXJNb2RlPXRydWU7dGhpcy5ydWxlclRyYWNrQ29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLnVwcGVyTW9kZWxUcmFja18pO3RoaXMubW9kZWxUcmFja0NvbnRhaW5lcl89bmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodGhpcy52aWV3cG9ydF8pO3RoaXMuYXBwZW5kQ2hpbGQodGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXyk7dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5zdHlsZS5kaXNwbGF5PSdibG9jayc7dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5pbnZhbGlkYXRlKCk7dGhpcy52aWV3cG9ydF8ubW9kZWxUcmFja0NvbnRhaW5lcj10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfO3RoaXMubW9kZWxUcmFja189bmV3IHRyLmMudHJhY2tzLk1vZGVsVHJhY2sodGhpcy52aWV3cG9ydF8pO3RoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uYXBwZW5kQ2hpbGQodGhpcy5tb2RlbFRyYWNrXyk7dGhpcy50aW1pbmdUb29sXz1uZXcgdHIuYy5UaW1pbmdUb29sKHRoaXMudmlld3BvcnRfLHRoaXMpO3RoaXMuaW5pdE1vdXNlTW9kZVNlbGVjdG9yKCk7dGhpcy5kcmFnQm94Xz10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7dGhpcy5kcmFnQm94Xy5jbGFzc05hbWU9J2RyYWctYm94Jzt0aGlzLmFwcGVuZENoaWxkKHRoaXMuZHJhZ0JveF8pO3RoaXMuaGlkZURyYWdCb3hfKCk7dGhpcy5pbml0SGludFRleHRfKCk7dGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfPXRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpO3RoaXMuYmluZEV2ZW50TGlzdGVuZXJfKGRvY3VtZW50LCdrZXlwcmVzcycsdGhpcy5vbktleXByZXNzXyx0aGlzKTt0aGlzLmJpbmRFdmVudExpc3RlbmVyXyhkb2N1bWVudCwna2V5ZG93bicsdGhpcy5vbktleWRvd25fLHRoaXMpO3RoaXMuYmluZEV2ZW50TGlzdGVuZXJfKGRvY3VtZW50LCdrZXl1cCcsdGhpcy5vbktleXVwXyx0aGlzKTt0aGlzLmJpbmRFdmVudExpc3RlbmVyXyh0aGlzLCdkYmxjbGljaycsdGhpcy5vbkRibENsaWNrXyx0aGlzKTt0aGlzLmJpbmRFdmVudExpc3RlbmVyXyh0aGlzLCdtb3VzZXdoZWVsJyx0aGlzLm9uTW91c2VXaGVlbF8sdGhpcyk7dGhpcy5iaW5kRXZlbnRMaXN0ZW5lcl8odGhpcywnbW91c2Vkb3duJyx0aGlzLm9uTW91c2VEb3duXyx0aGlzKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsdGhpcy5vbk1vdXNlTW92ZV8pO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsdGhpcy5vblRvdWNoU3RhcnRfKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsdGhpcy5vblRvdWNoTW92ZV8pO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLHRoaXMub25Ub3VjaEVuZF8pO3RoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fPXt4OjAseTowfTt0aGlzLmxhc3RNb3VzZVZpZXdQb3NfPXt4OjAseTowfTt0aGlzLmxhc3RUb3VjaFZpZXdQb3NpdGlvbnNfPVtdO3RoaXMuYWxlcnRfPXVuZGVmaW5lZDt0aGlzLmlzUGFubmluZ0FuZFNjYW5uaW5nXz1mYWxzZTt0aGlzLmlzWm9vbWluZ189ZmFsc2U7fSxiaW5kRXZlbnRMaXN0ZW5lcl86ZnVuY3Rpb24ob2JqZWN0LGV2ZW50LGZ1bmMsdGFyZ2V0KXtpZighdGhpcy5ib3VuZExpc3RlbmVyc18pCi10aGlzLmJvdW5kTGlzdGVuZXJzXz1bXTt2YXIgYm91bmRGdW5jPWZ1bmMuYmluZCh0YXJnZXQpO3RoaXMuYm91bmRMaXN0ZW5lcnNfLnB1c2goe29iamVjdDpvYmplY3QsZXZlbnQ6ZXZlbnQsYm91bmRGdW5jOmJvdW5kRnVuY30pO29iamVjdC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LGJvdW5kRnVuYyk7fSxpbml0TW91c2VNb2RlU2VsZWN0b3I6ZnVuY3Rpb24oKXt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXz1uZXcgdHIuYi51aS5Nb3VzZU1vZGVTZWxlY3Rvcih0aGlzKTt0aGlzLmFwcGVuZENoaWxkKHRoaXMubW91c2VNb2RlU2VsZWN0b3JfKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnBhbicsdGhpcy5vbkJlZ2luUGFuU2Nhbl8uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlcGFuJyx0aGlzLm9uVXBkYXRlUGFuU2Nhbl8uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW5kcGFuJyx0aGlzLm9uRW5kUGFuU2Nhbl8uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW5zZWxlY3Rpb24nLHRoaXMub25CZWdpblNlbGVjdGlvbl8uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlc2VsZWN0aW9uJyx0aGlzLm9uVXBkYXRlU2VsZWN0aW9uXy5iaW5kKHRoaXMpKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbmRzZWxlY3Rpb24nLHRoaXMub25FbmRTZWxlY3Rpb25fLmJpbmQodGhpcykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZ2luem9vbScsdGhpcy5vbkJlZ2luWm9vbV8uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlem9vbScsdGhpcy5vblVwZGF0ZVpvb21fLmJpbmQodGhpcykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHpvb20nLHRoaXMub25FbmRab29tXy5iaW5kKHRoaXMpKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbnRlcnRpbWluZycsdGhpcy50aW1pbmdUb29sXy5vbkVudGVyVGltaW5nLmJpbmQodGhpcy50aW1pbmdUb29sXykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZ2ludGltaW5nJyx0aGlzLnRpbWluZ1Rvb2xfLm9uQmVnaW5UaW1pbmcuYmluZCh0aGlzLnRpbWluZ1Rvb2xfKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRldGltaW5nJyx0aGlzLnRpbWluZ1Rvb2xfLm9uVXBkYXRlVGltaW5nLmJpbmQodGhpcy50aW1pbmdUb29sXykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHRpbWluZycsdGhpcy50aW1pbmdUb29sXy5vbkVuZFRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdleGl0dGltaW5nJyx0aGlzLnRpbWluZ1Rvb2xfLm9uRXhpdFRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTt2YXIgbT10ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREU7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc3VwcG9ydGVkTW9kZU1hc2s9bS5TRUxFQ1RJT058bS5QQU5TQ0FOfG0uWk9PTXxtLlRJTUlORzt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXR0aW5nc0tleT0ndGltZWxpbmVUcmFja1ZpZXcubW91c2VNb2RlU2VsZWN0b3InO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldEtleUNvZGVGb3JNb2RlKG0uUEFOU0NBTiwnMicuY2hhckNvZGVBdCgwKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0S2V5Q29kZUZvck1vZGUobS5TRUxFQ1RJT04sJzEnLmNoYXJDb2RlQXQoMCkpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldEtleUNvZGVGb3JNb2RlKG0uWk9PTSwnMycuY2hhckNvZGVBdCgwKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0S2V5Q29kZUZvck1vZGUobS5USU1JTkcsJzQnLmNoYXJDb2RlQXQoMCkpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldEtleUNvZGVDb25kaXRpb24oZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saXN0ZW5Ub0tleXNfO30uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlKG0uU0VMRUNUSU9OLHRyLmIudWkuTU9ESUZJRVIuU0hJRlQpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldE1vZGlmaWVyRm9yQWx0ZXJuYXRlTW9kZShtLlBBTlNDQU4sdHIuYi51aS5NT0RJRklFUi5TUEFDRSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlKG0uWk9PTSx0ci5iLnVpLk1PRElGSUVSLkNNRF9PUl9DVFJMKTt9LGdldCBzZWxlY3Rpb25Db250cm9sbGVyKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl87fSxzZXQgc2VsZWN0aW9uQ29udHJvbGxlcihzZWxlY3Rpb25Db250cm9sbGVyKXtpZih0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfKXt0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKTt9Ci10aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfPXNlbGVjdGlvbkNvbnRyb2xsZXI7aWYodGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXyl7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7fX0sb25TZWxlY3Rpb25DaGFuZ2VkXzpmdW5jdGlvbigpe3RoaXMuc2hvd0hpbnRUZXh0XygnUHJlc3MgXCdtXCcgdG8gbWFyayBjdXJyZW50IHNlbGVjdGlvbicpO3RoaXMudmlld3BvcnRfLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aHJvdyBuZXcgRXJyb3IoJ0RPIE5PVCBDQUxMIFRISVMnKTt9LHNldCBoaWdobGlnaHQoaGlnaGxpZ2h0KXt0aHJvdyBuZXcgRXJyb3IoJ0RPIE5PVCBDQUxMIFRISVMnKTt9LGRldGFjaDpmdW5jdGlvbigpe3RoaXMubW9kZWxUcmFja18uZGV0YWNoKCk7dGhpcy51cHBlck1vZGVsVHJhY2tfLmRldGFjaCgpO2Zvcih2YXIgaT0wO2k8dGhpcy5ib3VuZExpc3RlbmVyc18ubGVuZ3RoO2krKyl7dmFyIGJpbmRpbmc9dGhpcy5ib3VuZExpc3RlbmVyc19baV07YmluZGluZy5vYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihiaW5kaW5nLmV2ZW50LGJpbmRpbmcuYm91bmRGdW5jKTt9Ci10aGlzLmJvdW5kTGlzdGVuZXJzXz11bmRlZmluZWQ7dGhpcy52aWV3cG9ydF8uZGV0YWNoKCk7fSxnZXQgdmlld3BvcnQoKXtyZXR1cm4gdGhpcy52aWV3cG9ydF87fSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5tb2RlbF87fSxzZXQgbW9kZWwobW9kZWwpe2lmKCFtb2RlbCkKLXRocm93IG5ldyBFcnJvcignTW9kZWwgY2Fubm90IGJlIG51bGwnKTt2YXIgbW9kZWxJbnN0YW5jZUNoYW5nZWQ9dGhpcy5tb2RlbF8hPT1tb2RlbDt0aGlzLm1vZGVsXz1tb2RlbDt0aGlzLm1vZGVsVHJhY2tfLm1vZGVsPW1vZGVsO3RoaXMudXBwZXJNb2RlbFRyYWNrXy5tb2RlbD1tb2RlbDtpZihtb2RlbEluc3RhbmNlQ2hhbmdlZCkKLXRoaXMudmlld3BvcnRfLnNldFdoZW5Qb3NzaWJsZSh0aGlzLnNldEluaXRpYWxWaWV3cG9ydF8uYmluZCh0aGlzKSk7dHIuYi5zZXRQcm9wZXJ0eUFuZERpc3BhdGNoQ2hhbmdlKHRoaXMsJ21vZGVsJyxtb2RlbCk7fSxnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5tb2RlbFRyYWNrXy5oYXNWaXNpYmxlQ29udGVudHx8dGhpcy51cHBlck1vZGVsVHJhY2tfLmhhc1Zpc2libGVDb250ZW50O30sc2V0SW5pdGlhbFZpZXdwb3J0XzpmdW5jdGlvbigpe3RoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8udXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpO3ZhciB3PXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoO3ZhciBtaW47dmFyIHJhbmdlO2lmKHRoaXMubW9kZWxfLmJvdW5kcy5pc0VtcHR5KXttaW49MDtyYW5nZT0xMDAwO31lbHNlIGlmKHRoaXMubW9kZWxfLmJvdW5kcy5yYW5nZT09PTApe21pbj10aGlzLm1vZGVsXy5ib3VuZHMubWluO3JhbmdlPTEwMDA7fWVsc2V7bWluPXRoaXMubW9kZWxfLmJvdW5kcy5taW47cmFuZ2U9dGhpcy5tb2RlbF8uYm91bmRzLnJhbmdlO30KLXZhciBib29zdD1yYW5nZSowLjE1O3RlbXBEaXNwbGF5VHJhbnNmb3JtLnNldCh0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSk7dGVtcERpc3BsYXlUcmFuc2Zvcm0ueFNldFdvcmxkQm91bmRzKG1pbi1ib29zdCxtaW4rcmFuZ2UrYm9vc3Qsdyk7dGhpcy52aWV3cG9ydF8uc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KHRlbXBEaXNwbGF5VHJhbnNmb3JtKTt9LGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6ZnVuY3Rpb24oZmlsdGVyLHNlbGVjdGlvbil7dmFyIG1vZGVsVHJhY2s9dGhpcy5tb2RlbFRyYWNrXzt2YXIgZmlyc3RUPW1vZGVsVHJhY2suYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzayhmaWx0ZXIsc2VsZWN0aW9uKTt2YXIgbGFzdFQ9Zmlyc3RULmFmdGVyKGZ1bmN0aW9uKCl7dGhpcy51cHBlck1vZGVsVHJhY2tfLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oZmlsdGVyLHNlbGVjdGlvbik7fSx0aGlzKTtyZXR1cm4gZmlyc3RUO30sZ2V0IGZvY3VzRWxlbWVudCgpe2lmKHRoaXMuZm9jdXNFbGVtZW50XykKLXJldHVybiB0aGlzLmZvY3VzRWxlbWVudF87cmV0dXJuIHRoaXMucGFyZW50RWxlbWVudDt9LHNldCBmb2N1c0VsZW1lbnQodmFsdWUpe3RoaXMuZm9jdXNFbGVtZW50Xz12YWx1ZTt9LGdldCBsaXN0ZW5Ub0tleXNfKCl7aWYoIXRoaXMudmlld3BvcnRfLmlzQXR0YWNoZWRUb0RvY3VtZW50T3JJblRlc3RNb2RlKQotcmV0dXJuIGZhbHNlO2lmKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBUcmFjaW5nRmluZENvbnRyb2wpCi1yZXR1cm4gZmFsc2U7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIFRyYWNpbmdTY3JpcHRpbmdDb250cm9sKQotcmV0dXJuIGZhbHNlO2lmKCF0aGlzLmZvY3VzRWxlbWVudF8pCi1yZXR1cm4gdHJ1ZTtpZih0aGlzLmZvY3VzRWxlbWVudC50YWJJbmRleD49MCl7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09dGhpcy5mb2N1c0VsZW1lbnQpCi1yZXR1cm4gdHJ1ZTtyZXR1cm4gdHIuYi51aS5lbGVtZW50SXNDaGlsZE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdGhpcy5mb2N1c0VsZW1lbnQpO30KLXJldHVybiB0cnVlO30sb25Nb3VzZU1vdmVfOmZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNab29taW5nXykKLXJldHVybjt0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTt9LG9uVG91Y2hTdGFydF86ZnVuY3Rpb24oZSl7dGhpcy5zdG9yZUxhc3RUb3VjaFBvc2l0aW9uc18oZSk7dGhpcy5mb2N1c0VsZW1lbnRzXygpO30sb25Ub3VjaE1vdmVfOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt0aGlzLm9uVXBkYXRlVHJhbnNmb3JtRm9yVG91Y2hfKGUpO30sb25Ub3VjaEVuZF86ZnVuY3Rpb24oZSl7dGhpcy5zdG9yZUxhc3RUb3VjaFBvc2l0aW9uc18oZSk7dGhpcy5mb2N1c0VsZW1lbnRzXygpO30sb25LZXlwcmVzc186ZnVuY3Rpb24oZSl7dmFyIHZwPXRoaXMudmlld3BvcnRfO2lmKCF0aGlzLmxpc3RlblRvS2V5c18pCi1yZXR1cm47aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZT09J0lOUFVUJykKLXJldHVybjt2YXIgdmlld1dpZHRoPXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLmNsaWVudFdpZHRoO3ZhciBjdXJNb3VzZVYsY3VyQ2VudGVyVztzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDExOTpjYXNlIDQ0OnRoaXMuem9vbUJ5XygxLjUsdHJ1ZSk7YnJlYWs7Y2FzZSAxMTU6Y2FzZSAxMTE6dGhpcy56b29tQnlfKDEvMS41LHRydWUpO2JyZWFrO2Nhc2UgMTAzOnRoaXMub25HcmlkVG9nZ2xlXyh0cnVlKTticmVhaztjYXNlIDcxOnRoaXMub25HcmlkVG9nZ2xlXyhmYWxzZSk7YnJlYWs7Y2FzZSA4NzpjYXNlIDYwOnRoaXMuem9vbUJ5XygxMCx0cnVlKTticmVhaztjYXNlIDgzOmNhc2UgNzk6dGhpcy56b29tQnlfKDEvMTAsdHJ1ZSk7YnJlYWs7Y2FzZSA5Nzp0aGlzLnF1ZXVlU21vb3RoUGFuXyh2aWV3V2lkdGgqMC4zLDApO2JyZWFrO2Nhc2UgMTAwOmNhc2UgMTAxOnRoaXMucXVldWVTbW9vdGhQYW5fKHZpZXdXaWR0aCotMC4zLDApO2JyZWFrO2Nhc2UgNjU6dGhpcy5xdWV1ZVNtb290aFBhbl8odmlld1dpZHRoKjAuNSwwKTticmVhaztjYXNlIDY4OnRoaXMucXVldWVTbW9vdGhQYW5fKHZpZXdXaWR0aCotMC41LDApO2JyZWFrO2Nhc2UgNDg6dGhpcy5zZXRJbml0aWFsVmlld3BvcnRfKCk7YnJlYWs7Y2FzZSAxMDI6dGhpcy56b29tVG9TZWxlY3Rpb24oKTticmVhaztjYXNlJ20nLmNoYXJDb2RlQXQoMCk6dGhpcy5zZXRDdXJyZW50U2VsZWN0aW9uQXNJbnRlcmVzdFJhbmdlXygpO2JyZWFrO2Nhc2UgMTA0OnRoaXMudG9nZ2xlSGlnaERldGFpbHNfKCk7YnJlYWs7fX0sb25LZXlkb3duXzpmdW5jdGlvbihlKXtpZighdGhpcy5saXN0ZW5Ub0tleXNfKQotcmV0dXJuO3ZhciBzZWw7dmFyIHZwPXRoaXMudmlld3BvcnRfO3ZhciB2aWV3V2lkdGg9dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMuY2xpZW50V2lkdGg7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSAzNzpzZWw9dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5zZWxlY3Rpb24uZ2V0U2hpZnRlZFNlbGVjdGlvbih0aGlzLnZpZXdwb3J0LC0xKTtpZihzZWwpe3RoaXMuc2VsZWN0aW9uQ29udHJvbGxlci5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsKTt0aGlzLnBhblRvU2VsZWN0aW9uKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO31lbHNle3RoaXMucXVldWVTbW9vdGhQYW5fKHZpZXdXaWR0aCowLjMsMCk7fQotYnJlYWs7Y2FzZSAzOTpzZWw9dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5zZWxlY3Rpb24uZ2V0U2hpZnRlZFNlbGVjdGlvbih0aGlzLnZpZXdwb3J0LDEpO2lmKHNlbCl7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyLmNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZShzZWwpO3RoaXMucGFuVG9TZWxlY3Rpb24oKTtlLnByZXZlbnREZWZhdWx0KCk7fWVsc2V7dGhpcy5xdWV1ZVNtb290aFBhbl8oLXZpZXdXaWR0aCowLjMsMCk7fQotYnJlYWs7Y2FzZSA5OmlmKHRoaXMuZm9jdXNFbGVtZW50LnRhYkluZGV4PT0tMSl7aWYoZS5zaGlmdEtleSkKLXRoaXMuc2VsZWN0UHJldmlvdXNfKGUpO2Vsc2UKLXRoaXMuc2VsZWN0TmV4dF8oZSk7ZS5wcmV2ZW50RGVmYXVsdCgpO30KLWJyZWFrO319LG9uS2V5dXBfOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmxpc3RlblRvS2V5c18pCi1yZXR1cm47aWYoIWUuc2hpZnRLZXkpe2lmKHRoaXMuZHJhZ0JlZ2luRXZlbnRfKXt0aGlzLnNldERyYWdCb3hQb3NpdGlvbl8odGhpcy5kcmFnQm94WFN0YXJ0Xyx0aGlzLmRyYWdCb3hZU3RhcnRfLHRoaXMuZHJhZ0JveFhFbmRfLHRoaXMuZHJhZ0JveFlFbmRfKTt9fX0sb25EYmxDbGlja186ZnVuY3Rpb24oZSl7aWYodGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8ubW9kZSE9PXRyLmIudWkuTU9VU0VfU0VMRUNUT1JfTU9ERS5TRUxFQ1RJT04pCi1yZXR1cm47dmFyIGN1clNlbGVjdGlvbj10aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLnNlbGVjdGlvbjtpZighY3VyU2VsZWN0aW9uLmxlbmd0aHx8IWN1clNlbGVjdGlvblswXS50aXRsZSkKLXJldHVybjt2YXIgc2VsZWN0aW9uPW5ldyBTZWxlY3Rpb24oKTt2YXIgZmlsdGVyPW5ldyB0ci5jLkV4YWN0VGl0bGVGaWx0ZXIoY3VyU2VsZWN0aW9uWzBdLnRpdGxlKTt0aGlzLm1vZGVsVHJhY2tfLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oZmlsdGVyLHNlbGVjdGlvbik7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyLmNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZShzZWxlY3Rpb24pO30sb25Nb3VzZVdoZWVsXzpmdW5jdGlvbihlKXtpZighZS5hbHRLZXkpCi1yZXR1cm47dmFyIGRlbHRhPWUud2hlZWxEZWx0YS8xMjA7dmFyIHpvb21TY2FsZT1NYXRoLnBvdygxLjUsZGVsdGEpO3RoaXMuem9vbUJ5Xyh6b29tU2NhbGUpO2UucHJldmVudERlZmF1bHQoKTt9LG9uTW91c2VEb3duXzpmdW5jdGlvbihlKXtpZih0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5tb2RlIT09dHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTikKK3RleHRMZWZ0Vmlldz1sZWZ0TWFya2VyVmlldy0yKmFycm93U3BhY2luZy10ZXh0V2lkdGhWaWV3O2N0eC5maWxsU3R5bGU9ZGlzcGxheVRleHRDb2xvcjtjdHguZmlsbFRleHQodGV4dFRvRHJhdyx0ZXh0TGVmdFZpZXcsdGV4dFBvc1kpO2N0eC5zdHJva2VTdHlsZT1hcnJvd0NvbG9yO2N0eC5iZWdpblBhdGgoKTt0ci51aS5iLmRyYXdMaW5lKGN0eCxsZWZ0TWFya2VyVmlldyxhcnJvd1Bvc1kscmlnaHRNYXJrZXJWaWV3LGFycm93UG9zWSk7Y3R4LnN0cm9rZSgpO2N0eC5maWxsU3R5bGU9YXJyb3dDb2xvcjt0ci51aS5iLmRyYXdBcnJvdyhjdHgsbGVmdE1hcmtlclZpZXctMS41KmFycm93U3BhY2luZyxhcnJvd1Bvc1ksbGVmdE1hcmtlclZpZXcsYXJyb3dQb3NZLGFycm93TGVuZ3RoVmlldyxhcnJvd1dpZHRoVmlldyk7dHIudWkuYi5kcmF3QXJyb3coY3R4LHJpZ2h0TWFya2VyVmlldysxLjUqYXJyb3dTcGFjaW5nLGFycm93UG9zWSxyaWdodE1hcmtlclZpZXcsYXJyb3dQb3NZLGFycm93TGVuZ3RoVmlldyxhcnJvd1dpZHRoVmlldyk7fWVsc2UgaWYoc3BhY2VGb3JBcnJvd3NWaWV3PD1kaXN0YW5jZUJldHdlZW5NYXJrZXJzVmlldyl7dmFyIGxlZnRBcnJvd1N0YXJ0O3ZhciByaWdodEFycm93U3RhcnQ7aWYoc3BhY2VGb3JBcnJvd3NBbmRUZXh0Vmlldzw9ZGlzdGFuY2VCZXR3ZWVuTWFya2Vyc1ZpZXcpe2N0eC5maWxsU3R5bGU9ZGlzcGxheVRleHRDb2xvcjtjdHguZmlsbFRleHQodGV4dFRvRHJhdyx0ZXh0TGVmdFZpZXcsdGV4dFBvc1kpO2xlZnRBcnJvd1N0YXJ0PXRleHRMZWZ0Vmlldy1hcnJvd1NwYWNpbmc7cmlnaHRBcnJvd1N0YXJ0PXRleHRSaWdodFZpZXcrYXJyb3dTcGFjaW5nO31lbHNle2xlZnRBcnJvd1N0YXJ0PXBvc2l0aW9uSW5NaWRkbGVPZk1hcmtlcnNWaWV3O3JpZ2h0QXJyb3dTdGFydD1wb3NpdGlvbkluTWlkZGxlT2ZNYXJrZXJzVmlldzt9CitjdHguc3Ryb2tlU3R5bGU9YXJyb3dDb2xvcjtjdHguZmlsbFN0eWxlPWFycm93Q29sb3I7dHIudWkuYi5kcmF3QXJyb3coY3R4LGxlZnRBcnJvd1N0YXJ0LGFycm93UG9zWSxsZWZ0TWFya2VyVmlldyxhcnJvd1Bvc1ksYXJyb3dMZW5ndGhWaWV3LGFycm93V2lkdGhWaWV3KTt0ci51aS5iLmRyYXdBcnJvdyhjdHgscmlnaHRBcnJvd1N0YXJ0LGFycm93UG9zWSxyaWdodE1hcmtlclZpZXcsYXJyb3dQb3NZLGFycm93TGVuZ3RoVmlldyxhcnJvd1dpZHRoVmlldyk7fQorY3R4LnJlc3RvcmUoKTt9LGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbjpmdW5jdGlvbihsb1ZYLGhpVlgsbG9ZLGhpWSxzZWxlY3Rpb24pe30sYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjpmdW5jdGlvbihmaWx0ZXIsc2VsZWN0aW9uKXt9fTtyZXR1cm57UnVsZXJUcmFjazpSdWxlclRyYWNrfTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktdGltZWxpbmUtdHJhY2stdmlldycse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy5kaXNwbGF5VHJhbnNmb3JtXz1uZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7dGhpcy5tb2RlbF89dW5kZWZpbmVkO3RoaXMudGltZWxpbmVWaWV3Xz11bmRlZmluZWQ7dGhpcy52aWV3cG9ydF89bmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQodGhpcyk7dGhpcy52aWV3cG9ydERpc3BsYXlUcmFuc2Zvcm1BdE1vdXNlRG93bl89dW5kZWZpbmVkO3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfPXVuZGVmaW5lZDt0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfPW5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih0aGlzLnZpZXdwb3J0Xyk7dGhpcy5hcHBlbmRDaGlsZCh0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfKTt0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfLmludmFsaWRhdGUoKTt0aGlzLnJ1bGVyVHJhY2tfPW5ldyB0ci51aS50cmFja3MuUnVsZXJUcmFjayh0aGlzLnZpZXdwb3J0Xyk7dGhpcy5ydWxlclRyYWNrQ29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLnJ1bGVyVHJhY2tfKTt0aGlzLnVwcGVyTW9kZWxUcmFja189bmV3IHRyLnVpLnRyYWNrcy5Nb2RlbFRyYWNrKHRoaXMudmlld3BvcnRfKTt0aGlzLnVwcGVyTW9kZWxUcmFja18udXBwZXJNb2RlPXRydWU7dGhpcy5ydWxlclRyYWNrQ29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLnVwcGVyTW9kZWxUcmFja18pO3RoaXMubW9kZWxUcmFja0NvbnRhaW5lcl89bmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHRoaXMudmlld3BvcnRfKTt0aGlzLmFwcGVuZENoaWxkKHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8pO3RoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uc3R5bGUuZGlzcGxheT0nYmxvY2snO3RoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uaW52YWxpZGF0ZSgpO3RoaXMudmlld3BvcnRfLm1vZGVsVHJhY2tDb250YWluZXI9dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXzt0aGlzLm1vZGVsVHJhY2tfPW5ldyB0ci51aS50cmFja3MuTW9kZWxUcmFjayh0aGlzLnZpZXdwb3J0Xyk7dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLm1vZGVsVHJhY2tfKTt0aGlzLnRpbWluZ1Rvb2xfPW5ldyB0ci51aS5iLlRpbWluZ1Rvb2wodGhpcy52aWV3cG9ydF8sdGhpcyk7dGhpcy5pbml0TW91c2VNb2RlU2VsZWN0b3IoKTt0aGlzLmhpZGVEcmFnQm94XygpO3RoaXMuaW5pdEhpbnRUZXh0XygpO3RoaXMub25TZWxlY3Rpb25DaGFuZ2VkXz10aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8uYmluZCh0aGlzKTt0aGlzLm9uRGJsQ2xpY2tfPXRoaXMub25EYmxDbGlja18uYmluZCh0aGlzKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2RibGNsaWNrJyx0aGlzLm9uRGJsQ2xpY2tfKTt0aGlzLm9uTW91c2VXaGVlbF89dGhpcy5vbk1vdXNlV2hlZWxfLmJpbmQodGhpcyk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJyx0aGlzLm9uTW91c2VXaGVlbF8pO3RoaXMub25Nb3VzZURvd25fPXRoaXMub25Nb3VzZURvd25fLmJpbmQodGhpcyk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLHRoaXMub25Nb3VzZURvd25fKTt0aGlzLm9uTW91c2VNb3ZlXz10aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJyx0aGlzLm9uTW91c2VNb3ZlXyk7dGhpcy5vblRvdWNoU3RhcnRfPXRoaXMub25Ub3VjaFN0YXJ0Xy5iaW5kKHRoaXMpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsdGhpcy5vblRvdWNoU3RhcnRfKTt0aGlzLm9uVG91Y2hNb3ZlXz10aGlzLm9uVG91Y2hNb3ZlXy5iaW5kKHRoaXMpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJyx0aGlzLm9uVG91Y2hNb3ZlXyk7dGhpcy5vblRvdWNoRW5kXz10aGlzLm9uVG91Y2hFbmRfLmJpbmQodGhpcyk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsdGhpcy5vblRvdWNoRW5kXyk7dGhpcy5hZGRIb3RLZXlzXygpO3RoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fPXt4OjAseTowfTt0aGlzLmxhc3RNb3VzZVZpZXdQb3NfPXt4OjAseTowfTt0aGlzLmxhc3RUb3VjaFZpZXdQb3NpdGlvbnNfPVtdO3RoaXMuYWxlcnRfPXVuZGVmaW5lZDt0aGlzLmlzUGFubmluZ0FuZFNjYW5uaW5nXz1mYWxzZTt0aGlzLmlzWm9vbWluZ189ZmFsc2U7fSxpbml0TW91c2VNb2RlU2VsZWN0b3I6ZnVuY3Rpb24oKXt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLW1vdXNlLW1vZGUtc2VsZWN0b3InKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy50YXJnZXRFbGVtZW50PXRoaXM7dGhpcy5hcHBlbmRDaGlsZCh0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW5wYW4nLHRoaXMub25CZWdpblBhblNjYW5fLmJpbmQodGhpcykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXBhbicsdGhpcy5vblVwZGF0ZVBhblNjYW5fLmJpbmQodGhpcykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHBhbicsdGhpcy5vbkVuZFBhblNjYW5fLmJpbmQodGhpcykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZ2luc2VsZWN0aW9uJyx0aGlzLm9uQmVnaW5TZWxlY3Rpb25fLmJpbmQodGhpcykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXNlbGVjdGlvbicsdGhpcy5vblVwZGF0ZVNlbGVjdGlvbl8uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW5kc2VsZWN0aW9uJyx0aGlzLm9uRW5kU2VsZWN0aW9uXy5iaW5kKHRoaXMpKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnpvb20nLHRoaXMub25CZWdpblpvb21fLmJpbmQodGhpcykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXpvb20nLHRoaXMub25VcGRhdGVab29tXy5iaW5kKHRoaXMpKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbmR6b29tJyx0aGlzLm9uRW5kWm9vbV8uYmluZCh0aGlzKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW50ZXJ0aW1pbmcnLHRoaXMudGltaW5nVG9vbF8ub25FbnRlclRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnRpbWluZycsdGhpcy50aW1pbmdUb29sXy5vbkJlZ2luVGltaW5nLmJpbmQodGhpcy50aW1pbmdUb29sXykpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXRpbWluZycsdGhpcy50aW1pbmdUb29sXy5vblVwZGF0ZVRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbmR0aW1pbmcnLHRoaXMudGltaW5nVG9vbF8ub25FbmRUaW1pbmcuYmluZCh0aGlzLnRpbWluZ1Rvb2xfKSk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZXhpdHRpbWluZycsdGhpcy50aW1pbmdUb29sXy5vbkV4aXRUaW1pbmcuYmluZCh0aGlzLnRpbWluZ1Rvb2xfKSk7dmFyIG09dHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLnN1cHBvcnRlZE1vZGVNYXNrPW0uU0VMRUNUSU9OfG0uUEFOU0NBTnxtLlpPT018bS5USU1JTkc7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0dGluZ3NLZXk9J3RpbWVsaW5lVHJhY2tWaWV3Lm1vdXNlTW9kZVNlbGVjdG9yJzt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRLZXlDb2RlRm9yTW9kZShtLlBBTlNDQU4sJzInLmNoYXJDb2RlQXQoMCkpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldEtleUNvZGVGb3JNb2RlKG0uU0VMRUNUSU9OLCcxJy5jaGFyQ29kZUF0KDApKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRLZXlDb2RlRm9yTW9kZShtLlpPT00sJzMnLmNoYXJDb2RlQXQoMCkpO3RoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldEtleUNvZGVGb3JNb2RlKG0uVElNSU5HLCc0Jy5jaGFyQ29kZUF0KDApKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRNb2RpZmllckZvckFsdGVybmF0ZU1vZGUobS5TRUxFQ1RJT04sdHIudWkuYi5NT0RJRklFUi5TSElGVCk7dGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlKG0uUEFOU0NBTix0ci51aS5iLk1PRElGSUVSLlNQQUNFKTt0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRNb2RpZmllckZvckFsdGVybmF0ZU1vZGUobS5aT09NLHRyLnVpLmIuTU9ESUZJRVIuQ01EX09SX0NUUkwpO30sZ2V0IGJydXNoaW5nU3RhdGVDb250cm9sbGVyKCl7cmV0dXJuIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfO30sc2V0IGJydXNoaW5nU3RhdGVDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKXtpZih0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyl7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJyx0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8pO30KK3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfPWJydXNoaW5nU3RhdGVDb250cm9sbGVyO2lmKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKXt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7fX0sc2V0IHRpbWVsaW5lVmlldyh2aWV3KXt0aGlzLnRpbWVsaW5lVmlld189dmlldzt9LG9uU2VsZWN0aW9uQ2hhbmdlZF86ZnVuY3Rpb24oKXt0aGlzLnNob3dIaW50VGV4dF8oJ1ByZXNzIFwnbVwnIHRvIG1hcmsgY3VycmVudCBzZWxlY3Rpb24nKTt0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7dGhyb3cgbmV3IEVycm9yKCdETyBOT1QgQ0FMTCBUSElTJyk7fSxzZXQgaGlnaGxpZ2h0KGhpZ2hsaWdodCl7dGhyb3cgbmV3IEVycm9yKCdETyBOT1QgQ0FMTCBUSElTJyk7fSxkZXRhY2g6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsVHJhY2tfLmRldGFjaCgpO3RoaXMudXBwZXJNb2RlbFRyYWNrXy5kZXRhY2goKTt0aGlzLnZpZXdwb3J0Xy5kZXRhY2goKTt9LGdldCB2aWV3cG9ydCgpe3JldHVybiB0aGlzLnZpZXdwb3J0Xzt9LGdldCBtb2RlbCgpe3JldHVybiB0aGlzLm1vZGVsXzt9LHNldCBtb2RlbChtb2RlbCl7aWYoIW1vZGVsKQordGhyb3cgbmV3IEVycm9yKCdNb2RlbCBjYW5ub3QgYmUgdW5kZWZpbmVkJyk7dmFyIG1vZGVsSW5zdGFuY2VDaGFuZ2VkPXRoaXMubW9kZWxfIT09bW9kZWw7dGhpcy5tb2RlbF89bW9kZWw7dGhpcy5tb2RlbFRyYWNrXy5tb2RlbD1tb2RlbDt0aGlzLnVwcGVyTW9kZWxUcmFja18ubW9kZWw9bW9kZWw7aWYobW9kZWxJbnN0YW5jZUNoYW5nZWQpCit0aGlzLnZpZXdwb3J0Xy5zZXRXaGVuUG9zc2libGUodGhpcy5zZXRJbml0aWFsVmlld3BvcnRfLmJpbmQodGhpcykpO30sZ2V0IGhhc1Zpc2libGVDb250ZW50KCl7cmV0dXJuIHRoaXMubW9kZWxUcmFja18uaGFzVmlzaWJsZUNvbnRlbnR8fHRoaXMudXBwZXJNb2RlbFRyYWNrXy5oYXNWaXNpYmxlQ29udGVudDt9LHNldEluaXRpYWxWaWV3cG9ydF86ZnVuY3Rpb24oKXt0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLnVwZGF0ZUNhbnZhc1NpemVJZk5lZWRlZF8oKTt2YXIgdz10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy53aWR0aDt2YXIgbWluO3ZhciByYW5nZTtpZih0aGlzLm1vZGVsXy5ib3VuZHMuaXNFbXB0eSl7bWluPTA7cmFuZ2U9MTAwMDt9ZWxzZSBpZih0aGlzLm1vZGVsXy5ib3VuZHMucmFuZ2U9PT0wKXttaW49dGhpcy5tb2RlbF8uYm91bmRzLm1pbjtyYW5nZT0xMDAwO31lbHNle21pbj10aGlzLm1vZGVsXy5ib3VuZHMubWluO3JhbmdlPXRoaXMubW9kZWxfLmJvdW5kcy5yYW5nZTt9Cit2YXIgYm9vc3Q9cmFuZ2UqMC4xNTt0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnNldCh0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSk7dGhpcy5kaXNwbGF5VHJhbnNmb3JtXy54U2V0V29ybGRCb3VuZHMobWluLWJvb3N0LG1pbityYW5nZStib29zdCx3KTt0aGlzLnZpZXdwb3J0Xy5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGhpcy5kaXNwbGF5VHJhbnNmb3JtXyk7fSxhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrOmZ1bmN0aW9uKGZpbHRlcixzZWxlY3Rpb24pe3ZhciBtb2RlbFRyYWNrPXRoaXMubW9kZWxUcmFja187dmFyIGZpcnN0VD1tb2RlbFRyYWNrLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2soZmlsdGVyLHNlbGVjdGlvbik7dmFyIGxhc3RUPWZpcnN0VC5hZnRlcihmdW5jdGlvbigpe3RoaXMudXBwZXJNb2RlbFRyYWNrXy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uKGZpbHRlcixzZWxlY3Rpb24pO30sdGhpcyk7cmV0dXJuIGZpcnN0VDt9LG9uTW91c2VNb3ZlXzpmdW5jdGlvbihlKXtpZih0aGlzLmlzWm9vbWluZ18pCityZXR1cm47dGhpcy5zdG9yZUxhc3RNb3VzZVBvc18oZSk7fSxvblRvdWNoU3RhcnRfOmZ1bmN0aW9uKGUpe3RoaXMuc3RvcmVMYXN0VG91Y2hQb3NpdGlvbnNfKGUpO3RoaXMuZm9jdXNFbGVtZW50c18oKTt9LG9uVG91Y2hNb3ZlXzpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dGhpcy5vblVwZGF0ZVRyYW5zZm9ybUZvclRvdWNoXyhlKTt9LG9uVG91Y2hFbmRfOmZ1bmN0aW9uKGUpe3RoaXMuc3RvcmVMYXN0VG91Y2hQb3NpdGlvbnNfKGUpO3RoaXMuZm9jdXNFbGVtZW50c18oKTt9LGFkZEhvdEtleXNfOmZ1bmN0aW9uKCl7dGhpcy5hZGRLZXlEb3duSG90S2V5c18oKTt0aGlzLmFkZEtleVByZXNzSG90S2V5c18oKTt9LGFkZEtleVByZXNzSG90S2V5c186ZnVuY3Rpb24oKXt2YXIgYWRkQmluZGluZz1mdW5jdGlvbihkaWN0KXtkaWN0LmV2ZW50VHlwZT0na2V5cHJlc3MnO2RpY3QudXNlQ2FwdHVyZT1mYWxzZTtkaWN0LnRoaXNBcmc9dGhpczt2YXIgYmluZGluZz1uZXcgdHIudWkuYi5Ib3RLZXkoZGljdCk7dGhpcy4kLmhvdGtleV9jb250cm9sbGVyLmFkZEhvdEtleShiaW5kaW5nKTt9LmJpbmQodGhpcyk7YWRkQmluZGluZyh7a2V5Q29kZXM6Wyd3Jy5jaGFyQ29kZUF0KDApLCcsJy5jaGFyQ29kZUF0KDApXSxjYWxsYmFjazpmdW5jdGlvbihlKXt0aGlzLnpvb21CeV8oMS41LHRydWUpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGVzOlsncycuY2hhckNvZGVBdCgwKSwnbycuY2hhckNvZGVBdCgwKV0sY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy56b29tQnlfKDEvMS41LHRydWUpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGU6J2cnLmNoYXJDb2RlQXQoMCksY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy5vbkdyaWRUb2dnbGVfKHRydWUpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGU6J0cnLmNoYXJDb2RlQXQoMCksY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy5vbkdyaWRUb2dnbGVfKGZhbHNlKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KTthZGRCaW5kaW5nKHtrZXlDb2RlczpbJ1cnLmNoYXJDb2RlQXQoMCksJzwnLmNoYXJDb2RlQXQoMCldLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe3RoaXMuem9vbUJ5XygxMCx0cnVlKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KTthZGRCaW5kaW5nKHtrZXlDb2RlczpbJ1MnLmNoYXJDb2RlQXQoMCksJ08nLmNoYXJDb2RlQXQoMCldLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe3RoaXMuem9vbUJ5XygxLzEwLHRydWUpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGU6J2EnLmNoYXJDb2RlQXQoMCksY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy5xdWV1ZVNtb290aFBhbl8odGhpcy52aWV3V2lkdGhfKjAuMywwKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KTthZGRCaW5kaW5nKHtrZXlDb2RlczpbJ2QnLmNoYXJDb2RlQXQoMCksJ2UnLmNoYXJDb2RlQXQoMCldLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe3RoaXMucXVldWVTbW9vdGhQYW5fKHRoaXMudmlld1dpZHRoXyotMC4zLDApO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGU6J0EnLmNoYXJDb2RlQXQoMCksY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy5xdWV1ZVNtb290aFBhbl8odmlld1dpZHRoKjAuNSwwKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KTthZGRCaW5kaW5nKHtrZXlDb2RlOidEJy5jaGFyQ29kZUF0KDApLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe3RoaXMucXVldWVTbW9vdGhQYW5fKHZpZXdXaWR0aCotMC41LDApO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGU6JzAnLmNoYXJDb2RlQXQoMCksY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy5zZXRJbml0aWFsVmlld3BvcnRfKCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt9fSk7YWRkQmluZGluZyh7a2V5Q29kZTonZicuY2hhckNvZGVBdCgwKSxjYWxsYmFjazpmdW5jdGlvbihlKXt0aGlzLnpvb21Ub1NlbGVjdGlvbigpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGU6J20nLmNoYXJDb2RlQXQoMCksY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy5zZXRDdXJyZW50U2VsZWN0aW9uQXNJbnRlcmVzdFJhbmdlXygpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fX0pO2FkZEJpbmRpbmcoe2tleUNvZGU6J2gnLmNoYXJDb2RlQXQoMCksY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy50b2dnbGVIaWdoRGV0YWlsc18oKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KTt9LGdldCB2aWV3V2lkdGhfKCl7cmV0dXJuIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLmNsaWVudFdpZHRoO30sYWRkS2V5RG93bkhvdEtleXNfOmZ1bmN0aW9uKCl7dmFyIGFkZEJpbmRpbmc9ZnVuY3Rpb24oZGljdCl7ZGljdC5ldmVudFR5cGU9J2tleWRvd24nO2RpY3QudXNlQ2FwdHVyZT1mYWxzZTtkaWN0LnRoaXNBcmc9dGhpczt2YXIgYmluZGluZz1uZXcgdHIudWkuYi5Ib3RLZXkoZGljdCk7dGhpcy4kLmhvdGtleV9jb250cm9sbGVyLmFkZEhvdEtleShiaW5kaW5nKTt9LmJpbmQodGhpcyk7YWRkQmluZGluZyh7a2V5Q29kZTozNyxjYWxsYmFjazpmdW5jdGlvbihlKXt2YXIgY3VyU2VsPXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnNlbGVjdGlvbjt2YXIgc2VsPXRoaXMudmlld3BvcnQuZ2V0U2hpZnRlZFNlbGVjdGlvbihjdXJTZWwsLTEpO2lmKHNlbCl7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsKTt0aGlzLnBhblRvU2VsZWN0aW9uKCk7fWVsc2V7dGhpcy5xdWV1ZVNtb290aFBhbl8odGhpcy52aWV3V2lkdGhfKjAuMywwKTt9CitlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt9fSk7YWRkQmluZGluZyh7a2V5Q29kZTozOSxjYWxsYmFjazpmdW5jdGlvbihlKXt2YXIgY3VyU2VsPXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnNlbGVjdGlvbjt2YXIgc2VsPXRoaXMudmlld3BvcnQuZ2V0U2hpZnRlZFNlbGVjdGlvbihjdXJTZWwsMSk7aWYoc2VsKXt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyLmNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZShzZWwpO3RoaXMucGFuVG9TZWxlY3Rpb24oKTt9ZWxzZXt0aGlzLnF1ZXVlU21vb3RoUGFuXygtdGhpcy52aWV3V2lkdGhfKjAuMywwKTt9CitlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt9fSk7fSxvbkRibENsaWNrXzpmdW5jdGlvbihlKXtpZih0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5tb2RlIT09dHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTikKK3JldHVybjt2YXIgY3VyU2VsZWN0aW9uPXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnNlbGVjdGlvbjtpZighY3VyU2VsZWN0aW9uLmxlbmd0aHx8IWN1clNlbGVjdGlvblswXS50aXRsZSkKK3JldHVybjt2YXIgc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldCgpO3ZhciBmaWx0ZXI9bmV3IHRyLmMuRXhhY3RUaXRsZUZpbHRlcihjdXJTZWxlY3Rpb25bMF0udGl0bGUpO3RoaXMubW9kZWxUcmFja18uYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbihmaWx0ZXIsc2VsZWN0aW9uKTt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyLmNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZShzZWxlY3Rpb24pO30sb25Nb3VzZVdoZWVsXzpmdW5jdGlvbihlKXtpZighZS5hbHRLZXkpCityZXR1cm47dmFyIGRlbHRhPWUud2hlZWxEZWx0YS8xMjA7dmFyIHpvb21TY2FsZT1NYXRoLnBvdygxLjUsZGVsdGEpO3RoaXMuem9vbUJ5Xyh6b29tU2NhbGUpO2UucHJldmVudERlZmF1bHQoKTt9LG9uTW91c2VEb3duXzpmdW5jdGlvbihlKXtpZih0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5tb2RlIT09dHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTikKIHJldHVybjtpZihlLnRhcmdldCE9PXRoaXMucnVsZXJUcmFja18pCiByZXR1cm47dGhpcy5kcmFnQmVnaW5FdmVudF89dW5kZWZpbmVkO2lmKHRoaXMueE5hdlN0cmluZ01hcmtlcl8pe3RoaXMubW9kZWwucmVtb3ZlQW5ub3RhdGlvbih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKTt0aGlzLnhOYXZTdHJpbmdNYXJrZXJfPXVuZGVmaW5lZDt9Ci12YXIgZHQ9dGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dHIuYi51aS50cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAoZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT10aGlzLnJ1bGVyVHJhY2tfKQotcmV0dXJuO3ZhciByZWxhdGl2ZVBvc2l0aW9uPXRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7dmFyIGxvYz10ci5jLkxvY2F0aW9uLmZyb21WaWV3Q29vcmRpbmF0ZXModGhpcy52aWV3cG9ydF8scmVsYXRpdmVQb3NpdGlvbi54LHJlbGF0aXZlUG9zaXRpb24ueSk7aWYoIWxvYykKK3ZhciBkdD10aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt0ci51aS5iLnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcChmdW5jdGlvbihlKXtpZihlLnRhcmdldD09PXRoaXMucnVsZXJUcmFja18pCityZXR1cm47dmFyIHJlbGF0aXZlUG9zaXRpb249dGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTt2YXIgbG9jPXRyLm1vZGVsLkxvY2F0aW9uLmZyb21WaWV3Q29vcmRpbmF0ZXModGhpcy52aWV3cG9ydF8scmVsYXRpdmVQb3NpdGlvbi54LHJlbGF0aXZlUG9zaXRpb24ueSk7aWYoIWxvYykKIHJldHVybjtpZih0aGlzLmd1aWRlTGluZUFubm90YXRpb25fPT09dW5kZWZpbmVkKXt0aGlzLmd1aWRlTGluZUFubm90YXRpb25fPW5ldyB0ci5tb2RlbC5YTWFya2VyQW5ub3RhdGlvbihsb2MueFdvcmxkKTt0aGlzLm1vZGVsLmFkZEFubm90YXRpb24odGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXyk7fWVsc2V7dGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXy50aW1lc3RhbXA9bG9jLnhXb3JsZDt0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmludmFsaWRhdGUoKTt9Ci12YXIgc3RhdGU9bmV3IHRyLmMuVUlTdGF0ZShsb2MsdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uc2NhbGVYKTt0aGlzLnRpbWVsaW5lVmlld18uc2V0RmluZEN0bFRleHQoc3RhdGUudG9Vc2VyRnJpZW5kbHlTdHJpbmcodGhpcy52aWV3cG9ydF8pKTt9LmJpbmQodGhpcykpO30scXVldWVTbW9vdGhQYW5fOmZ1bmN0aW9uKHZpZXdEZWx0YVgsZGVsdGFZKXt2YXIgZGVsdGFYPXRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnhWaWV3VmVjdG9yVG9Xb3JsZCh2aWV3RGVsdGFYKTt2YXIgYW5pbWF0aW9uPW5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbihkZWx0YVgsZGVsdGFZKTt0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTt9LHpvb21CeV86ZnVuY3Rpb24oc2NhbGUsc21vb3RoKXtpZihzY2FsZTw9MCl7cmV0dXJuO30KLXNtb290aD0hIXNtb290aDt2YXIgdnA9dGhpcy52aWV3cG9ydF87dmFyIHZpZXdXaWR0aD10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy5jbGllbnRXaWR0aDt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgZ29hbEZvY2FsUG9pbnRYVmlldz10aGlzLmxhc3RNb3VzZVZpZXdQb3NfLngqcGl4ZWxSYXRpbzt2YXIgZ29hbEZvY2FsUG9pbnRYV29ybGQ9dnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKGdvYWxGb2NhbFBvaW50WFZpZXcpO2lmKHNtb290aCl7dmFyIGFuaW1hdGlvbj1uZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24oZ29hbEZvY2FsUG9pbnRYV29ybGQsZ29hbEZvY2FsUG9pbnRYVmlldyx2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZLHNjYWxlKTt2cC5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTt9ZWxzZXt0ZW1wRGlzcGxheVRyYW5zZm9ybS5zZXQodnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0pO3RlbXBEaXNwbGF5VHJhbnNmb3JtLnNjYWxlWD10ZW1wRGlzcGxheVRyYW5zZm9ybS5zY2FsZVgqc2NhbGU7dGVtcERpc3BsYXlUcmFuc2Zvcm0ueFBhbldvcmxkUG9zVG9WaWV3UG9zKGdvYWxGb2NhbFBvaW50WFdvcmxkLGdvYWxGb2NhbFBvaW50WFZpZXcsdmlld1dpZHRoKTt2cC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGVtcERpc3BsYXlUcmFuc2Zvcm0pO319LHpvb21Ub1NlbGVjdGlvbjpmdW5jdGlvbigpe2lmKCF0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5sZW5ndGgpCi1yZXR1cm47dmFyIGJvdW5kcz10aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5ib3VuZHM7aWYoIWJvdW5kcy5yYW5nZSkKLXJldHVybjt2YXIgd29ybGRDZW50ZXI9Ym91bmRzLmNlbnRlcjt2YXIgdmlld0NlbnRlcj10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy53aWR0aC8yO3ZhciBhZGp1c3RlZFdvcmxkUmFuZ2U9Ym91bmRzLnJhbmdlKjEuMjU7dmFyIG5ld1NjYWxlPXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoL2FkanVzdGVkV29ybGRSYW5nZTt2YXIgem9vbUluUmF0aW89bmV3U2NhbGUvdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uc2NhbGVYO3ZhciBhbmltYXRpb249bmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uKHdvcmxkQ2VudGVyLHZpZXdDZW50ZXIsdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSx6b29tSW5SYXRpbyk7dGhpcy52aWV3cG9ydF8ucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7fSxwYW5Ub1NlbGVjdGlvbjpmdW5jdGlvbigpe2lmKCF0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5sZW5ndGgpCi1yZXR1cm47dmFyIGJvdW5kcz10aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5ib3VuZHM7dmFyIHdvcmxkQ2VudGVyPWJvdW5kcy5jZW50ZXI7dmFyIHZpZXdXaWR0aD10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy53aWR0aDt2YXIgZHQ9dGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07aWYoZmFsc2UmJiFib3VuZHMucmFuZ2Upe2lmKGR0LnhXb3JsZFRvVmlldyhib3VuZHMuY2VudGVyKTwwfHxkdC54V29ybGRUb1ZpZXcoYm91bmRzLmNlbnRlcik+dmlld1dpZHRoKXt0ZW1wRGlzcGxheVRyYW5zZm9ybS5zZXQoZHQpO3RlbXBEaXNwbGF5VHJhbnNmb3JtLnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh3b3JsZENlbnRlciwnY2VudGVyJyx2aWV3V2lkdGgpO3ZhciBkZWx0YVg9dGVtcERpc3BsYXlUcmFuc2Zvcm0ucGFuWC1kdC5wYW5YO3ZhciBhbmltYXRpb249bmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKGRlbHRhWCwwKTt0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTt9Cit2YXIgc3RhdGU9bmV3IHRyLnVpLmIuVUlTdGF0ZShsb2MsdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uc2NhbGVYKTt0aGlzLnRpbWVsaW5lVmlld18uc2V0RmluZEN0bFRleHQoc3RhdGUudG9Vc2VyRnJpZW5kbHlTdHJpbmcodGhpcy52aWV3cG9ydF8pKTt9LmJpbmQodGhpcyksdW5kZWZpbmVkLGZ1bmN0aW9uIG9uS2V5VXBEdXJpbmdEcmFnKCl7aWYodGhpcy5kcmFnQmVnaW5FdmVudF8pe3RoaXMuc2V0RHJhZ0JveFBvc2l0aW9uXyh0aGlzLmRyYWdCb3hYU3RhcnRfLHRoaXMuZHJhZ0JveFlTdGFydF8sdGhpcy5kcmFnQm94WEVuZF8sdGhpcy5kcmFnQm94WUVuZF8pO319LmJpbmQodGhpcykpO30scXVldWVTbW9vdGhQYW5fOmZ1bmN0aW9uKHZpZXdEZWx0YVgsZGVsdGFZKXt2YXIgZGVsdGFYPXRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnhWaWV3VmVjdG9yVG9Xb3JsZCh2aWV3RGVsdGFYKTt2YXIgYW5pbWF0aW9uPW5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb24oZGVsdGFYLGRlbHRhWSk7dGhpcy52aWV3cG9ydF8ucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7fSx6b29tQnlfOmZ1bmN0aW9uKHNjYWxlLHNtb290aCl7aWYoc2NhbGU8PTApe3JldHVybjt9CitzbW9vdGg9ISFzbW9vdGg7dmFyIHZwPXRoaXMudmlld3BvcnRfO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBnb2FsRm9jYWxQb2ludFhWaWV3PXRoaXMubGFzdE1vdXNlVmlld1Bvc18ueCpwaXhlbFJhdGlvO3ZhciBnb2FsRm9jYWxQb2ludFhXb3JsZD12cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS54Vmlld1RvV29ybGQoZ29hbEZvY2FsUG9pbnRYVmlldyk7aWYoc21vb3RoKXt2YXIgYW5pbWF0aW9uPW5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24oZ29hbEZvY2FsUG9pbnRYV29ybGQsZ29hbEZvY2FsUG9pbnRYVmlldyx2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZLHNjYWxlKTt2cC5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTt9ZWxzZXt0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnNldCh2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSk7dGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5zY2FsZVgqPXNjYWxlO3RoaXMuZGlzcGxheVRyYW5zZm9ybV8ueFBhbldvcmxkUG9zVG9WaWV3UG9zKGdvYWxGb2NhbFBvaW50WFdvcmxkLGdvYWxGb2NhbFBvaW50WFZpZXcsdGhpcy52aWV3V2lkdGhfKTt2cC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGhpcy5kaXNwbGF5VHJhbnNmb3JtXyk7fX0sem9vbVRvU2VsZWN0aW9uOmZ1bmN0aW9uKCl7aWYoIXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5sZW5ndGgpCityZXR1cm47dmFyIGJvdW5kcz10aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbk9mSW50ZXJlc3QuYm91bmRzO2lmKCFib3VuZHMucmFuZ2UpCityZXR1cm47dmFyIHdvcmxkQ2VudGVyPWJvdW5kcy5jZW50ZXI7dmFyIHZpZXdDZW50ZXI9dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMud2lkdGgvMjt2YXIgYWRqdXN0ZWRXb3JsZFJhbmdlPWJvdW5kcy5yYW5nZSoxLjI1O3ZhciBuZXdTY2FsZT10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy53aWR0aC9hZGp1c3RlZFdvcmxkUmFuZ2U7dmFyIHpvb21JblJhdGlvPW5ld1NjYWxlL3RoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnNjYWxlWDt2YXIgYW5pbWF0aW9uPW5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24od29ybGRDZW50ZXIsdmlld0NlbnRlcix0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZLHpvb21JblJhdGlvKTt0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTt9LHBhblRvU2VsZWN0aW9uOmZ1bmN0aW9uKCl7aWYoIXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5sZW5ndGgpCityZXR1cm47dmFyIGJvdW5kcz10aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbk9mSW50ZXJlc3QuYm91bmRzO3ZhciB3b3JsZENlbnRlcj1ib3VuZHMuY2VudGVyO3ZhciB2aWV3V2lkdGg9dGhpcy52aWV3V2lkdGhfO3ZhciBkdD10aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTtpZihmYWxzZSYmIWJvdW5kcy5yYW5nZSl7aWYoZHQueFdvcmxkVG9WaWV3KGJvdW5kcy5jZW50ZXIpPDB8fGR0LnhXb3JsZFRvVmlldyhib3VuZHMuY2VudGVyKT52aWV3V2lkdGgpe3RoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2V0KGR0KTt0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh3b3JsZENlbnRlciwnY2VudGVyJyx2aWV3V2lkdGgpO3ZhciBkZWx0YVg9dGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5wYW5YLWR0LnBhblg7dmFyIGFuaW1hdGlvbj1uZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKGRlbHRhWCwwKTt0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTt9CiByZXR1cm47fQotdGVtcERpc3BsYXlUcmFuc2Zvcm0uc2V0KGR0KTt0ZW1wRGlzcGxheVRyYW5zZm9ybS54UGFuV29ybGRCb3VuZHNJbnRvVmlldyhib3VuZHMubWluLGJvdW5kcy5tYXgsdmlld1dpZHRoKTt2YXIgZGVsdGFYPXRlbXBEaXNwbGF5VHJhbnNmb3JtLnBhblgtZHQucGFuWDt2YXIgYW5pbWF0aW9uPW5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbihkZWx0YVgsMCk7dGhpcy52aWV3cG9ydF8ucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7fSxuYXZUb1Bvc2l0aW9uOmZ1bmN0aW9uKHVpU3RhdGUsc2hvd05hdkxpbmUpe3ZhciBsb2NhdGlvbj11aVN0YXRlLmxvY2F0aW9uO3ZhciBzY2FsZVg9dWlTdGF0ZS5zY2FsZVg7dmFyIHRyYWNrPWxvY2F0aW9uLmdldENvbnRhaW5pbmdUcmFjayh0aGlzLnZpZXdwb3J0Xyk7dmFyIHdvcmxkQ2VudGVyPWxvY2F0aW9uLnhXb3JsZDt2YXIgdmlld0NlbnRlcj10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy53aWR0aC81O3ZhciB6b29tSW5SYXRpbz1zY2FsZVgvdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uc2NhbGVYO3RyYWNrLnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTt2YXIgYW5pbWF0aW9uPW5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbih3b3JsZENlbnRlcix2aWV3Q2VudGVyLHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblksem9vbUluUmF0aW8pO3RoaXMudmlld3BvcnRfLnF1ZXVlRGlzcGxheVRyYW5zZm9ybUFuaW1hdGlvbihhbmltYXRpb24pO2lmKCFzaG93TmF2TGluZSkKK3RoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2V0KGR0KTt0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnhQYW5Xb3JsZEJvdW5kc0ludG9WaWV3KGJvdW5kcy5taW4sYm91bmRzLm1heCx2aWV3V2lkdGgpO3ZhciBkZWx0YVg9dGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5wYW5YLWR0LnBhblg7dmFyIGFuaW1hdGlvbj1uZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKGRlbHRhWCwwKTt0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTt9LG5hdlRvUG9zaXRpb246ZnVuY3Rpb24odWlTdGF0ZSxzaG93TmF2TGluZSl7dmFyIGxvY2F0aW9uPXVpU3RhdGUubG9jYXRpb247dmFyIHNjYWxlWD11aVN0YXRlLnNjYWxlWDt2YXIgdHJhY2s9bG9jYXRpb24uZ2V0Q29udGFpbmluZ1RyYWNrKHRoaXMudmlld3BvcnRfKTt2YXIgd29ybGRDZW50ZXI9bG9jYXRpb24ueFdvcmxkO3ZhciB2aWV3Q2VudGVyPXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoLzU7dmFyIHpvb21JblJhdGlvPXNjYWxlWC90aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5zY2FsZVg7dHJhY2suc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpO3ZhciBhbmltYXRpb249bmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbih3b3JsZENlbnRlcix2aWV3Q2VudGVyLHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblksem9vbUluUmF0aW8pO3RoaXMudmlld3BvcnRfLnF1ZXVlRGlzcGxheVRyYW5zZm9ybUFuaW1hdGlvbihhbmltYXRpb24pO2lmKCFzaG93TmF2TGluZSkKIHJldHVybjtpZih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKQotdGhpcy5tb2RlbC5yZW1vdmVBbm5vdGF0aW9uKHRoaXMueE5hdlN0cmluZ01hcmtlcl8pO3RoaXMueE5hdlN0cmluZ01hcmtlcl89bmV3IHRyLm1vZGVsLlhNYXJrZXJBbm5vdGF0aW9uKHdvcmxkQ2VudGVyKTt0aGlzLm1vZGVsLmFkZEFubm90YXRpb24odGhpcy54TmF2U3RyaW5nTWFya2VyXyk7fSxzZXRDdXJyZW50U2VsZWN0aW9uQXNJbnRlcmVzdFJhbmdlXzpmdW5jdGlvbigpe3ZhciBzZWxlY3Rpb25Cb3VuZHM9dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5zZWxlY3Rpb24uYm91bmRzO2lmKHNlbGVjdGlvbkJvdW5kcy5lbXB0eSl7dGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5yZXNldCgpO3JldHVybjt9Cit0aGlzLm1vZGVsLnJlbW92ZUFubm90YXRpb24odGhpcy54TmF2U3RyaW5nTWFya2VyXyk7dGhpcy54TmF2U3RyaW5nTWFya2VyXz1uZXcgdHIubW9kZWwuWE1hcmtlckFubm90YXRpb24od29ybGRDZW50ZXIpO3RoaXMubW9kZWwuYWRkQW5ub3RhdGlvbih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKTt9LHNldEN1cnJlbnRTZWxlY3Rpb25Bc0ludGVyZXN0UmFuZ2VfOmZ1bmN0aW9uKCl7dmFyIHNlbGVjdGlvbkJvdW5kcz10aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5zZWxlY3Rpb24uYm91bmRzO2lmKHNlbGVjdGlvbkJvdW5kcy5lbXB0eSl7dGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5yZXNldCgpO3JldHVybjt9CiBpZih0aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlLm1pbj09c2VsZWN0aW9uQm91bmRzLm1pbiYmdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5tYXg9PXNlbGVjdGlvbkJvdW5kcy5tYXgpCiB0aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlLnJlc2V0KCk7ZWxzZQotdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5zZXQoc2VsZWN0aW9uQm91bmRzKTt9LHRvZ2dsZUhpZ2hEZXRhaWxzXzpmdW5jdGlvbigpe3RoaXMudmlld3BvcnRfLmhpZ2hEZXRhaWxzPSF0aGlzLnZpZXdwb3J0Xy5oaWdoRGV0YWlsczt9LGhpZGVEcmFnQm94XzpmdW5jdGlvbigpe3RoaXMuZHJhZ0JveF8uc3R5bGUubGVmdD0nLTEwMDBweCc7dGhpcy5kcmFnQm94Xy5zdHlsZS50b3A9Jy0xMDAwcHgnO3RoaXMuZHJhZ0JveF8uc3R5bGUud2lkdGg9MDt0aGlzLmRyYWdCb3hfLnN0eWxlLmhlaWdodD0wO30sc2V0RHJhZ0JveFBvc2l0aW9uXzpmdW5jdGlvbih4U3RhcnQseVN0YXJ0LHhFbmQseUVuZCl7dmFyIGxvWT1NYXRoLm1pbih5U3RhcnQseUVuZCk7dmFyIGhpWT1NYXRoLm1heCh5U3RhcnQseUVuZCk7dmFyIGxvWD1NYXRoLm1pbih4U3RhcnQseEVuZCk7dmFyIGhpWD1NYXRoLm1heCh4U3RhcnQseEVuZCk7dmFyIG1vZGVsVHJhY2tSZWN0PXRoaXMubW9kZWxUcmFja18uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGRyYWdSZWN0PXtsZWZ0OmxvWCx0b3A6bG9ZLHdpZHRoOmhpWC1sb1gsaGVpZ2h0OmhpWS1sb1l9O2RyYWdSZWN0LnJpZ2h0PWRyYWdSZWN0LmxlZnQrZHJhZ1JlY3Qud2lkdGg7ZHJhZ1JlY3QuYm90dG9tPWRyYWdSZWN0LnRvcCtkcmFnUmVjdC5oZWlnaHQ7dmFyIG1vZGVsVHJhY2tDb250YWluZXJSZWN0PXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGNsaXBSZWN0PXtsZWZ0Om1vZGVsVHJhY2tDb250YWluZXJSZWN0LmxlZnQsdG9wOm1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcCxyaWdodDptb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5yaWdodCxib3R0b206bW9kZWxUcmFja0NvbnRhaW5lclJlY3QuYm90dG9tfTt2YXIgaGVhZGluZ1dpZHRoPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucXVlcnlTZWxlY3RvcignaGVhZGluZycpKS53aWR0aDt2YXIgdHJhY2tUaXRsZVdpZHRoPXBhcnNlSW50KGhlYWRpbmdXaWR0aCk7Y2xpcFJlY3QubGVmdD1jbGlwUmVjdC5sZWZ0K3RyYWNrVGl0bGVXaWR0aDt2YXIgZmluYWxEcmFnQm94PWludGVyc2VjdFJlY3RfKGNsaXBSZWN0LGRyYWdSZWN0KTt0aGlzLmRyYWdCb3hfLnN0eWxlLmxlZnQ9ZmluYWxEcmFnQm94LmxlZnQrJ3B4Jzt0aGlzLmRyYWdCb3hfLnN0eWxlLndpZHRoPWZpbmFsRHJhZ0JveC53aWR0aCsncHgnO3RoaXMuZHJhZ0JveF8uc3R5bGUudG9wPWZpbmFsRHJhZ0JveC50b3ArJ3B4Jzt0aGlzLmRyYWdCb3hfLnN0eWxlLmhlaWdodD1maW5hbERyYWdCb3guaGVpZ2h0KydweCc7dGhpcy5kcmFnQm94Xy5zdHlsZS53aGl0ZVNwYWNlPSdub3dyYXAnO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciBjYW52PXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzO3ZhciBkdD10aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgbG9XWD1kdC54Vmlld1RvV29ybGQoKGxvWC1jYW52Lm9mZnNldExlZnQpKnBpeGVsUmF0aW8pO3ZhciBoaVdYPWR0LnhWaWV3VG9Xb3JsZCgoaGlYLWNhbnYub2Zmc2V0TGVmdCkqcGl4ZWxSYXRpbyk7dGhpcy5kcmFnQm94Xy50ZXh0Q29udGVudD10ci5iLnVuaXRzLnRzU3RyaW5nKChoaVdYLWxvV1gpKTt2YXIgZT1uZXcgdHIuYi5FdmVudCgnc2VsZWN0aW9uQ2hhbmdpbmcnKTtlLmxvV1g9bG9XWDtlLmhpV1g9aGlXWDt0aGlzLmRpc3BhdGNoRXZlbnQoZSk7fSxvbkdyaWRUb2dnbGVfOmZ1bmN0aW9uKGxlZnQpe3ZhciBzZWxlY3Rpb249dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5zZWxlY3Rpb247dmFyIHRiPWxlZnQ/c2VsZWN0aW9uLmJvdW5kcy5taW46c2VsZWN0aW9uLmJvdW5kcy5tYXg7aWYodGhpcy52aWV3cG9ydF8uZ3JpZEVuYWJsZWQmJnRoaXMudmlld3BvcnRfLmdyaWRTaWRlPT09bGVmdCYmdGhpcy52aWV3cG9ydF8uZ3JpZEluaXRpYWxUaW1lYmFzZT09PXRiKXt0aGlzLnZpZXdwb3J0Xy5ncmlkc2lkZT11bmRlZmluZWQ7dGhpcy52aWV3cG9ydF8uZ3JpZEVuYWJsZWQ9ZmFsc2U7dGhpcy52aWV3cG9ydF8uZ3JpZEluaXRpYWxUaW1lYmFzZT11bmRlZmluZWQ7cmV0dXJuO30KK3RoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2Uuc2V0KHNlbGVjdGlvbkJvdW5kcyk7fSx0b2dnbGVIaWdoRGV0YWlsc186ZnVuY3Rpb24oKXt0aGlzLnZpZXdwb3J0Xy5oaWdoRGV0YWlscz0hdGhpcy52aWV3cG9ydF8uaGlnaERldGFpbHM7fSxoaWRlRHJhZ0JveF86ZnVuY3Rpb24oKXt0aGlzLiQuZHJhZ19ib3guc3R5bGUubGVmdD0nLTEwMDBweCc7dGhpcy4kLmRyYWdfYm94LnN0eWxlLnRvcD0nLTEwMDBweCc7dGhpcy4kLmRyYWdfYm94LnN0eWxlLndpZHRoPTA7dGhpcy4kLmRyYWdfYm94LnN0eWxlLmhlaWdodD0wO30sc2V0RHJhZ0JveFBvc2l0aW9uXzpmdW5jdGlvbih4U3RhcnQseVN0YXJ0LHhFbmQseUVuZCl7dmFyIGxvWT1NYXRoLm1pbih5U3RhcnQseUVuZCk7dmFyIGhpWT1NYXRoLm1heCh5U3RhcnQseUVuZCk7dmFyIGxvWD1NYXRoLm1pbih4U3RhcnQseEVuZCk7dmFyIGhpWD1NYXRoLm1heCh4U3RhcnQseEVuZCk7dmFyIG1vZGVsVHJhY2tSZWN0PXRoaXMubW9kZWxUcmFja18uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGRyYWdSZWN0PXtsZWZ0OmxvWCx0b3A6bG9ZLHdpZHRoOmhpWC1sb1gsaGVpZ2h0OmhpWS1sb1l9O2RyYWdSZWN0LnJpZ2h0PWRyYWdSZWN0LmxlZnQrZHJhZ1JlY3Qud2lkdGg7ZHJhZ1JlY3QuYm90dG9tPWRyYWdSZWN0LnRvcCtkcmFnUmVjdC5oZWlnaHQ7dmFyIG1vZGVsVHJhY2tDb250YWluZXJSZWN0PXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGNsaXBSZWN0PXtsZWZ0Om1vZGVsVHJhY2tDb250YWluZXJSZWN0LmxlZnQsdG9wOm1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcCxyaWdodDptb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5yaWdodCxib3R0b206bW9kZWxUcmFja0NvbnRhaW5lclJlY3QuYm90dG9tfTt2YXIgaGVhZGluZ1dpZHRoPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucXVlcnlTZWxlY3RvcignaGVhZGluZycpKS53aWR0aDt2YXIgdHJhY2tUaXRsZVdpZHRoPXBhcnNlSW50KGhlYWRpbmdXaWR0aCk7Y2xpcFJlY3QubGVmdD1jbGlwUmVjdC5sZWZ0K3RyYWNrVGl0bGVXaWR0aDt2YXIgaW50ZXJzZWN0UmVjdF89ZnVuY3Rpb24ocjEscjIpe2lmKHIyLmxlZnQ+cjEucmlnaHR8fHIyLnJpZ2h0PHIxLmxlZnR8fHIyLnRvcD5yMS5ib3R0b218fHIyLmJvdHRvbTxyMS50b3ApCityZXR1cm4gZmFsc2U7dmFyIHJlc3VsdHM9e307cmVzdWx0cy5sZWZ0PU1hdGgubWF4KHIxLmxlZnQscjIubGVmdCk7cmVzdWx0cy50b3A9TWF0aC5tYXgocjEudG9wLHIyLnRvcCk7cmVzdWx0cy5yaWdodD1NYXRoLm1pbihyMS5yaWdodCxyMi5yaWdodCk7cmVzdWx0cy5ib3R0b209TWF0aC5taW4ocjEuYm90dG9tLHIyLmJvdHRvbSk7cmVzdWx0cy53aWR0aD1yZXN1bHRzLnJpZ2h0LXJlc3VsdHMubGVmdDtyZXN1bHRzLmhlaWdodD1yZXN1bHRzLmJvdHRvbS1yZXN1bHRzLnRvcDtyZXR1cm4gcmVzdWx0czt9Cit2YXIgZmluYWxEcmFnQm94PWludGVyc2VjdFJlY3RfKGNsaXBSZWN0LGRyYWdSZWN0KTt0aGlzLiQuZHJhZ19ib3guc3R5bGUubGVmdD1maW5hbERyYWdCb3gubGVmdCsncHgnO3RoaXMuJC5kcmFnX2JveC5zdHlsZS53aWR0aD1maW5hbERyYWdCb3gud2lkdGgrJ3B4Jzt0aGlzLiQuZHJhZ19ib3guc3R5bGUudG9wPWZpbmFsRHJhZ0JveC50b3ArJ3B4Jzt0aGlzLiQuZHJhZ19ib3guc3R5bGUuaGVpZ2h0PWZpbmFsRHJhZ0JveC5oZWlnaHQrJ3B4Jzt0aGlzLiQuZHJhZ19ib3guc3R5bGUud2hpdGVTcGFjZT0nbm93cmFwJzt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgY2Fudj10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhczt2YXIgZHQ9dGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07dmFyIGxvV1g9ZHQueFZpZXdUb1dvcmxkKChsb1gtY2Fudi5vZmZzZXRMZWZ0KSpwaXhlbFJhdGlvKTt2YXIgaGlXWD1kdC54Vmlld1RvV29ybGQoKGhpWC1jYW52Lm9mZnNldExlZnQpKnBpeGVsUmF0aW8pO3RoaXMuJC5kcmFnX2JveC50ZXh0Q29udGVudD10ci5iLnVuaXRzLlRpbWVEdXJhdGlvbi5mb3JtYXQoaGlXWC1sb1dYKTt2YXIgZT1uZXcgdHIuYi5FdmVudCgnc2VsZWN0aW9uQ2hhbmdpbmcnKTtlLmxvV1g9bG9XWDtlLmhpV1g9aGlXWDt0aGlzLmRpc3BhdGNoRXZlbnQoZSk7fSxvbkdyaWRUb2dnbGVfOmZ1bmN0aW9uKGxlZnQpe3ZhciBzZWxlY3Rpb249dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uc2VsZWN0aW9uO3ZhciB0Yj1sZWZ0P3NlbGVjdGlvbi5ib3VuZHMubWluOnNlbGVjdGlvbi5ib3VuZHMubWF4O2lmKHRoaXMudmlld3BvcnRfLmdyaWRFbmFibGVkJiZ0aGlzLnZpZXdwb3J0Xy5ncmlkU2lkZT09PWxlZnQmJnRoaXMudmlld3BvcnRfLmdyaWRJbml0aWFsVGltZWJhc2U9PT10Yil7dGhpcy52aWV3cG9ydF8uZ3JpZHNpZGU9dW5kZWZpbmVkO3RoaXMudmlld3BvcnRfLmdyaWRFbmFibGVkPWZhbHNlO3RoaXMudmlld3BvcnRfLmdyaWRJbml0aWFsVGltZWJhc2U9dW5kZWZpbmVkO3JldHVybjt9CiB2YXIgbnVtSW50ZXJ2YWxzU2luY2VTdGFydD1NYXRoLmNlaWwoKHRiLXRoaXMubW9kZWxfLmJvdW5kcy5taW4pL3RoaXMudmlld3BvcnRfLmdyaWRTdGVwXyk7dGhpcy52aWV3cG9ydF8uZ3JpZEVuYWJsZWQ9dHJ1ZTt0aGlzLnZpZXdwb3J0Xy5ncmlkU2lkZT1sZWZ0O3RoaXMudmlld3BvcnRfLmdyaWRJbml0aWFsVGltZWJhc2U9dGI7dGhpcy52aWV3cG9ydF8uZ3JpZFRpbWViYXNlPXRiLQogKG51bUludGVydmFsc1NpbmNlU3RhcnQrMSkqdGhpcy52aWV3cG9ydF8uZ3JpZFN0ZXBfO30sc3RvcmVMYXN0TW91c2VQb3NfOmZ1bmN0aW9uKGUpe3RoaXMubGFzdE1vdXNlVmlld1Bvc189dGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTt9LHN0b3JlTGFzdFRvdWNoUG9zaXRpb25zXzpmdW5jdGlvbihlKXt0aGlzLmxhc3RUb3VjaFZpZXdQb3NpdGlvbnNfPXRoaXMuZXh0cmFjdFJlbGF0aXZlVG91Y2hQb3NpdGlvbnNfKGUpO30sZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl86ZnVuY3Rpb24oZSl7dmFyIGNhbnY9dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXM7cmV0dXJue3g6ZS5jbGllbnRYLWNhbnYub2Zmc2V0TGVmdCx5OmUuY2xpZW50WS1jYW52Lm9mZnNldFRvcH07fSxleHRyYWN0UmVsYXRpdmVUb3VjaFBvc2l0aW9uc186ZnVuY3Rpb24oZSl7dmFyIGNhbnY9dGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXM7dmFyIHRvdWNoZXM9W107Zm9yKHZhciBpPTA7aTxlLnRvdWNoZXMubGVuZ3RoOysraSl7dG91Y2hlcy5wdXNoKHt4OmUudG91Y2hlc1tpXS5jbGllbnRYLWNhbnYub2Zmc2V0TGVmdCx5OmUudG91Y2hlc1tpXS5jbGllbnRZLWNhbnYub2Zmc2V0VG9wfSk7fQotcmV0dXJuIHRvdWNoZXM7fSxzdG9yZUluaXRpYWxNb3VzZURvd25Qb3NfOmZ1bmN0aW9uKGUpe3ZhciBwb3NpdGlvbj10aGlzLmV4dHJhY3RSZWxhdGl2ZU1vdXNlUG9zaXRpb25fKGUpO3RoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fLng9cG9zaXRpb24ueDt0aGlzLm1vdXNlVmlld1Bvc0F0TW91c2VEb3duXy55PXBvc2l0aW9uLnk7fSxmb2N1c0VsZW1lbnRzXzpmdW5jdGlvbigpe2lmKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpCi1kb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtpZih0aGlzLmZvY3VzRWxlbWVudC50YWJJbmRleD49MCkKLXRoaXMuZm9jdXNFbGVtZW50LmZvY3VzKCk7fSxzdG9yZUluaXRpYWxJbnRlcmFjdGlvblBvc2l0aW9uc0FuZEZvY3VzXzpmdW5jdGlvbihlKXt0aGlzLnN0b3JlSW5pdGlhbE1vdXNlRG93blBvc18oZSk7dGhpcy5zdG9yZUxhc3RNb3VzZVBvc18oZSk7dGhpcy5mb2N1c0VsZW1lbnRzXygpO30sb25CZWdpblBhblNjYW5fOmZ1bmN0aW9uKGUpe3ZhciB2cD10aGlzLnZpZXdwb3J0Xzt0aGlzLnZpZXdwb3J0RGlzcGxheVRyYW5zZm9ybUF0TW91c2VEb3duXz12cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5jbG9uZSgpO3RoaXMuaXNQYW5uaW5nQW5kU2Nhbm5pbmdfPXRydWU7dGhpcy5zdG9yZUluaXRpYWxJbnRlcmFjdGlvblBvc2l0aW9uc0FuZEZvY3VzXyhlKTtlLnByZXZlbnREZWZhdWx0KCk7fSxvblVwZGF0ZVBhblNjYW5fOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmlzUGFubmluZ0FuZFNjYW5uaW5nXykKLXJldHVybjt2YXIgdmlld1dpZHRoPXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLmNsaWVudFdpZHRoO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciB4RGVsdGFWaWV3PXBpeGVsUmF0aW8qKHRoaXMubGFzdE1vdXNlVmlld1Bvc18ueC0KK3JldHVybiB0b3VjaGVzO30sc3RvcmVJbml0aWFsTW91c2VEb3duUG9zXzpmdW5jdGlvbihlKXt2YXIgcG9zaXRpb249dGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTt0aGlzLm1vdXNlVmlld1Bvc0F0TW91c2VEb3duXy54PXBvc2l0aW9uLng7dGhpcy5tb3VzZVZpZXdQb3NBdE1vdXNlRG93bl8ueT1wb3NpdGlvbi55O30sZm9jdXNFbGVtZW50c186ZnVuY3Rpb24oKXt0aGlzLiQuaG90a2V5X2NvbnRyb2xsZXIuY2hpbGRSZXF1ZXN0c0dlbmVyYWxGb2N1cyh0aGlzKTt9LHN0b3JlSW5pdGlhbEludGVyYWN0aW9uUG9zaXRpb25zQW5kRm9jdXNfOmZ1bmN0aW9uKGUpe3RoaXMuc3RvcmVJbml0aWFsTW91c2VEb3duUG9zXyhlKTt0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTt0aGlzLmZvY3VzRWxlbWVudHNfKCk7fSxvbkJlZ2luUGFuU2Nhbl86ZnVuY3Rpb24oZSl7dmFyIHZwPXRoaXMudmlld3BvcnRfO3RoaXMudmlld3BvcnREaXNwbGF5VHJhbnNmb3JtQXRNb3VzZURvd25fPXZwLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLmNsb25lKCk7dGhpcy5pc1Bhbm5pbmdBbmRTY2FubmluZ189dHJ1ZTt0aGlzLnN0b3JlSW5pdGlhbEludGVyYWN0aW9uUG9zaXRpb25zQW5kRm9jdXNfKGUpO2UucHJldmVudERlZmF1bHQoKTt9LG9uVXBkYXRlUGFuU2Nhbl86ZnVuY3Rpb24oZSl7aWYoIXRoaXMuaXNQYW5uaW5nQW5kU2Nhbm5pbmdfKQorcmV0dXJuO3ZhciB2aWV3V2lkdGg9dGhpcy52aWV3V2lkdGhfO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciB4RGVsdGFWaWV3PXBpeGVsUmF0aW8qKHRoaXMubGFzdE1vdXNlVmlld1Bvc18ueC0KIHRoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fLngpO3ZhciB5RGVsdGE9dGhpcy5sYXN0TW91c2VWaWV3UG9zXy55LQotdGhpcy5tb3VzZVZpZXdQb3NBdE1vdXNlRG93bl8ueTt0ZW1wRGlzcGxheVRyYW5zZm9ybS5zZXQodGhpcy52aWV3cG9ydERpc3BsYXlUcmFuc2Zvcm1BdE1vdXNlRG93bl8pO3RlbXBEaXNwbGF5VHJhbnNmb3JtLmluY3JlbWVudFBhblhJblZpZXdVbml0cyh4RGVsdGFWaWV3KTt0ZW1wRGlzcGxheVRyYW5zZm9ybS5wYW5ZLT15RGVsdGE7dGhpcy52aWV3cG9ydF8uc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KHRlbXBEaXNwbGF5VHJhbnNmb3JtKTtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTt9LG9uRW5kUGFuU2Nhbl86ZnVuY3Rpb24oZSl7dGhpcy5pc1Bhbm5pbmdBbmRTY2FubmluZ189ZmFsc2U7dGhpcy5zdG9yZUxhc3RNb3VzZVBvc18oZSk7aWYoIWUuaXNDbGljaykKK3RoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fLnk7dGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5zZXQodGhpcy52aWV3cG9ydERpc3BsYXlUcmFuc2Zvcm1BdE1vdXNlRG93bl8pO3RoaXMuZGlzcGxheVRyYW5zZm9ybV8uaW5jcmVtZW50UGFuWEluVmlld1VuaXRzKHhEZWx0YVZpZXcpO3RoaXMuZGlzcGxheVRyYW5zZm9ybV8ucGFuWS09eURlbHRhO3RoaXMudmlld3BvcnRfLnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseSh0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fKTtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTt9LG9uRW5kUGFuU2Nhbl86ZnVuY3Rpb24oZSl7dGhpcy5pc1Bhbm5pbmdBbmRTY2FubmluZ189ZmFsc2U7dGhpcy5zdG9yZUxhc3RNb3VzZVBvc18oZSk7aWYoIWUuaXNDbGljaykKIGUucHJldmVudERlZmF1bHQoKTt9LG9uQmVnaW5TZWxlY3Rpb25fOmZ1bmN0aW9uKGUpe3ZhciBjYW52PXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzO3ZhciByZWN0PXRoaXMubW9kZWxUcmFja18uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGNhbnZSZWN0PWNhbnYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGluc2lkZT1yZWN0JiZlLmNsaWVudFg+PXJlY3QubGVmdCYmZS5jbGllbnRYPHJlY3QucmlnaHQmJmUuY2xpZW50WT49cmVjdC50b3AmJmUuY2xpZW50WTxyZWN0LmJvdHRvbSYmZS5jbGllbnRYPj1jYW52UmVjdC5sZWZ0JiZlLmNsaWVudFg8Y2FudlJlY3QucmlnaHQ7aWYoIWluc2lkZSkKIHJldHVybjt0aGlzLmRyYWdCZWdpbkV2ZW50Xz1lO3RoaXMuc3RvcmVJbml0aWFsSW50ZXJhY3Rpb25Qb3NpdGlvbnNBbmRGb2N1c18oZSk7ZS5wcmV2ZW50RGVmYXVsdCgpO30sb25VcGRhdGVTZWxlY3Rpb25fOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmRyYWdCZWdpbkV2ZW50XykKIHJldHVybjt0aGlzLmRyYWdCb3hYU3RhcnRfPXRoaXMuZHJhZ0JlZ2luRXZlbnRfLmNsaWVudFg7dGhpcy5kcmFnQm94WEVuZF89ZS5jbGllbnRYO3RoaXMuZHJhZ0JveFlTdGFydF89dGhpcy5kcmFnQmVnaW5FdmVudF8uY2xpZW50WTt0aGlzLmRyYWdCb3hZRW5kXz1lLmNsaWVudFk7dGhpcy5zZXREcmFnQm94UG9zaXRpb25fKHRoaXMuZHJhZ0JveFhTdGFydF8sdGhpcy5kcmFnQm94WVN0YXJ0Xyx0aGlzLmRyYWdCb3hYRW5kXyx0aGlzLmRyYWdCb3hZRW5kXyk7fSxvbkVuZFNlbGVjdGlvbl86ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2lmKCF0aGlzLmRyYWdCZWdpbkV2ZW50XykKLXJldHVybjt0aGlzLmhpZGVEcmFnQm94XygpO3ZhciBlRG93bj10aGlzLmRyYWdCZWdpbkV2ZW50Xzt0aGlzLmRyYWdCZWdpbkV2ZW50Xz1udWxsO3ZhciBsb1k9TWF0aC5taW4oZURvd24uY2xpZW50WSxlLmNsaWVudFkpO3ZhciBoaVk9TWF0aC5tYXgoZURvd24uY2xpZW50WSxlLmNsaWVudFkpO3ZhciBsb1g9TWF0aC5taW4oZURvd24uY2xpZW50WCxlLmNsaWVudFgpO3ZhciBoaVg9TWF0aC5tYXgoZURvd24uY2xpZW50WCxlLmNsaWVudFgpO3ZhciBjYW52PXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzO3ZhciB3b3JsZE9mZnNldD1jYW52LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7dmFyIGxvVlg9bG9YLXdvcmxkT2Zmc2V0O3ZhciBoaVZYPWhpWC13b3JsZE9mZnNldDt2YXIgc2VsZWN0aW9uPW5ldyBTZWxlY3Rpb24oKTt0aGlzLm1vZGVsVHJhY2tfLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbihsb1ZYLGhpVlgsbG9ZLGhpWSxzZWxlY3Rpb24pO3RoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uY2hhbmdlU2VsZWN0aW9uRnJvbVRpbWVsaW5lKHNlbGVjdGlvbik7fSxvbkJlZ2luWm9vbV86ZnVuY3Rpb24oZSl7dGhpcy5pc1pvb21pbmdfPXRydWU7dGhpcy5zdG9yZUluaXRpYWxJbnRlcmFjdGlvblBvc2l0aW9uc0FuZEZvY3VzXyhlKTtlLnByZXZlbnREZWZhdWx0KCk7fSxvblVwZGF0ZVpvb21fOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmlzWm9vbWluZ18pCityZXR1cm47dGhpcy5oaWRlRHJhZ0JveF8oKTt2YXIgZURvd249dGhpcy5kcmFnQmVnaW5FdmVudF87dGhpcy5kcmFnQmVnaW5FdmVudF89dW5kZWZpbmVkO3ZhciBsb1k9TWF0aC5taW4oZURvd24uY2xpZW50WSxlLmNsaWVudFkpO3ZhciBoaVk9TWF0aC5tYXgoZURvd24uY2xpZW50WSxlLmNsaWVudFkpO3ZhciBsb1g9TWF0aC5taW4oZURvd24uY2xpZW50WCxlLmNsaWVudFgpO3ZhciBoaVg9TWF0aC5tYXgoZURvd24uY2xpZW50WCxlLmNsaWVudFgpO3ZhciBjYW52PXRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzO3ZhciB3b3JsZE9mZnNldD1jYW52LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7dmFyIGxvVlg9bG9YLXdvcmxkT2Zmc2V0O3ZhciBoaVZYPWhpWC13b3JsZE9mZnNldDt2YXIgc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldCgpO3RoaXMubW9kZWxUcmFja18uYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uKGxvVlgsaGlWWCxsb1ksaGlZLHNlbGVjdGlvbik7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uY2hhbmdlU2VsZWN0aW9uRnJvbVRpbWVsaW5lKHNlbGVjdGlvbik7fSxvbkJlZ2luWm9vbV86ZnVuY3Rpb24oZSl7dGhpcy5pc1pvb21pbmdfPXRydWU7dGhpcy5zdG9yZUluaXRpYWxJbnRlcmFjdGlvblBvc2l0aW9uc0FuZEZvY3VzXyhlKTtlLnByZXZlbnREZWZhdWx0KCk7fSxvblVwZGF0ZVpvb21fOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmlzWm9vbWluZ18pCiByZXR1cm47dmFyIG5ld1Bvc2l0aW9uPXRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7dmFyIHpvb21TY2FsZVZhbHVlPTErKHRoaXMubGFzdE1vdXNlVmlld1Bvc18ueS0KIG5ld1Bvc2l0aW9uLnkpKjAuMDE7dGhpcy56b29tQnlfKHpvb21TY2FsZVZhbHVlLGZhbHNlKTt0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTt9LG9uRW5kWm9vbV86ZnVuY3Rpb24oZSl7dGhpcy5pc1pvb21pbmdfPWZhbHNlO2lmKCFlLmlzQ2xpY2spCiBlLnByZXZlbnREZWZhdWx0KCk7fSxjb21wdXRlVG91Y2hDZW50ZXJfOmZ1bmN0aW9uKHBvc2l0aW9ucyl7dmFyIHhTdW09MDt2YXIgeVN1bT0wO2Zvcih2YXIgaT0wO2k8cG9zaXRpb25zLmxlbmd0aDsrK2kpe3hTdW0rPXBvc2l0aW9uc1tpXS54O3lTdW0rPXBvc2l0aW9uc1tpXS55O30KIHJldHVybnt4OnhTdW0vcG9zaXRpb25zLmxlbmd0aCx5OnlTdW0vcG9zaXRpb25zLmxlbmd0aH07fSxjb21wdXRlVG91Y2hTcGFuXzpmdW5jdGlvbihwb3NpdGlvbnMpe3ZhciB4TWluPU51bWJlci5NQVhfVkFMVUU7dmFyIHlNaW49TnVtYmVyLk1BWF9WQUxVRTt2YXIgeE1heD1OdW1iZXIuTUlOX1ZBTFVFO3ZhciB5TWF4PU51bWJlci5NSU5fVkFMVUU7Zm9yKHZhciBpPTA7aTxwb3NpdGlvbnMubGVuZ3RoOysraSl7eE1pbj1NYXRoLm1pbih4TWluLHBvc2l0aW9uc1tpXS54KTt5TWluPU1hdGgubWluKHlNaW4scG9zaXRpb25zW2ldLnkpO3hNYXg9TWF0aC5tYXgoeE1heCxwb3NpdGlvbnNbaV0ueCk7eU1heD1NYXRoLm1heCh5TWF4LHBvc2l0aW9uc1tpXS55KTt9CiByZXR1cm4gTWF0aC5zcXJ0KCh4TWluLXhNYXgpKih4TWluLXhNYXgpKwotKHlNaW4teU1heCkqKHlNaW4teU1heCkpO30sb25VcGRhdGVUcmFuc2Zvcm1Gb3JUb3VjaF86ZnVuY3Rpb24oZSl7dmFyIG5ld1Bvc2l0aW9ucz10aGlzLmV4dHJhY3RSZWxhdGl2ZVRvdWNoUG9zaXRpb25zXyhlKTt2YXIgY3VycmVudFBvc2l0aW9ucz10aGlzLmxhc3RUb3VjaFZpZXdQb3NpdGlvbnNfO3ZhciBuZXdDZW50ZXI9dGhpcy5jb21wdXRlVG91Y2hDZW50ZXJfKG5ld1Bvc2l0aW9ucyk7dmFyIGN1cnJlbnRDZW50ZXI9dGhpcy5jb21wdXRlVG91Y2hDZW50ZXJfKGN1cnJlbnRQb3NpdGlvbnMpO3ZhciBuZXdTcGFuPXRoaXMuY29tcHV0ZVRvdWNoU3Bhbl8obmV3UG9zaXRpb25zKTt2YXIgY3VycmVudFNwYW49dGhpcy5jb21wdXRlVG91Y2hTcGFuXyhjdXJyZW50UG9zaXRpb25zKTt2YXIgdnA9dGhpcy52aWV3cG9ydF87dmFyIHZpZXdXaWR0aD10aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy5jbGllbnRXaWR0aDt2YXIgcGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTt2YXIgeERlbHRhPXBpeGVsUmF0aW8qKG5ld0NlbnRlci54LWN1cnJlbnRDZW50ZXIueCk7dmFyIHlEZWx0YT1uZXdDZW50ZXIueS1jdXJyZW50Q2VudGVyLnk7dmFyIHpvb21TY2FsZVZhbHVlPWN1cnJlbnRTcGFuPjEwP25ld1NwYW4vY3VycmVudFNwYW46MTt2YXIgdmlld0ZvY3VzPXBpeGVsUmF0aW8qbmV3Q2VudGVyLng7dmFyIHdvcmxkRm9jdXM9dnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKHZpZXdGb2N1cyk7dGVtcERpc3BsYXlUcmFuc2Zvcm0uc2V0KHZwLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtKTt0ZW1wRGlzcGxheVRyYW5zZm9ybS5zY2FsZVgqPXpvb21TY2FsZVZhbHVlO3RlbXBEaXNwbGF5VHJhbnNmb3JtLnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh3b3JsZEZvY3VzLHZpZXdGb2N1cyx2aWV3V2lkdGgpO3RlbXBEaXNwbGF5VHJhbnNmb3JtLmluY3JlbWVudFBhblhJblZpZXdVbml0cyh4RGVsdGEpO3RlbXBEaXNwbGF5VHJhbnNmb3JtLnBhblktPXlEZWx0YTt2cC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGVtcERpc3BsYXlUcmFuc2Zvcm0pO3RoaXMuc3RvcmVMYXN0VG91Y2hQb3NpdGlvbnNfKGUpO30saW5pdEhpbnRUZXh0XzpmdW5jdGlvbigpe3RoaXMuaGludFRleHRCb3hfPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTt0aGlzLmhpbnRUZXh0Qm94Xy5jbGFzc05hbWU9J2hpbnQtdGV4dCc7dGhpcy5oaW50VGV4dEJveF8uc3R5bGUuZGlzcGxheT0nbm9uZSc7dGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhpbnRUZXh0Qm94Xyk7dGhpcy5wZW5kaW5nSGludFRleHRDbGVhclRpbWVvdXRfPXVuZGVmaW5lZDt9LHNob3dIaW50VGV4dF86ZnVuY3Rpb24odGV4dCl7aWYodGhpcy5wZW5kaW5nSGludFRleHRDbGVhclRpbWVvdXRfKXt3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0Xyk7dGhpcy5wZW5kaW5nSGludFRleHRDbGVhclRpbWVvdXRfPXVuZGVmaW5lZDt9Ci10aGlzLnBlbmRpbmdIaW50VGV4dENsZWFyVGltZW91dF89c2V0VGltZW91dCh0aGlzLmhpZGVIaW50VGV4dF8uYmluZCh0aGlzKSwxMDAwKTt0aGlzLmhpbnRUZXh0Qm94Xy50ZXh0Q29udGVudD10ZXh0O3RoaXMuaGludFRleHRCb3hfLnN0eWxlLmRpc3BsYXk9Jyc7fSxoaWRlSGludFRleHRfOmZ1bmN0aW9uKCl7dGhpcy5wZW5kaW5nSGludFRleHRDbGVhclRpbWVvdXRfPXVuZGVmaW5lZDt0aGlzLmhpbnRUZXh0Qm94Xy5zdHlsZS5kaXNwbGF5PSdub25lJzt9fTtyZXR1cm57VGltZWxpbmVUcmFja1ZpZXc6VGltZWxpbmVUcmFja1ZpZXd9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0cmFjaW5nLWZpbmQtY29udHJvbCcse2ZpbHRlcktleURvd246ZnVuY3Rpb24oZSl7aWYoZS5rZXlDb2RlPT09MjcpCi1yZXR1cm47ZS5zdG9wUHJvcGFnYXRpb24oKTtpZihlLmtleUNvZGUhPT0xMylyZXR1cm47ZS5zaGlmdEtleT90aGlzLmZpbmRQcmV2aW91cygpOnRoaXMuZmluZE5leHQoKTt9LGZpbHRlcktleVByZXNzOmZ1bmN0aW9uKGUpe2lmKGUua2V5Q29kZT09PTI3KQotcmV0dXJuO2Uuc3RvcFByb3BhZ2F0aW9uKCk7fSxmaWx0ZXJCbHVyOmZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlSGl0Q291bnRFbCgpO30sZmlsdGVyRm9jdXM6ZnVuY3Rpb24oZSl7dGhpcy4kLmZpbHRlci5zZWxlY3QoKTt9LGZpbHRlck1vdXNlVXA6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO30sZ2V0IGNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyXzt9LHNldCBjb250cm9sbGVyKGMpe3RoaXMuY29udHJvbGxlcl89Yzt0aGlzLnVwZGF0ZUhpdENvdW50RWwoKTt9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy4kLmZpbHRlci5mb2N1cygpO30sZ2V0IGhhc0ZvY3VzKCl7cmV0dXJuIHRoaXM9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O30sZmlsdGVyVGV4dENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLiQuaGl0Q291bnQudGV4dENvbnRlbnQ9Jyc7dGhpcy4kLnNwaW5uZXIuc3R5bGUudmlzaWJpbGl0eT0ndmlzaWJsZSc7dGhpcy5jb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKHRoaXMuJC5maWx0ZXIudmFsdWUpLnRoZW4oZnVuY3Rpb24oKXt0aGlzLiQuc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5PSdoaWRkZW4nO3RoaXMudXBkYXRlSGl0Q291bnRFbCgpO30uYmluZCh0aGlzKSk7fSxmaW5kTmV4dDpmdW5jdGlvbigpe2lmKHRoaXMuY29udHJvbGxlcikKKyh5TWluLXlNYXgpKih5TWluLXlNYXgpKTt9LG9uVXBkYXRlVHJhbnNmb3JtRm9yVG91Y2hfOmZ1bmN0aW9uKGUpe3ZhciBuZXdQb3NpdGlvbnM9dGhpcy5leHRyYWN0UmVsYXRpdmVUb3VjaFBvc2l0aW9uc18oZSk7dmFyIGN1cnJlbnRQb3NpdGlvbnM9dGhpcy5sYXN0VG91Y2hWaWV3UG9zaXRpb25zXzt2YXIgbmV3Q2VudGVyPXRoaXMuY29tcHV0ZVRvdWNoQ2VudGVyXyhuZXdQb3NpdGlvbnMpO3ZhciBjdXJyZW50Q2VudGVyPXRoaXMuY29tcHV0ZVRvdWNoQ2VudGVyXyhjdXJyZW50UG9zaXRpb25zKTt2YXIgbmV3U3Bhbj10aGlzLmNvbXB1dGVUb3VjaFNwYW5fKG5ld1Bvc2l0aW9ucyk7dmFyIGN1cnJlbnRTcGFuPXRoaXMuY29tcHV0ZVRvdWNoU3Bhbl8oY3VycmVudFBvc2l0aW9ucyk7dmFyIHZwPXRoaXMudmlld3BvcnRfO3ZhciB2aWV3V2lkdGg9dGhpcy52aWV3V2lkdGhfO3ZhciBwaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3ZhciB4RGVsdGE9cGl4ZWxSYXRpbyoobmV3Q2VudGVyLngtY3VycmVudENlbnRlci54KTt2YXIgeURlbHRhPW5ld0NlbnRlci55LWN1cnJlbnRDZW50ZXIueTt2YXIgem9vbVNjYWxlVmFsdWU9Y3VycmVudFNwYW4+MTA/bmV3U3Bhbi9jdXJyZW50U3BhbjoxO3ZhciB2aWV3Rm9jdXM9cGl4ZWxSYXRpbypuZXdDZW50ZXIueDt2YXIgd29ybGRGb2N1cz12cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS54Vmlld1RvV29ybGQodmlld0ZvY3VzKTt0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnNldCh2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSk7dGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5zY2FsZVgqPXpvb21TY2FsZVZhbHVlO3RoaXMuZGlzcGxheVRyYW5zZm9ybV8ueFBhbldvcmxkUG9zVG9WaWV3UG9zKHdvcmxkRm9jdXMsdmlld0ZvY3VzLHZpZXdXaWR0aCk7dGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5pbmNyZW1lbnRQYW5YSW5WaWV3VW5pdHMoeERlbHRhKTt0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnBhblktPXlEZWx0YTt2cC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGhpcy5kaXNwbGF5VHJhbnNmb3JtXyk7dGhpcy5zdG9yZUxhc3RUb3VjaFBvc2l0aW9uc18oZSk7fSxpbml0SGludFRleHRfOmZ1bmN0aW9uKCl7dGhpcy4kLmhpbnRfdGV4dC5zdHlsZS5kaXNwbGF5PSdub25lJzt0aGlzLnBlbmRpbmdIaW50VGV4dENsZWFyVGltZW91dF89dW5kZWZpbmVkO30sc2hvd0hpbnRUZXh0XzpmdW5jdGlvbih0ZXh0KXtpZih0aGlzLnBlbmRpbmdIaW50VGV4dENsZWFyVGltZW91dF8pe3dpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nSGludFRleHRDbGVhclRpbWVvdXRfKTt0aGlzLnBlbmRpbmdIaW50VGV4dENsZWFyVGltZW91dF89dW5kZWZpbmVkO30KK3RoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0Xz1zZXRUaW1lb3V0KHRoaXMuaGlkZUhpbnRUZXh0Xy5iaW5kKHRoaXMpLDEwMDApO3RoaXMuJC5oaW50X3RleHQudGV4dENvbnRlbnQ9dGV4dDt0aGlzLiQuaGludF90ZXh0LnN0eWxlLmRpc3BsYXk9Jyc7fSxoaWRlSGludFRleHRfOmZ1bmN0aW9uKCl7dGhpcy5wZW5kaW5nSGludFRleHRDbGVhclRpbWVvdXRfPXVuZGVmaW5lZDt0aGlzLiQuaGludF90ZXh0LnN0eWxlLmRpc3BsYXk9J25vbmUnO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktZmluZC1jb250cm9sJyx7ZmlsdGVyS2V5RG93bjpmdW5jdGlvbihlKXtpZihlLmtleUNvZGU9PT0yNyl7dmFyIGhrYz10ci5iLmdldEhvdGtleUNvbnRyb2xsZXJGb3JFbGVtZW50KHRoaXMpO2lmKGhrYyl7aGtjLmNoaWxkUmVxdWVzdHNCbHVyKHRoaXMpO31lbHNle3RoaXMuYmx1cigpO30KK2UucHJldmVudERlZmF1bHQoKTtlLnN0b3BQcm9wYWdhdGlvbigpO3JldHVybjt9ZWxzZSBpZihlLmtleUNvZGU9PT0xMyl7aWYoZS5zaGlmdEtleSkKK3RoaXMuZmluZFByZXZpb3VzKCk7ZWxzZQordGhpcy5maW5kTmV4dCgpO319LGZpbHRlckJsdXI6ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVIaXRDb3VudEVsKCk7fSxmaWx0ZXJGb2N1czpmdW5jdGlvbihlKXt0aGlzLiQuZmlsdGVyLnNlbGVjdCgpO30sZmlsdGVyTW91c2VVcDpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7fSxnZXQgY29udHJvbGxlcigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJfO30sc2V0IGNvbnRyb2xsZXIoYyl7dGhpcy5jb250cm9sbGVyXz1jO3RoaXMudXBkYXRlSGl0Q291bnRFbCgpO30sZm9jdXM6ZnVuY3Rpb24oKXt0aGlzLiQuZmlsdGVyLmZvY3VzKCk7fSxnZXQgaGFzRm9jdXMoKXtyZXR1cm4gdGhpcz09PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7fSxmaWx0ZXJUZXh0Q2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuJC5oaXRDb3VudC50ZXh0Q29udGVudD0nJzt0aGlzLiQuc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5PSd2aXNpYmxlJzt0aGlzLmNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcodGhpcy4kLmZpbHRlci52YWx1ZSkudGhlbihmdW5jdGlvbigpe3RoaXMuJC5zcGlubmVyLnN0eWxlLnZpc2liaWxpdHk9J2hpZGRlbic7dGhpcy51cGRhdGVIaXRDb3VudEVsKCk7fS5iaW5kKHRoaXMpKTt9LGZpbmROZXh0OmZ1bmN0aW9uKCl7aWYodGhpcy5jb250cm9sbGVyKQogdGhpcy5jb250cm9sbGVyLmZpbmROZXh0KCk7dGhpcy51cGRhdGVIaXRDb3VudEVsKCk7fSxmaW5kUHJldmlvdXM6ZnVuY3Rpb24oKXtpZih0aGlzLmNvbnRyb2xsZXIpCiB0aGlzLmNvbnRyb2xsZXIuZmluZFByZXZpb3VzKCk7dGhpcy51cGRhdGVIaXRDb3VudEVsKCk7fSx1cGRhdGVIaXRDb3VudEVsOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY29udHJvbGxlcnx8IXRoaXMuaGFzRm9jdXMpe3RoaXMuJC5oaXRDb3VudC50ZXh0Q29udGVudD0nJztyZXR1cm47fQotdmFyIG49dGhpcy5jb250cm9sbGVyLmZpbHRlckhpdHMubGVuZ3RoO3ZhciBpPW49PT0wPy0xOnRoaXMuY29udHJvbGxlci5jdXJyZW50SGl0SW5kZXg7dGhpcy4kLmhpdENvdW50LnRleHRDb250ZW50PShpKzEpKycgb2YgJytuO30sc2V0VGV4dDpmdW5jdGlvbihzdHJpbmcpe3RoaXMuJC5maWx0ZXIudmFsdWU9c3RyaW5nO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7dmFyIFNlbGVjdGlvbj10ci5jLlNlbGVjdGlvbjt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7ZnVuY3Rpb24gQnJ1c2hpbmdTdGF0ZSgpe3RoaXMuZ3VpZF89dHIuYi5HVUlELmFsbG9jYXRlKCk7dGhpcy5zZWxlY3Rpb25fPW5ldyBTZWxlY3Rpb24oKTt0aGlzLmZpbmRNYXRjaGVzXz1uZXcgU2VsZWN0aW9uKCk7dGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXz1uZXcgU2VsZWN0aW9uKCk7dGhpcy5hcHBsaWVkVG9Nb2RlbF89dW5kZWZpbmVkO30KLUJydXNoaW5nU3RhdGUucHJvdG90eXBlPXtnZXQgZ3VpZCgpe3JldHVybiB0aGlzLmd1aWRfO30sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdGhhdD1uZXcgQnJ1c2hpbmdTdGF0ZSgpO3RoYXQuc2VsZWN0aW9uXz10aGlzLnNlbGVjdGlvbl87dGhhdC5maW5kTWF0Y2hlc189dGhpcy5maW5kTWF0Y2hlc187dGhhdC5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXz10aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfO3JldHVybiB0aGF0O30sZXF1YWxzOmZ1bmN0aW9uKHRoYXQpe2lmKCF0aGlzLnNlbGVjdGlvbl8uZXF1YWxzKHRoYXQuc2VsZWN0aW9uXykpCi1yZXR1cm4gZmFsc2U7aWYoIXRoaXMuZmluZE1hdGNoZXNfLmVxdWFscyh0aGF0LmZpbmRNYXRjaGVzXykpCi1yZXR1cm4gZmFsc2U7aWYoIXRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18uZXF1YWxzKHRoYXQuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18pKXtyZXR1cm4gZmFsc2U7fQotcmV0dXJuIHRydWU7fSxnZXQgc2VsZWN0aW9uT2ZJbnRlcmVzdCgpe2lmKHRoaXMuc2VsZWN0aW9uXy5sZW5ndGgpCi1yZXR1cm4gdGhpcy5zZWxlY3Rpb25fO2lmKHRoaXMuaGlnaGxpZ2h0Xy5sZW5ndGgpCi1yZXR1cm4gdGhpcy5oaWdobGlnaHRfO2lmKHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18ubGVuZ3RoKQotcmV0dXJuIHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c187cmV0dXJuIHRoaXMuc2VsZWN0aW9uXzt9LGdldCBzZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25fO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe2lmKHRoaXMuYXBwbGllZFRvTW9kZWxfKQotdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbXV0YXRlIHRoaXMgc3RhdGUgcmlnaHQgbm93Jyk7aWYoc2VsZWN0aW9uPT09dW5kZWZpbmVkKQotc2VsZWN0aW9uPW5ldyBTZWxlY3Rpb24oKTt0aGlzLnNlbGVjdGlvbl89c2VsZWN0aW9uO30sZ2V0IGZpbmRNYXRjaGVzKCl7cmV0dXJuIHRoaXMuZmluZE1hdGNoZXNfO30sc2V0IGZpbmRNYXRjaGVzKGZpbmRNYXRjaGVzKXtpZih0aGlzLmFwcGxpZWRUb01vZGVsXykKLXRocm93IG5ldyBFcnJvcignQ2Fubm90IG11dGF0ZSB0aGlzIHN0YXRlIHJpZ2h0IG5vdycpO2lmKGZpbmRNYXRjaGVzPT09dW5kZWZpbmVkKQotZmluZE1hdGNoZXM9bmV3IFNlbGVjdGlvbigpO3RoaXMuZmluZE1hdGNoZXNfPWZpbmRNYXRjaGVzO30sZ2V0IGFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHMoKXtyZXR1cm4gdGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXzt9LHNldCBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKGFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHMpe2lmKHRoaXMuYXBwbGllZFRvTW9kZWxfKQotdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbXV0YXRlIHRoaXMgc3RhdGUgcmlnaHQgbm93Jyk7aWYoYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50cz09PXVuZGVmaW5lZCkKLWFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHM9bmV3IFNlbGVjdGlvbigpO3RoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c189YW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50czt9LGdldCBpc0FwcGxpZWRUb01vZGVsKCl7cmV0dXJuIHRoaXMuYXBwbGllZFRvTW9kZWxfIT09dW5kZWZpbmVkO30sZ2V0IGhhc0hpZ2hsaWdodF8oKXtyZXR1cm4gdGhpcy5maW5kTWF0Y2hlc18ubGVuZ3RoPjB8fHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18ubGVuZ3RoPjA7fSxhcHBseVRvTW9kZWxTZWxlY3Rpb25TdGF0ZTpmdW5jdGlvbihtb2RlbCl7dGhpcy5hcHBsaWVkVG9Nb2RlbF89bW9kZWw7aWYoIXRoaXMuaGFzSGlnaGxpZ2h0Xyl7dGhpcy5zZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5zZWxlY3Rpb25TdGF0ZT1TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDt9KTtyZXR1cm47fQotbW9kZWwuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihlKXt2YXIgc2VsZWN0aW9uU3RhdGU7aWYodGhpcy5zZWxlY3Rpb25fLmNvbnRhaW5zKGUpKXtzZWxlY3Rpb25TdGF0ZT1TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDt9ZWxzZSBpZih0aGlzLmZpbmRNYXRjaGVzXy5jb250YWlucyhlKSl7c2VsZWN0aW9uU3RhdGU9U2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQ7fWVsc2UgaWYodGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXy5jb250YWlucyhlKSl7c2VsZWN0aW9uU3RhdGU9U2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQ7fWVsc2V7c2VsZWN0aW9uU3RhdGU9U2VsZWN0aW9uU3RhdGUuRElNTUVEO30KLWUuc2VsZWN0aW9uU3RhdGU9c2VsZWN0aW9uU3RhdGU7fS5iaW5kKHRoaXMpKTt9LHRyYW5zZmVyTW9kZWxPd25lcnNoaXBUb0Nsb25lOmZ1bmN0aW9uKHRoYXQpe2lmKCF0aGlzLmFwcGxpZWRUb01vZGVsXykKLXRocm93IG5ldyBFcnJvcignTm90IGFwcGxpZWQnKTt0aGF0LmFwcGxpZWRUb01vZGVsXz10aGlzLmFwcGxpZWRUb01vZGVsXzt0aGlzLmFwcGxpZWRUb01vZGVsXz11bmRlZmluZWQ7fSx1bmFwcGx5RnJvbU1vZGVsU2VsZWN0aW9uU3RhdGU6ZnVuY3Rpb24oKXtpZighdGhpcy5hcHBsaWVkVG9Nb2RlbF8pCi10aHJvdyBuZXcgRXJyb3IoJ05vdCBhcHBsaWVkJyk7dmFyIG1vZGVsPXRoaXMuYXBwbGllZFRvTW9kZWxfO3RoaXMuYXBwbGllZFRvTW9kZWxfPXVuZGVmaW5lZDtpZighdGhpcy5oYXNIaWdobGlnaHRfKXt0aGlzLnNlbGVjdGlvbl8uZm9yRWFjaChmdW5jdGlvbihlKXtlLnNlbGVjdGlvblN0YXRlPVNlbGVjdGlvblN0YXRlLk5PTkU7fSk7cmV0dXJuO30KLW1vZGVsLml0ZXJhdGVBbGxFdmVudHMoZnVuY3Rpb24oZSl7ZS5zZWxlY3Rpb25TdGF0ZT1TZWxlY3Rpb25TdGF0ZS5OT05FO30pO319O3JldHVybntCcnVzaGluZ1N0YXRlOkJydXNoaW5nU3RhdGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXtmdW5jdGlvbiBZQ29tcG9uZW50KHN0YWJsZUlkLHlQZXJjZW50T2Zmc2V0KXt0aGlzLnN0YWJsZUlkPXN0YWJsZUlkO3RoaXMueVBlcmNlbnRPZmZzZXQ9eVBlcmNlbnRPZmZzZXQ7fQotWUNvbXBvbmVudC5wcm90b3R5cGU9e3RvRGljdDpmdW5jdGlvbigpe3JldHVybntzdGFibGVJZDp0aGlzLnN0YWJsZUlkLHlQZXJjZW50T2Zmc2V0OnRoaXMueVBlcmNlbnRPZmZzZXR9O319O2Z1bmN0aW9uIExvY2F0aW9uKHhXb3JsZCx5Q29tcG9uZW50cyl7dGhpcy54V29ybGRfPXhXb3JsZDt0aGlzLnlDb21wb25lbnRzXz15Q29tcG9uZW50czt9O0xvY2F0aW9uLmZyb21WaWV3Q29vcmRpbmF0ZXM9ZnVuY3Rpb24odmlld3BvcnQsdmlld1gsdmlld1kpe3ZhciBkdD12aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTt2YXIgeFdvcmxkPWR0LnhWaWV3VG9Xb3JsZCh2aWV3WCk7dmFyIHlDb21wb25lbnRzPVtdO3ZhciBlbGVtPWRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQodmlld1grdmlld3BvcnQubW9kZWxUcmFja0NvbnRhaW5lci5jYW52YXMub2Zmc2V0TGVmdCx2aWV3WSt2aWV3cG9ydC5tb2RlbFRyYWNrQ29udGFpbmVyLmNhbnZhcy5vZmZzZXRUb3ApO3doaWxlKGVsZW0gaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjayl7aWYoZWxlbS5ldmVudENvbnRhaW5lcil7dmFyIGJvdW5kUmVjdD1lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciB5UGVyY2VudE9mZnNldD0odmlld1ktYm91bmRSZWN0LnRvcCkvYm91bmRSZWN0LmhlaWdodDt5Q29tcG9uZW50cy5wdXNoKG5ldyBZQ29tcG9uZW50KGVsZW0uZXZlbnRDb250YWluZXIuc3RhYmxlSWQseVBlcmNlbnRPZmZzZXQpKTt9Ci1lbGVtPWVsZW0ucGFyZW50RWxlbWVudDt9Ci1pZih5Q29tcG9uZW50cy5sZW5ndGg9PTApCi1yZXR1cm47cmV0dXJuIG5ldyBMb2NhdGlvbih4V29ybGQseUNvbXBvbmVudHMpO30KLUxvY2F0aW9uLmZyb21TdGFibGVJZEFuZFRpbWVzdGFtcD1mdW5jdGlvbih2aWV3cG9ydCxzdGFibGVJZCx0cyl7dmFyIHhXb3JsZD10czt2YXIgeUNvbXBvbmVudHM9W107dmFyIGNvbnRhaW5lclRvVHJhY2s9dmlld3BvcnQuY29udGFpbmVyVG9UcmFja09iajt2YXIgZWxlbT1jb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZChzdGFibGVJZCk7aWYoIWVsZW0pCi1yZXR1cm47dmFyIGZpcnN0WT1lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDt3aGlsZShlbGVtIGluc3RhbmNlb2YgdHIuYy50cmFja3MuVHJhY2spe2lmKGVsZW0uZXZlbnRDb250YWluZXIpe3ZhciBib3VuZFJlY3Q9ZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgeVBlcmNlbnRPZmZzZXQ9KGZpcnN0WS1ib3VuZFJlY3QudG9wKS9ib3VuZFJlY3QuaGVpZ2h0O3lDb21wb25lbnRzLnB1c2gobmV3IFlDb21wb25lbnQoZWxlbS5ldmVudENvbnRhaW5lci5zdGFibGVJZCx5UGVyY2VudE9mZnNldCkpO30KLWVsZW09ZWxlbS5wYXJlbnRFbGVtZW50O30KLWlmKHlDb21wb25lbnRzLmxlbmd0aD09MCkKLXJldHVybjtyZXR1cm4gbmV3IExvY2F0aW9uKHhXb3JsZCx5Q29tcG9uZW50cyk7fQotTG9jYXRpb24ucHJvdG90eXBlPXtnZXQgeFdvcmxkKCl7cmV0dXJuIHRoaXMueFdvcmxkXzt9LGdldENvbnRhaW5pbmdUcmFjazpmdW5jdGlvbih2aWV3cG9ydCl7dmFyIGNvbnRhaW5lclRvVHJhY2s9dmlld3BvcnQuY29udGFpbmVyVG9UcmFja09iajtmb3IodmFyIGkgaW4gdGhpcy55Q29tcG9uZW50c18pe3ZhciB5Q29tcG9uZW50PXRoaXMueUNvbXBvbmVudHNfW2ldO3ZhciB0cmFjaz1jb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCh5Q29tcG9uZW50LnN0YWJsZUlkKTtpZih0cmFjayE9PXVuZGVmaW5lZCkKLXJldHVybiB0cmFjazt9fSx0b1ZpZXdDb29yZGluYXRlczpmdW5jdGlvbih2aWV3cG9ydCl7dmFyIGR0PXZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtO3ZhciBjb250YWluZXJUb1RyYWNrPXZpZXdwb3J0LmNvbnRhaW5lclRvVHJhY2tPYmo7dmFyIHZpZXdYPWR0LnhXb3JsZFRvVmlldyh0aGlzLnhXb3JsZF8pO3ZhciB2aWV3WT0tMTtmb3IodmFyIGluZGV4IGluIHRoaXMueUNvbXBvbmVudHNfKXt2YXIgeUNvbXBvbmVudD10aGlzLnlDb21wb25lbnRzX1tpbmRleF07dmFyIHRyYWNrPWNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKHlDb21wb25lbnQuc3RhYmxlSWQpO2lmKHRyYWNrIT09dW5kZWZpbmVkKXt2YXIgYm91bmRSZWN0PXRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZpZXdZPXlDb21wb25lbnQueVBlcmNlbnRPZmZzZXQqYm91bmRSZWN0LmhlaWdodCtib3VuZFJlY3QudG9wO2JyZWFrO319Ci1yZXR1cm57dmlld1g6dmlld1gsdmlld1k6dmlld1l9O30sdG9EaWN0OmZ1bmN0aW9uKCl7cmV0dXJue3hXb3JsZDp0aGlzLnhXb3JsZF8seUNvbXBvbmVudHM6dGhpcy55Q29tcG9uZW50c199O319O3JldHVybntMb2NhdGlvbjpMb2NhdGlvbn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe3ZhciBMb2NhdGlvbj10ci5jLkxvY2F0aW9uO2Z1bmN0aW9uIFVJU3RhdGUobG9jYXRpb24sc2NhbGVYKXt0aGlzLmxvY2F0aW9uXz1sb2NhdGlvbjt0aGlzLnNjYWxlWF89c2NhbGVYO307VUlTdGF0ZS5mcm9tVXNlckZyaWVuZGx5U3RyaW5nPWZ1bmN0aW9uKG1vZGVsLHZpZXdwb3J0LHN0YXRlU3RyaW5nKXt2YXIgbmF2QnlGaW5kZXJQYXR0ZXJuPS9eKC0/XGQrKFwuXGQrKT8pQCguKyl4KFxkKyhcLlxkKyk/KSQvZzt2YXIgbWF0Y2g9bmF2QnlGaW5kZXJQYXR0ZXJuLmV4ZWMoc3RhdGVTdHJpbmcpO2lmKCFtYXRjaCkKLXJldHVybjt2YXIgdGltZXN0YW1wPXBhcnNlRmxvYXQobWF0Y2hbMV0pO3ZhciBzdGFibGVJZD1tYXRjaFszXTt2YXIgc2NhbGVYPXBhcnNlRmxvYXQobWF0Y2hbNF0pO2lmKHNjYWxlWDw9MCkKLXRocm93IG5ldyBFcnJvcignSW52YWxpZCBTY2FsZVggdmFsdWUgaW4gVUkgU3RhdGUgc3RyaW5nLicpO2lmKCF2aWV3cG9ydC5jb250YWluZXJUb1RyYWNrT2JqLmdldFRyYWNrQnlTdGFibGVJZChzdGFibGVJZCkpCi10aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgU3RhYmxlSUQgZ2l2ZW4gaW4gVUkgU3RhdGUgU3RyaW5nLicpO3ZhciBsb2M9dHIuYy5Mb2NhdGlvbi5mcm9tU3RhYmxlSWRBbmRUaW1lc3RhbXAodmlld3BvcnQsc3RhYmxlSWQsdGltZXN0YW1wKTtyZXR1cm4gbmV3IFVJU3RhdGUobG9jLHNjYWxlWCk7fQotVUlTdGF0ZS5wcm90b3R5cGU9e2dldCBsb2NhdGlvbigpe3JldHVybiB0aGlzLmxvY2F0aW9uXzt9LGdldCBzY2FsZVgoKXtyZXR1cm4gdGhpcy5zY2FsZVhfO30sdG9Vc2VyRnJpZW5kbHlTdHJpbmc6ZnVuY3Rpb24odmlld3BvcnQpe3ZhciB0aW1lc3RhbXA9dGhpcy5sb2NhdGlvbl8ueFdvcmxkO3ZhciBzdGFibGVJZD10aGlzLmxvY2F0aW9uXy5nZXRDb250YWluaW5nVHJhY2sodmlld3BvcnQpLmV2ZW50Q29udGFpbmVyLnN0YWJsZUlkO3ZhciBzY2FsZVg9dGhpcy5zY2FsZVhfO3JldHVybiB0aW1lc3RhbXAudG9GaXhlZCg1KSsnQCcrc3RhYmxlSWQrJ3gnK3NjYWxlWC50b0ZpeGVkKDUpO30sdG9EaWN0OmZ1bmN0aW9uKCl7cmV0dXJue2xvY2F0aW9uOnRoaXMubG9jYXRpb25fLnRvRGljdCgpLHNjYWxlWDp0aGlzLnNjYWxlWF99O319O3JldHVybntVSVN0YXRlOlVJU3RhdGV9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYycsZnVuY3Rpb24oKXt2YXIgQnJ1c2hpbmdTdGF0ZT10ci5jLkJydXNoaW5nU3RhdGU7dmFyIFNlbGVjdGlvbj10ci5jLlNlbGVjdGlvbjt2YXIgU2VsZWN0aW9uU3RhdGU9dHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7dmFyIFZpZXdwb3J0PXRyLmMuVGltZWxpbmVWaWV3cG9ydDtmdW5jdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyKHRpbWVsaW5lVmlldyl7dHIuYi5FdmVudFRhcmdldC5jYWxsKHRoaXMpO3RoaXMudGltZWxpbmVWaWV3Xz10aW1lbGluZVZpZXc7dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV89bmV3IEJydXNoaW5nU3RhdGUoKTt0aGlzLm9uUG9wU3RhdGVfPXRoaXMub25Qb3BTdGF0ZV8uYmluZCh0aGlzKTt0aGlzLmhpc3RvcnlFbmFibGVkXz1mYWxzZTt0aGlzLnNlbGVjdGlvbnNfPXt9O30KLVNlbGVjdGlvbkNvbnRyb2xsZXIucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYi5FdmVudFRhcmdldC5wcm90b3R5cGUsZGlzcGF0Y2hDaGFuZ2VFdmVudF86ZnVuY3Rpb24oKXt2YXIgZT1uZXcgdHIuYi5FdmVudCgnY2hhbmdlJyxmYWxzZSxmYWxzZSk7dGhpcy5kaXNwYXRjaEV2ZW50KGUpO30sZ2V0IG1vZGVsKCl7aWYoIXRoaXMudGltZWxpbmVWaWV3XykKLXJldHVybiB1bmRlZmluZWQ7cmV0dXJuIHRoaXMudGltZWxpbmVWaWV3Xy5tb2RlbDt9LGdldCB0cmFja1ZpZXcoKXtpZighdGhpcy50aW1lbGluZVZpZXdfKQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy50aW1lbGluZVZpZXdfLnRyYWNrVmlldzt9LGdldCB2aWV3cG9ydCgpe2lmKCF0aGlzLnRpbWVsaW5lVmlld18pCi1yZXR1cm4gdW5kZWZpbmVkO2lmKCF0aGlzLnRpbWVsaW5lVmlld18udHJhY2tWaWV3KQotcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy50aW1lbGluZVZpZXdfLnRyYWNrVmlldy52aWV3cG9ydDt9LGdldCBoaXN0b3J5RW5hYmxlZCgpe3JldHVybiB0aGlzLmhpc3RvcnlFbmFibGVkXzt9LHNldCBoaXN0b3J5RW5hYmxlZChoaXN0b3J5RW5hYmxlZCl7dGhpcy5oaXN0b3J5RW5hYmxlZF89ISFoaXN0b3J5RW5hYmxlZDtpZihoaXN0b3J5RW5hYmxlZCkKLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsdGhpcy5vblBvcFN0YXRlXyk7ZWxzZQotd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJyx0aGlzLm9uUG9wU3RhdGVfKTt9LG1vZGVsV2lsbENoYW5nZTpmdW5jdGlvbigpe2lmKHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmlzQXBwbGllZFRvTW9kZWwpCi10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy51bmFwcGx5RnJvbU1vZGVsU2VsZWN0aW9uU3RhdGUoKTt9LG1vZGVsRGlkQ2hhbmdlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25zXz17fTt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5hcHBseVRvTW9kZWxTZWxlY3Rpb25TdGF0ZSh0aGlzLm1vZGVsKTt2YXIgZT1uZXcgdHIuYi5FdmVudCgnbW9kZWwtY2hhbmdlZCcsZmFsc2UsZmFsc2UpO3RoaXMuZGlzcGF0Y2hFdmVudChlKTt9LG9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV86ZnVuY3Rpb24oKXt2YXIgc2VsZWN0aW9uPXRoaXMuc2VsZWN0aW9uO2lmKHRoaXMuaGlzdG9yeUVuYWJsZWQpe3RoaXMuc2VsZWN0aW9uc19bc2VsZWN0aW9uLmd1aWRdPXNlbGVjdGlvbjt2YXIgc3RhdGU9e3NlbGVjdGlvbl9ndWlkOnNlbGVjdGlvbi5ndWlkfTt3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoc3RhdGUsZG9jdW1lbnQudGl0bGUpO319LG9uUG9wU3RhdGVfOmZ1bmN0aW9uKGUpe2lmKGUuc3RhdGU9PT1udWxsKQotcmV0dXJuO3ZhciBzZWxlY3Rpb249dGhpcy5zZWxlY3Rpb25zX1tlLnN0YXRlLnNlbGVjdGlvbl9ndWlkXTtpZihzZWxlY3Rpb24pe3ZhciBuZXdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld1N0YXRlLnNlbGVjdGlvbj1zZWxlY3Rpb247dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZT1uZXdTdGF0ZTt9Ci1lLnN0b3BQcm9wYWdhdGlvbigpO30sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5zZWxlY3Rpb247fSxnZXQgZmluZE1hdGNoZXMoKXtyZXR1cm4gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uZmluZE1hdGNoZXM7fSxnZXQgc2VsZWN0aW9uT2ZJbnRlcmVzdCgpe3JldHVybiB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5zZWxlY3Rpb25PZkludGVyZXN0O30sZ2V0IGN1cnJlbnRCcnVzaGluZ1N0YXRlKCl7cmV0dXJuIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfO30sc2V0IGN1cnJlbnRCcnVzaGluZ1N0YXRlKG5ld0JydXNoaW5nU3RhdGUpe2lmKG5ld0JydXNoaW5nU3RhdGUuaXNBcHBsaWVkVG9Nb2RlbCkKLXRocm93IG5ldyBFcnJvcignQ2Fubm90IGFwcGx5IHRoaXMgc3RhdGUsIGl0IGlzIGFwcGxpZWQnKTt2YXIgaGFzVmFsdWVDaGFuZ2VkPSF0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5lcXVhbHMobmV3QnJ1c2hpbmdTdGF0ZSk7aWYobmV3QnJ1c2hpbmdTdGF0ZSE9PXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfJiZoYXNWYWx1ZUNoYW5nZWQ9PWZhbHNlKXt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy50cmFuc2Zlck1vZGVsT3duZXJzaGlwVG9DbG9uZShuZXdCcnVzaGluZ1N0YXRlKTt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXz1uZXdCcnVzaGluZ1N0YXRlO3JldHVybjt9Ci1pZih0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5pc0FwcGxpZWRUb01vZGVsKQotdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8udW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlKCk7dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV89bmV3QnJ1c2hpbmdTdGF0ZTtpZih0aGlzLm1vZGVsKQotdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGUodGhpcy5tb2RlbCk7dGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50XygpO30sYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzazpmdW5jdGlvbihmaWx0ZXIsc2VsZWN0aW9uKXt2YXIgdGltZWxpbmVWaWV3PXRoaXMudGltZWxpbmVWaWV3Xy50cmFja1ZpZXc7aWYoIXRpbWVsaW5lVmlldykKLXJldHVybiBuZXcgdHIuYi5UYXNrKCk7cmV0dXJuIHRpbWVsaW5lVmlldy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrKGZpbHRlcixzZWxlY3Rpb24pO30sZmluZFRleHRDaGFuZ2VkVG86ZnVuY3Rpb24oYWxsUG9zc2libGVNYXRjaGVzKXt2YXIgbmV3QnJ1c2hpbmdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXM9YWxsUG9zc2libGVNYXRjaGVzO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt9LGZpbmRGb2N1c0NoYW5nZWRUbzpmdW5jdGlvbihjdXJyZW50Rm9jdXMpe3ZhciBuZXdCcnVzaGluZ1N0YXRlPXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7bmV3QnJ1c2hpbmdTdGF0ZS5zZWxlY3Rpb249Y3VycmVudEZvY3VzO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt0aGlzLm9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV8oKTt9LGZpbmRUZXh0Q2xlYXJlZDpmdW5jdGlvbigpe2lmKHRoaXMueE5hdlN0cmluZ01hcmtlcl8hPT11bmRlZmluZWQpe3RoaXMubW9kZWwucmVtb3ZlQW5ub3RhdGlvbih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKTt0aGlzLnhOYXZTdHJpbmdNYXJrZXJfPXVuZGVmaW5lZDt9Ci1pZih0aGlzLmd1aWRlTGluZUFubm90YXRpb25fIT09dW5kZWZpbmVkKXt0aGlzLm1vZGVsLnJlbW92ZUFubm90YXRpb24odGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXyk7dGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXz11bmRlZmluZWQ7fQotdmFyIG5ld0JydXNoaW5nU3RhdGU9dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTtuZXdCcnVzaGluZ1N0YXRlLnNlbGVjdGlvbj1uZXcgU2VsZWN0aW9uKCk7bmV3QnJ1c2hpbmdTdGF0ZS5maW5kTWF0Y2hlcz1uZXcgU2VsZWN0aW9uKCk7dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZT1uZXdCcnVzaGluZ1N0YXRlO3RoaXMub25Vc2VySW5pdGlhdGVkU2VsZWN0aW9uQ2hhbmdlXygpO30sdWlTdGF0ZUZyb21TdHJpbmc6ZnVuY3Rpb24oc3RyaW5nKXtyZXR1cm4gdHIuYy5VSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcodGhpcy5tb2RlbCx0aGlzLnZpZXdwb3J0LHN0cmluZyk7fSxuYXZUb1Bvc2l0aW9uOmZ1bmN0aW9uKHVpU3RhdGUsc2hvd05hdkxpbmUpe3RoaXMudHJhY2tWaWV3Lm5hdlRvUG9zaXRpb24odWlTdGF0ZSxzaG93TmF2TGluZSk7fSxjaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmU6ZnVuY3Rpb24oc2VsZWN0aW9uKXt2YXIgbmV3QnJ1c2hpbmdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uPXNlbGVjdGlvbjtuZXdCcnVzaGluZ1N0YXRlLmZpbmRNYXRjaGVzPW5ldyBTZWxlY3Rpb24oKTt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlPW5ld0JydXNoaW5nU3RhdGU7dGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7fSxzaG93U2NyaXB0Q29udHJvbFNlbGVjdGlvbjpmdW5jdGlvbihzZWxlY3Rpb24pe3ZhciBuZXdCcnVzaGluZ1N0YXRlPXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7bmV3QnJ1c2hpbmdTdGF0ZS5zZWxlY3Rpb249c2VsZWN0aW9uO25ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXM9bmV3IFNlbGVjdGlvbigpO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt9LGNoYW5nZVNlbGVjdGlvbkZyb21SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ6ZnVuY3Rpb24oc2VsZWN0aW9uKXt2YXIgbmV3QnJ1c2hpbmdTdGF0ZT10aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpO25ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uPXNlbGVjdGlvbjtuZXdCcnVzaGluZ1N0YXRlLmZpbmRNYXRjaGVzPW5ldyBTZWxlY3Rpb24oKTt0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlPW5ld0JydXNoaW5nU3RhdGU7dGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7fSxjaGFuZ2VBbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzOmZ1bmN0aW9uKHNlbGVjdGlvbil7dmFyIG5ld0JydXNoaW5nU3RhdGU9dGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTtuZXdCcnVzaGluZ1N0YXRlLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHM9c2VsZWN0aW9uO3RoaXMuY3VycmVudEJydXNoaW5nU3RhdGU9bmV3QnJ1c2hpbmdTdGF0ZTt9fTtyZXR1cm57U2VsZWN0aW9uQ29udHJvbGxlcjpTZWxlY3Rpb25Db250cm9sbGVyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmMnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gU2NyaXB0aW5nT2JqZWN0KCl7fQotU2NyaXB0aW5nT2JqZWN0LnByb3RvdHlwZT17b25Nb2RlbENoYW5nZWQ6ZnVuY3Rpb24oKXt9fTtyZXR1cm57U2NyaXB0aW5nT2JqZWN0OlNjcmlwdGluZ09iamVjdH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe2Z1bmN0aW9uIFNjcmlwdGluZ0NvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcil7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXz1zZWxlY3Rpb25Db250cm9sbGVyO3RoaXMuc2NyaXB0T2JqZWN0TmFtZXNfPVtdO3RoaXMuc2NyaXB0T2JqZWN0VmFsdWVzXz1bXTt0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcignbW9kZWwtY2hhbmdlZCcsdGhpcy5vbk1vZGVsQ2hhbmdlZF8uYmluZCh0aGlzKSk7dmFyIHR5cGVJbmZvcz1TY3JpcHRpbmdPYmplY3RSZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCk7dHlwZUluZm9zLmZvckVhY2goZnVuY3Rpb24odHlwZUluZm8pe3RoaXMuYWRkU2NyaXB0T2JqZWN0KHR5cGVJbmZvLm1ldGFkYXRhLm5hbWUsdHlwZUluZm8uY29uc3RydWN0b3IpO3dpbmRvd1t0eXBlSW5mby5tZXRhZGF0YS5uYW1lXT10eXBlSW5mby5jb25zdHJ1Y3Rvcjt9LmJpbmQodGhpcykpO30KLWZ1bmN0aW9uIFNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5KCl7fQotdmFyIG9wdGlvbnM9bmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7dHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KFNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5LG9wdGlvbnMpO1NjcmlwdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlPXtnZXQgc2VsZWN0aW9uQ29udHJvbGxlcigpe3JldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfO30sb25Nb2RlbENoYW5nZWRfOmZ1bmN0aW9uKCl7dGhpcy5zY3JpcHRPYmplY3RWYWx1ZXNfLmZvckVhY2goZnVuY3Rpb24odil7aWYodi5vbk1vZGVsQ2hhbmdlZCkKLXYub25Nb2RlbENoYW5nZWQoKTt9KTt9LGFkZFNjcmlwdE9iamVjdDpmdW5jdGlvbihuYW1lLHZhbHVlKXt0aGlzLnNjcmlwdE9iamVjdE5hbWVzXy5wdXNoKG5hbWUpO3RoaXMuc2NyaXB0T2JqZWN0VmFsdWVzXy5wdXNoKHZhbHVlKTt9LGV4ZWN1dGVDb21tYW5kOmZ1bmN0aW9uKGNvbW1hbmQpe3ZhciBmPW5ldyBGdW5jdGlvbih0aGlzLnNjcmlwdE9iamVjdE5hbWVzXywncmV0dXJuIGV2YWwoJytjb21tYW5kKycpJyk7cmV0dXJuIGYuYXBwbHkobnVsbCx0aGlzLnNjcmlwdE9iamVjdFZhbHVlc18pO319O3JldHVybntTY3JpcHRpbmdDb250cm9sbGVyOlNjcmlwdGluZ0NvbnRyb2xsZXIsU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnk6U2NyaXB0aW5nT2JqZWN0UmVnaXN0cnl9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS50cXVlcnknLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQ29udGV4dCgpe3RoaXMuZXZlbnQ9dW5kZWZpbmVkO3RoaXMuYW5jZXN0b3JzPVtdO30KK3ZhciBuPXRoaXMuY29udHJvbGxlci5maWx0ZXJIaXRzLmxlbmd0aDt2YXIgaT1uPT09MD8tMTp0aGlzLmNvbnRyb2xsZXIuY3VycmVudEhpdEluZGV4O3RoaXMuJC5oaXRDb3VudC50ZXh0Q29udGVudD0oaSsxKSsnIG9mICcrbjt9LHNldFRleHQ6ZnVuY3Rpb24oc3RyaW5nKXt0aGlzLiQuZmlsdGVyLnZhbHVlPXN0cmluZzt9fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLnRxdWVyeScsZnVuY3Rpb24oKXtmdW5jdGlvbiBDb250ZXh0KCl7dGhpcy5ldmVudD11bmRlZmluZWQ7dGhpcy5hbmNlc3RvcnM9W107fQogQ29udGV4dC5wcm90b3R5cGU9e3B1c2g6ZnVuY3Rpb24oZXZlbnQpe3ZhciBjdHg9bmV3IENvbnRleHQoKTtjdHguYW5jZXN0b3JzPXRoaXMuYW5jZXN0b3JzLnNsaWNlKCk7Y3R4LmFuY2VzdG9ycy5wdXNoKGV2ZW50KTtyZXR1cm4gY3R4O30scG9wOmZ1bmN0aW9uKGV2ZW50KXt2YXIgY3R4PW5ldyBDb250ZXh0KCk7Y3R4LmV2ZW50PXRoaXMuYW5jZXN0b3JzW3RoaXMuYW5jZXN0b3JzLmxlbmd0aC0xXTtjdHguYW5jZXN0b3JzPXRoaXMuYW5jZXN0b3JzLnNsaWNlKDAsdGhpcy5hbmNlc3RvcnMubGVuZ3RoLTEpO3JldHVybiBjdHg7fX07cmV0dXJue0NvbnRleHQ6Q29udGV4dH07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLnRxdWVyeScsZnVuY3Rpb24oKXtmdW5jdGlvbiBGaWx0ZXIoKXt0ci5jLlNjcmlwdGluZ09iamVjdC5jYWxsKHRoaXMpO30KIEZpbHRlci5ub3JtYWxpemVGaWx0ZXJFeHByZXNzaW9uPWZ1bmN0aW9uKGZpbHRlckV4cHJlc3Npb24pe2lmKGZpbHRlckV4cHJlc3Npb24gaW5zdGFuY2VvZiBTdHJpbmd8fHR5cGVvZihmaWx0ZXJFeHByZXNzaW9uKT09J3N0cmluZyd8fGZpbHRlckV4cHJlc3Npb24gaW5zdGFuY2VvZiBSZWdFeHApe3ZhciBmaWx0ZXI9bmV3IHRyLmUudHF1ZXJ5LkZpbHRlckhhc1RpdGxlKGZpbHRlckV4cHJlc3Npb24pO3JldHVybiBmaWx0ZXI7fQogcmV0dXJuIGZpbHRlckV4cHJlc3Npb247fTtGaWx0ZXIucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy5TY3JpcHRpbmdPYmplY3QucHJvdG90eXBlLGV2YWx1YXRlOmZ1bmN0aW9uKGNvbnRleHQpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxtYXRjaFZhbHVlXzpmdW5jdGlvbih2YWx1ZSxleHBlY3RlZCl7aWYoZXhwZWN0ZWQgaW5zdGFuY2VvZiBSZWdFeHApCkBAIC0zNjgyLDIwICs0MTUzLDIwIEBACiBGaWx0ZXJIYXNUaXRsZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5lLnRxdWVyeS5GaWx0ZXIucHJvdG90eXBlLGV2YWx1YXRlOmZ1bmN0aW9uKGNvbnRleHQpe3JldHVybiB0aGlzLm1hdGNoVmFsdWVfKGNvbnRleHQuZXZlbnQudGl0bGUsdGhpcy5leHBlY3RlZCk7fX07dHIuYy5TY3JpcHRpbmdPYmplY3RSZWdpc3RyeS5yZWdpc3RlcihmdW5jdGlvbihleHBlY3RlZCl7dmFyIGZpbHRlcj1uZXcgdHIuZS50cXVlcnkuRmlsdGVySGFzVGl0bGUoZXhwZWN0ZWQpO3JldHVybiBmaWx0ZXI7fSx7bmFtZTonaGFzVGl0bGUnfSk7cmV0dXJue0ZpbHRlckhhc1RpdGxlOkZpbHRlckhhc1RpdGxlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUudHF1ZXJ5JyxmdW5jdGlvbigpe2Z1bmN0aW9uIEZpbHRlcklzVG9wTGV2ZWwob3B0X3N1YkV4cHJlc3Npb24pe3RoaXMuc3ViRXhwcmVzc2lvbj1vcHRfc3ViRXhwcmVzc2lvbjt9CiBGaWx0ZXJJc1RvcExldmVsLnByb3RvdHlwZT17X19wcm90b19fOnRyLmUudHF1ZXJ5LkZpbHRlci5wcm90b3R5cGUsc2V0IHN1YkV4cHJlc3Npb24oZXhwcil7dGhpcy5zdWJFeHByZXNzaW9uXz10ci5lLnRxdWVyeS5GaWx0ZXIubm9ybWFsaXplRmlsdGVyRXhwcmVzc2lvbihleHByKTt9LGdldCBzdWJFeHByZXNzaW9uKCl7cmV0dXJuIHRoaXMuc3ViRXhwcmVzc2lvbl87fSxldmFsdWF0ZTpmdW5jdGlvbihjb250ZXh0KXtpZihjb250ZXh0LmFuY2VzdG9ycy5sZW5ndGg+MCkKIHJldHVybiBmYWxzZTtpZighdGhpcy5zdWJFeHByZXNzaW9uKQotcmV0dXJuIHRydWU7cmV0dXJuIHRoaXMuc3ViRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KTt9fTt0ci5jLlNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5LnJlZ2lzdGVyKGZ1bmN0aW9uKHN1YkV4cHJlc3Npb24pe3JldHVybiBuZXcgRmlsdGVySXNUb3BMZXZlbChzdWJFeHByZXNzaW9uKTt9LHtuYW1lOidpc1RvcExldmVsJ30pO3JldHVybntGaWx0ZXJJc1RvcExldmVsOkZpbHRlcklzVG9wTGV2ZWx9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS50cXVlcnknLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gVFF1ZXJ5KHNlbGVjdGlvbkNvbnRyb2xsZXIpe3RyLmMuU2NyaXB0aW5nT2JqZWN0LmNhbGwodGhpcyk7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXz1zZWxlY3Rpb25Db250cm9sbGVyO3RoaXMucGFyZW50Xz11bmRlZmluZWQ7dGhpcy5maWx0ZXJFeHByZXNzaW9uXz11bmRlZmluZWQ7dGhpcy5zZWxlY3Rpb25fPXVuZGVmaW5lZDt9O1RRdWVyeS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5jLlNjcmlwdGluZ09iamVjdC5wcm90b3R5cGUsb25Nb2RlbENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzt9LGZpbHRlcjpmdW5jdGlvbihmaWx0ZXJFeHByZXNzaW9uKXt2YXIgcmVzdWx0PW5ldyBUUXVlcnkodGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXyk7cmVzdWx0LnBhcmVudF89dGhpcztyZXN1bHQuZmlsdGVyRXhwcmVzc2lvbl89dHIuZS50cXVlcnkuRmlsdGVyLm5vcm1hbGl6ZUZpbHRlckV4cHJlc3Npb24oZmlsdGVyRXhwcmVzc2lvbik7cmV0dXJuIHJlc3VsdDt9LGNyZWF0ZUZpbHRlclRhc2tHcmFwaF86ZnVuY3Rpb24oKXt2YXIgbm9kZXM9W107dmFyIG5vZGU9dGhpczt3aGlsZShub2RlIT09dW5kZWZpbmVkKXtub2Rlcy5wdXNoKG5vZGUpO25vZGU9bm9kZS5wYXJlbnRfO30KK3JldHVybiB0cnVlO3JldHVybiB0aGlzLnN1YkV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCk7fX07dHIuYy5TY3JpcHRpbmdPYmplY3RSZWdpc3RyeS5yZWdpc3RlcihmdW5jdGlvbihzdWJFeHByZXNzaW9uKXtyZXR1cm4gbmV3IEZpbHRlcklzVG9wTGV2ZWwoc3ViRXhwcmVzc2lvbik7fSx7bmFtZTonaXNUb3BMZXZlbCd9KTtyZXR1cm57RmlsdGVySXNUb3BMZXZlbDpGaWx0ZXJJc1RvcExldmVsfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUudHF1ZXJ5JyxmdW5jdGlvbigpe2Z1bmN0aW9uIFRRdWVyeShicnVzaGluZ1N0YXRlQ29udHJvbGxlcil7dHIuYy5TY3JpcHRpbmdPYmplY3QuY2FsbCh0aGlzKTt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXz1icnVzaGluZ1N0YXRlQ29udHJvbGxlcjt0aGlzLnBhcmVudF89dW5kZWZpbmVkO3RoaXMuZmlsdGVyRXhwcmVzc2lvbl89dW5kZWZpbmVkO3RoaXMuc2VsZWN0aW9uXz11bmRlZmluZWQ7fTtUUXVlcnkucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy5TY3JpcHRpbmdPYmplY3QucHJvdG90eXBlLG9uTW9kZWxDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCBicnVzaGluZ1N0YXRlQ29udHJvbGxlcigpe3JldHVybiB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXzt9LGZpbHRlcjpmdW5jdGlvbihmaWx0ZXJFeHByZXNzaW9uKXt2YXIgcmVzdWx0PW5ldyBUUXVlcnkodGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8pO3Jlc3VsdC5wYXJlbnRfPXRoaXM7cmVzdWx0LmZpbHRlckV4cHJlc3Npb25fPXRyLmUudHF1ZXJ5LkZpbHRlci5ub3JtYWxpemVGaWx0ZXJFeHByZXNzaW9uKGZpbHRlckV4cHJlc3Npb24pO3JldHVybiByZXN1bHQ7fSxjcmVhdGVGaWx0ZXJUYXNrR3JhcGhfOmZ1bmN0aW9uKCl7dmFyIG5vZGVzPVtdO3ZhciBub2RlPXRoaXM7d2hpbGUobm9kZSE9PXVuZGVmaW5lZCl7bm9kZXMucHVzaChub2RlKTtub2RlPW5vZGUucGFyZW50Xzt9CiB2YXIgcm9vdFRhc2s9bmV3IHRyLmIuVGFzaygpO3ZhciBsYXN0VGFzaz1yb290VGFzaztmb3IodmFyIGk9bm9kZXMubGVuZ3RoLTE7aT49MDtpLS0pe3ZhciBub2RlPW5vZGVzW2ldO2lmKG5vZGUuc2VsZWN0aW9uXyE9PXVuZGVmaW5lZCkKLWNvbnRpbnVlO25vZGUuc2VsZWN0aW9uXz1uZXcgdHIuYy5TZWxlY3Rpb24oKTtpZihub2RlLnBhcmVudF89PT11bmRlZmluZWQpe2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKHRoaXMuc2VsZWN0RXZlcnl0aGluZ0FzVGFza18obm9kZS5zZWxlY3Rpb25fKSk7fWVsc2V7dmFyIHByZXZOb2RlPW5vZGVzW2krMV07bGFzdFRhc2s9dGhpcy5jcmVhdGVGaWx0ZXJUYXNrRm9yTm9kZV8obGFzdFRhc2ssbm9kZSxwcmV2Tm9kZSk7fX0KK2NvbnRpbnVlO25vZGUuc2VsZWN0aW9uXz1uZXcgdHIubW9kZWwuRXZlbnRTZXQoKTtpZihub2RlLnBhcmVudF89PT11bmRlZmluZWQpe2xhc3RUYXNrPWxhc3RUYXNrLmFmdGVyKHRoaXMuc2VsZWN0RXZlcnl0aGluZ0FzVGFza18obm9kZS5zZWxlY3Rpb25fKSk7fWVsc2V7dmFyIHByZXZOb2RlPW5vZGVzW2krMV07bGFzdFRhc2s9dGhpcy5jcmVhdGVGaWx0ZXJUYXNrRm9yTm9kZV8obGFzdFRhc2ssbm9kZSxwcmV2Tm9kZSk7fX0KIHJldHVybntyb290VGFzazpyb290VGFzayxsYXN0VGFzazpsYXN0VGFzayxsYXN0Tm9kZTpub2RlfTt9LGNyZWF0ZUZpbHRlclRhc2tGb3JOb2RlXzpmdW5jdGlvbihsYXN0VGFzayxub2RlLHByZXZOb2RlKXtyZXR1cm4gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXtub2RlLmV2YWx1YXRlRmlsdGVyRXhwcmVzc2lvbl8ocHJldk5vZGUuc2VsZWN0aW9uXyxub2RlLnNlbGVjdGlvbl8pO30sdGhpcyk7fSxldmFsdWF0ZUZpbHRlckV4cHJlc3Npb25fOmZ1bmN0aW9uKGlucHV0U2VsZWN0aW9uLG91dHB1dFNlbGVjdGlvbil7dmFyIHNlZW5FdmVudHM9e307aW5wdXRTZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbihldmVudCl7dmFyIGNvbnRleHQ9bmV3IHRyLmUudHF1ZXJ5LkNvbnRleHQoKTtjb250ZXh0LmV2ZW50PWV2ZW50O3RoaXMuZXZhbHVhdGVGaWx0ZXJFeHByZXNzaW9uRm9yRXZlbnRfKGNvbnRleHQsaW5wdXRTZWxlY3Rpb24sb3V0cHV0U2VsZWN0aW9uLHNlZW5FdmVudHMpO30uYmluZCh0aGlzKSk7fSxldmFsdWF0ZUZpbHRlckV4cHJlc3Npb25Gb3JFdmVudF86ZnVuY3Rpb24oY29udGV4dCxpbnB1dFNlbGVjdGlvbixvdXRwdXRTZWxlY3Rpb24sc2VlbkV2ZW50cyl7dmFyIGV2ZW50PWNvbnRleHQuZXZlbnQ7aWYoaW5wdXRTZWxlY3Rpb24uY29udGFpbnMoZXZlbnQpJiYhc2VlbkV2ZW50c1tldmVudC5ndWlkXSl7c2VlbkV2ZW50c1tldmVudC5ndWlkXT10cnVlO2lmKCF0aGlzLmZpbHRlckV4cHJlc3Npb25ffHx0aGlzLmZpbHRlckV4cHJlc3Npb25fLmV2YWx1YXRlKGNvbnRleHQpKQogb3V0cHV0U2VsZWN0aW9uLnB1c2goZXZlbnQpO30KIGlmKCFldmVudC5zdWJTbGljZXMpCi1yZXR1cm47Y29udGV4dD1jb250ZXh0LnB1c2goZXZlbnQpO2Zvcih2YXIgaT0wO2k8ZXZlbnQuc3ViU2xpY2VzLmxlbmd0aDtpKyspe2NvbnRleHQuZXZlbnQ9ZXZlbnQuc3ViU2xpY2VzW2ldO3RoaXMuZXZhbHVhdGVGaWx0ZXJFeHByZXNzaW9uRm9yRXZlbnRfKGNvbnRleHQsaW5wdXRTZWxlY3Rpb24sb3V0cHV0U2VsZWN0aW9uLHNlZW5FdmVudHMpO319LHNob3c6ZnVuY3Rpb24oKXt2YXIgZ3JhcGg9dGhpcy5jcmVhdGVGaWx0ZXJUYXNrR3JhcGhfKCk7Z3JhcGgubGFzdFRhc2s9Z3JhcGgubGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2hvd1NjcmlwdENvbnRyb2xTZWxlY3Rpb24oZ3JhcGgubGFzdE5vZGUuc2VsZWN0aW9uXyk7fSx0aGlzKTtyZXR1cm4gZ3JhcGgucm9vdFRhc2s7fSxzZWxlY3RFdmVyeXRoaW5nQXNUYXNrXzpmdW5jdGlvbihzZWxlY3Rpb24pe3ZhciBwYXNzVGhyb3VnaEZpbHRlcj1uZXcgdHIuYy5GaWx0ZXIoKTt2YXIgZmlsdGVyVGFzaz10aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzayhwYXNzVGhyb3VnaEZpbHRlcixzZWxlY3Rpb24pO3JldHVybiBmaWx0ZXJUYXNrO30sZ2V0IHNlbGVjdGlvbigpe2lmKHRoaXMuc2VsZWN0aW9uXz09PXVuZGVmaW5lZCl7dmFyIGdyYXBoPXRoaXMuY3JlYXRlRmlsdGVyVGFza0dyYXBoXygpO3RyLmIuVGFzay5SdW5TeW5jaHJvbm91c2x5KGdyYXBoLnJvb3RUYXNrKTt9Ci1yZXR1cm4gdGhpcy5zZWxlY3Rpb25fO319O3RyLmMuU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnkucmVnaXN0ZXIobmV3IFRRdWVyeSgpLHtuYW1lOickdCd9KTtyZXR1cm57VFF1ZXJ5OlRRdWVyeX07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyYWNpbmctc2NyaXB0aW5nLWNvbnRyb2wnLHtfaXNFbnRlcktleTpmdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LmtleUNvZGUhPT0yMjkmJmV2ZW50LmtleUlkZW50aWZpZXI9PT0nRW50ZXInO30sX3NldEZvY3VzZWQ6ZnVuY3Rpb24oZm9jdXNlZCl7dmFyIHByb21wdEVsPXRoaXMuJC5wcm9tcHQ7aWYoZm9jdXNlZCl7cHJvbXB0RWwuZm9jdXMoKTt0aGlzLiQucm9vdC5jbGFzc0xpc3QuYWRkKCdmb2N1c2VkJyk7aWYocHJvbXB0RWwuaW5uZXJUZXh0Lmxlbmd0aD4wKXt2YXIgc2VsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtzZWwuY29sbGFwc2UocHJvbXB0RWwuZmlyc3RDaGlsZCxwcm9tcHRFbC5pbm5lclRleHQubGVuZ3RoKTt9fWVsc2V7cHJvbXB0RWwuYmx1cigpO3RoaXMuJC5yb290LmNsYXNzTGlzdC5yZW1vdmUoJ2ZvY3VzZWQnKTt2YXIgcGFyZW50PXByb21wdEVsLnBhcmVudEVsZW1lbnQ7dmFyIG5leHRFbD1wcm9tcHRFbC5uZXh0U2libGluZztwcm9tcHRFbC5yZW1vdmUoKTtwYXJlbnQuaW5zZXJ0QmVmb3JlKHByb21wdEVsLG5leHRFbCk7fX0sb25Db25zb2xlRm9jdXM6ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKTt0aGlzLl9zZXRGb2N1c2VkKHRydWUpO30sb25Db25zb2xlQmx1cjpmdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpO3RoaXMuX3NldEZvY3VzZWQoZmFsc2UpO30scHJvbXB0S2V5RG93bjpmdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpO2lmKCF0aGlzLl9pc0VudGVyS2V5KGUpKQorcmV0dXJuO2NvbnRleHQ9Y29udGV4dC5wdXNoKGV2ZW50KTtmb3IodmFyIGk9MDtpPGV2ZW50LnN1YlNsaWNlcy5sZW5ndGg7aSsrKXtjb250ZXh0LmV2ZW50PWV2ZW50LnN1YlNsaWNlc1tpXTt0aGlzLmV2YWx1YXRlRmlsdGVyRXhwcmVzc2lvbkZvckV2ZW50Xyhjb250ZXh0LGlucHV0U2VsZWN0aW9uLG91dHB1dFNlbGVjdGlvbixzZWVuRXZlbnRzKTt9fSxzaG93OmZ1bmN0aW9uKCl7dmFyIGdyYXBoPXRoaXMuY3JlYXRlRmlsdGVyVGFza0dyYXBoXygpO2dyYXBoLmxhc3RUYXNrPWdyYXBoLmxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCl7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5zaG93U2NyaXB0Q29udHJvbFNlbGVjdGlvbihncmFwaC5sYXN0Tm9kZS5zZWxlY3Rpb25fKTt9LHRoaXMpO3JldHVybiBncmFwaC5yb290VGFzazt9LHNlbGVjdEV2ZXJ5dGhpbmdBc1Rhc2tfOmZ1bmN0aW9uKHNlbGVjdGlvbil7dmFyIHBhc3NUaHJvdWdoRmlsdGVyPW5ldyB0ci5jLkZpbHRlcigpO3ZhciBmaWx0ZXJUYXNrPXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzayhwYXNzVGhyb3VnaEZpbHRlcixzZWxlY3Rpb24pO3JldHVybiBmaWx0ZXJUYXNrO30sZ2V0IHNlbGVjdGlvbigpe2lmKHRoaXMuc2VsZWN0aW9uXz09PXVuZGVmaW5lZCl7dmFyIGdyYXBoPXRoaXMuY3JlYXRlRmlsdGVyVGFza0dyYXBoXygpO3RyLmIuVGFzay5SdW5TeW5jaHJvbm91c2x5KGdyYXBoLnJvb3RUYXNrKTt9CityZXR1cm4gdGhpcy5zZWxlY3Rpb25fO319O3RyLmMuU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnkucmVnaXN0ZXIobmV3IFRRdWVyeSgpLHtuYW1lOickdCd9KTtyZXR1cm57VFF1ZXJ5OlRRdWVyeX07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLXNjcmlwdGluZy1jb250cm9sJyx7X2lzRW50ZXJLZXk6ZnVuY3Rpb24oZXZlbnQpe3JldHVybiBldmVudC5rZXlDb2RlIT09MjI5JiZldmVudC5rZXlJZGVudGlmaWVyPT09J0VudGVyJzt9LF9zZXRGb2N1c2VkOmZ1bmN0aW9uKGZvY3VzZWQpe3ZhciBwcm9tcHRFbD10aGlzLiQucHJvbXB0O2lmKGZvY3VzZWQpe3Byb21wdEVsLmZvY3VzKCk7dGhpcy4kLnJvb3QuY2xhc3NMaXN0LmFkZCgnZm9jdXNlZCcpO2lmKHByb21wdEVsLmlubmVyVGV4dC5sZW5ndGg+MCl7dmFyIHNlbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7c2VsLmNvbGxhcHNlKHByb21wdEVsLmZpcnN0Q2hpbGQscHJvbXB0RWwuaW5uZXJUZXh0Lmxlbmd0aCk7fX1lbHNle3Byb21wdEVsLmJsdXIoKTt0aGlzLiQucm9vdC5jbGFzc0xpc3QucmVtb3ZlKCdmb2N1c2VkJyk7dmFyIHBhcmVudD1wcm9tcHRFbC5wYXJlbnRFbGVtZW50O3ZhciBuZXh0RWw9cHJvbXB0RWwubmV4dFNpYmxpbmc7cHJvbXB0RWwucmVtb3ZlKCk7cGFyZW50Lmluc2VydEJlZm9yZShwcm9tcHRFbCxuZXh0RWwpO319LG9uQ29uc29sZUZvY3VzOmZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7dGhpcy5fc2V0Rm9jdXNlZCh0cnVlKTt9LG9uQ29uc29sZUJsdXI6ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKTt0aGlzLl9zZXRGb2N1c2VkKGZhbHNlKTt9LHByb21wdEtleURvd246ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKTtpZighdGhpcy5faXNFbnRlcktleShlKSkKIHJldHVybjt2YXIgcHJvbXB0RWw9dGhpcy4kLnByb21wdDt2YXIgY29tbWFuZD1wcm9tcHRFbC5pbm5lclRleHQ7aWYoY29tbWFuZC5sZW5ndGg9PT0wKQogcmV0dXJuO3Byb21wdEVsLmlubmVyVGV4dD0nJzt0aGlzLmFkZExpbmVfKFN0cmluZy5mcm9tQ2hhckNvZGUoMTg3KSsnICcrY29tbWFuZCk7dHJ5e3ZhciByZXN1bHQ9dGhpcy5jb250cm9sbGVyXy5leGVjdXRlQ29tbWFuZChjb21tYW5kKTt9Y2F0Y2goZSl7cmVzdWx0PWUuc3RhY2t8fGUuc3RhY2tUcmFjZTt9CiBpZihyZXN1bHQgaW5zdGFuY2VvZiB0ci5iLlRhc2spe3RyLmIuVGFzay5SdW5XaGVuSWRsZShyZXN1bHQpO31lbHNle3RoaXMuYWRkTGluZV8ocmVzdWx0KTt9fSxhZGRMaW5lXzpmdW5jdGlvbihsaW5lKXt2YXIgaGlzdG9yeUVsPXRoaXMuJC5oaXN0b3J5O2lmKGhpc3RvcnlFbC5pbm5lclRleHQubGVuZ3RoIT09MCkKLWhpc3RvcnlFbC5pbm5lclRleHQrPSdcbic7aGlzdG9yeUVsLmlubmVyVGV4dCs9bGluZTt9LHByb21wdEtleVByZXNzOmZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7fSx0b2dnbGVWaXNpYmlsaXR5OmZ1bmN0aW9uKCl7dmFyIHJvb3Q9dGhpcy4kLnJvb3Q7aWYoIXRoaXMudmlzaWJsZSl7cm9vdC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTt0aGlzLl9zZXRGb2N1c2VkKHRydWUpO31lbHNle3Jvb3QuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7dGhpcy5fc2V0Rm9jdXNlZChmYWxzZSk7fX0sZ2V0IGhhc0ZvY3VzKCl7cmV0dXJuIHRoaXM9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O30sZ2V0IHZpc2libGUoKXt2YXIgcm9vdD10aGlzLiQucm9vdDtyZXR1cm4hcm9vdC5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpO30sZ2V0IGNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyXzt9LHNldCBjb250cm9sbGVyKGMpe3RoaXMuY29udHJvbGxlcl89Yzt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWMtc2lkZS1wYW5lbCcse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy5vYmplY3RJbnN0YW5jZV89dW5kZWZpbmVkO30sZ2V0IHJhbmdlT2ZJbnRlcmVzdCgpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlT2ZJbnRlcmVzdCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGdldCBzZWxlY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxnZXQgbW9kZWwoKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sc2V0IG1vZGVsKG1vZGVsKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sZ2V0IGxpc3RlbmluZ1RvS2V5cygpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxzdXBwb3J0c01vZGVsOmZ1bmN0aW9uKG0pe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci1jLXNpZGUtcGFuZWwtY29udGFpbmVyJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZVBhbmVsQ29udGFpbmVyXz10aGlzLiQuYWN0aXZlX3BhbmVsX2NvbnRhaW5lcjt0aGlzLnRhYlN0cmlwXz10aGlzLiQudGFiX3N0cmlwO3RoaXMucmFuZ2VPZkludGVyZXN0Xz1uZXcgdHIuYi5SYW5nZSgpO3RoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl89dW5kZWZpbmVkO3RoaXMub25TZWxlY3Rpb25DaGFuZ2VkXz10aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8uYmluZCh0aGlzKTt0aGlzLm9uTW9kZWxDaGFuZ2VkXz10aGlzLm9uTW9kZWxDaGFuZ2VkXy5iaW5kKHRoaXMpO30sZ2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzt9LHNldCBzZWxlY3Rpb25Db250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpe2lmKHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcil7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb2RlbC1jaGFuZ2VkJyx0aGlzLm9uTW9kZWxDaGFuZ2VkXyk7fQotdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXz1zZWxlY3Rpb25Db250cm9sbGVyO2lmKHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcil7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdtb2RlbC1jaGFuZ2VkJyx0aGlzLm9uTW9kZWxDaGFuZ2VkXyk7fX0sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLnNlbGVjdGlvbjt9LG9uU2VsZWN0aW9uQ2hhbmdlZF86ZnVuY3Rpb24oKXtpZih0aGlzLmFjdGl2ZVBhbmVsKQotdGhpcy5hY3RpdmVQYW5lbC5zZWxlY3Rpb249dGhpcy5zZWxlY3Rpb247fSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5tb2RlbDt9LG9uTW9kZWxDaGFuZ2VkXzpmdW5jdGlvbigpe3RoaXMuYWN0aXZlUGFuZWxUeXBlXz11bmRlZmluZWQ7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBleHBhbmRlZCgpe3RoaXMuaGFzQXR0cmlidXRlKCdleHBhbmRlZCcpO30sZ2V0IGFjdGl2ZVBhbmVsKCl7aWYodGhpcy5hY3RpdmVQYW5lbENvbnRhaW5lcl8uY2hpbGRyZW4ubGVuZ3RoPT09MCkKK2hpc3RvcnlFbC5pbm5lclRleHQrPSdcbic7aGlzdG9yeUVsLmlubmVyVGV4dCs9bGluZTt9LHByb21wdEtleVByZXNzOmZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7fSx0b2dnbGVWaXNpYmlsaXR5OmZ1bmN0aW9uKCl7dmFyIHJvb3Q9dGhpcy4kLnJvb3Q7aWYoIXRoaXMudmlzaWJsZSl7cm9vdC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTt0aGlzLl9zZXRGb2N1c2VkKHRydWUpO31lbHNle3Jvb3QuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7dGhpcy5fc2V0Rm9jdXNlZChmYWxzZSk7fX0sZ2V0IGhhc0ZvY3VzKCl7cmV0dXJuIHRoaXM9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O30sZ2V0IHZpc2libGUoKXt2YXIgcm9vdD10aGlzLiQucm9vdDtyZXR1cm4hcm9vdC5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpO30sZ2V0IGNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyXzt9LHNldCBjb250cm9sbGVyKGMpe3RoaXMuY29udHJvbGxlcl89Yzt9fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLXVpLXNpZGUtcGFuZWwnLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMub2JqZWN0SW5zdGFuY2VfPXVuZGVmaW5lZDt9LGdldCByYW5nZU9mSW50ZXJlc3QoKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sc2V0IHJhbmdlT2ZJbnRlcmVzdChyYW5nZU9mSW50ZXJlc3Qpe3Rocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7fSxnZXQgc2VsZWN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sZ2V0IG1vZGVsKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHNldCBtb2RlbChtb2RlbCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LGdldCBsaXN0ZW5pbmdUb0tleXMoKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sc3VwcG9ydHNNb2RlbDpmdW5jdGlvbihtKXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktc2lkZS1wYW5lbC1jb250YWluZXInLHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuYWN0aXZlUGFuZWxDb250YWluZXJfPXRoaXMuJC5hY3RpdmVfcGFuZWxfY29udGFpbmVyO3RoaXMudGFiU3RyaXBfPXRoaXMuJC50YWJfc3RyaXA7dGhpcy5yYW5nZU9mSW50ZXJlc3RfPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl89dW5kZWZpbmVkO3RoaXMub25TZWxlY3Rpb25DaGFuZ2VkXz10aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8uYmluZCh0aGlzKTt0aGlzLm9uTW9kZWxDaGFuZ2VkXz10aGlzLm9uTW9kZWxDaGFuZ2VkXy5iaW5kKHRoaXMpO30sZ2V0IGJydXNoaW5nU3RhdGVDb250cm9sbGVyKCl7cmV0dXJuIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfO30sc2V0IGJydXNoaW5nU3RhdGVDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKXtpZih0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyKXt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW9kZWwtY2hhbmdlZCcsdGhpcy5vbk1vZGVsQ2hhbmdlZF8pO30KK3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfPWJydXNoaW5nU3RhdGVDb250cm9sbGVyO2lmKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpe3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKTt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdtb2RlbC1jaGFuZ2VkJyx0aGlzLm9uTW9kZWxDaGFuZ2VkXyk7fX0sZ2V0IHNlbGVjdGlvbigpe3JldHVybiB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5zZWxlY3Rpb247fSxvblNlbGVjdGlvbkNoYW5nZWRfOmZ1bmN0aW9uKCl7aWYodGhpcy5hY3RpdmVQYW5lbCkKK3RoaXMuYWN0aXZlUGFuZWwuc2VsZWN0aW9uPXRoaXMuc2VsZWN0aW9uO30sZ2V0IG1vZGVsKCl7cmV0dXJuIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLm1vZGVsO30sb25Nb2RlbENoYW5nZWRfOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVQYW5lbFR5cGVfPXVuZGVmaW5lZDt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGV4cGFuZGVkKCl7dGhpcy5oYXNBdHRyaWJ1dGUoJ2V4cGFuZGVkJyk7fSxnZXQgYWN0aXZlUGFuZWwoKXtpZih0aGlzLmFjdGl2ZVBhbmVsQ29udGFpbmVyXy5jaGlsZHJlbi5sZW5ndGg9PT0wKQogcmV0dXJuIHVuZGVmaW5lZDtyZXR1cm4gdGhpcy5hY3RpdmVQYW5lbENvbnRhaW5lcl8uY2hpbGRyZW5bMF07fSxnZXQgYWN0aXZlUGFuZWxUeXBlKCl7cmV0dXJuIHRoaXMuYWN0aXZlUGFuZWxUeXBlXzt9LHNldCBhY3RpdmVQYW5lbFR5cGUocGFuZWxUeXBlKXtpZih0aGlzLm1vZGVsPT09dW5kZWZpbmVkKQogdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWN0aXZhdGUgcGFuZWwgd2l0aG91dCBhIG1vZGVsJyk7dmFyIHBhbmVsPXVuZGVmaW5lZDtpZihwYW5lbFR5cGUpCiBwYW5lbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHBhbmVsVHlwZSk7aWYocGFuZWwhPT11bmRlZmluZWQmJiFwYW5lbC5zdXBwb3J0c01vZGVsKHRoaXMubW9kZWwpKQpAQCAtMzcwNCw3MyArNDE3NSw4OSBAQAogdGhpcy5nZXRMYWJlbEVsZW1lbnRGb3JQYW5lbFR5cGVfKHBhbmVsVHlwZSkuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsdHJ1ZSk7dGhpcy5zZXRBdHRyaWJ1dGUoJ2V4cGFuZGVkJyx0cnVlKTt0aGlzLmFjdGl2ZVBhbmVsQ29udGFpbmVyXy5hcHBlbmRDaGlsZChwYW5lbCk7cGFuZWwucmFuZ2VPZkludGVyZXN0PXRoaXMucmFuZ2VPZkludGVyZXN0XztwYW5lbC5zZWxlY3Rpb249dGhpcy5zZWxlY3Rpb25fO3BhbmVsLm1vZGVsPXRoaXMubW9kZWw7dGhpcy5hY3RpdmVQYW5lbFR5cGVfPXBhbmVsVHlwZTt9LGdldFBhbmVsVHlwZUZvckNvbnN0cnVjdG9yXzpmdW5jdGlvbihjb25zdHJ1Y3Rvcil7Zm9yKHZhciBpPTA7aTx0aGlzLnRhYlN0cmlwXy5jaGlsZHJlbi5sZW5ndGg7aSsrKXtpZih0aGlzLnRhYlN0cmlwXy5jaGlsZHJlbltpXS5wYW5lbFR5cGUuY29uc3RydWN0b3I9PWNvbnN0cnVjdG9yKQogcmV0dXJuIHRoaXMudGFiU3RyaXBfLmNoaWxkcmVuW2ldLnBhbmVsVHlwZTt9fSxnZXRMYWJlbEVsZW1lbnRGb3JQYW5lbFR5cGVfOmZ1bmN0aW9uKHBhbmVsVHlwZSl7Zm9yKHZhciBpPTA7aTx0aGlzLnRhYlN0cmlwXy5jaGlsZHJlbi5sZW5ndGg7aSsrKXtpZih0aGlzLnRhYlN0cmlwXy5jaGlsZHJlbltpXS5wYW5lbFR5cGU9PXBhbmVsVHlwZSkKIHJldHVybiB0aGlzLnRhYlN0cmlwXy5jaGlsZHJlbltpXTt9Ci1yZXR1cm4gdW5kZWZpbmVkO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dmFyIHByZXZpb3VzbHlBY3RpdmVQYW5lbFR5cGU9dGhpcy5hY3RpdmVQYW5lbFR5cGU7dGhpcy50YWJTdHJpcF8udGV4dENvbnRlbnQ9Jyc7dmFyIHN1cHBvcnRlZFBhbmVsVHlwZXM9W107dmFyIHBhbmVsVHlwZXM9dHIuYi5nZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3MoJ3RyLWMtc2lkZS1wYW5lbCcpO3BhbmVsVHlwZXMuZm9yRWFjaChmdW5jdGlvbihwYW5lbFR5cGUpe3ZhciBsYWJlbEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RhYi1zdHJpcC1sYWJlbCcpO3ZhciBwYW5lbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHBhbmVsVHlwZSk7bGFiZWxFbC50ZXh0Q29udGVudD1wYW5lbC50ZXh0TGFiZWw7bGFiZWxFbC5wYW5lbFR5cGU9cGFuZWxUeXBlO3ZhciBzdXBwb3J0ZWQ9cGFuZWwuc3VwcG9ydHNNb2RlbCh0aGlzLm1vZGVsKTtpZih0aGlzLm1vZGVsJiZzdXBwb3J0ZWQuc3VwcG9ydGVkKXtzdXBwb3J0ZWRQYW5lbFR5cGVzLnB1c2gocGFuZWxUeXBlKTtsYWJlbEVsLnNldEF0dHJpYnV0ZSgnZW5hYmxlZCcsdHJ1ZSk7bGFiZWxFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZVBhbmVsVHlwZT10aGlzLmFjdGl2ZVBhbmVsVHlwZT09PXBhbmVsVHlwZT91bmRlZmluZWQ6cGFuZWxUeXBlO30uYmluZCh0aGlzKSk7fWVsc2V7bGFiZWxFbC50aXRsZT0nTm90IHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgdHJhY2U6ICcrCityZXR1cm4gdW5kZWZpbmVkO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dmFyIHByZXZpb3VzbHlBY3RpdmVQYW5lbFR5cGU9dGhpcy5hY3RpdmVQYW5lbFR5cGU7dGhpcy50YWJTdHJpcF8udGV4dENvbnRlbnQ9Jyc7dmFyIHN1cHBvcnRlZFBhbmVsVHlwZXM9W107dmFyIHBhbmVsVHlwZXM9dHIudWkuYi5nZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3MoJ3RyLXVpLXNpZGUtcGFuZWwnKTtwYW5lbFR5cGVzLmZvckVhY2goZnVuY3Rpb24ocGFuZWxUeXBlKXt2YXIgbGFiZWxFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWItc3RyaXAtbGFiZWwnKTt2YXIgcGFuZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChwYW5lbFR5cGUpO2xhYmVsRWwudGV4dENvbnRlbnQ9cGFuZWwudGV4dExhYmVsO2xhYmVsRWwucGFuZWxUeXBlPXBhbmVsVHlwZTt2YXIgc3VwcG9ydGVkPXBhbmVsLnN1cHBvcnRzTW9kZWwodGhpcy5tb2RlbCk7aWYodGhpcy5tb2RlbCYmc3VwcG9ydGVkLnN1cHBvcnRlZCl7c3VwcG9ydGVkUGFuZWxUeXBlcy5wdXNoKHBhbmVsVHlwZSk7bGFiZWxFbC5zZXRBdHRyaWJ1dGUoJ2VuYWJsZWQnLHRydWUpO2xhYmVsRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVQYW5lbFR5cGU9dGhpcy5hY3RpdmVQYW5lbFR5cGU9PT1wYW5lbFR5cGU/dW5kZWZpbmVkOnBhbmVsVHlwZTt9LmJpbmQodGhpcykpO31lbHNle2xhYmVsRWwudGl0bGU9J05vdCBzdXBwb3J0ZWQgZm9yIHRoZSBjdXJyZW50IHRyYWNlOiAnKwogc3VwcG9ydGVkLnJlYXNvbjtsYWJlbEVsLnN0eWxlLmRpc3BsYXk9J25vbmUnO30KIHRoaXMudGFiU3RyaXBfLmFwcGVuZENoaWxkKGxhYmVsRWwpO30sdGhpcyk7aWYocHJldmlvdXNseUFjdGl2ZVBhbmVsVHlwZSYmc3VwcG9ydGVkUGFuZWxUeXBlcy5pbmRleE9mKHByZXZpb3VzbHlBY3RpdmVQYW5lbFR5cGUpIT0tMSl7dGhpcy5hY3RpdmVQYW5lbFR5cGU9cHJldmlvdXNseUFjdGl2ZVBhbmVsVHlwZTt0aGlzLnNldEF0dHJpYnV0ZSgnZXhwYW5kZWQnLHRydWUpO31lbHNle3RoaXMuYWN0aXZlUGFuZWxDb250YWluZXJfLnRleHRDb250ZW50PScnO3RoaXMucmVtb3ZlQXR0cmlidXRlKCdleHBhbmRlZCcpO319LGdldCByYW5nZU9mSW50ZXJlc3QoKXtyZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfO30sc2V0IHJhbmdlT2ZJbnRlcmVzdChyYW5nZSl7aWYocmFuZ2U9PXVuZGVmaW5lZCkKIHRocm93IG5ldyBFcnJvcignTXVzdCBub3QgYmUgdW5kZWZpbmVkJyk7dGhpcy5yYW5nZU9mSW50ZXJlc3RfPXJhbmdlO2lmKHRoaXMuYWN0aXZlUGFuZWwpCi10aGlzLmFjdGl2ZVBhbmVsLnJhbmdlT2ZJbnRlcmVzdD1yYW5nZTt9fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5jJyxmdW5jdGlvbigpe3ZhciBUSElTX0RPQz1kb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7dmFyIFRpbWVsaW5lVmlldz10ci5iLnVpLmRlZmluZSgneC10aW1lbGluZS12aWV3Jyk7VGltZWxpbmVWaWV3LnByb3RvdHlwZT17X19wcm90b19fOkhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24oKXt2YXIgbm9kZT10ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyN0aW1lbGluZS12aWV3LXRlbXBsYXRlJyxUSElTX0RPQyk7dGhpcy5hcHBlbmRDaGlsZChub2RlKTt0aGlzLnRpdGxlRWxfPXRoaXMucXVlcnlTZWxlY3RvcignLnRpdGxlJyk7dGhpcy5sZWZ0Q29udHJvbHNFbF89dGhpcy5xdWVyeVNlbGVjdG9yKCcjbGVmdC1jb250cm9scycpO3RoaXMucmlnaHRDb250cm9sc0VsXz10aGlzLnF1ZXJ5U2VsZWN0b3IoJyNyaWdodC1jb250cm9scycpO3RoaXMuY29sbGFwc2luZ0NvbnRyb2xzRWxfPXRoaXMucXVlcnlTZWxlY3RvcignI2NvbGxhcHNpbmctY29udHJvbHMnKTt0aGlzLnNpZGVQYW5lbENvbnRhaW5lcl89dGhpcy5xdWVyeVNlbGVjdG9yKCd0ci1jLXNpZGUtcGFuZWwtY29udGFpbmVyJyk7dGhpcy50cmFja1ZpZXdDb250YWluZXJfPXRoaXMucXVlcnlTZWxlY3RvcigndHJhY2stdmlldy1jb250YWluZXInKTt0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfPW5ldyB0ci5jLlNlbGVjdGlvbkNvbnRyb2xsZXIodGhpcyk7dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5oaXN0b3J5RW5hYmxlZD10cnVlO3RoaXMuZmluZEN0bF89bmV3IFRyYWNpbmdGaW5kQ29udHJvbCgpO3RoaXMuZmluZEN0bF8uY29udHJvbGxlcj1uZXcgdHIuYy5GaW5kQ29udHJvbGxlcih0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfKTt0aGlzLmZpbmRDdGxfLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLGZ1bmN0aW9uKGUpe2lmKGUua2V5Q29kZT09PTI3KXt0aGlzLmZvY3VzKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO319LmJpbmQodGhpcykpO3RoaXMuc2NyaXB0aW5nQ3RsXz1uZXcgVHJhY2luZ1NjcmlwdGluZ0NvbnRyb2woKTt0aGlzLnNjcmlwdGluZ0N0bF8uY29udHJvbGxlcj1uZXcgdHIuYy5TY3JpcHRpbmdDb250cm9sbGVyKHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8pO3RoaXMuc2lkZVBhbmVsQ29udGFpbmVyXy5zZWxlY3Rpb25Db250cm9sbGVyPXRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl87aWYod2luZG93LnRyLmUmJndpbmRvdy50ci5lLnJhaWwmJndpbmRvdy50ci5lLnJhaWwuUkFJTFNjb3JlKXt0aGlzLnJhaWxTY29yZVNwYW5fPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1yYWlsLXNjb3JlLXNwYW4nKTt0aGlzLnJpZ2h0Q29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5yYWlsU2NvcmVTcGFuXyk7fWVsc2V7dGhpcy5yYWlsU2NvcmVTcGFuXz11bmRlZmluZWQ7fQotdGhpcy5vcHRpb25zRHJvcGRvd25fPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktZHJvcGRvd24nKTt0aGlzLm9wdGlvbnNEcm9wZG93bl8uaWNvbkVsZW1lbnQudGV4dENvbnRlbnQ9J1ZpZXcgT3B0aW9ucyc7dGhpcy5zaG93Rmxvd0V2ZW50c189ZmFsc2U7dGhpcy5vcHRpb25zRHJvcGRvd25fLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlQ2hlY2tCb3godGhpcywnc2hvd0Zsb3dFdmVudHMnLCd0ci5jLlRpbWVsaW5lVmlldy5zaG93Rmxvd0V2ZW50cycsZmFsc2UsJ0Zsb3cgZXZlbnRzJykpO3RoaXMuaGlnaGxpZ2h0VlN5bmNfPWZhbHNlO3RoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF89dHIuYi51aS5jcmVhdGVDaGVja0JveCh0aGlzLCdoaWdobGlnaHRWU3luYycsJ3RyLmMuVGltZWxpbmVWaWV3LmhpZ2hsaWdodFZTeW5jJyxmYWxzZSwnSGlnaGxpZ2h0IFZTeW5jJyk7dGhpcy5vcHRpb25zRHJvcGRvd25fLmFwcGVuZENoaWxkKHRoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF8pO3RoaXMucmlnaHRDb250cm9scy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZU1ldGFkYXRhQnV0dG9uXygpKTt0aGlzLnJpZ2h0Q29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5vcHRpb25zRHJvcGRvd25fKTt0aGlzLnJpZ2h0Q29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5maW5kQ3RsXyk7dGhpcy5yaWdodENvbnRyb2xzLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29uc29sZUJ1dHRvbl8oKSk7dGhpcy5yaWdodENvbnRyb2xzLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSGVscEJ1dHRvbl8oKSk7dGhpcy5jb2xsYXBzaW5nQ29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5zY3JpcHRpbmdDdGxfKTt0aGlzLmRyYWdFbF89dGhpcy5xdWVyeVNlbGVjdG9yKCd4LWRyYWctaGFuZGxlJyk7dHIuYi51aS5kZWNvcmF0ZSh0aGlzLmRyYWdFbF8sdHIuYi51aS5EcmFnSGFuZGxlKTt0aGlzLmFuYWx5c2lzRWxfPXRoaXMucXVlcnlTZWxlY3RvcignI2FuYWx5c2lzJyk7dGhpcy5hbmFseXNpc0VsXy5zZWxlY3Rpb25Db250cm9sbGVyPXRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl87dGhpcy5hZGRFdmVudExpc3RlbmVyKCdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJyxmdW5jdGlvbihlKXt2YXIgc2M9dGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXztzYy5jaGFuZ2VTZWxlY3Rpb25Gcm9tUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KGUuc2VsZWN0aW9uKTt9LmJpbmQodGhpcykpO3RoaXMub25WaWV3cG9ydENoYW5nZWRfPXRoaXMub25WaWV3cG9ydENoYW5nZWRfLmJpbmQodGhpcyk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsdGhpcy5vbktleURvd25fLmJpbmQodGhpcyksdHJ1ZSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLHRoaXMub25LZXlwcmVzc18uYmluZCh0aGlzKSx0cnVlKTt0aGlzLmRyYWdFbF8udGFyZ2V0PXRoaXMuYW5hbHlzaXNFbF87fSx1cGRhdGVEb2N1bWVudEZhdmljb246ZnVuY3Rpb24oKXt2YXIgaHVlO2lmKCF0aGlzLm1vZGVsKQordGhpcy5hY3RpdmVQYW5lbC5yYW5nZU9mSW50ZXJlc3Q9cmFuZ2U7fX0pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS10aW1lbGluZS12aWV3LWhlbHAtb3ZlcmxheScse3JlYWR5OmZ1bmN0aW9uKCl7dmFyIG1vZD10ci5pc01hYz8nY21kICc6J2N0cmwnO3ZhciBzcGFucz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnc3Bhbi5tb2QnKTtmb3IodmFyIGk9MDtpPHNwYW5zLmxlbmd0aDtpKyspe3NwYW5zW2ldLnRleHRDb250ZW50PW1vZDt9fX0pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51bml0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBHZW5lcmljVGFibGUoaXRlbXMpe2lmKGl0ZW1zIT09dW5kZWZpbmVkKQordGhpcy5pdGVtcz1pdGVtcztlbHNlCit0aGlzLml0ZW1zPVtdO307R2VuZXJpY1RhYmxlLnByb3RvdHlwZT17fTtyZXR1cm57R2VuZXJpY1RhYmxlOkdlbmVyaWNUYWJsZX07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS51bml0cycsZnVuY3Rpb24oKXt2YXIgQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXM9e0FWRVJBR0VfTU9ERTonYXZlcmFnZS1tb2RlJyxUT1RBTF9NT0RFOid0b3RhbC1tb2RlJ307cmV0dXJue0FycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzOkFycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzfTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktdS1hcnJheS1vZi1udW1iZXJzLXNwYW4nLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5udW1iZXJzXz11bmRlZmluZWQ7dGhpcy5zdW1tYXJ5TW9kZV89dHIudWkudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMuQVZFUkFHRV9NT0RFO30sZ2V0IHN1bW1hcnlNb2RlKCl7cmV0dXJuIHRoaXMuc3VtbWFyeU1vZGVfO30sc2V0IHN1bW1hcnlNb2RlKHN1bW1hcnlNb2RlKXt0aGlzLnN1bW1hcnlNb2RlXz1zdW1tYXJ5TW9kZTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IG51bWJlcnMoKXtyZXR1cm4gdGhpcy5udW1iZXJzXzt9LHNldCBudW1iZXJzKG51bWJlcnMpe2lmKG51bWJlcnM9PT11bmRlZmluZWQpe3RoaXMubnVtYmVyc189dW5kZWZpbmVkO3RoaXMudXBkYXRlQ29udGVudHNfKCk7cmV0dXJuO30KK2lmKCEobnVtYmVycyBpbnN0YW5jZW9mIEFycmF5KSkKK3Rocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGFuIGFycmF5Jyk7dGhpcy5udW1iZXJzXz1udW1iZXJzO3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXtpZih0aGlzLm51bWJlcnNfPT09dW5kZWZpbmVkKXt0aGlzLnNoYWRvd1Jvb3QudGV4dENvbnRlbnQ9Jy0nO3JldHVybjt9Cit2YXIgQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXM9dHIudWkudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXM7dmFyIHZhbHVlO2lmKHRoaXMuc3VtbWFyeU1vZGVfPT09QXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMuQVZFUkFHRV9NT0RFKQordmFsdWU9dHIuYi5TdGF0aXN0aWNzLm1lYW4odGhpcy5udW1iZXJzXyk7ZWxzZQordmFsdWU9dHIuYi5TdGF0aXN0aWNzLnN1bSh0aGlzLm51bWJlcnNfKTt2YXIgdmFsdWVSb3VuZGVkPU1hdGgucm91bmQodmFsdWUqMTAwMC4wKS8xMDAwLjA7dGhpcy5zaGFkb3dSb290LnRleHRDb250ZW50PXZhbHVlUm91bmRlZDt9fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci51aS51bml0cycsZnVuY3Rpb24oKXt2YXIgVEVYVF9DT0xVTU5fTU9ERT0xO3ZhciBOVU1FUklDX0NPTFVNTl9NT0RFPTI7ZnVuY3Rpb24gaXNOdW1lcmljKHZhbHVlKXtpZigodHlwZW9mIHZhbHVlKT09PSdudW1iZXInKQorcmV0dXJuIHRydWU7ZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIE51bWJlcikKK3JldHVybiB0cnVlO3JldHVybiBmYWxzZTt9CitmdW5jdGlvbiBHZW5lcmljVGFibGVWaWV3VG90YWxzSXRlbShvcHRfdmFsdWVzKXtpZihvcHRfdmFsdWVzIT09dW5kZWZpbmVkKQordGhpcy52YWx1ZXM9b3B0X3ZhbHVlcztlbHNlCit0aGlzLnZhbHVlcz1bXTt9CitmdW5jdGlvbiBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvcihmaWVsZE5hbWUsZmlyc3RGaWVsZFZhbHVlKXt0aGlzLnRpdGxlPWZpZWxkTmFtZTt0aGlzLmZpZWxkTmFtZT1maWVsZE5hbWU7dGhpcy51cGRhdGVNb2RlR2l2ZW5WYWx1ZShmaXJzdEZpZWxkVmFsdWUpO30KK0dlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yLnByb3RvdHlwZT17Z2V0IGNvbHVtbk1vZGUoKXtyZXR1cm4gdGhpcy5jb2x1bW5Nb2RlXzt9LGdldCBpc0luTnVtZXJpY01vZGUoKXtyZXR1cm4gdGhpcy5jb2x1bW5Nb2RlXz09PU5VTUVSSUNfQ09MVU1OX01PREU7fSxjbXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHIuYi5jb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoYSxiLGZ1bmN0aW9uKGEsYil7dmFyIHZBPWFbdGhpcy5maWVsZE5hbWVdO3ZhciB2Qj1iW3RoaXMuZmllbGROYW1lXTtyZXR1cm4gdHIuYi5jb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXModkEsdkIsZnVuY3Rpb24odkEsdkIpe2lmKHZBLmxvY2FsZUNvbXBhcmUpCityZXR1cm4gdkEubG9jYWxlQ29tcGFyZSh2Qik7cmV0dXJuIHZBLXZCO30sdGhpcyk7fSx0aGlzKTt9LHVwZGF0ZU1vZGVHaXZlblZhbHVlOmZ1bmN0aW9uKGZpZWxkVmFsdWUpe2lmKHRoaXMuY29sdW1uTW9kZV89PT11bmRlZmluZWQpe2lmKGZpZWxkVmFsdWU9PT11bmRlZmluZWR8fGZpZWxkVmFsdWU9PT1udWxsKQorcmV0dXJuO2lmKGlzTnVtZXJpYyhmaWVsZFZhbHVlKSkKK3RoaXMuY29sdW1uTW9kZV89TlVNRVJJQ19DT0xVTU5fTU9ERTtlbHNlCit0aGlzLmNvbHVtbk1vZGVfPVRFWFRfQ09MVU1OX01PREU7cmV0dXJuO30KK2lmKGZpZWxkVmFsdWU9PT11bmRlZmluZWR8fGZpZWxkVmFsdWU9PT1udWxsKQorcmV0dXJuO2lmKGlzTnVtZXJpYyhmaWVsZFZhbHVlKSkKK3JldHVybjt0aGlzLmNvbHVtbk1vZGVfPVRFWFRfQ09MVU1OX01PREU7fSx2YWx1ZTpmdW5jdGlvbihpdGVtKXt2YXIgZmllbGRWYWx1ZT1pdGVtW3RoaXMuZmllbGROYW1lXTtpZihmaWVsZFZhbHVlIGluc3RhbmNlb2YgR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0pe3ZhciBzcGFuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtYXJyYXktb2YtbnVtYmVycy1zcGFuJyk7c3Bhbi5zdW1tYXJ5TW9kZT10ci51aS51bml0cy5BcnJheU9mTnVtYmVyc1N1bW1hcnlNb2Rlcy5UT1RBTF9NT0RFO3NwYW4ubnVtYmVycz1maWVsZFZhbHVlLnZhbHVlcztyZXR1cm4gc3Bhbjt9CitpZihmaWVsZFZhbHVlPT09dW5kZWZpbmVkKQorcmV0dXJuJy0nO2lmKGZpZWxkVmFsdWUgaW5zdGFuY2VvZiBPYmplY3Qpe3ZhciBnb3Y9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Z292Lm9iamVjdD1maWVsZFZhbHVlO3JldHVybiBnb3Y7fQorcmV0dXJuIGZpZWxkVmFsdWU7fX07UG9seW1lcigndHItdWktdS1nZW5lcmljLXRhYmxlLXZpZXcnLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5pdGVtc189dW5kZWZpbmVkO30sZ2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuaXRlbXNfO30sc2V0IGl0ZW1zKGl0ZW1zT3JHZW5lcmljVGFibGUpe2lmKGl0ZW1zT3JHZW5lcmljVGFibGU9PT11bmRlZmluZWQpe3RoaXMuaXRlbXNfPXVuZGVmaW5lZDt9ZWxzZSBpZihpdGVtc09yR2VuZXJpY1RhYmxlIGluc3RhbmNlb2YgQXJyYXkpe3RoaXMuaXRlbXNfPWl0ZW1zT3JHZW5lcmljVGFibGU7fWVsc2UgaWYoaXRlbXNPckdlbmVyaWNUYWJsZSBpbnN0YW5jZW9mIHRyLmIudW5pdHMuR2VuZXJpY1RhYmxlKXt0aGlzLml0ZW1zXz1pdGVtc09yR2VuZXJpY1RhYmxlLml0ZW1zO30KK3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxjcmVhdGVDb2x1bW5zXzpmdW5jdGlvbigpe3ZhciBjb2x1bW5zQnlOYW1lPXt9O3RoaXMuaXRlbXNfLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7dHIuYi5pdGVySXRlbXMoaXRlbSxmdW5jdGlvbihpdGVtRmllbGROYW1lLGl0ZW1GaWVsZFZhbHVlKXt2YXIgY29sRGVzYz1jb2x1bW5zQnlOYW1lW2l0ZW1GaWVsZE5hbWVdO2lmKGNvbERlc2MhPT11bmRlZmluZWQpe2NvbERlc2MudXBkYXRlTW9kZUdpdmVuVmFsdWUoaXRlbUZpZWxkVmFsdWUpO3JldHVybjt9Citjb2xEZXNjPW5ldyBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvcihpdGVtRmllbGROYW1lLGl0ZW1GaWVsZFZhbHVlKTtjb2x1bW5zQnlOYW1lW2l0ZW1GaWVsZE5hbWVdPWNvbERlc2M7fSx0aGlzKTt9LHRoaXMpO3ZhciBjb2x1bW5zPXRyLmIuZGljdGlvbmFyeVZhbHVlcyhjb2x1bW5zQnlOYW1lKTtpZihjb2x1bW5zLmxlbmd0aD09PTApCityZXR1cm4gdW5kZWZpbmVkO2NvbHVtbnMuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhLnRpdGxlLmxvY2FsZUNvbXBhcmUoYi50aXRsZSk7fSk7dmFyIGNvbFdpZHRoUGVyY2VudGFnZTtpZihjb2x1bW5zLmxlbmd0aD09MSkKK2NvbFdpZHRoUGVyY2VudGFnZT0nMTAwJSc7ZWxzZQorY29sV2lkdGhQZXJjZW50YWdlPSgxMDAvKGNvbHVtbnMubGVuZ3RoLTEpKS50b0ZpeGVkKDMpKyclJztjb2x1bW5zWzBdLndpZHRoPScyNTBweCc7Zm9yKHZhciBpPTE7aTxjb2x1bW5zLmxlbmd0aDtpKyspCitjb2x1bW5zW2ldLndpZHRoPWNvbFdpZHRoUGVyY2VudGFnZTtyZXR1cm4gY29sdW1uczt9LGNyZWF0ZUZvb3RlclJvd3NJZk5lZWRlZF86ZnVuY3Rpb24oY29sdW1ucyl7dmFyIGhhc0NvbHVtblRoYXRJc051bWVyaWM9Y29sdW1ucy5zb21lKGZ1bmN0aW9uKGNvbHVtbil7cmV0dXJuIGNvbHVtbi5pc0luTnVtZXJpY01vZGU7fSk7aWYoIWhhc0NvbHVtblRoYXRJc051bWVyaWMpCityZXR1cm5bXTt2YXIgdG90YWxzSXRlbXM9e307Y29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGNvbHVtbil7aWYoIWNvbHVtbi5pc0luTnVtZXJpY01vZGUpCityZXR1cm47dmFyIHRvdGFsc0l0ZW09bmV3IEdlbmVyaWNUYWJsZVZpZXdUb3RhbHNJdGVtKCk7dGhpcy5pdGVtc18uZm9yRWFjaChmdW5jdGlvbihpdGVtKXt2YXIgZmllbGRWYWx1ZT1pdGVtW2NvbHVtbi5maWVsZE5hbWVdO2lmKGZpZWxkVmFsdWU9PT11bmRlZmluZWR8fGZpZWxkVmFsdWU9PT1udWxsKQorcmV0dXJuO3RvdGFsc0l0ZW0udmFsdWVzLnB1c2goZmllbGRWYWx1ZSk7fSk7dG90YWxzSXRlbXNbY29sdW1uLmZpZWxkTmFtZV09dG90YWxzSXRlbTt9LHRoaXMpO3JldHVyblt0b3RhbHNJdGVtc107fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXt2YXIgY29sdW1ucztpZih0aGlzLml0ZW1zXyE9PXVuZGVmaW5lZCkKK2NvbHVtbnM9dGhpcy5jcmVhdGVDb2x1bW5zXygpO2lmKCFjb2x1bW5zKXt0aGlzLiQudGFibGUudGFibGVDb2x1bW5zPVtdO3RoaXMuJC50YWJsZS50YWJsZVJvd3M9W107dGhpcy4kLnRhYmxlLmZvb3RlclJvd3M9W107cmV0dXJuO30KK3RoaXMuJC50YWJsZS50YWJsZUNvbHVtbnM9Y29sdW1uczt0aGlzLiQudGFibGUudGFibGVSb3dzPXRoaXMuaXRlbXNfO3RoaXMuJC50YWJsZS5mb290ZXJSb3dzPXRoaXMuY3JlYXRlRm9vdGVyUm93c0lmTmVlZGVkXyhjb2x1bW5zKTt0aGlzLiQudGFibGUucmVidWlsZCgpO319KTtyZXR1cm57R2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW06R2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0sR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3I6R2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3J9O30pOyd1c2Ugc3RyaWN0JztQb2x5bWVyKCd0ci11aS10aW1lbGluZS12aWV3LW1ldGFkYXRhLW92ZXJsYXknLHtjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5tZXRhZGF0YV89dW5kZWZpbmVkO30sZ2V0IG1ldGFkYXRhKCl7cmV0dXJuIHRoaXMubWV0YWRhdGFfO30sc2V0IG1ldGFkYXRhKG1ldGFkYXRhKXt0aGlzLm1ldGFkYXRhXz1tZXRhZGF0YTt0aGlzLiQuZ3R2Lml0ZW1zPXRoaXMubWV0YWRhdGFfO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktdS1wcmVmZXJyZWQtZGlzcGxheS11bml0Jyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnVuaXRfPXVuZGVmaW5lZDt9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dHIuYi51bml0cy5UaW1lLmRpZFByZWZlcnJlZFVuaXRDaGFuZ2UoKTt9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dHIuYi51bml0cy5UaW1lLmRpZFByZWZlcnJlZFVuaXRDaGFuZ2UoKTt9LGdldCBwcmVmZXJyZWREaXNwbGF5VW5pdCgpe3JldHVybiB0aGlzLnVuaXRfO30sc2V0IHByZWZlcnJlZERpc3BsYXlVbml0KHYpe2lmKHRoaXMudW5pdF89PT12KQorcmV0dXJuO3RoaXMudW5pdF89djt0ci5iLnVuaXRzLlRpbWUuZGlkUHJlZmVycmVkVW5pdENoYW5nZSgpO319KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktdGltZWxpbmUtdmlldycse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy50YWJJbmRleD0wO3RoaXMudGl0bGVFbF89dGhpcy4kLnRpdGxlO3RoaXMubGVmdENvbnRyb2xzRWxfPXRoaXMuJC5sZWZ0X2NvbnRyb2xzO3RoaXMucmlnaHRDb250cm9sc0VsXz10aGlzLiQucmlnaHRfY29udHJvbHM7dGhpcy5jb2xsYXBzaW5nQ29udHJvbHNFbF89dGhpcy4kLmNvbGxhcHNpbmdfY29udHJvbHM7dGhpcy5zaWRlUGFuZWxDb250YWluZXJfPXRoaXMuJC5zaWRlX3BhbmVsX2NvbnRhaW5lcjt0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXz1uZXcgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcih0aGlzKTt0aGlzLmZpbmRDdGxfPXRoaXMuJC52aWV3X2ZpbmRfY29udHJvbDt0aGlzLmZpbmRDdGxfLmNvbnRyb2xsZXI9bmV3IHRyLnVpLkZpbmRDb250cm9sbGVyKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKTt0aGlzLnNjcmlwdGluZ0N0bF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktc2NyaXB0aW5nLWNvbnRyb2wnKTt0aGlzLnNjcmlwdGluZ0N0bF8uY29udHJvbGxlcj1uZXcgdHIuYy5TY3JpcHRpbmdDb250cm9sbGVyKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKTt0aGlzLnNpZGVQYW5lbENvbnRhaW5lcl8uYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI9dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87aWYod2luZG93LnRyLmUmJndpbmRvdy50ci5lLnJhaWwmJndpbmRvdy50ci5lLnJhaWwuUkFJTFNjb3JlKXt0aGlzLnJhaWxTY29yZVNwYW5fPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWUtcmFpbC1yYWlsLXNjb3JlLXNwYW4nKTt0aGlzLnJpZ2h0Q29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5yYWlsU2NvcmVTcGFuXyk7fWVsc2V7dGhpcy5yYWlsU2NvcmVTcGFuXz11bmRlZmluZWQ7fQordGhpcy5vcHRpb25zRHJvcGRvd25fPXRoaXMuJC52aWV3X29wdGlvbnNfZHJvcGRvd247dGhpcy5vcHRpb25zRHJvcGRvd25fLmljb25FbGVtZW50LnRleHRDb250ZW50PSdWaWV3IE9wdGlvbnMnO3RoaXMuc2hvd0Zsb3dFdmVudHNfPWZhbHNlO3RoaXMub3B0aW9uc0Ryb3Bkb3duXy5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZUNoZWNrQm94KHRoaXMsJ3Nob3dGbG93RXZlbnRzJywndHIudWkuVGltZWxpbmVWaWV3LnNob3dGbG93RXZlbnRzJyxmYWxzZSwnRmxvdyBldmVudHMnKSk7dGhpcy5oaWdobGlnaHRWU3luY189ZmFsc2U7dGhpcy5oaWdobGlnaHRWU3luY0NoZWNrYm94Xz10ci51aS5iLmNyZWF0ZUNoZWNrQm94KHRoaXMsJ2hpZ2hsaWdodFZTeW5jJywndHIudWkuVGltZWxpbmVWaWV3LmhpZ2hsaWdodFZTeW5jJyxmYWxzZSwnSGlnaGxpZ2h0IFZTeW5jJyk7dGhpcy5vcHRpb25zRHJvcGRvd25fLmFwcGVuZENoaWxkKHRoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF8pO3RoaXMuaW5pdE1ldGFkYXRhQnV0dG9uXygpO3RoaXMuaW5pdENvbnNvbGVCdXR0b25fKCk7dGhpcy5pbml0SGVscEJ1dHRvbl8oKTt0aGlzLmNvbGxhcHNpbmdDb250cm9scy5hcHBlbmRDaGlsZCh0aGlzLnNjcmlwdGluZ0N0bF8pO3RoaXMuZHJhZ0VsXz10aGlzLiQuZHJhZ19oYW5kbGU7dHIudWkuYi5kZWNvcmF0ZSh0aGlzLmRyYWdFbF8sdHIudWkuYi5EcmFnSGFuZGxlKTt0aGlzLmFuYWx5c2lzRWxfPXRoaXMuJC5hbmFseXNpczt0aGlzLmFuYWx5c2lzRWxfLmJydXNoaW5nU3RhdGVDb250cm9sbGVyPXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigncmVxdWVzdFNlbGVjdGlvbkNoYW5nZScsZnVuY3Rpb24oZSl7dmFyIHNjPXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfO3NjLmNoYW5nZVNlbGVjdGlvbkZyb21SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoZS5zZWxlY3Rpb24pO30uYmluZCh0aGlzKSk7dGhpcy5vblZpZXdwb3J0Q2hhbmdlZF89dGhpcy5vblZpZXdwb3J0Q2hhbmdlZF8uYmluZCh0aGlzKTt0aGlzLmJpbmRLZXlMaXN0ZW5lcnNfKCk7dGhpcy5kcmFnRWxfLnRhcmdldD10aGlzLmFuYWx5c2lzRWxfO30sZG9tUmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnRyYWNrVmlld0NvbnRhaW5lcl89dGhpcy5xdWVyeVNlbGVjdG9yKCcjdHJhY2tfdmlld19jb250YWluZXInKTt9LGdldCBnbG9iYWxNb2RlKCl7cmV0dXJuIHRoaXMuaG90a2V5Q29udHJvbGxlci5nbG9iYWxNb2RlO30sc2V0IGdsb2JhbE1vZGUoZ2xvYmFsTW9kZSl7Z2xvYmFsTW9kZT0hIWdsb2JhbE1vZGU7dGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uaGlzdG9yeUVuYWJsZWQ9Z2xvYmFsTW9kZTt0aGlzLmhvdGtleUNvbnRyb2xsZXIuZ2xvYmFsTW9kZT1nbG9iYWxNb2RlO30sZ2V0IGhvdGtleUNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy4kLmhrYzt9LHVwZGF0ZURvY3VtZW50RmF2aWNvbjpmdW5jdGlvbigpe3ZhciBodWU7aWYoIXRoaXMubW9kZWwpCiBodWU9J2JsdWUnO2Vsc2UKLWh1ZT10aGlzLm1vZGVsLmZhdmljb25IdWU7dmFyIGZhdmljb25EYXRhPXRyLmMuRmF2aWNvbnNCeUh1ZVtodWVdO2lmKGZhdmljb25EYXRhPT09dW5kZWZpbmVkKQotZmF2aWNvbkRhdGE9dHIuYy5GYXZpY29uc0J5SHVlWydibHVlJ107dmFyIGxpbms9ZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD0ic2hvcnRjdXQgaWNvbiJdJyk7aWYoIWxpbmspe2xpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO2xpbmsucmVsPSdzaG9ydGN1dCBpY29uJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO30KK2h1ZT10aGlzLm1vZGVsLmZhdmljb25IdWU7dmFyIGZhdmljb25EYXRhPXRyLnVpLmIuRmF2aWNvbnNCeUh1ZVtodWVdO2lmKGZhdmljb25EYXRhPT09dW5kZWZpbmVkKQorZmF2aWNvbkRhdGE9dHIudWkuYi5GYXZpY29uc0J5SHVlWydibHVlJ107dmFyIGxpbms9ZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD0ic2hvcnRjdXQgaWNvbiJdJyk7aWYoIWxpbmspe2xpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO2xpbmsucmVsPSdzaG9ydGN1dCBpY29uJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO30KIGxpbmsuaHJlZj1mYXZpY29uRGF0YTt9LGdldCBzaG93Rmxvd0V2ZW50cygpe3JldHVybiB0aGlzLnNob3dGbG93RXZlbnRzXzt9LHNldCBzaG93Rmxvd0V2ZW50cyhzaG93Rmxvd0V2ZW50cyl7dGhpcy5zaG93Rmxvd0V2ZW50c189c2hvd0Zsb3dFdmVudHM7aWYoIXRoaXMudHJhY2tWaWV3XykKIHJldHVybjt0aGlzLnRyYWNrVmlld18udmlld3BvcnQuc2hvd0Zsb3dFdmVudHM9c2hvd0Zsb3dFdmVudHM7fSxnZXQgaGlnaGxpZ2h0VlN5bmMoKXtyZXR1cm4gdGhpcy5oaWdobGlnaHRWU3luY187fSxzZXQgaGlnaGxpZ2h0VlN5bmMoaGlnaGxpZ2h0VlN5bmMpe3RoaXMuaGlnaGxpZ2h0VlN5bmNfPWhpZ2hsaWdodFZTeW5jO2lmKCF0aGlzLnRyYWNrVmlld18pCi1yZXR1cm47dGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LmhpZ2hsaWdodFZTeW5jPWhpZ2hsaWdodFZTeW5jO30sY3JlYXRlSGVscEJ1dHRvbl86ZnVuY3Rpb24oKXt2YXIgbm9kZT10ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNoZWxwLWJ0bi10ZW1wbGF0ZScsVEhJU19ET0MpO3ZhciBzaG93RWw9bm9kZS5xdWVyeVNlbGVjdG9yKCcudmlldy1oZWxwLWJ1dHRvbicpO3ZhciBoZWxwVGV4dEVsPW5vZGUucXVlcnlTZWxlY3RvcignLnZpZXctaGVscC10ZXh0Jyk7dmFyIGRsZz1uZXcgdHIuYi51aS5PdmVybGF5KCk7ZGxnLnRpdGxlPSdjaHJvbWU6Ly90cmFjaW5nIEhlbHAnO2RsZy5jbGFzc0xpc3QuYWRkKCd2aWV3LWhlbHAtb3ZlcmxheScpO2RsZy5hcHBlbmRDaGlsZChub2RlKTtmdW5jdGlvbiBvbkNsaWNrKGUpe2RsZy52aXNpYmxlPSFkbGcudmlzaWJsZTt2YXIgbW9kPXRyLmlzTWFjPydjbWQgJzonY3RybCc7dmFyIHNwYW5zPWhlbHBUZXh0RWwucXVlcnlTZWxlY3RvckFsbCgnc3Bhbi5tb2QnKTtmb3IodmFyIGk9MDtpPHNwYW5zLmxlbmd0aDtpKyspe3NwYW5zW2ldLnRleHRDb250ZW50PW1vZDt9Ci1lLnN0b3BQcm9wYWdhdGlvbigpO3JldHVybiBmYWxzZTt9Ci1zaG93RWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLG9uQ2xpY2suYmluZCh0aGlzKSk7cmV0dXJuIHNob3dFbDt9LGNyZWF0ZUNvbnNvbGVCdXR0b25fOmZ1bmN0aW9uKCl7dmFyIG5vZGU9dHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjY29uc29sZS1idG4tdGVtcGxhdGUnLFRISVNfRE9DKTt2YXIgdG9nZ2xlRWw9bm9kZS5xdWVyeVNlbGVjdG9yKCcudmlldy1jb25zb2xlLWJ1dHRvbicpO2Z1bmN0aW9uIG9uQ2xpY2soZSl7dGhpcy5zY3JpcHRpbmdDdGxfLnRvZ2dsZVZpc2liaWxpdHkoKTtlLnN0b3BQcm9wYWdhdGlvbigpO3JldHVybiBmYWxzZTt9Ci10b2dnbGVFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsb25DbGljay5iaW5kKHRoaXMpKTtyZXR1cm4gdG9nZ2xlRWw7fSxjcmVhdGVNZXRhZGF0YUJ1dHRvbl86ZnVuY3Rpb24oKXt2YXIgbm9kZT10ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNtZXRhZGF0YS1idG4tdGVtcGxhdGUnLFRISVNfRE9DKTt2YXIgc2hvd0VsPW5vZGUucXVlcnlTZWxlY3RvcignLnZpZXctbWV0YWRhdGEtYnV0dG9uJyk7dmFyIHRleHRFbD1ub2RlLnF1ZXJ5U2VsZWN0b3IoJy5pbmZvLWJ1dHRvbi10ZXh0Jyk7dmFyIGRsZz1uZXcgdHIuYi51aS5PdmVybGF5KCk7ZGxnLnRpdGxlPSdNZXRhZGF0YSBmb3IgdHJhY2UnO2RsZy5jbGFzc0xpc3QuYWRkKCd2aWV3LW1ldGFkYXRhLW92ZXJsYXknKTtkbGcuYXBwZW5kQ2hpbGQobm9kZSk7ZnVuY3Rpb24gb25DbGljayhlKXtkbGcudmlzaWJsZT10cnVlO3ZhciBtZXRhZGF0YVN0cmluZ3M9W107dmFyIG1vZGVsPXRoaXMubW9kZWw7Zm9yKHZhciBkYXRhIGluIG1vZGVsLm1ldGFkYXRhKXt2YXIgbWV0YT1tb2RlbC5tZXRhZGF0YVtkYXRhXTt2YXIgbmFtZT1KU09OLnN0cmluZ2lmeShtZXRhLm5hbWUpO3ZhciB2YWx1ZT1KU09OLnN0cmluZ2lmeShtZXRhLnZhbHVlLHVuZGVmaW5lZCwnICcpO21ldGFkYXRhU3RyaW5ncy5wdXNoKG5hbWUrJzogJyt2YWx1ZSk7fQotdGV4dEVsLnRleHRDb250ZW50PW1ldGFkYXRhU3RyaW5ncy5qb2luKCdcbicpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJuIGZhbHNlO30KLXNob3dFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsb25DbGljay5iaW5kKHRoaXMpKTtmdW5jdGlvbiB1cGRhdGVWaXNpYmlsaXR5KCl7c2hvd0VsLnN0eWxlLmRpc3BsYXk9KHRoaXMubW9kZWwmJnRoaXMubW9kZWwubWV0YWRhdGEubGVuZ3RoKT8nJzonbm9uZSc7fQotdmFyIHVwZGF0ZVZpc2liaWxpdHlfPXVwZGF0ZVZpc2liaWxpdHkuYmluZCh0aGlzKTt1cGRhdGVWaXNpYmlsaXR5XygpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW9kZWxDaGFuZ2UnLHVwZGF0ZVZpc2liaWxpdHlfKTtyZXR1cm4gc2hvd0VsO30sZ2V0IGxlZnRDb250cm9scygpe3JldHVybiB0aGlzLmxlZnRDb250cm9sc0VsXzt9LGdldCByaWdodENvbnRyb2xzKCl7cmV0dXJuIHRoaXMucmlnaHRDb250cm9sc0VsXzt9LGdldCBjb2xsYXBzaW5nQ29udHJvbHMoKXtyZXR1cm4gdGhpcy5jb2xsYXBzaW5nQ29udHJvbHNFbF87fSxnZXQgdmlld1RpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGVFbF8udGV4dENvbnRlbnQuc3Vic3RyaW5nKHRoaXMudGl0bGVFbF8udGV4dENvbnRlbnQubGVuZ3RoLTIpO30sc2V0IHZpZXdUaXRsZSh0ZXh0KXtpZih0ZXh0PT09dW5kZWZpbmVkKXt0aGlzLnRpdGxlRWxfLnRleHRDb250ZW50PScnO3RoaXMudGl0bGVFbF8uaGlkZGVuPXRydWU7cmV0dXJuO30KK3JldHVybjt0aGlzLnRyYWNrVmlld18udmlld3BvcnQuaGlnaGxpZ2h0VlN5bmM9aGlnaGxpZ2h0VlN5bmM7fSxpbml0SGVscEJ1dHRvbl86ZnVuY3Rpb24oKXt2YXIgaGVscEJ1dHRvbkVsPXRoaXMuJC52aWV3X2hlbHBfYnV0dG9uO2Z1bmN0aW9uIG9uQ2xpY2soZSl7dmFyIGRsZz1uZXcgdHIudWkuYi5PdmVybGF5KCk7ZGxnLnRpdGxlPSdDaHJvbWUgVHJhY2luZyBIZWxwJztkbGcuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdmlldy1oZWxwLW92ZXJsYXknKSk7ZGxnLnZpc2libGU9dHJ1ZTtlLnN0b3BQcm9wYWdhdGlvbigpO30KK2hlbHBCdXR0b25FbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsb25DbGljay5iaW5kKHRoaXMpKTt9LGluaXRDb25zb2xlQnV0dG9uXzpmdW5jdGlvbigpe3ZhciB0b2dnbGVFbD10aGlzLiQudmlld19jb25zb2xlX2J1dHRvbjtmdW5jdGlvbiBvbkNsaWNrKGUpe3RoaXMuc2NyaXB0aW5nQ3RsXy50b2dnbGVWaXNpYmlsaXR5KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTtyZXR1cm4gZmFsc2U7fQordG9nZ2xlRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLG9uQ2xpY2suYmluZCh0aGlzKSk7fSxpbml0TWV0YWRhdGFCdXR0b25fOmZ1bmN0aW9uKCl7dmFyIHNob3dFbD10aGlzLiQudmlld19tZXRhZGF0YV9idXR0b247ZnVuY3Rpb24gb25DbGljayhlKXt2YXIgZGxnPW5ldyB0ci51aS5iLk92ZXJsYXkoKTtkbGcudGl0bGU9J01ldGFkYXRhIGZvciB0cmFjZSc7dmFyIG1ldGFkYXRhT3ZlcmxheT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS12aWV3LW1ldGFkYXRhLW92ZXJsYXknKTttZXRhZGF0YU92ZXJsYXkubWV0YWRhdGE9dGhpcy5tb2RlbC5tZXRhZGF0YTtkbGcuYXBwZW5kQ2hpbGQobWV0YWRhdGFPdmVybGF5KTtkbGcudmlzaWJsZT10cnVlO2Uuc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJuIGZhbHNlO30KK3Nob3dFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsb25DbGljay5iaW5kKHRoaXMpKTt0aGlzLnVwZGF0ZU1ldGFkYXRhQnV0dG9uVmlzaWJpbGl0eV8oKTt9LHVwZGF0ZU1ldGFkYXRhQnV0dG9uVmlzaWJpbGl0eV86ZnVuY3Rpb24oKXt2YXIgc2hvd0VsPXRoaXMuJC52aWV3X21ldGFkYXRhX2J1dHRvbjtzaG93RWwuc3R5bGUuZGlzcGxheT0odGhpcy5tb2RlbCYmdGhpcy5tb2RlbC5tZXRhZGF0YS5sZW5ndGgpPycnOidub25lJzt9LGdldCBsZWZ0Q29udHJvbHMoKXtyZXR1cm4gdGhpcy5sZWZ0Q29udHJvbHNFbF87fSxnZXQgcmlnaHRDb250cm9scygpe3JldHVybiB0aGlzLnJpZ2h0Q29udHJvbHNFbF87fSxnZXQgY29sbGFwc2luZ0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuY29sbGFwc2luZ0NvbnRyb2xzRWxfO30sZ2V0IHZpZXdUaXRsZSgpe3JldHVybiB0aGlzLnRpdGxlRWxfLnRleHRDb250ZW50LnN1YnN0cmluZyh0aGlzLnRpdGxlRWxfLnRleHRDb250ZW50Lmxlbmd0aC0yKTt9LHNldCB2aWV3VGl0bGUodGV4dCl7aWYodGV4dD09PXVuZGVmaW5lZCl7dGhpcy50aXRsZUVsXy50ZXh0Q29udGVudD0nJzt0aGlzLnRpdGxlRWxfLmhpZGRlbj10cnVlO3JldHVybjt9CiB0aGlzLnRpdGxlRWxfLmhpZGRlbj1mYWxzZTt0aGlzLnRpdGxlRWxfLnRleHRDb250ZW50PXRleHQ7fSxnZXQgbW9kZWwoKXtpZih0aGlzLnRyYWNrVmlld18pCiByZXR1cm4gdGhpcy50cmFja1ZpZXdfLm1vZGVsO3JldHVybiB1bmRlZmluZWQ7fSxzZXQgbW9kZWwobW9kZWwpe3ZhciBtb2RlbEluc3RhbmNlQ2hhbmdlZD1tb2RlbCE9dGhpcy5tb2RlbDt2YXIgbW9kZWxWYWxpZD1tb2RlbCYmIW1vZGVsLmJvdW5kcy5pc0VtcHR5O2lmKG1vZGVsSW5zdGFuY2VDaGFuZ2VkKXtpZih0aGlzLnJhaWxTY29yZVNwYW5fKQotdGhpcy5yYWlsU2NvcmVTcGFuXy5yYWlsU2NvcmU9dW5kZWZpbmVkO3RoaXMudHJhY2tWaWV3Q29udGFpbmVyXy50ZXh0Q29udGVudD0nJztpZih0aGlzLnRyYWNrVmlld18pe3RoaXMudHJhY2tWaWV3Xy52aWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25WaWV3cG9ydENoYW5nZWRfKTt0aGlzLnRyYWNrVmlld18uc2VsZWN0aW9uQ29udHJvbGxlcj11bmRlZmluZWQ7dGhpcy50cmFja1ZpZXdfLmRldGFjaCgpO3RoaXMudHJhY2tWaWV3Xz11bmRlZmluZWQ7fQotdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5tb2RlbFdpbGxDaGFuZ2UoKTt9Ci1pZihtb2RlbFZhbGlkJiYhdGhpcy50cmFja1ZpZXdfKXt0aGlzLnRyYWNrVmlld189bmV3IHRyLmMuVGltZWxpbmVUcmFja1ZpZXcodGhpcyk7dGhpcy50cmFja1ZpZXcuc2VsZWN0aW9uQ29udHJvbGxlcj10aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfO3RoaXMudHJhY2tWaWV3Xy5mb2N1c0VsZW1lbnQ9dGhpcy5mb2N1c0VsZW1lbnRfP3RoaXMuZm9jdXNFbGVtZW50Xzp0aGlzLnBhcmVudEVsZW1lbnQ7dGhpcy50cmFja1ZpZXdDb250YWluZXJfLmFwcGVuZENoaWxkKHRoaXMudHJhY2tWaWV3Xyk7dGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsdGhpcy5vblZpZXdwb3J0Q2hhbmdlZF8pO30KLWlmKG1vZGVsVmFsaWQpe3RoaXMudHJhY2tWaWV3Xy5tb2RlbD1tb2RlbDt0aGlzLnRyYWNrVmlld18udmlld3BvcnQuc2hvd0Zsb3dFdmVudHM9dGhpcy5zaG93Rmxvd0V2ZW50czt0aGlzLnRyYWNrVmlld18udmlld3BvcnQuaGlnaGxpZ2h0VlN5bmM9dGhpcy5oaWdobGlnaHRWU3luYztpZih0aGlzLnJhaWxTY29yZVNwYW5fKXt2YXIgcmFpbFNjb3JlPXRyLmUucmFpbC5SQUlMU2NvcmUuZnJvbU1vZGVsKG1vZGVsKTt0aGlzLnJhaWxTY29yZVNwYW5fLnJhaWxTY29yZT1yYWlsU2NvcmU7fX0KLWlmKG1vZGVsSW5zdGFuY2VDaGFuZ2VkKXt0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywnbW9kZWxDaGFuZ2UnKTt0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLm1vZGVsRGlkQ2hhbmdlKCk7dGhpcy5vblZpZXdwb3J0Q2hhbmdlZF8oKTt9fSxnZXQgc2VsZWN0aW9uQ29udHJvbGxlcigpe3JldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfO30sZ2V0IHRyYWNrVmlldygpe3JldHVybiB0aGlzLnRyYWNrVmlld187fSxnZXQgc2V0dGluZ3MoKXtpZighdGhpcy5zZXR0aW5nc18pCi10aGlzLnNldHRpbmdzXz1uZXcgdHIuYi5TZXR0aW5ncygpO3JldHVybiB0aGlzLnNldHRpbmdzXzt9LHNldCBmb2N1c0VsZW1lbnQodmFsdWUpe3RoaXMuZm9jdXNFbGVtZW50Xz12YWx1ZTtpZih0aGlzLnRyYWNrVmlld18pCi10aGlzLnRyYWNrVmlld18uZm9jdXNFbGVtZW50PXZhbHVlO30sZ2V0IGZvY3VzRWxlbWVudCgpe2lmKHRoaXMuZm9jdXNFbGVtZW50XykKLXJldHVybiB0aGlzLmZvY3VzRWxlbWVudF87cmV0dXJuIHRoaXMucGFyZW50RWxlbWVudDt9LGdldCBsaXN0ZW5Ub0tleXNfKCl7aWYoIXRyLmIudWkuaXNFbGVtZW50QXR0YWNoZWRUb0RvY3VtZW50KHRoaXMpKQotcmV0dXJuO2lmKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudHlwZT09PSd0ZXh0YXJlYScpCi1yZXR1cm4gZmFsc2U7aWYodGhpcy5zaWRlUGFuZWxDb250YWluZXJfLmFjdGl2ZVBhbmVsJiZ0aGlzLnNpZGVQYW5lbENvbnRhaW5lcl8uYWN0aXZlUGFuZWwubGlzdGVuaW5nVG9LZXlzKQotcmV0dXJuIGZhbHNlO2lmKCF0aGlzLmZvY3VzRWxlbWVudF8pCi1yZXR1cm4gdHJ1ZTtpZih0aGlzLmZvY3VzRWxlbWVudC50YWJJbmRleD49MCkKLXJldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50PT10aGlzLmZvY3VzRWxlbWVudDtyZXR1cm4gdHJ1ZTt9LG9uS2V5RG93bl86ZnVuY3Rpb24oZSl7aWYoIXRoaXMubGlzdGVuVG9LZXlzXykKLXJldHVybjt9LG9uS2V5cHJlc3NfOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmxpc3RlblRvS2V5c18pCi1yZXR1cm47c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSdgJy5jaGFyQ29kZUF0KDApOnRoaXMuc2NyaXB0aW5nQ3RsXy50b2dnbGVWaXNpYmlsaXR5KCk7aWYoIXRoaXMuc2NyaXB0aW5nQ3RsXy5oYXNGb2N1cykKLXRoaXMuZm9jdXMoKTtlLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7fQotaWYodGhpcy5zY3JpcHRpbmdDdGxfLmhhc0ZvY3VzKQotcmV0dXJuO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UnLycuY2hhckNvZGVBdCgwKTppZih0aGlzLmZpbmRDdGxfLmhhc0ZvY3VzKQordGhpcy5yYWlsU2NvcmVTcGFuXy5yYWlsU2NvcmU9dW5kZWZpbmVkO3RoaXMudHJhY2tWaWV3Q29udGFpbmVyXy50ZXh0Q29udGVudD0nJztpZih0aGlzLnRyYWNrVmlld18pe3RoaXMudHJhY2tWaWV3Xy52aWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25WaWV3cG9ydENoYW5nZWRfKTt0aGlzLnRyYWNrVmlld18uYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI9dW5kZWZpbmVkO3RoaXMudHJhY2tWaWV3Xy5kZXRhY2goKTt0aGlzLnRyYWNrVmlld189dW5kZWZpbmVkO30KK3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLm1vZGVsV2lsbENoYW5nZSgpO30KK2lmKG1vZGVsVmFsaWQmJiF0aGlzLnRyYWNrVmlld18pe3RoaXMudHJhY2tWaWV3Xz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS10cmFjay12aWV3Jyk7dGhpcy50cmFja1ZpZXdfLnRpbWVsaW5lVmlldz10aGlzO3RoaXMudHJhY2tWaWV3LmJydXNoaW5nU3RhdGVDb250cm9sbGVyPXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfO3RoaXMudHJhY2tWaWV3Q29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLnRyYWNrVmlld18pO3RoaXMudHJhY2tWaWV3Xy52aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHRoaXMub25WaWV3cG9ydENoYW5nZWRfKTt9CitpZihtb2RlbFZhbGlkKXt0aGlzLnRyYWNrVmlld18ubW9kZWw9bW9kZWw7dGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LnNob3dGbG93RXZlbnRzPXRoaXMuc2hvd0Zsb3dFdmVudHM7dGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LmhpZ2hsaWdodFZTeW5jPXRoaXMuaGlnaGxpZ2h0VlN5bmM7aWYodGhpcy5yYWlsU2NvcmVTcGFuXyl7dmFyIHJhaWxTY29yZT10ci5lLnJhaWwuUkFJTFNjb3JlLmZyb21Nb2RlbChtb2RlbCk7dGhpcy5yYWlsU2NvcmVTcGFuXy5yYWlsU2NvcmU9cmFpbFNjb3JlO30KK3RoaXMuJC5kaXNwbGF5X3VuaXQucHJlZmVycmVkRGlzcGxheVVuaXQ9bW9kZWwuaW50cmluc2ljVGltZVVuaXQ7fQoraWYobW9kZWxJbnN0YW5jZUNoYW5nZWQpe3RoaXMudXBkYXRlTWV0YWRhdGFCdXR0b25WaXNpYmlsaXR5XygpO3RoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLm1vZGVsRGlkQ2hhbmdlKCk7dGhpcy5vblZpZXdwb3J0Q2hhbmdlZF8oKTt9fSxnZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKXtyZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87fSxnZXQgdHJhY2tWaWV3KCl7cmV0dXJuIHRoaXMudHJhY2tWaWV3Xzt9LGdldCBzZXR0aW5ncygpe2lmKCF0aGlzLnNldHRpbmdzXykKK3RoaXMuc2V0dGluZ3NfPW5ldyB0ci5iLlNldHRpbmdzKCk7cmV0dXJuIHRoaXMuc2V0dGluZ3NfO30sc2V0IGZvY3VzRWxlbWVudCh2YWx1ZSl7dGhyb3cgbmV3IEVycm9yKCdUaGlzIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBzZXQgZ2xvYmFsTW9kZSB0byB0cnVlLicpO30sYmluZEtleUxpc3RlbmVyc186ZnVuY3Rpb24oKXt2YXIgaGtjPXRoaXMuaG90a2V5Q29udHJvbGxlcjtoa2MuYWRkSG90S2V5KG5ldyB0ci51aS5iLkhvdEtleSh7ZXZlbnRUeXBlOidrZXlwcmVzcycsa2V5Q29kZTonYCcuY2hhckNvZGVBdCgwKSx1c2VDYXB0dXJlOnRydWUsdGhpc0FyZzp0aGlzLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe3RoaXMuc2NyaXB0aW5nQ3RsXy50b2dnbGVWaXNpYmlsaXR5KCk7aWYoIXRoaXMuc2NyaXB0aW5nQ3RsXy5oYXNGb2N1cykKK3RoaXMuZm9jdXMoKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KSk7aGtjLmFkZEhvdEtleShuZXcgdHIudWkuYi5Ib3RLZXkoe2V2ZW50VHlwZTona2V5cHJlc3MnLGtleUNvZGU6Jy8nLmNoYXJDb2RlQXQoMCksdXNlQ2FwdHVyZTp0cnVlLHRoaXNBcmc6dGhpcyxjYWxsYmFjazpmdW5jdGlvbihlKXtpZih0aGlzLnNjcmlwdGluZ0N0bF8uaGFzRm9jdXMpCityZXR1cm47aWYodGhpcy5maW5kQ3RsXy5oYXNGb2N1cykKIHRoaXMuZm9jdXMoKTtlbHNlCi10aGlzLmZpbmRDdGxfLmZvY3VzKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UnPycuY2hhckNvZGVBdCgwKTp0aGlzLnF1ZXJ5U2VsZWN0b3IoJy52aWV3LWhlbHAtYnV0dG9uJykuY2xpY2soKTtlLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7fQotaWYodGhpcy5maW5kQ3RsXy5oYXNGb2N1cykKLXJldHVybjtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlJ3YnLmNoYXJDb2RlQXQoMCk6dGhpcy50b2dnbGVIaWdobGlnaHRWU3luY18oKTtlLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7fX0sb25WaWV3cG9ydENoYW5nZWRfOmZ1bmN0aW9uKGUpe3ZhciBzcGM9dGhpcy5zaWRlUGFuZWxDb250YWluZXJfO2lmKCF0aGlzLnRyYWNrVmlld18pe3NwYy5yYW5nZU9mSW50ZXJlc3QucmVzZXQoKTtyZXR1cm47fQordGhpcy5maW5kQ3RsXy5mb2N1cygpO2UucHJldmVudERlZmF1bHQoKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KSk7aGtjLmFkZEhvdEtleShuZXcgdHIudWkuYi5Ib3RLZXkoe2V2ZW50VHlwZTona2V5cHJlc3MnLGtleUNvZGU6Jz8nLmNoYXJDb2RlQXQoMCksdXNlQ2FwdHVyZTpmYWxzZSx0aGlzQXJnOnRoaXMsY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy4kLnZpZXdfaGVscF9idXR0b24uY2xpY2soKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KSk7aGtjLmFkZEhvdEtleShuZXcgdHIudWkuYi5Ib3RLZXkoe2V2ZW50VHlwZTona2V5cHJlc3MnLGtleUNvZGU6J3YnLmNoYXJDb2RlQXQoMCksdXNlQ2FwdHVyZTpmYWxzZSx0aGlzQXJnOnRoaXMsY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dGhpcy50b2dnbGVIaWdobGlnaHRWU3luY18oKTtlLnN0b3BQcm9wYWdhdGlvbigpO319KSk7fSxvblZpZXdwb3J0Q2hhbmdlZF86ZnVuY3Rpb24oZSl7dmFyIHNwYz10aGlzLnNpZGVQYW5lbENvbnRhaW5lcl87aWYoIXRoaXMudHJhY2tWaWV3Xyl7c3BjLnJhbmdlT2ZJbnRlcmVzdC5yZXNldCgpO3JldHVybjt9CiB2YXIgdnI9dGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuYXNSYW5nZU9iamVjdCgpO2lmKCFzcGMucmFuZ2VPZkludGVyZXN0LmVxdWFscyh2cikpCi1zcGMucmFuZ2VPZkludGVyZXN0PXZyO30sdG9nZ2xlSGlnaGxpZ2h0VlN5bmNfOmZ1bmN0aW9uKCl7dGhpcy5oaWdobGlnaHRWU3luY0NoZWNrYm94Xy5jaGVja2VkPSF0aGlzLmhpZ2hsaWdodFZTeW5jQ2hlY2tib3hfLmNoZWNrZWQ7fSxzZXRGaW5kQ3RsVGV4dDpmdW5jdGlvbihzdHJpbmcpe3RoaXMuZmluZEN0bF8uc2V0VGV4dChzdHJpbmcpO319O3JldHVybntUaW1lbGluZVZpZXc6VGltZWxpbmVWaWV3fTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyJyxmdW5jdGlvbigpe3ZhciBUcmFjZVZpZXdlcj10ci5iLnVpLmRlZmluZSgndHJhY2Utdmlld2VyJyx0ci5jLlRpbWVsaW5lVmlldyk7VHJhY2VWaWV3ZXIucHJvdG90eXBlPXtfX3Byb3RvX186dHIuYy5UaW1lbGluZVZpZXcucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKG9wdF91cmwpe3RyLmMuVGltZWxpbmVWaWV3LnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMpO2lmKG9wdF91cmw9PT11bmRlZmluZWQpCi1yZXR1cm47dmFyIHVybD1vcHRfdXJsO3ZhciB0aGF0PXRoaXM7dmFyIHJlcT1uZXcgWE1MSHR0cFJlcXVlc3QoKTt2YXIgaXNfYmluYXJ5PS9bLl1neiQvLnRlc3QodXJsKXx8L1suXXppcCQvLnRlc3QodXJsKTtyZXEub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbjsgY2hhcnNldD14LXVzZXItZGVmaW5lZCcpO3JlcS5vcGVuKCdHRVQnLHVybCx0cnVlKTtpZihpc19iaW5hcnkpCi1yZXEucmVzcG9uc2VUeXBlPSdhcnJheWJ1ZmZlcic7cmVxLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihhRXZ0KXtpZihyZXEucmVhZHlTdGF0ZT09NCl7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihyZXEuc3RhdHVzPT0yMDApe29uUmVzdWx0KGlzX2JpbmFyeT9yZXEucmVzcG9uc2U6cmVxLnJlc3BvbnNlVGV4dCk7fWVsc2V7b25SZXN1bHRGYWlsKHJlcS5zdGF0dXMpO319LDApO319O3JlcS5zZW5kKG51bGwpO2Z1bmN0aW9uIG9uUmVzdWx0RmFpbChlcnIpe3ZhciBvdmVybGF5PW5ldyB0ci5iLnVpLk92ZXJsYXkoKTtvdmVybGF5LnRleHRDb250ZW50PWVycisnOiAnK3VybCsnIGNvdWxkIG5vdCBiZSBsb2FkZWQnO292ZXJsYXkudGl0bGU9J0ZhaWxlZCB0byBmZXRjaCBkYXRhJztvdmVybGF5LnZpc2libGU9dHJ1ZTt9Ci12YXIgbW9kZWw7ZnVuY3Rpb24gb25SZXN1bHQocmVzdWx0KXttb2RlbD1uZXcgdHIuTW9kZWwoKTt2YXIgcD1tb2RlbC5pbXBvcnRUcmFjZXNXaXRoUHJvZ3Jlc3NEaWFsb2coW3Jlc3VsdF0sdHJ1ZSk7cC50aGVuKG9uTW9kZWxMb2FkZWQsb25JbXBvcnRGYWlsKTt9Ci1mdW5jdGlvbiBvbk1vZGVsTG9hZGVkKCl7dGhhdC5tb2RlbD1tb2RlbDt0aGF0LnZpZXdUaXRsZT11cmw7aWYodGhhdC50aW1lbGluZSkKLXRoYXQudGltZWxpbmUuZm9jdXNFbGVtZW50PXRoYXQ7fQotZnVuY3Rpb24gb25JbXBvcnRGYWlsKCl7dmFyIG92ZXJsYXk9bmV3IHRyLmIudWkuT3ZlcmxheSgpO292ZXJsYXkudGV4dENvbnRlbnQ9dHIuYi5ub3JtYWxpemVFeGNlcHRpb24oZXJyKS5tZXNzYWdlO292ZXJsYXkudGl0bGU9J0ltcG9ydCBlcnJvcic7b3ZlcmxheS52aXNpYmxlPXRydWU7fX19O3JldHVybntUcmFjZVZpZXdlcjpUcmFjZVZpZXdlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmJhdHRvcicsZnVuY3Rpb24oKXt2YXIgSW1wb3J0ZXI9dHIuaW1wb3J0ZXIuSW1wb3J0ZXI7ZnVuY3Rpb24gQmF0dG9ySW1wb3J0ZXIobW9kZWwsZXZlbnRzKXt0aGlzLmltcG9ydFByaW9yaXR5PTM7dGhpcy5zYW1wbGVSYXRlXz11bmRlZmluZWQ7dGhpcy5tb2RlbF89bW9kZWw7dGhpcy5ldmVudHNfPWV2ZW50czt9CitzcGMucmFuZ2VPZkludGVyZXN0PXZyO30sdG9nZ2xlSGlnaGxpZ2h0VlN5bmNfOmZ1bmN0aW9uKCl7dGhpcy5oaWdobGlnaHRWU3luY0NoZWNrYm94Xy5jaGVja2VkPSF0aGlzLmhpZ2hsaWdodFZTeW5jQ2hlY2tib3hfLmNoZWNrZWQ7fSxzZXRGaW5kQ3RsVGV4dDpmdW5jdGlvbihzdHJpbmcpe3RoaXMuZmluZEN0bF8uc2V0VGV4dChzdHJpbmcpO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIuYmF0dG9yJyxmdW5jdGlvbigpe3ZhciBJbXBvcnRlcj10ci5pbXBvcnRlci5JbXBvcnRlcjtmdW5jdGlvbiBCYXR0b3JJbXBvcnRlcihtb2RlbCxldmVudHMpe3RoaXMuaW1wb3J0UHJpb3JpdHk9Mzt0aGlzLnNhbXBsZVJhdGVfPXVuZGVmaW5lZDt0aGlzLm1vZGVsXz1tb2RlbDt0aGlzLmV2ZW50c189ZXZlbnRzO30KIHZhciBUZXN0RXhwb3J0cz17fTt2YXIgYmF0dG9yRGF0YUxpbmVSRT0vXihcZCtcLlxkKylccysoXGQrXC5cZCspXHMrKFxkK1wuXGQrKSQvO3ZhciBiYXR0b3JIZWFkZXJMaW5lUkU9L14jIEJhdHRPci87dmFyIHNhbXBsZVJhdGVMaW5lUkU9L14jIHNhbXBsZV9yYXRlPShcZCspSHovO0JhdHRvckltcG9ydGVyLmNhbkltcG9ydD1mdW5jdGlvbihldmVudHMpe2lmKCEodHlwZW9mKGV2ZW50cyk9PT0nc3RyaW5nJ3x8ZXZlbnRzIGluc3RhbmNlb2YgU3RyaW5nKSkKLXJldHVybiBmYWxzZTtyZXR1cm4gYmF0dG9ySGVhZGVyTGluZVJFLnRlc3QoZXZlbnRzKTt9O0JhdHRvckltcG9ydGVyLnByb3RvdHlwZT17X19wcm90b19fOkltcG9ydGVyLnByb3RvdHlwZSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5tb2RlbF87fSxpbXBvcnRFdmVudHM6ZnVuY3Rpb24oaXNTZWNvbmRhcnlJbXBvcnQpe3ZhciBuYW1lPSdwb3dlcic7dmFyIHNlcmllcz1uZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygndmFsdWUnLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUrJy4nKyd2YWx1ZScpKTt0aGlzLmltcG9ydFBvd2VyU2FtcGxlcyhzZXJpZXMpO3ZhciBzeW5jTWFya3M9dGhpcy5tb2RlbF8uZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkKCdiYXR0b3InKTtpZihzeW5jTWFya3MubGVuZ3RoPDEpe3RoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoe3R5cGU6J2Nsb2NrX3N5bmMnLG1lc3NhZ2U6J0Nhbm5vdCBpbXBvcnQgQmF0dE9yIHBvd2VyIHRyYWNlIHdpdGhvdXQgYSBzeW5jIHNpZ25hbC4nfSk7cmV0dXJuO30KK3JldHVybiBmYWxzZTtyZXR1cm4gYmF0dG9ySGVhZGVyTGluZVJFLnRlc3QoZXZlbnRzKTt9O0JhdHRvckltcG9ydGVyLnByb3RvdHlwZT17X19wcm90b19fOkltcG9ydGVyLnByb3RvdHlwZSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5tb2RlbF87fSxpbXBvcnRFdmVudHM6ZnVuY3Rpb24oaXNTZWNvbmRhcnlJbXBvcnQpe2lmKHRoaXMubW9kZWxfLmRldmljZS5wb3dlclNlcmllcyl7dGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7dHlwZTonaW1wb3J0X2Vycm9yJyxtZXNzYWdlOidQb3dlciBjb3VudGVyIGV4aXN0cywgY2FuIG5vdCBpbXBvcnQgQmF0dE9yIHBvd2VyIHRyYWNlLid9KTtyZXR1cm47fQordmFyIG5hbWU9J3Bvd2VyJzt2YXIgc2VyaWVzPW5ldyB0ci5tb2RlbC5Qb3dlclNlcmllcyh0aGlzLm1vZGVsXy5kZXZpY2UpO3RoaXMuaW1wb3J0UG93ZXJTYW1wbGVzKHNlcmllcyk7dmFyIHN5bmNNYXJrcz10aGlzLm1vZGVsXy5nZXRDbG9ja1N5bmNSZWNvcmRzTmFtZWQoJ2JhdHRvcicpO2lmKHN5bmNNYXJrcy5sZW5ndGg8MSl7dGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7dHlwZTonY2xvY2tfc3luYycsbWVzc2FnZTonQ2Fubm90IGltcG9ydCBCYXR0T3IgcG93ZXIgdHJhY2Ugd2l0aG91dCBhIHN5bmMgc2lnbmFsLid9KTtyZXR1cm47fQogdmFyIHNoaWZ0VHM9dGhpcy5jb3JyZWxhdGlvbkNsb2NrU3luYyhzeW5jTWFya3Msc2VyaWVzKTtpZihzaGlmdFRzPT09dW5kZWZpbmVkKXt0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHt0eXBlOidjbG9ja19zeW5jJyxtZXNzYWdlOidBbGwgb2YgdGhlIEJhdHRPciBwb3dlciB0cmFjZSBjbG9jayBzeW5jIHRlY2hpbnF1ZXMgZmFpbGVkLid9KTtyZXR1cm47fQotdmFyIGN0cj10aGlzLm1vZGVsXy5rZXJuZWwuZ2V0T3JDcmVhdGVDb3VudGVyKG51bGwsJ1Bvd2VyJyk7aWYoY3RyLm51bVNlcmllcz09PTApe2N0ci5hZGRTZXJpZXMoc2VyaWVzKTt9Ci1jdHIuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChzaGlmdFRzKTt9LGltcG9ydFBvd2VyU2FtcGxlczpmdW5jdGlvbihzZXJpZXMpe3ZhciBsaW5lcz10aGlzLmV2ZW50c18uc3BsaXQoJ1xuJyk7dGhpcy5tb2RlbF8udXBkYXRlQm91bmRzKCk7dmFyIG1pblRzPTA7aWYodGhpcy5tb2RlbF8uYm91bmRzLm1pbiE9PXVuZGVmaW5lZCkKLW1pblRzPXRoaXMubW9kZWxfLmJvdW5kcy5taW47bGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lKXtpZihsaW5lLmxlbmd0aD09PTApCitzZXJpZXMuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChzaGlmdFRzKTt0aGlzLm1vZGVsXy5kZXZpY2UucG93ZXJTZXJpZXM9c2VyaWVzO30saW1wb3J0UG93ZXJTYW1wbGVzOmZ1bmN0aW9uKHNlcmllcyl7dmFyIGxpbmVzPXRoaXMuZXZlbnRzXy5zcGxpdCgnXG4nKTt0aGlzLm1vZGVsXy51cGRhdGVCb3VuZHMoKTt2YXIgbWluVHM9MDtpZih0aGlzLm1vZGVsXy5ib3VuZHMubWluIT09dW5kZWZpbmVkKQorbWluVHM9dGhpcy5tb2RlbF8uYm91bmRzLm1pbjtsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUpe2xpbmU9bGluZS50cmltKCk7aWYobGluZS5sZW5ndGg9PT0wKQogcmV0dXJuO2lmKC9eIy8udGVzdChsaW5lKSl7Z3JvdXBzPXNhbXBsZVJhdGVMaW5lUkUuZXhlYyhsaW5lKTtpZighZ3JvdXBzKQogcmV0dXJuO3RoaXMuc2FtcGxlUmF0ZV89cGFyc2VJbnQoZ3JvdXBzWzFdKTt9ZWxzZXt2YXIgZ3JvdXBzPWJhdHRvckRhdGFMaW5lUkUuZXhlYyhsaW5lKTtpZighZ3JvdXBzKXt0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHt0eXBlOidwYXJzZV9lcnJvcicsbWVzc2FnZTonVW5yZWNvZ25pemVkIGxpbmU6ICcrbGluZX0pO3JldHVybjt9Ci12YXIgdGltZT1wYXJzZUZsb2F0KGdyb3Vwc1sxXSkrbWluVHM7dmFyIHZvbHRhZ2VfbVY9cGFyc2VGbG9hdChncm91cHNbMl0pO3ZhciBjdXJyZW50X21BPXBhcnNlRmxvYXQoZ3JvdXBzWzNdKTtzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0aW1lLCh2b2x0YWdlX21WKmN1cnJlbnRfbUEpLzEwMDApO319LHRoaXMpO30sY29ycmVsYXRpb25DbG9ja1N5bmM6ZnVuY3Rpb24oc3luY01hcmtzLHNlcmllcyl7dmFyIHN5bmNDdHI9dGhpcy5tb2RlbF8ua2VybmVsLmNvdW50ZXJzWydudWxsLnZyZWcgJytzeW5jTWFya3NbMF0uYXJnc1sncmVndWxhdG9yJ10rJyBlbmFibGVkJ107aWYoc3luY0N0cj09PXVuZGVmaW5lZCl7dGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7dHlwZTonY2xvY2tfc3luYycsbWVzc2FnZTonQ2Fubm90IGNvcnJlbGF0ZSBCYXR0T3IgcG93ZXIgdHJhY2Ugd2l0aG91dCBzeW5jIHZyZWcuJ30pO3JldHVybiB1bmRlZmluZWQ7fQordmFyIHRpbWU9cGFyc2VGbG9hdChncm91cHNbMV0pK21pblRzO3ZhciB2b2x0YWdlX21WPXBhcnNlRmxvYXQoZ3JvdXBzWzJdKTt2YXIgY3VycmVudF9tQT1wYXJzZUZsb2F0KGdyb3Vwc1szXSk7c2VyaWVzLmFkZFBvd2VyU2FtcGxlKHRpbWUsKHZvbHRhZ2VfbVYqY3VycmVudF9tQSkvMTAwMCk7fX0sdGhpcyk7fSxjb3JyZWxhdGlvbkNsb2NrU3luYzpmdW5jdGlvbihzeW5jTWFya3Msc2VyaWVzKXt2YXIgc3luY0N0cj10aGlzLm1vZGVsXy5rZXJuZWwuY291bnRlcnNbJ251bGwudnJlZyAnK3N5bmNNYXJrc1swXS5hcmdzWydyZWd1bGF0b3InXSsnIGVuYWJsZWQnXTtpZihzeW5jQ3RyPT09dW5kZWZpbmVkKXt0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHt0eXBlOidjbG9ja19zeW5jJyxtZXNzYWdlOidDYW5ub3QgY29ycmVsYXRlIEJhdHRPciBwb3dlciB0cmFjZSB3aXRob3V0IHN5bmMgdnJlZy4nfSk7cmV0dXJuIHVuZGVmaW5lZDt9CiB2YXIgc3luY0V2ZW50cz1bXTt2YXIgZmlyc3RTeW5jRXZlbnRUcz11bmRlZmluZWQ7c3luY0N0ci5zZXJpZXNbMF0uaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihldmVudCl7aWYoZXZlbnQudGltZXN0YW1wPj1zeW5jTWFya3NbMF0udHMmJmV2ZW50LnRpbWVzdGFtcDw9c3luY01hcmtzWzFdLnRzKXtpZihmaXJzdFN5bmNFdmVudFRzPT09dW5kZWZpbmVkKQogZmlyc3RTeW5jRXZlbnRUcz1ldmVudC50aW1lc3RhbXA7dmFyIG5ld0V2ZW50PXsndHMnOihldmVudC50aW1lc3RhbXAtZmlyc3RTeW5jRXZlbnRUcykvMTAwMCwndmFsJzpldmVudC52YWx1ZX07c3luY0V2ZW50cy5wdXNoKG5ld0V2ZW50KTt9fSk7dmFyIHN5bmNTYW1wbGVzPVtdO3ZhciBzeW5jTnVtU2FtcGxlcz1NYXRoLmNlaWwoc3luY0V2ZW50c1tzeW5jRXZlbnRzLmxlbmd0aC0xXS50cyp0aGlzLnNhbXBsZVJhdGVfKTtmb3IodmFyIGk9MTtpPHN5bmNFdmVudHMubGVuZ3RoO2krKyl7dmFyIHNhbXBsZVN0YXJ0SWR4PU1hdGguY2VpbChzeW5jRXZlbnRzW2ktMV0udHMqdGhpcy5zYW1wbGVSYXRlXyk7dmFyIHNhbXBsZUVuZElkeD1NYXRoLmNlaWwoc3luY0V2ZW50c1tpXS50cyp0aGlzLnNhbXBsZVJhdGVfKTtmb3IodmFyIGo9c2FtcGxlU3RhcnRJZHg7ajxzYW1wbGVFbmRJZHg7aisrKXtzeW5jU2FtcGxlc1tqXT1zeW5jRXZlbnRzW2ktMV0udmFsO319CiB2YXIgcG93ZXJTYW1wbGVzPXNlcmllcy5zYW1wbGVzO2lmKHBvd2VyU2FtcGxlcy5sZW5ndGg8c3luY1NhbXBsZXMubGVuZ3RoKXt0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHt0eXBlOidub3RfZW5vdWdoX3NhbXBsZXMnLG1lc3NhZ2U6J05vdCBlbm91Z2ggcG93ZXIgc2FtcGxlcyB0byBjb3JyZWxhdGUgd2l0aCBzeW5jIHNpZ25hbC4nfSk7cmV0dXJuIHVuZGVmaW5lZDt9CiB2YXIgbWF4U2hpZnQ9cG93ZXJTYW1wbGVzLmxlbmd0aC1zeW5jU2FtcGxlcy5sZW5ndGg7dmFyIG1pblNoaWZ0PTA7dmFyIGNvcnJOdW1TYW1wbGVzPXRoaXMuc2FtcGxlUmF0ZV8qNS4wO2lmKHBvd2VyU2FtcGxlcy5sZW5ndGg+Y29yck51bVNhbXBsZXMpCi1taW5TaGlmdD1wb3dlclNhbXBsZXMubGVuZ3RoLWNvcnJOdW1TYW1wbGVzO3ZhciBjb3JyPVtdO2Zvcih2YXIgc2hpZnQ9bWluU2hpZnQ7c2hpZnQ8PW1heFNoaWZ0O3NoaWZ0Kyspe3ZhciBjb3JyU3VtPTA7dmFyIHBvd2VyQXZnPTA7Zm9yKHZhciBpPTA7aTxzeW5jU2FtcGxlcy5sZW5ndGg7aSsrKXtjb3JyU3VtKz0ocG93ZXJTYW1wbGVzW2krc2hpZnRdLnZhbHVlKnN5bmNTYW1wbGVzW2ldKTtwb3dlckF2Zys9cG93ZXJTYW1wbGVzW2krc2hpZnRdLnZhbHVlO30KK21pblNoaWZ0PXBvd2VyU2FtcGxlcy5sZW5ndGgtY29yck51bVNhbXBsZXM7dmFyIGNvcnI9W107Zm9yKHZhciBzaGlmdD1taW5TaGlmdDtzaGlmdDw9bWF4U2hpZnQ7c2hpZnQrKyl7dmFyIGNvcnJTdW09MDt2YXIgcG93ZXJBdmc9MDtmb3IodmFyIGk9MDtpPHN5bmNTYW1wbGVzLmxlbmd0aDtpKyspe2NvcnJTdW0rPShwb3dlclNhbXBsZXNbaStzaGlmdF0ucG93ZXIqc3luY1NhbXBsZXNbaV0pO3Bvd2VyQXZnKz1wb3dlclNhbXBsZXNbaStzaGlmdF0ucG93ZXI7fQogcG93ZXJBdmc9cG93ZXJBdmcvc3luY1NhbXBsZXMubGVuZ3RoO2NvcnIucHVzaChjb3JyU3VtL3Bvd2VyQXZnKTt9CiB2YXIgY29yclBlYWtJZHg9MDt2YXIgY29yclBlYWs9MDtmb3IodmFyIGk9MDtpPHBvd2VyU2FtcGxlcy5sZW5ndGg7aSsrKXtpZihjb3JyW2ldPmNvcnJQZWFrKXtjb3JyUGVhaz1jb3JyW2ldO2NvcnJQZWFrSWR4PWk7fX0KLXZhciBjb3JyUGVha1RzPSgobWluU2hpZnQrY29yclBlYWtJZHgpL3RoaXMuc2FtcGxlUmF0ZV8pO2NvcnJQZWFrVHMqPTEwMDA7dmFyIHN5bmNTdGFydFRzPWZpcnN0U3luY0V2ZW50VHMtdGhpcy5tb2RlbF8uYm91bmRzLm1pbjt2YXIgc2hpZnRUcz1zeW5jU3RhcnRUcy1jb3JyUGVha1RzO3JldHVybiBzaGlmdFRzO319O3RyLmltcG9ydGVyLkltcG9ydGVyLnJlZ2lzdGVyKEJhdHRvckltcG9ydGVyKTtyZXR1cm57QmF0dG9ySW1wb3J0ZXI6QmF0dG9ySW1wb3J0ZXIsX0JhdHRvckltcG9ydGVyVGVzdEV4cG9ydHM6VGVzdEV4cG9ydHN9O30pOyFmdW5jdGlvbihhKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPWEoKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpZGVmaW5lKFtdLGEpO2Vsc2V7dmFyIGI7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/Yj13aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Yj1nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYoYj1zZWxmKSxiLkpTWmlwPWEoKX19KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGEoYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtpZighY1tnXSl7aWYoIWJbZ10pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFoJiZpKXJldHVybiBpKGcsITApO2lmKGYpcmV0dXJuIGYoZywhMCk7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZysiJyIpfXZhciBqPWNbZ109e2V4cG9ydHM6e319O2JbZ11bMF0uY2FsbChqLmV4cG9ydHMsZnVuY3Rpb24oYSl7dmFyIGM9YltnXVsxXVthXTtyZXR1cm4gZShjP2M6YSl9LGosai5leHBvcnRzLGEsYixjLGQpfXJldHVybiBjW2ddLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGc9MDtnPGQubGVuZ3RoO2crKyllKGRbZ10pO3JldHVybiBlfSh7MTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO2MuZW5jb2RlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGUsZixnLGgsaSxqPSIiLGs9MDtrPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChrKyspLGM9YS5jaGFyQ29kZUF0KGsrKyksZT1hLmNoYXJDb2RlQXQoaysrKSxmPWI+PjIsZz0oMyZiKTw8NHxjPj40LGg9KDE1JmMpPDwyfGU+PjYsaT02MyZlLGlzTmFOKGMpP2g9aT02NDppc05hTihlKSYmKGk9NjQpLGo9aitkLmNoYXJBdChmKStkLmNoYXJBdChnKStkLmNoYXJBdChoKStkLmNoYXJBdChpKTtyZXR1cm4gan0sYy5kZWNvZGU9ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoLGksaj0iIixrPTA7Zm9yKGE9YS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7azxhLmxlbmd0aDspZj1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksZz1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaD1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaT1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksYj1mPDwyfGc+PjQsYz0oMTUmZyk8PDR8aD4+MixlPSgzJmgpPDw2fGksais9U3RyaW5nLmZyb21DaGFyQ29kZShiKSw2NCE9aCYmKGorPVN0cmluZy5mcm9tQ2hhckNvZGUoYykpLDY0IT1pJiYoais9U3RyaW5nLmZyb21DaGFyQ29kZShlKSk7cmV0dXJuIGp9fSx7fV0sMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe3RoaXMuY29tcHJlc3NlZFNpemU9MCx0aGlzLnVuY29tcHJlc3NlZFNpemU9MCx0aGlzLmNyYzMyPTAsdGhpcy5jb21wcmVzc2lvbk1ldGhvZD1udWxsLHRoaXMuY29tcHJlc3NlZENvbnRlbnQ9bnVsbH1jLnByb3RvdHlwZT17Z2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxnZXRDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfX0sYi5leHBvcnRzPWN9LHt9XSwzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuU1RPUkU9e21hZ2ljOiJceDAwXHgwMCIsY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHVuY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGNvbXByZXNzSW5wdXRUeXBlOm51bGwsdW5jb21wcmVzc0lucHV0VHlwZTpudWxsfSxjLkRFRkxBVEU9YSgiLi9mbGF0ZSIpfSx7Ii4vZmxhdGUiOjh9XSw0OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3V0aWxzIiksZD1bMCwxOTk2OTU5ODk0LDM5OTM5MTk3ODgsMjU2NzUyNDc5NCwxMjQ2MzQxMzcsMTg4NjA1NzYxNSwzOTE1NjIxNjg1LDI2NTczOTIwMzUsMjQ5MjY4Mjc0LDIwNDQ1MDgzMjQsMzc3MjExNTIzMCwyNTQ3MTc3ODY0LDE2Mjk0MTk5NSwyMTI1NTYxMDIxLDM4ODc2MDcwNDcsMjQyODQ0NDA0OSw0OTg1MzY1NDgsMTc4OTkyNzY2Niw0MDg5MDE2NjQ4LDIyMjcwNjEyMTQsNDUwNTQ4ODYxLDE4NDMyNTg2MDMsNDEwNzU4MDc1MywyMjExNjc3NjM5LDMyNTg4Mzk5MCwxNjg0Nzc3MTUyLDQyNTExMjIwNDIsMjMyMTkyNjYzNiwzMzU2MzM0ODcsMTY2MTM2NTQ2NSw0MTk1MzAyNzU1LDIzNjYxMTUzMTcsOTk3MDczMDk2LDEyODE5NTM4ODYsMzU3OTg1NTMzMiwyNzI0Njg4MjQyLDEwMDY4ODgxNDUsMTI1ODYwNzY4NywzNTI0MTAxNjI5LDI3Njg5NDI0NDMsOTAxMDk3NzIyLDExMTkwMDA2ODQsMzY4NjUxNzIwNiwyODk4MDY1NzI4LDg1MzA0NDQ1MSwxMTcyMjY2MTAxLDM3MDUwMTU3NTksMjg4MjYxNjY2NSw2NTE3Njc5ODAsMTM3MzUwMzU0NiwzMzY5NTU0MzA0LDMyMTgxMDQ1OTgsNTY1NTA3MjUzLDE0NTQ2MjE3MzEsMzQ4NTExMTcwNSwzMDk5NDM2MzAzLDY3MTI2Njk3NCwxNTk0MTk4MDI0LDMzMjI3MzA5MzAsMjk3MDM0NzgxMiw3OTU4MzU1MjcsMTQ4MzIzMDIyNSwzMjQ0MzY3Mjc1LDMwNjAxNDk1NjUsMTk5NDE0NjE5MiwzMTE1ODUzNCwyNTYzOTA3NzcyLDQwMjM3MTc5MzAsMTkwNzQ1OTQ2NSwxMTI2MzcyMTUsMjY4MDE1MzI1MywzOTA0NDI3MDU5LDIwMTM3NzYyOTAsMjUxNzIyMDM2LDI1MTcyMTUzNzQsMzc3NTgzMDA0MCwyMTM3NjU2NzYzLDE0MTM3NjgxMywyNDM5Mjc3NzE5LDM4NjUyNzEyOTcsMTgwMjE5NTQ0NCw0NzY4NjQ4NjYsMjIzODAwMTM2OCw0MDY2NTA4ODc4LDE4MTIzNzA5MjUsNDUzMDkyNzMxLDIxODE2MjUwMjUsNDExMTQ1MTIyMywxNzA2MDg4OTAyLDMxNDA0MjcwNCwyMzQ0NTMyMjAyLDQyNDAwMTc1MzIsMTY1ODY1ODI3MSwzNjY2MTk5NzcsMjM2MjY3MDMyMyw0MjI0OTk0NDA1LDEzMDM1MzU5NjAsOTg0OTYxNDg2LDI3NDcwMDcwOTIsMzU2OTAzNzUzOCwxMjU2MTcwODE3LDEwMzc2MDQzMTEsMjc2NTIxMDczMywzNTU0MDc5OTk1LDExMzEwMTQ1MDYsODc5Njc5OTk2LDI5MDkyNDM0NjIsMzY2Mzc3MTg1NiwxMTQxMTI0NDY3LDg1NTg0MjI3NywyODUyODAxNjMxLDM3MDg2NDg2NDksMTM0MjUzMzk0OCw2NTQ0NTkzMDYsMzE4ODM5NjA0OCwzMzczMDE1MTc0LDE0NjY0Nzk5MDksNTQ0MTc5NjM1LDMxMTA1MjM5MTMsMzQ2MjUyMjAxNSwxNTkxNjcxMDU0LDcwMjEzODc3NiwyOTY2NDYwNDUwLDMzNTI3OTk0MTIsMTUwNDkxODgwNyw3ODM1NTE4NzMsMzA4MjY0MDQ0MywzMjMzNDQyOTg5LDM5ODgyOTIzODQsMjU5NjI1NDY0Niw2MjMxNzA2OCwxOTU3ODEwODQyLDM5Mzk4NDU5NDUsMjY0NzgxNjExMSw4MTQ3MDk5NywxOTQzODAzNTIzLDM4MTQ5MTg5MzAsMjQ4OTU5NjgwNCwyMjUyNzQ0MzAsMjA1Mzc5MDM3NiwzODI2MTc1NzU1LDI0NjY5MDYwMTMsMTY3ODE2NzQzLDIwOTc2NTEzNzcsNDAyNzU1MjU4MCwyMjY1NDkwMzg2LDUwMzQ0NDA3MiwxNzYyMDUwODE0LDQxNTA0MTcyNDUsMjE1NDEyOTM1NSw0MjY1MjIyMjUsMTg1MjUwNzg3OSw0Mjc1MzEzNTI2LDIzMTIzMTc5MjAsMjgyNzUzNjI2LDE3NDI1NTU4NTIsNDE4OTcwODE0MywyMzk0ODc3OTQ1LDM5NzkxNzc2MywxNjIyMTgzNjM3LDM2MDQzOTA4ODgsMjcxNDg2NjU1OCw5NTM3Mjk3MzIsMTM0MDA3NjYyNiwzNTE4NzE5OTg1LDI3OTczNjA5OTksMTA2ODgyODM4MSwxMjE5NjM4ODU5LDM2MjQ3NDE4NTAsMjkzNjY3NTE0OCw5MDYxODU0NjIsMTA5MDgxMjUxMiwzNzQ3NjcyMDAzLDI4MjUzNzk2NjksODI5MzI5MTM1LDExODEzMzUxNjEsMzQxMjE3NzgwNCwzMTYwODM0ODQyLDYyODA4NTQwOCwxMzgyNjA1MzY2LDM0MjMzNjkxMDksMzEzODA3ODQ2Nyw1NzA1NjIyMzMsMTQyNjQwMDgxNSwzMzE3MzE2NTQyLDI5OTg3MzM2MDgsNzMzMjM5OTU0LDE1NTUyNjE5NTYsMzI2ODkzNTU5MSwzMDUwMzYwNjI1LDc1MjQ1OTQwMywxNTQxMzIwMjIxLDI2MDcwNzE5MjAsMzk2NTk3MzAzMCwxOTY5OTIyOTcyLDQwNzM1NDk4LDI2MTc4MzcyMjUsMzk0MzU3NzE1MSwxOTEzMDg3ODc3LDgzOTA4MzcxLDI1MTIzNDE2MzQsMzgwMzc0MDY5MiwyMDc1MjA4NjIyLDIxMzI2MTExMiwyNDYzMjcyNjAzLDM4NTU5OTAyODUsMjA5NDg1NDA3MSwxOTg5NTg4ODEsMjI2MjAyOTAxMiw0MDU3MjYwNjEwLDE3NTkzNTk5OTIsNTM0NDE0MTkwLDIxNzY3MTg1NDEsNDEzOTMyOTExNSwxODczODM2MDAxLDQxNDY2NDU2NywyMjgyMjQ4OTM0LDQyNzkyMDAzNjgsMTcxMTY4NDU1NCwyODUyODExMTYsMjQwNTgwMTcyNyw0MTY3MjE2NzQ1LDE2MzQ0Njc3OTUsMzc2MjI5NzAxLDI2ODUwNjc4OTYsMzYwODAwNzQwNiwxMzA4OTE4NjEyLDk1NjU0MzkzOCwyODA4NTU1MTA1LDM0OTU5NTgyNjMsMTIzMTYzNjMwMSwxMDQ3NDI3MDM1LDI5MzI5NTk4MTgsMzY1NDcwMzgzNiwxMDg4MzU5MjcwLDkzNjkxOGUzLDI4NDc3MTQ4OTksMzczNjgzNzgyOSwxMjAyOTAwODYzLDgxNzIzMzg5NywzMTgzMzQyMTA4LDM0MDEyMzcxMzAsMTQwNDI3NzU1Miw2MTU4MTgxNTAsMzEzNDIwNzQ5MywzNDUzNDIxMjAzLDE0MjM4NTc0NDksNjAxNDUwNDMxLDMwMDk4Mzc2MTQsMzI5NDcxMDQ1NiwxNTY3MTAzNzQ2LDcxMTkyODcyNCwzMDIwNjY4NDcxLDMyNzIzODAwNjUsMTUxMDMzNDIzNSw3NTUxNjcxMTddO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8IWEubGVuZ3RoKXJldHVybiAwO3ZhciBlPSJzdHJpbmciIT09Yy5nZXRUeXBlT2YoYSk7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0wKTt2YXIgZj0wLGc9MCxoPTA7Yj0tMV5iO2Zvcih2YXIgaT0wLGo9YS5sZW5ndGg7aj5pO2krKyloPWU/YVtpXTphLmNoYXJDb2RlQXQoaSksZz0yNTUmKGJeaCksZj1kW2ddLGI9Yj4+PjheZjtyZXR1cm4tMV5ifX0seyIuL3V0aWxzIjoyMX1dLDU6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3V0aWxzIik7Yy5wcm90b3R5cGU9e2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleCh0aGlzLmluZGV4K2EpfSxjaGVja0luZGV4OmZ1bmN0aW9uKGEpe2lmKHRoaXMubGVuZ3RoPGF8fDA+YSl0aHJvdyBuZXcgRXJyb3IoIkVuZCBvZiBkYXRhIHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gIit0aGlzLmxlbmd0aCsiLCBhc2tlZCBpbmRleCA9ICIrYSsiKS4gQ29ycnVwdGVkIHppcCA/Iil9LHNldEluZGV4OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleChhKSx0aGlzLmluZGV4PWF9LHNraXA6ZnVuY3Rpb24oYSl7dGhpcy5zZXRJbmRleCh0aGlzLmluZGV4K2EpfSxieXRlQXQ6ZnVuY3Rpb24oKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0wO2Zvcih0aGlzLmNoZWNrT2Zmc2V0KGEpLGI9dGhpcy5pbmRleCthLTE7Yj49dGhpcy5pbmRleDtiLS0pYz0oYzw8OCkrdGhpcy5ieXRlQXQoYik7cmV0dXJuIHRoaXMuaW5kZXgrPWEsY30scmVhZFN0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKGEpKX0scmVhZERhdGE6ZnVuY3Rpb24oKXt9LGxhc3RJbmRleE9mU2lnbmF0dXJlOmZ1bmN0aW9uKCl7fSxyZWFkRGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoKGE+PjI1JjEyNykrMTk4MCwoYT4+MjEmMTUpLTEsYT4+MTYmMzEsYT4+MTEmMzEsYT4+NSY2MywoMzEmYSk8PDEpfX0sYi5leHBvcnRzPWN9LHsiLi91dGlscyI6MjF9XSw2OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuYmFzZTY0PSExLGMuYmluYXJ5PSExLGMuZGlyPSExLGMuY3JlYXRlRm9sZGVycz0hMSxjLmRhdGU9bnVsbCxjLmNvbXByZXNzaW9uPW51bGwsYy5jb21tZW50PW51bGx9LHt9XSw3OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO3ZhciBkPWEoIi4vdXRpbHMiKTtjLnN0cmluZzJiaW5hcnk9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuc3RyaW5nMmJpbmFyeShhKX0sYy5zdHJpbmcyVWludDhBcnJheT1mdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYSl9LGMudWludDhBcnJheTJTdHJpbmc9ZnVuY3Rpb24oYSl7cmV0dXJuIGQudHJhbnNmb3JtVG8oInN0cmluZyIsYSl9LGMuc3RyaW5nMkJsb2I9ZnVuY3Rpb24oYSl7dmFyIGI9ZC50cmFuc2Zvcm1UbygiYXJyYXlidWZmZXIiLGEpO3JldHVybiBkLmFycmF5QnVmZmVyMkJsb2IoYil9LGMuYXJyYXlCdWZmZXIyQmxvYj1mdW5jdGlvbihhKXtyZXR1cm4gZC5hcnJheUJ1ZmZlcjJCbG9iKGEpfSxjLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGQudHJhbnNmb3JtVG8oYSxiKX0sYy5nZXRUeXBlT2Y9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZ2V0VHlwZU9mKGEpfSxjLmNoZWNrU3VwcG9ydD1mdW5jdGlvbihhKXtyZXR1cm4gZC5jaGVja1N1cHBvcnQoYSl9LGMuTUFYX1ZBTFVFXzE2QklUUz1kLk1BWF9WQUxVRV8xNkJJVFMsYy5NQVhfVkFMVUVfMzJCSVRTPWQuTUFYX1ZBTFVFXzMyQklUUyxjLnByZXR0eT1mdW5jdGlvbihhKXtyZXR1cm4gZC5wcmV0dHkoYSl9LGMuZmluZENvbXByZXNzaW9uPWZ1bmN0aW9uKGEpe3JldHVybiBkLmZpbmRDb21wcmVzc2lvbihhKX0sYy5pc1JlZ0V4cD1mdW5jdGlvbihhKXtyZXR1cm4gZC5pc1JlZ0V4cChhKX19LHsiLi91dGlscyI6MjF9XSw4OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO3ZhciBkPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50MTZBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50MzJBcnJheSxlPWEoInBha28iKTtjLnVuY29tcHJlc3NJbnB1dFR5cGU9ZD8idWludDhhcnJheSI6ImFycmF5IixjLmNvbXByZXNzSW5wdXRUeXBlPWQ/InVpbnQ4YXJyYXkiOiJhcnJheSIsYy5tYWdpYz0iXGJceDAwIixjLmNvbXByZXNzPWZ1bmN0aW9uKGEpe3JldHVybiBlLmRlZmxhdGVSYXcoYSl9LGMudW5jb21wcmVzcz1mdW5jdGlvbihhKXtyZXR1cm4gZS5pbmZsYXRlUmF3KGEpfX0se3Bha286MjR9XSw5OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBjPyh0aGlzLmZpbGVzPXt9LHRoaXMuY29tbWVudD1udWxsLHRoaXMucm9vdD0iIixhJiZ0aGlzLmxvYWQoYSxiKSx2b2lkKHRoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgYztmb3IodmFyIGIgaW4gdGhpcykiZnVuY3Rpb24iIT10eXBlb2YgdGhpc1tiXSYmKGFbYl09dGhpc1tiXSk7cmV0dXJuIGF9KSk6bmV3IGMoYSxiKX12YXIgZD1hKCIuL2Jhc2U2NCIpO2MucHJvdG90eXBlPWEoIi4vb2JqZWN0IiksYy5wcm90b3R5cGUubG9hZD1hKCIuL2xvYWQiKSxjLnN1cHBvcnQ9YSgiLi9zdXBwb3J0IiksYy5kZWZhdWx0cz1hKCIuL2RlZmF1bHRzIiksYy51dGlscz1hKCIuL2RlcHJlY2F0ZWRQdWJsaWNVdGlscyIpLGMuYmFzZTY0PXtlbmNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZW5jb2RlKGEpfSxkZWNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZGVjb2RlKGEpfX0sYy5jb21wcmVzc2lvbnM9YSgiLi9jb21wcmVzc2lvbnMiKSxiLmV4cG9ydHM9Y30seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2lvbnMiOjMsIi4vZGVmYXVsdHMiOjYsIi4vZGVwcmVjYXRlZFB1YmxpY1V0aWxzIjo3LCIuL2xvYWQiOjEwLCIuL29iamVjdCI6MTMsIi4vc3VwcG9ydCI6MTd9XSwxMDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9iYXNlNjQiKSxkPWEoIi4vemlwRW50cmllcyIpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe3ZhciBlLGYsZyxoO2ZvcihiPWJ8fHt9LGIuYmFzZTY0JiYoYT1jLmRlY29kZShhKSksZj1uZXcgZChhLGIpLGU9Zi5maWxlcyxnPTA7ZzxlLmxlbmd0aDtnKyspaD1lW2ddLHRoaXMuZmlsZShoLmZpbGVOYW1lLGguZGVjb21wcmVzc2VkLHtiaW5hcnk6ITAsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiEwLGRhdGU6aC5kYXRlLGRpcjpoLmRpcixjb21tZW50OmguZmlsZUNvbW1lbnQubGVuZ3RoP2guZmlsZUNvbW1lbnQ6bnVsbCxjcmVhdGVGb2xkZXJzOmIuY3JlYXRlRm9sZGVyc30pO3JldHVybiBmLnppcENvbW1lbnQubGVuZ3RoJiYodGhpcy5jb21tZW50PWYuemlwQ29tbWVudCksdGhpc319LHsiLi9iYXNlNjQiOjEsIi4vemlwRW50cmllcyI6MjJ9XSwxMTpbZnVuY3Rpb24oYSxiKXsoZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2IuZXhwb3J0cz1mdW5jdGlvbihiLGMpe3JldHVybiBuZXcgYShiLGMpfSxiLmV4cG9ydHMudGVzdD1mdW5jdGlvbihiKXtyZXR1cm4gYS5pc0J1ZmZlcihiKX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXI/QnVmZmVyOnZvaWQgMCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhKXt0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKTtjLnByb3RvdHlwZT1uZXcgZCxjLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNoZWNrT2Zmc2V0KGEpO3ZhciBiPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi91aW50OEFycmF5UmVhZGVyIjoxOH1dLDEzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3N1cHBvcnQiKSxkPWEoIi4vdXRpbHMiKSxlPWEoIi4vY3JjMzIiKSxmPWEoIi4vc2lnbmF0dXJlIiksZz1hKCIuL2RlZmF1bHRzIiksaD1hKCIuL2Jhc2U2NCIpLGk9YSgiLi9jb21wcmVzc2lvbnMiKSxqPWEoIi4vY29tcHJlc3NlZE9iamVjdCIpLGs9YSgiLi9ub2RlQnVmZmVyIiksbD1hKCIuL3V0ZjgiKSxtPWEoIi4vc3RyaW5nV3JpdGVyIiksbj1hKCIuL3VpbnQ4QXJyYXlXcml0ZXIiKSxvPWZ1bmN0aW9uKGEpe2lmKGEuX2RhdGEgaW5zdGFuY2VvZiBqJiYoYS5fZGF0YT1hLl9kYXRhLmdldENvbnRlbnQoKSxhLm9wdGlvbnMuYmluYXJ5PSEwLGEub3B0aW9ucy5iYXNlNjQ9ITEsInVpbnQ4YXJyYXkiPT09ZC5nZXRUeXBlT2YoYS5fZGF0YSkpKXt2YXIgYj1hLl9kYXRhO2EuX2RhdGE9bmV3IFVpbnQ4QXJyYXkoYi5sZW5ndGgpLDAhPT1iLmxlbmd0aCYmYS5fZGF0YS5zZXQoYiwwKX1yZXR1cm4gYS5fZGF0YX0scD1mdW5jdGlvbihhKXt2YXIgYj1vKGEpLGU9ZC5nZXRUeXBlT2YoYik7cmV0dXJuInN0cmluZyI9PT1lPyFhLm9wdGlvbnMuYmluYXJ5JiZjLm5vZGVidWZmZXI/ayhiLCJ1dGYtOCIpOmEuYXNCaW5hcnkoKTpifSxxPWZ1bmN0aW9uKGEpe3ZhciBiPW8odGhpcyk7cmV0dXJuIG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGI/IiI6KHRoaXMub3B0aW9ucy5iYXNlNjQmJihiPWguZGVjb2RlKGIpKSxiPWEmJnRoaXMub3B0aW9ucy5iaW5hcnk/QS51dGY4ZGVjb2RlKGIpOmQudHJhbnNmb3JtVG8oInN0cmluZyIsYiksYXx8dGhpcy5vcHRpb25zLmJpbmFyeXx8KGI9ZC50cmFuc2Zvcm1Ubygic3RyaW5nIixBLnV0ZjhlbmNvZGUoYikpKSxiKX0scj1mdW5jdGlvbihhLGIsYyl7dGhpcy5uYW1lPWEsdGhpcy5kaXI9Yy5kaXIsdGhpcy5kYXRlPWMuZGF0ZSx0aGlzLmNvbW1lbnQ9Yy5jb21tZW50LHRoaXMuX2RhdGE9Yix0aGlzLm9wdGlvbnM9Yyx0aGlzLl9pbml0aWFsTWV0YWRhdGE9e2RpcjpjLmRpcixkYXRlOmMuZGF0ZX19O3IucHJvdG90eXBlPXthc1RleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gcS5jYWxsKHRoaXMsITApfSxhc0JpbmFyeTpmdW5jdGlvbigpe3JldHVybiBxLmNhbGwodGhpcywhMSl9LGFzTm9kZUJ1ZmZlcjpmdW5jdGlvbigpe3ZhciBhPXAodGhpcyk7cmV0dXJuIGQudHJhbnNmb3JtVG8oIm5vZGVidWZmZXIiLGEpfSxhc1VpbnQ4QXJyYXk6ZnVuY3Rpb24oKXt2YXIgYT1wKHRoaXMpO3JldHVybiBkLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKX0sYXNBcnJheUJ1ZmZlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFzVWludDhBcnJheSgpLmJ1ZmZlcn19O3ZhciBzPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0iIjtmb3IoYz0wO2I+YztjKyspZCs9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmYSksYT4+Pj04O3JldHVybiBkfSx0PWZ1bmN0aW9uKCl7dmFyIGEsYixjPXt9O2ZvcihhPTA7YTxhcmd1bWVudHMubGVuZ3RoO2ErKylmb3IoYiBpbiBhcmd1bWVudHNbYV0pYXJndW1lbnRzW2FdLmhhc093blByb3BlcnR5KGIpJiYidW5kZWZpbmVkIj09dHlwZW9mIGNbYl0mJihjW2JdPWFyZ3VtZW50c1thXVtiXSk7cmV0dXJuIGN9LHU9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9YXx8e30sYS5iYXNlNjQhPT0hMHx8bnVsbCE9PWEuYmluYXJ5JiZ2b2lkIDAhPT1hLmJpbmFyeXx8KGEuYmluYXJ5PSEwKSxhPXQoYSxnKSxhLmRhdGU9YS5kYXRlfHxuZXcgRGF0ZSxudWxsIT09YS5jb21wcmVzc2lvbiYmKGEuY29tcHJlc3Npb249YS5jb21wcmVzc2lvbi50b1VwcGVyQ2FzZSgpKSxhfSx2PWZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmPWQuZ2V0VHlwZU9mKGIpO2lmKGM9dShjKSxjLmNyZWF0ZUZvbGRlcnMmJihlPXcoYSkpJiZ4LmNhbGwodGhpcyxlLCEwKSxjLmRpcnx8bnVsbD09PWJ8fCJ1bmRlZmluZWQiPT10eXBlb2YgYiljLmJhc2U2ND0hMSxjLmJpbmFyeT0hMSxiPW51bGw7ZWxzZSBpZigic3RyaW5nIj09PWYpYy5iaW5hcnkmJiFjLmJhc2U2NCYmYy5vcHRpbWl6ZWRCaW5hcnlTdHJpbmchPT0hMCYmKGI9ZC5zdHJpbmcyYmluYXJ5KGIpKTtlbHNle2lmKGMuYmFzZTY0PSExLGMuYmluYXJ5PSEwLCEoZnx8YiBpbnN0YW5jZW9mIGopKXRocm93IG5ldyBFcnJvcigiVGhlIGRhdGEgb2YgJyIrYSsiJyBpcyBpbiBhbiB1bnN1cHBvcnRlZCBmb3JtYXQgISIpOyJhcnJheWJ1ZmZlciI9PT1mJiYoYj1kLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixiKSl9dmFyIGc9bmV3IHIoYSxiLGMpO3JldHVybiB0aGlzLmZpbGVzW2FdPWcsZ30sdz1mdW5jdGlvbihhKXsiLyI9PWEuc2xpY2UoLTEpJiYoYT1hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEpKTt2YXIgYj1hLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIGI+MD9hLnN1YnN0cmluZygwLGIpOiIifSx4PWZ1bmN0aW9uKGEsYil7cmV0dXJuIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYj0idW5kZWZpbmVkIiE9dHlwZW9mIGI/YjohMSx0aGlzLmZpbGVzW2FdfHx2LmNhbGwodGhpcyxhLG51bGwse2RpcjohMCxjcmVhdGVGb2xkZXJzOmJ9KSx0aGlzLmZpbGVzW2FdfSx5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZj1uZXcgajtyZXR1cm4gYS5fZGF0YSBpbnN0YW5jZW9mIGo/KGYudW5jb21wcmVzc2VkU2l6ZT1hLl9kYXRhLnVuY29tcHJlc3NlZFNpemUsZi5jcmMzMj1hLl9kYXRhLmNyYzMyLDA9PT1mLnVuY29tcHJlc3NlZFNpemV8fGEuZGlyPyhiPWkuU1RPUkUsZi5jb21wcmVzc2VkQ29udGVudD0iIixmLmNyYzMyPTApOmEuX2RhdGEuY29tcHJlc3Npb25NZXRob2Q9PT1iLm1hZ2ljP2YuY29tcHJlc3NlZENvbnRlbnQ9YS5fZGF0YS5nZXRDb21wcmVzc2VkQ29udGVudCgpOihjPWEuX2RhdGEuZ2V0Q29udGVudCgpLGYuY29tcHJlc3NlZENvbnRlbnQ9Yi5jb21wcmVzcyhkLnRyYW5zZm9ybVRvKGIuY29tcHJlc3NJbnB1dFR5cGUsYykpKSk6KGM9cChhKSwoIWN8fDA9PT1jLmxlbmd0aHx8YS5kaXIpJiYoYj1pLlNUT1JFLGM9IiIpLGYudW5jb21wcmVzc2VkU2l6ZT1jLmxlbmd0aCxmLmNyYzMyPWUoYyksZi5jb21wcmVzc2VkQ29udGVudD1iLmNvbXByZXNzKGQudHJhbnNmb3JtVG8oYi5jb21wcmVzc0lucHV0VHlwZSxjKSkpLGYuY29tcHJlc3NlZFNpemU9Zi5jb21wcmVzc2VkQ29udGVudC5sZW5ndGgsZi5jb21wcmVzc2lvbk1ldGhvZD1iLm1hZ2ljLGZ9LHo9ZnVuY3Rpb24oYSxiLGMsZyl7dmFyIGgsaSxqLGssbT0oYy5jb21wcmVzc2VkQ29udGVudCxkLnRyYW5zZm9ybVRvKCJzdHJpbmciLGwudXRmOGVuY29kZShiLm5hbWUpKSksbj1iLmNvbW1lbnR8fCIiLG89ZC50cmFuc2Zvcm1Ubygic3RyaW5nIixsLnV0ZjhlbmNvZGUobikpLHA9bS5sZW5ndGghPT1iLm5hbWUubGVuZ3RoLHE9by5sZW5ndGghPT1uLmxlbmd0aCxyPWIub3B0aW9ucyx0PSIiLHU9IiIsdj0iIjtqPWIuX2luaXRpYWxNZXRhZGF0YS5kaXIhPT1iLmRpcj9iLmRpcjpyLmRpcixrPWIuX2luaXRpYWxNZXRhZGF0YS5kYXRlIT09Yi5kYXRlP2IuZGF0ZTpyLmRhdGUsaD1rLmdldEhvdXJzKCksaDw8PTYsaHw9ay5nZXRNaW51dGVzKCksaDw8PTUsaHw9ay5nZXRTZWNvbmRzKCkvMixpPWsuZ2V0RnVsbFllYXIoKS0xOTgwLGk8PD00LGl8PWsuZ2V0TW9udGgoKSsxLGk8PD01LGl8PWsuZ2V0RGF0ZSgpLHAmJih1PXMoMSwxKStzKGUobSksNCkrbSx0Kz0idXAiK3ModS5sZW5ndGgsMikrdSkscSYmKHY9cygxLDEpK3ModGhpcy5jcmMzMihvKSw0KStvLHQrPSJ1YyIrcyh2Lmxlbmd0aCwyKSt2KTt2YXIgdz0iIjt3Kz0iXG5ceDAwIix3Kz1wfHxxPyJceDAwXGIiOiJceDAwXHgwMCIsdys9Yy5jb21wcmVzc2lvbk1ldGhvZCx3Kz1zKGgsMiksdys9cyhpLDIpLHcrPXMoYy5jcmMzMiw0KSx3Kz1zKGMuY29tcHJlc3NlZFNpemUsNCksdys9cyhjLnVuY29tcHJlc3NlZFNpemUsNCksdys9cyhtLmxlbmd0aCwyKSx3Kz1zKHQubGVuZ3RoLDIpO3ZhciB4PWYuTE9DQUxfRklMRV9IRUFERVIrdyttK3QseT1mLkNFTlRSQUxfRklMRV9IRUFERVIrIhRceDAwIit3K3Moby5sZW5ndGgsMikrIlx4MDBceDAwXHgwMFx4MDAiKyhqPT09ITA/IhBceDAwXHgwMFx4MDAiOiJceDAwXHgwMFx4MDBceDAwIikrcyhnLDQpK20rdCtvO3JldHVybntmaWxlUmVjb3JkOngsZGlyUmVjb3JkOnksY29tcHJlc3NlZE9iamVjdDpjfX0sQT17bG9hZDpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTG9hZCBtZXRob2QgaXMgbm90IGRlZmluZWQuIElzIHRoZSBmaWxlIGpzemlwLWxvYWQuanMgaW5jbHVkZWQgPyIpfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZj1bXTtmb3IoYiBpbiB0aGlzLmZpbGVzKXRoaXMuZmlsZXMuaGFzT3duUHJvcGVydHkoYikmJihkPXRoaXMuZmlsZXNbYl0sZT1uZXcgcihkLm5hbWUsZC5fZGF0YSx0KGQub3B0aW9ucykpLGM9Yi5zbGljZSh0aGlzLnJvb3QubGVuZ3RoLGIubGVuZ3RoKSxiLnNsaWNlKDAsdGhpcy5yb290Lmxlbmd0aCk9PT10aGlzLnJvb3QmJmEoYyxlKSYmZi5wdXNoKGUpKTtyZXR1cm4gZn0sZmlsZTpmdW5jdGlvbihhLGIsYyl7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2lmKGQuaXNSZWdFeHAoYSkpe3ZhciBlPWE7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGEsYil7cmV0dXJuIWIuZGlyJiZlLnRlc3QoYSl9KX1yZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4hYy5kaXImJmI9PT1hfSlbMF18fG51bGx9cmV0dXJuIGE9dGhpcy5yb290K2Esdi5jYWxsKHRoaXMsYSxiLGMpLHRoaXN9LGZvbGRlcjpmdW5jdGlvbihhKXtpZighYSlyZXR1cm4gdGhpcztpZihkLmlzUmVnRXhwKGEpKXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihiLGMpe3JldHVybiBjLmRpciYmYS50ZXN0KGIpfSk7dmFyIGI9dGhpcy5yb290K2EsYz14LmNhbGwodGhpcyxiKSxlPXRoaXMuY2xvbmUoKTtyZXR1cm4gZS5yb290PWMubmFtZSxlfSxyZW1vdmU6ZnVuY3Rpb24oYSl7YT10aGlzLnJvb3QrYTt2YXIgYj10aGlzLmZpbGVzW2FdO2lmKGJ8fCgiLyIhPWEuc2xpY2UoLTEpJiYoYSs9Ii8iKSxiPXRoaXMuZmlsZXNbYV0pLGImJiFiLmRpcilkZWxldGUgdGhpcy5maWxlc1thXTtlbHNlIGZvcih2YXIgYz10aGlzLmZpbHRlcihmdW5jdGlvbihiLGMpe3JldHVybiBjLm5hbWUuc2xpY2UoMCxhLmxlbmd0aCk9PT1hfSksZD0wO2Q8Yy5sZW5ndGg7ZCsrKWRlbGV0ZSB0aGlzLmZpbGVzW2NbZF0ubmFtZV07cmV0dXJuIHRoaXN9LGdlbmVyYXRlOmZ1bmN0aW9uKGEpe2E9dChhfHx7fSx7YmFzZTY0OiEwLGNvbXByZXNzaW9uOiJTVE9SRSIsdHlwZToiYmFzZTY0Iixjb21tZW50Om51bGx9KSxkLmNoZWNrU3VwcG9ydChhLnR5cGUpO3ZhciBiLGMsZT1bXSxnPTAsaj0wLGs9ZC50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnV0ZjhlbmNvZGUoYS5jb21tZW50fHx0aGlzLmNvbW1lbnR8fCIiKSk7Zm9yKHZhciBsIGluIHRoaXMuZmlsZXMpaWYodGhpcy5maWxlcy5oYXNPd25Qcm9wZXJ0eShsKSl7dmFyIG89dGhpcy5maWxlc1tsXSxwPW8ub3B0aW9ucy5jb21wcmVzc2lvbnx8YS5jb21wcmVzc2lvbi50b1VwcGVyQ2FzZSgpLHE9aVtwXTtpZighcSl0aHJvdyBuZXcgRXJyb3IocCsiIGlzIG5vdCBhIHZhbGlkIGNvbXByZXNzaW9uIG1ldGhvZCAhIik7dmFyIHI9eS5jYWxsKHRoaXMsbyxxKSx1PXouY2FsbCh0aGlzLGwsbyxyLGcpO2crPXUuZmlsZVJlY29yZC5sZW5ndGgrci5jb21wcmVzc2VkU2l6ZSxqKz11LmRpclJlY29yZC5sZW5ndGgsZS5wdXNoKHUpfXZhciB2PSIiO3Y9Zi5DRU5UUkFMX0RJUkVDVE9SWV9FTkQrIlx4MDBceDAwXHgwMFx4MDAiK3MoZS5sZW5ndGgsMikrcyhlLmxlbmd0aCwyKStzKGosNCkrcyhnLDQpK3Moay5sZW5ndGgsMikrazt2YXIgdz1hLnR5cGUudG9Mb3dlckNhc2UoKTtmb3IoYj0idWludDhhcnJheSI9PT13fHwiYXJyYXlidWZmZXIiPT09d3x8ImJsb2IiPT09d3x8Im5vZGVidWZmZXIiPT09dz9uZXcgbihnK2ordi5sZW5ndGgpOm5ldyBtKGcrait2Lmxlbmd0aCksYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZmlsZVJlY29yZCksYi5hcHBlbmQoZVtjXS5jb21wcmVzc2VkT2JqZWN0LmNvbXByZXNzZWRDb250ZW50KTtmb3IoYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZGlyUmVjb3JkKTtiLmFwcGVuZCh2KTt2YXIgeD1iLmZpbmFsaXplKCk7c3dpdGNoKGEudHlwZS50b0xvd2VyQ2FzZSgpKXtjYXNlInVpbnQ4YXJyYXkiOmNhc2UiYXJyYXlidWZmZXIiOmNhc2Uibm9kZWJ1ZmZlciI6cmV0dXJuIGQudHJhbnNmb3JtVG8oYS50eXBlLnRvTG93ZXJDYXNlKCkseCk7Y2FzZSJibG9iIjpyZXR1cm4gZC5hcnJheUJ1ZmZlcjJCbG9iKGQudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIix4KSk7Y2FzZSJiYXNlNjQiOnJldHVybiBhLmJhc2U2ND9oLmVuY29kZSh4KTp4O2RlZmF1bHQ6cmV0dXJuIHh9fSxjcmMzMjpmdW5jdGlvbihhLGIpe3JldHVybiBlKGEsYil9LHV0ZjhlbmNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQudHJhbnNmb3JtVG8oInN0cmluZyIsbC51dGY4ZW5jb2RlKGEpKX0sdXRmOGRlY29kZTpmdW5jdGlvbihhKXtyZXR1cm4gbC51dGY4ZGVjb2RlKGEpfX07Yi5leHBvcnRzPUF9LHsiLi9iYXNlNjQiOjEsIi4vY29tcHJlc3NlZE9iamVjdCI6MiwiLi9jb21wcmVzc2lvbnMiOjMsIi4vY3JjMzIiOjQsIi4vZGVmYXVsdHMiOjYsIi4vbm9kZUJ1ZmZlciI6MTEsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdXcml0ZXIiOjE2LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlXcml0ZXIiOjE5LCIuL3V0ZjgiOjIwLCIuL3V0aWxzIjoyMX1dLDE0OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuTE9DQUxfRklMRV9IRUFERVI9IlBLAwQiLGMuQ0VOVFJBTF9GSUxFX0hFQURFUj0iUEsBAiIsYy5DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9IlBLBQYiLGMuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUj0iUEsGByIsYy5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9IlBLBgYiLGMuREFUQV9ERVNDUklQVE9SPSJQSwdcYiJ9LHt9XSwxNTpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMuZGF0YT1hLGJ8fCh0aGlzLmRhdGE9ZS5zdHJpbmcyYmluYXJ5KHRoaXMuZGF0YSkpLHRoaXMubGVuZ3RoPXRoaXMuZGF0YS5sZW5ndGgsdGhpcy5pbmRleD0wfXZhciBkPWEoIi4vZGF0YVJlYWRlciIpLGU9YSgiLi91dGlscyIpO2MucHJvdG90eXBlPW5ldyBkLGMucHJvdG90eXBlLmJ5dGVBdD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kYXRhLmNoYXJDb2RlQXQoYSl9LGMucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGEubGFzdEluZGV4T2YoYSl9LGMucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tPZmZzZXQoYSk7dmFyIGI9dGhpcy5kYXRhLnNsaWNlKHRoaXMuaW5kZXgsdGhpcy5pbmRleCthKTtyZXR1cm4gdGhpcy5pbmRleCs9YSxifSxiLmV4cG9ydHM9Y30seyIuL2RhdGFSZWFkZXIiOjUsIi4vdXRpbHMiOjIxfV0sMTY6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPWEoIi4vdXRpbHMiKSxkPWZ1bmN0aW9uKCl7dGhpcy5kYXRhPVtdfTtkLnByb3RvdHlwZT17YXBwZW5kOmZ1bmN0aW9uKGEpe2E9Yy50cmFuc2Zvcm1Ubygic3RyaW5nIixhKSx0aGlzLmRhdGEucHVzaChhKX0sZmluYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLmpvaW4oIiIpfX0sYi5leHBvcnRzPWR9LHsiLi91dGlscyI6MjF9XSwxNzpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7aWYoYy5iYXNlNjQ9ITAsYy5hcnJheT0hMCxjLnN0cmluZz0hMCxjLmFycmF5YnVmZmVyPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSxjLm5vZGVidWZmZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBhLGMudWludDhhcnJheT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXksInVuZGVmaW5lZCI9PXR5cGVvZiBBcnJheUJ1ZmZlciljLmJsb2I9ITE7ZWxzZXt2YXIgYj1uZXcgQXJyYXlCdWZmZXIoMCk7dHJ5e2MuYmxvYj0wPT09bmV3IEJsb2IoW2JdLHt0eXBlOiJhcHBsaWNhdGlvbi96aXAifSkuc2l6ZX1jYXRjaChkKXt0cnl7dmFyIGU9d2luZG93LkJsb2JCdWlsZGVyfHx3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXJ8fHdpbmRvdy5Nb3pCbG9iQnVpbGRlcnx8d2luZG93Lk1TQmxvYkJ1aWxkZXIsZj1uZXcgZTtmLmFwcGVuZChiKSxjLmJsb2I9MD09PWYuZ2V0QmxvYigiYXBwbGljYXRpb24vemlwIikuc2l6ZX1jYXRjaChkKXtjLmJsb2I9ITF9fX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXI/QnVmZmVyOnZvaWQgMCl9LHt9XSwxODpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhKXthJiYodGhpcy5kYXRhPWEsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTApfXZhciBkPWEoIi4vZGF0YVJlYWRlciIpO2MucHJvdG90eXBlPW5ldyBkLGMucHJvdG90eXBlLmJ5dGVBdD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kYXRhW2FdfSxjLnByb3RvdHlwZS5sYXN0SW5kZXhPZlNpZ25hdHVyZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9YS5jaGFyQ29kZUF0KDApLGM9YS5jaGFyQ29kZUF0KDEpLGQ9YS5jaGFyQ29kZUF0KDIpLGU9YS5jaGFyQ29kZUF0KDMpLGY9dGhpcy5sZW5ndGgtNDtmPj0wOy0tZilpZih0aGlzLmRhdGFbZl09PT1iJiZ0aGlzLmRhdGFbZisxXT09PWMmJnRoaXMuZGF0YVtmKzJdPT09ZCYmdGhpcy5kYXRhW2YrM109PT1lKXJldHVybiBmO3JldHVybi0xfSxjLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXtpZih0aGlzLmNoZWNrT2Zmc2V0KGEpLDA9PT1hKXJldHVybiBuZXcgVWludDhBcnJheSgwKTt2YXIgYj10aGlzLmRhdGEuc3ViYXJyYXkodGhpcy5pbmRleCx0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1hLGJ9LGIuZXhwb3J0cz1jfSx7Ii4vZGF0YVJlYWRlciI6NX1dLDE5OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3V0aWxzIiksZD1mdW5jdGlvbihhKXt0aGlzLmRhdGE9bmV3IFVpbnQ4QXJyYXkoYSksdGhpcy5pbmRleD0wfTtkLnByb3RvdHlwZT17YXBwZW5kOmZ1bmN0aW9uKGEpezAhPT1hLmxlbmd0aCYmKGE9Yy50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYSksdGhpcy5kYXRhLnNldChhLHRoaXMuaW5kZXgpLHRoaXMuaW5kZXgrPWEubGVuZ3RoKX0sZmluYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhfX0sYi5leHBvcnRzPWR9LHsiLi91dGlscyI6MjF9XSwyMDpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIGQ9YSgiLi91dGlscyIpLGU9YSgiLi9zdXBwb3J0IiksZj1hKCIuL25vZGVCdWZmZXIiKSxnPW5ldyBBcnJheSgyNTYpLGg9MDsyNTY+aDtoKyspZ1toXT1oPj0yNTI/NjpoPj0yNDg/NTpoPj0yNDA/NDpoPj0yMjQ/MzpoPj0xOTI/MjoxO2dbMjU0XT1nWzI1NF09MTt2YXIgaT1mdW5jdGlvbihhKXt2YXIgYixjLGQsZixnLGg9YS5sZW5ndGgsaT0wO2ZvcihmPTA7aD5mO2YrKyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmaD5mKzEmJihkPWEuY2hhckNvZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5Njw8MTApKyhkLTU2MzIwKSxmKyspKSxpKz0xMjg+Yz8xOjIwNDg+Yz8yOjY1NTM2PmM/Mzo0O2ZvcihiPWUudWludDhhcnJheT9uZXcgVWludDhBcnJheShpKTpuZXcgQXJyYXkoaSksZz0wLGY9MDtpPmc7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLDEyOD5jP2JbZysrXT1jOjIwNDg+Yz8oYltnKytdPTE5MnxjPj4+NixiW2crK109MTI4fDYzJmMpOjY1NTM2PmM/KGJbZysrXT0yMjR8Yz4+PjEyLGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTooYltnKytdPTI0MHxjPj4+MTgsYltnKytdPTEyOHxjPj4+MTImNjMsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpO3JldHVybiBifSxqPWZ1bmN0aW9uKGEsYil7dmFyIGM7Zm9yKGI9Ynx8YS5sZW5ndGgsYj5hLmxlbmd0aCYmKGI9YS5sZW5ndGgpLGM9Yi0xO2M+PTAmJjEyOD09PSgxOTImYVtjXSk7KWMtLTtyZXR1cm4gMD5jP2I6MD09PWM/YjpjK2dbYVtjXV0+Yj9jOmJ9LGs9ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsaD1hLmxlbmd0aCxpPW5ldyBBcnJheSgyKmgpO2ZvcihjPTAsYj0wO2g+YjspaWYoZT1hW2IrK10sMTI4PmUpaVtjKytdPWU7ZWxzZSBpZihmPWdbZV0sZj40KWlbYysrXT02NTUzMyxiKz1mLTE7ZWxzZXtmb3IoZSY9Mj09PWY/MzE6Mz09PWY/MTU6NztmPjEmJmg+YjspZT1lPDw2fDYzJmFbYisrXSxmLS07Zj4xP2lbYysrXT02NTUzMzo2NTUzNj5lP2lbYysrXT1lOihlLT02NTUzNixpW2MrK109NTUyOTZ8ZT4+MTAmMTAyMyxpW2MrK109NTYzMjB8MTAyMyZlKX1yZXR1cm4gaS5sZW5ndGghPT1jJiYoaS5zdWJhcnJheT9pPWkuc3ViYXJyYXkoMCxjKTppLmxlbmd0aD1jKSxkLmFwcGx5RnJvbUNoYXJDb2RlKGkpfTtjLnV0ZjhlbmNvZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGUubm9kZWJ1ZmZlcj9mKGEsInV0Zi04Iik6aShhKX0sYy51dGY4ZGVjb2RlPWZ1bmN0aW9uKGEpe2lmKGUubm9kZWJ1ZmZlcilyZXR1cm4gZC50cmFuc2Zvcm1Ubygibm9kZWJ1ZmZlciIsYSkudG9TdHJpbmcoInV0Zi04Iik7YT1kLnRyYW5zZm9ybVRvKGUudWludDhhcnJheT8idWludDhhcnJheSI6ImFycmF5IixhKTtmb3IodmFyIGI9W10sYz0wLGY9YS5sZW5ndGgsZz02NTUzNjtmPmM7KXt2YXIgaD1qKGEsTWF0aC5taW4oYytnLGYpKTtiLnB1c2goZS51aW50OGFycmF5P2soYS5zdWJhcnJheShjLGgpKTprKGEuc2xpY2UoYyxoKSkpLGM9aH1yZXR1cm4gYi5qb2luKCIiKX19LHsiLi9ub2RlQnVmZmVyIjoxMSwiLi9zdXBwb3J0IjoxNywiLi91dGlscyI6MjF9XSwyMTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3JldHVybiBhfWZ1bmN0aW9uIGUoYSxiKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoOysrYyliW2NdPTI1NSZhLmNoYXJDb2RlQXQoYyk7cmV0dXJuIGJ9ZnVuY3Rpb24gZihhKXt2YXIgYj02NTUzNixkPVtdLGU9YS5sZW5ndGgsZj1jLmdldFR5cGVPZihhKSxnPTAsaD0hMDt0cnl7c3dpdGNoKGYpe2Nhc2UidWludDhhcnJheSI6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDApKTticmVhaztjYXNlIm5vZGVidWZmZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxqKDApKX19Y2F0Y2goaSl7aD0hMX1pZighaCl7Zm9yKHZhciBrPSIiLGw9MDtsPGEubGVuZ3RoO2wrKylrKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFbbF0pO3JldHVybiBrfWZvcig7ZT5nJiZiPjE7KXRyeXtkLnB1c2goImFycmF5Ij09PWZ8fCJub2RlYnVmZmVyIj09PWY/U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGEuc2xpY2UoZyxNYXRoLm1pbihnK2IsZSkpKTpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zdWJhcnJheShnLE1hdGgubWluKGcrYixlKSkpKSxnKz1ifWNhdGNoKGkpe2I9TWF0aC5mbG9vcihiLzIpfXJldHVybiBkLmpvaW4oIiIpfWZ1bmN0aW9uIGcoYSxiKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyliW2NdPWFbY107cmV0dXJuIGJ9dmFyIGg9YSgiLi9zdXBwb3J0IiksaT1hKCIuL2NvbXByZXNzaW9ucyIpLGo9YSgiLi9ub2RlQnVmZmVyIik7Yy5zdHJpbmcyYmluYXJ5PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iIixjPTA7YzxhLmxlbmd0aDtjKyspYis9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmYS5jaGFyQ29kZUF0KGMpKTtyZXR1cm4gYn0sYy5hcnJheUJ1ZmZlcjJCbG9iPWZ1bmN0aW9uKGEpe2MuY2hlY2tTdXBwb3J0KCJibG9iIik7dHJ5e3JldHVybiBuZXcgQmxvYihbYV0se3R5cGU6ImFwcGxpY2F0aW9uL3ppcCJ9KX1jYXRjaChiKXt0cnl7dmFyIGQ9d2luZG93LkJsb2JCdWlsZGVyfHx3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXJ8fHdpbmRvdy5Nb3pCbG9iQnVpbGRlcnx8d2luZG93Lk1TQmxvYkJ1aWxkZXIsZT1uZXcgZDtyZXR1cm4gZS5hcHBlbmQoYSksZS5nZXRCbG9iKCJhcHBsaWNhdGlvbi96aXAiKX1jYXRjaChiKXt0aHJvdyBuZXcgRXJyb3IoIkJ1ZyA6IGNhbid0IGNvbnN0cnVjdCB0aGUgQmxvYi4iKX19fSxjLmFwcGx5RnJvbUNoYXJDb2RlPWY7dmFyIGs9e307ay5zdHJpbmc9e3N0cmluZzpkLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBlKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrLnN0cmluZy51aW50OGFycmF5KGEpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLG5ldyBVaW50OEFycmF5KGEubGVuZ3RoKSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSxqKGEubGVuZ3RoKSl9fSxrLmFycmF5PXtzdHJpbmc6ZixhcnJheTpkLGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBqKGEpfX0say5hcnJheWJ1ZmZlcj17c3RyaW5nOmZ1bmN0aW9uKGEpe3JldHVybiBmKG5ldyBVaW50OEFycmF5KGEpKX0sYXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGcobmV3IFVpbnQ4QXJyYXkoYSksbmV3IEFycmF5KGEuYnl0ZUxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpkLHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBqKG5ldyBVaW50OEFycmF5KGEpKX19LGsudWludDhhcnJheT17c3RyaW5nOmYsYXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGcoYSxuZXcgQXJyYXkoYS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuYnVmZmVyfSx1aW50OGFycmF5OmQsbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihhKX19LGsubm9kZWJ1ZmZlcj17c3RyaW5nOmYsYXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGcoYSxuZXcgQXJyYXkoYS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGsubm9kZWJ1ZmZlci51aW50OGFycmF5KGEpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gZyhhLG5ldyBVaW50OEFycmF5KGEubGVuZ3RoKSl9LG5vZGVidWZmZXI6ZH0sYy50cmFuc2Zvcm1Ubz1mdW5jdGlvbihhLGIpe2lmKGJ8fChiPSIiKSwhYSlyZXR1cm4gYjtjLmNoZWNrU3VwcG9ydChhKTt2YXIgZD1jLmdldFR5cGVPZihiKSxlPWtbZF1bYV0oYik7cmV0dXJuIGV9LGMuZ2V0VHlwZU9mPWZ1bmN0aW9uKGEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYT8ic3RyaW5nIjoiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpPyJhcnJheSI6aC5ub2RlYnVmZmVyJiZqLnRlc3QoYSk/Im5vZGVidWZmZXIiOmgudWludDhhcnJheSYmYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/InVpbnQ4YXJyYXkiOmguYXJyYXlidWZmZXImJmEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8iYXJyYXlidWZmZXIiOnZvaWQgMH0sYy5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24oYSl7dmFyIGI9aFthLnRvTG93ZXJDYXNlKCldO2lmKCFiKXRocm93IG5ldyBFcnJvcihhKyIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIiKX0sYy5NQVhfVkFMVUVfMTZCSVRTPTY1NTM1LGMuTUFYX1ZBTFVFXzMyQklUUz0tMSxjLnByZXR0eT1mdW5jdGlvbihhKXt2YXIgYixjLGQ9IiI7Zm9yKGM9MDtjPChhfHwiIikubGVuZ3RoO2MrKyliPWEuY2hhckNvZGVBdChjKSxkKz0iXFx4IisoMTY+Yj8iMCI6IiIpK2IudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGR9LGMuZmluZENvbXByZXNzaW9uPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBpKWlmKGkuaGFzT3duUHJvcGVydHkoYikmJmlbYl0ubWFnaWM9PT1hKXJldHVybiBpW2JdO3JldHVybiBudWxsfSxjLmlzUmVnRXhwPWZ1bmN0aW9uKGEpe3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfX0seyIuL2NvbXByZXNzaW9ucyI6MywiLi9ub2RlQnVmZmVyIjoxMSwiLi9zdXBwb3J0IjoxN31dLDIyOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7dGhpcy5maWxlcz1bXSx0aGlzLmxvYWRPcHRpb25zPWIsYSYmdGhpcy5sb2FkKGEpfXZhciBkPWEoIi4vc3RyaW5nUmVhZGVyIiksZT1hKCIuL25vZGVCdWZmZXJSZWFkZXIiKSxmPWEoIi4vdWludDhBcnJheVJlYWRlciIpLGc9YSgiLi91dGlscyIpLGg9YSgiLi9zaWduYXR1cmUiKSxpPWEoIi4vemlwRW50cnkiKSxqPWEoIi4vc3VwcG9ydCIpLGs9YSgiLi9vYmplY3QiKTtjLnByb3RvdHlwZT17Y2hlY2tTaWduYXR1cmU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KTtpZihiIT09YSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgb3IgYnVnIDogdW5leHBlY3RlZCBzaWduYXR1cmUgKCIrZy5wcmV0dHkoYikrIiwgZXhwZWN0ZWQgIitnLnByZXR0eShhKSsiKSIpfSxyZWFkQmxvY2tFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpck9mZnNldD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuemlwQ29tbWVudExlbmd0aD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuemlwQ29tbWVudD10aGlzLnJlYWRlci5yZWFkU3RyaW5nKHRoaXMuemlwQ29tbWVudExlbmd0aCksdGhpcy56aXBDb21tZW50PWsudXRmOGRlY29kZSh0aGlzLnppcENvbW1lbnQpfSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3RoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy52ZXJzaW9uTWFkZUJ5PXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoMiksdGhpcy52ZXJzaW9uTmVlZGVkPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGE9e307Zm9yKHZhciBhLGIsYyxkPXRoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplLTQ0LGU9MDtkPmU7KWE9dGhpcy5yZWFkZXIucmVhZEludCgyKSxiPXRoaXMucmVhZGVyLnJlYWRJbnQoNCksYz10aGlzLnJlYWRlci5yZWFkU3RyaW5nKGIpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YVthXT17aWQ6YSxsZW5ndGg6Yix2YWx1ZTpjfX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWxMb2NhdG9yOmZ1bmN0aW9uKCl7aWYodGhpcy5kaXNrV2l0aFppcDY0Q2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5yZWxhdGl2ZU9mZnNldEVuZE9mWmlwNjRDZW50cmFsRGlyPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5kaXNrc0NvdW50PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5kaXNrc0NvdW50PjEpdGhyb3cgbmV3IEVycm9yKCJNdWx0aS12b2x1bWVzIHppcCBhcmUgbm90IHN1cHBvcnRlZCIpfSxyZWFkTG9jYWxGaWxlczpmdW5jdGlvbigpe3ZhciBhLGI7Zm9yKGE9MDthPHRoaXMuZmlsZXMubGVuZ3RoO2ErKyliPXRoaXMuZmlsZXNbYV0sdGhpcy5yZWFkZXIuc2V0SW5kZXgoYi5sb2NhbEhlYWRlck9mZnNldCksdGhpcy5jaGVja1NpZ25hdHVyZShoLkxPQ0FMX0ZJTEVfSEVBREVSKSxiLnJlYWRMb2NhbFBhcnQodGhpcy5yZWFkZXIpLGIuaGFuZGxlVVRGOCgpfSxyZWFkQ2VudHJhbERpcjpmdW5jdGlvbigpe3ZhciBhO2Zvcih0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLmNlbnRyYWxEaXJPZmZzZXQpO3RoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk9PT1oLkNFTlRSQUxfRklMRV9IRUFERVI7KWE9bmV3IGkoe3ppcDY0OnRoaXMuemlwNjR9LHRoaXMubG9hZE9wdGlvbnMpLGEucmVhZENlbnRyYWxQYXJ0KHRoaXMucmVhZGVyKSx0aGlzLmZpbGVzLnB1c2goYSl9LHJlYWRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShoLkNFTlRSQUxfRElSRUNUT1JZX0VORCk7aWYoLTE9PT1hKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IGNhbid0IGZpbmQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5Iik7aWYodGhpcy5yZWFkZXIuc2V0SW5kZXgoYSksdGhpcy5jaGVja1NpZ25hdHVyZShoLkNFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWFkQmxvY2tFbmRPZkNlbnRyYWwoKSx0aGlzLmRpc2tOdW1iZXI9PT1nLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9PT1nLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJTaXplPT09Zy5NQVhfVkFMVUVfMzJCSVRTfHx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9PT1nLk1BWF9WQUxVRV8zMkJJVFMpe2lmKHRoaXMuemlwNjQ9ITAsYT10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShoLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1IpLC0xPT09YSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIHRoZSBaSVA2NCBlbmQgb2YgY2VudHJhbCBkaXJlY3RvcnkgbG9jYXRvciIpO3RoaXMucmVhZGVyLnNldEluZGV4KGEpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSx0aGlzLnJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcigpLHRoaXMucmVhZGVyLnNldEluZGV4KHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpciksdGhpcy5jaGVja1NpZ25hdHVyZShoLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbCgpfX0scHJlcGFyZVJlYWRlcjpmdW5jdGlvbihhKXt2YXIgYj1nLmdldFR5cGVPZihhKTt0aGlzLnJlYWRlcj0ic3RyaW5nIiE9PWJ8fGoudWludDhhcnJheT8ibm9kZWJ1ZmZlciI9PT1iP25ldyBlKGEpOm5ldyBmKGcudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGEpKTpuZXcgZChhLHRoaXMubG9hZE9wdGlvbnMub3B0aW1pemVkQmluYXJ5U3RyaW5nKX0sbG9hZDpmdW5jdGlvbihhKXt0aGlzLnByZXBhcmVSZWFkZXIoYSksdGhpcy5yZWFkRW5kT2ZDZW50cmFsKCksdGhpcy5yZWFkQ2VudHJhbERpcigpLHRoaXMucmVhZExvY2FsRmlsZXMoKX19LGIuZXhwb3J0cz1jfSx7Ii4vbm9kZUJ1ZmZlclJlYWRlciI6MTIsIi4vb2JqZWN0IjoxMywiLi9zaWduYXR1cmUiOjE0LCIuL3N0cmluZ1JlYWRlciI6MTUsIi4vc3VwcG9ydCI6MTcsIi4vdWludDhBcnJheVJlYWRlciI6MTgsIi4vdXRpbHMiOjIxLCIuL3ppcEVudHJ5IjoyM31dLDIzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7dGhpcy5vcHRpb25zPWEsdGhpcy5sb2FkT3B0aW9ucz1ifXZhciBkPWEoIi4vc3RyaW5nUmVhZGVyIiksZT1hKCIuL3V0aWxzIiksZj1hKCIuL2NvbXByZXNzZWRPYmplY3QiKSxnPWEoIi4vb2JqZWN0Iik7Yy5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT0oMSZ0aGlzLmJpdEZsYWcpfSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0dXJuIDIwNDg9PT0oMjA0OCZ0aGlzLmJpdEZsYWcpfSxwcmVwYXJlQ29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBkPWEuaW5kZXg7YS5zZXRJbmRleChiKTt2YXIgZT1hLnJlYWREYXRhKGMpO3JldHVybiBhLnNldEluZGV4KGQpLGV9fSxwcmVwYXJlQ29udGVudDpmdW5jdGlvbihhLGIsYyxkLGYpe3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWUudHJhbnNmb3JtVG8oZC51bmNvbXByZXNzSW5wdXRUeXBlLHRoaXMuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKSksYj1kLnVuY29tcHJlc3MoYSk7aWYoYi5sZW5ndGghPT1mKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiBifX0scmVhZExvY2FsUGFydDpmdW5jdGlvbihhKXt2YXIgYixjO2lmKGEuc2tpcCgyMiksdGhpcy5maWxlTmFtZUxlbmd0aD1hLnJlYWRJbnQoMiksYz1hLnJlYWRJbnQoMiksdGhpcy5maWxlTmFtZT1hLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksYS5za2lwKGMpLC0xPT10aGlzLmNvbXByZXNzZWRTaXplfHwtMT09dGhpcy51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcigiQnVnIG9yIGNvcnJ1cHRlZCB6aXAgOiBkaWRuJ3QgZ2V0IGVub3VnaCBpbmZvcm1hdGlvbnMgZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnkgKGNvbXByZXNzZWRTaXplID09IC0xIHx8IHVuY29tcHJlc3NlZFNpemUgPT0gLTEpIik7aWYoYj1lLmZpbmRDb21wcmVzc2lvbih0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSxudWxsPT09Yil0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjb21wcmVzc2lvbiAiK2UucHJldHR5KHRoaXMuY29tcHJlc3Npb25NZXRob2QpKyIgdW5rbm93biAoaW5uZXIgZmlsZSA6ICIrdGhpcy5maWxlTmFtZSsiKSIpO2lmKHRoaXMuZGVjb21wcmVzc2VkPW5ldyBmLHRoaXMuZGVjb21wcmVzc2VkLmNvbXByZXNzZWRTaXplPXRoaXMuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQudW5jb21wcmVzc2VkU2l6ZT10aGlzLnVuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQuY3JjMzI9dGhpcy5jcmMzMix0aGlzLmRlY29tcHJlc3NlZC5jb21wcmVzc2lvbk1ldGhvZD10aGlzLmNvbXByZXNzaW9uTWV0aG9kLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbXByZXNzZWRDb250ZW50PXRoaXMucHJlcGFyZUNvbXByZXNzZWRDb250ZW50KGEsYS5pbmRleCx0aGlzLmNvbXByZXNzZWRTaXplLGIpLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbnRlbnQ9dGhpcy5wcmVwYXJlQ29udGVudChhLGEuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxiLHRoaXMudW5jb21wcmVzc2VkU2l6ZSksdGhpcy5sb2FkT3B0aW9ucy5jaGVja0NSQzMyJiYodGhpcy5kZWNvbXByZXNzZWQ9ZS50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50KCkpLGcuY3JjMzIodGhpcy5kZWNvbXByZXNzZWQpIT09dGhpcy5jcmMzMikpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogQ1JDMzIgbWlzbWF0Y2giKX0scmVhZENlbnRyYWxQYXJ0OmZ1bmN0aW9uKGEpe2lmKHRoaXMudmVyc2lvbk1hZGVCeT1hLnJlYWRTdHJpbmcoMiksdGhpcy52ZXJzaW9uTmVlZGVkPWEucmVhZEludCgyKSx0aGlzLmJpdEZsYWc9YS5yZWFkSW50KDIpLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9YS5yZWFkU3RyaW5nKDIpLHRoaXMuZGF0ZT1hLnJlYWREYXRlKCksdGhpcy5jcmMzMj1hLnJlYWRJbnQoNCksdGhpcy5jb21wcmVzc2VkU2l6ZT1hLnJlYWRJbnQoNCksdGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg0KSx0aGlzLmZpbGVOYW1lTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmV4dHJhRmllbGRzTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmZpbGVDb21tZW50TGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmRpc2tOdW1iZXJTdGFydD1hLnJlYWRJbnQoMiksdGhpcy5pbnRlcm5hbEZpbGVBdHRyaWJ1dGVzPWEucmVhZEludCgyKSx0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM9YS5yZWFkSW50KDQpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9YS5yZWFkSW50KDQpLHRoaXMuaXNFbmNyeXB0ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRlZCB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLmZpbGVOYW1lPWEucmVhZFN0cmluZyh0aGlzLmZpbGVOYW1lTGVuZ3RoKSx0aGlzLnJlYWRFeHRyYUZpZWxkcyhhKSx0aGlzLnBhcnNlWklQNjRFeHRyYUZpZWxkKGEpLHRoaXMuZmlsZUNvbW1lbnQ9YS5yZWFkU3RyaW5nKHRoaXMuZmlsZUNvbW1lbnRMZW5ndGgpLHRoaXMuZGlyPTE2JnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcz8hMDohMX0scGFyc2VaSVA2NEV4dHJhRmllbGQ6ZnVuY3Rpb24oKXtpZih0aGlzLmV4dHJhRmllbGRzWzFdKXt2YXIgYT1uZXcgZCh0aGlzLmV4dHJhRmllbGRzWzFdLnZhbHVlKTt0aGlzLnVuY29tcHJlc3NlZFNpemU9PT1lLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLnVuY29tcHJlc3NlZFNpemU9YS5yZWFkSW50KDgpKSx0aGlzLmNvbXByZXNzZWRTaXplPT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5jb21wcmVzc2VkU2l6ZT1hLnJlYWRJbnQoOCkpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9PT1lLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PWEucmVhZEludCg4KSksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9PT1lLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmRpc2tOdW1iZXJTdGFydD1hLnJlYWRJbnQoNCkpfX0scmVhZEV4dHJhRmllbGRzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPWEuaW5kZXg7Zm9yKHRoaXMuZXh0cmFGaWVsZHM9dGhpcy5leHRyYUZpZWxkc3x8e307YS5pbmRleDxlK3RoaXMuZXh0cmFGaWVsZHNMZW5ndGg7KWI9YS5yZWFkSW50KDIpLGM9YS5yZWFkSW50KDIpLGQ9YS5yZWFkU3RyaW5nKGMpLHRoaXMuZXh0cmFGaWVsZHNbYl09e2lkOmIsbGVuZ3RoOmMsdmFsdWU6ZH19LGhhbmRsZVVURjg6ZnVuY3Rpb24oKXtpZih0aGlzLnVzZVVURjgoKSl0aGlzLmZpbGVOYW1lPWcudXRmOGRlY29kZSh0aGlzLmZpbGVOYW1lKSx0aGlzLmZpbGVDb21tZW50PWcudXRmOGRlY29kZSh0aGlzLmZpbGVDb21tZW50KTtlbHNle3ZhciBhPXRoaXMuZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aCgpO251bGwhPT1hJiYodGhpcy5maWxlTmFtZT1hKTt2YXIgYj10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQoKTtudWxsIT09YiYmKHRoaXMuZmlsZUNvbW1lbnQ9Yil9fSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5leHRyYUZpZWxkc1syODc4OV07aWYoYSl7dmFyIGI9bmV3IGQoYS52YWx1ZSk7cmV0dXJuIDEhPT1iLnJlYWRJbnQoMSk/bnVsbDpnLmNyYzMyKHRoaXMuZmlsZU5hbWUpIT09Yi5yZWFkSW50KDQpP251bGw6Zy51dGY4ZGVjb2RlKGIucmVhZFN0cmluZyhhLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9LGZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmV4dHJhRmllbGRzWzI1NDYxXTtpZihhKXt2YXIgYj1uZXcgZChhLnZhbHVlKTtyZXR1cm4gMSE9PWIucmVhZEludCgxKT9udWxsOmcuY3JjMzIodGhpcy5maWxlQ29tbWVudCkhPT1iLnJlYWRJbnQoNCk/bnVsbDpnLnV0ZjhkZWNvZGUoYi5yZWFkU3RyaW5nKGEubGVuZ3RoLTUpKX1yZXR1cm4gbnVsbH19LGIuZXhwb3J0cz1jfSx7Ii4vY29tcHJlc3NlZE9iamVjdCI6MiwiLi9vYmplY3QiOjEzLCIuL3N0cmluZ1JlYWRlciI6MTUsIi4vdXRpbHMiOjIxfV0sMjQ6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPWEoIi4vbGliL3V0aWxzL2NvbW1vbiIpLmFzc2lnbixkPWEoIi4vbGliL2RlZmxhdGUiKSxlPWEoIi4vbGliL2luZmxhdGUiKSxmPWEoIi4vbGliL3psaWIvY29uc3RhbnRzIiksZz17fTtjKGcsZCxlLGYpLGIuZXhwb3J0cz1nfSx7Ii4vbGliL2RlZmxhdGUiOjI1LCIuL2xpYi9pbmZsYXRlIjoyNiwiLi9saWIvdXRpbHMvY29tbW9uIjoyNywiLi9saWIvemxpYi9jb25zdGFudHMiOjMwfV0sMjU6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe3ZhciBjPW5ldyBzKGIpO2lmKGMucHVzaChhLCEwKSxjLmVycil0aHJvdyBjLm1zZztyZXR1cm4gYy5yZXN1bHR9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBiPWJ8fHt9LGIucmF3PSEwLGQoYSxiKX1mdW5jdGlvbiBmKGEsYil7cmV0dXJuIGI9Ynx8e30sYi5nemlwPSEwLGQoYSxiKX12YXIgZz1hKCIuL3psaWIvZGVmbGF0ZS5qcyIpLGg9YSgiLi91dGlscy9jb21tb24iKSxpPWEoIi4vdXRpbHMvc3RyaW5ncyIpLGo9YSgiLi96bGliL21lc3NhZ2VzIiksaz1hKCIuL3psaWIvenN0cmVhbSIpLGw9MCxtPTQsbj0wLG89MSxwPS0xLHE9MCxyPTgscz1mdW5jdGlvbihhKXt0aGlzLm9wdGlvbnM9aC5hc3NpZ24oe2xldmVsOnAsbWV0aG9kOnIsY2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MTUsbWVtTGV2ZWw6OCxzdHJhdGVneTpxLHRvOiIifSxhfHx7fSk7dmFyIGI9dGhpcy5vcHRpb25zO2IucmF3JiZiLndpbmRvd0JpdHM+MD9iLndpbmRvd0JpdHM9LWIud2luZG93Qml0czpiLmd6aXAmJmIud2luZG93Qml0cz4wJiZiLndpbmRvd0JpdHM8MTYmJihiLndpbmRvd0JpdHMrPTE2KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyBrLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgYz1nLmRlZmxhdGVJbml0Mih0aGlzLnN0cm0sYi5sZXZlbCxiLm1ldGhvZCxiLndpbmRvd0JpdHMsYi5tZW1MZXZlbCxiLnN0cmF0ZWd5KTtpZihjIT09bil0aHJvdyBuZXcgRXJyb3IoaltjXSk7Yi5oZWFkZXImJmcuZGVmbGF0ZVNldEhlYWRlcih0aGlzLnN0cm0sYi5oZWFkZXIpfTtzLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPXRoaXMuc3RybSxmPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtkPWI9PT1+fmI/YjpiPT09ITA/bTpsLGUuaW5wdXQ9InN0cmluZyI9PXR5cGVvZiBhP2kuc3RyaW5nMmJ1ZihhKTphLGUubmV4dF9pbj0wLGUuYXZhaWxfaW49ZS5pbnB1dC5sZW5ndGg7ZG97aWYoMD09PWUuYXZhaWxfb3V0JiYoZS5vdXRwdXQ9bmV3IGguQnVmOChmKSxlLm5leHRfb3V0PTAsZS5hdmFpbF9vdXQ9ZiksYz1nLmRlZmxhdGUoZSxkKSxjIT09byYmYyE9PW4pcmV0dXJuIHRoaXMub25FbmQoYyksdGhpcy5lbmRlZD0hMCwhMTsoMD09PWUuYXZhaWxfb3V0fHwwPT09ZS5hdmFpbF9pbiYmZD09PW0pJiZ0aGlzLm9uRGF0YSgic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz9pLmJ1ZjJiaW5zdHJpbmcoaC5zaHJpbmtCdWYoZS5vdXRwdXQsZS5uZXh0X291dCkpOmguc2hyaW5rQnVmKGUub3V0cHV0LGUubmV4dF9vdXQpKX13aGlsZSgoZS5hdmFpbF9pbj4wfHwwPT09ZS5hdmFpbF9vdXQpJiZjIT09byk7cmV0dXJuIGQ9PT1tPyhjPWcuZGVmbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoYyksdGhpcy5lbmRlZD0hMCxjPT09bik6ITB9LHMucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNodW5rcy5wdXNoKGEpfSxzLnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbihhKXthPT09biYmKHRoaXMucmVzdWx0PSJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP3RoaXMuY2h1bmtzLmpvaW4oIiIpOmguZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPWEsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ30sYy5EZWZsYXRlPXMsYy5kZWZsYXRlPWQsYy5kZWZsYXRlUmF3PWUsYy5nemlwPWZ9LHsiLi91dGlscy9jb21tb24iOjI3LCIuL3V0aWxzL3N0cmluZ3MiOjI4LCIuL3psaWIvZGVmbGF0ZS5qcyI6MzIsIi4vemxpYi9tZXNzYWdlcyI6MzcsIi4vemxpYi96c3RyZWFtIjozOX1dLDI2OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXt2YXIgYz1uZXcgbShiKTtpZihjLnB1c2goYSwhMCksYy5lcnIpdGhyb3cgYy5tc2c7cmV0dXJuIGMucmVzdWx0fWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4gYj1ifHx7fSxiLnJhdz0hMCxkKGEsYil9dmFyIGY9YSgiLi96bGliL2luZmxhdGUuanMiKSxnPWEoIi4vdXRpbHMvY29tbW9uIiksaD1hKCIuL3V0aWxzL3N0cmluZ3MiKSxpPWEoIi4vemxpYi9jb25zdGFudHMiKSxqPWEoIi4vemxpYi9tZXNzYWdlcyIpLGs9YSgiLi96bGliL3pzdHJlYW0iKSxsPWEoIi4vemxpYi9nemhlYWRlciIpLG09ZnVuY3Rpb24oYSl7dGhpcy5vcHRpb25zPWcuYXNzaWduKHtjaHVua1NpemU6MTYzODQsd2luZG93Qml0czowLHRvOiIifSxhfHx7fSk7dmFyIGI9dGhpcy5vcHRpb25zO2IucmF3JiZiLndpbmRvd0JpdHM+PTAmJmIud2luZG93Qml0czwxNiYmKGIud2luZG93Qml0cz0tYi53aW5kb3dCaXRzLDA9PT1iLndpbmRvd0JpdHMmJihiLndpbmRvd0JpdHM9LTE1KSksIShiLndpbmRvd0JpdHM+PTAmJmIud2luZG93Qml0czwxNil8fGEmJmEud2luZG93Qml0c3x8KGIud2luZG93Qml0cys9MzIpLGIud2luZG93Qml0cz4xNSYmYi53aW5kb3dCaXRzPDQ4JiYwPT09KDE1JmIud2luZG93Qml0cykmJihiLndpbmRvd0JpdHN8PTE1KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyBrLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgYz1mLmluZmxhdGVJbml0Mih0aGlzLnN0cm0sYi53aW5kb3dCaXRzKTtpZihjIT09aS5aX09LKXRocm93IG5ldyBFcnJvcihqW2NdKTt0aGlzLmhlYWRlcj1uZXcgbCxmLmluZmxhdGVHZXRIZWFkZXIodGhpcy5zdHJtLHRoaXMuaGVhZGVyKX07bS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxqLGssbD10aGlzLnN0cm0sbT10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7ZD1iPT09fn5iP2I6Yj09PSEwP2kuWl9GSU5JU0g6aS5aX05PX0ZMVVNILGwuaW5wdXQ9InN0cmluZyI9PXR5cGVvZiBhP2guYmluc3RyaW5nMmJ1ZihhKTphLGwubmV4dF9pbj0wLGwuYXZhaWxfaW49bC5pbnB1dC5sZW5ndGg7ZG97aWYoMD09PWwuYXZhaWxfb3V0JiYobC5vdXRwdXQ9bmV3IGcuQnVmOChtKSxsLm5leHRfb3V0PTAsbC5hdmFpbF9vdXQ9bSksYz1mLmluZmxhdGUobCxpLlpfTk9fRkxVU0gpLGMhPT1pLlpfU1RSRUFNX0VORCYmYyE9PWkuWl9PSylyZXR1cm4gdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLCExO2wubmV4dF9vdXQmJigwPT09bC5hdmFpbF9vdXR8fGM9PT1pLlpfU1RSRUFNX0VORHx8MD09PWwuYXZhaWxfaW4mJmQ9PT1pLlpfRklOSVNIKSYmKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvPyhlPWgudXRmOGJvcmRlcihsLm91dHB1dCxsLm5leHRfb3V0KSxqPWwubmV4dF9vdXQtZSxrPWguYnVmMnN0cmluZyhsLm91dHB1dCxlKSxsLm5leHRfb3V0PWosbC5hdmFpbF9vdXQ9bS1qLGomJmcuYXJyYXlTZXQobC5vdXRwdXQsbC5vdXRwdXQsZSxqLDApLHRoaXMub25EYXRhKGspKTp0aGlzLm9uRGF0YShnLnNocmlua0J1ZihsLm91dHB1dCxsLm5leHRfb3V0KSkpfXdoaWxlKGwuYXZhaWxfaW4+MCYmYyE9PWkuWl9TVFJFQU1fRU5EKTtyZXR1cm4gYz09PWkuWl9TVFJFQU1fRU5EJiYoZD1pLlpfRklOSVNIKSxkPT09aS5aX0ZJTklTSD8oYz1mLmluZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKGMpLHRoaXMuZW5kZWQ9ITAsYz09PWkuWl9PSyk6ITB9LG0ucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNodW5rcy5wdXNoKGEpfSxtLnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbihhKXthPT09aS5aX09LJiYodGhpcy5yZXN1bHQ9InN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5jaHVua3Muam9pbigiIik6Zy5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9YSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxjLkluZmxhdGU9bSxjLmluZmxhdGU9ZCxjLmluZmxhdGVSYXc9ZSxjLnVuZ3ppcD1kfSx7Ii4vdXRpbHMvY29tbW9uIjoyNywiLi91dGlscy9zdHJpbmdzIjoyOCwiLi96bGliL2NvbnN0YW50cyI6MzAsIi4vemxpYi9nemhlYWRlciI6MzMsIi4vemxpYi9pbmZsYXRlLmpzIjozNSwiLi96bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0iOjM5fV0sMjc6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIEludDMyQXJyYXk7Yy5hc3NpZ249ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtiLmxlbmd0aDspe3ZhciBjPWIuc2hpZnQoKTtpZihjKXtpZigib2JqZWN0IiE9dHlwZW9mIGMpdGhyb3cgbmV3IFR5cGVFcnJvcihjKyJtdXN0IGJlIG5vbi1vYmplY3QiKTtmb3IodmFyIGQgaW4gYyljLmhhc093blByb3BlcnR5KGQpJiYoYVtkXT1jW2RdKX19cmV0dXJuIGF9LGMuc2hyaW5rQnVmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubGVuZ3RoPT09Yj9hOmEuc3ViYXJyYXk/YS5zdWJhcnJheSgwLGIpOihhLmxlbmd0aD1iLGEpfTt2YXIgZT17YXJyYXlTZXQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihiLnN1YmFycmF5JiZhLnN1YmFycmF5KXJldHVybiB2b2lkIGEuc2V0KGIuc3ViYXJyYXkoYyxjK2QpLGUpO2Zvcih2YXIgZj0wO2Q+ZjtmKyspYVtlK2ZdPWJbYytmXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGc7Zm9yKGQ9MCxiPTAsYz1hLmxlbmd0aDtjPmI7YisrKWQrPWFbYl0ubGVuZ3RoO2ZvcihnPW5ldyBVaW50OEFycmF5KGQpLGU9MCxiPTAsYz1hLmxlbmd0aDtjPmI7YisrKWY9YVtiXSxnLnNldChmLGUpLGUrPWYubGVuZ3RoO3JldHVybiBnfX0sZj17YXJyYXlTZXQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXtmb3IodmFyIGY9MDtkPmY7ZisrKWFbZStmXT1iW2MrZl19LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24oYSl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLGEpfX07Yy5zZXRUeXBlZD1mdW5jdGlvbihhKXthPyhjLkJ1Zjg9VWludDhBcnJheSxjLkJ1ZjE2PVVpbnQxNkFycmF5LGMuQnVmMzI9SW50MzJBcnJheSxjLmFzc2lnbihjLGUpKTooYy5CdWY4PUFycmF5LGMuQnVmMTY9QXJyYXksYy5CdWYzMj1BcnJheSxjLmFzc2lnbihjLGYpKX0sYy5zZXRUeXBlZChkKX0se31dLDI4OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXtpZig2NTUzNz5iJiYoYS5zdWJhcnJheSYmZ3x8IWEuc3ViYXJyYXkmJmYpKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZS5zaHJpbmtCdWYoYSxiKSk7Zm9yKHZhciBjPSIiLGQ9MDtiPmQ7ZCsrKWMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYVtkXSk7cmV0dXJuIGN9dmFyIGU9YSgiLi9jb21tb24iKSxmPSEwLGc9ITA7dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxbMF0pfWNhdGNoKGgpe2Y9ITF9dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgxKSl9Y2F0Y2goaCl7Zz0hMX1mb3IodmFyIGk9bmV3IGUuQnVmOCgyNTYpLGo9MDsyNTY+ajtqKyspaVtqXT1qPj0yNTI/NjpqPj0yNDg/NTpqPj0yNDA/NDpqPj0yMjQ/MzpqPj0xOTI/MjoxO2lbMjU0XT1pWzI1NF09MSxjLnN0cmluZzJidWY9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGYsZyxoPWEubGVuZ3RoLGk9MDtmb3IoZj0wO2g+ZjtmKyspYz1hLmNoYXJDb2RlQXQoZiksNTUyOTY9PT0oNjQ1MTImYykmJmg+ZisxJiYoZD1hLmNoYXJDb2RlQXQoZisxKSw1NjMyMD09PSg2NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZisrKSksaSs9MTI4PmM/MToyMDQ4PmM/Mjo2NTUzNj5jPzM6NDtmb3IoYj1uZXcgZS5CdWY4KGkpLGc9MCxmPTA7aT5nO2YrKyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmaD5mKzEmJihkPWEuY2hhckNvZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5Njw8MTApKyhkLTU2MzIwKSxmKyspKSwxMjg+Yz9iW2crK109YzoyMDQ4PmM/KGJbZysrXT0xOTJ8Yz4+PjYsYltnKytdPTEyOHw2MyZjKTo2NTUzNj5jPyhiW2crK109MjI0fGM+Pj4xMixiW2crK109MTI4fGM+Pj42JjYzLGJbZysrXT0xMjh8NjMmYyk6KGJbZysrXT0yNDB8Yz4+PjE4LGJbZysrXT0xMjh8Yz4+PjEyJjYzLGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTtyZXR1cm4gYn0sYy5idWYyYmluc3RyaW5nPWZ1bmN0aW9uKGEpe3JldHVybiBkKGEsYS5sZW5ndGgpfSxjLmJpbnN0cmluZzJidWY9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPW5ldyBlLkJ1ZjgoYS5sZW5ndGgpLGM9MCxkPWIubGVuZ3RoO2Q+YztjKyspYltjXT1hLmNoYXJDb2RlQXQoYyk7cmV0dXJuIGJ9LGMuYnVmMnN0cmluZz1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZixnLGg9Ynx8YS5sZW5ndGgsaj1uZXcgQXJyYXkoMipoKTtmb3IoZT0wLGM9MDtoPmM7KWlmKGY9YVtjKytdLDEyOD5mKWpbZSsrXT1mO2Vsc2UgaWYoZz1pW2ZdLGc+NClqW2UrK109NjU1MzMsYys9Zy0xO2Vsc2V7Zm9yKGYmPTI9PT1nPzMxOjM9PT1nPzE1Ojc7Zz4xJiZoPmM7KWY9Zjw8Nnw2MyZhW2MrK10sZy0tO2c+MT9qW2UrK109NjU1MzM6NjU1MzY+Zj9qW2UrK109ZjooZi09NjU1MzYsaltlKytdPTU1Mjk2fGY+PjEwJjEwMjMsaltlKytdPTU2MzIwfDEwMjMmZil9cmV0dXJuIGQoaixlKX0sYy51dGY4Ym9yZGVyPWZ1bmN0aW9uKGEsYil7dmFyIGM7Zm9yKGI9Ynx8YS5sZW5ndGgsYj5hLmxlbmd0aCYmKGI9YS5sZW5ndGgpLGM9Yi0xO2M+PTAmJjEyOD09PSgxOTImYVtjXSk7KWMtLTtyZXR1cm4gMD5jP2I6MD09PWM/YjpjK2lbYVtjXV0+Yj9jOmJ9fSx7Ii4vY29tbW9uIjoyN31dLDI5OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYixjLGQpe2Zvcih2YXIgZT02NTUzNSZhfDAsZj1hPj4+MTYmNjU1MzV8MCxnPTA7MCE9PWM7KXtnPWM+MmUzPzJlMzpjLGMtPWc7ZG8gZT1lK2JbZCsrXXwwLGY9ZitlfDA7d2hpbGUoLS1nKTtlJT02NTUyMSxmJT02NTUyMX1yZXR1cm4gZXxmPDwxNnwwfWIuZXhwb3J0cz1jfSx7fV0sMzA6W2Z1bmN0aW9uKGEsYil7Yi5leHBvcnRzPXtaX05PX0ZMVVNIOjAsWl9QQVJUSUFMX0ZMVVNIOjEsWl9TWU5DX0ZMVVNIOjIsWl9GVUxMX0ZMVVNIOjMsWl9GSU5JU0g6NCxaX0JMT0NLOjUsWl9UUkVFUzo2LFpfT0s6MCxaX1NUUkVBTV9FTkQ6MSxaX05FRURfRElDVDoyLFpfRVJSTk86LTEsWl9TVFJFQU1fRVJST1I6LTIsWl9EQVRBX0VSUk9SOi0zLFpfQlVGX0VSUk9SOi01LFpfTk9fQ09NUFJFU1NJT046MCxaX0JFU1RfU1BFRUQ6MSxaX0JFU1RfQ09NUFJFU1NJT046OSxaX0RFRkFVTFRfQ09NUFJFU1NJT046LTEsWl9GSUxURVJFRDoxLFpfSFVGRk1BTl9PTkxZOjIsWl9STEU6MyxaX0ZJWEVEOjQsWl9ERUZBVUxUX1NUUkFURUdZOjAsWl9CSU5BUlk6MCxaX1RFWFQ6MSxaX1VOS05PV046MixaX0RFRkxBVEVEOjh9fSx7fV0sMzE6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXtmb3IodmFyIGEsYj1bXSxjPTA7MjU2PmM7YysrKXthPWM7Zm9yKHZhciBkPTA7OD5kO2QrKylhPTEmYT8zOTg4MjkyMzg0XmE+Pj4xOmE+Pj4xO2JbY109YX1yZXR1cm4gYn1mdW5jdGlvbiBkKGEsYixjLGQpe3ZhciBmPWUsZz1kK2M7YT0tMV5hO2Zvcih2YXIgaD1kO2c+aDtoKyspYT1hPj4+OF5mWzI1NSYoYV5iW2hdKV07cmV0dXJuLTFeYX12YXIgZT1jKCk7Yi5leHBvcnRzPWR9LHt9XSwzMjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7cmV0dXJuIGEubXNnPUdbYl0sYn1mdW5jdGlvbiBlKGEpe3JldHVybihhPDwxKS0oYT40Pzk6MCl9ZnVuY3Rpb24gZihhKXtmb3IodmFyIGI9YS5sZW5ndGg7LS1iPj0wOylhW2JdPTB9ZnVuY3Rpb24gZyhhKXt2YXIgYj1hLnN0YXRlLGM9Yi5wZW5kaW5nO2M+YS5hdmFpbF9vdXQmJihjPWEuYXZhaWxfb3V0KSwwIT09YyYmKEMuYXJyYXlTZXQoYS5vdXRwdXQsYi5wZW5kaW5nX2J1ZixiLnBlbmRpbmdfb3V0LGMsYS5uZXh0X291dCksYS5uZXh0X291dCs9YyxiLnBlbmRpbmdfb3V0Kz1jLGEudG90YWxfb3V0Kz1jLGEuYXZhaWxfb3V0LT1jLGIucGVuZGluZy09YywwPT09Yi5wZW5kaW5nJiYoYi5wZW5kaW5nX291dD0wKSl9ZnVuY3Rpb24gaChhLGIpe0QuX3RyX2ZsdXNoX2Jsb2NrKGEsYS5ibG9ja19zdGFydD49MD9hLmJsb2NrX3N0YXJ0Oi0xLGEuc3Ryc3RhcnQtYS5ibG9ja19zdGFydCxiKSxhLmJsb2NrX3N0YXJ0PWEuc3Ryc3RhcnQsZyhhLnN0cm0pfWZ1bmN0aW9uIGkoYSxiKXthLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1ifWZ1bmN0aW9uIGooYSxiKXthLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1iPj4+OCYyNTUsYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109MjU1JmJ9ZnVuY3Rpb24gayhhLGIsYyxkKXt2YXIgZT1hLmF2YWlsX2luO3JldHVybiBlPmQmJihlPWQpLDA9PT1lPzA6KGEuYXZhaWxfaW4tPWUsQy5hcnJheVNldChiLGEuaW5wdXQsYS5uZXh0X2luLGUsYyksMT09PWEuc3RhdGUud3JhcD9hLmFkbGVyPUUoYS5hZGxlcixiLGUsYyk6Mj09PWEuc3RhdGUud3JhcCYmKGEuYWRsZXI9RihhLmFkbGVyLGIsZSxjKSksYS5uZXh0X2luKz1lLGEudG90YWxfaW4rPWUsZSl9ZnVuY3Rpb24gbChhLGIpe3ZhciBjLGQsZT1hLm1heF9jaGFpbl9sZW5ndGgsZj1hLnN0cnN0YXJ0LGc9YS5wcmV2X2xlbmd0aCxoPWEubmljZV9tYXRjaCxpPWEuc3Ryc3RhcnQ+YS53X3NpemUtamI/YS5zdHJzdGFydC0oYS53X3NpemUtamIpOjAsaj1hLndpbmRvdyxrPWEud19tYXNrLGw9YS5wcmV2LG09YS5zdHJzdGFydCtpYixuPWpbZitnLTFdLG89altmK2ddO2EucHJldl9sZW5ndGg+PWEuZ29vZF9tYXRjaCYmKGU+Pj0yKSxoPmEubG9va2FoZWFkJiYoaD1hLmxvb2thaGVhZCk7ZG8gaWYoYz1iLGpbYytnXT09PW8mJmpbYytnLTFdPT09biYmaltjXT09PWpbZl0mJmpbKytjXT09PWpbZisxXSl7Zis9MixjKys7ZG87d2hpbGUoalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJm0+Zik7aWYoZD1pYi0obS1mKSxmPW0taWIsZD5nKXtpZihhLm1hdGNoX3N0YXJ0PWIsZz1kLGQ+PWgpYnJlYWs7bj1qW2YrZy0xXSxvPWpbZitnXX19d2hpbGUoKGI9bFtiJmtdKT5pJiYwIT09LS1lKTtyZXR1cm4gZzw9YS5sb29rYWhlYWQ/ZzphLmxvb2thaGVhZH1mdW5jdGlvbiBtKGEpe3ZhciBiLGMsZCxlLGYsZz1hLndfc2l6ZTtkb3tpZihlPWEud2luZG93X3NpemUtYS5sb29rYWhlYWQtYS5zdHJzdGFydCxhLnN0cnN0YXJ0Pj1nKyhnLWpiKSl7Qy5hcnJheVNldChhLndpbmRvdyxhLndpbmRvdyxnLGcsMCksYS5tYXRjaF9zdGFydC09ZyxhLnN0cnN0YXJ0LT1nLGEuYmxvY2tfc3RhcnQtPWcsYz1hLmhhc2hfc2l6ZSxiPWM7ZG8gZD1hLmhlYWRbLS1iXSxhLmhlYWRbYl09ZD49Zz9kLWc6MDt3aGlsZSgtLWMpO2M9ZyxiPWM7ZG8gZD1hLnByZXZbLS1iXSxhLnByZXZbYl09ZD49Zz9kLWc6MDt3aGlsZSgtLWMpO2UrPWd9aWYoMD09PWEuc3RybS5hdmFpbF9pbilicmVhaztpZihjPWsoYS5zdHJtLGEud2luZG93LGEuc3Ryc3RhcnQrYS5sb29rYWhlYWQsZSksYS5sb29rYWhlYWQrPWMsYS5sb29rYWhlYWQrYS5pbnNlcnQ+PWhiKWZvcihmPWEuc3Ryc3RhcnQtYS5pbnNlcnQsYS5pbnNfaD1hLndpbmRvd1tmXSxhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbZisxXSkmYS5oYXNoX21hc2s7YS5pbnNlcnQmJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbZitoYi0xXSkmYS5oYXNoX21hc2ssYS5wcmV2W2YmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09ZixmKyssYS5pbnNlcnQtLSwhKGEubG9va2FoZWFkK2EuaW5zZXJ0PGhiKSk7KTt9d2hpbGUoYS5sb29rYWhlYWQ8amImJjAhPT1hLnN0cm0uYXZhaWxfaW4pfWZ1bmN0aW9uIG4oYSxiKXt2YXIgYz02NTUzNTtmb3IoYz5hLnBlbmRpbmdfYnVmX3NpemUtNSYmKGM9YS5wZW5kaW5nX2J1Zl9zaXplLTUpOzspe2lmKGEubG9va2FoZWFkPD0xKXtpZihtKGEpLDA9PT1hLmxvb2thaGVhZCYmYj09PUgpcmV0dXJuIHNiO2lmKDA9PT1hLmxvb2thaGVhZClicmVha31hLnN0cnN0YXJ0Kz1hLmxvb2thaGVhZCxhLmxvb2thaGVhZD0wO3ZhciBkPWEuYmxvY2tfc3RhcnQrYztpZigoMD09PWEuc3Ryc3RhcnR8fGEuc3Ryc3RhcnQ+PWQpJiYoYS5sb29rYWhlYWQ9YS5zdHJzdGFydC1kLGEuc3Ryc3RhcnQ9ZCxoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2I7aWYoYS5zdHJzdGFydC1hLmJsb2NrX3N0YXJ0Pj1hLndfc2l6ZS1qYiYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYn1yZXR1cm4gYS5pbnNlcnQ9MCxiPT09Sz8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD91Yjp2Yik6YS5zdHJzdGFydD5hLmJsb2NrX3N0YXJ0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/c2I6c2J9ZnVuY3Rpb24gbyhhLGIpe2Zvcih2YXIgYyxkOzspe2lmKGEubG9va2FoZWFkPGpiKXtpZihtKGEpLGEubG9va2FoZWFkPGpiJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWlmKGM9MCxhLmxvb2thaGVhZD49aGImJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCtoYi0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0KSwwIT09YyYmYS5zdHJzdGFydC1jPD1hLndfc2l6ZS1qYiYmKGEubWF0Y2hfbGVuZ3RoPWwoYSxjKSksYS5tYXRjaF9sZW5ndGg+PWhiKWlmKGQ9RC5fdHJfdGFsbHkoYSxhLnN0cnN0YXJ0LWEubWF0Y2hfc3RhcnQsYS5tYXRjaF9sZW5ndGgtaGIpLGEubG9va2FoZWFkLT1hLm1hdGNoX2xlbmd0aCxhLm1hdGNoX2xlbmd0aDw9YS5tYXhfbGF6eV9tYXRjaCYmYS5sb29rYWhlYWQ+PWhiKXthLm1hdGNoX2xlbmd0aC0tO2RvIGEuc3Ryc3RhcnQrKyxhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCtoYi0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0O3doaWxlKDAhPT0tLWEubWF0Y2hfbGVuZ3RoKTthLnN0cnN0YXJ0Kyt9ZWxzZSBhLnN0cnN0YXJ0Kz1hLm1hdGNoX2xlbmd0aCxhLm1hdGNoX2xlbmd0aD0wLGEuaW5zX2g9YS53aW5kb3dbYS5zdHJzdGFydF0sYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQrMV0pJmEuaGFzaF9tYXNrO2Vsc2UgZD1ELl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydF0pLGEubG9va2FoZWFkLS0sYS5zdHJzdGFydCsrO2lmKGQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PWEuc3Ryc3RhcnQ8aGItMT9hLnN0cnN0YXJ0OmhiLTEsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiBwKGEsYil7Zm9yKHZhciBjLGQsZTs7KXtpZihhLmxvb2thaGVhZDxqYil7aWYobShhKSxhLmxvb2thaGVhZDxqYiYmYj09PUgpcmV0dXJuIHNiO2lmKDA9PT1hLmxvb2thaGVhZClicmVha31pZihjPTAsYS5sb29rYWhlYWQ+PWhiJiYoYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQraGItMV0pJmEuaGFzaF9tYXNrLGM9YS5wcmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09YS5zdHJzdGFydCksYS5wcmV2X2xlbmd0aD1hLm1hdGNoX2xlbmd0aCxhLnByZXZfbWF0Y2g9YS5tYXRjaF9zdGFydCxhLm1hdGNoX2xlbmd0aD1oYi0xLDAhPT1jJiZhLnByZXZfbGVuZ3RoPGEubWF4X2xhenlfbWF0Y2gmJmEuc3Ryc3RhcnQtYzw9YS53X3NpemUtamImJihhLm1hdGNoX2xlbmd0aD1sKGEsYyksYS5tYXRjaF9sZW5ndGg8PTUmJihhLnN0cmF0ZWd5PT09U3x8YS5tYXRjaF9sZW5ndGg9PT1oYiYmYS5zdHJzdGFydC1hLm1hdGNoX3N0YXJ0PjQwOTYpJiYoYS5tYXRjaF9sZW5ndGg9aGItMSkpLGEucHJldl9sZW5ndGg+PWhiJiZhLm1hdGNoX2xlbmd0aDw9YS5wcmV2X2xlbmd0aCl7ZT1hLnN0cnN0YXJ0K2EubG9va2FoZWFkLWhiLGQ9RC5fdHJfdGFsbHkoYSxhLnN0cnN0YXJ0LTEtYS5wcmV2X21hdGNoLGEucHJldl9sZW5ndGgtaGIpLGEubG9va2FoZWFkLT1hLnByZXZfbGVuZ3RoLTEsYS5wcmV2X2xlbmd0aC09MjtkbysrYS5zdHJzdGFydDw9ZSYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQpO3doaWxlKDAhPT0tLWEucHJldl9sZW5ndGgpO2lmKGEubWF0Y2hfYXZhaWxhYmxlPTAsYS5tYXRjaF9sZW5ndGg9aGItMSxhLnN0cnN0YXJ0KyssZCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYn1lbHNlIGlmKGEubWF0Y2hfYXZhaWxhYmxlKXtpZihkPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0LTFdKSxkJiZoKGEsITEpLGEuc3Ryc3RhcnQrKyxhLmxvb2thaGVhZC0tLDA9PT1hLnN0cm0uYXZhaWxfb3V0KXJldHVybiBzYn1lbHNlIGEubWF0Y2hfYXZhaWxhYmxlPTEsYS5zdHJzdGFydCsrLGEubG9va2FoZWFkLS19cmV0dXJuIGEubWF0Y2hfYXZhaWxhYmxlJiYoZD1ELl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydC0xXSksYS5tYXRjaF9hdmFpbGFibGU9MCksYS5pbnNlcnQ9YS5zdHJzdGFydDxoYi0xP2Euc3Ryc3RhcnQ6aGItMSxiPT09Sz8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD91Yjp2Yik6YS5sYXN0X2xpdCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3NiOnRifWZ1bmN0aW9uIHEoYSxiKXtmb3IodmFyIGMsZCxlLGYsZz1hLndpbmRvdzs7KXtpZihhLmxvb2thaGVhZDw9aWIpe2lmKG0oYSksYS5sb29rYWhlYWQ8PWliJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWlmKGEubWF0Y2hfbGVuZ3RoPTAsYS5sb29rYWhlYWQ+PWhiJiZhLnN0cnN0YXJ0PjAmJihlPWEuc3Ryc3RhcnQtMSxkPWdbZV0sZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSkpe2Y9YS5zdHJzdGFydCtpYjtkbzt3aGlsZShkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZmPmUpO2EubWF0Y2hfbGVuZ3RoPWliLShmLWUpLGEubWF0Y2hfbGVuZ3RoPmEubG9va2FoZWFkJiYoYS5tYXRjaF9sZW5ndGg9YS5sb29rYWhlYWQpfWlmKGEubWF0Y2hfbGVuZ3RoPj1oYj8oYz1ELl90cl90YWxseShhLDEsYS5tYXRjaF9sZW5ndGgtaGIpLGEubG9va2FoZWFkLT1hLm1hdGNoX2xlbmd0aCxhLnN0cnN0YXJ0Kz1hLm1hdGNoX2xlbmd0aCxhLm1hdGNoX2xlbmd0aD0wKTooYz1ELl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydF0pLGEubG9va2FoZWFkLS0sYS5zdHJzdGFydCsrKSxjJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifXJldHVybiBhLmluc2VydD0wLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/c2I6dGJ9ZnVuY3Rpb24gcihhLGIpe2Zvcih2YXIgYzs7KXtpZigwPT09YS5sb29rYWhlYWQmJihtKGEpLDA9PT1hLmxvb2thaGVhZCkpe2lmKGI9PT1IKXJldHVybiBzYjticmVha31pZihhLm1hdGNoX2xlbmd0aD0wLGM9RC5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnRdKSxhLmxvb2thaGVhZC0tLGEuc3Ryc3RhcnQrKyxjJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifXJldHVybiBhLmluc2VydD0wLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/c2I6dGJ9ZnVuY3Rpb24gcyhhKXthLndpbmRvd19zaXplPTIqYS53X3NpemUsZihhLmhlYWQpLGEubWF4X2xhenlfbWF0Y2g9QlthLmxldmVsXS5tYXhfbGF6eSxhLmdvb2RfbWF0Y2g9QlthLmxldmVsXS5nb29kX2xlbmd0aCxhLm5pY2VfbWF0Y2g9QlthLmxldmVsXS5uaWNlX2xlbmd0aCxhLm1heF9jaGFpbl9sZW5ndGg9QlthLmxldmVsXS5tYXhfY2hhaW4sYS5zdHJzdGFydD0wLGEuYmxvY2tfc3RhcnQ9MCxhLmxvb2thaGVhZD0wLGEuaW5zZXJ0PTAsYS5tYXRjaF9sZW5ndGg9YS5wcmV2X2xlbmd0aD1oYi0xLGEubWF0Y2hfYXZhaWxhYmxlPTAsYS5pbnNfaD0wfWZ1bmN0aW9uIHQoKXt0aGlzLnN0cm09bnVsbCx0aGlzLnN0YXR1cz0wLHRoaXMucGVuZGluZ19idWY9bnVsbCx0aGlzLnBlbmRpbmdfYnVmX3NpemU9MCx0aGlzLnBlbmRpbmdfb3V0PTAsdGhpcy5wZW5kaW5nPTAsdGhpcy53cmFwPTAsdGhpcy5nemhlYWQ9bnVsbCx0aGlzLmd6aW5kZXg9MCx0aGlzLm1ldGhvZD1ZLHRoaXMubGFzdF9mbHVzaD0tMSx0aGlzLndfc2l6ZT0wLHRoaXMud19iaXRzPTAsdGhpcy53X21hc2s9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMud2luZG93X3NpemU9MCx0aGlzLnByZXY9bnVsbCx0aGlzLmhlYWQ9bnVsbCx0aGlzLmluc19oPTAsdGhpcy5oYXNoX3NpemU9MCx0aGlzLmhhc2hfYml0cz0wLHRoaXMuaGFzaF9tYXNrPTAsdGhpcy5oYXNoX3NoaWZ0PTAsdGhpcy5ibG9ja19zdGFydD0wLHRoaXMubWF0Y2hfbGVuZ3RoPTAsdGhpcy5wcmV2X21hdGNoPTAsdGhpcy5tYXRjaF9hdmFpbGFibGU9MCx0aGlzLnN0cnN0YXJ0PTAsdGhpcy5tYXRjaF9zdGFydD0wLHRoaXMubG9va2FoZWFkPTAsdGhpcy5wcmV2X2xlbmd0aD0wLHRoaXMubWF4X2NoYWluX2xlbmd0aD0wLHRoaXMubWF4X2xhenlfbWF0Y2g9MCx0aGlzLmxldmVsPTAsdGhpcy5zdHJhdGVneT0wLHRoaXMuZ29vZF9tYXRjaD0wLHRoaXMubmljZV9tYXRjaD0wLHRoaXMuZHluX2x0cmVlPW5ldyBDLkJ1ZjE2KDIqZmIpLHRoaXMuZHluX2R0cmVlPW5ldyBDLkJ1ZjE2KDIqKDIqZGIrMSkpLHRoaXMuYmxfdHJlZT1uZXcgQy5CdWYxNigyKigyKmViKzEpKSxmKHRoaXMuZHluX2x0cmVlKSxmKHRoaXMuZHluX2R0cmVlKSxmKHRoaXMuYmxfdHJlZSksdGhpcy5sX2Rlc2M9bnVsbCx0aGlzLmRfZGVzYz1udWxsLHRoaXMuYmxfZGVzYz1udWxsLHRoaXMuYmxfY291bnQ9bmV3IEMuQnVmMTYoZ2IrMSksdGhpcy5oZWFwPW5ldyBDLkJ1ZjE2KDIqY2IrMSksZih0aGlzLmhlYXApLHRoaXMuaGVhcF9sZW49MCx0aGlzLmhlYXBfbWF4PTAsdGhpcy5kZXB0aD1uZXcgQy5CdWYxNigyKmNiKzEpLGYodGhpcy5kZXB0aCksdGhpcy5sX2J1Zj0wLHRoaXMubGl0X2J1ZnNpemU9MCx0aGlzLmxhc3RfbGl0PTAsdGhpcy5kX2J1Zj0wLHRoaXMub3B0X2xlbj0wLHRoaXMuc3RhdGljX2xlbj0wLHRoaXMubWF0Y2hlcz0wLHRoaXMuaW5zZXJ0PTAsdGhpcy5iaV9idWY9MCx0aGlzLmJpX3ZhbGlkPTB9ZnVuY3Rpb24gdShhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYS50b3RhbF9pbj1hLnRvdGFsX291dD0wLGEuZGF0YV90eXBlPVgsYj1hLnN0YXRlLGIucGVuZGluZz0wLGIucGVuZGluZ19vdXQ9MCxiLndyYXA8MCYmKGIud3JhcD0tYi53cmFwKSxiLnN0YXR1cz1iLndyYXA/bGI6cWIsYS5hZGxlcj0yPT09Yi53cmFwPzA6MSxiLmxhc3RfZmx1c2g9SCxELl90cl9pbml0KGIpLE0pOmQoYSxPKX1mdW5jdGlvbiB2KGEpe3ZhciBiPXUoYSk7cmV0dXJuIGI9PT1NJiZzKGEuc3RhdGUpLGJ9ZnVuY3Rpb24gdyhhLGIpe3JldHVybiBhJiZhLnN0YXRlPzIhPT1hLnN0YXRlLndyYXA/TzooYS5zdGF0ZS5nemhlYWQ9YixNKTpPfWZ1bmN0aW9uIHgoYSxiLGMsZSxmLGcpe2lmKCFhKXJldHVybiBPO3ZhciBoPTE7aWYoYj09PVImJihiPTYpLDA+ZT8oaD0wLGU9LWUpOmU+MTUmJihoPTIsZS09MTYpLDE+Znx8Zj5afHxjIT09WXx8OD5lfHxlPjE1fHwwPmJ8fGI+OXx8MD5nfHxnPlYpcmV0dXJuIGQoYSxPKTs4PT09ZSYmKGU9OSk7dmFyIGk9bmV3IHQ7cmV0dXJuIGEuc3RhdGU9aSxpLnN0cm09YSxpLndyYXA9aCxpLmd6aGVhZD1udWxsLGkud19iaXRzPWUsaS53X3NpemU9MTw8aS53X2JpdHMsaS53X21hc2s9aS53X3NpemUtMSxpLmhhc2hfYml0cz1mKzcsaS5oYXNoX3NpemU9MTw8aS5oYXNoX2JpdHMsaS5oYXNoX21hc2s9aS5oYXNoX3NpemUtMSxpLmhhc2hfc2hpZnQ9fn4oKGkuaGFzaF9iaXRzK2hiLTEpL2hiKSxpLndpbmRvdz1uZXcgQy5CdWY4KDIqaS53X3NpemUpLGkuaGVhZD1uZXcgQy5CdWYxNihpLmhhc2hfc2l6ZSksaS5wcmV2PW5ldyBDLkJ1ZjE2KGkud19zaXplKSxpLmxpdF9idWZzaXplPTE8PGYrNixpLnBlbmRpbmdfYnVmX3NpemU9NCppLmxpdF9idWZzaXplLGkucGVuZGluZ19idWY9bmV3IEMuQnVmOChpLnBlbmRpbmdfYnVmX3NpemUpLGkuZF9idWY9aS5saXRfYnVmc2l6ZT4+MSxpLmxfYnVmPTMqaS5saXRfYnVmc2l6ZSxpLmxldmVsPWIsaS5zdHJhdGVneT1nLGkubWV0aG9kPWMsdihhKX1mdW5jdGlvbiB5KGEsYil7cmV0dXJuIHgoYSxiLFksJCxfLFcpfWZ1bmN0aW9uIHooYSxiKXt2YXIgYyxoLGssbDtpZighYXx8IWEuc3RhdGV8fGI+THx8MD5iKXJldHVybiBhP2QoYSxPKTpPO2lmKGg9YS5zdGF0ZSwhYS5vdXRwdXR8fCFhLmlucHV0JiYwIT09YS5hdmFpbF9pbnx8aC5zdGF0dXM9PT1yYiYmYiE9PUspcmV0dXJuIGQoYSwwPT09YS5hdmFpbF9vdXQ/UTpPKTtpZihoLnN0cm09YSxjPWgubGFzdF9mbHVzaCxoLmxhc3RfZmx1c2g9YixoLnN0YXR1cz09PWxiKWlmKDI9PT1oLndyYXApYS5hZGxlcj0wLGkoaCwzMSksaShoLDEzOSksaShoLDgpLGguZ3poZWFkPyhpKGgsKGguZ3poZWFkLnRleHQ/MTowKSsoaC5nemhlYWQuaGNyYz8yOjApKyhoLmd6aGVhZC5leHRyYT80OjApKyhoLmd6aGVhZC5uYW1lPzg6MCkrKGguZ3poZWFkLmNvbW1lbnQ/MTY6MCkpLGkoaCwyNTUmaC5nemhlYWQudGltZSksaShoLGguZ3poZWFkLnRpbWU+PjgmMjU1KSxpKGgsaC5nemhlYWQudGltZT4+MTYmMjU1KSxpKGgsaC5nemhlYWQudGltZT4+MjQmMjU1KSxpKGgsOT09PWgubGV2ZWw/MjpoLnN0cmF0ZWd5Pj1UfHxoLmxldmVsPDI/NDowKSxpKGgsMjU1JmguZ3poZWFkLm9zKSxoLmd6aGVhZC5leHRyYSYmaC5nemhlYWQuZXh0cmEubGVuZ3RoJiYoaShoLDI1NSZoLmd6aGVhZC5leHRyYS5sZW5ndGgpLGkoaCxoLmd6aGVhZC5leHRyYS5sZW5ndGg+PjgmMjU1KSksaC5nemhlYWQuaGNyYyYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLDApKSxoLmd6aW5kZXg9MCxoLnN0YXR1cz1tYik6KGkoaCwwKSxpKGgsMCksaShoLDApLGkoaCwwKSxpKGgsMCksaShoLDk9PT1oLmxldmVsPzI6aC5zdHJhdGVneT49VHx8aC5sZXZlbDwyPzQ6MCksaShoLHdiKSxoLnN0YXR1cz1xYik7ZWxzZXt2YXIgbT1ZKyhoLndfYml0cy04PDw0KTw8OCxuPS0xO249aC5zdHJhdGVneT49VHx8aC5sZXZlbDwyPzA6aC5sZXZlbDw2PzE6Nj09PWgubGV2ZWw/MjozLG18PW48PDYsMCE9PWguc3Ryc3RhcnQmJihtfD1rYiksbSs9MzEtbSUzMSxoLnN0YXR1cz1xYixqKGgsbSksMCE9PWguc3Ryc3RhcnQmJihqKGgsYS5hZGxlcj4+PjE2KSxqKGgsNjU1MzUmYS5hZGxlcikpLGEuYWRsZXI9MX1pZihoLnN0YXR1cz09PW1iKWlmKGguZ3poZWFkLmV4dHJhKXtmb3Ioaz1oLnBlbmRpbmc7aC5nemluZGV4PCg2NTUzNSZoLmd6aGVhZC5leHRyYS5sZW5ndGgpJiYoaC5wZW5kaW5nIT09aC5wZW5kaW5nX2J1Zl9zaXplfHwoaC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxnKGEpLGs9aC5wZW5kaW5nLGgucGVuZGluZyE9PWgucGVuZGluZ19idWZfc2l6ZSkpOylpKGgsMjU1JmguZ3poZWFkLmV4dHJhW2guZ3ppbmRleF0pLGguZ3ppbmRleCsrO2guZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksaC5nemluZGV4PT09aC5nemhlYWQuZXh0cmEubGVuZ3RoJiYoaC5nemluZGV4PTAsaC5zdGF0dXM9bmIpfWVsc2UgaC5zdGF0dXM9bmI7aWYoaC5zdGF0dXM9PT1uYilpZihoLmd6aGVhZC5uYW1lKXtrPWgucGVuZGluZztkb3tpZihoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUmJihoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGcoYSksaz1oLnBlbmRpbmcsaC5wZW5kaW5nPT09aC5wZW5kaW5nX2J1Zl9zaXplKSl7bD0xO2JyZWFrfWw9aC5nemluZGV4PGguZ3poZWFkLm5hbWUubGVuZ3RoPzI1NSZoLmd6aGVhZC5uYW1lLmNoYXJDb2RlQXQoaC5nemluZGV4KyspOjAsaShoLGwpfXdoaWxlKDAhPT1sKTtoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLDA9PT1sJiYoaC5nemluZGV4PTAsaC5zdGF0dXM9b2IpfWVsc2UgaC5zdGF0dXM9b2I7aWYoaC5zdGF0dXM9PT1vYilpZihoLmd6aGVhZC5jb21tZW50KXtrPWgucGVuZGluZztkb3tpZihoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUmJihoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGcoYSksaz1oLnBlbmRpbmcsaC5wZW5kaW5nPT09aC5wZW5kaW5nX2J1Zl9zaXplKSl7bD0xO2JyZWFrfWw9aC5nemluZGV4PGguZ3poZWFkLmNvbW1lbnQubGVuZ3RoPzI1NSZoLmd6aGVhZC5jb21tZW50LmNoYXJDb2RlQXQoaC5nemluZGV4KyspOjAsaShoLGwpfXdoaWxlKDAhPT1sKTtoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLDA9PT1sJiYoaC5zdGF0dXM9cGIpfWVsc2UgaC5zdGF0dXM9cGI7aWYoaC5zdGF0dXM9PT1wYiYmKGguZ3poZWFkLmhjcmM/KGgucGVuZGluZysyPmgucGVuZGluZ19idWZfc2l6ZSYmZyhhKSxoLnBlbmRpbmcrMjw9aC5wZW5kaW5nX2J1Zl9zaXplJiYoaShoLDI1NSZhLmFkbGVyKSxpKGgsYS5hZGxlcj4+OCYyNTUpLGEuYWRsZXI9MCxoLnN0YXR1cz1xYikpOmguc3RhdHVzPXFiKSwwIT09aC5wZW5kaW5nKXtpZihnKGEpLDA9PT1hLmF2YWlsX291dClyZXR1cm4gaC5sYXN0X2ZsdXNoPS0xLE19ZWxzZSBpZigwPT09YS5hdmFpbF9pbiYmZShiKTw9ZShjKSYmYiE9PUspcmV0dXJuIGQoYSxRKTtpZihoLnN0YXR1cz09PXJiJiYwIT09YS5hdmFpbF9pbilyZXR1cm4gZChhLFEpO2lmKDAhPT1hLmF2YWlsX2lufHwwIT09aC5sb29rYWhlYWR8fGIhPT1IJiZoLnN0YXR1cyE9PXJiKXt2YXIgbz1oLnN0cmF0ZWd5PT09VD9yKGgsYik6aC5zdHJhdGVneT09PVU/cShoLGIpOkJbaC5sZXZlbF0uZnVuYyhoLGIpO2lmKChvPT09dWJ8fG89PT12YikmJihoLnN0YXR1cz1yYiksbz09PXNifHxvPT09dWIpcmV0dXJuIDA9PT1hLmF2YWlsX291dCYmKGgubGFzdF9mbHVzaD0tMSksTTtpZihvPT09dGImJihiPT09ST9ELl90cl9hbGlnbihoKTpiIT09TCYmKEQuX3RyX3N0b3JlZF9ibG9jayhoLDAsMCwhMSksYj09PUomJihmKGguaGVhZCksMD09PWgubG9va2FoZWFkJiYoaC5zdHJzdGFydD0wLGguYmxvY2tfc3RhcnQ9MCxoLmluc2VydD0wKSkpLGcoYSksMD09PWEuYXZhaWxfb3V0KSlyZXR1cm4gaC5sYXN0X2ZsdXNoPS0xLE19cmV0dXJuIGIhPT1LP006aC53cmFwPD0wP046KDI9PT1oLndyYXA/KGkoaCwyNTUmYS5hZGxlciksaShoLGEuYWRsZXI+PjgmMjU1KSxpKGgsYS5hZGxlcj4+MTYmMjU1KSxpKGgsYS5hZGxlcj4+MjQmMjU1KSxpKGgsMjU1JmEudG90YWxfaW4pLGkoaCxhLnRvdGFsX2luPj44JjI1NSksaShoLGEudG90YWxfaW4+PjE2JjI1NSksaShoLGEudG90YWxfaW4+PjI0JjI1NSkpOihqKGgsYS5hZGxlcj4+PjE2KSxqKGgsNjU1MzUmYS5hZGxlcikpLGcoYSksaC53cmFwPjAmJihoLndyYXA9LWgud3JhcCksMCE9PWgucGVuZGluZz9NOk4pfWZ1bmN0aW9uIEEoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZS5zdGF0dXMsYiE9PWxiJiZiIT09bWImJmIhPT1uYiYmYiE9PW9iJiZiIT09cGImJmIhPT1xYiYmYiE9PXJiP2QoYSxPKTooYS5zdGF0ZT1udWxsLGI9PT1xYj9kKGEsUCk6TSkpOk99dmFyIEIsQz1hKCIuLi91dGlscy9jb21tb24iKSxEPWEoIi4vdHJlZXMiKSxFPWEoIi4vYWRsZXIzMiIpLEY9YSgiLi9jcmMzMiIpLEc9YSgiLi9tZXNzYWdlcyIpLEg9MCxJPTEsSj0zLEs9NCxMPTUsTT0wLE49MSxPPS0yLFA9LTMsUT0tNSxSPS0xLFM9MSxUPTIsVT0zLFY9NCxXPTAsWD0yLFk9OCxaPTksJD0xNSxfPTgsYWI9MjksYmI9MjU2LGNiPWJiKzErYWIsZGI9MzAsZWI9MTksZmI9MipjYisxLGdiPTE1LGhiPTMsaWI9MjU4LGpiPWliK2hiKzEsa2I9MzIsbGI9NDIsbWI9NjksbmI9NzMsb2I9OTEscGI9MTAzLHFiPTExMyxyYj02NjYsc2I9MSx0Yj0yLHViPTMsdmI9NCx3Yj0zLHhiPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5nb29kX2xlbmd0aD1hLHRoaXMubWF4X2xhenk9Yix0aGlzLm5pY2VfbGVuZ3RoPWMsdGhpcy5tYXhfY2hhaW49ZCx0aGlzLmZ1bmM9ZX07Qj1bbmV3IHhiKDAsMCwwLDAsbiksbmV3IHhiKDQsNCw4LDQsbyksbmV3IHhiKDQsNSwxNiw4LG8pLG5ldyB4Yig0LDYsMzIsMzIsbyksbmV3IHhiKDQsNCwxNiwxNixwKSxuZXcgeGIoOCwxNiwzMiwzMixwKSxuZXcgeGIoOCwxNiwxMjgsMTI4LHApLG5ldyB4Yig4LDMyLDEyOCwyNTYscCksbmV3IHhiKDMyLDEyOCwyNTgsMTAyNCxwKSxuZXcgeGIoMzIsMjU4LDI1OCw0MDk2LHApXSxjLmRlZmxhdGVJbml0PXksYy5kZWZsYXRlSW5pdDI9eCxjLmRlZmxhdGVSZXNldD12LGMuZGVmbGF0ZVJlc2V0S2VlcD11LGMuZGVmbGF0ZVNldEhlYWRlcj13LGMuZGVmbGF0ZT16LGMuZGVmbGF0ZUVuZD1BLGMuZGVmbGF0ZUluZm89InBha28gZGVmbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6MjcsIi4vYWRsZXIzMiI6MjksIi4vY3JjMzIiOjMxLCIuL21lc3NhZ2VzIjozNywiLi90cmVlcyI6Mzh9XSwzMzpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe3RoaXMudGV4dD0wLHRoaXMudGltZT0wLHRoaXMueGZsYWdzPTAsdGhpcy5vcz0wLHRoaXMuZXh0cmE9bnVsbCx0aGlzLmV4dHJhX2xlbj0wLHRoaXMubmFtZT0iIix0aGlzLmNvbW1lbnQ9IiIsdGhpcy5oY3JjPTAsdGhpcy5kb25lPSExfWIuZXhwb3J0cz1jfSx7fV0sMzQ6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPTMwLGQ9MTI7Yi5leHBvcnRzPWZ1bmN0aW9uKGEsYil7dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdSx2LHcseCx5LHosQSxCLEM7ZT1hLnN0YXRlLGY9YS5uZXh0X2luLEI9YS5pbnB1dCxnPWYrKGEuYXZhaWxfaW4tNSksaD1hLm5leHRfb3V0LEM9YS5vdXRwdXQsaT1oLShiLWEuYXZhaWxfb3V0KSxqPWgrKGEuYXZhaWxfb3V0LTI1Nyksaz1lLmRtYXgsbD1lLndzaXplLG09ZS53aGF2ZSxuPWUud25leHQsbz1lLndpbmRvdyxwPWUuaG9sZCxxPWUuYml0cyxyPWUubGVuY29kZSxzPWUuZGlzdGNvZGUsdD0oMTw8ZS5sZW5iaXRzKS0xLHU9KDE8PGUuZGlzdGJpdHMpLTE7YTpkb3sxNT5xJiYocCs9QltmKytdPDxxLHErPTgscCs9QltmKytdPDxxLHErPTgpLHY9cltwJnRdO2I6Zm9yKDs7KXtpZih3PXY+Pj4yNCxwPj4+PXcscS09dyx3PXY+Pj4xNiYyNTUsMD09PXcpQ1toKytdPTY1NTM1JnY7ZWxzZXtpZighKDE2JncpKXtpZigwPT09KDY0JncpKXt2PXJbKDY1NTM1JnYpKyhwJigxPDx3KS0xKV07Y29udGludWUgYn1pZigzMiZ3KXtlLm1vZGU9ZDticmVhayBhfWEubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLGUubW9kZT1jO2JyZWFrIGF9eD02NTUzNSZ2LHcmPTE1LHcmJih3PnEmJihwKz1CW2YrK108PHEscSs9OCkseCs9cCYoMTw8dyktMSxwPj4+PXcscS09dyksMTU+cSYmKHArPUJbZisrXTw8cSxxKz04LHArPUJbZisrXTw8cSxxKz04KSx2PXNbcCZ1XTtjOmZvcig7Oyl7aWYodz12Pj4+MjQscD4+Pj13LHEtPXcsdz12Pj4+MTYmMjU1LCEoMTYmdykpe2lmKDA9PT0oNjQmdykpe3Y9c1soNjU1MzUmdikrKHAmKDE8PHcpLTEpXTtjb250aW51ZSBjfWEubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLGUubW9kZT1jO2JyZWFrIGF9aWYoeT02NTUzNSZ2LHcmPTE1LHc+cSYmKHArPUJbZisrXTw8cSxxKz04LHc+cSYmKHArPUJbZisrXTw8cSxxKz04KSkseSs9cCYoMTw8dyktMSx5Pmspe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsZS5tb2RlPWM7YnJlYWsgYX1pZihwPj4+PXcscS09dyx3PWgtaSx5Pncpe2lmKHc9eS13LHc+bSYmZS5zYW5lKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLGUubW9kZT1jO2JyZWFrIGF9aWYoej0wLEE9bywwPT09bil7aWYoeis9bC13LHg+dyl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7ej1oLXksQT1DfX1lbHNlIGlmKHc+bil7aWYoeis9bCtuLXcsdy09bix4Pncpe3gtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcpO2lmKHo9MCx4Pm4pe3c9bix4LT13O2RvIENbaCsrXT1vW3orK107d2hpbGUoLS13KTt6PWgteSxBPUN9fX1lbHNlIGlmKHorPW4tdyx4Pncpe3gtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcpO3o9aC15LEE9Q31mb3IoO3g+MjspQ1toKytdPUFbeisrXSxDW2grK109QVt6KytdLENbaCsrXT1BW3orK10seC09Mzt4JiYoQ1toKytdPUFbeisrXSx4PjEmJihDW2grK109QVt6KytdKSl9ZWxzZXt6PWgteTtkbyBDW2grK109Q1t6KytdLENbaCsrXT1DW3orK10sQ1toKytdPUNbeisrXSx4LT0zO3doaWxlKHg+Mik7eCYmKENbaCsrXT1DW3orK10seD4xJiYoQ1toKytdPUNbeisrXSkpfWJyZWFrfX1icmVha319d2hpbGUoZz5mJiZqPmgpO3g9cT4+MyxmLT14LHEtPXg8PDMscCY9KDE8PHEpLTEsYS5uZXh0X2luPWYsYS5uZXh0X291dD1oLGEuYXZhaWxfaW49Zz5mPzUrKGctZik6NS0oZi1nKSxhLmF2YWlsX291dD1qPmg/MjU3KyhqLWgpOjI1Ny0oaC1qKSxlLmhvbGQ9cCxlLmJpdHM9cX19LHt9XSwzNTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3JldHVybihhPj4+MjQmMjU1KSsoYT4+PjgmNjUyODApKygoNjUyODAmYSk8PDgpKygoMjU1JmEpPDwyNCl9ZnVuY3Rpb24gZSgpe3RoaXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5kaXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgci5CdWYxNigzMjApLHRoaXMud29yaz1uZXcgci5CdWYxNigyODgpLHRoaXMubGVuZHluPW51bGwsdGhpcy5kaXN0ZHluPW51bGwsdGhpcy5zYW5lPTAsdGhpcy5iYWNrPTAsdGhpcy53YXM9MH1mdW5jdGlvbiBmKGEpe3ZhciBiO3JldHVybiBhJiZhLnN0YXRlPyhiPWEuc3RhdGUsYS50b3RhbF9pbj1hLnRvdGFsX291dD1iLnRvdGFsPTAsYS5tc2c9IiIsYi53cmFwJiYoYS5hZGxlcj0xJmIud3JhcCksYi5tb2RlPUssYi5sYXN0PTAsYi5oYXZlZGljdD0wLGIuZG1heD0zMjc2OCxiLmhlYWQ9bnVsbCxiLmhvbGQ9MCxiLmJpdHM9MCxiLmxlbmNvZGU9Yi5sZW5keW49bmV3IHIuQnVmMzIob2IpLGIuZGlzdGNvZGU9Yi5kaXN0ZHluPW5ldyByLkJ1ZjMyKHBiKSxiLnNhbmU9MSxiLmJhY2s9LTEsQyk6Rn1mdW5jdGlvbiBnKGEpe3ZhciBiO3JldHVybiBhJiZhLnN0YXRlPyhiPWEuc3RhdGUsYi53c2l6ZT0wLGIud2hhdmU9MCxiLnduZXh0PTAsZihhKSk6Rn1mdW5jdGlvbiBoKGEsYil7dmFyIGMsZDtyZXR1cm4gYSYmYS5zdGF0ZT8oZD1hLnN0YXRlLDA+Yj8oYz0wLGI9LWIpOihjPShiPj40KSsxLDQ4PmImJihiJj0xNSkpLGImJig4PmJ8fGI+MTUpP0Y6KG51bGwhPT1kLndpbmRvdyYmZC53Yml0cyE9PWImJihkLndpbmRvdz1udWxsKSxkLndyYXA9YyxkLndiaXRzPWIsZyhhKSkpOkZ9ZnVuY3Rpb24gaShhLGIpe3ZhciBjLGQ7cmV0dXJuIGE/KGQ9bmV3IGUsYS5zdGF0ZT1kLGQud2luZG93PW51bGwsYz1oKGEsYiksYyE9PUMmJihhLnN0YXRlPW51bGwpLGMpOkZ9ZnVuY3Rpb24gaihhKXtyZXR1cm4gaShhLHJiKX1mdW5jdGlvbiBrKGEpe2lmKHNiKXt2YXIgYjtmb3IocD1uZXcgci5CdWYzMig1MTIpLHE9bmV3IHIuQnVmMzIoMzIpLGI9MDsxNDQ+YjspYS5sZW5zW2IrK109ODtmb3IoOzI1Nj5iOylhLmxlbnNbYisrXT05O2Zvcig7MjgwPmI7KWEubGVuc1tiKytdPTc7Zm9yKDsyODg+YjspYS5sZW5zW2IrK109ODtmb3Iodih4LGEubGVucywwLDI4OCxwLDAsYS53b3JrLHtiaXRzOjl9KSxiPTA7MzI+YjspYS5sZW5zW2IrK109NTt2KHksYS5sZW5zLDAsMzIscSwwLGEud29yayx7Yml0czo1fSksc2I9ITF9YS5sZW5jb2RlPXAsYS5sZW5iaXRzPTksYS5kaXN0Y29kZT1xLGEuZGlzdGJpdHM9NX1mdW5jdGlvbiBsKGEsYixjLGQpe3ZhciBlLGY9YS5zdGF0ZTtyZXR1cm4gbnVsbD09PWYud2luZG93JiYoZi53c2l6ZT0xPDxmLndiaXRzLGYud25leHQ9MCxmLndoYXZlPTAsZi53aW5kb3c9bmV3IHIuQnVmOChmLndzaXplKSksZD49Zi53c2l6ZT8oci5hcnJheVNldChmLndpbmRvdyxiLGMtZi53c2l6ZSxmLndzaXplLDApLGYud25leHQ9MCxmLndoYXZlPWYud3NpemUpOihlPWYud3NpemUtZi53bmV4dCxlPmQmJihlPWQpLHIuYXJyYXlTZXQoZi53aW5kb3csYixjLWQsZSxmLnduZXh0KSxkLT1lLGQ/KHIuYXJyYXlTZXQoZi53aW5kb3csYixjLWQsZCwwKSxmLnduZXh0PWQsZi53aGF2ZT1mLndzaXplKTooZi53bmV4dCs9ZSxmLnduZXh0PT09Zi53c2l6ZSYmKGYud25leHQ9MCksZi53aGF2ZTxmLndzaXplJiYoZi53aGF2ZSs9ZSkpKSwwfWZ1bmN0aW9uIG0oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixtLG4sbyxwLHEsb2IscGIscWIscmIsc2IsdGIsdWIsdmIsd2IseGIseWIsemIsQWI9MCxCYj1uZXcgci5CdWY4KDQpLENiPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XTtpZighYXx8IWEuc3RhdGV8fCFhLm91dHB1dHx8IWEuaW5wdXQmJjAhPT1hLmF2YWlsX2luKXJldHVybiBGO2M9YS5zdGF0ZSxjLm1vZGU9PT1WJiYoYy5tb2RlPVcpLGg9YS5uZXh0X291dCxmPWEub3V0cHV0LGo9YS5hdmFpbF9vdXQsZz1hLm5leHRfaW4sZT1hLmlucHV0LGk9YS5hdmFpbF9pbixtPWMuaG9sZCxuPWMuYml0cyxvPWkscD1qLHhiPUM7YTpmb3IoOzspc3dpdGNoKGMubW9kZSl7Y2FzZSBLOmlmKDA9PT1jLndyYXApe2MubW9kZT1XO2JyZWFrfWZvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKDImYy53cmFwJiYzNTYxNT09PW0pe2MuY2hlY2s9MCxCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsYy5jaGVjaz10KGMuY2hlY2ssQmIsMiwwKSxtPTAsbj0wLGMubW9kZT1MO2JyZWFrfWlmKGMuZmxhZ3M9MCxjLmhlYWQmJihjLmhlYWQuZG9uZT0hMSksISgxJmMud3JhcCl8fCgoKDI1NSZtKTw8OCkrKG0+PjgpKSUzMSl7YS5tc2c9ImluY29ycmVjdCBoZWFkZXIgY2hlY2siLGMubW9kZT1sYjticmVha31pZigoMTUmbSkhPT1KKXthLm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLGMubW9kZT1sYjticmVha31pZihtPj4+PTQsbi09NCx3Yj0oMTUmbSkrOCwwPT09Yy53Yml0cyljLndiaXRzPXdiO2Vsc2UgaWYod2I+Yy53Yml0cyl7YS5tc2c9ImludmFsaWQgd2luZG93IHNpemUiLGMubW9kZT1sYjticmVha31jLmRtYXg9MTw8d2IsYS5hZGxlcj1jLmNoZWNrPTEsYy5tb2RlPTUxMiZtP1Q6VixtPTAsbj0wO2JyZWFrO2Nhc2UgTDpmb3IoOzE2Pm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihjLmZsYWdzPW0sKDI1NSZjLmZsYWdzKSE9PUope2EubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsYy5tb2RlPWxiO2JyZWFrfWlmKDU3MzQ0JmMuZmxhZ3Mpe2EubXNnPSJ1bmtub3duIGhlYWRlciBmbGFncyBzZXQiLGMubW9kZT1sYjticmVha31jLmhlYWQmJihjLmhlYWQudGV4dD1tPj44JjEpLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCkpLG09MCxuPTAsYy5tb2RlPU07Y2FzZSBNOmZvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWMuaGVhZCYmKGMuaGVhZC50aW1lPW0pLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LEJiWzJdPW0+Pj4xNiYyNTUsQmJbM109bT4+PjI0JjI1NSxjLmNoZWNrPXQoYy5jaGVjayxCYiw0LDApKSxtPTAsbj0wLGMubW9kZT1OO2Nhc2UgTjpmb3IoOzE2Pm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmhlYWQmJihjLmhlYWQueGZsYWdzPTI1NSZtLGMuaGVhZC5vcz1tPj44KSw1MTImYy5mbGFncyYmKEJiWzBdPTI1NSZtLEJiWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXQoYy5jaGVjayxCYiwyLDApKSxtPTAsbj0wLGMubW9kZT1PO2Nhc2UgTzppZigxMDI0JmMuZmxhZ3Mpe2Zvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWMubGVuZ3RoPW0sYy5oZWFkJiYoYy5oZWFkLmV4dHJhX2xlbj1tKSw1MTImYy5mbGFncyYmKEJiWzBdPTI1NSZtLEJiWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXQoYy5jaGVjayxCYiwyLDApKSxtPTAsbj0wfWVsc2UgYy5oZWFkJiYoYy5oZWFkLmV4dHJhPW51bGwpO2MubW9kZT1QO2Nhc2UgUDppZigxMDI0JmMuZmxhZ3MmJihxPWMubGVuZ3RoLHE+aSYmKHE9aSkscSYmKGMuaGVhZCYmKHdiPWMuaGVhZC5leHRyYV9sZW4tYy5sZW5ndGgsYy5oZWFkLmV4dHJhfHwoYy5oZWFkLmV4dHJhPW5ldyBBcnJheShjLmhlYWQuZXh0cmFfbGVuKSksci5hcnJheVNldChjLmhlYWQuZXh0cmEsZSxnLHEsd2IpKSw1MTImYy5mbGFncyYmKGMuY2hlY2s9dChjLmNoZWNrLGUscSxnKSksaS09cSxnKz1xLGMubGVuZ3RoLT1xKSxjLmxlbmd0aCkpYnJlYWsgYTtjLmxlbmd0aD0wLGMubW9kZT1RO2Nhc2UgUTppZigyMDQ4JmMuZmxhZ3Mpe2lmKDA9PT1pKWJyZWFrIGE7cT0wO2RvIHdiPWVbZytxKytdLGMuaGVhZCYmd2ImJmMubGVuZ3RoPDY1NTM2JiYoYy5oZWFkLm5hbWUrPVN0cmluZy5mcm9tQ2hhckNvZGUod2IpKTt3aGlsZSh3YiYmaT5xKTtpZig1MTImYy5mbGFncyYmKGMuY2hlY2s9dChjLmNoZWNrLGUscSxnKSksaS09cSxnKz1xLHdiKWJyZWFrIGF9ZWxzZSBjLmhlYWQmJihjLmhlYWQubmFtZT1udWxsKTtjLmxlbmd0aD0wLGMubW9kZT1SO2Nhc2UgUjppZig0MDk2JmMuZmxhZ3Mpe2lmKDA9PT1pKWJyZWFrIGE7cT0wO2RvIHdiPWVbZytxKytdLGMuaGVhZCYmd2ImJmMubGVuZ3RoPDY1NTM2JiYoYy5oZWFkLmNvbW1lbnQrPVN0cmluZy5mcm9tQ2hhckNvZGUod2IpKTt3aGlsZSh3YiYmaT5xKTtpZig1MTImYy5mbGFncyYmKGMuY2hlY2s9dChjLmNoZWNrLGUscSxnKSksaS09cSxnKz1xLHdiKWJyZWFrIGF9ZWxzZSBjLmhlYWQmJihjLmhlYWQuY29tbWVudD1udWxsKTtjLm1vZGU9UztjYXNlIFM6aWYoNTEyJmMuZmxhZ3Mpe2Zvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKG0hPT0oNjU1MzUmYy5jaGVjaykpe2EubXNnPSJoZWFkZXIgY3JjIG1pc21hdGNoIixjLm1vZGU9bGI7YnJlYWt9bT0wLG49MH1jLmhlYWQmJihjLmhlYWQuaGNyYz1jLmZsYWdzPj45JjEsYy5oZWFkLmRvbmU9ITApLGEuYWRsZXI9Yy5jaGVjaz0wLGMubW9kZT1WO2JyZWFrO2Nhc2UgVDpmb3IoOzMyPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1hLmFkbGVyPWMuY2hlY2s9ZChtKSxtPTAsbj0wLGMubW9kZT1VO2Nhc2UgVTppZigwPT09Yy5oYXZlZGljdClyZXR1cm4gYS5uZXh0X291dD1oLGEuYXZhaWxfb3V0PWosYS5uZXh0X2luPWcsYS5hdmFpbF9pbj1pLGMuaG9sZD1tLGMuYml0cz1uLEU7YS5hZGxlcj1jLmNoZWNrPTEsYy5tb2RlPVY7Y2FzZSBWOmlmKGI9PT1BfHxiPT09QilicmVhayBhO2Nhc2UgVzppZihjLmxhc3Qpe20+Pj49NyZuLG4tPTcmbixjLm1vZGU9aWI7YnJlYWt9Zm9yKDszPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1zd2l0Y2goYy5sYXN0PTEmbSxtPj4+PTEsbi09MSwzJm0pe2Nhc2UgMDpjLm1vZGU9WDticmVhaztjYXNlIDE6aWYoayhjKSxjLm1vZGU9YmIsYj09PUIpe20+Pj49MixuLT0yO2JyZWFrIGF9YnJlYWs7Y2FzZSAyOmMubW9kZT0kO2JyZWFrO2Nhc2UgMzphLm1zZz0iaW52YWxpZCBibG9jayB0eXBlIixjLm1vZGU9bGJ9bT4+Pj0yLG4tPTI7YnJlYWs7Y2FzZSBYOmZvcihtPj4+PTcmbixuLT03Jm47MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKCg2NTUzNSZtKSE9PShtPj4+MTZeNjU1MzUpKXthLm1zZz0iaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocyIsYy5tb2RlPWxiO2JyZWFrfWlmKGMubGVuZ3RoPTY1NTM1Jm0sbT0wLG49MCxjLm1vZGU9WSxiPT09QilicmVhayBhO2Nhc2UgWTpjLm1vZGU9WjtjYXNlIFo6aWYocT1jLmxlbmd0aCl7aWYocT5pJiYocT1pKSxxPmomJihxPWopLDA9PT1xKWJyZWFrIGE7ci5hcnJheVNldChmLGUsZyxxLGgpLGktPXEsZys9cSxqLT1xLGgrPXEsYy5sZW5ndGgtPXE7YnJlYWt9Yy5tb2RlPVY7YnJlYWs7Y2FzZSAkOmZvcig7MTQ+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKGMubmxlbj0oMzEmbSkrMjU3LG0+Pj49NSxuLT01LGMubmRpc3Q9KDMxJm0pKzEsbT4+Pj01LG4tPTUsYy5uY29kZT0oMTUmbSkrNCxtPj4+PTQsbi09NCxjLm5sZW4+Mjg2fHxjLm5kaXN0PjMwKXthLm1zZz0idG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMiLGMubW9kZT1sYjticmVha31jLmhhdmU9MCxjLm1vZGU9XztjYXNlIF86Zm9yKDtjLmhhdmU8Yy5uY29kZTspe2Zvcig7Mz5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5sZW5zW0NiW2MuaGF2ZSsrXV09NyZtLG0+Pj49MyxuLT0zfWZvcig7Yy5oYXZlPDE5OyljLmxlbnNbQ2JbYy5oYXZlKytdXT0wO2lmKGMubGVuY29kZT1jLmxlbmR5bixjLmxlbmJpdHM9Nyx5Yj17Yml0czpjLmxlbmJpdHN9LHhiPXYodyxjLmxlbnMsMCwxOSxjLmxlbmNvZGUsMCxjLndvcmsseWIpLGMubGVuYml0cz15Yi5iaXRzLHhiKXthLm1zZz0iaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0IixjLm1vZGU9bGI7YnJlYWt9Yy5oYXZlPTAsYy5tb2RlPWFiO2Nhc2UgYWI6Zm9yKDtjLmhhdmU8Yy5ubGVuK2MubmRpc3Q7KXtmb3IoO0FiPWMubGVuY29kZVttJigxPDxjLmxlbmJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigxNj5zYiltPj4+PXFiLG4tPXFiLGMubGVuc1tjLmhhdmUrK109c2I7ZWxzZXtpZigxNj09PXNiKXtmb3IoemI9cWIrMjt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobT4+Pj1xYixuLT1xYiwwPT09Yy5oYXZlKXthLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsYy5tb2RlPWxiO2JyZWFrfXdiPWMubGVuc1tjLmhhdmUtMV0scT0zKygzJm0pLG0+Pj49MixuLT0yfWVsc2UgaWYoMTc9PT1zYil7Zm9yKHpiPXFiKzM7emI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fW0+Pj49cWIsbi09cWIsd2I9MCxxPTMrKDcmbSksbT4+Pj0zLG4tPTN9ZWxzZXtmb3IoemI9cWIrNzt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9bT4+Pj1xYixuLT1xYix3Yj0wLHE9MTErKDEyNyZtKSxtPj4+PTcsbi09N31pZihjLmhhdmUrcT5jLm5sZW4rYy5uZGlzdCl7YS5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLGMubW9kZT1sYjticmVha31mb3IoO3EtLTspYy5sZW5zW2MuaGF2ZSsrXT13Yn19aWYoYy5tb2RlPT09bGIpYnJlYWs7aWYoMD09PWMubGVuc1syNTZdKXthLm1zZz0iaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrIixjLm1vZGU9bGI7YnJlYWt9aWYoYy5sZW5iaXRzPTkseWI9e2JpdHM6Yy5sZW5iaXRzfSx4Yj12KHgsYy5sZW5zLDAsYy5ubGVuLGMubGVuY29kZSwwLGMud29yayx5YiksYy5sZW5iaXRzPXliLmJpdHMseGIpe2EubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQiLGMubW9kZT1sYjticmVha31pZihjLmRpc3RiaXRzPTYsYy5kaXN0Y29kZT1jLmRpc3RkeW4seWI9e2JpdHM6Yy5kaXN0Yml0c30seGI9dih5LGMubGVucyxjLm5sZW4sYy5uZGlzdCxjLmRpc3Rjb2RlLDAsYy53b3JrLHliKSxjLmRpc3RiaXRzPXliLmJpdHMseGIpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlcyBzZXQiLGMubW9kZT1sYjticmVha31pZihjLm1vZGU9YmIsYj09PUIpYnJlYWsgYTtjYXNlIGJiOmMubW9kZT1jYjtjYXNlIGNiOmlmKGk+PTYmJmo+PTI1OCl7YS5uZXh0X291dD1oLGEuYXZhaWxfb3V0PWosYS5uZXh0X2luPWcsYS5hdmFpbF9pbj1pLGMuaG9sZD1tLGMuYml0cz1uLHUoYSxwKSxoPWEubmV4dF9vdXQsZj1hLm91dHB1dCxqPWEuYXZhaWxfb3V0LGc9YS5uZXh0X2luLGU9YS5pbnB1dCxpPWEuYXZhaWxfaW4sbT1jLmhvbGQsbj1jLmJpdHMsYy5tb2RlPT09ViYmKGMuYmFjaz0tMSk7YnJlYWt9Zm9yKGMuYmFjaz0wO0FiPWMubGVuY29kZVttJigxPDxjLmxlbmJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihyYiYmMD09PSgyNDAmcmIpKXtmb3IodGI9cWIsdWI9cmIsdmI9c2I7QWI9Yy5sZW5jb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLGMubGVuZ3RoPXNiLDA9PT1yYil7Yy5tb2RlPWhiO2JyZWFrfWlmKDMyJnJiKXtjLmJhY2s9LTEsYy5tb2RlPVY7YnJlYWt9aWYoNjQmcmIpe2EubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLGMubW9kZT1sYjticmVha31jLmV4dHJhPTE1JnJiLGMubW9kZT1kYjtjYXNlIGRiOmlmKGMuZXh0cmEpe2Zvcih6Yj1jLmV4dHJhO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbmd0aCs9bSYoMTw8Yy5leHRyYSktMSxtPj4+PWMuZXh0cmEsbi09Yy5leHRyYSxjLmJhY2srPWMuZXh0cmF9Yy53YXM9Yy5sZW5ndGgsYy5tb2RlPWViO2Nhc2UgZWI6Zm9yKDtBYj1jLmRpc3Rjb2RlW20mKDE8PGMuZGlzdGJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigwPT09KDI0MCZyYikpe2Zvcih0Yj1xYix1Yj1yYix2Yj1zYjtBYj1jLmRpc3Rjb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLDY0JnJiKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixjLm1vZGU9bGI7YnJlYWt9Yy5vZmZzZXQ9c2IsYy5leHRyYT0xNSZyYixjLm1vZGU9ZmI7Y2FzZSBmYjppZihjLmV4dHJhKXtmb3IoemI9Yy5leHRyYTt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5vZmZzZXQrPW0mKDE8PGMuZXh0cmEpLTEsbT4+Pj1jLmV4dHJhLG4tPWMuZXh0cmEsYy5iYWNrKz1jLmV4dHJhfWlmKGMub2Zmc2V0PmMuZG1heCl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixjLm1vZGU9bGI7YnJlYWt9Yy5tb2RlPWdiO2Nhc2UgZ2I6aWYoMD09PWopYnJlYWsgYTtpZihxPXAtaixjLm9mZnNldD5xKXtpZihxPWMub2Zmc2V0LXEscT5jLndoYXZlJiZjLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsYy5tb2RlPWxiO2JyZWFrfXE+Yy53bmV4dD8ocS09Yy53bmV4dCxvYj1jLndzaXplLXEpOm9iPWMud25leHQtcSxxPmMubGVuZ3RoJiYocT1jLmxlbmd0aCkscGI9Yy53aW5kb3d9ZWxzZSBwYj1mLG9iPWgtYy5vZmZzZXQscT1jLmxlbmd0aDtxPmomJihxPWopLGotPXEsYy5sZW5ndGgtPXE7ZG8gZltoKytdPXBiW29iKytdO3doaWxlKC0tcSk7MD09PWMubGVuZ3RoJiYoYy5tb2RlPWNiKTticmVhaztjYXNlIGhiOmlmKDA9PT1qKWJyZWFrIGE7ZltoKytdPWMubGVuZ3RoLGotLSxjLm1vZGU9Y2I7YnJlYWs7Y2FzZSBpYjppZihjLndyYXApe2Zvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG18PWVbZysrXTw8bixuKz04fWlmKHAtPWosYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxwJiYoYS5hZGxlcj1jLmNoZWNrPWMuZmxhZ3M/dChjLmNoZWNrLGYscCxoLXApOnMoYy5jaGVjayxmLHAsaC1wKSkscD1qLChjLmZsYWdzP206ZChtKSkhPT1jLmNoZWNrKXthLm1zZz0iaW5jb3JyZWN0IGRhdGEgY2hlY2siLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMubW9kZT1qYjtjYXNlIGpiOmlmKGMud3JhcCYmYy5mbGFncyl7Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobSE9PSg0Mjk0OTY3Mjk1JmMudG90YWwpKXthLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsYy5tb2RlPWxiO2JyZWFrfW09MCxuPTB9Yy5tb2RlPWtiO2Nhc2Uga2I6eGI9RDticmVhayBhO2Nhc2UgbGI6eGI9RzticmVhayBhO2Nhc2UgbWI6cmV0dXJuIEg7Y2FzZSBuYjpkZWZhdWx0OnJldHVybiBGfXJldHVybiBhLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sKGMud3NpemV8fHAhPT1hLmF2YWlsX291dCYmYy5tb2RlPGxiJiYoYy5tb2RlPGlifHxiIT09eikpJiZsKGEsYS5vdXRwdXQsYS5uZXh0X291dCxwLWEuYXZhaWxfb3V0KT8oYy5tb2RlPW1iLEgpOihvLT1hLmF2YWlsX2luLHAtPWEuYXZhaWxfb3V0LGEudG90YWxfaW4rPW8sYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxjLndyYXAmJnAmJihhLmFkbGVyPWMuY2hlY2s9Yy5mbGFncz90KGMuY2hlY2ssZixwLGEubmV4dF9vdXQtcCk6cyhjLmNoZWNrLGYscCxhLm5leHRfb3V0LXApKSxhLmRhdGFfdHlwZT1jLmJpdHMrKGMubGFzdD82NDowKSsoYy5tb2RlPT09Vj8xMjg6MCkrKGMubW9kZT09PWJifHxjLm1vZGU9PT1ZPzI1NjowKSwoMD09PW8mJjA9PT1wfHxiPT09eikmJnhiPT09QyYmKHhiPUkpLHhiKX1mdW5jdGlvbiBuKGEpe2lmKCFhfHwhYS5zdGF0ZSlyZXR1cm4gRjt2YXIgYj1hLnN0YXRlO3JldHVybiBiLndpbmRvdyYmKGIud2luZG93PW51bGwpLGEuc3RhdGU9bnVsbCxDfWZ1bmN0aW9uIG8oYSxiKXt2YXIgYztyZXR1cm4gYSYmYS5zdGF0ZT8oYz1hLnN0YXRlLDA9PT0oMiZjLndyYXApP0Y6KGMuaGVhZD1iLGIuZG9uZT0hMSxDKSk6Rn12YXIgcCxxLHI9YSgiLi4vdXRpbHMvY29tbW9uIikscz1hKCIuL2FkbGVyMzIiKSx0PWEoIi4vY3JjMzIiKSx1PWEoIi4vaW5mZmFzdCIpLHY9YSgiLi9pbmZ0cmVlcyIpLHc9MCx4PTEseT0yLHo9NCxBPTUsQj02LEM9MCxEPTEsRT0yLEY9LTIsRz0tMyxIPS00LEk9LTUsSj04LEs9MSxMPTIsTT0zLE49NCxPPTUsUD02LFE9NyxSPTgsUz05LFQ9MTAsVT0xMSxWPTEyLFc9MTMsWD0xNCxZPTE1LFo9MTYsJD0xNyxfPTE4LGFiPTE5LGJiPTIwLGNiPTIxLGRiPTIyLGViPTIzLGZiPTI0LGdiPTI1LGhiPTI2LGliPTI3LGpiPTI4LGtiPTI5LGxiPTMwLG1iPTMxLG5iPTMyLG9iPTg1MixwYj01OTIscWI9MTUscmI9cWIsc2I9ITA7Yy5pbmZsYXRlUmVzZXQ9ZyxjLmluZmxhdGVSZXNldDI9aCxjLmluZmxhdGVSZXNldEtlZXA9ZixjLmluZmxhdGVJbml0PWosYy5pbmZsYXRlSW5pdDI9aSxjLmluZmxhdGU9bSxjLmluZmxhdGVFbmQ9bixjLmluZmxhdGVHZXRIZWFkZXI9byxjLmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9pbmZmYXN0IjozNCwiLi9pbmZ0cmVlcyI6MzZ9XSwzNjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi4vdXRpbHMvY29tbW9uIiksZD0xNSxlPTg1MixmPTU5MixnPTAsaD0xLGk9MixqPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0saz1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgsMTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsNzIsNzhdLGw9WzEsMiwzLDQsNSw3LDksMTMsMTcsMjUsMzMsNDksNjUsOTcsMTI5LDE5MywyNTcsMzg1LDUxMyw3NjksMTAyNSwxNTM3LDIwNDksMzA3Myw0MDk3LDYxNDUsODE5MywxMjI4OSwxNjM4NSwyNDU3NywwLDBdLG09WzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XTtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiLG4sbyxwLHEscixzKXt2YXIgdCx1LHYsdyx4LHkseixBLEIsQz1zLmJpdHMsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49bnVsbCxPPTAsUD1uZXcgYy5CdWYxNihkKzEpLFE9bmV3IGMuQnVmMTYoZCsxKSxSPW51bGwsUz0wO2ZvcihEPTA7ZD49RDtEKyspUFtEXT0wO2ZvcihFPTA7bz5FO0UrKylQW2JbbitFXV0rKztmb3IoSD1DLEc9ZDtHPj0xJiYwPT09UFtHXTtHLS0pO2lmKEg+RyYmKEg9RyksMD09PUcpcmV0dXJuIHBbcSsrXT0yMDk3MTUyMCxwW3ErK109MjA5NzE1MjAscy5iaXRzPTEsMDtmb3IoRj0xO0c+RiYmMD09PVBbRl07RisrKTtmb3IoRj5IJiYoSD1GKSxLPTEsRD0xO2Q+PUQ7RCsrKWlmKEs8PD0xLEstPVBbRF0sMD5LKXJldHVybi0xO2lmKEs+MCYmKGE9PT1nfHwxIT09RykpcmV0dXJuLTE7Zm9yKFFbMV09MCxEPTE7ZD5EO0QrKylRW0QrMV09UVtEXStQW0RdO2ZvcihFPTA7bz5FO0UrKykwIT09YltuK0VdJiYocltRW2JbbitFXV0rK109RSk7aWYoYT09PWc/KE49Uj1yLHk9MTkpOmE9PT1oPyhOPWosTy09MjU3LFI9ayxTLT0yNTcseT0yNTYpOihOPWwsUj1tLHk9LTEpLE09MCxFPTAsRD1GLHg9cSxJPUgsSj0wLHY9LTEsTD0xPDxILHc9TC0xLGE9PT1oJiZMPmV8fGE9PT1pJiZMPmYpcmV0dXJuIDE7Zm9yKHZhciBUPTA7Oyl7VCsrLHo9RC1KLHJbRV08eT8oQT0wLEI9cltFXSk6cltFXT55PyhBPVJbUytyW0VdXSxCPU5bTytyW0VdXSk6KEE9OTYsQj0wKSx0PTE8PEQtSix1PTE8PEksRj11O2RvIHUtPXQscFt4KyhNPj5KKSt1XT16PDwyNHxBPDwxNnxCfDA7d2hpbGUoMCE9PXUpO2Zvcih0PTE8PEQtMTtNJnQ7KXQ+Pj0xO2lmKDAhPT10PyhNJj10LTEsTSs9dCk6TT0wLEUrKywwPT09LS1QW0RdKXtpZihEPT09RylicmVhaztEPWJbbityW0VdXX1pZihEPkgmJihNJncpIT09dil7Zm9yKDA9PT1KJiYoSj1IKSx4Kz1GLEk9RC1KLEs9MTw8STtHPkkrSiYmKEstPVBbSStKXSwhKDA+PUspKTspSSsrLEs8PD0xO2lmKEwrPTE8PEksYT09PWgmJkw+ZXx8YT09PWkmJkw+ZilyZXR1cm4gMTt2PU0mdyxwW3ZdPUg8PDI0fEk8PDE2fHgtcXwwfX1yZXR1cm4gMCE9PU0mJihwW3grTV09RC1KPDwyNHw2NDw8MTZ8MCkscy5iaXRzPUgsMH19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM3OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtiLmV4cG9ydHM9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifX0se31dLDM4OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIDI1Nj5hP2diW2FdOmdiWzI1NisoYT4+PjcpXX1mdW5jdGlvbiBmKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109MjU1JmIsYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109Yj4+PjgmMjU1fWZ1bmN0aW9uIGcoYSxiLGMpe2EuYmlfdmFsaWQ+Vi1jPyhhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxmKGEsYS5iaV9idWYpLGEuYmlfYnVmPWI+PlYtYS5iaV92YWxpZCxhLmJpX3ZhbGlkKz1jLVYpOihhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxhLmJpX3ZhbGlkKz1jKX1mdW5jdGlvbiBoKGEsYixjKXtnKGEsY1syKmJdLGNbMipiKzFdKX1mdW5jdGlvbiBpKGEsYil7dmFyIGM9MDtkbyBjfD0xJmEsYT4+Pj0xLGM8PD0xO3doaWxlKC0tYj4wKTtyZXR1cm4gYz4+PjF9ZnVuY3Rpb24gaihhKXsxNj09PWEuYmlfdmFsaWQ/KGYoYSxhLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTApOmEuYmlfdmFsaWQ+PTgmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYS5iaV9idWYsYS5iaV9idWY+Pj04LGEuYmlfdmFsaWQtPTgpfWZ1bmN0aW9uIGsoYSxiKXt2YXIgYyxkLGUsZixnLGgsaT1iLmR5bl90cmVlLGo9Yi5tYXhfY29kZSxrPWIuc3RhdF9kZXNjLnN0YXRpY190cmVlLGw9Yi5zdGF0X2Rlc2MuaGFzX3N0cmVlLG09Yi5zdGF0X2Rlc2MuZXh0cmFfYml0cyxuPWIuc3RhdF9kZXNjLmV4dHJhX2Jhc2Usbz1iLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLHA9MDtmb3IoZj0wO1U+PWY7ZisrKWEuYmxfY291bnRbZl09MDtmb3IoaVsyKmEuaGVhcFthLmhlYXBfbWF4XSsxXT0wLGM9YS5oZWFwX21heCsxO1Q+YztjKyspZD1hLmhlYXBbY10sZj1pWzIqaVsyKmQrMV0rMV0rMSxmPm8mJihmPW8scCsrKSxpWzIqZCsxXT1mLGQ+anx8KGEuYmxfY291bnRbZl0rKyxnPTAsZD49biYmKGc9bVtkLW5dKSxoPWlbMipkXSxhLm9wdF9sZW4rPWgqKGYrZyksbCYmKGEuc3RhdGljX2xlbis9aCooa1syKmQrMV0rZykpKTtpZigwIT09cCl7ZG97Zm9yKGY9by0xOzA9PT1hLmJsX2NvdW50W2ZdOylmLS07YS5ibF9jb3VudFtmXS0tLGEuYmxfY291bnRbZisxXSs9MixhLmJsX2NvdW50W29dLS0scC09Mn13aGlsZShwPjApO2ZvcihmPW87MCE9PWY7Zi0tKWZvcihkPWEuYmxfY291bnRbZl07MCE9PWQ7KWU9YS5oZWFwWy0tY10sZT5qfHwoaVsyKmUrMV0hPT1mJiYoYS5vcHRfbGVuKz0oZi1pWzIqZSsxXSkqaVsyKmVdLGlbMiplKzFdPWYpLGQtLSl9fWZ1bmN0aW9uIGwoYSxiLGMpe3ZhciBkLGUsZj1uZXcgQXJyYXkoVSsxKSxnPTA7Zm9yKGQ9MTtVPj1kO2QrKylmW2RdPWc9ZytjW2QtMV08PDE7Zm9yKGU9MDtiPj1lO2UrKyl7dmFyIGg9YVsyKmUrMV07MCE9PWgmJihhWzIqZV09aShmW2hdKyssaCkpfX1mdW5jdGlvbiBtKCl7dmFyIGEsYixjLGQsZSxmPW5ldyBBcnJheShVKzEpO2ZvcihjPTAsZD0wO08tMT5kO2QrKylmb3IoaWJbZF09YyxhPTA7YTwxPDxfW2RdO2ErKyloYltjKytdPWQ7Zm9yKGhiW2MtMV09ZCxlPTAsZD0wOzE2PmQ7ZCsrKWZvcihqYltkXT1lLGE9MDthPDE8PGFiW2RdO2ErKylnYltlKytdPWQ7Zm9yKGU+Pj03O1I+ZDtkKyspZm9yKGpiW2RdPWU8PDcsYT0wO2E8MTw8YWJbZF0tNzthKyspZ2JbMjU2K2UrK109ZDtmb3IoYj0wO1U+PWI7YisrKWZbYl09MDtmb3IoYT0wOzE0Mz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IoOzI1NT49YTspZWJbMiphKzFdPTksYSsrLGZbOV0rKztmb3IoOzI3OT49YTspZWJbMiphKzFdPTcsYSsrLGZbN10rKztmb3IoOzI4Nz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IobChlYixRKzEsZiksYT0wO1I+YTthKyspZmJbMiphKzFdPTUsZmJbMiphXT1pKGEsNSk7a2I9bmV3IG5iKGViLF8sUCsxLFEsVSksbGI9bmV3IG5iKGZiLGFiLDAsUixVKSxtYj1uZXcgbmIobmV3IEFycmF5KDApLGJiLDAsUyxXKX1mdW5jdGlvbiBuKGEpe3ZhciBiO2ZvcihiPTA7UT5iO2IrKylhLmR5bl9sdHJlZVsyKmJdPTA7Zm9yKGI9MDtSPmI7YisrKWEuZHluX2R0cmVlWzIqYl09MDtmb3IoYj0wO1M+YjtiKyspYS5ibF90cmVlWzIqYl09MDthLmR5bl9sdHJlZVsyKlhdPTEsYS5vcHRfbGVuPWEuc3RhdGljX2xlbj0wLGEubGFzdF9saXQ9YS5tYXRjaGVzPTB9ZnVuY3Rpb24gbyhhKXthLmJpX3ZhbGlkPjg/ZihhLGEuYmlfYnVmKTphLmJpX3ZhbGlkPjAmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1hLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTB9ZnVuY3Rpb24gcChhLGIsYyxkKXtvKGEpLGQmJihmKGEsYyksZihhLH5jKSksRS5hcnJheVNldChhLnBlbmRpbmdfYnVmLGEud2luZG93LGIsYyxhLnBlbmRpbmcpLGEucGVuZGluZys9Y31mdW5jdGlvbiBxKGEsYixjLGQpe3ZhciBlPTIqYixmPTIqYztyZXR1cm4gYVtlXTxhW2ZdfHxhW2VdPT09YVtmXSYmZFtiXTw9ZFtjXX1mdW5jdGlvbiByKGEsYixjKXtmb3IodmFyIGQ9YS5oZWFwW2NdLGU9Yzw8MTtlPD1hLmhlYXBfbGVuJiYoZTxhLmhlYXBfbGVuJiZxKGIsYS5oZWFwW2UrMV0sYS5oZWFwW2VdLGEuZGVwdGgpJiZlKyssIXEoYixkLGEuaGVhcFtlXSxhLmRlcHRoKSk7KWEuaGVhcFtjXT1hLmhlYXBbZV0sYz1lLGU8PD0xO2EuaGVhcFtjXT1kfWZ1bmN0aW9uIHMoYSxiLGMpe3ZhciBkLGYsaSxqLGs9MDtpZigwIT09YS5sYXN0X2xpdClkbyBkPWEucGVuZGluZ19idWZbYS5kX2J1ZisyKmtdPDw4fGEucGVuZGluZ19idWZbYS5kX2J1ZisyKmsrMV0sZj1hLnBlbmRpbmdfYnVmW2EubF9idWYra10saysrLDA9PT1kP2goYSxmLGIpOihpPWhiW2ZdLGgoYSxpK1ArMSxiKSxqPV9baV0sMCE9PWomJihmLT1pYltpXSxnKGEsZixqKSksZC0tLGk9ZShkKSxoKGEsaSxjKSxqPWFiW2ldLDAhPT1qJiYoZC09amJbaV0sZyhhLGQsaikpKTt3aGlsZShrPGEubGFzdF9saXQpO2goYSxYLGIpfWZ1bmN0aW9uIHQoYSxiKXt2YXIgYyxkLGUsZj1iLmR5bl90cmVlLGc9Yi5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsaD1iLnN0YXRfZGVzYy5oYXNfc3RyZWUsaT1iLnN0YXRfZGVzYy5lbGVtcyxqPS0xO2ZvcihhLmhlYXBfbGVuPTAsYS5oZWFwX21heD1ULGM9MDtpPmM7YysrKTAhPT1mWzIqY10/KGEuaGVhcFsrK2EuaGVhcF9sZW5dPWo9YyxhLmRlcHRoW2NdPTApOmZbMipjKzFdPTA7Zm9yKDthLmhlYXBfbGVuPDI7KWU9YS5oZWFwWysrYS5oZWFwX2xlbl09Mj5qPysrajowLGZbMiplXT0xLGEuZGVwdGhbZV09MCxhLm9wdF9sZW4tLSxoJiYoYS5zdGF0aWNfbGVuLT1nWzIqZSsxXSk7Zm9yKGIubWF4X2NvZGU9aixjPWEuaGVhcF9sZW4+PjE7Yz49MTtjLS0pcihhLGYsYyk7ZT1pO2RvIGM9YS5oZWFwWzFdLGEuaGVhcFsxXT1hLmhlYXBbYS5oZWFwX2xlbi0tXSxyKGEsZiwxKSxkPWEuaGVhcFsxXSxhLmhlYXBbLS1hLmhlYXBfbWF4XT1jLGEuaGVhcFstLWEuaGVhcF9tYXhdPWQsZlsyKmVdPWZbMipjXStmWzIqZF0sYS5kZXB0aFtlXT0oYS5kZXB0aFtjXT49YS5kZXB0aFtkXT9hLmRlcHRoW2NdOmEuZGVwdGhbZF0pKzEsZlsyKmMrMV09ZlsyKmQrMV09ZSxhLmhlYXBbMV09ZSsrLHIoYSxmLDEpO3doaWxlKGEuaGVhcF9sZW4+PTIpO2EuaGVhcFstLWEuaGVhcF9tYXhdPWEuaGVhcFsxXSxrKGEsYiksbChmLGosYS5ibF9jb3VudCl9ZnVuY3Rpb24gdShhLGIsYyl7dmFyIGQsZSxmPS0xLGc9YlsxXSxoPTAsaT03LGo9NDtmb3IoMD09PWcmJihpPTEzOCxqPTMpLGJbMiooYysxKSsxXT02NTUzNSxkPTA7Yz49ZDtkKyspZT1nLGc9YlsyKihkKzEpKzFdLCsraDxpJiZlPT09Z3x8KGo+aD9hLmJsX3RyZWVbMiplXSs9aDowIT09ZT8oZSE9PWYmJmEuYmxfdHJlZVsyKmVdKyssYS5ibF90cmVlWzIqWV0rKyk6MTA+PWg/YS5ibF90cmVlWzIqWl0rKzphLmJsX3RyZWVbMiokXSsrLGg9MCxmPWUsMD09PWc/KGk9MTM4LGo9Myk6ZT09PWc/KGk9NixqPTMpOihpPTcsaj00KSl9ZnVuY3Rpb24gdihhLGIsYyl7dmFyIGQsZSxmPS0xLGk9YlsxXSxqPTAsaz03LGw9NDtmb3IoMD09PWkmJihrPTEzOCxsPTMpLGQ9MDtjPj1kO2QrKylpZihlPWksaT1iWzIqKGQrMSkrMV0sISgrK2o8ayYmZT09PWkpKXtpZihsPmope2RvIGgoYSxlLGEuYmxfdHJlZSk7d2hpbGUoMCE9PS0tail9ZWxzZSAwIT09ZT8oZSE9PWYmJihoKGEsZSxhLmJsX3RyZWUpLGotLSksaChhLFksYS5ibF90cmVlKSxnKGEsai0zLDIpKToxMD49aj8oaChhLFosYS5ibF90cmVlKSxnKGEsai0zLDMpKTooaChhLCQsYS5ibF90cmVlKSxnKGEsai0xMSw3KSk7aj0wLGY9ZSwwPT09aT8oaz0xMzgsbD0zKTplPT09aT8oaz02LGw9Myk6KGs9NyxsPTQpfX1mdW5jdGlvbiB3KGEpe3ZhciBiO2Zvcih1KGEsYS5keW5fbHRyZWUsYS5sX2Rlc2MubWF4X2NvZGUpLHUoYSxhLmR5bl9kdHJlZSxhLmRfZGVzYy5tYXhfY29kZSksdChhLGEuYmxfZGVzYyksYj1TLTE7Yj49MyYmMD09PWEuYmxfdHJlZVsyKmNiW2JdKzFdO2ItLSk7cmV0dXJuIGEub3B0X2xlbis9MyooYisxKSs1KzUrNCxifWZ1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGU7Zm9yKGcoYSxiLTI1Nyw1KSxnKGEsYy0xLDUpLGcoYSxkLTQsNCksZT0wO2Q+ZTtlKyspZyhhLGEuYmxfdHJlZVsyKmNiW2VdKzFdLDMpO3YoYSxhLmR5bl9sdHJlZSxiLTEpLHYoYSxhLmR5bl9kdHJlZSxjLTEpfWZ1bmN0aW9uIHkoYSl7dmFyIGIsYz00MDkzNjI0NDQ3O2ZvcihiPTA7MzE+PWI7YisrLGM+Pj49MSlpZigxJmMmJjAhPT1hLmR5bl9sdHJlZVsyKmJdKXJldHVybiBHO2lmKDAhPT1hLmR5bl9sdHJlZVsxOF18fDAhPT1hLmR5bl9sdHJlZVsyMF18fDAhPT1hLmR5bl9sdHJlZVsyNl0pcmV0dXJuIEg7Zm9yKGI9MzI7UD5iO2IrKylpZigwIT09YS5keW5fbHRyZWVbMipiXSlyZXR1cm4gSDtyZXR1cm4gR31mdW5jdGlvbiB6KGEpe3BifHwobSgpLHBiPSEwKSxhLmxfZGVzYz1uZXcgb2IoYS5keW5fbHRyZWUsa2IpLGEuZF9kZXNjPW5ldyBvYihhLmR5bl9kdHJlZSxsYiksYS5ibF9kZXNjPW5ldyBvYihhLmJsX3RyZWUsbWIpLGEuYmlfYnVmPTAsYS5iaV92YWxpZD0wLG4oYSl9ZnVuY3Rpb24gQShhLGIsYyxkKXtnKGEsKEo8PDEpKyhkPzE6MCksMykscChhLGIsYywhMCl9ZnVuY3Rpb24gQihhKXtnKGEsSzw8MSwzKSxoKGEsWCxlYiksaihhKX1mdW5jdGlvbiBDKGEsYixjLGQpe3ZhciBlLGYsaD0wO2EubGV2ZWw+MD8oYS5zdHJtLmRhdGFfdHlwZT09PUkmJihhLnN0cm0uZGF0YV90eXBlPXkoYSkpLHQoYSxhLmxfZGVzYyksdChhLGEuZF9kZXNjKSxoPXcoYSksZT1hLm9wdF9sZW4rMys3Pj4+MyxmPWEuc3RhdGljX2xlbiszKzc+Pj4zLGU+PWYmJihlPWYpKTplPWY9Yys1LGU+PWMrNCYmLTEhPT1iP0EoYSxiLGMsZCk6YS5zdHJhdGVneT09PUZ8fGY9PT1lPyhnKGEsKEs8PDEpKyhkPzE6MCksMykscyhhLGViLGZiKSk6KGcoYSwoTDw8MSkrKGQ/MTowKSwzKSx4KGEsYS5sX2Rlc2MubWF4X2NvZGUrMSxhLmRfZGVzYy5tYXhfY29kZSsxLGgrMSkscyhhLGEuZHluX2x0cmVlLGEuZHluX2R0cmVlKSksbihhKSxkJiZvKGEpfWZ1bmN0aW9uIEQoYSxiLGMpe3JldHVybiBhLnBlbmRpbmdfYnVmW2EuZF9idWYrMiphLmxhc3RfbGl0XT1iPj4+OCYyNTUsYS5wZW5kaW5nX2J1ZlthLmRfYnVmKzIqYS5sYXN0X2xpdCsxXT0yNTUmYixhLnBlbmRpbmdfYnVmW2EubF9idWYrYS5sYXN0X2xpdF09MjU1JmMsYS5sYXN0X2xpdCsrLDA9PT1iP2EuZHluX2x0cmVlWzIqY10rKzooYS5tYXRjaGVzKyssYi0tLGEuZHluX2x0cmVlWzIqKGhiW2NdK1ArMSldKyssYS5keW5fZHRyZWVbMiplKGIpXSsrKSxhLmxhc3RfbGl0PT09YS5saXRfYnVmc2l6ZS0xfXZhciBFPWEoIi4uL3V0aWxzL2NvbW1vbiIpLEY9NCxHPTAsSD0xLEk9MixKPTAsSz0xLEw9MixNPTMsTj0yNTgsTz0yOSxQPTI1NixRPVArMStPLFI9MzAsUz0xOSxUPTIqUSsxLFU9MTUsVj0xNixXPTcsWD0yNTYsWT0xNixaPTE3LCQ9MTgsXz1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSxhYj1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sYmI9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddLGNiPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSxkYj01MTIsZWI9bmV3IEFycmF5KDIqKFErMikpO2QoZWIpO3ZhciBmYj1uZXcgQXJyYXkoMipSKTtkKGZiKTt2YXIgZ2I9bmV3IEFycmF5KGRiKTtkKGdiKTt2YXIgaGI9bmV3IEFycmF5KE4tTSsxKTtkKGhiKTt2YXIgaWI9bmV3IEFycmF5KE8pO2QoaWIpO3ZhciBqYj1uZXcgQXJyYXkoUik7ZChqYik7dmFyIGtiLGxiLG1iLG5iPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5zdGF0aWNfdHJlZT1hLHRoaXMuZXh0cmFfYml0cz1iLHRoaXMuZXh0cmFfYmFzZT1jLHRoaXMuZWxlbXM9ZCx0aGlzLm1heF9sZW5ndGg9ZSx0aGlzLmhhc19zdHJlZT1hJiZhLmxlbmd0aH0sb2I9ZnVuY3Rpb24oYSxiKXt0aGlzLmR5bl90cmVlPWEsdGhpcy5tYXhfY29kZT0wLHRoaXMuc3RhdF9kZXNjPWJ9LHBiPSExO2MuX3RyX2luaXQ9eixjLl90cl9zdG9yZWRfYmxvY2s9QSxjLl90cl9mbHVzaF9ibG9jaz1DLGMuX3RyX3RhbGx5PUQsYy5fdHJfYWxpZ249Qn0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxlcj0wfWIuZXhwb3J0cz1jfSx7fV19LHt9LFs5XSkoOSl9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIuZGRtcycsZnVuY3Rpb24oKXt2YXIgSW1wb3J0ZXI9dHIuaW1wb3J0ZXIuSW1wb3J0ZXI7dmFyIGtQaWQ9MDt2YXIga0NhdGVnb3J5PSdqYXZhJzt2YXIga01ldGhvZEx1dEVuZE1hcmtlcj0nXG4qZW5kXG4nO3ZhciBrVGhyZWFkc1N0YXJ0PSdcbip0aHJlYWRzXG4nO3ZhciBrTWV0aG9kc1N0YXJ0PSdcbiptZXRob2RzXG4nO3ZhciBrVHJhY2VNZXRob2RFbnRlcj0weDAwO3ZhciBrVHJhY2VNZXRob2RFeGl0PTB4MDE7dmFyIGtUcmFjZVVucm9sbD0weDAyO3ZhciBrVHJhY2VNZXRob2RBY3Rpb25NYXNrPTB4MDM7dmFyIGtUcmFjZUhlYWRlckxlbmd0aD0zMjt2YXIga1RyYWNlTWFnaWNWYWx1ZT0weDU3NGY0YzUzO3ZhciBrVHJhY2VWZXJzaW9uU2luZ2xlQ2xvY2s9Mjt2YXIga1RyYWNlVmVyc2lvbkR1YWxDbG9jaz0zO3ZhciBrVHJhY2VSZWNvcmRTaXplU2luZ2xlQ2xvY2s9MTA7dmFyIGtUcmFjZVJlY29yZFNpemVEdWFsQ2xvY2s9MTQ7ZnVuY3Rpb24gUmVhZGVyKHN0cmluZ19wYXlsb2FkKXt0aGlzLnBvc2l0aW9uXz0wO3RoaXMuZGF0YV89SlNaaXAudXRpbHMudHJhbnNmb3JtVG8oJ3VpbnQ4YXJyYXknLHN0cmluZ19wYXlsb2FkKTt9Cit2YXIgY29yclBlYWtUcz0oKG1pblNoaWZ0K2NvcnJQZWFrSWR4KS90aGlzLnNhbXBsZVJhdGVfKTtjb3JyUGVha1RzKj0xMDAwO3ZhciBzeW5jU3RhcnRUcz1maXJzdFN5bmNFdmVudFRzLXRoaXMubW9kZWxfLmJvdW5kcy5taW47dmFyIHNoaWZ0VHM9c3luY1N0YXJ0VHMtY29yclBlYWtUcztyZXR1cm4gc2hpZnRUczt9fTt0ci5pbXBvcnRlci5JbXBvcnRlci5yZWdpc3RlcihCYXR0b3JJbXBvcnRlcik7cmV0dXJue0JhdHRvckltcG9ydGVyOkJhdHRvckltcG9ydGVyLF9CYXR0b3JJbXBvcnRlclRlc3RFeHBvcnRzOlRlc3RFeHBvcnRzfTt9KTshZnVuY3Rpb24oYSl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz1hKCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSxhKTtlbHNle3ZhciBiOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P2I9d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2I9Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmKGI9c2VsZiksYi5KU1ppcD1hKCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBhKGIsYyxkKXtmdW5jdGlvbiBlKGcsaCl7aWYoIWNbZ10pe2lmKCFiW2ddKXt2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighaCYmaSlyZXR1cm4gaShnLCEwKTtpZihmKXJldHVybiBmKGcsITApO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2crIiciKX12YXIgaj1jW2ddPXtleHBvcnRzOnt9fTtiW2ddWzBdLmNhbGwoai5leHBvcnRzLGZ1bmN0aW9uKGEpe3ZhciBjPWJbZ11bMV1bYV07cmV0dXJuIGUoYz9jOmEpfSxqLGouZXhwb3J0cyxhLGIsYyxkKX1yZXR1cm4gY1tnXS5leHBvcnRzfWZvcih2YXIgZj0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxnPTA7ZzxkLmxlbmd0aDtnKyspZShkW2ddKTtyZXR1cm4gZX0oezE6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IjtjLmVuY29kZT1mdW5jdGlvbihhKXtmb3IodmFyIGIsYyxlLGYsZyxoLGksaj0iIixrPTA7azxhLmxlbmd0aDspYj1hLmNoYXJDb2RlQXQoaysrKSxjPWEuY2hhckNvZGVBdChrKyspLGU9YS5jaGFyQ29kZUF0KGsrKyksZj1iPj4yLGc9KDMmYik8PDR8Yz4+NCxoPSgxNSZjKTw8MnxlPj42LGk9NjMmZSxpc05hTihjKT9oPWk9NjQ6aXNOYU4oZSkmJihpPTY0KSxqPWorZC5jaGFyQXQoZikrZC5jaGFyQXQoZykrZC5jaGFyQXQoaCkrZC5jaGFyQXQoaSk7cmV0dXJuIGp9LGMuZGVjb2RlPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGcsaCxpLGo9IiIsaz0wO2ZvcihhPWEucmVwbGFjZSgvW15BLVphLXowLTlcK1wvXD1dL2csIiIpO2s8YS5sZW5ndGg7KWY9ZC5pbmRleE9mKGEuY2hhckF0KGsrKykpLGc9ZC5pbmRleE9mKGEuY2hhckF0KGsrKykpLGg9ZC5pbmRleE9mKGEuY2hhckF0KGsrKykpLGk9ZC5pbmRleE9mKGEuY2hhckF0KGsrKykpLGI9Zjw8MnxnPj40LGM9KDE1JmcpPDw0fGg+PjIsZT0oMyZoKTw8NnxpLGorPVN0cmluZy5mcm9tQ2hhckNvZGUoYiksNjQhPWgmJihqKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGMpKSw2NCE9aSYmKGorPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpO3JldHVybiBqfX0se31dLDI6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmNvbXByZXNzZWRTaXplPTAsdGhpcy51bmNvbXByZXNzZWRTaXplPTAsdGhpcy5jcmMzMj0wLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9bnVsbCx0aGlzLmNvbXByZXNzZWRDb250ZW50PW51bGx9Yy5wcm90b3R5cGU9e2dldENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZ2V0Q29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19LGIuZXhwb3J0cz1jfSx7fV0sMzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtjLlNUT1JFPXttYWdpYzoiXHgwMFx4MDAiLGNvbXByZXNzOmZ1bmN0aW9uKGEpe3JldHVybiBhfSx1bmNvbXByZXNzOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxjb21wcmVzc0lucHV0VHlwZTpudWxsLHVuY29tcHJlc3NJbnB1dFR5cGU6bnVsbH0sYy5ERUZMQVRFPWEoIi4vZmxhdGUiKX0seyIuL2ZsYXRlIjo4fV0sNDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi91dGlscyIpLGQ9WzAsMTk5Njk1OTg5NCwzOTkzOTE5Nzg4LDI1Njc1MjQ3OTQsMTI0NjM0MTM3LDE4ODYwNTc2MTUsMzkxNTYyMTY4NSwyNjU3MzkyMDM1LDI0OTI2ODI3NCwyMDQ0NTA4MzI0LDM3NzIxMTUyMzAsMjU0NzE3Nzg2NCwxNjI5NDE5OTUsMjEyNTU2MTAyMSwzODg3NjA3MDQ3LDI0Mjg0NDQwNDksNDk4NTM2NTQ4LDE3ODk5Mjc2NjYsNDA4OTAxNjY0OCwyMjI3MDYxMjE0LDQ1MDU0ODg2MSwxODQzMjU4NjAzLDQxMDc1ODA3NTMsMjIxMTY3NzYzOSwzMjU4ODM5OTAsMTY4NDc3NzE1Miw0MjUxMTIyMDQyLDIzMjE5MjY2MzYsMzM1NjMzNDg3LDE2NjEzNjU0NjUsNDE5NTMwMjc1NSwyMzY2MTE1MzE3LDk5NzA3MzA5NiwxMjgxOTUzODg2LDM1Nzk4NTUzMzIsMjcyNDY4ODI0MiwxMDA2ODg4MTQ1LDEyNTg2MDc2ODcsMzUyNDEwMTYyOSwyNzY4OTQyNDQzLDkwMTA5NzcyMiwxMTE5MDAwNjg0LDM2ODY1MTcyMDYsMjg5ODA2NTcyOCw4NTMwNDQ0NTEsMTE3MjI2NjEwMSwzNzA1MDE1NzU5LDI4ODI2MTY2NjUsNjUxNzY3OTgwLDEzNzM1MDM1NDYsMzM2OTU1NDMwNCwzMjE4MTA0NTk4LDU2NTUwNzI1MywxNDU0NjIxNzMxLDM0ODUxMTE3MDUsMzA5OTQzNjMwMyw2NzEyNjY5NzQsMTU5NDE5ODAyNCwzMzIyNzMwOTMwLDI5NzAzNDc4MTIsNzk1ODM1NTI3LDE0ODMyMzAyMjUsMzI0NDM2NzI3NSwzMDYwMTQ5NTY1LDE5OTQxNDYxOTIsMzExNTg1MzQsMjU2MzkwNzc3Miw0MDIzNzE3OTMwLDE5MDc0NTk0NjUsMTEyNjM3MjE1LDI2ODAxNTMyNTMsMzkwNDQyNzA1OSwyMDEzNzc2MjkwLDI1MTcyMjAzNiwyNTE3MjE1Mzc0LDM3NzU4MzAwNDAsMjEzNzY1Njc2MywxNDEzNzY4MTMsMjQzOTI3NzcxOSwzODY1MjcxMjk3LDE4MDIxOTU0NDQsNDc2ODY0ODY2LDIyMzgwMDEzNjgsNDA2NjUwODg3OCwxODEyMzcwOTI1LDQ1MzA5MjczMSwyMTgxNjI1MDI1LDQxMTE0NTEyMjMsMTcwNjA4ODkwMiwzMTQwNDI3MDQsMjM0NDUzMjIwMiw0MjQwMDE3NTMyLDE2NTg2NTgyNzEsMzY2NjE5OTc3LDIzNjI2NzAzMjMsNDIyNDk5NDQwNSwxMzAzNTM1OTYwLDk4NDk2MTQ4NiwyNzQ3MDA3MDkyLDM1NjkwMzc1MzgsMTI1NjE3MDgxNywxMDM3NjA0MzExLDI3NjUyMTA3MzMsMzU1NDA3OTk5NSwxMTMxMDE0NTA2LDg3OTY3OTk5NiwyOTA5MjQzNDYyLDM2NjM3NzE4NTYsMTE0MTEyNDQ2Nyw4NTU4NDIyNzcsMjg1MjgwMTYzMSwzNzA4NjQ4NjQ5LDEzNDI1MzM5NDgsNjU0NDU5MzA2LDMxODgzOTYwNDgsMzM3MzAxNTE3NCwxNDY2NDc5OTA5LDU0NDE3OTYzNSwzMTEwNTIzOTEzLDM0NjI1MjIwMTUsMTU5MTY3MTA1NCw3MDIxMzg3NzYsMjk2NjQ2MDQ1MCwzMzUyNzk5NDEyLDE1MDQ5MTg4MDcsNzgzNTUxODczLDMwODI2NDA0NDMsMzIzMzQ0Mjk4OSwzOTg4MjkyMzg0LDI1OTYyNTQ2NDYsNjIzMTcwNjgsMTk1NzgxMDg0MiwzOTM5ODQ1OTQ1LDI2NDc4MTYxMTEsODE0NzA5OTcsMTk0MzgwMzUyMywzODE0OTE4OTMwLDI0ODk1OTY4MDQsMjI1Mjc0NDMwLDIwNTM3OTAzNzYsMzgyNjE3NTc1NSwyNDY2OTA2MDEzLDE2NzgxNjc0MywyMDk3NjUxMzc3LDQwMjc1NTI1ODAsMjI2NTQ5MDM4Niw1MDM0NDQwNzIsMTc2MjA1MDgxNCw0MTUwNDE3MjQ1LDIxNTQxMjkzNTUsNDI2NTIyMjI1LDE4NTI1MDc4NzksNDI3NTMxMzUyNiwyMzEyMzE3OTIwLDI4Mjc1MzYyNiwxNzQyNTU1ODUyLDQxODk3MDgxNDMsMjM5NDg3Nzk0NSwzOTc5MTc3NjMsMTYyMjE4MzYzNywzNjA0MzkwODg4LDI3MTQ4NjY1NTgsOTUzNzI5NzMyLDEzNDAwNzY2MjYsMzUxODcxOTk4NSwyNzk3MzYwOTk5LDEwNjg4MjgzODEsMTIxOTYzODg1OSwzNjI0NzQxODUwLDI5MzY2NzUxNDgsOTA2MTg1NDYyLDEwOTA4MTI1MTIsMzc0NzY3MjAwMywyODI1Mzc5NjY5LDgyOTMyOTEzNSwxMTgxMzM1MTYxLDM0MTIxNzc4MDQsMzE2MDgzNDg0Miw2MjgwODU0MDgsMTM4MjYwNTM2NiwzNDIzMzY5MTA5LDMxMzgwNzg0NjcsNTcwNTYyMjMzLDE0MjY0MDA4MTUsMzMxNzMxNjU0MiwyOTk4NzMzNjA4LDczMzIzOTk1NCwxNTU1MjYxOTU2LDMyNjg5MzU1OTEsMzA1MDM2MDYyNSw3NTI0NTk0MDMsMTU0MTMyMDIyMSwyNjA3MDcxOTIwLDM5NjU5NzMwMzAsMTk2OTkyMjk3Miw0MDczNTQ5OCwyNjE3ODM3MjI1LDM5NDM1NzcxNTEsMTkxMzA4Nzg3Nyw4MzkwODM3MSwyNTEyMzQxNjM0LDM4MDM3NDA2OTIsMjA3NTIwODYyMiwyMTMyNjExMTIsMjQ2MzI3MjYwMywzODU1OTkwMjg1LDIwOTQ4NTQwNzEsMTk4OTU4ODgxLDIyNjIwMjkwMTIsNDA1NzI2MDYxMCwxNzU5MzU5OTkyLDUzNDQxNDE5MCwyMTc2NzE4NTQxLDQxMzkzMjkxMTUsMTg3MzgzNjAwMSw0MTQ2NjQ1NjcsMjI4MjI0ODkzNCw0Mjc5MjAwMzY4LDE3MTE2ODQ1NTQsMjg1MjgxMTE2LDI0MDU4MDE3MjcsNDE2NzIxNjc0NSwxNjM0NDY3Nzk1LDM3NjIyOTcwMSwyNjg1MDY3ODk2LDM2MDgwMDc0MDYsMTMwODkxODYxMiw5NTY1NDM5MzgsMjgwODU1NTEwNSwzNDk1OTU4MjYzLDEyMzE2MzYzMDEsMTA0NzQyNzAzNSwyOTMyOTU5ODE4LDM2NTQ3MDM4MzYsMTA4ODM1OTI3MCw5MzY5MThlMywyODQ3NzE0ODk5LDM3MzY4Mzc4MjksMTIwMjkwMDg2Myw4MTcyMzM4OTcsMzE4MzM0MjEwOCwzNDAxMjM3MTMwLDE0MDQyNzc1NTIsNjE1ODE4MTUwLDMxMzQyMDc0OTMsMzQ1MzQyMTIwMywxNDIzODU3NDQ5LDYwMTQ1MDQzMSwzMDA5ODM3NjE0LDMyOTQ3MTA0NTYsMTU2NzEwMzc0Niw3MTE5Mjg3MjQsMzAyMDY2ODQ3MSwzMjcyMzgwMDY1LDE1MTAzMzQyMzUsNzU1MTY3MTE3XTtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fCFhLmxlbmd0aClyZXR1cm4gMDt2YXIgZT0ic3RyaW5nIiE9PWMuZ2V0VHlwZU9mKGEpOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9MCk7dmFyIGY9MCxnPTAsaD0wO2I9LTFeYjtmb3IodmFyIGk9MCxqPWEubGVuZ3RoO2o+aTtpKyspaD1lP2FbaV06YS5jaGFyQ29kZUF0KGkpLGc9MjU1JihiXmgpLGY9ZFtnXSxiPWI+Pj44XmY7cmV0dXJuLTFeYn19LHsiLi91dGlscyI6MjF9XSw1OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKCl7dGhpcy5kYXRhPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLmluZGV4PTB9dmFyIGQ9YSgiLi91dGlscyIpO2MucHJvdG90eXBlPXtjaGVja09mZnNldDpmdW5jdGlvbihhKXt0aGlzLmNoZWNrSW5kZXgodGhpcy5pbmRleCthKX0sY2hlY2tJbmRleDpmdW5jdGlvbihhKXtpZih0aGlzLmxlbmd0aDxhfHwwPmEpdGhyb3cgbmV3IEVycm9yKCJFbmQgb2YgZGF0YSByZWFjaGVkIChkYXRhIGxlbmd0aCA9ICIrdGhpcy5sZW5ndGgrIiwgYXNrZWQgaW5kZXggPSAiK2ErIikuIENvcnJ1cHRlZCB6aXAgPyIpfSxzZXRJbmRleDpmdW5jdGlvbihhKXt0aGlzLmNoZWNrSW5kZXgoYSksdGhpcy5pbmRleD1hfSxza2lwOmZ1bmN0aW9uKGEpe3RoaXMuc2V0SW5kZXgodGhpcy5pbmRleCthKX0sYnl0ZUF0OmZ1bmN0aW9uKCl7fSxyZWFkSW50OmZ1bmN0aW9uKGEpe3ZhciBiLGM9MDtmb3IodGhpcy5jaGVja09mZnNldChhKSxiPXRoaXMuaW5kZXgrYS0xO2I+PXRoaXMuaW5kZXg7Yi0tKWM9KGM8PDgpK3RoaXMuYnl0ZUF0KGIpO3JldHVybiB0aGlzLmluZGV4Kz1hLGN9LHJlYWRTdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIGQudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5yZWFkRGF0YShhKSl9LHJlYWREYXRhOmZ1bmN0aW9uKCl7fSxsYXN0SW5kZXhPZlNpZ25hdHVyZTpmdW5jdGlvbigpe30scmVhZERhdGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlYWRJbnQoNCk7cmV0dXJuIG5ldyBEYXRlKChhPj4yNSYxMjcpKzE5ODAsKGE+PjIxJjE1KS0xLGE+PjE2JjMxLGE+PjExJjMxLGE+PjUmNjMsKDMxJmEpPDwxKX19LGIuZXhwb3J0cz1jfSx7Ii4vdXRpbHMiOjIxfV0sNjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtjLmJhc2U2ND0hMSxjLmJpbmFyeT0hMSxjLmRpcj0hMSxjLmNyZWF0ZUZvbGRlcnM9ITEsYy5kYXRlPW51bGwsYy5jb21wcmVzc2lvbj1udWxsLGMuY29tbWVudD1udWxsfSx7fV0sNzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1hKCIuL3V0aWxzIik7Yy5zdHJpbmcyYmluYXJ5PWZ1bmN0aW9uKGEpe3JldHVybiBkLnN0cmluZzJiaW5hcnkoYSl9LGMuc3RyaW5nMlVpbnQ4QXJyYXk9ZnVuY3Rpb24oYSl7cmV0dXJuIGQudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGEpfSxjLnVpbnQ4QXJyYXkyU3RyaW5nPWZ1bmN0aW9uKGEpe3JldHVybiBkLnRyYW5zZm9ybVRvKCJzdHJpbmciLGEpfSxjLnN0cmluZzJCbG9iPWZ1bmN0aW9uKGEpe3ZhciBiPWQudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIixhKTtyZXR1cm4gZC5hcnJheUJ1ZmZlcjJCbG9iKGIpfSxjLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuYXJyYXlCdWZmZXIyQmxvYihhKX0sYy50cmFuc2Zvcm1Ubz1mdW5jdGlvbihhLGIpe3JldHVybiBkLnRyYW5zZm9ybVRvKGEsYil9LGMuZ2V0VHlwZU9mPWZ1bmN0aW9uKGEpe3JldHVybiBkLmdldFR5cGVPZihhKX0sYy5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY2hlY2tTdXBwb3J0KGEpfSxjLk1BWF9WQUxVRV8xNkJJVFM9ZC5NQVhfVkFMVUVfMTZCSVRTLGMuTUFYX1ZBTFVFXzMyQklUUz1kLk1BWF9WQUxVRV8zMkJJVFMsYy5wcmV0dHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGQucHJldHR5KGEpfSxjLmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihhKXtyZXR1cm4gZC5maW5kQ29tcHJlc3Npb24oYSl9LGMuaXNSZWdFeHA9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuaXNSZWdFeHAoYSl9fSx7Ii4vdXRpbHMiOjIxfV0sODpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDE2QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDMyQXJyYXksZT1hKCJwYWtvIik7Yy51bmNvbXByZXNzSW5wdXRUeXBlPWQ/InVpbnQ4YXJyYXkiOiJhcnJheSIsYy5jb21wcmVzc0lucHV0VHlwZT1kPyJ1aW50OGFycmF5IjoiYXJyYXkiLGMubWFnaWM9IlxiXHgwMCIsYy5jb21wcmVzcz1mdW5jdGlvbihhKXtyZXR1cm4gZS5kZWZsYXRlUmF3KGEpfSxjLnVuY29tcHJlc3M9ZnVuY3Rpb24oYSl7cmV0dXJuIGUuaW5mbGF0ZVJhdyhhKX19LHtwYWtvOjI0fV0sOTpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgYz8odGhpcy5maWxlcz17fSx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLnJvb3Q9IiIsYSYmdGhpcy5sb2FkKGEsYiksdm9pZCh0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IGM7Zm9yKHZhciBiIGluIHRoaXMpImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXNbYl0mJihhW2JdPXRoaXNbYl0pO3JldHVybiBhfSkpOm5ldyBjKGEsYil9dmFyIGQ9YSgiLi9iYXNlNjQiKTtjLnByb3RvdHlwZT1hKCIuL29iamVjdCIpLGMucHJvdG90eXBlLmxvYWQ9YSgiLi9sb2FkIiksYy5zdXBwb3J0PWEoIi4vc3VwcG9ydCIpLGMuZGVmYXVsdHM9YSgiLi9kZWZhdWx0cyIpLGMudXRpbHM9YSgiLi9kZXByZWNhdGVkUHVibGljVXRpbHMiKSxjLmJhc2U2ND17ZW5jb2RlOmZ1bmN0aW9uKGEpe3JldHVybiBkLmVuY29kZShhKX0sZGVjb2RlOmZ1bmN0aW9uKGEpe3JldHVybiBkLmRlY29kZShhKX19LGMuY29tcHJlc3Npb25zPWEoIi4vY29tcHJlc3Npb25zIiksYi5leHBvcnRzPWN9LHsiLi9iYXNlNjQiOjEsIi4vY29tcHJlc3Npb25zIjozLCIuL2RlZmF1bHRzIjo2LCIuL2RlcHJlY2F0ZWRQdWJsaWNVdGlscyI6NywiLi9sb2FkIjoxMCwiLi9vYmplY3QiOjEzLCIuL3N1cHBvcnQiOjE3fV0sMTA6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPWEoIi4vYmFzZTY0IiksZD1hKCIuL3ppcEVudHJpZXMiKTtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiKXt2YXIgZSxmLGcsaDtmb3IoYj1ifHx7fSxiLmJhc2U2NCYmKGE9Yy5kZWNvZGUoYSkpLGY9bmV3IGQoYSxiKSxlPWYuZmlsZXMsZz0wO2c8ZS5sZW5ndGg7ZysrKWg9ZVtnXSx0aGlzLmZpbGUoaC5maWxlTmFtZSxoLmRlY29tcHJlc3NlZCx7YmluYXJ5OiEwLG9wdGltaXplZEJpbmFyeVN0cmluZzohMCxkYXRlOmguZGF0ZSxkaXI6aC5kaXIsY29tbWVudDpoLmZpbGVDb21tZW50Lmxlbmd0aD9oLmZpbGVDb21tZW50Om51bGwsY3JlYXRlRm9sZGVyczpiLmNyZWF0ZUZvbGRlcnN9KTtyZXR1cm4gZi56aXBDb21tZW50Lmxlbmd0aCYmKHRoaXMuY29tbWVudD1mLnppcENvbW1lbnQpLHRoaXN9fSx7Ii4vYmFzZTY0IjoxLCIuL3ppcEVudHJpZXMiOjIyfV0sMTE6W2Z1bmN0aW9uKGEsYil7KGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtiLmV4cG9ydHM9ZnVuY3Rpb24oYixjKXtyZXR1cm4gbmV3IGEoYixjKX0sYi5leHBvcnRzLnRlc3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuaXNCdWZmZXIoYil9fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyP0J1ZmZlcjp2b2lkIDApfSx7fV0sMTI6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSl7dGhpcy5kYXRhPWEsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTB9dmFyIGQ9YSgiLi91aW50OEFycmF5UmVhZGVyIik7Yy5wcm90b3R5cGU9bmV3IGQsYy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaGVja09mZnNldChhKTt2YXIgYj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1hLGJ9LGIuZXhwb3J0cz1jfSx7Ii4vdWludDhBcnJheVJlYWRlciI6MTh9XSwxMzpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9zdXBwb3J0IiksZD1hKCIuL3V0aWxzIiksZT1hKCIuL2NyYzMyIiksZj1hKCIuL3NpZ25hdHVyZSIpLGc9YSgiLi9kZWZhdWx0cyIpLGg9YSgiLi9iYXNlNjQiKSxpPWEoIi4vY29tcHJlc3Npb25zIiksaj1hKCIuL2NvbXByZXNzZWRPYmplY3QiKSxrPWEoIi4vbm9kZUJ1ZmZlciIpLGw9YSgiLi91dGY4IiksbT1hKCIuL3N0cmluZ1dyaXRlciIpLG49YSgiLi91aW50OEFycmF5V3JpdGVyIiksbz1mdW5jdGlvbihhKXtpZihhLl9kYXRhIGluc3RhbmNlb2YgaiYmKGEuX2RhdGE9YS5fZGF0YS5nZXRDb250ZW50KCksYS5vcHRpb25zLmJpbmFyeT0hMCxhLm9wdGlvbnMuYmFzZTY0PSExLCJ1aW50OGFycmF5Ij09PWQuZ2V0VHlwZU9mKGEuX2RhdGEpKSl7dmFyIGI9YS5fZGF0YTthLl9kYXRhPW5ldyBVaW50OEFycmF5KGIubGVuZ3RoKSwwIT09Yi5sZW5ndGgmJmEuX2RhdGEuc2V0KGIsMCl9cmV0dXJuIGEuX2RhdGF9LHA9ZnVuY3Rpb24oYSl7dmFyIGI9byhhKSxlPWQuZ2V0VHlwZU9mKGIpO3JldHVybiJzdHJpbmciPT09ZT8hYS5vcHRpb25zLmJpbmFyeSYmYy5ub2RlYnVmZmVyP2soYiwidXRmLTgiKTphLmFzQmluYXJ5KCk6Yn0scT1mdW5jdGlvbihhKXt2YXIgYj1vKHRoaXMpO3JldHVybiBudWxsPT09Ynx8InVuZGVmaW5lZCI9PXR5cGVvZiBiPyIiOih0aGlzLm9wdGlvbnMuYmFzZTY0JiYoYj1oLmRlY29kZShiKSksYj1hJiZ0aGlzLm9wdGlvbnMuYmluYXJ5P0EudXRmOGRlY29kZShiKTpkLnRyYW5zZm9ybVRvKCJzdHJpbmciLGIpLGF8fHRoaXMub3B0aW9ucy5iaW5hcnl8fChiPWQudHJhbnNmb3JtVG8oInN0cmluZyIsQS51dGY4ZW5jb2RlKGIpKSksYil9LHI9ZnVuY3Rpb24oYSxiLGMpe3RoaXMubmFtZT1hLHRoaXMuZGlyPWMuZGlyLHRoaXMuZGF0ZT1jLmRhdGUsdGhpcy5jb21tZW50PWMuY29tbWVudCx0aGlzLl9kYXRhPWIsdGhpcy5vcHRpb25zPWMsdGhpcy5faW5pdGlhbE1ldGFkYXRhPXtkaXI6Yy5kaXIsZGF0ZTpjLmRhdGV9fTtyLnByb3RvdHlwZT17YXNUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHEuY2FsbCh0aGlzLCEwKX0sYXNCaW5hcnk6ZnVuY3Rpb24oKXtyZXR1cm4gcS5jYWxsKHRoaXMsITEpfSxhc05vZGVCdWZmZXI6ZnVuY3Rpb24oKXt2YXIgYT1wKHRoaXMpO3JldHVybiBkLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixhKX0sYXNVaW50OEFycmF5OmZ1bmN0aW9uKCl7dmFyIGE9cCh0aGlzKTtyZXR1cm4gZC50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYSl9LGFzQXJyYXlCdWZmZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hc1VpbnQ4QXJyYXkoKS5idWZmZXJ9fTt2YXIgcz1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9IiI7Zm9yKGM9MDtiPmM7YysrKWQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmEpLGE+Pj49ODtyZXR1cm4gZH0sdD1mdW5jdGlvbigpe3ZhciBhLGIsYz17fTtmb3IoYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZm9yKGIgaW4gYXJndW1lbnRzW2FdKWFyZ3VtZW50c1thXS5oYXNPd25Qcm9wZXJ0eShiKSYmInVuZGVmaW5lZCI9PXR5cGVvZiBjW2JdJiYoY1tiXT1hcmd1bWVudHNbYV1bYl0pO3JldHVybiBjfSx1PWZ1bmN0aW9uKGEpe3JldHVybiBhPWF8fHt9LGEuYmFzZTY0IT09ITB8fG51bGwhPT1hLmJpbmFyeSYmdm9pZCAwIT09YS5iaW5hcnl8fChhLmJpbmFyeT0hMCksYT10KGEsZyksYS5kYXRlPWEuZGF0ZXx8bmV3IERhdGUsbnVsbCE9PWEuY29tcHJlc3Npb24mJihhLmNvbXByZXNzaW9uPWEuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSksYX0sdj1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZj1kLmdldFR5cGVPZihiKTtpZihjPXUoYyksYy5jcmVhdGVGb2xkZXJzJiYoZT13KGEpKSYmeC5jYWxsKHRoaXMsZSwhMCksYy5kaXJ8fG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGIpYy5iYXNlNjQ9ITEsYy5iaW5hcnk9ITEsYj1udWxsO2Vsc2UgaWYoInN0cmluZyI9PT1mKWMuYmluYXJ5JiYhYy5iYXNlNjQmJmMub3B0aW1pemVkQmluYXJ5U3RyaW5nIT09ITAmJihiPWQuc3RyaW5nMmJpbmFyeShiKSk7ZWxzZXtpZihjLmJhc2U2ND0hMSxjLmJpbmFyeT0hMCwhKGZ8fGIgaW5zdGFuY2VvZiBqKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBkYXRhIG9mICciK2ErIicgaXMgaW4gYW4gdW5zdXBwb3J0ZWQgZm9ybWF0ICEiKTsiYXJyYXlidWZmZXIiPT09ZiYmKGI9ZC50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYikpfXZhciBnPW5ldyByKGEsYixjKTtyZXR1cm4gdGhpcy5maWxlc1thXT1nLGd9LHc9ZnVuY3Rpb24oYSl7Ii8iPT1hLnNsaWNlKC0xKSYmKGE9YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0xKSk7dmFyIGI9YS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBiPjA/YS5zdWJzdHJpbmcoMCxiKToiIn0seD1mdW5jdGlvbihhLGIpe3JldHVybiIvIiE9YS5zbGljZSgtMSkmJihhKz0iLyIpLGI9InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6ITEsdGhpcy5maWxlc1thXXx8di5jYWxsKHRoaXMsYSxudWxsLHtkaXI6ITAsY3JlYXRlRm9sZGVyczpifSksdGhpcy5maWxlc1thXX0seT1mdW5jdGlvbihhLGIpe3ZhciBjLGY9bmV3IGo7cmV0dXJuIGEuX2RhdGEgaW5zdGFuY2VvZiBqPyhmLnVuY29tcHJlc3NlZFNpemU9YS5fZGF0YS51bmNvbXByZXNzZWRTaXplLGYuY3JjMzI9YS5fZGF0YS5jcmMzMiwwPT09Zi51bmNvbXByZXNzZWRTaXplfHxhLmRpcj8oYj1pLlNUT1JFLGYuY29tcHJlc3NlZENvbnRlbnQ9IiIsZi5jcmMzMj0wKTphLl9kYXRhLmNvbXByZXNzaW9uTWV0aG9kPT09Yi5tYWdpYz9mLmNvbXByZXNzZWRDb250ZW50PWEuX2RhdGEuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKTooYz1hLl9kYXRhLmdldENvbnRlbnQoKSxmLmNvbXByZXNzZWRDb250ZW50PWIuY29tcHJlc3MoZC50cmFuc2Zvcm1UbyhiLmNvbXByZXNzSW5wdXRUeXBlLGMpKSkpOihjPXAoYSksKCFjfHwwPT09Yy5sZW5ndGh8fGEuZGlyKSYmKGI9aS5TVE9SRSxjPSIiKSxmLnVuY29tcHJlc3NlZFNpemU9Yy5sZW5ndGgsZi5jcmMzMj1lKGMpLGYuY29tcHJlc3NlZENvbnRlbnQ9Yi5jb21wcmVzcyhkLnRyYW5zZm9ybVRvKGIuY29tcHJlc3NJbnB1dFR5cGUsYykpKSxmLmNvbXByZXNzZWRTaXplPWYuY29tcHJlc3NlZENvbnRlbnQubGVuZ3RoLGYuY29tcHJlc3Npb25NZXRob2Q9Yi5tYWdpYyxmfSx6PWZ1bmN0aW9uKGEsYixjLGcpe3ZhciBoLGksaixrLG09KGMuY29tcHJlc3NlZENvbnRlbnQsZC50cmFuc2Zvcm1Ubygic3RyaW5nIixsLnV0ZjhlbmNvZGUoYi5uYW1lKSkpLG49Yi5jb21tZW50fHwiIixvPWQudHJhbnNmb3JtVG8oInN0cmluZyIsbC51dGY4ZW5jb2RlKG4pKSxwPW0ubGVuZ3RoIT09Yi5uYW1lLmxlbmd0aCxxPW8ubGVuZ3RoIT09bi5sZW5ndGgscj1iLm9wdGlvbnMsdD0iIix1PSIiLHY9IiI7aj1iLl9pbml0aWFsTWV0YWRhdGEuZGlyIT09Yi5kaXI/Yi5kaXI6ci5kaXIsaz1iLl9pbml0aWFsTWV0YWRhdGEuZGF0ZSE9PWIuZGF0ZT9iLmRhdGU6ci5kYXRlLGg9ay5nZXRIb3VycygpLGg8PD02LGh8PWsuZ2V0TWludXRlcygpLGg8PD01LGh8PWsuZ2V0U2Vjb25kcygpLzIsaT1rLmdldEZ1bGxZZWFyKCktMTk4MCxpPDw9NCxpfD1rLmdldE1vbnRoKCkrMSxpPDw9NSxpfD1rLmdldERhdGUoKSxwJiYodT1zKDEsMSkrcyhlKG0pLDQpK20sdCs9InVwIitzKHUubGVuZ3RoLDIpK3UpLHEmJih2PXMoMSwxKStzKHRoaXMuY3JjMzIobyksNCkrbyx0Kz0idWMiK3Modi5sZW5ndGgsMikrdik7dmFyIHc9IiI7dys9IlxuXHgwMCIsdys9cHx8cT8iXHgwMFxiIjoiXHgwMFx4MDAiLHcrPWMuY29tcHJlc3Npb25NZXRob2Qsdys9cyhoLDIpLHcrPXMoaSwyKSx3Kz1zKGMuY3JjMzIsNCksdys9cyhjLmNvbXByZXNzZWRTaXplLDQpLHcrPXMoYy51bmNvbXByZXNzZWRTaXplLDQpLHcrPXMobS5sZW5ndGgsMiksdys9cyh0Lmxlbmd0aCwyKTt2YXIgeD1mLkxPQ0FMX0ZJTEVfSEVBREVSK3crbSt0LHk9Zi5DRU5UUkFMX0ZJTEVfSEVBREVSKyIUXHgwMCIrdytzKG8ubGVuZ3RoLDIpKyJceDAwXHgwMFx4MDBceDAwIisoaj09PSEwPyIQXHgwMFx4MDBceDAwIjoiXHgwMFx4MDBceDAwXHgwMCIpK3MoZyw0KSttK3QrbztyZXR1cm57ZmlsZVJlY29yZDp4LGRpclJlY29yZDp5LGNvbXByZXNzZWRPYmplY3Q6Y319LEE9e2xvYWQ6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkxvYWQgbWV0aG9kIGlzIG5vdCBkZWZpbmVkLiBJcyB0aGUgZmlsZSBqc3ppcC1sb2FkLmpzIGluY2x1ZGVkID8iKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGY9W107Zm9yKGIgaW4gdGhpcy5maWxlcyl0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGIpJiYoZD10aGlzLmZpbGVzW2JdLGU9bmV3IHIoZC5uYW1lLGQuX2RhdGEsdChkLm9wdGlvbnMpKSxjPWIuc2xpY2UodGhpcy5yb290Lmxlbmd0aCxiLmxlbmd0aCksYi5zbGljZSgwLHRoaXMucm9vdC5sZW5ndGgpPT09dGhpcy5yb290JiZhKGMsZSkmJmYucHVzaChlKSk7cmV0dXJuIGZ9LGZpbGU6ZnVuY3Rpb24oYSxiLGMpe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihkLmlzUmVnRXhwKGEpKXt2YXIgZT1hO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihhLGIpe3JldHVybiFiLmRpciYmZS50ZXN0KGEpfSl9cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGIsYyl7cmV0dXJuIWMuZGlyJiZiPT09YX0pWzBdfHxudWxsfXJldHVybiBhPXRoaXMucm9vdCthLHYuY2FsbCh0aGlzLGEsYixjKSx0aGlzfSxmb2xkZXI6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIHRoaXM7aWYoZC5pc1JlZ0V4cChhKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5kaXImJmEudGVzdChiKX0pO3ZhciBiPXRoaXMucm9vdCthLGM9eC5jYWxsKHRoaXMsYiksZT10aGlzLmNsb25lKCk7cmV0dXJuIGUucm9vdD1jLm5hbWUsZX0scmVtb3ZlOmZ1bmN0aW9uKGEpe2E9dGhpcy5yb290K2E7dmFyIGI9dGhpcy5maWxlc1thXTtpZihifHwoIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYj10aGlzLmZpbGVzW2FdKSxiJiYhYi5kaXIpZGVsZXRlIHRoaXMuZmlsZXNbYV07ZWxzZSBmb3IodmFyIGM9dGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5uYW1lLnNsaWNlKDAsYS5sZW5ndGgpPT09YX0pLGQ9MDtkPGMubGVuZ3RoO2QrKylkZWxldGUgdGhpcy5maWxlc1tjW2RdLm5hbWVdO3JldHVybiB0aGlzfSxnZW5lcmF0ZTpmdW5jdGlvbihhKXthPXQoYXx8e30se2Jhc2U2NDohMCxjb21wcmVzc2lvbjoiU1RPUkUiLHR5cGU6ImJhc2U2NCIsY29tbWVudDpudWxsfSksZC5jaGVja1N1cHBvcnQoYS50eXBlKTt2YXIgYixjLGU9W10sZz0wLGo9MCxrPWQudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy51dGY4ZW5jb2RlKGEuY29tbWVudHx8dGhpcy5jb21tZW50fHwiIikpO2Zvcih2YXIgbCBpbiB0aGlzLmZpbGVzKWlmKHRoaXMuZmlsZXMuaGFzT3duUHJvcGVydHkobCkpe3ZhciBvPXRoaXMuZmlsZXNbbF0scD1vLm9wdGlvbnMuY29tcHJlc3Npb258fGEuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSxxPWlbcF07aWYoIXEpdGhyb3cgbmV3IEVycm9yKHArIiBpcyBub3QgYSB2YWxpZCBjb21wcmVzc2lvbiBtZXRob2QgISIpO3ZhciByPXkuY2FsbCh0aGlzLG8scSksdT16LmNhbGwodGhpcyxsLG8scixnKTtnKz11LmZpbGVSZWNvcmQubGVuZ3RoK3IuY29tcHJlc3NlZFNpemUsais9dS5kaXJSZWNvcmQubGVuZ3RoLGUucHVzaCh1KX12YXIgdj0iIjt2PWYuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKyJceDAwXHgwMFx4MDBceDAwIitzKGUubGVuZ3RoLDIpK3MoZS5sZW5ndGgsMikrcyhqLDQpK3MoZyw0KStzKGsubGVuZ3RoLDIpK2s7dmFyIHc9YS50eXBlLnRvTG93ZXJDYXNlKCk7Zm9yKGI9InVpbnQ4YXJyYXkiPT09d3x8ImFycmF5YnVmZmVyIj09PXd8fCJibG9iIj09PXd8fCJub2RlYnVmZmVyIj09PXc/bmV3IG4oZytqK3YubGVuZ3RoKTpuZXcgbShnK2ordi5sZW5ndGgpLGM9MDtjPGUubGVuZ3RoO2MrKyliLmFwcGVuZChlW2NdLmZpbGVSZWNvcmQpLGIuYXBwZW5kKGVbY10uY29tcHJlc3NlZE9iamVjdC5jb21wcmVzc2VkQ29udGVudCk7Zm9yKGM9MDtjPGUubGVuZ3RoO2MrKyliLmFwcGVuZChlW2NdLmRpclJlY29yZCk7Yi5hcHBlbmQodik7dmFyIHg9Yi5maW5hbGl6ZSgpO3N3aXRjaChhLnR5cGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJ1aW50OGFycmF5IjpjYXNlImFycmF5YnVmZmVyIjpjYXNlIm5vZGVidWZmZXIiOnJldHVybiBkLnRyYW5zZm9ybVRvKGEudHlwZS50b0xvd2VyQ2FzZSgpLHgpO2Nhc2UiYmxvYiI6cmV0dXJuIGQuYXJyYXlCdWZmZXIyQmxvYihkLnRyYW5zZm9ybVRvKCJhcnJheWJ1ZmZlciIseCkpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYS5iYXNlNjQ/aC5lbmNvZGUoeCk6eDtkZWZhdWx0OnJldHVybiB4fX0sY3JjMzI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZShhLGIpfSx1dGY4ZW5jb2RlOmZ1bmN0aW9uKGEpe3JldHVybiBkLnRyYW5zZm9ybVRvKCJzdHJpbmciLGwudXRmOGVuY29kZShhKSl9LHV0ZjhkZWNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGwudXRmOGRlY29kZShhKX19O2IuZXhwb3J0cz1BfSx7Ii4vYmFzZTY0IjoxLCIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vY29tcHJlc3Npb25zIjozLCIuL2NyYzMyIjo0LCIuL2RlZmF1bHRzIjo2LCIuL25vZGVCdWZmZXIiOjExLCIuL3NpZ25hdHVyZSI6MTQsIi4vc3RyaW5nV3JpdGVyIjoxNiwiLi9zdXBwb3J0IjoxNywiLi91aW50OEFycmF5V3JpdGVyIjoxOSwiLi91dGY4IjoyMCwiLi91dGlscyI6MjF9XSwxNDpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtjLkxPQ0FMX0ZJTEVfSEVBREVSPSJQSwMEIixjLkNFTlRSQUxfRklMRV9IRUFERVI9IlBLAQIiLGMuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQSwUGIixjLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1I9IlBLBgciLGMuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQSwYGIixjLkRBVEFfREVTQ1JJUFRPUj0iUEsHXGIifSx7fV0sMTU6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSxiKXt0aGlzLmRhdGE9YSxifHwodGhpcy5kYXRhPWUuc3RyaW5nMmJpbmFyeSh0aGlzLmRhdGEpKSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL2RhdGFSZWFkZXIiKSxlPWEoIi4vdXRpbHMiKTtjLnByb3RvdHlwZT1uZXcgZCxjLnByb3RvdHlwZS5ieXRlQXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YS5jaGFyQ29kZUF0KGEpfSxjLnByb3RvdHlwZS5sYXN0SW5kZXhPZlNpZ25hdHVyZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kYXRhLmxhc3RJbmRleE9mKGEpfSxjLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNoZWNrT2Zmc2V0KGEpO3ZhciBiPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi9kYXRhUmVhZGVyIjo1LCIuL3V0aWxzIjoyMX1dLDE2OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3V0aWxzIiksZD1mdW5jdGlvbigpe3RoaXMuZGF0YT1bXX07ZC5wcm90b3R5cGU9e2FwcGVuZDpmdW5jdGlvbihhKXthPWMudHJhbnNmb3JtVG8oInN0cmluZyIsYSksdGhpcy5kYXRhLnB1c2goYSl9LGZpbmFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5qb2luKCIiKX19LGIuZXhwb3J0cz1kfSx7Ii4vdXRpbHMiOjIxfV0sMTc6W2Z1bmN0aW9uKGEsYixjKXsoZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2lmKGMuYmFzZTY0PSEwLGMuYXJyYXk9ITAsYy5zdHJpbmc9ITAsYy5hcnJheWJ1ZmZlcj0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXksYy5ub2RlYnVmZmVyPSJ1bmRlZmluZWQiIT10eXBlb2YgYSxjLnVpbnQ4YXJyYXk9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5LCJ1bmRlZmluZWQiPT10eXBlb2YgQXJyYXlCdWZmZXIpYy5ibG9iPSExO2Vsc2V7dmFyIGI9bmV3IEFycmF5QnVmZmVyKDApO3RyeXtjLmJsb2I9MD09PW5ldyBCbG9iKFtiXSx7dHlwZToiYXBwbGljYXRpb24vemlwIn0pLnNpemV9Y2F0Y2goZCl7dHJ5e3ZhciBlPXdpbmRvdy5CbG9iQnVpbGRlcnx8d2luZG93LldlYktpdEJsb2JCdWlsZGVyfHx3aW5kb3cuTW96QmxvYkJ1aWxkZXJ8fHdpbmRvdy5NU0Jsb2JCdWlsZGVyLGY9bmV3IGU7Zi5hcHBlbmQoYiksYy5ibG9iPTA9PT1mLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIpLnNpemV9Y2F0Y2goZCl7Yy5ibG9iPSExfX19fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyP0J1ZmZlcjp2b2lkIDApfSx7fV0sMTg6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSl7YSYmKHRoaXMuZGF0YT1hLHRoaXMubGVuZ3RoPXRoaXMuZGF0YS5sZW5ndGgsdGhpcy5pbmRleD0wKX12YXIgZD1hKCIuL2RhdGFSZWFkZXIiKTtjLnByb3RvdHlwZT1uZXcgZCxjLnByb3RvdHlwZS5ieXRlQXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YVthXX0sYy5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuY2hhckNvZGVBdCgwKSxjPWEuY2hhckNvZGVBdCgxKSxkPWEuY2hhckNvZGVBdCgyKSxlPWEuY2hhckNvZGVBdCgzKSxmPXRoaXMubGVuZ3RoLTQ7Zj49MDstLWYpaWYodGhpcy5kYXRhW2ZdPT09YiYmdGhpcy5kYXRhW2YrMV09PT1jJiZ0aGlzLmRhdGFbZisyXT09PWQmJnRoaXMuZGF0YVtmKzNdPT09ZSlyZXR1cm4gZjtyZXR1cm4tMX0sYy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7aWYodGhpcy5jaGVja09mZnNldChhKSwwPT09YSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dmFyIGI9dGhpcy5kYXRhLnN1YmFycmF5KHRoaXMuaW5kZXgsdGhpcy5pbmRleCthKTtyZXR1cm4gdGhpcy5pbmRleCs9YSxifSxiLmV4cG9ydHM9Y30seyIuL2RhdGFSZWFkZXIiOjV9XSwxOTpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi91dGlscyIpLGQ9ZnVuY3Rpb24oYSl7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KGEpLHRoaXMuaW5kZXg9MH07ZC5wcm90b3R5cGU9e2FwcGVuZDpmdW5jdGlvbihhKXswIT09YS5sZW5ndGgmJihhPWMudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGEpLHRoaXMuZGF0YS5zZXQoYSx0aGlzLmluZGV4KSx0aGlzLmluZGV4Kz1hLmxlbmd0aCl9LGZpbmFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YX19LGIuZXhwb3J0cz1kfSx7Ii4vdXRpbHMiOjIxfV0sMjA6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7Zm9yKHZhciBkPWEoIi4vdXRpbHMiKSxlPWEoIi4vc3VwcG9ydCIpLGY9YSgiLi9ub2RlQnVmZmVyIiksZz1uZXcgQXJyYXkoMjU2KSxoPTA7MjU2Pmg7aCsrKWdbaF09aD49MjUyPzY6aD49MjQ4PzU6aD49MjQwPzQ6aD49MjI0PzM6aD49MTkyPzI6MTtnWzI1NF09Z1syNTRdPTE7dmFyIGk9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGYsZyxoPWEubGVuZ3RoLGk9MDtmb3IoZj0wO2g+ZjtmKyspYz1hLmNoYXJDb2RlQXQoZiksNTUyOTY9PT0oNjQ1MTImYykmJmg+ZisxJiYoZD1hLmNoYXJDb2RlQXQoZisxKSw1NjMyMD09PSg2NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZisrKSksaSs9MTI4PmM/MToyMDQ4PmM/Mjo2NTUzNj5jPzM6NDtmb3IoYj1lLnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoaSk6bmV3IEFycmF5KGkpLGc9MCxmPTA7aT5nO2YrKyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmaD5mKzEmJihkPWEuY2hhckNvZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5Njw8MTApKyhkLTU2MzIwKSxmKyspKSwxMjg+Yz9iW2crK109YzoyMDQ4PmM/KGJbZysrXT0xOTJ8Yz4+PjYsYltnKytdPTEyOHw2MyZjKTo2NTUzNj5jPyhiW2crK109MjI0fGM+Pj4xMixiW2crK109MTI4fGM+Pj42JjYzLGJbZysrXT0xMjh8NjMmYyk6KGJbZysrXT0yNDB8Yz4+PjE4LGJbZysrXT0xMjh8Yz4+PjEyJjYzLGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTtyZXR1cm4gYn0saj1mdW5jdGlvbihhLGIpe3ZhciBjO2ZvcihiPWJ8fGEubGVuZ3RoLGI+YS5sZW5ndGgmJihiPWEubGVuZ3RoKSxjPWItMTtjPj0wJiYxMjg9PT0oMTkyJmFbY10pOyljLS07cmV0dXJuIDA+Yz9iOjA9PT1jP2I6YytnW2FbY11dPmI/YzpifSxrPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGg9YS5sZW5ndGgsaT1uZXcgQXJyYXkoMipoKTtmb3IoYz0wLGI9MDtoPmI7KWlmKGU9YVtiKytdLDEyOD5lKWlbYysrXT1lO2Vsc2UgaWYoZj1nW2VdLGY+NClpW2MrK109NjU1MzMsYis9Zi0xO2Vsc2V7Zm9yKGUmPTI9PT1mPzMxOjM9PT1mPzE1Ojc7Zj4xJiZoPmI7KWU9ZTw8Nnw2MyZhW2IrK10sZi0tO2Y+MT9pW2MrK109NjU1MzM6NjU1MzY+ZT9pW2MrK109ZTooZS09NjU1MzYsaVtjKytdPTU1Mjk2fGU+PjEwJjEwMjMsaVtjKytdPTU2MzIwfDEwMjMmZSl9cmV0dXJuIGkubGVuZ3RoIT09YyYmKGkuc3ViYXJyYXk/aT1pLnN1YmFycmF5KDAsYyk6aS5sZW5ndGg9YyksZC5hcHBseUZyb21DaGFyQ29kZShpKX07Yy51dGY4ZW5jb2RlPWZ1bmN0aW9uKGEpe3JldHVybiBlLm5vZGVidWZmZXI/ZihhLCJ1dGYtOCIpOmkoYSl9LGMudXRmOGRlY29kZT1mdW5jdGlvbihhKXtpZihlLm5vZGVidWZmZXIpcmV0dXJuIGQudHJhbnNmb3JtVG8oIm5vZGVidWZmZXIiLGEpLnRvU3RyaW5nKCJ1dGYtOCIpO2E9ZC50cmFuc2Zvcm1UbyhlLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSIsYSk7Zm9yKHZhciBiPVtdLGM9MCxmPWEubGVuZ3RoLGc9NjU1MzY7Zj5jOyl7dmFyIGg9aihhLE1hdGgubWluKGMrZyxmKSk7Yi5wdXNoKGUudWludDhhcnJheT9rKGEuc3ViYXJyYXkoYyxoKSk6ayhhLnNsaWNlKGMsaCkpKSxjPWh9cmV0dXJuIGIuam9pbigiIil9fSx7Ii4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTcsIi4vdXRpbHMiOjIxfV0sMjE6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtyZXR1cm4gYX1mdW5jdGlvbiBlKGEsYil7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDsrK2MpYltjXT0yNTUmYS5jaGFyQ29kZUF0KGMpO3JldHVybiBifWZ1bmN0aW9uIGYoYSl7dmFyIGI9NjU1MzYsZD1bXSxlPWEubGVuZ3RoLGY9Yy5nZXRUeXBlT2YoYSksZz0wLGg9ITA7dHJ5e3N3aXRjaChmKXtjYXNlInVpbnQ4YXJyYXkiOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgwKSk7YnJlYWs7Y2FzZSJub2RlYnVmZmVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsaigwKSl9fWNhdGNoKGkpe2g9ITF9aWYoIWgpe2Zvcih2YXIgaz0iIixsPTA7bDxhLmxlbmd0aDtsKyspays9U3RyaW5nLmZyb21DaGFyQ29kZShhW2xdKTtyZXR1cm4ga31mb3IoO2U+ZyYmYj4xOyl0cnl7ZC5wdXNoKCJhcnJheSI9PT1mfHwibm9kZWJ1ZmZlciI9PT1mP1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhLnNsaWNlKGcsTWF0aC5taW4oZytiLGUpKSk6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGEuc3ViYXJyYXkoZyxNYXRoLm1pbihnK2IsZSkpKSksZys9Yn1jYXRjaChpKXtiPU1hdGguZmxvb3IoYi8yKX1yZXR1cm4gZC5qb2luKCIiKX1mdW5jdGlvbiBnKGEsYil7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYltjXT1hW2NdO3JldHVybiBifXZhciBoPWEoIi4vc3VwcG9ydCIpLGk9YSgiLi9jb21wcmVzc2lvbnMiKSxqPWEoIi4vbm9kZUJ1ZmZlciIpO2Muc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihhKXtmb3IodmFyIGI9IiIsYz0wO2M8YS5sZW5ndGg7YysrKWIrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmEuY2hhckNvZGVBdChjKSk7cmV0dXJuIGJ9LGMuYXJyYXlCdWZmZXIyQmxvYj1mdW5jdGlvbihhKXtjLmNoZWNrU3VwcG9ydCgiYmxvYiIpO3RyeXtyZXR1cm4gbmV3IEJsb2IoW2FdLHt0eXBlOiJhcHBsaWNhdGlvbi96aXAifSl9Y2F0Y2goYil7dHJ5e3ZhciBkPXdpbmRvdy5CbG9iQnVpbGRlcnx8d2luZG93LldlYktpdEJsb2JCdWlsZGVyfHx3aW5kb3cuTW96QmxvYkJ1aWxkZXJ8fHdpbmRvdy5NU0Jsb2JCdWlsZGVyLGU9bmV3IGQ7cmV0dXJuIGUuYXBwZW5kKGEpLGUuZ2V0QmxvYigiYXBwbGljYXRpb24vemlwIil9Y2F0Y2goYil7dGhyb3cgbmV3IEVycm9yKCJCdWcgOiBjYW4ndCBjb25zdHJ1Y3QgdGhlIEJsb2IuIil9fX0sYy5hcHBseUZyb21DaGFyQ29kZT1mO3ZhciBrPXt9O2suc3RyaW5nPXtzdHJpbmc6ZCxhcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLG5ldyBBcnJheShhLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gay5zdHJpbmcudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEsaihhLmxlbmd0aCkpfX0say5hcnJheT17c3RyaW5nOmYsYXJyYXk6ZCxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihhKX19LGsuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZihuZXcgVWludDhBcnJheShhKSl9LGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKG5ldyBVaW50OEFycmF5KGEpLG5ldyBBcnJheShhLmJ5dGVMZW5ndGgpKX0sYXJyYXlidWZmZXI6ZCx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihuZXcgVWludDhBcnJheShhKSl9fSxrLnVpbnQ4YXJyYXk9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLmJ1ZmZlcn0sdWludDhhcnJheTpkLG5vZGVidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGooYSl9fSxrLm5vZGVidWZmZXI9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrLm5vZGVidWZmZXIudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGcoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmR9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24oYSxiKXtpZihifHwoYj0iIiksIWEpcmV0dXJuIGI7Yy5jaGVja1N1cHBvcnQoYSk7dmFyIGQ9Yy5nZXRUeXBlT2YoYiksZT1rW2RdW2FdKGIpO3JldHVybiBlfSxjLmdldFR5cGVPZj1mdW5jdGlvbihhKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGE/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT8iYXJyYXkiOmgubm9kZWJ1ZmZlciYmai50ZXN0KGEpPyJub2RlYnVmZmVyIjpoLnVpbnQ4YXJyYXkmJmEgaW5zdGFuY2VvZiBVaW50OEFycmF5PyJ1aW50OGFycmF5IjpoLmFycmF5YnVmZmVyJiZhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ImFycmF5YnVmZmVyIjp2b2lkIDB9LGMuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGEpe3ZhciBiPWhbYS50b0xvd2VyQ2FzZSgpXTtpZighYil0aHJvdyBuZXcgRXJyb3IoYSsiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyIil9LGMuTUFYX1ZBTFVFXzE2QklUUz02NTUzNSxjLk1BWF9WQUxVRV8zMkJJVFM9LTEsYy5wcmV0dHk9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPSIiO2ZvcihjPTA7YzwoYXx8IiIpLmxlbmd0aDtjKyspYj1hLmNoYXJDb2RlQXQoYyksZCs9IlxceCIrKDE2PmI/IjAiOiIiKStiLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBkfSxjLmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gaSlpZihpLmhhc093blByb3BlcnR5KGIpJiZpW2JdLm1hZ2ljPT09YSlyZXR1cm4gaVtiXTtyZXR1cm4gbnVsbH0sYy5pc1JlZ0V4cD1mdW5jdGlvbihhKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX19LHsiLi9jb21wcmVzc2lvbnMiOjMsIi4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTd9XSwyMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1iLGEmJnRoaXMubG9hZChhKX12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi9ub2RlQnVmZmVyUmVhZGVyIiksZj1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKSxnPWEoIi4vdXRpbHMiKSxoPWEoIi4vc2lnbmF0dXJlIiksaT1hKCIuL3ppcEVudHJ5Iiksaj1hKCIuL3N1cHBvcnQiKSxrPWEoIi4vb2JqZWN0Iik7Yy5wcm90b3R5cGU9e2NoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk7aWYoYiE9PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZyA6IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK2cucHJldHR5KGIpKyIsIGV4cGVjdGVkICIrZy5wcmV0dHkoYSkrIikiKX0scmVhZEJsb2NrRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1lbnRMZW5ndGg9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLnppcENvbW1lbnQ9dGhpcy5yZWFkZXIucmVhZFN0cmluZyh0aGlzLnppcENvbW1lbnRMZW5ndGgpLHRoaXMuemlwQ29tbWVudD1rLnV0ZjhkZWNvZGUodGhpcy56aXBDb21tZW50KX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMudmVyc2lvbk1hZGVCeT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIgYSxiLGMsZD10aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZS00NCxlPTA7ZD5lOylhPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksYj10aGlzLnJlYWRlci5yZWFkSW50KDQpLGM9dGhpcy5yZWFkZXIucmVhZFN0cmluZyhiKSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGFbYV09e2lkOmEsbGVuZ3RoOmIsdmFsdWU6Y319LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza3NDb3VudD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktdm9sdW1lcyB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKX0scmVhZExvY2FsRmlsZXM6ZnVuY3Rpb24oKXt2YXIgYSxiO2ZvcihhPTA7YTx0aGlzLmZpbGVzLmxlbmd0aDthKyspYj10aGlzLmZpbGVzW2FdLHRoaXMucmVhZGVyLnNldEluZGV4KGIubG9jYWxIZWFkZXJPZmZzZXQpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5MT0NBTF9GSUxFX0hFQURFUiksYi5yZWFkTG9jYWxQYXJ0KHRoaXMucmVhZGVyKSxiLmhhbmRsZVVURjgoKX0scmVhZENlbnRyYWxEaXI6ZnVuY3Rpb24oKXt2YXIgYTtmb3IodGhpcy5yZWFkZXIuc2V0SW5kZXgodGhpcy5jZW50cmFsRGlyT2Zmc2V0KTt0aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpPT09aC5DRU5UUkFMX0ZJTEVfSEVBREVSOylhPW5ldyBpKHt6aXA2NDp0aGlzLnppcDY0fSx0aGlzLmxvYWRPcHRpb25zKSxhLnJlYWRDZW50cmFsUGFydCh0aGlzLnJlYWRlciksdGhpcy5maWxlcy5wdXNoKGEpfSxyZWFkRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoaC5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpO2lmKC0xPT09YSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpO2lmKHRoaXMucmVhZGVyLnNldEluZGV4KGEpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrRW5kT2ZDZW50cmFsKCksdGhpcy5kaXNrTnVtYmVyPT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkcz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyU2l6ZT09PWcuTUFYX1ZBTFVFXzMyQklUU3x8dGhpcy5jZW50cmFsRGlyT2Zmc2V0PT09Zy5NQVhfVkFMVUVfMzJCSVRTKXtpZih0aGlzLnppcDY0PSEwLGE9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSwtMT09PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTt0aGlzLnJlYWRlci5zZXRJbmRleChhKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGguWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSx0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX19LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oYSl7dmFyIGI9Zy5nZXRUeXBlT2YoYSk7dGhpcy5yZWFkZXI9InN0cmluZyIhPT1ifHxqLnVpbnQ4YXJyYXk/Im5vZGVidWZmZXIiPT09Yj9uZXcgZShhKTpuZXcgZihnLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKSk6bmV3IGQoYSx0aGlzLmxvYWRPcHRpb25zLm9wdGltaXplZEJpbmFyeVN0cmluZyl9LGxvYWQ6ZnVuY3Rpb24oYSl7dGhpcy5wcmVwYXJlUmVhZGVyKGEpLHRoaXMucmVhZEVuZE9mQ2VudHJhbCgpLHRoaXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSxiLmV4cG9ydHM9Y30seyIuL25vZGVCdWZmZXJSZWFkZXIiOjEyLCIuL29iamVjdCI6MTMsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4LCIuL3V0aWxzIjoyMSwiLi96aXBFbnRyeSI6MjN9XSwyMzpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMub3B0aW9ucz1hLHRoaXMubG9hZE9wdGlvbnM9Yn12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi91dGlscyIpLGY9YSgiLi9jb21wcmVzc2VkT2JqZWN0IiksZz1hKCIuL29iamVjdCIpO2MucHJvdG90eXBlPXtpc0VuY3J5cHRlZDpmdW5jdGlvbigpe3JldHVybiAxPT09KDEmdGhpcy5iaXRGbGFnKX0sdXNlVVRGODpmdW5jdGlvbigpe3JldHVybiAyMDQ4PT09KDIwNDgmdGhpcy5iaXRGbGFnKX0scHJlcGFyZUNvbXByZXNzZWRDb250ZW50OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1hLmluZGV4O2Euc2V0SW5kZXgoYik7dmFyIGU9YS5yZWFkRGF0YShjKTtyZXR1cm4gYS5zZXRJbmRleChkKSxlfX0scHJlcGFyZUNvbnRlbnQ6ZnVuY3Rpb24oYSxiLGMsZCxmKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1lLnRyYW5zZm9ybVRvKGQudW5jb21wcmVzc0lucHV0VHlwZSx0aGlzLmdldENvbXByZXNzZWRDb250ZW50KCkpLGI9ZC51bmNvbXByZXNzKGEpO2lmKGIubGVuZ3RoIT09Zil0aHJvdyBuZXcgRXJyb3IoIkJ1ZyA6IHVuY29tcHJlc3NlZCBkYXRhIHNpemUgbWlzbWF0Y2giKTtyZXR1cm4gYn19LHJlYWRMb2NhbFBhcnQ6ZnVuY3Rpb24oYSl7dmFyIGIsYztpZihhLnNraXAoMjIpLHRoaXMuZmlsZU5hbWVMZW5ndGg9YS5yZWFkSW50KDIpLGM9YS5yZWFkSW50KDIpLHRoaXMuZmlsZU5hbWU9YS5yZWFkU3RyaW5nKHRoaXMuZmlsZU5hbWVMZW5ndGgpLGEuc2tpcChjKSwtMT09dGhpcy5jb21wcmVzc2VkU2l6ZXx8LTE9PXRoaXMudW5jb21wcmVzc2VkU2l6ZSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZyBvciBjb3JydXB0ZWQgemlwIDogZGlkbid0IGdldCBlbm91Z2ggaW5mb3JtYXRpb25zIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5IChjb21wcmVzc2VkU2l6ZSA9PSAtMSB8fCB1bmNvbXByZXNzZWRTaXplID09IC0xKSIpO2lmKGI9ZS5maW5kQ29tcHJlc3Npb24odGhpcy5jb21wcmVzc2lvbk1ldGhvZCksbnVsbD09PWIpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY29tcHJlc3Npb24gIitlLnByZXR0eSh0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSsiIHVua25vd24gKGlubmVyIGZpbGUgOiAiK3RoaXMuZmlsZU5hbWUrIikiKTtpZih0aGlzLmRlY29tcHJlc3NlZD1uZXcgZix0aGlzLmRlY29tcHJlc3NlZC5jb21wcmVzc2VkU2l6ZT10aGlzLmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLnVuY29tcHJlc3NlZFNpemU9dGhpcy51bmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLmNyYzMyPXRoaXMuY3JjMzIsdGhpcy5kZWNvbXByZXNzZWQuY29tcHJlc3Npb25NZXRob2Q9dGhpcy5jb21wcmVzc2lvbk1ldGhvZCx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb21wcmVzc2VkQ29udGVudD10aGlzLnByZXBhcmVDb21wcmVzc2VkQ29udGVudChhLGEuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxiKSx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50PXRoaXMucHJlcGFyZUNvbnRlbnQoYSxhLmluZGV4LHRoaXMuY29tcHJlc3NlZFNpemUsYix0aGlzLnVuY29tcHJlc3NlZFNpemUpLHRoaXMubG9hZE9wdGlvbnMuY2hlY2tDUkMzMiYmKHRoaXMuZGVjb21wcmVzc2VkPWUudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5kZWNvbXByZXNzZWQuZ2V0Q29udGVudCgpKSxnLmNyYzMyKHRoaXMuZGVjb21wcmVzc2VkKSE9PXRoaXMuY3JjMzIpKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoIil9LHJlYWRDZW50cmFsUGFydDpmdW5jdGlvbihhKXtpZih0aGlzLnZlcnNpb25NYWRlQnk9YS5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD1hLnJlYWRJbnQoMiksdGhpcy5iaXRGbGFnPWEucmVhZEludCgyKSx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPWEucmVhZFN0cmluZygyKSx0aGlzLmRhdGU9YS5yZWFkRGF0ZSgpLHRoaXMuY3JjMzI9YS5yZWFkSW50KDQpLHRoaXMuY29tcHJlc3NlZFNpemU9YS5yZWFkSW50KDQpLHRoaXMudW5jb21wcmVzc2VkU2l6ZT1hLnJlYWRJbnQoNCksdGhpcy5maWxlTmFtZUxlbmd0aD1hLnJlYWRJbnQoMiksdGhpcy5leHRyYUZpZWxkc0xlbmd0aD1hLnJlYWRJbnQoMiksdGhpcy5maWxlQ29tbWVudExlbmd0aD1hLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9YS5yZWFkSW50KDIpLHRoaXMuaW50ZXJuYWxGaWxlQXR0cmlidXRlcz1hLnJlYWRJbnQoMiksdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPWEucmVhZEludCg0KSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PWEucmVhZEludCg0KSx0aGlzLmlzRW5jcnlwdGVkKCkpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0ZWQgemlwIGFyZSBub3Qgc3VwcG9ydGVkIik7dGhpcy5maWxlTmFtZT1hLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksdGhpcy5yZWFkRXh0cmFGaWVsZHMoYSksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVsZChhKSx0aGlzLmZpbGVDb21tZW50PWEucmVhZFN0cmluZyh0aGlzLmZpbGVDb21tZW50TGVuZ3RoKSx0aGlzLmRpcj0xNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM/ITA6ITF9LHBhcnNlWklQNjRFeHRyYUZpZWxkOmZ1bmN0aW9uKCl7aWYodGhpcy5leHRyYUZpZWxkc1sxXSl7dmFyIGE9bmV3IGQodGhpcy5leHRyYUZpZWxkc1sxXS52YWx1ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg4KSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PWUuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3NlZFNpemU9YS5yZWFkSW50KDgpKSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD1hLnJlYWRJbnQoOCkpLHRoaXMuZGlza051bWJlclN0YXJ0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3RhcnQ9YS5yZWFkSW50KDQpKX19LHJlYWRFeHRyYUZpZWxkczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1hLmluZGV4O2Zvcih0aGlzLmV4dHJhRmllbGRzPXRoaXMuZXh0cmFGaWVsZHN8fHt9O2EuaW5kZXg8ZSt0aGlzLmV4dHJhRmllbGRzTGVuZ3RoOyliPWEucmVhZEludCgyKSxjPWEucmVhZEludCgyKSxkPWEucmVhZFN0cmluZyhjKSx0aGlzLmV4dHJhRmllbGRzW2JdPXtpZDpiLGxlbmd0aDpjLHZhbHVlOmR9fSxoYW5kbGVVVEY4OmZ1bmN0aW9uKCl7aWYodGhpcy51c2VVVEY4KCkpdGhpcy5maWxlTmFtZT1nLnV0ZjhkZWNvZGUodGhpcy5maWxlTmFtZSksdGhpcy5maWxlQ29tbWVudD1nLnV0ZjhkZWNvZGUodGhpcy5maWxlQ29tbWVudCk7ZWxzZXt2YXIgYT10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZVBhdGgoKTtudWxsIT09YSYmKHRoaXMuZmlsZU5hbWU9YSk7dmFyIGI9dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50KCk7bnVsbCE9PWImJih0aGlzLmZpbGVDb21tZW50PWIpfX0sZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjg3ODldO2lmKGEpe3ZhciBiPW5ldyBkKGEudmFsdWUpO3JldHVybiAxIT09Yi5yZWFkSW50KDEpP251bGw6Zy5jcmMzMih0aGlzLmZpbGVOYW1lKSE9PWIucmVhZEludCg0KT9udWxsOmcudXRmOGRlY29kZShiLnJlYWRTdHJpbmcoYS5sZW5ndGgtNSkpfXJldHVybiBudWxsfSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5leHRyYUZpZWxkc1syNTQ2MV07aWYoYSl7dmFyIGI9bmV3IGQoYS52YWx1ZSk7cmV0dXJuIDEhPT1iLnJlYWRJbnQoMSk/bnVsbDpnLmNyYzMyKHRoaXMuZmlsZUNvbW1lbnQpIT09Yi5yZWFkSW50KDQpP251bGw6Zy51dGY4ZGVjb2RlKGIucmVhZFN0cmluZyhhLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9fSxiLmV4cG9ydHM9Y30seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vb2JqZWN0IjoxMywiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3V0aWxzIjoyMX1dLDI0OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL2xpYi91dGlscy9jb21tb24iKS5hc3NpZ24sZD1hKCIuL2xpYi9kZWZsYXRlIiksZT1hKCIuL2xpYi9pbmZsYXRlIiksZj1hKCIuL2xpYi96bGliL2NvbnN0YW50cyIpLGc9e307YyhnLGQsZSxmKSxiLmV4cG9ydHM9Z30seyIuL2xpYi9kZWZsYXRlIjoyNSwiLi9saWIvaW5mbGF0ZSI6MjYsIi4vbGliL3V0aWxzL2NvbW1vbiI6MjcsIi4vbGliL3psaWIvY29uc3RhbnRzIjozMH1dLDI1OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXt2YXIgYz1uZXcgcyhiKTtpZihjLnB1c2goYSwhMCksYy5lcnIpdGhyb3cgYy5tc2c7cmV0dXJuIGMucmVzdWx0fWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4gYj1ifHx7fSxiLnJhdz0hMCxkKGEsYil9ZnVuY3Rpb24gZihhLGIpe3JldHVybiBiPWJ8fHt9LGIuZ3ppcD0hMCxkKGEsYil9dmFyIGc9YSgiLi96bGliL2RlZmxhdGUuanMiKSxoPWEoIi4vdXRpbHMvY29tbW9uIiksaT1hKCIuL3V0aWxzL3N0cmluZ3MiKSxqPWEoIi4vemxpYi9tZXNzYWdlcyIpLGs9YSgiLi96bGliL3pzdHJlYW0iKSxsPTAsbT00LG49MCxvPTEscD0tMSxxPTAscj04LHM9ZnVuY3Rpb24oYSl7dGhpcy5vcHRpb25zPWguYXNzaWduKHtsZXZlbDpwLG1ldGhvZDpyLGNodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjE1LG1lbUxldmVsOjgsc3RyYXRlZ3k6cSx0bzoiIn0sYXx8e30pO3ZhciBiPXRoaXMub3B0aW9ucztiLnJhdyYmYi53aW5kb3dCaXRzPjA/Yi53aW5kb3dCaXRzPS1iLndpbmRvd0JpdHM6Yi5nemlwJiZiLndpbmRvd0JpdHM+MCYmYi53aW5kb3dCaXRzPDE2JiYoYi53aW5kb3dCaXRzKz0xNiksdGhpcy5lcnI9MCx0aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgayx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7dmFyIGM9Zy5kZWZsYXRlSW5pdDIodGhpcy5zdHJtLGIubGV2ZWwsYi5tZXRob2QsYi53aW5kb3dCaXRzLGIubWVtTGV2ZWwsYi5zdHJhdGVneSk7aWYoYyE9PW4pdGhyb3cgbmV3IEVycm9yKGpbY10pO2IuaGVhZGVyJiZnLmRlZmxhdGVTZXRIZWFkZXIodGhpcy5zdHJtLGIuaGVhZGVyKX07cy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZT10aGlzLnN0cm0sZj10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7ZD1iPT09fn5iP2I6Yj09PSEwP206bCxlLmlucHV0PSJzdHJpbmciPT10eXBlb2YgYT9pLnN0cmluZzJidWYoYSk6YSxlLm5leHRfaW49MCxlLmF2YWlsX2luPWUuaW5wdXQubGVuZ3RoO2Rve2lmKDA9PT1lLmF2YWlsX291dCYmKGUub3V0cHV0PW5ldyBoLkJ1ZjgoZiksZS5uZXh0X291dD0wLGUuYXZhaWxfb3V0PWYpLGM9Zy5kZWZsYXRlKGUsZCksYyE9PW8mJmMhPT1uKXJldHVybiB0aGlzLm9uRW5kKGMpLHRoaXMuZW5kZWQ9ITAsITE7KDA9PT1lLmF2YWlsX291dHx8MD09PWUuYXZhaWxfaW4mJmQ9PT1tKSYmdGhpcy5vbkRhdGEoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/aS5idWYyYmluc3RyaW5nKGguc2hyaW5rQnVmKGUub3V0cHV0LGUubmV4dF9vdXQpKTpoLnNocmlua0J1ZihlLm91dHB1dCxlLm5leHRfb3V0KSl9d2hpbGUoKGUuYXZhaWxfaW4+MHx8MD09PWUuYXZhaWxfb3V0KSYmYyE9PW8pO3JldHVybiBkPT09bT8oYz1nLmRlZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKGMpLHRoaXMuZW5kZWQ9ITAsYz09PW4pOiEwfSxzLnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaHVua3MucHVzaChhKX0scy5wcm90b3R5cGUub25FbmQ9ZnVuY3Rpb24oYSl7YT09PW4mJih0aGlzLnJlc3VsdD0ic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLmNodW5rcy5qb2luKCIiKTpoLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj1hLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LGMuRGVmbGF0ZT1zLGMuZGVmbGF0ZT1kLGMuZGVmbGF0ZVJhdz1lLGMuZ3ppcD1mfSx7Ii4vdXRpbHMvY29tbW9uIjoyNywiLi91dGlscy9zdHJpbmdzIjoyOCwiLi96bGliL2RlZmxhdGUuanMiOjMyLCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7dmFyIGM9bmV3IG0oYik7aWYoYy5wdXNoKGEsITApLGMuZXJyKXRocm93IGMubXNnO3JldHVybiBjLnJlc3VsdH1mdW5jdGlvbiBlKGEsYil7cmV0dXJuIGI9Ynx8e30sYi5yYXc9ITAsZChhLGIpfXZhciBmPWEoIi4vemxpYi9pbmZsYXRlLmpzIiksZz1hKCIuL3V0aWxzL2NvbW1vbiIpLGg9YSgiLi91dGlscy9zdHJpbmdzIiksaT1hKCIuL3psaWIvY29uc3RhbnRzIiksaj1hKCIuL3psaWIvbWVzc2FnZXMiKSxrPWEoIi4vemxpYi96c3RyZWFtIiksbD1hKCIuL3psaWIvZ3poZWFkZXIiKSxtPWZ1bmN0aW9uKGEpe3RoaXMub3B0aW9ucz1nLmFzc2lnbih7Y2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MCx0bzoiIn0sYXx8e30pO3ZhciBiPXRoaXMub3B0aW9ucztiLnJhdyYmYi53aW5kb3dCaXRzPj0wJiZiLndpbmRvd0JpdHM8MTYmJihiLndpbmRvd0JpdHM9LWIud2luZG93Qml0cywwPT09Yi53aW5kb3dCaXRzJiYoYi53aW5kb3dCaXRzPS0xNSkpLCEoYi53aW5kb3dCaXRzPj0wJiZiLndpbmRvd0JpdHM8MTYpfHxhJiZhLndpbmRvd0JpdHN8fChiLndpbmRvd0JpdHMrPTMyKSxiLndpbmRvd0JpdHM+MTUmJmIud2luZG93Qml0czw0OCYmMD09PSgxNSZiLndpbmRvd0JpdHMpJiYoYi53aW5kb3dCaXRzfD0xNSksdGhpcy5lcnI9MCx0aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgayx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7dmFyIGM9Zi5pbmZsYXRlSW5pdDIodGhpcy5zdHJtLGIud2luZG93Qml0cyk7aWYoYyE9PWkuWl9PSyl0aHJvdyBuZXcgRXJyb3IoaltjXSk7dGhpcy5oZWFkZXI9bmV3IGwsZi5pbmZsYXRlR2V0SGVhZGVyKHRoaXMuc3RybSx0aGlzLmhlYWRlcil9O20ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsaixrLGw9dGhpcy5zdHJtLG09dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO2Q9Yj09PX5+Yj9iOmI9PT0hMD9pLlpfRklOSVNIOmkuWl9OT19GTFVTSCxsLmlucHV0PSJzdHJpbmciPT10eXBlb2YgYT9oLmJpbnN0cmluZzJidWYoYSk6YSxsLm5leHRfaW49MCxsLmF2YWlsX2luPWwuaW5wdXQubGVuZ3RoO2Rve2lmKDA9PT1sLmF2YWlsX291dCYmKGwub3V0cHV0PW5ldyBnLkJ1ZjgobSksbC5uZXh0X291dD0wLGwuYXZhaWxfb3V0PW0pLGM9Zi5pbmZsYXRlKGwsaS5aX05PX0ZMVVNIKSxjIT09aS5aX1NUUkVBTV9FTkQmJmMhPT1pLlpfT0spcmV0dXJuIHRoaXMub25FbmQoYyksdGhpcy5lbmRlZD0hMCwhMTtsLm5leHRfb3V0JiYoMD09PWwuYXZhaWxfb3V0fHxjPT09aS5aX1NUUkVBTV9FTkR8fDA9PT1sLmF2YWlsX2luJiZkPT09aS5aX0ZJTklTSCkmJigic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz8oZT1oLnV0Zjhib3JkZXIobC5vdXRwdXQsbC5uZXh0X291dCksaj1sLm5leHRfb3V0LWUsaz1oLmJ1ZjJzdHJpbmcobC5vdXRwdXQsZSksbC5uZXh0X291dD1qLGwuYXZhaWxfb3V0PW0taixqJiZnLmFycmF5U2V0KGwub3V0cHV0LGwub3V0cHV0LGUsaiwwKSx0aGlzLm9uRGF0YShrKSk6dGhpcy5vbkRhdGEoZy5zaHJpbmtCdWYobC5vdXRwdXQsbC5uZXh0X291dCkpKX13aGlsZShsLmF2YWlsX2luPjAmJmMhPT1pLlpfU1RSRUFNX0VORCk7cmV0dXJuIGM9PT1pLlpfU1RSRUFNX0VORCYmKGQ9aS5aX0ZJTklTSCksZD09PWkuWl9GSU5JU0g/KGM9Zi5pbmZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLGM9PT1pLlpfT0spOiEwfSxtLnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaHVua3MucHVzaChhKX0sbS5wcm90b3R5cGUub25FbmQ9ZnVuY3Rpb24oYSl7YT09PWkuWl9PSyYmKHRoaXMucmVzdWx0PSJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP3RoaXMuY2h1bmtzLmpvaW4oIiIpOmcuZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPWEsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ30sYy5JbmZsYXRlPW0sYy5pbmZsYXRlPWQsYy5pbmZsYXRlUmF3PWUsYy51bmd6aXA9ZH0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5ncyI6MjgsIi4vemxpYi9jb25zdGFudHMiOjMwLCIuL3psaWIvZ3poZWFkZXIiOjMzLCIuL3psaWIvaW5mbGF0ZS5qcyI6MzUsIi4vemxpYi9tZXNzYWdlcyI6MzcsIi4vemxpYi96c3RyZWFtIjozOX1dLDI3OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO3ZhciBkPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50MTZBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBJbnQzMkFycmF5O2MuYXNzaWduPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7Yi5sZW5ndGg7KXt2YXIgYz1iLnNoaWZ0KCk7aWYoYyl7aWYoIm9iamVjdCIhPXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3IoYysibXVzdCBiZSBub24tb2JqZWN0Iik7Zm9yKHZhciBkIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShkKSYmKGFbZF09Y1tkXSl9fXJldHVybiBhfSxjLnNocmlua0J1Zj1mdW5jdGlvbihhLGIpe3JldHVybiBhLmxlbmd0aD09PWI/YTphLnN1YmFycmF5P2Euc3ViYXJyYXkoMCxiKTooYS5sZW5ndGg9YixhKX07dmFyIGU9e2FycmF5U2V0OmZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYi5zdWJhcnJheSYmYS5zdWJhcnJheSlyZXR1cm4gdm9pZCBhLnNldChiLnN1YmFycmF5KGMsYytkKSxlKTtmb3IodmFyIGY9MDtkPmY7ZisrKWFbZStmXT1iW2MrZl19LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnO2ZvcihkPTAsYj0wLGM9YS5sZW5ndGg7Yz5iO2IrKylkKz1hW2JdLmxlbmd0aDtmb3IoZz1uZXcgVWludDhBcnJheShkKSxlPTAsYj0wLGM9YS5sZW5ndGg7Yz5iO2IrKylmPWFbYl0sZy5zZXQoZixlKSxlKz1mLmxlbmd0aDtyZXR1cm4gZ319LGY9e2FycmF5U2V0OmZ1bmN0aW9uKGEsYixjLGQsZSl7Zm9yKHZhciBmPTA7ZD5mO2YrKylhW2UrZl09YltjK2ZdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKGEpe3JldHVybltdLmNvbmNhdC5hcHBseShbXSxhKX19O2Muc2V0VHlwZWQ9ZnVuY3Rpb24oYSl7YT8oYy5CdWY4PVVpbnQ4QXJyYXksYy5CdWYxNj1VaW50MTZBcnJheSxjLkJ1ZjMyPUludDMyQXJyYXksYy5hc3NpZ24oYyxlKSk6KGMuQnVmOD1BcnJheSxjLkJ1ZjE2PUFycmF5LGMuQnVmMzI9QXJyYXksYy5hc3NpZ24oYyxmKSl9LGMuc2V0VHlwZWQoZCl9LHt9XSwyODpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7aWYoNjU1Mzc+YiYmKGEuc3ViYXJyYXkmJmd8fCFhLnN1YmFycmF5JiZmKSlyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGUuc2hyaW5rQnVmKGEsYikpO2Zvcih2YXIgYz0iIixkPTA7Yj5kO2QrKyljKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFbZF0pO3JldHVybiBjfXZhciBlPWEoIi4vY29tbW9uIiksZj0hMCxnPSEwO3RyeXtTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsWzBdKX1jYXRjaChoKXtmPSExfXRyeXtTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMSkpfWNhdGNoKGgpe2c9ITF9Zm9yKHZhciBpPW5ldyBlLkJ1ZjgoMjU2KSxqPTA7MjU2Pmo7aisrKWlbal09aj49MjUyPzY6aj49MjQ4PzU6aj49MjQwPzQ6aj49MjI0PzM6aj49MTkyPzI6MTtpWzI1NF09aVsyNTRdPTEsYy5zdHJpbmcyYnVmPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxmLGcsaD1hLmxlbmd0aCxpPTA7Zm9yKGY9MDtoPmY7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLGkrPTEyOD5jPzE6MjA0OD5jPzI6NjU1MzY+Yz8zOjQ7Zm9yKGI9bmV3IGUuQnVmOChpKSxnPTAsZj0wO2k+ZztmKyspYz1hLmNoYXJDb2RlQXQoZiksNTUyOTY9PT0oNjQ1MTImYykmJmg+ZisxJiYoZD1hLmNoYXJDb2RlQXQoZisxKSw1NjMyMD09PSg2NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZisrKSksMTI4PmM/YltnKytdPWM6MjA0OD5jPyhiW2crK109MTkyfGM+Pj42LGJbZysrXT0xMjh8NjMmYyk6NjU1MzY+Yz8oYltnKytdPTIyNHxjPj4+MTIsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpOihiW2crK109MjQwfGM+Pj4xOCxiW2crK109MTI4fGM+Pj4xMiY2MyxiW2crK109MTI4fGM+Pj42JjYzLGJbZysrXT0xMjh8NjMmYyk7cmV0dXJuIGJ9LGMuYnVmMmJpbnN0cmluZz1mdW5jdGlvbihhKXtyZXR1cm4gZChhLGEubGVuZ3RoKX0sYy5iaW5zdHJpbmcyYnVmPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1uZXcgZS5CdWY4KGEubGVuZ3RoKSxjPTAsZD1iLmxlbmd0aDtkPmM7YysrKWJbY109YS5jaGFyQ29kZUF0KGMpO3JldHVybiBifSxjLmJ1ZjJzdHJpbmc9ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoPWJ8fGEubGVuZ3RoLGo9bmV3IEFycmF5KDIqaCk7Zm9yKGU9MCxjPTA7aD5jOylpZihmPWFbYysrXSwxMjg+ZilqW2UrK109ZjtlbHNlIGlmKGc9aVtmXSxnPjQpaltlKytdPTY1NTMzLGMrPWctMTtlbHNle2ZvcihmJj0yPT09Zz8zMTozPT09Zz8xNTo3O2c+MSYmaD5jOylmPWY8PDZ8NjMmYVtjKytdLGctLTtnPjE/altlKytdPTY1NTMzOjY1NTM2PmY/altlKytdPWY6KGYtPTY1NTM2LGpbZSsrXT01NTI5NnxmPj4xMCYxMDIzLGpbZSsrXT01NjMyMHwxMDIzJmYpfXJldHVybiBkKGosZSl9LGMudXRmOGJvcmRlcj1mdW5jdGlvbihhLGIpe3ZhciBjO2ZvcihiPWJ8fGEubGVuZ3RoLGI+YS5sZW5ndGgmJihiPWEubGVuZ3RoKSxjPWItMTtjPj0wJiYxMjg9PT0oMTkyJmFbY10pOyljLS07cmV0dXJuIDA+Yz9iOjA9PT1jP2I6YytpW2FbY11dPmI/YzpifX0seyIuL2NvbW1vbiI6Mjd9XSwyOTpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIsYyxkKXtmb3IodmFyIGU9NjU1MzUmYXwwLGY9YT4+PjE2JjY1NTM1fDAsZz0wOzAhPT1jOyl7Zz1jPjJlMz8yZTM6YyxjLT1nO2RvIGU9ZStiW2QrK118MCxmPWYrZXwwO3doaWxlKC0tZyk7ZSU9NjU1MjEsZiU9NjU1MjF9cmV0dXJuIGV8Zjw8MTZ8MH1iLmV4cG9ydHM9Y30se31dLDMwOltmdW5jdGlvbihhLGIpe2IuZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lOQ19GTFVTSDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAsWl9TVFJFQU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0yLFpfREFUQV9FUlJPUjotMyxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNTSU9OOjAsWl9CRVNUX1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpfRklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9TVFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dOOjIsWl9ERUZMQVRFRDo4fX0se31dLDMxOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKCl7Zm9yKHZhciBhLGI9W10sYz0wOzI1Nj5jO2MrKyl7YT1jO2Zvcih2YXIgZD0wOzg+ZDtkKyspYT0xJmE/Mzk4ODI5MjM4NF5hPj4+MTphPj4+MTtiW2NdPWF9cmV0dXJuIGJ9ZnVuY3Rpb24gZChhLGIsYyxkKXt2YXIgZj1lLGc9ZCtjO2E9LTFeYTtmb3IodmFyIGg9ZDtnPmg7aCsrKWE9YT4+PjheZlsyNTUmKGFeYltoXSldO3JldHVybi0xXmF9dmFyIGU9YygpO2IuZXhwb3J0cz1kfSx7fV0sMzI6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe3JldHVybiBhLm1zZz1HW2JdLGJ9ZnVuY3Rpb24gZShhKXtyZXR1cm4oYTw8MSktKGE+ND85OjApfWZ1bmN0aW9uIGYoYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfWZ1bmN0aW9uIGcoYSl7dmFyIGI9YS5zdGF0ZSxjPWIucGVuZGluZztjPmEuYXZhaWxfb3V0JiYoYz1hLmF2YWlsX291dCksMCE9PWMmJihDLmFycmF5U2V0KGEub3V0cHV0LGIucGVuZGluZ19idWYsYi5wZW5kaW5nX291dCxjLGEubmV4dF9vdXQpLGEubmV4dF9vdXQrPWMsYi5wZW5kaW5nX291dCs9YyxhLnRvdGFsX291dCs9YyxhLmF2YWlsX291dC09YyxiLnBlbmRpbmctPWMsMD09PWIucGVuZGluZyYmKGIucGVuZGluZ19vdXQ9MCkpfWZ1bmN0aW9uIGgoYSxiKXtELl90cl9mbHVzaF9ibG9jayhhLGEuYmxvY2tfc3RhcnQ+PTA/YS5ibG9ja19zdGFydDotMSxhLnN0cnN0YXJ0LWEuYmxvY2tfc3RhcnQsYiksYS5ibG9ja19zdGFydD1hLnN0cnN0YXJ0LGcoYS5zdHJtKX1mdW5jdGlvbiBpKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109Yn1mdW5jdGlvbiBqKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109Yj4+PjgmMjU1LGEucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPTI1NSZifWZ1bmN0aW9uIGsoYSxiLGMsZCl7dmFyIGU9YS5hdmFpbF9pbjtyZXR1cm4gZT5kJiYoZT1kKSwwPT09ZT8wOihhLmF2YWlsX2luLT1lLEMuYXJyYXlTZXQoYixhLmlucHV0LGEubmV4dF9pbixlLGMpLDE9PT1hLnN0YXRlLndyYXA/YS5hZGxlcj1FKGEuYWRsZXIsYixlLGMpOjI9PT1hLnN0YXRlLndyYXAmJihhLmFkbGVyPUYoYS5hZGxlcixiLGUsYykpLGEubmV4dF9pbis9ZSxhLnRvdGFsX2luKz1lLGUpfWZ1bmN0aW9uIGwoYSxiKXt2YXIgYyxkLGU9YS5tYXhfY2hhaW5fbGVuZ3RoLGY9YS5zdHJzdGFydCxnPWEucHJldl9sZW5ndGgsaD1hLm5pY2VfbWF0Y2gsaT1hLnN0cnN0YXJ0PmEud19zaXplLWpiP2Euc3Ryc3RhcnQtKGEud19zaXplLWpiKTowLGo9YS53aW5kb3csaz1hLndfbWFzayxsPWEucHJldixtPWEuc3Ryc3RhcnQraWIsbj1qW2YrZy0xXSxvPWpbZitnXTthLnByZXZfbGVuZ3RoPj1hLmdvb2RfbWF0Y2gmJihlPj49MiksaD5hLmxvb2thaGVhZCYmKGg9YS5sb29rYWhlYWQpO2RvIGlmKGM9YixqW2MrZ109PT1vJiZqW2MrZy0xXT09PW4mJmpbY109PT1qW2ZdJiZqWysrY109PT1qW2YrMV0pe2YrPTIsYysrO2RvO3doaWxlKGpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZtPmYpO2lmKGQ9aWItKG0tZiksZj1tLWliLGQ+Zyl7aWYoYS5tYXRjaF9zdGFydD1iLGc9ZCxkPj1oKWJyZWFrO249altmK2ctMV0sbz1qW2YrZ119fXdoaWxlKChiPWxbYiZrXSk+aSYmMCE9PS0tZSk7cmV0dXJuIGc8PWEubG9va2FoZWFkP2c6YS5sb29rYWhlYWR9ZnVuY3Rpb24gbShhKXt2YXIgYixjLGQsZSxmLGc9YS53X3NpemU7ZG97aWYoZT1hLndpbmRvd19zaXplLWEubG9va2FoZWFkLWEuc3Ryc3RhcnQsYS5zdHJzdGFydD49ZysoZy1qYikpe0MuYXJyYXlTZXQoYS53aW5kb3csYS53aW5kb3csZyxnLDApLGEubWF0Y2hfc3RhcnQtPWcsYS5zdHJzdGFydC09ZyxhLmJsb2NrX3N0YXJ0LT1nLGM9YS5oYXNoX3NpemUsYj1jO2RvIGQ9YS5oZWFkWy0tYl0sYS5oZWFkW2JdPWQ+PWc/ZC1nOjA7d2hpbGUoLS1jKTtjPWcsYj1jO2RvIGQ9YS5wcmV2Wy0tYl0sYS5wcmV2W2JdPWQ+PWc/ZC1nOjA7d2hpbGUoLS1jKTtlKz1nfWlmKDA9PT1hLnN0cm0uYXZhaWxfaW4pYnJlYWs7aWYoYz1rKGEuc3RybSxhLndpbmRvdyxhLnN0cnN0YXJ0K2EubG9va2FoZWFkLGUpLGEubG9va2FoZWFkKz1jLGEubG9va2FoZWFkK2EuaW5zZXJ0Pj1oYilmb3IoZj1hLnN0cnN0YXJ0LWEuaW5zZXJ0LGEuaW5zX2g9YS53aW5kb3dbZl0sYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2YrMV0pJmEuaGFzaF9tYXNrO2EuaW5zZXJ0JiYoYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2YraGItMV0pJmEuaGFzaF9tYXNrLGEucHJldltmJmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWYsZisrLGEuaW5zZXJ0LS0sIShhLmxvb2thaGVhZCthLmluc2VydDxoYikpOyk7fXdoaWxlKGEubG9va2FoZWFkPGpiJiYwIT09YS5zdHJtLmF2YWlsX2luKX1mdW5jdGlvbiBuKGEsYil7dmFyIGM9NjU1MzU7Zm9yKGM+YS5wZW5kaW5nX2J1Zl9zaXplLTUmJihjPWEucGVuZGluZ19idWZfc2l6ZS01KTs7KXtpZihhLmxvb2thaGVhZDw9MSl7aWYobShhKSwwPT09YS5sb29rYWhlYWQmJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9YS5zdHJzdGFydCs9YS5sb29rYWhlYWQsYS5sb29rYWhlYWQ9MDt2YXIgZD1hLmJsb2NrX3N0YXJ0K2M7aWYoKDA9PT1hLnN0cnN0YXJ0fHxhLnN0cnN0YXJ0Pj1kKSYmKGEubG9va2FoZWFkPWEuc3Ryc3RhcnQtZCxhLnN0cnN0YXJ0PWQsaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNiO2lmKGEuc3Ryc3RhcnQtYS5ibG9ja19zdGFydD49YS53X3NpemUtamImJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEuc3Ryc3RhcnQ+YS5ibG9ja19zdGFydCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3NiOnNifWZ1bmN0aW9uIG8oYSxiKXtmb3IodmFyIGMsZDs7KXtpZihhLmxvb2thaGVhZDxqYil7aWYobShhKSxhLmxvb2thaGVhZDxqYiYmYj09PUgpcmV0dXJuIHNiO2lmKDA9PT1hLmxvb2thaGVhZClicmVha31pZihjPTAsYS5sb29rYWhlYWQ+PWhiJiYoYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQraGItMV0pJmEuaGFzaF9tYXNrLGM9YS5wcmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09YS5zdHJzdGFydCksMCE9PWMmJmEuc3Ryc3RhcnQtYzw9YS53X3NpemUtamImJihhLm1hdGNoX2xlbmd0aD1sKGEsYykpLGEubWF0Y2hfbGVuZ3RoPj1oYilpZihkPUQuX3RyX3RhbGx5KGEsYS5zdHJzdGFydC1hLm1hdGNoX3N0YXJ0LGEubWF0Y2hfbGVuZ3RoLWhiKSxhLmxvb2thaGVhZC09YS5tYXRjaF9sZW5ndGgsYS5tYXRjaF9sZW5ndGg8PWEubWF4X2xhenlfbWF0Y2gmJmEubG9va2FoZWFkPj1oYil7YS5tYXRjaF9sZW5ndGgtLTtkbyBhLnN0cnN0YXJ0KyssYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQraGItMV0pJmEuaGFzaF9tYXNrLGM9YS5wcmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09YS5zdHJzdGFydDt3aGlsZSgwIT09LS1hLm1hdGNoX2xlbmd0aCk7YS5zdHJzdGFydCsrfWVsc2UgYS5zdHJzdGFydCs9YS5tYXRjaF9sZW5ndGgsYS5tYXRjaF9sZW5ndGg9MCxhLmluc19oPWEud2luZG93W2Euc3Ryc3RhcnRdLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0KzFdKSZhLmhhc2hfbWFzaztlbHNlIGQ9RC5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnRdKSxhLmxvb2thaGVhZC0tLGEuc3Ryc3RhcnQrKztpZihkJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifXJldHVybiBhLmluc2VydD1hLnN0cnN0YXJ0PGhiLTE/YS5zdHJzdGFydDpoYi0xLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/c2I6dGJ9ZnVuY3Rpb24gcChhLGIpe2Zvcih2YXIgYyxkLGU7Oyl7aWYoYS5sb29rYWhlYWQ8amIpe2lmKG0oYSksYS5sb29rYWhlYWQ8amImJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9aWYoYz0wLGEubG9va2FoZWFkPj1oYiYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQpLGEucHJldl9sZW5ndGg9YS5tYXRjaF9sZW5ndGgsYS5wcmV2X21hdGNoPWEubWF0Y2hfc3RhcnQsYS5tYXRjaF9sZW5ndGg9aGItMSwwIT09YyYmYS5wcmV2X2xlbmd0aDxhLm1heF9sYXp5X21hdGNoJiZhLnN0cnN0YXJ0LWM8PWEud19zaXplLWpiJiYoYS5tYXRjaF9sZW5ndGg9bChhLGMpLGEubWF0Y2hfbGVuZ3RoPD01JiYoYS5zdHJhdGVneT09PVN8fGEubWF0Y2hfbGVuZ3RoPT09aGImJmEuc3Ryc3RhcnQtYS5tYXRjaF9zdGFydD40MDk2KSYmKGEubWF0Y2hfbGVuZ3RoPWhiLTEpKSxhLnByZXZfbGVuZ3RoPj1oYiYmYS5tYXRjaF9sZW5ndGg8PWEucHJldl9sZW5ndGgpe2U9YS5zdHJzdGFydCthLmxvb2thaGVhZC1oYixkPUQuX3RyX3RhbGx5KGEsYS5zdHJzdGFydC0xLWEucHJldl9tYXRjaCxhLnByZXZfbGVuZ3RoLWhiKSxhLmxvb2thaGVhZC09YS5wcmV2X2xlbmd0aC0xLGEucHJldl9sZW5ndGgtPTI7ZG8rK2Euc3Ryc3RhcnQ8PWUmJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCtoYi0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0KTt3aGlsZSgwIT09LS1hLnByZXZfbGVuZ3RoKTtpZihhLm1hdGNoX2F2YWlsYWJsZT0wLGEubWF0Y2hfbGVuZ3RoPWhiLTEsYS5zdHJzdGFydCsrLGQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9ZWxzZSBpZihhLm1hdGNoX2F2YWlsYWJsZSl7aWYoZD1ELl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydC0xXSksZCYmaChhLCExKSxhLnN0cnN0YXJ0KyssYS5sb29rYWhlYWQtLSwwPT09YS5zdHJtLmF2YWlsX291dClyZXR1cm4gc2J9ZWxzZSBhLm1hdGNoX2F2YWlsYWJsZT0xLGEuc3Ryc3RhcnQrKyxhLmxvb2thaGVhZC0tfXJldHVybiBhLm1hdGNoX2F2YWlsYWJsZSYmKGQ9RC5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnQtMV0pLGEubWF0Y2hfYXZhaWxhYmxlPTApLGEuaW5zZXJ0PWEuc3Ryc3RhcnQ8aGItMT9hLnN0cnN0YXJ0OmhiLTEsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiBxKGEsYil7Zm9yKHZhciBjLGQsZSxmLGc9YS53aW5kb3c7Oyl7aWYoYS5sb29rYWhlYWQ8PWliKXtpZihtKGEpLGEubG9va2FoZWFkPD1pYiYmYj09PUgpcmV0dXJuIHNiO2lmKDA9PT1hLmxvb2thaGVhZClicmVha31pZihhLm1hdGNoX2xlbmd0aD0wLGEubG9va2FoZWFkPj1oYiYmYS5zdHJzdGFydD4wJiYoZT1hLnN0cnN0YXJ0LTEsZD1nW2VdLGQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0pKXtmPWEuc3Ryc3RhcnQraWI7ZG87d2hpbGUoZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZj5lKTthLm1hdGNoX2xlbmd0aD1pYi0oZi1lKSxhLm1hdGNoX2xlbmd0aD5hLmxvb2thaGVhZCYmKGEubWF0Y2hfbGVuZ3RoPWEubG9va2FoZWFkKX1pZihhLm1hdGNoX2xlbmd0aD49aGI/KGM9RC5fdHJfdGFsbHkoYSwxLGEubWF0Y2hfbGVuZ3RoLWhiKSxhLmxvb2thaGVhZC09YS5tYXRjaF9sZW5ndGgsYS5zdHJzdGFydCs9YS5tYXRjaF9sZW5ndGgsYS5tYXRjaF9sZW5ndGg9MCk6KGM9RC5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnRdKSxhLmxvb2thaGVhZC0tLGEuc3Ryc3RhcnQrKyksYyYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYn1yZXR1cm4gYS5pbnNlcnQ9MCxiPT09Sz8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD91Yjp2Yik6YS5sYXN0X2xpdCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3NiOnRifWZ1bmN0aW9uIHIoYSxiKXtmb3IodmFyIGM7Oyl7aWYoMD09PWEubG9va2FoZWFkJiYobShhKSwwPT09YS5sb29rYWhlYWQpKXtpZihiPT09SClyZXR1cm4gc2I7YnJlYWt9aWYoYS5tYXRjaF9sZW5ndGg9MCxjPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0KyssYyYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYn1yZXR1cm4gYS5pbnNlcnQ9MCxiPT09Sz8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD91Yjp2Yik6YS5sYXN0X2xpdCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3NiOnRifWZ1bmN0aW9uIHMoYSl7YS53aW5kb3dfc2l6ZT0yKmEud19zaXplLGYoYS5oZWFkKSxhLm1heF9sYXp5X21hdGNoPUJbYS5sZXZlbF0ubWF4X2xhenksYS5nb29kX21hdGNoPUJbYS5sZXZlbF0uZ29vZF9sZW5ndGgsYS5uaWNlX21hdGNoPUJbYS5sZXZlbF0ubmljZV9sZW5ndGgsYS5tYXhfY2hhaW5fbGVuZ3RoPUJbYS5sZXZlbF0ubWF4X2NoYWluLGEuc3Ryc3RhcnQ9MCxhLmJsb2NrX3N0YXJ0PTAsYS5sb29rYWhlYWQ9MCxhLmluc2VydD0wLGEubWF0Y2hfbGVuZ3RoPWEucHJldl9sZW5ndGg9aGItMSxhLm1hdGNoX2F2YWlsYWJsZT0wLGEuaW5zX2g9MH1mdW5jdGlvbiB0KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5zdGF0dXM9MCx0aGlzLnBlbmRpbmdfYnVmPW51bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291dD0wLHRoaXMucGVuZGluZz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRob2Q9WSx0aGlzLmxhc3RfZmx1c2g9LTEsdGhpcy53X3NpemU9MCx0aGlzLndfYml0cz0wLHRoaXMud19tYXNrPTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLndpbmRvd19zaXplPTAsdGhpcy5wcmV2PW51bGwsdGhpcy5oZWFkPW51bGwsdGhpcy5pbnNfaD0wLHRoaXMuaGFzaF9zaXplPTAsdGhpcy5oYXNoX2JpdHM9MCx0aGlzLmhhc2hfbWFzaz0wLHRoaXMuaGFzaF9zaGlmdD0wLHRoaXMuYmxvY2tfc3RhcnQ9MCx0aGlzLm1hdGNoX2xlbmd0aD0wLHRoaXMucHJldl9tYXRjaD0wLHRoaXMubWF0Y2hfYXZhaWxhYmxlPTAsdGhpcy5zdHJzdGFydD0wLHRoaXMubWF0Y2hfc3RhcnQ9MCx0aGlzLmxvb2thaGVhZD0wLHRoaXMucHJldl9sZW5ndGg9MCx0aGlzLm1heF9jaGFpbl9sZW5ndGg9MCx0aGlzLm1heF9sYXp5X21hdGNoPTAsdGhpcy5sZXZlbD0wLHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmdvb2RfbWF0Y2g9MCx0aGlzLm5pY2VfbWF0Y2g9MCx0aGlzLmR5bl9sdHJlZT1uZXcgQy5CdWYxNigyKmZiKSx0aGlzLmR5bl9kdHJlZT1uZXcgQy5CdWYxNigyKigyKmRiKzEpKSx0aGlzLmJsX3RyZWU9bmV3IEMuQnVmMTYoMiooMiplYisxKSksZih0aGlzLmR5bl9sdHJlZSksZih0aGlzLmR5bl9kdHJlZSksZih0aGlzLmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGwsdGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rlc2M9bnVsbCx0aGlzLmJsX2NvdW50PW5ldyBDLkJ1ZjE2KGdiKzEpLHRoaXMuaGVhcD1uZXcgQy5CdWYxNigyKmNiKzEpLGYodGhpcy5oZWFwKSx0aGlzLmhlYXBfbGVuPTAsdGhpcy5oZWFwX21heD0wLHRoaXMuZGVwdGg9bmV3IEMuQnVmMTYoMipjYisxKSxmKHRoaXMuZGVwdGgpLHRoaXMubF9idWY9MCx0aGlzLmxpdF9idWZzaXplPTAsdGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9sZW49MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMuYmlfYnVmPTAsdGhpcy5iaV92YWxpZD0wfWZ1bmN0aW9uIHUoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGEudG90YWxfaW49YS50b3RhbF9vdXQ9MCxhLmRhdGFfdHlwZT1YLGI9YS5zdGF0ZSxiLnBlbmRpbmc9MCxiLnBlbmRpbmdfb3V0PTAsYi53cmFwPDAmJihiLndyYXA9LWIud3JhcCksYi5zdGF0dXM9Yi53cmFwP2xiOnFiLGEuYWRsZXI9Mj09PWIud3JhcD8wOjEsYi5sYXN0X2ZsdXNoPUgsRC5fdHJfaW5pdChiKSxNKTpkKGEsTyl9ZnVuY3Rpb24gdihhKXt2YXIgYj11KGEpO3JldHVybiBiPT09TSYmcyhhLnN0YXRlKSxifWZ1bmN0aW9uIHcoYSxiKXtyZXR1cm4gYSYmYS5zdGF0ZT8yIT09YS5zdGF0ZS53cmFwP086KGEuc3RhdGUuZ3poZWFkPWIsTSk6T31mdW5jdGlvbiB4KGEsYixjLGUsZixnKXtpZighYSlyZXR1cm4gTzt2YXIgaD0xO2lmKGI9PT1SJiYoYj02KSwwPmU/KGg9MCxlPS1lKTplPjE1JiYoaD0yLGUtPTE2KSwxPmZ8fGY+Wnx8YyE9PVl8fDg+ZXx8ZT4xNXx8MD5ifHxiPjl8fDA+Z3x8Zz5WKXJldHVybiBkKGEsTyk7OD09PWUmJihlPTkpO3ZhciBpPW5ldyB0O3JldHVybiBhLnN0YXRlPWksaS5zdHJtPWEsaS53cmFwPWgsaS5nemhlYWQ9bnVsbCxpLndfYml0cz1lLGkud19zaXplPTE8PGkud19iaXRzLGkud19tYXNrPWkud19zaXplLTEsaS5oYXNoX2JpdHM9Zis3LGkuaGFzaF9zaXplPTE8PGkuaGFzaF9iaXRzLGkuaGFzaF9tYXNrPWkuaGFzaF9zaXplLTEsaS5oYXNoX3NoaWZ0PX5+KChpLmhhc2hfYml0cytoYi0xKS9oYiksaS53aW5kb3c9bmV3IEMuQnVmOCgyKmkud19zaXplKSxpLmhlYWQ9bmV3IEMuQnVmMTYoaS5oYXNoX3NpemUpLGkucHJldj1uZXcgQy5CdWYxNihpLndfc2l6ZSksaS5saXRfYnVmc2l6ZT0xPDxmKzYsaS5wZW5kaW5nX2J1Zl9zaXplPTQqaS5saXRfYnVmc2l6ZSxpLnBlbmRpbmdfYnVmPW5ldyBDLkJ1ZjgoaS5wZW5kaW5nX2J1Zl9zaXplKSxpLmRfYnVmPWkubGl0X2J1ZnNpemU+PjEsaS5sX2J1Zj0zKmkubGl0X2J1ZnNpemUsaS5sZXZlbD1iLGkuc3RyYXRlZ3k9ZyxpLm1ldGhvZD1jLHYoYSl9ZnVuY3Rpb24geShhLGIpe3JldHVybiB4KGEsYixZLCQsXyxXKX1mdW5jdGlvbiB6KGEsYil7dmFyIGMsaCxrLGw7aWYoIWF8fCFhLnN0YXRlfHxiPkx8fDA+YilyZXR1cm4gYT9kKGEsTyk6TztpZihoPWEuc3RhdGUsIWEub3V0cHV0fHwhYS5pbnB1dCYmMCE9PWEuYXZhaWxfaW58fGguc3RhdHVzPT09cmImJmIhPT1LKXJldHVybiBkKGEsMD09PWEuYXZhaWxfb3V0P1E6Tyk7aWYoaC5zdHJtPWEsYz1oLmxhc3RfZmx1c2gsaC5sYXN0X2ZsdXNoPWIsaC5zdGF0dXM9PT1sYilpZigyPT09aC53cmFwKWEuYWRsZXI9MCxpKGgsMzEpLGkoaCwxMzkpLGkoaCw4KSxoLmd6aGVhZD8oaShoLChoLmd6aGVhZC50ZXh0PzE6MCkrKGguZ3poZWFkLmhjcmM/MjowKSsoaC5nemhlYWQuZXh0cmE/NDowKSsoaC5nemhlYWQubmFtZT84OjApKyhoLmd6aGVhZC5jb21tZW50PzE2OjApKSxpKGgsMjU1JmguZ3poZWFkLnRpbWUpLGkoaCxoLmd6aGVhZC50aW1lPj44JjI1NSksaShoLGguZ3poZWFkLnRpbWU+PjE2JjI1NSksaShoLGguZ3poZWFkLnRpbWU+PjI0JjI1NSksaShoLDk9PT1oLmxldmVsPzI6aC5zdHJhdGVneT49VHx8aC5sZXZlbDwyPzQ6MCksaShoLDI1NSZoLmd6aGVhZC5vcyksaC5nemhlYWQuZXh0cmEmJmguZ3poZWFkLmV4dHJhLmxlbmd0aCYmKGkoaCwyNTUmaC5nemhlYWQuZXh0cmEubGVuZ3RoKSxpKGgsaC5nemhlYWQuZXh0cmEubGVuZ3RoPj44JjI1NSkpLGguZ3poZWFkLmhjcmMmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZywwKSksaC5nemluZGV4PTAsaC5zdGF0dXM9bWIpOihpKGgsMCksaShoLDApLGkoaCwwKSxpKGgsMCksaShoLDApLGkoaCw5PT09aC5sZXZlbD8yOmguc3RyYXRlZ3k+PVR8fGgubGV2ZWw8Mj80OjApLGkoaCx3YiksaC5zdGF0dXM9cWIpO2Vsc2V7dmFyIG09WSsoaC53X2JpdHMtODw8NCk8PDgsbj0tMTtuPWguc3RyYXRlZ3k+PVR8fGgubGV2ZWw8Mj8wOmgubGV2ZWw8Nj8xOjY9PT1oLmxldmVsPzI6MyxtfD1uPDw2LDAhPT1oLnN0cnN0YXJ0JiYobXw9a2IpLG0rPTMxLW0lMzEsaC5zdGF0dXM9cWIsaihoLG0pLDAhPT1oLnN0cnN0YXJ0JiYoaihoLGEuYWRsZXI+Pj4xNiksaihoLDY1NTM1JmEuYWRsZXIpKSxhLmFkbGVyPTF9aWYoaC5zdGF0dXM9PT1tYilpZihoLmd6aGVhZC5leHRyYSl7Zm9yKGs9aC5wZW5kaW5nO2guZ3ppbmRleDwoNjU1MzUmaC5nemhlYWQuZXh0cmEubGVuZ3RoKSYmKGgucGVuZGluZyE9PWgucGVuZGluZ19idWZfc2l6ZXx8KGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmchPT1oLnBlbmRpbmdfYnVmX3NpemUpKTspaShoLDI1NSZoLmd6aGVhZC5leHRyYVtoLmd6aW5kZXhdKSxoLmd6aW5kZXgrKztoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGguZ3ppbmRleD09PWguZ3poZWFkLmV4dHJhLmxlbmd0aCYmKGguZ3ppbmRleD0wLGguc3RhdHVzPW5iKX1lbHNlIGguc3RhdHVzPW5iO2lmKGguc3RhdHVzPT09bmIpaWYoaC5nemhlYWQubmFtZSl7az1oLnBlbmRpbmc7ZG97aWYoaC5wZW5kaW5nPT09aC5wZW5kaW5nX2J1Zl9zaXplJiYoaC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxnKGEpLGs9aC5wZW5kaW5nLGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSkpe2w9MTticmVha31sPWguZ3ppbmRleDxoLmd6aGVhZC5uYW1lLmxlbmd0aD8yNTUmaC5nemhlYWQubmFtZS5jaGFyQ29kZUF0KGguZ3ppbmRleCsrKTowLGkoaCxsKX13aGlsZSgwIT09bCk7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSwwPT09bCYmKGguZ3ppbmRleD0wLGguc3RhdHVzPW9iKX1lbHNlIGguc3RhdHVzPW9iO2lmKGguc3RhdHVzPT09b2IpaWYoaC5nemhlYWQuY29tbWVudCl7az1oLnBlbmRpbmc7ZG97aWYoaC5wZW5kaW5nPT09aC5wZW5kaW5nX2J1Zl9zaXplJiYoaC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxnKGEpLGs9aC5wZW5kaW5nLGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSkpe2w9MTticmVha31sPWguZ3ppbmRleDxoLmd6aGVhZC5jb21tZW50Lmxlbmd0aD8yNTUmaC5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KGguZ3ppbmRleCsrKTowLGkoaCxsKX13aGlsZSgwIT09bCk7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSwwPT09bCYmKGguc3RhdHVzPXBiKX1lbHNlIGguc3RhdHVzPXBiO2lmKGguc3RhdHVzPT09cGImJihoLmd6aGVhZC5oY3JjPyhoLnBlbmRpbmcrMj5oLnBlbmRpbmdfYnVmX3NpemUmJmcoYSksaC5wZW5kaW5nKzI8PWgucGVuZGluZ19idWZfc2l6ZSYmKGkoaCwyNTUmYS5hZGxlciksaShoLGEuYWRsZXI+PjgmMjU1KSxhLmFkbGVyPTAsaC5zdGF0dXM9cWIpKTpoLnN0YXR1cz1xYiksMCE9PWgucGVuZGluZyl7aWYoZyhhKSwwPT09YS5hdmFpbF9vdXQpcmV0dXJuIGgubGFzdF9mbHVzaD0tMSxNfWVsc2UgaWYoMD09PWEuYXZhaWxfaW4mJmUoYik8PWUoYykmJmIhPT1LKXJldHVybiBkKGEsUSk7aWYoaC5zdGF0dXM9PT1yYiYmMCE9PWEuYXZhaWxfaW4pcmV0dXJuIGQoYSxRKTtpZigwIT09YS5hdmFpbF9pbnx8MCE9PWgubG9va2FoZWFkfHxiIT09SCYmaC5zdGF0dXMhPT1yYil7dmFyIG89aC5zdHJhdGVneT09PVQ/cihoLGIpOmguc3RyYXRlZ3k9PT1VP3EoaCxiKTpCW2gubGV2ZWxdLmZ1bmMoaCxiKTtpZigobz09PXVifHxvPT09dmIpJiYoaC5zdGF0dXM9cmIpLG89PT1zYnx8bz09PXViKXJldHVybiAwPT09YS5hdmFpbF9vdXQmJihoLmxhc3RfZmx1c2g9LTEpLE07aWYobz09PXRiJiYoYj09PUk/RC5fdHJfYWxpZ24oaCk6YiE9PUwmJihELl90cl9zdG9yZWRfYmxvY2soaCwwLDAsITEpLGI9PT1KJiYoZihoLmhlYWQpLDA9PT1oLmxvb2thaGVhZCYmKGguc3Ryc3RhcnQ9MCxoLmJsb2NrX3N0YXJ0PTAsaC5pbnNlcnQ9MCkpKSxnKGEpLDA9PT1hLmF2YWlsX291dCkpcmV0dXJuIGgubGFzdF9mbHVzaD0tMSxNfXJldHVybiBiIT09Sz9NOmgud3JhcDw9MD9OOigyPT09aC53cmFwPyhpKGgsMjU1JmEuYWRsZXIpLGkoaCxhLmFkbGVyPj44JjI1NSksaShoLGEuYWRsZXI+PjE2JjI1NSksaShoLGEuYWRsZXI+PjI0JjI1NSksaShoLDI1NSZhLnRvdGFsX2luKSxpKGgsYS50b3RhbF9pbj4+OCYyNTUpLGkoaCxhLnRvdGFsX2luPj4xNiYyNTUpLGkoaCxhLnRvdGFsX2luPj4yNCYyNTUpKTooaihoLGEuYWRsZXI+Pj4xNiksaihoLDY1NTM1JmEuYWRsZXIpKSxnKGEpLGgud3JhcD4wJiYoaC53cmFwPS1oLndyYXApLDAhPT1oLnBlbmRpbmc/TTpOKX1mdW5jdGlvbiBBKGEpe3ZhciBiO3JldHVybiBhJiZhLnN0YXRlPyhiPWEuc3RhdGUuc3RhdHVzLGIhPT1sYiYmYiE9PW1iJiZiIT09bmImJmIhPT1vYiYmYiE9PXBiJiZiIT09cWImJmIhPT1yYj9kKGEsTyk6KGEuc3RhdGU9bnVsbCxiPT09cWI/ZChhLFApOk0pKTpPfXZhciBCLEM9YSgiLi4vdXRpbHMvY29tbW9uIiksRD1hKCIuL3RyZWVzIiksRT1hKCIuL2FkbGVyMzIiKSxGPWEoIi4vY3JjMzIiKSxHPWEoIi4vbWVzc2FnZXMiKSxIPTAsST0xLEo9MyxLPTQsTD01LE09MCxOPTEsTz0tMixQPS0zLFE9LTUsUj0tMSxTPTEsVD0yLFU9MyxWPTQsVz0wLFg9MixZPTgsWj05LCQ9MTUsXz04LGFiPTI5LGJiPTI1NixjYj1iYisxK2FiLGRiPTMwLGViPTE5LGZiPTIqY2IrMSxnYj0xNSxoYj0zLGliPTI1OCxqYj1pYitoYisxLGtiPTMyLGxiPTQyLG1iPTY5LG5iPTczLG9iPTkxLHBiPTEwMyxxYj0xMTMscmI9NjY2LHNiPTEsdGI9Mix1Yj0zLHZiPTQsd2I9Myx4Yj1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMuZ29vZF9sZW5ndGg9YSx0aGlzLm1heF9sYXp5PWIsdGhpcy5uaWNlX2xlbmd0aD1jLHRoaXMubWF4X2NoYWluPWQsdGhpcy5mdW5jPWV9O0I9W25ldyB4YigwLDAsMCwwLG4pLG5ldyB4Yig0LDQsOCw0LG8pLG5ldyB4Yig0LDUsMTYsOCxvKSxuZXcgeGIoNCw2LDMyLDMyLG8pLG5ldyB4Yig0LDQsMTYsMTYscCksbmV3IHhiKDgsMTYsMzIsMzIscCksbmV3IHhiKDgsMTYsMTI4LDEyOCxwKSxuZXcgeGIoOCwzMiwxMjgsMjU2LHApLG5ldyB4YigzMiwxMjgsMjU4LDEwMjQscCksbmV3IHhiKDMyLDI1OCwyNTgsNDA5NixwKV0sYy5kZWZsYXRlSW5pdD15LGMuZGVmbGF0ZUluaXQyPXgsYy5kZWZsYXRlUmVzZXQ9dixjLmRlZmxhdGVSZXNldEtlZXA9dSxjLmRlZmxhdGVTZXRIZWFkZXI9dyxjLmRlZmxhdGU9eixjLmRlZmxhdGVFbmQ9QSxjLmRlZmxhdGVJbmZvPSJwYWtvIGRlZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9tZXNzYWdlcyI6MzcsIi4vdHJlZXMiOjM4fV0sMzM6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLnRleHQ9MCx0aGlzLnRpbWU9MCx0aGlzLnhmbGFncz0wLHRoaXMub3M9MCx0aGlzLmV4dHJhPW51bGwsdGhpcy5leHRyYV9sZW49MCx0aGlzLm5hbWU9IiIsdGhpcy5jb21tZW50PSIiLHRoaXMuaGNyYz0wLHRoaXMuZG9uZT0hMX1iLmV4cG9ydHM9Y30se31dLDM0OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz0zMCxkPTEyO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe3ZhciBlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHUsdix3LHgseSx6LEEsQixDO2U9YS5zdGF0ZSxmPWEubmV4dF9pbixCPWEuaW5wdXQsZz1mKyhhLmF2YWlsX2luLTUpLGg9YS5uZXh0X291dCxDPWEub3V0cHV0LGk9aC0oYi1hLmF2YWlsX291dCksaj1oKyhhLmF2YWlsX291dC0yNTcpLGs9ZS5kbWF4LGw9ZS53c2l6ZSxtPWUud2hhdmUsbj1lLnduZXh0LG89ZS53aW5kb3cscD1lLmhvbGQscT1lLmJpdHMscj1lLmxlbmNvZGUscz1lLmRpc3Rjb2RlLHQ9KDE8PGUubGVuYml0cyktMSx1PSgxPDxlLmRpc3RiaXRzKS0xO2E6ZG97MTU+cSYmKHArPUJbZisrXTw8cSxxKz04LHArPUJbZisrXTw8cSxxKz04KSx2PXJbcCZ0XTtiOmZvcig7Oyl7aWYodz12Pj4+MjQscD4+Pj13LHEtPXcsdz12Pj4+MTYmMjU1LDA9PT13KUNbaCsrXT02NTUzNSZ2O2Vsc2V7aWYoISgxNiZ3KSl7aWYoMD09PSg2NCZ3KSl7dj1yWyg2NTUzNSZ2KSsocCYoMTw8dyktMSldO2NvbnRpbnVlIGJ9aWYoMzImdyl7ZS5tb2RlPWQ7YnJlYWsgYX1hLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixlLm1vZGU9YzticmVhayBhfXg9NjU1MzUmdix3Jj0xNSx3JiYodz5xJiYocCs9QltmKytdPDxxLHErPTgpLHgrPXAmKDE8PHcpLTEscD4+Pj13LHEtPXcpLDE1PnEmJihwKz1CW2YrK108PHEscSs9OCxwKz1CW2YrK108PHEscSs9OCksdj1zW3AmdV07Yzpmb3IoOzspe2lmKHc9dj4+PjI0LHA+Pj49dyxxLT13LHc9dj4+PjE2JjI1NSwhKDE2JncpKXtpZigwPT09KDY0JncpKXt2PXNbKDY1NTM1JnYpKyhwJigxPDx3KS0xKV07Y29udGludWUgY31hLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixlLm1vZGU9YzticmVhayBhfWlmKHk9NjU1MzUmdix3Jj0xNSx3PnEmJihwKz1CW2YrK108PHEscSs9OCx3PnEmJihwKz1CW2YrK108PHEscSs9OCkpLHkrPXAmKDE8PHcpLTEseT5rKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLGUubW9kZT1jO2JyZWFrIGF9aWYocD4+Pj13LHEtPXcsdz1oLWkseT53KXtpZih3PXktdyx3Pm0mJmUuc2FuZSl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixlLm1vZGU9YzticmVhayBhfWlmKHo9MCxBPW8sMD09PW4pe2lmKHorPWwtdyx4Pncpe3gtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcpO3o9aC15LEE9Q319ZWxzZSBpZih3Pm4pe2lmKHorPWwrbi13LHctPW4seD53KXt4LT13O2RvIENbaCsrXT1vW3orK107d2hpbGUoLS13KTtpZih6PTAseD5uKXt3PW4seC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7ej1oLXksQT1DfX19ZWxzZSBpZih6Kz1uLXcseD53KXt4LT13O2RvIENbaCsrXT1vW3orK107d2hpbGUoLS13KTt6PWgteSxBPUN9Zm9yKDt4PjI7KUNbaCsrXT1BW3orK10sQ1toKytdPUFbeisrXSxDW2grK109QVt6KytdLHgtPTM7eCYmKENbaCsrXT1BW3orK10seD4xJiYoQ1toKytdPUFbeisrXSkpfWVsc2V7ej1oLXk7ZG8gQ1toKytdPUNbeisrXSxDW2grK109Q1t6KytdLENbaCsrXT1DW3orK10seC09Mzt3aGlsZSh4PjIpO3gmJihDW2grK109Q1t6KytdLHg+MSYmKENbaCsrXT1DW3orK10pKX1icmVha319YnJlYWt9fXdoaWxlKGc+ZiYmaj5oKTt4PXE+PjMsZi09eCxxLT14PDwzLHAmPSgxPDxxKS0xLGEubmV4dF9pbj1mLGEubmV4dF9vdXQ9aCxhLmF2YWlsX2luPWc+Zj81KyhnLWYpOjUtKGYtZyksYS5hdmFpbF9vdXQ9aj5oPzI1Nysoai1oKToyNTctKGgtaiksZS5ob2xkPXAsZS5iaXRzPXF9fSx7fV0sMzU6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtyZXR1cm4oYT4+PjI0JjI1NSkrKGE+Pj44JjY1MjgwKSsoKDY1MjgwJmEpPDw4KSsoKDI1NSZhKTw8MjQpfWZ1bmN0aW9uIGUoKXt0aGlzLm1vZGU9MCx0aGlzLmxhc3Q9ITEsdGhpcy53cmFwPTAsdGhpcy5oYXZlZGljdD0hMSx0aGlzLmZsYWdzPTAsdGhpcy5kbWF4PTAsdGhpcy5jaGVjaz0wLHRoaXMudG90YWw9MCx0aGlzLmhlYWQ9bnVsbCx0aGlzLndiaXRzPTAsdGhpcy53c2l6ZT0wLHRoaXMud2hhdmU9MCx0aGlzLnduZXh0PTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLmhvbGQ9MCx0aGlzLmJpdHM9MCx0aGlzLmxlbmd0aD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5leHRyYT0wLHRoaXMubGVuY29kZT1udWxsLHRoaXMuZGlzdGNvZGU9bnVsbCx0aGlzLmxlbmJpdHM9MCx0aGlzLmRpc3RiaXRzPTAsdGhpcy5uY29kZT0wLHRoaXMubmxlbj0wLHRoaXMubmRpc3Q9MCx0aGlzLmhhdmU9MCx0aGlzLm5leHQ9bnVsbCx0aGlzLmxlbnM9bmV3IHIuQnVmMTYoMzIwKSx0aGlzLndvcms9bmV3IHIuQnVmMTYoMjg4KSx0aGlzLmxlbmR5bj1udWxsLHRoaXMuZGlzdGR5bj1udWxsLHRoaXMuc2FuZT0wLHRoaXMuYmFjaz0wLHRoaXMud2FzPTB9ZnVuY3Rpb24gZihhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYj1hLnN0YXRlLGEudG90YWxfaW49YS50b3RhbF9vdXQ9Yi50b3RhbD0wLGEubXNnPSIiLGIud3JhcCYmKGEuYWRsZXI9MSZiLndyYXApLGIubW9kZT1LLGIubGFzdD0wLGIuaGF2ZWRpY3Q9MCxiLmRtYXg9MzI3NjgsYi5oZWFkPW51bGwsYi5ob2xkPTAsYi5iaXRzPTAsYi5sZW5jb2RlPWIubGVuZHluPW5ldyByLkJ1ZjMyKG9iKSxiLmRpc3Rjb2RlPWIuZGlzdGR5bj1uZXcgci5CdWYzMihwYiksYi5zYW5lPTEsYi5iYWNrPS0xLEMpOkZ9ZnVuY3Rpb24gZyhhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYj1hLnN0YXRlLGIud3NpemU9MCxiLndoYXZlPTAsYi53bmV4dD0wLGYoYSkpOkZ9ZnVuY3Rpb24gaChhLGIpe3ZhciBjLGQ7cmV0dXJuIGEmJmEuc3RhdGU/KGQ9YS5zdGF0ZSwwPmI/KGM9MCxiPS1iKTooYz0oYj4+NCkrMSw0OD5iJiYoYiY9MTUpKSxiJiYoOD5ifHxiPjE1KT9GOihudWxsIT09ZC53aW5kb3cmJmQud2JpdHMhPT1iJiYoZC53aW5kb3c9bnVsbCksZC53cmFwPWMsZC53Yml0cz1iLGcoYSkpKTpGfWZ1bmN0aW9uIGkoYSxiKXt2YXIgYyxkO3JldHVybiBhPyhkPW5ldyBlLGEuc3RhdGU9ZCxkLndpbmRvdz1udWxsLGM9aChhLGIpLGMhPT1DJiYoYS5zdGF0ZT1udWxsKSxjKTpGfWZ1bmN0aW9uIGooYSl7cmV0dXJuIGkoYSxyYil9ZnVuY3Rpb24gayhhKXtpZihzYil7dmFyIGI7Zm9yKHA9bmV3IHIuQnVmMzIoNTEyKSxxPW5ldyByLkJ1ZjMyKDMyKSxiPTA7MTQ0PmI7KWEubGVuc1tiKytdPTg7Zm9yKDsyNTY+YjspYS5sZW5zW2IrK109OTtmb3IoOzI4MD5iOylhLmxlbnNbYisrXT03O2Zvcig7Mjg4PmI7KWEubGVuc1tiKytdPTg7Zm9yKHYoeCxhLmxlbnMsMCwyODgscCwwLGEud29yayx7Yml0czo5fSksYj0wOzMyPmI7KWEubGVuc1tiKytdPTU7dih5LGEubGVucywwLDMyLHEsMCxhLndvcmsse2JpdHM6NX0pLHNiPSExfWEubGVuY29kZT1wLGEubGVuYml0cz05LGEuZGlzdGNvZGU9cSxhLmRpc3RiaXRzPTV9ZnVuY3Rpb24gbChhLGIsYyxkKXt2YXIgZSxmPWEuc3RhdGU7cmV0dXJuIG51bGw9PT1mLndpbmRvdyYmKGYud3NpemU9MTw8Zi53Yml0cyxmLnduZXh0PTAsZi53aGF2ZT0wLGYud2luZG93PW5ldyByLkJ1ZjgoZi53c2l6ZSkpLGQ+PWYud3NpemU/KHIuYXJyYXlTZXQoZi53aW5kb3csYixjLWYud3NpemUsZi53c2l6ZSwwKSxmLnduZXh0PTAsZi53aGF2ZT1mLndzaXplKTooZT1mLndzaXplLWYud25leHQsZT5kJiYoZT1kKSxyLmFycmF5U2V0KGYud2luZG93LGIsYy1kLGUsZi53bmV4dCksZC09ZSxkPyhyLmFycmF5U2V0KGYud2luZG93LGIsYy1kLGQsMCksZi53bmV4dD1kLGYud2hhdmU9Zi53c2l6ZSk6KGYud25leHQrPWUsZi53bmV4dD09PWYud3NpemUmJihmLnduZXh0PTApLGYud2hhdmU8Zi53c2l6ZSYmKGYud2hhdmUrPWUpKSksMH1mdW5jdGlvbiBtKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosbSxuLG8scCxxLG9iLHBiLHFiLHJiLHNiLHRiLHViLHZiLHdiLHhiLHliLHpiLEFiPTAsQmI9bmV3IHIuQnVmOCg0KSxDYj1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV07aWYoIWF8fCFhLnN0YXRlfHwhYS5vdXRwdXR8fCFhLmlucHV0JiYwIT09YS5hdmFpbF9pbilyZXR1cm4gRjtjPWEuc3RhdGUsYy5tb2RlPT09ViYmKGMubW9kZT1XKSxoPWEubmV4dF9vdXQsZj1hLm91dHB1dCxqPWEuYXZhaWxfb3V0LGc9YS5uZXh0X2luLGU9YS5pbnB1dCxpPWEuYXZhaWxfaW4sbT1jLmhvbGQsbj1jLmJpdHMsbz1pLHA9aix4Yj1DO2E6Zm9yKDs7KXN3aXRjaChjLm1vZGUpe2Nhc2UgSzppZigwPT09Yy53cmFwKXtjLm1vZGU9VzticmVha31mb3IoOzE2Pm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigyJmMud3JhcCYmMzU2MTU9PT1tKXtjLmNoZWNrPTAsQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCksbT0wLG49MCxjLm1vZGU9TDticmVha31pZihjLmZsYWdzPTAsYy5oZWFkJiYoYy5oZWFkLmRvbmU9ITEpLCEoMSZjLndyYXApfHwoKCgyNTUmbSk8PDgpKyhtPj44KSklMzEpe2EubXNnPSJpbmNvcnJlY3QgaGVhZGVyIGNoZWNrIixjLm1vZGU9bGI7YnJlYWt9aWYoKDE1Jm0pIT09Sil7YS5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixjLm1vZGU9bGI7YnJlYWt9aWYobT4+Pj00LG4tPTQsd2I9KDE1Jm0pKzgsMD09PWMud2JpdHMpYy53Yml0cz13YjtlbHNlIGlmKHdiPmMud2JpdHMpe2EubXNnPSJpbnZhbGlkIHdpbmRvdyBzaXplIixjLm1vZGU9bGI7YnJlYWt9Yy5kbWF4PTE8PHdiLGEuYWRsZXI9Yy5jaGVjaz0xLGMubW9kZT01MTImbT9UOlYsbT0wLG49MDticmVhaztjYXNlIEw6Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoYy5mbGFncz1tLCgyNTUmYy5mbGFncykhPT1KKXthLm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLGMubW9kZT1sYjticmVha31pZig1NzM0NCZjLmZsYWdzKXthLm1zZz0idW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0IixjLm1vZGU9bGI7YnJlYWt9Yy5oZWFkJiYoYy5oZWFkLnRleHQ9bT4+OCYxKSw1MTImYy5mbGFncyYmKEJiWzBdPTI1NSZtLEJiWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXQoYy5jaGVjayxCYiwyLDApKSxtPTAsbj0wLGMubW9kZT1NO2Nhc2UgTTpmb3IoOzMyPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmhlYWQmJihjLmhlYWQudGltZT1tKSw1MTImYy5mbGFncyYmKEJiWzBdPTI1NSZtLEJiWzFdPW0+Pj44JjI1NSxCYlsyXT1tPj4+MTYmMjU1LEJiWzNdPW0+Pj4yNCYyNTUsYy5jaGVjaz10KGMuY2hlY2ssQmIsNCwwKSksbT0wLG49MCxjLm1vZGU9TjtjYXNlIE46Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5oZWFkJiYoYy5oZWFkLnhmbGFncz0yNTUmbSxjLmhlYWQub3M9bT4+OCksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsYy5jaGVjaz10KGMuY2hlY2ssQmIsMiwwKSksbT0wLG49MCxjLm1vZGU9TztjYXNlIE86aWYoMTAyNCZjLmZsYWdzKXtmb3IoOzE2Pm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbmd0aD1tLGMuaGVhZCYmKGMuaGVhZC5leHRyYV9sZW49bSksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsYy5jaGVjaz10KGMuY2hlY2ssQmIsMiwwKSksbT0wLG49MH1lbHNlIGMuaGVhZCYmKGMuaGVhZC5leHRyYT1udWxsKTtjLm1vZGU9UDtjYXNlIFA6aWYoMTAyNCZjLmZsYWdzJiYocT1jLmxlbmd0aCxxPmkmJihxPWkpLHEmJihjLmhlYWQmJih3Yj1jLmhlYWQuZXh0cmFfbGVuLWMubGVuZ3RoLGMuaGVhZC5leHRyYXx8KGMuaGVhZC5leHRyYT1uZXcgQXJyYXkoYy5oZWFkLmV4dHJhX2xlbikpLHIuYXJyYXlTZXQoYy5oZWFkLmV4dHJhLGUsZyxxLHdiKSksNTEyJmMuZmxhZ3MmJihjLmNoZWNrPXQoYy5jaGVjayxlLHEsZykpLGktPXEsZys9cSxjLmxlbmd0aC09cSksYy5sZW5ndGgpKWJyZWFrIGE7Yy5sZW5ndGg9MCxjLm1vZGU9UTtjYXNlIFE6aWYoMjA0OCZjLmZsYWdzKXtpZigwPT09aSlicmVhayBhO3E9MDtkbyB3Yj1lW2crcSsrXSxjLmhlYWQmJndiJiZjLmxlbmd0aDw2NTUzNiYmKGMuaGVhZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHdiKSk7d2hpbGUod2ImJmk+cSk7aWYoNTEyJmMuZmxhZ3MmJihjLmNoZWNrPXQoYy5jaGVjayxlLHEsZykpLGktPXEsZys9cSx3YilicmVhayBhfWVsc2UgYy5oZWFkJiYoYy5oZWFkLm5hbWU9bnVsbCk7Yy5sZW5ndGg9MCxjLm1vZGU9UjtjYXNlIFI6aWYoNDA5NiZjLmZsYWdzKXtpZigwPT09aSlicmVhayBhO3E9MDtkbyB3Yj1lW2crcSsrXSxjLmhlYWQmJndiJiZjLmxlbmd0aDw2NTUzNiYmKGMuaGVhZC5jb21tZW50Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKHdiKSk7d2hpbGUod2ImJmk+cSk7aWYoNTEyJmMuZmxhZ3MmJihjLmNoZWNrPXQoYy5jaGVjayxlLHEsZykpLGktPXEsZys9cSx3YilicmVhayBhfWVsc2UgYy5oZWFkJiYoYy5oZWFkLmNvbW1lbnQ9bnVsbCk7Yy5tb2RlPVM7Y2FzZSBTOmlmKDUxMiZjLmZsYWdzKXtmb3IoOzE2Pm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihtIT09KDY1NTM1JmMuY2hlY2spKXthLm1zZz0iaGVhZGVyIGNyYyBtaXNtYXRjaCIsYy5tb2RlPWxiO2JyZWFrfW09MCxuPTB9Yy5oZWFkJiYoYy5oZWFkLmhjcmM9Yy5mbGFncz4+OSYxLGMuaGVhZC5kb25lPSEwKSxhLmFkbGVyPWMuY2hlY2s9MCxjLm1vZGU9VjticmVhaztjYXNlIFQ6Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9YS5hZGxlcj1jLmNoZWNrPWQobSksbT0wLG49MCxjLm1vZGU9VTtjYXNlIFU6aWYoMD09PWMuaGF2ZWRpY3QpcmV0dXJuIGEubmV4dF9vdXQ9aCxhLmF2YWlsX291dD1qLGEubmV4dF9pbj1nLGEuYXZhaWxfaW49aSxjLmhvbGQ9bSxjLmJpdHM9bixFO2EuYWRsZXI9Yy5jaGVjaz0xLGMubW9kZT1WO2Nhc2UgVjppZihiPT09QXx8Yj09PUIpYnJlYWsgYTtjYXNlIFc6aWYoYy5sYXN0KXttPj4+PTcmbixuLT03Jm4sYy5tb2RlPWliO2JyZWFrfWZvcig7Mz5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9c3dpdGNoKGMubGFzdD0xJm0sbT4+Pj0xLG4tPTEsMyZtKXtjYXNlIDA6Yy5tb2RlPVg7YnJlYWs7Y2FzZSAxOmlmKGsoYyksYy5tb2RlPWJiLGI9PT1CKXttPj4+PTIsbi09MjticmVhayBhfWJyZWFrO2Nhc2UgMjpjLm1vZGU9JDticmVhaztjYXNlIDM6YS5tc2c9ImludmFsaWQgYmxvY2sgdHlwZSIsYy5tb2RlPWxifW0+Pj49MixuLT0yO2JyZWFrO2Nhc2UgWDpmb3IobT4+Pj03Jm4sbi09NyZuOzMyPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigoNjU1MzUmbSkhPT0obT4+PjE2XjY1NTM1KSl7YS5tc2c9ImludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMiLGMubW9kZT1sYjticmVha31pZihjLmxlbmd0aD02NTUzNSZtLG09MCxuPTAsYy5tb2RlPVksYj09PUIpYnJlYWsgYTtjYXNlIFk6Yy5tb2RlPVo7Y2FzZSBaOmlmKHE9Yy5sZW5ndGgpe2lmKHE+aSYmKHE9aSkscT5qJiYocT1qKSwwPT09cSlicmVhayBhO3IuYXJyYXlTZXQoZixlLGcscSxoKSxpLT1xLGcrPXEsai09cSxoKz1xLGMubGVuZ3RoLT1xO2JyZWFrfWMubW9kZT1WO2JyZWFrO2Nhc2UgJDpmb3IoOzE0Pm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihjLm5sZW49KDMxJm0pKzI1NyxtPj4+PTUsbi09NSxjLm5kaXN0PSgzMSZtKSsxLG0+Pj49NSxuLT01LGMubmNvZGU9KDE1Jm0pKzQsbT4+Pj00LG4tPTQsYy5ubGVuPjI4Nnx8Yy5uZGlzdD4zMCl7YS5tc2c9InRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzIixjLm1vZGU9bGI7YnJlYWt9Yy5oYXZlPTAsYy5tb2RlPV87Y2FzZSBfOmZvcig7Yy5oYXZlPGMubmNvZGU7KXtmb3IoOzM+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWMubGVuc1tDYltjLmhhdmUrK11dPTcmbSxtPj4+PTMsbi09M31mb3IoO2MuaGF2ZTwxOTspYy5sZW5zW0NiW2MuaGF2ZSsrXV09MDtpZihjLmxlbmNvZGU9Yy5sZW5keW4sYy5sZW5iaXRzPTcseWI9e2JpdHM6Yy5sZW5iaXRzfSx4Yj12KHcsYy5sZW5zLDAsMTksYy5sZW5jb2RlLDAsYy53b3JrLHliKSxjLmxlbmJpdHM9eWIuYml0cyx4Yil7YS5tc2c9ImludmFsaWQgY29kZSBsZW5ndGhzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWMuaGF2ZT0wLGMubW9kZT1hYjtjYXNlIGFiOmZvcig7Yy5oYXZlPGMubmxlbitjLm5kaXN0Oyl7Zm9yKDtBYj1jLmxlbmNvZGVbbSYoMTw8Yy5sZW5iaXRzKS0xXSxxYj1BYj4+PjI0LHJiPUFiPj4+MTYmMjU1LHNiPTY1NTM1JkFiLCEobj49cWIpOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoMTY+c2IpbT4+Pj1xYixuLT1xYixjLmxlbnNbYy5oYXZlKytdPXNiO2Vsc2V7aWYoMTY9PT1zYil7Zm9yKHpiPXFiKzI7emI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKG0+Pj49cWIsbi09cWIsMD09PWMuaGF2ZSl7YS5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLGMubW9kZT1sYjticmVha313Yj1jLmxlbnNbYy5oYXZlLTFdLHE9MysoMyZtKSxtPj4+PTIsbi09Mn1lbHNlIGlmKDE3PT09c2Ipe2Zvcih6Yj1xYiszO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXFiLG4tPXFiLHdiPTAscT0zKyg3Jm0pLG0+Pj49MyxuLT0zfWVsc2V7Zm9yKHpiPXFiKzc7emI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fW0+Pj49cWIsbi09cWIsd2I9MCxxPTExKygxMjcmbSksbT4+Pj03LG4tPTd9aWYoYy5oYXZlK3E+Yy5ubGVuK2MubmRpc3Qpe2EubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixjLm1vZGU9bGI7YnJlYWt9Zm9yKDtxLS07KWMubGVuc1tjLmhhdmUrK109d2J9fWlmKGMubW9kZT09PWxiKWJyZWFrO2lmKDA9PT1jLmxlbnNbMjU2XSl7YS5tc2c9ImludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayIsYy5tb2RlPWxiO2JyZWFrfWlmKGMubGVuYml0cz05LHliPXtiaXRzOmMubGVuYml0c30seGI9dih4LGMubGVucywwLGMubmxlbixjLmxlbmNvZGUsMCxjLndvcmsseWIpLGMubGVuYml0cz15Yi5iaXRzLHhiKXthLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0IixjLm1vZGU9bGI7YnJlYWt9aWYoYy5kaXN0Yml0cz02LGMuZGlzdGNvZGU9Yy5kaXN0ZHluLHliPXtiaXRzOmMuZGlzdGJpdHN9LHhiPXYoeSxjLmxlbnMsYy5ubGVuLGMubmRpc3QsYy5kaXN0Y29kZSwwLGMud29yayx5YiksYy5kaXN0Yml0cz15Yi5iaXRzLHhiKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZXMgc2V0IixjLm1vZGU9bGI7YnJlYWt9aWYoYy5tb2RlPWJiLGI9PT1CKWJyZWFrIGE7Y2FzZSBiYjpjLm1vZGU9Y2I7Y2FzZSBjYjppZihpPj02JiZqPj0yNTgpe2EubmV4dF9vdXQ9aCxhLmF2YWlsX291dD1qLGEubmV4dF9pbj1nLGEuYXZhaWxfaW49aSxjLmhvbGQ9bSxjLmJpdHM9bix1KGEscCksaD1hLm5leHRfb3V0LGY9YS5vdXRwdXQsaj1hLmF2YWlsX291dCxnPWEubmV4dF9pbixlPWEuaW5wdXQsaT1hLmF2YWlsX2luLG09Yy5ob2xkLG49Yy5iaXRzLGMubW9kZT09PVYmJihjLmJhY2s9LTEpO2JyZWFrfWZvcihjLmJhY2s9MDtBYj1jLmxlbmNvZGVbbSYoMTw8Yy5sZW5iaXRzKS0xXSxxYj1BYj4+PjI0LHJiPUFiPj4+MTYmMjU1LHNiPTY1NTM1JkFiLCEobj49cWIpOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYocmImJjA9PT0oMjQwJnJiKSl7Zm9yKHRiPXFiLHViPXJiLHZiPXNiO0FiPWMubGVuY29kZVt2YisoKG0mKDE8PHRiK3ViKS0xKT4+dGIpXSxxYj1BYj4+PjI0LHJiPUFiPj4+MTYmMjU1LHNiPTY1NTM1JkFiLCEobj49dGIrcWIpOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9bT4+Pj10YixuLT10YixjLmJhY2srPXRifWlmKG0+Pj49cWIsbi09cWIsYy5iYWNrKz1xYixjLmxlbmd0aD1zYiwwPT09cmIpe2MubW9kZT1oYjticmVha31pZigzMiZyYil7Yy5iYWNrPS0xLGMubW9kZT1WO2JyZWFrfWlmKDY0JnJiKXthLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixjLm1vZGU9bGI7YnJlYWt9Yy5leHRyYT0xNSZyYixjLm1vZGU9ZGI7Y2FzZSBkYjppZihjLmV4dHJhKXtmb3IoemI9Yy5leHRyYTt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5sZW5ndGgrPW0mKDE8PGMuZXh0cmEpLTEsbT4+Pj1jLmV4dHJhLG4tPWMuZXh0cmEsYy5iYWNrKz1jLmV4dHJhfWMud2FzPWMubGVuZ3RoLGMubW9kZT1lYjtjYXNlIGViOmZvcig7QWI9Yy5kaXN0Y29kZVttJigxPDxjLmRpc3RiaXRzKS0xXSxxYj1BYj4+PjI0LHJiPUFiPj4+MTYmMjU1LHNiPTY1NTM1JkFiLCEobj49cWIpOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoMD09PSgyNDAmcmIpKXtmb3IodGI9cWIsdWI9cmIsdmI9c2I7QWI9Yy5kaXN0Y29kZVt2YisoKG0mKDE8PHRiK3ViKS0xKT4+dGIpXSxxYj1BYj4+PjI0LHJiPUFiPj4+MTYmMjU1LHNiPTY1NTM1JkFiLCEobj49dGIrcWIpOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9bT4+Pj10YixuLT10YixjLmJhY2srPXRifWlmKG0+Pj49cWIsbi09cWIsYy5iYWNrKz1xYiw2NCZyYil7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgY29kZSIsYy5tb2RlPWxiO2JyZWFrfWMub2Zmc2V0PXNiLGMuZXh0cmE9MTUmcmIsYy5tb2RlPWZiO2Nhc2UgZmI6aWYoYy5leHRyYSl7Zm9yKHpiPWMuZXh0cmE7emI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWMub2Zmc2V0Kz1tJigxPDxjLmV4dHJhKS0xLG0+Pj49Yy5leHRyYSxuLT1jLmV4dHJhLGMuYmFjays9Yy5leHRyYX1pZihjLm9mZnNldD5jLmRtYXgpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsYy5tb2RlPWxiO2JyZWFrfWMubW9kZT1nYjtjYXNlIGdiOmlmKDA9PT1qKWJyZWFrIGE7aWYocT1wLWosYy5vZmZzZXQ+cSl7aWYocT1jLm9mZnNldC1xLHE+Yy53aGF2ZSYmYy5zYW5lKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLGMubW9kZT1sYjticmVha31xPmMud25leHQ/KHEtPWMud25leHQsb2I9Yy53c2l6ZS1xKTpvYj1jLnduZXh0LXEscT5jLmxlbmd0aCYmKHE9Yy5sZW5ndGgpLHBiPWMud2luZG93fWVsc2UgcGI9ZixvYj1oLWMub2Zmc2V0LHE9Yy5sZW5ndGg7cT5qJiYocT1qKSxqLT1xLGMubGVuZ3RoLT1xO2RvIGZbaCsrXT1wYltvYisrXTt3aGlsZSgtLXEpOzA9PT1jLmxlbmd0aCYmKGMubW9kZT1jYik7YnJlYWs7Y2FzZSBoYjppZigwPT09ailicmVhayBhO2ZbaCsrXT1jLmxlbmd0aCxqLS0sYy5tb2RlPWNiO2JyZWFrO2Nhc2UgaWI6aWYoYy53cmFwKXtmb3IoOzMyPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtfD1lW2crK108PG4sbis9OH1pZihwLT1qLGEudG90YWxfb3V0Kz1wLGMudG90YWwrPXAscCYmKGEuYWRsZXI9Yy5jaGVjaz1jLmZsYWdzP3QoYy5jaGVjayxmLHAsaC1wKTpzKGMuY2hlY2ssZixwLGgtcCkpLHA9aiwoYy5mbGFncz9tOmQobSkpIT09Yy5jaGVjayl7YS5tc2c9ImluY29ycmVjdCBkYXRhIGNoZWNrIixjLm1vZGU9bGI7YnJlYWt9bT0wLG49MH1jLm1vZGU9amI7Y2FzZSBqYjppZihjLndyYXAmJmMuZmxhZ3Mpe2Zvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKG0hPT0oNDI5NDk2NzI5NSZjLnRvdGFsKSl7YS5tc2c9ImluY29ycmVjdCBsZW5ndGggY2hlY2siLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMubW9kZT1rYjtjYXNlIGtiOnhiPUQ7YnJlYWsgYTtjYXNlIGxiOnhiPUc7YnJlYWsgYTtjYXNlIG1iOnJldHVybiBIO2Nhc2UgbmI6ZGVmYXVsdDpyZXR1cm4gRn1yZXR1cm4gYS5uZXh0X291dD1oLGEuYXZhaWxfb3V0PWosYS5uZXh0X2luPWcsYS5hdmFpbF9pbj1pLGMuaG9sZD1tLGMuYml0cz1uLChjLndzaXplfHxwIT09YS5hdmFpbF9vdXQmJmMubW9kZTxsYiYmKGMubW9kZTxpYnx8YiE9PXopKSYmbChhLGEub3V0cHV0LGEubmV4dF9vdXQscC1hLmF2YWlsX291dCk/KGMubW9kZT1tYixIKTooby09YS5hdmFpbF9pbixwLT1hLmF2YWlsX291dCxhLnRvdGFsX2luKz1vLGEudG90YWxfb3V0Kz1wLGMudG90YWwrPXAsYy53cmFwJiZwJiYoYS5hZGxlcj1jLmNoZWNrPWMuZmxhZ3M/dChjLmNoZWNrLGYscCxhLm5leHRfb3V0LXApOnMoYy5jaGVjayxmLHAsYS5uZXh0X291dC1wKSksYS5kYXRhX3R5cGU9Yy5iaXRzKyhjLmxhc3Q/NjQ6MCkrKGMubW9kZT09PVY/MTI4OjApKyhjLm1vZGU9PT1iYnx8Yy5tb2RlPT09WT8yNTY6MCksKDA9PT1vJiYwPT09cHx8Yj09PXopJiZ4Yj09PUMmJih4Yj1JKSx4Yil9ZnVuY3Rpb24gbihhKXtpZighYXx8IWEuc3RhdGUpcmV0dXJuIEY7dmFyIGI9YS5zdGF0ZTtyZXR1cm4gYi53aW5kb3cmJihiLndpbmRvdz1udWxsKSxhLnN0YXRlPW51bGwsQ31mdW5jdGlvbiBvKGEsYil7dmFyIGM7cmV0dXJuIGEmJmEuc3RhdGU/KGM9YS5zdGF0ZSwwPT09KDImYy53cmFwKT9GOihjLmhlYWQ9YixiLmRvbmU9ITEsQykpOkZ9dmFyIHAscSxyPWEoIi4uL3V0aWxzL2NvbW1vbiIpLHM9YSgiLi9hZGxlcjMyIiksdD1hKCIuL2NyYzMyIiksdT1hKCIuL2luZmZhc3QiKSx2PWEoIi4vaW5mdHJlZXMiKSx3PTAseD0xLHk9Mix6PTQsQT01LEI9NixDPTAsRD0xLEU9MixGPS0yLEc9LTMsSD0tNCxJPS01LEo9OCxLPTEsTD0yLE09MyxOPTQsTz01LFA9NixRPTcsUj04LFM9OSxUPTEwLFU9MTEsVj0xMixXPTEzLFg9MTQsWT0xNSxaPTE2LCQ9MTcsXz0xOCxhYj0xOSxiYj0yMCxjYj0yMSxkYj0yMixlYj0yMyxmYj0yNCxnYj0yNSxoYj0yNixpYj0yNyxqYj0yOCxrYj0yOSxsYj0zMCxtYj0zMSxuYj0zMixvYj04NTIscGI9NTkyLHFiPTE1LHJiPXFiLHNiPSEwO2MuaW5mbGF0ZVJlc2V0PWcsYy5pbmZsYXRlUmVzZXQyPWgsYy5pbmZsYXRlUmVzZXRLZWVwPWYsYy5pbmZsYXRlSW5pdD1qLGMuaW5mbGF0ZUluaXQyPWksYy5pbmZsYXRlPW0sYy5pbmZsYXRlRW5kPW4sYy5pbmZsYXRlR2V0SGVhZGVyPW8sYy5pbmZsYXRlSW5mbz0icGFrbyBpbmZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSJ9LHsiLi4vdXRpbHMvY29tbW9uIjoyNywiLi9hZGxlcjMyIjoyOSwiLi9jcmMzMiI6MzEsIi4vaW5mZmFzdCI6MzQsIi4vaW5mdHJlZXMiOjM2fV0sMzY6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPWEoIi4uL3V0aWxzL2NvbW1vbiIpLGQ9MTUsZT04NTIsZj01OTIsZz0wLGg9MSxpPTIsaj1bMyw0LDUsNiw3LDgsOSwxMCwxMSwxMywxNSwxNywxOSwyMywyNywzMSwzNSw0Myw1MSw1OSw2Nyw4Myw5OSwxMTUsMTMxLDE2MywxOTUsMjI3LDI1OCwwLDBdLGs9WzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIxLDE2LDcyLDc4XSxsPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSxtPVsxNiwxNiwxNiwxNiwxNywxNywxOCwxOCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywyOCwyOCwyOSwyOSw2NCw2NF07Yi5leHBvcnRzPWZ1bmN0aW9uKGEsYixuLG8scCxxLHIscyl7dmFyIHQsdSx2LHcseCx5LHosQSxCLEM9cy5iaXRzLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPW51bGwsTz0wLFA9bmV3IGMuQnVmMTYoZCsxKSxRPW5ldyBjLkJ1ZjE2KGQrMSksUj1udWxsLFM9MDtmb3IoRD0wO2Q+PUQ7RCsrKVBbRF09MDtmb3IoRT0wO28+RTtFKyspUFtiW24rRV1dKys7Zm9yKEg9QyxHPWQ7Rz49MSYmMD09PVBbR107Ry0tKTtpZihIPkcmJihIPUcpLDA9PT1HKXJldHVybiBwW3ErK109MjA5NzE1MjAscFtxKytdPTIwOTcxNTIwLHMuYml0cz0xLDA7Zm9yKEY9MTtHPkYmJjA9PT1QW0ZdO0YrKyk7Zm9yKEY+SCYmKEg9RiksSz0xLEQ9MTtkPj1EO0QrKylpZihLPDw9MSxLLT1QW0RdLDA+SylyZXR1cm4tMTtpZihLPjAmJihhPT09Z3x8MSE9PUcpKXJldHVybi0xO2ZvcihRWzFdPTAsRD0xO2Q+RDtEKyspUVtEKzFdPVFbRF0rUFtEXTtmb3IoRT0wO28+RTtFKyspMCE9PWJbbitFXSYmKHJbUVtiW24rRV1dKytdPUUpO2lmKGE9PT1nPyhOPVI9cix5PTE5KTphPT09aD8oTj1qLE8tPTI1NyxSPWssUy09MjU3LHk9MjU2KTooTj1sLFI9bSx5PS0xKSxNPTAsRT0wLEQ9Rix4PXEsST1ILEo9MCx2PS0xLEw9MTw8SCx3PUwtMSxhPT09aCYmTD5lfHxhPT09aSYmTD5mKXJldHVybiAxO2Zvcih2YXIgVD0wOzspe1QrKyx6PUQtSixyW0VdPHk/KEE9MCxCPXJbRV0pOnJbRV0+eT8oQT1SW1MrcltFXV0sQj1OW08rcltFXV0pOihBPTk2LEI9MCksdD0xPDxELUosdT0xPDxJLEY9dTtkbyB1LT10LHBbeCsoTT4+SikrdV09ejw8MjR8QTw8MTZ8QnwwO3doaWxlKDAhPT11KTtmb3IodD0xPDxELTE7TSZ0Oyl0Pj49MTtpZigwIT09dD8oTSY9dC0xLE0rPXQpOk09MCxFKyssMD09PS0tUFtEXSl7aWYoRD09PUcpYnJlYWs7RD1iW24rcltFXV19aWYoRD5IJiYoTSZ3KSE9PXYpe2ZvcigwPT09SiYmKEo9SCkseCs9RixJPUQtSixLPTE8PEk7Rz5JK0omJihLLT1QW0krSl0sISgwPj1LKSk7KUkrKyxLPDw9MTtpZihMKz0xPDxJLGE9PT1oJiZMPmV8fGE9PT1pJiZMPmYpcmV0dXJuIDE7dj1NJncscFt2XT1IPDwyNHxJPDwxNnx4LXF8MH19cmV0dXJuIDAhPT1NJiYocFt4K01dPUQtSjw8MjR8NjQ8PDE2fDApLHMuYml0cz1ILDB9fSx7Ii4uL3V0aWxzL2NvbW1vbiI6Mjd9XSwzNzpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7Yi5leHBvcnRzPXsyOiJuZWVkIGRpY3Rpb25hcnkiLDE6InN0cmVhbSBlbmQiLDA6IiIsIi0xIjoiZmlsZSBlcnJvciIsIi0yIjoic3RyZWFtIGVycm9yIiwiLTMiOiJkYXRhIGVycm9yIiwiLTQiOiJpbnN1ZmZpY2llbnQgbWVtb3J5IiwiLTUiOiJidWZmZXIgZXJyb3IiLCItNiI6ImluY29tcGF0aWJsZSB2ZXJzaW9uIn19LHt9XSwzODpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe2Zvcih2YXIgYj1hLmxlbmd0aDstLWI+PTA7KWFbYl09MH1mdW5jdGlvbiBlKGEpe3JldHVybiAyNTY+YT9nYlthXTpnYlsyNTYrKGE+Pj43KV19ZnVuY3Rpb24gZihhLGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPTI1NSZiLGEucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWI+Pj44JjI1NX1mdW5jdGlvbiBnKGEsYixjKXthLmJpX3ZhbGlkPlYtYz8oYS5iaV9idWZ8PWI8PGEuYmlfdmFsaWQmNjU1MzUsZihhLGEuYmlfYnVmKSxhLmJpX2J1Zj1iPj5WLWEuYmlfdmFsaWQsYS5iaV92YWxpZCs9Yy1WKTooYS5iaV9idWZ8PWI8PGEuYmlfdmFsaWQmNjU1MzUsYS5iaV92YWxpZCs9Yyl9ZnVuY3Rpb24gaChhLGIsYyl7ZyhhLGNbMipiXSxjWzIqYisxXSl9ZnVuY3Rpb24gaShhLGIpe3ZhciBjPTA7ZG8gY3w9MSZhLGE+Pj49MSxjPDw9MTt3aGlsZSgtLWI+MCk7cmV0dXJuIGM+Pj4xfWZ1bmN0aW9uIGooYSl7MTY9PT1hLmJpX3ZhbGlkPyhmKGEsYS5iaV9idWYpLGEuYmlfYnVmPTAsYS5iaV92YWxpZD0wKTphLmJpX3ZhbGlkPj04JiYoYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109MjU1JmEuYmlfYnVmLGEuYmlfYnVmPj49OCxhLmJpX3ZhbGlkLT04KX1mdW5jdGlvbiBrKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk9Yi5keW5fdHJlZSxqPWIubWF4X2NvZGUsaz1iLnN0YXRfZGVzYy5zdGF0aWNfdHJlZSxsPWIuc3RhdF9kZXNjLmhhc19zdHJlZSxtPWIuc3RhdF9kZXNjLmV4dHJhX2JpdHMsbj1iLnN0YXRfZGVzYy5leHRyYV9iYXNlLG89Yi5zdGF0X2Rlc2MubWF4X2xlbmd0aCxwPTA7Zm9yKGY9MDtVPj1mO2YrKylhLmJsX2NvdW50W2ZdPTA7Zm9yKGlbMiphLmhlYXBbYS5oZWFwX21heF0rMV09MCxjPWEuaGVhcF9tYXgrMTtUPmM7YysrKWQ9YS5oZWFwW2NdLGY9aVsyKmlbMipkKzFdKzFdKzEsZj5vJiYoZj1vLHArKyksaVsyKmQrMV09ZixkPmp8fChhLmJsX2NvdW50W2ZdKyssZz0wLGQ+PW4mJihnPW1bZC1uXSksaD1pWzIqZF0sYS5vcHRfbGVuKz1oKihmK2cpLGwmJihhLnN0YXRpY19sZW4rPWgqKGtbMipkKzFdK2cpKSk7aWYoMCE9PXApe2Rve2ZvcihmPW8tMTswPT09YS5ibF9jb3VudFtmXTspZi0tO2EuYmxfY291bnRbZl0tLSxhLmJsX2NvdW50W2YrMV0rPTIsYS5ibF9jb3VudFtvXS0tLHAtPTJ9d2hpbGUocD4wKTtmb3IoZj1vOzAhPT1mO2YtLSlmb3IoZD1hLmJsX2NvdW50W2ZdOzAhPT1kOyllPWEuaGVhcFstLWNdLGU+anx8KGlbMiplKzFdIT09ZiYmKGEub3B0X2xlbis9KGYtaVsyKmUrMV0pKmlbMiplXSxpWzIqZSsxXT1mKSxkLS0pfX1mdW5jdGlvbiBsKGEsYixjKXt2YXIgZCxlLGY9bmV3IEFycmF5KFUrMSksZz0wO2ZvcihkPTE7VT49ZDtkKyspZltkXT1nPWcrY1tkLTFdPDwxO2ZvcihlPTA7Yj49ZTtlKyspe3ZhciBoPWFbMiplKzFdOzAhPT1oJiYoYVsyKmVdPWkoZltoXSsrLGgpKX19ZnVuY3Rpb24gbSgpe3ZhciBhLGIsYyxkLGUsZj1uZXcgQXJyYXkoVSsxKTtmb3IoYz0wLGQ9MDtPLTE+ZDtkKyspZm9yKGliW2RdPWMsYT0wO2E8MTw8X1tkXTthKyspaGJbYysrXT1kO2ZvcihoYltjLTFdPWQsZT0wLGQ9MDsxNj5kO2QrKylmb3IoamJbZF09ZSxhPTA7YTwxPDxhYltkXTthKyspZ2JbZSsrXT1kO2ZvcihlPj49NztSPmQ7ZCsrKWZvcihqYltkXT1lPDw3LGE9MDthPDE8PGFiW2RdLTc7YSsrKWdiWzI1NitlKytdPWQ7Zm9yKGI9MDtVPj1iO2IrKylmW2JdPTA7Zm9yKGE9MDsxNDM+PWE7KWViWzIqYSsxXT04LGErKyxmWzhdKys7Zm9yKDsyNTU+PWE7KWViWzIqYSsxXT05LGErKyxmWzldKys7Zm9yKDsyNzk+PWE7KWViWzIqYSsxXT03LGErKyxmWzddKys7Zm9yKDsyODc+PWE7KWViWzIqYSsxXT04LGErKyxmWzhdKys7Zm9yKGwoZWIsUSsxLGYpLGE9MDtSPmE7YSsrKWZiWzIqYSsxXT01LGZiWzIqYV09aShhLDUpO2tiPW5ldyBuYihlYixfLFArMSxRLFUpLGxiPW5ldyBuYihmYixhYiwwLFIsVSksbWI9bmV3IG5iKG5ldyBBcnJheSgwKSxiYiwwLFMsVyl9ZnVuY3Rpb24gbihhKXt2YXIgYjtmb3IoYj0wO1E+YjtiKyspYS5keW5fbHRyZWVbMipiXT0wO2ZvcihiPTA7Uj5iO2IrKylhLmR5bl9kdHJlZVsyKmJdPTA7Zm9yKGI9MDtTPmI7YisrKWEuYmxfdHJlZVsyKmJdPTA7YS5keW5fbHRyZWVbMipYXT0xLGEub3B0X2xlbj1hLnN0YXRpY19sZW49MCxhLmxhc3RfbGl0PWEubWF0Y2hlcz0wfWZ1bmN0aW9uIG8oYSl7YS5iaV92YWxpZD44P2YoYSxhLmJpX2J1Zik6YS5iaV92YWxpZD4wJiYoYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109YS5iaV9idWYpLGEuYmlfYnVmPTAsYS5iaV92YWxpZD0wfWZ1bmN0aW9uIHAoYSxiLGMsZCl7byhhKSxkJiYoZihhLGMpLGYoYSx+YykpLEUuYXJyYXlTZXQoYS5wZW5kaW5nX2J1ZixhLndpbmRvdyxiLGMsYS5wZW5kaW5nKSxhLnBlbmRpbmcrPWN9ZnVuY3Rpb24gcShhLGIsYyxkKXt2YXIgZT0yKmIsZj0yKmM7cmV0dXJuIGFbZV08YVtmXXx8YVtlXT09PWFbZl0mJmRbYl08PWRbY119ZnVuY3Rpb24gcihhLGIsYyl7Zm9yKHZhciBkPWEuaGVhcFtjXSxlPWM8PDE7ZTw9YS5oZWFwX2xlbiYmKGU8YS5oZWFwX2xlbiYmcShiLGEuaGVhcFtlKzFdLGEuaGVhcFtlXSxhLmRlcHRoKSYmZSsrLCFxKGIsZCxhLmhlYXBbZV0sYS5kZXB0aCkpOylhLmhlYXBbY109YS5oZWFwW2VdLGM9ZSxlPDw9MTthLmhlYXBbY109ZH1mdW5jdGlvbiBzKGEsYixjKXt2YXIgZCxmLGksaixrPTA7aWYoMCE9PWEubGFzdF9saXQpZG8gZD1hLnBlbmRpbmdfYnVmW2EuZF9idWYrMiprXTw8OHxhLnBlbmRpbmdfYnVmW2EuZF9idWYrMiprKzFdLGY9YS5wZW5kaW5nX2J1ZlthLmxfYnVmK2tdLGsrKywwPT09ZD9oKGEsZixiKTooaT1oYltmXSxoKGEsaStQKzEsYiksaj1fW2ldLDAhPT1qJiYoZi09aWJbaV0sZyhhLGYsaikpLGQtLSxpPWUoZCksaChhLGksYyksaj1hYltpXSwwIT09aiYmKGQtPWpiW2ldLGcoYSxkLGopKSk7d2hpbGUoazxhLmxhc3RfbGl0KTtoKGEsWCxiKX1mdW5jdGlvbiB0KGEsYil7dmFyIGMsZCxlLGY9Yi5keW5fdHJlZSxnPWIuc3RhdF9kZXNjLnN0YXRpY190cmVlLGg9Yi5zdGF0X2Rlc2MuaGFzX3N0cmVlLGk9Yi5zdGF0X2Rlc2MuZWxlbXMsaj0tMTtmb3IoYS5oZWFwX2xlbj0wLGEuaGVhcF9tYXg9VCxjPTA7aT5jO2MrKykwIT09ZlsyKmNdPyhhLmhlYXBbKythLmhlYXBfbGVuXT1qPWMsYS5kZXB0aFtjXT0wKTpmWzIqYysxXT0wO2Zvcig7YS5oZWFwX2xlbjwyOyllPWEuaGVhcFsrK2EuaGVhcF9sZW5dPTI+aj8rK2o6MCxmWzIqZV09MSxhLmRlcHRoW2VdPTAsYS5vcHRfbGVuLS0saCYmKGEuc3RhdGljX2xlbi09Z1syKmUrMV0pO2ZvcihiLm1heF9jb2RlPWosYz1hLmhlYXBfbGVuPj4xO2M+PTE7Yy0tKXIoYSxmLGMpO2U9aTtkbyBjPWEuaGVhcFsxXSxhLmhlYXBbMV09YS5oZWFwW2EuaGVhcF9sZW4tLV0scihhLGYsMSksZD1hLmhlYXBbMV0sYS5oZWFwWy0tYS5oZWFwX21heF09YyxhLmhlYXBbLS1hLmhlYXBfbWF4XT1kLGZbMiplXT1mWzIqY10rZlsyKmRdLGEuZGVwdGhbZV09KGEuZGVwdGhbY10+PWEuZGVwdGhbZF0/YS5kZXB0aFtjXTphLmRlcHRoW2RdKSsxLGZbMipjKzFdPWZbMipkKzFdPWUsYS5oZWFwWzFdPWUrKyxyKGEsZiwxKTt3aGlsZShhLmhlYXBfbGVuPj0yKTthLmhlYXBbLS1hLmhlYXBfbWF4XT1hLmhlYXBbMV0sayhhLGIpLGwoZixqLGEuYmxfY291bnQpfWZ1bmN0aW9uIHUoYSxiLGMpe3ZhciBkLGUsZj0tMSxnPWJbMV0saD0wLGk9NyxqPTQ7Zm9yKDA9PT1nJiYoaT0xMzgsaj0zKSxiWzIqKGMrMSkrMV09NjU1MzUsZD0wO2M+PWQ7ZCsrKWU9ZyxnPWJbMiooZCsxKSsxXSwrK2g8aSYmZT09PWd8fChqPmg/YS5ibF90cmVlWzIqZV0rPWg6MCE9PWU/KGUhPT1mJiZhLmJsX3RyZWVbMiplXSsrLGEuYmxfdHJlZVsyKlldKyspOjEwPj1oP2EuYmxfdHJlZVsyKlpdKys6YS5ibF90cmVlWzIqJF0rKyxoPTAsZj1lLDA9PT1nPyhpPTEzOCxqPTMpOmU9PT1nPyhpPTYsaj0zKTooaT03LGo9NCkpfWZ1bmN0aW9uIHYoYSxiLGMpe3ZhciBkLGUsZj0tMSxpPWJbMV0saj0wLGs9NyxsPTQ7Zm9yKDA9PT1pJiYoaz0xMzgsbD0zKSxkPTA7Yz49ZDtkKyspaWYoZT1pLGk9YlsyKihkKzEpKzFdLCEoKytqPGsmJmU9PT1pKSl7aWYobD5qKXtkbyBoKGEsZSxhLmJsX3RyZWUpO3doaWxlKDAhPT0tLWopfWVsc2UgMCE9PWU/KGUhPT1mJiYoaChhLGUsYS5ibF90cmVlKSxqLS0pLGgoYSxZLGEuYmxfdHJlZSksZyhhLGotMywyKSk6MTA+PWo/KGgoYSxaLGEuYmxfdHJlZSksZyhhLGotMywzKSk6KGgoYSwkLGEuYmxfdHJlZSksZyhhLGotMTEsNykpO2o9MCxmPWUsMD09PWk/KGs9MTM4LGw9Myk6ZT09PWk/KGs9NixsPTMpOihrPTcsbD00KX19ZnVuY3Rpb24gdyhhKXt2YXIgYjtmb3IodShhLGEuZHluX2x0cmVlLGEubF9kZXNjLm1heF9jb2RlKSx1KGEsYS5keW5fZHRyZWUsYS5kX2Rlc2MubWF4X2NvZGUpLHQoYSxhLmJsX2Rlc2MpLGI9Uy0xO2I+PTMmJjA9PT1hLmJsX3RyZWVbMipjYltiXSsxXTtiLS0pO3JldHVybiBhLm9wdF9sZW4rPTMqKGIrMSkrNSs1KzQsYn1mdW5jdGlvbiB4KGEsYixjLGQpe3ZhciBlO2ZvcihnKGEsYi0yNTcsNSksZyhhLGMtMSw1KSxnKGEsZC00LDQpLGU9MDtkPmU7ZSsrKWcoYSxhLmJsX3RyZWVbMipjYltlXSsxXSwzKTt2KGEsYS5keW5fbHRyZWUsYi0xKSx2KGEsYS5keW5fZHRyZWUsYy0xKX1mdW5jdGlvbiB5KGEpe3ZhciBiLGM9NDA5MzYyNDQ0Nztmb3IoYj0wOzMxPj1iO2IrKyxjPj4+PTEpaWYoMSZjJiYwIT09YS5keW5fbHRyZWVbMipiXSlyZXR1cm4gRztpZigwIT09YS5keW5fbHRyZWVbMThdfHwwIT09YS5keW5fbHRyZWVbMjBdfHwwIT09YS5keW5fbHRyZWVbMjZdKXJldHVybiBIO2ZvcihiPTMyO1A+YjtiKyspaWYoMCE9PWEuZHluX2x0cmVlWzIqYl0pcmV0dXJuIEg7cmV0dXJuIEd9ZnVuY3Rpb24geihhKXtwYnx8KG0oKSxwYj0hMCksYS5sX2Rlc2M9bmV3IG9iKGEuZHluX2x0cmVlLGtiKSxhLmRfZGVzYz1uZXcgb2IoYS5keW5fZHRyZWUsbGIpLGEuYmxfZGVzYz1uZXcgb2IoYS5ibF90cmVlLG1iKSxhLmJpX2J1Zj0wLGEuYmlfdmFsaWQ9MCxuKGEpfWZ1bmN0aW9uIEEoYSxiLGMsZCl7ZyhhLChKPDwxKSsoZD8xOjApLDMpLHAoYSxiLGMsITApfWZ1bmN0aW9uIEIoYSl7ZyhhLEs8PDEsMyksaChhLFgsZWIpLGooYSl9ZnVuY3Rpb24gQyhhLGIsYyxkKXt2YXIgZSxmLGg9MDthLmxldmVsPjA/KGEuc3RybS5kYXRhX3R5cGU9PT1JJiYoYS5zdHJtLmRhdGFfdHlwZT15KGEpKSx0KGEsYS5sX2Rlc2MpLHQoYSxhLmRfZGVzYyksaD13KGEpLGU9YS5vcHRfbGVuKzMrNz4+PjMsZj1hLnN0YXRpY19sZW4rMys3Pj4+MyxlPj1mJiYoZT1mKSk6ZT1mPWMrNSxlPj1jKzQmJi0xIT09Yj9BKGEsYixjLGQpOmEuc3RyYXRlZ3k9PT1GfHxmPT09ZT8oZyhhLChLPDwxKSsoZD8xOjApLDMpLHMoYSxlYixmYikpOihnKGEsKEw8PDEpKyhkPzE6MCksMykseChhLGEubF9kZXNjLm1heF9jb2RlKzEsYS5kX2Rlc2MubWF4X2NvZGUrMSxoKzEpLHMoYSxhLmR5bl9sdHJlZSxhLmR5bl9kdHJlZSkpLG4oYSksZCYmbyhhKX1mdW5jdGlvbiBEKGEsYixjKXtyZXR1cm4gYS5wZW5kaW5nX2J1ZlthLmRfYnVmKzIqYS5sYXN0X2xpdF09Yj4+PjgmMjU1LGEucGVuZGluZ19idWZbYS5kX2J1ZisyKmEubGFzdF9saXQrMV09MjU1JmIsYS5wZW5kaW5nX2J1ZlthLmxfYnVmK2EubGFzdF9saXRdPTI1NSZjLGEubGFzdF9saXQrKywwPT09Yj9hLmR5bl9sdHJlZVsyKmNdKys6KGEubWF0Y2hlcysrLGItLSxhLmR5bl9sdHJlZVsyKihoYltjXStQKzEpXSsrLGEuZHluX2R0cmVlWzIqZShiKV0rKyksYS5sYXN0X2xpdD09PWEubGl0X2J1ZnNpemUtMX12YXIgRT1hKCIuLi91dGlscy9jb21tb24iKSxGPTQsRz0wLEg9MSxJPTIsSj0wLEs9MSxMPTIsTT0zLE49MjU4LE89MjksUD0yNTYsUT1QKzErTyxSPTMwLFM9MTksVD0yKlErMSxVPTE1LFY9MTYsVz03LFg9MjU2LFk9MTYsWj0xNywkPTE4LF89WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sYWI9WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLGJiPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSxjYj1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0sZGI9NTEyLGViPW5ldyBBcnJheSgyKihRKzIpKTtkKGViKTt2YXIgZmI9bmV3IEFycmF5KDIqUik7ZChmYik7dmFyIGdiPW5ldyBBcnJheShkYik7ZChnYik7dmFyIGhiPW5ldyBBcnJheShOLU0rMSk7ZChoYik7dmFyIGliPW5ldyBBcnJheShPKTtkKGliKTt2YXIgamI9bmV3IEFycmF5KFIpO2QoamIpO3ZhciBrYixsYixtYixuYj1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMuc3RhdGljX3RyZWU9YSx0aGlzLmV4dHJhX2JpdHM9Yix0aGlzLmV4dHJhX2Jhc2U9Yyx0aGlzLmVsZW1zPWQsdGhpcy5tYXhfbGVuZ3RoPWUsdGhpcy5oYXNfc3RyZWU9YSYmYS5sZW5ndGh9LG9iPWZ1bmN0aW9uKGEsYil7dGhpcy5keW5fdHJlZT1hLHRoaXMubWF4X2NvZGU9MCx0aGlzLnN0YXRfZGVzYz1ifSxwYj0hMTtjLl90cl9pbml0PXosYy5fdHJfc3RvcmVkX2Jsb2NrPUEsYy5fdHJfZmx1c2hfYmxvY2s9QyxjLl90cl90YWxseT1ELGMuX3RyX2FsaWduPUJ9LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM5OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKCl7dGhpcy5pbnB1dD1udWxsLHRoaXMubmV4dF9pbj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5vdXRwdXQ9bnVsbCx0aGlzLm5leHRfb3V0PTAsdGhpcy5hdmFpbF9vdXQ9MCx0aGlzLnRvdGFsX291dD0wLHRoaXMubXNnPSIiLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmRhdGFfdHlwZT0yLHRoaXMuYWRsZXI9MH1iLmV4cG9ydHM9Y30se31dfSx7fSxbOV0pKDkpfSk7J3VzZSBzdHJpY3QnO2lmKHRyLmlzSGVhZGxlc3Mpe2dsb2JhbC53aW5kb3c9e307fSd1c2Ugc3RyaWN0JztpZih0ci5pc0hlYWRsZXNzKXtnbG9iYWwuSlNaaXA9Z2xvYmFsLndpbmRvdy5KU1ppcDtnbG9iYWwud2luZG93PXVuZGVmaW5lZDt9J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmRkbXMnLGZ1bmN0aW9uKCl7dmFyIEltcG9ydGVyPXRyLmltcG9ydGVyLkltcG9ydGVyO3ZhciBrUGlkPTA7dmFyIGtDYXRlZ29yeT0namF2YSc7dmFyIGtNZXRob2RMdXRFbmRNYXJrZXI9J1xuKmVuZFxuJzt2YXIga1RocmVhZHNTdGFydD0nXG4qdGhyZWFkc1xuJzt2YXIga01ldGhvZHNTdGFydD0nXG4qbWV0aG9kc1xuJzt2YXIga1RyYWNlTWV0aG9kRW50ZXI9MHgwMDt2YXIga1RyYWNlTWV0aG9kRXhpdD0weDAxO3ZhciBrVHJhY2VVbnJvbGw9MHgwMjt2YXIga1RyYWNlTWV0aG9kQWN0aW9uTWFzaz0weDAzO3ZhciBrVHJhY2VIZWFkZXJMZW5ndGg9MzI7dmFyIGtUcmFjZU1hZ2ljVmFsdWU9MHg1NzRmNGM1Mzt2YXIga1RyYWNlVmVyc2lvblNpbmdsZUNsb2NrPTI7dmFyIGtUcmFjZVZlcnNpb25EdWFsQ2xvY2s9Mzt2YXIga1RyYWNlUmVjb3JkU2l6ZVNpbmdsZUNsb2NrPTEwO3ZhciBrVHJhY2VSZWNvcmRTaXplRHVhbENsb2NrPTE0O2Z1bmN0aW9uIFJlYWRlcihzdHJpbmdfcGF5bG9hZCl7dGhpcy5wb3NpdGlvbl89MDt0aGlzLmRhdGFfPUpTWmlwLnV0aWxzLnRyYW5zZm9ybVRvKCd1aW50OGFycmF5JyxzdHJpbmdfcGF5bG9hZCk7fQogUmVhZGVyLnByb3RvdHlwZT17X19wcm90b19fOk9iamVjdC5wcm90b3R5cGUsdWludDg6ZnVuY3Rpb24oKXt2YXIgcmVzdWx0PXRoaXMuZGF0YV9bdGhpcy5wb3NpdGlvbl9dO3RoaXMucG9zaXRpb25fKz0xO3JldHVybiByZXN1bHQ7fSx1aW50MTY6ZnVuY3Rpb24oKXt2YXIgcmVzdWx0PTA7cmVzdWx0Kz10aGlzLnVpbnQ4KCk7cmVzdWx0Kz10aGlzLnVpbnQ4KCk8PDg7cmV0dXJuIHJlc3VsdDt9LHVpbnQzMjpmdW5jdGlvbigpe3ZhciByZXN1bHQ9MDtyZXN1bHQrPXRoaXMudWludDgoKTtyZXN1bHQrPXRoaXMudWludDgoKTw8ODtyZXN1bHQrPXRoaXMudWludDgoKTw8MTY7cmVzdWx0Kz10aGlzLnVpbnQ4KCk8PDI0O3JldHVybiByZXN1bHQ7fSx1aW50NjQ6ZnVuY3Rpb24oKXt2YXIgbG93PXRoaXMudWludDMyKCk7dmFyIGhpZ2g9dGhpcy51aW50MzIoKTt2YXIgbG93X3N0cj0oJzAwMDAwMDAnK2xvdy50b1N0cmluZygxNikpLnN1YnN0cigtOCk7dmFyIGhpZ2hfc3RyPSgnMDAwMDAwMCcraGlnaC50b1N0cmluZygxNikpLnN1YnN0cigtOCk7dmFyIHJlc3VsdD1oaWdoX3N0citsb3dfc3RyO3JldHVybiByZXN1bHQ7fSxzZWVrVG86ZnVuY3Rpb24ocG9zaXRpb24pe3RoaXMucG9zaXRpb25fPXBvc2l0aW9uO30saGFzTW9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uXzx0aGlzLmRhdGFfLmxlbmd0aDt9fTtmdW5jdGlvbiBEZG1zSW1wb3J0ZXIobW9kZWwsZGF0YSl7dGhpcy5pbXBvcnRQcmlvcml0eT0zO3RoaXMubW9kZWxfPW1vZGVsO3RoaXMuZGF0YV89ZGF0YTt9CiBEZG1zSW1wb3J0ZXIuY2FuSW1wb3J0PWZ1bmN0aW9uKGRhdGEpe2lmKHR5cGVvZihkYXRhKT09PSdzdHJpbmcnfHxkYXRhIGluc3RhbmNlb2YgU3RyaW5nKXt2YXIgaGVhZGVyPWRhdGEuc2xpY2UoMCwxMDAwKTtyZXR1cm4gaGVhZGVyLnN0YXJ0c1dpdGgoJyp2ZXJzaW9uXG4nKSYmaGVhZGVyLmluZGV4T2YoJ1xudm09Jyk+PTAmJmhlYWRlci5pbmRleE9mKGtUaHJlYWRzU3RhcnQpPj0wO30KIHJldHVybiBmYWxzZTt9O0RkbXNJbXBvcnRlci5wcm90b3R5cGU9e19fcHJvdG9fXzpJbXBvcnRlci5wcm90b3R5cGUsZ2V0IG1vZGVsKCl7cmV0dXJuIHRoaXMubW9kZWxfO30saW1wb3J0RXZlbnRzOmZ1bmN0aW9uKGlzU2Vjb25kYXJ5SW1wb3J0KXt2YXIgZGl2aWRlcj10aGlzLmRhdGFfLmluZGV4T2Yoa01ldGhvZEx1dEVuZE1hcmtlcikrCkBAIC0zNzgwLDE1ICs0MjY3LDE1IEBACiBrVGhyZWFkc1N0YXJ0Lmxlbmd0aCk7dGhyZWFkcz10aHJlYWRzLnNsaWNlKDAsdGhyZWFkcy5pbmRleE9mKCdcbionKSk7dGhyZWFkcz10aHJlYWRzLnNwbGl0KCdcbicpO3RocmVhZHMuZm9yRWFjaCh0aGlzLnBhcnNlVGhyZWFkLmJpbmQodGhpcykpO30scGFyc2VUaHJlYWQ6ZnVuY3Rpb24odGhyZWFkX2xpbmUpe3ZhciB0aWQ9dGhyZWFkX2xpbmUuc2xpY2UoMCx0aHJlYWRfbGluZS5pbmRleE9mKCdcdCcpKTt2YXIgdGhyZWFkPXRoaXMuZ2V0VGlkKHBhcnNlSW50KHRpZCkpO3RocmVhZC5uYW1lPXRocmVhZF9saW5lLnNsaWNlKHRocmVhZF9saW5lLmluZGV4T2YoJ1x0JykrMSk7fSxnZXRUaWQ6ZnVuY3Rpb24odGlkKXtyZXR1cm4gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGtQaWQpLmdldE9yQ3JlYXRlVGhyZWFkKHRpZCk7fSxwYXJzZU1ldGhvZHM6ZnVuY3Rpb24oKXt2YXIgbWV0aG9kcz10aGlzLm1ldGFkYXRhXy5zbGljZSh0aGlzLm1ldGFkYXRhXy5pbmRleE9mKGtNZXRob2RzU3RhcnQpKwoga01ldGhvZHNTdGFydC5sZW5ndGgpO21ldGhvZHM9bWV0aG9kcy5zbGljZSgwLG1ldGhvZHMuaW5kZXhPZignXG4qJykpO21ldGhvZHM9bWV0aG9kcy5zcGxpdCgnXG4nKTttZXRob2RzLmZvckVhY2godGhpcy5wYXJzZU1ldGhvZC5iaW5kKHRoaXMpKTt9LHBhcnNlTWV0aG9kOmZ1bmN0aW9uKG1ldGhvZF9saW5lKXt2YXIgZGF0YT1tZXRob2RfbGluZS5zcGxpdCgnXHQnKTt2YXIgbWV0aG9kSWQ9cGFyc2VJbnQoZGF0YVswXSk7dmFyIG1ldGhvZE5hbWU9ZGF0YVsxXSsnLicrZGF0YVsyXStkYXRhWzNdO3RoaXMuYWRkTWV0aG9kKG1ldGhvZElkLG1ldGhvZE5hbWUpO30sYWRkTWV0aG9kOmZ1bmN0aW9uKG1ldGhvZElkLG1ldGhvZE5hbWUpe3RoaXMubWV0aG9kc19bbWV0aG9kSWRdPW1ldGhvZE5hbWU7fSxnZXRNZXRob2ROYW1lOmZ1bmN0aW9uKG1ldGhvZElkKXtyZXR1cm4gdGhpcy5tZXRob2RzX1ttZXRob2RJZF07fX07dHIuaW1wb3J0ZXIuSW1wb3J0ZXIucmVnaXN0ZXIoRGRtc0ltcG9ydGVyKTtyZXR1cm57RGRtc0ltcG9ydGVyOkRkbXNJbXBvcnRlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUGFyc2VyKGltcG9ydGVyKXt0aGlzLmltcG9ydGVyPWltcG9ydGVyO3RoaXMubW9kZWw9aW1wb3J0ZXIubW9kZWw7fQogUGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOk9iamVjdC5wcm90b3R5cGV9O3ZhciBvcHRpb25zPW5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpO29wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzPVBhcnNlcjt0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoUGFyc2VyLG9wdGlvbnMpO3JldHVybntQYXJzZXI6UGFyc2VyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsZnVuY3Rpb24oKXt2YXIgUGFyc2VyPXRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7ZnVuY3Rpb24gQnVzUGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbWVtb3J5X2J1c191c2FnZScsQnVzUGFyc2VyLnByb3RvdHlwZS50cmFjZU1hcmtXcml0ZUJ1c0V2ZW50LmJpbmQodGhpcykpO3RoaXMubW9kZWxfPWltcG9ydGVyLm1vZGVsXzt0aGlzLnBwaWRzXz17fTt9Ci1CdXNQYXJzZXIucHJvdG90eXBlPXtfX3Byb3RvX186UGFyc2VyLnByb3RvdHlwZSx0cmFjZU1hcmtXcml0ZUJ1c0V2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSx0aHJlYWROYW1lKXt2YXIgcmU9bmV3IFJlZ0V4cCgnYnVzPShcXFMrKSByd19ieXRlcz0oXFxkKykgcl9ieXRlcz0oXFxkKykgJysnd19ieXRlcz0oXFxkKykgY3ljbGVzPShcXGQrKSBucz0oXFxkKyknKTt2YXIgZXZlbnQ9cmUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7dmFyIG5hbWU9ZXZlbnRbMV07dmFyIHJ3X2J5dGVzPXBhcnNlSW50KGV2ZW50WzJdKTt2YXIgcl9ieXRlcz1wYXJzZUludChldmVudFszXSk7dmFyIHdfYnl0ZXM9cGFyc2VJbnQoZXZlbnRbNF0pO3ZhciBjeWNsZXM9cGFyc2VJbnQoZXZlbnRbNV0pO3ZhciBucz1wYXJzZUludChldmVudFs2XSk7dmFyIHJfYnc9cl9ieXRlcyoxMDAwMDAwMDAwL25zO3JfYncvPTEwMjQqMTAyNDt2YXIgd19idz13X2J5dGVzKjEwMDAwMDAwMDAvbnM7d19idy89MTAyNCoxMDI0O3ZhciBjdHI9dGhpcy5tb2RlbF8ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCdidXMgJytuYW1lKycgcmVhZCcpO2lmKGN0ci5udW1TZXJpZXM9PT0wKXtjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZScsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY3RyLm5hbWUrJy4nKyd2YWx1ZScpKSk7fQotY3RyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7c2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMscl9idyk7fSk7Y3RyPXRoaXMubW9kZWxfLmtlcm5lbC5nZXRPckNyZWF0ZUNvdW50ZXIobnVsbCwnYnVzICcrbmFtZSsnIHdyaXRlJyk7aWYoY3RyLm51bVNlcmllcz09PTApe2N0ci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3ZhbHVlJyx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjdHIubmFtZSsnLicrJ3ZhbHVlJykpKTt9CitCdXNQYXJzZXIucHJvdG90eXBlPXtfX3Byb3RvX186UGFyc2VyLnByb3RvdHlwZSx0cmFjZU1hcmtXcml0ZUJ1c0V2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSx0aHJlYWROYW1lKXt2YXIgcmU9bmV3IFJlZ0V4cCgnYnVzPShcXFMrKSByd19ieXRlcz0oXFxkKykgcl9ieXRlcz0oXFxkKykgJysnd19ieXRlcz0oXFxkKykgY3ljbGVzPShcXGQrKSBucz0oXFxkKyknKTt2YXIgZXZlbnQ9cmUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7dmFyIG5hbWU9ZXZlbnRbMV07dmFyIHJ3X2J5dGVzPXBhcnNlSW50KGV2ZW50WzJdKTt2YXIgcl9ieXRlcz1wYXJzZUludChldmVudFszXSk7dmFyIHdfYnl0ZXM9cGFyc2VJbnQoZXZlbnRbNF0pO3ZhciBjeWNsZXM9cGFyc2VJbnQoZXZlbnRbNV0pO3ZhciBucz1wYXJzZUludChldmVudFs2XSk7dmFyIHJfYnc9cl9ieXRlcyoxMDAwMDAwMDAwL25zO3JfYncvPTEwMjQqMTAyNDt2YXIgd19idz13X2J5dGVzKjEwMDAwMDAwMDAvbnM7d19idy89MTAyNCoxMDI0O3ZhciBjdHI9dGhpcy5tb2RlbF8ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCdidXMgJytuYW1lKycgcmVhZCcpO2lmKGN0ci5udW1TZXJpZXM9PT0wKXtjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZScsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY3RyLm5hbWUrJy4nKyd2YWx1ZScpKSk7fQorY3RyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7c2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMscl9idyk7fSk7Y3RyPXRoaXMubW9kZWxfLmtlcm5lbC5nZXRPckNyZWF0ZUNvdW50ZXIobnVsbCwnYnVzICcrbmFtZSsnIHdyaXRlJyk7aWYoY3RyLm51bVNlcmllcz09PTApe2N0ci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3ZhbHVlJyx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjdHIubmFtZSsnLicrJ3ZhbHVlJykpKTt9CiBjdHIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cyxyX2J3KTt9KTtyZXR1cm4gdHJ1ZTt9fTtQYXJzZXIucmVnaXN0ZXIoQnVzUGFyc2VyKTtyZXR1cm57QnVzUGFyc2VyOkJ1c1BhcnNlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLGZ1bmN0aW9uKCl7dmFyIFBhcnNlcj10ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyO2Z1bmN0aW9uIENsb2NrUGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY2xvY2tfc2V0X3JhdGUnLENsb2NrUGFyc2VyLnByb3RvdHlwZS50cmFjZU1hcmtXcml0ZUNsb2NrRXZlbnQuYmluZCh0aGlzKSk7dGhpcy5tb2RlbF89aW1wb3J0ZXIubW9kZWxfO3RoaXMucHBpZHNfPXt9O30KLUNsb2NrUGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsdHJhY2VNYXJrV3JpdGVDbG9ja0V2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSx0aHJlYWROYW1lKXt2YXIgZXZlbnQ9LyhcUyspIHN0YXRlPShcZCspIGNwdV9pZD0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7dmFyIG5hbWU9ZXZlbnRbMV07dmFyIHJhdGU9cGFyc2VJbnQoZXZlbnRbMl0pO3ZhciBjdHI9dGhpcy5tb2RlbF8ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLG5hbWUpO2lmKGN0ci5udW1TZXJpZXM9PT0wKXtjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZScsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY3RyLm5hbWUrJy4nKyd2YWx1ZScpKSk7fQorQ2xvY2tQYXJzZXIucHJvdG90eXBlPXtfX3Byb3RvX186UGFyc2VyLnByb3RvdHlwZSx0cmFjZU1hcmtXcml0ZUNsb2NrRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlLHRocmVhZE5hbWUpe3ZhciBldmVudD0vKFxTKykgc3RhdGU9KFxkKykgY3B1X2lkPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTt2YXIgbmFtZT1ldmVudFsxXTt2YXIgcmF0ZT1wYXJzZUludChldmVudFsyXSk7dmFyIGN0cj10aGlzLm1vZGVsXy5rZXJuZWwuZ2V0T3JDcmVhdGVDb3VudGVyKG51bGwsbmFtZSk7aWYoY3RyLm51bVNlcmllcz09PTApe2N0ci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3ZhbHVlJyx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjdHIubmFtZSsnLicrJ3ZhbHVlJykpKTt9CiBjdHIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cyxyYXRlKTt9KTtyZXR1cm4gdHJ1ZTt9fTtQYXJzZXIucmVnaXN0ZXIoQ2xvY2tQYXJzZXIpO3JldHVybntDbG9ja1BhcnNlcjpDbG9ja1BhcnNlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLGZ1bmN0aW9uKCl7dmFyIFBhcnNlcj10ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyO2Z1bmN0aW9uIENwdWZyZXFQYXJzZXIoaW1wb3J0ZXIpe1BhcnNlci5jYWxsKHRoaXMsaW1wb3J0ZXIpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX3VwJyxDcHVmcmVxUGFyc2VyLnByb3RvdHlwZS5jcHVmcmVxVXBEb3duRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdWZyZXFfaW50ZXJhY3RpdmVfZG93bicsQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVVwRG93bkV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX2FscmVhZHknLENwdWZyZXFQYXJzZXIucHJvdG90eXBlLmNwdWZyZXFUYXJnZXRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1ZnJlcV9pbnRlcmFjdGl2ZV9ub3R5ZXQnLENwdWZyZXFQYXJzZXIucHJvdG90eXBlLmNwdWZyZXFUYXJnZXRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1ZnJlcV9pbnRlcmFjdGl2ZV9zZXRzcGVlZCcsQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVRhcmdldEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX3RhcmdldCcsQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVRhcmdldEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX2Jvb3N0JyxDcHVmcmVxUGFyc2VyLnByb3RvdHlwZS5jcHVmcmVxQm9vc3RVbmJvb3N0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdWZyZXFfaW50ZXJhY3RpdmVfdW5ib29zdCcsQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcUJvb3N0VW5ib29zdEV2ZW50LmJpbmQodGhpcykpO30KIGZ1bmN0aW9uIHNwbGl0RGF0YShpbnB1dCl7dmFyIGRhdGE9e307dmFyIGFyZ3M9aW5wdXQuc3BsaXQoL1xzKy8pO3ZhciBsZW49YXJncy5sZW5ndGg7Zm9yKHZhciBpPTA7aTxsZW47aSsrKXt2YXIgaXRlbT1hcmdzW2ldLnNwbGl0KCc9Jyk7ZGF0YVtpdGVtWzBdXT1wYXJzZUludChpdGVtWzFdKTt9CiByZXR1cm4gZGF0YTt9Ci1DcHVmcmVxUGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsY3B1ZnJlcVNsaWNlOmZ1bmN0aW9uKHRzLGV2ZW50TmFtZSxjcHUsYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnY3B1ZnJlcScpO2t0aHJlYWQub3BlblNsaWNlPWV2ZW50TmFtZTt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLGt0aHJlYWQub3BlblNsaWNlLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSx0cyxhcmdzLDApO2t0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9LGNwdWZyZXFCb29zdFNsaWNlOmZ1bmN0aW9uKHRzLGV2ZW50TmFtZSxhcmdzKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdjcHVmcmVxX2Jvb3N0Jyk7a3RocmVhZC5vcGVuU2xpY2U9ZXZlbnROYW1lO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLHRzLGFyZ3MsMCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30sY3B1ZnJlcVVwRG93bkV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGRhdGE9c3BsaXREYXRhKGV2ZW50QmFzZS5kZXRhaWxzKTt0aGlzLmNwdWZyZXFTbGljZSh0cyxldmVudE5hbWUsZGF0YS5jcHUsZGF0YSk7cmV0dXJuIHRydWU7fSxjcHVmcmVxVGFyZ2V0RXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZGF0YT1zcGxpdERhdGEoZXZlbnRCYXNlLmRldGFpbHMpO3RoaXMuY3B1ZnJlcVNsaWNlKHRzLGV2ZW50TmFtZSxkYXRhLmNwdSxkYXRhKTtyZXR1cm4gdHJ1ZTt9LGNwdWZyZXFCb29zdFVuYm9vc3RFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3RoaXMuY3B1ZnJlcUJvb3N0U2xpY2UodHMsZXZlbnROYW1lLHt0eXBlOmV2ZW50QmFzZS5kZXRhaWxzfSk7cmV0dXJuIHRydWU7fX07UGFyc2VyLnJlZ2lzdGVyKENwdWZyZXFQYXJzZXIpO3JldHVybntDcHVmcmVxUGFyc2VyOkNwdWZyZXFQYXJzZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJyxmdW5jdGlvbigpe3ZhciBQYXJzZXI9dHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjtmdW5jdGlvbiBEaXNrUGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZjJmc193cml0ZV9iZWdpbicsRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1dyaXRlQmVnaW5FdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZjJmc193cml0ZV9lbmQnLERpc2tQYXJzZXIucHJvdG90eXBlLmYyZnNXcml0ZUVuZEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3N5bmNfZmlsZV9lbnRlcicsRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1N5bmNGaWxlRW50ZXJFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZjJmc19zeW5jX2ZpbGVfZXhpdCcsRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1N5bmNGaWxlRXhpdEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X3N5bmNfZmlsZV9lbnRlcicsRGlza1BhcnNlci5wcm90b3R5cGUuZXh0NFN5bmNGaWxlRW50ZXJFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZXh0NF9zeW5jX2ZpbGVfZXhpdCcsRGlza1BhcnNlci5wcm90b3R5cGUuZXh0NFN5bmNGaWxlRXhpdEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X2RhX3dyaXRlX2JlZ2luJyxEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0V3JpdGVCZWdpbkV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X2RhX3dyaXRlX2VuZCcsRGlza1BhcnNlci5wcm90b3R5cGUuZXh0NFdyaXRlRW5kRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2Jsb2NrX3JxX2lzc3VlJyxEaXNrUGFyc2VyLnByb3RvdHlwZS5ibG9ja1JxSXNzdWVFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignYmxvY2tfcnFfY29tcGxldGUnLERpc2tQYXJzZXIucHJvdG90eXBlLmJsb2NrUnFDb21wbGV0ZUV2ZW50LmJpbmQodGhpcykpO30KLURpc2tQYXJzZXIucHJvdG90eXBlPXtfX3Byb3RvX186UGFyc2VyLnByb3RvdHlwZSxvcGVuQXN5bmNTbGljZTpmdW5jdGlvbih0cyxjYXRlZ29yeSx0aHJlYWROYW1lLHBpZCxrZXksbmFtZSl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZChjYXRlZ29yeSsnOicrdGhyZWFkTmFtZSxwaWQpO3ZhciBhc3luY1NsaWNlQ29uc3RydWN0b3I9dHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcihjYXRlZ29yeSxuYW1lKTt2YXIgc2xpY2U9bmV3IGFzeW5jU2xpY2VDb25zdHJ1Y3RvcihjYXRlZ29yeSxuYW1lLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUpLHRzKTtzbGljZS5zdGFydFRocmVhZD1rdGhyZWFkLnRocmVhZDtpZigha3RocmVhZC5vcGVuQXN5bmNTbGljZXMpe2t0aHJlYWQub3BlbkFzeW5jU2xpY2VzPXt9O30KK0NwdWZyZXFQYXJzZXIucHJvdG90eXBlPXtfX3Byb3RvX186UGFyc2VyLnByb3RvdHlwZSxjcHVmcmVxU2xpY2U6ZnVuY3Rpb24odHMsZXZlbnROYW1lLGNwdSxhcmdzKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdjcHVmcmVxJyk7a3RocmVhZC5vcGVuU2xpY2U9ZXZlbnROYW1lO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLHRzLGFyZ3MsMCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30sY3B1ZnJlcUJvb3N0U2xpY2U6ZnVuY3Rpb24odHMsZXZlbnROYW1lLGFyZ3Mpe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2NwdWZyZXFfYm9vc3QnKTtrdGhyZWFkLm9wZW5TbGljZT1ldmVudE5hbWU7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxrdGhyZWFkLm9wZW5TbGljZSx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksdHMsYXJncywwKTtrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fSxjcHVmcmVxVXBEb3duRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZGF0YT1zcGxpdERhdGEoZXZlbnRCYXNlLmRldGFpbHMpO3RoaXMuY3B1ZnJlcVNsaWNlKHRzLGV2ZW50TmFtZSxkYXRhLmNwdSxkYXRhKTtyZXR1cm4gdHJ1ZTt9LGNwdWZyZXFUYXJnZXRFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBkYXRhPXNwbGl0RGF0YShldmVudEJhc2UuZGV0YWlscyk7dGhpcy5jcHVmcmVxU2xpY2UodHMsZXZlbnROYW1lLGRhdGEuY3B1LGRhdGEpO3JldHVybiB0cnVlO30sY3B1ZnJlcUJvb3N0VW5ib29zdEV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dGhpcy5jcHVmcmVxQm9vc3RTbGljZSh0cyxldmVudE5hbWUse3R5cGU6ZXZlbnRCYXNlLmRldGFpbHN9KTtyZXR1cm4gdHJ1ZTt9fTtQYXJzZXIucmVnaXN0ZXIoQ3B1ZnJlcVBhcnNlcik7cmV0dXJue0NwdWZyZXFQYXJzZXI6Q3B1ZnJlcVBhcnNlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLGZ1bmN0aW9uKCl7dmFyIFBhcnNlcj10ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyO2Z1bmN0aW9uIERpc2tQYXJzZXIoaW1wb3J0ZXIpe1BhcnNlci5jYWxsKHRoaXMsaW1wb3J0ZXIpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3dyaXRlX2JlZ2luJyxEaXNrUGFyc2VyLnByb3RvdHlwZS5mMmZzV3JpdGVCZWdpbkV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3dyaXRlX2VuZCcsRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1dyaXRlRW5kRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2YyZnNfc3luY19maWxlX2VudGVyJyxEaXNrUGFyc2VyLnByb3RvdHlwZS5mMmZzU3luY0ZpbGVFbnRlckV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3N5bmNfZmlsZV9leGl0JyxEaXNrUGFyc2VyLnByb3RvdHlwZS5mMmZzU3luY0ZpbGVFeGl0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4dDRfc3luY19maWxlX2VudGVyJyxEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0U3luY0ZpbGVFbnRlckV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X3N5bmNfZmlsZV9leGl0JyxEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0U3luY0ZpbGVFeGl0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4dDRfZGFfd3JpdGVfYmVnaW4nLERpc2tQYXJzZXIucHJvdG90eXBlLmV4dDRXcml0ZUJlZ2luRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4dDRfZGFfd3JpdGVfZW5kJyxEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0V3JpdGVFbmRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignYmxvY2tfcnFfaXNzdWUnLERpc2tQYXJzZXIucHJvdG90eXBlLmJsb2NrUnFJc3N1ZUV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdibG9ja19ycV9jb21wbGV0ZScsRGlza1BhcnNlci5wcm90b3R5cGUuYmxvY2tScUNvbXBsZXRlRXZlbnQuYmluZCh0aGlzKSk7fQorRGlza1BhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLG9wZW5Bc3luY1NsaWNlOmZ1bmN0aW9uKHRzLGNhdGVnb3J5LHRocmVhZE5hbWUscGlkLGtleSxuYW1lKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKGNhdGVnb3J5Kyc6Jyt0aHJlYWROYW1lLHBpZCk7dmFyIGFzeW5jU2xpY2VDb25zdHJ1Y3Rvcj10ci5tb2RlbC5Bc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKGNhdGVnb3J5LG5hbWUpO3ZhciBzbGljZT1uZXcgYXN5bmNTbGljZUNvbnN0cnVjdG9yKGNhdGVnb3J5LG5hbWUsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcobmFtZSksdHMpO3NsaWNlLnN0YXJ0VGhyZWFkPWt0aHJlYWQudGhyZWFkO2lmKCFrdGhyZWFkLm9wZW5Bc3luY1NsaWNlcyl7a3RocmVhZC5vcGVuQXN5bmNTbGljZXM9e307fQoga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XT1zbGljZTt9LGNsb3NlQXN5bmNTbGljZTpmdW5jdGlvbih0cyxjYXRlZ29yeSx0aHJlYWROYW1lLHBpZCxrZXksYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZChjYXRlZ29yeSsnOicrdGhyZWFkTmFtZSxwaWQpO2lmKGt0aHJlYWQub3BlbkFzeW5jU2xpY2VzKXt2YXIgc2xpY2U9a3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XTtpZihzbGljZSl7c2xpY2UuZHVyYXRpb249dHMtc2xpY2Uuc3RhcnQ7c2xpY2UuYXJncz1hcmdzO3NsaWNlLmVuZFRocmVhZD1rdGhyZWFkLnRocmVhZDtzbGljZS5zdWJTbGljZXM9W25ldyB0ci5tb2RlbC5Bc3luY1NsaWNlKGNhdGVnb3J5LHNsaWNlLnRpdGxlLHNsaWNlLmNvbG9ySWQsc2xpY2Uuc3RhcnQsc2xpY2UuYXJncyxzbGljZS5kdXJhdGlvbildO2t0aHJlYWQudGhyZWFkLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTtkZWxldGUga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XTt9fX0sZjJmc1dyaXRlQmVnaW5FdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vZGV2ID0gXCgoXGQrLFxkKylcKSwgaW5vID0gKFxkKyksIHBvcyA9IChcZCspLCBsZW4gPSAoXGQrKSwgZmxhZ3MgPSAoXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3ZhciBkZXZpY2U9ZXZlbnRbMV07dmFyIGlub2RlPXBhcnNlSW50KGV2ZW50WzJdKTt2YXIgcG9zPXBhcnNlSW50KGV2ZW50WzNdKTt2YXIgbGVuPXBhcnNlSW50KGV2ZW50WzRdKTt2YXIga2V5PWRldmljZSsnLScraW5vZGUrJy0nK3BvcysnLScrbGVuO3RoaXMub3BlbkFzeW5jU2xpY2UodHMsJ2YyZnMnLGV2ZW50QmFzZS50aHJlYWROYW1lLGV2ZW50QmFzZS5waWQsa2V5LCdmMmZzX3dyaXRlJyk7cmV0dXJuIHRydWU7fSxmMmZzV3JpdGVFbmRFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vZGV2ID0gXCgoXGQrLFxkKylcKSwgaW5vID0gKFxkKyksIHBvcyA9IChcZCspLCBsZW4gPSAoXGQrKSwgY29waWVkID0gKFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKIHJldHVybiBmYWxzZTt2YXIgZGV2aWNlPWV2ZW50WzFdO3ZhciBpbm9kZT1wYXJzZUludChldmVudFsyXSk7dmFyIHBvcz1wYXJzZUludChldmVudFszXSk7dmFyIGxlbj1wYXJzZUludChldmVudFs0XSk7dmFyIGVycm9yPXBhcnNlSW50KGV2ZW50WzVdKSE9PWxlbjt2YXIga2V5PWRldmljZSsnLScraW5vZGUrJy0nK3BvcysnLScrbGVuO3RoaXMuY2xvc2VBc3luY1NsaWNlKHRzLCdmMmZzJyxldmVudEJhc2UudGhyZWFkTmFtZSxldmVudEJhc2UucGlkLGtleSx7ZGV2aWNlOmRldmljZSxpbm9kZTppbm9kZSxlcnJvcjplcnJvcn0pO3JldHVybiB0cnVlO30sZXh0NFdyaXRlQmVnaW5FdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vZGV2IChcZCssXGQrKSBpbm8gKFxkKykgcG9zIChcZCspIGxlbiAoXGQrKSBmbGFncyAoXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQpAQCAtMzgwNiwxOSArNDI5MywxOSBAQAogaWYoZXZlbnRbN109PSdNJyl7YWN0aW9uKz0nIG1ldGEnO30KIHZhciBkZXZpY2U9ZXZlbnRbMV07dmFyIHNlY3Rvcj1wYXJzZUludChldmVudFs4XSk7dmFyIG51bVNlY3RvcnM9cGFyc2VJbnQoZXZlbnRbOV0pO3ZhciBrZXk9ZGV2aWNlKyctJytzZWN0b3IrJy0nK251bVNlY3RvcnM7dGhpcy5vcGVuQXN5bmNTbGljZSh0cywnYmxvY2snLGV2ZW50QmFzZS50aHJlYWROYW1lLGV2ZW50QmFzZS5waWQsa2V5LGFjdGlvbik7cmV0dXJuIHRydWU7fSxibG9ja1JxQ29tcGxldGVFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD1uZXcgUmVnRXhwKCcoXFxkKyxcXGQrKSAoRik/KFtEV1JOXSkoRik/KEEpPyhTKT8oTSk/ICcrJ1xcKC4qXFwpIChcXGQrKSBcXCsgKFxcZCspIFxcWyguKilcXF0nKS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIGRldmljZT1ldmVudFsxXTt2YXIgc2VjdG9yPXBhcnNlSW50KGV2ZW50WzhdKTt2YXIgbnVtU2VjdG9ycz1wYXJzZUludChldmVudFs5XSk7dmFyIGVycm9yPXBhcnNlSW50KGV2ZW50WzEwXSk7dmFyIGtleT1kZXZpY2UrJy0nK3NlY3RvcisnLScrbnVtU2VjdG9yczt0aGlzLmNsb3NlQXN5bmNTbGljZSh0cywnYmxvY2snLGV2ZW50QmFzZS50aHJlYWROYW1lLGV2ZW50QmFzZS5waWQsa2V5LHtkZXZpY2U6ZGV2aWNlLHNlY3RvcjpzZWN0b3IsbnVtU2VjdG9yczpudW1TZWN0b3JzLGVycm9yOmVycm9yfSk7cmV0dXJuIHRydWU7fX07UGFyc2VyLnJlZ2lzdGVyKERpc2tQYXJzZXIpO3JldHVybntEaXNrUGFyc2VyOkRpc2tQYXJzZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJyxmdW5jdGlvbigpe3ZhciBQYXJzZXI9dHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjtmdW5jdGlvbiBEcm1QYXJzZXIoaW1wb3J0ZXIpe1BhcnNlci5jYWxsKHRoaXMsaW1wb3J0ZXIpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdkcm1fdmJsYW5rX2V2ZW50JyxEcm1QYXJzZXIucHJvdG90eXBlLnZibGFua0V2ZW50LmJpbmQodGhpcykpO30KLURybVBhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLGRybVZibGFua1NsaWNlOmZ1bmN0aW9uKHRzLGV2ZW50TmFtZSxhcmdzKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdkcm1fdmJsYW5rJyk7a3RocmVhZC5vcGVuU2xpY2U9ZXZlbnROYW1lO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLHRzLGFyZ3MsMCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30sdmJsYW5rRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9L2NydGM9KFxkKyksIHNlcT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQorRHJtUGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsZHJtVmJsYW5rU2xpY2U6ZnVuY3Rpb24odHMsZXZlbnROYW1lLGFyZ3Mpe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2RybV92YmxhbmsnKTtrdGhyZWFkLm9wZW5TbGljZT1ldmVudE5hbWU7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxrdGhyZWFkLm9wZW5TbGljZSx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksdHMsYXJncywwKTtrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fSx2YmxhbmtFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vY3J0Yz0oXGQrKSwgc2VxPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIGNydGM9cGFyc2VJbnQoZXZlbnRbMV0pO3ZhciBzZXE9cGFyc2VJbnQoZXZlbnRbMl0pO3RoaXMuZHJtVmJsYW5rU2xpY2UodHMsJ3ZibGFuazonK2NydGMse2NydGM6Y3J0YyxzZXE6c2VxfSk7cmV0dXJuIHRydWU7fX07UGFyc2VyLnJlZ2lzdGVyKERybVBhcnNlcik7cmV0dXJue0RybVBhcnNlcjpEcm1QYXJzZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJyxmdW5jdGlvbigpe3ZhciBQYXJzZXI9dHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjtmdW5jdGlvbiBJcnFQYXJzZXIoaW1wb3J0ZXIpe1BhcnNlci5jYWxsKHRoaXMsaW1wb3J0ZXIpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpcnFfaGFuZGxlcl9lbnRyeScsSXJxUGFyc2VyLnByb3RvdHlwZS5pcnFIYW5kbGVyRW50cnlFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaXJxX2hhbmRsZXJfZXhpdCcsSXJxUGFyc2VyLnByb3RvdHlwZS5pcnFIYW5kbGVyRXhpdEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdzb2Z0aXJxX3JhaXNlJyxJcnFQYXJzZXIucHJvdG90eXBlLnNvZnRpcnFSYWlzZUV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdzb2Z0aXJxX2VudHJ5JyxJcnFQYXJzZXIucHJvdG90eXBlLnNvZnRpcnFFbnRyeUV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdzb2Z0aXJxX2V4aXQnLElycVBhcnNlci5wcm90b3R5cGUuc29mdGlycUV4aXRFdmVudC5iaW5kKHRoaXMpKTt9CiB2YXIgaXJxSGFuZGxlckVudHJ5UkU9L2lycT0oXGQrKSBuYW1lPSguKykvO3ZhciBpcnFIYW5kbGVyRXhpdFJFPS9pcnE9KFxkKykgcmV0PSguKykvO3ZhciBzb2Z0aXJxUkU9L3ZlYz0oXGQrKSBcW2FjdGlvbj0oLispXF0vO0lycVBhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLGlycUhhbmRsZXJFbnRyeUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PWlycUhhbmRsZXJFbnRyeVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKIHJldHVybiBmYWxzZTt2YXIgaXJxPXBhcnNlSW50KGV2ZW50WzFdKTt2YXIgbmFtZT1ldmVudFsyXTt2YXIgdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2lycXMgY3B1ICcrY3B1TnVtYmVyKTt0aHJlYWQubGFzdEVudHJ5VHM9dHM7dGhyZWFkLmlycU5hbWU9bmFtZTtyZXR1cm4gdHJ1ZTt9LGlycUhhbmRsZXJFeGl0RXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9aXJxSGFuZGxlckV4aXRSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCi1yZXR1cm4gZmFsc2U7dmFyIGlycT1wYXJzZUludChldmVudFsxXSk7dmFyIHJldD1ldmVudFsyXTt2YXIgdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2lycXMgY3B1ICcrY3B1TnVtYmVyKTtpZih0aHJlYWQubGFzdEVudHJ5VHMhPT11bmRlZmluZWQpe3ZhciBkdXJhdGlvbj10cy10aHJlYWQubGFzdEVudHJ5VHM7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyx0aHJlYWQuaXJxTmFtZSx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudFsxXSksdGhyZWFkLmxhc3RFbnRyeVRzLHtyZXQ6cmV0fSxkdXJhdGlvbik7dGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fQorcmV0dXJuIGZhbHNlO3ZhciBpcnE9cGFyc2VJbnQoZXZlbnRbMV0pO3ZhciByZXQ9ZXZlbnRbMl07dmFyIHRocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpcnFzIGNwdSAnK2NwdU51bWJlcik7aWYodGhyZWFkLmxhc3RFbnRyeVRzIT09dW5kZWZpbmVkKXt2YXIgZHVyYXRpb249dHMtdGhyZWFkLmxhc3RFbnRyeVRzO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsdGhyZWFkLmlycU5hbWUsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZXZlbnRbMV0pLHRocmVhZC5sYXN0RW50cnlUcyx7cmV0OnJldH0sZHVyYXRpb24pO3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30KIHRocmVhZC5sYXN0RW50cnlUcz11bmRlZmluZWQ7dGhyZWFkLmlycU5hbWU9dW5kZWZpbmVkO3JldHVybiB0cnVlO30sc29mdGlycVJhaXNlRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXtyZXR1cm4gdHJ1ZTt9LHNvZnRpcnFFbnRyeUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PXNvZnRpcnFSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIGFjdGlvbj1ldmVudFsyXTt2YXIgdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ3NvZnRpcnEgY3B1ICcrY3B1TnVtYmVyKTt0aHJlYWQubGFzdEVudHJ5VHM9dHM7cmV0dXJuIHRydWU7fSxzb2Z0aXJxRXhpdEV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PXNvZnRpcnFSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCi1yZXR1cm4gZmFsc2U7dmFyIHZlYz1wYXJzZUludChldmVudFsxXSk7dmFyIGFjdGlvbj1ldmVudFsyXTt2YXIgdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ3NvZnRpcnEgY3B1ICcrY3B1TnVtYmVyKTtpZih0aHJlYWQubGFzdEVudHJ5VHMhPT11bmRlZmluZWQpe3ZhciBkdXJhdGlvbj10cy10aHJlYWQubGFzdEVudHJ5VHM7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxhY3Rpb24sdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZXZlbnRbMV0pLHRocmVhZC5sYXN0RW50cnlUcyx7dmVjOnZlY30sZHVyYXRpb24pO3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30KK3JldHVybiBmYWxzZTt2YXIgdmVjPXBhcnNlSW50KGV2ZW50WzFdKTt2YXIgYWN0aW9uPWV2ZW50WzJdO3ZhciB0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnc29mdGlycSBjcHUgJytjcHVOdW1iZXIpO2lmKHRocmVhZC5sYXN0RW50cnlUcyE9PXVuZGVmaW5lZCl7dmFyIGR1cmF0aW9uPXRzLXRocmVhZC5sYXN0RW50cnlUczt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLGFjdGlvbix0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudFsxXSksdGhyZWFkLmxhc3RFbnRyeVRzLHt2ZWM6dmVjfSxkdXJhdGlvbik7dGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fQogdGhyZWFkLmxhc3RFbnRyeVRzPXVuZGVmaW5lZDtyZXR1cm4gdHJ1ZTt9fTtQYXJzZXIucmVnaXN0ZXIoSXJxUGFyc2VyKTtyZXR1cm57SXJxUGFyc2VyOklycVBhcnNlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLGZ1bmN0aW9uKCl7dmFyIFBhcnNlcj10ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyO2Z1bmN0aW9uIEV4eW5vc1BhcnNlcihpbXBvcnRlcil7UGFyc2VyLmNhbGwodGhpcyxpbXBvcnRlcik7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4eW5vc19idXNmcmVxX3RhcmdldF9pbnQnLEV4eW5vc1BhcnNlci5wcm90b3R5cGUuYnVzZnJlcVRhcmdldEludEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHlub3NfYnVzZnJlcV90YXJnZXRfbWlmJyxFeHlub3NQYXJzZXIucHJvdG90eXBlLmJ1c2ZyZXFUYXJnZXRNaWZFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZScsRXh5bm9zUGFyc2VyLnByb3RvdHlwZS5wYWdlRmxpcFN0YXRlRXZlbnQuYmluZCh0aGlzKSk7fQotRXh5bm9zUGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsZXh5bm9zQnVzZnJlcVNhbXBsZTpmdW5jdGlvbihuYW1lLHRzLGZyZXF1ZW5jeSl7dmFyIHRhcmdldENwdT10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KDApO3ZhciBjb3VudGVyPXRhcmdldENwdS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsbmFtZSk7aWYoY291bnRlci5udW1TZXJpZXM9PT0wKXtjb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnZnJlcXVlbmN5Jyx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjb3VudGVyLm5hbWUrJy4nKydmcmVxdWVuY3knKSkpO30KK0V4eW5vc1BhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLGV4eW5vc0J1c2ZyZXFTYW1wbGU6ZnVuY3Rpb24obmFtZSx0cyxmcmVxdWVuY3kpe3ZhciB0YXJnZXRDcHU9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUNwdSgwKTt2YXIgY291bnRlcj10YXJnZXRDcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLG5hbWUpO2lmKGNvdW50ZXIubnVtU2VyaWVzPT09MCl7Y291bnRlci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ2ZyZXF1ZW5jeScsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY291bnRlci5uYW1lKycuJysnZnJlcXVlbmN5JykpKTt9CiBjb3VudGVyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7c2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsZnJlcXVlbmN5KTt9KTt9LGJ1c2ZyZXFUYXJnZXRJbnRFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vZnJlcXVlbmN5PShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dGhpcy5leHlub3NCdXNmcmVxU2FtcGxlKCdJTlQgRnJlcXVlbmN5Jyx0cyxwYXJzZUludChldmVudFsxXSkpO3JldHVybiB0cnVlO30sYnVzZnJlcVRhcmdldE1pZkV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PS9mcmVxdWVuY3k9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKLXJldHVybiBmYWxzZTt0aGlzLmV4eW5vc0J1c2ZyZXFTYW1wbGUoJ01JRiBGcmVxdWVuY3knLHRzLHBhcnNlSW50KGV2ZW50WzFdKSk7cmV0dXJuIHRydWU7fSxleHlub3NQYWdlRmxpcFN0YXRlT3BlblNsaWNlOmZ1bmN0aW9uKHRzLHBpcGUsZmIsc3RhdGUpe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2V4eW5vc19mbGlwX3N0YXRlIChwaXBlOicrcGlwZSsnLCBmYjonK2ZiKycpJyk7a3RocmVhZC5vcGVuU2xpY2VUUz10cztrdGhyZWFkLm9wZW5TbGljZT1zdGF0ZTt9LGV4eW5vc1BhZ2VGbGlwU3RhdGVDbG9zZVNsaWNlOmZ1bmN0aW9uKHRzLHBpcGUsZmIsYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6JytwaXBlKycsIGZiOicrZmIrJyknKTtpZihrdGhyZWFkLm9wZW5TbGljZSl7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxrdGhyZWFkLm9wZW5TbGljZSx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksa3RocmVhZC5vcGVuU2xpY2VUUyxhcmdzLHRzLWt0aHJlYWQub3BlblNsaWNlVFMpO2t0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9CityZXR1cm4gZmFsc2U7dGhpcy5leHlub3NCdXNmcmVxU2FtcGxlKCdNSUYgRnJlcXVlbmN5Jyx0cyxwYXJzZUludChldmVudFsxXSkpO3JldHVybiB0cnVlO30sZXh5bm9zUGFnZUZsaXBTdGF0ZU9wZW5TbGljZTpmdW5jdGlvbih0cyxwaXBlLGZiLHN0YXRlKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdleHlub3NfZmxpcF9zdGF0ZSAocGlwZTonK3BpcGUrJywgZmI6JytmYisnKScpO2t0aHJlYWQub3BlblNsaWNlVFM9dHM7a3RocmVhZC5vcGVuU2xpY2U9c3RhdGU7fSxleHlub3NQYWdlRmxpcFN0YXRlQ2xvc2VTbGljZTpmdW5jdGlvbih0cyxwaXBlLGZiLGFyZ3Mpe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2V4eW5vc19mbGlwX3N0YXRlIChwaXBlOicrcGlwZSsnLCBmYjonK2ZiKycpJyk7aWYoa3RocmVhZC5vcGVuU2xpY2Upe3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLGt0aHJlYWQub3BlblNsaWNlVFMsYXJncyx0cy1rdGhyZWFkLm9wZW5TbGljZVRTKTtrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fQoga3RocmVhZC5vcGVuU2xpY2U9dW5kZWZpbmVkO30scGFnZUZsaXBTdGF0ZUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PS9waXBlPShcZCspLCBmYj0oXGQrKSwgc3RhdGU9KC4qKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3ZhciBwaXBlPXBhcnNlSW50KGV2ZW50WzFdKTt2YXIgZmI9cGFyc2VJbnQoZXZlbnRbMl0pO3ZhciBzdGF0ZT1ldmVudFszXTt0aGlzLmV4eW5vc1BhZ2VGbGlwU3RhdGVDbG9zZVNsaWNlKHRzLHBpcGUsZmIse3BpcGU6cGlwZSxmYjpmYn0pO2lmKHN0YXRlIT09J2ZsaXBwZWQnKQogdGhpcy5leHlub3NQYWdlRmxpcFN0YXRlT3BlblNsaWNlKHRzLHBpcGUsZmIsc3RhdGUpO3JldHVybiB0cnVlO319O1BhcnNlci5yZWdpc3RlcihFeHlub3NQYXJzZXIpO3JldHVybntFeHlub3NQYXJzZXI6RXh5bm9zUGFyc2VyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsZnVuY3Rpb24oKXt2YXIgUGFyc2VyPXRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7ZnVuY3Rpb24gR2VzdHVyZVBhcnNlcihpbXBvcnRlcil7UGFyc2VyLmNhbGwodGhpcyxpbXBvcnRlcik7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3RyYWNpbmdfbWFya193cml0ZTpsb2cnLEdlc3R1cmVQYXJzZXIucHJvdG90eXBlLmxvZ0V2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd0cmFjaW5nX21hcmtfd3JpdGU6U3luY0ludGVycHJldCcsR2VzdHVyZVBhcnNlci5wcm90b3R5cGUuc3luY0V2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd0cmFjaW5nX21hcmtfd3JpdGU6SGFuZGxlVGltZXInLEdlc3R1cmVQYXJzZXIucHJvdG90eXBlLnRpbWVyRXZlbnQuYmluZCh0aGlzKSk7fQpAQCAtMzgyOCw4ICs0MzE1LDggQEAKIHJldHVybiB0cnVlO30sc3luY0V2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGlubmVyRXZlbnQ9L15ccyooXHcrKTpccyooXHcrKSQvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO3N3aXRjaChpbm5lckV2ZW50WzFdKXtjYXNlJ3N0YXJ0Jzp0aGlzLmdlc3R1cmVPcGVuU2xpY2UoJ1N5bmNJbnRlcnByZXQnLHRzLHtpbnRlcnByZXRlcjppbm5lckV2ZW50WzJdfSk7YnJlYWs7Y2FzZSdlbmQnOnRoaXMuZ2VzdHVyZUNsb3NlU2xpY2UoJ1N5bmNJbnRlcnByZXQnLHRzKTt9CiByZXR1cm4gdHJ1ZTt9LHRpbWVyRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgaW5uZXJFdmVudD0vXlxzKihcdyspOlxzKihcdyspJC8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7c3dpdGNoKGlubmVyRXZlbnRbMV0pe2Nhc2Unc3RhcnQnOnRoaXMuZ2VzdHVyZU9wZW5TbGljZSgnSGFuZGxlVGltZXInLHRzLHtpbnRlcnByZXRlcjppbm5lckV2ZW50WzJdfSk7YnJlYWs7Y2FzZSdlbmQnOnRoaXMuZ2VzdHVyZUNsb3NlU2xpY2UoJ0hhbmRsZVRpbWVyJyx0cyk7fQogcmV0dXJuIHRydWU7fX07UGFyc2VyLnJlZ2lzdGVyKEdlc3R1cmVQYXJzZXIpO3JldHVybntHZXN0dXJlUGFyc2VyOkdlc3R1cmVQYXJzZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJyxmdW5jdGlvbigpe3ZhciBQYXJzZXI9dHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjtmdW5jdGlvbiBJOTE1UGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZScsSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0Q3JlYXRlRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9iaW5kJyxJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3RCaW5kRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF91bmJpbmQnLEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdEJpbmRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X2NoYW5nZV9kb21haW4nLEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdENoYW5nZURvbWFpbkV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9vYmplY3RfcHJlYWQnLEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdFByZWFkV3JpdGVFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X3B3cml0ZScsSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0UHJlYWRXcml0ZUV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9vYmplY3RfZmF1bHQnLEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdEZhdWx0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9jbGZsdXNoJyxJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3REZXN0cm95RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9kZXN0cm95JyxJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3REZXN0cm95RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JpbmdfZGlzcGF0Y2gnLEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJpbmdEaXNwYXRjaEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yaW5nX2ZsdXNoJyxJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SaW5nRmx1c2hFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmVxdWVzdCcsSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmVxdWVzdEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yZXF1ZXN0X2FkZCcsSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmVxdWVzdEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlJyxJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlJyxJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JlcXVlc3Rfd2FpdF9iZWdpbicsSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmVxdWVzdEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yZXF1ZXN0X3dhaXRfZW5kJyxJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3Jpbmdfd2FpdF9iZWdpbicsSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmluZ1dhaXRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmluZ193YWl0X2VuZCcsSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmluZ1dhaXRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9yZWdfcncnLEk5MTVQYXJzZXIucHJvdG90eXBlLnJlZ1JXRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZmxpcF9yZXF1ZXN0JyxJOTE1UGFyc2VyLnByb3RvdHlwZS5mbGlwRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZmxpcF9jb21wbGV0ZScsSTkxNVBhcnNlci5wcm90b3R5cGUuZmxpcEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpbnRlbF9ncHVfZnJlcV9jaGFuZ2UnLEk5MTVQYXJzZXIucHJvdG90eXBlLmdwdUZyZXF1ZW5jeS5iaW5kKHRoaXMpKTt9Ci1JOTE1UGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsaTkxNUZsaXBPcGVuU2xpY2U6ZnVuY3Rpb24odHMsb2JqLHBsYW5lKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2ZsaXAnKTtrdGhyZWFkLm9wZW5TbGljZVRTPXRzO2t0aHJlYWQub3BlblNsaWNlPSdmbGlwOicrb2JqKycvJytwbGFuZTt9LGk5MTVGbGlwQ2xvc2VTbGljZTpmdW5jdGlvbih0cyxhcmdzKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2ZsaXAnKTtpZihrdGhyZWFkLm9wZW5TbGljZSl7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxrdGhyZWFkLm9wZW5TbGljZSx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksa3RocmVhZC5vcGVuU2xpY2VUUyxhcmdzLHRzLWt0aHJlYWQub3BlblNsaWNlVFMpO2t0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9Ci1rdGhyZWFkLm9wZW5TbGljZT11bmRlZmluZWQ7fSxpOTE1R2VtT2JqZWN0U2xpY2U6ZnVuY3Rpb24odHMsZXZlbnROYW1lLG9iaixhcmdzKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2dlbScpO2t0aHJlYWQub3BlblNsaWNlPWV2ZW50TmFtZSsnOicrb2JqO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLHRzLGFyZ3MsMCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30saTkxNUdlbVJpbmdTbGljZTpmdW5jdGlvbih0cyxldmVudE5hbWUsZGV2LHJpbmcsYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9nZW1fcmluZycpO2t0aHJlYWQub3BlblNsaWNlPWV2ZW50TmFtZSsnOicrZGV2KycuJytyaW5nO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLHRzLGFyZ3MsMCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30saTkxNVJlZ1NsaWNlOmZ1bmN0aW9uKHRzLGV2ZW50TmFtZSxyZWcsYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9yZWcnKTtrdGhyZWFkLm9wZW5TbGljZT1ldmVudE5hbWUrJzonK3JlZzt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLGt0aHJlYWQub3BlblNsaWNlLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSx0cyxhcmdzLDApO2t0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9LGk5MTVGcmVxQ2hhbmdlU2xpY2U6ZnVuY3Rpb24odHMsZXZlbnROYW1lLGFyZ3Mpe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2k5MTVfZ3B1X2ZyZXEnKTtrdGhyZWFkLm9wZW5TbGljZT1ldmVudE5hbWU7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxrdGhyZWFkLm9wZW5TbGljZSx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksdHMsYXJncywwKTtrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fSxnZW1PYmplY3RDcmVhdGVFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vb2JqPShcdyspLCBzaXplPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCitJOTE1UGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsaTkxNUZsaXBPcGVuU2xpY2U6ZnVuY3Rpb24odHMsb2JqLHBsYW5lKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2ZsaXAnKTtrdGhyZWFkLm9wZW5TbGljZVRTPXRzO2t0aHJlYWQub3BlblNsaWNlPSdmbGlwOicrb2JqKycvJytwbGFuZTt9LGk5MTVGbGlwQ2xvc2VTbGljZTpmdW5jdGlvbih0cyxhcmdzKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2ZsaXAnKTtpZihrdGhyZWFkLm9wZW5TbGljZSl7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxrdGhyZWFkLm9wZW5TbGljZSx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksa3RocmVhZC5vcGVuU2xpY2VUUyxhcmdzLHRzLWt0aHJlYWQub3BlblNsaWNlVFMpO2t0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9CitrdGhyZWFkLm9wZW5TbGljZT11bmRlZmluZWQ7fSxpOTE1R2VtT2JqZWN0U2xpY2U6ZnVuY3Rpb24odHMsZXZlbnROYW1lLG9iaixhcmdzKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2dlbScpO2t0aHJlYWQub3BlblNsaWNlPWV2ZW50TmFtZSsnOicrb2JqO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLHRzLGFyZ3MsMCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30saTkxNUdlbVJpbmdTbGljZTpmdW5jdGlvbih0cyxldmVudE5hbWUsZGV2LHJpbmcsYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9nZW1fcmluZycpO2t0aHJlYWQub3BlblNsaWNlPWV2ZW50TmFtZSsnOicrZGV2KycuJytyaW5nO3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLHRzLGFyZ3MsMCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30saTkxNVJlZ1NsaWNlOmZ1bmN0aW9uKHRzLGV2ZW50TmFtZSxyZWcsYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9yZWcnKTtrdGhyZWFkLm9wZW5TbGljZT1ldmVudE5hbWUrJzonK3JlZzt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLGt0aHJlYWQub3BlblNsaWNlLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSx0cyxhcmdzLDApO2t0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9LGk5MTVGcmVxQ2hhbmdlU2xpY2U6ZnVuY3Rpb24odHMsZXZlbnROYW1lLGFyZ3Mpe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2k5MTVfZ3B1X2ZyZXEnKTtrdGhyZWFkLm9wZW5TbGljZT1ldmVudE5hbWU7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyxrdGhyZWFkLm9wZW5TbGljZSx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksdHMsYXJncywwKTtrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fSxnZW1PYmplY3RDcmVhdGVFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vb2JqPShcdyspLCBzaXplPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIG9iaj1ldmVudFsxXTt2YXIgc2l6ZT1wYXJzZUludChldmVudFsyXSk7dGhpcy5pOTE1R2VtT2JqZWN0U2xpY2UodHMsZXZlbnROYW1lLG9iaix7b2JqOm9iaixzaXplOnNpemV9KTtyZXR1cm4gdHJ1ZTt9LGdlbU9iamVjdEJpbmRFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vb2JqPShcdyspLCBvZmZzZXQ9KFx3KyksIHNpemU9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKIHJldHVybiBmYWxzZTt2YXIgb2JqPWV2ZW50WzFdO3ZhciBvZmZzZXQ9ZXZlbnRbMl07dmFyIHNpemU9cGFyc2VJbnQoZXZlbnRbM10pO3RoaXMuaTkxNU9iamVjdEdlbVNsaWNlKHRzLGV2ZW50TmFtZSsnOicrb2JqLHtvYmo6b2JqLG9mZnNldDpvZmZzZXQsc2l6ZTpzaXplfSk7cmV0dXJuIHRydWU7fSxnZW1PYmplY3RDaGFuZ2VEb21haW5FdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vb2JqPShcdyspLCByZWFkPShcdys9Plx3KyksIHdyaXRlPShcdys9Plx3KykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKIHJldHVybiBmYWxzZTt2YXIgb2JqPWV2ZW50WzFdO3ZhciByZWFkPWV2ZW50WzJdO3ZhciB3cml0ZT1ldmVudFszXTt0aGlzLmk5MTVHZW1PYmplY3RTbGljZSh0cyxldmVudE5hbWUsb2JqLHtvYmo6b2JqLHJlYWQ6cmVhZCx3cml0ZTp3cml0ZX0pO3JldHVybiB0cnVlO30sZ2VtT2JqZWN0UHJlYWRXcml0ZUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PS9vYmo9KFx3KyksIG9mZnNldD0oXGQrKSwgbGVuPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCkBAIC0zODUyLDEyICs0MzM5LDEyIEBACiByZXR1cm4gbGluZVJFTm9UaHJlYWQ7cmV0dXJuIG51bGw7fSxsaW5lUkU6bnVsbCxtYWxpRERLRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXtpZih0aGlzLmxpbmVSRT09bnVsbCl7dGhpcy5saW5lUkU9dGhpcy5hdXRvRGV0ZWN0TGluZVJFKGV2ZW50QmFzZS5kZXRhaWxzKTtpZih0aGlzLmxpbmVSRT09bnVsbCkKIHJldHVybiBmYWxzZTt9CiB2YXIgbWFsaUV2ZW50PXRoaXMubGluZVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO3ZhciB0aWQ9KG1hbGlFdmVudFsxXT09PScnPydtYWxpJzptYWxpRXZlbnRbMV0pO3N3aXRjaChtYWxpRXZlbnRbMl0pe2Nhc2UnY3Jvc190cmFjZV9wcmludF9lbnRlcic6dGhpcy5tYWxpRERLT3BlblNsaWNlKHBpZCx0aWQsdHMsbWFsaUV2ZW50WzRdLG1hbGlFdmVudFszXSk7YnJlYWs7Y2FzZSdjcm9zX3RyYWNlX3ByaW50X2V4aXQnOnRoaXMubWFsaURES0Nsb3NlU2xpY2UocGlkLHRpZCx0cyxbXSxtYWxpRXZlbnRbM10pO30KLXJldHVybiB0cnVlO30sZHZmc1NhbXBsZTpmdW5jdGlvbihjb3VudGVyTmFtZSxzZXJpZXNOYW1lLHRzLHMpe3ZhciB2YWx1ZT1wYXJzZUludChzKTt2YXIgY291bnRlcj10aGlzLm1vZGVsXy5rZXJuZWwuZ2V0T3JDcmVhdGVDb3VudGVyKCdEVkZTJyxjb3VudGVyTmFtZSk7aWYoY291bnRlci5udW1TZXJpZXM9PT0wKXtjb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcyhzZXJpZXNOYW1lLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGNvdW50ZXIubmFtZSkpKTt9CityZXR1cm4gdHJ1ZTt9LGR2ZnNTYW1wbGU6ZnVuY3Rpb24oY291bnRlck5hbWUsc2VyaWVzTmFtZSx0cyxzKXt2YXIgdmFsdWU9cGFyc2VJbnQocyk7dmFyIGNvdW50ZXI9dGhpcy5tb2RlbF8ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcignRFZGUycsY291bnRlck5hbWUpO2lmKGNvdW50ZXIubnVtU2VyaWVzPT09MCl7Y291bnRlci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoc2VyaWVzTmFtZSx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjb3VudGVyLm5hbWUpKSk7fQogY291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLHZhbHVlKTt9KTt9LGR2ZnNFdmVudEV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PS91dGlsaXphdGlvbj0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3RoaXMuZHZmc1NhbXBsZSgnRFZGUyBVdGlsaXphdGlvbicsJ3V0aWxpemF0aW9uJyx0cyxldmVudFsxXSk7cmV0dXJuIHRydWU7fSxkdmZzU2V0Q2xvY2tFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vZnJlcXVlbmN5PShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dGhpcy5kdmZzU2FtcGxlKCdEVkZTIEZyZXF1ZW5jeScsJ2ZyZXF1ZW5jeScsdHMsZXZlbnRbMV0pO3JldHVybiB0cnVlO30sZHZmc1NldFZvbHRhZ2VFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vdm9sdGFnZT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3RoaXMuZHZmc1NhbXBsZSgnRFZGUyBWb2x0YWdlJywndm9sdGFnZScsdHMsZXZlbnRbMV0pO3JldHVybiB0cnVlO30saHdjU2FtcGxlOmZ1bmN0aW9uKGNhdCxjb3VudGVyTmFtZSxzZXJpZXNOYW1lLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PS92YWw9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKLXJldHVybiBmYWxzZTt2YXIgdmFsdWU9cGFyc2VJbnQoZXZlbnRbMV0pO3ZhciBjb3VudGVyPXRoaXMubW9kZWxfLmtlcm5lbC5nZXRPckNyZWF0ZUNvdW50ZXIoY2F0LGNvdW50ZXJOYW1lKTtpZihjb3VudGVyLm51bVNlcmllcz09PTApe2NvdW50ZXIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHNlcmllc05hbWUsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY291bnRlci5uYW1lKSkpO30KK3JldHVybiBmYWxzZTt2YXIgdmFsdWU9cGFyc2VJbnQoZXZlbnRbMV0pO3ZhciBjb3VudGVyPXRoaXMubW9kZWxfLmtlcm5lbC5nZXRPckNyZWF0ZUNvdW50ZXIoY2F0LGNvdW50ZXJOYW1lKTtpZihjb3VudGVyLm51bVNlcmllcz09PTApe2NvdW50ZXIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHNlcmllc05hbWUsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY291bnRlci5uYW1lKSkpO30KIGNvdW50ZXIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cyx2YWx1ZSk7fSk7cmV0dXJuIHRydWU7fSxqbVNhbXBsZTpmdW5jdGlvbihjdHJOYW1lLHNlcmllc05hbWUsdHMsZXZlbnRCYXNlKXtyZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6am0nLCdKTTogJytjdHJOYW1lLHNlcmllc05hbWUsdHMsZXZlbnRCYXNlKTt9LGFkZEpNQ291bnRlcjpmdW5jdGlvbihod2NFdmVudE5hbWUsaHdjVGl0bGUpe2Z1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXtyZXR1cm4gdGhpcy5qbVNhbXBsZShod2NUaXRsZSwnY291bnQnLHRzLGV2ZW50QmFzZSk7fQogdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsaGFuZGxlci5iaW5kKHRoaXMpKTt9LGFkZEpNQ3ljbGVzOmZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSxod2NUaXRsZSl7ZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3JldHVybiB0aGlzLmptU2FtcGxlKGh3Y1RpdGxlLCdjeWNsZXMnLHRzLGV2ZW50QmFzZSk7fQogdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsaGFuZGxlci5iaW5kKHRoaXMpKTt9LHRpbGVyU2FtcGxlOmZ1bmN0aW9uKGN0ck5hbWUsc2VyaWVzTmFtZSx0cyxldmVudEJhc2Upe3JldHVybiB0aGlzLmh3Y1NhbXBsZSgnbWFsaTp0aWxlcicsJ1RpbGVyOiAnK2N0ck5hbWUsc2VyaWVzTmFtZSx0cyxldmVudEJhc2UpO30sYWRkVGlsZXJDb3VudGVyOmZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSxod2NUaXRsZSl7ZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3JldHVybiB0aGlzLnRpbGVyU2FtcGxlKGh3Y1RpdGxlLCdjb3VudCcsdHMsZXZlbnRCYXNlKTt9CkBAIC0zODgxLDIxICs0MzY4LDY2IEBACiB2YXIga3N3YXBkV2FrZVJFPS9uaWQ9KFxkKykgb3JkZXI9KFxkKykvO3ZhciBrc3dhcGRTbGVlcFJFPS9uaWQ9KFxkKykvO3ZhciByZWNsYWltQmVnaW5SRT0vb3JkZXI9KFxkKykgbWF5X3dyaXRlcGFnZT1cZCsgZ2ZwX2ZsYWdzPSguKykvO3ZhciByZWNsYWltRW5kUkU9L25yX3JlY2xhaW1lZD0oXGQrKS87TWVtUmVjbGFpbVBhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLG9wZW5Bc3luY1NsaWNlOmZ1bmN0aW9uKHRzLGNhdGVnb3J5LHRocmVhZE5hbWUscGlkLGtleSxuYW1lKXt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKGNhdGVnb3J5Kyc6Jyt0aHJlYWROYW1lLHBpZCk7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5Bc3luY1NsaWNlKGNhdGVnb3J5LG5hbWUsdHIuYy5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcobmFtZSksdHMpO3NsaWNlLnN0YXJ0VGhyZWFkPWt0aHJlYWQudGhyZWFkO2lmKCFrdGhyZWFkLm9wZW5Bc3luY1NsaWNlcyl7a3RocmVhZC5vcGVuQXN5bmNTbGljZXM9e307fQoga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XT1zbGljZTt9LGNsb3NlQXN5bmNTbGljZTpmdW5jdGlvbih0cyxjYXRlZ29yeSx0aHJlYWROYW1lLHBpZCxrZXksYXJncyl7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZChjYXRlZ29yeSsnOicrdGhyZWFkTmFtZSxwaWQpO2lmKGt0aHJlYWQub3BlbkFzeW5jU2xpY2VzKXt2YXIgc2xpY2U9a3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XTtpZihzbGljZSl7c2xpY2UuZHVyYXRpb249dHMtc2xpY2Uuc3RhcnQ7c2xpY2UuYXJncz1hcmdzO3NsaWNlLmVuZFRocmVhZD1rdGhyZWFkLnRocmVhZDtzbGljZS5zdWJTbGljZXM9W25ldyB0ci5tb2RlbC5TbGljZShjYXRlZ29yeSxzbGljZS50aXRsZSxzbGljZS5jb2xvcklkLHNsaWNlLnN0YXJ0LHNsaWNlLmFyZ3Msc2xpY2UuZHVyYXRpb24pXTtrdGhyZWFkLnRocmVhZC5hc3luY1NsaWNlR3JvdXAucHVzaChzbGljZSk7ZGVsZXRlIGt0aHJlYWQub3BlbkFzeW5jU2xpY2VzW2tleV07fX19LGtzd2FwZFdha2U6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9a3N3YXBkV2FrZVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKIHJldHVybiBmYWxzZTt2YXIgbmlkPXBhcnNlSW50KGV2ZW50WzFdKTt2YXIgb3JkZXI9cGFyc2VJbnQoZXZlbnRbMl0pO3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoJ2tzd2FwZDogJytldmVudEJhc2UudGhyZWFkTmFtZSxwaWQscGlkKTtpZihrdGhyZWFkLm9wZW5TbGljZVRTKXtpZihvcmRlcj5rdGhyZWFkLm9yZGVyKXtrdGhyZWFkLm9yZGVyPW9yZGVyO319ZWxzZXtrdGhyZWFkLm9wZW5TbGljZVRTPXRzO2t0aHJlYWQub3JkZXI9b3JkZXI7fQotcmV0dXJuIHRydWU7fSxrc3dhcGRTbGVlcDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoJ2tzd2FwZDogJytldmVudEJhc2UudGhyZWFkTmFtZSxwaWQscGlkKTtpZihrdGhyZWFkLm9wZW5TbGljZVRTKXt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLGV2ZW50QmFzZS50aHJlYWROYW1lLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGV2ZW50QmFzZS50aHJlYWROYW1lKSxrdGhyZWFkLm9wZW5TbGljZVRTLHtvcmRlcjprdGhyZWFkLm9yZGVyfSx0cy1rdGhyZWFkLm9wZW5TbGljZVRTKTtrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fQorcmV0dXJuIHRydWU7fSxrc3dhcGRTbGVlcDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoJ2tzd2FwZDogJytldmVudEJhc2UudGhyZWFkTmFtZSxwaWQscGlkKTtpZihrdGhyZWFkLm9wZW5TbGljZVRTKXt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLGV2ZW50QmFzZS50aHJlYWROYW1lLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGV2ZW50QmFzZS50aHJlYWROYW1lKSxrdGhyZWFkLm9wZW5TbGljZVRTLHtvcmRlcjprdGhyZWFkLm9yZGVyfSx0cy1rdGhyZWFkLm9wZW5TbGljZVRTKTtrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fQoga3RocmVhZC5vcGVuU2xpY2VUUz11bmRlZmluZWQ7a3RocmVhZC5vcmRlcj11bmRlZmluZWQ7cmV0dXJuIHRydWU7fSxyZWNsYWltQmVnaW46ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9cmVjbGFpbUJlZ2luUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3ZhciBvcmRlcj1wYXJzZUludChldmVudFsxXSk7dmFyIGdmcD1ldmVudFsyXTt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKCdkaXJlY3QgcmVjbGFpbTogJytldmVudEJhc2UudGhyZWFkTmFtZSxwaWQscGlkKTtrdGhyZWFkLm9wZW5TbGljZVRTPXRzO2t0aHJlYWQub3JkZXI9b3JkZXI7a3RocmVhZC5nZnA9Z2ZwO3JldHVybiB0cnVlO30scmVjbGFpbUVuZDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD1yZWNsYWltRW5kUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQotcmV0dXJuIGZhbHNlO3ZhciBucl9yZWNsYWltZWQ9cGFyc2VJbnQoZXZlbnRbMV0pO3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoJ2RpcmVjdCByZWNsYWltOiAnK2V2ZW50QmFzZS50aHJlYWROYW1lLHBpZCxwaWQpO2lmKGt0aHJlYWQub3BlblNsaWNlVFMhPT11bmRlZmluZWQpe3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsJ2RpcmVjdCByZWNsYWltJyx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudEJhc2UudGhyZWFkTmFtZSksa3RocmVhZC5vcGVuU2xpY2VUUyx7b3JkZXI6a3RocmVhZC5vcmRlcixnZnA6a3RocmVhZC5nZnAsbnJfcmVjbGFpbWVkOm5yX3JlY2xhaW1lZH0sdHMta3RocmVhZC5vcGVuU2xpY2VUUyk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30KLWt0aHJlYWQub3BlblNsaWNlVFM9dW5kZWZpbmVkO2t0aHJlYWQub3JkZXI9dW5kZWZpbmVkO2t0aHJlYWQuZ2ZwPXVuZGVmaW5lZDtyZXR1cm4gdHJ1ZTt9fTtQYXJzZXIucmVnaXN0ZXIoTWVtUmVjbGFpbVBhcnNlcik7cmV0dXJue01lbVJlY2xhaW1QYXJzZXI6TWVtUmVjbGFpbVBhcnNlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLGZ1bmN0aW9uKCl7dmFyIFBhcnNlcj10ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyO2Z1bmN0aW9uIFBvd2VyUGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncG93ZXJfc3RhcnQnLFBvd2VyUGFyc2VyLnByb3RvdHlwZS5wb3dlclN0YXJ0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3Bvd2VyX2ZyZXF1ZW5jeScsUG93ZXJQYXJzZXIucHJvdG90eXBlLnBvd2VyRnJlcXVlbmN5RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdV9mcmVxdWVuY3knLFBvd2VyUGFyc2VyLnByb3RvdHlwZS5jcHVGcmVxdWVuY3lFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1X2lkbGUnLFBvd2VyUGFyc2VyLnByb3RvdHlwZS5jcHVJZGxlRXZlbnQuYmluZCh0aGlzKSk7fQorcmV0dXJuIGZhbHNlO3ZhciBucl9yZWNsYWltZWQ9cGFyc2VJbnQoZXZlbnRbMV0pO3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoJ2RpcmVjdCByZWNsYWltOiAnK2V2ZW50QmFzZS50aHJlYWROYW1lLHBpZCxwaWQpO2lmKGt0aHJlYWQub3BlblNsaWNlVFMhPT11bmRlZmluZWQpe3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsJ2RpcmVjdCByZWNsYWltJyx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudEJhc2UudGhyZWFkTmFtZSksa3RocmVhZC5vcGVuU2xpY2VUUyx7b3JkZXI6a3RocmVhZC5vcmRlcixnZnA6a3RocmVhZC5nZnAsbnJfcmVjbGFpbWVkOm5yX3JlY2xhaW1lZH0sdHMta3RocmVhZC5vcGVuU2xpY2VUUyk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30KK2t0aHJlYWQub3BlblNsaWNlVFM9dW5kZWZpbmVkO2t0aHJlYWQub3JkZXI9dW5kZWZpbmVkO2t0aHJlYWQuZ2ZwPXVuZGVmaW5lZDtyZXR1cm4gdHJ1ZTt9fTtQYXJzZXIucmVnaXN0ZXIoTWVtUmVjbGFpbVBhcnNlcik7cmV0dXJue01lbVJlY2xhaW1QYXJzZXI6TWVtUmVjbGFpbVBhcnNlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLGZ1bmN0aW9uKCl7dmFyIFBhcnNlcj10ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyO3ZhciBiaW5kZXJUcmFuc1JFPW5ldyBSZWdFeHAoJ3RyYW5zYWN0aW9uPShcXGQrKSBkZXN0X25vZGU9KFxcZCspICcrJ2Rlc3RfcHJvYz0oXFxkKykgZGVzdF90aHJlYWQ9KFxcZCspICcrJ3JlcGx5PShcXGQrKSBmbGFncz0oMHhbMC05YS1mQS1GXSspICcrJ2NvZGU9KDB4WzAtOWEtZkEtRl0rKScpO3ZhciBiaW5kZXJUcmFuc1JlY2VpdmVkUkU9L3RyYW5zYWN0aW9uPShcZCspLztmdW5jdGlvbiBpc0JpbmRlclRocmVhZChuYW1lKXtyZXR1cm4obmFtZS5pbmRleE9mKCdCaW5kZXInKT4tMSk7fQordmFyIFRGX09ORV9XQVk9MHgwMTt2YXIgVEZfUk9PVF9PQkpFQ1Q9MHgwNDt2YXIgVEZfU1RBVFVTX0NPREU9MHgwODt2YXIgVEZfQUNDRVBUX0ZEUz0weDEwO3ZhciBOT19GTEFHUz0wO2Z1bmN0aW9uIGJpbmRlckZsYWdzVG9IdW1hbihudW0pe3ZhciBmbGFnPXBhcnNlSW50KG51bSwxNik7dmFyIHN0cj0nJztpZihmbGFnJlRGX09ORV9XQVkpCitzdHIrPSd0aGlzIGlzIGEgb25lLXdheSBjYWxsOiBhc3luYywgbm8gcmV0dXJuOyAnO2lmKGZsYWcmVEZfUk9PVF9PQkpFQ1QpCitzdHIrPSdjb250ZW50cyBhcmUgdGhlIGNvbXBvbmVudHMgcm9vdCBvYmplY3Q7ICc7aWYoZmxhZyZURl9TVEFUVVNfQ09ERSkKK3N0cis9J2NvbnRlbnRzIGFyZSBhIDMyLWJpdCBzdGF0dXMgY29kZTsgJztpZihmbGFnJlRGX0FDQ0VQVF9GRFMpCitzdHIrPSdhbGxvdyByZXBsaWVzIHdpdGggZmlsZSBkZXNjcmlwdG9yczsgJztpZihmbGFnPT09Tk9fRkxBR1MpCitzdHIrPSdObyBGbGFncyBTZXQnO3JldHVybiBzdHI7fQorZnVuY3Rpb24gaXNSZXBseVRvT3JpZ2luKGNhbGxpbmcsY2FsbGVkKXtyZXR1cm4oY2FsbGVkLmRlc3RfcHJvYz09PWNhbGxpbmcuY2FsbGluZ19waWR8fGNhbGxlZC5kZXN0X3RocmVhZD09PWNhbGxpbmcuY2FsbGluZ19waWQpO30KK2Z1bmN0aW9uIGJpbmRlckNvZGVUb0h1bWFuKGNvZGUpe3JldHVybidKYXZhIExheWVyIERlcGVuZGVudCc7fQorZnVuY3Rpb24gZG9JbnRlcm5hbFNsaWNlKHRyYW5zLHNsaWNlLHRzKXtpZihzbGljZS5zdWJTbGljZXMubGVuZ3RoIT09MCl7c2xpY2Uuc3ViU2xpY2VzWzBdLnN0YXJ0PXRzO3JldHVybiBzbGljZS5zdWJTbGljZXNbMF07fQordmFyIGt0aHJlYWQ9dHJhbnMuY2FsbGluZ19rdGhyZWFkLnRocmVhZDt2YXIgaW50ZXJuYWxfc2xpY2U9a3RocmVhZC5zbGljZUdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKCdiaW5kZXInLHNsaWNlLnRpdGxlLHRzLC4wMDEsMCwwLHNsaWNlLmFyZ3MpO2ludGVybmFsX3NsaWNlLnRpdGxlPXNsaWNlLnRpdGxlO2ludGVybmFsX3NsaWNlLmlkPXNsaWNlLmlkO2ludGVybmFsX3NsaWNlLmNvbG9ySWQ9c2xpY2UuY29sb3JJZDtzbGljZS5zdWJTbGljZXMucHVzaChpbnRlcm5hbF9zbGljZSk7cmV0dXJuIGludGVybmFsX3NsaWNlO30KK2Z1bmN0aW9uIGdlbmVyYXRlQmluZGVyQXJnc0ZvclNsaWNlKHRyYW5zLGNfdGhyZWFkTmFtZSl7cmV0dXJueydUcmFuc2FjdGlvbiBJZCc6dHJhbnMudHJhbnNhY3Rpb25fa2V5LCdEZXN0aW5hdGlvbiBOb2RlJzp0cmFucy5kZXN0X25vZGUsJ0Rlc3RpbmF0aW9uIFByb2Nlc3MnOnRyYW5zLmRlc3RfcHJvYywnRGVzdGluYXRpb24gVGhyZWFkJzp0cmFucy5kZXN0X3RocmVhZCwnRGVzdGluYXRpb24gTmFtZSc6Y190aHJlYWROYW1lLCdSZXBseSB0cmFuc2FjdGlvbj8nOnRyYW5zLmlzX3JlcGx5X3RyYW5zYWN0aW9uLCdGbGFncyc6dHJhbnMuZmxhZ3MrJyAnKworYmluZGVyRmxhZ3NUb0h1bWFuKHRyYW5zLmZsYWdzKSwnQ29kZSc6dHJhbnMuY29kZSsnICcrCitiaW5kZXJDb2RlVG9IdW1hbih0cmFucy5jb2RlKSwnQ2FsbGluZyBQSUQnOnRyYW5zLmNhbGxpbmdfcGlkLCdDYWxsaW5nIHRnaWQnOnRyYW5zLmNhbGxpbmdfa3RocmVhZC50aHJlYWQucGFyZW50LnBpZH07fQorZnVuY3Rpb24gQmluZGVyVHJhbnNhY3Rpb24oZXZlbnRzLGNhbGxpbmdfcGlkLGNhbGxpbmdfdHMsY2FsbGluZ19rdGhyZWFkKXt0aGlzLnRyYW5zYWN0aW9uX2tleT1wYXJzZUludChldmVudHNbMV0pO3RoaXMuZGVzdF9ub2RlPXBhcnNlSW50KGV2ZW50c1syXSk7dGhpcy5kZXN0X3Byb2M9cGFyc2VJbnQoZXZlbnRzWzNdKTt0aGlzLmRlc3RfdGhyZWFkPXBhcnNlSW50KGV2ZW50c1s0XSk7dGhpcy5pc19yZXBseV90cmFuc2FjdGlvbj1wYXJzZUludChldmVudHNbNV0pPT09MT90cnVlOmZhbHNlO3RoaXMuZXhwZWN0X3JlcGx5PSgodGhpcy5pc19yZXBseV90cmFuc2FjdGlvbj09PWZhbHNlKSYmKHBhcnNlSW50KGV2ZW50c1s2XSwxNikmVEZfT05FX1dBWSk9PT0wKTt0aGlzLmZsYWdzPWV2ZW50c1s2XTt0aGlzLmNvZGU9ZXZlbnRzWzddO3RoaXMuY2FsbGluZ19waWQ9Y2FsbGluZ19waWQ7dGhpcy5jYWxsaW5nX3RzPWNhbGxpbmdfdHM7dGhpcy5jYWxsaW5nX2t0aHJlYWQ9Y2FsbGluZ19rdGhyZWFkO30KK2Z1bmN0aW9uIEJpbmRlclBhcnNlcihpbXBvcnRlcil7UGFyc2VyLmNhbGwodGhpcyxpbXBvcnRlcik7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2JpbmRlcl9sb2NrZWQnLEJpbmRlclBhcnNlci5wcm90b3R5cGUuYmluZGVyTG9ja2VkLmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdiaW5kZXJfdW5sb2NrJyxCaW5kZXJQYXJzZXIucHJvdG90eXBlLmJpbmRlclVubG9jay5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignYmluZGVyX2xvY2snLEJpbmRlclBhcnNlci5wcm90b3R5cGUuYmluZGVyTG9jay5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignYmluZGVyX3RyYW5zYWN0aW9uJyxCaW5kZXJQYXJzZXIucHJvdG90eXBlLmJpbmRlclRyYW5zYWN0aW9uLmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdiaW5kZXJfdHJhbnNhY3Rpb25fcmVjZWl2ZWQnLEJpbmRlclBhcnNlci5wcm90b3R5cGUuYmluZGVyVHJhbnNhY3Rpb25SZWNlaXZlZC5iaW5kKHRoaXMpKTt0aGlzLm1vZGVsXz1pbXBvcnRlci5tb2RlbDt0aGlzLmt0aHJlYWRsb29rdXA9e307dGhpcy5pbXBvcnRlcl89aW1wb3J0ZXI7dGhpcy50cmFuc1dhaXRpbmdSZWN2PXt9O3RoaXMuc3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb249e307dGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRD17fTt0aGlzLnJlY2VpdmVkVHJhbnNXYWl0aW5nQ29udmVyc2lvbj17fTt9CitCaW5kZXJQYXJzZXIucHJvdG90eXBlPXtfX3Byb3RvX186UGFyc2VyLnByb3RvdHlwZSxiaW5kZXJMb2NrOmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIHRnaWQ9cGFyc2VJbnQoZXZlbnRCYXNlLnRnaWQpO3RoaXMuZG9OYW1lTWFwcGluZ3MocGlkLHRnaWQsZXZlbnROYW1lLnRocmVhZE5hbWUpO3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXJfLmdldE9yQ3JlYXRlQmluZGVyS2VybmVsVGhyZWFkKGV2ZW50QmFzZS50aHJlYWROYW1lLHRnaWQscGlkKTtrdGhyZWFkLmJpbmRlckF0dGVtcHRMb2NrVFM9dHM7a3RocmVhZC5iaW5kZXJPcGVuVHNBPXRzO3JldHVybiB0cnVlO30sYmluZGVyTG9ja2VkOmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGJpbmRlcl90aHJlYWQ9aXNCaW5kZXJUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUpO3ZhciB0Z2lkLG5hbWU7dmFyIGFzX3NsaWNlO3ZhciBuZWVkX3B1c2g9ZmFsc2U7dmFyIGt0aHJlYWQscnRocmVhZDt0Z2lkPXBhcnNlSW50KGV2ZW50QmFzZS50Z2lkKTtuYW1lPWV2ZW50QmFzZS50aHJlYWROYW1lO2t0aHJlYWQ9dGhpcy5pbXBvcnRlcl8uZ2V0T3JDcmVhdGVCaW5kZXJLZXJuZWxUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUsdGdpZCxwaWQpO3RoaXMuZG9OYW1lTWFwcGluZ3MocGlkLHRnaWQsbmFtZSk7cnRocmVhZD1rdGhyZWFkLnRocmVhZDtrdGhyZWFkLmJpbmRlckxvY2tBcXVpcmVkVFM9dHM7aWYoa3RocmVhZC5iaW5kZXJBdHRlbXB0TG9ja1RTPT09dW5kZWZpbmVkKQorcmV0dXJuIGZhbHNlO3ZhciBhcmdzPXRoaXMuZ2VuZXJhdGVBcmdzRm9yU2xpY2UodGdpZCxwaWQsbmFtZSxrdGhyZWFkKTtydGhyZWFkLnNsaWNlR3JvdXAucHVzaENvbXBsZXRlU2xpY2UoJ2JpbmRlcicsJ2JpbmRlciBsb2NrIHdhaXRpbmcnLGt0aHJlYWQuYmluZGVyQXR0ZW1wdExvY2tUUyx0cy1rdGhyZWFkLmJpbmRlckF0dGVtcHRMb2NrVFMsMCwwLGFyZ3MpO2t0aHJlYWQuYmluZGVyQXR0ZW1wdExvY2tUUz11bmRlZmluZWQ7cmV0dXJuIHRydWU7fSxiaW5kZXJVbmxvY2s6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgdGdpZD1wYXJzZUludChldmVudEJhc2UudGdpZCk7dmFyIGt0aHJlYWQ9dGhpcy5pbXBvcnRlcl8uZ2V0T3JDcmVhdGVCaW5kZXJLZXJuZWxUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUsdGdpZCxwaWQpO2lmKGt0aHJlYWQuYmluZGVyTG9ja0FxdWlyZWRUUz09PXVuZGVmaW5lZCkKK3JldHVybiBmYWxzZTthcmdzPXRoaXMuZ2VuZXJhdGVBcmdzRm9yU2xpY2UodGdpZCxwaWQsZXZlbnRCYXNlLnRocmVhZE5hbWUsa3RocmVhZCk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoQ29tcGxldGVTbGljZSgnYmluZGVyJywnYmluZGVyIGxvY2sgaGVsZCcsa3RocmVhZC5iaW5kZXJMb2NrQXF1aXJlZFRTLHRzLWt0aHJlYWQuYmluZGVyTG9ja0FxdWlyZWRUUywwLDAsYXJncyk7a3RocmVhZC5iaW5kZXJMb2NrQXF1aXJlZFRTPXVuZGVmaW5lZDtyZXR1cm4gdHJ1ZTt9LGJpbmRlclRyYW5zYWN0aW9uOmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PWJpbmRlclRyYW5zUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoZXZlbnQ9PT11bmRlZmluZWQpCityZXR1cm4gZmFsc2U7dmFyIHRnaWQ9cGFyc2VJbnQoZXZlbnRCYXNlLnRnaWQpO3RoaXMuZG9OYW1lTWFwcGluZ3MocGlkLHRnaWQsZXZlbnRCYXNlLnRocmVhZE5hbWUpO3ZhciBrdGhyZWFkO2t0aHJlYWQ9dGhpcy5pbXBvcnRlcl8uZ2V0T3JDcmVhdGVCaW5kZXJLZXJuZWxUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUsdGdpZCxwaWQpO3ZhciB0cmFucz1uZXcgQmluZGVyVHJhbnNhY3Rpb24oZXZlbnQscGlkLHRzLGt0aHJlYWQpO3ZhciBhcmdzPWdlbmVyYXRlQmluZGVyQXJnc0ZvclNsaWNlKHRyYW5zLGV2ZW50QmFzZS50aHJlYWROYW1lKTt2YXIgcHJpb3JfcmVjZWl2ZT10aGlzLmdldFByaW9yUmVjZWl2ZU9uUElEKHBpZCk7aWYocHJpb3JfcmVjZWl2ZSE9PWZhbHNlKXtyZXR1cm4gdGhpcy5tb2RlbFByaW9yUmVjZWl2ZShwcmlvcl9yZWNlaXZlLHRzLHBpZCx0Z2lkLGt0aHJlYWQsdHJhbnMsYXJncyxldmVudCk7fQordmFyIHJlY3Vyc2l2ZV90cmFucz10aGlzLmdldFJlY3Vyc2l2ZVRyYW5zYWN0aW9uTmVlZGluZ0NvbXBsZXRpb24ocGlkKTtpZihyZWN1cnNpdmVfdHJhbnMhPT1mYWxzZSkKK3JldHVybiB0aGlzLm1vZGVsUmVjdXJzaXZlVHJhbnNhY3Rpb25zKHJlY3Vyc2l2ZV90cmFucyx0cyxwaWQsa3RocmVhZCx0cmFucyxhcmdzKTt2YXIgc2xpY2U9a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoQ29tcGxldGVTbGljZSgnYmluZGVyJywnJyx0cywuMDMsMCwwLGFyZ3MpO3NsaWNlLmNvbG9ySWQ9dHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcodHMudG9TdHJpbmcoKSk7dHJhbnMuc2xpY2U9c2xpY2U7aWYodHJhbnMuZXhwZWN0X3JlcGx5KQorc2xpY2UudGl0bGU9J2JpbmRlciB0cmFuc2FjdGlvbic7ZWxzZQorc2xpY2UudGl0bGU9J2JpbmRlciB0cmFuc2FjdGlvbiBhc3luYyc7dGhpcy5hZGRUcmFuc2FjdGlvbldhaXRpbmdGb3JSZWN2KHRyYW5zLnRyYW5zYWN0aW9uX2tleSx0cmFucyk7cmV0dXJuIHRydWU7fSxiaW5kZXJUcmFuc2FjdGlvblJlY2VpdmVkOmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PWJpbmRlclRyYW5zUmVjZWl2ZWRSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZihldmVudD09PXVuZGVmaW5lZCkKK3JldHVybiBmYWxzZTt2YXIgdHJhbnNhY3Rpb25rZXk9cGFyc2VJbnQoZXZlbnRbMV0pO3ZhciB0Z2lkPXBhcnNlSW50KGV2ZW50QmFzZS50Z2lkKTt2YXIga3RocmVhZDtrdGhyZWFkPXRoaXMuaW1wb3J0ZXJfLmdldE9yQ3JlYXRlQmluZGVyS2VybmVsVGhyZWFkKGV2ZW50QmFzZS50aHJlYWROYW1lLHRnaWQscGlkKTt2YXIgc3luY0NvbXBsZXRlPXRoaXMuZ2V0U3luY1RyYW5zTmVlZHNDb21wbGV0aW9uKHRyYW5zYWN0aW9ua2V5KTtpZihzeW5jQ29tcGxldGUhPT1mYWxzZSl7dmFyIHN5bmNfdHJhbnM9c3luY0NvbXBsZXRlWzBdO3ZhciBzeW5jX3NsaWNlPXN5bmNfdHJhbnMuc2xpY2U7dmFyIHJlc3BvbnNlX3RyYW5zPXN5bmNDb21wbGV0ZVsxXTt2YXIgcmVzcG9uc2Vfc2xpY2U9cmVzcG9uc2VfdHJhbnMuc2xpY2U7c3luY19zbGljZS5kdXJhdGlvbj10cy1zeW5jX3NsaWNlLnN0YXJ0O3ZhciBzeW5jX2ludGVybmFsPWRvSW50ZXJuYWxTbGljZShzeW5jX3RyYW5zLHN5bmNfc2xpY2UsdHMpO3ZhciByZXNwb25zZV90cz1yZXNwb25zZV9zbGljZS5zdGFydCtyZXNwb25zZV9zbGljZS5kdXJhdGlvbjt2YXIgcmVzcG9uc2VfaW50ZXJuYWw9ZG9JbnRlcm5hbFNsaWNlKHJlc3BvbnNlX3RyYW5zLHJlc3BvbnNlX3NsaWNlLHJlc3BvbnNlX3RzKTtpZihyZXNwb25zZV9zbGljZS5vdXRGbG93RXZlbnRzLmxlbmd0aD09PTB8fHN5bmNfc2xpY2UuaW5GbG93RXZlbnRzLmxlbmd0aD09PTApe3ZhciBmbG93PXRoaXMuZ2VuZXJhdGVGbG93KHJlc3BvbnNlX2ludGVybmFsLHN5bmNfaW50ZXJuYWwscmVzcG9uc2VfdHJhbnMsc3luY190cmFucyk7c3luY19zbGljZS5pbkZsb3dFdmVudHMucHVzaChmbG93KTtyZXNwb25zZV9zbGljZS5vdXRGbG93RXZlbnRzLnB1c2goZmxvdyk7dGhpcy5tb2RlbF8uZmxvd0V2ZW50cy5wdXNoKGZsb3cpO30KK2Zvcih2YXIgaT0xO2k8c3luY19zbGljZS5pbkZsb3dFdmVudHMubGVuZ3RoO2krKyl7c3luY19zbGljZS5pbkZsb3dFdmVudHNbaV0uZHVyYXRpb249dHMtc3luY19zbGljZS5pbkZsb3dFdmVudHNbaV0uc3RhcnQ7fQorcmV0dXJuIHRydWU7fQordmFyIHRyX2Zvcl9yZWN2PXRoaXMuZ2V0VHJhbnNhY3Rpb25XYWl0aW5nRm9yUmVjdih0cmFuc2FjdGlvbmtleSk7aWYodHJfZm9yX3JlY3YhPT1mYWxzZSl7aWYoIXRyX2Zvcl9yZWN2LmV4cGVjdF9yZXBseSl7dmFyIGFyZ3M9Z2VuZXJhdGVCaW5kZXJBcmdzRm9yU2xpY2UodHJfZm9yX3JlY3YsZXZlbnRCYXNlLnRocmVhZE5hbWUpO3ZhciBzbGljZT1rdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKCdiaW5kZXInLCdiaW5kZXIgQXN5bmMgcmVjdicsdHMsLjAzLDAsMCxhcmdzKTt2YXIgZmFrZV9ldmVudD1bMCwwLDAsMCwwLDAsMF07dmFyIGZha2VfdHJhbnM9bmV3IEJpbmRlclRyYW5zYWN0aW9uKGZha2VfZXZlbnQscGlkLHRzLGt0aHJlYWQpO3ZhciBmbG93PXRoaXMuZ2VuZXJhdGVGbG93KHRyX2Zvcl9yZWN2LnNsaWNlLHNsaWNlLHRyX2Zvcl9yZWN2LGZha2VfdHJhbnMpO3RoaXMubW9kZWxfLmZsb3dFdmVudHMucHVzaChmbG93KTt0cl9mb3JfcmVjdi5zbGljZS50aXRsZT0nYmluZGVyIHRyYW5zYWN0aW9uIGFzeW5jJzt0cl9mb3JfcmVjdi5zbGljZS5kdXJhdGlvbj0uMDM7cmV0dXJuIHRydWU7fQordHJfZm9yX3JlY3Yuc2xpY2UudGl0bGU9J2JpbmRlciB0cmFuc2FjdGlvbic7dGhpcy5zZXRDdXJyZW50UmVjZWl2ZU9uUElEKHBpZCxbdHMsdHJfZm9yX3JlY3ZdKTtyZXR1cm4gdHJ1ZTt9CityZXR1cm4gZmFsc2U7fSxtb2RlbFJlY3Vyc2l2ZVRyYW5zYWN0aW9uczpmdW5jdGlvbihyZWN1cnNpdmVfdHJhbnMsdHMscGlkLGt0aHJlYWQsdHJhbnMsYXJncyl7dmFyIHJlY3Vyc2l2ZV9zbGljZT1yZWN1cnNpdmVfdHJhbnNbMV0uc2xpY2U7dmFyIG9yaWdfc2xpY2U9cmVjdXJzaXZlX3RyYW5zWzBdLnNsaWNlO3JlY3Vyc2l2ZV9zbGljZS5kdXJhdGlvbj10cy1yZWN1cnNpdmVfc2xpY2Uuc3RhcnQ7dHJhbnMuc2xpY2U9cmVjdXJzaXZlX3NsaWNlO2lmKHRyYW5zLmlzX3JlcGx5X3RyYW5zYWN0aW9uKXtvcmlnX3NsaWNlLmR1cmF0aW9uPXRzLW9yaWdfc2xpY2Uuc3RhcnQ7dGhpcy5hZGRTeW5jVHJhbnNOZWVkaW5nQ29tcGxldGlvbih0cmFucy50cmFuc2FjdGlvbl9rZXkscmVjdXJzaXZlX3RyYW5zKTtpZihpc1JlcGx5VG9PcmlnaW4ocmVjdXJzaXZlX3RyYW5zWzBdLHRyYW5zKSkKK3RoaXMucmVtb3ZlUmVjdXJzaXZlVHJhbnNhY3Rpb24ocGlkKTt9ZWxzZXt2YXIgc2xpY2U9a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoQ29tcGxldGVTbGljZSgnYmluZGVyJywnJyx0cywuMDMsMCwwLGFyZ3MpO3RyYW5zLnNsaWNlPXNsaWNlO3RoaXMuYWRkVHJhbnNhY3Rpb25XYWl0aW5nRm9yUmVjdih0cmFucy50cmFuc2FjdGlvbl9rZXksdHJhbnMpO30KK3JldHVybiB0cnVlO30sbW9kZWxQcmlvclJlY2VpdmU6ZnVuY3Rpb24ocHJpb3JfcmVjZWl2ZSx0cyxwaWQsdGdpZCxrdGhyZWFkLHRyYW5zLGFyZ3MsZXZlbnQpe3ZhciBjYWxsZWVfc2xpY2U9cHJpb3JfcmVjZWl2ZVsxXS5zbGljZTt2YXIgY2FsbGVlX3RyYW5zPXByaW9yX3JlY2VpdmVbMV07dmFyIHJlY3ZfdHM9cHJpb3JfcmVjZWl2ZVswXTt2YXIgc2xpY2U9a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoQ29tcGxldGVTbGljZSgnYmluZGVyJywnJyxyZWN2X3RzLHRzLXJlY3ZfdHMsMCwwLGFyZ3MpO3ZhciBmbG93PXRoaXMuZ2VuZXJhdGVGbG93KGNhbGxlZV9zbGljZSxzbGljZSxjYWxsZWVfdHJhbnMsdHJhbnMpO3RoaXMubW9kZWxfLmZsb3dFdmVudHMucHVzaChmbG93KTt0cmFucy5zbGljZT1zbGljZTtpZih0cmFucy5pc19yZXBseV90cmFuc2FjdGlvbil7c2xpY2UudGl0bGU9J2JpbmRlciByZXBseSc7dGhpcy5hZGRTeW5jVHJhbnNOZWVkaW5nQ29tcGxldGlvbih0cmFucy50cmFuc2FjdGlvbl9rZXksW2NhbGxlZV90cmFucyx0cmFuc10pO31lbHNle3NsaWNlLnRpdGxlPSdiaW5kZXIgcmVwbHknO3ZhciB0cmFuczE9bmV3IEJpbmRlclRyYW5zYWN0aW9uKGV2ZW50LHBpZCx0cyxrdGhyZWFkKTtzbGljZT1rdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKCdiaW5kZXInLCdiaW5kZXIgdHJhbnNhY3Rpb24nLHJlY3ZfdHMsKHRzLXJlY3ZfdHMpLDAsMCxhcmdzKTtpZighdHJhbnMuZXhwZWN0X3JlcGx5KXtzbGljZS50aXRsZT0nYmluZGVyIHRyYW5zYWN0aW9uIGFzeW5jJztzbGljZS5kdXJhdGlvbj0uMDM7fWVsc2V7fQordHJhbnMxLnNsaWNlPXNsaWNlO3RoaXMuYWRkUmVjdXJzaXZlU3luY1RyYW5zTmVlZGluZ0NvbXBsZXRpb24ocGlkLFtjYWxsZWVfdHJhbnMsdHJhbnNdKTt0aGlzLmFkZFRyYW5zYWN0aW9uV2FpdGluZ0ZvclJlY3YodHJhbnMudHJhbnNhY3Rpb25fa2V5LHRyYW5zMSk7fQorcmV0dXJuIHRydWU7fSxnZXRSZWN1cnNpdmVUcmFuc2FjdGlvbk5lZWRpbmdDb21wbGV0aW9uOmZ1bmN0aW9uKHBpZCl7aWYodGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRFtwaWRdPT09dW5kZWZpbmVkKQorcmV0dXJuIGZhbHNlO3ZhciBsZW49dGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRFtwaWRdLmxlbmd0aDtpZihsZW49PT0wKQorcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLnJlY3Vyc2l2ZVN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uX0J5UElEW3BpZF1bbGVuLTFdO30sYWRkUmVjdXJzaXZlU3luY1RyYW5zTmVlZGluZ0NvbXBsZXRpb246ZnVuY3Rpb24ocGlkLHR1cGxlKXtpZih0aGlzLnJlY3Vyc2l2ZVN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uX0J5UElEW3BpZF09PT11bmRlZmluZWQpCit0aGlzLnJlY3Vyc2l2ZVN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uX0J5UElEW3BpZF09W107dGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRFtwaWRdLnB1c2godHVwbGUpO30scmVtb3ZlUmVjdXJzaXZlVHJhbnNhY3Rpb246ZnVuY3Rpb24ocGlkKXt2YXIgbGVuPXRoaXMucmVjdXJzaXZlU3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb25fQnlQSURbcGlkXS5sZW5ndGg7aWYobGVuPT09MCl7ZGVsZXRlIHRoaXMucmVjdXJzaXZlU3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb25fQnlQSURbcGlkXTtyZXR1cm47fQordGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRFtwaWRdLnNwbGljZShsZW4tMSwxKTt9LHNldEN1cnJlbnRSZWNlaXZlT25QSUQ6ZnVuY3Rpb24ocGlkLHR1cGxlKXtpZih0aGlzLnJlY2VpdmVkVHJhbnNXYWl0aW5nQ29udmVyc2lvbltwaWRdPT09dW5kZWZpbmVkKXt0aGlzLnJlY2VpdmVkVHJhbnNXYWl0aW5nQ29udmVyc2lvbltwaWRdPVtdO30KK3RoaXMucmVjZWl2ZWRUcmFuc1dhaXRpbmdDb252ZXJzaW9uW3BpZF0ucHVzaCh0dXBsZSk7fSxnZXRQcmlvclJlY2VpdmVPblBJRDpmdW5jdGlvbihwaWQpe2lmKHRoaXMucmVjZWl2ZWRUcmFuc1dhaXRpbmdDb252ZXJzaW9uW3BpZF09PT11bmRlZmluZWQpCityZXR1cm4gZmFsc2U7dmFyIGxlbj10aGlzLnJlY2VpdmVkVHJhbnNXYWl0aW5nQ29udmVyc2lvbltwaWRdLmxlbmd0aDtpZihsZW49PT0wKQorcmV0dXJuIGZhbHNlO3JldHVybiB0aGlzLnJlY2VpdmVkVHJhbnNXYWl0aW5nQ29udmVyc2lvbltwaWRdLnNwbGljZShsZW4tMSwxKVswXTt9LGFkZFN5bmNUcmFuc05lZWRpbmdDb21wbGV0aW9uOmZ1bmN0aW9uKHRyYW5zYWN0aW9ua2V5LHR1cGxlKXt2YXIgZGljdD10aGlzLnN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uO2RpY3RbdHJhbnNhY3Rpb25rZXldPXR1cGxlO30sZ2V0U3luY1RyYW5zTmVlZHNDb21wbGV0aW9uOmZ1bmN0aW9uKHRyYW5zYWN0aW9ua2V5KXt2YXIgcmV0PXRoaXMuc3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb25bdHJhbnNhY3Rpb25rZXldO2lmKHJldD09PXVuZGVmaW5lZCkKK3JldHVybiBmYWxzZTtkZWxldGUgdGhpcy5zeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvblt0cmFuc2FjdGlvbmtleV07cmV0dXJuIHJldDt9LGdldFRyYW5zYWN0aW9uV2FpdGluZ0ZvclJlY3Y6ZnVuY3Rpb24odHJhbnNhY3Rpb25rZXkpe3ZhciByZXQ9dGhpcy50cmFuc1dhaXRpbmdSZWN2W3RyYW5zYWN0aW9ua2V5XTtpZihyZXQ9PT11bmRlZmluZWQpCityZXR1cm4gZmFsc2U7ZGVsZXRlIHRoaXMudHJhbnNXYWl0aW5nUmVjdlt0cmFuc2FjdGlvbmtleV07cmV0dXJuIHJldDt9LGFkZFRyYW5zYWN0aW9uV2FpdGluZ0ZvclJlY3Y6ZnVuY3Rpb24odHJhbnNhY3Rpb25rZXksdHJhbnNhY3Rpb24pe3RoaXMudHJhbnNXYWl0aW5nUmVjdlt0cmFuc2FjdGlvbmtleV09dHJhbnNhY3Rpb247fSxnZW5lcmF0ZUZsb3c6ZnVuY3Rpb24oZnJvbSx0byxmcm9tX3RyYW5zLHRvX3RyYW5zKXt2YXIgdGl0bGU9J1RyYW5zYWN0aW9uIGZyb20gOiAnKwordGhpcy5waWQybmFtZShmcm9tX3RyYW5zLmNhbGxpbmdfcGlkKSsnIEZyb20gUElEOiAnK2Zyb21fdHJhbnMuY2FsbGluZ19waWQrJyB0byBwaWQ6ICcrCit0b190cmFucy5jYWxsaW5nX3BpZCsnIFRocmVhZCBOYW1lOiAnK3RoaXMucGlkMm5hbWUodG9fdHJhbnMuY2FsbGluZ19waWQpO3ZhciB0cz1mcm9tLnN0YXJ0O3ZhciBmbG93PW5ldyB0ci5tb2RlbC5GbG93RXZlbnQoJ2JpbmRlcicsdHMsdGl0bGUsMSx0cyxbXSk7Zmxvdy5zdGFydFNsaWNlPWZyb207Zmxvdy5lbmRTbGljZT10bztmbG93LnN0YXJ0PWZyb20uc3RhcnQ7Zmxvdy5kdXJhdGlvbj10by5zdGFydC10cztmbG93LmNvbG9ySWQ9MTtmcm9tLm91dEZsb3dFdmVudHMucHVzaChmbG93KTt0by5pbkZsb3dFdmVudHMucHVzaChmbG93KTtyZXR1cm4gZmxvdzt9LGdlbmVyYXRlQXJnc0ZvclNsaWNlOmZ1bmN0aW9uKHRnaWQscGlkLG5hbWUsa3RocmVhZCl7cmV0dXJueydUaHJlYWQgTmFtZSc6bmFtZSwncGlkJzpwaWQsJ2dpZCc6dGdpZH07fSxwaWQybmFtZTpmdW5jdGlvbihwaWQpe3JldHVybiB0aGlzLmt0aHJlYWRsb29rdXBbcGlkXTt9LGRvTmFtZU1hcHBpbmdzOmZ1bmN0aW9uKHBpZCx0Z2lkLG5hbWUpe3RoaXMucmVnaXN0ZXJQaWROYW1lKHBpZCxuYW1lKTt0aGlzLnJlZ2lzdGVyUGlkTmFtZSh0Z2lkLG5hbWUpO30scmVnaXN0ZXJQaWROYW1lOmZ1bmN0aW9uKHBpZCxuYW1lKXtpZih0aGlzLnBpZDJuYW1lKHBpZCk9PT11bmRlZmluZWQpCit0aGlzLmt0aHJlYWRsb29rdXBbcGlkXT1uYW1lO319O1BhcnNlci5yZWdpc3RlcihCaW5kZXJQYXJzZXIpO3JldHVybntCaW5kZXJQYXJzZXI6QmluZGVyUGFyc2VyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsZnVuY3Rpb24oKXt2YXIgUGFyc2VyPXRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7ZnVuY3Rpb24gUG93ZXJQYXJzZXIoaW1wb3J0ZXIpe1BhcnNlci5jYWxsKHRoaXMsaW1wb3J0ZXIpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdwb3dlcl9zdGFydCcsUG93ZXJQYXJzZXIucHJvdG90eXBlLnBvd2VyU3RhcnRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncG93ZXJfZnJlcXVlbmN5JyxQb3dlclBhcnNlci5wcm90b3R5cGUucG93ZXJGcmVxdWVuY3lFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1X2ZyZXF1ZW5jeScsUG93ZXJQYXJzZXIucHJvdG90eXBlLmNwdUZyZXF1ZW5jeUV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVfaWRsZScsUG93ZXJQYXJzZXIucHJvdG90eXBlLmNwdUlkbGVFdmVudC5iaW5kKHRoaXMpKTt9CiBQb3dlclBhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLGNwdVN0YXRlU2xpY2U6ZnVuY3Rpb24odHMsdGFyZ2V0Q3B1TnVtYmVyLGV2ZW50VHlwZSxjcHVTdGF0ZSl7dmFyIHRhcmdldENwdT10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KHRhcmdldENwdU51bWJlcik7dmFyIHBvd2VyQ291bnRlcjtpZihldmVudFR5cGUhPScxJyl7dGhpcy5pbXBvcnRlci5tb2RlbC5pbXBvcnRXYXJuaW5nKHt0eXBlOidwYXJzZV9lcnJvcicsbWVzc2FnZTonRG9uXCd0IHVuZGVyc3RhbmQgcG93ZXJfc3RhcnQgZXZlbnRzIG9mICcrJ3R5cGUgJytldmVudFR5cGV9KTtyZXR1cm47fQotcG93ZXJDb3VudGVyPXRhcmdldENwdS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsJ0MtU3RhdGUnKTtpZihwb3dlckNvdW50ZXIubnVtU2VyaWVzPT09MCl7cG93ZXJDb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnc3RhdGUnLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHBvd2VyQ291bnRlci5uYW1lKycuJysnc3RhdGUnKSkpO30KLXBvd2VyQ291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLGNwdVN0YXRlKTt9KTt9LGNwdUlkbGVTbGljZTpmdW5jdGlvbih0cyx0YXJnZXRDcHVOdW1iZXIsY3B1U3RhdGUpe3ZhciB0YXJnZXRDcHU9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUNwdSh0YXJnZXRDcHVOdW1iZXIpO3ZhciBwb3dlckNvdW50ZXI9dGFyZ2V0Q3B1LmdldE9yQ3JlYXRlQ291bnRlcignJywnQy1TdGF0ZScpO2lmKHBvd2VyQ291bnRlci5udW1TZXJpZXM9PT0wKXtwb3dlckNvdW50ZXIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdzdGF0ZScsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcocG93ZXJDb3VudGVyLm5hbWUpKSk7fQotdmFyIHZhbD0oY3B1U3RhdGUhPTQyOTQ5NjcyOTU/Y3B1U3RhdGUrMTowKTtwb3dlckNvdW50ZXIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKXtzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cyx2YWwpO30pO30sY3B1RnJlcXVlbmN5U2xpY2U6ZnVuY3Rpb24odHMsdGFyZ2V0Q3B1TnVtYmVyLHBvd2VyU3RhdGUpe3ZhciB0YXJnZXRDcHU9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUNwdSh0YXJnZXRDcHVOdW1iZXIpO3ZhciBwb3dlckNvdW50ZXI9dGFyZ2V0Q3B1LmdldE9yQ3JlYXRlQ291bnRlcignJywnQ2xvY2sgRnJlcXVlbmN5Jyk7aWYocG93ZXJDb3VudGVyLm51bVNlcmllcz09PTApe3Bvd2VyQ291bnRlci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3N0YXRlJyx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhwb3dlckNvdW50ZXIubmFtZSsnLicrJ3N0YXRlJykpKTt9Citwb3dlckNvdW50ZXI9dGFyZ2V0Q3B1LmdldE9yQ3JlYXRlQ291bnRlcignJywnQy1TdGF0ZScpO2lmKHBvd2VyQ291bnRlci5udW1TZXJpZXM9PT0wKXtwb3dlckNvdW50ZXIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdzdGF0ZScsdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcocG93ZXJDb3VudGVyLm5hbWUrJy4nKydzdGF0ZScpKSk7fQorcG93ZXJDb3VudGVyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcyl7c2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsY3B1U3RhdGUpO30pO30sY3B1SWRsZVNsaWNlOmZ1bmN0aW9uKHRzLHRhcmdldENwdU51bWJlcixjcHVTdGF0ZSl7dmFyIHRhcmdldENwdT10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KHRhcmdldENwdU51bWJlcik7dmFyIHBvd2VyQ291bnRlcj10YXJnZXRDcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCdDLVN0YXRlJyk7aWYocG93ZXJDb3VudGVyLm51bVNlcmllcz09PTApe3Bvd2VyQ291bnRlci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3N0YXRlJyx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhwb3dlckNvdW50ZXIubmFtZSkpKTt9Cit2YXIgdmFsPShjcHVTdGF0ZSE9NDI5NDk2NzI5NT9jcHVTdGF0ZSsxOjApO3Bvd2VyQ291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLHZhbCk7fSk7fSxjcHVGcmVxdWVuY3lTbGljZTpmdW5jdGlvbih0cyx0YXJnZXRDcHVOdW1iZXIscG93ZXJTdGF0ZSl7dmFyIHRhcmdldENwdT10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KHRhcmdldENwdU51bWJlcik7dmFyIHBvd2VyQ291bnRlcj10YXJnZXRDcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCdDbG9jayBGcmVxdWVuY3knKTtpZihwb3dlckNvdW50ZXIubnVtU2VyaWVzPT09MCl7cG93ZXJDb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnc3RhdGUnLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHBvd2VyQ291bnRlci5uYW1lKycuJysnc3RhdGUnKSkpO30KIHBvd2VyQ291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLHBvd2VyU3RhdGUpO30pO30scG93ZXJTdGFydEV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PS90eXBlPShcZCspIHN0YXRlPShcZCkgY3B1X2lkPShcZCkrLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIHRhcmdldENwdU51bWJlcj1wYXJzZUludChldmVudFszXSk7dmFyIGNwdVN0YXRlPXBhcnNlSW50KGV2ZW50WzJdKTt0aGlzLmNwdVN0YXRlU2xpY2UodHMsdGFyZ2V0Q3B1TnVtYmVyLGV2ZW50WzFdLGNwdVN0YXRlKTtyZXR1cm4gdHJ1ZTt9LHBvd2VyRnJlcXVlbmN5RXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9L3R5cGU9KFxkKykgc3RhdGU9KFxkKykgY3B1X2lkPShcZCkrLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIHRhcmdldENwdU51bWJlcj1wYXJzZUludChldmVudFszXSk7dmFyIHBvd2VyU3RhdGU9cGFyc2VJbnQoZXZlbnRbMl0pO3RoaXMuY3B1RnJlcXVlbmN5U2xpY2UodHMsdGFyZ2V0Q3B1TnVtYmVyLHBvd2VyU3RhdGUpO3JldHVybiB0cnVlO30sY3B1RnJlcXVlbmN5RXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9L3N0YXRlPShcZCspIGNwdV9pZD0oXGQpKy8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3ZhciB0YXJnZXRDcHVOdW1iZXI9cGFyc2VJbnQoZXZlbnRbMl0pO3ZhciBwb3dlclN0YXRlPXBhcnNlSW50KGV2ZW50WzFdKTt0aGlzLmNwdUZyZXF1ZW5jeVNsaWNlKHRzLHRhcmdldENwdU51bWJlcixwb3dlclN0YXRlKTtyZXR1cm4gdHJ1ZTt9LGNwdUlkbGVFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD0vc3RhdGU9KFxkKykgY3B1X2lkPShcZCkrLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIHRhcmdldENwdU51bWJlcj1wYXJzZUludChldmVudFsyXSk7dmFyIGNwdVN0YXRlPXBhcnNlSW50KGV2ZW50WzFdKTt0aGlzLmNwdUlkbGVTbGljZSh0cyx0YXJnZXRDcHVOdW1iZXIsY3B1U3RhdGUpO3JldHVybiB0cnVlO319O1BhcnNlci5yZWdpc3RlcihQb3dlclBhcnNlcik7cmV0dXJue1Bvd2VyUGFyc2VyOlBvd2VyUGFyc2VyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsZnVuY3Rpb24oKXt2YXIgUGFyc2VyPXRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7ZnVuY3Rpb24gUmVndWxhdG9yUGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncmVndWxhdG9yX2VuYWJsZScsUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JFbmFibGVFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncmVndWxhdG9yX2VuYWJsZV9kZWxheScsUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JFbmFibGVEZWxheUV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdyZWd1bGF0b3JfZW5hYmxlX2NvbXBsZXRlJyxSZWd1bGF0b3JQYXJzZXIucHJvdG90eXBlLnJlZ3VsYXRvckVuYWJsZUNvbXBsZXRlRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9kaXNhYmxlJyxSZWd1bGF0b3JQYXJzZXIucHJvdG90eXBlLnJlZ3VsYXRvckRpc2FibGVFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncmVndWxhdG9yX2Rpc2FibGVfY29tcGxldGUnLFJlZ3VsYXRvclBhcnNlci5wcm90b3R5cGUucmVndWxhdG9yRGlzYWJsZUNvbXBsZXRlRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9zZXRfdm9sdGFnZScsUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JTZXRWb2x0YWdlRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9zZXRfdm9sdGFnZV9jb21wbGV0ZScsUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JTZXRWb2x0YWdlQ29tcGxldGVFdmVudC5iaW5kKHRoaXMpKTt0aGlzLm1vZGVsXz1pbXBvcnRlci5tb2RlbF87fQotdmFyIHJlZ3VsYXRvckVuYWJsZVJFPS9uYW1lPSguKykvO3ZhciByZWd1bGF0b3JEaXNhYmxlUkU9L25hbWU9KC4rKS87dmFyIHJlZ3VsYXRvclNldFZvbHRhZ2VDb21wbGV0ZVJFPS9uYW1lPShcUyspLCB2YWw9KFxkKykvO1JlZ3VsYXRvclBhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLGdldEN0cl86ZnVuY3Rpb24oY3RyTmFtZSx2YWx1ZU5hbWUpe3ZhciBjdHI9dGhpcy5tb2RlbF8ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCd2cmVnICcrY3RyTmFtZSsnICcrdmFsdWVOYW1lKTtpZihjdHIuc2VyaWVzWzBdPT09dW5kZWZpbmVkKXtjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHZhbHVlTmFtZSx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjdHJOYW1lKycuJyt2YWx1ZU5hbWUpKSk7fQordmFyIHJlZ3VsYXRvckVuYWJsZVJFPS9uYW1lPSguKykvO3ZhciByZWd1bGF0b3JEaXNhYmxlUkU9L25hbWU9KC4rKS87dmFyIHJlZ3VsYXRvclNldFZvbHRhZ2VDb21wbGV0ZVJFPS9uYW1lPShcUyspLCB2YWw9KFxkKykvO1JlZ3VsYXRvclBhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLGdldEN0cl86ZnVuY3Rpb24oY3RyTmFtZSx2YWx1ZU5hbWUpe3ZhciBjdHI9dGhpcy5tb2RlbF8ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCd2cmVnICcrY3RyTmFtZSsnICcrdmFsdWVOYW1lKTtpZihjdHIuc2VyaWVzWzBdPT09dW5kZWZpbmVkKXtjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHZhbHVlTmFtZSx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjdHJOYW1lKycuJyt2YWx1ZU5hbWUpKSk7fQogcmV0dXJuIGN0cjt9LHJlZ3VsYXRvckVuYWJsZUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW0scGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PXJlZ3VsYXRvckVuYWJsZVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKIHJldHVybiBmYWxzZTt2YXIgbmFtZT1ldmVudFsxXTt2YXIgY3RyPXRoaXMuZ2V0Q3RyXyhuYW1lLCdlbmFibGVkJyk7Y3RyLnNlcmllc1swXS5hZGRDb3VudGVyU2FtcGxlKHRzLDEpO3JldHVybiB0cnVlO30scmVndWxhdG9yRW5hYmxlRGVsYXlFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtLHBpZCx0cyxldmVudEJhc2Upe3JldHVybiB0cnVlO30scmVndWxhdG9yRW5hYmxlQ29tcGxldGVFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtLHBpZCx0cyxldmVudEJhc2Upe3JldHVybiB0cnVlO30scmVndWxhdG9yRGlzYWJsZUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW0scGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PXJlZ3VsYXRvckRpc2FibGVSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTtpZighZXZlbnQpCiByZXR1cm4gZmFsc2U7dmFyIG5hbWU9ZXZlbnRbMV07dmFyIGN0cj10aGlzLmdldEN0cl8obmFtZSwnZW5hYmxlZCcpO2N0ci5zZXJpZXNbMF0uYWRkQ291bnRlclNhbXBsZSh0cywwKTtyZXR1cm4gdHJ1ZTt9LHJlZ3VsYXRvckRpc2FibGVDb21wbGV0ZUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW0scGlkLHRzLGV2ZW50QmFzZSl7cmV0dXJuIHRydWU7fSxyZWd1bGF0b3JTZXRWb2x0YWdlRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bSxwaWQsdHMsZXZlbnRCYXNlKXtyZXR1cm4gdHJ1ZTt9LHJlZ3VsYXRvclNldFZvbHRhZ2VDb21wbGV0ZUV2ZW50OmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW0scGlkLHRzLGV2ZW50QmFzZSl7dmFyIGV2ZW50PXJlZ3VsYXRvclNldFZvbHRhZ2VDb21wbGV0ZVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKQEAgLTM5MDcsNyArNDQzOSw3IEBACiByZXR1cm4gZmFsc2U7dmFyIGZyb21QaWQ9cGlkO3ZhciBjb21tPWV2ZW50WzFdO3ZhciBwaWQ9cGFyc2VJbnQoZXZlbnRbMl0pO3ZhciBwcmlvPXBhcnNlSW50KGV2ZW50WzNdKTt0aGlzLmltcG9ydGVyLm1hcmtQaWRSdW5uYWJsZSh0cyxwaWQsY29tbSxwcmlvLGZyb21QaWQpO3JldHVybiB0cnVlO319O1BhcnNlci5yZWdpc3RlcihTY2hlZFBhcnNlcik7cmV0dXJue1NjaGVkUGFyc2VyOlNjaGVkUGFyc2VyLF9TY2hlZFBhcnNlclRlc3RFeHBvcnRzOlRlc3RFeHBvcnRzfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsZnVuY3Rpb24oKXt2YXIgUGFyc2VyPXRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7ZnVuY3Rpb24gU3luY1BhcnNlcihpbXBvcnRlcil7UGFyc2VyLmNhbGwodGhpcyxpbXBvcnRlcik7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3N5bmNfdGltZWxpbmUnLFN5bmNQYXJzZXIucHJvdG90eXBlLnRpbWVsaW5lRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3N5bmNfd2FpdCcsU3luY1BhcnNlci5wcm90b3R5cGUuc3luY1dhaXRFdmVudC5iaW5kKHRoaXMpKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignc3luY19wdCcsU3luY1BhcnNlci5wcm90b3R5cGUuc3luY1B0RXZlbnQuYmluZCh0aGlzKSk7dGhpcy5tb2RlbF89aW1wb3J0ZXIubW9kZWxfO30KIHZhciBzeW5jVGltZWxpbmVSRT0vbmFtZT0oXFMrKSB2YWx1ZT0oXFMqKS87dmFyIHN5bmNXYWl0UkU9LyhcUyspIG5hbWU9KFxTKykgc3RhdGU9KFxkKykvO3ZhciBzeW5jUHRSRT0vbmFtZT0oXFMrKSB2YWx1ZT0oXFMqKS87U3luY1BhcnNlci5wcm90b3R5cGU9e19fcHJvdG9fXzpQYXJzZXIucHJvdG90eXBlLHRpbWVsaW5lRXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9c3luY1RpbWVsaW5lUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3ZhciB0aHJlYWQ9dGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZChldmVudFsxXSk7aWYodGhyZWFkLmxhc3RBY3RpdmVUcyE9PXVuZGVmaW5lZCl7dmFyIGR1cmF0aW9uPXRzLXRocmVhZC5sYXN0QWN0aXZlVHM7dmFyIHZhbHVlPXRocmVhZC5sYXN0QWN0aXZlVmFsdWU7aWYodmFsdWU9PXVuZGVmaW5lZCkKLXZhbHVlPScgJzt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLHZhbHVlLHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHZhbHVlKSx0aHJlYWQubGFzdEFjdGl2ZVRzLHt9LGR1cmF0aW9uKTt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9Cit2YWx1ZT0nICc7dmFyIHNsaWNlPW5ldyB0ci5tb2RlbC5TbGljZSgnJyx2YWx1ZSx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh2YWx1ZSksdGhyZWFkLmxhc3RBY3RpdmVUcyx7fSxkdXJhdGlvbik7dGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7fQogdGhyZWFkLmxhc3RBY3RpdmVUcz10czt0aHJlYWQubGFzdEFjdGl2ZVZhbHVlPWV2ZW50WzJdO3JldHVybiB0cnVlO30sc3luY1dhaXRFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD1zeW5jV2FpdFJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpO2lmKCFldmVudCkKIHJldHVybiBmYWxzZTtpZihldmVudEJhc2UudGdpZD09PXVuZGVmaW5lZCl7cmV0dXJuIGZhbHNlO30KIHZhciB0Z2lkPXBhcnNlSW50KGV2ZW50QmFzZS50Z2lkKTt2YXIgdGhyZWFkPXRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2Vzcyh0Z2lkKS5nZXRPckNyZWF0ZVRocmVhZChwaWQpO3RocmVhZC5uYW1lPWV2ZW50QmFzZS50aHJlYWROYW1lO3ZhciBzbGljZXM9dGhyZWFkLmtlcm5lbFNsaWNlR3JvdXA7aWYoIXNsaWNlcy5pc1RpbWVzdGFtcFZhbGlkRm9yQmVnaW5PckVuZCh0cykpe3RoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoe3R5cGU6J3BhcnNlX2Vycm9yJyxtZXNzYWdlOidUaW1lc3RhbXBzIGFyZSBtb3ZpbmcgYmFja3dhcmQuJ30pO3JldHVybiBmYWxzZTt9CkBAIC0zOTE2LDEyICs0NDQ4LDEyIEBACiByZXR1cm4gZmFsc2U7cmV0dXJuIHRydWU7dmFyIHRocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKGV2ZW50QmFzZVsxXSkudGhyZWFkO3RocmVhZC5zeW5jV2FpdFN5bmNQdHNbZXZlbnRbMV1dPWV2ZW50WzJdO3JldHVybiB0cnVlO319O1BhcnNlci5yZWdpc3RlcihTeW5jUGFyc2VyKTtyZXR1cm57U3luY1BhcnNlcjpTeW5jUGFyc2VyfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsZnVuY3Rpb24oKXt2YXIgUGFyc2VyPXRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7ZnVuY3Rpb24gV29ya3F1ZXVlUGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignd29ya3F1ZXVlX2V4ZWN1dGVfc3RhcnQnLFdvcmtxdWV1ZVBhcnNlci5wcm90b3R5cGUuZXhlY3V0ZVN0YXJ0RXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3dvcmtxdWV1ZV9leGVjdXRlX2VuZCcsV29ya3F1ZXVlUGFyc2VyLnByb3RvdHlwZS5leGVjdXRlRW5kRXZlbnQuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3dvcmtxdWV1ZV9xdWV1ZV93b3JrJyxXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlLmV4ZWN1dGVRdWV1ZVdvcmsuYmluZCh0aGlzKSk7aW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3dvcmtxdWV1ZV9hY3RpdmF0ZV93b3JrJyxXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlLmV4ZWN1dGVBY3RpdmF0ZVdvcmsuYmluZCh0aGlzKSk7fQogdmFyIHdvcmtxdWV1ZUV4ZWN1dGVTdGFydFJFPS93b3JrIHN0cnVjdCAoLispOiBmdW5jdGlvbiAoXFMrKS87dmFyIHdvcmtxdWV1ZUV4ZWN1dGVFbmRSRT0vd29yayBzdHJ1Y3QgKC4rKS87V29ya3F1ZXVlUGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsZXhlY3V0ZVN0YXJ0RXZlbnQ6ZnVuY3Rpb24oZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKXt2YXIgZXZlbnQ9d29ya3F1ZXVlRXhlY3V0ZVN0YXJ0UkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQogcmV0dXJuIGZhbHNlO3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUscGlkLHBpZCk7a3RocmVhZC5vcGVuU2xpY2VUUz10cztrdGhyZWFkLm9wZW5TbGljZT1ldmVudFsyXTtyZXR1cm4gdHJ1ZTt9LGV4ZWN1dGVFbmRFdmVudDpmdW5jdGlvbihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2Upe3ZhciBldmVudD13b3JrcXVldWVFeGVjdXRlRW5kUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7aWYoIWV2ZW50KQotcmV0dXJuIGZhbHNlO3ZhciBrdGhyZWFkPXRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUscGlkLHBpZCk7aWYoa3RocmVhZC5vcGVuU2xpY2Upe3ZhciBzbGljZT1uZXcgdHIubW9kZWwuU2xpY2UoJycsa3RocmVhZC5vcGVuU2xpY2UsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLGt0aHJlYWQub3BlblNsaWNlVFMse30sdHMta3RocmVhZC5vcGVuU2xpY2VUUyk7a3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpO30KK3JldHVybiBmYWxzZTt2YXIga3RocmVhZD10aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKGV2ZW50QmFzZS50aHJlYWROYW1lLHBpZCxwaWQpO2lmKGt0aHJlYWQub3BlblNsaWNlKXt2YXIgc2xpY2U9bmV3IHRyLm1vZGVsLlNsaWNlKCcnLGt0aHJlYWQub3BlblNsaWNlLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSxrdGhyZWFkLm9wZW5TbGljZVRTLHt9LHRzLWt0aHJlYWQub3BlblNsaWNlVFMpO2t0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTt9CiBrdGhyZWFkLm9wZW5TbGljZT11bmRlZmluZWQ7cmV0dXJuIHRydWU7fSxleGVjdXRlUXVldWVXb3JrOmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7cmV0dXJuIHRydWU7fSxleGVjdXRlQWN0aXZhdGVXb3JrOmZ1bmN0aW9uKGV2ZW50TmFtZSxjcHVOdW1iZXIscGlkLHRzLGV2ZW50QmFzZSl7cmV0dXJuIHRydWU7fX07UGFyc2VyLnJlZ2lzdGVyKFdvcmtxdWV1ZVBhcnNlcik7cmV0dXJue1dvcmtxdWV1ZVBhcnNlcjpXb3JrcXVldWVQYXJzZXJ9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJyxmdW5jdGlvbigpe3ZhciBQYXJzZXI9dHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjtmdW5jdGlvbiBBbmRyb2lkUGFyc2VyKGltcG9ydGVyKXtQYXJzZXIuY2FsbCh0aGlzLGltcG9ydGVyKTtpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigndHJhY2luZ19tYXJrX3dyaXRlOmFuZHJvaWQnLEFuZHJvaWRQYXJzZXIucHJvdG90eXBlLnRyYWNlTWFya1dyaXRlQW5kcm9pZEV2ZW50LmJpbmQodGhpcykpO2ltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCcwOmFuZHJvaWQnLEFuZHJvaWRQYXJzZXIucHJvdG90eXBlLnRyYWNlTWFya1dyaXRlQW5kcm9pZEV2ZW50LmJpbmQodGhpcykpO3RoaXMubW9kZWxfPWltcG9ydGVyLm1vZGVsXzt0aGlzLnBwaWRzXz17fTt9CiBmdW5jdGlvbiBwYXJzZUFyZ3MoYXJnc1N0cmluZyl7dmFyIGFyZ3M9e307aWYoYXJnc1N0cmluZyl7dmFyIGFyZ3NBcnJheT1hcmdzU3RyaW5nLnNwbGl0KCc7Jyk7Zm9yKHZhciBpPTA7aTxhcmdzQXJyYXkubGVuZ3RoOysraSl7dmFyIHBhcnRzPWFyZ3NBcnJheVtpXS5zcGxpdCgnPScpO2lmKHBhcnRzWzBdKQogYXJnc1twYXJ0cy5zaGlmdCgpXT1wYXJ0cy5qb2luKCc9Jyk7fX0KIHJldHVybiBhcmdzO30KLUFuZHJvaWRQYXJzZXIucHJvdG90eXBlPXtfX3Byb3RvX186UGFyc2VyLnByb3RvdHlwZSxvcGVuQXN5bmNTbGljZTpmdW5jdGlvbih0aHJlYWQsY2F0ZWdvcnksbmFtZSxjb29raWUsdHMsYXJncyl7dmFyIGFzeW5jU2xpY2VDb25zdHJ1Y3Rvcj10ci5tb2RlbC5Bc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKGNhdGVnb3J5LG5hbWUpO3ZhciBzbGljZT1uZXcgYXN5bmNTbGljZUNvbnN0cnVjdG9yKGNhdGVnb3J5LG5hbWUsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcobmFtZSksdHMsYXJncyk7dmFyIGtleT1jYXRlZ29yeSsnOicrbmFtZSsnOicrY29va2llO3NsaWNlLmlkPWNvb2tpZTtzbGljZS5zdGFydFRocmVhZD10aHJlYWQ7aWYoIXRoaXMub3BlbkFzeW5jU2xpY2VzKXt0aGlzLm9wZW5Bc3luY1NsaWNlcz17fTt9CitBbmRyb2lkUGFyc2VyLnByb3RvdHlwZT17X19wcm90b19fOlBhcnNlci5wcm90b3R5cGUsb3BlbkFzeW5jU2xpY2U6ZnVuY3Rpb24odGhyZWFkLGNhdGVnb3J5LG5hbWUsY29va2llLHRzLGFyZ3Mpe3ZhciBhc3luY1NsaWNlQ29uc3RydWN0b3I9dHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcihjYXRlZ29yeSxuYW1lKTt2YXIgc2xpY2U9bmV3IGFzeW5jU2xpY2VDb25zdHJ1Y3RvcihjYXRlZ29yeSxuYW1lLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUpLHRzLGFyZ3MpO3ZhciBrZXk9Y2F0ZWdvcnkrJzonK25hbWUrJzonK2Nvb2tpZTtzbGljZS5pZD1jb29raWU7c2xpY2Uuc3RhcnRUaHJlYWQ9dGhyZWFkO2lmKCF0aGlzLm9wZW5Bc3luY1NsaWNlcyl7dGhpcy5vcGVuQXN5bmNTbGljZXM9e307fQogdGhpcy5vcGVuQXN5bmNTbGljZXNba2V5XT1zbGljZTt9LGNsb3NlQXN5bmNTbGljZTpmdW5jdGlvbih0aHJlYWQsY2F0ZWdvcnksbmFtZSxjb29raWUsdHMsYXJncyl7aWYoIXRoaXMub3BlbkFzeW5jU2xpY2VzKXtyZXR1cm47fQogdmFyIGtleT1jYXRlZ29yeSsnOicrbmFtZSsnOicrY29va2llO3ZhciBzbGljZT10aGlzLm9wZW5Bc3luY1NsaWNlc1trZXldO2lmKCFzbGljZSl7cmV0dXJuO30KIGZvcih2YXIgYXJnIGluIGFyZ3Mpe2lmKHNsaWNlLmFyZ3NbYXJnXSE9PXVuZGVmaW5lZCl7dGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7dHlwZToncGFyc2VfZXJyb3InLG1lc3NhZ2U6J0JvdGggdGhlIFMgYW5kIEYgZXZlbnRzIG9mICcrc2xpY2UudGl0bGUrJyBwcm92aWRlZCB2YWx1ZXMgZm9yIGFyZ3VtZW50ICcrYXJnKycuJysnIFRoZSB2YWx1ZSBvZiB0aGUgRiBldmVudCB3aWxsIGJlIHVzZWQuJ30pO30KQEAgLTM5MzMsNyArNDQ2NSw3IEBACiB2YXIgc2xpY2U9dGhyZWFkLnNsaWNlR3JvdXAuZW5kU2xpY2UodHMpO3ZhciBhcmdzPXBhcnNlQXJncyhldmVudERhdGFbM10pO2Zvcih2YXIgYXJnIGluIGFyZ3Mpe2lmKHNsaWNlLmFyZ3NbYXJnXSE9PXVuZGVmaW5lZCl7dGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7dHlwZToncGFyc2VfZXJyb3InLG1lc3NhZ2U6J0JvdGggdGhlIEIgYW5kIEUgZXZlbnRzIG9mICcrc2xpY2UudGl0bGUrJyBwcm92aWRlZCB2YWx1ZXMgZm9yIGFyZ3VtZW50ICcrYXJnKycuJysnIFRoZSB2YWx1ZSBvZiB0aGUgRSBldmVudCB3aWxsIGJlIHVzZWQuJ30pO30KIHNsaWNlLmFyZ3NbYXJnXT1hcmdzW2FyZ107fQogYnJlYWs7Y2FzZSdDJzp2YXIgcHBpZD1wYXJzZUludChldmVudERhdGFbMV0pO3ZhciBuYW1lPWV2ZW50RGF0YVsyXTt2YXIgdmFsdWU9cGFyc2VJbnQoZXZlbnREYXRhWzNdKTt2YXIgY2F0ZWdvcnk9ZXZlbnREYXRhWzRdO2lmKGNhdGVnb3J5PT09dW5kZWZpbmVkKQotY2F0ZWdvcnk9J2FuZHJvaWQnO3ZhciBjdHI9dGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHBwaWQpLmdldE9yQ3JlYXRlQ291bnRlcihjYXRlZ29yeSxuYW1lKTtpZihjdHIubnVtU2VyaWVzPT09MCl7Y3RyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcyh2YWx1ZSx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhjdHIubmFtZSsnLicrJ3ZhbHVlJykpKTt9CitjYXRlZ29yeT0nYW5kcm9pZCc7dmFyIGN0cj10aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocHBpZCkuZ2V0T3JDcmVhdGVDb3VudGVyKGNhdGVnb3J5LG5hbWUpO2lmKGN0ci5udW1TZXJpZXM9PT0wKXtjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHZhbHVlLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGN0ci5uYW1lKycuJysndmFsdWUnKSkpO30KIGN0ci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpe3Nlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLHZhbHVlKTt9KTticmVhaztjYXNlJ1MnOnZhciBwcGlkPXBhcnNlSW50KGV2ZW50RGF0YVsxXSk7dmFyIG5hbWU9ZXZlbnREYXRhWzJdO3ZhciBjb29raWU9cGFyc2VJbnQoZXZlbnREYXRhWzNdKTt2YXIgYXJncz1wYXJzZUFyZ3MoZXZlbnREYXRhWzRdKTt2YXIgY2F0ZWdvcnk9ZXZlbnREYXRhWzVdO2lmKGNhdGVnb3J5PT09dW5kZWZpbmVkKQogY2F0ZWdvcnk9J2FuZHJvaWQnO3ZhciB0aHJlYWQ9dGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHBwaWQpLmdldE9yQ3JlYXRlVGhyZWFkKHBpZCk7dGhyZWFkLm5hbWU9ZXZlbnRCYXNlLnRocmVhZE5hbWU7dGhpcy5wcGlkc19bcGlkXT1wcGlkO3RoaXMub3BlbkFzeW5jU2xpY2UodGhyZWFkLGNhdGVnb3J5LG5hbWUsY29va2llLHRzLGFyZ3MpO2JyZWFrO2Nhc2UnRic6dmFyIHBwaWQ9cGFyc2VJbnQoZXZlbnREYXRhWzFdKTt2YXIgbmFtZT1ldmVudERhdGFbMl07dmFyIGNvb2tpZT1wYXJzZUludChldmVudERhdGFbM10pO3ZhciBhcmdzPXBhcnNlQXJncyhldmVudERhdGFbNF0pO3ZhciBjYXRlZ29yeT1ldmVudERhdGFbNV07aWYoY2F0ZWdvcnk9PT11bmRlZmluZWQpCiBjYXRlZ29yeT0nYW5kcm9pZCc7dmFyIHRocmVhZD10aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocHBpZCkuZ2V0T3JDcmVhdGVUaHJlYWQocGlkKTt0aHJlYWQubmFtZT1ldmVudEJhc2UudGhyZWFkTmFtZTt0aGlzLnBwaWRzX1twaWRdPXBwaWQ7dGhpcy5jbG9zZUFzeW5jU2xpY2UodGhyZWFkLGNhdGVnb3J5LG5hbWUsY29va2llLHRzLGFyZ3MpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIGZhbHNlO30KQEAgLTM5ODMsNyArNDUxNSw4IEBACiBpZighci5hZHZhbmNlVG9MaW5lTWF0Y2hpbmcoL148XC9ib2R5PiQvKSkKIHJldHVybiBmYWlsdXJlO2lmKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXjxcL2h0bWw+JC8pKQogcmV0dXJuIGZhaWx1cmU7cmV0dXJue29rOnRydWUsbGluZXM6cHJvZHVjZV9yZXN1bHQ/ZXZlbnRzOnVuZGVmaW5lZCxldmVudHNfYmVnaW5fYXRfbGluZTpldmVudHNfYmVnaW5fYXRfbGluZX07fTtMaW51eFBlcmZJbXBvcnRlci5wcm90b3R5cGU9e19fcHJvdG9fXzpJbXBvcnRlci5wcm90b3R5cGUsZ2V0IG1vZGVsKCl7cmV0dXJuIHRoaXMubW9kZWxfO30sYnVpbGRNYXBGcm9tTGludXhQaWRzVG9UaHJlYWRzOmZ1bmN0aW9uKCl7dGhpcy50aHJlYWRzQnlMaW51eFBpZD17fTt0aGlzLm1vZGVsXy5nZXRBbGxUaHJlYWRzKCkuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpe3RoaXMudGhyZWFkc0J5TGludXhQaWRbdGhyZWFkLnRpZF09dGhyZWFkO30uYmluZCh0aGlzKSk7fSxnZXRPckNyZWF0ZUNwdTpmdW5jdGlvbihjcHVOdW1iZXIpe3JldHVybiB0aGlzLm1vZGVsXy5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoY3B1TnVtYmVyKTt9LGdldE9yQ3JlYXRlS2VybmVsVGhyZWFkOmZ1bmN0aW9uKGtlcm5lbFRocmVhZE5hbWUscGlkLHRpZCl7aWYoIXRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXJuZWxUaHJlYWROYW1lXSl7dmFyIHRocmVhZD10aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocGlkKS5nZXRPckNyZWF0ZVRocmVhZCh0aWQpO3RocmVhZC5uYW1lPWtlcm5lbFRocmVhZE5hbWU7dGhpcy5rZXJuZWxUaHJlYWRTdGF0ZXNfW2tlcm5lbFRocmVhZE5hbWVdPXtwaWQ6cGlkLHRocmVhZDp0aHJlYWQsb3BlblNsaWNlOnVuZGVmaW5lZCxvcGVuU2xpY2VUUzp1bmRlZmluZWR9O3RoaXMudGhyZWFkc0J5TGludXhQaWRbcGlkXT10aHJlYWQ7fQotcmV0dXJuIHRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXJuZWxUaHJlYWROYW1lXTt9LGdldE9yQ3JlYXRlUHNldWRvVGhyZWFkOmZ1bmN0aW9uKHRocmVhZE5hbWUpe3ZhciB0aHJlYWQ9dGhpcy5rZXJuZWxUaHJlYWRTdGF0ZXNfW3RocmVhZE5hbWVdO2lmKCF0aHJlYWQpe3RocmVhZD10aGlzLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKHRocmVhZE5hbWUscHNldWRvS2VybmVsUElELHRoaXMucHNldWRvVGhyZWFkQ291bnRlcik7dGhpcy5wc2V1ZG9UaHJlYWRDb3VudGVyKys7fQorcmV0dXJuIHRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXJuZWxUaHJlYWROYW1lXTt9LGdldE9yQ3JlYXRlQmluZGVyS2VybmVsVGhyZWFkOmZ1bmN0aW9uKGtlcm5lbFRocmVhZE5hbWUscGlkLHRpZCl7dmFyIGtleT1rZXJuZWxUaHJlYWROYW1lK3BpZCt0aWQ7aWYoIXRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXldKXt2YXIgdGhyZWFkPXRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwaWQpLmdldE9yQ3JlYXRlVGhyZWFkKHRpZCk7dGhyZWFkLm5hbWU9a2VybmVsVGhyZWFkTmFtZTt0aGlzLmtlcm5lbFRocmVhZFN0YXRlc19ba2V5XT17cGlkOnBpZCx0aHJlYWQ6dGhyZWFkLG9wZW5TbGljZTp1bmRlZmluZWQsb3BlblNsaWNlVFM6dW5kZWZpbmVkfTt0aGlzLnRocmVhZHNCeUxpbnV4UGlkW3BpZF09dGhyZWFkO30KK3JldHVybiB0aGlzLmtlcm5lbFRocmVhZFN0YXRlc19ba2V5XTt9LGdldE9yQ3JlYXRlUHNldWRvVGhyZWFkOmZ1bmN0aW9uKHRocmVhZE5hbWUpe3ZhciB0aHJlYWQ9dGhpcy5rZXJuZWxUaHJlYWRTdGF0ZXNfW3RocmVhZE5hbWVdO2lmKCF0aHJlYWQpe3RocmVhZD10aGlzLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKHRocmVhZE5hbWUscHNldWRvS2VybmVsUElELHRoaXMucHNldWRvVGhyZWFkQ291bnRlcik7dGhpcy5wc2V1ZG9UaHJlYWRDb3VudGVyKys7fQogcmV0dXJuIHRocmVhZDt9LGltcG9ydEV2ZW50czpmdW5jdGlvbihpc1NlY29uZGFyeUltcG9ydCl7dGhpcy5wYXJzZXJzXz10aGlzLmNyZWF0ZVBhcnNlcnNfKCk7dGhpcy5yZWdpc3RlckRlZmF1bHRIYW5kbGVyc18oKTt0aGlzLnBhcnNlTGluZXMoKTt0aGlzLmltcG9ydENsb2NrU3luY1JlY29yZHMoKTt2YXIgdGltZVNoaWZ0PXRoaXMuY29tcHV0ZVRpbWVUcmFuc2Zvcm0oKTtpZih0aW1lU2hpZnQ9PT11bmRlZmluZWQpe3RoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoe3R5cGU6J2Nsb2NrX3N5bmMnLG1lc3NhZ2U6J0Nhbm5vdCBpbXBvcnQga2VybmVsIHRyYWNlIHdpdGhvdXQgYSBjbG9jayBzeW5jLid9KTtyZXR1cm47fQogdGhpcy5zaGlmdE5ld2x5QWRkZWRDbG9ja1N5bmNSZWNvcmRzKHRpbWVTaGlmdCk7dGhpcy5pbXBvcnRDcHVEYXRhKHRpbWVTaGlmdCk7dGhpcy5idWlsZE1hcEZyb21MaW51eFBpZHNUb1RocmVhZHMoKTt0aGlzLmJ1aWxkUGVyVGhyZWFkQ3B1U2xpY2VzRnJvbUNwdVN0YXRlKCk7dGhpcy5jb21wdXRlQ3B1VGltZXN0YW1wc0ZvclNsaWNlc0FzTmVlZGVkKCk7fSxidWlsZFBlclRocmVhZENwdVNsaWNlc0Zyb21DcHVTdGF0ZTpmdW5jdGlvbigpe3ZhciBTQ0hFRFVMSU5HX1NUQVRFPXRyLm1vZGVsLlNDSEVEVUxJTkdfU1RBVEU7Zm9yKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5tb2RlbF8ua2VybmVsLmNwdXMpe3ZhciBjcHU9dGhpcy5tb2RlbF8ua2VybmVsLmNwdXNbY3B1TnVtYmVyXTtmb3IodmFyIGk9MDtpPGNwdS5zbGljZXMubGVuZ3RoO2krKyl7dmFyIGNwdVNsaWNlPWNwdS5zbGljZXNbaV07dmFyIHRocmVhZD10aGlzLnRocmVhZHNCeUxpbnV4UGlkW2NwdVNsaWNlLmFyZ3MudGlkXTtpZighdGhyZWFkKQogY29udGludWU7Y3B1U2xpY2UudGhyZWFkVGhhdFdhc1J1bm5pbmc9dGhyZWFkO2lmKCF0aHJlYWQudGVtcENwdVNsaWNlcykKQEAgLTQwMTEsNyArNDU0NCw3IEBACiB0aGlzLnRyYWNlQ2xvY2tTeW5jRXZlbnQoZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKTtpZihnZW5lcmljQ2xvY2tTeW5jUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscykpCiB0aGlzLnRyYWNlQ2xvY2tTeW5jRXZlbnQoZXZlbnROYW1lLGNwdU51bWJlcixwaWQsdHMsZXZlbnRCYXNlKTt9LmJpbmQodGhpcykpO30sYWRkQ2xvY2tTeW5jUmVjb3JkOmZ1bmN0aW9uKGNzcil7dGhpcy5uZXdseUFkZGVkQ2xvY2tTeW5jUmVjb3Jkc18ucHVzaChjc3IpO3RoaXMubW9kZWxfLmNsb2NrU3luY1JlY29yZHMucHVzaChjc3IpO30sc2hpZnROZXdseUFkZGVkQ2xvY2tTeW5jUmVjb3JkczpmdW5jdGlvbih0aW1lU2hpZnQpe3RoaXMubmV3bHlBZGRlZENsb2NrU3luY1JlY29yZHNfLmZvckVhY2goZnVuY3Rpb24oY3NyKXtjc3IudHMrPXRpbWVTaGlmdDt9KTt9LGltcG9ydENwdURhdGE6ZnVuY3Rpb24odGltZVNoaWZ0KXt0aGlzLmZvckVhY2hMaW5lKGZ1bmN0aW9uKHRleHQsZXZlbnRCYXNlLGNwdU51bWJlcixwaWQsdHMpe3ZhciBldmVudE5hbWU9ZXZlbnRCYXNlLmV2ZW50TmFtZTt2YXIgaGFuZGxlcj10aGlzLmV2ZW50SGFuZGxlcnNfW2V2ZW50TmFtZV07aWYoIWhhbmRsZXIpe3RoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoe3R5cGU6J3BhcnNlX2Vycm9yJyxtZXNzYWdlOidVbmtub3duIGV2ZW50ICcrZXZlbnROYW1lKycgKCcrdGV4dCsnKSd9KTtyZXR1cm47fQogdHMrPXRpbWVTaGlmdDtpZighaGFuZGxlcihldmVudE5hbWUsY3B1TnVtYmVyLHBpZCx0cyxldmVudEJhc2UpKXt0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHt0eXBlOidwYXJzZV9lcnJvcicsbWVzc2FnZTonTWFsZm9ybWVkICcrZXZlbnROYW1lKycgZXZlbnQgKCcrdGV4dCsnKSd9KTt9fS5iaW5kKHRoaXMpKTt9LHBhcnNlTGluZXM6ZnVuY3Rpb24oKXt2YXIgbGluZXM9W107dmFyIGV4dHJhY3RSZXN1bHQ9TGludXhQZXJmSW1wb3J0ZXIuX2V4dHJhY3RFdmVudHNGcm9tU3lzdHJhY2VIVE1MKHRoaXMuZXZlbnRzXyx0cnVlKTtpZighZXh0cmFjdFJlc3VsdC5vaykKLWV4dHJhY3RSZXN1bHQ9TGludXhQZXJmSW1wb3J0ZXIuX2V4dHJhY3RFdmVudHNGcm9tU3lzdHJhY2VNdWx0aUhUTUwodGhpcy5ldmVudHNfLHRydWUpO3ZhciBsaW5lcz1leHRyYWN0UmVzdWx0Lm9rP2V4dHJhY3RSZXN1bHQubGluZXM6dGhpcy5ldmVudHNfLnNwbGl0KCdcbicpO3ZhciBsaW5lUGFyc2VyPW51bGw7Zm9yKHZhciBsaW5lTnVtYmVyPTA7bGluZU51bWJlcjxsaW5lcy5sZW5ndGg7KytsaW5lTnVtYmVyKXt2YXIgbGluZT1saW5lc1tsaW5lTnVtYmVyXTtpZihsaW5lLmxlbmd0aD09MHx8L14jLy50ZXN0KGxpbmUpKQorZXh0cmFjdFJlc3VsdD1MaW51eFBlcmZJbXBvcnRlci5fZXh0cmFjdEV2ZW50c0Zyb21TeXN0cmFjZU11bHRpSFRNTCh0aGlzLmV2ZW50c18sdHJ1ZSk7dmFyIGxpbmVzPWV4dHJhY3RSZXN1bHQub2s/ZXh0cmFjdFJlc3VsdC5saW5lczp0aGlzLmV2ZW50c18uc3BsaXQoJ1xuJyk7dmFyIGxpbmVQYXJzZXI9bnVsbDtmb3IodmFyIGxpbmVOdW1iZXI9MDtsaW5lTnVtYmVyPGxpbmVzLmxlbmd0aDsrK2xpbmVOdW1iZXIpe3ZhciBsaW5lPWxpbmVzW2xpbmVOdW1iZXJdLnRyaW0oKTtpZihsaW5lLmxlbmd0aD09MHx8L14jLy50ZXN0KGxpbmUpKQogY29udGludWU7aWYobGluZVBhcnNlcj09bnVsbCl7bGluZVBhcnNlcj1hdXRvRGV0ZWN0TGluZVBhcnNlcihsaW5lKTtpZihsaW5lUGFyc2VyPT1udWxsKXt0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHt0eXBlOidwYXJzZV9lcnJvcicsbWVzc2FnZTonQ2Fubm90IHBhcnNlIGxpbmU6ICcrbGluZX0pO2NvbnRpbnVlO319CiB2YXIgZXZlbnRCYXNlPWxpbmVQYXJzZXIobGluZSk7aWYoIWV2ZW50QmFzZSl7dGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7dHlwZToncGFyc2VfZXJyb3InLG1lc3NhZ2U6J1VucmVjb2duaXplZCBsaW5lOiAnK2xpbmV9KTtjb250aW51ZTt9CiB0aGlzLmxpbmVzXy5wdXNoKFtsaW5lLGV2ZW50QmFzZSxwYXJzZUludChldmVudEJhc2UuY3B1TnVtYmVyKSxwYXJzZUludChldmVudEJhc2UucGlkKSxwYXJzZUZsb2F0KGV2ZW50QmFzZS50aW1lc3RhbXApKjEwMDBdKTt9fSxmb3JFYWNoTGluZTpmdW5jdGlvbihoYW5kbGVyKXtmb3IodmFyIGk9MDtpPHRoaXMubGluZXNfLmxlbmd0aDsrK2kpe3ZhciBsaW5lPXRoaXMubGluZXNfW2ldO2hhbmRsZXIuYXBwbHkodGhpcyxsaW5lKTt9fX07dHIuaW1wb3J0ZXIuSW1wb3J0ZXIucmVnaXN0ZXIoTGludXhQZXJmSW1wb3J0ZXIpO3JldHVybntMaW51eFBlcmZJbXBvcnRlcjpMaW51eFBlcmZJbXBvcnRlcixfTGludXhQZXJmSW1wb3J0ZXJUZXN0RXhwb3J0czpUZXN0RXhwb3J0c307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmF1ZGl0cycsZnVuY3Rpb24oKXt2YXIgTUFJTl9GUkFNRVRJTUVfVFlQRT0nbWFpbl9mcmFtZXRpbWVfdHlwZSc7dmFyIElNUExfRlJBTUVUSU1FX1RZUEU9J2ltcGxfZnJhbWV0aW1lX3R5cGUnO3ZhciBNQUlOX1JFTkRFUklOR19TVEFUUz0nQmVuY2htYXJrSW5zdHJ1bWVudGF0aW9uOjpNYWluVGhyZWFkUmVuZGVyaW5nU3RhdHMnO3ZhciBJTVBMX1JFTkRFUklOR19TVEFUUz0nQmVuY2htYXJrSW5zdHJ1bWVudGF0aW9uOjpJbXBsVGhyZWFkUmVuZGVyaW5nU3RhdHMnO2Z1bmN0aW9uIGdldFNsaWNlc0ludGVyc2VjdGluZ1JhbmdlKHJhbmdlT2ZJbnRlcmVzdCxzbGljZXMpe3ZhciBzbGljZXNJbkZpbHRlclJhbmdlPVtdO2Zvcih2YXIgaT0wO2k8c2xpY2VzLmxlbmd0aDtpKyspe3ZhciBzbGljZT1zbGljZXNbaV07aWYocmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LHNsaWNlLmVuZCkpCkBAIC00MDI0LDE4ICs0NTU3LDEyIEBACiByZXR1cm47aWYocmFuZ2UuaW50ZXJzZWN0c0V4cGxpY2l0UmFuZ2UoZXZlbnQuc3RhcnQsZXZlbnQuZW5kKSkKIGZyYW1lRXZlbnRzLnB1c2goZXZlbnQpO30pO2ZyYW1lRXZlbnRzLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5zdGFydC1iLnN0YXJ0fSk7cmV0dXJuIGZyYW1lRXZlbnRzO319O2Z1bmN0aW9uIGdldEZyYW1ldGltZURhdGFGcm9tRXZlbnRzKGZyYW1lRXZlbnRzKXt2YXIgZnJhbWV0aW1lRGF0YT1bXTtmb3IodmFyIGk9MTtpPGZyYW1lRXZlbnRzLmxlbmd0aDtpKyspe3ZhciBkaWZmPWZyYW1lRXZlbnRzW2ldLnN0YXJ0LWZyYW1lRXZlbnRzW2ktMV0uc3RhcnQ7ZnJhbWV0aW1lRGF0YS5wdXNoKHsneCc6ZnJhbWVFdmVudHNbaV0uc3RhcnQsJ2ZyYW1ldGltZSc6ZGlmZn0pO30KIHJldHVybiBmcmFtZXRpbWVEYXRhO30KLXJldHVybntDaHJvbWVQcm9jZXNzSGVscGVyOkNocm9tZVByb2Nlc3NIZWxwZXIsTUFJTl9GUkFNRVRJTUVfVFlQRTpNQUlOX0ZSQU1FVElNRV9UWVBFLElNUExfRlJBTUVUSU1FX1RZUEU6SU1QTF9GUkFNRVRJTUVfVFlQRSxNQUlOX1JFTkRFUklOR19TVEFUUzpNQUlOX1JFTkRFUklOR19TVEFUUyxJTVBMX1JFTkRFUklOR19TVEFUUzpJTVBMX1JFTkRFUklOR19TVEFUUyxnZXRTbGljZXNJbnRlcnNlY3RpbmdSYW5nZTpnZXRTbGljZXNJbnRlcnNlY3RpbmdSYW5nZSxnZXRGcmFtZXRpbWVEYXRhRnJvbUV2ZW50czpnZXRGcmFtZXRpbWVEYXRhRnJvbUV2ZW50c307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmNjJyxmdW5jdGlvbigpe3ZhciBBc3luY1NsaWNlPXRyLm1vZGVsLkFzeW5jU2xpY2U7dmFyIFVJX0NPTVBfTkFNRT0nSU5QVVRfRVZFTlRfTEFURU5DWV9VSV9DT01QT05FTlQnO3ZhciBPUklHSU5BTF9DT01QX05BTUU9J0lOUFVUX0VWRU5UX0xBVEVOQ1lfT1JJR0lOQUxfQ09NUE9ORU5UJzt2YXIgQkVHSU5fQ09NUF9OQU1FPSdJTlBVVF9FVkVOVF9MQVRFTkNZX0JFR0lOX1JXSF9DT01QT05FTlQnO3ZhciBFTkRfQ09NUF9OQU1FPSdJTlBVVF9FVkVOVF9MQVRFTkNZX1RFUk1JTkFURURfRlJBTUVfU1dBUF9DT01QT05FTlQnO2Z1bmN0aW9uIElucHV0TGF0ZW5jeUFzeW5jU2xpY2UoKXtBc3luY1NsaWNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmFzc29jaWF0ZWRFdmVudHNfPXVuZGVmaW5lZDt9Ci1JbnB1dExhdGVuY3lBc3luY1NsaWNlLnByb3RvdHlwZT17X19wcm90b19fOkFzeW5jU2xpY2UucHJvdG90eXBlLGdldCBhc3NvY2lhdGVkRXZlbnRzKCl7aWYodGhpcy5hc3NvY2lhdGVkRXZlbnRzXyE9PXVuZGVmaW5lZCkKLXJldHVybiB0aGlzLmFzc29jaWF0ZWRFdmVudHNfO3RoaXMuYXNzb2NpYXRlZEV2ZW50c189W107dmFyIG1vZGVsSW5kaWNlcz10aGlzLnN0YXJ0VGhyZWFkLnBhcmVudC5tb2RlbC5tb2RlbEluZGljZXM7dmFyIG1hdGNoZWRGbG93RXZlbnRzPW1vZGVsSW5kaWNlcy5nZXRGbG93RXZlbnRzV2l0aElkKHRoaXMuaWQpO3ZhciBldmVudEdVSURzPXt9O21hdGNoZWRGbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZmxvd0V2ZW50KXt0aGlzLmFzc29jaWF0ZWRFdmVudHNfLnB1c2goZmxvd0V2ZW50KTtpZihmbG93RXZlbnQuc3RhcnRTbGljZSYmIWV2ZW50R1VJRHNbZmxvd0V2ZW50LnN0YXJ0U2xpY2UuZ3VpZF0pe3RoaXMuYXNzb2NpYXRlZEV2ZW50c18ucHVzaChmbG93RXZlbnQuc3RhcnRTbGljZSk7ZXZlbnRHVUlEc1tmbG93RXZlbnQuc3RhcnRTbGljZS5ndWlkXT0xO30KLWlmKGZsb3dFdmVudC5zdGFydFNsaWNlJiYhZXZlbnRHVUlEc1tmbG93RXZlbnQuZW5kU2xpY2UuZ3VpZF0pe3RoaXMuYXNzb2NpYXRlZEV2ZW50c18ucHVzaChmbG93RXZlbnQuZW5kU2xpY2UpO2V2ZW50R1VJRHNbZmxvd0V2ZW50LmVuZFNsaWNlLmd1aWRdPTE7fX0sdGhpcyk7cmV0dXJuIHRoaXMuYXNzb2NpYXRlZEV2ZW50c187fSxnZXQgaW5wdXRMYXRlbmN5KCl7aWYoISgnZGF0YSdpbiB0aGlzLmFyZ3MpKQotcmV0dXJuIHVuZGVmaW5lZDt2YXIgZGF0YT10aGlzLmFyZ3MuZGF0YTtpZighKEVORF9DT01QX05BTUUgaW4gZGF0YSkpCi1yZXR1cm4gdW5kZWZpbmVkO3ZhciBsYXRlbmN5PTA7dmFyIGVuZFRpbWU9ZGF0YVtFTkRfQ09NUF9OQU1FXS50aW1lO2lmKE9SSUdJTkFMX0NPTVBfTkFNRSBpbiBkYXRhKXtsYXRlbmN5PWVuZFRpbWUtZGF0YVtPUklHSU5BTF9DT01QX05BTUVdLnRpbWU7fWVsc2UgaWYoVUlfQ09NUF9OQU1FIGluIGRhdGEpe2xhdGVuY3k9ZW5kVGltZS1kYXRhW1VJX0NPTVBfTkFNRV0udGltZTt9ZWxzZSBpZihCRUdJTl9DT01QX05BTUUgaW4gZGF0YSl7bGF0ZW5jeT1lbmRUaW1lLWRhdGFbQkVHSU5fQ09NUF9OQU1FXS50aW1lO31lbHNle3Rocm93IG5ldyBFcnJvcignTm8gdmFsaWQgYmVnaW4gbGF0ZW5jeSBjb21wb25lbnQnKTt9Ci1yZXR1cm4gbGF0ZW5jeTt9fTt2YXIgZXZlbnRUeXBlTmFtZXM9WydDaGFyJywnR2VzdHVyZUZsaW5nQ2FuY2VsJywnR2VzdHVyZUZsaW5nU3RhcnQnLCdHZXN0dXJlU2Nyb2xsQmVnaW4nLCdHZXN0dXJlU2Nyb2xsRW5kJywnR2VzdHVyZVNjcm9sbFVwZGF0ZScsJ0dlc3R1cmVTaG93UHJlc3MnLCdHZXN0dXJlVGFwJywnR2VzdHVyZVRhcENhbmNlbCcsJ0dlc3R1cmVUYXBEb3duJywnS2V5VXAnLCdNb3VzZURvd24nLCdNb3VzZU1vdmUnLCdNb3VzZVVwJywnTW91c2VXaGVlbCcsJ1Jhd0tleURvd24nLCdTY3JvbGxVcGRhdGUnLCdUb3VjaEVuZCcsJ1RvdWNoTW92ZScsJ1RvdWNoU3RhcnQnXTt2YXIgYWxsVHlwZU5hbWVzPVsnSW5wdXRMYXRlbmN5J107ZXZlbnRUeXBlTmFtZXMuZm9yRWFjaChmdW5jdGlvbihldmVudFR5cGVOYW1lKXthbGxUeXBlTmFtZXMucHVzaCgnSW5wdXRMYXRlbmN5OicrZXZlbnRUeXBlTmFtZSk7YWxsVHlwZU5hbWVzLnB1c2goJ0lucHV0TGF0ZW5jeTo6JytldmVudFR5cGVOYW1lKTt9KTtBc3luY1NsaWNlLnJlZ2lzdGVyKElucHV0TGF0ZW5jeUFzeW5jU2xpY2Use3R5cGVOYW1lczphbGxUeXBlTmFtZXMsY2F0ZWdvcnlQYXJ0czpbJ2xhdGVuY3lJbmZvJ119KTtyZXR1cm57SW5wdXRMYXRlbmN5QXN5bmNTbGljZTpJbnB1dExhdGVuY3lBc3luY1NsaWNlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmUuYXVkaXRzJyxmdW5jdGlvbigpe2Z1bmN0aW9uIENocm9tZUJyb3dzZXJIZWxwZXIobW9kZWxIZWxwZXIscHJvY2Vzcyl7dHIuZS5hdWRpdHMuQ2hyb21lUHJvY2Vzc0hlbHBlci5jYWxsKHRoaXMsbW9kZWxIZWxwZXIscHJvY2Vzcyk7dGhpcy5tYWluVGhyZWFkXz1wcm9jZXNzLmZpbmRBdE1vc3RPbmVUaHJlYWROYW1lZCgnQ3JCcm93c2VyTWFpbicpO30KK3JldHVybntDaHJvbWVQcm9jZXNzSGVscGVyOkNocm9tZVByb2Nlc3NIZWxwZXIsTUFJTl9GUkFNRVRJTUVfVFlQRTpNQUlOX0ZSQU1FVElNRV9UWVBFLElNUExfRlJBTUVUSU1FX1RZUEU6SU1QTF9GUkFNRVRJTUVfVFlQRSxNQUlOX1JFTkRFUklOR19TVEFUUzpNQUlOX1JFTkRFUklOR19TVEFUUyxJTVBMX1JFTkRFUklOR19TVEFUUzpJTVBMX1JFTkRFUklOR19TVEFUUyxnZXRTbGljZXNJbnRlcnNlY3RpbmdSYW5nZTpnZXRTbGljZXNJbnRlcnNlY3RpbmdSYW5nZSxnZXRGcmFtZXRpbWVEYXRhRnJvbUV2ZW50czpnZXRGcmFtZXRpbWVEYXRhRnJvbUV2ZW50c307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmF1ZGl0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBDaHJvbWVCcm93c2VySGVscGVyKG1vZGVsSGVscGVyLHByb2Nlc3Mpe3RyLmUuYXVkaXRzLkNocm9tZVByb2Nlc3NIZWxwZXIuY2FsbCh0aGlzLG1vZGVsSGVscGVyLHByb2Nlc3MpO3RoaXMubWFpblRocmVhZF89cHJvY2Vzcy5maW5kQXRNb3N0T25lVGhyZWFkTmFtZWQoJ0NyQnJvd3Nlck1haW4nKTt9CiBDaHJvbWVCcm93c2VySGVscGVyLmlzQnJvd3NlclByb2Nlc3M9ZnVuY3Rpb24ocHJvY2Vzcyl7aWYoIXByb2Nlc3MuZmluZEF0TW9zdE9uZVRocmVhZE5hbWVkKCdDckJyb3dzZXJNYWluJykpCiByZXR1cm4gZmFsc2U7cmV0dXJuIHRydWU7fTtDaHJvbWVCcm93c2VySGVscGVyLnByb3RvdHlwZT17X19wcm90b19fOnRyLmUuYXVkaXRzLkNocm9tZVByb2Nlc3NIZWxwZXIucHJvdG90eXBlLGdldCByZW5kZXJlckhlbHBlcnMoKXtyZXR1cm4gdGhpcy5tb2RlbEhlbHBlci5yZW5kZXJlckhlbHBlcnM7fSxnZXRMb2FkaW5nRXZlbnRzSW5SYW5nZTpmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3Qpe3JldHVybiB0aGlzLmdldEFsbEFzeW5jU2xpY2VzTWF0Y2hpbmcoZnVuY3Rpb24oc2xpY2Upe3JldHVybiBzbGljZS50aXRsZS5pbmRleE9mKCdXZWJDb250ZW50c0ltcGwgTG9hZGluZycpPT09MCYmcmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LHNsaWNlLmVuZCk7fSk7fSxnZXRDb21taXRQcm92aXNpb25hbExvYWRFdmVudHNJblJhbmdlOmZ1bmN0aW9uKHJhbmdlT2ZJbnRlcmVzdCl7cmV0dXJuIHRoaXMuZ2V0QWxsQXN5bmNTbGljZXNNYXRjaGluZyhmdW5jdGlvbihzbGljZSl7cmV0dXJuIHNsaWNlLnRpdGxlPT09J1JlbmRlckZyYW1lSW1wbDo6ZGlkQ29tbWl0UHJvdmlzaW9uYWxMb2FkJyYmcmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LHNsaWNlLmVuZCk7fSk7fSxnZXQgaGFzTGF0ZW5jeUV2ZW50cygpe3ZhciBoYXNMYXRlbmN5PWZhbHNlO3RoaXMubW9kZWxIZWxwZXIubW9kZWwuZ2V0QWxsVGhyZWFkcygpLnNvbWUoZnVuY3Rpb24odGhyZWFkKXt0aHJlYWQuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihldmVudCl7aWYoIWV2ZW50LmlzVG9wTGV2ZWwpCiByZXR1cm47aWYoIShldmVudCBpbnN0YW5jZW9mIHRyLmUuY2MuSW5wdXRMYXRlbmN5QXN5bmNTbGljZSkpCi1yZXR1cm47aGFzTGF0ZW5jeT10cnVlO30pO3JldHVybiBoYXNMYXRlbmN5O30pO3JldHVybiBoYXNMYXRlbmN5O30sZ2V0TGF0ZW5jeUV2ZW50c0luUmFuZ2U6ZnVuY3Rpb24ocmFuZ2VPZkludGVyZXN0KXtyZXR1cm4gdGhpcy5nZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nKGZ1bmN0aW9uKHNsaWNlKXtyZXR1cm4oc2xpY2UudGl0bGUuaW5kZXhPZignSW5wdXRMYXRlbmN5Jyk9PT0wKSYmcmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LHNsaWNlLmVuZCk7fSk7cmV0dXJuIGxhdGVuY3lFdmVudHM7fSxnZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nOmZ1bmN0aW9uKHByZWQsb3B0X3RoaXMpe3ZhciBldmVudHM9W107dGhpcy5pdGVyQWxsVGhyZWFkcyhmdW5jdGlvbih0aHJlYWQpe3RocmVhZC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKHNsaWNlKXtpZihwcmVkLmNhbGwob3B0X3RoaXMsc2xpY2UpKQotZXZlbnRzLnB1c2goc2xpY2UpO30pO30pO3JldHVybiBldmVudHM7fSxnZXRBbGxOZXR3b3JrRXZlbnRzSW5SYW5nZTpmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3Qpe3ZhciBuZXR3b3JrRXZlbnRzPVtdO3RoaXMubW9kZWxIZWxwZXIubW9kZWwuZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goZnVuY3Rpb24odGhyZWFkKXt0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXt2YXIgbWF0Y2g9ZmFsc2U7aWYoc2xpY2UuY2F0PT0nbmV0J3x8c2xpY2UuY2F0PT0nZGlzYWJsZWQtYnktZGVmYXVsdC1uZXRsb2cnfHxzbGljZS5jYXQ9PSduZXRsb2cnKXttYXRjaD10cnVlO30KK3JldHVybjtoYXNMYXRlbmN5PXRydWU7fSk7cmV0dXJuIGhhc0xhdGVuY3k7fSk7cmV0dXJuIGhhc0xhdGVuY3k7fSxnZXRMYXRlbmN5RXZlbnRzSW5SYW5nZTpmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3Qpe3JldHVybiB0aGlzLmdldEFsbEFzeW5jU2xpY2VzTWF0Y2hpbmcoZnVuY3Rpb24oc2xpY2Upe3JldHVybihzbGljZS50aXRsZS5pbmRleE9mKCdJbnB1dExhdGVuY3knKT09PTApJiZyYW5nZU9mSW50ZXJlc3QuaW50ZXJzZWN0c0V4cGxpY2l0UmFuZ2Uoc2xpY2Uuc3RhcnQsc2xpY2UuZW5kKTt9KTt9LGdldEFsbEFzeW5jU2xpY2VzTWF0Y2hpbmc6ZnVuY3Rpb24ocHJlZCxvcHRfdGhpcyl7dmFyIGV2ZW50cz1bXTt0aGlzLml0ZXJBbGxUaHJlYWRzKGZ1bmN0aW9uKHRocmVhZCl7dGhyZWFkLml0ZXJhdGVBbGxFdmVudHMoZnVuY3Rpb24oc2xpY2Upe2lmKHByZWQuY2FsbChvcHRfdGhpcyxzbGljZSkpCitldmVudHMucHVzaChzbGljZSk7fSk7fSk7cmV0dXJuIGV2ZW50czt9LGdldEFsbE5ldHdvcmtFdmVudHNJblJhbmdlOmZ1bmN0aW9uKHJhbmdlT2ZJbnRlcmVzdCl7dmFyIG5ldHdvcmtFdmVudHM9W107dGhpcy5tb2RlbEhlbHBlci5tb2RlbC5nZXRBbGxUaHJlYWRzKCkuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpe3RocmVhZC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2Upe3ZhciBtYXRjaD1mYWxzZTtpZihzbGljZS5jYXRlZ29yeT09J25ldCd8fHNsaWNlLmNhdGVnb3J5PT0nZGlzYWJsZWQtYnktZGVmYXVsdC1uZXRsb2cnfHxzbGljZS5jYXRlZ29yeT09J25ldGxvZycpe21hdGNoPXRydWU7fQogaWYoIW1hdGNoKQogcmV0dXJuO2lmKHJhbmdlT2ZJbnRlcmVzdC5pbnRlcnNlY3RzRXhwbGljaXRSYW5nZShzbGljZS5zdGFydCxzbGljZS5lbmQpKQogbmV0d29ya0V2ZW50cy5wdXNoKHNsaWNlKTt9KTt9KTtyZXR1cm4gbmV0d29ya0V2ZW50czt9LGl0ZXJBbGxUaHJlYWRzOmZ1bmN0aW9uKGZ1bmMsb3B0X3RoaXMpe3RyLmIuaXRlckl0ZW1zKHRoaXMucHJvY2Vzcy50aHJlYWRzLGZ1bmN0aW9uKHRpZCx0aHJlYWQpe2Z1bmMuY2FsbChvcHRfdGhpcyx0aHJlYWQpO30pO3RyLmIuaXRlckl0ZW1zKHRoaXMucmVuZGVyZXJIZWxwZXJzLGZ1bmN0aW9uKHBpZCxyZW5kZXJlckhlbHBlcil7dmFyIHJlbmRlcmVyUHJvY2Vzcz1yZW5kZXJlckhlbHBlci5wcm9jZXNzO3RyLmIuaXRlckl0ZW1zKHJlbmRlcmVyUHJvY2Vzcy50aHJlYWRzLGZ1bmN0aW9uKHRpZCx0aHJlYWQpe2Z1bmMuY2FsbChvcHRfdGhpcyx0aHJlYWQpO30pO30sdGhpcyk7fX07cmV0dXJue0Nocm9tZUJyb3dzZXJIZWxwZXI6Q2hyb21lQnJvd3NlckhlbHBlcn07fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmF1ZGl0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBDaHJvbWVSZW5kZXJlckhlbHBlcihtb2RlbEhlbHBlcixwcm9jZXNzKXt0ci5lLmF1ZGl0cy5DaHJvbWVQcm9jZXNzSGVscGVyLmNhbGwodGhpcyxtb2RlbEhlbHBlcixwcm9jZXNzKTt0aGlzLm1haW5UaHJlYWRfPXByb2Nlc3MuZmluZEF0TW9zdE9uZVRocmVhZE5hbWVkKCdDclJlbmRlcmVyTWFpbicpO3RoaXMuY29tcG9zaXRvclRocmVhZF89cHJvY2Vzcy5maW5kQXRNb3N0T25lVGhyZWFkTmFtZWQoJ0NvbXBvc2l0b3InKTt0aGlzLnJhc3RlcldvcmtlclRocmVhZHNfPXByb2Nlc3MuZmluZEFsbFRocmVhZHNNYXRjaGluZyhmdW5jdGlvbih0KXtpZih0Lm5hbWU9PT11bmRlZmluZWQpCkBAIC00MDU0LDkgKzQ1ODEsOSBAQAogQ2hyb21lTW9kZWxIZWxwZXIuc3VwcG9ydHNNb2RlbD1mdW5jdGlvbihtb2RlbCl7aWYoZmluZENocm9tZUJyb3dzZXJQcm9jZXNzKG1vZGVsKSE9PXVuZGVmaW5lZCkKIHJldHVybiB0cnVlO2lmKGZpbmRDaHJvbWVSZW5kZXJQcm9jZXNzZXMobW9kZWwpLmxlbmd0aCkKIHJldHVybiB0cnVlO3JldHVybiBmYWxzZTt9Ci1DaHJvbWVNb2RlbEhlbHBlci5wcm90b3R5cGU9e2dldCBwaWQoKXt0aHJvdyBuZXcgRXJyb3IoJ3dvYWgnKTt9LGdldCBwcm9jZXNzKCl7dGhyb3cgbmV3IEVycm9yKCd3b2FoJyk7fSxnZXQgbW9kZWwoKXtyZXR1cm4gdGhpcy5tb2RlbF87fSxnZXQgYnJvd3NlclByb2Nlc3MoKXtyZXR1cm4gdGhpcy5icm93c2VyUHJvY2Vzc187fSxnZXQgYnJvd3NlckhlbHBlcigpe3JldHVybiB0aGlzLmJyb3dzZXJIZWxwZXJfO30sZ2V0IHJlbmRlcmVySGVscGVycygpe3JldHVybiB0aGlzLnJlbmRlcmVySGVscGVyc187fX07cmV0dXJue0Nocm9tZU1vZGVsSGVscGVyOkNocm9tZU1vZGVsSGVscGVyfTt9KTshZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4pe3JldHVybiBudWxsIT1uJiYhaXNOYU4obil9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbi5sZW5ndGh9ZnVuY3Rpb24gZShuKXtmb3IodmFyIHQ9MTtuKnQlMTspdCo9MTA7cmV0dXJuIHR9ZnVuY3Rpb24gcihuLHQpe3RyeXtmb3IodmFyIGUgaW4gdClPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsZSx7dmFsdWU6dFtlXSxlbnVtZXJhYmxlOiExfSl9Y2F0Y2gocil7bi5wcm90b3R5cGU9dH19ZnVuY3Rpb24gdSgpe31mdW5jdGlvbiBpKG4pe3JldHVybiBhYStuIGluIHRoaXN9ZnVuY3Rpb24gbyhuKXtyZXR1cm4gbj1hYStuLG4gaW4gdGhpcyYmZGVsZXRlIHRoaXNbbl19ZnVuY3Rpb24gYSgpe3ZhciBuPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24odCl7bi5wdXNoKHQpfSksbn1mdW5jdGlvbiBjKCl7dmFyIG49MDtmb3IodmFyIHQgaW4gdGhpcyl0LmNoYXJDb2RlQXQoMCk9PT1jYSYmKytuO3JldHVybiBufWZ1bmN0aW9uIHMoKXtmb3IodmFyIG4gaW4gdGhpcylpZihuLmNoYXJDb2RlQXQoMCk9PT1jYSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBsKCl7fWZ1bmN0aW9uIGYobix0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPWUuYXBwbHkodCxhcmd1bWVudHMpO3JldHVybiByPT09dD9uOnJ9fWZ1bmN0aW9uIGgobix0KXtpZih0IGluIG4pcmV0dXJuIHQ7dD10LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc3Vic3RyaW5nKDEpO2Zvcih2YXIgZT0wLHI9c2EubGVuZ3RoO3I+ZTsrK2Upe3ZhciB1PXNhW2VdK3Q7aWYodSBpbiBuKXJldHVybiB1fX1mdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIHAoKXt9ZnVuY3Rpb24gdihuKXtmdW5jdGlvbiB0KCl7Zm9yKHZhciB0LHI9ZSx1PS0xLGk9ci5sZW5ndGg7Kyt1PGk7KSh0PXJbdV0ub24pJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbn12YXIgZT1bXSxyPW5ldyB1O3JldHVybiB0Lm9uPWZ1bmN0aW9uKHQsdSl7dmFyIGksbz1yLmdldCh0KTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP28mJm8ub246KG8mJihvLm9uPW51bGwsZT1lLnNsaWNlKDAsaT1lLmluZGV4T2YobykpLmNvbmNhdChlLnNsaWNlKGkrMSkpLHIucmVtb3ZlKHQpKSx1JiZlLnB1c2goci5zZXQodCx7b246dX0pKSxuKX0sdH1mdW5jdGlvbiBkKCl7WG8uZXZlbnQucHJldmVudERlZmF1bHQoKX1mdW5jdGlvbiBtKCl7Zm9yKHZhciBuLHQ9WG8uZXZlbnQ7bj10LnNvdXJjZUV2ZW50Oyl0PW47cmV0dXJuIHR9ZnVuY3Rpb24geShuKXtmb3IodmFyIHQ9bmV3IHAsZT0wLHI9YXJndW1lbnRzLmxlbmd0aDsrK2U8cjspdFthcmd1bWVudHNbZV1dPXYodCk7cmV0dXJuIHQub2Y9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24odSl7dHJ5e3ZhciBpPXUuc291cmNlRXZlbnQ9WG8uZXZlbnQ7dS50YXJnZXQ9bixYby5ldmVudD11LHRbdS50eXBlXS5hcHBseShlLHIpfWZpbmFsbHl7WG8uZXZlbnQ9aX19fSx0fWZ1bmN0aW9uIHgobil7cmV0dXJuIGZhKG4sZGEpLG59ZnVuY3Rpb24gTShuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOmZ1bmN0aW9uKCl7cmV0dXJuIGhhKG4sdGhpcyl9fWZ1bmN0aW9uIF8obil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4/bjpmdW5jdGlvbigpe3JldHVybiBnYShuLHRoaXMpfX1mdW5jdGlvbiBiKG4sdCl7ZnVuY3Rpb24gZSgpe3RoaXMucmVtb3ZlQXR0cmlidXRlKG4pfWZ1bmN0aW9uIHIoKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCl9ZnVuY3Rpb24gdSgpe3RoaXMuc2V0QXR0cmlidXRlKG4sdCl9ZnVuY3Rpb24gaSgpe3RoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLHQpfWZ1bmN0aW9uIG8oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP3RoaXMucmVtb3ZlQXR0cmlidXRlKG4pOnRoaXMuc2V0QXR0cmlidXRlKG4sZSl9ZnVuY3Rpb24gYSgpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsLGUpfXJldHVybiBuPVhvLm5zLnF1YWxpZnkobiksbnVsbD09dD9uLmxvY2FsP3I6ZToiZnVuY3Rpb24iPT10eXBlb2YgdD9uLmxvY2FsP2E6bzpuLmxvY2FsP2k6dX1mdW5jdGlvbiB3KG4pe3JldHVybiBuLnRyaW0oKS5yZXBsYWNlKC9ccysvZywiICIpfWZ1bmN0aW9uIFMobil7cmV0dXJuIG5ldyBSZWdFeHAoIig/Ol58XFxzKykiK1hvLnJlcXVvdGUobikrIig/Olxccyt8JCkiLCJnIil9ZnVuY3Rpb24gayhuKXtyZXR1cm4gbi50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gRShuLHQpe2Z1bmN0aW9uIGUoKXtmb3IodmFyIGU9LTE7KytlPHU7KW5bZV0odGhpcyx0KX1mdW5jdGlvbiByKCl7Zm9yKHZhciBlPS0xLHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7KytlPHU7KW5bZV0odGhpcyxyKX1uPWsobikubWFwKEEpO3ZhciB1PW4ubGVuZ3RoO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3I6ZX1mdW5jdGlvbiBBKG4pe3ZhciB0PVMobik7cmV0dXJuIGZ1bmN0aW9uKGUscil7aWYodT1lLmNsYXNzTGlzdClyZXR1cm4gcj91LmFkZChuKTp1LnJlbW92ZShuKTt2YXIgdT1lLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiI7cj8odC5sYXN0SW5kZXg9MCx0LnRlc3QodSl8fGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdyh1KyIgIituKSkpOmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdyh1LnJlcGxhY2UodCwiICIpKSl9fWZ1bmN0aW9uIEMobix0LGUpe2Z1bmN0aW9uIHIoKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG4pfWZ1bmN0aW9uIHUoKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KG4sdCxlKX1mdW5jdGlvbiBpKCl7dmFyIHI9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09cj90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG4pOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkobixyLGUpfXJldHVybiBudWxsPT10P3I6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/aTp1fWZ1bmN0aW9uIE4obix0KXtmdW5jdGlvbiBlKCl7ZGVsZXRlIHRoaXNbbl19ZnVuY3Rpb24gcigpe3RoaXNbbl09dH1mdW5jdGlvbiB1KCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT9kZWxldGUgdGhpc1tuXTp0aGlzW25dPWV9cmV0dXJuIG51bGw9PXQ/ZToiZnVuY3Rpb24iPT10eXBlb2YgdD91OnJ9ZnVuY3Rpb24gTChuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOihuPVhvLm5zLnF1YWxpZnkobikpLmxvY2FsP2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobi5zcGFjZSxuLmxvY2FsKX06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0aGlzLm5hbWVzcGFjZVVSSSxuKX19ZnVuY3Rpb24gVChuKXtyZXR1cm57X19kYXRhX186bn19ZnVuY3Rpb24gcShuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdmEodGhpcyxuKX19ZnVuY3Rpb24geihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aHx8KG49WG8uYXNjZW5kaW5nKSxmdW5jdGlvbih0LGUpe3JldHVybiB0JiZlP24odC5fX2RhdGFfXyxlLl9fZGF0YV9fKTohdC0hZX19ZnVuY3Rpb24gUihuLHQpe2Zvcih2YXIgZT0wLHI9bi5sZW5ndGg7cj5lO2UrKylmb3IodmFyIHUsaT1uW2VdLG89MCxhPWkubGVuZ3RoO2E+bztvKyspKHU9aVtvXSkmJnQodSxvLGUpO3JldHVybiBufWZ1bmN0aW9uIEQobil7cmV0dXJuIGZhKG4seWEpLG59ZnVuY3Rpb24gUChuKXt2YXIgdCxlO3JldHVybiBmdW5jdGlvbihyLHUsaSl7dmFyIG8sYT1uW2ldLnVwZGF0ZSxjPWEubGVuZ3RoO2ZvcihpIT1lJiYoZT1pLHQ9MCksdT49dCYmKHQ9dSsxKTshKG89YVt0XSkmJisrdDxjOyk7cmV0dXJuIG99fWZ1bmN0aW9uIFUoKXt2YXIgbj10aGlzLl9fdHJhbnNpdGlvbl9fO24mJisrbi5hY3RpdmV9ZnVuY3Rpb24gaihuLHQsZSl7ZnVuY3Rpb24gcigpe3ZhciB0PXRoaXNbb107dCYmKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLHQsdC4kKSxkZWxldGUgdGhpc1tvXSl9ZnVuY3Rpb24gdSgpe3ZhciB1PWModCxCbyhhcmd1bWVudHMpKTtyLmNhbGwodGhpcyksdGhpcy5hZGRFdmVudExpc3RlbmVyKG4sdGhpc1tvXT11LHUuJD1lKSx1Ll89dH1mdW5jdGlvbiBpKCl7dmFyIHQsZT1uZXcgUmVnRXhwKCJeX19vbihbXi5dKykiK1hvLnJlcXVvdGUobikrIiQiKTtmb3IodmFyIHIgaW4gdGhpcylpZih0PXIubWF0Y2goZSkpe3ZhciB1PXRoaXNbcl07dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHRbMV0sdSx1LiQpLGRlbGV0ZSB0aGlzW3JdfX12YXIgbz0iX19vbiIrbixhPW4uaW5kZXhPZigiLiIpLGM9SDthPjAmJihuPW4uc3Vic3RyaW5nKDAsYSkpO3ZhciBzPU1hLmdldChuKTtyZXR1cm4gcyYmKG49cyxjPUYpLGE/dD91OnI6dD9nOml9ZnVuY3Rpb24gSChuLHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1Yby5ldmVudDtYby5ldmVudD1lLHRbMF09dGhpcy5fX2RhdGFfXzt0cnl7bi5hcHBseSh0aGlzLHQpfWZpbmFsbHl7WG8uZXZlbnQ9cn19fWZ1bmN0aW9uIEYobix0KXt2YXIgZT1IKG4sdCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMscj1uLnJlbGF0ZWRUYXJnZXQ7ciYmKHI9PT10fHw4JnIuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkpfHxlLmNhbGwodCxuKX19ZnVuY3Rpb24gTygpe3ZhciBuPSIuZHJhZ3N1cHByZXNzLSIrICsrYmEsdD0iY2xpY2siK24sZT1Yby5zZWxlY3QoR28pLm9uKCJ0b3VjaG1vdmUiK24sZCkub24oImRyYWdzdGFydCIrbixkKS5vbigic2VsZWN0c3RhcnQiK24sZCk7aWYoX2Epe3ZhciByPUpvLnN0eWxlLHU9cltfYV07cltfYV09Im5vbmUifXJldHVybiBmdW5jdGlvbihpKXtmdW5jdGlvbiBvKCl7ZS5vbih0LG51bGwpfWUub24obixudWxsKSxfYSYmKHJbX2FdPXUpLGkmJihlLm9uKHQsZnVuY3Rpb24oKXtkKCksbygpfSwhMCksc2V0VGltZW91dChvLDApKX19ZnVuY3Rpb24gWShuLHQpe3QuY2hhbmdlZFRvdWNoZXMmJih0PXQuY2hhbmdlZFRvdWNoZXNbMF0pO3ZhciBlPW4ub3duZXJTVkdFbGVtZW50fHxuO2lmKGUuY3JlYXRlU1ZHUG9pbnQpe3ZhciByPWUuY3JlYXRlU1ZHUG9pbnQoKTtpZigwPndhJiYoR28uc2Nyb2xsWHx8R28uc2Nyb2xsWSkpe2U9WG8uc2VsZWN0KCJib2R5IikuYXBwZW5kKCJzdmciKS5zdHlsZSh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAscGFkZGluZzowLGJvcmRlcjoibm9uZSJ9LCJpbXBvcnRhbnQiKTt2YXIgdT1lWzBdWzBdLmdldFNjcmVlbkNUTSgpO3dhPSEodS5mfHx1LmUpLGUucmVtb3ZlKCl9cmV0dXJuIHdhPyhyLng9dC5wYWdlWCxyLnk9dC5wYWdlWSk6KHIueD10LmNsaWVudFgsci55PXQuY2xpZW50WSkscj1yLm1hdHJpeFRyYW5zZm9ybShuLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW3IueCxyLnldfXZhciBpPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW3QuY2xpZW50WC1pLmxlZnQtbi5jbGllbnRMZWZ0LHQuY2xpZW50WS1pLnRvcC1uLmNsaWVudFRvcF19ZnVuY3Rpb24gSShuKXtyZXR1cm4gbj4wPzE6MD5uPy0xOjB9ZnVuY3Rpb24gWihuLHQsZSl7cmV0dXJuKHRbMF0tblswXSkqKGVbMV0tblsxXSktKHRbMV0tblsxXSkqKGVbMF0tblswXSl9ZnVuY3Rpb24gVihuKXtyZXR1cm4gbj4xPzA6LTE+bj9TYTpNYXRoLmFjb3Mobil9ZnVuY3Rpb24gWChuKXtyZXR1cm4gbj4xP0VhOi0xPm4/LUVhOk1hdGguYXNpbihuKX1mdW5jdGlvbiAkKG4pe3JldHVybigobj1NYXRoLmV4cChuKSktMS9uKS8yfWZ1bmN0aW9uIEIobil7cmV0dXJuKChuPU1hdGguZXhwKG4pKSsxL24pLzJ9ZnVuY3Rpb24gVyhuKXtyZXR1cm4oKG49TWF0aC5leHAoMipuKSktMSkvKG4rMSl9ZnVuY3Rpb24gSihuKXtyZXR1cm4obj1NYXRoLnNpbihuLzIpKSpufWZ1bmN0aW9uIEcoKXt9ZnVuY3Rpb24gSyhuLHQsZSl7cmV0dXJuIG5ldyBRKG4sdCxlKX1mdW5jdGlvbiBRKG4sdCxlKXt0aGlzLmg9bix0aGlzLnM9dCx0aGlzLmw9ZX1mdW5jdGlvbiBudChuLHQsZSl7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbj4zNjA/bi09MzYwOjA+biYmKG4rPTM2MCksNjA+bj9pKyhvLWkpKm4vNjA6MTgwPm4/bzoyNDA+bj9pKyhvLWkpKigyNDAtbikvNjA6aX1mdW5jdGlvbiB1KG4pe3JldHVybiBNYXRoLnJvdW5kKDI1NSpyKG4pKX12YXIgaSxvO3JldHVybiBuPWlzTmFOKG4pPzA6KG4lPTM2MCk8MD9uKzM2MDpuLHQ9aXNOYU4odCk/MDowPnQ/MDp0PjE/MTp0LGU9MD5lPzA6ZT4xPzE6ZSxvPS41Pj1lP2UqKDErdCk6ZSt0LWUqdCxpPTIqZS1vLGd0KHUobisxMjApLHUobiksdShuLTEyMCkpfWZ1bmN0aW9uIHR0KG4sdCxlKXtyZXR1cm4gbmV3IGV0KG4sdCxlKX1mdW5jdGlvbiBldChuLHQsZSl7dGhpcy5oPW4sdGhpcy5jPXQsdGhpcy5sPWV9ZnVuY3Rpb24gcnQobix0LGUpe3JldHVybiBpc05hTihuKSYmKG49MCksaXNOYU4odCkmJih0PTApLHV0KGUsTWF0aC5jb3Mobio9TmEpKnQsTWF0aC5zaW4obikqdCl9ZnVuY3Rpb24gdXQobix0LGUpe3JldHVybiBuZXcgaXQobix0LGUpfWZ1bmN0aW9uIGl0KG4sdCxlKXt0aGlzLmw9bix0aGlzLmE9dCx0aGlzLmI9ZX1mdW5jdGlvbiBvdChuLHQsZSl7dmFyIHI9KG4rMTYpLzExNix1PXIrdC81MDAsaT1yLWUvMjAwO3JldHVybiB1PWN0KHUpKkZhLHI9Y3QocikqT2EsaT1jdChpKSpZYSxndChsdCgzLjI0MDQ1NDIqdS0xLjUzNzEzODUqci0uNDk4NTMxNCppKSxsdCgtLjk2OTI2Nip1KzEuODc2MDEwOCpyKy4wNDE1NTYqaSksbHQoLjA1NTY0MzQqdS0uMjA0MDI1OSpyKzEuMDU3MjI1MippKSl9ZnVuY3Rpb24gYXQobix0LGUpe3JldHVybiBuPjA/dHQoTWF0aC5hdGFuMihlLHQpKkxhLE1hdGguc3FydCh0KnQrZSplKSxuKTp0dCgwLzAsMC8wLG4pfWZ1bmN0aW9uIGN0KG4pe3JldHVybiBuPi4yMDY4OTMwMzQ/bipuKm46KG4tNC8yOSkvNy43ODcwMzd9ZnVuY3Rpb24gc3Qobil7cmV0dXJuIG4+LjAwODg1Nj9NYXRoLnBvdyhuLDEvMyk6Ny43ODcwMzcqbis0LzI5fWZ1bmN0aW9uIGx0KG4pe3JldHVybiBNYXRoLnJvdW5kKDI1NSooLjAwMzA0Pj1uPzEyLjkyKm46MS4wNTUqTWF0aC5wb3cobiwxLzIuNCktLjA1NSkpfWZ1bmN0aW9uIGZ0KG4pe3JldHVybiBndChuPj4xNiwyNTUmbj4+OCwyNTUmbil9ZnVuY3Rpb24gaHQobil7cmV0dXJuIGZ0KG4pKyIifWZ1bmN0aW9uIGd0KG4sdCxlKXtyZXR1cm4gbmV3IHB0KG4sdCxlKX1mdW5jdGlvbiBwdChuLHQsZSl7dGhpcy5yPW4sdGhpcy5nPXQsdGhpcy5iPWV9ZnVuY3Rpb24gdnQobil7cmV0dXJuIDE2Pm4/IjAiK01hdGgubWF4KDAsbikudG9TdHJpbmcoMTYpOk1hdGgubWluKDI1NSxuKS50b1N0cmluZygxNil9ZnVuY3Rpb24gZHQobix0LGUpe3ZhciByLHUsaSxvLGE9MCxjPTAscz0wO2lmKHU9LyhbYS16XSspXCgoLiopXCkvaS5leGVjKG4pKXN3aXRjaChpPXVbMl0uc3BsaXQoIiwiKSx1WzFdKXtjYXNlImhzbCI6cmV0dXJuIGUocGFyc2VGbG9hdChpWzBdKSxwYXJzZUZsb2F0KGlbMV0pLzEwMCxwYXJzZUZsb2F0KGlbMl0pLzEwMCk7Y2FzZSJyZ2IiOnJldHVybiB0KE10KGlbMF0pLE10KGlbMV0pLE10KGlbMl0pKX1yZXR1cm4obz1WYS5nZXQobikpP3Qoby5yLG8uZyxvLmIpOihudWxsIT1uJiYiIyI9PT1uLmNoYXJBdCgwKSYmKHI9cGFyc2VJbnQobi5zdWJzdHJpbmcoMSksMTYpLGlzTmFOKHIpfHwoND09PW4ubGVuZ3RoPyhhPSgzODQwJnIpPj40LGE9YT4+NHxhLGM9MjQwJnIsYz1jPj40fGMscz0xNSZyLHM9czw8NHxzKTo3PT09bi5sZW5ndGgmJihhPSgxNjcxMTY4MCZyKT4+MTYsYz0oNjUyODAmcik+Pjgscz0yNTUmcikpKSx0KGEsYyxzKSl9ZnVuY3Rpb24gbXQobix0LGUpe3ZhciByLHUsaT1NYXRoLm1pbihuLz0yNTUsdC89MjU1LGUvPTI1NSksbz1NYXRoLm1heChuLHQsZSksYT1vLWksYz0obytpKS8yO3JldHVybiBhPyh1PS41PmM/YS8obytpKTphLygyLW8taSkscj1uPT1vPyh0LWUpL2ErKGU+dD82OjApOnQ9PW8/KGUtbikvYSsyOihuLXQpL2ErNCxyKj02MCk6KHI9MC8wLHU9Yz4wJiYxPmM/MDpyKSxLKHIsdSxjKX1mdW5jdGlvbiB5dChuLHQsZSl7bj14dChuKSx0PXh0KHQpLGU9eHQoZSk7dmFyIHI9c3QoKC40MTI0NTY0Km4rLjM1NzU3NjEqdCsuMTgwNDM3NSplKS9GYSksdT1zdCgoLjIxMjY3MjkqbisuNzE1MTUyMip0Ky4wNzIxNzUqZSkvT2EpLGk9c3QoKC4wMTkzMzM5Km4rLjExOTE5Mip0Ky45NTAzMDQxKmUpL1lhKTtyZXR1cm4gdXQoMTE2KnUtMTYsNTAwKihyLXUpLDIwMCoodS1pKSl9ZnVuY3Rpb24geHQobil7cmV0dXJuKG4vPTI1NSk8PS4wNDA0NT9uLzEyLjkyOk1hdGgucG93KChuKy4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gTXQobil7dmFyIHQ9cGFyc2VGbG9hdChuKTtyZXR1cm4iJSI9PT1uLmNoYXJBdChuLmxlbmd0aC0xKT9NYXRoLnJvdW5kKDIuNTUqdCk6dH1mdW5jdGlvbiBfdChuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOmZ1bmN0aW9uKCl7cmV0dXJuIG59fWZ1bmN0aW9uIGJ0KG4pe3JldHVybiBufWZ1bmN0aW9uIHd0KG4pe3JldHVybiBmdW5jdGlvbih0LGUscil7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgZSYmKHI9ZSxlPW51bGwpLFN0KHQsZSxuLHIpfX1mdW5jdGlvbiBTdChuLHQsZSxyKXtmdW5jdGlvbiB1KCl7dmFyIG4sdD1jLnN0YXR1cztpZighdCYmYy5yZXNwb25zZVRleHR8fHQ+PTIwMCYmMzAwPnR8fDMwND09PXQpe3RyeXtuPWUuY2FsbChpLGMpfWNhdGNoKHIpe3JldHVybiBvLmVycm9yLmNhbGwoaSxyKSx2b2lkIDB9by5sb2FkLmNhbGwoaSxuKX1lbHNlIG8uZXJyb3IuY2FsbChpLGMpfXZhciBpPXt9LG89WG8uZGlzcGF0Y2goImJlZm9yZXNlbmQiLCJwcm9ncmVzcyIsImxvYWQiLCJlcnJvciIpLGE9e30sYz1uZXcgWE1MSHR0cFJlcXVlc3Qscz1udWxsO3JldHVybiFHby5YRG9tYWluUmVxdWVzdHx8IndpdGhDcmVkZW50aWFscyJpbiBjfHwhL14oaHR0cChzKT86KT9cL1wvLy50ZXN0KG4pfHwoYz1uZXcgWERvbWFpblJlcXVlc3QpLCJvbmxvYWQiaW4gYz9jLm9ubG9hZD1jLm9uZXJyb3I9dTpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2MucmVhZHlTdGF0ZT4zJiZ1KCl9LGMub25wcm9ncmVzcz1mdW5jdGlvbihuKXt2YXIgdD1Yby5ldmVudDtYby5ldmVudD1uO3RyeXtvLnByb2dyZXNzLmNhbGwoaSxjKX1maW5hbGx5e1hvLmV2ZW50PXR9fSxpLmhlYWRlcj1mdW5jdGlvbihuLHQpe3JldHVybiBuPShuKyIiKS50b0xvd2VyQ2FzZSgpLGFyZ3VtZW50cy5sZW5ndGg8Mj9hW25dOihudWxsPT10P2RlbGV0ZSBhW25dOmFbbl09dCsiIixpKX0saS5taW1lVHlwZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1udWxsPT1uP251bGw6bisiIixpKTp0fSxpLnJlc3BvbnNlVHlwZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1uLGkpOnN9LGkucmVzcG9uc2U9ZnVuY3Rpb24obil7cmV0dXJuIGU9bixpfSxbImdldCIsInBvc3QiXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lbbl09ZnVuY3Rpb24oKXtyZXR1cm4gaS5zZW5kLmFwcGx5KGksW25dLmNvbmNhdChCbyhhcmd1bWVudHMpKSl9fSksaS5zZW5kPWZ1bmN0aW9uKGUscix1KXtpZigyPT09YXJndW1lbnRzLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIHImJih1PXIscj1udWxsKSxjLm9wZW4oZSxuLCEwKSxudWxsPT10fHwiYWNjZXB0ImluIGF8fChhLmFjY2VwdD10KyIsKi8qIiksYy5zZXRSZXF1ZXN0SGVhZGVyKWZvcih2YXIgbCBpbiBhKWMuc2V0UmVxdWVzdEhlYWRlcihsLGFbbF0pO3JldHVybiBudWxsIT10JiZjLm92ZXJyaWRlTWltZVR5cGUmJmMub3ZlcnJpZGVNaW1lVHlwZSh0KSxudWxsIT1zJiYoYy5yZXNwb25zZVR5cGU9cyksbnVsbCE9dSYmaS5vbigiZXJyb3IiLHUpLm9uKCJsb2FkIixmdW5jdGlvbihuKXt1KG51bGwsbil9KSxvLmJlZm9yZXNlbmQuY2FsbChpLGMpLGMuc2VuZChudWxsPT1yP251bGw6ciksaX0saS5hYm9ydD1mdW5jdGlvbigpe3JldHVybiBjLmFib3J0KCksaX0sWG8ucmViaW5kKGksbywib24iKSxudWxsPT1yP2k6aS5nZXQoa3QocikpfWZ1bmN0aW9uIGt0KG4pe3JldHVybiAxPT09bi5sZW5ndGg/ZnVuY3Rpb24odCxlKXtuKG51bGw9PXQ/ZTpudWxsKX06bn1mdW5jdGlvbiBFdCgpe3ZhciBuPUF0KCksdD1DdCgpLW47dD4yND8oaXNGaW5pdGUodCkmJihjbGVhclRpbWVvdXQoV2EpLFdhPXNldFRpbWVvdXQoRXQsdCkpLEJhPTApOihCYT0xLEdhKEV0KSl9ZnVuY3Rpb24gQXQoKXt2YXIgbj1EYXRlLm5vdygpO2ZvcihKYT1YYTtKYTspbj49SmEudCYmKEphLmY9SmEuYyhuLUphLnQpKSxKYT1KYS5uO3JldHVybiBufWZ1bmN0aW9uIEN0KCl7Zm9yKHZhciBuLHQ9WGEsZT0xLzA7dDspdC5mP3Q9bj9uLm49dC5uOlhhPXQubjoodC50PGUmJihlPXQudCksdD0obj10KS5uKTtyZXR1cm4gJGE9bixlfWZ1bmN0aW9uIE50KG4sdCl7cmV0dXJuIHQtKG4/TWF0aC5jZWlsKE1hdGgubG9nKG4pL01hdGguTE4xMCk6MSl9ZnVuY3Rpb24gTHQobix0KXt2YXIgZT1NYXRoLnBvdygxMCwzKm9hKDgtdCkpO3JldHVybntzY2FsZTp0Pjg/ZnVuY3Rpb24obil7cmV0dXJuIG4vZX06ZnVuY3Rpb24obil7cmV0dXJuIG4qZX0sc3ltYm9sOm59fWZ1bmN0aW9uIFR0KG4pe3ZhciB0PW4uZGVjaW1hbCxlPW4udGhvdXNhbmRzLHI9bi5ncm91cGluZyx1PW4uY3VycmVuY3ksaT1yP2Z1bmN0aW9uKG4pe2Zvcih2YXIgdD1uLmxlbmd0aCx1PVtdLGk9MCxvPXJbMF07dD4wJiZvPjA7KXUucHVzaChuLnN1YnN0cmluZyh0LT1vLHQrbykpLG89cltpPShpKzEpJXIubGVuZ3RoXTtyZXR1cm4gdS5yZXZlcnNlKCkuam9pbihlKX06YnQ7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPVFhLmV4ZWMobikscj1lWzFdfHwiICIsbz1lWzJdfHwiPiIsYT1lWzNdfHwiIixjPWVbNF18fCIiLHM9ZVs1XSxsPStlWzZdLGY9ZVs3XSxoPWVbOF0sZz1lWzldLHA9MSx2PSIiLGQ9IiIsbT0hMTtzd2l0Y2goaCYmKGg9K2guc3Vic3RyaW5nKDEpKSwoc3x8IjAiPT09ciYmIj0iPT09bykmJihzPXI9IjAiLG89Ij0iLGYmJihsLT1NYXRoLmZsb29yKChsLTEpLzQpKSksZyl7Y2FzZSJuIjpmPSEwLGc9ImciO2JyZWFrO2Nhc2UiJSI6cD0xMDAsZD0iJSIsZz0iZiI7YnJlYWs7Y2FzZSJwIjpwPTEwMCxkPSIlIixnPSJyIjticmVhaztjYXNlImIiOmNhc2UibyI6Y2FzZSJ4IjpjYXNlIlgiOiIjIj09PWMmJih2PSIwIitnLnRvTG93ZXJDYXNlKCkpO2Nhc2UiYyI6Y2FzZSJkIjptPSEwLGg9MDticmVhaztjYXNlInMiOnA9LTEsZz0iciJ9IiQiPT09YyYmKHY9dVswXSxkPXVbMV0pLCJyIiE9Z3x8aHx8KGc9ImciKSxudWxsIT1oJiYoImciPT1nP2g9TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxoKSk6KCJlIj09Z3x8ImYiPT1nKSYmKGg9TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxoKSkpKSxnPW5jLmdldChnKXx8cXQ7dmFyIHk9cyYmZjtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9ZDtpZihtJiZuJTEpcmV0dXJuIiI7dmFyIHU9MD5ufHwwPT09biYmMD4xL24/KG49LW4sIi0iKTphO2lmKDA+cCl7dmFyIGM9WG8uZm9ybWF0UHJlZml4KG4saCk7bj1jLnNjYWxlKG4pLGU9Yy5zeW1ib2wrZH1lbHNlIG4qPXA7bj1nKG4saCk7dmFyIHg9bi5sYXN0SW5kZXhPZigiLiIpLE09MD54P246bi5zdWJzdHJpbmcoMCx4KSxfPTA+eD8iIjp0K24uc3Vic3RyaW5nKHgrMSk7IXMmJmYmJihNPWkoTSkpO3ZhciBiPXYubGVuZ3RoK00ubGVuZ3RoK18ubGVuZ3RoKyh5PzA6dS5sZW5ndGgpLHc9bD5iP25ldyBBcnJheShiPWwtYisxKS5qb2luKHIpOiIiO3JldHVybiB5JiYoTT1pKHcrTSkpLHUrPXYsbj1NK18sKCI8Ij09PW8/dStuK3c6Ij4iPT09bz93K3UrbjoiXiI9PT1vP3cuc3Vic3RyaW5nKDAsYj4+PTEpK3Urbit3LnN1YnN0cmluZyhiKTp1Kyh5P246dytuKSkrZX19fWZ1bmN0aW9uIHF0KG4pe3JldHVybiBuKyIifWZ1bmN0aW9uIHp0KCl7dGhpcy5fPW5ldyBEYXRlKGFyZ3VtZW50cy5sZW5ndGg+MT9EYXRlLlVUQy5hcHBseSh0aGlzLGFyZ3VtZW50cyk6YXJndW1lbnRzWzBdKX1mdW5jdGlvbiBSdChuLHQsZSl7ZnVuY3Rpb24gcih0KXt2YXIgZT1uKHQpLHI9aShlLDEpO3JldHVybiByLXQ+dC1lP2U6cn1mdW5jdGlvbiB1KGUpe3JldHVybiB0KGU9bihuZXcgZWMoZS0xKSksMSksZX1mdW5jdGlvbiBpKG4sZSl7cmV0dXJuIHQobj1uZXcgZWMoK24pLGUpLG59ZnVuY3Rpb24gbyhuLHIsaSl7dmFyIG89dShuKSxhPVtdO2lmKGk+MSlmb3IoO3I+bzspZShvKSVpfHxhLnB1c2gobmV3IERhdGUoK28pKSx0KG8sMSk7ZWxzZSBmb3IoO3I+bzspYS5wdXNoKG5ldyBEYXRlKCtvKSksdChvLDEpO3JldHVybiBhfWZ1bmN0aW9uIGEobix0LGUpe3RyeXtlYz16dDt2YXIgcj1uZXcgenQ7cmV0dXJuIHIuXz1uLG8ocix0LGUpfWZpbmFsbHl7ZWM9RGF0ZX19bi5mbG9vcj1uLG4ucm91bmQ9cixuLmNlaWw9dSxuLm9mZnNldD1pLG4ucmFuZ2U9bzt2YXIgYz1uLnV0Yz1EdChuKTtyZXR1cm4gYy5mbG9vcj1jLGMucm91bmQ9RHQociksYy5jZWlsPUR0KHUpLGMub2Zmc2V0PUR0KGkpLGMucmFuZ2U9YSxufWZ1bmN0aW9uIER0KG4pe3JldHVybiBmdW5jdGlvbih0LGUpe3RyeXtlYz16dDt2YXIgcj1uZXcgenQ7cmV0dXJuIHIuXz10LG4ocixlKS5ffWZpbmFsbHl7ZWM9RGF0ZX19fWZ1bmN0aW9uIFB0KG4pe2Z1bmN0aW9uIHQobil7ZnVuY3Rpb24gdCh0KXtmb3IodmFyIGUsdSxpLG89W10sYT0tMSxjPTA7KythPHI7KTM3PT09bi5jaGFyQ29kZUF0KGEpJiYoby5wdXNoKG4uc3Vic3RyaW5nKGMsYSkpLG51bGwhPSh1PXVjW2U9bi5jaGFyQXQoKythKV0pJiYoZT1uLmNoYXJBdCgrK2EpKSwoaT1DW2VdKSYmKGU9aSh0LG51bGw9PXU/ImUiPT09ZT8iICI6IjAiOnUpKSxvLnB1c2goZSksYz1hKzEpO3JldHVybiBvLnB1c2gobi5zdWJzdHJpbmcoYyxhKSksby5qb2luKCIiKX12YXIgcj1uLmxlbmd0aDtyZXR1cm4gdC5wYXJzZT1mdW5jdGlvbih0KXt2YXIgcj17eToxOTAwLG06MCxkOjEsSDowLE06MCxTOjAsTDowLFo6bnVsbH0sdT1lKHIsbix0LDApO2lmKHUhPXQubGVuZ3RoKXJldHVybiBudWxsOyJwImluIHImJihyLkg9ci5IJTEyKzEyKnIucCk7dmFyIGk9bnVsbCE9ci5aJiZlYyE9PXp0LG89bmV3KGk/enQ6ZWMpO3JldHVybiJqImluIHI/by5zZXRGdWxsWWVhcihyLnksMCxyLmopOiJ3ImluIHImJigiVyJpbiByfHwiVSJpbiByKT8oby5zZXRGdWxsWWVhcihyLnksMCwxKSxvLnNldEZ1bGxZZWFyKHIueSwwLCJXImluIHI/KHIudys2KSU3Kzcqci5XLShvLmdldERheSgpKzUpJTc6ci53Kzcqci5VLShvLmdldERheSgpKzYpJTcpKTpvLnNldEZ1bGxZZWFyKHIueSxyLm0sci5kKSxvLnNldEhvdXJzKHIuSCtNYXRoLmZsb29yKHIuWi8xMDApLHIuTStyLlolMTAwLHIuUyxyLkwpLGk/by5fOm99LHQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sdH1mdW5jdGlvbiBlKG4sdCxlLHIpe2Zvcih2YXIgdSxpLG8sYT0wLGM9dC5sZW5ndGgscz1lLmxlbmd0aDtjPmE7KXtpZihyPj1zKXJldHVybi0xO2lmKHU9dC5jaGFyQ29kZUF0KGErKyksMzc9PT11KXtpZihvPXQuY2hhckF0KGErKyksaT1OW28gaW4gdWM/dC5jaGFyQXQoYSsrKTpvXSwhaXx8KHI9aShuLGUscikpPDApcmV0dXJuLTF9ZWxzZSBpZih1IT1lLmNoYXJDb2RlQXQocisrKSlyZXR1cm4tMX1yZXR1cm4gcn1mdW5jdGlvbiByKG4sdCxlKXtiLmxhc3RJbmRleD0wO3ZhciByPWIuZXhlYyh0LnN1YnN0cmluZyhlKSk7cmV0dXJuIHI/KG4udz13LmdldChyWzBdLnRvTG93ZXJDYXNlKCkpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHUobix0LGUpe00ubGFzdEluZGV4PTA7dmFyIHI9TS5leGVjKHQuc3Vic3RyaW5nKGUpKTtyZXR1cm4gcj8obi53PV8uZ2V0KHJbMF0udG9Mb3dlckNhc2UoKSksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gaShuLHQsZSl7RS5sYXN0SW5kZXg9MDt2YXIgcj1FLmV4ZWModC5zdWJzdHJpbmcoZSkpO3JldHVybiByPyhuLm09QS5nZXQoclswXS50b0xvd2VyQ2FzZSgpKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBvKG4sdCxlKXtTLmxhc3RJbmRleD0wO3ZhciByPVMuZXhlYyh0LnN1YnN0cmluZyhlKSk7cmV0dXJuIHI/KG4ubT1rLmdldChyWzBdLnRvTG93ZXJDYXNlKCkpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGEobix0LHIpe3JldHVybiBlKG4sQy5jLnRvU3RyaW5nKCksdCxyKX1mdW5jdGlvbiBjKG4sdCxyKXtyZXR1cm4gZShuLEMueC50b1N0cmluZygpLHQscil9ZnVuY3Rpb24gcyhuLHQscil7cmV0dXJuIGUobixDLlgudG9TdHJpbmcoKSx0LHIpfWZ1bmN0aW9uIGwobix0LGUpe3ZhciByPXguZ2V0KHQuc3Vic3RyaW5nKGUsZSs9MikudG9Mb3dlckNhc2UoKSk7cmV0dXJuIG51bGw9PXI/LTE6KG4ucD1yLGUpfXZhciBmPW4uZGF0ZVRpbWUsaD1uLmRhdGUsZz1uLnRpbWUscD1uLnBlcmlvZHMsdj1uLmRheXMsZD1uLnNob3J0RGF5cyxtPW4ubW9udGhzLHk9bi5zaG9ydE1vbnRoczt0LnV0Yz1mdW5jdGlvbihuKXtmdW5jdGlvbiBlKG4pe3RyeXtlYz16dDt2YXIgdD1uZXcgZWM7cmV0dXJuIHQuXz1uLHIodCl9ZmluYWxseXtlYz1EYXRlfX12YXIgcj10KG4pO3JldHVybiBlLnBhcnNlPWZ1bmN0aW9uKG4pe3RyeXtlYz16dDt2YXIgdD1yLnBhcnNlKG4pO3JldHVybiB0JiZ0Ll99ZmluYWxseXtlYz1EYXRlfX0sZS50b1N0cmluZz1yLnRvU3RyaW5nLGV9LHQubXVsdGk9dC51dGMubXVsdGk9ZWU7dmFyIHg9WG8ubWFwKCksTT1qdCh2KSxfPUh0KHYpLGI9anQoZCksdz1IdChkKSxTPWp0KG0pLGs9SHQobSksRT1qdCh5KSxBPUh0KHkpO3AuZm9yRWFjaChmdW5jdGlvbihuLHQpe3guc2V0KG4udG9Mb3dlckNhc2UoKSx0KX0pO3ZhciBDPXthOmZ1bmN0aW9uKG4pe3JldHVybiBkW24uZ2V0RGF5KCldfSxBOmZ1bmN0aW9uKG4pe3JldHVybiB2W24uZ2V0RGF5KCldfSxiOmZ1bmN0aW9uKG4pe3JldHVybiB5W24uZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24obil7cmV0dXJuIG1bbi5nZXRNb250aCgpXX0sYzp0KGYpLGQ6ZnVuY3Rpb24obix0KXtyZXR1cm4gVXQobi5nZXREYXRlKCksdCwyKX0sZTpmdW5jdGlvbihuLHQpe3JldHVybiBVdChuLmdldERhdGUoKSx0LDIpfSxIOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0SG91cnMoKSx0LDIpfSxJOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0SG91cnMoKSUxMnx8MTIsdCwyKX0sajpmdW5jdGlvbihuLHQpe3JldHVybiBVdCgxK3RjLmRheU9mWWVhcihuKSx0LDMpfSxMOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0TWlsbGlzZWNvbmRzKCksdCwzKX0sbTpmdW5jdGlvbihuLHQpe3JldHVybiBVdChuLmdldE1vbnRoKCkrMSx0LDIpfSxNOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0TWludXRlcygpLHQsMil9LHA6ZnVuY3Rpb24obil7cmV0dXJuIHBbKyhuLmdldEhvdXJzKCk+PTEyKV19LFM6ZnVuY3Rpb24obix0KXtyZXR1cm4gVXQobi5nZXRTZWNvbmRzKCksdCwyKX0sVTpmdW5jdGlvbihuLHQpe3JldHVybiBVdCh0Yy5zdW5kYXlPZlllYXIobiksdCwyKX0sdzpmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXREYXkoKX0sVzpmdW5jdGlvbihuLHQpe3JldHVybiBVdCh0Yy5tb25kYXlPZlllYXIobiksdCwyKX0seDp0KGgpLFg6dChnKSx5OmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0RnVsbFllYXIoKSUxMDAsdCwyKX0sWTpmdW5jdGlvbihuLHQpe3JldHVybiBVdChuLmdldEZ1bGxZZWFyKCklMWU0LHQsNCl9LFo6bmUsIiUiOmZ1bmN0aW9uKCl7cmV0dXJuIiUifX0sTj17YTpyLEE6dSxiOmksQjpvLGM6YSxkOkJ0LGU6QnQsSDpKdCxJOkp0LGo6V3QsTDpRdCxtOiR0LE06R3QscDpsLFM6S3QsVTpPdCx3OkZ0LFc6WXQseDpjLFg6cyx5Olp0LFk6SXQsWjpWdCwiJSI6dGV9O3JldHVybiB0fWZ1bmN0aW9uIFV0KG4sdCxlKXt2YXIgcj0wPm4/Ii0iOiIiLHU9KHI/LW46bikrIiIsaT11Lmxlbmd0aDtyZXR1cm4gcisoZT5pP25ldyBBcnJheShlLWkrMSkuam9pbih0KSt1OnUpfWZ1bmN0aW9uIGp0KG4pe3JldHVybiBuZXcgUmVnRXhwKCJeKD86IituLm1hcChYby5yZXF1b3RlKS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gSHQobil7Zm9yKHZhciB0PW5ldyB1LGU9LTEscj1uLmxlbmd0aDsrK2U8cjspdC5zZXQobltlXS50b0xvd2VyQ2FzZSgpLGUpO3JldHVybiB0fWZ1bmN0aW9uIEZ0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUsZSsxKSk7cmV0dXJuIHI/KG4udz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBPdChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlKSk7cmV0dXJuIHI/KG4uVT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBZdChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlKSk7cmV0dXJuIHI/KG4uVz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJdChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlLGUrNCkpO3JldHVybiByPyhuLnk9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gWnQobix0LGUpe2ljLmxhc3RJbmRleD0wO3ZhciByPWljLmV4ZWModC5zdWJzdHJpbmcoZSxlKzIpKTtyZXR1cm4gcj8obi55PVh0KCtyWzBdKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBWdChuLHQsZSl7cmV0dXJuL15bKy1dXGR7NH0kLy50ZXN0KHQ9dC5zdWJzdHJpbmcoZSxlKzUpKT8obi5aPSt0LGUrNSk6LTF9ZnVuY3Rpb24gWHQobil7cmV0dXJuIG4rKG4+Njg/MTkwMDoyZTMpfWZ1bmN0aW9uICR0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUsZSsyKSk7cmV0dXJuIHI/KG4ubT1yWzBdLTEsZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQnQobix0LGUpe2ljLmxhc3RJbmRleD0wO3ZhciByPWljLmV4ZWModC5zdWJzdHJpbmcoZSxlKzIpKTtyZXR1cm4gcj8obi5kPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFd0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUsZSszKSk7cmV0dXJuIHI/KG4uaj0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBKdChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlLGUrMikpO3JldHVybiByPyhuLkg9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gR3Qobix0LGUpe2ljLmxhc3RJbmRleD0wO3ZhciByPWljLmV4ZWModC5zdWJzdHJpbmcoZSxlKzIpKTtyZXR1cm4gcj8obi5NPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEt0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUsZSsyKSk7cmV0dXJuIHI/KG4uUz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBRdChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlLGUrMykpO3JldHVybiByPyhuLkw9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbmUobil7dmFyIHQ9bi5nZXRUaW1lem9uZU9mZnNldCgpLGU9dD4wPyItIjoiKyIscj1+fihvYSh0KS82MCksdT1vYSh0KSU2MDtyZXR1cm4gZStVdChyLCIwIiwyKStVdCh1LCIwIiwyKX1mdW5jdGlvbiB0ZShuLHQsZSl7b2MubGFzdEluZGV4PTA7dmFyIHI9b2MuZXhlYyh0LnN1YnN0cmluZyhlLGUrMSkpO3JldHVybiByP2UrclswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gZWUobil7Zm9yKHZhciB0PW4ubGVuZ3RoLGU9LTE7KytlPHQ7KW5bZV1bMF09dGhpcyhuW2VdWzBdKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj1uW2VdOyFyWzFdKHQpOylyPW5bKytlXTtyZXR1cm4gclswXSh0KX19ZnVuY3Rpb24gcmUoKXt9ZnVuY3Rpb24gdWUobix0LGUpe3ZhciByPWUucz1uK3QsdT1yLW4saT1yLXU7ZS50PW4taSsodC11KX1mdW5jdGlvbiBpZShuLHQpe24mJmxjLmhhc093blByb3BlcnR5KG4udHlwZSkmJmxjW24udHlwZV0obix0KX1mdW5jdGlvbiBvZShuLHQsZSl7dmFyIHIsdT0tMSxpPW4ubGVuZ3RoLWU7Zm9yKHQubGluZVN0YXJ0KCk7Kyt1PGk7KXI9blt1XSx0LnBvaW50KHJbMF0sclsxXSxyWzJdKTt0LmxpbmVFbmQoKX1mdW5jdGlvbiBhZShuLHQpe3ZhciBlPS0xLHI9bi5sZW5ndGg7Zm9yKHQucG9seWdvblN0YXJ0KCk7KytlPHI7KW9lKG5bZV0sdCwxKTt0LnBvbHlnb25FbmQoKX1mdW5jdGlvbiBjZSgpe2Z1bmN0aW9uIG4obix0KXtuKj1OYSx0PXQqTmEvMitTYS80O3ZhciBlPW4tcixvPWU+PTA/MTotMSxhPW8qZSxjPU1hdGguY29zKHQpLHM9TWF0aC5zaW4odCksbD1pKnMsZj11KmMrbCpNYXRoLmNvcyhhKSxoPWwqbypNYXRoLnNpbihhKTtoYy5hZGQoTWF0aC5hdGFuMihoLGYpKSxyPW4sdT1jLGk9c312YXIgdCxlLHIsdSxpO2djLnBvaW50PWZ1bmN0aW9uKG8sYSl7Z2MucG9pbnQ9bixyPSh0PW8pKk5hLHU9TWF0aC5jb3MoYT0oZT1hKSpOYS8yK1NhLzQpLGk9TWF0aC5zaW4oYSl9LGdjLmxpbmVFbmQ9ZnVuY3Rpb24oKXtuKHQsZSl9fWZ1bmN0aW9uIHNlKG4pe3ZhciB0PW5bMF0sZT1uWzFdLHI9TWF0aC5jb3MoZSk7cmV0dXJuW3IqTWF0aC5jb3ModCkscipNYXRoLnNpbih0KSxNYXRoLnNpbihlKV19ZnVuY3Rpb24gbGUobix0KXtyZXR1cm4gblswXSp0WzBdK25bMV0qdFsxXStuWzJdKnRbMl19ZnVuY3Rpb24gZmUobix0KXtyZXR1cm5bblsxXSp0WzJdLW5bMl0qdFsxXSxuWzJdKnRbMF0tblswXSp0WzJdLG5bMF0qdFsxXS1uWzFdKnRbMF1dfWZ1bmN0aW9uIGhlKG4sdCl7blswXSs9dFswXSxuWzFdKz10WzFdLG5bMl0rPXRbMl19ZnVuY3Rpb24gZ2Uobix0KXtyZXR1cm5bblswXSp0LG5bMV0qdCxuWzJdKnRdfWZ1bmN0aW9uIHBlKG4pe3ZhciB0PU1hdGguc3FydChuWzBdKm5bMF0rblsxXSpuWzFdK25bMl0qblsyXSk7blswXS89dCxuWzFdLz10LG5bMl0vPXR9ZnVuY3Rpb24gdmUobil7cmV0dXJuW01hdGguYXRhbjIoblsxXSxuWzBdKSxYKG5bMl0pXX1mdW5jdGlvbiBkZShuLHQpe3JldHVybiBvYShuWzBdLXRbMF0pPEFhJiZvYShuWzFdLXRbMV0pPEFhfWZ1bmN0aW9uIG1lKG4sdCl7bio9TmE7dmFyIGU9TWF0aC5jb3ModCo9TmEpO3llKGUqTWF0aC5jb3MobiksZSpNYXRoLnNpbihuKSxNYXRoLnNpbih0KSl9ZnVuY3Rpb24geWUobix0LGUpeysrcGMsZGMrPShuLWRjKS9wYyxtYys9KHQtbWMpL3BjLHljKz0oZS15YykvcGN9ZnVuY3Rpb24geGUoKXtmdW5jdGlvbiBuKG4sdSl7bio9TmE7dmFyIGk9TWF0aC5jb3ModSo9TmEpLG89aSpNYXRoLmNvcyhuKSxhPWkqTWF0aC5zaW4obiksYz1NYXRoLnNpbih1KSxzPU1hdGguYXRhbjIoTWF0aC5zcXJ0KChzPWUqYy1yKmEpKnMrKHM9cipvLXQqYykqcysocz10KmEtZSpvKSpzKSx0Km8rZSphK3IqYyk7dmMrPXMseGMrPXMqKHQrKHQ9bykpLE1jKz1zKihlKyhlPWEpKSxfYys9cyoocisocj1jKSkseWUodCxlLHIpfXZhciB0LGUscjtrYy5wb2ludD1mdW5jdGlvbih1LGkpe3UqPU5hO3ZhciBvPU1hdGguY29zKGkqPU5hKTt0PW8qTWF0aC5jb3ModSksZT1vKk1hdGguc2luKHUpLHI9TWF0aC5zaW4oaSksa2MucG9pbnQ9bix5ZSh0LGUscil9fWZ1bmN0aW9uIE1lKCl7a2MucG9pbnQ9bWV9ZnVuY3Rpb24gX2UoKXtmdW5jdGlvbiBuKG4sdCl7bio9TmE7dmFyIGU9TWF0aC5jb3ModCo9TmEpLG89ZSpNYXRoLmNvcyhuKSxhPWUqTWF0aC5zaW4obiksYz1NYXRoLnNpbih0KSxzPXUqYy1pKmEsbD1pKm8tcipjLGY9ciphLXUqbyxoPU1hdGguc3FydChzKnMrbCpsK2YqZiksZz1yKm8rdSphK2kqYyxwPWgmJi1WKGcpL2gsdj1NYXRoLmF0YW4yKGgsZyk7YmMrPXAqcyx3Yys9cCpsLFNjKz1wKmYsdmMrPXYseGMrPXYqKHIrKHI9bykpLE1jKz12Kih1Kyh1PWEpKSxfYys9diooaSsoaT1jKSkseWUocix1LGkpfXZhciB0LGUscix1LGk7a2MucG9pbnQ9ZnVuY3Rpb24obyxhKXt0PW8sZT1hLGtjLnBvaW50PW4sbyo9TmE7dmFyIGM9TWF0aC5jb3MoYSo9TmEpO3I9YypNYXRoLmNvcyhvKSx1PWMqTWF0aC5zaW4obyksaT1NYXRoLnNpbihhKSx5ZShyLHUsaSl9LGtjLmxpbmVFbmQ9ZnVuY3Rpb24oKXtuKHQsZSksa2MubGluZUVuZD1NZSxrYy5wb2ludD1tZX19ZnVuY3Rpb24gYmUoKXtyZXR1cm4hMH1mdW5jdGlvbiB3ZShuLHQsZSxyLHUpe3ZhciBpPVtdLG89W107aWYobi5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCEoKHQ9bi5sZW5ndGgtMSk8PTApKXt2YXIgdCxlPW5bMF0scj1uW3RdO2lmKGRlKGUscikpe3UubGluZVN0YXJ0KCk7Zm9yKHZhciBhPTA7dD5hOysrYSl1LnBvaW50KChlPW5bYV0pWzBdLGVbMV0pO3JldHVybiB1LmxpbmVFbmQoKSx2b2lkIDB9dmFyIGM9bmV3IGtlKGUsbixudWxsLCEwKSxzPW5ldyBrZShlLG51bGwsYywhMSk7Yy5vPXMsaS5wdXNoKGMpLG8ucHVzaChzKSxjPW5ldyBrZShyLG4sbnVsbCwhMSkscz1uZXcga2UocixudWxsLGMsITApLGMubz1zLGkucHVzaChjKSxvLnB1c2gocyl9fSksby5zb3J0KHQpLFNlKGkpLFNlKG8pLGkubGVuZ3RoKXtmb3IodmFyIGE9MCxjPWUscz1vLmxlbmd0aDtzPmE7KythKW9bYV0uZT1jPSFjO2Zvcih2YXIgbCxmLGg9aVswXTs7KXtmb3IodmFyIGc9aCxwPSEwO2cudjspaWYoKGc9Zy5uKT09PWgpcmV0dXJuO2w9Zy56LHUubGluZVN0YXJ0KCk7ZG97aWYoZy52PWcuby52PSEwLGcuZSl7aWYocClmb3IodmFyIGE9MCxzPWwubGVuZ3RoO3M+YTsrK2EpdS5wb2ludCgoZj1sW2FdKVswXSxmWzFdKTtlbHNlIHIoZy54LGcubi54LDEsdSk7Zz1nLm59ZWxzZXtpZihwKXtsPWcucC56O2Zvcih2YXIgYT1sLmxlbmd0aC0xO2E+PTA7LS1hKXUucG9pbnQoKGY9bFthXSlbMF0sZlsxXSl9ZWxzZSByKGcueCxnLnAueCwtMSx1KTtnPWcucH1nPWcubyxsPWcueixwPSFwfXdoaWxlKCFnLnYpO3UubGluZUVuZCgpfX19ZnVuY3Rpb24gU2Uobil7aWYodD1uLmxlbmd0aCl7Zm9yKHZhciB0LGUscj0wLHU9blswXTsrK3I8dDspdS5uPWU9bltyXSxlLnA9dSx1PWU7dS5uPWU9blswXSxlLnA9dX19ZnVuY3Rpb24ga2Uobix0LGUscil7dGhpcy54PW4sdGhpcy56PXQsdGhpcy5vPWUsdGhpcy5lPXIsdGhpcy52PSExLHRoaXMubj10aGlzLnA9bnVsbH1mdW5jdGlvbiBFZShuLHQsZSxyKXtyZXR1cm4gZnVuY3Rpb24odSxpKXtmdW5jdGlvbiBvKHQsZSl7dmFyIHI9dSh0LGUpO24odD1yWzBdLGU9clsxXSkmJmkucG9pbnQodCxlKX1mdW5jdGlvbiBhKG4sdCl7dmFyIGU9dShuLHQpO2QucG9pbnQoZVswXSxlWzFdKX1mdW5jdGlvbiBjKCl7eS5wb2ludD1hLGQubGluZVN0YXJ0KCl9ZnVuY3Rpb24gcygpe3kucG9pbnQ9byxkLmxpbmVFbmQoKX1mdW5jdGlvbiBsKG4sdCl7di5wdXNoKFtuLHRdKTt2YXIgZT11KG4sdCk7TS5wb2ludChlWzBdLGVbMV0pfWZ1bmN0aW9uIGYoKXtNLmxpbmVTdGFydCgpLHY9W119ZnVuY3Rpb24gaCgpe2wodlswXVswXSx2WzBdWzFdKSxNLmxpbmVFbmQoKTt2YXIgbix0PU0uY2xlYW4oKSxlPXguYnVmZmVyKCkscj1lLmxlbmd0aDtpZih2LnBvcCgpLHAucHVzaCh2KSx2PW51bGwscil7aWYoMSZ0KXtuPWVbMF07dmFyIHUscj1uLmxlbmd0aC0xLG89LTE7Zm9yKGkubGluZVN0YXJ0KCk7KytvPHI7KWkucG9pbnQoKHU9bltvXSlbMF0sdVsxXSk7cmV0dXJuIGkubGluZUVuZCgpLHZvaWQgMH1yPjEmJjImdCYmZS5wdXNoKGUucG9wKCkuY29uY2F0KGUuc2hpZnQoKSkpLGcucHVzaChlLmZpbHRlcihBZSkpfX12YXIgZyxwLHYsZD10KGkpLG09dS5pbnZlcnQoclswXSxyWzFdKSx5PXtwb2ludDpvLGxpbmVTdGFydDpjLGxpbmVFbmQ6cyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt5LnBvaW50PWwseS5saW5lU3RhcnQ9Zix5LmxpbmVFbmQ9aCxnPVtdLHA9W10saS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3kucG9pbnQ9byx5LmxpbmVTdGFydD1jLHkubGluZUVuZD1zLGc9WG8ubWVyZ2UoZyk7dmFyIG49TGUobSxwKTtnLmxlbmd0aD93ZShnLE5lLG4sZSxpKTpuJiYoaS5saW5lU3RhcnQoKSxlKG51bGwsbnVsbCwxLGkpLGkubGluZUVuZCgpKSxpLnBvbHlnb25FbmQoKSxnPXA9bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7aS5wb2x5Z29uU3RhcnQoKSxpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCksaS5wb2x5Z29uRW5kKCl9fSx4PUNlKCksTT10KHgpO3JldHVybiB5fX1mdW5jdGlvbiBBZShuKXtyZXR1cm4gbi5sZW5ndGg+MX1mdW5jdGlvbiBDZSgpe3ZhciBuLHQ9W107cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3QucHVzaChuPVtdKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtuLnB1c2goW3QsZV0pfSxsaW5lRW5kOmcsYnVmZmVyOmZ1bmN0aW9uKCl7dmFyIGU9dDtyZXR1cm4gdD1bXSxuPW51bGwsZX0scmVqb2luOmZ1bmN0aW9uKCl7dC5sZW5ndGg+MSYmdC5wdXNoKHQucG9wKCkuY29uY2F0KHQuc2hpZnQoKSkpfX19ZnVuY3Rpb24gTmUobix0KXtyZXR1cm4oKG49bi54KVswXTwwP25bMV0tRWEtQWE6RWEtblsxXSktKCh0PXQueClbMF08MD90WzFdLUVhLUFhOkVhLXRbMV0pfWZ1bmN0aW9uIExlKG4sdCl7dmFyIGU9blswXSxyPW5bMV0sdT1bTWF0aC5zaW4oZSksLU1hdGguY29zKGUpLDBdLGk9MCxvPTA7aGMucmVzZXQoKTtmb3IodmFyIGE9MCxjPXQubGVuZ3RoO2M+YTsrK2Epe3ZhciBzPXRbYV0sbD1zLmxlbmd0aDtpZihsKWZvcih2YXIgZj1zWzBdLGg9ZlswXSxnPWZbMV0vMitTYS80LHA9TWF0aC5zaW4oZyksdj1NYXRoLmNvcyhnKSxkPTE7Oyl7ZD09PWwmJihkPTApLG49c1tkXTt2YXIgbT1uWzBdLHk9blsxXS8yK1NhLzQseD1NYXRoLnNpbih5KSxNPU1hdGguY29zKHkpLF89bS1oLGI9Xz49MD8xOi0xLHc9YipfLFM9dz5TYSxrPXAqeDtpZihoYy5hZGQoTWF0aC5hdGFuMihrKmIqTWF0aC5zaW4odyksdipNK2sqTWF0aC5jb3ModykpKSxpKz1TP18rYiprYTpfLFNeaD49ZV5tPj1lKXt2YXIgRT1mZShzZShmKSxzZShuKSk7cGUoRSk7dmFyIEE9ZmUodSxFKTtwZShBKTt2YXIgQz0oU15fPj0wPy0xOjEpKlgoQVsyXSk7KHI+Q3x8cj09PUMmJihFWzBdfHxFWzFdKSkmJihvKz1TXl8+PTA/MTotMSl9aWYoIWQrKylicmVhaztoPW0scD14LHY9TSxmPW59fXJldHVybigtQWE+aXx8QWE+aSYmMD5oYyleMSZvfWZ1bmN0aW9uIFRlKG4pe3ZhciB0LGU9MC8wLHI9MC8wLHU9MC8wO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtuLmxpbmVTdGFydCgpLHQ9MX0scG9pbnQ6ZnVuY3Rpb24oaSxvKXt2YXIgYT1pPjA/U2E6LVNhLGM9b2EoaS1lKTtvYShjLVNhKTxBYT8obi5wb2ludChlLHI9KHIrbykvMj4wP0VhOi1FYSksbi5wb2ludCh1LHIpLG4ubGluZUVuZCgpLG4ubGluZVN0YXJ0KCksbi5wb2ludChhLHIpLG4ucG9pbnQoaSxyKSx0PTApOnUhPT1hJiZjPj1TYSYmKG9hKGUtdSk8QWEmJihlLT11KkFhKSxvYShpLWEpPEFhJiYoaS09YSpBYSkscj1xZShlLHIsaSxvKSxuLnBvaW50KHUsciksbi5saW5lRW5kKCksbi5saW5lU3RhcnQoKSxuLnBvaW50KGEsciksdD0wKSxuLnBvaW50KGU9aSxyPW8pLHU9YX0sbGluZUVuZDpmdW5jdGlvbigpe24ubGluZUVuZCgpLGU9cj0wLzB9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItdH19fWZ1bmN0aW9uIHFlKG4sdCxlLHIpe3ZhciB1LGksbz1NYXRoLnNpbihuLWUpO3JldHVybiBvYShvKT5BYT9NYXRoLmF0YW4oKE1hdGguc2luKHQpKihpPU1hdGguY29zKHIpKSpNYXRoLnNpbihlKS1NYXRoLnNpbihyKSoodT1NYXRoLmNvcyh0KSkqTWF0aC5zaW4obikpLyh1KmkqbykpOih0K3IpLzJ9ZnVuY3Rpb24gemUobix0LGUscil7dmFyIHU7aWYobnVsbD09bil1PWUqRWEsci5wb2ludCgtU2EsdSksci5wb2ludCgwLHUpLHIucG9pbnQoU2EsdSksci5wb2ludChTYSwwKSxyLnBvaW50KFNhLC11KSxyLnBvaW50KDAsLXUpLHIucG9pbnQoLVNhLC11KSxyLnBvaW50KC1TYSwwKSxyLnBvaW50KC1TYSx1KTtlbHNlIGlmKG9hKG5bMF0tdFswXSk+QWEpe3ZhciBpPW5bMF08dFswXT9TYTotU2E7dT1lKmkvMixyLnBvaW50KC1pLHUpLHIucG9pbnQoMCx1KSxyLnBvaW50KGksdSl9ZWxzZSByLnBvaW50KHRbMF0sdFsxXSl9ZnVuY3Rpb24gUmUobil7ZnVuY3Rpb24gdChuLHQpe3JldHVybiBNYXRoLmNvcyhuKSpNYXRoLmNvcyh0KT5pfWZ1bmN0aW9uIGUobil7dmFyIGUsaSxjLHMsbDtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7cz1jPSExLGw9MX0scG9pbnQ6ZnVuY3Rpb24oZixoKXt2YXIgZyxwPVtmLGhdLHY9dChmLGgpLGQ9bz92PzA6dShmLGgpOnY/dShmKygwPmY/U2E6LVNhKSxoKTowO2lmKCFlJiYocz1jPXYpJiZuLmxpbmVTdGFydCgpLHYhPT1jJiYoZz1yKGUscCksKGRlKGUsZyl8fGRlKHAsZykpJiYocFswXSs9QWEscFsxXSs9QWEsdj10KHBbMF0scFsxXSkpKSx2IT09YylsPTAsdj8obi5saW5lU3RhcnQoKSxnPXIocCxlKSxuLnBvaW50KGdbMF0sZ1sxXSkpOihnPXIoZSxwKSxuLnBvaW50KGdbMF0sZ1sxXSksbi5saW5lRW5kKCkpLGU9ZztlbHNlIGlmKGEmJmUmJm9edil7dmFyIG07ZCZpfHwhKG09cihwLGUsITApKXx8KGw9MCxvPyhuLmxpbmVTdGFydCgpLG4ucG9pbnQobVswXVswXSxtWzBdWzFdKSxuLnBvaW50KG1bMV1bMF0sbVsxXVsxXSksbi5saW5lRW5kKCkpOihuLnBvaW50KG1bMV1bMF0sbVsxXVsxXSksbi5saW5lRW5kKCksbi5saW5lU3RhcnQoKSxuLnBvaW50KG1bMF1bMF0sbVswXVsxXSkpKX0hdnx8ZSYmZGUoZSxwKXx8bi5wb2ludChwWzBdLHBbMV0pLGU9cCxjPXYsaT1kfSxsaW5lRW5kOmZ1bmN0aW9uKCl7YyYmbi5saW5lRW5kKCksZT1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiBsfChzJiZjKTw8MX19fWZ1bmN0aW9uIHIobix0LGUpe3ZhciByPXNlKG4pLHU9c2UodCksbz1bMSwwLDBdLGE9ZmUocix1KSxjPWxlKGEsYSkscz1hWzBdLGw9Yy1zKnM7aWYoIWwpcmV0dXJuIWUmJm47dmFyIGY9aSpjL2wsaD0taSpzL2wsZz1mZShvLGEpLHA9Z2UobyxmKSx2PWdlKGEsaCk7aGUocCx2KTt2YXIgZD1nLG09bGUocCxkKSx5PWxlKGQsZCkseD1tKm0teSoobGUocCxwKS0xKTtpZighKDA+eCkpe3ZhciBNPU1hdGguc3FydCh4KSxfPWdlKGQsKC1tLU0pL3kpO2lmKGhlKF8scCksXz12ZShfKSwhZSlyZXR1cm4gXzt2YXIgYix3PW5bMF0sUz10WzBdLGs9blsxXSxFPXRbMV07dz5TJiYoYj13LHc9UyxTPWIpO3ZhciBBPVMtdyxDPW9hKEEtU2EpPEFhLE49Q3x8QWE+QTtpZighQyYmaz5FJiYoYj1rLGs9RSxFPWIpLE4/Qz9rK0U+MF5fWzFdPChvYShfWzBdLXcpPEFhP2s6RSk6azw9X1sxXSYmX1sxXTw9RTpBPlNhXih3PD1fWzBdJiZfWzBdPD1TKSl7dmFyIEw9Z2UoZCwoLW0rTSkveSk7cmV0dXJuIGhlKEwscCksW18sdmUoTCldfX19ZnVuY3Rpb24gdSh0LGUpe3ZhciByPW8/bjpTYS1uLHU9MDtyZXR1cm4tcj50P3V8PTE6dD5yJiYodXw9MiksLXI+ZT91fD00OmU+ciYmKHV8PTgpLHV9dmFyIGk9TWF0aC5jb3Mobiksbz1pPjAsYT1vYShpKT5BYSxjPWNyKG4sNipOYSk7cmV0dXJuIEVlKHQsZSxjLG8/WzAsLW5dOlstU2Esbi1TYV0pfWZ1bmN0aW9uIERlKG4sdCxlLHIpe3JldHVybiBmdW5jdGlvbih1KXt2YXIgaSxvPXUuYSxhPXUuYixjPW8ueCxzPW8ueSxsPWEueCxmPWEueSxoPTAsZz0xLHA9bC1jLHY9Zi1zO2lmKGk9bi1jLHB8fCEoaT4wKSl7aWYoaS89cCwwPnApe2lmKGg+aSlyZXR1cm47Zz5pJiYoZz1pKX1lbHNlIGlmKHA+MCl7aWYoaT5nKXJldHVybjtpPmgmJihoPWkpfWlmKGk9ZS1jLHB8fCEoMD5pKSl7aWYoaS89cCwwPnApe2lmKGk+ZylyZXR1cm47aT5oJiYoaD1pKX1lbHNlIGlmKHA+MCl7aWYoaD5pKXJldHVybjtnPmkmJihnPWkpfWlmKGk9dC1zLHZ8fCEoaT4wKSl7aWYoaS89diwwPnYpe2lmKGg+aSlyZXR1cm47Zz5pJiYoZz1pKX1lbHNlIGlmKHY+MCl7aWYoaT5nKXJldHVybjtpPmgmJihoPWkpfWlmKGk9ci1zLHZ8fCEoMD5pKSl7aWYoaS89diwwPnYpe2lmKGk+ZylyZXR1cm47aT5oJiYoaD1pKX1lbHNlIGlmKHY+MCl7aWYoaD5pKXJldHVybjtnPmkmJihnPWkpfXJldHVybiBoPjAmJih1LmE9e3g6YytoKnAseTpzK2gqdn0pLDE+ZyYmKHUuYj17eDpjK2cqcCx5OnMrZyp2fSksdX19fX19fWZ1bmN0aW9uIFBlKG4sdCxlLHIpe2Z1bmN0aW9uIHUocix1KXtyZXR1cm4gb2EoclswXS1uKTxBYT91PjA/MDozOm9hKHJbMF0tZSk8QWE/dT4wPzI6MTpvYShyWzFdLXQpPEFhP3U+MD8xOjA6dT4wPzM6Mn1mdW5jdGlvbiBpKG4sdCl7cmV0dXJuIG8obi54LHQueCl9ZnVuY3Rpb24gbyhuLHQpe3ZhciBlPXUobiwxKSxyPXUodCwxKTtyZXR1cm4gZSE9PXI/ZS1yOjA9PT1lP3RbMV0tblsxXToxPT09ZT9uWzBdLXRbMF06Mj09PWU/blsxXS10WzFdOnRbMF0tblswXX1yZXR1cm4gZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYyhuKXtmb3IodmFyIHQ9MCxlPWQubGVuZ3RoLHI9blsxXSx1PTA7ZT51OysrdSlmb3IodmFyIGksbz0xLGE9ZFt1XSxjPWEubGVuZ3RoLHM9YVswXTtjPm87KytvKWk9YVtvXSxzWzFdPD1yP2lbMV0+ciYmWihzLGksbik+MCYmKyt0OmlbMV08PXImJloocyxpLG4pPDAmJi0tdCxzPWk7cmV0dXJuIDAhPT10fWZ1bmN0aW9uIHMoaSxhLGMscyl7dmFyIGw9MCxmPTA7aWYobnVsbD09aXx8KGw9dShpLGMpKSE9PShmPXUoYSxjKSl8fG8oaSxhKTwwXmM+MCl7ZG8gcy5wb2ludCgwPT09bHx8Mz09PWw/bjplLGw+MT9yOnQpO3doaWxlKChsPShsK2MrNCklNCkhPT1mKX1lbHNlIHMucG9pbnQoYVswXSxhWzFdKX1mdW5jdGlvbiBsKHUsaSl7cmV0dXJuIHU+PW4mJmU+PXUmJmk+PXQmJnI+PWl9ZnVuY3Rpb24gZihuLHQpe2wobix0KSYmYS5wb2ludChuLHQpfWZ1bmN0aW9uIGgoKXtOLnBvaW50PXAsZCYmZC5wdXNoKG09W10pLFM9ITAsdz0hMSxfPWI9MC8wfWZ1bmN0aW9uIGcoKXt2JiYocCh5LHgpLE0mJncmJkEucmVqb2luKCksdi5wdXNoKEEuYnVmZmVyKCkpKSxOLnBvaW50PWYsdyYmYS5saW5lRW5kKCl9ZnVuY3Rpb24gcChuLHQpe249TWF0aC5tYXgoLUFjLE1hdGgubWluKEFjLG4pKSx0PU1hdGgubWF4KC1BYyxNYXRoLm1pbihBYyx0KSk7dmFyIGU9bChuLHQpO2lmKGQmJm0ucHVzaChbbix0XSksUyl5PW4seD10LE09ZSxTPSExLGUmJihhLmxpbmVTdGFydCgpLGEucG9pbnQobix0KSk7ZWxzZSBpZihlJiZ3KWEucG9pbnQobix0KTtlbHNle3ZhciByPXthOnt4Ol8seTpifSxiOnt4Om4seTp0fX07QyhyKT8od3x8KGEubGluZVN0YXJ0KCksYS5wb2ludChyLmEueCxyLmEueSkpLGEucG9pbnQoci5iLngsci5iLnkpLGV8fGEubGluZUVuZCgpLGs9ITEpOmUmJihhLmxpbmVTdGFydCgpLGEucG9pbnQobix0KSxrPSExKX1fPW4sYj10LHc9ZX12YXIgdixkLG0seSx4LE0sXyxiLHcsUyxrLEU9YSxBPUNlKCksQz1EZShuLHQsZSxyKSxOPXtwb2ludDpmLGxpbmVTdGFydDpoLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXthPUEsdj1bXSxkPVtdLGs9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXthPUUsdj1Yby5tZXJnZSh2KTt2YXIgdD1jKFtuLHJdKSxlPWsmJnQsdT12Lmxlbmd0aDsoZXx8dSkmJihhLnBvbHlnb25TdGFydCgpLGUmJihhLmxpbmVTdGFydCgpLHMobnVsbCxudWxsLDEsYSksYS5saW5lRW5kKCkpLHUmJndlKHYsaSx0LHMsYSksYS5wb2x5Z29uRW5kKCkpLHY9ZD1tPW51bGx9fTtyZXR1cm4gTn19ZnVuY3Rpb24gVWUobix0KXtmdW5jdGlvbiBlKGUscil7cmV0dXJuIGU9bihlLHIpLHQoZVswXSxlWzFdKX1yZXR1cm4gbi5pbnZlcnQmJnQuaW52ZXJ0JiYoZS5pbnZlcnQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT10LmludmVydChlLHIpLGUmJm4uaW52ZXJ0KGVbMF0sZVsxXSl9KSxlfWZ1bmN0aW9uIGplKG4pe3ZhciB0PTAsZT1TYS8zLHI9bnIobiksdT1yKHQsZSk7cmV0dXJuIHUucGFyYWxsZWxzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3IodD1uWzBdKlNhLzE4MCxlPW5bMV0qU2EvMTgwKTpbMTgwKih0L1NhKSwxODAqKGUvU2EpXX0sdX1mdW5jdGlvbiBIZShuLHQpe2Z1bmN0aW9uIGUobix0KXt2YXIgZT1NYXRoLnNxcnQoaS0yKnUqTWF0aC5zaW4odCkpL3U7cmV0dXJuW2UqTWF0aC5zaW4obio9dSksby1lKk1hdGguY29zKG4pXX12YXIgcj1NYXRoLnNpbihuKSx1PShyK01hdGguc2luKHQpKS8yLGk9MStyKigyKnUtciksbz1NYXRoLnNxcnQoaSkvdTtyZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24obix0KXt2YXIgZT1vLXQ7cmV0dXJuW01hdGguYXRhbjIobixlKS91LFgoKGktKG4qbitlKmUpKnUqdSkvKDIqdSkpXX0sZX1mdW5jdGlvbiBGZSgpe2Z1bmN0aW9uIG4obix0KXtOYys9dSpuLXIqdCxyPW4sdT10fXZhciB0LGUscix1O1JjLnBvaW50PWZ1bmN0aW9uKGksbyl7UmMucG9pbnQ9bix0PXI9aSxlPXU9b30sUmMubGluZUVuZD1mdW5jdGlvbigpe24odCxlKX19ZnVuY3Rpb24gT2Uobix0KXtMYz5uJiYoTGM9biksbj5xYyYmKHFjPW4pLFRjPnQmJihUYz10KSx0PnpjJiYoemM9dCl9ZnVuY3Rpb24gWWUoKXtmdW5jdGlvbiBuKG4sdCl7by5wdXNoKCJNIixuLCIsIix0LGkpfWZ1bmN0aW9uIHQobix0KXtvLnB1c2goIk0iLG4sIiwiLHQpLGEucG9pbnQ9ZX1mdW5jdGlvbiBlKG4sdCl7by5wdXNoKCJMIixuLCIsIix0KX1mdW5jdGlvbiByKCl7YS5wb2ludD1ufWZ1bmN0aW9uIHUoKXtvLnB1c2goIloiKX12YXIgaT1JZSg0LjUpLG89W10sYT17cG9pbnQ6bixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXthLnBvaW50PXR9LGxpbmVFbmQ6cixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXthLmxpbmVFbmQ9dX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2EubGluZUVuZD1yLGEucG9pbnQ9bn0scG9pbnRSYWRpdXM6ZnVuY3Rpb24obil7cmV0dXJuIGk9SWUobiksYX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYoby5sZW5ndGgpe3ZhciBuPW8uam9pbigiIik7cmV0dXJuIG89W10sbn19fTtyZXR1cm4gYX1mdW5jdGlvbiBJZShuKXtyZXR1cm4ibTAsIituKyJhIituKyIsIituKyIgMCAxLDEgMCwiKy0yKm4rImEiK24rIiwiK24rIiAwIDEsMSAwLCIrMipuKyJ6In1mdW5jdGlvbiBaZShuLHQpe2RjKz1uLG1jKz10LCsreWN9ZnVuY3Rpb24gVmUoKXtmdW5jdGlvbiBuKG4scil7dmFyIHU9bi10LGk9ci1lLG89TWF0aC5zcXJ0KHUqdStpKmkpO3hjKz1vKih0K24pLzIsTWMrPW8qKGUrcikvMixfYys9byxaZSh0PW4sZT1yKX12YXIgdCxlO1BjLnBvaW50PWZ1bmN0aW9uKHIsdSl7UGMucG9pbnQ9bixaZSh0PXIsZT11KX19ZnVuY3Rpb24gWGUoKXtQYy5wb2ludD1aZX1mdW5jdGlvbiAkZSgpe2Z1bmN0aW9uIG4obix0KXt2YXIgZT1uLXIsaT10LXUsbz1NYXRoLnNxcnQoZSplK2kqaSk7eGMrPW8qKHIrbikvMixNYys9byoodSt0KS8yLF9jKz1vLG89dSpuLXIqdCxiYys9byoocituKSx3Yys9byoodSt0KSxTYys9MypvLFplKHI9bix1PXQpfXZhciB0LGUscix1O1BjLnBvaW50PWZ1bmN0aW9uKGksbyl7UGMucG9pbnQ9bixaZSh0PXI9aSxlPXU9byl9LFBjLmxpbmVFbmQ9ZnVuY3Rpb24oKXtuKHQsZSl9fWZ1bmN0aW9uIEJlKG4pe2Z1bmN0aW9uIHQodCxlKXtuLm1vdmVUbyh0LGUpLG4uYXJjKHQsZSxvLDAsa2EpfWZ1bmN0aW9uIGUodCxlKXtuLm1vdmVUbyh0LGUpLGEucG9pbnQ9cn1mdW5jdGlvbiByKHQsZSl7bi5saW5lVG8odCxlKX1mdW5jdGlvbiB1KCl7YS5wb2ludD10fWZ1bmN0aW9uIGkoKXtuLmNsb3NlUGF0aCgpfXZhciBvPTQuNSxhPXtwb2ludDp0LGxpbmVTdGFydDpmdW5jdGlvbigpe2EucG9pbnQ9ZX0sbGluZUVuZDp1LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2EubGluZUVuZD1pfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7YS5saW5lRW5kPXUsYS5wb2ludD10fSxwb2ludFJhZGl1czpmdW5jdGlvbihuKXtyZXR1cm4gbz1uLGF9LHJlc3VsdDpnfTtyZXR1cm4gYX1mdW5jdGlvbiBXZShuKXtmdW5jdGlvbiB0KG4pe3JldHVybihhP3I6ZSkobil9ZnVuY3Rpb24gZSh0KXtyZXR1cm4gS2UodCxmdW5jdGlvbihlLHIpe2U9bihlLHIpLHQucG9pbnQoZVswXSxlWzFdKX0pfWZ1bmN0aW9uIHIodCl7ZnVuY3Rpb24gZShlLHIpe2U9bihlLHIpLHQucG9pbnQoZVswXSxlWzFdKX1mdW5jdGlvbiByKCl7eD0wLzAsUy5wb2ludD1pLHQubGluZVN0YXJ0KCl9ZnVuY3Rpb24gaShlLHIpe3ZhciBpPXNlKFtlLHJdKSxvPW4oZSxyKTt1KHgsTSx5LF8sYix3LHg9b1swXSxNPW9bMV0seT1lLF89aVswXSxiPWlbMV0sdz1pWzJdLGEsdCksdC5wb2ludCh4LE0pfWZ1bmN0aW9uIG8oKXtTLnBvaW50PWUsdC5saW5lRW5kKCl9ZnVuY3Rpb24gYygpe3IoKSxTLnBvaW50PXMsUy5saW5lRW5kPWx9ZnVuY3Rpb24gcyhuLHQpe2koZj1uLGg9dCksZz14LHA9TSx2PV8sZD1iLG09dyxTLnBvaW50PWl9ZnVuY3Rpb24gbCgpe3UoeCxNLHksXyxiLHcsZyxwLGYsdixkLG0sYSx0KSxTLmxpbmVFbmQ9byxvKCl9dmFyIGYsaCxnLHAsdixkLG0seSx4LE0sXyxiLHcsUz17cG9pbnQ6ZSxsaW5lU3RhcnQ6cixsaW5lRW5kOm8scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dC5wb2x5Z29uU3RhcnQoKSxTLmxpbmVTdGFydD1jfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dC5wb2x5Z29uRW5kKCksUy5saW5lU3RhcnQ9cn19O3JldHVybiBTfWZ1bmN0aW9uIHUodCxlLHIsYSxjLHMsbCxmLGgsZyxwLHYsZCxtKXt2YXIgeT1sLXQseD1mLWUsTT15KnkreCp4O2lmKE0+NCppJiZkLS0pe3ZhciBfPWErZyxiPWMrcCx3PXMrdixTPU1hdGguc3FydChfKl8rYipiK3cqdyksaz1NYXRoLmFzaW4ody89UyksRT1vYShvYSh3KS0xKTxBYXx8b2Eoci1oKTxBYT8ocitoKS8yOk1hdGguYXRhbjIoYixfKSxBPW4oRSxrKSxDPUFbMF0sTj1BWzFdLEw9Qy10LFQ9Ti1lLHE9eCpMLXkqVDsocSpxL00+aXx8b2EoKHkqTCt4KlQpL00tLjUpPi4zfHxvPmEqZytjKnArcyp2KSYmKHUodCxlLHIsYSxjLHMsQyxOLEUsXy89UyxiLz1TLHcsZCxtKSxtLnBvaW50KEMsTiksdShDLE4sRSxfLGIsdyxsLGYsaCxnLHAsdixkLG0pKX19dmFyIGk9LjUsbz1NYXRoLmNvcygzMCpOYSksYT0xNjtyZXR1cm4gdC5wcmVjaXNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9KGk9bipuKT4wJiYxNix0KTpNYXRoLnNxcnQoaSl9LHR9ZnVuY3Rpb24gSmUobil7dmFyIHQ9V2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gbihbdCpMYSxlKkxhXSl9KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRyKHQobikpfX1mdW5jdGlvbiBHZShuKXt0aGlzLnN0cmVhbT1ufWZ1bmN0aW9uIEtlKG4sdCl7cmV0dXJue3BvaW50OnQsc3BoZXJlOmZ1bmN0aW9uKCl7bi5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7bi5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe24ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7bi5wb2x5Z29uRW5kKCl9fX1mdW5jdGlvbiBRZShuKXtyZXR1cm4gbnIoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKCl9ZnVuY3Rpb24gbnIobil7ZnVuY3Rpb24gdChuKXtyZXR1cm4gbj1hKG5bMF0qTmEsblsxXSpOYSksW25bMF0qaCtjLHMtblsxXSpoXX1mdW5jdGlvbiBlKG4pe3JldHVybiBuPWEuaW52ZXJ0KChuWzBdLWMpL2gsKHMtblsxXSkvaCksbiYmW25bMF0qTGEsblsxXSpMYV19ZnVuY3Rpb24gcigpe2E9VWUobz11cihtLHkseCksaSk7dmFyIG49aSh2LGQpO3JldHVybiBjPWctblswXSpoLHM9cCtuWzFdKmgsdSgpfWZ1bmN0aW9uIHUoKXtyZXR1cm4gbCYmKGwudmFsaWQ9ITEsbD1udWxsKSx0fXZhciBpLG8sYSxjLHMsbCxmPVdlKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG49aShuLHQpLFtuWzBdKmgrYyxzLW5bMV0qaF19KSxoPTE1MCxnPTQ4MCxwPTI1MCx2PTAsZD0wLG09MCx5PTAseD0wLE09RWMsXz1idCxiPW51bGwsdz1udWxsO3JldHVybiB0LnN0cmVhbT1mdW5jdGlvbihuKXtyZXR1cm4gbCYmKGwudmFsaWQ9ITEpLGw9dHIoTShvLGYoXyhuKSkpKSxsLnZhbGlkPSEwLGx9LHQuY2xpcEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPW51bGw9PW4/KGI9bixFYyk6UmUoKGI9K24pKk5hKSx1KCkpOmJ9LHQuY2xpcEV4dGVudD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz1uLF89bj9QZShuWzBdWzBdLG5bMF1bMV0sblsxXVswXSxuWzFdWzFdKTpidCx1KCkpOnd9LHQuc2NhbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K24scigpKTpofSx0LnRyYW5zbGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz0rblswXSxwPStuWzFdLHIoKSk6W2cscF19LHQuY2VudGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PW5bMF0lMzYwKk5hLGQ9blsxXSUzNjAqTmEscigpKTpbdipMYSxkKkxhXX0sdC5yb3RhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09blswXSUzNjAqTmEseT1uWzFdJTM2MCpOYSx4PW4ubGVuZ3RoPjI/blsyXSUzNjAqTmE6MCxyKCkpOlttKkxhLHkqTGEseCpMYV19LFhvLnJlYmluZCh0LGYsInByZWNpc2lvbiIpLGZ1bmN0aW9uKCl7cmV0dXJuIGk9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdC5pbnZlcnQ9aS5pbnZlcnQmJmUscigpfX1mdW5jdGlvbiB0cihuKXtyZXR1cm4gS2UobixmdW5jdGlvbih0LGUpe24ucG9pbnQodCpOYSxlKk5hKX0pfWZ1bmN0aW9uIGVyKG4sdCl7cmV0dXJuW24sdF19ZnVuY3Rpb24gcnIobix0KXtyZXR1cm5bbj5TYT9uLWthOi1TYT5uP24ra2E6bix0XX1mdW5jdGlvbiB1cihuLHQsZSl7cmV0dXJuIG4/dHx8ZT9VZShvcihuKSxhcih0LGUpKTpvcihuKTp0fHxlP2FyKHQsZSk6cnJ9ZnVuY3Rpb24gaXIobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrPW4sW3Q+U2E/dC1rYTotU2E+dD90K2thOnQsZV19fWZ1bmN0aW9uIG9yKG4pe3ZhciB0PWlyKG4pO3JldHVybiB0LmludmVydD1pcigtbiksdH1mdW5jdGlvbiBhcihuLHQpe2Z1bmN0aW9uIGUobix0KXt2YXIgZT1NYXRoLmNvcyh0KSxhPU1hdGguY29zKG4pKmUsYz1NYXRoLnNpbihuKSplLHM9TWF0aC5zaW4odCksbD1zKnIrYSp1O3JldHVybltNYXRoLmF0YW4yKGMqaS1sKm8sYSpyLXMqdSksWChsKmkrYypvKV19dmFyIHI9TWF0aC5jb3MobiksdT1NYXRoLnNpbihuKSxpPU1hdGguY29zKHQpLG89TWF0aC5zaW4odCk7cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKG4sdCl7dmFyIGU9TWF0aC5jb3ModCksYT1NYXRoLmNvcyhuKSplLGM9TWF0aC5zaW4obikqZSxzPU1hdGguc2luKHQpLGw9cyppLWMqbztyZXR1cm5bTWF0aC5hdGFuMihjKmkrcypvLGEqcitsKnUpLFgobCpyLWEqdSldfSxlfWZ1bmN0aW9uIGNyKG4sdCl7dmFyIGU9TWF0aC5jb3Mobikscj1NYXRoLnNpbihuKTtyZXR1cm4gZnVuY3Rpb24odSxpLG8sYSl7dmFyIGM9byp0O251bGwhPXU/KHU9c3IoZSx1KSxpPXNyKGUsaSksKG8+MD9pPnU6dT5pKSYmKHUrPW8qa2EpKToodT1uK28qa2EsaT1uLS41KmMpO2Zvcih2YXIgcyxsPXU7bz4wP2w+aTppPmw7bC09YylhLnBvaW50KChzPXZlKFtlLC1yKk1hdGguY29zKGwpLC1yKk1hdGguc2luKGwpXSkpWzBdLHNbMV0pfX1mdW5jdGlvbiBzcihuLHQpe3ZhciBlPXNlKHQpO2VbMF0tPW4scGUoZSk7dmFyIHI9VigtZVsxXSk7cmV0dXJuKCgtZVsyXTwwPy1yOnIpKzIqTWF0aC5QSS1BYSklKDIqTWF0aC5QSSl9ZnVuY3Rpb24gbHIobix0LGUpe3ZhciByPVhvLnJhbmdlKG4sdC1BYSxlKS5jb25jYXQodCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiByLm1hcChmdW5jdGlvbih0KXtyZXR1cm5bbix0XX0pfX1mdW5jdGlvbiBmcihuLHQsZSl7dmFyIHI9WG8ucmFuZ2Uobix0LUFhLGUpLmNvbmNhdCh0KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHQpe3JldHVyblt0LG5dfSl9fWZ1bmN0aW9uIGhyKG4pe3JldHVybiBuLnNvdXJjZX1mdW5jdGlvbiBncihuKXtyZXR1cm4gbi50YXJnZXR9ZnVuY3Rpb24gcHIobix0LGUscil7dmFyIHU9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KSxvPU1hdGguY29zKHIpLGE9TWF0aC5zaW4ociksYz11Kk1hdGguY29zKG4pLHM9dSpNYXRoLnNpbihuKSxsPW8qTWF0aC5jb3MoZSksZj1vKk1hdGguc2luKGUpLGg9MipNYXRoLmFzaW4oTWF0aC5zcXJ0KEooci10KSt1Km8qSihlLW4pKSksZz0xL01hdGguc2luKGgpLHA9aD9mdW5jdGlvbihuKXt2YXIgdD1NYXRoLnNpbihuKj1oKSpnLGU9TWF0aC5zaW4oaC1uKSpnLHI9ZSpjK3QqbCx1PWUqcyt0KmYsbz1lKmkrdCphO3JldHVybltNYXRoLmF0YW4yKHUscikqTGEsTWF0aC5hdGFuMihvLE1hdGguc3FydChyKnIrdSp1KSkqTGFdfTpmdW5jdGlvbigpe3JldHVybltuKkxhLHQqTGFdfTtyZXR1cm4gcC5kaXN0YW5jZT1oLHB9ZnVuY3Rpb24gdnIoKXtmdW5jdGlvbiBuKG4sdSl7dmFyIGk9TWF0aC5zaW4odSo9TmEpLG89TWF0aC5jb3ModSksYT1vYSgobio9TmEpLXQpLGM9TWF0aC5jb3MoYSk7VWMrPU1hdGguYXRhbjIoTWF0aC5zcXJ0KChhPW8qTWF0aC5zaW4oYSkpKmErKGE9cippLWUqbypjKSphKSxlKmkrcipvKmMpLHQ9bixlPWkscj1vfXZhciB0LGUscjtqYy5wb2ludD1mdW5jdGlvbih1LGkpe3Q9dSpOYSxlPU1hdGguc2luKGkqPU5hKSxyPU1hdGguY29zKGkpLGpjLnBvaW50PW59LGpjLmxpbmVFbmQ9ZnVuY3Rpb24oKXtqYy5wb2ludD1qYy5saW5lRW5kPWd9fWZ1bmN0aW9uIGRyKG4sdCl7ZnVuY3Rpb24gZSh0LGUpe3ZhciByPU1hdGguY29zKHQpLHU9TWF0aC5jb3MoZSksaT1uKHIqdSk7cmV0dXJuW2kqdSpNYXRoLnNpbih0KSxpKk1hdGguc2luKGUpXX1yZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24obixlKXt2YXIgcj1NYXRoLnNxcnQobipuK2UqZSksdT10KHIpLGk9TWF0aC5zaW4odSksbz1NYXRoLmNvcyh1KTtyZXR1cm5bTWF0aC5hdGFuMihuKmkscipvKSxNYXRoLmFzaW4ociYmZSppL3IpXX0sZX1mdW5jdGlvbiBtcihuLHQpe2Z1bmN0aW9uIGUobix0KXt2YXIgZT1vYShvYSh0KS1FYSk8QWE/MDpvL01hdGgucG93KHUodCksaSk7cmV0dXJuW2UqTWF0aC5zaW4oaSpuKSxvLWUqTWF0aC5jb3MoaSpuKV19dmFyIHI9TWF0aC5jb3MobiksdT1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC50YW4oU2EvNCtuLzIpfSxpPW49PT10P01hdGguc2luKG4pOk1hdGgubG9nKHIvTWF0aC5jb3ModCkpL01hdGgubG9nKHUodCkvdShuKSksbz1yKk1hdGgucG93KHUobiksaSkvaTtyZXR1cm4gaT8oZS5pbnZlcnQ9ZnVuY3Rpb24obix0KXt2YXIgZT1vLXQscj1JKGkpKk1hdGguc3FydChuKm4rZSplKTtyZXR1cm5bTWF0aC5hdGFuMihuLGUpL2ksMipNYXRoLmF0YW4oTWF0aC5wb3coby9yLDEvaSkpLUVhXX0sZSk6eHJ9ZnVuY3Rpb24geXIobix0KXtmdW5jdGlvbiBlKG4sdCl7dmFyIGU9aS10O3JldHVybltlKk1hdGguc2luKHUqbiksaS1lKk1hdGguY29zKHUqbildfXZhciByPU1hdGguY29zKG4pLHU9bj09PXQ/TWF0aC5zaW4obik6KHItTWF0aC5jb3ModCkpLyh0LW4pLGk9ci91K247cmV0dXJuIG9hKHUpPEFhP2VyOihlLmludmVydD1mdW5jdGlvbihuLHQpe3ZhciBlPWktdDtyZXR1cm5bTWF0aC5hdGFuMihuLGUpL3UsaS1JKHUpKk1hdGguc3FydChuKm4rZSplKV19LGUpfWZ1bmN0aW9uIHhyKG4sdCl7cmV0dXJuW24sTWF0aC5sb2coTWF0aC50YW4oU2EvNCt0LzIpKV19ZnVuY3Rpb24gTXIobil7dmFyIHQsZT1RZShuKSxyPWUuc2NhbGUsdT1lLnRyYW5zbGF0ZSxpPWUuY2xpcEV4dGVudDtyZXR1cm4gZS5zY2FsZT1mdW5jdGlvbigpe3ZhciBuPXIuYXBwbHkoZSxhcmd1bWVudHMpO3JldHVybiBuPT09ZT90P2UuY2xpcEV4dGVudChudWxsKTplOm59LGUudHJhbnNsYXRlPWZ1bmN0aW9uKCl7dmFyIG49dS5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIG49PT1lP3Q/ZS5jbGlwRXh0ZW50KG51bGwpOmU6bn0sZS5jbGlwRXh0ZW50PWZ1bmN0aW9uKG4pe3ZhciBvPWkuYXBwbHkoZSxhcmd1bWVudHMpO2lmKG89PT1lKXtpZih0PW51bGw9PW4pe3ZhciBhPVNhKnIoKSxjPXUoKTtpKFtbY1swXS1hLGNbMV0tYV0sW2NbMF0rYSxjWzFdK2FdXSl9fWVsc2UgdCYmKG89bnVsbCk7cmV0dXJuIG99LGUuY2xpcEV4dGVudChudWxsKX1mdW5jdGlvbiBfcihuLHQpe3JldHVybltNYXRoLmxvZyhNYXRoLnRhbihTYS80K3QvMikpLC1uXX1mdW5jdGlvbiBicihuKXtyZXR1cm4gblswXX1mdW5jdGlvbiB3cihuKXtyZXR1cm4gblsxXX1mdW5jdGlvbiBTcihuKXtmb3IodmFyIHQ9bi5sZW5ndGgsZT1bMCwxXSxyPTIsdT0yO3Q+dTt1Kyspe2Zvcig7cj4xJiZaKG5bZVtyLTJdXSxuW2Vbci0xXV0sblt1XSk8PTA7KS0tcjtlW3IrK109dX1yZXR1cm4gZS5zbGljZSgwLHIpfWZ1bmN0aW9uIGtyKG4sdCl7cmV0dXJuIG5bMF0tdFswXXx8blsxXS10WzFdfWZ1bmN0aW9uIEVyKG4sdCxlKXtyZXR1cm4oZVswXS10WzBdKSooblsxXS10WzFdKTwoZVsxXS10WzFdKSooblswXS10WzBdKX1mdW5jdGlvbiBBcihuLHQsZSxyKXt2YXIgdT1uWzBdLGk9ZVswXSxvPXRbMF0tdSxhPXJbMF0taSxjPW5bMV0scz1lWzFdLGw9dFsxXS1jLGY9clsxXS1zLGg9KGEqKGMtcyktZioodS1pKSkvKGYqby1hKmwpO3JldHVyblt1K2gqbyxjK2gqbF19ZnVuY3Rpb24gQ3Iobil7dmFyIHQ9blswXSxlPW5bbi5sZW5ndGgtMV07cmV0dXJuISh0WzBdLWVbMF18fHRbMV0tZVsxXSl9ZnVuY3Rpb24gTnIoKXtKcih0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24gTHIobil7dmFyIHQ9SmMucG9wKCl8fG5ldyBOcjtyZXR1cm4gdC5zaXRlPW4sdH1mdW5jdGlvbiBUcihuKXtPcihuKSwkYy5yZW1vdmUobiksSmMucHVzaChuKSxKcihuKX1mdW5jdGlvbiBxcihuKXt2YXIgdD1uLmNpcmNsZSxlPXQueCxyPXQuY3ksdT17eDplLHk6cn0saT1uLlAsbz1uLk4sYT1bbl07VHIobik7Zm9yKHZhciBjPWk7Yy5jaXJjbGUmJm9hKGUtYy5jaXJjbGUueCk8QWEmJm9hKHItYy5jaXJjbGUuY3kpPEFhOylpPWMuUCxhLnVuc2hpZnQoYyksVHIoYyksYz1pO2EudW5zaGlmdChjKSxPcihjKTtmb3IodmFyIHM9bztzLmNpcmNsZSYmb2EoZS1zLmNpcmNsZS54KTxBYSYmb2Eoci1zLmNpcmNsZS5jeSk8QWE7KW89cy5OLGEucHVzaChzKSxUcihzKSxzPW87YS5wdXNoKHMpLE9yKHMpO3ZhciBsLGY9YS5sZW5ndGg7Zm9yKGw9MTtmPmw7KytsKXM9YVtsXSxjPWFbbC0xXSwkcihzLmVkZ2UsYy5zaXRlLHMuc2l0ZSx1KTtjPWFbMF0scz1hW2YtMV0scy5lZGdlPVZyKGMuc2l0ZSxzLnNpdGUsbnVsbCx1KSxGcihjKSxGcihzKX1mdW5jdGlvbiB6cihuKXtmb3IodmFyIHQsZSxyLHUsaT1uLngsbz1uLnksYT0kYy5fO2E7KWlmKHI9UnIoYSxvKS1pLHI+QWEpYT1hLkw7ZWxzZXtpZih1PWktRHIoYSxvKSwhKHU+QWEpKXtyPi1BYT8odD1hLlAsZT1hKTp1Pi1BYT8odD1hLGU9YS5OKTp0PWU9YTticmVha31pZighYS5SKXt0PWE7YnJlYWt9YT1hLlJ9dmFyIGM9THIobik7aWYoJGMuaW5zZXJ0KHQsYyksdHx8ZSl7aWYodD09PWUpcmV0dXJuIE9yKHQpLGU9THIodC5zaXRlKSwkYy5pbnNlcnQoYyxlKSxjLmVkZ2U9ZS5lZGdlPVZyKHQuc2l0ZSxjLnNpdGUpLEZyKHQpLEZyKGUpLHZvaWQgMDtpZighZSlyZXR1cm4gYy5lZGdlPVZyKHQuc2l0ZSxjLnNpdGUpLHZvaWQgMDtPcih0KSxPcihlKTt2YXIgcz10LnNpdGUsbD1zLngsZj1zLnksaD1uLngtbCxnPW4ueS1mLHA9ZS5zaXRlLHY9cC54LWwsZD1wLnktZixtPTIqKGgqZC1nKnYpLHk9aCpoK2cqZyx4PXYqditkKmQsTT17eDooZCp5LWcqeCkvbStsLHk6KGgqeC12KnkpL20rZn07JHIoZS5lZGdlLHMscCxNKSxjLmVkZ2U9VnIocyxuLG51bGwsTSksZS5lZGdlPVZyKG4scCxudWxsLE0pLEZyKHQpLEZyKGUpfX1mdW5jdGlvbiBScihuLHQpe3ZhciBlPW4uc2l0ZSxyPWUueCx1PWUueSxpPXUtdDtpZighaSlyZXR1cm4gcjt2YXIgbz1uLlA7aWYoIW8pcmV0dXJuLTEvMDtlPW8uc2l0ZTt2YXIgYT1lLngsYz1lLnkscz1jLXQ7aWYoIXMpcmV0dXJuIGE7dmFyIGw9YS1yLGY9MS9pLTEvcyxoPWwvcztyZXR1cm4gZj8oLWgrTWF0aC5zcXJ0KGgqaC0yKmYqKGwqbC8oLTIqcyktYytzLzIrdS1pLzIpKSkvZityOihyK2EpLzJ9ZnVuY3Rpb24gRHIobix0KXt2YXIgZT1uLk47aWYoZSlyZXR1cm4gUnIoZSx0KTt2YXIgcj1uLnNpdGU7cmV0dXJuIHIueT09PXQ/ci54OjEvMH1mdW5jdGlvbiBQcihuKXt0aGlzLnNpdGU9bix0aGlzLmVkZ2VzPVtdfWZ1bmN0aW9uIFVyKG4pe2Zvcih2YXIgdCxlLHIsdSxpLG8sYSxjLHMsbCxmPW5bMF1bMF0saD1uWzFdWzBdLGc9blswXVsxXSxwPW5bMV1bMV0sdj1YYyxkPXYubGVuZ3RoO2QtLTspaWYoaT12W2RdLGkmJmkucHJlcGFyZSgpKWZvcihhPWkuZWRnZXMsYz1hLmxlbmd0aCxvPTA7Yz5vOylsPWFbb10uZW5kKCkscj1sLngsdT1sLnkscz1hWysrbyVjXS5zdGFydCgpLHQ9cy54LGU9cy55LChvYShyLXQpPkFhfHxvYSh1LWUpPkFhKSYmKGEuc3BsaWNlKG8sMCxuZXcgQnIoWHIoaS5zaXRlLGwsb2Eoci1mKTxBYSYmcC11PkFhP3t4OmYseTpvYSh0LWYpPEFhP2U6cH06b2EodS1wKTxBYSYmaC1yPkFhP3t4Om9hKGUtcCk8QWE/dDpoLHk6cH06b2Eoci1oKTxBYSYmdS1nPkFhP3t4OmgseTpvYSh0LWgpPEFhP2U6Z306b2EodS1nKTxBYSYmci1mPkFhP3t4Om9hKGUtZyk8QWE/dDpmLHk6Z306bnVsbCksaS5zaXRlLG51bGwpKSwrK2MpfWZ1bmN0aW9uIGpyKG4sdCl7cmV0dXJuIHQuYW5nbGUtbi5hbmdsZX1mdW5jdGlvbiBIcigpe0pyKHRoaXMpLHRoaXMueD10aGlzLnk9dGhpcy5hcmM9dGhpcy5zaXRlPXRoaXMuY3k9bnVsbH1mdW5jdGlvbiBGcihuKXt2YXIgdD1uLlAsZT1uLk47aWYodCYmZSl7dmFyIHI9dC5zaXRlLHU9bi5zaXRlLGk9ZS5zaXRlO2lmKHIhPT1pKXt2YXIgbz11LngsYT11LnksYz1yLngtbyxzPXIueS1hLGw9aS54LW8sZj1pLnktYSxoPTIqKGMqZi1zKmwpO2lmKCEoaD49LUNhKSl7dmFyIGc9YypjK3MqcyxwPWwqbCtmKmYsdj0oZipnLXMqcCkvaCxkPShjKnAtbCpnKS9oLGY9ZCthLG09R2MucG9wKCl8fG5ldyBIcjttLmFyYz1uLG0uc2l0ZT11LG0ueD12K28sbS55PWYrTWF0aC5zcXJ0KHYqditkKmQpLG0uY3k9ZixuLmNpcmNsZT1tO2Zvcih2YXIgeT1udWxsLHg9V2MuXzt4OylpZihtLnk8eC55fHxtLnk9PT14LnkmJm0ueDw9eC54KXtpZigheC5MKXt5PXguUDticmVha314PXguTH1lbHNle2lmKCF4LlIpe3k9eDticmVha314PXguUn1XYy5pbnNlcnQoeSxtKSx5fHwoQmM9bSl9fX19ZnVuY3Rpb24gT3Iobil7dmFyIHQ9bi5jaXJjbGU7dCYmKHQuUHx8KEJjPXQuTiksV2MucmVtb3ZlKHQpLEdjLnB1c2godCksSnIodCksbi5jaXJjbGU9bnVsbCl9ZnVuY3Rpb24gWXIobil7Zm9yKHZhciB0LGU9VmMscj1EZShuWzBdWzBdLG5bMF1bMV0sblsxXVswXSxuWzFdWzFdKSx1PWUubGVuZ3RoO3UtLTspdD1lW3VdLCghSXIodCxuKXx8IXIodCl8fG9hKHQuYS54LXQuYi54KTxBYSYmb2EodC5hLnktdC5iLnkpPEFhKSYmKHQuYT10LmI9bnVsbCxlLnNwbGljZSh1LDEpKX1mdW5jdGlvbiBJcihuLHQpe3ZhciBlPW4uYjtpZihlKXJldHVybiEwO3ZhciByLHUsaT1uLmEsbz10WzBdWzBdLGE9dFsxXVswXSxjPXRbMF1bMV0scz10WzFdWzFdLGw9bi5sLGY9bi5yLGg9bC54LGc9bC55LHA9Zi54LHY9Zi55LGQ9KGgrcCkvMixtPShnK3YpLzI7aWYodj09PWcpe2lmKG8+ZHx8ZD49YSlyZXR1cm47aWYoaD5wKXtpZihpKXtpZihpLnk+PXMpcmV0dXJufWVsc2UgaT17eDpkLHk6Y307ZT17eDpkLHk6c319ZWxzZXtpZihpKXtpZihpLnk8YylyZXR1cm59ZWxzZSBpPXt4OmQseTpzfTtlPXt4OmQseTpjfX19ZWxzZSBpZihyPShoLXApLyh2LWcpLHU9bS1yKmQsLTE+cnx8cj4xKWlmKGg+cCl7aWYoaSl7aWYoaS55Pj1zKXJldHVybn1lbHNlIGk9e3g6KGMtdSkvcix5OmN9O2U9e3g6KHMtdSkvcix5OnN9fWVsc2V7aWYoaSl7aWYoaS55PGMpcmV0dXJufWVsc2UgaT17eDoocy11KS9yLHk6c307ZT17eDooYy11KS9yLHk6Y319ZWxzZSBpZih2Pmcpe2lmKGkpe2lmKGkueD49YSlyZXR1cm59ZWxzZSBpPXt4Om8seTpyKm8rdX07ZT17eDphLHk6ciphK3V9fWVsc2V7aWYoaSl7aWYoaS54PG8pcmV0dXJufWVsc2UgaT17eDphLHk6ciphK3V9O2U9e3g6byx5OnIqbyt1fX1yZXR1cm4gbi5hPWksbi5iPWUsITB9ZnVuY3Rpb24gWnIobix0KXt0aGlzLmw9bix0aGlzLnI9dCx0aGlzLmE9dGhpcy5iPW51bGx9ZnVuY3Rpb24gVnIobix0LGUscil7dmFyIHU9bmV3IFpyKG4sdCk7cmV0dXJuIFZjLnB1c2godSksZSYmJHIodSxuLHQsZSksciYmJHIodSx0LG4sciksWGNbbi5pXS5lZGdlcy5wdXNoKG5ldyBCcih1LG4sdCkpLFhjW3QuaV0uZWRnZXMucHVzaChuZXcgQnIodSx0LG4pKSx1fWZ1bmN0aW9uIFhyKG4sdCxlKXt2YXIgcj1uZXcgWnIobixudWxsKTtyZXR1cm4gci5hPXQsci5iPWUsVmMucHVzaChyKSxyfWZ1bmN0aW9uICRyKG4sdCxlLHIpe24uYXx8bi5iP24ubD09PWU/bi5iPXI6bi5hPXI6KG4uYT1yLG4ubD10LG4ucj1lKX1mdW5jdGlvbiBCcihuLHQsZSl7dmFyIHI9bi5hLHU9bi5iO3RoaXMuZWRnZT1uLHRoaXMuc2l0ZT10LHRoaXMuYW5nbGU9ZT9NYXRoLmF0YW4yKGUueS10LnksZS54LXQueCk6bi5sPT09dD9NYXRoLmF0YW4yKHUueC1yLngsci55LXUueSk6TWF0aC5hdGFuMihyLngtdS54LHUueS1yLnkpfWZ1bmN0aW9uIFdyKCl7dGhpcy5fPW51bGx9ZnVuY3Rpb24gSnIobil7bi5VPW4uQz1uLkw9bi5SPW4uUD1uLk49bnVsbH1mdW5jdGlvbiBHcihuLHQpe3ZhciBlPXQscj10LlIsdT1lLlU7dT91Lkw9PT1lP3UuTD1yOnUuUj1yOm4uXz1yLHIuVT11LGUuVT1yLGUuUj1yLkwsZS5SJiYoZS5SLlU9ZSksci5MPWV9ZnVuY3Rpb24gS3Iobix0KXt2YXIgZT10LHI9dC5MLHU9ZS5VO3U/dS5MPT09ZT91Lkw9cjp1LlI9cjpuLl89cixyLlU9dSxlLlU9cixlLkw9ci5SLGUuTCYmKGUuTC5VPWUpLHIuUj1lfWZ1bmN0aW9uIFFyKG4pe2Zvcig7bi5MOyluPW4uTDtyZXR1cm4gbn1mdW5jdGlvbiBudShuLHQpe3ZhciBlLHIsdSxpPW4uc29ydCh0dSkucG9wKCk7Zm9yKFZjPVtdLFhjPW5ldyBBcnJheShuLmxlbmd0aCksJGM9bmV3IFdyLFdjPW5ldyBXcjs7KWlmKHU9QmMsaSYmKCF1fHxpLnk8dS55fHxpLnk9PT11LnkmJmkueDx1LngpKShpLnghPT1lfHxpLnkhPT1yKSYmKFhjW2kuaV09bmV3IFByKGkpLHpyKGkpLGU9aS54LHI9aS55KSxpPW4ucG9wKCk7ZWxzZXtpZighdSlicmVhaztxcih1LmFyYyl9dCYmKFlyKHQpLFVyKHQpKTt2YXIgbz17Y2VsbHM6WGMsZWRnZXM6VmN9O3JldHVybiAkYz1XYz1WYz1YYz1udWxsLG99ZnVuY3Rpb24gdHUobix0KXtyZXR1cm4gdC55LW4ueXx8dC54LW4ueH1mdW5jdGlvbiBldShuLHQsZSl7cmV0dXJuKG4ueC1lLngpKih0Lnktbi55KS0obi54LXQueCkqKGUueS1uLnkpfWZ1bmN0aW9uIHJ1KG4pe3JldHVybiBuLnh9ZnVuY3Rpb24gdXUobil7cmV0dXJuIG4ueX1mdW5jdGlvbiBpdSgpe3JldHVybntsZWFmOiEwLG5vZGVzOltdLHBvaW50Om51bGwseDpudWxsLHk6bnVsbH19ZnVuY3Rpb24gb3Uobix0LGUscix1LGkpe2lmKCFuKHQsZSxyLHUsaSkpe3ZhciBvPS41KihlK3UpLGE9LjUqKHIraSksYz10Lm5vZGVzO2NbMF0mJm91KG4sY1swXSxlLHIsbyxhKSxjWzFdJiZvdShuLGNbMV0sbyxyLHUsYSksY1syXSYmb3UobixjWzJdLGUsYSxvLGkpLGNbM10mJm91KG4sY1szXSxvLGEsdSxpKX19ZnVuY3Rpb24gYXUobix0KXtuPVhvLnJnYihuKSx0PVhvLnJnYih0KTt2YXIgZT1uLnIscj1uLmcsdT1uLmIsaT10LnItZSxvPXQuZy1yLGE9dC5iLXU7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiIjIit2dChNYXRoLnJvdW5kKGUraSpuKSkrdnQoTWF0aC5yb3VuZChyK28qbikpK3Z0KE1hdGgucm91bmQodSthKm4pKX19ZnVuY3Rpb24gY3Uobix0KXt2YXIgZSxyPXt9LHU9e307Zm9yKGUgaW4gbillIGluIHQ/cltlXT1mdShuW2VdLHRbZV0pOnVbZV09bltlXTtmb3IoZSBpbiB0KWUgaW4gbnx8KHVbZV09dFtlXSk7cmV0dXJuIGZ1bmN0aW9uKG4pe2ZvcihlIGluIHIpdVtlXT1yW2VdKG4pO3JldHVybiB1fX1mdW5jdGlvbiBzdShuLHQpe3JldHVybiB0LT1uPStuLGZ1bmN0aW9uKGUpe3JldHVybiBuK3QqZX19ZnVuY3Rpb24gbHUobix0KXt2YXIgZSxyLHUsaSxvLGE9MCxjPTAscz1bXSxsPVtdO2ZvcihuKz0iIix0Kz0iIixRYy5sYXN0SW5kZXg9MCxyPTA7ZT1RYy5leGVjKHQpOysrcillLmluZGV4JiZzLnB1c2godC5zdWJzdHJpbmcoYSxjPWUuaW5kZXgpKSxsLnB1c2goe2k6cy5sZW5ndGgseDplWzBdfSkscy5wdXNoKG51bGwpLGE9UWMubGFzdEluZGV4O2ZvcihhPHQubGVuZ3RoJiZzLnB1c2godC5zdWJzdHJpbmcoYSkpLHI9MCxpPWwubGVuZ3RoOyhlPVFjLmV4ZWMobikpJiZpPnI7KytyKWlmKG89bFtyXSxvLng9PWVbMF0pe2lmKG8uaSlpZihudWxsPT1zW28uaSsxXSlmb3Ioc1tvLmktMV0rPW8ueCxzLnNwbGljZShvLmksMSksdT1yKzE7aT51OysrdSlsW3VdLmktLTtlbHNlIGZvcihzW28uaS0xXSs9by54K3Nbby5pKzFdLHMuc3BsaWNlKG8uaSwyKSx1PXIrMTtpPnU7Kyt1KWxbdV0uaS09MjtlbHNlIGlmKG51bGw9PXNbby5pKzFdKXNbby5pXT1vLng7ZWxzZSBmb3Ioc1tvLmldPW8ueCtzW28uaSsxXSxzLnNwbGljZShvLmkrMSwxKSx1PXIrMTtpPnU7Kyt1KWxbdV0uaS0tO2wuc3BsaWNlKHIsMSksaS0tLHItLX1lbHNlIG8ueD1zdShwYXJzZUZsb2F0KGVbMF0pLHBhcnNlRmxvYXQoby54KSk7Zm9yKDtpPnI7KW89bC5wb3AoKSxudWxsPT1zW28uaSsxXT9zW28uaV09by54OihzW28uaV09by54K3Nbby5pKzFdLHMuc3BsaWNlKG8uaSsxLDEpKSxpLS07cmV0dXJuIDE9PT1zLmxlbmd0aD9udWxsPT1zWzBdPyhvPWxbMF0ueCxmdW5jdGlvbihuKXtyZXR1cm4gbyhuKSsiIn0pOmZ1bmN0aW9uKCl7cmV0dXJuIHR9OmZ1bmN0aW9uKG4pe2ZvcihyPTA7aT5yOysrcilzWyhvPWxbcl0pLmldPW8ueChuKTtyZXR1cm4gcy5qb2luKCIiKX19ZnVuY3Rpb24gZnUobix0KXtmb3IodmFyIGUscj1Yby5pbnRlcnBvbGF0b3JzLmxlbmd0aDstLXI+PTAmJiEoZT1Yby5pbnRlcnBvbGF0b3JzW3JdKG4sdCkpOyk7cmV0dXJuIGV9ZnVuY3Rpb24gaHUobix0KXt2YXIgZSxyPVtdLHU9W10saT1uLmxlbmd0aCxvPXQubGVuZ3RoLGE9TWF0aC5taW4obi5sZW5ndGgsdC5sZW5ndGgpO2ZvcihlPTA7YT5lOysrZSlyLnB1c2goZnUobltlXSx0W2VdKSk7Zm9yKDtpPmU7KytlKXVbZV09bltlXTtmb3IoO28+ZTsrK2UpdVtlXT10W2VdO3JldHVybiBmdW5jdGlvbihuKXtmb3IoZT0wO2E+ZTsrK2UpdVtlXT1yW2VdKG4pO3JldHVybiB1fX1mdW5jdGlvbiBndShuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIDA+PXQ/MDp0Pj0xPzE6bih0KX19ZnVuY3Rpb24gcHUobil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiAxLW4oMS10KX19ZnVuY3Rpb24gdnUobil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybi41KiguNT50P24oMip0KToyLW4oMi0yKnQpKX19ZnVuY3Rpb24gZHUobil7cmV0dXJuIG4qbn1mdW5jdGlvbiBtdShuKXtyZXR1cm4gbipuKm59ZnVuY3Rpb24geXUobil7aWYoMD49bilyZXR1cm4gMDtpZihuPj0xKXJldHVybiAxO3ZhciB0PW4qbixlPXQqbjtyZXR1cm4gNCooLjU+bj9lOjMqKG4tdCkrZS0uNzUpfWZ1bmN0aW9uIHh1KG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3codCxuKX19ZnVuY3Rpb24gTXUobil7cmV0dXJuIDEtTWF0aC5jb3MobipFYSl9ZnVuY3Rpb24gX3Uobil7cmV0dXJuIE1hdGgucG93KDIsMTAqKG4tMSkpfWZ1bmN0aW9uIGJ1KG4pe3JldHVybiAxLU1hdGguc3FydCgxLW4qbil9ZnVuY3Rpb24gd3Uobix0KXt2YXIgZTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYodD0uNDUpLGFyZ3VtZW50cy5sZW5ndGg/ZT10L2thKk1hdGguYXNpbigxL24pOihuPTEsZT10LzQpLGZ1bmN0aW9uKHIpe3JldHVybiAxK24qTWF0aC5wb3coMiwtMTAqcikqTWF0aC5zaW4oKHItZSkqa2EvdCl9fWZ1bmN0aW9uIFN1KG4pe3JldHVybiBufHwobj0xLjcwMTU4KSxmdW5jdGlvbih0KXtyZXR1cm4gdCp0KigobisxKSp0LW4pfX1mdW5jdGlvbiBrdShuKXtyZXR1cm4gMS8yLjc1Pm4/Ny41NjI1Km4qbjoyLzIuNzU+bj83LjU2MjUqKG4tPTEuNS8yLjc1KSpuKy43NToyLjUvMi43NT5uPzcuNTYyNSoobi09Mi4yNS8yLjc1KSpuKy45Mzc1OjcuNTYyNSoobi09Mi42MjUvMi43NSkqbisuOTg0Mzc1fWZ1bmN0aW9uIEV1KG4sdCl7bj1Yby5oY2wobiksdD1Yby5oY2wodCk7dmFyIGU9bi5oLHI9bi5jLHU9bi5sLGk9dC5oLWUsbz10LmMtcixhPXQubC11O3JldHVybiBpc05hTihvKSYmKG89MCxyPWlzTmFOKHIpP3QuYzpyKSxpc05hTihpKT8oaT0wLGU9aXNOYU4oZSk/dC5oOmUpOmk+MTgwP2ktPTM2MDotMTgwPmkmJihpKz0zNjApLGZ1bmN0aW9uKG4pe3JldHVybiBydChlK2kqbixyK28qbix1K2EqbikrIiJ9fWZ1bmN0aW9uIEF1KG4sdCl7bj1Yby5oc2wobiksdD1Yby5oc2wodCk7dmFyIGU9bi5oLHI9bi5zLHU9bi5sLGk9dC5oLWUsbz10LnMtcixhPXQubC11O3JldHVybiBpc05hTihvKSYmKG89MCxyPWlzTmFOKHIpP3QuczpyKSxpc05hTihpKT8oaT0wLGU9aXNOYU4oZSk/dC5oOmUpOmk+MTgwP2ktPTM2MDotMTgwPmkmJihpKz0zNjApLGZ1bmN0aW9uKG4pe3JldHVybiBudChlK2kqbixyK28qbix1K2EqbikrIiJ9fWZ1bmN0aW9uIEN1KG4sdCl7bj1Yby5sYWIobiksdD1Yby5sYWIodCk7dmFyIGU9bi5sLHI9bi5hLHU9bi5iLGk9dC5sLWUsbz10LmEtcixhPXQuYi11O3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gb3QoZStpKm4scitvKm4sdSthKm4pKyIifX1mdW5jdGlvbiBOdShuLHQpe3JldHVybiB0LT1uLGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKG4rdCplKX19ZnVuY3Rpb24gTHUobil7dmFyIHQ9W24uYSxuLmJdLGU9W24uYyxuLmRdLHI9cXUodCksdT1UdSh0LGUpLGk9cXUoenUoZSx0LC11KSl8fDA7dFswXSplWzFdPGVbMF0qdFsxXSYmKHRbMF0qPS0xLHRbMV0qPS0xLHIqPS0xLHUqPS0xKSx0aGlzLnJvdGF0ZT0ocj9NYXRoLmF0YW4yKHRbMV0sdFswXSk6TWF0aC5hdGFuMigtZVswXSxlWzFdKSkqTGEsdGhpcy50cmFuc2xhdGU9W24uZSxuLmZdLHRoaXMuc2NhbGU9W3IsaV0sdGhpcy5za2V3PWk/TWF0aC5hdGFuMih1LGkpKkxhOjB9ZnVuY3Rpb24gVHUobix0KXtyZXR1cm4gblswXSp0WzBdK25bMV0qdFsxXX1mdW5jdGlvbiBxdShuKXt2YXIgdD1NYXRoLnNxcnQoVHUobixuKSk7cmV0dXJuIHQmJihuWzBdLz10LG5bMV0vPXQpLHR9ZnVuY3Rpb24genUobix0LGUpe3JldHVybiBuWzBdKz1lKnRbMF0sblsxXSs9ZSp0WzFdLG59ZnVuY3Rpb24gUnUobix0KXt2YXIgZSxyPVtdLHU9W10saT1Yby50cmFuc2Zvcm0obiksbz1Yby50cmFuc2Zvcm0odCksYT1pLnRyYW5zbGF0ZSxjPW8udHJhbnNsYXRlLHM9aS5yb3RhdGUsbD1vLnJvdGF0ZSxmPWkuc2tldyxoPW8uc2tldyxnPWkuc2NhbGUscD1vLnNjYWxlO3JldHVybiBhWzBdIT1jWzBdfHxhWzFdIT1jWzFdPyhyLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsIiwiLG51bGwsIikiKSx1LnB1c2goe2k6MSx4OnN1KGFbMF0sY1swXSl9LHtpOjMseDpzdShhWzFdLGNbMV0pfSkpOmNbMF18fGNbMV0/ci5wdXNoKCJ0cmFuc2xhdGUoIitjKyIpIik6ci5wdXNoKCIiKSxzIT1sPyhzLWw+MTgwP2wrPTM2MDpsLXM+MTgwJiYocys9MzYwKSx1LnB1c2goe2k6ci5wdXNoKHIucG9wKCkrInJvdGF0ZSgiLG51bGwsIikiKS0yLHg6c3UocyxsKX0pKTpsJiZyLnB1c2goci5wb3AoKSsicm90YXRlKCIrbCsiKSIpLGYhPWg/dS5wdXNoKHtpOnIucHVzaChyLnBvcCgpKyJza2V3WCgiLG51bGwsIikiKS0yLHg6c3UoZixoKX0pOmgmJnIucHVzaChyLnBvcCgpKyJza2V3WCgiK2grIikiKSxnWzBdIT1wWzBdfHxnWzFdIT1wWzFdPyhlPXIucHVzaChyLnBvcCgpKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKSx1LnB1c2goe2k6ZS00LHg6c3UoZ1swXSxwWzBdKX0se2k6ZS0yLHg6c3UoZ1sxXSxwWzFdKX0pKTooMSE9cFswXXx8MSE9cFsxXSkmJnIucHVzaChyLnBvcCgpKyJzY2FsZSgiK3ArIikiKSxlPXUubGVuZ3RoLGZ1bmN0aW9uKG4pe2Zvcih2YXIgdCxpPS0xOysraTxlOylyWyh0PXVbaV0pLmldPXQueChuKTtyZXR1cm4gci5qb2luKCIiKX19ZnVuY3Rpb24gRHUobix0KXtyZXR1cm4gdD10LShuPStuKT8xLyh0LW4pOjAsZnVuY3Rpb24oZSl7cmV0dXJuKGUtbikqdH19ZnVuY3Rpb24gUHUobix0KXtyZXR1cm4gdD10LShuPStuKT8xLyh0LW4pOjAsZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMSwoZS1uKSp0KSl9fWZ1bmN0aW9uIFV1KG4pe2Zvcih2YXIgdD1uLnNvdXJjZSxlPW4udGFyZ2V0LHI9SHUodCxlKSx1PVt0XTt0IT09cjspdD10LnBhcmVudCx1LnB1c2godCk7Zm9yKHZhciBpPXUubGVuZ3RoO2UhPT1yOyl1LnNwbGljZShpLDAsZSksZT1lLnBhcmVudDtyZXR1cm4gdX1mdW5jdGlvbiBqdShuKXtmb3IodmFyIHQ9W10sZT1uLnBhcmVudDtudWxsIT1lOyl0LnB1c2gobiksbj1lLGU9ZS5wYXJlbnQ7cmV0dXJuIHQucHVzaChuKSx0fWZ1bmN0aW9uIEh1KG4sdCl7aWYobj09PXQpcmV0dXJuIG47Zm9yKHZhciBlPWp1KG4pLHI9anUodCksdT1lLnBvcCgpLGk9ci5wb3AoKSxvPW51bGw7dT09PWk7KW89dSx1PWUucG9wKCksaT1yLnBvcCgpO3JldHVybiBvfWZ1bmN0aW9uIEZ1KG4pe24uZml4ZWR8PTJ9ZnVuY3Rpb24gT3Uobil7bi5maXhlZCY9LTd9ZnVuY3Rpb24gWXUobil7bi5maXhlZHw9NCxuLnB4PW4ueCxuLnB5PW4ueX1mdW5jdGlvbiBJdShuKXtuLmZpeGVkJj0tNX1mdW5jdGlvbiBadShuLHQsZSl7dmFyIHI9MCx1PTA7aWYobi5jaGFyZ2U9MCwhbi5sZWFmKWZvcih2YXIgaSxvPW4ubm9kZXMsYT1vLmxlbmd0aCxjPS0xOysrYzxhOylpPW9bY10sbnVsbCE9aSYmKFp1KGksdCxlKSxuLmNoYXJnZSs9aS5jaGFyZ2Uscis9aS5jaGFyZ2UqaS5jeCx1Kz1pLmNoYXJnZSppLmN5KTtpZihuLnBvaW50KXtuLmxlYWZ8fChuLnBvaW50LngrPU1hdGgucmFuZG9tKCktLjUsbi5wb2ludC55Kz1NYXRoLnJhbmRvbSgpLS41KTt2YXIgcz10KmVbbi5wb2ludC5pbmRleF07bi5jaGFyZ2UrPW4ucG9pbnRDaGFyZ2U9cyxyKz1zKm4ucG9pbnQueCx1Kz1zKm4ucG9pbnQueX1uLmN4PXIvbi5jaGFyZ2Usbi5jeT11L24uY2hhcmdlfWZ1bmN0aW9uIFZ1KG4sdCl7cmV0dXJuIFhvLnJlYmluZChuLHQsInNvcnQiLCJjaGlsZHJlbiIsInZhbHVlIiksbi5ub2Rlcz1uLG4ubGlua3M9V3Usbn1mdW5jdGlvbiBYdShuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiAkdShuKXtyZXR1cm4gbi52YWx1ZX1mdW5jdGlvbiBCdShuLHQpe3JldHVybiB0LnZhbHVlLW4udmFsdWV9ZnVuY3Rpb24gV3Uobil7cmV0dXJuIFhvLm1lcmdlKG4ubWFwKGZ1bmN0aW9uKG4pe3JldHVybihuLmNoaWxkcmVufHxbXSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2U6bix0YXJnZXQ6dH19KX0pKX1mdW5jdGlvbiBKdShuKXtyZXR1cm4gbi54fWZ1bmN0aW9uIEd1KG4pe3JldHVybiBuLnl9ZnVuY3Rpb24gS3Uobix0LGUpe24ueTA9dCxuLnk9ZX1mdW5jdGlvbiBRdShuKXtyZXR1cm4gWG8ucmFuZ2Uobi5sZW5ndGgpfWZ1bmN0aW9uIG5pKG4pe2Zvcih2YXIgdD0tMSxlPW5bMF0ubGVuZ3RoLHI9W107Kyt0PGU7KXJbdF09MDtyZXR1cm4gcn1mdW5jdGlvbiB0aShuKXtmb3IodmFyIHQsZT0xLHI9MCx1PW5bMF1bMV0saT1uLmxlbmd0aDtpPmU7KytlKSh0PW5bZV1bMV0pPnUmJihyPWUsdT10KTtyZXR1cm4gcn1mdW5jdGlvbiBlaShuKXtyZXR1cm4gbi5yZWR1Y2UocmksMCl9ZnVuY3Rpb24gcmkobix0KXtyZXR1cm4gbit0WzFdfWZ1bmN0aW9uIHVpKG4sdCl7cmV0dXJuIGlpKG4sTWF0aC5jZWlsKE1hdGgubG9nKHQubGVuZ3RoKS9NYXRoLkxOMisxKSl9ZnVuY3Rpb24gaWkobix0KXtmb3IodmFyIGU9LTEscj0rblswXSx1PShuWzFdLXIpL3QsaT1bXTsrK2U8PXQ7KWlbZV09dSplK3I7cmV0dXJuIGl9ZnVuY3Rpb24gb2kobil7cmV0dXJuW1hvLm1pbihuKSxYby5tYXgobildfWZ1bmN0aW9uIGFpKG4sdCl7cmV0dXJuIG4ucGFyZW50PT10LnBhcmVudD8xOjJ9ZnVuY3Rpb24gY2kobil7dmFyIHQ9bi5jaGlsZHJlbjtyZXR1cm4gdCYmdC5sZW5ndGg/dFswXTpuLl90cmVlLnRocmVhZH1mdW5jdGlvbiBzaShuKXt2YXIgdCxlPW4uY2hpbGRyZW47cmV0dXJuIGUmJih0PWUubGVuZ3RoKT9lW3QtMV06bi5fdHJlZS50aHJlYWR9ZnVuY3Rpb24gbGkobix0KXt2YXIgZT1uLmNoaWxkcmVuO2lmKGUmJih1PWUubGVuZ3RoKSlmb3IodmFyIHIsdSxpPS0xOysraTx1Oyl0KHI9bGkoZVtpXSx0KSxuKT4wJiYobj1yKTtyZXR1cm4gbn1mdW5jdGlvbiBmaShuLHQpe3JldHVybiBuLngtdC54fWZ1bmN0aW9uIGhpKG4sdCl7cmV0dXJuIHQueC1uLnh9ZnVuY3Rpb24gZ2kobix0KXtyZXR1cm4gbi5kZXB0aC10LmRlcHRofWZ1bmN0aW9uIHBpKG4sdCl7ZnVuY3Rpb24gZShuLHIpe3ZhciB1PW4uY2hpbGRyZW47aWYodSYmKG89dS5sZW5ndGgpKWZvcih2YXIgaSxvLGE9bnVsbCxjPS0xOysrYzxvOylpPXVbY10sZShpLGEpLGE9aTt0KG4scil9ZShuLG51bGwpfWZ1bmN0aW9uIHZpKG4pe2Zvcih2YXIgdCxlPTAscj0wLHU9bi5jaGlsZHJlbixpPXUubGVuZ3RoOy0taT49MDspdD11W2ldLl90cmVlLHQucHJlbGltKz1lLHQubW9kKz1lLGUrPXQuc2hpZnQrKHIrPXQuY2hhbmdlKX1mdW5jdGlvbiBkaShuLHQsZSl7bj1uLl90cmVlLHQ9dC5fdHJlZTt2YXIgcj1lLyh0Lm51bWJlci1uLm51bWJlcik7bi5jaGFuZ2UrPXIsdC5jaGFuZ2UtPXIsdC5zaGlmdCs9ZSx0LnByZWxpbSs9ZSx0Lm1vZCs9ZX1mdW5jdGlvbiBtaShuLHQsZSl7cmV0dXJuIG4uX3RyZWUuYW5jZXN0b3IucGFyZW50PT10LnBhcmVudD9uLl90cmVlLmFuY2VzdG9yOmV9ZnVuY3Rpb24geWkobix0KXtyZXR1cm4gbi52YWx1ZS10LnZhbHVlfWZ1bmN0aW9uIHhpKG4sdCl7dmFyIGU9bi5fcGFja19uZXh0O24uX3BhY2tfbmV4dD10LHQuX3BhY2tfcHJldj1uLHQuX3BhY2tfbmV4dD1lLGUuX3BhY2tfcHJldj10fWZ1bmN0aW9uIE1pKG4sdCl7bi5fcGFja19uZXh0PXQsdC5fcGFja19wcmV2PW59ZnVuY3Rpb24gX2kobix0KXt2YXIgZT10Lngtbi54LHI9dC55LW4ueSx1PW4ucit0LnI7cmV0dXJuLjk5OSp1KnU+ZSplK3Iqcn1mdW5jdGlvbiBiaShuKXtmdW5jdGlvbiB0KG4pe2w9TWF0aC5taW4obi54LW4ucixsKSxmPU1hdGgubWF4KG4ueCtuLnIsZiksaD1NYXRoLm1pbihuLnktbi5yLGgpLGc9TWF0aC5tYXgobi55K24ucixnKX1pZigoZT1uLmNoaWxkcmVuKSYmKHM9ZS5sZW5ndGgpKXt2YXIgZSxyLHUsaSxvLGEsYyxzLGw9MS8wLGY9LTEvMCxoPTEvMCxnPS0xLzA7aWYoZS5mb3JFYWNoKHdpKSxyPWVbMF0sci54PS1yLnIsci55PTAsdChyKSxzPjEmJih1PWVbMV0sdS54PXUucix1Lnk9MCx0KHUpLHM+MikpZm9yKGk9ZVsyXSxFaShyLHUsaSksdChpKSx4aShyLGkpLHIuX3BhY2tfcHJldj1pLHhpKGksdSksdT1yLl9wYWNrX25leHQsbz0zO3M+bztvKyspe0VpKHIsdSxpPWVbb10pO3ZhciBwPTAsdj0xLGQ9MTtmb3IoYT11Ll9wYWNrX25leHQ7YSE9PXU7YT1hLl9wYWNrX25leHQsdisrKWlmKF9pKGEsaSkpe3A9MTticmVha31pZigxPT1wKWZvcihjPXIuX3BhY2tfcHJldjtjIT09YS5fcGFja19wcmV2JiYhX2koYyxpKTtjPWMuX3BhY2tfcHJldixkKyspO3A/KGQ+dnx8dj09ZCYmdS5yPHIucj9NaShyLHU9YSk6TWkocj1jLHUpLG8tLSk6KHhpKHIsaSksdT1pLHQoaSkpfXZhciBtPShsK2YpLzIseT0oaCtnKS8yLHg9MDtmb3Iobz0wO3M+bztvKyspaT1lW29dLGkueC09bSxpLnktPXkseD1NYXRoLm1heCh4LGkucitNYXRoLnNxcnQoaS54KmkueCtpLnkqaS55KSk7bi5yPXgsZS5mb3JFYWNoKFNpKX19ZnVuY3Rpb24gd2kobil7bi5fcGFja19uZXh0PW4uX3BhY2tfcHJldj1ufWZ1bmN0aW9uIFNpKG4pe2RlbGV0ZSBuLl9wYWNrX25leHQsZGVsZXRlIG4uX3BhY2tfcHJldn1mdW5jdGlvbiBraShuLHQsZSxyKXt2YXIgdT1uLmNoaWxkcmVuO2lmKG4ueD10Kz1yKm4ueCxuLnk9ZSs9cipuLnksbi5yKj1yLHUpZm9yKHZhciBpPS0xLG89dS5sZW5ndGg7KytpPG87KWtpKHVbaV0sdCxlLHIpfWZ1bmN0aW9uIEVpKG4sdCxlKXt2YXIgcj1uLnIrZS5yLHU9dC54LW4ueCxpPXQueS1uLnk7aWYociYmKHV8fGkpKXt2YXIgbz10LnIrZS5yLGE9dSp1K2kqaTtvKj1vLHIqPXI7dmFyIGM9LjUrKHItbykvKDIqYSkscz1NYXRoLnNxcnQoTWF0aC5tYXgoMCwyKm8qKHIrYSktKHItPWEpKnItbypvKSkvKDIqYSk7ZS54PW4ueCtjKnUrcyppLGUueT1uLnkrYyppLXMqdX1lbHNlIGUueD1uLngrcixlLnk9bi55fWZ1bmN0aW9uIEFpKG4pe3JldHVybiAxK1hvLm1heChuLGZ1bmN0aW9uKG4pe3JldHVybiBuLnl9KX1mdW5jdGlvbiBDaShuKXtyZXR1cm4gbi5yZWR1Y2UoZnVuY3Rpb24obix0KXtyZXR1cm4gbit0Lnh9LDApL24ubGVuZ3RofWZ1bmN0aW9uIE5pKG4pe3ZhciB0PW4uY2hpbGRyZW47cmV0dXJuIHQmJnQubGVuZ3RoP05pKHRbMF0pOm59ZnVuY3Rpb24gTGkobil7dmFyIHQsZT1uLmNoaWxkcmVuO3JldHVybiBlJiYodD1lLmxlbmd0aCk/TGkoZVt0LTFdKTpufWZ1bmN0aW9uIFRpKG4pe3JldHVybnt4Om4ueCx5Om4ueSxkeDpuLmR4LGR5Om4uZHl9fWZ1bmN0aW9uIHFpKG4sdCl7dmFyIGU9bi54K3RbM10scj1uLnkrdFswXSx1PW4uZHgtdFsxXS10WzNdLGk9bi5keS10WzBdLXRbMl07cmV0dXJuIDA+dSYmKGUrPXUvMix1PTApLDA+aSYmKHIrPWkvMixpPTApLHt4OmUseTpyLGR4OnUsZHk6aX19ZnVuY3Rpb24gemkobil7dmFyIHQ9blswXSxlPW5bbi5sZW5ndGgtMV07cmV0dXJuIGU+dD9bdCxlXTpbZSx0XX1mdW5jdGlvbiBSaShuKXtyZXR1cm4gbi5yYW5nZUV4dGVudD9uLnJhbmdlRXh0ZW50KCk6emkobi5yYW5nZSgpKX1mdW5jdGlvbiBEaShuLHQsZSxyKXt2YXIgdT1lKG5bMF0sblsxXSksaT1yKHRbMF0sdFsxXSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBpKHUobikpfX1mdW5jdGlvbiBQaShuLHQpe3ZhciBlLHI9MCx1PW4ubGVuZ3RoLTEsaT1uW3JdLG89blt1XTtyZXR1cm4gaT5vJiYoZT1yLHI9dSx1PWUsZT1pLGk9byxvPWUpLG5bcl09dC5mbG9vcihpKSxuW3VdPXQuY2VpbChvKSxufWZ1bmN0aW9uIFVpKG4pe3JldHVybiBuP3tmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5mbG9vcih0L24pKm59LGNlaWw6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguY2VpbCh0L24pKm59fTpsc31mdW5jdGlvbiBqaShuLHQsZSxyKXt2YXIgdT1bXSxpPVtdLG89MCxhPU1hdGgubWluKG4ubGVuZ3RoLHQubGVuZ3RoKS0xO2ZvcihuW2FdPG5bMF0mJihuPW4uc2xpY2UoKS5yZXZlcnNlKCksdD10LnNsaWNlKCkucmV2ZXJzZSgpKTsrK288PWE7KXUucHVzaChlKG5bby0xXSxuW29dKSksaS5wdXNoKHIodFtvLTFdLHRbb10pKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9WG8uYmlzZWN0KG4sdCwxLGEpLTE7cmV0dXJuIGlbZV0odVtlXSh0KSl9fWZ1bmN0aW9uIEhpKG4sdCxlLHIpe2Z1bmN0aW9uIHUoKXt2YXIgdT1NYXRoLm1pbihuLmxlbmd0aCx0Lmxlbmd0aCk+Mj9qaTpEaSxjPXI/UHU6RHU7cmV0dXJuIG89dShuLHQsYyxlKSxhPXUodCxuLGMsZnUpLGl9ZnVuY3Rpb24gaShuKXtyZXR1cm4gbyhuKX12YXIgbyxhO3JldHVybiBpLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gYShuKX0saS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dC5tYXAoTnVtYmVyKSx1KCkpOm59LGkucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bix1KCkpOnR9LGkucmFuZ2VSb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gaS5yYW5nZShuKS5pbnRlcnBvbGF0ZShOdSl9LGkuY2xhbXA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bix1KCkpOnJ9LGkuaW50ZXJwb2xhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix1KCkpOmV9LGkudGlja3M9ZnVuY3Rpb24odCl7cmV0dXJuIElpKG4sdCl9LGkudGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBaaShuLHQsZSl9LGkubmljZT1mdW5jdGlvbih0KXtyZXR1cm4gT2kobix0KSx1KCl9LGkuY29weT1mdW5jdGlvbigpe3JldHVybiBIaShuLHQsZSxyKX0sdSgpfWZ1bmN0aW9uIEZpKG4sdCl7cmV0dXJuIFhvLnJlYmluZChuLHQsInJhbmdlIiwicmFuZ2VSb3VuZCIsImludGVycG9sYXRlIiwiY2xhbXAiKX1mdW5jdGlvbiBPaShuLHQpe3JldHVybiBQaShuLFVpKFlpKG4sdClbMl0pKX1mdW5jdGlvbiBZaShuLHQpe251bGw9PXQmJih0PTEwKTt2YXIgZT16aShuKSxyPWVbMV0tZVswXSx1PU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coci90KS9NYXRoLkxOMTApKSxpPXQvcip1O3JldHVybi4xNT49aT91Kj0xMDouMzU+PWk/dSo9NTouNzU+PWkmJih1Kj0yKSxlWzBdPU1hdGguY2VpbChlWzBdL3UpKnUsZVsxXT1NYXRoLmZsb29yKGVbMV0vdSkqdSsuNSp1LGVbMl09dSxlfWZ1bmN0aW9uIElpKG4sdCl7cmV0dXJuIFhvLnJhbmdlLmFwcGx5KFhvLFlpKG4sdCkpfWZ1bmN0aW9uIFppKG4sdCxlKXt2YXIgcj1ZaShuLHQpO3JldHVybiBYby5mb3JtYXQoZT9lLnJlcGxhY2UoUWEsZnVuY3Rpb24obix0LGUsdSxpLG8sYSxjLHMsbCl7cmV0dXJuW3QsZSx1LGksbyxhLGMsc3x8Ii4iK1hpKGwsciksbF0uam9pbigiIil9KToiLC4iK1ZpKHJbMl0pKyJmIil9ZnVuY3Rpb24gVmkobil7cmV0dXJuLU1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjEwKy4wMSl9ZnVuY3Rpb24gWGkobix0KXt2YXIgZT1WaSh0WzJdKTtyZXR1cm4gbiBpbiBmcz9NYXRoLmFicyhlLVZpKE1hdGgubWF4KE1hdGguYWJzKHRbMF0pLE1hdGguYWJzKHRbMV0pKSkpKyArKCJlIiE9PW4pOmUtMiooIiUiPT09bil9ZnVuY3Rpb24gJGkobix0LGUscil7ZnVuY3Rpb24gdShuKXtyZXR1cm4oZT9NYXRoLmxvZygwPm4/MDpuKTotTWF0aC5sb2cobj4wPzA6LW4pKS9NYXRoLmxvZyh0KX1mdW5jdGlvbiBpKG4pe3JldHVybiBlP01hdGgucG93KHQsbik6LU1hdGgucG93KHQsLW4pfWZ1bmN0aW9uIG8odCl7cmV0dXJuIG4odSh0KSl9cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBpKG4uaW52ZXJ0KHQpKX0sby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dFswXT49MCxuLmRvbWFpbigocj10Lm1hcChOdW1iZXIpKS5tYXAodSkpLG8pOnJ9LG8uYmFzZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxuLmRvbWFpbihyLm1hcCh1KSksbyk6dH0sby5uaWNlPWZ1bmN0aW9uKCl7dmFyIHQ9UGkoci5tYXAodSksZT9NYXRoOmdzKTtyZXR1cm4gbi5kb21haW4odCkscj10Lm1hcChpKSxvfSxvLnRpY2tzPWZ1bmN0aW9uKCl7dmFyIG49emkociksbz1bXSxhPW5bMF0sYz1uWzFdLHM9TWF0aC5mbG9vcih1KGEpKSxsPU1hdGguY2VpbCh1KGMpKSxmPXQlMT8yOnQ7aWYoaXNGaW5pdGUobC1zKSl7aWYoZSl7Zm9yKDtsPnM7cysrKWZvcih2YXIgaD0xO2Y+aDtoKyspby5wdXNoKGkocykqaCk7by5wdXNoKGkocykpfWVsc2UgZm9yKG8ucHVzaChpKHMpKTtzKys8bDspZm9yKHZhciBoPWYtMTtoPjA7aC0tKW8ucHVzaChpKHMpKmgpO2ZvcihzPTA7b1tzXTxhO3MrKyk7Zm9yKGw9by5sZW5ndGg7b1tsLTFdPmM7bC0tKTtvPW8uc2xpY2UocyxsKX1yZXR1cm4gb30sby50aWNrRm9ybWF0PWZ1bmN0aW9uKG4sdCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGhzO2FyZ3VtZW50cy5sZW5ndGg8Mj90PWhzOiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1Yby5mb3JtYXQodCkpO3ZhciByLGE9TWF0aC5tYXgoLjEsbi9vLnRpY2tzKCkubGVuZ3RoKSxjPWU/KHI9MWUtMTIsTWF0aC5jZWlsKToocj0tMWUtMTIsTWF0aC5mbG9vcik7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuL2koYyh1KG4pK3IpKTw9YT90KG4pOiIifX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuICRpKG4uY29weSgpLHQsZSxyKX0sRmkobyxuKX1mdW5jdGlvbiBCaShuLHQsZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbih1KHQpKX12YXIgdT1XaSh0KSxpPVdpKDEvdCk7cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBpKG4uaW52ZXJ0KHQpKX0sci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4uZG9tYWluKChlPXQubWFwKE51bWJlcikpLm1hcCh1KSkscik6ZX0sci50aWNrcz1mdW5jdGlvbihuKXtyZXR1cm4gSWkoZSxuKX0sci50aWNrRm9ybWF0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIFppKGUsbix0KX0sci5uaWNlPWZ1bmN0aW9uKG4pe3JldHVybiByLmRvbWFpbihPaShlLG4pKX0sci5leHBvbmVudD1mdW5jdGlvbihvKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1XaSh0PW8pLGk9V2koMS90KSxuLmRvbWFpbihlLm1hcCh1KSkscik6dH0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEJpKG4uY29weSgpLHQsZSl9LEZpKHIsbil9ZnVuY3Rpb24gV2kobil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiAwPnQ/LU1hdGgucG93KC10LG4pOk1hdGgucG93KHQsbil9fWZ1bmN0aW9uIEppKG4sdCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gb1soKGkuZ2V0KGUpfHwicmFuZ2UiPT09dC50JiZpLnNldChlLG4ucHVzaChlKSkpLTEpJW8ubGVuZ3RoXX1mdW5jdGlvbiByKHQsZSl7cmV0dXJuIFhvLnJhbmdlKG4ubGVuZ3RoKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIHQrZSpufSl9dmFyIGksbyxhO3JldHVybiBlLmRvbWFpbj1mdW5jdGlvbihyKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbjtuPVtdLGk9bmV3IHU7Zm9yKHZhciBvLGE9LTEsYz1yLmxlbmd0aDsrK2E8YzspaS5oYXMobz1yW2FdKXx8aS5zZXQobyxuLnB1c2gobykpO3JldHVybiBlW3QudF0uYXBwbHkoZSx0LmEpfSxlLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW4sYT0wLHQ9e3Q6InJhbmdlIixhOmFyZ3VtZW50c30sZSk6b30sZS5yYW5nZVBvaW50cz1mdW5jdGlvbih1LGkpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKGk9MCk7dmFyIGM9dVswXSxzPXVbMV0sbD0ocy1jKS8oTWF0aC5tYXgoMSxuLmxlbmd0aC0xKStpKTtyZXR1cm4gbz1yKG4ubGVuZ3RoPDI/KGMrcykvMjpjK2wqaS8yLGwpLGE9MCx0PXt0OiJyYW5nZVBvaW50cyIsYTphcmd1bWVudHN9LGV9LGUucmFuZ2VCYW5kcz1mdW5jdGlvbih1LGksYyl7YXJndW1lbnRzLmxlbmd0aDwyJiYoaT0wKSxhcmd1bWVudHMubGVuZ3RoPDMmJihjPWkpO3ZhciBzPXVbMV08dVswXSxsPXVbcy0wXSxmPXVbMS1zXSxoPShmLWwpLyhuLmxlbmd0aC1pKzIqYyk7cmV0dXJuIG89cihsK2gqYyxoKSxzJiZvLnJldmVyc2UoKSxhPWgqKDEtaSksdD17dDoicmFuZ2VCYW5kcyIsYTphcmd1bWVudHN9LGV9LGUucmFuZ2VSb3VuZEJhbmRzPWZ1bmN0aW9uKHUsaSxjKXthcmd1bWVudHMubGVuZ3RoPDImJihpPTApLGFyZ3VtZW50cy5sZW5ndGg8MyYmKGM9aSk7dmFyIHM9dVsxXTx1WzBdLGw9dVtzLTBdLGY9dVsxLXNdLGg9TWF0aC5mbG9vcigoZi1sKS8obi5sZW5ndGgtaSsyKmMpKSxnPWYtbC0obi5sZW5ndGgtaSkqaDtyZXR1cm4gbz1yKGwrTWF0aC5yb3VuZChnLzIpLGgpLHMmJm8ucmV2ZXJzZSgpLGE9TWF0aC5yb3VuZChoKigxLWkpKSx0PXt0OiJyYW5nZVJvdW5kQmFuZHMiLGE6YXJndW1lbnRzfSxlfSxlLnJhbmdlQmFuZD1mdW5jdGlvbigpe3JldHVybiBhfSxlLnJhbmdlRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHppKHQuYVswXSl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBKaShuLHQpfSxlLmRvbWFpbihuKX1mdW5jdGlvbiBHaShuLHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT0wLGk9dC5sZW5ndGg7Zm9yKHU9W107KytlPGk7KXVbZS0xXT1Yby5xdWFudGlsZShuLGUvaSk7cmV0dXJuIHJ9ZnVuY3Rpb24gcihuKXtyZXR1cm4gaXNOYU4obj0rbik/dm9pZCAwOnRbWG8uYmlzZWN0KHUsbildfXZhciB1O3JldHVybiByLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4haXNOYU4obil9KS5zb3J0KFhvLmFzY2VuZGluZyksZSgpKTpufSxyLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW4sZSgpKTp0fSxyLnF1YW50aWxlcz1mdW5jdGlvbigpe3JldHVybiB1fSxyLmludmVydEV4dGVudD1mdW5jdGlvbihlKXtyZXR1cm4gZT10LmluZGV4T2YoZSksMD5lP1swLzAsMC8wXTpbZT4wP3VbZS0xXTpuWzBdLGU8dS5sZW5ndGg/dVtlXTpuW24ubGVuZ3RoLTFdXX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEdpKG4sdCl9LGUoKX1mdW5jdGlvbiBLaShuLHQsZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZVtNYXRoLm1heCgwLE1hdGgubWluKG8sTWF0aC5mbG9vcihpKih0LW4pKSkpXX1mdW5jdGlvbiB1KCl7cmV0dXJuIGk9ZS5sZW5ndGgvKHQtbiksbz1lLmxlbmd0aC0xLHJ9dmFyIGksbztyZXR1cm4gci5kb21haW49ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K2VbMF0sdD0rZVtlLmxlbmd0aC0xXSx1KCkpOltuLHRdfSxyLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4sdSgpKTplfSxyLmludmVydEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gdD1lLmluZGV4T2YodCksdD0wPnQ/MC8wOnQvaStuLFt0LHQrMS9pXX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEtpKG4sdCxlKX0sdSgpfWZ1bmN0aW9uIFFpKG4sdCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZT49ZT90W1hvLmJpc2VjdChuLGUpXTp2b2lkIDB9cmV0dXJuIGUuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZSk6bn0sZS5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLGUpOnR9LGUuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKGUpe3JldHVybiBlPXQuaW5kZXhPZihlKSxbbltlLTFdLG5bZV1dfSxlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gUWkobix0KX0sZX1mdW5jdGlvbiBubyhuKXtmdW5jdGlvbiB0KG4pe3JldHVybitufXJldHVybiB0LmludmVydD10LHQuZG9tYWluPXQucmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZS5tYXAodCksdCk6bn0sdC50aWNrcz1mdW5jdGlvbih0KXtyZXR1cm4gSWkobix0KX0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFppKG4sdCxlKX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIG5vKG4pfSx0fWZ1bmN0aW9uIHRvKG4pe3JldHVybiBuLmlubmVyUmFkaXVzfWZ1bmN0aW9uIGVvKG4pe3JldHVybiBuLm91dGVyUmFkaXVzfWZ1bmN0aW9uIHJvKG4pe3JldHVybiBuLnN0YXJ0QW5nbGV9ZnVuY3Rpb24gdW8obil7cmV0dXJuIG4uZW5kQW5nbGV9ZnVuY3Rpb24gaW8obil7ZnVuY3Rpb24gdCh0KXtmdW5jdGlvbiBvKCl7cy5wdXNoKCJNIixpKG4obCksYSkpfWZvcih2YXIgYyxzPVtdLGw9W10sZj0tMSxoPXQubGVuZ3RoLGc9X3QoZSkscD1fdChyKTsrK2Y8aDspdS5jYWxsKHRoaXMsYz10W2ZdLGYpP2wucHVzaChbK2cuY2FsbCh0aGlzLGMsZiksK3AuY2FsbCh0aGlzLGMsZildKTpsLmxlbmd0aCYmKG8oKSxsPVtdKTtyZXR1cm4gbC5sZW5ndGgmJm8oKSxzLmxlbmd0aD9zLmpvaW4oIiIpOm51bGx9dmFyIGU9YnIscj13cix1PWJlLGk9b28sbz1pLmtleSxhPS43O3JldHVybiB0Lng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix0KTplfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bix0KTpyfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9bix0KTp1fSx0LmludGVycG9sYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiBuP2k9bjooaT1Ncy5nZXQobil8fG9vKS5rZXksdCk6b30sdC50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW4sdCk6YX0sdH1mdW5jdGlvbiBvbyhuKXtyZXR1cm4gbi5qb2luKCJMIil9ZnVuY3Rpb24gYW8obil7cmV0dXJuIG9vKG4pKyJaIn1mdW5jdGlvbiBjbyhuKXtmb3IodmFyIHQ9MCxlPW4ubGVuZ3RoLHI9blswXSx1PVtyWzBdLCIsIixyWzFdXTsrK3Q8ZTspdS5wdXNoKCJIIiwoclswXSsocj1uW3RdKVswXSkvMiwiViIsclsxXSk7cmV0dXJuIGU+MSYmdS5wdXNoKCJIIixyWzBdKSx1LmpvaW4oIiIpfWZ1bmN0aW9uIHNvKG4pe2Zvcih2YXIgdD0wLGU9bi5sZW5ndGgscj1uWzBdLHU9W3JbMF0sIiwiLHJbMV1dOysrdDxlOyl1LnB1c2goIlYiLChyPW5bdF0pWzFdLCJIIixyWzBdKTtyZXR1cm4gdS5qb2luKCIiKX1mdW5jdGlvbiBsbyhuKXtmb3IodmFyIHQ9MCxlPW4ubGVuZ3RoLHI9blswXSx1PVtyWzBdLCIsIixyWzFdXTsrK3Q8ZTspdS5wdXNoKCJIIiwocj1uW3RdKVswXSwiViIsclsxXSk7cmV0dXJuIHUuam9pbigiIil9ZnVuY3Rpb24gZm8obix0KXtyZXR1cm4gbi5sZW5ndGg8ND9vbyhuKTpuWzFdK3BvKG4uc2xpY2UoMSxuLmxlbmd0aC0xKSx2byhuLHQpKX1mdW5jdGlvbiBobyhuLHQpe3JldHVybiBuLmxlbmd0aDwzP29vKG4pOm5bMF0rcG8oKG4ucHVzaChuWzBdKSxuKSx2byhbbltuLmxlbmd0aC0yXV0uY29uY2F0KG4sW25bMV1dKSx0KSl9ZnVuY3Rpb24gZ28obix0KXtyZXR1cm4gbi5sZW5ndGg8Mz9vbyhuKTpuWzBdK3BvKG4sdm8obix0KSl9ZnVuY3Rpb24gcG8obix0KXtpZih0Lmxlbmd0aDwxfHxuLmxlbmd0aCE9dC5sZW5ndGgmJm4ubGVuZ3RoIT10Lmxlbmd0aCsyKXJldHVybiBvbyhuKTt2YXIgZT1uLmxlbmd0aCE9dC5sZW5ndGgscj0iIix1PW5bMF0saT1uWzFdLG89dFswXSxhPW8sYz0xO2lmKGUmJihyKz0iUSIrKGlbMF0tMipvWzBdLzMpKyIsIisoaVsxXS0yKm9bMV0vMykrIiwiK2lbMF0rIiwiK2lbMV0sdT1uWzFdLGM9MiksdC5sZW5ndGg+MSl7YT10WzFdLGk9bltjXSxjKysscis9IkMiKyh1WzBdK29bMF0pKyIsIisodVsxXStvWzFdKSsiLCIrKGlbMF0tYVswXSkrIiwiKyhpWzFdLWFbMV0pKyIsIitpWzBdKyIsIitpWzFdO2Zvcih2YXIgcz0yO3M8dC5sZW5ndGg7cysrLGMrKylpPW5bY10sYT10W3NdLHIrPSJTIisoaVswXS1hWzBdKSsiLCIrKGlbMV0tYVsxXSkrIiwiK2lbMF0rIiwiK2lbMV19aWYoZSl7dmFyIGw9bltjXTtyKz0iUSIrKGlbMF0rMiphWzBdLzMpKyIsIisoaVsxXSsyKmFbMV0vMykrIiwiK2xbMF0rIiwiK2xbMV19cmV0dXJuIHJ9ZnVuY3Rpb24gdm8obix0KXtmb3IodmFyIGUscj1bXSx1PSgxLXQpLzIsaT1uWzBdLG89blsxXSxhPTEsYz1uLmxlbmd0aDsrK2E8YzspZT1pLGk9byxvPW5bYV0sci5wdXNoKFt1KihvWzBdLWVbMF0pLHUqKG9bMV0tZVsxXSldKTtyZXR1cm4gcn1mdW5jdGlvbiBtbyhuKXtpZihuLmxlbmd0aDwzKXJldHVybiBvbyhuKTt2YXIgdD0xLGU9bi5sZW5ndGgscj1uWzBdLHU9clswXSxpPXJbMV0sbz1bdSx1LHUsKHI9blsxXSlbMF1dLGE9W2ksaSxpLHJbMV1dLGM9W3UsIiwiLGksIkwiLF9vKHdzLG8pLCIsIixfbyh3cyxhKV07Zm9yKG4ucHVzaChuW2UtMV0pOysrdDw9ZTspcj1uW3RdLG8uc2hpZnQoKSxvLnB1c2goclswXSksYS5zaGlmdCgpLGEucHVzaChyWzFdKSxibyhjLG8sYSk7cmV0dXJuIG4ucG9wKCksYy5wdXNoKCJMIixyKSxjLmpvaW4oIiIpfWZ1bmN0aW9uIHlvKG4pe2lmKG4ubGVuZ3RoPDQpcmV0dXJuIG9vKG4pO2Zvcih2YXIgdCxlPVtdLHI9LTEsdT1uLmxlbmd0aCxpPVswXSxvPVswXTsrK3I8MzspdD1uW3JdLGkucHVzaCh0WzBdKSxvLnB1c2godFsxXSk7Zm9yKGUucHVzaChfbyh3cyxpKSsiLCIrX28od3MsbykpLC0tcjsrK3I8dTspdD1uW3JdLGkuc2hpZnQoKSxpLnB1c2godFswXSksby5zaGlmdCgpLG8ucHVzaCh0WzFdKSxibyhlLGksbyk7cmV0dXJuIGUuam9pbigiIil9ZnVuY3Rpb24geG8obil7Zm9yKHZhciB0LGUscj0tMSx1PW4ubGVuZ3RoLGk9dSs0LG89W10sYT1bXTsrK3I8NDspZT1uW3IldV0sby5wdXNoKGVbMF0pLGEucHVzaChlWzFdKTtmb3IodD1bX28od3MsbyksIiwiLF9vKHdzLGEpXSwtLXI7KytyPGk7KWU9bltyJXVdLG8uc2hpZnQoKSxvLnB1c2goZVswXSksYS5zaGlmdCgpLGEucHVzaChlWzFdKSxibyh0LG8sYSk7cmV0dXJuIHQuam9pbigiIil9ZnVuY3Rpb24gTW8obix0KXt2YXIgZT1uLmxlbmd0aC0xO2lmKGUpZm9yKHZhciByLHUsaT1uWzBdWzBdLG89blswXVsxXSxhPW5bZV1bMF0taSxjPW5bZV1bMV0tbyxzPS0xOysrczw9ZTspcj1uW3NdLHU9cy9lLHJbMF09dCpyWzBdKygxLXQpKihpK3UqYSksclsxXT10KnJbMV0rKDEtdCkqKG8rdSpjKTtyZXR1cm4gbW8obil9ZnVuY3Rpb24gX28obix0KXtyZXR1cm4gblswXSp0WzBdK25bMV0qdFsxXStuWzJdKnRbMl0rblszXSp0WzNdfWZ1bmN0aW9uIGJvKG4sdCxlKXtuLnB1c2goIkMiLF9vKF9zLHQpLCIsIixfbyhfcyxlKSwiLCIsX28oYnMsdCksIiwiLF9vKGJzLGUpLCIsIixfbyh3cyx0KSwiLCIsX28od3MsZSkpfWZ1bmN0aW9uIHdvKG4sdCl7cmV0dXJuKHRbMV0tblsxXSkvKHRbMF0tblswXSl9ZnVuY3Rpb24gU28obil7Zm9yKHZhciB0PTAsZT1uLmxlbmd0aC0xLHI9W10sdT1uWzBdLGk9blsxXSxvPXJbMF09d28odSxpKTsrK3Q8ZTspclt0XT0obysobz13byh1PWksaT1uW3QrMV0pKSkvMjtyZXR1cm4gclt0XT1vLHJ9ZnVuY3Rpb24ga28obil7Zm9yKHZhciB0LGUscix1LGk9W10sbz1TbyhuKSxhPS0xLGM9bi5sZW5ndGgtMTsrK2E8YzspdD13byhuW2FdLG5bYSsxXSksb2EodCk8QWE/b1thXT1vW2ErMV09MDooZT1vW2FdL3Qscj1vW2ErMV0vdCx1PWUqZStyKnIsdT45JiYodT0zKnQvTWF0aC5zcXJ0KHUpLG9bYV09dSplLG9bYSsxXT11KnIpKTtmb3IoYT0tMTsrK2E8PWM7KXU9KG5bTWF0aC5taW4oYyxhKzEpXVswXS1uW01hdGgubWF4KDAsYS0xKV1bMF0pLyg2KigxK29bYV0qb1thXSkpLGkucHVzaChbdXx8MCxvW2FdKnV8fDBdKTtyZXR1cm4gaX1mdW5jdGlvbiBFbyhuKXtyZXR1cm4gbi5sZW5ndGg8Mz9vbyhuKTpuWzBdK3BvKG4sa28obikpfWZ1bmN0aW9uIEFvKG4pe2Zvcih2YXIgdCxlLHIsdT0tMSxpPW4ubGVuZ3RoOysrdTxpOyl0PW5bdV0sZT10WzBdLHI9dFsxXSt5cyx0WzBdPWUqTWF0aC5jb3MociksdFsxXT1lKk1hdGguc2luKHIpO3JldHVybiBufWZ1bmN0aW9uIENvKG4pe2Z1bmN0aW9uIHQodCl7ZnVuY3Rpb24gYygpe3YucHVzaCgiTSIsYShuKG0pLGYpLGwscyhuKGQucmV2ZXJzZSgpKSxmKSwiWiIpfWZvcih2YXIgaCxnLHAsdj1bXSxkPVtdLG09W10seT0tMSx4PXQubGVuZ3RoLE09X3QoZSksXz1fdCh1KSxiPWU9PT1yP2Z1bmN0aW9uKCl7cmV0dXJuIGd9Ol90KHIpLHc9dT09PWk/ZnVuY3Rpb24oKXtyZXR1cm4gcH06X3QoaSk7Kyt5PHg7KW8uY2FsbCh0aGlzLGg9dFt5XSx5KT8oZC5wdXNoKFtnPStNLmNhbGwodGhpcyxoLHkpLHA9K18uY2FsbCh0aGlzLGgseSldKSxtLnB1c2goWytiLmNhbGwodGhpcyxoLHkpLCt3LmNhbGwodGhpcyxoLHkpXSkpOmQubGVuZ3RoJiYoYygpLGQ9W10sbT1bXSk7cmV0dXJuIGQubGVuZ3RoJiZjKCksdi5sZW5ndGg/di5qb2luKCIiKTpudWxsfXZhciBlPWJyLHI9YnIsdT0wLGk9d3Isbz1iZSxhPW9vLGM9YS5rZXkscz1hLGw9IkwiLGY9Ljc7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1yPW4sdCk6cn0sdC54MD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQueDE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bix0KTpyfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9aT1uLHQpOml9LHQueTA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9bix0KTp1fSx0LnkxPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW4sdCk6aX0sdC5kZWZpbmVkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW4sdCk6b30sdC5pbnRlcnBvbGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVuY3Rpb24iPT10eXBlb2Ygbj9hPW46KGE9TXMuZ2V0KG4pfHxvbykua2V5LHM9YS5yZXZlcnNlfHxhLGw9YS5jbG9zZWQ/Ik0iOiJMIix0KTpjfSx0LnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bix0KTpmfSx0fWZ1bmN0aW9uIE5vKG4pe3JldHVybiBuLnJhZGl1c31mdW5jdGlvbiBMbyhuKXtyZXR1cm5bbi54LG4ueV19ZnVuY3Rpb24gVG8obil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksZT10WzBdLHI9dFsxXSt5cztyZXR1cm5bZSpNYXRoLmNvcyhyKSxlKk1hdGguc2luKHIpXX19ZnVuY3Rpb24gcW8oKXtyZXR1cm4gNjR9ZnVuY3Rpb24gem8oKXtyZXR1cm4iY2lyY2xlIn1mdW5jdGlvbiBSbyhuKXt2YXIgdD1NYXRoLnNxcnQobi9TYSk7cmV0dXJuIk0wLCIrdCsiQSIrdCsiLCIrdCsiIDAgMSwxIDAsIistdCsiQSIrdCsiLCIrdCsiIDAgMSwxIDAsIit0KyJaIn1mdW5jdGlvbiBEbyhuLHQpe3JldHVybiBmYShuLE5zKSxuLmlkPXQsbn1mdW5jdGlvbiBQbyhuLHQsZSxyKXt2YXIgdT1uLmlkO3JldHVybiBSKG4sImZ1bmN0aW9uIj09dHlwZW9mIGU/ZnVuY3Rpb24obixpLG8pe24uX190cmFuc2l0aW9uX19bdV0udHdlZW4uc2V0KHQscihlLmNhbGwobixuLl9fZGF0YV9fLGksbykpKX06KGU9cihlKSxmdW5jdGlvbihuKXtuLl9fdHJhbnNpdGlvbl9fW3VdLnR3ZWVuLnNldCh0LGUpfSkpfWZ1bmN0aW9uIFVvKG4pe3JldHVybiBudWxsPT1uJiYobj0iIiksZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PW59fWZ1bmN0aW9uIGpvKG4sdCxlLHIpe3ZhciBpPW4uX190cmFuc2l0aW9uX198fChuLl9fdHJhbnNpdGlvbl9fPXthY3RpdmU6MCxjb3VudDowfSksbz1pW2VdO2lmKCFvKXt2YXIgYT1yLnRpbWU7bz1pW2VdPXt0d2VlbjpuZXcgdSx0aW1lOmEsZWFzZTpyLmVhc2UsZGVsYXk6ci5kZWxheSxkdXJhdGlvbjpyLmR1cmF0aW9ufSwrK2kuY291bnQsWG8udGltZXIoZnVuY3Rpb24ocil7ZnVuY3Rpb24gdShyKXtyZXR1cm4gaS5hY3RpdmU+ZT9zKCk6KGkuYWN0aXZlPWUsby5ldmVudCYmby5ldmVudC5zdGFydC5jYWxsKG4sbCx0KSxvLnR3ZWVuLmZvckVhY2goZnVuY3Rpb24oZSxyKXsocj1yLmNhbGwobixsLHQpKSYmdi5wdXNoKHIpfSksWG8udGltZXIoZnVuY3Rpb24oKXtyZXR1cm4gcC5jPWMocnx8MSk/YmU6YywxfSwwLGEpLHZvaWQgMCl9ZnVuY3Rpb24gYyhyKXtpZihpLmFjdGl2ZSE9PWUpcmV0dXJuIHMoKTtmb3IodmFyIHU9ci9nLGE9Zih1KSxjPXYubGVuZ3RoO2M+MDspdlstLWNdLmNhbGwobixhKTtyZXR1cm4gdT49MT8oby5ldmVudCYmby5ldmVudC5lbmQuY2FsbChuLGwsdCkscygpKTp2b2lkIDB9ZnVuY3Rpb24gcygpe3JldHVybi0taS5jb3VudD9kZWxldGUgaVtlXTpkZWxldGUgbi5fX3RyYW5zaXRpb25fXywxfXZhciBsPW4uX19kYXRhX18sZj1vLmVhc2UsaD1vLmRlbGF5LGc9by5kdXJhdGlvbixwPUphLHY9W107cmV0dXJuIHAudD1oK2Escj49aD91KHItaCk6KHAuYz11LHZvaWQgMCl9LDAsYSl9fWZ1bmN0aW9uIEhvKG4sdCl7bi5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKG4pe3JldHVybiJ0cmFuc2xhdGUoIit0KG4pKyIsMCkifSl9ZnVuY3Rpb24gRm8obix0KXtuLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24obil7cmV0dXJuInRyYW5zbGF0ZSgwLCIrdChuKSsiKSJ9KX1mdW5jdGlvbiBPbyhuKXtyZXR1cm4gbi50b0lTT1N0cmluZygpfWZ1bmN0aW9uIFlvKG4sdCxlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuKHQpfWZ1bmN0aW9uIHUobixlKXt2YXIgcj1uWzFdLW5bMF0sdT1yL2UsaT1Yby5iaXNlY3QoanMsdSk7cmV0dXJuIGk9PWpzLmxlbmd0aD9bdC55ZWFyLFlpKG4ubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLzMxNTM2ZTZ9KSxlKVsyXV06aT90W3UvanNbaS0xXTxqc1tpXS91P2ktMTppXTpbT3MsWWkobixlKVsyXV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBJbyhuLmludmVydCh0KSl9LHIuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuLmRvbWFpbih0KSxyKTpuLmRvbWFpbigpLm1hcChJbyl9LHIubmljZT1mdW5jdGlvbihuLHQpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIWlzTmFOKGUpJiYhbi5yYW5nZShlLElvKCtlKzEpLHQpLmxlbmd0aH12YXIgaT1yLmRvbWFpbigpLG89emkoaSksYT1udWxsPT1uP3UobywxMCk6Im51bWJlciI9PXR5cGVvZiBuJiZ1KG8sbik7cmV0dXJuIGEmJihuPWFbMF0sdD1hWzFdKSxyLmRvbWFpbihQaShpLHQ+MT97Zmxvb3I6ZnVuY3Rpb24odCl7Zm9yKDtlKHQ9bi5mbG9vcih0KSk7KXQ9SW8odC0xKTtyZXR1cm4gdH0sY2VpbDpmdW5jdGlvbih0KXtmb3IoO2UodD1uLmNlaWwodCkpOyl0PUlvKCt0KzEpO3JldHVybiB0fX06bikpfSxyLnRpY2tzPWZ1bmN0aW9uKG4sdCl7dmFyIGU9emkoci5kb21haW4oKSksaT1udWxsPT1uP3UoZSwxMCk6Im51bWJlciI9PXR5cGVvZiBuP3UoZSxuKTohbi5yYW5nZSYmW3tyYW5nZTpufSx0XTtyZXR1cm4gaSYmKG49aVswXSx0PWlbMV0pLG4ucmFuZ2UoZVswXSxJbygrZVsxXSsxKSwxPnQ/MTp0KX0sci50aWNrRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiBZbyhuLmNvcHkoKSx0LGUpfSxGaShyLG4pfWZ1bmN0aW9uIElvKG4pe3JldHVybiBuZXcgRGF0ZShuKX1mdW5jdGlvbiBabyhuKXtyZXR1cm4gSlNPTi5wYXJzZShuLnJlc3BvbnNlVGV4dCl9ZnVuY3Rpb24gVm8obil7dmFyIHQ9V28uY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdC5zZWxlY3ROb2RlKFdvLmJvZHkpLHQuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KG4ucmVzcG9uc2VUZXh0KX12YXIgWG89e3ZlcnNpb246IjMuNC4zIn07RGF0ZS5ub3d8fChEYXRlLm5vdz1mdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0pO3ZhciAkbz1bXS5zbGljZSxCbz1mdW5jdGlvbihuKXtyZXR1cm4gJG8uY2FsbChuKX0sV289ZG9jdW1lbnQsSm89V28uZG9jdW1lbnRFbGVtZW50LEdvPXdpbmRvdzt0cnl7Qm8oSm8uY2hpbGROb2RlcylbMF0ubm9kZVR5cGV9Y2F0Y2goS28pe0JvPWZ1bmN0aW9uKG4pe2Zvcih2YXIgdD1uLmxlbmd0aCxlPW5ldyBBcnJheSh0KTt0LS07KWVbdF09blt0XTtyZXR1cm4gZX19dHJ5e1dvLmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLnNldFByb3BlcnR5KCJvcGFjaXR5IiwwLCIiKX1jYXRjaChRbyl7dmFyIG5hPUdvLkVsZW1lbnQucHJvdG90eXBlLHRhPW5hLnNldEF0dHJpYnV0ZSxlYT1uYS5zZXRBdHRyaWJ1dGVOUyxyYT1Hby5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSx1YT1yYS5zZXRQcm9wZXJ0eTtuYS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24obix0KXt0YS5jYWxsKHRoaXMsbix0KyIiKX0sbmEuc2V0QXR0cmlidXRlTlM9ZnVuY3Rpb24obix0LGUpe2VhLmNhbGwodGhpcyxuLHQsZSsiIil9LHJhLnNldFByb3BlcnR5PWZ1bmN0aW9uKG4sdCxlKXt1YS5jYWxsKHRoaXMsbix0KyIiLGUpfX1Yby5hc2NlbmRpbmc9ZnVuY3Rpb24obix0KXtyZXR1cm4gdD5uPy0xOm4+dD8xOm4+PXQ/MDowLzB9LFhvLmRlc2NlbmRpbmc9ZnVuY3Rpb24obix0KXtyZXR1cm4gbj50Py0xOnQ+bj8xOnQ+PW4/MDowLzB9LFhvLm1pbj1mdW5jdGlvbihuLHQpe3ZhciBlLHIsdT0tMSxpPW4ubGVuZ3RoO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtmb3IoOysrdTxpJiYhKG51bGwhPShlPW5bdV0pJiZlPj1lKTspZT12b2lkIDA7Zm9yKDsrK3U8aTspbnVsbCE9KHI9blt1XSkmJmU+ciYmKGU9cil9ZWxzZXtmb3IoOysrdTxpJiYhKG51bGwhPShlPXQuY2FsbChuLG5bdV0sdSkpJiZlPj1lKTspZT12b2lkIDA7Zm9yKDsrK3U8aTspbnVsbCE9KHI9dC5jYWxsKG4sblt1XSx1KSkmJmU+ciYmKGU9cil9cmV0dXJuIGV9LFhvLm1heD1mdW5jdGlvbihuLHQpe3ZhciBlLHIsdT0tMSxpPW4ubGVuZ3RoO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtmb3IoOysrdTxpJiYhKG51bGwhPShlPW5bdV0pJiZlPj1lKTspZT12b2lkIDA7Zm9yKDsrK3U8aTspbnVsbCE9KHI9blt1XSkmJnI+ZSYmKGU9cil9ZWxzZXtmb3IoOysrdTxpJiYhKG51bGwhPShlPXQuY2FsbChuLG5bdV0sdSkpJiZlPj1lKTspZT12b2lkIDA7Zm9yKDsrK3U8aTspbnVsbCE9KHI9dC5jYWxsKG4sblt1XSx1KSkmJnI+ZSYmKGU9cil9cmV0dXJuIGV9LFhvLmV4dGVudD1mdW5jdGlvbihuLHQpe3ZhciBlLHIsdSxpPS0xLG89bi5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7KytpPG8mJiEobnVsbCE9KGU9dT1uW2ldKSYmZT49ZSk7KWU9dT12b2lkIDA7Zm9yKDsrK2k8bzspbnVsbCE9KHI9bltpXSkmJihlPnImJihlPXIpLHI+dSYmKHU9cikpfWVsc2V7Zm9yKDsrK2k8byYmIShudWxsIT0oZT11PXQuY2FsbChuLG5baV0saSkpJiZlPj1lKTspZT12b2lkIDA7Zm9yKDsrK2k8bzspbnVsbCE9KHI9dC5jYWxsKG4sbltpXSxpKSkmJihlPnImJihlPXIpLHI+dSYmKHU9cikpfXJldHVybltlLHVdfSxYby5zdW09ZnVuY3Rpb24obix0KXt2YXIgZSxyPTAsdT1uLmxlbmd0aCxpPS0xO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKWZvcig7KytpPHU7KWlzTmFOKGU9K25baV0pfHwocis9ZSk7ZWxzZSBmb3IoOysraTx1Oylpc05hTihlPSt0LmNhbGwobixuW2ldLGkpKXx8KHIrPWUpO3JldHVybiByfSxYby5tZWFuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsdT10Lmxlbmd0aCxpPTAsbz0tMSxhPTA7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK288dTspbihyPXRbb10pJiYoaSs9KHItaSkvKythKTtlbHNlIGZvcig7KytvPHU7KW4ocj1lLmNhbGwodCx0W29dLG8pKSYmKGkrPShyLWkpLysrYSk7cmV0dXJuIGE/aTp2b2lkIDB9LFhvLnF1YW50aWxlPWZ1bmN0aW9uKG4sdCl7dmFyIGU9KG4ubGVuZ3RoLTEpKnQrMSxyPU1hdGguZmxvb3IoZSksdT0rbltyLTFdLGk9ZS1yO3JldHVybiBpP3UraSoobltyXS11KTp1fSxYby5tZWRpYW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xJiYodD10Lm1hcChlKSksdD10LmZpbHRlcihuKSx0Lmxlbmd0aD9Yby5xdWFudGlsZSh0LnNvcnQoWG8uYXNjZW5kaW5nKSwuNSk6dm9pZCAwfSxYby5iaXNlY3Rvcj1mdW5jdGlvbihuKXtyZXR1cm57bGVmdDpmdW5jdGlvbih0LGUscix1KXtmb3IoYXJndW1lbnRzLmxlbmd0aDwzJiYocj0wKSxhcmd1bWVudHMubGVuZ3RoPDQmJih1PXQubGVuZ3RoKTt1PnI7KXt2YXIgaT1yK3U+Pj4xO24uY2FsbCh0LHRbaV0saSk8ZT9yPWkrMTp1PWl9cmV0dXJuIHJ9LHJpZ2h0OmZ1bmN0aW9uKHQsZSxyLHUpe2Zvcihhcmd1bWVudHMubGVuZ3RoPDMmJihyPTApLGFyZ3VtZW50cy5sZW5ndGg8NCYmKHU9dC5sZW5ndGgpO3U+cjspe3ZhciBpPXIrdT4+PjE7ZTxuLmNhbGwodCx0W2ldLGkpP3U9aTpyPWkrMX1yZXR1cm4gcn19fTt2YXIgaWE9WG8uYmlzZWN0b3IoZnVuY3Rpb24obil7cmV0dXJuIG59KTtYby5iaXNlY3RMZWZ0PWlhLmxlZnQsWG8uYmlzZWN0PVhvLmJpc2VjdFJpZ2h0PWlhLnJpZ2h0LFhvLnNodWZmbGU9ZnVuY3Rpb24obil7Zm9yKHZhciB0LGUscj1uLmxlbmd0aDtyOyllPTB8TWF0aC5yYW5kb20oKSpyLS0sdD1uW3JdLG5bcl09bltlXSxuW2VdPXQ7cmV0dXJuIG59LFhvLnBlcm11dGU9ZnVuY3Rpb24obix0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPW5bdFtlXV07cmV0dXJuIHJ9LFhvLnBhaXJzPWZ1bmN0aW9uKG4pe2Zvcih2YXIgdCxlPTAscj1uLmxlbmd0aC0xLHU9blswXSxpPW5ldyBBcnJheSgwPnI/MDpyKTtyPmU7KWlbZV09W3Q9dSx1PW5bKytlXV07cmV0dXJuIGl9LFhvLnppcD1mdW5jdGlvbigpe2lmKCEodT1hcmd1bWVudHMubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIG49LTEsZT1Yby5taW4oYXJndW1lbnRzLHQpLHI9bmV3IEFycmF5KGUpOysrbjxlOylmb3IodmFyIHUsaT0tMSxvPXJbbl09bmV3IEFycmF5KHUpOysraTx1OylvW2ldPWFyZ3VtZW50c1tpXVtuXTtyZXR1cm4gcn0sWG8udHJhbnNwb3NlPWZ1bmN0aW9uKG4pe3JldHVybiBYby56aXAuYXBwbHkoWG8sbil9LFhvLmtleXM9ZnVuY3Rpb24obil7dmFyIHQ9W107Zm9yKHZhciBlIGluIG4pdC5wdXNoKGUpO3JldHVybiB0fSxYby52YWx1ZXM9ZnVuY3Rpb24obil7dmFyIHQ9W107Zm9yKHZhciBlIGluIG4pdC5wdXNoKG5bZV0pO3JldHVybiB0fSxYby5lbnRyaWVzPWZ1bmN0aW9uKG4pe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiBuKXQucHVzaCh7a2V5OmUsdmFsdWU6bltlXX0pO3JldHVybiB0fSxYby5tZXJnZT1mdW5jdGlvbihuKXtmb3IodmFyIHQsZSxyLHU9bi5sZW5ndGgsaT0tMSxvPTA7KytpPHU7KW8rPW5baV0ubGVuZ3RoO2ZvcihlPW5ldyBBcnJheShvKTstLXU+PTA7KWZvcihyPW5bdV0sdD1yLmxlbmd0aDstLXQ+PTA7KWVbLS1vXT1yW3RdO3JldHVybiBlfTt2YXIgb2E9TWF0aC5hYnM7WG8ucmFuZ2U9ZnVuY3Rpb24obix0LHIpe2lmKGFyZ3VtZW50cy5sZW5ndGg8MyYmKHI9MSxhcmd1bWVudHMubGVuZ3RoPDImJih0PW4sbj0wKSksMS8wPT09KHQtbikvcil0aHJvdyBuZXcgRXJyb3IoImluZmluaXRlIHJhbmdlIik7dmFyIHUsaT1bXSxvPWUob2EocikpLGE9LTE7aWYobio9byx0Kj1vLHIqPW8sMD5yKWZvcig7KHU9bityKisrYSk+dDspaS5wdXNoKHUvbyk7ZWxzZSBmb3IoOyh1PW4rciorK2EpPHQ7KWkucHVzaCh1L28pO3JldHVybiBpfSxYby5tYXA9ZnVuY3Rpb24obil7dmFyIHQ9bmV3IHU7aWYobiBpbnN0YW5jZW9mIHUpbi5mb3JFYWNoKGZ1bmN0aW9uKG4sZSl7dC5zZXQobixlKX0pO2Vsc2UgZm9yKHZhciBlIGluIG4pdC5zZXQoZSxuW2VdKTtyZXR1cm4gdH0scih1LHtoYXM6aSxnZXQ6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXNbYWErbl19LHNldDpmdW5jdGlvbihuLHQpe3JldHVybiB0aGlzW2FhK25dPXR9LHJlbW92ZTpvLGtleXM6YSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSksbn0sZW50cmllczpmdW5jdGlvbigpe3ZhciBuPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24odCxlKXtuLnB1c2goe2tleTp0LHZhbHVlOmV9KX0pLG59LHNpemU6YyxlbXB0eTpzLGZvckVhY2g6ZnVuY3Rpb24obil7Zm9yKHZhciB0IGluIHRoaXMpdC5jaGFyQ29kZUF0KDApPT09Y2EmJm4uY2FsbCh0aGlzLHQuc3Vic3RyaW5nKDEpLHRoaXNbdF0pfX0pO3ZhciBhYT0iXHgwMCIsY2E9YWEuY2hhckNvZGVBdCgwKTtYby5uZXN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGEsYyl7aWYoYz49by5sZW5ndGgpcmV0dXJuIHI/ci5jYWxsKGksYSk6ZT9hLnNvcnQoZSk6YTtmb3IodmFyIHMsbCxmLGgsZz0tMSxwPWEubGVuZ3RoLHY9b1tjKytdLGQ9bmV3IHU7KytnPHA7KShoPWQuZ2V0KHM9dihsPWFbZ10pKSk/aC5wdXNoKGwpOmQuc2V0KHMsW2xdKTtyZXR1cm4gdD8obD10KCksZj1mdW5jdGlvbihlLHIpe2wuc2V0KGUsbih0LHIsYykpfSk6KGw9e30sZj1mdW5jdGlvbihlLHIpe2xbZV09bih0LHIsYyl9KSxkLmZvckVhY2goZiksbH1mdW5jdGlvbiB0KG4sZSl7aWYoZT49by5sZW5ndGgpcmV0dXJuIG47dmFyIHI9W10sdT1hW2UrK107cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihuLHUpe3IucHVzaCh7a2V5Om4sdmFsdWVzOnQodSxlKX0pfSksdT9yLnNvcnQoZnVuY3Rpb24obix0KXtyZXR1cm4gdShuLmtleSx0LmtleSl9KTpyfXZhciBlLHIsaT17fSxvPVtdLGE9W107cmV0dXJuIGkubWFwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oZSx0LDApfSxpLmVudHJpZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHQobihYby5tYXAsZSwwKSwwKX0saS5rZXk9ZnVuY3Rpb24obil7cmV0dXJuIG8ucHVzaChuKSxpfSxpLnNvcnRLZXlzPWZ1bmN0aW9uKG4pe3JldHVybiBhW28ubGVuZ3RoLTFdPW4saX0saS5zb3J0VmFsdWVzPWZ1bmN0aW9uKG4pe3JldHVybiBlPW4saX0saS5yb2xsdXA9ZnVuY3Rpb24obil7cmV0dXJuIHI9bixpfSxpfSxYby5zZXQ9ZnVuY3Rpb24obil7dmFyIHQ9bmV3IGw7aWYobilmb3IodmFyIGU9MCxyPW4ubGVuZ3RoO3I+ZTsrK2UpdC5hZGQobltlXSk7cmV0dXJuIHR9LHIobCx7aGFzOmksYWRkOmZ1bmN0aW9uKG4pe3JldHVybiB0aGlzW2FhK25dPSEwLG59LHJlbW92ZTpmdW5jdGlvbihuKXtyZXR1cm4gbj1hYStuLG4gaW4gdGhpcyYmZGVsZXRlIHRoaXNbbl19LHZhbHVlczphLHNpemU6YyxlbXB0eTpzLGZvckVhY2g6ZnVuY3Rpb24obil7Zm9yKHZhciB0IGluIHRoaXMpdC5jaGFyQ29kZUF0KDApPT09Y2EmJm4uY2FsbCh0aGlzLHQuc3Vic3RyaW5nKDEpKX19KSxYby5iZWhhdmlvcj17fSxYby5yZWJpbmQ9ZnVuY3Rpb24obix0KXtmb3IodmFyIGUscj0xLHU9YXJndW1lbnRzLmxlbmd0aDsrK3I8dTspbltlPWFyZ3VtZW50c1tyXV09ZihuLHQsdFtlXSk7cmV0dXJuIG59O3ZhciBzYT1bIndlYmtpdCIsIm1zIiwibW96IiwiTW96IiwibyIsIk8iXTtYby5kaXNwYXRjaD1mdW5jdGlvbigpe2Zvcih2YXIgbj1uZXcgcCx0PS0xLGU9YXJndW1lbnRzLmxlbmd0aDsrK3Q8ZTspblthcmd1bWVudHNbdF1dPXYobik7cmV0dXJuIG59LHAucHJvdG90eXBlLm9uPWZ1bmN0aW9uKG4sdCl7dmFyIGU9bi5pbmRleE9mKCIuIikscj0iIjtpZihlPj0wJiYocj1uLnN1YnN0cmluZyhlKzEpLG49bi5zdWJzdHJpbmcoMCxlKSksbilyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3RoaXNbbl0ub24ocik6dGhpc1tuXS5vbihyLHQpO2lmKDI9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihudWxsPT10KWZvcihuIGluIHRoaXMpdGhpcy5oYXNPd25Qcm9wZXJ0eShuKSYmdGhpc1tuXS5vbihyLG51bGwpO3JldHVybiB0aGlzfX0sWG8uZXZlbnQ9bnVsbCxYby5yZXF1b3RlPWZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcGxhY2UobGEsIlxcJCYiKX07dmFyIGxhPS9bXFxcXlwkXCpcK1w/XHxcW1xdXChcKVwuXHtcfV0vZyxmYT17fS5fX3Byb3RvX18/ZnVuY3Rpb24obix0KXtuLl9fcHJvdG9fXz10fTpmdW5jdGlvbihuLHQpe2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXX0saGE9ZnVuY3Rpb24obix0KXtyZXR1cm4gdC5xdWVyeVNlbGVjdG9yKG4pfSxnYT1mdW5jdGlvbihuLHQpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3JBbGwobil9LHBhPUpvW2goSm8sIm1hdGNoZXNTZWxlY3RvciIpXSx2YT1mdW5jdGlvbihuLHQpe3JldHVybiBwYS5jYWxsKG4sdCl9OyJmdW5jdGlvbiI9PXR5cGVvZiBTaXp6bGUmJihoYT1mdW5jdGlvbihuLHQpe3JldHVybiBTaXp6bGUobix0KVswXXx8bnVsbH0sZ2E9U2l6emxlLHZhPVNpenpsZS5tYXRjaGVzU2VsZWN0b3IpLFhvLnNlbGVjdGlvbj1mdW5jdGlvbigpe3JldHVybiB4YX07dmFyIGRhPVhvLnNlbGVjdGlvbi5wcm90b3R5cGU9W107ZGEuc2VsZWN0PWZ1bmN0aW9uKG4pe3ZhciB0LGUscix1LGk9W107bj1NKG4pO2Zvcih2YXIgbz0tMSxhPXRoaXMubGVuZ3RoOysrbzxhOyl7aS5wdXNoKHQ9W10pLHQucGFyZW50Tm9kZT0ocj10aGlzW29dKS5wYXJlbnROb2RlO2Zvcih2YXIgYz0tMSxzPXIubGVuZ3RoOysrYzxzOykodT1yW2NdKT8odC5wdXNoKGU9bi5jYWxsKHUsdS5fX2RhdGFfXyxjLG8pKSxlJiYiX19kYXRhX18iaW4gdSYmKGUuX19kYXRhX189dS5fX2RhdGFfXykpOnQucHVzaChudWxsKX1yZXR1cm4geChpKX0sZGEuc2VsZWN0QWxsPWZ1bmN0aW9uKG4pe3ZhciB0LGUscj1bXTtuPV8obik7Zm9yKHZhciB1PS0xLGk9dGhpcy5sZW5ndGg7Kyt1PGk7KWZvcih2YXIgbz10aGlzW3VdLGE9LTEsYz1vLmxlbmd0aDsrK2E8YzspKGU9b1thXSkmJihyLnB1c2godD1CbyhuLmNhbGwoZSxlLl9fZGF0YV9fLGEsdSkpKSx0LnBhcmVudE5vZGU9ZSk7cmV0dXJuIHgocil9O3ZhciBtYT17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseGh0bWw6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07WG8ubnM9e3ByZWZpeDptYSxxdWFsaWZ5OmZ1bmN0aW9uKG4pe3ZhciB0PW4uaW5kZXhPZigiOiIpLGU9bjtyZXR1cm4gdD49MCYmKGU9bi5zdWJzdHJpbmcoMCx0KSxuPW4uc3Vic3RyaW5nKHQrMSkpLG1hLmhhc093blByb3BlcnR5KGUpP3tzcGFjZTptYVtlXSxsb2NhbDpufTpufX0sZGEuYXR0cj1mdW5jdGlvbihuLHQpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7aWYoInN0cmluZyI9PXR5cGVvZiBuKXt2YXIgZT10aGlzLm5vZGUoKTtyZXR1cm4gbj1Yby5ucy5xdWFsaWZ5KG4pLG4ubG9jYWw/ZS5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOmUuZ2V0QXR0cmlidXRlKG4pfWZvcih0IGluIG4pdGhpcy5lYWNoKGIodCxuW3RdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChiKG4sdCkpfSxkYS5jbGFzc2VkPWZ1bmN0aW9uKG4sdCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtpZigic3RyaW5nIj09dHlwZW9mIG4pe3ZhciBlPXRoaXMubm9kZSgpLHI9KG49ayhuKSkubGVuZ3RoLHU9LTE7aWYodD1lLmNsYXNzTGlzdCl7Zm9yKDsrK3U8cjspaWYoIXQuY29udGFpbnMoblt1XSkpcmV0dXJuITF9ZWxzZSBmb3IodD1lLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsrK3U8cjspaWYoIVMoblt1XSkudGVzdCh0KSlyZXR1cm4hMTtyZXR1cm4hMH1mb3IodCBpbiBuKXRoaXMuZWFjaChFKHQsblt0XSkpO3JldHVybiB0aGlzfXJldHVybiB0aGlzLmVhY2goRShuLHQpKX0sZGEuc3R5bGU9ZnVuY3Rpb24obix0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg7aWYoMz5yKXtpZigic3RyaW5nIiE9dHlwZW9mIG4pezI+ciYmKHQ9IiIpO2ZvcihlIGluIG4pdGhpcy5lYWNoKEMoZSxuW2VdLHQpKTtyZXR1cm4gdGhpc31pZigyPnIpcmV0dXJuIEdvLmdldENvbXB1dGVkU3R5bGUodGhpcy5ub2RlKCksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKTtlPSIifXJldHVybiB0aGlzLmVhY2goQyhuLHQsZSkpfSxkYS5wcm9wZXJ0eT1mdW5jdGlvbihuLHQpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7aWYoInN0cmluZyI9PXR5cGVvZiBuKXJldHVybiB0aGlzLm5vZGUoKVtuXTtmb3IodCBpbiBuKXRoaXMuZWFjaChOKHQsblt0XSkpO3JldHVybiB0aGlzfXJldHVybiB0aGlzLmVhY2goTihuLHQpKX0sZGEudGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goImZ1bmN0aW9uIj09dHlwZW9mIG4/ZnVuY3Rpb24oKXt2YXIgdD1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PXQ/IiI6dH06bnVsbD09bj9mdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9IiJ9OmZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD1ufSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGRhLmh0bWw9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCJmdW5jdGlvbiI9PXR5cGVvZiBuP2Z1bmN0aW9uKCl7dmFyIHQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09dD8iIjp0fTpudWxsPT1uP2Z1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9IiJ9OmZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9bn0pOnRoaXMubm9kZSgpLmlubmVySFRNTH0sZGEuYXBwZW5kPWZ1bmN0aW9uKG4pe3JldHVybiBuPUwobiksdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX0sZGEuaW5zZXJ0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG49TChuKSx0PU0odCksdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9LGRhLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgbj10aGlzLnBhcmVudE5vZGU7biYmbi5yZW1vdmVDaGlsZCh0aGlzKX0pfSxkYS5kYXRhPWZ1bmN0aW9uKG4sdCl7ZnVuY3Rpb24gZShuLGUpe3ZhciByLGksbyxhPW4ubGVuZ3RoLGY9ZS5sZW5ndGgsaD1NYXRoLm1pbihhLGYpLGc9bmV3IEFycmF5KGYpLHA9bmV3IEFycmF5KGYpLHY9bmV3IEFycmF5KGEpO2lmKHQpe3ZhciBkLG09bmV3IHUseT1uZXcgdSx4PVtdO2ZvcihyPS0xOysrcjxhOylkPXQuY2FsbChpPW5bcl0saS5fX2RhdGFfXyxyKSxtLmhhcyhkKT92W3JdPWk6bS5zZXQoZCxpKSx4LnB1c2goZCk7Zm9yKHI9LTE7KytyPGY7KWQ9dC5jYWxsKGUsbz1lW3JdLHIpLChpPW0uZ2V0KGQpKT8oZ1tyXT1pLGkuX19kYXRhX189byk6eS5oYXMoZCl8fChwW3JdPVQobykpLHkuc2V0KGQsbyksbS5yZW1vdmUoZCk7Zm9yKHI9LTE7KytyPGE7KW0uaGFzKHhbcl0pJiYodltyXT1uW3JdKX1lbHNle2ZvcihyPS0xOysrcjxoOylpPW5bcl0sbz1lW3JdLGk/KGkuX19kYXRhX189byxnW3JdPWkpOnBbcl09VChvKTtmb3IoO2Y+cjsrK3IpcFtyXT1UKGVbcl0pO2Zvcig7YT5yOysrcil2W3JdPW5bcl19cC51cGRhdGU9ZyxwLnBhcmVudE5vZGU9Zy5wYXJlbnROb2RlPXYucGFyZW50Tm9kZT1uLnBhcmVudE5vZGUsYy5wdXNoKHApLHMucHVzaChnKSxsLnB1c2godil9dmFyIHIsaSxvPS0xLGE9dGhpcy5sZW5ndGg7aWYoIWFyZ3VtZW50cy5sZW5ndGgpe2ZvcihuPW5ldyBBcnJheShhPShyPXRoaXNbMF0pLmxlbmd0aCk7KytvPGE7KShpPXJbb10pJiYobltvXT1pLl9fZGF0YV9fKTtyZXR1cm4gbn12YXIgYz1EKFtdKSxzPXgoW10pLGw9eChbXSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pZm9yKDsrK288YTspZShyPXRoaXNbb10sbi5jYWxsKHIsci5wYXJlbnROb2RlLl9fZGF0YV9fLG8pKTtlbHNlIGZvcig7KytvPGE7KWUocj10aGlzW29dLG4pO3JldHVybiBzLmVudGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LHMuZXhpdD1mdW5jdGlvbigpe3JldHVybiBsfSxzfSxkYS5kYXR1bT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsbik6dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iKX0sZGEuZmlsdGVyPWZ1bmN0aW9uKG4pe3ZhciB0LGUscix1PVtdOyJmdW5jdGlvbiIhPXR5cGVvZiBuJiYobj1xKG4pKTtmb3IodmFyIGk9MCxvPXRoaXMubGVuZ3RoO28+aTtpKyspe3UucHVzaCh0PVtdKSx0LnBhcmVudE5vZGU9KGU9dGhpc1tpXSkucGFyZW50Tm9kZTtmb3IodmFyIGE9MCxjPWUubGVuZ3RoO2M+YTthKyspKHI9ZVthXSkmJm4uY2FsbChyLHIuX19kYXRhX18sYSxpKSYmdC5wdXNoKHIpfXJldHVybiB4KHUpfSxkYS5vcmRlcj1mdW5jdGlvbigpe2Zvcih2YXIgbj0tMSx0PXRoaXMubGVuZ3RoOysrbjx0Oylmb3IodmFyIGUscj10aGlzW25dLHU9ci5sZW5ndGgtMSxpPXJbdV07LS11Pj0wOykoZT1yW3VdKSYmKGkmJmkhPT1lLm5leHRTaWJsaW5nJiZpLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsaSksaT1lKTtyZXR1cm4gdGhpc30sZGEuc29ydD1mdW5jdGlvbihuKXtuPXouYXBwbHkodGhpcyxhcmd1bWVudHMpO2Zvcih2YXIgdD0tMSxlPXRoaXMubGVuZ3RoOysrdDxlOyl0aGlzW3RdLnNvcnQobik7cmV0dXJuIHRoaXMub3JkZXIoKX0sZGEuZWFjaD1mdW5jdGlvbihuKXtyZXR1cm4gUih0aGlzLGZ1bmN0aW9uKHQsZSxyKXtuLmNhbGwodCx0Ll9fZGF0YV9fLGUscil9KX0sZGEuY2FsbD1mdW5jdGlvbihuKXt2YXIgdD1Cbyhhcmd1bWVudHMpO3JldHVybiBuLmFwcGx5KHRbMF09dGhpcyx0KSx0aGlzfSxkYS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiF0aGlzLm5vZGUoKX0sZGEubm9kZT1mdW5jdGlvbigpe2Zvcih2YXIgbj0wLHQ9dGhpcy5sZW5ndGg7dD5uO24rKylmb3IodmFyIGU9dGhpc1tuXSxyPTAsdT1lLmxlbmd0aDt1PnI7cisrKXt2YXIgaT1lW3JdO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9LGRhLnNpemU9ZnVuY3Rpb24oKXt2YXIgbj0wO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsrK259KSxufTt2YXIgeWE9W107WG8uc2VsZWN0aW9uLmVudGVyPUQsWG8uc2VsZWN0aW9uLmVudGVyLnByb3RvdHlwZT15YSx5YS5hcHBlbmQ9ZGEuYXBwZW5kLHlhLmVtcHR5PWRhLmVtcHR5LHlhLm5vZGU9ZGEubm9kZSx5YS5jYWxsPWRhLmNhbGwseWEuc2l6ZT1kYS5zaXplLHlhLnNlbGVjdD1mdW5jdGlvbihuKXtmb3IodmFyIHQsZSxyLHUsaSxvPVtdLGE9LTEsYz10aGlzLmxlbmd0aDsrK2E8Yzspe3I9KHU9dGhpc1thXSkudXBkYXRlLG8ucHVzaCh0PVtdKSx0LnBhcmVudE5vZGU9dS5wYXJlbnROb2RlO2Zvcih2YXIgcz0tMSxsPXUubGVuZ3RoOysrczxsOykoaT11W3NdKT8odC5wdXNoKHJbc109ZT1uLmNhbGwodS5wYXJlbnROb2RlLGkuX19kYXRhX18scyxhKSksZS5fX2RhdGFfXz1pLl9fZGF0YV9fKTp0LnB1c2gobnVsbCl9cmV0dXJuIHgobyl9LHlhLmluc2VydD1mdW5jdGlvbihuLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDImJih0PVAodGhpcykpLGRhLmluc2VydC5jYWxsKHRoaXMsbix0KX0sZGEudHJhbnNpdGlvbj1mdW5jdGlvbigpe2Zvcih2YXIgbix0LGU9a3N8fCsrTHMscj1bXSx1PUVzfHx7dGltZTpEYXRlLm5vdygpLGVhc2U6eXUsZGVsYXk6MCxkdXJhdGlvbjoyNTB9LGk9LTEsbz10aGlzLmxlbmd0aDsrK2k8bzspe3IucHVzaChuPVtdKTtmb3IodmFyIGE9dGhpc1tpXSxjPS0xLHM9YS5sZW5ndGg7KytjPHM7KSh0PWFbY10pJiZqbyh0LGMsZSx1KSxuLnB1c2godCl9cmV0dXJuIERvKHIsZSl9LGRhLmludGVycnVwdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goVSl9LFhvLnNlbGVjdD1mdW5jdGlvbihuKXt2YXIgdD1bInN0cmluZyI9PXR5cGVvZiBuP2hhKG4sV28pOm5dO3JldHVybiB0LnBhcmVudE5vZGU9Sm8seChbdF0pfSxYby5zZWxlY3RBbGw9ZnVuY3Rpb24obil7dmFyIHQ9Qm8oInN0cmluZyI9PXR5cGVvZiBuP2dhKG4sV28pOm4pO3JldHVybiB0LnBhcmVudE5vZGU9Sm8seChbdF0pfTt2YXIgeGE9WG8uc2VsZWN0KEpvKTtkYS5vbj1mdW5jdGlvbihuLHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtpZigzPnIpe2lmKCJzdHJpbmciIT10eXBlb2Ygbil7Mj5yJiYodD0hMSk7Zm9yKGUgaW4gbil0aGlzLmVhY2goaihlLG5bZV0sdCkpO3JldHVybiB0aGlzfWlmKDI+cilyZXR1cm4ocj10aGlzLm5vZGUoKVsiX19vbiIrbl0pJiZyLl87ZT0hMX1yZXR1cm4gdGhpcy5lYWNoKGoobix0LGUpKX07dmFyIE1hPVhvLm1hcCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KTtNYS5mb3JFYWNoKGZ1bmN0aW9uKG4peyJvbiIrbiBpbiBXbyYmTWEucmVtb3ZlKG4pfSk7dmFyIF9hPSJvbnNlbGVjdHN0YXJ0ImluIFdvP251bGw6aChKby5zdHlsZSwidXNlclNlbGVjdCIpLGJhPTA7WG8ubW91c2U9ZnVuY3Rpb24obil7cmV0dXJuIFkobixtKCkpfTt2YXIgd2E9L1dlYktpdC8udGVzdChHby5uYXZpZ2F0b3IudXNlckFnZW50KT8tMTowO1hvLnRvdWNoZXM9ZnVuY3Rpb24obix0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYodD1tKCkudG91Y2hlcyksdD9Cbyh0KS5tYXAoZnVuY3Rpb24odCl7dmFyIGU9WShuLHQpO3JldHVybiBlLmlkZW50aWZpZXI9dC5pZGVudGlmaWVyLGV9KTpbXX0sWG8uYmVoYXZpb3IuZHJhZz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXt0aGlzLm9uKCJtb3VzZWRvd24uZHJhZyIsbykub24oInRvdWNoc3RhcnQuZHJhZyIsYSl9ZnVuY3Rpb24gdCgpe3JldHVybiBYby5ldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyfWZ1bmN0aW9uIGUobix0KXtyZXR1cm4gWG8udG91Y2hlcyhuKS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4uaWRlbnRpZmllcj09PXR9KVswXX1mdW5jdGlvbiByKG4sdCxlLHIpe3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIG8oKXt2YXIgbj10KGwsZyksZT1uWzBdLXZbMF0scj1uWzFdLXZbMV07ZHw9ZXxyLHY9bixmKHt0eXBlOiJkcmFnIix4Om5bMF0rY1swXSx5Om5bMV0rY1sxXSxkeDplLGR5OnJ9KX1mdW5jdGlvbiBhKCl7bS5vbihlKyIuIitwLG51bGwpLm9uKHIrIi4iK3AsbnVsbCkseShkJiZYby5ldmVudC50YXJnZXQ9PT1oKSxmKHt0eXBlOiJkcmFnZW5kIn0pfXZhciBjLHM9dGhpcyxsPXMucGFyZW50Tm9kZSxmPXUub2Yocyxhcmd1bWVudHMpLGg9WG8uZXZlbnQudGFyZ2V0LGc9bigpLHA9bnVsbD09Zz8iZHJhZyI6ImRyYWctIitnLHY9dChsLGcpLGQ9MCxtPVhvLnNlbGVjdChHbykub24oZSsiLiIrcCxvKS5vbihyKyIuIitwLGEpLHk9TygpO2k/KGM9aS5hcHBseShzLGFyZ3VtZW50cyksYz1bYy54LXZbMF0sYy55LXZbMV1dKTpjPVswLDBdLGYoe3R5cGU6ImRyYWdzdGFydCJ9KX19dmFyIHU9eShuLCJkcmFnIiwiZHJhZ3N0YXJ0IiwiZHJhZ2VuZCIpLGk9bnVsbCxvPXIoZyxYby5tb3VzZSwibW91c2Vtb3ZlIiwibW91c2V1cCIpLGE9cih0LGUsInRvdWNobW92ZSIsInRvdWNoZW5kIik7cmV0dXJuIG4ub3JpZ2luPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsbik6aX0sWG8ucmViaW5kKG4sdSwib24iKX07dmFyIFNhPU1hdGguUEksa2E9MipTYSxFYT1TYS8yLEFhPTFlLTYsQ2E9QWEqQWEsTmE9U2EvMTgwLExhPTE4MC9TYSxUYT1NYXRoLlNRUlQyLHFhPTIsemE9NDtYby5pbnRlcnBvbGF0ZVpvb209ZnVuY3Rpb24obix0KXtmdW5jdGlvbiBlKG4pe3ZhciB0PW4qeTtpZihtKXt2YXIgZT1CKHYpLG89aS8ocWEqaCkqKGUqVyhUYSp0K3YpLSQodikpO3JldHVybltyK28qcyx1K28qbCxpKmUvQihUYSp0K3YpXX1yZXR1cm5bcituKnMsdStuKmwsaSpNYXRoLmV4cChUYSp0KV19dmFyIHI9blswXSx1PW5bMV0saT1uWzJdLG89dFswXSxhPXRbMV0sYz10WzJdLHM9by1yLGw9YS11LGY9cypzK2wqbCxoPU1hdGguc3FydChmKSxnPShjKmMtaSppK3phKmYpLygyKmkqcWEqaCkscD0oYypjLWkqaS16YSpmKS8oMipjKnFhKmgpLHY9TWF0aC5sb2coTWF0aC5zcXJ0KGcqZysxKS1nKSxkPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCksbT1kLXYseT0obXx8TWF0aC5sb2coYy9pKSkvVGE7cmV0dXJuIGUuZHVyYXRpb249MWUzKnksZX0sWG8uYmVoYXZpb3Iuem9vbT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obil7bi5vbihBLHMpLm9uKFBhKyIuem9vbSIsZikub24oQyxoKS5vbigiZGJsY2xpY2suem9vbSIsZykub24oTCxsKX1mdW5jdGlvbiB0KG4pe3JldHVyblsoblswXS1TLngpL1MuaywoblsxXS1TLnkpL1Mua119ZnVuY3Rpb24gZShuKXtyZXR1cm5bblswXSpTLmsrUy54LG5bMV0qUy5rK1MueV19ZnVuY3Rpb24gcihuKXtTLms9TWF0aC5tYXgoRVswXSxNYXRoLm1pbihFWzFdLG4pKX1mdW5jdGlvbiB1KG4sdCl7dD1lKHQpLFMueCs9blswXS10WzBdLFMueSs9blsxXS10WzFdfWZ1bmN0aW9uIGkoKXtfJiZfLmRvbWFpbihNLnJhbmdlKCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybihuLVMueCkvUy5rfSkubWFwKE0uaW52ZXJ0KSksdyYmdy5kb21haW4oYi5yYW5nZSgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4obi1TLnkpL1Mua30pLm1hcChiLmludmVydCkpfWZ1bmN0aW9uIG8obil7bih7dHlwZToiem9vbXN0YXJ0In0pfWZ1bmN0aW9uIGEobil7aSgpLG4oe3R5cGU6Inpvb20iLHNjYWxlOlMuayx0cmFuc2xhdGU6W1MueCxTLnldfSl9ZnVuY3Rpb24gYyhuKXtuKHt0eXBlOiJ6b29tZW5kIn0pfWZ1bmN0aW9uIHMoKXtmdW5jdGlvbiBuKCl7bD0xLHUoWG8ubW91c2UociksZyksYShpKX1mdW5jdGlvbiBlKCl7Zi5vbihDLEdvPT09cj9oOm51bGwpLm9uKE4sbnVsbCkscChsJiZYby5ldmVudC50YXJnZXQ9PT1zKSxjKGkpfXZhciByPXRoaXMsaT1ULm9mKHIsYXJndW1lbnRzKSxzPVhvLmV2ZW50LnRhcmdldCxsPTAsZj1Yby5zZWxlY3QoR28pLm9uKEMsbikub24oTixlKSxnPXQoWG8ubW91c2UocikpLHA9TygpO1UuY2FsbChyKSxvKGkpfWZ1bmN0aW9uIGwoKXtmdW5jdGlvbiBuKCl7dmFyIG49WG8udG91Y2hlcyhnKTtyZXR1cm4gaD1TLmssbi5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uaWRlbnRpZmllciBpbiB2JiYodltuLmlkZW50aWZpZXJdPXQobikpfSksbn1mdW5jdGlvbiBlKCl7Zm9yKHZhciB0PVhvLmV2ZW50LmNoYW5nZWRUb3VjaGVzLGU9MCxpPXQubGVuZ3RoO2k+ZTsrK2Updlt0W2VdLmlkZW50aWZpZXJdPW51bGw7dmFyIG89bigpLGM9RGF0ZS5ub3coKTtpZigxPT09by5sZW5ndGgpe2lmKDUwMD5jLXgpe3ZhciBzPW9bMF0sbD12W3MuaWRlbnRpZmllcl07cigyKlMuayksdShzLGwpLGQoKSxhKHApfXg9Y31lbHNlIGlmKG8ubGVuZ3RoPjEpe3ZhciBzPW9bMF0sZj1vWzFdLGg9c1swXS1mWzBdLGc9c1sxXS1mWzFdO209aCpoK2cqZ319ZnVuY3Rpb24gaSgpe2Zvcih2YXIgbix0LGUsaSxvPVhvLnRvdWNoZXMoZyksYz0wLHM9by5sZW5ndGg7cz5jOysrYyxpPW51bGwpaWYoZT1vW2NdLGk9dltlLmlkZW50aWZpZXJdKXtpZih0KWJyZWFrO249ZSx0PWl9aWYoaSl7dmFyIGw9KGw9ZVswXS1uWzBdKSpsKyhsPWVbMV0tblsxXSkqbCxmPW0mJk1hdGguc3FydChsL20pO249WyhuWzBdK2VbMF0pLzIsKG5bMV0rZVsxXSkvMl0sdD1bKHRbMF0raVswXSkvMiwodFsxXStpWzFdKS8yXSxyKGYqaCl9eD1udWxsLHUobix0KSxhKHApfWZ1bmN0aW9uIGYoKXtpZihYby5ldmVudC50b3VjaGVzLmxlbmd0aCl7Zm9yKHZhciB0PVhvLmV2ZW50LmNoYW5nZWRUb3VjaGVzLGU9MCxyPXQubGVuZ3RoO3I+ZTsrK2UpZGVsZXRlIHZbdFtlXS5pZGVudGlmaWVyXTtmb3IodmFyIHUgaW4gdilyZXR1cm4gdm9pZCBuKCl9Yi5vbihNLG51bGwpLm9uKF8sbnVsbCksdy5vbihBLHMpLm9uKEwsbCksaygpLGMocCl9dmFyIGgsZz10aGlzLHA9VC5vZihnLGFyZ3VtZW50cyksdj17fSxtPTAseT1Yby5ldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyLE09InRvdWNobW92ZS56b29tLSIreSxfPSJ0b3VjaGVuZC56b29tLSIreSxiPVhvLnNlbGVjdChHbykub24oTSxpKS5vbihfLGYpLHc9WG8uc2VsZWN0KGcpLm9uKEEsbnVsbCkub24oTCxlKSxrPU8oKTtVLmNhbGwoZyksZSgpLG8ocCl9ZnVuY3Rpb24gZigpe3ZhciBuPVQub2YodGhpcyxhcmd1bWVudHMpO20/Y2xlYXJUaW1lb3V0KG0pOihVLmNhbGwodGhpcyksbyhuKSksbT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bT1udWxsLGMobil9LDUwKSxkKCk7dmFyIGU9dnx8WG8ubW91c2UodGhpcyk7cHx8KHA9dChlKSkscihNYXRoLnBvdygyLC4wMDIqUmEoKSkqUy5rKSx1KGUscCksYShuKX1mdW5jdGlvbiBoKCl7cD1udWxsfWZ1bmN0aW9uIGcoKXt2YXIgbj1ULm9mKHRoaXMsYXJndW1lbnRzKSxlPVhvLm1vdXNlKHRoaXMpLGk9dChlKSxzPU1hdGgubG9nKFMuaykvTWF0aC5MTjI7byhuKSxyKE1hdGgucG93KDIsWG8uZXZlbnQuc2hpZnRLZXk/TWF0aC5jZWlsKHMpLTE6TWF0aC5mbG9vcihzKSsxKSksdShlLGkpLGEobiksYyhuKX12YXIgcCx2LG0seCxNLF8sYix3LFM9e3g6MCx5OjAsazoxfSxrPVs5NjAsNTAwXSxFPURhLEE9Im1vdXNlZG93bi56b29tIixDPSJtb3VzZW1vdmUuem9vbSIsTj0ibW91c2V1cC56b29tIixMPSJ0b3VjaHN0YXJ0Lnpvb20iLFQ9eShuLCJ6b29tc3RhcnQiLCJ6b29tIiwiem9vbWVuZCIpO3JldHVybiBuLmV2ZW50PWZ1bmN0aW9uKG4pe24uZWFjaChmdW5jdGlvbigpe3ZhciBuPVQub2YodGhpcyxhcmd1bWVudHMpLHQ9Uztrcz9Yby5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmVhY2goInN0YXJ0Lnpvb20iLGZ1bmN0aW9uKCl7Uz10aGlzLl9fY2hhcnRfX3x8e3g6MCx5OjAsazoxfSxvKG4pfSkudHdlZW4oInpvb206em9vbSIsZnVuY3Rpb24oKXt2YXIgZT1rWzBdLHI9a1sxXSx1PWUvMixpPXIvMixvPVhvLmludGVycG9sYXRlWm9vbShbKHUtUy54KS9TLmssKGktUy55KS9TLmssZS9TLmtdLFsodS10LngpL3QuaywoaS10LnkpL3QuayxlL3Qua10pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1vKHQpLGM9ZS9yWzJdO3RoaXMuX19jaGFydF9fPVM9e3g6dS1yWzBdKmMseTppLXJbMV0qYyxrOmN9LGEobil9fSkuZWFjaCgiZW5kLnpvb20iLGZ1bmN0aW9uKCl7YyhuKX0pOih0aGlzLl9fY2hhcnRfXz1TLG8obiksYShuKSxjKG4pKX0pfSxuLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUz17eDordFswXSx5Oit0WzFdLGs6Uy5rfSxpKCksbik6W1MueCxTLnldfSxuLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhTPXt4OlMueCx5OlMueSxrOit0fSxpKCksbik6Uy5rfSxuLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhFPW51bGw9PXQ/RGE6Wyt0WzBdLCt0WzFdXSxuKTpFfSxuLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj10JiZbK3RbMF0sK3RbMV1dLG4pOnZ9LG4uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaz10JiZbK3RbMF0sK3RbMV1dLG4pOmt9LG4ueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz10LE09dC5jb3B5KCksUz17eDowLHk6MCxrOjF9LG4pOl99LG4ueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10LGI9dC5jb3B5KCksUz17eDowLHk6MCxrOjF9LG4pOnd9LFhvLnJlYmluZChuLFQsIm9uIil9O3ZhciBSYSxEYT1bMCwxLzBdLFBhPSJvbndoZWVsImluIFdvPyhSYT1mdW5jdGlvbigpe3JldHVybi1Yby5ldmVudC5kZWx0YVkqKFhvLmV2ZW50LmRlbHRhTW9kZT8xMjA6MSl9LCJ3aGVlbCIpOiJvbm1vdXNld2hlZWwiaW4gV28/KFJhPWZ1bmN0aW9uKCl7cmV0dXJuIFhvLmV2ZW50LndoZWVsRGVsdGF9LCJtb3VzZXdoZWVsIik6KFJhPWZ1bmN0aW9uKCl7cmV0dXJuLVhvLmV2ZW50LmRldGFpbH0sIk1vek1vdXNlUGl4ZWxTY3JvbGwiKTtHLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpKyIifSxYby5oc2w9ZnVuY3Rpb24obix0LGUpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9uIGluc3RhbmNlb2YgUT9LKG4uaCxuLnMsbi5sKTpkdCgiIituLG10LEspOksoK24sK3QsK2UpfTt2YXIgVWE9US5wcm90b3R5cGU9bmV3IEc7VWEuYnJpZ2h0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIG49TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD9uOjEpLEsodGhpcy5oLHRoaXMucyx0aGlzLmwvbil9LFVhLmRhcmtlcj1mdW5jdGlvbihuKXtyZXR1cm4gbj1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP246MSksSyh0aGlzLmgsdGhpcy5zLG4qdGhpcy5sKX0sVWEucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIG50KHRoaXMuaCx0aGlzLnMsdGhpcy5sKX0sWG8uaGNsPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/biBpbnN0YW5jZW9mIGV0P3R0KG4uaCxuLmMsbi5sKTpuIGluc3RhbmNlb2YgaXQ/YXQobi5sLG4uYSxuLmIpOmF0KChuPXl0KChuPVhvLnJnYihuKSkucixuLmcsbi5iKSkubCxuLmEsbi5iKTp0dCgrbiwrdCwrZSl9O3ZhciBqYT1ldC5wcm90b3R5cGU9bmV3IEc7amEuYnJpZ2h0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIHR0KHRoaXMuaCx0aGlzLmMsTWF0aC5taW4oMTAwLHRoaXMubCtIYSooYXJndW1lbnRzLmxlbmd0aD9uOjEpKSl9LGphLmRhcmtlcj1mdW5jdGlvbihuKXtyZXR1cm4gdHQodGhpcy5oLHRoaXMuYyxNYXRoLm1heCgwLHRoaXMubC1IYSooYXJndW1lbnRzLmxlbmd0aD9uOjEpKSl9LGphLnJnYj1mdW5jdGlvbigpe3JldHVybiBydCh0aGlzLmgsdGhpcy5jLHRoaXMubCkucmdiKCl9LFhvLmxhYj1mdW5jdGlvbihuLHQsZSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP24gaW5zdGFuY2VvZiBpdD91dChuLmwsbi5hLG4uYik6biBpbnN0YW5jZW9mIGV0P3J0KG4ubCxuLmMsbi5oKTp5dCgobj1Yby5yZ2IobikpLnIsbi5nLG4uYik6dXQoK24sK3QsK2UpfTt2YXIgSGE9MTgsRmE9Ljk1MDQ3LE9hPTEsWWE9MS4wODg4MyxJYT1pdC5wcm90b3R5cGU9bmV3IEc7SWEuYnJpZ2h0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIHV0KE1hdGgubWluKDEwMCx0aGlzLmwrSGEqKGFyZ3VtZW50cy5sZW5ndGg/bjoxKSksdGhpcy5hLHRoaXMuYil9LElhLmRhcmtlcj1mdW5jdGlvbihuKXtyZXR1cm4gdXQoTWF0aC5tYXgoMCx0aGlzLmwtSGEqKGFyZ3VtZW50cy5sZW5ndGg/bjoxKSksdGhpcy5hLHRoaXMuYil9LElhLnJnYj1mdW5jdGlvbigpe3JldHVybiBvdCh0aGlzLmwsdGhpcy5hLHRoaXMuYil9LFhvLnJnYj1mdW5jdGlvbihuLHQsZSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP24gaW5zdGFuY2VvZiBwdD9ndChuLnIsbi5nLG4uYik6ZHQoIiIrbixndCxudCk6Z3Qofn5uLH5+dCx+fmUpfTt2YXIgWmE9cHQucHJvdG90eXBlPW5ldyBHO1phLmJyaWdodGVyPWZ1bmN0aW9uKG4pe249TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD9uOjEpO3ZhciB0PXRoaXMucixlPXRoaXMuZyxyPXRoaXMuYix1PTMwO3JldHVybiB0fHxlfHxyPyh0JiZ1PnQmJih0PXUpLGUmJnU+ZSYmKGU9dSksciYmdT5yJiYocj11KSxndChNYXRoLm1pbigyNTUsfn4odC9uKSksTWF0aC5taW4oMjU1LH5+KGUvbikpLE1hdGgubWluKDI1NSx+fihyL24pKSkpOmd0KHUsdSx1KX0sWmEuZGFya2VyPWZ1bmN0aW9uKG4pe3JldHVybiBuPU1hdGgucG93KC43LGFyZ3VtZW50cy5sZW5ndGg/bjoxKSxndCh+fihuKnRoaXMuciksfn4obip0aGlzLmcpLH5+KG4qdGhpcy5iKSl9LFphLmhzbD1mdW5jdGlvbigpe3JldHVybiBtdCh0aGlzLnIsdGhpcy5nLHRoaXMuYil9LFphLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIiMiK3Z0KHRoaXMucikrdnQodGhpcy5nKSt2dCh0aGlzLmIpfTt2YXIgVmE9WG8ubWFwKHthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH0pO1ZhLmZvckVhY2goZnVuY3Rpb24obix0KXtWYS5zZXQobixmdCh0KSl9KSxYby5mdW5jdG9yPV90LFhvLnhocj13dChidCksWG8uZHN2PWZ1bmN0aW9uKG4sdCl7ZnVuY3Rpb24gZShuLGUsaSl7YXJndW1lbnRzLmxlbmd0aDwzJiYoaT1lLGU9bnVsbCk7dmFyIG89U3Qobix0LG51bGw9PWU/cjp1KGUpLGkpO3JldHVybiBvLnJvdz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9vLnJlc3BvbnNlKG51bGw9PShlPW4pP3I6dShuKSk6ZX0sb31mdW5jdGlvbiByKG4pe3JldHVybiBlLnBhcnNlKG4ucmVzcG9uc2VUZXh0KX1mdW5jdGlvbiB1KG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5wYXJzZSh0LnJlc3BvbnNlVGV4dCxuKX19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5tYXAobykuam9pbihuKX1mdW5jdGlvbiBvKG4pe3JldHVybiBhLnRlc3Qobik/JyInK24ucmVwbGFjZSgvXCIvZywnIiInKSsnIic6bn12YXIgYT1uZXcgUmVnRXhwKCdbIicrbisiXG5dIiksYz1uLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGUucGFyc2U9ZnVuY3Rpb24obix0KXt2YXIgcjtyZXR1cm4gZS5wYXJzZVJvd3MobixmdW5jdGlvbihuLGUpe2lmKHIpcmV0dXJuIHIobixlLTEpO3ZhciB1PW5ldyBGdW5jdGlvbigiZCIsInJldHVybiB7IituLm1hcChmdW5jdGlvbihuLHQpe3JldHVybiBKU09OLnN0cmluZ2lmeShuKSsiOiBkWyIrdCsiXSJ9KS5qb2luKCIsIikrIn0iKTtyPXQ/ZnVuY3Rpb24obixlKXtyZXR1cm4gdCh1KG4pLGUpfTp1fSl9LGUucGFyc2VSb3dzPWZ1bmN0aW9uKG4sdCl7ZnVuY3Rpb24gZSgpe2lmKGw+PXMpcmV0dXJuIG87aWYodSlyZXR1cm4gdT0hMSxpO3ZhciB0PWw7aWYoMzQ9PT1uLmNoYXJDb2RlQXQodCkpe2Zvcih2YXIgZT10O2UrKzxzOylpZigzND09PW4uY2hhckNvZGVBdChlKSl7aWYoMzQhPT1uLmNoYXJDb2RlQXQoZSsxKSlicmVhazsrK2V9bD1lKzI7dmFyIHI9bi5jaGFyQ29kZUF0KGUrMSk7cmV0dXJuIDEzPT09cj8odT0hMCwxMD09PW4uY2hhckNvZGVBdChlKzIpJiYrK2wpOjEwPT09ciYmKHU9ITApLG4uc3Vic3RyaW5nKHQrMSxlKS5yZXBsYWNlKC8iIi9nLCciJyl9Zm9yKDtzPmw7KXt2YXIgcj1uLmNoYXJDb2RlQXQobCsrKSxhPTE7aWYoMTA9PT1yKXU9ITA7ZWxzZSBpZigxMz09PXIpdT0hMCwxMD09PW4uY2hhckNvZGVBdChsKSYmKCsrbCwrK2EpO2Vsc2UgaWYociE9PWMpY29udGludWU7cmV0dXJuIG4uc3Vic3RyaW5nKHQsbC1hKX1yZXR1cm4gbi5zdWJzdHJpbmcodCl9Zm9yKHZhciByLHUsaT17fSxvPXt9LGE9W10scz1uLmxlbmd0aCxsPTAsZj0wOyhyPWUoKSkhPT1vOyl7Zm9yKHZhciBoPVtdO3IhPT1pJiZyIT09bzspaC5wdXNoKHIpLHI9ZSgpOyghdHx8KGg9dChoLGYrKykpKSYmYS5wdXNoKGgpfXJldHVybiBhfSxlLmZvcm1hdD1mdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHRbMF0pKXJldHVybiBlLmZvcm1hdFJvd3ModCk7dmFyIHI9bmV3IGwsdT1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKG4pe2Zvcih2YXIgdCBpbiBuKXIuaGFzKHQpfHx1LnB1c2goci5hZGQodCkpfSksW3UubWFwKG8pLmpvaW4obildLmNvbmNhdCh0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG8odFtuXSl9KS5qb2luKG4pfSkpLmpvaW4oIlxuIil9LGUuZm9ybWF0Um93cz1mdW5jdGlvbihuKXtyZXR1cm4gbi5tYXAoaSkuam9pbigiXG4iKX0sZX0sWG8uY3N2PVhvLmRzdigiLCIsInRleHQvY3N2IiksWG8udHN2PVhvLmRzdigiCSIsInRleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXMiKTt2YXIgWGEsJGEsQmEsV2EsSmEsR2E9R29baChHbywicmVxdWVzdEFuaW1hdGlvbkZyYW1lIildfHxmdW5jdGlvbihuKXtzZXRUaW1lb3V0KG4sMTcpfTtYby50aW1lcj1mdW5jdGlvbihuLHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDsyPnImJih0PTApLDM+ciYmKGU9RGF0ZS5ub3coKSk7dmFyIHU9ZSt0LGk9e2M6bix0OnUsZjohMSxuOm51bGx9OyRhPyRhLm49aTpYYT1pLCRhPWksQmF8fChXYT1jbGVhclRpbWVvdXQoV2EpLEJhPTEsR2EoRXQpKX0sWG8udGltZXIuZmx1c2g9ZnVuY3Rpb24oKXtBdCgpLEN0KCl9LFhvLnJvdW5kPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ/TWF0aC5yb3VuZChuKih0PU1hdGgucG93KDEwLHQpKSkvdDpNYXRoLnJvdW5kKG4pfTt2YXIgS2E9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCJceGI1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl0ubWFwKEx0KTtYby5mb3JtYXRQcmVmaXg9ZnVuY3Rpb24obix0KXt2YXIgZT0wO3JldHVybiBuJiYoMD5uJiYobio9LTEpLHQmJihuPVhvLnJvdW5kKG4sTnQobix0KSkpLGU9MStNYXRoLmZsb29yKDFlLTEyK01hdGgubG9nKG4pL01hdGguTE4xMCksZT1NYXRoLm1heCgtMjQsTWF0aC5taW4oMjQsMypNYXRoLmZsb29yKCgwPj1lP2UrMTplLTEpLzMpKSkpLEthWzgrZS8zXX07dmFyIFFhPS8oPzooW157XSk/KFs8Pj1eXSkpPyhbK1wtIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLi0/XGQrKT8oW2EteiVdKT8vaSxuYz1Yby5tYXAoe2I6ZnVuY3Rpb24obil7cmV0dXJuIG4udG9TdHJpbmcoMil9LGM6ZnVuY3Rpb24obil7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobil9LG86ZnVuY3Rpb24obil7cmV0dXJuIG4udG9TdHJpbmcoOCl9LHg6ZnVuY3Rpb24obil7cmV0dXJuIG4udG9TdHJpbmcoMTYpfSxYOmZ1bmN0aW9uKG4pe3JldHVybiBuLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSxnOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4udG9QcmVjaXNpb24odCl9LGU6ZnVuY3Rpb24obix0KXtyZXR1cm4gbi50b0V4cG9uZW50aWFsKHQpfSxmOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4udG9GaXhlZCh0KX0scjpmdW5jdGlvbihuLHQpe3JldHVybihuPVhvLnJvdW5kKG4sTnQobix0KSkpLnRvRml4ZWQoTWF0aC5tYXgoMCxNYXRoLm1pbigyMCxOdChuKigxKzFlLTE1KSx0KSkpKX19KSx0Yz1Yby50aW1lPXt9LGVjPURhdGU7enQucHJvdG90eXBlPXtnZXREYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENEYXRlKCl9LGdldERheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDRGF5KCl9LGdldEZ1bGxZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENGdWxsWWVhcigpfSxnZXRIb3VyczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDSG91cnMoKX0sZ2V0TWlsbGlzZWNvbmRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENNaWxsaXNlY29uZHMoKX0sZ2V0TWludXRlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDTWludXRlcygpfSxnZXRNb250aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDTW9udGgoKX0sZ2V0U2Vjb25kczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDU2Vjb25kcygpfSxnZXRUaW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRUaW1lKCl9LGdldFRpbWV6b25lT2Zmc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDB9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLnZhbHVlT2YoKX0sc2V0RGF0ZTpmdW5jdGlvbigpe3JjLnNldFVUQ0RhdGUuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldERheTpmdW5jdGlvbigpe3JjLnNldFVUQ0RheS5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0RnVsbFllYXI6ZnVuY3Rpb24oKXtyYy5zZXRVVENGdWxsWWVhci5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0SG91cnM6ZnVuY3Rpb24oKXtyYy5zZXRVVENIb3Vycy5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0TWlsbGlzZWNvbmRzOmZ1bmN0aW9uKCl7cmMuc2V0VVRDTWlsbGlzZWNvbmRzLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRNaW51dGVzOmZ1bmN0aW9uKCl7cmMuc2V0VVRDTWludXRlcy5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0TW9udGg6ZnVuY3Rpb24oKXtyYy5zZXRVVENNb250aC5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0U2Vjb25kczpmdW5jdGlvbigpe3JjLnNldFVUQ1NlY29uZHMuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldFRpbWU6ZnVuY3Rpb24oKXtyYy5zZXRUaW1lLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfX07dmFyIHJjPURhdGUucHJvdG90eXBlO3RjLnllYXI9UnQoZnVuY3Rpb24obil7cmV0dXJuIG49dGMuZGF5KG4pLG4uc2V0TW9udGgoMCwxKSxufSxmdW5jdGlvbihuLHQpe24uc2V0RnVsbFllYXIobi5nZXRGdWxsWWVhcigpK3QpfSxmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRGdWxsWWVhcigpfSksdGMueWVhcnM9dGMueWVhci5yYW5nZSx0Yy55ZWFycy51dGM9dGMueWVhci51dGMucmFuZ2UsdGMuZGF5PVJ0KGZ1bmN0aW9uKG4pe3ZhciB0PW5ldyBlYygyZTMsMCk7cmV0dXJuIHQuc2V0RnVsbFllYXIobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSxuLmdldERhdGUoKSksdH0sZnVuY3Rpb24obix0KXtuLnNldERhdGUobi5nZXREYXRlKCkrdCl9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldERhdGUoKS0xfSksdGMuZGF5cz10Yy5kYXkucmFuZ2UsdGMuZGF5cy51dGM9dGMuZGF5LnV0Yy5yYW5nZSx0Yy5kYXlPZlllYXI9ZnVuY3Rpb24obil7dmFyIHQ9dGMueWVhcihuKTtyZXR1cm4gTWF0aC5mbG9vcigobi10LTZlNCoobi5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkpLzg2NGU1KX0sWyJzdW5kYXkiLCJtb25kYXkiLCJ0dWVzZGF5Iiwid2VkbmVzZGF5IiwidGh1cnNkYXkiLCJmcmlkYXkiLCJzYXR1cmRheSJdLmZvckVhY2goZnVuY3Rpb24obix0KXt0PTctdDt2YXIgZT10Y1tuXT1SdChmdW5jdGlvbihuKXtyZXR1cm4obj10Yy5kYXkobikpLnNldERhdGUobi5nZXREYXRlKCktKG4uZ2V0RGF5KCkrdCklNyksbn0sZnVuY3Rpb24obix0KXtuLnNldERhdGUobi5nZXREYXRlKCkrNypNYXRoLmZsb29yKHQpKX0sZnVuY3Rpb24obil7dmFyIGU9dGMueWVhcihuKS5nZXREYXkoKTtyZXR1cm4gTWF0aC5mbG9vcigodGMuZGF5T2ZZZWFyKG4pKyhlK3QpJTcpLzcpLShlIT09dCl9KTt0Y1tuKyJzIl09ZS5yYW5nZSx0Y1tuKyJzIl0udXRjPWUudXRjLnJhbmdlLHRjW24rIk9mWWVhciJdPWZ1bmN0aW9uKG4pe3ZhciBlPXRjLnllYXIobikuZ2V0RGF5KCk7cmV0dXJuIE1hdGguZmxvb3IoKHRjLmRheU9mWWVhcihuKSsoZSt0KSU3KS83KX19KSx0Yy53ZWVrPXRjLnN1bmRheSx0Yy53ZWVrcz10Yy5zdW5kYXkucmFuZ2UsdGMud2Vla3MudXRjPXRjLnN1bmRheS51dGMucmFuZ2UsdGMud2Vla09mWWVhcj10Yy5zdW5kYXlPZlllYXI7dmFyIHVjPXsiLSI6IiIsXzoiICIsMDoiMCJ9LGljPS9eXHMqXGQrLyxvYz0vXiUvO1hvLmxvY2FsZT1mdW5jdGlvbihuKXtyZXR1cm57bnVtYmVyRm9ybWF0OlR0KG4pLHRpbWVGb3JtYXQ6UHQobil9fTt2YXIgYWM9WG8ubG9jYWxlKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxkYXRlVGltZToiJWEgJWIgJWUgJVggJVkiLGRhdGU6IiVtLyVkLyVZIix0aW1lOiIlSDolTTolUyIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTtYby5mb3JtYXQ9YWMubnVtYmVyRm9ybWF0LFhvLmdlbz17fSxyZS5wcm90b3R5cGU9e3M6MCx0OjAsYWRkOmZ1bmN0aW9uKG4pe3VlKG4sdGhpcy50LGNjKSx1ZShjYy5zLHRoaXMucyx0aGlzKSx0aGlzLnM/dGhpcy50Kz1jYy50OnRoaXMucz1jYy50fSxyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgY2M9bmV3IHJlO1hvLmdlby5zdHJlYW09ZnVuY3Rpb24obix0KXtuJiZzYy5oYXNPd25Qcm9wZXJ0eShuLnR5cGUpP3NjW24udHlwZV0obix0KTppZShuLHQpfTt2YXIgc2M9e0ZlYXR1cmU6ZnVuY3Rpb24obix0KXtpZShuLmdlb21ldHJ5LHQpfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbihuLHQpe2Zvcih2YXIgZT1uLmZlYXR1cmVzLHI9LTEsdT1lLmxlbmd0aDsrK3I8dTspaWUoZVtyXS5nZW9tZXRyeSx0KX19LGxjPXtTcGhlcmU6ZnVuY3Rpb24obix0KXt0LnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbihuLHQpe249bi5jb29yZGluYXRlcyx0LnBvaW50KG5bMF0sblsxXSxuWzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbihuLHQpe2Zvcih2YXIgZT1uLmNvb3JkaW5hdGVzLHI9LTEsdT1lLmxlbmd0aDsrK3I8dTspbj1lW3JdLHQucG9pbnQoblswXSxuWzFdLG5bMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKG4sdCl7b2Uobi5jb29yZGluYXRlcyx0LDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24obix0KXtmb3IodmFyIGU9bi5jb29yZGluYXRlcyxyPS0xLHU9ZS5sZW5ndGg7KytyPHU7KW9lKGVbcl0sdCwwKX0sUG9seWdvbjpmdW5jdGlvbihuLHQpe2FlKG4uY29vcmRpbmF0ZXMsdCl9LE11bHRpUG9seWdvbjpmdW5jdGlvbihuLHQpe2Zvcih2YXIgZT1uLmNvb3JkaW5hdGVzLHI9LTEsdT1lLmxlbmd0aDsrK3I8dTspYWUoZVtyXSx0KX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKG4sdCl7Zm9yKHZhciBlPW4uZ2VvbWV0cmllcyxyPS0xLHU9ZS5sZW5ndGg7KytyPHU7KWllKGVbcl0sdCl9fTtYby5nZW8uYXJlYT1mdW5jdGlvbihuKXtyZXR1cm4gZmM9MCxYby5nZW8uc3RyZWFtKG4sZ2MpLGZjfTt2YXIgZmMsaGM9bmV3IHJlLGdjPXtzcGhlcmU6ZnVuY3Rpb24oKXtmYys9NCpTYX0scG9pbnQ6ZyxsaW5lU3RhcnQ6ZyxsaW5lRW5kOmcscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7aGMucmVzZXQoKSxnYy5saW5lU3RhcnQ9Y2V9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgbj0yKmhjO2ZjKz0wPm4/NCpTYStuOm4sZ2MubGluZVN0YXJ0PWdjLmxpbmVFbmQ9Z2MucG9pbnQ9Z319O1hvLmdlby5ib3VuZHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4sdCl7eC5wdXNoKE09W2w9bixoPW5dKSxmPnQmJihmPXQpLHQ+ZyYmKGc9dCl9ZnVuY3Rpb24gdCh0LGUpe3ZhciByPXNlKFt0Kk5hLGUqTmFdKTtpZihtKXt2YXIgdT1mZShtLHIpLGk9W3VbMV0sLXVbMF0sMF0sbz1mZShpLHUpO3BlKG8pLG89dmUobyk7dmFyIGM9dC1wLHM9Yz4wPzE6LTEsdj1vWzBdKkxhKnMsZD1vYShjKT4xODA7aWYoZF4odj5zKnAmJnMqdD52KSl7dmFyIHk9b1sxXSpMYTt5PmcmJihnPXkpfWVsc2UgaWYodj0odiszNjApJTM2MC0xODAsZF4odj5zKnAmJnMqdD52KSl7dmFyIHk9LW9bMV0qTGE7Zj55JiYoZj15KX1lbHNlIGY+ZSYmKGY9ZSksZT5nJiYoZz1lKTtkP3A+dD9hKGwsdCk+YShsLGgpJiYoaD10KTphKHQsaCk+YShsLGgpJiYobD10KTpoPj1sPyhsPnQmJihsPXQpLHQ+aCYmKGg9dCkpOnQ+cD9hKGwsdCk+YShsLGgpJiYoaD10KTphKHQsaCk+YShsLGgpJiYobD10KX1lbHNlIG4odCxlKTttPXIscD10fWZ1bmN0aW9uIGUoKXtfLnBvaW50PXR9ZnVuY3Rpb24gcigpe01bMF09bCxNWzFdPWgsXy5wb2ludD1uLG09bnVsbH1mdW5jdGlvbiB1KG4sZSl7aWYobSl7dmFyIHI9bi1wO3krPW9hKHIpPjE4MD9yKyhyPjA/MzYwOi0zNjApOnJ9ZWxzZSB2PW4sZD1lO2djLnBvaW50KG4sZSksdChuLGUpfWZ1bmN0aW9uIGkoKXtnYy5saW5lU3RhcnQoKX1mdW5jdGlvbiBvKCl7dSh2LGQpLGdjLmxpbmVFbmQoKSxvYSh5KT5BYSYmKGw9LShoPTE4MCkpLE1bMF09bCxNWzFdPWgsbT1udWxsfWZ1bmN0aW9uIGEobix0KXtyZXR1cm4odC09bik8MD90KzM2MDp0fWZ1bmN0aW9uIGMobix0KXtyZXR1cm4gblswXS10WzBdfWZ1bmN0aW9uIHMobix0KXtyZXR1cm4gdFswXTw9dFsxXT90WzBdPD1uJiZuPD10WzFdOm48dFswXXx8dFsxXTxufXZhciBsLGYsaCxnLHAsdixkLG0seSx4LE0sXz17cG9pbnQ6bixsaW5lU3RhcnQ6ZSxsaW5lRW5kOnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Xy5wb2ludD11LF8ubGluZVN0YXJ0PWksXy5saW5lRW5kPW8seT0wLGdjLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Z2MucG9seWdvbkVuZCgpLF8ucG9pbnQ9bixfLmxpbmVTdGFydD1lLF8ubGluZUVuZD1yLDA+aGM/KGw9LShoPTE4MCksZj0tKGc9OTApKTp5PkFhP2c9OTA6LUFhPnkmJihmPS05MCksTVswXT1sLE1bMV09aH19O3JldHVybiBmdW5jdGlvbihuKXtnPWg9LShsPWY9MS8wKSx4PVtdLFhvLmdlby5zdHJlYW0obixfKTt2YXIgdD14Lmxlbmd0aDtpZih0KXt4LnNvcnQoYyk7Zm9yKHZhciBlLHI9MSx1PXhbMF0saT1bdV07dD5yOysrcillPXhbcl0scyhlWzBdLHUpfHxzKGVbMV0sdSk/KGEodVswXSxlWzFdKT5hKHVbMF0sdVsxXSkmJih1WzFdPWVbMV0pLGEoZVswXSx1WzFdKT5hKHVbMF0sdVsxXSkmJih1WzBdPWVbMF0pKTppLnB1c2godT1lKTtmb3IodmFyIG8sZSxwPS0xLzAsdD1pLmxlbmd0aC0xLHI9MCx1PWlbdF07dD49cjt1PWUsKytyKWU9aVtyXSwobz1hKHVbMV0sZVswXSkpPnAmJihwPW8sbD1lWzBdLGg9dVsxXSl9cmV0dXJuIHg9TT1udWxsLDEvMD09PWx8fDEvMD09PWY/W1swLzAsMC8wXSxbMC8wLDAvMF1dOltbbCxmXSxbaCxnXV19fSgpLFhvLmdlby5jZW50cm9pZD1mdW5jdGlvbihuKXtwYz12Yz1kYz1tYz15Yz14Yz1NYz1fYz1iYz13Yz1TYz0wLFhvLmdlby5zdHJlYW0obixrYyk7dmFyIHQ9YmMsZT13YyxyPVNjLHU9dCp0K2UqZStyKnI7cmV0dXJuIENhPnUmJih0PXhjLGU9TWMscj1fYyxBYT52YyYmKHQ9ZGMsZT1tYyxyPXljKSx1PXQqdCtlKmUrcipyLENhPnUpP1swLzAsMC8wXTpbTWF0aC5hdGFuMihlLHQpKkxhLFgoci9NYXRoLnNxcnQodSkpKkxhXX07dmFyIHBjLHZjLGRjLG1jLHljLHhjLE1jLF9jLGJjLHdjLFNjLGtjPXtzcGhlcmU6Zyxwb2ludDptZSxsaW5lU3RhcnQ6eGUsbGluZUVuZDpNZSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtrYy5saW5lU3RhcnQ9X2V9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtrYy5saW5lU3RhcnQ9eGV9fSxFYz1FZShiZSxUZSx6ZSxbLVNhLC1TYS8yXSksQWM9MWU5O1hvLmdlby5jbGlwRXh0ZW50PWZ1bmN0aW9uKCl7dmFyIG4sdCxlLHIsdSxpLG89e3N0cmVhbTpmdW5jdGlvbihuKXtyZXR1cm4gdSYmKHUudmFsaWQ9ITEpLHU9aShuKSx1LnZhbGlkPSEwLHV9LGV4dGVudDpmdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1QZShuPSthWzBdWzBdLHQ9K2FbMF1bMV0sZT0rYVsxXVswXSxyPSthWzFdWzFdKSx1JiYodS52YWxpZD0hMSx1PW51bGwpLG8pOltbbix0XSxbZSxyXV19fTtyZXR1cm4gby5leHRlbnQoW1swLDBdLFs5NjAsNTAwXV0pfSwoWG8uZ2VvLmNvbmljRXF1YWxBcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGplKEhlKX0pLnJhdz1IZSxYby5nZW8uYWxiZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIFhvLmdlby5jb25pY0VxdWFsQXJlYSgpLnJvdGF0ZShbOTYsMF0pLmNlbnRlcihbLS42LDM4LjddKS5wYXJhbGxlbHMoWzI5LjUsNDUuNV0pLnNjYWxlKDEwNzApfSxYby5nZW8uYWxiZXJzVXNhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuKXt2YXIgaT1uWzBdLG89blsxXTtyZXR1cm4gdD1udWxsLGUoaSxvKSx0fHwocihpLG8pLHQpfHx1KGksbyksdH12YXIgdCxlLHIsdSxpPVhvLmdlby5hbGJlcnMoKSxvPVhvLmdlby5jb25pY0VxdWFsQXJlYSgpLnJvdGF0ZShbMTU0LDBdKS5jZW50ZXIoWy0yLDU4LjVdKS5wYXJhbGxlbHMoWzU1LDY1XSksYT1Yby5nZW8uY29uaWNFcXVhbEFyZWEoKS5yb3RhdGUoWzE1NywwXSkuY2VudGVyKFstMywxOS45XSkucGFyYWxsZWxzKFs4LDE4XSksYz17cG9pbnQ6ZnVuY3Rpb24obixlKXt0PVtuLGVdfX07cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKG4pe3ZhciB0PWkuc2NhbGUoKSxlPWkudHJhbnNsYXRlKCkscj0oblswXS1lWzBdKS90LHU9KG5bMV0tZVsxXSkvdDtyZXR1cm4odT49LjEyJiYuMjM0PnUmJnI+PS0uNDI1JiYtLjIxND5yP286dT49LjE2NiYmLjIzND51JiZyPj0tLjIxNCYmLS4xMTU+cj9hOmkpLmludmVydChuKX0sbi5zdHJlYW09ZnVuY3Rpb24obil7dmFyIHQ9aS5zdHJlYW0obiksZT1vLnN0cmVhbShuKSxyPWEuc3RyZWFtKG4pO3JldHVybntwb2ludDpmdW5jdGlvbihuLHUpe3QucG9pbnQobix1KSxlLnBvaW50KG4sdSksci5wb2ludChuLHUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0LnNwaGVyZSgpLGUuc3BoZXJlKCksci5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxlLmxpbmVTdGFydCgpLHIubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxlLmxpbmVFbmQoKSxyLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dC5wb2x5Z29uU3RhcnQoKSxlLnBvbHlnb25TdGFydCgpLHIucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0LnBvbHlnb25FbmQoKSxlLnBvbHlnb25FbmQoKSxyLnBvbHlnb25FbmQoKX19fSxuLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaS5wcmVjaXNpb24odCksby5wcmVjaXNpb24odCksYS5wcmVjaXNpb24odCksbik6aS5wcmVjaXNpb24oKX0sbi5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaS5zY2FsZSh0KSxvLnNjYWxlKC4zNSp0KSxhLnNjYWxlKHQpLG4udHJhbnNsYXRlKGkudHJhbnNsYXRlKCkpKTppLnNjYWxlKCl9LG4udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBpLnRyYW5zbGF0ZSgpO3ZhciBzPWkuc2NhbGUoKSxsPSt0WzBdLGY9K3RbMV07cmV0dXJuIGU9aS50cmFuc2xhdGUodCkuY2xpcEV4dGVudChbW2wtLjQ1NSpzLGYtLjIzOCpzXSxbbCsuNDU1KnMsZisuMjM4KnNdXSkuc3RyZWFtKGMpLnBvaW50LHI9by50cmFuc2xhdGUoW2wtLjMwNypzLGYrLjIwMSpzXSkuY2xpcEV4dGVudChbW2wtLjQyNSpzK0FhLGYrLjEyKnMrQWFdLFtsLS4yMTQqcy1BYSxmKy4yMzQqcy1BYV1dKS5zdHJlYW0oYykucG9pbnQsdT1hLnRyYW5zbGF0ZShbbC0uMjA1KnMsZisuMjEyKnNdKS5jbGlwRXh0ZW50KFtbbC0uMjE0KnMrQWEsZisuMTY2KnMrQWFdLFtsLS4xMTUqcy1BYSxmKy4yMzQqcy1BYV1dKS5zdHJlYW0oYykucG9pbnQsbn0sbi5zY2FsZSgxMDcwKX07dmFyIENjLE5jLExjLFRjLHFjLHpjLFJjPXtwb2ludDpnLGxpbmVTdGFydDpnLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtOYz0wLFJjLmxpbmVTdGFydD1GZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe1JjLmxpbmVTdGFydD1SYy5saW5lRW5kPVJjLnBvaW50PWcsQ2MrPW9hKE5jLzIpfX0sRGM9e3BvaW50Ok9lLGxpbmVTdGFydDpnLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6Zyxwb2x5Z29uRW5kOmd9LFBjPXtwb2ludDpaZSxsaW5lU3RhcnQ6VmUsbGluZUVuZDpYZSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtQYy5saW5lU3RhcnQ9JGV9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtQYy5wb2ludD1aZSxQYy5saW5lU3RhcnQ9VmUsUGMubGluZUVuZD1YZX19O1hvLmdlby5wYXRoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gbiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBhJiZpLnBvaW50UmFkaXVzKCthLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksbyYmby52YWxpZHx8KG89dShpKSksWG8uZ2VvLnN0cmVhbShuLG8pKSxpLnJlc3VsdCgpfWZ1bmN0aW9uIHQoKXtyZXR1cm4gbz1udWxsLG59dmFyIGUscix1LGksbyxhPTQuNTtyZXR1cm4gbi5hcmVhPWZ1bmN0aW9uKG4pe3JldHVybiBDYz0wLFhvLmdlby5zdHJlYW0obix1KFJjKSksQ2N9LG4uY2VudHJvaWQ9ZnVuY3Rpb24obil7cmV0dXJuIGRjPW1jPXljPXhjPU1jPV9jPWJjPXdjPVNjPTAsWG8uZ2VvLnN0cmVhbShuLHUoUGMpKSxTYz9bYmMvU2Msd2MvU2NdOl9jP1t4Yy9fYyxNYy9fY106eWM/W2RjL3ljLG1jL3ljXTpbMC8wLDAvMF19LG4uYm91bmRzPWZ1bmN0aW9uKG4pe3JldHVybiBxYz16Yz0tKExjPVRjPTEvMCksWG8uZ2VvLnN0cmVhbShuLHUoRGMpKSxbW0xjLFRjXSxbcWMsemNdXX0sbi5wcm9qZWN0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PShlPW4pP24uc3RyZWFtfHxKZShuKTpidCx0KCkpOmV9LG4uY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT0ocj1uKT9uZXcgWWU6bmV3IEJlKG4pLCJmdW5jdGlvbiIhPXR5cGVvZiBhJiZpLnBvaW50UmFkaXVzKGEpLHQoKSk6cn0sbi5wb2ludFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OihpLnBvaW50UmFkaXVzKCt0KSwrdCksbik6YX0sbi5wcm9qZWN0aW9uKFhvLmdlby5hbGJlcnNVc2EoKSkuY29udGV4dChudWxsKX0sWG8uZ2VvLnRyYW5zZm9ybT1mdW5jdGlvbihuKXtyZXR1cm57c3RyZWFtOmZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBHZSh0KTtmb3IodmFyIHIgaW4gbillW3JdPW5bcl07cmV0dXJuIGV9fX0sR2UucHJvdG90eXBlPXtwb2ludDpmdW5jdGlvbihuLHQpe3RoaXMuc3RyZWFtLnBvaW50KG4sdCl9LHNwaGVyZTpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uRW5kKCl9fSxYby5nZW8ucHJvamVjdGlvbj1RZSxYby5nZW8ucHJvamVjdGlvbk11dGF0b3I9bnIsKFhvLmdlby5lcXVpcmVjdGFuZ3VsYXI9ZnVuY3Rpb24oKXtyZXR1cm4gUWUoZXIpfSkucmF3PWVyLmludmVydD1lcixYby5nZW8ucm90YXRpb249ZnVuY3Rpb24obil7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdD1uKHRbMF0qTmEsdFsxXSpOYSksdFswXSo9TGEsdFsxXSo9TGEsdH1yZXR1cm4gbj11cihuWzBdJTM2MCpOYSxuWzFdKk5hLG4ubGVuZ3RoPjI/blsyXSpOYTowKSx0LmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gdD1uLmludmVydCh0WzBdKk5hLHRbMV0qTmEpLHRbMF0qPUxhLHRbMV0qPUxhLHR9LHR9LHJyLmludmVydD1lcixYby5nZW8uY2lyY2xlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiByP3IuYXBwbHkodGhpcyxhcmd1bWVudHMpOnIsdD11cigtblswXSpOYSwtblsxXSpOYSwwKS5pbnZlcnQsdT1bXTtyZXR1cm4gZShudWxsLG51bGwsMSx7cG9pbnQ6ZnVuY3Rpb24obixlKXt1LnB1c2gobj10KG4sZSkpLG5bMF0qPUxhLG5bMV0qPUxhfX0pLHt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdV19fXZhciB0LGUscj1bMCwwXSx1PTY7cmV0dXJuIG4ub3JpZ2luPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbi5hbmdsZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1jcigodD0rcikqTmEsdSpOYSksbik6dH0sbi5wcmVjaXNpb249ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Y3IodCpOYSwodT0rcikqTmEpLG4pOnV9LG4uYW5nbGUoOTApfSxYby5nZW8uZGlzdGFuY2U9ZnVuY3Rpb24obix0KXt2YXIgZSxyPSh0WzBdLW5bMF0pKk5hLHU9blsxXSpOYSxpPXRbMV0qTmEsbz1NYXRoLnNpbihyKSxhPU1hdGguY29zKHIpLGM9TWF0aC5zaW4odSkscz1NYXRoLmNvcyh1KSxsPU1hdGguc2luKGkpLGY9TWF0aC5jb3MoaSk7cmV0dXJuIE1hdGguYXRhbjIoTWF0aC5zcXJ0KChlPWYqbykqZSsoZT1zKmwtYypmKmEpKmUpLGMqbCtzKmYqYSl9LFhvLmdlby5ncmF0aWN1bGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dCgpfX1mdW5jdGlvbiB0KCl7cmV0dXJuIFhvLnJhbmdlKE1hdGguY2VpbChpL2QpKmQsdSxkKS5tYXAoaCkuY29uY2F0KFhvLnJhbmdlKE1hdGguY2VpbChzL20pKm0sYyxtKS5tYXAoZykpLmNvbmNhdChYby5yYW5nZShNYXRoLmNlaWwoci9wKSpwLGUscCkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBvYShuJWQpPkFhfSkubWFwKGwpKS5jb25jYXQoWG8ucmFuZ2UoTWF0aC5jZWlsKGEvdikqdixvLHYpLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gb2EobiVtKT5BYX0pLm1hcChmKSl9dmFyIGUscix1LGksbyxhLGMscyxsLGYsaCxnLHA9MTAsdj1wLGQ9OTAsbT0zNjAseT0yLjU7cmV0dXJuIG4ubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm57dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6bn19KX0sbi5vdXRsaW5lPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOltoKGkpLmNvbmNhdChnKGMpLnNsaWNlKDEpLGgodSkucmV2ZXJzZSgpLnNsaWNlKDEpLGcocykucmV2ZXJzZSgpLnNsaWNlKDEpKV19fSxuLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uLm1ham9yRXh0ZW50KHQpLm1pbm9yRXh0ZW50KHQpOm4ubWlub3JFeHRlbnQoKX0sbi5tYWpvckV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdFswXVswXSx1PSt0WzFdWzBdLHM9K3RbMF1bMV0sYz0rdFsxXVsxXSxpPnUmJih0PWksaT11LHU9dCkscz5jJiYodD1zLHM9YyxjPXQpLG4ucHJlY2lzaW9uKHkpKTpbW2ksc10sW3UsY11dfSxuLm1pbm9yRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0WzBdWzBdLGU9K3RbMV1bMF0sYT0rdFswXVsxXSxvPSt0WzFdWzFdLHI+ZSYmKHQ9cixyPWUsZT10KSxhPm8mJih0PWEsYT1vLG89dCksbi5wcmVjaXNpb24oeSkpOltbcixhXSxbZSxvXV19LG4uc3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uLm1ham9yU3RlcCh0KS5taW5vclN0ZXAodCk6bi5taW5vclN0ZXAoKX0sbi5tYWpvclN0ZXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3RbMF0sbT0rdFsxXSxuKTpbZCxtXX0sbi5taW5vclN0ZXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9K3RbMF0sdj0rdFsxXSxuKTpbcCx2XX0sbi5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9K3QsbD1scihhLG8sOTApLGY9ZnIocixlLHkpLGg9bHIocyxjLDkwKSxnPWZyKGksdSx5KSxuKTp5fSxuLm1ham9yRXh0ZW50KFtbLTE4MCwtOTArQWFdLFsxODAsOTAtQWFdXSkubWlub3JFeHRlbnQoW1stMTgwLC04MC1BYV0sWzE4MCw4MCtBYV1dKX0sWG8uZ2VvLmdyZWF0QXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpbdHx8ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZXx8dS5hcHBseSh0aGlzLGFyZ3VtZW50cyldfX12YXIgdCxlLHI9aHIsdT1ncjtyZXR1cm4gbi5kaXN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBYby5nZW8uZGlzdGFuY2UodHx8ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZXx8dS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxuLnNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1lLHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/bnVsbDplLG4pOnJ9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQsZT0iZnVuY3Rpb24iPT10eXBlb2YgdD9udWxsOnQsbik6dX0sbi5wcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uOjB9LG59LFhvLmdlby5pbnRlcnBvbGF0ZT1mdW5jdGlvbihuLHQpe3JldHVybiBwcihuWzBdKk5hLG5bMV0qTmEsdFswXSpOYSx0WzFdKk5hKX0sWG8uZ2VvLmxlbmd0aD1mdW5jdGlvbihuKXtyZXR1cm4gVWM9MCxYby5nZW8uc3RyZWFtKG4samMpLFVjfTt2YXIgVWMsamM9e3NwaGVyZTpnLHBvaW50OmcsbGluZVN0YXJ0OnZyLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6Zyxwb2x5Z29uRW5kOmd9LEhjPWRyKGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnNxcnQoMi8oMStuKSl9LGZ1bmN0aW9uKG4pe3JldHVybiAyKk1hdGguYXNpbihuLzIpfSk7KFhvLmdlby5hemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gUWUoSGMpfSkucmF3PUhjO3ZhciBGYz1kcihmdW5jdGlvbihuKXt2YXIgdD1NYXRoLmFjb3Mobik7cmV0dXJuIHQmJnQvTWF0aC5zaW4odCl9LGJ0KTsoWG8uZ2VvLmF6aW11dGhhbEVxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIFFlKEZjKX0pLnJhdz1GYywoWG8uZ2VvLmNvbmljQ29uZm9ybWFsPWZ1bmN0aW9uKCl7cmV0dXJuIGplKG1yKX0pLnJhdz1tciwoWG8uZ2VvLmNvbmljRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gamUoeXIpfSkucmF3PXlyO3ZhciBPYz1kcihmdW5jdGlvbihuKXtyZXR1cm4gMS9ufSxNYXRoLmF0YW4pOyhYby5nZW8uZ25vbW9uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gUWUoT2MpfSkucmF3PU9jLHhyLmludmVydD1mdW5jdGlvbihuLHQpe3JldHVybltuLDIqTWF0aC5hdGFuKE1hdGguZXhwKHQpKS1FYV19LChYby5nZW8ubWVyY2F0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gTXIoeHIpfSkucmF3PXhyO3ZhciBZYz1kcihmdW5jdGlvbigpe3JldHVybiAxfSxNYXRoLmFzaW4pOyhYby5nZW8ub3J0aG9ncmFwaGljPWZ1bmN0aW9uKCl7cmV0dXJuIFFlKFljKX0pLnJhdz1ZYzt2YXIgSWM9ZHIoZnVuY3Rpb24obil7cmV0dXJuIDEvKDErbil9LGZ1bmN0aW9uKG4pe3JldHVybiAyKk1hdGguYXRhbihuKX0pOyhYby5nZW8uc3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBRZShJYyl9KS5yYXc9SWMsX3IuaW52ZXJ0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuWy10LDIqTWF0aC5hdGFuKE1hdGguZXhwKG4pKS1FYV19LChYby5nZW8udHJhbnN2ZXJzZU1lcmNhdG9yPWZ1bmN0aW9uKCl7dmFyIG49TXIoX3IpLHQ9bi5jZW50ZXIsZT1uLnJvdGF0ZTtyZXR1cm4gbi5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIG4/dChbLW5bMV0sblswXV0pOihuPXQoKSxbLW5bMV0sblswXV0pfSxuLnJvdGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gbj9lKFtuWzBdLG5bMV0sbi5sZW5ndGg+Mj9uWzJdKzkwOjkwXSk6KG49ZSgpLFtuWzBdLG5bMV0sblsyXS05MF0pfSxuLnJvdGF0ZShbMCwwXSl9KS5yYXc9X3IsWG8uZ2VvbT17fSxYby5nZW9tLmh1bGw9ZnVuY3Rpb24obil7ZnVuY3Rpb24gdChuKXtpZihuLmxlbmd0aDwzKXJldHVybltdO3ZhciB0LHU9X3QoZSksaT1fdChyKSxvPW4ubGVuZ3RoLGE9W10sYz1bXTtmb3IodD0wO28+dDt0KyspYS5wdXNoKFsrdS5jYWxsKHRoaXMsblt0XSx0KSwraS5jYWxsKHRoaXMsblt0XSx0KSx0XSk7Zm9yKGEuc29ydChrciksdD0wO28+dDt0KyspYy5wdXNoKFthW3RdWzBdLC1hW3RdWzFdXSk7dmFyIHM9U3IoYSksbD1TcihjKSxmPWxbMF09PT1zWzBdLGg9bFtsLmxlbmd0aC0xXT09PXNbcy5sZW5ndGgtMV0sZz1bXTtmb3IodD1zLmxlbmd0aC0xO3Q+PTA7LS10KWcucHVzaChuW2Fbc1t0XV1bMl1dKTtmb3IodD0rZjt0PGwubGVuZ3RoLWg7Kyt0KWcucHVzaChuW2FbbFt0XV1bMl1dKTtyZXR1cm4gZ312YXIgZT1icixyPXdyO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Qobik6KHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHQpOnJ9LHQpfSxYby5nZW9tLnBvbHlnb249ZnVuY3Rpb24obil7cmV0dXJuIGZhKG4sWmMpLG59O3ZhciBaYz1Yby5nZW9tLnBvbHlnb24ucHJvdG90eXBlPVtdO1pjLmFyZWE9ZnVuY3Rpb24oKXtmb3IodmFyIG4sdD0tMSxlPXRoaXMubGVuZ3RoLHI9dGhpc1tlLTFdLHU9MDsrK3Q8ZTspbj1yLHI9dGhpc1t0XSx1Kz1uWzFdKnJbMF0tblswXSpyWzFdO3JldHVybi41KnV9LFpjLmNlbnRyb2lkPWZ1bmN0aW9uKG4pe3ZhciB0LGUscj0tMSx1PXRoaXMubGVuZ3RoLGk9MCxvPTAsYT10aGlzW3UtMV07Zm9yKGFyZ3VtZW50cy5sZW5ndGh8fChuPS0xLyg2KnRoaXMuYXJlYSgpKSk7KytyPHU7KXQ9YSxhPXRoaXNbcl0sZT10WzBdKmFbMV0tYVswXSp0WzFdLGkrPSh0WzBdK2FbMF0pKmUsbys9KHRbMV0rYVsxXSkqZTtyZXR1cm5baSpuLG8qbl19LFpjLmNsaXA9ZnVuY3Rpb24obil7Zm9yKHZhciB0LGUscix1LGksbyxhPUNyKG4pLGM9LTEscz10aGlzLmxlbmd0aC1Dcih0aGlzKSxsPXRoaXNbcy0xXTsrK2M8czspe2Zvcih0PW4uc2xpY2UoKSxuLmxlbmd0aD0wLHU9dGhpc1tjXSxpPXRbKHI9dC5sZW5ndGgtYSktMV0sZT0tMTsrK2U8cjspbz10W2VdLEVyKG8sbCx1KT8oRXIoaSxsLHUpfHxuLnB1c2goQXIoaSxvLGwsdSkpLG4ucHVzaChvKSk6RXIoaSxsLHUpJiZuLnB1c2goQXIoaSxvLGwsdSkpLGk9bzthJiZuLnB1c2goblswXSksbD11fXJldHVybiBufTt2YXIgVmMsWGMsJGMsQmMsV2MsSmM9W10sR2M9W107UHIucHJvdG90eXBlLnByZXBhcmU9ZnVuY3Rpb24oKXtmb3IodmFyIG4sdD10aGlzLmVkZ2VzLGU9dC5sZW5ndGg7ZS0tOyluPXRbZV0uZWRnZSxuLmImJm4uYXx8dC5zcGxpY2UoZSwxKTtyZXR1cm4gdC5zb3J0KGpyKSx0Lmxlbmd0aH0sQnIucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2UubD09PXRoaXMuc2l0ZT90aGlzLmVkZ2UuYTp0aGlzLmVkZ2UuYn0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZS5sPT09dGhpcy5zaXRlP3RoaXMuZWRnZS5iOnRoaXMuZWRnZS5hfX0sV3IucHJvdG90eXBlPXtpbnNlcnQ6ZnVuY3Rpb24obix0KXt2YXIgZSxyLHU7aWYobil7aWYodC5QPW4sdC5OPW4uTixuLk4mJihuLk4uUD10KSxuLk49dCxuLlIpe2ZvcihuPW4uUjtuLkw7KW49bi5MO24uTD10fWVsc2Ugbi5SPXQ7ZT1ufWVsc2UgdGhpcy5fPyhuPVFyKHRoaXMuXyksdC5QPW51bGwsdC5OPW4sbi5QPW4uTD10LGU9bik6KHQuUD10Lk49bnVsbCx0aGlzLl89dCxlPW51bGwpO2Zvcih0Lkw9dC5SPW51bGwsdC5VPWUsdC5DPSEwLG49dDtlJiZlLkM7KXI9ZS5VLGU9PT1yLkw/KHU9ci5SLHUmJnUuQz8oZS5DPXUuQz0hMSxyLkM9ITAsbj1yKToobj09PWUuUiYmKEdyKHRoaXMsZSksbj1lLGU9bi5VKSxlLkM9ITEsci5DPSEwLEtyKHRoaXMscikpKToodT1yLkwsdSYmdS5DPyhlLkM9dS5DPSExLHIuQz0hMCxuPXIpOihuPT09ZS5MJiYoS3IodGhpcyxlKSxuPWUsZT1uLlUpLGUuQz0hMSxyLkM9ITAsR3IodGhpcyxyKSkpLGU9bi5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24obil7bi5OJiYobi5OLlA9bi5QKSxuLlAmJihuLlAuTj1uLk4pLG4uTj1uLlA9bnVsbDt2YXIgdCxlLHIsdT1uLlUsaT1uLkwsbz1uLlI7aWYoZT1pP28/UXIobyk6aTpvLHU/dS5MPT09bj91Lkw9ZTp1LlI9ZTp0aGlzLl89ZSxpJiZvPyhyPWUuQyxlLkM9bi5DLGUuTD1pLGkuVT1lLGUhPT1vPyh1PWUuVSxlLlU9bi5VLG49ZS5SLHUuTD1uLGUuUj1vLG8uVT1lKTooZS5VPXUsdT1lLG49ZS5SKSk6KHI9bi5DLG49ZSksbiYmKG4uVT11KSwhcil7aWYobiYmbi5DKXJldHVybiBuLkM9ITEsdm9pZCAwO2Rve2lmKG49PT10aGlzLl8pYnJlYWs7aWYobj09PXUuTCl7aWYodD11LlIsdC5DJiYodC5DPSExLHUuQz0hMCxHcih0aGlzLHUpLHQ9dS5SKSx0LkwmJnQuTC5DfHx0LlImJnQuUi5DKXt0LlImJnQuUi5DfHwodC5MLkM9ITEsdC5DPSEwLEtyKHRoaXMsdCksdD11LlIpLHQuQz11LkMsdS5DPXQuUi5DPSExLEdyKHRoaXMsdSksbj10aGlzLl87YnJlYWt9fWVsc2UgaWYodD11LkwsdC5DJiYodC5DPSExLHUuQz0hMCxLcih0aGlzLHUpLHQ9dS5MKSx0LkwmJnQuTC5DfHx0LlImJnQuUi5DKXt0LkwmJnQuTC5DfHwodC5SLkM9ITEsdC5DPSEwLEdyKHRoaXMsdCksdD11LkwpLHQuQz11LkMsdS5DPXQuTC5DPSExLEtyKHRoaXMsdSksbj10aGlzLl87YnJlYWt9dC5DPSEwLG49dSx1PXUuVX13aGlsZSghbi5DKTtuJiYobi5DPSExKX19fSxYby5nZW9tLnZvcm9ub2k9ZnVuY3Rpb24obil7ZnVuY3Rpb24gdChuKXt2YXIgdD1uZXcgQXJyYXkobi5sZW5ndGgpLHI9YVswXVswXSx1PWFbMF1bMV0saT1hWzFdWzBdLG89YVsxXVsxXTtyZXR1cm4gbnUoZShuKSxhKS5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGUsYSl7dmFyIGM9ZS5lZGdlcyxzPWUuc2l0ZSxsPXRbYV09Yy5sZW5ndGg/Yy5tYXAoZnVuY3Rpb24obil7dmFyIHQ9bi5zdGFydCgpO3JldHVyblt0LngsdC55XX0pOnMueD49ciYmcy54PD1pJiZzLnk+PXUmJnMueTw9bz9bW3Isb10sW2ksb10sW2ksdV0sW3IsdV1dOltdO2wucG9pbnQ9blthXX0pLHR9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24obix0KXtyZXR1cm57eDpNYXRoLnJvdW5kKGkobix0KS9BYSkqQWEseTpNYXRoLnJvdW5kKG8obix0KS9BYSkqQWEsaTp0fX0pfXZhciByPWJyLHU9d3IsaT1yLG89dSxhPUtjO3JldHVybiBuP3Qobik6KHQubGlua3M9ZnVuY3Rpb24obil7cmV0dXJuIG51KGUobikpLmVkZ2VzLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5sJiZuLnJ9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3NvdXJjZTpuW3QubC5pXSx0YXJnZXQ6blt0LnIuaV19fSl9LHQudHJpYW5nbGVzPWZ1bmN0aW9uKG4pe3ZhciB0PVtdO3JldHVybiBudShlKG4pKS5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7Zm9yKHZhciB1LGksbz1lLnNpdGUsYT1lLmVkZ2VzLnNvcnQoanIpLGM9LTEscz1hLmxlbmd0aCxsPWFbcy0xXS5lZGdlLGY9bC5sPT09bz9sLnI6bC5sOysrYzxzOyl1PWwsaT1mLGw9YVtjXS5lZGdlLGY9bC5sPT09bz9sLnI6bC5sLHI8aS5pJiZyPGYuaSYmZXUobyxpLGYpPDAmJnQucHVzaChbbltyXSxuW2kuaV0sbltmLmldXSl9KSx0fSx0Lng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9X3Qocj1uKSx0KTpyfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89X3QodT1uKSx0KTp1fSx0LmNsaXBFeHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09bj9LYzpuLHQpOmE9PT1LYz9udWxsOmF9LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LmNsaXBFeHRlbnQobiYmW1swLDBdLG5dKTphPT09S2M/bnVsbDphJiZhWzFdfSx0KX07dmFyIEtjPVtbLTFlNiwtMWU2XSxbMWU2LDFlNl1dO1hvLmdlb20uZGVsYXVuYXk9ZnVuY3Rpb24obil7cmV0dXJuIFhvLmdlb20udm9yb25vaSgpLnRyaWFuZ2xlcyhuKX0sWG8uZ2VvbS5xdWFkdHJlZT1mdW5jdGlvbihuLHQsZSxyLHUpe2Z1bmN0aW9uIGkobil7ZnVuY3Rpb24gaShuLHQsZSxyLHUsaSxvLGEpe2lmKCFpc05hTihlKSYmIWlzTmFOKHIpKWlmKG4ubGVhZil7dmFyIGM9bi54LGw9bi55O2lmKG51bGwhPWMpaWYob2EoYy1lKStvYShsLXIpPC4wMSlzKG4sdCxlLHIsdSxpLG8sYSk7ZWxzZXt2YXIgZj1uLnBvaW50O24ueD1uLnk9bi5wb2ludD1udWxsLHMobixmLGMsbCx1LGksbyxhKSxzKG4sdCxlLHIsdSxpLG8sYSl9ZWxzZSBuLng9ZSxuLnk9cixuLnBvaW50PXR9ZWxzZSBzKG4sdCxlLHIsdSxpLG8sYSl9ZnVuY3Rpb24gcyhuLHQsZSxyLHUsbyxhLGMpe3ZhciBzPS41Kih1K2EpLGw9LjUqKG8rYyksZj1lPj1zLGg9cj49bCxnPShoPDwxKStmO24ubGVhZj0hMSxuPW4ubm9kZXNbZ118fChuLm5vZGVzW2ddPWl1KCkpLGY/dT1zOmE9cyxoP289bDpjPWwsaShuLHQsZSxyLHUsbyxhLGMpfXZhciBsLGYsaCxnLHAsdixkLG0seSx4PV90KGEpLE09X3QoYyk7aWYobnVsbCE9dCl2PXQsZD1lLG09cix5PXU7ZWxzZSBpZihtPXk9LSh2PWQ9MS8wKSxmPVtdLGg9W10scD1uLmxlbmd0aCxvKWZvcihnPTA7cD5nOysrZylsPW5bZ10sbC54PHYmJih2PWwueCksbC55PGQmJihkPWwueSksbC54Pm0mJihtPWwueCksbC55PnkmJih5PWwueSksZi5wdXNoKGwueCksaC5wdXNoKGwueSk7ZWxzZSBmb3IoZz0wO3A+ZzsrK2cpe3ZhciBfPSt4KGw9bltnXSxnKSxiPStNKGwsZyk7dj5fJiYodj1fKSxkPmImJihkPWIpLF8+bSYmKG09XyksYj55JiYoeT1iKSxmLnB1c2goXyksaC5wdXNoKGIpfXZhciB3PW0tdixTPXktZDt3PlM/eT1kK3c6bT12K1M7dmFyIGs9aXUoKTtpZihrLmFkZD1mdW5jdGlvbihuKXtpKGssbiwreChuLCsrZyksK00obixnKSx2LGQsbSx5KX0say52aXNpdD1mdW5jdGlvbihuKXtvdShuLGssdixkLG0seSl9LGc9LTEsbnVsbD09dCl7Zm9yKDsrK2c8cDspaShrLG5bZ10sZltnXSxoW2ddLHYsZCxtLHkpOy0tZ31lbHNlIG4uZm9yRWFjaChrLmFkZCk7cmV0dXJuIGY9aD1uPWw9bnVsbCxrfXZhciBvLGE9YnIsYz13cjtyZXR1cm4obz1hcmd1bWVudHMubGVuZ3RoKT8oYT1ydSxjPXV1LDM9PT1vJiYodT1lLHI9dCxlPXQ9MCksaShuKSk6KGkueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1uLGkpOmF9LGkueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1uLGkpOmN9LGkuZXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT1uP3Q9ZT1yPXU9bnVsbDoodD0rblswXVswXSxlPStuWzBdWzFdLHI9K25bMV1bMF0sdT0rblsxXVsxXSksaSk6bnVsbD09dD9udWxsOltbdCxlXSxbcix1XV19LGkuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj90PWU9cj11PW51bGw6KHQ9ZT0wLHI9K25bMF0sdT0rblsxXSksaSk6bnVsbD09dD9udWxsOltyLXQsdS1lXX0saSl9LFhvLmludGVycG9sYXRlUmdiPWF1LFhvLmludGVycG9sYXRlT2JqZWN0PWN1LFhvLmludGVycG9sYXRlTnVtYmVyPXN1LFhvLmludGVycG9sYXRlU3RyaW5nPWx1O3ZhciBRYz0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2c7WG8uaW50ZXJwb2xhdGU9ZnUsWG8uaW50ZXJwb2xhdG9ycz1bZnVuY3Rpb24obix0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4oInN0cmluZyI9PT1lP1ZhLmhhcyh0KXx8L14oI3xyZ2JcKHxoc2xcKCkvLnRlc3QodCk/YXU6bHU6dCBpbnN0YW5jZW9mIEc/YXU6Im9iamVjdCI9PT1lP0FycmF5LmlzQXJyYXkodCk/aHU6Y3U6c3UpKG4sdCl9XSxYby5pbnRlcnBvbGF0ZUFycmF5PWh1O3ZhciBucz1mdW5jdGlvbigpe3JldHVybiBidH0sdHM9WG8ubWFwKHtsaW5lYXI6bnMscG9seTp4dSxxdWFkOmZ1bmN0aW9uKCl7cmV0dXJuIGR1fSxjdWJpYzpmdW5jdGlvbigpe3JldHVybiBtdX0sc2luOmZ1bmN0aW9uKCl7cmV0dXJuIE11fSxleHA6ZnVuY3Rpb24oKXtyZXR1cm4gX3V9LGNpcmNsZTpmdW5jdGlvbigpe3JldHVybiBidX0sZWxhc3RpYzp3dSxiYWNrOlN1LGJvdW5jZTpmdW5jdGlvbigpe3JldHVybiBrdX19KSxlcz1Yby5tYXAoeyJpbiI6YnQsb3V0OnB1LCJpbi1vdXQiOnZ1LCJvdXQtaW4iOmZ1bmN0aW9uKG4pe3JldHVybiB2dShwdShuKSl9fSk7WG8uZWFzZT1mdW5jdGlvbihuKXt2YXIgdD1uLmluZGV4T2YoIi0iKSxlPXQ+PTA/bi5zdWJzdHJpbmcoMCx0KTpuLHI9dD49MD9uLnN1YnN0cmluZyh0KzEpOiJpbiI7cmV0dXJuIGU9dHMuZ2V0KGUpfHxucyxyPWVzLmdldChyKXx8YnQsZ3UocihlLmFwcGx5KG51bGwsJG8uY2FsbChhcmd1bWVudHMsMSkpKSl9LFhvLmludGVycG9sYXRlSGNsPUV1LFhvLmludGVycG9sYXRlSHNsPUF1LFhvLmludGVycG9sYXRlTGFiPUN1LFhvLmludGVycG9sYXRlUm91bmQ9TnUsWG8udHJhbnNmb3JtPWZ1bmN0aW9uKG4pe3ZhciB0PVdvLmNyZWF0ZUVsZW1lbnROUyhYby5ucy5wcmVmaXguc3ZnLCJnIik7cmV0dXJuKFhvLnRyYW5zZm9ybT1mdW5jdGlvbihuKXtpZihudWxsIT1uKXt0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixuKTt2YXIgZT10LnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCl9cmV0dXJuIG5ldyBMdShlP2UubWF0cml4OnJzKX0pKG4pfSxMdS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy50cmFuc2xhdGUrIilyb3RhdGUoIit0aGlzLnJvdGF0ZSsiKXNrZXdYKCIrdGhpcy5za2V3KyIpc2NhbGUoIit0aGlzLnNjYWxlKyIpIn07dmFyIHJzPXthOjEsYjowLGM6MCxkOjEsZTowLGY6MH07WG8uaW50ZXJwb2xhdGVUcmFuc2Zvcm09UnUsWG8ubGF5b3V0PXt9LFhvLmxheW91dC5idW5kbGU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obil7Zm9yKHZhciB0PVtdLGU9LTEscj1uLmxlbmd0aDsrK2U8cjspdC5wdXNoKFV1KG5bZV0pKTtyZXR1cm4gdH19LFhvLmxheW91dC5jaG9yZD1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXt2YXIgbixzLGYsaCxnLHA9e30sdj1bXSxkPVhvLnJhbmdlKGkpLG09W107Zm9yKGU9W10scj1bXSxuPTAsaD0tMTsrK2g8aTspe2ZvcihzPTAsZz0tMTsrK2c8aTspcys9dVtoXVtnXTt2LnB1c2gocyksbS5wdXNoKFhvLnJhbmdlKGkpKSxuKz1zfWZvcihvJiZkLnNvcnQoZnVuY3Rpb24obix0KXtyZXR1cm4gbyh2W25dLHZbdF0pfSksYSYmbS5mb3JFYWNoKGZ1bmN0aW9uKG4sdCl7bi5zb3J0KGZ1bmN0aW9uKG4sZSl7cmV0dXJuIGEodVt0XVtuXSx1W3RdW2VdKX0pfSksbj0oa2EtbCppKS9uLHM9MCxoPS0xOysraDxpOyl7Zm9yKGY9cyxnPS0xOysrZzxpOyl7dmFyIHk9ZFtoXSx4PW1beV1bZ10sTT11W3ldW3hdLF89cyxiPXMrPU0qbjtwW3krIi0iK3hdPXtpbmRleDp5LHN1YmluZGV4Ongsc3RhcnRBbmdsZTpfLGVuZEFuZ2xlOmIsdmFsdWU6TX19clt5XT17aW5kZXg6eSxzdGFydEFuZ2xlOmYsZW5kQW5nbGU6cyx2YWx1ZToocy1mKS9ufSxzKz1sfWZvcihoPS0xOysraDxpOylmb3IoZz1oLTE7KytnPGk7KXt2YXIgdz1wW2grIi0iK2ddLFM9cFtnKyItIitoXTsody52YWx1ZXx8Uy52YWx1ZSkmJmUucHVzaCh3LnZhbHVlPFMudmFsdWU/e3NvdXJjZTpTLHRhcmdldDp3fTp7c291cmNlOncsdGFyZ2V0OlN9KX1jJiZ0KCl9ZnVuY3Rpb24gdCgpe2Uuc29ydChmdW5jdGlvbihuLHQpe3JldHVybiBjKChuLnNvdXJjZS52YWx1ZStuLnRhcmdldC52YWx1ZSkvMiwodC5zb3VyY2UudmFsdWUrdC50YXJnZXQudmFsdWUpLzIpfSl9dmFyIGUscix1LGksbyxhLGMscz17fSxsPTA7cmV0dXJuIHMubWF0cml4PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSh1PW4pJiZ1Lmxlbmd0aCxlPXI9bnVsbCxzKTp1fSxzLnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9bixlPXI9bnVsbCxzKTpsfSxzLnNvcnRHcm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bixlPXI9bnVsbCxzKTpvfSxzLnNvcnRTdWJncm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bixlPW51bGwscyk6YX0scy5zb3J0Q2hvcmRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPW4sZSYmdCgpLHMpOmN9LHMuY2hvcmRzPWZ1bmN0aW9uKCl7cmV0dXJuIGV8fG4oKSxlfSxzLmdyb3Vwcz1mdW5jdGlvbigpe3JldHVybiByfHxuKCkscn0sc30sWG8ubGF5b3V0LmZvcmNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsdSl7aWYodC5wb2ludCE9PW4pe3ZhciBpPXQuY3gtbi54LG89dC5jeS1uLnksYT11LWUsYz1pKmkrbypvO2lmKGM+YSphL2Qpe2lmKHA+Yyl7dmFyIHM9dC5jaGFyZ2UvYztuLnB4LT1pKnMsbi5weS09bypzfXJldHVybiEwfWlmKHQucG9pbnQmJmMmJnA+Yyl7dmFyIHM9dC5wb2ludENoYXJnZS9jO24ucHgtPWkqcyxuLnB5LT1vKnN9fXJldHVybiF0LmNoYXJnZX19ZnVuY3Rpb24gdChuKXtuLnB4PVhvLmV2ZW50Lngsbi5weT1Yby5ldmVudC55LGEucmVzdW1lKCl9dmFyIGUscix1LGksbyxhPXt9LGM9WG8uZGlzcGF0Y2goInN0YXJ0IiwidGljayIsImVuZCIpLHM9WzEsMV0sbD0uOSxmPXVzLGg9aXMsZz0tMzAscD1vcyx2PS4xLGQ9LjY0LG09W10seT1bXTtyZXR1cm4gYS50aWNrPWZ1bmN0aW9uKCl7aWYoKHIqPS45OSk8LjAwNSlyZXR1cm4gYy5lbmQoe3R5cGU6ImVuZCIsYWxwaGE6cj0wfSksITA7dmFyIHQsZSxhLGYsaCxwLGQseCxNLF89bS5sZW5ndGgsYj15Lmxlbmd0aDtmb3IoZT0wO2I+ZTsrK2UpYT15W2VdLGY9YS5zb3VyY2UsaD1hLnRhcmdldCx4PWgueC1mLngsTT1oLnktZi55LChwPXgqeCtNKk0pJiYocD1yKmlbZV0qKChwPU1hdGguc3FydChwKSktdVtlXSkvcCx4Kj1wLE0qPXAsaC54LT14KihkPWYud2VpZ2h0LyhoLndlaWdodCtmLndlaWdodCkpLGgueS09TSpkLGYueCs9eCooZD0xLWQpLGYueSs9TSpkKTtpZigoZD1yKnYpJiYoeD1zWzBdLzIsTT1zWzFdLzIsZT0tMSxkKSlmb3IoOysrZTxfOylhPW1bZV0sYS54Kz0oeC1hLngpKmQsYS55Kz0oTS1hLnkpKmQ7aWYoZylmb3IoWnUodD1Yby5nZW9tLnF1YWR0cmVlKG0pLHIsbyksZT0tMTsrK2U8XzspKGE9bVtlXSkuZml4ZWR8fHQudmlzaXQobihhKSk7Zm9yKGU9LTE7KytlPF87KWE9bVtlXSxhLmZpeGVkPyhhLng9YS5weCxhLnk9YS5weSk6KGEueC09KGEucHgtKGEucHg9YS54KSkqbCxhLnktPShhLnB5LShhLnB5PWEueSkpKmwpO2MudGljayh7dHlwZToidGljayIsYWxwaGE6cn0pfSxhLm5vZGVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPW4sYSk6bX0sYS5saW5rcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT1uLGEpOnl9LGEuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1uLGEpOnN9LGEubGlua0Rpc3RhbmNlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246K24sYSk6Zn0sYS5kaXN0YW5jZT1hLmxpbmtEaXN0YW5jZSxhLmxpbmtTdHJlbmd0aD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOituLGEpOmh9LGEuZnJpY3Rpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K24sYSk6bH0sYS5jaGFyZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjorbixhKTpnfSxhLmNoYXJnZURpc3RhbmNlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPW4qbixhKTpNYXRoLnNxcnQocCl9LGEuZ3Jhdml0eT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj0rbixhKTp2fSxhLnRoZXRhPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPW4qbixhKTpNYXRoLnNxcnQoZCl9LGEuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K24scj9yPW4+MD9uOjA6bj4wJiYoYy5zdGFydCh7dHlwZToic3RhcnQiLGFscGhhOnI9bn0pLFhvLnRpbWVyKGEudGljaykpLGEpOnJ9LGEuc3RhcnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4scil7aWYoIWUpe2ZvcihlPW5ldyBBcnJheShjKSxhPTA7Yz5hOysrYSllW2FdPVtdO2ZvcihhPTA7cz5hOysrYSl7dmFyIHU9eVthXTtlW3Uuc291cmNlLmluZGV4XS5wdXNoKHUudGFyZ2V0KSxlW3UudGFyZ2V0LmluZGV4XS5wdXNoKHUuc291cmNlKX19Zm9yKHZhciBpLG89ZVt0XSxhPS0xLHM9by5sZW5ndGg7KythPHM7KWlmKCFpc05hTihpPW9bYV1bbl0pKXJldHVybiBpO3JldHVybiBNYXRoLnJhbmRvbSgpKnJ9dmFyIHQsZSxyLGM9bS5sZW5ndGgsbD15Lmxlbmd0aCxwPXNbMF0sdj1zWzFdO2Zvcih0PTA7Yz50OysrdCkocj1tW3RdKS5pbmRleD10LHIud2VpZ2h0PTA7Zm9yKHQ9MDtsPnQ7Kyt0KXI9eVt0XSwibnVtYmVyIj09dHlwZW9mIHIuc291cmNlJiYoci5zb3VyY2U9bVtyLnNvdXJjZV0pLCJudW1iZXIiPT10eXBlb2Ygci50YXJnZXQmJihyLnRhcmdldD1tW3IudGFyZ2V0XSksKytyLnNvdXJjZS53ZWlnaHQsKytyLnRhcmdldC53ZWlnaHQ7Zm9yKHQ9MDtjPnQ7Kyt0KXI9bVt0XSxpc05hTihyLngpJiYoci54PW4oIngiLHApKSxpc05hTihyLnkpJiYoci55PW4oInkiLHYpKSxpc05hTihyLnB4KSYmKHIucHg9ci54KSxpc05hTihyLnB5KSYmKHIucHk9ci55KTtpZih1PVtdLCJmdW5jdGlvbiI9PXR5cGVvZiBmKWZvcih0PTA7bD50OysrdCl1W3RdPStmLmNhbGwodGhpcyx5W3RdLHQpO2Vsc2UgZm9yKHQ9MDtsPnQ7Kyt0KXVbdF09ZjtpZihpPVtdLCJmdW5jdGlvbiI9PXR5cGVvZiBoKWZvcih0PTA7bD50OysrdClpW3RdPStoLmNhbGwodGhpcyx5W3RdLHQpO2Vsc2UgZm9yKHQ9MDtsPnQ7Kyt0KWlbdF09aDtpZihvPVtdLCJmdW5jdGlvbiI9PXR5cGVvZiBnKWZvcih0PTA7Yz50OysrdClvW3RdPStnLmNhbGwodGhpcyxtW3RdLHQpO2Vsc2UgZm9yKHQ9MDtjPnQ7Kyt0KW9bdF09ZztyZXR1cm4gYS5yZXN1bWUoKX0sYS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hbHBoYSguMSl9LGEuc3RvcD1mdW5jdGlvbigpe3JldHVybiBhLmFscGhhKDApfSxhLmRyYWc9ZnVuY3Rpb24oKXtyZXR1cm4gZXx8KGU9WG8uYmVoYXZpb3IuZHJhZygpLm9yaWdpbihidCkub24oImRyYWdzdGFydC5mb3JjZSIsRnUpLm9uKCJkcmFnLmZvcmNlIix0KS5vbigiZHJhZ2VuZC5mb3JjZSIsT3UpKSxhcmd1bWVudHMubGVuZ3RoPyh0aGlzLm9uKCJtb3VzZW92ZXIuZm9yY2UiLFl1KS5vbigibW91c2VvdXQuZm9yY2UiLEl1KS5jYWxsKGUpLHZvaWQgMCk6ZX0sWG8ucmViaW5kKGEsYywib24iKX07dmFyIHVzPTIwLGlzPTEsb3M9MS8wO1hvLmxheW91dC5oaWVyYXJjaHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsbyxhKXt2YXIgYz11LmNhbGwoZSx0LG8pO2lmKHQuZGVwdGg9byxhLnB1c2godCksYyYmKHM9Yy5sZW5ndGgpKXtmb3IodmFyIHMsbCxmPS0xLGg9dC5jaGlsZHJlbj1uZXcgQXJyYXkocyksZz0wLHA9bysxOysrZjxzOylsPWhbZl09bihjW2ZdLHAsYSksbC5wYXJlbnQ9dCxnKz1sLnZhbHVlO3ImJmguc29ydChyKSxpJiYodC52YWx1ZT1nKX1lbHNlIGRlbGV0ZSB0LmNoaWxkcmVuLGkmJih0LnZhbHVlPStpLmNhbGwoZSx0LG8pfHwwKTtyZXR1cm4gdH1mdW5jdGlvbiB0KG4scil7dmFyIHU9bi5jaGlsZHJlbixvPTA7aWYodSYmKGE9dS5sZW5ndGgpKWZvcih2YXIgYSxjPS0xLHM9cisxOysrYzxhOylvKz10KHVbY10scyk7ZWxzZSBpJiYobz0raS5jYWxsKGUsbixyKXx8MCk7cmV0dXJuIGkmJihuLnZhbHVlPW8pLG99ZnVuY3Rpb24gZSh0KXt2YXIgZT1bXTtyZXR1cm4gbih0LDAsZSksZX12YXIgcj1CdSx1PVh1LGk9JHU7cmV0dXJuIGUuc29ydD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLGUpOnJ9LGUuY2hpbGRyZW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9bixlKTp1fSxlLnZhbHVlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW4sZSk6aX0sZS5yZXZhbHVlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sMCksbn0sZX0sWG8ubGF5b3V0LnBhcnRpdGlvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCxlLHIsdSl7dmFyIGk9dC5jaGlsZHJlbjtpZih0Lng9ZSx0Lnk9dC5kZXB0aCp1LHQuZHg9cix0LmR5PXUsaSYmKG89aS5sZW5ndGgpKXt2YXIgbyxhLGMscz0tMTtmb3Iocj10LnZhbHVlP3IvdC52YWx1ZTowOysrczxvOyluKGE9aVtzXSxlLGM9YS52YWx1ZSpyLHUpLGUrPWN9fWZ1bmN0aW9uIHQobil7dmFyIGU9bi5jaGlsZHJlbixyPTA7aWYoZSYmKHU9ZS5sZW5ndGgpKWZvcih2YXIgdSxpPS0xOysraTx1OylyPU1hdGgubWF4KHIsdChlW2ldKSk7cmV0dXJuIDErcn1mdW5jdGlvbiBlKGUsaSl7dmFyIG89ci5jYWxsKHRoaXMsZSxpKTtyZXR1cm4gbihvWzBdLDAsdVswXSx1WzFdL3Qob1swXSkpLG99dmFyIHI9WG8ubGF5b3V0LmhpZXJhcmNoeSgpLHU9WzEsMV07cmV0dXJuIGUuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1uLGUpOnV9LFZ1KGUscil9LFhvLmxheW91dC5waWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGkpe3ZhciBvPWkubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJuK3QuY2FsbChuLGUscil9KSxhPSsoImZ1bmN0aW9uIj09dHlwZW9mIHI/ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ciksYz0oKCJmdW5jdGlvbiI9PXR5cGVvZiB1P3UuYXBwbHkodGhpcyxhcmd1bWVudHMpOnUpLWEpL1hvLnN1bShvKSxzPVhvLnJhbmdlKGkubGVuZ3RoKTtudWxsIT1lJiZzLnNvcnQoZT09PWFzP2Z1bmN0aW9uKG4sdCl7cmV0dXJuIG9bdF0tb1tuXX06ZnVuY3Rpb24obix0KXtyZXR1cm4gZShpW25dLGlbdF0pfSk7dmFyIGw9W107cmV0dXJuIHMuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgdDtsW25dPXtkYXRhOmlbbl0sdmFsdWU6dD1vW25dLHN0YXJ0QW5nbGU6YSxlbmRBbmdsZTphKz10KmN9fSksbH12YXIgdD1OdW1iZXIsZT1hcyxyPTAsdT1rYTtyZXR1cm4gbi52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLG4pOnR9LG4uc29ydD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4uc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG4uZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxuKTp1fSxufTt2YXIgYXM9e307WG8ubGF5b3V0LnN0YWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihhLGMpe3ZhciBzPWEubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJuIHQuY2FsbChuLGUscil9KSxsPXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0LGUpe3JldHVybltpLmNhbGwobix0LGUpLG8uY2FsbChuLHQsZSldfSl9KSxmPWUuY2FsbChuLGwsYyk7cz1Yby5wZXJtdXRlKHMsZiksbD1Yby5wZXJtdXRlKGwsZik7dmFyIGgsZyxwLHY9ci5jYWxsKG4sbCxjKSxkPXMubGVuZ3RoLG09c1swXS5sZW5ndGg7Zm9yKGc9MDttPmc7KytnKWZvcih1LmNhbGwobixzWzBdW2ddLHA9dltnXSxsWzBdW2ddWzFdKSxoPTE7ZD5oOysraCl1LmNhbGwobixzW2hdW2ddLHArPWxbaC0xXVtnXVsxXSxsW2hdW2ddWzFdKTtyZXR1cm4gYX12YXIgdD1idCxlPVF1LHI9bmksdT1LdSxpPUp1LG89R3U7cmV0dXJuIG4udmFsdWVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5vcmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmNzLmdldCh0KXx8UXUsbik6ZX0sbi5vZmZzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpzcy5nZXQodCl8fG5pLG4pOnJ9LG4ueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG4pOml9LG4ueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LG4pOm99LG4ub3V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQsbik6dX0sbn07dmFyIGNzPVhvLm1hcCh7Imluc2lkZS1vdXQiOmZ1bmN0aW9uKG4pe3ZhciB0LGUscj1uLmxlbmd0aCx1PW4ubWFwKHRpKSxpPW4ubWFwKGVpKSxvPVhvLnJhbmdlKHIpLnNvcnQoZnVuY3Rpb24obix0KXtyZXR1cm4gdVtuXS11W3RdfSksYT0wLGM9MCxzPVtdLGw9W107Zm9yKHQ9MDtyPnQ7Kyt0KWU9b1t0XSxjPmE/KGErPWlbZV0scy5wdXNoKGUpKTooYys9aVtlXSxsLnB1c2goZSkpO3JldHVybiBsLnJldmVyc2UoKS5jb25jYXQocyl9LHJldmVyc2U6ZnVuY3Rpb24obil7cmV0dXJuIFhvLnJhbmdlKG4ubGVuZ3RoKS5yZXZlcnNlKCl9LCJkZWZhdWx0IjpRdX0pLHNzPVhvLm1hcCh7c2lsaG91ZXR0ZTpmdW5jdGlvbihuKXt2YXIgdCxlLHIsdT1uLmxlbmd0aCxpPW5bMF0ubGVuZ3RoLG89W10sYT0wLGM9W107Zm9yKGU9MDtpPmU7KytlKXtmb3IodD0wLHI9MDt1PnQ7dCsrKXIrPW5bdF1bZV1bMV07cj5hJiYoYT1yKSxvLnB1c2gocil9Zm9yKGU9MDtpPmU7KytlKWNbZV09KGEtb1tlXSkvMjtyZXR1cm4gY30sd2lnZ2xlOmZ1bmN0aW9uKG4pe3ZhciB0LGUscix1LGksbyxhLGMscyxsPW4ubGVuZ3RoLGY9blswXSxoPWYubGVuZ3RoLGc9W107Zm9yKGdbMF09Yz1zPTAsZT0xO2g+ZTsrK2Upe2Zvcih0PTAsdT0wO2w+dDsrK3QpdSs9blt0XVtlXVsxXTtmb3IodD0wLGk9MCxhPWZbZV1bMF0tZltlLTFdWzBdO2w+dDsrK3Qpe2ZvcihyPTAsbz0oblt0XVtlXVsxXS1uW3RdW2UtMV1bMV0pLygyKmEpO3Q+cjsrK3Ipbys9KG5bcl1bZV1bMV0tbltyXVtlLTFdWzFdKS9hO2krPW8qblt0XVtlXVsxXX1nW2VdPWMtPXU/aS91KmE6MCxzPmMmJihzPWMpfWZvcihlPTA7aD5lOysrZSlnW2VdLT1zO3JldHVybiBnfSxleHBhbmQ6ZnVuY3Rpb24obil7dmFyIHQsZSxyLHU9bi5sZW5ndGgsaT1uWzBdLmxlbmd0aCxvPTEvdSxhPVtdO2ZvcihlPTA7aT5lOysrZSl7Zm9yKHQ9MCxyPTA7dT50O3QrKylyKz1uW3RdW2VdWzFdO2lmKHIpZm9yKHQ9MDt1PnQ7dCsrKW5bdF1bZV1bMV0vPXI7ZWxzZSBmb3IodD0wO3U+dDt0Kyspblt0XVtlXVsxXT1vfWZvcihlPTA7aT5lOysrZSlhW2VdPTA7cmV0dXJuIGF9LHplcm86bml9KTtYby5sYXlvdXQuaGlzdG9ncmFtPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuLGkpe2Zvcih2YXIgbyxhLGM9W10scz1uLm1hcChlLHRoaXMpLGw9ci5jYWxsKHRoaXMscyxpKSxmPXUuY2FsbCh0aGlzLGwscyxpKSxpPS0xLGg9cy5sZW5ndGgsZz1mLmxlbmd0aC0xLHA9dD8xOjEvaDsrK2k8Zzspbz1jW2ldPVtdLG8uZHg9ZltpKzFdLShvLng9ZltpXSksby55PTA7aWYoZz4wKWZvcihpPS0xOysraTxoOylhPXNbaV0sYT49bFswXSYmYTw9bFsxXSYmKG89Y1tYby5iaXNlY3QoZixhLDEsZyktMV0sby55Kz1wLG8ucHVzaChuW2ldKSk7cmV0dXJuIGN9dmFyIHQ9ITAsZT1OdW1iZXIscj1vaSx1PXVpO3JldHVybiBuLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbik6ZX0sbi5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1fdCh0KSxuKTpyfSxuLmJpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9Im51bWJlciI9PXR5cGVvZiB0P2Z1bmN0aW9uKG4pe3JldHVybiBpaShuLHQpfTpfdCh0KSxuKTp1fSxuLmZyZXF1ZW5jeT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0hIWUsbik6dH0sbn0sWG8ubGF5b3V0LnRyZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4saSl7ZnVuY3Rpb24gbyhuLHQpe3ZhciByPW4uY2hpbGRyZW4sdT1uLl90cmVlO2lmKHImJihpPXIubGVuZ3RoKSl7Zm9yKHZhciBpLGEscyxsPXJbMF0sZj1sLGg9LTE7KytoPGk7KXM9cltoXSxvKHMsYSksZj1jKHMsYSxmKSxhPXM7dmkobik7dmFyIGc9LjUqKGwuX3RyZWUucHJlbGltK3MuX3RyZWUucHJlbGltKTt0Pyh1LnByZWxpbT10Ll90cmVlLnByZWxpbStlKG4sdCksdS5tb2Q9dS5wcmVsaW0tZyk6dS5wcmVsaW09Z31lbHNlIHQmJih1LnByZWxpbT10Ll90cmVlLnByZWxpbStlKG4sdCkpfWZ1bmN0aW9uIGEobix0KXtuLng9bi5fdHJlZS5wcmVsaW0rdDt2YXIgZT1uLmNoaWxkcmVuO2lmKGUmJihyPWUubGVuZ3RoKSl7dmFyIHIsdT0tMTtmb3IodCs9bi5fdHJlZS5tb2Q7Kyt1PHI7KWEoZVt1XSx0KX19ZnVuY3Rpb24gYyhuLHQscil7aWYodCl7Zm9yKHZhciB1LGk9bixvPW4sYT10LGM9bi5wYXJlbnQuY2hpbGRyZW5bMF0scz1pLl90cmVlLm1vZCxsPW8uX3RyZWUubW9kLGY9YS5fdHJlZS5tb2QsaD1jLl90cmVlLm1vZDthPXNpKGEpLGk9Y2koaSksYSYmaTspYz1jaShjKSxvPXNpKG8pLG8uX3RyZWUuYW5jZXN0b3I9bix1PWEuX3RyZWUucHJlbGltK2YtaS5fdHJlZS5wcmVsaW0tcytlKGEsaSksdT4wJiYoZGkobWkoYSxuLHIpLG4sdSkscys9dSxsKz11KSxmKz1hLl90cmVlLm1vZCxzKz1pLl90cmVlLm1vZCxoKz1jLl90cmVlLm1vZCxsKz1vLl90cmVlLm1vZDthJiYhc2kobykmJihvLl90cmVlLnRocmVhZD1hLG8uX3RyZWUubW9kKz1mLWwpLGkmJiFjaShjKSYmKGMuX3RyZWUudGhyZWFkPWksYy5fdHJlZS5tb2QrPXMtaCxyPW4pfXJldHVybiByfXZhciBzPXQuY2FsbCh0aGlzLG4saSksbD1zWzBdO3BpKGwsZnVuY3Rpb24obix0KXtuLl90cmVlPXthbmNlc3RvcjpuLHByZWxpbTowLG1vZDowLGNoYW5nZTowLHNoaWZ0OjAsbnVtYmVyOnQ/dC5fdHJlZS5udW1iZXIrMTowfX0pLG8obCksYShsLC1sLl90cmVlLnByZWxpbSk7dmFyIGY9bGkobCxoaSksaD1saShsLGZpKSxnPWxpKGwsZ2kpLHA9Zi54LWUoZixoKS8yLHY9aC54K2UoaCxmKS8yLGQ9Zy5kZXB0aHx8MTtyZXR1cm4gcGkobCx1P2Z1bmN0aW9uKG4pe24ueCo9clswXSxuLnk9bi5kZXB0aCpyWzFdLGRlbGV0ZSBuLl90cmVlfTpmdW5jdGlvbihuKXtuLng9KG4ueC1wKS8odi1wKSpyWzBdLG4ueT1uLmRlcHRoL2QqclsxXSxkZWxldGUgbi5fdHJlZX0pLHN9dmFyIHQ9WG8ubGF5b3V0LmhpZXJhcmNoeSgpLnNvcnQobnVsbCkudmFsdWUobnVsbCksZT1haSxyPVsxLDFdLHU9ITE7cmV0dXJuIG4uc2VwYXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1udWxsPT0ocj10KSxuKTp1P251bGw6cn0sbi5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1udWxsIT0ocj10KSxuKTp1P3I6bnVsbH0sVnUobix0KX0sWG8ubGF5b3V0LnBhY2s9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4saSl7dmFyIG89ZS5jYWxsKHRoaXMsbixpKSxhPW9bMF0sYz11WzBdLHM9dVsxXSxsPW51bGw9PXQ/TWF0aC5zcXJ0OiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH07aWYoYS54PWEueT0wLHBpKGEsZnVuY3Rpb24obil7bi5yPStsKG4udmFsdWUpfSkscGkoYSxiaSkscil7dmFyIGY9cioodD8xOk1hdGgubWF4KDIqYS5yL2MsMiphLnIvcykpLzI7cGkoYSxmdW5jdGlvbihuKXtuLnIrPWZ9KSxwaShhLGJpKSxwaShhLGZ1bmN0aW9uKG4pe24uci09Zn0pfXJldHVybiBraShhLGMvMixzLzIsdD8xOjEvTWF0aC5tYXgoMiphLnIvYywyKmEuci9zKSksb312YXIgdCxlPVhvLmxheW91dC5oaWVyYXJjaHkoKS5zb3J0KHlpKSxyPTAsdT1bMSwxXTtyZXR1cm4gbi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQsbik6dX0sbi5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bnVsbD09ZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTorZSxuKTp0fSxuLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3Qsbik6cn0sVnUobixlKX0sWG8ubGF5b3V0LmNsdXN0ZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4saSl7dmFyIG8sYT10LmNhbGwodGhpcyxuLGkpLGM9YVswXSxzPTA7cGkoYyxmdW5jdGlvbihuKXt2YXIgdD1uLmNoaWxkcmVuO3QmJnQubGVuZ3RoPyhuLng9Q2kodCksbi55PUFpKHQpKToobi54PW8/cys9ZShuLG8pOjAsbi55PTAsbz1uKX0pO3ZhciBsPU5pKGMpLGY9TGkoYyksaD1sLngtZShsLGYpLzIsZz1mLngrZShmLGwpLzI7cmV0dXJuIHBpKGMsdT9mdW5jdGlvbihuKXtuLng9KG4ueC1jLngpKnJbMF0sbi55PShjLnktbi55KSpyWzFdfTpmdW5jdGlvbihuKXtuLng9KG4ueC1oKS8oZy1oKSpyWzBdLG4ueT0oMS0oYy55P24ueS9jLnk6MSkpKnJbMV19KSxhfXZhciB0PVhvLmxheW91dC5oaWVyYXJjaHkoKS5zb3J0KG51bGwpLnZhbHVlKG51bGwpLGU9YWkscj1bMSwxXSx1PSExO3JldHVybiBuLnNlcGFyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9bnVsbD09KHI9dCksbik6dT9udWxsOnJ9LG4ubm9kZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9bnVsbCE9KHI9dCksbik6dT9yOm51bGx9LFZ1KG4sdCl9LFhvLmxheW91dC50cmVlbWFwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuLHQpe2Zvcih2YXIgZSxyLHU9LTEsaT1uLmxlbmd0aDsrK3U8aTspcj0oZT1uW3VdKS52YWx1ZSooMD50PzA6dCksZS5hcmVhPWlzTmFOKHIpfHwwPj1yPzA6cn1mdW5jdGlvbiB0KGUpe3ZhciBpPWUuY2hpbGRyZW47aWYoaSYmaS5sZW5ndGgpe3ZhciBvLGEsYyxzPWYoZSksbD1bXSxoPWkuc2xpY2UoKSxwPTEvMCx2PSJzbGljZSI9PT1nP3MuZHg6ImRpY2UiPT09Zz9zLmR5OiJzbGljZS1kaWNlIj09PWc/MSZlLmRlcHRoP3MuZHk6cy5keDpNYXRoLm1pbihzLmR4LHMuZHkpO2ZvcihuKGgscy5keCpzLmR5L2UudmFsdWUpLGwuYXJlYT0wOyhjPWgubGVuZ3RoKT4wOylsLnB1c2gobz1oW2MtMV0pLGwuYXJlYSs9by5hcmVhLCJzcXVhcmlmeSIhPT1nfHwoYT1yKGwsdikpPD1wPyhoLnBvcCgpLHA9YSk6KGwuYXJlYS09bC5wb3AoKS5hcmVhLHUobCx2LHMsITEpLHY9TWF0aC5taW4ocy5keCxzLmR5KSxsLmxlbmd0aD1sLmFyZWE9MCxwPTEvMCk7bC5sZW5ndGgmJih1KGwsdixzLCEwKSxsLmxlbmd0aD1sLmFyZWE9MCksaS5mb3JFYWNoKHQpfX1mdW5jdGlvbiBlKHQpe3ZhciByPXQuY2hpbGRyZW47aWYociYmci5sZW5ndGgpe3ZhciBpLG89Zih0KSxhPXIuc2xpY2UoKSxjPVtdO2ZvcihuKGEsby5keCpvLmR5L3QudmFsdWUpLGMuYXJlYT0wO2k9YS5wb3AoKTspYy5wdXNoKGkpLGMuYXJlYSs9aS5hcmVhLG51bGwhPWkueiYmKHUoYyxpLno/by5keDpvLmR5LG8sIWEubGVuZ3RoKSxjLmxlbmd0aD1jLmFyZWE9MCk7ci5mb3JFYWNoKGUpfX1mdW5jdGlvbiByKG4sdCl7Zm9yKHZhciBlLHI9bi5hcmVhLHU9MCxpPTEvMCxvPS0xLGE9bi5sZW5ndGg7KytvPGE7KShlPW5bb10uYXJlYSkmJihpPmUmJihpPWUpLGU+dSYmKHU9ZSkpO3JldHVybiByKj1yLHQqPXQscj9NYXRoLm1heCh0KnUqcC9yLHIvKHQqaSpwKSk6MS8wfWZ1bmN0aW9uIHUobix0LGUscil7dmFyIHUsaT0tMSxvPW4ubGVuZ3RoLGE9ZS54LHM9ZS55LGw9dD9jKG4uYXJlYS90KTowO2lmKHQ9PWUuZHgpe2Zvcigocnx8bD5lLmR5KSYmKGw9ZS5keSk7KytpPG87KXU9bltpXSx1Lng9YSx1Lnk9cyx1LmR5PWwsYSs9dS5keD1NYXRoLm1pbihlLngrZS5keC1hLGw/Yyh1LmFyZWEvbCk6MCk7dS56PSEwLHUuZHgrPWUueCtlLmR4LWEsZS55Kz1sLGUuZHktPWx9ZWxzZXtmb3IoKHJ8fGw+ZS5keCkmJihsPWUuZHgpOysraTxvOyl1PW5baV0sdS54PWEsdS55PXMsdS5keD1sLHMrPXUuZHk9TWF0aC5taW4oZS55K2UuZHktcyxsP2ModS5hcmVhL2wpOjApO3Uuej0hMSx1LmR5Kz1lLnkrZS5keS1zLGUueCs9bCxlLmR4LT1sfX1mdW5jdGlvbiBpKHIpe3ZhciB1PW98fGEociksaT11WzBdO3JldHVybiBpLng9MCxpLnk9MCxpLmR4PXNbMF0saS5keT1zWzFdLG8mJmEucmV2YWx1ZShpKSxuKFtpXSxpLmR4KmkuZHkvaS52YWx1ZSksKG8/ZTp0KShpKSxoJiYobz11KSx1fXZhciBvLGE9WG8ubGF5b3V0LmhpZXJhcmNoeSgpLGM9TWF0aC5yb3VuZCxzPVsxLDFdLGw9bnVsbCxmPVRpLGg9ITEsZz0ic3F1YXJpZnkiLHA9LjUqKDErTWF0aC5zcXJ0KDUpKTtyZXR1cm4gaS5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPW4saSk6c30saS5wYWRkaW5nPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHQodCl7dmFyIGU9bi5jYWxsKGksdCx0LmRlcHRoKTtyZXR1cm4gbnVsbD09ZT9UaSh0KTpxaSh0LCJudW1iZXIiPT10eXBlb2YgZT9bZSxlLGUsZV06ZSl9ZnVuY3Rpb24gZSh0KXtyZXR1cm4gcWkodCxuKX1pZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbDt2YXIgcjtyZXR1cm4gZj1udWxsPT0obD1uKT9UaToiZnVuY3Rpb24iPT0ocj10eXBlb2Ygbik/dDoibnVtYmVyIj09PXI/KG49W24sbixuLG5dLGUpOmUsaX0saS5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1uP01hdGgucm91bmQ6TnVtYmVyLGkpOmMhPU51bWJlcn0saS5zdGlja3k9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9bixvPW51bGwsaSk6aH0saS5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1uLGkpOnB9LGkubW9kZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1uKyIiLGkpOmd9LFZ1KGksYSl9LFhvLnJhbmRvbT17bm9ybWFsOmZ1bmN0aW9uKG4sdCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gMj5lJiYodD0xKSwxPmUmJihuPTApLGZ1bmN0aW9uKCl7dmFyIGUscix1O2RvIGU9MipNYXRoLnJhbmRvbSgpLTEscj0yKk1hdGgucmFuZG9tKCktMSx1PWUqZStyKnI7d2hpbGUoIXV8fHU+MSk7cmV0dXJuIG4rdCplKk1hdGguc3FydCgtMipNYXRoLmxvZyh1KS91KX19LGxvZ05vcm1hbDpmdW5jdGlvbigpe3ZhciBuPVhvLnJhbmRvbS5ub3JtYWwuYXBwbHkoWG8sYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5leHAobigpKX19LGJhdGVzOmZ1bmN0aW9uKG4pe3ZhciB0PVhvLnJhbmRvbS5pcndpbkhhbGwobik7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS9ufX0saXJ3aW5IYWxsOmZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9MDtuPmU7ZSsrKXQrPU1hdGgucmFuZG9tKCk7cmV0dXJuIHR9fX0sWG8uc2NhbGU9e307dmFyIGxzPXtmbG9vcjpidCxjZWlsOmJ0fTtYby5zY2FsZS5saW5lYXI9ZnVuY3Rpb24oKXtyZXR1cm4gSGkoWzAsMV0sWzAsMV0sZnUsITEpfTt2YXIgZnM9e3M6MSxnOjEscDoxLHI6MSxlOjF9O1hvLnNjYWxlLmxvZz1mdW5jdGlvbigpe3JldHVybiAkaShYby5zY2FsZS5saW5lYXIoKS5kb21haW4oWzAsMV0pLDEwLCEwLFsxLDEwXSl9O3ZhciBocz1Yby5mb3JtYXQoIi4wZSIpLGdzPXtmbG9vcjpmdW5jdGlvbihuKXtyZXR1cm4tTWF0aC5jZWlsKC1uKX0sY2VpbDpmdW5jdGlvbihuKXtyZXR1cm4tTWF0aC5mbG9vcigtbil9fTtYby5zY2FsZS5wb3c9ZnVuY3Rpb24oKXtyZXR1cm4gQmkoWG8uc2NhbGUubGluZWFyKCksMSxbMCwxXSl9LFhvLnNjYWxlLnNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWG8uc2NhbGUucG93KCkuZXhwb25lbnQoLjUpfSxYby5zY2FsZS5vcmRpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIEppKFtdLHt0OiJyYW5nZSIsYTpbW11dfSl9LFhvLnNjYWxlLmNhdGVnb3J5MTA9ZnVuY3Rpb24oKXtyZXR1cm4gWG8uc2NhbGUub3JkaW5hbCgpLnJhbmdlKHBzKX0sWG8uc2NhbGUuY2F0ZWdvcnkyMD1mdW5jdGlvbigpe3JldHVybiBYby5zY2FsZS5vcmRpbmFsKCkucmFuZ2UodnMpfSxYby5zY2FsZS5jYXRlZ29yeTIwYj1mdW5jdGlvbigpe3JldHVybiBYby5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoZHMpfSxYby5zY2FsZS5jYXRlZ29yeTIwYz1mdW5jdGlvbigpe3JldHVybiBYby5zY2FsZS5vcmRpbmFsKCkucmFuZ2UobXMpfTt2YXIgcHM9WzIwNjIyNjAsMTY3NDQyMDYsMjkyNDU4OCwxNDAzNDcyOCw5NzI1ODg1LDkxOTcxMzEsMTQ5MDczMzAsODM1NTcxMSwxMjM2OTE4NiwxNTU2MTc1XS5tYXAoaHQpLHZzPVsyMDYyMjYwLDExNDU0NDQwLDE2NzQ0MjA2LDE2NzU5NjcyLDI5MjQ1ODgsMTAwMTg2OTgsMTQwMzQ3MjgsMTY3NTA3NDIsOTcyNTg4NSwxMjk1NTg2MSw5MTk3MTMxLDEyODg1MTQwLDE0OTA3MzMwLDE2MjM0MTk0LDgzNTU3MTEsMTMwOTI4MDcsMTIzNjkxODYsMTQ0MDg1ODksMTU1NjE3NSwxMDQxMDcyNV0ubWFwKGh0KSxkcz1bMzc1MDc3Nyw1Mzk1NjE5LDcwNDA3MTksMTAyNjQyODYsNjUxOTA5Nyw5MjE2NTk0LDExOTE1MTE1LDEzNTU2NjM2LDkyMDI5OTMsMTI0MjY4MDksMTUxODY1MTQsMTUxOTA5MzIsODY2NjE2OSwxMTM1NjQ5MCwxNDA0OTY0MywxNTE3NzM3Miw4MDc3NjgzLDEwODM0MzI0LDEzNTI4NTA5LDE0NTg5NjU0XS5tYXAoaHQpLG1zPVszMjQ0NzMzLDcwNTcxMTAsMTA0MDY2MjUsMTMwMzI0MzEsMTUwOTUwNTMsMTY2MTY3NjQsMTY2MjUyNTksMTY2MzQwMTgsMzI1MzA3Niw3NjUyNDcwLDEwNjA3MDAzLDEzMTAxNTA0LDc2OTUyODEsMTAzOTQzMTIsMTIzNjkzNzIsMTQzNDI4OTEsNjUxMzUwNyw5ODY4OTUwLDEyNDM0ODc3LDE0Mjc3MDgxXS5tYXAoaHQpO1hvLnNjYWxlLnF1YW50aWxlPWZ1bmN0aW9uKCl7cmV0dXJuIEdpKFtdLFtdKX0sWG8uc2NhbGUucXVhbnRpemU9ZnVuY3Rpb24oKXtyZXR1cm4gS2koMCwxLFswLDFdKX0sWG8uc2NhbGUudGhyZXNob2xkPWZ1bmN0aW9uKCl7cmV0dXJuIFFpKFsuNV0sWzAsMV0pfSxYby5zY2FsZS5pZGVudGl0eT1mdW5jdGlvbigpe3JldHVybiBubyhbMCwxXSl9LFhvLnN2Zz17fSxYby5zdmcuYXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbz1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSt5cyxhPXUuYXBwbHkodGhpcyxhcmd1bWVudHMpK3lzLGM9KG8+YSYmKGM9byxvPWEsYT1jKSxhLW8pLHM9U2E+Yz8iMCI6IjEiLGw9TWF0aC5jb3MobyksZj1NYXRoLnNpbihvKSxoPU1hdGguY29zKGEpLGc9TWF0aC5zaW4oYSk7cmV0dXJuIGM+PXhzP24/Ik0wLCIraSsiQSIraSsiLCIraSsiIDAgMSwxIDAsIistaSsiQSIraSsiLCIraSsiIDAgMSwxIDAsIitpKyJNMCwiK24rIkEiK24rIiwiK24rIiAwIDEsMCAwLCIrLW4rIkEiK24rIiwiK24rIiAwIDEsMCAwLCIrbisiWiI6Ik0wLCIraSsiQSIraSsiLCIraSsiIDAgMSwxIDAsIistaSsiQSIraSsiLCIraSsiIDAgMSwxIDAsIitpKyJaIjpuPyJNIitpKmwrIiwiK2kqZisiQSIraSsiLCIraSsiIDAgIitzKyIsMSAiK2kqaCsiLCIraSpnKyJMIituKmgrIiwiK24qZysiQSIrbisiLCIrbisiIDAgIitzKyIsMCAiK24qbCsiLCIrbipmKyJaIjoiTSIraSpsKyIsIitpKmYrIkEiK2krIiwiK2krIiAwICIrcysiLDEgIitpKmgrIiwiK2kqZysiTDAsMCIrIloifXZhciB0PXRvLGU9ZW8scj1ybyx1PXVvO3JldHVybiBuLmlubmVyUmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PV90KGUpLG4pOnR9LG4ub3V0ZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9X3QodCksbik6ZX0sbi5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPV90KHQpLG4pOnJ9LG4uZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9X3QodCksbik6dX0sbi5jZW50cm9pZD1mdW5jdGlvbigpe3ZhciBuPSh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMixpPShyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSt1LmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMit5cztyZXR1cm5bTWF0aC5jb3MoaSkqbixNYXRoLnNpbihpKSpuXX0sbn07dmFyIHlzPS1FYSx4cz1rYS1BYTtYby5zdmcubGluZT1mdW5jdGlvbigpe3JldHVybiBpbyhidCl9O3ZhciBNcz1Yby5tYXAoe2xpbmVhcjpvbywibGluZWFyLWNsb3NlZCI6YW8sc3RlcDpjbywic3RlcC1iZWZvcmUiOnNvLCJzdGVwLWFmdGVyIjpsbyxiYXNpczptbywiYmFzaXMtb3BlbiI6eW8sImJhc2lzLWNsb3NlZCI6eG8sYnVuZGxlOk1vLGNhcmRpbmFsOmdvLCJjYXJkaW5hbC1vcGVuIjpmbywiY2FyZGluYWwtY2xvc2VkIjpobyxtb25vdG9uZTpFb30pO01zLmZvckVhY2goZnVuY3Rpb24obix0KXt0LmtleT1uLHQuY2xvc2VkPS8tY2xvc2VkJC8udGVzdChuKX0pO3ZhciBfcz1bMCwyLzMsMS8zLDBdLGJzPVswLDEvMywyLzMsMF0sd3M9WzAsMS82LDIvMywxLzZdO1hvLnN2Zy5saW5lLnJhZGlhbD1mdW5jdGlvbigpe3ZhciBuPWlvKEFvKTtyZXR1cm4gbi5yYWRpdXM9bi54LGRlbGV0ZSBuLngsbi5hbmdsZT1uLnksZGVsZXRlIG4ueSxufSxzby5yZXZlcnNlPWxvLGxvLnJldmVyc2U9c28sWG8uc3ZnLmFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gQ28oYnQpfSxYby5zdmcuYXJlYS5yYWRpYWw9ZnVuY3Rpb24oKXt2YXIgbj1DbyhBbyk7cmV0dXJuIG4ucmFkaXVzPW4ueCxkZWxldGUgbi54LG4uaW5uZXJSYWRpdXM9bi54MCxkZWxldGUgbi54MCxuLm91dGVyUmFkaXVzPW4ueDEsZGVsZXRlIG4ueDEsbi5hbmdsZT1uLnksZGVsZXRlIG4ueSxuLnN0YXJ0QW5nbGU9bi55MCxkZWxldGUgbi55MCxuLmVuZEFuZ2xlPW4ueTEsZGVsZXRlIG4ueTEsbn0sWG8uc3ZnLmNob3JkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuLGEpe3ZhciBjPXQodGhpcyxpLG4sYSkscz10KHRoaXMsbyxuLGEpO3JldHVybiJNIitjLnAwK3IoYy5yLGMucDEsYy5hMS1jLmEwKSsoZShjLHMpP3UoYy5yLGMucDEsYy5yLGMucDApOnUoYy5yLGMucDEscy5yLHMucDApK3Iocy5yLHMucDEscy5hMS1zLmEwKSt1KHMucixzLnAxLGMucixjLnAwKSkrIloifWZ1bmN0aW9uIHQobix0LGUscil7dmFyIHU9dC5jYWxsKG4sZSxyKSxpPWEuY2FsbChuLHUsciksbz1jLmNhbGwobix1LHIpK3lzLGw9cy5jYWxsKG4sdSxyKSt5cztyZXR1cm57cjppLGEwOm8sYTE6bCxwMDpbaSpNYXRoLmNvcyhvKSxpKk1hdGguc2luKG8pXSxwMTpbaSpNYXRoLmNvcyhsKSxpKk1hdGguc2luKGwpXX19ZnVuY3Rpb24gZShuLHQpe3JldHVybiBuLmEwPT10LmEwJiZuLmExPT10LmExfWZ1bmN0aW9uIHIobix0LGUpe3JldHVybiJBIituKyIsIituKyIgMCAiKyArKGU+U2EpKyIsMSAiK3R9ZnVuY3Rpb24gdShuLHQsZSxyKXtyZXR1cm4iUSAwLDAgIityfXZhciBpPWhyLG89Z3IsYT1ObyxjPXJvLHM9dW87cmV0dXJuIG4ucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPV90KHQpLG4pOmF9LG4uc291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPV90KHQpLG4pOml9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPV90KHQpLG4pOm99LG4uc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1fdCh0KSxuKTpjfSxuLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPV90KHQpLG4pOnN9LG59LFhvLnN2Zy5kaWFnb25hbD1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obix1KXt2YXIgaT10LmNhbGwodGhpcyxuLHUpLG89ZS5jYWxsKHRoaXMsbix1KSxhPShpLnkrby55KS8yLGM9W2kse3g6aS54LHk6YX0se3g6by54LHk6YX0sb107cmV0dXJuIGM9Yy5tYXAociksIk0iK2NbMF0rIkMiK2NbMV0rIiAiK2NbMl0rIiAiK2NbM119dmFyIHQ9aHIsZT1ncixyPUxvO3JldHVybiBuLnNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1fdChlKSxuKTp0fSxuLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1fdCh0KSxuKTplfSxuLnByb2plY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxuKTpyfSxufSxYby5zdmcuZGlhZ29uYWwucmFkaWFsPWZ1bmN0aW9uKCl7dmFyIG49WG8uc3ZnLmRpYWdvbmFsKCksdD1MbyxlPW4ucHJvamVjdGlvbjtyZXR1cm4gbi5wcm9qZWN0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoVG8odD1uKSk6dH0sbn0sWG8uc3ZnLnN5bWJvbD1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obixyKXtyZXR1cm4oU3MuZ2V0KHQuY2FsbCh0aGlzLG4scikpfHxSbykoZS5jYWxsKHRoaXMsbixyKSl9dmFyIHQ9em8sZT1xbztyZXR1cm4gbi50eXBlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PV90KGUpLG4pOnR9LG4uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1fdCh0KSxuKTplfSxufTt2YXIgU3M9WG8ubWFwKHtjaXJjbGU6Um8sY3Jvc3M6ZnVuY3Rpb24obil7dmFyIHQ9TWF0aC5zcXJ0KG4vNSkvMjtyZXR1cm4iTSIrLTMqdCsiLCIrLXQrIkgiKy10KyJWIistMyp0KyJIIit0KyJWIistdCsiSCIrMyp0KyJWIit0KyJIIit0KyJWIiszKnQrIkgiKy10KyJWIit0KyJIIistMyp0KyJaIn0sZGlhbW9uZDpmdW5jdGlvbihuKXt2YXIgdD1NYXRoLnNxcnQobi8oMipDcykpLGU9dCpDcztyZXR1cm4iTTAsIistdCsiTCIrZSsiLDAiKyIgMCwiK3QrIiAiKy1lKyIsMCIrIloifSxzcXVhcmU6ZnVuY3Rpb24obil7dmFyIHQ9TWF0aC5zcXJ0KG4pLzI7cmV0dXJuIk0iKy10KyIsIistdCsiTCIrdCsiLCIrLXQrIiAiK3QrIiwiK3QrIiAiKy10KyIsIit0KyJaIn0sInRyaWFuZ2xlLWRvd24iOmZ1bmN0aW9uKG4pe3ZhciB0PU1hdGguc3FydChuL0FzKSxlPXQqQXMvMjtyZXR1cm4iTTAsIitlKyJMIit0KyIsIistZSsiICIrLXQrIiwiKy1lKyJaIn0sInRyaWFuZ2xlLXVwIjpmdW5jdGlvbihuKXt2YXIgdD1NYXRoLnNxcnQobi9BcyksZT10KkFzLzI7cmV0dXJuIk0wLCIrLWUrIkwiK3QrIiwiK2UrIiAiKy10KyIsIitlKyJaIn19KTtYby5zdmcuc3ltYm9sVHlwZXM9U3Mua2V5cygpO3ZhciBrcyxFcyxBcz1NYXRoLnNxcnQoMyksQ3M9TWF0aC50YW4oMzAqTmEpLE5zPVtdLExzPTA7TnMuY2FsbD1kYS5jYWxsLE5zLmVtcHR5PWRhLmVtcHR5LE5zLm5vZGU9ZGEubm9kZSxOcy5zaXplPWRhLnNpemUsWG8udHJhbnNpdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9rcz9uLnRyYW5zaXRpb24oKTpuOnhhLnRyYW5zaXRpb24oKX0sWG8udHJhbnNpdGlvbi5wcm90b3R5cGU9TnMsTnMuc2VsZWN0PWZ1bmN0aW9uKG4pe3ZhciB0LGUscix1PXRoaXMuaWQsaT1bXTtuPU0obik7Zm9yKHZhciBvPS0xLGE9dGhpcy5sZW5ndGg7KytvPGE7KXtpLnB1c2godD1bXSk7Zm9yKHZhciBjPXRoaXNbb10scz0tMSxsPWMubGVuZ3RoOysrczxsOykocj1jW3NdKSYmKGU9bi5jYWxsKHIsci5fX2RhdGFfXyxzLG8pKT8oIl9fZGF0YV9fImluIHImJihlLl9fZGF0YV9fPXIuX19kYXRhX18pLGpvKGUscyx1LHIuX190cmFuc2l0aW9uX19bdV0pLHQucHVzaChlKSk6dC5wdXNoKG51bGwpfXJldHVybiBEbyhpLHUpfSxOcy5zZWxlY3RBbGw9ZnVuY3Rpb24obil7dmFyIHQsZSxyLHUsaSxvPXRoaXMuaWQsYT1bXTtuPV8obik7Zm9yKHZhciBjPS0xLHM9dGhpcy5sZW5ndGg7KytjPHM7KWZvcih2YXIgbD10aGlzW2NdLGY9LTEsaD1sLmxlbmd0aDsrK2Y8aDspaWYocj1sW2ZdKXtpPXIuX190cmFuc2l0aW9uX19bb10sZT1uLmNhbGwocixyLl9fZGF0YV9fLGYsYyksYS5wdXNoKHQ9W10pO2Zvcih2YXIgZz0tMSxwPWUubGVuZ3RoOysrZzxwOykodT1lW2ddKSYmam8odSxnLG8saSksdC5wdXNoKHUpfXJldHVybiBEbyhhLG8pfSxOcy5maWx0ZXI9ZnVuY3Rpb24obil7dmFyIHQsZSxyLHU9W107ImZ1bmN0aW9uIiE9dHlwZW9mIG4mJihuPXEobikpO2Zvcih2YXIgaT0wLG89dGhpcy5sZW5ndGg7bz5pO2krKyl7dS5wdXNoKHQ9W10pO2Zvcih2YXIgZT10aGlzW2ldLGE9MCxjPWUubGVuZ3RoO2M+YTthKyspKHI9ZVthXSkmJm4uY2FsbChyLHIuX19kYXRhX18sYSxpKSYmdC5wdXNoKHIpfXJldHVybiBEbyh1LHRoaXMuaWQpfSxOcy50d2Vlbj1mdW5jdGlvbihuLHQpe3ZhciBlPXRoaXMuaWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj90aGlzLm5vZGUoKS5fX3RyYW5zaXRpb25fX1tlXS50d2Vlbi5nZXQobik6Uih0aGlzLG51bGw9PXQ/ZnVuY3Rpb24odCl7dC5fX3RyYW5zaXRpb25fX1tlXS50d2Vlbi5yZW1vdmUobil9OmZ1bmN0aW9uKHIpe3IuX190cmFuc2l0aW9uX19bZV0udHdlZW4uc2V0KG4sdCl9KX0sTnMuYXR0cj1mdW5jdGlvbihuLHQpe2Z1bmN0aW9uIGUoKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZShhKX1mdW5jdGlvbiByKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhhLnNwYWNlLGEubG9jYWwpfWZ1bmN0aW9uIHUobil7cmV0dXJuIG51bGw9PW4/ZToobis9IiIsZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMuZ2V0QXR0cmlidXRlKGEpO3JldHVybiBlIT09biYmKHQ9byhlLG4pLGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlKGEsdChuKSl9KX0pfWZ1bmN0aW9uIGkobil7cmV0dXJuIG51bGw9PW4/cjoobis9IiIsZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMuZ2V0QXR0cmlidXRlTlMoYS5zcGFjZSxhLmxvY2FsKTtyZXR1cm4gZSE9PW4mJih0PW8oZSxuKSxmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZU5TKGEuc3BhY2UsYS5sb2NhbCx0KG4pKX0pfSl9aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodCBpbiBuKXRoaXMuYXR0cih0LG5bdF0pO3JldHVybiB0aGlzfXZhciBvPSJ0cmFuc2Zvcm0iPT1uP1J1OmZ1LGE9WG8ubnMucXVhbGlmeShuKTtyZXR1cm4gUG8odGhpcywiYXR0ci4iK24sdCxhLmxvY2FsP2k6dSl9LE5zLmF0dHJUd2Vlbj1mdW5jdGlvbihuLHQpe2Z1bmN0aW9uIGUobixlKXt2YXIgcj10LmNhbGwodGhpcyxuLGUsdGhpcy5nZXRBdHRyaWJ1dGUodSkpO3JldHVybiByJiZmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZSh1LHIobikpfX1mdW5jdGlvbiByKG4sZSl7dmFyIHI9dC5jYWxsKHRoaXMsbixlLHRoaXMuZ2V0QXR0cmlidXRlTlModS5zcGFjZSx1LmxvY2FsKSk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlTlModS5zcGFjZSx1LmxvY2FsLHIobikpfX12YXIgdT1Yby5ucy5xdWFsaWZ5KG4pO3JldHVybiB0aGlzLnR3ZWVuKCJhdHRyLiIrbix1LmxvY2FsP3I6ZSl9LE5zLnN0eWxlPWZ1bmN0aW9uKG4sdCxlKXtmdW5jdGlvbiByKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuKX1mdW5jdGlvbiB1KHQpe3JldHVybiBudWxsPT10P3I6KHQrPSIiLGZ1bmN0aW9uKCl7dmFyIHIsdT1Hby5nZXRDb21wdXRlZFN0eWxlKHRoaXMsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKTtyZXR1cm4gdSE9PXQmJihyPWZ1KHUsdCksZnVuY3Rpb24odCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShuLHIodCksZSl9KX0pfXZhciBpPWFyZ3VtZW50cy5sZW5ndGg7aWYoMz5pKXtpZigic3RyaW5nIiE9dHlwZW9mIG4pezI+aSYmKHQ9IiIpO2ZvcihlIGluIG4pdGhpcy5zdHlsZShlLG5bZV0sdCk7cmV0dXJuIHRoaXN9ZT0iIn1yZXR1cm4gUG8odGhpcywic3R5bGUuIituLHQsdSl9LE5zLnN0eWxlVHdlZW49ZnVuY3Rpb24obix0LGUpe2Z1bmN0aW9uIHIocix1KXt2YXIgaT10LmNhbGwodGhpcyxyLHUsR28uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLG51bGwpLmdldFByb3BlcnR5VmFsdWUobikpO3JldHVybiBpJiZmdW5jdGlvbih0KXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KG4saSh0KSxlKX19cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MyYmKGU9IiIpLHRoaXMudHdlZW4oInN0eWxlLiIrbixyKX0sTnMudGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gUG8odGhpcywidGV4dCIsbixVbyl9LE5zLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goImVuZC50cmFuc2l0aW9uIixmdW5jdGlvbigpe3ZhciBuO3RoaXMuX190cmFuc2l0aW9uX18uY291bnQ8MiYmKG49dGhpcy5wYXJlbnROb2RlKSYmbi5yZW1vdmVDaGlsZCh0aGlzKX0pfSxOcy5lYXNlPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuaWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MT90aGlzLm5vZGUoKS5fX3RyYW5zaXRpb25fX1t0XS5lYXNlOigiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49WG8uZWFzZS5hcHBseShYbyxhcmd1bWVudHMpKSxSKHRoaXMsZnVuY3Rpb24oZSl7ZS5fX3RyYW5zaXRpb25fX1t0XS5lYXNlPW59KSl9LE5zLmRlbGF5PWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuaWQ7cmV0dXJuIFIodGhpcywiZnVuY3Rpb24iPT10eXBlb2Ygbj9mdW5jdGlvbihlLHIsdSl7ZS5fX3RyYW5zaXRpb25fX1t0XS5kZWxheT0rbi5jYWxsKGUsZS5fX2RhdGFfXyxyLHUpfToobj0rbixmdW5jdGlvbihlKXtlLl9fdHJhbnNpdGlvbl9fW3RdLmRlbGF5PW59KSl9LE5zLmR1cmF0aW9uPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuaWQ7cmV0dXJuIFIodGhpcywiZnVuY3Rpb24iPT10eXBlb2Ygbj9mdW5jdGlvbihlLHIsdSl7ZS5fX3RyYW5zaXRpb25fX1t0XS5kdXJhdGlvbj1NYXRoLm1heCgxLG4uY2FsbChlLGUuX19kYXRhX18scix1KSl9OihuPU1hdGgubWF4KDEsbiksZnVuY3Rpb24oZSl7ZS5fX3RyYW5zaXRpb25fX1t0XS5kdXJhdGlvbj1ufSkpfSxOcy5lYWNoPWZ1bmN0aW9uKG4sdCl7dmFyIGU9dGhpcy5pZDtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciByPUVzLHU9a3M7a3M9ZSxSKHRoaXMsZnVuY3Rpb24odCxyLHUpe0VzPXQuX190cmFuc2l0aW9uX19bZV0sbi5jYWxsKHQsdC5fX2RhdGFfXyxyLHUpfSksRXM9cixrcz11fWVsc2UgUih0aGlzLGZ1bmN0aW9uKHIpe3ZhciB1PXIuX190cmFuc2l0aW9uX19bZV07KHUuZXZlbnR8fCh1LmV2ZW50PVhvLmRpc3BhdGNoKCJzdGFydCIsImVuZCIpKSkub24obix0KX0pO3JldHVybiB0aGlzfSxOcy50cmFuc2l0aW9uPWZ1bmN0aW9uKCl7Zm9yKHZhciBuLHQsZSxyLHU9dGhpcy5pZCxpPSsrTHMsbz1bXSxhPTAsYz10aGlzLmxlbmd0aDtjPmE7YSsrKXtvLnB1c2gobj1bXSk7Zm9yKHZhciB0PXRoaXNbYV0scz0wLGw9dC5sZW5ndGg7bD5zO3MrKykoZT10W3NdKSYmKHI9T2JqZWN0LmNyZWF0ZShlLl9fdHJhbnNpdGlvbl9fW3VdKSxyLmRlbGF5Kz1yLmR1cmF0aW9uLGpvKGUscyxpLHIpKSxuLnB1c2goZSl9cmV0dXJuIERvKG8saSl9LFhvLnN2Zy5heGlzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuKXtuLmVhY2goZnVuY3Rpb24oKXt2YXIgbixzPVhvLnNlbGVjdCh0aGlzKSxsPXRoaXMuX19jaGFydF9ffHxlLGY9dGhpcy5fX2NoYXJ0X189ZS5jb3B5KCksaD1udWxsPT1jP2YudGlja3M/Zi50aWNrcy5hcHBseShmLGEpOmYuZG9tYWluKCk6YyxnPW51bGw9PXQ/Zi50aWNrRm9ybWF0P2YudGlja0Zvcm1hdC5hcHBseShmLGEpOmJ0OnQscD1zLnNlbGVjdEFsbCgiLnRpY2siKS5kYXRhKGgsZiksdj1wLmVudGVyKCkuaW5zZXJ0KCJnIiwiLmRvbWFpbiIpLmF0dHIoImNsYXNzIiwidGljayIpLnN0eWxlKCJvcGFjaXR5IixBYSksZD1Yby50cmFuc2l0aW9uKHAuZXhpdCgpKS5zdHlsZSgib3BhY2l0eSIsQWEpLnJlbW92ZSgpLG09WG8udHJhbnNpdGlvbihwKS5zdHlsZSgib3BhY2l0eSIsMSkseT1SaShmKSx4PXMuc2VsZWN0QWxsKCIuZG9tYWluIikuZGF0YShbMF0pLE09KHguZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsImRvbWFpbiIpLFhvLnRyYW5zaXRpb24oeCkpO3YuYXBwZW5kKCJsaW5lIiksdi5hcHBlbmQoInRleHQiKTt2YXIgXz12LnNlbGVjdCgibGluZSIpLGI9bS5zZWxlY3QoImxpbmUiKSx3PXAuc2VsZWN0KCJ0ZXh0IikudGV4dChnKSxTPXYuc2VsZWN0KCJ0ZXh0Iiksaz1tLnNlbGVjdCgidGV4dCIpO3N3aXRjaChyKXtjYXNlImJvdHRvbSI6bj1IbyxfLmF0dHIoInkyIix1KSxTLmF0dHIoInkiLE1hdGgubWF4KHUsMCkrbyksYi5hdHRyKCJ4MiIsMCkuYXR0cigieTIiLHUpLGsuYXR0cigieCIsMCkuYXR0cigieSIsTWF0aC5tYXgodSwwKStvKSx3LmF0dHIoImR5IiwiLjcxZW0iKS5zdHlsZSgidGV4dC1hbmNob3IiLCJtaWRkbGUiKSxNLmF0dHIoImQiLCJNIit5WzBdKyIsIitpKyJWMEgiK3lbMV0rIlYiK2kpO2JyZWFrO2Nhc2UidG9wIjpuPUhvLF8uYXR0cigieTIiLC11KSxTLmF0dHIoInkiLC0oTWF0aC5tYXgodSwwKStvKSksYi5hdHRyKCJ4MiIsMCkuYXR0cigieTIiLC11KSxrLmF0dHIoIngiLDApLmF0dHIoInkiLC0oTWF0aC5tYXgodSwwKStvKSksdy5hdHRyKCJkeSIsIjBlbSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLE0uYXR0cigiZCIsIk0iK3lbMF0rIiwiKy1pKyJWMEgiK3lbMV0rIlYiKy1pKTticmVhaztjYXNlImxlZnQiOm49Rm8sXy5hdHRyKCJ4MiIsLXUpLFMuYXR0cigieCIsLShNYXRoLm1heCh1LDApK28pKSxiLmF0dHIoIngyIiwtdSkuYXR0cigieTIiLDApLGsuYXR0cigieCIsLShNYXRoLm1heCh1LDApK28pKS5hdHRyKCJ5IiwwKSx3LmF0dHIoImR5IiwiLjMyZW0iKS5zdHlsZSgidGV4dC1hbmNob3IiLCJlbmQiKSxNLmF0dHIoImQiLCJNIistaSsiLCIreVswXSsiSDBWIit5WzFdKyJIIistaSk7YnJlYWs7Y2FzZSJyaWdodCI6bj1GbyxfLmF0dHIoIngyIix1KSxTLmF0dHIoIngiLE1hdGgubWF4KHUsMCkrbyksYi5hdHRyKCJ4MiIsdSkuYXR0cigieTIiLDApLGsuYXR0cigieCIsTWF0aC5tYXgodSwwKStvKS5hdHRyKCJ5IiwwKSx3LmF0dHIoImR5IiwiLjMyZW0iKS5zdHlsZSgidGV4dC1hbmNob3IiLCJzdGFydCIpLE0uYXR0cigiZCIsIk0iK2krIiwiK3lbMF0rIkgwViIreVsxXSsiSCIraSl9aWYoZi5yYW5nZUJhbmQpe3ZhciBFPWYsQT1FLnJhbmdlQmFuZCgpLzI7bD1mPWZ1bmN0aW9uKG4pe3JldHVybiBFKG4pK0F9fWVsc2UgbC5yYW5nZUJhbmQ/bD1mOmQuY2FsbChuLGYpO3YuY2FsbChuLGwpLG0uY2FsbChuLGYpfSl9dmFyIHQsZT1Yby5zY2FsZS5saW5lYXIoKSxyPVRzLHU9NixpPTYsbz0zLGE9WzEwXSxjPW51bGw7cmV0dXJuIG4uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLm9yaWVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10IGluIHFzP3QrIiI6VHMsbik6cn0sbi50aWNrcz1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPWFyZ3VtZW50cyxuKTphfSxuLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCxuKTpjfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGU/KHU9K3QsaT0rYXJndW1lbnRzW2UtMV0sbik6dX0sbi5pbm5lclRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LG4pOnV9LG4ub3V0ZXJUaWNrU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCxuKTppfSxuLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LG4pOm99LG4udGlja1N1YmRpdmlkZT1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoJiZufSxufTt2YXIgVHM9ImJvdHRvbSIscXM9e3RvcDoxLHJpZ2h0OjEsYm90dG9tOjEsbGVmdDoxfTtYby5zdmcuYnJ1c2g9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGkpe2kuZWFjaChmdW5jdGlvbigpe3ZhciBpPVhvLnNlbGVjdCh0aGlzKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpLm9uKCJtb3VzZWRvd24uYnJ1c2giLHUpLm9uKCJ0b3VjaHN0YXJ0LmJydXNoIix1KSxvPWkuc2VsZWN0QWxsKCIuYmFja2dyb3VuZCIpLmRhdGEoWzBdKTtvLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJiYWNrZ3JvdW5kIikuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKS5zdHlsZSgiY3Vyc29yIiwiY3Jvc3NoYWlyIiksaS5zZWxlY3RBbGwoIi5leHRlbnQiKS5kYXRhKFswXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsImV4dGVudCIpLnN0eWxlKCJjdXJzb3IiLCJtb3ZlIik7dmFyIGE9aS5zZWxlY3RBbGwoIi5yZXNpemUiKS5kYXRhKHAsYnQpO2EuZXhpdCgpLnJlbW92ZSgpLGEuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24obil7cmV0dXJuInJlc2l6ZSAiK259KS5zdHlsZSgiY3Vyc29yIixmdW5jdGlvbihuKXtyZXR1cm4genNbbl19KS5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IixmdW5jdGlvbihuKXtyZXR1cm4vW2V3XSQvLnRlc3Qobik/LTM6bnVsbH0pLmF0dHIoInkiLGZ1bmN0aW9uKG4pe3JldHVybi9eW25zXS8udGVzdChuKT8tMzpudWxsfSkuYXR0cigid2lkdGgiLDYpLmF0dHIoImhlaWdodCIsNikuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKSxhLnN0eWxlKCJkaXNwbGF5IixuLmVtcHR5KCk/Im5vbmUiOm51bGwpO3ZhciBsLGY9WG8udHJhbnNpdGlvbihpKSxoPVhvLnRyYW5zaXRpb24obyk7YyYmKGw9UmkoYyksaC5hdHRyKCJ4IixsWzBdKS5hdHRyKCJ3aWR0aCIsbFsxXS1sWzBdKSxlKGYpKSxzJiYobD1SaShzKSxoLmF0dHIoInkiLGxbMF0pLmF0dHIoImhlaWdodCIsbFsxXS1sWzBdKSxyKGYpKSx0KGYpfSl9ZnVuY3Rpb24gdChuKXtuLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24obil7cmV0dXJuInRyYW5zbGF0ZSgiK2xbKy9lJC8udGVzdChuKV0rIiwiK2ZbKy9ecy8udGVzdChuKV0rIikifSl9ZnVuY3Rpb24gZShuKXtuLnNlbGVjdCgiLmV4dGVudCIpLmF0dHIoIngiLGxbMF0pLG4uc2VsZWN0QWxsKCIuZXh0ZW50LC5uPnJlY3QsLnM+cmVjdCIpLmF0dHIoIndpZHRoIixsWzFdLWxbMF0pfWZ1bmN0aW9uIHIobil7bi5zZWxlY3QoIi5leHRlbnQiKS5hdHRyKCJ5IixmWzBdKSxuLnNlbGVjdEFsbCgiLmV4dGVudCwuZT5yZWN0LC53PnJlY3QiKS5hdHRyKCJoZWlnaHQiLGZbMV0tZlswXSl9ZnVuY3Rpb24gdSgpe2Z1bmN0aW9uIHUoKXszMj09WG8uZXZlbnQua2V5Q29kZSYmKEN8fCh4PW51bGwsTFswXS09bFsxXSxMWzFdLT1mWzFdLEM9MiksZCgpKX1mdW5jdGlvbiBwKCl7MzI9PVhvLmV2ZW50LmtleUNvZGUmJjI9PUMmJihMWzBdKz1sWzFdLExbMV0rPWZbMV0sQz0wLGQoKSl9ZnVuY3Rpb24gdigpe3ZhciBuPVhvLm1vdXNlKF8pLHU9ITE7TSYmKG5bMF0rPU1bMF0sblsxXSs9TVsxXSksQ3x8KFhvLmV2ZW50LmFsdEtleT8oeHx8KHg9WyhsWzBdK2xbMV0pLzIsKGZbMF0rZlsxXSkvMl0pLExbMF09bFsrKG5bMF08eFswXSldLExbMV09ZlsrKG5bMV08eFsxXSldKTp4PW51bGwpLEUmJm0obixjLDApJiYoZShTKSx1PSEwKSxBJiZtKG4scywxKSYmKHIoUyksdT0hMCksdSYmKHQoUyksdyh7dHlwZToiYnJ1c2giLG1vZGU6Qz8ibW92ZSI6InJlc2l6ZSJ9KSl9ZnVuY3Rpb24gbShuLHQsZSl7dmFyIHIsdSxhPVJpKHQpLGM9YVswXSxzPWFbMV0scD1MW2VdLHY9ZT9mOmwsZD12WzFdLXZbMF07cmV0dXJuIEMmJihjLT1wLHMtPWQrcCkscj0oZT9nOmgpP01hdGgubWF4KGMsTWF0aC5taW4ocyxuW2VdKSk6bltlXSxDP3U9KHIrPXApK2Q6KHgmJihwPU1hdGgubWF4KGMsTWF0aC5taW4ocywyKnhbZV0tcikpKSxyPnA/KHU9cixyPXApOnU9cCksdlswXSE9cnx8dlsxXSE9dT8oZT9vPW51bGw6aT1udWxsLHZbMF09cix2WzFdPXUsITApOnZvaWQgMH1mdW5jdGlvbiB5KCl7digpLFMuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuc2VsZWN0QWxsKCIucmVzaXplIikuc3R5bGUoImRpc3BsYXkiLG4uZW1wdHkoKT8ibm9uZSI6bnVsbCksWG8uc2VsZWN0KCJib2R5Iikuc3R5bGUoImN1cnNvciIsbnVsbCksVC5vbigibW91c2Vtb3ZlLmJydXNoIixudWxsKS5vbigibW91c2V1cC5icnVzaCIsbnVsbCkub24oInRvdWNobW92ZS5icnVzaCIsbnVsbCkub24oInRvdWNoZW5kLmJydXNoIixudWxsKS5vbigia2V5ZG93bi5icnVzaCIsbnVsbCkub24oImtleXVwLmJydXNoIixudWxsKSxOKCksdyh7dHlwZToiYnJ1c2hlbmQifSl9dmFyIHgsTSxfPXRoaXMsYj1Yby5zZWxlY3QoWG8uZXZlbnQudGFyZ2V0KSx3PWEub2YoXyxhcmd1bWVudHMpLFM9WG8uc2VsZWN0KF8pLGs9Yi5kYXR1bSgpLEU9IS9eKG58cykkLy50ZXN0KGspJiZjLEE9IS9eKGV8dykkLy50ZXN0KGspJiZzLEM9Yi5jbGFzc2VkKCJleHRlbnQiKSxOPU8oKSxMPVhvLm1vdXNlKF8pLFQ9WG8uc2VsZWN0KEdvKS5vbigia2V5ZG93bi5icnVzaCIsdSkub24oImtleXVwLmJydXNoIixwKTtpZihYby5ldmVudC5jaGFuZ2VkVG91Y2hlcz9ULm9uKCJ0b3VjaG1vdmUuYnJ1c2giLHYpLm9uKCJ0b3VjaGVuZC5icnVzaCIseSk6VC5vbigibW91c2Vtb3ZlLmJydXNoIix2KS5vbigibW91c2V1cC5icnVzaCIseSksUy5pbnRlcnJ1cHQoKS5zZWxlY3RBbGwoIioiKS5pbnRlcnJ1cHQoKSxDKUxbMF09bFswXS1MWzBdLExbMV09ZlswXS1MWzFdO2Vsc2UgaWYoayl7dmFyIHE9Ky93JC8udGVzdChrKSx6PSsvXm4vLnRlc3Qoayk7TT1bbFsxLXFdLUxbMF0sZlsxLXpdLUxbMV1dLExbMF09bFtxXSxMWzFdPWZbel19ZWxzZSBYby5ldmVudC5hbHRLZXkmJih4PUwuc2xpY2UoKSk7Uy5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJub25lIikuc2VsZWN0QWxsKCIucmVzaXplIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLFhvLnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLGIuc3R5bGUoImN1cnNvciIpKSx3KHt0eXBlOiJicnVzaHN0YXJ0In0pLHYoKX12YXIgaSxvLGE9eShuLCJicnVzaHN0YXJ0IiwiYnJ1c2giLCJicnVzaGVuZCIpLGM9bnVsbCxzPW51bGwsbD1bMCwwXSxmPVswLDBdLGg9ITAsZz0hMCxwPVJzWzBdO3JldHVybiBuLmV2ZW50PWZ1bmN0aW9uKG4pe24uZWFjaChmdW5jdGlvbigpe3ZhciBuPWEub2YodGhpcyxhcmd1bWVudHMpLHQ9e3g6bCx5OmYsaTppLGo6b30sZT10aGlzLl9fY2hhcnRfX3x8dDt0aGlzLl9fY2hhcnRfXz10LGtzP1hvLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZWFjaCgic3RhcnQuYnJ1c2giLGZ1bmN0aW9uKCl7aT1lLmksbz1lLmosbD1lLngsZj1lLnksbih7dHlwZToiYnJ1c2hzdGFydCJ9KX0pLnR3ZWVuKCJicnVzaDpicnVzaCIsZnVuY3Rpb24oKXt2YXIgZT1odShsLHQueCkscj1odShmLHQueSk7cmV0dXJuIGk9bz1udWxsLGZ1bmN0aW9uKHUpe2w9dC54PWUodSksZj10Lnk9cih1KSxuKHt0eXBlOiJicnVzaCIsbW9kZToicmVzaXplIn0pfX0pLmVhY2goImVuZC5icnVzaCIsZnVuY3Rpb24oKXtpPXQuaSxvPXQuaixuKHt0eXBlOiJicnVzaCIsbW9kZToicmVzaXplIn0pLG4oe3R5cGU6ImJydXNoZW5kIn0pfSk6KG4oe3R5cGU6ImJydXNoc3RhcnQifSksbih7dHlwZToiYnJ1c2giLG1vZGU6InJlc2l6ZSJ9KSxuKHt0eXBlOiJicnVzaGVuZCJ9KSl9KX0sbi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQscD1Sc1shYzw8MXwhc10sbik6Y30sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQscD1Sc1shYzw8MXwhc10sbik6c30sbi5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYyYmcz8oaD0hIXRbMF0sZz0hIXRbMV0pOmM/aD0hIXQ6cyYmKGc9ISF0KSxuKTpjJiZzP1toLGddOmM/aDpzP2c6bnVsbH0sbi5leHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGUscix1LGEsaDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYyYmKGU9dFswXSxyPXRbMV0scyYmKGU9ZVswXSxyPXJbMF0pLGk9W2Uscl0sYy5pbnZlcnQmJihlPWMoZSkscj1jKHIpKSxlPnImJihoPWUsZT1yLHI9aCksKGUhPWxbMF18fHIhPWxbMV0pJiYobD1bZSxyXSkpLHMmJih1PXRbMF0sYT10WzFdLGMmJih1PXVbMV0sYT1hWzFdKSxvPVt1LGFdLHMuaW52ZXJ0JiYodT1zKHUpLGE9cyhhKSksdT5hJiYoaD11LHU9YSxhPWgpLCh1IT1mWzBdfHxhIT1mWzFdKSYmKGY9W3UsYV0pKSxuKTooYyYmKGk/KGU9aVswXSxyPWlbMV0pOihlPWxbMF0scj1sWzFdLGMuaW52ZXJ0JiYoZT1jLmludmVydChlKSxyPWMuaW52ZXJ0KHIpKSxlPnImJihoPWUsZT1yLHI9aCkpKSxzJiYobz8odT1vWzBdLGE9b1sxXSk6KHU9ZlswXSxhPWZbMV0scy5pbnZlcnQmJih1PXMuaW52ZXJ0KHUpLGE9cy5pbnZlcnQoYSkpLHU+YSYmKGg9dSx1PWEsYT1oKSkpLGMmJnM/W1tlLHVdLFtyLGFdXTpjP1tlLHJdOnMmJlt1LGFdKX0sbi5jbGVhcj1mdW5jdGlvbigpe3JldHVybiBuLmVtcHR5KCl8fChsPVswLDBdLGY9WzAsMF0saT1vPW51bGwpLG59LG4uZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hIWMmJmxbMF09PWxbMV18fCEhcyYmZlswXT09ZlsxXX0sWG8ucmViaW5kKG4sYSwib24iKX07dmFyIHpzPXtuOiJucy1yZXNpemUiLGU6ImV3LXJlc2l6ZSIsczoibnMtcmVzaXplIix3OiJldy1yZXNpemUiLG53OiJud3NlLXJlc2l6ZSIsbmU6Im5lc3ctcmVzaXplIixzZToibndzZS1yZXNpemUiLHN3OiJuZXN3LXJlc2l6ZSJ9LFJzPVtbIm4iLCJlIiwicyIsInciLCJudyIsIm5lIiwic2UiLCJzdyJdLFsiZSIsInciXSxbIm4iLCJzIl0sW11dLERzPXRjLmZvcm1hdD1hYy50aW1lRm9ybWF0LFBzPURzLnV0YyxVcz1QcygiJVktJW0tJWRUJUg6JU06JVMuJUxaIik7RHMuaXNvPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nJiYrbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWiIpP09vOlVzLE9vLnBhcnNlPWZ1bmN0aW9uKG4pe3ZhciB0PW5ldyBEYXRlKG4pO3JldHVybiBpc05hTih0KT9udWxsOnR9LE9vLnRvU3RyaW5nPVVzLnRvU3RyaW5nLHRjLnNlY29uZD1SdChmdW5jdGlvbihuKXtyZXR1cm4gbmV3IGVjKDFlMypNYXRoLmZsb29yKG4vMWUzKSl9LGZ1bmN0aW9uKG4sdCl7bi5zZXRUaW1lKG4uZ2V0VGltZSgpKzFlMypNYXRoLmZsb29yKHQpKX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0U2Vjb25kcygpfSksdGMuc2Vjb25kcz10Yy5zZWNvbmQucmFuZ2UsdGMuc2Vjb25kcy51dGM9dGMuc2Vjb25kLnV0Yy5yYW5nZSx0Yy5taW51dGU9UnQoZnVuY3Rpb24obil7cmV0dXJuIG5ldyBlYyg2ZTQqTWF0aC5mbG9vcihuLzZlNCkpfSxmdW5jdGlvbihuLHQpe24uc2V0VGltZShuLmdldFRpbWUoKSs2ZTQqTWF0aC5mbG9vcih0KSl9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldE1pbnV0ZXMoKX0pLHRjLm1pbnV0ZXM9dGMubWludXRlLnJhbmdlLHRjLm1pbnV0ZXMudXRjPXRjLm1pbnV0ZS51dGMucmFuZ2UsdGMuaG91cj1SdChmdW5jdGlvbihuKXt2YXIgdD1uLmdldFRpbWV6b25lT2Zmc2V0KCkvNjA7cmV0dXJuIG5ldyBlYygzNmU1KihNYXRoLmZsb29yKG4vMzZlNS10KSt0KSl9LGZ1bmN0aW9uKG4sdCl7bi5zZXRUaW1lKG4uZ2V0VGltZSgpKzM2ZTUqTWF0aC5mbG9vcih0KSl9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldEhvdXJzKCl9KSx0Yy5ob3Vycz10Yy5ob3VyLnJhbmdlLHRjLmhvdXJzLnV0Yz10Yy5ob3VyLnV0Yy5yYW5nZSx0Yy5tb250aD1SdChmdW5jdGlvbihuKXtyZXR1cm4gbj10Yy5kYXkobiksbi5zZXREYXRlKDEpLG59LGZ1bmN0aW9uKG4sdCl7bi5zZXRNb250aChuLmdldE1vbnRoKCkrdCl9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldE1vbnRoKCl9KSx0Yy5tb250aHM9dGMubW9udGgucmFuZ2UsdGMubW9udGhzLnV0Yz10Yy5tb250aC51dGMucmFuZ2U7dmFyIGpzPVsxZTMsNWUzLDE1ZTMsM2U0LDZlNCwzZTUsOWU1LDE4ZTUsMzZlNSwxMDhlNSwyMTZlNSw0MzJlNSw4NjRlNSwxNzI4ZTUsNjA0OGU1LDI1OTJlNiw3Nzc2ZTYsMzE1MzZlNl0sSHM9W1t0Yy5zZWNvbmQsMV0sW3RjLnNlY29uZCw1XSxbdGMuc2Vjb25kLDE1XSxbdGMuc2Vjb25kLDMwXSxbdGMubWludXRlLDFdLFt0Yy5taW51dGUsNV0sW3RjLm1pbnV0ZSwxNV0sW3RjLm1pbnV0ZSwzMF0sW3RjLmhvdXIsMV0sW3RjLmhvdXIsM10sW3RjLmhvdXIsNl0sW3RjLmhvdXIsMTJdLFt0Yy5kYXksMV0sW3RjLmRheSwyXSxbdGMud2VlaywxXSxbdGMubW9udGgsMV0sW3RjLm1vbnRoLDNdLFt0Yy55ZWFyLDFdXSxGcz1Ecy5tdWx0aShbWyIuJUwiLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldE1pbGxpc2Vjb25kcygpfV0sWyI6JVMiLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldFNlY29uZHMoKX1dLFsiJUk6JU0iLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldE1pbnV0ZXMoKX1dLFsiJUkgJXAiLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldEhvdXJzKCl9XSxbIiVhICVkIixmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXREYXkoKSYmMSE9bi5nZXREYXRlKCl9XSxbIiViICVkIixmdW5jdGlvbihuKXtyZXR1cm4gMSE9bi5nZXREYXRlKCl9XSxbIiVCIixmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRNb250aCgpfV0sWyIlWSIsYmVdXSksT3M9e3JhbmdlOmZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gWG8ucmFuZ2UoTWF0aC5jZWlsKG4vZSkqZSwrdCxlKS5tYXAoSW8pfSxmbG9vcjpidCxjZWlsOmJ0fTtIcy55ZWFyPXRjLnllYXIsdGMuc2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gWW8oWG8uc2NhbGUubGluZWFyKCksSHMsRnMpfTt2YXIgWXM9SHMubWFwKGZ1bmN0aW9uKG4pe3JldHVybltuWzBdLnV0YyxuWzFdXX0pLElzPVBzLm11bHRpKFtbIi4lTCIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDTWlsbGlzZWNvbmRzKCl9XSxbIjolUyIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDU2Vjb25kcygpfV0sWyIlSTolTSIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDTWludXRlcygpfV0sWyIlSSAlcCIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDSG91cnMoKX1dLFsiJWEgJWQiLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldFVUQ0RheSgpJiYxIT1uLmdldFVUQ0RhdGUoKX1dLFsiJWIgJWQiLGZ1bmN0aW9uKG4pe3JldHVybiAxIT1uLmdldFVUQ0RhdGUoKX1dLFsiJUIiLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldFVUQ01vbnRoKCl9XSxbIiVZIixiZV1dKTtZcy55ZWFyPXRjLnllYXIudXRjLHRjLnNjYWxlLnV0Yz1mdW5jdGlvbigpe3JldHVybiBZbyhYby5zY2FsZS5saW5lYXIoKSxZcyxJcyl9LFhvLnRleHQ9d3QoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVzcG9uc2VUZXh0fSksWG8uanNvbj1mdW5jdGlvbihuLHQpe3JldHVybiBTdChuLCJhcHBsaWNhdGlvbi9qc29uIixabyx0KX0sWG8uaHRtbD1mdW5jdGlvbihuLHQpe3JldHVybiBTdChuLCJ0ZXh0L2h0bWwiLFZvLHQpfSxYby54bWw9d3QoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVzcG9uc2VYTUx9KSwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShYbyk6Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPVhvOnRoaXMuZDM9WG99KCk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5iLnVpJyxmdW5jdGlvbigpe3ZhciBUSElTX0RPQz1kb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7dmFyIHN2Z05TPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7dmFyIGhpZ2hsaWdodElkQm9vc3Q9dHIuYi51aS5nZXRDb2xvclBhbGV0dGVIaWdobGlnaHRJZEJvb3N0KCk7ZnVuY3Rpb24gZ2V0Q29sb3JPZktleShrZXksc2VsZWN0ZWQpe3ZhciBpZD10ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrZXkpO2lmKHNlbGVjdGVkKQotaWQrPWhpZ2hsaWdodElkQm9vc3Q7cmV0dXJuIHRyLmIudWkuZ2V0Q29sb3JQYWxldHRlKClbaWRdO30KLXZhciBDaGFydEJhc2U9dHIuYi51aS5kZWZpbmUoJ3N2ZycsdW5kZWZpbmVkLHN2Z05TKTtDaGFydEJhc2UucHJvdG90eXBlPXtfX3Byb3RvX186SFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSxkZWNvcmF0ZTpmdW5jdGlvbigpe3RoaXMuY2xhc3NMaXN0LmFkZCgnY2hhcnQtYmFzZScpO3RoaXMuY2hhcnRUaXRsZV89dW5kZWZpbmVkO3RoaXMuZGF0YV89dW5kZWZpbmVkO3RoaXMuc2VyaWVzS2V5c189dW5kZWZpbmVkO3RoaXMud2lkdGhfPTQwMDt0aGlzLmhlaWdodF89MzAwO3ZhciB0ZW1wbGF0ZT1USElTX0RPQy5xdWVyeVNlbGVjdG9yKCcjY2hhcnQtYmFzZS10ZW1wbGF0ZScpO3ZhciBzdmdFbD10ZW1wbGF0ZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO2Zvcih2YXIgaT0wO2k8c3ZnRWwuY2hpbGRyZW4ubGVuZ3RoO2krKykKK0Nocm9tZU1vZGVsSGVscGVyLnByb3RvdHlwZT17Z2V0IHBpZCgpe3Rocm93IG5ldyBFcnJvcignd29haCcpO30sZ2V0IHByb2Nlc3MoKXt0aHJvdyBuZXcgRXJyb3IoJ3dvYWgnKTt9LGdldCBtb2RlbCgpe3JldHVybiB0aGlzLm1vZGVsXzt9LGdldCBicm93c2VyUHJvY2Vzcygpe3JldHVybiB0aGlzLmJyb3dzZXJQcm9jZXNzXzt9LGdldCBicm93c2VySGVscGVyKCl7cmV0dXJuIHRoaXMuYnJvd3NlckhlbHBlcl87fSxnZXQgcmVuZGVyZXJIZWxwZXJzKCl7cmV0dXJuIHRoaXMucmVuZGVyZXJIZWxwZXJzXzt9fTtyZXR1cm57Q2hyb21lTW9kZWxIZWxwZXI6Q2hyb21lTW9kZWxIZWxwZXJ9O30pOyFmdW5jdGlvbigpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG51bGwhPW4mJiFpc05hTihuKX1mdW5jdGlvbiB0KG4pe3JldHVybiBuLmxlbmd0aH1mdW5jdGlvbiBlKG4pe2Zvcih2YXIgdD0xO24qdCUxOyl0Kj0xMDtyZXR1cm4gdH1mdW5jdGlvbiByKG4sdCl7dHJ5e2Zvcih2YXIgZSBpbiB0KU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxlLHt2YWx1ZTp0W2VdLGVudW1lcmFibGU6ITF9KX1jYXRjaChyKXtuLnByb3RvdHlwZT10fX1mdW5jdGlvbiB1KCl7fWZ1bmN0aW9uIGkobil7cmV0dXJuIGFhK24gaW4gdGhpc31mdW5jdGlvbiBvKG4pe3JldHVybiBuPWFhK24sbiBpbiB0aGlzJiZkZWxldGUgdGhpc1tuXX1mdW5jdGlvbiBhKCl7dmFyIG49W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0KXtuLnB1c2godCl9KSxufWZ1bmN0aW9uIGMoKXt2YXIgbj0wO2Zvcih2YXIgdCBpbiB0aGlzKXQuY2hhckNvZGVBdCgwKT09PWNhJiYrK247cmV0dXJuIG59ZnVuY3Rpb24gcygpe2Zvcih2YXIgbiBpbiB0aGlzKWlmKG4uY2hhckNvZGVBdCgwKT09PWNhKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGwoKXt9ZnVuY3Rpb24gZihuLHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9ZS5hcHBseSh0LGFyZ3VtZW50cyk7cmV0dXJuIHI9PT10P246cn19ZnVuY3Rpb24gaChuLHQpe2lmKHQgaW4gbilyZXR1cm4gdDt0PXQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHJpbmcoMSk7Zm9yKHZhciBlPTAscj1zYS5sZW5ndGg7cj5lOysrZSl7dmFyIHU9c2FbZV0rdDtpZih1IGluIG4pcmV0dXJuIHV9fWZ1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gcCgpe31mdW5jdGlvbiB2KG4pe2Z1bmN0aW9uIHQoKXtmb3IodmFyIHQscj1lLHU9LTEsaT1yLmxlbmd0aDsrK3U8aTspKHQ9clt1XS5vbikmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBufXZhciBlPVtdLHI9bmV3IHU7cmV0dXJuIHQub249ZnVuY3Rpb24odCx1KXt2YXIgaSxvPXIuZ2V0KHQpO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/byYmby5vbjoobyYmKG8ub249bnVsbCxlPWUuc2xpY2UoMCxpPWUuaW5kZXhPZihvKSkuY29uY2F0KGUuc2xpY2UoaSsxKSksci5yZW1vdmUodCkpLHUmJmUucHVzaChyLnNldCh0LHtvbjp1fSkpLG4pfSx0fWZ1bmN0aW9uIGQoKXtYby5ldmVudC5wcmV2ZW50RGVmYXVsdCgpfWZ1bmN0aW9uIG0oKXtmb3IodmFyIG4sdD1Yby5ldmVudDtuPXQuc291cmNlRXZlbnQ7KXQ9bjtyZXR1cm4gdH1mdW5jdGlvbiB5KG4pe2Zvcih2YXIgdD1uZXcgcCxlPTAscj1hcmd1bWVudHMubGVuZ3RoOysrZTxyOyl0W2FyZ3VtZW50c1tlXV09dih0KTtyZXR1cm4gdC5vZj1mdW5jdGlvbihlLHIpe3JldHVybiBmdW5jdGlvbih1KXt0cnl7dmFyIGk9dS5zb3VyY2VFdmVudD1Yby5ldmVudDt1LnRhcmdldD1uLFhvLmV2ZW50PXUsdFt1LnR5cGVdLmFwcGx5KGUscil9ZmluYWxseXtYby5ldmVudD1pfX19LHR9ZnVuY3Rpb24geChuKXtyZXR1cm4gZmEobixkYSksbn1mdW5jdGlvbiBNKG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP246ZnVuY3Rpb24oKXtyZXR1cm4gaGEobix0aGlzKX19ZnVuY3Rpb24gXyhuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOmZ1bmN0aW9uKCl7cmV0dXJuIGdhKG4sdGhpcyl9fWZ1bmN0aW9uIGIobix0KXtmdW5jdGlvbiBlKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUobil9ZnVuY3Rpb24gcigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKX1mdW5jdGlvbiB1KCl7dGhpcy5zZXRBdHRyaWJ1dGUobix0KX1mdW5jdGlvbiBpKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwsdCl9ZnVuY3Rpb24gbygpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGUobik6dGhpcy5zZXRBdHRyaWJ1dGUobixlKX1mdW5jdGlvbiBhKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwsZSl9cmV0dXJuIG49WG8ubnMucXVhbGlmeShuKSxudWxsPT10P24ubG9jYWw/cjplOiJmdW5jdGlvbiI9PXR5cGVvZiB0P24ubG9jYWw/YTpvOm4ubG9jYWw/aTp1fWZ1bmN0aW9uIHcobil7cmV0dXJuIG4udHJpbSgpLnJlcGxhY2UoL1xzKy9nLCIgIil9ZnVuY3Rpb24gUyhuKXtyZXR1cm4gbmV3IFJlZ0V4cCgiKD86XnxcXHMrKSIrWG8ucmVxdW90ZShuKSsiKD86XFxzK3wkKSIsImciKX1mdW5jdGlvbiBrKG4pe3JldHVybiBuLnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBFKG4sdCl7ZnVuY3Rpb24gZSgpe2Zvcih2YXIgZT0tMTsrK2U8dTspbltlXSh0aGlzLHQpfWZ1bmN0aW9uIHIoKXtmb3IodmFyIGU9LTEscj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTsrK2U8dTspbltlXSh0aGlzLHIpfW49ayhuKS5tYXAoQSk7dmFyIHU9bi5sZW5ndGg7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/cjplfWZ1bmN0aW9uIEEobil7dmFyIHQ9UyhuKTtyZXR1cm4gZnVuY3Rpb24oZSxyKXtpZih1PWUuY2xhc3NMaXN0KXJldHVybiByP3UuYWRkKG4pOnUucmVtb3ZlKG4pO3ZhciB1PWUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIjtyPyh0Lmxhc3RJbmRleD0wLHQudGVzdCh1KXx8ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix3KHUrIiAiK24pKSk6ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix3KHUucmVwbGFjZSh0LCIgIikpKX19ZnVuY3Rpb24gQyhuLHQsZSl7ZnVuY3Rpb24gcigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkobil9ZnVuY3Rpb24gdSgpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkobix0LGUpfWZ1bmN0aW9uIGkoKXt2YXIgcj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkobik6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShuLHIsZSl9cmV0dXJuIG51bGw9PXQ/cjoiZnVuY3Rpb24iPT10eXBlb2YgdD9pOnV9ZnVuY3Rpb24gTihuLHQpe2Z1bmN0aW9uIGUoKXtkZWxldGUgdGhpc1tuXX1mdW5jdGlvbiByKCl7dGhpc1tuXT10fWZ1bmN0aW9uIHUoKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP2RlbGV0ZSB0aGlzW25dOnRoaXNbbl09ZX1yZXR1cm4gbnVsbD09dD9lOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3U6cn1mdW5jdGlvbiBMKG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP246KG49WG8ubnMucXVhbGlmeShuKSkubG9jYWw/ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuLnNwYWNlLG4ubG9jYWwpfTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHRoaXMubmFtZXNwYWNlVVJJLG4pfX1mdW5jdGlvbiBUKG4pe3JldHVybntfX2RhdGFfXzpufX1mdW5jdGlvbiBxKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB2YSh0aGlzLG4pfX1mdW5jdGlvbiB6KG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RofHwobj1Yby5hc2NlbmRpbmcpLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJmU/bih0Ll9fZGF0YV9fLGUuX19kYXRhX18pOiF0LSFlfX1mdW5jdGlvbiBSKG4sdCl7Zm9yKHZhciBlPTAscj1uLmxlbmd0aDtyPmU7ZSsrKWZvcih2YXIgdSxpPW5bZV0sbz0wLGE9aS5sZW5ndGg7YT5vO28rKykodT1pW29dKSYmdCh1LG8sZSk7cmV0dXJuIG59ZnVuY3Rpb24gRChuKXtyZXR1cm4gZmEobix5YSksbn1mdW5jdGlvbiBQKG4pe3ZhciB0LGU7cmV0dXJuIGZ1bmN0aW9uKHIsdSxpKXt2YXIgbyxhPW5baV0udXBkYXRlLGM9YS5sZW5ndGg7Zm9yKGkhPWUmJihlPWksdD0wKSx1Pj10JiYodD11KzEpOyEobz1hW3RdKSYmKyt0PGM7KTtyZXR1cm4gb319ZnVuY3Rpb24gVSgpe3ZhciBuPXRoaXMuX190cmFuc2l0aW9uX187biYmKytuLmFjdGl2ZX1mdW5jdGlvbiBqKG4sdCxlKXtmdW5jdGlvbiByKCl7dmFyIHQ9dGhpc1tvXTt0JiYodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG4sdCx0LiQpLGRlbGV0ZSB0aGlzW29dKX1mdW5jdGlvbiB1KCl7dmFyIHU9Yyh0LEJvKGFyZ3VtZW50cykpO3IuY2FsbCh0aGlzKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIobix0aGlzW29dPXUsdS4kPWUpLHUuXz10fWZ1bmN0aW9uIGkoKXt2YXIgdCxlPW5ldyBSZWdFeHAoIl5fX29uKFteLl0rKSIrWG8ucmVxdW90ZShuKSsiJCIpO2Zvcih2YXIgciBpbiB0aGlzKWlmKHQ9ci5tYXRjaChlKSl7dmFyIHU9dGhpc1tyXTt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodFsxXSx1LHUuJCksZGVsZXRlIHRoaXNbcl19fXZhciBvPSJfX29uIituLGE9bi5pbmRleE9mKCIuIiksYz1IO2E+MCYmKG49bi5zdWJzdHJpbmcoMCxhKSk7dmFyIHM9TWEuZ2V0KG4pO3JldHVybiBzJiYobj1zLGM9RiksYT90P3U6cjp0P2c6aX1mdW5jdGlvbiBIKG4sdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPVhvLmV2ZW50O1hvLmV2ZW50PWUsdFswXT10aGlzLl9fZGF0YV9fO3RyeXtuLmFwcGx5KHRoaXMsdCl9ZmluYWxseXtYby5ldmVudD1yfX19ZnVuY3Rpb24gRihuLHQpe3ZhciBlPUgobix0KTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHQ9dGhpcyxyPW4ucmVsYXRlZFRhcmdldDtyJiYocj09PXR8fDgmci5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSl8fGUuY2FsbCh0LG4pfX1mdW5jdGlvbiBPKCl7dmFyIG49Ii5kcmFnc3VwcHJlc3MtIisgKytiYSx0PSJjbGljayIrbixlPVhvLnNlbGVjdChHbykub24oInRvdWNobW92ZSIrbixkKS5vbigiZHJhZ3N0YXJ0IituLGQpLm9uKCJzZWxlY3RzdGFydCIrbixkKTtpZihfYSl7dmFyIHI9Sm8uc3R5bGUsdT1yW19hXTtyW19hXT0ibm9uZSJ9cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIG8oKXtlLm9uKHQsbnVsbCl9ZS5vbihuLG51bGwpLF9hJiYocltfYV09dSksaSYmKGUub24odCxmdW5jdGlvbigpe2QoKSxvKCl9LCEwKSxzZXRUaW1lb3V0KG8sMCkpfX1mdW5jdGlvbiBZKG4sdCl7dC5jaGFuZ2VkVG91Y2hlcyYmKHQ9dC5jaGFuZ2VkVG91Y2hlc1swXSk7dmFyIGU9bi5vd25lclNWR0VsZW1lbnR8fG47aWYoZS5jcmVhdGVTVkdQb2ludCl7dmFyIHI9ZS5jcmVhdGVTVkdQb2ludCgpO2lmKDA+d2EmJihHby5zY3JvbGxYfHxHby5zY3JvbGxZKSl7ZT1Yby5zZWxlY3QoImJvZHkiKS5hcHBlbmQoInN2ZyIpLnN0eWxlKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxtYXJnaW46MCxwYWRkaW5nOjAsYm9yZGVyOiJub25lIn0sImltcG9ydGFudCIpO3ZhciB1PWVbMF1bMF0uZ2V0U2NyZWVuQ1RNKCk7d2E9ISh1LmZ8fHUuZSksZS5yZW1vdmUoKX1yZXR1cm4gd2E/KHIueD10LnBhZ2VYLHIueT10LnBhZ2VZKTooci54PXQuY2xpZW50WCxyLnk9dC5jbGllbnRZKSxyPXIubWF0cml4VHJhbnNmb3JtKG4uZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSxbci54LHIueV19dmFyIGk9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bdC5jbGllbnRYLWkubGVmdC1uLmNsaWVudExlZnQsdC5jbGllbnRZLWkudG9wLW4uY2xpZW50VG9wXX1mdW5jdGlvbiBJKG4pe3JldHVybiBuPjA/MTowPm4/LTE6MH1mdW5jdGlvbiBaKG4sdCxlKXtyZXR1cm4odFswXS1uWzBdKSooZVsxXS1uWzFdKS0odFsxXS1uWzFdKSooZVswXS1uWzBdKX1mdW5jdGlvbiBWKG4pe3JldHVybiBuPjE/MDotMT5uP1NhOk1hdGguYWNvcyhuKX1mdW5jdGlvbiBYKG4pe3JldHVybiBuPjE/RWE6LTE+bj8tRWE6TWF0aC5hc2luKG4pfWZ1bmN0aW9uICQobil7cmV0dXJuKChuPU1hdGguZXhwKG4pKS0xL24pLzJ9ZnVuY3Rpb24gQihuKXtyZXR1cm4oKG49TWF0aC5leHAobikpKzEvbikvMn1mdW5jdGlvbiBXKG4pe3JldHVybigobj1NYXRoLmV4cCgyKm4pKS0xKS8obisxKX1mdW5jdGlvbiBKKG4pe3JldHVybihuPU1hdGguc2luKG4vMikpKm59ZnVuY3Rpb24gRygpe31mdW5jdGlvbiBLKG4sdCxlKXtyZXR1cm4gbmV3IFEobix0LGUpfWZ1bmN0aW9uIFEobix0LGUpe3RoaXMuaD1uLHRoaXMucz10LHRoaXMubD1lfWZ1bmN0aW9uIG50KG4sdCxlKXtmdW5jdGlvbiByKG4pe3JldHVybiBuPjM2MD9uLT0zNjA6MD5uJiYobis9MzYwKSw2MD5uP2krKG8taSkqbi82MDoxODA+bj9vOjI0MD5uP2krKG8taSkqKDI0MC1uKS82MDppfWZ1bmN0aW9uIHUobil7cmV0dXJuIE1hdGgucm91bmQoMjU1KnIobikpfXZhciBpLG87cmV0dXJuIG49aXNOYU4obik/MDoobiU9MzYwKTwwP24rMzYwOm4sdD1pc05hTih0KT8wOjA+dD8wOnQ+MT8xOnQsZT0wPmU/MDplPjE/MTplLG89LjU+PWU/ZSooMSt0KTplK3QtZSp0LGk9MiplLW8sZ3QodShuKzEyMCksdShuKSx1KG4tMTIwKSl9ZnVuY3Rpb24gdHQobix0LGUpe3JldHVybiBuZXcgZXQobix0LGUpfWZ1bmN0aW9uIGV0KG4sdCxlKXt0aGlzLmg9bix0aGlzLmM9dCx0aGlzLmw9ZX1mdW5jdGlvbiBydChuLHQsZSl7cmV0dXJuIGlzTmFOKG4pJiYobj0wKSxpc05hTih0KSYmKHQ9MCksdXQoZSxNYXRoLmNvcyhuKj1OYSkqdCxNYXRoLnNpbihuKSp0KX1mdW5jdGlvbiB1dChuLHQsZSl7cmV0dXJuIG5ldyBpdChuLHQsZSl9ZnVuY3Rpb24gaXQobix0LGUpe3RoaXMubD1uLHRoaXMuYT10LHRoaXMuYj1lfWZ1bmN0aW9uIG90KG4sdCxlKXt2YXIgcj0obisxNikvMTE2LHU9cit0LzUwMCxpPXItZS8yMDA7cmV0dXJuIHU9Y3QodSkqRmEscj1jdChyKSpPYSxpPWN0KGkpKllhLGd0KGx0KDMuMjQwNDU0Mip1LTEuNTM3MTM4NSpyLS40OTg1MzE0KmkpLGx0KC0uOTY5MjY2KnUrMS44NzYwMTA4KnIrLjA0MTU1NippKSxsdCguMDU1NjQzNCp1LS4yMDQwMjU5KnIrMS4wNTcyMjUyKmkpKX1mdW5jdGlvbiBhdChuLHQsZSl7cmV0dXJuIG4+MD90dChNYXRoLmF0YW4yKGUsdCkqTGEsTWF0aC5zcXJ0KHQqdCtlKmUpLG4pOnR0KDAvMCwwLzAsbil9ZnVuY3Rpb24gY3Qobil7cmV0dXJuIG4+LjIwNjg5MzAzND9uKm4qbjoobi00LzI5KS83Ljc4NzAzN31mdW5jdGlvbiBzdChuKXtyZXR1cm4gbj4uMDA4ODU2P01hdGgucG93KG4sMS8zKTo3Ljc4NzAzNypuKzQvMjl9ZnVuY3Rpb24gbHQobil7cmV0dXJuIE1hdGgucm91bmQoMjU1KiguMDAzMDQ+PW4/MTIuOTIqbjoxLjA1NSpNYXRoLnBvdyhuLDEvMi40KS0uMDU1KSl9ZnVuY3Rpb24gZnQobil7cmV0dXJuIGd0KG4+PjE2LDI1NSZuPj44LDI1NSZuKX1mdW5jdGlvbiBodChuKXtyZXR1cm4gZnQobikrIiJ9ZnVuY3Rpb24gZ3Qobix0LGUpe3JldHVybiBuZXcgcHQobix0LGUpfWZ1bmN0aW9uIHB0KG4sdCxlKXt0aGlzLnI9bix0aGlzLmc9dCx0aGlzLmI9ZX1mdW5jdGlvbiB2dChuKXtyZXR1cm4gMTY+bj8iMCIrTWF0aC5tYXgoMCxuKS50b1N0cmluZygxNik6TWF0aC5taW4oMjU1LG4pLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBkdChuLHQsZSl7dmFyIHIsdSxpLG8sYT0wLGM9MCxzPTA7aWYodT0vKFthLXpdKylcKCguKilcKS9pLmV4ZWMobikpc3dpdGNoKGk9dVsyXS5zcGxpdCgiLCIpLHVbMV0pe2Nhc2UiaHNsIjpyZXR1cm4gZShwYXJzZUZsb2F0KGlbMF0pLHBhcnNlRmxvYXQoaVsxXSkvMTAwLHBhcnNlRmxvYXQoaVsyXSkvMTAwKTtjYXNlInJnYiI6cmV0dXJuIHQoTXQoaVswXSksTXQoaVsxXSksTXQoaVsyXSkpfXJldHVybihvPVZhLmdldChuKSk/dChvLnIsby5nLG8uYik6KG51bGwhPW4mJiIjIj09PW4uY2hhckF0KDApJiYocj1wYXJzZUludChuLnN1YnN0cmluZygxKSwxNiksaXNOYU4ocil8fCg0PT09bi5sZW5ndGg/KGE9KDM4NDAmcik+PjQsYT1hPj40fGEsYz0yNDAmcixjPWM+PjR8YyxzPTE1JnIscz1zPDw0fHMpOjc9PT1uLmxlbmd0aCYmKGE9KDE2NzExNjgwJnIpPj4xNixjPSg2NTI4MCZyKT4+OCxzPTI1NSZyKSkpLHQoYSxjLHMpKX1mdW5jdGlvbiBtdChuLHQsZSl7dmFyIHIsdSxpPU1hdGgubWluKG4vPTI1NSx0Lz0yNTUsZS89MjU1KSxvPU1hdGgubWF4KG4sdCxlKSxhPW8taSxjPShvK2kpLzI7cmV0dXJuIGE/KHU9LjU+Yz9hLyhvK2kpOmEvKDItby1pKSxyPW49PW8/KHQtZSkvYSsoZT50PzY6MCk6dD09bz8oZS1uKS9hKzI6KG4tdCkvYSs0LHIqPTYwKToocj0wLzAsdT1jPjAmJjE+Yz8wOnIpLEsocix1LGMpfWZ1bmN0aW9uIHl0KG4sdCxlKXtuPXh0KG4pLHQ9eHQodCksZT14dChlKTt2YXIgcj1zdCgoLjQxMjQ1NjQqbisuMzU3NTc2MSp0Ky4xODA0Mzc1KmUpL0ZhKSx1PXN0KCguMjEyNjcyOSpuKy43MTUxNTIyKnQrLjA3MjE3NSplKS9PYSksaT1zdCgoLjAxOTMzMzkqbisuMTE5MTkyKnQrLjk1MDMwNDEqZSkvWWEpO3JldHVybiB1dCgxMTYqdS0xNiw1MDAqKHItdSksMjAwKih1LWkpKX1mdW5jdGlvbiB4dChuKXtyZXR1cm4obi89MjU1KTw9LjA0MDQ1P24vMTIuOTI6TWF0aC5wb3coKG4rLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBNdChuKXt2YXIgdD1wYXJzZUZsb2F0KG4pO3JldHVybiIlIj09PW4uY2hhckF0KG4ubGVuZ3RoLTEpP01hdGgucm91bmQoMi41NSp0KTp0fWZ1bmN0aW9uIF90KG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP246ZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gYnQobil7cmV0dXJuIG59ZnVuY3Rpb24gd3Qobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYocj1lLGU9bnVsbCksU3QodCxlLG4scil9fWZ1bmN0aW9uIFN0KG4sdCxlLHIpe2Z1bmN0aW9uIHUoKXt2YXIgbix0PWMuc3RhdHVzO2lmKCF0JiZjLnJlc3BvbnNlVGV4dHx8dD49MjAwJiYzMDA+dHx8MzA0PT09dCl7dHJ5e249ZS5jYWxsKGksYyl9Y2F0Y2gocil7cmV0dXJuIG8uZXJyb3IuY2FsbChpLHIpLHZvaWQgMH1vLmxvYWQuY2FsbChpLG4pfWVsc2Ugby5lcnJvci5jYWxsKGksYyl9dmFyIGk9e30sbz1Yby5kaXNwYXRjaCgiYmVmb3Jlc2VuZCIsInByb2dyZXNzIiwibG9hZCIsImVycm9yIiksYT17fSxjPW5ldyBYTUxIdHRwUmVxdWVzdCxzPW51bGw7cmV0dXJuIUdvLlhEb21haW5SZXF1ZXN0fHwid2l0aENyZWRlbnRpYWxzImluIGN8fCEvXihodHRwKHMpPzopP1wvXC8vLnRlc3Qobil8fChjPW5ldyBYRG9tYWluUmVxdWVzdCksIm9ubG9hZCJpbiBjP2Mub25sb2FkPWMub25lcnJvcj11OmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Yy5yZWFkeVN0YXRlPjMmJnUoKX0sYy5vbnByb2dyZXNzPWZ1bmN0aW9uKG4pe3ZhciB0PVhvLmV2ZW50O1hvLmV2ZW50PW47dHJ5e28ucHJvZ3Jlc3MuY2FsbChpLGMpfWZpbmFsbHl7WG8uZXZlbnQ9dH19LGkuaGVhZGVyPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG49KG4rIiIpLnRvTG93ZXJDYXNlKCksYXJndW1lbnRzLmxlbmd0aDwyP2Fbbl06KG51bGw9PXQ/ZGVsZXRlIGFbbl06YVtuXT10KyIiLGkpfSxpLm1pbWVUeXBlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW51bGw9PW4/bnVsbDpuKyIiLGkpOnR9LGkucmVzcG9uc2VUeXBlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPW4saSk6c30saS5yZXNwb25zZT1mdW5jdGlvbihuKXtyZXR1cm4gZT1uLGl9LFsiZ2V0IiwicG9zdCJdLmZvckVhY2goZnVuY3Rpb24obil7aVtuXT1mdW5jdGlvbigpe3JldHVybiBpLnNlbmQuYXBwbHkoaSxbbl0uY29uY2F0KEJvKGFyZ3VtZW50cykpKX19KSxpLnNlbmQ9ZnVuY3Rpb24oZSxyLHUpe2lmKDI9PT1hcmd1bWVudHMubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgciYmKHU9cixyPW51bGwpLGMub3BlbihlLG4sITApLG51bGw9PXR8fCJhY2NlcHQiaW4gYXx8KGEuYWNjZXB0PXQrIiwqLyoiKSxjLnNldFJlcXVlc3RIZWFkZXIpZm9yKHZhciBsIGluIGEpYy5zZXRSZXF1ZXN0SGVhZGVyKGwsYVtsXSk7cmV0dXJuIG51bGwhPXQmJmMub3ZlcnJpZGVNaW1lVHlwZSYmYy5vdmVycmlkZU1pbWVUeXBlKHQpLG51bGwhPXMmJihjLnJlc3BvbnNlVHlwZT1zKSxudWxsIT11JiZpLm9uKCJlcnJvciIsdSkub24oImxvYWQiLGZ1bmN0aW9uKG4pe3UobnVsbCxuKX0pLG8uYmVmb3Jlc2VuZC5jYWxsKGksYyksYy5zZW5kKG51bGw9PXI/bnVsbDpyKSxpfSxpLmFib3J0PWZ1bmN0aW9uKCl7cmV0dXJuIGMuYWJvcnQoKSxpfSxYby5yZWJpbmQoaSxvLCJvbiIpLG51bGw9PXI/aTppLmdldChrdChyKSl9ZnVuY3Rpb24ga3Qobil7cmV0dXJuIDE9PT1uLmxlbmd0aD9mdW5jdGlvbih0LGUpe24obnVsbD09dD9lOm51bGwpfTpufWZ1bmN0aW9uIEV0KCl7dmFyIG49QXQoKSx0PUN0KCktbjt0PjI0Pyhpc0Zpbml0ZSh0KSYmKGNsZWFyVGltZW91dChXYSksV2E9c2V0VGltZW91dChFdCx0KSksQmE9MCk6KEJhPTEsR2EoRXQpKX1mdW5jdGlvbiBBdCgpe3ZhciBuPURhdGUubm93KCk7Zm9yKEphPVhhO0phOyluPj1KYS50JiYoSmEuZj1KYS5jKG4tSmEudCkpLEphPUphLm47cmV0dXJuIG59ZnVuY3Rpb24gQ3QoKXtmb3IodmFyIG4sdD1YYSxlPTEvMDt0Oyl0LmY/dD1uP24ubj10Lm46WGE9dC5uOih0LnQ8ZSYmKGU9dC50KSx0PShuPXQpLm4pO3JldHVybiAkYT1uLGV9ZnVuY3Rpb24gTnQobix0KXtyZXR1cm4gdC0obj9NYXRoLmNlaWwoTWF0aC5sb2cobikvTWF0aC5MTjEwKToxKX1mdW5jdGlvbiBMdChuLHQpe3ZhciBlPU1hdGgucG93KDEwLDMqb2EoOC10KSk7cmV0dXJue3NjYWxlOnQ+OD9mdW5jdGlvbihuKXtyZXR1cm4gbi9lfTpmdW5jdGlvbihuKXtyZXR1cm4gbiplfSxzeW1ib2w6bn19ZnVuY3Rpb24gVHQobil7dmFyIHQ9bi5kZWNpbWFsLGU9bi50aG91c2FuZHMscj1uLmdyb3VwaW5nLHU9bi5jdXJyZW5jeSxpPXI/ZnVuY3Rpb24obil7Zm9yKHZhciB0PW4ubGVuZ3RoLHU9W10saT0wLG89clswXTt0PjAmJm8+MDspdS5wdXNoKG4uc3Vic3RyaW5nKHQtPW8sdCtvKSksbz1yW2k9KGkrMSklci5sZW5ndGhdO3JldHVybiB1LnJldmVyc2UoKS5qb2luKGUpfTpidDtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9UWEuZXhlYyhuKSxyPWVbMV18fCIgIixvPWVbMl18fCI+IixhPWVbM118fCIiLGM9ZVs0XXx8IiIscz1lWzVdLGw9K2VbNl0sZj1lWzddLGg9ZVs4XSxnPWVbOV0scD0xLHY9IiIsZD0iIixtPSExO3N3aXRjaChoJiYoaD0raC5zdWJzdHJpbmcoMSkpLChzfHwiMCI9PT1yJiYiPSI9PT1vKSYmKHM9cj0iMCIsbz0iPSIsZiYmKGwtPU1hdGguZmxvb3IoKGwtMSkvNCkpKSxnKXtjYXNlIm4iOmY9ITAsZz0iZyI7YnJlYWs7Y2FzZSIlIjpwPTEwMCxkPSIlIixnPSJmIjticmVhaztjYXNlInAiOnA9MTAwLGQ9IiUiLGc9InIiO2JyZWFrO2Nhc2UiYiI6Y2FzZSJvIjpjYXNlIngiOmNhc2UiWCI6IiMiPT09YyYmKHY9IjAiK2cudG9Mb3dlckNhc2UoKSk7Y2FzZSJjIjpjYXNlImQiOm09ITAsaD0wO2JyZWFrO2Nhc2UicyI6cD0tMSxnPSJyIn0iJCI9PT1jJiYodj11WzBdLGQ9dVsxXSksInIiIT1nfHxofHwoZz0iZyIpLG51bGwhPWgmJigiZyI9PWc/aD1NYXRoLm1heCgxLE1hdGgubWluKDIxLGgpKTooImUiPT1nfHwiZiI9PWcpJiYoaD1NYXRoLm1heCgwLE1hdGgubWluKDIwLGgpKSkpLGc9bmMuZ2V0KGcpfHxxdDt2YXIgeT1zJiZmO3JldHVybiBmdW5jdGlvbihuKXt2YXIgZT1kO2lmKG0mJm4lMSlyZXR1cm4iIjt2YXIgdT0wPm58fDA9PT1uJiYwPjEvbj8obj0tbiwiLSIpOmE7aWYoMD5wKXt2YXIgYz1Yby5mb3JtYXRQcmVmaXgobixoKTtuPWMuc2NhbGUobiksZT1jLnN5bWJvbCtkfWVsc2Ugbio9cDtuPWcobixoKTt2YXIgeD1uLmxhc3RJbmRleE9mKCIuIiksTT0wPng/bjpuLnN1YnN0cmluZygwLHgpLF89MD54PyIiOnQrbi5zdWJzdHJpbmcoeCsxKTshcyYmZiYmKE09aShNKSk7dmFyIGI9di5sZW5ndGgrTS5sZW5ndGgrXy5sZW5ndGgrKHk/MDp1Lmxlbmd0aCksdz1sPmI/bmV3IEFycmF5KGI9bC1iKzEpLmpvaW4ocik6IiI7cmV0dXJuIHkmJihNPWkodytNKSksdSs9dixuPU0rXywoIjwiPT09bz91K24rdzoiPiI9PT1vP3crdStuOiJeIj09PW8/dy5zdWJzdHJpbmcoMCxiPj49MSkrdStuK3cuc3Vic3RyaW5nKGIpOnUrKHk/bjp3K24pKStlfX19ZnVuY3Rpb24gcXQobil7cmV0dXJuIG4rIiJ9ZnVuY3Rpb24genQoKXt0aGlzLl89bmV3IERhdGUoYXJndW1lbnRzLmxlbmd0aD4xP0RhdGUuVVRDLmFwcGx5KHRoaXMsYXJndW1lbnRzKTphcmd1bWVudHNbMF0pfWZ1bmN0aW9uIFJ0KG4sdCxlKXtmdW5jdGlvbiByKHQpe3ZhciBlPW4odCkscj1pKGUsMSk7cmV0dXJuIHItdD50LWU/ZTpyfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIHQoZT1uKG5ldyBlYyhlLTEpKSwxKSxlfWZ1bmN0aW9uIGkobixlKXtyZXR1cm4gdChuPW5ldyBlYygrbiksZSksbn1mdW5jdGlvbiBvKG4scixpKXt2YXIgbz11KG4pLGE9W107aWYoaT4xKWZvcig7cj5vOyllKG8pJWl8fGEucHVzaChuZXcgRGF0ZSgrbykpLHQobywxKTtlbHNlIGZvcig7cj5vOylhLnB1c2gobmV3IERhdGUoK28pKSx0KG8sMSk7cmV0dXJuIGF9ZnVuY3Rpb24gYShuLHQsZSl7dHJ5e2VjPXp0O3ZhciByPW5ldyB6dDtyZXR1cm4gci5fPW4sbyhyLHQsZSl9ZmluYWxseXtlYz1EYXRlfX1uLmZsb29yPW4sbi5yb3VuZD1yLG4uY2VpbD11LG4ub2Zmc2V0PWksbi5yYW5nZT1vO3ZhciBjPW4udXRjPUR0KG4pO3JldHVybiBjLmZsb29yPWMsYy5yb3VuZD1EdChyKSxjLmNlaWw9RHQodSksYy5vZmZzZXQ9RHQoaSksYy5yYW5nZT1hLG59ZnVuY3Rpb24gRHQobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dHJ5e2VjPXp0O3ZhciByPW5ldyB6dDtyZXR1cm4gci5fPXQsbihyLGUpLl99ZmluYWxseXtlYz1EYXRlfX19ZnVuY3Rpb24gUHQobil7ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiB0KHQpe2Zvcih2YXIgZSx1LGksbz1bXSxhPS0xLGM9MDsrK2E8cjspMzc9PT1uLmNoYXJDb2RlQXQoYSkmJihvLnB1c2gobi5zdWJzdHJpbmcoYyxhKSksbnVsbCE9KHU9dWNbZT1uLmNoYXJBdCgrK2EpXSkmJihlPW4uY2hhckF0KCsrYSkpLChpPUNbZV0pJiYoZT1pKHQsbnVsbD09dT8iZSI9PT1lPyIgIjoiMCI6dSkpLG8ucHVzaChlKSxjPWErMSk7cmV0dXJuIG8ucHVzaChuLnN1YnN0cmluZyhjLGEpKSxvLmpvaW4oIiIpfXZhciByPW4ubGVuZ3RoO3JldHVybiB0LnBhcnNlPWZ1bmN0aW9uKHQpe3ZhciByPXt5OjE5MDAsbTowLGQ6MSxIOjAsTTowLFM6MCxMOjAsWjpudWxsfSx1PWUocixuLHQsMCk7aWYodSE9dC5sZW5ndGgpcmV0dXJuIG51bGw7InAiaW4gciYmKHIuSD1yLkglMTIrMTIqci5wKTt2YXIgaT1udWxsIT1yLlomJmVjIT09enQsbz1uZXcoaT96dDplYyk7cmV0dXJuImoiaW4gcj9vLnNldEZ1bGxZZWFyKHIueSwwLHIuaik6InciaW4gciYmKCJXImluIHJ8fCJVImluIHIpPyhvLnNldEZ1bGxZZWFyKHIueSwwLDEpLG8uc2V0RnVsbFllYXIoci55LDAsIlciaW4gcj8oci53KzYpJTcrNypyLlctKG8uZ2V0RGF5KCkrNSklNzpyLncrNypyLlUtKG8uZ2V0RGF5KCkrNiklNykpOm8uc2V0RnVsbFllYXIoci55LHIubSxyLmQpLG8uc2V0SG91cnMoci5IK01hdGguZmxvb3Ioci5aLzEwMCksci5NK3IuWiUxMDAsci5TLHIuTCksaT9vLl86b30sdC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBufSx0fWZ1bmN0aW9uIGUobix0LGUscil7Zm9yKHZhciB1LGksbyxhPTAsYz10Lmxlbmd0aCxzPWUubGVuZ3RoO2M+YTspe2lmKHI+PXMpcmV0dXJuLTE7aWYodT10LmNoYXJDb2RlQXQoYSsrKSwzNz09PXUpe2lmKG89dC5jaGFyQXQoYSsrKSxpPU5bbyBpbiB1Yz90LmNoYXJBdChhKyspOm9dLCFpfHwocj1pKG4sZSxyKSk8MClyZXR1cm4tMX1lbHNlIGlmKHUhPWUuY2hhckNvZGVBdChyKyspKXJldHVybi0xfXJldHVybiByfWZ1bmN0aW9uIHIobix0LGUpe2IubGFzdEluZGV4PTA7dmFyIHI9Yi5leGVjKHQuc3Vic3RyaW5nKGUpKTtyZXR1cm4gcj8obi53PXcuZ2V0KHJbMF0udG9Mb3dlckNhc2UoKSksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdShuLHQsZSl7TS5sYXN0SW5kZXg9MDt2YXIgcj1NLmV4ZWModC5zdWJzdHJpbmcoZSkpO3JldHVybiByPyhuLnc9Xy5nZXQoclswXS50b0xvd2VyQ2FzZSgpKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBpKG4sdCxlKXtFLmxhc3RJbmRleD0wO3ZhciByPUUuZXhlYyh0LnN1YnN0cmluZyhlKSk7cmV0dXJuIHI/KG4ubT1BLmdldChyWzBdLnRvTG93ZXJDYXNlKCkpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG8obix0LGUpe1MubGFzdEluZGV4PTA7dmFyIHI9Uy5leGVjKHQuc3Vic3RyaW5nKGUpKTtyZXR1cm4gcj8obi5tPWsuZ2V0KHJbMF0udG9Mb3dlckNhc2UoKSksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYShuLHQscil7cmV0dXJuIGUobixDLmMudG9TdHJpbmcoKSx0LHIpfWZ1bmN0aW9uIGMobix0LHIpe3JldHVybiBlKG4sQy54LnRvU3RyaW5nKCksdCxyKX1mdW5jdGlvbiBzKG4sdCxyKXtyZXR1cm4gZShuLEMuWC50b1N0cmluZygpLHQscil9ZnVuY3Rpb24gbChuLHQsZSl7dmFyIHI9eC5nZXQodC5zdWJzdHJpbmcoZSxlKz0yKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gbnVsbD09cj8tMToobi5wPXIsZSl9dmFyIGY9bi5kYXRlVGltZSxoPW4uZGF0ZSxnPW4udGltZSxwPW4ucGVyaW9kcyx2PW4uZGF5cyxkPW4uc2hvcnREYXlzLG09bi5tb250aHMseT1uLnNob3J0TW9udGhzO3QudXRjPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGUobil7dHJ5e2VjPXp0O3ZhciB0PW5ldyBlYztyZXR1cm4gdC5fPW4scih0KX1maW5hbGx5e2VjPURhdGV9fXZhciByPXQobik7cmV0dXJuIGUucGFyc2U9ZnVuY3Rpb24obil7dHJ5e2VjPXp0O3ZhciB0PXIucGFyc2Uobik7cmV0dXJuIHQmJnQuX31maW5hbGx5e2VjPURhdGV9fSxlLnRvU3RyaW5nPXIudG9TdHJpbmcsZX0sdC5tdWx0aT10LnV0Yy5tdWx0aT1lZTt2YXIgeD1Yby5tYXAoKSxNPWp0KHYpLF89SHQodiksYj1qdChkKSx3PUh0KGQpLFM9anQobSksaz1IdChtKSxFPWp0KHkpLEE9SHQoeSk7cC5mb3JFYWNoKGZ1bmN0aW9uKG4sdCl7eC5zZXQobi50b0xvd2VyQ2FzZSgpLHQpfSk7dmFyIEM9e2E6ZnVuY3Rpb24obil7cmV0dXJuIGRbbi5nZXREYXkoKV19LEE6ZnVuY3Rpb24obil7cmV0dXJuIHZbbi5nZXREYXkoKV19LGI6ZnVuY3Rpb24obil7cmV0dXJuIHlbbi5nZXRNb250aCgpXX0sQjpmdW5jdGlvbihuKXtyZXR1cm4gbVtuLmdldE1vbnRoKCldfSxjOnQoZiksZDpmdW5jdGlvbihuLHQpe3JldHVybiBVdChuLmdldERhdGUoKSx0LDIpfSxlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0RGF0ZSgpLHQsMil9LEg6ZnVuY3Rpb24obix0KXtyZXR1cm4gVXQobi5nZXRIb3VycygpLHQsMil9LEk6ZnVuY3Rpb24obix0KXtyZXR1cm4gVXQobi5nZXRIb3VycygpJTEyfHwxMix0LDIpfSxqOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KDErdGMuZGF5T2ZZZWFyKG4pLHQsMyl9LEw6ZnVuY3Rpb24obix0KXtyZXR1cm4gVXQobi5nZXRNaWxsaXNlY29uZHMoKSx0LDMpfSxtOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0TW9udGgoKSsxLHQsMil9LE06ZnVuY3Rpb24obix0KXtyZXR1cm4gVXQobi5nZXRNaW51dGVzKCksdCwyKX0scDpmdW5jdGlvbihuKXtyZXR1cm4gcFsrKG4uZ2V0SG91cnMoKT49MTIpXX0sUzpmdW5jdGlvbihuLHQpe3JldHVybiBVdChuLmdldFNlY29uZHMoKSx0LDIpfSxVOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KHRjLnN1bmRheU9mWWVhcihuKSx0LDIpfSx3OmZ1bmN0aW9uKG4pe3JldHVybiBuLmdldERheSgpfSxXOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KHRjLm1vbmRheU9mWWVhcihuKSx0LDIpfSx4OnQoaCksWDp0KGcpLHk6ZnVuY3Rpb24obix0KXtyZXR1cm4gVXQobi5nZXRGdWxsWWVhcigpJTEwMCx0LDIpfSxZOmZ1bmN0aW9uKG4sdCl7cmV0dXJuIFV0KG4uZ2V0RnVsbFllYXIoKSUxZTQsdCw0KX0sWjpuZSwiJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fSxOPXthOnIsQTp1LGI6aSxCOm8sYzphLGQ6QnQsZTpCdCxIOkp0LEk6SnQsajpXdCxMOlF0LG06JHQsTTpHdCxwOmwsUzpLdCxVOk90LHc6RnQsVzpZdCx4OmMsWDpzLHk6WnQsWTpJdCxaOlZ0LCIlIjp0ZX07cmV0dXJuIHR9ZnVuY3Rpb24gVXQobix0LGUpe3ZhciByPTA+bj8iLSI6IiIsdT0ocj8tbjpuKSsiIixpPXUubGVuZ3RoO3JldHVybiByKyhlPmk/bmV3IEFycmF5KGUtaSsxKS5qb2luKHQpK3U6dSl9ZnVuY3Rpb24ganQobil7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK24ubWFwKFhvLnJlcXVvdGUpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBIdChuKXtmb3IodmFyIHQ9bmV3IHUsZT0tMSxyPW4ubGVuZ3RoOysrZTxyOyl0LnNldChuW2VdLnRvTG93ZXJDYXNlKCksZSk7cmV0dXJuIHR9ZnVuY3Rpb24gRnQobix0LGUpe2ljLmxhc3RJbmRleD0wO3ZhciByPWljLmV4ZWModC5zdWJzdHJpbmcoZSxlKzEpKTtyZXR1cm4gcj8obi53PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE90KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUpKTtyZXR1cm4gcj8obi5VPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFl0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUpKTtyZXR1cm4gcj8obi5XPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEl0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUsZSs0KSk7cmV0dXJuIHI/KG4ueT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBadChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlLGUrMikpO3JldHVybiByPyhuLnk9WHQoK3JbMF0pLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFZ0KG4sdCxlKXtyZXR1cm4vXlsrLV1cZHs0fSQvLnRlc3QodD10LnN1YnN0cmluZyhlLGUrNSkpPyhuLlo9K3QsZSs1KTotMX1mdW5jdGlvbiBYdChuKXtyZXR1cm4gbisobj42OD8xOTAwOjJlMyl9ZnVuY3Rpb24gJHQobix0LGUpe2ljLmxhc3RJbmRleD0wO3ZhciByPWljLmV4ZWModC5zdWJzdHJpbmcoZSxlKzIpKTtyZXR1cm4gcj8obi5tPXJbMF0tMSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBCdChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlLGUrMikpO3JldHVybiByPyhuLmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gV3Qobix0LGUpe2ljLmxhc3RJbmRleD0wO3ZhciByPWljLmV4ZWModC5zdWJzdHJpbmcoZSxlKzMpKTtyZXR1cm4gcj8obi5qPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEp0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUsZSsyKSk7cmV0dXJuIHI/KG4uSD0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBHdChuLHQsZSl7aWMubGFzdEluZGV4PTA7dmFyIHI9aWMuZXhlYyh0LnN1YnN0cmluZyhlLGUrMikpO3JldHVybiByPyhuLk09K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gS3Qobix0LGUpe2ljLmxhc3RJbmRleD0wO3ZhciByPWljLmV4ZWModC5zdWJzdHJpbmcoZSxlKzIpKTtyZXR1cm4gcj8obi5TPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFF0KG4sdCxlKXtpYy5sYXN0SW5kZXg9MDt2YXIgcj1pYy5leGVjKHQuc3Vic3RyaW5nKGUsZSszKSk7cmV0dXJuIHI/KG4uTD0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBuZShuKXt2YXIgdD1uLmdldFRpbWV6b25lT2Zmc2V0KCksZT10PjA/Ii0iOiIrIixyPX5+KG9hKHQpLzYwKSx1PW9hKHQpJTYwO3JldHVybiBlK1V0KHIsIjAiLDIpK1V0KHUsIjAiLDIpfWZ1bmN0aW9uIHRlKG4sdCxlKXtvYy5sYXN0SW5kZXg9MDt2YXIgcj1vYy5leGVjKHQuc3Vic3RyaW5nKGUsZSsxKSk7cmV0dXJuIHI/ZStyWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBlZShuKXtmb3IodmFyIHQ9bi5sZW5ndGgsZT0tMTsrK2U8dDspbltlXVswXT10aGlzKG5bZV1bMF0pO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPW5bZV07IXJbMV0odCk7KXI9blsrK2VdO3JldHVybiByWzBdKHQpfX1mdW5jdGlvbiByZSgpe31mdW5jdGlvbiB1ZShuLHQsZSl7dmFyIHI9ZS5zPW4rdCx1PXItbixpPXItdTtlLnQ9bi1pKyh0LXUpfWZ1bmN0aW9uIGllKG4sdCl7biYmbGMuaGFzT3duUHJvcGVydHkobi50eXBlKSYmbGNbbi50eXBlXShuLHQpfWZ1bmN0aW9uIG9lKG4sdCxlKXt2YXIgcix1PS0xLGk9bi5sZW5ndGgtZTtmb3IodC5saW5lU3RhcnQoKTsrK3U8aTspcj1uW3VdLHQucG9pbnQoclswXSxyWzFdLHJbMl0pO3QubGluZUVuZCgpfWZ1bmN0aW9uIGFlKG4sdCl7dmFyIGU9LTEscj1uLmxlbmd0aDtmb3IodC5wb2x5Z29uU3RhcnQoKTsrK2U8cjspb2UobltlXSx0LDEpO3QucG9seWdvbkVuZCgpfWZ1bmN0aW9uIGNlKCl7ZnVuY3Rpb24gbihuLHQpe24qPU5hLHQ9dCpOYS8yK1NhLzQ7dmFyIGU9bi1yLG89ZT49MD8xOi0xLGE9byplLGM9TWF0aC5jb3ModCkscz1NYXRoLnNpbih0KSxsPWkqcyxmPXUqYytsKk1hdGguY29zKGEpLGg9bCpvKk1hdGguc2luKGEpO2hjLmFkZChNYXRoLmF0YW4yKGgsZikpLHI9bix1PWMsaT1zfXZhciB0LGUscix1LGk7Z2MucG9pbnQ9ZnVuY3Rpb24obyxhKXtnYy5wb2ludD1uLHI9KHQ9bykqTmEsdT1NYXRoLmNvcyhhPShlPWEpKk5hLzIrU2EvNCksaT1NYXRoLnNpbihhKX0sZ2MubGluZUVuZD1mdW5jdGlvbigpe24odCxlKX19ZnVuY3Rpb24gc2Uobil7dmFyIHQ9blswXSxlPW5bMV0scj1NYXRoLmNvcyhlKTtyZXR1cm5bcipNYXRoLmNvcyh0KSxyKk1hdGguc2luKHQpLE1hdGguc2luKGUpXX1mdW5jdGlvbiBsZShuLHQpe3JldHVybiBuWzBdKnRbMF0rblsxXSp0WzFdK25bMl0qdFsyXX1mdW5jdGlvbiBmZShuLHQpe3JldHVybltuWzFdKnRbMl0tblsyXSp0WzFdLG5bMl0qdFswXS1uWzBdKnRbMl0sblswXSp0WzFdLW5bMV0qdFswXV19ZnVuY3Rpb24gaGUobix0KXtuWzBdKz10WzBdLG5bMV0rPXRbMV0sblsyXSs9dFsyXX1mdW5jdGlvbiBnZShuLHQpe3JldHVybltuWzBdKnQsblsxXSp0LG5bMl0qdF19ZnVuY3Rpb24gcGUobil7dmFyIHQ9TWF0aC5zcXJ0KG5bMF0qblswXStuWzFdKm5bMV0rblsyXSpuWzJdKTtuWzBdLz10LG5bMV0vPXQsblsyXS89dH1mdW5jdGlvbiB2ZShuKXtyZXR1cm5bTWF0aC5hdGFuMihuWzFdLG5bMF0pLFgoblsyXSldfWZ1bmN0aW9uIGRlKG4sdCl7cmV0dXJuIG9hKG5bMF0tdFswXSk8QWEmJm9hKG5bMV0tdFsxXSk8QWF9ZnVuY3Rpb24gbWUobix0KXtuKj1OYTt2YXIgZT1NYXRoLmNvcyh0Kj1OYSk7eWUoZSpNYXRoLmNvcyhuKSxlKk1hdGguc2luKG4pLE1hdGguc2luKHQpKX1mdW5jdGlvbiB5ZShuLHQsZSl7KytwYyxkYys9KG4tZGMpL3BjLG1jKz0odC1tYykvcGMseWMrPShlLXljKS9wY31mdW5jdGlvbiB4ZSgpe2Z1bmN0aW9uIG4obix1KXtuKj1OYTt2YXIgaT1NYXRoLmNvcyh1Kj1OYSksbz1pKk1hdGguY29zKG4pLGE9aSpNYXRoLnNpbihuKSxjPU1hdGguc2luKHUpLHM9TWF0aC5hdGFuMihNYXRoLnNxcnQoKHM9ZSpjLXIqYSkqcysocz1yKm8tdCpjKSpzKyhzPXQqYS1lKm8pKnMpLHQqbytlKmErcipjKTt2Yys9cyx4Yys9cyoodCsodD1vKSksTWMrPXMqKGUrKGU9YSkpLF9jKz1zKihyKyhyPWMpKSx5ZSh0LGUscil9dmFyIHQsZSxyO2tjLnBvaW50PWZ1bmN0aW9uKHUsaSl7dSo9TmE7dmFyIG89TWF0aC5jb3MoaSo9TmEpO3Q9bypNYXRoLmNvcyh1KSxlPW8qTWF0aC5zaW4odSkscj1NYXRoLnNpbihpKSxrYy5wb2ludD1uLHllKHQsZSxyKX19ZnVuY3Rpb24gTWUoKXtrYy5wb2ludD1tZX1mdW5jdGlvbiBfZSgpe2Z1bmN0aW9uIG4obix0KXtuKj1OYTt2YXIgZT1NYXRoLmNvcyh0Kj1OYSksbz1lKk1hdGguY29zKG4pLGE9ZSpNYXRoLnNpbihuKSxjPU1hdGguc2luKHQpLHM9dSpjLWkqYSxsPWkqby1yKmMsZj1yKmEtdSpvLGg9TWF0aC5zcXJ0KHMqcytsKmwrZipmKSxnPXIqbyt1KmEraSpjLHA9aCYmLVYoZykvaCx2PU1hdGguYXRhbjIoaCxnKTtiYys9cCpzLHdjKz1wKmwsU2MrPXAqZix2Yys9dix4Yys9dioocisocj1vKSksTWMrPXYqKHUrKHU9YSkpLF9jKz12KihpKyhpPWMpKSx5ZShyLHUsaSl9dmFyIHQsZSxyLHUsaTtrYy5wb2ludD1mdW5jdGlvbihvLGEpe3Q9byxlPWEsa2MucG9pbnQ9bixvKj1OYTt2YXIgYz1NYXRoLmNvcyhhKj1OYSk7cj1jKk1hdGguY29zKG8pLHU9YypNYXRoLnNpbihvKSxpPU1hdGguc2luKGEpLHllKHIsdSxpKX0sa2MubGluZUVuZD1mdW5jdGlvbigpe24odCxlKSxrYy5saW5lRW5kPU1lLGtjLnBvaW50PW1lfX1mdW5jdGlvbiBiZSgpe3JldHVybiEwfWZ1bmN0aW9uIHdlKG4sdCxlLHIsdSl7dmFyIGk9W10sbz1bXTtpZihuLmZvckVhY2goZnVuY3Rpb24obil7aWYoISgodD1uLmxlbmd0aC0xKTw9MCkpe3ZhciB0LGU9blswXSxyPW5bdF07aWYoZGUoZSxyKSl7dS5saW5lU3RhcnQoKTtmb3IodmFyIGE9MDt0PmE7KythKXUucG9pbnQoKGU9blthXSlbMF0sZVsxXSk7cmV0dXJuIHUubGluZUVuZCgpLHZvaWQgMH12YXIgYz1uZXcga2UoZSxuLG51bGwsITApLHM9bmV3IGtlKGUsbnVsbCxjLCExKTtjLm89cyxpLnB1c2goYyksby5wdXNoKHMpLGM9bmV3IGtlKHIsbixudWxsLCExKSxzPW5ldyBrZShyLG51bGwsYywhMCksYy5vPXMsaS5wdXNoKGMpLG8ucHVzaChzKX19KSxvLnNvcnQodCksU2UoaSksU2UobyksaS5sZW5ndGgpe2Zvcih2YXIgYT0wLGM9ZSxzPW8ubGVuZ3RoO3M+YTsrK2Epb1thXS5lPWM9IWM7Zm9yKHZhciBsLGYsaD1pWzBdOzspe2Zvcih2YXIgZz1oLHA9ITA7Zy52OylpZigoZz1nLm4pPT09aClyZXR1cm47bD1nLnosdS5saW5lU3RhcnQoKTtkb3tpZihnLnY9Zy5vLnY9ITAsZy5lKXtpZihwKWZvcih2YXIgYT0wLHM9bC5sZW5ndGg7cz5hOysrYSl1LnBvaW50KChmPWxbYV0pWzBdLGZbMV0pO2Vsc2UgcihnLngsZy5uLngsMSx1KTtnPWcubn1lbHNle2lmKHApe2w9Zy5wLno7Zm9yKHZhciBhPWwubGVuZ3RoLTE7YT49MDstLWEpdS5wb2ludCgoZj1sW2FdKVswXSxmWzFdKX1lbHNlIHIoZy54LGcucC54LC0xLHUpO2c9Zy5wfWc9Zy5vLGw9Zy56LHA9IXB9d2hpbGUoIWcudik7dS5saW5lRW5kKCl9fX1mdW5jdGlvbiBTZShuKXtpZih0PW4ubGVuZ3RoKXtmb3IodmFyIHQsZSxyPTAsdT1uWzBdOysrcjx0Oyl1Lm49ZT1uW3JdLGUucD11LHU9ZTt1Lm49ZT1uWzBdLGUucD11fX1mdW5jdGlvbiBrZShuLHQsZSxyKXt0aGlzLng9bix0aGlzLno9dCx0aGlzLm89ZSx0aGlzLmU9cix0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIEVlKG4sdCxlLHIpe3JldHVybiBmdW5jdGlvbih1LGkpe2Z1bmN0aW9uIG8odCxlKXt2YXIgcj11KHQsZSk7bih0PXJbMF0sZT1yWzFdKSYmaS5wb2ludCh0LGUpfWZ1bmN0aW9uIGEobix0KXt2YXIgZT11KG4sdCk7ZC5wb2ludChlWzBdLGVbMV0pfWZ1bmN0aW9uIGMoKXt5LnBvaW50PWEsZC5saW5lU3RhcnQoKX1mdW5jdGlvbiBzKCl7eS5wb2ludD1vLGQubGluZUVuZCgpfWZ1bmN0aW9uIGwobix0KXt2LnB1c2goW24sdF0pO3ZhciBlPXUobix0KTtNLnBvaW50KGVbMF0sZVsxXSl9ZnVuY3Rpb24gZigpe00ubGluZVN0YXJ0KCksdj1bXX1mdW5jdGlvbiBoKCl7bCh2WzBdWzBdLHZbMF1bMV0pLE0ubGluZUVuZCgpO3ZhciBuLHQ9TS5jbGVhbigpLGU9eC5idWZmZXIoKSxyPWUubGVuZ3RoO2lmKHYucG9wKCkscC5wdXNoKHYpLHY9bnVsbCxyKXtpZigxJnQpe249ZVswXTt2YXIgdSxyPW4ubGVuZ3RoLTEsbz0tMTtmb3IoaS5saW5lU3RhcnQoKTsrK288cjspaS5wb2ludCgodT1uW29dKVswXSx1WzFdKTtyZXR1cm4gaS5saW5lRW5kKCksdm9pZCAwfXI+MSYmMiZ0JiZlLnB1c2goZS5wb3AoKS5jb25jYXQoZS5zaGlmdCgpKSksZy5wdXNoKGUuZmlsdGVyKEFlKSl9fXZhciBnLHAsdixkPXQoaSksbT11LmludmVydChyWzBdLHJbMV0pLHk9e3BvaW50Om8sbGluZVN0YXJ0OmMsbGluZUVuZDpzLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3kucG9pbnQ9bCx5LmxpbmVTdGFydD1mLHkubGluZUVuZD1oLGc9W10scD1bXSxpLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7eS5wb2ludD1vLHkubGluZVN0YXJ0PWMseS5saW5lRW5kPXMsZz1Yby5tZXJnZShnKTt2YXIgbj1MZShtLHApO2cubGVuZ3RoP3dlKGcsTmUsbixlLGkpOm4mJihpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCkpLGkucG9seWdvbkVuZCgpLGc9cD1udWxsfSxzcGhlcmU6ZnVuY3Rpb24oKXtpLnBvbHlnb25TdGFydCgpLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSxpLnBvbHlnb25FbmQoKX19LHg9Q2UoKSxNPXQoeCk7cmV0dXJuIHl9fWZ1bmN0aW9uIEFlKG4pe3JldHVybiBuLmxlbmd0aD4xfWZ1bmN0aW9uIENlKCl7dmFyIG4sdD1bXTtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5wdXNoKG49W10pfSxwb2ludDpmdW5jdGlvbih0LGUpe24ucHVzaChbdCxlXSl9LGxpbmVFbmQ6ZyxidWZmZXI6ZnVuY3Rpb24oKXt2YXIgZT10O3JldHVybiB0PVtdLG49bnVsbCxlfSxyZWpvaW46ZnVuY3Rpb24oKXt0Lmxlbmd0aD4xJiZ0LnB1c2godC5wb3AoKS5jb25jYXQodC5zaGlmdCgpKSl9fX1mdW5jdGlvbiBOZShuLHQpe3JldHVybigobj1uLngpWzBdPDA/blsxXS1FYS1BYTpFYS1uWzFdKS0oKHQ9dC54KVswXTwwP3RbMV0tRWEtQWE6RWEtdFsxXSl9ZnVuY3Rpb24gTGUobix0KXt2YXIgZT1uWzBdLHI9blsxXSx1PVtNYXRoLnNpbihlKSwtTWF0aC5jb3MoZSksMF0saT0wLG89MDtoYy5yZXNldCgpO2Zvcih2YXIgYT0wLGM9dC5sZW5ndGg7Yz5hOysrYSl7dmFyIHM9dFthXSxsPXMubGVuZ3RoO2lmKGwpZm9yKHZhciBmPXNbMF0saD1mWzBdLGc9ZlsxXS8yK1NhLzQscD1NYXRoLnNpbihnKSx2PU1hdGguY29zKGcpLGQ9MTs7KXtkPT09bCYmKGQ9MCksbj1zW2RdO3ZhciBtPW5bMF0seT1uWzFdLzIrU2EvNCx4PU1hdGguc2luKHkpLE09TWF0aC5jb3MoeSksXz1tLWgsYj1fPj0wPzE6LTEsdz1iKl8sUz13PlNhLGs9cCp4O2lmKGhjLmFkZChNYXRoLmF0YW4yKGsqYipNYXRoLnNpbih3KSx2Kk0raypNYXRoLmNvcyh3KSkpLGkrPVM/XytiKmthOl8sU15oPj1lXm0+PWUpe3ZhciBFPWZlKHNlKGYpLHNlKG4pKTtwZShFKTt2YXIgQT1mZSh1LEUpO3BlKEEpO3ZhciBDPShTXl8+PTA/LTE6MSkqWChBWzJdKTsocj5DfHxyPT09QyYmKEVbMF18fEVbMV0pKSYmKG8rPVNeXz49MD8xOi0xKX1pZighZCsrKWJyZWFrO2g9bSxwPXgsdj1NLGY9bn19cmV0dXJuKC1BYT5pfHxBYT5pJiYwPmhjKV4xJm99ZnVuY3Rpb24gVGUobil7dmFyIHQsZT0wLzAscj0wLzAsdT0wLzA7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe24ubGluZVN0YXJ0KCksdD0xfSxwb2ludDpmdW5jdGlvbihpLG8pe3ZhciBhPWk+MD9TYTotU2EsYz1vYShpLWUpO29hKGMtU2EpPEFhPyhuLnBvaW50KGUscj0ocitvKS8yPjA/RWE6LUVhKSxuLnBvaW50KHUsciksbi5saW5lRW5kKCksbi5saW5lU3RhcnQoKSxuLnBvaW50KGEsciksbi5wb2ludChpLHIpLHQ9MCk6dSE9PWEmJmM+PVNhJiYob2EoZS11KTxBYSYmKGUtPXUqQWEpLG9hKGktYSk8QWEmJihpLT1hKkFhKSxyPXFlKGUscixpLG8pLG4ucG9pbnQodSxyKSxuLmxpbmVFbmQoKSxuLmxpbmVTdGFydCgpLG4ucG9pbnQoYSxyKSx0PTApLG4ucG9pbnQoZT1pLHI9byksdT1hfSxsaW5lRW5kOmZ1bmN0aW9uKCl7bi5saW5lRW5kKCksZT1yPTAvMH0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gMi10fX19ZnVuY3Rpb24gcWUobix0LGUscil7dmFyIHUsaSxvPU1hdGguc2luKG4tZSk7cmV0dXJuIG9hKG8pPkFhP01hdGguYXRhbigoTWF0aC5zaW4odCkqKGk9TWF0aC5jb3MocikpKk1hdGguc2luKGUpLU1hdGguc2luKHIpKih1PU1hdGguY29zKHQpKSpNYXRoLnNpbihuKSkvKHUqaSpvKSk6KHQrcikvMn1mdW5jdGlvbiB6ZShuLHQsZSxyKXt2YXIgdTtpZihudWxsPT1uKXU9ZSpFYSxyLnBvaW50KC1TYSx1KSxyLnBvaW50KDAsdSksci5wb2ludChTYSx1KSxyLnBvaW50KFNhLDApLHIucG9pbnQoU2EsLXUpLHIucG9pbnQoMCwtdSksci5wb2ludCgtU2EsLXUpLHIucG9pbnQoLVNhLDApLHIucG9pbnQoLVNhLHUpO2Vsc2UgaWYob2EoblswXS10WzBdKT5BYSl7dmFyIGk9blswXTx0WzBdP1NhOi1TYTt1PWUqaS8yLHIucG9pbnQoLWksdSksci5wb2ludCgwLHUpLHIucG9pbnQoaSx1KX1lbHNlIHIucG9pbnQodFswXSx0WzFdKX1mdW5jdGlvbiBSZShuKXtmdW5jdGlvbiB0KG4sdCl7cmV0dXJuIE1hdGguY29zKG4pKk1hdGguY29zKHQpPml9ZnVuY3Rpb24gZShuKXt2YXIgZSxpLGMscyxsO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtzPWM9ITEsbD0xfSxwb2ludDpmdW5jdGlvbihmLGgpe3ZhciBnLHA9W2YsaF0sdj10KGYsaCksZD1vP3Y/MDp1KGYsaCk6dj91KGYrKDA+Zj9TYTotU2EpLGgpOjA7aWYoIWUmJihzPWM9dikmJm4ubGluZVN0YXJ0KCksdiE9PWMmJihnPXIoZSxwKSwoZGUoZSxnKXx8ZGUocCxnKSkmJihwWzBdKz1BYSxwWzFdKz1BYSx2PXQocFswXSxwWzFdKSkpLHYhPT1jKWw9MCx2PyhuLmxpbmVTdGFydCgpLGc9cihwLGUpLG4ucG9pbnQoZ1swXSxnWzFdKSk6KGc9cihlLHApLG4ucG9pbnQoZ1swXSxnWzFdKSxuLmxpbmVFbmQoKSksZT1nO2Vsc2UgaWYoYSYmZSYmb152KXt2YXIgbTtkJml8fCEobT1yKHAsZSwhMCkpfHwobD0wLG8/KG4ubGluZVN0YXJ0KCksbi5wb2ludChtWzBdWzBdLG1bMF1bMV0pLG4ucG9pbnQobVsxXVswXSxtWzFdWzFdKSxuLmxpbmVFbmQoKSk6KG4ucG9pbnQobVsxXVswXSxtWzFdWzFdKSxuLmxpbmVFbmQoKSxuLmxpbmVTdGFydCgpLG4ucG9pbnQobVswXVswXSxtWzBdWzFdKSkpfSF2fHxlJiZkZShlLHApfHxuLnBvaW50KHBbMF0scFsxXSksZT1wLGM9dixpPWR9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtjJiZuLmxpbmVFbmQoKSxlPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIGx8KHMmJmMpPDwxfX19ZnVuY3Rpb24gcihuLHQsZSl7dmFyIHI9c2UobiksdT1zZSh0KSxvPVsxLDAsMF0sYT1mZShyLHUpLGM9bGUoYSxhKSxzPWFbMF0sbD1jLXMqcztpZighbClyZXR1cm4hZSYmbjt2YXIgZj1pKmMvbCxoPS1pKnMvbCxnPWZlKG8sYSkscD1nZShvLGYpLHY9Z2UoYSxoKTtoZShwLHYpO3ZhciBkPWcsbT1sZShwLGQpLHk9bGUoZCxkKSx4PW0qbS15KihsZShwLHApLTEpO2lmKCEoMD54KSl7dmFyIE09TWF0aC5zcXJ0KHgpLF89Z2UoZCwoLW0tTSkveSk7aWYoaGUoXyxwKSxfPXZlKF8pLCFlKXJldHVybiBfO3ZhciBiLHc9blswXSxTPXRbMF0saz1uWzFdLEU9dFsxXTt3PlMmJihiPXcsdz1TLFM9Yik7dmFyIEE9Uy13LEM9b2EoQS1TYSk8QWEsTj1DfHxBYT5BO2lmKCFDJiZrPkUmJihiPWssaz1FLEU9YiksTj9DP2srRT4wXl9bMV08KG9hKF9bMF0tdyk8QWE/azpFKTprPD1fWzFdJiZfWzFdPD1FOkE+U2FeKHc8PV9bMF0mJl9bMF08PVMpKXt2YXIgTD1nZShkLCgtbStNKS95KTtyZXR1cm4gaGUoTCxwKSxbXyx2ZShMKV19fX1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9bz9uOlNhLW4sdT0wO3JldHVybi1yPnQ/dXw9MTp0PnImJih1fD0yKSwtcj5lP3V8PTQ6ZT5yJiYodXw9OCksdX12YXIgaT1NYXRoLmNvcyhuKSxvPWk+MCxhPW9hKGkpPkFhLGM9Y3Iobiw2Kk5hKTtyZXR1cm4gRWUodCxlLGMsbz9bMCwtbl06Wy1TYSxuLVNhXSl9ZnVuY3Rpb24gRGUobix0LGUscil7cmV0dXJuIGZ1bmN0aW9uKHUpe3ZhciBpLG89dS5hLGE9dS5iLGM9by54LHM9by55LGw9YS54LGY9YS55LGg9MCxnPTEscD1sLWMsdj1mLXM7aWYoaT1uLWMscHx8IShpPjApKXtpZihpLz1wLDA+cCl7aWYoaD5pKXJldHVybjtnPmkmJihnPWkpfWVsc2UgaWYocD4wKXtpZihpPmcpcmV0dXJuO2k+aCYmKGg9aSl9aWYoaT1lLWMscHx8ISgwPmkpKXtpZihpLz1wLDA+cCl7aWYoaT5nKXJldHVybjtpPmgmJihoPWkpfWVsc2UgaWYocD4wKXtpZihoPmkpcmV0dXJuO2c+aSYmKGc9aSl9aWYoaT10LXMsdnx8IShpPjApKXtpZihpLz12LDA+dil7aWYoaD5pKXJldHVybjtnPmkmJihnPWkpfWVsc2UgaWYodj4wKXtpZihpPmcpcmV0dXJuO2k+aCYmKGg9aSl9aWYoaT1yLXMsdnx8ISgwPmkpKXtpZihpLz12LDA+dil7aWYoaT5nKXJldHVybjtpPmgmJihoPWkpfWVsc2UgaWYodj4wKXtpZihoPmkpcmV0dXJuO2c+aSYmKGc9aSl9cmV0dXJuIGg+MCYmKHUuYT17eDpjK2gqcCx5OnMraCp2fSksMT5nJiYodS5iPXt4OmMrZypwLHk6cytnKnZ9KSx1fX19fX19ZnVuY3Rpb24gUGUobix0LGUscil7ZnVuY3Rpb24gdShyLHUpe3JldHVybiBvYShyWzBdLW4pPEFhP3U+MD8wOjM6b2EoclswXS1lKTxBYT91PjA/MjoxOm9hKHJbMV0tdCk8QWE/dT4wPzE6MDp1PjA/MzoyfWZ1bmN0aW9uIGkobix0KXtyZXR1cm4gbyhuLngsdC54KX1mdW5jdGlvbiBvKG4sdCl7dmFyIGU9dShuLDEpLHI9dSh0LDEpO3JldHVybiBlIT09cj9lLXI6MD09PWU/dFsxXS1uWzFdOjE9PT1lP25bMF0tdFswXToyPT09ZT9uWzFdLXRbMV06dFswXS1uWzBdfXJldHVybiBmdW5jdGlvbihhKXtmdW5jdGlvbiBjKG4pe2Zvcih2YXIgdD0wLGU9ZC5sZW5ndGgscj1uWzFdLHU9MDtlPnU7Kyt1KWZvcih2YXIgaSxvPTEsYT1kW3VdLGM9YS5sZW5ndGgscz1hWzBdO2M+bzsrK28paT1hW29dLHNbMV08PXI/aVsxXT5yJiZaKHMsaSxuKT4wJiYrK3Q6aVsxXTw9ciYmWihzLGksbik8MCYmLS10LHM9aTtyZXR1cm4gMCE9PXR9ZnVuY3Rpb24gcyhpLGEsYyxzKXt2YXIgbD0wLGY9MDtpZihudWxsPT1pfHwobD11KGksYykpIT09KGY9dShhLGMpKXx8byhpLGEpPDBeYz4wKXtkbyBzLnBvaW50KDA9PT1sfHwzPT09bD9uOmUsbD4xP3I6dCk7d2hpbGUoKGw9KGwrYys0KSU0KSE9PWYpfWVsc2Ugcy5wb2ludChhWzBdLGFbMV0pfWZ1bmN0aW9uIGwodSxpKXtyZXR1cm4gdT49biYmZT49dSYmaT49dCYmcj49aX1mdW5jdGlvbiBmKG4sdCl7bChuLHQpJiZhLnBvaW50KG4sdCl9ZnVuY3Rpb24gaCgpe04ucG9pbnQ9cCxkJiZkLnB1c2gobT1bXSksUz0hMCx3PSExLF89Yj0wLzB9ZnVuY3Rpb24gZygpe3YmJihwKHkseCksTSYmdyYmQS5yZWpvaW4oKSx2LnB1c2goQS5idWZmZXIoKSkpLE4ucG9pbnQ9Zix3JiZhLmxpbmVFbmQoKX1mdW5jdGlvbiBwKG4sdCl7bj1NYXRoLm1heCgtQWMsTWF0aC5taW4oQWMsbikpLHQ9TWF0aC5tYXgoLUFjLE1hdGgubWluKEFjLHQpKTt2YXIgZT1sKG4sdCk7aWYoZCYmbS5wdXNoKFtuLHRdKSxTKXk9bix4PXQsTT1lLFM9ITEsZSYmKGEubGluZVN0YXJ0KCksYS5wb2ludChuLHQpKTtlbHNlIGlmKGUmJncpYS5wb2ludChuLHQpO2Vsc2V7dmFyIHI9e2E6e3g6Xyx5OmJ9LGI6e3g6bix5OnR9fTtDKHIpPyh3fHwoYS5saW5lU3RhcnQoKSxhLnBvaW50KHIuYS54LHIuYS55KSksYS5wb2ludChyLmIueCxyLmIueSksZXx8YS5saW5lRW5kKCksaz0hMSk6ZSYmKGEubGluZVN0YXJ0KCksYS5wb2ludChuLHQpLGs9ITEpfV89bixiPXQsdz1lfXZhciB2LGQsbSx5LHgsTSxfLGIsdyxTLGssRT1hLEE9Q2UoKSxDPURlKG4sdCxlLHIpLE49e3BvaW50OmYsbGluZVN0YXJ0OmgsbGluZUVuZDpnLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2E9QSx2PVtdLGQ9W10saz0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe2E9RSx2PVhvLm1lcmdlKHYpO3ZhciB0PWMoW24scl0pLGU9ayYmdCx1PXYubGVuZ3RoOyhlfHx1KSYmKGEucG9seWdvblN0YXJ0KCksZSYmKGEubGluZVN0YXJ0KCkscyhudWxsLG51bGwsMSxhKSxhLmxpbmVFbmQoKSksdSYmd2UodixpLHQscyxhKSxhLnBvbHlnb25FbmQoKSksdj1kPW09bnVsbH19O3JldHVybiBOfX1mdW5jdGlvbiBVZShuLHQpe2Z1bmN0aW9uIGUoZSxyKXtyZXR1cm4gZT1uKGUsciksdChlWzBdLGVbMV0pfXJldHVybiBuLmludmVydCYmdC5pbnZlcnQmJihlLmludmVydD1mdW5jdGlvbihlLHIpe3JldHVybiBlPXQuaW52ZXJ0KGUsciksZSYmbi5pbnZlcnQoZVswXSxlWzFdKX0pLGV9ZnVuY3Rpb24gamUobil7dmFyIHQ9MCxlPVNhLzMscj1ucihuKSx1PXIodCxlKTtyZXR1cm4gdS5wYXJhbGxlbHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cih0PW5bMF0qU2EvMTgwLGU9blsxXSpTYS8xODApOlsxODAqKHQvU2EpLDE4MCooZS9TYSldfSx1fWZ1bmN0aW9uIEhlKG4sdCl7ZnVuY3Rpb24gZShuLHQpe3ZhciBlPU1hdGguc3FydChpLTIqdSpNYXRoLnNpbih0KSkvdTtyZXR1cm5bZSpNYXRoLnNpbihuKj11KSxvLWUqTWF0aC5jb3MobildfXZhciByPU1hdGguc2luKG4pLHU9KHIrTWF0aC5zaW4odCkpLzIsaT0xK3IqKDIqdS1yKSxvPU1hdGguc3FydChpKS91O3JldHVybiBlLmludmVydD1mdW5jdGlvbihuLHQpe3ZhciBlPW8tdDtyZXR1cm5bTWF0aC5hdGFuMihuLGUpL3UsWCgoaS0obipuK2UqZSkqdSp1KS8oMip1KSldfSxlfWZ1bmN0aW9uIEZlKCl7ZnVuY3Rpb24gbihuLHQpe05jKz11Km4tcip0LHI9bix1PXR9dmFyIHQsZSxyLHU7UmMucG9pbnQ9ZnVuY3Rpb24oaSxvKXtSYy5wb2ludD1uLHQ9cj1pLGU9dT1vfSxSYy5saW5lRW5kPWZ1bmN0aW9uKCl7bih0LGUpfX1mdW5jdGlvbiBPZShuLHQpe0xjPm4mJihMYz1uKSxuPnFjJiYocWM9biksVGM+dCYmKFRjPXQpLHQ+emMmJih6Yz10KX1mdW5jdGlvbiBZZSgpe2Z1bmN0aW9uIG4obix0KXtvLnB1c2goIk0iLG4sIiwiLHQsaSl9ZnVuY3Rpb24gdChuLHQpe28ucHVzaCgiTSIsbiwiLCIsdCksYS5wb2ludD1lfWZ1bmN0aW9uIGUobix0KXtvLnB1c2goIkwiLG4sIiwiLHQpfWZ1bmN0aW9uIHIoKXthLnBvaW50PW59ZnVuY3Rpb24gdSgpe28ucHVzaCgiWiIpfXZhciBpPUllKDQuNSksbz1bXSxhPXtwb2ludDpuLGxpbmVTdGFydDpmdW5jdGlvbigpe2EucG9pbnQ9dH0sbGluZUVuZDpyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2EubGluZUVuZD11fSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7YS5saW5lRW5kPXIsYS5wb2ludD1ufSxwb2ludFJhZGl1czpmdW5jdGlvbihuKXtyZXR1cm4gaT1JZShuKSxhfSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZihvLmxlbmd0aCl7dmFyIG49by5qb2luKCIiKTtyZXR1cm4gbz1bXSxufX19O3JldHVybiBhfWZ1bmN0aW9uIEllKG4pe3JldHVybiJtMCwiK24rImEiK24rIiwiK24rIiAwIDEsMSAwLCIrLTIqbisiYSIrbisiLCIrbisiIDAgMSwxIDAsIisyKm4rInoifWZ1bmN0aW9uIFplKG4sdCl7ZGMrPW4sbWMrPXQsKyt5Y31mdW5jdGlvbiBWZSgpe2Z1bmN0aW9uIG4obixyKXt2YXIgdT1uLXQsaT1yLWUsbz1NYXRoLnNxcnQodSp1K2kqaSk7eGMrPW8qKHQrbikvMixNYys9byooZStyKS8yLF9jKz1vLFplKHQ9bixlPXIpfXZhciB0LGU7UGMucG9pbnQ9ZnVuY3Rpb24ocix1KXtQYy5wb2ludD1uLFplKHQ9cixlPXUpfX1mdW5jdGlvbiBYZSgpe1BjLnBvaW50PVplfWZ1bmN0aW9uICRlKCl7ZnVuY3Rpb24gbihuLHQpe3ZhciBlPW4tcixpPXQtdSxvPU1hdGguc3FydChlKmUraSppKTt4Yys9byoocituKS8yLE1jKz1vKih1K3QpLzIsX2MrPW8sbz11Km4tcip0LGJjKz1vKihyK24pLHdjKz1vKih1K3QpLFNjKz0zKm8sWmUocj1uLHU9dCl9dmFyIHQsZSxyLHU7UGMucG9pbnQ9ZnVuY3Rpb24oaSxvKXtQYy5wb2ludD1uLFplKHQ9cj1pLGU9dT1vKX0sUGMubGluZUVuZD1mdW5jdGlvbigpe24odCxlKX19ZnVuY3Rpb24gQmUobil7ZnVuY3Rpb24gdCh0LGUpe24ubW92ZVRvKHQsZSksbi5hcmModCxlLG8sMCxrYSl9ZnVuY3Rpb24gZSh0LGUpe24ubW92ZVRvKHQsZSksYS5wb2ludD1yfWZ1bmN0aW9uIHIodCxlKXtuLmxpbmVUbyh0LGUpfWZ1bmN0aW9uIHUoKXthLnBvaW50PXR9ZnVuY3Rpb24gaSgpe24uY2xvc2VQYXRoKCl9dmFyIG89NC41LGE9e3BvaW50OnQsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7YS5wb2ludD1lfSxsaW5lRW5kOnUscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7YS5saW5lRW5kPWl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXthLmxpbmVFbmQ9dSxhLnBvaW50PXR9LHBvaW50UmFkaXVzOmZ1bmN0aW9uKG4pe3JldHVybiBvPW4sYX0scmVzdWx0Omd9O3JldHVybiBhfWZ1bmN0aW9uIFdlKG4pe2Z1bmN0aW9uIHQobil7cmV0dXJuKGE/cjplKShuKX1mdW5jdGlvbiBlKHQpe3JldHVybiBLZSh0LGZ1bmN0aW9uKGUscil7ZT1uKGUsciksdC5wb2ludChlWzBdLGVbMV0pfSl9ZnVuY3Rpb24gcih0KXtmdW5jdGlvbiBlKGUscil7ZT1uKGUsciksdC5wb2ludChlWzBdLGVbMV0pfWZ1bmN0aW9uIHIoKXt4PTAvMCxTLnBvaW50PWksdC5saW5lU3RhcnQoKX1mdW5jdGlvbiBpKGUscil7dmFyIGk9c2UoW2Uscl0pLG89bihlLHIpO3UoeCxNLHksXyxiLHcseD1vWzBdLE09b1sxXSx5PWUsXz1pWzBdLGI9aVsxXSx3PWlbMl0sYSx0KSx0LnBvaW50KHgsTSl9ZnVuY3Rpb24gbygpe1MucG9pbnQ9ZSx0LmxpbmVFbmQoKX1mdW5jdGlvbiBjKCl7cigpLFMucG9pbnQ9cyxTLmxpbmVFbmQ9bH1mdW5jdGlvbiBzKG4sdCl7aShmPW4saD10KSxnPXgscD1NLHY9XyxkPWIsbT13LFMucG9pbnQ9aX1mdW5jdGlvbiBsKCl7dSh4LE0seSxfLGIsdyxnLHAsZix2LGQsbSxhLHQpLFMubGluZUVuZD1vLG8oKX12YXIgZixoLGcscCx2LGQsbSx5LHgsTSxfLGIsdyxTPXtwb2ludDplLGxpbmVTdGFydDpyLGxpbmVFbmQ6byxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0LnBvbHlnb25TdGFydCgpLFMubGluZVN0YXJ0PWN9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0LnBvbHlnb25FbmQoKSxTLmxpbmVTdGFydD1yfX07cmV0dXJuIFN9ZnVuY3Rpb24gdSh0LGUscixhLGMscyxsLGYsaCxnLHAsdixkLG0pe3ZhciB5PWwtdCx4PWYtZSxNPXkqeSt4Kng7aWYoTT40KmkmJmQtLSl7dmFyIF89YStnLGI9YytwLHc9cyt2LFM9TWF0aC5zcXJ0KF8qXytiKmIrdyp3KSxrPU1hdGguYXNpbih3Lz1TKSxFPW9hKG9hKHcpLTEpPEFhfHxvYShyLWgpPEFhPyhyK2gpLzI6TWF0aC5hdGFuMihiLF8pLEE9bihFLGspLEM9QVswXSxOPUFbMV0sTD1DLXQsVD1OLWUscT14KkwteSpUOyhxKnEvTT5pfHxvYSgoeSpMK3gqVCkvTS0uNSk+LjN8fG8+YSpnK2MqcCtzKnYpJiYodSh0LGUscixhLGMscyxDLE4sRSxfLz1TLGIvPVMsdyxkLG0pLG0ucG9pbnQoQyxOKSx1KEMsTixFLF8sYix3LGwsZixoLGcscCx2LGQsbSkpfX12YXIgaT0uNSxvPU1hdGguY29zKDMwKk5hKSxhPTE2O3JldHVybiB0LnByZWNpc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0oaT1uKm4pPjAmJjE2LHQpOk1hdGguc3FydChpKX0sdH1mdW5jdGlvbiBKZShuKXt2YXIgdD1XZShmdW5jdGlvbih0LGUpe3JldHVybiBuKFt0KkxhLGUqTGFdKX0pO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdHIodChuKSl9fWZ1bmN0aW9uIEdlKG4pe3RoaXMuc3RyZWFtPW59ZnVuY3Rpb24gS2Uobix0KXtyZXR1cm57cG9pbnQ6dCxzcGhlcmU6ZnVuY3Rpb24oKXtuLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtuLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7bi5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe24ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25FbmQoKX19fWZ1bmN0aW9uIFFlKG4pe3JldHVybiBucihmdW5jdGlvbigpe3JldHVybiBufSkoKX1mdW5jdGlvbiBucihuKXtmdW5jdGlvbiB0KG4pe3JldHVybiBuPWEoblswXSpOYSxuWzFdKk5hKSxbblswXSpoK2Mscy1uWzFdKmhdfWZ1bmN0aW9uIGUobil7cmV0dXJuIG49YS5pbnZlcnQoKG5bMF0tYykvaCwocy1uWzFdKS9oKSxuJiZbblswXSpMYSxuWzFdKkxhXX1mdW5jdGlvbiByKCl7YT1VZShvPXVyKG0seSx4KSxpKTt2YXIgbj1pKHYsZCk7cmV0dXJuIGM9Zy1uWzBdKmgscz1wK25bMV0qaCx1KCl9ZnVuY3Rpb24gdSgpe3JldHVybiBsJiYobC52YWxpZD0hMSxsPW51bGwpLHR9dmFyIGksbyxhLGMscyxsLGY9V2UoZnVuY3Rpb24obix0KXtyZXR1cm4gbj1pKG4sdCksW25bMF0qaCtjLHMtblsxXSpoXX0pLGg9MTUwLGc9NDgwLHA9MjUwLHY9MCxkPTAsbT0wLHk9MCx4PTAsTT1FYyxfPWJ0LGI9bnVsbCx3PW51bGw7cmV0dXJuIHQuc3RyZWFtPWZ1bmN0aW9uKG4pe3JldHVybiBsJiYobC52YWxpZD0hMSksbD10cihNKG8sZihfKG4pKSkpLGwudmFsaWQ9ITAsbH0sdC5jbGlwQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE09bnVsbD09bj8oYj1uLEVjKTpSZSgoYj0rbikqTmEpLHUoKSk6Yn0sdC5jbGlwRXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3PW4sXz1uP1BlKG5bMF1bMF0sblswXVsxXSxuWzFdWzBdLG5bMV1bMV0pOmJ0LHUoKSk6d30sdC5zY2FsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0rbixyKCkpOmh9LHQudHJhbnNsYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPStuWzBdLHA9K25bMV0scigpKTpbZyxwXX0sdC5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9blswXSUzNjAqTmEsZD1uWzFdJTM2MCpOYSxyKCkpOlt2KkxhLGQqTGFdfSx0LnJvdGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT1uWzBdJTM2MCpOYSx5PW5bMV0lMzYwKk5hLHg9bi5sZW5ndGg+Mj9uWzJdJTM2MCpOYTowLHIoKSk6W20qTGEseSpMYSx4KkxhXX0sWG8ucmViaW5kKHQsZiwicHJlY2lzaW9uIiksZnVuY3Rpb24oKXtyZXR1cm4gaT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0LmludmVydD1pLmludmVydCYmZSxyKCl9fWZ1bmN0aW9uIHRyKG4pe3JldHVybiBLZShuLGZ1bmN0aW9uKHQsZSl7bi5wb2ludCh0Kk5hLGUqTmEpfSl9ZnVuY3Rpb24gZXIobix0KXtyZXR1cm5bbix0XX1mdW5jdGlvbiBycihuLHQpe3JldHVybltuPlNhP24ta2E6LVNhPm4/bitrYTpuLHRdfWZ1bmN0aW9uIHVyKG4sdCxlKXtyZXR1cm4gbj90fHxlP1VlKG9yKG4pLGFyKHQsZSkpOm9yKG4pOnR8fGU/YXIodCxlKTpycn1mdW5jdGlvbiBpcihuKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gdCs9bixbdD5TYT90LWthOi1TYT50P3Qra2E6dCxlXX19ZnVuY3Rpb24gb3Iobil7dmFyIHQ9aXIobik7cmV0dXJuIHQuaW52ZXJ0PWlyKC1uKSx0fWZ1bmN0aW9uIGFyKG4sdCl7ZnVuY3Rpb24gZShuLHQpe3ZhciBlPU1hdGguY29zKHQpLGE9TWF0aC5jb3MobikqZSxjPU1hdGguc2luKG4pKmUscz1NYXRoLnNpbih0KSxsPXMqcithKnU7cmV0dXJuW01hdGguYXRhbjIoYyppLWwqbyxhKnItcyp1KSxYKGwqaStjKm8pXX12YXIgcj1NYXRoLmNvcyhuKSx1PU1hdGguc2luKG4pLGk9TWF0aC5jb3ModCksbz1NYXRoLnNpbih0KTtyZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24obix0KXt2YXIgZT1NYXRoLmNvcyh0KSxhPU1hdGguY29zKG4pKmUsYz1NYXRoLnNpbihuKSplLHM9TWF0aC5zaW4odCksbD1zKmktYypvO3JldHVybltNYXRoLmF0YW4yKGMqaStzKm8sYSpyK2wqdSksWChsKnItYSp1KV19LGV9ZnVuY3Rpb24gY3Iobix0KXt2YXIgZT1NYXRoLmNvcyhuKSxyPU1hdGguc2luKG4pO3JldHVybiBmdW5jdGlvbih1LGksbyxhKXt2YXIgYz1vKnQ7bnVsbCE9dT8odT1zcihlLHUpLGk9c3IoZSxpKSwobz4wP2k+dTp1PmkpJiYodSs9byprYSkpOih1PW4rbyprYSxpPW4tLjUqYyk7Zm9yKHZhciBzLGw9dTtvPjA/bD5pOmk+bDtsLT1jKWEucG9pbnQoKHM9dmUoW2UsLXIqTWF0aC5jb3MobCksLXIqTWF0aC5zaW4obCldKSlbMF0sc1sxXSl9fWZ1bmN0aW9uIHNyKG4sdCl7dmFyIGU9c2UodCk7ZVswXS09bixwZShlKTt2YXIgcj1WKC1lWzFdKTtyZXR1cm4oKC1lWzJdPDA/LXI6cikrMipNYXRoLlBJLUFhKSUoMipNYXRoLlBJKX1mdW5jdGlvbiBscihuLHQsZSl7dmFyIHI9WG8ucmFuZ2Uobix0LUFhLGUpLmNvbmNhdCh0KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHQpe3JldHVybltuLHRdfSl9fWZ1bmN0aW9uIGZyKG4sdCxlKXt2YXIgcj1Yby5yYW5nZShuLHQtQWEsZSkuY29uY2F0KHQpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gci5tYXAoZnVuY3Rpb24odCl7cmV0dXJuW3Qsbl19KX19ZnVuY3Rpb24gaHIobil7cmV0dXJuIG4uc291cmNlfWZ1bmN0aW9uIGdyKG4pe3JldHVybiBuLnRhcmdldH1mdW5jdGlvbiBwcihuLHQsZSxyKXt2YXIgdT1NYXRoLmNvcyh0KSxpPU1hdGguc2luKHQpLG89TWF0aC5jb3MociksYT1NYXRoLnNpbihyKSxjPXUqTWF0aC5jb3Mobikscz11Kk1hdGguc2luKG4pLGw9bypNYXRoLmNvcyhlKSxmPW8qTWF0aC5zaW4oZSksaD0yKk1hdGguYXNpbihNYXRoLnNxcnQoSihyLXQpK3UqbypKKGUtbikpKSxnPTEvTWF0aC5zaW4oaCkscD1oP2Z1bmN0aW9uKG4pe3ZhciB0PU1hdGguc2luKG4qPWgpKmcsZT1NYXRoLnNpbihoLW4pKmcscj1lKmMrdCpsLHU9ZSpzK3QqZixvPWUqaSt0KmE7cmV0dXJuW01hdGguYXRhbjIodSxyKSpMYSxNYXRoLmF0YW4yKG8sTWF0aC5zcXJ0KHIqcit1KnUpKSpMYV19OmZ1bmN0aW9uKCl7cmV0dXJuW24qTGEsdCpMYV19O3JldHVybiBwLmRpc3RhbmNlPWgscH1mdW5jdGlvbiB2cigpe2Z1bmN0aW9uIG4obix1KXt2YXIgaT1NYXRoLnNpbih1Kj1OYSksbz1NYXRoLmNvcyh1KSxhPW9hKChuKj1OYSktdCksYz1NYXRoLmNvcyhhKTtVYys9TWF0aC5hdGFuMihNYXRoLnNxcnQoKGE9bypNYXRoLnNpbihhKSkqYSsoYT1yKmktZSpvKmMpKmEpLGUqaStyKm8qYyksdD1uLGU9aSxyPW99dmFyIHQsZSxyO2pjLnBvaW50PWZ1bmN0aW9uKHUsaSl7dD11Kk5hLGU9TWF0aC5zaW4oaSo9TmEpLHI9TWF0aC5jb3MoaSksamMucG9pbnQ9bn0samMubGluZUVuZD1mdW5jdGlvbigpe2pjLnBvaW50PWpjLmxpbmVFbmQ9Z319ZnVuY3Rpb24gZHIobix0KXtmdW5jdGlvbiBlKHQsZSl7dmFyIHI9TWF0aC5jb3ModCksdT1NYXRoLmNvcyhlKSxpPW4ocip1KTtyZXR1cm5baSp1Kk1hdGguc2luKHQpLGkqTWF0aC5zaW4oZSldfXJldHVybiBlLmludmVydD1mdW5jdGlvbihuLGUpe3ZhciByPU1hdGguc3FydChuKm4rZSplKSx1PXQociksaT1NYXRoLnNpbih1KSxvPU1hdGguY29zKHUpO3JldHVybltNYXRoLmF0YW4yKG4qaSxyKm8pLE1hdGguYXNpbihyJiZlKmkvcildfSxlfWZ1bmN0aW9uIG1yKG4sdCl7ZnVuY3Rpb24gZShuLHQpe3ZhciBlPW9hKG9hKHQpLUVhKTxBYT8wOm8vTWF0aC5wb3codSh0KSxpKTtyZXR1cm5bZSpNYXRoLnNpbihpKm4pLG8tZSpNYXRoLmNvcyhpKm4pXX12YXIgcj1NYXRoLmNvcyhuKSx1PWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnRhbihTYS80K24vMil9LGk9bj09PXQ/TWF0aC5zaW4obik6TWF0aC5sb2coci9NYXRoLmNvcyh0KSkvTWF0aC5sb2codSh0KS91KG4pKSxvPXIqTWF0aC5wb3codShuKSxpKS9pO3JldHVybiBpPyhlLmludmVydD1mdW5jdGlvbihuLHQpe3ZhciBlPW8tdCxyPUkoaSkqTWF0aC5zcXJ0KG4qbitlKmUpO3JldHVybltNYXRoLmF0YW4yKG4sZSkvaSwyKk1hdGguYXRhbihNYXRoLnBvdyhvL3IsMS9pKSktRWFdfSxlKTp4cn1mdW5jdGlvbiB5cihuLHQpe2Z1bmN0aW9uIGUobix0KXt2YXIgZT1pLXQ7cmV0dXJuW2UqTWF0aC5zaW4odSpuKSxpLWUqTWF0aC5jb3ModSpuKV19dmFyIHI9TWF0aC5jb3MobiksdT1uPT09dD9NYXRoLnNpbihuKTooci1NYXRoLmNvcyh0KSkvKHQtbiksaT1yL3UrbjtyZXR1cm4gb2EodSk8QWE/ZXI6KGUuaW52ZXJ0PWZ1bmN0aW9uKG4sdCl7dmFyIGU9aS10O3JldHVybltNYXRoLmF0YW4yKG4sZSkvdSxpLUkodSkqTWF0aC5zcXJ0KG4qbitlKmUpXX0sZSl9ZnVuY3Rpb24geHIobix0KXtyZXR1cm5bbixNYXRoLmxvZyhNYXRoLnRhbihTYS80K3QvMikpXX1mdW5jdGlvbiBNcihuKXt2YXIgdCxlPVFlKG4pLHI9ZS5zY2FsZSx1PWUudHJhbnNsYXRlLGk9ZS5jbGlwRXh0ZW50O3JldHVybiBlLnNjYWxlPWZ1bmN0aW9uKCl7dmFyIG49ci5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIG49PT1lP3Q/ZS5jbGlwRXh0ZW50KG51bGwpOmU6bn0sZS50cmFuc2xhdGU9ZnVuY3Rpb24oKXt2YXIgbj11LmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gbj09PWU/dD9lLmNsaXBFeHRlbnQobnVsbCk6ZTpufSxlLmNsaXBFeHRlbnQ9ZnVuY3Rpb24obil7dmFyIG89aS5hcHBseShlLGFyZ3VtZW50cyk7aWYobz09PWUpe2lmKHQ9bnVsbD09bil7dmFyIGE9U2EqcigpLGM9dSgpO2koW1tjWzBdLWEsY1sxXS1hXSxbY1swXSthLGNbMV0rYV1dKX19ZWxzZSB0JiYobz1udWxsKTtyZXR1cm4gb30sZS5jbGlwRXh0ZW50KG51bGwpfWZ1bmN0aW9uIF9yKG4sdCl7cmV0dXJuW01hdGgubG9nKE1hdGgudGFuKFNhLzQrdC8yKSksLW5dfWZ1bmN0aW9uIGJyKG4pe3JldHVybiBuWzBdfWZ1bmN0aW9uIHdyKG4pe3JldHVybiBuWzFdfWZ1bmN0aW9uIFNyKG4pe2Zvcih2YXIgdD1uLmxlbmd0aCxlPVswLDFdLHI9Mix1PTI7dD51O3UrKyl7Zm9yKDtyPjEmJloobltlW3ItMl1dLG5bZVtyLTFdXSxuW3VdKTw9MDspLS1yO2VbcisrXT11fXJldHVybiBlLnNsaWNlKDAscil9ZnVuY3Rpb24ga3Iobix0KXtyZXR1cm4gblswXS10WzBdfHxuWzFdLXRbMV19ZnVuY3Rpb24gRXIobix0LGUpe3JldHVybihlWzBdLXRbMF0pKihuWzFdLXRbMV0pPChlWzFdLXRbMV0pKihuWzBdLXRbMF0pfWZ1bmN0aW9uIEFyKG4sdCxlLHIpe3ZhciB1PW5bMF0saT1lWzBdLG89dFswXS11LGE9clswXS1pLGM9blsxXSxzPWVbMV0sbD10WzFdLWMsZj1yWzFdLXMsaD0oYSooYy1zKS1mKih1LWkpKS8oZipvLWEqbCk7cmV0dXJuW3UraCpvLGMraCpsXX1mdW5jdGlvbiBDcihuKXt2YXIgdD1uWzBdLGU9bltuLmxlbmd0aC0xXTtyZXR1cm4hKHRbMF0tZVswXXx8dFsxXS1lWzFdKX1mdW5jdGlvbiBOcigpe0pyKHRoaXMpLHRoaXMuZWRnZT10aGlzLnNpdGU9dGhpcy5jaXJjbGU9bnVsbH1mdW5jdGlvbiBMcihuKXt2YXIgdD1KYy5wb3AoKXx8bmV3IE5yO3JldHVybiB0LnNpdGU9bix0fWZ1bmN0aW9uIFRyKG4pe09yKG4pLCRjLnJlbW92ZShuKSxKYy5wdXNoKG4pLEpyKG4pfWZ1bmN0aW9uIHFyKG4pe3ZhciB0PW4uY2lyY2xlLGU9dC54LHI9dC5jeSx1PXt4OmUseTpyfSxpPW4uUCxvPW4uTixhPVtuXTtUcihuKTtmb3IodmFyIGM9aTtjLmNpcmNsZSYmb2EoZS1jLmNpcmNsZS54KTxBYSYmb2Eoci1jLmNpcmNsZS5jeSk8QWE7KWk9Yy5QLGEudW5zaGlmdChjKSxUcihjKSxjPWk7YS51bnNoaWZ0KGMpLE9yKGMpO2Zvcih2YXIgcz1vO3MuY2lyY2xlJiZvYShlLXMuY2lyY2xlLngpPEFhJiZvYShyLXMuY2lyY2xlLmN5KTxBYTspbz1zLk4sYS5wdXNoKHMpLFRyKHMpLHM9bzthLnB1c2gocyksT3Iocyk7dmFyIGwsZj1hLmxlbmd0aDtmb3IobD0xO2Y+bDsrK2wpcz1hW2xdLGM9YVtsLTFdLCRyKHMuZWRnZSxjLnNpdGUscy5zaXRlLHUpO2M9YVswXSxzPWFbZi0xXSxzLmVkZ2U9VnIoYy5zaXRlLHMuc2l0ZSxudWxsLHUpLEZyKGMpLEZyKHMpfWZ1bmN0aW9uIHpyKG4pe2Zvcih2YXIgdCxlLHIsdSxpPW4ueCxvPW4ueSxhPSRjLl87YTspaWYocj1ScihhLG8pLWkscj5BYSlhPWEuTDtlbHNle2lmKHU9aS1EcihhLG8pLCEodT5BYSkpe3I+LUFhPyh0PWEuUCxlPWEpOnU+LUFhPyh0PWEsZT1hLk4pOnQ9ZT1hO2JyZWFrfWlmKCFhLlIpe3Q9YTticmVha31hPWEuUn12YXIgYz1McihuKTtpZigkYy5pbnNlcnQodCxjKSx0fHxlKXtpZih0PT09ZSlyZXR1cm4gT3IodCksZT1Mcih0LnNpdGUpLCRjLmluc2VydChjLGUpLGMuZWRnZT1lLmVkZ2U9VnIodC5zaXRlLGMuc2l0ZSksRnIodCksRnIoZSksdm9pZCAwO2lmKCFlKXJldHVybiBjLmVkZ2U9VnIodC5zaXRlLGMuc2l0ZSksdm9pZCAwO09yKHQpLE9yKGUpO3ZhciBzPXQuc2l0ZSxsPXMueCxmPXMueSxoPW4ueC1sLGc9bi55LWYscD1lLnNpdGUsdj1wLngtbCxkPXAueS1mLG09MiooaCpkLWcqdikseT1oKmgrZypnLHg9dip2K2QqZCxNPXt4OihkKnktZyp4KS9tK2wseTooaCp4LXYqeSkvbStmfTskcihlLmVkZ2UscyxwLE0pLGMuZWRnZT1WcihzLG4sbnVsbCxNKSxlLmVkZ2U9VnIobixwLG51bGwsTSksRnIodCksRnIoZSl9fWZ1bmN0aW9uIFJyKG4sdCl7dmFyIGU9bi5zaXRlLHI9ZS54LHU9ZS55LGk9dS10O2lmKCFpKXJldHVybiByO3ZhciBvPW4uUDtpZighbylyZXR1cm4tMS8wO2U9by5zaXRlO3ZhciBhPWUueCxjPWUueSxzPWMtdDtpZighcylyZXR1cm4gYTt2YXIgbD1hLXIsZj0xL2ktMS9zLGg9bC9zO3JldHVybiBmPygtaCtNYXRoLnNxcnQoaCpoLTIqZioobCpsLygtMipzKS1jK3MvMit1LWkvMikpKS9mK3I6KHIrYSkvMn1mdW5jdGlvbiBEcihuLHQpe3ZhciBlPW4uTjtpZihlKXJldHVybiBScihlLHQpO3ZhciByPW4uc2l0ZTtyZXR1cm4gci55PT09dD9yLng6MS8wfWZ1bmN0aW9uIFByKG4pe3RoaXMuc2l0ZT1uLHRoaXMuZWRnZXM9W119ZnVuY3Rpb24gVXIobil7Zm9yKHZhciB0LGUscix1LGksbyxhLGMscyxsLGY9blswXVswXSxoPW5bMV1bMF0sZz1uWzBdWzFdLHA9blsxXVsxXSx2PVhjLGQ9di5sZW5ndGg7ZC0tOylpZihpPXZbZF0saSYmaS5wcmVwYXJlKCkpZm9yKGE9aS5lZGdlcyxjPWEubGVuZ3RoLG89MDtjPm87KWw9YVtvXS5lbmQoKSxyPWwueCx1PWwueSxzPWFbKytvJWNdLnN0YXJ0KCksdD1zLngsZT1zLnksKG9hKHItdCk+QWF8fG9hKHUtZSk+QWEpJiYoYS5zcGxpY2UobywwLG5ldyBCcihYcihpLnNpdGUsbCxvYShyLWYpPEFhJiZwLXU+QWE/e3g6Zix5Om9hKHQtZik8QWE/ZTpwfTpvYSh1LXApPEFhJiZoLXI+QWE/e3g6b2EoZS1wKTxBYT90OmgseTpwfTpvYShyLWgpPEFhJiZ1LWc+QWE/e3g6aCx5Om9hKHQtaCk8QWE/ZTpnfTpvYSh1LWcpPEFhJiZyLWY+QWE/e3g6b2EoZS1nKTxBYT90OmYseTpnfTpudWxsKSxpLnNpdGUsbnVsbCkpLCsrYyl9ZnVuY3Rpb24ganIobix0KXtyZXR1cm4gdC5hbmdsZS1uLmFuZ2xlfWZ1bmN0aW9uIEhyKCl7SnIodGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfWZ1bmN0aW9uIEZyKG4pe3ZhciB0PW4uUCxlPW4uTjtpZih0JiZlKXt2YXIgcj10LnNpdGUsdT1uLnNpdGUsaT1lLnNpdGU7aWYociE9PWkpe3ZhciBvPXUueCxhPXUueSxjPXIueC1vLHM9ci55LWEsbD1pLngtbyxmPWkueS1hLGg9MiooYypmLXMqbCk7aWYoIShoPj0tQ2EpKXt2YXIgZz1jKmMrcypzLHA9bCpsK2YqZix2PShmKmctcypwKS9oLGQ9KGMqcC1sKmcpL2gsZj1kK2EsbT1HYy5wb3AoKXx8bmV3IEhyO20uYXJjPW4sbS5zaXRlPXUsbS54PXYrbyxtLnk9ZitNYXRoLnNxcnQodip2K2QqZCksbS5jeT1mLG4uY2lyY2xlPW07Zm9yKHZhciB5PW51bGwseD1XYy5fO3g7KWlmKG0ueTx4Lnl8fG0ueT09PXgueSYmbS54PD14Lngpe2lmKCF4Lkwpe3k9eC5QO2JyZWFrfXg9eC5MfWVsc2V7aWYoIXguUil7eT14O2JyZWFrfXg9eC5SfVdjLmluc2VydCh5LG0pLHl8fChCYz1tKX19fX1mdW5jdGlvbiBPcihuKXt2YXIgdD1uLmNpcmNsZTt0JiYodC5QfHwoQmM9dC5OKSxXYy5yZW1vdmUodCksR2MucHVzaCh0KSxKcih0KSxuLmNpcmNsZT1udWxsKX1mdW5jdGlvbiBZcihuKXtmb3IodmFyIHQsZT1WYyxyPURlKG5bMF1bMF0sblswXVsxXSxuWzFdWzBdLG5bMV1bMV0pLHU9ZS5sZW5ndGg7dS0tOyl0PWVbdV0sKCFJcih0LG4pfHwhcih0KXx8b2EodC5hLngtdC5iLngpPEFhJiZvYSh0LmEueS10LmIueSk8QWEpJiYodC5hPXQuYj1udWxsLGUuc3BsaWNlKHUsMSkpfWZ1bmN0aW9uIElyKG4sdCl7dmFyIGU9bi5iO2lmKGUpcmV0dXJuITA7dmFyIHIsdSxpPW4uYSxvPXRbMF1bMF0sYT10WzFdWzBdLGM9dFswXVsxXSxzPXRbMV1bMV0sbD1uLmwsZj1uLnIsaD1sLngsZz1sLnkscD1mLngsdj1mLnksZD0oaCtwKS8yLG09KGcrdikvMjtpZih2PT09Zyl7aWYobz5kfHxkPj1hKXJldHVybjtpZihoPnApe2lmKGkpe2lmKGkueT49cylyZXR1cm59ZWxzZSBpPXt4OmQseTpjfTtlPXt4OmQseTpzfX1lbHNle2lmKGkpe2lmKGkueTxjKXJldHVybn1lbHNlIGk9e3g6ZCx5OnN9O2U9e3g6ZCx5OmN9fX1lbHNlIGlmKHI9KGgtcCkvKHYtZyksdT1tLXIqZCwtMT5yfHxyPjEpaWYoaD5wKXtpZihpKXtpZihpLnk+PXMpcmV0dXJufWVsc2UgaT17eDooYy11KS9yLHk6Y307ZT17eDoocy11KS9yLHk6c319ZWxzZXtpZihpKXtpZihpLnk8YylyZXR1cm59ZWxzZSBpPXt4OihzLXUpL3IseTpzfTtlPXt4OihjLXUpL3IseTpjfX1lbHNlIGlmKHY+Zyl7aWYoaSl7aWYoaS54Pj1hKXJldHVybn1lbHNlIGk9e3g6byx5OnIqbyt1fTtlPXt4OmEseTpyKmErdX19ZWxzZXtpZihpKXtpZihpLng8bylyZXR1cm59ZWxzZSBpPXt4OmEseTpyKmErdX07ZT17eDpvLHk6cipvK3V9fXJldHVybiBuLmE9aSxuLmI9ZSwhMH1mdW5jdGlvbiBacihuLHQpe3RoaXMubD1uLHRoaXMucj10LHRoaXMuYT10aGlzLmI9bnVsbH1mdW5jdGlvbiBWcihuLHQsZSxyKXt2YXIgdT1uZXcgWnIobix0KTtyZXR1cm4gVmMucHVzaCh1KSxlJiYkcih1LG4sdCxlKSxyJiYkcih1LHQsbixyKSxYY1tuLmldLmVkZ2VzLnB1c2gobmV3IEJyKHUsbix0KSksWGNbdC5pXS5lZGdlcy5wdXNoKG5ldyBCcih1LHQsbikpLHV9ZnVuY3Rpb24gWHIobix0LGUpe3ZhciByPW5ldyBacihuLG51bGwpO3JldHVybiByLmE9dCxyLmI9ZSxWYy5wdXNoKHIpLHJ9ZnVuY3Rpb24gJHIobix0LGUscil7bi5hfHxuLmI/bi5sPT09ZT9uLmI9cjpuLmE9cjoobi5hPXIsbi5sPXQsbi5yPWUpfWZ1bmN0aW9uIEJyKG4sdCxlKXt2YXIgcj1uLmEsdT1uLmI7dGhpcy5lZGdlPW4sdGhpcy5zaXRlPXQsdGhpcy5hbmdsZT1lP01hdGguYXRhbjIoZS55LXQueSxlLngtdC54KTpuLmw9PT10P01hdGguYXRhbjIodS54LXIueCxyLnktdS55KTpNYXRoLmF0YW4yKHIueC11LngsdS55LXIueSl9ZnVuY3Rpb24gV3IoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBKcihuKXtuLlU9bi5DPW4uTD1uLlI9bi5QPW4uTj1udWxsfWZ1bmN0aW9uIEdyKG4sdCl7dmFyIGU9dCxyPXQuUix1PWUuVTt1P3UuTD09PWU/dS5MPXI6dS5SPXI6bi5fPXIsci5VPXUsZS5VPXIsZS5SPXIuTCxlLlImJihlLlIuVT1lKSxyLkw9ZX1mdW5jdGlvbiBLcihuLHQpe3ZhciBlPXQscj10LkwsdT1lLlU7dT91Lkw9PT1lP3UuTD1yOnUuUj1yOm4uXz1yLHIuVT11LGUuVT1yLGUuTD1yLlIsZS5MJiYoZS5MLlU9ZSksci5SPWV9ZnVuY3Rpb24gUXIobil7Zm9yKDtuLkw7KW49bi5MO3JldHVybiBufWZ1bmN0aW9uIG51KG4sdCl7dmFyIGUscix1LGk9bi5zb3J0KHR1KS5wb3AoKTtmb3IoVmM9W10sWGM9bmV3IEFycmF5KG4ubGVuZ3RoKSwkYz1uZXcgV3IsV2M9bmV3IFdyOzspaWYodT1CYyxpJiYoIXV8fGkueTx1Lnl8fGkueT09PXUueSYmaS54PHUueCkpKGkueCE9PWV8fGkueSE9PXIpJiYoWGNbaS5pXT1uZXcgUHIoaSksenIoaSksZT1pLngscj1pLnkpLGk9bi5wb3AoKTtlbHNle2lmKCF1KWJyZWFrO3FyKHUuYXJjKX10JiYoWXIodCksVXIodCkpO3ZhciBvPXtjZWxsczpYYyxlZGdlczpWY307cmV0dXJuICRjPVdjPVZjPVhjPW51bGwsb31mdW5jdGlvbiB0dShuLHQpe3JldHVybiB0Lnktbi55fHx0Lngtbi54fWZ1bmN0aW9uIGV1KG4sdCxlKXtyZXR1cm4obi54LWUueCkqKHQueS1uLnkpLShuLngtdC54KSooZS55LW4ueSl9ZnVuY3Rpb24gcnUobil7cmV0dXJuIG4ueH1mdW5jdGlvbiB1dShuKXtyZXR1cm4gbi55fWZ1bmN0aW9uIGl1KCl7cmV0dXJue2xlYWY6ITAsbm9kZXM6W10scG9pbnQ6bnVsbCx4Om51bGwseTpudWxsfX1mdW5jdGlvbiBvdShuLHQsZSxyLHUsaSl7aWYoIW4odCxlLHIsdSxpKSl7dmFyIG89LjUqKGUrdSksYT0uNSoocitpKSxjPXQubm9kZXM7Y1swXSYmb3UobixjWzBdLGUscixvLGEpLGNbMV0mJm91KG4sY1sxXSxvLHIsdSxhKSxjWzJdJiZvdShuLGNbMl0sZSxhLG8saSksY1szXSYmb3UobixjWzNdLG8sYSx1LGkpfX1mdW5jdGlvbiBhdShuLHQpe249WG8ucmdiKG4pLHQ9WG8ucmdiKHQpO3ZhciBlPW4ucixyPW4uZyx1PW4uYixpPXQuci1lLG89dC5nLXIsYT10LmItdTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIiMiK3Z0KE1hdGgucm91bmQoZStpKm4pKSt2dChNYXRoLnJvdW5kKHIrbypuKSkrdnQoTWF0aC5yb3VuZCh1K2EqbikpfX1mdW5jdGlvbiBjdShuLHQpe3ZhciBlLHI9e30sdT17fTtmb3IoZSBpbiBuKWUgaW4gdD9yW2VdPWZ1KG5bZV0sdFtlXSk6dVtlXT1uW2VdO2ZvcihlIGluIHQpZSBpbiBufHwodVtlXT10W2VdKTtyZXR1cm4gZnVuY3Rpb24obil7Zm9yKGUgaW4gcil1W2VdPXJbZV0obik7cmV0dXJuIHV9fWZ1bmN0aW9uIHN1KG4sdCl7cmV0dXJuIHQtPW49K24sZnVuY3Rpb24oZSl7cmV0dXJuIG4rdCplfX1mdW5jdGlvbiBsdShuLHQpe3ZhciBlLHIsdSxpLG8sYT0wLGM9MCxzPVtdLGw9W107Zm9yKG4rPSIiLHQrPSIiLFFjLmxhc3RJbmRleD0wLHI9MDtlPVFjLmV4ZWModCk7KytyKWUuaW5kZXgmJnMucHVzaCh0LnN1YnN0cmluZyhhLGM9ZS5pbmRleCkpLGwucHVzaCh7aTpzLmxlbmd0aCx4OmVbMF19KSxzLnB1c2gobnVsbCksYT1RYy5sYXN0SW5kZXg7Zm9yKGE8dC5sZW5ndGgmJnMucHVzaCh0LnN1YnN0cmluZyhhKSkscj0wLGk9bC5sZW5ndGg7KGU9UWMuZXhlYyhuKSkmJmk+cjsrK3IpaWYobz1sW3JdLG8ueD09ZVswXSl7aWYoby5pKWlmKG51bGw9PXNbby5pKzFdKWZvcihzW28uaS0xXSs9by54LHMuc3BsaWNlKG8uaSwxKSx1PXIrMTtpPnU7Kyt1KWxbdV0uaS0tO2Vsc2UgZm9yKHNbby5pLTFdKz1vLngrc1tvLmkrMV0scy5zcGxpY2Uoby5pLDIpLHU9cisxO2k+dTsrK3UpbFt1XS5pLT0yO2Vsc2UgaWYobnVsbD09c1tvLmkrMV0pc1tvLmldPW8ueDtlbHNlIGZvcihzW28uaV09by54K3Nbby5pKzFdLHMuc3BsaWNlKG8uaSsxLDEpLHU9cisxO2k+dTsrK3UpbFt1XS5pLS07bC5zcGxpY2UociwxKSxpLS0sci0tfWVsc2Ugby54PXN1KHBhcnNlRmxvYXQoZVswXSkscGFyc2VGbG9hdChvLngpKTtmb3IoO2k+cjspbz1sLnBvcCgpLG51bGw9PXNbby5pKzFdP3Nbby5pXT1vLng6KHNbby5pXT1vLngrc1tvLmkrMV0scy5zcGxpY2Uoby5pKzEsMSkpLGktLTtyZXR1cm4gMT09PXMubGVuZ3RoP251bGw9PXNbMF0/KG89bFswXS54LGZ1bmN0aW9uKG4pe3JldHVybiBvKG4pKyIifSk6ZnVuY3Rpb24oKXtyZXR1cm4gdH06ZnVuY3Rpb24obil7Zm9yKHI9MDtpPnI7KytyKXNbKG89bFtyXSkuaV09by54KG4pO3JldHVybiBzLmpvaW4oIiIpfX1mdW5jdGlvbiBmdShuLHQpe2Zvcih2YXIgZSxyPVhvLmludGVycG9sYXRvcnMubGVuZ3RoOy0tcj49MCYmIShlPVhvLmludGVycG9sYXRvcnNbcl0obix0KSk7KTtyZXR1cm4gZX1mdW5jdGlvbiBodShuLHQpe3ZhciBlLHI9W10sdT1bXSxpPW4ubGVuZ3RoLG89dC5sZW5ndGgsYT1NYXRoLm1pbihuLmxlbmd0aCx0Lmxlbmd0aCk7Zm9yKGU9MDthPmU7KytlKXIucHVzaChmdShuW2VdLHRbZV0pKTtmb3IoO2k+ZTsrK2UpdVtlXT1uW2VdO2Zvcig7bz5lOysrZSl1W2VdPXRbZV07cmV0dXJuIGZ1bmN0aW9uKG4pe2ZvcihlPTA7YT5lOysrZSl1W2VdPXJbZV0obik7cmV0dXJuIHV9fWZ1bmN0aW9uIGd1KG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gMD49dD8wOnQ+PTE/MTpuKHQpfX1mdW5jdGlvbiBwdShuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIDEtbigxLXQpfX1mdW5jdGlvbiB2dShuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuLjUqKC41PnQ/bigyKnQpOjItbigyLTIqdCkpfX1mdW5jdGlvbiBkdShuKXtyZXR1cm4gbipufWZ1bmN0aW9uIG11KG4pe3JldHVybiBuKm4qbn1mdW5jdGlvbiB5dShuKXtpZigwPj1uKXJldHVybiAwO2lmKG4+PTEpcmV0dXJuIDE7dmFyIHQ9bipuLGU9dCpuO3JldHVybiA0KiguNT5uP2U6Myoobi10KStlLS43NSl9ZnVuY3Rpb24geHUobil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LG4pfX1mdW5jdGlvbiBNdShuKXtyZXR1cm4gMS1NYXRoLmNvcyhuKkVhKX1mdW5jdGlvbiBfdShuKXtyZXR1cm4gTWF0aC5wb3coMiwxMCoobi0xKSl9ZnVuY3Rpb24gYnUobil7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtbipuKX1mdW5jdGlvbiB3dShuLHQpe3ZhciBlO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDImJih0PS40NSksYXJndW1lbnRzLmxlbmd0aD9lPXQva2EqTWF0aC5hc2luKDEvbik6KG49MSxlPXQvNCksZnVuY3Rpb24ocil7cmV0dXJuIDErbipNYXRoLnBvdygyLC0xMCpyKSpNYXRoLnNpbigoci1lKSprYS90KX19ZnVuY3Rpb24gU3Uobil7cmV0dXJuIG58fChuPTEuNzAxNTgpLGZ1bmN0aW9uKHQpe3JldHVybiB0KnQqKChuKzEpKnQtbil9fWZ1bmN0aW9uIGt1KG4pe3JldHVybiAxLzIuNzU+bj83LjU2MjUqbipuOjIvMi43NT5uPzcuNTYyNSoobi09MS41LzIuNzUpKm4rLjc1OjIuNS8yLjc1Pm4/Ny41NjI1KihuLT0yLjI1LzIuNzUpKm4rLjkzNzU6Ny41NjI1KihuLT0yLjYyNS8yLjc1KSpuKy45ODQzNzV9ZnVuY3Rpb24gRXUobix0KXtuPVhvLmhjbChuKSx0PVhvLmhjbCh0KTt2YXIgZT1uLmgscj1uLmMsdT1uLmwsaT10LmgtZSxvPXQuYy1yLGE9dC5sLXU7cmV0dXJuIGlzTmFOKG8pJiYobz0wLHI9aXNOYU4ocik/dC5jOnIpLGlzTmFOKGkpPyhpPTAsZT1pc05hTihlKT90Lmg6ZSk6aT4xODA/aS09MzYwOi0xODA+aSYmKGkrPTM2MCksZnVuY3Rpb24obil7cmV0dXJuIHJ0KGUraSpuLHIrbypuLHUrYSpuKSsiIn19ZnVuY3Rpb24gQXUobix0KXtuPVhvLmhzbChuKSx0PVhvLmhzbCh0KTt2YXIgZT1uLmgscj1uLnMsdT1uLmwsaT10LmgtZSxvPXQucy1yLGE9dC5sLXU7cmV0dXJuIGlzTmFOKG8pJiYobz0wLHI9aXNOYU4ocik/dC5zOnIpLGlzTmFOKGkpPyhpPTAsZT1pc05hTihlKT90Lmg6ZSk6aT4xODA/aS09MzYwOi0xODA+aSYmKGkrPTM2MCksZnVuY3Rpb24obil7cmV0dXJuIG50KGUraSpuLHIrbypuLHUrYSpuKSsiIn19ZnVuY3Rpb24gQ3Uobix0KXtuPVhvLmxhYihuKSx0PVhvLmxhYih0KTt2YXIgZT1uLmwscj1uLmEsdT1uLmIsaT10LmwtZSxvPXQuYS1yLGE9dC5iLXU7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBvdChlK2kqbixyK28qbix1K2EqbikrIiJ9fWZ1bmN0aW9uIE51KG4sdCl7cmV0dXJuIHQtPW4sZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucm91bmQobit0KmUpfX1mdW5jdGlvbiBMdShuKXt2YXIgdD1bbi5hLG4uYl0sZT1bbi5jLG4uZF0scj1xdSh0KSx1PVR1KHQsZSksaT1xdSh6dShlLHQsLXUpKXx8MDt0WzBdKmVbMV08ZVswXSp0WzFdJiYodFswXSo9LTEsdFsxXSo9LTEscio9LTEsdSo9LTEpLHRoaXMucm90YXRlPShyP01hdGguYXRhbjIodFsxXSx0WzBdKTpNYXRoLmF0YW4yKC1lWzBdLGVbMV0pKSpMYSx0aGlzLnRyYW5zbGF0ZT1bbi5lLG4uZl0sdGhpcy5zY2FsZT1bcixpXSx0aGlzLnNrZXc9aT9NYXRoLmF0YW4yKHUsaSkqTGE6MH1mdW5jdGlvbiBUdShuLHQpe3JldHVybiBuWzBdKnRbMF0rblsxXSp0WzFdfWZ1bmN0aW9uIHF1KG4pe3ZhciB0PU1hdGguc3FydChUdShuLG4pKTtyZXR1cm4gdCYmKG5bMF0vPXQsblsxXS89dCksdH1mdW5jdGlvbiB6dShuLHQsZSl7cmV0dXJuIG5bMF0rPWUqdFswXSxuWzFdKz1lKnRbMV0sbn1mdW5jdGlvbiBSdShuLHQpe3ZhciBlLHI9W10sdT1bXSxpPVhvLnRyYW5zZm9ybShuKSxvPVhvLnRyYW5zZm9ybSh0KSxhPWkudHJhbnNsYXRlLGM9by50cmFuc2xhdGUscz1pLnJvdGF0ZSxsPW8ucm90YXRlLGY9aS5za2V3LGg9by5za2V3LGc9aS5zY2FsZSxwPW8uc2NhbGU7cmV0dXJuIGFbMF0hPWNbMF18fGFbMV0hPWNbMV0/KHIucHVzaCgidHJhbnNsYXRlKCIsbnVsbCwiLCIsbnVsbCwiKSIpLHUucHVzaCh7aToxLHg6c3UoYVswXSxjWzBdKX0se2k6Myx4OnN1KGFbMV0sY1sxXSl9KSk6Y1swXXx8Y1sxXT9yLnB1c2goInRyYW5zbGF0ZSgiK2MrIikiKTpyLnB1c2goIiIpLHMhPWw/KHMtbD4xODA/bCs9MzYwOmwtcz4xODAmJihzKz0zNjApLHUucHVzaCh7aTpyLnB1c2goci5wb3AoKSsicm90YXRlKCIsbnVsbCwiKSIpLTIseDpzdShzLGwpfSkpOmwmJnIucHVzaChyLnBvcCgpKyJyb3RhdGUoIitsKyIpIiksZiE9aD91LnB1c2goe2k6ci5wdXNoKHIucG9wKCkrInNrZXdYKCIsbnVsbCwiKSIpLTIseDpzdShmLGgpfSk6aCYmci5wdXNoKHIucG9wKCkrInNrZXdYKCIraCsiKSIpLGdbMF0hPXBbMF18fGdbMV0hPXBbMV0/KGU9ci5wdXNoKHIucG9wKCkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpLHUucHVzaCh7aTplLTQseDpzdShnWzBdLHBbMF0pfSx7aTplLTIseDpzdShnWzFdLHBbMV0pfSkpOigxIT1wWzBdfHwxIT1wWzFdKSYmci5wdXNoKHIucG9wKCkrInNjYWxlKCIrcCsiKSIpLGU9dS5sZW5ndGgsZnVuY3Rpb24obil7Zm9yKHZhciB0LGk9LTE7KytpPGU7KXJbKHQ9dVtpXSkuaV09dC54KG4pO3JldHVybiByLmpvaW4oIiIpfX1mdW5jdGlvbiBEdShuLHQpe3JldHVybiB0PXQtKG49K24pPzEvKHQtbik6MCxmdW5jdGlvbihlKXtyZXR1cm4oZS1uKSp0fX1mdW5jdGlvbiBQdShuLHQpe3JldHVybiB0PXQtKG49K24pPzEvKHQtbik6MCxmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigxLChlLW4pKnQpKX19ZnVuY3Rpb24gVXUobil7Zm9yKHZhciB0PW4uc291cmNlLGU9bi50YXJnZXQscj1IdSh0LGUpLHU9W3RdO3QhPT1yOyl0PXQucGFyZW50LHUucHVzaCh0KTtmb3IodmFyIGk9dS5sZW5ndGg7ZSE9PXI7KXUuc3BsaWNlKGksMCxlKSxlPWUucGFyZW50O3JldHVybiB1fWZ1bmN0aW9uIGp1KG4pe2Zvcih2YXIgdD1bXSxlPW4ucGFyZW50O251bGwhPWU7KXQucHVzaChuKSxuPWUsZT1lLnBhcmVudDtyZXR1cm4gdC5wdXNoKG4pLHR9ZnVuY3Rpb24gSHUobix0KXtpZihuPT09dClyZXR1cm4gbjtmb3IodmFyIGU9anUobikscj1qdSh0KSx1PWUucG9wKCksaT1yLnBvcCgpLG89bnVsbDt1PT09aTspbz11LHU9ZS5wb3AoKSxpPXIucG9wKCk7cmV0dXJuIG99ZnVuY3Rpb24gRnUobil7bi5maXhlZHw9Mn1mdW5jdGlvbiBPdShuKXtuLmZpeGVkJj0tN31mdW5jdGlvbiBZdShuKXtuLmZpeGVkfD00LG4ucHg9bi54LG4ucHk9bi55fWZ1bmN0aW9uIEl1KG4pe24uZml4ZWQmPS01fWZ1bmN0aW9uIFp1KG4sdCxlKXt2YXIgcj0wLHU9MDtpZihuLmNoYXJnZT0wLCFuLmxlYWYpZm9yKHZhciBpLG89bi5ub2RlcyxhPW8ubGVuZ3RoLGM9LTE7KytjPGE7KWk9b1tjXSxudWxsIT1pJiYoWnUoaSx0LGUpLG4uY2hhcmdlKz1pLmNoYXJnZSxyKz1pLmNoYXJnZSppLmN4LHUrPWkuY2hhcmdlKmkuY3kpO2lmKG4ucG9pbnQpe24ubGVhZnx8KG4ucG9pbnQueCs9TWF0aC5yYW5kb20oKS0uNSxuLnBvaW50LnkrPU1hdGgucmFuZG9tKCktLjUpO3ZhciBzPXQqZVtuLnBvaW50LmluZGV4XTtuLmNoYXJnZSs9bi5wb2ludENoYXJnZT1zLHIrPXMqbi5wb2ludC54LHUrPXMqbi5wb2ludC55fW4uY3g9ci9uLmNoYXJnZSxuLmN5PXUvbi5jaGFyZ2V9ZnVuY3Rpb24gVnUobix0KXtyZXR1cm4gWG8ucmViaW5kKG4sdCwic29ydCIsImNoaWxkcmVuIiwidmFsdWUiKSxuLm5vZGVzPW4sbi5saW5rcz1XdSxufWZ1bmN0aW9uIFh1KG4pe3JldHVybiBuLmNoaWxkcmVufWZ1bmN0aW9uICR1KG4pe3JldHVybiBuLnZhbHVlfWZ1bmN0aW9uIEJ1KG4sdCl7cmV0dXJuIHQudmFsdWUtbi52YWx1ZX1mdW5jdGlvbiBXdShuKXtyZXR1cm4gWG8ubWVyZ2Uobi5tYXAoZnVuY3Rpb24obil7cmV0dXJuKG4uY2hpbGRyZW58fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3NvdXJjZTpuLHRhcmdldDp0fX0pfSkpfWZ1bmN0aW9uIEp1KG4pe3JldHVybiBuLnh9ZnVuY3Rpb24gR3Uobil7cmV0dXJuIG4ueX1mdW5jdGlvbiBLdShuLHQsZSl7bi55MD10LG4ueT1lfWZ1bmN0aW9uIFF1KG4pe3JldHVybiBYby5yYW5nZShuLmxlbmd0aCl9ZnVuY3Rpb24gbmkobil7Zm9yKHZhciB0PS0xLGU9blswXS5sZW5ndGgscj1bXTsrK3Q8ZTspclt0XT0wO3JldHVybiByfWZ1bmN0aW9uIHRpKG4pe2Zvcih2YXIgdCxlPTEscj0wLHU9blswXVsxXSxpPW4ubGVuZ3RoO2k+ZTsrK2UpKHQ9bltlXVsxXSk+dSYmKHI9ZSx1PXQpO3JldHVybiByfWZ1bmN0aW9uIGVpKG4pe3JldHVybiBuLnJlZHVjZShyaSwwKX1mdW5jdGlvbiByaShuLHQpe3JldHVybiBuK3RbMV19ZnVuY3Rpb24gdWkobix0KXtyZXR1cm4gaWkobixNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKzEpKX1mdW5jdGlvbiBpaShuLHQpe2Zvcih2YXIgZT0tMSxyPStuWzBdLHU9KG5bMV0tcikvdCxpPVtdOysrZTw9dDspaVtlXT11KmUrcjtyZXR1cm4gaX1mdW5jdGlvbiBvaShuKXtyZXR1cm5bWG8ubWluKG4pLFhvLm1heChuKV19ZnVuY3Rpb24gYWkobix0KXtyZXR1cm4gbi5wYXJlbnQ9PXQucGFyZW50PzE6Mn1mdW5jdGlvbiBjaShuKXt2YXIgdD1uLmNoaWxkcmVuO3JldHVybiB0JiZ0Lmxlbmd0aD90WzBdOm4uX3RyZWUudGhyZWFkfWZ1bmN0aW9uIHNpKG4pe3ZhciB0LGU9bi5jaGlsZHJlbjtyZXR1cm4gZSYmKHQ9ZS5sZW5ndGgpP2VbdC0xXTpuLl90cmVlLnRocmVhZH1mdW5jdGlvbiBsaShuLHQpe3ZhciBlPW4uY2hpbGRyZW47aWYoZSYmKHU9ZS5sZW5ndGgpKWZvcih2YXIgcix1LGk9LTE7KytpPHU7KXQocj1saShlW2ldLHQpLG4pPjAmJihuPXIpO3JldHVybiBufWZ1bmN0aW9uIGZpKG4sdCl7cmV0dXJuIG4ueC10Lnh9ZnVuY3Rpb24gaGkobix0KXtyZXR1cm4gdC54LW4ueH1mdW5jdGlvbiBnaShuLHQpe3JldHVybiBuLmRlcHRoLXQuZGVwdGh9ZnVuY3Rpb24gcGkobix0KXtmdW5jdGlvbiBlKG4scil7dmFyIHU9bi5jaGlsZHJlbjtpZih1JiYobz11Lmxlbmd0aCkpZm9yKHZhciBpLG8sYT1udWxsLGM9LTE7KytjPG87KWk9dVtjXSxlKGksYSksYT1pO3QobixyKX1lKG4sbnVsbCl9ZnVuY3Rpb24gdmkobil7Zm9yKHZhciB0LGU9MCxyPTAsdT1uLmNoaWxkcmVuLGk9dS5sZW5ndGg7LS1pPj0wOyl0PXVbaV0uX3RyZWUsdC5wcmVsaW0rPWUsdC5tb2QrPWUsZSs9dC5zaGlmdCsocis9dC5jaGFuZ2UpfWZ1bmN0aW9uIGRpKG4sdCxlKXtuPW4uX3RyZWUsdD10Ll90cmVlO3ZhciByPWUvKHQubnVtYmVyLW4ubnVtYmVyKTtuLmNoYW5nZSs9cix0LmNoYW5nZS09cix0LnNoaWZ0Kz1lLHQucHJlbGltKz1lLHQubW9kKz1lfWZ1bmN0aW9uIG1pKG4sdCxlKXtyZXR1cm4gbi5fdHJlZS5hbmNlc3Rvci5wYXJlbnQ9PXQucGFyZW50P24uX3RyZWUuYW5jZXN0b3I6ZX1mdW5jdGlvbiB5aShuLHQpe3JldHVybiBuLnZhbHVlLXQudmFsdWV9ZnVuY3Rpb24geGkobix0KXt2YXIgZT1uLl9wYWNrX25leHQ7bi5fcGFja19uZXh0PXQsdC5fcGFja19wcmV2PW4sdC5fcGFja19uZXh0PWUsZS5fcGFja19wcmV2PXR9ZnVuY3Rpb24gTWkobix0KXtuLl9wYWNrX25leHQ9dCx0Ll9wYWNrX3ByZXY9bn1mdW5jdGlvbiBfaShuLHQpe3ZhciBlPXQueC1uLngscj10Lnktbi55LHU9bi5yK3QucjtyZXR1cm4uOTk5KnUqdT5lKmUrcipyfWZ1bmN0aW9uIGJpKG4pe2Z1bmN0aW9uIHQobil7bD1NYXRoLm1pbihuLngtbi5yLGwpLGY9TWF0aC5tYXgobi54K24ucixmKSxoPU1hdGgubWluKG4ueS1uLnIsaCksZz1NYXRoLm1heChuLnkrbi5yLGcpfWlmKChlPW4uY2hpbGRyZW4pJiYocz1lLmxlbmd0aCkpe3ZhciBlLHIsdSxpLG8sYSxjLHMsbD0xLzAsZj0tMS8wLGg9MS8wLGc9LTEvMDtpZihlLmZvckVhY2god2kpLHI9ZVswXSxyLng9LXIucixyLnk9MCx0KHIpLHM+MSYmKHU9ZVsxXSx1Lng9dS5yLHUueT0wLHQodSkscz4yKSlmb3IoaT1lWzJdLEVpKHIsdSxpKSx0KGkpLHhpKHIsaSksci5fcGFja19wcmV2PWkseGkoaSx1KSx1PXIuX3BhY2tfbmV4dCxvPTM7cz5vO28rKyl7RWkocix1LGk9ZVtvXSk7dmFyIHA9MCx2PTEsZD0xO2ZvcihhPXUuX3BhY2tfbmV4dDthIT09dTthPWEuX3BhY2tfbmV4dCx2KyspaWYoX2koYSxpKSl7cD0xO2JyZWFrfWlmKDE9PXApZm9yKGM9ci5fcGFja19wcmV2O2MhPT1hLl9wYWNrX3ByZXYmJiFfaShjLGkpO2M9Yy5fcGFja19wcmV2LGQrKyk7cD8oZD52fHx2PT1kJiZ1LnI8ci5yP01pKHIsdT1hKTpNaShyPWMsdSksby0tKTooeGkocixpKSx1PWksdChpKSl9dmFyIG09KGwrZikvMix5PShoK2cpLzIseD0wO2ZvcihvPTA7cz5vO28rKylpPWVbb10saS54LT1tLGkueS09eSx4PU1hdGgubWF4KHgsaS5yK01hdGguc3FydChpLngqaS54K2kueSppLnkpKTtuLnI9eCxlLmZvckVhY2goU2kpfX1mdW5jdGlvbiB3aShuKXtuLl9wYWNrX25leHQ9bi5fcGFja19wcmV2PW59ZnVuY3Rpb24gU2kobil7ZGVsZXRlIG4uX3BhY2tfbmV4dCxkZWxldGUgbi5fcGFja19wcmV2fWZ1bmN0aW9uIGtpKG4sdCxlLHIpe3ZhciB1PW4uY2hpbGRyZW47aWYobi54PXQrPXIqbi54LG4ueT1lKz1yKm4ueSxuLnIqPXIsdSlmb3IodmFyIGk9LTEsbz11Lmxlbmd0aDsrK2k8bzspa2kodVtpXSx0LGUscil9ZnVuY3Rpb24gRWkobix0LGUpe3ZhciByPW4ucitlLnIsdT10Lngtbi54LGk9dC55LW4ueTtpZihyJiYodXx8aSkpe3ZhciBvPXQucitlLnIsYT11KnUraSppO28qPW8scio9cjt2YXIgYz0uNSsoci1vKS8oMiphKSxzPU1hdGguc3FydChNYXRoLm1heCgwLDIqbyoocithKS0oci09YSkqci1vKm8pKS8oMiphKTtlLng9bi54K2MqdStzKmksZS55PW4ueStjKmktcyp1fWVsc2UgZS54PW4ueCtyLGUueT1uLnl9ZnVuY3Rpb24gQWkobil7cmV0dXJuIDErWG8ubWF4KG4sZnVuY3Rpb24obil7cmV0dXJuIG4ueX0pfWZ1bmN0aW9uIENpKG4pe3JldHVybiBuLnJlZHVjZShmdW5jdGlvbihuLHQpe3JldHVybiBuK3QueH0sMCkvbi5sZW5ndGh9ZnVuY3Rpb24gTmkobil7dmFyIHQ9bi5jaGlsZHJlbjtyZXR1cm4gdCYmdC5sZW5ndGg/TmkodFswXSk6bn1mdW5jdGlvbiBMaShuKXt2YXIgdCxlPW4uY2hpbGRyZW47cmV0dXJuIGUmJih0PWUubGVuZ3RoKT9MaShlW3QtMV0pOm59ZnVuY3Rpb24gVGkobil7cmV0dXJue3g6bi54LHk6bi55LGR4Om4uZHgsZHk6bi5keX19ZnVuY3Rpb24gcWkobix0KXt2YXIgZT1uLngrdFszXSxyPW4ueSt0WzBdLHU9bi5keC10WzFdLXRbM10saT1uLmR5LXRbMF0tdFsyXTtyZXR1cm4gMD51JiYoZSs9dS8yLHU9MCksMD5pJiYocis9aS8yLGk9MCkse3g6ZSx5OnIsZHg6dSxkeTppfX1mdW5jdGlvbiB6aShuKXt2YXIgdD1uWzBdLGU9bltuLmxlbmd0aC0xXTtyZXR1cm4gZT50P1t0LGVdOltlLHRdfWZ1bmN0aW9uIFJpKG4pe3JldHVybiBuLnJhbmdlRXh0ZW50P24ucmFuZ2VFeHRlbnQoKTp6aShuLnJhbmdlKCkpfWZ1bmN0aW9uIERpKG4sdCxlLHIpe3ZhciB1PWUoblswXSxuWzFdKSxpPXIodFswXSx0WzFdKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGkodShuKSl9fWZ1bmN0aW9uIFBpKG4sdCl7dmFyIGUscj0wLHU9bi5sZW5ndGgtMSxpPW5bcl0sbz1uW3VdO3JldHVybiBpPm8mJihlPXIscj11LHU9ZSxlPWksaT1vLG89ZSksbltyXT10LmZsb29yKGkpLG5bdV09dC5jZWlsKG8pLG59ZnVuY3Rpb24gVWkobil7cmV0dXJuIG4/e2Zsb29yOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmZsb29yKHQvbikqbn0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5jZWlsKHQvbikqbn19OmxzfWZ1bmN0aW9uIGppKG4sdCxlLHIpe3ZhciB1PVtdLGk9W10sbz0wLGE9TWF0aC5taW4obi5sZW5ndGgsdC5sZW5ndGgpLTE7Zm9yKG5bYV08blswXSYmKG49bi5zbGljZSgpLnJldmVyc2UoKSx0PXQuc2xpY2UoKS5yZXZlcnNlKCkpOysrbzw9YTspdS5wdXNoKGUobltvLTFdLG5bb10pKSxpLnB1c2gocih0W28tMV0sdFtvXSkpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1Yby5iaXNlY3Qobix0LDEsYSktMTtyZXR1cm4gaVtlXSh1W2VdKHQpKX19ZnVuY3Rpb24gSGkobix0LGUscil7ZnVuY3Rpb24gdSgpe3ZhciB1PU1hdGgubWluKG4ubGVuZ3RoLHQubGVuZ3RoKT4yP2ppOkRpLGM9cj9QdTpEdTtyZXR1cm4gbz11KG4sdCxjLGUpLGE9dSh0LG4sYyxmdSksaX1mdW5jdGlvbiBpKG4pe3JldHVybiBvKG4pfXZhciBvLGE7cmV0dXJuIGkuaW52ZXJ0PWZ1bmN0aW9uKG4pe3JldHVybiBhKG4pfSxpLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10Lm1hcChOdW1iZXIpLHUoKSk6bn0saS5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLHUoKSk6dH0saS5yYW5nZVJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBpLnJhbmdlKG4pLmludGVycG9sYXRlKE51KX0saS5jbGFtcD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHUoKSk6cn0saS5pbnRlcnBvbGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHUoKSk6ZX0saS50aWNrcz1mdW5jdGlvbih0KXtyZXR1cm4gSWkobix0KX0saS50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFppKG4sdCxlKX0saS5uaWNlPWZ1bmN0aW9uKHQpe3JldHVybiBPaShuLHQpLHUoKX0saS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEhpKG4sdCxlLHIpfSx1KCl9ZnVuY3Rpb24gRmkobix0KXtyZXR1cm4gWG8ucmViaW5kKG4sdCwicmFuZ2UiLCJyYW5nZVJvdW5kIiwiaW50ZXJwb2xhdGUiLCJjbGFtcCIpfWZ1bmN0aW9uIE9pKG4sdCl7cmV0dXJuIFBpKG4sVWkoWWkobix0KVsyXSkpfWZ1bmN0aW9uIFlpKG4sdCl7bnVsbD09dCYmKHQ9MTApO3ZhciBlPXppKG4pLHI9ZVsxXS1lWzBdLHU9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhyL3QpL01hdGguTE4xMCkpLGk9dC9yKnU7cmV0dXJuLjE1Pj1pP3UqPTEwOi4zNT49aT91Kj01Oi43NT49aSYmKHUqPTIpLGVbMF09TWF0aC5jZWlsKGVbMF0vdSkqdSxlWzFdPU1hdGguZmxvb3IoZVsxXS91KSp1Ky41KnUsZVsyXT11LGV9ZnVuY3Rpb24gSWkobix0KXtyZXR1cm4gWG8ucmFuZ2UuYXBwbHkoWG8sWWkobix0KSl9ZnVuY3Rpb24gWmkobix0LGUpe3ZhciByPVlpKG4sdCk7cmV0dXJuIFhvLmZvcm1hdChlP2UucmVwbGFjZShRYSxmdW5jdGlvbihuLHQsZSx1LGksbyxhLGMscyxsKXtyZXR1cm5bdCxlLHUsaSxvLGEsYyxzfHwiLiIrWGkobCxyKSxsXS5qb2luKCIiKX0pOiIsLiIrVmkoclsyXSkrImYiKX1mdW5jdGlvbiBWaShuKXtyZXR1cm4tTWF0aC5mbG9vcihNYXRoLmxvZyhuKS9NYXRoLkxOMTArLjAxKX1mdW5jdGlvbiBYaShuLHQpe3ZhciBlPVZpKHRbMl0pO3JldHVybiBuIGluIGZzP01hdGguYWJzKGUtVmkoTWF0aC5tYXgoTWF0aC5hYnModFswXSksTWF0aC5hYnModFsxXSkpKSkrICsoImUiIT09bik6ZS0yKigiJSI9PT1uKX1mdW5jdGlvbiAkaShuLHQsZSxyKXtmdW5jdGlvbiB1KG4pe3JldHVybihlP01hdGgubG9nKDA+bj8wOm4pOi1NYXRoLmxvZyhuPjA/MDotbikpL01hdGgubG9nKHQpfWZ1bmN0aW9uIGkobil7cmV0dXJuIGU/TWF0aC5wb3codCxuKTotTWF0aC5wb3codCwtbil9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gbih1KHQpKX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGkobi5pbnZlcnQodCkpfSxvLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10WzBdPj0wLG4uZG9tYWluKChyPXQubWFwKE51bWJlcikpLm1hcCh1KSksbyk6cn0sby5iYXNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStlLG4uZG9tYWluKHIubWFwKHUpKSxvKTp0fSxvLm5pY2U9ZnVuY3Rpb24oKXt2YXIgdD1QaShyLm1hcCh1KSxlP01hdGg6Z3MpO3JldHVybiBuLmRvbWFpbih0KSxyPXQubWFwKGkpLG99LG8udGlja3M9ZnVuY3Rpb24oKXt2YXIgbj16aShyKSxvPVtdLGE9blswXSxjPW5bMV0scz1NYXRoLmZsb29yKHUoYSkpLGw9TWF0aC5jZWlsKHUoYykpLGY9dCUxPzI6dDtpZihpc0Zpbml0ZShsLXMpKXtpZihlKXtmb3IoO2w+cztzKyspZm9yKHZhciBoPTE7Zj5oO2grKylvLnB1c2goaShzKSpoKTtvLnB1c2goaShzKSl9ZWxzZSBmb3Ioby5wdXNoKGkocykpO3MrKzxsOylmb3IodmFyIGg9Zi0xO2g+MDtoLS0pby5wdXNoKGkocykqaCk7Zm9yKHM9MDtvW3NdPGE7cysrKTtmb3IobD1vLmxlbmd0aDtvW2wtMV0+YztsLS0pO289by5zbGljZShzLGwpfXJldHVybiBvfSxvLnRpY2tGb3JtYXQ9ZnVuY3Rpb24obix0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gaHM7YXJndW1lbnRzLmxlbmd0aDwyP3Q9aHM6ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVhvLmZvcm1hdCh0KSk7dmFyIHIsYT1NYXRoLm1heCguMSxuL28udGlja3MoKS5sZW5ndGgpLGM9ZT8ocj0xZS0xMixNYXRoLmNlaWwpOihyPS0xZS0xMixNYXRoLmZsb29yKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4vaShjKHUobikrcikpPD1hP3Qobik6IiJ9fSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gJGkobi5jb3B5KCksdCxlLHIpfSxGaShvLG4pfWZ1bmN0aW9uIEJpKG4sdCxlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuKHUodCkpfXZhciB1PVdpKHQpLGk9V2koMS90KTtyZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGkobi5pbnZlcnQodCkpfSxyLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obi5kb21haW4oKGU9dC5tYXAoTnVtYmVyKSkubWFwKHUpKSxyKTplfSxyLnRpY2tzPWZ1bmN0aW9uKG4pe3JldHVybiBJaShlLG4pfSxyLnRpY2tGb3JtYXQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gWmkoZSxuLHQpfSxyLm5pY2U9ZnVuY3Rpb24obil7cmV0dXJuIHIuZG9tYWluKE9pKGUsbikpfSxyLmV4cG9uZW50PWZ1bmN0aW9uKG8pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PVdpKHQ9byksaT1XaSgxL3QpLG4uZG9tYWluKGUubWFwKHUpKSxyKTp0fSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQmkobi5jb3B5KCksdCxlKX0sRmkocixuKX1mdW5jdGlvbiBXaShuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIDA+dD8tTWF0aC5wb3coLXQsbik6TWF0aC5wb3codCxuKX19ZnVuY3Rpb24gSmkobix0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBvWygoaS5nZXQoZSl8fCJyYW5nZSI9PT10LnQmJmkuc2V0KGUsbi5wdXNoKGUpKSktMSklby5sZW5ndGhdfWZ1bmN0aW9uIHIodCxlKXtyZXR1cm4gWG8ucmFuZ2Uobi5sZW5ndGgpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gdCtlKm59KX12YXIgaSxvLGE7cmV0dXJuIGUuZG9tYWluPWZ1bmN0aW9uKHIpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBuO249W10saT1uZXcgdTtmb3IodmFyIG8sYT0tMSxjPXIubGVuZ3RoOysrYTxjOylpLmhhcyhvPXJbYV0pfHxpLnNldChvLG4ucHVzaChvKSk7cmV0dXJuIGVbdC50XS5hcHBseShlLHQuYSl9LGUucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bixhPTAsdD17dDoicmFuZ2UiLGE6YXJndW1lbnRzfSxlKTpvfSxlLnJhbmdlUG9pbnRzPWZ1bmN0aW9uKHUsaSl7YXJndW1lbnRzLmxlbmd0aDwyJiYoaT0wKTt2YXIgYz11WzBdLHM9dVsxXSxsPShzLWMpLyhNYXRoLm1heCgxLG4ubGVuZ3RoLTEpK2kpO3JldHVybiBvPXIobi5sZW5ndGg8Mj8oYytzKS8yOmMrbCppLzIsbCksYT0wLHQ9e3Q6InJhbmdlUG9pbnRzIixhOmFyZ3VtZW50c30sZX0sZS5yYW5nZUJhbmRzPWZ1bmN0aW9uKHUsaSxjKXthcmd1bWVudHMubGVuZ3RoPDImJihpPTApLGFyZ3VtZW50cy5sZW5ndGg8MyYmKGM9aSk7dmFyIHM9dVsxXTx1WzBdLGw9dVtzLTBdLGY9dVsxLXNdLGg9KGYtbCkvKG4ubGVuZ3RoLWkrMipjKTtyZXR1cm4gbz1yKGwraCpjLGgpLHMmJm8ucmV2ZXJzZSgpLGE9aCooMS1pKSx0PXt0OiJyYW5nZUJhbmRzIixhOmFyZ3VtZW50c30sZX0sZS5yYW5nZVJvdW5kQmFuZHM9ZnVuY3Rpb24odSxpLGMpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKGk9MCksYXJndW1lbnRzLmxlbmd0aDwzJiYoYz1pKTt2YXIgcz11WzFdPHVbMF0sbD11W3MtMF0sZj11WzEtc10saD1NYXRoLmZsb29yKChmLWwpLyhuLmxlbmd0aC1pKzIqYykpLGc9Zi1sLShuLmxlbmd0aC1pKSpoO3JldHVybiBvPXIobCtNYXRoLnJvdW5kKGcvMiksaCkscyYmby5yZXZlcnNlKCksYT1NYXRoLnJvdW5kKGgqKDEtaSkpLHQ9e3Q6InJhbmdlUm91bmRCYW5kcyIsYTphcmd1bWVudHN9LGV9LGUucmFuZ2VCYW5kPWZ1bmN0aW9uKCl7cmV0dXJuIGF9LGUucmFuZ2VFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gemkodC5hWzBdKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEppKG4sdCl9LGUuZG9tYWluKG4pfWZ1bmN0aW9uIEdpKG4sdCl7ZnVuY3Rpb24gZSgpe3ZhciBlPTAsaT10Lmxlbmd0aDtmb3IodT1bXTsrK2U8aTspdVtlLTFdPVhvLnF1YW50aWxlKG4sZS9pKTtyZXR1cm4gcn1mdW5jdGlvbiByKG4pe3JldHVybiBpc05hTihuPStuKT92b2lkIDA6dFtYby5iaXNlY3QodSxuKV19dmFyIHU7cmV0dXJuIHIuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFpc05hTihuKX0pLnNvcnQoWG8uYXNjZW5kaW5nKSxlKCkpOm59LHIucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bixlKCkpOnR9LHIucXVhbnRpbGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHV9LHIuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKGUpe3JldHVybiBlPXQuaW5kZXhPZihlKSwwPmU/WzAvMCwwLzBdOltlPjA/dVtlLTFdOm5bMF0sZTx1Lmxlbmd0aD91W2VdOm5bbi5sZW5ndGgtMV1dfSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gR2kobix0KX0sZSgpfWZ1bmN0aW9uIEtpKG4sdCxlKXtmdW5jdGlvbiByKHQpe3JldHVybiBlW01hdGgubWF4KDAsTWF0aC5taW4obyxNYXRoLmZsb29yKGkqKHQtbikpKSldfWZ1bmN0aW9uIHUoKXtyZXR1cm4gaT1lLmxlbmd0aC8odC1uKSxvPWUubGVuZ3RoLTEscn12YXIgaSxvO3JldHVybiByLmRvbWFpbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rZVswXSx0PStlW2UubGVuZ3RoLTFdLHUoKSk6W24sdF19LHIucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix1KCkpOmV9LHIuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0PWUuaW5kZXhPZih0KSx0PTA+dD8wLzA6dC9pK24sW3QsdCsxL2ldfSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gS2kobix0LGUpfSx1KCl9ZnVuY3Rpb24gUWkobix0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBlPj1lP3RbWG8uYmlzZWN0KG4sZSldOnZvaWQgMH1yZXR1cm4gZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlKTpufSxlLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW4sZSk6dH0sZS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dC5pbmRleE9mKGUpLFtuW2UtMV0sbltlXV19LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBRaShuLHQpfSxlfWZ1bmN0aW9uIG5vKG4pe2Z1bmN0aW9uIHQobil7cmV0dXJuK259cmV0dXJuIHQuaW52ZXJ0PXQsdC5kb21haW49dC5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1lLm1hcCh0KSx0KTpufSx0LnRpY2tzPWZ1bmN0aW9uKHQpe3JldHVybiBJaShuLHQpfSx0LnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gWmkobix0LGUpfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gbm8obil9LHR9ZnVuY3Rpb24gdG8obil7cmV0dXJuIG4uaW5uZXJSYWRpdXN9ZnVuY3Rpb24gZW8obil7cmV0dXJuIG4ub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gcm8obil7cmV0dXJuIG4uc3RhcnRBbmdsZX1mdW5jdGlvbiB1byhuKXtyZXR1cm4gbi5lbmRBbmdsZX1mdW5jdGlvbiBpbyhuKXtmdW5jdGlvbiB0KHQpe2Z1bmN0aW9uIG8oKXtzLnB1c2goIk0iLGkobihsKSxhKSl9Zm9yKHZhciBjLHM9W10sbD1bXSxmPS0xLGg9dC5sZW5ndGgsZz1fdChlKSxwPV90KHIpOysrZjxoOyl1LmNhbGwodGhpcyxjPXRbZl0sZik/bC5wdXNoKFsrZy5jYWxsKHRoaXMsYyxmKSwrcC5jYWxsKHRoaXMsYyxmKV0pOmwubGVuZ3RoJiYobygpLGw9W10pO3JldHVybiBsLmxlbmd0aCYmbygpLHMubGVuZ3RoP3Muam9pbigiIik6bnVsbH12YXIgZT1icixyPXdyLHU9YmUsaT1vbyxvPWkua2V5LGE9Ljc7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHQpOnJ9LHQuZGVmaW5lZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1uLHQpOnV9LHQuaW50ZXJwb2xhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIG4/aT1uOihpPU1zLmdldChuKXx8b28pLmtleSx0KTpvfSx0LnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bix0KTphfSx0fWZ1bmN0aW9uIG9vKG4pe3JldHVybiBuLmpvaW4oIkwiKX1mdW5jdGlvbiBhbyhuKXtyZXR1cm4gb28obikrIloifWZ1bmN0aW9uIGNvKG4pe2Zvcih2YXIgdD0wLGU9bi5sZW5ndGgscj1uWzBdLHU9W3JbMF0sIiwiLHJbMV1dOysrdDxlOyl1LnB1c2goIkgiLChyWzBdKyhyPW5bdF0pWzBdKS8yLCJWIixyWzFdKTtyZXR1cm4gZT4xJiZ1LnB1c2goIkgiLHJbMF0pLHUuam9pbigiIil9ZnVuY3Rpb24gc28obil7Zm9yKHZhciB0PTAsZT1uLmxlbmd0aCxyPW5bMF0sdT1bclswXSwiLCIsclsxXV07Kyt0PGU7KXUucHVzaCgiViIsKHI9blt0XSlbMV0sIkgiLHJbMF0pO3JldHVybiB1LmpvaW4oIiIpfWZ1bmN0aW9uIGxvKG4pe2Zvcih2YXIgdD0wLGU9bi5sZW5ndGgscj1uWzBdLHU9W3JbMF0sIiwiLHJbMV1dOysrdDxlOyl1LnB1c2goIkgiLChyPW5bdF0pWzBdLCJWIixyWzFdKTtyZXR1cm4gdS5qb2luKCIiKX1mdW5jdGlvbiBmbyhuLHQpe3JldHVybiBuLmxlbmd0aDw0P29vKG4pOm5bMV0rcG8obi5zbGljZSgxLG4ubGVuZ3RoLTEpLHZvKG4sdCkpfWZ1bmN0aW9uIGhvKG4sdCl7cmV0dXJuIG4ubGVuZ3RoPDM/b28obik6blswXStwbygobi5wdXNoKG5bMF0pLG4pLHZvKFtuW24ubGVuZ3RoLTJdXS5jb25jYXQobixbblsxXV0pLHQpKX1mdW5jdGlvbiBnbyhuLHQpe3JldHVybiBuLmxlbmd0aDwzP29vKG4pOm5bMF0rcG8obix2byhuLHQpKX1mdW5jdGlvbiBwbyhuLHQpe2lmKHQubGVuZ3RoPDF8fG4ubGVuZ3RoIT10Lmxlbmd0aCYmbi5sZW5ndGghPXQubGVuZ3RoKzIpcmV0dXJuIG9vKG4pO3ZhciBlPW4ubGVuZ3RoIT10Lmxlbmd0aCxyPSIiLHU9blswXSxpPW5bMV0sbz10WzBdLGE9byxjPTE7aWYoZSYmKHIrPSJRIisoaVswXS0yKm9bMF0vMykrIiwiKyhpWzFdLTIqb1sxXS8zKSsiLCIraVswXSsiLCIraVsxXSx1PW5bMV0sYz0yKSx0Lmxlbmd0aD4xKXthPXRbMV0saT1uW2NdLGMrKyxyKz0iQyIrKHVbMF0rb1swXSkrIiwiKyh1WzFdK29bMV0pKyIsIisoaVswXS1hWzBdKSsiLCIrKGlbMV0tYVsxXSkrIiwiK2lbMF0rIiwiK2lbMV07Zm9yKHZhciBzPTI7czx0Lmxlbmd0aDtzKyssYysrKWk9bltjXSxhPXRbc10scis9IlMiKyhpWzBdLWFbMF0pKyIsIisoaVsxXS1hWzFdKSsiLCIraVswXSsiLCIraVsxXX1pZihlKXt2YXIgbD1uW2NdO3IrPSJRIisoaVswXSsyKmFbMF0vMykrIiwiKyhpWzFdKzIqYVsxXS8zKSsiLCIrbFswXSsiLCIrbFsxXX1yZXR1cm4gcn1mdW5jdGlvbiB2byhuLHQpe2Zvcih2YXIgZSxyPVtdLHU9KDEtdCkvMixpPW5bMF0sbz1uWzFdLGE9MSxjPW4ubGVuZ3RoOysrYTxjOyllPWksaT1vLG89blthXSxyLnB1c2goW3UqKG9bMF0tZVswXSksdSoob1sxXS1lWzFdKV0pO3JldHVybiByfWZ1bmN0aW9uIG1vKG4pe2lmKG4ubGVuZ3RoPDMpcmV0dXJuIG9vKG4pO3ZhciB0PTEsZT1uLmxlbmd0aCxyPW5bMF0sdT1yWzBdLGk9clsxXSxvPVt1LHUsdSwocj1uWzFdKVswXV0sYT1baSxpLGksclsxXV0sYz1bdSwiLCIsaSwiTCIsX28od3MsbyksIiwiLF9vKHdzLGEpXTtmb3Iobi5wdXNoKG5bZS0xXSk7Kyt0PD1lOylyPW5bdF0sby5zaGlmdCgpLG8ucHVzaChyWzBdKSxhLnNoaWZ0KCksYS5wdXNoKHJbMV0pLGJvKGMsbyxhKTtyZXR1cm4gbi5wb3AoKSxjLnB1c2goIkwiLHIpLGMuam9pbigiIil9ZnVuY3Rpb24geW8obil7aWYobi5sZW5ndGg8NClyZXR1cm4gb28obik7Zm9yKHZhciB0LGU9W10scj0tMSx1PW4ubGVuZ3RoLGk9WzBdLG89WzBdOysrcjwzOyl0PW5bcl0saS5wdXNoKHRbMF0pLG8ucHVzaCh0WzFdKTtmb3IoZS5wdXNoKF9vKHdzLGkpKyIsIitfbyh3cyxvKSksLS1yOysrcjx1Oyl0PW5bcl0saS5zaGlmdCgpLGkucHVzaCh0WzBdKSxvLnNoaWZ0KCksby5wdXNoKHRbMV0pLGJvKGUsaSxvKTtyZXR1cm4gZS5qb2luKCIiKX1mdW5jdGlvbiB4byhuKXtmb3IodmFyIHQsZSxyPS0xLHU9bi5sZW5ndGgsaT11KzQsbz1bXSxhPVtdOysrcjw0OyllPW5bciV1XSxvLnB1c2goZVswXSksYS5wdXNoKGVbMV0pO2Zvcih0PVtfbyh3cyxvKSwiLCIsX28od3MsYSldLC0tcjsrK3I8aTspZT1uW3IldV0sby5zaGlmdCgpLG8ucHVzaChlWzBdKSxhLnNoaWZ0KCksYS5wdXNoKGVbMV0pLGJvKHQsbyxhKTtyZXR1cm4gdC5qb2luKCIiKX1mdW5jdGlvbiBNbyhuLHQpe3ZhciBlPW4ubGVuZ3RoLTE7aWYoZSlmb3IodmFyIHIsdSxpPW5bMF1bMF0sbz1uWzBdWzFdLGE9bltlXVswXS1pLGM9bltlXVsxXS1vLHM9LTE7KytzPD1lOylyPW5bc10sdT1zL2UsclswXT10KnJbMF0rKDEtdCkqKGkrdSphKSxyWzFdPXQqclsxXSsoMS10KSoobyt1KmMpO3JldHVybiBtbyhuKX1mdW5jdGlvbiBfbyhuLHQpe3JldHVybiBuWzBdKnRbMF0rblsxXSp0WzFdK25bMl0qdFsyXStuWzNdKnRbM119ZnVuY3Rpb24gYm8obix0LGUpe24ucHVzaCgiQyIsX28oX3MsdCksIiwiLF9vKF9zLGUpLCIsIixfbyhicyx0KSwiLCIsX28oYnMsZSksIiwiLF9vKHdzLHQpLCIsIixfbyh3cyxlKSl9ZnVuY3Rpb24gd28obix0KXtyZXR1cm4odFsxXS1uWzFdKS8odFswXS1uWzBdKX1mdW5jdGlvbiBTbyhuKXtmb3IodmFyIHQ9MCxlPW4ubGVuZ3RoLTEscj1bXSx1PW5bMF0saT1uWzFdLG89clswXT13byh1LGkpOysrdDxlOylyW3RdPShvKyhvPXdvKHU9aSxpPW5bdCsxXSkpKS8yO3JldHVybiByW3RdPW8scn1mdW5jdGlvbiBrbyhuKXtmb3IodmFyIHQsZSxyLHUsaT1bXSxvPVNvKG4pLGE9LTEsYz1uLmxlbmd0aC0xOysrYTxjOyl0PXdvKG5bYV0sblthKzFdKSxvYSh0KTxBYT9vW2FdPW9bYSsxXT0wOihlPW9bYV0vdCxyPW9bYSsxXS90LHU9ZSplK3Iqcix1PjkmJih1PTMqdC9NYXRoLnNxcnQodSksb1thXT11KmUsb1thKzFdPXUqcikpO2ZvcihhPS0xOysrYTw9YzspdT0obltNYXRoLm1pbihjLGErMSldWzBdLW5bTWF0aC5tYXgoMCxhLTEpXVswXSkvKDYqKDErb1thXSpvW2FdKSksaS5wdXNoKFt1fHwwLG9bYV0qdXx8MF0pO3JldHVybiBpfWZ1bmN0aW9uIEVvKG4pe3JldHVybiBuLmxlbmd0aDwzP29vKG4pOm5bMF0rcG8obixrbyhuKSl9ZnVuY3Rpb24gQW8obil7Zm9yKHZhciB0LGUscix1PS0xLGk9bi5sZW5ndGg7Kyt1PGk7KXQ9blt1XSxlPXRbMF0scj10WzFdK3lzLHRbMF09ZSpNYXRoLmNvcyhyKSx0WzFdPWUqTWF0aC5zaW4ocik7cmV0dXJuIG59ZnVuY3Rpb24gQ28obil7ZnVuY3Rpb24gdCh0KXtmdW5jdGlvbiBjKCl7di5wdXNoKCJNIixhKG4obSksZiksbCxzKG4oZC5yZXZlcnNlKCkpLGYpLCJaIil9Zm9yKHZhciBoLGcscCx2PVtdLGQ9W10sbT1bXSx5PS0xLHg9dC5sZW5ndGgsTT1fdChlKSxfPV90KHUpLGI9ZT09PXI/ZnVuY3Rpb24oKXtyZXR1cm4gZ306X3Qociksdz11PT09aT9mdW5jdGlvbigpe3JldHVybiBwfTpfdChpKTsrK3k8eDspby5jYWxsKHRoaXMsaD10W3ldLHkpPyhkLnB1c2goW2c9K00uY2FsbCh0aGlzLGgseSkscD0rXy5jYWxsKHRoaXMsaCx5KV0pLG0ucHVzaChbK2IuY2FsbCh0aGlzLGgseSksK3cuY2FsbCh0aGlzLGgseSldKSk6ZC5sZW5ndGgmJihjKCksZD1bXSxtPVtdKTtyZXR1cm4gZC5sZW5ndGgmJmMoKSx2Lmxlbmd0aD92LmpvaW4oIiIpOm51bGx9dmFyIGU9YnIscj1icix1PTAsaT13cixvPWJlLGE9b28sYz1hLmtleSxzPWEsbD0iTCIsZj0uNztyZXR1cm4gdC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXI9bix0KTpyfSx0LngwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4sdCk6ZX0sdC54MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHQpOnJ9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1pPW4sdCk6aX0sdC55MD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1uLHQpOnV9LHQueTE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bix0KTppfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bix0KTpvfSx0LmludGVycG9sYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSJmdW5jdGlvbiI9PXR5cGVvZiBuP2E9bjooYT1Ncy5nZXQobil8fG9vKS5rZXkscz1hLnJldmVyc2V8fGEsbD1hLmNsb3NlZD8iTSI6IkwiLHQpOmN9LHQudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uLHQpOmZ9LHR9ZnVuY3Rpb24gTm8obil7cmV0dXJuIG4ucmFkaXVzfWZ1bmN0aW9uIExvKG4pe3JldHVybltuLngsbi55XX1mdW5jdGlvbiBUbyhuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlPXRbMF0scj10WzFdK3lzO3JldHVybltlKk1hdGguY29zKHIpLGUqTWF0aC5zaW4ocildfX1mdW5jdGlvbiBxbygpe3JldHVybiA2NH1mdW5jdGlvbiB6bygpe3JldHVybiJjaXJjbGUifWZ1bmN0aW9uIFJvKG4pe3ZhciB0PU1hdGguc3FydChuL1NhKTtyZXR1cm4iTTAsIit0KyJBIit0KyIsIit0KyIgMCAxLDEgMCwiKy10KyJBIit0KyIsIit0KyIgMCAxLDEgMCwiK3QrIloifWZ1bmN0aW9uIERvKG4sdCl7cmV0dXJuIGZhKG4sTnMpLG4uaWQ9dCxufWZ1bmN0aW9uIFBvKG4sdCxlLHIpe3ZhciB1PW4uaWQ7cmV0dXJuIFIobiwiZnVuY3Rpb24iPT10eXBlb2YgZT9mdW5jdGlvbihuLGksbyl7bi5fX3RyYW5zaXRpb25fX1t1XS50d2Vlbi5zZXQodCxyKGUuY2FsbChuLG4uX19kYXRhX18saSxvKSkpfTooZT1yKGUpLGZ1bmN0aW9uKG4pe24uX190cmFuc2l0aW9uX19bdV0udHdlZW4uc2V0KHQsZSl9KSl9ZnVuY3Rpb24gVW8obil7cmV0dXJuIG51bGw9PW4mJihuPSIiKSxmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9bn19ZnVuY3Rpb24gam8obix0LGUscil7dmFyIGk9bi5fX3RyYW5zaXRpb25fX3x8KG4uX190cmFuc2l0aW9uX189e2FjdGl2ZTowLGNvdW50OjB9KSxvPWlbZV07aWYoIW8pe3ZhciBhPXIudGltZTtvPWlbZV09e3R3ZWVuOm5ldyB1LHRpbWU6YSxlYXNlOnIuZWFzZSxkZWxheTpyLmRlbGF5LGR1cmF0aW9uOnIuZHVyYXRpb259LCsraS5jb3VudCxYby50aW1lcihmdW5jdGlvbihyKXtmdW5jdGlvbiB1KHIpe3JldHVybiBpLmFjdGl2ZT5lP3MoKTooaS5hY3RpdmU9ZSxvLmV2ZW50JiZvLmV2ZW50LnN0YXJ0LmNhbGwobixsLHQpLG8udHdlZW4uZm9yRWFjaChmdW5jdGlvbihlLHIpeyhyPXIuY2FsbChuLGwsdCkpJiZ2LnB1c2gocil9KSxYby50aW1lcihmdW5jdGlvbigpe3JldHVybiBwLmM9YyhyfHwxKT9iZTpjLDF9LDAsYSksdm9pZCAwKX1mdW5jdGlvbiBjKHIpe2lmKGkuYWN0aXZlIT09ZSlyZXR1cm4gcygpO2Zvcih2YXIgdT1yL2csYT1mKHUpLGM9di5sZW5ndGg7Yz4wOyl2Wy0tY10uY2FsbChuLGEpO3JldHVybiB1Pj0xPyhvLmV2ZW50JiZvLmV2ZW50LmVuZC5jYWxsKG4sbCx0KSxzKCkpOnZvaWQgMH1mdW5jdGlvbiBzKCl7cmV0dXJuLS1pLmNvdW50P2RlbGV0ZSBpW2VdOmRlbGV0ZSBuLl9fdHJhbnNpdGlvbl9fLDF9dmFyIGw9bi5fX2RhdGFfXyxmPW8uZWFzZSxoPW8uZGVsYXksZz1vLmR1cmF0aW9uLHA9SmEsdj1bXTtyZXR1cm4gcC50PWgrYSxyPj1oP3Uoci1oKToocC5jPXUsdm9pZCAwKX0sMCxhKX19ZnVuY3Rpb24gSG8obix0KXtuLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24obil7cmV0dXJuInRyYW5zbGF0ZSgiK3QobikrIiwwKSJ9KX1mdW5jdGlvbiBGbyhuLHQpe24uYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbihuKXtyZXR1cm4idHJhbnNsYXRlKDAsIit0KG4pKyIpIn0pfWZ1bmN0aW9uIE9vKG4pe3JldHVybiBuLnRvSVNPU3RyaW5nKCl9ZnVuY3Rpb24gWW8obix0LGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIG4odCl9ZnVuY3Rpb24gdShuLGUpe3ZhciByPW5bMV0tblswXSx1PXIvZSxpPVhvLmJpc2VjdChqcyx1KTtyZXR1cm4gaT09anMubGVuZ3RoP1t0LnllYXIsWWkobi5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4vMzE1MzZlNn0pLGUpWzJdXTppP3RbdS9qc1tpLTFdPGpzW2ldL3U/aS0xOmldOltPcyxZaShuLGUpWzJdXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIElvKG4uaW52ZXJ0KHQpKX0sci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4uZG9tYWluKHQpLHIpOm4uZG9tYWluKCkubWFwKElvKX0sci5uaWNlPWZ1bmN0aW9uKG4sdCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4haXNOYU4oZSkmJiFuLnJhbmdlKGUsSW8oK2UrMSksdCkubGVuZ3RofXZhciBpPXIuZG9tYWluKCksbz16aShpKSxhPW51bGw9PW4/dShvLDEwKToibnVtYmVyIj09dHlwZW9mIG4mJnUobyxuKTtyZXR1cm4gYSYmKG49YVswXSx0PWFbMV0pLHIuZG9tYWluKFBpKGksdD4xP3tmbG9vcjpmdW5jdGlvbih0KXtmb3IoO2UodD1uLmZsb29yKHQpKTspdD1Jbyh0LTEpO3JldHVybiB0fSxjZWlsOmZ1bmN0aW9uKHQpe2Zvcig7ZSh0PW4uY2VpbCh0KSk7KXQ9SW8oK3QrMSk7cmV0dXJuIHR9fTpuKSl9LHIudGlja3M9ZnVuY3Rpb24obix0KXt2YXIgZT16aShyLmRvbWFpbigpKSxpPW51bGw9PW4/dShlLDEwKToibnVtYmVyIj09dHlwZW9mIG4/dShlLG4pOiFuLnJhbmdlJiZbe3JhbmdlOm59LHRdO3JldHVybiBpJiYobj1pWzBdLHQ9aVsxXSksbi5yYW5nZShlWzBdLElvKCtlWzFdKzEpLDE+dD8xOnQpfSxyLnRpY2tGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFlvKG4uY29weSgpLHQsZSl9LEZpKHIsbil9ZnVuY3Rpb24gSW8obil7cmV0dXJuIG5ldyBEYXRlKG4pfWZ1bmN0aW9uIFpvKG4pe3JldHVybiBKU09OLnBhcnNlKG4ucmVzcG9uc2VUZXh0KX1mdW5jdGlvbiBWbyhuKXt2YXIgdD1Xby5jcmVhdGVSYW5nZSgpO3JldHVybiB0LnNlbGVjdE5vZGUoV28uYm9keSksdC5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQobi5yZXNwb25zZVRleHQpfXZhciBYbz17dmVyc2lvbjoiMy40LjMifTtEYXRlLm5vd3x8KERhdGUubm93PWZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfSk7dmFyICRvPVtdLnNsaWNlLEJvPWZ1bmN0aW9uKG4pe3JldHVybiAkby5jYWxsKG4pfSxXbz1kb2N1bWVudCxKbz1Xby5kb2N1bWVudEVsZW1lbnQsR289d2luZG93O3RyeXtCbyhKby5jaGlsZE5vZGVzKVswXS5ub2RlVHlwZX1jYXRjaChLbyl7Qm89ZnVuY3Rpb24obil7Zm9yKHZhciB0PW4ubGVuZ3RoLGU9bmV3IEFycmF5KHQpO3QtLTspZVt0XT1uW3RdO3JldHVybiBlfX10cnl7V28uY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUuc2V0UHJvcGVydHkoIm9wYWNpdHkiLDAsIiIpfWNhdGNoKFFvKXt2YXIgbmE9R28uRWxlbWVudC5wcm90b3R5cGUsdGE9bmEuc2V0QXR0cmlidXRlLGVhPW5hLnNldEF0dHJpYnV0ZU5TLHJhPUdvLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLHVhPXJhLnNldFByb3BlcnR5O25hLnNldEF0dHJpYnV0ZT1mdW5jdGlvbihuLHQpe3RhLmNhbGwodGhpcyxuLHQrIiIpfSxuYS5zZXRBdHRyaWJ1dGVOUz1mdW5jdGlvbihuLHQsZSl7ZWEuY2FsbCh0aGlzLG4sdCxlKyIiKX0scmEuc2V0UHJvcGVydHk9ZnVuY3Rpb24obix0LGUpe3VhLmNhbGwodGhpcyxuLHQrIiIsZSl9fVhvLmFzY2VuZGluZz1mdW5jdGlvbihuLHQpe3JldHVybiB0Pm4/LTE6bj50PzE6bj49dD8wOjAvMH0sWG8uZGVzY2VuZGluZz1mdW5jdGlvbihuLHQpe3JldHVybiBuPnQ/LTE6dD5uPzE6dD49bj8wOjAvMH0sWG8ubWluPWZ1bmN0aW9uKG4sdCl7dmFyIGUscix1PS0xLGk9bi5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7Kyt1PGkmJiEobnVsbCE9KGU9blt1XSkmJmU+PWUpOyllPXZvaWQgMDtmb3IoOysrdTxpOyludWxsIT0ocj1uW3VdKSYmZT5yJiYoZT1yKX1lbHNle2Zvcig7Kyt1PGkmJiEobnVsbCE9KGU9dC5jYWxsKG4sblt1XSx1KSkmJmU+PWUpOyllPXZvaWQgMDtmb3IoOysrdTxpOyludWxsIT0ocj10LmNhbGwobixuW3VdLHUpKSYmZT5yJiYoZT1yKX1yZXR1cm4gZX0sWG8ubWF4PWZ1bmN0aW9uKG4sdCl7dmFyIGUscix1PS0xLGk9bi5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7Kyt1PGkmJiEobnVsbCE9KGU9blt1XSkmJmU+PWUpOyllPXZvaWQgMDtmb3IoOysrdTxpOyludWxsIT0ocj1uW3VdKSYmcj5lJiYoZT1yKX1lbHNle2Zvcig7Kyt1PGkmJiEobnVsbCE9KGU9dC5jYWxsKG4sblt1XSx1KSkmJmU+PWUpOyllPXZvaWQgMDtmb3IoOysrdTxpOyludWxsIT0ocj10LmNhbGwobixuW3VdLHUpKSYmcj5lJiYoZT1yKX1yZXR1cm4gZX0sWG8uZXh0ZW50PWZ1bmN0aW9uKG4sdCl7dmFyIGUscix1LGk9LTEsbz1uLmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aCl7Zm9yKDsrK2k8byYmIShudWxsIT0oZT11PW5baV0pJiZlPj1lKTspZT11PXZvaWQgMDtmb3IoOysraTxvOyludWxsIT0ocj1uW2ldKSYmKGU+ciYmKGU9cikscj51JiYodT1yKSl9ZWxzZXtmb3IoOysraTxvJiYhKG51bGwhPShlPXU9dC5jYWxsKG4sbltpXSxpKSkmJmU+PWUpOyllPXZvaWQgMDtmb3IoOysraTxvOyludWxsIT0ocj10LmNhbGwobixuW2ldLGkpKSYmKGU+ciYmKGU9cikscj51JiYodT1yKSl9cmV0dXJuW2UsdV19LFhvLnN1bT1mdW5jdGlvbihuLHQpe3ZhciBlLHI9MCx1PW4ubGVuZ3RoLGk9LTE7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK2k8dTspaXNOYU4oZT0rbltpXSl8fChyKz1lKTtlbHNlIGZvcig7KytpPHU7KWlzTmFOKGU9K3QuY2FsbChuLG5baV0saSkpfHwocis9ZSk7cmV0dXJuIHJ9LFhvLm1lYW49ZnVuY3Rpb24odCxlKXt2YXIgcix1PXQubGVuZ3RoLGk9MCxvPS0xLGE9MDtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysrbzx1OyluKHI9dFtvXSkmJihpKz0oci1pKS8rK2EpO2Vsc2UgZm9yKDsrK288dTspbihyPWUuY2FsbCh0LHRbb10sbykpJiYoaSs9KHItaSkvKythKTtyZXR1cm4gYT9pOnZvaWQgMH0sWG8ucXVhbnRpbGU9ZnVuY3Rpb24obix0KXt2YXIgZT0obi5sZW5ndGgtMSkqdCsxLHI9TWF0aC5mbG9vcihlKSx1PStuW3ItMV0saT1lLXI7cmV0dXJuIGk/dStpKihuW3JdLXUpOnV9LFhvLm1lZGlhbj1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjEmJih0PXQubWFwKGUpKSx0PXQuZmlsdGVyKG4pLHQubGVuZ3RoP1hvLnF1YW50aWxlKHQuc29ydChYby5hc2NlbmRpbmcpLC41KTp2b2lkIDB9LFhvLmJpc2VjdG9yPWZ1bmN0aW9uKG4pe3JldHVybntsZWZ0OmZ1bmN0aW9uKHQsZSxyLHUpe2Zvcihhcmd1bWVudHMubGVuZ3RoPDMmJihyPTApLGFyZ3VtZW50cy5sZW5ndGg8NCYmKHU9dC5sZW5ndGgpO3U+cjspe3ZhciBpPXIrdT4+PjE7bi5jYWxsKHQsdFtpXSxpKTxlP3I9aSsxOnU9aX1yZXR1cm4gcn0scmlnaHQ6ZnVuY3Rpb24odCxlLHIsdSl7Zm9yKGFyZ3VtZW50cy5sZW5ndGg8MyYmKHI9MCksYXJndW1lbnRzLmxlbmd0aDw0JiYodT10Lmxlbmd0aCk7dT5yOyl7dmFyIGk9cit1Pj4+MTtlPG4uY2FsbCh0LHRbaV0saSk/dT1pOnI9aSsxfXJldHVybiByfX19O3ZhciBpYT1Yby5iaXNlY3RvcihmdW5jdGlvbihuKXtyZXR1cm4gbn0pO1hvLmJpc2VjdExlZnQ9aWEubGVmdCxYby5iaXNlY3Q9WG8uYmlzZWN0UmlnaHQ9aWEucmlnaHQsWG8uc2h1ZmZsZT1mdW5jdGlvbihuKXtmb3IodmFyIHQsZSxyPW4ubGVuZ3RoO3I7KWU9MHxNYXRoLnJhbmRvbSgpKnItLSx0PW5bcl0sbltyXT1uW2VdLG5bZV09dDtyZXR1cm4gbn0sWG8ucGVybXV0ZT1mdW5jdGlvbihuLHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPW5ldyBBcnJheShlKTtlLS07KXJbZV09blt0W2VdXTtyZXR1cm4gcn0sWG8ucGFpcnM9ZnVuY3Rpb24obil7Zm9yKHZhciB0LGU9MCxyPW4ubGVuZ3RoLTEsdT1uWzBdLGk9bmV3IEFycmF5KDA+cj8wOnIpO3I+ZTspaVtlXT1bdD11LHU9blsrK2VdXTtyZXR1cm4gaX0sWG8uemlwPWZ1bmN0aW9uKCl7aWYoISh1PWFyZ3VtZW50cy5sZW5ndGgpKXJldHVybltdO2Zvcih2YXIgbj0tMSxlPVhvLm1pbihhcmd1bWVudHMsdCkscj1uZXcgQXJyYXkoZSk7KytuPGU7KWZvcih2YXIgdSxpPS0xLG89cltuXT1uZXcgQXJyYXkodSk7KytpPHU7KW9baV09YXJndW1lbnRzW2ldW25dO3JldHVybiByfSxYby50cmFuc3Bvc2U9ZnVuY3Rpb24obil7cmV0dXJuIFhvLnppcC5hcHBseShYbyxuKX0sWG8ua2V5cz1mdW5jdGlvbihuKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gbil0LnB1c2goZSk7cmV0dXJuIHR9LFhvLnZhbHVlcz1mdW5jdGlvbihuKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gbil0LnB1c2gobltlXSk7cmV0dXJuIHR9LFhvLmVudHJpZXM9ZnVuY3Rpb24obil7dmFyIHQ9W107Zm9yKHZhciBlIGluIG4pdC5wdXNoKHtrZXk6ZSx2YWx1ZTpuW2VdfSk7cmV0dXJuIHR9LFhvLm1lcmdlPWZ1bmN0aW9uKG4pe2Zvcih2YXIgdCxlLHIsdT1uLmxlbmd0aCxpPS0xLG89MDsrK2k8dTspbys9bltpXS5sZW5ndGg7Zm9yKGU9bmV3IEFycmF5KG8pOy0tdT49MDspZm9yKHI9blt1XSx0PXIubGVuZ3RoOy0tdD49MDspZVstLW9dPXJbdF07cmV0dXJuIGV9O3ZhciBvYT1NYXRoLmFicztYby5yYW5nZT1mdW5jdGlvbihuLHQscil7aWYoYXJndW1lbnRzLmxlbmd0aDwzJiYocj0xLGFyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9bixuPTApKSwxLzA9PT0odC1uKS9yKXRocm93IG5ldyBFcnJvcigiaW5maW5pdGUgcmFuZ2UiKTt2YXIgdSxpPVtdLG89ZShvYShyKSksYT0tMTtpZihuKj1vLHQqPW8scio9bywwPnIpZm9yKDsodT1uK3IqKythKT50OylpLnB1c2godS9vKTtlbHNlIGZvcig7KHU9bityKisrYSk8dDspaS5wdXNoKHUvbyk7cmV0dXJuIGl9LFhvLm1hcD1mdW5jdGlvbihuKXt2YXIgdD1uZXcgdTtpZihuIGluc3RhbmNlb2YgdSluLmZvckVhY2goZnVuY3Rpb24obixlKXt0LnNldChuLGUpfSk7ZWxzZSBmb3IodmFyIGUgaW4gbil0LnNldChlLG5bZV0pO3JldHVybiB0fSxyKHUse2hhczppLGdldDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpc1thYStuXX0sc2V0OmZ1bmN0aW9uKG4sdCl7cmV0dXJuIHRoaXNbYWErbl09dH0scmVtb3ZlOm8sa2V5czphLHZhbHVlczpmdW5jdGlvbigpe3ZhciBuPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24odCxlKXtuLnB1c2goZSl9KSxufSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe24ucHVzaCh7a2V5OnQsdmFsdWU6ZX0pfSksbn0sc2l6ZTpjLGVtcHR5OnMsZm9yRWFjaDpmdW5jdGlvbihuKXtmb3IodmFyIHQgaW4gdGhpcyl0LmNoYXJDb2RlQXQoMCk9PT1jYSYmbi5jYWxsKHRoaXMsdC5zdWJzdHJpbmcoMSksdGhpc1t0XSl9fSk7dmFyIGFhPSJceDAwIixjYT1hYS5jaGFyQ29kZUF0KDApO1hvLm5lc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsYSxjKXtpZihjPj1vLmxlbmd0aClyZXR1cm4gcj9yLmNhbGwoaSxhKTplP2Euc29ydChlKTphO2Zvcih2YXIgcyxsLGYsaCxnPS0xLHA9YS5sZW5ndGgsdj1vW2MrK10sZD1uZXcgdTsrK2c8cDspKGg9ZC5nZXQocz12KGw9YVtnXSkpKT9oLnB1c2gobCk6ZC5zZXQocyxbbF0pO3JldHVybiB0PyhsPXQoKSxmPWZ1bmN0aW9uKGUscil7bC5zZXQoZSxuKHQscixjKSl9KToobD17fSxmPWZ1bmN0aW9uKGUscil7bFtlXT1uKHQscixjKX0pLGQuZm9yRWFjaChmKSxsfWZ1bmN0aW9uIHQobixlKXtpZihlPj1vLmxlbmd0aClyZXR1cm4gbjt2YXIgcj1bXSx1PWFbZSsrXTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG4sdSl7ci5wdXNoKHtrZXk6bix2YWx1ZXM6dCh1LGUpfSl9KSx1P3Iuc29ydChmdW5jdGlvbihuLHQpe3JldHVybiB1KG4ua2V5LHQua2V5KX0pOnJ9dmFyIGUscixpPXt9LG89W10sYT1bXTtyZXR1cm4gaS5tYXA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbihlLHQsMCl9LGkuZW50cmllcz1mdW5jdGlvbihlKXtyZXR1cm4gdChuKFhvLm1hcCxlLDApLDApfSxpLmtleT1mdW5jdGlvbihuKXtyZXR1cm4gby5wdXNoKG4pLGl9LGkuc29ydEtleXM9ZnVuY3Rpb24obil7cmV0dXJuIGFbby5sZW5ndGgtMV09bixpfSxpLnNvcnRWYWx1ZXM9ZnVuY3Rpb24obil7cmV0dXJuIGU9bixpfSxpLnJvbGx1cD1mdW5jdGlvbihuKXtyZXR1cm4gcj1uLGl9LGl9LFhvLnNldD1mdW5jdGlvbihuKXt2YXIgdD1uZXcgbDtpZihuKWZvcih2YXIgZT0wLHI9bi5sZW5ndGg7cj5lOysrZSl0LmFkZChuW2VdKTtyZXR1cm4gdH0scihsLHtoYXM6aSxhZGQ6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXNbYWErbl09ITAsbn0scmVtb3ZlOmZ1bmN0aW9uKG4pe3JldHVybiBuPWFhK24sbiBpbiB0aGlzJiZkZWxldGUgdGhpc1tuXX0sdmFsdWVzOmEsc2l6ZTpjLGVtcHR5OnMsZm9yRWFjaDpmdW5jdGlvbihuKXtmb3IodmFyIHQgaW4gdGhpcyl0LmNoYXJDb2RlQXQoMCk9PT1jYSYmbi5jYWxsKHRoaXMsdC5zdWJzdHJpbmcoMSkpfX0pLFhvLmJlaGF2aW9yPXt9LFhvLnJlYmluZD1mdW5jdGlvbihuLHQpe2Zvcih2YXIgZSxyPTEsdT1hcmd1bWVudHMubGVuZ3RoOysrcjx1OyluW2U9YXJndW1lbnRzW3JdXT1mKG4sdCx0W2VdKTtyZXR1cm4gbn07dmFyIHNhPVsid2Via2l0IiwibXMiLCJtb3oiLCJNb3oiLCJvIiwiTyJdO1hvLmRpc3BhdGNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW5ldyBwLHQ9LTEsZT1hcmd1bWVudHMubGVuZ3RoOysrdDxlOyluW2FyZ3VtZW50c1t0XV09dihuKTtyZXR1cm4gbn0scC5wcm90b3R5cGUub249ZnVuY3Rpb24obix0KXt2YXIgZT1uLmluZGV4T2YoIi4iKSxyPSIiO2lmKGU+PTAmJihyPW4uc3Vic3RyaW5nKGUrMSksbj1uLnN1YnN0cmluZygwLGUpKSxuKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/dGhpc1tuXS5vbihyKTp0aGlzW25dLm9uKHIsdCk7aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgpe2lmKG51bGw9PXQpZm9yKG4gaW4gdGhpcyl0aGlzLmhhc093blByb3BlcnR5KG4pJiZ0aGlzW25dLm9uKHIsbnVsbCk7cmV0dXJuIHRoaXN9fSxYby5ldmVudD1udWxsLFhvLnJlcXVvdGU9ZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZShsYSwiXFwkJiIpfTt2YXIgbGE9L1tcXFxeXCRcKlwrXD9cfFxbXF1cKFwpXC5ce1x9XS9nLGZhPXt9Ll9fcHJvdG9fXz9mdW5jdGlvbihuLHQpe24uX19wcm90b19fPXR9OmZ1bmN0aW9uKG4sdCl7Zm9yKHZhciBlIGluIHQpbltlXT10W2VdfSxoYT1mdW5jdGlvbihuLHQpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3Iobil9LGdhPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQucXVlcnlTZWxlY3RvckFsbChuKX0scGE9Sm9baChKbywibWF0Y2hlc1NlbGVjdG9yIildLHZhPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHBhLmNhbGwobix0KX07ImZ1bmN0aW9uIj09dHlwZW9mIFNpenpsZSYmKGhhPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIFNpenpsZShuLHQpWzBdfHxudWxsfSxnYT1TaXp6bGUsdmE9U2l6emxlLm1hdGNoZXNTZWxlY3RvciksWG8uc2VsZWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHhhfTt2YXIgZGE9WG8uc2VsZWN0aW9uLnByb3RvdHlwZT1bXTtkYS5zZWxlY3Q9ZnVuY3Rpb24obil7dmFyIHQsZSxyLHUsaT1bXTtuPU0obik7Zm9yKHZhciBvPS0xLGE9dGhpcy5sZW5ndGg7KytvPGE7KXtpLnB1c2godD1bXSksdC5wYXJlbnROb2RlPShyPXRoaXNbb10pLnBhcmVudE5vZGU7Zm9yKHZhciBjPS0xLHM9ci5sZW5ndGg7KytjPHM7KSh1PXJbY10pPyh0LnB1c2goZT1uLmNhbGwodSx1Ll9fZGF0YV9fLGMsbykpLGUmJiJfX2RhdGFfXyJpbiB1JiYoZS5fX2RhdGFfXz11Ll9fZGF0YV9fKSk6dC5wdXNoKG51bGwpfXJldHVybiB4KGkpfSxkYS5zZWxlY3RBbGw9ZnVuY3Rpb24obil7dmFyIHQsZSxyPVtdO249XyhuKTtmb3IodmFyIHU9LTEsaT10aGlzLmxlbmd0aDsrK3U8aTspZm9yKHZhciBvPXRoaXNbdV0sYT0tMSxjPW8ubGVuZ3RoOysrYTxjOykoZT1vW2FdKSYmKHIucHVzaCh0PUJvKG4uY2FsbChlLGUuX19kYXRhX18sYSx1KSkpLHQucGFyZW50Tm9kZT1lKTtyZXR1cm4geChyKX07dmFyIG1hPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtYby5ucz17cHJlZml4Om1hLHF1YWxpZnk6ZnVuY3Rpb24obil7dmFyIHQ9bi5pbmRleE9mKCI6IiksZT1uO3JldHVybiB0Pj0wJiYoZT1uLnN1YnN0cmluZygwLHQpLG49bi5zdWJzdHJpbmcodCsxKSksbWEuaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOm1hW2VdLGxvY2FsOm59Om59fSxkYS5hdHRyPWZ1bmN0aW9uKG4sdCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtpZigic3RyaW5nIj09dHlwZW9mIG4pe3ZhciBlPXRoaXMubm9kZSgpO3JldHVybiBuPVhvLm5zLnF1YWxpZnkobiksbi5sb2NhbD9lLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCk6ZS5nZXRBdHRyaWJ1dGUobil9Zm9yKHQgaW4gbil0aGlzLmVhY2goYih0LG5bdF0pKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKGIobix0KSl9LGRhLmNsYXNzZWQ9ZnVuY3Rpb24obix0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2Ygbil7dmFyIGU9dGhpcy5ub2RlKCkscj0obj1rKG4pKS5sZW5ndGgsdT0tMTtpZih0PWUuY2xhc3NMaXN0KXtmb3IoOysrdTxyOylpZighdC5jb250YWlucyhuW3VdKSlyZXR1cm4hMX1lbHNlIGZvcih0PWUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOysrdTxyOylpZighUyhuW3VdKS50ZXN0KHQpKXJldHVybiExO3JldHVybiEwfWZvcih0IGluIG4pdGhpcy5lYWNoKEUodCxuW3RdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChFKG4sdCkpfSxkYS5zdHlsZT1mdW5jdGlvbihuLHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtpZigzPnIpe2lmKCJzdHJpbmciIT10eXBlb2Ygbil7Mj5yJiYodD0iIik7Zm9yKGUgaW4gbil0aGlzLmVhY2goQyhlLG5bZV0sdCkpO3JldHVybiB0aGlzfWlmKDI+cilyZXR1cm4gR28uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLm5vZGUoKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKG4pO2U9IiJ9cmV0dXJuIHRoaXMuZWFjaChDKG4sdCxlKSl9LGRhLnByb3BlcnR5PWZ1bmN0aW9uKG4sdCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtpZigic3RyaW5nIj09dHlwZW9mIG4pcmV0dXJuIHRoaXMubm9kZSgpW25dO2Zvcih0IGluIG4pdGhpcy5lYWNoKE4odCxuW3RdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChOKG4sdCkpfSxkYS50ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9mdW5jdGlvbigpe3ZhciB0PW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09dD8iIjp0fTpudWxsPT1uP2Z1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD0iIn06ZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PW59KTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0sZGEuaHRtbD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goImZ1bmN0aW9uIj09dHlwZW9mIG4/ZnVuY3Rpb24oKXt2YXIgdD1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT10PyIiOnR9Om51bGw9PW4/ZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD0iIn06ZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD1ufSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxkYS5hcHBlbmQ9ZnVuY3Rpb24obil7cmV0dXJuIG49TChuKSx0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfSxkYS5pbnNlcnQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gbj1MKG4pLHQ9TSh0KSx0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX0sZGEucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBuPXRoaXMucGFyZW50Tm9kZTtuJiZuLnJlbW92ZUNoaWxkKHRoaXMpfSl9LGRhLmRhdGE9ZnVuY3Rpb24obix0KXtmdW5jdGlvbiBlKG4sZSl7dmFyIHIsaSxvLGE9bi5sZW5ndGgsZj1lLmxlbmd0aCxoPU1hdGgubWluKGEsZiksZz1uZXcgQXJyYXkoZikscD1uZXcgQXJyYXkoZiksdj1uZXcgQXJyYXkoYSk7aWYodCl7dmFyIGQsbT1uZXcgdSx5PW5ldyB1LHg9W107Zm9yKHI9LTE7KytyPGE7KWQ9dC5jYWxsKGk9bltyXSxpLl9fZGF0YV9fLHIpLG0uaGFzKGQpP3Zbcl09aTptLnNldChkLGkpLHgucHVzaChkKTtmb3Iocj0tMTsrK3I8ZjspZD10LmNhbGwoZSxvPWVbcl0sciksKGk9bS5nZXQoZCkpPyhnW3JdPWksaS5fX2RhdGFfXz1vKTp5LmhhcyhkKXx8KHBbcl09VChvKSkseS5zZXQoZCxvKSxtLnJlbW92ZShkKTtmb3Iocj0tMTsrK3I8YTspbS5oYXMoeFtyXSkmJih2W3JdPW5bcl0pfWVsc2V7Zm9yKHI9LTE7KytyPGg7KWk9bltyXSxvPWVbcl0saT8oaS5fX2RhdGFfXz1vLGdbcl09aSk6cFtyXT1UKG8pO2Zvcig7Zj5yOysrcilwW3JdPVQoZVtyXSk7Zm9yKDthPnI7KytyKXZbcl09bltyXX1wLnVwZGF0ZT1nLHAucGFyZW50Tm9kZT1nLnBhcmVudE5vZGU9di5wYXJlbnROb2RlPW4ucGFyZW50Tm9kZSxjLnB1c2gocCkscy5wdXNoKGcpLGwucHVzaCh2KX12YXIgcixpLG89LTEsYT10aGlzLmxlbmd0aDtpZighYXJndW1lbnRzLmxlbmd0aCl7Zm9yKG49bmV3IEFycmF5KGE9KHI9dGhpc1swXSkubGVuZ3RoKTsrK288YTspKGk9cltvXSkmJihuW29dPWkuX19kYXRhX18pO3JldHVybiBufXZhciBjPUQoW10pLHM9eChbXSksbD14KFtdKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbilmb3IoOysrbzxhOyllKHI9dGhpc1tvXSxuLmNhbGwocixyLnBhcmVudE5vZGUuX19kYXRhX18sbykpO2Vsc2UgZm9yKDsrK288YTspZShyPXRoaXNbb10sbik7cmV0dXJuIHMuZW50ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gY30scy5leGl0PWZ1bmN0aW9uKCl7cmV0dXJuIGx9LHN9LGRhLmRhdHVtPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixuKTp0aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIpfSxkYS5maWx0ZXI9ZnVuY3Rpb24obil7dmFyIHQsZSxyLHU9W107ImZ1bmN0aW9uIiE9dHlwZW9mIG4mJihuPXEobikpO2Zvcih2YXIgaT0wLG89dGhpcy5sZW5ndGg7bz5pO2krKyl7dS5wdXNoKHQ9W10pLHQucGFyZW50Tm9kZT0oZT10aGlzW2ldKS5wYXJlbnROb2RlO2Zvcih2YXIgYT0wLGM9ZS5sZW5ndGg7Yz5hO2ErKykocj1lW2FdKSYmbi5jYWxsKHIsci5fX2RhdGFfXyxhLGkpJiZ0LnB1c2gocil9cmV0dXJuIHgodSl9LGRhLm9yZGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xLHQ9dGhpcy5sZW5ndGg7KytuPHQ7KWZvcih2YXIgZSxyPXRoaXNbbl0sdT1yLmxlbmd0aC0xLGk9clt1XTstLXU+PTA7KShlPXJbdV0pJiYoaSYmaSE9PWUubmV4dFNpYmxpbmcmJmkucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxpKSxpPWUpO3JldHVybiB0aGlzfSxkYS5zb3J0PWZ1bmN0aW9uKG4pe249ei5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Zm9yKHZhciB0PS0xLGU9dGhpcy5sZW5ndGg7Kyt0PGU7KXRoaXNbdF0uc29ydChuKTtyZXR1cm4gdGhpcy5vcmRlcigpfSxkYS5lYWNoPWZ1bmN0aW9uKG4pe3JldHVybiBSKHRoaXMsZnVuY3Rpb24odCxlLHIpe24uY2FsbCh0LHQuX19kYXRhX18sZSxyKX0pfSxkYS5jYWxsPWZ1bmN0aW9uKG4pe3ZhciB0PUJvKGFyZ3VtZW50cyk7cmV0dXJuIG4uYXBwbHkodFswXT10aGlzLHQpLHRoaXN9LGRhLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9kZSgpfSxkYS5ub2RlPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsdD10aGlzLmxlbmd0aDt0Pm47bisrKWZvcih2YXIgZT10aGlzW25dLHI9MCx1PWUubGVuZ3RoO3U+cjtyKyspe3ZhciBpPWVbcl07aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH0sZGEuc2l6ZT1mdW5jdGlvbigpe3ZhciBuPTA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeysrbn0pLG59O3ZhciB5YT1bXTtYby5zZWxlY3Rpb24uZW50ZXI9RCxYby5zZWxlY3Rpb24uZW50ZXIucHJvdG90eXBlPXlhLHlhLmFwcGVuZD1kYS5hcHBlbmQseWEuZW1wdHk9ZGEuZW1wdHkseWEubm9kZT1kYS5ub2RlLHlhLmNhbGw9ZGEuY2FsbCx5YS5zaXplPWRhLnNpemUseWEuc2VsZWN0PWZ1bmN0aW9uKG4pe2Zvcih2YXIgdCxlLHIsdSxpLG89W10sYT0tMSxjPXRoaXMubGVuZ3RoOysrYTxjOyl7cj0odT10aGlzW2FdKS51cGRhdGUsby5wdXNoKHQ9W10pLHQucGFyZW50Tm9kZT11LnBhcmVudE5vZGU7Zm9yKHZhciBzPS0xLGw9dS5sZW5ndGg7KytzPGw7KShpPXVbc10pPyh0LnB1c2gocltzXT1lPW4uY2FsbCh1LnBhcmVudE5vZGUsaS5fX2RhdGFfXyxzLGEpKSxlLl9fZGF0YV9fPWkuX19kYXRhX18pOnQucHVzaChudWxsKX1yZXR1cm4geChvKX0seWEuaW5zZXJ0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MiYmKHQ9UCh0aGlzKSksZGEuaW5zZXJ0LmNhbGwodGhpcyxuLHQpfSxkYS50cmFuc2l0aW9uPWZ1bmN0aW9uKCl7Zm9yKHZhciBuLHQsZT1rc3x8KytMcyxyPVtdLHU9RXN8fHt0aW1lOkRhdGUubm93KCksZWFzZTp5dSxkZWxheTowLGR1cmF0aW9uOjI1MH0saT0tMSxvPXRoaXMubGVuZ3RoOysraTxvOyl7ci5wdXNoKG49W10pO2Zvcih2YXIgYT10aGlzW2ldLGM9LTEscz1hLmxlbmd0aDsrK2M8czspKHQ9YVtjXSkmJmpvKHQsYyxlLHUpLG4ucHVzaCh0KX1yZXR1cm4gRG8ocixlKX0sZGEuaW50ZXJydXB0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChVKX0sWG8uc2VsZWN0PWZ1bmN0aW9uKG4pe3ZhciB0PVsic3RyaW5nIj09dHlwZW9mIG4/aGEobixXbyk6bl07cmV0dXJuIHQucGFyZW50Tm9kZT1Kbyx4KFt0XSl9LFhvLnNlbGVjdEFsbD1mdW5jdGlvbihuKXt2YXIgdD1Cbygic3RyaW5nIj09dHlwZW9mIG4/Z2EobixXbyk6bik7cmV0dXJuIHQucGFyZW50Tm9kZT1Kbyx4KFt0XSl9O3ZhciB4YT1Yby5zZWxlY3QoSm8pO2RhLm9uPWZ1bmN0aW9uKG4sdCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO2lmKDM+cil7aWYoInN0cmluZyIhPXR5cGVvZiBuKXsyPnImJih0PSExKTtmb3IoZSBpbiBuKXRoaXMuZWFjaChqKGUsbltlXSx0KSk7cmV0dXJuIHRoaXN9aWYoMj5yKXJldHVybihyPXRoaXMubm9kZSgpWyJfX29uIituXSkmJnIuXztlPSExfXJldHVybiB0aGlzLmVhY2goaihuLHQsZSkpfTt2YXIgTWE9WG8ubWFwKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0pO01hLmZvckVhY2goZnVuY3Rpb24obil7Im9uIituIGluIFdvJiZNYS5yZW1vdmUobil9KTt2YXIgX2E9Im9uc2VsZWN0c3RhcnQiaW4gV28/bnVsbDpoKEpvLnN0eWxlLCJ1c2VyU2VsZWN0IiksYmE9MDtYby5tb3VzZT1mdW5jdGlvbihuKXtyZXR1cm4gWShuLG0oKSl9O3ZhciB3YT0vV2ViS2l0Ly50ZXN0KEdvLm5hdmlnYXRvci51c2VyQWdlbnQpPy0xOjA7WG8udG91Y2hlcz1mdW5jdGlvbihuLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDImJih0PW0oKS50b3VjaGVzKSx0P0JvKHQpLm1hcChmdW5jdGlvbih0KXt2YXIgZT1ZKG4sdCk7cmV0dXJuIGUuaWRlbnRpZmllcj10LmlkZW50aWZpZXIsZX0pOltdfSxYby5iZWhhdmlvci5kcmFnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3RoaXMub24oIm1vdXNlZG93bi5kcmFnIixvKS5vbigidG91Y2hzdGFydC5kcmFnIixhKX1mdW5jdGlvbiB0KCl7cmV0dXJuIFhvLmV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXJ9ZnVuY3Rpb24gZShuLHQpe3JldHVybiBYby50b3VjaGVzKG4pLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5pZGVudGlmaWVyPT09dH0pWzBdfWZ1bmN0aW9uIHIobix0LGUscil7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbygpe3ZhciBuPXQobCxnKSxlPW5bMF0tdlswXSxyPW5bMV0tdlsxXTtkfD1lfHIsdj1uLGYoe3R5cGU6ImRyYWciLHg6blswXStjWzBdLHk6blsxXStjWzFdLGR4OmUsZHk6cn0pfWZ1bmN0aW9uIGEoKXttLm9uKGUrIi4iK3AsbnVsbCkub24ocisiLiIrcCxudWxsKSx5KGQmJlhvLmV2ZW50LnRhcmdldD09PWgpLGYoe3R5cGU6ImRyYWdlbmQifSl9dmFyIGMscz10aGlzLGw9cy5wYXJlbnROb2RlLGY9dS5vZihzLGFyZ3VtZW50cyksaD1Yby5ldmVudC50YXJnZXQsZz1uKCkscD1udWxsPT1nPyJkcmFnIjoiZHJhZy0iK2csdj10KGwsZyksZD0wLG09WG8uc2VsZWN0KEdvKS5vbihlKyIuIitwLG8pLm9uKHIrIi4iK3AsYSkseT1PKCk7aT8oYz1pLmFwcGx5KHMsYXJndW1lbnRzKSxjPVtjLngtdlswXSxjLnktdlsxXV0pOmM9WzAsMF0sZih7dHlwZToiZHJhZ3N0YXJ0In0pfX12YXIgdT15KG4sImRyYWciLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiksaT1udWxsLG89cihnLFhvLm1vdXNlLCJtb3VzZW1vdmUiLCJtb3VzZXVwIiksYT1yKHQsZSwidG91Y2htb3ZlIiwidG91Y2hlbmQiKTtyZXR1cm4gbi5vcmlnaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxuKTppfSxYby5yZWJpbmQobix1LCJvbiIpfTt2YXIgU2E9TWF0aC5QSSxrYT0yKlNhLEVhPVNhLzIsQWE9MWUtNixDYT1BYSpBYSxOYT1TYS8xODAsTGE9MTgwL1NhLFRhPU1hdGguU1FSVDIscWE9Mix6YT00O1hvLmludGVycG9sYXRlWm9vbT1mdW5jdGlvbihuLHQpe2Z1bmN0aW9uIGUobil7dmFyIHQ9bip5O2lmKG0pe3ZhciBlPUIodiksbz1pLyhxYSpoKSooZSpXKFRhKnQrdiktJCh2KSk7cmV0dXJuW3IrbypzLHUrbypsLGkqZS9CKFRhKnQrdildfXJldHVybltyK24qcyx1K24qbCxpKk1hdGguZXhwKFRhKnQpXX12YXIgcj1uWzBdLHU9blsxXSxpPW5bMl0sbz10WzBdLGE9dFsxXSxjPXRbMl0scz1vLXIsbD1hLXUsZj1zKnMrbCpsLGg9TWF0aC5zcXJ0KGYpLGc9KGMqYy1pKmkremEqZikvKDIqaSpxYSpoKSxwPShjKmMtaSppLXphKmYpLygyKmMqcWEqaCksdj1NYXRoLmxvZyhNYXRoLnNxcnQoZypnKzEpLWcpLGQ9TWF0aC5sb2coTWF0aC5zcXJ0KHAqcCsxKS1wKSxtPWQtdix5PShtfHxNYXRoLmxvZyhjL2kpKS9UYTtyZXR1cm4gZS5kdXJhdGlvbj0xZTMqeSxlfSxYby5iZWhhdmlvci56b29tPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuKXtuLm9uKEEscykub24oUGErIi56b29tIixmKS5vbihDLGgpLm9uKCJkYmxjbGljay56b29tIixnKS5vbihMLGwpfWZ1bmN0aW9uIHQobil7cmV0dXJuWyhuWzBdLVMueCkvUy5rLChuWzFdLVMueSkvUy5rXX1mdW5jdGlvbiBlKG4pe3JldHVybltuWzBdKlMuaytTLngsblsxXSpTLmsrUy55XX1mdW5jdGlvbiByKG4pe1Muaz1NYXRoLm1heChFWzBdLE1hdGgubWluKEVbMV0sbikpfWZ1bmN0aW9uIHUobix0KXt0PWUodCksUy54Kz1uWzBdLXRbMF0sUy55Kz1uWzFdLXRbMV19ZnVuY3Rpb24gaSgpe18mJl8uZG9tYWluKE0ucmFuZ2UoKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuKG4tUy54KS9TLmt9KS5tYXAoTS5pbnZlcnQpKSx3JiZ3LmRvbWFpbihiLnJhbmdlKCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybihuLVMueSkvUy5rfSkubWFwKGIuaW52ZXJ0KSl9ZnVuY3Rpb24gbyhuKXtuKHt0eXBlOiJ6b29tc3RhcnQifSl9ZnVuY3Rpb24gYShuKXtpKCksbih7dHlwZToiem9vbSIsc2NhbGU6Uy5rLHRyYW5zbGF0ZTpbUy54LFMueV19KX1mdW5jdGlvbiBjKG4pe24oe3R5cGU6Inpvb21lbmQifSl9ZnVuY3Rpb24gcygpe2Z1bmN0aW9uIG4oKXtsPTEsdShYby5tb3VzZShyKSxnKSxhKGkpfWZ1bmN0aW9uIGUoKXtmLm9uKEMsR289PT1yP2g6bnVsbCkub24oTixudWxsKSxwKGwmJlhvLmV2ZW50LnRhcmdldD09PXMpLGMoaSl9dmFyIHI9dGhpcyxpPVQub2Yocixhcmd1bWVudHMpLHM9WG8uZXZlbnQudGFyZ2V0LGw9MCxmPVhvLnNlbGVjdChHbykub24oQyxuKS5vbihOLGUpLGc9dChYby5tb3VzZShyKSkscD1PKCk7VS5jYWxsKHIpLG8oaSl9ZnVuY3Rpb24gbCgpe2Z1bmN0aW9uIG4oKXt2YXIgbj1Yby50b3VjaGVzKGcpO3JldHVybiBoPVMuayxuLmZvckVhY2goZnVuY3Rpb24obil7bi5pZGVudGlmaWVyIGluIHYmJih2W24uaWRlbnRpZmllcl09dChuKSl9KSxufWZ1bmN0aW9uIGUoKXtmb3IodmFyIHQ9WG8uZXZlbnQuY2hhbmdlZFRvdWNoZXMsZT0wLGk9dC5sZW5ndGg7aT5lOysrZSl2W3RbZV0uaWRlbnRpZmllcl09bnVsbDt2YXIgbz1uKCksYz1EYXRlLm5vdygpO2lmKDE9PT1vLmxlbmd0aCl7aWYoNTAwPmMteCl7dmFyIHM9b1swXSxsPXZbcy5pZGVudGlmaWVyXTtyKDIqUy5rKSx1KHMsbCksZCgpLGEocCl9eD1jfWVsc2UgaWYoby5sZW5ndGg+MSl7dmFyIHM9b1swXSxmPW9bMV0saD1zWzBdLWZbMF0sZz1zWzFdLWZbMV07bT1oKmgrZypnfX1mdW5jdGlvbiBpKCl7Zm9yKHZhciBuLHQsZSxpLG89WG8udG91Y2hlcyhnKSxjPTAscz1vLmxlbmd0aDtzPmM7KytjLGk9bnVsbClpZihlPW9bY10saT12W2UuaWRlbnRpZmllcl0pe2lmKHQpYnJlYWs7bj1lLHQ9aX1pZihpKXt2YXIgbD0obD1lWzBdLW5bMF0pKmwrKGw9ZVsxXS1uWzFdKSpsLGY9bSYmTWF0aC5zcXJ0KGwvbSk7bj1bKG5bMF0rZVswXSkvMiwoblsxXStlWzFdKS8yXSx0PVsodFswXStpWzBdKS8yLCh0WzFdK2lbMV0pLzJdLHIoZipoKX14PW51bGwsdShuLHQpLGEocCl9ZnVuY3Rpb24gZigpe2lmKFhvLmV2ZW50LnRvdWNoZXMubGVuZ3RoKXtmb3IodmFyIHQ9WG8uZXZlbnQuY2hhbmdlZFRvdWNoZXMsZT0wLHI9dC5sZW5ndGg7cj5lOysrZSlkZWxldGUgdlt0W2VdLmlkZW50aWZpZXJdO2Zvcih2YXIgdSBpbiB2KXJldHVybiB2b2lkIG4oKX1iLm9uKE0sbnVsbCkub24oXyxudWxsKSx3Lm9uKEEscykub24oTCxsKSxrKCksYyhwKX12YXIgaCxnPXRoaXMscD1ULm9mKGcsYXJndW1lbnRzKSx2PXt9LG09MCx5PVhvLmV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIsTT0idG91Y2htb3ZlLnpvb20tIit5LF89InRvdWNoZW5kLnpvb20tIit5LGI9WG8uc2VsZWN0KEdvKS5vbihNLGkpLm9uKF8sZiksdz1Yby5zZWxlY3QoZykub24oQSxudWxsKS5vbihMLGUpLGs9TygpO1UuY2FsbChnKSxlKCksbyhwKX1mdW5jdGlvbiBmKCl7dmFyIG49VC5vZih0aGlzLGFyZ3VtZW50cyk7bT9jbGVhclRpbWVvdXQobSk6KFUuY2FsbCh0aGlzKSxvKG4pKSxtPXNldFRpbWVvdXQoZnVuY3Rpb24oKXttPW51bGwsYyhuKX0sNTApLGQoKTt2YXIgZT12fHxYby5tb3VzZSh0aGlzKTtwfHwocD10KGUpKSxyKE1hdGgucG93KDIsLjAwMipSYSgpKSpTLmspLHUoZSxwKSxhKG4pfWZ1bmN0aW9uIGgoKXtwPW51bGx9ZnVuY3Rpb24gZygpe3ZhciBuPVQub2YodGhpcyxhcmd1bWVudHMpLGU9WG8ubW91c2UodGhpcyksaT10KGUpLHM9TWF0aC5sb2coUy5rKS9NYXRoLkxOMjtvKG4pLHIoTWF0aC5wb3coMixYby5ldmVudC5zaGlmdEtleT9NYXRoLmNlaWwocyktMTpNYXRoLmZsb29yKHMpKzEpKSx1KGUsaSksYShuKSxjKG4pfXZhciBwLHYsbSx4LE0sXyxiLHcsUz17eDowLHk6MCxrOjF9LGs9Wzk2MCw1MDBdLEU9RGEsQT0ibW91c2Vkb3duLnpvb20iLEM9Im1vdXNlbW92ZS56b29tIixOPSJtb3VzZXVwLnpvb20iLEw9InRvdWNoc3RhcnQuem9vbSIsVD15KG4sInpvb21zdGFydCIsInpvb20iLCJ6b29tZW5kIik7cmV0dXJuIG4uZXZlbnQ9ZnVuY3Rpb24obil7bi5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49VC5vZih0aGlzLGFyZ3VtZW50cyksdD1TO2tzP1hvLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZWFjaCgic3RhcnQuem9vbSIsZnVuY3Rpb24oKXtTPXRoaXMuX19jaGFydF9ffHx7eDowLHk6MCxrOjF9LG8obil9KS50d2Vlbigiem9vbTp6b29tIixmdW5jdGlvbigpe3ZhciBlPWtbMF0scj1rWzFdLHU9ZS8yLGk9ci8yLG89WG8uaW50ZXJwb2xhdGVab29tKFsodS1TLngpL1MuaywoaS1TLnkpL1MuayxlL1Mua10sWyh1LXQueCkvdC5rLChpLXQueSkvdC5rLGUvdC5rXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPW8odCksYz1lL3JbMl07dGhpcy5fX2NoYXJ0X189Uz17eDp1LXJbMF0qYyx5OmktclsxXSpjLGs6Y30sYShuKX19KS5lYWNoKCJlbmQuem9vbSIsZnVuY3Rpb24oKXtjKG4pfSk6KHRoaXMuX19jaGFydF9fPVMsbyhuKSxhKG4pLGMobikpfSl9LG4udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhTPXt4Oit0WzBdLHk6K3RbMV0sazpTLmt9LGkoKSxuKTpbUy54LFMueV19LG4uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFM9e3g6Uy54LHk6Uy55LGs6K3R9LGkoKSxuKTpTLmt9LG4uc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEU9bnVsbD09dD9EYTpbK3RbMF0sK3RbMV1dLG4pOkV9LG4uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PXQmJlsrdFswXSwrdFsxXV0sbik6dn0sbi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhrPXQmJlsrdFswXSwrdFsxXV0sbik6a30sbi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfPXQsTT10LmNvcHkoKSxTPXt4OjAseTowLGs6MX0sbik6X30sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3PXQsYj10LmNvcHkoKSxTPXt4OjAseTowLGs6MX0sbik6d30sWG8ucmViaW5kKG4sVCwib24iKX07dmFyIFJhLERhPVswLDEvMF0sUGE9Im9ud2hlZWwiaW4gV28/KFJhPWZ1bmN0aW9uKCl7cmV0dXJuLVhvLmV2ZW50LmRlbHRhWSooWG8uZXZlbnQuZGVsdGFNb2RlPzEyMDoxKX0sIndoZWVsIik6Im9ubW91c2V3aGVlbCJpbiBXbz8oUmE9ZnVuY3Rpb24oKXtyZXR1cm4gWG8uZXZlbnQud2hlZWxEZWx0YX0sIm1vdXNld2hlZWwiKTooUmE9ZnVuY3Rpb24oKXtyZXR1cm4tWG8uZXZlbnQuZGV0YWlsfSwiTW96TW91c2VQaXhlbFNjcm9sbCIpO0cucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkrIiJ9LFhvLmhzbD1mdW5jdGlvbihuLHQsZSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP24gaW5zdGFuY2VvZiBRP0sobi5oLG4ucyxuLmwpOmR0KCIiK24sbXQsSyk6SygrbiwrdCwrZSl9O3ZhciBVYT1RLnByb3RvdHlwZT1uZXcgRztVYS5icmlnaHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gbj1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP246MSksSyh0aGlzLmgsdGhpcy5zLHRoaXMubC9uKX0sVWEuZGFya2VyPWZ1bmN0aW9uKG4pe3JldHVybiBuPU1hdGgucG93KC43LGFyZ3VtZW50cy5sZW5ndGg/bjoxKSxLKHRoaXMuaCx0aGlzLnMsbip0aGlzLmwpfSxVYS5yZ2I9ZnVuY3Rpb24oKXtyZXR1cm4gbnQodGhpcy5oLHRoaXMucyx0aGlzLmwpfSxYby5oY2w9ZnVuY3Rpb24obix0LGUpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9uIGluc3RhbmNlb2YgZXQ/dHQobi5oLG4uYyxuLmwpOm4gaW5zdGFuY2VvZiBpdD9hdChuLmwsbi5hLG4uYik6YXQoKG49eXQoKG49WG8ucmdiKG4pKS5yLG4uZyxuLmIpKS5sLG4uYSxuLmIpOnR0KCtuLCt0LCtlKX07dmFyIGphPWV0LnByb3RvdHlwZT1uZXcgRztqYS5icmlnaHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gdHQodGhpcy5oLHRoaXMuYyxNYXRoLm1pbigxMDAsdGhpcy5sK0hhKihhcmd1bWVudHMubGVuZ3RoP246MSkpKX0samEuZGFya2VyPWZ1bmN0aW9uKG4pe3JldHVybiB0dCh0aGlzLmgsdGhpcy5jLE1hdGgubWF4KDAsdGhpcy5sLUhhKihhcmd1bWVudHMubGVuZ3RoP246MSkpKX0samEucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIHJ0KHRoaXMuaCx0aGlzLmMsdGhpcy5sKS5yZ2IoKX0sWG8ubGFiPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/biBpbnN0YW5jZW9mIGl0P3V0KG4ubCxuLmEsbi5iKTpuIGluc3RhbmNlb2YgZXQ/cnQobi5sLG4uYyxuLmgpOnl0KChuPVhvLnJnYihuKSkucixuLmcsbi5iKTp1dCgrbiwrdCwrZSl9O3ZhciBIYT0xOCxGYT0uOTUwNDcsT2E9MSxZYT0xLjA4ODgzLElhPWl0LnByb3RvdHlwZT1uZXcgRztJYS5icmlnaHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gdXQoTWF0aC5taW4oMTAwLHRoaXMubCtIYSooYXJndW1lbnRzLmxlbmd0aD9uOjEpKSx0aGlzLmEsdGhpcy5iKX0sSWEuZGFya2VyPWZ1bmN0aW9uKG4pe3JldHVybiB1dChNYXRoLm1heCgwLHRoaXMubC1IYSooYXJndW1lbnRzLmxlbmd0aD9uOjEpKSx0aGlzLmEsdGhpcy5iKX0sSWEucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIG90KHRoaXMubCx0aGlzLmEsdGhpcy5iKX0sWG8ucmdiPWZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/biBpbnN0YW5jZW9mIHB0P2d0KG4ucixuLmcsbi5iKTpkdCgiIituLGd0LG50KTpndCh+fm4sfn50LH5+ZSl9O3ZhciBaYT1wdC5wcm90b3R5cGU9bmV3IEc7WmEuYnJpZ2h0ZXI9ZnVuY3Rpb24obil7bj1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP246MSk7dmFyIHQ9dGhpcy5yLGU9dGhpcy5nLHI9dGhpcy5iLHU9MzA7cmV0dXJuIHR8fGV8fHI/KHQmJnU+dCYmKHQ9dSksZSYmdT5lJiYoZT11KSxyJiZ1PnImJihyPXUpLGd0KE1hdGgubWluKDI1NSx+fih0L24pKSxNYXRoLm1pbigyNTUsfn4oZS9uKSksTWF0aC5taW4oMjU1LH5+KHIvbikpKSk6Z3QodSx1LHUpfSxaYS5kYXJrZXI9ZnVuY3Rpb24obil7cmV0dXJuIG49TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD9uOjEpLGd0KH5+KG4qdGhpcy5yKSx+fihuKnRoaXMuZyksfn4obip0aGlzLmIpKX0sWmEuaHNsPWZ1bmN0aW9uKCl7cmV0dXJuIG10KHRoaXMucix0aGlzLmcsdGhpcy5iKX0sWmEudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIyIrdnQodGhpcy5yKSt2dCh0aGlzLmcpK3Z0KHRoaXMuYil9O3ZhciBWYT1Yby5tYXAoe2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fSk7VmEuZm9yRWFjaChmdW5jdGlvbihuLHQpe1ZhLnNldChuLGZ0KHQpKX0pLFhvLmZ1bmN0b3I9X3QsWG8ueGhyPXd0KGJ0KSxYby5kc3Y9ZnVuY3Rpb24obix0KXtmdW5jdGlvbiBlKG4sZSxpKXthcmd1bWVudHMubGVuZ3RoPDMmJihpPWUsZT1udWxsKTt2YXIgbz1TdChuLHQsbnVsbD09ZT9yOnUoZSksaSk7cmV0dXJuIG8ucm93PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP28ucmVzcG9uc2UobnVsbD09KGU9bik/cjp1KG4pKTplfSxvfWZ1bmN0aW9uIHIobil7cmV0dXJuIGUucGFyc2Uobi5yZXNwb25zZVRleHQpfWZ1bmN0aW9uIHUobil7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLnBhcnNlKHQucmVzcG9uc2VUZXh0LG4pfX1mdW5jdGlvbiBpKHQpe3JldHVybiB0Lm1hcChvKS5qb2luKG4pfWZ1bmN0aW9uIG8obil7cmV0dXJuIGEudGVzdChuKT8nIicrbi5yZXBsYWNlKC9cIi9nLCciIicpKyciJzpufXZhciBhPW5ldyBSZWdFeHAoJ1siJytuKyJcbl0iKSxjPW4uY2hhckNvZGVBdCgwKTtyZXR1cm4gZS5wYXJzZT1mdW5jdGlvbihuLHQpe3ZhciByO3JldHVybiBlLnBhcnNlUm93cyhuLGZ1bmN0aW9uKG4sZSl7aWYocilyZXR1cm4gcihuLGUtMSk7dmFyIHU9bmV3IEZ1bmN0aW9uKCJkIiwicmV0dXJuIHsiK24ubWFwKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KG4pKyI6IGRbIit0KyJdIn0pLmpvaW4oIiwiKSsifSIpO3I9dD9mdW5jdGlvbihuLGUpe3JldHVybiB0KHUobiksZSl9OnV9KX0sZS5wYXJzZVJvd3M9ZnVuY3Rpb24obix0KXtmdW5jdGlvbiBlKCl7aWYobD49cylyZXR1cm4gbztpZih1KXJldHVybiB1PSExLGk7dmFyIHQ9bDtpZigzND09PW4uY2hhckNvZGVBdCh0KSl7Zm9yKHZhciBlPXQ7ZSsrPHM7KWlmKDM0PT09bi5jaGFyQ29kZUF0KGUpKXtpZigzNCE9PW4uY2hhckNvZGVBdChlKzEpKWJyZWFrOysrZX1sPWUrMjt2YXIgcj1uLmNoYXJDb2RlQXQoZSsxKTtyZXR1cm4gMTM9PT1yPyh1PSEwLDEwPT09bi5jaGFyQ29kZUF0KGUrMikmJisrbCk6MTA9PT1yJiYodT0hMCksbi5zdWJzdHJpbmcodCsxLGUpLnJlcGxhY2UoLyIiL2csJyInKX1mb3IoO3M+bDspe3ZhciByPW4uY2hhckNvZGVBdChsKyspLGE9MTtpZigxMD09PXIpdT0hMDtlbHNlIGlmKDEzPT09cil1PSEwLDEwPT09bi5jaGFyQ29kZUF0KGwpJiYoKytsLCsrYSk7ZWxzZSBpZihyIT09Yyljb250aW51ZTtyZXR1cm4gbi5zdWJzdHJpbmcodCxsLWEpfXJldHVybiBuLnN1YnN0cmluZyh0KX1mb3IodmFyIHIsdSxpPXt9LG89e30sYT1bXSxzPW4ubGVuZ3RoLGw9MCxmPTA7KHI9ZSgpKSE9PW87KXtmb3IodmFyIGg9W107ciE9PWkmJnIhPT1vOyloLnB1c2gocikscj1lKCk7KCF0fHwoaD10KGgsZisrKSkpJiZhLnB1c2goaCl9cmV0dXJuIGF9LGUuZm9ybWF0PWZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodFswXSkpcmV0dXJuIGUuZm9ybWF0Um93cyh0KTt2YXIgcj1uZXcgbCx1PVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24obil7Zm9yKHZhciB0IGluIG4pci5oYXModCl8fHUucHVzaChyLmFkZCh0KSl9KSxbdS5tYXAobykuam9pbihuKV0uY29uY2F0KHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB1Lm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbyh0W25dKX0pLmpvaW4obil9KSkuam9pbigiXG4iKX0sZS5mb3JtYXRSb3dzPWZ1bmN0aW9uKG4pe3JldHVybiBuLm1hcChpKS5qb2luKCJcbiIpfSxlfSxYby5jc3Y9WG8uZHN2KCIsIiwidGV4dC9jc3YiKSxYby50c3Y9WG8uZHN2KCIJIiwidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlcyIpO3ZhciBYYSwkYSxCYSxXYSxKYSxHYT1Hb1toKEdvLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKV18fGZ1bmN0aW9uKG4pe3NldFRpbWVvdXQobiwxNyl9O1hvLnRpbWVyPWZ1bmN0aW9uKG4sdCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoOzI+ciYmKHQ9MCksMz5yJiYoZT1EYXRlLm5vdygpKTt2YXIgdT1lK3QsaT17YzpuLHQ6dSxmOiExLG46bnVsbH07JGE/JGEubj1pOlhhPWksJGE9aSxCYXx8KFdhPWNsZWFyVGltZW91dChXYSksQmE9MSxHYShFdCkpfSxYby50aW1lci5mbHVzaD1mdW5jdGlvbigpe0F0KCksQ3QoKX0sWG8ucm91bmQ9ZnVuY3Rpb24obix0KXtyZXR1cm4gdD9NYXRoLnJvdW5kKG4qKHQ9TWF0aC5wb3coMTAsdCkpKS90Ok1hdGgucm91bmQobil9O3ZhciBLYT1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIlx4YjUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXS5tYXAoTHQpO1hvLmZvcm1hdFByZWZpeD1mdW5jdGlvbihuLHQpe3ZhciBlPTA7cmV0dXJuIG4mJigwPm4mJihuKj0tMSksdCYmKG49WG8ucm91bmQobixOdChuLHQpKSksZT0xK01hdGguZmxvb3IoMWUtMTIrTWF0aC5sb2cobikvTWF0aC5MTjEwKSxlPU1hdGgubWF4KC0yNCxNYXRoLm1pbigyNCwzKk1hdGguZmxvb3IoKDA+PWU/ZSsxOmUtMSkvMykpKSksS2FbOCtlLzNdfTt2YXIgUWE9Lyg/OihbXntdKT8oWzw+PV5dKSk/KFsrXC0gXSk/KFskI10pPygwKT8oXGQrKT8oLCk/KFwuLT9cZCspPyhbYS16JV0pPy9pLG5jPVhvLm1hcCh7YjpmdW5jdGlvbihuKXtyZXR1cm4gbi50b1N0cmluZygyKX0sYzpmdW5jdGlvbihuKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShuKX0sbzpmdW5jdGlvbihuKXtyZXR1cm4gbi50b1N0cmluZyg4KX0seDpmdW5jdGlvbihuKXtyZXR1cm4gbi50b1N0cmluZygxNil9LFg6ZnVuY3Rpb24obil7cmV0dXJuIG4udG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LGc6ZnVuY3Rpb24obix0KXtyZXR1cm4gbi50b1ByZWNpc2lvbih0KX0sZTpmdW5jdGlvbihuLHQpe3JldHVybiBuLnRvRXhwb25lbnRpYWwodCl9LGY6ZnVuY3Rpb24obix0KXtyZXR1cm4gbi50b0ZpeGVkKHQpfSxyOmZ1bmN0aW9uKG4sdCl7cmV0dXJuKG49WG8ucm91bmQobixOdChuLHQpKSkudG9GaXhlZChNYXRoLm1heCgwLE1hdGgubWluKDIwLE50KG4qKDErMWUtMTUpLHQpKSkpfX0pLHRjPVhvLnRpbWU9e30sZWM9RGF0ZTt6dC5wcm90b3R5cGU9e2dldERhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ0RhdGUoKX0sZ2V0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENEYXkoKX0sZ2V0RnVsbFllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ0Z1bGxZZWFyKCl9LGdldEhvdXJzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENIb3VycygpfSxnZXRNaWxsaXNlY29uZHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ01pbGxpc2Vjb25kcygpfSxnZXRNaW51dGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENNaW51dGVzKCl9LGdldE1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENNb250aCgpfSxnZXRTZWNvbmRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy5nZXRVVENTZWNvbmRzKCl9LGdldFRpbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFRpbWUoKX0sZ2V0VGltZXpvbmVPZmZzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8udmFsdWVPZigpfSxzZXREYXRlOmZ1bmN0aW9uKCl7cmMuc2V0VVRDRGF0ZS5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0RGF5OmZ1bmN0aW9uKCl7cmMuc2V0VVRDRGF5LmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRGdWxsWWVhcjpmdW5jdGlvbigpe3JjLnNldFVUQ0Z1bGxZZWFyLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRIb3VyczpmdW5jdGlvbigpe3JjLnNldFVUQ0hvdXJzLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRNaWxsaXNlY29uZHM6ZnVuY3Rpb24oKXtyYy5zZXRVVENNaWxsaXNlY29uZHMuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldE1pbnV0ZXM6ZnVuY3Rpb24oKXtyYy5zZXRVVENNaW51dGVzLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRNb250aDpmdW5jdGlvbigpe3JjLnNldFVUQ01vbnRoLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRTZWNvbmRzOmZ1bmN0aW9uKCl7cmMuc2V0VVRDU2Vjb25kcy5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0VGltZTpmdW5jdGlvbigpe3JjLnNldFRpbWUuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9fTt2YXIgcmM9RGF0ZS5wcm90b3R5cGU7dGMueWVhcj1SdChmdW5jdGlvbihuKXtyZXR1cm4gbj10Yy5kYXkobiksbi5zZXRNb250aCgwLDEpLG59LGZ1bmN0aW9uKG4sdCl7bi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrdCl9LGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldEZ1bGxZZWFyKCl9KSx0Yy55ZWFycz10Yy55ZWFyLnJhbmdlLHRjLnllYXJzLnV0Yz10Yy55ZWFyLnV0Yy5yYW5nZSx0Yy5kYXk9UnQoZnVuY3Rpb24obil7dmFyIHQ9bmV3IGVjKDJlMywwKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCksbi5nZXRNb250aCgpLG4uZ2V0RGF0ZSgpKSx0fSxmdW5jdGlvbihuLHQpe24uc2V0RGF0ZShuLmdldERhdGUoKSt0KX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0RGF0ZSgpLTF9KSx0Yy5kYXlzPXRjLmRheS5yYW5nZSx0Yy5kYXlzLnV0Yz10Yy5kYXkudXRjLnJhbmdlLHRjLmRheU9mWWVhcj1mdW5jdGlvbihuKXt2YXIgdD10Yy55ZWFyKG4pO3JldHVybiBNYXRoLmZsb29yKChuLXQtNmU0KihuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSkvODY0ZTUpfSxbInN1bmRheSIsIm1vbmRheSIsInR1ZXNkYXkiLCJ3ZWRuZXNkYXkiLCJ0aHVyc2RheSIsImZyaWRheSIsInNhdHVyZGF5Il0uZm9yRWFjaChmdW5jdGlvbihuLHQpe3Q9Ny10O3ZhciBlPXRjW25dPVJ0KGZ1bmN0aW9uKG4pe3JldHVybihuPXRjLmRheShuKSkuc2V0RGF0ZShuLmdldERhdGUoKS0obi5nZXREYXkoKSt0KSU3KSxufSxmdW5jdGlvbihuLHQpe24uc2V0RGF0ZShuLmdldERhdGUoKSs3Kk1hdGguZmxvb3IodCkpfSxmdW5jdGlvbihuKXt2YXIgZT10Yy55ZWFyKG4pLmdldERheSgpO3JldHVybiBNYXRoLmZsb29yKCh0Yy5kYXlPZlllYXIobikrKGUrdCklNykvNyktKGUhPT10KX0pO3RjW24rInMiXT1lLnJhbmdlLHRjW24rInMiXS51dGM9ZS51dGMucmFuZ2UsdGNbbisiT2ZZZWFyIl09ZnVuY3Rpb24obil7dmFyIGU9dGMueWVhcihuKS5nZXREYXkoKTtyZXR1cm4gTWF0aC5mbG9vcigodGMuZGF5T2ZZZWFyKG4pKyhlK3QpJTcpLzcpfX0pLHRjLndlZWs9dGMuc3VuZGF5LHRjLndlZWtzPXRjLnN1bmRheS5yYW5nZSx0Yy53ZWVrcy51dGM9dGMuc3VuZGF5LnV0Yy5yYW5nZSx0Yy53ZWVrT2ZZZWFyPXRjLnN1bmRheU9mWWVhcjt2YXIgdWM9eyItIjoiIixfOiIgIiwwOiIwIn0saWM9L15ccypcZCsvLG9jPS9eJS87WG8ubG9jYWxlPWZ1bmN0aW9uKG4pe3JldHVybntudW1iZXJGb3JtYXQ6VHQobiksdGltZUZvcm1hdDpQdChuKX19O3ZhciBhYz1Yby5sb2NhbGUoe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdLGRhdGVUaW1lOiIlYSAlYiAlZSAlWCAlWSIsZGF0ZToiJW0vJWQvJVkiLHRpbWU6IiVIOiVNOiVTIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pO1hvLmZvcm1hdD1hYy5udW1iZXJGb3JtYXQsWG8uZ2VvPXt9LHJlLnByb3RvdHlwZT17czowLHQ6MCxhZGQ6ZnVuY3Rpb24obil7dWUobix0aGlzLnQsY2MpLHVlKGNjLnMsdGhpcy5zLHRoaXMpLHRoaXMucz90aGlzLnQrPWNjLnQ6dGhpcy5zPWNjLnR9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zPXRoaXMudD0wfSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBjYz1uZXcgcmU7WG8uZ2VvLnN0cmVhbT1mdW5jdGlvbihuLHQpe24mJnNjLmhhc093blByb3BlcnR5KG4udHlwZSk/c2Nbbi50eXBlXShuLHQpOmllKG4sdCl9O3ZhciBzYz17RmVhdHVyZTpmdW5jdGlvbihuLHQpe2llKG4uZ2VvbWV0cnksdCl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKG4sdCl7Zm9yKHZhciBlPW4uZmVhdHVyZXMscj0tMSx1PWUubGVuZ3RoOysrcjx1OylpZShlW3JdLmdlb21ldHJ5LHQpfX0sbGM9e1NwaGVyZTpmdW5jdGlvbihuLHQpe3Quc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKG4sdCl7bj1uLmNvb3JkaW5hdGVzLHQucG9pbnQoblswXSxuWzFdLG5bMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKG4sdCl7Zm9yKHZhciBlPW4uY29vcmRpbmF0ZXMscj0tMSx1PWUubGVuZ3RoOysrcjx1OyluPWVbcl0sdC5wb2ludChuWzBdLG5bMV0sblsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24obix0KXtvZShuLmNvb3JkaW5hdGVzLHQsMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbihuLHQpe2Zvcih2YXIgZT1uLmNvb3JkaW5hdGVzLHI9LTEsdT1lLmxlbmd0aDsrK3I8dTspb2UoZVtyXSx0LDApfSxQb2x5Z29uOmZ1bmN0aW9uKG4sdCl7YWUobi5jb29yZGluYXRlcyx0KX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKG4sdCl7Zm9yKHZhciBlPW4uY29vcmRpbmF0ZXMscj0tMSx1PWUubGVuZ3RoOysrcjx1OylhZShlW3JdLHQpfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24obix0KXtmb3IodmFyIGU9bi5nZW9tZXRyaWVzLHI9LTEsdT1lLmxlbmd0aDsrK3I8dTspaWUoZVtyXSx0KX19O1hvLmdlby5hcmVhPWZ1bmN0aW9uKG4pe3JldHVybiBmYz0wLFhvLmdlby5zdHJlYW0obixnYyksZmN9O3ZhciBmYyxoYz1uZXcgcmUsZ2M9e3NwaGVyZTpmdW5jdGlvbigpe2ZjKz00KlNhfSxwb2ludDpnLGxpbmVTdGFydDpnLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtoYy5yZXNldCgpLGdjLmxpbmVTdGFydD1jZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciBuPTIqaGM7ZmMrPTA+bj80KlNhK246bixnYy5saW5lU3RhcnQ9Z2MubGluZUVuZD1nYy5wb2ludD1nfX07WG8uZ2VvLmJvdW5kcz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obix0KXt4LnB1c2goTT1bbD1uLGg9bl0pLGY+dCYmKGY9dCksdD5nJiYoZz10KX1mdW5jdGlvbiB0KHQsZSl7dmFyIHI9c2UoW3QqTmEsZSpOYV0pO2lmKG0pe3ZhciB1PWZlKG0sciksaT1bdVsxXSwtdVswXSwwXSxvPWZlKGksdSk7cGUobyksbz12ZShvKTt2YXIgYz10LXAscz1jPjA/MTotMSx2PW9bMF0qTGEqcyxkPW9hKGMpPjE4MDtpZihkXih2PnMqcCYmcyp0PnYpKXt2YXIgeT1vWzFdKkxhO3k+ZyYmKGc9eSl9ZWxzZSBpZih2PSh2KzM2MCklMzYwLTE4MCxkXih2PnMqcCYmcyp0PnYpKXt2YXIgeT0tb1sxXSpMYTtmPnkmJihmPXkpfWVsc2UgZj5lJiYoZj1lKSxlPmcmJihnPWUpO2Q/cD50P2EobCx0KT5hKGwsaCkmJihoPXQpOmEodCxoKT5hKGwsaCkmJihsPXQpOmg+PWw/KGw+dCYmKGw9dCksdD5oJiYoaD10KSk6dD5wP2EobCx0KT5hKGwsaCkmJihoPXQpOmEodCxoKT5hKGwsaCkmJihsPXQpfWVsc2Ugbih0LGUpO209cixwPXR9ZnVuY3Rpb24gZSgpe18ucG9pbnQ9dH1mdW5jdGlvbiByKCl7TVswXT1sLE1bMV09aCxfLnBvaW50PW4sbT1udWxsfWZ1bmN0aW9uIHUobixlKXtpZihtKXt2YXIgcj1uLXA7eSs9b2Eocik+MTgwP3IrKHI+MD8zNjA6LTM2MCk6cn1lbHNlIHY9bixkPWU7Z2MucG9pbnQobixlKSx0KG4sZSl9ZnVuY3Rpb24gaSgpe2djLmxpbmVTdGFydCgpfWZ1bmN0aW9uIG8oKXt1KHYsZCksZ2MubGluZUVuZCgpLG9hKHkpPkFhJiYobD0tKGg9MTgwKSksTVswXT1sLE1bMV09aCxtPW51bGx9ZnVuY3Rpb24gYShuLHQpe3JldHVybih0LT1uKTwwP3QrMzYwOnR9ZnVuY3Rpb24gYyhuLHQpe3JldHVybiBuWzBdLXRbMF19ZnVuY3Rpb24gcyhuLHQpe3JldHVybiB0WzBdPD10WzFdP3RbMF08PW4mJm48PXRbMV06bjx0WzBdfHx0WzFdPG59dmFyIGwsZixoLGcscCx2LGQsbSx5LHgsTSxfPXtwb2ludDpuLGxpbmVTdGFydDplLGxpbmVFbmQ6cixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtfLnBvaW50PXUsXy5saW5lU3RhcnQ9aSxfLmxpbmVFbmQ9byx5PTAsZ2MucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtnYy5wb2x5Z29uRW5kKCksXy5wb2ludD1uLF8ubGluZVN0YXJ0PWUsXy5saW5lRW5kPXIsMD5oYz8obD0tKGg9MTgwKSxmPS0oZz05MCkpOnk+QWE/Zz05MDotQWE+eSYmKGY9LTkwKSxNWzBdPWwsTVsxXT1ofX07cmV0dXJuIGZ1bmN0aW9uKG4pe2c9aD0tKGw9Zj0xLzApLHg9W10sWG8uZ2VvLnN0cmVhbShuLF8pO3ZhciB0PXgubGVuZ3RoO2lmKHQpe3guc29ydChjKTtmb3IodmFyIGUscj0xLHU9eFswXSxpPVt1XTt0PnI7KytyKWU9eFtyXSxzKGVbMF0sdSl8fHMoZVsxXSx1KT8oYSh1WzBdLGVbMV0pPmEodVswXSx1WzFdKSYmKHVbMV09ZVsxXSksYShlWzBdLHVbMV0pPmEodVswXSx1WzFdKSYmKHVbMF09ZVswXSkpOmkucHVzaCh1PWUpO2Zvcih2YXIgbyxlLHA9LTEvMCx0PWkubGVuZ3RoLTEscj0wLHU9aVt0XTt0Pj1yO3U9ZSwrK3IpZT1pW3JdLChvPWEodVsxXSxlWzBdKSk+cCYmKHA9byxsPWVbMF0saD11WzFdKX1yZXR1cm4geD1NPW51bGwsMS8wPT09bHx8MS8wPT09Zj9bWzAvMCwwLzBdLFswLzAsMC8wXV06W1tsLGZdLFtoLGddXX19KCksWG8uZ2VvLmNlbnRyb2lkPWZ1bmN0aW9uKG4pe3BjPXZjPWRjPW1jPXljPXhjPU1jPV9jPWJjPXdjPVNjPTAsWG8uZ2VvLnN0cmVhbShuLGtjKTt2YXIgdD1iYyxlPXdjLHI9U2MsdT10KnQrZSplK3IqcjtyZXR1cm4gQ2E+dSYmKHQ9eGMsZT1NYyxyPV9jLEFhPnZjJiYodD1kYyxlPW1jLHI9eWMpLHU9dCp0K2UqZStyKnIsQ2E+dSk/WzAvMCwwLzBdOltNYXRoLmF0YW4yKGUsdCkqTGEsWChyL01hdGguc3FydCh1KSkqTGFdfTt2YXIgcGMsdmMsZGMsbWMseWMseGMsTWMsX2MsYmMsd2MsU2Msa2M9e3NwaGVyZTpnLHBvaW50Om1lLGxpbmVTdGFydDp4ZSxsaW5lRW5kOk1lLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2tjLmxpbmVTdGFydD1fZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2tjLmxpbmVTdGFydD14ZX19LEVjPUVlKGJlLFRlLHplLFstU2EsLVNhLzJdKSxBYz0xZTk7WG8uZ2VvLmNsaXBFeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgbix0LGUscix1LGksbz17c3RyZWFtOmZ1bmN0aW9uKG4pe3JldHVybiB1JiYodS52YWxpZD0hMSksdT1pKG4pLHUudmFsaWQ9ITAsdX0sZXh0ZW50OmZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVBlKG49K2FbMF1bMF0sdD0rYVswXVsxXSxlPSthWzFdWzBdLHI9K2FbMV1bMV0pLHUmJih1LnZhbGlkPSExLHU9bnVsbCksbyk6W1tuLHRdLFtlLHJdXX19O3JldHVybiBvLmV4dGVudChbWzAsMF0sWzk2MCw1MDBdXSl9LChYby5nZW8uY29uaWNFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gamUoSGUpfSkucmF3PUhlLFhvLmdlby5hbGJlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gWG8uZ2VvLmNvbmljRXF1YWxBcmVhKCkucm90YXRlKFs5NiwwXSkuY2VudGVyKFstLjYsMzguN10pLnBhcmFsbGVscyhbMjkuNSw0NS41XSkuc2NhbGUoMTA3MCl9LFhvLmdlby5hbGJlcnNVc2E9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4pe3ZhciBpPW5bMF0sbz1uWzFdO3JldHVybiB0PW51bGwsZShpLG8pLHR8fChyKGksbyksdCl8fHUoaSxvKSx0fXZhciB0LGUscix1LGk9WG8uZ2VvLmFsYmVycygpLG89WG8uZ2VvLmNvbmljRXF1YWxBcmVhKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxhPVhvLmdlby5jb25pY0VxdWFsQXJlYSgpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxjPXtwb2ludDpmdW5jdGlvbihuLGUpe3Q9W24sZV19fTtyZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24obil7dmFyIHQ9aS5zY2FsZSgpLGU9aS50cmFuc2xhdGUoKSxyPShuWzBdLWVbMF0pL3QsdT0oblsxXS1lWzFdKS90O3JldHVybih1Pj0uMTImJi4yMzQ+dSYmcj49LS40MjUmJi0uMjE0PnI/bzp1Pj0uMTY2JiYuMjM0PnUmJnI+PS0uMjE0JiYtLjExNT5yP2E6aSkuaW52ZXJ0KG4pfSxuLnN0cmVhbT1mdW5jdGlvbihuKXt2YXIgdD1pLnN0cmVhbShuKSxlPW8uc3RyZWFtKG4pLHI9YS5zdHJlYW0obik7cmV0dXJue3BvaW50OmZ1bmN0aW9uKG4sdSl7dC5wb2ludChuLHUpLGUucG9pbnQobix1KSxyLnBvaW50KG4sdSl9LHNwaGVyZTpmdW5jdGlvbigpe3Quc3BoZXJlKCksZS5zcGhlcmUoKSxyLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0LmxpbmVTdGFydCgpLGUubGluZVN0YXJ0KCksci5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLGUubGluZUVuZCgpLHIubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0LnBvbHlnb25TdGFydCgpLGUucG9seWdvblN0YXJ0KCksci5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3QucG9seWdvbkVuZCgpLGUucG9seWdvbkVuZCgpLHIucG9seWdvbkVuZCgpfX19LG4ucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpLnByZWNpc2lvbih0KSxvLnByZWNpc2lvbih0KSxhLnByZWNpc2lvbih0KSxuKTppLnByZWNpc2lvbigpfSxuLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpLnNjYWxlKHQpLG8uc2NhbGUoLjM1KnQpLGEuc2NhbGUodCksbi50cmFuc2xhdGUoaS50cmFuc2xhdGUoKSkpOmkuc2NhbGUoKX0sbi50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGkudHJhbnNsYXRlKCk7dmFyIHM9aS5zY2FsZSgpLGw9K3RbMF0sZj0rdFsxXTtyZXR1cm4gZT1pLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbbC0uNDU1KnMsZi0uMjM4KnNdLFtsKy40NTUqcyxmKy4yMzgqc11dKS5zdHJlYW0oYykucG9pbnQscj1vLnRyYW5zbGF0ZShbbC0uMzA3KnMsZisuMjAxKnNdKS5jbGlwRXh0ZW50KFtbbC0uNDI1KnMrQWEsZisuMTIqcytBYV0sW2wtLjIxNCpzLUFhLGYrLjIzNCpzLUFhXV0pLnN0cmVhbShjKS5wb2ludCx1PWEudHJhbnNsYXRlKFtsLS4yMDUqcyxmKy4yMTIqc10pLmNsaXBFeHRlbnQoW1tsLS4yMTQqcytBYSxmKy4xNjYqcytBYV0sW2wtLjExNSpzLUFhLGYrLjIzNCpzLUFhXV0pLnN0cmVhbShjKS5wb2ludCxufSxuLnNjYWxlKDEwNzApfTt2YXIgQ2MsTmMsTGMsVGMscWMsemMsUmM9e3BvaW50OmcsbGluZVN0YXJ0OmcsbGluZUVuZDpnLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe05jPTAsUmMubGluZVN0YXJ0PUZlfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7UmMubGluZVN0YXJ0PVJjLmxpbmVFbmQ9UmMucG9pbnQ9ZyxDYys9b2EoTmMvMil9fSxEYz17cG9pbnQ6T2UsbGluZVN0YXJ0OmcsbGluZUVuZDpnLHBvbHlnb25TdGFydDpnLHBvbHlnb25FbmQ6Z30sUGM9e3BvaW50OlplLGxpbmVTdGFydDpWZSxsaW5lRW5kOlhlLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe1BjLmxpbmVTdGFydD0kZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe1BjLnBvaW50PVplLFBjLmxpbmVTdGFydD1WZSxQYy5saW5lRW5kPVhlfX07WG8uZ2VvLnBhdGg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4pe3JldHVybiBuJiYoImZ1bmN0aW9uIj09dHlwZW9mIGEmJmkucG9pbnRSYWRpdXMoK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxvJiZvLnZhbGlkfHwobz11KGkpKSxYby5nZW8uc3RyZWFtKG4sbykpLGkucmVzdWx0KCl9ZnVuY3Rpb24gdCgpe3JldHVybiBvPW51bGwsbn12YXIgZSxyLHUsaSxvLGE9NC41O3JldHVybiBuLmFyZWE9ZnVuY3Rpb24obil7cmV0dXJuIENjPTAsWG8uZ2VvLnN0cmVhbShuLHUoUmMpKSxDY30sbi5jZW50cm9pZD1mdW5jdGlvbihuKXtyZXR1cm4gZGM9bWM9eWM9eGM9TWM9X2M9YmM9d2M9U2M9MCxYby5nZW8uc3RyZWFtKG4sdShQYykpLFNjP1tiYy9TYyx3Yy9TY106X2M/W3hjL19jLE1jL19jXTp5Yz9bZGMveWMsbWMveWNdOlswLzAsMC8wXX0sbi5ib3VuZHM9ZnVuY3Rpb24obil7cmV0dXJuIHFjPXpjPS0oTGM9VGM9MS8wKSxYby5nZW8uc3RyZWFtKG4sdShEYykpLFtbTGMsVGNdLFtxYyx6Y11dfSxuLnByb2plY3Rpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9KGU9bik/bi5zdHJlYW18fEplKG4pOmJ0LHQoKSk6ZX0sbi5jb250ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PShyPW4pP25ldyBZZTpuZXcgQmUobiksImZ1bmN0aW9uIiE9dHlwZW9mIGEmJmkucG9pbnRSYWRpdXMoYSksdCgpKTpyfSxuLnBvaW50UmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6KGkucG9pbnRSYWRpdXMoK3QpLCt0KSxuKTphfSxuLnByb2plY3Rpb24oWG8uZ2VvLmFsYmVyc1VzYSgpKS5jb250ZXh0KG51bGwpfSxYby5nZW8udHJhbnNmb3JtPWZ1bmN0aW9uKG4pe3JldHVybntzdHJlYW06ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEdlKHQpO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXTtyZXR1cm4gZX19fSxHZS5wcm90b3R5cGU9e3BvaW50OmZ1bmN0aW9uKG4sdCl7dGhpcy5zdHJlYW0ucG9pbnQobix0KX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19LFhvLmdlby5wcm9qZWN0aW9uPVFlLFhvLmdlby5wcm9qZWN0aW9uTXV0YXRvcj1uciwoWG8uZ2VvLmVxdWlyZWN0YW5ndWxhcj1mdW5jdGlvbigpe3JldHVybiBRZShlcil9KS5yYXc9ZXIuaW52ZXJ0PWVyLFhvLmdlby5yb3RhdGlvbj1mdW5jdGlvbihuKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0PW4odFswXSpOYSx0WzFdKk5hKSx0WzBdKj1MYSx0WzFdKj1MYSx0fXJldHVybiBuPXVyKG5bMF0lMzYwKk5hLG5bMV0qTmEsbi5sZW5ndGg+Mj9uWzJdKk5hOjApLHQuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0PW4uaW52ZXJ0KHRbMF0qTmEsdFsxXSpOYSksdFswXSo9TGEsdFsxXSo9TGEsdH0sdH0scnIuaW52ZXJ0PWVyLFhvLmdlby5jaXJjbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIHI/ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cix0PXVyKC1uWzBdKk5hLC1uWzFdKk5hLDApLmludmVydCx1PVtdO3JldHVybiBlKG51bGwsbnVsbCwxLHtwb2ludDpmdW5jdGlvbihuLGUpe3UucHVzaChuPXQobixlKSksblswXSo9TGEsblsxXSo9TGF9fSkse3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOlt1XX19dmFyIHQsZSxyPVswLDBdLHU9NjtyZXR1cm4gbi5vcmlnaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxuKTpyfSxuLmFuZ2xlPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWNyKCh0PStyKSpOYSx1Kk5hKSxuKTp0fSxuLnByZWNpc2lvbj1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1jcih0Kk5hLCh1PStyKSpOYSksbik6dX0sbi5hbmdsZSg5MCl9LFhvLmdlby5kaXN0YW5jZT1mdW5jdGlvbihuLHQpe3ZhciBlLHI9KHRbMF0tblswXSkqTmEsdT1uWzFdKk5hLGk9dFsxXSpOYSxvPU1hdGguc2luKHIpLGE9TWF0aC5jb3MociksYz1NYXRoLnNpbih1KSxzPU1hdGguY29zKHUpLGw9TWF0aC5zaW4oaSksZj1NYXRoLmNvcyhpKTtyZXR1cm4gTWF0aC5hdGFuMihNYXRoLnNxcnQoKGU9ZipvKSplKyhlPXMqbC1jKmYqYSkqZSksYypsK3MqZiphKX0sWG8uZ2VvLmdyYXRpY3VsZT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXtyZXR1cm57dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp0KCl9fWZ1bmN0aW9uIHQoKXtyZXR1cm4gWG8ucmFuZ2UoTWF0aC5jZWlsKGkvZCkqZCx1LGQpLm1hcChoKS5jb25jYXQoWG8ucmFuZ2UoTWF0aC5jZWlsKHMvbSkqbSxjLG0pLm1hcChnKSkuY29uY2F0KFhvLnJhbmdlKE1hdGguY2VpbChyL3ApKnAsZSxwKS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG9hKG4lZCk+QWF9KS5tYXAobCkpLmNvbmNhdChYby5yYW5nZShNYXRoLmNlaWwoYS92KSp2LG8sdikuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBvYShuJW0pPkFhfSkubWFwKGYpKX12YXIgZSxyLHUsaSxvLGEsYyxzLGwsZixoLGcscD0xMCx2PXAsZD05MCxtPTM2MCx5PTIuNTtyZXR1cm4gbi5saW5lcz1mdW5jdGlvbigpe3JldHVybiB0KCkubWFwKGZ1bmN0aW9uKG4pe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpufX0pfSxuLm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W2goaSkuY29uY2F0KGcoYykuc2xpY2UoMSksaCh1KS5yZXZlcnNlKCkuc2xpY2UoMSksZyhzKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LG4uZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24ubWFqb3JFeHRlbnQodCkubWlub3JFeHRlbnQodCk6bi5taW5vckV4dGVudCgpfSxuLm1ham9yRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0WzBdWzBdLHU9K3RbMV1bMF0scz0rdFswXVsxXSxjPSt0WzFdWzFdLGk+dSYmKHQ9aSxpPXUsdT10KSxzPmMmJih0PXMscz1jLGM9dCksbi5wcmVjaXNpb24oeSkpOltbaSxzXSxbdSxjXV19LG4ubWlub3JFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3RbMF1bMF0sZT0rdFsxXVswXSxhPSt0WzBdWzFdLG89K3RbMV1bMV0scj5lJiYodD1yLHI9ZSxlPXQpLGE+byYmKHQ9YSxhPW8sbz10KSxuLnByZWNpc2lvbih5KSk6W1tyLGFdLFtlLG9dXX0sbi5zdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24ubWFqb3JTdGVwKHQpLm1pbm9yU3RlcCh0KTpuLm1pbm9yU3RlcCgpfSxuLm1ham9yU3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdFswXSxtPSt0WzFdLG4pOltkLG1dfSxuLm1pbm9yU3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0rdFswXSx2PSt0WzFdLG4pOltwLHZdfSxuLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT0rdCxsPWxyKGEsbyw5MCksZj1mcihyLGUseSksaD1scihzLGMsOTApLGc9ZnIoaSx1LHkpLG4pOnl9LG4ubWFqb3JFeHRlbnQoW1stMTgwLC05MCtBYV0sWzE4MCw5MC1BYV1dKS5taW5vckV4dGVudChbWy0xODAsLTgwLUFhXSxbMTgwLDgwK0FhXV0pfSxYby5nZW8uZ3JlYXRBcmM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOlt0fHxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlfHx1LmFwcGx5KHRoaXMsYXJndW1lbnRzKV19fXZhciB0LGUscj1ocix1PWdyO3JldHVybiBuLmRpc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIFhvLmdlby5kaXN0YW5jZSh0fHxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlfHx1LmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LG4uc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWUsdD0iZnVuY3Rpb24iPT10eXBlb2YgZT9udWxsOmUsbik6cn0sbi50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P251bGw6dCxuKTp1fSxuLnByZWNpc2lvbj1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP246MH0sbn0sWG8uZ2VvLmludGVycG9sYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHByKG5bMF0qTmEsblsxXSpOYSx0WzBdKk5hLHRbMV0qTmEpfSxYby5nZW8ubGVuZ3RoPWZ1bmN0aW9uKG4pe3JldHVybiBVYz0wLFhvLmdlby5zdHJlYW0obixqYyksVWN9O3ZhciBVYyxqYz17c3BoZXJlOmcscG9pbnQ6ZyxsaW5lU3RhcnQ6dnIsbGluZUVuZDpnLHBvbHlnb25TdGFydDpnLHBvbHlnb25FbmQ6Z30sSGM9ZHIoZnVuY3Rpb24obil7cmV0dXJuIE1hdGguc3FydCgyLygxK24pKX0sZnVuY3Rpb24obil7cmV0dXJuIDIqTWF0aC5hc2luKG4vMil9KTsoWG8uZ2VvLmF6aW11dGhhbEVxdWFsQXJlYT1mdW5jdGlvbigpe3JldHVybiBRZShIYyl9KS5yYXc9SGM7dmFyIEZjPWRyKGZ1bmN0aW9uKG4pe3ZhciB0PU1hdGguYWNvcyhuKTtyZXR1cm4gdCYmdC9NYXRoLnNpbih0KX0sYnQpOyhYby5nZW8uYXppbXV0aGFsRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gUWUoRmMpfSkucmF3PUZjLChYby5nZW8uY29uaWNDb25mb3JtYWw9ZnVuY3Rpb24oKXtyZXR1cm4gamUobXIpfSkucmF3PW1yLChYby5nZW8uY29uaWNFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBqZSh5cil9KS5yYXc9eXI7dmFyIE9jPWRyKGZ1bmN0aW9uKG4pe3JldHVybiAxL259LE1hdGguYXRhbik7KFhvLmdlby5nbm9tb25pYz1mdW5jdGlvbigpe3JldHVybiBRZShPYyl9KS5yYXc9T2MseHIuaW52ZXJ0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuW24sMipNYXRoLmF0YW4oTWF0aC5leHAodCkpLUVhXX0sKFhvLmdlby5tZXJjYXRvcj1mdW5jdGlvbigpe3JldHVybiBNcih4cil9KS5yYXc9eHI7dmFyIFljPWRyKGZ1bmN0aW9uKCl7cmV0dXJuIDF9LE1hdGguYXNpbik7KFhvLmdlby5vcnRob2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gUWUoWWMpfSkucmF3PVljO3ZhciBJYz1kcihmdW5jdGlvbihuKXtyZXR1cm4gMS8oMStuKX0sZnVuY3Rpb24obil7cmV0dXJuIDIqTWF0aC5hdGFuKG4pfSk7KFhvLmdlby5zdGVyZW9ncmFwaGljPWZ1bmN0aW9uKCl7cmV0dXJuIFFlKEljKX0pLnJhdz1JYyxfci5pbnZlcnQ9ZnVuY3Rpb24obix0KXtyZXR1cm5bLXQsMipNYXRoLmF0YW4oTWF0aC5leHAobikpLUVhXX0sKFhvLmdlby50cmFuc3ZlcnNlTWVyY2F0b3I9ZnVuY3Rpb24oKXt2YXIgbj1NcihfciksdD1uLmNlbnRlcixlPW4ucm90YXRlO3JldHVybiBuLmNlbnRlcj1mdW5jdGlvbihuKXtyZXR1cm4gbj90KFstblsxXSxuWzBdXSk6KG49dCgpLFstblsxXSxuWzBdXSl9LG4ucm90YXRlPWZ1bmN0aW9uKG4pe3JldHVybiBuP2UoW25bMF0sblsxXSxuLmxlbmd0aD4yP25bMl0rOTA6OTBdKToobj1lKCksW25bMF0sblsxXSxuWzJdLTkwXSl9LG4ucm90YXRlKFswLDBdKX0pLnJhdz1fcixYby5nZW9tPXt9LFhvLmdlb20uaHVsbD1mdW5jdGlvbihuKXtmdW5jdGlvbiB0KG4pe2lmKG4ubGVuZ3RoPDMpcmV0dXJuW107dmFyIHQsdT1fdChlKSxpPV90KHIpLG89bi5sZW5ndGgsYT1bXSxjPVtdO2Zvcih0PTA7bz50O3QrKylhLnB1c2goWyt1LmNhbGwodGhpcyxuW3RdLHQpLCtpLmNhbGwodGhpcyxuW3RdLHQpLHRdKTtmb3IoYS5zb3J0KGtyKSx0PTA7bz50O3QrKyljLnB1c2goW2FbdF1bMF0sLWFbdF1bMV1dKTt2YXIgcz1TcihhKSxsPVNyKGMpLGY9bFswXT09PXNbMF0saD1sW2wubGVuZ3RoLTFdPT09c1tzLmxlbmd0aC0xXSxnPVtdO2Zvcih0PXMubGVuZ3RoLTE7dD49MDstLXQpZy5wdXNoKG5bYVtzW3RdXVsyXV0pO2Zvcih0PStmO3Q8bC5sZW5ndGgtaDsrK3QpZy5wdXNoKG5bYVtsW3RdXVsyXV0pO3JldHVybiBnfXZhciBlPWJyLHI9d3I7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dChuKToodC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4sdCk6ZX0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW4sdCk6cn0sdCl9LFhvLmdlb20ucG9seWdvbj1mdW5jdGlvbihuKXtyZXR1cm4gZmEobixaYyksbn07dmFyIFpjPVhvLmdlb20ucG9seWdvbi5wcm90b3R5cGU9W107WmMuYXJlYT1mdW5jdGlvbigpe2Zvcih2YXIgbix0PS0xLGU9dGhpcy5sZW5ndGgscj10aGlzW2UtMV0sdT0wOysrdDxlOyluPXIscj10aGlzW3RdLHUrPW5bMV0qclswXS1uWzBdKnJbMV07cmV0dXJuLjUqdX0sWmMuY2VudHJvaWQ9ZnVuY3Rpb24obil7dmFyIHQsZSxyPS0xLHU9dGhpcy5sZW5ndGgsaT0wLG89MCxhPXRoaXNbdS0xXTtmb3IoYXJndW1lbnRzLmxlbmd0aHx8KG49LTEvKDYqdGhpcy5hcmVhKCkpKTsrK3I8dTspdD1hLGE9dGhpc1tyXSxlPXRbMF0qYVsxXS1hWzBdKnRbMV0saSs9KHRbMF0rYVswXSkqZSxvKz0odFsxXSthWzFdKSplO3JldHVybltpKm4sbypuXX0sWmMuY2xpcD1mdW5jdGlvbihuKXtmb3IodmFyIHQsZSxyLHUsaSxvLGE9Q3IobiksYz0tMSxzPXRoaXMubGVuZ3RoLUNyKHRoaXMpLGw9dGhpc1tzLTFdOysrYzxzOyl7Zm9yKHQ9bi5zbGljZSgpLG4ubGVuZ3RoPTAsdT10aGlzW2NdLGk9dFsocj10Lmxlbmd0aC1hKS0xXSxlPS0xOysrZTxyOylvPXRbZV0sRXIobyxsLHUpPyhFcihpLGwsdSl8fG4ucHVzaChBcihpLG8sbCx1KSksbi5wdXNoKG8pKTpFcihpLGwsdSkmJm4ucHVzaChBcihpLG8sbCx1KSksaT1vO2EmJm4ucHVzaChuWzBdKSxsPXV9cmV0dXJuIG59O3ZhciBWYyxYYywkYyxCYyxXYyxKYz1bXSxHYz1bXTtQci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2Zvcih2YXIgbix0PXRoaXMuZWRnZXMsZT10Lmxlbmd0aDtlLS07KW49dFtlXS5lZGdlLG4uYiYmbi5hfHx0LnNwbGljZShlLDEpO3JldHVybiB0LnNvcnQoanIpLHQubGVuZ3RofSxCci5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZS5sPT09dGhpcy5zaXRlP3RoaXMuZWRnZS5hOnRoaXMuZWRnZS5ifSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlLmw9PT10aGlzLnNpdGU/dGhpcy5lZGdlLmI6dGhpcy5lZGdlLmF9fSxXci5wcm90b3R5cGU9e2luc2VydDpmdW5jdGlvbihuLHQpe3ZhciBlLHIsdTtpZihuKXtpZih0LlA9bix0Lk49bi5OLG4uTiYmKG4uTi5QPXQpLG4uTj10LG4uUil7Zm9yKG49bi5SO24uTDspbj1uLkw7bi5MPXR9ZWxzZSBuLlI9dDtlPW59ZWxzZSB0aGlzLl8/KG49UXIodGhpcy5fKSx0LlA9bnVsbCx0Lk49bixuLlA9bi5MPXQsZT1uKToodC5QPXQuTj1udWxsLHRoaXMuXz10LGU9bnVsbCk7Zm9yKHQuTD10LlI9bnVsbCx0LlU9ZSx0LkM9ITAsbj10O2UmJmUuQzspcj1lLlUsZT09PXIuTD8odT1yLlIsdSYmdS5DPyhlLkM9dS5DPSExLHIuQz0hMCxuPXIpOihuPT09ZS5SJiYoR3IodGhpcyxlKSxuPWUsZT1uLlUpLGUuQz0hMSxyLkM9ITAsS3IodGhpcyxyKSkpOih1PXIuTCx1JiZ1LkM/KGUuQz11LkM9ITEsci5DPSEwLG49cik6KG49PT1lLkwmJihLcih0aGlzLGUpLG49ZSxlPW4uVSksZS5DPSExLHIuQz0hMCxHcih0aGlzLHIpKSksZT1uLlU7dGhpcy5fLkM9ITF9LHJlbW92ZTpmdW5jdGlvbihuKXtuLk4mJihuLk4uUD1uLlApLG4uUCYmKG4uUC5OPW4uTiksbi5OPW4uUD1udWxsO3ZhciB0LGUscix1PW4uVSxpPW4uTCxvPW4uUjtpZihlPWk/bz9RcihvKTppOm8sdT91Lkw9PT1uP3UuTD1lOnUuUj1lOnRoaXMuXz1lLGkmJm8/KHI9ZS5DLGUuQz1uLkMsZS5MPWksaS5VPWUsZSE9PW8/KHU9ZS5VLGUuVT1uLlUsbj1lLlIsdS5MPW4sZS5SPW8sby5VPWUpOihlLlU9dSx1PWUsbj1lLlIpKToocj1uLkMsbj1lKSxuJiYobi5VPXUpLCFyKXtpZihuJiZuLkMpcmV0dXJuIG4uQz0hMSx2b2lkIDA7ZG97aWYobj09PXRoaXMuXylicmVhaztpZihuPT09dS5MKXtpZih0PXUuUix0LkMmJih0LkM9ITEsdS5DPSEwLEdyKHRoaXMsdSksdD11LlIpLHQuTCYmdC5MLkN8fHQuUiYmdC5SLkMpe3QuUiYmdC5SLkN8fCh0LkwuQz0hMSx0LkM9ITAsS3IodGhpcyx0KSx0PXUuUiksdC5DPXUuQyx1LkM9dC5SLkM9ITEsR3IodGhpcyx1KSxuPXRoaXMuXzticmVha319ZWxzZSBpZih0PXUuTCx0LkMmJih0LkM9ITEsdS5DPSEwLEtyKHRoaXMsdSksdD11LkwpLHQuTCYmdC5MLkN8fHQuUiYmdC5SLkMpe3QuTCYmdC5MLkN8fCh0LlIuQz0hMSx0LkM9ITAsR3IodGhpcyx0KSx0PXUuTCksdC5DPXUuQyx1LkM9dC5MLkM9ITEsS3IodGhpcyx1KSxuPXRoaXMuXzticmVha310LkM9ITAsbj11LHU9dS5VfXdoaWxlKCFuLkMpO24mJihuLkM9ITEpfX19LFhvLmdlb20udm9yb25vaT1mdW5jdGlvbihuKXtmdW5jdGlvbiB0KG4pe3ZhciB0PW5ldyBBcnJheShuLmxlbmd0aCkscj1hWzBdWzBdLHU9YVswXVsxXSxpPWFbMV1bMF0sbz1hWzFdWzFdO3JldHVybiBudShlKG4pLGEpLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZSxhKXt2YXIgYz1lLmVkZ2VzLHM9ZS5zaXRlLGw9dFthXT1jLmxlbmd0aD9jLm1hcChmdW5jdGlvbihuKXt2YXIgdD1uLnN0YXJ0KCk7cmV0dXJuW3QueCx0LnldfSk6cy54Pj1yJiZzLng8PWkmJnMueT49dSYmcy55PD1vP1tbcixvXSxbaSxvXSxbaSx1XSxbcix1XV06W107bC5wb2ludD1uW2FdfSksdH1mdW5jdGlvbiBlKG4pe3JldHVybiBuLm1hcChmdW5jdGlvbihuLHQpe3JldHVybnt4Ok1hdGgucm91bmQoaShuLHQpL0FhKSpBYSx5Ok1hdGgucm91bmQobyhuLHQpL0FhKSpBYSxpOnR9fSl9dmFyIHI9YnIsdT13cixpPXIsbz11LGE9S2M7cmV0dXJuIG4/dChuKToodC5saW5rcz1mdW5jdGlvbihuKXtyZXR1cm4gbnUoZShuKSkuZWRnZXMuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLmwmJm4ucn0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm57c291cmNlOm5bdC5sLmldLHRhcmdldDpuW3Quci5pXX19KX0sdC50cmlhbmdsZXM9ZnVuY3Rpb24obil7dmFyIHQ9W107cmV0dXJuIG51KGUobikpLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZSxyKXtmb3IodmFyIHUsaSxvPWUuc2l0ZSxhPWUuZWRnZXMuc29ydChqciksYz0tMSxzPWEubGVuZ3RoLGw9YVtzLTFdLmVkZ2UsZj1sLmw9PT1vP2wucjpsLmw7KytjPHM7KXU9bCxpPWYsbD1hW2NdLmVkZ2UsZj1sLmw9PT1vP2wucjpsLmwscjxpLmkmJnI8Zi5pJiZldShvLGksZik8MCYmdC5wdXNoKFtuW3JdLG5baS5pXSxuW2YuaV1dKX0pLHR9LHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1fdChyPW4pLHQpOnJ9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1fdCh1PW4pLHQpOnV9LHQuY2xpcEV4dGVudD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT1uP0tjOm4sdCk6YT09PUtjP251bGw6YX0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuY2xpcEV4dGVudChuJiZbWzAsMF0sbl0pOmE9PT1LYz9udWxsOmEmJmFbMV19LHQpfTt2YXIgS2M9W1stMWU2LC0xZTZdLFsxZTYsMWU2XV07WG8uZ2VvbS5kZWxhdW5heT1mdW5jdGlvbihuKXtyZXR1cm4gWG8uZ2VvbS52b3Jvbm9pKCkudHJpYW5nbGVzKG4pfSxYby5nZW9tLnF1YWR0cmVlPWZ1bmN0aW9uKG4sdCxlLHIsdSl7ZnVuY3Rpb24gaShuKXtmdW5jdGlvbiBpKG4sdCxlLHIsdSxpLG8sYSl7aWYoIWlzTmFOKGUpJiYhaXNOYU4ocikpaWYobi5sZWFmKXt2YXIgYz1uLngsbD1uLnk7aWYobnVsbCE9YylpZihvYShjLWUpK29hKGwtcik8LjAxKXMobix0LGUscix1LGksbyxhKTtlbHNle3ZhciBmPW4ucG9pbnQ7bi54PW4ueT1uLnBvaW50PW51bGwscyhuLGYsYyxsLHUsaSxvLGEpLHMobix0LGUscix1LGksbyxhKX1lbHNlIG4ueD1lLG4ueT1yLG4ucG9pbnQ9dH1lbHNlIHMobix0LGUscix1LGksbyxhKX1mdW5jdGlvbiBzKG4sdCxlLHIsdSxvLGEsYyl7dmFyIHM9LjUqKHUrYSksbD0uNSoobytjKSxmPWU+PXMsaD1yPj1sLGc9KGg8PDEpK2Y7bi5sZWFmPSExLG49bi5ub2Rlc1tnXXx8KG4ubm9kZXNbZ109aXUoKSksZj91PXM6YT1zLGg/bz1sOmM9bCxpKG4sdCxlLHIsdSxvLGEsYyl9dmFyIGwsZixoLGcscCx2LGQsbSx5LHg9X3QoYSksTT1fdChjKTtpZihudWxsIT10KXY9dCxkPWUsbT1yLHk9dTtlbHNlIGlmKG09eT0tKHY9ZD0xLzApLGY9W10saD1bXSxwPW4ubGVuZ3RoLG8pZm9yKGc9MDtwPmc7KytnKWw9bltnXSxsLng8diYmKHY9bC54KSxsLnk8ZCYmKGQ9bC55KSxsLng+bSYmKG09bC54KSxsLnk+eSYmKHk9bC55KSxmLnB1c2gobC54KSxoLnB1c2gobC55KTtlbHNlIGZvcihnPTA7cD5nOysrZyl7dmFyIF89K3gobD1uW2ddLGcpLGI9K00obCxnKTt2Pl8mJih2PV8pLGQ+YiYmKGQ9YiksXz5tJiYobT1fKSxiPnkmJih5PWIpLGYucHVzaChfKSxoLnB1c2goYil9dmFyIHc9bS12LFM9eS1kO3c+Uz95PWQrdzptPXYrUzt2YXIgaz1pdSgpO2lmKGsuYWRkPWZ1bmN0aW9uKG4pe2koayxuLCt4KG4sKytnKSwrTShuLGcpLHYsZCxtLHkpfSxrLnZpc2l0PWZ1bmN0aW9uKG4pe291KG4sayx2LGQsbSx5KX0sZz0tMSxudWxsPT10KXtmb3IoOysrZzxwOylpKGssbltnXSxmW2ddLGhbZ10sdixkLG0seSk7LS1nfWVsc2Ugbi5mb3JFYWNoKGsuYWRkKTtyZXR1cm4gZj1oPW49bD1udWxsLGt9dmFyIG8sYT1icixjPXdyO3JldHVybihvPWFyZ3VtZW50cy5sZW5ndGgpPyhhPXJ1LGM9dXUsMz09PW8mJih1PWUscj10LGU9dD0wKSxpKG4pKTooaS54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW4saSk6YX0saS55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPW4saSk6Y30saS5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/dD1lPXI9dT1udWxsOih0PStuWzBdWzBdLGU9K25bMF1bMV0scj0rblsxXVswXSx1PStuWzFdWzFdKSxpKTpudWxsPT10P251bGw6W1t0LGVdLFtyLHVdXX0saS5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT1uP3Q9ZT1yPXU9bnVsbDoodD1lPTAscj0rblswXSx1PStuWzFdKSxpKTpudWxsPT10P251bGw6W3ItdCx1LWVdfSxpKX0sWG8uaW50ZXJwb2xhdGVSZ2I9YXUsWG8uaW50ZXJwb2xhdGVPYmplY3Q9Y3UsWG8uaW50ZXJwb2xhdGVOdW1iZXI9c3UsWG8uaW50ZXJwb2xhdGVTdHJpbmc9bHU7dmFyIFFjPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZztYby5pbnRlcnBvbGF0ZT1mdSxYby5pbnRlcnBvbGF0b3JzPVtmdW5jdGlvbihuLHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybigic3RyaW5nIj09PWU/VmEuaGFzKHQpfHwvXigjfHJnYlwofGhzbFwoKS8udGVzdCh0KT9hdTpsdTp0IGluc3RhbmNlb2YgRz9hdToib2JqZWN0Ij09PWU/QXJyYXkuaXNBcnJheSh0KT9odTpjdTpzdSkobix0KX1dLFhvLmludGVycG9sYXRlQXJyYXk9aHU7dmFyIG5zPWZ1bmN0aW9uKCl7cmV0dXJuIGJ0fSx0cz1Yby5tYXAoe2xpbmVhcjpucyxwb2x5Onh1LHF1YWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZHV9LGN1YmljOmZ1bmN0aW9uKCl7cmV0dXJuIG11fSxzaW46ZnVuY3Rpb24oKXtyZXR1cm4gTXV9LGV4cDpmdW5jdGlvbigpe3JldHVybiBfdX0sY2lyY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIGJ1fSxlbGFzdGljOnd1LGJhY2s6U3UsYm91bmNlOmZ1bmN0aW9uKCl7cmV0dXJuIGt1fX0pLGVzPVhvLm1hcCh7ImluIjpidCxvdXQ6cHUsImluLW91dCI6dnUsIm91dC1pbiI6ZnVuY3Rpb24obil7cmV0dXJuIHZ1KHB1KG4pKX19KTtYby5lYXNlPWZ1bmN0aW9uKG4pe3ZhciB0PW4uaW5kZXhPZigiLSIpLGU9dD49MD9uLnN1YnN0cmluZygwLHQpOm4scj10Pj0wP24uc3Vic3RyaW5nKHQrMSk6ImluIjtyZXR1cm4gZT10cy5nZXQoZSl8fG5zLHI9ZXMuZ2V0KHIpfHxidCxndShyKGUuYXBwbHkobnVsbCwkby5jYWxsKGFyZ3VtZW50cywxKSkpKX0sWG8uaW50ZXJwb2xhdGVIY2w9RXUsWG8uaW50ZXJwb2xhdGVIc2w9QXUsWG8uaW50ZXJwb2xhdGVMYWI9Q3UsWG8uaW50ZXJwb2xhdGVSb3VuZD1OdSxYby50cmFuc2Zvcm09ZnVuY3Rpb24obil7dmFyIHQ9V28uY3JlYXRlRWxlbWVudE5TKFhvLm5zLnByZWZpeC5zdmcsImciKTtyZXR1cm4oWG8udHJhbnNmb3JtPWZ1bmN0aW9uKG4pe2lmKG51bGwhPW4pe3Quc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLG4pO3ZhciBlPXQudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKX1yZXR1cm4gbmV3IEx1KGU/ZS5tYXRyaXg6cnMpfSkobil9LEx1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ0cmFuc2xhdGUoIit0aGlzLnRyYW5zbGF0ZSsiKXJvdGF0ZSgiK3RoaXMucm90YXRlKyIpc2tld1goIit0aGlzLnNrZXcrIilzY2FsZSgiK3RoaXMuc2NhbGUrIikifTt2YXIgcnM9e2E6MSxiOjAsYzowLGQ6MSxlOjAsZjowfTtYby5pbnRlcnBvbGF0ZVRyYW5zZm9ybT1SdSxYby5sYXlvdXQ9e30sWG8ubGF5b3V0LmJ1bmRsZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuKXtmb3IodmFyIHQ9W10sZT0tMSxyPW4ubGVuZ3RoOysrZTxyOyl0LnB1c2goVXUobltlXSkpO3JldHVybiB0fX0sWG8ubGF5b3V0LmNob3JkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZhciBuLHMsZixoLGcscD17fSx2PVtdLGQ9WG8ucmFuZ2UoaSksbT1bXTtmb3IoZT1bXSxyPVtdLG49MCxoPS0xOysraDxpOyl7Zm9yKHM9MCxnPS0xOysrZzxpOylzKz11W2hdW2ddO3YucHVzaChzKSxtLnB1c2goWG8ucmFuZ2UoaSkpLG4rPXN9Zm9yKG8mJmQuc29ydChmdW5jdGlvbihuLHQpe3JldHVybiBvKHZbbl0sdlt0XSl9KSxhJiZtLmZvckVhY2goZnVuY3Rpb24obix0KXtuLnNvcnQoZnVuY3Rpb24obixlKXtyZXR1cm4gYSh1W3RdW25dLHVbdF1bZV0pfSl9KSxuPShrYS1sKmkpL24scz0wLGg9LTE7KytoPGk7KXtmb3IoZj1zLGc9LTE7KytnPGk7KXt2YXIgeT1kW2hdLHg9bVt5XVtnXSxNPXVbeV1beF0sXz1zLGI9cys9TSpuO3BbeSsiLSIreF09e2luZGV4Onksc3ViaW5kZXg6eCxzdGFydEFuZ2xlOl8sZW5kQW5nbGU6Yix2YWx1ZTpNfX1yW3ldPXtpbmRleDp5LHN0YXJ0QW5nbGU6ZixlbmRBbmdsZTpzLHZhbHVlOihzLWYpL259LHMrPWx9Zm9yKGg9LTE7KytoPGk7KWZvcihnPWgtMTsrK2c8aTspe3ZhciB3PXBbaCsiLSIrZ10sUz1wW2crIi0iK2hdOyh3LnZhbHVlfHxTLnZhbHVlKSYmZS5wdXNoKHcudmFsdWU8Uy52YWx1ZT97c291cmNlOlMsdGFyZ2V0Ond9Ontzb3VyY2U6dyx0YXJnZXQ6U30pfWMmJnQoKX1mdW5jdGlvbiB0KCl7ZS5zb3J0KGZ1bmN0aW9uKG4sdCl7cmV0dXJuIGMoKG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlKS8yLCh0LnNvdXJjZS52YWx1ZSt0LnRhcmdldC52YWx1ZSkvMil9KX12YXIgZSxyLHUsaSxvLGEsYyxzPXt9LGw9MDtyZXR1cm4gcy5tYXRyaXg9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9KHU9bikmJnUubGVuZ3RoLGU9cj1udWxsLHMpOnV9LHMucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1uLGU9cj1udWxsLHMpOmx9LHMuc29ydEdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1uLGU9cj1udWxsLHMpOm99LHMuc29ydFN1Ymdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1uLGU9bnVsbCxzKTphfSxzLnNvcnRDaG9yZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9bixlJiZ0KCkscyk6Y30scy5jaG9yZHM9ZnVuY3Rpb24oKXtyZXR1cm4gZXx8bigpLGV9LHMuZ3JvdXBzPWZ1bmN0aW9uKCl7cmV0dXJuIHJ8fG4oKSxyfSxzfSxYby5sYXlvdXQuZm9yY2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4pe3JldHVybiBmdW5jdGlvbih0LGUscix1KXtpZih0LnBvaW50IT09bil7dmFyIGk9dC5jeC1uLngsbz10LmN5LW4ueSxhPXUtZSxjPWkqaStvKm87aWYoYz5hKmEvZCl7aWYocD5jKXt2YXIgcz10LmNoYXJnZS9jO24ucHgtPWkqcyxuLnB5LT1vKnN9cmV0dXJuITB9aWYodC5wb2ludCYmYyYmcD5jKXt2YXIgcz10LnBvaW50Q2hhcmdlL2M7bi5weC09aSpzLG4ucHktPW8qc319cmV0dXJuIXQuY2hhcmdlfX1mdW5jdGlvbiB0KG4pe24ucHg9WG8uZXZlbnQueCxuLnB5PVhvLmV2ZW50LnksYS5yZXN1bWUoKX12YXIgZSxyLHUsaSxvLGE9e30sYz1Yby5kaXNwYXRjaCgic3RhcnQiLCJ0aWNrIiwiZW5kIikscz1bMSwxXSxsPS45LGY9dXMsaD1pcyxnPS0zMCxwPW9zLHY9LjEsZD0uNjQsbT1bXSx5PVtdO3JldHVybiBhLnRpY2s9ZnVuY3Rpb24oKXtpZigocio9Ljk5KTwuMDA1KXJldHVybiBjLmVuZCh7dHlwZToiZW5kIixhbHBoYTpyPTB9KSwhMDt2YXIgdCxlLGEsZixoLHAsZCx4LE0sXz1tLmxlbmd0aCxiPXkubGVuZ3RoO2ZvcihlPTA7Yj5lOysrZSlhPXlbZV0sZj1hLnNvdXJjZSxoPWEudGFyZ2V0LHg9aC54LWYueCxNPWgueS1mLnksKHA9eCp4K00qTSkmJihwPXIqaVtlXSooKHA9TWF0aC5zcXJ0KHApKS11W2VdKS9wLHgqPXAsTSo9cCxoLngtPXgqKGQ9Zi53ZWlnaHQvKGgud2VpZ2h0K2Yud2VpZ2h0KSksaC55LT1NKmQsZi54Kz14KihkPTEtZCksZi55Kz1NKmQpO2lmKChkPXIqdikmJih4PXNbMF0vMixNPXNbMV0vMixlPS0xLGQpKWZvcig7KytlPF87KWE9bVtlXSxhLngrPSh4LWEueCkqZCxhLnkrPShNLWEueSkqZDtpZihnKWZvcihadSh0PVhvLmdlb20ucXVhZHRyZWUobSkscixvKSxlPS0xOysrZTxfOykoYT1tW2VdKS5maXhlZHx8dC52aXNpdChuKGEpKTtmb3IoZT0tMTsrK2U8XzspYT1tW2VdLGEuZml4ZWQ/KGEueD1hLnB4LGEueT1hLnB5KTooYS54LT0oYS5weC0oYS5weD1hLngpKSpsLGEueS09KGEucHktKGEucHk9YS55KSkqbCk7Yy50aWNrKHt0eXBlOiJ0aWNrIixhbHBoYTpyfSl9LGEubm9kZXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09bixhKTptfSxhLmxpbmtzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PW4sYSk6eX0sYS5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPW4sYSk6c30sYS5saW5rRGlzdGFuY2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjorbixhKTpmfSxhLmRpc3RhbmNlPWEubGlua0Rpc3RhbmNlLGEubGlua1N0cmVuZ3RoPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246K24sYSk6aH0sYS5mcmljdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0rbixhKTpsfSxhLmNoYXJnZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOituLGEpOmd9LGEuY2hhcmdlRGlzdGFuY2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9bipuLGEpOk1hdGguc3FydChwKX0sYS5ncmF2aXR5PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PStuLGEpOnZ9LGEudGhldGE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9bipuLGEpOk1hdGguc3FydChkKX0sYS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rbixyP3I9bj4wP246MDpuPjAmJihjLnN0YXJ0KHt0eXBlOiJzdGFydCIsYWxwaGE6cj1ufSksWG8udGltZXIoYS50aWNrKSksYSk6cn0sYS5zdGFydD1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obixyKXtpZighZSl7Zm9yKGU9bmV3IEFycmF5KGMpLGE9MDtjPmE7KythKWVbYV09W107Zm9yKGE9MDtzPmE7KythKXt2YXIgdT15W2FdO2VbdS5zb3VyY2UuaW5kZXhdLnB1c2godS50YXJnZXQpLGVbdS50YXJnZXQuaW5kZXhdLnB1c2godS5zb3VyY2UpfX1mb3IodmFyIGksbz1lW3RdLGE9LTEscz1vLmxlbmd0aDsrK2E8czspaWYoIWlzTmFOKGk9b1thXVtuXSkpcmV0dXJuIGk7cmV0dXJuIE1hdGgucmFuZG9tKCkqcn12YXIgdCxlLHIsYz1tLmxlbmd0aCxsPXkubGVuZ3RoLHA9c1swXSx2PXNbMV07Zm9yKHQ9MDtjPnQ7Kyt0KShyPW1bdF0pLmluZGV4PXQsci53ZWlnaHQ9MDtmb3IodD0wO2w+dDsrK3Qpcj15W3RdLCJudW1iZXIiPT10eXBlb2Ygci5zb3VyY2UmJihyLnNvdXJjZT1tW3Iuc291cmNlXSksIm51bWJlciI9PXR5cGVvZiByLnRhcmdldCYmKHIudGFyZ2V0PW1bci50YXJnZXRdKSwrK3Iuc291cmNlLndlaWdodCwrK3IudGFyZ2V0LndlaWdodDtmb3IodD0wO2M+dDsrK3Qpcj1tW3RdLGlzTmFOKHIueCkmJihyLng9bigieCIscCkpLGlzTmFOKHIueSkmJihyLnk9bigieSIsdikpLGlzTmFOKHIucHgpJiYoci5weD1yLngpLGlzTmFOKHIucHkpJiYoci5weT1yLnkpO2lmKHU9W10sImZ1bmN0aW9uIj09dHlwZW9mIGYpZm9yKHQ9MDtsPnQ7Kyt0KXVbdF09K2YuY2FsbCh0aGlzLHlbdF0sdCk7ZWxzZSBmb3IodD0wO2w+dDsrK3QpdVt0XT1mO2lmKGk9W10sImZ1bmN0aW9uIj09dHlwZW9mIGgpZm9yKHQ9MDtsPnQ7Kyt0KWlbdF09K2guY2FsbCh0aGlzLHlbdF0sdCk7ZWxzZSBmb3IodD0wO2w+dDsrK3QpaVt0XT1oO2lmKG89W10sImZ1bmN0aW9uIj09dHlwZW9mIGcpZm9yKHQ9MDtjPnQ7Kyt0KW9bdF09K2cuY2FsbCh0aGlzLG1bdF0sdCk7ZWxzZSBmb3IodD0wO2M+dDsrK3Qpb1t0XT1nO3JldHVybiBhLnJlc3VtZSgpfSxhLnJlc3VtZT1mdW5jdGlvbigpe3JldHVybiBhLmFscGhhKC4xKX0sYS5zdG9wPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYWxwaGEoMCl9LGEuZHJhZz1mdW5jdGlvbigpe3JldHVybiBlfHwoZT1Yby5iZWhhdmlvci5kcmFnKCkub3JpZ2luKGJ0KS5vbigiZHJhZ3N0YXJ0LmZvcmNlIixGdSkub24oImRyYWcuZm9yY2UiLHQpLm9uKCJkcmFnZW5kLmZvcmNlIixPdSkpLGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMub24oIm1vdXNlb3Zlci5mb3JjZSIsWXUpLm9uKCJtb3VzZW91dC5mb3JjZSIsSXUpLmNhbGwoZSksdm9pZCAwKTplfSxYby5yZWJpbmQoYSxjLCJvbiIpfTt2YXIgdXM9MjAsaXM9MSxvcz0xLzA7WG8ubGF5b3V0LmhpZXJhcmNoeT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCxvLGEpe3ZhciBjPXUuY2FsbChlLHQsbyk7aWYodC5kZXB0aD1vLGEucHVzaCh0KSxjJiYocz1jLmxlbmd0aCkpe2Zvcih2YXIgcyxsLGY9LTEsaD10LmNoaWxkcmVuPW5ldyBBcnJheShzKSxnPTAscD1vKzE7KytmPHM7KWw9aFtmXT1uKGNbZl0scCxhKSxsLnBhcmVudD10LGcrPWwudmFsdWU7ciYmaC5zb3J0KHIpLGkmJih0LnZhbHVlPWcpfWVsc2UgZGVsZXRlIHQuY2hpbGRyZW4saSYmKHQudmFsdWU9K2kuY2FsbChlLHQsbyl8fDApO3JldHVybiB0fWZ1bmN0aW9uIHQobixyKXt2YXIgdT1uLmNoaWxkcmVuLG89MDtpZih1JiYoYT11Lmxlbmd0aCkpZm9yKHZhciBhLGM9LTEscz1yKzE7KytjPGE7KW8rPXQodVtjXSxzKTtlbHNlIGkmJihvPStpLmNhbGwoZSxuLHIpfHwwKTtyZXR1cm4gaSYmKG4udmFsdWU9byksb31mdW5jdGlvbiBlKHQpe3ZhciBlPVtdO3JldHVybiBuKHQsMCxlKSxlfXZhciByPUJ1LHU9WHUsaT0kdTtyZXR1cm4gZS5zb3J0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW4sZSk6cn0sZS5jaGlsZHJlbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1uLGUpOnV9LGUudmFsdWU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bixlKTppfSxlLnJldmFsdWU9ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwKSxufSxlfSxYby5sYXlvdXQucGFydGl0aW9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUscix1KXt2YXIgaT10LmNoaWxkcmVuO2lmKHQueD1lLHQueT10LmRlcHRoKnUsdC5keD1yLHQuZHk9dSxpJiYobz1pLmxlbmd0aCkpe3ZhciBvLGEsYyxzPS0xO2ZvcihyPXQudmFsdWU/ci90LnZhbHVlOjA7KytzPG87KW4oYT1pW3NdLGUsYz1hLnZhbHVlKnIsdSksZSs9Y319ZnVuY3Rpb24gdChuKXt2YXIgZT1uLmNoaWxkcmVuLHI9MDtpZihlJiYodT1lLmxlbmd0aCkpZm9yKHZhciB1LGk9LTE7KytpPHU7KXI9TWF0aC5tYXgocix0KGVbaV0pKTtyZXR1cm4gMStyfWZ1bmN0aW9uIGUoZSxpKXt2YXIgbz1yLmNhbGwodGhpcyxlLGkpO3JldHVybiBuKG9bMF0sMCx1WzBdLHVbMV0vdChvWzBdKSksb312YXIgcj1Yby5sYXlvdXQuaGllcmFyY2h5KCksdT1bMSwxXTtyZXR1cm4gZS5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PW4sZSk6dX0sVnUoZSxyKX0sWG8ubGF5b3V0LnBpZT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oaSl7dmFyIG89aS5tYXAoZnVuY3Rpb24oZSxyKXtyZXR1cm4rdC5jYWxsKG4sZSxyKX0pLGE9KygiZnVuY3Rpb24iPT10eXBlb2Ygcj9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpyKSxjPSgoImZ1bmN0aW9uIj09dHlwZW9mIHU/dS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dSktYSkvWG8uc3VtKG8pLHM9WG8ucmFuZ2UoaS5sZW5ndGgpO251bGwhPWUmJnMuc29ydChlPT09YXM/ZnVuY3Rpb24obix0KXtyZXR1cm4gb1t0XS1vW25dfTpmdW5jdGlvbihuLHQpe3JldHVybiBlKGlbbl0saVt0XSl9KTt2YXIgbD1bXTtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciB0O2xbbl09e2RhdGE6aVtuXSx2YWx1ZTp0PW9bbl0sc3RhcnRBbmdsZTphLGVuZEFuZ2xlOmErPXQqY319KSxsfXZhciB0PU51bWJlcixlPWFzLHI9MCx1PWthO3JldHVybiBuLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5zb3J0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbik6ZX0sbi5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbi5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LG4pOnV9LG59O3ZhciBhcz17fTtYby5sYXlvdXQuc3RhY2s9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGEsYyl7dmFyIHM9YS5tYXAoZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5jYWxsKG4sZSxyKX0pLGw9cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW2kuY2FsbChuLHQsZSksby5jYWxsKG4sdCxlKV19KX0pLGY9ZS5jYWxsKG4sbCxjKTtzPVhvLnBlcm11dGUocyxmKSxsPVhvLnBlcm11dGUobCxmKTt2YXIgaCxnLHAsdj1yLmNhbGwobixsLGMpLGQ9cy5sZW5ndGgsbT1zWzBdLmxlbmd0aDtmb3IoZz0wO20+ZzsrK2cpZm9yKHUuY2FsbChuLHNbMF1bZ10scD12W2ddLGxbMF1bZ11bMV0pLGg9MTtkPmg7KytoKXUuY2FsbChuLHNbaF1bZ10scCs9bFtoLTFdW2ddWzFdLGxbaF1bZ11bMV0pO3JldHVybiBhfXZhciB0PWJ0LGU9UXUscj1uaSx1PUt1LGk9SnUsbz1HdTtyZXR1cm4gbi52YWx1ZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLm9yZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Y3MuZ2V0KHQpfHxRdSxuKTplfSxuLm9mZnNldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnNzLmdldCh0KXx8bmksbik6cn0sbi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsbik6aX0sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQsbik6b30sbi5vdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxuKTp1fSxufTt2YXIgY3M9WG8ubWFwKHsiaW5zaWRlLW91dCI6ZnVuY3Rpb24obil7dmFyIHQsZSxyPW4ubGVuZ3RoLHU9bi5tYXAodGkpLGk9bi5tYXAoZWkpLG89WG8ucmFuZ2Uocikuc29ydChmdW5jdGlvbihuLHQpe3JldHVybiB1W25dLXVbdF19KSxhPTAsYz0wLHM9W10sbD1bXTtmb3IodD0wO3I+dDsrK3QpZT1vW3RdLGM+YT8oYSs9aVtlXSxzLnB1c2goZSkpOihjKz1pW2VdLGwucHVzaChlKSk7cmV0dXJuIGwucmV2ZXJzZSgpLmNvbmNhdChzKX0scmV2ZXJzZTpmdW5jdGlvbihuKXtyZXR1cm4gWG8ucmFuZ2Uobi5sZW5ndGgpLnJldmVyc2UoKX0sImRlZmF1bHQiOlF1fSksc3M9WG8ubWFwKHtzaWxob3VldHRlOmZ1bmN0aW9uKG4pe3ZhciB0LGUscix1PW4ubGVuZ3RoLGk9blswXS5sZW5ndGgsbz1bXSxhPTAsYz1bXTtmb3IoZT0wO2k+ZTsrK2Upe2Zvcih0PTAscj0wO3U+dDt0Kyspcis9blt0XVtlXVsxXTtyPmEmJihhPXIpLG8ucHVzaChyKX1mb3IoZT0wO2k+ZTsrK2UpY1tlXT0oYS1vW2VdKS8yO3JldHVybiBjfSx3aWdnbGU6ZnVuY3Rpb24obil7dmFyIHQsZSxyLHUsaSxvLGEsYyxzLGw9bi5sZW5ndGgsZj1uWzBdLGg9Zi5sZW5ndGgsZz1bXTtmb3IoZ1swXT1jPXM9MCxlPTE7aD5lOysrZSl7Zm9yKHQ9MCx1PTA7bD50OysrdCl1Kz1uW3RdW2VdWzFdO2Zvcih0PTAsaT0wLGE9ZltlXVswXS1mW2UtMV1bMF07bD50OysrdCl7Zm9yKHI9MCxvPShuW3RdW2VdWzFdLW5bdF1bZS0xXVsxXSkvKDIqYSk7dD5yOysrcilvKz0obltyXVtlXVsxXS1uW3JdW2UtMV1bMV0pL2E7aSs9bypuW3RdW2VdWzFdfWdbZV09Yy09dT9pL3UqYTowLHM+YyYmKHM9Yyl9Zm9yKGU9MDtoPmU7KytlKWdbZV0tPXM7cmV0dXJuIGd9LGV4cGFuZDpmdW5jdGlvbihuKXt2YXIgdCxlLHIsdT1uLmxlbmd0aCxpPW5bMF0ubGVuZ3RoLG89MS91LGE9W107Zm9yKGU9MDtpPmU7KytlKXtmb3IodD0wLHI9MDt1PnQ7dCsrKXIrPW5bdF1bZV1bMV07aWYocilmb3IodD0wO3U+dDt0Kyspblt0XVtlXVsxXS89cjtlbHNlIGZvcih0PTA7dT50O3QrKyluW3RdW2VdWzFdPW99Zm9yKGU9MDtpPmU7KytlKWFbZV09MDtyZXR1cm4gYX0semVybzpuaX0pO1hvLmxheW91dC5oaXN0b2dyYW09ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4saSl7Zm9yKHZhciBvLGEsYz1bXSxzPW4ubWFwKGUsdGhpcyksbD1yLmNhbGwodGhpcyxzLGkpLGY9dS5jYWxsKHRoaXMsbCxzLGkpLGk9LTEsaD1zLmxlbmd0aCxnPWYubGVuZ3RoLTEscD10PzE6MS9oOysraTxnOylvPWNbaV09W10sby5keD1mW2krMV0tKG8ueD1mW2ldKSxvLnk9MDtpZihnPjApZm9yKGk9LTE7KytpPGg7KWE9c1tpXSxhPj1sWzBdJiZhPD1sWzFdJiYobz1jW1hvLmJpc2VjdChmLGEsMSxnKS0xXSxvLnkrPXAsby5wdXNoKG5baV0pKTtyZXR1cm4gY312YXIgdD0hMCxlPU51bWJlcixyPW9pLHU9dWk7cmV0dXJuIG4udmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPV90KHQpLG4pOnJ9LG4uYmlucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0ibnVtYmVyIj09dHlwZW9mIHQ/ZnVuY3Rpb24obil7cmV0dXJuIGlpKG4sdCl9Ol90KHQpLG4pOnV9LG4uZnJlcXVlbmN5PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSEhZSxuKTp0fSxufSxYby5sYXlvdXQudHJlZT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obixpKXtmdW5jdGlvbiBvKG4sdCl7dmFyIHI9bi5jaGlsZHJlbix1PW4uX3RyZWU7aWYociYmKGk9ci5sZW5ndGgpKXtmb3IodmFyIGksYSxzLGw9clswXSxmPWwsaD0tMTsrK2g8aTspcz1yW2hdLG8ocyxhKSxmPWMocyxhLGYpLGE9czt2aShuKTt2YXIgZz0uNSoobC5fdHJlZS5wcmVsaW0rcy5fdHJlZS5wcmVsaW0pO3Q/KHUucHJlbGltPXQuX3RyZWUucHJlbGltK2Uobix0KSx1Lm1vZD11LnByZWxpbS1nKTp1LnByZWxpbT1nfWVsc2UgdCYmKHUucHJlbGltPXQuX3RyZWUucHJlbGltK2Uobix0KSl9ZnVuY3Rpb24gYShuLHQpe24ueD1uLl90cmVlLnByZWxpbSt0O3ZhciBlPW4uY2hpbGRyZW47aWYoZSYmKHI9ZS5sZW5ndGgpKXt2YXIgcix1PS0xO2Zvcih0Kz1uLl90cmVlLm1vZDsrK3U8cjspYShlW3VdLHQpfX1mdW5jdGlvbiBjKG4sdCxyKXtpZih0KXtmb3IodmFyIHUsaT1uLG89bixhPXQsYz1uLnBhcmVudC5jaGlsZHJlblswXSxzPWkuX3RyZWUubW9kLGw9by5fdHJlZS5tb2QsZj1hLl90cmVlLm1vZCxoPWMuX3RyZWUubW9kO2E9c2koYSksaT1jaShpKSxhJiZpOyljPWNpKGMpLG89c2kobyksby5fdHJlZS5hbmNlc3Rvcj1uLHU9YS5fdHJlZS5wcmVsaW0rZi1pLl90cmVlLnByZWxpbS1zK2UoYSxpKSx1PjAmJihkaShtaShhLG4sciksbix1KSxzKz11LGwrPXUpLGYrPWEuX3RyZWUubW9kLHMrPWkuX3RyZWUubW9kLGgrPWMuX3RyZWUubW9kLGwrPW8uX3RyZWUubW9kO2EmJiFzaShvKSYmKG8uX3RyZWUudGhyZWFkPWEsby5fdHJlZS5tb2QrPWYtbCksaSYmIWNpKGMpJiYoYy5fdHJlZS50aHJlYWQ9aSxjLl90cmVlLm1vZCs9cy1oLHI9bil9cmV0dXJuIHJ9dmFyIHM9dC5jYWxsKHRoaXMsbixpKSxsPXNbMF07cGkobCxmdW5jdGlvbihuLHQpe24uX3RyZWU9e2FuY2VzdG9yOm4scHJlbGltOjAsbW9kOjAsY2hhbmdlOjAsc2hpZnQ6MCxudW1iZXI6dD90Ll90cmVlLm51bWJlcisxOjB9fSksbyhsKSxhKGwsLWwuX3RyZWUucHJlbGltKTt2YXIgZj1saShsLGhpKSxoPWxpKGwsZmkpLGc9bGkobCxnaSkscD1mLngtZShmLGgpLzIsdj1oLngrZShoLGYpLzIsZD1nLmRlcHRofHwxO3JldHVybiBwaShsLHU/ZnVuY3Rpb24obil7bi54Kj1yWzBdLG4ueT1uLmRlcHRoKnJbMV0sZGVsZXRlIG4uX3RyZWV9OmZ1bmN0aW9uKG4pe24ueD0obi54LXApLyh2LXApKnJbMF0sbi55PW4uZGVwdGgvZCpyWzFdLGRlbGV0ZSBuLl90cmVlfSksc312YXIgdD1Yby5sYXlvdXQuaGllcmFyY2h5KCkuc29ydChudWxsKS52YWx1ZShudWxsKSxlPWFpLHI9WzEsMV0sdT0hMTtyZXR1cm4gbi5zZXBhcmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbik6ZX0sbi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PW51bGw9PShyPXQpLG4pOnU/bnVsbDpyfSxuLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PW51bGwhPShyPXQpLG4pOnU/cjpudWxsfSxWdShuLHQpfSxYby5sYXlvdXQucGFjaz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obixpKXt2YXIgbz1lLmNhbGwodGhpcyxuLGkpLGE9b1swXSxjPXVbMF0scz11WzFdLGw9bnVsbD09dD9NYXRoLnNxcnQ6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpmdW5jdGlvbigpe3JldHVybiB0fTtpZihhLng9YS55PTAscGkoYSxmdW5jdGlvbihuKXtuLnI9K2wobi52YWx1ZSl9KSxwaShhLGJpKSxyKXt2YXIgZj1yKih0PzE6TWF0aC5tYXgoMiphLnIvYywyKmEuci9zKSkvMjtwaShhLGZ1bmN0aW9uKG4pe24ucis9Zn0pLHBpKGEsYmkpLHBpKGEsZnVuY3Rpb24obil7bi5yLT1mfSl9cmV0dXJuIGtpKGEsYy8yLHMvMix0PzE6MS9NYXRoLm1heCgyKmEuci9jLDIqYS5yL3MpKSxvfXZhciB0LGU9WG8ubGF5b3V0LmhpZXJhcmNoeSgpLnNvcnQoeWkpLHI9MCx1PVsxLDFdO3JldHVybiBuLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxuKTp1fSxuLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1udWxsPT1lfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9lOitlLG4pOnR9LG4ucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxuKTpyfSxWdShuLGUpfSxYby5sYXlvdXQuY2x1c3Rlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIG4obixpKXt2YXIgbyxhPXQuY2FsbCh0aGlzLG4saSksYz1hWzBdLHM9MDtwaShjLGZ1bmN0aW9uKG4pe3ZhciB0PW4uY2hpbGRyZW47dCYmdC5sZW5ndGg/KG4ueD1DaSh0KSxuLnk9QWkodCkpOihuLng9bz9zKz1lKG4sbyk6MCxuLnk9MCxvPW4pfSk7dmFyIGw9TmkoYyksZj1MaShjKSxoPWwueC1lKGwsZikvMixnPWYueCtlKGYsbCkvMjtyZXR1cm4gcGkoYyx1P2Z1bmN0aW9uKG4pe24ueD0obi54LWMueCkqclswXSxuLnk9KGMueS1uLnkpKnJbMV19OmZ1bmN0aW9uKG4pe24ueD0obi54LWgpLyhnLWgpKnJbMF0sbi55PSgxLShjLnk/bi55L2MueToxKSkqclsxXX0pLGF9dmFyIHQ9WG8ubGF5b3V0LmhpZXJhcmNoeSgpLnNvcnQobnVsbCkudmFsdWUobnVsbCksZT1haSxyPVsxLDFdLHU9ITE7cmV0dXJuIG4uc2VwYXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1udWxsPT0ocj10KSxuKTp1P251bGw6cn0sbi5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1udWxsIT0ocj10KSxuKTp1P3I6bnVsbH0sVnUobix0KX0sWG8ubGF5b3V0LnRyZWVtYXA9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4sdCl7Zm9yKHZhciBlLHIsdT0tMSxpPW4ubGVuZ3RoOysrdTxpOylyPShlPW5bdV0pLnZhbHVlKigwPnQ/MDp0KSxlLmFyZWE9aXNOYU4ocil8fDA+PXI/MDpyfWZ1bmN0aW9uIHQoZSl7dmFyIGk9ZS5jaGlsZHJlbjtpZihpJiZpLmxlbmd0aCl7dmFyIG8sYSxjLHM9ZihlKSxsPVtdLGg9aS5zbGljZSgpLHA9MS8wLHY9InNsaWNlIj09PWc/cy5keDoiZGljZSI9PT1nP3MuZHk6InNsaWNlLWRpY2UiPT09Zz8xJmUuZGVwdGg/cy5keTpzLmR4Ok1hdGgubWluKHMuZHgscy5keSk7Zm9yKG4oaCxzLmR4KnMuZHkvZS52YWx1ZSksbC5hcmVhPTA7KGM9aC5sZW5ndGgpPjA7KWwucHVzaChvPWhbYy0xXSksbC5hcmVhKz1vLmFyZWEsInNxdWFyaWZ5IiE9PWd8fChhPXIobCx2KSk8PXA/KGgucG9wKCkscD1hKToobC5hcmVhLT1sLnBvcCgpLmFyZWEsdShsLHYscywhMSksdj1NYXRoLm1pbihzLmR4LHMuZHkpLGwubGVuZ3RoPWwuYXJlYT0wLHA9MS8wKTtsLmxlbmd0aCYmKHUobCx2LHMsITApLGwubGVuZ3RoPWwuYXJlYT0wKSxpLmZvckVhY2godCl9fWZ1bmN0aW9uIGUodCl7dmFyIHI9dC5jaGlsZHJlbjtpZihyJiZyLmxlbmd0aCl7dmFyIGksbz1mKHQpLGE9ci5zbGljZSgpLGM9W107Zm9yKG4oYSxvLmR4Km8uZHkvdC52YWx1ZSksYy5hcmVhPTA7aT1hLnBvcCgpOyljLnB1c2goaSksYy5hcmVhKz1pLmFyZWEsbnVsbCE9aS56JiYodShjLGkuej9vLmR4Om8uZHksbywhYS5sZW5ndGgpLGMubGVuZ3RoPWMuYXJlYT0wKTtyLmZvckVhY2goZSl9fWZ1bmN0aW9uIHIobix0KXtmb3IodmFyIGUscj1uLmFyZWEsdT0wLGk9MS8wLG89LTEsYT1uLmxlbmd0aDsrK288YTspKGU9bltvXS5hcmVhKSYmKGk+ZSYmKGk9ZSksZT51JiYodT1lKSk7cmV0dXJuIHIqPXIsdCo9dCxyP01hdGgubWF4KHQqdSpwL3Isci8odCppKnApKToxLzB9ZnVuY3Rpb24gdShuLHQsZSxyKXt2YXIgdSxpPS0xLG89bi5sZW5ndGgsYT1lLngscz1lLnksbD10P2Mobi5hcmVhL3QpOjA7aWYodD09ZS5keCl7Zm9yKChyfHxsPmUuZHkpJiYobD1lLmR5KTsrK2k8bzspdT1uW2ldLHUueD1hLHUueT1zLHUuZHk9bCxhKz11LmR4PU1hdGgubWluKGUueCtlLmR4LWEsbD9jKHUuYXJlYS9sKTowKTt1Lno9ITAsdS5keCs9ZS54K2UuZHgtYSxlLnkrPWwsZS5keS09bH1lbHNle2Zvcigocnx8bD5lLmR4KSYmKGw9ZS5keCk7KytpPG87KXU9bltpXSx1Lng9YSx1Lnk9cyx1LmR4PWwscys9dS5keT1NYXRoLm1pbihlLnkrZS5keS1zLGw/Yyh1LmFyZWEvbCk6MCk7dS56PSExLHUuZHkrPWUueStlLmR5LXMsZS54Kz1sLGUuZHgtPWx9fWZ1bmN0aW9uIGkocil7dmFyIHU9b3x8YShyKSxpPXVbMF07cmV0dXJuIGkueD0wLGkueT0wLGkuZHg9c1swXSxpLmR5PXNbMV0sbyYmYS5yZXZhbHVlKGkpLG4oW2ldLGkuZHgqaS5keS9pLnZhbHVlKSwobz9lOnQpKGkpLGgmJihvPXUpLHV9dmFyIG8sYT1Yby5sYXlvdXQuaGllcmFyY2h5KCksYz1NYXRoLnJvdW5kLHM9WzEsMV0sbD1udWxsLGY9VGksaD0hMSxnPSJzcXVhcmlmeSIscD0uNSooMStNYXRoLnNxcnQoNSkpO3JldHVybiBpLnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bixpKTpzfSxpLnBhZGRpbmc9ZnVuY3Rpb24obil7ZnVuY3Rpb24gdCh0KXt2YXIgZT1uLmNhbGwoaSx0LHQuZGVwdGgpO3JldHVybiBudWxsPT1lP1RpKHQpOnFpKHQsIm51bWJlciI9PXR5cGVvZiBlP1tlLGUsZSxlXTplKX1mdW5jdGlvbiBlKHQpe3JldHVybiBxaSh0LG4pfWlmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBsO3ZhciByO3JldHVybiBmPW51bGw9PShsPW4pP1RpOiJmdW5jdGlvbiI9PShyPXR5cGVvZiBuKT90OiJudW1iZXIiPT09cj8obj1bbixuLG4sbl0sZSk6ZSxpfSxpLnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPW4/TWF0aC5yb3VuZDpOdW1iZXIsaSk6YyE9TnVtYmVyfSxpLnN0aWNreT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD1uLG89bnVsbCxpKTpofSxpLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPW4saSk6cH0saS5tb2RlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPW4rIiIsaSk6Z30sVnUoaSxhKX0sWG8ucmFuZG9tPXtub3JtYWw6ZnVuY3Rpb24obix0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoO3JldHVybiAyPmUmJih0PTEpLDE+ZSYmKG49MCksZnVuY3Rpb24oKXt2YXIgZSxyLHU7ZG8gZT0yKk1hdGgucmFuZG9tKCktMSxyPTIqTWF0aC5yYW5kb20oKS0xLHU9ZSplK3Iqcjt3aGlsZSghdXx8dT4xKTtyZXR1cm4gbit0KmUqTWF0aC5zcXJ0KC0yKk1hdGgubG9nKHUpL3UpfX0sbG9nTm9ybWFsOmZ1bmN0aW9uKCl7dmFyIG49WG8ucmFuZG9tLm5vcm1hbC5hcHBseShYbyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cChuKCkpfX0sYmF0ZXM6ZnVuY3Rpb24obil7dmFyIHQ9WG8ucmFuZG9tLmlyd2luSGFsbChuKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCgpL259fSxpcndpbkhhbGw6ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT0wO24+ZTtlKyspdCs9TWF0aC5yYW5kb20oKTtyZXR1cm4gdH19fSxYby5zY2FsZT17fTt2YXIgbHM9e2Zsb29yOmJ0LGNlaWw6YnR9O1hvLnNjYWxlLmxpbmVhcj1mdW5jdGlvbigpe3JldHVybiBIaShbMCwxXSxbMCwxXSxmdSwhMSl9O3ZhciBmcz17czoxLGc6MSxwOjEscjoxLGU6MX07WG8uc2NhbGUubG9nPWZ1bmN0aW9uKCl7cmV0dXJuICRpKFhvLnNjYWxlLmxpbmVhcigpLmRvbWFpbihbMCwxXSksMTAsITAsWzEsMTBdKX07dmFyIGhzPVhvLmZvcm1hdCgiLjBlIiksZ3M9e2Zsb29yOmZ1bmN0aW9uKG4pe3JldHVybi1NYXRoLmNlaWwoLW4pfSxjZWlsOmZ1bmN0aW9uKG4pe3JldHVybi1NYXRoLmZsb29yKC1uKX19O1hvLnNjYWxlLnBvdz1mdW5jdGlvbigpe3JldHVybiBCaShYby5zY2FsZS5saW5lYXIoKSwxLFswLDFdKX0sWG8uc2NhbGUuc3FydD1mdW5jdGlvbigpe3JldHVybiBYby5zY2FsZS5wb3coKS5leHBvbmVudCguNSl9LFhvLnNjYWxlLm9yZGluYWw9ZnVuY3Rpb24oKXtyZXR1cm4gSmkoW10se3Q6InJhbmdlIixhOltbXV19KX0sWG8uc2NhbGUuY2F0ZWdvcnkxMD1mdW5jdGlvbigpe3JldHVybiBYby5zY2FsZS5vcmRpbmFsKCkucmFuZ2UocHMpfSxYby5zY2FsZS5jYXRlZ29yeTIwPWZ1bmN0aW9uKCl7cmV0dXJuIFhvLnNjYWxlLm9yZGluYWwoKS5yYW5nZSh2cyl9LFhvLnNjYWxlLmNhdGVnb3J5MjBiPWZ1bmN0aW9uKCl7cmV0dXJuIFhvLnNjYWxlLm9yZGluYWwoKS5yYW5nZShkcyl9LFhvLnNjYWxlLmNhdGVnb3J5MjBjPWZ1bmN0aW9uKCl7cmV0dXJuIFhvLnNjYWxlLm9yZGluYWwoKS5yYW5nZShtcyl9O3ZhciBwcz1bMjA2MjI2MCwxNjc0NDIwNiwyOTI0NTg4LDE0MDM0NzI4LDk3MjU4ODUsOTE5NzEzMSwxNDkwNzMzMCw4MzU1NzExLDEyMzY5MTg2LDE1NTYxNzVdLm1hcChodCksdnM9WzIwNjIyNjAsMTE0NTQ0NDAsMTY3NDQyMDYsMTY3NTk2NzIsMjkyNDU4OCwxMDAxODY5OCwxNDAzNDcyOCwxNjc1MDc0Miw5NzI1ODg1LDEyOTU1ODYxLDkxOTcxMzEsMTI4ODUxNDAsMTQ5MDczMzAsMTYyMzQxOTQsODM1NTcxMSwxMzA5MjgwNywxMjM2OTE4NiwxNDQwODU4OSwxNTU2MTc1LDEwNDEwNzI1XS5tYXAoaHQpLGRzPVszNzUwNzc3LDUzOTU2MTksNzA0MDcxOSwxMDI2NDI4Niw2NTE5MDk3LDkyMTY1OTQsMTE5MTUxMTUsMTM1NTY2MzYsOTIwMjk5MywxMjQyNjgwOSwxNTE4NjUxNCwxNTE5MDkzMiw4NjY2MTY5LDExMzU2NDkwLDE0MDQ5NjQzLDE1MTc3MzcyLDgwNzc2ODMsMTA4MzQzMjQsMTM1Mjg1MDksMTQ1ODk2NTRdLm1hcChodCksbXM9WzMyNDQ3MzMsNzA1NzExMCwxMDQwNjYyNSwxMzAzMjQzMSwxNTA5NTA1MywxNjYxNjc2NCwxNjYyNTI1OSwxNjYzNDAxOCwzMjUzMDc2LDc2NTI0NzAsMTA2MDcwMDMsMTMxMDE1MDQsNzY5NTI4MSwxMDM5NDMxMiwxMjM2OTM3MiwxNDM0Mjg5MSw2NTEzNTA3LDk4Njg5NTAsMTI0MzQ4NzcsMTQyNzcwODFdLm1hcChodCk7WG8uc2NhbGUucXVhbnRpbGU9ZnVuY3Rpb24oKXtyZXR1cm4gR2koW10sW10pfSxYby5zY2FsZS5xdWFudGl6ZT1mdW5jdGlvbigpe3JldHVybiBLaSgwLDEsWzAsMV0pfSxYby5zY2FsZS50aHJlc2hvbGQ9ZnVuY3Rpb24oKXtyZXR1cm4gUWkoWy41XSxbMCwxXSl9LFhvLnNjYWxlLmlkZW50aXR5PWZ1bmN0aW9uKCl7cmV0dXJuIG5vKFswLDFdKX0sWG8uc3ZnPXt9LFhvLnN2Zy5hcmM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpK3lzLGE9dS5hcHBseSh0aGlzLGFyZ3VtZW50cykreXMsYz0obz5hJiYoYz1vLG89YSxhPWMpLGEtbykscz1TYT5jPyIwIjoiMSIsbD1NYXRoLmNvcyhvKSxmPU1hdGguc2luKG8pLGg9TWF0aC5jb3MoYSksZz1NYXRoLnNpbihhKTtyZXR1cm4gYz49eHM/bj8iTTAsIitpKyJBIitpKyIsIitpKyIgMCAxLDEgMCwiKy1pKyJBIitpKyIsIitpKyIgMCAxLDEgMCwiK2krIk0wLCIrbisiQSIrbisiLCIrbisiIDAgMSwwIDAsIistbisiQSIrbisiLCIrbisiIDAgMSwwIDAsIituKyJaIjoiTTAsIitpKyJBIitpKyIsIitpKyIgMCAxLDEgMCwiKy1pKyJBIitpKyIsIitpKyIgMCAxLDEgMCwiK2krIloiOm4/Ik0iK2kqbCsiLCIraSpmKyJBIitpKyIsIitpKyIgMCAiK3MrIiwxICIraSpoKyIsIitpKmcrIkwiK24qaCsiLCIrbipnKyJBIituKyIsIituKyIgMCAiK3MrIiwwICIrbipsKyIsIituKmYrIloiOiJNIitpKmwrIiwiK2kqZisiQSIraSsiLCIraSsiIDAgIitzKyIsMSAiK2kqaCsiLCIraSpnKyJMMCwwIisiWiJ9dmFyIHQ9dG8sZT1lbyxyPXJvLHU9dW87cmV0dXJuIG4uaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9X3QoZSksbik6dH0sbi5vdXRlclJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1fdCh0KSxuKTplfSxuLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9X3QodCksbik6cn0sbi5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1fdCh0KSxuKTp1fSxuLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIG49KHQuYXBwbHkodGhpcyxhcmd1bWVudHMpK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLGk9KHIuYXBwbHkodGhpcyxhcmd1bWVudHMpK3UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yK3lzO3JldHVybltNYXRoLmNvcyhpKSpuLE1hdGguc2luKGkpKm5dfSxufTt2YXIgeXM9LUVhLHhzPWthLUFhO1hvLnN2Zy5saW5lPWZ1bmN0aW9uKCl7cmV0dXJuIGlvKGJ0KX07dmFyIE1zPVhvLm1hcCh7bGluZWFyOm9vLCJsaW5lYXItY2xvc2VkIjphbyxzdGVwOmNvLCJzdGVwLWJlZm9yZSI6c28sInN0ZXAtYWZ0ZXIiOmxvLGJhc2lzOm1vLCJiYXNpcy1vcGVuIjp5bywiYmFzaXMtY2xvc2VkIjp4byxidW5kbGU6TW8sY2FyZGluYWw6Z28sImNhcmRpbmFsLW9wZW4iOmZvLCJjYXJkaW5hbC1jbG9zZWQiOmhvLG1vbm90b25lOkVvfSk7TXMuZm9yRWFjaChmdW5jdGlvbihuLHQpe3Qua2V5PW4sdC5jbG9zZWQ9Ly1jbG9zZWQkLy50ZXN0KG4pfSk7dmFyIF9zPVswLDIvMywxLzMsMF0sYnM9WzAsMS8zLDIvMywwXSx3cz1bMCwxLzYsMi8zLDEvNl07WG8uc3ZnLmxpbmUucmFkaWFsPWZ1bmN0aW9uKCl7dmFyIG49aW8oQW8pO3JldHVybiBuLnJhZGl1cz1uLngsZGVsZXRlIG4ueCxuLmFuZ2xlPW4ueSxkZWxldGUgbi55LG59LHNvLnJldmVyc2U9bG8sbG8ucmV2ZXJzZT1zbyxYby5zdmcuYXJlYT1mdW5jdGlvbigpe3JldHVybiBDbyhidCl9LFhvLnN2Zy5hcmVhLnJhZGlhbD1mdW5jdGlvbigpe3ZhciBuPUNvKEFvKTtyZXR1cm4gbi5yYWRpdXM9bi54LGRlbGV0ZSBuLngsbi5pbm5lclJhZGl1cz1uLngwLGRlbGV0ZSBuLngwLG4ub3V0ZXJSYWRpdXM9bi54MSxkZWxldGUgbi54MSxuLmFuZ2xlPW4ueSxkZWxldGUgbi55LG4uc3RhcnRBbmdsZT1uLnkwLGRlbGV0ZSBuLnkwLG4uZW5kQW5nbGU9bi55MSxkZWxldGUgbi55MSxufSxYby5zdmcuY2hvcmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4sYSl7dmFyIGM9dCh0aGlzLGksbixhKSxzPXQodGhpcyxvLG4sYSk7cmV0dXJuIk0iK2MucDArcihjLnIsYy5wMSxjLmExLWMuYTApKyhlKGMscyk/dShjLnIsYy5wMSxjLnIsYy5wMCk6dShjLnIsYy5wMSxzLnIscy5wMCkrcihzLnIscy5wMSxzLmExLXMuYTApK3Uocy5yLHMucDEsYy5yLGMucDApKSsiWiJ9ZnVuY3Rpb24gdChuLHQsZSxyKXt2YXIgdT10LmNhbGwobixlLHIpLGk9YS5jYWxsKG4sdSxyKSxvPWMuY2FsbChuLHUscikreXMsbD1zLmNhbGwobix1LHIpK3lzO3JldHVybntyOmksYTA6byxhMTpsLHAwOltpKk1hdGguY29zKG8pLGkqTWF0aC5zaW4obyldLHAxOltpKk1hdGguY29zKGwpLGkqTWF0aC5zaW4obCldfX1mdW5jdGlvbiBlKG4sdCl7cmV0dXJuIG4uYTA9PXQuYTAmJm4uYTE9PXQuYTF9ZnVuY3Rpb24gcihuLHQsZSl7cmV0dXJuIkEiK24rIiwiK24rIiAwICIrICsoZT5TYSkrIiwxICIrdH1mdW5jdGlvbiB1KG4sdCxlLHIpe3JldHVybiJRIDAsMCAiK3J9dmFyIGk9aHIsbz1ncixhPU5vLGM9cm8scz11bztyZXR1cm4gbi5yYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9X3QodCksbik6YX0sbi5zb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9X3QodCksbik6aX0sbi50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89X3QodCksbik6b30sbi5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPV90KHQpLG4pOmN9LG4uZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9X3QodCksbik6c30sbn0sWG8uc3ZnLmRpYWdvbmFsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuLHUpe3ZhciBpPXQuY2FsbCh0aGlzLG4sdSksbz1lLmNhbGwodGhpcyxuLHUpLGE9KGkueStvLnkpLzIsYz1baSx7eDppLngseTphfSx7eDpvLngseTphfSxvXTtyZXR1cm4gYz1jLm1hcChyKSwiTSIrY1swXSsiQyIrY1sxXSsiICIrY1syXSsiICIrY1szXX12YXIgdD1ocixlPWdyLHI9TG87cmV0dXJuIG4uc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PV90KGUpLG4pOnR9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPV90KHQpLG4pOmV9LG4ucHJvamVjdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG59LFhvLnN2Zy5kaWFnb25hbC5yYWRpYWw9ZnVuY3Rpb24oKXt2YXIgbj1Yby5zdmcuZGlhZ29uYWwoKSx0PUxvLGU9bi5wcm9qZWN0aW9uO3JldHVybiBuLnByb2plY3Rpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShUbyh0PW4pKTp0fSxufSxYby5zdmcuc3ltYm9sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuLHIpe3JldHVybihTcy5nZXQodC5jYWxsKHRoaXMsbixyKSl8fFJvKShlLmNhbGwodGhpcyxuLHIpKX12YXIgdD16byxlPXFvO3JldHVybiBuLnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9X3QoZSksbik6dH0sbi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPV90KHQpLG4pOmV9LG59O3ZhciBTcz1Yby5tYXAoe2NpcmNsZTpSbyxjcm9zczpmdW5jdGlvbihuKXt2YXIgdD1NYXRoLnNxcnQobi81KS8yO3JldHVybiJNIistMyp0KyIsIistdCsiSCIrLXQrIlYiKy0zKnQrIkgiK3QrIlYiKy10KyJIIiszKnQrIlYiK3QrIkgiK3QrIlYiKzMqdCsiSCIrLXQrIlYiK3QrIkgiKy0zKnQrIloifSxkaWFtb25kOmZ1bmN0aW9uKG4pe3ZhciB0PU1hdGguc3FydChuLygyKkNzKSksZT10KkNzO3JldHVybiJNMCwiKy10KyJMIitlKyIsMCIrIiAwLCIrdCsiICIrLWUrIiwwIisiWiJ9LHNxdWFyZTpmdW5jdGlvbihuKXt2YXIgdD1NYXRoLnNxcnQobikvMjtyZXR1cm4iTSIrLXQrIiwiKy10KyJMIit0KyIsIistdCsiICIrdCsiLCIrdCsiICIrLXQrIiwiK3QrIloifSwidHJpYW5nbGUtZG93biI6ZnVuY3Rpb24obil7dmFyIHQ9TWF0aC5zcXJ0KG4vQXMpLGU9dCpBcy8yO3JldHVybiJNMCwiK2UrIkwiK3QrIiwiKy1lKyIgIistdCsiLCIrLWUrIloifSwidHJpYW5nbGUtdXAiOmZ1bmN0aW9uKG4pe3ZhciB0PU1hdGguc3FydChuL0FzKSxlPXQqQXMvMjtyZXR1cm4iTTAsIistZSsiTCIrdCsiLCIrZSsiICIrLXQrIiwiK2UrIloifX0pO1hvLnN2Zy5zeW1ib2xUeXBlcz1Tcy5rZXlzKCk7dmFyIGtzLEVzLEFzPU1hdGguc3FydCgzKSxDcz1NYXRoLnRhbigzMCpOYSksTnM9W10sTHM9MDtOcy5jYWxsPWRhLmNhbGwsTnMuZW1wdHk9ZGEuZW1wdHksTnMubm9kZT1kYS5ub2RlLE5zLnNpemU9ZGEuc2l6ZSxYby50cmFuc2l0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2tzP24udHJhbnNpdGlvbigpOm46eGEudHJhbnNpdGlvbigpfSxYby50cmFuc2l0aW9uLnByb3RvdHlwZT1OcyxOcy5zZWxlY3Q9ZnVuY3Rpb24obil7dmFyIHQsZSxyLHU9dGhpcy5pZCxpPVtdO249TShuKTtmb3IodmFyIG89LTEsYT10aGlzLmxlbmd0aDsrK288YTspe2kucHVzaCh0PVtdKTtmb3IodmFyIGM9dGhpc1tvXSxzPS0xLGw9Yy5sZW5ndGg7KytzPGw7KShyPWNbc10pJiYoZT1uLmNhbGwocixyLl9fZGF0YV9fLHMsbykpPygiX19kYXRhX18iaW4gciYmKGUuX19kYXRhX189ci5fX2RhdGFfXyksam8oZSxzLHUsci5fX3RyYW5zaXRpb25fX1t1XSksdC5wdXNoKGUpKTp0LnB1c2gobnVsbCl9cmV0dXJuIERvKGksdSl9LE5zLnNlbGVjdEFsbD1mdW5jdGlvbihuKXt2YXIgdCxlLHIsdSxpLG89dGhpcy5pZCxhPVtdO249XyhuKTtmb3IodmFyIGM9LTEscz10aGlzLmxlbmd0aDsrK2M8czspZm9yKHZhciBsPXRoaXNbY10sZj0tMSxoPWwubGVuZ3RoOysrZjxoOylpZihyPWxbZl0pe2k9ci5fX3RyYW5zaXRpb25fX1tvXSxlPW4uY2FsbChyLHIuX19kYXRhX18sZixjKSxhLnB1c2godD1bXSk7Zm9yKHZhciBnPS0xLHA9ZS5sZW5ndGg7KytnPHA7KSh1PWVbZ10pJiZqbyh1LGcsbyxpKSx0LnB1c2godSl9cmV0dXJuIERvKGEsbyl9LE5zLmZpbHRlcj1mdW5jdGlvbihuKXt2YXIgdCxlLHIsdT1bXTsiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49cShuKSk7Zm9yKHZhciBpPTAsbz10aGlzLmxlbmd0aDtvPmk7aSsrKXt1LnB1c2godD1bXSk7Zm9yKHZhciBlPXRoaXNbaV0sYT0wLGM9ZS5sZW5ndGg7Yz5hO2ErKykocj1lW2FdKSYmbi5jYWxsKHIsci5fX2RhdGFfXyxhLGkpJiZ0LnB1c2gocil9cmV0dXJuIERvKHUsdGhpcy5pZCl9LE5zLnR3ZWVuPWZ1bmN0aW9uKG4sdCl7dmFyIGU9dGhpcy5pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3RoaXMubm9kZSgpLl9fdHJhbnNpdGlvbl9fW2VdLnR3ZWVuLmdldChuKTpSKHRoaXMsbnVsbD09dD9mdW5jdGlvbih0KXt0Ll9fdHJhbnNpdGlvbl9fW2VdLnR3ZWVuLnJlbW92ZShuKX06ZnVuY3Rpb24ocil7ci5fX3RyYW5zaXRpb25fX1tlXS50d2Vlbi5zZXQobix0KX0pfSxOcy5hdHRyPWZ1bmN0aW9uKG4sdCl7ZnVuY3Rpb24gZSgpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGEpfWZ1bmN0aW9uIHIoKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGEuc3BhY2UsYS5sb2NhbCl9ZnVuY3Rpb24gdShuKXtyZXR1cm4gbnVsbD09bj9lOihuKz0iIixmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5nZXRBdHRyaWJ1dGUoYSk7cmV0dXJuIGUhPT1uJiYodD1vKGUsbiksZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGUoYSx0KG4pKX0pfSl9ZnVuY3Rpb24gaShuKXtyZXR1cm4gbnVsbD09bj9yOihuKz0iIixmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5nZXRBdHRyaWJ1dGVOUyhhLnNwYWNlLGEubG9jYWwpO3JldHVybiBlIT09biYmKHQ9byhlLG4pLGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlTlMoYS5zcGFjZSxhLmxvY2FsLHQobikpfSl9KX1pZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih0IGluIG4pdGhpcy5hdHRyKHQsblt0XSk7cmV0dXJuIHRoaXN9dmFyIG89InRyYW5zZm9ybSI9PW4/UnU6ZnUsYT1Yby5ucy5xdWFsaWZ5KG4pO3JldHVybiBQbyh0aGlzLCJhdHRyLiIrbix0LGEubG9jYWw/aTp1KX0sTnMuYXR0clR3ZWVuPWZ1bmN0aW9uKG4sdCl7ZnVuY3Rpb24gZShuLGUpe3ZhciByPXQuY2FsbCh0aGlzLG4sZSx0aGlzLmdldEF0dHJpYnV0ZSh1KSk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlKHUscihuKSl9fWZ1bmN0aW9uIHIobixlKXt2YXIgcj10LmNhbGwodGhpcyxuLGUsdGhpcy5nZXRBdHRyaWJ1dGVOUyh1LnNwYWNlLHUubG9jYWwpKTtyZXR1cm4gciYmZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGVOUyh1LnNwYWNlLHUubG9jYWwscihuKSl9fXZhciB1PVhvLm5zLnF1YWxpZnkobik7cmV0dXJuIHRoaXMudHdlZW4oImF0dHIuIituLHUubG9jYWw/cjplKX0sTnMuc3R5bGU9ZnVuY3Rpb24obix0LGUpe2Z1bmN0aW9uIHIoKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG4pfWZ1bmN0aW9uIHUodCl7cmV0dXJuIG51bGw9PXQ/cjoodCs9IiIsZnVuY3Rpb24oKXt2YXIgcix1PUdvLmdldENvbXB1dGVkU3R5bGUodGhpcyxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKG4pO3JldHVybiB1IT09dCYmKHI9ZnUodSx0KSxmdW5jdGlvbih0KXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KG4scih0KSxlKX0pfSl9dmFyIGk9YXJndW1lbnRzLmxlbmd0aDtpZigzPmkpe2lmKCJzdHJpbmciIT10eXBlb2Ygbil7Mj5pJiYodD0iIik7Zm9yKGUgaW4gbil0aGlzLnN0eWxlKGUsbltlXSx0KTtyZXR1cm4gdGhpc31lPSIifXJldHVybiBQbyh0aGlzLCJzdHlsZS4iK24sdCx1KX0sTnMuc3R5bGVUd2Vlbj1mdW5jdGlvbihuLHQsZSl7ZnVuY3Rpb24gcihyLHUpe3ZhciBpPXQuY2FsbCh0aGlzLHIsdSxHby5nZXRDb21wdXRlZFN0eWxlKHRoaXMsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKSk7cmV0dXJuIGkmJmZ1bmN0aW9uKHQpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkobixpKHQpLGUpfX1yZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzJiYoZT0iIiksdGhpcy50d2Vlbigic3R5bGUuIituLHIpfSxOcy50ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBQbyh0aGlzLCJ0ZXh0IixuLFVvKX0sTnMucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaCgiZW5kLnRyYW5zaXRpb24iLGZ1bmN0aW9uKCl7dmFyIG47dGhpcy5fX3RyYW5zaXRpb25fXy5jb3VudDwyJiYobj10aGlzLnBhcmVudE5vZGUpJiZuLnJlbW92ZUNoaWxkKHRoaXMpfSl9LE5zLmVhc2U9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP3RoaXMubm9kZSgpLl9fdHJhbnNpdGlvbl9fW3RdLmVhc2U6KCJmdW5jdGlvbiIhPXR5cGVvZiBuJiYobj1Yby5lYXNlLmFwcGx5KFhvLGFyZ3VtZW50cykpLFIodGhpcyxmdW5jdGlvbihlKXtlLl9fdHJhbnNpdGlvbl9fW3RdLmVhc2U9bn0pKX0sTnMuZGVsYXk9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5pZDtyZXR1cm4gUih0aGlzLCJmdW5jdGlvbiI9PXR5cGVvZiBuP2Z1bmN0aW9uKGUscix1KXtlLl9fdHJhbnNpdGlvbl9fW3RdLmRlbGF5PStuLmNhbGwoZSxlLl9fZGF0YV9fLHIsdSl9OihuPStuLGZ1bmN0aW9uKGUpe2UuX190cmFuc2l0aW9uX19bdF0uZGVsYXk9bn0pKX0sTnMuZHVyYXRpb249ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5pZDtyZXR1cm4gUih0aGlzLCJmdW5jdGlvbiI9PXR5cGVvZiBuP2Z1bmN0aW9uKGUscix1KXtlLl9fdHJhbnNpdGlvbl9fW3RdLmR1cmF0aW9uPU1hdGgubWF4KDEsbi5jYWxsKGUsZS5fX2RhdGFfXyxyLHUpKX06KG49TWF0aC5tYXgoMSxuKSxmdW5jdGlvbihlKXtlLl9fdHJhbnNpdGlvbl9fW3RdLmR1cmF0aW9uPW59KSl9LE5zLmVhY2g9ZnVuY3Rpb24obix0KXt2YXIgZT10aGlzLmlkO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIHI9RXMsdT1rcztrcz1lLFIodGhpcyxmdW5jdGlvbih0LHIsdSl7RXM9dC5fX3RyYW5zaXRpb25fX1tlXSxuLmNhbGwodCx0Ll9fZGF0YV9fLHIsdSl9KSxFcz1yLGtzPXV9ZWxzZSBSKHRoaXMsZnVuY3Rpb24ocil7dmFyIHU9ci5fX3RyYW5zaXRpb25fX1tlXTsodS5ldmVudHx8KHUuZXZlbnQ9WG8uZGlzcGF0Y2goInN0YXJ0IiwiZW5kIikpKS5vbihuLHQpfSk7cmV0dXJuIHRoaXN9LE5zLnRyYW5zaXRpb249ZnVuY3Rpb24oKXtmb3IodmFyIG4sdCxlLHIsdT10aGlzLmlkLGk9KytMcyxvPVtdLGE9MCxjPXRoaXMubGVuZ3RoO2M+YTthKyspe28ucHVzaChuPVtdKTtmb3IodmFyIHQ9dGhpc1thXSxzPTAsbD10Lmxlbmd0aDtsPnM7cysrKShlPXRbc10pJiYocj1PYmplY3QuY3JlYXRlKGUuX190cmFuc2l0aW9uX19bdV0pLHIuZGVsYXkrPXIuZHVyYXRpb24sam8oZSxzLGkscikpLG4ucHVzaChlKX1yZXR1cm4gRG8obyxpKX0sWG8uc3ZnLmF4aXM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKG4pe24uZWFjaChmdW5jdGlvbigpe3ZhciBuLHM9WG8uc2VsZWN0KHRoaXMpLGw9dGhpcy5fX2NoYXJ0X198fGUsZj10aGlzLl9fY2hhcnRfXz1lLmNvcHkoKSxoPW51bGw9PWM/Zi50aWNrcz9mLnRpY2tzLmFwcGx5KGYsYSk6Zi5kb21haW4oKTpjLGc9bnVsbD09dD9mLnRpY2tGb3JtYXQ/Zi50aWNrRm9ybWF0LmFwcGx5KGYsYSk6YnQ6dCxwPXMuc2VsZWN0QWxsKCIudGljayIpLmRhdGEoaCxmKSx2PXAuZW50ZXIoKS5pbnNlcnQoImciLCIuZG9tYWluIikuYXR0cigiY2xhc3MiLCJ0aWNrIikuc3R5bGUoIm9wYWNpdHkiLEFhKSxkPVhvLnRyYW5zaXRpb24ocC5leGl0KCkpLnN0eWxlKCJvcGFjaXR5IixBYSkucmVtb3ZlKCksbT1Yby50cmFuc2l0aW9uKHApLnN0eWxlKCJvcGFjaXR5IiwxKSx5PVJpKGYpLHg9cy5zZWxlY3RBbGwoIi5kb21haW4iKS5kYXRhKFswXSksTT0oeC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiZG9tYWluIiksWG8udHJhbnNpdGlvbih4KSk7di5hcHBlbmQoImxpbmUiKSx2LmFwcGVuZCgidGV4dCIpO3ZhciBfPXYuc2VsZWN0KCJsaW5lIiksYj1tLnNlbGVjdCgibGluZSIpLHc9cC5zZWxlY3QoInRleHQiKS50ZXh0KGcpLFM9di5zZWxlY3QoInRleHQiKSxrPW0uc2VsZWN0KCJ0ZXh0Iik7c3dpdGNoKHIpe2Nhc2UiYm90dG9tIjpuPUhvLF8uYXR0cigieTIiLHUpLFMuYXR0cigieSIsTWF0aC5tYXgodSwwKStvKSxiLmF0dHIoIngyIiwwKS5hdHRyKCJ5MiIsdSksay5hdHRyKCJ4IiwwKS5hdHRyKCJ5IixNYXRoLm1heCh1LDApK28pLHcuYXR0cigiZHkiLCIuNzFlbSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLE0uYXR0cigiZCIsIk0iK3lbMF0rIiwiK2krIlYwSCIreVsxXSsiViIraSk7YnJlYWs7Y2FzZSJ0b3AiOm49SG8sXy5hdHRyKCJ5MiIsLXUpLFMuYXR0cigieSIsLShNYXRoLm1heCh1LDApK28pKSxiLmF0dHIoIngyIiwwKS5hdHRyKCJ5MiIsLXUpLGsuYXR0cigieCIsMCkuYXR0cigieSIsLShNYXRoLm1heCh1LDApK28pKSx3LmF0dHIoImR5IiwiMGVtIikuc3R5bGUoInRleHQtYW5jaG9yIiwibWlkZGxlIiksTS5hdHRyKCJkIiwiTSIreVswXSsiLCIrLWkrIlYwSCIreVsxXSsiViIrLWkpO2JyZWFrO2Nhc2UibGVmdCI6bj1GbyxfLmF0dHIoIngyIiwtdSksUy5hdHRyKCJ4IiwtKE1hdGgubWF4KHUsMCkrbykpLGIuYXR0cigieDIiLC11KS5hdHRyKCJ5MiIsMCksay5hdHRyKCJ4IiwtKE1hdGgubWF4KHUsMCkrbykpLmF0dHIoInkiLDApLHcuYXR0cigiZHkiLCIuMzJlbSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsImVuZCIpLE0uYXR0cigiZCIsIk0iKy1pKyIsIit5WzBdKyJIMFYiK3lbMV0rIkgiKy1pKTticmVhaztjYXNlInJpZ2h0IjpuPUZvLF8uYXR0cigieDIiLHUpLFMuYXR0cigieCIsTWF0aC5tYXgodSwwKStvKSxiLmF0dHIoIngyIix1KS5hdHRyKCJ5MiIsMCksay5hdHRyKCJ4IixNYXRoLm1heCh1LDApK28pLmF0dHIoInkiLDApLHcuYXR0cigiZHkiLCIuMzJlbSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsInN0YXJ0IiksTS5hdHRyKCJkIiwiTSIraSsiLCIreVswXSsiSDBWIit5WzFdKyJIIitpKX1pZihmLnJhbmdlQmFuZCl7dmFyIEU9ZixBPUUucmFuZ2VCYW5kKCkvMjtsPWY9ZnVuY3Rpb24obil7cmV0dXJuIEUobikrQX19ZWxzZSBsLnJhbmdlQmFuZD9sPWY6ZC5jYWxsKG4sZik7di5jYWxsKG4sbCksbS5jYWxsKG4sZil9KX12YXIgdCxlPVhvLnNjYWxlLmxpbmVhcigpLHI9VHMsdT02LGk9NixvPTMsYT1bMTBdLGM9bnVsbDtyZXR1cm4gbi5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4ub3JpZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQgaW4gcXM/dCsiIjpUcyxuKTpyfSxuLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9YXJndW1lbnRzLG4pOmF9LG4udGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LG4pOmN9LG4udGlja0Zvcm1hdD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLG4pOnR9LG4udGlja1NpemU9ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gZT8odT0rdCxpPSthcmd1bWVudHNbZS0xXSxuKTp1fSxuLmlubmVyVGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbik6dX0sbi5vdXRlclRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LG4pOml9LG4udGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3Qsbik6b30sbi50aWNrU3ViZGl2aWRlPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGgmJm59LG59O3ZhciBUcz0iYm90dG9tIixxcz17dG9wOjEscmlnaHQ6MSxib3R0b206MSxsZWZ0OjF9O1hvLnN2Zy5icnVzaD1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oaSl7aS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9WG8uc2VsZWN0KHRoaXMpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIikub24oIm1vdXNlZG93bi5icnVzaCIsdSkub24oInRvdWNoc3RhcnQuYnJ1c2giLHUpLG89aS5zZWxlY3RBbGwoIi5iYWNrZ3JvdW5kIikuZGF0YShbMF0pO28uZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsImJhY2tncm91bmQiKS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpLnN0eWxlKCJjdXJzb3IiLCJjcm9zc2hhaXIiKSxpLnNlbGVjdEFsbCgiLmV4dGVudCIpLmRhdGEoWzBdKS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiZXh0ZW50Iikuc3R5bGUoImN1cnNvciIsIm1vdmUiKTt2YXIgYT1pLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLmRhdGEocCxidCk7YS5leGl0KCkucmVtb3ZlKCksYS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIixmdW5jdGlvbihuKXtyZXR1cm4icmVzaXplICIrbn0pLnN0eWxlKCJjdXJzb3IiLGZ1bmN0aW9uKG4pe3JldHVybiB6c1tuXX0pLmFwcGVuZCgicmVjdCIpLmF0dHIoIngiLGZ1bmN0aW9uKG4pe3JldHVybi9bZXddJC8udGVzdChuKT8tMzpudWxsfSkuYXR0cigieSIsZnVuY3Rpb24obil7cmV0dXJuL15bbnNdLy50ZXN0KG4pPy0zOm51bGx9KS5hdHRyKCJ3aWR0aCIsNikuYXR0cigiaGVpZ2h0Iiw2KS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpLGEuc3R5bGUoImRpc3BsYXkiLG4uZW1wdHkoKT8ibm9uZSI6bnVsbCk7dmFyIGwsZj1Yby50cmFuc2l0aW9uKGkpLGg9WG8udHJhbnNpdGlvbihvKTtjJiYobD1SaShjKSxoLmF0dHIoIngiLGxbMF0pLmF0dHIoIndpZHRoIixsWzFdLWxbMF0pLGUoZikpLHMmJihsPVJpKHMpLGguYXR0cigieSIsbFswXSkuYXR0cigiaGVpZ2h0IixsWzFdLWxbMF0pLHIoZikpLHQoZil9KX1mdW5jdGlvbiB0KG4pe24uc2VsZWN0QWxsKCIucmVzaXplIikuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbihuKXtyZXR1cm4idHJhbnNsYXRlKCIrbFsrL2UkLy50ZXN0KG4pXSsiLCIrZlsrL15zLy50ZXN0KG4pXSsiKSJ9KX1mdW5jdGlvbiBlKG4pe24uc2VsZWN0KCIuZXh0ZW50IikuYXR0cigieCIsbFswXSksbi5zZWxlY3RBbGwoIi5leHRlbnQsLm4+cmVjdCwucz5yZWN0IikuYXR0cigid2lkdGgiLGxbMV0tbFswXSl9ZnVuY3Rpb24gcihuKXtuLnNlbGVjdCgiLmV4dGVudCIpLmF0dHIoInkiLGZbMF0pLG4uc2VsZWN0QWxsKCIuZXh0ZW50LC5lPnJlY3QsLnc+cmVjdCIpLmF0dHIoImhlaWdodCIsZlsxXS1mWzBdKX1mdW5jdGlvbiB1KCl7ZnVuY3Rpb24gdSgpezMyPT1Yby5ldmVudC5rZXlDb2RlJiYoQ3x8KHg9bnVsbCxMWzBdLT1sWzFdLExbMV0tPWZbMV0sQz0yKSxkKCkpfWZ1bmN0aW9uIHAoKXszMj09WG8uZXZlbnQua2V5Q29kZSYmMj09QyYmKExbMF0rPWxbMV0sTFsxXSs9ZlsxXSxDPTAsZCgpKX1mdW5jdGlvbiB2KCl7dmFyIG49WG8ubW91c2UoXyksdT0hMTtNJiYoblswXSs9TVswXSxuWzFdKz1NWzFdKSxDfHwoWG8uZXZlbnQuYWx0S2V5Pyh4fHwoeD1bKGxbMF0rbFsxXSkvMiwoZlswXStmWzFdKS8yXSksTFswXT1sWysoblswXTx4WzBdKV0sTFsxXT1mWysoblsxXTx4WzFdKV0pOng9bnVsbCksRSYmbShuLGMsMCkmJihlKFMpLHU9ITApLEEmJm0obixzLDEpJiYocihTKSx1PSEwKSx1JiYodChTKSx3KHt0eXBlOiJicnVzaCIsbW9kZTpDPyJtb3ZlIjoicmVzaXplIn0pKX1mdW5jdGlvbiBtKG4sdCxlKXt2YXIgcix1LGE9UmkodCksYz1hWzBdLHM9YVsxXSxwPUxbZV0sdj1lP2Y6bCxkPXZbMV0tdlswXTtyZXR1cm4gQyYmKGMtPXAscy09ZCtwKSxyPShlP2c6aCk/TWF0aC5tYXgoYyxNYXRoLm1pbihzLG5bZV0pKTpuW2VdLEM/dT0ocis9cCkrZDooeCYmKHA9TWF0aC5tYXgoYyxNYXRoLm1pbihzLDIqeFtlXS1yKSkpLHI+cD8odT1yLHI9cCk6dT1wKSx2WzBdIT1yfHx2WzFdIT11PyhlP289bnVsbDppPW51bGwsdlswXT1yLHZbMV09dSwhMCk6dm9pZCAwfWZ1bmN0aW9uIHkoKXt2KCksUy5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zZWxlY3RBbGwoIi5yZXNpemUiKS5zdHlsZSgiZGlzcGxheSIsbi5lbXB0eSgpPyJub25lIjpudWxsKSxYby5zZWxlY3QoImJvZHkiKS5zdHlsZSgiY3Vyc29yIixudWxsKSxULm9uKCJtb3VzZW1vdmUuYnJ1c2giLG51bGwpLm9uKCJtb3VzZXVwLmJydXNoIixudWxsKS5vbigidG91Y2htb3ZlLmJydXNoIixudWxsKS5vbigidG91Y2hlbmQuYnJ1c2giLG51bGwpLm9uKCJrZXlkb3duLmJydXNoIixudWxsKS5vbigia2V5dXAuYnJ1c2giLG51bGwpLE4oKSx3KHt0eXBlOiJicnVzaGVuZCJ9KX12YXIgeCxNLF89dGhpcyxiPVhvLnNlbGVjdChYby5ldmVudC50YXJnZXQpLHc9YS5vZihfLGFyZ3VtZW50cyksUz1Yby5zZWxlY3QoXyksaz1iLmRhdHVtKCksRT0hL14obnxzKSQvLnRlc3QoaykmJmMsQT0hL14oZXx3KSQvLnRlc3QoaykmJnMsQz1iLmNsYXNzZWQoImV4dGVudCIpLE49TygpLEw9WG8ubW91c2UoXyksVD1Yby5zZWxlY3QoR28pLm9uKCJrZXlkb3duLmJydXNoIix1KS5vbigia2V5dXAuYnJ1c2giLHApO2lmKFhvLmV2ZW50LmNoYW5nZWRUb3VjaGVzP1Qub24oInRvdWNobW92ZS5icnVzaCIsdikub24oInRvdWNoZW5kLmJydXNoIix5KTpULm9uKCJtb3VzZW1vdmUuYnJ1c2giLHYpLm9uKCJtb3VzZXVwLmJydXNoIix5KSxTLmludGVycnVwdCgpLnNlbGVjdEFsbCgiKiIpLmludGVycnVwdCgpLEMpTFswXT1sWzBdLUxbMF0sTFsxXT1mWzBdLUxbMV07ZWxzZSBpZihrKXt2YXIgcT0rL3ckLy50ZXN0KGspLHo9Ky9ebi8udGVzdChrKTtNPVtsWzEtcV0tTFswXSxmWzEtel0tTFsxXV0sTFswXT1sW3FdLExbMV09Zlt6XX1lbHNlIFhvLmV2ZW50LmFsdEtleSYmKHg9TC5zbGljZSgpKTtTLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKS5zZWxlY3RBbGwoIi5yZXNpemUiKS5zdHlsZSgiZGlzcGxheSIsbnVsbCksWG8uc2VsZWN0KCJib2R5Iikuc3R5bGUoImN1cnNvciIsYi5zdHlsZSgiY3Vyc29yIikpLHcoe3R5cGU6ImJydXNoc3RhcnQifSksdigpfXZhciBpLG8sYT15KG4sImJydXNoc3RhcnQiLCJicnVzaCIsImJydXNoZW5kIiksYz1udWxsLHM9bnVsbCxsPVswLDBdLGY9WzAsMF0saD0hMCxnPSEwLHA9UnNbMF07cmV0dXJuIG4uZXZlbnQ9ZnVuY3Rpb24obil7bi5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49YS5vZih0aGlzLGFyZ3VtZW50cyksdD17eDpsLHk6ZixpOmksajpvfSxlPXRoaXMuX19jaGFydF9ffHx0O3RoaXMuX19jaGFydF9fPXQsa3M/WG8uc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24oKS5lYWNoKCJzdGFydC5icnVzaCIsZnVuY3Rpb24oKXtpPWUuaSxvPWUuaixsPWUueCxmPWUueSxuKHt0eXBlOiJicnVzaHN0YXJ0In0pfSkudHdlZW4oImJydXNoOmJydXNoIixmdW5jdGlvbigpe3ZhciBlPWh1KGwsdC54KSxyPWh1KGYsdC55KTtyZXR1cm4gaT1vPW51bGwsZnVuY3Rpb24odSl7bD10Lng9ZSh1KSxmPXQueT1yKHUpLG4oe3R5cGU6ImJydXNoIixtb2RlOiJyZXNpemUifSl9fSkuZWFjaCgiZW5kLmJydXNoIixmdW5jdGlvbigpe2k9dC5pLG89dC5qLG4oe3R5cGU6ImJydXNoIixtb2RlOiJyZXNpemUifSksbih7dHlwZToiYnJ1c2hlbmQifSl9KToobih7dHlwZToiYnJ1c2hzdGFydCJ9KSxuKHt0eXBlOiJicnVzaCIsbW9kZToicmVzaXplIn0pLG4oe3R5cGU6ImJydXNoZW5kIn0pKX0pfSxuLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCxwPVJzWyFjPDwxfCFzXSxuKTpjfSxuLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCxwPVJzWyFjPDwxfCFzXSxuKTpzfSxuLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjJiZzPyhoPSEhdFswXSxnPSEhdFsxXSk6Yz9oPSEhdDpzJiYoZz0hIXQpLG4pOmMmJnM/W2gsZ106Yz9oOnM/ZzpudWxsfSxuLmV4dGVudD1mdW5jdGlvbih0KXt2YXIgZSxyLHUsYSxoO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjJiYoZT10WzBdLHI9dFsxXSxzJiYoZT1lWzBdLHI9clswXSksaT1bZSxyXSxjLmludmVydCYmKGU9YyhlKSxyPWMocikpLGU+ciYmKGg9ZSxlPXIscj1oKSwoZSE9bFswXXx8ciE9bFsxXSkmJihsPVtlLHJdKSkscyYmKHU9dFswXSxhPXRbMV0sYyYmKHU9dVsxXSxhPWFbMV0pLG89W3UsYV0scy5pbnZlcnQmJih1PXModSksYT1zKGEpKSx1PmEmJihoPXUsdT1hLGE9aCksKHUhPWZbMF18fGEhPWZbMV0pJiYoZj1bdSxhXSkpLG4pOihjJiYoaT8oZT1pWzBdLHI9aVsxXSk6KGU9bFswXSxyPWxbMV0sYy5pbnZlcnQmJihlPWMuaW52ZXJ0KGUpLHI9Yy5pbnZlcnQocikpLGU+ciYmKGg9ZSxlPXIscj1oKSkpLHMmJihvPyh1PW9bMF0sYT1vWzFdKToodT1mWzBdLGE9ZlsxXSxzLmludmVydCYmKHU9cy5pbnZlcnQodSksYT1zLmludmVydChhKSksdT5hJiYoaD11LHU9YSxhPWgpKSksYyYmcz9bW2UsdV0sW3IsYV1dOmM/W2Uscl06cyYmW3UsYV0pfSxuLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIG4uZW1wdHkoKXx8KGw9WzAsMF0sZj1bMCwwXSxpPW89bnVsbCksbn0sbi5lbXB0eT1mdW5jdGlvbigpe3JldHVybiEhYyYmbFswXT09bFsxXXx8ISFzJiZmWzBdPT1mWzFdfSxYby5yZWJpbmQobixhLCJvbiIpfTt2YXIgenM9e246Im5zLXJlc2l6ZSIsZToiZXctcmVzaXplIixzOiJucy1yZXNpemUiLHc6ImV3LXJlc2l6ZSIsbnc6Im53c2UtcmVzaXplIixuZToibmVzdy1yZXNpemUiLHNlOiJud3NlLXJlc2l6ZSIsc3c6Im5lc3ctcmVzaXplIn0sUnM9W1sibiIsImUiLCJzIiwidyIsIm53IiwibmUiLCJzZSIsInN3Il0sWyJlIiwidyJdLFsibiIsInMiXSxbXV0sRHM9dGMuZm9ybWF0PWFjLnRpbWVGb3JtYXQsUHM9RHMudXRjLFVzPVBzKCIlWS0lbS0lZFQlSDolTTolUy4lTFoiKTtEcy5pc289RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcmJituZXcgRGF0ZSgiMjAwMC0wMS0wMVQwMDowMDowMC4wMDBaIik/T286VXMsT28ucGFyc2U9ZnVuY3Rpb24obil7dmFyIHQ9bmV3IERhdGUobik7cmV0dXJuIGlzTmFOKHQpP251bGw6dH0sT28udG9TdHJpbmc9VXMudG9TdHJpbmcsdGMuc2Vjb25kPVJ0KGZ1bmN0aW9uKG4pe3JldHVybiBuZXcgZWMoMWUzKk1hdGguZmxvb3Iobi8xZTMpKX0sZnVuY3Rpb24obix0KXtuLnNldFRpbWUobi5nZXRUaW1lKCkrMWUzKk1hdGguZmxvb3IodCkpfSxmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRTZWNvbmRzKCl9KSx0Yy5zZWNvbmRzPXRjLnNlY29uZC5yYW5nZSx0Yy5zZWNvbmRzLnV0Yz10Yy5zZWNvbmQudXRjLnJhbmdlLHRjLm1pbnV0ZT1SdChmdW5jdGlvbihuKXtyZXR1cm4gbmV3IGVjKDZlNCpNYXRoLmZsb29yKG4vNmU0KSl9LGZ1bmN0aW9uKG4sdCl7bi5zZXRUaW1lKG4uZ2V0VGltZSgpKzZlNCpNYXRoLmZsb29yKHQpKX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0TWludXRlcygpfSksdGMubWludXRlcz10Yy5taW51dGUucmFuZ2UsdGMubWludXRlcy51dGM9dGMubWludXRlLnV0Yy5yYW5nZSx0Yy5ob3VyPVJ0KGZ1bmN0aW9uKG4pe3ZhciB0PW4uZ2V0VGltZXpvbmVPZmZzZXQoKS82MDtyZXR1cm4gbmV3IGVjKDM2ZTUqKE1hdGguZmxvb3Iobi8zNmU1LXQpK3QpKX0sZnVuY3Rpb24obix0KXtuLnNldFRpbWUobi5nZXRUaW1lKCkrMzZlNSpNYXRoLmZsb29yKHQpKX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0SG91cnMoKX0pLHRjLmhvdXJzPXRjLmhvdXIucmFuZ2UsdGMuaG91cnMudXRjPXRjLmhvdXIudXRjLnJhbmdlLHRjLm1vbnRoPVJ0KGZ1bmN0aW9uKG4pe3JldHVybiBuPXRjLmRheShuKSxuLnNldERhdGUoMSksbn0sZnVuY3Rpb24obix0KXtuLnNldE1vbnRoKG4uZ2V0TW9udGgoKSt0KX0sZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0TW9udGgoKX0pLHRjLm1vbnRocz10Yy5tb250aC5yYW5nZSx0Yy5tb250aHMudXRjPXRjLm1vbnRoLnV0Yy5yYW5nZTt2YXIganM9WzFlMyw1ZTMsMTVlMywzZTQsNmU0LDNlNSw5ZTUsMThlNSwzNmU1LDEwOGU1LDIxNmU1LDQzMmU1LDg2NGU1LDE3MjhlNSw2MDQ4ZTUsMjU5MmU2LDc3NzZlNiwzMTUzNmU2XSxIcz1bW3RjLnNlY29uZCwxXSxbdGMuc2Vjb25kLDVdLFt0Yy5zZWNvbmQsMTVdLFt0Yy5zZWNvbmQsMzBdLFt0Yy5taW51dGUsMV0sW3RjLm1pbnV0ZSw1XSxbdGMubWludXRlLDE1XSxbdGMubWludXRlLDMwXSxbdGMuaG91ciwxXSxbdGMuaG91ciwzXSxbdGMuaG91ciw2XSxbdGMuaG91ciwxMl0sW3RjLmRheSwxXSxbdGMuZGF5LDJdLFt0Yy53ZWVrLDFdLFt0Yy5tb250aCwxXSxbdGMubW9udGgsM10sW3RjLnllYXIsMV1dLEZzPURzLm11bHRpKFtbIi4lTCIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0TWlsbGlzZWNvbmRzKCl9XSxbIjolUyIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0U2Vjb25kcygpfV0sWyIlSTolTSIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0TWludXRlcygpfV0sWyIlSSAlcCIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0SG91cnMoKX1dLFsiJWEgJWQiLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldERheSgpJiYxIT1uLmdldERhdGUoKX1dLFsiJWIgJWQiLGZ1bmN0aW9uKG4pe3JldHVybiAxIT1uLmdldERhdGUoKX1dLFsiJUIiLGZ1bmN0aW9uKG4pe3JldHVybiBuLmdldE1vbnRoKCl9XSxbIiVZIixiZV1dKSxPcz17cmFuZ2U6ZnVuY3Rpb24obix0LGUpe3JldHVybiBYby5yYW5nZShNYXRoLmNlaWwobi9lKSplLCt0LGUpLm1hcChJbyl9LGZsb29yOmJ0LGNlaWw6YnR9O0hzLnllYXI9dGMueWVhcix0Yy5zY2FsZT1mdW5jdGlvbigpe3JldHVybiBZbyhYby5zY2FsZS5saW5lYXIoKSxIcyxGcyl9O3ZhciBZcz1Icy5tYXAoZnVuY3Rpb24obil7cmV0dXJuW25bMF0udXRjLG5bMV1dfSksSXM9UHMubXVsdGkoW1siLiVMIixmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRVVENNaWxsaXNlY29uZHMoKX1dLFsiOiVTIixmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRVVENTZWNvbmRzKCl9XSxbIiVJOiVNIixmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRVVENNaW51dGVzKCl9XSxbIiVJICVwIixmdW5jdGlvbihuKXtyZXR1cm4gbi5nZXRVVENIb3VycygpfV0sWyIlYSAlZCIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDRGF5KCkmJjEhPW4uZ2V0VVRDRGF0ZSgpfV0sWyIlYiAlZCIsZnVuY3Rpb24obil7cmV0dXJuIDEhPW4uZ2V0VVRDRGF0ZSgpfV0sWyIlQiIsZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VVRDTW9udGgoKX1dLFsiJVkiLGJlXV0pO1lzLnllYXI9dGMueWVhci51dGMsdGMuc2NhbGUudXRjPWZ1bmN0aW9uKCl7cmV0dXJuIFlvKFhvLnNjYWxlLmxpbmVhcigpLFlzLElzKX0sWG8udGV4dD13dChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZXNwb25zZVRleHR9KSxYby5qc29uPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIFN0KG4sImFwcGxpY2F0aW9uL2pzb24iLFpvLHQpfSxYby5odG1sPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIFN0KG4sInRleHQvaHRtbCIsVm8sdCl9LFhvLnhtbD13dChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZXNwb25zZVhNTH0pLCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFhvKToib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9WG86dGhpcy5kMz1Yb30oKTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7dmFyIFRISVNfRE9DPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDt2YXIgc3ZnTlM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzt2YXIgaGlnaGxpZ2h0SWRCb29zdD10ci51aS5iLmdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3QoKTtmdW5jdGlvbiBnZXRDb2xvck9mS2V5KGtleSxzZWxlY3RlZCl7dmFyIGlkPXRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGtleSk7aWYoc2VsZWN0ZWQpCitpZCs9aGlnaGxpZ2h0SWRCb29zdDtyZXR1cm4gdHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKVtpZF07fQordmFyIENoYXJ0QmFzZT10ci51aS5iLmRlZmluZSgnc3ZnJyx1bmRlZmluZWQsc3ZnTlMpO0NoYXJ0QmFzZS5wcm90b3R5cGU9e19fcHJvdG9fXzpIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKCl7dGhpcy5jbGFzc0xpc3QuYWRkKCdjaGFydC1iYXNlJyk7dGhpcy5jaGFydFRpdGxlXz11bmRlZmluZWQ7dGhpcy5kYXRhXz11bmRlZmluZWQ7dGhpcy5zZXJpZXNLZXlzXz11bmRlZmluZWQ7dGhpcy53aWR0aF89NDAwO3RoaXMuaGVpZ2h0Xz0zMDA7dmFyIHRlbXBsYXRlPVRISVNfRE9DLnF1ZXJ5U2VsZWN0b3IoJyNjaGFydC1iYXNlLXRlbXBsYXRlJyk7dmFyIHN2Z0VsPXRlbXBsYXRlLmNvbnRlbnQucXVlcnlTZWxlY3Rvcignc3ZnJyk7Zm9yKHZhciBpPTA7aTxzdmdFbC5jaGlsZHJlbi5sZW5ndGg7aSsrKQogdGhpcy5hcHBlbmRDaGlsZChzdmdFbC5jaGlsZHJlbltpXS5jbG9uZU5vZGUodHJ1ZSkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCd3aWR0aCcse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLndpZHRoXzt9LHNldDpmdW5jdGlvbih3aWR0aCl7dGhpcy53aWR0aF89d2lkdGg7dGhpcy51cGRhdGVDb250ZW50c18oKTt9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsJ2hlaWdodCcse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlaWdodF87fSxzZXQ6ZnVuY3Rpb24oaGVpZ2h0KXt0aGlzLmhlaWdodF89aGVpZ2h0O3RoaXMudXBkYXRlQ29udGVudHNfKCk7fX0pO30sZ2V0IGNoYXJ0VGl0bGUoKXtyZXR1cm4gY2hhcnRUaXRsZV87fSxzZXQgY2hhcnRUaXRsZShjaGFydFRpdGxlKXt0aGlzLmNoYXJ0VGl0bGVfPWNoYXJ0VGl0bGU7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBjaGFydEFyZWFFbGVtZW50KCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcignI2NoYXJ0LWFyZWEnKTt9LGdldCBkYXRhKCl7cmV0dXJuIHRoaXMuZGF0YV87fSxzZXRTaXplOmZ1bmN0aW9uKHNpemUpe3RoaXMud2lkdGhfPXNpemUud2lkdGg7dGhpcy5oZWlnaHRfPXNpemUuaGVpZ2h0O3RoaXMudXBkYXRlQ29udGVudHNfKCk7fSxnZXQgbWFyZ2luKCl7dmFyIG1hcmdpbj17dG9wOjIwLHJpZ2h0OjIwLGJvdHRvbTozMCxsZWZ0OjUwfTtpZih0aGlzLmNoYXJ0VGl0bGVfKQogbWFyZ2luLnRvcCs9MjA7cmV0dXJuIG1hcmdpbjt9LGdldCBjaGFydEFyZWFTaXplKCl7dmFyIG1hcmdpbj10aGlzLm1hcmdpbjtyZXR1cm57d2lkdGg6dGhpcy53aWR0aF8tbWFyZ2luLmxlZnQtbWFyZ2luLnJpZ2h0LGhlaWdodDp0aGlzLmhlaWdodF8tbWFyZ2luLnRvcC1tYXJnaW4uYm90dG9tfTt9LGdldExlZ2VuZEtleXNfOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTt9LHVwZGF0ZVNjYWxlc186ZnVuY3Rpb24od2lkdGgsaGVpZ2h0KXt0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7dmFyIG1hcmdpbj10aGlzLm1hcmdpbjt2YXIgd2lkdGg9dGhpcy5jaGFydEFyZWFTaXplLndpZHRoO3ZhciBoZWlnaHQ9dGhpcy5jaGFydEFyZWFTaXplLmhlaWdodDt2YXIgdGhpc1NlbD1kMy5zZWxlY3QodGhpcyk7dGhpc1NlbC5hdHRyKCd3aWR0aCcsdGhpcy53aWR0aF8pO3RoaXNTZWwuYXR0cignaGVpZ2h0Jyx0aGlzLmhlaWdodF8pO3ZhciBjaGFydEFyZWFTZWw9ZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCk7Y2hhcnRBcmVhU2VsLmF0dHIoJ3RyYW5zZm9ybScsJ3RyYW5zbGF0ZSgnK21hcmdpbi5sZWZ0KycsJyttYXJnaW4udG9wKycpJyk7dGhpcy51cGRhdGVTY2FsZXNfKHdpZHRoLGhlaWdodCk7aWYodGhpcy54U2NhbGVfJiZ0aGlzLnlTY2FsZV8pe3ZhciB4QXhpc1JlbmRlcmVyPWQzLnN2Zy5heGlzKCkuc2NhbGUodGhpcy54U2NhbGVfKS5vcmllbnQoJ2JvdHRvbScpO3ZhciB5QXhpc1JlbmRlcmVyPWQzLnN2Zy5heGlzKCkuc2NhbGUodGhpcy55U2NhbGVfKS5vcmllbnQoJ2xlZnQnKTtjaGFydEFyZWFTZWwuc2VsZWN0KCcueC5heGlzJykuYXR0cigndHJhbnNmb3JtJywndHJhbnNsYXRlKDAsJytoZWlnaHQrJyknKS5jYWxsKHhBeGlzUmVuZGVyZXIpO2NoYXJ0QXJlYVNlbC5zZWxlY3QoJy55LmF4aXMnKS5jYWxsKHlBeGlzUmVuZGVyZXIpO30KIHZhciB0aXRsZVNlbD1jaGFydEFyZWFTZWwuc2VsZWN0KCcjdGl0bGUnKTtpZih0aGlzLmNoYXJ0VGl0bGVfKXt0aXRsZVNlbC5hdHRyKCd0cmFuc2Zvcm0nLCd0cmFuc2xhdGUoJyt3aWR0aCowLjUrJywtNSknKS5zdHlsZSgnZGlzcGxheScsdW5kZWZpbmVkKS5zdHlsZSgndGV4dC1hbmNob3InLCdtaWRkbGUnKS5hdHRyKCdjbGFzcycsJ3RpdGxlJykuYXR0cignd2lkdGgnLHdpZHRoKS50ZXh0KHRoaXMuY2hhcnRUaXRsZV8pO31lbHNle3RpdGxlU2VsLnN0eWxlKCdkaXNwbGF5Jywnbm9uZScpO30KQEAgLTQwNjYsNDggKzQ1OTMsNDggQEAKIHRocm93IG5ldyBFcnJvcigncHVzaCBjYW5ub3QgbmVzdCcpO3RoaXMudGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5Xz1rZXk7dGhpcy51cGRhdGVIaWdobGlnaHRfKCk7fSxwb3BUZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXk6ZnVuY3Rpb24oa2V5KXtpZih0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV8hPWtleSkKIHRocm93IG5ldyBFcnJvcigncG9wIGNhbm5vdCBoYXBwZW4nKTt0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV89dW5kZWZpbmVkO3RoaXMudXBkYXRlSGlnaGxpZ2h0XygpO30sdXBkYXRlSGlnaGxpZ2h0XzpmdW5jdGlvbigpe3ZhciBjaGFydEFyZWFTZWw9ZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCk7dmFyIGxlZ2VuZEVudHJpZXNTZWw9Y2hhcnRBcmVhU2VsLnNlbGVjdEFsbCgnLmxlZ2VuZCcpO3ZhciB0aGF0PXRoaXM7bGVnZW5kRW50cmllc1NlbC5lYWNoKGZ1bmN0aW9uKGtleSl7dmFyIGhpZ2hsaWdodGVkPWtleT09dGhhdC5jdXJyZW50SGlnaGxpZ2h0ZWRMZWdlbmRLZXk7dmFyIGNvbG9yPWdldENvbG9yT2ZLZXkoa2V5LGhpZ2hsaWdodGVkKTt0aGlzLnN0eWxlLmZpbGw9Y29sb3I7aWYoaGlnaGxpZ2h0ZWQpCiB0aGlzLnN0eWxlLmZvbnRXZWlnaHQ9J2JvbGQnO2Vsc2UKLXRoaXMuc3R5bGUuZm9udFdlaWdodD0nJzt9KTt9fTtyZXR1cm57Z2V0Q29sb3JPZktleTpnZXRDb2xvck9mS2V5LENoYXJ0QmFzZTpDaGFydEJhc2V9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuYi51aScsZnVuY3Rpb24oKXt2YXIgQ2hhcnRCYXNlPXRyLmIudWkuQ2hhcnRCYXNlO3ZhciBnZXRDb2xvck9mS2V5PXRyLmIudWkuZ2V0Q29sb3JPZktleTtmdW5jdGlvbiBnZXRTYW1wbGVXaWR0aChkYXRhLGluZGV4LGxlZnRTaWRlKXt2YXIgbGVmdEluZGV4LHJpZ2h0SW5kZXg7aWYobGVmdFNpZGUpe2xlZnRJbmRleD1NYXRoLm1heChpbmRleC0xLDApO3JpZ2h0SW5kZXg9aW5kZXg7fWVsc2V7bGVmdEluZGV4PWluZGV4O3JpZ2h0SW5kZXg9TWF0aC5taW4oaW5kZXgrMSxkYXRhLmxlbmd0aC0xKTt9Cit0aGlzLnN0eWxlLmZvbnRXZWlnaHQ9Jyc7fSk7fX07cmV0dXJue2dldENvbG9yT2ZLZXk6Z2V0Q29sb3JPZktleSxDaGFydEJhc2U6Q2hhcnRCYXNlfTt9KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLnVpLmInLGZ1bmN0aW9uKCl7dmFyIENoYXJ0QmFzZT10ci51aS5iLkNoYXJ0QmFzZTt2YXIgZ2V0Q29sb3JPZktleT10ci51aS5iLmdldENvbG9yT2ZLZXk7ZnVuY3Rpb24gZ2V0U2FtcGxlV2lkdGgoZGF0YSxpbmRleCxsZWZ0U2lkZSl7dmFyIGxlZnRJbmRleCxyaWdodEluZGV4O2lmKGxlZnRTaWRlKXtsZWZ0SW5kZXg9TWF0aC5tYXgoaW5kZXgtMSwwKTtyaWdodEluZGV4PWluZGV4O31lbHNle2xlZnRJbmRleD1pbmRleDtyaWdodEluZGV4PU1hdGgubWluKGluZGV4KzEsZGF0YS5sZW5ndGgtMSk7fQogdmFyIGxlZnRXaWR0aD1kYXRhW2luZGV4XS54LWRhdGFbbGVmdEluZGV4XS54O3ZhciByaWdodFdpZHRoPWRhdGFbcmlnaHRJbmRleF0ueC1kYXRhW2luZGV4XS54O3JldHVybiBsZWZ0V2lkdGgqMC41K3JpZ2h0V2lkdGgqMC41O30KLXZhciBMaW5lQ2hhcnQ9dHIuYi51aS5kZWZpbmUoJ2xpbmUtY2hhcnQnLENoYXJ0QmFzZSk7TGluZUNoYXJ0LnByb3RvdHlwZT17X19wcm90b19fOkNoYXJ0QmFzZS5wcm90b3R5cGUsZGVjb3JhdGU6ZnVuY3Rpb24oKXtDaGFydEJhc2UucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7dGhpcy5jbGFzc0xpc3QuYWRkKCdsaW5lLWNoYXJ0Jyk7dGhpcy5icnVzaGVkUmFuZ2VfPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy54U2NhbGVfPWQzLnNjYWxlLmxpbmVhcigpO3RoaXMueVNjYWxlXz1kMy5zY2FsZS5saW5lYXIoKTtkMy5zZWxlY3QodGhpcy5jaGFydEFyZWFFbGVtZW50KS5hcHBlbmQoJ2cnKS5hdHRyKCdpZCcsJ2JydXNoZXMnKTtkMy5zZWxlY3QodGhpcy5jaGFydEFyZWFFbGVtZW50KS5hcHBlbmQoJ2cnKS5hdHRyKCdpZCcsJ3NlcmllcycpO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyx0aGlzLm9uTW91c2VEb3duXy5iaW5kKHRoaXMpKTt9LHNldCBkYXRhKGRhdGEpe2lmKGRhdGEubGVuZ3RoPT0wKQotdGhyb3cgbmV3IEVycm9yKCdEYXRhIG11c3QgYmUgbm9uemVyby4gUGFzcyB1bmRlZmluZWQuJyk7dmFyIGtleXM7aWYoZGF0YSE9PXVuZGVmaW5lZCl7dmFyIGQ9ZGF0YVswXTtpZihkLng9PT11bmRlZmluZWQpCi10aHJvdyBuZXcgRXJyb3IoJ0VsZW1lbnRzIG11c3QgaGF2ZSAieCIgZmllbGRzJyk7a2V5cz1kMy5rZXlzKGRhdGFbMF0pO2tleXMuc3BsaWNlKGtleXMuaW5kZXhPZigneCcpLDEpO2lmKGtleXMubGVuZ3RoPT0wKQotdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50cyBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIG90aGVyIGZpZWxkIHRoYW4gWCcpO31lbHNle2tleXM9dW5kZWZpbmVkO30KLXRoaXMuZGF0YV89ZGF0YTt0aGlzLnNlcmllc0tleXNfPWtleXM7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LHNldCBicnVzaGVkUmFuZ2UocmFuZ2Upe3RoaXMuYnJ1c2hlZFJhbmdlXy5yZXNldCgpO3RoaXMuYnJ1c2hlZFJhbmdlXy5hZGRSYW5nZShyYW5nZSk7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGNvbXB1dGVCcnVzaFJhbmdlRnJvbUluZGljZXM6ZnVuY3Rpb24oaW5kZXhBLGluZGV4Qil7dmFyIHI9bmV3IHRyLmIuUmFuZ2UoKTt2YXIgbGVmdEluZGV4PU1hdGgubWluKGluZGV4QSxpbmRleEIpO3ZhciByaWdodEluZGV4PU1hdGgubWF4KGluZGV4QSxpbmRleEIpO2xlZnRJbmRleD1NYXRoLm1heCgwLGxlZnRJbmRleCk7cmlnaHRJbmRleD1NYXRoLm1pbih0aGlzLmRhdGFfLmxlbmd0aC0xLHJpZ2h0SW5kZXgpO3IuYWRkVmFsdWUodGhpcy5kYXRhX1tsZWZ0SW5kZXhdLngtCit2YXIgTGluZUNoYXJ0PXRyLnVpLmIuZGVmaW5lKCdsaW5lLWNoYXJ0JyxDaGFydEJhc2UpO0xpbmVDaGFydC5wcm90b3R5cGU9e19fcHJvdG9fXzpDaGFydEJhc2UucHJvdG90eXBlLGRlY29yYXRlOmZ1bmN0aW9uKCl7Q2hhcnRCYXNlLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMpO3RoaXMuY2xhc3NMaXN0LmFkZCgnbGluZS1jaGFydCcpO3RoaXMuYnJ1c2hlZFJhbmdlXz1uZXcgdHIuYi5SYW5nZSgpO3RoaXMueFNjYWxlXz1kMy5zY2FsZS5saW5lYXIoKTt0aGlzLnlTY2FsZV89ZDMuc2NhbGUubGluZWFyKCk7ZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCkuYXBwZW5kKCdnJykuYXR0cignaWQnLCdicnVzaGVzJyk7ZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCkuYXBwZW5kKCdnJykuYXR0cignaWQnLCdzZXJpZXMnKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsdGhpcy5vbk1vdXNlRG93bl8uYmluZCh0aGlzKSk7fSxzZXQgZGF0YShkYXRhKXtpZihkYXRhLmxlbmd0aD09MCkKK3Rocm93IG5ldyBFcnJvcignRGF0YSBtdXN0IGJlIG5vbnplcm8uIFBhc3MgdW5kZWZpbmVkLicpO3RoaXMuZGF0YV89ZGF0YTt0aGlzLnNlcmllc0tleXNfPXRoaXMuZ2V0U2VyaWVzS2V5c18oKTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sc2V0IGJydXNoZWRSYW5nZShyYW5nZSl7dGhpcy5icnVzaGVkUmFuZ2VfLnJlc2V0KCk7dGhpcy5icnVzaGVkUmFuZ2VfLmFkZFJhbmdlKHJhbmdlKTt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sY29tcHV0ZUJydXNoUmFuZ2VGcm9tSW5kaWNlczpmdW5jdGlvbihpbmRleEEsaW5kZXhCKXt2YXIgcj1uZXcgdHIuYi5SYW5nZSgpO3ZhciBsZWZ0SW5kZXg9TWF0aC5taW4oaW5kZXhBLGluZGV4Qik7dmFyIHJpZ2h0SW5kZXg9TWF0aC5tYXgoaW5kZXhBLGluZGV4Qik7bGVmdEluZGV4PU1hdGgubWF4KDAsbGVmdEluZGV4KTtyaWdodEluZGV4PU1hdGgubWluKHRoaXMuZGF0YV8ubGVuZ3RoLTEscmlnaHRJbmRleCk7ci5hZGRWYWx1ZSh0aGlzLmRhdGFfW2xlZnRJbmRleF0ueC0KIGdldFNhbXBsZVdpZHRoKHRoaXMuZGF0YV8sbGVmdEluZGV4LHRydWUpKTtyLmFkZFZhbHVlKHRoaXMuZGF0YV9bcmlnaHRJbmRleF0ueCsKIGdldFNhbXBsZVdpZHRoKHRoaXMuZGF0YV8scmlnaHRJbmRleCxmYWxzZSkpO3JldHVybiByO30sZ2V0TGVnZW5kS2V5c186ZnVuY3Rpb24oKXtpZih0aGlzLnNlcmllc0tleXNfJiZ0aGlzLnNlcmllc0tleXNfLmxlbmd0aD4xKQotcmV0dXJuIHRoaXMuc2VyaWVzS2V5c18uc2xpY2UoKTtyZXR1cm5bXTt9LHVwZGF0ZVNjYWxlc186ZnVuY3Rpb24od2lkdGgsaGVpZ2h0KXtpZih0aGlzLmRhdGFfPT09dW5kZWZpbmVkKQotcmV0dXJuO3RoaXMueFNjYWxlXy5yYW5nZShbMCx3aWR0aF0pO3RoaXMueFNjYWxlXy5kb21haW4oZDMuZXh0ZW50KHRoaXMuZGF0YV8sZnVuY3Rpb24oZCl7cmV0dXJuIGQueDt9KSk7dmFyIHlSYW5nZT1uZXcgdHIuYi5SYW5nZSgpO3RoaXMuZGF0YV8uZm9yRWFjaChmdW5jdGlvbihkKXt0aGlzLnNlcmllc0tleXNfLmZvckVhY2goZnVuY3Rpb24oayl7eVJhbmdlLmFkZFZhbHVlKGRba10pO30pO30sdGhpcyk7dGhpcy55U2NhbGVfLnJhbmdlKFtoZWlnaHQsMF0pO3RoaXMueVNjYWxlXy5kb21haW4oW3lSYW5nZS5taW4seVJhbmdlLm1heF0pO30sdXBkYXRlQ29udGVudHNfOmZ1bmN0aW9uKCl7Q2hhcnRCYXNlLnByb3RvdHlwZS51cGRhdGVDb250ZW50c18uY2FsbCh0aGlzKTtpZighdGhpcy5kYXRhXykKLXJldHVybjt2YXIgY2hhcnRBcmVhU2VsPWQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpO3ZhciBicnVzaGVzPXRoaXMuYnJ1c2hlZFJhbmdlXy5pc0VtcHR5P1tdOlt0aGlzLmJydXNoZWRSYW5nZV9dO3ZhciBicnVzaFJlY3RzU2VsPWNoYXJ0QXJlYVNlbC5zZWxlY3QoJyNicnVzaGVzJykuc2VsZWN0QWxsKCdyZWN0JykuZGF0YShicnVzaGVzKTticnVzaFJlY3RzU2VsLmVudGVyKCkuYXBwZW5kKCdyZWN0Jyk7YnJ1c2hSZWN0c1NlbC5leGl0KCkucmVtb3ZlKCk7YnJ1c2hSZWN0c1NlbC5hdHRyKCd4JyxmdW5jdGlvbihkKXtyZXR1cm4gdGhpcy54U2NhbGVfKGQubWluKTt9LmJpbmQodGhpcykpLmF0dHIoJ3knLDApLmF0dHIoJ3dpZHRoJyxmdW5jdGlvbihkKXtyZXR1cm4gdGhpcy54U2NhbGVfKGQubWF4KS10aGlzLnhTY2FsZV8oZC5taW4pO30uYmluZCh0aGlzKSkuYXR0cignaGVpZ2h0Jyx0aGlzLmNoYXJ0QXJlYVNpemUuaGVpZ2h0KTt2YXIgc2VyaWVzU2VsPWNoYXJ0QXJlYVNlbC5zZWxlY3QoJyNzZXJpZXMnKTt2YXIgcGF0aHNTZWw9c2VyaWVzU2VsLnNlbGVjdEFsbCgncGF0aCcpLmRhdGEodGhpcy5zZXJpZXNLZXlzXyk7cGF0aHNTZWwuZW50ZXIoKS5hcHBlbmQoJ3BhdGgnKS5hdHRyKCdjbGFzcycsJ2xpbmUnKS5zdHlsZSgnc3Ryb2tlJyxmdW5jdGlvbihrZXkpe3JldHVybiBnZXRDb2xvck9mS2V5KGtleSk7fSkuYXR0cignZCcsZnVuY3Rpb24oa2V5KXt2YXIgbGluZT1kMy5zdmcubGluZSgpLngoZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMueFNjYWxlXyhkLngpO30uYmluZCh0aGlzKSkueShmdW5jdGlvbihkKXtyZXR1cm4gdGhpcy55U2NhbGVfKGRba2V5XSk7fS5iaW5kKHRoaXMpKTtyZXR1cm4gbGluZSh0aGlzLmRhdGFfKTt9LmJpbmQodGhpcykpO3BhdGhzU2VsLmV4aXQoKS5yZW1vdmUoKTt9LGdldERhdGFJbmRleEF0Q2xpZW50UG9pbnRfOmZ1bmN0aW9uKGNsaWVudFgsY2xpZW50WSxjbGlwVG9ZKXt2YXIgcmVjdD10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBtYXJnaW49dGhpcy5tYXJnaW47dmFyIGNoYXJ0QXJlYVNpemU9dGhpcy5jaGFydEFyZWFTaXplO3ZhciB4PWNsaWVudFgtcmVjdC5sZWZ0LW1hcmdpbi5sZWZ0O3ZhciB5PWNsaWVudFktcmVjdC50b3AtbWFyZ2luLnRvcDtpZihjbGlwVG9ZKXtpZih5PDB8fHk+PWNoYXJ0QXJlYVNpemUuaGVpZ2h0KQorcmV0dXJuIHRoaXMuc2VyaWVzS2V5c18uc2xpY2UoKTtyZXR1cm5bXTt9LGdldFNlcmllc0tleXNfOmZ1bmN0aW9uKCl7aWYodGhpcy5kYXRhXz09PXVuZGVmaW5lZCkKK3JldHVybiB1bmRlZmluZWQ7dmFyIGtleVNldD17fTt0aGlzLmRhdGFfLmZvckVhY2goZnVuY3Rpb24oZGF0dW0pe2lmKGRhdHVtLng9PT11bmRlZmluZWQpCit0aHJvdyBuZXcgRXJyb3IoJ0VsZW1lbnRzIG11c3QgaGF2ZSAieCIgZmllbGRzLicpO09iamVjdC5rZXlzKGRhdHVtKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7aWYoa2V5PT09J3gnKQorcmV0dXJuO2tleVNldFtrZXldPXRydWU7fSk7fSk7cmV0dXJuIE9iamVjdC5rZXlzKGtleVNldCk7fSx1cGRhdGVTY2FsZXNfOmZ1bmN0aW9uKHdpZHRoLGhlaWdodCl7aWYodGhpcy5kYXRhXz09PXVuZGVmaW5lZCkKK3JldHVybjt0aGlzLnhTY2FsZV8ucmFuZ2UoWzAsd2lkdGhdKTt0aGlzLnhTY2FsZV8uZG9tYWluKGQzLmV4dGVudCh0aGlzLmRhdGFfLGZ1bmN0aW9uKGQpe3JldHVybiBkLng7fSkpO3ZhciB5UmFuZ2U9bmV3IHRyLmIuUmFuZ2UoKTt0aGlzLmRhdGFfLmZvckVhY2goZnVuY3Rpb24oZGF0dW0pe3RoaXMuc2VyaWVzS2V5c18uZm9yRWFjaChmdW5jdGlvbihrZXkpe2lmKGRhdHVtW2tleV0hPT11bmRlZmluZWQpCit5UmFuZ2UuYWRkVmFsdWUoZGF0dW1ba2V5XSk7fSk7fSx0aGlzKTt0aGlzLnlTY2FsZV8ucmFuZ2UoW2hlaWdodCwwXSk7dGhpcy55U2NhbGVfLmRvbWFpbihbeVJhbmdlLm1pbix5UmFuZ2UubWF4XSk7fSx1cGRhdGVDb250ZW50c186ZnVuY3Rpb24oKXtDaGFydEJhc2UucHJvdG90eXBlLnVwZGF0ZUNvbnRlbnRzXy5jYWxsKHRoaXMpO2lmKCF0aGlzLmRhdGFfKQorcmV0dXJuO3ZhciBjaGFydEFyZWFTZWw9ZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCk7dmFyIGJydXNoZXM9dGhpcy5icnVzaGVkUmFuZ2VfLmlzRW1wdHk/W106W3RoaXMuYnJ1c2hlZFJhbmdlX107dmFyIGJydXNoUmVjdHNTZWw9Y2hhcnRBcmVhU2VsLnNlbGVjdCgnI2JydXNoZXMnKS5zZWxlY3RBbGwoJ3JlY3QnKS5kYXRhKGJydXNoZXMpO2JydXNoUmVjdHNTZWwuZW50ZXIoKS5hcHBlbmQoJ3JlY3QnKTticnVzaFJlY3RzU2VsLmV4aXQoKS5yZW1vdmUoKTticnVzaFJlY3RzU2VsLmF0dHIoJ3gnLGZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLnhTY2FsZV8oZC5taW4pO30uYmluZCh0aGlzKSkuYXR0cigneScsMCkuYXR0cignd2lkdGgnLGZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLnhTY2FsZV8oZC5tYXgpLXRoaXMueFNjYWxlXyhkLm1pbik7fS5iaW5kKHRoaXMpKS5hdHRyKCdoZWlnaHQnLHRoaXMuY2hhcnRBcmVhU2l6ZS5oZWlnaHQpO3ZhciBkYXRhQnlTZXJpZXNLZXk9dGhpcy5nZXREYXRhQnlTZXJpZXNLZXlfKCk7dmFyIHNlcmllc1NlbD1jaGFydEFyZWFTZWwuc2VsZWN0KCcjc2VyaWVzJyk7dmFyIHBhdGhzU2VsPXNlcmllc1NlbC5zZWxlY3RBbGwoJ3BhdGgnKS5kYXRhKHRoaXMuc2VyaWVzS2V5c18pO3BhdGhzU2VsLmVudGVyKCkuYXBwZW5kKCdwYXRoJykuYXR0cignY2xhc3MnLCdsaW5lJykuc3R5bGUoJ3N0cm9rZScsZnVuY3Rpb24oa2V5KXtyZXR1cm4gZ2V0Q29sb3JPZktleShrZXkpO30pLmF0dHIoJ2QnLGZ1bmN0aW9uKGtleSl7dmFyIGxpbmU9ZDMuc3ZnLmxpbmUoKS54KGZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLnhTY2FsZV8oZC54KTt9LmJpbmQodGhpcykpLnkoZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMueVNjYWxlXyhkW2tleV0pO30uYmluZCh0aGlzKSk7cmV0dXJuIGxpbmUoZGF0YUJ5U2VyaWVzS2V5W2tleV0pO30uYmluZCh0aGlzKSk7cGF0aHNTZWwuZXhpdCgpLnJlbW92ZSgpO30sZ2V0RGF0YUJ5U2VyaWVzS2V5XzpmdW5jdGlvbigpe3ZhciBkYXRhQnlTZXJpZXNLZXk9e307dGhpcy5zZXJpZXNLZXlzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllc0tleSl7ZGF0YUJ5U2VyaWVzS2V5W3Nlcmllc0tleV09W107fSk7dGhpcy5kYXRhXy5mb3JFYWNoKGZ1bmN0aW9uKG11bHRpU2VyaWVzRGF0dW0pe3ZhciB4PW11bHRpU2VyaWVzRGF0dW0ueDtkMy5rZXlzKG11bHRpU2VyaWVzRGF0dW0pLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzS2V5KXtpZihzZXJpZXNLZXk9PT0neCcpCityZXR1cm47aWYobXVsdGlTZXJpZXNEYXR1bVtzZXJpZXNLZXldPT09dW5kZWZpbmVkKQorcmV0dXJuO3ZhciBzaW5nbGVTZXJpZXNEYXR1bT17eDp4fTtzaW5nbGVTZXJpZXNEYXR1bVtzZXJpZXNLZXldPW11bHRpU2VyaWVzRGF0dW1bc2VyaWVzS2V5XTtkYXRhQnlTZXJpZXNLZXlbc2VyaWVzS2V5XS5wdXNoKHNpbmdsZVNlcmllc0RhdHVtKTt9KTt9KTtyZXR1cm4gZGF0YUJ5U2VyaWVzS2V5O30sZ2V0RGF0YUluZGV4QXRDbGllbnRQb2ludF86ZnVuY3Rpb24oY2xpZW50WCxjbGllbnRZLGNsaXBUb1kpe3ZhciByZWN0PXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIG1hcmdpbj10aGlzLm1hcmdpbjt2YXIgY2hhcnRBcmVhU2l6ZT10aGlzLmNoYXJ0QXJlYVNpemU7dmFyIHg9Y2xpZW50WC1yZWN0LmxlZnQtbWFyZ2luLmxlZnQ7dmFyIHk9Y2xpZW50WS1yZWN0LnRvcC1tYXJnaW4udG9wO2lmKGNsaXBUb1kpe2lmKHk8MHx8eT49Y2hhcnRBcmVhU2l6ZS5oZWlnaHQpCiByZXR1cm4gdW5kZWZpbmVkO30KIHZhciBkYXRhWD10aGlzLnhTY2FsZV8uaW52ZXJ0KHgpO3ZhciBpbmRleDtpZih0aGlzLmRhdGFfKXt2YXIgYmlzZWN0PWQzLmJpc2VjdG9yKGZ1bmN0aW9uKGQpe3JldHVybiBkLng7fSkucmlnaHQ7aW5kZXg9YmlzZWN0KHRoaXMuZGF0YV8sZGF0YVgpLTE7fQotcmV0dXJuIGluZGV4O30sb25Nb3VzZURvd25fOmZ1bmN0aW9uKGUpe3ZhciBpbmRleD10aGlzLmdldERhdGFJbmRleEF0Q2xpZW50UG9pbnRfKGUuY2xpZW50WCxlLmNsaWVudFksdHJ1ZSk7aWYoaW5kZXghPT11bmRlZmluZWQpe3RyLmIudWkudHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwKHRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyxlLmJ1dHRvbiksdGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyxlLmJ1dHRvbikpO30KLWUucHJldmVudERlZmF1bHQoKTtlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBldmVudD1uZXcgRXZlbnQoJ2l0ZW0tbW91c2Vkb3duJyk7ZXZlbnQuZGF0YT10aGlzLmRhdGFfW2luZGV4XTtldmVudC5pbmRleD1pbmRleDtldmVudC5idXR0b25zPWUuYnV0dG9uczt0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpO30sb25Nb3VzZU1vdmVfOmZ1bmN0aW9uKGJ1dHRvbixlKXt2YXIgaW5kZXg9dGhpcy5nZXREYXRhSW5kZXhBdENsaWVudFBvaW50XyhlLmNsaWVudFgsZS5jbGllbnRZLGZhbHNlKTtpZihlLmJ1dHRvbnMhPT11bmRlZmluZWQpe2UucHJldmVudERlZmF1bHQoKTtlLnN0b3BQcm9wYWdhdGlvbigpO30KLXZhciBldmVudD1uZXcgRXZlbnQoJ2l0ZW0tbW91c2Vtb3ZlJyk7ZXZlbnQuZGF0YT10aGlzLmRhdGFfW2luZGV4XTtldmVudC5pbmRleD1pbmRleDtldmVudC5idXR0b249YnV0dG9uO3RoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7fSxvbk1vdXNlVXBfOmZ1bmN0aW9uKGJ1dHRvbixlKXt2YXIgaW5kZXg9dGhpcy5nZXREYXRhSW5kZXhBdENsaWVudFBvaW50XyhlLmNsaWVudFgsZS5jbGllbnRZLGZhbHNlKTtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZXZlbnQ9bmV3IEV2ZW50KCdpdGVtLW1vdXNldXAnKTtldmVudC5kYXRhPXRoaXMuZGF0YV9baW5kZXhdO2V2ZW50LmluZGV4PWluZGV4O2V2ZW50LmJ1dHRvbj1idXR0b247dGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTt9fTtyZXR1cm57TGluZUNoYXJ0OkxpbmVDaGFydH07fSk7J3VzZSBzdHJpY3QnO1BvbHltZXIoJ3RyLWUtcy1hbGVydHMtc2lkZS1wYW5lbCcse3JlYWR5OmZ1bmN0aW9uKCl7dGhpcy5yYW5nZU9mSW50ZXJlc3RfPW5ldyB0ci5iLlJhbmdlKCk7dGhpcy5zZWxlY3Rpb25fPXVuZGVmaW5lZDt9LGdldCBtb2RlbCgpe3JldHVybiB0aGlzLm1vZGVsXzt9LHNldCBtb2RlbChtb2RlbCl7dGhpcy5tb2RlbF89bW9kZWw7dGhpcy51cGRhdGVDb250ZW50c18oKTt9LGdldCBsaXN0ZW5pbmdUb0tleXMoKXtyZXR1cm4gZmFsc2U7fSxzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbil7fSxzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlT2ZJbnRlcmVzdCl7fSxzZWxlY3RBbGVydHNPZlR5cGU6ZnVuY3Rpb24oYWxlcnRUeXBlU3RyaW5nKXt2YXIgYWxlcnRzT2ZUeXBlPXRoaXMubW9kZWxfLmFsZXJ0cy5maWx0ZXIoZnVuY3Rpb24oYWxlcnQpe3JldHVybiBhbGVydC50aXRsZT09PWFsZXJ0VHlwZVN0cmluZzt9KTt2YXIgZXZlbnQ9bmV3IHRyLmMuUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7ZXZlbnQuc2VsZWN0aW9uPW5ldyB0ci5jLlNlbGVjdGlvbihhbGVydHNPZlR5cGUpO3RoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7fSxhbGVydHNCeVR5cGVfOmZ1bmN0aW9uKGFsZXJ0cyl7dmFyIGFsZXJ0c0J5VHlwZT17fTthbGVydHMuZm9yRWFjaChmdW5jdGlvbihhbGVydCl7aWYoIWFsZXJ0c0J5VHlwZVthbGVydC50aXRsZV0pCi1hbGVydHNCeVR5cGVbYWxlcnQudGl0bGVdPVtdO2FsZXJ0c0J5VHlwZVthbGVydC50aXRsZV0ucHVzaChhbGVydCk7fSk7cmV0dXJuIGFsZXJ0c0J5VHlwZTt9LGFsZXJ0c1RhYmxlUm93c186ZnVuY3Rpb24oYWxlcnRzQnlUeXBlKXtyZXR1cm4gT2JqZWN0LmtleXMoYWxlcnRzQnlUeXBlKS5tYXAoZnVuY3Rpb24oa2V5KXtyZXR1cm57YWxlcnRUeXBlOmtleSxjb3VudDphbGVydHNCeVR5cGVba2V5XS5sZW5ndGh9O30pO30sYWxlcnRzVGFibGVDb2x1bW5zXzpmdW5jdGlvbigpe3JldHVyblt7dGl0bGU6J0FsZXJ0IHR5cGUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy5hbGVydFR5cGU7fSx3aWR0aDonMTgwcHgnfSx7dGl0bGU6J0NvdW50Jyx3aWR0aDonMTAwJScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LmNvdW50O319XTt9LGNyZWF0ZUFsZXJ0c1RhYmxlXzpmdW5jdGlvbihhbGVydHMpe3ZhciBhbGVydHNCeVR5cGU9dGhpcy5hbGVydHNCeVR5cGVfKGFsZXJ0cyk7dmFyIHRhYmxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTt0YWJsZS50YWJsZUNvbHVtbnM9dGhpcy5hbGVydHNUYWJsZUNvbHVtbnNfKCk7dGFibGUudGFibGVSb3dzPXRoaXMuYWxlcnRzVGFibGVSb3dzXyhhbGVydHNCeVR5cGUpO3RhYmxlLnN1cHBvcnRzU2VsZWN0aW9uPXRydWU7dGFibGUuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uLWNoYW5nZWQnLGZ1bmN0aW9uKGUpe3ZhciByb3c9dGFibGUuc2VsZWN0ZWRUYWJsZVJvdztpZihyb3cpCityZXR1cm4gaW5kZXg7fSxvbk1vdXNlRG93bl86ZnVuY3Rpb24oZSl7dmFyIGluZGV4PXRoaXMuZ2V0RGF0YUluZGV4QXRDbGllbnRQb2ludF8oZS5jbGllbnRYLGUuY2xpZW50WSx0cnVlKTtpZihpbmRleCE9PXVuZGVmaW5lZCl7dHIudWkuYi50cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAodGhpcy5vbk1vdXNlTW92ZV8uYmluZCh0aGlzLGUuYnV0dG9uKSx0aGlzLm9uTW91c2VVcF8uYmluZCh0aGlzLGUuYnV0dG9uKSk7fQorZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGV2ZW50PW5ldyB0ci5iLkV2ZW50KCdpdGVtLW1vdXNlZG93bicpO2V2ZW50LmRhdGE9dGhpcy5kYXRhX1tpbmRleF07ZXZlbnQuaW5kZXg9aW5kZXg7ZXZlbnQuYnV0dG9ucz1lLmJ1dHRvbnM7dGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTt9LG9uTW91c2VNb3ZlXzpmdW5jdGlvbihidXR0b24sZSl7dmFyIGluZGV4PXRoaXMuZ2V0RGF0YUluZGV4QXRDbGllbnRQb2ludF8oZS5jbGllbnRYLGUuY2xpZW50WSxmYWxzZSk7aWYoZS5idXR0b25zIT09dW5kZWZpbmVkKXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt9Cit2YXIgZXZlbnQ9bmV3IHRyLmIuRXZlbnQoJ2l0ZW0tbW91c2Vtb3ZlJyk7ZXZlbnQuZGF0YT10aGlzLmRhdGFfW2luZGV4XTtldmVudC5pbmRleD1pbmRleDtldmVudC5idXR0b249YnV0dG9uO3RoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7fSxvbk1vdXNlVXBfOmZ1bmN0aW9uKGJ1dHRvbixlKXt2YXIgaW5kZXg9dGhpcy5nZXREYXRhSW5kZXhBdENsaWVudFBvaW50XyhlLmNsaWVudFgsZS5jbGllbnRZLGZhbHNlKTtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZXZlbnQ9bmV3IHRyLmIuRXZlbnQoJ2l0ZW0tbW91c2V1cCcpO2V2ZW50LmRhdGE9dGhpcy5kYXRhX1tpbmRleF07ZXZlbnQuaW5kZXg9aW5kZXg7ZXZlbnQuYnV0dG9uPWJ1dHRvbjt0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpO319O3JldHVybntMaW5lQ2hhcnQ6TGluZUNoYXJ0fTt9KTsndXNlIHN0cmljdCc7UG9seW1lcigndHItdWktZS1zLWFsZXJ0cy1zaWRlLXBhbmVsJyx7cmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnJhbmdlT2ZJbnRlcmVzdF89bmV3IHRyLmIuUmFuZ2UoKTt0aGlzLnNlbGVjdGlvbl89dW5kZWZpbmVkO30sZ2V0IG1vZGVsKCl7cmV0dXJuIHRoaXMubW9kZWxfO30sc2V0IG1vZGVsKG1vZGVsKXt0aGlzLm1vZGVsXz1tb2RlbDt0aGlzLnVwZGF0ZUNvbnRlbnRzXygpO30sZ2V0IGxpc3RlbmluZ1RvS2V5cygpe3JldHVybiBmYWxzZTt9LHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKXt9LHNldCByYW5nZU9mSW50ZXJlc3QocmFuZ2VPZkludGVyZXN0KXt9LHNlbGVjdEFsZXJ0c09mVHlwZTpmdW5jdGlvbihhbGVydFR5cGVTdHJpbmcpe3ZhciBhbGVydHNPZlR5cGU9dGhpcy5tb2RlbF8uYWxlcnRzLmZpbHRlcihmdW5jdGlvbihhbGVydCl7cmV0dXJuIGFsZXJ0LnRpdGxlPT09YWxlcnRUeXBlU3RyaW5nO30pO3ZhciBldmVudD1uZXcgdHIubW9kZWwuUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7ZXZlbnQuc2VsZWN0aW9uPW5ldyB0ci5tb2RlbC5FdmVudFNldChhbGVydHNPZlR5cGUpO3RoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7fSxhbGVydHNCeVR5cGVfOmZ1bmN0aW9uKGFsZXJ0cyl7dmFyIGFsZXJ0c0J5VHlwZT17fTthbGVydHMuZm9yRWFjaChmdW5jdGlvbihhbGVydCl7aWYoIWFsZXJ0c0J5VHlwZVthbGVydC50aXRsZV0pCithbGVydHNCeVR5cGVbYWxlcnQudGl0bGVdPVtdO2FsZXJ0c0J5VHlwZVthbGVydC50aXRsZV0ucHVzaChhbGVydCk7fSk7cmV0dXJuIGFsZXJ0c0J5VHlwZTt9LGFsZXJ0c1RhYmxlUm93c186ZnVuY3Rpb24oYWxlcnRzQnlUeXBlKXtyZXR1cm4gT2JqZWN0LmtleXMoYWxlcnRzQnlUeXBlKS5tYXAoZnVuY3Rpb24oa2V5KXtyZXR1cm57YWxlcnRUeXBlOmtleSxjb3VudDphbGVydHNCeVR5cGVba2V5XS5sZW5ndGh9O30pO30sYWxlcnRzVGFibGVDb2x1bW5zXzpmdW5jdGlvbigpe3JldHVyblt7dGl0bGU6J0FsZXJ0IHR5cGUnLHZhbHVlOmZ1bmN0aW9uKHJvdyl7cmV0dXJuIHJvdy5hbGVydFR5cGU7fSx3aWR0aDonMTgwcHgnfSx7dGl0bGU6J0NvdW50Jyx3aWR0aDonMTAwJScsdmFsdWU6ZnVuY3Rpb24ocm93KXtyZXR1cm4gcm93LmNvdW50O319XTt9LGNyZWF0ZUFsZXJ0c1RhYmxlXzpmdW5jdGlvbihhbGVydHMpe3ZhciBhbGVydHNCeVR5cGU9dGhpcy5hbGVydHNCeVR5cGVfKGFsZXJ0cyk7dmFyIHRhYmxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTt0YWJsZS50YWJsZUNvbHVtbnM9dGhpcy5hbGVydHNUYWJsZUNvbHVtbnNfKCk7dGFibGUudGFibGVSb3dzPXRoaXMuYWxlcnRzVGFibGVSb3dzXyhhbGVydHNCeVR5cGUpO3RhYmxlLnN1cHBvcnRzU2VsZWN0aW9uPXRydWU7dGFibGUuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uLWNoYW5nZWQnLGZ1bmN0aW9uKGUpe3ZhciByb3c9dGFibGUuc2VsZWN0ZWRUYWJsZVJvdztpZihyb3cpCiB0aGlzLnNlbGVjdEFsZXJ0c09mVHlwZShyb3cuYWxlcnRUeXBlKTt9LmJpbmQodGhpcykpO3JldHVybiB0YWJsZTt9LHVwZGF0ZUNvbnRlbnRzXzpmdW5jdGlvbigpe3RoaXMuJC5yZXN1bHRfYXJlYS50ZXh0Q29udGVudD0nJztpZih0aGlzLm1vZGVsXz09PXVuZGVmaW5lZCkKIHJldHVybjt2YXIgcGFuZWw9dGhpcy5jcmVhdGVBbGVydHNUYWJsZV8odGhpcy5tb2RlbF8uYWxlcnRzKTt0aGlzLiQucmVzdWx0X2FyZWEuYXBwZW5kQ2hpbGQocGFuZWwpO30sc3VwcG9ydHNNb2RlbDpmdW5jdGlvbihtKXtpZihtPT11bmRlZmluZWQpe3JldHVybntzdXBwb3J0ZWQ6ZmFsc2UscmVhc29uOidVbmtub3duIHRyYWNpbmcgbW9kZWwnfTt9ZWxzZSBpZihtLmFsZXJ0cy5sZW5ndGg9PT0wKXtyZXR1cm57c3VwcG9ydGVkOmZhbHNlLHJlYXNvbjonTm8gYWxlcnRzIGluIHRyYWNpbmcgbW9kZWwnfTt9Ci1yZXR1cm57c3VwcG9ydGVkOnRydWV9O30sZ2V0IHRleHRMYWJlbCgpe3JldHVybidBbGVydHMnO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLm1vZGVsJyxmdW5jdGlvbigpe3ZhciBTdGF0aXN0aWNzPXRyLmIuU3RhdGlzdGljczt2YXIgRlJBTUVfUEVSRl9DTEFTUz17R09PRDonZ29vZCcsQkFEOidiYWQnLFRFUlJJQkxFOid0ZXJyaWJsZScsTkVVVFJBTDonZ2VuZXJpY193b3JrJ307ZnVuY3Rpb24gRnJhbWUoYXNzb2NpYXRlZEV2ZW50cyx0aHJlYWRUaW1lUmFuZ2VzLG9wdF9hcmdzKXt0ci5tb2RlbC5FdmVudC5jYWxsKHRoaXMpO3RoaXMudGhyZWFkVGltZVJhbmdlcz10aHJlYWRUaW1lUmFuZ2VzO3RoaXMuYXNzb2NpYXRlZEV2ZW50cz1hc3NvY2lhdGVkRXZlbnRzO3RoaXMuYXJncz1vcHRfYXJnc3x8e307dGhpcy50aXRsZT0nRnJhbWUnO3RoaXMuc3RhcnQ9U3RhdGlzdGljcy5taW4odGhyZWFkVGltZVJhbmdlcyxmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydDt9KTt0aGlzLmVuZD1TdGF0aXN0aWNzLm1heCh0aHJlYWRUaW1lUmFuZ2VzLGZ1bmN0aW9uKHgpe3JldHVybiB4LmVuZDt9KTt0aGlzLnRvdGFsRHVyYXRpb249U3RhdGlzdGljcy5zdW0odGhyZWFkVGltZVJhbmdlcyxmdW5jdGlvbih4KXtyZXR1cm4geC5lbmQteC5zdGFydDt9KTt0aGlzLnBlcmZDbGFzcz1GUkFNRV9QRVJGX0NMQVNTLk5FVVRSQUw7fTtGcmFtZS5wcm90b3R5cGU9e19fcHJvdG9fXzp0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsc2V0IHBlcmZDbGFzcyhwZXJmQ2xhc3Mpe3RoaXMuY29sb3JJZD10ci5iLnVpLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUocGVyZkNsYXNzKTt0aGlzLnBlcmZDbGFzc189cGVyZkNsYXNzO30sZ2V0IHBlcmZDbGFzcygpe3JldHVybiB0aGlzLnBlcmZDbGFzc187fSxzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOmZ1bmN0aW9uKGFtb3VudCl7dGhpcy5zdGFydCs9YW1vdW50O3RoaXMuZW5kKz1hbW91bnQ7Zm9yKHZhciBpPTA7aTx0aGlzLnRocmVhZFRpbWVSYW5nZXMubGVuZ3RoO2krKyl7dGhpcy50aHJlYWRUaW1lUmFuZ2VzW2ldLnN0YXJ0Kz1hbW91bnQ7dGhpcy50aHJlYWRUaW1lUmFuZ2VzW2ldLmVuZCs9YW1vdW50O319LGFkZEJvdW5kc1RvUmFuZ2U6ZnVuY3Rpb24ocmFuZ2Upe3JhbmdlLmFkZFZhbHVlKHRoaXMuc3RhcnQpO3JhbmdlLmFkZFZhbHVlKHRoaXMuZW5kKTt9fTt0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKEZyYW1lLHtuYW1lOidmcmFtZScscGx1cmFsTmFtZTonZnJhbWVzJyxzaW5nbGVWaWV3RWxlbWVudE5hbWU6J3RyLWMtYS1zaW5nbGUtZnJhbWUtc3ViLXZpZXcnLG11bHRpVmlld0VsZW1lbnROYW1lOid0ci1jLWEtbXVsdGktZnJhbWUtc3ViLXZpZXcnfSk7cmV0dXJue0ZyYW1lOkZyYW1lLEZSQU1FX1BFUkZfQ0xBU1M6RlJBTUVfUEVSRl9DTEFTU307fSk7J3VzZSBzdHJpY3QnO3RyLmV4cG9ydFRvKCd0ci5lLmF1ZGl0cycsZnVuY3Rpb24oKXtmdW5jdGlvbiBtZXJnZVJhbmdlcyhpblJhbmdlcyxtZXJnZVRocmVzaG9sZCxtZXJnZUZ1bmN0aW9uKXtyZXR1cm4gbWVyZ2VFeHBsaWNpdFJhbmdlcyhpblJhbmdlcyxtZXJnZVRocmVzaG9sZCxtZXJnZUZ1bmN0aW9uLGZ1bmN0aW9uKHIpe3JldHVybiByLm1pbjt9LGZ1bmN0aW9uKHIpe3JldHVybiByLm1heDt9KTt9Ci1mdW5jdGlvbiBtZXJnZUV4cGxpY2l0UmFuZ2VzKGluUmFuZ2VzLG1lcmdlVGhyZXNob2xkLG1lcmdlRnVuY3Rpb24sb3B0X3N0YXJ0RnVuY3Rpb24sb3B0X2VuZEZ1bmN0aW9uKXt2YXIgc3RhcnRGdW5jdGlvbj1vcHRfc3RhcnRGdW5jdGlvbjt2YXIgZW5kRnVuY3Rpb249b3B0X2VuZEZ1bmN0aW9uO2lmKCFzdGFydEZ1bmN0aW9uKQotc3RhcnRGdW5jdGlvbj1mdW5jdGlvbihldmVudCl7cmV0dXJuIGV2ZW50LnN0YXJ0O307aWYoIWVuZEZ1bmN0aW9uKQotZW5kRnVuY3Rpb249ZnVuY3Rpb24oZXZlbnQpe3JldHVybiBldmVudC5lbmQ7fTt2YXIgcmVtYWluaW5nRXZlbnRzPWluUmFuZ2VzLnNsaWNlKCk7cmVtYWluaW5nRXZlbnRzLnNvcnQoZnVuY3Rpb24oeCx5KXtyZXR1cm4gc3RhcnRGdW5jdGlvbih4KS1zdGFydEZ1bmN0aW9uKHkpO30pO2lmKHJlbWFpbmluZ0V2ZW50cy5sZW5ndGg8PTEpe3ZhciBtZXJnZWQ9W107aWYocmVtYWluaW5nRXZlbnRzLmxlbmd0aD09MSl7bWVyZ2VkLnB1c2gobWVyZ2VGdW5jdGlvbihyZW1haW5pbmdFdmVudHMpKTt9CityZXR1cm57c3VwcG9ydGVkOnRydWV9O30sZ2V0IHRleHRMYWJlbCgpe3JldHVybidBbGVydHMnO319KTsndXNlIHN0cmljdCc7dHIuZXhwb3J0VG8oJ3RyLmInLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gY29udmVydEV2ZW50c1RvUmFuZ2VzKGV2ZW50cyl7cmV0dXJuIGV2ZW50cy5tYXAoZnVuY3Rpb24oZXZlbnQpe3JldHVybiB0ci5iLlJhbmdlLmZyb21FeHBsaWNpdFJhbmdlKGV2ZW50LnN0YXJ0LGV2ZW50LmVuZCk7fSk7fQorZnVuY3Rpb24gbWVyZ2VSYW5nZXMoaW5SYW5nZXMsbWVyZ2VUaHJlc2hvbGQsbWVyZ2VGdW5jdGlvbil7dmFyIHJlbWFpbmluZ0V2ZW50cz1pblJhbmdlcy5zbGljZSgpO3JlbWFpbmluZ0V2ZW50cy5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHgubWluLXkubWluO30pO2lmKHJlbWFpbmluZ0V2ZW50cy5sZW5ndGg8PTEpe3ZhciBtZXJnZWQ9W107aWYocmVtYWluaW5nRXZlbnRzLmxlbmd0aD09MSl7bWVyZ2VkLnB1c2gobWVyZ2VGdW5jdGlvbihyZW1haW5pbmdFdmVudHMpKTt9CiByZXR1cm4gbWVyZ2VkO30KLXZhciBtZXJnZWRFdmVudHM9W107dmFyIGN1cnJlbnRNZXJnZUJ1ZmZlcj1bXTt2YXIgcmlnaHRFZGdlO2Z1bmN0aW9uIGJlZ2luTWVyZ2luZygpe2N1cnJlbnRNZXJnZUJ1ZmZlci5wdXNoKHJlbWFpbmluZ0V2ZW50c1swXSk7cmVtYWluaW5nRXZlbnRzLnNwbGljZSgwLDEpO3JpZ2h0RWRnZT1lbmRGdW5jdGlvbihjdXJyZW50TWVyZ2VCdWZmZXJbMF0pO30KK3ZhciBtZXJnZWRFdmVudHM9W107dmFyIGN1cnJlbnRNZXJnZUJ1ZmZlcj1bXTt2YXIgcmlnaHRFZGdlO2Z1bmN0aW9uIGJlZ2luTWVyZ2luZygpe2N1cnJlbnRNZXJnZUJ1ZmZlci5wdXNoKHJlbWFpbmluZ0V2ZW50c1swXSk7cmVtYWluaW5nRXZlbnRzLnNwbGljZSgwLDEpO3JpZ2h0RWRnZT1jdXJyZW50TWVyZ2VCdWZmZXJbMF0ubWF4O30KIGZ1bmN0aW9uIGZsdXNoQ3VycmVudE1lcmdlQnVmZmVyKCl7aWYoY3VycmVudE1lcmdlQnVmZmVyLmxlbmd0aD09MCkKIHJldHVybjttZXJnZWRFdmVudHMucHVzaChtZXJnZUZ1bmN0aW9uKGN1cnJlbnRNZXJnZUJ1ZmZlcikpO2N1cnJlbnRNZXJnZUJ1ZmZlcj1bXTtpZihyZW1haW5pbmdFdmVudHMubGVuZ3RoIT0wKQogYmVnaW5NZXJnaW5nKCk7fQotYmVnaW5NZXJnaW5nKCk7d2hpbGUocmVtYWluaW5nRXZlbnRzLmxlbmd0aCl7dmFyIGN1cnJlbnRFdmVudD1yZW1haW5pbmdFdmVudHNbMF07dmFyIGRpc3RhbmNlRnJvbVJpZ2h0RWRnZT1zdGFydEZ1bmN0aW9uKGN1cnJlbnRFdmVudCktcmlnaHRFZGdlO2lmKGRpc3RhbmNlRnJvbVJpZ2h0RWRnZTxtZXJnZVRocmVzaG9sZCl7cmlnaHRFZGdlPU1hdGgubWF4KHJpZ2h0RWRnZSxlbmRGdW5jdGlvbihjdXJyZW50RXZlbnQpKTtyZW1haW5pbmdFdmVudHMuc3BsaWNlKDAsMSk7Y3VycmVudE1lcmdlQnVmZmVyLnB1c2goY3VycmVudEV2ZW50KTtjb250aW51ZTt9CitiZWdpbk1lcmdpbmcoKTt3aGlsZShyZW1haW5pbmdFdmVudHMubGVuZ3RoKXt2YXIgY3VycmVudEV2ZW50PXJlbWFpbmluZ0V2ZW50c1swXTt2YXIgZGlzdGFuY2VGcm9tUmlnaHRFZGdlPWN1cnJlbnRFdmVudC5taW4tcmlnaHRFZGdlO2lmKGRpc3RhbmNlRnJvbVJpZ2h0RWRnZTxtZXJnZVRocmVzaG9sZCl7cmlnaHRFZGdlPU1hdGgubWF4KHJpZ2h0RWRnZSxjdXJyZW50RXZlbnQubWF4KTtyZW1haW5pbmdFdmVudHMuc3BsaWNlKDAsMSk7Y3VycmVudE1lcmdlQnVmZmVyLnB1c2goY3VycmVudEV2ZW50KTtjb250aW51ZTt9CiBmbHVzaEN1cnJlbnRNZXJnZUJ1ZmZlcigpO30KIGZsdXNoQ3VycmVudE1lcmdlQnVmZmVyKCk7cmV0dXJuIG1lcmdlZEV2ZW50czt9Ci1mdW5jdGlvbiBmaW5kRW1wdHlSYW5nZXNCZXR3ZWVuRXhwbGljaXRSYW5nZXMoaW5SYW5nZXMsb3B0X3RvdGFsUmFuZ2Usb3B0X3N0YXJ0RnVuY3Rpb24sb3B0X2VuZEZ1bmN0aW9uKXt2YXIgc3RhcnRGdW5jdGlvbj1vcHRfc3RhcnRGdW5jdGlvbjtpZighc3RhcnRGdW5jdGlvbikKLXN0YXJ0RnVuY3Rpb249ZnVuY3Rpb24ocmFuZ2Upe3JldHVybiByYW5nZS5zdGFydDt9O3ZhciBlbmRGdW5jdGlvbj1vcHRfZW5kRnVuY3Rpb247aWYoIWVuZEZ1bmN0aW9uKQotZW5kRnVuY3Rpb249ZnVuY3Rpb24ocmFuZ2Upe3JldHVybiByYW5nZS5lbmQ7fTt2YXIgZW1wdHlSYW5nZXM9W107aWYoIWluUmFuZ2VzLmxlbmd0aCl7aWYob3B0X3RvdGFsUmFuZ2Upe2VtcHR5UmFuZ2VzLnB1c2godHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZShzdGFydEZ1bmN0aW9uKG9wdF90b3RhbFJhbmdlKSxlbmRGdW5jdGlvbihvcHRfdG90YWxSYW5nZSkpKTt9Ci1yZXR1cm4gZW1wdHlSYW5nZXM7fQotaW5SYW5nZXM9aW5SYW5nZXMuc2xpY2UoKTtpblJhbmdlcy5zb3J0KGZ1bmN0aW9uKHgseSl7cmV0dXJuIHN0YXJ0RnVuY3Rpb24oeCktc3RhcnRGdW5jdGlvbih5KTt9KTtpZihvcHRfdG90YWxSYW5nZSYmKHN0YXJ0RnVuY3Rpb24ob3B0X3RvdGFsUmFuZ2UpPHN0YXJ0RnVuY3Rpb24oaW5SYW5nZXNbMF0pKSl7ZW1wdHlSYW5nZXMucHVzaCh0ci5iLlJhbmdlLmZyb21FeHBsaWNpdFJhbmdlKHN0YXJ0RnVuY3Rpb24ob3B0X3RvdGFsUmFuZ2UpLHN0YXJ0RnVuY3Rpb24oaW5SYW5nZXNbMF0pKSk7fQorZnVuY3Rpb24gZmluZEVtcHR5UmFuZ2VzQmV0d2VlblJhbmdlcyhpblJhbmdlcyxvcHRfdG90YWxSYW5nZSl7aWYob3B0X3RvdGFsUmFuZ2UmJm9wdF90b3RhbFJhbmdlLmlzRW1wdHkpCitvcHRfdG90YWxSYW5nZT11bmRlZmluZWQ7dmFyIGVtcHR5UmFuZ2VzPVtdO2lmKCFpblJhbmdlcy5sZW5ndGgpe2lmKG9wdF90b3RhbFJhbmdlKQorZW1wdHlSYW5nZXMucHVzaChvcHRfdG90YWxSYW5nZSk7cmV0dXJuIGVtcHR5UmFuZ2VzO30KK2luUmFuZ2VzPWluUmFuZ2VzLnNsaWNlKCk7aW5SYW5nZXMuc29ydChmdW5jdGlvbih4LHkpe3JldHVybiB4Lm1pbi15Lm1pbjt9KTtpZihvcHRfdG90YWxSYW5nZSYmKG9wdF90b3RhbFJhbmdlLm1pbjxpblJhbmdlc1swXS5taW4pKXtlbXB0eVJhbmdlcy5wdXNoKHRyLmIuUmFuZ2UuZnJvbUV4cGxpY2l0UmFuZ2Uob3B0X3RvdGFsUmFuZ2UubWluLGluUmFuZ2VzWzBdLm1pbikpO30KIGluUmFuZ2VzLmZvckVhY2goZnVuY3Rpb24ocmFuZ2UsaW5kZXgpe2Zvcih2YXIgb3RoZXJJbmRleD0wO290aGVySW5kZXg8aW5SYW5nZXMubGVuZ3RoOysrb3RoZXJJbmRleCl7aWYoaW5kZXg9PT1vdGhlckluZGV4KQotY29udGludWU7dmFyIG90aGVyPWluUmFuZ2VzW290aGVySW5kZXhdO2lmKHN0YXJ0RnVuY3Rpb24ob3RoZXIpPmVuZEZ1bmN0aW9uKHJhbmdlKSl7ZW1wdHlSYW5nZXMucHVzaCh0ci5iLlJhbmdlLmZyb21FeHBsaWNpdFJhbmdlKGVuZEZ1bmN0aW9uKHJhbmdlKSxzdGFydEZ1bmN0aW9uKG90aGVyKSkpO3JldHVybjt9Ci1pZihlbmRGdW5jdGlvbihvdGhlcik+ZW5kRnVuY3Rpb24ocmFuZ2UpKXtyZXR1cm47fX0KLWlmKG9wdF90b3RhbFJhbmdlJiYoZW5kRnVuY3Rpb24ocmFuZ2UpPGVuZEZ1bmN0aW9uKG9wdF90b3RhbFJhbmdlKSkpe2VtcHR5UmFuZ2VzLnB1c2godHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZShlbmRGdW5jdGlvbihyYW5nZSksZW5kRnVuY3Rpb24ob3B0X3RvdGFsUmFuZ2UpKSk7fX0pO3JldHVybiBlbXB0eVJhbmdlczt9Ci1yZXR1cm57ZmluZEVtcHR5UmFuZ2VzQmV0d2VlbkV4cGxpY2l0UmFuZ2VzOmZpbmRFbXB0eVJhbmdlc0JldHdlZW5FeHBsaWNpdFJhbmdlcyxtZXJnZUV4cGxpY2l0UmFuZ2VzOm1lcmdlRXhwbGljaXRSYW5nZXMsbWVyZ2VSYW5nZXM6bWVyZ2VSYW5nZXN9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS5hdWRpdHMnLGZ1bmN0aW9uKCl7dmFyIEZyYW1lPXRyLm1vZGVsLkZyYW1lO3ZhciBTdGF0aXN0aWNzPXRyLmIuU3RhdGlzdGljczt2YXIgVUlfVEhSRUFEX0RSQVdfTkFNRVM9eydwZXJmb3JtVHJhdmVyc2Fscyc6dHJ1ZSwnQ2hvcmVvZ3JhcGhlciNkb0ZyYW1lJzp0cnVlfTt2YXIgUkVOREVSX1RIUkVBRF9EUkFXX05BTUU9J0RyYXdGcmFtZSc7dmFyIFJFTkRFUl9USFJFQURfSU5ERVBfRFJBV19OQU1FPSdkb0ZyYW1lJzt2YXIgVEhSRUFEX1NZTkNfTkFNRT0nc3luY0ZyYW1lU3RhdGUnO2Z1bmN0aW9uIGdldFNsaWNlc0ZvclRocmVhZFRpbWVSYW5nZXModGhyZWFkVGltZVJhbmdlcyl7dmFyIHJldD1bXTt0aHJlYWRUaW1lUmFuZ2VzLmZvckVhY2goZnVuY3Rpb24odGhyZWFkVGltZVJhbmdlKXt2YXIgc2xpY2VzPVtdO3RocmVhZFRpbWVSYW5nZS50aHJlYWQuc2xpY2VHcm91cC5pdGVyU2xpY2VzSW5UaW1lUmFuZ2UoZnVuY3Rpb24oc2xpY2Upe3NsaWNlcy5wdXNoKHNsaWNlKTt9LHRocmVhZFRpbWVSYW5nZS5zdGFydCx0aHJlYWRUaW1lUmFuZ2UuZW5kKTtyZXQucHVzaC5hcHBseShyZXQsc2xpY2VzKTt9KTtyZXR1cm4gcmV0O30KK2NvbnRpbnVlO3ZhciBvdGhlcj1pblJhbmdlc1tvdGhlckluZGV4XTtpZihvdGhlci5taW4+cmFuZ2UubWF4KXtlbXB0eVJhbmdlcy5wdXNoKHRyLmIuUmFuZ2UuZnJvbUV4cGxpY2l0UmFuZ2UocmFuZ2UubWF4LG90aGVyLm1pbikpO3JldHVybjt9CitpZihvdGhlci5tYXg+cmFuZ2UubWF4KXtyZXR1cm47fX0KK2lmKG9wdF90b3RhbFJhbmdlJiYocmFuZ2UubWF4PG9wdF90b3RhbFJhbmdlLm1heCkpe2VtcHR5UmFuZ2VzLnB1c2godHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZShyYW5nZS5tYXgsb3B0X3RvdGFsUmFuZ2UubWF4KSk7fX0pO3JldHVybiBlbXB0eVJhbmdlczt9CityZXR1cm57Y29udmVydEV2ZW50c1RvUmFuZ2VzOmNvbnZlcnRFdmVudHNUb1JhbmdlcyxmaW5kRW1wdHlSYW5nZXNCZXR3ZWVuUmFuZ2VzOmZpbmRFbXB0eVJhbmdlc0JldHdlZW5SYW5nZXMsbWVyZ2VSYW5nZXM6bWVyZ2VSYW5nZXN9O30pOyd1c2Ugc3RyaWN0Jzt0ci5leHBvcnRUbygndHIuZS5hdWRpdHMnLGZ1bmN0aW9uKCl7dmFyIEZyYW1lPXRyLm1vZGVsLkZyYW1lO3ZhciBTdGF0aXN0aWNzPXRyLmIuU3RhdGlzdGljczt2YXIgVUlfVEhSRUFEX0RSQVdfTkFNRVM9eydwZXJmb3JtVHJhdmVyc2Fscyc6dHJ1ZSwnQ2hvcmVvZ3JhcGhlciNkb0ZyYW1lJzp0cnVlfTt2YXIgUkVOREVSX1RIUkVBRF9EUkFXX05BTUU9J0RyYXdGcmFtZSc7dmFyIFJFTkRFUl9USFJFQURfSU5ERVBfRFJBV19OQU1FPSdkb0ZyYW1lJzt2YXIgVEhSRUFEX1NZTkNfTkFNRT0nc3luY0ZyYW1lU3RhdGUnO2Z1bmN0aW9uIGdldFNsaWNlc0ZvclRocmVhZFRpbWVSYW5nZXModGhyZWFkVGltZVJhbmdlcyl7dmFyIHJldD1bXTt0aHJlYWRUaW1lUmFuZ2VzLmZvckVhY2goZnVuY3Rpb24odGhyZWFkVGltZVJhbmdlKXt2YXIgc2xpY2VzPVtdO3RocmVhZFRpbWVSYW5nZS50aHJlYWQuc2xpY2VHcm91cC5pdGVyU2xpY2VzSW5UaW1lUmFuZ2UoZnVuY3Rpb24oc2xpY2Upe3NsaWNlcy5wdXNoKHNsaWNlKTt9LHRocmVhZFRpbWVSYW5nZS5zdGFydCx0aHJlYWRUaW1lUmFuZ2UuZW5kKTtyZXQucHVzaC5hcHBseShyZXQsc2xpY2VzKTt9KTtyZXR1cm4gcmV0O30KIGZ1bmN0aW9uIG1ha2VGcmFtZSh0aHJlYWRUaW1lUmFuZ2VzLHN1cmZhY2VGbGluZ2VyKXt2YXIgYXJncz17fTtpZihzdXJmYWNlRmxpbmdlciYmc3VyZmFjZUZsaW5nZXIuaGFzVnN5bmNzKXt2YXIgc3RhcnQ9U3RhdGlzdGljcy5taW4odGhyZWFkVGltZVJhbmdlcyxmdW5jdGlvbih0aHJlYWRUaW1lUmFuZ2VzKXtyZXR1cm4gdGhyZWFkVGltZVJhbmdlcy5zdGFydDt9KTthcmdzWydkZWFkbGluZSddPXN1cmZhY2VGbGluZ2VyLmdldEZyYW1lRGVhZGxpbmUoc3RhcnQpO2FyZ3NbJ2ZyYW1lS2lja29mZiddPXN1cmZhY2VGbGluZ2VyLmdldEZyYW1lS2lja29mZihzdGFydCk7fQogdmFyIGV2ZW50cz1nZXRTbGljZXNGb3JUaHJlYWRUaW1lUmFuZ2VzKHRocmVhZFRpbWVSYW5nZXMpO3JldHVybiBuZXcgRnJhbWUoZXZlbnRzLHRocmVhZFRpbWVSYW5nZXMsYXJncyk7fQogZnVuY3Rpb24gZmluZE92ZXJsYXBwaW5nRHJhd0ZyYW1lKHJlbmRlclRocmVhZCx0aW1lKXtpZighcmVuZGVyVGhyZWFkKQpAQCAtNDExNiw3ICs0NjQzLDcgQEAKIGZ1bmN0aW9uIGdldFByZVRyYXZlcnNhbFdvcmtSYW5nZXModWlUaHJlYWQpe2lmKCF1aVRocmVhZCkKIHJldHVybltdO3ZhciBwcmVGcmFtZUV2ZW50cz1bXTt1aVRocmVhZC5zbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXtpZihzbGljZS50aXRsZT09J29idGFpblZpZXcnfHxzbGljZS50aXRsZT09J3NldHVwTGlzdEl0ZW0nfHxzbGljZS50aXRsZT09J2RlbGl2ZXJJbnB1dEV2ZW50J3x8c2xpY2UudGl0bGU9PSdSViBTY3JvbGwnKQogcHJlRnJhbWVFdmVudHMucHVzaChzbGljZSk7fSk7dWlUaHJlYWQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKXtpZihzbGljZS50aXRsZT09J2RlbGl2ZXJJbnB1dEV2ZW50JykKLXByZUZyYW1lRXZlbnRzLnB1c2goc2xpY2UpO30pO3JldHVybiB0ci5lLmF1ZGl0cy5tZXJnZUV4cGxpY2l0UmFuZ2VzKHByZUZyYW1lRXZlbnRzLDMsZnVuY3Rpb24oZXZlbnRzKXtyZXR1cm57c3RhcnQ6ZXZlbnRzWzBdLnN0YXJ0LGVuZDpldmVudHNbZXZlbnRzLmxlbmd0aC0xXS5lbmR9O30pO30KK3ByZUZyYW1lRXZlbnRzLnB1c2goc2xpY2UpO30pO3JldHVybiB0ci5iLm1lcmdlUmFuZ2VzKHRyLmIuY29udmVydEV2ZW50c1RvUmFuZ2VzKHByZUZyYW1lRXZlbnRzKSwzLGZ1bmN0aW9uKGV2ZW50cyl7cmV0dXJue3N0YXJ0OmV2ZW50c1swXS5taW4sZW5kOmV2ZW50c1tldmVudHMubGVuZ3RoLTFdLm1heH07fSk7fQogZnVuY3Rpb24gZ2V0RnJhbWVTdGFydFRpbWUodHJhdmVyc2FsU3RhcnQscHJlVHJhdmVyc2FsV29ya1Jhbmdlcyl7dmFyIHByZVRyYXZlcnNhbFdvcmtSYW5nZT10ci5iLmZpbmRDbG9zZXN0SW50ZXJ2YWxJblNvcnRlZEludGVydmFscyhwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzLGZ1bmN0aW9uKHJhbmdlKXtyZXR1cm4gcmFuZ2Uuc3RhcnR9LGZ1bmN0aW9uKHJhbmdlKXtyZXR1cm4gcmFuZ2UuZW5kfSx0cmF2ZXJzYWxTdGFydCwzKTtpZihwcmVUcmF2ZXJzYWxXb3JrUmFuZ2UpCiByZXR1cm4gcHJlVHJhdmVyc2FsV29ya1JhbmdlLnN0YXJ0O3JldHVybiB0cmF2ZXJzYWxTdGFydDt9CiBmdW5jdGlvbiBnZXRVaVRocmVhZERyaXZlbkZyYW1lcyhhcHApe2lmKCFhcHAudWlUaHJlYWQpCkBAIC00MTYzLDcgKzQ2OTAsNyBAQAogcmV0dXJuIGZhbHNlO30KIHZhciBBdWRpdG9yPXRyLmMuQXVkaXRvcjt2YXIgQW5kcm9pZE1vZGVsSGVscGVyPXRyLmUuYXVkaXRzLkFuZHJvaWRNb2RlbEhlbHBlcjtmdW5jdGlvbiBmcmFtZU1pc3NlZERlYWRsaW5lKGZyYW1lKXtyZXR1cm4gZnJhbWUuYXJnc1snZGVhZGxpbmUnXSYmZnJhbWUuYXJnc1snZGVhZGxpbmUnXTxmcmFtZS5lbmQ7fQogZnVuY3Rpb24gRG9jTGlua0J1aWxkZXIoKXt0aGlzLmRvY0xpbmtzPVtdO30KLURvY0xpbmtCdWlsZGVyLnByb3RvdHlwZT17YWRkQXBwVmlkZW86ZnVuY3Rpb24obmFtZSx2aWRlb0lkKXt0aGlzLmRvY0xpbmtzLnB1c2goe2xhYmVsOidWaWRlbyBMaW5rJyx0ZXh0Q29udGVudDooJ0FuZHJvaWQgUGVyZm9ybWFuY2UgUGF0dGVybnM6ICcrbmFtZSksaHJlZjonaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/bGlzdD1QTFd6NXJKMkVLS2M5Q0J4cjNCVmpQVFBvRFBMZFBJRkNFJnY9Jyt2aWRlb0lkfSk7cmV0dXJuIHRoaXM7fSxhZGREYWNSZWY6ZnVuY3Rpb24obmFtZSxsaW5rKXt0aGlzLmRvY0xpbmtzLnB1c2goe2xhYmVsOidEb2MgTGluaycsdGV4dENvbnRlbnQ6KG5hbWUrJyBkb2N1bWVudGF0aW9uJyksaHJlZjonaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlLycrbGlua30pO3JldHVybiB0aGlzO30sYnVpbGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb2NMaW5rczt9fTtmdW5jdGlvbiBBbmRyb2lkQXVkaXRvcihtb2RlbCl7dGhpcy5tb2RlbD1tb2RlbDt2YXIgaGVscGVyPW5ldyBBbmRyb2lkTW9kZWxIZWxwZXIobW9kZWwpO2lmKGhlbHBlci5hcHBzLmxlbmd0aHx8aGVscGVyLnN1cmZhY2VGbGluZ2VyKQorRG9jTGlua0J1aWxkZXIucHJvdG90eXBlPXthZGRBcHBWaWRlbzpmdW5jdGlvbihuYW1lLHZpZGVvSWQpe3RoaXMuZG9jTGlua3MucHVzaCh7bGFiZWw6J1ZpZGVvIExpbmsnLHRleHRDb250ZW50OignQW5kcm9pZCBQZXJmb3JtYW5jZSBQYXR0ZXJuczogJytuYW1lKSxocmVmOidodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD9saXN0PVBMV3o1ckoyRUtLYzlDQnhyM0JWalBUUG9EUExkUElGQ0Umdj0nK3ZpZGVvSWR9KTtyZXR1cm4gdGhpczt9LGFkZERhY1JlZjpmdW5jdGlvbihuYW1lLGxpbmspe3RoaXMuZG9jTGlua3MucHVzaCh7bGFiZWw6J0RvYyBMaW5rJyx0ZXh0Q29udGVudDoobmFtZSsnIGRvY3VtZW50YXRpb24nKSxocmVmOidodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvJytsaW5rfSk7cmV0dXJuIHRoaXM7fSxidWlsZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvY0xpbmtzO319O2Z1bmN0aW9uIEFuZHJvaWRBdWRpdG9yKG1vZGVsKXtBdWRpdG9yLmNhbGwodGhpcyxtb2RlbCk7dmFyIGhlbHBlcj1uZXcgQW5kcm9pZE1vZGVsSGVscGVyKG1vZGVsKTtpZihoZWxwZXIuYXBwcy5sZW5ndGh8fGhlbHBlci5zdXJmYWNlRmxpbmdlcikKIHRoaXMuaGVscGVyPWhlbHBlcjt9O0FuZHJvaWRBdWRpdG9yLnZpZXdBbHBoYUFsZXJ0SW5mb189bmV3IEV2ZW50SW5mbygnSW5lZmZpY2llbnQgVmlldyBhbHBoYSB1c2FnZScsJ1NldHRpbmcgYW4gYWxwaGEgYmV0d2VlbiAwIGFuZCAxIGhhcyBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBjb3N0cywgaWYgb25lIG9mIHRoZSBmYXN0IGFscGhhIHBhdGhzIGlzIG5vdCB1c2VkLicsbmV3IERvY0xpbmtCdWlsZGVyKCkuYWRkQXBwVmlkZW8oJ0hpZGRlbiBDb3N0IG9mIFRyYW5zcGFyZW5jeScsJ3dJeThnOHlOaE5rJykuYWRkRGFjUmVmKCdWaWV3I3NldEFscGhhKCknLCdhbmRyb2lkL3ZpZXcvVmlldy5odG1sI3NldEFscGhhKGZsb2F0KScpLmJ1aWxkKCkpO0FuZHJvaWRBdWRpdG9yLnNhdmVMYXllckFsZXJ0SW5mb189bmV3IEV2ZW50SW5mbygnRXhwZW5zaXZlIHJlbmRlcmluZyB3aXRoIENhbnZhcyNzYXZlTGF5ZXIoKScsJ0NhbnZhcyNzYXZlTGF5ZXIoKSBpbmN1cnMgZXh0cmVtZWx5IGhpZ2ggcmVuZGVyaW5nIGNvc3QuIFRoZXkgZGlzcnVwdCB0aGUgcmVuZGVyaW5nIHBpcGVsaW5lIHdoZW4gZHJhd24sIGZvcmNpbmcgYSBmbHVzaCBvZiBkcmF3aW5nIGNvbnRlbnQuIEluc3RlYWQgdXNlIFZpZXcgaGFyZHdhcmUgbGF5ZXJzLCBvciBzdGF0aWMgQml0bWFwcy4gVGhpcyBlbmFibGVzIHRoZSBvZmZzY3JlZW4gYnVmZmVycyB0byBiZSByZXVzZWQgaW4gYmV0d2VlbiBmcmFtZXMsIGFuZCBhdm9pZHMgdGhlIGRpc3J1cHRpdmUgcmVuZGVyIHRhcmdldCBzd2l0Y2guJyxuZXcgRG9jTGlua0J1aWxkZXIoKS5hZGRBcHBWaWRlbygnSGlkZGVuIENvc3Qgb2YgVHJhbnNwYXJlbmN5Jywnd0l5OGc4eU5oTmsnKS5hZGREYWNSZWYoJ0NhbnZhcyNzYXZlTGF5ZXJBbHBoYSgpJywnYW5kcm9pZC9ncmFwaGljcy9DYW52YXMuaHRtbCNzYXZlTGF5ZXJBbHBoYShhbmRyb2lkLmdyYXBoaWNzLlJlY3RGLCBpbnQsIGludCknKS5idWlsZCgpKTtBbmRyb2lkQXVkaXRvci5nZXRTYXZlTGF5ZXJBbGVydHNfPWZ1bmN0aW9uKGZyYW1lKXt2YXIgYmFkQWxwaGFSZWdFeD0vXiguKykgYWxwaGEgY2F1c2VkICh1bmNsaXBwZWQgKT9zYXZlTGF5ZXIgKFxkKyl4KFxkKykkLzt2YXIgc2F2ZUxheWVyUmVnRXg9L14odW5jbGlwcGVkICk/c2F2ZUxheWVyIChcZCspeChcZCspJC87dmFyIHJldD1bXTt2YXIgZXZlbnRzPVtdO2ZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihzbGljZSl7dmFyIG1hdGNoPWJhZEFscGhhUmVnRXguZXhlYyhzbGljZS50aXRsZSk7aWYobWF0Y2gpe3ZhciBhcmdzPXsndmlldyBuYW1lJzptYXRjaFsxXSx3aWR0aDpwYXJzZUludChtYXRjaFszXSksaGVpZ2h0OnBhcnNlSW50KG1hdGNoWzRdKX07cmV0LnB1c2gobmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLnZpZXdBbHBoYUFsZXJ0SW5mb18sc2xpY2Uuc3RhcnQsW3NsaWNlXSxhcmdzKSk7fWVsc2UgaWYoc2F2ZUxheWVyUmVnRXgudGVzdChzbGljZS50aXRsZSkpCiBldmVudHMucHVzaChzbGljZSk7fSx0aGlzKTtpZihldmVudHMubGVuZ3RoPnJldC5sZW5ndGgpe3ZhciB1bmNsaXBwZWRTZWVuPVN0YXRpc3RpY3Muc3VtKGV2ZW50cyxmdW5jdGlvbihzbGljZSl7cmV0dXJuIHNhdmVMYXllclJlZ0V4LmV4ZWMoc2xpY2UudGl0bGUpWzFdPzE6MDt9KTt2YXIgY2xpcHBlZFNlZW49ZXZlbnRzLmxlbmd0aC11bmNsaXBwZWRTZWVuO3ZhciBlYXJsaWVzdFN0YXJ0PVN0YXRpc3RpY3MubWluKGV2ZW50cyxmdW5jdGlvbihzbGljZSl7cmV0dXJuIHNsaWNlLnN0YXJ0O30pO3ZhciBhcmdzPXsnVW5jbGlwcGVkIHNhdmVMYXllciBjb3VudCAoZXNwZWNpYWxseSBiYWQhKSc6dW5jbGlwcGVkU2VlbiwnQ2xpcHBlZCBzYXZlTGF5ZXIgY291bnQnOmNsaXBwZWRTZWVufTtldmVudHMucHVzaChmcmFtZSk7cmV0LnB1c2gobmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLnNhdmVMYXllckFsZXJ0SW5mb18sZWFybGllc3RTdGFydCxldmVudHMsYXJncykpO30KIHJldHVybiByZXQ7fTtBbmRyb2lkQXVkaXRvci5wYXRoQWxlcnRJbmZvXz1uZXcgRXZlbnRJbmZvKCdQYXRoIHRleHR1cmUgY2h1cm4nLCdQYXRocyBhcmUgZHJhd24gd2l0aCBhIG1hc2sgdGV4dHVyZSwgc28gd2hlbiBhIHBhdGggaXMgbW9kaWZpZWQgLyBuZXdseSBkcmF3biwgdGhhdCB0ZXh0dXJlIG11c3QgYmUgZ2VuZXJhdGVkIGFuZCB1cGxvYWRlZCB0byB0aGUgR1BVLiBFbnN1cmUgdGhhdCB5b3UgY2FjaGUgcGF0aHMgYmV0d2VlbiBmcmFtZXMgYW5kIGRvIG5vdCB1bm5lY2Vzc2FyaWx5IGNhbGwgUGF0aCNyZXNldCgpLiBZb3UgY2FuIGN1dCBkb3duIG9uIHRoaXMgY29zdCBieSBzaGFyaW5nIFBhdGggb2JqZWN0IGluc3RhbmNlcyBiZXR3ZWVuIGRyYXdhYmxlcy92aWV3cy4nKTtBbmRyb2lkQXVkaXRvci5nZXRQYXRoQWxlcnRfPWZ1bmN0aW9uKGZyYW1lKXt2YXIgdXBsb2FkUmVnRXg9L15HZW5lcmF0ZSBQYXRoIFRleHR1cmUkLzt2YXIgZXZlbnRzPWZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZmlsdGVyKGZ1bmN0aW9uKGV2ZW50KXtyZXR1cm4gZXZlbnQudGl0bGU9PSdHZW5lcmF0ZSBQYXRoIFRleHR1cmUnO30pO3ZhciBzdGFydD1TdGF0aXN0aWNzLm1pbihldmVudHMsZ2V0U3RhcnQpO3ZhciBkdXJhdGlvbj1TdGF0aXN0aWNzLnN1bShldmVudHMsZ2V0RHVyYXRpb24pO2lmKGR1cmF0aW9uPDMpCkBAIC00MjA3LDcgKzQ3MzQsNyBAQAogYWxlcnRzLnB1c2goYWxlcnQpO3ZhciBhbGVydD1BbmRyb2lkQXVkaXRvci5nZXRCbG9ja2luZ0djQWxlcnRfKGZyYW1lKTtpZihhbGVydCkKIGFsZXJ0cy5wdXNoKGFsZXJ0KTt2YXIgYWxlcnQ9QW5kcm9pZEF1ZGl0b3IuZ2V0TG9ja0NvbnRlbnRpb25BbGVydF8oZnJhbWUpO2lmKGFsZXJ0KQogYWxlcnRzLnB1c2goYWxlcnQpO3ZhciBhbGVydD1BbmRyb2lkQXVkaXRvci5nZXRTY2hlZHVsaW5nQWxlcnRfKGZyYW1lKTtpZihhbGVydCkKLWFsZXJ0cy5wdXNoKGFsZXJ0KTt9KTt9LHRoaXMpO3RoaXMuYWRkUmVuZGVyaW5nSW50ZXJhY3Rpb25SZWNvcmRzKCk7dGhpcy5hZGRJbnB1dEludGVyYWN0aW9uUmVjb3JkcygpO30sYWRkUmVuZGVyaW5nSW50ZXJhY3Rpb25SZWNvcmRzOmZ1bmN0aW9uKCl7dmFyIGV2ZW50cz1bXTt0aGlzLmhlbHBlci5hcHBzLmZvckVhY2goZnVuY3Rpb24oYXBwKXtldmVudHMucHVzaC5hcHBseShldmVudHMsYXBwLmdldEFuaW1hdGlvbkFzeW5jU2xpY2VzKCkpO2V2ZW50cy5wdXNoLmFwcGx5KGV2ZW50cyxhcHAuZ2V0RnJhbWVzKCkpO30pO3ZhciBtZXJnZXJGdW5jdGlvbj1mdW5jdGlvbihldmVudHMpe3ZhciBpcj1uZXcgSW50ZXJhY3Rpb25SZWNvcmQoJ1JlbmRlcmluZycsdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoJ210X3JlbmRlcmluZycpLGV2ZW50c1swXS5zdGFydCxldmVudHNbZXZlbnRzLmxlbmd0aC0xXS5lbmQtZXZlbnRzWzBdLnN0YXJ0KTt0aGlzLm1vZGVsLmFkZEludGVyYWN0aW9uUmVjb3JkKGlyKTt9LmJpbmQodGhpcyk7dHIuZS5hdWRpdHMubWVyZ2VFeHBsaWNpdFJhbmdlcyhldmVudHMsMzAsbWVyZ2VyRnVuY3Rpb24pO30sYWRkSW5wdXRJbnRlcmFjdGlvblJlY29yZHM6ZnVuY3Rpb24oKXt2YXIgaW5wdXRTYW1wbGVzPVtdO3RoaXMuaGVscGVyLmFwcHMuZm9yRWFjaChmdW5jdGlvbihhcHApe2lucHV0U2FtcGxlcy5wdXNoLmFwcGx5KGlucHV0U2FtcGxlcyxhcHAuZ2V0SW5wdXRTYW1wbGVzKCkpO30pO3ZhciBtZXJnZXJGdW5jdGlvbj1mdW5jdGlvbihldmVudHMpe3ZhciBpcj1uZXcgSW50ZXJhY3Rpb25SZWNvcmQoJ0lucHV0Jyx0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygnbXRfaW5wdXQnKSxldmVudHNbMF0udGltZXN0YW1wLGV2ZW50c1tldmVudHMubGVuZ3RoLTFdLnRpbWVzdGFtcC1ldmVudHNbMF0udGltZXN0YW1wKTt0aGlzLm1vZGVsLmFkZEludGVyYWN0aW9uUmVjb3JkKGlyKTt9LmJpbmQodGhpcyk7dmFyIHRpbWVzdGFtcEZ1bmN0aW9uPWZ1bmN0aW9uKHgpe3JldHVybiB4LnRpbWVzdGFtcDt9O3RyLmUuYXVkaXRzLm1lcmdlRXhwbGljaXRSYW5nZXMoaW5wdXRTYW1wbGVzLDMwLG1lcmdlckZ1bmN0aW9uLHRpbWVzdGFtcEZ1bmN0aW9uLHRpbWVzdGFtcEZ1bmN0aW9uKTt9fTtBdWRpdG9yLnJlZ2lzdGVyKEFuZHJvaWRBdWRpdG9yKTtmdW5jdGlvbiBBcHBBbm5vdGF0b3IoKXt0aGlzLnRpdGxlSW5mb0xvb2t1cD17fTt0aGlzLnRpdGxlUGFyZW50TG9va3VwPXt9O3RoaXMuYnVpbGRfKCk7fQorYWxlcnRzLnB1c2goYWxlcnQpO30pO30sdGhpcyk7dGhpcy5hZGRSZW5kZXJpbmdJbnRlcmFjdGlvblJlY29yZHMoKTt0aGlzLmFkZElucHV0SW50ZXJhY3Rpb25SZWNvcmRzKCk7fSxhZGRSZW5kZXJpbmdJbnRlcmFjdGlvblJlY29yZHM6ZnVuY3Rpb24oKXt2YXIgZXZlbnRzPVtdO3RoaXMuaGVscGVyLmFwcHMuZm9yRWFjaChmdW5jdGlvbihhcHApe2V2ZW50cy5wdXNoLmFwcGx5KGV2ZW50cyxhcHAuZ2V0QW5pbWF0aW9uQXN5bmNTbGljZXMoKSk7ZXZlbnRzLnB1c2guYXBwbHkoZXZlbnRzLGFwcC5nZXRGcmFtZXMoKSk7fSk7dmFyIG1lcmdlckZ1bmN0aW9uPWZ1bmN0aW9uKGV2ZW50cyl7dmFyIGlyPW5ldyBJbnRlcmFjdGlvblJlY29yZCgnUmVuZGVyaW5nJyx0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygnbXRfcmVuZGVyaW5nJyksZXZlbnRzWzBdLm1pbixldmVudHNbZXZlbnRzLmxlbmd0aC0xXS5tYXgtZXZlbnRzWzBdLm1pbik7dGhpcy5tb2RlbC5hZGRJbnRlcmFjdGlvblJlY29yZChpcik7fS5iaW5kKHRoaXMpO3RyLmIubWVyZ2VSYW5nZXModHIuYi5jb252ZXJ0RXZlbnRzVG9SYW5nZXMoZXZlbnRzKSwzMCxtZXJnZXJGdW5jdGlvbik7fSxhZGRJbnB1dEludGVyYWN0aW9uUmVjb3JkczpmdW5jdGlvbigpe3ZhciBpbnB1dFNhbXBsZXM9W107dGhpcy5oZWxwZXIuYXBwcy5mb3JFYWNoKGZ1bmN0aW9uKGFwcCl7aW5wdXRTYW1wbGVzLnB1c2guYXBwbHkoaW5wdXRTYW1wbGVzLGFwcC5nZXRJbnB1dFNhbXBsZXMoKSk7fSk7dmFyIG1lcmdlckZ1bmN0aW9uPWZ1bmN0aW9uKGV2ZW50cyl7dmFyIGlyPW5ldyBJbnRlcmFjdGlvblJlY29yZCgnSW5wdXQnLHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKCdtdF9pbnB1dCcpLGV2ZW50c1swXS5taW4sZXZlbnRzW2V2ZW50cy5sZW5ndGgtMV0ubWF4LWV2ZW50c1swXS5taW4pO3RoaXMubW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQoaXIpO30uYmluZCh0aGlzKTt2YXIgaW5wdXRSYW5nZXM9aW5wdXRTYW1wbGVzLm1hcChmdW5jdGlvbihzYW1wbGUpe3JldHVybiB0ci5iLlJhbmdlLmZyb21FeHBsaWNpdFJhbmdlKHNhbXBsZS50aW1lc3RhbXAsc2FtcGxlLnRpbWVzdGFtcCk7fSk7dHIuYi5tZXJnZVJhbmdlcyhpbnB1dFJhbmdlcywzMCxtZXJnZXJGdW5jdGlvbik7fX07QXVkaXRvci5yZWdpc3RlcihBbmRyb2lkQXVkaXRvcik7ZnVuY3Rpb24gQXBwQW5ub3RhdG9yKCl7dGhpcy50aXRsZUluZm9Mb29rdXA9e307dGhpcy50aXRsZVBhcmVudExvb2t1cD17fTt0aGlzLmJ1aWxkXygpO30KIEFwcEFubm90YXRvci5wcm90b3R5cGU9e2J1aWxkXzpmdW5jdGlvbigpe3ZhciByZWdpc3RlckV2ZW50SW5mbz1mdW5jdGlvbihkaWN0KXt0aGlzLnRpdGxlSW5mb0xvb2t1cFtkaWN0LnRpdGxlXT1uZXcgRXZlbnRJbmZvKGRpY3QudGl0bGUsZGljdC5kZXNjcmlwdGlvbixkaWN0LmRvY0xpbmtzKTtpZihkaWN0LnBhcmVudHMpCiB0aGlzLnRpdGxlUGFyZW50TG9va3VwW2RpY3QudGl0bGVdPWRpY3QucGFyZW50czt9LmJpbmQodGhpcyk7cmVnaXN0ZXJFdmVudEluZm8oe3RpdGxlOidpbmZsYXRlJyxkZXNjcmlwdGlvbjonQ29uc3RydWN0aW5nIGEgVmlldyBoaWVyYXJjaHkgZnJvbSBwcmUtcHJvY2Vzc2VkIFhNTCB2aWEgTGF5b3V0SW5mbGF0ZXIjbGF5b3V0LiBUaGlzIGluY2x1ZGVzIGNvbnN0cnVjdGluZyBhbGwgb2YgdGhlIFZpZXcgb2JqZWN0cyBpbiB0aGUgaGllcmFyY2h5LCBhbmQgYXBwbHlpbmcgc3R5bGVkIGF0dHJpYnV0ZXMuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonb2J0YWluVmlldycsZGVzY3JpcHRpb246J0FkYXB0ZXIjZ2V0VmlldygpIGNhbGxlZCB0byBiaW5kIGNvbnRlbnQgdG8gYSByZWN5Y2xlZCBWaWV3IHRoYXQgaXMgYmVpbmcgcHJlc2VudGVkLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J3NldHVwTGlzdEl0ZW0nLGRlc2NyaXB0aW9uOidBdHRhY2hlZCBhIG5ld2x5LWJvdW5kLCByZWN5Y2xlZCBWaWV3IHRvIGl0cyBwYXJlbnQgTGlzdFZpZXcuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonc2V0dXBHcmlkSXRlbScsZGVzY3JpcHRpb246J0F0dGFjaGVkIGEgbmV3bHktYm91bmQsIHJlY3ljbGVkIFZpZXcgdG8gaXRzIHBhcmVudCBHcmlkVmlldy4nfSk7dmFyIGNob3Jlb2dyYXBoZXJMaW5rcz1uZXcgRG9jTGlua0J1aWxkZXIoKS5hZGREYWNSZWYoJ0Nob3Jlb2dyYXBoZXInLCdhbmRyb2lkL3ZpZXcvQ2hvcmVvZ3JhcGhlci5odG1sJykuYnVpbGQoKTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J0Nob3Jlb2dyYXBoZXIjZG9GcmFtZScsZG9jTGlua3M6Y2hvcmVvZ3JhcGhlckxpbmtzLGRlc2NyaXB0aW9uOidDaG9yZW9ncmFwaGVyIGV4ZWN1dGVzIGZyYW1lIGNhbGxiYWNrcyBmb3IgaW5wdXRzLCBhbmltYXRpb25zLCBhbmQgcmVuZGVyaW5nIHRyYXZlcnNhbHMuIFdoZW4gdGhpcyB3b3JrIGlzIGRvbmUsIGEgZnJhbWUgd2lsbCBiZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonaW5wdXQnLHBhcmVudHM6WydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnXSxkb2NMaW5rczpjaG9yZW9ncmFwaGVyTGlua3MsZGVzY3JpcHRpb246J0lucHV0IGNhbGxiYWNrcyBhcmUgcHJvY2Vzc2VkLiBUaGlzIGdlbmVyYWxseSBlbmNvbXBhc3NlcyBkaXNwYXRjaGluZyBpbnB1dCB0byBWaWV3cywgYXMgd2VsbCBhcyBhbnkgd29yayB0aGUgVmlld3MgZG8gdG8gcHJvY2VzcyB0aGlzIGlucHV0L2dlc3R1cmUuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonYW5pbWF0aW9uJyxwYXJlbnRzOlsnQ2hvcmVvZ3JhcGhlciNkb0ZyYW1lJ10sZG9jTGlua3M6Y2hvcmVvZ3JhcGhlckxpbmtzLGRlc2NyaXB0aW9uOidBbmltYXRpb24gY2FsbGJhY2tzIGFyZSBwcm9jZXNzZWQuIFRoaXMgaXMgZ2VuZXJhbGx5IG1pbmltYWwgd29yaywgYXMgYW5pbWF0aW9ucyBkZXRlcm1pbmUgcHJvZ3Jlc3MgZm9yIHRoZSBmcmFtZSwgYW5kIHB1c2ggbmV3IHN0YXRlIHRvIGFuaW1hdGVkIG9iamVjdHMgKHN1Y2ggYXMgc2V0dGluZyBWaWV3IHByb3BlcnRpZXMpLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J3RyYXZlcnNhbHMnLHBhcmVudHM6WydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnXSxkb2NMaW5rczpjaG9yZW9ncmFwaGVyTGlua3MsZGVzY3JpcHRpb246J1ByaW1hcnkgZHJhdyB0cmF2ZXJzYWxzLiBUaGlzIGlzIHRoZSBwcmltYXJ5IHRyYXZlcnNhbCBvZiB0aGUgVmlldyBoaWVyYXJjaHksIGluY2x1ZGluZyBsYXlvdXQgYW5kIGRyYXcgcGFzc2VzLid9KTt2YXIgdHJhdmVyc2FsUGFyZW50cz1bJ0Nob3Jlb2dyYXBoZXIjZG9GcmFtZScsJ3BlcmZvcm1UcmF2ZXJzYWxzJ107dmFyIGxheW91dExpbmtzPW5ldyBEb2NMaW5rQnVpbGRlcigpLmFkZERhY1JlZignVmlldyNMYXlvdXQnLCdhbmRyb2lkL3ZpZXcvVmlldy5odG1sI0xheW91dCcpLmJ1aWxkKCk7cmVnaXN0ZXJFdmVudEluZm8oe3RpdGxlOidwZXJmb3JtVHJhdmVyc2FscycsZGVzY3JpcHRpb246J0EgZHJhd2luZyB0cmF2ZXJzYWwgb2YgdGhlIFZpZXcgaGllcmFyY2h5LCBjb21wcmlzZWQgb2YgYWxsIGxheW91dCBhbmQgZHJhd2luZyBuZWVkZWQgdG8gcHJvZHVjZSB0aGUgZnJhbWUuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonbWVhc3VyZScscGFyZW50czp0cmF2ZXJzYWxQYXJlbnRzLGRvY0xpbmtzOmxheW91dExpbmtzLGRlc2NyaXB0aW9uOidGaXJzdCBvZiB0d28gcGhhc2VzIGluIHZpZXcgaGllcmFyY2h5IGxheW91dC4gVmlld3MgYXJlIGFza2VkIHRvIHNpemUgdGhlbXNlbHZlcyBhY2NvcmRpbmcgdG8gY29uc3RyYWludHMgc3VwcGxpZWQgYnkgdGhlaXIgcGFyZW50LiBTb21lIFZpZXdHcm91cHMgbWF5IG1lYXN1cmUgYSBjaGlsZCBtb3JlIHRoYW4gb25jZSB0byBoZWxwIHNhdGlzZnkgdGhlaXIgb3duIGNvbnN0cmFpbnRzLiBOZXN0aW5nIFZpZXdHcm91cHMgdGhhdCBtZWFzdXJlIGNoaWxkcmVuIG1vcmUgdGhhbiBvbmNlIGNhbiBsZWFkIHRvIGV4Y2Vzc2l2ZSBhbmQgcmVwZWF0ZWQgd29yay4nfSk7cmVnaXN0ZXJFdmVudEluZm8oe3RpdGxlOidsYXlvdXQnLHBhcmVudHM6dHJhdmVyc2FsUGFyZW50cyxkb2NMaW5rczpsYXlvdXRMaW5rcyxkZXNjcmlwdGlvbjonU2Vjb25kIG9mIHR3byBwaGFzZXMgaW4gdmlldyBoaWVyYXJjaHkgbGF5b3V0LCByZXBvc2l0aW9uaW5nIGNvbnRlbnQgYW5kIGNoaWxkIFZpZXdzIGludG8gdGhlaXIgbmV3IGxvY2F0aW9ucy4nfSk7dmFyIGRyYXdTdHJpbmc9J0RyYXcgcGFzcyBvdmVyIHRoZSBWaWV3IGhpZXJhcmNoeS4gRXZlcnkgaW52YWxpZGF0ZWQgVmlldyB3aWxsIGhhdmUgaXRzIGRyYXdpbmcgY29tbWFuZHMgcmVjb3JkZWQuIE9uIEFuZHJvaWQgdmVyc2lvbnMgcHJpb3IgdG8gTG9sbGlwb3AsIHRoaXMgd291bGQgYWxzbyBpbmNsdWRlIHRoZSBpc3N1aW5nIG9mIGRyYXcgY29tbWFuZHMgdG8gdGhlIEdQVS4gU3RhcnRpbmcgd2l0aCBMb2xsaXBvcCwgaXQgb25seSBpbmNsdWRlcyB0aGUgcmVjb3JkaW5nIG9mIGNvbW1hbmRzLCBhbmQgc3luY2luZyB0aGF0IGluZm9ybWF0aW9uIHRvIHRoZSBSZW5kZXJUaHJlYWQuJztyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J2RyYXcnLHBhcmVudHM6dHJhdmVyc2FsUGFyZW50cyxkZXNjcmlwdGlvbjpkcmF3U3RyaW5nfSk7dmFyIHJlY29yZFN0cmluZz0nRXZlcnkgaW52YWxpZGF0ZWQgVmlld1wncyBkcmF3aW5nIGNvbW1hbmRzIGFyZSByZWNvcmRlZC4gRWFjaCB3aWxsIGhhdmUgVmlldyNkcmF3KCkgY2FsbGVkLCBhbmQgaXMgcGFzc2VkIGEgQ2FudmFzIHRoYXQgd2lsbCByZWNvcmQgYW5kIHN0b3JlIGl0cyBkcmF3aW5nIGNvbW1hbmRzIHVudGlsIGl0IGlzIG5leHQgaW52YWxpZGF0ZWQvcmVyZWNvcmRlZC4nO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonZ2V0RGlzcGxheUxpc3QnLHBhcmVudHM6WydkcmF3J10sZGVzY3JpcHRpb246cmVjb3JkU3RyaW5nfSk7cmVnaXN0ZXJFdmVudEluZm8oe3RpdGxlOidSZWNvcmQgVmlldyNkcmF3KCknLHBhcmVudHM6WydkcmF3J10sZGVzY3JpcHRpb246cmVjb3JkU3RyaW5nfSk7cmVnaXN0ZXJFdmVudEluZm8oe3RpdGxlOidkcmF3RGlzcGxheUxpc3QnLHBhcmVudHM6WydkcmF3J10sZGVzY3JpcHRpb246J0V4ZWN1dGlvbiBvZiByZWNvcmRlZCBkcmF3IGNvbW1hbmRzIHRvIGdlbmVyYXRlIGEgZnJhbWUuIFRoaXMgcmVwcmVzZW50cyB0aGUgYWN0dWFsIGZvcm1hdGlvbiBhbmQgaXNzdWluZyBvZiBkcmF3aW5nIGNvbW1hbmRzIHRvIHRoZSBHUFUuIE9uIEFuZHJvaWQgTCBhbmQgaGlnaGVyIGRldmljZXMsIHRoaXMgd29yayBpcyBkb25lIG9uIGEgZGVkaWNhdGVkIFJlbmRlclRocmVhZCwgaW5zdGVhZCBvZiBvbiB0aGUgVUkgVGhyZWFkLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J0RyYXdGcmFtZScsZGVzY3JpcHRpb246J1JlbmRlclRocmVhZCBwb3J0aW9uIG9mIHRoZSBzdGFuZGFyZCBVSS9SZW5kZXJUaHJlYWQgc3BsaXQgZnJhbWUuIFRoaXMgcmVwcmVzZW50cyB0aGUgYWN0dWFsIGZvcm1hdGlvbiBhbmQgaXNzdWluZyBvZiBkcmF3aW5nIGNvbW1hbmRzIHRvIHRoZSBHUFUuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonZG9GcmFtZScsZGVzY3JpcHRpb246J1JlbmRlclRocmVhZCBhbmltYXRpb24gZnJhbWUuIFJlcHJlc2VudHMgZHJhd2luZyB3b3JrIGRvbmUgYnkgdGhlIFJlbmRlclRocmVhZCBvbiBhIGZyYW1lIHdoZXJlIHRoZSBVSSB0aHJlYWQgZGlkIG5vdCBwcm9kdWNlIG5ldyBkcmF3aW5nIGNvbnRlbnQuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonc3luY0ZyYW1lU3RhdGUnLGRlc2NyaXB0aW9uOidTeW5jIHN0YWdlIGJldHdlZW4gdGhlIFVJIHRocmVhZCBhbmQgdGhlIFJlbmRlclRocmVhZCwgd2hlcmUgdGhlIFVJIHRocmVhZCBoYW5kcyBvZmYgYSBmcmFtZSAoaW5jbHVkaW5nIGluZm9ybWF0aW9uIGFib3V0IG1vZGlmaWVkIFZpZXdzKS4gVGltZSBpbiB0aGlzIG1ldGhvZCBwcmltYXJpbHkgY29uc2lzdHMgb2YgdXBsb2FkaW5nIG1vZGlmaWVkIEJpdG1hcHMgdG8gdGhlIEdQVS4gQWZ0ZXIgdGhpcyBzeW5jIGlzIGNvbXBsZXRlZCwgdGhlIFVJIHRocmVhZCBpcyB1bmJsb2NrZWQsIGFuZCB0aGUgUmVuZGVyVGhyZWFkIHN0YXJ0cyB0byByZW5kZXIgdGhlIGZyYW1lLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J2ZsdXNoIGRyYXdpbmcgY29tbWFuZHMnLGRlc2NyaXB0aW9uOidJc3N1aW5nIHRoZSBub3cgY29tcGxldGUgZHJhd2luZyBjb21tYW5kcyB0byB0aGUgR1BVLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J2VnbFN3YXBCdWZmZXJzJyxkZXNjcmlwdGlvbjonQ29tcGxldGUgR1BVIHJlbmRlcmluZyBvZiB0aGUgZnJhbWUuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonUlYgU2Nyb2xsJyxkZXNjcmlwdGlvbjonUmVjeWNsZXJWaWV3IGlzIGNhbGN1bGF0aW5nIGEgc2Nyb2xsLiBJZiB0aGVyZSBhcmUgdG9vIG1hbnkgb2YgdGhlc2UgaW4gU3lzdHJhY2UsIHNvbWUgVmlld3MgaW5zaWRlIFJlY3ljbGVyVmlldyBtaWdodCBiZSBjYXVzaW5nIGl0LiBUcnkgdG8gYXZvaWQgdXNpbmcgRWRpdFRleHQsIGZvY3VzYWJsZSB2aWV3cyBvciBoYW5kbGUgdGhlbSB3aXRoIGNhcmUuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonUlYgT25MYXlvdXQnLGRlc2NyaXB0aW9uOidPbkxheW91dCBoYXMgYmVlbiBjYWxsZWQgYnkgdGhlIFZpZXcgc3lzdGVtLiBJZiB0aGlzIHNob3dzIHVwIHRvbyBtYW55IHRpbWVzIGluIFN5c3RyYWNlLCBtYWtlIHN1cmUgdGhlIGNoaWxkcmVuIG9mIFJlY3ljbGVyVmlldyBkbyBub3QgdXBkYXRlIHRoZW1zZWx2ZXMgZGlyZWN0bHkuIFRoaXMgd2lsbCBjYXVzZSBhIGZ1bGwgcmUtbGF5b3V0IGJ1dCB3aGVuIGl0IGhhcHBlbnMgdmlhIHRoZSBBZGFwdGVyIG5vdGlmeUl0ZW1DaGFuZ2VkLCBSZWN5Y2xlclZpZXcgY2FuIGF2b2lkIGZ1bGwgbGF5b3V0IGNhbGN1bGF0aW9uLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J1JWIEZ1bGxJbnZhbGlkYXRlJyxkZXNjcmlwdGlvbjonTm90aWZ5RGF0YVNldENoYW5nZWQgb3IgZXF1YWwgaGFzIGJlZW4gY2FsbGVkLiBJZiB0aGlzIGlzIHRha2luZyBhIGxvbmcgdGltZSwgdHJ5IHNlbmRpbmcgZ3JhbnVsYXIgbm90aWZ5IGFkYXB0ZXIgY2hhbmdlcyBpbnN0ZWFkIG9mIGp1c3QgY2FsbGluZyBub3RpZnlEYXRhU2V0Q2hhbmdlZCBvciBzZXRBZGFwdGVyIC8gc3dhcEFkYXB0ZXIuIEFkZGluZyBzdGFibGUgaWRzIHRvIHlvdXIgYWRhcHRlciBtaWdodCBoZWxwLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J1JWIFBhcnRpYWxJbnZhbGlkYXRlJyxkZXNjcmlwdGlvbjonUmVjeWNsZXJWaWV3IGlzIHJlYmluZGluZyBhIFZpZXcuIElmIHRoaXMgaXMgdGFraW5nIGEgbG90IG9mIHRpbWUsIGNvbnNpZGVyIG9wdGltaXppbmcgeW91ciBsYXlvdXQgb3IgbWFrZSBzdXJlIHlvdSBhcmUgbm90IGRvaW5nIGV4dHJhIG9wZXJhdGlvbnMgaW4gb25CaW5kVmlld0hvbGRlciBjYWxsLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J1JWIE9uQmluZFZpZXcnLGRlc2NyaXB0aW9uOidSZWN5Y2xlclZpZXcgaXMgcmViaW5kaW5nIGEgVmlldy4gSWYgdGhpcyBpcyB0YWtpbmcgYSBsb3Qgb2YgdGltZSwgY29uc2lkZXIgb3B0aW1pemluZyB5b3VyIGxheW91dCBvciBtYWtlIHN1cmUgeW91IGFyZSBub3QgZG9pbmcgZXh0cmEgb3BlcmF0aW9ucyBpbiBvbkJpbmRWaWV3SG9sZGVyIGNhbGwuJ30pO3JlZ2lzdGVyRXZlbnRJbmZvKHt0aXRsZTonUlYgQ3JlYXRlVmlldycsZGVzY3JpcHRpb246J1JlY3ljbGVyVmlldyBpcyBjcmVhdGluZyBhIG5ldyBWaWV3LiBJZiB0b28gbWFueSBvZiB0aGVzZSBhcmUgcHJlc2VudDogMSkgVGhlcmUgbWlnaHQgYmUgYSBwcm9ibGVtIGluIFJlY3ljbGluZyAoZS5nLiBjdXN0b20gQW5pbWF0aW9ucyB0aGF0IHNldCB0cmFuc2llbnQgc3RhdGUgYW5kIHByZXZlbnQgcmVjeWNsaW5nIG9yIEl0ZW1BbmltYXRvciBub3QgaW1wbGVtZW50aW5nIHRoZSBjb250cmFjdCBwcm9wZXJseS4gU2VlIEFkYXB0ZXIjb25GYWlsZWRUb1JlY3ljbGVWaWV3KFZpZXdIb2xkZXIpLiAyKSBUaGVyZSBtYXkgYmUgdG9vIG1hbnkgaXRlbSB2aWV3IHR5cGVzLiBUcnkgbWVyZ2luZyB0aGVtLiAzKSBUaGVyZSBtaWdodCBiZSB0b28gbWFueSBpdGVtQ2hhbmdlIGFuaW1hdGlvbnMgYW5kIG5vdCBlbm91Z2ggc3BhY2UgaW4gUmVjeWNsZXJQb29sLiBUcnkgaW5jcmVhc2luZyB5b3VyIHBvb2wgc2l6ZSBhbmQgaXRlbSBjYWNoZSBzaXplLid9KTtyZWdpc3RlckV2ZW50SW5mbyh7dGl0bGU6J2VnbFN3YXBCdWZmZXJzJyxkZXNjcmlwdGlvbjonVGhlIENQVSBoYXMgZmluaXNoZWQgcHJvZHVjaW5nIGRyYXdpbmcgY29tbWFuZHMsIGFuZCBpcyBmbHVzaGluZyBkcmF3aW5nIHdvcmsgdG8gdGhlIEdQVSwgYW5kIHBvc3RpbmcgdGhhdCBidWZmZXIgdG8gdGhlIGNvbnN1bWVyICh3aGljaCBpcyBvZnRlbiBTdXJmYWNlRmxpbmdlciB3aW5kb3cgY29tcG9zaXRpb24pLiBPbmNlIHRoaXMgaXMgY29tcGxldGVkLCB0aGUgR1BVIGNhbiBwcm9kdWNlIHRoZSBmcmFtZSBjb250ZW50IHdpdGhvdXQgYW55IGludm9sdmVtZW50IGZyb20gdGhlIENQVS4nfSk7fSxhcHBseUV2ZW50SW5mb3NSZWN1cnNpdmVfOmZ1bmN0aW9uKHBhcmVudE5hbWVzLHNsaWNlKXt2YXIgY2hlY2tFeHBlY3RlZFBhcmVudE5hbWVzPWZ1bmN0aW9uKGV4cGVjdGVkUGFyZW50TmFtZXMpe2lmKCFleHBlY3RlZFBhcmVudE5hbWVzKQogcmV0dXJuIHRydWU7cmV0dXJuIGV4cGVjdGVkUGFyZW50TmFtZXMuc29tZShmdW5jdGlvbihuYW1lKXtyZXR1cm4gbmFtZSBpbiBwYXJlbnROYW1lczt9KTt9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvLmdpdGlnbm9yZSBiL3RyYWNlLXZpZXdlci8uZ2l0aWdub3JlCmluZGV4IGMxN2EyMWYuLmY2YzE4YmQgMTAwNjQ0Ci0tLSBhL3RyYWNlLXZpZXdlci8uZ2l0aWdub3JlCisrKyBiL3RyYWNlLXZpZXdlci8uZ2l0aWdub3JlCkBAIC01LDUgKzUsMyBAQAogKn4KIC5wcm9qZWN0CiAuc2V0dGluZ3MKLWJpbi90cmFjZV92aWV3ZXIqLmh0bWwKLXRlc3RfZGF0YS9tZWFzdXJtdC10cmFjZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci8udHJhdmlzLnltbCBiL3RyYWNlLXZpZXdlci8udHJhdmlzLnltbAppbmRleCBmMzc2YmE4Li4yZWNhN2JmIDEwMDY0NAotLS0gYS90cmFjZS12aWV3ZXIvLnRyYXZpcy55bWwKKysrIGIvdHJhY2Utdmlld2VyLy50cmF2aXMueW1sCkBAIC0xOSwyNSArMTksMTAgQEAKICAgLSB1bnppcCAtcSAvdG1wL2Nocm9tZS56aXAgLWQgL3RtcAogCiBzY3JpcHQ6Ci0jIFJ1biBmaXJzdCB0aGUgcHl0aG9uIHRlc3RzLgotIC0gLi9ydW5fdGVzdHMKLQotIyBUaGVuIHRoZSBpbnRlcmFjdGl2ZSB0ZXN0cyBpbiBoZWFkbGVzcyBtb2RlLgotIC0gKHNsZWVwIDUgJiYKLSAgICAvdG1wL2Nocm9tZS1wcmVjaXNlNjQvY2hyb21lCi0gICAgLS1uby1zYW5kYm94IC1uby1leHBlcmltZW50cyAtLW5vLWZpcnN0LXJ1biAtLW5vZXJyZGlhbG9ncwotICAgICJodHRwOi8vbG9jYWxob3N0OjgwMDMvYmFzZS90ZXN0cy5odG1sP2hlYWRsZXNzPXRydWUmdGVzdFR5cGVUb1J1bj1hbGwiKSYKLQotIyBUaGUgaW5kaXZpZHVhbCB0ZXN0IHJlc3VsdHMgd2lsbCBiZSBjb21tdW5pY2F0ZWQgYmFjayB0byB0aGUgc2VydmVyIHRvZ2V0aGVyCi0jIGZpbmFsIHRlc3Qgb3V0Y29tZSAoImFsbCBwYXNzZWQiIG9yIG5vdCksIHdoaWNoIHdpbGwgZGV0ZXJtaW5lIHRoZSBleGl0IGNvZGUKLSMgb2YgdGhlIGRldiBzZXJ2ZXIuCi0gLSAuL3J1bl9kZXZfc2VydmVyCi0KLSMgS2lsbCBDaHJvbWUuCi0gLSBraWxsICUxICYmIHRydWUKKyAtIC4vdHJhY2luZy9ydW5fdGVzdHMgLS1jaHJvbWVfcGF0aD0vdG1wL2Nocm9tZS1wcmVjaXNlNjQvY2hyb21lCiAKICMgVnVsY2FuaXplIHRyYWNlX3ZpZXdlciBpbiBmdWxsICYgY2hyb21lIG1vZGUgJiByZXBvcnQgdG90YWwgc2l6ZQotIC0gLi92dWxjYW5pemVfdHJhY2Vfdmlld2VyIC0tY29uZmlnPWNocm9tZQotIC0gLi92dWxjYW5pemVfdHJhY2Vfdmlld2VyIC0tY29uZmlnPWZ1bGwKLSAtIHN0YXQgLWMlcyBiaW4vdHJhY2Vfdmlld2VyX2Nocm9tZS5odG1sCi0gLSBzdGF0IC1jJXMgYmluL3RyYWNlX3ZpZXdlcl9mdWxsLmh0bWwKKyAtIC4vdHJhY2luZy92dWxjYW5pemVfdHJhY2Vfdmlld2VyIC0tY29uZmlnPWNocm9tZQorIC0gLi90cmFjaW5nL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXIgLS1jb25maWc9ZnVsbAorIC0gc3RhdCAtYyVzIHRyYWNpbmcvYmluL3RyYWNlX3ZpZXdlcl9jaHJvbWUuaHRtbAorIC0gc3RhdCAtYyVzIHRyYWNpbmcvYmluL3RyYWNlX3ZpZXdlcl9mdWxsLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9CVUlMRC5nbiBiL3RyYWNlLXZpZXdlci9CVUlMRC5nbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEzNzllMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvQlVJTEQuZ24KKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWd5cGlfdmFsdWVzID0gZXhlY19zY3JpcHQoIi8vYnVpbGQvZ3lwaV90b19nbi5weSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFsgcmViYXNlX3BhdGgoInRyYWNlX3ZpZXdlci5neXBpIikgXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInNjb3BlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgWyAidHJhY2Vfdmlld2VyLmd5cGkiIF0pCi0KLSMgVE9ETzogaWRlYWxseSB0aGlzIHdvdWxkIGdvIGludG8gdGhlIHRhcmdldF9nZW5fZGlyLCBidXQgdGhpcyByZXF1aXJlcyBzb21lCi0jIGNoYW5nZXMgdG8gdGhlIHNjcmlwdHMgdGhhdCBwcm9jZXNzIHRoZW0uCi1vdXRwdXRfcmVzb3VyY2VfZGlyID0gIiRyb290X2dlbl9kaXIvY29udGVudC9icm93c2VyL3RyYWNpbmciCi0KLWFjdGlvbigiZ2VuZXJhdGVfYWJvdXRfdHJhY2luZyIpIHsKLSAgc2NyaXB0ID0gInRyYWNlX3ZpZXdlci9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzIgotCi0gIGlucHV0cyA9IGd5cGlfdmFsdWVzLnRyYWNpbmdfY3NzX2ZpbGVzICsgZ3lwaV92YWx1ZXMudHJhY2luZ19qc19odG1sX2ZpbGVzICsKLSAgICAgIGd5cGlfdmFsdWVzLnRyYWNpbmdfaW1nX2ZpbGVzCi0gIG91dHB1dHMgPSBbCi0gICAgIiRvdXRwdXRfcmVzb3VyY2VfZGlyL2Fib3V0X3RyYWNpbmcuanMiLAotICAgICIkb3V0cHV0X3Jlc291cmNlX2Rpci9hYm91dF90cmFjaW5nLmh0bWwiLAotICBdCi0KLSAgYXJncyA9IFsKLSAgICAiLS1vdXRkaXIiLCByZWJhc2VfcGF0aChvdXRwdXRfcmVzb3VyY2VfZGlyLCByb290X2J1aWxkX2RpciksCi0gIF0KLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9QUkVTVUJNSVQucHkgYi90cmFjZS12aWV3ZXIvUFJFU1VCTUlULnB5CmluZGV4IGY3ZGYwNzcuLjM4YmFkOTYgMTAwNjQ0Ci0tLSBhL3RyYWNlLXZpZXdlci9QUkVTVUJNSVQucHkKKysrIGIvdHJhY2Utdmlld2VyL1BSRVNVQk1JVC5weQpAQCAtNCwxMyArNCwxOCBAQAogCiBpbXBvcnQgc3lzCiAKK2RlZiBSdW5DaGVja3MoaW5wdXRfYXBpLCBvdXRwdXRfYXBpKToKKyAgcmVzdWx0cyA9IFtdCisgIGZyb20gYnVpbGQgaW1wb3J0IHByZXN1Ym1pdF9jaGVja3MKKyAgcmVzdWx0cyArPSBwcmVzdWJtaXRfY2hlY2tzLlJ1bkNoZWNrcyhpbnB1dF9hcGkpCisKKyAgcmV0dXJuIG1hcChvdXRwdXRfYXBpLlByZXN1Ym1pdEVycm9yLCByZXN1bHRzKQogCiBkZWYgQ2hlY2tDaGFuZ2UoaW5wdXRfYXBpLCBvdXRwdXRfYXBpKToKICAgb3JpZ2luYWxfc3lzX3BhdGggPSBzeXMucGF0aAogICB0cnk6CiAgICAgc3lzLnBhdGggKz0gW2lucHV0X2FwaS5QcmVzdWJtaXRMb2NhbFBhdGgoKV0KLSAgICBmcm9tIGhvb2tzIGltcG9ydCBwcmVfY29tbWl0Ci0gICAgcmV0dXJuIHByZV9jb21taXQuUnVuQ2hlY2tzKGlucHV0X2FwaSwgb3V0cHV0X2FwaSkKKyAgICByZXR1cm4gUnVuQ2hlY2tzKGlucHV0X2FwaSwgb3V0cHV0X2FwaSkKICAgZmluYWxseToKICAgICBzeXMucGF0aCA9IG9yaWdpbmFsX3N5c19wYXRoCiAKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9SRUFETUUubWQgYi90cmFjZS12aWV3ZXIvUkVBRE1FLm1kCmluZGV4IDc4NDE3YjAuLjZmOTlmNzAgMTAwNjQ0Ci0tLSBhL3RyYWNlLXZpZXdlci9SRUFETUUubWQKKysrIGIvdHJhY2Utdmlld2VyL1JFQURNRS5tZApAQCAtNCw3ICs0LDcgQEAKIC0tPgogWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvZ29vZ2xlL3RyYWNlLXZpZXdlci5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9nb29nbGUvdHJhY2Utdmlld2VyKQogCi0hW1RyYWNlIFZpZXdlciBMb2dvXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci9tYXN0ZXIvaW1hZ2VzL3RyYWNlLXZpZXdlci1jaXJjbGUtYmx1ZS5wbmcpCishW1RyYWNlIFZpZXdlciBMb2dvXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci9tYXN0ZXIvdHJhY2luZy9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS1ibHVlLnBuZykKIAogVHJhY2UtVmlld2VyIGlzIHRoZSBqYXZhc2NyaXB0IGZyb250ZW5kIGZvciBDaHJvbWUgW2Fib3V0OnRyYWNpbmddKGh0dHA6Ly9kZXYuY2hyb21pdW0ub3JnL2RldmVsb3BlcnMvaG93LXRvcy90cmFjZS1ldmVudC1wcm9maWxpbmctdG9vbCkgYW5kIFtBbmRyb2lkCiBzeXN0cmFjZV0oaHR0cDovL2RldmVsb3Blci5hbmRyb2lkLmNvbS90b29scy9oZWxwL3N5c3RyYWNlLmh0bWwpLgpAQCAtMTMsMTggKzEzLDI4IEBACiBmaWxlcy4gSXRzIHBhcnRpY3VsYXJseSBnb29kIGF0IHZpZXdpbmcgbGludXgga2VybmVsIHRyYWNlcyAoYWthIFtmdHJhY2VdKGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vdHJhY2UvZnRyYWNlLnR4dCkpIGFuZCBDaHJvbWUncwogW3RyYWNlX2V2ZW50IGZvcm1hdF0oaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xQ3ZBQ2x2RmZ5QTVSLVBoWVVtbjVPT1F0WU1INGg2STBuU3NLY2hOQXlTVS9wcmV2aWV3KS4gVHJhY2Ugdmlld2VyIGNhbiBiZSBbZW1iZWRkZWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvdHJhY2Utdmlld2VyL3dpa2kvRW1iZWRkaW5nKSBhcyBhIGNvbXBvbmVudCBpbiB5b3VyIG93biBjb2RlLCBvciB1c2VkIGZyb20gYSBwbGFpbiBjaGVja291dCB0byB0dXJuIHRyYWNlIGZpbGVzIGludG8gc3RhbmRhbG9uZSwgZW1haWxhYmxlIEhUTUwgZmlsZXMgZnJvbSB0aGUgY29tbWFuZGxpbmU6CiAKLSAgICB0cmFjZTJodG1sIG15X3RyYWNlLmpzb24gLS1vdXRwdXQ9bXlfdHJhY2UuaHRtbCAmJiBvcGVuIG15X3RyYWNlLmh0bWwKKyAgICAuL3RyYWNpbmcvdHJhY2UyaHRtbCBteV90cmFjZS5qc29uIC0tb3V0cHV0PW15X3RyYWNlLmh0bWwgJiYgb3BlbiBteV90cmFjZS5odG1sCiAKIEl0cyBlYXN5IHRvIFtleHRlbmQgdHJhY2Ugdmlld2VyXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci93aWtpL0V4dGVuZGluZ0FuZEN1c3RvbWl6aW5nKSB0byBzdXBwb3J0IHlvdXIgZmF2b3JpdGUgdHJhY2UgZm9ybWF0LCBvciBhZGQgZG9tYWluIHNwZWNpZmljIHZpc3VhbGl6YXRpb25zIHRvIHRoZSBVSSB0byBzaW1wbGlmeSBkcmlsbGluZyBkb3duIGludG8gY29tcGxleCBkYXRhLgogCiBDb250cmlidXRpbmcsIHF1aWNrIHZlcnNpb24KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogV2Ugd2VsY29tZSBjb250cmlidXRpb25zISBUbyBoYWNrIG9uIHRoaXMgY29kZSwgZnJvbSB0b3BsZXZlbDoKLSAgLi9ydW5fZGV2X3NlcnZlcgorICAuL3RyYWNpbmcvcnVuX2Rldl9zZXJ2ZXIKIAogSW4gYW55IGJyb3dzZXIsIG5hdmlnYXRlIHRvCiAgIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMy8KIAorVG8gcnVuIGFsbCBweXRob24gdW5pdHRlc3RzOgorICAuL3RyYWNpbmcvcnVuX3B5X3Rlc3RzCisKK1RvIHJ1biBhbGwgdHJhY2luZyB1bml0dGVzdHMgaW4gZDggZW52aXJvbm1lbnQ6CisgLi90cmFjaW5nL3J1bl9kOF90ZXN0cworCitUbyBydW4gYWxsIHRoZSB1bml0dGVzdHMsIHlvdSBjYW4gYWxzbyBkbzoKKworIC4vdHJhY2luZy9ydW5fdGVzdHMKKwogTWFrZSBzdXJlIHRlc3RzIHBhc3MgYmVmb3JlIHNlbmRpbmcgdXMgY2hhbmdlbGlzdC4gKipXZSB1c2UgcmlldHZlbGQgZm9yIGNvZGVyZXZpZXcqKi4gRm9yIG1vcmUgZGV0YWlscywgZXNwIG9uIHJpZXR2ZWxkLCBbcmVhZCBvdXIgY29udHJpYnV0aW5nIGd1aWRlXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci93aWtpL0NvbnRyaWJ1dGluZykgb3IgY2hlY2sgb3V0IHRoZSBbdHJhY2Ugdmlld2VyIHdpa2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvdHJhY2Utdmlld2VyL3dpa2kpLgogCiBDb250YWN0IFVzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvYXBwLnlhbWwgYi90cmFjZS12aWV3ZXIvYXBwLnlhbWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlNDI4YzguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL2FwcC55YW1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1hcHBsaWNhdGlvbjogdmlldy10cmFjZQotdmVyc2lvbjogcHJvZAotcnVudGltZTogcHl0aG9uMjcKLXRocmVhZHNhZmU6IHRydWUKLWFwaV92ZXJzaW9uOiAxCi0KLWhhbmRsZXJzOgotCi0tIHVybDogL2Jhc2UKLSAgc3RhdGljX2RpcjogdHJhY2Vfdmlld2VyL2Jhc2UKLSAgc2VjdXJlOiBhbHdheXMKLQotLSB1cmw6IC9jb3JlCi0gIHN0YXRpY19kaXI6IHRyYWNlX3ZpZXdlci9jb3JlCi0gIHNlY3VyZTogYWx3YXlzCi0KLS0gdXJsOiAvZXh0cmFzCi0gIHN0YXRpY19kaXI6IHRyYWNlX3ZpZXdlci9leHRyYXMKLSAgc2VjdXJlOiBhbHdheXMKLQotLSB1cmw6IC9jb21wb25lbnRzCi0gIHN0YXRpY19kaXI6IHRoaXJkX3BhcnR5L2NvbXBvbmVudHMKLSAgc2VjdXJlOiBhbHdheXMKLQotLSB1cmw6IC90cmFjZV92aWV3ZXIKLSAgc3RhdGljX2RpcjogdHJhY2Vfdmlld2VyCi0gIHNlY3VyZTogYWx3YXlzCi0KLS0gdXJsOiAvZ2wtbWF0cml4LW1pbi5qcwotICBzdGF0aWNfZmlsZXM6IHRoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC1taW4uanMKLSAgdXBsb2FkOiB0aGlyZF9wYXJ0eS9nbC1tYXRyaXgvZGlzdC9nbC1tYXRyaXgtbWluLmpzCi0gIHNlY3VyZTogYWx3YXlzCi0KLS0gdXJsOiAvanN6aXAubWluLmpzCi0gIHN0YXRpY19maWxlczogdGhpcmRfcGFydHkvanN6aXAvanN6aXAubWluLmpzCi0gIHVwbG9hZDogdGhpcmRfcGFydHkvanN6aXAvanN6aXAubWluLmpzCi0gIHNlY3VyZTogYWx3YXlzCi0KLS0gdXJsOiAvZDMubWluLmpzCi0gIHN0YXRpY19maWxlczogdGhpcmRfcGFydHkvZDMvZDMubWluLmpzCi0gIHVwbG9hZDogdGhpcmRfcGFydHkvZDMvZDMubWluLmpzCi0gIHNlY3VyZTogYWx3YXlzCi0KLS0gdXJsOiAvLioKLSAgc3RhdGljX2ZpbGVzOiB0cmFjZV92aWV3ZXIvZXh0cmFzL2RyaXZlL2luZGV4Lmh0bWwKLSAgdXBsb2FkOiB0cmFjZV92aWV3ZXIvZXh0cmFzL2RyaXZlL2luZGV4Lmh0bWwKLSAgc2VjdXJlOiBhbHdheXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9iaW4vaW5kZXguaHRtbCBiL3RyYWNlLXZpZXdlci9iaW4vaW5kZXguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZiMmI2YS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvYmluL2luZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIG9uVHJhY2VWaWV3ZXJJbXBvcnRGYWlsKCkgewotICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7Ci0gICAgZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCA9ICdiaW4vdHJhY2Vfdmlld2VyX2Z1bGwuaHRtbCBpcyBtaXNzaW5nLiAnICsKLSAgICAgICAgJ1J1biB2dWxjYW5pemVfdHJhY2Vfdmlld2VyIGZyb20gJFRSQUNFX1ZJRVdFUiBhbmQgcmVsb2FkLic7Ci0gIH0pOwotfQotPC9zY3JpcHQ+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0idHJhY2Vfdmlld2VyX2Z1bGwuaHRtbCIgb25lcnJvcj0ib25UcmFjZVZpZXdlckltcG9ydEZhaWwoZXZlbnQpIj4KLQotPHN0eWxlPgotICBodG1sLCBib2R5IHsKLSAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgbWFyZ2luOiAwcHg7Ci0gICAgcGFkZGluZzogMDsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDEwMCU7Ci0gIH0KLSAgI3RyYWNlLXZpZXdlciB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICB9Ci08L3N0eWxlPgotPHNjcmlwdD4KLWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKLSAgdmFyIHZpZXdlciA9IG5ldyB0ci5UcmFjZVZpZXdlcignLi4vdGVzdF9kYXRhL2JpZ190cmFjZS5qc29uJyk7Ci0gIHZpZXdlci5pZCA9ICd0cmFjZS12aWV3ZXInOwotICB2aWV3ZXIudGFiSW5kZXggPSAxOwotICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlcik7Ci19KTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvYnVpbGQvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvYnVpbGQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ2NGY5ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9idWlsZC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDQgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCitpbXBvcnQgb3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvYnVpbGQvY2hlY2tsaWNlbnNlcy5weSBiL3RyYWNlLXZpZXdlci9idWlsZC9jaGVja2xpY2Vuc2VzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmYmI5ZTQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvYnVpbGQvY2hlY2tsaWNlbnNlcy5weQpAQCAtMCwwICsxLDE2MCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisnJydNYWtlcyBzdXJlIHRoYXQgYWxsIGZpbGVzIGNvbnRhaW4gcHJvcGVyIGxpY2Vuc2luZyBpbmZvcm1hdGlvbi4nJycKKworCitpbXBvcnQganNvbgoraW1wb3J0IG9wdHBhcnNlCitpbXBvcnQgb3MucGF0aAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworaW1wb3J0IGxvZ2dpbmcKKworZGVmIFByaW50VXNhZ2UoKToKKyAgcHJpbnQgJycnVXNhZ2U6IHB5dGhvbiBjaGVja2xpY2Vuc2VzLnB5IFstLXJvb3QgPHJvb3Q+XSBbdG9jaGVja10KKyAgLS1yb290ICAgU3BlY2lmaWVzIHRoZSByZXBvc2l0b3J5IHJvb3QuIFRoaXMgZGVmYXVsdHMgdG8gJy4uLy4uJyByZWxhdGl2ZQorICAgICAgICAgICB0byB0aGUgc2NyaXB0IGZpbGUuIFRoaXMgd2lsbCBiZSBjb3JyZWN0IGdpdmVuIHRoZSBub3JtYWwgbG9jYXRpb24KKyAgICAgICAgICAgb2YgdGhlIHNjcmlwdCBpbiAnPHJvb3Q+L3Rvb2xzL2NoZWNrbGljZW5zZXMnLgorCisgIHRvY2hlY2sgIFNwZWNpZmllcyB0aGUgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byByb290LCB0byBjaGVjay4gVGhpcyBkZWZhdWx0cworICAgICAgICAgICB0byAnLicgc28gaXQgY2hlY2tzIGV2ZXJ5dGhpbmcuCisKK0V4YW1wbGVzOgorICBweXRob24gY2hlY2tsaWNlbnNlcy5weQorICBweXRob24gY2hlY2tsaWNlbnNlcy5weSAtLXJvb3Qgfi9jaHJvbWl1bS9zcmMgdGhpcmRfcGFydHknJycKKworCitXSElURUxJU1RFRF9MSUNFTlNFUyA9IFsKKyAgICAnQXBhY2hlICh2Mi4wKScsCisgICAgJ0JTRCAoMyBjbGF1c2UpJywKKyAgICAnQlNELWxpa2UnLAorICAgICdNSVQvWDExIChCU0QgbGlrZSknLAorICAgICd6bGliL2xpYnBuZycsCitdCisKKworUEFUSF9TUEVDSUZJQ19XSElURUxJU1RFRF9MSUNFTlNFUyA9IHsKKyAgICAndHJhY2luZy90aGlyZF9wYXJ0eS9kZXZzY3JpcHRzJzogWworICAgICAgICAnR1BMICh2MiBvciBsYXRlciknLAorICAgIF0sCit9CisKKworZGVmIGNoZWNrX2xpY2Vuc2VzKGJhc2VfZGlyZWN0b3J5LCB0YXJnZXRfZGlyZWN0b3J5PU5vbmUpOgorICAjIEZpZ3VyZSBvdXQgd2hpY2ggZGlyZWN0b3J5IHdlIGhhdmUgdG8gY2hlY2suCisgIGlmIG5vdCB0YXJnZXRfZGlyZWN0b3J5OgorICAgICMgTm8gZGlyZWN0b3J5IHRvIGNoZWNrIHNwZWNpZmllZCwgdXNlIHRoZSByZXBvc2l0b3J5IHJvb3QuCisgICAgc3RhcnRfZGlyID0gYmFzZV9kaXJlY3RvcnkKKyAgZWxzZToKKyAgICAjIERpcmVjdG9yeSBzcGVjaWZpZWQuIFN0YXJ0IGhlcmUuIEl0J3Mgc3VwcG9zZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlCisgICAgIyBiYXNlIGRpcmVjdG9yeS4KKyAgICBzdGFydF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGJhc2VfZGlyZWN0b3J5LCB0YXJnZXRfZGlyZWN0b3J5KSkKKworICBsb2dnaW5nLmluZm8oJ1VzaW5nIGJhc2UgZGlyZWN0b3J5OiAlcycgJSBiYXNlX2RpcmVjdG9yeSkKKyAgbG9nZ2luZy5pbmZvKCdDaGVja2luZzogJXMnICUgc3RhcnRfZGlyKQorICBsb2dnaW5nLmluZm8oJycpCisKKyAgbGljZW5zZWNoZWNrX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGJhc2VfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYWNpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoaXJkX3BhcnR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZzY3JpcHRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlY2hlY2sucGwnKSkKKworICBsaWNlbnNlY2hlY2sgPSBzdWJwcm9jZXNzLlBvcGVuKFtsaWNlbnNlY2hlY2tfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1sJywgJzEwMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctcicsIHN0YXJ0X2Rpcl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQorICBzdGRvdXQsIHN0ZGVyciA9IGxpY2Vuc2VjaGVjay5jb21tdW5pY2F0ZSgpCisgIGxvZ2dpbmcuaW5mbygnLS0tLS0tLS0tLS0gbGljZW5zZWNoZWNrIHN0ZG91dCAtLS0tLS0tLS0tLScpCisgIGxvZ2dpbmcuaW5mbyhzdGRvdXQpCisgIGxvZ2dpbmcuaW5mbygnLS0tLS0tLS0tIGVuZCBsaWNlbnNlY2hlY2sgc3Rkb3V0IC0tLS0tLS0tLScpCisgIGlmIGxpY2Vuc2VjaGVjay5yZXR1cm5jb2RlICE9IDAgb3Igc3RkZXJyOgorICAgIHByaW50ICctLS0tLS0tLS0tLSBsaWNlbnNlY2hlY2sgc3RkZXJyIC0tLS0tLS0tLS0tJworICAgIHByaW50IHN0ZGVycgorICAgIHByaW50ICctLS0tLS0tLS0gZW5kIGxpY2Vuc2VjaGVjayBzdGRlcnIgLS0tLS0tLS0tJworICAgIHJldHVybiAxCisKKyAgdXNlZF9zdXBwcmVzc2lvbnMgPSBzZXQoKQorICBlcnJvcnMgPSBbXQorCisgIGZvciBsaW5lIGluIHN0ZG91dC5zcGxpdGxpbmVzKCk6CisgICAgZmlsZW5hbWUsIGxpY2Vuc2UgPSBsaW5lLnNwbGl0KCc6JywgMSkKKyAgICBmaWxlbmFtZSA9IG9zLnBhdGgucmVscGF0aChmaWxlbmFtZS5zdHJpcCgpLCBiYXNlX2RpcmVjdG9yeSkKKworICAgICMgQWxsIGZpbGVzIGluIHRoZSBidWlsZCBvdXRwdXQgZGlyZWN0b3J5IGFyZSBnZW5lcmF0ZWQgb25lIHdheSBvciBhbm90aGVyLgorICAgICMgVGhlcmUncyBubyBuZWVkIHRvIGNoZWNrIHRoZW0uCisgICAgaWYgZmlsZW5hbWUuc3RhcnRzd2l0aCgnb3V0LycpOgorICAgICAgY29udGludWUKKworICAgICMgRm9yIG5vdyB3ZSdyZSBqdXN0IGludGVyZXN0ZWQgaW4gdGhlIGxpY2Vuc2UuCisgICAgbGljZW5zZSA9IGxpY2Vuc2UucmVwbGFjZSgnKk5vIGNvcHlyaWdodConLCAnJykuc3RyaXAoKQorCisgICAgIyBTa2lwIGdlbmVyYXRlZCBmaWxlcy4KKyAgICBpZiAnR0VORVJBVEVEIEZJTEUnIGluIGxpY2Vuc2U6CisgICAgICBjb250aW51ZQorCisgICAgaWYgbGljZW5zZSBpbiBXSElURUxJU1RFRF9MSUNFTlNFUzoKKyAgICAgIGNvbnRpbnVlCisKKyAgICBtYXRjaGVkX3ByZWZpeGVzID0gWworICAgICAgICBwcmVmaXggZm9yIHByZWZpeCBpbiBQQVRIX1NQRUNJRklDX1dISVRFTElTVEVEX0xJQ0VOU0VTCisgICAgICAgIGlmIGZpbGVuYW1lLnN0YXJ0c3dpdGgocHJlZml4KSBhbmQKKyAgICAgICAgbGljZW5zZSBpbiBQQVRIX1NQRUNJRklDX1dISVRFTElTVEVEX0xJQ0VOU0VTW3ByZWZpeF1dCisgICAgaWYgbWF0Y2hlZF9wcmVmaXhlczoKKyAgICAgIHVzZWRfc3VwcHJlc3Npb25zLnVwZGF0ZShzZXQobWF0Y2hlZF9wcmVmaXhlcykpCisgICAgICBjb250aW51ZQorCisgICAgZXJyb3JzLmFwcGVuZCh7J2ZpbGVuYW1lJzogZmlsZW5hbWUsICdsaWNlbnNlJzogbGljZW5zZX0pCisKKyAgaWYgZXJyb3JzOgorICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICBwcmludCAiJyVzJyBoYXMgbm9uLXdoaXRlbGlzdGVkIGxpY2Vuc2UgJyVzJyIgJSAoCisgICAgICAgICAgZXJyb3JbJ2ZpbGVuYW1lJ10sIGVycm9yWydsaWNlbnNlJ10pCisgICAgcHJpbnQgJ1xuRkFJTEVEXG4nCisgICAgcHJpbnQgJ1BsZWFzZSByZWFkJywKKyAgICBwcmludCAnaHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy9hZGRpbmctM3JkLXBhcnR5LWxpYnJhcmllcycKKyAgICBwcmludCAnZm9yIG1vcmUgaW5mbyBob3cgdG8gaGFuZGxlIHRoZSBmYWlsdXJlLicKKyAgICBwcmludAorICAgIHByaW50ICdQbGVhc2UgcmVzcGVjdCBPV05FUlMgb2YgY2hlY2tsaWNlbnNlcy5weS4gQ2hhbmdlcyB2aW9sYXRpbmcnCisgICAgcHJpbnQgJ3RoaXMgcmVxdWlyZW1lbnQgbWF5IGJlIHJldmVydGVkLicKKworICAgICMgRG8gbm90IHByaW50IHVudXNlZCBzdXBwcmVzc2lvbnMgc28gdGhhdCBhYm92ZSBtZXNzYWdlIGlzIGNsZWFybHkKKyAgICAjIHZpc2libGUgYW5kIGdldHMgcHJvcGVyIGF0dGVudGlvbi4gVG9vIG11Y2ggdW5yZWxhdGVkIG91dHB1dAorICAgICMgd291bGQgYmUgZGlzdHJhY3RpbmcgYW5kIG1ha2UgdGhlIGltcG9ydGFudCBwb2ludHMgZWFzaWVyIHRvIG1pc3MuCisKKyAgICByZXR1cm4gMQorCisKKyAgcmV0dXJuIDAKKworCitkZWYgbWFpbigpOgorICBkZWZhdWx0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgoCisgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJykpCisgIG9wdGlvbl9wYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQorICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy0tcm9vdCcsIGRlZmF1bHQ9ZGVmYXVsdF9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nYmFzZV9kaXJlY3RvcnknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU3BlY2lmaWVzIHRoZSByZXBvc2l0b3J5IHJvb3QuIFRoaXMgZGVmYXVsdHMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvICcuLicgcmVsYXRpdmUgdG8gdGhlIHNjcmlwdCBmaWxlLCB3aGljaCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lsbCBub3JtYWxseSBiZSB0aGUgcmVwb3NpdG9yeSByb290LicpCisgIG9wdGlvbnMsIGFyZ3MgPSBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoKQorCisgIHRhcmdldF9kaXJlY3RvcnkgPSBOb25lCisgIGlmIGxlbihhcmdzKSA9PSAxOgorICAgIHRhcmdldF9kaXJlY3RvcnkgPSBhcmdzWzBdCisgIGVsaWYgbGVuKGFyZ3MpID4gMToKKyAgICBQcmludFVzYWdlKCkKKyAgICByZXR1cm4gMQorICByZXN1bHRzID0gY2hlY2tfbGljZW5zZXMob3B0aW9ucy5iYXNlX2RpcmVjdG9yeSwgdGFyZ2V0X2RpcmVjdG9yeSkKKyAgaWYgbm90IHJlc3VsdHM6CisgICAgcHJpbnQgJ1NVQ0NFU1MnCisgIHJldHVybiByZXN1bHRzCisKKworaWYgJ19fbWFpbl9fJyA9PSBfX25hbWVfXzoKKyAgc3lzLmV4aXQobWFpbigpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2J1aWxkL3ByZXN1Ym1pdF9jaGVja3MucHkgYi90cmFjZS12aWV3ZXIvYnVpbGQvcHJlc3VibWl0X2NoZWNrcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjU5ZjNkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL2J1aWxkL3ByZXN1Ym1pdF9jaGVja3MucHkKQEAgLTAsMCArMSwyMzIgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQorCitpbXBvcnQgY2hlY2tsaWNlbnNlcworCitmcm9tIHRyYWNpbmcgaW1wb3J0IHRyYWNpbmdfcHJvamVjdAorCisKK2RlZiBfRm9ybWF0RXJyb3IobXNnLCBmaWxlcyk6CisgIHJldHVybiAoJyVzIGluIHRoZXNlIGZpbGVzOlxuJyAlIG1zZyArCisgICAgICAgICAgJ1xuJy5qb2luKCcgICcgKyB4IGZvciB4IGluIGZpbGVzKSkKKworCitkZWYgX1JlcG9ydEVycm9yRmlsZUFuZExpbmUoZmlsZW5hbWUsIGxpbmVfbnVtLCBkdW1teV9saW5lKToKKyAgIiIiRGVmYXVsdCBlcnJvciBmb3JtYXR0ZXIgZm9yIF9GaW5kTmV3VmlvbGF0aW9uc09mUnVsZS4iIiIKKyAgcmV0dXJuICclczolcycgJSAoZmlsZW5hbWUsIGxpbmVfbnVtKQorCisKK2RlZiBfRmluZE5ld1Zpb2xhdGlvbnNPZlJ1bGUoY2FsbGFibGVfcnVsZSwgaW5wdXRfYXBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9mb3JtYXR0ZXI9X1JlcG9ydEVycm9yRmlsZUFuZExpbmUpOgorICAiIiJGaW5kIGFsbCBuZXdseSBpbnRyb2R1Y2VkIHZpb2xhdGlvbnMgb2YgYSBwZXItbGluZSBydWxlIChhIGNhbGxhYmxlKS4KKworICBBcmd1bWVudHM6CisgICAgY2FsbGFibGVfcnVsZTogYSBjYWxsYWJsZSB0YWtpbmcgYSBmaWxlIGV4dGVuc2lvbiBhbmQgbGluZSBvZiBpbnB1dCBhbmQKKyAgICAgIHJldHVybmluZyBUcnVlIGlmIHRoZSBydWxlIGlzIHNhdGlzZmllZCBhbmQgRmFsc2UgaWYgdGhlcmUgd2FzIGEgcHJvYmxlbS4KKyAgICBpbnB1dF9hcGk6IG9iamVjdCB0byBlbnVtZXJhdGUgdGhlIGFmZmVjdGVkIGZpbGVzLgorICAgIHNvdXJjZV9maWxlX2ZpbHRlcjogYSBmaWx0ZXIgdG8gYmUgcGFzc2VkIHRvIHRoZSBpbnB1dCBhcGkuCisgICAgZXJyb3JfZm9ybWF0dGVyOiBhIGNhbGxhYmxlIHRha2luZyAoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCBsaW5lKSBhbmQKKyAgICAgIHJldHVybmluZyBhIGZvcm1hdHRlZCBlcnJvciBzdHJpbmcuCisKKyAgUmV0dXJuczoKKyAgICBBIGxpc3Qgb2YgdGhlIG5ld2x5LWludHJvZHVjZWQgdmlvbGF0aW9ucyByZXBvcnRlZCBieSB0aGUgcnVsZS4KKyAgIiIiCisgIGVycm9ycyA9IFtdCisgIGZvciBmIGluIGlucHV0X2FwaS5BZmZlY3RlZEZpbGVzKGluY2x1ZGVfZGVsZXRlcz1GYWxzZSk6CisgICAgIyBGb3Igc3BlZWQsIHdlIGRvIHR3byBwYXNzZXMsIGNoZWNraW5nIGZpcnN0IHRoZSBmdWxsIGZpbGUuICBTaGVsbGluZyBvdXQKKyAgICAjIHRvIHRoZSBTQ00gdG8gZGV0ZXJtaW5lIHRoZSBjaGFuZ2VkIHJlZ2lvbiBjYW4gYmUgcXVpdGUgZXhwZW5zaXZlIG9uCisgICAgIyBXaW4zMi4gIEFzc3VtaW5nIHRoYXQgbW9zdCBmaWxlcyB3aWxsIGJlIGtlcHQgcHJvYmxlbS1mcmVlLCB3ZSBjYW4KKyAgICAjIHNraXAgdGhlIFNDTSBvcGVyYXRpb25zIG1vc3Qgb2YgdGhlIHRpbWUuCisgICAgZXh0ZW5zaW9uID0gc3RyKGYuTG9jYWxQYXRoKCkpLnJzcGxpdCgnLicsIDEpWy0xXQorICAgIGlmIGFsbChjYWxsYWJsZV9ydWxlKGV4dGVuc2lvbiwgbGluZSkgZm9yIGxpbmUgaW4gZi5OZXdDb250ZW50cygpKToKKyAgICAgIGNvbnRpbnVlICAjIE5vIHZpb2xhdGlvbiBmb3VuZCBpbiBmdWxsIHRleHQ6IGNhbiBza2lwIGNvbnNpZGVyaW5nIGRpZmYuCisKKyAgICBpZiB0cmFjaW5nX3Byb2plY3QuVHJhY2luZ1Byb2plY3QuSXNJZ25vcmVkRmlsZShmKToKKyAgICAgIGNvbnRpbnVlCisKKyAgICBmb3IgbGluZV9udW0sIGxpbmUgaW4gZi5DaGFuZ2VkQ29udGVudHMoKToKKyAgICAgIGlmIG5vdCBjYWxsYWJsZV9ydWxlKGV4dGVuc2lvbiwgbGluZSk6CisgICAgICAgIGVycm9ycy5hcHBlbmQoZXJyb3JfZm9ybWF0dGVyKGYuTG9jYWxQYXRoKCksIGxpbmVfbnVtLCBsaW5lKSkKKworICByZXR1cm4gZXJyb3JzCisKKworZGVmIENoZWNrQ29weXJpZ2h0KGlucHV0X2FwaSk6CisgIHJlc3VsdHMgPSBbXQorICByZXN1bHRzICs9IF9DaGVja0NvcHlyaWdodFRoaXJkUGFydHkoaW5wdXRfYXBpKQorICByZXN1bHRzICs9IF9DaGVja0NvcHlyaWdodE5vblRoaXJkUGFydHkoaW5wdXRfYXBpKQorICByZXR1cm4gcmVzdWx0cworCisKK2RlZiBfQ2hlY2tDb3B5cmlnaHRUaGlyZFBhcnR5KGlucHV0X2FwaSk6CisgIHJlc3VsdHMgPSBbXQorICBoYXNfdGhpcmRfcGFydHlfY2hhbmdlID0gYW55KAorICAgICAgdHJhY2luZ19wcm9qZWN0LlRyYWNpbmdQcm9qZWN0LklzVGhpcmRQYXJ0eShmKQorICAgICAgZm9yIGYgaW4gaW5wdXRfYXBpLkFmZmVjdGVkRmlsZXMoaW5jbHVkZV9kZWxldGVzPUZhbHNlKSkKKyAgaWYgaGFzX3RoaXJkX3BhcnR5X2NoYW5nZToKKyAgICB0cmFjaW5nX3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgoCisgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKKyAgICB0cmFjaW5nX3RoaXJkX3BhcnR5ID0gb3MucGF0aC5qb2luKHRyYWNpbmdfcm9vdCwgJ3RyYWNpbmcnLCAndGhpcmRfcGFydHknKQorICAgIGhhc19pbnZhbGlkX2xpY2Vuc2UgPSBjaGVja2xpY2Vuc2VzLmNoZWNrX2xpY2Vuc2VzKAorICAgICAgICB0cmFjaW5nX3Jvb3QsIHRyYWNpbmdfdGhpcmRfcGFydHkpCisgICAgaWYgaGFzX2ludmFsaWRfbGljZW5zZToKKyAgICAgIHJlc3VsdHMuYXBwZW5kKAorICAgICAgICAgICdMaWNlbnNlIGNoZWNrIGVuY291bnRlcmVkIGludmFsaWQgbGljZW5zZXMgaW4gdHJhY2luZy90aGlyZF9wYXJ0eS8uJykKKyAgcmV0dXJuIHJlc3VsdHMKKworCitkZWYgX0NoZWNrQ29weXJpZ2h0Tm9uVGhpcmRQYXJ0eShpbnB1dF9hcGkpOgorICBwcm9qZWN0X25hbWUgPSAnQ2hyb21pdW0nCisKKyAgY3VycmVudF95ZWFyID0gaW50KHRpbWUuc3RyZnRpbWUoJyVZJykpCisgIGFsbG93X29sZF95ZWFycz1UcnVlCisgIGlmIGFsbG93X29sZF95ZWFyczoKKyAgICBhbGxvd2VkX3llYXJzID0gKHN0cihzKSBmb3IgcyBpbiByZXZlcnNlZCh4cmFuZ2UoMjAwNiwgY3VycmVudF95ZWFyICsgMSkpKQorICBlbHNlOgorICAgIGFsbG93ZWRfeWVhcnMgPSBbc3RyKGN1cnJlbnRfeWVhcildCisgIHllYXJzX3JlID0gJygnICsgJ3wnLmpvaW4oYWxsb3dlZF95ZWFycykgKyAnKScKKworICAjIFRoZSAoYykgaXMgZGVwcmVjYXRlZCwgYnV0IHRvbGVyYXRlIGl0IHVudGlsIGl0J3MgcmVtb3ZlZCBmcm9tIGFsbCBmaWxlcy4KKyAgbm9uX2h0bWxfbGljZW5zZV9oZWFkZXIgPSAoCisgICAgICByJy4qPyBDb3B5cmlnaHQgKFwoY1wpICk/JSh5ZWFyKXMgVGhlICUocHJvamVjdClzIEF1dGhvcnNcLiAnCisgICAgICAgIHInQWxsIHJpZ2h0cyByZXNlcnZlZFwuXG4nCisgICAgICByJy4qPyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgJworICAgICAgICByJ2NhbiBiZVxuJworICAgICAgcicuKj8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVwuKD86IFwqLyk/XG4nCisgICkgJSB7CisgICAgICAneWVhcic6IHllYXJzX3JlLAorICAgICAgJ3Byb2plY3QnOiBwcm9qZWN0X25hbWUsCisgIH0KKyAgbm9uX2h0bWxfbGljZW5zZV9yZSA9IHJlLmNvbXBpbGUobm9uX2h0bWxfbGljZW5zZV9oZWFkZXIsIHJlLk1VTFRJTElORSkKKworICBodG1sX2xpY2Vuc2VfaGVhZGVyID0gKAorICAgICAgcideQ29weXJpZ2h0IChcKGNcKSApPyUoeWVhcilzIFRoZSAlKHByb2plY3QpcyBBdXRob3JzXC4gJworICAgICAgICByJ0FsbCByaWdodHMgcmVzZXJ2ZWRcLlxuJworICAgICAgcidVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgJworICAgICAgICByJ2NhbiBiZVxuJworICAgICAgcidmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlXC4oPzogXCovKT9cbicKKyAgKSAlIHsKKyAgICAgICd5ZWFyJzogeWVhcnNfcmUsCisgICAgICAncHJvamVjdCc6IHByb2plY3RfbmFtZSwKKyAgfQorICBodG1sX2xpY2Vuc2VfcmUgPSByZS5jb21waWxlKGh0bWxfbGljZW5zZV9oZWFkZXIsIHJlLk1VTFRJTElORSkKKworICBzb3VyY2VzID0gbGlzdChzIGZvciBzIGluIGlucHV0X2FwaS5BZmZlY3RlZEZpbGVzKGluY2x1ZGVfZGVsZXRlcz1GYWxzZSkKKyAgICAgICAgICAgICAgICAgaWYgbm90IHRyYWNpbmdfcHJvamVjdC5UcmFjaW5nUHJvamVjdC5Jc1RoaXJkUGFydHkocykpCisKKyAgaHRtbF9zb3VyY2VzID0gW2YgZm9yIGYgaW4gc291cmNlcworICAgICAgICAgICAgICAgICAgaWYgb3MucGF0aC5zcGxpdGV4dChmLkxvY2FsUGF0aCgpKVsxXSA9PSAnLmh0bWwnXQorICBub25faHRtbF9zb3VyY2VzID0gW2YgZm9yIGYgaW4gc291cmNlcworICAgICAgICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguc3BsaXRleHQoZi5Mb2NhbFBhdGgoKSlbMV0gIT0gJy5odG1sJ10KKworICByZXN1bHRzID0gW10KKyAgcmVzdWx0cyArPSBfQ2hlY2soaW5wdXRfYXBpLCBodG1sX2xpY2Vuc2VfcmUsIGh0bWxfc291cmNlcykKKyAgcmVzdWx0cyArPSBfQ2hlY2soaW5wdXRfYXBpLCBub25faHRtbF9saWNlbnNlX3JlLCBub25faHRtbF9zb3VyY2VzKQorICByZXR1cm4gcmVzdWx0cworCisKK2RlZiBfQ2hlY2soaW5wdXRfYXBpLCBsaWNlbnNlX3JlLCBzb3VyY2VzKToKKyAgYmFkX2ZpbGVzID0gW10KKyAgZm9yIGYgaW4gc291cmNlczoKKyAgICBpZiB0cmFjaW5nX3Byb2plY3QuVHJhY2luZ1Byb2plY3QuSXNJZ25vcmVkRmlsZShmKToKKyAgICAgIGNvbnRpbnVlCisgICAgY29udGVudHMgPSAnXG4nLmpvaW4oZi5OZXdDb250ZW50cygpKQorICAgIGlmIG5vdCBsaWNlbnNlX3JlLnNlYXJjaChjb250ZW50cyk6CisgICAgICBiYWRfZmlsZXMuYXBwZW5kKGYuTG9jYWxQYXRoKCkpCisgIGlmIGJhZF9maWxlczoKKyAgICByZXR1cm4gW19Gb3JtYXRFcnJvcigKKyAgICAgICAgJ0xpY2Vuc2UgbXVzdCBtYXRjaDpcbiVzXG4nICUgbGljZW5zZV9yZS5wYXR0ZXJuICsKKyAgICAgICAgJ0ZvdW5kIGEgYmFkIGxpY2Vuc2UgaGVhZGVyJywKKyAgICAgICAgYmFkX2ZpbGVzKV0KKyAgcmV0dXJuIFtdCisKKworZGVmIENoZWNrTG9uZ0xpbmVzKGlucHV0X2FwaSwgbWF4bGVuPTgwKToKKyAgIiIiQ2hlY2tzIHRoZSBsaW5lIGxlbmd0aCBpbiBhbGwgdGV4dCBmaWxlcyB0byBiZSBzdWJtaXR0ZWQuIiIiCisgIG1heGxlbnMgPSB7CisgICAgICAnJzogbWF4bGVuLAorICB9CisKKyAgIyBMYW5ndWFnZSBzcGVjaWZpYyBleGNlcHRpb25zIHRvIG1heCBsaW5lIGxlbmd0aC4KKyAgIyAnLmgnIGlzIGNvbnNpZGVyZWQgYW4gb2JqLWMgZmlsZSBleHRlbnNpb24sIHNpbmNlIE9CSkNfRVhDRVBUSU9OUyBhcmUgYQorICAjIHN1cGVyc2V0IG9mIENQUF9FWENFUFRJT05TLgorICBDUFBfRklMRV9FWFRTID0gKCdjJywgJ2NjJykKKyAgQ1BQX0VYQ0VQVElPTlMgPSAoJyNkZWZpbmUnLCAnI2VuZGlmJywgJyNpZicsICcjaW5jbHVkZScsICcjcHJhZ21hJykKKyAgSkFWQV9GSUxFX0VYVFMgPSAoJ2phdmEnLCkKKyAgSkFWQV9FWENFUFRJT05TID0gKCdpbXBvcnQgJywgJ3BhY2thZ2UgJykKKyAgT0JKQ19GSUxFX0VYVFMgPSAoJ2gnLCAnbScsICdtbScpCisgIE9CSkNfRVhDRVBUSU9OUyA9ICgnI2RlZmluZScsICcjZW5kaWYnLCAnI2lmJywgJyNpbXBvcnQnLCAnI2luY2x1ZGUnLAorICAgICAgICAgICAgICAgICAgICAgJyNwcmFnbWEnKQorCisgIExBTkdVQUdFX0VYQ0VQVElPTlMgPSBbCisgICAgICAoQ1BQX0ZJTEVfRVhUUywgQ1BQX0VYQ0VQVElPTlMpLAorICAgICAgKEpBVkFfRklMRV9FWFRTLCBKQVZBX0VYQ0VQVElPTlMpLAorICAgICAgKE9CSkNfRklMRV9FWFRTLCBPQkpDX0VYQ0VQVElPTlMpLAorICBdCisKKyAgZGVmIG5vX2xvbmdfbGluZXMoZmlsZV9leHRlbnNpb24sIGxpbmUpOgorICAgICMgQ2hlY2sgZm9yIGxhbmd1YWdlIHNwZWNpZmljIGV4Y2VwdGlvbnMuCisgICAgaWYgYW55KGZpbGVfZXh0ZW5zaW9uIGluIGV4dHMgYW5kIGxpbmUuc3RhcnRzd2l0aChleGNlcHRpb25zKQorICAgICAgICAgICBmb3IgZXh0cywgZXhjZXB0aW9ucyBpbiBMQU5HVUFHRV9FWENFUFRJT05TKToKKyAgICAgIHJldHVybiBUcnVlCisKKyAgICBmaWxlX21heGxlbiA9IG1heGxlbnMuZ2V0KGZpbGVfZXh0ZW5zaW9uLCBtYXhsZW5zWycnXSkKKyAgICAjIFN0dXBpZGx5IGxvbmcgc3ltYm9scyB0aGF0IG5lZWRzIHRvIGJlIHdvcmtlZCBhcm91bmQgaWYgdGFrZXMgNjYlIG9mIGxpbmUuCisgICAgbG9uZ19zeW1ib2wgPSBmaWxlX21heGxlbiAqIDIgLyAzCisgICAgIyBIYXJkIGxpbmUgbGVuZ3RoIGxpbWl0IGF0IDUwJSBtb3JlLgorICAgIGV4dHJhX21heGxlbiA9IGZpbGVfbWF4bGVuICogMyAvIDIKKworICAgIGxpbmVfbGVuID0gbGVuKGxpbmUpCisgICAgaWYgbGluZV9sZW4gPD0gZmlsZV9tYXhsZW46CisgICAgICByZXR1cm4gVHJ1ZQorCisgICAgaWYgJ0BzdXBwcmVzcyBsb25nTGluZUNoZWNrJyBpbiBsaW5lOgorICAgICAgcmV0dXJuIFRydWUKKworICAgIGlmIGxpbmVfbGVuID4gZXh0cmFfbWF4bGVuOgorICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBpZiBhbnkoKHVybCBpbiBsaW5lKSBmb3IgdXJsIGluICgnZmlsZTovLycsICdodHRwOi8vJywgJ2h0dHBzOi8vJykpOgorICAgICAgcmV0dXJuIFRydWUKKworICAgIGlmICd1cmwoJyBpbiBsaW5lIGFuZCBmaWxlX2V4dGVuc2lvbiA9PSAnY3NzJzoKKyAgICAgIHJldHVybiBUcnVlCisKKyAgICBpZiAnPGluY2x1ZGUnIGluIGxpbmUgYW5kIGZpbGVfZXh0ZW5zaW9uIGluICgnY3NzJywgJ2h0bWwnLCAnanMnKToKKyAgICAgIHJldHVybiBUcnVlCisKKyAgICByZXR1cm4gcmUubWF0Y2goCisgICAgICAgIHInLipbQS1aYS16XVtBLVphLXpfMC05XXslZCx9LionICUgbG9uZ19zeW1ib2wsIGxpbmUpCisKKyAgZGVmIGZvcm1hdF9lcnJvcihmaWxlbmFtZSwgbGluZV9udW0sIGxpbmUpOgorICAgIHJldHVybiAnJXMsIGxpbmUgJXMsICVzIGNoYXJzJyAlIChmaWxlbmFtZSwgbGluZV9udW0sIGxlbihsaW5lKSkKKworICBlcnJvcnMgPSBfRmluZE5ld1Zpb2xhdGlvbnNPZlJ1bGUobm9fbG9uZ19saW5lcywgaW5wdXRfYXBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZm9ybWF0dGVyPWZvcm1hdF9lcnJvcikKKyAgaWYgZXJyb3JzOgorICAgIHJldHVybiBbX0Zvcm1hdEVycm9yKAorICAgICAgICAnRm91bmQgbGluZXMgbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycycgJSBtYXhsZW4sCisgICAgICAgIGVycm9ycyldCisgIGVsc2U6CisgICAgcmV0dXJuIFtdCisKK2RlZiBDaGVja0NoYW5nZUxvZ0J1ZyhpbnB1dF9hcGkpOgorICByZXN1bHRzID0gW10KKyAgaWYgaW5wdXRfYXBpLmNoYW5nZS5CVUcgaXMgTm9uZSBvciByZS5tYXRjaCgnXCNcZCskJywgaW5wdXRfYXBpLmNoYW5nZS5CVUcpOgorICAgIHJldHVybiBbXQorICByZXR1cm4gWygnSW52YWxpZCBidWcgIiVzIi4gQlVHPSBzaG91bGQgZWl0aGVyIG5vdCBiZSBwcmVzZW50IG9yIHN0YXJ0JworICAgICAgICAgICAnIHdpdGggIyBmb3IgYSBnaXRodWIgaXNzdWUuJyAlIGlucHV0X2FwaS5jaGFuZ2UuQlVHKV0KKworCitkZWYgUnVuQ2hlY2tzKGlucHV0X2FwaSk6CisgIHJlc3VsdHMgPSBbXQorICByZXN1bHRzICs9IENoZWNrQ29weXJpZ2h0KGlucHV0X2FwaSkKKyAgcmVzdWx0cyArPSBDaGVja0xvbmdMaW5lcyhpbnB1dF9hcGkpCisgIHJlc3VsdHMgKz0gQ2hlY2tDaGFuZ2VMb2dCdWcoaW5wdXRfYXBpKQorICByZXR1cm4gcmVzdWx0cwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2NvZGVyZXZpZXcuc2V0dGluZ3MgYi90cmFjZS12aWV3ZXIvY29kZXJldmlldy5zZXR0aW5ncwppbmRleCBjMTc2MTRmLi43ZTkyZDkzIDEwMDY0NAotLS0gYS90cmFjZS12aWV3ZXIvY29kZXJldmlldy5zZXR0aW5ncworKysgYi90cmFjZS12aWV3ZXIvY29kZXJldmlldy5zZXR0aW5ncwpAQCAtMSw1ICsxLDUgQEAKICMgVGhpcyBmaWxlIGlzIHVzZWQgYnkgZ2NsIHRvIGdldCByZXBvc2l0b3J5IHNwZWNpZmljIGluZm9ybWF0aW9uLgogQ09ERV9SRVZJRVdfU0VSVkVSOiBjb2RlcmV2aWV3LmFwcHNwb3QuY29tCi1DQ19MSVNUOiB0cmFjZS12aWV3ZXItcmV2aWV3QGdvb2dsZWdyb3Vwcy5jb20KK0NDX0xJU1Q6IHRyYWNpbmctcmV2aWV3QGNocm9taXVtLm9yZwogVklFV19WQzogaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2V4dGVybmFsL3RyYWNlLXZpZXdlci8rLwogUFJPSkVDVDogdHJhY2Utdmlld2VyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvZXhhbXBsZXMvY2hyb21lX2luc3BlY3RfdGVzdF9zaGVsbC5odG1sIGIvdHJhY2Utdmlld2VyL2V4YW1wbGVzL2Nocm9tZV9pbnNwZWN0X3Rlc3Rfc2hlbGwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTY3OTBiOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvZXhhbXBsZXMvY2hyb21lX2luc3BlY3RfdGVzdF9zaGVsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxoZWFkPgotPHRpdGxlPmNocm9tZTovL2luc3BlY3QgdGVzdCBzaGVsbDwvdGl0bGU+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Ci0KLTxzY3JpcHQgc3JjPSIvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy5qcyI+PC9zY3JpcHQ+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3Lmh0bWwiPgotCi08c3R5bGU+Ci0gIGJvZHkgewotICAgIG1hcmdpbjogMDsKLSAgICBwYWRkaW5nOiAwOwotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwJTsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICB9Ci0KLSAgYm9keSA+IHgtcHJvZmlsaW5nLXZpZXcgewotICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwcHg7Ci0gICAgYm90dG9tOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gIH0KLQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgdmFyIHByb2ZpbGluZ1ZpZXdFbDsKLQotICBmdW5jdGlvbiBvbkxvYWQoKSB7Ci0gICAgaWYgKHdpbmRvdy5EZXZUb29sc0hvc3QgPT09IHVuZGVmaW5lZCkgewotICAgICAgdHIuc2hvd1BhbmljKAotICAgICAgICAgICdUaGlzIHBhZ2Ugb25seSB3b3JrcyB3aGVuIGxhdW5jaGVkIGZyb20gY2hyb21lOi8vaW5zcGVjdCcsCi0gICAgICAgICAgJ1RyeSBnb2luZyB0byAnICsKLSAgICAgICAgICAnY2hyb21lOi8vaW5zcGVjdC8/YnJvd3Nlci1pbnNwZWN0b3I9JyArCi0gICAgICAgICAgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMy9leGFtcGxlcy9jaHJvbWVfaW5zcGVjdF90ZXN0X3NoZWxsLmh0bWwnICsKLSAgICAgICAgICAnI2RldmljZXMgJyArCi0gICAgICAgICAgJ2FuZCB0aGVuIGNsaWNraW5nIHRoZSBpbnNwZWN0IGxpbmsgb24gYSBicm93c2VyJyk7Ci0KLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB2YXIgdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLkluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50KCk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgcHJvZmlsaW5nVmlld0VsID0gbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5Qcm9maWxpbmdWaWV3KHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHByb2ZpbGluZ1ZpZXdFbCk7Ci0gIH0KLSAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkxvYWQpOwotICA8L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9leGFtcGxlcy9kZWVwX3JlcG9ydHMuaHRtbCBiL3RyYWNlLXZpZXdlci9leGFtcGxlcy9kZWVwX3JlcG9ydHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRkZWY2MC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvZXhhbXBsZXMvZGVlcF9yZXBvcnRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxoZWFkPgotPHRpdGxlPkRlZXAgaW5zaWdodHMgdmlhIEJ1bGsgVHJhY2UgQW5hbHlzaXM8L3RpdGxlPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotCi08c2NyaXB0IHNyYz0iL2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMuanMiPjwvc2NyaXB0PgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3RyYWNlX3ZpZXdlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Z1bGxfY29uZmlnLmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9kZWVwX3JlcG9ydHMvbWFpbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2RlZXBfcmVwb3J0cy9odG1sX3Jlc3VsdHMuaHRtbCI+Ci08c3R5bGU+Ci0gIGJvZHkgewotICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwotICB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gIDxzZWxlY3QgaWQ9InRyYWNlLWRpciI+PC9zZWxlY3Q+Ci0gIDx0ci1lLWRyLWh0bWwtcmVzdWx0cyBpZD0icmVzdWx0cyI+PC90ci1lLWRyLWh0bWwtcmVzdWx0cz4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIGZ1bmN0aW9uIG9uTG9hZCgpIHsKLSAgICB0ci5iLmdldEFzeW5jKCcvanNvbi9leGFtcGxlcycpLnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0cmFjZS1maWxlJyk7Ci0gICAgICB2YXIgYWxsX2ZpbGVzID0gSlNPTi5wYXJzZShkYXRhKTsKLSAgICAgIHZhciBmaWxlcyA9IGFsbF9maWxlcy5maWx0ZXIoZnVuY3Rpb24oZmlsZSkgewotICAgICAgICBpZiAoIWZpbGUuc3RhcnRzV2l0aCgnbWVhc3VybXQtdHJhY2VzLycpKQotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKGZpbGUgPT09ICdtZWFzdXJtdC10cmFjZXMvUkVBRE1FLm1kJykKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgICAgfSk7Ci0KLSAgICAgIHZhciBmaWxlbmFtZXMgPSBmaWxlcy5tYXAoZnVuY3Rpb24oZmlsZSkgewotICAgICAgICByZXR1cm4gJy4uL3Rlc3RfZGF0YS8nICsgZmlsZTsKLSAgICAgIH0pOwotICAgICAgaW5pdFVJKGZpbGVuYW1lcyk7Ci0gICAgfSk7Ci0gIH0KLSAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkxvYWQpOwotCi0gIGZ1bmN0aW9uIGluaXRVSShmaWxlcykgewotICAgIC8vIEdyb3Vwcy4KLSAgICB2YXIgZmlsZXNCeURpck5hbWUgPSB7fTsKLSAgICBmaWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGZpbGUpIHsKLSAgICAgIHZhciByZXN0ID0gL21lYXN1cm10LXRyYWNlc1wvKC4rKS8uZXhlYyhmaWxlKVsxXTsKLQotICAgICAgLy8gRmluZCBzdWJkaXJlY3Rvcmllcy4KLSAgICAgIHZhciBtID0gLyguKz8pXC8oLiopLy5leGVjKHJlc3QpOwotICAgICAgdmFyIGRpck5hbWUgPSBtWzFdOwotICAgICAgdmFyIGJhc2VOYW1lID0gbVsyXTsKLSAgICAgIGlmIChiYXNlTmFtZSA9PSAncmFpbF9leHBlY3RhdGlvbnMuanNvbicpIHsKLSAgICAgICAgLy8gVE9ETyhuZHVjYSk6IFN0YXNoIHRoaXMgc29tZXdoZXJlIGVsc2UuCi0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGlmIChiYXNlTmFtZS5lbmRzV2l0aCgnLm1wNCcpKSB7Ci0gICAgICAgIC8vIFRPRE8obmR1Y2EpOiBTdGFzaCB0aGlzIHNvbWV3aGVyZSBlbHNlLgotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICBpZiAoZmlsZXNCeURpck5hbWVbZGlyTmFtZV0gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgZmlsZXNCeURpck5hbWVbZGlyTmFtZV0gPSBbXTsKLSAgICAgIGZpbGVzQnlEaXJOYW1lW2Rpck5hbWVdLnB1c2goZmlsZSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgc2VsZWN0RWwgPSBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3IoJyN0cmFjZS1kaXInKTsKLSAgICBzZWxlY3RFbC5maWxlc0J5RGlyTmFtZSA9IGZpbGVzQnlEaXJOYW1lOwotCi0gICAgdHIuYi5pdGVySXRlbXMoZmlsZXNCeURpck5hbWUsIGZ1bmN0aW9uKGRpck5hbWUsIGZpbGVzSW5EaXIpIHsKLSAgICAgIHZhciBydW5FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwotICAgICAgcnVuRWwudGV4dENvbnRlbnQgPSBkaXJOYW1lICsgJzogJyArIGZpbGVzSW5EaXIubGVuZ3RoICsgJyB0cmFjZXMnOwotICAgICAgcnVuRWwudmFsdWUgPSBkaXJOYW1lOwotICAgICAgc2VsZWN0RWwuYXBwZW5kQ2hpbGQocnVuRWwpOwotICAgIH0pOwotCi0gICAgc2VsZWN0RWwuc2VsZWN0ZWRJbmRleCA9IDA7Ci0gICAgc2VsZWN0RWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25TZWxlY3Rpb25DaGFuZ2UpOwotICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHsKLSAgICAgIC8vIFRoaXMgd2lsbCB0cmlnZ2VyIGFuIG9uSGFzaENoYW5nZSBzbyBubyBuZWVkIHRvIHJlbG9hZCBkaXJlY3RseS4KLSAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyMnICsgc2VsZWN0RWxbc2VsZWN0RWwuc2VsZWN0ZWRJbmRleF0udmFsdWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgIG9uSGFzaENoYW5nZSgpOwotICAgIH0KLSAgfQotCi0gIGZ1bmN0aW9uIG9uU2VsZWN0aW9uQ2hhbmdlKCkgewotICAgIHZhciBzZWxlY3RFbCA9IGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcignI3RyYWNlLWRpcicpOwotICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyMnICsgc2VsZWN0RWxbc2VsZWN0RWwuc2VsZWN0ZWRJbmRleF0udmFsdWU7Ci0gIH0KLQotICBmdW5jdGlvbiBvbkhhc2hDaGFuZ2UoKSB7Ci0gICAgdmFyIGZpbGUgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoMSk7Ci0gICAgdmFyIHNlbGVjdEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RyYWNlLWRpcicpOwotICAgIGlmIChzZWxlY3RFbFtzZWxlY3RFbC5zZWxlY3RlZEluZGV4XS52YWx1ZSAhPSBmaWxlKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdEVsLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChzZWxlY3RFbC5jaGlsZHJlbltpXS52YWx1ZSA9PSBmaWxlKSB7Ci0gICAgICAgICAgc2VsZWN0RWwuc2VsZWN0ZWRJbmRleCA9IGk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgcmVsb2FkKCk7Ci0gIH0KLSAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLCBvbkhhc2hDaGFuZ2UpOwotCi0gIGZ1bmN0aW9uIHJlbG9hZCgpIHsKLSAgICB2YXIgZGlyTmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTsKLSAgICB2YXIgc2VsZWN0RWwgPSBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3IoJyN0cmFjZS1kaXInKTsKLSAgICB2YXIgZmlsZXNJbkRpciA9IHNlbGVjdEVsLmZpbGVzQnlEaXJOYW1lW2Rpck5hbWVdOwotICAgIHZhciByZXN1bHRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Jlc3VsdHMnKTsKLSAgICByZXN1bHRzLmNsZWFyKCk7Ci0gICAgdHIuZS5kZWVwX3JlcG9ydHMubWFpbihyZXN1bHRzLCBmaWxlc0luRGlyKS50aGVuKAotICAgICAgZnVuY3Rpb24gc3VjY2VzcygpIHsKLSAgICAgIH0sCi0gICAgICBmdW5jdGlvbiBlcnJvcihlcnIpIHsKLSAgICAgICAgdHIuc2hvd1BhbmljKCdFcnJvcicsIGVycik7Ci0gICAgICB9KTsKLSAgfQotICA8L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9leGFtcGxlcy9za2lhX2RlYnVnZ2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvZXhhbXBsZXMvc2tpYV9kZWJ1Z2dlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjk5NzFhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci9leGFtcGxlcy9za2lhX2RlYnVnZ2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxoZWFkPgotPHRpdGxlPlNraWEgRGVidWdnZXI8L3RpdGxlPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotCi08c2NyaXB0IHNyYz0iL2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMuanMiPjwvc2NyaXB0PgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2MvcGljdHVyZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbCI+Ci0KLTxzY3JpcHQgc3JjPSJzdHJpbmdfY29udmVydC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0gIHBpY3R1cmUtb3BzLWxpc3QtdmlldyB7Ci0gICAgaGVpZ2h0OiA1MDBweDsKLSAgICBvdmVyZmxvdy15OiBhdXRvOwotICB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gIDxkaXYgY2xhc3M9ImhlYWRlciI+Ci0gICAgPHNlbGVjdCBpZD0ic2twX2ZpbGUiPjwvc2VsZWN0PgotICA8L2Rpdj4KLQotICA8ZGl2IGNsYXNzPSJ2aWV3Ij48L2Rpdj4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIHZhciBkZWJ1Z2dlckVsOwotCi0gIGZ1bmN0aW9uIGdldFBpY3R1cmUoc2twNjQpIHsKLSAgICBpZiAoIXRyLmUuY2MuUGljdHVyZVNuYXBzaG90LkNhbkdldEluZm8oKSkgewotICAgICAgY29uc29sZS5lcnJvcih0ci5lLmNjLlBpY3R1cmVTbmFwc2hvdC5Ib3dUb0VuYWJsZVBpY3R1cmVEZWJ1Z2dpbmcoKSk7Ci0KLSAgICAgIHZhciBpbmZvQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1pbmZvLWJhcicpOwotICAgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudmlldycpOwotCi0gICAgICB2aWV3LnJlbW92ZUNoaWxkKGRlYnVnZ2VyRWwpOwotICAgICAgZGVidWdnZXJFbCA9IHVuZGVmaW5lZDsKLQotICAgICAgdmlldy5hcHBlbmRDaGlsZChpbmZvQmFyKTsKLQotICAgICAgaW5mb0Jhci5tZXNzYWdlID0gdHIuZS5jYy5QaWN0dXJlU25hcHNob3QuSG93VG9FbmFibGVQaWN0dXJlRGVidWdnaW5nKCk7Ci0gICAgICBpbmZvQmFyLnZpc2libGUgPSB0cnVlOwotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICB2YXIgc2l6ZSA9IGNocm9tZS5za2lhQmVuY2htYXJraW5nLmdldEluZm8oc2twNjQpOwotICAgIGlmIChzaXplID09PSB1bmRlZmluZWQpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBnZXQgcGljdHVyZSBpbmZvcm1hdGlvbicpOwotCi0gICAgcmV0dXJuIG5ldyB0ci5lLmNjLlBpY3R1cmUoc2twNjQsCi0gICAgICAgIHRyLlJlY3QuZnJvbVhZV0goMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpLAotICAgICAgICB0ci5SZWN0LmZyb21YWVdIKDAsIDAsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KSk7Ci0gIH0KLQotICBmdW5jdGlvbiB1dGY4X3RvX2I2NChzdHIpIHsKLSAgICByZXR1cm4gd2luZG93LmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikpKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGxvYWRTa3AoZmlsZW5hbWUsIG9uU2twTG9hZGVkKSB7Ci0gICAgZ2V0QXN5bmMoZmlsZW5hbWUsIGZ1bmN0aW9uKGFycikgewotICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShhcnIpOwotICAgICAgdmFyIGRhdGEgPSBiYXNlNjRFbmNBcnIodmlldywgMSk7Ci0gICAgICBvblNrcExvYWRlZChmaWxlbmFtZSwgZGF0YSk7Ci0gICAgfSwnYXJyYXlidWZmZXInKTsKLSAgfQotICBmdW5jdGlvbiBZbG9hZFNrcChmaWxlbmFtZSwgb25Ta3BMb2FkZWQpIHsKLSAgICBnZXRBc3luYyhmaWxlbmFtZSwgZnVuY3Rpb24oZGF0YSkgewotICAgICAgdmFyIGRhdGE2NCA9IHV0ZjhfdG9fYjY0KGRhdGEpOwotICAgICAgb25Ta3BMb2FkZWQoZmlsZW5hbWUsIGRhdGE2NCk7Ci0gICAgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRBc3luYyh1cmwsIGNhbGxiYWNrLCBvcHRfcmVzcG9uc2VUeXBlKSB7Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIGlmIChvcHRfcmVzcG9uc2VUeXBlKQotICAgICAgcmVxLnJlc3BvbnNlVHlwZSA9IG9wdF9yZXNwb25zZVR5cGU7Ci0gICAgcmVxLm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7Ci0gICAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGFFdnQpIHsKLSAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PT0gNCkgewotICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAocmVxLnN0YXR1cyA9PT0gMjAwKSB7Ci0gICAgICAgICAgICBpZiAob3B0X3Jlc3BvbnNlVHlwZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICBjYWxsYmFjayhyZXEucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgY2FsbGJhY2socmVxLnJlc3BvbnNlKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZhaWxlZCB0byBsb2FkICcgKyB1cmwpOwotICAgICAgICAgIH0KLSAgICAgICAgfSwgMCk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICByZXEuc2VuZChudWxsKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0ZVZpZXdGcm9tU2twKGZpbGVuYW1lLCBza3ApIHsKLSAgICB2YXIgcCA9IGdldFBpY3R1cmUoc2twKTsKLSAgICBpZiAocCA9PT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuOwotICAgIGRlYnVnZ2VyRWwucGljdHVyZSA9IHA7Ci0gIH0KLQotICBmdW5jdGlvbiBvblNlbGVjdGlvbkNoYW5nZSgpIHsKLSAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NrcF9maWxlJyk7Ci0gICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnIycgKyBzZWxlY3Rbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwotICB9Ci0KLSAgZnVuY3Rpb24gb25IYXNoQ2hhbmdlKCkgewotICAgIHZhciBmaWxlID0gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpOwotICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2twX2ZpbGUnKTsKLSAgICBpZiAoc2VsZWN0W3NlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZSAhPSBmaWxlKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdC5jaGlsZHJlbi5sZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoc2VsZWN0LmNoaWxkcmVuW2ldLnZhbHVlID09IGZpbGUpIHsKLSAgICAgICAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IGk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgcmVsb2FkKCk7Ci0gIH0KLQotICBmdW5jdGlvbiBjbGVhbkZpbGVuYW1lKGZpbGUpIHsKLSAgICBmdW5jdGlvbiB1cGNhc2UobGV0dGVyKSB7Ci0gICAgICByZXR1cm4gJyAnICsgbGV0dGVyLnRvVXBwZXJDYXNlKCk7Ci0gICAgfQotICAgIHJldHVybiBmaWxlLnJlcGxhY2UoL18vZywgJyAnKQotICAgICAgICAgICAgICAgLnJlcGxhY2UoL1wuW15cLl0qJC8sICcnKQotICAgICAgICAgICAgICAgLnJlcGxhY2UoLyAoW2Etel0pL2csIHVwY2FzZSkKLSAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eW2Etel0vLCB1cGNhc2UpOwotICB9Ci0KLSAgZnVuY3Rpb24gcmVsb2FkKCkgewotICAgIHZhciBmaWxlID0gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpOwotICAgIHZhciBmaWxlbmFtZSA9ICcvc2twX2RhdGEvJyArIGZpbGU7Ci0gICAgbG9hZFNrcChmaWxlbmFtZSwgY3JlYXRlVmlld0Zyb21Ta3ApOwotICB9Ci0KLSAgZnVuY3Rpb24gb25Mb2FkKCkgewotICAgIGRlYnVnZ2VyRWwgPSBuZXcgdHIuZS5jYy5QaWN0dXJlRGVidWdnZXIoKTsKLSAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudmlldycpLmFwcGVuZENoaWxkKGRlYnVnZ2VyRWwpOwotCi0gICAgZ2V0QXN5bmMoJy9qc29uL2V4YW1wbGVzL3NrcCcsIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2twX2ZpbGUnKTsKLSAgICAgIHZhciBmaWxlcyA9IEpTT04ucGFyc2UoZGF0YSk7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG9wdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwotICAgICAgICBvcHQudmFsdWUgPSBmaWxlc1tpXTsKLSAgICAgICAgb3B0LnRleHRDb250ZW50ID0gY2xlYW5GaWxlbmFtZShmaWxlc1tpXSk7Ci0gICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHQpOwotICAgICAgfQotICAgICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSAwOwotICAgICAgc2VsZWN0Lm9uY2hhbmdlID0gb25TZWxlY3Rpb25DaGFuZ2U7Ci0KLSAgICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHsKLSAgICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgYW4gb25IYXNoQ2hhbmdlIHNvIG5vIG5lZWQgdG8gcmVsb2FkIGRpcmVjdGx5LgotICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICcjJyArIHNlbGVjdFtzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBvbkhhc2hDaGFuZ2UoKTsKLSAgICAgIH0KLSAgICB9KTsKLSAgfQotCi0gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdoYXNoY2hhbmdlJywgb25IYXNoQ2hhbmdlKTsKLSAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkxvYWQpOwotICA8L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9leGFtcGxlcy90cmFjZV92aWV3ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci9leGFtcGxlcy90cmFjZV92aWV3ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQyY2FhMS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvZXhhbXBsZXMvdHJhY2Vfdmlld2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxoZWFkPgotPHRpdGxlPlNpbXBsZSBFbWJlZGRlZCBWaWV3ZXI8L3RpdGxlPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotCi08c2NyaXB0IHNyYz0iL2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMuanMiPjwvc2NyaXB0PgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii90cmFjZV92aWV3ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZnVsbF9jb25maWcuaHRtbCI+Ci08c3R5bGU+Ci0gIGh0bWwsCi0gIGJvZHkgewotICAgIGhlaWdodDogMTAwJTsKLSAgfQotCi0gIGJvZHkgewotICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgbWFyZ2luOiAwOwotICAgIHBhZGRpbmc6IDA7Ci0gIH0KLQotICBib2R5ID4geC10aW1lbGluZS12aWV3IHsKLSAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAgIG1pbi1oZWlnaHQ6IDA7Ci0gIH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPHgtdGltZWxpbmUtdmlldz4KLSAgPC94LXRpbWVsaW5lLXZpZXc+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIHZhciB0aW1lbGluZVZpZXdFbDsKLQotICBmdW5jdGlvbiBsb2FkVHJhY2VzKGZpbGVuYW1lcywgb25UcmFjZXNMb2FkZWQpIHsKLSAgICB2YXIgdHJhY2VzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlbmFtZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgIHRyYWNlcy5wdXNoKHVuZGVmaW5lZCk7Ci0gICAgfQotICAgIHZhciBudW1UcmFjZXNQZW5kaW5nID0gZmlsZW5hbWVzLmxlbmd0aDsKLQotICAgIGZpbGVuYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGZpbGVuYW1lLCBpKSB7Ci0gICAgICBnZXRBc3luYyhmaWxlbmFtZSwgZnVuY3Rpb24odHJhY2UpIHsKLSAgICAgICAgdHJhY2VzW2ldID0gdHJhY2U7Ci0gICAgICAgIG51bVRyYWNlc1BlbmRpbmctLTsKLSAgICAgICAgaWYgKG51bVRyYWNlc1BlbmRpbmcgPT0gMCkKLSAgICAgICAgICBvblRyYWNlc0xvYWRlZChmaWxlbmFtZXMsIHRyYWNlcyk7Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfQotCi0KLSAgZnVuY3Rpb24gZ2V0QXN5bmModXJsLCBjYikgewotICAgIHRyLmIuZ2V0QXN5bmModXJsKS50aGVuKGNiKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0ZVZpZXdGcm9tVHJhY2VzKGZpbGVuYW1lcywgdHJhY2VzKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcCA9IG0uaW1wb3J0VHJhY2VzV2l0aFByb2dyZXNzRGlhbG9nKHRyYWNlcywgdHJ1ZSk7Ci0gICAgcC50aGVuKAotICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRpbWVsaW5lVmlld0VsLm1vZGVsID0gbTsKLSAgICAgICAgdGltZWxpbmVWaWV3RWwudXBkYXRlRG9jdW1lbnRGYXZpY29uKCk7Ci0gICAgICAgIHRpbWVsaW5lVmlld0VsLnRhYkluZGV4ID0gMTsKLSAgICAgICAgaWYgKHRpbWVsaW5lVmlld0VsLnRpbWVsaW5lKQotICAgICAgICAgIHRpbWVsaW5lVmlld0VsLnRpbWVsaW5lLmZvY3VzRWxlbWVudCA9IHRpbWVsaW5lVmlld0VsOwotICAgICAgICB0aW1lbGluZVZpZXdFbC52aWV3VGl0bGUgPSAnJzsKLSAgICAgIH0sCi0gICAgICBmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgdmFyIG92ZXJsYXkgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgICAgIG92ZXJsYXkudGV4dENvbnRlbnQgPSB0ci5iLm5vcm1hbGl6ZUV4Y2VwdGlvbihlcnIpLm1lc3NhZ2U7Ci0gICAgICAgIG92ZXJsYXkudGl0bGUgPSAnSW1wb3J0IGVycm9yJzsKLSAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKLSAgICAgIH0pOwotICB9Ci0KLSAgZnVuY3Rpb24gb25TZWxlY3Rpb25DaGFuZ2UoKSB7Ci0gICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0cmFjZS1maWxlJyk7Ci0gICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnIycgKyBzZWxlY3Rbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwotICB9Ci0KLSAgZnVuY3Rpb24gb25IYXNoQ2hhbmdlKCkgewotICAgIHZhciBmaWxlID0gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpOwotICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdHJhY2UtZmlsZScpOwotICAgIGlmIChzZWxlY3Rbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlICE9IGZpbGUpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChzZWxlY3QuY2hpbGRyZW5baV0udmFsdWUgPT0gZmlsZSkgewotICAgICAgICAgIHNlbGVjdC5zZWxlY3RlZEluZGV4ID0gaTsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgICByZWxvYWQoKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNsZWFuRmlsZW5hbWUoZmlsZSkgewotICAgIHZhciBtID0gL1wvdGVzdF9kYXRhXC8oLispLy5leGVjKGZpbGUpOwotICAgIHZhciByZXN0ID0gbVsxXTsKLQotICAgIGZ1bmN0aW9uIHVwY2FzZShsZXR0ZXIpIHsKLSAgICAgIHJldHVybiAnICcgKyBsZXR0ZXIudG9VcHBlckNhc2UoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdC5yZXBsYWNlKC9fL2csICcgJykKLSAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cLlteXC5dKiQvLCAnJykKLSAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gKFthLXpdKS9nLCB1cGNhc2UpCi0gICAgICAgICAgICAgICAucmVwbGFjZSgvXlthLXpdLywgdXBjYXNlKTsKLSAgfQotCi0gIGZ1bmN0aW9uIHJlbG9hZCgpIHsKLSAgICB2YXIgZmlsZSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTsKLSAgICB2YXIgZmlsZW5hbWVzID0gW2ZpbGVdOwotICAgIGxvYWRUcmFjZXMoZmlsZW5hbWVzLCBjcmVhdGVWaWV3RnJvbVRyYWNlcyk7Ci0gIH0KLQotICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignaGFzaGNoYW5nZScsIG9uSGFzaENoYW5nZSk7Ci0KLSAgZnVuY3Rpb24gb25Mb2FkKCkgewotICAgIHRpbWVsaW5lVmlld0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigneC10aW1lbGluZS12aWV3Jyk7Ci0gICAgdHIuYi51aS5kZWNvcmF0ZSh0aW1lbGluZVZpZXdFbCwgdHIuVHJhY2VWaWV3ZXIpOwotCi0gICAgdmFyIHNlbGVjdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7Ci0gICAgc2VsZWN0RWwuaWQgPSAndHJhY2UtZmlsZSc7Ci0gICAgdGltZWxpbmVWaWV3RWwubGVmdENvbnRyb2xzLmFwcGVuZENoaWxkKHNlbGVjdEVsKTsKLQotICAgIGdldEFzeW5jKCcvanNvbi9leGFtcGxlcycsIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdHJhY2UtZmlsZScpOwotICAgICAgdmFyIGZpbGVzID0gSlNPTi5wYXJzZShkYXRhKTsKLSAgICAgIGZpbGVzID0gZmlsZXMubWFwKGZ1bmN0aW9uKHJlc3QpIHsKLSAgICAgICAgcmV0dXJuICcvdGVzdF9kYXRhLycgKyByZXN0OwotICAgICAgfSk7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG9wdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwotICAgICAgICBvcHQudmFsdWUgPSBmaWxlc1tpXTsKLSAgICAgICAgb3B0LnRleHRDb250ZW50ID0gY2xlYW5GaWxlbmFtZShmaWxlc1tpXSk7Ci0gICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHQpOwotICAgICAgfQotICAgICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSAwOwotICAgICAgc2VsZWN0Lm9uY2hhbmdlID0gb25TZWxlY3Rpb25DaGFuZ2U7Ci0KLSAgICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHsKLSAgICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgYW4gb25IYXNoQ2hhbmdlIHNvIG5vIG5lZWQgdG8gcmVsb2FkIGRpcmVjdGx5LgotICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICcjJyArIHNlbGVjdFtzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBvbkhhc2hDaGFuZ2UoKTsKLSAgICAgIH0KLSAgICB9KTsKLSAgfQotICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uTG9hZCk7Ci0gIDwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2hvb2tzL2NoZWNrbGljZW5zZXMucHkgYi90cmFjZS12aWV3ZXIvaG9va3MvY2hlY2tsaWNlbnNlcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZDlmMWVmMC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvaG9va3MvY2hlY2tsaWNlbnNlcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDE1OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLScnJ01ha2VzIHN1cmUgdGhhdCBhbGwgZmlsZXMgY29udGFpbiBwcm9wZXIgbGljZW5zaW5nIGluZm9ybWF0aW9uLicnJwotCi0KLWltcG9ydCBqc29uCi1pbXBvcnQgb3B0cGFyc2UKLWltcG9ydCBvcy5wYXRoCi1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5cwotCi1pbXBvcnQgbG9nZ2luZwotCi1kZWYgUHJpbnRVc2FnZSgpOgotICBwcmludCAnJydVc2FnZTogcHl0aG9uIGNoZWNrbGljZW5zZXMucHkgWy0tcm9vdCA8cm9vdD5dIFt0b2NoZWNrXQotICAtLXJvb3QgICBTcGVjaWZpZXMgdGhlIHJlcG9zaXRvcnkgcm9vdC4gVGhpcyBkZWZhdWx0cyB0byAnLi4vLi4nIHJlbGF0aXZlCi0gICAgICAgICAgIHRvIHRoZSBzY3JpcHQgZmlsZS4gVGhpcyB3aWxsIGJlIGNvcnJlY3QgZ2l2ZW4gdGhlIG5vcm1hbCBsb2NhdGlvbgotICAgICAgICAgICBvZiB0aGUgc2NyaXB0IGluICc8cm9vdD4vdG9vbHMvY2hlY2tsaWNlbnNlcycuCi0KLSAgdG9jaGVjayAgU3BlY2lmaWVzIHRoZSBkaXJlY3RvcnksIHJlbGF0aXZlIHRvIHJvb3QsIHRvIGNoZWNrLiBUaGlzIGRlZmF1bHRzCi0gICAgICAgICAgIHRvICcuJyBzbyBpdCBjaGVja3MgZXZlcnl0aGluZy4KLQotRXhhbXBsZXM6Ci0gIHB5dGhvbiBjaGVja2xpY2Vuc2VzLnB5Ci0gIHB5dGhvbiBjaGVja2xpY2Vuc2VzLnB5IC0tcm9vdCB+L2Nocm9taXVtL3NyYyB0aGlyZF9wYXJ0eScnJwotCi0KLVdISVRFTElTVEVEX0xJQ0VOU0VTID0gWwotICAgICdBcGFjaGUgKHYyLjApJywKLSAgICAnQlNEICgzIGNsYXVzZSknLAotICAgICdCU0QtbGlrZScsCi0gICAgJ01JVC9YMTEgKEJTRCBsaWtlKScsCi0gICAgJ3psaWIvbGlicG5nJywKLV0KLQotCi1QQVRIX1NQRUNJRklDX1dISVRFTElTVEVEX0xJQ0VOU0VTID0gewotICAgICd0aGlyZF9wYXJ0eS9kZXZzY3JpcHRzJzogWwotICAgICAgICAnR1BMICh2MiBvciBsYXRlciknLAotICAgIF0sCi19Ci0KLQotZGVmIGNoZWNrX2xpY2Vuc2VzKGJhc2VfZGlyZWN0b3J5LCB0YXJnZXRfZGlyZWN0b3J5PU5vbmUpOgotICAjIEZpZ3VyZSBvdXQgd2hpY2ggZGlyZWN0b3J5IHdlIGhhdmUgdG8gY2hlY2suCi0gIGlmIG5vdCB0YXJnZXRfZGlyZWN0b3J5OgotICAgICMgTm8gZGlyZWN0b3J5IHRvIGNoZWNrIHNwZWNpZmllZCwgdXNlIHRoZSByZXBvc2l0b3J5IHJvb3QuCi0gICAgc3RhcnRfZGlyID0gYmFzZV9kaXJlY3RvcnkKLSAgZWxzZToKLSAgICAjIERpcmVjdG9yeSBzcGVjaWZpZWQuIFN0YXJ0IGhlcmUuIEl0J3Mgc3VwcG9zZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlCi0gICAgIyBiYXNlIGRpcmVjdG9yeS4KLSAgICBzdGFydF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGJhc2VfZGlyZWN0b3J5LCB0YXJnZXRfZGlyZWN0b3J5KSkKLQotICBsb2dnaW5nLmluZm8oJ1VzaW5nIGJhc2UgZGlyZWN0b3J5OiAlcycgJSBiYXNlX2RpcmVjdG9yeSkKLSAgbG9nZ2luZy5pbmZvKCdDaGVja2luZzogJXMnICUgc3RhcnRfZGlyKQotICBsb2dnaW5nLmluZm8oJycpCi0KLSAgbGljZW5zZWNoZWNrX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGJhc2VfZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoaXJkX3BhcnR5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZzY3JpcHRzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlY2hlY2sucGwnKSkKLQotICBsaWNlbnNlY2hlY2sgPSBzdWJwcm9jZXNzLlBvcGVuKFtsaWNlbnNlY2hlY2tfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1sJywgJzEwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctcicsIHN0YXJ0X2Rpcl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQotICBzdGRvdXQsIHN0ZGVyciA9IGxpY2Vuc2VjaGVjay5jb21tdW5pY2F0ZSgpCi0gIGxvZ2dpbmcuaW5mbygnLS0tLS0tLS0tLS0gbGljZW5zZWNoZWNrIHN0ZG91dCAtLS0tLS0tLS0tLScpCi0gIGxvZ2dpbmcuaW5mbyhzdGRvdXQpCi0gIGxvZ2dpbmcuaW5mbygnLS0tLS0tLS0tIGVuZCBsaWNlbnNlY2hlY2sgc3Rkb3V0IC0tLS0tLS0tLScpCi0gIGlmIGxpY2Vuc2VjaGVjay5yZXR1cm5jb2RlICE9IDAgb3Igc3RkZXJyOgotICAgIHByaW50ICctLS0tLS0tLS0tLSBsaWNlbnNlY2hlY2sgc3RkZXJyIC0tLS0tLS0tLS0tJwotICAgIHByaW50IHN0ZGVycgotICAgIHByaW50ICctLS0tLS0tLS0gZW5kIGxpY2Vuc2VjaGVjayBzdGRlcnIgLS0tLS0tLS0tJwotICAgIHJldHVybiAxCi0KLSAgdXNlZF9zdXBwcmVzc2lvbnMgPSBzZXQoKQotICBlcnJvcnMgPSBbXQotCi0gIGZvciBsaW5lIGluIHN0ZG91dC5zcGxpdGxpbmVzKCk6Ci0gICAgZmlsZW5hbWUsIGxpY2Vuc2UgPSBsaW5lLnNwbGl0KCc6JywgMSkKLSAgICBmaWxlbmFtZSA9IG9zLnBhdGgucmVscGF0aChmaWxlbmFtZS5zdHJpcCgpLCBiYXNlX2RpcmVjdG9yeSkKLQotICAgICMgQWxsIGZpbGVzIGluIHRoZSBidWlsZCBvdXRwdXQgZGlyZWN0b3J5IGFyZSBnZW5lcmF0ZWQgb25lIHdheSBvciBhbm90aGVyLgotICAgICMgVGhlcmUncyBubyBuZWVkIHRvIGNoZWNrIHRoZW0uCi0gICAgaWYgZmlsZW5hbWUuc3RhcnRzd2l0aCgnb3V0LycpOgotICAgICAgY29udGludWUKLQotICAgICMgRm9yIG5vdyB3ZSdyZSBqdXN0IGludGVyZXN0ZWQgaW4gdGhlIGxpY2Vuc2UuCi0gICAgbGljZW5zZSA9IGxpY2Vuc2UucmVwbGFjZSgnKk5vIGNvcHlyaWdodConLCAnJykuc3RyaXAoKQotCi0gICAgIyBTa2lwIGdlbmVyYXRlZCBmaWxlcy4KLSAgICBpZiAnR0VORVJBVEVEIEZJTEUnIGluIGxpY2Vuc2U6Ci0gICAgICBjb250aW51ZQotCi0gICAgaWYgbGljZW5zZSBpbiBXSElURUxJU1RFRF9MSUNFTlNFUzoKLSAgICAgIGNvbnRpbnVlCi0KLSAgICBtYXRjaGVkX3ByZWZpeGVzID0gWwotICAgICAgICBwcmVmaXggZm9yIHByZWZpeCBpbiBQQVRIX1NQRUNJRklDX1dISVRFTElTVEVEX0xJQ0VOU0VTCi0gICAgICAgIGlmIGZpbGVuYW1lLnN0YXJ0c3dpdGgocHJlZml4KSBhbmQKLSAgICAgICAgbGljZW5zZSBpbiBQQVRIX1NQRUNJRklDX1dISVRFTElTVEVEX0xJQ0VOU0VTW3ByZWZpeF1dCi0gICAgaWYgbWF0Y2hlZF9wcmVmaXhlczoKLSAgICAgIHVzZWRfc3VwcHJlc3Npb25zLnVwZGF0ZShzZXQobWF0Y2hlZF9wcmVmaXhlcykpCi0gICAgICBjb250aW51ZQotCi0gICAgZXJyb3JzLmFwcGVuZCh7J2ZpbGVuYW1lJzogZmlsZW5hbWUsICdsaWNlbnNlJzogbGljZW5zZX0pCi0KLSAgaWYgZXJyb3JzOgotICAgIGZvciBlcnJvciBpbiBlcnJvcnM6Ci0gICAgICBwcmludCAiJyVzJyBoYXMgbm9uLXdoaXRlbGlzdGVkIGxpY2Vuc2UgJyVzJyIgJSAoCi0gICAgICAgICAgZXJyb3JbJ2ZpbGVuYW1lJ10sIGVycm9yWydsaWNlbnNlJ10pCi0gICAgcHJpbnQgJ1xuRkFJTEVEXG4nCi0gICAgcHJpbnQgJ1BsZWFzZSByZWFkJywKLSAgICBwcmludCAnaHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy9hZGRpbmctM3JkLXBhcnR5LWxpYnJhcmllcycKLSAgICBwcmludCAnZm9yIG1vcmUgaW5mbyBob3cgdG8gaGFuZGxlIHRoZSBmYWlsdXJlLicKLSAgICBwcmludAotICAgIHByaW50ICdQbGVhc2UgcmVzcGVjdCBPV05FUlMgb2YgY2hlY2tsaWNlbnNlcy5weS4gQ2hhbmdlcyB2aW9sYXRpbmcnCi0gICAgcHJpbnQgJ3RoaXMgcmVxdWlyZW1lbnQgbWF5IGJlIHJldmVydGVkLicKLQotICAgICMgRG8gbm90IHByaW50IHVudXNlZCBzdXBwcmVzc2lvbnMgc28gdGhhdCBhYm92ZSBtZXNzYWdlIGlzIGNsZWFybHkKLSAgICAjIHZpc2libGUgYW5kIGdldHMgcHJvcGVyIGF0dGVudGlvbi4gVG9vIG11Y2ggdW5yZWxhdGVkIG91dHB1dAotICAgICMgd291bGQgYmUgZGlzdHJhY3RpbmcgYW5kIG1ha2UgdGhlIGltcG9ydGFudCBwb2ludHMgZWFzaWVyIHRvIG1pc3MuCi0KLSAgICByZXR1cm4gMQotCi0KLSAgcmV0dXJuIDAKLQotCi1kZWYgbWFpbigpOgotICBkZWZhdWx0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgoCi0gICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJykpCi0gIG9wdGlvbl9wYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy0tcm9vdCcsIGRlZmF1bHQ9ZGVmYXVsdF9yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nYmFzZV9kaXJlY3RvcnknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU3BlY2lmaWVzIHRoZSByZXBvc2l0b3J5IHJvb3QuIFRoaXMgZGVmYXVsdHMgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvICcuLicgcmVsYXRpdmUgdG8gdGhlIHNjcmlwdCBmaWxlLCB3aGljaCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lsbCBub3JtYWxseSBiZSB0aGUgcmVwb3NpdG9yeSByb290LicpCi0gIG9wdGlvbnMsIGFyZ3MgPSBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi0gIHRhcmdldF9kaXJlY3RvcnkgPSBOb25lCi0gIGlmIGxlbihhcmdzKSA9PSAxOgotICAgIHRhcmdldF9kaXJlY3RvcnkgPSBhcmdzWzBdCi0gIGVsaWYgbGVuKGFyZ3MpID4gMToKLSAgICBQcmludFVzYWdlKCkKLSAgICByZXR1cm4gMQotICByZXN1bHRzID0gY2hlY2tfbGljZW5zZXMob3B0aW9ucy5iYXNlX2RpcmVjdG9yeSwgdGFyZ2V0X2RpcmVjdG9yeSkKLSAgaWYgbm90IHJlc3VsdHM6Ci0gICAgcHJpbnQgJ1NVQ0NFU1MnCi0gIHJldHVybiByZXN1bHRzCi0KLQotaWYgJ19fbWFpbl9fJyA9PSBfX25hbWVfXzoKLSAgc3lzLmV4aXQobWFpbigpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2hvb2tzL2Nzc19wcmVzdWJtaXRfY2hlY2tlci5weSBiL3RyYWNlLXZpZXdlci9ob29rcy9jc3NfcHJlc3VibWl0X2NoZWNrZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMGRhODAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL2hvb2tzL2Nzc19wcmVzdWJtaXRfY2hlY2tlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDIyNiArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotaW1wb3J0IHJlCi0KLWNsYXNzIENTU0NoZWNrZXIob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGlucHV0X2FwaSwgb3V0cHV0X2FwaSwgZmlsZV9maWx0ZXI9Tm9uZSk6Ci0gICAgc2VsZi5pbnB1dF9hcGkgPSBpbnB1dF9hcGkKLSAgICBzZWxmLm91dHB1dF9hcGkgPSBvdXRwdXRfYXBpCi0gICAgc2VsZi5maWxlX2ZpbHRlciA9IGZpbGVfZmlsdGVyCi0KLSAgZGVmIFJ1bkNoZWNrcyhzZWxmKToKLSAgICAjIFdlIHVzZSB0aGlzIGEgbG90LCBzbyBtYWtlIGEgbmljayBuYW1lIHZhcmlhYmxlLgotICAgIGRlZiBfY29sbGFwc2VhYmxlX2hleChzKToKLSAgICAgIHJldHVybiAobGVuKHMpID09IDYgYW5kIHNbMF0gPT0gc1sxXSBhbmQgc1syXSA9PSBzWzNdIGFuZCBzWzRdID09IHNbNV0pCi0KLSAgICBkZWYgX2lzX2dyYXkocyk6Ci0gICAgICByZXR1cm4gc1swXSA9PSBzWzFdID09IHNbMl0gaWYgbGVuKHMpID09IDMgZWxzZSBzWzA6Ml0gPT0gc1syOjRdID09IHNbNDo2XQotCi0gICAgZGVmIF9yZW1vdmVfYWxsKHMpOgotICAgICAgcmV0dXJuIF9yZW1vdmVfZ3JpdChfcmVtb3ZlX2F0cyhfcmVtb3ZlX2NvbW1lbnRzKHMpKSkKLQotICAgIGRlZiBfcmVtb3ZlX2F0cyhzKToKLSAgICAgIHJldHVybiByZS5zdWIocmUuY29tcGlsZShyJ0BcdysuKj97KC4qey4qP30pKy4qP30nLCByZS5ET1RBTEwpLCAnXFwxJywgcykKLQotICAgIGRlZiBfcmVtb3ZlX2NvbW1lbnRzKHMpOgotICAgICAgcmV0dXJuIHJlLnN1YihyZS5jb21waWxlKHInL1wqLio/XCovJywgcmUuRE9UQUxMKSwgJycsIHMpCi0KLSAgICBkZWYgX3JlbW92ZV9ncml0KHMpOgotICAgICAgZ3JpdF9yZWcgPSByJzxpZltePl0rPi4qPzxccyovXHMqaWZbXj5dKj58PGluY2x1ZGVbXj5dKz4nCi0gICAgICByZXR1cm4gcmUuc3ViKHJlLmNvbXBpbGUoZ3JpdF9yZWcsIHJlLkRPVEFMTCksICcnLCBzKQotCi0gICAgZGVmIF9yZ2JfZnJvbV9oZXgocyk6Ci0gICAgICBpZiBsZW4ocykgPT0gMzoKLSAgICAgICAgciwgZywgYiA9IHNbMF0gKyBzWzBdLCBzWzFdICsgc1sxXSwgc1syXSArIHNbMl0KLSAgICAgIGVsc2U6Ci0gICAgICAgIHIsIGcsIGIgPSBzWzA6Ml0sIHNbMjo0XSwgc1s0OjZdCi0gICAgICByZXR1cm4gaW50KHIsIGJhc2U9MTYpLCBpbnQoZywgYmFzZT0xNiksIGludChiLCBiYXNlPTE2KQotCi0gICAgZGVmIGFscGhhYmV0aXplX3Byb3BzKGNvbnRlbnRzKToKLSAgICAgIGVycm9ycyA9IFtdCi0gICAgICBmb3IgcnVsZSBpbiByZS5maW5kaXRlcihyJ3soLio/KX0nLCBjb250ZW50cywgcmUuRE9UQUxMKToKLSAgICAgICAgc2VtaXMgPSBtYXAobGFtYmRhIHQ6IHQuc3RyaXAoKSwgcnVsZS5ncm91cCgxKS5zcGxpdCgnOycpKVs6LTFdCi0gICAgICAgIHJ1bGVzID0gZmlsdGVyKGxhbWJkYSByOiAnOiAnIGluIHIsIHNlbWlzKQotICAgICAgICBwcm9wcyA9IG1hcChsYW1iZGEgcjogclswOnIuZmluZCgnOicpXSwgcnVsZXMpCi0gICAgICAgIGlmIHByb3BzICE9IHNvcnRlZChwcm9wcyk6Ci0gICAgICAgICAgZXJyb3JzLmFwcGVuZCgnICAgICVzO1xuRXhwZWN0ZWQ6ICVzJyAlICgnO1xuICAgICcuam9pbihydWxlcyksICcsJy5qb2luKGxpc3Qoc29ydGVkKHByb3BzKSkpKSkKLSAgICAgIHJldHVybiBlcnJvcnMKLQotICAgIGRlZiBicmFjZXNfaGF2ZV9zcGFjZV9iZWZvcmVfYW5kX25vdGhpbmdfYWZ0ZXIobGluZSk6Ci0gICAgICByZXR1cm4gcmUuc2VhcmNoKHInKD86XnxcUyl7fHtccypcUytccyokJywgbGluZSkKLQotICAgIGRlZiBjbGFzc2VzX3VzZV9kYXNoZXMobGluZSk6Ci0gICAgICAjIEludGVudGlvbmFsbHkgZHVtYmVkIGRvd24gdmVyc2lvbiBvZiBDU1MgMi4xIGdyYW1tYXIgZm9yIGNsYXNzIHdpdGhvdXQKLSAgICAgICMgbm9uLUFTQ0lJLCBlc2NhcGUgY2hhcnMsIG9yIHdoaXRlc3BhY2UuCi0gICAgICBtID0gcmUuc2VhcmNoKHInXC4oLT9bX2EtekEtWjAtOS1dKykuKlsse11ccyokJywgbGluZSkKLSAgICAgIHJldHVybiAobSBhbmQgKG0uZ3JvdXAoMSkubG93ZXIoKSAhPSBtLmdyb3VwKDEpIG9yCi0gICAgICAgICAgICAgICAgICAgICBtLmdyb3VwKDEpLmZpbmQoJ18nKSA+PSAwKSkKLQotICAgICMgSWdub3JlIHNpbmdsZSBmcmFtZXMgaW4gYSBAa2V5ZnJhbWUsIGkuZS4gMCUgeyBtYXJnaW46IDUwcHg7IH0KLSAgICBmcmFtZV9yZWcgPSByJ1xzKlxkKyVccyp7XHMqW19hLXpBLVowLTktXSs6KFxzKltfYS16QS1aMC05LV0rKStccyo7XHMqfVxzKicKLSAgICBkZWYgY2xvc2VfYnJhY2Vfb25fbmV3X2xpbmUobGluZSk6Ci0gICAgICByZXR1cm4gKGxpbmUuZmluZCgnfScpID49IDAgYW5kIHJlLnNlYXJjaChyJ1teIH1dJywgbGluZSkgYW5kCi0gICAgICAgICAgICAgIG5vdCByZS5tYXRjaChmcmFtZV9yZWcsIGxpbmUpKQotCi0gICAgZGVmIGNvbG9uc19oYXZlX3NwYWNlX2FmdGVyKGxpbmUpOgotICAgICAgcmV0dXJuIHJlLnNlYXJjaChyJyg/PCFkYXRhKTooPyEvLylcU1teO10rO1xzKicsIGxpbmUpCi0KLSAgICBkZWYgZmF2b3Jfc2luZ2xlX3F1b3RlcyhsaW5lKToKLSAgICAgIHJldHVybiBsaW5lLmZpbmQoJyInKSA+PSAwCi0KLSAgICAjIFNoYXJlZCBiZXR3ZWVuIGhleF9jb3VsZF9iZV9zaG9ydGVyIGFuZCByZ2JfaWZfbm90X2dyYXkuCi0gICAgaGV4X3JlZyA9IChyJyMoW2EtZkEtRjAtOV17M318W2EtZkEtRjAtOV17Nn0pKD89W15fYS16QS1aMC05LV18JCknCi0gICAgICAgICAgICAgICByJyg/IS4qKD86ey4qfCxccyopJCknKQotICAgIGRlZiBoZXhfY291bGRfYmVfc2hvcnRlcihsaW5lKToKLSAgICAgIG0gPSByZS5zZWFyY2goaGV4X3JlZywgbGluZSkKLSAgICAgIHJldHVybiAobSBhbmQgX2lzX2dyYXkobS5ncm91cCgxKSkgYW5kIF9jb2xsYXBzZWFibGVfaGV4KG0uZ3JvdXAoMSkpKQotCi0gICAgc21hbGxfc2Vjb25kcyA9IHInKD86XnxbXl9hLXpBLVowLTktXSkoMD9cLlswLTldKylzKD8hLT9bX2EtekEtWjAtOS1dKScKLSAgICBkZWYgbWlsbGlzZWNvbmRzX2Zvcl9zbWFsbF90aW1lcyhsaW5lKToKLSAgICAgIHJldHVybiByZS5zZWFyY2goc21hbGxfc2Vjb25kcywgbGluZSkKLQotICAgIGRlZiBub19kYXRhX3VyaXNfaW5fc291cmNlX2ZpbGVzKGxpbmUpOgotICAgICAgcmV0dXJuIHJlLnNlYXJjaChyJ1woXHMqXCc/XHMqZGF0YTonLCBsaW5lKQotCi0gICAgZGVmIG9uZV9ydWxlX3Blcl9saW5lKGxpbmUpOgotICAgICAgcmV0dXJuIHJlLnNlYXJjaChyJ1tfYS16QS1aMC05LV0oPzwhZGF0YSk6KD8hLy8pW147XSs7XHMqW14gfV1ccyonLCBsaW5lKQotCi0gICAgYW55X3JlZyA9IHJlLmNvbXBpbGUocic6KD86LXdlYmtpdC0pP2FueVwoLio/XCknLCByZS5ET1RBTEwpCi0gICAgbXVsdGlfc2VscyA9IHJlLmNvbXBpbGUocicoPzp9W1xuXHNdKik/KFteLF0rLCg/PVtee31dKz97KS4qWyx7XSlccyokJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZS5NVUxUSUxJTkUpCi0gICAgZGVmIG9uZV9zZWxlY3Rvcl9wZXJfbGluZShjb250ZW50cyk6Ci0gICAgICBlcnJvcnMgPSBbXQotICAgICAgZm9yIGIgaW4gcmUuZmluZGl0ZXIobXVsdGlfc2VscywgcmUuc3ViKGFueV9yZWcsICcnLCBjb250ZW50cykpOgotICAgICAgICBlcnJvcnMuYXBwZW5kKCcgICAgJyArIGIuZ3JvdXAoMSkuc3RyaXAoKS5zcGxpdGxpbmVzKClbLTE6XVswXSkKLSAgICAgIHJldHVybiBlcnJvcnMKLQotICAgIGRlZiByZ2JfaWZfbm90X2dyYXkobGluZSk6Ci0gICAgICBtID0gcmUuc2VhcmNoKGhleF9yZWcsIGxpbmUpCi0gICAgICByZXR1cm4gKG0gYW5kIG5vdCBfaXNfZ3JheShtLmdyb3VwKDEpKSkKLQotICAgIGRlZiBzdWdnZXN0X21zX2Zyb21fcyhsaW5lKToKLSAgICAgIG1zID0gaW50KGZsb2F0KHJlLnNlYXJjaChzbWFsbF9zZWNvbmRzLCBsaW5lKS5ncm91cCgxKSkgKiAxMDAwKQotICAgICAgcmV0dXJuICcgKHJlcGxhY2Ugd2l0aCAlZG1zKScgJSBtcwotCi0gICAgZGVmIHN1Z2dlc3RfcmdiX2Zyb21faGV4KGxpbmUpOgotICAgICAgc3VnZ2VzdGlvbnMgPSBbJ3JnYiglZCwgJWQsICVkKScgJSBfcmdiX2Zyb21faGV4KGguZ3JvdXAoMSkpCi0gICAgICAgICAgZm9yIGggaW4gcmUuZmluZGl0ZXIoaGV4X3JlZywgbGluZSldCi0gICAgICByZXR1cm4gJyAocmVwbGFjZSB3aXRoICVzKScgJSAnLCAnLmpvaW4oc3VnZ2VzdGlvbnMpCi0KLSAgICBkZWYgc3VnZ2VzdF9zaG9ydF9oZXgobGluZSk6Ci0gICAgICBoID0gcmUuc2VhcmNoKGhleF9yZWcsIGxpbmUpLmdyb3VwKDEpCi0gICAgICByZXR1cm4gJyAocmVwbGFjZSB3aXRoICMlcyknICUgKGhbMF0gKyBoWzJdICsgaFs0XSkKLQotICAgIGhzbCA9IHInaHNsXChbXlwpXSooPzpbLCBdfCg/PD1cKCkpKD86MD9cLj8pPzAlJwotICAgIHplcm9zID0gKHInXi4qKD86XnxcRCknCi0gICAgICAgICAgICAgcicoPzpcLjB8MCg/OlwuMD98cHh8ZW18JXxpbnxjbXxtbXxwY3xwdHxleHxkZWd8Zz9yYWR8bT9zfGs/aHopKScKLSAgICAgICAgICAgICByJyg/OlxEfCQpKD89W157fV0rP30pLiokJykKLSAgICBkZWYgemVyb19sZW5ndGhfdmFsdWVzKGNvbnRlbnRzKToKLSAgICAgIGVycm9ycyA9IFtdCi0gICAgICBmb3IgeiBpbiByZS5maW5kaXRlcihyZS5jb21waWxlKHplcm9zLCByZS5NVUxUSUxJTkUpLCBjb250ZW50cyk6Ci0gICAgICAgIGZpcnN0X2xpbmUgPSB6Lmdyb3VwKDApLnN0cmlwKCkuc3BsaXRsaW5lcygpWzBdCi0gICAgICAgIGlmIG5vdCByZS5zZWFyY2goaHNsLCBmaXJzdF9saW5lKToKLSAgICAgICAgICBlcnJvcnMuYXBwZW5kKCcgICAgJyArIGZpcnN0X2xpbmUpCi0gICAgICByZXR1cm4gZXJyb3JzCi0KLSAgICBhZGRlZF9vcl9tb2RpZmllZF9maWxlc19jaGVja3MgPSBbCi0gICAgICAgIHsgJ2Rlc2MnOiAnQWxwaGFiZXRpemUgcHJvcGVydGllcyBhbmQgbGlzdCB2ZW5kb3Igc3BlY2lmaWMgKGkuZS4gJwotICAgICAgICAgICAgICAgICAgJy13ZWJraXQpIGFib3ZlIHN0YW5kYXJkLicsCi0gICAgICAgICAgJ3Rlc3QnOiBhbHBoYWJldGl6ZV9wcm9wcywKLSAgICAgICAgICAnbXVsdGlsaW5lJzogVHJ1ZSwKLSAgICAgICAgfSwKLSAgICAgICAgeyAnZGVzYyc6ICdTdGFydCBicmFjZXMgKHspIGVuZCBhIHNlbGVjdG9yLCBoYXZlIGEgc3BhY2UgYmVmb3JlIHRoZW0gJwotICAgICAgICAgICAgICAgICAgJ2FuZCBubyBydWxlcyBhZnRlci4nLAotICAgICAgICAgICd0ZXN0JzogYnJhY2VzX2hhdmVfc3BhY2VfYmVmb3JlX2FuZF9ub3RoaW5nX2FmdGVyLAotICAgICAgICB9LAotICAgICAgICB7ICdkZXNjJzogJ0NsYXNzZXMgdXNlIC5kYXNoLWZvcm0uJywKLSAgICAgICAgICAndGVzdCc6IGNsYXNzZXNfdXNlX2Rhc2hlcywKLSAgICAgICAgfSwKLSAgICAgICAgeyAnZGVzYyc6ICdBbHdheXMgcHV0IGEgcnVsZSBjbG9zaW5nIGJyYWNlICh9KSBvbiBhIG5ldyBsaW5lLicsCi0gICAgICAgICAgJ3Rlc3QnOiBjbG9zZV9icmFjZV9vbl9uZXdfbGluZSwKLSAgICAgICAgfSwKLSAgICAgICAgeyAnZGVzYyc6ICdDb2xvbnMgKDopIHNob3VsZCBoYXZlIGEgc3BhY2UgYWZ0ZXIgdGhlbS4nLAotICAgICAgICAgICd0ZXN0JzogY29sb25zX2hhdmVfc3BhY2VfYWZ0ZXIsCi0gICAgICAgIH0sCi0gICAgICAgIHsgJ2Rlc2MnOiAnVXNlIHNpbmdsZSBxdW90ZXMgKFwnKSBpbnN0ZWFkIG9mIGRvdWJsZSBxdW90ZXMgKCIpIGluICcKLSAgICAgICAgICAgICAgICAgICdzdHJpbmdzLicsCi0gICAgICAgICAgJ3Rlc3QnOiBmYXZvcl9zaW5nbGVfcXVvdGVzLAotICAgICAgICB9LAotICAgICAgICB7ICdkZXNjJzogJ1VzZSBhYmJyZXZpYXRlZCBoZXggKCNyZ2IpIHdoZW4gaW4gZm9ybSAjcnJnZ2JiLicsCi0gICAgICAgICAgJ3Rlc3QnOiBoZXhfY291bGRfYmVfc2hvcnRlciwKLSAgICAgICAgICAnYWZ0ZXInOiBzdWdnZXN0X3Nob3J0X2hleCwKLSAgICAgICAgfSwKLSAgICAgICAgeyAnZGVzYyc6ICdVc2UgbWlsbGlzZWNvbmRzIGZvciB0aW1lIG1lYXN1cmVtZW50cyB1bmRlciAxIHNlY29uZC4nLAotICAgICAgICAgICd0ZXN0JzogbWlsbGlzZWNvbmRzX2Zvcl9zbWFsbF90aW1lcywKLSAgICAgICAgICAnYWZ0ZXInOiBzdWdnZXN0X21zX2Zyb21fcywKLSAgICAgICAgfSwKLSAgICAgICAgeyAnZGVzYyc6ICdEb25cJ3QgdXNlIGRhdGEgVVJJcyBpbiBzb3VyY2UgZmlsZXMuIFVzZSBncml0IGluc3RlYWQuJywKLSAgICAgICAgICAndGVzdCc6IG5vX2RhdGFfdXJpc19pbl9zb3VyY2VfZmlsZXMsCi0gICAgICAgIH0sCi0gICAgICAgIHsgJ2Rlc2MnOiAnT25lIHJ1bGUgcGVyIGxpbmUgKHdoYXQgbm90IHRvIGRvOiBjb2xvcjogcmVkOyBtYXJnaW46IDA7KS4nLAotICAgICAgICAgICd0ZXN0Jzogb25lX3J1bGVfcGVyX2xpbmUsCi0gICAgICAgIH0sCi0gICAgICAgIHsgJ2Rlc2MnOiAnT25lIHNlbGVjdG9yIHBlciBsaW5lICh3aGF0IG5vdCB0byBkbzogYSwgYiB7fSkuJywKLSAgICAgICAgICAndGVzdCc6IG9uZV9zZWxlY3Rvcl9wZXJfbGluZSwKLSAgICAgICAgICAnbXVsdGlsaW5lJzogVHJ1ZSwKLSAgICAgICAgfSwKLSAgICAgICAgeyAnZGVzYyc6ICdVc2UgcmdiKCkgb3ZlciAjaGV4IHdoZW4gbm90IGEgc2hhZGUgb2YgZ3JheSAobGlrZSAjMzMzKS4nLAotICAgICAgICAgICd0ZXN0JzogcmdiX2lmX25vdF9ncmF5LAotICAgICAgICAgICdhZnRlcic6IHN1Z2dlc3RfcmdiX2Zyb21faGV4LAotICAgICAgICB9LAotICAgICAgICB7ICdkZXNjJzogJ01ha2UgYWxsIHplcm8gbGVuZ3RoIHRlcm1zIChpLmUuIDBweCkgMCB1bmxlc3MgaW5zaWRlIG9mICcKLSAgICAgICAgICAgICAgICAgICdoc2woKSBvciBwYXJ0IG9mIEBrZXlmcmFtZS4nLAotICAgICAgICAgICd0ZXN0JzogemVyb19sZW5ndGhfdmFsdWVzLAotICAgICAgICAgICdtdWx0aWxpbmUnOiBUcnVlLAotICAgICAgICB9LAotICAgIF0KLQotICAgIHJlc3VsdHMgPSBbXQotICAgIGFmZmVjdGVkX2ZpbGVzID0gc2VsZi5pbnB1dF9hcGkuQWZmZWN0ZWRGaWxlcyhpbmNsdWRlX2RlbGV0ZXM9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfZmlsdGVyPXNlbGYuZmlsZV9maWx0ZXIpCi0gICAgZmlsZXMgPSBbXQotICAgIGZvciBmIGluIGFmZmVjdGVkX2ZpbGVzOgotICAgICAgIyBSZW1vdmUgYWxsIC8qY29tbWVudHMqLywgQGF0LWtleXdvcmRzLCBhbmQgZ3JpdCA8aWZ8aW5jbHVkZT4gdGFnczsgd2UncmUKLSAgICAgICMgbm90IHVzaW5nIGEgcmVhbCBwYXJzZXIuIFRPRE8oZGJlYW0pOiBDaGVjayBhbHBoYSBpbiA8aWY+IGJsb2Nrcy4KLSAgICAgIGZpbGVfY29udGVudHMgPSBfcmVtb3ZlX2FsbCgnXG4nLmpvaW4oZi5uZXdfY29udGVudHMpKQotICAgICAgZmlsZXMuYXBwZW5kKChmLmZpbGVuYW1lLCBmaWxlX2NvbnRlbnRzKSkKLQotICAgICMgT25seSBsb29rIGF0IENTUyBmaWxlcyBmb3Igbm93LgotICAgIGZvciBmIGluIGZpbHRlcihsYW1iZGEgZjogZlswXS5lbmRzd2l0aCgnLmNzcycpLCBmaWxlcyk6Ci0gICAgICBmaWxlX2Vycm9ycyA9IFtdCi0gICAgICBmb3IgY2hlY2sgaW4gYWRkZWRfb3JfbW9kaWZpZWRfZmlsZXNfY2hlY2tzOgotICAgICAgICAjIElmIHRoZSBjaGVjayBpcyBtdWx0aWxpbmUsIGl0IHJlY2VpZXZlcyB0aGUgd2hvbGUgZmlsZSBhbmQgZ2l2ZXMgdXMKLSAgICAgICAgIyBiYWNrIGEgbGlzdCBvZiB0aGluZ3Mgd3JvbmcuIElmIHRoZSBjaGVjayBpc24ndCBtdWx0aWxpbmUsIHdlIHBhc3MgaXQKLSAgICAgICAgIyBlYWNoIGxpbmUgYW5kIHRoZSBjaGVjayByZXR1cm5zIHNvbWV0aGluZyB0cnV0aHkgaWYgdGhlcmUncyBhbiBpc3N1ZS4KLSAgICAgICAgaWYgKCdtdWx0aWxpbmUnIGluIGNoZWNrIGFuZCBjaGVja1snbXVsdGlsaW5lJ10pOgotICAgICAgICAgIGNoZWNrX2Vycm9ycyA9IGNoZWNrWyd0ZXN0J10oZlsxXSkKLSAgICAgICAgICBpZiBsZW4oY2hlY2tfZXJyb3JzKSA+IDA6Ci0gICAgICAgICAgICAjIFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gbXVsdGlsaW5lIGNoZWNrcyB3aXRoIFsnYWZ0ZXInXS4KLSAgICAgICAgICAgIGZpbGVfZXJyb3JzLmFwcGVuZCgnLSAlc1xuJXMnICUKLSAgICAgICAgICAgICAgICAoY2hlY2tbJ2Rlc2MnXSwgJ1xuJy5qb2luKGNoZWNrX2Vycm9ycykucnN0cmlwKCkpKQotICAgICAgICBlbHNlOgotICAgICAgICAgIGNoZWNrX2Vycm9ycyA9IFtdCi0gICAgICAgICAgbGluZXMgPSBmWzFdLnNwbGl0bGluZXMoKQotICAgICAgICAgIGZvciBsbnVtIGluIHJhbmdlKDAsIGxlbihsaW5lcykpOgotICAgICAgICAgICAgbGluZSA9IGxpbmVzW2xudW1dCi0gICAgICAgICAgICBpZiBjaGVja1sndGVzdCddKGxpbmUpOgotICAgICAgICAgICAgICBlcnJvciA9ICcgICAgJyArIGxpbmUuc3RyaXAoKQotICAgICAgICAgICAgICBpZiAnYWZ0ZXInIGluIGNoZWNrOgotICAgICAgICAgICAgICAgIGVycm9yICs9IGNoZWNrWydhZnRlciddKGxpbmUpCi0gICAgICAgICAgICAgIGNoZWNrX2Vycm9ycy5hcHBlbmQoZXJyb3IpCi0gICAgICAgICAgaWYgbGVuKGNoZWNrX2Vycm9ycykgPiAwOgotICAgICAgICAgICAgZmlsZV9lcnJvcnMuYXBwZW5kKCctICVzXG4lcycgJQotICAgICAgICAgICAgICAgIChjaGVja1snZGVzYyddLCAnXG4nLmpvaW4oY2hlY2tfZXJyb3JzKSkpCi0gICAgICBpZiBmaWxlX2Vycm9yczoKLSAgICAgICAgcmVzdWx0cy5hcHBlbmQoc2VsZi5vdXRwdXRfYXBpLlByZXN1Ym1pdFByb21wdFdhcm5pbmcoCi0gICAgICAgICAgICAnJXM6XG4lcycgJSAoZlswXSwgJ1xuXG4nLmpvaW4oZmlsZV9lcnJvcnMpKSkpCi0KLSAgICBpZiByZXN1bHRzOgotICAgICAgIyBBZGQgeW91ciBuYW1lIGlmIHlvdSdyZSBoZXJlIG9mdGVuIG11Y2tpbmcgYXJvdW5kIGluIHRoZSBjb2RlLgotICAgICAgYXV0aG9ycyA9IFsnZGJlYW1AY2hyb21pdW0ub3JnJ10KLSAgICAgIHJlc3VsdHMuYXBwZW5kKHNlbGYub3V0cHV0X2FwaS5QcmVzdWJtaXROb3RpZnlSZXN1bHQoCi0gICAgICAgICAgJ1dhcyB0aGUgQ1NTIGNoZWNrZXIgdXNlZnVsPyBTZW5kIGZlZWRiYWNrIG9yIGhhdGUgbWFpbCB0byAlcy4nICUKLSAgICAgICAgICAnLCAnLmpvaW4oYXV0aG9ycykpKQotCi0gICAgcmV0dXJuIHJlc3VsdHMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9ob29rcy9nanNsaW50LnB5IGIvdHJhY2Utdmlld2VyL2hvb2tzL2dqc2xpbnQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNWRiMTguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL2hvb2tzL2dqc2xpbnQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWZyb20gdHJhY2Vfdmlld2VyIGltcG9ydCB0cmFjZV92aWV3ZXJfcHJvamVjdAotCi1kZWYgTWFpbihwYXRoc190b19saW50KToKLSAgcHJvamVjdCA9IHRyYWNlX3ZpZXdlcl9wcm9qZWN0LlRyYWNlVmlld2VyUHJvamVjdCgpCi0gIG5ld19wYXRocyA9IFsKLSAgICBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgcHJvamVjdC50cmFjZV92aWV3ZXJfdGhpcmRfcGFydHlfcGF0aCwgJ3B5dGhvbl9nZmxhZ3MnKSksCi0gICAgb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbigKLSAgICAgIHByb2plY3QudHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGgsICdjbG9zdXJlX2xpbnRlcicpKQotICBdCi0gIHN5cy5wYXRoICs9IG5ld19wYXRocwotICB0cnk6Ci0gICAgX01haW5JbXBsKHBhdGhzX3RvX2xpbnQpCi0gIGZpbmFsbHk6Ci0gICAgZm9yIHAgaW4gbmV3X3BhdGhzOgotICAgICAgc3lzLnBhdGgucmVtb3ZlKHApCi0KLWRlZiBfTWFpbkltcGwocGF0aHNfdG9fbGludCk6Ci0gIGZyb20gY2xvc3VyZV9saW50ZXIgaW1wb3J0IGdqc2xpbnQKLQotICBpZiBzeXMuYXJndlsxOl0gPT0gWyctLWhlbHAnXToKLSAgICBzeXMuZXhpdChnanNsaW50Lm1haW4oKSkKLQotICBpZiBsZW4oc3lzLmFyZ3YpID4gMToKLSAgICBzeXMuc3RkZXJyLndyaXRlKCdObyBhcmd1bWVudHMgYWxsb3dlZCcpCi0gICAgc3lzLmV4aXQoMSkKLQotICBzeXMuYXJndi5hcHBlbmQoJy0tc3RyaWN0JykKLSAgc3lzLmFyZ3YuYXBwZW5kKCctLXVuaXhfbW9kZScpCi0gIHN5cy5hcmd2LmFwcGVuZCgnLS1jaGVja19odG1sJykKLSAgZm9yIHAgaW4gcGF0aHNfdG9fbGludDoKLSAgICBzeXMuYXJndi5leHRlbmQoWyctcicsIG9zLnBhdGgucmVscGF0aChwKV0pCi0KLSAgZ2pzbGludC5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9ob29rcy9qc19jaGVja3MucHkgYi90cmFjZS12aWV3ZXIvaG9va3MvanNfY2hlY2tzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTQzMThlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci9ob29rcy9qc19jaGVja3MucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotaW1wb3J0IHJlCi0KLWNsYXNzIEpTQ2hlY2tlcihvYmplY3QpOgotICBkZWYgX19pbml0X18oc2VsZiwgaW5wdXRfYXBpLCBmaWxlX2ZpbHRlcj1Ob25lKToKLSAgICBzZWxmLmlucHV0X2FwaSA9IGlucHV0X2FwaQotICAgIGlmIGZpbGVfZmlsdGVyOgotICAgICAgc2VsZi5maWxlX2ZpbHRlciA9IGZpbGVfZmlsdGVyCi0gICAgZWxzZToKLSAgICAgIHNlbGYuZmlsZV9maWx0ZXIgPSBsYW1iZGEgeDogVHJ1ZQotCi0gIGRlZiBSZWdleENoZWNrKHNlbGYsIGxpbmVfbnVtYmVyLCBsaW5lLCByZWdleCwgbWVzc2FnZSk6Ci0gICAgIiIiU2VhcmNoZXMgZm9yIHxyZWdleHwgaW4gfGxpbmV8IHRvIGNoZWNrIGZvciBhIHBhcnRpY3VsYXIgc3R5bGUKLSAgICAgICB2aW9sYXRpb24sIHJldHVybmluZyBhIG1lc3NhZ2UgbGlrZSB0aGUgb25lIGJlbG93IGlmIHRoZSByZWdleCBtYXRjaGVzLgotICAgICAgIFRoZSB8cmVnZXh8IG11c3QgaGF2ZSBleGFjdGx5IG9uZSBjYXB0dXJpbmcgZ3JvdXAgc28gdGhhdCB0aGUgcmVsZXZhbnQKLSAgICAgICBwYXJ0IG9mIHxsaW5lfCBjYW4gYmUgaGlnaGxpZ2h0ZWQuIElmIG1vcmUgZ3JvdXBzIGFyZSBuZWVkZWQsIHVzZQotICAgICAgICIoPzouLi4pIiB0byBtYWtlIGEgbm9uLWNhcHR1cmluZyBncm91cC4gU2FtcGxlIG1lc3NhZ2U6Ci0KLSAgICAgICBsaW5lIDY6IFVzZSB2YXIgaW5zdGVhZCBvZiBjb25zdC4KLSAgICAgICAgICAgY29uc3QgZm9vID0gYmFyKCk7Ci0gICAgICAgICAgIF5eXl5eCi0gICAgIiIiCi0gICAgbWF0Y2ggPSByZS5zZWFyY2gocmVnZXgsIGxpbmUpCi0gICAgaWYgbWF0Y2g6Ci0gICAgICBhc3NlcnQgbGVuKG1hdGNoLmdyb3VwcygpKSA9PSAxCi0gICAgICBzdGFydCA9IG1hdGNoLnN0YXJ0KDEpCi0gICAgICBsZW5ndGggPSBtYXRjaC5lbmQoMSkgLSBzdGFydAotICAgICAgcmV0dXJuICcgIGxpbmUgJWQ6ICVzXG4lc1xuJXMnICUgKAotICAgICAgICAgIGxpbmVfbnVtYmVyLAotICAgICAgICAgIG1lc3NhZ2UsCi0gICAgICAgICAgbGluZSwKLSAgICAgICAgICBzZWxmLmVycm9yX2hpZ2hsaWdodChzdGFydCwgbGVuZ3RoKSkKLSAgICByZXR1cm4gJycKLQotICBkZWYgQ29uc3RDaGVjayhzZWxmLCBpLCBsaW5lKToKLSAgICAiIiJDaGVjayBmb3IgdXNlIG9mIHRoZSAnY29uc3QnIGtleXdvcmQuIiIiCi0gICAgaWYgcmUuc2VhcmNoKHInXCpccytAY29uc3QnLCBsaW5lKToKLSAgICAgICMgUHJvYmFibHkgYSBKc0RvYyBsaW5lCi0gICAgICByZXR1cm4gJycKLQotICAgIHJldHVybiBzZWxmLlJlZ2V4Q2hlY2soaSwgbGluZSwgcicoPzpefFxzfFwoKShjb25zdClccycsCi0gICAgICAgICdVc2UgdmFyIGluc3RlYWQgb2YgY29uc3QuJykKLQotICBkZWYgZXJyb3JfaGlnaGxpZ2h0KHNlbGYsIHN0YXJ0LCBsZW5ndGgpOgotICAgICIiIlRha2VzIGEgc3RhcnQgcG9zaXRpb24gYW5kIGEgbGVuZ3RoLCBhbmQgcHJvZHVjZXMgYSByb3cgb2YgJ14ncyB0bwotICAgICAgIGhpZ2hsaWdodCB0aGUgY29ycmVzcG9uZGluZyBwYXJ0IG9mIGEgc3RyaW5nLgotICAgICIiIgotICAgIHJldHVybiBzdGFydCAqICcgJyArIGxlbmd0aCAqICdeJwotCi0gIGRlZiBfbWFrZUVycm9yT3JXYXJuaW5nKHNlbGYsIGVycm9yX3RleHQsIGZpbGVuYW1lKToKLSAgICByZXR1cm4gZXJyb3JfdGV4dAotCi0gIGRlZiBSdW5DaGVja3Moc2VsZik6Ci0gICAgIiIiQ2hlY2sgZm9yIHZpb2xhdGlvbnMgb2YgdGhlIENocm9taXVtIEphdmFTY3JpcHQgc3R5bGUgZ3VpZGUuIFNlZQotICAgICAgIGh0dHA6Ly9jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy93ZWItZGV2ZWxvcG1lbnQtc3R5bGUtZ3VpZGUjVE9DLUphdmFTY3JpcHQKLSAgICAiIiIKLQotICAgIGltcG9ydCBzeXMKLSAgICBpbXBvcnQgd2FybmluZ3MKLSAgICBvbGRfcGF0aCA9IHN5cy5wYXRoCi0gICAgb2xkX2ZpbHRlcnMgPSB3YXJuaW5ncy5maWx0ZXJzCi0KLSAgICB0cnk6Ci0gICAgICBiYXNlX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQotICAgICAgY2xvc3VyZV9saW50ZXJfcGF0aCA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICBiYXNlX3BhdGgsICd0aGlyZF9wYXJ0eScsICdjbG9zdXJlX2xpbnRlcicpCi0gICAgICBnZmxhZ3NfcGF0aCA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICBiYXNlX3BhdGgsICd0aGlyZF9wYXJ0eScsICdweXRob25fZ2ZsYWdzJykKLSAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBjbG9zdXJlX2xpbnRlcl9wYXRoKQotICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIGdmbGFnc19wYXRoKQotCi0gICAgICB3YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncygnaWdub3JlJywgY2F0ZWdvcnk9RGVwcmVjYXRpb25XYXJuaW5nKQotCi0gICAgICBmcm9tIGNsb3N1cmVfbGludGVyIGltcG9ydCBjaGVja2VyLCBlcnJvcnMKLSAgICAgIGZyb20gY2xvc3VyZV9saW50ZXIuY29tbW9uIGltcG9ydCBlcnJvcmhhbmRsZXIKLQotICAgIGZpbmFsbHk6Ci0gICAgICBzeXMucGF0aCA9IG9sZF9wYXRoCi0gICAgICB3YXJuaW5ncy5maWx0ZXJzID0gb2xkX2ZpbHRlcnMKLQotICAgIGNsYXNzIEVycm9ySGFuZGxlckltcGwoZXJyb3JoYW5kbGVyLkVycm9ySGFuZGxlcik6Ci0gICAgICAiIiJGaWx0ZXJzIG91dCBlcnJvcnMgdGhhdCBkb24ndCBhcHBseSB0byBDaHJvbWl1bSBKYXZhU2NyaXB0IGNvZGUuIiIiCi0KLSAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fZXJyb3JzID0gW10KLQotICAgICAgZGVmIEhhbmRsZUZpbGUoc2VsZiwgZmlsZW5hbWUsIGZpcnN0X3Rva2VuKToKLSAgICAgICAgc2VsZi5fZmlsZW5hbWUgPSBmaWxlbmFtZQotCi0gICAgICBkZWYgSGFuZGxlRXJyb3Ioc2VsZiwgZXJyb3IpOgotICAgICAgICBpZiAoc2VsZi5fdmFsaWQoZXJyb3IpKToKLSAgICAgICAgICBlcnJvci5maWxlbmFtZSA9IHNlbGYuX2ZpbGVuYW1lCi0gICAgICAgICAgc2VsZi5fZXJyb3JzLmFwcGVuZChlcnJvcikKLQotICAgICAgZGVmIEdldEVycm9ycyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Vycm9ycwotCi0gICAgICBkZWYgSGFzRXJyb3JzKHNlbGYpOgotICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9lcnJvcnMpCi0KLSAgICAgIGRlZiBfdmFsaWQoc2VsZiwgZXJyb3IpOgotICAgICAgICAiIiJDaGVjayB3aGV0aGVyIGFuIGVycm9yIGlzIHZhbGlkLiBNb3N0IGVycm9ycyBhcmUgdmFsaWQsIHdpdGggYSBmZXcKLSAgICAgICAgICAgZXhjZXB0aW9ucyB3aGljaCBhcmUgbGlzdGVkIGhlcmUuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlzX2dyaXRfc3RhdGVtZW50ID0gYm9vbCgKLSAgICAgICAgICAgIHJlLnNlYXJjaCgiPC8/KGluY2x1ZGV8aWYpIiwgZXJyb3IudG9rZW4ubGluZSkpCi0KLSAgICAgICAgcmV0dXJuIG5vdCBpc19ncml0X3N0YXRlbWVudCBhbmQgZXJyb3IuY29kZSBub3QgaW4gWwotICAgICAgICAgICAgZXJyb3JzLkpTRE9DX0lMTEVHQUxfUVVFU1RJT05fV0lUSF9QSVBFLAotICAgICAgICAgICAgZXJyb3JzLkpTRE9DX1RBR19ERVNDUklQVElPTl9FTkRTX1dJVEhfSU5WQUxJRF9DSEFSQUNURVIsCi0gICAgICAgICAgICBlcnJvcnMuTUlTU0lOR19KU0RPQ19UQUdfVEhJUywKLSAgICAgICAgXQotCi0gICAgcmVzdWx0cyA9IFtdCi0KLSAgICB0cnk6Ci0gICAgICBhZmZlY3RlZF9maWxlcyA9IHNlbGYuaW5wdXRfYXBpLkFmZmVjdGVkRmlsZXMoCi0gICAgICAgICAgZmlsZV9maWx0ZXI9c2VsZi5maWxlX2ZpbHRlciwKLSAgICAgICAgICBpbmNsdWRlX2RlbGV0ZXM9RmFsc2UpCi0gICAgZXhjZXB0OgotICAgICAgYWZmZWN0ZWRfZmlsZXMgPSBbXQotCi0gICAgZGVmIFNob3VsZENoZWNrKGYpOgotICAgICAgaWYgc2VsZi5pbnB1dF9hcGkuSXNJZ25vcmVkRmlsZShmKToKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICBpZiBmLmZpbGVuYW1lLmVuZHN3aXRoKCcuanMnKToKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgIGlmIGYuZmlsZW5hbWUuZW5kc3dpdGgoJy5odG1sJyk6Ci0gICAgICAgIHJldHVybiBUcnVlCi0gICAgICByZXR1cm4gRmFsc2UKLQotICAgIGFmZmVjdGVkX2pzX2ZpbGVzID0gZmlsdGVyKFNob3VsZENoZWNrLCBhZmZlY3RlZF9maWxlcykKLSAgICBmb3IgZiBpbiBhZmZlY3RlZF9qc19maWxlczoKLSAgICAgIGVycm9yX2xpbmVzID0gW10KLQotICAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKGYuY29udGVudHNfYXNfbGluZXMsIHN0YXJ0PTEpOgotICAgICAgICBlcnJvcl9saW5lcyArPSBmaWx0ZXIoTm9uZSwgWwotICAgICAgICAgICAgc2VsZi5Db25zdENoZWNrKGksIGxpbmUpLAotICAgICAgICBdKQotCi0gICAgICAjIFVzZSBjbG9zdXJlX2xpbnRlciB0byBjaGVjayBmb3Igc2V2ZXJhbCBkaWZmZXJlbnQgZXJyb3JzCi0gICAgICBpbXBvcnQgZ2ZsYWdzIGFzIGZsYWdzCi0gICAgICBmbGFncy5GTEFHUy5zdHJpY3QgPSBUcnVlCi0gICAgICBlcnJvcl9oYW5kbGVyID0gRXJyb3JIYW5kbGVySW1wbCgpCi0gICAgICBqc19jaGVja2VyID0gY2hlY2tlci5KYXZhU2NyaXB0U3R5bGVDaGVja2VyKGVycm9yX2hhbmRsZXIpCi0gICAgICBqc19jaGVja2VyLkNoZWNrKGYuYWJzb2x1dGVfcGF0aCkKLQotICAgICAgZm9yIGVycm9yIGluIGVycm9yX2hhbmRsZXIuR2V0RXJyb3JzKCk6Ci0gICAgICAgIGhpZ2hsaWdodCA9IHNlbGYuZXJyb3JfaGlnaGxpZ2h0KAotICAgICAgICAgICAgZXJyb3IudG9rZW4uc3RhcnRfaW5kZXgsIGVycm9yLnRva2VuLmxlbmd0aCkKLSAgICAgICAgZXJyb3JfbXNnID0gJyAgbGluZSAlZDogRSUwNGQ6ICVzXG4lc1xuJXMnICUgKAotICAgICAgICAgICAgZXJyb3IudG9rZW4ubGluZV9udW1iZXIsCi0gICAgICAgICAgICBlcnJvci5jb2RlLAotICAgICAgICAgICAgZXJyb3IubWVzc2FnZSwKLSAgICAgICAgICAgIGVycm9yLnRva2VuLmxpbmUucnN0cmlwKCksCi0gICAgICAgICAgICBoaWdobGlnaHQpCi0gICAgICAgIGVycm9yX2xpbmVzLmFwcGVuZChlcnJvcl9tc2cpCi0KLSAgICAgIGlmIGVycm9yX2xpbmVzOgotICAgICAgICBlcnJvcl9saW5lcyA9IFsKLSAgICAgICAgICAgICdGb3VuZCBKYXZhU2NyaXB0IHN0eWxlIHZpb2xhdGlvbnMgaW4gJXM6JyAlCi0gICAgICAgICAgICBmLmZpbGVuYW1lXSArIGVycm9yX2xpbmVzCi0gICAgICAgIHJlc3VsdHMuYXBwZW5kKHNlbGYuX21ha2VFcnJvck9yV2FybmluZygKLSAgICAgICAgICAgICdcbicuam9pbihlcnJvcl9saW5lcyksIGYuZmlsZW5hbWUpKQotCi0gICAgcmV0dXJuIHJlc3VsdHMKLQotCi1kZWYgUnVuQ2hlY2tzKGlucHV0X2FwaSk6Ci0gIHJldHVybiBKU0NoZWNrZXIoaW5wdXRfYXBpKS5SdW5DaGVja3MoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2hvb2tzL3ByZV9jb21taXQucHkgYi90cmFjZS12aWV3ZXIvaG9va3MvcHJlX2NvbW1pdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVkMmZlYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvaG9va3MvcHJlX2NvbW1pdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyMCArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1mcm9tIHRyYWNlX3ZpZXdlciBpbXBvcnQgdHJhY2Vfdmlld2VyX3Byb2plY3QKLQotCi1jbGFzcyBfQWZmZWN0ZWRGaWxlKG9iamVjdCk6Ci0gICIiIlRoaW4gd3JhcHBlciBhcm91bmQgQWZmZWN0ZWRGaWxlIGNsYXNzIGZyb20gZGVwb3RfdG9vbHMuCi0KLSAgU2VlIHRvb2xzL2RlcG90X3Rvb2xzL3ByZXN1Ym1pdF9zdXBwb3J0LnB5IGluIHRoZSBDaHJvbWl1bSB0cmVlLgotICAiIiIKLSAgIyBUT0RPKHBldHJjZXJtYWspOiBHZXQgcmlkIG9mIHRoaXMgY2xhc3MgYW5kIHVzZSB0aGUgd3JhcHBlZCBvYmplY3QgZGlyZWN0bHkKLSAgIyAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS90cmFjZS12aWV3ZXIvaXNzdWVzLzkzMikuCi0gIGRlZiBfX2luaXRfXyhzZWxmLCBkZXBvdF90b29sc19hZmZlY3RlZF9maWxlKToKLSAgICBzZWxmLl9kZXBvdF90b29sc19hZmZlY3RlZF9maWxlID0gZGVwb3RfdG9vbHNfYWZmZWN0ZWRfZmlsZQotICAgIHNlbGYuX2NhY2hlZF9jb250ZW50cyA9IE5vbmUKLQotICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYuZmlsZW5hbWUKLQotICBAcHJvcGVydHkKLSAgZGVmIGZpbGVuYW1lKHNlbGYpOgotICAgIHJldHVybiBzZWxmLl9kZXBvdF90b29sc19hZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBhYnNvbHV0ZV9wYXRoKHNlbGYpOgotICAgIHJldHVybiBzZWxmLl9kZXBvdF90b29sc19hZmZlY3RlZF9maWxlLkFic29sdXRlTG9jYWxQYXRoKCkKLQotICBAcHJvcGVydHkKLSAgZGVmIGNvbnRlbnRzKHNlbGYpOgotICAgIGlmIHNlbGYuX2NhY2hlZF9jb250ZW50cyBpcyBOb25lOgotICAgICAgc2VsZi5fY2FjaGVkX2NvbnRlbnRzID0gJ1xuJy5qb2luKHNlbGYuY29udGVudHNfYXNfbGluZXMpCi0gICAgcmV0dXJuIHNlbGYuX2NhY2hlZF9jb250ZW50cwotCi0gIEBwcm9wZXJ0eQotICBkZWYgY29udGVudHNfYXNfbGluZXMoc2VsZik6Ci0gICAgIiIiUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIHRoZSBsaW5lcyBpbiB0aGUgbmV3IHZlcnNpb24gb2YgZmlsZS4KLQotICAgIFRoZSBuZXcgdmVyc2lvbiBpcyB0aGUgZmlsZSBpbiB0aGUgdXNlcidzIHdvcmtzcGFjZSwgaS5lLiB0aGUgInJpZ2h0IGhhbmQKLSAgICBzaWRlIi4KLQotICAgIENvbnRlbnRzIHdpbGwgYmUgZW1wdHkgaWYgdGhlIGZpbGUgaXMgYSBkaXJlY3Rvcnkgb3IgZG9lcyBub3QgZXhpc3QuCi0gICAgTm90ZTogVGhlIGNhcnJpYWdlIHJldHVybnMgKExGIG9yIENSKSBhcmUgc3RyaXBwZWQgb2ZmLgotICAgICIiIgotICAgIHJldHVybiBzZWxmLl9kZXBvdF90b29sc19hZmZlY3RlZF9maWxlLk5ld0NvbnRlbnRzKCkKLQotICBAcHJvcGVydHkKLSAgZGVmIGNoYW5nZWRfbGluZXMoc2VsZik6Ci0gICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgdHVwbGVzIChsaW5lIG51bWJlciwgbGluZSB0ZXh0KSBvZiBhbGwgbmV3IGxpbmVzLgotCi0gICAgIFRoaXMgcmVsaWVzIG9uIHRoZSBzY20gZGlmZiBvdXRwdXQgZGVzY3JpYmluZyBlYWNoIGNoYW5nZWQgY29kZSBzZWN0aW9uCi0gICAgIHdpdGggYSBsaW5lIG9mIHRoZSBmb3JtCi0KLSAgICAgXkBAIDxvbGQgbGluZSBudW0+LDxvbGQgc2l6ZT4gPG5ldyBsaW5lIG51bT4sPG5ldyBzaXplPiBAQCQKLSAgICAiIiIKLSAgICByZXR1cm4gc2VsZi5fZGVwb3RfdG9vbHNfYWZmZWN0ZWRfZmlsZS5DaGFuZ2VkQ29udGVudHMoKQotCi0KLWNsYXNzIF9JbnB1dEFQSShvYmplY3QpOgotICAiIiJUaGluIHdyYXBwZXIgYXJvdW5kIElucHV0QVBJIGNsYXNzIGZyb20gZGVwb3RfdG9vbHMuCi0KLSAgU2VlIHRvb2xzL2RlcG90X3Rvb2xzL3ByZXN1Ym1pdF9zdXBwb3J0LnB5IGluIHRoZSBDaHJvbWl1bSB0cmVlLgotICAiIiIKLSAgIyBUT0RPKHBldHJjZXJtYWspOiBHZXQgcmlkIG9mIHRoaXMgY2xhc3MgYW5kIHVzZSB0aGUgd3JhcHBlZCBvYmplY3QgZGlyZWN0bHkKLSAgIyAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS90cmFjZS12aWV3ZXIvaXNzdWVzLzkzMikuCi0gIGRlZiBfX2luaXRfXyhzZWxmLCBkZXBvdF90b29sc19pbnB1dF9hcGkpOgotICAgIHNlbGYuX2RlcG90X3Rvb2xzX2lucHV0X2FwaSA9IGRlcG90X3Rvb2xzX2lucHV0X2FwaQotCi0gIGRlZiBBZmZlY3RlZEZpbGVzKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgcmV0dXJuIG1hcChfQWZmZWN0ZWRGaWxlLAotICAgICAgICAgICAgICAgc2VsZi5fZGVwb3RfdG9vbHNfaW5wdXRfYXBpLkFmZmVjdGVkRmlsZXMoKmFyZ3MsICoqa3dhcmdzKSkKLQotICBkZWYgSXNJZ25vcmVkRmlsZShzZWxmLCBhZmZlY3RlZF9maWxlKToKLSAgICBpZiBhZmZlY3RlZF9maWxlLmZpbGVuYW1lLmVuZHN3aXRoKCcucG5nJyk6Ci0gICAgICByZXR1cm4gVHJ1ZQotCi0gICAgaWYgYWZmZWN0ZWRfZmlsZS5maWxlbmFtZS5lbmRzd2l0aCgnLnN2ZycpOgotICAgICAgcmV0dXJuIFRydWUKLQotICAgIGlmIChhZmZlY3RlZF9maWxlLmZpbGVuYW1lLmVuZHN3aXRoKCcuZ3lwaScpIG9yCi0gICAgICAgIGFmZmVjdGVkX2ZpbGUuZmlsZW5hbWUuZW5kc3dpdGgoJy5neXAnKSBvcgotICAgICAgICBhZmZlY3RlZF9maWxlLmZpbGVuYW1lLmVuZHN3aXRoKCcuZ24nKSk6Ci0gICAgICByZXR1cm4gVHJ1ZQotCi0gICAgaWYgc2VsZi5Jc1RoaXJkUGFydHkoYWZmZWN0ZWRfZmlsZSk6Ci0gICAgICByZXR1cm4gVHJ1ZQotCi0gICAgIyBJcyB0ZXN0IGRhdGE/Ci0gICAgdGVzdF9kYXRhX3BhdGggPSB0cmFjZV92aWV3ZXJfcHJvamVjdC5UcmFjZVZpZXdlclByb2plY3QudGVzdF9kYXRhX3BhdGgKLSAgICBpZiBhZmZlY3RlZF9maWxlLmFic29sdXRlX3BhdGguc3RhcnRzd2l0aCh0ZXN0X2RhdGFfcGF0aCk6Ci0gICAgICByZXR1cm4gVHJ1ZQotCi0gICAgcmV0dXJuIEZhbHNlCi0KLSAgZGVmIElzVGhpcmRQYXJ0eShzZWxmLCBhZmZlY3RlZF9maWxlKToKLSAgICByZXR1cm4gYWZmZWN0ZWRfZmlsZS5maWxlbmFtZS5zdGFydHN3aXRoKCd0aGlyZF9wYXJ0eScpCi0KLQotZGVmIFJ1bkNoZWNrcyhkZXBvdF90b29sc19pbnB1dF9hcGksIGRlcG90X3Rvb2xzX291dHB1dF9hcGkpOgotICBpbnB1dF9hcGkgPSBfSW5wdXRBUEkoZGVwb3RfdG9vbHNfaW5wdXRfYXBpKQotICByZXN1bHRzID0gW10KLQotICBmcm9tIGhvb2tzIGltcG9ydCBwcmVfY29tbWl0X2NoZWNrcwotICByZXN1bHRzICs9IHByZV9jb21taXRfY2hlY2tzLlJ1bkNoZWNrcyhpbnB1dF9hcGkpCi0KLSAgZnJvbSB0cmFjZV92aWV3ZXIuYnVpbGQgaW1wb3J0IGNoZWNrX2d5cGkKLSAgZXJyID0gY2hlY2tfZ3lwaS5HeXBpQ2hlY2soKQotICBpZiBlcnI6Ci0gICAgcmVzdWx0cyArPSBbZXJyXQotCi0gIGZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCBjaGVja19tb2R1bGVzCi0gIGVyciA9IGNoZWNrX21vZHVsZXMuQ2hlY2tNb2R1bGVzKCkKLSAgaWYgZXJyOgotICAgIHJlc3VsdHMgKz0gW2Vycl0KLQotICBmcm9tIGhvb2tzIGltcG9ydCBqc19jaGVja3MKLSAgcmVzdWx0cyArPSBqc19jaGVja3MuUnVuQ2hlY2tzKGlucHV0X2FwaSkKLQotICByZXR1cm4gbWFwKGRlcG90X3Rvb2xzX291dHB1dF9hcGkuUHJlc3VibWl0RXJyb3IsIHJlc3VsdHMpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvaG9va3MvcHJlX2NvbW1pdF9jaGVja3MucHkgYi90cmFjZS12aWV3ZXIvaG9va3MvcHJlX2NvbW1pdF9jaGVja3MucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzN2M5ODYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL2hvb2tzL3ByZV9jb21taXRfY2hlY2tzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjE1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLQotaW1wb3J0IGNoZWNrbGljZW5zZXMKLQotZGVmIF9Gb3JtYXRFcnJvcihtc2csIGZpbGVzKToKLSAgcmV0dXJuICgnJXMgaW4gdGhlc2UgZmlsZXM6XG4nICUgbXNnICsKLSAgICAgICdcbicuam9pbihbJyAgJyArIHggZm9yIHggaW4gZmlsZXNdKQotICAgICAgKQotCi1kZWYgX1JlcG9ydEVycm9yRmlsZUFuZExpbmUoZmlsZW5hbWUsIGxpbmVfbnVtLCBkdW1teV9saW5lKToKLSAgIiIiRGVmYXVsdCBlcnJvciBmb3JtYXR0ZXIgZm9yIF9GaW5kTmV3VmlvbGF0aW9uc09mUnVsZS4iIiIKLSAgcmV0dXJuICclczolcycgJSAoZmlsZW5hbWUsIGxpbmVfbnVtKQotCi1kZWYgX0ZpbmROZXdWaW9sYXRpb25zT2ZSdWxlKGNhbGxhYmxlX3J1bGUsIGlucHV0X2FwaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZm9ybWF0dGVyPV9SZXBvcnRFcnJvckZpbGVBbmRMaW5lKToKLSAgIiIiRmluZCBhbGwgbmV3bHkgaW50cm9kdWNlZCB2aW9sYXRpb25zIG9mIGEgcGVyLWxpbmUgcnVsZSAoYSBjYWxsYWJsZSkuCi0KLSAgQXJndW1lbnRzOgotICAgIGNhbGxhYmxlX3J1bGU6IGEgY2FsbGFibGUgdGFraW5nIGEgZmlsZSBleHRlbnNpb24gYW5kIGxpbmUgb2YgaW5wdXQgYW5kCi0gICAgICByZXR1cm5pbmcgVHJ1ZSBpZiB0aGUgcnVsZSBpcyBzYXRpc2ZpZWQgYW5kIEZhbHNlIGlmIHRoZXJlIHdhcyBhIHByb2JsZW0uCi0gICAgaW5wdXRfYXBpOiBvYmplY3QgdG8gZW51bWVyYXRlIHRoZSBhZmZlY3RlZCBmaWxlcy4KLSAgICBzb3VyY2VfZmlsZV9maWx0ZXI6IGEgZmlsdGVyIHRvIGJlIHBhc3NlZCB0byB0aGUgaW5wdXQgYXBpLgotICAgIGVycm9yX2Zvcm1hdHRlcjogYSBjYWxsYWJsZSB0YWtpbmcgKGZpbGVuYW1lLCBsaW5lX251bWJlciwgbGluZSkgYW5kCi0gICAgICByZXR1cm5pbmcgYSBmb3JtYXR0ZWQgZXJyb3Igc3RyaW5nLgotCi0gIFJldHVybnM6Ci0gICAgQSBsaXN0IG9mIHRoZSBuZXdseS1pbnRyb2R1Y2VkIHZpb2xhdGlvbnMgcmVwb3J0ZWQgYnkgdGhlIHJ1bGUuCi0gICIiIgotICBlcnJvcnMgPSBbXQotICBmb3IgZiBpbiBpbnB1dF9hcGkuQWZmZWN0ZWRGaWxlcyhpbmNsdWRlX2RlbGV0ZXM9RmFsc2UpOgotICAgICMgRm9yIHNwZWVkLCB3ZSBkbyB0d28gcGFzc2VzLCBjaGVja2luZyBmaXJzdCB0aGUgZnVsbCBmaWxlLiAgU2hlbGxpbmcgb3V0Ci0gICAgIyB0byB0aGUgU0NNIHRvIGRldGVybWluZSB0aGUgY2hhbmdlZCByZWdpb24gY2FuIGJlIHF1aXRlIGV4cGVuc2l2ZSBvbgotICAgICMgV2luMzIuICBBc3N1bWluZyB0aGF0IG1vc3QgZmlsZXMgd2lsbCBiZSBrZXB0IHByb2JsZW0tZnJlZSwgd2UgY2FuCi0gICAgIyBza2lwIHRoZSBTQ00gb3BlcmF0aW9ucyBtb3N0IG9mIHRoZSB0aW1lLgotICAgIGV4dGVuc2lvbiA9IHN0cihmLmZpbGVuYW1lKS5yc3BsaXQoJy4nLCAxKVstMV0KLSAgICBpZiBhbGwoY2FsbGFibGVfcnVsZShleHRlbnNpb24sIGxpbmUpIGZvciBsaW5lIGluIGYuY29udGVudHNfYXNfbGluZXMpOgotICAgICAgY29udGludWUgICMgTm8gdmlvbGF0aW9uIGZvdW5kIGluIGZ1bGwgdGV4dDogY2FuIHNraXAgY29uc2lkZXJpbmcgZGlmZi4KLQotICAgIGlmIGlucHV0X2FwaS5Jc0lnbm9yZWRGaWxlKGYpOgotICAgICAgY29udGludWUKLQotICAgIGZvciBsaW5lX251bSwgbGluZSBpbiBmLmNoYW5nZWRfbGluZXM6Ci0gICAgICBpZiBub3QgY2FsbGFibGVfcnVsZShleHRlbnNpb24sIGxpbmUpOgotICAgICAgICBlcnJvcnMuYXBwZW5kKGVycm9yX2Zvcm1hdHRlcihmLmZpbGVuYW1lLCBsaW5lX251bSwgbGluZSkpCi0KLSAgcmV0dXJuIGVycm9ycwotCi1kZWYgQ2hlY2tDb3B5cmlnaHQoaW5wdXRfYXBpKToKLSAgcmVzdWx0cyA9IFtdCi0gIHJlc3VsdHMgKz0gX0NoZWNrQ29weXJpZ2h0VGhpcmRQYXJ0eShpbnB1dF9hcGkpCi0gIHJlc3VsdHMgKz0gX0NoZWNrQ29weXJpZ2h0Tm9uVGhpcmRQYXJ0eShpbnB1dF9hcGkpCi0gIHJldHVybiByZXN1bHRzCi0KLWRlZiBfQ2hlY2tDb3B5cmlnaHRUaGlyZFBhcnR5KGlucHV0X2FwaSk6Ci0gIHJlc3VsdHMgPSBbXQotICBoYXNfdGhpcmRfcGFydHlfY2hhbmdlID0gYW55KAotICAgICAgaW5wdXRfYXBpLklzVGhpcmRQYXJ0eShmKQotICAgICAgZm9yIGYgaW4gaW5wdXRfYXBpLkFmZmVjdGVkRmlsZXMoaW5jbHVkZV9kZWxldGVzPUZhbHNlKSkKLSAgaWYgaGFzX3RoaXJkX3BhcnR5X2NoYW5nZToKLSAgICB0cmFjZV92aWV3ZXJfcm9vdCA9IG9zLnBhdGguYWJzcGF0aCgKLSAgICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQotICAgIHRyYWNlX3ZpZXdlcl90aGlyZF9wYXJ0eSA9IG9zLnBhdGguam9pbih0cmFjZV92aWV3ZXJfcm9vdCwgJ3RoaXJkX3BhcnR5JykKLSAgICBoYXNfaW52YWxpZF9saWNlbnNlID0gY2hlY2tsaWNlbnNlcy5jaGVja19saWNlbnNlcygKLSAgICAgICAgdHJhY2Vfdmlld2VyX3Jvb3QsIHRyYWNlX3ZpZXdlcl90aGlyZF9wYXJ0eSkKLSAgICBpZiBoYXNfaW52YWxpZF9saWNlbnNlOgotICAgICAgcmVzdWx0cy5hcHBlbmQoCi0gICAgICAgICAgJ0xpY2Vuc2UgY2hlY2sgZW5jb3VudGVyZWQgaW52YWxpZCBsaWNlbnNlcyBpbiB0aGlyZF9wYXJ0eS8uJykKLSAgcmV0dXJuIHJlc3VsdHMKLQotZGVmIF9DaGVja0NvcHlyaWdodE5vblRoaXJkUGFydHkoaW5wdXRfYXBpKToKLSAgcHJvamVjdF9uYW1lID0gJ0Nocm9taXVtJwotCi0gIGN1cnJlbnRfeWVhciA9IGludCh0aW1lLnN0cmZ0aW1lKCclWScpKQotICBhbGxvd19vbGRfeWVhcnM9VHJ1ZQotICBpZiBhbGxvd19vbGRfeWVhcnM6Ci0gICAgYWxsb3dlZF95ZWFycyA9IChzdHIocykgZm9yIHMgaW4gcmV2ZXJzZWQoeHJhbmdlKDIwMDYsIGN1cnJlbnRfeWVhciArIDEpKSkKLSAgZWxzZToKLSAgICBhbGxvd2VkX3llYXJzID0gW3N0cihjdXJyZW50X3llYXIpXQotICB5ZWFyc19yZSA9ICcoJyArICd8Jy5qb2luKGFsbG93ZWRfeWVhcnMpICsgJyknCi0KLSAgIyBUaGUgKGMpIGlzIGRlcHJlY2F0ZWQsIGJ1dCB0b2xlcmF0ZSBpdCB1bnRpbCBpdCdzIHJlbW92ZWQgZnJvbSBhbGwgZmlsZXMuCi0gIG5vbl9odG1sX2xpY2Vuc2VfaGVhZGVyID0gKAotICAgICAgcicuKj8gQ29weXJpZ2h0IChcKGNcKSApPyUoeWVhcilzIFRoZSAlKHByb2plY3QpcyBBdXRob3JzXC4gJwotICAgICAgICByJ0FsbCByaWdodHMgcmVzZXJ2ZWRcLlxuJwotICAgICAgcicuKj8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0ICcKLSAgICAgICAgcidjYW4gYmVcbicKLSAgICAgIHInLio/IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGVcLig/OiBcKi8pP1xuJwotICApICUgewotICAgICAgJ3llYXInOiB5ZWFyc19yZSwKLSAgICAgICdwcm9qZWN0JzogcHJvamVjdF9uYW1lLAotICB9Ci0gIG5vbl9odG1sX2xpY2Vuc2VfcmUgPSByZS5jb21waWxlKG5vbl9odG1sX2xpY2Vuc2VfaGVhZGVyLCByZS5NVUxUSUxJTkUpCi0KLSAgaHRtbF9saWNlbnNlX2hlYWRlciA9ICgKLSAgICAgIHInXkNvcHlyaWdodCAoXChjXCkgKT8lKHllYXIpcyBUaGUgJShwcm9qZWN0KXMgQXV0aG9yc1wuICcKLSAgICAgICAgcidBbGwgcmlnaHRzIHJlc2VydmVkXC5cbicKLSAgICAgIHInVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0ICcKLSAgICAgICAgcidjYW4gYmVcbicKLSAgICAgIHInZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVwuKD86IFwqLyk/XG4nCi0gICkgJSB7Ci0gICAgICAneWVhcic6IHllYXJzX3JlLAotICAgICAgJ3Byb2plY3QnOiBwcm9qZWN0X25hbWUsCi0gIH0KLSAgaHRtbF9saWNlbnNlX3JlID0gcmUuY29tcGlsZShodG1sX2xpY2Vuc2VfaGVhZGVyLCByZS5NVUxUSUxJTkUpCi0KLSAgc291cmNlcyA9IGxpc3QocyBmb3IgcyBpbiBpbnB1dF9hcGkuQWZmZWN0ZWRGaWxlcyhpbmNsdWRlX2RlbGV0ZXM9RmFsc2UpCi0gICAgICAgICAgICAgICAgIGlmIG5vdCBpbnB1dF9hcGkuSXNUaGlyZFBhcnR5KHMpKQotCi0gIGh0bWxfc291cmNlcyA9IFtmIGZvciBmIGluIHNvdXJjZXMKLSAgICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguc3BsaXRleHQoZi5maWxlbmFtZSlbMV0gPT0gJy5odG1sJ10KLSAgbm9uX2h0bWxfc291cmNlcyA9IFtmIGZvciBmIGluIHNvdXJjZXMKLSAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLnNwbGl0ZXh0KGYuZmlsZW5hbWUpWzFdICE9ICcuaHRtbCddCi0KLSAgcmVzdWx0cyA9IFtdCi0gIHJlc3VsdHMgKz0gX0NoZWNrKGlucHV0X2FwaSwgaHRtbF9saWNlbnNlX3JlLCBodG1sX3NvdXJjZXMpCi0gIHJlc3VsdHMgKz0gX0NoZWNrKGlucHV0X2FwaSwgbm9uX2h0bWxfbGljZW5zZV9yZSwgbm9uX2h0bWxfc291cmNlcykKLSAgcmV0dXJuIHJlc3VsdHMKLQotZGVmIF9DaGVjayhpbnB1dF9hcGksIGxpY2Vuc2VfcmUsIHNvdXJjZXMpOgotICBiYWRfZmlsZXMgPSBbXQotICBmb3IgZiBpbiBzb3VyY2VzOgotICAgIGNvbnRlbnRzID0gZi5jb250ZW50cwotICAgIGlmIG5vdCBsaWNlbnNlX3JlLnNlYXJjaChjb250ZW50cyk6Ci0gICAgICBpZiBpbnB1dF9hcGkuSXNJZ25vcmVkRmlsZShmKToKLSAgICAgICAgY29udGludWUKLSAgICAgIGJhZF9maWxlcy5hcHBlbmQoZi5maWxlbmFtZSkKLSAgaWYgYmFkX2ZpbGVzOgotICAgIHJldHVybiBbX0Zvcm1hdEVycm9yKAotICAgICAgICAnTGljZW5zZSBtdXN0IG1hdGNoOlxuJXNcbicgJSBsaWNlbnNlX3JlLnBhdHRlcm4gKwotICAgICAgICAnRm91bmQgYSBiYWQgbGljZW5zZSBoZWFkZXInLAotICAgICAgICBiYWRfZmlsZXMpXQotICByZXR1cm4gW10KLQotZGVmIENoZWNrTG9uZ0xpbmVzKGlucHV0X2FwaSwgbWF4bGVuPTgwKToKLSAgIiIiQ2hlY2tzIHRoYXQgdGhlcmUgYXJlbid0IGFueSBsaW5lcyBsb25nZXIgdGhhbiBtYXhsZW4gY2hhcmFjdGVycyBpbiBhbnkgb2YKLSAgdGhlIHRleHQgZmlsZXMgdG8gYmUgc3VibWl0dGVkLgotICAiIiIKLSAgbWF4bGVucyA9IHsKLSAgICAgICcnOiBtYXhsZW4sCi0gIH0KLQotICAjIExhbmd1YWdlIHNwZWNpZmljIGV4Y2VwdGlvbnMgdG8gbWF4IGxpbmUgbGVuZ3RoLgotICAjICcuaCcgaXMgY29uc2lkZXJlZCBhbiBvYmotYyBmaWxlIGV4dGVuc2lvbiwgc2luY2UgT0JKQ19FWENFUFRJT05TIGFyZSBhCi0gICMgc3VwZXJzZXQgb2YgQ1BQX0VYQ0VQVElPTlMuCi0gIENQUF9GSUxFX0VYVFMgPSAoJ2MnLCAnY2MnKQotICBDUFBfRVhDRVBUSU9OUyA9ICgnI2RlZmluZScsICcjZW5kaWYnLCAnI2lmJywgJyNpbmNsdWRlJywgJyNwcmFnbWEnKQotICBKQVZBX0ZJTEVfRVhUUyA9ICgnamF2YScsKQotICBKQVZBX0VYQ0VQVElPTlMgPSAoJ2ltcG9ydCAnLCAncGFja2FnZSAnKQotICBPQkpDX0ZJTEVfRVhUUyA9ICgnaCcsICdtJywgJ21tJykKLSAgT0JKQ19FWENFUFRJT05TID0gKCcjZGVmaW5lJywgJyNlbmRpZicsICcjaWYnLCAnI2ltcG9ydCcsICcjaW5jbHVkZScsCi0gICAgICAgICAgICAgICAgICAgICAnI3ByYWdtYScpCi0KLSAgTEFOR1VBR0VfRVhDRVBUSU9OUyA9IFsKLSAgICAoQ1BQX0ZJTEVfRVhUUywgQ1BQX0VYQ0VQVElPTlMpLAotICAgIChKQVZBX0ZJTEVfRVhUUywgSkFWQV9FWENFUFRJT05TKSwKLSAgICAoT0JKQ19GSUxFX0VYVFMsIE9CSkNfRVhDRVBUSU9OUyksCi0gIF0KLQotICBkZWYgbm9fbG9uZ19saW5lcyhmaWxlX2V4dGVuc2lvbiwgbGluZSk6Ci0gICAgIyBDaGVjayBmb3IgbGFuZ3VhZ2Ugc3BlY2lmaWMgZXhjZXB0aW9ucy4KLSAgICBpZiBhbnkoZmlsZV9leHRlbnNpb24gaW4gZXh0cyBhbmQgbGluZS5zdGFydHN3aXRoKGV4Y2VwdGlvbnMpCi0gICAgICAgICAgIGZvciBleHRzLCBleGNlcHRpb25zIGluIExBTkdVQUdFX0VYQ0VQVElPTlMpOgotICAgICAgcmV0dXJuIFRydWUKLQotICAgIGZpbGVfbWF4bGVuID0gbWF4bGVucy5nZXQoZmlsZV9leHRlbnNpb24sIG1heGxlbnNbJyddKQotICAgICMgU3R1cGlkbHkgbG9uZyBzeW1ib2xzIHRoYXQgbmVlZHMgdG8gYmUgd29ya2VkIGFyb3VuZCBpZiB0YWtlcyA2NiUgb2YgbGluZS4KLSAgICBsb25nX3N5bWJvbCA9IGZpbGVfbWF4bGVuICogMiAvIDMKLSAgICAjIEhhcmQgbGluZSBsZW5ndGggbGltaXQgYXQgNTAlIG1vcmUuCi0gICAgZXh0cmFfbWF4bGVuID0gZmlsZV9tYXhsZW4gKiAzIC8gMgotCi0gICAgbGluZV9sZW4gPSBsZW4obGluZSkKLSAgICBpZiBsaW5lX2xlbiA8PSBmaWxlX21heGxlbjoKLSAgICAgIHJldHVybiBUcnVlCi0KLSAgICBpZiAnQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2snIGluIGxpbmU6Ci0gICAgICByZXR1cm4gVHJ1ZQotCi0gICAgaWYgbGluZV9sZW4gPiBleHRyYV9tYXhsZW46Ci0gICAgICByZXR1cm4gRmFsc2UKLQotICAgIGlmIGFueSgodXJsIGluIGxpbmUpIGZvciB1cmwgaW4gKCdmaWxlOi8vJywgJ2h0dHA6Ly8nLCAnaHR0cHM6Ly8nKSk6Ci0gICAgICByZXR1cm4gVHJ1ZQotCi0gICAgaWYgJ3VybCgnIGluIGxpbmUgYW5kIGZpbGVfZXh0ZW5zaW9uID09ICdjc3MnOgotICAgICAgcmV0dXJuIFRydWUKLQotICAgIGlmICc8aW5jbHVkZScgaW4gbGluZSBhbmQgZmlsZV9leHRlbnNpb24gaW4gKCdjc3MnLCAnaHRtbCcsICdqcycpOgotICAgICAgcmV0dXJuIFRydWUKLQotICAgIHJldHVybiByZS5tYXRjaCgKLSAgICAgICAgcicuKltBLVphLXpdW0EtWmEtel8wLTldeyVkLH0uKicgJSBsb25nX3N5bWJvbCwgbGluZSkKLQotICBkZWYgZm9ybWF0X2Vycm9yKGZpbGVuYW1lLCBsaW5lX251bSwgbGluZSk6Ci0gICAgcmV0dXJuICclcywgbGluZSAlcywgJXMgY2hhcnMnICUgKGZpbGVuYW1lLCBsaW5lX251bSwgbGVuKGxpbmUpKQotCi0gIGVycm9ycyA9IF9GaW5kTmV3VmlvbGF0aW9uc09mUnVsZShub19sb25nX2xpbmVzLCBpbnB1dF9hcGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9mb3JtYXR0ZXI9Zm9ybWF0X2Vycm9yKQotICBpZiBlcnJvcnM6Ci0gICAgcmV0dXJuIFtfRm9ybWF0RXJyb3IoCi0gICAgICAgICdGb3VuZCBsaW5lcyBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJyAlIG1heGxlbiwKLSAgICAgICAgZXJyb3JzKV0KLSAgZWxzZToKLSAgICByZXR1cm4gW10KLQotZGVmIFJ1bkNoZWNrcyhpbnB1dF9hcGkpOgotICByZXN1bHRzID0gW10KLSAgcmVzdWx0cyArPSBDaGVja0NvcHlyaWdodChpbnB1dF9hcGkpCi0gIHJlc3VsdHMgKz0gQ2hlY2tMb25nTGluZXMoaW5wdXRfYXBpKQotICByZXR1cm4gcmVzdWx0cwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvUkVBRE1FLm1kIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2Y2NhZjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy9SRUFETUUubWQKQEAgLTAsMCArMSw3IEBACis8IS0tIENvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisgICAgIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KK1RoaXMgZm9sZGVyIGNvbnRhaW5zIGNvZGUgZm9yIGh0dHA6Ly9wZXJmb3JtYW5jZS1pbnNpZ2h0cy5hcHBzcG90LmNvbS8sCithbmQgcmVsYXRlZCBjbGllbnQgc2NyaXB0cy4gVGhpcyBpcyBvdXIgVUkgZm9yIGJ1bGstcHJvY2Vzc2luZyBvZiB0cmFjZSBkYXRhIGluCitvcmRlciB0byB1bmRlcnN0YW5kIHBlcmZvcm1hbmNlIGlzc3VlcyBpbiBDaHJvbWUsIGF0IHNjYWxlLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ2NGY5ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KK2ltcG9ydCBvcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2FwcC55YW1sIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvYXBwLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQzMDMyYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2FwcC55YW1sCkBAIC0wLDAgKzEsMTggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2FwcGxpY2F0aW9uOiBwZXJmb3JtYW5jZS1pbnNpZ2h0cworCit2ZXJzaW9uOiAzCithcGlfdmVyc2lvbjogMQorcnVudGltZTogcHl0aG9uMjcKK3RocmVhZHNhZmU6IHRydWUKKworYnVpbHRpbnM6CistIHJlbW90ZV9hcGk6IG9uCisKK2hhbmRsZXJzOgorLSB1cmw6IC91cGxvYWQKKyAgc2NyaXB0OiBwZXJmX2luc2lnaHRzLnVwbG9hZC5hcHAKKyAgc2VjdXJlOiBhbHdheXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDY0ZjlkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvYmluL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KK2ltcG9ydCBvcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi9tYXBfdHJhY2VzIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvYmluL21hcF90cmFjZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzU1NzI0ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi9tYXBfdHJhY2VzCkBAIC0wLDAgKzEsMTMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHRvcF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICcuLicpKQorICBzeXMucGF0aC5hcHBlbmQodG9wX2RpcikKKyAgZnJvbSBwZXJmX2luc2lnaHRzLmJpbiBpbXBvcnQgbWFwX3RyYWNlcworICBzeXMuZXhpdChtYXBfdHJhY2VzLk1haW4oc3lzLmFyZ3ZbMTpdKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi9tYXBfdHJhY2VzLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvYmluL21hcF90cmFjZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBlYTllNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi9tYXBfdHJhY2VzLnB5CkBAIC0wLDAgKzEsNiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworZGVmIE1haW4oYXJncyk6CisgIHBhc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi93ciBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2Jpbi93cgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOWMyOGNmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvYmluL3dyCkBAIC0wLDAgKzEsMTMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHRvcF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICcuLicpKQorICBzeXMucGF0aC5hcHBlbmQodG9wX2RpcikKKyAgZnJvbSBwZXJmX2luc2lnaHRzLmJpbiBpbXBvcnQgd3IKKyAgc3lzLmV4aXQod3IuTWFpbihzeXMuYXJndlsxOl0pKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvYmluL3dyLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvYmluL3dyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZWE5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy9iaW4vd3IucHkKQEAgLTAsMCArMSw2IEBACisjIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitkZWYgTWFpbihhcmdzKToKKyAgcGFzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvaW5kZXgueWFtbCBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2luZGV4LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk2ZjI2NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL2luZGV4LnlhbWwKQEAgLTAsMCArMSwyNCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW5kZXhlczoKKworLSBraW5kOiBUcmFjZUluZm8KKyAgcHJvcGVydGllczoKKyAgLSBuYW1lOiBwcm9kCisgIC0gbmFtZTogZGF0ZQorICAgIGRpcmVjdGlvbjogZGVzYworCistIGtpbmQ6IFRyYWNlSW5mbworICBwcm9wZXJ0aWVzOgorICAtIG5hbWU6IHZlcgorICAtIG5hbWU6IGRhdGUKKyAgICBkaXJlY3Rpb246IGRlc2MKKworLSBraW5kOiBUcmFjZUluZm8KKyAgcHJvcGVydGllczoKKyAgLSBuYW1lOiBwcm9kCisgIC0gbmFtZTogdmVyCisgIC0gbmFtZTogZGF0ZQorICAgIGRpcmVjdGlvbjogZGVzYwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvcGVyZl9pbnNpZ2h0cy9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3BlcmZfaW5zaWdodHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ2NGY5ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3BlcmZfaW5zaWdodHMvX19pbml0X18ucHkKQEAgLTAsMCArMSw0IEBACisjIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoraW1wb3J0IG9zClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvcGVyZl9pbnNpZ2h0cy90cmFjZV9pbmZvLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvcGVyZl9pbnNpZ2h0cy90cmFjZV9pbmZvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMzBkYTAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy9wZXJmX2luc2lnaHRzL3RyYWNlX2luZm8ucHkKQEAgLTAsMCArMSwxNCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgbmRiCisKKworY2xhc3MgVHJhY2VJbmZvKG5kYi5Nb2RlbCk6CisgIGRhdGUgPSBuZGIuRGF0ZVRpbWVQcm9wZXJ0eShhdXRvX25vd19hZGQ9VHJ1ZSwgaW5kZXhlZD1UcnVlKQorICBwcm9kID0gbmRiLlN0cmluZ1Byb3BlcnR5KGluZGV4ZWQ9VHJ1ZSkKKyAgcmVtb3RlX2FkZHIgPSBuZGIuU3RyaW5nUHJvcGVydHkoaW5kZXhlZD1UcnVlKQorICB0YWdzID0gbmRiLlN0cmluZ1Byb3BlcnR5KGluZGV4ZWQ9VHJ1ZSwgcmVwZWF0ZWQ9VHJ1ZSkKKyAgdXNlcl9hZ2VudCA9IG5kYi5TdHJpbmdQcm9wZXJ0eShpbmRleGVkPVRydWUsIGRlZmF1bHQ9Tm9uZSkKKyAgdmVyID0gbmRiLlN0cmluZ1Byb3BlcnR5KGluZGV4ZWQ9VHJ1ZSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3BlcmZfaW5zaWdodHMvdXBsb2FkLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvcGVyZl9pbnNpZ2h0cy91cGxvYWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IyZmU5YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3BlcmZfaW5zaWdodHMvdXBsb2FkLnB5CkBAIC0wLDAgKzEsNTggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc3lzCitpbXBvcnQgd2ViYXBwMgoraW1wb3J0IHV1aWQKKworZnJvbSBwZXJmX2luc2lnaHRzIGltcG9ydCB0cmFjZV9pbmZvCisKK3N5cy5wYXRoLmFwcGVuZCgndGhpcmRfcGFydHknKQoraW1wb3J0IGNsb3Vkc3RvcmFnZSBhcyBnY3MKKworZGVmYXVsdF9yZXRyeV9wYXJhbXMgPSBnY3MuUmV0cnlQYXJhbXMoaW5pdGlhbF9kZWxheT0wLjIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfZGVsYXk9NS4wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja29mZl9mYWN0b3I9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9yZXRyeV9wZXJpb2Q9MTUpCitnY3Muc2V0X2RlZmF1bHRfcmV0cnlfcGFyYW1zKGRlZmF1bHRfcmV0cnlfcGFyYW1zKQorCisKK2NsYXNzIFVwbG9hZFBhZ2Uod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisKKyAgZGVmIGdldChzZWxmKToKKyAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgiIiIKKyAgICAgICAgICA8aHRtbD48Ym9keT4KKyAgICAgICAgICAgIDxoZWFkPjx0aXRsZT5QZXJmb3JtYW5jZSBJbnNpZ2h0cyAtIFRyYWNlIFVwbG9hZGVyPC90aXRsZT48L2hlYWQ+CisgICAgICAgICAgICA8Zm9ybSBhY3Rpb249Ii91cGxvYWQiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0icG9zdCI+CisgICAgICAgICAgICAgIDxkaXY+PGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InRyYWNlIi8+PC9kaXY+CisgICAgICAgICAgICAgIDxkaXY+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlVwbG9hZCI+PC9kaXY+CisgICAgICAgICAgICA8L2Zvcm0+PGhyPgorICAgICAgICAgIDwvYm9keT48L2h0bWw+IiIiKQorCisgIGRlZiBwb3N0KHNlbGYpOgorICAgIHRyYWNlX3V1aWQgPSBzdHIodXVpZC51dWlkNCgpKQorICAgIGJ1Y2tldF9uYW1lID0gKCcvcGVyZm9ybWFuY2UtaW5zaWdodHMvJyArIHRyYWNlX3V1aWQpCisgICAgZ2NzX2ZpbGUgPSBnY3Mub3BlbihidWNrZXRfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd3JywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e30sCisgICAgICAgICAgICAgICAgICAgICAgICByZXRyeV9wYXJhbXM9ZGVmYXVsdF9yZXRyeV9wYXJhbXMpCisgICAgZ2NzX2ZpbGUud3JpdGUoc2VsZi5yZXF1ZXN0LmdldCgndHJhY2UnKSkKKyAgICBnY3NfZmlsZS5jbG9zZSgpCisKKyAgICB0cmFjZV9vYmplY3QgPSB0cmFjZV9pbmZvLlRyYWNlSW5mbyhpZD10cmFjZV91dWlkKQorICAgIHRyYWNlX29iamVjdC5wcm9kID0gc2VsZi5yZXF1ZXN0LmdldCgncHJvZCcpCisgICAgdHJhY2Vfb2JqZWN0LnJlbW90ZV9hZGRyID0gb3MuZW52aXJvblsiUkVNT1RFX0FERFIiXQorICAgIHRhZ3Nfc3RyaW5nID0gc2VsZi5yZXF1ZXN0LmdldCgndGFncycpCisgICAgaWYgcmUubWF0Y2goJ15bYS16QS1aMC05LF0rJCcsIHRhZ3Nfc3RyaW5nKTogIyBpZ25vcmUgbm9uIGFscGhhLW51bWVyaWMgdGFncworICAgICAgdHJhY2Vfb2JqZWN0LnRhZ3MgPSB0YWdzX3N0cmluZy5zcGxpdCgnLCcpCisgICAgdHJhY2Vfb2JqZWN0LnVzZXJfYWdlbnQgPSBzZWxmLnJlcXVlc3QuaGVhZGVycy5nZXQoJ1VzZXItQWdlbnQnKQorICAgIHRyYWNlX29iamVjdC52ZXIgPSBzZWxmLnJlcXVlc3QuZ2V0KCdwcm9kdWN0X3ZlcnNpb24nKQorICAgIHRyYWNlX29iamVjdC5wdXQoKQorCisgICAgc2VsZi5yZXNwb25zZS53cml0ZSh0cmFjZV91dWlkKQorCithcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbKCcvdXBsb2FkJywgVXBsb2FkUGFnZSldKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL0NPUFlJTkcgYi90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2UvQ09QWUlORwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDljZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL0NPUFlJTkcKQEAgLTAsMCArMSwyMDEgQEAKK0FwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorCisgICAxLiBEZWZpbml0aW9ucy4KKworICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKyAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorCisgICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisgICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisgICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisgICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisgICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisgICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisgICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKyAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKyAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisgICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisgICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisgICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisKKyAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisgICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisgICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKKyAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisKKyAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisgICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKyAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKyAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisKKyAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisgICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCisgICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKyAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKyAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgorICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisgICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisgICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bworICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKyAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisgICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKKyAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisgICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKworICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCisKKyAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKyAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKyAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisgICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisgICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKyAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisgICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCisgICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKyAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKworICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKyAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKyAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisgICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisKKyAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKyAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKworICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisgICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisgICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKworICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCisgICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAorICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisgICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKyAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKyAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisgICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKyAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQorICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KKworICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisgICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisgICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisgICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKyAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKworICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisgICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCisgICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKyAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorCisgICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKyAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKyAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisgICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisgICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKyAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKworICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKKyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgorCisgICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisgICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKyAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisgICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQorICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKyAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKyAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCisKKyAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworCisgICBBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisKKyAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisgICAgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCisgICAgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorICAgICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQorICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisgICAgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCisKKyAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQorCisgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9SRUFETUUuY2hyb21pdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzODczMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9SRUFETUUuY2hyb21pdW0KQEAgLTAsMCArMSwxMiBAQAorTmFtZTogR29vZ2xlIENsb3VkIFN0b3JhZ2UgQ2xpZW50IExpYnJhcnkKK1VSTDogaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vYXBwZW5naW5lLWdjcy1jbGllbnQKK0xpY2Vuc2U6IEFwYWNoZSAyLjAKKworRGVzY3JpcHRpb246CitUaGUgR29vZ2xlIENsb3VkIFN0b3JhZ2UgY2xpZW50IGxpYnJhcnkgaXMgYSBjbGllbnQtc2lkZSBsaWJyYXJ5IHRoYXQgaXMgbm90CitkZXBlbmRlbnQgb24gYW55IHNwZWNpZmljIHZlcnNpb24gb2YgQXBwIEVuZ2luZSBmb3IgcHJvZHVjdGlvbiB1c2UuCisKK01vZGlmaWNhdGlvbnM6CisKKworRnVsbCBsaWNlbnNlIGlzIGluIHRoZSBDT1BZSU5HIGZpbGUuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2UvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2UvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ5YTAyMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDI5IEBACisjIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwKKyMgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMKKyMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworIiIiQ2xpZW50IExpYnJhcnkgZm9yIEdvb2dsZSBDbG91ZCBTdG9yYWdlLiIiIgorCisKKworCitmcm9tIC5hcGlfdXRpbHMgaW1wb3J0IFJldHJ5UGFyYW1zCitmcm9tIC5hcGlfdXRpbHMgaW1wb3J0IHNldF9kZWZhdWx0X3JldHJ5X3BhcmFtcworZnJvbSBjbG91ZHN0b3JhZ2VfYXBpIGltcG9ydCAqCitmcm9tIC5jb21tb24gaW1wb3J0IENTRmlsZVN0YXQKK2Zyb20gLmNvbW1vbiBpbXBvcnQgR0NTRmlsZVN0YXQKK2Zyb20gLmNvbW1vbiBpbXBvcnQgdmFsaWRhdGVfYnVja2V0X25hbWUKK2Zyb20gLmNvbW1vbiBpbXBvcnQgdmFsaWRhdGVfYnVja2V0X3BhdGgKK2Zyb20gLmNvbW1vbiBpbXBvcnQgdmFsaWRhdGVfZmlsZV9wYXRoCitmcm9tIGVycm9ycyBpbXBvcnQgKgorZnJvbSBzdG9yYWdlX2FwaSBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL2FwaV91dGlscy5weSBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9hcGlfdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjgwYWM2YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9hcGlfdXRpbHMucHkKQEAgLTAsMCArMSwzNTMgQEAKKyMgQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELAorIyBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYworIyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiJVdGlsIGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyBmb3IgY2xvdWRzdG9yYWdlX2FwaS4iIiIKKworCisKK19fYWxsX18gPSBbJ3NldF9kZWZhdWx0X3JldHJ5X3BhcmFtcycsCisgICAgICAgICAgICdSZXRyeVBhcmFtcycsCisgICAgICAgICAgXQorCitpbXBvcnQgY29weQoraW1wb3J0IGh0dHBsaWIKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgbWF0aAoraW1wb3J0IG9zCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQoraW1wb3J0IHVybGxpYgorCisKK3RyeToKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgYXBwX2lkZW50aXR5CisgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5hcGkgaW1wb3J0IHVybGZldGNoCisgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5kYXRhc3RvcmUgaW1wb3J0IGRhdGFzdG9yZV9ycGMKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgbmRiCisgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQubmRiIGltcG9ydCBldmVudGxvb3AKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC5uZGIgaW1wb3J0IHRhc2tsZXRzCisgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQubmRiIGltcG9ydCB1dGlscworICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUgaW1wb3J0IHJ1bnRpbWUKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLnJ1bnRpbWUgaW1wb3J0IGFwaXByb3h5X2Vycm9ycworZXhjZXB0IEltcG9ydEVycm9yOgorICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCBhcHBfaWRlbnRpdHkKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgdXJsZmV0Y2gKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmRhdGFzdG9yZSBpbXBvcnQgZGF0YXN0b3JlX3JwYworICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUgaW1wb3J0IHJ1bnRpbWUKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLnJ1bnRpbWUgaW1wb3J0IGFwaXByb3h5X2Vycm9ycworICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGltcG9ydCBuZGIKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC5uZGIgaW1wb3J0IGV2ZW50bG9vcAorICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0Lm5kYiBpbXBvcnQgdGFza2xldHMKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC5uZGIgaW1wb3J0IHV0aWxzCisKKworX1JFVFJJQUJMRV9FWENFUFRJT05TID0gKHVybGZldGNoLkRvd25sb2FkRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgYXBpcHJveHlfZXJyb3JzLkVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFwcF9pZGVudGl0eS5JbnRlcm5hbEVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFwcF9pZGVudGl0eS5CYWNrZW5kRGVhZGxpbmVFeGNlZWRlZCkKKworX3RocmVhZF9sb2NhbF9zZXR0aW5ncyA9IHRocmVhZGluZy5sb2NhbCgpCitfdGhyZWFkX2xvY2FsX3NldHRpbmdzLmRlZmF1bHRfcmV0cnlfcGFyYW1zID0gTm9uZQorCisKK2RlZiBzZXRfZGVmYXVsdF9yZXRyeV9wYXJhbXMocmV0cnlfcGFyYW1zKToKKyAgIiIiU2V0IGEgZGVmYXVsdCBSZXRyeVBhcmFtcyBmb3IgY3VycmVudCB0aHJlYWQgY3VycmVudCByZXF1ZXN0LiIiIgorICBfdGhyZWFkX2xvY2FsX3NldHRpbmdzLmRlZmF1bHRfcmV0cnlfcGFyYW1zID0gY29weS5jb3B5KHJldHJ5X3BhcmFtcykKKworCitkZWYgX2dldF9kZWZhdWx0X3JldHJ5X3BhcmFtcygpOgorICAiIiJHZXQgZGVmYXVsdCBSZXRyeVBhcmFtcyBmb3IgY3VycmVudCByZXF1ZXN0IGFuZCBjdXJyZW50IHRocmVhZC4KKworICBSZXR1cm5zOgorICAgIEEgbmV3IGluc3RhbmNlIG9mIHRoZSBkZWZhdWx0IFJldHJ5UGFyYW1zLgorICAiIiIKKyAgZGVmYXVsdCA9IGdldGF0dHIoX3RocmVhZF9sb2NhbF9zZXR0aW5ncywgJ2RlZmF1bHRfcmV0cnlfcGFyYW1zJywgTm9uZSkKKyAgaWYgZGVmYXVsdCBpcyBOb25lIG9yIG5vdCBkZWZhdWx0LmJlbG9uZ190b19jdXJyZW50X3JlcXVlc3QoKToKKyAgICByZXR1cm4gUmV0cnlQYXJhbXMoKQorICBlbHNlOgorICAgIHJldHVybiBjb3B5LmNvcHkoZGVmYXVsdCkKKworCitkZWYgX3F1b3RlX2ZpbGVuYW1lKGZpbGVuYW1lKToKKyAgIiIiUXVvdGVzIGZpbGVuYW1lIHRvIHVzZSBhcyBhIHZhbGlkIFVSSSBwYXRoLgorCisgIEFyZ3M6CisgICAgZmlsZW5hbWU6IHVzZXIgcHJvdmlkZWQgZmlsZW5hbWUuIC9idWNrZXQvZmlsZW5hbWUuCisKKyAgUmV0dXJuczoKKyAgICBUaGUgZmlsZW5hbWUgcHJvcGVybHkgcXVvdGVkIHRvIHVzZSBhcyBVUkkncyBwYXRoIGNvbXBvbmVudC4KKyAgIiIiCisgIHJldHVybiB1cmxsaWIucXVvdGUoZmlsZW5hbWUpCisKKworZGVmIF91bnF1b3RlX2ZpbGVuYW1lKGZpbGVuYW1lKToKKyAgIiIiVW5xdW90ZXMgYSB2YWxpZCBVUkkgcGF0aCBiYWNrIHRvIGl0cyBmaWxlbmFtZS4KKworICBUaGlzIGlzIHRoZSBvcHBvc2l0ZSBvZiBfcXVvdGVfZmlsZW5hbWUuCisKKyAgQXJnczoKKyAgICBmaWxlbmFtZTogYSBxdW90ZWQgZmlsZW5hbWUuIC9idWNrZXQvc29tZSUyMGZpbGVuYW1lLgorCisgIFJldHVybnM6CisgICAgVGhlIGZpbGVuYW1lIHVucXVvdGVkLgorICAiIiIKKyAgcmV0dXJuIHVybGxpYi51bnF1b3RlKGZpbGVuYW1lKQorCisKK2RlZiBfc2hvdWxkX3JldHJ5KHJlc3ApOgorICAiIiJHaXZlbiBhIHVybGZldGNoIHJlc3BvbnNlLCBkZWNpZGUgd2hldGhlciB0byByZXRyeSB0aGF0IHJlcXVlc3QuIiIiCisgIHJldHVybiAocmVzcC5zdGF0dXNfY29kZSA9PSBodHRwbGliLlJFUVVFU1RfVElNRU9VVCBvcgorICAgICAgICAgIChyZXNwLnN0YXR1c19jb2RlID49IDUwMCBhbmQKKyAgICAgICAgICAgcmVzcC5zdGF0dXNfY29kZSA8IDYwMCkpCisKKworY2xhc3MgX1JldHJ5V3JhcHBlcihvYmplY3QpOgorICAiIiJBIHdyYXBwZXIgdGhhdCB3cmFwcyByZXRyeSBsb2dpYyBhcm91bmQgYW55IHRhc2tsZXQuIiIiCisKKyAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICByZXRyeV9wYXJhbXMsCisgICAgICAgICAgICAgICByZXRyaWFibGVfZXhjZXB0aW9ucz1fUkVUUklBQkxFX0VYQ0VQVElPTlMsCisgICAgICAgICAgICAgICBzaG91bGRfcmV0cnk9bGFtYmRhIHI6IEZhbHNlKToKKyAgICAiIiJJbml0LgorCisgICAgQXJnczoKKyAgICAgIHJldHJ5X3BhcmFtczogYW4gUmV0cnlQYXJhbXMgaW5zdGFuY2UuCisgICAgICByZXRyaWFibGVfZXhjZXB0aW9uczogYSBsaXN0IG9mIGV4Y2VwdGlvbiBjbGFzc2VzIHRoYXQgYXJlIHJldHJpYWJsZS4KKyAgICAgIHNob3VsZF9yZXRyeTogYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcmVzdWx0IGZyb20gdGhlIHRhc2tsZXQgYW5kIHJldHVybnMKKyAgICAgICAgYSBib29sZWFuLiBUcnVlIGlmIHRoZSByZXN1bHQgc2hvdWxkIGJlIHJldHJpZWQuCisgICAgIiIiCisgICAgc2VsZi5yZXRyeV9wYXJhbXMgPSByZXRyeV9wYXJhbXMKKyAgICBzZWxmLnJldHJpYWJsZV9leGNlcHRpb25zID0gcmV0cmlhYmxlX2V4Y2VwdGlvbnMKKyAgICBzZWxmLnNob3VsZF9yZXRyeSA9IHNob3VsZF9yZXRyeQorCisgIEBuZGIudGFza2xldAorICBkZWYgcnVuKHNlbGYsIHRhc2tsZXQsICoqa3dkcyk6CisgICAgIiIiUnVuIGEgdGFza2xldCB3aXRoIHJldHJ5LgorCisgICAgVGhlIHJldHJ5IHNob3VsZCBiZSB0cmFuc3BhcmVudCB0byB0aGUgY2FsbGVyOiBpZiBubyByZXN1bHRzCisgICAgYXJlIHN1Y2Nlc3NmdWwsIHRoZSBleGNlcHRpb24gb3IgcmVzdWx0IGZyb20gdGhlIGxhc3QgcmV0cnkgaXMgcmV0dXJuZWQKKyAgICB0byB0aGUgY2FsbGVyLgorCisgICAgQXJnczoKKyAgICAgIHRhc2tsZXQ6IHRoZSB0YXNrbGV0IHRvIHJ1bi4KKyAgICAgICoqa3dkczoga2V5d29yZHMgYXJndW1lbnRzIHRvIHJ1biB0aGUgdGFza2xldC4KKworICAgIFJhaXNlczoKKyAgICAgIFRoZSBleGNlcHRpb24gZnJvbSBydW5uaW5nIHRoZSB0YXNrbGV0LgorCisgICAgUmV0dXJuczoKKyAgICAgIFRoZSByZXN1bHQgZnJvbSBydW5uaW5nIHRoZSB0YXNrbGV0LgorICAgICIiIgorICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQorICAgIG4gPSAxCisKKyAgICB3aGlsZSBUcnVlOgorICAgICAgZSA9IE5vbmUKKyAgICAgIHJlc3VsdCA9IE5vbmUKKyAgICAgIGdvdF9yZXN1bHQgPSBGYWxzZQorCisgICAgICB0cnk6CisgICAgICAgIHJlc3VsdCA9IHlpZWxkIHRhc2tsZXQoKiprd2RzKQorICAgICAgICBnb3RfcmVzdWx0ID0gVHJ1ZQorICAgICAgICBpZiBub3Qgc2VsZi5zaG91bGRfcmV0cnkocmVzdWx0KToKKyAgICAgICAgICByYWlzZSBuZGIuUmV0dXJuKHJlc3VsdCkKKyAgICAgIGV4Y2VwdCBydW50aW1lLkRlYWRsaW5lRXhjZWVkZWRFcnJvcjoKKyAgICAgICAgbG9nZ2luZy5kZWJ1ZygKKyAgICAgICAgICAgICdUYXNrbGV0IGhhcyBleGNlZWRlZCByZXF1ZXN0IGRlYWRsaW5lIGFmdGVyICVzIHNlY29uZHMgdG90YWwnLAorICAgICAgICAgICAgdGltZS50aW1lKCkgLSBzdGFydF90aW1lKQorICAgICAgICByYWlzZQorICAgICAgZXhjZXB0IHNlbGYucmV0cmlhYmxlX2V4Y2VwdGlvbnMsIGU6CisgICAgICAgIHBhc3MKKworICAgICAgaWYgbiA9PSAxOgorICAgICAgICBsb2dnaW5nLmRlYnVnKCdUYXNrbGV0IGlzICVyJywgdGFza2xldCkKKworICAgICAgZGVsYXkgPSBzZWxmLnJldHJ5X3BhcmFtcy5kZWxheShuLCBzdGFydF90aW1lKQorCisgICAgICBpZiBkZWxheSA8PSAwOgorICAgICAgICBsb2dnaW5nLmRlYnVnKAorICAgICAgICAgICAgJ1Rhc2tsZXQgZmFpbGVkIGFmdGVyICVzIGF0dGVtcHRzIGFuZCAlcyBzZWNvbmRzIGluIHRvdGFsJywKKyAgICAgICAgICAgIG4sIHRpbWUudGltZSgpIC0gc3RhcnRfdGltZSkKKyAgICAgICAgaWYgZ290X3Jlc3VsdDoKKyAgICAgICAgICByYWlzZSBuZGIuUmV0dXJuKHJlc3VsdCkKKyAgICAgICAgZWxpZiBlIGlzIG5vdCBOb25lOgorICAgICAgICAgIHJhaXNlIGUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICBhc3NlcnQgRmFsc2UsICdTaG91bGQgbmV2ZXIgcmVhY2ggaGVyZS4nCisKKyAgICAgIGlmIGdvdF9yZXN1bHQ6CisgICAgICAgIGxvZ2dpbmcuZGVidWcoCisgICAgICAgICAgICAnR290IHJlc3VsdCAlciBmcm9tIHRhc2tsZXQuJywgcmVzdWx0KQorICAgICAgZWxzZToKKyAgICAgICAgbG9nZ2luZy5kZWJ1ZygKKyAgICAgICAgICAgICdHb3QgZXhjZXB0aW9uICIlciIgZnJvbSB0YXNrbGV0LicsIGUpCisgICAgICBsb2dnaW5nLmRlYnVnKCdSZXRyeSBpbiAlcyBzZWNvbmRzLicsIGRlbGF5KQorICAgICAgbiArPSAxCisgICAgICB5aWVsZCB0YXNrbGV0cy5zbGVlcChkZWxheSkKKworCitjbGFzcyBSZXRyeVBhcmFtcyhvYmplY3QpOgorICAiIiJSZXRyeSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIiIiCisKKyAgX0RFRkFVTFRfVVNFUl9BR0VOVCA9ICdBcHAgRW5naW5lIFB5dGhvbiBHQ1MgQ2xpZW50JworCisgIEBkYXRhc3RvcmVfcnBjLl9wb3NpdGlvbmFsKDEpCisgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgYmFja29mZl9mYWN0b3I9Mi4wLAorICAgICAgICAgICAgICAgaW5pdGlhbF9kZWxheT0wLjEsCisgICAgICAgICAgICAgICBtYXhfZGVsYXk9MTAuMCwKKyAgICAgICAgICAgICAgIG1pbl9yZXRyaWVzPTMsCisgICAgICAgICAgICAgICBtYXhfcmV0cmllcz02LAorICAgICAgICAgICAgICAgbWF4X3JldHJ5X3BlcmlvZD0zMC4wLAorICAgICAgICAgICAgICAgdXJsZmV0Y2hfdGltZW91dD1Ob25lLAorICAgICAgICAgICAgICAgc2F2ZV9hY2Nlc3NfdG9rZW49RmFsc2UsCisgICAgICAgICAgICAgICBfdXNlcl9hZ2VudD1Ob25lKToKKyAgICAiIiJJbml0LgorCisgICAgVGhpcyBvYmplY3QgaXMgdW5pcXVlIHBlciByZXF1ZXN0IHBlciB0aHJlYWQuCisKKyAgICBMaWJyYXJ5IHdpbGwgcmV0cnkgYWNjb3JkaW5nIHRvIHRoaXMgc2V0dGluZyB3aGVuIEFwcCBFbmdpbmUgU2VydmVyCisgICAgY2FuJ3QgY2FsbCB1cmxmZXRjaCwgdXJsZmV0Y2ggdGltZWQgb3V0LCBvciB1cmxmZXRjaCBnb3QgYSA0MDggb3IKKyAgICA1MDAtNjAwIHJlc3BvbnNlLgorCisgICAgQXJnczoKKyAgICAgIGJhY2tvZmZfZmFjdG9yOiBleHBvbmVudGlhbCBiYWNrb2ZmIG11bHRpcGxpZXIuCisgICAgICBpbml0aWFsX2RlbGF5OiBzZWNvbmRzIHRvIGRlbGF5IGZvciB0aGUgZmlyc3QgcmV0cnkuCisgICAgICBtYXhfZGVsYXk6IG1heCBzZWNvbmRzIHRvIGRlbGF5IGZvciBldmVyeSByZXRyeS4KKyAgICAgIG1pbl9yZXRyaWVzOiBtaW4gbnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5LiBUaGlzIHZhbHVlIGlzIGF1dG9tYXRpY2FsbHkKKyAgICAgICAgY2FwcGVkIGJ5IG1heF9yZXRyaWVzLgorICAgICAgbWF4X3JldHJpZXM6IG1heCBudW1iZXIgb2YgdGltZXMgdG8gcmV0cnkuIFNldCB0aGlzIHRvIDAgZm9yIG5vIHJldHJ5LgorICAgICAgbWF4X3JldHJ5X3BlcmlvZDogbWF4IHRvdGFsIHNlY29uZHMgc3BlbnQgb24gcmV0cnkuIFJldHJ5IHN0b3BzIHdoZW4KKyAgICAgICAgdGhpcyBwZXJpb2QgcGFzc2VkIEFORCBtaW5fcmV0cmllcyBoYXMgYmVlbiBhdHRlbXB0ZWQuCisgICAgICB1cmxmZXRjaF90aW1lb3V0OiB0aW1lb3V0IGZvciB1cmxmZXRjaCBpbiBzZWNvbmRzLiBDb3VsZCBiZSBOb25lLAorICAgICAgICBpbiB3aGljaCBjYXNlIHRoZSB2YWx1ZSB3aWxsIGJlIGNob3NlbiBieSB1cmxmZXRjaCBtb2R1bGUuCisgICAgICBzYXZlX2FjY2Vzc190b2tlbjogcGVyc2lzdCBhY2Nlc3MgdG9rZW4gdG8gZGF0YXN0b3JlIHRvIGF2b2lkCisgICAgICAgIGV4Y2Vzc2l2ZSB1c2FnZSBvZiBHZXRBY2Nlc3NUb2tlbiBBUEkuIFVzdWFsbHkgdGhlIHRva2VuIGlzIGNhY2hlZAorICAgICAgICBpbiBwcm9jZXNzIGFuZCBpbiBtZW1jYWNoZS4gSW4gc29tZSBjYXNlcywgbWVtY2FjaGUgaXNuJ3QgdmVyeQorICAgICAgICByZWxpYWJsZS4KKyAgICAgIF91c2VyX2FnZW50OiBUaGUgdXNlciBhZ2VudCBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byB1c2UgaW4geW91ciByZXF1ZXN0cy4KKyAgICAiIiIKKyAgICBzZWxmLmJhY2tvZmZfZmFjdG9yID0gc2VsZi5fY2hlY2soJ2JhY2tvZmZfZmFjdG9yJywgYmFja29mZl9mYWN0b3IpCisgICAgc2VsZi5pbml0aWFsX2RlbGF5ID0gc2VsZi5fY2hlY2soJ2luaXRpYWxfZGVsYXknLCBpbml0aWFsX2RlbGF5KQorICAgIHNlbGYubWF4X2RlbGF5ID0gc2VsZi5fY2hlY2soJ21heF9kZWxheScsIG1heF9kZWxheSkKKyAgICBzZWxmLm1heF9yZXRyeV9wZXJpb2QgPSBzZWxmLl9jaGVjaygnbWF4X3JldHJ5X3BlcmlvZCcsIG1heF9yZXRyeV9wZXJpb2QpCisgICAgc2VsZi5tYXhfcmV0cmllcyA9IHNlbGYuX2NoZWNrKCdtYXhfcmV0cmllcycsIG1heF9yZXRyaWVzLCBUcnVlLCBpbnQpCisgICAgc2VsZi5taW5fcmV0cmllcyA9IHNlbGYuX2NoZWNrKCdtaW5fcmV0cmllcycsIG1pbl9yZXRyaWVzLCBUcnVlLCBpbnQpCisgICAgaWYgc2VsZi5taW5fcmV0cmllcyA+IHNlbGYubWF4X3JldHJpZXM6CisgICAgICBzZWxmLm1pbl9yZXRyaWVzID0gc2VsZi5tYXhfcmV0cmllcworCisgICAgc2VsZi51cmxmZXRjaF90aW1lb3V0ID0gTm9uZQorICAgIGlmIHVybGZldGNoX3RpbWVvdXQgaXMgbm90IE5vbmU6CisgICAgICBzZWxmLnVybGZldGNoX3RpbWVvdXQgPSBzZWxmLl9jaGVjaygndXJsZmV0Y2hfdGltZW91dCcsIHVybGZldGNoX3RpbWVvdXQpCisgICAgc2VsZi5zYXZlX2FjY2Vzc190b2tlbiA9IHNlbGYuX2NoZWNrKCdzYXZlX2FjY2Vzc190b2tlbicsIHNhdmVfYWNjZXNzX3Rva2VuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlLCBib29sKQorICAgIHNlbGYuX3VzZXJfYWdlbnQgPSBfdXNlcl9hZ2VudCBvciBzZWxmLl9ERUZBVUxUX1VTRVJfQUdFTlQKKworICAgIHNlbGYuX3JlcXVlc3RfaWQgPSBvcy5nZXRlbnYoJ1JFUVVFU1RfTE9HX0lEJykKKworICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgc2VsZi5fX2NsYXNzX18pOgorICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIHNlbGYuX19kaWN0X18gPT0gb3RoZXIuX19kaWN0X18KKworICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICByZXR1cm4gbm90IHNlbGYuX19lcV9fKG90aGVyKQorCisgIEBjbGFzc21ldGhvZAorICBkZWYgX2NoZWNrKGNscywgbmFtZSwgdmFsLCBjYW5fYmVfemVybz1GYWxzZSwgdmFsX3R5cGU9ZmxvYXQpOgorICAgICIiIkNoZWNrIGluaXQgYXJndW1lbnRzLgorCisgICAgQXJnczoKKyAgICAgIG5hbWU6IG5hbWUgb2YgdGhlIGFyZ3VtZW50LiBGb3IgbG9nZ2luZyBwdXJwb3NlLgorICAgICAgdmFsOiB2YWx1ZS4gVmFsdWUgaGFzIHRvIGJlIG5vbiBuZWdhdGl2ZSBudW1iZXIuCisgICAgICBjYW5fYmVfemVybzogd2hldGhlciB2YWx1ZSBjYW4gYmUgemVyby4KKyAgICAgIHZhbF90eXBlOiBQeXRob24gdHlwZSBvZiB0aGUgdmFsdWUuCisKKyAgICBSZXR1cm5zOgorICAgICAgVGhlIHZhbHVlLgorCisgICAgUmFpc2VzOgorICAgICAgVmFsdWVFcnJvcjogd2hlbiBpbnZhbGlkIHZhbHVlIGlzIHBhc3NlZCBpbi4KKyAgICAgIFR5cGVFcnJvcjogd2hlbiBpbnZhbGlkIHZhbHVlIHR5cGUgaXMgcGFzc2VkIGluLgorICAgICIiIgorICAgIHZhbGlkX3R5cGVzID0gW3ZhbF90eXBlXQorICAgIGlmIHZhbF90eXBlIGlzIGZsb2F0OgorICAgICAgdmFsaWRfdHlwZXMuYXBwZW5kKGludCkKKworICAgIGlmIHR5cGUodmFsKSBub3QgaW4gdmFsaWRfdHlwZXM6CisgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgJ0V4cGVjdCB0eXBlICVzIGZvciBwYXJhbWV0ZXIgJXMnICUgKHZhbF90eXBlLl9fbmFtZV9fLCBuYW1lKSkKKyAgICBpZiB2YWwgPCAwOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAnVmFsdWUgZm9yIHBhcmFtZXRlciAlcyBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAnICUgbmFtZSkKKyAgICBpZiBub3QgY2FuX2JlX3plcm8gYW5kIHZhbCA9PSAwOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAnVmFsdWUgZm9yIHBhcmFtZXRlciAlcyBjYW4gbm90IGJlIDAnICUgbmFtZSkKKyAgICByZXR1cm4gdmFsCisKKyAgZGVmIGJlbG9uZ190b19jdXJyZW50X3JlcXVlc3Qoc2VsZik6CisgICAgcmV0dXJuIG9zLmdldGVudignUkVRVUVTVF9MT0dfSUQnKSA9PSBzZWxmLl9yZXF1ZXN0X2lkCisKKyAgZGVmIGRlbGF5KHNlbGYsIG4sIHN0YXJ0X3RpbWUpOgorICAgICIiIkNhbGN1bGF0ZSBkZWxheSBiZWZvcmUgdGhlIG5leHQgcmV0cnkuCisKKyAgICBBcmdzOgorICAgICAgbjogdGhlIG51bWJlciBvZiBjdXJyZW50IGF0dGVtcHQuIFRoZSBmaXJzdCBhdHRlbXB0IHNob3VsZCBiZSAxLgorICAgICAgc3RhcnRfdGltZTogdGhlIHRpbWUgd2hlbiByZXRyeSBzdGFydGVkIGluIHVuaXggdGltZS4KKworICAgIFJldHVybnM6CisgICAgICBOdW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBuZXh0IHJldHJ5LiAtMSBpZiByZXRyeSBzaG91bGQgZ2l2ZSB1cC4KKyAgICAiIiIKKyAgICBpZiAobiA+IHNlbGYubWF4X3JldHJpZXMgb3IKKyAgICAgICAgKG4gPiBzZWxmLm1pbl9yZXRyaWVzIGFuZAorICAgICAgICAgdGltZS50aW1lKCkgLSBzdGFydF90aW1lID4gc2VsZi5tYXhfcmV0cnlfcGVyaW9kKSk6CisgICAgICByZXR1cm4gLTEKKyAgICByZXR1cm4gbWluKAorICAgICAgICBtYXRoLnBvdyhzZWxmLmJhY2tvZmZfZmFjdG9yLCBuLTEpICogc2VsZi5pbml0aWFsX2RlbGF5LAorICAgICAgICBzZWxmLm1heF9kZWxheSkKKworCitkZWYgX3J1bl91bnRpbF9ycGMoKToKKyAgIiIiRWFnZXJseSBldmFsdWF0ZSB0YXNrbGV0cyB1bnRpbCBpdCBpcyBibG9ja2luZyBvbiBzb21lIFJQQy4KKworICBVc3VhbGx5IG5kYiBldmVudGxvb3AgZWwgaXNuJ3QgcnVuIHVudGlsIHNvbWUgY29kZSBjYWxscyBmdXR1cmUuZ2V0X3Jlc3VsdCgpLgorCisgIFdoZW4gYW4gYXN5bmMgdGFza2xldCBpcyBjYWxsZWQsIHRoZSB0YXNrbGV0IHdyYXBwZXIgZXZhbHVhdGVzIHRoZSB0YXNrbGV0CisgIGNvZGUgaW50byBhIGdlbmVyYXRvciwgZW5xdWV1ZXMgYSBjYWxsYmFjayBfaGVscF90YXNrbGV0X2Fsb25nIG9udG8KKyAgdGhlIGVsLmN1cnJlbnQgcXVldWUsIGFuZCByZXR1cm5zIGEgZnV0dXJlLgorCisgIF9oZWxwX3Rhc2tsZXRfYWxvbmcsIHdoZW4gY2FsbGVkIGJ5IHRoZSBlbCwgd2lsbAorICBnZXQgb25lIHlpZWxkZWQgdmFsdWUgZnJvbSB0aGUgZ2VuZXJhdG9yLiBJZiB0aGUgdmFsdWUgaWYgYW5vdGhlciBmdXR1cmUsCisgIHNldCB1cCBhIGNhbGxiYWNrIF9vbl9mdXR1cmVfY29tcGxldGUgdG8gaW52b2tlIF9oZWxwX3Rhc2tsZXRfYWxvbmcKKyAgd2hlbiB0aGUgZGVwZW5kZW50IGZ1dHVyZSBmdWxmaWxscy4gSWYgdGhlIHZhbHVlIGlmIGEgUlBDLCBzZXQgdXAgYQorICBjYWxsYmFjayBfb25fcnBjX2NvbXBsZXRlIHRvIGludm9rZSBfaGVscF90YXNrbGV0X2Fsb25nIHdoZW4gdGhlIFJQQyBmdWxmaWxscy4KKyAgVGh1cyBfaGVscF90YXNrbGV0X2Fsb25nIGRyaWxscyBkb3duCisgIHRoZSBjaGFpbiBvZiBmdXR1cmVzIHVudGlsIHNvbWUgZnV0dXJlIGlzIGJsb2NrZWQgYnkgUlBDLiBFbCBydW5zCisgIGFsbCBjYWxsYmFja3MgYW5kIGNvbnN0YW50bHkgY2hlY2sgcGVuZGluZyBSUEMgc3RhdHVzLgorICAiIiIKKyAgZWwgPSBldmVudGxvb3AuZ2V0X2V2ZW50X2xvb3AoKQorICB3aGlsZSBlbC5jdXJyZW50OgorICAgIGVsLnJ1bjAoKQorCisKK2RlZiBfZWFnZXJfdGFza2xldCh0YXNrbGV0KToKKyAgIiIiRGVjb3JhdG9yIHRvIHR1cm4gdGFza2xldCB0byBydW4gZWFnZXJseS4iIiIKKworICBAdXRpbHMud3JhcHBpbmcodGFza2xldCkKKyAgZGVmIGVhZ2VyX3dyYXBwZXIoKmFyZ3MsICoqa3dkcyk6CisgICAgZnV0ID0gdGFza2xldCgqYXJncywgKiprd2RzKQorICAgIF9ydW5fdW50aWxfcnBjKCkKKyAgICByZXR1cm4gZnV0CisKKyAgcmV0dXJuIGVhZ2VyX3dyYXBwZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9jbG91ZHN0b3JhZ2VfYXBpLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL2Nsb3Vkc3RvcmFnZV9hcGkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE4YmU4NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9jbG91ZHN0b3JhZ2VfYXBpLnB5CkBAIC0wLDAgKzEsNDUxIEBACisjIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwKKyMgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMKKyMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworIiIiRmlsZSBJbnRlcmZhY2UgZm9yIEdvb2dsZSBDbG91ZCBTdG9yYWdlLiIiIgorCisKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAorCisKKworX19hbGxfXyA9IFsnZGVsZXRlJywKKyAgICAgICAgICAgJ2xpc3RidWNrZXQnLAorICAgICAgICAgICAnb3BlbicsCisgICAgICAgICAgICdzdGF0JywKKyAgICAgICAgICBdCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCB1cmxsaWIKK2ltcG9ydCB4bWwuZXRyZWUuY0VsZW1lbnRUcmVlIGFzIEVUCitmcm9tIC4gaW1wb3J0IGFwaV91dGlscworZnJvbSAuIGltcG9ydCBjb21tb24KK2Zyb20gLiBpbXBvcnQgZXJyb3JzCitmcm9tIC4gaW1wb3J0IHN0b3JhZ2VfYXBpCisKKworCitkZWYgb3BlbihmaWxlbmFtZSwKKyAgICAgICAgIG1vZGU9J3InLAorICAgICAgICAgY29udGVudF90eXBlPU5vbmUsCisgICAgICAgICBvcHRpb25zPU5vbmUsCisgICAgICAgICByZWFkX2J1ZmZlcl9zaXplPXN0b3JhZ2VfYXBpLlJlYWRCdWZmZXIuREVGQVVMVF9CVUZGRVJfU0laRSwKKyAgICAgICAgIHJldHJ5X3BhcmFtcz1Ob25lLAorICAgICAgICAgX2FjY291bnRfaWQ9Tm9uZSk6CisgICIiIk9wZW5zIGEgR29vZ2xlIENsb3VkIFN0b3JhZ2UgZmlsZSBhbmQgcmV0dXJucyBpdCBhcyBhIEZpbGUtbGlrZSBvYmplY3QuCisKKyAgQXJnczoKKyAgICBmaWxlbmFtZTogQSBHb29nbGUgQ2xvdWQgU3RvcmFnZSBmaWxlbmFtZSBvZiBmb3JtICcvYnVja2V0L2ZpbGVuYW1lJy4KKyAgICBtb2RlOiAncicgZm9yIHJlYWRpbmcgbW9kZS4gJ3cnIGZvciB3cml0aW5nIG1vZGUuCisgICAgICBJbiByZWFkaW5nIG1vZGUsIHRoZSBmaWxlIG11c3QgZXhpc3QuIEluIHdyaXRpbmcgbW9kZSwgYSBmaWxlIHdpbGwKKyAgICAgIGJlIGNyZWF0ZWQgb3IgYmUgb3ZlcnJvZGUuCisgICAgY29udGVudF90eXBlOiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBmaWxlLiBzdHIuIE9ubHkgdmFsaWQgaW4gd3JpdGluZyBtb2RlLgorICAgIG9wdGlvbnM6IEEgc3RyLT5iYXNlc3RyaW5nIGRpY3QgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIGhlYWRlcnMgdG8gcGFzcyB0bworICAgICAgR0NTIGUuZy4geyd4LWdvb2ctYWNsJzogJ3ByaXZhdGUnLCAneC1nb29nLW1ldGEtZm9vJzogJ2Zvbyd9LgorICAgICAgU3VwcG9ydGVkIG9wdGlvbnMgYXJlIHgtZ29vZy1hY2wsIHgtZ29vZy1tZXRhLSwgY2FjaGUtY29udHJvbCwKKyAgICAgIGNvbnRlbnQtZGlzcG9zaXRpb24sIGFuZCBjb250ZW50LWVuY29kaW5nLgorICAgICAgT25seSB2YWxpZCBpbiB3cml0aW5nIG1vZGUuCisgICAgICBTZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vc3RvcmFnZS9kb2NzL3JlZmVyZW5jZS1oZWFkZXJzCisgICAgICBmb3IgZGV0YWlscy4KKyAgICByZWFkX2J1ZmZlcl9zaXplOiBUaGUgYnVmZmVyIHNpemUgZm9yIHJlYWQuIFJlYWQga2VlcHMgYSBidWZmZXIKKyAgICAgIGFuZCBwcmVmZXRjaGVzIGFub3RoZXIgb25lLiBUbyBtaW5pbWl6ZSBibG9ja2luZyBmb3IgbGFyZ2UgZmlsZXMsCisgICAgICBhbHdheXMgcmVhZCBieSBidWZmZXIgc2l6ZS4gVG8gbWluaW1pemUgbnVtYmVyIG9mIFJQQyByZXF1ZXN0cyBmb3IKKyAgICAgIHNtYWxsIGZpbGVzLCBzZXQgYSBsYXJnZSBidWZmZXIgc2l6ZS4gTWF4IGlzIDMwTUIuCisgICAgcmV0cnlfcGFyYW1zOiBBbiBpbnN0YW5jZSBvZiBhcGlfdXRpbHMuUmV0cnlQYXJhbXMgZm9yIHN1YnNlcXVlbnQgY2FsbHMKKyAgICAgIHRvIEdDUyBmcm9tIHRoaXMgZmlsZSBoYW5kbGUuIElmIE5vbmUsIHRoZSBkZWZhdWx0IG9uZSBpcyB1c2VkLgorICAgIF9hY2NvdW50X2lkOiBJbnRlcm5hbC11c2Ugb25seS4KKworICBSZXR1cm5zOgorICAgIEEgcmVhZGluZyBvciB3cml0aW5nIGJ1ZmZlciB0aGF0IHN1cHBvcnRzIEZpbGUtbGlrZSBpbnRlcmZhY2UuIEJ1ZmZlcgorICAgIG11c3QgYmUgY2xvc2VkIGFmdGVyIG9wZXJhdGlvbnMgYXJlIGRvbmUuCisKKyAgUmFpc2VzOgorICAgIGVycm9ycy5BdXRob3JpemF0aW9uRXJyb3I6IGlmIGF1dGhvcml6YXRpb24gZmFpbGVkLgorICAgIGVycm9ycy5Ob3RGb3VuZEVycm9yOiBpZiBhbiBvYmplY3QgdGhhdCdzIGV4cGVjdGVkIHRvIGV4aXN0IGRvZXNuJ3QuCisgICAgVmFsdWVFcnJvcjogaW52YWxpZCBvcGVuIG1vZGUgb3IgaWYgY29udGVudF90eXBlIG9yIG9wdGlvbnMgYXJlIHNwZWNpZmllZAorICAgICAgaW4gcmVhZGluZyBtb2RlLgorICAiIiIKKyAgY29tbW9uLnZhbGlkYXRlX2ZpbGVfcGF0aChmaWxlbmFtZSkKKyAgYXBpID0gc3RvcmFnZV9hcGkuX2dldF9zdG9yYWdlX2FwaShyZXRyeV9wYXJhbXM9cmV0cnlfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQ9X2FjY291bnRfaWQpCisgIGZpbGVuYW1lID0gYXBpX3V0aWxzLl9xdW90ZV9maWxlbmFtZShmaWxlbmFtZSkKKworICBpZiBtb2RlID09ICd3JzoKKyAgICBjb21tb24udmFsaWRhdGVfb3B0aW9ucyhvcHRpb25zKQorICAgIHJldHVybiBzdG9yYWdlX2FwaS5TdHJlYW1pbmdCdWZmZXIoYXBpLCBmaWxlbmFtZSwgY29udGVudF90eXBlLCBvcHRpb25zKQorICBlbGlmIG1vZGUgPT0gJ3InOgorICAgIGlmIGNvbnRlbnRfdHlwZSBvciBvcHRpb25zOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcignT3B0aW9ucyBhbmQgY29udGVudF90eXBlIGNhbiBvbmx5IGJlIHNwZWNpZmllZCAnCisgICAgICAgICAgICAgICAgICAgICAgICdmb3Igd3JpdGluZyBtb2RlLicpCisgICAgcmV0dXJuIHN0b3JhZ2VfYXBpLlJlYWRCdWZmZXIoYXBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zaXplPXJlYWRfYnVmZmVyX3NpemUpCisgIGVsc2U6CisgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBtb2RlICVzLicgJSBtb2RlKQorCisKK2RlZiBkZWxldGUoZmlsZW5hbWUsIHJldHJ5X3BhcmFtcz1Ob25lLCBfYWNjb3VudF9pZD1Ob25lKToKKyAgIiIiRGVsZXRlIGEgR29vZ2xlIENsb3VkIFN0b3JhZ2UgZmlsZS4KKworICBBcmdzOgorICAgIGZpbGVuYW1lOiBBIEdvb2dsZSBDbG91ZCBTdG9yYWdlIGZpbGVuYW1lIG9mIGZvcm0gJy9idWNrZXQvZmlsZW5hbWUnLgorICAgIHJldHJ5X3BhcmFtczogQW4gYXBpX3V0aWxzLlJldHJ5UGFyYW1zIGZvciB0aGlzIGNhbGwgdG8gR0NTLiBJZiBOb25lLAorICAgICAgdGhlIGRlZmF1bHQgb25lIGlzIHVzZWQuCisgICAgX2FjY291bnRfaWQ6IEludGVybmFsLXVzZSBvbmx5LgorCisgIFJhaXNlczoKKyAgICBlcnJvcnMuTm90Rm91bmRFcnJvcjogaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCBwcmlvciB0byBkZWxldGlvbi4KKyAgIiIiCisgIGFwaSA9IHN0b3JhZ2VfYXBpLl9nZXRfc3RvcmFnZV9hcGkocmV0cnlfcGFyYW1zPXJldHJ5X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50X2lkPV9hY2NvdW50X2lkKQorICBjb21tb24udmFsaWRhdGVfZmlsZV9wYXRoKGZpbGVuYW1lKQorICBmaWxlbmFtZSA9IGFwaV91dGlscy5fcXVvdGVfZmlsZW5hbWUoZmlsZW5hbWUpCisgIHN0YXR1cywgcmVzcF9oZWFkZXJzLCBjb250ZW50ID0gYXBpLmRlbGV0ZV9vYmplY3QoZmlsZW5hbWUpCisgIGVycm9ycy5jaGVja19zdGF0dXMoc3RhdHVzLCBbMjA0XSwgZmlsZW5hbWUsIHJlc3BfaGVhZGVycz1yZXNwX2hlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgYm9keT1jb250ZW50KQorCisKK2RlZiBzdGF0KGZpbGVuYW1lLCByZXRyeV9wYXJhbXM9Tm9uZSwgX2FjY291bnRfaWQ9Tm9uZSk6CisgICIiIkdldCBHQ1NGaWxlU3RhdCBvZiBhIEdvb2dsZSBDbG91ZCBzdG9yYWdlIGZpbGUuCisKKyAgQXJnczoKKyAgICBmaWxlbmFtZTogQSBHb29nbGUgQ2xvdWQgU3RvcmFnZSBmaWxlbmFtZSBvZiBmb3JtICcvYnVja2V0L2ZpbGVuYW1lJy4KKyAgICByZXRyeV9wYXJhbXM6IEFuIGFwaV91dGlscy5SZXRyeVBhcmFtcyBmb3IgdGhpcyBjYWxsIHRvIEdDUy4gSWYgTm9uZSwKKyAgICAgIHRoZSBkZWZhdWx0IG9uZSBpcyB1c2VkLgorICAgIF9hY2NvdW50X2lkOiBJbnRlcm5hbC11c2Ugb25seS4KKworICBSZXR1cm5zOgorICAgIGEgR0NTRmlsZVN0YXQgb2JqZWN0IGNvbnRhaW5pbmcgaW5mbyBhYm91dCB0aGlzIGZpbGUuCisKKyAgUmFpc2VzOgorICAgIGVycm9ycy5BdXRob3JpemF0aW9uRXJyb3I6IGlmIGF1dGhvcml6YXRpb24gZmFpbGVkLgorICAgIGVycm9ycy5Ob3RGb3VuZEVycm9yOiBpZiBhbiBvYmplY3QgdGhhdCdzIGV4cGVjdGVkIHRvIGV4aXN0IGRvZXNuJ3QuCisgICIiIgorICBjb21tb24udmFsaWRhdGVfZmlsZV9wYXRoKGZpbGVuYW1lKQorICBhcGkgPSBzdG9yYWdlX2FwaS5fZ2V0X3N0b3JhZ2VfYXBpKHJldHJ5X3BhcmFtcz1yZXRyeV9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudF9pZD1fYWNjb3VudF9pZCkKKyAgc3RhdHVzLCBoZWFkZXJzLCBjb250ZW50ID0gYXBpLmhlYWRfb2JqZWN0KAorICAgICAgYXBpX3V0aWxzLl9xdW90ZV9maWxlbmFtZShmaWxlbmFtZSkpCisgIGVycm9ycy5jaGVja19zdGF0dXMoc3RhdHVzLCBbMjAwXSwgZmlsZW5hbWUsIHJlc3BfaGVhZGVycz1oZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgIGJvZHk9Y29udGVudCkKKyAgZmlsZV9zdGF0ID0gY29tbW9uLkdDU0ZpbGVTdGF0KAorICAgICAgZmlsZW5hbWU9ZmlsZW5hbWUsCisgICAgICBzdF9zaXplPWNvbW1vbi5nZXRfc3RvcmVkX2NvbnRlbnRfbGVuZ3RoKGhlYWRlcnMpLAorICAgICAgc3RfY3RpbWU9Y29tbW9uLmh0dHBfdGltZV90b19wb3NpeChoZWFkZXJzLmdldCgnbGFzdC1tb2RpZmllZCcpKSwKKyAgICAgIGV0YWc9aGVhZGVycy5nZXQoJ2V0YWcnKSwKKyAgICAgIGNvbnRlbnRfdHlwZT1oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyksCisgICAgICBtZXRhZGF0YT1jb21tb24uZ2V0X21ldGFkYXRhKGhlYWRlcnMpKQorCisgIHJldHVybiBmaWxlX3N0YXQKKworCitkZWYgX2NvcHkyKHNyYywgZHN0LCBtZXRhZGF0YT1Ob25lLCByZXRyeV9wYXJhbXM9Tm9uZSk6CisgICIiIkNvcHkgdGhlIGZpbGUgY29udGVudCBmcm9tIHNyYyB0byBkc3QuCisKKyAgSW50ZXJuYWwgdXNlIG9ubHkhCisKKyAgQXJnczoKKyAgICBzcmM6IC9idWNrZXQvZmlsZW5hbWUKKyAgICBkc3Q6IC9idWNrZXQvZmlsZW5hbWUKKyAgICBtZXRhZGF0YTogYSBkaWN0IG9mIG1ldGFkYXRhIGZvciB0aGlzIGNvcHkuIElmIE5vbmUsIG9sZCBtZXRhZGF0YSBpcyBjb3BpZWQuCisgICAgICBGb3IgZXhhbXBsZSwgeyd4LWdvb2ctbWV0YS1mb28nOiAnYmFyJ30uCisgICAgcmV0cnlfcGFyYW1zOiBBbiBhcGlfdXRpbHMuUmV0cnlQYXJhbXMgZm9yIHRoaXMgY2FsbCB0byBHQ1MuIElmIE5vbmUsCisgICAgICB0aGUgZGVmYXVsdCBvbmUgaXMgdXNlZC4KKworICBSYWlzZXM6CisgICAgZXJyb3JzLkF1dGhvcml6YXRpb25FcnJvcjogaWYgYXV0aG9yaXphdGlvbiBmYWlsZWQuCisgICAgZXJyb3JzLk5vdEZvdW5kRXJyb3I6IGlmIGFuIG9iamVjdCB0aGF0J3MgZXhwZWN0ZWQgdG8gZXhpc3QgZG9lc24ndC4KKyAgIiIiCisgIGNvbW1vbi52YWxpZGF0ZV9maWxlX3BhdGgoc3JjKQorICBjb21tb24udmFsaWRhdGVfZmlsZV9wYXRoKGRzdCkKKworICBpZiBtZXRhZGF0YSBpcyBOb25lOgorICAgIG1ldGFkYXRhID0ge30KKyAgICBjb3B5X21ldGEgPSAnQ09QWScKKyAgZWxzZToKKyAgICBjb3B5X21ldGEgPSAnUkVQTEFDRScKKyAgbWV0YWRhdGEudXBkYXRlKHsneC1nb29nLWNvcHktc291cmNlJzogc3JjLAorICAgICAgICAgICAgICAgICAgICd4LWdvb2ctbWV0YWRhdGEtZGlyZWN0aXZlJzogY29weV9tZXRhfSkKKworICBhcGkgPSBzdG9yYWdlX2FwaS5fZ2V0X3N0b3JhZ2VfYXBpKHJldHJ5X3BhcmFtcz1yZXRyeV9wYXJhbXMpCisgIHN0YXR1cywgcmVzcF9oZWFkZXJzLCBjb250ZW50ID0gYXBpLnB1dF9vYmplY3QoCisgICAgICBhcGlfdXRpbHMuX3F1b3RlX2ZpbGVuYW1lKGRzdCksIGhlYWRlcnM9bWV0YWRhdGEpCisgIGVycm9ycy5jaGVja19zdGF0dXMoc3RhdHVzLCBbMjAwXSwgc3JjLCBtZXRhZGF0YSwgcmVzcF9oZWFkZXJzLCBib2R5PWNvbnRlbnQpCisKKworZGVmIGxpc3RidWNrZXQocGF0aF9wcmVmaXgsIG1hcmtlcj1Ob25lLCBwcmVmaXg9Tm9uZSwgbWF4X2tleXM9Tm9uZSwKKyAgICAgICAgICAgICAgIGRlbGltaXRlcj1Ob25lLCByZXRyeV9wYXJhbXM9Tm9uZSwgX2FjY291bnRfaWQ9Tm9uZSk6CisgICIiIlJldHVybnMgYSBHQ1NGaWxlU3RhdCBpdGVyYXRvciBvdmVyIGEgYnVja2V0LgorCisgIE9wdGlvbmFsIGFyZ3VtZW50cyBjYW4gbGltaXQgdGhlIHJlc3VsdCB0byBhIHN1YnNldCBvZiBmaWxlcyB1bmRlciBidWNrZXQuCisKKyAgVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOgorICAxLiBMaXN0IGJ1Y2tldCBtb2RlOiBMaXN0cyBhbGwgZmlsZXMgaW4gdGhlIGJ1Y2tldCB3aXRob3V0IGFueSBjb25jZXB0IG9mCisgICAgIGhpZXJhcmNoeS4gR0NTIGRvZXNuJ3QgaGF2ZSByZWFsIGRpcmVjdG9yeSBoaWVyYXJjaGllcy4KKyAgMi4gRGlyZWN0b3J5IGVtdWxhdGlvbiBtb2RlOiBJZiB5b3Ugc3BlY2lmeSB0aGUgJ2RlbGltaXRlcicgYXJndW1lbnQsCisgICAgIGl0IGlzIHVzZWQgYXMgYSBwYXRoIHNlcGFyYXRvciB0byBlbXVsYXRlIGEgaGllcmFyY2h5IG9mIGRpcmVjdG9yaWVzLgorICAgICBJbiB0aGlzIG1vZGUsIHRoZSAicGF0aF9wcmVmaXgiIGFyZ3VtZW50IHNob3VsZCBlbmQgaW4gdGhlIGRlbGltaXRlcgorICAgICBzcGVjaWZpZWQgKHRodXMgZGVzaWduYXRlcyBhIGxvZ2ljYWwgZGlyZWN0b3J5KS4gVGhlIGxvZ2ljYWwgZGlyZWN0b3J5J3MKKyAgICAgY29udGVudHMsIGJvdGggZmlsZXMgYW5kIHN1YmRpcmVjdG9yaWVzLCBhcmUgbGlzdGVkLiBUaGUgbmFtZXMgb2YKKyAgICAgc3ViZGlyZWN0b3JpZXMgcmV0dXJuZWQgd2lsbCBlbmQgd2l0aCB0aGUgZGVsaW1pdGVyLiBTbyBsaXN0YnVja2V0CisgICAgIGNhbiBiZSBjYWxsZWQgd2l0aCB0aGUgc3ViZGlyZWN0b3J5IG5hbWUgdG8gbGlzdCB0aGUgc3ViZGlyZWN0b3J5J3MKKyAgICAgY29udGVudHMuCisKKyAgQXJnczoKKyAgICBwYXRoX3ByZWZpeDogQSBHb29nbGUgQ2xvdWQgU3RvcmFnZSBwYXRoIG9mIGZvcm1hdCAiL2J1Y2tldCIgb3IKKyAgICAgICIvYnVja2V0L3ByZWZpeCIuIE9ubHkgb2JqZWN0cyB3aG9zZSBmdWxscGF0aCBzdGFydHMgd2l0aCB0aGUKKyAgICAgIHBhdGhfcHJlZml4IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgbWFya2VyOiBBbm90aGVyIHBhdGggcHJlZml4LiBPbmx5IG9iamVjdHMgd2hvc2UgZnVsbHBhdGggc3RhcnRzCisgICAgICBsZXhpY29ncmFwaGljYWxseSBhZnRlciBtYXJrZXIgd2lsbCBiZSByZXR1cm5lZCAoZXhjbHVzaXZlKS4KKyAgICBwcmVmaXg6IERlcHJlY2F0ZWQuIFVzZSBwYXRoX3ByZWZpeC4KKyAgICBtYXhfa2V5czogVGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyB0byByZXR1cm4uIGludC4KKyAgICAgIEZvciBiZXN0IHBlcmZvcm1hbmNlLCBzcGVjaWZ5IG1heF9rZXlzIG9ubHkgaWYgeW91IGtub3cgaG93IG1hbnkgb2JqZWN0cworICAgICAgeW91IHdhbnQuIE90aGVyd2lzZSwgdGhpcyBtZXRob2QgcmVxdWVzdHMgbGFyZ2UgYmF0Y2hlcyBhbmQgaGFuZGxlcworICAgICAgcGFnaW5hdGlvbiBmb3IgeW91LgorICAgIGRlbGltaXRlcjogVXNlIHRvIHR1cm4gb24gZGlyZWN0b3J5IG1vZGUuIHN0ciBvZiBvbmUgb3IgbXVsdGlwbGUgY2hhcnMKKyAgICAgIHRoYXQgeW91ciBidWNrZXQgdXNlcyBhcyBpdHMgZGlyZWN0b3J5IHNlcGFyYXRvci4KKyAgICByZXRyeV9wYXJhbXM6IEFuIGFwaV91dGlscy5SZXRyeVBhcmFtcyBmb3IgdGhpcyBjYWxsIHRvIEdDUy4gSWYgTm9uZSwKKyAgICAgIHRoZSBkZWZhdWx0IG9uZSBpcyB1c2VkLgorICAgIF9hY2NvdW50X2lkOiBJbnRlcm5hbC11c2Ugb25seS4KKworICBFeGFtcGxlczoKKyAgICBGb3IgZmlsZXMgIi9idWNrZXQvYSIsCisgICAgICAgICAgICAgICIvYnVja2V0L2Jhci8xIgorICAgICAgICAgICAgICAiL2J1Y2tldC9mb28iLAorICAgICAgICAgICAgICAiL2J1Y2tldC9mb28vMSIsICIvYnVja2V0L2Zvby8yLzEiLCAiL2J1Y2tldC9mb28vMy8xIiwKKworICAgIFJlZ3VsYXIgbW9kZToKKyAgICBsaXN0YnVja2V0KCIvYnVja2V0L2YiLCBtYXJrZXI9Ii9idWNrZXQvZm9vLzEiKQorICAgIHdpbGwgbWF0Y2ggIi9idWNrZXQvZm9vLzIvMSIsICIvYnVja2V0L2Zvby8zLzEiLgorCisgICAgRGlyZWN0b3J5IG1vZGU6CisgICAgbGlzdGJ1Y2tldCgiL2J1Y2tldC8iLCBkZWxpbWl0ZXI9Ii8iKQorICAgIHdpbGwgbWF0Y2ggIi9idWNrZXQvYSwgIi9idWNrZXQvYmFyLyIgIi9idWNrZXQvZm9vIiwgIi9idWNrZXQvZm9vLyIuCisgICAgbGlzdGJ1Y2tldCgiL2J1Y2tldC9mb28vIiwgZGVsaW1pdGVyPSIvIikKKyAgICB3aWxsIG1hdGNoICIvYnVja2V0L2Zvby8xIiwgIi9idWNrZXQvZm9vLzIvIiwgIi9idWNrZXQvZm9vLzMvIgorCisgIFJldHVybnM6CisgICAgUmVndWxhciBtb2RlOgorICAgIEEgR0NTRmlsZVN0YXQgaXRlcmF0b3Igb3ZlciBtYXRjaGVkIGZpbGVzIG9yZGVyZWQgYnkgZmlsZW5hbWUuCisgICAgVGhlIGl0ZXJhdG9yIHJldHVybnMgR0NTRmlsZVN0YXQgb2JqZWN0cy4gZmlsZW5hbWUsIGV0YWcsIHN0X3NpemUsCisgICAgc3RfY3RpbWUsIGFuZCBpc19kaXIgYXJlIHNldC4KKworICAgIERpcmVjdG9yeSBlbXVsYXRpb24gbW9kZToKKyAgICBBIEdDU0ZpbGVTdGF0IGl0ZXJhdG9yIG92ZXIgbWF0Y2hlZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgb3JkZXJlZCBieQorICAgIG5hbWUuIFRoZSBpdGVyYXRvciByZXR1cm5zIEdDU0ZpbGVTdGF0IG9iamVjdHMuIEZvciBkaXJlY3RvcmllcywKKyAgICBvbmx5IHRoZSBmaWxlbmFtZSBhbmQgaXNfZGlyIGZpZWxkcyBhcmUgc2V0LgorCisgICAgVGhlIGxhc3QgbmFtZSB5aWVsZGVkIGNhbiBiZSB1c2VkIGFzIG5leHQgY2FsbCdzIG1hcmtlci4KKyAgIiIiCisgIGlmIHByZWZpeDoKKyAgICBjb21tb24udmFsaWRhdGVfYnVja2V0X3BhdGgocGF0aF9wcmVmaXgpCisgICAgYnVja2V0ID0gcGF0aF9wcmVmaXgKKyAgZWxzZToKKyAgICBidWNrZXQsIHByZWZpeCA9IGNvbW1vbi5fcHJvY2Vzc19wYXRoX3ByZWZpeChwYXRoX3ByZWZpeCkKKworICBpZiBtYXJrZXIgYW5kIG1hcmtlci5zdGFydHN3aXRoKGJ1Y2tldCk6CisgICAgbWFya2VyID0gbWFya2VyW2xlbihidWNrZXQpICsgMTpdCisKKyAgYXBpID0gc3RvcmFnZV9hcGkuX2dldF9zdG9yYWdlX2FwaShyZXRyeV9wYXJhbXM9cmV0cnlfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRfaWQ9X2FjY291bnRfaWQpCisgIG9wdGlvbnMgPSB7fQorICBpZiBtYXJrZXI6CisgICAgb3B0aW9uc1snbWFya2VyJ10gPSBtYXJrZXIKKyAgaWYgbWF4X2tleXM6CisgICAgb3B0aW9uc1snbWF4LWtleXMnXSA9IG1heF9rZXlzCisgIGlmIHByZWZpeDoKKyAgICBvcHRpb25zWydwcmVmaXgnXSA9IHByZWZpeAorICBpZiBkZWxpbWl0ZXI6CisgICAgb3B0aW9uc1snZGVsaW1pdGVyJ10gPSBkZWxpbWl0ZXIKKworICByZXR1cm4gX0J1Y2tldChhcGksIGJ1Y2tldCwgb3B0aW9ucykKKworCitjbGFzcyBfQnVja2V0KG9iamVjdCk6CisgICIiIkEgd3JhcHBlciBmb3IgYSBHQ1MgYnVja2V0IGFzIHRoZSByZXR1cm4gdmFsdWUgb2YgbGlzdGJ1Y2tldC4iIiIKKworICBkZWYgX19pbml0X18oc2VsZiwgYXBpLCBwYXRoLCBvcHRpb25zKToKKyAgICAiIiJJbml0aWFsaXplLgorCisgICAgQXJnczoKKyAgICAgIGFwaTogc3RvcmFnZV9hcGkgaW5zdGFuY2UuCisgICAgICBwYXRoOiBidWNrZXQgcGF0aCBvZiBmb3JtICcvYnVja2V0Jy4KKyAgICAgIG9wdGlvbnM6IGEgZGljdCBvZiBsaXN0YnVja2V0IG9wdGlvbnMuIFBsZWFzZSBzZWUgbGlzdGJ1Y2tldCBkb2MuCisgICAgIiIiCisgICAgc2VsZi5faW5pdChhcGksIHBhdGgsIG9wdGlvbnMpCisKKyAgZGVmIF9pbml0KHNlbGYsIGFwaSwgcGF0aCwgb3B0aW9ucyk6CisgICAgc2VsZi5fYXBpID0gYXBpCisgICAgc2VsZi5fcGF0aCA9IHBhdGgKKyAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucy5jb3B5KCkKKyAgICBzZWxmLl9nZXRfYnVja2V0X2Z1dCA9IHNlbGYuX2FwaS5nZXRfYnVja2V0X2FzeW5jKAorICAgICAgICBzZWxmLl9wYXRoICsgJz8nICsgdXJsbGliLnVybGVuY29kZShzZWxmLl9vcHRpb25zKSkKKyAgICBzZWxmLl9sYXN0X3lpZWxkID0gTm9uZQorICAgIHNlbGYuX25ld19tYXhfa2V5cyA9IHNlbGYuX29wdGlvbnMuZ2V0KCdtYXgta2V5cycpCisKKyAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKKyAgICBvcHRpb25zID0gc2VsZi5fb3B0aW9ucworICAgIGlmIHNlbGYuX2xhc3RfeWllbGQ6CisgICAgICBvcHRpb25zWydtYXJrZXInXSA9IHNlbGYuX2xhc3RfeWllbGQuZmlsZW5hbWVbbGVuKHNlbGYuX3BhdGgpICsgMTpdCisgICAgaWYgc2VsZi5fbmV3X21heF9rZXlzIGlzIG5vdCBOb25lOgorICAgICAgb3B0aW9uc1snbWF4LWtleXMnXSA9IHNlbGYuX25ld19tYXhfa2V5cworICAgIHJldHVybiB7J2FwaSc6IHNlbGYuX2FwaSwKKyAgICAgICAgICAgICdwYXRoJzogc2VsZi5fcGF0aCwKKyAgICAgICAgICAgICdvcHRpb25zJzogb3B0aW9uc30KKworICBkZWYgX19zZXRzdGF0ZV9fKHNlbGYsIHN0YXRlKToKKyAgICBzZWxmLl9pbml0KHN0YXRlWydhcGknXSwgc3RhdGVbJ3BhdGgnXSwgc3RhdGVbJ29wdGlvbnMnXSkKKworICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgIiIiSXRlciBvdmVyIHRoZSBidWNrZXQuCisKKyAgICBZaWVsZHM6CisgICAgICBHQ1NGaWxlU3RhdDogYSBHQ1NGaWxlU3RhdCBmb3IgYW4gb2JqZWN0IGluIHRoZSBidWNrZXQuCisgICAgICAgIFRoZXkgYXJlIG9yZGVyZWQgYnkgR0NTRmlsZVN0YXQuZmlsZW5hbWUuCisgICAgIiIiCisgICAgdG90YWwgPSAwCisgICAgbWF4X2tleXMgPSBzZWxmLl9vcHRpb25zLmdldCgnbWF4LWtleXMnKQorCisgICAgd2hpbGUgc2VsZi5fZ2V0X2J1Y2tldF9mdXQ6CisgICAgICBzdGF0dXMsIHJlc3BfaGVhZGVycywgY29udGVudCA9IHNlbGYuX2dldF9idWNrZXRfZnV0LmdldF9yZXN1bHQoKQorICAgICAgZXJyb3JzLmNoZWNrX3N0YXR1cyhzdGF0dXMsIFsyMDBdLCBzZWxmLl9wYXRoLCByZXNwX2hlYWRlcnM9cmVzcF9oZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5PWNvbnRlbnQsIGV4dHJhcz1zZWxmLl9vcHRpb25zKQorCisgICAgICBpZiBzZWxmLl9zaG91bGRfZ2V0X2Fub3RoZXJfYmF0Y2goY29udGVudCk6CisgICAgICAgIHNlbGYuX2dldF9idWNrZXRfZnV0ID0gc2VsZi5fYXBpLmdldF9idWNrZXRfYXN5bmMoCisgICAgICAgICAgICBzZWxmLl9wYXRoICsgJz8nICsgdXJsbGliLnVybGVuY29kZShzZWxmLl9vcHRpb25zKSkKKyAgICAgIGVsc2U6CisgICAgICAgIHNlbGYuX2dldF9idWNrZXRfZnV0ID0gTm9uZQorCisgICAgICByb290ID0gRVQuZnJvbXN0cmluZyhjb250ZW50KQorICAgICAgZGlycyA9IHNlbGYuX25leHRfZGlyX2dlbihyb290KQorICAgICAgZmlsZXMgPSBzZWxmLl9uZXh0X2ZpbGVfZ2VuKHJvb3QpCisgICAgICBuZXh0X2ZpbGUgPSBmaWxlcy5uZXh0KCkKKyAgICAgIG5leHRfZGlyID0gZGlycy5uZXh0KCkKKworICAgICAgd2hpbGUgKChtYXhfa2V5cyBpcyBOb25lIG9yIHRvdGFsIDwgbWF4X2tleXMpIGFuZAorICAgICAgICAgICAgIG5vdCAobmV4dF9maWxlIGlzIE5vbmUgYW5kIG5leHRfZGlyIGlzIE5vbmUpKToKKyAgICAgICAgdG90YWwgKz0gMQorICAgICAgICBpZiBuZXh0X2ZpbGUgaXMgTm9uZToKKyAgICAgICAgICBzZWxmLl9sYXN0X3lpZWxkID0gbmV4dF9kaXIKKyAgICAgICAgICBuZXh0X2RpciA9IGRpcnMubmV4dCgpCisgICAgICAgIGVsaWYgbmV4dF9kaXIgaXMgTm9uZToKKyAgICAgICAgICBzZWxmLl9sYXN0X3lpZWxkID0gbmV4dF9maWxlCisgICAgICAgICAgbmV4dF9maWxlID0gZmlsZXMubmV4dCgpCisgICAgICAgIGVsaWYgbmV4dF9kaXIgPCBuZXh0X2ZpbGU6CisgICAgICAgICAgc2VsZi5fbGFzdF95aWVsZCA9IG5leHRfZGlyCisgICAgICAgICAgbmV4dF9kaXIgPSBkaXJzLm5leHQoKQorICAgICAgICBlbGlmIG5leHRfZmlsZSA8IG5leHRfZGlyOgorICAgICAgICAgIHNlbGYuX2xhc3RfeWllbGQgPSBuZXh0X2ZpbGUKKyAgICAgICAgICBuZXh0X2ZpbGUgPSBmaWxlcy5uZXh0KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICBsb2dnaW5nLmVycm9yKAorICAgICAgICAgICAgICAnU2hvdWxkIG5ldmVyIHJlYWNoLiBuZXh0IGZpbGUgaXMgJXIuIG5leHQgZGlyIGlzICVyLicsCisgICAgICAgICAgICAgIG5leHRfZmlsZSwgbmV4dF9kaXIpCisgICAgICAgIGlmIHNlbGYuX25ld19tYXhfa2V5czoKKyAgICAgICAgICBzZWxmLl9uZXdfbWF4X2tleXMgLT0gMQorICAgICAgICB5aWVsZCBzZWxmLl9sYXN0X3lpZWxkCisKKyAgZGVmIF9uZXh0X2ZpbGVfZ2VuKHNlbGYsIHJvb3QpOgorICAgICIiIkdlbmVyYXRvciBmb3IgbmV4dCBmaWxlIGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50LgorCisgICAgQXJnczoKKyAgICAgIHJvb3Q6IHJvb3QgZWxlbWVudCBvZiB0aGUgWE1MIHRyZWUuCisKKyAgICBZaWVsZHM6CisgICAgICBHQ1NGaWxlU3RhdCBmb3IgdGhlIG5leHQgZmlsZS4KKyAgICAiIiIKKyAgICBmb3IgZSBpbiByb290LmdldGl0ZXJhdG9yKGNvbW1vbi5fVF9DT05URU5UUyk6CisgICAgICBzdF9jdGltZSwgc2l6ZSwgZXRhZywga2V5ID0gTm9uZSwgTm9uZSwgTm9uZSwgTm9uZQorICAgICAgZm9yIGNoaWxkIGluIGUuZ2V0aXRlcmF0b3IoJyonKToKKyAgICAgICAgaWYgY2hpbGQudGFnID09IGNvbW1vbi5fVF9MQVNUX01PRElGSUVEOgorICAgICAgICAgIHN0X2N0aW1lID0gY29tbW9uLmR0X3N0cl90b19wb3NpeChjaGlsZC50ZXh0KQorICAgICAgICBlbGlmIGNoaWxkLnRhZyA9PSBjb21tb24uX1RfRVRBRzoKKyAgICAgICAgICBldGFnID0gY2hpbGQudGV4dAorICAgICAgICBlbGlmIGNoaWxkLnRhZyA9PSBjb21tb24uX1RfU0laRToKKyAgICAgICAgICBzaXplID0gY2hpbGQudGV4dAorICAgICAgICBlbGlmIGNoaWxkLnRhZyA9PSBjb21tb24uX1RfS0VZOgorICAgICAgICAgIGtleSA9IGNoaWxkLnRleHQKKyAgICAgIHlpZWxkIGNvbW1vbi5HQ1NGaWxlU3RhdChzZWxmLl9wYXRoICsgJy8nICsga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUsIGV0YWcsIHN0X2N0aW1lKQorICAgICAgZS5jbGVhcigpCisgICAgeWllbGQgTm9uZQorCisgIGRlZiBfbmV4dF9kaXJfZ2VuKHNlbGYsIHJvb3QpOgorICAgICIiIkdlbmVyYXRvciBmb3IgbmV4dCBkaXJlY3RvcnkgZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQuCisKKyAgICBBcmdzOgorICAgICAgcm9vdDogcm9vdCBlbGVtZW50IGluIHRoZSBYTUwgdHJlZS4KKworICAgIFlpZWxkczoKKyAgICAgIEdDU0ZpbGVTdGF0IGZvciB0aGUgbmV4dCBkaXJlY3RvcnkuCisgICAgIiIiCisgICAgZm9yIGUgaW4gcm9vdC5nZXRpdGVyYXRvcihjb21tb24uX1RfQ09NTU9OX1BSRUZJWEVTKToKKyAgICAgIHlpZWxkIGNvbW1vbi5HQ1NGaWxlU3RhdCgKKyAgICAgICAgICBzZWxmLl9wYXRoICsgJy8nICsgZS5maW5kKGNvbW1vbi5fVF9QUkVGSVgpLnRleHQsCisgICAgICAgICAgc3Rfc2l6ZT1Ob25lLCBldGFnPU5vbmUsIHN0X2N0aW1lPU5vbmUsIGlzX2Rpcj1UcnVlKQorICAgICAgZS5jbGVhcigpCisgICAgeWllbGQgTm9uZQorCisgIGRlZiBfc2hvdWxkX2dldF9hbm90aGVyX2JhdGNoKHNlbGYsIGNvbnRlbnQpOgorICAgICIiIldoZXRoZXIgdG8gaXNzdWUgYW5vdGhlciBHRVQgYnVja2V0IGNhbGwuCisKKyAgICBBcmdzOgorICAgICAgY29udGVudDogcmVzcG9uc2UgWE1MLgorCisgICAgUmV0dXJuczoKKyAgICAgIFRydWUgaWYgc2hvdWxkLCBhbHNvIHVwZGF0ZSBzZWxmLl9vcHRpb25zIGZvciB0aGUgbmV4dCByZXF1ZXN0LgorICAgICAgRmFsc2Ugb3RoZXJ3aXNlLgorICAgICIiIgorICAgIGlmICgnbWF4LWtleXMnIGluIHNlbGYuX29wdGlvbnMgYW5kCisgICAgICAgIHNlbGYuX29wdGlvbnNbJ21heC1rZXlzJ10gPD0gY29tbW9uLl9NQVhfR0VUX0JVQ0tFVF9SRVNVTFQpOgorICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBlbGVtZW50cyA9IHNlbGYuX2ZpbmRfZWxlbWVudHMoCisgICAgICAgIGNvbnRlbnQsIHNldChbY29tbW9uLl9UX0lTX1RSVU5DQVRFRCwKKyAgICAgICAgICAgICAgICAgICAgICBjb21tb24uX1RfTkVYVF9NQVJLRVJdKSkKKyAgICBpZiBlbGVtZW50cy5nZXQoY29tbW9uLl9UX0lTX1RSVU5DQVRFRCwgJ2ZhbHNlJykubG93ZXIoKSAhPSAndHJ1ZSc6CisgICAgICByZXR1cm4gRmFsc2UKKworICAgIG5leHRfbWFya2VyID0gZWxlbWVudHMuZ2V0KGNvbW1vbi5fVF9ORVhUX01BUktFUikKKyAgICBpZiBuZXh0X21hcmtlciBpcyBOb25lOgorICAgICAgc2VsZi5fb3B0aW9ucy5wb3AoJ21hcmtlcicsIE5vbmUpCisgICAgICByZXR1cm4gRmFsc2UKKyAgICBzZWxmLl9vcHRpb25zWydtYXJrZXInXSA9IG5leHRfbWFya2VyCisgICAgcmV0dXJuIFRydWUKKworICBkZWYgX2ZpbmRfZWxlbWVudHMoc2VsZiwgcmVzdWx0LCBlbGVtZW50cyk6CisgICAgIiIiRmluZCBpbnRlcmVzdGluZyBlbGVtZW50cyBmcm9tIFhNTC4KKworICAgIFRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gb25seSBsb29rIGZvciBzcGVjaWZpZWQgZWxlbWVudHMKKyAgICB3aXRob3V0IHBhcnNpbmcgdGhlIGVudGlyZSBYTUwuIFRoZSBzcGVjaWZpZWQgZWxlbWVudHMgaXMgYmV0dGVyCisgICAgbG9jYXRlZCBuZWFyIHRoZSBiZWdpbm5pbmcuCisKKyAgICBBcmdzOgorICAgICAgcmVzdWx0OiByZXNwb25zZSBYTUwuCisgICAgICBlbGVtZW50czogYSBzZXQgb2YgaW50ZXJlc3RpbmcgZWxlbWVudCB0YWdzLgorCisgICAgUmV0dXJuczoKKyAgICAgIEEgZGljdCBmcm9tIGVsZW1lbnQgdGFnIHRvIGVsZW1lbnQgdmFsdWUuCisgICAgIiIiCisgICAgZWxlbWVudF9tYXBwaW5nID0ge30KKyAgICByZXN1bHQgPSBTdHJpbmdJTy5TdHJpbmdJTyhyZXN1bHQpCisgICAgZm9yIF8sIGUgaW4gRVQuaXRlcnBhcnNlKHJlc3VsdCwgZXZlbnRzPSgnZW5kJywpKToKKyAgICAgIGlmIG5vdCBlbGVtZW50czoKKyAgICAgICAgYnJlYWsKKyAgICAgIGlmIGUudGFnIGluIGVsZW1lbnRzOgorICAgICAgICBlbGVtZW50X21hcHBpbmdbZS50YWddID0gZS50ZXh0CisgICAgICAgIGVsZW1lbnRzLnJlbW92ZShlLnRhZykKKyAgICByZXR1cm4gZWxlbWVudF9tYXBwaW5nCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2UvY29tbW9uLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL2NvbW1vbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjljOGRmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL2NvbW1vbi5weQpAQCAtMCwwICsxLDQyOSBAQAorIyBDb3B5cmlnaHQgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsCisjIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljCisjIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIkhlbHBlcnMgc2hhcmVkIGJ5IGNsb3Vkc3RvcmFnZV9zdHViIGFuZCBjbG91ZHN0b3JhZ2VfYXBpLiIiIgorCisKKworCisKK19fYWxsX18gPSBbJ0NTX1hNTF9OUycsCisgICAgICAgICAgICdDU0ZpbGVTdGF0JywKKyAgICAgICAgICAgJ2R0X3N0cl90b19wb3NpeCcsCisgICAgICAgICAgICdsb2NhbF9hcGlfdXJsJywKKyAgICAgICAgICAgJ0xPQ0FMX0dDU19FTkRQT0lOVCcsCisgICAgICAgICAgICdsb2NhbF9ydW4nLAorICAgICAgICAgICAnZ2V0X2FjY2Vzc190b2tlbicsCisgICAgICAgICAgICdnZXRfc3RvcmVkX2NvbnRlbnRfbGVuZ3RoJywKKyAgICAgICAgICAgJ2dldF9tZXRhZGF0YScsCisgICAgICAgICAgICdHQ1NGaWxlU3RhdCcsCisgICAgICAgICAgICdodHRwX3RpbWVfdG9fcG9zaXgnLAorICAgICAgICAgICAnbWVtb3J5X3VzYWdlJywKKyAgICAgICAgICAgJ3Bvc2l4X3RpbWVfdG9faHR0cCcsCisgICAgICAgICAgICdwb3NpeF90b19kdF9zdHInLAorICAgICAgICAgICAnc2V0X2FjY2Vzc190b2tlbicsCisgICAgICAgICAgICd2YWxpZGF0ZV9vcHRpb25zJywKKyAgICAgICAgICAgJ3ZhbGlkYXRlX2J1Y2tldF9uYW1lJywKKyAgICAgICAgICAgJ3ZhbGlkYXRlX2J1Y2tldF9wYXRoJywKKyAgICAgICAgICAgJ3ZhbGlkYXRlX2ZpbGVfcGF0aCcsCisgICAgICAgICAgXQorCisKK2ltcG9ydCBjYWxlbmRhcgoraW1wb3J0IGRhdGV0aW1lCitmcm9tIGVtYWlsIGltcG9ydCB1dGlscyBhcyBlbWFpbF91dGlscworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHJlCisKK3RyeToKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgcnVudGltZQorZXhjZXB0IEltcG9ydEVycm9yOgorICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCBydW50aW1lCisKKworX0dDU19CVUNLRVRfUkVHRVhfQkFTRSA9IHInW2EtejAtOVwuXC1fXXszLDYzfScKK19HQ1NfQlVDS0VUX1JFR0VYID0gcmUuY29tcGlsZShfR0NTX0JVQ0tFVF9SRUdFWF9CQVNFICsgcickJykKK19HQ1NfQlVDS0VUX1BBVEhfUkVHRVggPSByZS5jb21waWxlKHInLycgKyBfR0NTX0JVQ0tFVF9SRUdFWF9CQVNFICsgcickJykKK19HQ1NfUEFUSF9QUkVGSVhfUkVHRVggPSByZS5jb21waWxlKHInLycgKyBfR0NTX0JVQ0tFVF9SRUdFWF9CQVNFICsgcicuKicpCitfR0NTX0ZVTExQQVRIX1JFR0VYID0gcmUuY29tcGlsZShyJy8nICsgX0dDU19CVUNLRVRfUkVHRVhfQkFTRSArIHInLy4qJykKK19HQ1NfTUVUQURBVEEgPSBbJ3gtZ29vZy1tZXRhLScsCisgICAgICAgICAgICAgICAgICdjb250ZW50LWRpc3Bvc2l0aW9uJywKKyAgICAgICAgICAgICAgICAgJ2NhY2hlLWNvbnRyb2wnLAorICAgICAgICAgICAgICAgICAnY29udGVudC1lbmNvZGluZyddCitfR0NTX09QVElPTlMgPSBfR0NTX01FVEFEQVRBICsgWyd4LWdvb2ctYWNsJ10KK0NTX1hNTF9OUyA9ICdodHRwOi8vZG9jLnMzLmFtYXpvbmF3cy5jb20vMjAwNi0wMy0wMScKK0xPQ0FMX0dDU19FTkRQT0lOVCA9ICcvX2FoL2djcycKK19hY2Nlc3NfdG9rZW4gPSAnJworCisKK19NQVhfR0VUX0JVQ0tFVF9SRVNVTFQgPSAxMDAwCisKKworZGVmIHNldF9hY2Nlc3NfdG9rZW4oYWNjZXNzX3Rva2VuKToKKyAgIiIiU2V0IHRoZSBzaGFyZWQgYWNjZXNzIHRva2VuIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIEdvb2dsZSBDbG91ZCBTdG9yYWdlLgorCisgIFdoZW4gc2V0LCB0aGUgbGlicmFyeSB3aWxsIGFsd2F5cyBhdHRlbXB0IHRvIGNvbW11bmljYXRlIHdpdGggdGhlCisgIHJlYWwgR29vZ2xlIENsb3VkIFN0b3JhZ2Ugd2l0aCB0aGlzIHRva2VuIGV2ZW4gd2hlbiBydW5uaW5nIG9uIGRldiBhcHBzZXJ2ZXIuCisgIE5vdGUgdGhlIHRva2VuIGNvdWxkIGV4cGlyZSBzbyBpdCdzIHVwIHRvIHlvdSB0byByZW5ldyBpdC4KKworICBXaGVuIGFic2VudCwgdGhlIGxpYnJhcnkgd2lsbCBhdXRvbWF0aWNhbGx5IHJlcXVlc3QgYW5kIHJlZnJlc2ggYSB0b2tlbgorICBvbiBhcHBzZXJ2ZXIsIG9yIHdoZW4gb24gZGV2IGFwcHNlcnZlciwgdGFsayB0byBhIEdvb2dsZSBDbG91ZCBTdG9yYWdlCisgIHN0dWIuCisKKyAgQXJnczoKKyAgICBhY2Nlc3NfdG9rZW46IHlvdSBjYW4gZ2V0IG9uZSBieSBydW4gJ2dzdXRpbCAtZCBscycgYW5kIGNvcHkgdGhlCisgICAgICBzdHIgYWZ0ZXIgJ0JlYXJlcicuCisgICIiIgorICBnbG9iYWwgX2FjY2Vzc190b2tlbgorICBfYWNjZXNzX3Rva2VuID0gYWNjZXNzX3Rva2VuCisKKworZGVmIGdldF9hY2Nlc3NfdG9rZW4oKToKKyAgIiIiUmV0dXJucyB0aGUgc2hhcmVkIGFjY2VzcyB0b2tlbi4iIiIKKyAgcmV0dXJuIF9hY2Nlc3NfdG9rZW4KKworCitjbGFzcyBHQ1NGaWxlU3RhdChvYmplY3QpOgorICAiIiJDb250YWluZXIgZm9yIEdDUyBmaWxlIHN0YXQuIiIiCisKKyAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgIHN0X3NpemUsCisgICAgICAgICAgICAgICBldGFnLAorICAgICAgICAgICAgICAgc3RfY3RpbWUsCisgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9Tm9uZSwKKyAgICAgICAgICAgICAgIG1ldGFkYXRhPU5vbmUsCisgICAgICAgICAgICAgICBpc19kaXI9RmFsc2UpOgorICAgICIiIkluaXRpYWxpemUuCisKKyAgICBGb3IgZmlsZXMsIHRoZSBub24gb3B0aW9uYWwgYXJndW1lbnRzIGFyZSBhbHdheXMgc2V0LgorICAgIEZvciBkaXJlY3Rvcmllcywgb25seSBmaWxlbmFtZSBhbmQgaXNfZGlyIGlzIHNldC4KKworICAgIEFyZ3M6CisgICAgICBmaWxlbmFtZTogYSBHb29nbGUgQ2xvdWQgU3RvcmFnZSBmaWxlbmFtZSBvZiBmb3JtICcvYnVja2V0L2ZpbGVuYW1lJy4KKyAgICAgIHN0X3NpemU6IGZpbGUgc2l6ZSBpbiBieXRlcy4gbG9uZyBjb21wYXRpYmxlLgorICAgICAgZXRhZzogaGV4IGRpZ2VzdCBvZiB0aGUgbWQ1IGhhc2ggb2YgdGhlIGZpbGUncyBjb250ZW50LiBzdHIuCisgICAgICBzdF9jdGltZTogcG9zaXggZmlsZSBjcmVhdGlvbiB0aW1lLiBmbG9hdCBjb21wYXRpYmxlLgorICAgICAgY29udGVudF90eXBlOiBjb250ZW50IHR5cGUuIHN0ci4KKyAgICAgIG1ldGFkYXRhOiBhIHN0ci0+c3RyIGRpY3Qgb2YgdXNlciBzcGVjaWZpZWQgb3B0aW9ucyB3aGVuIGNyZWF0aW5nCisgICAgICAgIHRoZSBmaWxlLiBQb3NzaWJsZSBrZXlzIGFyZSB4LWdvb2ctbWV0YS0sIGNvbnRlbnQtZGlzcG9zaXRpb24sCisgICAgICAgIGNvbnRlbnQtZW5jb2RpbmcsIGFuZCBjYWNoZS1jb250cm9sLgorICAgICAgaXNfZGlyOiBUcnVlIGlmIHRoaXMgcmVwcmVzZW50cyBhIGRpcmVjdG9yeS4gRmFsc2UgaWYgdGhpcyBpcyBhIHJlYWwgZmlsZS4KKyAgICAiIiIKKyAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKyAgICBzZWxmLmlzX2RpciA9IGlzX2RpcgorICAgIHNlbGYuc3Rfc2l6ZSA9IE5vbmUKKyAgICBzZWxmLnN0X2N0aW1lID0gTm9uZQorICAgIHNlbGYuZXRhZyA9IE5vbmUKKyAgICBzZWxmLmNvbnRlbnRfdHlwZSA9IGNvbnRlbnRfdHlwZQorICAgIHNlbGYubWV0YWRhdGEgPSBtZXRhZGF0YQorCisgICAgaWYgbm90IGlzX2RpcjoKKyAgICAgIHNlbGYuc3Rfc2l6ZSA9IGxvbmcoc3Rfc2l6ZSkKKyAgICAgIHNlbGYuc3RfY3RpbWUgPSBmbG9hdChzdF9jdGltZSkKKyAgICAgIGlmIGV0YWdbMF0gPT0gJyInIGFuZCBldGFnWy0xXSA9PSAnIic6CisgICAgICAgIGV0YWcgPSBldGFnWzE6LTFdCisgICAgICBzZWxmLmV0YWcgPSBldGFnCisKKyAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgIGlmIHNlbGYuaXNfZGlyOgorICAgICAgcmV0dXJuICcoZGlyZWN0b3J5OiAlcyknICUgc2VsZi5maWxlbmFtZQorCisgICAgcmV0dXJuICgKKyAgICAgICAgJyhmaWxlbmFtZTogJShmaWxlbmFtZSlzLCBzdF9zaXplOiAlKHN0X3NpemUpcywgJworICAgICAgICAnc3RfY3RpbWU6ICUoc3RfY3RpbWUpcywgZXRhZzogJShldGFnKXMsICcKKyAgICAgICAgJ2NvbnRlbnRfdHlwZTogJShjb250ZW50X3R5cGUpcywgJworICAgICAgICAnbWV0YWRhdGE6ICUobWV0YWRhdGEpcyknICUKKyAgICAgICAgZGljdChmaWxlbmFtZT1zZWxmLmZpbGVuYW1lLAorICAgICAgICAgICAgIHN0X3NpemU9c2VsZi5zdF9zaXplLAorICAgICAgICAgICAgIHN0X2N0aW1lPXNlbGYuc3RfY3RpbWUsCisgICAgICAgICAgICAgZXRhZz1zZWxmLmV0YWcsCisgICAgICAgICAgICAgY29udGVudF90eXBlPXNlbGYuY29udGVudF90eXBlLAorICAgICAgICAgICAgIG1ldGFkYXRhPXNlbGYubWV0YWRhdGEpKQorCisgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKToKKyAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgc2VsZi5fX2NsYXNzX18pOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcignQXJndW1lbnQgdG8gY21wIG11c3QgaGF2ZSB0aGUgc2FtZSB0eXBlLiAnCisgICAgICAgICAgICAgICAgICAgICAgICdFeHBlY3QgJXMsIGdvdCAlcycsIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5fX2NsYXNzX18uX19uYW1lX18pCisgICAgaWYgc2VsZi5maWxlbmFtZSA+IG90aGVyLmZpbGVuYW1lOgorICAgICAgcmV0dXJuIDEKKyAgICBlbGlmIHNlbGYuZmlsZW5hbWUgPCBvdGhlci5maWxlbmFtZToKKyAgICAgIHJldHVybiAtMQorICAgIHJldHVybiAwCisKKyAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgIGlmIHNlbGYuZXRhZzoKKyAgICAgIHJldHVybiBoYXNoKHNlbGYuZXRhZykKKyAgICByZXR1cm4gaGFzaChzZWxmLmZpbGVuYW1lKQorCisKK0NTRmlsZVN0YXQgPSBHQ1NGaWxlU3RhdAorCisKK2RlZiBnZXRfc3RvcmVkX2NvbnRlbnRfbGVuZ3RoKGhlYWRlcnMpOgorICAiIiJSZXR1cm4gdGhlIGNvbnRlbnQgbGVuZ3RoIChpbiBieXRlcykgb2YgdGhlIG9iamVjdCBhcyBzdG9yZWQgaW4gR0NTLgorCisgIHgtZ29vZy1zdG9yZWQtY29udGVudC1sZW5ndGggc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGV4Y2VwdCB3aGVuIGNhbGxlZCB2aWEKKyAgdGhlIGxvY2FsIGRldl9hcHBzZXJ2ZXIuIFRoZXJlZm9yZSBpZiBpdCBpcyBub3QgcHJlc2VudCB3ZSBkZWZhdWx0IHRvIHRoZQorICBzdGFuZGFyZCBjb250ZW50LWxlbmd0aCBoZWFkZXIuCisKKyAgQXJnczoKKyAgICBoZWFkZXJzOiBhIGRpY3Qgb2YgaGVhZGVycyBmcm9tIHRoZSBodHRwIHJlc3BvbnNlLgorCisgIFJldHVybnM6CisgICAgdGhlIHN0b3JlZCBjb250ZW50IGxlbmd0aC4KKyAgIiIiCisgIGxlbmd0aCA9IGhlYWRlcnMuZ2V0KCd4LWdvb2ctc3RvcmVkLWNvbnRlbnQtbGVuZ3RoJykKKyAgaWYgbGVuZ3RoIGlzIE5vbmU6CisgICAgbGVuZ3RoID0gaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykKKyAgcmV0dXJuIGxlbmd0aAorCisKK2RlZiBnZXRfbWV0YWRhdGEoaGVhZGVycyk6CisgICIiIkdldCB1c2VyIGRlZmluZWQgb3B0aW9ucyBmcm9tIEhUVFAgcmVzcG9uc2UgaGVhZGVycy4iIiIKKyAgcmV0dXJuIGRpY3QoKGssIHYpIGZvciBrLCB2IGluIGhlYWRlcnMuaXRlcml0ZW1zKCkKKyAgICAgICAgICAgICAgaWYgYW55KGsubG93ZXIoKS5zdGFydHN3aXRoKHZhbGlkKSBmb3IgdmFsaWQgaW4gX0dDU19NRVRBREFUQSkpCisKKworZGVmIHZhbGlkYXRlX2J1Y2tldF9uYW1lKG5hbWUpOgorICAiIiJWYWxpZGF0ZSBhIEdvb2dsZSBTdG9yYWdlIGJ1Y2tldCBuYW1lLgorCisgIEFyZ3M6CisgICAgbmFtZTogYSBHb29nbGUgU3RvcmFnZSBidWNrZXQgbmFtZSB3aXRoIG5vIHByZWZpeCBvciBzdWZmaXguCisKKyAgUmFpc2VzOgorICAgIFZhbHVlRXJyb3I6IGlmIG5hbWUgaXMgaW52YWxpZC4KKyAgIiIiCisgIF92YWxpZGF0ZV9wYXRoKG5hbWUpCisgIGlmIG5vdCBfR0NTX0JVQ0tFVF9SRUdFWC5tYXRjaChuYW1lKToKKyAgICByYWlzZSBWYWx1ZUVycm9yKCdCdWNrZXQgc2hvdWxkIGJlIDMtNjMgY2hhcmFjdGVycyBsb25nIHVzaW5nIG9ubHkgYS16LCcKKyAgICAgICAgICAgICAgICAgICAgICcwLTksIHVuZGVyc2NvcmUsIGRhc2ggb3IgZG90IGJ1dCBnb3QgJXMnICUgbmFtZSkKKworCitkZWYgdmFsaWRhdGVfYnVja2V0X3BhdGgocGF0aCk6CisgICIiIlZhbGlkYXRlIGEgR29vZ2xlIENsb3VkIFN0b3JhZ2UgYnVja2V0IHBhdGguCisKKyAgQXJnczoKKyAgICBwYXRoOiBhIEdvb2dsZSBTdG9yYWdlIGJ1Y2tldCBwYXRoLiBJdCBzaG91bGQgaGF2ZSBmb3JtICcvYnVja2V0Jy4KKworICBSYWlzZXM6CisgICAgVmFsdWVFcnJvcjogaWYgcGF0aCBpcyBpbnZhbGlkLgorICAiIiIKKyAgX3ZhbGlkYXRlX3BhdGgocGF0aCkKKyAgaWYgbm90IF9HQ1NfQlVDS0VUX1BBVEhfUkVHRVgubWF0Y2gocGF0aCk6CisgICAgcmFpc2UgVmFsdWVFcnJvcignQnVja2V0IHNob3VsZCBoYXZlIGZvcm1hdCAvYnVja2V0ICcKKyAgICAgICAgICAgICAgICAgICAgICdidXQgZ290ICVzJyAlIHBhdGgpCisKKworZGVmIHZhbGlkYXRlX2ZpbGVfcGF0aChwYXRoKToKKyAgIiIiVmFsaWRhdGUgYSBHb29nbGUgQ2xvdWQgU3RvcmFnZSBmaWxlIHBhdGguCisKKyAgQXJnczoKKyAgICBwYXRoOiBhIEdvb2dsZSBTdG9yYWdlIGZpbGUgcGF0aC4gSXQgc2hvdWxkIGhhdmUgZm9ybSAnL2J1Y2tldC9maWxlbmFtZScuCisKKyAgUmFpc2VzOgorICAgIFZhbHVlRXJyb3I6IGlmIHBhdGggaXMgaW52YWxpZC4KKyAgIiIiCisgIF92YWxpZGF0ZV9wYXRoKHBhdGgpCisgIGlmIG5vdCBfR0NTX0ZVTExQQVRIX1JFR0VYLm1hdGNoKHBhdGgpOgorICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1BhdGggc2hvdWxkIGhhdmUgZm9ybWF0IC9idWNrZXQvZmlsZW5hbWUgJworICAgICAgICAgICAgICAgICAgICAgJ2J1dCBnb3QgJXMnICUgcGF0aCkKKworCitkZWYgX3Byb2Nlc3NfcGF0aF9wcmVmaXgocGF0aF9wcmVmaXgpOgorICAiIiJWYWxpZGF0ZSBhbmQgcHJvY2VzcyBhIEdvb2dsZSBDbG91ZCBTdG9hcmdlIHBhdGggcHJlZml4LgorCisgIEFyZ3M6CisgICAgcGF0aF9wcmVmaXg6IGEgR29vZ2xlIENsb3VkIFN0b3JhZ2UgcGF0aCBwcmVmaXggb2YgZm9ybWF0ICcvYnVja2V0L3ByZWZpeCcKKyAgICAgIG9yICcvYnVja2V0Lycgb3IgJy9idWNrZXQnLgorCisgIFJhaXNlczoKKyAgICBWYWx1ZUVycm9yOiBpZiBwYXRoIGlzIGludmFsaWQuCisKKyAgUmV0dXJuczoKKyAgICBhIHR1cGxlIG9mIC9idWNrZXQgYW5kIHByZWZpeC4gcHJlZml4IGNhbiBiZSBOb25lLgorICAiIiIKKyAgX3ZhbGlkYXRlX3BhdGgocGF0aF9wcmVmaXgpCisgIGlmIG5vdCBfR0NTX1BBVEhfUFJFRklYX1JFR0VYLm1hdGNoKHBhdGhfcHJlZml4KToKKyAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXRoIHByZWZpeCBzaG91bGQgaGF2ZSBmb3JtYXQgL2J1Y2tldCwgL2J1Y2tldC8sICcKKyAgICAgICAgICAgICAgICAgICAgICdvciAvYnVja2V0L3ByZWZpeCBidXQgZ290ICVzLicgJSBwYXRoX3ByZWZpeCkKKyAgYnVja2V0X25hbWVfZW5kID0gcGF0aF9wcmVmaXguZmluZCgnLycsIDEpCisgIGJ1Y2tldCA9IHBhdGhfcHJlZml4CisgIHByZWZpeCA9IE5vbmUKKyAgaWYgYnVja2V0X25hbWVfZW5kICE9IC0xOgorICAgIGJ1Y2tldCA9IHBhdGhfcHJlZml4WzpidWNrZXRfbmFtZV9lbmRdCisgICAgcHJlZml4ID0gcGF0aF9wcmVmaXhbYnVja2V0X25hbWVfZW5kICsgMTpdIG9yIE5vbmUKKyAgcmV0dXJuIGJ1Y2tldCwgcHJlZml4CisKKworZGVmIF92YWxpZGF0ZV9wYXRoKHBhdGgpOgorICAiIiJCYXNpYyB2YWxpZGF0aW9uIG9mIEdvb2dsZSBTdG9yYWdlIHBhdGhzLgorCisgIEFyZ3M6CisgICAgcGF0aDogYSBHb29nbGUgU3RvcmFnZSBwYXRoLiBJdCBzaG91bGQgaGF2ZSBmb3JtICcvYnVja2V0L2ZpbGVuYW1lJworICAgICAgb3IgJy9idWNrZXQnLgorCisgIFJhaXNlczoKKyAgICBWYWx1ZUVycm9yOiBpZiBwYXRoIGlzIGludmFsaWQuCisgICAgVHlwZUVycm9yOiBpZiBwYXRoIGlzIG5vdCBvZiB0eXBlIGJhc2VzdHJpbmcuCisgICIiIgorICBpZiBub3QgcGF0aDoKKyAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXRoIGlzIGVtcHR5JykKKyAgaWYgbm90IGlzaW5zdGFuY2UocGF0aCwgYmFzZXN0cmluZyk6CisgICAgcmFpc2UgVHlwZUVycm9yKCdQYXRoIHNob3VsZCBiZSBhIHN0cmluZyBidXQgaXMgJXMgKCVzKS4nICUKKyAgICAgICAgICAgICAgICAgICAgKHBhdGguX19jbGFzc19fLCBwYXRoKSkKKworCitkZWYgdmFsaWRhdGVfb3B0aW9ucyhvcHRpb25zKToKKyAgIiIiVmFsaWRhdGUgR29vZ2xlIENsb3VkIFN0b3JhZ2Ugb3B0aW9ucy4KKworICBBcmdzOgorICAgIG9wdGlvbnM6IGEgc3RyLT5iYXNlc3RyaW5nIGRpY3Qgb2Ygb3B0aW9ucyB0byBwYXNzIHRvIEdvb2dsZSBDbG91ZCBTdG9yYWdlLgorCisgIFJhaXNlczoKKyAgICBWYWx1ZUVycm9yOiBpZiBvcHRpb24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICBUeXBlRXJyb3I6IGlmIG9wdGlvbiBpcyBub3Qgb2YgdHlwZSBzdHIgb3IgdmFsdWUgb2YgYW4gb3B0aW9uCisgICAgICBpcyBub3Qgb2YgdHlwZSBiYXNlc3RyaW5nLgorICAiIiIKKyAgaWYgbm90IG9wdGlvbnM6CisgICAgcmV0dXJuCisKKyAgZm9yIGssIHYgaW4gb3B0aW9ucy5pdGVyaXRlbXMoKToKKyAgICBpZiBub3QgaXNpbnN0YW5jZShrLCBzdHIpOgorICAgICAgcmFpc2UgVHlwZUVycm9yKCdvcHRpb24gJXIgc2hvdWxkIGJlIGEgc3RyLicgJSBrKQorICAgIGlmIG5vdCBhbnkoay5sb3dlcigpLnN0YXJ0c3dpdGgodmFsaWQpIGZvciB2YWxpZCBpbiBfR0NTX09QVElPTlMpOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcignb3B0aW9uICVzIGlzIG5vdCBzdXBwb3J0ZWQuJyAlIGspCisgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgYmFzZXN0cmluZyk6CisgICAgICByYWlzZSBUeXBlRXJyb3IoJ3ZhbHVlICVyIGZvciBvcHRpb24gJXMgc2hvdWxkIGJlIG9mIHR5cGUgYmFzZXN0cmluZy4nICUKKyAgICAgICAgICAgICAgICAgICAgICAodiwgaykpCisKKworZGVmIGh0dHBfdGltZV90b19wb3NpeChodHRwX3RpbWUpOgorICAiIiJDb252ZXJ0IEhUVFAgdGltZSBmb3JtYXQgdG8gcG9zaXggdGltZS4KKworICBTZWUgaHR0cDovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMzLmh0bWwjc2VjMy4zLjEKKyAgZm9yIGh0dHAgdGltZSBmb3JtYXQuCisKKyAgQXJnczoKKyAgICBodHRwX3RpbWU6IHRpbWUgaW4gUkZDIDI2MTYgZm9ybWF0LiBlLmcuCisgICAgICAiTW9uLCAyMCBOb3YgMTk5NSAxOToxMjowOCBHTVQiLgorCisgIFJldHVybnM6CisgICAgQSBmbG9hdCBvZiBzZWNzIGZyb20gdW5peCBlcG9jaC4KKyAgIiIiCisgIGlmIGh0dHBfdGltZSBpcyBub3QgTm9uZToKKyAgICByZXR1cm4gZW1haWxfdXRpbHMubWt0aW1lX3R6KGVtYWlsX3V0aWxzLnBhcnNlZGF0ZV90eihodHRwX3RpbWUpKQorCisKK2RlZiBwb3NpeF90aW1lX3RvX2h0dHAocG9zaXhfdGltZSk6CisgICIiIkNvbnZlcnQgcG9zaXggdGltZSB0byBIVE1MIGhlYWRlciB0aW1lIGZvcm1hdC4KKworICBBcmdzOgorICAgIHBvc2l4X3RpbWU6IHVuaXggdGltZS4KKworICBSZXR1cm5zOgorICAgIEEgZGF0YXRpbWUgc3RyIGluIFJGQyAyNjE2IGZvcm1hdC4KKyAgIiIiCisgIGlmIHBvc2l4X3RpbWU6CisgICAgcmV0dXJuIGVtYWlsX3V0aWxzLmZvcm1hdGRhdGUocG9zaXhfdGltZSwgdXNlZ210PVRydWUpCisKKworX0RUX0ZPUk1BVCA9ICclWS0lbS0lZFQlSDolTTolUycKKworCitkZWYgZHRfc3RyX3RvX3Bvc2l4KGR0X3N0cik6CisgICIiImZvcm1hdCBzdHIgdG8gcG9zaXguCisKKyAgZGF0ZXRpbWUgc3RyIGlzIG9mIGZvcm1hdCAlWS0lbS0lZFQlSDolTTolUy4lZlosCisgIGUuZy4gMjAxMy0wNC0xMlQwMDoyMjoyNy45NzhaLiBBY2NvcmRpbmcgdG8gSVNPIDg2MDEsIFQgaXMgYSBzZXBhcmF0b3IKKyAgYmV0d2VlbiBkYXRlIGFuZCB0aW1lIHdoZW4gdGhleSBhcmUgb24gdGhlIHNhbWUgbGluZS4KKyAgWiBpbmRpY2F0ZXMgVVRDICh6ZXJvIG1lcmlkaWFuKS4KKworICBBIHBvaW50ZXI6IGh0dHA6Ly93d3cuY2wuY2FtLmFjLnVrL35tZ2syNS9pc28tdGltZS5odG1sCisKKyAgVGhpcyBpcyB1c2VkIHRvIHBhcnNlIExhc3RNb2RpZmllZCBub2RlIGZyb20gR0NTJ3MgR0VUIGJ1Y2tldCBYTUwgcmVzcG9uc2UuCisKKyAgQXJnczoKKyAgICBkdF9zdHI6IEEgZGF0ZXRpbWUgc3RyLgorCisgIFJldHVybnM6CisgICAgQSBmbG9hdCBvZiBzZWNzIGZyb20gdW5peCBlcG9jaC4gQnkgcG9zaXggZGVmaW5pdGlvbiwgZXBvY2ggaXMgbWlkbmlnaHQKKyAgICAxOTcwLzEvMSBVVEMuCisgICIiIgorICBwYXJzYWJsZSwgXyA9IGR0X3N0ci5zcGxpdCgnLicpCisgIGR0ID0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUocGFyc2FibGUsIF9EVF9GT1JNQVQpCisgIHJldHVybiBjYWxlbmRhci50aW1lZ20oZHQudXRjdGltZXR1cGxlKCkpCisKKworZGVmIHBvc2l4X3RvX2R0X3N0cihwb3NpeCk6CisgICIiIlJldmVyc2Ugb2Ygc3RyX3RvX2RhdGV0aW1lLgorCisgIFRoaXMgaXMgdXNlZCBieSBHQ1Mgc3R1YiB0byBnZW5lcmF0ZSBHRVQgYnVja2V0IFhNTCByZXNwb25zZS4KKworICBBcmdzOgorICAgIHBvc2l4OiBBIGZsb2F0IG9mIHNlY3MgZnJvbSB1bml4IGVwb2NoLgorCisgIFJldHVybnM6CisgICAgQSBkYXRldGltZSBzdHIuCisgICIiIgorICBkdCA9IGRhdGV0aW1lLmRhdGV0aW1lLnV0Y2Zyb210aW1lc3RhbXAocG9zaXgpCisgIGR0X3N0ciA9IGR0LnN0cmZ0aW1lKF9EVF9GT1JNQVQpCisgIHJldHVybiBkdF9zdHIgKyAnLjAwMFonCisKKworZGVmIGxvY2FsX3J1bigpOgorICAiIiJXaGV0aGVyIHdlIHNob3VsZCBoaXQgR0NTIGRldiBhcHBzZXJ2ZXIgc3R1Yi4iIiIKKyAgc2VydmVyX3NvZnR3YXJlID0gb3MuZW52aXJvbi5nZXQoJ1NFUlZFUl9TT0ZUV0FSRScpCisgIGlmIHNlcnZlcl9zb2Z0d2FyZSBpcyBOb25lOgorICAgIHJldHVybiBUcnVlCisgIGlmICdyZW1vdGVfYXBpJyBpbiBzZXJ2ZXJfc29mdHdhcmU6CisgICAgcmV0dXJuIEZhbHNlCisgIGlmIHNlcnZlcl9zb2Z0d2FyZS5zdGFydHN3aXRoKCgnRGV2ZWxvcG1lbnQnLCAndGVzdHV0aWwnKSk6CisgICAgcmV0dXJuIFRydWUKKyAgcmV0dXJuIEZhbHNlCisKKworZGVmIGxvY2FsX2FwaV91cmwoKToKKyAgIiIiUmV0dXJuIFVSTCBmb3IgR0NTIGVtdWxhdGlvbiBvbiBkZXYgYXBwc2VydmVyLiIiIgorICByZXR1cm4gJ2h0dHA6Ly8lcyVzJyAlIChvcy5lbnZpcm9uLmdldCgnSFRUUF9IT1NUJyksIExPQ0FMX0dDU19FTkRQT0lOVCkKKworCitkZWYgbWVtb3J5X3VzYWdlKG1ldGhvZCk6CisgICIiIkxvZyBtZW1vcnkgdXNhZ2UgYmVmb3JlIGFuZCBhZnRlciBhIG1ldGhvZC4iIiIKKyAgZGVmIHdyYXBwZXIoKmFyZ3MsICoqa3dhcmdzKToKKyAgICBsb2dnaW5nLmluZm8oJ01lbW9yeSBiZWZvcmUgbWV0aG9kICVzIGlzICVzLicsCisgICAgICAgICAgICAgICAgIG1ldGhvZC5fX25hbWVfXywgcnVudGltZS5tZW1vcnlfdXNhZ2UoKS5jdXJyZW50KCkpCisgICAgcmVzdWx0ID0gbWV0aG9kKCphcmdzLCAqKmt3YXJncykKKyAgICBsb2dnaW5nLmluZm8oJ01lbW9yeSBhZnRlciBtZXRob2QgJXMgaXMgJXMnLAorICAgICAgICAgICAgICAgICBtZXRob2QuX19uYW1lX18sIHJ1bnRpbWUubWVtb3J5X3VzYWdlKCkuY3VycmVudCgpKQorICAgIHJldHVybiByZXN1bHQKKyAgcmV0dXJuIHdyYXBwZXIKKworCitkZWYgX2FkZF9ucyh0YWduYW1lKToKKyAgcmV0dXJuICd7JShucylzfSUodGFnKXMnICUgeyducyc6IENTX1hNTF9OUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWcnOiB0YWduYW1lfQorCisKK19UX0NPTlRFTlRTID0gX2FkZF9ucygnQ29udGVudHMnKQorX1RfTEFTVF9NT0RJRklFRCA9IF9hZGRfbnMoJ0xhc3RNb2RpZmllZCcpCitfVF9FVEFHID0gX2FkZF9ucygnRVRhZycpCitfVF9LRVkgPSBfYWRkX25zKCdLZXknKQorX1RfU0laRSA9IF9hZGRfbnMoJ1NpemUnKQorX1RfUFJFRklYID0gX2FkZF9ucygnUHJlZml4JykKK19UX0NPTU1PTl9QUkVGSVhFUyA9IF9hZGRfbnMoJ0NvbW1vblByZWZpeGVzJykKK19UX05FWFRfTUFSS0VSID0gX2FkZF9ucygnTmV4dE1hcmtlcicpCitfVF9JU19UUlVOQ0FURUQgPSBfYWRkX25zKCdJc1RydW5jYXRlZCcpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2UvZXJyb3JzLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL2Vycm9ycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTc0MzgwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL2Vycm9ycy5weQpAQCAtMCwwICsxLDE0MyBAQAorIyBDb3B5cmlnaHQgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsCisjIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljCisjIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIkdvb2dsZSBDbG91ZCBTdG9yYWdlIHNwZWNpZmljIEZpbGVzIEFQSSBjYWxscy4iIiIKKworCisKKworCitfX2FsbF9fID0gWydBdXRob3JpemF0aW9uRXJyb3InLAorICAgICAgICAgICAnY2hlY2tfc3RhdHVzJywKKyAgICAgICAgICAgJ0Vycm9yJywKKyAgICAgICAgICAgJ0ZhdGFsRXJyb3InLAorICAgICAgICAgICAnRmlsZUNsb3NlZEVycm9yJywKKyAgICAgICAgICAgJ0ZvcmJpZGRlbkVycm9yJywKKyAgICAgICAgICAgJ0ludmFsaWRSYW5nZScsCisgICAgICAgICAgICdOb3RGb3VuZEVycm9yJywKKyAgICAgICAgICAgJ1NlcnZlckVycm9yJywKKyAgICAgICAgICAgJ1RpbWVvdXRFcnJvcicsCisgICAgICAgICAgICdUcmFuc2llbnRFcnJvcicsCisgICAgICAgICAgXQorCitpbXBvcnQgaHR0cGxpYgorCisKK2NsYXNzIEVycm9yKEV4Y2VwdGlvbik6CisgICIiIkJhc2UgZXJyb3IgZm9yIGFsbCBnY3Mgb3BlcmF0aW9ucy4KKworICBFcnJvciBjYW4gaGFwcGVuIG9uIEdBRSBzaWRlIG9yIEdDUyBzZXJ2ZXIgc2lkZS4KKyAgRm9yIGRldGFpbHMgb24gYSBwYXJ0aWN1bGFyIEdDUyBIVFRQIHJlc3BvbnNlIGNvZGUsIHNlZQorICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9zdG9yYWdlL2RvY3MvcmVmZXJlbmNlLXN0YXR1cyNzdGFuZGFyZGNvZGVzCisgICIiIgorCisKK2NsYXNzIFRyYW5zaWVudEVycm9yKEVycm9yKToKKyAgIiIiVHJhbnNpZW50RXJyb3IgY291bGQgYmUgcmV0cmllZC4iIiIKKworCitjbGFzcyBUaW1lb3V0RXJyb3IoVHJhbnNpZW50RXJyb3IpOgorICAiIiJIVFRQIDQwOCB0aW1lb3V0LiIiIgorCisKK2NsYXNzIEZhdGFsRXJyb3IoRXJyb3IpOgorICAiIiJGYXRhbEVycm9yIHNob3VsZG4ndCBiZSByZXRyaWVkLiIiIgorCisKK2NsYXNzIEZpbGVDbG9zZWRFcnJvcihGYXRhbEVycm9yKToKKyAgIiIiRmlsZSBpcyBhbHJlYWR5IGNsb3NlZC4KKworICBUaGlzIGNhbiBoYXBwZW4gd2hlbiB0aGUgdXBsb2FkIGhhcyBmaW5pc2hlZCBidXQgJ3dyaXRlJyBpcyBjYWxsZWQgb24KKyAgYSBzdGFsZSB1cGxvYWQgaGFuZGxlLgorICAiIiIKKworCitjbGFzcyBOb3RGb3VuZEVycm9yKEZhdGFsRXJyb3IpOgorICAiIiJIVFRQIDQwNCByZXNvdXJjZSBub3QgZm91bmQuIiIiCisKKworY2xhc3MgRm9yYmlkZGVuRXJyb3IoRmF0YWxFcnJvcik6CisgICIiIkhUVFAgNDAzIEZvcmJpZGRlbi4KKworICBXaGlsZSBHQ1MgcmVwbGllcyB3aXRoIGEgNDAzIGVycm9yIGZvciBtYW55IHJlYXNvbnMsIHRoZSBtb3N0IGNvbW1vbiBvbmUKKyAgaXMgZHVlIHRvIGJ1Y2tldCBwZXJtaXNzaW9uIG5vdCBjb3JyZWN0bHkgc2V0dXAgZm9yIHlvdXIgYXBwIHRvIGFjY2Vzcy4KKyAgIiIiCisKKworY2xhc3MgQXV0aG9yaXphdGlvbkVycm9yKEZhdGFsRXJyb3IpOgorICAiIiJIVFRQIDQwMSBhdXRoZW50aWNhdGlvbiByZXF1aXJlZC4KKworICBVbmF1dGhvcml6ZWQgcmVxdWVzdCBoYXMgYmVlbiByZWNlaXZlZCBieSBHQ1MuCisKKyAgVGhpcyBlcnJvciBpcyBtb3N0bHkgaGFuZGxlZCBieSBHQ1MgY2xpZW50LiBHQ1MgY2xpZW50IHdpbGwgcmVxdWVzdAorICBhIG5ldyBhY2Nlc3MgdG9rZW4gYW5kIHJldHJ5IHRoZSByZXF1ZXN0LgorICAiIiIKKworCitjbGFzcyBJbnZhbGlkUmFuZ2UoRmF0YWxFcnJvcik6CisgICIiIkhUVFAgNDE2IFJlcXVlc3RSYW5nZU5vdFNhdGlmaWFibGUuIiIiCisKKworY2xhc3MgU2VydmVyRXJyb3IoVHJhbnNpZW50RXJyb3IpOgorICAiIiJIVFRQID49IDUwMCBzZXJ2ZXIgc2lkZSBlcnJvci4iIiIKKworCitkZWYgY2hlY2tfc3RhdHVzKHN0YXR1cywgZXhwZWN0ZWQsIHBhdGgsIGhlYWRlcnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgcmVzcF9oZWFkZXJzPU5vbmUsIGJvZHk9Tm9uZSwgZXh0cmFzPU5vbmUpOgorICAiIiJDaGVjayBIVFRQIHJlc3BvbnNlIHN0YXR1cyBpcyBleHBlY3RlZC4KKworICBBcmdzOgorICAgIHN0YXR1czogSFRUUCByZXNwb25zZSBzdGF0dXMuIGludC4KKyAgICBleHBlY3RlZDogYSBsaXN0IG9mIGV4cGVjdGVkIHN0YXR1c2VzLiBBIGxpc3Qgb2YgaW50cy4KKyAgICBwYXRoOiBmaWxlbmFtZSBvciBhIHBhdGggcHJlZml4LgorICAgIGhlYWRlcnM6IEhUVFAgcmVxdWVzdCBoZWFkZXJzLgorICAgIHJlc3BfaGVhZGVyczogSFRUUCByZXNwb25zZSBoZWFkZXJzLgorICAgIGJvZHk6IEhUVFAgcmVzcG9uc2UgYm9keS4KKyAgICBleHRyYXM6IGV4dHJhIGluZm8gdG8gYmUgbG9nZ2VkIHZlcmJhdGltIGlmIGVycm9yIG9jY3Vycy4KKworICBSYWlzZXM6CisgICAgQXV0aG9yaXphdGlvbkVycm9yOiBpZiBhdXRob3JpemF0aW9uIGZhaWxlZC4KKyAgICBOb3RGb3VuZEVycm9yOiBpZiBhbiBvYmplY3QgdGhhdCdzIGV4cGVjdGVkIHRvIGV4aXN0IGRvZXNuJ3QuCisgICAgVGltZW91dEVycm9yOiBpZiBIVFRQIHJlcXVlc3QgdGltZWQgb3V0LgorICAgIFNlcnZlckVycm9yOiBpZiBzZXJ2ZXIgZXhwZXJpZW5jZWQgc29tZSBlcnJvcnMuCisgICAgRmF0YWxFcnJvcjogaWYgYW55IG90aGVyIHVuZXhwZWN0ZWQgZXJyb3JzIG9jY3VycmVkLgorICAiIiIKKyAgaWYgc3RhdHVzIGluIGV4cGVjdGVkOgorICAgIHJldHVybgorCisgIG1zZyA9ICgnRXhwZWN0IHN0YXR1cyAlciBmcm9tIEdvb2dsZSBTdG9yYWdlLiBCdXQgZ290IHN0YXR1cyAlZC5cbicKKyAgICAgICAgICdQYXRoOiAlci5cbicKKyAgICAgICAgICdSZXF1ZXN0IGhlYWRlcnM6ICVyLlxuJworICAgICAgICAgJ1Jlc3BvbnNlIGhlYWRlcnM6ICVyLlxuJworICAgICAgICAgJ0JvZHk6ICVyLlxuJworICAgICAgICAgJ0V4dHJhIGluZm86ICVyLlxuJyAlCisgICAgICAgICAoZXhwZWN0ZWQsIHN0YXR1cywgcGF0aCwgaGVhZGVycywgcmVzcF9oZWFkZXJzLCBib2R5LCBleHRyYXMpKQorCisgIGlmIHN0YXR1cyA9PSBodHRwbGliLlVOQVVUSE9SSVpFRDoKKyAgICByYWlzZSBBdXRob3JpemF0aW9uRXJyb3IobXNnKQorICBlbGlmIHN0YXR1cyA9PSBodHRwbGliLkZPUkJJRERFTjoKKyAgICByYWlzZSBGb3JiaWRkZW5FcnJvcihtc2cpCisgIGVsaWYgc3RhdHVzID09IGh0dHBsaWIuTk9UX0ZPVU5EOgorICAgIHJhaXNlIE5vdEZvdW5kRXJyb3IobXNnKQorICBlbGlmIHN0YXR1cyA9PSBodHRwbGliLlJFUVVFU1RfVElNRU9VVDoKKyAgICByYWlzZSBUaW1lb3V0RXJyb3IobXNnKQorICBlbGlmIHN0YXR1cyA9PSBodHRwbGliLlJFUVVFU1RFRF9SQU5HRV9OT1RfU0FUSVNGSUFCTEU6CisgICAgcmFpc2UgSW52YWxpZFJhbmdlKG1zZykKKyAgZWxpZiAoc3RhdHVzID09IGh0dHBsaWIuT0sgYW5kIDMwOCBpbiBleHBlY3RlZCBhbmQKKyAgICAgICAgaHR0cGxpYi5PSyBub3QgaW4gZXhwZWN0ZWQpOgorICAgIHJhaXNlIEZpbGVDbG9zZWRFcnJvcihtc2cpCisgIGVsaWYgc3RhdHVzID49IDUwMDoKKyAgICByYWlzZSBTZXJ2ZXJFcnJvcihtc2cpCisgIGVsc2U6CisgICAgcmFpc2UgRmF0YWxFcnJvcihtc2cpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2UvcmVzdF9hcGkucHkgYi90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2UvcmVzdF9hcGkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM3YzA5ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS9yZXN0X2FwaS5weQpAQCAtMCwwICsxLDI1OCBAQAorIyBDb3B5cmlnaHQgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsCisjIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljCisjIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyIiIkJhc2UgYW5kIGhlbHBlciBjbGFzc2VzIGZvciBHb29nbGUgUkVTVGZ1bCBBUElzLiIiIgorCisKKworCisKK19fYWxsX18gPSBbJ2FkZF9zeW5jX21ldGhvZHMnXQorCitpbXBvcnQgcmFuZG9tCitpbXBvcnQgdGltZQorCitmcm9tIC4gaW1wb3J0IGFwaV91dGlscworCit0cnk6CisgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5hcGkgaW1wb3J0IGFwcF9pZGVudGl0eQorICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGltcG9ydCBuZGIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgYXBwX2lkZW50aXR5CisgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IG5kYgorCisKKworZGVmIF9tYWtlX3N5bmNfbWV0aG9kKG5hbWUpOgorICAiIiJIZWxwZXIgdG8gc3ludGhlc2l6ZSBhIHN5bmNocm9ub3VzIG1ldGhvZCBmcm9tIGFuIGFzeW5jIG1ldGhvZCBuYW1lLgorCisgIFVzZWQgYnkgdGhlIEBhZGRfc3luY19tZXRob2RzIGNsYXNzIGRlY29yYXRvciBiZWxvdy4KKworICBBcmdzOgorICAgIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBzeW5jaHJvbm91cyBtZXRob2QuCisKKyAgUmV0dXJuczoKKyAgICBBIG1ldGhvZCAod2l0aCBmaXJzdCBhcmd1bWVudCAnc2VsZicpIHRoYXQgcmV0cmlldmVzIGFuZCBjYWxscworICAgIHNlbGYuPG5hbWU+LCBwYXNzaW5nIGl0cyBvd24gYXJndW1lbnRzLCBleHBlY3RzIGl0IHRvIHJldHVybiBhCisgICAgRnV0dXJlLCBhbmQgdGhlbiB3YWl0cyBmb3IgYW5kIHJldHVybnMgdGhhdCBGdXR1cmUncyByZXN1bHQuCisgICIiIgorCisgIGRlZiBzeW5jX3dyYXBwZXIoc2VsZiwgKmFyZ3MsICoqa3dkcyk6CisgICAgbWV0aG9kID0gZ2V0YXR0cihzZWxmLCBuYW1lKQorICAgIGZ1dHVyZSA9IG1ldGhvZCgqYXJncywgKiprd2RzKQorICAgIHJldHVybiBmdXR1cmUuZ2V0X3Jlc3VsdCgpCisKKyAgcmV0dXJuIHN5bmNfd3JhcHBlcgorCisKK2RlZiBhZGRfc3luY19tZXRob2RzKGNscyk6CisgICIiIkNsYXNzIGRlY29yYXRvciB0byBhZGQgc3luY2hyb25vdXMgbWV0aG9kcyBjb3JyZXNwb25kaW5nIHRvIGFzeW5jIG1ldGhvZHMuCisKKyAgVGhpcyBtb2RpZmllcyB0aGUgY2xhc3MgaW4gcGxhY2UsIGFkZGluZyBhZGRpdGlvbmFsIG1ldGhvZHMgdG8gaXQuCisgIElmIGEgc3luY2hyb25vdXMgbWV0aG9kIG9mIGEgZ2l2ZW4gbmFtZSBhbHJlYWR5IGV4aXN0cyBpdCBpcyBub3QKKyAgcmVwbGFjZWQuCisKKyAgQXJnczoKKyAgICBjbHM6IEEgY2xhc3MuCisKKyAgUmV0dXJuczoKKyAgICBUaGUgc2FtZSBjbGFzcywgbW9kaWZpZWQgaW4gcGxhY2UuCisgICIiIgorICBmb3IgbmFtZSBpbiBjbHMuX19kaWN0X18ua2V5cygpOgorICAgIGlmIG5hbWUuZW5kc3dpdGgoJ19hc3luYycpOgorICAgICAgc3luY19uYW1lID0gbmFtZVs6LTZdCisgICAgICBpZiBub3QgaGFzYXR0cihjbHMsIHN5bmNfbmFtZSk6CisgICAgICAgIHNldGF0dHIoY2xzLCBzeW5jX25hbWUsIF9tYWtlX3N5bmNfbWV0aG9kKG5hbWUpKQorICByZXR1cm4gY2xzCisKKworY2xhc3MgX0FFX1Rva2VuU3RvcmFnZV8obmRiLk1vZGVsKToKKyAgIiIiRW50aXR5IHRvIHN0b3JlIGFwcF9pZGVudGl0eSB0b2tlbnMgaW4gbWVtY2FjaGUuIiIiCisKKyAgdG9rZW4gPSBuZGIuU3RyaW5nUHJvcGVydHkoKQorICBleHBpcmVzID0gbmRiLkZsb2F0UHJvcGVydHkoKQorCisKK0BuZGIudGFza2xldAorZGVmIF9tYWtlX3Rva2VuX2FzeW5jKHNjb3Blcywgc2VydmljZV9hY2NvdW50X2lkKToKKyAgIiIiR2V0IGEgZnJlc2ggYXV0aGVudGljYXRpb24gdG9rZW4uCisKKyAgQXJnczoKKyAgICBzY29wZXM6IEEgbGlzdCBvZiBzY29wZXMuCisgICAgc2VydmljZV9hY2NvdW50X2lkOiBJbnRlcm5hbC11c2Ugb25seS4KKworICBSYWlzZXM6CisgICAgQW4gbmRiLlJldHVybiB3aXRoIGEgdHVwbGUgKHRva2VuLCBleHBpcmF0aW9uX3RpbWUpIHdoZXJlIGV4cGlyYXRpb25fdGltZSBpcworICAgIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoLgorICAiIiIKKyAgcnBjID0gYXBwX2lkZW50aXR5LmNyZWF0ZV9ycGMoKQorICBhcHBfaWRlbnRpdHkubWFrZV9nZXRfYWNjZXNzX3Rva2VuX2NhbGwocnBjLCBzY29wZXMsIHNlcnZpY2VfYWNjb3VudF9pZCkKKyAgdG9rZW4sIGV4cGlyZXNfYXQgPSB5aWVsZCBycGMKKyAgcmFpc2UgbmRiLlJldHVybigodG9rZW4sIGV4cGlyZXNfYXQpKQorCisKK2NsYXNzIF9SZXN0QXBpKG9iamVjdCk6CisgICIiIkJhc2UgY2xhc3MgZm9yIFJFU1QtYmFzZWQgQVBJIHdyYXBwZXIgY2xhc3Nlcy4KKworICBUaGlzIGNsYXNzIG1hbmFnZXMgYXV0aGVudGljYXRpb24gdG9rZW5zIGFuZCByZXF1ZXN0IHJldHJpZXMuICBBbGwKKyAgQVBJcyBhcmUgYXZhaWxhYmxlIGFzIHN5bmNocm9ub3VzIGFuZCBhc3luYyBtZXRob2RzOyBzeW5jaHJvbm91cworICBtZXRob2RzIGFyZSBzeW50aGVzaXplZCBmcm9tIGFzeW5jIG9uZXMgYnkgdGhlIGFkZF9zeW5jX21ldGhvZHMoKQorICBmdW5jdGlvbiBpbiB0aGlzIG1vZHVsZS4KKworICBXQVJOSU5HOiBEbyBOT1QgZGlyZWN0bHkgdXNlIHRoaXMgYXBpLiBJdCdzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbAorICBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UgYXQgYW55IHJlbGVhc2UuCisgICIiIgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBzY29wZXMsIHNlcnZpY2VfYWNjb3VudF9pZD1Ob25lLCB0b2tlbl9tYWtlcj1Ob25lLAorICAgICAgICAgICAgICAgcmV0cnlfcGFyYW1zPU5vbmUpOgorICAgICIiIkNvbnN0cnVjdG9yLgorCisgICAgQXJnczoKKyAgICAgIHNjb3BlczogQSBzY29wZSBvciBhIGxpc3Qgb2Ygc2NvcGVzLgorICAgICAgc2VydmljZV9hY2NvdW50X2lkOiBJbnRlcm5hbCB1c2Ugb25seS4KKyAgICAgIHRva2VuX21ha2VyOiBBbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gb2YgdGhlIGZvcm0KKyAgICAgICAgKHNjb3Blcywgc2VydmljZV9hY2NvdW50X2lkKSAtPiAodG9rZW4sIGV4cGlyZXMpLgorICAgICAgcmV0cnlfcGFyYW1zOiBBbiBpbnN0YW5jZSBvZiBhcGlfdXRpbHMuUmV0cnlQYXJhbXMuIElmIE5vbmUsIHRoZQorICAgICAgICBkZWZhdWx0IGZvciBjdXJyZW50IHRocmVhZCB3aWxsIGJlIHVzZWQuCisgICAgIiIiCisKKyAgICBpZiBpc2luc3RhbmNlKHNjb3BlcywgYmFzZXN0cmluZyk6CisgICAgICBzY29wZXMgPSBbc2NvcGVzXQorICAgIHNlbGYuc2NvcGVzID0gc2NvcGVzCisgICAgc2VsZi5zZXJ2aWNlX2FjY291bnRfaWQgPSBzZXJ2aWNlX2FjY291bnRfaWQKKyAgICBzZWxmLm1ha2VfdG9rZW5fYXN5bmMgPSB0b2tlbl9tYWtlciBvciBfbWFrZV90b2tlbl9hc3luYworICAgIGlmIG5vdCByZXRyeV9wYXJhbXM6CisgICAgICByZXRyeV9wYXJhbXMgPSBhcGlfdXRpbHMuX2dldF9kZWZhdWx0X3JldHJ5X3BhcmFtcygpCisgICAgc2VsZi5yZXRyeV9wYXJhbXMgPSByZXRyeV9wYXJhbXMKKyAgICBzZWxmLnVzZXJfYWdlbnQgPSB7J1VzZXItQWdlbnQnOiByZXRyeV9wYXJhbXMuX3VzZXJfYWdlbnR9CisgICAgc2VsZi5leHBpcmF0aW9uX2hlYWRyb29tID0gcmFuZG9tLnJhbmRpbnQoNjAsIDI0MCkKKworICBkZWYgX19nZXRzdGF0ZV9fKHNlbGYpOgorICAgICIiIlN0b3JlIHN0YXRlIGFzIHBhcnQgb2Ygc2VyaWFsaXphdGlvbi9waWNrbGluZy4iIiIKKyAgICByZXR1cm4geydzY29wZXMnOiBzZWxmLnNjb3BlcywKKyAgICAgICAgICAgICdpZCc6IHNlbGYuc2VydmljZV9hY2NvdW50X2lkLAorICAgICAgICAgICAgJ2FfbWFrZXInOiAoTm9uZSBpZiBzZWxmLm1ha2VfdG9rZW5fYXN5bmMgPT0gX21ha2VfdG9rZW5fYXN5bmMKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2VsZi5tYWtlX3Rva2VuX2FzeW5jKSwKKyAgICAgICAgICAgICdyZXRyeV9wYXJhbXMnOiBzZWxmLnJldHJ5X3BhcmFtcywKKyAgICAgICAgICAgICdleHBpcmF0aW9uX2hlYWRyb29tJzogc2VsZi5leHBpcmF0aW9uX2hlYWRyb29tfQorCisgIGRlZiBfX3NldHN0YXRlX18oc2VsZiwgc3RhdGUpOgorICAgICIiIlJlc3RvcmUgc3RhdGUgYXMgcGFydCBvZiBkZXNlcmlhbGl6YXRpb24vdW5waWNrbGluZy4iIiIKKyAgICBzZWxmLl9faW5pdF9fKHN0YXRlWydzY29wZXMnXSwKKyAgICAgICAgICAgICAgICAgIHNlcnZpY2VfYWNjb3VudF9pZD1zdGF0ZVsnaWQnXSwKKyAgICAgICAgICAgICAgICAgIHRva2VuX21ha2VyPXN0YXRlWydhX21ha2VyJ10sCisgICAgICAgICAgICAgICAgICByZXRyeV9wYXJhbXM9c3RhdGVbJ3JldHJ5X3BhcmFtcyddKQorICAgIHNlbGYuZXhwaXJhdGlvbl9oZWFkcm9vbSA9IHN0YXRlWydleHBpcmF0aW9uX2hlYWRyb29tJ10KKworICBAbmRiLnRhc2tsZXQKKyAgZGVmIGRvX3JlcXVlc3RfYXN5bmMoc2VsZiwgdXJsLCBtZXRob2Q9J0dFVCcsIGhlYWRlcnM9Tm9uZSwgcGF5bG9hZD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICBkZWFkbGluZT1Ob25lLCBjYWxsYmFjaz1Ob25lKToKKyAgICAiIiJJc3N1ZSBvbmUgSFRUUCByZXF1ZXN0LgorCisgICAgSXQgcGVyZm9ybXMgYXN5bmMgcmV0cmllcyB1c2luZyB0YXNrbGV0cy4KKworICAgIEFyZ3M6CisgICAgICB1cmw6IHRoZSB1cmwgdG8gZmV0Y2guCisgICAgICBtZXRob2Q6IHRoZSBtZXRob2QgaW4gd2hpY2ggdG8gZmV0Y2guCisgICAgICBoZWFkZXJzOiB0aGUgaHR0cCBoZWFkZXJzLgorICAgICAgcGF5bG9hZDogdGhlIGRhdGEgdG8gc3VibWl0IGluIHRoZSBmZXRjaC4KKyAgICAgIGRlYWRsaW5lOiB0aGUgZGVhZGxpbmUgaW4gd2hpY2ggdG8gbWFrZSB0aGUgY2FsbC4KKyAgICAgIGNhbGxiYWNrOiB0aGUgY2FsbCB0byBtYWtlIG9uY2UgY29tcGxldGVkLgorCisgICAgWWllbGRzOgorICAgICAgVGhlIGFzeW5jIGZldGNoIG9mIHRoZSB1cmwuCisgICAgIiIiCisgICAgcmV0cnlfd3JhcHBlciA9IGFwaV91dGlscy5fUmV0cnlXcmFwcGVyKAorICAgICAgICBzZWxmLnJldHJ5X3BhcmFtcywKKyAgICAgICAgcmV0cmlhYmxlX2V4Y2VwdGlvbnM9YXBpX3V0aWxzLl9SRVRSSUFCTEVfRVhDRVBUSU9OUywKKyAgICAgICAgc2hvdWxkX3JldHJ5PWFwaV91dGlscy5fc2hvdWxkX3JldHJ5KQorICAgIHJlc3AgPSB5aWVsZCByZXRyeV93cmFwcGVyLnJ1bigKKyAgICAgICAgc2VsZi51cmxmZXRjaF9hc3luYywKKyAgICAgICAgdXJsPXVybCwKKyAgICAgICAgbWV0aG9kPW1ldGhvZCwKKyAgICAgICAgaGVhZGVycz1oZWFkZXJzLAorICAgICAgICBwYXlsb2FkPXBheWxvYWQsCisgICAgICAgIGRlYWRsaW5lPWRlYWRsaW5lLAorICAgICAgICBjYWxsYmFjaz1jYWxsYmFjaywKKyAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1GYWxzZSkKKyAgICByYWlzZSBuZGIuUmV0dXJuKChyZXNwLnN0YXR1c19jb2RlLCByZXNwLmhlYWRlcnMsIHJlc3AuY29udGVudCkpCisKKyAgQG5kYi50YXNrbGV0CisgIGRlZiBnZXRfdG9rZW5fYXN5bmMoc2VsZiwgcmVmcmVzaD1GYWxzZSk6CisgICAgIiIiR2V0IGFuIGF1dGhlbnRpY2F0aW9uIHRva2VuLgorCisgICAgVGhlIHRva2VuIGlzIGNhY2hlZCBpbiBtZW1jYWNoZSwga2V5ZWQgYnkgdGhlIHNjb3BlcyBhcmd1bWVudC4KKyAgICBVc2VzIGEgcmFuZG9tIHRva2VuIGV4cGlyYXRpb24gaGVhZHJvb20gdmFsdWUgZ2VuZXJhdGVkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgIHRvIGVsaW1pbmF0ZSBhIGJ1cnN0IG9mIEdFVF9BQ0NFU1NfVE9LRU4gQVBJIHJlcXVlc3RzLgorCisgICAgQXJnczoKKyAgICAgIHJlZnJlc2g6IElmIFRydWUsIGlnbm9yZSBhIGNhY2hlZCB0b2tlbjsgZGVmYXVsdCBGYWxzZS4KKworICAgIFlpZWxkczoKKyAgICAgIEFuIGF1dGhlbnRpY2F0aW9uIHRva2VuLiBUaGlzIHRva2VuIGlzIGd1YXJhbnRlZWQgdG8gYmUgbm9uLWV4cGlyZWQuCisgICAgIiIiCisgICAga2V5ID0gJyVzLCVzJyAlIChzZWxmLnNlcnZpY2VfYWNjb3VudF9pZCwgJywnLmpvaW4oc2VsZi5zY29wZXMpKQorICAgIHRzID0geWllbGQgX0FFX1Rva2VuU3RvcmFnZV8uZ2V0X2J5X2lkX2FzeW5jKAorICAgICAgICBrZXksIHVzZV9jYWNoZT1UcnVlLCB1c2VfbWVtY2FjaGU9VHJ1ZSwKKyAgICAgICAgdXNlX2RhdGFzdG9yZT1zZWxmLnJldHJ5X3BhcmFtcy5zYXZlX2FjY2Vzc190b2tlbikKKyAgICBpZiByZWZyZXNoIG9yIHRzIGlzIE5vbmUgb3IgdHMuZXhwaXJlcyA8ICgKKyAgICAgICAgdGltZS50aW1lKCkgKyBzZWxmLmV4cGlyYXRpb25faGVhZHJvb20pOgorICAgICAgdG9rZW4sIGV4cGlyZXNfYXQgPSB5aWVsZCBzZWxmLm1ha2VfdG9rZW5fYXN5bmMoCisgICAgICAgICAgc2VsZi5zY29wZXMsIHNlbGYuc2VydmljZV9hY2NvdW50X2lkKQorICAgICAgdGltZW91dCA9IGludChleHBpcmVzX2F0IC0gdGltZS50aW1lKCkpCisgICAgICB0cyA9IF9BRV9Ub2tlblN0b3JhZ2VfKGlkPWtleSwgdG9rZW49dG9rZW4sIGV4cGlyZXM9ZXhwaXJlc19hdCkKKyAgICAgIGlmIHRpbWVvdXQgPiAwOgorICAgICAgICB5aWVsZCB0cy5wdXRfYXN5bmMobWVtY2FjaGVfdGltZW91dD10aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2RhdGFzdG9yZT1zZWxmLnJldHJ5X3BhcmFtcy5zYXZlX2FjY2Vzc190b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9jYWNoZT1UcnVlLCB1c2VfbWVtY2FjaGU9VHJ1ZSkKKyAgICByYWlzZSBuZGIuUmV0dXJuKHRzLnRva2VuKQorCisgIEBuZGIudGFza2xldAorICBkZWYgdXJsZmV0Y2hfYXN5bmMoc2VsZiwgdXJsLCBtZXRob2Q9J0dFVCcsIGhlYWRlcnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ9Tm9uZSwgZGVhZGxpbmU9Tm9uZSwgY2FsbGJhY2s9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9RmFsc2UpOgorICAgICIiIk1ha2UgYW4gYXN5bmMgdXJsZmV0Y2goKSBjYWxsLgorCisgICAgVGhpcyBpcyBhbiBhc3luYyB3cmFwcGVyIGFyb3VuZCB1cmxmZXRjaCgpLiBJdCBhZGRzIGFuIGF1dGhlbnRpY2F0aW9uCisgICAgaGVhZGVyLgorCisgICAgQXJnczoKKyAgICAgIHVybDogdGhlIHVybCB0byBmZXRjaC4KKyAgICAgIG1ldGhvZDogdGhlIG1ldGhvZCBpbiB3aGljaCB0byBmZXRjaC4KKyAgICAgIGhlYWRlcnM6IHRoZSBodHRwIGhlYWRlcnMuCisgICAgICBwYXlsb2FkOiB0aGUgZGF0YSB0byBzdWJtaXQgaW4gdGhlIGZldGNoLgorICAgICAgZGVhZGxpbmU6IHRoZSBkZWFkbGluZSBpbiB3aGljaCB0byBtYWtlIHRoZSBjYWxsLgorICAgICAgY2FsbGJhY2s6IHRoZSBjYWxsIHRvIG1ha2Ugb25jZSBjb21wbGV0ZWQuCisgICAgICBmb2xsb3dfcmVkaXJlY3RzOiB3aGV0aGVyIG9yIG5vdCB0byBmb2xsb3cgcmVkaXJlY3RzLgorCisgICAgWWllbGRzOgorICAgICAgVGhpcyByZXR1cm5zIGEgRnV0dXJlIGRlc3BpdGUgbm90IGJlaW5nIGRlY29yYXRlZCB3aXRoIEBuZGIudGFza2xldCEKKyAgICAiIiIKKyAgICBoZWFkZXJzID0ge30gaWYgaGVhZGVycyBpcyBOb25lIGVsc2UgZGljdChoZWFkZXJzKQorICAgIGhlYWRlcnMudXBkYXRlKHNlbGYudXNlcl9hZ2VudCkKKyAgICBzZWxmLnRva2VuID0geWllbGQgc2VsZi5nZXRfdG9rZW5fYXN5bmMoKQorICAgIGlmIHNlbGYudG9rZW46CisgICAgICBoZWFkZXJzWydhdXRob3JpemF0aW9uJ10gPSAnT0F1dGggJyArIHNlbGYudG9rZW4KKworICAgIGRlYWRsaW5lID0gZGVhZGxpbmUgb3Igc2VsZi5yZXRyeV9wYXJhbXMudXJsZmV0Y2hfdGltZW91dAorCisgICAgY3R4ID0gbmRiLmdldF9jb250ZXh0KCkKKyAgICByZXNwID0geWllbGQgY3R4LnVybGZldGNoKAorICAgICAgICB1cmwsIHBheWxvYWQ9cGF5bG9hZCwgbWV0aG9kPW1ldGhvZCwKKyAgICAgICAgaGVhZGVycz1oZWFkZXJzLCBmb2xsb3dfcmVkaXJlY3RzPWZvbGxvd19yZWRpcmVjdHMsCisgICAgICAgIGRlYWRsaW5lPWRlYWRsaW5lLCBjYWxsYmFjaz1jYWxsYmFjaykKKyAgICByYWlzZSBuZGIuUmV0dXJuKHJlc3ApCisKKworX1Jlc3RBcGkgPSBhZGRfc3luY19tZXRob2RzKF9SZXN0QXBpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL3N0b3JhZ2VfYXBpLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL3N0b3JhZ2VfYXBpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMGMzNjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvcGVyZl9pbnNpZ2h0cy90aGlyZF9wYXJ0eS9jbG91ZHN0b3JhZ2Uvc3RvcmFnZV9hcGkucHkKQEAgLTAsMCArMSw4ODcgQEAKKyMgQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELAorIyBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYworIyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiJQeXRob24gd3JhcHBlcnMgZm9yIHRoZSBHb29nbGUgU3RvcmFnZSBSRVNUZnVsIEFQSS4iIiIKKworCisKKworCitfX2FsbF9fID0gWydSZWFkQnVmZmVyJywKKyAgICAgICAgICAgJ1N0cmVhbWluZ0J1ZmZlcicsCisgICAgICAgICAgXQorCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBvcworaW1wb3J0IHVybHBhcnNlCisKK2Zyb20gLiBpbXBvcnQgYXBpX3V0aWxzCitmcm9tIC4gaW1wb3J0IGNvbW1vbgorZnJvbSAuIGltcG9ydCBlcnJvcnMKK2Zyb20gLiBpbXBvcnQgcmVzdF9hcGkKKwordHJ5OgorICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCB1cmxmZXRjaAorICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGltcG9ydCBuZGIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgdXJsZmV0Y2gKKyAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgbmRiCisKKworCitkZWYgX2dldF9zdG9yYWdlX2FwaShyZXRyeV9wYXJhbXMsIGFjY291bnRfaWQ9Tm9uZSk6CisgICIiIlJldHVybnMgc3RvcmFnZV9hcGkgaW5zdGFuY2UgZm9yIEFQSSBtZXRob2RzLgorCisgIEFyZ3M6CisgICAgcmV0cnlfcGFyYW1zOiBBbiBpbnN0YW5jZSBvZiBhcGlfdXRpbHMuUmV0cnlQYXJhbXMuIElmIG5vbmUsCisgICAgIHRocmVhZCdzIGRlZmF1bHQgd2lsbCBiZSB1c2VkLgorICAgIGFjY291bnRfaWQ6IEludGVybmFsLXVzZSBvbmx5LgorCisgIFJldHVybnM6CisgICAgQSBzdG9yYWdlX2FwaSBpbnN0YW5jZSB0byBoYW5kbGUgdXJsZmV0Y2ggd29yayB0byBHQ1MuCisgICAgT24gZGV2IGFwcHNlcnZlciwgdGhpcyBpbnN0YW5jZSBieSBkZWZhdWx0IHdpbGwgdGFsayB0byBhIGxvY2FsIHN0dWIKKyAgICB1bmxlc3MgY29tbW9uLkFDQ0VTU19UT0tFTiBpcyBzZXQuIFRoYXQgdG9rZW4gd2lsbCBiZSB1c2VkIHRvIHRhbGsKKyAgICB0byB0aGUgcmVhbCBHQ1MuCisgICIiIgorCisKKyAgYXBpID0gX1N0b3JhZ2VBcGkoX1N0b3JhZ2VBcGkuZnVsbF9jb250cm9sX3Njb3BlLAorICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2FjY291bnRfaWQ9YWNjb3VudF9pZCwKKyAgICAgICAgICAgICAgICAgICAgcmV0cnlfcGFyYW1zPXJldHJ5X3BhcmFtcykKKyAgaWYgY29tbW9uLmxvY2FsX3J1bigpIGFuZCBub3QgY29tbW9uLmdldF9hY2Nlc3NfdG9rZW4oKToKKyAgICBhcGkuYXBpX3VybCA9IGNvbW1vbi5sb2NhbF9hcGlfdXJsKCkKKyAgaWYgY29tbW9uLmdldF9hY2Nlc3NfdG9rZW4oKToKKyAgICBhcGkudG9rZW4gPSBjb21tb24uZ2V0X2FjY2Vzc190b2tlbigpCisgIHJldHVybiBhcGkKKworCitjbGFzcyBfU3RvcmFnZUFwaShyZXN0X2FwaS5fUmVzdEFwaSk6CisgICIiIkEgc2ltcGxlIHdyYXBwZXIgZm9yIHRoZSBHb29nbGUgU3RvcmFnZSBSRVNUZnVsIEFQSS4KKworICBXQVJOSU5HOiBEbyBOT1QgZGlyZWN0bHkgdXNlIHRoaXMgYXBpLiBJdCdzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbAorICBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UgYXQgYW55IHJlbGVhc2UuCisKKyAgQWxsIGFzeW5jIG1ldGhvZHMgaGF2ZSBzaW1pbGFyIGFyZ3MgYW5kIHJldHVybnMuCisKKyAgQXJnczoKKyAgICBwYXRoOiBUaGUgcGF0aCB0byB0aGUgR29vZ2xlIFN0b3JhZ2Ugb2JqZWN0IG9yIGJ1Y2tldCwgZS5nLgorICAgICAgJy9teWJ1Y2tldC9teWZpbGUnIG9yICcvbXlidWNrZXQnLgorICAgICoqa3dkOiBPcHRpb25zIGZvciB1cmxmZXRjaC4gZS5nLgorICAgICAgaGVhZGVycz17J2NvbnRlbnQtdHlwZSc6ICd0ZXh0L3BsYWluJ30sIHBheWxvYWQ9J2JsYWgnLgorCisgIFJldHVybnM6CisgICAgQSBuZGIgRnV0dXJlLiBXaGVuIGZ1bGZpbGxlZCwgZnV0dXJlLmdldF9yZXN1bHQoKSBzaG91bGQgcmV0dXJuCisgICAgYSB0dXBsZSBvZiAoc3RhdHVzLCBoZWFkZXJzLCBjb250ZW50KSB0aGF0IHJlcHJlc2VudHMgYSBIVFRQIHJlc3BvbnNlCisgICAgb2YgR29vZ2xlIENsb3VkIFN0b3JhZ2UgWE1MIEFQSS4KKyAgIiIiCisKKyAgYXBpX3VybCA9ICdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20nCisgIHJlYWRfb25seV9zY29wZSA9ICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RldnN0b3JhZ2UucmVhZF9vbmx5JworICByZWFkX3dyaXRlX3Njb3BlID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZGV2c3RvcmFnZS5yZWFkX3dyaXRlJworICBmdWxsX2NvbnRyb2xfc2NvcGUgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kZXZzdG9yYWdlLmZ1bGxfY29udHJvbCcKKworICBkZWYgX19nZXRzdGF0ZV9fKHNlbGYpOgorICAgICIiIlN0b3JlIHN0YXRlIGFzIHBhcnQgb2Ygc2VyaWFsaXphdGlvbi9waWNrbGluZy4KKworICAgIFJldHVybnM6CisgICAgICBBIHR1cGxlIChvZiBkaWN0aW9uYXJpZXMpIHdpdGggdGhlIHN0YXRlIG9mIHRoaXMgb2JqZWN0CisgICAgIiIiCisgICAgcmV0dXJuIChzdXBlcihfU3RvcmFnZUFwaSwgc2VsZikuX19nZXRzdGF0ZV9fKCksIHsnYXBpX3VybCc6IHNlbGYuYXBpX3VybH0pCisKKyAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBzdGF0ZSk6CisgICAgIiIiUmVzdG9yZSBzdGF0ZSBhcyBwYXJ0IG9mIGRlc2VyaWFsaXphdGlvbi91bnBpY2tsaW5nLgorCisgICAgQXJnczoKKyAgICAgIHN0YXRlOiB0aGUgdHVwbGUgZnJvbSBhIF9fZ2V0c3RhdGVfXyBjYWxsCisgICAgIiIiCisgICAgc3VwZXJzdGF0ZSwgbG9jYWxzdGF0ZSA9IHN0YXRlCisgICAgc3VwZXIoX1N0b3JhZ2VBcGksIHNlbGYpLl9fc2V0c3RhdGVfXyhzdXBlcnN0YXRlKQorICAgIHNlbGYuYXBpX3VybCA9IGxvY2Fsc3RhdGVbJ2FwaV91cmwnXQorCisgIEBhcGlfdXRpbHMuX2VhZ2VyX3Rhc2tsZXQKKyAgQG5kYi50YXNrbGV0CisgIGRlZiBkb19yZXF1ZXN0X2FzeW5jKHNlbGYsIHVybCwgbWV0aG9kPSdHRVQnLCBoZWFkZXJzPU5vbmUsIHBheWxvYWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgZGVhZGxpbmU9Tm9uZSwgY2FsbGJhY2s9Tm9uZSk6CisgICAgIiIiSW5oZXJpdCBkb2NzLgorCisgICAgVGhpcyBtZXRob2QgdHJhbnNsYXRlcyB1cmxmZXRjaCBleGNlcHRpb25zIHRvIG1vcmUgc2VydmljZSBzcGVjaWZpYyBvbmVzLgorICAgICIiIgorICAgIGlmIGhlYWRlcnMgaXMgTm9uZToKKyAgICAgIGhlYWRlcnMgPSB7fQorICAgIGlmICd4LWdvb2ctYXBpLXZlcnNpb24nIG5vdCBpbiBoZWFkZXJzOgorICAgICAgaGVhZGVyc1sneC1nb29nLWFwaS12ZXJzaW9uJ10gPSAnMicKKyAgICBoZWFkZXJzWydhY2NlcHQtZW5jb2RpbmcnXSA9ICdnemlwLCAqJworICAgIHRyeToKKyAgICAgIHJlc3BfdHVwbGUgPSB5aWVsZCBzdXBlcihfU3RvcmFnZUFwaSwgc2VsZikuZG9fcmVxdWVzdF9hc3luYygKKyAgICAgICAgICB1cmwsIG1ldGhvZD1tZXRob2QsIGhlYWRlcnM9aGVhZGVycywgcGF5bG9hZD1wYXlsb2FkLAorICAgICAgICAgIGRlYWRsaW5lPWRlYWRsaW5lLCBjYWxsYmFjaz1jYWxsYmFjaykKKyAgICBleGNlcHQgdXJsZmV0Y2guRG93bmxvYWRFcnJvciwgZToKKyAgICAgIHJhaXNlIGVycm9ycy5UaW1lb3V0RXJyb3IoCisgICAgICAgICAgJ1JlcXVlc3QgdG8gR29vZ2xlIENsb3VkIFN0b3JhZ2UgdGltZWQgb3V0LicsIGUpCisKKyAgICByYWlzZSBuZGIuUmV0dXJuKHJlc3BfdHVwbGUpCisKKworICBkZWYgcG9zdF9vYmplY3RfYXN5bmMoc2VsZiwgcGF0aCwgKiprd2RzKToKKyAgICAiIiJQT1NUIHRvIGFuIG9iamVjdC4iIiIKKyAgICByZXR1cm4gc2VsZi5kb19yZXF1ZXN0X2FzeW5jKHNlbGYuYXBpX3VybCArIHBhdGgsICdQT1NUJywgKiprd2RzKQorCisgIGRlZiBwdXRfb2JqZWN0X2FzeW5jKHNlbGYsIHBhdGgsICoqa3dkcyk6CisgICAgIiIiUFVUIGFuIG9iamVjdC4iIiIKKyAgICByZXR1cm4gc2VsZi5kb19yZXF1ZXN0X2FzeW5jKHNlbGYuYXBpX3VybCArIHBhdGgsICdQVVQnLCAqKmt3ZHMpCisKKyAgZGVmIGdldF9vYmplY3RfYXN5bmMoc2VsZiwgcGF0aCwgKiprd2RzKToKKyAgICAiIiJHRVQgYW4gb2JqZWN0LgorCisgICAgTm90ZTogTm8gcGF5bG9hZCBhcmd1bWVudCBpcyBzdXBwb3J0ZWQuCisgICAgIiIiCisgICAgcmV0dXJuIHNlbGYuZG9fcmVxdWVzdF9hc3luYyhzZWxmLmFwaV91cmwgKyBwYXRoLCAnR0VUJywgKiprd2RzKQorCisgIGRlZiBkZWxldGVfb2JqZWN0X2FzeW5jKHNlbGYsIHBhdGgsICoqa3dkcyk6CisgICAgIiIiREVMRVRFIGFuIG9iamVjdC4KKworICAgIE5vdGU6IE5vIHBheWxvYWQgYXJndW1lbnQgaXMgc3VwcG9ydGVkLgorICAgICIiIgorICAgIHJldHVybiBzZWxmLmRvX3JlcXVlc3RfYXN5bmMoc2VsZi5hcGlfdXJsICsgcGF0aCwgJ0RFTEVURScsICoqa3dkcykKKworICBkZWYgaGVhZF9vYmplY3RfYXN5bmMoc2VsZiwgcGF0aCwgKiprd2RzKToKKyAgICAiIiJIRUFEIGFuIG9iamVjdC4KKworICAgIERlcGVuZGluZyBvbiByZXF1ZXN0IGhlYWRlcnMsIEhFQUQgcmV0dXJucyB2YXJpb3VzIG9iamVjdCBwcm9wZXJ0aWVzLAorICAgIGUuZy4gQ29udGVudC1MZW5ndGgsIExhc3QtTW9kaWZpZWQsIGFuZCBFVGFnLgorCisgICAgTm90ZTogTm8gcGF5bG9hZCBhcmd1bWVudCBpcyBzdXBwb3J0ZWQuCisgICAgIiIiCisgICAgcmV0dXJuIHNlbGYuZG9fcmVxdWVzdF9hc3luYyhzZWxmLmFwaV91cmwgKyBwYXRoLCAnSEVBRCcsICoqa3dkcykKKworICBkZWYgZ2V0X2J1Y2tldF9hc3luYyhzZWxmLCBwYXRoLCAqKmt3ZHMpOgorICAgICIiIkdFVCBhIGJ1Y2tldC4iIiIKKyAgICByZXR1cm4gc2VsZi5kb19yZXF1ZXN0X2FzeW5jKHNlbGYuYXBpX3VybCArIHBhdGgsICdHRVQnLCAqKmt3ZHMpCisKKworX1N0b3JhZ2VBcGkgPSByZXN0X2FwaS5hZGRfc3luY19tZXRob2RzKF9TdG9yYWdlQXBpKQorCisKK2NsYXNzIFJlYWRCdWZmZXIob2JqZWN0KToKKyAgIiIiQSBjbGFzcyBmb3IgcmVhZGluZyBHb29nbGUgc3RvcmFnZSBmaWxlcy4iIiIKKworICBERUZBVUxUX0JVRkZFUl9TSVpFID0gMTAyNCAqIDEwMjQKKyAgTUFYX1JFUVVFU1RfU0laRSA9IDMwICogREVGQVVMVF9CVUZGRVJfU0laRQorCisgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgYXBpLAorICAgICAgICAgICAgICAgcGF0aCwKKyAgICAgICAgICAgICAgIGJ1ZmZlcl9zaXplPURFRkFVTFRfQlVGRkVSX1NJWkUsCisgICAgICAgICAgICAgICBtYXhfcmVxdWVzdF9zaXplPU1BWF9SRVFVRVNUX1NJWkUpOgorICAgICIiIkNvbnN0cnVjdG9yLgorCisgICAgQXJnczoKKyAgICAgIGFwaTogQSBTdG9yYWdlQXBpIGluc3RhbmNlLgorICAgICAgcGF0aDogUXVvdGVkL2VzY2FwZWQgcGF0aCB0byB0aGUgb2JqZWN0LCBlLmcuIC9teWJ1Y2tldC9teWZpbGUKKyAgICAgIGJ1ZmZlcl9zaXplOiBidWZmZXIgc2l6ZS4gVGhlIFJlYWRCdWZmZXIga2VlcHMKKyAgICAgICAgb25lIGJ1ZmZlci4gQnV0IHRoZXJlIG1heSBiZSBhIHBlbmRpbmcgZnV0dXJlIHRoYXQgY29udGFpbnMKKyAgICAgICAgYSBzZWNvbmQgYnVmZmVyLiBUaGlzIHNpemUgbXVzdCBiZSBsZXNzIHRoYW4gbWF4X3JlcXVlc3Rfc2l6ZS4KKyAgICAgIG1heF9yZXF1ZXN0X3NpemU6IE1heCBieXRlcyB0byByZXF1ZXN0IGluIG9uZSB1cmxmZXRjaC4KKyAgICAiIiIKKyAgICBzZWxmLl9hcGkgPSBhcGkKKyAgICBzZWxmLl9wYXRoID0gcGF0aAorICAgIHNlbGYubmFtZSA9IGFwaV91dGlscy5fdW5xdW90ZV9maWxlbmFtZShwYXRoKQorICAgIHNlbGYuY2xvc2VkID0gRmFsc2UKKworICAgIGFzc2VydCBidWZmZXJfc2l6ZSA8PSBtYXhfcmVxdWVzdF9zaXplCisgICAgc2VsZi5fYnVmZmVyX3NpemUgPSBidWZmZXJfc2l6ZQorICAgIHNlbGYuX21heF9yZXF1ZXN0X3NpemUgPSBtYXhfcmVxdWVzdF9zaXplCisgICAgc2VsZi5fb2Zmc2V0ID0gMAorICAgIHNlbGYuX2J1ZmZlciA9IF9CdWZmZXIoKQorICAgIHNlbGYuX2V0YWcgPSBOb25lCisKKyAgICBnZXRfZnV0dXJlID0gc2VsZi5fZ2V0X3NlZ21lbnQoMCwgc2VsZi5fYnVmZmVyX3NpemUsIGNoZWNrX3Jlc3BvbnNlPUZhbHNlKQorCisgICAgc3RhdHVzLCBoZWFkZXJzLCBjb250ZW50ID0gc2VsZi5fYXBpLmhlYWRfb2JqZWN0KHBhdGgpCisgICAgZXJyb3JzLmNoZWNrX3N0YXR1cyhzdGF0dXMsIFsyMDBdLCBwYXRoLCByZXNwX2hlYWRlcnM9aGVhZGVycywgYm9keT1jb250ZW50KQorICAgIHNlbGYuX2ZpbGVfc2l6ZSA9IGxvbmcoY29tbW9uLmdldF9zdG9yZWRfY29udGVudF9sZW5ndGgoaGVhZGVycykpCisgICAgc2VsZi5fY2hlY2tfZXRhZyhoZWFkZXJzLmdldCgnZXRhZycpKQorCisgICAgc2VsZi5fYnVmZmVyX2Z1dHVyZSA9IE5vbmUKKworICAgIGlmIHNlbGYuX2ZpbGVfc2l6ZSAhPSAwOgorICAgICAgY29udGVudCwgY2hlY2tfcmVzcG9uc2VfY2xvc3VyZSA9IGdldF9mdXR1cmUuZ2V0X3Jlc3VsdCgpCisgICAgICBjaGVja19yZXNwb25zZV9jbG9zdXJlKCkKKyAgICAgIHNlbGYuX2J1ZmZlci5yZXNldChjb250ZW50KQorICAgICAgc2VsZi5fcmVxdWVzdF9uZXh0X2J1ZmZlcigpCisKKyAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKKyAgICAiIiJTdG9yZSBzdGF0ZSBhcyBwYXJ0IG9mIHNlcmlhbGl6YXRpb24vcGlja2xpbmcuCisKKyAgICBUaGUgY29udGVudHMgb2YgdGhlIHJlYWQgYnVmZmVyIGFyZSBub3Qgc3RvcmVkLCBvbmx5IHRoZSBjdXJyZW50IG9mZnNldCBmb3IKKyAgICBkYXRhIHJlYWQgYnkgdGhlIGNsaWVudC4gQSBuZXcgcmVhZCBidWZmZXIgaXMgZXN0YWJsaXNoZWQgYXQgdW5waWNrbGluZy4KKyAgICBUaGUgaGVhZCBpbmZvcm1hdGlvbiBmb3IgdGhlIG9iamVjdCAoZmlsZSBzaXplIGFuZCBldGFnKSBhcmUgc3RvcmVkIHRvCisgICAgcmVkdWNlIHN0YXJ0dXAgYW5kIGVuc3VyZSB0aGUgZmlsZSBoYXMgbm90IGNoYW5nZWQuCisKKyAgICBSZXR1cm5zOgorICAgICAgQSBkaWN0aW9uYXJ5IHdpdGggdGhlIHN0YXRlIG9mIHRoaXMgb2JqZWN0CisgICAgIiIiCisgICAgcmV0dXJuIHsnYXBpJzogc2VsZi5fYXBpLAorICAgICAgICAgICAgJ3BhdGgnOiBzZWxmLl9wYXRoLAorICAgICAgICAgICAgJ2J1ZmZlcl9zaXplJzogc2VsZi5fYnVmZmVyX3NpemUsCisgICAgICAgICAgICAncmVxdWVzdF9zaXplJzogc2VsZi5fbWF4X3JlcXVlc3Rfc2l6ZSwKKyAgICAgICAgICAgICdldGFnJzogc2VsZi5fZXRhZywKKyAgICAgICAgICAgICdzaXplJzogc2VsZi5fZmlsZV9zaXplLAorICAgICAgICAgICAgJ29mZnNldCc6IHNlbGYuX29mZnNldCwKKyAgICAgICAgICAgICdjbG9zZWQnOiBzZWxmLmNsb3NlZH0KKworICBkZWYgX19zZXRzdGF0ZV9fKHNlbGYsIHN0YXRlKToKKyAgICAiIiJSZXN0b3JlIHN0YXRlIGFzIHBhcnQgb2YgZGVzZXJpYWxpemF0aW9uL3VucGlja2xpbmcuCisKKyAgICBBcmdzOgorICAgICAgc3RhdGU6IHRoZSBkaWN0aW9uYXJ5IGZyb20gYSBfX2dldHN0YXRlX18gY2FsbAorCisgICAgQWxvbmcgd2l0aCByZXN0b3JpbmcgdGhlIHN0YXRlLCBwcmUtZmV0Y2ggdGhlIG5leHQgcmVhZCBidWZmZXIuCisgICAgIiIiCisgICAgc2VsZi5fYXBpID0gc3RhdGVbJ2FwaSddCisgICAgc2VsZi5fcGF0aCA9IHN0YXRlWydwYXRoJ10KKyAgICBzZWxmLm5hbWUgPSBhcGlfdXRpbHMuX3VucXVvdGVfZmlsZW5hbWUoc2VsZi5fcGF0aCkKKyAgICBzZWxmLl9idWZmZXJfc2l6ZSA9IHN0YXRlWydidWZmZXJfc2l6ZSddCisgICAgc2VsZi5fbWF4X3JlcXVlc3Rfc2l6ZSA9IHN0YXRlWydyZXF1ZXN0X3NpemUnXQorICAgIHNlbGYuX2V0YWcgPSBzdGF0ZVsnZXRhZyddCisgICAgc2VsZi5fZmlsZV9zaXplID0gc3RhdGVbJ3NpemUnXQorICAgIHNlbGYuX29mZnNldCA9IHN0YXRlWydvZmZzZXQnXQorICAgIHNlbGYuX2J1ZmZlciA9IF9CdWZmZXIoKQorICAgIHNlbGYuY2xvc2VkID0gc3RhdGVbJ2Nsb3NlZCddCisgICAgc2VsZi5fYnVmZmVyX2Z1dHVyZSA9IE5vbmUKKyAgICBpZiBzZWxmLl9yZW1haW5pbmcoKSBhbmQgbm90IHNlbGYuY2xvc2VkOgorICAgICAgc2VsZi5fcmVxdWVzdF9uZXh0X2J1ZmZlcigpCisKKyAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICIiIkl0ZXJhdG9yIGludGVyZmFjZS4KKworICAgIE5vdGUgdGhlIFJlYWRCdWZmZXIgY29udGFpbmVyIGl0c2VsZiBpcyB0aGUgaXRlcmF0b3IuIEl0J3MKKyAgICAocXVvdGUgUEVQMDIzNCkKKyAgICAnZGVzdHJ1Y3RpdmU6IHRoZXkgY29uc3VtZXMgYWxsIHRoZSB2YWx1ZXMgYW5kIGEgc2Vjb25kIGl0ZXJhdG9yCisgICAgY2Fubm90IGVhc2lseSBiZSBjcmVhdGVkIHRoYXQgaXRlcmF0ZXMgaW5kZXBlbmRlbnRseSBvdmVyIHRoZSBzYW1lIHZhbHVlcy4KKyAgICBZb3UgY291bGQgb3BlbiB0aGUgZmlsZSBmb3IgdGhlIHNlY29uZCB0aW1lLCBvciBzZWVrKCkgdG8gdGhlIGJlZ2lubmluZy4nCisKKyAgICBSZXR1cm5zOgorICAgICAgU2VsZi4KKyAgICAiIiIKKyAgICByZXR1cm4gc2VsZgorCisgIGRlZiBuZXh0KHNlbGYpOgorICAgIGxpbmUgPSBzZWxmLnJlYWRsaW5lKCkKKyAgICBpZiBub3QgbGluZToKKyAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24oKQorICAgIHJldHVybiBsaW5lCisKKyAgZGVmIHJlYWRsaW5lKHNlbGYsIHNpemU9LTEpOgorICAgICIiIlJlYWQgb25lIGxpbmUgZGVsaW1pdGVkIGJ5ICdcbicgZnJvbSB0aGUgZmlsZS4KKworICAgIEEgdHJhaWxpbmcgbmV3bGluZSBjaGFyYWN0ZXIgaXMga2VwdCBpbiB0aGUgc3RyaW5nLiBJdCBtYXkgYmUgYWJzZW50IHdoZW4gYQorICAgIGZpbGUgZW5kcyB3aXRoIGFuIGluY29tcGxldGUgbGluZS4gSWYgdGhlIHNpemUgYXJndW1lbnQgaXMgbm9uLW5lZ2F0aXZlLAorICAgIGl0IHNwZWNpZmllcyB0aGUgbWF4aW11bSBzdHJpbmcgc2l6ZSAoY291bnRpbmcgdGhlIG5ld2xpbmUpIHRvIHJldHVybi4KKyAgICBBIG5lZ2F0aXZlIHNpemUgaXMgdGhlIHNhbWUgYXMgdW5zcGVjaWZpZWQuIEVtcHR5IHN0cmluZyBpcyByZXR1cm5lZAorICAgIG9ubHkgd2hlbiBFT0YgaXMgZW5jb3VudGVyZWQgaW1tZWRpYXRlbHkuCisKKyAgICBBcmdzOgorICAgICAgc2l6ZTogTWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC4gSWYgbm90IHNwZWNpZmllZCwgcmVhZGxpbmUgc3RvcHMKKyAgICAgICAgb25seSBvbiAnXG4nIG9yIEVPRi4KKworICAgIFJldHVybnM6CisgICAgICBUaGUgZGF0YSByZWFkIGFzIGEgc3RyaW5nLgorCisgICAgUmFpc2VzOgorICAgICAgSU9FcnJvcjogV2hlbiB0aGlzIGJ1ZmZlciBpcyBjbG9zZWQuCisgICAgIiIiCisgICAgc2VsZi5fY2hlY2tfb3BlbigpCisgICAgaWYgc2l6ZSA9PSAwIG9yIG5vdCBzZWxmLl9yZW1haW5pbmcoKToKKyAgICAgIHJldHVybiAnJworCisgICAgZGF0YV9saXN0ID0gW10KKyAgICBuZXdsaW5lX29mZnNldCA9IHNlbGYuX2J1ZmZlci5maW5kX25ld2xpbmUoc2l6ZSkKKyAgICB3aGlsZSBuZXdsaW5lX29mZnNldCA8IDA6CisgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyLnJlYWQoc2l6ZSkKKyAgICAgIHNpemUgLT0gbGVuKGRhdGEpCisgICAgICBzZWxmLl9vZmZzZXQgKz0gbGVuKGRhdGEpCisgICAgICBkYXRhX2xpc3QuYXBwZW5kKGRhdGEpCisgICAgICBpZiBzaXplID09IDAgb3Igbm90IHNlbGYuX3JlbWFpbmluZygpOgorICAgICAgICByZXR1cm4gJycuam9pbihkYXRhX2xpc3QpCisgICAgICBzZWxmLl9idWZmZXIucmVzZXQoc2VsZi5fYnVmZmVyX2Z1dHVyZS5nZXRfcmVzdWx0KCkpCisgICAgICBzZWxmLl9yZXF1ZXN0X25leHRfYnVmZmVyKCkKKyAgICAgIG5ld2xpbmVfb2Zmc2V0ID0gc2VsZi5fYnVmZmVyLmZpbmRfbmV3bGluZShzaXplKQorCisgICAgZGF0YSA9IHNlbGYuX2J1ZmZlci5yZWFkX3RvX29mZnNldChuZXdsaW5lX29mZnNldCArIDEpCisgICAgc2VsZi5fb2Zmc2V0ICs9IGxlbihkYXRhKQorICAgIGRhdGFfbGlzdC5hcHBlbmQoZGF0YSkKKworICAgIHJldHVybiAnJy5qb2luKGRhdGFfbGlzdCkKKworICBkZWYgcmVhZChzZWxmLCBzaXplPS0xKToKKyAgICAiIiJSZWFkIGRhdGEgZnJvbSBSQVcgZmlsZS4KKworICAgIEFyZ3M6CisgICAgICBzaXplOiBOdW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCBhcyBpbnRlZ2VyLiBBY3R1YWwgbnVtYmVyIG9mIGJ5dGVzCisgICAgICAgIHJlYWQgaXMgYWx3YXlzIGVxdWFsIHRvIHNpemUgdW5sZXNzIEVPRiBpcyByZWFjaGVkLiBJZiBzaXplIGlzCisgICAgICAgIG5lZ2F0aXZlIG9yIHVuc3BlY2lmaWVkLCByZWFkIHRoZSBlbnRpcmUgZmlsZS4KKworICAgIFJldHVybnM6CisgICAgICBkYXRhIHJlYWQgYXMgc3RyLgorCisgICAgUmFpc2VzOgorICAgICAgSU9FcnJvcjogV2hlbiB0aGlzIGJ1ZmZlciBpcyBjbG9zZWQuCisgICAgIiIiCisgICAgc2VsZi5fY2hlY2tfb3BlbigpCisgICAgaWYgbm90IHNlbGYuX3JlbWFpbmluZygpOgorICAgICAgcmV0dXJuICcnCisKKyAgICBkYXRhX2xpc3QgPSBbXQorICAgIHdoaWxlIFRydWU6CisgICAgICByZW1haW5pbmcgPSBzZWxmLl9idWZmZXIucmVtYWluaW5nKCkKKyAgICAgIGlmIHNpemUgPj0gMCBhbmQgc2l6ZSA8IHJlbWFpbmluZzoKKyAgICAgICAgZGF0YV9saXN0LmFwcGVuZChzZWxmLl9idWZmZXIucmVhZChzaXplKSkKKyAgICAgICAgc2VsZi5fb2Zmc2V0ICs9IHNpemUKKyAgICAgICAgYnJlYWsKKyAgICAgIGVsc2U6CisgICAgICAgIHNpemUgLT0gcmVtYWluaW5nCisgICAgICAgIHNlbGYuX29mZnNldCArPSByZW1haW5pbmcKKyAgICAgICAgZGF0YV9saXN0LmFwcGVuZChzZWxmLl9idWZmZXIucmVhZCgpKQorCisgICAgICAgIGlmIHNlbGYuX2J1ZmZlcl9mdXR1cmUgaXMgTm9uZToKKyAgICAgICAgICBpZiBzaXplIDwgMCBvciBzaXplID49IHNlbGYuX3JlbWFpbmluZygpOgorICAgICAgICAgICAgbmVlZHMgPSBzZWxmLl9yZW1haW5pbmcoKQorICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZWVkcyA9IHNpemUKKyAgICAgICAgICBkYXRhX2xpc3QuZXh0ZW5kKHNlbGYuX2dldF9zZWdtZW50cyhzZWxmLl9vZmZzZXQsIG5lZWRzKSkKKyAgICAgICAgICBzZWxmLl9vZmZzZXQgKz0gbmVlZHMKKyAgICAgICAgICBicmVhaworCisgICAgICAgIGlmIHNlbGYuX2J1ZmZlcl9mdXR1cmU6CisgICAgICAgICAgc2VsZi5fYnVmZmVyLnJlc2V0KHNlbGYuX2J1ZmZlcl9mdXR1cmUuZ2V0X3Jlc3VsdCgpKQorICAgICAgICAgIHNlbGYuX2J1ZmZlcl9mdXR1cmUgPSBOb25lCisKKyAgICBpZiBzZWxmLl9idWZmZXJfZnV0dXJlIGlzIE5vbmU6CisgICAgICBzZWxmLl9yZXF1ZXN0X25leHRfYnVmZmVyKCkKKyAgICByZXR1cm4gJycuam9pbihkYXRhX2xpc3QpCisKKyAgZGVmIF9yZW1haW5pbmcoc2VsZik6CisgICAgcmV0dXJuIHNlbGYuX2ZpbGVfc2l6ZSAtIHNlbGYuX29mZnNldAorCisgIGRlZiBfcmVxdWVzdF9uZXh0X2J1ZmZlcihzZWxmKToKKyAgICAiIiJSZXF1ZXN0IG5leHQgYnVmZmVyLgorCisgICAgUmVxdWlyZXMgc2VsZi5fb2Zmc2V0IGFuZCBzZWxmLl9idWZmZXIgYXJlIGluIGNvbnNpc3RlbnQgc3RhdGUuCisgICAgIiIiCisgICAgc2VsZi5fYnVmZmVyX2Z1dHVyZSA9IE5vbmUKKyAgICBuZXh0X29mZnNldCA9IHNlbGYuX29mZnNldCArIHNlbGYuX2J1ZmZlci5yZW1haW5pbmcoKQorICAgIGlmIG5leHRfb2Zmc2V0ICE9IHNlbGYuX2ZpbGVfc2l6ZToKKyAgICAgIHNlbGYuX2J1ZmZlcl9mdXR1cmUgPSBzZWxmLl9nZXRfc2VnbWVudChuZXh0X29mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9idWZmZXJfc2l6ZSkKKworICBkZWYgX2dldF9zZWdtZW50cyhzZWxmLCBzdGFydCwgcmVxdWVzdF9zaXplKToKKyAgICAiIiJHZXQgc2VnbWVudHMgb2YgdGhlIGZpbGUgZnJvbSBHb29nbGUgU3RvcmFnZSBhcyBhIGxpc3QuCisKKyAgICBBIGxhcmdlIHJlcXVlc3QgaXMgYnJva2VuIGludG8gc2VnbWVudHMgdG8gYXZvaWQgaGl0dGluZyB1cmxmZXRjaAorICAgIHJlc3BvbnNlIHNpemUgbGltaXQuIEVhY2ggc2VnbWVudCBpcyByZXR1cm5lZCBmcm9tIGEgc2VwYXJhdGUgdXJsZmV0Y2guCisKKyAgICBBcmdzOgorICAgICAgc3RhcnQ6IHN0YXJ0IG9mZnNldCB0byByZXF1ZXN0LiBJbmNsdXNpdmUuIEhhdmUgdG8gYmUgd2l0aGluIHRoZQorICAgICAgICByYW5nZSBvZiB0aGUgZmlsZS4KKyAgICAgIHJlcXVlc3Rfc2l6ZTogbnVtYmVyIG9mIGJ5dGVzIHRvIHJlcXVlc3QuCisKKyAgICBSZXR1cm5zOgorICAgICAgQSBsaXN0IG9mIGZpbGUgc2VnbWVudHMgaW4gb3JkZXIKKyAgICAiIiIKKyAgICBpZiBub3QgcmVxdWVzdF9zaXplOgorICAgICAgcmV0dXJuIFtdCisKKyAgICBlbmQgPSBzdGFydCArIHJlcXVlc3Rfc2l6ZQorICAgIGZ1dHVyZXMgPSBbXQorCisgICAgd2hpbGUgcmVxdWVzdF9zaXplID4gc2VsZi5fbWF4X3JlcXVlc3Rfc2l6ZToKKyAgICAgIGZ1dHVyZXMuYXBwZW5kKHNlbGYuX2dldF9zZWdtZW50KHN0YXJ0LCBzZWxmLl9tYXhfcmVxdWVzdF9zaXplKSkKKyAgICAgIHJlcXVlc3Rfc2l6ZSAtPSBzZWxmLl9tYXhfcmVxdWVzdF9zaXplCisgICAgICBzdGFydCArPSBzZWxmLl9tYXhfcmVxdWVzdF9zaXplCisgICAgaWYgc3RhcnQgPCBlbmQ6CisgICAgICBmdXR1cmVzLmFwcGVuZChzZWxmLl9nZXRfc2VnbWVudChzdGFydCwgZW5kLXN0YXJ0KSkKKyAgICByZXR1cm4gW2Z1dC5nZXRfcmVzdWx0KCkgZm9yIGZ1dCBpbiBmdXR1cmVzXQorCisgIEBuZGIudGFza2xldAorICBkZWYgX2dldF9zZWdtZW50KHNlbGYsIHN0YXJ0LCByZXF1ZXN0X3NpemUsIGNoZWNrX3Jlc3BvbnNlPVRydWUpOgorICAgICIiIkdldCBhIHNlZ21lbnQgb2YgdGhlIGZpbGUgZnJvbSBHb29nbGUgU3RvcmFnZS4KKworICAgIEFyZ3M6CisgICAgICBzdGFydDogc3RhcnQgb2Zmc2V0IG9mIHRoZSBzZWdtZW50LiBJbmNsdXNpdmUuIEhhdmUgdG8gYmUgd2l0aGluIHRoZQorICAgICAgICByYW5nZSBvZiB0aGUgZmlsZS4KKyAgICAgIHJlcXVlc3Rfc2l6ZTogbnVtYmVyIG9mIGJ5dGVzIHRvIHJlcXVlc3QuIEhhdmUgdG8gYmUgc21hbGwgZW5vdWdoCisgICAgICAgIGZvciBhIHNpbmdsZSB1cmxmZXRjaCByZXF1ZXN0LiBNYXkgZ28gb3ZlciB0aGUgbG9naWNhbCByYW5nZSBvZiB0aGUKKyAgICAgICAgZmlsZS4KKyAgICAgIGNoZWNrX3Jlc3BvbnNlOiBUcnVlIHRvIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiBHQ1MgcmVzcG9uc2UgYXV0b21hdGljYWxseQorICAgICAgICBiZWZvcmUgdGhlIGZ1dHVyZSByZXR1cm5zLiBGYWxzZSBvdGhlcndpc2UuIFNlZSBZaWVsZHMgc2VjdGlvbi4KKworICAgIFlpZWxkczoKKyAgICAgIElmIGNoZWNrX3Jlc3BvbnNlIGlzIFRydWUsIHRoZSBzZWdtZW50IFtzdGFydCwgc3RhcnQgKyByZXF1ZXN0X3NpemUpCisgICAgICBvZiB0aGUgZmlsZS4KKyAgICAgIE90aGVyd2lzZSwgYSB0dXBsZS4gVGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIHVudmVyaWZpZWQgZmlsZSBzZWdtZW50LgorICAgICAgVGhlIHNlY29uZCBlbGVtZW50IGlzIGEgY2xvc3VyZSB0aGF0IGNoZWNrcyByZXNwb25zZS4gQ2FsbGVyIHNob3VsZAorICAgICAgZmlyc3QgaW52b2tlIHRoZSBjbG9zdXJlIGJlZm9yZSBjb25zdWluZyB0aGUgZmlsZSBzZWdtZW50LgorCisgICAgUmFpc2VzOgorICAgICAgVmFsdWVFcnJvcjogaWYgdGhlIGZpbGUgaGFzIGNoYW5nZWQgd2hpbGUgcmVhZGluZy4KKyAgICAiIiIKKyAgICBlbmQgPSBzdGFydCArIHJlcXVlc3Rfc2l6ZSAtIDEKKyAgICBjb250ZW50X3JhbmdlID0gJyVkLSVkJyAlIChzdGFydCwgZW5kKQorICAgIGhlYWRlcnMgPSB7J1JhbmdlJzogJ2J5dGVzPScgKyBjb250ZW50X3JhbmdlfQorICAgIHN0YXR1cywgcmVzcF9oZWFkZXJzLCBjb250ZW50ID0geWllbGQgc2VsZi5fYXBpLmdldF9vYmplY3RfYXN5bmMoCisgICAgICAgIHNlbGYuX3BhdGgsIGhlYWRlcnM9aGVhZGVycykKKyAgICBkZWYgX2NoZWNrZXIoKToKKyAgICAgIGVycm9ycy5jaGVja19zdGF0dXMoc3RhdHVzLCBbMjAwLCAyMDZdLCBzZWxmLl9wYXRoLCBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwX2hlYWRlcnMsIGJvZHk9Y29udGVudCkKKyAgICAgIHNlbGYuX2NoZWNrX2V0YWcocmVzcF9oZWFkZXJzLmdldCgnZXRhZycpKQorICAgIGlmIGNoZWNrX3Jlc3BvbnNlOgorICAgICAgX2NoZWNrZXIoKQorICAgICAgcmFpc2UgbmRiLlJldHVybihjb250ZW50KQorICAgIHJhaXNlIG5kYi5SZXR1cm4oY29udGVudCwgX2NoZWNrZXIpCisKKyAgZGVmIF9jaGVja19ldGFnKHNlbGYsIGV0YWcpOgorICAgICIiIkNoZWNrIGlmIGV0YWcgaXMgdGhlIHNhbWUgYWNyb3NzIHJlcXVlc3RzIHRvIEdDUy4KKworICAgIElmIHNlbGYuX2V0YWcgaXMgTm9uZSwgc2V0IGl0LiBJZiBldGFnIGlzIHNldCwgY2hlY2sgdGhhdCB0aGUgbmV3CisgICAgZXRhZyBlcXVhbHMgdGhlIG9sZCBvbmUuCisKKyAgICBJbiB0aGUgX19pbml0X18gbWV0aG9kLCB3ZSBmaXJlIG9uZSBIRUFEIGFuZCBvbmUgR0VUIHJlcXVlc3QgdXNpbmcKKyAgICBuZGIgdGFza2xldC4gT25lIG9mIHRoZW0gd291bGQgcmV0dXJuIGZpcnN0IGFuZCBzZXQgdGhlIGZpcnN0IHZhbHVlLgorCisgICAgQXJnczoKKyAgICAgIGV0YWc6IGV0YWcgZnJvbSBhIEdDUyBIVFRQIHJlc3BvbnNlLiBOb25lIGlmIGV0YWcgaXMgbm90IHBhcnQgb2YgdGhlCisgICAgICAgIHJlc3BvbnNlIGhlYWRlci4gSXQgY291bGQgYmUgTm9uZSBmb3IgZXhhbXBsZSBpbiB0aGUgY2FzZSBvZiBHQ1MKKyAgICAgICAgY29tcG9zaXRlIGZpbGUuCisKKyAgICBSYWlzZXM6CisgICAgICBWYWx1ZUVycm9yOiBpZiB0d28gZXRhZ3MgYXJlIG5vdCBlcXVhbC4KKyAgICAiIiIKKyAgICBpZiBldGFnIGlzIE5vbmU6CisgICAgICByZXR1cm4KKyAgICBlbGlmIHNlbGYuX2V0YWcgaXMgTm9uZToKKyAgICAgIHNlbGYuX2V0YWcgPSBldGFnCisgICAgZWxpZiBzZWxmLl9ldGFnICE9IGV0YWc6CisgICAgICByYWlzZSBWYWx1ZUVycm9yKCdGaWxlIG9uIEdDUyBoYXMgY2hhbmdlZCB3aGlsZSByZWFkaW5nLicpCisKKyAgZGVmIGNsb3NlKHNlbGYpOgorICAgIHNlbGYuY2xvc2VkID0gVHJ1ZQorICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKyAgICBzZWxmLl9idWZmZXJfZnV0dXJlID0gTm9uZQorCisgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgcmV0dXJuIHNlbGYKKworICBkZWYgX19leGl0X18oc2VsZiwgYXR5cGUsIHZhbHVlLCB0cmFjZWJhY2spOgorICAgIHNlbGYuY2xvc2UoKQorICAgIHJldHVybiBGYWxzZQorCisgIGRlZiBzZWVrKHNlbGYsIG9mZnNldCwgd2hlbmNlPW9zLlNFRUtfU0VUKToKKyAgICAiIiJTZXQgdGhlIGZpbGUncyBjdXJyZW50IG9mZnNldC4KKworICAgIE5vdGUgaWYgdGhlIG5ldyBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kLCBpdCBpcyBhZGp1c3RlZCB0byBlaXRoZXIgMCBvciBFT0YuCisKKyAgICBBcmdzOgorICAgICAgb2Zmc2V0OiBzZWVrIG9mZnNldCBhcyBudW1iZXIuCisgICAgICB3aGVuY2U6IHNlZWsgbW9kZS4gU3VwcG9ydGVkIG1vZGVzIGFyZSBvcy5TRUVLX1NFVCAoYWJzb2x1dGUgc2VlayksCisgICAgICAgIG9zLlNFRUtfQ1VSIChzZWVrIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uKSwgYW5kIG9zLlNFRUtfRU5ECisgICAgICAgIChzZWVrIHJlbGF0aXZlIHRvIHRoZSBlbmQsIG9mZnNldCBzaG91bGQgYmUgbmVnYXRpdmUpLgorCisgICAgUmFpc2VzOgorICAgICAgSU9FcnJvcjogV2hlbiB0aGlzIGJ1ZmZlciBpcyBjbG9zZWQuCisgICAgICBWYWx1ZUVycm9yOiBXaGVuIHdoZW5jZSBpcyBpbnZhbGlkLgorICAgICIiIgorICAgIHNlbGYuX2NoZWNrX29wZW4oKQorCisgICAgc2VsZi5fYnVmZmVyLnJlc2V0KCkKKyAgICBzZWxmLl9idWZmZXJfZnV0dXJlID0gTm9uZQorCisgICAgaWYgd2hlbmNlID09IG9zLlNFRUtfU0VUOgorICAgICAgc2VsZi5fb2Zmc2V0ID0gb2Zmc2V0CisgICAgZWxpZiB3aGVuY2UgPT0gb3MuU0VFS19DVVI6CisgICAgICBzZWxmLl9vZmZzZXQgKz0gb2Zmc2V0CisgICAgZWxpZiB3aGVuY2UgPT0gb3MuU0VFS19FTkQ6CisgICAgICBzZWxmLl9vZmZzZXQgPSBzZWxmLl9maWxlX3NpemUgKyBvZmZzZXQKKyAgICBlbHNlOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcignV2hlbmNlIG1vZGUgJXMgaXMgaW52YWxpZC4nICUgc3RyKHdoZW5jZSkpCisKKyAgICBzZWxmLl9vZmZzZXQgPSBtaW4oc2VsZi5fb2Zmc2V0LCBzZWxmLl9maWxlX3NpemUpCisgICAgc2VsZi5fb2Zmc2V0ID0gbWF4KHNlbGYuX29mZnNldCwgMCkKKyAgICBpZiBzZWxmLl9yZW1haW5pbmcoKToKKyAgICAgIHNlbGYuX3JlcXVlc3RfbmV4dF9idWZmZXIoKQorCisgIGRlZiB0ZWxsKHNlbGYpOgorICAgICIiIlRlbGwgdGhlIGZpbGUncyBjdXJyZW50IG9mZnNldC4KKworICAgIFJldHVybnM6CisgICAgICBjdXJyZW50IG9mZnNldCBpbiByZWFkaW5nIHRoaXMgZmlsZS4KKworICAgIFJhaXNlczoKKyAgICAgIElPRXJyb3I6IFdoZW4gdGhpcyBidWZmZXIgaXMgY2xvc2VkLgorICAgICIiIgorICAgIHNlbGYuX2NoZWNrX29wZW4oKQorICAgIHJldHVybiBzZWxmLl9vZmZzZXQKKworICBkZWYgX2NoZWNrX29wZW4oc2VsZik6CisgICAgaWYgc2VsZi5jbG9zZWQ6CisgICAgICByYWlzZSBJT0Vycm9yKCdCdWZmZXIgaXMgY2xvc2VkLicpCisKKyAgZGVmIHNlZWthYmxlKHNlbGYpOgorICAgIHJldHVybiBUcnVlCisKKyAgZGVmIHJlYWRhYmxlKHNlbGYpOgorICAgIHJldHVybiBUcnVlCisKKyAgZGVmIHdyaXRhYmxlKHNlbGYpOgorICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIF9CdWZmZXIob2JqZWN0KToKKyAgIiIiSW4gbWVtb3J5IGJ1ZmZlci4iIiIKKworICBkZWYgX19pbml0X18oc2VsZik6CisgICAgc2VsZi5yZXNldCgpCisKKyAgZGVmIHJlc2V0KHNlbGYsIGNvbnRlbnQ9JycsIG9mZnNldD0wKToKKyAgICBzZWxmLl9idWZmZXIgPSBjb250ZW50CisgICAgc2VsZi5fb2Zmc2V0ID0gb2Zmc2V0CisKKyAgZGVmIHJlYWQoc2VsZiwgc2l6ZT0tMSk6CisgICAgIiIiUmV0dXJucyBieXRlcyBmcm9tIHNlbGYuX2J1ZmZlciBhbmQgdXBkYXRlIHJlbGF0ZWQgb2Zmc2V0cy4KKworICAgIEFyZ3M6CisgICAgICBzaXplOiBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCBzdGFydGluZyBmcm9tIGN1cnJlbnQgb2Zmc2V0LgorICAgICAgICBSZWFkIHRoZSBlbnRpcmUgYnVmZmVyIGlmIG5lZ2F0aXZlLgorCisgICAgUmV0dXJuczoKKyAgICAgIFJlcXVlc3RlZCBieXRlcyBmcm9tIGJ1ZmZlci4KKyAgICAiIiIKKyAgICBpZiBzaXplIDwgMDoKKyAgICAgIG9mZnNldCA9IGxlbihzZWxmLl9idWZmZXIpCisgICAgZWxzZToKKyAgICAgIG9mZnNldCA9IHNlbGYuX29mZnNldCArIHNpemUKKyAgICByZXR1cm4gc2VsZi5yZWFkX3RvX29mZnNldChvZmZzZXQpCisKKyAgZGVmIHJlYWRfdG9fb2Zmc2V0KHNlbGYsIG9mZnNldCk6CisgICAgIiIiUmV0dXJucyBieXRlcyBmcm9tIHNlbGYuX2J1ZmZlciBhbmQgdXBkYXRlIHJlbGF0ZWQgb2Zmc2V0cy4KKworICAgIEFyZ3M6CisgICAgICBvZmZzZXQ6IHJlYWQgZnJvbSBjdXJyZW50IG9mZnNldCB0byB0aGlzIG9mZnNldCwgZXhjbHVzaXZlLgorCisgICAgUmV0dXJuczoKKyAgICAgIFJlcXVlc3RlZCBieXRlcyBmcm9tIGJ1ZmZlci4KKyAgICAiIiIKKyAgICBhc3NlcnQgb2Zmc2V0ID49IHNlbGYuX29mZnNldAorICAgIHJlc3VsdCA9IHNlbGYuX2J1ZmZlcltzZWxmLl9vZmZzZXQ6IG9mZnNldF0KKyAgICBzZWxmLl9vZmZzZXQgKz0gbGVuKHJlc3VsdCkKKyAgICByZXR1cm4gcmVzdWx0CisKKyAgZGVmIHJlbWFpbmluZyhzZWxmKToKKyAgICByZXR1cm4gbGVuKHNlbGYuX2J1ZmZlcikgLSBzZWxmLl9vZmZzZXQKKworICBkZWYgZmluZF9uZXdsaW5lKHNlbGYsIHNpemU9LTEpOgorICAgICIiIlNlYXJjaCBmb3IgbmV3bGluZSBjaGFyIGluIGJ1ZmZlciBzdGFydGluZyBmcm9tIGN1cnJlbnQgb2Zmc2V0LgorCisgICAgQXJnczoKKyAgICAgIHNpemU6IG51bWJlciBvZiBieXRlcyB0byBzZWFyY2guIC0xIG1lYW5zIGFsbC4KKworICAgIFJldHVybnM6CisgICAgICBvZmZzZXQgb2YgbmV3bGluZSBjaGFyIGluIGJ1ZmZlci4gLTEgaWYgZG9lc24ndCBleGlzdC4KKyAgICAiIiIKKyAgICBpZiBzaXplIDwgMDoKKyAgICAgIHJldHVybiBzZWxmLl9idWZmZXIuZmluZCgnXG4nLCBzZWxmLl9vZmZzZXQpCisgICAgcmV0dXJuIHNlbGYuX2J1ZmZlci5maW5kKCdcbicsIHNlbGYuX29mZnNldCwgc2VsZi5fb2Zmc2V0ICsgc2l6ZSkKKworCitjbGFzcyBTdHJlYW1pbmdCdWZmZXIob2JqZWN0KToKKyAgIiIiQSBjbGFzcyBmb3IgY3JlYXRpbmcgbGFyZ2Ugb2JqZWN0cyB1c2luZyB0aGUgJ3Jlc3VtYWJsZScgQVBJLgorCisgIFRoZSBBUEkgaXMgYSBzdWJzZXQgb2YgdGhlIFB5dGhvbiB3cml0YWJsZSBzdHJlYW0gQVBJIHN1ZmZpY2llbnQgdG8KKyAgc3VwcG9ydCB3cml0aW5nIHppcCBmaWxlcyB1c2luZyB0aGUgemlwZmlsZSBtb2R1bGUuCisKKyAgVGhlIGV4YWN0IHNlcXVlbmNlIG9mIGNhbGxzIGFuZCB1c2Ugb2YgaGVhZGVycyBpcyBkb2N1bWVudGVkIGF0CisgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3N0b3JhZ2UvZG9jcy9kZXZlbG9wZXItZ3VpZGUjdW5rbm93bnJlc3VtYWJsZXMKKyAgIiIiCisKKyAgX2Jsb2Nrc2l6ZSA9IDI1NiAqIDEwMjQKKworICBfZmx1c2hzaXplID0gOCAqIF9ibG9ja3NpemUKKworICBfbWF4cmVxdWVzdHNpemUgPSA5ICogNCAqIF9ibG9ja3NpemUKKworICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgIGFwaSwKKyAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9Tm9uZSwKKyAgICAgICAgICAgICAgIGdjc19oZWFkZXJzPU5vbmUpOgorICAgICIiIkNvbnN0cnVjdG9yLgorCisgICAgQXJnczoKKyAgICAgIGFwaTogQSBTdG9yYWdlQXBpIGluc3RhbmNlLgorICAgICAgcGF0aDogUXVvdGVkL2VzY2FwZWQgcGF0aCB0byB0aGUgb2JqZWN0LCBlLmcuIC9teWJ1Y2tldC9teWZpbGUKKyAgICAgIGNvbnRlbnRfdHlwZTogT3B0aW9uYWwgY29udGVudC10eXBlOyBEZWZhdWx0IHZhbHVlIGlzCisgICAgICAgIGRlbGVnYXRlIHRvIEdvb2dsZSBDbG91ZCBTdG9yYWdlLgorICAgICAgZ2NzX2hlYWRlcnM6IGFkZGl0aW9uYWwgZ3MgaGVhZGVycyBhcyBhIHN0ci0+c3RyIGRpY3QsIGUuZworICAgICAgICB7J3gtZ29vZy1hY2wnOiAncHJpdmF0ZScsICd4LWdvb2ctbWV0YS1mb28nOiAnZm9vJ30uCisgICAgUmFpc2VzOgorICAgICAgSU9FcnJvcjogV2hlbiB0aGlzIGxvY2F0aW9uIGNhbiBub3QgYmUgZm91bmQuCisgICAgIiIiCisgICAgYXNzZXJ0IHNlbGYuX21heHJlcXVlc3RzaXplID4gc2VsZi5fYmxvY2tzaXplCisgICAgYXNzZXJ0IHNlbGYuX21heHJlcXVlc3RzaXplICUgc2VsZi5fYmxvY2tzaXplID09IDAKKyAgICBhc3NlcnQgc2VsZi5fbWF4cmVxdWVzdHNpemUgPj0gc2VsZi5fZmx1c2hzaXplCisKKyAgICBzZWxmLl9hcGkgPSBhcGkKKyAgICBzZWxmLl9wYXRoID0gcGF0aAorCisgICAgc2VsZi5uYW1lID0gYXBpX3V0aWxzLl91bnF1b3RlX2ZpbGVuYW1lKHBhdGgpCisgICAgc2VsZi5jbG9zZWQgPSBGYWxzZQorCisgICAgc2VsZi5fYnVmZmVyID0gY29sbGVjdGlvbnMuZGVxdWUoKQorICAgIHNlbGYuX2J1ZmZlcmVkID0gMAorICAgIHNlbGYuX3dyaXR0ZW4gPSAwCisgICAgc2VsZi5fb2Zmc2V0ID0gMAorCisgICAgaGVhZGVycyA9IHsneC1nb29nLXJlc3VtYWJsZSc6ICdzdGFydCd9CisgICAgaWYgY29udGVudF90eXBlOgorICAgICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSBjb250ZW50X3R5cGUKKyAgICBpZiBnY3NfaGVhZGVyczoKKyAgICAgIGhlYWRlcnMudXBkYXRlKGdjc19oZWFkZXJzKQorICAgIHN0YXR1cywgcmVzcF9oZWFkZXJzLCBjb250ZW50ID0gc2VsZi5fYXBpLnBvc3Rfb2JqZWN0KHBhdGgsIGhlYWRlcnM9aGVhZGVycykKKyAgICBlcnJvcnMuY2hlY2tfc3RhdHVzKHN0YXR1cywgWzIwMV0sIHBhdGgsIGhlYWRlcnMsIHJlc3BfaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk9Y29udGVudCkKKyAgICBsb2MgPSByZXNwX2hlYWRlcnMuZ2V0KCdsb2NhdGlvbicpCisgICAgaWYgbm90IGxvYzoKKyAgICAgIHJhaXNlIElPRXJyb3IoJ05vIGxvY2F0aW9uIGhlYWRlciBmb3VuZCBpbiAyMDEgcmVzcG9uc2UnKQorICAgIHBhcnNlZCA9IHVybHBhcnNlLnVybHBhcnNlKGxvYykKKyAgICBzZWxmLl9wYXRoX3dpdGhfdG9rZW4gPSAnJXM/JXMnICUgKHNlbGYuX3BhdGgsIHBhcnNlZC5xdWVyeSkKKworICBkZWYgX19nZXRzdGF0ZV9fKHNlbGYpOgorICAgICIiIlN0b3JlIHN0YXRlIGFzIHBhcnQgb2Ygc2VyaWFsaXphdGlvbi9waWNrbGluZy4KKworICAgIFRoZSBjb250ZW50cyBvZiB0aGUgd3JpdGUgYnVmZmVyIGFyZSBzdG9yZWQuIFdyaXRlcyB0byB0aGUgdW5kZXJseWluZworICAgIHN0b3JhZ2UgYXJlIHJlcXVpcmVkIHRvIGJlIG9uIGJsb2NrIGJvdW5kYXJpZXMgKF9ibG9ja3NpemUpIGV4Y2VwdCBmb3IgdGhlCisgICAgbGFzdCB3cml0ZS4gSW4gdGhlIHdvcnN0IGNhc2UgdGhlIHBpY2tsZWQgdmVyc2lvbiBvZiB0aGlzIG9iamVjdCBtYXkgYmUKKyAgICBzbGlnaHRseSBsYXJnZXIgdGhhbiB0aGUgYmxvY2tzaXplLgorCisgICAgUmV0dXJuczoKKyAgICAgIEEgZGljdGlvbmFyeSB3aXRoIHRoZSBzdGF0ZSBvZiB0aGlzIG9iamVjdAorCisgICAgIiIiCisgICAgcmV0dXJuIHsnYXBpJzogc2VsZi5fYXBpLAorICAgICAgICAgICAgJ3BhdGgnOiBzZWxmLl9wYXRoLAorICAgICAgICAgICAgJ3BhdGhfdG9rZW4nOiBzZWxmLl9wYXRoX3dpdGhfdG9rZW4sCisgICAgICAgICAgICAnYnVmZmVyJzogc2VsZi5fYnVmZmVyLAorICAgICAgICAgICAgJ2J1ZmZlcmVkJzogc2VsZi5fYnVmZmVyZWQsCisgICAgICAgICAgICAnd3JpdHRlbic6IHNlbGYuX3dyaXR0ZW4sCisgICAgICAgICAgICAnb2Zmc2V0Jzogc2VsZi5fb2Zmc2V0LAorICAgICAgICAgICAgJ2Nsb3NlZCc6IHNlbGYuY2xvc2VkfQorCisgIGRlZiBfX3NldHN0YXRlX18oc2VsZiwgc3RhdGUpOgorICAgICIiIlJlc3RvcmUgc3RhdGUgYXMgcGFydCBvZiBkZXNlcmlhbGl6YXRpb24vdW5waWNrbGluZy4KKworICAgIEFyZ3M6CisgICAgICBzdGF0ZTogdGhlIGRpY3Rpb25hcnkgZnJvbSBhIF9fZ2V0c3RhdGVfXyBjYWxsCisgICAgIiIiCisgICAgc2VsZi5fYXBpID0gc3RhdGVbJ2FwaSddCisgICAgc2VsZi5fcGF0aF93aXRoX3Rva2VuID0gc3RhdGVbJ3BhdGhfdG9rZW4nXQorICAgIHNlbGYuX2J1ZmZlciA9IHN0YXRlWydidWZmZXInXQorICAgIHNlbGYuX2J1ZmZlcmVkID0gc3RhdGVbJ2J1ZmZlcmVkJ10KKyAgICBzZWxmLl93cml0dGVuID0gc3RhdGVbJ3dyaXR0ZW4nXQorICAgIHNlbGYuX29mZnNldCA9IHN0YXRlWydvZmZzZXQnXQorICAgIHNlbGYuY2xvc2VkID0gc3RhdGVbJ2Nsb3NlZCddCisgICAgc2VsZi5fcGF0aCA9IHN0YXRlWydwYXRoJ10KKyAgICBzZWxmLm5hbWUgPSBhcGlfdXRpbHMuX3VucXVvdGVfZmlsZW5hbWUoc2VsZi5fcGF0aCkKKworICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgIiIiV3JpdGUgc29tZSBieXRlcy4KKworICAgIEFyZ3M6CisgICAgICBkYXRhOiBkYXRhIHRvIHdyaXRlLiBzdHIuCisKKyAgICBSYWlzZXM6CisgICAgICBUeXBlRXJyb3I6IGlmIGRhdGEgaXMgbm90IG9mIHR5cGUgc3RyLgorICAgICIiIgorICAgIHNlbGYuX2NoZWNrX29wZW4oKQorICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIHN0cik6CisgICAgICByYWlzZSBUeXBlRXJyb3IoJ0V4cGVjdGVkIHN0ciBidXQgZ290ICVzLicgJSB0eXBlKGRhdGEpKQorICAgIGlmIG5vdCBkYXRhOgorICAgICAgcmV0dXJuCisgICAgc2VsZi5fYnVmZmVyLmFwcGVuZChkYXRhKQorICAgIHNlbGYuX2J1ZmZlcmVkICs9IGxlbihkYXRhKQorICAgIHNlbGYuX29mZnNldCArPSBsZW4oZGF0YSkKKyAgICBpZiBzZWxmLl9idWZmZXJlZCA+PSBzZWxmLl9mbHVzaHNpemU6CisgICAgICBzZWxmLl9mbHVzaCgpCisKKyAgZGVmIGZsdXNoKHNlbGYpOgorICAgICIiIkZsdXNoIGFzIG11Y2ggYXMgcG9zc2libGUgdG8gR0NTLgorCisgICAgR0NTICpyZXF1aXJlcyogdGhhdCBhbGwgd3JpdGVzIGV4Y2VwdCBmb3IgdGhlIGZpbmFsIG9uZSBhbGlnbiBvbgorICAgIDI1NktCIGJvdW5kYXJpZXMuIFNvIHRoZSBpbnRlcm5hbCBidWZmZXIgbWF5IHN0aWxsIGhhdmUgPCAyNTZLQiBieXRlcyBsZWZ0CisgICAgYWZ0ZXIgZmx1c2guCisgICAgIiIiCisgICAgc2VsZi5fY2hlY2tfb3BlbigpCisgICAgc2VsZi5fZmx1c2goZmluaXNoPUZhbHNlKQorCisgIGRlZiB0ZWxsKHNlbGYpOgorICAgICIiIlJldHVybiB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHBhc3NlZCB0byB3cml0ZSgpIHNvIGZhci4KKworICAgIChUaGVyZSBpcyBubyBzZWVrKCkgbWV0aG9kLikKKyAgICAiIiIKKyAgICByZXR1cm4gc2VsZi5fb2Zmc2V0CisKKyAgZGVmIGNsb3NlKHNlbGYpOgorICAgICIiIkZsdXNoIHRoZSBidWZmZXIgYW5kIGZpbmFsaXplIHRoZSBmaWxlLgorCisgICAgV2hlbiB0aGlzIHJldHVybnMgdGhlIG5ldyBmaWxlIGlzIGF2YWlsYWJsZSBmb3IgcmVhZGluZy4KKyAgICAiIiIKKyAgICBpZiBub3Qgc2VsZi5jbG9zZWQ6CisgICAgICBzZWxmLmNsb3NlZCA9IFRydWUKKyAgICAgIHNlbGYuX2ZsdXNoKGZpbmlzaD1UcnVlKQorICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorCisgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgcmV0dXJuIHNlbGYKKworICBkZWYgX19leGl0X18oc2VsZiwgYXR5cGUsIHZhbHVlLCB0cmFjZWJhY2spOgorICAgIHNlbGYuY2xvc2UoKQorICAgIHJldHVybiBGYWxzZQorCisgIGRlZiBfZmx1c2goc2VsZiwgZmluaXNoPUZhbHNlKToKKyAgICAiIiJJbnRlcm5hbCBBUEkgdG8gZmx1c2guCisKKyAgICBCdWZmZXIgaXMgZmx1c2hlZCB0byBHQ1Mgb25seSB3aGVuIHRoZSB0b3RhbCBhbW91bnQgb2YgYnVmZmVyZWQgZGF0YSBpcyBhdAorICAgIGxlYXN0IHNlbGYuX2Jsb2Nrc2l6ZSwgb3IgdG8gZmx1c2ggdGhlIGZpbmFsIChpbmNvbXBsZXRlKSBibG9jayBvZgorICAgIHRoZSBmaWxlIHdpdGggZmluaXNoPVRydWUuCisgICAgIiIiCisgICAgd2hpbGUgKChmaW5pc2ggYW5kIHNlbGYuX2J1ZmZlcmVkID49IDApIG9yCisgICAgICAgICAgIChub3QgZmluaXNoIGFuZCBzZWxmLl9idWZmZXJlZCA+PSBzZWxmLl9ibG9ja3NpemUpKToKKyAgICAgIHRtcF9idWZmZXIgPSBbXQorICAgICAgdG1wX2J1ZmZlcl9sZW4gPSAwCisKKyAgICAgIGV4Y2VzcyA9IDAKKyAgICAgIHdoaWxlIHNlbGYuX2J1ZmZlcjoKKyAgICAgICAgYnVmID0gc2VsZi5fYnVmZmVyLnBvcGxlZnQoKQorICAgICAgICBzaXplID0gbGVuKGJ1ZikKKyAgICAgICAgc2VsZi5fYnVmZmVyZWQgLT0gc2l6ZQorICAgICAgICB0bXBfYnVmZmVyLmFwcGVuZChidWYpCisgICAgICAgIHRtcF9idWZmZXJfbGVuICs9IHNpemUKKyAgICAgICAgaWYgdG1wX2J1ZmZlcl9sZW4gPj0gc2VsZi5fbWF4cmVxdWVzdHNpemU6CisgICAgICAgICAgZXhjZXNzID0gdG1wX2J1ZmZlcl9sZW4gLSBzZWxmLl9tYXhyZXF1ZXN0c2l6ZQorICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIG5vdCBmaW5pc2ggYW5kICgKKyAgICAgICAgICAgIHRtcF9idWZmZXJfbGVuICUgc2VsZi5fYmxvY2tzaXplICsgc2VsZi5fYnVmZmVyZWQgPAorICAgICAgICAgICAgc2VsZi5fYmxvY2tzaXplKToKKyAgICAgICAgICBleGNlc3MgPSB0bXBfYnVmZmVyX2xlbiAlIHNlbGYuX2Jsb2Nrc2l6ZQorICAgICAgICAgIGJyZWFrCisKKyAgICAgIGlmIGV4Y2VzczoKKyAgICAgICAgb3ZlciA9IHRtcF9idWZmZXIucG9wKCkKKyAgICAgICAgc2l6ZSA9IGxlbihvdmVyKQorICAgICAgICBhc3NlcnQgc2l6ZSA+PSBleGNlc3MKKyAgICAgICAgdG1wX2J1ZmZlcl9sZW4gLT0gc2l6ZQorICAgICAgICBoZWFkLCB0YWlsID0gb3Zlcls6LWV4Y2Vzc10sIG92ZXJbLWV4Y2VzczpdCisgICAgICAgIHNlbGYuX2J1ZmZlci5hcHBlbmRsZWZ0KHRhaWwpCisgICAgICAgIHNlbGYuX2J1ZmZlcmVkICs9IGxlbih0YWlsKQorICAgICAgICBpZiBoZWFkOgorICAgICAgICAgIHRtcF9idWZmZXIuYXBwZW5kKGhlYWQpCisgICAgICAgICAgdG1wX2J1ZmZlcl9sZW4gKz0gbGVuKGhlYWQpCisKKyAgICAgIGRhdGEgPSAnJy5qb2luKHRtcF9idWZmZXIpCisgICAgICBmaWxlX2xlbiA9ICcqJworICAgICAgaWYgZmluaXNoIGFuZCBub3Qgc2VsZi5fYnVmZmVyZWQ6CisgICAgICAgIGZpbGVfbGVuID0gc2VsZi5fd3JpdHRlbiArIGxlbihkYXRhKQorICAgICAgc2VsZi5fc2VuZF9kYXRhKGRhdGEsIHNlbGYuX3dyaXR0ZW4sIGZpbGVfbGVuKQorICAgICAgc2VsZi5fd3JpdHRlbiArPSBsZW4oZGF0YSkKKyAgICAgIGlmIGZpbGVfbGVuICE9ICcqJzoKKyAgICAgICAgYnJlYWsKKworICBkZWYgX3NlbmRfZGF0YShzZWxmLCBkYXRhLCBzdGFydF9vZmZzZXQsIGZpbGVfbGVuKToKKyAgICAiIiJTZW5kIHRoZSBibG9jayB0byB0aGUgc3RvcmFnZSBzZXJ2aWNlLgorCisgICAgVGhpcyBpcyBhIHV0aWxpdHkgbWV0aG9kIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHNlbGYuCisKKyAgICBBcmdzOgorICAgICAgZGF0YTogZGF0YSB0byBzZW5kIGluIHN0ci4KKyAgICAgIHN0YXJ0X29mZnNldDogc3RhcnQgb2Zmc2V0IG9mIHRoZSBkYXRhIGluIHJlbGF0aW9uIHRvIHRoZSBmaWxlLgorICAgICAgZmlsZV9sZW46IGFuIGludCBpZiB0aGlzIGlzIHRoZSBsYXN0IGRhdGEgdG8gYXBwZW5kIHRvIHRoZSBmaWxlLgorICAgICAgICBPdGhlcndpc2UgJyonLgorICAgICIiIgorICAgIGhlYWRlcnMgPSB7fQorICAgIGVuZF9vZmZzZXQgPSBzdGFydF9vZmZzZXQgKyBsZW4oZGF0YSkgLSAxCisKKyAgICBpZiBkYXRhOgorICAgICAgaGVhZGVyc1snY29udGVudC1yYW5nZSddID0gKCdieXRlcyAlZC0lZC8lcycgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGFydF9vZmZzZXQsIGVuZF9vZmZzZXQsIGZpbGVfbGVuKSkKKyAgICBlbHNlOgorICAgICAgaGVhZGVyc1snY29udGVudC1yYW5nZSddID0gKCdieXRlcyAqLyVzJyAlIGZpbGVfbGVuKQorCisgICAgc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzLCBjb250ZW50ID0gc2VsZi5fYXBpLnB1dF9vYmplY3QoCisgICAgICAgIHNlbGYuX3BhdGhfd2l0aF90b2tlbiwgcGF5bG9hZD1kYXRhLCBoZWFkZXJzPWhlYWRlcnMpCisgICAgaWYgZmlsZV9sZW4gPT0gJyonOgorICAgICAgZXhwZWN0ZWQgPSAzMDgKKyAgICBlbHNlOgorICAgICAgZXhwZWN0ZWQgPSAyMDAKKyAgICBlcnJvcnMuY2hlY2tfc3RhdHVzKHN0YXR1cywgW2V4cGVjdGVkXSwgc2VsZi5fcGF0aCwgaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnMsIGNvbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICB7J3VwbG9hZF9wYXRoJzogc2VsZi5fcGF0aF93aXRoX3Rva2VufSkKKworICBkZWYgX2dldF9vZmZzZXRfZnJvbV9nY3Moc2VsZik6CisgICAgIiIiR2V0IHRoZSBsYXN0IG9mZnNldCB0aGF0IGhhcyBiZWVuIHdyaXR0ZW4gdG8gR0NTLgorCisgICAgVGhpcyBpcyBhIHV0aWxpdHkgbWV0aG9kIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHNlbGYuCisKKyAgICBSZXR1cm5zOgorICAgICAgYW4gaW50IG9mIHRoZSBsYXN0IG9mZnNldCB3cml0dGVuIHRvIEdDUyBieSB0aGlzIHVwbG9hZCwgaW5jbHVzaXZlLgorICAgICAgLTEgbWVhbnMgbm90aGluZyBoYXMgYmVlbiB3cml0dGVuLgorICAgICIiIgorICAgIGhlYWRlcnMgPSB7J2NvbnRlbnQtcmFuZ2UnOiAnYnl0ZXMgKi8qJ30KKyAgICBzdGF0dXMsIHJlc3BvbnNlX2hlYWRlcnMsIGNvbnRlbnQgPSBzZWxmLl9hcGkucHV0X29iamVjdCgKKyAgICAgICAgc2VsZi5fcGF0aF93aXRoX3Rva2VuLCBoZWFkZXJzPWhlYWRlcnMpCisgICAgZXJyb3JzLmNoZWNrX3N0YXR1cyhzdGF0dXMsIFszMDhdLCBzZWxmLl9wYXRoLCBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVycywgY29udGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsndXBsb2FkX3BhdGgnOiBzZWxmLl9wYXRoX3dpdGhfdG9rZW59KQorICAgIHZhbCA9IHJlc3BvbnNlX2hlYWRlcnMuZ2V0KCdyYW5nZScpCisgICAgaWYgdmFsIGlzIE5vbmU6CisgICAgICByZXR1cm4gLTEKKyAgICBfLCBvZmZzZXQgPSB2YWwucnNwbGl0KCctJywgMSkKKyAgICByZXR1cm4gaW50KG9mZnNldCkKKworICBkZWYgX2ZvcmNlX2Nsb3NlKHNlbGYsIGZpbGVfbGVuZ3RoPU5vbmUpOgorICAgICIiIkNsb3NlIHRoaXMgYnVmZmVyIG9uIGZpbGVfbGVuZ3RoLgorCisgICAgRmluYWxpemUgdGhpcyB1cGxvYWQgaW1tZWRpYXRlbHkgb24gZmlsZV9sZW5ndGguCisgICAgQ29udGVudHMgdGhhdCBhcmUgc3RpbGwgaW4gbWVtb3J5IHdpbGwgbm90IGJlIHVwbG9hZGVkLgorCisgICAgVGhpcyBpcyBhIHV0aWxpdHkgbWV0aG9kIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHNlbGYuCisKKyAgICBBcmdzOgorICAgICAgZmlsZV9sZW5ndGg6IGZpbGUgbGVuZ3RoLiBNdXN0IG1hdGNoIHdoYXQgaGFzIGJlZW4gdXBsb2FkZWQuIElmIE5vbmUsCisgICAgICAgIGl0IHdpbGwgYmUgcXVlcmllZCBmcm9tIEdDUy4KKyAgICAiIiIKKyAgICBpZiBmaWxlX2xlbmd0aCBpcyBOb25lOgorICAgICAgZmlsZV9sZW5ndGggPSBzZWxmLl9nZXRfb2Zmc2V0X2Zyb21fZ2NzKCkgKyAxCisgICAgc2VsZi5fc2VuZF9kYXRhKCcnLCAwLCBmaWxlX2xlbmd0aCkKKworICBkZWYgX2NoZWNrX29wZW4oc2VsZik6CisgICAgaWYgc2VsZi5jbG9zZWQ6CisgICAgICByYWlzZSBJT0Vycm9yKCdCdWZmZXIgaXMgY2xvc2VkLicpCisKKyAgZGVmIHNlZWthYmxlKHNlbGYpOgorICAgIHJldHVybiBGYWxzZQorCisgIGRlZiByZWFkYWJsZShzZWxmKToKKyAgICByZXR1cm4gRmFsc2UKKworICBkZWYgd3JpdGFibGUoc2VsZik6CisgICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS90ZXN0X3V0aWxzLnB5IGIvdHJhY2Utdmlld2VyL3BlcmZfaW5zaWdodHMvdGhpcmRfcGFydHkvY2xvdWRzdG9yYWdlL3Rlc3RfdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRkODI0NwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci9wZXJmX2luc2lnaHRzL3RoaXJkX3BhcnR5L2Nsb3Vkc3RvcmFnZS90ZXN0X3V0aWxzLnB5CkBAIC0wLDAgKzEsMjUgQEAKKyMgQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisjIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisjICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELAorIyBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYworIyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisiIiJVdGlscyBmb3IgdGVzdGluZy4iIiIKKworCitjbGFzcyBNb2NrVXJsRmV0Y2hSZXN1bHQob2JqZWN0KToKKworICBkZWYgX19pbml0X18oc2VsZiwgc3RhdHVzLCBoZWFkZXJzLCBib2R5KToKKyAgICBzZWxmLnN0YXR1c19jb2RlID0gc3RhdHVzCisgICAgc2VsZi5oZWFkZXJzID0gaGVhZGVycworICAgIHNlbGYuY29udGVudCA9IGJvZHkKKyAgICBzZWxmLmNvbnRlbnRfd2FzX3RydW5jYXRlZCA9IEZhbHNlCisgICAgc2VsZi5maW5hbF91cmwgPSBOb25lCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvcnVuX2Rldl9zZXJ2ZXIgYi90cmFjZS12aWV3ZXIvcnVuX2Rldl9zZXJ2ZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGRkNjg2NmQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3J1bl9kZXZfc2VydmVyCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgc3lzCi0KLWZyb20gaG9va3MgaW1wb3J0IGluc3RhbGwKLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCB0cmFjZV92aWV3ZXJfZGV2X3NlcnZlcgotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICBpbnN0YWxsLkluc3RhbGxIb29rcygpCi0gIHN5cy5leGl0KHRyYWNlX3ZpZXdlcl9kZXZfc2VydmVyLk1haW4oc3lzLmFyZ3ZbMTpdKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9ydW5fdGVzdHMgYi90cmFjZS12aWV3ZXIvcnVuX3Rlc3RzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBmNGQ0NWYxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci9ydW5fdGVzdHMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBzeXMKLQotZnJvbSBob29rcyBpbXBvcnQgaW5zdGFsbAotCi1pbXBvcnQgdHJhY2Vfdmlld2VyICMgQnJpbmdzIGluIHR2Y20gYmluZGluZ3MuCi1mcm9tIHR2Y20gaW1wb3J0IHRlc3RfcnVubmVyCi1pbXBvcnQgdHZjbQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIGluc3RhbGwuSW5zdGFsbEhvb2tzKCkKLQotICBydW5uZXIgPSB0ZXN0X3J1bm5lci5UZXN0UnVubmVyKCkKLSAgcnVubmVyLkFkZE1vZHVsZSh0dmNtKQotICBydW5uZXIuQWRkTW9kdWxlKHRyYWNlX3ZpZXdlcikKLSAgc3lzLmV4aXQocnVubmVyLk1haW4oKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvbWVtb3J5X2R1bXBzLmpzb24gYi90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL21lbW9yeV9kdW1wcy5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjdiNjVhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvbWVtb3J5X2R1bXBzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi17InRyYWNlRXZlbnRzIjpbeyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NDcwNzYzOSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjNiOTI1MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI2MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODA0MDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ2MDAwIiwicHNzIjoiMTZlNDAwIiwic2hyIjoiYzcwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWU1MDAwIiwicHNzIjoiMWU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjODAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTQwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDQwMCIsInNociI6IjJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDQwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjExOWMwMCIsInNociI6IjQzZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2OTAwMCIsInNociI6IjFkMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI2NTkwMDAifX19LCJ0dHMiOjI0NjE1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoteyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NDgyMzYzOSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjRjNjRhMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI2MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiN2M4MDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ2MDAwIiwicHNzIjoiMTZlODAwIiwic2hyIjoiYzcwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmVmMDAwIiwicHNzIjoiMmVmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjAwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI5YzgwMCIsInNociI6IjJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZjgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjEwZTgwMCIsInNociI6IjQzZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NjAwMCIsInNociI6IjFkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI3NjEwMDAifX19LCJ0dHMiOjM3OTAyLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZCJ9LAoteyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NDg5NDcwNiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjVkMTU0MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI3MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiN2JjMDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZGMwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ3MDAwIiwicHNzIjoiMTZmODAwIiwic2hyIjoiYzYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiM2Y5MDAwIiwicHNzIjoiM2Y5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI5OTgwMCIsInNociI6IjJjYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZjgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjEwYzAwMCIsInNociI6IjQzZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NWMwMCIsInNociI6IjFkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOWMwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMjg3MDAwMCJ9fX0sInR0cyI6NTYxMjgsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCi17InBpZCI6MTUyOTAsInRpZCI6MTUyOTIsInRzIjoxNTc2NjU1MDQxMTQzLCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiNmRjNWUwIn0sIm91dGVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjgwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI3YmMwMCIsInNociI6IjIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkYzAwIiwic2hyIjoiNDQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiMWNjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNDZkMTQyMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA0NmQxODAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDFhMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxMzgwNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNhY2I2MzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYWNiNjMwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNhY2I2MzFmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwOTE0MDAwIiwic3oiOiIxZWMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBjMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBjMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzcwMDAiLCJwc3MiOiIzNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGUwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZTNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBmMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwMCIsInBzcyI6IjgwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwZjA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBmZmYwMDAiLCJzeiI6IjFmOTE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNWM2NmQwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE1YzY2ZDAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTZiNmU5ZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGE2ZmEwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwYTZmYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NmUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY2ZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU1MDAwIiwicHNzIjoiNTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY2ZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NmZmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY3MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjcwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjcxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQ3OGY1MTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTE0MDAwIiwicHNzIjoiMTE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNWVmMjAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDVlZjIyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNWVmMzAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDVlZjMyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMDAiLCJwc3MiOiI3MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2MwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2RmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDMwMDAiLCJwc3MiOiJkMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZGRkZTJmMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZkOTJkMWNmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmZkOTJkMWRmMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjMyOGM2NTU3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiZTAwMCIsInNociI6ImQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0NzAwMCIsInBzcyI6IjE2ZmMwMCIsInNociI6ImM2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjUwNjAwMCIsInBzcyI6IjUwNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM3ODI5ZjkwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiI0NDAwMCIsInBzcyI6IjQ0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5OWEyY2EwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQwNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxNF0iLCJwZiI6Niwic2EiOiI3Zjk5NWQwNGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkODRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDVdIiwicGYiOjYsInNhIjoiN2Y5OTVkODRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZTA0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZTA0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDBdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5NF0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTNdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkyXSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjU5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEzODAwIiwic2hyIjoiNjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOTk4MDAiLCJzaHIiOiIyY2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWY4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIxMGJjMDAiLCJzaHIiOiI0M2QwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjU4MDAiLCJzaHIiOiIxZDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI5OWMwMDAifX19LCJ0dHMiOjcxMDMxLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoteyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NTEzNDIxMywicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjdlNzY4MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI5MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiN2JjMDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZGMwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImVjMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDgwMDAiLCJwc3MiOiIxNzA0MDAiLCJzaHIiOiJjNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI2MTEwMDAiLCJwc3MiOiI2MTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiI3MDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNzgyOWY5MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDQwMDAiLCJwc3MiOiI0NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOTlhMmNhMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkMDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTRdIiwicGYiOjYsInNhIjoiN2Y5OTVkMDRhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDg0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDg0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDFdIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAwXSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5NV0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTRdIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkzXSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Ml0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMzgwMCIsInNociI6IjYzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6Ijk3MDAwIiwic2hyIjoiMmNhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTBhNDAwIiwic2hyIjoiNDNlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY1MDAwIiwic2hyIjoiMWQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyYWFiMDAwIn19fSwidHRzIjo5MDI2NCwiaWQiOiIweGFmNTkzYjRjODVlZmRjZjgifSwKLXsicGlkIjoxNTI5MCwidGlkIjoxNTI5MiwidHMiOjE1NzY2NTUyMzM0OTAsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI4ZjI3MjAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiYTAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjdiYzAwIiwic2hyIjoiMjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxY2MwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxNDIwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDQ2ZDE4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNDZkMWEwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzEzODA3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2FjYjYzMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNhY2I2MzAxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2FjYjYzMWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjA5MTQwMDAiLCJzeiI6IjFlYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBiMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGIwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBjMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBkMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBlMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwZTA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBmMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAwIiwicHNzIjoiODAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBmMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGZmZjAwMCIsInN6IjoiMWY5MTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNWM2NmQwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE1YzY2ZDAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNWM2NmQxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNmI2ZTllMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGE2ZmEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwYTZmYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGE2ZmJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjZlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NmUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTUwMDAiLCJwc3MiOiI1NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjZlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NzAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY3MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NzFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDc4ZjUxMDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMTQwMDAiLCJwc3MiOiIxMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1ZWYyMDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNWVmMjIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMDAiLCJwc3MiOiIyMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1ZWYzMDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNWVmMzIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwMCIsInBzcyI6IjcwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2EwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNiZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiJkMzAwMCIsInBzcyI6ImQzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkZGRlMmYwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmQ5MmQxY2YwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZmQ5MmQxZGYwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMzI4YzY1NTc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE3MDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ4MDAwIiwicHNzIjoiMTcwODAwIiwic2hyIjoiYzUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzFjMDAwIiwicHNzIjoiNzFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI5NjQwMCIsInNociI6IjJjYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZjgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjEwOWMwMCIsInNociI6IjQzZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6Ijk0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NTAwMCIsInNociI6IjFkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOWMwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMmJhZDAwMCJ9fX0sInR0cyI6MTA5ODQzLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYSJ9LHsicGlkIjoxNTI5MCwidGlkIjowLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0MH19LAoteyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0sCi17InBpZCI6MTUyOTAsInRpZCI6MTUyOTIsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3NfbmFtZSIsImFyZ3MiOnsibmFtZSI6IlJlbmRlcmVyIn19LAoteyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkwLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTF9fSwKLXsicGlkIjoxNTI5MCwidGlkIjoxNTI5MiwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDaHJvbWVfQ2hpbGRJT1RocmVhZCJ9fSx7InBpZCI6MTUyODUsInRpZCI6MTUyODYsInRzIjoxNTc2NjU0NzA3NjI1LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiM2NhMDkwIn0sIm91dGVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjUwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI3ZGMwMCIsInNociI6IjIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJlMDAwIiwic2hyIjoiNDQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiMWNjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiZTk5NDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYwMDAwIiwicHNzIjoiNjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZiZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2JmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTFlZTIzYzAwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYzIwMDAwIiwic3oiOiIzYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMTI2Y2M1NmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJkNjcwMDAiLCJzeiI6IjE5OTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2ViZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYmYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzAwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMjA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYyMDAwIiwicHNzIjoiNjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMzA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjM2ZmMDAwIiwic3oiOiIxZjk2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1ODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1OTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwZmY1ZDAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMjk5MTA1OGQwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMjk5MTA1OWQwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyYWNiMmEwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2M2Y4NGM0MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM1ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjM5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJjNmQ2MmMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiZDAwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MzAwMCIsInBzcyI6IjE2YjQwMCIsInNociI6ImM3MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjFjYzAwMCIsInBzcyI6IjFjYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDcwMDAiLCJwc3MiOiI0NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNjYzYTBiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzN2I5MTNiMDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MzAwMCIsInBzcyI6IjYzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE1ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1ZDAwMCIsInBzcyI6IjVkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc5ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDg0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzExXSIsInBmIjo2LCJzYSI6IjdmOTk1ZDg0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOV0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTldIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk4XSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5MV0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODldIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg4XSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWM4MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJjNDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMzgwMCIsInNociI6IjYyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImE5ODAwIiwic2hyIjoiMmI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxYzAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjE0YWMwMCIsInNociI6IjQ3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YTAwMCIsInNociI6IjFkNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI0ZDcwMDAifX19LCJ0dHMiOjI4OTg4LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoteyJwaWQiOjE1Mjg1LCJ0aWQiOjE1Mjg2LCJ0cyI6MTU3NjY1NDgyMzY1OSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjRkNjk5MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI2MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiN2EwMDAiLCJzaHIiOiIyMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmU5OTQwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZWUyM2MwMDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2MyMDAwMCIsInN6IjoiM2MwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjEyNmNjNTZmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZDY3MDAwIiwic3oiOiIxOTkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYmYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWJmMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzAwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMwMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMxMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzIwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MjAwMCIsInBzcyI6IjYyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzMwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzNmZjAwMCIsInN6IjoiMWY5NjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTgwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU4MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTkwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU5MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMGZmNWQwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjI5OTEwNThkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjI5OTEwNTlkMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMmFjYjJhMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjNmODRjNDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZkNjJjMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDMwMDAiLCJwc3MiOiIxNmI4MDAiLCJzaHIiOiJjNzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiIyZDYwMDAiLCJwc3MiOiIyZDYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQ3MDAwIiwicHNzIjoiNDcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzY2M2EwYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzdiOTEzYjAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjMwMDAiLCJwc3MiOiI2MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWQwMDAiLCJwc3MiOiI1ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3OWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDldIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTFdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODZdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MjAwMCIsInNociI6IjJiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjhjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxM2UwMDAiLCJzaHIiOiI0N2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjcwMDAiLCJzaHIiOiIxZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyNWRmMDAwIn19fSwidHRzIjo0MjMxOSwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmQifSwKLXsicGlkIjoxNTI4NSwidGlkIjoxNTI4NiwidHMiOjE1NzY2NTQ4OTQ2OTcsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI1ZTEwZTAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiNzAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijc5ODAwIiwic2hyIjoiMjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxY2MwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJlOTk0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMDAiLCJwc3MiOiI2MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmJmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWVlMjNjMDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNjMjAwMDAiLCJzeiI6IjNjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIxMjZjYzU2ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmQ2NzAwMCIsInN6IjoiMTk5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWJmMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2ViZjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMwMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMxMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMyMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzcwMDAiLCJwc3MiOiIzNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMyMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMzMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjIwMDAiLCJwc3MiOiI2MjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMzMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzZmYwMDAiLCJzeiI6IjFmOTY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU4MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1ODIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU5MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1OTIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjBmZjVkMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyOTkxMDU4ZDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIyOTkxMDU5ZDAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjJhY2IyYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjYzZjg0YzQxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzVmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiMzkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZDYyYzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ0MDAwIiwicHNzIjoiMTZjODAwIiwic2hyIjoiYzYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiM2UxMDAwIiwicHNzIjoiM2UxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNTAwMDAwIn0seyJicyI6eyJwcnYiOiI0NzAwMCIsInBzcyI6IjQ3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM2NjNhMGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM3YjkxM2IwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiNjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjVkMDAwIiwicHNzIjoiNWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkODRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTFdIiwicGYiOjYsInNhIjoiN2Y5OTVkODRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZTA0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZTA0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OV0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOThdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODhdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg2XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjU5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEzODAwIiwic2hyIjoiNjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMDAiLCJzaHIiOiIyYjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjEwMDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM1MDAwIiwic2hyIjoiNDdmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY2ODAwIiwic2hyIjoiMWQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyNmVmMDAwIn19fSwidHRzIjo2MDU0NCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmMifSwKLXsicGlkIjoxNTI4NSwidGlkIjoxNTI4NiwidHMiOjE1NzY2NTUwNDY4OTAsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI2ZWI4MzAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiODAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijc5NDAwIiwic2hyIjoiMjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxY2MwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJlOTk0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMDAiLCJwc3MiOiI2MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmJmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWVlMjNjMDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNjMjAwMDAiLCJzeiI6IjNjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIxMjZjYzU2ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmQ2NzAwMCIsInN6IjoiMTk5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWJmMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2ViZjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMwMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMxMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMyMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzcwMDAiLCJwc3MiOiIzNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMyMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMzMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjIwMDAiLCJwc3MiOiI2MjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMzMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzZmYwMDAiLCJzeiI6IjFmOTY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU4MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1ODIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU5MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1OTIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjBmZjVkMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyOTkxMDU4ZDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIyOTkxMDU5ZDAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjJhY2IyYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjYzZjg0YzQxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzVmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiMzkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZDYyYzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDQwMDAiLCJwc3MiOiIxNmNjMDAiLCJzaHIiOiJjNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI0ZWQwMDAiLCJwc3MiOiI0ZWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiI2MDAwMDAifSx7ImJzIjp7InBydiI6IjQ3MDAwIiwicHNzIjoiNDcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzY2M2EwYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzdiOTEzYjAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjMwMDAiLCJwc3MiOiI2MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWQwMDAiLCJwc3MiOiI1ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3OWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDldIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTFdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODZdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjAwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwMCIsInNociI6IjJiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjhjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQ0MDAiLCJzaHIiOiI0N2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjY4MDAiLCJzaHIiOiIxZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI3ZmUwMDAifX19LCJ0dHMiOjc3MjE3LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoteyJwaWQiOjE1Mjg1LCJ0aWQiOjE1Mjg2LCJ0cyI6MTU3NjY1NTEzNDIwNCwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjdmNWY4MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI5MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNzk0MDAiLCJzaHIiOiIyMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZGMwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmU5OTQwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZWUyM2MwMDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2MyMDAwMCIsInN6IjoiM2MwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjEyNmNjNTZmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZDY3MDAwIiwic3oiOiIxOTkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYmYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWJmMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzAwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMwMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMxMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzIwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MjAwMCIsInBzcyI6IjYyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzMwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzNmZjAwMCIsInN6IjoiMWY5NjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTgwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU4MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTkwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU5MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMGZmNWQwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjI5OTEwNThkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjI5OTEwNTlkMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMmFjYjJhMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjNmODRjNDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZkNjJjMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiZWMwMCIsInNociI6ImMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0NTAwMCIsInBzcyI6IjE2ZDQwMCIsInNociI6ImM1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjVmNzAwMCIsInBzcyI6IjVmNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjcwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDcwMDAiLCJwc3MiOiI0NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNjYzYTBiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzN2I5MTNiMDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MzAwMCIsInBzcyI6IjYzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE1ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1ZDAwMCIsInBzcyI6IjVkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc5ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDg0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzExXSIsInBmIjo2LCJzYSI6IjdmOTk1ZDg0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOV0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTldIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk4XSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5MV0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODldIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg4XSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMzgwMCIsInNociI6IjYzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjhkYzAwIiwic2hyIjoiMmI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxMDAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMzgwMCIsInNociI6IjQ3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NWMwMCIsInNociI6IjFkNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOWMwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMjkwYjAwMCJ9fX0sInR0cyI6OTY0NTcsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCi17InBpZCI6MTUyODUsInRpZCI6MTUyODYsInRzIjoxNTc2NjU1MjMzNTIyLCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiOTAwNmQwIn0sIm91dGVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6ImEwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI3OTQwMCIsInNociI6IjIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkYzAwIiwic2hyIjoiNDQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiMWNjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiZTk5NDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYwMDAwIiwicHNzIjoiNjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZiZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2JmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTFlZTIzYzAwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYzIwMDAwIiwic3oiOiIzYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMTI2Y2M1NmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJkNjcwMDAiLCJzeiI6IjE5OTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2ViZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYmYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzAwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMjA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYyMDAwIiwicHNzIjoiNjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMzA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjM2ZmMDAwIiwic3oiOiIxZjk2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1ODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1OTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwZmY1ZDAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMjk5MTA1OGQwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMjk5MTA1OWQwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyYWNiMmEwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2M2Y4NGM0MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM1ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjM5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJjNmQ2MmMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE3MDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ1MDAwIiwicHNzIjoiMTZkODAwIiwic2hyIjoiYzUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAzMDAwIiwicHNzIjoiNzAzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiI0NzAwMCIsInBzcyI6IjQ3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM2NjNhMGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM3YjkxM2IwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiNjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjVkMDAwIiwicHNzIjoiNWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkODRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTFdIiwicGYiOjYsInNhIjoiN2Y5OTVkODRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZTA0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZTA0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OV0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOThdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODhdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg2XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImI4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjU5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEzODAwIiwic2hyIjoiNjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOGRjMDAiLCJzaHIiOiIyYjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjBjMDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMyMDAwIiwic2hyIjoiNDdmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTQwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY1ODAwIiwic2hyIjoiMWQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyYTNlMDAwIn19fSwidHRzIjoxMTYwOTYsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJhIn0seyJwaWQiOjE1Mjg1LCJ0aWQiOjAsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6Im51bV9jcHVzIiwiYXJncyI6eyJudW1iZXIiOjQwfX0sCi17InBpZCI6MTUyODUsInRpZCI6MTUyODYsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3Nfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTV9fSwKLXsicGlkIjoxNTI4NSwidGlkIjoxNTI4NiwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoicHJvY2Vzc19uYW1lIiwiYXJncyI6eyJuYW1lIjoiUmVuZGVyZXIifX0sCi17InBpZCI6MTUyODUsInRpZCI6MTUyODUsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotMX19LAoteyJwaWQiOjE1Mjg1LCJ0aWQiOjE1Mjg2LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNocm9tZV9DaGlsZElPVGhyZWFkIn19LAoteyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MTU3NjY1NDcwNjQzNiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjMyNjE1MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI0MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNTkwMDAiLCJzaHIiOiIxYWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE5YzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2OTNmZTUwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYThkMDAwIiwic3oiOiIzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTA4NjFhYzAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMDg2MWFlMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTEwMDAiLCJwc3MiOiJhMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWZmNmRiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTJjYmM4YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNGMwMDAiLCJwc3MiOiI0YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4N2ZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY4MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmODEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6ImYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwMCIsInBzcyI6IjE2YTQwMCIsInNociI6ImNiMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6ImZlMDAwIiwicHNzIjoiZmUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjRiMDAwIiwicHNzIjoiNGIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzI2YjAwMCIsInN6IjoiMTk1MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmMwMDAiLCJwc3MiOiIyYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc3MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3M2UwMDAiLCJzeiI6IjFmYjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOWU2YzBlOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGU5MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODQwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4wQUJMc3kgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE3NDAwIiwic2hyIjoiNmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjA0MDAiLCJzaHIiOiJhMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI4MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkNDAwMCIsInNociI6IjM3MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1OTAwMCIsInNociI6IjE5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU0MDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIxOWIxMDAwIn19fSwidHRzIjoxNjkyMiwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmUifSwKLXsicGlkIjoxNTMyOCwidGlkIjoxNTMyOSwidHMiOjE1NzY2NTQ4MjcwNTUsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI0N2QyNzAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiNjAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4YzAwIiwic2hyIjoiMWUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxOWMwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2OTNmZTUwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYThkMDAwIiwic3oiOiIzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTA4NjFhYzAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMDg2MWFlMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZmY2ZGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyY2JjOGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4ZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzYzIzYjYwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI2OTAwMCIsInBzcyI6IjY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxYjE1NjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI1ZDExMDYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwMCIsInBzcyI6IjcwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg3ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2YTAwMCIsInBzcyI6IjZhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg5ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImY3MDAwIiwicHNzIjoiZjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY4MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmODEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiZDAwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MjAwMCIsInBzcyI6IjE2YWMwMCIsInNociI6ImM3MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjJhMjAwMCIsInBzcyI6IjJhMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNGMwMDAiLCJwc3MiOiI0YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3MjZiMDAwIiwic3oiOiIxOTUwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzcwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzczZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzhmZjAwMCIsInN6IjoiMWY5NmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzllNmMwZTkzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjE2MDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2NjZTU3MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZ3lXd0I3IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjNjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3ZjQwMCIsInNociI6IjI3MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTgwMCIsInNociI6IjhkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjExYTQwMCIsInNociI6IjQyZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NWMwMCIsInNociI6IjFkMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImE4MDAiLCJzaHIiOiIzZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQ4MDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjIxNTAwMDAifX19LCJ0dHMiOjM1NDczLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZCJ9LAoteyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MTU3NjY1NDg5NTM2NywicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjU5YzBkMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiJhMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiNzg0MDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjQyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjFhNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY5M2ZlNTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhOGQwMDAiLCJzeiI6IjMzMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMDg2MWFjMDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYWUwMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTFmZjZkYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTJjYmM4YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyY2JjOGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTNjMjNiNjAxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTNjMjNiNjFmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMWIxNTYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4MTAwMCIsInBzcyI6IjgxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg3ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1YTAwMCIsInBzcyI6IjVhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg5ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzOGEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4YTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0NzAwMCIsInBzcyI6IjQ3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzOGEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5MzhiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwNTAwMCIsInBzcyI6IjEwNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYjI1ZjgwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmIyNWY4MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwOTAwMCIsInBzcyI6IjEwOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYjI1ZjkwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmIyNWY5MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjJkZWMzZGQzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmIyYmFiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxOGIyNWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiZTgwMCIsInNociI6ImMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0YzAwMCIsInBzcyI6IjE3MjgwMCIsInNociI6ImMwMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjNiZjAwMCIsInBzcyI6IjNiZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiN2MwMDAiLCJwc3MiOiI3YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1N2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTcyNmIwMDAiLCJzeiI6IjE5NTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzUwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NzA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc0MDAwIiwicHNzIjoiNzQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3OGZmMDAwIiwic3oiOiIxZjk2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzllNmMwZTkyMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzllNmMwZWIyMDAwIiwic3oiOiIxZTAwMDAifSx7ImJzIjp7InBydiI6IjRmMDAwIiwicHNzIjoiNGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2NjZTU3MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZ3lXd0I3IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjNjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhODAwIiwic2hyIjoiMmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI4YjQwMCIsInNociI6IjI5ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFkMDAwIiwicHNzIjoiNDI4MDAiLCJzaHIiOiI5NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiMTgzMDAwIiwic2hyIjoiNGI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjY4ODAwIiwic2hyIjoiMWQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZGMwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmNDAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMjg2NjAwMCJ9fX0sInR0cyI6NTQ4NTQsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCi17InBpZCI6MTUzMjgsInRpZCI6MTUzMjksInRzIjoxNTc2NjU1MDQ2MjY4LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMTI2MjBmMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxNDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6Ijc5MDAwIiwic2hyIjoiMWY2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiIxYWMwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2OTNmZTUwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYThkMDAwIiwic3oiOiIzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTA4NjFhYzAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMDg2MWFlMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZmY2ZGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyY2JjOGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4ZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzYzIzYjYwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjFiMTU2MzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODEwMDAiLCJwc3MiOiI4MTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4N2ZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWEwMDAiLCJwc3MiOiI1YTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4OWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4YmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMGUwMDAiLCJwc3MiOiIxMGUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY4MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmODIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDkwMDAiLCJwc3MiOiIxMDkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY5MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmOTIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIyZGVjM2RkMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY4MDAwIiwicHNzIjoiNjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZiMmJhYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMThiMjVlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNGUwMDAiLCJwc3MiOiIxNzQwMDAiLCJzaHIiOiJiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiIxMGZlMDAwIiwicHNzIjoiMTBmZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjEzMDgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjdmMDAwIiwicHNzIjoiN2YwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjY0MDAwIiwicHNzIjoiNjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3MjZiMDAwIiwic3oiOiIxOTUwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzcwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzczZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NjAwMCIsInBzcyI6Ijc2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzhmZjAwMCIsInN6IjoiMWY5NmMwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGViMjAwMCIsInN6IjoiMWUwMDAwIn0seyJicyI6eyJwcnYiOiI1MzAwMCIsInBzcyI6IjUzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjY2U1NzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzNl0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwY2QwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlOGNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzVdIiwicGYiOjYsInNhIjoiN2Y5OTVlOGNlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMmNaY2RvIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjBjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLll0RXEzTyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYxY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5neVd3QjcgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmM2NlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMzXSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzFdIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMwXSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMyOV0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjhjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImE4MDAiLCJzaHIiOiIyZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TTEFIVGYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMEFCTHN5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZGMwMCIsInNociI6IjdmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjhjNDAwIiwic2hyIjoiMjk4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWQwMDAiLCJwc3MiOiI0MjgwMCIsInNociI6Ijk1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiIxOGI4MDAiLCJzaHIiOiI0YmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNmE0MDAiLCJzaHIiOiIxZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWY0MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiI4NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIzNWRjMDAwIn19fSwidHRzIjo3NDI5MCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmIifSwKLXsicGlkIjoxNTMyOCwidGlkIjoxNTMyOSwidHMiOjE1NzY2NTUxMzQ5NTUsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiIxNzVmN2QwIn0sIm91dGVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjFhMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiNzk0MDAiLCJzaHIiOiIxZjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTQwMCIsInNociI6IjQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY5M2ZlNTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhOGQwMDAiLCJzeiI6IjMzMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwODYxYWMwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhZTAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWZmNmRiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTJjYmM4YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTNjMjNiNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxM2MyM2I2MDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxYjE1NjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI1ZDExMDYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI1ZDExMDYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6Ijg0MDAwIiwicHNzIjoiODQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4NjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODdmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU4MDAwIiwicHNzIjoiNTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODlmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4YTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5MzhhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImQ3MDAwIiwicHNzIjoiZDcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4YTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNmEwMDAiLCJwc3MiOiI2YTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYTA5YjJkMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTZmMDAwIiwicHNzIjoiMTZmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTA5MDAwIiwicHNzIjoiMTA5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmOTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmNjAwMCIsInBzcyI6ImY2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmYjJiYWIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzE4YjI1ZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEwYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTRmMDAwIiwicHNzIjoiMTc1MDAwIiwic2hyIjoiYmUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTVhZTAwMCIsInBzcyI6IjE1YWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiIxODA4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU0MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3YjAwMCIsInBzcyI6IjdiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTQwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU1ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0ZTAwMCIsInBzcyI6IjRlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzI2YjAwMCIsInN6IjoiMTk1MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzgwMDAiLCJwc3MiOiIzODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc3MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3M2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc4MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc4MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc4ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzkwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3OTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzkwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzlmZjAwMCIsInN6IjoiMWY4NmMwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGViMjAwMCIsInN6IjoiMWUwMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwMCIsInBzcyI6IjkwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjY2U1NzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk1Y2NjYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0Y2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0Y2IwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMDAiLCJwc3MiOiJmMDAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnNDbnRDUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWRjY2IwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMGNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzZdIiwicGYiOjYsInNhIjoiN2Y5OTVlMGNkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZ3lXd0I3IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjNjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI5NmMwMCIsInNociI6IjJjNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFkMDAwIiwicHNzIjoiNDI4MDAiLCJzaHIiOiI5NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiMTliYzAwIiwic2hyIjoiNGQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjZjMDAwIiwic2hyIjoiMWU0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZGMwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmNDAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiM2YxZDAwMCJ9fX0sInR0cyI6OTQ4NzYsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCi17InBpZCI6MTUzMjgsInRpZCI6MTUzMjksInRzIjoxNTc2NjU1MjMxNzE0LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiOTJmNjUwIn0sIm91dGVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjFiMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiNzk0MDAiLCJzaHIiOiIxZjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTQwMCIsInNociI6IjQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY5M2ZlNTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhOGQwMDAiLCJzeiI6IjMzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwODYxYWMwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhZTAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWZmNmRiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4ZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzYzIzYjYwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjFiMTU2MzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjE2MDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiN2MwMDAiLCJwc3MiOiI3YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4N2ZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmUwMDAiLCJwc3MiOiIyZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4OWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODgwMDAiLCJwc3MiOiI4ODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4YmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiZjIwMDAiLCJwc3MiOiJmMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYTA5YjJkMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTNmMDAwIiwicHNzIjoiMTNmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmOTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmNjAwMCIsInBzcyI6ImY2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmYjJiYWIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIyZjAwMCIsInBzcyI6IjJmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMwMzdlMWMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzE4YjI1ZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIxNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEwYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAwIiwicHNzIjoiMTc1YzAwIiwic2hyIjoiYmQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiN2I5MDAwIiwicHNzIjoiN2I5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiMTkxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTMwMDAiLCJwc3MiOiI5MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTQwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1N2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTcyNmIwMDAiLCJzeiI6IjE5NTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzUwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM4MDAwIiwicHNzIjoiMzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NzA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDcwMDAiLCJwc3MiOiJkNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc5ZmYwMDAiLCJzeiI6IjFmODZjMDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGVkMjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiJiNjAwMCIsInBzcyI6ImI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjY2U1NzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk1Y2NjYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0Y2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0Y2IwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMDAiLCJwc3MiOiJmMDgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnNDbnRDUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWRjY2IwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMGNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzZdIiwicGYiOjYsInNhIjoiN2Y5OTVlMGNkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbF9Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1ZjM0NDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWYzOGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmd5V3dCNyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYzY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzNdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1MDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMyXSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzBdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzI5XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOGMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYmMwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYTAwMCIsInNociI6IjJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNmMwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI0MTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI5YzQwMCIsInNociI6IjJkMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIxMDAwIiwicHNzIjoiNGVjMDAiLCJzaHIiOiJhNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjZmMDAwIiwicHNzIjoiMWY5MDAwIiwic2hyIjoiNTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjZmODAwIiwic2hyIjoiMWViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZGMwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmNDAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTJjMDAiLCJzaHIiOiI0YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiIzZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1NDAwIiwic2hyIjoiODYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiJmMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMzRhZjAwMCJ9fX0sInR0cyI6MTE0MTk1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYSJ9LHsicGlkIjoxNTMyOCwidGlkIjowLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0MH19LAoteyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0sCi17InBpZCI6MTUzMjgsInRpZCI6MTUzMjksInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3NfbmFtZSIsImFyZ3MiOnsibmFtZSI6IlJlbmRlcmVyIn19LAoteyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX2xhYmVscyIsImFyZ3MiOnsibGFiZWxzIjoiR29vZ2xlIn19LAoteyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI4LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTF9fSwKLXsicGlkIjoxNTMyOCwidGlkIjoxNTMyOCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDclJlbmRlcmVyTWFpbiJ9fSwKLXsicGlkIjoxNTMyOCwidGlkIjoxNTMyOSwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDaHJvbWVfQ2hpbGRJT1RocmVhZCJ9fSx7InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU0NzA4OTMyLCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMmYxMDEyMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzMDA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVlNDAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTI3ZTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDE1OWEwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYxZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjNlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY1ZTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmE4NzAwMCIsInBzcyI6IjJhODcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0Zjk1MDAwIiwic3oiOiIzMDRiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2MzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2Q3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNkVSQk4gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkphcVJqdCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmMzZWJkMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5INDhSMTggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZ6T3FLTyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFBIMHN1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDMzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KUjRDYmEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJPa2dVUCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFpRVkN2IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kajNYbnYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhING5INSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQjVQTzBGIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yZHlpa2cgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmxBMEplUyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZmFOQ1h4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDU3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5IanJ3R2QgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkZSd3RwVCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUmlOcjh5IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDYzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45b2t0UmUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlZjSXZBVSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udzZnTUJCIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43MzBwNm0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFBjZHRzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDg3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4zNE9iMlYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0OGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzQ4ZmQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZJT3lJMyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzRhZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiM2QwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI0NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmE2MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YzA2MDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzUwMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzUyMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTQwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzU2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjNTYwNzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzVlMDcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS50b1NlVUsgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXg2MUQ4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjEwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZENna293IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjIwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjd2clNnZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYzMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY0MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU5MDAwIiwic2hyIjoiYjIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY1MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2NjA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTBdIiwicGYiOjYsInNhIjoiN2YyZmM2NjA4MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNmUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA4XSIsInBmIjo2LCJzYSI6IjdmMmZjNmUwOTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzc2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwN10iLCJwZiI6Niwic2EiOiI3ZjJmYzc2MGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjN2UwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4MjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzg2MGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMmEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE2YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YThhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhY2EwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiJjNDAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFlYTAwMCIsInN6IjoiYzQwMDAifSx7ImJzIjp7InBydiI6ImEyZjAwMCIsInBzcyI6ImFmNDgwMCIsInNociI6IjI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmYzhiYWUwMDAiLCJzeiI6IjFiNjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2E3MTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTBhMDAwIiwicHNzIjoiOTBhNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2E5MTUwMDAiLCJzeiI6ImE4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2IzYTAwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiM2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjNjMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo2LCJzYSI6IjdmMmZjYjViZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDUwMDAiLCJwc3MiOiI2MTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2I1YzAwMDAiLCJzeiI6ImRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjY5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNiODljMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiOGRjMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmNiOGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDZdIiwicGYiOjYsInNhIjoiN2YyZmNiOGY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzBmNDAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMTdmMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3ZjJmY2MxZTUwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2YyZmNjYmEyMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkYjk2MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2RiYTYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2YyZmNkYmFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2YyZmNkZGE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkZGFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2YyZmNkZGFjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2YyZmNkZGFlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3ZjJmY2RmYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3ZjJmY2RmYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2YyZmNkZmIwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZGZiNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZTFiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNlMWI4MDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNlMWYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTNmMjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNlM2Y4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNlM2ZhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZTQwYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNlNjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNlNjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2YyZmNlNjBmMDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3ZjJmY2U2OGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3ZjJmY2U4OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2YyZmNlODhjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZTg4ZjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2U4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2YyZmNlYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VhOWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmMmZjZWE5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VjOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlYzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWM5ZjAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2YyZmNlY2NiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlZWNhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWVjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlZWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmMmZjZWVjZTAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2VmOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmMmZjZjE4YTAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmMmZjZjE5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjE5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjE5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmMzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmMzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmM2EwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjNhMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y1YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y1YTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y1YTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjdhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y3YTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZjdiMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y5YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjliMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZjZjliMTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmNmOWM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmNmYmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3ZjJmY2ZiYzcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3ZjJmY2ZiY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3ZjJmY2ZiY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZjZmJjZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmY2ZiZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZjZmRmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZjZmRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2ZkZjUwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZmUwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMDAwZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAwMTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDAxYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDAyMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMjFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAyMWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwNDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA0MWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmMmZkMDQxZTAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2YyZmQwNGJmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2YyZmQwNmJmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwNmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2YyZmQwNmM4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDZlZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2YyZmQwOGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2YyZmQwOGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDA4ZWUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDA5MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwYjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkMGIwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDBiMmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmMmZkMGQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZDJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwZDJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwZDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBmMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjJmZDBmMzIwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmMmZkMGY0YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmMmZkMTE0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjJmZDExNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjJmZDExNGIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2YyZmQxMTVhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2YyZmQxMzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmMmZkMTM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmMmZkMTM1YzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjJmZDEzNjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjJmZDE1NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2YyZmQxNTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2YyZmQxNTY5MDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmMmZkMTYxZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2YyZmQxODFmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2YyZmQxODI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2YyZmQxODI3MDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDE4NmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2YyZmQxYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDFhNmQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMWE4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMWM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2YyZmQxYzhkMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2YyZmQxY2NhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmMmZkMWVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2YyZmQxZWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWVjYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFlZDIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDIwZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQyMGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmMmZkMjBkNDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3ZjJmZDIwZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmMmZkMjJmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmMmZkMjJmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyMmY1MDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDIzYTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDI1YTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyNWE1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiNWYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjVhODAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjlkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMmJkNjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQyYmU0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQyYmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQyYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDJiZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDJiZWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMmRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3ZjJmZDJkZjAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2YyZmQyZTBmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3ZjJmZDMwMGYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3ZjJmZDMwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2YyZmQzMDEyMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmMmZkMzAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzMjFkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzMjIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzMjIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzMjIyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzMjMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM0MzMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzYzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQzNjM5MDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM3MjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM5MjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQzOTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOTJhMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzOTg3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDM5OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjVhMDAwIiwicHNzIjoiNWQ4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5OGMwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2EwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNhMDYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjJmZDNhMGIwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2YyZmQzYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjJmZDNjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzVlMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2NhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzY2E3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzY2FmMDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNjZjkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDNlZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQzZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNlZmQwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNmMDgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkNDEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkNDEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDEwYTAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDEzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNDAwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTYxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTdhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOGQwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE5NjAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjFmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjJlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIzODAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDI0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyNGIwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJiNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyYmIwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTAwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJkMTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyZTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZWQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjU4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwODAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmMmZkNDMyYTAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmMmZkNDM1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjJmZDQ1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmMmZkNDU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0NTU5MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQ1NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0NzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ3NWYwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDQ3YjIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0OWIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDQ5YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDliNDAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmMmZkNGFiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGNiOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNGNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0Y2MwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRjYzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmMmZkNGVjYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2YyZmQ0ZWQzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmMmZkNTBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2YyZmQ1MGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkNTBkNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDUwZDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDUyZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ1MmQ5MDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDU0OTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNTY5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNTY5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkNTY5ZTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQ1NmI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQ1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZDQwMCIsInNociI6IjkyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2YyZmQ1OGI0MDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2YyZmQ1OTlhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmMmZkNWI5OTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2YyZmQ1YmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmMmZkNWJiOTAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2YyZmQ1YzU2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2YyZmQ1ZTU1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmMmZkNWU1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ1ZTVjMDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkNWZjODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDYxYzcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjFjYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjFjZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDYxZDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDYzZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmMmZkNjNkODAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmMmZkNjNmZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDY1ZmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2NjAyMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjYzYTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ODNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2ODNmMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY4NjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZhNjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmE2YzAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZhOTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmM5MDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2Yzk3MDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmRjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZmYzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmZjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmMmZkNmZkMTAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmMmZkNzAwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDcyMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmMmZkNzIwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3MjBlMDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDczMTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzUxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzUxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDc1MTQwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3NTJkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc3MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2YyZmQ3NzMyMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDc3OWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDc5OWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3OWE3MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkNzlhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2JhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdiYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2JhZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmMmZkN2JiZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdkYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2RiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZGJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdkYzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZmMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZmMzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdmYzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ4MWM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDgxYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkODFjNjAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmMmZkODJmNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkODRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg0ZjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODRmYjAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg2MDEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODgwNDAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg4NTMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkOGE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkOGE1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhhNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4YTU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdG1wL2dsOGYyS2hNIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM3YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzg0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Yzg1MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2E5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhYjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNTAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNiNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2MzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYzUwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ0NzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhkNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNWEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNzAwMCIsInNociI6ImFjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDY4MDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNTkwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGY2YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY2YzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Zjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3NjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZDgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmU2MDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTA4ZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTA5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwOWYwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwYjQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBkYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGRlMDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTEwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTBmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTE1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEyNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwMCIsInNociI6ImRjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEyNzAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIyODAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkyZWEwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDk4MDAiLCJzaHIiOiJlMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTMxMzAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIxZTAwMCIsInBzcyI6IjFlMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTRmMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzMwMDAiLCJzaHIiOiI5ZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTUxMDAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YTg2MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWJjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlhYzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWM2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhY2UwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhZmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWIwMjAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjRkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliNjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjY5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjczMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjgyMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YmRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YmU1MDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMwMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzI0MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDljM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzNjMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWNkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWNkMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5Y2Q2MDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMDEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMDUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQxYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ5MDAwIiwic2hyIjoiZTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMWYwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNzAwMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWVjOTAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiNjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDllZjEwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZjMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmY2EwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlYTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZmMDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTAwMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTAwNTAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTExMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMWEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTEyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEyYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExM2EwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzNzkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTM4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMzhjMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhM2E4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzYWIwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTQ5ODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE0OWYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTRhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzYwMDAiLCJwc3MiOiI5YWMwMCIsInNociI6IjYzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTRhODAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNWQwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTVkOTAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjFiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYxZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjI5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MmUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2M2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2M2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY0MDAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTY4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0ODAwIiwic2hyIjoiYTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2OGEwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTk5ZDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTlhZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhOWIxMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE3YjQwMCIsInNociI6IjQ5NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE5YzIwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM3NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjNzY4MDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYzkxMTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTFmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkyNDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NDcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTRhMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmRjOTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjE5YzAwMCIsInNociI6IjRkNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTZhMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZDI3MDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRkYzIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZGRkMTAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGRmYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUwOTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJmODAwIiwic2hyIjoiOTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUyYjAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMDJlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUwNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjY3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUwNDIwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUxYTQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMWFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMWFmMDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUyYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE5YzAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUyYzMwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU0MjEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjODAwIiwic2hyIjoiMTRkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTQzNTAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MDcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkyZDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MzkwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGU5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk3YTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5N2YwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5OWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk5ZDAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlY2ExMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImM0MDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVjY2UwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZDgyMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZDg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkODcwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkOTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYmEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRjNjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZDMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRmMjAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTUyMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNzMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTg5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzEwMDAiLCJzaHIiOiJkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZThkMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmFlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmI2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZmZkOTk1MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmZmQ5YmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiOGYwNzAwMCJ9fX0sInR0cyI6MzQwNDMsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJlIn0sCi17InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU0ODI4NDQ0LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMzE4Y2ZhMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzMzA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVlMDAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTE2ZDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDEyN2UwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxNTlhMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmMWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYzZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmNWUwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJjMTUwMDAiLCJwc3MiOiIyYzE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY5NTAwMCIsInN6IjoiMzM1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4yY1pjZG8gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzODNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWXRFcTNPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjMzkzZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2MzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2Q3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TTEFIVGYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMEFCTHN5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjM2UzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ2RVJCTiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSmFxUmp0IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2U3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzNlYmQwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQ3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDUzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDVmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wN2NORFEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlzMktYcSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uaW1uS2gxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDc3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucnlOZkJwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDgzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wUGNkdHMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTmxLWkxWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNDhmZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNGFmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGIzZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjQ0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYTYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJjNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRjMDYwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNTAwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTIwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1NDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNTYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmM1NjA3MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmYTAwMCIsInNociI6IjFmNDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWGhYOWRuIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNWUwNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYwMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MjA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjMwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDVmRTlUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjQwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWQ4MDAiLCJzaHIiOiJiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVEMzcTJBIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjUwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzY2MDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMF0iLCJwZiI6Niwic2EiOiI3ZjJmYzY2MDgwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2ZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDhdIiwicGYiOjYsInNhIjoiN2YyZmM2ZTA5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNzYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA3XSIsInBmIjo2LCJzYSI6IjdmMmZjNzYwYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM3ZTBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzgyMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODYwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEyYTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTZhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhOGEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFjYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNzAwMCIsInNociI6ImM0MDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWVhMDAwIiwic3oiOiJjNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTJmMDAwIiwicHNzIjoiYWY0ODAwIiwic2hyIjoiMjU5MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjOGJhZTAwMCIsInN6IjoiMWI2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYTcxNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI5MGEwMDAiLCJwc3MiOiI5MGE0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYTkxNTAwMCIsInN6IjoiYThiMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjE5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjNhMDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2IzYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiM2MwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjYsInNhIjoiN2YyZmNiNWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0NTAwMCIsInBzcyI6IjYxODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjVjMDAwMCIsInN6IjoiZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiNjlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2I4OWMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2I4ZGMwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmY2I4ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNl0iLCJwZiI6Niwic2EiOiI3ZjJmY2I4ZjQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMGY0MDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MxN2YwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmMmZjYzFlNTAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjJmY2NiYTIwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RiOTYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZGJhNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2RiYWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2RkYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2YyZmNkZGFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjJmY2RkYWMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjJmY2RkYWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmMmZjZGZhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmMmZjZGZhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2RmYjAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2YyZmNkZmI2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlMWI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UxYjgwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2UxZjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNlM2YyMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2UzZjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UzZmEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNlNDBjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2U2MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjJmY2U2MGYwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmMmZjZTY4YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmMmZjZTg4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjJmY2U4OGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2YyZmNlODhmMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZTg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWE5YTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2YyZmNlYTlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWM5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2YyZmNlYzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2YyZmNlYzlmMDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VjY2IwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VlY2EwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlZWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2YyZmNlZWNlMDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmMmZjZWY4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2YyZmNmMThhMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2YyZmNmMTk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmMTk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmMTllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2YzOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YzYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmM2EyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmNWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjVhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjVhNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjVhNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmN2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmN2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjdhODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNmN2IwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjlhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNmOWIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmNmOWIxMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2Y5YzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2ZiYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmNmYmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmMmZjZmJjNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmMmZjZmJjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2YyZmNmYmNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmMmZjZmJmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2YyZmNmZGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2YyZmNmZGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZmRmNTAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2YyZmNmZTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQwMDBlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDAxMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMDFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDIxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAyMWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDIxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA0MWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2YyZmQwNDFlMDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDA0YmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDA2YmYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2YyZmQwNmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDA2YzgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2YyZmQwNmVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA4ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA4ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMDhlZTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkMDkwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwYjA3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQwYjBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmMmZkMGIyYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2YyZmQwZDI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQwZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDBkMmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDBkMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGYyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmMmZkMGYzMjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2YyZmQwZjRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2YyZmQxMTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmMmZkMTE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmMmZkMTE0YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjJmZDExNWEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjJmZDEzNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2YyZmQxMzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2YyZmQxMzVjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmMmZkMTM2NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmMmZkMTU2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTU2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjJmZDE1NjkwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2YyZmQxNjFmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjJmZDE4MWYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDE4MjcwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmMmZkMTg2YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZkMWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDFhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMWE2ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQxYThhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQxYzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxYzhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFjOGQwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFjY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2YyZmQxZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDFlY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2YyZmQxZWNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmMmZkMWVkMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMjBkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2YyZmQyMGQ0MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmMmZkMjBmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2YyZmQyMmYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2YyZmQyMmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDIyZjUwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjNhMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMjVhMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiI1ZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyNWE4MDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyOWQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyYmQ2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMmJkZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDJiZTQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDJiZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMmJlYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkMmJlZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQyZGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQyZGVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmMmZkMmRmMDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjJmZDJlMGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmMmZkMzAwZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmMmZkMzAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMwMTIwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2YyZmQzMDFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2YyZmQzMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzMjFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDMyMWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDMyMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDMyMjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMyMjIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMyMzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzNDMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzQzMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzNDM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM2MzkwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMzcyMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzkyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5MmEwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDM5ODcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzk4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNWEwMDAiLCJwc3MiOiI1ZDgwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzk4YzAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzYTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2EwNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2EwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmMmZkM2EwYjAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3ZjJmZDNhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmMmZkM2M0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmMmZkM2M0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWUwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTcwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNjYWYwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2NmOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkM2VmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2VmZDAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2YwODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQ0MTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQ0MTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTBhMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE0MDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNjEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxN2EwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTgyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4ZDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTk2MDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMWYwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMmUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjM4MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDI0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDI0YjAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmI2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJiYjAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmQxMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJlODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJlZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzAwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNTgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzA4MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDMyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2YyZmQ0MzJhMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2YyZmQ0MzU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmMmZkNDU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2YyZmQ0NTU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQ1NTkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDU1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQ3NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDc1ZjAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmMmZkNDdiMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDQ5YjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmMmZkNDliMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ0OWI0MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ0YWJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ0Y2I5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGNiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDRjYzAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmMmZkNGNjOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRlYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2YyZmQ0ZWNhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDRlZDMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2YyZmQ1MGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDUwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ1MGQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkNTBkNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkNTJkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTJkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDUyZDkwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNTQ5NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ1NjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQ1NjllMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDU2YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkNDAwIiwic2hyIjoiOTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjJmZDU4YjQwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjJmZDU5OWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2YyZmQ1Yjk5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2YyZmQ1YmI5MDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDVjNTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDVlNTUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2YyZmQ1ZTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDVlNWMwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ1ZmM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjFjNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2QwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2MWNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjFkNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2YyZmQ2M2Q4MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2YyZmQ2M2ZmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjVmZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY2MDIwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2NjNhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDY4M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY4M2YwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjg2NzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmE2NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2YTZjMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmE5MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YzkwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2Yzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZjOTcwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ZGNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmZjOTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZmZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2YyZmQ2ZmQxMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3MDBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmMmZkNzIwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDcyMGUwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzMxMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzUxNDAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDc1MmQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzcyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDc3MzIwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmMmZkNzc5ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmMmZkNzk5ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDc5YTcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3OWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3YmFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2JhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3YmFkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3YmJlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2RiZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZGJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdkYmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkN2RjMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdmYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdmYzMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkN2ZjNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDgxYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkODFjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ4MWM2MDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ4MmY2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ4NGY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkODRmNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4NGZiMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODYwMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4ODA0MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODg1MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4YTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4YTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGE1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhhNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQmhyWnZQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRwb25ZaCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5uY2Y3MlkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YzdhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzgzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjODUwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2EyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2E1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2FiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2I0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNjNTAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkM2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDQ3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGQ1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1YTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM2YzAwIiwic2hyIjoiYWMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNjgwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY1OTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Zjc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Zjc2MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFkODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTYwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MDhkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MDllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTA5ZjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBiNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGRhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwZGUwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTBjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTExNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMTUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTI0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTI3MDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTJlYTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkzMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0OTgwMCIsInNociI6ImUyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MzEzMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5NGYwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMzAwMCIsInNociI6IjllMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5NTEwMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWE4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhODYwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhYmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWFjMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhYzYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjZTAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFmZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjAyMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNGQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWI2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNzMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliODIwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliZGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWJlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliZTUwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzAzMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMjQwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljM2MwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5Y2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5Y2QxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5Y2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzAwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljZDYwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQwMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQwNTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDFhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDkwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQxZjAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDllYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZWM5MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWVmMTAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmMyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZjYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmUxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmVhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmYwMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMDAxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTAwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMDA1MDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMTEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTExYTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTJiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI2YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEzYTAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGEzNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTM3OTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMzg1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzOGMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzYTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE2ODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTNhYjAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNDk4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTQ5ZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NTAwMCIsInBzcyI6Ijk5YzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNGE4MDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE1YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE1YzgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTVkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNWQ5MDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjFmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyZTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYzZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjQwMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTY4MDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjg5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQ4MDAiLCJzaHIiOiJhNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY4YTAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhOTlkMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhOWFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE5YjEwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTdiNDAwIiwic2hyIjoiNDk3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTljMjAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzc2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM3NjgwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkwYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRjOTExMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MWYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTI0MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NGEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM5NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTljMDAwIiwic2hyIjoiNGQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NmEwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjliMDAwIiwicHNzIjoiOWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRkMjcwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGRjMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRkZGQxMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZGZiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTA5MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmY4MDAiLCJzaHIiOiI5NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTJiMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUwMmUwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTA0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxMDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTA0MjAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTFhNDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUxYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUxYWYwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTJiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlMmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTljMDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTJjMzAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTQyMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlNDMyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmM4MDAiLCJzaHIiOiIxNGQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlNDM1MDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkwNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTJkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkzOTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkZTk3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTdhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk3ZjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiI4NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTlkMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVjYTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlY2M2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzQwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWNjZTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkODIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWQ5NzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRiYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRiZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGM2MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRkMzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGYyMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNTIwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU3MzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlODkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMTgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlOGQwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmZmQ5OTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmZmZDliYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI5MTgzMDAwIn19fSwidHRzIjo1MjkwOSwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmQifSwKLXsicGlkIjoxNTI1OCwidGlkIjoxNTMwNywidHMiOjE1NzY2NTQ4OTcxNTYsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiIzMjk4ODAwIn0sIm91dGVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjM0MDQwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNWRjMDAiLCJzaHIiOiIxNTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MDA5OTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3RtcC9nbDhmMktoTSAoZGVsZXRlZCkiLCJwZiI6NSwic2EiOiI0MDE2NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MDM1NjAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDBjNTAwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxMTZkMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTI3ZTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDE1OWEwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjFlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmM2UwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjVlMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0Zjk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZDFlMDAwIiwicHNzIjoiMmQxZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmOTUwMDAiLCJzeiI6IjM0NTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMmNaY2RvIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjMzgzZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLll0RXEzTyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzM5M2QwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2NiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNkN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjM2UzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzNlM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNkVSQk4gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkphcVJqdCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmMzZWJkMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5INDhSMTggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZ6T3FLTyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFBIMHN1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDMzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KUjRDYmEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJPa2dVUCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFpRVkN2IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kajNYbnYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhING5INSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQjVQTzBGIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yZHlpa2cgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmxBMEplUyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZmFOQ1h4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDU3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5IanJ3R2QgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkZSd3RwVCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUmlOcjh5IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDYzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45b2t0UmUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlZjSXZBVSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udzZnTUJCIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43MzBwNm0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFBjZHRzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDg3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4zNE9iMlYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0OGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzQ4ZmQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZJT3lJMyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzRhZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiM2QwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI0NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmE2MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YzA2MDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzUwMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzUyMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTQwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzU2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjNTYwNzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzVlMDcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS50b1NlVUsgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXg2MUQ4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjEwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZENna293IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjIwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjd2clNnZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYzMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY0MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiYzAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY1MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2NjA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTBdIiwicGYiOjYsInNhIjoiN2YyZmM2NjA4MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNmUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA4XSIsInBmIjo2LCJzYSI6IjdmMmZjNmUwOTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzc2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwN10iLCJwZiI6Niwic2EiOiI3ZjJmYzc2MGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjN2UwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4MjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzg2MGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMmEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE2YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YThhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhY2EwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiJjNDAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFlYTAwMCIsInN6IjoiYzQwMDAifSx7ImJzIjp7InBydiI6ImEyZjAwMCIsInBzcyI6ImFmNDgwMCIsInNociI6IjI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmYzhiYWUwMDAiLCJzeiI6IjFiNjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2E3MTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTBhMDAwIiwicHNzIjoiOTBhNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2E5MTUwMDAiLCJzeiI6ImE4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2IzYTAwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiM2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjNjMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo2LCJzYSI6IjdmMmZjYjViZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDUwMDAiLCJwc3MiOiI2MTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2I1YzAwMDAiLCJzeiI6ImRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjY5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNiODljMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiOGRjMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmNiOGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDZdIiwicGYiOjYsInNhIjoiN2YyZmNiOGY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzBmNDAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMTdmMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3ZjJmY2MxZTUwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2YyZmNjYmEyMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkYjk2MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2RiYTYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2YyZmNkYmFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2YyZmNkZGE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkZGFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2YyZmNkZGFjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2YyZmNkZGFlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3ZjJmY2RmYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3ZjJmY2RmYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2YyZmNkZmIwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZGZiNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZTFiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNlMWI4MDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNlMWYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTNmMjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNlM2Y4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNlM2ZhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZTQwYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNlNjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNlNjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2YyZmNlNjBmMDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3ZjJmY2U2OGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3ZjJmY2U4OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2YyZmNlODhjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZTg4ZjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2U4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2YyZmNlYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VhOWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmMmZjZWE5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VjOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlYzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWM5ZjAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2YyZmNlY2NiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlZWNhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWVjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlZWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmMmZjZWVjZTAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2VmOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmMmZjZjE4YTAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmMmZjZjE5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjE5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjE5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmMzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmMzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmM2EwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjNhMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y1YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y1YTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y1YTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjdhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y3YTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZjdiMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y5YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjliMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZjZjliMTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmNmOWM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmNmYmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3ZjJmY2ZiYzcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3ZjJmY2ZiY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3ZjJmY2ZiY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZjZmJjZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmY2ZiZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZjZmRmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZjZmRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2ZkZjUwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZmUwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMDAwZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAwMTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDAxYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDAyMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMjFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAyMWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwNDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA0MWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmMmZkMDQxZTAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2YyZmQwNGJmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2YyZmQwNmJmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwNmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2YyZmQwNmM4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDZlZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2YyZmQwOGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2YyZmQwOGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDA4ZWUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDA5MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwYjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkMGIwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDBiMmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmMmZkMGQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZDJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwZDJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwZDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBmMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjJmZDBmMzIwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmMmZkMGY0YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmMmZkMTE0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjJmZDExNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjJmZDExNGIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2YyZmQxMTVhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2YyZmQxMzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmMmZkMTM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmMmZkMTM1YzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjJmZDEzNjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjJmZDE1NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2YyZmQxNTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2YyZmQxNTY5MDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmMmZkMTYxZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2YyZmQxODFmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2YyZmQxODI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2YyZmQxODI3MDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDE4NmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2YyZmQxYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDFhNmQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMWE4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMWM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2YyZmQxYzhkMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2YyZmQxY2NhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmMmZkMWVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2YyZmQxZWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWVjYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFlZDIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDIwZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQyMGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmMmZkMjBkNDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3ZjJmZDIwZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmMmZkMjJmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmMmZkMjJmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyMmY1MDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDIzYTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDI1YTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyNWE1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiNWYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjVhODAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjlkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMmJkNjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQyYmU0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQyYmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQyYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDJiZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDJiZWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMmRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3ZjJmZDJkZjAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2YyZmQyZTBmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3ZjJmZDMwMGYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3ZjJmZDMwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2YyZmQzMDEyMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmMmZkMzAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzMjFkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzMjIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzMjIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzMjIyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzMjMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM0MzMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzYzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQzNjM5MDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM3MjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM5MjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQzOTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOTJhMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzOTg3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDM5OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjVhMDAwIiwicHNzIjoiNWQ4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5OGMwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2EwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNhMDYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjJmZDNhMGIwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2YyZmQzYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjJmZDNjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzVlMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2NhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzY2E3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzY2FmMDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNjZjkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDNlZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQzZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNlZmQwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNmMDgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkNDEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkNDEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDEwYTAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDEzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNDAwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTYxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTdhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOGQwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE5NjAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjFmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjJlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIzODAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDI0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyNGIwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJiNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyYmIwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTAwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJkMTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyZTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZWQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjU4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwODAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmMmZkNDMyYTAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmMmZkNDM1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjJmZDQ1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmMmZkNDU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0NTU5MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQ1NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0NzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ3NWYwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDQ3YjIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0OWIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDQ5YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDliNDAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmMmZkNGFiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGNiOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNGNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0Y2MwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRjYzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmMmZkNGVjYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2YyZmQ0ZWQzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmMmZkNTBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2YyZmQ1MGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkNTBkNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDUwZDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDUyZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ1MmQ5MDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDU0OTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNTY5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNTY5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkNTY5ZTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQ1NmI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQ1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZDQwMCIsInNociI6IjkyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2YyZmQ1OGI0MDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2YyZmQ1OTlhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmMmZkNWI5OTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2YyZmQ1YmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmMmZkNWJiOTAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2YyZmQ1YzU2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2YyZmQ1ZTU1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmMmZkNWU1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ1ZTVjMDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkNWZjODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDYxYzcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjFjYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjFjZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDYxZDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDYzZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmMmZkNjNkODAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmMmZkNjNmZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDY1ZmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2NjAyMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjYzYTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ODNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2ODNmMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY4NjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZhNjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmE2YzAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZhOTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmM5MDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2Yzk3MDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmRjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZmYzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmZjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmMmZkNmZkMTAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmMmZkNzAwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDcyMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmMmZkNzIwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3MjBlMDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDczMTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzUxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzUxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDc1MTQwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3NTJkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc3MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2YyZmQ3NzMyMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDc3OWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDc5OWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3OWE3MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkNzlhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2JhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdiYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2JhZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmMmZkN2JiZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdkYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2RiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZGJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdkYzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZmMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZmMzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdmYzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ4MWM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDgxYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkODFjNjAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmMmZkODJmNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkODRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg0ZjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODRmYjAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg2MDEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODgwNDAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg4NTMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkOGE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkOGE1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhhNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4YTU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdG1wL2dsOGYyS2hNIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM3YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzg0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Yzg1MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2E5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhYjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNTAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNiNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2MzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYzUwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ0NzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhkNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNWEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNmMwMCIsInNociI6ImFjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDY4MDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNTkwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGY2YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY2YzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Zjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3NjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZDgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmU2MDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTA4ZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTA5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwOWYwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwYjQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBkYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGRlMDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTEwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTBmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTE1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEyNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwMCIsInNociI6ImRjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEyNzAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIyODAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkyZWEwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDk4MDAiLCJzaHIiOiJlMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTMxMzAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIxZTAwMCIsInBzcyI6IjFlMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTRmMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzMwMDAiLCJzaHIiOiI5ZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTUxMDAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YTg2MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWJjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlhYzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWM2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhY2UwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhZmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWIwMjAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjRkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliNjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjY5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjczMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjgyMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YmRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YmU1MDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMwMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzI0MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDljM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzNjMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWNkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWNkMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5Y2Q2MDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMDEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMDUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQxYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ5MDAwIiwic2hyIjoiZTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMWYwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNzAwMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWVjOTAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlODAwIiwic2hyIjoiNjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDllZjEwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZjMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmY2EwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlYTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZmMDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTAwMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTAwNTAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTExMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMWEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTEyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEyYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExM2EwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzNzkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTM4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMzhjMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhM2E4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzYWIwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTQ5ODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE0OWYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTRhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzUwMDAiLCJwc3MiOiI5OWMwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTRhODAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNWQwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTVkOTAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjFiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYxZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjI5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MmUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2M2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2M2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY0MDAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTY4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0ODAwIiwic2hyIjoiYTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2OGEwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTk5ZDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTlhZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhOWIxMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE3YjAwMCIsInNociI6IjQ5NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE5YzIwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM3NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjNzY4MDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYzkxMTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTFmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkyNDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NDcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTRhMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmRjOTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjE5YzAwMCIsInNociI6IjRkNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTZhMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZDI3MDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRkYzIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZGRkMTAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGRmYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUwOTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJmODAwIiwic2hyIjoiOTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUyYjAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMDJlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUwNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjY3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUwNDIwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUxYTQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMWFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMWFmMDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUyYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE5YzAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUyYzMwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU0MjEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjODAwIiwic2hyIjoiMTRkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTQzNTAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MDcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkyZDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MzkwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGU5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk3YTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5N2YwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5OWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk5ZDAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlY2ExMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImM0MDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVjY2UwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZDgyMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZDg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkODcwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkOTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYmEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRjNjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZDMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRmMjAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTUyMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNzMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTg5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzE4MDAiLCJzaHIiOiJkNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZThkMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmFlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmI2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZmZkOTk1MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmZmQ5YmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiOTI5NDAwMCJ9fX0sInR0cyI6NzM2MTQsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCi17InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU1MDQxNzc5LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMzNhNDA2MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzNTA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVkYzAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTE2ZDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDEyN2UwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxNTlhMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYxZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjNlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY1ZTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmUyZDAwMCIsInBzcyI6IjJlMmQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0Zjk1MDAwIiwic3oiOiIzNTUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzM4M2QwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzOTNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TNTVhNHAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzYzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmJ2WTNwTCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueXREZDZxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2NmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UN2hldU0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlNMQUhUZiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzNlM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4wQUJMc3kgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2UzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjM2ViZDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSDQ4UjE4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52ek9xS08gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxQSDBzdSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSlI0Q2JhIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDM3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CT2tnVVAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBaUVZDdiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZGozWG52IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YSDRuSDUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkI1UE8wRiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucmR5aWtnIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5sQTBKZVMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmZhTkNYeCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSGpyd0dkIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDViZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5GUnd0cFQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlJpTnI4eSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOW9rdFJlIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDY3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5WY0l2QVUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnA3Y05EUSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXMyS1hxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDczZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5pbW5LaDEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnc2Z01CQiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uNzMwcDZtIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yeU5mQnAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMzRPYjJWIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDhiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ObEtaTFYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM0OGZkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52SU95STMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0YWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjNkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNDQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJhNjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGMwNjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMDAiLCJwc3MiOiIyMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM1MDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1MjA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzU0MDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM1NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmYzU2MDcwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1ZTA3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udG9TZVVLIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjAwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjl4NjFEOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYxMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRDZ2tvdyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYyMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43dnJTZ2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MzA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YjgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNjYwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzEwXSIsInBmIjo2LCJzYSI6IjdmMmZjNjYwODAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzZlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOF0iLCJwZiI6Niwic2EiOiI3ZjJmYzZlMDkwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM3NjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDddIiwicGYiOjYsInNhIjoiN2YyZmM3NjBhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzdlMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODIwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4NjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTJhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhNmEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE4YTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWNhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiYzQwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhZWEwMDAiLCJzeiI6ImM0MDAwIn0seyJicyI6eyJwcnYiOiJhMmYwMDAiLCJwc3MiOiJhZjQ4MDAiLCJzaHIiOiIyNTkwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmM4YmFlMDAwIiwic3oiOiIxYjY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNhNzE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjkwYTAwMCIsInBzcyI6IjkwYTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNhOTE1MDAwIiwic3oiOiJhOGIwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiM2EwMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2IzYzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6Niwic2EiOiI3ZjJmY2I1YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQ1MDAwIiwicHNzIjoiNjE4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiNWMwMDAwIiwic3oiOiJkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2I2OWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYjg5YzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjhkYzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjYjhmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA2XSIsInBmIjo2LCJzYSI6IjdmMmZjYjhmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MwZjQwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzE3ZjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2YyZmNjMWU1MDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmMmZjY2JhMjAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGI5NjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2YyZmNkYmE2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmMmZjZGJhYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZGRhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmMmZjZGRhYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmMmZjZGRhZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2YyZmNkZmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2YyZmNkZmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZGZiMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2RmYjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2UxYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTFiODAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZTFmMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2UzZjIwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTNmODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTNmYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2U0MGMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTYwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlNjBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmMmZjZTYwZjAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2YyZmNlNjhiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2YyZmNlODhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmMmZjZTg4YzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2U4OGYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2YyZmNlODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2YyZmNlYTk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWE5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2YyZmNlYTlhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VhOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2YyZmNlYzljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VjOWYwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZWNjYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWVjYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWVjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2VlY2UwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2YyZmNlZjhhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2YxOGEwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2YxOTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YxOTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YxOWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmMzlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjNhMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YzYTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y1YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmNWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmNWE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmNWE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y3YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNmN2E4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y3YjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNmOWFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y5YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2Y5YjEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZjZjljNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2YyZmNmYmM3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2YyZmNmYmNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2YyZmNmYmNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2YyZmNmYmNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmY2ZiY2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2YyZmNmYmYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmY2ZkZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZkZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2YyZmNmZGY1MDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2ZlMGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDAwMGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQwMDEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMDEyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAwMWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwMjE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDAyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDIxYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMjFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDQxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwNDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDA0MWUwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmMmZkMDRiZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmMmZkMDZiZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDZjODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDA2ZWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDhlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDhlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwOGVlMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwOTA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDBiMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQwYjJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDBkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMGQyZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkMGQzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwZjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwZjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2YyZmQwZjMyMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3ZjJmZDBmNGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3ZjJmZDExNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2YyZmQxMTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2YyZmQxMTRiMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmMmZkMTE1YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmMmZkMTM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3ZjJmZDEzNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3ZjJmZDEzNWMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2YyZmQxMzY3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2YyZmQxNTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmMmZkMTU2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxNTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmMmZkMTU2OTAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3ZjJmZDE2MWYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmMmZkMTgxZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxODI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZkMTgyNzAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2YyZmQxODZhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2YyZmQxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZkMWE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQxYTZkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDFhOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDFjOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQxYzhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWM4ZDAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmMmZkMWNjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDFlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmMmZkMWVjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFlY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2YyZmQxZWQyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQyMGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyMGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjJmZDIwZDQwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2YyZmQyMGYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjJmZDIyZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjJmZDIyZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjJmNTAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyM2EyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyNWExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyNWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjVmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDI1YTgwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDI5ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDJiZDYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyYmRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMmJlNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMmJlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQyYmViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQyYmVlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDJkZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2YyZmQyZGYwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmMmZkMmUwZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2YyZmQzMDBmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2YyZmQzMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzAxMjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDMyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2YyZmQzMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzIxZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzIyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzIyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzIyMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzIzMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzNDMzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzYzOTAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQzNzIyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQzOTIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzkyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzOTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTA4MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzkyYTAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzk4NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzOThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1YTAwMCIsInBzcyI6IjVkODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOThjMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYTA2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2EwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjcwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2YyZmQzYTBiMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmMmZkM2E0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2YyZmQzYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2YyZmQzYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2M1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1ZTAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2NhZjAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzY2Y5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQzZWY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzZWZkMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzZjA4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDQxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDQxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxMGEwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxM2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTQwMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTVkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE2MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE3YTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxODIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MThkMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIyYTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOTYwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIxZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIyZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMzgwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyNDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDI0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjRiMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyYjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmJiMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZDEwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmVkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDgwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3ZjJmZDQzMmEwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3ZjJmZDQzNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2YyZmQ0NTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3ZjJmZDQ1NTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDU1OTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0NTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDc1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0NzVmMDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0N2IyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmMmZkNDliMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0OWIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ5YjQwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRhYmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRjYjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkNGNjMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0Y2M5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0ZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDRlY2EwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmMmZkNGVkMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDUwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmMmZkNTBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDUwZDQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ1MGQ2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ1MmQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkNTJkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNTJkOTAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ1NDk0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDU2OTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTY5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDU2OWUwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmMmZkNTZiNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkNThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiI5MjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmMmZkNThiNDAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmMmZkNTk5YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3ZjJmZDViOTkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1YmEzMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDViYjkwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmMmZkNWM1NjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmMmZkNWU1NTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDVlNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkNWU1YzAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDVmYzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2MWM3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2IwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjFjZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDYxY2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2MWQ2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2M2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDYzZDgwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDYzZmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2NWZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDY2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjYwMjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY2M2EwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjgzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjgzZjAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ODY3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YTY3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZhNmMwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2YTkxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZjOTAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmM5NzAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZkY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ZmM5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZmY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmZkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDZmZDEwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDcwMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3MjBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzIwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzIwZTAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3MzEzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc1MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc1MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3NTE0MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzUyZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NzJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmMmZkNzczMjAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2YyZmQ3NzllMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2YyZmQ3OTllMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNzlhNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDc5YWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdiYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3YmFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdiYWQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdiYmUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZGJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdkYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2RiZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZGMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2ZjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2ZjMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZmM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkODFjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ4MWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDgxYzYwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDgyZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg0ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ4NGY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg0ZmIwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4NjAxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkODgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg4MDQwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4ODUzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDhhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDhhNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YTU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGE1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CaHJadlAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHBvblloIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3RtcC9nbDhmMktoTSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjN2EwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjODIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM4NTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYjQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2M1MDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQzZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNDcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDVhMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzZjMDAiLCJzaHIiOiJhYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ2ODAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjU5MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzYwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmUxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWQ4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlNjAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTA4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwOGQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MDlmMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGI0MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwZGEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBkZTAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkxMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEwZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTExMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MTE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTExNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMjcwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MmVhMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTMxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjQ5ODAwIiwic2hyIjoiZTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkzMTMwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDk0ZjAwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMzMDAwIiwic2hyIjoiOWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDk1MTAwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNjAwMCIsInBzcyI6IjM2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWE4NjAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFiYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YWMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjNjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWNlMDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWZlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYTAwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliMDIwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI0ZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI3MzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI4MjAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWJkYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWJlNTAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMDMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMyNDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMzYzAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljZDEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWNkNjAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDAxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDA1MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0OTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDFmMDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDllYzkwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDllZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZWYxMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmYzIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmNhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZWEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZjAwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEwMDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTAwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEwMDUwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTExMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTExOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTFhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGExMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGExMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMjQwMCIsInNociI6IjZjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTNhMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMzc5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTM4YzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTNhODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhM2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhM2FiMDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE0OTgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNDlmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE0YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiOTljMDAiLCJzaHIiOiI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE0YTgwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTVjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTVkMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNWQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE1ZDkwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYxYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTYyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjJlMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2NDAwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTY3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjgwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDgwMCIsInNociI6ImE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjhhMDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE5OWQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE5YWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTliMTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxN2IwMDAiLCJzaHIiOiI0OTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhOWMyMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2YyZmRjNzY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTQwMDAiLCJwc3MiOiIxYTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzc2ODAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGM5MTEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkxZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzkyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MjQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk0YTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzk2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxOWMwMDAiLCJzaHIiOiI0ZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2YTAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGQyNzAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZGMyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGRkZDEwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRkZmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMDkwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyZjgwMCIsInNociI6Ijk0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMmIwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTAyZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjEwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMDQyMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMWE0MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTFhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTFhZjAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMmJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMmMwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxOWMwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMmMzMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlNDIxMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzgwMCIsInNociI6IjE0ZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU0MzUwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTA3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlOTJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MmQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTM5MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5N2EwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTdmMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYTQwMCIsInNociI6Ijg1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5OWQwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWNhMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlY2M0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjNDAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlY2NlMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWQ4MjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZDg3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZDk3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGJhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYzYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGQzMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZjIwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU0ZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU1MjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU2ZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTczMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU4OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMxODAwIiwic2hyIjoiZDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU4ZDAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZhZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmZmZDk5NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZmZkOWJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjkzYTUwMDAifX19LCJ0dHMiOjkwMjMxLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoteyJwaWQiOjE1MjU4LCJ0aWQiOjE1MzA3LCJ0cyI6MTU3NjY1NTEzNjM0OCwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjM0YWY3ZDAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMzYwNDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ZGMwMCIsInNociI6IjE1MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjJiMDAwIiwicHNzIjoiMmI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjE5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwMDk5MDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdG1wL2dsOGYyS2hNIChkZWxldGVkKSIsInBmIjo1LCJzYSI6IjQwMTY2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwMzU2MDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MGM1MDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDExNmQwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxMjdlMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTU5YTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIxNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmMWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYzZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmNWUwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJmMzcwMDAiLCJwc3MiOiIyZjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY5NTAwMCIsInN6IjoiMzY1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4yY1pjZG8gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzODNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWXRFcTNPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjMzkzZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2MzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2Q3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TTEFIVGYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMEFCTHN5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjM2UzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ2RVJCTiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSmFxUmp0IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2U3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzNlYmQwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQ3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDUzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDVmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wN2NORFEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlzMktYcSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uaW1uS2gxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDc3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucnlOZkJwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDgzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wUGNkdHMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTmxLWkxWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNDhmZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNGFmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGIzZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjQ0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYTYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJjNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRjMDYwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNTAwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTIwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1NDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNTYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmM1NjA3MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmYTAwMCIsInNociI6IjFmNDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWGhYOWRuIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNWUwNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYwMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MjA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjMwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDVmRTlUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjQwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmUwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVEMzcTJBIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjUwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzY2MDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMF0iLCJwZiI6Niwic2EiOiI3ZjJmYzY2MDgwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2ZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDhdIiwicGYiOjYsInNhIjoiN2YyZmM2ZTA5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNzYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA3XSIsInBmIjo2LCJzYSI6IjdmMmZjNzYwYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM3ZTBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzgyMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODYwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEyYTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTZhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhOGEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFjYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNzAwMCIsInNociI6ImM0MDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWVhMDAwIiwic3oiOiJjNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTJmMDAwIiwicHNzIjoiYWY0ODAwIiwic2hyIjoiMjU5MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjOGJhZTAwMCIsInN6IjoiMWI2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYTcxNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI5MGEwMDAiLCJwc3MiOiI5MGE0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYTkxNTAwMCIsInN6IjoiYThiMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjE5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjNhMDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2IzYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiM2MwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjYsInNhIjoiN2YyZmNiNWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0NTAwMCIsInBzcyI6IjYxODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjVjMDAwMCIsInN6IjoiZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiNjlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2I4OWMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2I4ZGMwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmY2I4ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNl0iLCJwZiI6Niwic2EiOiI3ZjJmY2I4ZjQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMGY0MDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MxN2YwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmMmZjYzFlNTAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjJmY2NiYTIwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RiOTYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZGJhNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2RiYWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2RkYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2YyZmNkZGFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjJmY2RkYWMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjJmY2RkYWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmMmZjZGZhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmMmZjZGZhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2RmYjAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2YyZmNkZmI2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlMWI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UxYjgwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2UxZjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNlM2YyMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2UzZjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UzZmEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNlNDBjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2U2MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjJmY2U2MGYwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmMmZjZTY4YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmMmZjZTg4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjJmY2U4OGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2YyZmNlODhmMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZTg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWE5YTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2YyZmNlYTlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWM5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2YyZmNlYzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2YyZmNlYzlmMDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VjY2IwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VlY2EwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlZWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2YyZmNlZWNlMDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmMmZjZWY4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2YyZmNmMThhMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2YyZmNmMTk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmMTk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmMTllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2YzOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YzYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmM2EyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmNWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjVhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjVhNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjVhNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmN2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmN2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjdhODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNmN2IwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjlhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNmOWIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmNmOWIxMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2Y5YzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2ZiYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmNmYmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmMmZjZmJjNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmMmZjZmJjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2YyZmNmYmNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmMmZjZmJmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2YyZmNmZGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2YyZmNmZGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZmRmNTAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2YyZmNmZTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQwMDBlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDAxMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMDFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDIxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAyMWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDIxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA0MWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2YyZmQwNDFlMDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDA0YmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDA2YmYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2YyZmQwNmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDA2YzgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2YyZmQwNmVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA4ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA4ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMDhlZTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkMDkwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwYjA3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQwYjBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmMmZkMGIyYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2YyZmQwZDI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQwZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDBkMmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDBkMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGYyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmMmZkMGYzMjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2YyZmQwZjRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2YyZmQxMTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmMmZkMTE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmMmZkMTE0YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjJmZDExNWEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjJmZDEzNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2YyZmQxMzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2YyZmQxMzVjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmMmZkMTM2NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmMmZkMTU2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTU2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjJmZDE1NjkwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2YyZmQxNjFmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjJmZDE4MWYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDE4MjcwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmMmZkMTg2YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZkMWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDFhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMWE2ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQxYThhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQxYzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxYzhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFjOGQwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFjY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2YyZmQxZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDFlY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2YyZmQxZWNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmMmZkMWVkMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMjBkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2YyZmQyMGQ0MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmMmZkMjBmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2YyZmQyMmYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2YyZmQyMmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDIyZjUwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjNhMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMjVhMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiI1ZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyNWE4MDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyOWQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyYmQ2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMmJkZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDJiZTQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDJiZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMmJlYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkMmJlZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQyZGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQyZGVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmMmZkMmRmMDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjJmZDJlMGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmMmZkMzAwZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmMmZkMzAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMwMTIwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2YyZmQzMDFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2YyZmQzMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzMjFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDMyMWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDMyMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDMyMjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMyMjIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMyMzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzNDMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzQzMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzNDM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM2MzkwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMzcyMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzkyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5MmEwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDM5ODcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzk4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNWEwMDAiLCJwc3MiOiI1ZDgwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzk4YzAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzYTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2EwNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2EwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmMmZkM2EwYjAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3ZjJmZDNhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmMmZkM2M0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmMmZkM2M0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWUwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTcwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNjYWYwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2NmOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkM2VmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2VmZDAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2YwODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQ0MTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQ0MTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTBhMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE0MDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNjEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxN2EwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTgyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4ZDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTk2MDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMWYwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMmUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjM4MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDI0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDI0YjAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmI2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJiYjAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmQxMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJlODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJlZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzAwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNTgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzA4MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDMyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2YyZmQ0MzJhMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2YyZmQ0MzU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmMmZkNDU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2YyZmQ0NTU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQ1NTkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDU1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQ3NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDc1ZjAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmMmZkNDdiMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDQ5YjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmMmZkNDliMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ0OWI0MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ0YWJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ0Y2I5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGNiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDRjYzAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmMmZkNGNjOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRlYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2YyZmQ0ZWNhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDRlZDMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2YyZmQ1MGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDUwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ1MGQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkNTBkNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkNTJkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTJkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDUyZDkwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNTQ5NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ1NjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQ1NjllMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDU2YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkNDAwIiwic2hyIjoiOTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjJmZDU4YjQwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjJmZDU5OWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2YyZmQ1Yjk5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2YyZmQ1YmI5MDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDVjNTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDVlNTUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2YyZmQ1ZTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDVlNWMwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ1ZmM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjFjNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2QwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2MWNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjFkNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2YyZmQ2M2Q4MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2YyZmQ2M2ZmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjVmZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY2MDIwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2NjNhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDY4M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY4M2YwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjg2NzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmE2NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2YTZjMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmE5MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YzkwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2Yzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZjOTcwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ZGNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmZjOTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZmZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2YyZmQ2ZmQxMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3MDBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmMmZkNzIwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDcyMGUwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzMxMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzUxNDAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDc1MmQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzcyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDc3MzIwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmMmZkNzc5ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmMmZkNzk5ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDc5YTcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3OWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3YmFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2JhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3YmFkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3YmJlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2RiZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZGJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdkYmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkN2RjMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdmYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdmYzMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkN2ZjNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDgxYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkODFjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ4MWM2MDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ4MmY2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ4NGY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkODRmNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4NGZiMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODYwMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4ODA0MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODg1MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4YTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4YTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGE1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhhNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQmhyWnZQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRwb25ZaCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5uY2Y3MlkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YzdhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzgzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjODUwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2EyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2E1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2FiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2I0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNjNTAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkM2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDQ3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGQ1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1YTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM2YzAwIiwic2hyIjoiYWMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNjgwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY1OTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Zjc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Zjc2MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFkODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTYwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MDhkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MDllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTA5ZjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBiNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGRhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwZGUwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTBjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTExNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMTUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTI0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTI3MDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTJlYTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkzMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0OTgwMCIsInNociI6ImUyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MzEzMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5NGYwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMzAwMCIsInNociI6IjllMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5NTEwMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWE4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhODYwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhYmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWFjMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhYzYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjZTAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFmZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjAyMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNGQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWI2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNzMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliODIwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliZGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWJlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliZTUwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzAzMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMjQwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljM2MwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5Y2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5Y2QxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5Y2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzAwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljZDYwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQwMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQwNTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDFhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDkwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQxZjAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDllYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZWM5MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWVmMTAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmMyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZjYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmUxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmVhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmYwMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMDAxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTAwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMDA1MDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMTEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTExYTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTJiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI2YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEzYTAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGEzNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTM3OTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMzg1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzOGMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzYTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE2ODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTNhYjAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNDk4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTQ5ZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NTAwMCIsInBzcyI6Ijk5YzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNGE4MDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE1YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE1YzgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTVkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNWQ5MDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjFmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyZTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYzZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjQwMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTY4MDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjg5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQ4MDAiLCJzaHIiOiJhNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY4YTAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhOTlkMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhOWFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE5YjEwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTdiMDAwIiwic2hyIjoiNDk3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTljMjAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzc2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM3NjgwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkwYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRjOTExMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MWYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTI0MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NGEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM5NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTljMDAwIiwic2hyIjoiNGQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NmEwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjliMDAwIiwicHNzIjoiOWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRkMjcwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGRjMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRkZGQxMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZGZiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTA5MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmY4MDAiLCJzaHIiOiI5NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTJiMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUwMmUwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTA0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxMDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTA0MjAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTFhNDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUxYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUxYWYwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTJiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlMmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTljMDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTJjMzAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTQyMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlNDMyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmM4MDAiLCJzaHIiOiIxNGQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlNDM1MDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkwNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTJkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkzOTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkZTk3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTdhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk3ZjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiI4NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTlkMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVjYTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlY2M2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzQwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWNjZTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkODIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWQ5NzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRiYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRiZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGM2MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRkMzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGYyMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNTIwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU3MzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlODkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMTgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlOGQwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmZmQ5OTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmZmZDliYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI5NGI0MDAwIn19fSwidHRzIjoxMTE3ODAsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCi17InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU1MjMzMjM1LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMzViYjAzMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzNzA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVkYzAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTE2ZDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDEyN2UwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxNTlhMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYxZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjNlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY1ZTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzA0NTAwMCIsInBzcyI6IjMwNDUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0Zjk1MDAwIiwic3oiOiIzNzUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzM4M2QwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzOTNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TNTVhNHAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzYzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmJ2WTNwTCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueXREZDZxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2NmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UN2hldU0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlNMQUhUZiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzNlM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4wQUJMc3kgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2UzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjM2ViZDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSDQ4UjE4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52ek9xS08gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxQSDBzdSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSlI0Q2JhIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDM3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CT2tnVVAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBaUVZDdiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZGozWG52IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YSDRuSDUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkI1UE8wRiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucmR5aWtnIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5sQTBKZVMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmZhTkNYeCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSGpyd0dkIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDViZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5GUnd0cFQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlJpTnI4eSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOW9rdFJlIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDY3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5WY0l2QVUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnA3Y05EUSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXMyS1hxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDczZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5pbW5LaDEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnc2Z01CQiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uNzMwcDZtIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yeU5mQnAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMzRPYjJWIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDhiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ObEtaTFYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM0OGZkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52SU95STMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0YWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjNkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNDQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJhNjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGMwNjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMDAiLCJwc3MiOiIyMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM1MDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1MjA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzU0MDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM1NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmYzU2MDcwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1ZTA3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udG9TZVVLIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjAwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjl4NjFEOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYxMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRDZ2tvdyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYyMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43dnJTZ2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MzA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MjgwMCIsInNociI6ImU1MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNjYwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzEwXSIsInBmIjo2LCJzYSI6IjdmMmZjNjYwODAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzZlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOF0iLCJwZiI6Niwic2EiOiI3ZjJmYzZlMDkwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM3NjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDddIiwicGYiOjYsInNhIjoiN2YyZmM3NjBhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzdlMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODIwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4NjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTJhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhNmEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE4YTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWNhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiYzQwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhZWEwMDAiLCJzeiI6ImM0MDAwIn0seyJicyI6eyJwcnYiOiJhMmYwMDAiLCJwc3MiOiJhZjQ4MDAiLCJzaHIiOiIyNTkwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmM4YmFlMDAwIiwic3oiOiIxYjY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNhNzE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjkwYTAwMCIsInBzcyI6IjkwYTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNhOTE1MDAwIiwic3oiOiJhOGIwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiM2EwMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2IzYzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6Niwic2EiOiI3ZjJmY2I1YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQ1MDAwIiwicHNzIjoiNjE4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiNWMwMDAwIiwic3oiOiJkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2I2OWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYjg5YzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjhkYzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjYjhmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA2XSIsInBmIjo2LCJzYSI6IjdmMmZjYjhmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MwZjQwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzE3ZjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2YyZmNjMWU1MDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmMmZjY2JhMjAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGI5NjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2YyZmNkYmE2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmMmZjZGJhYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZGRhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmMmZjZGRhYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmMmZjZGRhZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2YyZmNkZmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2YyZmNkZmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZGZiMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2RmYjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2UxYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTFiODAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZTFmMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2UzZjIwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTNmODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTNmYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2U0MGMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTYwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlNjBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmMmZjZTYwZjAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2YyZmNlNjhiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2YyZmNlODhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmMmZjZTg4YzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2U4OGYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2YyZmNlODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2YyZmNlYTk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWE5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2YyZmNlYTlhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VhOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2YyZmNlYzljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VjOWYwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZWNjYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWVjYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWVjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2VlY2UwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2YyZmNlZjhhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2YxOGEwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2YxOTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YxOTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YxOWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmMzlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjNhMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YzYTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y1YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmNWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmNWE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmNWE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y3YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNmN2E4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y3YjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNmOWFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y5YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2Y5YjEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZjZjljNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2YyZmNmYmM3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2YyZmNmYmNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2YyZmNmYmNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2YyZmNmYmNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmY2ZiY2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2YyZmNmYmYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmY2ZkZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZkZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2YyZmNmZGY1MDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2ZlMGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDAwMGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQwMDEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMDEyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAwMWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwMjE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDAyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDIxYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMjFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDQxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwNDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDA0MWUwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmMmZkMDRiZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmMmZkMDZiZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDZjODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDA2ZWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDhlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDhlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwOGVlMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwOTA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDBiMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQwYjJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDBkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMGQyZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkMGQzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwZjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwZjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2YyZmQwZjMyMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3ZjJmZDBmNGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3ZjJmZDExNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2YyZmQxMTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2YyZmQxMTRiMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmMmZkMTE1YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmMmZkMTM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3ZjJmZDEzNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3ZjJmZDEzNWMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2YyZmQxMzY3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2YyZmQxNTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmMmZkMTU2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxNTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmMmZkMTU2OTAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3ZjJmZDE2MWYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmMmZkMTgxZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxODI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZkMTgyNzAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2YyZmQxODZhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2YyZmQxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZkMWE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQxYTZkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDFhOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDFjOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQxYzhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWM4ZDAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmMmZkMWNjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDFlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmMmZkMWVjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFlY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2YyZmQxZWQyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQyMGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyMGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjJmZDIwZDQwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2YyZmQyMGYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjJmZDIyZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjJmZDIyZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjJmNTAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyM2EyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyNWExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyNWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjVmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDI1YTgwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDI5ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDJiZDYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyYmRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMmJlNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMmJlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQyYmViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQyYmVlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDJkZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2YyZmQyZGYwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmMmZkMmUwZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2YyZmQzMDBmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2YyZmQzMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzAxMjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDMyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2YyZmQzMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzIxZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzIyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzIyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzIyMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzIzMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzNDMzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzYzOTAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQzNzIyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQzOTIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzkyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzOTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTA4MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzkyYTAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzk4NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzOThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1YTAwMCIsInBzcyI6IjVkODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOThjMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYTA2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2EwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjcwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2YyZmQzYTBiMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmMmZkM2E0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2YyZmQzYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2YyZmQzYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2M1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1ZTAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2NhZjAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzY2Y5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQzZWY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzZWZkMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzZjA4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDQxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDQxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxMGEwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxM2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTQwMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTVkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE2MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE3YTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxODIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MThkMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIyYTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOTYwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIxZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIyZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMzgwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyNDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDI0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjRiMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyYjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmJiMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZDEwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmVkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDgwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3ZjJmZDQzMmEwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3ZjJmZDQzNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2YyZmQ0NTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3ZjJmZDQ1NTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDU1OTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0NTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDc1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0NzVmMDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0N2IyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmMmZkNDliMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0OWIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ5YjQwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRhYmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRjYjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkNGNjMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0Y2M5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0ZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDRlY2EwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmMmZkNGVkMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDUwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmMmZkNTBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDUwZDQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ1MGQ2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ1MmQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkNTJkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNTJkOTAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ1NDk0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDU2OTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTY5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDU2OWUwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmMmZkNTZiNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkNThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiI5MjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmMmZkNThiNDAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmMmZkNTk5YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3ZjJmZDViOTkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1YmEzMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDViYjkwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmMmZkNWM1NjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmMmZkNWU1NTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDVlNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkNWU1YzAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDVmYzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2MWM3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2IwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjFjZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDYxY2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2MWQ2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2M2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDYzZDgwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDYzZmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2NWZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDY2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjYwMjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY2M2EwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjgzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjgzZjAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ODY3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YTY3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZhNmMwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2YTkxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZjOTAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmM5NzAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZkY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ZmM5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZmY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmZkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDZmZDEwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDcwMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3MjBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzIwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzIwZTAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3MzEzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc1MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc1MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3NTE0MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzUyZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NzJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmMmZkNzczMjAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2YyZmQ3NzllMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2YyZmQ3OTllMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNzlhNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDc5YWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdiYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3YmFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdiYWQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdiYmUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZGJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdkYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2RiZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZGMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2ZjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2ZjMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZmM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkODFjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ4MWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDgxYzYwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDgyZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg0ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ4NGY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg0ZmIwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4NjAxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkODgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg4MDQwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4ODUzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDhhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDhhNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YTU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGE1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CaHJadlAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHBvblloIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3RtcC9nbDhmMktoTSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjN2EwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjODIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM4NTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYjQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2M1MDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQzZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNDcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDVhMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzZjMDAiLCJzaHIiOiJhYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ2ODAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjU5MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzYwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmUxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWQ4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlNjAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTA4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwOGQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MDlmMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGI0MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwZGEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBkZTAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkxMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEwZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTExMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MTE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTExNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMjcwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MmVhMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTMxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjQ5ODAwIiwic2hyIjoiZTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkzMTMwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDk0ZjAwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMzMDAwIiwic2hyIjoiOWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDk1MTAwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNjAwMCIsInBzcyI6IjM2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWE4NjAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFiYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YWMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjNjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWNlMDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWZlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYTAwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliMDIwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI0ZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI3MzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI4MjAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWJkYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWJlNTAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMDMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMyNDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMzYzAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljZDEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWNkNjAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDAxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDA1MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0OTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDFmMDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDllYzkwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDllZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZWYxMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmYzIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmNhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZWEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZjAwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEwMDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTAwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEwMDUwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTExMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTExOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTFhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGExMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGExMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMjQwMCIsInNociI6IjZjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTNhMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMzc5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTM4YzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTNhODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhM2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhM2FiMDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE0OTgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNDlmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE0YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiOTljMDAiLCJzaHIiOiI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE0YTgwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTVjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTVkMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNWQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE1ZDkwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYxYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTYyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjJlMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2NDAwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTY3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjgwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDgwMCIsInNociI6ImE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjhhMDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE5OWQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE5YWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTliMTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxN2IwMDAiLCJzaHIiOiI0OTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhOWMyMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2YyZmRjNzY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTQwMDAiLCJwc3MiOiIxYTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzc2ODAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGM5MTEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkxZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzkyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MjQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk0YTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzk2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxOWMwMDAiLCJzaHIiOiI0ZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2YTAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGQyNzAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZGMyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGRkZDEwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRkZmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMDkwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyZjgwMCIsInNociI6Ijk0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMmIwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTAyZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjEwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMDQyMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMWE0MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTFhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTFhZjAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMmJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMmMwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxOWMwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMmMzMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlNDIxMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzgwMCIsInNociI6IjE0ZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU0MzUwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTA3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlOTJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MmQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTM5MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5N2EwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTdmMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYTQwMCIsInNociI6Ijg1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5OWQwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWNhMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlY2M0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjNDAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlY2NlMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWQ4MjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZDg3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZDk3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGJhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYzYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGQzMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZjIwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU0ZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU1MjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU2ZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTczMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU4OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMxODAwIiwic2hyIjoiZDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU4ZDAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZhZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmZmZDk5NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZmZkOWJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6Ijk1YzQwMDAifX19LCJ0dHMiOjEzMTM1MCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmEifSx7InBpZCI6MTUyNTgsInRpZCI6MCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoibnVtX2NwdXMiLCJhcmdzIjp7Im51bWJlciI6NDB9fSwKLXsicGlkIjoxNTI1OCwidGlkIjoxNTMwNywidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoicHJvY2Vzc19zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotMX19LAoteyJwaWQiOjE1MjU4LCJ0aWQiOjE1MzA3LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJHUFUgUHJvY2VzcyJ9fSwKLXsicGlkIjoxNTI1OCwidGlkIjoxNTMwNywidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDaHJvbWVfQ2hpbGRJT1RocmVhZCJ9fSwKLXsicGlkIjoxNTI3NiwidGlkIjowLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0MH19LAoteyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0sCi17InBpZCI6MTUyNzYsInRpZCI6MTUyNzcsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3NfbmFtZSIsImFyZ3MiOnsibmFtZSI6IlJlbmRlcmVyIn19LAoteyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX2xhYmVscyIsImFyZ3MiOnsibGFiZWxzIjoiY2hyb21lOi8vdHJhY2luZyJ9fSwKLXsicGlkIjoxNTI3NiwidGlkIjoxNTI3NiwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi0xfX0sCi17InBpZCI6MTUyNzYsInRpZCI6MTUyNzYsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ3JSZW5kZXJlck1haW4ifX0sCi17InBpZCI6MTUyNzYsInRpZCI6MTUyNzcsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ2hyb21lX0NoaWxkSU9UaHJlYWQifX0sCi17InBpZCI6MTUyNzYsInRpZCI6MTUyNzgsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ29tcG9zaXRvclRpbGVXb3JrZXIxLzE1Mjc4In19LAoteyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MTU3NjY1NDcwOTMwOSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjUzNGVkMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxMDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiJiNjgwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NzAwMCIsInBzcyI6IjU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDNjMGY0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZhOGQxZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MTZmODMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiJkYzZjMjgyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjI1MDAwIiwicHNzIjoiMjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg2MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg2NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjIwYTAwMCIsInBzcyI6IjIwYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NzAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NzQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyNzgwMDAiLCJwc3MiOiIyNzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTA0MDAwIiwic3oiOiIyNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2M3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZjcxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzMThlZGY4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGZhMDAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwZTNiZWMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcxMDFjZGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDE3YTYyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MWM5MDAwIiwic3oiOiIxMzcwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzczMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjM4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzYwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzcwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzdmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzEwMDAiLCJwc3MiOiIzMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5ZmYwMDAiLCJzeiI6IjFmN2NhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4NTAwMCIsInBzcyI6Ijg1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRkZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NDAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImNhMDAwIiwicHNzIjoiY2EwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODFmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgyMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODNmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNmU0NzFkZTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZmYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3Nzc5YTIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3OTA2NDgwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmUzZGQ5MzYxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzdmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTgyZDQ3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmViOTM0MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI0ZDQwMDAiLCJwc3MiOiI0ZDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWM4MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiI1YTgwMCIsInNociI6ImI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWQwMDAiLCJwc3MiOiJkMjAwMCIsInNociI6IjJjZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjViYzAwIiwic2hyIjoiOTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMGIwMDAiLCJwc3MiOiIzNDVjMDAiLCJzaHIiOiI0ODcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiOGE4MDAiLCJzaHIiOiIxZmUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTVjMDAiLCJzaHIiOiI1ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6IjUxMDAwIiwic2hyIjoiOWEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTVjMDAiLCJzaHIiOiI4NjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjQzYzIwMDAifX19LCJ0dHMiOjg2ODg2LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoteyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MTU3NjY1NDgyNTEwNiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjY1YTlmMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxMDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiJiMmMwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NzAwMCIsInBzcyI6IjU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDNjMGY0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZhOGQxZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MTZmODMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiJkYzZjMjgyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjI1MDAwIiwicHNzIjoiMjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg2MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg2NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjIwYTAwMCIsInBzcyI6IjIwYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NzAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NzQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyNzgwMDAiLCJwc3MiOiIyNzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTA0MDAwIiwic3oiOiIyNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2M3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZjcxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzMThlZGY4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGZhMDAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwZTNiZWMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcxMDFjZGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDE3YTYyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MWM5MDAwIiwic3oiOiIxMzcwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzczMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjM4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzYwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzcwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzdmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzEwMDAiLCJwc3MiOiIzMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5ZmYwMDAiLCJzeiI6IjFmN2NhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4NTAwMCIsInBzcyI6Ijg1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRkZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NDAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImNhMDAwIiwicHNzIjoiY2EwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODFmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgyMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODNmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNmU0NzFkZTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZmYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3Nzc5YTIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3OTA2NDgwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmUzZGQ5MzYxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzdmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTgyZDQ3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmViOTM0MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI1ZjQwMDAiLCJwc3MiOiI1ZjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiIxNDgwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6ImI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiJiOTQwMCIsInNociI6IjJkMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjVhODAwIiwic2hyIjoiOTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxZTkwMDAiLCJwc3MiOiIzMjc4MDAiLCJzaHIiOiI0YTkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiODcwMDAiLCJzaHIiOiIxZmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI1ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6IjUxMDAwIiwic2hyIjoiOWEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY0MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjQ0ZWQwMDAifX19LCJ0dHMiOjEwMTYzNywiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmQifSwKLXsicGlkIjoxNTI3NiwidGlkIjoxNTI3NywidHMiOjE1NzY2NTQ4OTYxMTcsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI3N2YxYTAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMTAwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiYjA4MDAiLCJzaHIiOiIyMDIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTA0MDAiLCJzaHIiOiI0NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiIxYWMwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTcwMDAiLCJwc3MiOiI1NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNGY2YzYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQzYzBmNDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2YThkMWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODE2ZjgzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiZGM2YzI4MjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIyNTAwMCIsInBzcyI6IjIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NjAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NjQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIyMGEwMDAiLCJwc3MiOiIyMGEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTBkODcwMDAwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTBkODc0MDAwMDAiLCJzeiI6ImMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMjk0NGNhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2EwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjc4MDAwIiwicHNzIjoiMjc4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwNDAwMCIsInN6IjoiMjc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNjN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGY3MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiIxYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMzE4ZWRmODAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMzE4ZWRmYTAwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBlM2JlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGUzYmVjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzEwMWNkYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MTAxY2RjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQxN2E2MjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzFjOTAwMCIsInN6IjoiMTM3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzczMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzczMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzgwMDAiLCJwc3MiOiIzODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc2MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc2M2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc3MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc3ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzhmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3OTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMxMDAwIiwicHNzIjoiMzEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3OTA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OWZmMDAwIiwic3oiOiIxZjdjYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODUwMDAiLCJwc3MiOiI4NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZGZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTQwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNTAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJjYTAwMCIsInBzcyI6ImNhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgxZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjUyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgzZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2ZTQ3MWRlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjZlNDcxZGUxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGZmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzc3OWEyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjc5MDY0ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzkwNjQ4MDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZTNkZDkzNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJlM2RkOTM2MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM3ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmU4MmQ0NzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZlYjkzNDAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI3MTUwMDAiLCJwc3MiOiI3MTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiIxNDQwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6ImI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiJiMzQwMCIsInNociI6IjJkNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZjAwMCIsInBzcyI6IjU2ODAwIiwic2hyIjoiOTkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxYTEwMDAiLCJwc3MiOiIyZmFjMDAiLCJzaHIiOiI0ZjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiODY4MDAiLCJzaHIiOiIxZmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwMCIsInNociI6IjU4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiNTEwMDAiLCJzaHIiOiI5YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjQwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNDYxMjAwMCJ9fX0sInR0cyI6MTIxMjM3LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYyJ9LAoteyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MTU3NjY1NTA0MjU0OSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjhhNTY4MCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxMDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNDQwMDAiLCJwc3MiOiJiMDgwMCIsInNociI6IjIwMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxMDQwMCIsInNociI6IjQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NzAwMCIsInBzcyI6IjU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDNjMGY0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZhOGQxZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MTZmODMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiJkYzZjMjgyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjI1MDAwIiwicHNzIjoiMjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg2MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg2NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjIwYTAwMCIsInBzcyI6IjIwYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NzAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NzQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyNzgwMDAiLCJwc3MiOiIyNzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTA0MDAwIiwic3oiOiIyNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2M3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZjcxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzMThlZGY4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGZhMDAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwZTNiZWMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcxMDFjZGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDE3YTYyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MWM5MDAwIiwic3oiOiIxMzcwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzczMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjM4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzYwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzcwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzdmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzEwMDAiLCJwc3MiOiIzMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5ZmYwMDAiLCJzeiI6IjFmN2NhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4NTAwMCIsInBzcyI6Ijg1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRkZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NDAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImNhMDAwIiwicHNzIjoiY2EwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODFmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgyMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODNmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNmU0NzFkZTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZmYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3Nzc5YTIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3OTA2NDgwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmUzZGQ5MzYxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzdmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTgyZDQ3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmViOTM0MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMGMwMCIsInNociI6IjkwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE1MTAwMCIsInBzcyI6IjE3NjgwMCIsInNociI6ImJjMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjgzZDAwMCIsInBzcyI6IjgzZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6ImUwODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiIxYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTI0NDNhYjIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYTI0NDNhZjIwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNhM2E4MjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiI5ZDAwMCIsInBzcyI6IjlkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNiMmVlZjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJkZDAwMCIsInBzcyI6ImRkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjMmYyMzMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0YzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNkNmVlMjRjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNkNmVlMjRkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZGozWG52IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YSDRuSDUgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkI1UE8wRiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucmR5aWtnIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjczNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wN2NORFEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNzc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlzMktYcSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3YjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjhmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOTc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI5YjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmEzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNkVSQk4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkphcVJqdCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSDQ4UjE4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmI3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52ek9xS08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxQSDBzdSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSlI0Q2JhIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmMzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CT2tnVVAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYzc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBaUVZDdiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uaW1uS2gxIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmQwMDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL2RlamF2dS9EZWphVnVTYW5zLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YmQ0MDAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5sQTBKZVMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZGY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmZhTkNYeCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSGpyd0dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmU3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5GUnd0cFQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlJpTnI4eSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOW9rdFJlIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmYzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5WY0l2QVUgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZjc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnc2Z01CQiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTmxLWkxWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmZmNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL1RpbWVzX05ld19Sb21hbi50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWMyMWYwMDAiLCJzeiI6IjUxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL21zdHRjb3JlZm9udHMvQXJpYWxfQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWMyNzAwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uNzMwcDZtIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucnlOZkJwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzJmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFBjZHRzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzMzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMzRPYjJWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52SU95STMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjM2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL2RlamF2dS9EZWphVnVTYW5zTW9uby50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWMzZjYwMDAiLCJzeiI6IjUyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWM0NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMyMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWM0NDkwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjYzQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjFdIiwicGYiOjYsInNhIjoiN2Y5OTVjYzRhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDQ0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE3XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDQ0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWRjNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk1ZGM0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIyMmYwMDAiLCJwc3MiOiIyMmY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcUdJMzMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlNDRjMDAwIiwic3oiOiI0MDEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udG9TZVVLIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTg0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjl4NjFEOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU5NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRDZ2tvdyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWVhNGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43dnJTZ2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYjRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzEyXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1ZjQ4YTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk2XSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4N10iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzldIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc4XSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3N10iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjhjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6IjE0NDAwIiwic2hyIjoiMmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxMWMwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMmYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQmhyWnZQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRwb25ZaCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjU2ODAwIiwic2hyIjoiYjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6ImIzNDAwIiwic2hyIjoiMmQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJmMDAwIiwicHNzIjoiNTY4MDAiLCJzaHIiOiI5OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjE5ZjAwMCIsInBzcyI6IjJmOTQwMCIsInNociI6IjRmMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiI4NjQwMCIsInNociI6IjFmZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiNTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiI1MTAwMCIsInNociI6IjlhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE2NDAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI0NzM3MDAwIn19fSwidHRzIjoxMzg5MjgsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJiIn0sCi17InBpZCI6MTUyNzYsInRpZCI6MTUyNzcsInRzIjoxNTc2NjU1MTM1NzQ1LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiOWNiYTIwIn0sIm91dGVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjEwMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI0NDAwMCIsInBzcyI6ImIwODAwIiwic2hyIjoiMjAyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjEwNDAwIiwic2hyIjoiNDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFhMDAwIiwicHNzIjoiMWFjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNGY2YzYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU3MDAwIiwicHNzIjoiNTcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0M2MwZjQwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmE4ZDFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjgxNmY4MzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6ImRjNmMyODIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMjUwMDAiLCJwc3MiOiIyMjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTBkODYwMDAwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTBkODY0MDAwMDAiLCJzeiI6ImMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjBhMDAwIiwicHNzIjoiMjBhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg3MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg3NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjI3ODAwMCIsInBzcyI6IjI3ODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMjk0NGNhMDQwMDAiLCJzeiI6IjI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYzdjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMzE4ZWRmNzEwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTMxOGVkZjgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZmEwMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBlM2JlYzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBlM2JlZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzEwMWNkYzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzEwMWNkZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMTdhNjIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzcxYzkwMDAiLCJzeiI6IjEzNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3MzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzczMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc0MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc1MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzUwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc2MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM4MDAwIiwicHNzIjoiMzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NjA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc3MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NzA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3N2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc4MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc4MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzkwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMTAwMCIsInBzcyI6IjMxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzkwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzlmZjAwMCIsInN6IjoiMWY3Y2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6Ijg1MDAwIiwicHNzIjoiODUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGRmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0ZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU0MDAwIiwicHNzIjoiNTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0ZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGZmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI1MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI1MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNTFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiY2EwMDAiLCJwc3MiOiJjYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgyMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODIwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTMwMDAiLCJwc3MiOiI1MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgyMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4M2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2ZTQ3MWRlMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2ZTQ3MWRmZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjc3NzlhMjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjc5MDY0ODAxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjc5MDY0ODFmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmQyNDlkZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjJiMDAwIiwicHNzIjoiMmIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmQyNDlkZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTNkZDkzNjEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZTNkZDkzN2YwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJlODJkNDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZWI5MzQwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEwYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUxMDAwIiwicHNzIjoiMTc2ODAwIiwic2hyIjoiYmMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTY0MDAwIiwicHNzIjoiOTY0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiZTA4MDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNhMjQ0M2FiMjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNhMjQ0M2FmMjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EzYTgyMzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjlkMDAwIiwicHNzIjoiOWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2IyZWVmMzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImRkMDAwIiwicHNzIjoiZGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2MyZjIzMzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNkNmVlMjRjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Q2ZWUyNGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kajNYbnYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNjc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhING5INSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2YjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQjVQTzBGIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yZHlpa2cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNzM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnA3Y05EUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXMyS1hxIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjdiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TNTVhNHAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOGY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmJ2WTNwTCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI5NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueXREZDZxIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjliNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UN2hldU0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ2RVJCTiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSmFxUmp0IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmIzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5INDhSMTggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZ6T3FLTyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFBIMHN1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KUjRDYmEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYzM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJPa2dVUCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFpRVkN2IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5pbW5LaDEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZDAwMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y5OTViZDQwMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmxBMEplUyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZmFOQ1h4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmUzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5IanJ3R2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkZSd3RwVCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUmlOcjh5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmVmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45b2t0UmUgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlZjSXZBVSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udzZnTUJCIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ObEtaTFYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmY2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL21zdHRjb3JlZm9udHMvVGltZXNfTmV3X1JvbWFuLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YzIxZjAwMCIsInN6IjoiNTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbF9Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YzI3MDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43MzBwNm0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yeU5mQnAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wUGNkdHMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMzM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4zNE9iMlYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMzc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZJT3lJMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnNNb25vLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YzNmNjAwMCIsInN6IjoiNTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1YzQ0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIwXSIsInBmIjo2LCJzYSI6IjdmOTk1YzQ0OTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWNjNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMyMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWNjNGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkNDRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTddIiwicGYiOjYsInNhIjoiN2Y5OTVkNDRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZGM0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTVkYzRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjIyZjAwMCIsInBzcyI6IjIyZjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRxR0kzMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU0NGMwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS50b1NlVUsgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlODRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXg2MUQ4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTk0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZENna293IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWE0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjd2clNnZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWViNGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTJdIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL21zdHRjb3JlZm9udHMvQXJpYWwudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVmNDhhMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTZdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg3XSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzhdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc3XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOGMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiMTNjMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjExYzAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiYjQwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIyZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CaHJadlAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHBvblloIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiNTY4MDAiLCJzaHIiOiJiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiYWZjMDAiLCJzaHIiOiIyZDkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmYwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6Ijk5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkzMDAwIiwicHNzIjoiMmYyNDAwIiwic2hyIjoiNGZmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6Ijg1YzAwIiwic2hyIjoiMWZmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiI1ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6IjUxMDAwIiwic2hyIjoiOWEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY0MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjQ4NWUwMDAifX19LCJ0dHMiOjE2MDEzOSwiaWQiOiIweGFmNTkzYjRjODVlZmRjZjgifSwKLXsicGlkIjoxNTI3NiwidGlkIjoxNTI3NywidHMiOjE1NzY2NTUyMzQ5NzAsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiJhZWYzOTAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMTAwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiYjA4MDAiLCJzaHIiOiIyMDIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTA0MDAiLCJzaHIiOiI0NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiIxYWMwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTcwMDAiLCJwc3MiOiI1NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNGY2YzYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQzYzBmNDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2YThkMWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODE2ZjgzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiZGM2YzI4MjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIyNTAwMCIsInBzcyI6IjIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NjAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NjQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIyMGEwMDAiLCJwc3MiOiIyMGEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTBkODcwMDAwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTBkODc0MDAwMDAiLCJzeiI6ImMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMjk0NGNhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2EwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjc4MDAwIiwicHNzIjoiMjc4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwNDAwMCIsInN6IjoiMjc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNjN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGY3MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiIxYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMzE4ZWRmODAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMzE4ZWRmYTAwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBlM2JlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGUzYmVjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzEwMWNkYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MTAxY2RjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQxN2E2MjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzFjOTAwMCIsInN6IjoiMTM3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzczMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzczMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzgwMDAiLCJwc3MiOiIzODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc2MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc2M2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc3MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc3ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzhmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3OTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMxMDAwIiwicHNzIjoiMzEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3OTA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OWZmMDAwIiwic3oiOiIxZjdjYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODUwMDAiLCJwc3MiOiI4NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZGZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTQwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNTAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJjYTAwMCIsInBzcyI6ImNhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgxZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MzAwMCIsInBzcyI6IjUzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgzZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2ZTQ3MWRlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjZlNDcxZGUxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGZmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzc3OWEyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjc5MDY0ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzkwNjQ4MDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZTNkZDkzNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJlM2RkOTM2MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM3ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmU4MmQ0NzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZlYjkzNDAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiJhODcwMDAiLCJwc3MiOiJhODcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjMxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6ImI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiJhZTAwMCIsInNociI6IjJkYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjRlYzAwIiwic2hyIjoiYTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMjMwMDAiLCJwc3MiOiIyYjhjMDAiLCJzaHIiOiI1NmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiODQ4MDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwMCIsInNociI6IjU4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiNGE0MDAiLCJzaHIiOiI5YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjQwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNDk4MTAwMCJ9fX0sInR0cyI6MTgxMjA1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYSJ9LHsicGlkIjoxNTI3NiwidGlkIjoxNTI3OSwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDb21wb3NpdG9yVGlsZVdvcmtlcjIvMTUyNzkifX0seyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NDY5MTY4OSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjE3MTczODAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjE0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc0OTAwMCIsInBzcyI6IjdlMzQwMCIsInNociI6IjI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUxMDAwIiwicHNzIjoiZTQwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNzVhMDAwIiwicHNzIjoiMTc1YTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6ImJhMDAwIiwicHNzIjoiYmEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2YwYzZjMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmMGM2YzEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYjUwZDAwMCIsInN6IjoiODEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNThlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI3OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRxR0kzMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI5OGUwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1OTAwMCIsInNociI6ImIyMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU3NDliMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlN2M5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjcwXSIsInBmIjo2LCJzYSI6IjdmNjRlN2M5YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg0OWMwMDAiLCJzeiI6IjM0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjowLCJzYSI6IjdmNjRlODRkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODZkMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg2ZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjRlODZkNjAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg3MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlODkwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4OTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjUsInNhIjoiN2Y2NGU4OTA4MDAwIiwic3oiOiI1OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjAsInNhIjoiN2Y2NGU4OTYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo0LCJzYSI6IjdmNjRlOGI2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjYsInNhIjoiN2Y2NGU4YjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZThiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZThiNjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZThiNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlOGQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlOGQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NSwic2EiOiI3ZjY0ZThkNmQwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjAsInNhIjoiN2Y2NGU4ZDg3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NCwic2EiOiI3ZjY0ZThmODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjliMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGY5ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzEiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8wIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzMiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmE3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZThmYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZThmYWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU5N2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjhdIiwicGYiOjYsInNhIjoiN2Y2NGU5N2FiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTlmYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTlmYjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTFhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRlYTFiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGVhMWIxMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZWExYmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NGVhM2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlYTNiZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvbWltZS9taW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGVhM2MwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVhM2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjZdIiwicGYiOjYsInNhIjoiN2Y2NGVhM2RmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYWJkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY1XSIsInBmIjo2LCJzYSI6IjdmNjRlYWJlMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGViM2UxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjRdIiwicGYiOjYsInNhIjoiN2Y2NGViM2UyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYmJlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYzXSIsInBmIjo2LCJzYSI6IjdmNjRlYmJlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWMzZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWMzZTQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjBdIiwicGYiOjYsInNhIjoiN2Y2NGVjYmU1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDNlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NGVkM2VkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDVlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkNWVmMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDYwNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkODA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkODA3MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDgyMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkYTFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkYTIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjUsInNhIjoiN2Y2NGVkYTIyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6MCwic2EiOiI3ZjY0ZWRhMzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6NCwic2EiOiI3ZjY0ZWRjMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjYsInNhIjoiN2Y2NGVkYzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS9wdWxzZS1zaG0tNDEyNTA5NTYxNiIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMzAwMCIsInN6IjoiNDAwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYxYzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTldIiwicGYiOjYsInNhIjoiN2Y2NGYxYzM1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjI0MzUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjAsInNhIjoiN2Y2NGYyNDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjQsInNhIjoiN2Y2NGYyNjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo2LCJzYSI6IjdmNjRmMjYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo1LCJzYSI6IjdmNjRmMjYzZTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjAsInNhIjoiN2Y2NGYyNjZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjQsInNhIjoiN2Y2NGYyODY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo2LCJzYSI6IjdmNjRmMjg2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo1LCJzYSI6IjdmNjRmMjg2YjAwMCIsInN6IjoiMmIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjowLCJzYSI6IjdmNjRmMmIxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjQsInNhIjoiN2Y2NGYyZDFkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6Niwic2EiOiI3ZjY0ZjJkMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo1LCJzYSI6IjdmNjRmMmQzYTAwMCIsInN6IjoiMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjowLCJzYSI6IjdmNjRmMmQ2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZjJmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo2LCJzYSI6IjdmNjRmMmY2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGYyZjZiMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGYyZjgyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmMzE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjMxODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo1LCJzYSI6IjdmNjRmMzE4NTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjAsInNhIjoiN2Y2NGYzMThhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo0LCJzYSI6IjdmNjRmMzM4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjYsInNhIjoiN2Y2NGYzMzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjUsInNhIjoiN2Y2NGYzMzhiMDAwIiwic3oiOiI2MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjowLCJzYSI6IjdmNjRmMzNlYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjQsInNhIjoiN2Y2NGYzNWVjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjYsInNhIjoiN2Y2NGYzNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM1ZWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjUsInNhIjoiN2Y2NGYzNWYzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjowLCJzYSI6IjdmNjRmMzVmYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo0LCJzYSI6IjdmNjRmMzdmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmMzdmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYzN2ZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTddIiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxN2MwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmM2ZmZTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZjQwNjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmNDI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmNDI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRmNDI2NTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjRmNDI2ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGY0NDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGY0NDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NSwic2EiOiI3ZjY0ZjQ0NzAwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjowLCJzYSI6IjdmNjRmNDRiNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjo0LCJzYSI6IjdmNjRmNDZiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNDZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU2XSIsInBmIjo2LCJzYSI6IjdmNjRmNDZiYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjRlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjRlYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY1NmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTRdIiwicGYiOjYsInNhIjoiN2Y2NGY1NmJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUzXSIsInBmIjo2LCJzYSI6IjdmNjRmNWViZDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjY2YmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZjY2YmUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTFdIiwicGYiOjYsInNhIjoiN2Y2NGY2ZWJmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNzZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUwXSIsInBmIjo2LCJzYSI6IjdmNjRmNzZjMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjdlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjdlYzEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY4NmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDhdIiwicGYiOjYsInNhIjoiN2Y2NGY4NmMyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjFhNjAwMCIsInBzcyI6IjFhZDAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjhlYzIwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEyODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWU4NzAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY5ZWI5MDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmVjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZmEwNjgwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjFkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhMTlkMDAwIiwic3oiOiI4NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTIyMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE0MjAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhNDM1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE0NDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTQ0MjAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE0YmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYTZiYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTZiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNmJkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDAwMCIsInNociI6Ijc3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y2NGZhNmMxMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y2NGZhNzc1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmNjRmYTk3NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y2NGZhOTc3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGZhOTdhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE5OWIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTlkYjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYWJkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRmYWJkZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDddIiwicGYiOjYsInNhIjoiN2Y2NGZhYmU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmFiZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZWQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiM2VkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmIzZWUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiYmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDRdIiwicGYiOjYsInNhIjoiN2Y2NGZiYmVmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYzNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQzXSIsInBmIjo2LCJzYSI6IjdmNjRmYzNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZmNiZjAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZhYTQxYWEyMmUxOGI4ZmEwNmExMmRhMjhlYTljMjhiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NhNjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jMDU4ODBkZTU3ZDFmNWU5NDhmZGZhY2MxMzg3NzVkOS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOTQ1Njc3ZWI3YWVhZjYyZjFkNTBlZmMzZmIzZWM3ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMmNkMTc2MTVjYTU5NGZhMjk1OWFlMTczMjkyZTUwNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2MwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2ZkOTUwNTk1MGMwNDhhNzdkYzRiNzEwZWI2YTYyOGVkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZGM3OWQzZWEwNmE3YzZmZmE4NmVkZTg1ZjNiYjVkZi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTcwNzFmNGEyOWZhODcwZjQzMjMzMjFjMTU0ZWJhMDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2EyYWI3NDc2NGIwNzI3OWU3YzM2ZGRiMWQzMDJjZjI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2M2OWYwNGFiMDUwMDRlMzFhNmQ1ZTcxNTc2NGYxNmQ4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wZDhjM2IyYWMwOTA0Y2I4YTU3YTc1N2FkMTFhNGEwOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNjQ2YWRkYjg0NDRmYWE3NGVlMTM4YWEwMGFiMGI2YTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTc1NWFmZTRhMDhiZjViOTc4NTJjZWI3NDAwYjQ3YmMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2QwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMjBiZDc5YWQ5NzA5NDQwNmY3ZDFiOTY1NGJmYmQ5MjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2Q3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOWMwNjI0MTA4YjlhMmFlODU1MmY2NjQxMjViZTgzNTYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmQ0MTI4OGZkNzBiMGJlMjJlOGMzYTkxZTAzMmVlYzAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RhMWJkNWNhODQ0M2ZmZTIyOTI3YTIzY2U0MzFkMTk4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNjM1NGUzYWM0M2FmNjdiZDhkN2I4ZTQzYzM0ZTQ5Zi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzA0YWFiYzBhNzhhYzAxOWNmOTQ1NDM4OTk3NzExNmQyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NmMDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMWFjOWViODAzOTQ0ZmRlMTQ2MTM4Yzc5MWY1Y2M1NmEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM4NWMwNjA0YTE4ODE5OGYwNGQxMzNlNTRhYmE3ZmU3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYzA1ZGI2NjY0Mjg1Y2MyZjEyYmY2OWMxMzlhZTRjMy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNGYzZTMwMzdjOTk4MGM4M2I1M2E5MzUxZWZhZGVmNjItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzc2N2E4MjQ0ZmMwMjIwY2ZiNTY3YTgzOWQwMzkyZTBiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg4MDE0OTc5NTg2MzBhODFiNzFhY2U3YzVmOWIzMmE4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwZTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzY1YjU1ZjIxMGMwYTIyZTlhMTllMzUxOTEyNDBmMzItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDEzMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzMwNDc4MTRkZjlhMmYwNjdiZDJkOTZhMmI5YzM2ZTVhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q0ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RlOTQ4NmYwYjQ3YTRkNzY4YTU5NGNiNDE5OGNiMWM2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I0N2M0ZTFlY2QwNzA5Mjc4ZjQ5MTBjMTg3NzdhNTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDUyYTg2NDQwNzNkNTRjMTM2NzkzMDJjYTExODA2OTUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDVlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjgwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzNmNzMyOWM1MjkzZmZkNTEwZWRlZjc4ZjczODc0Y2ZkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3MTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTg5YTQ4ODYyMzk4ZWQ4MGEzZDYwNjZmNGY1NmY0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkN2EwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UxM2IyMGZkYjA4MzQ0ZTBlNjY0ODY0Y2MyZWRlNTNkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q4NTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ2N2MwMTllNTgyZWUzNTM0MzVlYTVjMjFkMTM3ZWY2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q5YzAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmY2RiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQyXSIsInBmIjo2LCJzYSI6IjdmNjRmY2RiYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmQ1YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmQ1YmMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmRkYmMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjowLCJzYSI6IjdmNjRmZGRjNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZGZjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNGIwMDAiLCJwc3MiOiI0YzgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvZ3NjaGVtYXMuY29tcGlsZWQiLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzkwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMDE4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmUyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUyMWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUyMjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmU0MjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZTYzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjM5XSIsInBmIjo2LCJzYSI6IjdmNjRmZTYzYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWM4MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWUzYTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWVjNTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjQ2MDAwIiwicHNzIjoiNTE0MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y2NGZlZjJiMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmNjRmZjhlODAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMDhkYzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwOGVjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMDhmMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMGFlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmNjUwMGFmMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmNjUwMGFmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y2NTAwY2Y0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y2NTAwY2Y1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMGNmNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDBjZmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDBlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMGVmZTAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMGYzOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDExMzgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTEzZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMTE0MDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDExNTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTM1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTM1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxMzU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmNjUwMTM1NTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y2NTAxM2QxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y2NTAxNWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmNjUwMTVkMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE1ZDUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAxNWRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAxN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTdkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y2NTAxN2UwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE3ZTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y2NTAxOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTllNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE5ZTUwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMWExMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMWMxMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDFjMTQwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y2NTAxY2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDFlZDAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDFlZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDFlZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDFlZTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjBlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjBlNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIwZTgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIyZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMmVhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMmVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI0ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAyNGVlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDI0ZjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNmY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI2ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDI2ZjcwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwMjcwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwMjkwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAyOTBkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAyOTEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAyOTExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwMjkxNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDI5MzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwMmIzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwMmIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDJiM2IwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMmI1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMmQ1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJkNTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmQ2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDJmNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMmY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZjYxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJmNjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzMTYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDMxNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmNjUwMzE2NDAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y2NTAzMjA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y2NTAzNDA1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y2NTAzNDBlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMzQzMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzNjMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzNjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMzYzNDAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwMzY0YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDM4NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMzg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzODRkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTAzODUwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmNjUwMzg3MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y2NTAzYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDNhNzMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDNhNzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwM2M3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmNjUwM2M3ODAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y2NTAzYzkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y2NTAzZThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmNjUwM2U5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmNjUwM2U5MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjY1MDNlYTAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjY1MDQwYTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y2NTA0MGExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y2NTA0MGEyMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmNjUwNDBhZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmNjUwNDJhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjY1MDQyYWYwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y2NTA0MzY1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjY1MDQ1NjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDQ1NmQwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwNDViMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwNDdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ3YjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNDdiMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA0N2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA0OWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y2NTA0OWQzMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YTEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGMwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y2NTA0YzEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwNGMxMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRjMTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRlMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjY1MDRlMWEwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y2NTA0ZTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjY1MDUwMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjY1MDUwM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTgwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUwM2IwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTBlODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTJlNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTJlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiI2MDgwMCIsInNociI6IjEzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MmVlMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1NzFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1OTFjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTI3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDU5MmEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDU5MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDU5MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNTkzMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwNTkzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1YjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y2NTA1YjM2MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmNjUwNWI1NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y2NTA1ZDU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y2NTA1ZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWQ1ODAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVkNjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVmNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjE3OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA2MTdlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjM3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MzdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiY2MwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYzN2YwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwNjQ2ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjY2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2NzAwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY2Y2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjZkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2ZDIwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjc0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY3NGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY3NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjY1MDY3NTEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y2NTA2Nzk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjY1MDY5OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjY1MDY5OTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjk5NjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhNDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjllZDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2OWY1MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZhM2YwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZjM2YwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNmM0MzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmM0ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTUwMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU4NjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmU5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTlhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmU5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU5ZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTcwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmViZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkMzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZGMwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY2NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3NDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmN2UwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjI2YzAwIiwic2hyIjoiMzkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmOTEwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZmZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMDEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcwMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjQwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAxNzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMmUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDMzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNGUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y2NTA3MDcwMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y2NTA3MDllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmNjUwNzI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y2NTA3MjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcyOWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzJhMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDc0YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzRhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3NGE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NGE1MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3NGY4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzZmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3NmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc2ZmEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc4MDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc5ZmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2EwNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3YTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwN2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmNjUwN2MxMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y2NTA3YzE5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmNjUwN2UxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y2NTA3ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2UxYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdlMWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDgwMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiY2QwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4MDFmMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDgxZGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwODNkOTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwODNkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTA4M2U0MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDgzZmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDg1ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiIxMDgwMCIsInNociI6IjhlMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y2NTA4NWZhMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y2NTA4NmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmNjUwODhkZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y2NTA4OGU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDg4ZmYwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmNjUwODk5YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmNjUwOGI5YjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDhiYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDhiYTIwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA4ZDBlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwOGYwZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4ZjE1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwOGYxYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTExZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y2NTA5MTFlMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y2NTA5MTQ1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmNjUwOTM0NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y2NTA5MzQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTM0ODAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDkzODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTU4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTU4NTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5NWFkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5N2FkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTdiMjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk3ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTlkNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTlkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyMDAwIiwic2hyIjoiZGQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk5ZGQwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5YjEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOWQwZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDlkMTcwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDlkNTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y2NTA5ZjUwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOWY1NDAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMDU5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGEyNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGEyNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBhMjVhMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTI3MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhNDcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhNDczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmNjUwYTQ3ODAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y2NTBhNGU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y2NTBhNmU0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYTZlZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE2ZjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGE4ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhOGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmNjUwYThmMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmNjUwYTkwNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFiMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWIwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhYjA1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFiMDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYWQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZDA5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFkMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFmMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWYwYzAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmNjUwYjAzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGIyM2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2ODAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGIyNDEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMzQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjU0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGI1NGEwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiNTk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI3OTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI3OWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiNzliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjc5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDc5NGEwODIxNjY2ZDc5MTkwZDU5YTM2Y2I0ZjQ0YjUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzU2Y2Y0ZjQ3NjlkMGY0YWJjODlhNDg5NWQ3YmQzYWUxLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iOWQ1MDZjOWFjMDZjMjBiNDMzMzU0ZmE2N2E3Mjk5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGM5ZWI4MGViZDFjMzY1NDFlYmUyODUyZDNiYjBjNDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg1ZTBhNTJjZTY0M2E3YmEyYWU1M2U1ZDY5NDljZWFkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mNmU2ZTBhNWMzZDJmNmFlMGMwYzJlMGVjZDQyYTk5Ny1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvN2VmMjI5OGZkZTQxY2M2ZWViN2FmNDJlNDhiN2QyOTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzE2MzI2NjgzMDM4YjI4MTc4M2EwZWY4YzY4MGUzYTEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ZjAyZDRjYjA0NWJkNmNlMTU2NjNlNDNmMzQ3YzlmOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YWIwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTBhYTUzYmNmYTUwNGU2NGY4NzgyM2MxNmJjMDFlYjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL3NpdGUiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvbG9jYWwiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi91c2VyLzE1ODE1OC9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5YzAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5YzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5YzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjljYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5Y2IwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjllZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWYxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjlmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWZhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmEwYjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYThkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmE5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhMDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmFhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmFhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiI5NzQwMCIsInNociI6IjE0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhZTAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYzlmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2FmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2I2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiY2I5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYmMwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDI3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiMjU4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyYzAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZDMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGU1MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE3MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZmEwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmUyMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlMjQwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTUyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmU1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNWIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTZkMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzAzMDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMwNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODgwMCIsInNociI6ImUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMDU5MDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMjM2MDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkMTAwMCIsInNociI6IjMyMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzI1NjAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM3Y2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjN2NjMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODAyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzgxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjE2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgxNDAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg0NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODQ4MDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4OGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4OTMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGE5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YjkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxZDQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGM4MDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTIwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTJiMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6IjExNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NDkwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTY3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk2YTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjVlYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTgyMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2ExNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2ExNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2ExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjE2MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2ExYzAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTRiMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiYmU0MDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E2NTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYzBmMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYzM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2MzNzAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2QwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDA4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QxMDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDI3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzNjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2Q0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkNGIwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U1NzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTYwMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNlNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNzEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiNDE0MDAiLCJzaHIiOiI3NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U4MDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQwYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBiZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZDIwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwZWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzQwMDAiLCJwc3MiOiI0YTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZjEwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDFkZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQxZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDFlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIzYzQwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDFlZTAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzBlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzE2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDMxZjAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNzQwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJlODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM4NjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkM2M1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzYzYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDNjZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNhODAwIiwic2hyIjoiYmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzZDAwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDZlMzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4YTgwMCIsInNociI6IjRlMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQ3MDgwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY0YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNGFlMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZjY1NzAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjY1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2YTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2OGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjkwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmE2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDYwMDAiLCJwc3MiOiIzYjIwMDAiLCJzaHIiOiI1NTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZiMDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGE2ZDAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjA4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTBiMTcwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiM2MwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNDEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOGMwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNGYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiOWY4MDAiLCJzaHIiOiJhZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjcxMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBkNzQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGQ4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGQ4ODAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGVlYTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBlZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAwIiwicHNzIjoiYzNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGVmNTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMDAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMDA2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjNhMDAwIiwicHNzIjoiN2M4MDAiLCJzaHIiOiJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTAwOTAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTE2NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMTc4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxYmIwMDAiLCJwc3MiOiIyMzJjMDAiLCJzaHIiOiIxN2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMTdiMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY0ZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjczMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiIyYWMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjdmMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExNmJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2YzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmM1MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiI3ODgwMCIsInNociI6IjExMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmUzMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE5ZTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYTBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRhNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYTE0MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWFjODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYWNkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYWRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjBjMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIxOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMzgwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWI5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWI5ODAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmI5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJjZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiI1MDgwMCIsInNociI6ImU1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiZDMwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZjQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExZDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmMmUyNTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNjlkZTAwMCJ9fX0sInR0cyI6NzMwNzIzLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoteyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NDgxMDI5NywicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjE4MzVlZjAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjE0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc1MzAwMCIsInBzcyI6IjdlYzQwMCIsInNociI6IjI1YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUxMDAwIiwicHNzIjoiZTQwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTJhMDAwIiwicHNzIjoiMTkyYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NzQ3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk3NDgwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiY2UwMDAiLCJwc3MiOiJjZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjBjNmMwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2YwYzZjMTAwMDAwIiwic3oiOiIxZjAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRiNTBkMDAwIiwic3oiOiI4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjc4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjk4ZTAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5vZlhxelggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTExMDAwIiwic3oiOiI4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ZTgwMCIsInNociI6ImJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM0XSIsInBmIjo2LCJzYSI6IjdmNjRlNzQ5YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTdjOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3MF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTdjOWMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4NDljMDAwIiwic3oiOiIzNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg0ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg2ZDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NGU4NmQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg2ZDYwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmd2ZnNkYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4NzA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg5MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRlODkwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo1LCJzYSI6IjdmNjRlODkwODAwMCIsInN6IjoiNTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjowLCJzYSI6IjdmNjRlODk2MTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmlidXMtMS4wLnNvLjUuMC41MDUiLCJwZiI6NCwic2EiOiI3ZjY0ZThiNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo2LCJzYSI6IjdmNjRlOGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4YjY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4YjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZThkNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZThkNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjUsInNhIjoiN2Y2NGU4ZDZkMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzbWVudS1nbGliLnNvLjQuMC4xMiIsInBmIjowLCJzYSI6IjdmNjRlOGQ4NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjQsInNhIjoiN2Y2NGU4Zjg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjYsInNhIjoiN2Y2NGU4Zjg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMyIsInBmIjo2LCJzYSI6IjdmNjRlOGY5YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjlmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlOGZhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMSIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU4ZmE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjldIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmFhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlOTdhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY4XSIsInBmIjo2LCJzYSI6IjdmNjRlOTdhYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGU5ZmFiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGU5ZmIwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZWExYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWExYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRlYTFiMTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGVhMWJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGVhM2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzAiLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlYTNjMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYTNkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY2XSIsInBmIjo2LCJzYSI6IjdmNjRlYTNkZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWFiZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWFiZTAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZWIzZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYjNlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY0XSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWJiZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2M10iLCJwZiI6Niwic2EiOiI3ZjY0ZWJiZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjM2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjFdIiwicGYiOjYsInNhIjoiN2Y2NGVjM2U0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlY2JlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYwXSIsInBmIjo2LCJzYSI6IjdmNjRlY2JlNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZWQzZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDNlZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZWQ1ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDVlZjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWguc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ2MDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDgwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDgwNzAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjZ21hbmFnZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ4MjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZGExZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZGEyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo1LCJzYSI6IjdmNjRlZGEyMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjAsInNhIjoiN2Y2NGVkYTMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjQsInNhIjoiN2Y2NGVkYzMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vcHVsc2Utc2htLTQxMjUwOTU2MTYiLCJwZiI6Niwic2EiOiI3ZjY0ZWRjMzMwMDAiLCJzeiI6IjQwMDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMWMzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU5XSIsInBmIjo2LCJzYSI6IjdmNjRmMWMzNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjUsInNhIjoiN2Y2NGYyNDM1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjowLCJzYSI6IjdmNjRmMjQzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo0LCJzYSI6IjdmNjRmMjYzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6Niwic2EiOiI3ZjY0ZjI2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6NSwic2EiOiI3ZjY0ZjI2M2UwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjowLCJzYSI6IjdmNjRmMjY2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo0LCJzYSI6IjdmNjRmMjg2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6Niwic2EiOiI3ZjY0ZjI4NmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6NSwic2EiOiI3ZjY0ZjI4NmIwMDAiLCJzeiI6IjJiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6MCwic2EiOiI3ZjY0ZjJiMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo0LCJzYSI6IjdmNjRmMmQxZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjYsInNhIjoiN2Y2NGYyZDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjJkM2EwMDAiLCJzeiI6IjMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjJkNmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJGTEFDLnNvLjguMy4wIiwicGYiOjQsInNhIjoiN2Y2NGYyZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6Niwic2EiOiI3ZjY0ZjJmNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmMmY2YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjRmMmY4MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjMxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmMzE4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjMxODUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjowLCJzYSI6IjdmNjRmMzE4YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NCwic2EiOiI3ZjY0ZjMzODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo2LCJzYSI6IjdmNjRmMzM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo1LCJzYSI6IjdmNjRmMzM4YjAwMCIsInN6IjoiNjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic25kZmlsZS5zby4xLjAuMjUiLCJwZiI6MCwic2EiOiI3ZjY0ZjMzZWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo0LCJzYSI6IjdmNjRmMzVlYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo2LCJzYSI6IjdmNjRmMzVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzNWVmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo1LCJzYSI6IjdmNjRmMzVmMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6MCwic2EiOiI3ZjY0ZjM1ZmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZjM3ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMzdmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU3XSIsInBmIjo2LCJzYSI6IjdmNjRmMzdmZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTdjMDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZjNmZmUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3B1bHNlYXVkaW8vbGlicHVsc2Vjb21tb24tNC4wLnNvIiwicGYiOjAsInNhIjoiN2Y2NGY0MDY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjQyNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZjQyNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjQyNjUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjQyNmYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRmNDQ2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRmNDQ2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjUsInNhIjoiN2Y2NGY0NDcwMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ0YjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NCwic2EiOiI3ZjY0ZjQ2YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjYsInNhIjoiN2Y2NGY0NmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ2YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YmEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY0ZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTVdIiwicGYiOjYsInNhIjoiN2Y2NGY0ZWJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNTZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU0XSIsInBmIjo2LCJzYSI6IjdmNjRmNTZiYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjVlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1M10iLCJwZiI6Niwic2EiOiI3ZjY0ZjVlYmQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2NmJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTJdIiwicGYiOjYsInNhIjoiN2Y2NGY2NmJlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUxXSIsInBmIjo2LCJzYSI6IjdmNjRmNmViZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0Zjc2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1MF0iLCJwZiI6Niwic2EiOiI3ZjY0Zjc2YzAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY3ZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDldIiwicGYiOjYsInNhIjoiN2Y2NGY3ZWMxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmODZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ4XSIsInBmIjo2LCJzYSI6IjdmNjRmODZjMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxYTYwMDAiLCJwc3MiOiIxYWQwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY4ZWMyMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjllODcwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWViOTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGZhMDY4MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxZDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTE5ZDAwMCIsInN6IjoiODQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmEyMjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZhNDIwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTQzNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE0NDIwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZhNGJhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE2YmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmE2YmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTZiZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI3NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmNjRmYTZjMTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmNjRmYTc3NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZmE5NzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmNjRmYTk3NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRmYTk3YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTk5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhOTliMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE5ZGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhYmRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ3XSIsInBmIjo2LCJzYSI6IjdmNjRmYWJlNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDZdIiwicGYiOjYsInNhIjoiN2Y2NGZhYmVkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYjNlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZiM2VlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYmJlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ0XSIsInBmIjo2LCJzYSI6IjdmNjRmYmJlZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmMzZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0M10iLCJwZiI6Niwic2EiOiI3ZjY0ZmMzZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGZjYmYwMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82YWE0MWFhMjJlMThiOGZhMDZhMTJkYTI4ZWE5YzI4Yi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYTYwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYzA1ODgwZGU1N2QxZjVlOTQ4ZmRmYWNjMTM4Nzc1ZDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzk0NTY3N2ViN2FlYWY2MmYxZDUwZWZjM2ZiM2VjN2Q4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NiNTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzJjZDE3NjE1Y2E1OTRmYTI5NTlhZTE3MzI5MmU1MDRjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mZDk1MDU5NTBjMDQ4YTc3ZGM0YjcxMGViNmE2MjhlZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGRjNzlkM2VhMDZhN2M2ZmZhODZlZGU4NWYzYmI1ZGYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2U3MDcxZjRhMjlmYTg3MGY0MzIzMzIxYzE1NGViYTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hMmFiNzQ3NjRiMDcyNzllN2MzNmRkYjFkMzAyY2YyNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jNjlmMDRhYjA1MDA0ZTMxYTZkNWU3MTU3NjRmMTZkOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2EwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGQ4YzNiMmFjMDkwNGNiOGE1N2E3NTdhZDExYTRhMDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzY0NmFkZGI4NDQ0ZmFhNzRlZTEzOGFhMDBhYjBiNmEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2E3NTVhZmU0YTA4YmY1Yjk3ODUyY2ViNzQwMGI0N2JjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkMDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzIwYmQ3OWFkOTcwOTQ0MDZmN2QxYjk2NTRiZmJkOTI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzljMDYyNDEwOGI5YTJhZTg1NTJmNjY0MTI1YmU4MzU2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZkNDEyODhmZDcwYjBiZTIyZThjM2E5MWUwMzJlZWMwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkZjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYTFiZDVjYTg0NDNmZmUyMjkyN2EyM2NlNDMxZDE5OC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTYzNTRlM2FjNDNhZjY3YmQ4ZDdiOGU0M2MzNGU0OWYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2U1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wNGFhYmMwYTc4YWMwMTljZjk0NTQzODk5NzcxMTZkMi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZjAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzFhYzllYjgwMzk0NGZkZTE0NjEzOGM3OTFmNWNjNTZhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zODVjMDYwNGExODgxOThmMDRkMTMzZTU0YWJhN2ZlNy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGMwNWRiNjY2NDI4NWNjMmYxMmJmNjljMTM5YWU0YzMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzRmM2UzMDM3Yzk5ODBjODNiNTNhOTM1MWVmYWRlZjYyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83NjdhODI0NGZjMDIyMGNmYjU2N2E4MzlkMDM5MmUwYi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ODAxNDk3OTU4NjMwYTgxYjcxYWNlN2M1ZjliMzJhOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM2NWI1NWYyMTBjMGEyMmU5YTE5ZTM1MTkxMjQwZjMyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QxMzAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zMDQ3ODE0ZGY5YTJmMDY3YmQyZDk2YTJiOWMzNmU1YS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNGUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZTk0ODZmMGI0N2E0ZDc2OGE1OTRjYjQxOThjYjFjNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iNDdjNGUxZWNkMDcwOTI3OGY0OTEwYzE4Nzc3YTUwNC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Q1MmE4NjQ0MDczZDU0YzEzNjc5MzAyY2ExMTgwNjk1LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zZjczMjljNTI5M2ZmZDUxMGVkZWY3OGY3Mzg3NGNmZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNzEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDU4OWE0ODg2MjM5OGVkODBhM2Q2MDY2ZjRmNTZmNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDdhMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMTNiMjBmZGIwODM0NGUwZTY2NDg2NGNjMmVkZTUzZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkODUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80NjdjMDE5ZTU4MmVlMzUzNDM1ZWE1YzIxZDEzN2VmNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkOWMwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmNkYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZmNkYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZkNWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDFdIiwicGYiOjYsInNhIjoiN2Y2NGZkNWJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZkZGJjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmRkYzcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmRmYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjRiMDAwIiwicHNzIjoiNGM4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9nbGliLTIuMC9zY2hlbWFzL2dzY2hlbWFzLmNvbXBpbGVkIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM5MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTAxODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmUyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMjFjMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlMjI1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlNDI3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmU0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmU2MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTIzOV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2M2EwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlM2EwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzAwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlYzUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiI0NjAwMCIsInBzcyI6IjUxNDAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmNjRmZWYyYjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjY0ZmY4ZTgwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDA4ZGMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMDhlYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDA4ZjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDBhZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAwYWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjY1MDBhZjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjY1MDBhZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmNjUwMGNmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmNjUwMGNmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDBjZjYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y2NTAwY2ZjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y2NTAwZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmNjUwMGVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDBlZmUwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDBmMzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAxMTM4MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDExM2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDExNDAwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAxMTUyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDEzNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDEzNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTM1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjY1MDEzNTUwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmNjUwMTNkMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmNjUwMTVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjY1MDE1ZDIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAxNWQ1MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMTVkZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE3ZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTdlMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y2NTAxN2UzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y2NTAxOWUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y2NTAxOWU1MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDFhMTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDFjMTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAxYzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y2NTAxYzE0MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmNjUwMWNkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y2NTAxZWQwMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y2NTAxZWRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAxZWRmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAxZWU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIwZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDIwZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDIwZTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMGU4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyMmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjJlYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMjJlYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNGViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjRlZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAyNGY2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjZmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNmY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTAyNmY3MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDI3MGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDI5MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTAyOTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMjkwZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmNjUwMjkxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwMjkxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMjkxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDI5MTQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y2NTAyOTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDJiMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDJiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAyYjNiMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDJiNTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDJkNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTAyZDU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZDU4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJkNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyZjVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDJmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMmY2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyZjYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzE2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzMTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDMxNjQwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmNjUwMzIwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmNjUwMzQwNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDM0MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMzQwZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDM0MzMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzYzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMzYzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDM2MzQwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDM2NGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAzODRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDM4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzg0ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwMzg1MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDM4NzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmNjUwM2E2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmNjUwM2E3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAzYTczMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAzYTc2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDNjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDNjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjY1MDNjNzgwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmNjUwM2M5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmNjUwM2U4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjY1MDNlOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjY1MDNlOTEwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y2NTAzZWEwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y2NTA0MGEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmNjUwNDBhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmNjUwNDBhMjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjY1MDQwYWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjY1MDQyYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y2NTA0MmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y2NTA0MmFmMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmNjUwNDM2NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y2NTA0NTY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y2NTA0NTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y2NTA0NTZkMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDQ1YjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDQ3YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y2NTA0N2IxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDQ3YjMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNDdkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNDlkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDQ5ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmNjUwNDlkMzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmNjUwNGExMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRjMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGMxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDRjMTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YzE4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y2NTA0ZTE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGUxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y2NTA0ZTFhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmNjUwNGUzOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y2NTA1MDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y2NTA1MDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE4MDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MDNiMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjY1MDUwZTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjY1MDUyZTcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y2NTA1MmViMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI2MDAwIiwicHNzIjoiNjA4MDAiLCJzaHIiOiIxMzIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmNjUwNTJlZTAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTcxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTkxYzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MjMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkyNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1OTJhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1OTJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1OTJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDU5MzEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDU5MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwNWIzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWIzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmNjUwNWIzNjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjY1MDViNTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmNjUwNWQ1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmNjUwNWQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVkNTgwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA1ZDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWY2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjY4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA1Zjc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDYxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYxNzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNjE3ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYzN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjM3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTA2MzdmMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDY0NjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDY2NjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA2NjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NjcwMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NmNkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY2ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NmQyMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY3NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NzRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjc0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2NzUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y2NTA2NzUxMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmNjUwNjc5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y2NTA2OTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y2NTA2OTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5OTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTQwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2OWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNjlmNTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTA2YTNmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2YzNmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDZjNDMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZjNGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwNmU0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmU0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU1MDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU4MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlODYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU5YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlOWUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWE3MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWMwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmVjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZDMwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWRjMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmNjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmNzQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjdjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjdlMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmOGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIyNDQwMCIsInNociI6IjM5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjkxMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDAxMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA3MDEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMTcwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDJlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAzMzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDQ2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzA0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDRlMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDY3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmNjUwNzA3MDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmNjUwNzA5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjY1MDcyOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmNjUwNzI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MjlmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcyYTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3NGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDc0YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzRhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmNjUwNzRhNTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmNjUwNzRmODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc2ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmNjUwNzZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NmZhMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ODAwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA3OWZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2EwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdhMDYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmNjUwN2EwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDdjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2MwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDdjMTAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmNjUwN2MxOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDdlMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmNjUwN2UxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdlMWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ZTFjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTA4MDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwODAxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImNkMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwODAxZjAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4MWRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDgzZDkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDgzZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODNkZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwODNlNDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y2NTA4M2ZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTA4NWY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjkzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y2NTA4NWZhMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y2NTA4NmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmNjUwODhkZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y2NTA4OGU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDg4ZmYwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmNjUwODk5YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmNjUwOGI5YjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDhiYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDhiYTIwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA4ZDBlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwOGYwZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4ZjE1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwOGYxYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTExZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y2NTA5MTFlMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y2NTA5MTQ1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmNjUwOTM0NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y2NTA5MzQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTM0ODAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDkzODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTU4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTU4NTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5NWFkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5N2FkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTdiMjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk3ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTlkNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTlkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyMDAwIiwic2hyIjoiZGQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk5ZGQwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5YjEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOWQwZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDlkMTcwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDlkNTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y2NTA5ZjUwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOWY1NDAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMDU5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGEyNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGEyNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBhMjVhMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTI3MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhNDcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhNDczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmNjUwYTQ3ODAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y2NTBhNGU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y2NTBhNmU0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYTZlZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE2ZjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGE4ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhOGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmNjUwYThmMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmNjUwYTkwNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFiMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWIwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhYjA1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFiMDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYWQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZDA5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFkMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFmMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWYwYzAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmNjUwYjAzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGIyM2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2ODAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGIyNDEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMzQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjU0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGI1NGEwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiNTk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI3OTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI3OWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiNzliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjc5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDc5NGEwODIxNjY2ZDc5MTkwZDU5YTM2Y2I0ZjQ0YjUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzU2Y2Y0ZjQ3NjlkMGY0YWJjODlhNDg5NWQ3YmQzYWUxLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iOWQ1MDZjOWFjMDZjMjBiNDMzMzU0ZmE2N2E3Mjk5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGM5ZWI4MGViZDFjMzY1NDFlYmUyODUyZDNiYjBjNDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg1ZTBhNTJjZTY0M2E3YmEyYWU1M2U1ZDY5NDljZWFkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mNmU2ZTBhNWMzZDJmNmFlMGMwYzJlMGVjZDQyYTk5Ny1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvN2VmMjI5OGZkZTQxY2M2ZWViN2FmNDJlNDhiN2QyOTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzE2MzI2NjgzMDM4YjI4MTc4M2EwZWY4YzY4MGUzYTEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ZjAyZDRjYjA0NWJkNmNlMTU2NjNlNDNmMzQ3YzlmOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YWIwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTBhYTUzYmNmYTUwNGU2NGY4NzgyM2MxNmJjMDFlYjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL3NpdGUiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvbG9jYWwiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi91c2VyLzE1ODE1OC9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5YzAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5YzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5YzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjljYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5Y2IwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjllZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWYxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjlmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWZhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmEwYjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYThkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmE5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhMDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmFhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmFhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiI5NTAwMCIsInNociI6IjE0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhZTAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYzlmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2FmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2I2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiY2I5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYmMwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDI3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiMjU4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyYzAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZDMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGU1MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE3MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZmEwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmUyMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlMjQwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTUyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmU1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNWIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTZkMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzAzMDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMwNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODgwMCIsInNociI6ImUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMDU5MDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMjM2MDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiZTQwMCIsInNociI6IjMyMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzI1NjAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM3Y2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjN2NjMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODAyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzgxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjE2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgxNDAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg0NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODQ4MDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4OGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4OTMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGE5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YjkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxZDQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGM4MDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTIwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTJiMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6IjExNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NDkwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTY3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk2YTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjVlYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTgyMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2ExNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2ExNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2ExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjE2MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2ExYzAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTRiMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiYmUwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E2NTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYzBmMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYzM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2MzNzAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2QwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDA4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QxMDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDI3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzNjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2Q0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkNGIwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U1NzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTYwMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNlNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNzEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiNDE0MDAiLCJzaHIiOiI3NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U4MDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQwYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBiZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZDIwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwZWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzQwMDAiLCJwc3MiOiI0YTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZjEwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDFkZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQxZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDFlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIzYmMwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDFlZTAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzBlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzE2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDMxZjAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNzQwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJlODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM4NjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkM2M1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzYzYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDNjZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNhMDAwIiwic2hyIjoiYmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzZDAwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDZlMzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4YTgwMCIsInNociI6IjRlMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQ3MDgwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY0YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNGFlMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZjY1NzAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjY1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2YTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2OGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjkwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmE2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMTMwMDAiLCJwc3MiOiIzYmRjMDAiLCJzaHIiOiI1NTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZiMDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGE2ZDAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjA4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTBiMTcwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiM2MwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNDEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOGMwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNGYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiOWY4MDAiLCJzaHIiOiJhZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjcxMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBkNzQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGQ4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGQ4ODAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGVlYTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBlZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAwIiwicHNzIjoiYzNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGVmNTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMDAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMDA2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjNhMDAwIiwicHNzIjoiN2M4MDAiLCJzaHIiOiJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTAwOTAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTE2NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMTc4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxYmUwMDAiLCJwc3MiOiIyMzQ4MDAiLCJzaHIiOiIxN2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMTdiMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY0ZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjczMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiIyYWMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjdmMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExNmJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2YzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmM1MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiI3ODgwMCIsInNociI6IjExMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmUzMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE5ZTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYTBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRhNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYTE0MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWFjODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYWNkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYWRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjBjMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIxOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMzgwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWI5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWI5ODAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmI5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJjZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiI0ZjQwMCIsInNociI6ImU2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiZDMwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZjQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExZDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmMmUyNTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNmI0OTAwMCJ9fX0sInR0cyI6Nzc2NDk1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZCJ9LAoteyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NDg3NjQxOCwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjE5OGUwNDAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjE0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc1YTAwMCIsInBzcyI6IjdmNDAwMCIsInNociI6IjI1ZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUxMDAwIiwicHNzIjoiZTQwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTdjMDAwIiwicHNzIjoiMWE3YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NzQ3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk3NDgwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiZGIwMDAiLCJwc3MiOiJkYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjBjNmMwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2YwYzZjMTAwMDAwIiwic3oiOiIxZjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRiNTBkMDAwIiwic3oiOiI4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjc4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjk4ZTAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM1OTEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM3OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiYzAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM4OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkYzk5MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRjOWFmMDAwIiwic3oiOiI0MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRjOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTddIiwicGYiOjYsInNhIjoiN2Y2NGRjOWYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg0XSIsInBmIjo2LCJzYSI6IjdmNjRkZDFmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQ5ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQ5ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRlMWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzVdIiwicGYiOjYsInNhIjoiN2Y2NGRlMWY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiJkODAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGRlOWY0MDAwIiwic3oiOiI0YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRkZWEzZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGRlYzNlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGRlYzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ljb25zL2hpY29sb3IvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkZWM0MjAwMCIsInN6IjoiMjRlZjAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9nbm9tZS9pY29uLXRoZW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGUxMTMxMDAwIiwic3oiOiI1MjA3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiODQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy1Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmNjRlNjMzODAwMCIsInN6IjoiYWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNjNlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc0XSIsInBmIjo2LCJzYSI6IjdmNjRlNjNlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNjQwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTZiZTMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTZjOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZTZjOWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU3NDlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzRdIiwicGYiOjYsInNhIjoiN2Y2NGU3NDliMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlN2M5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjcwXSIsInBmIjo2LCJzYSI6IjdmNjRlN2M5YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg0OWMwMDAiLCJzeiI6IjM0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjowLCJzYSI6IjdmNjRlODRkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODZkMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg2ZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjRlODZkNjAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg3MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlODkwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4OTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjUsInNhIjoiN2Y2NGU4OTA4MDAwIiwic3oiOiI1OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjAsInNhIjoiN2Y2NGU4OTYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo0LCJzYSI6IjdmNjRlOGI2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjYsInNhIjoiN2Y2NGU4YjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZThiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZThiNjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZThiNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlOGQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlOGQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NSwic2EiOiI3ZjY0ZThkNmQwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjAsInNhIjoiN2Y2NGU4ZDg3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NCwic2EiOiI3ZjY0ZThmODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjliMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGY5ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzEiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8wIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzMiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmE3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZThmYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZThmYWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU5N2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjhdIiwicGYiOjYsInNhIjoiN2Y2NGU5N2FiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTlmYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTlmYjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTFhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRlYTFiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGVhMWIxMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZWExYmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NGVhM2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlYTNiZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvbWltZS9taW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGVhM2MwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVhM2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjZdIiwicGYiOjYsInNhIjoiN2Y2NGVhM2RmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYWJkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY1XSIsInBmIjo2LCJzYSI6IjdmNjRlYWJlMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGViM2UxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjRdIiwicGYiOjYsInNhIjoiN2Y2NGViM2UyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYmJlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYzXSIsInBmIjo2LCJzYSI6IjdmNjRlYmJlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWMzZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWMzZTQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjBdIiwicGYiOjYsInNhIjoiN2Y2NGVjYmU1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDNlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NGVkM2VkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDVlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkNWVmMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDYwNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkODA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkODA3MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDgyMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkYTFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkYTIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjUsInNhIjoiN2Y2NGVkYTIyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6MCwic2EiOiI3ZjY0ZWRhMzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6NCwic2EiOiI3ZjY0ZWRjMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjYsInNhIjoiN2Y2NGVkYzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS9wdWxzZS1zaG0tNDEyNTA5NTYxNiIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMzAwMCIsInN6IjoiNDAwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYxYzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTldIiwicGYiOjYsInNhIjoiN2Y2NGYxYzM1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjI0MzUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjAsInNhIjoiN2Y2NGYyNDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjQsInNhIjoiN2Y2NGYyNjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo2LCJzYSI6IjdmNjRmMjYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo1LCJzYSI6IjdmNjRmMjYzZTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjAsInNhIjoiN2Y2NGYyNjZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjQsInNhIjoiN2Y2NGYyODY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo2LCJzYSI6IjdmNjRmMjg2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo1LCJzYSI6IjdmNjRmMjg2YjAwMCIsInN6IjoiMmIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjowLCJzYSI6IjdmNjRmMmIxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjQsInNhIjoiN2Y2NGYyZDFkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6Niwic2EiOiI3ZjY0ZjJkMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo1LCJzYSI6IjdmNjRmMmQzYTAwMCIsInN6IjoiMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjowLCJzYSI6IjdmNjRmMmQ2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZjJmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo2LCJzYSI6IjdmNjRmMmY2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGYyZjZiMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGYyZjgyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmMzE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjMxODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo1LCJzYSI6IjdmNjRmMzE4NTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjAsInNhIjoiN2Y2NGYzMThhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo0LCJzYSI6IjdmNjRmMzM4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjYsInNhIjoiN2Y2NGYzMzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjUsInNhIjoiN2Y2NGYzMzhiMDAwIiwic3oiOiI2MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjowLCJzYSI6IjdmNjRmMzNlYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjQsInNhIjoiN2Y2NGYzNWVjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjYsInNhIjoiN2Y2NGYzNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM1ZWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjUsInNhIjoiN2Y2NGYzNWYzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjowLCJzYSI6IjdmNjRmMzVmYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo0LCJzYSI6IjdmNjRmMzdmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmMzdmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYzN2ZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTddIiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxN2MwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmM2ZmZTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZjQwNjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmNDI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmNDI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRmNDI2NTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjRmNDI2ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGY0NDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGY0NDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NSwic2EiOiI3ZjY0ZjQ0NzAwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjowLCJzYSI6IjdmNjRmNDRiNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjo0LCJzYSI6IjdmNjRmNDZiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNDZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU2XSIsInBmIjo2LCJzYSI6IjdmNjRmNDZiYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjRlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjRlYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY1NmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTRdIiwicGYiOjYsInNhIjoiN2Y2NGY1NmJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUzXSIsInBmIjo2LCJzYSI6IjdmNjRmNWViZDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjY2YmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZjY2YmUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTFdIiwicGYiOjYsInNhIjoiN2Y2NGY2ZWJmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNzZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUwXSIsInBmIjo2LCJzYSI6IjdmNjRmNzZjMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjdlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjdlYzEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY4NmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDhdIiwicGYiOjYsInNhIjoiN2Y2NGY4NmMyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjFhNjAwMCIsInBzcyI6IjFhZDAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjhlYzIwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEyODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWU4NzAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY5ZWI5MDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmVjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZmEwNjgwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjFkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhMTlkMDAwIiwic3oiOiI4NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTIyMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE0MjAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhNDM1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE0NDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTQ0MjAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE0YmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYTZiYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTZiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNmJkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDAwMCIsInNociI6Ijc3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y2NGZhNmMxMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y2NGZhNzc1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmNjRmYTk3NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y2NGZhOTc3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGZhOTdhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE5OWIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTlkYjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYWJkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRmYWJkZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDddIiwicGYiOjYsInNhIjoiN2Y2NGZhYmU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmFiZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZWQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiM2VkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmIzZWUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiYmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDRdIiwicGYiOjYsInNhIjoiN2Y2NGZiYmVmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYzNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQzXSIsInBmIjo2LCJzYSI6IjdmNjRmYzNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZmNiZjAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZhYTQxYWEyMmUxOGI4ZmEwNmExMmRhMjhlYTljMjhiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NhNjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jMDU4ODBkZTU3ZDFmNWU5NDhmZGZhY2MxMzg3NzVkOS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOTQ1Njc3ZWI3YWVhZjYyZjFkNTBlZmMzZmIzZWM3ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMmNkMTc2MTVjYTU5NGZhMjk1OWFlMTczMjkyZTUwNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2MwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2ZkOTUwNTk1MGMwNDhhNzdkYzRiNzEwZWI2YTYyOGVkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZGM3OWQzZWEwNmE3YzZmZmE4NmVkZTg1ZjNiYjVkZi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTcwNzFmNGEyOWZhODcwZjQzMjMzMjFjMTU0ZWJhMDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2EyYWI3NDc2NGIwNzI3OWU3YzM2ZGRiMWQzMDJjZjI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2M2OWYwNGFiMDUwMDRlMzFhNmQ1ZTcxNTc2NGYxNmQ4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wZDhjM2IyYWMwOTA0Y2I4YTU3YTc1N2FkMTFhNGEwOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNjQ2YWRkYjg0NDRmYWE3NGVlMTM4YWEwMGFiMGI2YTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTc1NWFmZTRhMDhiZjViOTc4NTJjZWI3NDAwYjQ3YmMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2QwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMjBiZDc5YWQ5NzA5NDQwNmY3ZDFiOTY1NGJmYmQ5MjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2Q3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOWMwNjI0MTA4YjlhMmFlODU1MmY2NjQxMjViZTgzNTYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmQ0MTI4OGZkNzBiMGJlMjJlOGMzYTkxZTAzMmVlYzAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RhMWJkNWNhODQ0M2ZmZTIyOTI3YTIzY2U0MzFkMTk4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNjM1NGUzYWM0M2FmNjdiZDhkN2I4ZTQzYzM0ZTQ5Zi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzA0YWFiYzBhNzhhYzAxOWNmOTQ1NDM4OTk3NzExNmQyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NmMDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMWFjOWViODAzOTQ0ZmRlMTQ2MTM4Yzc5MWY1Y2M1NmEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM4NWMwNjA0YTE4ODE5OGYwNGQxMzNlNTRhYmE3ZmU3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYzA1ZGI2NjY0Mjg1Y2MyZjEyYmY2OWMxMzlhZTRjMy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNGYzZTMwMzdjOTk4MGM4M2I1M2E5MzUxZWZhZGVmNjItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzc2N2E4MjQ0ZmMwMjIwY2ZiNTY3YTgzOWQwMzkyZTBiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg4MDE0OTc5NTg2MzBhODFiNzFhY2U3YzVmOWIzMmE4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwZTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzY1YjU1ZjIxMGMwYTIyZTlhMTllMzUxOTEyNDBmMzItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDEzMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzMwNDc4MTRkZjlhMmYwNjdiZDJkOTZhMmI5YzM2ZTVhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q0ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RlOTQ4NmYwYjQ3YTRkNzY4YTU5NGNiNDE5OGNiMWM2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I0N2M0ZTFlY2QwNzA5Mjc4ZjQ5MTBjMTg3NzdhNTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDUyYTg2NDQwNzNkNTRjMTM2NzkzMDJjYTExODA2OTUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDVlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjgwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzNmNzMyOWM1MjkzZmZkNTEwZWRlZjc4ZjczODc0Y2ZkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3MTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTg5YTQ4ODYyMzk4ZWQ4MGEzZDYwNjZmNGY1NmY0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkN2EwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UxM2IyMGZkYjA4MzQ0ZTBlNjY0ODY0Y2MyZWRlNTNkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q4NTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ2N2MwMTllNTgyZWUzNTM0MzVlYTVjMjFkMTM3ZWY2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q5YzAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmY2RiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQyXSIsInBmIjo2LCJzYSI6IjdmNjRmY2RiYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmQ1YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmQ1YmMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmRkYmMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjowLCJzYSI6IjdmNjRmZGRjNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZGZjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNGIwMDAiLCJwc3MiOiI0YzgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvZ3NjaGVtYXMuY29tcGlsZWQiLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzkwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMDE4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmUyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUyMWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUyMjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmU0MjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZTYzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjM5XSIsInBmIjo2LCJzYSI6IjdmNjRmZTYzYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWUzYTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWVjNTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjQ2MDAwIiwicHNzIjoiNTE0MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y2NGZlZjJiMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmNjRmZjhlODAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMDhkYzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwOGVjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMDhmMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMGFlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmNjUwMGFmMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmNjUwMGFmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y2NTAwY2Y0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y2NTAwY2Y1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMGNmNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDBjZmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDBlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMGVmZTAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMGYzOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDExMzgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTEzZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMTE0MDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDExNTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTM1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTM1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxMzU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmNjUwMTM1NTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y2NTAxM2QxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y2NTAxNWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmNjUwMTVkMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE1ZDUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAxNWRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAxN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTdkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y2NTAxN2UwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE3ZTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y2NTAxOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTllNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE5ZTUwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMWExMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMWMxMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDFjMTQwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y2NTAxY2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDFlZDAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDFlZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDFlZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDFlZTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjBlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjBlNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIwZTgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIyZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMmVhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMmVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI0ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAyNGVlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDI0ZjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNmY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI2ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDI2ZjcwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwMjcwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwMjkwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAyOTBkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAyOTEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAyOTExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwMjkxNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDI5MzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwMmIzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwMmIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDJiM2IwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMmI1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMmQ1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJkNTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmQ2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDJmNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMmY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZjYxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJmNjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzMTYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDMxNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmNjUwMzE2NDAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y2NTAzMjA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y2NTAzNDA1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y2NTAzNDBlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMzQzMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzNjMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzNjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMzYzNDAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwMzY0YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDM4NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMzg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzODRkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTAzODUwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmNjUwMzg3MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y2NTAzYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDNhNzMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDNhNzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwM2M3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmNjUwM2M3ODAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y2NTAzYzkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y2NTAzZThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmNjUwM2U5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmNjUwM2U5MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjY1MDNlYTAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjY1MDQwYTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y2NTA0MGExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y2NTA0MGEyMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmNjUwNDBhZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmNjUwNDJhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjY1MDQyYWYwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y2NTA0MzY1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjY1MDQ1NjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDQ1NmQwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwNDViMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwNDdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ3YjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNDdiMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA0N2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA0OWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y2NTA0OWQzMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YTEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGMwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y2NTA0YzEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwNGMxMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRjMTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRlMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjY1MDRlMWEwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y2NTA0ZTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjY1MDUwMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjY1MDUwM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTgwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUwM2IwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTBlODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTJlNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTJlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiI2MDgwMCIsInNociI6IjEzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MmVlMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1NzFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1OTFjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTI3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDU5MmEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDU5MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDU5MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNTkzMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwNTkzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1YjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y2NTA1YjM2MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmNjUwNWI1NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y2NTA1ZDU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y2NTA1ZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWQ1ODAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVkNjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVmNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjE3OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA2MTdlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjM3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MzdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiY2MwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYzN2YwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwNjQ2ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjY2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2NzAwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY2Y2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjZkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2ZDIwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjc0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY3NGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY3NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjY1MDY3NTEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y2NTA2Nzk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjY1MDY5OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjY1MDY5OTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjk5NjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhNDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjllZDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2OWY1MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZhM2YwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZjM2YwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNmM0MzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmM0ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTUwMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU4NjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmU5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTlhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmU5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU5ZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTcwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmViZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkMzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZGMwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY2NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3NDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmN2UwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjI0NDAwIiwic2hyIjoiMzkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmOTEwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZmZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMDEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcwMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAxNzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMmUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDMzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNGUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y2NTA3MDcwMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y2NTA3MDllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmNjUwNzI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y2NTA3MjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcyOWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzJhMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDc0YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzRhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3NGE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NGE1MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3NGY4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzZmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3NmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc2ZmEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc4MDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc5ZmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2EwNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3YTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwN2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmNjUwN2MxMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y2NTA3YzE5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmNjUwN2UxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y2NTA3ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2UxYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdlMWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDgwMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiY2QwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4MDFmMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDgxZGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwODNkOTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwODNkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTA4M2U0MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDgzZmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDg1ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiOTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjY1MDg1ZmEwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjY1MDg2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y2NTA4OGRmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODhlOTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmNjUwODhmZjAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y2NTA4OTljMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y2NTA4YjliMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmNjUwOGJhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJlMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwOGJhMjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDhkMGUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA4ZjBkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOGYxMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDhmMTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4ZjFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5MTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTExYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5MTFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMWMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDkxMWUwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDkxNDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y2NTA5MzQ1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDkzNDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5MzQ4MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTM4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5NTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk1ODIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5NTg1MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk1YWQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk3YWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk3YjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5N2IyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTdkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5OWQ2MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5OWRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjIwMDAiLCJzaHIiOiJkZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTlkZDAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDliMTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5ZDBmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWQxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmNjUwOWQxNzAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmNjUwOWQ1MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDlmNTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5ZjUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5ZjU0MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGEwNTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYTI1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYTI1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGEyNWEwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMjczMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGE0NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYTQ3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y2NTBhNDc4MDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjY1MGE0ZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjY1MGE2ZTQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y2NTBhNmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE2ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhNmVkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYTZmMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwYThmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGE4ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhOGYzMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y2NTBhOTA0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWIwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y2NTBhYjA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFiMDUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYWIwNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFkMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWQwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhZDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFkMDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwYWQwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFmMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZjBjMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y2NTBiMjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjIzZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjI0MTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGIzNDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTBiNTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjU0ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjU0YTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGI1OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjc5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjc5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI3OWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiNzllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOTlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80Nzk0YTA4MjE2NjZkNzkxOTBkNTlhMzZjYjRmNDRiNS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNTZjZjRmNDc2OWQwZjRhYmM4OWE0ODk1ZDdiZDNhZTEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I5ZDUwNmM5YWMwNmMyMGI0MzMzNTRmYTY3YTcyOTkzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wYzllYjgwZWJkMWMzNjU0MWViZTI4NTJkM2JiMGM0OS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvODVlMGE1MmNlNjQzYTdiYTJhZTUzZTVkNjk0OWNlYWQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Y2ZTZlMGE1YzNkMmY2YWUwYzBjMmUwZWNkNDJhOTk3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83ZWYyMjk4ZmRlNDFjYzZlZWI3YWY0MmU0OGI3ZDI5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMTYzMjY2ODMwMzhiMjgxNzgzYTBlZjhjNjgwZTNhMTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzhmMDJkNGNiMDQ1YmQ2Y2UxNTY2M2U0M2YzNDdjOWY4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhYjAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMGFhNTNiY2ZhNTA0ZTY0Zjg3ODIzYzE2YmMwMWViNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvc2l0ZSIsInBmIjo0LCJzYSI6IjdmNjUwYjliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2V0Yy9kY29uZi9kYi9sb2NhbCIsInBmIjo0LCJzYSI6IjdmNjUwYjliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvZGNvbmYvdXNlciIsInBmIjo0LCJzYSI6IjdmNjUwYjliYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3VzZXIvMTU4MTU4L2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjljODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjljOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiOWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljYjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjllZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZjEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjlmNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjlmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZmEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTBiMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhOGQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmE5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWEwMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYWFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYWFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6Ijk1MDAwIiwic2hyIjoiMTQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWFlMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjOWYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmNiMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiMjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2I3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2JhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiYzAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkMjIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkMjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiIyNTgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDJjMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmRkMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZTUwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmRmYTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmUxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTIwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmUyNDAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiNTQwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNmQwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMDMwMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzA1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4ODAwIiwic2hyIjoiZTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGMwNTkwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGMyMzYwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzI1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImJhODAwIiwic2hyIjoiMzIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMjU2MDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzdjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM3Y2MwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzgwNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzgxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODE0MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4NDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDQwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4NDgwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg4ZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzg5MzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOGFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhhZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhiOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjFkNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YzgwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5MjAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5MmIwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk0OTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTZhMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM5ODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNWVjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5ODIwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjYTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTE3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTFjMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiN2MwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhNGIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2E2MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2E2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzUwMDAiLCJwc3MiOiJiZTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTY1MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNjMGYwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNjMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYzM3MDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjZDA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMDgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDEwMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2QyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDM2MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2Q0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiI0ZTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2Q0YjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTU3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiODQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNjAwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2U2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U3MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2U3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiI0MTQwMCIsInNociI6Ijc1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTgwMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDBiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMGJmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQwY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0NDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBkMjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBlZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNDAwMCIsInBzcyI6IjRhODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBmMTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMWRlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDFlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMWVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNzAwMCIsInBzcyI6IjNiYzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMWVlMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzMGUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzMTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzFmMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzY1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM3NDAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzg2MDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkM2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDNjNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkM2NmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2EwMDAiLCJzaHIiOiJiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDNkMDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQ2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkNmUzMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQ2ZjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMThhNDAwIiwic2hyIjoiNGUzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDcwODAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmNjUwZjRhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY0YWUwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY1MjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBmNjU3MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2NjUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjZhMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjY4ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2OTAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjZhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2YTYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIxNDAwMCIsInBzcyI6IjNiZjQwMCIsInNociI6IjU1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmIwMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYTZkMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiMDgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMGIxNzAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0ZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTMwMDAiLCJwc3MiOiI5NjQwMCIsInNociI6ImJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNzEwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGQ3NDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwZDg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZDg4MDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwZWVhMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGVmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMDAiLCJwc3MiOiJjM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZWY1MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTEwMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTAwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMDAiLCJwc3MiOiI3MDAwMCIsInNociI6ImQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMDA5MDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMTY3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTExNzgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjFiZjAwMCIsInBzcyI6IjIzNTgwMCIsInNociI6IjE3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTExN2IwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNjRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExNjcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2NzMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNjAwMCIsInBzcyI6IjJhYzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2N2YwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTE2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTZjMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNzQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2YzUwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6Ijc4ODAwIiwic2hyIjoiMTEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2ZTMwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTllNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYTBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGE0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhMTQwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYWM4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhY2QwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhZGQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjA1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmNjUxMWIwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI1NDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMGMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjE5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIzODAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWI5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImVjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjk4MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmI1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWJiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiYjkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmNmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjRlYzAwIiwic2hyIjoiZTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWJkMzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWNmNDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWNmYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExZDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFkMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmYyZTI1NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmYyZTMyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI2Y2FjMDAwIn19fSwidHRzIjo4MDU2ODUsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCi17InBpZCI6MTUyMzgsInRpZCI6MTUyMzgsInRzIjoxNTc2NjU1MDI2MTc4LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMWIyMTJjMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIyMTQ3MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNzVjMDAwIiwicHNzIjoiN2Y4ODAwIiwic2hyIjoiMjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTIwMDAiLCJwc3MiOiJlNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIyNTAwMCIsInBzcyI6IjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNzE0YWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlYzAwMCIsInBzcyI6ImVjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQ5Y2ZiYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNjY2MDM4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY2NjAzODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzOWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4Njg3ZjAwMCIsInN6IjoiMTgxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZjMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZjMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZkMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmQzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2ZTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjUwMDAiLCJwc3MiOiI2NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmUwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZWZmMDAwIiwic3oiOiIxZjk4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjgwZDY1YTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWIwMDAiLCJwc3MiOiI1YjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNGQwMDAiLCJwc3MiOiI0ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMGU3ZDM3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjRhODA1OWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNGE4MDU5ZjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMjVmZTRmZjRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1MTcwMDAiLCJzeiI6IjI5MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZlOTM1NDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1NjAwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxMjY0NjkwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWYwMDAiLCJwc3MiOiIxZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyODIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJhMjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYzIwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFjMTgwMDAiLCJwc3MiOiIxYzE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJmOTAwMCIsInN6IjoiMjE4NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk3NDdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTc0ODAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiJlNzAwMCIsInBzcyI6ImU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmMGM2YzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjBjNmMxMDAwMDAiLCJzeiI6IjFmMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvaW5kZXgiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1MGQwMDAiLCJzeiI6IjgxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjU4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNzhlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcUdJMzMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiOThlMDAwIiwic3oiOiI0MDEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjNlMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5Xa2xSc2cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTExMDAwIiwic3oiOiI4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM0XSIsInBmIjo2LCJzYSI6IjdmNjRlNzQ5YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTdjOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3MF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTdjOWMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4NDljMDAwIiwic3oiOiIzNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg0ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg2ZDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NGU4NmQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg2ZDYwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmd2ZnNkYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4NzA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg5MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRlODkwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo1LCJzYSI6IjdmNjRlODkwODAwMCIsInN6IjoiNTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjowLCJzYSI6IjdmNjRlODk2MTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmlidXMtMS4wLnNvLjUuMC41MDUiLCJwZiI6NCwic2EiOiI3ZjY0ZThiNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo2LCJzYSI6IjdmNjRlOGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4YjY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4YjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZThkNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZThkNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjUsInNhIjoiN2Y2NGU4ZDZkMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzbWVudS1nbGliLnNvLjQuMC4xMiIsInBmIjowLCJzYSI6IjdmNjRlOGQ4NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjQsInNhIjoiN2Y2NGU4Zjg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjYsInNhIjoiN2Y2NGU4Zjg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMyIsInBmIjo2LCJzYSI6IjdmNjRlOGY5YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjlmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlOGZhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMSIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU4ZmE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjldIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmFhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlOTdhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY4XSIsInBmIjo2LCJzYSI6IjdmNjRlOTdhYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGU5ZmFiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGU5ZmIwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZWExYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWExYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRlYTFiMTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGVhMWJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGVhM2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzAiLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlYTNjMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYTNkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY2XSIsInBmIjo2LCJzYSI6IjdmNjRlYTNkZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWFiZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWFiZTAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZWIzZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYjNlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY0XSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWJiZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2M10iLCJwZiI6Niwic2EiOiI3ZjY0ZWJiZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjM2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjFdIiwicGYiOjYsInNhIjoiN2Y2NGVjM2U0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlY2JlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYwXSIsInBmIjo2LCJzYSI6IjdmNjRlY2JlNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZWQzZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDNlZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZWQ1ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDVlZjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWguc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ2MDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDgwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDgwNzAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjZ21hbmFnZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ4MjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZGExZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZGEyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo1LCJzYSI6IjdmNjRlZGEyMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjAsInNhIjoiN2Y2NGVkYTMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjQsInNhIjoiN2Y2NGVkYzMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vcHVsc2Utc2htLTQxMjUwOTU2MTYiLCJwZiI6Niwic2EiOiI3ZjY0ZWRjMzMwMDAiLCJzeiI6IjQwMDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMWMzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU5XSIsInBmIjo2LCJzYSI6IjdmNjRmMWMzNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjUsInNhIjoiN2Y2NGYyNDM1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjowLCJzYSI6IjdmNjRmMjQzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo0LCJzYSI6IjdmNjRmMjYzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6Niwic2EiOiI3ZjY0ZjI2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6NSwic2EiOiI3ZjY0ZjI2M2UwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjowLCJzYSI6IjdmNjRmMjY2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo0LCJzYSI6IjdmNjRmMjg2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6Niwic2EiOiI3ZjY0ZjI4NmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6NSwic2EiOiI3ZjY0ZjI4NmIwMDAiLCJzeiI6IjJiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6MCwic2EiOiI3ZjY0ZjJiMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo0LCJzYSI6IjdmNjRmMmQxZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjYsInNhIjoiN2Y2NGYyZDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjJkM2EwMDAiLCJzeiI6IjMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjJkNmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJGTEFDLnNvLjguMy4wIiwicGYiOjQsInNhIjoiN2Y2NGYyZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6Niwic2EiOiI3ZjY0ZjJmNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmMmY2YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjRmMmY4MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjMxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmMzE4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjMxODUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjowLCJzYSI6IjdmNjRmMzE4YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NCwic2EiOiI3ZjY0ZjMzODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo2LCJzYSI6IjdmNjRmMzM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo1LCJzYSI6IjdmNjRmMzM4YjAwMCIsInN6IjoiNjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic25kZmlsZS5zby4xLjAuMjUiLCJwZiI6MCwic2EiOiI3ZjY0ZjMzZWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo0LCJzYSI6IjdmNjRmMzVlYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo2LCJzYSI6IjdmNjRmMzVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzNWVmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo1LCJzYSI6IjdmNjRmMzVmMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6MCwic2EiOiI3ZjY0ZjM1ZmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZjM3ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMzdmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU3XSIsInBmIjo2LCJzYSI6IjdmNjRmMzdmZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTdjMDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZjNmZmUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3B1bHNlYXVkaW8vbGlicHVsc2Vjb21tb24tNC4wLnNvIiwicGYiOjAsInNhIjoiN2Y2NGY0MDY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjQyNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZjQyNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjQyNjUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjQyNmYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRmNDQ2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRmNDQ2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjUsInNhIjoiN2Y2NGY0NDcwMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ0YjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NCwic2EiOiI3ZjY0ZjQ2YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjYsInNhIjoiN2Y2NGY0NmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ2YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YmEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY0ZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTVdIiwicGYiOjYsInNhIjoiN2Y2NGY0ZWJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNTZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU0XSIsInBmIjo2LCJzYSI6IjdmNjRmNTZiYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjVlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1M10iLCJwZiI6Niwic2EiOiI3ZjY0ZjVlYmQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2NmJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTJdIiwicGYiOjYsInNhIjoiN2Y2NGY2NmJlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUxXSIsInBmIjo2LCJzYSI6IjdmNjRmNmViZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0Zjc2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1MF0iLCJwZiI6Niwic2EiOiI3ZjY0Zjc2YzAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY3ZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDldIiwicGYiOjYsInNhIjoiN2Y2NGY3ZWMxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmODZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ4XSIsInBmIjo2LCJzYSI6IjdmNjRmODZjMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxYTYwMDAiLCJwc3MiOiIxYWQwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY4ZWMyMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjllODcwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWViOTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGZhMDY4MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxZDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTE5ZDAwMCIsInN6IjoiODQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmEyMjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZhNDIwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTQzNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE0NDIwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZhNGJhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE2YmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmE2YmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTZiZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI3NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmNjRmYTZjMTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmNjRmYTc3NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZmE5NzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmNjRmYTk3NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRmYTk3YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTk5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhOTliMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE5ZGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhYmRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ3XSIsInBmIjo2LCJzYSI6IjdmNjRmYWJlNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDZdIiwicGYiOjYsInNhIjoiN2Y2NGZhYmVkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYjNlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZiM2VlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYmJlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ0XSIsInBmIjo2LCJzYSI6IjdmNjRmYmJlZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmMzZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0M10iLCJwZiI6Niwic2EiOiI3ZjY0ZmMzZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGZjYmYwMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82YWE0MWFhMjJlMThiOGZhMDZhMTJkYTI4ZWE5YzI4Yi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYTYwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYzA1ODgwZGU1N2QxZjVlOTQ4ZmRmYWNjMTM4Nzc1ZDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzk0NTY3N2ViN2FlYWY2MmYxZDUwZWZjM2ZiM2VjN2Q4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NiNTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzJjZDE3NjE1Y2E1OTRmYTI5NTlhZTE3MzI5MmU1MDRjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mZDk1MDU5NTBjMDQ4YTc3ZGM0YjcxMGViNmE2MjhlZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGRjNzlkM2VhMDZhN2M2ZmZhODZlZGU4NWYzYmI1ZGYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2U3MDcxZjRhMjlmYTg3MGY0MzIzMzIxYzE1NGViYTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hMmFiNzQ3NjRiMDcyNzllN2MzNmRkYjFkMzAyY2YyNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jNjlmMDRhYjA1MDA0ZTMxYTZkNWU3MTU3NjRmMTZkOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2EwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGQ4YzNiMmFjMDkwNGNiOGE1N2E3NTdhZDExYTRhMDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzY0NmFkZGI4NDQ0ZmFhNzRlZTEzOGFhMDBhYjBiNmEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2E3NTVhZmU0YTA4YmY1Yjk3ODUyY2ViNzQwMGI0N2JjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkMDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzIwYmQ3OWFkOTcwOTQ0MDZmN2QxYjk2NTRiZmJkOTI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzljMDYyNDEwOGI5YTJhZTg1NTJmNjY0MTI1YmU4MzU2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZkNDEyODhmZDcwYjBiZTIyZThjM2E5MWUwMzJlZWMwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkZjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYTFiZDVjYTg0NDNmZmUyMjkyN2EyM2NlNDMxZDE5OC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTYzNTRlM2FjNDNhZjY3YmQ4ZDdiOGU0M2MzNGU0OWYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2U1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wNGFhYmMwYTc4YWMwMTljZjk0NTQzODk5NzcxMTZkMi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZjAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzFhYzllYjgwMzk0NGZkZTE0NjEzOGM3OTFmNWNjNTZhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zODVjMDYwNGExODgxOThmMDRkMTMzZTU0YWJhN2ZlNy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGMwNWRiNjY2NDI4NWNjMmYxMmJmNjljMTM5YWU0YzMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzRmM2UzMDM3Yzk5ODBjODNiNTNhOTM1MWVmYWRlZjYyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83NjdhODI0NGZjMDIyMGNmYjU2N2E4MzlkMDM5MmUwYi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ODAxNDk3OTU4NjMwYTgxYjcxYWNlN2M1ZjliMzJhOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM2NWI1NWYyMTBjMGEyMmU5YTE5ZTM1MTkxMjQwZjMyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QxMzAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zMDQ3ODE0ZGY5YTJmMDY3YmQyZDk2YTJiOWMzNmU1YS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNGUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZTk0ODZmMGI0N2E0ZDc2OGE1OTRjYjQxOThjYjFjNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iNDdjNGUxZWNkMDcwOTI3OGY0OTEwYzE4Nzc3YTUwNC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Q1MmE4NjQ0MDczZDU0YzEzNjc5MzAyY2ExMTgwNjk1LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zZjczMjljNTI5M2ZmZDUxMGVkZWY3OGY3Mzg3NGNmZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNzEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDU4OWE0ODg2MjM5OGVkODBhM2Q2MDY2ZjRmNTZmNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDdhMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMTNiMjBmZGIwODM0NGUwZTY2NDg2NGNjMmVkZTUzZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkODUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80NjdjMDE5ZTU4MmVlMzUzNDM1ZWE1YzIxZDEzN2VmNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkOWMwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmNkYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZmNkYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZkNWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDFdIiwicGYiOjYsInNhIjoiN2Y2NGZkNWJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZkZGJjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmRkYzcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmRmYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjRiMDAwIiwicHNzIjoiNGM4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9nbGliLTIuMC9zY2hlbWFzL2dzY2hlbWFzLmNvbXBpbGVkIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM5MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTAxODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmUyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMjFjMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlMjI1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlNDI3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmU0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmU2MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTIzOV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2M2EwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlM2EwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlYzUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiI0NjAwMCIsInBzcyI6IjUxNDAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmNjRmZWYyYjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjY0ZmY4ZTgwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDA4ZGMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMDhlYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDA4ZjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDBhZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAwYWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjY1MDBhZjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjY1MDBhZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmNjUwMGNmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmNjUwMGNmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDBjZjYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y2NTAwY2ZjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y2NTAwZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmNjUwMGVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDBlZmUwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDBmMzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAxMTM4MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDExM2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDExNDAwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAxMTUyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDEzNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDEzNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTM1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjY1MDEzNTUwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmNjUwMTNkMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmNjUwMTVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjY1MDE1ZDIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAxNWQ1MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMTVkZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE3ZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTdlMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y2NTAxN2UzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y2NTAxOWUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y2NTAxOWU1MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDFhMTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDFjMTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAxYzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y2NTAxYzE0MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmNjUwMWNkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y2NTAxZWQwMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y2NTAxZWRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAxZWRmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAxZWU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIwZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDIwZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDIwZTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMGU4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyMmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjJlYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMjJlYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNGViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjRlZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAyNGY2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjZmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNmY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTAyNmY3MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDI3MGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDI5MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTAyOTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMjkwZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmNjUwMjkxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwMjkxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMjkxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDI5MTQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y2NTAyOTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDJiMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDJiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAyYjNiMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDJiNTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDJkNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTAyZDU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZDU4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJkNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyZjVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDJmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMmY2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyZjYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzE2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzMTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDMxNjQwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmNjUwMzIwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmNjUwMzQwNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDM0MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMzQwZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDM0MzMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzYzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMzYzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDM2MzQwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDM2NGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAzODRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDM4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzg0ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwMzg1MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDM4NzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmNjUwM2E2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmNjUwM2E3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAzYTczMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAzYTc2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDNjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDNjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjY1MDNjNzgwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmNjUwM2M5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmNjUwM2U4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjY1MDNlOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjY1MDNlOTEwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y2NTAzZWEwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y2NTA0MGEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmNjUwNDBhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmNjUwNDBhMjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjY1MDQwYWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjY1MDQyYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y2NTA0MmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y2NTA0MmFmMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmNjUwNDM2NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y2NTA0NTY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y2NTA0NTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y2NTA0NTZkMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDQ1YjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDQ3YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y2NTA0N2IxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDQ3YjMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNDdkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNDlkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDQ5ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmNjUwNDlkMzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmNjUwNGExMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRjMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGMxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDRjMTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YzE4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y2NTA0ZTE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGUxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y2NTA0ZTFhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmNjUwNGUzOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y2NTA1MDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y2NTA1MDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE4MDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MDNiMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjY1MDUwZTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjY1MDUyZTcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y2NTA1MmViMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI2MDAwIiwicHNzIjoiNjA4MDAiLCJzaHIiOiIxMzIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmNjUwNTJlZTAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTcxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTkxYzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MjMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkyNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1OTJhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1OTJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1OTJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDU5MzEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDU5MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwNWIzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWIzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmNjUwNWIzNjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjY1MDViNTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmNjUwNWQ1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmNjUwNWQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVkNTgwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA1ZDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWY2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjY4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA1Zjc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDYxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYxNzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNjE3ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYzN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjM3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTA2MzdmMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDY0NjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDY2NjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA2NjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NjcwMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NmNkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY2ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NmQyMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY3NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NzRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjc0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2NzUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y2NTA2NzUxMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmNjUwNjc5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y2NTA2OTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y2NTA2OTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5OTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTQwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2OWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNjlmNTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTA2YTNmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2YzNmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDZjNDMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZjNGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwNmU0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmU0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU1MDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU4MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlODYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU5YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlOWUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWE3MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWMwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmVjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZDMwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWRjMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmNjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmNzQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjdjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjdlMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmOGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIyNDQwMCIsInNociI6IjM5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjkxMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDAxMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA3MDEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMTcwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDJlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAzMzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDQ2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzA0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDRlMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDY3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmNjUwNzA3MDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmNjUwNzA5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjY1MDcyOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmNjUwNzI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MjlmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcyYTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3NGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDc0YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzRhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmNjUwNzRhNTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmNjUwNzRmODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc2ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmNjUwNzZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NmZhMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ODAwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA3OWZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2EwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdhMDYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmNjUwN2EwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDdjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2MwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDdjMTAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmNjUwN2MxOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDdlMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmNjUwN2UxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdlMWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ZTFjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTA4MDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwODAxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImNkMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwODAxZjAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4MWRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDgzZDkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDgzZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODNkZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwODNlNDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y2NTA4M2ZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTA4NWY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjkzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y2NTA4NWZhMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y2NTA4NmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmNjUwODhkZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y2NTA4OGU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDg4ZmYwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmNjUwODk5YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmNjUwOGI5YjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDhiYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDhiYTIwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA4ZDBlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwOGYwZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4ZjE1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwOGYxYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTExZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y2NTA5MTFlMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y2NTA5MTQ1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmNjUwOTM0NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y2NTA5MzQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTM0ODAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDkzODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTU4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTU4NTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5NWFkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5N2FkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTdiMjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk3ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTlkNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTlkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyMDAwIiwic2hyIjoiZGQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk5ZGQwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5YjEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOWQwZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDlkMTcwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDlkNTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y2NTA5ZjUwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOWY1NDAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMDU5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGEyNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGEyNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBhMjVhMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTI3MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhNDcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhNDczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmNjUwYTQ3ODAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y2NTBhNGU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y2NTBhNmU0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYTZlZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE2ZjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGE4ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhOGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmNjUwYThmMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmNjUwYTkwNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFiMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWIwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhYjA1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFiMDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYWQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZDA5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFkMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFmMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWYwYzAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmNjUwYjAzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGIyM2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2ODAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGIyNDEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMzQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjU0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGI1NGEwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiNTk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI3OTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI3OWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiNzliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjc5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDc5NGEwODIxNjY2ZDc5MTkwZDU5YTM2Y2I0ZjQ0YjUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzU2Y2Y0ZjQ3NjlkMGY0YWJjODlhNDg5NWQ3YmQzYWUxLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iOWQ1MDZjOWFjMDZjMjBiNDMzMzU0ZmE2N2E3Mjk5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGM5ZWI4MGViZDFjMzY1NDFlYmUyODUyZDNiYjBjNDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg1ZTBhNTJjZTY0M2E3YmEyYWU1M2U1ZDY5NDljZWFkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mNmU2ZTBhNWMzZDJmNmFlMGMwYzJlMGVjZDQyYTk5Ny1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvN2VmMjI5OGZkZTQxY2M2ZWViN2FmNDJlNDhiN2QyOTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzE2MzI2NjgzMDM4YjI4MTc4M2EwZWY4YzY4MGUzYTEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ZjAyZDRjYjA0NWJkNmNlMTU2NjNlNDNmMzQ3YzlmOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YWIwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTBhYTUzYmNmYTUwNGU2NGY4NzgyM2MxNmJjMDFlYjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL3NpdGUiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvbG9jYWwiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi91c2VyLzE1ODE1OC9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5YzAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5YzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5YzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjljYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5Y2IwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjllZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWYxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjlmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWZhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmEwYjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYThkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmE5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhMDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmFhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmFhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiI5NTAwMCIsInNociI6IjE0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhZTAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYzlmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2FmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2I2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiY2I5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYmMwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDI3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiMjU4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyYzAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZDMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGU1MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE3MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZmEwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmUyMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlMjQwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTUyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmU1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNWIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTZkMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzAzMDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMwNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODgwMCIsInNociI6ImUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMDU5MDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMjM2MDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiYTgwMCIsInNociI6IjMyMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzI1NjAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM3Y2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjN2NjMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODAyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzgxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjE2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgxNDAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg0NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODQ4MDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4OGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4OTMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGE5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YjkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxZDQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGM4MDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTIwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTJiMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6IjExNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NDkwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTY3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk2YTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjVlYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTgyMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2ExNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2ExNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2ExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjE2MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2ExYzAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTRiMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiYmUwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E2NTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYzBmMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYzM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2MzNzAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2QwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDA4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QxMDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDI3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzNjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2Q0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkNGIwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U1NzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTYwMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNlNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNzEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiNDE0MDAiLCJzaHIiOiI3NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U4MDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQwYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBiZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZDIwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwZWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzQwMDAiLCJwc3MiOiI0YTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZjEwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDFkZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQxZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDFlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIzYmMwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDFlZTAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzBlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzE2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDMxZjAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNzQwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJlODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM4NjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkM2M1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzYzYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDNjZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNhMDAwIiwic2hyIjoiYmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzZDAwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDZlMzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4YTQwMCIsInNociI6IjRlMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQ3MDgwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY0YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNGFlMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZjY1NzAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjY1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2YTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2OGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjkwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmE2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMTQwMDAiLCJwc3MiOiIzYzAwMDAiLCJzaHIiOiI1NTkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZiMDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGE2ZDAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjA4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTBiMTcwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiM2MwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNDEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOGMwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNGYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUzMDAwIiwicHNzIjoiOTY0MDAiLCJzaHIiOiJiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjcxMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBkNzQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGQ4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGQ4ODAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGVlYTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBlZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAwIiwicHNzIjoiYzNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGVmNTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMDAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMDA2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiJkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTAwOTAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTE2NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMTc4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxYmYwMDAiLCJwc3MiOiIyMzU4MDAiLCJzaHIiOiIxN2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMTdiMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY0ZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjczMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiIyYWMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjdmMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExNmJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2YzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmM1MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiI3ODgwMCIsInNociI6IjExMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmUzMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE5ZTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYTBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRhNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYTE0MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWFjODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYWNkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYWRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjBjMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIxOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMzgwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWI5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWI5ODAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmI5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJjZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiI0ZWMwMCIsInNociI6ImU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiZDMwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZjQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExZDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmMmUyNTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNmU5NDAwMCJ9fX0sInR0cyI6ODY4NTI2LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoteyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NTExNDkyMiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjFlZGZjMjAifSwib3V0ZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjM0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc1YzAwMCIsInBzcyI6IjdmODgwMCIsInNociI6IjI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUyMDAwIiwicHNzIjoiZTRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxZDYxMDAwIiwicHNzIjoiMWQ2MTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NzQ3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTc0ODAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiJlNzAwMCIsInBzcyI6ImU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmMGM2YzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjBjNmMxMDAwMDAiLCJzeiI6IjFmMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvaW5kZXgiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1MGQwMDAiLCJzeiI6IjgxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjU4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNzhlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcUdJMzMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiOThlMDAwIiwic3oiOiI0MDEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uc0NudENRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYzE5MDAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM1OTEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM3OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZlMDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM4OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkYzk5MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRjOWFmMDAwIiwic3oiOiI0MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRjOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTddIiwicGYiOjYsInNhIjoiN2Y2NGRjOWYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg0XSIsInBmIjo2LCJzYSI6IjdmNjRkZDFmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQ5ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQ5ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRlMWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzVdIiwicGYiOjYsInNhIjoiN2Y2NGRlMWY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiJkODAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGRlOWY0MDAwIiwic3oiOiI0YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRkZWEzZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGRlYzNlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGRlYzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ljb25zL2hpY29sb3IvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkZWM0MjAwMCIsInN6IjoiMjRlZjAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9nbm9tZS9pY29uLXRoZW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGUxMTMxMDAwIiwic3oiOiI1MjA3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiODQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy1Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmNjRlNjMzODAwMCIsInN6IjoiYWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNjNlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc0XSIsInBmIjo2LCJzYSI6IjdmNjRlNjNlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNjQwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTZiZTMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTZjOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZTZjOWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU3NDlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzRdIiwicGYiOjYsInNhIjoiN2Y2NGU3NDliMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlN2M5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjcwXSIsInBmIjo2LCJzYSI6IjdmNjRlN2M5YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg0OWMwMDAiLCJzeiI6IjM0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjowLCJzYSI6IjdmNjRlODRkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODZkMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg2ZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjRlODZkNjAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg3MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlODkwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4OTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjUsInNhIjoiN2Y2NGU4OTA4MDAwIiwic3oiOiI1OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjAsInNhIjoiN2Y2NGU4OTYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo0LCJzYSI6IjdmNjRlOGI2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjYsInNhIjoiN2Y2NGU4YjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZThiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZThiNjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZThiNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlOGQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlOGQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NSwic2EiOiI3ZjY0ZThkNmQwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjAsInNhIjoiN2Y2NGU4ZDg3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NCwic2EiOiI3ZjY0ZThmODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjliMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGY5ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzEiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8wIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzMiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmE3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZThmYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZThmYWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU5N2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjhdIiwicGYiOjYsInNhIjoiN2Y2NGU5N2FiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTlmYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTlmYjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTFhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRlYTFiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGVhMWIxMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZWExYmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NGVhM2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlYTNiZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvbWltZS9taW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGVhM2MwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVhM2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjZdIiwicGYiOjYsInNhIjoiN2Y2NGVhM2RmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYWJkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY1XSIsInBmIjo2LCJzYSI6IjdmNjRlYWJlMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGViM2UxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjRdIiwicGYiOjYsInNhIjoiN2Y2NGViM2UyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYmJlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYzXSIsInBmIjo2LCJzYSI6IjdmNjRlYmJlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWMzZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWMzZTQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjBdIiwicGYiOjYsInNhIjoiN2Y2NGVjYmU1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDNlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NGVkM2VkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDVlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkNWVmMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDYwNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkODA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkODA3MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDgyMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkYTFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkYTIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjUsInNhIjoiN2Y2NGVkYTIyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6MCwic2EiOiI3ZjY0ZWRhMzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6NCwic2EiOiI3ZjY0ZWRjMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjYsInNhIjoiN2Y2NGVkYzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS9wdWxzZS1zaG0tNDEyNTA5NTYxNiIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMzAwMCIsInN6IjoiNDAwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYxYzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTldIiwicGYiOjYsInNhIjoiN2Y2NGYxYzM1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjI0MzUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjAsInNhIjoiN2Y2NGYyNDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjQsInNhIjoiN2Y2NGYyNjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo2LCJzYSI6IjdmNjRmMjYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo1LCJzYSI6IjdmNjRmMjYzZTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjAsInNhIjoiN2Y2NGYyNjZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjQsInNhIjoiN2Y2NGYyODY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo2LCJzYSI6IjdmNjRmMjg2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo1LCJzYSI6IjdmNjRmMjg2YjAwMCIsInN6IjoiMmIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjowLCJzYSI6IjdmNjRmMmIxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjQsInNhIjoiN2Y2NGYyZDFkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6Niwic2EiOiI3ZjY0ZjJkMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo1LCJzYSI6IjdmNjRmMmQzYTAwMCIsInN6IjoiMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjowLCJzYSI6IjdmNjRmMmQ2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZjJmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo2LCJzYSI6IjdmNjRmMmY2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGYyZjZiMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGYyZjgyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmMzE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjMxODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo1LCJzYSI6IjdmNjRmMzE4NTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjAsInNhIjoiN2Y2NGYzMThhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo0LCJzYSI6IjdmNjRmMzM4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjYsInNhIjoiN2Y2NGYzMzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjUsInNhIjoiN2Y2NGYzMzhiMDAwIiwic3oiOiI2MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjowLCJzYSI6IjdmNjRmMzNlYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjQsInNhIjoiN2Y2NGYzNWVjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjYsInNhIjoiN2Y2NGYzNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM1ZWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjUsInNhIjoiN2Y2NGYzNWYzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjowLCJzYSI6IjdmNjRmMzVmYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo0LCJzYSI6IjdmNjRmMzdmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmMzdmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYzN2ZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTddIiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxN2MwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmM2ZmZTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZjQwNjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmNDI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmNDI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRmNDI2NTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjRmNDI2ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGY0NDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGY0NDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NSwic2EiOiI3ZjY0ZjQ0NzAwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjowLCJzYSI6IjdmNjRmNDRiNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjo0LCJzYSI6IjdmNjRmNDZiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNDZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU2XSIsInBmIjo2LCJzYSI6IjdmNjRmNDZiYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjRlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjRlYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY1NmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTRdIiwicGYiOjYsInNhIjoiN2Y2NGY1NmJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUzXSIsInBmIjo2LCJzYSI6IjdmNjRmNWViZDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjY2YmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZjY2YmUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTFdIiwicGYiOjYsInNhIjoiN2Y2NGY2ZWJmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNzZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUwXSIsInBmIjo2LCJzYSI6IjdmNjRmNzZjMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjdlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjdlYzEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY4NmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDhdIiwicGYiOjYsInNhIjoiN2Y2NGY4NmMyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjFhNjAwMCIsInBzcyI6IjFhZDAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjhlYzIwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEyODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWU4NzAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY5ZWI5MDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmVjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZmEwNjgwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjFkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhMTlkMDAwIiwic3oiOiI4NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTIyMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE0MjAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhNDM1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE0NDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTQ0MjAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE0YmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYTZiYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTZiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNmJkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDAwMCIsInNociI6Ijc3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y2NGZhNmMxMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y2NGZhNzc1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmNjRmYTk3NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y2NGZhOTc3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGZhOTdhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE5OWIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTlkYjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYWJkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRmYWJkZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDddIiwicGYiOjYsInNhIjoiN2Y2NGZhYmU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmFiZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZWQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiM2VkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmIzZWUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiYmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDRdIiwicGYiOjYsInNhIjoiN2Y2NGZiYmVmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYzNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQzXSIsInBmIjo2LCJzYSI6IjdmNjRmYzNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZmNiZjAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZhYTQxYWEyMmUxOGI4ZmEwNmExMmRhMjhlYTljMjhiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NhNjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jMDU4ODBkZTU3ZDFmNWU5NDhmZGZhY2MxMzg3NzVkOS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOTQ1Njc3ZWI3YWVhZjYyZjFkNTBlZmMzZmIzZWM3ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMmNkMTc2MTVjYTU5NGZhMjk1OWFlMTczMjkyZTUwNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2MwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2ZkOTUwNTk1MGMwNDhhNzdkYzRiNzEwZWI2YTYyOGVkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZGM3OWQzZWEwNmE3YzZmZmE4NmVkZTg1ZjNiYjVkZi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTcwNzFmNGEyOWZhODcwZjQzMjMzMjFjMTU0ZWJhMDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2EyYWI3NDc2NGIwNzI3OWU3YzM2ZGRiMWQzMDJjZjI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2M2OWYwNGFiMDUwMDRlMzFhNmQ1ZTcxNTc2NGYxNmQ4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wZDhjM2IyYWMwOTA0Y2I4YTU3YTc1N2FkMTFhNGEwOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNjQ2YWRkYjg0NDRmYWE3NGVlMTM4YWEwMGFiMGI2YTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTc1NWFmZTRhMDhiZjViOTc4NTJjZWI3NDAwYjQ3YmMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2QwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMjBiZDc5YWQ5NzA5NDQwNmY3ZDFiOTY1NGJmYmQ5MjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2Q3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOWMwNjI0MTA4YjlhMmFlODU1MmY2NjQxMjViZTgzNTYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmQ0MTI4OGZkNzBiMGJlMjJlOGMzYTkxZTAzMmVlYzAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RhMWJkNWNhODQ0M2ZmZTIyOTI3YTIzY2U0MzFkMTk4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNjM1NGUzYWM0M2FmNjdiZDhkN2I4ZTQzYzM0ZTQ5Zi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzA0YWFiYzBhNzhhYzAxOWNmOTQ1NDM4OTk3NzExNmQyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NmMDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMWFjOWViODAzOTQ0ZmRlMTQ2MTM4Yzc5MWY1Y2M1NmEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM4NWMwNjA0YTE4ODE5OGYwNGQxMzNlNTRhYmE3ZmU3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYzA1ZGI2NjY0Mjg1Y2MyZjEyYmY2OWMxMzlhZTRjMy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNGYzZTMwMzdjOTk4MGM4M2I1M2E5MzUxZWZhZGVmNjItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzc2N2E4MjQ0ZmMwMjIwY2ZiNTY3YTgzOWQwMzkyZTBiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg4MDE0OTc5NTg2MzBhODFiNzFhY2U3YzVmOWIzMmE4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwZTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzY1YjU1ZjIxMGMwYTIyZTlhMTllMzUxOTEyNDBmMzItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDEzMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzMwNDc4MTRkZjlhMmYwNjdiZDJkOTZhMmI5YzM2ZTVhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q0ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RlOTQ4NmYwYjQ3YTRkNzY4YTU5NGNiNDE5OGNiMWM2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I0N2M0ZTFlY2QwNzA5Mjc4ZjQ5MTBjMTg3NzdhNTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDUyYTg2NDQwNzNkNTRjMTM2NzkzMDJjYTExODA2OTUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDVlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjgwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzNmNzMyOWM1MjkzZmZkNTEwZWRlZjc4ZjczODc0Y2ZkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3MTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTg5YTQ4ODYyMzk4ZWQ4MGEzZDYwNjZmNGY1NmY0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkN2EwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UxM2IyMGZkYjA4MzQ0ZTBlNjY0ODY0Y2MyZWRlNTNkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q4NTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ2N2MwMTllNTgyZWUzNTM0MzVlYTVjMjFkMTM3ZWY2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q5YzAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmY2RiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQyXSIsInBmIjo2LCJzYSI6IjdmNjRmY2RiYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmQ1YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmQ1YmMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmRkYmMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjowLCJzYSI6IjdmNjRmZGRjNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZGZjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNGIwMDAiLCJwc3MiOiI0YzgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvZ3NjaGVtYXMuY29tcGlsZWQiLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzkwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMDE4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmUyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUyMWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUyMjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmU0MjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZTYzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjM5XSIsInBmIjo2LCJzYSI6IjdmNjRmZTYzYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWUzYTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWVjNTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjQ2MDAwIiwicHNzIjoiNTE0MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y2NGZlZjJiMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmNjRmZjhlODAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMDhkYzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwOGVjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMDhmMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMGFlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmNjUwMGFmMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmNjUwMGFmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y2NTAwY2Y0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y2NTAwY2Y1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMGNmNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDBjZmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDBlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMGVmZTAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMGYzOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDExMzgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTEzZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMTE0MDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDExNTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTM1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTM1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxMzU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmNjUwMTM1NTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y2NTAxM2QxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y2NTAxNWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmNjUwMTVkMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE1ZDUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAxNWRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAxN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTdkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y2NTAxN2UwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE3ZTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y2NTAxOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTllNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE5ZTUwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMWExMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMWMxMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDFjMTQwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y2NTAxY2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDFlZDAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDFlZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDFlZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDFlZTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjBlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjBlNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIwZTgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIyZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMmVhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMmVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI0ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAyNGVlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDI0ZjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNmY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI2ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDI2ZjcwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwMjcwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwMjkwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAyOTBkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAyOTEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAyOTExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwMjkxNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDI5MzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwMmIzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwMmIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDJiM2IwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMmI1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMmQ1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJkNTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmQ2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDJmNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMmY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZjYxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJmNjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzMTYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDMxNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmNjUwMzE2NDAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y2NTAzMjA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y2NTAzNDA1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y2NTAzNDBlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMzQzMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzNjMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzNjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMzYzNDAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwMzY0YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDM4NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMzg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzODRkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTAzODUwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmNjUwMzg3MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y2NTAzYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDNhNzMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDNhNzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwM2M3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmNjUwM2M3ODAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y2NTAzYzkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y2NTAzZThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmNjUwM2U5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmNjUwM2U5MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjY1MDNlYTAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjY1MDQwYTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y2NTA0MGExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y2NTA0MGEyMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmNjUwNDBhZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmNjUwNDJhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjY1MDQyYWYwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y2NTA0MzY1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjY1MDQ1NjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDQ1NmQwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwNDViMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwNDdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ3YjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNDdiMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA0N2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA0OWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y2NTA0OWQzMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YTEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGMwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y2NTA0YzEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwNGMxMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRjMTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRlMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjY1MDRlMWEwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y2NTA0ZTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjY1MDUwMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjY1MDUwM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTgwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUwM2IwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTBlODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTJlNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTJlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiI2MDgwMCIsInNociI6IjEzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MmVlMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1NzFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1OTFjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTI3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDU5MmEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDU5MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDU5MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNTkzMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwNTkzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1YjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y2NTA1YjM2MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmNjUwNWI1NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y2NTA1ZDU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y2NTA1ZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWQ1ODAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVkNjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVmNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjE3OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA2MTdlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjM3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MzdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiY2MwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYzN2YwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwNjQ2ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjY2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2NzAwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY2Y2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjZkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2ZDIwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjc0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY3NGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY3NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjY1MDY3NTEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y2NTA2Nzk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjY1MDY5OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjY1MDY5OTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjk5NjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhNDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjllZDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2OWY1MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZhM2YwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZjM2YwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNmM0MzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmM0ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTUwMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU4NjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmU5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTlhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmU5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU5ZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTcwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmViZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkMzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZGMwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY2NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3NDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmN2UwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjI0NDAwIiwic2hyIjoiMzkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmOTEwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZmZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMDEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcwMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAxNzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMmUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDMzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNGUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y2NTA3MDcwMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y2NTA3MDllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmNjUwNzI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y2NTA3MjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcyOWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzJhMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDc0YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzRhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3NGE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NGE1MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3NGY4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzZmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3NmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc2ZmEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc4MDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc5ZmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2EwNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3YTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwN2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmNjUwN2MxMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y2NTA3YzE5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmNjUwN2UxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y2NTA3ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2UxYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdlMWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDgwMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiY2QwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4MDFmMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDgxZGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwODNkOTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwODNkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTA4M2U0MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDgzZmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDg1ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiOTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjY1MDg1ZmEwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjY1MDg2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y2NTA4OGRmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODhlOTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmNjUwODhmZjAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y2NTA4OTljMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y2NTA4YjliMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmNjUwOGJhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJlMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwOGJhMjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDhkMGUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA4ZjBkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOGYxMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDhmMTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4ZjFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5MTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTExYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5MTFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMWMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDkxMWUwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDkxNDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y2NTA5MzQ1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDkzNDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5MzQ4MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTM4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5NTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk1ODIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5NTg1MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk1YWQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk3YWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk3YjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5N2IyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTdkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5OWQ2MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5OWRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjIwMDAiLCJzaHIiOiJkZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTlkZDAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDliMTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5ZDBmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWQxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmNjUwOWQxNzAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmNjUwOWQ1MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDlmNTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5ZjUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5ZjU0MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGEwNTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYTI1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYTI1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGEyNWEwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMjczMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGE0NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYTQ3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y2NTBhNDc4MDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjY1MGE0ZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjY1MGE2ZTQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y2NTBhNmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE2ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhNmVkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYTZmMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwYThmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGE4ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhOGYzMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y2NTBhOTA0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWIwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y2NTBhYjA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFiMDUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYWIwNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFkMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWQwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhZDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFkMDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwYWQwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFmMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZjBjMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y2NTBiMjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjIzZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjI0MTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGIzNDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTBiNTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjU0ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjU0YTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGI1OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjc5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjc5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI3OWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiNzllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOTlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80Nzk0YTA4MjE2NjZkNzkxOTBkNTlhMzZjYjRmNDRiNS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNTZjZjRmNDc2OWQwZjRhYmM4OWE0ODk1ZDdiZDNhZTEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I5ZDUwNmM5YWMwNmMyMGI0MzMzNTRmYTY3YTcyOTkzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wYzllYjgwZWJkMWMzNjU0MWViZTI4NTJkM2JiMGM0OS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvODVlMGE1MmNlNjQzYTdiYTJhZTUzZTVkNjk0OWNlYWQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Y2ZTZlMGE1YzNkMmY2YWUwYzBjMmUwZWNkNDJhOTk3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83ZWYyMjk4ZmRlNDFjYzZlZWI3YWY0MmU0OGI3ZDI5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMTYzMjY2ODMwMzhiMjgxNzgzYTBlZjhjNjgwZTNhMTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzhmMDJkNGNiMDQ1YmQ2Y2UxNTY2M2U0M2YzNDdjOWY4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhYjAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMGFhNTNiY2ZhNTA0ZTY0Zjg3ODIzYzE2YmMwMWViNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvc2l0ZSIsInBmIjo0LCJzYSI6IjdmNjUwYjliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2V0Yy9kY29uZi9kYi9sb2NhbCIsInBmIjo0LCJzYSI6IjdmNjUwYjliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvZGNvbmYvdXNlciIsInBmIjo0LCJzYSI6IjdmNjUwYjliYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3VzZXIvMTU4MTU4L2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjljODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjljOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiOWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljYjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjllZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZjEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjlmNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjlmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZmEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTBiMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhOGQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmE5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWEwMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYWFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYWFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6Ijk1MDAwIiwic2hyIjoiMTQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWFlMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjOWYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmNiMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiMjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2I3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2JhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiYzAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkMjIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkMjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiIyNTgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDJjMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmRkMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZTUwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmRmYTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmUxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTIwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmUyNDAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiNTQwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNmQwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMDMwMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzA1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4ODAwIiwic2hyIjoiZTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGMwNTkwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGMyMzYwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzI1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImI3YzAwIiwic2hyIjoiMzIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMjU2MDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzdjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM3Y2MwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzgwNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzgxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODE0MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4NDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDQwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4NDgwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg4ZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzg5MzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOGFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhhZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhiOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjFkNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YzgwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5MjAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5MmIwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk0OTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTZhMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM5ODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNWVjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5ODIwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjYTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTE3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTFjMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiN2MwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhNGIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2E2MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2E2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzUwMDAiLCJwc3MiOiJiZTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTY1MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNjMGYwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNjMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYzM3MDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjZDA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMDgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDEwMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2QyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDM2MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2Q0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiI0ZTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2Q0YjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTU3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiODQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNjAwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2U2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U3MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2U3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI0MjQwMCIsInNociI6Ijc1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTgwMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDBiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMGJmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQwY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0NDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBkMjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBlZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNDAwMCIsInBzcyI6IjRhODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBmMTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMWRlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDFlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMWVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNzAwMCIsInBzcyI6IjNiYzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMWVlMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzMGUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzMTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzFmMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzY1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM3NDAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzg2MDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkM2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDNjNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkM2NmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2EwMDAiLCJzaHIiOiJiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDNkMDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQ2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkNmUzMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQ2ZjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMThhNDAwIiwic2hyIjoiNGUzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDcwODAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmNjUwZjRhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY0YWUwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY1MjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBmNjU3MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2NjUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjZhMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjY4ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2OTAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjZhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2YTYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIzMjAwMCIsInBzcyI6IjNkZTQwMCIsInNociI6IjU1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmIwMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYTZkMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiMDgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMGIxNzAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0ZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTMwMDAiLCJwc3MiOiI5NjQwMCIsInNociI6ImJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNzEwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGQ3NDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwZDg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZDg4MDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwZWVhMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGVmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMDAiLCJwc3MiOiJjM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZWY1MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTEwMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTAwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMDAiLCJwc3MiOiI3MDAwMCIsInNociI6ImQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMDA5MDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMTY3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTExNzgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjFiZjAwMCIsInBzcyI6IjIzNTgwMCIsInNociI6IjE3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTExN2IwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNjRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExNjcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2NzMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNjAwMCIsInBzcyI6IjJhYzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2N2YwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTE2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTZjMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNzQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2YzUwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6Ijc4ODAwIiwic2hyIjoiMTEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2ZTMwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTllNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYTBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGE0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhMTQwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYWM4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhY2QwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhZGQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjA1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmNjUxMWIwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI1NDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMGMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjE5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIzODAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWI5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImVjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjk4MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmI1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWJiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiYjkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmNmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjRlYzAwIiwic2hyIjoiZTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWJkMzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWNmNDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWNmYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExZDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFkMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmYyZTI1NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmYyZTMyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI3Mjc2MDAwIn19fSwidHRzIjo4OTY5NTAsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCi17InBpZCI6MTUyMzgsInRpZCI6MTUyMzgsInRzIjoxNTc2NjU1MjEzNzg0LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMjAzY2ViMCJ9LCJvdXRlcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIyNTQ3MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNzVmMDAwIiwicHNzIjoiN2ZiNDAwIiwic2hyIjoiMjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTIwMDAiLCJwc3MiOiJlNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIyNTAwMCIsInBzcyI6IjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNzE0YWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlYzAwMCIsInBzcyI6ImVjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQ5Y2ZiYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNjY2MDM4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY2NjAzODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzOWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4Njg3ZjAwMCIsInN6IjoiMTgxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZjMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZjMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZkMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmQzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2ZTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjUwMDAiLCJwc3MiOiI2NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmUwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZWZmMDAwIiwic3oiOiIxZjk4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjgwZDY1YTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWIwMDAiLCJwc3MiOiI1YjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNGQwMDAiLCJwc3MiOiI0ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMGU3ZDM3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjRhODA1OWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNGE4MDU5ZjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMjVmZTRmZjRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1MTcwMDAiLCJzeiI6IjI5MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZlOTM1NDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1NjAwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxMjY0NjkwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWYwMDAiLCJwc3MiOiIxZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyODIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJhMjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYzIwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFlNzIwMDAiLCJwc3MiOiIxZTcyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJmOTAwMCIsInN6IjoiMjE4NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk3NDdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZDEwMDAiLCJwc3MiOiIyZDEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk3NDgwMDAwIiwic3oiOiI0MWYwMDAifSx7ImJzIjp7InBydiI6ImYwMDAwIiwicHNzIjoiZjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2YwYzZjMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmMGM2YzEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYjUwZDAwMCIsInN6IjoiODEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNThlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI3OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRxR0kzMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI5OGUwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnNDbnRDUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGMxOTAwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MjgwMCIsInNociI6ImU1MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM0XSIsInBmIjo2LCJzYSI6IjdmNjRlNzQ5YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTdjOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3MF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTdjOWMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4NDljMDAwIiwic3oiOiIzNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg0ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg2ZDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NGU4NmQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg2ZDYwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmd2ZnNkYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4NzA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg5MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRlODkwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo1LCJzYSI6IjdmNjRlODkwODAwMCIsInN6IjoiNTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjowLCJzYSI6IjdmNjRlODk2MTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmlidXMtMS4wLnNvLjUuMC41MDUiLCJwZiI6NCwic2EiOiI3ZjY0ZThiNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo2LCJzYSI6IjdmNjRlOGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4YjY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4YjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZThkNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZThkNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjUsInNhIjoiN2Y2NGU4ZDZkMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzbWVudS1nbGliLnNvLjQuMC4xMiIsInBmIjowLCJzYSI6IjdmNjRlOGQ4NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjQsInNhIjoiN2Y2NGU4Zjg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjYsInNhIjoiN2Y2NGU4Zjg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMyIsInBmIjo2LCJzYSI6IjdmNjRlOGY5YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjlmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlOGZhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMSIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU4ZmE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjldIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmFhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlOTdhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY4XSIsInBmIjo2LCJzYSI6IjdmNjRlOTdhYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGU5ZmFiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGU5ZmIwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZWExYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWExYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRlYTFiMTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGVhMWJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGVhM2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzAiLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlYTNjMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYTNkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY2XSIsInBmIjo2LCJzYSI6IjdmNjRlYTNkZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWFiZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWFiZTAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZWIzZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYjNlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY0XSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWJiZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2M10iLCJwZiI6Niwic2EiOiI3ZjY0ZWJiZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjM2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjFdIiwicGYiOjYsInNhIjoiN2Y2NGVjM2U0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlY2JlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYwXSIsInBmIjo2LCJzYSI6IjdmNjRlY2JlNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZWQzZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDNlZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZWQ1ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDVlZjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWguc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ2MDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDgwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDgwNzAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjZ21hbmFnZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ4MjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZGExZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZGEyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo1LCJzYSI6IjdmNjRlZGEyMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjAsInNhIjoiN2Y2NGVkYTMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjQsInNhIjoiN2Y2NGVkYzMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vcHVsc2Utc2htLTQxMjUwOTU2MTYiLCJwZiI6Niwic2EiOiI3ZjY0ZWRjMzMwMDAiLCJzeiI6IjQwMDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMWMzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU5XSIsInBmIjo2LCJzYSI6IjdmNjRmMWMzNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjUsInNhIjoiN2Y2NGYyNDM1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjowLCJzYSI6IjdmNjRmMjQzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo0LCJzYSI6IjdmNjRmMjYzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6Niwic2EiOiI3ZjY0ZjI2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6NSwic2EiOiI3ZjY0ZjI2M2UwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjowLCJzYSI6IjdmNjRmMjY2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo0LCJzYSI6IjdmNjRmMjg2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6Niwic2EiOiI3ZjY0ZjI4NmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6NSwic2EiOiI3ZjY0ZjI4NmIwMDAiLCJzeiI6IjJiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6MCwic2EiOiI3ZjY0ZjJiMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo0LCJzYSI6IjdmNjRmMmQxZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjYsInNhIjoiN2Y2NGYyZDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjJkM2EwMDAiLCJzeiI6IjMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjJkNmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJGTEFDLnNvLjguMy4wIiwicGYiOjQsInNhIjoiN2Y2NGYyZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6Niwic2EiOiI3ZjY0ZjJmNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmMmY2YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjRmMmY4MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjMxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmMzE4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjMxODUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjowLCJzYSI6IjdmNjRmMzE4YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NCwic2EiOiI3ZjY0ZjMzODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo2LCJzYSI6IjdmNjRmMzM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo1LCJzYSI6IjdmNjRmMzM4YjAwMCIsInN6IjoiNjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic25kZmlsZS5zby4xLjAuMjUiLCJwZiI6MCwic2EiOiI3ZjY0ZjMzZWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo0LCJzYSI6IjdmNjRmMzVlYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo2LCJzYSI6IjdmNjRmMzVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzNWVmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo1LCJzYSI6IjdmNjRmMzVmMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6MCwic2EiOiI3ZjY0ZjM1ZmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZjM3ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMzdmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU3XSIsInBmIjo2LCJzYSI6IjdmNjRmMzdmZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTdjMDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZjNmZmUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3B1bHNlYXVkaW8vbGlicHVsc2Vjb21tb24tNC4wLnNvIiwicGYiOjAsInNhIjoiN2Y2NGY0MDY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjQyNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZjQyNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjQyNjUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjQyNmYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRmNDQ2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRmNDQ2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjUsInNhIjoiN2Y2NGY0NDcwMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ0YjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NCwic2EiOiI3ZjY0ZjQ2YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjYsInNhIjoiN2Y2NGY0NmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ2YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YmEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY0ZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTVdIiwicGYiOjYsInNhIjoiN2Y2NGY0ZWJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNTZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU0XSIsInBmIjo2LCJzYSI6IjdmNjRmNTZiYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjVlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1M10iLCJwZiI6Niwic2EiOiI3ZjY0ZjVlYmQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2NmJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTJdIiwicGYiOjYsInNhIjoiN2Y2NGY2NmJlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUxXSIsInBmIjo2LCJzYSI6IjdmNjRmNmViZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0Zjc2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1MF0iLCJwZiI6Niwic2EiOiI3ZjY0Zjc2YzAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY3ZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDldIiwicGYiOjYsInNhIjoiN2Y2NGY3ZWMxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmODZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ4XSIsInBmIjo2LCJzYSI6IjdmNjRmODZjMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxYTYwMDAiLCJwc3MiOiIxYWQwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY4ZWMyMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjllODcwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWViOTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGZhMDY4MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxZDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTE5ZDAwMCIsInN6IjoiODQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmEyMjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZhNDIwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTQzNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE0NDIwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZhNGJhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE2YmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmE2YmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTZiZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI3NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmNjRmYTZjMTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmNjRmYTc3NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZmE5NzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmNjRmYTk3NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFkODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRmYTk3YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTk5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhOTliMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE5ZGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhYmRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ3XSIsInBmIjo2LCJzYSI6IjdmNjRmYWJlNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDZdIiwicGYiOjYsInNhIjoiN2Y2NGZhYmVkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYjNlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM5XSIsInBmIjo2LCJzYSI6IjdmNjRmYjNlZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmJiZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZmJiZWYwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZjM2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDNdIiwicGYiOjYsInNhIjoiN2Y2NGZjM2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL2RlamF2dS9EZWphVnVTYW5zLnR0ZiIsInBmIjo0LCJzYSI6IjdmNjRmY2JmMDAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmFhNDFhYTIyZTE4YjhmYTA2YTEyZGEyOGVhOWMyOGItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2E2MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2MwNTg4MGRlNTdkMWY1ZTk0OGZkZmFjYzEzODc3NWQ5LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy85NDU2NzdlYjdhZWFmNjJmMWQ1MGVmYzNmYjNlYzdkOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8yY2QxNzYxNWNhNTk0ZmEyOTU5YWUxNzMyOTJlNTA0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZmQ5NTA1OTUwYzA0OGE3N2RjNGI3MTBlYjZhNjI4ZWQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RkYzc5ZDNlYTA2YTdjNmZmYTg2ZWRlODVmM2JiNWRmLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lNzA3MWY0YTI5ZmE4NzBmNDMyMzMyMWMxNTRlYmEwNC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTJhYjc0NzY0YjA3Mjc5ZTdjMzZkZGIxZDMwMmNmMjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYzY5ZjA0YWIwNTAwNGUzMWE2ZDVlNzE1NzY0ZjE2ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzBkOGMzYjJhYzA5MDRjYjhhNTdhNzU3YWQxMWE0YTA4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82NDZhZGRiODQ0NGZhYTc0ZWUxMzhhYTAwYWIwYjZhMC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNzU1YWZlNGEwOGJmNWI5Nzg1MmNlYjc0MDBiNDdiYy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZDAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8yMGJkNzlhZDk3MDk0NDA2ZjdkMWI5NjU0YmZiZDkyNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy85YzA2MjQxMDhiOWEyYWU4NTUyZjY2NDEyNWJlODM1Ni1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZGEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82ZDQxMjg4ZmQ3MGIwYmUyMmU4YzNhOTFlMDMyZWVjMC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZGYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGExYmQ1Y2E4NDQzZmZlMjI5MjdhMjNjZTQzMWQxOTgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2UzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2E2MzU0ZTNhYzQzYWY2N2JkOGQ3YjhlNDNjMzRlNDlmLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlNTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMDRhYWJjMGE3OGFjMDE5Y2Y5NDU0Mzg5OTc3MTE2ZDItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2YwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8xYWM5ZWI4MDM5NDRmZGUxNDYxMzhjNzkxZjVjYzU2YS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzg1YzA2MDRhMTg4MTk4ZjA0ZDEzM2U1NGFiYTdmZTctbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RjMDVkYjY2NjQyODVjYzJmMTJiZjY5YzEzOWFlNGMzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80ZjNlMzAzN2M5OTgwYzgzYjUzYTkzNTFlZmFkZWY2Mi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNzY3YTgyNDRmYzAyMjBjZmI1NjdhODM5ZDAzOTJlMGItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvODgwMTQ5Nzk1ODYzMGE4MWI3MWFjZTdjNWY5YjMyYTgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBlMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zNjViNTVmMjEwYzBhMjJlOWExOWUzNTE5MTI0MGYzMi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMTMwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzA0NzgxNGRmOWEyZjA2N2JkMmQ5NmEyYjljMzZlNWEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDRlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGU5NDg2ZjBiNDdhNGQ3NjhhNTk0Y2I0MTk4Y2IxYzYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYjQ3YzRlMWVjZDA3MDkyNzhmNDkxMGMxODc3N2E1MDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDU4MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTJhODY0NDA3M2Q1NGMxMzY3OTMwMmNhMTE4MDY5NS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNWUwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvM2Y3MzI5YzUyOTNmZmQ1MTBlZGVmNzhmNzM4NzRjZmQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDcxMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Q1ODlhNDg4NjIzOThlZDgwYTNkNjA2NmY0ZjU2ZjRjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3YTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTEzYjIwZmRiMDgzNDRlMGU2NjQ4NjRjYzJlZGU1M2QtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDg1MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDY3YzAxOWU1ODJlZTM1MzQzNWVhNWMyMWQxMzdlZjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDljMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZjZGJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDJdIiwicGYiOjYsInNhIjoiN2Y2NGZjZGJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZDViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQxXSIsInBmIjo2LCJzYSI6IjdmNjRmZDViYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZGRiYzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZkZGM3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZGZjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZkZmM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0YjAwMCIsInBzcyI6IjRjODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZ2xpYi0yLjAvc2NoZW1hcy9nc2NoZW1hcy5jb21waWxlZCIsInBmIjo0LCJzYSI6IjdmNjRmZGZjOTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUwMTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlMDFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZlMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTIxYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTIxYzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTIyNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZlNDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTQyNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlNDM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZlNjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTYzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZlNjM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyMzldIiwicGYiOjYsInNhIjoiN2Y2NGZlNjNhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y2NGZlZTNhMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y2NGZlZWM1MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiI1MTQwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3ZjY0ZmVmMmIwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y2NGZmOGU4MDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwOGRjMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDA4ZWMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAwOGYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAwYWVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwYWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y2NTAwYWYyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y2NTAwYWY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3ZjY1MDBjZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3ZjY1MDBjZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y2NTAwY2Y2MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMGNmYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMGVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGVmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwZWZlMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAwZjM5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTEzODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAxMTNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAxMTQwMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmNjUwMTE1MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAxMzUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTAxMzUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDEzNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y2NTAxMzU1MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3ZjY1MDEzZDEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3ZjY1MDE1ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y2NTAxNWQyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTVkNTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE1ZGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDE3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y2NTAxN2RmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE3ZTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmNjUwMTdlMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDE5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTllMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxOWU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTllNTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y2NTAxYTExMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y2NTAxYzEwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxYzEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmNjUwMWMxNDAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDFjZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmNjUwMWVkMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmNjUwMWVkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMWVkZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMWVlNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyMGUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDIwZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMGU2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMjBlODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjJlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDIyZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDIyZWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIyZWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjRlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjRlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyNGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDI0ZWUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmNjUwMjRmNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI2ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjZmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwMjZmNzAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTAyNzBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTAyOTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyOTBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDI5MGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDI5MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDI5MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y2NTAyOTE0MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwMjkzOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y2NTAyYjM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y2NTAyYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwMmIzYjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAyYjU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAyZDU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMmQ1ODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyZDYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMmY1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyZjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJmNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmY2MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDMxNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMzE2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y2NTAzMTY0MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDMyMDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDM0MDUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDM0MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDM0MGUwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y2NTAzNDMzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDM2MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDM2MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAzNjM0MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAzNjRiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwMzg0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAzODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDM4NGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDM4NTAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y2NTAzODcwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDNhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwM2E3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwM2E3MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwM2E3NjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAzYzc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNjNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y2NTAzYzc4MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3ZjY1MDNjOTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3ZjY1MDNlOGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y2NTAzZTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y2NTAzZTkxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmNjUwM2VhMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmNjUwNDBhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3ZjY1MDQwYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3ZjY1MDQwYTIwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y2NTA0MGFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y2NTA0MmFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0MmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmNjUwNDJhZjAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3ZjY1MDQzNjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmNjUwNDU2NTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0NTZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwNDU2ZDAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y2NTA0NWIwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y2NTA0N2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwNDdiMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA0N2IzMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDQ3ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDQ5ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ5ZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMWMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDQ5ZDMwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRhMTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y2NTA0YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDRjMTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y2NTA0YzExMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmNjUwNGMxODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGUxNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNGUxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmNjUwNGUxYTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3ZjY1MDRlMzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmNjUwNTAzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmNjUwNTAzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjExODAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmNjUwNTAzYjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1MGU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1MmU3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTJlYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1MmVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNjAwMCIsInBzcyI6IjYwODAwIiwic2hyIjoiMTMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUyZWUwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjY1MDU3MWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjY1MDU5MWMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y2NTA1OTIzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNTkyYTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNTkyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTA1OTMxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA1OTM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDViMzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNWIzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3ZjY1MDViMzYwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y2NTA1YjU1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3ZjY1MDVkNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3ZjY1MDVkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTA1ZDU4MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmNjUwNWQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwNWY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNWY2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNWY2MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNWY2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNWY2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWY2ODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNWY3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA2MTc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDYxNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA2MTc5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDYxN2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA2MzdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDYzN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjM3ZjAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTA2NDY4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTA2NjY3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2NjZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjY3MDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjZjZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NmQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjZkMjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2NzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjc0YzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY3NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjc1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmNjUwNjc1MTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3ZjY1MDY3OTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmNjUwNjk5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmNjUwNjk5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2OTk2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY5YTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2OWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjlhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3ODAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2OWE0MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjllYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjllYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjllYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWVkMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDY5ZjUwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmEzZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwNmMzZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmM0MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2YzQzMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTA2YzRlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZlNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDZlNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlNTAwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlODIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmU4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTg2MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlOWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmU5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTllMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJjODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhNzAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmViZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVjMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmVkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWQzMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmVkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjExNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkYzAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjY1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjcyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2Zjc0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3ZTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZmOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMjQ0MDAiLCJzaHIiOiIzOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY5MTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAwMTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzAxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDE3MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAyZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMzMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzA0ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDcwNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiJjODAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3ZjY1MDcwNzAwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3ZjY1MDcwOWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y2NTA3MjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3ZjY1MDcyOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzI5ZjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA3MmEzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzRhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3NGEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDc0YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMzIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc0YTUwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc0ZjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y2NTA3NmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDc2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNzZmYTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmNjUwNzgwMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzlmZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwN2EwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3YTA2MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdhMGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y2NTA3YzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDdjMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y2NTA3YzEwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDdjMTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y2NTA3ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDdlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTA3ZTFhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwN2UxYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwODAxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODAxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjZDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDgwMWYwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwODFkYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA4M2Q5MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgzZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDgzZTQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmNjUwODNmYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmNjUwODVmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiI5MzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmNjUwODVmYTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmNjUwODZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3ZjY1MDg4ZGYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmNjUwODhlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4OGU5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y2NTA4OGZmMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDg5OWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDhiOWIwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y2NTA4YmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6ImUzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTA4YmEyMDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwOGQwZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDhmMGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwOGYxMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOGYxNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDhmMWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDkxMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5MTFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxYzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmNjUwOTExZTAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmNjUwOTE0NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDkzNDUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmNjUwOTM0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDkzNDgwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5MzgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk1ODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDk1ODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk1ODUwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTVhZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTdhZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDk3YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk3YjIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5N2Q3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk5ZDYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDk5ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMjAwMCIsInNociI6ImRkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5OWRkMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOWIxMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDlkMGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOWQxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y2NTA5ZDE3MDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y2NTA5ZDUxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmNjUwOWY1MDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y2NTA5ZjUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDlmNTQwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTA1OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhMjU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhMjU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYTI1YTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGEyNzMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYTQ3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYTQ3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNDc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3ZjY1MGE0NzgwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmNjUwYTRlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmNjUwYTZlNDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3ZjY1MGE2ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGE2ZWQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTBhNmYyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhOGYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwYThmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3ZjY1MGE4ZjMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE5MDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhYjAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFiMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWIwNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTBhYjA3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhZDA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWQwOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTBhZDBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTBhZjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFmMGMwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGIwM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGIyM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTBiMjNkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjhjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTBiMjQxMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwYjM0NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI1NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjU0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTBiNTRhMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwYjU5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTBiNzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNzlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjc5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGI3OWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5OWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ3OTRhMDgyMTY2NmQ3OTE5MGQ1OWEzNmNiNGY0NGI1LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy81NmNmNGY0NzY5ZDBmNGFiYzg5YTQ4OTVkN2JkM2FlMS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYjlkNTA2YzlhYzA2YzIwYjQzMzM1NGZhNjdhNzI5OTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzBjOWViODBlYmQxYzM2NTQxZWJlMjg1MmQzYmIwYzQ5LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84NWUwYTUyY2U2NDNhN2JhMmFlNTNlNWQ2OTQ5Y2VhZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZjZlNmUwYTVjM2QyZjZhZTBjMGMyZTBlY2Q0MmE5OTctbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzdlZjIyOThmZGU0MWNjNmVlYjdhZjQyZTQ4YjdkMjkzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8xNjMyNjY4MzAzOGIyODE3ODNhMGVmOGM2ODBlM2ExMC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOGYwMmQ0Y2IwNDViZDZjZTE1NjYzZTQzZjM0N2M5ZjgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWFiMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UwYWE1M2JjZmE1MDRlNjRmODc4MjNjMTZiYzAxZWI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjliODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2V0Yy9kY29uZi9kYi9zaXRlIiwicGYiOjQsInNhIjoiN2Y2NTBiOWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL2xvY2FsIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vdXNlci8xNTgxNTgvZGNvbmYvdXNlciIsInBmIjo0LCJzYSI6IjdmNjUwYjliZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWMwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5Y2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWNiMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjllODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjllYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjllYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGI5ZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjlmMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGI5ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjlmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjlmYTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJhMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmEwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhMGIwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTg1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE4ZDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJhOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiYTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhOWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhYTAwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJiMDAwIiwicHNzIjoiOTUwMDAiLCJzaHIiOiIxNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhYWUwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmM5ZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiY2IwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiY2IyMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiY2I4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmNiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiY2JjMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZDI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmQyYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjI1ODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkMmMwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGQzMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmRlNTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZGY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmRmNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmRmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxNzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGZhMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlMjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTI0MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmU1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU1MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJlNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTViMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU2YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6ImRjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU2ZDAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIyODAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3ZjY1MGMwMzAwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMDU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDg4MDAiLCJzaHIiOiJlMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzA1OTAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIxZTAwMCIsInBzcyI6IjFlMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzIzNjAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzI1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYjc0MDAiLCJzaHIiOiIzMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGMyNTYwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjN2NiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNjAwMCIsInBzcyI6IjM2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzdjYzAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzgwMjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjODA3MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgwYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzgxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4MTQwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzg0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4NDQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkNDAwIiwic2hyIjoiMzUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzg0ODAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODhmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODkzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGFmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGI5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMWQ0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhjODAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzkyMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM5MmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI1NDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzkyYjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzk0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiIxMTQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTQ5MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzk2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk2NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NmEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5ODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTIwMDAiLCJwc3MiOiI1ZWMwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk4MjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNhMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhMTcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxNjAwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhMWMwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2E0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E0YjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTYwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjYTY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NTAwMCIsInBzcyI6ImJlMDAwIiwic2hyIjoiZTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhNjUwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjYzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNzAwMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2MwZjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2MzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlODAwIiwic2hyIjoiNjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNjMzcwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QwODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMTAwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMjIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QyNzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMWMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiYTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMzYwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkNDcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2Q0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjZDRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRlODAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDRiMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNlNTcwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI4NDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U2MDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjZTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNlNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTcxMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNlN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjQyNDAwIiwic2hyIjoiNzUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlODAwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMGJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwYmYwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBjYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMGQyMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMGVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQwZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM0MDAwIiwicHNzIjoiNGE4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMGYxMDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQxZGUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMWU1MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQxZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE3MDAwIiwicHNzIjoiM2JjMDAiLCJzaHIiOiI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQxZWUwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDMwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDMwZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDMxNjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzMWYwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNjUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2ZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzc0MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzgzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzg0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiZTgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzODYwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDNjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkM2M2MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzY2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzOWMwMCIsInNociI6ImJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkM2QwMDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQ2ZTMwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQ2ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxOGE0MDAiLCJzaHIiOiI0ZTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkNzA4MDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNGFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTQwMDAiLCJwc3MiOiIxYTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjRhZTAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjUyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTcwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjY2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2NmEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjhkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiYTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY5MDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjZhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZhNjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwZjZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjZhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjZhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjNiMDAwIiwicHNzIjoiM2U3ODAwIiwic2hyIjoiNTVjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2YjAwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjliMDAwIiwicHNzIjoiOWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBhNmQwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGIwODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTEwYjE3MDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjNjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjQxMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBiNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGI0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjhjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjRmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBiNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MzAwMCIsInBzcyI6Ijk2NDAwIiwic2hyIjoiYmUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI3MTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwZDc0MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBkODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjY3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBkODgwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBlZWEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwZWY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwMCIsInBzcyI6ImMzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBlZjUwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTAwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTAwNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwMCIsInBzcyI6IjcwMDAwIiwic2hyIjoiZDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTEwMDkwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTExNjcwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTExNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTE3ODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMWI1MDAwIiwicHNzIjoiMjMwODAwIiwic2hyIjoiMTg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTE3YjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2NGQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTY3MzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI2MDAwIiwicHNzIjoiMmFjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTY3ZjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmNjUxMTZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTZjNTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiNzFjMDAiLCJzaHIiOiIxMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTZlMzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExOWU3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFhMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiI0YTQwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWExNDAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFhYzgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFhY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWFjZDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWFkZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMDUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwYzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmNjUxMWIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIxNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMTkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjM4MDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiOTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiZWMwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiOTgwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNjAwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWJiOTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiY2YwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiNGVjMDAiLCJzaHIiOiJlNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmQzMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2Y0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWNmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWNmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFkMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjJlMjU1MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjJlMzJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjczZGQwMDAifX19LCJ0dHMiOjkyMzU0OCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmEifSx7InBpZCI6MTUyMzgsInRpZCI6MCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoibnVtX2NwdXMiLCJhcmdzIjp7Im51bWJlciI6NDB9fSwKLXsicGlkIjoxNTIzOCwidGlkIjoxNTI1MCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoicHJvY2Vzc19zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotNn19LAoteyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjUwLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJCcm93c2VyIn19LAoteyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjUwLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNocm9tZV9GaWxlVGhyZWFkIn19LAoteyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjU0LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNocm9tZV9JT1RocmVhZCJ9fSwKLXsicGlkIjoxNTIzOCwidGlkIjoxNTIzOCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDckJyb3dzZXJNYWluIn19XX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvbmFub3NlY29uZHMuanNvbiBiL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvbmFub3NlY29uZHMuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc2NDE3MS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL25hbm9zZWNvbmRzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi17DQotICAidHJhY2VFdmVudHMiOiBbDQotICAgIHsibmFtZSI6ICJ1czEiLCAicGgiOiAiQiIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMH0sDQotICAgIHsibmFtZSI6ICJ1czEiLCAicGgiOiAiRSIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMS4xfSwNCi0gICAgeyJuYW1lIjogInVzMiIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAxLjF9LA0KLSAgICB7Im5hbWUiOiAidXMyIiwgInBoIjogIkUiLCAicGlkIjogMSwgInRpZCI6IDEsICJ0cyI6IDEuM30sDQotICAgIHsibmFtZSI6ICJ1czMiLCAicGgiOiAiQiIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMS4zfSwNCi0gICAgeyJuYW1lIjogInVzMyIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAxLjZ9LA0KLSAgICB7Im5hbWUiOiAidXM0IiwgInBoIjogIkIiLCAicGlkIjogMSwgInRpZCI6IDEsICJ0cyI6IDEuN30sDQotICAgIHsibmFtZSI6ICJ1czQiLCAicGgiOiAiRSIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMi4xfSwNCi0NCi0gICAgeyJuYW1lIjogIm5zMSIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAwMH0sDQotICAgIHsibmFtZSI6ICJuczEiLCAicGgiOiAiRSIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMy4wMTF9LA0KLSAgICB7Im5hbWUiOiAibnMyIiwgInBoIjogIkIiLCAicGlkIjogMSwgInRpZCI6IDEsICJ0cyI6IDMuMDExfSwNCi0gICAgeyJuYW1lIjogIm5zMiIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxM30sDQotICAgIHsibmFtZSI6ICJuczMiLCAicGgiOiAiQiIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMy4wMTN9LA0KLSAgICB7Im5hbWUiOiAibnMzIiwgInBoIjogIkUiLCAicGlkIjogMSwgInRpZCI6IDEsICJ0cyI6IDMuMDE2fSwNCi0gICAgeyJuYW1lIjogIm5zNCIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxN30sDQotICAgIHsibmFtZSI6ICJuczQiLCAicGgiOiAiRSIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMy4wMjF9DQotICBdDQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvdHJpdmlhbF9zeXN0cmFjZS5odG1sIGIvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90cml2aWFsX3N5c3RyYWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlZGIzYzUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90cml2aWFsX3N5c3RyYWNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxodG1sPgotPGhlYWQgaTE4bi12YWx1ZXM9ImRpcjp0ZXh0ZGlyZWN0aW9uOyI+Ci08dGl0bGU+QW5kcm9pZCBTeXN0ZW0gVHJhY2U8L3RpdGxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj50YWJib3h7ZGlzcGxheTotd2Via2l0LWJveDt9PC9zdHlsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPid1c2Ugc3RyaWN0JztmdW5jdGlvbiBvbkxvYWQoKSB7fQotZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihnKSB7fSk7Ci08L3NjcmlwdD4KLTxzdHlsZT4KLSAgLnZpZXcgewotICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gIH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdiBjbGFzcz0idmlldyI+Ci0gIDwvZGl2PgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0gIHZhciBsaW51eFBlcmZEYXRhID0gIlwKLSMgdHJhY2VyOiBub3BcblwKLSNcblwKLSMgICAgICAgICAgICBUQVNLLVBJRCAgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT05cblwKLSMgICAgICAgICAgICAgICB8IHwgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfFxuXAotICAgICBod2NfZXZlbnRtb24tMzM2ICAgWzAwMF0gNTAyNjAuOTI5OTI1OiAwOiBDfDEyNHxWU1lOQ3wxXG5cCi0gICAgICAgICBCaW5kZXJfMS0zNDAgICBbMDAwXSA1MDI2MC45MzU2NTY6IDA6IEN8MTI0fFN0YXR1c0JhcnwxXG5cCi0gICAgIGh3Y19ldmVudG1vbi0zMzYgICBbMDAwXSA1MDI2MC45NDY1NzM6IDA6IEN8MTI0fFZTWU5DfDBcblwKLSAgICAgIElucHV0UmVhZGVyLTQxOSAgIFswMDBdIDUwMjYyLjUzODU3ODogMDogQ3wzNjB8aXF8MVxuIjsKLSAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvTUFOSUZFU1QuaW4gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvTUFOSUZFU1QuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MzZjRiYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9NQU5JRkVTVC5pbgpAQCAtMCwwICsxLDEwIEBACityZWN1cnNpdmUtaW5jbHVkZSBkb2NzICoudHh0ICouY3NzICouanMKK2luY2x1ZGUgZG9jcy9fdGVtcGxhdGVzLyouaHRtbAoraW5jbHVkZSBkb2NzL2NvbmYucHkKK2luY2x1ZGUgZG9jcy90ZXN0X3NlcnZlci5pbmkKK2luY2x1ZGUgcmVnZW4tZG9jcworaW5jbHVkZSB0b3guaW5pCityZWN1cnNpdmUtZXhjbHVkZSBkb2NzL19idWlsZC9fc291cmNlcyAqCityZWN1cnNpdmUtaW5jbHVkZSBkb2NzL19idWlsZCAqLmh0bWwKK3JlY3Vyc2l2ZS1pbmNsdWRlIHRlc3RzICoudHh0ICoucHkgKi5jZ2kgKi5odG1sCityZWN1cnNpdmUtaW5jbHVkZSBwYXN0ZSAqLmpzICouanBnICoucG5nCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUEtHLUlORk8gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUEtHLUlORk8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJjZmUyMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QS0ctSU5GTwpAQCAtMCwwICsxLDEzMyBAQAorTWV0YWRhdGEtVmVyc2lvbjogMS4xCitOYW1lOiBQYXN0ZQorVmVyc2lvbjogMi4wLjIKK1N1bW1hcnk6IFRvb2xzIGZvciB1c2luZyBhIFdlYiBTZXJ2ZXIgR2F0ZXdheSBJbnRlcmZhY2Ugc3RhY2sKK0hvbWUtcGFnZTogaHR0cDovL3B5dGhvbnBhc3RlLm9yZworQXV0aG9yOiBJYW4gQmlja2luZworQXV0aG9yLWVtYWlsOiBpYW5iQGNvbG9yc3R1ZHkuY29tCitMaWNlbnNlOiBNSVQKK0Rlc2NyaXB0aW9uOiBQYXN0ZSBwcm92aWRlcyBzZXZlcmFsIHBpZWNlcyBvZiAibWlkZGxld2FyZSIgKG9yIGZpbHRlcnMpIHRoYXQgY2FuIGJlIG5lc3RlZAorICAgICAgICB0byBidWlsZCB3ZWIgYXBwbGljYXRpb25zLiAgRWFjaCBwaWVjZSBvZiBtaWRkbGV3YXJlIHVzZXMgdGhlIFdTR0kgKGBQRVAgMzMzYF8pCisgICAgICAgIGludGVyZmFjZSwgYW5kIHNob3VsZCBiZSBjb21wYXRpYmxlIHdpdGggb3RoZXIgbWlkZGxld2FyZSBiYXNlZCBvbiB0aG9zZQorICAgICAgICBpbnRlcmZhY2VzLgorICAgICAgICAKKyAgICAgICAgLi4gX1BFUCAzMzM6IGh0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDMzMy5odG1sCisgICAgICAgIAorICAgICAgICAqIGBQYXN0ZSBwcm9qZWN0IGF0IEJpdGJ1Y2tldCAoc291cmNlIGNvZGUsIGJ1ZyB0cmFja2VyKQorICAgICAgICAgIDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZS8+YF8KKyAgICAgICAgKiBgUGFzdGUgb24gdGhlIFB5dGhvbiBDaGVlc2VzaG9wIChQeVBJKQorICAgICAgICAgIDxodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL1Bhc3RlPmBfCisgICAgICAgICogYFBhc3RlIGRvY3VtZW50YXRpb24KKyAgICAgICAgICA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy8+YF8KKyAgICAgICAgCisgICAgICAgIFNlZSBhbHNvOgorICAgICAgICAKKyAgICAgICAgKiBgUGFzdGVEZXBsb3kgPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvZGVwbG95Lz5gXworICAgICAgICAqIGBQYXN0ZVNjcmlwdCA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy9zY3JpcHQvPmBfCisgICAgICAgICogYFdlYlRlc3QgPGh0dHA6Ly93ZWJ0ZXN0LnB5dGhvbnBhc3RlLm9yZy8+YF8KKyAgICAgICAgKiBgV2ViT2IgPGh0dHA6Ly9kb2NzLndlYm9iLm9yZy8+YF8KKyAgICAgICAgCisgICAgICAgIEluY2x1ZGVzIHRoZXNlIGZlYXR1cmVzLi4uCisgICAgICAgIAorICAgICAgICBUZXN0aW5nCisgICAgICAgIC0tLS0tLS0KKyAgICAgICAgCisgICAgICAgICogQSBmaXh0dXJlIGZvciB0ZXN0aW5nIFdTR0kgYXBwbGljYXRpb25zIGNvbnZlbmllbnRseSBhbmQgaW4tcHJvY2VzcywKKyAgICAgICAgICBpbiBgYHBhc3RlLmZpeHR1cmVgYAorICAgICAgICAKKyAgICAgICAgKiBBIGZpeHR1cmUgZm9yIHRlc3RpbmcgY29tbWFuZC1saW5lIGFwcGxpY2F0aW9ucywgYWxzbyBpbgorICAgICAgICAgIGBgcGFzdGUuZml4dHVyZWBgCisgICAgICAgIAorICAgICAgICAqIENoZWNrIGNvbXBvbmVudHMgZm9yIFdTR0ktY29tcGxpYW5jZSBpbiBgYHBhc3RlLmxpbnRgYAorICAgICAgICAKKyAgICAgICAgRGlzcGF0Y2hpbmcKKyAgICAgICAgLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgICogQ2hhaW4gYW5kIGNhc2NhZGUgV1NHSSBhcHBsaWNhdGlvbnMgKHJldHVybmluZyB0aGUgZmlyc3Qgbm9uLWVycm9yCisgICAgICAgICAgcmVzcG9uc2UpIGluIGBgcGFzdGUuY2FzY2FkZWBgCisgICAgICAgIAorICAgICAgICAqIERpc3BhdGNoIHRvIHNldmVyYWwgV1NHSSBhcHBsaWNhdGlvbnMgYmFzZWQgb24gVVJMIHByZWZpeGVzLCBpbgorICAgICAgICAgIGBgcGFzdGUudXJsbWFwYGAKKyAgICAgICAgCisgICAgICAgICogQWxsb3cgYXBwbGljYXRpb25zIHRvIG1ha2Ugc3VicmVxdWVzdHMgYW5kIGZvcndhcmQgcmVxdWVzdHMKKyAgICAgICAgICBpbnRlcm5hbGx5LCBpbiBgYHBhc3RlLnJlY3Vyc2l2ZWBgCisgICAgICAgIAorICAgICAgICBXZWIgQXBwbGljYXRpb24KKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAqIFJ1biBDR0kgcHJvZ3JhbXMgYXMgV1NHSSBhcHBsaWNhdGlvbnMgaW4gYGBwYXN0ZS5jZ2lhcHBgYAorICAgICAgICAKKyAgICAgICAgKiBUcmF2ZXJzZSBmaWxlcyBhbmQgbG9hZCBXU0dJIGFwcGxpY2F0aW9ucyBmcm9tIGBgLnB5YGAgZmlsZXMgKG9yCisgICAgICAgICAgc3RhdGljIGZpbGVzKSwgaW4gYGBwYXN0ZS51cmxwYXJzZXJgYAorICAgICAgICAKKyAgICAgICAgKiBTZXJ2ZSBzdGF0aWMgZGlyZWN0b3JpZXMgb2YgZmlsZXMsIGFsc28gaW4gYGBwYXN0ZS51cmxwYXJzZXJgYDsgYWxzbworICAgICAgICAgIGluIHRoYXQgbW9kdWxlIHNlcnZpbmcgZnJvbSBFZ2cgcmVzb3VyY2VzIHVzaW5nIGBgcGtnX3Jlc291cmNlc2BgLgorICAgICAgICAKKyAgICAgICAgVG9vbHMKKyAgICAgICAgLS0tLS0KKyAgICAgICAgCisgICAgICAgICogQ2F0Y2ggSFRUUC1yZWxhdGVkIGV4Y2VwdGlvbnMgKGUuZy4sIGBgSFRUUE5vdEZvdW5kYGApIGFuZCB0dXJuIHRoZW0KKyAgICAgICAgICBpbnRvIHByb3BlciByZXNwb25zZXMgaW4gYGBwYXN0ZS5odHRwZXhjZXB0aW9uc2BgCisgICAgICAgIAorICAgICAgICAqIFNldmVyYWwgYXV0aGVudGljYXRpb24gdGVjaG5pcXVlcywgaW5jbHVkaW5nIEhUVFAgKEJhc2ljIGFuZAorICAgICAgICAgIERpZ2VzdCksIHNpZ25lZCBjb29raWVzLCBhbmQgQ0FTIHNpbmdsZS1zaWdub24sIGluIHRoZQorICAgICAgICAgIGBgcGFzdGUuYXV0aGBgIHBhY2thZ2UuCisgICAgICAgIAorICAgICAgICAqIENyZWF0ZSBzZXNzaW9ucyBpbiBgYHBhc3RlLnNlc3Npb25gYCBhbmQgYGBwYXN0ZS5mbHVwX3Nlc3Npb25gYAorICAgICAgICAKKyAgICAgICAgKiBHemlwIHJlc3BvbnNlcyBpbiBgYHBhc3RlLmd6aXBgYAorICAgICAgICAKKyAgICAgICAgKiBBIHdpZGUgdmFyaWV0eSBvZiByb3V0aW5lcyBmb3IgbWFuaXB1bGF0aW5nIFdTR0kgcmVxdWVzdHMgYW5kCisgICAgICAgICAgcHJvZHVjaW5nIHJlc3BvbnNlcywgaW4gYGBwYXN0ZS5yZXF1ZXN0YGAsIGBgcGFzdGUucmVzcG9uc2VgYCBhbmQKKyAgICAgICAgICBgYHBhc3RlLndzZ2lsaWJgYAorICAgICAgICAKKyAgICAgICAgRGVidWdnaW5nIEZpbHRlcnMKKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgICogQ2F0Y2ggKG9wdGlvbmFsbHkgZW1haWwpIGVycm9ycyB3aXRoIGV4dGVuZGVkIHRyYWNlYmFja3MgKHVzaW5nCisgICAgICAgICAgWm9wZS9aUFQgY29udmVudGlvbnMpIGluIGBgcGFzdGUuZXhjZXB0aW9uc2BgCisgICAgICAgIAorICAgICAgICAqIENhdGNoIGVycm9ycyBwcmVzZW50aW5nIGEgYGNnaXRiCisgICAgICAgICAgPGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L2NnaXRiLmh0bWw+YF8tYmFzZWQKKyAgICAgICAgICBvdXRwdXQsIGluIGBgcGFzdGUuY2dpdGJfY2F0Y2hlcmBgLgorICAgICAgICAKKyAgICAgICAgKiBQcm9maWxlIGVhY2ggcmVxdWVzdCBhbmQgYXBwZW5kIHByb2ZpbGluZyBpbmZvcm1hdGlvbiB0byB0aGUgSFRNTCwKKyAgICAgICAgICBpbiBgYHBhc3RlLmRlYnVnLnByb2ZpbGVgYAorICAgICAgICAKKyAgICAgICAgKiBDYXB0dXJlIGBgcHJpbnRgYCBvdXRwdXQgYW5kIHByZXNlbnQgaXQgaW4gdGhlIGJyb3dzZXIgZm9yCisgICAgICAgICAgZGVidWdnaW5nLCBpbiBgYHBhc3RlLmRlYnVnLnByaW50c2BgCisgICAgICAgIAorICAgICAgICAqIFZhbGlkYXRlIGFsbCBIVE1MIG91dHB1dCBmcm9tIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgYFdERyBWYWxpZGF0b3IKKyAgICAgICAgICA8aHR0cDovL3d3dy5odG1saGVscC5jb20vdG9vbHMvdmFsaWRhdG9yLz5gXywgYXBwZW5kaW5nIGFueSBlcnJvcnMKKyAgICAgICAgICBvciB3YXJuaW5ncyB0byB0aGUgcGFnZSwgaW4gYGBwYXN0ZS5kZWJ1Zy53ZGdfdmFsaWRhdG9yYGAKKyAgICAgICAgCisgICAgICAgIE90aGVyIFRvb2xzCisgICAgICAgIC0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAqIEEgZmlsZSBtb25pdG9yIHRvIGFsbG93IHJlc3RhcnRpbmcgdGhlIHNlcnZlciB3aGVuIGZpbGVzIGhhdmUgYmVlbgorICAgICAgICAgIHVwZGF0ZWQgKGZvciBhdXRvbWF0aWMgcmVzdGFydGluZyB3aGVuIGVkaXRpbmcgY29kZSkgaW4KKyAgICAgICAgICBgYHBhc3RlLnJlbG9hZGVyYGAKKyAgICAgICAgCisgICAgICAgICogQSBjbGFzcyBmb3IgZ2VuZXJhdGluZyBhbmQgdHJhdmVyc2luZyBVUkxzLCBhbmQgY3JlYXRpbmcgYXNzb2NpYXRlZAorICAgICAgICAgIEhUTUwgY29kZSwgaW4gYGBwYXN0ZS51cmxgYAorICAgICAgICAKKyAgICAgICAgVGhlIG9mZmljaWFsIGRldmVsb3BtZW50IHJlcG8gaXMgYXQgaHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGUuCisgICAgICAgIAorICAgICAgICBGb3IgdGhlIGxhdGVzdCBjaGFuZ2VzIHNlZSB0aGUgYG5ld3MgZmlsZQorICAgICAgICA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy9uZXdzLmh0bWw+YF8uCisgICAgICAgIAorS2V5d29yZHM6IHdlYiBhcHBsaWNhdGlvbiBzZXJ2ZXIgd3NnaQorUGxhdGZvcm06IFVOS05PV04KK0NsYXNzaWZpZXI6IERldmVsb3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlvbi9TdGFibGUKK0NsYXNzaWZpZXI6IEludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMKK0NsYXNzaWZpZXI6IExpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24KK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzCitDbGFzc2lmaWVyOiBUb3BpYyA6OiBJbnRlcm5ldCA6OiBXV1cvSFRUUAorQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogRHluYW1pYyBDb250ZW50CitDbGFzc2lmaWVyOiBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMKK0NsYXNzaWZpZXI6IFRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IFdTR0kKK0NsYXNzaWZpZXI6IFRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IFdTR0kgOjogQXBwbGljYXRpb24KK0NsYXNzaWZpZXI6IFRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IFdTR0kgOjogTWlkZGxld2FyZQorQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogV1NHSSA6OiBTZXJ2ZXIKK0NsYXNzaWZpZXI6IEZyYW1ld29yayA6OiBQYXN0ZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL1BLRy1JTkZPIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL1BLRy1JTkZPCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyY2ZlMjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUGFzdGUuZWdnLWluZm8vUEtHLUlORk8KQEAgLTAsMCArMSwxMzMgQEAKK01ldGFkYXRhLVZlcnNpb246IDEuMQorTmFtZTogUGFzdGUKK1ZlcnNpb246IDIuMC4yCitTdW1tYXJ5OiBUb29scyBmb3IgdXNpbmcgYSBXZWIgU2VydmVyIEdhdGV3YXkgSW50ZXJmYWNlIHN0YWNrCitIb21lLXBhZ2U6IGh0dHA6Ly9weXRob25wYXN0ZS5vcmcKK0F1dGhvcjogSWFuIEJpY2tpbmcKK0F1dGhvci1lbWFpbDogaWFuYkBjb2xvcnN0dWR5LmNvbQorTGljZW5zZTogTUlUCitEZXNjcmlwdGlvbjogUGFzdGUgcHJvdmlkZXMgc2V2ZXJhbCBwaWVjZXMgb2YgIm1pZGRsZXdhcmUiIChvciBmaWx0ZXJzKSB0aGF0IGNhbiBiZSBuZXN0ZWQKKyAgICAgICAgdG8gYnVpbGQgd2ViIGFwcGxpY2F0aW9ucy4gIEVhY2ggcGllY2Ugb2YgbWlkZGxld2FyZSB1c2VzIHRoZSBXU0dJIChgUEVQIDMzM2BfKQorICAgICAgICBpbnRlcmZhY2UsIGFuZCBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIG90aGVyIG1pZGRsZXdhcmUgYmFzZWQgb24gdGhvc2UKKyAgICAgICAgaW50ZXJmYWNlcy4KKyAgICAgICAgCisgICAgICAgIC4uIF9QRVAgMzMzOiBodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzMzMuaHRtbAorICAgICAgICAKKyAgICAgICAgKiBgUGFzdGUgcHJvamVjdCBhdCBCaXRidWNrZXQgKHNvdXJjZSBjb2RlLCBidWcgdHJhY2tlcikKKyAgICAgICAgICA8aHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGUvPmBfCisgICAgICAgICogYFBhc3RlIG9uIHRoZSBQeXRob24gQ2hlZXNlc2hvcCAoUHlQSSkKKyAgICAgICAgICA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9QYXN0ZT5gXworICAgICAgICAqIGBQYXN0ZSBkb2N1bWVudGF0aW9uCisgICAgICAgICAgPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvPmBfCisgICAgICAgIAorICAgICAgICBTZWUgYWxzbzoKKyAgICAgICAgCisgICAgICAgICogYFBhc3RlRGVwbG95IDxodHRwOi8vcHl0aG9ucGFzdGUub3JnL2RlcGxveS8+YF8KKyAgICAgICAgKiBgUGFzdGVTY3JpcHQgPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvc2NyaXB0Lz5gXworICAgICAgICAqIGBXZWJUZXN0IDxodHRwOi8vd2VidGVzdC5weXRob25wYXN0ZS5vcmcvPmBfCisgICAgICAgICogYFdlYk9iIDxodHRwOi8vZG9jcy53ZWJvYi5vcmcvPmBfCisgICAgICAgIAorICAgICAgICBJbmNsdWRlcyB0aGVzZSBmZWF0dXJlcy4uLgorICAgICAgICAKKyAgICAgICAgVGVzdGluZworICAgICAgICAtLS0tLS0tCisgICAgICAgIAorICAgICAgICAqIEEgZml4dHVyZSBmb3IgdGVzdGluZyBXU0dJIGFwcGxpY2F0aW9ucyBjb252ZW5pZW50bHkgYW5kIGluLXByb2Nlc3MsCisgICAgICAgICAgaW4gYGBwYXN0ZS5maXh0dXJlYGAKKyAgICAgICAgCisgICAgICAgICogQSBmaXh0dXJlIGZvciB0ZXN0aW5nIGNvbW1hbmQtbGluZSBhcHBsaWNhdGlvbnMsIGFsc28gaW4KKyAgICAgICAgICBgYHBhc3RlLmZpeHR1cmVgYAorICAgICAgICAKKyAgICAgICAgKiBDaGVjayBjb21wb25lbnRzIGZvciBXU0dJLWNvbXBsaWFuY2UgaW4gYGBwYXN0ZS5saW50YGAKKyAgICAgICAgCisgICAgICAgIERpc3BhdGNoaW5nCisgICAgICAgIC0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAqIENoYWluIGFuZCBjYXNjYWRlIFdTR0kgYXBwbGljYXRpb25zIChyZXR1cm5pbmcgdGhlIGZpcnN0IG5vbi1lcnJvcgorICAgICAgICAgIHJlc3BvbnNlKSBpbiBgYHBhc3RlLmNhc2NhZGVgYAorICAgICAgICAKKyAgICAgICAgKiBEaXNwYXRjaCB0byBzZXZlcmFsIFdTR0kgYXBwbGljYXRpb25zIGJhc2VkIG9uIFVSTCBwcmVmaXhlcywgaW4KKyAgICAgICAgICBgYHBhc3RlLnVybG1hcGBgCisgICAgICAgIAorICAgICAgICAqIEFsbG93IGFwcGxpY2F0aW9ucyB0byBtYWtlIHN1YnJlcXVlc3RzIGFuZCBmb3J3YXJkIHJlcXVlc3RzCisgICAgICAgICAgaW50ZXJuYWxseSwgaW4gYGBwYXN0ZS5yZWN1cnNpdmVgYAorICAgICAgICAKKyAgICAgICAgV2ViIEFwcGxpY2F0aW9uCisgICAgICAgIC0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgKiBSdW4gQ0dJIHByb2dyYW1zIGFzIFdTR0kgYXBwbGljYXRpb25zIGluIGBgcGFzdGUuY2dpYXBwYGAKKyAgICAgICAgCisgICAgICAgICogVHJhdmVyc2UgZmlsZXMgYW5kIGxvYWQgV1NHSSBhcHBsaWNhdGlvbnMgZnJvbSBgYC5weWBgIGZpbGVzIChvcgorICAgICAgICAgIHN0YXRpYyBmaWxlcyksIGluIGBgcGFzdGUudXJscGFyc2VyYGAKKyAgICAgICAgCisgICAgICAgICogU2VydmUgc3RhdGljIGRpcmVjdG9yaWVzIG9mIGZpbGVzLCBhbHNvIGluIGBgcGFzdGUudXJscGFyc2VyYGA7IGFsc28KKyAgICAgICAgICBpbiB0aGF0IG1vZHVsZSBzZXJ2aW5nIGZyb20gRWdnIHJlc291cmNlcyB1c2luZyBgYHBrZ19yZXNvdXJjZXNgYC4KKyAgICAgICAgCisgICAgICAgIFRvb2xzCisgICAgICAgIC0tLS0tCisgICAgICAgIAorICAgICAgICAqIENhdGNoIEhUVFAtcmVsYXRlZCBleGNlcHRpb25zIChlLmcuLCBgYEhUVFBOb3RGb3VuZGBgKSBhbmQgdHVybiB0aGVtCisgICAgICAgICAgaW50byBwcm9wZXIgcmVzcG9uc2VzIGluIGBgcGFzdGUuaHR0cGV4Y2VwdGlvbnNgYAorICAgICAgICAKKyAgICAgICAgKiBTZXZlcmFsIGF1dGhlbnRpY2F0aW9uIHRlY2huaXF1ZXMsIGluY2x1ZGluZyBIVFRQIChCYXNpYyBhbmQKKyAgICAgICAgICBEaWdlc3QpLCBzaWduZWQgY29va2llcywgYW5kIENBUyBzaW5nbGUtc2lnbm9uLCBpbiB0aGUKKyAgICAgICAgICBgYHBhc3RlLmF1dGhgYCBwYWNrYWdlLgorICAgICAgICAKKyAgICAgICAgKiBDcmVhdGUgc2Vzc2lvbnMgaW4gYGBwYXN0ZS5zZXNzaW9uYGAgYW5kIGBgcGFzdGUuZmx1cF9zZXNzaW9uYGAKKyAgICAgICAgCisgICAgICAgICogR3ppcCByZXNwb25zZXMgaW4gYGBwYXN0ZS5nemlwYGAKKyAgICAgICAgCisgICAgICAgICogQSB3aWRlIHZhcmlldHkgb2Ygcm91dGluZXMgZm9yIG1hbmlwdWxhdGluZyBXU0dJIHJlcXVlc3RzIGFuZAorICAgICAgICAgIHByb2R1Y2luZyByZXNwb25zZXMsIGluIGBgcGFzdGUucmVxdWVzdGBgLCBgYHBhc3RlLnJlc3BvbnNlYGAgYW5kCisgICAgICAgICAgYGBwYXN0ZS53c2dpbGliYGAKKyAgICAgICAgCisgICAgICAgIERlYnVnZ2luZyBGaWx0ZXJzCisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAqIENhdGNoIChvcHRpb25hbGx5IGVtYWlsKSBlcnJvcnMgd2l0aCBleHRlbmRlZCB0cmFjZWJhY2tzICh1c2luZworICAgICAgICAgIFpvcGUvWlBUIGNvbnZlbnRpb25zKSBpbiBgYHBhc3RlLmV4Y2VwdGlvbnNgYAorICAgICAgICAKKyAgICAgICAgKiBDYXRjaCBlcnJvcnMgcHJlc2VudGluZyBhIGBjZ2l0YgorICAgICAgICAgIDxodHRwOi8vZG9jcy5weXRob24ub3JnLzIvbGlicmFyeS9jZ2l0Yi5odG1sPmBfLWJhc2VkCisgICAgICAgICAgb3V0cHV0LCBpbiBgYHBhc3RlLmNnaXRiX2NhdGNoZXJgYC4KKyAgICAgICAgCisgICAgICAgICogUHJvZmlsZSBlYWNoIHJlcXVlc3QgYW5kIGFwcGVuZCBwcm9maWxpbmcgaW5mb3JtYXRpb24gdG8gdGhlIEhUTUwsCisgICAgICAgICAgaW4gYGBwYXN0ZS5kZWJ1Zy5wcm9maWxlYGAKKyAgICAgICAgCisgICAgICAgICogQ2FwdHVyZSBgYHByaW50YGAgb3V0cHV0IGFuZCBwcmVzZW50IGl0IGluIHRoZSBicm93c2VyIGZvcgorICAgICAgICAgIGRlYnVnZ2luZywgaW4gYGBwYXN0ZS5kZWJ1Zy5wcmludHNgYAorICAgICAgICAKKyAgICAgICAgKiBWYWxpZGF0ZSBhbGwgSFRNTCBvdXRwdXQgZnJvbSBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIGBXREcgVmFsaWRhdG9yCisgICAgICAgICAgPGh0dHA6Ly93d3cuaHRtbGhlbHAuY29tL3Rvb2xzL3ZhbGlkYXRvci8+YF8sIGFwcGVuZGluZyBhbnkgZXJyb3JzCisgICAgICAgICAgb3Igd2FybmluZ3MgdG8gdGhlIHBhZ2UsIGluIGBgcGFzdGUuZGVidWcud2RnX3ZhbGlkYXRvcmBgCisgICAgICAgIAorICAgICAgICBPdGhlciBUb29scworICAgICAgICAtLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgKiBBIGZpbGUgbW9uaXRvciB0byBhbGxvdyByZXN0YXJ0aW5nIHRoZSBzZXJ2ZXIgd2hlbiBmaWxlcyBoYXZlIGJlZW4KKyAgICAgICAgICB1cGRhdGVkIChmb3IgYXV0b21hdGljIHJlc3RhcnRpbmcgd2hlbiBlZGl0aW5nIGNvZGUpIGluCisgICAgICAgICAgYGBwYXN0ZS5yZWxvYWRlcmBgCisgICAgICAgIAorICAgICAgICAqIEEgY2xhc3MgZm9yIGdlbmVyYXRpbmcgYW5kIHRyYXZlcnNpbmcgVVJMcywgYW5kIGNyZWF0aW5nIGFzc29jaWF0ZWQKKyAgICAgICAgICBIVE1MIGNvZGUsIGluIGBgcGFzdGUudXJsYGAKKyAgICAgICAgCisgICAgICAgIFRoZSBvZmZpY2lhbCBkZXZlbG9wbWVudCByZXBvIGlzIGF0IGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3RlLgorICAgICAgICAKKyAgICAgICAgRm9yIHRoZSBsYXRlc3QgY2hhbmdlcyBzZWUgdGhlIGBuZXdzIGZpbGUKKyAgICAgICAgPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvbmV3cy5odG1sPmBfLgorICAgICAgICAKK0tleXdvcmRzOiB3ZWIgYXBwbGljYXRpb24gc2VydmVyIHdzZ2kKK1BsYXRmb3JtOiBVTktOT1dOCitDbGFzc2lmaWVyOiBEZXZlbG9wbWVudCBTdGF0dXMgOjogNSAtIFByb2R1Y3Rpb24vU3RhYmxlCitDbGFzc2lmaWVyOiBJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzCitDbGFzc2lmaWVyOiBMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZQorQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMworQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAKK0NsYXNzaWZpZXI6IFRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IER5bmFtaWMgQ29udGVudAorQ2xhc3NpZmllcjogVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzIDo6IFB5dGhvbiBNb2R1bGVzCitDbGFzc2lmaWVyOiBUb3BpYyA6OiBJbnRlcm5ldCA6OiBXV1cvSFRUUCA6OiBXU0dJCitDbGFzc2lmaWVyOiBUb3BpYyA6OiBJbnRlcm5ldCA6OiBXV1cvSFRUUCA6OiBXU0dJIDo6IEFwcGxpY2F0aW9uCitDbGFzc2lmaWVyOiBUb3BpYyA6OiBJbnRlcm5ldCA6OiBXV1cvSFRUUCA6OiBXU0dJIDo6IE1pZGRsZXdhcmUKK0NsYXNzaWZpZXI6IFRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IFdTR0kgOjogU2VydmVyCitDbGFzc2lmaWVyOiBGcmFtZXdvcmsgOjogUGFzdGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby9TT1VSQ0VTLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby9TT1VSQ0VTLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWM2YzYyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL1NPVVJDRVMudHh0CkBAIC0wLDAgKzEsMjQwIEBACitNQU5JRkVTVC5pbgorUkVBRE1FLnJzdAorcmVnZW4tZG9jcworc2V0dXAuY2ZnCitzZXR1cC5weQordG94LmluaQorUGFzdGUuZWdnLWluZm8vUEtHLUlORk8KK1Bhc3RlLmVnZy1pbmZvL1NPVVJDRVMudHh0CitQYXN0ZS5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAorUGFzdGUuZWdnLWluZm8vZW50cnlfcG9pbnRzLnR4dAorUGFzdGUuZWdnLWluZm8vbmFtZXNwYWNlX3BhY2thZ2VzLnR4dAorUGFzdGUuZWdnLWluZm8vbm90LXppcC1zYWZlCitQYXN0ZS5lZ2ctaW5mby9yZXF1aXJlcy50eHQKK1Bhc3RlLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKK2RvY3MvRGV2ZWxvcGVyR3VpZGVsaW5lcy50eHQKK2RvY3MvU3R5bGVHdWlkZS50eHQKK2RvY3MvY29uZi5weQorZG9jcy9kZWZhdWx0LmNzcworZG9jcy9kZXZlbG9wZXItZmVhdHVyZXMudHh0Citkb2NzL2RvLWl0LXlvdXJzZWxmLWZyYW1ld29yay50eHQKK2RvY3MvZnV0dXJlLnR4dAorZG9jcy9pbmRleC50eHQKK2RvY3MvbGljZW5zZS50eHQKK2RvY3MvbmV3cy50eHQKK2RvY3MvcGFzdGUtaHR0cHNlcnZlci10aHJlYWRwb29sLnR4dAorZG9jcy90ZXN0X3NlcnZlci5pbmkKK2RvY3MvdGVzdGluZy1hcHBsaWNhdGlvbnMudHh0Citkb2NzL3VybC1wYXJzaW5nLXdpdGgtd3NnaS50eHQKK2RvY3MvX3N0YXRpYy9wYXN0ZS5jc3MKK2RvY3MvX3RlbXBsYXRlcy9sYXlvdXQuaHRtbAorZG9jcy9jb21tdW5pdHkvaW5kZXgudHh0Citkb2NzL2NvbW11bml0eS9tYWlsaW5nLWxpc3QudHh0Citkb2NzL2NvbW11bml0eS9yZXBvc2l0b3J5LnR4dAorZG9jcy9kb3dubG9hZC9pbmRleC50eHQKK2RvY3MvaW5jbHVkZS9jb250YWN0LnR4dAorZG9jcy9pbmNsdWRlL3JlZmVyZW5jZV9oZWFkZXIudHh0Citkb2NzL21vZHVsZXMvYXV0aC5hdXRoX3RrdC50eHQKK2RvY3MvbW9kdWxlcy9hdXRoLmJhc2ljLnR4dAorZG9jcy9tb2R1bGVzL2F1dGguY2FzLnR4dAorZG9jcy9tb2R1bGVzL2F1dGguY29va2llLnR4dAorZG9jcy9tb2R1bGVzL2F1dGguZGlnZXN0LnR4dAorZG9jcy9tb2R1bGVzL2F1dGguZm9ybS50eHQKK2RvY3MvbW9kdWxlcy9hdXRoLmdyYW50aXAudHh0Citkb2NzL21vZHVsZXMvYXV0aC5tdWx0aS50eHQKK2RvY3MvbW9kdWxlcy9jYXNjYWRlLnR4dAorZG9jcy9tb2R1bGVzL2NnaWFwcC50eHQKK2RvY3MvbW9kdWxlcy9jZ2l0Yl9jYXRjaGVyLnR4dAorZG9jcy9tb2R1bGVzL2RlYnVnLmRlYnVnYXBwLnR4dAorZG9jcy9tb2R1bGVzL2RlYnVnLmZzZGlmZi50eHQKK2RvY3MvbW9kdWxlcy9kZWJ1Zy5wcmludHMudHh0Citkb2NzL21vZHVsZXMvZGVidWcucHJvZmlsZS50eHQKK2RvY3MvbW9kdWxlcy9kZWJ1Zy53YXRjaHRocmVhZHMudHh0Citkb2NzL21vZHVsZXMvZGVidWcud2RnX3ZhbGlkYXRlLnR4dAorZG9jcy9tb2R1bGVzL2Vycm9yZG9jdW1lbnQudHh0Citkb2NzL21vZHVsZXMvZXZhbGV4Y2VwdGlvbi50eHQKK2RvY3MvbW9kdWxlcy9leGNlcHRpb25zLnR4dAorZG9jcy9tb2R1bGVzL2ZpbGVhcHAudHh0Citkb2NzL21vZHVsZXMvZml4dHVyZS50eHQKK2RvY3MvbW9kdWxlcy9nemlwcGVyLnR4dAorZG9jcy9tb2R1bGVzL2h0dHBleGNlcHRpb25zLnR4dAorZG9jcy9tb2R1bGVzL2h0dHBoZWFkZXJzLnR4dAorZG9jcy9tb2R1bGVzL2h0dHBzZXJ2ZXIudHh0Citkb2NzL21vZHVsZXMvbGludC50eHQKK2RvY3MvbW9kdWxlcy9wb255LnR4dAorZG9jcy9tb2R1bGVzL3Byb2dyZXNzLnR4dAorZG9jcy9tb2R1bGVzL3Byb3h5LnR4dAorZG9jcy9tb2R1bGVzL3JlY3Vyc2l2ZS50eHQKK2RvY3MvbW9kdWxlcy9yZWdpc3RyeS50eHQKK2RvY3MvbW9kdWxlcy9yZWxvYWRlci50eHQKK2RvY3MvbW9kdWxlcy9yZXF1ZXN0LnR4dAorZG9jcy9tb2R1bGVzL3Jlc3BvbnNlLnR4dAorZG9jcy9tb2R1bGVzL3Nlc3Npb24udHh0Citkb2NzL21vZHVsZXMvdHJhbnNhY3Rpb24udHh0Citkb2NzL21vZHVsZXMvdHJhbnNsb2dnZXIudHh0Citkb2NzL21vZHVsZXMvdXJsLnR4dAorZG9jcy9tb2R1bGVzL3VybG1hcC50eHQKK2RvY3MvbW9kdWxlcy91cmxwYXJzZXIudHh0Citkb2NzL21vZHVsZXMvdXRpbC5pbXBvcnRfc3RyaW5nLnR4dAorZG9jcy9tb2R1bGVzL3V0aWwubXVsdGlkaWN0LnR4dAorZG9jcy9tb2R1bGVzL3dzZ2lsaWIudHh0Citkb2NzL21vZHVsZXMvd3NnaXdyYXBwZXJzLnR4dAorZG9jcy93ZWIvZGVmYXVsdC1zaXRlLmNzcworZG9jcy93ZWIvc2l0ZS5qcworZG9jcy93ZWIvc3R5bGUuY3NzCitwYXN0ZS9fX2luaXRfXy5weQorcGFzdGUvY2FzY2FkZS5weQorcGFzdGUvY2dpYXBwLnB5CitwYXN0ZS9jZ2l0Yl9jYXRjaGVyLnB5CitwYXN0ZS9jb25maWcucHkKK3Bhc3RlL2Vycm9yZG9jdW1lbnQucHkKK3Bhc3RlL2ZpbGVhcHAucHkKK3Bhc3RlL2ZpeHR1cmUucHkKK3Bhc3RlL2ZsdXBfc2Vzc2lvbi5weQorcGFzdGUvZ3ppcHBlci5weQorcGFzdGUvaHR0cGV4Y2VwdGlvbnMucHkKK3Bhc3RlL2h0dHBoZWFkZXJzLnB5CitwYXN0ZS9odHRwc2VydmVyLnB5CitwYXN0ZS9saW50LnB5CitwYXN0ZS9tb2RweXRob24ucHkKK3Bhc3RlL3BvbnkucHkKK3Bhc3RlL3Byb2dyZXNzLnB5CitwYXN0ZS9wcm94eS5weQorcGFzdGUvcmVjdXJzaXZlLnB5CitwYXN0ZS9yZWdpc3RyeS5weQorcGFzdGUvcmVsb2FkZXIucHkKK3Bhc3RlL3JlcXVlc3QucHkKK3Bhc3RlL3Jlc3BvbnNlLnB5CitwYXN0ZS9zZXNzaW9uLnB5CitwYXN0ZS90cmFuc2FjdGlvbi5weQorcGFzdGUvdHJhbnNsb2dnZXIucHkKK3Bhc3RlL3VybC5weQorcGFzdGUvdXJsbWFwLnB5CitwYXN0ZS91cmxtYXAucHkub3JpZworcGFzdGUvdXJscGFyc2VyLnB5CitwYXN0ZS93c2dpbGliLnB5CitwYXN0ZS93c2dpd3JhcHBlcnMucHkKK3Bhc3RlL2F1dGgvX19pbml0X18ucHkKK3Bhc3RlL2F1dGgvYXV0aF90a3QucHkKK3Bhc3RlL2F1dGgvYmFzaWMucHkKK3Bhc3RlL2F1dGgvY2FzLnB5CitwYXN0ZS9hdXRoL2Nvb2tpZS5weQorcGFzdGUvYXV0aC9kaWdlc3QucHkKK3Bhc3RlL2F1dGgvZm9ybS5weQorcGFzdGUvYXV0aC9ncmFudGlwLnB5CitwYXN0ZS9hdXRoL211bHRpLnB5CitwYXN0ZS9hdXRoL29wZW5faWQucHkKK3Bhc3RlL2Nvd2JlbGwvX19pbml0X18ucHkKK3Bhc3RlL2Nvd2JlbGwvYmVsbC1hc2NlbmRpbmcucG5nCitwYXN0ZS9jb3diZWxsL2JlbGwtZGVzY2VuZGluZy5wbmcKK3Bhc3RlL2RlYnVnL19faW5pdF9fLnB5CitwYXN0ZS9kZWJ1Zy9kZWJ1Z2FwcC5weQorcGFzdGUvZGVidWcvZG9jdGVzdF93ZWJhcHAucHkKK3Bhc3RlL2RlYnVnL2ZzZGlmZi5weQorcGFzdGUvZGVidWcvcHJpbnRzLnB5CitwYXN0ZS9kZWJ1Zy9wcm9maWxlLnB5CitwYXN0ZS9kZWJ1Zy90ZXN0c2VydmVyLnB5CitwYXN0ZS9kZWJ1Zy93YXRjaHRocmVhZHMucHkKK3Bhc3RlL2RlYnVnL3dkZ192YWxpZGF0ZS5weQorcGFzdGUvZXZhbGV4Y2VwdGlvbi9fX2luaXRfXy5weQorcGFzdGUvZXZhbGV4Y2VwdGlvbi9ldmFsY29udGV4dC5weQorcGFzdGUvZXZhbGV4Y2VwdGlvbi9taWRkbGV3YXJlLnB5CitwYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL01vY2hpS2l0LnBhY2tlZC5qcworcGFzdGUvZXZhbGV4Y2VwdGlvbi9tZWRpYS9kZWJ1Zy5qcworcGFzdGUvZXZhbGV4Y2VwdGlvbi9tZWRpYS9taW51cy5qcGcKK3Bhc3RlL2V2YWxleGNlcHRpb24vbWVkaWEvcGx1cy5qcGcKK3Bhc3RlL2V4Y2VwdGlvbnMvX19pbml0X18ucHkKK3Bhc3RlL2V4Y2VwdGlvbnMvY29sbGVjdG9yLnB5CitwYXN0ZS9leGNlcHRpb25zL2Vycm9ybWlkZGxld2FyZS5weQorcGFzdGUvZXhjZXB0aW9ucy9mb3JtYXR0ZXIucHkKK3Bhc3RlL2V4Y2VwdGlvbnMvcmVwb3J0ZXIucHkKK3Bhc3RlL2V4Y2VwdGlvbnMvc2VyaWFsX251bWJlcl9nZW5lcmF0b3IucHkKK3Bhc3RlL3V0aWwvUHlTb3VyY2VDb2xvci5weQorcGFzdGUvdXRpbC9fX2luaXRfXy5weQorcGFzdGUvdXRpbC9jbGFzc2luaXQucHkKK3Bhc3RlL3V0aWwvY2xhc3NpbnN0YW5jZS5weQorcGFzdGUvdXRpbC9jb252ZXJ0ZXJzLnB5CitwYXN0ZS91dGlsL2RhdGVpbnRlcnZhbC5weQorcGFzdGUvdXRpbC9kYXRldGltZXV0aWwucHkKK3Bhc3RlL3V0aWwvZmlsZW1peGluLnB5CitwYXN0ZS91dGlsL2ZpbmRkYXRhLnB5CitwYXN0ZS91dGlsL2ZpbmRwYWNrYWdlLnB5CitwYXN0ZS91dGlsL2ltcG9ydF9zdHJpbmcucHkKK3Bhc3RlL3V0aWwvaW50c2V0LnB5CitwYXN0ZS91dGlsL2lwNC5weQorcGFzdGUvdXRpbC9raWxsdGhyZWFkLnB5CitwYXN0ZS91dGlsL2xvb3Blci5weQorcGFzdGUvdXRpbC9taW1lcGFyc2UucHkKK3Bhc3RlL3V0aWwvbXVsdGlkaWN0LnB5CitwYXN0ZS91dGlsL3F1b3RpbmcucHkKK3Bhc3RlL3V0aWwvc2NnaXNlcnZlci5weQorcGFzdGUvdXRpbC90ZW1wbGF0ZS5weQorcGFzdGUvdXRpbC90ZW1wbGF0ZS5weS4yMDE1LTA0LTMwLTEyMzIyNAorcGFzdGUvdXRpbC90ZW1wbGF0ZS5weS5vcmlnCitwYXN0ZS91dGlsL3RocmVhZGVkcHJpbnQucHkKK3Bhc3RlL3V0aWwvdGhyZWFkaW5nbG9jYWwucHkKK3Rlc3RzL19faW5pdF9fLnB5Cit0ZXN0cy90ZXN0X2NnaWFwcC5weQordGVzdHMvdGVzdF9jZ2l0Yl9jYXRjaGVyLnB5Cit0ZXN0cy90ZXN0X2NvbmZpZy5weQordGVzdHMvdGVzdF9kb2N0ZXN0cy5weQordGVzdHMvdGVzdF9lcnJvcmRvY3VtZW50LnB5Cit0ZXN0cy90ZXN0X2ZpbGVhcHAucHkKK3Rlc3RzL3Rlc3RfZml4dHVyZS5weQordGVzdHMvdGVzdF9ncmFudGlwLnB5Cit0ZXN0cy90ZXN0X2d6aXBwZXIucHkKK3Rlc3RzL3Rlc3RfaHR0cGhlYWRlcnMucHkKK3Rlc3RzL3Rlc3RfaHR0cHNlcnZlci5weQordGVzdHMvdGVzdF9pbXBvcnRfc3RyaW5nLnB5Cit0ZXN0cy90ZXN0X211bHRpZGljdC5weQordGVzdHMvdGVzdF9wcm9maWxlbWlkZGxld2FyZS5weQordGVzdHMvdGVzdF9wcm94eS5weQordGVzdHMvdGVzdF9yZWN1cnNpdmUucHkKK3Rlc3RzL3Rlc3RfcmVnaXN0cnkucHkKK3Rlc3RzL3Rlc3RfcmVxdWVzdC5weQordGVzdHMvdGVzdF9yZXF1ZXN0X2Zvcm0ucHkKK3Rlc3RzL3Rlc3RfcmVzcG9uc2UucHkKK3Rlc3RzL3Rlc3Rfc2Vzc2lvbi5weQordGVzdHMvdGVzdF90ZW1wbGF0ZS50eHQKK3Rlc3RzL3Rlc3RfdXJsbWFwLnB5Cit0ZXN0cy90ZXN0X3VybHBhcnNlci5weQordGVzdHMvdGVzdF93c2dpd3JhcHBlcnMucHkKK3Rlc3RzL2NnaWFwcF9kYXRhL2Vycm9yLmNnaQordGVzdHMvY2dpYXBwX2RhdGEvZm9ybS5jZ2kKK3Rlc3RzL2NnaWFwcF9kYXRhL29rLmNnaQordGVzdHMvY2dpYXBwX2RhdGEvc3RkZXJyLmNnaQordGVzdHMvdGVzdF9hdXRoL19faW5pdF9fLnB5Cit0ZXN0cy90ZXN0X2F1dGgvdGVzdF9hdXRoX2Nvb2tpZS5weQordGVzdHMvdGVzdF9hdXRoL3Rlc3RfYXV0aF9kaWdlc3QucHkKK3Rlc3RzL3Rlc3RfZXhjZXB0aW9ucy9fX2luaXRfXy5weQordGVzdHMvdGVzdF9leGNlcHRpb25zL3Rlc3RfZXJyb3JfbWlkZGxld2FyZS5weQordGVzdHMvdGVzdF9leGNlcHRpb25zL3Rlc3RfZm9ybWF0dGVyLnB5Cit0ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvdGVzdF9odHRwZXhjZXB0aW9ucy5weQordGVzdHMvdGVzdF9leGNlcHRpb25zL3Rlc3RfcmVwb3J0ZXIucHkKK3Rlc3RzL3Rlc3RfdXRpbC9fX2luaXRfXy5weQordGVzdHMvdGVzdF91dGlsL3Rlc3RfZGF0ZXRpbWV1dGlsLnB5Cit0ZXN0cy90ZXN0X3V0aWwvdGVzdF9taW1lcGFyc2UucHkKK3Rlc3RzL3Rlc3RfdXRpbC90ZXN0X3F1b3RpbmcucHkKK3Rlc3RzL3VybHBhcnNlcl9kYXRhL19faW5pdF9fLnB5Cit0ZXN0cy91cmxwYXJzZXJfZGF0YS9zZWN1cmVkLnR4dAordGVzdHMvdXJscGFyc2VyX2RhdGEvZGVlcC9pbmRleC5odG1sCit0ZXN0cy91cmxwYXJzZXJfZGF0YS9kZWVwL3N1Yi9NYWluLnR4dAordGVzdHMvdXJscGFyc2VyX2RhdGEvZmluZF9maWxlL2luZGV4LnR4dAordGVzdHMvdXJscGFyc2VyX2RhdGEvZmluZF9maWxlL3Rlc3QgMy5odG1sCit0ZXN0cy91cmxwYXJzZXJfZGF0YS9maW5kX2ZpbGUvdGVzdDIuaHRtbAordGVzdHMvdXJscGFyc2VyX2RhdGEvZmluZF9maWxlL2RpciB3aXRoIHNwYWNlcy90ZXN0IDQuaHRtbAordGVzdHMvdXJscGFyc2VyX2RhdGEvaG9vay9fX2luaXRfXy5weQordGVzdHMvdXJscGFyc2VyX2RhdGEvaG9vay9hcHAucHkKK3Rlc3RzL3VybHBhcnNlcl9kYXRhL2hvb2svaW5kZXgucHkKK3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9fX2luaXRfXy5weQordGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3JlY3VyL19faW5pdF9fLnB5Cit0ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvcmVjdXIvaXNmb3VuZC50eHQKK3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9zaW1wbGUvX19pbml0X18ucHkKK3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9zaW1wbGUvZm91bmQudHh0Cit0ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvdXNlci9fX2luaXRfXy5weQordGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3VzZXIvbGlzdC5weQordGVzdHMvdXJscGFyc2VyX2RhdGEvcHl0aG9uL19faW5pdF9fLnB5Cit0ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vc2ltcGxlYXBwLnB5Cit0ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vc3RyZWFtLnB5Cit0ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vc3ViL19faW5pdF9fLnB5Cit0ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vc3ViL3NpbXBsZWFwcC5weQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL2VudHJ5X3BvaW50cy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUGFzdGUuZWdnLWluZm8vZW50cnlfcG9pbnRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTc0NGI0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL2VudHJ5X3BvaW50cy50eHQKQEAgLTAsMCArMSw0NyBAQAorCisgICAgICBbcGFzdGUuYXBwX2ZhY3RvcnldCisgICAgICBjZ2kgPSBwYXN0ZS5jZ2lhcHA6bWFrZV9jZ2lfYXBwbGljYXRpb24gW3N1YnByb2Nlc3NdCisgICAgICBzdGF0aWMgPSBwYXN0ZS51cmxwYXJzZXI6bWFrZV9zdGF0aWMKKyAgICAgIHBrZ19yZXNvdXJjZXMgPSBwYXN0ZS51cmxwYXJzZXI6bWFrZV9wa2dfcmVzb3VyY2VzCisgICAgICB1cmxwYXJzZXIgPSBwYXN0ZS51cmxwYXJzZXI6bWFrZV91cmxfcGFyc2VyCisgICAgICBwcm94eSA9IHBhc3RlLnByb3h5Om1ha2VfcHJveHkKKyAgICAgIHRlc3QgPSBwYXN0ZS5kZWJ1Zy5kZWJ1Z2FwcDptYWtlX3Rlc3RfYXBwCisgICAgICB0ZXN0X3Nsb3cgPSBwYXN0ZS5kZWJ1Zy5kZWJ1Z2FwcDptYWtlX3Nsb3dfYXBwCisgICAgICB0cmFuc3BhcmVudF9wcm94eSA9IHBhc3RlLnByb3h5Om1ha2VfdHJhbnNwYXJlbnRfcHJveHkKKyAgICAgIHdhdGNoX3RocmVhZHMgPSBwYXN0ZS5kZWJ1Zy53YXRjaHRocmVhZHM6bWFrZV93YXRjaF90aHJlYWRzCisKKyAgICAgIFtwYXN0ZS5jb21wb3NpdGVfZmFjdG9yeV0KKyAgICAgIHVybG1hcCA9IHBhc3RlLnVybG1hcDp1cmxtYXBfZmFjdG9yeQorICAgICAgY2FzY2FkZSA9IHBhc3RlLmNhc2NhZGU6bWFrZV9jYXNjYWRlCisKKyAgICAgIFtwYXN0ZS5maWx0ZXJfYXBwX2ZhY3RvcnldCisgICAgICBlcnJvcl9jYXRjaGVyID0gcGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmU6bWFrZV9lcnJvcl9taWRkbGV3YXJlCisgICAgICBjZ2l0YiA9IHBhc3RlLmNnaXRiX2NhdGNoZXI6bWFrZV9jZ2l0Yl9taWRkbGV3YXJlCisgICAgICBmbHVwX3Nlc3Npb24gPSBwYXN0ZS5mbHVwX3Nlc3Npb246bWFrZV9zZXNzaW9uX21pZGRsZXdhcmUgW0ZsdXBdCisgICAgICBnemlwID0gcGFzdGUuZ3ppcHBlcjptYWtlX2d6aXBfbWlkZGxld2FyZQorICAgICAgaHR0cGV4Y2VwdGlvbnMgPSBwYXN0ZS5odHRwZXhjZXB0aW9uczptYWtlX21pZGRsZXdhcmUKKyAgICAgIGxpbnQgPSBwYXN0ZS5saW50Om1ha2VfbWlkZGxld2FyZQorICAgICAgcHJpbnRkZWJ1ZyA9IHBhc3RlLmRlYnVnLnByaW50czpQcmludERlYnVnTWlkZGxld2FyZQorICAgICAgcHJvZmlsZSA9IHBhc3RlLmRlYnVnLnByb2ZpbGU6bWFrZV9wcm9maWxlX21pZGRsZXdhcmUgW2hvdHNob3RdCisgICAgICByZWN1cnNpdmUgPSBwYXN0ZS5yZWN1cnNpdmU6bWFrZV9yZWN1cnNpdmVfbWlkZGxld2FyZQorICAgICAgIyBUaGlzIGlzbid0IGdvb2QgZW5vdWdoIHRvIGRlc2VydmUgdGhlIG5hbWUgZWdnOlBhc3RlI3Nlc3Npb246CisgICAgICBwYXN0ZV9zZXNzaW9uID0gcGFzdGUuc2Vzc2lvbjptYWtlX3Nlc3Npb25fbWlkZGxld2FyZQorICAgICAgd2RnX3ZhbGlkYXRlID0gcGFzdGUuZGVidWcud2RnX3ZhbGlkYXRlOm1ha2Vfd2RnX3ZhbGlkYXRlX21pZGRsZXdhcmUgW3N1YnByb2Nlc3NdCisgICAgICBldmFsZXJyb3IgPSBwYXN0ZS5ldmFsZXhjZXB0aW9uLm1pZGRsZXdhcmU6bWFrZV9ldmFsX2V4Y2VwdGlvbgorICAgICAgYXV0aF90a3QgPSBwYXN0ZS5hdXRoLmF1dGhfdGt0Om1ha2VfYXV0aF90a3RfbWlkZGxld2FyZQorICAgICAgYXV0aF9iYXNpYyA9IHBhc3RlLmF1dGguYmFzaWM6bWFrZV9iYXNpYworICAgICAgYXV0aF9kaWdlc3QgPSBwYXN0ZS5hdXRoLmRpZ2VzdDptYWtlX2RpZ2VzdAorICAgICAgYXV0aF9mb3JtID0gcGFzdGUuYXV0aC5mb3JtOm1ha2VfZm9ybQorICAgICAgZ3JhbnRpcCA9IHBhc3RlLmF1dGguZ3JhbnRpcDptYWtlX2dyYW50aXAKKyAgICAgIG9wZW5pZCA9IHBhc3RlLmF1dGgub3Blbl9pZDptYWtlX29wZW5faWRfbWlkZGxld2FyZSBbb3BlbmlkXQorICAgICAgcG9ueSA9IHBhc3RlLnBvbnk6bWFrZV9wb255CisgICAgICBjb3diZWxsID0gcGFzdGUuY293YmVsbDptYWtlX2Nvd2JlbGwKKyAgICAgIGVycm9yZG9jdW1lbnQgPSBwYXN0ZS5lcnJvcmRvY3VtZW50Om1ha2VfZXJyb3Jkb2N1bWVudAorICAgICAgYXV0aF9jb29raWUgPSBwYXN0ZS5hdXRoLmNvb2tpZTptYWtlX2F1dGhfY29va2llCisgICAgICB0cmFuc2xvZ2dlciA9IHBhc3RlLnRyYW5zbG9nZ2VyOm1ha2VfZmlsdGVyCisgICAgICBjb25maWcgPSBwYXN0ZS5jb25maWc6bWFrZV9jb25maWdfZmlsdGVyCisgICAgICByZWdpc3RyeSA9IHBhc3RlLnJlZ2lzdHJ5Om1ha2VfcmVnaXN0cnlfbWFuYWdlcgorCisgICAgICBbcGFzdGUuc2VydmVyX3J1bm5lcl0KKyAgICAgIGh0dHAgPSBwYXN0ZS5odHRwc2VydmVyOnNlcnZlcl9ydW5uZXIKKyAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby9uYW1lc3BhY2VfcGFja2FnZXMudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL25hbWVzcGFjZV9wYWNrYWdlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ2NzgwNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby9uYW1lc3BhY2VfcGFja2FnZXMudHh0CkBAIC0wLDAgKzEgQEAKK3Bhc3RlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUGFzdGUuZWdnLWluZm8vbm90LXppcC1zYWZlIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL25vdC16aXAtc2FmZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1Bhc3RlLmVnZy1pbmZvL25vdC16aXAtc2FmZQpAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby9yZXF1aXJlcy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUGFzdGUuZWdnLWluZm8vcmVxdWlyZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzOGEyNDQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUGFzdGUuZWdnLWluZm8vcmVxdWlyZXMudHh0CkBAIC0wLDAgKzEsMTMgQEAKK3NpeAorCitbRmx1cF0KK2ZsdXAKKworW1Bhc3RlXQorCitbaG90c2hvdF0KKworW29wZW5pZF0KK3B5dGhvbi1vcGVuaWQKKworW3N1YnByb2Nlc3NdCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUGFzdGUuZWdnLWluZm8vdG9wX2xldmVsLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9QYXN0ZS5lZ2ctaW5mby90b3BfbGV2ZWwudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0Njc4MDQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUGFzdGUuZWdnLWluZm8vdG9wX2xldmVsLnR4dApAQCAtMCwwICsxIEBACitwYXN0ZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9SRUFETUUuY2hyb21pdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDViNjY5OAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9SRUFETUUuY2hyb21pdW0KQEAgLTAsMCArMSw4IEBACitOYW1lOiBQYXN0ZQorVVJMOiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL1Bhc3RlCitWZXJzaW9uOiAyLjAuMiAKK0RhdGU6IDIwMTUtMDUtMTEgCitSZXZpc2lvbjogTi9BCitMaWNlbnNlOiBNSVQKK0xpY2Vuc2UgRmlsZTogZG9jcy9saWNlbnNlLnR4dAorU2VjdXJpdHkgQ3JpdGljYWw6IG5vCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUkVBRE1FLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9SRUFETUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMmFiOGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvUkVBRE1FLnJzdApAQCAtMCwwICsxLDEwOSBAQAorUGFzdGUgcHJvdmlkZXMgc2V2ZXJhbCBwaWVjZXMgb2YgIm1pZGRsZXdhcmUiIChvciBmaWx0ZXJzKSB0aGF0IGNhbiBiZSBuZXN0ZWQKK3RvIGJ1aWxkIHdlYiBhcHBsaWNhdGlvbnMuICBFYWNoIHBpZWNlIG9mIG1pZGRsZXdhcmUgdXNlcyB0aGUgV1NHSSAoYFBFUCAzMzNgXykKK2ludGVyZmFjZSwgYW5kIHNob3VsZCBiZSBjb21wYXRpYmxlIHdpdGggb3RoZXIgbWlkZGxld2FyZSBiYXNlZCBvbiB0aG9zZQoraW50ZXJmYWNlcy4KKworLi4gX1BFUCAzMzM6IGh0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDMzMy5odG1sCisKKyogYFBhc3RlIHByb2plY3QgYXQgQml0YnVja2V0IChzb3VyY2UgY29kZSwgYnVnIHRyYWNrZXIpCisgIDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZS8+YF8KKyogYFBhc3RlIG9uIHRoZSBQeXRob24gQ2hlZXNlc2hvcCAoUHlQSSkKKyAgPGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvUGFzdGU+YF8KKyogYFBhc3RlIGRvY3VtZW50YXRpb24KKyAgPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvPmBfCisKK1NlZSBhbHNvOgorCisqIGBQYXN0ZURlcGxveSA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy9kZXBsb3kvPmBfCisqIGBQYXN0ZVNjcmlwdCA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy9zY3JpcHQvPmBfCisqIGBXZWJUZXN0IDxodHRwOi8vd2VidGVzdC5weXRob25wYXN0ZS5vcmcvPmBfCisqIGBXZWJPYiA8aHR0cDovL2RvY3Mud2Vib2Iub3JnLz5gXworCitJbmNsdWRlcyB0aGVzZSBmZWF0dXJlcy4uLgorCitUZXN0aW5nCistLS0tLS0tCisKKyogQSBmaXh0dXJlIGZvciB0ZXN0aW5nIFdTR0kgYXBwbGljYXRpb25zIGNvbnZlbmllbnRseSBhbmQgaW4tcHJvY2VzcywKKyAgaW4gYGBwYXN0ZS5maXh0dXJlYGAKKworKiBBIGZpeHR1cmUgZm9yIHRlc3RpbmcgY29tbWFuZC1saW5lIGFwcGxpY2F0aW9ucywgYWxzbyBpbgorICBgYHBhc3RlLmZpeHR1cmVgYAorCisqIENoZWNrIGNvbXBvbmVudHMgZm9yIFdTR0ktY29tcGxpYW5jZSBpbiBgYHBhc3RlLmxpbnRgYAorCitEaXNwYXRjaGluZworLS0tLS0tLS0tLS0KKworKiBDaGFpbiBhbmQgY2FzY2FkZSBXU0dJIGFwcGxpY2F0aW9ucyAocmV0dXJuaW5nIHRoZSBmaXJzdCBub24tZXJyb3IKKyAgcmVzcG9uc2UpIGluIGBgcGFzdGUuY2FzY2FkZWBgCisKKyogRGlzcGF0Y2ggdG8gc2V2ZXJhbCBXU0dJIGFwcGxpY2F0aW9ucyBiYXNlZCBvbiBVUkwgcHJlZml4ZXMsIGluCisgIGBgcGFzdGUudXJsbWFwYGAKKworKiBBbGxvdyBhcHBsaWNhdGlvbnMgdG8gbWFrZSBzdWJyZXF1ZXN0cyBhbmQgZm9yd2FyZCByZXF1ZXN0cworICBpbnRlcm5hbGx5LCBpbiBgYHBhc3RlLnJlY3Vyc2l2ZWBgCisKK1dlYiBBcHBsaWNhdGlvbgorLS0tLS0tLS0tLS0tLS0tCisKKyogUnVuIENHSSBwcm9ncmFtcyBhcyBXU0dJIGFwcGxpY2F0aW9ucyBpbiBgYHBhc3RlLmNnaWFwcGBgCisKKyogVHJhdmVyc2UgZmlsZXMgYW5kIGxvYWQgV1NHSSBhcHBsaWNhdGlvbnMgZnJvbSBgYC5weWBgIGZpbGVzIChvcgorICBzdGF0aWMgZmlsZXMpLCBpbiBgYHBhc3RlLnVybHBhcnNlcmBgCisKKyogU2VydmUgc3RhdGljIGRpcmVjdG9yaWVzIG9mIGZpbGVzLCBhbHNvIGluIGBgcGFzdGUudXJscGFyc2VyYGA7IGFsc28KKyAgaW4gdGhhdCBtb2R1bGUgc2VydmluZyBmcm9tIEVnZyByZXNvdXJjZXMgdXNpbmcgYGBwa2dfcmVzb3VyY2VzYGAuCisKK1Rvb2xzCistLS0tLQorCisqIENhdGNoIEhUVFAtcmVsYXRlZCBleGNlcHRpb25zIChlLmcuLCBgYEhUVFBOb3RGb3VuZGBgKSBhbmQgdHVybiB0aGVtCisgIGludG8gcHJvcGVyIHJlc3BvbnNlcyBpbiBgYHBhc3RlLmh0dHBleGNlcHRpb25zYGAKKworKiBTZXZlcmFsIGF1dGhlbnRpY2F0aW9uIHRlY2huaXF1ZXMsIGluY2x1ZGluZyBIVFRQIChCYXNpYyBhbmQKKyAgRGlnZXN0KSwgc2lnbmVkIGNvb2tpZXMsIGFuZCBDQVMgc2luZ2xlLXNpZ25vbiwgaW4gdGhlCisgIGBgcGFzdGUuYXV0aGBgIHBhY2thZ2UuCisKKyogQ3JlYXRlIHNlc3Npb25zIGluIGBgcGFzdGUuc2Vzc2lvbmBgIGFuZCBgYHBhc3RlLmZsdXBfc2Vzc2lvbmBgCisKKyogR3ppcCByZXNwb25zZXMgaW4gYGBwYXN0ZS5nemlwYGAKKworKiBBIHdpZGUgdmFyaWV0eSBvZiByb3V0aW5lcyBmb3IgbWFuaXB1bGF0aW5nIFdTR0kgcmVxdWVzdHMgYW5kCisgIHByb2R1Y2luZyByZXNwb25zZXMsIGluIGBgcGFzdGUucmVxdWVzdGBgLCBgYHBhc3RlLnJlc3BvbnNlYGAgYW5kCisgIGBgcGFzdGUud3NnaWxpYmBgCisKK0RlYnVnZ2luZyBGaWx0ZXJzCistLS0tLS0tLS0tLS0tLS0tLQorCisqIENhdGNoIChvcHRpb25hbGx5IGVtYWlsKSBlcnJvcnMgd2l0aCBleHRlbmRlZCB0cmFjZWJhY2tzICh1c2luZworICBab3BlL1pQVCBjb252ZW50aW9ucykgaW4gYGBwYXN0ZS5leGNlcHRpb25zYGAKKworKiBDYXRjaCBlcnJvcnMgcHJlc2VudGluZyBhIGBjZ2l0YgorICA8aHR0cDovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvY2dpdGIuaHRtbD5gXy1iYXNlZAorICBvdXRwdXQsIGluIGBgcGFzdGUuY2dpdGJfY2F0Y2hlcmBgLgorCisqIFByb2ZpbGUgZWFjaCByZXF1ZXN0IGFuZCBhcHBlbmQgcHJvZmlsaW5nIGluZm9ybWF0aW9uIHRvIHRoZSBIVE1MLAorICBpbiBgYHBhc3RlLmRlYnVnLnByb2ZpbGVgYAorCisqIENhcHR1cmUgYGBwcmludGBgIG91dHB1dCBhbmQgcHJlc2VudCBpdCBpbiB0aGUgYnJvd3NlciBmb3IKKyAgZGVidWdnaW5nLCBpbiBgYHBhc3RlLmRlYnVnLnByaW50c2BgCisKKyogVmFsaWRhdGUgYWxsIEhUTUwgb3V0cHV0IGZyb20gYXBwbGljYXRpb25zIHVzaW5nIHRoZSBgV0RHIFZhbGlkYXRvcgorICA8aHR0cDovL3d3dy5odG1saGVscC5jb20vdG9vbHMvdmFsaWRhdG9yLz5gXywgYXBwZW5kaW5nIGFueSBlcnJvcnMKKyAgb3Igd2FybmluZ3MgdG8gdGhlIHBhZ2UsIGluIGBgcGFzdGUuZGVidWcud2RnX3ZhbGlkYXRvcmBgCisKK090aGVyIFRvb2xzCistLS0tLS0tLS0tLQorCisqIEEgZmlsZSBtb25pdG9yIHRvIGFsbG93IHJlc3RhcnRpbmcgdGhlIHNlcnZlciB3aGVuIGZpbGVzIGhhdmUgYmVlbgorICB1cGRhdGVkIChmb3IgYXV0b21hdGljIHJlc3RhcnRpbmcgd2hlbiBlZGl0aW5nIGNvZGUpIGluCisgIGBgcGFzdGUucmVsb2FkZXJgYAorCisqIEEgY2xhc3MgZm9yIGdlbmVyYXRpbmcgYW5kIHRyYXZlcnNpbmcgVVJMcywgYW5kIGNyZWF0aW5nIGFzc29jaWF0ZWQKKyAgSFRNTCBjb2RlLCBpbiBgYHBhc3RlLnVybGBgCisKK1RoZSBvZmZpY2lhbCBkZXZlbG9wbWVudCByZXBvIGlzIGF0IGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3RlLgorCitGb3IgdGhlIGxhdGVzdCBjaGFuZ2VzIHNlZSB0aGUgYG5ld3MgZmlsZQorPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvbmV3cy5odG1sPmBfLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvRGV2ZWxvcGVyR3VpZGVsaW5lcy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9EZXZlbG9wZXJHdWlkZWxpbmVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWYzOWVlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvRGV2ZWxvcGVyR3VpZGVsaW5lcy50eHQKQEAgLTAsMCArMSwxMTAgQEAKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKK1B5dGhvbiBQYXN0ZSBEZXZlbG9wZXIgR3VpZGUKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworSGkuICBXZWxjb21lIHRvIFBhc3RlLiAgSSBob3BlIHlvdSBlbmpveSB5b3VyIHN0YXkgaGVyZS4KKworSSBob3BlIHRvIGJyaW5nIHRvZ2V0aGVyIG11bHRpcGxlIGVmZm9ydHMgaGVyZSwgZm9yIFBhc3RlIHRvIHN1cHBvcnQKK211bHRpcGxlIGZyYW1ld29ya3MgYW5kIGRpcmVjdGlvbnMsIHdoaWxlIHByZXNlbnRpbmcgYSBmYWlybHkKK2ludGVncmF0ZWQgZnJvbnRlbmQgdG8gdXNlcnMuICBIb3cgdG8gZG8gdGhhdD8gIFRoYXQncyBhbiBvcGVuCitxdWVzdGlvbiwgYW5kIHRoaXMgY29kZSBpcyBpbiBzb21lIHdheXMgYW4gZXhwbG9yYXRpb24uCisKK1RoZXJlJ3Mgc29tZSBiYXNpYyBwcmluY2lwbGVzOgorCisqIEtlZXAgc3R1ZmYgZGVjb3VwbGVkLgorCisqIE11c3QgYmUgdGVzdGFibGUuICBPZiBjb3Vyc2UgdGVzdGVkIGlzIGV2ZW4gYmV0dGVyIHRoYW4gdGVzdGFibGUuCisKKyogVXNlIFdTR0kgc3RhbmRhcmRzIGZvciBjb21tdW5pY2F0aW9uIGJldHdlZW4gZGVjb3VwbGVkIGxpYnJhcmllcy4KKworKiBXaGVuIHBvc3NpYmxlLCB1c2UgSFRUUCBzZW1hbnRpY3MgZm9yIGNvbW11bmljYXRpbmcgYmV0d2VlbgorICBsaWJyYXJpZXMgKGUuZy4sIGluZGljYXRlIGNhY2hhYmlsaXR5IHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBIVFRQCisgIGhlYWRlcnMpLgorCisqIFdoZW4gcG9zc2libGUsIHVzZSBXU0dJIGFzIGEgd3JhcHBlciBhcm91bmQgd2ViLW5ldXRyYWwgbGlicmFyaWVzLgorICBGb3IgaW5zdGFuY2UsIHRoZSBjb25maWd1cmF0aW9uIGlzIGEgc2ltcGxlIGxpYnJhcnksIGJ1dCB0aGUgV1NHSQorICBtaWRkbGV3YXJlIHRoYXQgcHV0cyB0aGUgY29uZmlndXJhdGlvbiBpbiBwbGFjZSBpcyByZWFsbHkgcmVhbGx5CisgIHNpbXBsZS4gIElmIGl0IGNvdWxkIGJlIHVzZWQgb3V0c2lkZSBvZiBhIHdlYiBjb250ZXh0LCB0aGVuIGhhdmluZworICBib3RoIGEgbGlicmFyeSBhbmQgbWlkZGxld2FyZSBmb3JtIGlzIGdvb2QuCisKKyogRW50cnkgaW50byBmcmFtZXdvcmtzIHNob3VsZCBiZSBlYXN5LCBidXQgZXhpdCBzaG91bGQgYWxzbyBiZSBlYXN5LgorICBIZXRlcm9nZW5lb3VzIGZyYW1ld29ya3MgYW5kIGFwcGxpY2F0aW9ucyBhcmUgdGhlIGFtYml0aW9uLiAgQnV0IHdlCisgIGhhdmUgdG8gZ2V0IHNvbWUgbWVzc2luZXNzIGludG8gUGFzdGUgYmVmb3JlIHdlIGNhbiB0cnkgdG8gcmVzb2x2ZQorICB0aGF0IG1lc3NpbmVzcy4KKworKiBXaGVuIGFsbCBpcyBzYWlkIGFuZCBkb25lLCB1c2VycyBzaG91bGQgYmUgYWJsZSB0byBpZ25vcmUgbXVjaCBvZgorICB3aGF0IHdlJ3ZlIGRvbmUgYW5kIGZvY3VzIG9uIHdyaXRpbmcgdGhlaXIgYXBwbGljYXRpb25zLCBhbmQgU3R1ZmYKKyAgSnVzdCBXb3Jrcy4gIERvY3VtZW50YXRpb24gaXMgZ29vZDsgc3R1ZmYgdGhhdCB3b3JrcyB3aXRob3V0IHVzZXIKKyAgaW50ZXJ2ZW50aW9uIGlzIGJldHRlci4KKworRGV2ZWxvcGVyIEluZm8KKz09PT09PT09PT09PT09CisKK01vc3RseSwgaWYgdGhlcmUncyBhIHByb2JsZW0gd2UgY2FuIGRpc2N1c3MgaXQgYW5kIHdvcmsgaXQgb3V0LCBubyBvbmUKK2lzIGdvaW5nIHRvIGJpdGUgeW91ciBoZWFkIG9mZiBmb3IgY29tbWl0dGluZyBzb21ldGhpbmcuCisKKyogRnJhbWV3b3JrLWxpa2UgdGhpbmdzIHNob3VsZCBnbyBpbiBzdWJwYWNrYWdlcywgb3IgcGVyaGFwcyBpbgorICBzZXBhcmF0ZSBkaXN0cmlidXRpb25zIGVudGlyZWx5IChQYXN0ZSBXZWJLaXQgYW5kIFdhcmV3ZWIgd2VyZQorICBleHRyYWN0ZWQgZm9yIHRoaXMgcmVhc29uKS4KKworKiBJbnRlZ3JhdGluZyBleHRlcm5hbCBzZXJ2ZXJzIGFuZCBmcmFtZXdvcmtzIGlzIGFsc28gaW50ZXJlc3RpbmcsIGJ1dAorICBpdCdzIGJlc3QgdG8gaW50cm9kdWNlIHRoYXQgYXMgYSByZXF1aXJlbWVudCBpbnN0ZWFkIG9mIGluY2x1ZGluZworICB0aGUgd29yayBoZXJlLiAgUGFzdGUgU2NyaXB0IGNvbnRhaW5zIHNldmVyYWwgd3JhcHBlcnMgZm9yIGV4dGVybmFsCisgIHByb2plY3RzIChzZXJ2ZXJzIGluIHBhcnRpY3VsYXIpLgorCisqIFRlc3RzIGFyZSBnb29kLiAgV2UgdXNlIHB5LnRlc3RfLCBiZWNhdXNlIGl0IGlzIHNpbXBsZS4gIEkgd2FudCB0bworICB1c2UgZG9jdGVzdHMgdG9vLCBidXQgdGhlIGluZnJhc3RydWN0dXJlIGlzbid0IHJlYWxseSB0aGVyZSBub3cgLS0KKyAgYnV0IHBsZWFzZSBmZWVsIGZyZWUgdG8gdXNlIHRob3NlIHRvby4gIGBgdW5pdHRlc3RgYCBpcyBraW5kIG9mCisgIGFubm95aW5nLCBhbmQgcHkudGVzdCBpcyBib3RoIG1vcmUgcG93ZXJmdWwgYW5kIGVhc2llciB0byB3cml0ZSBmb3IuCisgIFRlc3RzIHNob3VsZCBnbyBpbiB0aGUgYGB0ZXN0cy9gYCBkaXJlY3RvcnkuICBgYHBhc3RlLmZpeHR1cmVgYAorICBjb250YWlucyBzb21lIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdGVzdGluZyBXU0dJIGFwcGxpY2F0aW9ucworICBhbmQgbWlkZGxld2FyZS4gIFBheSBwYXJ0aWN1bGFyIGF0dGVudGlvbiB0byBgYFRlc3RBcHBgYC4KKyAgCisuLiBfcHkudGVzdDogaHR0cDovL2NvZGVzcGVhay5uZXQvcHkvY3VycmVudC9kb2MvdGVzdC5odG1sCisKKyogSWYgeW91IG1vdmUgc29tZXRoaW5nIGFyb3VuZCB0aGF0IHNvbWVvbmUgbWF5IGJlIHVzaW5nLCBrZWVwIHRoZWlyCisgIGltcG9ydHMgd29ya2luZyBhbmQgaW50cm9kdWNlIGEgd2FybmluZywgbGlrZTo6CisKKyAgICBkZWYgYmFja3dhcmRfY29tcGF0X2Z1bmN0aW9uKCphcmdzLCAqKmt3KToKKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgICAgICMgRGVwcmVjYXRlZCBvbiAyMDA1IE1hciA1CisgICAgICAgIHdhcm5pbmdzLndhcm4oJ01vdmVkIHRvIGZvby5mdW5jdGlvbicsIERlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgcmV0dXJuIGZvby5mdW5jdGlvbigqYXJncywgKiprdykKKworKiBJZiBzb21ldGhpbmcgaXMgcmVhbGx5IGV4cGVyaW1lbnRhbCwgcHV0IGl0IGluIHlvdXIgaG9tZSBkaXJlY3RvcnksCisgIG9yIG1ha2UgYSBicmFuY2ggaW4geW91ciBob21lIGRpcmVjdG9yeS4gIFlvdSBjYW4gbWFrZSBhIGhvbWUKKyAgZGlyZWN0b3J5IGZvciB5b3Vyc2VsZiwgaW4gYGBodHRwOi8vc3ZuLnc0cHkub3JnL2hvbWUvdXNlcm5hbWVgYC4KKworKiBOb3QgZXZlcnl0aGluZyBpbiB0aGUgcmVwb3NpdG9yeSBvciBldmVuIGluIHRoZSB0cnVuayB3aWxsCisgIG5lY2Vzc2FyaWx5IGdvIGludG8gdGhlIHJlbGVhc2UuICBUaGUgcmVsZWFzZSBzaG91bGQgY29udGFpbiBzdHVmZgorICB0aGF0IGlzIHRlc3RlZCwgZG9jdW1lbnRlZCwgYW5kIHVzZWZ1bC4gIEVhY2ggbW9kdWxlIG9yIGZlYXR1cmUgYWxzbworICBuZWVkcyBhIGNoYW1waW9uIC0tIHNvbWVvbmUgd2hvIHdpbGwgc3RhbmQgYnkgdGhlIGNvZGUsIGFuc3dlcgorICBxdWVzdGlvbnMsIGV0Yy4gIEl0IGRvZXNuJ3QgaGF2ZSB0byBiZSB0aGUgb3JpZ2luYWwgZGV2ZWxvcGVyLCBidXQKKyAgdGhlcmUgaGFzIHRvIGJlICpzb21lb25lKi4gIFNvIHdoZW4gYSByZWxlYXNlIGlzIGN1dCwgaWYgc29tZQorICBtb2R1bGVzIGRvbid0IGZ1bGZpbGwgdGhhdCB0aGV5IG1heSBiZSBsZWZ0IG91dC4KKworKiBUcnkgdG8ga2VlcCB0byB0aGUgYFN0eWxlIEd1aWRlbGluZXNgXy4gIEJ1dCBpZiB5b3UgYXJlIGJyaW5naW5nIGluCisgIG91dHNpZGUgd29yaywgZG9uJ3Qgc3RyZXNzIG91dCB0b28gbXVjaCBhYm91dCBpdC4gIFN0aWxsLCBpZiB5b3UKKyAgaGF2ZSBhIGNob2ljZSwgZm9sbG93IHRoYXQuICBUaG9zZSBndWlkZWxpbmVzIGFyZSBtZWFudCB0byByZXByZXNlbnQKKyAgY29udmVudGlvbmFsIFB5dGhvbiBzdHlsZSBndWlkZXMsIHRoZXJlJ3Mgbm90aGluZyBvdXQgb2YgdGhlIG5vcm1hbAorICB0aGVyZS4KKworLi4gX1N0eWxlIEd1aWRlbGluZXM6IFN0eWxlR3VpZGUuaHRtbAorCisqIFdyaXRlIHlvdXIgZG9jc3RyaW5ncyBpbiBgcmVzdHJ1Y3R1cmVkIHRleHQKKyAgPGh0dHA6Ly9kb2N1dGlscy5zb3VyY2Vmb3JnZS5uZXQvcnN0Lmh0bWw+YF8uICBBcyB0aW1lIGdvZXMgb24sIEkKKyAgd2FudCB0byByZWx5IG9uIGRvY3N0cmluZ3MgbW9yZSBmb3IgZG9jdW1lbnRhdGlvbiwgd2l0aCBzaG9ydGVyCisgIG5hcnJhdGl2ZSBkb2N1bWVudGF0aW9uIHBvaW50aW5nIGludG8gdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkCisgIGZyb20gZG9jc3RyaW5ncy4KKworICBUaGUgZ2VuZXJhdGlvbiBpcyBkb25lIHdpdGggYFB1ZGdlIDxodHRwOi8vcHVkZ2UubGVzc2NvZGUub3JnLz5gXy4KKyAgVG8gdHJ5IGdlbmVyYXRpbmcgdGhlIGRvY3VtZW50YXRpb24sIHRoaXMgc2hvdWxkIHdvcms6OgorCisgICAgJCBlYXN5X2luc3RhbGwgc3ZuOi8vbGVzc2NvZGUub3JnL2J1aWxkdXRpbHMvdHJ1bmsgXAorICAgICAgICAgICAgICAgICAgIHN2bjovL2xlc3Njb2RlLm9yZy9wdWRnZS90cnVuaworICAgICQgY2QgUGFzdGUKKyAgICAkIHB5dGhvbiBzZXR1cC5weSBwdWRnZQorCisgIFRoaXMgd2lsbCBpbnN0YWxsIFB1ZGdlIGFuZCBgYnVpbGR1dGlscworICA8aHR0cDovL2J1aWxkdXRpbHMubGVzc2NvZGUub3JnLz5gXywgYW5kIHRoZW4gZ2VuZXJhdGUgdGhlCisgIGRvY3VtZW50YXRpb24gaW50byBgYFBhc3RlL2RvY3MvaHRtbC9gYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL1N0eWxlR3VpZGUudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvU3R5bGVHdWlkZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjMwNzI4MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL1N0eWxlR3VpZGUudHh0CkBAIC0wLDAgKzEsMTAyIEBACisrKysrKysrKysrKysrKysrKysrCitQYXN0ZSBTdHlsZSBHdWlkZQorKysrKysrKysrKysrKysrKysrKworCitHZW5lcmFsbHkgeW91IHNob3VsZCBmb2xsb3cgdGhlIHJlY29tbWVuZGF0aW9ucyBpbiBgUEVQIDhgXywgdGhlCitQeXRob24gU3R5bGUgR3VpZGUuICBTb21lIHRoaW5ncyB0byB0YWtlIHBhcnRpY3VsYXIgbm90ZSBvZjoKKworLi4gX1BFUCA4OiBodHRwOi8vd3d3LnB5dGhvbi5vcmcvcGVwcy9wZXAtMDAwOC5odG1sCisKKyogKipObyB0YWJzKiouICBOb3QgYW55d2hlcmUuICBBbHdheXMgaW5kZW50IHdpdGggNCBzcGFjZXMuCisKKyogSSBkb24ndCBzdHJlc3MgdG9vIG11Y2ggb24gbGluZSBsZW5ndGguICBCdXQgdHJ5IHRvIGJyZWFrIGxpbmVzIHVwCisgIGJ5IGdyb3VwaW5nIHdpdGggcGFyZW50aGVzaXMgaW5zdGVhZCBvZiB3aXRoIGJhY2tzbGFzaGVzIChpZiB5b3UKKyAgY2FuKS4gIERvIGFzc2VydHMgbGlrZTo6CisKKyAgICBhc3NlcnQgc29tZV9jb25kaXRpb24oYSwgYiksICgKKyAgICAgICAgIlNvbWUgY29uZGl0aW9uIGZhaWxlZCwgJXIgaXNuJ3QgcmlnaHQhIiAlIGEpCisKKyogQnV0IGlmIHlvdSBhcmUgaGF2aW5nIHByb2JsZW1zIHdpdGggbGluZSBsZW5ndGgsIG1heWJlIHlvdSBzaG91bGQKKyAganVzdCBicmVhayB0aGUgZXhwcmVzc2lvbiB1cCBpbnRvIG11bHRpcGxlIHN0YXRlbWVudHMuCisKKyogQmxhbmsgbGluZXMgYmV0d2VlbiBtZXRob2RzLCB1bmxlc3MgdGhleSBhcmUgdmVyeSBzbWFsbCBhbmQgY2xvc2VseQorICBib3VuZCB0byBlYWNoIG90aGVyLgorCisqIERvbid0IHVzZSB0aGUgZm9ybSBgYGNvbmRpdGlvbiBhbmQgdHJ1ZVZhbHVlIG9yIGZhbHNlVmFsdWVgYC4gIEJyZWFrCisgIGl0IG91dCBhbmQgdXNlIGEgdmFyaWFibGUuCisKKyogSSAoSWFuIEJpY2tpbmcpIGFtIHZlcnkgcGlja3kgYWJvdXQgd2hpdGVzcGFjZS4gIFRoZXJlJ3Mgb25lIGFuZAorICBvbmx5IG9uZSByaWdodCB3YXkgdG8gZG8gaXQuICBHb29kIGV4YW1wbGVzOjoKKworICAgIHNob3J0ID0gMworICAgIGxvbmdlclZhciA9IDQKKworICAgIGlmIHggPT0gNDoKKyAgICAgICAgZG8gc3R1ZmYKKworICAgIGZ1bmMoYXJnMT0nYScsIGFyZzI9J2InKQorICAgIGZ1bmMoKGEgKyBiKSoxMCkKKworICAqKkJhZCoqIGV4YW1wbGVzOjoKKworICAgIHNob3J0ICAgID0zCisgICAgbG9uZ2VyVmFyPTQKKworICAgIGlmIHg9PTQ6IGRvIHN0dWZmCisKKyAgICBmdW5jKGFyZzEgPSAnYScsIGFyZzIgPSAnYicpCisgICAgZnVuYyhhLGIpCisgICAgZnVuYyggYSwgYiApCisgICAgWyAxLCAyLCAzIF0KKworICBJZiB0aGUgd2hpdGVzcGFjZSBpc24ndCByaWdodCwgaXQnbGwgYW5ub3kgbWUgYW5kIEknbGwgZmVlbCBhIG5lZWQKKyAgdG8gZml4IGl0LiAgUmVhbGx5LCB0aGlzIHdoaXRlc3BhY2Ugc3R1ZmYgc2hvdWxkbid0IGJlIHRoYXQKKyAgY29udHJvdmVyc2lhbCBzaG91bGQgaXQ/ICBTb21lIHBhcnRpY3VsYXIgcG9pbnRzIHRoYXQgSSBmZWVsCisgIHN0cm9uZ2x5IGFib3V0OgorCisgICogTm8gc3BhY2UgYWZ0ZXIgYSBmdW5jdGlvbiBuYW1lIChiYWQ6IGBgZnVuYyAoYXJnKWBgKS4KKyAgKiBObyBzcGFjZSBhZnRlciBvciBiZWZvcmUgIGEgcGFyZW50aGVzaXMgKGJhZDogYGBmdW5jKCBhcmcgKWBgKS4KKyAgKiBBbHdheXMgb25lIHNwYWNlIGFmdGVyIGEgY29tbWEgKGJhZDogYGBmdW5jKGEsYilgYCkuCisKKyogVXNlIGBgQEBgYCB0byBtYXJrIHNvbWV0aGluZyB0aGF0IGlzIHN1Ym9wdGltYWwsIG9yIHdoZXJlIHlvdSBoYXZlIGEKKyAgY29uY2VybiB0aGF0IGl0J3Mgbm90IHJpZ2h0LiAgVHJ5IHRvIGFsc28gZGF0ZSBpdCBhbmQgcHV0IHlvdXIKKyAgdXNlcm5hbWUgdGhlcmUuCisKKyogRG9jc3RyaW5ncyBhcmUgZ29vZC4gIFRoZXkgc2hvdWxkIGxvb2sgbGlrZTo6CisKKyAgICBjbGFzcyBBQ2xhc3Mob2JqZWN0KToKKyAgICAgICAgIiIiCisgICAgICAgIGRvYyBzdHJpbmcuLi4KKyAgICAgICAgIiIiCisKKyAgRG9uJ3QgdXNlIHNpbmdsZSBxdW90ZXMgKCcnJykgLS0gdGhleSB0ZW5kIHRvIGNhdXNlIHByb2JsZW1zIGluCisgIEVtYWNzLiAgRG9uJ3QgYm90aGVyIHRyeWluZyBtYWtlIHRoZSBzdHJpbmcgbGVzcyB2ZXJ0aWNhbGx5IGNvbXBhY3QuCisKKyogQ29tbWVudHMgZ28gcmlnaHQgYmVmb3JlIHRoZSB0aGluZyB0aGV5IGFyZSBjb21tZW50aW5nIG9uLgorCisqIE1ldGhvZHMgbmV2ZXIsIGV2ZXIsIGV2ZXIgc3RhcnQgd2l0aCBjYXBpdGFsIGxldHRlcnMuICBHZW5lcmFsbHkKKyAgb25seSBjbGFzc2VzIGFyZSBjYXBpdGFsaXplZC4gIEJ1dCBkZWZpbml0ZWx5IG5ldmVyIG1ldGhvZHMuCisKKyogVXNlIGBgY2xzYGAgdG8gcmVmZXIgdG8gYSBjbGFzcy4gIFVzZSBgYG1ldGFgYCB0byByZWZlciB0byBhCisgIG1ldGFjbGFzcyAod2hpY2ggYWxzbyBoYXBwZW5zIHRvIGJlIGEgY2xhc3MsIGJ1dCBjYWxsaW5nIGEgbWV0YWNsYXNzCisgIGBgY2xzYGAgd2lsbCBiZSBjb25mdXNpbmcpLgorCisqIFVzZSBgYGlzaW5zdGFuY2VgYCBpbnN0ZWFkIG9mIGNvbXBhcmluZyB0eXBlcy4gIEUuZy46OgorCisgICAgaWYgaXNpbnN0YW5jZSh2YXIsIHN0cik6IC4uLgorICAgICMgQmFkOgorICAgIGlmIHR5cGUodmFyKSBpcyBTdHJpbmdUeXBlOiAuLi4KKworKiBOZXZlciwgZXZlciB1c2UgdHdvIGxlYWRpbmcgdW5kZXJzY29yZXMuICBUaGlzIGlzIGFubm95aW5nbHkKKyAgcHJpdmF0ZS4gIElmIG5hbWUgY2xhc2hlcyBhcmUgYSBjb25jZXJuLCB1c2UgZXhwbGljaXQgbmFtZSBtYW5nbGluZworICBpbnN0ZWFkIChlLmcuLCBgYF9NeVRoaW5nX2JsYWhibGFoYGApLiAgVGhpcyBpcyBlc3NlbnRpYWxseSB0aGUgc2FtZQorICB0aGluZyBhcyBkb3VibGUtdW5kZXJzY29yZSwgb25seSBpdCdzIHRyYW5zcGFyZW50IHdoZXJlIGRvdWJsZQorICB1bmRlcnNjb3JlIG9ic2N1cmVzLgorCisqIE1vZHVsZSBuYW1lcyBzaG91bGQgYmUgdW5pcXVlIGluIHRoZSBwYWNrYWdlLiAgU3VicGFja2FnZXMgc2hvdWxkbid0CisgIHNoYXJlIG1vZHVsZSBuYW1lcyB3aXRoIHNpYmxpbmcgb3IgcGFyZW50IHBhY2thZ2VzLiAgU2FkbHkgdGhpcworICBpc24ndCBwb3NzaWJsZSBmb3IgYGBfX2luaXRfXy5weWBgLCBidXQgaXQncyBvdGhlcndpc2UgZWFzeSBlbm91Z2guCisKKyogTW9kdWxlIG5hbWVzIHNob3VsZCBiZSBhbGwgbG93ZXIgY2FzZSwgYW5kIHByb2JhYmx5IGhhdmUgbm8KKyAgdW5kZXJzY29yZXMgKHNtdXNoZWR3b3JkcykuCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL19zdGF0aWMvcGFzdGUuY3NzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvX3N0YXRpYy9wYXN0ZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcwNWU1ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL19zdGF0aWMvcGFzdGUuY3NzCkBAIC0wLDAgKzEsMTUgQEAKK2EuaW52aXNpYmxlLWxpbmsgeworICBjb2xvcjogI2ZmZjsKKyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorCithLmludmlzaWJsZS1saW5rOnZpc2l0ZWQgeworICBjb2xvcjogI2ZmZjsKKyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorCithLmludmlzaWJsZTpsaW5rIHsKKyAgY29sb3I6ICNmZmY7CisgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvX3RlbXBsYXRlcy9sYXlvdXQuaHRtbCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL190ZW1wbGF0ZXMvbGF5b3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFlMmQ0MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL190ZW1wbGF0ZXMvbGF5b3V0Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAoreyUgZXh0ZW5kcyAiIWxheW91dC5odG1sIiAlfQorCit7JSBibG9jayBleHRyYWhlYWQgJX0KK3t7IHN1cGVyKCkgfX0KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiCisgaHJlZj0ie3sgcGF0aHRvKCdfc3RhdGljL3Bhc3RlLmNzcycpIH19Ij4KK3slIGVuZGJsb2NrICV9CisKK3slIGJsb2NrIHNpZGViYXJ0b2MgJX0KKzxoMz48YSBocmVmPSJodHRwOi8vcHl0aG9ucGFzdGUub3JnLyIgY2xhc3M9ImludmlzaWJsZS1saW5rIj5QeXRob24gUGFzdGU8L2E+PC9oMz4KKworPHVsPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3Rlc2NyaXB0L2lzc3Vlcy8iPklzc3VlIHRyYWNrZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vcHl0aG9ucGFzdGUub3JnLyI+UGFzdGUgY29yZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly93ZWJvYi5vcmcvIj5XZWJPYjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9weXRob25wYXN0ZS5vcmcvZGVwbG95LyI+UGFzdGUgRGVwbG95PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3B5dGhvbnBhc3RlLm9yZy9zY3JpcHQvIj5QYXN0ZSBTY3JpcHQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vd2VidGVzdC5weXRob25wYXN0ZS5vcmcvIj5XZWJUZXN0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3B5dGhvbnBhc3RlLm9yZy9zY3JpcHR0ZXN0LyI+U2NyaXB0VHlwZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9weXRob25wYXN0ZS5vcmcvaW5pdG9vbHMvIj5JTklUb29sczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9weXRob25wYXN0ZS5vcmcvdGVtcGl0YS8iPlRlbXBpdGE8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vcHl0aG9ucGFzdGUub3JnL3dhaXRmb3JpdC8iPldhaXRGb3JJdDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9weXRob25wYXN0ZS5vcmcvd3BocC8iPldQSFA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vcHl0aG9ucGFzdGUub3JnL3dzZ2lmaWx0ZXIvIj5XU0dJRmlsdGVyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3B5dGhvbnBhc3RlLm9yZy93c2dpcHJveHkvIj5XU0dJUHJveHk8L2E+PC9saT4KKzwvdWw+CisKK3t7IHN1cGVyKCkgfX0KK3slIGVuZGJsb2NrICV9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9jb21tdW5pdHkvaW5kZXgudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvY29tbXVuaXR5L2luZGV4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjMwMTEwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvY29tbXVuaXR5L2luZGV4LnR4dApAQCAtMCwwICsxLDE1IEBACitDb21tdW5pdHkKKz09PT09PT09PQorCitNdWNoIG9mIHRoZSBjb21tdW5pY2F0aW9uIGdvZXMgb24gaW4gdGhlIGBtYWlsaW5nIGxpc3RzCis8bWFpbGluZy1saXN0Lmh0bWw+YF87IHNlZSB0aGF0IHBhZ2UgZm9yIGluZm9ybWF0aW9uIG9uIHRoZSBsaXN0cy4KKworRm9yIGxpdmUgSVJDIGRpc2N1c3Npb24sIHRyeSB0aGUgYGAjcHl0aG9ucGFzdGVgYCBjaGFubmVsIG9uIGBGcmVlbm9kZQorPGh0dHA6Ly9mcmVlbm9kZS5uZXQvPmBfLgorCitJZiB5b3UgZmluZCBidWdzIGluIHRoZSBjb2RlIG9yIGRvY3VtZW50YXRpb24sIHBsZWFzZSBgc3VibWl0IGEgdGlja2V0Cis8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy90cmFjL3JlcG9ydD5gXy4gIFlvdSBjYW4gYWxzbyBgdmlldyB0aWNrZXRzCis8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy90cmFjL3JlcG9ydD5gXy4KKworCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2NvbW11bml0eS9tYWlsaW5nLWxpc3QudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvY29tbXVuaXR5L21haWxpbmctbGlzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU0ZWMzZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2NvbW11bml0eS9tYWlsaW5nLWxpc3QudHh0CkBAIC0wLDAgKzEsMTQgQEAKK01haWxpbmcgTGlzdHMKKz09PT09PT09PT09PT0KKworR2VuZXJhbCBkaXNjdXNzaW9uIGFuZCBxdWVzdGlvbnMgc2hvdWxkIGdvIHRvOiAKKworYHBhc3RlLXVzZXJzQGdvb2dsZWdyb3Vwcy5vcmcgPGh0dHA6Ly9ncm91cHMuZ29vZ2xlLmNvbS9ncm91cC9wYXN0ZS11c2Vycz5gXzoKKyAgICBOZXcgcG9zdHMgYXJlIGBvbiBHb29nbGUgR3JvdXBzIDxodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXAvcGFzdGUtdXNlcnMvdG9waWNzPmBfIGBvbGQgcG9zdHMgYXJlIGluIHRoZWlyIG93biBhcmNoaXZlIDxodHRwOi8vcHl0aG9ucGFzdGUub3JnL2FyY2hpdmVzL2xpc3QvcGFzdGUtdXNlcnMuZW4uaHRtbD5gXworCitNb3JlIGFic3RyYWN0IGRpc2N1c3Npb24gb2YgUHl0aG9uIHdlYiBwcm9ncmFtbWluZyBzaG91bGQgZ28gdG86CisKK2B3ZWItc2lnQHB5dGhvbi5vcmcgPGh0dHA6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5mby93ZWItc2lnPmBfOgorICAgIGBTdWJzY3JpYmUgPGh0dHA6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5mby93ZWItc2lnPmBfXywKKyAgICBgQXJjaGl2ZXMgPGh0dHA6Ly93d3cucHl0aG9uLm9yZy9waXBlcm1haWwvd2ViLXNpZy8+YF9fCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2NvbW11bml0eS9yZXBvc2l0b3J5LnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2NvbW11bml0eS9yZXBvc2l0b3J5LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGYzNzAwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvY29tbXVuaXR5L3JlcG9zaXRvcnkudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1JlcG9zaXRvcnkKKz09PT09PT09PT0KKworUGFzdGUgaXMga2VwdCBpbiBhIE1lcmN1cmlhbCAoaGcpIHJlcG9zaXRvcnkgYXQKK2h0dHA6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGUKKworSWYgeW91IGFyZSB1c2luZyBhIGNvbW1hbmQtbGluZSBNZXJjdXJpYWwgY2xpZW50LCB5b3UgY2FuIGNoZWNrCitpdCBvdXQgbGlrZTo6CisKKyAgICBoZyBjbG9uZSBodHRwOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3RlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9jb25mLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvY29uZi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDM1ZDUwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvY29uZi5weQpAQCAtMCwwICsxLDEzMiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyMKKyMgUGFzdGUgZG9jdW1lbnRhdGlvbiBidWlsZCBjb25maWd1cmF0aW9uIGZpbGUsIGNyZWF0ZWQgYnkKKyMgc3BoaW54LXF1aWNrc3RhcnQgb24gVHVlIEFwciAyMiAyMjowODo0OSAyMDA4LgorIworIyBUaGlzIGZpbGUgaXMgZXhlY2ZpbGUoKWQgd2l0aCB0aGUgY3VycmVudCBkaXJlY3Rvcnkgc2V0IHRvIGl0cyBjb250YWluaW5nIGRpci4KKyMKKyMgVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBhcmUgcGlja2xlZCwgc28gZG9uJ3QgcHV0IHZhbHVlcyBpbiB0aGUgbmFtZXNwYWNlCisjIHRoYXQgYXJlbid0IHBpY2tsZWFibGUgKG1vZHVsZSBpbXBvcnRzIGFyZSBva2F5LCB0aGV5J3JlIHJlbW92ZWQgYXV0b21hdGljYWxseSkuCisjCisjIEFsbCBjb25maWd1cmF0aW9uIHZhbHVlcyBoYXZlIGEgZGVmYXVsdCB2YWx1ZTsgdmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBvdXQKKyMgc2VydmUgdG8gc2hvdyB0aGUgZGVmYXVsdCB2YWx1ZS4KKworaW1wb3J0IHN5cworCisjIElmIHlvdXIgZXh0ZW5zaW9ucyBhcmUgaW4gYW5vdGhlciBkaXJlY3RvcnksIGFkZCBpdCBoZXJlLgorI3N5cy5wYXRoLmFwcGVuZCgnc29tZS9kaXJlY3RvcnknKQorCisjIEdlbmVyYWwgY29uZmlndXJhdGlvbgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBBZGQgYW55IFNwaGlueCBleHRlbnNpb24gbW9kdWxlIG5hbWVzIGhlcmUsIGFzIHN0cmluZ3MuIFRoZXkgY2FuIGJlIGV4dGVuc2lvbnMKKyMgY29taW5nIHdpdGggU3BoaW54IChuYW1lZCAnc3BoaW54LmV4dC4qJykgb3IgeW91ciBjdXN0b20gb25lcy4KK2V4dGVuc2lvbnMgPSBbJ3NwaGlueC5leHQuYXV0b2RvYyddCisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gdGVtcGxhdGVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LgordGVtcGxhdGVzX3BhdGggPSBbJ190ZW1wbGF0ZXMnXQorCisjIFRoZSBzdWZmaXggb2Ygc291cmNlIGZpbGVuYW1lcy4KK3NvdXJjZV9zdWZmaXggPSAnLnR4dCcKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCittYXN0ZXJfZG9jID0gJ2luZGV4JworCisjIEdlbmVyYWwgc3Vic3RpdHV0aW9ucy4KK3Byb2plY3QgPSAnUGFzdGUnCitjb3B5cmlnaHQgPSAnMjAwOCwgSWFuIEJpY2tpbmcnCisKKyMgVGhlIGRlZmF1bHQgcmVwbGFjZW1lbnRzIGZvciB8dmVyc2lvbnwgYW5kIHxyZWxlYXNlfCwgYWxzbyB1c2VkIGluIHZhcmlvdXMKKyMgb3RoZXIgcGxhY2VzIHRocm91Z2hvdXQgdGhlIGJ1aWx0IGRvY3VtZW50cy4KKyMKKyMgVGhlIHNob3J0IFguWSB2ZXJzaW9uLgordmVyc2lvbiA9ICcxLjcnCisjIFRoZSBmdWxsIHZlcnNpb24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCityZWxlYXNlID0gJzEuNy41LjEnCisKKyMgVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciByZXBsYWNpbmcgfHRvZGF5fDogZWl0aGVyLCB5b3Ugc2V0IHRvZGF5IHRvIHNvbWUKKyMgbm9uLWZhbHNlIHZhbHVlLCB0aGVuIGl0IGlzIHVzZWQ6CisjdG9kYXkgPSAnJworIyBFbHNlLCB0b2RheV9mbXQgaXMgdXNlZCBhcyB0aGUgZm9ybWF0IGZvciBhIHN0cmZ0aW1lIGNhbGwuCit0b2RheV9mbXQgPSAnJUIgJWQsICVZJworCisjIExpc3Qgb2YgZG9jdW1lbnRzIHRoYXQgc2hvdWxkbid0IGJlIGluY2x1ZGVkIGluIHRoZSBidWlsZC4KK3VudXNlZF9kb2NzID0gWydpbmNsdWRlL2NvbnRhY3QudHh0JywgJ2luY2x1ZGUvcmVmZXJlbmNlX2hlYWRlci50eHQnXQorCisjIElmIHRydWUsICcoKScgd2lsbCBiZSBhcHBlbmRlZCB0byA6ZnVuYzogZXRjLiBjcm9zcy1yZWZlcmVuY2UgdGV4dC4KKyNhZGRfZnVuY3Rpb25fcGFyZW50aGVzZXMgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgdGhlIGN1cnJlbnQgbW9kdWxlIG5hbWUgd2lsbCBiZSBwcmVwZW5kZWQgdG8gYWxsIGRlc2NyaXB0aW9uCisjIHVuaXQgdGl0bGVzIChzdWNoIGFzIC4uIGZ1bmN0aW9uOjopLgorI2FkZF9tb2R1bGVfbmFtZXMgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgc2VjdGlvbmF1dGhvciBhbmQgbW9kdWxlYXV0aG9yIGRpcmVjdGl2ZXMgd2lsbCBiZSBzaG93biBpbiB0aGUKKyMgb3V0cHV0LiBUaGV5IGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQuCisjc2hvd19hdXRob3JzID0gRmFsc2UKKworIyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdobGlnaHRpbmcpIHN0eWxlIHRvIHVzZS4KK3B5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcKKworCisjIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0CisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgVGhlIHN0eWxlIHNoZWV0IHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiBBIGZpbGUgb2YgdGhhdCBuYW1lCisjIG11c3QgZXhpc3QgZWl0aGVyIGluIFNwaGlueCcgc3RhdGljLyBwYXRoLCBvciBpbiBvbmUgb2YgdGhlIGN1c3RvbSBwYXRocworIyBnaXZlbiBpbiBodG1sX3N0YXRpY19wYXRoLgoraHRtbF9zdHlsZSA9ICdkZWZhdWx0LmNzcycKKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0cykgaGVyZSwKKyMgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmlsZXMsCisjIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNzcyIuCitodG1sX3N0YXRpY19wYXRoID0gWydfc3RhdGljJ10KKworIyBJZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBvbjonIHRpbWVzdGFtcCBpcyBpbnNlcnRlZCBhdCBldmVyeSBwYWdlIGJvdHRvbSwKKyMgdXNpbmcgdGhlIGdpdmVuIHN0cmZ0aW1lIGZvcm1hdC4KK2h0bWxfbGFzdF91cGRhdGVkX2ZtdCA9ICclYiAlZCwgJVknCisKKyMgSWYgdHJ1ZSwgU21hcnR5UGFudHMgd2lsbCBiZSB1c2VkIHRvIGNvbnZlcnQgcXVvdGVzIGFuZCBkYXNoZXMgdG8KKyMgdHlwb2dyYXBoaWNhbGx5IGNvcnJlY3QgZW50aXRpZXMuCisjaHRtbF91c2Vfc21hcnR5cGFudHMgPSBUcnVlCisKKyMgQ29udGVudCB0ZW1wbGF0ZSBmb3IgdGhlIGluZGV4IHBhZ2UuCisjaHRtbF9pbmRleCA9ICcnCisKKyMgQ3VzdG9tIHNpZGViYXIgdGVtcGxhdGVzLCBtYXBzIGRvY3VtZW50IG5hbWVzIHRvIHRlbXBsYXRlIG5hbWVzLgorI2h0bWxfc2lkZWJhcnMgPSB7fQorCisjIEFkZGl0aW9uYWwgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHRvIHBhZ2VzLCBtYXBzIHBhZ2UgbmFtZXMgdG8KKyMgdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9hZGRpdGlvbmFsX3BhZ2VzID0ge30KKworIyBJZiBmYWxzZSwgbm8gbW9kdWxlIGluZGV4IGlzIGdlbmVyYXRlZC4KKyNodG1sX3VzZV9tb2RpbmRleCA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgcmVTVCBzb3VyY2VzIGFyZSBpbmNsdWRlZCBpbiB0aGUgSFRNTCBidWlsZCBhcyBfc291cmNlcy88bmFtZT4uCisjaHRtbF9jb3B5X3NvdXJjZSA9IFRydWUKKworIyBPdXRwdXQgZmlsZSBiYXNlIG5hbWUgZm9yIEhUTUwgaGVscCBidWlsZGVyLgoraHRtbGhlbHBfYmFzZW5hbWUgPSAnUGFzdGVkb2MnCisKKworIyBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgVGhlIHBhcGVyIHNpemUgKCdsZXR0ZXInIG9yICdhNCcpLgorI2xhdGV4X3BhcGVyX3NpemUgPSAnbGV0dGVyJworCisjIFRoZSBmb250IHNpemUgKCcxMHB0JywgJzExcHQnIG9yICcxMnB0JykuCisjbGF0ZXhfZm9udF9zaXplID0gJzEwcHQnCisKKyMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwgZG9jdW1lbnQgY2xhc3MgW2hvd3RvL21hbnVhbF0pLgorI2xhdGV4X2RvY3VtZW50cyA9IFtdCisKKyMgQWRkaXRpb25hbCBzdHVmZiBmb3IgdGhlIExhVGVYIHByZWFtYmxlLgorI2xhdGV4X3ByZWFtYmxlID0gJycKKworIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgorI2xhdGV4X2FwcGVuZGljZXMgPSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2xhdGV4X3VzZV9tb2RpbmRleCA9IFRydWUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2RlZmF1bHQuY3NzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZGVmYXVsdC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU3MGZiNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2RlZmF1bHQuY3NzCkBAIC0wLDAgKzEsMzk0IEBACisvKgorOkF1dGhvcjogRGF2aWQgR29vZGdlciwgSWFuIEJpY2tpbmcKKzpDb250YWN0OiBpYW5iQGNvbG9yc3R1ZHkuY29tCis6ZGF0ZTogJERhdGU6IDIwMDMvMTEvMDEgMjA6MzU6NDUgJAorOnZlcnNpb246ICRSZXZpc2lvbjogMS4zICQKKzpjb3B5cmlnaHQ6IFRoaXMgc3R5bGVzaGVldCBoYXMgYmVlbiBwbGFjZWQgaW4gdGhlIHB1YmxpYyBkb21haW4uCisKK0EgbW9kaWZpY2F0aW9uIG9mIHRoZSBkZWZhdWx0IGNhc2NhZGluZyBzdHlsZSBzaGVldCAodi4xLjMpIGZvciB0aGUKK0hUTUwgb3V0cHV0IG9mIERvY3V0aWxzLiAgCisqLworCitib2R5IHsKKyAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOworfQorCitlbSwgaSB7CisgIC8qIFR5cGljYWxseSBzZXJpZiBmb250cyBoYXZlIG11Y2ggbmljZXIgaXRhbGljcyAqLworICBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWY7Cit9CisKK2xpIHsKKyAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7Cit9CisKK2EudGFyZ2V0IHsKKyAgY29sb3I6IGJsdWU7Cit9CisKK2EudG9jLWJhY2tyZWYgeworICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CisgIGNvbG9yOiBibGFjazsKK30KKworYS50b2MtYmFja3JlZjpob3ZlciB7CisgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7Cit9CisKK2E6aG92ZXIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOworfQorCitoMSBhOmhvdmVyLCBoMiBhOmhvdmVyLCBoMyBhOmhvdmVyLCBoNCBhOmhvdmVyLCBoNSBhOmhvdmVyLCBoNjpob3ZlciB7IAorICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OworfQorCitjaXRlIHsKKyAgZm9udC1zdHlsZTogbm9ybWFsOworICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICBmb250LXdlaWdodDogYm9sZDsKK30KKworZGQgeworICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKK30KKworZGl2LmFic3RyYWN0IHsKKyAgbWFyZ2luOiAyZW0gNWVtOworfQorCitkaXYuYWJzdHJhY3QgcC50b3BpYy10aXRsZSB7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKK2Rpdi5hdHRlbnRpb24sIGRpdi5jYXV0aW9uLCBkaXYuZGFuZ2VyLCBkaXYuZXJyb3IsIGRpdi5oaW50LAorZGl2LmltcG9ydGFudCwgZGl2Lm5vdGUsIGRpdi50aXAsIGRpdi53YXJuaW5nIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKKyAgd2lkdGg6IDQwJTsKKyAgYm9yZGVyOiBtZWRpdW0gb3V0c2V0OworICBwYWRkaW5nOiAzcHg7CisgIGZsb2F0OiByaWdodAorfQorCitkaXYuYXR0ZW50aW9uIHAuYWRtb25pdGlvbi10aXRsZSwgZGl2LmNhdXRpb24gcC5hZG1vbml0aW9uLXRpdGxlLAorZGl2LmRhbmdlciBwLmFkbW9uaXRpb24tdGl0bGUsIGRpdi5lcnJvciBwLmFkbW9uaXRpb24tdGl0bGUsCitkaXYud2FybmluZyBwLmFkbW9uaXRpb24tdGl0bGUgeworICBjb2xvcjogI2MwMDsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7CisgIGRpc3BsYXk6IGJsb2NrOworICBtYXJnaW46IDA7Cit9CisKK2Rpdi5oaW50IHAuYWRtb25pdGlvbi10aXRsZSwgZGl2LmltcG9ydGFudCBwLmFkbW9uaXRpb24tdGl0bGUsCitkaXYubm90ZSBwLmFkbW9uaXRpb24tdGl0bGUsIGRpdi50aXAgcC5hZG1vbml0aW9uLXRpdGxlIHsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7CisgIGRpc3BsYXk6IGJsb2NrOworICBtYXJnaW46IDA7Cit9CisKK2Rpdi5kZWRpY2F0aW9uIHsKKyAgbWFyZ2luOiAyZW0gNWVtOworICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKK30KKworZGl2LmRlZGljYXRpb24gcC50b3BpYy10aXRsZSB7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBmb250LXN0eWxlOiBub3JtYWw7Cit9CisKK2Rpdi5maWd1cmUgeworICBtYXJnaW4tbGVmdDogMmVtOworfQorCitkaXYuZm9vdGVyLCBkaXYuaGVhZGVyIHsKKyAgZm9udC1zaXplOiBzbWFsbGVyOworfQorCitkaXYuc3lzdGVtLW1lc3NhZ2VzIHsKKyAgbWFyZ2luOiA1ZW07Cit9CisKK2Rpdi5zeXN0ZW0tbWVzc2FnZXMgaDEgeworICBjb2xvcjogcmVkOworfQorCitkaXYuc3lzdGVtLW1lc3NhZ2UgeworICBib3JkZXI6IG1lZGl1bSBvdXRzZXQ7CisgIHBhZGRpbmc6IDFlbTsKK30KKworZGl2LnN5c3RlbS1tZXNzYWdlIHAuc3lzdGVtLW1lc3NhZ2UtdGl0bGUgeworICBjb2xvcjogcmVkOworICBmb250LXdlaWdodDogYm9sZDsKK30KKworZGl2LnRvcGljIHsKKyAgbWFyZ2luOiAyZW07Cit9CisKK2gxLCBoMiwgaDMsIGg0LCBoNSwgaDYgeworICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKKyAgYm9yZGVyOiB0aGluIHNvbGlkIGJsYWNrOworICAvKiBUaGlzIG1ha2VzIHRoZSBib3JkZXJzIHJvdW5kZWQgb24gTW96aWxsYSwgd2hpY2ggcGxlYXNlcyBtZSAqLworICAtbW96LWJvcmRlci1yYWRpdXM6IDhweDsKKyAgcGFkZGluZzogNHB4OworfQorCitoMSB7CisgIGJhY2tncm91bmQtY29sb3I6ICM0NDk7CisgIGNvbG9yOiAjZmZmOworICBib3JkZXI6IG1lZGl1bSBzb2xpZCBibGFjazsKK30KKworaDEgYS50b2MtYmFja3JlZiwgaDIgYS50b2MtYmFja3JlZiB7IAorICBjb2xvcjogI2ZmZjsKK30KKworaDIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2OworICBjb2xvcjogI2ZmZjsKKyAgYm9yZGVyOiBtZWRpdW0gc29saWQgYmxhY2s7Cit9CisKK2gzLCBoNCwgaDUsIGg2IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKKyAgY29sb3I6ICMwMDA7Cit9CisKK2gzIGEudG9jLWJhY2tyZWYsIGg0IGEudG9jLWJhY2tyZWYsIGg1IGEudG9jLWJhY2tyZWYsIAoraDYgYS50b2MtYmFja3JlZiB7IAorICBjb2xvcjogIzAwMDsKK30KKworaDEudGl0bGUgeworICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgIGJhY2tncm91bmQtY29sb3I6ICM0NDk7CisgIGNvbG9yOiAjZmZmOworICBib3JkZXI6IHRoaWNrIHNvbGlkIGJsYWNrOworICAtbW96LWJvcmRlci1yYWRpdXM6IDIwcHg7Cit9CisKK2gyLnN1YnRpdGxlIHsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCitociB7CisgIHdpZHRoOiA3NSU7Cit9CisKK29sLnNpbXBsZSwgdWwuc2ltcGxlIHsKKyAgbWFyZ2luLWJvdHRvbTogMWVtOworfQorCitvbC5hcmFiaWMgeworICBsaXN0LXN0eWxlOiBkZWNpbWFsOworfQorCitvbC5sb3dlcmFscGhhIHsKKyAgbGlzdC1zdHlsZTogbG93ZXItYWxwaGE7Cit9CisKK29sLnVwcGVyYWxwaGEgeworICBsaXN0LXN0eWxlOiB1cHBlci1hbHBoYTsKK30KKworb2wubG93ZXJyb21hbiB7CisgIGxpc3Qtc3R5bGU6IGxvd2VyLXJvbWFuOworfQorCitvbC51cHBlcnJvbWFuIHsKKyAgbGlzdC1zdHlsZTogdXBwZXItcm9tYW47Cit9CisKK3AuY2FwdGlvbiB7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKK30KKworcC5jcmVkaXRzIHsKKyAgZm9udC1zdHlsZTogaXRhbGljOworICBmb250LXNpemU6IHNtYWxsZXI7Cit9CisKK3AuZmlyc3QgeworICBtYXJnaW4tdG9wOiAwOworfQorCitwLmxhYmVsIHsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworcC50b3BpYy10aXRsZSB7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCitwcmUuYWRkcmVzcyB7CisgIG1hcmdpbi1ib3R0b206IDA7CisgIG1hcmdpbi10b3A6IDA7CisgIGZvbnQtZmFtaWx5OiBzZXJpZjsKKyAgZm9udC1zaXplOiAxMDAlOworfQorCitwcmUubGluZS1ibG9jayB7CisgIGZvbnQtZmFtaWx5OiBzZXJpZjsKKyAgZm9udC1zaXplOiAxMDAlOworfQorCitwcmUubGl0ZXJhbC1ibG9jaywgcHJlLmRvY3Rlc3QtYmxvY2sgeworICBtYXJnaW4tbGVmdDogMmVtOworICBtYXJnaW4tcmlnaHQ6IDJlbTsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKKyAgYm9yZGVyOiB0aGluIGJsYWNrIHNvbGlkOworICBwYWRkaW5nOiA1cHg7Cit9CisKK3NwYW4uY2xhc3NpZmllciB7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICBmb250LXN0eWxlOiBvYmxpcXVlOworfQorCitzcGFuLmNsYXNzaWZpZXItZGVsaW1pdGVyIHsKKyAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCitzcGFuLmludGVycHJldGVkIHsKKyAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7Cit9CisKK3NwYW4ub3B0aW9uLWFyZ3VtZW50IHsKKyAgZm9udC1zdHlsZTogaXRhbGljOworfQorCitzcGFuLnByZSB7CisgIHdoaXRlLXNwYWNlOiBwcmU7Cit9CisKK3NwYW4ucHJvYmxlbWF0aWMgeworICBjb2xvcjogcmVkOworfQorCit0YWJsZSB7CisgIG1hcmdpbi10b3A6IDAuNWVtOworICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKK30KKwordGFibGUuY2l0YXRpb24geworICBib3JkZXItbGVmdDogc29saWQgdGhpbiBncmF5OworICBwYWRkaW5nLWxlZnQ6IDAuNWV4Cit9CisKK3RhYmxlLmRvY2luZm8geworICBtYXJnaW46IDJlbSA0ZW07Cit9CisKK3RhYmxlLmZvb3Rub3RlIHsKKyAgYm9yZGVyLWxlZnQ6IHNvbGlkIHRoaW4gYmxhY2s7CisgIHBhZGRpbmctbGVmdDogMC41ZXg7Cit9CisKK3RkLCB0aCB7CisgIHBhZGRpbmctbGVmdDogMC41ZW07CisgIHBhZGRpbmctcmlnaHQ6IDAuNWVtOworICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworfQorCit0ZCA+IHA6Zmlyc3QtY2hpbGQsIHRoID4gcDpmaXJzdC1jaGlsZCB7CisgIG1hcmdpbi10b3A6IDBlbTsKK30KKwordGguZG9jaW5mby1uYW1lLCB0aC5maWVsZC1uYW1lIHsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIHRleHQtYWxpZ246IGxlZnQ7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisKK2gxIHR0LCBoMiB0dCwgaDMgdHQsIGg0IHR0LCBoNSB0dCwgaDYgdHQgeworICBmb250LXNpemU6IDEwMCU7Cit9CisKK2NvZGUsIHR0IHsKKyAgY29sb3I6ICMwMDY7Cit9CisKK3VsLmF1dG8tdG9jIHsKKyAgbGlzdC1zdHlsZS10eXBlOiBub25lOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERvY3Rlc3QgZW1iZWRkZWQgZXhhbXBsZXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3Bhbi5kb2N0ZXN0LXVybCB7IAorICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICBib3JkZXItdG9wOiAycHggb3V0c2V0ICM2NjY7CisgIGJvcmRlci1sZWZ0OiAycHggb3V0c2V0ICM2NjY7CisgIGJvcmRlci1yaWdodDogMnB4IG91dHNldCAjNjY2OworICBwYWRkaW5nOiAwLjI1ZW07Cit9CisKK2Rpdi5kb2N0ZXN0LWV4YW1wbGUgeyAKKyAgYm9yZGVyOiBvdXRzZXQgNXB4ICM2NjY7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7CisgIGZvbnQtZmFtaWx5OiBkZWZhdWx0OworICBwYWRkaW5nOiAwLjVlbTsKK30KKworZGl2LmRvY3Rlc3QtZXhhbXBsZSBoMSB7IAorICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OworICBib3JkZXI6IG5vbmU7CisgIGNvbG9yOiBpbmhlcml0OworICBmb250LWZhbWlseTogZGVmYXVsdDsKK30KKworZGl2LmRvY3Rlc3QtZXhhbXBsZSB0dCB7IAorICBjb2xvcjogaW5oZXJpdDsKK30KKworZGl2LmRvY3Rlc3Qtc3RhdHVzIHsgCisgIGJhY2tncm91bmQtY29sb3I6ICMwNjA7CisgIGNvbG9yOiAjZmZmOworfQorCitzcGFuLmRvY3Rlc3QtaGVhZGVyIHsgCisgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Cit9CisKK3ByZS5kb2N0ZXN0LWVycm9ycyB7IAorICBib3JkZXI6IG5vbmU7CisgIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CisgIGNvbG9yOiAjNjAwOworfQorCitkaXYuc291cmNlLWNvZGUgeyAKKyAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKKyAgYm9yZGVyOiBpbnNldCAjOTk5IDNweDsKKyAgb3ZlcmZsb3c6IGF1dG87Cit9CisKK3ByZS5zb3VyY2UtY29kZSB7IAorICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOworICBib3JkZXI6IGluc2V0ICM5OTkgM3B4OworICBvdmVyZmxvdzogYXV0bzsKKyAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgY29sb3I6ICNmZmY7Cit9CisKK3NwYW4uc291cmNlLWZpbGVuYW1lIHsgCisgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CisgIGJvcmRlci10b3A6IDJweCBvdXRzZXQgIzk5OTsKKyAgYm9yZGVyLWxlZnQ6IDJweCBvdXRzZXQgIzk5OTsKKyAgYm9yZGVyLXJpZ2h0OiAycHggb3V0c2V0ICM5OTk7CisgIHBhZGRpbmc6IDAuMjVlbTsKKyAgY29sb3I6ICNmZmYKK30KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZGV2ZWxvcGVyLWZlYXR1cmVzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2RldmVsb3Blci1mZWF0dXJlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAzZDQxOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2RldmVsb3Blci1mZWF0dXJlcy50eHQKQEAgLTAsMCArMSwxNDggQEAKK0ZlYXR1cmVzCis9PT09PT09PQorCitUZXN0aW5nCistLS0tLS0tCisKKyogQSBmaXh0dXJlIGZvciB0ZXN0aW5nIFdTR0kgYXBwbGljYXRpb25zIGNvbnZlbmllbnRseSBhbmQgaW4tcHJvY2VzcywKKyAgaW4gOmNsYXNzOmBwYXN0ZS5maXh0dXJlLlRlc3RBcHBgCisKKyogQSBmaXh0dXJlIGZvciB0ZXN0aW5nIGNvbW1hbmQtbGluZSBhcHBsaWNhdGlvbnMsIGFsc28gaW4KKyAgOmNsYXNzOmBwYXN0ZS5maXh0dXJlLlRlc3RGaWxlRW52aXJvbm1lbnRgCisKKyogQ2hlY2sgY29tcG9uZW50cyBmb3IgV1NHSS1jb21wbGlhbmNlIGluIDptb2Q6YHBhc3RlLmxpbnRgCisKKyogQ2hlY2sgZmlsZXN5c3RlbSBjaGFuZ2VzLCB3aXRoIDptb2Q6YHBhc3RlLmRlYnVnLmZzZGlmZmAKKworU2VydmVyCistLS0tLS0KKworKiBBIHRocmVhZGVkIEhUVFAgc2VydmVyIGluIDptb2Q6YHBhc3RlLmh0dHBzZXJ2ZXJgCisKKyogQSB0b29sIGZvciBzZWVpbmcgYW5kIGtpbGxpbmcgZXJyYW50IHRocmVhZHMgaW4gdGhlIEhUVFAgc2VydmVyLCBpbgorICA6bW9kOmBwYXN0ZS5kZWJ1Zy53YXRjaHRocmVhZHNgCisKK0Rpc3BhdGNoaW5nCistLS0tLS0tLS0tLQorCisqIENoYWluIGFuZCBjYXNjYWRlIFdTR0kgYXBwbGljYXRpb25zIChyZXR1cm5pbmcgdGhlIGZpcnN0IG5vbi1lcnJvcgorICByZXNwb25zZSkgaW4gOm1vZDpgcGFzdGUuY2FzY2FkZWAKKworKiBEaXNwYXRjaCB0byBzZXZlcmFsIFdTR0kgYXBwbGljYXRpb25zIGJhc2VkIG9uIFVSTCBwcmVmaXhlcywgaW4KKyAgOm1vZDpgcGFzdGUudXJsbWFwYAorCisqIEFsbG93IGFwcGxpY2F0aW9ucyB0byBtYWtlIHN1YnJlcXVlc3RzIGFuZCBmb3J3YXJkIHJlcXVlc3RzCisgIGludGVybmFsbHksIGluIDptb2Q6YHBhc3RlLnJlY3Vyc2l2ZWAKKworKiBSZWRpcmVjdCBlcnJvciBwYWdlcyAoZS5nLiwgNDA0IE5vdCBGb3VuZCkgdG8gY3VzdG9tIGVycm9yIHBhZ2VzLCBpbgorICA6bW9kOmBwYXN0ZS5lcnJvcmRvY3VtZW50YC4KKworV2ViIEFwcGxpY2F0aW9uCistLS0tLS0tLS0tLS0tLS0KKworKiBFYXNpbHkgZGVhbCB3aXRoIGluY29taW5nIHJlcXVlc3RzIGFuZCBzZW5kaW5nIGEgcmVzcG9uc2UgaW4KKyAgOm1vZDpgcGFzdGUud3NnaXdyYXBwZXJzYAorCisqIFdvcmsgZGlyZWN0bHkgd2l0aCB0aGUgV1NHSSBlbnZpcm9ubWVudCBpbiA6bW9kOmBwYXN0ZS5yZXF1ZXN0YAorCisqIFJ1biBDR0kgcHJvZ3JhbXMgYXMgV1NHSSBhcHBsaWNhdGlvbnMgaW4gOm1vZDpgcGFzdGUuY2dpYXBwYAorCisqIFRyYXZlcnNlIGZpbGVzIGFuZCBsb2FkIFdTR0kgYXBwbGljYXRpb25zIGZyb20gYGAucHlgYCBmaWxlcyAob3IKKyAgc3RhdGljIGZpbGVzKSwgaW4gOm1vZDpgcGFzdGUudXJscGFyc2VyYAorCisqIFNlcnZlIHN0YXRpYyBkaXJlY3RvcmllcyBvZiBmaWxlcywgYWxzbyBpbiA6bW9kOmBwYXN0ZS51cmxwYXJzZXJgOyBhbHNvCisgIHNlcnZlIHVzaW5nIHRoZSBTZXR1cHRvb2xzIGBgcGtnX3Jlc291cmNlc2BgIHJlc291cmNlIEFQSS4KKworKiBQcm94eSB0byBvdGhlciBzZXJ2ZXJzLCB0cmVhdGluZyBleHRlcm5hbCBIVFRQIHNlcnZlcnMgYXMgV1NHSQorICBhcHBsaWNhdGlvbnMsIGluIDptb2Q6YHBhc3RlLnByb3h5YC4KKworKiBTZXJ2ZSBmaWxlcyAod2l0aCBzdXBwb3J0IGZvciBgYElmLU1vZGlmaWVkLVNpbmNlYGAsIGV0YykgaW4KKyAgOm1vZDpgcGFzdGUuZmlsZWFwcGAKKworVG9vbHMKKy0tLS0tCisKKyogQ2F0Y2ggSFRUUC1yZWxhdGVkIGV4Y2VwdGlvbnMgKGUuZy4sIGBgSFRUUE5vdEZvdW5kYGApIGFuZCB0dXJuIHRoZW0KKyAgaW50byBwcm9wZXIgcmVzcG9uc2VzIGluIDptb2Q6YHBhc3RlLmh0dHBleGNlcHRpb25zYAorCisqIE1hbmFnZSBIVFRQIGhlYWRlciBmaWVsZHMgd2l0aCA6bW9kOmBwYXN0ZS5odHRwaGVhZGVyc2AKKworKiBIYW5kbGUgYXV0aGVudGljYXRpb24vaWRlbnRpZmljYXRpb24gb2YgcmVxdWVzdHMgaW4gOm1vZDpgcGFzdGUuYXV0aGAKKworKiBDcmVhdGUgc2Vzc2lvbnMgaW4gOm1vZDpgcGFzdGUuc2Vzc2lvbmAgYW5kIDptb2Q6YHBhc3RlLmZsdXBfc2Vzc2lvbmAKKworKiBHemlwIHJlc3BvbnNlcyBpbiA6bW9kOmBwYXN0ZS5nemlwcGVyYAorCisqIEEgd2lkZSB2YXJpZXR5IG9mIHJvdXRpbmVzIGZvciBtYW5pcHVsYXRpbmcgV1NHSSByZXF1ZXN0cyBhbmQKKyAgcHJvZHVjaW5nIHJlc3BvbnNlcywgaW4gOm1vZDpgcGFzdGUucmVxdWVzdGAsIDptb2Q6YHBhc3RlLnJlc3BvbnNlYCBhbmQKKyAgOm1vZDpgcGFzdGUud3NnaWxpYmAuCisKKyogQ3JlYXRlIEFwYWNoZS1zdHlsZSBsb2dzIGluIDptb2Q6YHBhc3RlLnRyYW5zbG9nZ2VyYAorCisqIEhhbmR5IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHdyYXBwZXJzIGluIDptb2Q6YHBhc3RlLndzZ2l3cmFwcGVyc2AKKworKiBIYW5kbGluZyBvZiByZXF1ZXN0LWxvY2FsIG1vZHVsZSBnbG9iYWxzIHNhbmVseSBpbiA6bW9kOmBwYXN0ZS5yZWdpc3RyeWAKKworQXV0aGVudGljYXRpb24KKy0tLS0tLS0tLS0tLS0tCisKKyogQXV0aGVudGljYXRpb24gdXNpbmcgY29va2llcyBpbiA6bW9kOmBwYXN0ZS5hdXRoLmNvb2tpZWAgYW5kCisgIDptb2Q6YHBhc3RlLmF1dGguYXV0aF90a3RgOyBsb2dpbiBmb3JtIGluIDptb2Q6YHBhc3RlLmF1dGguZm9ybWAKKworKiBBdXRoZW50aWNhdGlvbiB1c2luZyBgT3BlbklEIDxodHRwOi8vb3BlbmlkLm5ldC8+YF8gaW4KKyAgOm1vZDpgcGFzdGUuYXV0aC5vcGVuX2lkYCwgdXNpbmcgYENBUworICA8aHR0cDovL3d3dy5qYS1zaWcub3JnL3Byb2R1Y3RzL2Nhcy8+YF8gaW4gOm1vZDpgcGFzdGUuYXV0aC5jYXNgCisKKyogSFRUUCBhdXRoZW50aWNhdGlvbiBpbiA6bW9kOmBwYXN0ZS5hdXRoLmJhc2ljYCBhbmQKKyAgOm1vZDpgcGFzdGUuYXV0aC5kaWdlc3RgCisKKyogRGlzcGF0Y2ggdG8gZGlmZmVyZW50IGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgYmFzZWQgb24gVXNlci1BZ2VudCwgaW4KKyAgOm1vZDpgcGFzdGUuYXV0aC5tdWx0aWAKKworKiBHcmFudCByb2xlcyBiYXNlZCBvbiBJUCBhZGRyZXNzZXMsIGluIDptb2Q6YHBhc3RlLmF1dGguZ3JhbnRpcGAKKworRGVidWdnaW5nIEZpbHRlcnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKyogQ2F0Y2ggKG9wdGlvbmFsbHkgZW1haWwpIGVycm9ycyB3aXRoIGV4dGVuZGVkIHRyYWNlYmFja3MgKHVzaW5nCisgIFpvcGUvWlBUIGNvbnZlbnRpb25zKSBpbiA6bW9kOmBwYXN0ZS5leGNlcHRpb25zYAorCisqIER1cmluZyBkZWJ1Z2dpbmcsIHNob3cgdHJhY2ViYWNrcyB3aXRoIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggc3RhY2sKKyAgZnJhbWUsIGluY2x1ZGluZyBhbiBpbnRlcmFjdGl2ZSBwcm9tcHQgdGhhdCBydW5zIGluIHRoZSBpbmRpdmlkdWFsCisgIHN0YWNrIGZyYW1lcywgaW4gOm1vZDpgcGFzdGUuZXZhbGV4Y2VwdGlvbmAuCisKKyogQ2F0Y2ggZXJyb3JzIHByZXNlbnRpbmcgYSBgY2dpdGIKKyAgPGh0dHA6Ly9weXRob24ub3JnL2RvYy9jdXJyZW50L2xpYi9tb2R1bGUtY2dpdGIuaHRtbD5gXy1iYXNlZAorICBvdXRwdXQsIGluIDptb2Q6YHBhc3RlLmNnaXRiX2NhdGNoZXJgLgorCisqIFByb2ZpbGUgZWFjaCByZXF1ZXN0IGFuZCBhcHBlbmQgcHJvZmlsaW5nIGluZm9ybWF0aW9uIHRvIHRoZSBIVE1MLAorICBpbiA6bW9kOmBwYXN0ZS5kZWJ1Zy5wcm9maWxlYAorCisqIENhcHR1cmUgYGBwcmludGBgIG91dHB1dCBhbmQgcHJlc2VudCBpdCBpbiB0aGUgYnJvd3NlciBmb3IKKyAgZGVidWdnaW5nLCBpbiA6bW9kOmBwYXN0ZS5kZWJ1Zy5wcmludHNgCisKKyogVmFsaWRhdGUgYWxsIEhUTUwgb3V0cHV0IGZyb20gYXBwbGljYXRpb25zIHVzaW5nIHRoZSBgV0RHIFZhbGlkYXRvcgorICA8aHR0cDovL3d3dy5odG1saGVscC5jb20vdG9vbHMvdmFsaWRhdG9yLz5gXywgYXBwZW5kaW5nIGFueSBlcnJvcnMKKyAgb3Igd2FybmluZ3MgdG8gdGhlIHBhZ2UsIGluIDptb2Q6YHBhc3RlLmRlYnVnLndkZ192YWxpZGF0b3JgCisKK090aGVyIFRvb2xzCistLS0tLS0tLS0tLQorCisqIEEgZmlsZSBtb25pdG9yIHRvIGFsbG93IHJlc3RhcnRpbmcgdGhlIHNlcnZlciB3aGVuIGZpbGVzIGhhdmUgYmVlbgorICB1cGRhdGVkIChmb3IgYXV0b21hdGljIHJlc3RhcnRpbmcgd2hlbiBlZGl0aW5nIGNvZGUpIGluCisgIDptb2Q6YHBhc3RlLnJlbG9hZGVyYAorCisqIEEgY2xhc3MgZm9yIGdlbmVyYXRpbmcgYW5kIHRyYXZlcnNpbmcgVVJMcywgYW5kIGNyZWF0aW5nIGFzc29jaWF0ZWQKKyAgSFRNTCBjb2RlLCBpbiA6bW9kOmBwYXN0ZS51cmxgCisKKyogQSBzbWFsbCB0ZW1wbGF0aW5nIGxhbmd1YWdlIChmb3IgaW50ZXJuYWwgdXNlKSBpbgorICA6bW9kOmBwYXN0ZS51dGlsLnRlbXBsYXRlYAorCisqIEEgY2xhc3MgdG8gaGVscCB3aXRoIGxvb3BzIGluIHRlbXBsYXRlcywgaW4gOm1vZDpgcGFzdGUudXRpbC5sb29wZXJgCisKKyogSW1wb3J0IG1vZHVsZXMgYW5kIG9iamVjdHMgZ2l2ZW4gYSBzdHJpbmcsIGluCisgIDptb2Q6YHBhc3RlLnV0aWwuaW1wb3J0X3N0cmluZ2AKKworKiBPcmRlcmVkIGRpY3Rpb25hcnkgdGhhdCBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMgd2l0aCB0aGUgc2FtZSBrZXksCisgIGluIDptb2Q6YHBhc3RlLnV0aWwubXVsdGlkaWN0YAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9kby1pdC15b3Vyc2VsZi1mcmFtZXdvcmsudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZG8taXQteW91cnNlbGYtZnJhbWV3b3JrLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTc3ZWMwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZG8taXQteW91cnNlbGYtZnJhbWV3b3JrLnR4dApAQCAtMCwwICsxLDUzOCBAQAorQSBEby1JdC1Zb3Vyc2VsZiBGcmFtZXdvcmsKKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKKzphdXRob3I6IElhbiBCaWNraW5nIDxpYW5iQGNvbG9yc3R1ZHkuY29tPgorOnJldmlzaW9uOiAkUmV2JAorOmRhdGU6ICRMYXN0Q2hhbmdlZERhdGUkCisKK1RoaXMgdHV0b3JpYWwgaGFzIGJlZW4gdHJhbnNsYXRlZCBgaW50byBQb3J0dWd1ZXNlCis8aHR0cDovL21vbnRlZ2FzcHBhLmJsb2dzcG90LmNvbS8yMDA3LzA2L3VtLWZyYW1ld29yay1mYWEtdm9jLW1lc21vLmh0bWw+YF8uCisKK0EgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGFydGljbGUgaXMgYXZhaWxhYmxlIGB1c2luZyBXZWJPYgorPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvd2Vib2IvZG8taXQteW91cnNlbGYuaHRtbD5gXy4KKworLi4gY29udGVudHM6OgorCisuLiBjb21tZW50czoKKworICAgRXhwbGFpbiBTQ1JJUFRfTkFNRS9QQVRIX0lORk8gYmV0dGVyCisKK0ludHJvZHVjdGlvbiBhbmQgQXVkaWVuY2UKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhpcyBzaG9ydCB0dXRvcmlhbCBpcyBtZWFudCB0byB0ZWFjaCB5b3UgYSBsaXR0bGUgYWJvdXQgV1NHSSwgYW5kIGFzCithbiBleGFtcGxlIGEgYml0IGFib3V0IHRoZSBhcmNoaXRlY3R1cmUgdGhhdCBQYXN0ZSBoYXMgZW5hYmxlZCBhbmQKK2VuY291cmFnZXMuCisKK1RoaXMgaXNuJ3QgYW4gaW50cm9kdWN0aW9uIHRvIGFsbCB0aGUgcGFydHMgb2YgUGFzdGUgLS0gaW4gZmFjdCwgd2UnbGwKK29ubHkgdXNlIGEgZmV3LCBhbmQgZXhwbGFpbiBlYWNoIHBhcnQuICBUaGlzIGlzbid0IHRvIGVuY291cmFnZQorZXZlcnlvbmUgdG8gZ28gb2ZmIGFuZCBtYWtlIHRoZWlyIG93biBmcmFtZXdvcmsgKHRob3VnaCBob25lc3RseSBJCit3b3VsZG4ndCBtaW5kKS4gIFRoZSBnb2FsIGlzIHRoYXQgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCByZWFkaW5nIHRoaXMKK3lvdSBmZWVsIG1vcmUgY29tZm9ydGFibGUgd2l0aCBzb21lIG9mIHRoZSBmcmFtZXdvcmtzIGJ1aWx0IHVzaW5nIHRoaXMKK2FyY2hpdGVjdHVyZSwgYW5kIGEgbGl0dGxlIG1vcmUgc2VjdXJlIHRoYXQgeW91IHdpbGwgdW5kZXJzdGFuZCB0aGUKK2ludGVybmFscyBpZiB5b3UgbG9vayB1bmRlciB0aGUgaG9vZC4KKworV2hhdCBpcyBXU0dJPworPT09PT09PT09PT09PQorCitBdCBpdHMgc2ltcGxlc3QgV1NHSSBpcyBhbiBpbnRlcmZhY2UgYmV0d2VlbiB3ZWIgc2VydmVycyBhbmQgd2ViCithcHBsaWNhdGlvbnMuICBXZSdsbCBleHBsYWluIHRoZSBtZWNoYW5pY3Mgb2YgV1NHSSBiZWxvdywgYnV0IGEgaGlnaGVyCitsZXZlbCB2aWV3IGlzIHRvIHNheSB0aGF0IFdTR0kgbGV0cyBjb2RlIHBhc3MgYXJvdW5kIHdlYiByZXF1ZXN0cyBpbiBhCitmYWlybHkgZm9ybWFsIHdheS4gIEJ1dCB0aGVyZSdzIG1vcmUhICBXU0dJIGlzIG1vcmUgdGhhbiBqdXN0IEhUVFAuCitJdCBtaWdodCBzZWVtIGxpa2UgaXQgaXMganVzdCAqYmFyZWx5KiBtb3JlIHRoYW4gSFRUUCwgYnV0IHRoYXQgbGl0dGxlCitiaXQgaXMgaW1wb3J0YW50OgorCisqIFlvdSBwYXNzIGFyb3VuZCBhIENHSS1saWtlIGVudmlyb25tZW50LCB3aGljaCBtZWFucyBkYXRhIGxpa2UKKyAgYGBSRU1PVEVfVVNFUmBgICh0aGUgbG9nZ2VkLWluIHVzZXJuYW1lKSBjYW4gYmUgc2VjdXJlbHkgcGFzc2VkCisgIGFib3V0LgorCisqIEEgQ0dJLWxpa2UgZW52aXJvbm1lbnQgY2FuIGJlIHBhc3NlZCBhcm91bmQgd2l0aCBtb3JlIGNvbnRleHQgLS0KKyAgc3BlY2lmaWNhbGx5IGluc3RlYWQgb2YganVzdCBvbmUgcGF0aCB5b3UgdHdvOiBgYFNDUklQVF9OQU1FYGAgKGhvdworICB3ZSBnb3QgaGVyZSkgYW5kIGBgUEFUSF9JTkZPYGAgKHdoYXQgd2UgaGF2ZSBsZWZ0KS4KKworKiBZb3UgY2FuIC0tIGFuZCBvZnRlbiBzaG91bGQgLS0gcHV0IHlvdXIgb3duIGV4dGVuc2lvbnMgaW50byB0aGUgV1NHSQorICBlbnZpcm9ubWVudC4gIFRoaXMgYWxsb3dzIGZvciBjYWxsYmFja3MsIGV4dHJhIGluZm9ybWF0aW9uLAorICBhcmJpdHJhcnkgUHl0aG9uIG9iamVjdHMsIG9yIHdoYXRldmVyIHlvdSB3YW50LiAgVGhlc2UgYXJlIHRoaW5ncworICB5b3UgY2FuJ3QgcHV0IGluIGN1c3RvbSBIVFRQIGhlYWRlcnMuCisKK1RoaXMgbWVhbnMgdGhhdCBXU0dJIGNhbiBiZSB1c2VkIG5vdCBqdXN0IGJldHdlZW4gYSB3ZWIgc2VydmVyIGFuIGFuCithcHBsaWNhdGlvbiwgYnV0IGNhbiBiZSB1c2VkIGF0IGFsbCBsZXZlbHMgZm9yIGNvbW11bmljYXRpb24uICBUaGlzCithbGxvd3Mgd2ViIGFwcGxpY2F0aW9ucyB0byBiZWNvbWUgbW9yZSBsaWtlIGxpYnJhcmllcyAtLSB3ZWxsCitlbmNhcHN1bGF0ZWQgYW5kIHJldXNhYmxlLCBidXQgc3RpbGwgd2l0aCByaWNoIHJldXNhYmxlIGZ1bmN0aW9uYWxpdHkuCisKK1dyaXRpbmcgYSBXU0dJIEFwcGxpY2F0aW9uCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgZmlyc3QgcGFydCBpcyBhYm91dCBob3cgdG8gdXNlIGBXU0dJCis8aHR0cDovL3d3dy5weXRob24ub3JnL3BlcHMvcGVwLTAzMzMuaHRtbD5gXyBhdCBpdHMgbW9zdCBiYXNpYy4gIFlvdQorY2FuIHJlYWQgdGhlIHNwZWMsIGJ1dCBJJ2xsIGRvIGEgdmVyeSBicmllZiBzdW1tYXJ5OgorCisqIFlvdSB3aWxsIGJlIHdyaXRpbmcgYSAqV1NHSSBhcHBsaWNhdGlvbiouICBUaGF0J3MgYW4gb2JqZWN0IHRoYXQKKyAgcmVzcG9uZHMgdG8gcmVxdWVzdHMuICBBbiBhcHBsaWNhdGlvbiBpcyBqdXN0IGEgY2FsbGFibGUgb2JqZWN0CisgIChsaWtlIGEgZnVuY3Rpb24pIHRoYXQgdGFrZXMgdHdvIGFyZ3VtZW50czogYGBlbnZpcm9uYGAgYW5kCisgIGBgc3RhcnRfcmVzcG9uc2VgYC4KKworKiBUaGUgZW52aXJvbm1lbnQgbG9va3MgYSBsb3QgbGlrZSBhIENHSSBlbnZpcm9ubWVudCwgd2l0aCBrZXlzIGxpa2UKKyAgYGBSRVFVRVNUX01FVEhPRGBgLCBgYEhUVFBfSE9TVGBgLCBldGMuCisKKyogVGhlIGVudmlyb25tZW50IGFsc28gaGFzIHNvbWUgc3BlY2lhbCBrZXlzIGxpa2UgYGB3c2dpLmlucHV0YGAgKHRoZQorICBpbnB1dCBzdHJlYW0sIGxpa2UgdGhlIGJvZHkgb2YgYSBQT1NUIHJlcXVlc3QpLgorCisqIGBgc3RhcnRfcmVzcG9uc2VgYCBpcyBhIGZ1bmN0aW9uIHRoYXQgc3RhcnRzIHRoZSByZXNwb25zZSAtLSB5b3UKKyAgZ2l2ZSB0aGUgc3RhdHVzIGFuZCBoZWFkZXJzIGhlcmUuCisKKyogTGFzdGx5IHRoZSBhcHBsaWNhdGlvbiByZXR1cm5zIGFuIGl0ZXJhdG9yIHdpdGggdGhlIGJvZHkgcmVzcG9uc2UKKyAgKGNvbW1vbmx5IHRoaXMgaXMganVzdCBhIGxpc3Qgb2Ygc3RyaW5ncywgb3IganVzdCBhIGxpc3QgY29udGFpbmluZworICBvbmUgc3RyaW5nIHRoYXQgaXMgdGhlIGVudGlyZSBib2R5LikKKworU28sIGhlcmUncyBhIHNpbXBsZSBhcHBsaWNhdGlvbjo6CisKKyAgICBkZWYgYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgIHJldHVybiBbJ0hlbGxvIHdvcmxkISddCisKK1dlbGwuLi4gdGhhdCdzIHVuc2F0aXNmeWluZy4gIFN1cmUsIHlvdSBjYW4gaW1hZ2luZSB3aGF0IGl0IGRvZXMsIGJ1dAoreW91IGNhbid0IGV4YWN0bHkgcG9pbnQgeW91ciB3ZWIgYnJvd3NlciBhdCBpdC4KKworVGhlcmUncyBvdGhlciBjbGVhbmVyIHdheXMgdG8gZG8gdGhpcywgYnV0IHRoaXMgdHV0b3JpYWwgaXNuJ3QgYWJvdXQKKypjbGVhbiogaXQncyBhYm91dCAqZWFzeS10by11bmRlcnN0YW5kKi4gIFNvIGp1c3QgYWRkIHRoaXMgdG8gdGhlCitib3R0b20gb2YgeW91ciBmaWxlOjoKKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIGZyb20gcGFzdGUgaW1wb3J0IGh0dHBzZXJ2ZXIKKyAgICAgICAgaHR0cHNlcnZlci5zZXJ2ZShhcHAsIGhvc3Q9JzEyNy4wLjAuMScsIHBvcnQ9JzgwODAnKQorCitOb3cgdmlzaXQgaHR0cDovL2xvY2FsaG9zdDo4MDgwIGFuZCB5b3Ugc2hvdWxkIHNlZSB5b3VyIG5ldyBhcHAuCitJZiB5b3Ugd2FudCB0byB1bmRlcnN0YW5kIGhvdyBhIFdTR0kgc2VydmVyIHdvcmtzLCBJJ2QgcmVjb21tZW5kCitsb29raW5nIGF0IHRoZSBgQ0dJIFdTR0kgc2VydmVyCis8aHR0cDovL3d3dy5weXRob24ub3JnL3BlcHMvcGVwLTAzMzMuaHRtbCN0aGUtc2VydmVyLWdhdGV3YXktc2lkZT5gXworaW4gdGhlIFdTR0kgc3BlYy4KKworQW4gSW50ZXJhY3RpdmUgQXBwCistLS0tLS0tLS0tLS0tLS0tLS0KKworVGhhdCBsYXN0IGFwcCB3YXNuJ3QgdmVyeSBpbnRlcmVzdGluZy4gIExldCdzIGF0IGxlYXN0IG1ha2UgaXQKK2ludGVyYWN0aXZlLiAgVG8gZG8gdGhhdCB3ZSdsbCBnaXZlIGEgZm9ybSwgYW5kIHRoZW4gcGFyc2UgdGhlIGZvcm0KK2ZpZWxkczo6CisKKyAgICBmcm9tIHBhc3RlLnJlcXVlc3QgaW1wb3J0IHBhcnNlX2Zvcm12YXJzCisKKyAgICBkZWYgYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgZmllbGRzID0gcGFyc2VfZm9ybXZhcnMoZW52aXJvbikKKyAgICAgICAgaWYgZW52aXJvblsnUkVRVUVTVF9NRVRIT0QnXSA9PSAnUE9TVCc6CisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnY29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpXSkKKyAgICAgICAgICAgIHJldHVybiBbJ0hlbGxvLCAnLCBmaWVsZHNbJ25hbWUnXSwgJyEnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgICAgICByZXR1cm4gWyc8Zm9ybSBtZXRob2Q9IlBPU1QiPk5hbWU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiAnCisgICAgICAgICAgICAgICAgICAgICduYW1lPSJuYW1lIj48aW5wdXQgdHlwZT0ic3VibWl0Ij48L2Zvcm0+J10KKworVGhlIGBgcGFyc2VfZm9ybXZhcnNgYCBmdW5jdGlvbiBqdXN0IHRha2VzIHRoZSBXU0dJIGVudmlyb25tZW50IGFuZAorY2FsbHMgdGhlIGBjZ2kgPGh0dHA6Ly9weXRob24ub3JnL2RvYy9jdXJyZW50L2xpYi9tb2R1bGUtY2dpLmh0bWw+YF8KK21vZHVsZSAodGhlIGBgRmllbGRTdG9yYWdlYGAgY2xhc3MpIGFuZCB0dXJucyB0aGF0IGludG8gYSBNdWx0aURpY3QuCisKK05vdyBGb3IgYSBGcmFtZXdvcmsKKz09PT09PT09PT09PT09PT09PT0KKworTm93LCB0aGlzIHByb2JhYmx5IGZlZWxzIGEgYml0IGNydWRlLiAgQWZ0ZXIgYWxsLCB3ZSdyZSB0ZXN0aW5nIGZvcgordGhpbmdzIGxpa2UgUkVRVUVTVF9NRVRIT0QgdG8gaGFuZGxlIG1vcmUgdGhhbiBvbmUgdGhpbmcsIGFuZCBpdCdzCit1bmNsZWFyIGhvdyB5b3UgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSBwYWdlLgorCitXZSB3YW50IHRvIGJ1aWxkIGEgZnJhbWV3b3JrLCB3aGljaCBpcyBqdXN0IGEga2luZCBvZiBnZW5lcmljCithcHBsaWNhdGlvbi4gIEluIHRoaXMgdHV0b3JpYWwgd2UnbGwgaW1wbGVtZW50IGFuICpvYmplY3QgcHVibGlzaGVyKiwKK3doaWNoIGlzIHNvbWV0aGluZyB5b3UgbWF5IGhhdmUgc2VlbiBpbiBab3BlLCBRdWl4b3RlLCBvciBDaGVycnlQeS4KKworT2JqZWN0IFB1Ymxpc2hpbmcKKy0tLS0tLS0tLS0tLS0tLS0tCisKK0luIGEgdHlwaWNhbCBQeXRob24gb2JqZWN0IHB1Ymxpc2hlciB5b3UgdHJhbnNsYXRlIGBgL2BgIHRvIGBgLmBgLiAgU28KK2BgL2FydGljbGVzL3ZpZXc/aWQ9NWBgIHR1cm5zIGludG8gYGByb290LmFydGljbGVzLnZpZXcoaWQ9NSlgYC4gIFdlCitoYXZlIHRvIHN0YXJ0IHdpdGggc29tZSByb290IG9iamVjdCwgb2YgY291cnNlLCB3aGljaCB3ZSdsbCBwYXNzIGluLi4uCisKKzo6CisKKyAgICBjbGFzcyBPYmplY3RQdWJsaXNoZXIob2JqZWN0KToKKworICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdCk6CisgICAgICAgICAgICBzZWxmLnJvb3QgPSByb290CisKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgIC4uLgorCisgICAgYXBwID0gT2JqZWN0UHVibGlzaGVyKG15X3Jvb3Rfb2JqZWN0KQorCitXZSBvdmVycmlkZSBgYF9fY2FsbF9fYGAgdG8gbWFrZSBpbnN0YW5jZXMgb2YgYGBPYmplY3RQdWJsaXNoZXJgYAorY2FsbGFibGUgb2JqZWN0cywganVzdCBsaWtlIGEgZnVuY3Rpb24sIGFuZCBqdXN0IGxpa2UgV1NHSQorYXBwbGljYXRpb25zLiAgTm93IGFsbCB3ZSBoYXZlIHRvIGRvIGlzIHRyYW5zbGF0ZSB0aGF0IGBgZW52aXJvbmBgCitpbnRvIHRoZSB0aGluZyB3ZSBhcmUgcHVibGlzaGluZywgdGhlbiBjYWxsIHRoYXQgdGhpbmcsIHRoZW4gdHVybiB0aGUKK3Jlc3BvbnNlIGludG8gd2hhdCBXU0dJIHdhbnRzLgorCitUaGUgUGF0aAorLS0tLS0tLS0KKworV1NHSSBwdXRzIHRoZSByZXF1ZXN0ZWQgcGF0aCBpbnRvIHR3byB2YXJpYWJsZXM6IGBgU0NSSVBUX05BTUVgYCBhbmQKK2BgUEFUSF9JTkZPYGAuICBgYFNDUklQVF9OQU1FYGAgaXMgZXZlcnl0aGluZyB0aGF0IHdhcyB1c2VkIHVwCisqZ2V0dGluZyBoZXJlKi4gIGBgUEFUSF9JTkZPYGAgaXMgZXZlcnl0aGluZyBsZWZ0IG92ZXIgLS0gaXQncwordGhlIHBhcnQgdGhlIGZyYW1ld29yayBzaG91bGQgYmUgdXNpbmcgdG8gZmluZCB0aGUgb2JqZWN0LiAgSWYgeW91IHB1dAordGhlIHR3byBiYWNrIHRvZ2V0aGVyLCB5b3UgZ2V0IHRoZSBmdWxsIHBhdGggdXNlZCB0byBnZXQgdG8gd2hlcmUgd2UKK2FyZSByaWdodCBub3c7IHRoaXMgaXMgdmVyeSB1c2VmdWwgZm9yIGdlbmVyYXRpbmcgY29ycmVjdCBVUkxzLCBhbmQKK3dlJ2xsIG1ha2Ugc3VyZSB3ZSBwcmVzZXJ2ZSB0aGlzLgorCitTbyBoZXJlJ3MgaG93IHdlIG1pZ2h0IGltcGxlbWVudCBgYF9fY2FsbF9fYGA6OgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgZmllbGRzID0gcGFyc2VfZm9ybXZhcnMoZW52aXJvbikKKyAgICAgICAgb2JqID0gc2VsZi5maW5kX29iamVjdChzZWxmLnJvb3QsIGVudmlyb24pCisgICAgICAgIHJlc3BvbnNlX2JvZHkgPSBvYmooKipmaWVsZHMubWl4ZWQoKSkKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgIHJldHVybiBbcmVzcG9uc2VfYm9keV0KKworICAgIGRlZiBmaW5kX29iamVjdChzZWxmLCBvYmosIGVudmlyb24pOgorICAgICAgICBwYXRoX2luZm8gPSBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpCisgICAgICAgIGlmIG5vdCBwYXRoX2luZm8gb3IgcGF0aF9pbmZvID09ICcvJzoKKyAgICAgICAgICAgICMgV2UndmUgYXJyaXZlZCEKKyAgICAgICAgICAgIHJldHVybiBvYmoKKyAgICAgICAgIyBQQVRIX0lORk8gYWx3YXlzIHN0YXJ0cyB3aXRoIGEgLywgc28gd2UnbGwgZ2V0IHJpZCBvZiBpdDoKKyAgICAgICAgcGF0aF9pbmZvID0gcGF0aF9pbmZvLmxzdHJpcCgnLycpCisgICAgICAgICMgVGhlbiBzcGxpdCB0aGUgcGF0aCBpbnRvIHRoZSAibmV4dCIgY2h1bmssIGFuZCBldmVyeXRoaW5nCisgICAgICAgICMgYWZ0ZXIgaXQgKCJyZXN0Iik6CisgICAgICAgIHBhcnRzID0gcGF0aF9pbmZvLnNwbGl0KCcvJywgMSkKKyAgICAgICAgbmV4dCA9IHBhcnRzWzBdCisgICAgICAgIGlmIGxlbihwYXJ0cykgPT0gMToKKyAgICAgICAgICAgIHJlc3QgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdCA9ICcvJyArIHBhcnRzWzFdCisgICAgICAgICMgSGlkZSBwcml2YXRlIG1ldGhvZHMvYXR0cmlidXRlczoKKyAgICAgICAgYXNzZXJ0IG5vdCBuZXh0LnN0YXJ0c3dpdGgoJ18nKQorICAgICAgICAjIE5vdyB3ZSBnZXQgdGhlIGF0dHJpYnV0ZTsgZ2V0YXR0cihhLCAnYicpIGlzIGVxdWl2YWxlbnQKKyAgICAgICAgIyB0byBhLmIuLi4KKyAgICAgICAgbmV4dF9vYmogPSBnZXRhdHRyKG9iaiwgbmV4dCkKKyAgICAgICAgIyBOb3cgZml4IHVwIFNDUklQVF9OQU1FIGFuZCBQQVRIX0lORk8uLi4KKyAgICAgICAgZW52aXJvblsnU0NSSVBUX05BTUUnXSArPSAnLycgKyBuZXh0CisgICAgICAgIGVudmlyb25bJ1BBVEhfSU5GTyddID0gcmVzdAorICAgICAgICAjIGFuZCBub3cgcGFyc2UgdGhlIHJlbWFpbmluZyBwYXJ0IG9mIHRoZSBVUkwuLi4KKyAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9vYmplY3QobmV4dF9vYmosIGVudmlyb24pCisKK0FuZCB0aGF0J3MgaXQsIHdlJ3ZlIGdvdCBhIGZyYW1ld29yay4KKworVGFraW5nIEl0IEZvciBhIFJpZGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK05vdywgbGV0J3Mgd3JpdGUgYSBsaXR0bGUgYXBwbGljYXRpb24uICBQdXQgdGhhdCBgYE9iamVjdFB1Ymxpc2hlcmBgCitjbGFzcyBpbnRvIGEgbW9kdWxlIGBgb2JqZWN0cHViYGA6OgorCisgICAgZnJvbSBvYmplY3RwdWIgaW1wb3J0IE9iamVjdFB1Ymxpc2hlcgorCisgICAgY2xhc3MgUm9vdChvYmplY3QpOgorCisgICAgICAgICMgVGhlICJpbmRleCIgbWV0aG9kOgorICAgICAgICBkZWYgX19jYWxsX18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gJycnCisgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IndlbGNvbWUiPgorICAgICAgICAgICAgTmFtZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiPgorICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCI+CisgICAgICAgICAgICA8L2Zvcm0+CisgICAgICAgICAgICAnJycKKworICAgICAgICBkZWYgd2VsY29tZShzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIHJldHVybiAnSGVsbG8gJXMhJyAlIG5hbWUKKworICAgIGFwcCA9IE9iamVjdFB1Ymxpc2hlcihSb290KCkpCisKKyAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICAgICBmcm9tIHBhc3RlIGltcG9ydCBodHRwc2VydmVyCisgICAgICAgIGh0dHBzZXJ2ZXIuc2VydmUoYXBwLCBob3N0PScxMjcuMC4wLjEnLCBwb3J0PSc4MDgwJykKKworQWxyaWdodCwgZG9uZSEgIE9oLCB3YWl0LiAgVGhlcmUncyBzdGlsbCBzb21lIGJpZyBtaXNzaW5nIGZlYXR1cmVzLAorbGlrZSBob3cgZG8geW91IHNldCBoZWFkZXJzPyAgQW5kIGluc3RlYWQgb2YgZ2l2aW5nIGBgNDA0IE5vdCBGb3VuZGBgCityZXNwb25zZXMgaW4gc29tZSBwbGFjZXMsIHlvdSdsbCBqdXN0IGdldCBhbiBhdHRyaWJ1dGUgZXJyb3IuICBXZSdsbAorZml4IHRob3NlIHVwIGluIGEgbGF0ZXIgaW5zdGFsbG1lbnQuLi4KKworR2l2ZSBNZSBNb3JlIQorLS0tLS0tLS0tLS0tLQorCitZb3UnbGwgbm90aWNlIHNvbWUgdGhpbmdzIGFyZSBtaXNzaW5nIGhlcmUuICBNb3N0IHNwZWNpZmljYWxseSwKK3RoZXJlJ3Mgbm8gd2F5IHRvIHNldCB0aGUgb3V0cHV0IGhlYWRlcnMsIGFuZCB0aGUgaW5mb3JtYXRpb24gb24gdGhlCityZXF1ZXN0IGlzIGEgbGl0dGxlIHNsaW0uCisKKzo6CisKKyAgICAjIFRoaXMgaXMganVzdCBhIGRpY3Rpb25hcnktbGlrZSBvYmplY3QgdGhhdCBoYXMgY2FzZS0KKyAgICAjIGluc2Vuc2l0aXZlIGtleXM6CisgICAgZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgSGVhZGVyRGljdAorCisgICAgY2xhc3MgUmVxdWVzdChvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgZW52aXJvbik6CisgICAgICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisgICAgICAgICAgICBzZWxmLmZpZWxkcyA9IHBhcnNlX2Zvcm12YXJzKGVudmlyb24pCisKKyAgICBjbGFzcyBSZXNwb25zZShvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBzZWxmLmhlYWRlcnMgPSBIZWFkZXJEaWN0KAorICAgICAgICAgICAgICAgIHsnY29udGVudC10eXBlJzogJ3RleHQvaHRtbCd9KQorCitOb3cgSSdsbCB0ZWFjaCB5b3UgYSBsaXR0bGUgdHJpY2suICBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSB0aGUKK3NpZ25hdHVyZSBvZiB0aGUgbWV0aG9kcy4gIEJ1dCB3ZSBjYW4ndCBwdXQgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlCitvYmplY3RzIGluIG5vcm1hbCBnbG9iYWwgdmFyaWFibGVzLCBiZWNhdXNlIHdlIHdhbnQgdG8gYmUKK3RocmVhZC1mcmllbmRseSwgYW5kIGFsbCB0aHJlYWRzIHNlZSB0aGUgc2FtZSBnbG9iYWwgdmFyaWFibGVzIChldmVuCitpZiB0aGV5IGFyZSBwcm9jZXNzaW5nIGRpZmZlcmVudCByZXF1ZXN0cykuCisKK0J1dCBQeXRob24gMi40IGludHJvZHVjZWQgYSBjb25jZXB0IG9mICJ0aHJlYWQtbG9jYWwgdmFsdWVzIi4gIFRoYXQncworYSB2YWx1ZSB0aGF0IGp1c3QgdGhpcyBvbmUgdGhyZWFkIGNhbiBzZWUuICBUaGlzIGlzIGluIHRoZQorYHRocmVhZGluZy5sb2NhbCA8aHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWIvbW9kdWxlLXRocmVhZGluZy5odG1sPmBfCitvYmplY3QuICBXaGVuIHlvdSBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYGBsb2NhbGBgIGFueSBhdHRyaWJ1dGVzIHlvdQorc2V0IG9uIHRoYXQgb2JqZWN0IGNhbiBvbmx5IGJlIHNlZW4gYnkgdGhlIHRocmVhZCB5b3Ugc2V0IHRoZW0gaW4uICBTbword2UnbGwgYXR0YWNoIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3RzIGhlcmUuCisKK1NvLCBsZXQncyByZW1pbmQgb3Vyc2VsdmVzIG9mIHdoYXQgdGhlIGBgX19jYWxsX19gYCBmdW5jdGlvbiBsb29rZWQKK2xpa2U6OgorCisgICAgY2xhc3MgT2JqZWN0UHVibGlzaGVyKG9iamVjdCk6CisgICAgICAgIC4uLgorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICBmaWVsZHMgPSBwYXJzZV9mb3JtdmFycyhlbnZpcm9uKQorICAgICAgICAgICAgb2JqID0gc2VsZi5maW5kX29iamVjdChzZWxmLnJvb3QsIGVudmlyb24pCisgICAgICAgICAgICByZXNwb25zZV9ib2R5ID0gb2JqKCoqZmllbGRzLm1peGVkKCkpCisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnY29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpXSkKKyAgICAgICAgICAgIHJldHVybiBbcmVzcG9uc2VfYm9keV0KKworTGV0cydzIHVwZGF0ZSB0aGF0OjoKKworICAgIGltcG9ydCB0aHJlYWRpbmcKKyAgICB3ZWJpbmZvID0gdGhyZWFkaW5nLmxvY2FsKCkKKworICAgIGNsYXNzIE9iamVjdFB1Ymxpc2hlcihvYmplY3QpOgorICAgICAgICAuLi4KKworICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgd2ViaW5mby5yZXF1ZXN0ID0gUmVxdWVzdChlbnZpcm9uKQorICAgICAgICAgICAgd2ViaW5mby5yZXNwb25zZSA9IFJlc3BvbnNlKCkKKyAgICAgICAgICAgIG9iaiA9IHNlbGYuZmluZF9vYmplY3Qoc2VsZi5yb290LCBlbnZpcm9uKQorICAgICAgICAgICAgcmVzcG9uc2VfYm9keSA9IG9iaigqKmRpY3Qod2ViaW5mby5yZXF1ZXN0LmZpZWxkcykpCisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgd2ViaW5mby5yZXNwb25zZS5oZWFkZXJzLml0ZW1zKCkpCisgICAgICAgICAgICByZXR1cm4gW3Jlc3BvbnNlX2JvZHldCisKK05vdyBpbiBvdXIgbWV0aG9kIHdlIG1pZ2h0IGRvOjoKKworICAgIGNsYXNzIFJvb3Q6CisgICAgICAgIGRlZiByc3Moc2VsZik6CisgICAgICAgICAgICB3ZWJpbmZvLnJlc3BvbnNlLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gJ3RleHQveG1sJworICAgICAgICAgICAgLi4uCisKK0lmIHdlIHdlcmUgYmVpbmcgZmFuY2llciB3ZSB3b3VsZCBkbyB0aGluZ3MgbGlrZSBoYW5kbGUgYGNvb2tpZXMKKzxodHRwOi8vcHl0aG9uLm9yZy9kb2MvY3VycmVudC9saWIvbW9kdWxlLUNvb2tpZS5odG1sPmBfIGluIHRoZXNlCitvYmplY3RzLiAgQnV0IHdlIGFyZW4ndCBnb2luZyB0byBkbyB0aGF0IG5vdy4gIFlvdSBoYXZlIGEgZnJhbWV3b3JrLAorYmUgaGFwcHkhCisKK1dTR0kgTWlkZGxld2FyZQorPT09PT09PT09PT09PT09CisKK2BNaWRkbGV3YXJlCis8aHR0cDovL3d3dy5weXRob24ub3JnL3BlcHMvcGVwLTAzMzMuaHRtbCNtaWRkbGV3YXJlLWNvbXBvbmVudHMtdGhhdC1wbGF5LWJvdGgtc2lkZXM+YF8KK2lzIHdoZXJlIHBlb3BsZSBnZXQgYSBsaXR0bGUgaW50aW1pZGF0ZWQgYnkgV1NHSSBhbmQgUGFzdGUuCisKK1doYXQgaXMgbWlkZGxld2FyZT8gIE1pZGRsZXdhcmUgaXMgc29mdHdhcmUgdGhhdCBzZXJ2ZXMgYXMgYW4KK2ludGVybWVkaWFyeS4KKworCitTbyBsZXRzCit3cml0ZSBvbmUuICBXZSdsbCB3cml0ZSBhbiBhdXRoZW50aWNhdGlvbiBtaWRkbGV3YXJlLCBzbyB0aGF0IHlvdSBjYW4KK2tlZXAgeW91ciBncmVldGluZyBmcm9tIGJlaW5nIHNlZW4gYnkganVzdCBhbnlvbmUuCisKK0xldCdzIHVzZSBIVFRQIGF1dGhlbnRpY2F0aW9uLCB3aGljaCBhbHNvIGNhbiBteXN0aWZ5IHBlb3BsZSBhIGJpdC4KK0hUVFAgYXV0aGVudGljYXRpb24gaXMgZmFpcmx5IHNpbXBsZToKKworKiBXaGVuIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVzLCB3ZSBnaXZlIGEgYGA0MDEgQXV0aGVudGljYXRpb24KKyAgUmVxdWlyZWRgYCBzdGF0dXMgd2l0aCBhIGBgV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09IlRoaXMKKyAgUmVhbG0iYGAgaGVhZGVyCisKKyogVGhlIGNsaWVudCB0aGVuIHNlbmRzIGJhY2sgYSBoZWFkZXIgYGBBdXRob3JpemF0aW9uOiBCYXNpYworICBlbmNvZGVkX2luZm9gYAorCisqIFRoZSAiZW5jb2RlZF9pbmZvIiBpcyBhIGJhc2UtNjQgZW5jb2RlZCB2ZXJzaW9uIG9mCisgIGBgdXNlcm5hbWU6cGFzc3dvcmRgYAorCitTbyBob3cgZG9lcyB0aGlzIHdvcms/ICBXZWxsLCB3ZSdyZSB3cml0aW5nICJtaWRkbGV3YXJlIiwgd2hpY2ggbWVhbnMKK3dlJ2xsIHR5cGljYWxseSBwYXNzIHRoZSByZXF1ZXN0IG9uIHRvIGFub3RoZXIgYXBwbGljYXRpb24uICBXZSBjb3VsZAorY2hhbmdlIHRoZSByZXF1ZXN0LCBvciBjaGFuZ2UgdGhlIHJlc3BvbnNlLCBidXQgaW4gdGhpcyBjYXNlIHNvbWV0aW1lcword2UgKndvbid0KiBwYXNzIHRoZSByZXF1ZXN0IG9uIChsaWtlLCB3aGVuIHdlIG5lZWQgdG8gZ2l2ZSB0aGF0IDQwMQorcmVzcG9uc2UpLgorCitUbyBnaXZlIGFuIGV4YW1wbGUgb2YgYSByZWFsbHkgcmVhbGx5IHNpbXBsZSBtaWRkbGV3YXJlLCBoZXJlJ3Mgb25lCit0aGF0IGNhcGl0YWxpemVzIHRoZSByZXNwb25zZTo6CisKKyAgICBjbGFzcyBDYXBpdGFsaXplcihvYmplY3QpOgorCisgICAgICAgICMgV2UgZ2VuZXJhbGx5IHBhc3MgaW4gdGhlIGFwcGxpY2F0aW9uIHRvIGJlIHdyYXBwZWQgdG8KKyAgICAgICAgIyB0aGUgbWlkZGxld2FyZSBjb25zdHJ1Y3RvcjoKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHdyYXBfYXBwKToKKyAgICAgICAgICAgIHNlbGYud3JhcF9hcHAgPSB3cmFwX2FwcAorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICAjIFdlIGNhbGwgdGhlIGFwcGxpY2F0aW9uIHdlIGFyZSB3cmFwcGluZyB3aXRoIHRoZQorICAgICAgICAgICAgIyBzYW1lIGFyZ3VtZW50cyB3ZSBnZXQuLi4KKyAgICAgICAgICAgIHJlc3BvbnNlX2l0ZXIgPSBzZWxmLndyYXBfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgIyB0aGVuIGNoYW5nZSB0aGUgcmVzcG9uc2UuLi4KKyAgICAgICAgICAgIHJlc3BvbnNlX3N0cmluZyA9ICcnLmpvaW4ocmVzcG9uc2VfaXRlcikKKyAgICAgICAgICAgIHJldHVybiBbcmVzcG9uc2Vfc3RyaW5nLnVwcGVyKCldCisKK1RlY2hpY2FsbHkgdGhpcyBpc24ndCBxdWl0ZSByaWdodCwgYmVjYXVzZSB0aGVyZSB0aGVyZSdzIHR3byB3YXlzIHRvCityZXR1cm4gdGhlIHJlc3BvbnNlIGJvZHksIGJ1dCB3ZSdyZSBza2ltbWluZyBiaXRzLgorYHBhc3RlLndzZ2lsaWIuaW50ZXJjZXB0X291dHB1dAorPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvbW9kdWxlLXBhc3RlLndzZ2lsaWIuaHRtbCNpbnRlcmNlcHRfb3V0cHV0PmBfCitpcyBhIHNvbWV3aGF0IG1vcmUgdGhvcm91Z2ggaW1wbGVtZW50YXRpb24gb2YgdGhpcy4KKworLi4gbm90ZTo6CisKKyAgIFRoaXMsIGxpa2UgYSBsb3Qgb2YgcGFydHMgb2YgdGhpcyAobm93IGZhaXJseSBvbGQpIHR1dG9yaWFsIGlzCisgICBiZXR0ZXIsIG1vcmUgdGhvcm91Z2gsIGFuZCBlYXNpZXIgdXNpbmcgYFdlYk9iCisgICA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy93ZWJvYi8+YF8uICBUaGlzIHBhcnRpY3VsYXIgZXhhbXBsZSBsb29rcworICAgbGlrZTo6CisKKyAgICAgICBmcm9tIHdlYm9iIGltcG9ydCBSZXF1ZXN0CisKKyAgICAgICBjbGFzcyBDYXBpdGFsaXplcihvYmplY3QpOgorICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwKToKKyAgICAgICAgICAgICAgIHNlbGYuYXBwID0gYXBwCisgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgICAgICAgICAgICByZXNwID0gcmVxLmdldF9yZXNwb25zZShzZWxmLmFwcCkKKyAgICAgICAgICAgICAgIHJlc3AuYm9keSA9IHJlc3AuYm9keS51cHBlcigpCisgICAgICAgICAgICAgICByZXR1cm4gcmVzcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworU28gaGVyZSdzIHNvbWUgY29kZSB0aGF0IGRvZXMgc29tZXRoaW5nIHVzZWZ1bCwgYXV0aGVudGljYXRpb246OgorCisgICAgY2xhc3MgQXV0aE1pZGRsZXdhcmUob2JqZWN0KToKKworICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgd3JhcF9hcHApOgorICAgICAgICAgICAgc2VsZi53cmFwX2FwcCA9IHdyYXBfYXBwCisKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmF1dGhvcml6ZWQoZW52aXJvbi5nZXQoJ0hUVFBfQVVUSE9SSVpBVElPTicpKToKKyAgICAgICAgICAgICAgICAjIEVzc2VudGlhbGx5IHNlbGYuYXV0aF9yZXF1aXJlZCBpcyBhIFdTR0kgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgICAjIHRoYXQgb25seSBrbm93cyBob3cgdG8gcmVzcG9uZCB3aXRoIDQwMS4uLgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmF1dGhfcmVxdWlyZWQoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgICAjIEJ1dCBpZiBldmVyeXRoaW5nIGlzIG9rYXksIHRoZW4gcGFzcyBldmVyeXRoaW5nIHRocm91Z2gKKyAgICAgICAgICAgICMgdG8gdGhlIGFwcGxpY2F0aW9uIHdlIGFyZSB3cmFwcGluZy4uLgorICAgICAgICAgICAgcmV0dXJuIHNlbGYud3JhcF9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICAgICAgZGVmIGF1dGhvcml6ZWQoc2VsZiwgYXV0aF9oZWFkZXIpOgorICAgICAgICAgICAgaWYgbm90IGF1dGhfaGVhZGVyOgorICAgICAgICAgICAgICAgICMgSWYgdGhleSBkaWRuJ3QgZ2l2ZSBhIGhlYWRlciwgdGhleSBiZXR0ZXIgbG9naW4uLi4KKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICMgLnNwbGl0KE5vbmUsIDEpIG1lYW5zIHNwbGl0IGluIHR3byBwYXJ0cyBvbiB3aGl0ZXNwYWNlOgorICAgICAgICAgICAgYXV0aF90eXBlLCBlbmNvZGVkX2luZm8gPSBhdXRoX2hlYWRlci5zcGxpdChOb25lLCAxKQorICAgICAgICAgICAgYXNzZXJ0IGF1dGhfdHlwZS5sb3dlcigpID09ICdiYXNpYycKKyAgICAgICAgICAgIHVuZW5jb2RlZF9pbmZvID0gZW5jb2RlZF9pbmZvLmRlY29kZSgnYmFzZTY0JykKKyAgICAgICAgICAgIHVzZXJuYW1lLCBwYXNzd29yZCA9IHVuZW5jb2RlZF9pbmZvLnNwbGl0KCc6JywgMSkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNoZWNrX3Bhc3N3b3JkKHVzZXJuYW1lLCBwYXNzd29yZCkKKworICAgICAgICBkZWYgY2hlY2tfcGFzc3dvcmQoc2VsZiwgdXNlcm5hbWUsIHBhc3N3b3JkKToKKyAgICAgICAgICAgICMgTm90IHZlcnkgaGlnaCBzZWN1cml0eSBhdXRoZW50aWNhdGlvbi4uLgorICAgICAgICAgICAgcmV0dXJuIHVzZXJuYW1lID09IHBhc3N3b3JkCisKKyAgICAgICAgZGVmIGF1dGhfcmVxdWlyZWQoc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzQwMSBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCcsCisgICAgICAgICAgICAgICAgWygnQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpLAorICAgICAgICAgICAgICAgICAoJ1dXVy1BdXRoZW50aWNhdGUnLCAnQmFzaWMgcmVhbG09InRoaXMgcmVhbG0iJyldKQorICAgICAgICAgICAgcmV0dXJuIFsiIiIKKyAgICAgICAgICAgIDxodG1sPgorICAgICAgICAgICAgIDxoZWFkPjx0aXRsZT5BdXRoZW50aWNhdGlvbiBSZXF1aXJlZDwvdGl0bGU+PC9oZWFkPgorICAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICA8aDE+QXV0aGVudGljYXRpb24gUmVxdWlyZWQ8L2gxPgorICAgICAgICAgICAgICBJZiB5b3UgY2FuJ3QgZ2V0IGluLCB0aGVuIHN0YXkgb3V0LgorICAgICAgICAgICAgIDwvYm9keT4KKyAgICAgICAgICAgIDwvaHRtbD4iIiJdCisKKy4uIG5vdGU6OgorCisgICBBZ2FpbiwgaGVyZSdzIHRoZSBzYW1lIHRoaW5nIHdpdGggV2ViT2I6OgorCisgICAgICAgZnJvbSB3ZWJvYiBpbXBvcnQgUmVxdWVzdCwgUmVzcG9uc2UKKworICAgICAgIGNsYXNzIEF1dGhNaWRkbGV3YXJlKG9iamVjdCk6CisgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHApOgorICAgICAgICAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgICAgIHJlcSA9IFJlcXVlc3QoZW52aXJvbikKKyAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmF1dGhvcml6ZWQocmVxLmhlYWRlcnNbJ2F1dGhvcml6YXRpb24nXSk6CisgICAgICAgICAgICAgICAgICAgcmVzcCA9IHNlbGYuYXV0aF9yZXF1aXJlZChyZXEpCisgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgIHJlc3AgPSBzZWxmLmFwcAorICAgICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgIGRlZiBhdXRob3JpemVkKHNlbGYsIGhlYWRlcik6CisgICAgICAgICAgICAgICBpZiBub3QgaGVhZGVyOgorICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgYXV0aF90eXBlLCBlbmNvZGVkID0gaGVhZGVyLnNwbGl0KE5vbmUsIDEpCisgICAgICAgICAgICAgICBpZiBub3QgYXV0aF90eXBlLmxvd2VyKCkgPT0gJ2Jhc2ljJzoKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgIHVzZXJuYW1lLCBwYXNzd29yZCA9IGVuY29kZWQuZGVjb2RlKCdiYXNlNjQnKS5zcGxpdCgnOicsIDEpCisgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5jaGVja19wYXNzd29yZCh1c2VybmFtZSwgcGFzc3dvcmQpCisgICAgICAgIGRlZiBjaGVja19wYXNzd29yZChzZWxmLCB1c2VybmFtZSwgcGFzc3dvcmQpOgorICAgICAgICAgICAgcmV0dXJuIHVzZXJuYW1lID09IHBhc3N3b3JkCisgICAgICAgIGRlZiBhdXRoX3JlcXVpcmVkKHNlbGYsIHJlcSk6CisgICAgICAgICAgICByZXR1cm4gUmVzcG9uc2Uoc3RhdHVzPTQwMSwgaGVhZGVycz17J1dXVy1BdXRoZW50aWNhdGUnOiAnQmFzaWMgcmVhbG09InRoaXMgcmVhbG0iJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keT0iIiJcCisgICAgICAgICAgICA8aHRtbD4KKyAgICAgICAgICAgICA8aGVhZD48dGl0bGU+QXV0aGVudGljYXRpb24gUmVxdWlyZWQ8L3RpdGxlPjwvaGVhZD4KKyAgICAgICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgPGgxPkF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkPC9oMT4KKyAgICAgICAgICAgICAgSWYgeW91IGNhbid0IGdldCBpbiwgdGhlbiBzdGF5IG91dC4KKyAgICAgICAgICAgICA8L2JvZHk+CisgICAgICAgICAgICA8L2h0bWw+IiIiKQorCitTbywgaG93IGRvIHdlIHVzZSB0aGlzPworCis6OgorCisgICAgYXBwID0gT2JqZWN0UHVibGlzaGVyKFJvb3QoKSkKKyAgICB3cmFwcGVkX2FwcCA9IEF1dGhNaWRkbGV3YXJlKGFwcCkKKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIGZyb20gcGFzdGUgaW1wb3J0IGh0dHBzZXJ2ZXIKKyAgICAgICAgaHR0cHNlcnZlci5zZXJ2ZSh3cmFwcGVkX2FwcCwgaG9zdD0nMTI3LjAuMC4xJywgcG9ydD0nODA4MCcpCisKK05vdyB5b3UgaGF2ZSBtaWRkbGV3YXJlISAgSHVycmFoIQorCitHaXZlIE1lIE1vcmUgTWlkZGxld2FyZSEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJdCdzIGV2ZW4gZWFzaWVyIHRvIHVzZSBvdGhlciBwZW9wbGUncyBtaWRkbGV3YXJlIHRoYW4gdG8gbWFrZSB5b3VyCitvd24sIGJlY2F1c2UgdGhlbiB5b3UgZG9uJ3QgaGF2ZSB0byBwcm9ncmFtLiAgSWYgeW91J3ZlIGJlZW4gZm9sbG93aW5nCithbG9uZywgeW91J3ZlIHByb2JhYmx5IGVuY291bnRlcmVkIGEgZmV3IGV4Y2VwdGlvbnMsIGFuZCBoYXZlIHRvIGxvb2sKK2F0IHRoZSBjb25zb2xlIHRvIHNlZSB0aGUgZXhjZXB0aW9uIHJlcG9ydHMuICBMZXQncyBtYWtlIHRoYXQgYSBsaXR0bGUKK2Vhc2llciwgYW5kIHNob3cgdGhlIGV4Y2VwdGlvbnMgaW4gdGhlIGJyb3dzZXIuLi4KKworOjoKKworICAgIGFwcCA9IE9iamVjdFB1Ymxpc2hlcihSb290KCkpCisgICAgd3JhcHBlZF9hcHAgPSBBdXRoTWlkZGxld2FyZShhcHApCisgICAgZnJvbSBwYXN0ZS5leGNlcHRpb25zLmVycm9ybWlkZGxld2FyZSBpbXBvcnQgRXJyb3JNaWRkbGV3YXJlCisgICAgZXhjX3dyYXBwZWRfYXBwID0gRXJyb3JNaWRkbGV3YXJlKHdyYXBwZWRfYXBwKQorCitFYXN5ISAgQnV0IGxldCdzIG1ha2UgaXQgKm1vcmUqIGZhbmN5Li4uCisKKzo6CisKKyAgICBhcHAgPSBPYmplY3RQdWJsaXNoZXIoUm9vdCgpKQorICAgIHdyYXBwZWRfYXBwID0gQXV0aE1pZGRsZXdhcmUoYXBwKQorICAgIGZyb20gcGFzdGUuZXZhbGV4Y2VwdGlvbiBpbXBvcnQgRXZhbEV4Y2VwdGlvbgorICAgIGV4Y193cmFwcGVkX2FwcCA9IEV2YWxFeGNlcHRpb24od3JhcHBlZF9hcHApCisKK1NvIGdvIG1ha2UgYW4gZXJyb3Igbm93LiAgQW5kIGhpdCB0aGUgbGl0dGxlICsncy4gIEFuZCB0eXBlIHN0dWZmIGluCit0byB0aGUgYm94ZXMuCisKK0NvbmNsdXNpb24KKz09PT09PT09PT0KKworTm93IHRoYXQgeW91J3ZlIGNyZWF0ZWQgeW91ciBmcmFtZXdvcmsgYW5kIGFwcGxpY2F0aW9uIChJJ20gc3VyZSBpdCdzCittdWNoIG5pY2VyIHRoYW4gdGhlIG9uZSBJJ3ZlIGdpdmVuIHNvIGZhcikuICBZb3UgbWlnaHQga2VlcCB3cml0aW5nIGl0CisobWFueSBwZW9wbGUgaGF2ZSBzbyBmYXIpLCBidXQgZXZlbiBpZiB5b3UgZG9uJ3QgeW91IHNob3VsZCBiZSBhYmxlIHRvCityZWNvZ25pemUgdGhlc2UgY29tcG9uZW50cyBpbiBvdGhlciBmcmFtZXdvcmtzIG5vdywgYW5kIHlvdSdsbCBoYXZlIGEKK2JldHRlciB1bmRlcnN0YW5kaW5nIGhvdyB0aGV5IHByb2JhYmx5IHdvcmsgdW5kZXIgdGhlIGNvdmVycy4KKworQWxzbyBjaGVjayBvdXQgdGhlIHZlcnNpb24gb2YgdGhpcyB0dXRvcmlhbCB3cml0dGVuIGB1c2luZyBXZWJPYgorPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvd2Vib2IvZG8taXQteW91cnNlbGYuaHRtbD5gXy4gIFRoYXQgdHV0b3JpYWwKK2luY2x1ZGVzIHRoaW5ncyBsaWtlICoqdGVzdGluZyoqIGFuZCAqKnBhdHRlcm4tbWF0Y2hpbmcgZGlzcGF0Y2gqKgorKGluc3RlYWQgb2Ygb2JqZWN0IHB1Ymxpc2hpbmcpLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZG93bmxvYWQvaW5kZXgudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZG93bmxvYWQvaW5kZXgudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxZjkxOGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9kb3dubG9hZC9pbmRleC50eHQKQEAgLTAsMCArMSwzMiBAQAorRG93bmxvYWRzCis9PT09PT09PT0KKworRWFjaCBvZiB0aGVzZSBwYWNrYWdlcyBpcyBhdmFpbGFibGUgaW4gc2V2ZXJhbCBmb3JtYXRzLiAgVGhlIHNvdXJjZQorZGlzdHJpYnV0aW9uIGlzIGEgY29tcGxldGUgc2V0IG9mIGRvY3VtZW50YXRpb24sIHRlc3RzLCBhbmQgdGhlIHNvdXJjZQorZmlsZXMgdGhlbXNlbHZlcy4gIFRoZXJlIGFyZSBhbHNvIHR3byAiRWdnIiBmaWxlczogdGhlc2UgYXJlIGZpbGVzCitgZWFzeV9pbnN0YWxsIDxodHRwOi8vcGVhay50ZWxlY29tbXVuaXR5LmNvbS9EZXZDZW50ZXIvRWFzeUluc3RhbGw+YF8KK2NhbiBpbnN0YWxsIGRpcmVjdGx5IGludG8geW91ciBgYHNpdGUtcGFja2FnZXMvYGAgZGlyZWN0b3J5LCBhbmQgYXJlCitQeXRob24tdmVyc2lvbiBzcGVjaWZpYy4gIFRoZSBkb3dubG9hZCBmaWxlcyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uCithcmUgYWx3YXlzIGxvY2F0ZWQgb24gdGhlIENoZWVzZSBTaG9wIHBhZ2VzIChsaXN0ZWQgYmVsb3cpLgorCisqIGBQYXN0ZSA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL1Bhc3RlPmBfCisqIGBQYXN0ZSBTY3JpcHQgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9QYXN0ZVNjcmlwdD5gXworKiBgUGFzdGUgRGVwbG95IDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvUGFzdGVEZXBsb3k+YF8KKyogYFBhc3RlIFdlYktpdCA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL1Bhc3RlV2ViS2l0PmBfCisqIGBXYXJld2ViIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvV2FyZXdlYj5gXyAoZGVwcmVjYXRlZCwgdXNlIGBQeWxvbnMKKyAgPGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvUHlsb25zPmBfIGluc3RlYWQpCisKK0FsbCB0aGUgcGFja2FnZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgTWVyY3VyaWFsIHJlcG9zaXRvcmllcyByb290ZWQgaW4KK2h0dHA6Ly9iaXRidWNrZXQub3JnL2lhbmIvCisKKyogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZQorKiBodHRwOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3Rlc2NyaXB0CisqIGh0dHA6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGVkZXBsb3kKKyogaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYgorKiAuLi4gYW5kIG90aGVycworCitVc2U6OgorCisgICAgaGcgY2xvbmUgaHR0cDovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZQorCit0byBjaGVjayBvdXQgYSB3b3JraW5nIGNvcHkgb2YgUGFzdGUuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9mdXR1cmUudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZnV0dXJlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTdjNzUwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvZnV0dXJlLnR4dApAQCAtMCwwICsxLDEwOCBAQAorVGhlIEZ1dHVyZSBPZiBQYXN0ZQorPT09PT09PT09PT09PT09PT09PQorCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCitQYXN0ZSBoYXMgYmVlbiB1bmRlciBkZXZlbG9wbWVudCBmb3IgYSB3aGlsZSwgYW5kIGhhcyBsb3RzIG9mIGNvZGUgaW4gaXQuICBUb28gbXVjaCBjb2RlISAgVGhlIGNvZGUgaXMgbGFyZ2VseSBkZWNvdXBsZWQgZXhjZXB0IGZvciBzb21lIGNvcmUgZnVuY3Rpb25zIHNoYXJlZCBieSBtYW55IHBhcnRzIG9mIHRoZSBjb2RlLiAgVGhvc2UgY29yZSBmdW5jdGlvbnMgYXJlIGxhcmdlbHkgcmVwbGFjZWQgaW4gYFdlYk9iIDxodHRwOi8vcHl0aG9ucGFzdGUub3JnL3dlYm9iLz5gXywgYW5kIHJlcGxhY2VkIHdpdGggYmV0dGVyIGltcGxlbWVudGF0aW9ucy4KKworVGhlIGZ1dHVyZSBvZiB0aGVzZSBwaWVjZXMgaXMgdG8gc3BsaXQgdGhlbSBpbnRvIGluZGVwZW5kZW50IHBhY2thZ2VzLCBhbmQgcmVmYWN0b3IgdGhlIGludGVybmFsIFBhc3RlIGRlcGVuZGVuY2llcyB0byByZWx5IGluc3RlYWQgb24gV2ViT2IuCisKK0FscmVhZHkgRXh0cmFjdGVkCistLS0tLS0tLS0tLS0tLS0tLQorCitwYXN0ZS5maXh0dXJlOgorICBXZWJUZXN0CisgIFNjcmlwdFRlc3QKKworcGFzdGUubGludDoKKyAgd3NnaXJlZi52YWxpZGF0ZQorCitwYXN0ZS5leGNlcHRpb25zIGFuZCBwYXN0ZS5ldmFsZXhjZXB0aW9uOgorICBXZWJFcnJvcgorCitwYXN0ZS51dGlsLnRlbXBsYXRlOgorICBUZW1waXRhCisKKworVG8gQmUgU2VwYXJhdGVkCistLS0tLS0tLS0tLS0tLS0KKworcGFzdGUuaHR0cHNlcnZlciBhbmQgcGFzdGUuZGVidWcud2F0Y2h0aHJlYWRzOgorICBOb3Qgc3VyZSB3aGF0IHRvIGNhbGwgdGhpcy4KKworcGFzdGUuY2FzY2FkZSBhbmQgcGFzdGUuZXJyb3Jkb2N1bWVudHM6CisgIE5vdCBzdXJlOyBCZW4gaGFzIGFuIGltcGxlbWVudGF0aW9uIG9mIGVycm9yZG9jdW1lbnRzIGluIGBgcHlsb25zLm1pZGRsZXdhcmUuU3RhdHVzQ29kZVJlZGlyZWN0YGAKKworcGFzdGUudXJsbWFwLCBwYXN0ZS5kZXBsb3kuY29uZmlnLlByZWZpeE1pZGRsZXdhcmU6CisgIEluLi4uIHNvbWUgcm91dGluZyB0aGluZz8gIFRvZ2V0aGVyIHdpdGggdGhlIHByZXZpb3VzIHBhY2thZ2U/CisKK3Bhc3RlLnByb3h5OgorICBXU0dJUHJveHkgKG5lZWRzIGxvdHMgb2YgY2xlYW51cCB0aG91Z2gpCisKK3Bhc3RlLmZpbGVhcHAsIHBhc3RlLnVybHBhcnNlci5TdGF0aWNVUkxQYXJzZXIsIHBhc3RlLnVybHBhcnNlci5Qa2dSZXNvdXJjZXNQYXJzZXI6CisgIEluIHNvbWUgbmV3IGZpbGUtc2VydmluZyBwYWNrYWdlLgorCitwYXN0ZS5jZ2lhcHAsIHdwaHAuZmNnaV9hcHA6CisgIFNvbWUgcHJveHlpc2ggYXBwLi4uIG1heWJlIFdTR0lQcm94eT8KKworcGFzdGUudHJhbnNsb2dnZXIsIHBhc3RlLmRlYnVnLnByaW50cywgcGFzdGUudXRpbC50aHJlYWRlZHByaW50LCB3c2dpZmlsdGVyLnByb3h5YXBwLkRlYnVnSGVhZGVyczoKKyAgU29tZS4uLiBvdGhlciBwbGFjZS4gIFNvbWV0aGluZyBsb2dneS4KKworcGFzdGUucmVnaXN0cnksIHBhc3RlLmNvbmZpZzoKKyAgTm90IHN1cmUuICBBbGJlcnRvIFZhbHZlcmRlIGV4cHJlc3NlZCBpbnRlcmVzdCBpbiBzcGxpdHRpbmcgb3V0IHBhc3RlLnJlZ2lzdHJ5LgorCitwYXN0ZS5jZ2l0Yl9jYXRjaGVyOgorICBNb3ZlIHRvIFdlYkVycm9yPyAgTm90IHN1cmUgaWYgaXQgbWF0dGVycy4gIEZvciBzb21lIHJlYXNvbiBwZW9wbGUgdXNlIHRoaXMsIHRob3VnaC4KKworCitUbyBEZXByZWNhdGUKKy0tLS0tLS0tLS0tLQorCisoSW4gdGhhdCwgSSB3b24ndCBleHRyYWN0IHRoZXNlIGFueXdoZXJlOyBJJ20gbm90IGdvaW5nIHRvIGRvIGFueSBiaWcgZGVsZXRlcyBhbnl0aW1lIHNvb24sIHRob3VnaCkKKworcGFzdGUucmVjdXJzaXZlCisgIEJldHRlciB0byBkbyBpdCBtYW51YWxseSAod2l0aCB3ZWJvYi5SZXF1ZXN0LmdldF9yZXNwb25zZSkKKworcGFzdGUud3NnaXdyYXBwZXJzLCBwYXN0ZS5yZXF1ZXN0LCBwYXN0ZS5yZXNwb25zZSwgcGFzdGUud3NnaWxpYiwgcGFzdGUuaHR0cGhlYWRlcnMsIHBhc3RlLmh0dHBleGNlcHRpb25zOgorICBBbGwgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgYWxyZWFkeSBpbiBXZWJPYi4KKworcGFzdGUudXJscGFyc2VyLlVSTFBhcnNlcjoKKyAgUmVhbGx5IHRoaXMgaXMgdGllZCB0byBwYXN0ZS53ZWJraXQgbW9yZSB0aGFuIGFueXRoaW5nLgorCitwYXN0ZS5hdXRoLio6CisgIFdlbGwsIHRoZXNlIGFsbCBuZWVkIHRvIGJlIHJlZmFjdG9yZWQsIGFuZCByZXBsYWNlbWVudHMgZXhpc3QgaW4gQXV0aEtpdCBhbmQgcmVwb3plLndoby4gIFNvbWUgcGllY2VzIG1pZ2h0IHN0aWxsIGhhdmUgdXRpbGl0eS4KKworcGFzdGUuZGVidWcucHJvZmlsZToKKyAgSSB0aGluayByZXBvemUucHJvZmlsZSBzdXBlcnNlZGVzIHRoaXMuCisKK3Bhc3RlLmRlYnVnLndkZ192YWxpZGF0b3I6CisgIEl0IGNvdWxkIGdldCByZWltcGxlbWVudGVkIHdpdGggbW9yZSBvcHRpb25zIGZvciB2YWxpZGF0b3JzLCBidXQgSSdtIG5vdCByZWFsbHkgdGhhdCBpbnRlcmVzdGVkIGF0IHRoZSBtb21lbnQuICBUaGUgY29kZSBpcyBub3RoaW5nIGZhbmN5LgorCitwYXN0ZS50cmFuc2FjdGlvbjoKKyAgTW9yZSBnZW5lcmFsIGluIHJlcG96ZS50bQorCitwYXN0ZS51cmw6CisgIE5vIG9uZSB1c2VzIHRoaXMKKworCitVbmRlY2lkZWQKKy0tLS0tLS0tLQorCitwYXN0ZS5kZWJ1Zy5mc2RpZmY6CisgIE1heWJlIFNjcmlwdFRlc3Q/CisKK3Bhc3RlLnNlc3Npb246CisgIEl0J3MgYW4gb2theSBuYWl2ZSBzZXNzaW9uIHN5c3RlbS4gIEJ1dCBtYXliZSBCZWFrZXIgbWFrZXMgaXQgaXJyZWxldmFudCAoQmVha2VyIGRvZXMgc2VlbSBzbGlnaHRseSBtb3JlIGNvbXBsZXggdG8gc2V0dXApLiAgQnV0IHRoZW4sIHRoaXMgY2FuIGp1c3QgbGl2ZSBoZXJlIGluZGVmaW5pdGVseS4KKworcGFzdGUuZ3ppcHBlcjoKKyAgSSdtIGEgbGl0dGxlIHVuY29tZm9ydGFibGUgd2l0aCB0aGlzIGluIGNvbmNlcHQuICBJdCdzIGxhcmdlbHkgaW4gV2ViT2IgcmlnaHQgbm93LCBidXQgbm90IGFzIG1pZGRsZXdhcmUuCisKK3Bhc3RlLnJlbG9hZGVyOgorICBNYXliZSB0aGlzIHNob3VsZCBiZSBtb3ZlZCB0byBwYXN0ZS5zY3JpcHQgKGkuZS4sIHBhc3RlciBzZXJ2ZSkKKworcGFzdGUuZGVidWcuZGVidWdhcHAsIHBhc3RlLnNjcmlwdC50ZXN0YXBwOgorICBBbG9uZ3NpZGUgb3RoZXIgZGVidWdnaW5nIHRvb2xzLCBJIGd1ZXNzCisKK3Bhc3RlLnByb2dyZXNzOgorICBOb3Qgc3VyZSB0aGlzIHdvcmtzLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvaW5jbHVkZS9jb250YWN0LnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2luY2x1ZGUvY29udGFjdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdlMGJjMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2luY2x1ZGUvY29udGFjdC50eHQKQEAgLTAsMCArMSw1IEBACitJZiB5b3UgaGF2ZSBxdWVzdGlvbnMgYWJvdXQgdGhpcyBkb2N1bWVudCwgcGxlYXNlIGNvbnRhY3QgdGhlIGBwYXN0ZQorbWFpbGluZyBsaXN0IDxodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXAvcGFzdGUtdXNlcnM+YF8KK29yIHRyeSBJUkMgKGBgI3B5dGhvbnBhc3RlYGAgb24gZnJlZW5vZGUubmV0KS4gIElmIHRoZXJlJ3Mgc29tZXRoaW5nIHRoYXQKK2NvbmZ1c2VkIHlvdSBhbmQgeW91IHdhbnQgdG8gZ2l2ZSBmZWVkYmFjaywgcGxlYXNlIGBzdWJtaXQgYW4gaXNzdWUKKzxodHRwOi8vcHl0aG9ucGFzdGUub3JnL3RyYWMvbmV3dGlja2V0P2NvbXBvbmVudD1kb2N1bWVudGF0aW9uPmBfLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvaW5jbHVkZS9yZWZlcmVuY2VfaGVhZGVyLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2luY2x1ZGUvcmVmZXJlbmNlX2hlYWRlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI3M2Y4NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2luY2x1ZGUvcmVmZXJlbmNlX2hlYWRlci50eHQKQEAgLTAsMCArMSw1IEBACitQYXN0ZSBSZWZlcmVuY2UgRG9jdW1lbnQKK0BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAorCisuLiBjb250ZW50czo6CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2luZGV4LnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL2luZGV4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDZlOWZiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvaW5kZXgudHh0CkBAIC0wLDAgKzEsNjkgQEAKK1B5dGhvbiBQYXN0ZQorPT09PT09PT09PT09CisKK0NvbnRlbnRzOgorCisuLiB0b2N0cmVlOjoKKyAgIDptYXhkZXB0aDogMQorCisgICBuZXdzCisgICBmdXR1cmUKKyAgIHRlc3RpbmctYXBwbGljYXRpb25zCisgICB1cmwtcGFyc2luZy13aXRoLXdzZ2kKKyAgIGRvLWl0LXlvdXJzZWxmLWZyYW1ld29yaworICAgcGFzdGUtaHR0cHNlcnZlci10aHJlYWRwb29sCisgICBkZXZlbG9wZXItZmVhdHVyZXMKKyAgIERldmVsb3Blckd1aWRlbGluZXMKKyAgIFN0eWxlR3VpZGUKKyAgIHBhc3RlLWh0dHBzZXJ2ZXItdGhyZWFkcG9vbAorICAgdGVzdGluZy1hcHBsaWNhdGlvbnMKKyAgIHVybC1wYXJzaW5nLXdpdGgtd3NnaQorICAgY29tbXVuaXR5L2luZGV4LnR4dAorICAgY29tbXVuaXR5L21haWxpbmctbGlzdC50eHQKKyAgIGNvbW11bml0eS9yZXBvc2l0b3J5LnR4dAorICAgZG93bmxvYWQvaW5kZXgudHh0CisgICBsaWNlbnNlCisKK0luZGljZXMgYW5kIHRhYmxlcworPT09PT09PT09PT09PT09PT09CisKKyogOnJlZjpgZ2VuaW5kZXhgCisqIDpyZWY6YG1vZGluZGV4YAorKiA6cmVmOmBzZWFyY2hgCisKKy4uIGNvbW1lbnQ6CisKKyAgIEkgd2FudCB0byBwdXQgdGhlc2Ugc29tZXdoZXJlIHNvbWV0aW1lLCBidXQgbm8gcGxhY2UgZm9yIHRoZW0gbm93Li4uCisgICBQeXRob24gUGFzdGUgLS0gNTAlIHRhc3RpZXIgdGhhbiBFbG1lcidzIQorICAgUGFzdGU6IG1ha2luZyB0aGUgd2ViIHN0aWNreS4KKyAgIEZpeCBicm9rZW4gd2Vic2l0ZXMgYnkgYXBwbHlpbmcgUGFzdGUgbGliZXJhbGx5LgorICAgUGFzdGU6IHBhcGVyIG92ZXIgeW91ciBpbmNvbnNpc3RlbmNpZXMuCisgICBQYXN0ZTogYSBzb2Z0IG1peHR1cmUgb2YgbWFsbGVhYmxlIGNvbnNpc3RlbmN5LgorICAgUGFzdGU6IGEgdGFzdHkgbWl4dHVyZSB0byBiZSBzcHJlYWQgb24gYnJlYWQgb3IgY3JhY2tlcnMuCisgICBQYXN0ZTogZ2x1ZSB0aGF0IHdvbid0IGh1cnQgeW91IGlmIHlvdSBlYXQgaXQuCisgICBQeXRob24gUGFzdGU6IHRoZSB3ZWIgZXh0cnVkZWQgaW50byB0aGUgZm9ybSBvZiBhIHNuYWtlLgorICAgUGFzdGU6IHRoZSB2aW5lZ2FyIGVlbC4KKyAgIFBhc3RlOiB5b3UgYnJpbmcgdGhlIGN1dC4KKyAgIFBhc3RlOiBhIGRvdWdoeSBzdWJzdGFuY2UgZnJvbSB3aGljaCB0byBtYWtlIG1ldGFwaG9yaWNhbCB3ZWIgY3VwY2FrZXMuCisgICBMQU1QPyAgTEFNUFAhCisgICBQdXR0aW5nIHRoZSBQIGluIFdlcCAyLjAhCisgICBGcmFua2Vud2ViIGNydXNoIHRpbnkgaHVtYW5zIQorICAgRFNMPyBEU0YhCisgICBQYXN0ZTogQ29tZm9ydCBmb3IgdGhlIGZyYW1ld29yay1zY2FycmVkCisKK090aGVyIENvbXBvbmVudHMKKz09PT09PT09PT09PT09PT0KKworKiBgUGFzdGUgRGVwbG95IDwuL2RlcGxveS8+YF8KKworKiBgUGFzdGUgU2NyaXB0IDwuL3NjcmlwdC8+YF8KKworKiBgV2ViT2IgPGh0dHA6Ly93ZWJvYi5vcmcvPmBfCisKKyogYFdTR0kgc3BlY2lmaWNhdGlvbiAoUEVQIDMzMykgPGh0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDMzMy5odG1sPmBfCisKK0xpY2Vuc2UKKz09PT09PT0KKworUGFzdGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGBNSVQgbGljZW5zZQorPGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwPmBfLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbGljZW5zZS50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9saWNlbnNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODEwZGVjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbGljZW5zZS50eHQKQEAgLTAsMCArMSwyMCBAQAorQ29weXJpZ2h0IChjKSAyMDA2LTIwMDcgSWFuIEJpY2tpbmcgYW5kIENvbnRyaWJ1dG9ycworCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKK2EgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZword2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCitwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KK3RoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKK2luY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKK0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUKK0xJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KK09GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgorV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGguYXV0aF90a3QudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9hdXRoLmF1dGhfdGt0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjIyYmNmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9hdXRoLmF1dGhfdGt0LnR4dApAQCAtMCwwICsxLDE0IEBACis6bW9kOmBwYXN0ZS5hdXRoLmF1dGhfdGt0YCAtLSBhdXRoX3RrdCBjb29raWUgcGFyc2luZworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmF1dGguYXV0aF90a3QKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogQXV0aFRLVE1pZGRsZXdhcmUKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfYXV0aF90a3RfbWlkZGxld2FyZQorLi4gYXV0b2NsYXNzOjogQXV0aFRpY2tldAorLi4gYXV0b2V4Y2VwdGlvbjo6IEJhZFRpY2tldAorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5iYXNpYy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGguYmFzaWMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmOGYyMWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGguYmFzaWMudHh0CkBAIC0wLDAgKzEsMTEgQEAKKzptb2Q6YHBhc3RlLmF1dGguYmFzaWNgIC0tIEJhc2ljIEhUVFAgYXV0aGVudGljYXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmF1dGguYmFzaWMKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogQXV0aEJhc2ljQXV0aGVudGljYXRvcgorLi4gYXV0b2NsYXNzOjogQXV0aEJhc2ljSGFuZGxlcgorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9iYXNpYwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9hdXRoLmNhcy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGguY2FzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzJkZDdhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9hdXRoLmNhcy50eHQKQEAgLTAsMCArMSwxMSBAQAorOm1vZDpgcGFzdGUuYXV0aC5jYXNgIC0tIENBUyBhdXRoZW50aWNhdGlvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuYXV0aC5jYXMKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogQXV0aENBU0hhbmRsZXIKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGguY29va2llLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5jb29raWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMGNiNTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGguY29va2llLnR4dApAQCAtMCwwICsxLDEyIEBACis6bW9kOmBwYXN0ZS5hdXRoLmNvb2tpZWAgLS0gQ29va2llLWJhc2VkIGF1dGhlbnRpY2F0aW9uCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5hdXRoLmNvb2tpZQorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBBdXRoQ29va2llU2lnbmVyCisuLiBhdXRvY2xhc3M6OiBBdXRoQ29va2llSGFuZGxlcgorLi4gYXV0b2NsYXNzOjogQXV0aENvb2tpZUVudmlyb24KKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfYXV0aF9jb29raWUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5kaWdlc3QudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9hdXRoLmRpZ2VzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEzMzU3ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5kaWdlc3QudHh0CkBAIC0wLDAgKzEsMTIgQEAKKzptb2Q6YHBhc3RlLmF1dGguZGlnZXN0YCAtLSBIVFRQIERpZ2VzdCBsb2dpbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5hdXRoLmRpZ2VzdAorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBBdXRoRGlnZXN0QXV0aGVudGljYXRvcgorLi4gYXV0b2NsYXNzOjogQXV0aERpZ2VzdEhhbmRsZXIKKy4uIGF1dG9mdW5jdGlvbjo6IGRpZ2VzdF9wYXNzd29yZAorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9kaWdlc3QKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5mb3JtLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5mb3JtLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDU5NTg5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9hdXRoLmZvcm0udHh0CkBAIC0wLDAgKzEsMTAgQEAKKzptb2Q6YHBhc3RlLmF1dGguZm9ybWAgLS0gSFRNTCBmb3JtL2Nvb2tpZSBhdXRoZW50aWNhdGlvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5hdXRoLmZvcm0KKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogQXV0aEZvcm1IYW5kbGVyCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX2Zvcm0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5ncmFudGlwLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5ncmFudGlwLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWQ0NWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9hdXRoLmdyYW50aXAudHh0CkBAIC0wLDAgKzEsMTAgQEAKKzptb2Q6YHBhc3RlLmF1dGguZ3JhbnRpcGAgLS0gU2V0IHVzZXIgYW5kIGdyb3VwcyBiYXNlZCBvbiBJUCBhZGRyZXNzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuYXV0aC5ncmFudGlwCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IEdyYW50SVBNaWRkbGV3YXJlCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX2dyYW50aXAKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvYXV0aC5tdWx0aS50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGgubXVsdGkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4MTNlZTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2F1dGgubXVsdGkudHh0CkBAIC0wLDAgKzEsMTEgQEAKKzptb2Q6YHBhc3RlLmF1dGgubXVsdGlgIC0tIEF1dGhlbnRpY2F0aW9uIHZpYSBvbmUgb2YgbXVsdGlwbGUgbWV0aG9kcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5hdXRoLm11bHRpCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IE11bHRpSGFuZGxlcgorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvY2FzY2FkZS50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2Nhc2NhZGUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NGM3MzUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2Nhc2NhZGUudHh0CkBAIC0wLDAgKzEsMTAgQEAKKzptb2Q6YHBhc3RlLmNhc2NhZGVgIC0tIHNlbmQgcmVxdWVzdHMgdG8gbXVsdGlwbGUgYXBwbGljYXRpb25zIHVudGlsIHN1Y2Nlc3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmNhc2NhZGUKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogQ2FzY2FkZQorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9jYXNjYWRlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2NnaWFwcC50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2NnaWFwcC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5ZWM2ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvY2dpYXBwLnR4dApAQCAtMCwwICsxLDExIEBACis6bW9kOmBwYXN0ZS5jZ2lhcHBgIC0tIHJ1biBDR0kgc2NyaXB0cyBhcyBXU0dJIGFwcGxpY2F0aW9ucworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmNnaWFwcAorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBDR0lBcHBsaWNhdGlvbgorLi4gYXV0b2V4Y2VwdGlvbjo6IENHSUVycm9yCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX2NnaV9hcHBsaWNhdGlvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9jZ2l0Yl9jYXRjaGVyLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvY2dpdGJfY2F0Y2hlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRmODc3MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvY2dpdGJfY2F0Y2hlci50eHQKQEAgLTAsMCArMSwxMCBAQAorOm1vZDpgcGFzdGUuY2dpdGJfY2F0Y2hlcmAgLS0gY2F0Y2ggZXhjZXB0aW9ucyB1c2luZyBjZ2l0YgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuY2dpdGJfY2F0Y2hlcgorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBDZ2l0Yk1pZGRsZXdhcmUKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfY2dpdGJfbWlkZGxld2FyZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9kZWJ1Zy5kZWJ1Z2FwcC50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2RlYnVnLmRlYnVnYXBwLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWIwYTU0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9kZWJ1Zy5kZWJ1Z2FwcC50eHQKQEAgLTAsMCArMSwxMyBAQAorOm1vZDpgcGFzdGUuZGVidWcuZGVidWdhcHBgIC0tIGRlYnVnIGFwcAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuZGVidWcuZGVidWdhcHAKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogU2ltcGxlQXBwbGljYXRpb24KKy4uIGF1dG9jbGFzczo6IFNsb3dDb25zdW1lcgorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV90ZXN0X2FwcAorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9zbG93X2FwcAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2RlYnVnLmZzZGlmZi50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2RlYnVnLmZzZGlmZi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEyNjdlNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZGVidWcuZnNkaWZmLnR4dApAQCAtMCwwICsxLDE1IEBACis6bW9kOmBwYXN0ZS5kZWJ1Zy5mc2RpZmZgIC0tIFNob3cgZGlmZmVyZW5jZXMgYmV0d2VlbiBkaXJlY3RvcmllcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmRlYnVnLmZzZGlmZgorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBEaWZmCisuLiBhdXRvY2xhc3M6OiBTbmFwc2hvdAorLi4gYXV0b2NsYXNzOjogRmlsZQorLi4gYXV0b2NsYXNzOjogRGlyCisuLiBhdXRvZnVuY3Rpb246OiByZXBvcnRfZXhwZWN0ZWRfZGlmZnMKKy4uIGF1dG9mdW5jdGlvbjo6IHNob3dfZGlmZgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2RlYnVnLnByaW50cy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2RlYnVnLnByaW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc4N2U3MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZGVidWcucHJpbnRzLnR4dApAQCAtMCwwICsxLDEwIEBACis6bW9kOmBwYXN0ZS5kZWJ1Zy5wcmludHNgIC0tIGNhcHR1cmUgcHJpbnQgb3V0cHV0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5kZWJ1Zy5wcmludHMKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogUHJpbnREZWJ1Z01pZGRsZXdhcmUKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9kZWJ1Zy5wcm9maWxlLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZGVidWcucHJvZmlsZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NjMDkxMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZGVidWcucHJvZmlsZS50eHQKQEAgLTAsMCArMSwxMyBAQAorOm1vZDpgcGFzdGUuZGVidWcucHJvZmlsZWAgLS0gcHJvZmlsZSBhcHBsaWNhdGlvbnMgYW5kIHJlcXVlc3RzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmRlYnVnLnByb2ZpbGUKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogUHJvZmlsZU1pZGRsZXdhcmUKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfcHJvZmlsZV9taWRkbGV3YXJlCisuLiBhdXRvZnVuY3Rpb246OiBwcm9maWxlX2RlY29yYXRvcgorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZGVidWcud2F0Y2h0aHJlYWRzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZGVidWcud2F0Y2h0aHJlYWRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDBjOTE1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9kZWJ1Zy53YXRjaHRocmVhZHMudHh0CkBAIC0wLDAgKzEsMTIgQEAKKzptb2Q6YHBhc3RlLmRlYnVnLndhdGNodGhyZWFkc2AgLS0gd2F0Y2ggdGhyZWFkIHdvcmtlcnMgaW4gcGFzdGUuaHR0cHNlcnZlcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5kZWJ1Zy53YXRjaHRocmVhZHMKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogV2F0Y2hUaHJlYWRzCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX3dhdGNoX3RocmVhZHMKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfYmFkX2FwcAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2RlYnVnLndkZ192YWxpZGF0ZS50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2RlYnVnLndkZ192YWxpZGF0ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZmN2VmZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZGVidWcud2RnX3ZhbGlkYXRlLnR4dApAQCAtMCwwICsxLDExIEBACis6bW9kOmBwYXN0ZS5kZWJ1Zy5kZWJ1Z2FwcGAgLS0gZGVidWcgYXBwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5kZWJ1Zy53ZGdfdmFsaWRhdGUKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogV0RHVmFsaWRhdGVNaWRkbGV3YXJlCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX3dkZ192YWxpZGF0ZV9taWRkbGV3YXJlCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZXJyb3Jkb2N1bWVudC50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2Vycm9yZG9jdW1lbnQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMWFjMTgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2Vycm9yZG9jdW1lbnQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKzptb2Q6YHBhc3RlLmVycm9yZG9jdW1lbnRgIC0tIERvIGludGVybmFsIHJlZGlyZWN0cyBmb3IgZXJyb3IgcmVzcG9uc2VzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuZXJyb3Jkb2N1bWVudAorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBTdGF0dXNCYXNlZEZvcndhcmQKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfZXJyb3Jkb2N1bWVudAorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZXZhbGV4Y2VwdGlvbi50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2V2YWxleGNlcHRpb24udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzNTg3ZmUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2V2YWxleGNlcHRpb24udHh0CkBAIC0wLDAgKzEsOSBAQAorOm1vZDpgcGFzdGUuZXZhbGV4Y2VwdGlvbmAgLS0gSW50ZXJhY3RpdmUgZGVidWdnaW5nIGZvciBlcnJvcnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5ldmFsZXhjZXB0aW9uCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IEV2YWxFeGNlcHRpb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZXhjZXB0aW9ucy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2V4Y2VwdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMWE2M2YKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2V4Y2VwdGlvbnMudHh0CkBAIC0wLDAgKzEsNDggQEAKKzptb2Q6YHBhc3RlLmV4Y2VwdGlvbnNgIC0tIENhdGNoLCBkaXNwbGF5LCBhbmQgbm90aWZ5IGZvciBleGNlcHRpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmUKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogRXJyb3JNaWRkbGV3YXJlCisuLiBhdXRvZnVuY3Rpb246OiBoYW5kbGVfZXhjZXB0aW9uCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX2Vycm9yX21pZGRsZXdhcmUKKworOm1vZDpgcGFzdGUuZXhjZXB0aW9ucy5jb2xsZWN0b3JgIC0tIENvbGxlY3Rpb24gaW5mb3JtYXRpb24gZnJvbSBleGNlcHRpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmV4Y2VwdGlvbnMuY29sbGVjdG9yCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IEV4Y2VwdGlvbkNvbGxlY3RvcgorLi4gYXV0b2Z1bmN0aW9uOjogY29sbGVjdF9leGNlcHRpb24KKworOm1vZDpgcGFzdGUuZXhjZXB0aW9ucy5mb3JtYXR0ZXJgIC0tIEZvcm1hdCBleGNlcHRpb24gaW5mb3JtYXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5leGNlcHRpb25zLmZvcm1hdHRlcgorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBUZXh0Rm9ybWF0dGVyCisuLiBhdXRvY2xhc3M6OiBIVE1MRm9ybWF0dGVyCisuLiBhdXRvZnVuY3Rpb246OiBmb3JtYXRfaHRtbAorLi4gYXV0b2Z1bmN0aW9uOjogZm9ybWF0X3RleHQKKworOm1vZDpgcGFzdGUuZXhjZXB0aW9ucy5yZXBvcnRlcmAgLS0gUmVwb3J0IGV4Y2VwdGlvbnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5leGNlcHRpb25zLnJlcG9ydGVyCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IEVtYWlsUmVwb3J0ZXIKKy4uIGF1dG9jbGFzczo6IExvZ1JlcG9ydGVyCisuLiBhdXRvY2xhc3M6OiBGaWxlUmVwb3J0ZXIKKy4uIGF1dG9jbGFzczo6IFdTR0lBcHBSZXBvcnRlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9maWxlYXBwLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZmlsZWFwcC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZmZWZkMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZmlsZWFwcC50eHQKQEAgLTAsMCArMSwxNSBAQAorOm1vZDpgcGFzdGUuZmlsZWFwcGAgLS0gU2VydmUgZmlsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5maWxlYXBwCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IEZpbGVBcHAKKy4uIGF1dG9jbGFzczo6IERpcmVjdG9yeUFwcAorLi4gYXV0b2Z1bmN0aW9uOjogRGF0YUFwcAorLi4gYXV0b2Z1bmN0aW9uOjogQXJjaGl2ZVN0b3JlCisKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2ZpeHR1cmUudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9maXh0dXJlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTE5Y2UyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9maXh0dXJlLnR4dApAQCAtMCwwICsxLDQwIEBACis6bW9kOmBwYXN0ZS5maXh0dXJlYCAtLSBUZXN0IGFwcGxpY2F0aW9ucworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gY29udGVudHM6OgorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuZml4dHVyZQorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBUZXN0QXBwCisgICA6bWVtYmVyczoKKy4uIGF1dG9jbGFzczo6IFRlc3RSZXF1ZXN0CisKK0Zvcm1zCistLS0tLQorCisuLiBhdXRvY2xhc3M6OiBGb3JtCisgICA6bWVtYmVyczoKKy4uIGF1dG9jbGFzczo6IEZpZWxkCisgICA6bWVtYmVyczoKKy4uIGF1dG9jbGFzczo6IFNlbGVjdAorLi4gYXV0b2NsYXNzOjogUmFkaW8KKy4uIGF1dG9jbGFzczo6IENoZWNrYm94CisuLiBhdXRvY2xhc3M6OiBUZXh0CisuLiBhdXRvY2xhc3M6OiBUZXh0YXJlYQorLi4gYXV0b2NsYXNzOjogSGlkZGVuCisuLiBhdXRvY2xhc3M6OiBTdWJtaXQKKworU2NyaXB0IFRlc3RpbmcKKy0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IFRlc3RGaWxlRW52aXJvbm1lbnQKKyAgIDptZW1iZXJzOgorLi4gYXV0b2NsYXNzOjogUHJvY1Jlc3VsdAorICAgOm1lbWJlcnM6CisuLiBhdXRvY2xhc3M6OiBGb3VuZEZpbGUKKy4uIGF1dG9jbGFzczo6IEZvdW5kRGlyCisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9nemlwcGVyLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZ3ppcHBlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAzNjQyMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvZ3ppcHBlci50eHQKQEAgLTAsMCArMSwxMCBAQAorOm1vZDpgcGFzdGUuZ3ppcHBlcmAgLS0gR3ppcC1jb21wcmVzcyByZXNwb25zZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5nemlwcGVyCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IG1pZGRsZXdhcmUKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfZ3ppcF9taWRkbGV3YXJlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2h0dHBleGNlcHRpb25zLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvaHR0cGV4Y2VwdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNjU3NmIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2h0dHBleGNlcHRpb25zLnR4dApAQCAtMCwwICsxLDQ5IEBACis6bW9kOmBwYXN0ZS5odHRwZXhjZXB0aW9uc2AgLS0gRWFzaWx5IHByb2R1Y3QgSFRUUCBlcnJvcnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuaHR0cGV4Y2VwdGlvbnMKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogSFRUUEV4Y2VwdGlvbkhhbmRsZXIKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfbWlkZGxld2FyZQorCitFeGNlcHRpb25zCistLS0tLS0tLS0tCisKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQRXhjZXB0aW9uCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUEVycm9yCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFJlZGlyZWN0aW9uCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUE11bHRpcGxlQ2hvaWNlcworLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBNb3ZlZFBlcm1hbmVudGx5CisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUEZvdW5kCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUE5vdE1vZGlmaWVkCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFVzZVByb3h5CisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFRlbXBvcmFyeVJlZGlyZWN0CisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUENsaWVudEVycm9yCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUEJhZFJlcXVlc3QKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQVW5hdXRob3JpemVkCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFBheW1lbnRSZXF1aXJlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBGb3JiaWRkZW4KKy4uIGF1dG9leGNlcHRpb246OiBIVFRQTm90Rm91bmQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQTWV0aG9kTm90QWxsb3dlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBOb3RBY2NlcHRhYmxlCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBSZXF1ZXN0VGltZW91dAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBDb25mbGljdAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBHb25lCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUExlbmd0aFJlcXVpcmVkCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFByZWNvbmRpdGlvbkZhaWxlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBSZXF1ZXN0RW50aXR5VG9vTGFyZ2UKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQUmVxdWVzdFVSSVRvb0xvbmcKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQVW5zdXBwb3J0ZWRNZWRpYVR5cGUKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQUmVxdWVzdFJhbmdlTm90U2F0aXNmaWFibGUKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQRXhwZWN0YXRpb25GYWlsZWQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQU2VydmVyRXJyb3IKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQSW50ZXJuYWxTZXJ2ZXJFcnJvcgorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBOb3RJbXBsZW1lbnRlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBCYWRHYXRld2F5CisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFNlcnZpY2VVbmF2YWlsYWJsZQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBHYXRld2F5VGltZW91dAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBWZXJzaW9uTm90U3VwcG9ydGVkCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2h0dHBoZWFkZXJzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvaHR0cGhlYWRlcnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmNWM3NGIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2h0dHBoZWFkZXJzLnR4dApAQCAtMCwwICsxLDggQEAKKzptb2Q6YHBhc3RlLmh0dHBoZWFkZXJzYCAtLSBNYW5pcHVsYXRlIEhUVFAgSGVhZGVycworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGNvbW1lbnQ6CisgICBJIGp1c3QgZG9uJ3QgZmVlbCBsaWtlIGRvY3VtZW50aW5nIHRoZSBpdGVtcy4uLgorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUuaHR0cGhlYWRlcnMKKyAgIDptZW1iZXJzOgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9odHRwc2VydmVyLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvaHR0cHNlcnZlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQyNjBjNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvaHR0cHNlcnZlci50eHQKQEAgLTAsMCArMSwxMCBAQAorOm1vZDpgcGFzdGUuaHR0cHNlcnZlcmAgLS0gSFRUUCBzZXJ2ZXIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5odHRwc2VydmVyCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9mdW5jdGlvbjo6IHNlcnZlCisuLiBhdXRvZnVuY3Rpb246OiBzZXJ2ZXJfcnVubmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL2xpbnQudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9saW50LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTIxY2FmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9saW50LnR4dApAQCAtMCwwICsxLDEwIEBACis6bW9kOmBwYXN0ZS5saW50YCAtLSBDaGVjayBmb3IgdGhlIHZhbGlkaXR5IG9mIFdTR0kgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLmxpbnQKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2Z1bmN0aW9uOjogbWlkZGxld2FyZQorLi4gYXV0b2V4Y2VwdGlvbjo6IFdTR0lXYXJuaW5nCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3BvbnkudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9wb255LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmMyODFiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9wb255LnR4dApAQCAtMCwwICsxLDEwIEBACis6bW9kOmBwYXN0ZS5wb255YCAtLSBBZGQgcG9ueSBwb3dlciB0byB5b3VyIGFwcGxpY2F0aW9uCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5wb255CisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IFBvbnlNaWRkbGV3YXJlCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX3BvbnkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvcHJvZ3Jlc3MudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9wcm9ncmVzcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxNWRjOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvcHJvZ3Jlc3MudHh0CkBAIC0wLDAgKzEsMTMgQEAKKzptb2Q6YHBhc3RlLnByb2dyZXNzYCAtLSBUcmFjayBwcm9ncmVzcyBvZiB1cGxvYWRzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUucHJvZ3Jlc3MKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogVXBsb2FkUHJvZ3Jlc3NNb25pdG9yCisuLiBhdXRvY2xhc3M6OiBVcGxvYWRQcm9ncmVzc1JlcG9ydGVyCisKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3Byb3h5LnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvcHJveHkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNjg0MWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3Byb3h5LnR4dApAQCAtMCwwICsxLDE0IEBACis6bW9kOmBwYXN0ZS5wcm94eWAgLS0gUHJveHkgV1NHSSByZXF1ZXN0cyB0byBIVFRQIHJlcXVlc3RzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5wcm94eQorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBQcm94eQorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9wcm94eQorLi4gYXV0b2NsYXNzOjogVHJhbnNwYXJlbnRQcm94eQorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV90cmFuc3BhcmVudF9wcm94eQorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvcmVjdXJzaXZlLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvcmVjdXJzaXZlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTMzOWRlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZWN1cnNpdmUudHh0CkBAIC0wLDAgKzEsMTAgQEAKKzptb2Q6YHBhc3RlLnJlY3Vyc2l2ZWAgLS0gaW50ZXJuYWwgcmVxdWVzdHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLnJlY3Vyc2l2ZQorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBSZWN1cnNpdmVNaWRkbGV3YXJlCisuLiBhdXRvZnVuY3Rpb246OiBGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZWdpc3RyeS50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3JlZ2lzdHJ5LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmE1YmNlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZWdpc3RyeS50eHQKQEAgLTAsMCArMSwxMyBAQAorOm1vZDpgcGFzdGUucmVnaXN0cnlgIC0tIE1hbmFnZSB0aHJlYWQtbG9jYWwgcmVxdWVzdC1zcGVjaWZpYyBvYmplY3RzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLnJlZ2lzdHJ5CisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IFN0YWNrZWRPYmplY3RQcm94eQorLi4gYXV0b2NsYXNzOjogUmVnaXN0cnkKKy4uIGF1dG9jbGFzczo6IFJlZ2lzdHJ5TWFuYWdlcgorLi4gYXV0b2NsYXNzOjogU3RhY2tlZE9iamVjdFJlc3RvcmVyCisuLiBhdXRvZnVuY3Rpb246OiBtYWtlX3JlZ2lzdHJ5X21hbmFnZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvcmVsb2FkZXIudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZWxvYWRlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIyNzMzMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvcmVsb2FkZXIudHh0CkBAIC0wLDAgKzEsMTQgQEAKKzptb2Q6YHBhc3RlLnJlbG9hZGVyYCAtLSBNb25pdG9yIGZvciBmaWxlIGNoYW5nZXMgdG8gcmVzdGFydCB0aGUgcHJvY2VzcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS5yZWxvYWRlcgorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvZnVuY3Rpb246OiBpbnN0YWxsCisuLiBhdXRvY2xhc3M6OiBNb25pdG9yCisuLiBhdXRvZnVuY3Rpb246OiB3YXRjaF9maWxlCisKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3JlcXVlc3QudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZXF1ZXN0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzdiMTI5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZXF1ZXN0LnR4dApAQCAtMCwwICsxLDE5IEBACis6bW9kOmBwYXN0ZS5yZXF1ZXN0YCAtLSBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGhlIFdTR0kgZW52aXJvbm1lbnQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUucmVxdWVzdAorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvZnVuY3Rpb246OiBnZXRfY29va2llcworLi4gYXV0b2Z1bmN0aW9uOjogZ2V0X2Nvb2tpZV9kaWN0CisuLiBhdXRvZnVuY3Rpb246OiBwYXJzZV9xdWVyeXN0cmluZworLi4gYXV0b2Z1bmN0aW9uOjogcGFyc2VfZm9ybXZhcnMKKy4uIGF1dG9mdW5jdGlvbjo6IGNvbnN0cnVjdF91cmwKKy4uIGF1dG9mdW5jdGlvbjo6IHBhdGhfaW5mb19zcGxpdAorLi4gYXV0b2Z1bmN0aW9uOjogcGF0aF9pbmZvX3BvcAorLi4gYXV0b2Z1bmN0aW9uOjogcmVzb2x2ZV9yZWxhdGl2ZV91cmwKKy4uIGF1dG9jbGFzczo6IEVudmlyb25IZWFkZXJzCisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZXNwb25zZS50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3Jlc3BvbnNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjZjMTI5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9yZXNwb25zZS50eHQKQEAgLTAsMCArMSwxNSBAQAorOm1vZDpgcGFzdGUucmVzcG9uc2VgIC0tIFV0aWxpdHkgZnVuY3Rpb25zIGZvciBwcm9kdWNpbmcgcmVzcG9uc2VzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLnJlc3BvbnNlCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IEhlYWRlckRpY3QKKy4uIGF1dG9mdW5jdGlvbjo6IGhhc19oZWFkZXIKKy4uIGF1dG9mdW5jdGlvbjo6IGhlYWRlcl92YWx1ZQorLi4gYXV0b2Z1bmN0aW9uOjogcmVtb3ZlX2hlYWRlcgorLi4gYXV0b2Z1bmN0aW9uOjogcmVwbGFjZV9oZWFkZXIKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3Nlc3Npb24udHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9zZXNzaW9uLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTExZGZkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy9zZXNzaW9uLnR4dApAQCAtMCwwICsxLDExIEBACis6bW9kOmBwYXN0ZS5zZXNzaW9uYCAtLSBTaW1wbGUgZmlsZS1iYXNlZCBzZXNzaW9ucworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLnNlc3Npb24KKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogU2Vzc2lvbk1pZGRsZXdhcmUKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2Vfc2Vzc2lvbl9taWRkbGV3YXJlCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdHJhbnNhY3Rpb24udHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy90cmFuc2FjdGlvbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyM2EzZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdHJhbnNhY3Rpb24udHh0CkBAIC0wLDAgKzEsMTEgQEAKKzptb2Q6YHBhc3RlLnRyYW5zYWN0aW9uYCAtLSBEQi1BUEkgdHJhbnNhY3Rpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUudHJhbnNhY3Rpb24KKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogVHJhbnNhY3Rpb25NYW5hZ2VyTWlkZGxld2FyZQorLi4gYXV0b2NsYXNzOjogQ29ubmVjdGlvbkZhY3RvcnkKKy4uIGF1dG9mdW5jdGlvbjo6IEJhc2ljVHJhbnNhY3Rpb25IYW5kbGVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3RyYW5zbG9nZ2VyLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdHJhbnNsb2dnZXIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YTcyMTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3RyYW5zbG9nZ2VyLnR4dApAQCAtMCwwICsxLDEwIEBACis6bW9kOmBwYXN0ZS50cmFuc2xvZ2dlcmAgLS0gTG9nIHJlcXVlc3RzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS50cmFuc2xvZ2dlcgorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBUcmFuc0xvZ2dlcgorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9maWx0ZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdXJsLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdXJsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjVlODNmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy91cmwudHh0CkBAIC0wLDAgKzEsMTAgQEAKKzptb2Q6YHBhc3RlLnVybGAgLS0gVVJMIGNvbnZlbmllbmNlIGNsYXNzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUudXJsCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IFVSTAorLi4gYXV0b2NsYXNzOjogSW1hZ2UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdXJsbWFwLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdXJsbWFwLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTU4NGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy91cmxtYXAudHh0CkBAIC0wLDAgKzEsMTEgQEAKKzptb2Q6YHBhc3RlLnVybG1hcGAgLS0gTWFwIFVSTCBwYXRocworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS51cmxtYXAKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogVVJMTWFwCisuLiBhdXRvZnVuY3Rpb246OiB1cmxtYXBfZmFjdG9yeQorLi4gYXV0b2NsYXNzOjogUGF0aFByb3h5VVJMTWFwCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3VybHBhcnNlci50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3VybHBhcnNlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg3NTJhYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdXJscGFyc2VyLnR4dApAQCAtMCwwICsxLDE0IEBACis6bW9kOmBwYXN0ZS51cmxwYXJzZXJgIC0tIEhhbmRsZSBVUkwgcGF0aHMgYW5kIHNlcnZlciBzdGF0aWMgZmlsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGFzdGUudXJscGFyc2VyCisKK01vZHVsZSBDb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IFN0YXRpY1VSTFBhcnNlcgorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9zdGF0aWMKKy4uIGF1dG9jbGFzczo6IFBrZ1Jlc291cmNlc1BhcnNlcgorLi4gYXV0b2Z1bmN0aW9uOjogbWFrZV9wa2dfcmVzb3VyY2VzCisuLiBhdXRvY2xhc3M6OiBVUkxQYXJzZXIKKy4uIGF1dG9mdW5jdGlvbjo6IG1ha2VfdXJsX3BhcnNlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy91dGlsLmltcG9ydF9zdHJpbmcudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy91dGlsLmltcG9ydF9zdHJpbmcudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NTg2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3V0aWwuaW1wb3J0X3N0cmluZy50eHQKQEAgLTAsMCArMSwxMiBAQAorOm1vZDpgcGFzdGUudXRpbC5pbXBvcnRfc3RyaW5nYCAtLSBJbXBvcnQgb2JqZWN0cyBmcm9tIHN0cmluZ3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS51dGlsLmltcG9ydF9zdHJpbmcKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2Z1bmN0aW9uOjogZXZhbF9pbXBvcnQKKy4uIGF1dG9mdW5jdGlvbjo6IHNpbXBsZV9pbXBvcnQKKy4uIGF1dG9mdW5jdGlvbjo6IGltcG9ydF9tb2R1bGUKKy4uIGF1dG9mdW5jdGlvbjo6IHRyeV9pbXBvcnRfbW9kdWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3V0aWwubXVsdGlkaWN0LnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvdXRpbC5tdWx0aWRpY3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YjA5NGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9tb2R1bGVzL3V0aWwubXVsdGlkaWN0LnR4dApAQCAtMCwwICsxLDExIEBACis6bW9kOmBwYXN0ZS51dGlsLm11bHRpZGljdGAgLS0gRGljdGlvbmFyaWVzIHdpdGggbXVsdGlwbGUgdmFsdWVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwYXN0ZS51dGlsLm11bHRpZGljdAorCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBNdWx0aURpY3QKKy4uIGF1dG9jbGFzczo6IFVuaWNvZGVNdWx0aURpY3QKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy93c2dpbGliLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvd3NnaWxpYi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQwZDQyNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvd3NnaWxpYi50eHQKQEAgLTAsMCArMSwxOCBAQAorOm1vZDpgcGFzdGUud3NnaWxpYmAgLS0gTWlzY2VsbGFuZW91cyBXU0dJIHV0aWxpdHkgZnVuY3Rpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLndzZ2lsaWIKKworTW9kdWxlIENvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2Z1bmN0aW9uOjogYWRkX2Nsb3NlCisuLiBhdXRvZnVuY3Rpb246OiBhZGRfc3RhcnRfY2xvc2UKKy4uIGF1dG9mdW5jdGlvbjo6IGNoYWluZWRfYXBwX2l0ZXJzCisuLiBhdXRvY2xhc3M6OiBlbmNvZGVfdW5pY29kZV9hcHBfaXRlcgorLi4gYXV0b2Z1bmN0aW9uOjogY2F0Y2hfZXJyb3JzCisuLiBhdXRvZnVuY3Rpb246OiBjYXRjaF9lcnJvcnNfYXBwCisuLiBhdXRvZnVuY3Rpb246OiByYXdfaW50ZXJhY3RpdmUKKy4uIGF1dG9mdW5jdGlvbjo6IGludGVyYWN0aXZlCisuLiBhdXRvZnVuY3Rpb246OiBkdW1wX2Vudmlyb24KKy4uIGF1dG9mdW5jdGlvbjo6IGludGVyY2VwdF9vdXRwdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvd3NnaXdyYXBwZXJzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL21vZHVsZXMvd3NnaXdyYXBwZXJzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Nzc0ODU0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvbW9kdWxlcy93c2dpd3JhcHBlcnMudHh0CkBAIC0wLDAgKzEsMTAgQEAKKzptb2Q6YHBhc3RlLndzZ2l3cmFwcGVyc2AgLS0gV3JhcHBlciBmdW5jdGlvbnMgZm9yIFdTR0kgcmVxdWVzdCBhbmQgcmVzcG9uc2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHBhc3RlLndzZ2l3cmFwcGVycworCitNb2R1bGUgQ29udGVudHMKKy0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBXU0dJUmVxdWVzdAorLi4gYXV0b2NsYXNzOjogV1NHSVJlc3BvbnNlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9uZXdzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL25ld3MudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZmYxMjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy9uZXdzLnR4dApAQCAtMCwwICsxLDEwNDcgQEAKK05ld3MKKz09PT0KKworLi4gY29udGVudHM6OgorCisyLjAuMgorLS0tLS0KKworKiAjMjI6IEZpeCBpbXByb3BlciBjb21tYXMgaW4gcmVxdWVzdCBoZWFkZXJzIGluIHdzZ2lfZW52aXJvbiAoaHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGUvcHVsbC1yZXF1ZXN0LzIyL2ZpeC1pbXByb3Blci1jb21tYXMtaW4tcmVxdWVzdC1oZWFkZXJzLWluKQorICBGaXhlcyBpc3N1ZSAjNCAoIldTR0kgZW52aXJvbiB0b3RhbGx5IGJvcmtlZCIpIChodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZS9pc3N1ZS80L3dzZ2ktZW52aXJvbi10b3RhbGx5LWJvcmtlZCkKKworKiAjMjQ6IHRlc3Rfd3NnaXJlcXVlc3RfY2hhcnNldDogVXNlIFVURi04IGluc3RlYWQgb2YgaXNvLTg4NTktMSAoaHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGUvcHVsbC1yZXF1ZXN0LzI0L3Rlc3Rfd3NnaXJlcXVlc3RfY2hhcnNldC11c2UtdXRmLTgtaW5zdGVhZCkKKyAgRml4ZXMgaXNzdWUgIzcgKCJQeXRob24gMyB0ZXN0IGZhaWx1cmUiKSAoaHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGUvaXNzdWUvNy9weXRob24tMy10ZXN0LWZhaWx1cmUpCisKKyogIzIzOiBSZXBsYWNlIGNnaS5wYXJzZV9xc2wgdy8gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZS5wYXJzZV9xc2wgKGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3RlL3B1bGwtcmVxdWVzdC8yMy9yZXBsYWNlLWNnaXBhcnNlX3FzbC13KQorICBGaXhlcyBpc3N1ZSAjOCAoImNnaS5wYXJzZV9xc2wgaXMgcGVuZGluZyBkZXByZWNhdGlvbiIpIChodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZS9pc3N1ZS84L2NnaXBhcnNlX3FzbC1pcy1wZW5kaW5nLWRlcHJlY2F0aW9uKQorCisqICMyMDogRXNjYXBlIENHSSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gSFRUUCA0MDQgcmVzcG9uc2VzIChodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZS9wdWxsLXJlcXVlc3QvMjAvZXNjYXBlLWNnaS1lbnZpcm9ubWVudC12YXJpYWJsZXMtaW4taHR0cCkKKworKiAjNjogQWRkIEhUVFAgZXhjZXB0aW9uIGZvciBuZXcgY29kZSA0MjkgIlRvbyBNYW55IFJlcXVlc3RzIiAoaHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvcGFzdGUvcHVsbC1yZXF1ZXN0LzYvYWRkLWh0dHAtZXhjZXB0aW9uLWZvci1uZXctY29kZS00MjktdG9vKQorCisqICMyNTogcmVwbGFjZSBgYGhhc19rZXlgYCBtZXRob2QgdG8gYGBpbmBgIG9wZXJhdG9yICM5IChodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi9wYXN0ZS9wdWxsLXJlcXVlc3QvMjUvcmVwbGFjZS1oYXNfa2V5LW1ldGhvZC10by1pbi1vcGVyYXRvci05KQorICBGaXhlcyAjOSAoInVzZWQgbWV0aG9kcyByZW1vdmVkIGZyb20gcHkzIikgKGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3RlL2lzc3VlLzkvdXNlZC1tZXRob2RzLXJlbW92ZWQtZnJvbS1weTMpCisKKyogIzU6IEludmFsaWQgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBzb2NrZXQgaXMgYWxyZWFkeSBpbiB1c2UgKGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3Bhc3RlL2lzc3VlLzUvaW52YWxpZC1lcnJvci1tZXNzYWdlLXdoZW4tdGhlLXNvY2tldC1pcykKKworMi4wLjEKKy0tLS0tCisKKyogRml4IHNldHVwLnB5IGZvciBzaXggZGVwZW5kZW5jeTogbW92ZSB0aGUgc2l4IGRlcGVuZGVuY3kgZnJvbSBleHRyYXNfcmVxdWlyZQorICB0byBpbnN0YWxsX3JlcXVpcmVzLgorCisqIFBvcnQgcGFzdGUucHJveHkgdG8gUHl0aG9uIDMuCisKKyogRml4IHBhc3RlLmV4Y2VwdGlvbnMuc2VyaWFsX251bWJlcl9nZW5lcmF0b3IuaGFzaF9pZGVudGlmaWVyKCkgb24gUHl0aG9uIDMuCisKKyogRml4IHBhc3RlLnV0aWwudGhyZWFkZWRwcmludC51bmluc3RhbGwoKS4gUmVuYW1lIGR1cGxpY2F0ZWQgdW5pbnN0YWxsKCkKKyAgZnVuY3Rpb24gdG8gdW5pbnN0YWxsX3N0ZGluKCkgYW5kIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUgKF9vbGRzdGluID0+CisgIF9vbGRzdGRpbikuCisKKyogQWRkIFJFQURNRS5yc3QgZmlsZS4KKworMi4wCistLS0KKworKiBFeHBlcmltZW50YWwgUHl0aG9uIDMgc3VwcG9ydC4KKworKiBwYXN0ZSBub3cgcmVxdWlyZXMgdGhlIHNpeCBtb2R1bGUuCisKKyogRHJvcCBzdXBwb3J0IG9mIFB5dGhvbiAyLjUgYW5kIG9sZGVyLgorCisqIEZpeGVkIGBgZWdnOlBhc3RlI2NnaWBgCisKKyogSW4gYGBwYXN0ZS5odHRwc2VydmVyYGA6IGdpdmUgYSAxMDAgQ29udGludWUgcmVzcG9uc2UgZXZlbiB3aGVuIHRoZQorICBzZXJ2ZXIgaGFzIGJlZW4gY29uZmlndXJlZCBhcyBhbiBIVFRQLzEuMCBzZXJ2ZXIgKGNsaWVudHMgbWF5IHNlbmQKKyAgYGBFeHBlY3Q6IDEwMC1Db250aW51ZWBgIGJlZm9yZSB0aGV5IGtub3cgdGhlIHZlcnNpb24pLCBhbmQgd3JhcAorICAxMDAgQ29udGludWUgYGBlbnZpcm9uWyd3c2dpLmlucHV0J11gYCBmaWxlcyB3aXRoIExpbWl0ZWRMZW5ndGhGaWxlCisgIGp1c3QgbGlrZSBub3JtYWwgcmVxdWVzdCBib2RpZXMgYXJlIHdyYXBwZWQsIGtlZXBpbmcgV1NHSQorICBhcHBsaWNhdGlvbnMgZnJvbSBvdmVyLXJlYWRpbmcgZnJvbSB0aGUgc29ja2V0LgorCisqIEZpeGVkIHBhcnNpbmcgb2YgcGF0aHMgYmVnaW5uaW5nIHdpdGggbXVsdGlwbGUgZm9yd2FyZCBzbGFzaGVzLgorCisqIEFkZCB0b3guaW5pIHRvIHJ1biB0ZXN0cyB3aXRoIHRveCBvbiBQeXRob24gMi42LCAyLjcgYW5kIDMuNC4KKworMS43LjUuMQorLS0tLS0tLQorCisqIEZpeCBidWcgaW50cm9kdWNlZCBpbiA6bW9kOmBwYXN0ZS5hdXRoLmF1dGhfdGt0YCAod2l0aCBgYHVybF91bnF1b3RlYGApCisKKzEuNy41CistLS0tLQorCisqIFdvbid0IGluc3RhbGwgYGB0ZXN0cy9gYCBkaXJlY3RvcnkgKGFsc28gY2F1c2VkIGluc3RhbGxhdGlvbgorICBwcm9ibGVtcyBvbiBzb21lIE1hYyBzeXN0ZW1zKS4KKworKiBGaXhlZCBwcm9ibGVtIHdpdGggZ3ppcCBtaWRkbGV3YXJlIGFuZCB6ZXJvLWxlbmd0aCByZXNwb25zZXMuCisKKyogVXNlIGBgWC1Gb3J3YXJkZWQtRm9yYGAgaGVhZGVyIGluIDptb2Q6YHBhc3RlLnRyYW5zbG9nZ2VyYAorCisqIEZpeGVkIHByb2JsZW1zIHdpdGggbWltZXBhcnNlIGNvZGUKKworKiBGaXhlZCBzb21lIGNvcm5lciBjYXNlcyB3aXRoIENHSSBzY3JpcHRzCisKKyogOm1vZDpgcGFzdGUuYXV0aC5hdXRoX3RrdGAgd2lsbCBVUkwtcXVvdGUgdXNlcm5hbWVzLCBhdm9pZGluZyBzb21lCisgIGVycm9ycyB3aXRoIHVzZXJuYW1lcyB3aXRoIGBgIWBgIGluIHRoZW0uCisKKyogSW1wcm92ZSBoYW5kbGluZyBvZiBlcnJvcnMgaW4gZmV0Y2hpbmcgZXJyb3IgcGFnZXMgaW4KKyAgOm1vZDpgcGFzdGUuZXJyb3Jkb2N1bWVudGAuCisKKzEuNy40CistLS0tLQorCisqIEZpeCBYU1MgYnVnIChzZWN1cml0eSBpc3N1ZSkgd2l0aCBub3QgZm91bmQgaGFuZGxlcnMgZm9yCisgIDpjbGFzczpgcGFzdGUudXJscGFyc2VyLlN0YXRpY1VSTFBhcnNlcmAgYW5kCisgIDpjbGFzczpgcGFzdGUudXJsbWFwLlVSTE1hcGAuICBJZiB5b3UgYXNrIGZvciBhIHBhdGggd2l0aAorICBgYC8tLT48c2NyaXB0Pi4uLmBgIHRoYXQgd2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUgZXJyb3IgcGFnZSBhbmQgY2FuCisgIGV4ZWN1dGUgSmF2YXNjcmlwdC4gIFJlcG9ydGVkIGJ5IFRpbSBXaW50bGUgd2l0aCBmdXJ0aGVyIGRldGFpbHMKKyAgZnJvbSBHZW9yZy1DaHJpc3RpYW4gUHJhbnNjaGtlLgorCisqIFJlcGxhY2VkIDpmdW5jOmBwYXN0ZS51dGlsLm1pbWVwYXJzZS5kZXNpcmVkX21hdGNoYAorCisxLjcuMy4xCistLS0tLS0tCisKKyogUmVtb3ZlZCBkaXJlY3RvcnkgbmFtZSBmcm9tIDQwNCBlcnJvcnMgaW4KKyAgOmNsYXNzOmBwYXN0ZS51cmxwYXJzZXIuU3RhdGljVVJMUGFyc2VyYC4KKworKiBGaXhlZCBwYWNrYWdpbmcgdG8gaW5jbHVkZSBKYXZhc2NyaXB0IGFuZCBpbWFnZXMgZm9yCisgIDptb2Q6YHBhc3RlLmV2YWxleGNlcHRpb25gCisKKzEuNy4zCistLS0tLQorCisqIEkgZ290IGEgZmV2ZXIgYW5kIHRoZSBvbmx5IHByZXNjcmlwdGlvbiBpcyBtb3JlIDptb2Q6YHBhc3RlLmNvd2JlbGxgIQorCisqIEZpeCA6bW9kOmBwYXN0ZS5odHRwc2VydmVyYCBvbiBQeXRob24gMi42LgorCisqIEZpeCA6bW9kOmBwYXN0ZS5hdXRoLmNvb2tpZWAsIHdoaWNoIHdvdWxkIGluc2VydCBuZXdsaW5lcyBmb3IgbG9uZworICBjb29raWVzLgorCisqIDptb2Q6YHBhc3RlLnV0aWwubWltZXBhcnNlYCBwYXJzZXMgYSBzaW5nbGUgYGAqYGAgaW4gQWNjZXB0IGhlYWRlcnMKKyAgKHNlbnQgYnkgSUUgNikuCisKKyogRml4IHNvbWUgcHJvYmxlbXMgd2l0aCB0aGUgYGB3ZGdfdmFsaWRhdGVgYCBtaWRkbGV3YXJlLgorCisqIEltcHJvdmVtZW50cyB0byA6bW9kOmBwYXN0ZS5hdXRoLmF1dGhfdGt0YDogYWRkIGh0dHBvbmx5IHN1cHBvcnQsCisgIGRvbid0IGFsd2F5cyBhZ2dyZXNzaXZlbHkgc2V0IGNvb2tpZXMgd2l0aG91dCB0aGUKKyAgYGB3aWxkY2FyZF9jb29raWVgYCBvcHRpb24uICBBbHNvIG9uIGxvZ291dCwgbWFrZSBjb29raWVzIGV4cGlyZS4KKworKiBJbiA6Y2xhc3M6YHBhc3RlLnByb3h5LlByb3h5YCBoYW5kbGUgQ29udGVudC1MZW5ndGggb2YgLTEuCisKKyogSW4gOm1vZDpgcGFzdGUuaHR0cGV4Y2VwdGlvbnNgIGF2b2lkIHNvbWUgdW5pY29kZSBlcnJvcnMuCisKKyogSW4gOm1vZDpgcGFzdGUuaHR0cHNlcnZlcmAgaGFuZGxlIGBgLnJlYWQoKWBgIGZyb20gMTAwIENvbnRpbnVlCisgIHByb3Blcmx5IChiZWNhdXNlIG9mIGEgdHlwbyBpdCB3YXMgZG9pbmcgYSByZWFkbGluZSkuCisKKyogVXBkYXRlIGBgcGFzdGUudXRpbC5taW1lcGFyc2VgYCBmcm9tIGB1cHN0cmVhbQorICA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbWVwYXJzZS8+YF8uCisKKzEuNy4yCistLS0tLQorCisqIEluIDptb2Q6YHBhc3RlLnByb3h5YCwgYWRkZWQgc29tZSBtb3JlIGhlYWRlcnMgdGhhdCBhcmUgZGlzYWxsb3dlZAorICBpbiBXU0dJIChlLmcuLCBLZWVwLUFsaXZlKS4gIFNlbmQgQ29udGVudC1MZW5ndGguICBBbHNvIGZpeCB0aGUKKyAgbWlzc2luZyBxdWVyeSBzdHJpbmcgd2hlbiB1c2luZyA6Y2xhc3M6YHBhc3RlLnByb3h5LlByb3h5YAorICAoOmNsYXNzOmBwYXN0ZS5wcm94eS5UcmFuc3BhcmVudFByb3h5YCBhbHJlYWR5IHdvcmtlZCkuCisKKyogTWFrZSA6bW9kOmBwYXN0ZS5kZWJ1Zy5wcmludHNgIHdvcmsgd2l0aCBHb29nbGUgQXBwIEVuZ2luZS4KKworKiBNYWtlIGBgZW52aXJvblsnd3NnaS5pbnB1dCddYGAgd2l0aCA6bW9kOmBwYXN0ZS5odHRwc2VydmVyYCBvbmx5CisgIGhhdmUgYSBgYHNlZWtgYCBtZXRob2QgaWYgaXQgaXMgd3JhcHBpbmcgc29tZXRoaW5nIHdpdGggYSBzZWVrCisgIG1ldGhvZCAod2hpY2ggdXN1YWxseSBpdCBpcyBub3QpLgorCisqIEluIDptb2Q6YHBhc3RlLmh0dHBzZXJ2ZXJgIHJlLXJhaXNlIEtleWJvYXJkSW50ZXJydXB0IGluIHdvcmtlcgorICB0aHJlYWRzLgorCisqIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBgYEh0dHBPbmx5YGAgQ29va2llIHByb3BlcnR5IHRvCisgIDptb2Q6YHBhc3RlLndzZ2l3cmFwcGVyc2AKKworKiBBZGRlZCA6ZnVuYzpgcGFzdGUucmVsb2FkZXIuYWRkX2ZpbGVfY2FsbGJhY2tgLCB3aGljaCBsZXRzIHlvdSB3YXRjaAorICBmaWxlcyBiYXNlZCBvbiBhIGNhbGxiYWNrLgorCisqIFF1aWV0IFB5dGhvbiAyLjYgZGVwcmVjYXRpb24gd2FybmluZ3MuCisKKyogRml4IDptb2Q6YHBhc3RlLmF1dGguY29va2llYCBnZW5lcmF0aW5nIGJhZCBoZWFkZXJzLgorCisqIEFkZGVkIDpjbGFzczpgcGFzdGUucmVsb2FkZXIuSnl0aG9uTW9uaXRvcmAgZm9yIGFuIGV4cGVyaW1lbnRhbCwKKyAgb3B0aW1pemVkIHJlbG9hZGVyIG9uIEp5dGhvbi4KKworMS43LjEKKy0tLS0tCisKKyogTm9ybWFsaXplIGFuZCBtYWtlIGFic29sdXRlIHRoZSBwYXRocyBwYXNzZWQgdG8KKyAgOmNsYXNzOmBwYXN0ZS51cmxwYXJzZXIuU3RhdGljVVJMUGFyc2VyYCAoYmVmb3JlIHBhc3NpbmcgYQorICByZWxhdGl2ZS10by1jd2QgcGF0aCB0byB0aGF0IGNsYXNzIHdvdWxkIGNhdXNlIEZvcmJpZGRlbiBlcnJvcnMpLgorCisqIERlcHJlY2F0ZSA6ZnVuYzpgcGFzdGUuZml4dHVyZS5zZXR1cF9tb2R1bGVgCisKKzEuNworLS0tCisKKyogRml4ZWQgYnVnIGluIDpjbGFzczpgcGFzdGUuZml4dHVyZS5UZXN0QXBwYCB0aGF0IHdvdWxkIHN1Ym1pdCBmb3JtcworICB3aXRoIHVubmFtZWQgZmllbGRzIChsaWtlIGFuIHVubmFtZWQgc3VibWl0IGJ1dHRvbikuICBBbHNvIG1hZGUKKyAgY2hlY2tib3hlcyB3aXRoIG5vIGV4cGxpY2l0IGBgdmFsdWVgYCBzZW5kIGBgb25gYCBpbnN0ZWFkIG9mCisgIGBgY2hlY2tlZGBgICh3aGljaCBpcyB3aGF0IGJyb3dzZXJzIGRvKS4KKworKiBGaXhlZCBidWcgaW4gOm1vZDpgcGFzdGUuaHR0cHNlcnZlcmAgd2hlcmUKKyAgYGBlbnZpcm9uWyd3c2dpLmlucHV0J10ucmVhZGxpbmUobWF4X3NpemUpYGAgaWdub3JlZCB0aGUgbWF4X3NpemUKKyAgYXJndW1lbnQsIHdoaWNoIGNhbiBsZWFkIHRvIGxhcmdlIG1lbW9yeSB1c2FnZSAoZnJvbSBKYWt1YiBTdG9sYXJza2kpCisKKyogTWFrZSA6bW9kOmBwYXN0ZS5jYXNjYWRlYCBub3RpY2Ugc29ja2V0cyB0aGF0IGhhdmUgc3RvcHBlZCBwcm9kdWNpbmcKKyAgZGF0YS4gIEZyb20gQ2FzZXkgWmVkbmljay4KKworKiBJbiA6Y2xhc3M6YHBhc3RlLmZpeHR1cmUuVGVzdEFwcGAgQWNjZXB0IE11bHRpRGljdCB2YWx1ZXMgZm9yIHRoZQorICBgYHBhcmFtc2BgIGFyZ3VtZW50IGluIHJlcXVlc3RzLiAgKEFueXRoaW5nIHdpdGggYSBgYC5pdGVtcygpYGAKKyAgbWV0aG9kIHdpbGwgaGF2ZSBpdHMgaXRlbXMgZW5jb2RlZCBhcyB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzLikKKworKiBGaXggOm1vZDpgcGFzdGUuaHR0cHNlcnZlcmAgdG8gYWxsb3cgYmluZGluZyB0byBwb3J0IDAuCisKKyogSW4gOm1vZDpgcGFzdGUuYXV0aC5hdXRoX3RrdGAsIHNldCB0aGUgc2FtZSBjb29raWVzICh3aXRoIHRoZSBzYW1lCisgIGRvbWFpbnMpIGluIGBgc2V0X2Nvb2tpZWBgIGFzIGdldCB1bnNldCBpbiBgYGxvZ291dF91c2VyX2Nvb2tpZWBgLgorCisqIEluIDptb2Q6YHBhc3RlLnRyYW5zbG9nZ2VyYCBzYXZlIFJFUVVFU1RfTUVUSE9EIGluIGNhc2UgaXQgZ2V0cworICBvdmVycmlkZGVuIHNvbWV3aGVyZSAoZS5nLiwgd2hlbiB1c2luZyBlcnJvcmRvY3VtZW50cyBQT1NUIHdvdWxkCisgIHNob3cgdXAgYXMgR0VUKS4KKworKiBFeGNlcHRpb25zIHdpdGggdW5pY29kZSBtZXNzYWdlcyBkb24ndCBjYXVzZSB0aGUgY29sbGVjdG9yIHRvIGZhaWwuCisKKyogU29tZXRpbWVzIDpjbGFzczpgcGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmUuRXJyb3JNaWRkbGV3YXJlYAorICB3b3VsZCBub3QgY2FsbCBzdGFydF9yZXNwb25zZSBwcm9wZXJseTsgdGhpcyBpcyBmaXhlZCAoZnJvbSBBbmRyZWFzCisgIEtsb2Vja2VyKS4KKworKiA6bW9kOmBwYXN0ZS5maXh0dXJlLlRlc3RBcHBgIGNhbiBzdG9yZSBtdWx0aXBsZSBjb29raWUgdmFsdWVzCisgIChwcmV2aW91c2x5IG9ubHkgb25lIGNvb2tpZSB3YXMgc3RvcmVkOyBmcm9tIEFuZHJleSBMZWJlZGV2KQorCisqIGBgdScnIGluIFRlc3RBcHAoYXBwKS5nZXQoJy8nKWBgIHdpbGwgd29yayB3aGVuIHRoZSBib2R5IGlzbid0IEFTQ0lJCisgIChiZWZvcmUgaXQgd291bGQgZ2l2ZSBhIHVuaWNvZGUgZXJyb3IpLiAgVGhpcyBwcm9ibGVtIHdhc24ndCBwcmVzZW50CisgIGluIHRoZSByZWNvbW1lbmRlZCBgV2ViVGVzdCA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy93ZWJ0ZXN0Lz5gXy4KKworKiA6bW9kOmBwYXN0ZS5kZWJ1Zy5wcm9maWxlYCB3b24ndCBicmVhayB3aGVuIGNvbnRlbnQgaXMgc2VydmVkIHdpdGggbm8KKyAgQ29udGVudC1UeXBlLgorCisqIEFjY2VwdCByZWxhdGl2ZSBwYXRocyBhbmQgcGF0aHMgd2l0aCBgYC8uLi9gYCBpbiB0aGVtIGZvcgorICA6Y2xhc3M6YHBhc3RlLnVybHBhcnNlci5TdGF0aWNVUkxQYXJzZXJgIChmcm9tIEVyaWMgTGFyc29uKS4gIEFsc28gZml4CisgIHByb2JsZW0gd2l0aCBjYXNlIG5vcm1hbGl6YXRpb24gb24gV2luZG93cyAoZnJvbSBJb25lbCBNYXJpZXMKKyAgQ3Jpc3RpYW4pLgorCisqIDpjbGFzczpgcGFzdGUucmVnaXN0cnkuU3RhY2tlZE9iamVjdFByb3h5YCdzIG5vdyBpbmNsdWRlIHRoZSBwcm94aWVkIG9iamVjdCdzIG5hbWVzIHZpYQorICBgYF9fZGlyX19gYCAoZm9yIFB5dGhvbiAyLjYpLgorCisqIFVzZSBgYGVudmlyb25bJ3dzZ2kuZmlsZV93cmFwcGVyJ11gYCB3aGVuIGF2YWlsYWJsZSAoaW4KKyAgYGBwYXN0ZS5maWxlYXBwYGApLgorCisqIE1ha2UgOm1vZDpgcGFzdGUuZGVidWcucHJpbnRzYCBjb21wYXRpYmxlIHdpdGggQXBwIEVuZ2luZS4KKworKiBGaXggdGhlIGBgZG9tYWluYGAga2V5d29yZCBpbgorICA6bWV0aDpgcGFzdGUud3NnaXdyYXBwZXJzLldTR0lSZXNwb25zZS5kZWxldGVfY29va2llYC4KKworMS42LjEKKy0tLS0tCisKKyogRml4ZWQgYnVnIGluIHBhc3RlIGxpbnQgd2hlcmUgUEFUSF9JTkZPIHdvdWxkIGJlY29tZSB1bmljb2RlLgorCisxLjYKKy0tLQorCisqIE1ha2UgdGhlIGltcG9ydCBvZiBgYHNvY2tldC5zc2xlcnJvcmBgIGNvbmRpdGlvbmFsIGluCisgIGBgcGFzdGUuZXhjZXB0aW9ucy5yZXBvcnRlcmBgIChuZWVkZWQgZm9yIFB5dGhvbiBpbnRlcnByZXRlcnMKKyAgY29tcGlsZWQgd2l0aG91dCBTU0wgc3VwcG9ydCkuCisKKyogSW4gYGBwYXN0ZS5wcm94eS5UcmFuc3BhcmVudFByb3h5YGAsIGRvbid0IG92ZXJ3cml0ZQorICBgYFgtRm9yd2FyZGVkLUZvcmBgIGhlYWRlciBpZiBpdCBpcyBhbHJlYWR5IGluIHRoZSBlbnZpcm9ubWVudC4KKworKiBBZGRlZCBgYDIyNiBJTSBVc2VkYGAgc3RhdHVzIGNvZGUgdG8gYGBwYXN0ZS53c2dpd3JhcHBlcnNgYAorCisqIEluIGBgcGFzdGUuZml4dHVyZS5UZXN0QXBwYGAgdHJlYXQgYGA8aW1hZ2UgdHlwZT0iaW1hZ2UiPmBgIHRoZSBzYW1lCisgIGFzIGEgc3VibWl0IGJ1dHRvbi4KKworKiBVc2UgYGBPcGVuU1NMLnRzYWZlLkNvbm5lY3Rpb25gYCBmb3IgaHR0cHMgd2l0aAorICBgYHBhc3RlLmh0dHBzZXJ2ZXJgYCwgYXZvaWRpbmcgc29tZSBwb3NzaWJsZSBlcnJvcnMgKGBgc3NsdjMgYWxlcnQKKyAgYmFkIHJlY29yZCBtYWNgYCkuCisKKyogRml4IHNtYWxsIGlzc3VlIHdpdGggYGBwYXN0ZS5jZ2lhcHBgYCBhbmQgbW9kX3dzZ2kuCisKKyogVXNlIGBgQmFzZUNvb2tpZWBgIGluc3RlYWQgb2YgYGBTaW1wbGVDb29raWVgYCBmb3Igc3RvcmluZyBjb29raWVzCisgIChhdm9pZHMgcXVvdGluZyBjb29raWUgdmFsdWVzKS4KKworMS41LjEKKy0tLS0tCisKKyogTWFrZSBgYHBhc3RlLmNhc2NhZGVgYCBtb3JlIHRvbGVyYW50IG9mIGEgbWlzc2luZyBvciBpbnZhbGlkCisgIENvbnRlbnQtTGVuZ3RoLgorCisxLjUKKy0tLQorCisqIEZpeGVkIG1lbW9yeSBsZWFrIHdpdGggYGBwYXN0ZS5yZWdpc3RyeWBgIG5vdCBwcm9wZXJseSByZW1vdmluZworICBhbGwgcmVmZXJlbmNlcyB0byByZWdpc3RlcmVkIG9iamVjdHMgc2hvdWxkIHJlZ2lzdGVyIGJlIGNhbGxlZAorICBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgYSBzaW5nbGUgY29udGV4dCBmb3IgYSBTdGFja2VkT2JqZWN0UHJveHkuCisKKyogYGBwYXN0ZS5odHRwaGVhZGVycy5DT05URU5UX1JBTkdFYGAgcmV0dXJucyBgYGJ5dGVzCisgIFNUQVJULUVORC9MRU5HVEhgYCBpbnN0ZWFkIG9mIGp1c3QgYGBTVEFSVC1FTkQvTEVOR1RIYGAKKworKiBJbiBgYHBhc3RlLmZpeHR1cmUuVGVzdEFwcGBgIHNldCBgYENPTlRFTlRfVFlQRWBgIHRvCisgIGBgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdgYCB3aGVuZXZlciB0aGVyZSBhcmUKKyAgcGFyYW1ldGVycyAoYW5kIG5vIG90aGVyIGNvbnRlbnQgdHlwZSB3YXMgcHJvdmlkZWQpLgorCisqIEluIGBgcGFzdGUuc2Vzc2lvbmBgLCB3aGVuIGNsZWFuaW5nIGZpbGVzIGlnbm9yZSBmaWxlcyB0aGF0IGFyZW4ndAorICBzZXNzaW9uIGZpbGVzLgorCisqIGBgcGFzdGUuaHR0cGV4Y2VwdGlvbnMuSFRUUEV4Y2VwdGlvbkhhbmRsZXJgYCB3aWxsIG5vIGxvbmdlciBjYXRjaAorICBleGNlcHRpb25zIHJhaXNlZCBkdXJpbmcgdGhlIGFwcF9pdGVyIGl0ZXJhdGlvbi4KKworKiBgYHBhc3RlLmNhc2NhZGUuQ2FzY2FkZWBgIGNvcGllcyBgYHdzZ2kuaW5wdXRgYCB3aGVuIGNhc2NhZGluZywgc28KKyAgdGhhdCBvbmUgb2YgdGhlIGFwcGxpY2F0aW9ucyBjYW5ub3QgcmVhZCB0aGUgaW5wdXQgYW5kIGxlYXZlIGEgbGF0ZXIKKyAgYXBwbGljYXRpb24gYmxvY2tlZCB3aGVuIGl0IHRyaWVzIHRvIHJlYWQgdGhlIGlucHV0LgorCisqIEZpeCBhc3NpZ25pbmcgdG8gYGBXU0dJUmVzcG9uc2UuY2hhcnNldGBgIGJyZWFraW5nIHRoZSBjb250ZW50LXR5cGUuCisKKyogU01UUCBhdXRoZW50aWNhdGlvbiBpcyBzdXBwb3J0ZWQgZm9yIHRoZSBleGNlcHRpb24gaGFuZGxlci4gIFlvdSBtYXkKKyAgbm93IHNldCBgYHNtdHBfdXNlcm5hbWVgYCwgYGBzbXRwX3Bhc3N3b3JkYGAgYW5kIGBgc210cF91c2VfdGxzYGAgdG8KKyAgY29udHJvbCB0aGlzIGJlaGF2aW9yLiAgRnJvbSBwdGh5LgorCisxLjQuMgorLS0tLS0KKworKiBSZW1vdmUgRnJlZUJTRCB0aHJlYWRwb29sIGNvbmRpdGlvbiBpbiBwYXN0ZS5odHRwc2VydmVyICh3aGljaCB3YXMKKyAgYWxzbyBicmVha2luZyBjb2RlIGZvciBXaW5kb3dzIHVzZXJzKS4KKworKiBGaXggcHJvYmxlbSB3aXRoIGBgcGFzdGUud3NnaWxpYi5pbnRlcmNlcHRfb3V0cHV0YGAgYW5kIHBhc3NpbmcgdXAKKyAgZXhjZXB0aW9ucy4KKworMS40LjEKKy0tLS0tCisKKyogQWxsb3cgY3VzdG9taXphdGlvbiBvZiB0aGUgYGBwYXN0ZS5jb25maWcuQ29uZmlnTWlkZGxld2FyZWBgIGVudmlyb24KKyAga2V5LgorCisqIEFkZGVkIGEgYGBjdXJyZW50YGAgbWV0aG9kIChhbiBhbGlhcyBvZiBgYGN1cnJlbnRfY29uZmBgKSB0bworICBgYHBhc3RlLmNvbmZpZy5EaXNwYXRjaGluZ0NvbmZpZ2BgLgorCisqIE1ha2UgdGVzdCByZXNwb25zZSBgYC5mb3JtYGAgYXR0cmlidXRlIHdvcmsgd2hlbiB5b3UgaGF2ZSBhIHNpbmdsZQorICBuYW1lZCBmb3JtLgorCisqIFRyeSB0byBlbmNvZGUgYW55IHVuaWNvZGUgaW5wdXQgdG8gYGBwYXN0ZS5hdXRoLmF1dGhfdGt0YGAKKworKiBgYHBhc3RlLndzZ2l3cmFwcGVycy5XU0dJUmVzcG9uc2VgYCBub3cgaGFzIGEgYGAuY29udGVudF90eXBlYGAKKyAgYXR0cmlidXRlICh0aGF0IGRvZXMgbm90IGluY2x1ZGUgcGFyYW1ldGVycyksIGFuZCBhIGBgLmNoYXJzZXRgYAorICBhdHRyaWJ1dGUgKHRoYXQgZ2V0cyB0aGUgY2hhcnNldCBwYXJhbWV0ZXIpLgorCisqIEluaGVyaXQgaW5oZXJpdCBzaG93X2V4Y2VwdGlvbnNfaW5fd3NnaV9lcnJvcnMgZnJvbSBnbG9iYWwKKyAgY29uZmlndXJhdGlvbi4gIEluaGVyaXQgYGBkZWJ1Z2BgIG1vcmUgcHJvcGVybHkuCisKKzEuNAorLS0tCisKKyogSW4gYGBwYXN0ZS5odHRwc2VydmVyYGAgYWRkZWQgbG90cyBvZiBmdW5jdGlvbmFsaXR5IHRvIHRoZQorICB0aHJlYWRwb29sLiAgU2VlIGB0aGUgcGFzdGUuaHR0cHNlcnZlciB0aHJlYWRwb29sIGRvY3VtZW50YXRpb24KKyAgPHBhc3RlLWh0dHBzZXJ2ZXItdGhyZWFkcG9vbC5odG1sPmBfIGZvciBkZXRhaWxzLiAgVGhpcyBjYXRjaGVzCisgIHdvcmtlciB0aHJlYWRzIChhbmQgV1NHSSBhcHBzKSB0aGF0IHRha2UgdG9vIGxvbmcgdG8gY29tcGxldGUgdGhlaXIKKyAgdGFzazsga2lsbGluZyB0aGVtIGV2ZW50dWFsbHksIGFkZGluZyBtb3JlIHdvcmtlciB0aHJlYWRzIHdoZW4gdGhlCisgIHBvb2wgaXMgZXhoYXVzdGVkIGFuZCBpdCBkb2Vzbid0IGxvb2sgZ29vZCB0aGF0IGl0J2xsIGNsZWFyIHNvb24sCisgIGFuZCBvcHRpb25hbGx5IGtpbGxpbmcgdGhlIHByb2Nlc3Mgd2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkKKyAgbG9zdC96b21iaWUgdGhyZWFkcyAoeW91IG11c3QgYmUgdXNpbmcgc29tZSBraW5kIHN1cGVydmlzb3IgcHJvY2VzcworICBmb3IgdGhpcyBsYXN0IHJlc3BvbnNlIHRvIG1ha2Ugc2Vuc2UpLgorCisqIFNhdmUgaG9zdCBhbmQgc2NoZW1lIGluZm9ybWF0aW9uIGR1cmluZyByZWFsIEhUVFAgcHJveHkgcmVxdWVzdHMgdG8KKyAgYGBwYXN0ZS5odHRwc2VydmVyYGAsIGludG8gdGhlIGtleXMKKyAgYGBwYXN0ZS5odHRwc2VydmVyLnByb3h5LnNjaGVtZWBgIGFuZAorICBgYHBhc3RlLmh0dHBzZXJ2ZXIucHJveHkuaG9zdGBgCisKKyogSW4gYGBwYXN0ZS5leGNlcHRpb25zYGAgYWx3YXlzIGNhbGwgYGBzdGFydF9yZXNwb25zZWBgOyBtYXkgaGVscAorICBwcm9ibGVtcyB3aGVuIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBpbiBgYHN0YXJ0X3Jlc3BvbnNlYGAgaXRzZWxmLgorCisqIEFkZGVkIG1ldGhvZCB0byBgYHBhc3RlLnJlZ2lzdHJ5LlN0YWNrZWRPYmplY3RQcm94eWBgLAorICBgYF9vYmplY3Rfc3RhY2soKWBgLCB3aGljaCByZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIHJlZ2lzdGVyZWQKKyAgb2JqZWN0cy4gIFVzZWZ1bCBpZiB5b3Ugd2FudCB0byBzZWFyY2ggdGhyb3VnaCB0aGUgZWZmZWN0aXZlIGhpc3RvcnkKKyAgb2YgYSBzdGFja2VkIG9iamVjdC4KKworKiBGaXhlZCBpbmZpbml0ZSByZWN1cnNpb24gcHJvYmxlbSB3aXRoCisgIGBgcGFzdGUucmVxdWVzdC5FbnZpcm9uSGVhZGVycy5rZXlzKClgYC4KKworKiBGaXggYGBwYXN0ZS53c2dpd3JhcHBlcnMuV1NHSVJlcXVlc3QudXJsdmFyc2BgIHRvIHVzZQorICBgYHdzZ2lvcmcucm91dGluZ19hcmdzYGAKKworKiBSZW1vdmUgcG9ydCBmcm9tIGBgcGFzdGUucmVxdWVzdC5jb25zdHJ1Y3RfdXJsYGAgaWYgaXQncyB0aGUgZGVmYXVsdAorICBwb3J0IChlLmcuLCBwb3J0IDgwIGZvciBgYGh0dHBgYCkuCisKKyogYGBwYXN0ZS5wcm94eWBgIHdvcmtzIHdpdGggaGVhZGVycyB3aXRoIGNvbnRpbnVhdGlvbnMgaW4gdGhlCisgIHJlc3BvbnNlIChpLmUuLCBhIGhlYWRlciB0aGF0IHNwYW5zIG11bHRpcGxlIGxpbmVzKS4gIEFsc28sIHRyZWF0IGEKKyAgbWlzc2luZyBDb250ZW50LUxlbmd0aCBhcyAwLCBub3QgdW5saW1pdGVkIChtYXkgaGF2ZSBwcmV2aW91c2x5CisgIGNhdXNlZCBmcmVlemUgdXBzIGZvciBzb21lIGtpbmRzIG9mIHJlcXVlc3RzKS4KKworKiBgYFN0YWNrZWRPYmplY3RQcm94eWBgIHN1cHBvcnRzIGBgX19jYWxsX19gYCAoaS5lLiwgeW91IGNhbiB1c2UKKyAgYGBTdGFja2VkT2JqZWN0UHJveHlgYCB3aXRoIGNhbGxhYmxlIG9iamVjdHMpLgorCisqIEZpeGVkIGBgUHJvZmlsZU1pZGRsZXdhcmVgYCBub3QgY2FsbGluZyBgYGNsb3NlKClgYCBvbiBjb25zdW1lZAorICBhcHBfaXRlcnMuCisKKyogYGBodHRwaGVhZGVycy5BY2NlcHRMYW5ndWFnZWBgIG5vdyB3b24ndCBnaXZlIGFuIGV4Y2VwdGlvbiB3aGVuCisgIHRoZXJlIGlzIGEgbWFsZm9ybWVkIHBhcmFtZXRlciBpbiB0aGUgaGVhZGVyLgorCisqIEZpeCBgYHBhc3RlLmF1dGguZm9ybS5hdXRoX2Zvcm1gYCBQYXN0ZSBEZXBsb3kgZW50cnkgcG9pbnQuCisKKyogQWRkZWQgUkVTVCBtZXRob2RzIHRvIGBgcGFzdGUuZml4dHVyZS5UZXN0QXBwYGAsIHNvIHlvdSBjYW4gbW9yZQorICBlYXNpbHkgZG8gcmVxdWVzdHMgbGlrZSBQVVQgYW5kIERFTEVURS4gIEZyb20gQW5kZXJzIFBlYXJzb24uCisKKyogQWRkZWQgYGB7e2RlZmF1bHQgdmFyPWRlZmF1bHRfdmFsdWV9fWBgIGNvbW1hbmQgdG8KKyAgYGBwYXN0ZS51dGlsLnRlbXBsYXRlYGAuICBNYWtlIGBge3sjIGNvbW1lbnR9fWBgIHdvcmsuCisKKzEuMworLS0tCisKKyogSW4gYGBwYXN0ZS5odHRwc2VydmVyYGAgcmVtb3ZlIHRoZSByZXZlcnNlIEROUyBsb29rdXAgdG8gc2V0CisgIGBgUkVNT1RFX0hPU1RgYAorCisqIEluIGBgcGFzdGUuZmlsZWFwcGBgLCBpZiB0aGUgY2xpZW50IHNlbmRzIGJvdGggSWYtTm9uZS1NYXRjaCBhbmQKKyAgSWYtTW9kaWZpZWQtU2luY2UsIHByZWZlciBJZi1Ob25lLU1hdGNoLiAgTWFrZSBFVGFncyBpbmNsdWRlIHRoZQorICBzaXplIGFzIHdlbGwgYXMgbGFzdCBtb2RpZmllZCB0aW1lc3RhbXAuICBNYWtlIGl0IHBvc3NpYmxlIHRvCisgIG92ZXJyaWRlIGhvdyBtaW1ldHlwZXMgYXJlIGd1ZXNzZWQuCisKKyogYGBIVFRQRXhjZXB0aW9uYGAgb2JqZWN0cyBub3cgaGF2ZSBhIGBgZXhjLnJlc3BvbnNlKGVudmlyb24pYGAKKyAgbWV0aG9kIHRoYXQgcmV0dXJucyBhIGBgV1NHSVJlc3BvbnNlYGAgb2JqZWN0LgorCisqIGBgZWdnOlBhc3RlI3dhdGNoX3RocmVhZHNgYCB3aWxsIHNob3cgdHJhY2ViYWNrcyBvZiBlYWNoIHRocmVhZAorICB1bmRlciBQeXRob24gMi41LgorCisqIE1hZGUgYGBwYXN0ZS51dGlsLnRlbXBsYXRlYGAgdHJpbSB3aGl0ZXNwYWNlIGFyb3VuZCBzdGF0ZW1lbnRzIHRoYXQKKyAgYXJlIG9uIHRoZWlyIG93biBsaW5lLgorCisqIGBgcGFzdGUuZmlsZWFwcC5EYXRhQXBwYGAgbm93IGFjY2VwdHMgYGBhbGxvd2VkX2hlYWRlcnM9Wy4uLl1gYCB0bworICBzcGVjaWZ5IHRoZSBhbGxvd2VkIGhlYWRlcnMuICBCeSBkZWZhdWx0IG9ubHkgYGBHRVRgYCBhbmQgYGBIRUFEYGAKKyAgYXJlIGFsbG93ZWQuCisKKyogQWRkZWQgYGBwYXN0ZS51dGlsLmltcG9ydF9zdHJpbmcudHJ5X2ltcG9ydF9tb2R1bGVgYCwgd2hpY2ggaW1wb3J0cworICBtb2R1bGVzIGFuZCBjYXRjaGVzIGBgSW1wb3J0RXJyb3JgYCwgYnV0IG9ubHkgaWYgaXQncyBhbiBlcnJvcgorICBpbXBvcnRpbmcgdGhlIHNwZWNpZmljIG1vZHVsZSwgbm90IGFuIHVuY2F1Z2h0IGBgSW1wb3J0RXJyb3JgYCBpbgorICB0aGUgbW9kdWxlIGJlaW5nIGltcG9ydGVkLgorCisxLjIuMQorLS0tLS0KKworKiBgYHBhc3RlLmh0dHBzZXJ2ZXJgYCBkaWRuJ3QgaW1wbGVtZW50IHRoZSBgYHJlYWRsaW5lYGAgdGhhdCB0aGUKKyAgYGBjZ2lgYCBtb2R1bGUgd2FudHMgKHJlZ3Jlc3Npb24gaW4gMS4yKS4KKworMS4yCistLS0KKworKiAqKkJhY2t3YXJkIGluY29tcGF0aWJsZSBjaGFuZ2UqKjogYGBwYXN0ZS5maWxlYXBwLkZpbGVBcHBgYCBwcm9wZXJseQorICBzdXBwb3J0cyByZXF1ZXN0IG1ldGhvZHMsIGluY2x1ZGluZyBIRUFELiAgSWYgeW91IHdlcmUgc3ViY2xhc3NpbmcKKyAgYGBGaWxlQXBwYGAgb3IgYGBEYXRhQXBwYGAgYW5kIG92ZXJyaWRpbmcgYGBfX2NhbGxfXygpYGAgeW91IG1heSBoYXZlCisgIHRvIHN1YmNsYXNzIGBgZ2V0KClgYCBpbnN0ZWFkLgorCisqIHBhc3RlLmh0dHBoZWFkZXJzIG5vdyBwYXJzZXMgdGhlIEhUVFAgQWNjZXB0LUxhbmd1YWdlIGhlYWRlciBhbmQgcmV0dXJucworICBhIGxpc3Qgb2YgbGFuZ3VhZ2VzIHRoZSBicm93c2VyIHN1cHBvcnRzIGluIHRoZSBvcmRlciBpdCBwcmVmZXJzIHRoZW0uCisKKyogcGFzdGUubWltZXBhcnNlIG1vZHVsZSBhZGRlZCB0aGF0IGhhbmRsZXMgcGFyc2luZyBIVFRQIEFjY2VwdCBoZWFkZXJzCisgIGZvciBxdWFsaXR5IGFuZCBtaW1lLXR5cGVzLgorCisqIGBgcGFzdGUucmVxdWVzdC5jb25zdHJ1Y3RfdXJsYGAgd2FzIGFkZGluZyBgYFNFUlZFUl9QT1JUYGAgdG8KKyAgYGBIVFRQX0hPU1RgYDsgYnV0IGBgSFRUUF9IT1NUYGAgKGZyb20gdGhlIEhvc3QgaGVhZGVyKSBnZW5lcmFsbHkKKyAgY29udGFpbnMgYSBwb3J0IHdoZW4gbmVjZXNzYXJ5LCBhbmQgYGBTRVJWRVJfUE9SVGBgIHNob3VsZCBvbmx5IGJlCisgIHVzZWQgd2l0aCBgYFNFUlZFUl9OQU1FYGAuCisKKyogQWRkZWQgZW50cnkgcG9pbnQgZm9yIGBgcGFzdGUucmVnaXN0cnkuUmVnaXN0cnlNYW5hZ2VyYGAKKyAgKGBgZWdnOlBhc3RlI3JlZ2lzdHJ5YGApLgorCisqIGBgcGFzdGUucmVxdWVzdC5IZWFkZXJEaWN0YGAgZml4ZWQgdG8ga25vdyB0aGF0IGBgQ29udGVudC1MZW5ndGhgYAorICBtYXBzIHRvIGBgQ09OVEVOVF9MRU5HVEhgYC4KKworKiBDYW4gdXNlIGBgcGFzdGUudXJscGFyc2VyLlN0YXRpY1VSTFBhcnNlcmBgIHdpdGggc3ViLWluc3RhbmNlcyBvdGhlcgorICB0aGFuIGBgcGFzdGUuZmlsZWFwcC5GaWxlQXBwYGAgKGlmIHlvdSBzdWJjbGFzcyBhbmQgb3ZlcnJpZGUKKyAgYGBtYWtlX2FwcGBgKQorCisqIGBgcGFzdGUuZml4dHVyZS5UZXN0QXBwLmdldChzdGF0dXM9WClgYCB0YWtlcyBhIGxpc3Qgb2YgYWxsb3dlZAorICBzdGF0dXMgY29kZXMgZm9yIGBgWGBgLgorCisqIEFkZGVkIGEgc21hbGwgdGVtcGxhdGluZyBzeXN0ZW0gZm9yIGludGVybmFsIHVzZSAoYGBwYXN0ZS51dGlsLnRlbXBsYXRlYGApCisKKyogUmVtb3ZlZCBhIGJ1bmNoIG9mIGxvbmctZGVwcmVjYXRlZCBtb2R1bGVzIChnZW5lcmFsbHkgbW9kdWxlcyB0aGF0CisgIGhhdmUgYmVlbiBtb3ZlZCB0byBvdGhlciBuYW1lcykuCisKK0luIHBhc3RlLndzZ2l3cmFwcGVycworfn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyogYGBwYXN0ZS53c2dpd3JhcHBlcnMuV1NHSVJlcXVlc3RgYCBoYXMgbWF0Y2hfYWNjZXB0KCkgZnVuY3Rpb24gdG8gc2NyZWVuCisgIGluY29taW5nIEhUUFQgQWNjZXB0IHZhbHVlcyBhZ2FpbnN0IGEgbGlzdCBvZiBtaW1lLXR5cGVzLgorCisqIGBgcGFzdGUud3NnaXdyYXBwZXJzLldTR0lSZXF1ZXN0LmRlZmF1bHRzYGAgbm93IGFjY2VwdHMgYSBuZXcga2V5OgorCisgIGBgbGFuZ3VhZ2VgYDoKKyAgICBUaGUgaTE4biBsYW5ndWFnZSB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBmYWxsYmFjayBzaG91bGQKKyAgICBhIHRyYW5zbGF0aW9uIG5vdCBvY2N1ciBpbiBhIGxhbmd1YWdlIGZpbGUuIFNlZSBkb2NzIGZvcgorICAgIGRldGFpbHMuCisKKyogYGBwYXN0ZS53c2dpd3JhcHBlcnMuV1NHSVJlcXVlc3RgYCBjYW4gbm93IG9wdGlvbmFsbHkgZGVjb2RlIGZvcm0KKyAgcGFyYW1ldGVycyB0byB1bmljb2RlIHdoZW4gaXQgaGFzIGEgYGBjaGFyc2V0YGAgdmFsdWUgc2V0LgorCisqIERlcHJlY2F0ZWQgdGhlIGBgcGFzdGUud3NnaXdyYXBwZXJzLnNldHRpbmdzYGAgU3RhY2tlZE9iamVjdFByb3h5CisgIGRpY3Rpb25hcnkgZm9yIGBgcGFzdGUud3NnaXdyYXBwZXJzLldTR0lSZXNwb25zZS5kZWZhdWx0c2BgLgorCitJbiBwYXN0ZS5odHRwc2VydmVyCit+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyogUmVncmVzc2lvbiBpbiAxLjEgZml4ZWQsIHdoZXJlIFBhc3RlJ3MgSFRUUCBzZXJ2ZXIgd291bGQgZHJvcAorICB0cmFpbGluZyBzbGFzaGVzIGZyb20gcGF0aHMuCisKKyogYGBwYXN0ZS5odHRwc2VydmVyYGAgbm93IHB1dHMgYSBrZXkgaW4gdGhlIGVudmlyb25tZW50IHdoZW4gdXNpbmcgYQorICB0aHJlYWQgcG9vbCB0aGF0IGFsbG93cyB5b3UgdG8gdHJhY2sgdGhlIHRocmVhZCBwb29sIGFuZCBzZWUgYW55CisgIHdlZGdlZCB0aHJlYWRzLiAgYGBlZ2c6UGFzdGUjd2F0Y2hfdGhyZWFkc2BgIGlzIGFuIGFwcGxpY2F0aW9uIHRoYXQKKyAgY2FuIGRpc3BsYXkgdGhpcyBpbmZvcm1hdGlvbi4KKworKiBgYHBhc3RlLmh0dHBzZXJ2ZXJgYCBub3cgYWNjZXB0cyBhbGwgcmVxdWVzdCBtZXRob2RzLCBub3QganVzdAorICBgYEdFVGBgLCBgYFBVVGBgLCBldGMuICAoTWV0aG9kcyBsaWtlIGBgTUtDT0xgYCB3ZXJlIHByZXZpb3VzbHkKKyAgcmVqZWN0ZWQuKQorCisqIGBgcGFzdGUuaHR0cHNlcnZlcmBgIGhhcyBhIGBgd3NnaS5pbnB1dGBgIHRoYXQgbm93IGRvZXMgbm90IGJsb2NrIGlmCisgIHlvdSB0cnkgdG8gcmVhZCBwYXN0IHRoZSBlbmQgKGl0IGlzIGxpbWl0ZWQgdG8gcmV0dXJuaW5nIHRoZSBudW1iZXIKKyAgb2YgYnl0ZXMgZ2l2ZW4gaW4gYGBDb250ZW50LUxlbmd0aGBgKS4gIERvdWJsZS1yZWFkaW5nIGZyb20KKyAgYGB3c2dpLmlucHV0YGAgd29uJ3QgZ2l2ZSB5b3UgdGhlIHNhbWUgZGF0YSwgYnV0IGl0IHdvbid0IGNhdXNlCisgIGJsb2NraW5nLgorCisxLjEuMQorLS0tLS0KKworKiBGaXhlZCBtYWpvciBpc3N1ZSB3aXRoIHNlcnZpbmcgc3RhdGljIGZpbGVzIG9uIFdpbmRvd3MgKGEgcmVncmVzc2lvbgorICBpbiBQYXN0ZSAxLjEgd2hlcmUgbW9zdCBzdGF0aWMgZmlsZXMgd291bGQgcmV0dXJuIDQwNCBOb3QgRm91bmQpLgorCisqIEZpeGVkIGBgcGFyc2VfZGljdF9xdWVyeXN0cmluZ2BgIHJldHVybmluZyBlbXB0eSBkaWN0cyBpbnN0ZWFkIG9mCisgIGBgTXVsdGlEaWN0YGBcIHMuCisKKyogQWRkZWQgYGBwYXN0ZS5jb25maWdgYCwgYSByZXdyaXRlIG9mIGBgcGFzdGUuZGVwbG95LmNvbmZpZ2BgIHVzaW5nCisgIGBgcGFzdGUucmVnaXN0cnlgYC4gVGhpcyB2ZXJzaW9uIG9mIGBgQ29uZmlnTWlkZGxld2FyZWBgIHdpbGwKKyAgZW5hYmxlIHVzZSBvZiBgYHBhc3RlLmNvbmZpZy5DT05GSUdgYCB3aXRoaW4gdGhlIGBgRXZhbEV4Y2VwdGlvbmBgCisgIGludGVyYWN0aXZlIGRlYnVnZ2VyLgorCisqIEZpeGVkIHByb2JsZW0gd2hlcmUgYGBwYXN0ZS5yZWN1cnNpdmVgYCB3b3VsZCBsZWF2ZSBgYHdzZ2kuaW5wdXRgYAorICBhbmQgYGBDT05URU5UX0xFTkdUSGBgIHNldCBmb3IgcmVjdXJzaXZlIHJlcXVlc3RzLgorCisqIENoYW5nZWQgdGhlIHN0YXRpYyBmaWxlIHNlcnZlcnMgdG8gZ2l2ZSA0MDQgTm90IEZvdW5kIHJlc3BvbnNlcyB3aGVuCisgIHlvdSBoYXZlIGV4dHJhIHBhcnRzIGFmdGVyIGEgc3RhdGljIGZpbGUsIGluc3RlYWQgb2YgNDAwIEJhZAorICBSZXF1ZXN0IChsaWtlIHdoZW4geW91IHJlcXVlc3QgYGAvZmlsZS5odG1sL2V4dHJhL3BhdGhgYCkKKworMS4xCistLS0KKworKiBTZWN1cml0eSBmaXggZm9yIGBgcGFzdGUudXJscGFyc2VyLlN0YXRpY1VSTFBhcnNlcmBgLiAgVGhlIHByb2JsZW0KKyAgYWxsb3dlZCBlc2NhcGluZyB0aGUgcm9vdCAoYW5kIHJlYWRpbmcgZmlsZXMpIHdoZW4gdXNlZCB3aXRoCisgIGBgcGFzdGUuaHR0cHNlcnZlcmBgICh0aGlzIGRvZXMgbm90IGVmZmVjdCBvdGhlciBzZXJ2ZXJzLCBhbmQgZG9lcworICBub3QgYXBwbHkgd2hlbiBwcm94eWluZyByZXF1ZXN0cyBmcm9tIEFwYWNoZSB0bworICBgYHBhc3RlLmh0dHBzZXJ2ZXJgYCkuCisKKyogYGBwYXN0ZS5odHRwc2VydmVyYGAgYW5kIGBgcGFzdGUuZml4dHVyZS5UZXN0QXBwYGAgdXJsLXVucXVvdGUKKyAgYGBTQ1JJUFRfTkFNRWBgIGFuZCBgYFBBVEhfSU5GT2BgLCBhcyBzcGVjaWZpZWQgaW4gdGhlIENHSSBzcGVjLgorICBUaGFua3MgdG8gSm9uIE5lbHNvbiBmb3IgcG9pbnRpbmcgb3V0IGJvdGggdGhlc2UgaXNzdWVzLgorCisqIGBgcGFzdGUucmVnaXN0cnlgYCBub3cgd29ya3Mgd2l0aGluIHRoZSBgYEV2YWxFeGNlcHRpb25gYAorICBpbnRlcmFjdGl2ZSBkZWJ1Z2dlci4KKworKiBGaXhlZCBgYHBhc3RlLmF1dGgub3Blbl9pZGBgIGZhaWx1cmVzIG5vdCByZXR1cm5pbmcgYSBjb3JyZWN0CisgIHJlc3BvbnNlLgorCisqIENoYW5nZWQgYGBwYXN0ZS5odHRwZXhjZXB0aW9ucy5IVFRQVW5hdXRob3JpemVkYGAgc28gdGhhdCB0aGUKKyAgYGBXV1ctQXV0aGVudGljYXRlYGAgaGVhZGVyIGlzIG5vdCByZXF1aXJlZC4gIDQwMSByZXNwb25zZXMgZG9uJ3QKKyAgKmhhdmUqIHRvIGhhdmUgdGhhdCBoZWFkZXIuCisKKyogSW4gYGBwYXN0ZS5maXh0dXJlLlRlc3RBcHBgYDogYGA8Zm9ybT5gYCB0YWdzIHRoYXQgaGF2ZSB0bworICBgYGFjdGlvbmBgIHdpbGwgcHJlc2VydmUgdGhlIGV4aXN0aW5nIHF1ZXJ5IHN0cmluZy4gIChHZW5lcmFsbHkKKyAgcmVsYXRpdmUgbGlua3MgdGhhdCBhcmUgY29tcGxldGVseSBlbXB0eSBzaG91bGQgYnV0IHdlcmUgbm90CisgIHByZXNlcnZpbmcgdGhlIHF1ZXJ5IHN0cmluZykKKworKiBNYWRlIGBgcGFzdGUuKmBgIGNvbXBhdGlibGUgd2l0aCBgcHkyZXhlIDxodHRwOi8vd3d3LnB5MmV4ZS5vcmcvPmBfCisgIGJ5IGFkZGluZyBhIGBgbW9kdWxlZmluZGVyYGAgY2FsbCBpbiBgYF9faW5pdF9fLnB5YGAKKworKiBUaGUgYGBwYXN0ZS5nemlwcGVyYGAgZ3ppcHBpbmcgbWlkZGxld2FyZSB3YXNuJ3QgY2hhbmdpbmcgdGhlCisgIENvbnRlbnQtTGVuZ3RoIGhlYWRlciBwcm9wZXJseTsgdGhhbmtzIHRvIEJyYWQgQ2xlbWVudHMgZm9yIHRoZSBmaXguCisKKyogRml4ZWQgYGBwYXN0ZS5wcm94eWBgIHRvIG5vdCB1c2UgYW55dGhpbmcgYmFzZWQgb24gdGhlIGRpY3QgZm9ybSBvZgorICBgYGh0dHBsaWIuLkhUVFBNZXNzYWdlYGAuICBUaGlzIGZvcm0gZm9sZHMgaGVhZGVycyB0b2dldGhlciBpbiBhIHdheQorICB0aGF0IGJyZWFrcyBgYFNldC1Db29raWVgYCBoZWFkZXJzICh0d28gYGBTZXQtQ29va2llYGAgaGVhZGVycyB3b3VsZAorICBiZSBtZXJnZWQgaW50byBvbmUpLgorCisqIGBgcGFzdGUucmVxdWVzdC5wYXJzZV9mb3JtdmFyc2BgIGRpZG4ndCBhY2NlcHQgcGFyYW1ldGVycyBpbgorICBgYENPTlRFTlRfVFlQRWBgLiAgYGBwcm90b3R5cGUuanNgYCBzZXRzIGEgYGBjaGFyc2V0YGAgcGFyYW1ldGVyLAorICB3aGljaCBjYXVzZWQgYSBwcm9ibGVtLgorCisqIEFkZGVkIGEgYGBfX3RyYWNlYmFja19kZWNvcmF0b3JfX2BgIG1hZ2ljIGxvY2FsIHZhcmlhYmxlLCB0byBhbGxvdworICBhcmJpdHJhcnkgbWFuaXB1bGF0aW9uIG9mIHRoZSBvdXRwdXQgb2YKKyAgYGBwYXN0ZS5leGNlcHRpb25zLmNvbGxlY3RvcmBgIGJlZm9yZSBmb3JtYXR0aW5nLgorCisqIEFkZGVkIHVuaWNvcm4gcG93ZXIgdG8gYGBwYXN0ZS5wb255YGAgKGZyb20gQ2hhZCBXaGl0YWNyZSkKKworKiBGb3IgYGBwYXN0ZS5odHRwc2VydmVyYGAgU1NMIHN1cHBvcnQ6IGFkZCBzdXBwb3J0IGxvYWRpbmcgYW4KKyAgZXhwbGljaXQgY2VydGlmaWNhdGUgY29udGV4dCwgYW5kIHVzaW5nIGBgc3NsX3BlbT0nKidgYCBjcmVhdGUgYW4KKyAgdW5zaWduZWQgU1NMIGNlcnRpZmljYXRlIChmcm9tIEphc29uIEtpcnRsYW5kKS4KKworKiBGaXggc29tZSBjYXNlcyB3aGVyZSBgYHBhc3RlLmh0dHBzZXJ2ZXJgYCBjYW4gaGF2ZSBhbiBvcnBoYW5lZAorICB0aHJlYWQgcG9vbCAoY2F1c2luZyB0aGUgcHJvY2VzcyB0byBub3Qgc2h1dCBkb3duIHByb3Blcmx5KS4gIFBhdGNoCisgIGZyb20gamVrLgorCisxLjAKKy0tLQorCisqIEZpeGVkIGBgcGFyc2VkX2Zvcm12YXJzYGAgcG90ZW50aWFsbHkgbG9ja2luZyB1cCBvbiB3c2dpLmlucHV0CisgIGFmdGVyIG1vZGlmaWNhdGlvbiBvZiBgYFFVRVJZX1NUUklOR2BgLgorCisqIEZpeGVkIHByb2JsZW0gd2hlcmUgYGBwYXN0ZS5leGNlcHRpb25zLmVycm9ybWlkZGxld2FyZWBgIGRpZG4ndAorICBleHBvc2UgdGhlIGBgLmNsb3NlKClgYCBtZXRob2Qgb2YgdGhlIGFwcF9pdGVyIHRoYXQgaXQgd3JhcHMgKHRvCisgIGNhdGNoIGV4Y2VwdGlvbnMpLiAgVGhpcyBpcyBhIHByb2JsZW0gaWYgdGhlIHNlcnZlciBhYm91dCB0aGUKKyAgZXJyb3JtaWRkbGV3YXJlIGFib3J0cyB0aGUgcmVxdWVzdDsgaXQgc2hvdWxkIHRoZW4gY2FsbAorICBgYC5jbG9zZSgpYGAsIGJ1dCB3b24ndCBuZWNlc3NhcmlseSBleGhhdXN0IHRoZSBpdGVyYXRvciB0byBkbyBzby4KKworKiBBZGRlZCBlbnRyeSBwb2ludCBmb3IgYGBwYXN0ZS50cmFuc2xvZ2dlcmBgCisgIChgYGVnZzpQYXN0ZSN0cmFuc2xvZ2dlcmBgKQorCisqIEZpeGVkIHNvbWUgY2FzZXMgd2hlcmUgbG9uZyBkYXRhIChlLmcuLCBhIGZpbGUgdXBsb2FkKSB3b3VsZCBzaG93IHVwCisgIGluIHRoZSBlcnJvciByZXBvcnQsIGNyZWF0aW5nIGEgdmVyeSB2ZXJ5IGxhcmdlIHJlcG9ydC4gIEFsc28sIHB1dAorICBpbiBhIG1vbmtleXBhdGNoIGZvciB0aGUgYGBjZ2lgYCBtb2R1bGUgc28gdGhhdAorICBgYHJlcHIodXBsb2FkZWRfZmllbGQpYGAgd29uJ3QgbG9hZCB0aGUgZW50aXJlIGZpZWxkIGludG8gbWVtb3J5CisgIChmcm9tIGl0cyB0ZW1wb3JhcnkgZmlsZSBsb2NhdGlvbikuCisKKyogQWRkZWQgYSBgYGZvcmNlX2hvc3RgYCBvcHRpb24gdG8gYGBwYXN0ZS5wcm94eS5UcmFuc3BhcmVudFByb3h5YGAsCisgIHdoaWNoIHdpbGwgZm9yY2UgYWxsIGluY29taW5nIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGhvc3QsIGJ1dCBsZWF2ZQorICB0aGUgYGBIb3N0YGAgaGVhZGVyIGludGFjdC4KKworKiBBZGRlZCBhdXRvbWF0aWMgY2xlYW51cCBvZiBvbGQgc2Vzc2lvbnMgZm9yIGBgcGFzdGUuc2Vzc2lvbmBgLCBmcm9tCisgIEFtaXIgU2FsaWhlZmVuZGljLgorCisqIFF1b3RlIHRoZSBmdW5jdGlvbiBuYW1lIGluIHRyYWNlYmFja3MgaW4gdGhlIGV4Y2VwdGlvbiBmb3JtYXR0ZXI7CisgIEdlbnNoaSBoYXMgZnVuY3Rpb24gbmFtZXMgdGhhdCB1c2UgYGA8PmBgLgorCiswLjkuOQorLS0tLS0KKworKiBGaXhlZCBgYHBhc3RlLnJlc3BvbnNlLkhlYWRlckRpY3RgYCBgYGdldGBgIGFuZCBgYHNldGRlZmF1bHRgYAorICBtZXRob2RzIHRvIGJlIGNhc2UgaW5zZW5zaXRpdmUKKworKiBGaXggdXNlIG9mIGBgVGVzdEFwcCgpLnBvc3QocGFyYW1zPXsna2V5JzogWydsaXN0IG9mJywKKyAgJ3ZhbHVlcyddfSlgYCBhcyByZXBvcnRlZCBieSBTeXZlciBFbnN0YWQuCisKKyogYGBwYXN0ZS5maWxlYXBwLkRhdGFBcHBgYCBpcyBub3cgZGlyZWN0bHkgdXNhYmxlICh3YXMgcHJldmlvdXNseQorICBvbmx5IHVzYWJsZSBhcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzKS4KKworMC45LjgKKy0tLS0tCisKKyogRml4ZWQgYGB3c2dpd3JhcHBlcnMuV1NHSVJlc3BvbnNlLmRlbGV0ZV9jb29raWVgYC4gSXQgYWxzbyBub3cgdGFrZXMKKyAgb3B0aW9uYWwgcGF0aCBhbmQgZG9tYWluIGFyZ3VtZW50cworCisqIGBgd3NnaXdyYXBwZXJzLldTR0lSZXNwb25zZWBgIG5vdyBoYW5kbGVzIGdlbmVyYXRvci9pdGVyYXRvciBjb250ZW50CisgIG1vcmUgY2xlYW5seSwgYW5kIHByb3Blcmx5IGVuY29kZXMgdW5pY29kZSBjb250ZW50IGFjY29yZGluZyB0byBpdHMKKyAgc3BlY2lmaWVkIGNoYXJzZXQKKworKiBGaXhlZCBgYHdzZ2l3cmFwcGVycy5XU0dJUmVzcG9uc2VgYCBtaXNoYW5kbGluZyBtdWx0aXBsZSBoZWFkZXJzIG9mCisgIHRoZSBzYW1lIG5hbWUKKworKiBBZGRlZCBhIFBhc3RlIERlcGxveSBlbnRyeSBwb2ludCBmb3IgYGBwYXN0ZS5hdXRoLmNvb2tpZWBgCisKKyogTW92ZWQgUGFzdGUgRGVwbG95IGRlcGVuZGVuY2llcyBvdXQgb2YgdG9wLWxldmVsIG1vZHVsZXMgYW5kIGludG8KKyAgUGFzdGUtRGVwbG95LXNwZWNpZmljIGVudHJ5IHBvaW50IGZ1bmN0aW9ucy4gIFRoaXMgc2hvdWxkIG1ha2UgUGFzdGUKKyAgbW9yZS1vci1sZXNzIFBhc3RlIERlcGxveSBpbmRlcGVuZGVudC4gIGBgcGFzdGUudXJscGFyc2VyYGAgYW5kCisgIGBgcGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmVgYCBzdGlsbCBoYXZlIHNvbWUgbGVmdG92ZXIgYml0cy4KKworKiBBZGRlZCBhbm90aGVyIHJlZGlyZWN0b3IgdHlwZSB0byBgYHBhc3RlLnJlY3Vyc2l2ZWBgLAorICBgYGVudmlyb25bJ3Bhc3RlLnJlY3Vyc2l2ZS5pbmNsdWRlX2FwcF9pdGVyJ11gYCB3aGljaCBnaXZlcyBhY2Nlc3MKKyAgdG8gdGhlIG9yaWdpbmFsIGFwcF9pdGVyLgorCisqIEJ1ZyB3aXRoIGBgd3NnaWxpYi5jYXRjaF9lcnJvcnNgYCBhbmQgYXBwX2l0ZXJzIHdpdGggbm8gYGBjbG9zZSgpYGAKKyAgbWV0aG9kLgorCisqIExvbmcgd29yZHMgaW4gdHJhY2ViYWNrcyB3ZXJlbid0IGJlaW5nIHdyYXBwZWQgY29ycmVjdGx5IGF0IGFsbC4KKyAgQWxzbywgbGFyZ2UgZGF0YSB3b3VsZCBjYXVzZSB0aGUgd3JhcHBpbmcgcm91dGluZSB0byBnaXZlIGEKKyAgcmVjdXJzaW9uIGVycm9yLiAgTm93IGxhcmdlIGRhdGEgaXMgdHJ1bmNhdGVkIChhdCAxMDAwIGNoYXJhY3RlcnMpLAorICBhbmQgcmVjdXJzaW9uIHdvbid0IGJlIGEgcHJvYmxlbS4gIEFsc28sIHdyYXBwaW5nIHNob3VsZG4ndCBsb3NlCisgIGNoYXJhY3RlcnMuCisKKyogQmV0dGVyIGV4Y2VwdGlvbiBpZiB5b3UgdHJ5IHRvIHB1dCBhIG5vbi1zdHIgaW50byBlbnZpcm9uIHdoZW4gdXNpbmcKKyAgYGBwYXN0ZS5hdXRoLmNvb2tpZWBgCisKKyogYGBwYXN0ZS5leGNlcHRpb25zLmNvbGxlY3RvcmBgIHByb2R1Y2VzIGFuCisgIGBgZXhjX2RhdGEuZXhjZXB0aW9uX3R5cGVgYCB0aGF0IGlzIGEgY2xhc3MsIG5vdCBhIHN0cmluZy4gIFRoaXMKKyAgaGVscHMgaXQgZ2V0IGZvcm1hdHRlZCBiZXR0ZXIgaW4gUHl0aG9uIDIuNS4KKworKiBBbGwgdGhlIHRlc3RzIHBhc3Mgb24gUHl0aG9uIDIuNSEKKworKiBBZGRlZCBgYHBhc3RlLnByb3h5LlRyYW5zcGFyZW50UHJveHlgYCwgd2hpY2gganVzdCBzZW5kcyB0aGUgcmVxdWVzdAorICBkZXNjcmliZWQgaW4gdGhlIFdTR0kgZW52aXJvbiBvbiB3aXRob3V0IGFueSBtb2RpZmljYXRpb24uICBNb3JlCisgIHVzZWZ1bCBmb3IgV1NHSSBjbGllbnRzIHRoYW4gc2VydmVycywgaXQgZWZmZWN0aXZlbHkgYWxsb3dzIGFueQorICBXU0dJLWJhc2VkIHJlcXVlc3QgbWVjaGFuaXNtIHRvIGFjdCBsaWtlIGFuIGh0dHBsaWItYmFzZWQgcmVxdWVzdAorICBtZWNoYW5pc20uCisKKyogQWRkZWQgYSBgYGNhY2hlX21heF9hZ2VgYCBhcmd1bWVudCB0bworICBgYHBhc3RlLnVybHBhcnNlci5TdGF0aWNVUkxQYXJzZXJgYCwgd2hpY2ggYWxsb3dzIHlvdSB0byBlbmNvdXJhZ2UKKyAgdGhlIGNhY2hpbmcgb2Ygc3RhdGljIGZpbGVzLiAgUGF0Y2ggZnJvbSBCcmFkIENsZW1lbnRzLgorCisqIEFkZGVkIGBgc3VwcHJlc3NfaHR0cF9oZWFkZXJzYGAgdG8gYGBwYXN0ZS5wcm94eS5Qcm94eWBgLCB3aGljaCB3aWxsCisgIGZpbHRlciBvdXQgSFRUUCBoZWFkZXJzIGZyb20gdGhlIHJlcXVlc3QgYmVmb3JlIHBhc3NpbmcgaXQgb24uCisgIFBhdGNoIGZyb20gQnJhZCBDbGVtZW50cy4KKworMC45LjcKKy0tLS0tCisKKyogVGhlIGBgRXZhbEV4Y2VwdGlvbmBgICdmdWxsIHRyYWNlYmFjaycgYnV0dG9uIGlzIG5vdyBvbmx5IGRpc3BsYXllZAorICB3aGVuIHRoZSBmdWxsIHRyYWNlYmFjayBkaWZmZXJzIGZyb20gdGhlIHJlZ3VsYXIgKGluY2x1ZGVzIGhpZGRlbgorICBmcmFtZXMpLgorCisqIEZpeGVkIGBgRXZhbEV4Y2VwdGlvbmBgIHJldHVybmluZyBhIENvbnRlbnQtdHlwZSBvZiAndGV4dC1odG1sJworICBpbnN0ZWFkIG9mICd0ZXh0L2h0bWwnIGluIHNvbWUgY2FzZXMuCisKKzAuOS42CistLS0tLQorCisqIFJlbmFtZWQgdGhlIGBgcGFzdGUudXRpbC5tdWx0aWRpY3QubXVsdGlkaWN0YGAgY2xhc3MgdG8KKyAgYGBwYXN0ZS51dGlsLm11bHRpZGljdC5NdWx0aURpY3RgYAorCiswLjkuNQorLS0tLS0KKworKiBGaXhlZCBhIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdHkgaW4gYGBwYXN0ZS51cmxwYXJzZXJgYCdzIFN0YXRpY1VSTFBhcnNlcgorICBhbmQgUGtnUmVzb3VyY2VzUGFyc2VyIHdoZXJlLCB3aXRoIHNvbWUgc2VydmVycywgeW91IGNvdWxkIGVzY2FwZQorICB0aGUgZG9jdW1lbnQgcm9vdC4KKworKiBTaWduaWZpY2FudGx5IGltcHJvdmVkIGBgcGFzdGUuaHR0cHNlcnZlcmBgJ3MgKGVnZzpQYXN0ZSNodHRwKQorICBwZXJmb3JtYW5jZS4gSXQgbm93IHVzZXMgYSB0aHJlYWQgcG9vbDogcHJldmlvdXNseSBpdCBjcmVhdGVkIGEgbmV3CisgIHRocmVhZCBmb3IgZXZlcnkgcmVxdWVzdC4gVG8gcmV2ZXJ0IGJhY2sgdG8gdGhlIG9sZCwgc2xvd2VyIGJlaGF2aW9yLAorICBzZXQ6OgorCisgICAgdXNlX3RocmVhZHBvb2wgPSBmYWxzZQorCisgIGluIHRoZSBbc2VydmVyOm1haW5dIHNlY3Rpb24gb2YgdGhlIGNvbmZpZyBmaWxlLgorCisqIE1vcmUgY29udHJvbCBvZiB3aGVyZSB0aGUgb3V0cHV0IG9mIGBgcGFzdGUuZGVidWcucHJpbnRzYGAgZ29lcy4KKworKiBBZGRlZCBhIHdhcm5pbmcgdG8gYGBwYXN0ZS53c2dpbGliLmFkZF9jbG9zZWBgIGlmIHRoZSB1cHN0cmVhbQorICBhcHBfaXRlciBjb25zdW1lciBkb2Vzbid0IGNhbGwgdGhlIGBgYXBwX2l0ZXIuY2xvc2UoKWBgIG1ldGhvZC4KKworKiBGaXhlZCBgYHRlc3RhcHAucG9zdChwYXJhbXM9e30pYGAKKworKiBGaXhlZCBgYHBhc3RlLnRyYW5zbG9nZ2VyLlRyYW5zTG9nZ2VyYGAgdG8gbG9nIHRvIHRoZSBBcGFjaGUgY29tYmluZWQKKyAgbG9nIGZvcm1hdCBhcyBhZHZlcnRpc2VkLgorCisqIEZpeGVkIGBgcGFzdGUudXJscGFyc2VyYGAgY2xhc3NlcyB0byBoYW5kbGUgcXVvdGVkIGNoYXJhY3RlcnMgKGUuZy4KKyAgJTIwKSBpbiBVUkwgcGF0aHMuCisKKyogQ2hhbmdlZCBgYHBhc3RlLnNlc3Npb25gYCB0byBhbGxvdyBtYW5pcHVsYXRpbmcgYSBzZXNzaW9uIGZvciB0aGUKKyAgZmlyc3QgdGltZSBhZnRlciBgYHN0YXJ0X3Jlc3BvbnNlYGAgaXMgY2FsbGVkLgorCisqIEFkZGVkIGBgcGFzdGUud3NnaWxpYi5hZGRfc3RhcnRfY2xvc2VgYCB3aGljaCBjYWxscyBhIGZ1bmN0aW9uIGp1c3QKKyAgYmVmb3JlIHJldHVybmluZyB0aGUgZmlyc3QgY2h1bmsgb2YgdGhlIGFwcF9pdGVyLgorCisqIENoYW5nZWQgYGBwYXN0ZS51cmxtYXBgYCBzbyB0aGF0IGl0IG1hdGNoZXMgZG9tYWluLXNwZWNpZmljIG1hcHBpbmdzCisgIGJlZm9yZSBkb21haW4tbmV1dHJhbCBtYXBwaW5ncy4KKworKiBGaXhlZCBJRSA2IHBvdGVudGlhbGx5IHJlY2VpdmluZyB0aGUgZm9sbG93aW5nIGBgIjQwMCBCYWQgUmVxdWVzdCJgYAorICBlcnJvciBvbiBmaWxlIGRvd25sb2Fkczo6CisKKyAgICBQbGVhc2UgY2hlY2sgeW91ciBzeXN0ZW0gY2xvY2suCisgICAgQWNjb3JkaW5nIHRvIHRoaXMgc2VydmVyLCB0aGUgdGltZSBwcm92aWRlZCBpbiB0aGUKKyAgICBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgaW4gdGhlIGZ1dHVyZS4KKworKiBBZGRlZCBhICdubycga2V5d29yZCBhcmd1bWVudCB0byBgYFRlc3RSZXNwb25zZS5tdXN0Y29udGFpbmBgLCBzbworICB5b3UgY2FuIGFzc2VydCB0aGF0IGEgcmVzcG9uc2UgZG9lcyBjb250YWluIHNvbWUgc3RyaW5ncyBhdCB0aGUgc2FtZQorICB0aW1lIHRoYXQgeW91IGFzc2VydCB0aGF0IGEgcmVzcG9uc2UgKmRvZXMgbm90KiBjb250YWluIG90aGVyCisgIHN0cmluZ3MsIGxpa2U6OgorCisgICAgcmVzID0gYXBwLmdldCgnLycpCisgICAgcmVzLm11c3Rjb250YWluKCd0aGlzIG11c3QgYmUgdGhlcmUnLAorICAgICAgICAgICAgICAgICAgICBubz1bJ2Vycm9yJywgJ3VuZXhwZWN0ZWQnXSkKKworKiBGaXhlZCBgYGZpbGVhcHAuRmlsZUFwcGBgIHRvIHBheSBhdHRlbnRpb24gdG8gdGhlIGBgSWYtTm9uZS1NYXRjaGBgCisgIGhlYWRlciwgd2hpY2ggZG9lcyBFVGFnIG1hdGNoaW5nOyBiZWZvcmUgb25seSBgYElmLU1vZGlmaWVkLVNpbmNlYGAKKyAgd2FzIHN1cHBvcnRlZCwgZXZlbiB0aG91Z2ggYW4gYGBFVGFnYGAgaGVhZGVyIHdhcyBiZWluZyBzZW50OyBpbgorICBwYXJ0aWN1bGFyIEZpcmVmb3ggd291bGQgdGhlbiBvbmx5IHNlbmQgYGBJZi1Ob25lLU1hdGNoYGAgYW5kIHNvCisgIGNvbmRpdGlvbmFsIHJlcXVlc3RzIG5ldmVyIHdvcmtlZC4KKworKiBDaGFuZ2VkIHVzYWdlIG9mIGBgcGFzdGUucmVxdWVzdC5NdWx0aURpY3RgYCB0bworICBgYHBhc3RlLnV0aWwubXVsdGlkaWN0YGAsIHBhcnRpY3VsYXJseSBpbiBgYHBhc3RlLndzZ2l3cmFwcGVyc2BgCisgIHdoZXJlIGBgcmVxdWVzdC5HRVRgYCByZXR1cm5zIGEgbmV3IHN0eWxlIG9mIGRpY3Rpb25hcnkgaW50ZXJmYWNlLgorCisqIEJlIG1vcmUgY2FyZWZ1bCBpbiBgYHBhc3RlLnJlcXVlc3QucGFyc2VfZm9ybXZhcnNgYCBub3QgdG8gbGV0CisgIHRoZSBgYGNnaWBgIG1vZHVsZSByZWFkIGZyb20gYGB3c2dpLmlucHV0YGAgd2hlbiB0aGVyZSBhcmUgbm8KKyAgcGFyc2FibGUgdmFyaWFibGVzIGluIHRoZSBpbnB1dCAoYmFzZWQgb24gYGBDT05URU5UX1RZUEVgYCkuCisKKzAuOS40CistLS0tLQorCisqIFRoaXMgcmVsZWFzZWQgd2FzIGxvc3QgaW4gYSB0cmFnaWMgY2xlcmljYWwgYWNjaWRlbnQuCisKKzAuOS4zCistLS0tLQorCisqIDAuOS4yIEluY2x1ZGVkIGEgdmVyc2lvbiBvZiBNb2NoaUtpdCB0aGF0IHdhcyBubyBsb25nZXIgY29tcGF0aWJsZSB3aXRoCisgIGV2YWxleGNlcHRpb247IDAuOS4zIHJldmVydHMgdG8gYSBwcmV2aW91cyB2ZXJzaW9uLgorCisqIENoYW5nZSB3c2dpLnJ1bl9vbmNlPUZhbHNlIGZvciBgYHBhc3RlLmh0dHBzZXJ2ZXJgYAorCisqIEFkZGVkIGVudHJ5IHBvaW50cyBmb3IgZGVidWcgYXBwcworCiswLjkuMgorLS0tLS0KKworKiBGaXggaW4gcGFzdGUudXJsbWFwIHdoZW4gY29ubmVjdGluZyB3aXRoIGhvc3Q6cG9ydC4KKworKiBBZGRlZCBgYC9fZGVidWcvc3VtbWFyeWBgIHRvIGV2YWxleGNlcHRpb24sIHdoaWNoIGdpdmVzIGEKKyAgSlNPTi1mb3JtYXR0ZWQgbGlzdCBvZiBhbGwgdGhlIGV4Y2VwdGlvbnMgaW4gbWVtb3J5LgorCiswLjkuMQorLS0tLS0KKworKiBBIGZpeCBmb3IgcGFzdGUuZXJyb3Jkb2N1bWVudCwgd2hlbiBkb2luZyBhbiBpbnRlcm5hbCByZWRpcmVjdCBmcm9tCisgIGEgUE9TVCByZXF1ZXN0ICh0aGUgcmVxdWVzdCBpcyByZXdyaXR0ZW4gYXMgYSBHRVQgcmVxdWVzdCkKKworMC45CistLS0KKworKiBBZGRlZCBgcGFzdGUucmVxdWVzdC5XU0dJUmVxdWVzdAorICA8Y2xhc3MtcGFzdGUucmVxdWVzdC5XU0dJUmVxdWVzdC5odG1sPmBfLCBhIHJlcXVlc3Qgb2JqZWN0IHRoYXQKKyAgd3JhcHMgdGhlIFdTR0kgZW52aXJvbm1lbnQuCisKKyogQWRkZWQgYHBhc3RlLnJlZ2lzdHJ5IDxtb2R1bGUtcGFzdGUucmVnaXN0cnkuaHRtbD5gXywgd2hpY2ggaXMKKyAgbWlkZGxld2FyZSBmb3IgcmVnaXN0ZXJpbmcgdGhyZWFkbG9jYWwgb2JqZWN0cyBpbiBhIHJlcXVlc3QuCisKKyogQXZvaWQgYW5ub3lpbmcgd2FybmluZyBmcm9tIHBhc3RlLnJlY3Vyc2l2ZQorCisqIGBgcGFzdGUuaHR0cHNlcnZlcmBgIG5vdyByZW1vdmVzIEhUVFBTZXJ2ZXIncyB0cmFuc2FjdGlvbiBsb2dnaW5nLAorICB3aGljaCB3YXMgZG9pbmcgYSByZXZlcnNlIEROUyBsb29rdXAuCisKKyogQWRkZWQgYGBoYXNfc2Vzc2lvbmBgIHRvIGBgcGFzdGUuc2Vzc2lvbmBgCisKKyogQWxsb3cgZm9yIGNvbmRpdGlvbmFsIGBgcGFzdGUud3NnaWxpYi5pbnRlcmNlcHRfb3V0cHV0YGAgd2hpY2gKKyAgc2hvdWxkIGJlIHNsaWdodGx5IGZhc3RlciAoYW5kIHN0cmVhbWFibGUpIGNvbXBhcmVkIHRvIGRvaW5nIHRoZQorICBjb25kaXRpb24gbWFudWFsbHkuCisKKyogQWRkZWQgZW50cnkgcG9pbnQgZm9yIGBwYXN0ZS5wcm94eSA8bW9kdWxlLXBhc3RlLnByb3h5Lmh0bWw+YF8sIHBsdXMKKyAgaW1wcm92ZW1lbnRzIGZyb20gQnJhZCBDbGVtZW50cyAoc3VwcG9ydCBwYXRoIGluIHRhcmdldCwgZmlsdGVyCisgIHJlcXVlc3QgbWV0aG9kcykKKworKiBBZGRlZCBgcGFzdGUucG9ueSA8bW9kdWxlLXBhc3RlLnBvbnkuaHRtbD5gXyBzbyBwb255IHBvd2VyIGNhbiBiZQorICBhZGRlZCB0byBhbnkgV1NHSSBhcHBsaWNhdGlvbi4KKworKiBBZGRlZCBwb3J0IG1hdGNoaW5nIHRvIGBgcGFzdGUudXJsbWFwYGAuCisKKzAuNQorLS0tCisKKyogQWRkZWQgYHBhc3RlLmF1dGguYXV0aF90a3QgPG1vZHVsZS1wYXN0ZS5hdXRoLmF1dGhfdGt0Lmh0bWw+YF8KKworKiBBZGRlZCBgcGFzdGUuYXV0aC5ncmFudGlwIDxtb2R1bGUtcGFzdGUuYXV0aC5ncmFudGlwLmh0bWw+YF8KKworMC40LjEKKy0tLS0tCisKKyogU29tZSBidWcgZml4ZXMgdG8gdGhlIGBidWlsdC1pbiBIVFRQIHNlcnZlcgorICA8bW9kdWxlLXBhc3RlLmh0dHBzZXJ2ZXIuaHRtbD5gXy4KKworKiBFeHBlcmltZW50YWwgYHBhc3RlLnByb2dyZXNzIDxtb2R1bGUtcGFzdGUucHJvZ3Jlc3MuaHRtbD5gXworICBtaWRkbGV3YXJlIGZvciB0cmFja2luZyB1cGxvYWQgcHJvZ3Jlc3MKKworKiBTb21lIHR3ZWFraW5nIG9mIGhvdyBgcGFzdGUucmVsb2FkIDxtb2R1bGUtcGFzdGUucmVsb2FkLmh0bWw+YF8KKyAgd29ya3MsIGVzcGVjaWFsbHkgd2l0aCByZXNwZWN0IHRvIHNodXRkb3duLgorCiswLjQKKy0tLQorCisqIEZpeGVkIHVwIHBhc3RlIGRvY3VtZW50YXRpb24gKGVzcGVjaWFsbHkgZm9yIG5ldyBwYWNrYWdlcy9tb2R1bGVzKQorCisqIEFkZGVkIGBwYXN0ZS5hdXRoIDxtb2R1bGUtcGFzdGUuYXV0aC5odG1sPmBfIHBhY2thZ2UgZm9yIGF1dGhlbnRpY2F0aW9uCisgIHJlbGF0ZWQgV1NHSSBtaWRkbGUtd2FyZSBjb21wb25lbnRzOgorCisgIC0gYGBiYXNpY2BgIGFuZCBgYGRpZ2VzdGBgIEhUVFAgYXV0aGVudGljYXRpb24gYXMgZGVzY3JpYmVkIGJ5IFJGQyAyNjE3CisKKyAgLSBzdXBwb3J0IGZvciBZYWxlJ3MgQ2VudHJhbCBBdXRoZW50aWNhdGlvbiBTeXN0ZW0gKGBgY2FzYGApCisKKyAgLSBgYG9wZW5faWRgYCBzdXBwb3J0cyBzaW5nbGUgc2lnbi1vbiBvcmlnaW5hbGx5IGRldmVsb3BlZCBmb3IKKyAgICBMaXZlSm91cm5hbCAoc2VlIGh0dHA6Ly9vcGVuaWQubmV0KQorCisgIC0gYGBjb29raWVgYCBkaWdpdGFsbHkgc2lnbnMgY29va2llcyB0byByZWNvcmQgdGhlIGN1cnJlbnQKKyAgICBhdXRoZW50aWNhdGVkIHVzZXIgKGBgUkVNT1RFX1VTRVJgYCksIHNlc3Npb24gaWRlbnRpZmllcgorICAgIChgYFJFTU9URV9TRVNTSU9OYGApLCBhbmQgb3RoZXIgV1NHSSBlbnRyaWVzIGluIHRoZSBgYGVudmlyb25gYC4KKworICAtIGEgYGBmb3JtYGAgbW9kdWxlICh0byBiZSB1c2VkIHdpdGggYGBjb29raWVgYCBvciBhbiBlcXVpdmFsZW50KQorICAgIHByb3ZpZGVzIGEgc2ltcGxlIEhUTUwgYmFzZWQgZm9ybSBhdXRoZW50aWNhdGlvbi4KKworICAtIHRoZSBgYG11bHRpYGAgbW9kdWxlIGlzIGFuICpleHBlcmltZW50YWwqIG1lY2hhbmlzbSBmb3IgY2hvb3NpbmcKKyAgICBhbiBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20gYmFzZWQgb24gdGhlIFdTR0kgYGBlbnZpcm9uYGAKKworKiBBZGRlZCBgcGFzdGUuaHR0cHNlcnZlciA8bW9kdWxlLXBhc3RlLmh0dHBzZXJ2ZXIuaHRtbD5gXyBtb2R1bGUgd2hpY2gKKyAgcHJvdmlkZXMgYSB2ZXJ5IHNpbXBsZSBXU0dJIHNlcnZlciBidWlsdCB1cG9uIHB5dGhvbidzCisgIGBgQmFzZUhUVFBTZXJ2ZXJgYDsgdGhpcyBzZXJ2ZXIgaGFzIHN1cHBvcnQgZm9yIHNldmVyYWwgZmVhdHVyZXM6CisKKyAgLSBzdXBwb3J0IGZvciBTU0wgY29ubmVjdGlvbnMgdmlhIE9wZW5TU0wKKworICAtIHN1cHBvcnQgZm9yIEhUVFAvMS4xIGBgMTAwIENvbnRpbnVlYGAgbWVzc2FnZXMgYXMgcmVxdWlyZWQgYnkgdGhlCisgICAgV1NHSSBzcGVjaWZpY2F0aW9uIChtYW55IEhUVFAgc2VydmVyIGltcGxlbWVudGF0aW9ucyBkb24ndCBkbyB0aGlzKQorCisgIC0gaW1wbGVtZW50ZWQgYXMgYSBNaXgtSW4gc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB3aXRoIG90aGVyCisgICAgbW9yZSBlbmNoYW50ZWQgdmVyc2lvbnMgb2YgYGBCYXNlSFRUUFNlcnZlcmBgCisKKyAgLSBzdXBwb3J0IGZvciAnS2VlcC1BbGl2ZScgKHN0YW5kYXJkIGluIEhUVFAvMS4xKSBieSBlaXRoZXIgcHJvdmlkaW5nCisgICAgYSBjb250ZW50LWxlbmd0aCBvciBjbG9zaW5nIGEgY29ubmVjdGlvbiBpZiBvbmUgaXMgbm90IGF2YWlsYWJsZQorCisqIEltcHJvdmVkIHRoZSBgcGFzdGUuaHR0cGV4Y2VwdGlvbnMgPG1vZHVsZS1wYXN0ZS5odHRwZXhjZXB0aW9ucy5odG1sPmBfCisgIG1vZHVsZToKKworICAtIGFkZGVkIG1pc3NpbmcgZXhjZXB0aW9uIG9iamVjdHMsIGFuZCBiZXR0ZXIgZGVzY3JpcHRpb25zCisKKyAgLSBmaXhlZCBzZXZlcmFsIGJ1Z3MgaW4gaG93IGV4Y2VwdGlvbnMgYXJlIGNhdWdodCBhbmQgcHJvcGFnYXRlZAorCisgIC0gdXNhZ2UgYXMgYSBgYHdzZ2lfYXBwbGljYXRpb24oKWBgIGVuYWJsZXMgZXhjZXB0aW9ucyB0byBiZQorICAgIHJldHVybmVkIHdpdGhvdXQgdGhyb3dpbmcgb3IgY2F0Y2hpbmcgdGhlIGVycm9yCisKKyAgLSBzdXBwb3J0IGZvciBwbGFpbi90ZXh0IG1lc3NhZ2VzIGZvciB0ZXh0LW9ubHkgY2xpZW50cyBzdWNoIGFzCisgICAgY3VybCwgcHl0aG9uJ3MgdXJsbGliLCBvciBNaWNyb3NvZnQgRXhjZWwKKworICAtIGFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBIVE1MIHRlbXBsYXRlIGZvciBoaWdoZXItbGV2ZWwgZnJhbWV3b3JrcworCisqIEFkZGVkIGBwYXN0ZS5odHRwaGVhZGVycyA8bW9kdWxlLXBhc3RlLmh0dHBoZWFkZXJzLmh0bWw+YF8gbW9kdWxlCisgIHRvIHByb3ZpZGUgYSB1bmlmb3JtIG1lY2hhbmlzbSB0byBhY2Nlc3MvdXBkYXRlIHN0YW5kYXJkIEhUVFAgaGVhZGVycworICBpbiBhIFdTR0kgYGBlbnZpcm9uYGAgYW5kIGBgcmVzcG9uc2VfaGVhZGVyc2BgIGNvbGxlY3Rpb247IGl0IGluY2x1ZGVzCisgIHNwZWNpZmljIHN1cHBvcnQgZm9yOgorCisgIC0gcHJvdmlkaW5nICJjb21tb24iIGhlYWRlciBuYW1lcyBhbmQgc29ydGluZyB0aGVtIGFzIHN1Z2dlc3RlZAorICAgIGJ5IFJGQyAyNjE2CisKKyAgLSB2YWxpZGF0ZWQgc3VwcG9ydCBmb3IgYGBDYWNoZS1Db250cm9sYGAgaGVhZGVyIGNvbnN0cnVjdGlvbgorCisgIC0gdmFsaWRhdGVkIHN1cHBvcnQgZm9yIGBgQ29udGVudC1EaXNwb3NpdGlvbmBgIGhlYWRlciBjb25zdHJ1Y3Rpb24KKworICAtIHBhcnNpbmcgb2YgYGBJZi1Nb2RpZmllZC1TaW5jZWBgIGFuZCBvdGhlciBkYXRlIG9yaWVudGVkIGhlYWRlcnMKKworICAtIHBhcnNpbmcgb2YgUmFuZ2UgaGVhZGVyIGZvciBwYXJ0aWFsLWNvbnRlbnQgZGVsaXZlcnkKKworICAtIGNvbXBvc2l0aW9uIG9mIEhUVFAvMS4xIGRpZ2VzdCBgYEF1dGhvcml6YXRpb25gYCByZXNwb25zZXMKKworKiBJbXByb3ZlZCBgcGFzdGUuZmlsZWFwcCA8bW9kdWxlLXBhc3RlLmZpbGVhcHAuaHRtbD5gXyB0byBzdXBwb3J0OgorCisgIC0gc3RhdGljIGluLW1lbW9yeSByZXNvdXJjZXMKKworICAtIGluY3JlbWVudGFsIGRvd25sb2FkaW5nIG9mIGZpbGVzIGZyb20gZGlzaworCisgIC0gcmVzcG9uZGluZyB0byAnUmFuZ2UnIHJlcXVlc3RzIHRvIGhhbmRsZSBwYXJ0aWFsIGRvd25sb2FkcworCisgIC0gYWxsb3dpbmcgY2FjaGUgc2V0dGluZ3MgdG8gYmUgZWFzaWx5IHByb3ZpZGVkOyBpbmNsdWRpbmcKKyAgICBzdXBwb3J0IGZvciBIVFRQLzEuMCAnRXhwaXJlcycgYW5kIEhUVFAvMS4xICdDYWNoZS1Db250cm9sJworCisqIEFkZGVkIGFuICpleHBlcmltZW50YWwqIGBwYXN0ZS50cmFuc2FjdGlvbgorICA8bW9kdWxlLXBhc3RlLnRyYW5zYWN0aW9uLmh0bWw+YF8gbW9kdWxlIGZvciBoYW5kbGluZworICBjb21taXQvcm9sbGJhY2sgb2Ygc3RhbmRhcmQgREJBUEkgZGF0YWJhc2UgY29ubmVjdGlvbnMKKworKiBBZGRlZCBhIGBwYXN0ZS51dGlsLmRhdGV0aW1ldXRpbCA8bW9kdWxlLXBhc3RlLnV0aWwuZGF0ZXRpbWV1dGlsLmh0bWw+YF8KKyAgbW9kdWxlIGZvciBwYXJzaW5nIHN0YW5kYXJkIGRhdGUvdGltZSB1c2VyLWdlbmVyYXRlZCB0ZXh0IHZhbHVlcworCisqIEFkZGVkIGEgYGRlYnVnIDxtb2R1bGUtcGFzdGUuZGVidWcuaHRtbD5gXyBwYWNrYWdlLCB3aGljaCBpbmNsdWRlczoKKworICAtIHByZXZpb3VzIHRvcC1sZXZlbCBtb2R1bGVzIGBgcHJpbnRzYGAsIGBgcHJvZmlsZWBgLAorICAgIGBgd2RnX3ZhbGlkYXRlYGAgYW5kIGBgZG9jdGVzdF93ZWJhcHBgYAorCisgIC0gYSBgYHRlc3RzZXJ2ZXJgYCBtb2R1bGUgc3VpdGFibGUgdG8gdGVzdCBIVFRQIHNvY2tldAorICAgIGNvbm5lY3Rpb25zIHZpYSBgYHB5LnRlc3RgYAorCisqIFJlLWZhY3RvcmVkIGBwYXN0ZS53c2dpbGliIDxtb2R1bGUtcGFzdGUud3NnaWxpYi5odG1sPmBfIGludG8KKyAgc2V2ZXJhbCBvdGhlciBtb2R1bGVzOgorCisgIC0gZnVuY3Rpb25zIHJlZ2FyZGluZyBoZWFkZXIgbWFuaXB1bGF0aW9uIG1vdmVkIHRvCisgICAgYHBhc3RlLnJlc3BvbnNlIDxtb2R1bGUtcGFzdGUucmVzcG9uc2UuaHRtbD5gXworCisgIC0gZnVuY3Rpb25zIHJlZ2FyZGluZyBjb29raWVzIGFuZCBhcmd1bWVudHMgbW92ZWQgdG8KKyAgICBgcGFzdGUucmVxdWVzdCA8bW9kdWxlLXBhc3RlLnJlcXVlc3QuaHRtbD5gXworCisqIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBgYHdzZ2l1dGlscy53c2dpbGliYGAgbW9kdWxlOgorCisgIC0gYWRkZWQgYSBgYGR1bXBfZW52aXJvbmBgIGFwcGxpY2F0aW9uIHRvIGhlbHAgZGVidWdnaW5nCisKKyAgLSBmaXhlcyB0byBgYHJhd19pbnRlcmFjdGl2ZWBgIHRvIGNvbXBseSB3aXRoIFdTR0kgc3BlY2lmaWNhdGlvbnMKKworICAtIGBgcmF3X2ludGVyYWN0aXZlYGAgbm93IGxvZ3MgYWxsIDV4eCBleGNlcHRpb25zIGFuZCBzZXRzIEhUVFBfSE9TVAorCisqIEFkZGVkIGFuIGFyZ3VtZW50IGBgbm9fcHJvZmlsZWBgIHRvCisgIGBwYXN0ZS5kZWJ1Zy5wcm9maWxlLnByb2ZpbGVfZGVjb3JhdG9yCisgIDxtb2R1bGUtcGFzdGUuZGVidWcucHJvZmlsZS5odG1sI3Byb2ZpbGVfZGVjb3JhdG9yPmBfOyBpZiB0aGF0CisgIG9wdGlvbiBpcyBmYWxzZSwgdGhlbiBkb24ndCBwcm9maWxlIHRoZSBmdW5jdGlvbiBhdCBhbGwuCisKKyogQ2hhbmdlZCBgcGFzdGUubGludCA8bW9kdWxlLXBhc3RlLmxpbnQuaHRtbD5gXyB0byBjaGVjayB0aGF0IHRoZQorICBzdGF0dXMgY29udGFpbnMgYSBtZXNzYWdlIChlLmcuLCBgYCI0MDQgTm90IEZvdW5kImBgIGluc3RlYWQgb2YganVzdAorICBgYCI0MDQiYGApLiAgQ2hlY2sgdGhhdCBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcworICBgYEhUVFBfQ09OVEVOVF9UWVBFYGAgYW5kIGBgSFRUUF9DT05URU5UX0xFTkdUSGBgIGFyZSBubyBwcmVzZW50LgorICBNYWRlIHVua25vd24gYGBSRVFVRVNUX01FVEhPRGBgIGEgd2FybmluZyAobm90IGFuIGVycm9yKS4KKworKiBBZGRlZCBwYXJhbWV0ZXIgYGBjd2RgYCB0byBgVGVzdEZpbGVFbnZpcm9ubWVudC5ydW4KKyAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuVGVzdEZpbGVFbnZpcm9ubWVudC5odG1sI3J1bj5gXworCisqIGBwYXN0ZS5maXh0dXJlLlRlc3RBcHAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuVGVzdEFwcC5odG1sPmBfOgorCisgIC0gRm9ybSBmaWxsaW5nIGNvZGUgKHVzZSBgYHJlc3BvbnNlLmZvcm1zWzBdYGAgdG8gZ2V0IGEgYGZvcm0gb2JqZWN0CisgICAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuRm9ybS5odG1sPmBfKQorCisgIC0gQWRkZWQgYGNsaWNrIG1ldGhvZAorICAgIDxjbGFzcy1wYXN0ZS5maXh0dXJlLlRlc3RSZXNwb25zZS5odG1sI2NsaWNrPmBfLgorCisgIC0gQmV0dGVyIGF0dHJpYnV0ZSBlcnJvcnMuCisKKyAgLSBZb3UgY2FuIGZvcmNlIHNldCBoaWRkZW4gZmllbGRzIHVzaW5nCisgICAgYGBmb3JtLmZpZWxkc1tuYW1lXS5mb3JjZV92YWx1ZSh2YWx1ZSlgYCAobm9ybWFsbHkgc2V0dGluZyB0aGUKKyAgICB2YWx1ZSBvZiBhIGhpZGRlbiBmaWVsZCBpcyBhbiBlcnJvcikuCisKKyAgLSBGcmFtZXdvcmtzIGNhbiBub3cgYWRkIGN1c3RvbSBhdHRyaWJ1dGVzIHRvIHRoZSByZXNwb25zZSBvYmplY3QuCisKKyogYGBwYXN0ZS53c2dpbGliLmNhcHR1cmVfb3V0cHV0YGAgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZgorICBgcGFzdGUud3NnaWxpYi5pbnRlcmNlcHRfb3V0cHV0CisgIDxtb2R1bGUtcGFzdGUud3NnaWxpYi5odG1sI2ludGVyY2VwdF9vdXRwdXQ+YF8KKworKiBSZW1vdmUgdXNlIG9mIGV4Y2VwdGlvbnMgaW4gYHBhc3RlLmNhc2NhZGUuQ2FzY2FkZQorICA8Y2xhc3MtcGFzdGUuY2FzY2FkZS5DYXNjYWRlLmh0bWw+YF8sIHdoaWNoIGNhdXNlcyB3ZWlyZCBlZmZlY3RzIGluCisgIHNvbWUgY2FzZXMuICBHZW5lcmFsbHkgd2UgYXJlbid0IHVzaW5nIGV4Y2VwdGlvbnMgaW50ZXJuYWxseSBub3csCisgIG9ubHkgcmV0dXJuIHN0YXR1cyBjb2Rlcy4gIEFsc28gaW4gY2FzY2FkZSwgYmUgY2FyZWZ1bCB0byBrZWVwCisgIGNhc2NhZGVkIHJlcXVlc3RzIGZyb20gc2hhcmluZyB0aGUgc2FtZSBlbnZpcm9ubWVudC4KKworKiBgYHBhc3RlLndzZ2lsaWIuZXJyb3JfcmVzcG9uc2VgYCBpcyBkZXByZWNhdGVkCisgIChgcGFzdGUuaHR0cGV4Y2VwdGlvbnMgPG1vZHVsZS1wYXN0ZS5odHRwZXhjZXB0aW9ucy5odG1sPmBfIHJlcGxhY2VzCisgIHRoaXMgd2l0aCBleGNlcHRpb24ncyBgYC53c2dpX2FwcGxpY2F0aW9uYGAgbWV0aG9kKS4KKworKiBNb3ZlZCBgYHBhc3RlLmxvZ2luYGAgdG8gdGhlIGF0dGljLCBzaW5jZSBgcGFzdGUuYXV0aAorICA8bW9kdWxlLXBhc3RlLmF1dGguaHRtbD5gXyBwcmV0dHkgbXVjaCByZXBsYWNlcyBpdC4KKworKiBgcGFzdGUudXJscGFyc2VyIDxtb2R1bGUtcGFzdGUudXJscGFyc2VyLmh0bWw+YF8gaW1wcm92ZW1lbnRzOgorCisgIC0gQWRkZWQgYW4gYXBwbGljYXRpb24gYHVybHBhcnNlci5TdGF0aWNVUkxQYXJzZXIKKyAgICA8Y2xhc3MtcGFzdGUudXJscGFyc2VyLlN0YXRpY1VSTFBhcnNlci5odG1sPmBfIGZvciBzZXJ2aW5nIHN0YXRpYworICAgIGZpbGVzLgorCisgIC0gQWRkZWQgYW4gYXBwbGljYXRpb24gYHVybHBhcnNlci5Qa2dSZXNvdXJjZXNQYXJzZXIKKyAgICA8Y2xhc3MtcGFzdGUudXJscGFyc2VyLlBrZ1Jlc291cmNlc1BhcnNlci5odG1sPmBfIGZvciBzZXJ2aW5nIHN0YXRpYworICAgIGZpbGVzIGZvdW5kIHdpdGggYGBwa2dfcmVzb3VyY2VzYGAgKGUuZy4sIG91dCBvZiB6aXBwZWQgRWdncykuCisKKyAgLSBCZSBsZXNzIHBpY2t5IGFib3V0IGFtYmlndW91cyBmaWxlbmFtZXMgd2hlbiB1c2luZyBgVVJMUGFyc2VyCisgICAgPGNsYXNzLXBhc3RlLnVybHBhcnNlci5VUkxQYXJzZXIuaHRtbD5gXzsgaWYgYW4gZXhhY3QgZmlsZSBtYXRjaAorICAgIGV4aXN0cywgdXNlIHRoYXQuICAoYGBmaWxlLmdpZi5iYWtgYCB3b3VsZCBjYXVzZSBhIHJlcXVlc3QgZm9yCisgICAgYGBmaWxlLmdpZmBgIHRvIGJlIGFtYmlndW91cyBiZWZvcmUpCisKKyAgLSBOb3cgbG9va3MgZm9yIGEgYGAud3NnaV9hcHBsaWNhdGlvbmBgIGF0dHJpYnV0ZSB3aGVuIHNlcnZpbmcKKyAgICBQeXRob24gZmlsZXMvbW9kdWxlcywgYXMgYSBnZW5lcmFsIGhvb2sgZm9yIHJldHVybmluZyBhIFdTR0kKKyAgICBhcHBsaWNhdGlvbiB2ZXJzaW9uIG9mIGFuIG9iamVjdC4KKworKiBUaGUgYEVycm9yTWlkZGxld2FyZQorICA8Y2xhc3MtcGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmUuRXJyb3JNaWRkbGV3YXJlLmh0bWw+YF86CisKKyAgLSBSZXR1cm5zIHRyaW1tZWQtZG93biBleGNlcHRpb25zIGlmIHRoZXJlIGlzIGEgYGBfYGAgR0VUIHZhcmlhYmxlCisgICAgaW4gdGhlIHJlcXVlc3QgKHdoaWNoIGlzIG1lYW50IHRvIHNpZ25hbCBhbiBYTUxIdHRwUmVxdWVzdCkuCisgICAgRXhjZXB0aW9ucyBkaXNwbGF5ZWQgaW4gdGhpcyBjb250ZXh0IGFyZSBiZXN0IHdoZW4gdGhleSBhcmUgc21hbGxlcgorICAgIGFuZCBlYXNpZXIgdG8gZGlzcGxheS4KKworICAtIEluY2x1ZGVzIGEgdGV4dCB2ZXJzaW9uIG9mIHRoZSB0cmFjZWJhY2ssIGZvciBlYXNpZXIKKyAgICBjb3B5LWFuZC1wYXN0ZS4KKworICAtIEF2b2lkIHByaW50aW5nIGV4Y2VwdGlvbnMgdG8gYGB3c2dpLmVycm9yc2BgIGlmIHRoZXkgYXJlIGFscmVhZHkKKyAgICBkaXNwbGF5ZWQgZWxzZXdoZXJlIChhdCBsZWFzdCBieSBkZWZhdWx0KS4KKworICAtIEhpZ2hsaWdodCBQeXRob24gY29kZS4KKworKiBVc2UgYGBwa2dfcmVzb3VyY2VzLmRlY2xhcmVfbmFtZXNwYWNlYGAgc28gdGhhdCB0aGVyZSBhcmUgbGVzcworICBwcm9ibGVtcyBhYm91dCBjb25mdXNpbmcgdGhlIGBgcGFzdGVgYCBwYWNrYWdlIHRoYXQgaXMgcHJvdmlkZWQgYnkKKyAgUGFzdGUsIFBhc3RlIFNjcmlwdCwgUGFzdGUgRGVwbG95LCBhbmQgUGFzdGUgV2ViS2l0LiAgQmVmb3JlIHlvdQorICBjb3VsZCBnZXQgb25lIG9mIHRoZXNlIGF0IHJhbmRvbSBpZiB5b3UgZGlkbid0IHVzZQorICBgYHBrZ19yZXNvdXJjZXMucmVxdWlyZWBgIGZpcnN0LgorCisqIENsZWFuZWQgdXAgdXNlIG9mIGBgZXhjX2luZm9gYCBhcmd1bWVudCBpbiBgYHN0YXJ0X3Jlc3BvbnNlYGAgY2FsbHMKKyAgKGJvdGggYWNjZXB0aW5nIGFuZCBwcm9kdWNpbmcpLCBpbiBhIHZhcmlldHkgb2YgcGxhY2VzLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvcGFzdGUtaHR0cHNlcnZlci10aHJlYWRwb29sLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3Bhc3RlLWh0dHBzZXJ2ZXItdGhyZWFkcG9vbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI1NWE2MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3Bhc3RlLWh0dHBzZXJ2ZXItdGhyZWFkcG9vbC50eHQKQEAgLTAsMCArMSwxNTAgQEAKK1RoZSBQYXN0ZSBIVFRQIFNlcnZlciBUaHJlYWQgUG9vbAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGhvdyB0aGUgdGhyZWFkIHBvb2wgaW4gYGBwYXN0ZS5odHRwc2VydmVyYGAKK3dvcmtzLCBhbmQgaG93IGl0IGNhbiBhZGFwdCB0byBwcm9ibGVtcy4KKworTm90ZSBhbGwgb2YgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBsaXN0ZWQgaGVyZSBhcmUgcHJlZml4ZWQgd2l0aAorYGB0aHJlYWRwb29sX2BgIHdoZW4gcnVubmluZyB0aHJvdWdoIGEgUGFzdGUgRGVwbG95IGNvbmZpZ3VyYXRpb24uCisKK0Vycm9yIENhc2VzCistLS0tLS0tLS0tLQorCitXaGVuIGEgV1NHSSBhcHBsaWNhdGlvbiBpcyBjYWxsZWQsIGl0J3MgcG9zc2libGUgdGhhdCBpdCB3aWxsIGJsb2NrCitpbmRlZmluaXRlbHkuICBUaGVyZSdzIHR3byBiYXNpYyB3YXlzIHlvdSBjYW4gbWFuYWdlIHRocmVhZHM6CisKKyogU3RhcnQgYSB0aHJlYWQgb24gZXZlcnkgcmVxdWVzdCwgY2xvc2UgaXQgZG93biB3aGVuIHRoZSB0aHJlYWQgc3RvcHMKKworKiBTdGFydCBhIHBvb2wgb2YgdGhyZWFkcywgYW5kIHJldXNlIHRob3NlIHRocmVhZHMgZm9yIHN1YnNlcXVlbnQKKyAgcmVxdWVzdHMKKworSW4gYm90aCBjYXNlcyB0aGluZ3MgZ28gd3JvbmcgLS0gaWYgeW91IHN0YXJ0IGEgdGhyZWFkIGV2ZXJ5IHJlcXVlc3QKK3lvdSB3aWxsIGhhdmUgYW4gZXhwbG9zaW9uIG9mIHRocmVhZHMsIGFuZCB3aXRoIGl0IG1lbW9yeSBhbmQgYSBsb3NzCitvZiBwZXJmb3JtYW5jZS4gIFRoaXMgY2FuIGN1bG1pbmF0ZSBpbiByZWFsbHkgaGlnaCBsb2Fkcywgc3dhcHBpbmcsCithbmQgdGhlIHdob2xlIHNpdGUgZ3JpbmRzIHRvIGEgaGFsdC4KKworSWYgeW91IGFyZSB1c2luZyBhIHBvb2wgb2YgdGhyZWFkcywgYWxsIHRoZSB0aHJlYWRzIGNhbiBzaW1wbHkgYmUgdXNlZAordXAuICBOZXcgcmVxdWVzdHMgZ28gaW50byBhIHF1ZXVlIHRvIGJlIHByb2Nlc3NlZCwgYnV0IHNpbmNlIHRoYXQKK3F1ZXVlIG5ldmVyIG1vdmVzIGZvcndhcmQgZXZlcnlvbmUgd2lsbCBqdXN0IGJsb2NrLiAgVGhlIHNpdGUKK2Jhc2ljYWxseSBmcmVlemVzLCB0aG91Z2ggbWVtb3J5IHVzYWdlIGRvZXNuJ3QgZ2VuZXJhbGx5IGdldCB3b3JzZS4KKworUGFzdGUgVGhyZWFkIFBvb2wKKy0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSB0aHJlYWQgcG9vbCBpbiBQYXN0ZSBoYXMgc29tZSBvcHRpb25zIHRvIHdhbGsgdGhlIHJhem9yJ3MgZWRnZQorYmV0d2VlbiB0aGUgdHdvIHRlY2huaXF1ZXMsIGFuZCB0byB0cnkgdG8gcmVzcG9uZCB1c2VmdWxseSBpbiBtb3N0CitjYXNlcy4KKworVGhlIHBvb2wgdHJhY2tzIGFsbCB3b3JrZXJzIHRocmVhZHMuICBUaHJlYWRzIGNhbiBiZSBpbiBhIGZldyBzdGF0ZXM6CisKKyogSWRsZSwgd2FpdGluZyBmb3IgYSByZXF1ZXN0ICgiaWRsZSIpCisKKyogV29ya2luZyBvbiBhIHJlcXVlc3QKKworICAqIEZvciBhIHJlYXNvbmFibGUgYW1vdW50IG9mIHRpbWUgKCJidXN5IikKKworICAqIEZvciBhbiB1bnJlYXNvbmFibHkgbG9uZyBhbW91bnQgb2YgdGltZSAoImh1bmciKQorCisqIFRocmVhZCB0aGF0IHNob3VsZCBkaWUKKworICAqIEFuIGV4Y2VwdGlvbiBoYXMgYmVlbiBpbmplY3RlZCB0aGF0IHNob3VsZCBraWxsIHRoZSB0aHJlYWQsIGJ1dCBpdAorICAgIGhhc24ndCBoYXBwZW5lZCB5ZXQgKCJkeWluZyIpCisKKyAgKiBBbiBleGNlcHRpb24gaGFzIGJlZW4gaW5qZWN0ZWQsIGJ1dCB0aGUgdGhyZWFkIGhhcyBwZXJzaXN0ZWQgZm9yCisgICAgYW4gdW5yZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lICgiem9tYmllIikKKworV2hlbiBhIHJlcXVlc3QgY29tZXMgaW4sIGlmIHRoZXJlIGFyZSBubyBpZGxlIHdvcmtlciB0aHJlYWRzIHdhaXRpbmcKK3RoZW4gdGhlIHNlcnZlciBsb29rcyBhdCB0aGUgd29ya2VyczsgYWxsIHdvcmtlcnMgYXJlIGJ1c3kgb3IgaHVuZy4KK0lmIHRvbyBtYW55IGFyZSBodW5nLCBhbm90aGVyIHRocmVhZCBpcyBvcGVuZWQgdXAuICBUaGUgbGltaXQgaXMgaWYKK3RoZXJlIGFyZSBsZXNzIHRoYW4gYGBzcGF3bl9pZl91bmRlcmBgIGJ1c3kgdGhyZWFkcy4gIFNvIGlmIHlvdSBoYXZlCisxMCB3b3JrZXJzLCBgYHNwYXduX2lmX3VuZGVyYGAgaXMgNSwgYW5kIHRoZXJlIGFyZSA2IGh1bmcgdGhyZWFkcyBhbmQKKzQgYnVzeSB0aHJlYWRzLCBhbm90aGVyIHRocmVhZCB3aWxsIGJlIG9wZW5lZCAoYnJpbmdpbmcgdGhlIG51bWJlciBvZgorYnVzeSB0aHJlYWRzIGJhY2sgdG8gNSkuICBMYXRlciB0aG9zZSB0aHJlYWRzIG1heSBiZSBjb2xsZWN0ZWQgYWdhaW4KK2lmIHNvbWUgb2YgdGhlIHRocmVhZHMgYmVjb21lIHVuLWh1bmcuICBBIHRocmVhZCBpcyBodW5nIGlmIGl0IGhhcworYmVlbiB3b3JraW5nIGZvciBsb25nZXIgdGhhbiBgYGh1bmdfdGhyZWFkX2xpbWl0YGAgKGRlZmF1bHQgMzAKK3NlY29uZHMpLgorCitFdmVyeSBzbyBvZnRlbiwgdGhlIHNlcnZlciB3aWxsIGNoZWNrIGFsbCB0aGUgdGhyZWFkcyBmb3IgZXJyb3IKK2NvbmRpdGlvbnMuICBUaGlzIGhhcHBlbnMgZXZlcnkgYGBodW5nX2NoZWNrX3BlcmlvZGBgIHJlcXVlc3RzCisoZGVmYXVsdCAxMDApLiAgQXQgdGhpcyB0aW1lIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gZW5vdWdoIHRocmVhZHMKKyhiZWNhdXNlIG9mIGBgc3Bhd25faWZfdW5kZXJgYCkgc29tZSB0aHJlYWRzIG1heSBiZSBjb2xsZWN0ZWQuICBJZiBhbnkKK3RocmVhZHMgaGF2ZSBiZWVuIHdvcmtpbmcgZm9yIGxvbmdlciB0aGFuIGBga2lsbF90aHJlYWRfbGltaXRgYAorKGRlZmF1bHQgMTgwMCBzZWNvbmRzLCBpLmUuLCAzMCBtaW51dGVzKSB0aGVuIHRoZSB0aHJlYWQgd2lsbCBiZQora2lsbGVkLgorCitUbyBraWxsIGEgdGhyZWFkIHRoZSBgYGN0eXBlc2BgIG1vZHVsZSBtdXN0IGJlIGluc3RhbGxlZC4gIFRoaXMgd2lsbAorcmFpc2UgYW4gZXhjZXB0aW9uIChgYFN5c3RlbUV4aXRgYCkgaW4gdGhlIHRocmVhZCwgd2hpY2ggc2hvdWxkIGNhdXNlCit0aGUgdGhyZWFkIHRvIHN0b3AuICBJdCBjYW4gdGFrZSBxdWl0ZSBhIHdoaWxlIGZvciB0aGlzIHRvIGFjdHVhbGx5Cit0YWtlIGVmZmVjdCwgc29tZXRpbWVzIG9uIHRoZSBvcmRlciBvZiBzZXZlcmFsIG1pbnV0ZXMuICBUaGlzIHVzZXMgYQorbm9uLXB1YmxpYyBBUEkgKGhlbmNlIHRoZSBgYGN0eXBlc2BgIHJlcXVpcmVtZW50KSwgYW5kIHNvIGl0IG1pZ2h0IG5vdAord29yayBpbiBhbGwgY2FzZXMuICBJJ3ZlIHRyaWVkIGl0IGluIHB1cmUgUHl0aG9uIGNvZGUgYW5kIHdpdGggYSBodW5nCitzb2NrZXQsIGFuZCBpbiBib3RoIGNhc2VzIGl0IHdvcmtlZC4gIEFzIHNvb24gYXMgdGhlIHRocmVhZCBpcyBraWxsZWQKKyhiZWZvcmUgaXQgaXMgYWN0dWFsbHkgZGVhZCkgYW5vdGhlciB3b3JrZXIgaXMgYWRkZWQgdG8gdGhlIHBvb2wuCisKK0lmIHRoZSBraWxsZWQgdGhyZWFkIGxpdmVzIGxvbmdlciB0aGFuIGBgZHlpbmdfdGhyZWFkX2xpbWl0YGAgKGRlZmF1bHQKKzMwMCBzZWNvbmRzLCA1IG1pbnV0ZXMpIHRoZW4gaXQgaXMgY29uc2lkZXJlZCBhIHpvbWJpZS4KKworWm9tYmllIHRocmVhZHMgYXJlIG5vdCBoYW5kbGVkIHNwZWNpYWxseSB1bmxlc3MgeW91IHNldAorYGBtYXhfem9tYmllc19iZWZvcmVfZGllYGAuICBJZiB5b3Ugc2V0IHRoaXMgYW5kIHRoZXJlIGFyZSBtb3JlIHRoYW4KK3RoaXMgbWFueSB6b21iaWUgdGhyZWFkcywgdGhlbiB0aGUgZW50aXJlIHByb2Nlc3Mgd2lsbCBiZSBraWxsZWQuCitUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgYXJlIHJ1bm5pbmcgdGhlIHNlcnZlciB1bmRlciBzb21lIHByb2Nlc3MKK21vbml0b3IsIHN1Y2ggYXMgYGBzdGFydC1zdG9wLWRhZW1vbmBgLCBgYGRhZW1vbnRvb2xzYGAsIGBgcnVuaXRgYCwgb3IKK3dpdGggYGBwYXN0ZXIgc2VydmUgLS1tb25pdG9yYGAuICBUbyBtYWtlIHRoZSBwcm9jZXNzIGRpZSwgaXQgbWF5IHJ1bgorYGBvcy5fZXhpdGBgLCB3aGljaCBpcyBjb25zaWRlcmVkIGFuIGltcG9saXRlIHdheSB0byBleGl0IGEgcHJvY2VzcworKGFraW4gdG8gYGBraWxsIC05YGApLiAgSXQgKndpbGwqIHRyeSB0byBydW4gdGhlIGZ1bmN0aW9ucyByZWdpc3RlcmVkCit3aXRoIGBgYXRleGl0YGAgKGV4Y2VwdCBmb3IgdGhlIHRocmVhZCBjbGVhbnVwIGZ1bmN0aW9ucywgd2hpY2ggYXJlCit0aGUgb25lcyB3aGljaCB3aWxsIGJsb2NrIHNvIGxvbmcgYXMgdGhlcmUgYXJlIGxpdmluZyB0aHJlYWRzKS4KKworTm90aWZpY2F0aW9uCistLS0tLS0tLS0tLS0KKworSWYgeW91IHNldCBgYGVycm9yX2VtYWlsYGAgKGluY2x1ZGluZyBzZXR0aW5nIGl0IGdsb2JhbGx5IGluIGEgUGFzdGUKK0RlcGxveSBgYFtERUZBVUxUXWBgIHNlY3Rpb24pIHRoZW4geW91IHdpbGwgYmUgbm90aWZpZWQgb2YgdHdvIGVycm9yCitjb25kaXRpb25zOiB3aGVuIGh1bmcgdGhyZWFkcyBhcmUga2lsbGVkLCBhbmQgd2hlbiB0aGUgcHJvY2VzcyBpcwora2lsbGVkIGR1ZSB0byB0b28gbWFueSB6b21iaWUgdGhyZWFkcy4KKworTWlzc2VkIENhc2VzCistLS0tLS0tLS0tLS0KKworSWYgeW91IGhhdmUgYSB3b3JrZXIgcG9vbCBzaXplIG9mIDEwLCBhbmQgMTEgc2xvdyBvciBodW5nIHJlcXVlc3RzCitjb21lIGluLCB0aGUgZmlyc3QgMTAgd2lsbCBnZXQgaGFuZGVkIG9mZiBidXQgdGhlIHNlcnZlciB3b24ndCBrbm93Cit5ZXQgdGhhdCB0aGV5IHdpbGwgaGFuZy4gIFRoZSBsYXN0IHJlcXVlc3Qgd2lsbCBzdGF5IHN0dWNrIGluIGEgcXVldWUKK3VudGlsIGFub3RoZXIgcmVxdWVzdCBjb21lcyBpbi4gIFdoZW4gYSBsYXRlciByZXF1ZXN0IGNvbWVzIGxhdGVyCisoYWZ0ZXIgYGBodW5nX3RocmVhZF9saW1pdGBgIHNlY29uZHMpIHRoZSBzZXJ2ZXIgd2lsbCBub3RpY2UgdGhlCitwcm9ibGVtIGFuZCBhZGQgbW9yZSB0aHJlYWRzLCBhbmQgdGhlIDExdGggcmVxdWVzdCB3aWxsIGNvbWUgdGhyb3VnaC4KKworSWYgYSB0cmlja2xlIG9mIGJhZCByZXF1ZXN0cyBrZWVwcyBjb21pbmcgaW4sIHRoZSBudW1iZXIgb2YgaHVuZwordGhyZWFkcyB3aWxsIGtlZXAgaW5jcmVhc2luZy4gIEF0IDEwMCB0aGUgYGBodW5nX2NoZWNrX3BlcmlvZGBgIG1heQorbm90IGNsZWFuIHRoZW0gdXAgZmFzdCBlbm91Z2guCisKK0tpbGxpbmcgdGhyZWFkcyBpcyBub3Qgc29tZXRoaW5nIFB5dGhvbiByZWFsbHkgc3VwcG9ydHMuICBDb3JydXB0aW9uCitvZiB0aGUgcHJvY2VzcywgbWVtb3J5IGxlYWtzLCBvciB3aG8ga25vd3Mgd2hhdCBtaWdodCBvY2N1ci4gIEZvciB0aGUKK21vc3QgcGFydCB0aGUgdGhyZWFkcyBzZWVtIHRvIGJlIGtpbGxlZCBpbiBhIGZhaXJseSBzaW1wbGUgbWFubmVyIC0tCithbiBleGNlcHRpb24gaXMgcmFpc2VkLCBhbmQgYGBmaW5hbGx5YGAgYmxvY2tzIGRvIGdldCBleGVjdXRlZC4gIEJ1dAordGhpcyBoYXNuJ3QgYmVlbiB0cmllZCBtdWNoIGluIHByb2R1Y3Rpb24sIHNvIHRoZXJlJ3Mgbm90IG11Y2gKK2V4cGVyaWVuY2Ugd2l0aCBpdC4KKword2F0Y2hfdGhyZWFkcworLS0tLS0tLS0tLS0tLQorCitJZiB5b3Ugd2FudCB0byBzZWUgd2hhdCdzIGdvaW5nIG9uIGluIHlvdXIgcHJvY2VzcywgeW91IGNhbiBpbnN0YWxsCit0aGUgYXBwbGljYXRpb24gYGBlZ2c6UGFzdGUjd2F0Y2hfdGhyZWFkc2BgIChpbiB0aGUKK2BgcGFzdGUuZGVidWcud2F0Y2h0aHJlYWRzYGAgbW9kdWxlKS4gIFRoaXMgbGV0cyB5b3Ugc2VlIHJlcXVlc3RzIGFuZAoraG93IGxvbmcgdGhleSBoYXZlIGJlZW4gcnVubmluZy4gIEluIFB5dGhvbiAyLjUgeW91IGNhbiBzZWUgdHJhY2ViYWNrcworb2YgdGhlIHJ1bm5pbmcgcmVxdWVzdHM7IGJlZm9yZSB0aGF0IHlvdSBjYW4gb25seSBzZWUgcmVxdWVzdCBkYXRhCisoVVJMcywgVXNlci1BZ2VudCwgZXRjKS4gIElmIHlvdSBzZXQgYGBhbGxvd19raWxsID0gdHJ1ZWBgIHRoZW4geW91CitjYW4gYWxzbyBraWxsIHRocmVhZHMgZnJvbSB0aGUgYXBwbGljYXRpb24uICBUaGUgdGhyZWFkIHBvb2wgaXMKK2ludGVuZGVkIHRvIHJ1biByZWxpYWJseSB3aXRob3V0IGludGVydmVudGlvbiwgYnV0IHRoaXMgY2FuIGhlbHAgZGVidWcKK3Byb2JsZW1zIG9yIGdpdmUgeW91IHNvbWUgZmVlbGluZyBvZiB3aGF0IGNhdXNlcyBwcm9ibGVtcyBpbiB0aGUgc2l0ZS4KKworVGhpcyBkb2VzIG9wZW4gdXAgcHJpdmFjeSBwcm9ibGVtcywgYXMgaXQgZ2l2ZXMgeW91IGFjY2VzcyB0byBhbGwgdGhlCityZXF1ZXN0IGRhdGEgaW4gdGhlIHNpdGUsIGluY2x1ZGluZyBjb29raWVzLCBJUCBhZGRyZXNzZXMsIGV0Yy4gIEl0CitzaG91bGRuJ3QgYmUgbGVmdCBvbiBpbiBhIHB1YmxpYyBzZXR0aW5nLgorCitzb2NrZXRfdGltZW91dAorLS0tLS0tLS0tLS0tLS0KKworVGhlIEhUVFAgc2VydmVyIChub3QgdGhlIHRocmVhZCBwb29sKSBhbHNvIGFjY2VwdHMgYW4gYXJndW1lbnQKK2Bgc29ja2V0X3RpbWVvdXRgYC4gIEl0IGlzIHR1cm5lZCBvZmYgYnkgZGVmYXVsdC4gIFlvdSBtaWdodCBmaW5kIGl0CitoZWxwZnVsIHRvIHR1cm4gaXQgb24uCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3Rlc3Rfc2VydmVyLmluaSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3Rlc3Rfc2VydmVyLmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjljMDk2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvdGVzdF9zZXJ2ZXIuaW5pCkBAIC0wLDAgKzEsNDIgQEAKK1tERUZBVUxUXQorZXJyb3JfZW1haWwgPSBpYW5iQGNvbG9yc3R1ZHkuY29tCisKK1thcHA6bWFpbl0KK3VzZSA9IGVnZzpQYXN0ZVNjcmlwdCN0ZXN0CisKK1tzZXJ2ZXI6bWFpbl0KK3VzZSA9IGVnZzpQYXN0ZSNodHRwCitob3N0ID0gMTI3LjAuMC4xOjgwODEKKyMgVGhlc2Ugb3B0aW9ucyBtYWtlIGl0IGVhc2llciB0byB0cmlnZ2VyIHRoZSB0aHJlYWQgcG9vbCBjYXRjaGVzCisjIChpLmUuLCB0aHJlYWRzIGFyZSBodW5nIGZhc3QsIGtpbGxlZCBmYXN0LCBzcGF3biBmYXN0LCBhbmQgdGhlCisjIHdob2xlIHByb2Nlc3MgZGllcyBxdWlja2x5IGR1ZSB0byB6b21iaWVzKQordGhyZWFkcG9vbF93b3JrZXJzID0gMwordGhyZWFkcG9vbF9odW5nX3RocmVhZF9saW1pdCA9IDEwCit0aHJlYWRwb29sX2tpbGxfdGhyZWFkX2xpbWl0ID0gMjAKK3RocmVhZHBvb2xfc3Bhd25faWZfdW5kZXIgPSAyCit0aHJlYWRwb29sX21heF96b21iaWVfdGhyZWFkc19iZWZvcmVfZGllID0gMgordGhyZWFkcG9vbF9odW5nX2NoZWNrX3BlcmlvZCA9IDEKK3RocmVhZHBvb2xfZHlpbmdfbGltaXQgPSAxMAorCitbc2VydmVyOmNoZXJyeXB5XQordXNlID0gZWdnOlBhc3RlU2NyaXB0I2NoZXJyeXB5Citob3N0ID0gMTI3LjAuMC4xOjgwODAKKworW2ZpbHRlci1hcHA6d2F0Y2hfdGhyZWFkc10KK3VzZSA9IGVnZzpQYXN0ZSNlcnJvcl9jYXRjaGVyCitkZWJ1ZyA9IHRydWUKK25leHQgPSB3YXRjaF90aHJlYWRzX2lubmVyCisKK1thcHA6d2F0Y2hfdGhyZWFkc19pbm5lcl0KK3VzZSA9IGVnZzpQYXN0ZSN1cmxtYXAKKy9iYWQgPSBiYWRfYXBwCisvID0gd2F0Y2hfYXBwCisKK1thcHA6d2F0Y2hfYXBwXQordXNlID0gZWdnOlBhc3RlI3dhdGNoX3RocmVhZHMKK2FsbG93X2tpbGwgPSB0cnVlCisKK1thcHA6YmFkX2FwcF0KK3Bhc3RlLmFwcF9mYWN0b3J5ID0gcGFzdGUuZGVidWcud2F0Y2h0aHJlYWRzOm1ha2VfYmFkX2FwcAorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3Rlc3RpbmctYXBwbGljYXRpb25zLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3Rlc3RpbmctYXBwbGljYXRpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmNhNDk1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvdGVzdGluZy1hcHBsaWNhdGlvbnMudHh0CkBAIC0wLDAgKzEsMTU2IEBACitUZXN0aW5nIEFwcGxpY2F0aW9ucyB3aXRoIFBhc3RlCisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKKzphdXRob3I6IElhbiBCaWNraW5nIDxpYW5iQGNvbG9yc3R1ZHkuY29tPgorOnJldmlzaW9uOiAkUmV2JAorOmRhdGU6ICRMYXN0Q2hhbmdlZERhdGUkCisKKy4uIGNvbnRlbnRzOjoKKworSW50cm9kdWN0aW9uCis9PT09PT09PT09PT0KKworUGFzdGUgaW5jbHVkZXMgZnVuY3Rpb25hbGl0eSBmb3IgdGVzdGluZyB5b3VyIGFwcGxpY2F0aW9uIGluIGEKK2NvbnZlbmllbnQgbWFubmVyLiAgVGhlc2UgZmFjaWxpdGllcyBhcmUgcXVpdGUgeW91bmcsIGFuZCBmZWVkYmFjayBpcworaW52aXRlZC4gIEZlZWRiYWNrIGFuZCBkaXNjdXNzaW9uIHNob3VsZCB0YWtlIHBsYWNlIG9uIHRoZQorYFBhc3RlLXVzZXJzIGxpc3QKKzxodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXAvcGFzdGUtdXNlcnM+YF8uCisKK1RoZXNlIGZhY2lsaXRpZXMgbGV0IHlvdSB0ZXN0IHlvdXIgUGFzdGUgYW5kIFdTR0ktYmFzZWQgYXBwbGljYXRpb25zCitlYXNpbHkgYW5kIHdpdGhvdXQgYSBzZXJ2ZXIuIAorCisuLiBpbmNsdWRlOjogaW5jbHVkZS9jb250YWN0LnR4dAorCitUaGUgVGVzdHMgVGhlbXNlbHZlcworPT09PT09PT09PT09PT09PT09PT0KKworVGhlIGBgYXBwYGAgb2JqZWN0IGlzIGEgd3JhcHBlciBhcm91bmQgeW91ciBhcHBsaWNhdGlvbiwgd2l0aCBtYW55CittZXRob2RzIHRvIG1ha2UgdGVzdGluZyBjb252ZW5pZW50LiAgSGVyZSdzIGFuIGV4YW1wbGUgdGVzdCBzY3JpcHQ6OgorCisgICAgZGVmIHRlc3RfbXlhcHAoKToKKyAgICAgICAgcmVzID0gYXBwLmdldCgnL3ZpZXcnLCBwYXJhbXM9eydpZCc6IDEwfSkKKyAgICAgICAgIyBXZSBqdXN0IGdvdCAvdmlldz9pZD0xMAorICAgICAgICByZXMubXVzdGNvbnRhaW4oJ0l0ZW0gMTAnKQorICAgICAgICByZXMgPSBhcHAucG9zdCgnL3ZpZXcnLCBwYXJhbXM9eydpZCc6IDEwLCAnbmFtZSc6ICdOZXcgaXRlbQorICAgICAgICAgICAgbmFtZSd9KQorICAgICAgICAjIFRoZSBhcHAgZG9lcyBQT1NULWFuZC1yZWRpcmVjdC4uLgorICAgICAgICByZXMgPSByZXMuZm9sbG93KCkKKyAgICAgICAgYXNzZXJ0IHJlcy5yZXF1ZXN0LnVybCA9PSAnL3ZpZXc/aWQ9MTAnCisgICAgICAgIHJlcy5tdXN0Y29udGFpbignTmV3IGl0ZW0gbmFtZScpCisgICAgICAgIHJlcy5tdXN0Y29udGFpbignSXRlbSB1cGRhdGVkJykKKworVGhlIG1ldGhvZHMgb2YgdGhlIGBgYXBwYGAgb2JqZWN0IChhIGBgcGFzdGUudGVzdHMuZml4dHVyZS5UZXN0QXBwYGAKK29iamVjdCk6CisKK2BgZ2V0KHVybCwgcGFyYW1zPXt9LCBoZWFkZXJzPXt9LCBzdGF0dXM9Tm9uZSlgYDoKKyAgICBHZXRzIHRoZSBVUkwuICBVUkxzIGFyZSBiYXNlZCBpbiB0aGUgcm9vdCBvZiB5b3VyIGFwcGxpY2F0aW9uOyBubworICAgIGRvbWFpbnMgYXJlIGFsbG93ZWQuICBQYXJhbWV0ZXJzIGNhbiBiZSBnaXZlbiBhcyBhIGRpY3Rpb25hcnksIG9yCisgICAgaW5jbHVkZWQgZGlyZWN0bHkgaW4gdGhlIGBgdXJsYGAuICBIZWFkZXJzIGNhbiBhbHNvIGJlIGFkZGVkLgorCisgICAgVGhpcyB0ZXN0cyB0aGF0IHRoZSBzdGF0dXMgaXMgYSBgYDIwMCBPS2BgIG9yIGEgcmVkaXJlY3QgaGVhZGVyLAorICAgIHVubGVzcyB5b3UgcGFzcyBpbiBhIGBgc3RhdHVzYGAuICBBIHN0YXR1cyBvZiBgYCIqImBgIHdpbGwgbmV2ZXIKKyAgICBmYWlsOyBvciB5b3UgY2FuIGFzc2VydCBhIHNwZWNpZmljIHN0YXR1cyAobGlrZSBgYDUwMGBgKS4KKworICAgIEFsc28sIGlmIGFueSBlcnJvcnMgYXJlIHdyaXR0ZW4gdG8gdGhlIGVycm9yIHN0cmVhbSB0aGlzIHdpbGwKKyAgICByYWlzZSBhbiBlcnJvci4KKworYGBwb3N0KHVybCwgcGFyYW1zPXt9LCBoZWFkZXJzPXt9LCBzdGF0dXM9Tm9uZSwgdXBsb2FkX2ZpbGVzPSgpKWBgOgorICAgIFBPU1RTIHRvIHRoZSBVUkwuICBMaWtlIEdFVCwgZXhjZXB0IGFsc28gYWxsb3dzIGZvciB1cGxvYWRpbmcKKyAgICBmaWxlcy4gIFRoZSB1cGxvYWRlZCBmaWxlcyBhcmUgYSBsaXN0IG9mIGBgKGZpZWxkX25hbWUsIGZpbGVuYW1lLAorICAgIGZpbGVfY29udGVudClgYC4gIAorCisgICAgSWYgeW91IGRvbid0IHdhbnQgdG8gZG8gYSB1cmxlbmNvZGVkIHBvc3QgYm9keSwgeW91IGNhbiBwdXQgYQorICAgIGBgY29udGVudC10eXBlYGAgaGVhZGVyIGluIHlvdXIgaGVhZGVyLCBhbmQgcGFzcyB0aGUgYm9keSBpbiBhcyBhCisgICAgc3RyaW5nIHdpdGggYGBwYXJhbXNgYC4KKworVGhlIHJlc3BvbnNlIG9iamVjdDoKKworYGBoZWFkZXIoaGVhZGVyX25hbWUsIFtkZWZhdWx0XSlgYDoKKyAgICBSZXR1cm5zIHRoZSBuYW1lZCBoZWFkZXIuICBJdCdzIGFuIGVycm9yIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUKKyAgICBtYXRjaGluZyBoZWFkZXIuICBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIGRlZmF1bHQsIGl0IGlzIGFuIGVycm9yCisgICAgaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgaGVhZGVyLgorCitgYGFsbF9oZWFkZXJzKGhlYWRlcl9uYW1lKTpgYAorICAgIFJldHVybnMgYSBsaXN0IG9mIGFsbCBtYXRjaGluZyBoZWFkZXJzLgorCitgYGZvbGxvdygqKmt3KWBgOgorICAgIEZvbGxvd3MgdGhlIHJlZGlyZWN0LCByZXR1cm5pbmcgdGhlIG5ldyByZXNwb25zZS4gIEl0IGlzIGFuIGVycm9yCisgICAgaWYgdGhpcyByZXNwb25zZSB3YXNuJ3QgYSByZWRpcmVjdC4gIEFueSBrZXl3b3JkIGFyZ3VtZW50cyBhcmUKKyAgICBwYXNzZWQgdG8gYGBhcHAuZ2V0YGAgKGUuZy4sIGBgc3RhdHVzYGApLgorCitgYHggaW4gcmVzYGA6CisgICAgUmV0dXJucyBUcnVlIGlmIHRoZSBzdHJpbmcgaXMgZm91bmQgaW4gdGhlIHJlc3BvbnNlLiAgV2hpdGVzcGFjZQorICAgIGlzIG5vcm1hbGl6ZWQgZm9yIHRoaXMgdGVzdC4KKworYGBtdXN0Y29udGFpbigqc3RyaW5ncylgYDoKKyAgICBSYWlzZXMgYW4gZXJyb3IgaWYgYW55IG9mIHRoZSBzdHJpbmdzIGFyZSBub3QgZm91bmQgaW4gdGhlCisgICAgcmVzcG9uc2UuCisKK2Bgc2hvd2Jyb3dzZXIoKWBgOgorICAgIE9wZW5zIHRoZSBIVE1MIHJlc3BvbnNlIGluIGEgYnJvd3NlcjsgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuCisKK2Bgc3RyKHJlcylgYDoKKyAgICBHaXZlcyBhIHNsaWdodGx5LWNvbXBhY3RlZCB2ZXJzaW9uIG9mIHRoZSByZXNwb25zZS4KKworYGBjbGljayhkZXNjcmlwdGlvbj1Ob25lLCBsaW5raWQ9Tm9uZSwgaHJlZj1Ob25lLCBhbmNob3I9Tm9uZSwgaW5kZXg9Tm9uZSwgdmVyYm9zZT1GYWxzZSlgYDogCisgICAgQ2xpY2tzIHRoZSBkZXNjcmliZWQgbGluayAoYHNlZSBkb2NzdHJpbmcgZm9yIG1vcmUKKyAgICA8Li9jbGFzcy1wYXN0ZS5maXh0dXJlLlRlc3RSZXNwb25zZS5odG1sI2NsaWNrPmBfKQorCitgYGZvcm1zYGA6CisgICAgUmV0dXJuIGEgZGljdGlvbmFyeSBvZiBmb3JtczsgeW91IGNhbiB1c2UgYm90aCBpbmRleGVzIChyZWZlciB0bworICAgIHRoZSBmb3JtcyBpbiBvcmRlcikgb3IgdGhlIHN0cmluZyBpZHMgb2YgZm9ybXMgKGlmIHlvdSd2ZSBnaXZlbgorICAgIHRoZW0gaWRzKSB0byBpZGVudGlmeSB0aGUgZm9ybS4gIFNlZSBgRm9ybSBTdWJtaXNzaW9ucyA8I2Zvcm0tc3VibWlzc2lvbnM+YF8gZm9yCisgICAgbW9yZSBvbiB0aGUgZm9ybSBvYmplY3RzLgorCitSZXF1ZXN0IG9iamVjdHM6CisKK2BgdXJsYGA6CisgICAgVGhlIHVybCByZXF1ZXN0ZWQuCisKK2BgZW52aXJvbmBgOgorICAgIFRoZSBlbnZpcm9ubWVudCB1c2VkIGZvciB0aGUgcmVxdWVzdC4KKworYGBmdWxsX3VybGBgOgorICAgIFRoZSB1cmwgd2l0aCBxdWVyeSBzdHJpbmcuCisKK0Zvcm0gU3VibWlzc2lvbnMKKz09PT09PT09PT09PT09PT0KKworWW91IGNhbiBmaWxsIG91dCBhbmQgc3VibWl0IGZvcm1zIGZyb20geW91ciB0ZXN0cy4gIEZpcnN0IHlvdSBnZXQgdGhlCitmb3JtOjoKKworICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcvZW50cnlfZm9ybScpCisgICAgZm9ybSA9IHJlcy5mb3Jtc1swXQorCitUaGVuIHlvdSBmaWxsIGl0IGluIGZpZWxkczo6CisKKyAgICAjIHdoZW4gdGhlcmUncyBvbmUgdW5hbWJpZ3VvdXMgbmFtZSBmaWVsZDoKKyAgICBmb3JtWyduYW1lJ10gPSAnQm9iJworICAgICMgRW50ZXIgc29tZXRoaW5nIGludG8gdGhlIGZpcnN0IGZpZWxkIG5hbWVkICdhZ2UnCisgICAgZm9ybS5zZXQoJ2FnZScsICc0NScsIGluZGV4PTEpCisKK0ZpbmFsbHkgeW91IHN1Ym1pdDo6CisKKyAgICAjIFN1Ym1pdCB3aXRoIG5vIHBhcnRpY3VsYXIgc3VibWl0IGJ1dHRvbiBwcmVzc2VkOgorICAgIGZvcm0uc3VibWl0KCkKKyAgICAjIE9yIHN1Ym1pdCBhIGJ1dHRvbjoKKyAgICBmb3JtLnN1Ym1pdCgnc3VibWl0X2J1dHRvbl9uYW1lJykKKworRnJhbWV3b3JrIEhvb2tzCis9PT09PT09PT09PT09PT0KKworRnJhbWV3b3JrcyBjYW4gZGV0ZWN0IHRoYXQgdGhleSBhcmUgaW4gYSB0ZXN0aW5nIGVudmlyb25tZW50IGJ5IHRoZQorcHJlc2VuY2UgKGFuZCB0cnV0aCkgb2YgdGhlIFdTR0kgZW52aXJvbm1lbnRhbCB2YXJpYWJsZQorYGAicGFzdGUudGVzdGluZyJgYC4KKworTW9yZSBnZW5lcmFsbHksIGZyYW1ld29ya3MgY2FuIGRldGVjdCB0aGF0IHNvbWV0aGluZyAocG9zc2libHkgYSB0ZXN0CitmaXh0dXJlKSBpcyByZWFkeSB0byBjYXRjaCB1bmV4cGVjdGVkIGVycm9ycyBieSB0aGUgcHJlc2VuY2UgYW5kIHRydXRoCitvZiBgYCJwYXN0ZS50aHJvd19lcnJvcnMiYGAgKHRoaXMgaXMgc29tZXRpbWVzIHNldCBvdXRzaWRlIG9mIHRlc3RpbmcKK2ZpeHR1cmVzIHRvbywgd2hlbiBhbiBlcnJvci1oYW5kbGluZyBtaWRkbGV3YXJlIGlzIGluIHBsYWNlKS4KKworRnJhbWV3b3JrcyB0aGF0IHdhbnQgdG8gZXhwb3NlIHRoZSBpbm5lciBzdHJ1Y3R1cmUgb2YgdGhlIHJlcXVlc3QgbWF5Cit1c2UgYGAicGFzdGUudGVzdGluZ192YXJpYWJsZXMiYGAuICBUaGlzIHdpbGwgYmUgYSBkaWN0aW9uYXJ5IC0tIGFueQordmFsdWVzIHB1dCBpbnRvIHRoYXQgZGljdGlvbmFyeSB3aWxsIGJlY29tZSBhdHRyaWJ1dGVzIG9mIHRoZSByZXNwb25zZQorb2JqZWN0LiAgU28gaWYgeW91IGRvIGBgZW52WyJwYXN0ZS50ZXN0aW5nX3ZhcmlhYmxlcyJdWyd0ZW1wbGF0ZSddID0KK3RlbXBsYXRlX25hbWVgYCBpbiB5b3VyIGZyYW1ld29yaywgdGhlbiBgYHJlc3BvbnNlLnRlbXBsYXRlYGAgd2lsbCBiZQorYGB0ZW1wbGF0ZV9uYW1lYGAuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy91cmwtcGFyc2luZy13aXRoLXdzZ2kudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvdXJsLXBhcnNpbmctd2l0aC13c2dpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTY5NzFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3MvdXJsLXBhcnNpbmctd2l0aC13c2dpLnR4dApAQCAtMCwwICsxLDMwNCBAQAorVVJMIFBhcnNpbmcgV2l0aCBXU0dJIEFuZCBQYXN0ZQorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworCis6YXV0aG9yOiBJYW4gQmlja2luZyA8aWFuYkBjb2xvcnN0dWR5LmNvbT4KKzpyZXZpc2lvbjogJFJldiQKKzpkYXRlOiAkTGFzdENoYW5nZWREYXRlJAorCisuLiBjb250ZW50czo6CisKK0ludHJvZHVjdGlvbiBhbmQgQXVkaWVuY2UKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhpcyBkb2N1bWVudCBpcyBpbnRlbmRlZCBmb3Igd2ViIGZyYW1ld29yayBhdXRob3JzIGFuZCBpbnRlZ3JhdG9ycywKK2FuZCBwZW9wbGUgd2hvIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJuYWwgYXJjaGl0ZWN0dXJlIG9mIFBhc3RlLgorCisuLiBpbmNsdWRlOjogaW5jbHVkZS9jb250YWN0LnR4dAorCitVUkwgUGFyc2luZworPT09PT09PT09PT0KKworLi4gbm90ZTo6CisKKyAgIFNvbWV0aW1lcyBwZW9wbGUgdXNlICJVUkwiLCBhbmQgc29tZXRpbWVzICJVUkkiLiAgSSB0aGluayBVUkxzIGFyZQorICAgYSBzdWJzZXQgb2YgVVJJcy4gIEJ1dCBpbiBwcmFjdGljZSB5b3UnbGwgYWxtb3N0IG5ldmVyIHNlZSBVUklzCisgICB0aGF0IGFyZW4ndCBVUkxzLCBhbmQgY2VydGFpbmx5IG5vdCBpbiBQYXN0ZS4gIFVSSXMgdGhhdCBhcmVuJ3QKKyAgIFVSTHMgYXJlIGFic3RyYWN0IElkZW50aWZpZXJzLCB0aGF0IGNhbm5vdCBuZWNlc3NhcmlseSBiZSB1c2VkIHRvCisgICBMb2NhdGUgdGhlIHJlc291cmNlLiAgVGhpcyBkb2N1bWVudCBpcyAqYWxsKiBhYm91dCBsb2NhdGluZy4KKworTW9zdCBnZW5lcmFsbHksIFVSTCBwYXJzaW5nIGlzIGFib3V0IHRha2luZyBhIFVSTCBhbmQgZGV0ZXJtaW5pbmcgd2hhdAorInJlc291cmNlIiB0aGUgVVJMIHJlZmVycyB0by4gICJSZXNvdXJjZSIgaXMgYSByYXRoZXIgdmFndWUgdGVybSwKK2ludGVudGlvbmFsbHkuICBJdCdzIHJlYWxseSBqdXN0IGEgbWV0YXBob3IgLS0gaW4gcmVhbGl0eSB0aGVyZSBhcmVuJ3QKK2FueSAicmVzb3VyY2VzIiBpbiBIVFRQOyB0aGVyZSBhcmUgb25seSByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLgorCitJbiBQYXN0ZSwgZXZlcnl0aGluZyBpcyBhYm91dCBXU0dJLiAgQnV0IHRoYXQgY2FuIHNlZW0gdG9vIGZhbmN5LgorVGhlcmUgYXJlIGZvdXIgY29yZSB0aGluZ3MgaW52b2x2ZWQ6IHRoZSAqcmVxdWVzdCogKHBlcnNvbmlmaWVkIGluIHRoZQorV1NHSSBlbnZpcm9ubWVudCksIHRoZSAqcmVzcG9uc2UqIChwZXJzb25pZmllZCBpbnRoZQorYGBzdGFydF9yZXNwb25zZWBgIGNhbGxiYWNrIGFuZCB0aGUgcmV0dXJuIGl0ZXJhdG9yKSwgdGhlIFdTR0kKK2FwcGxpY2F0aW9uLCBhbmQgdGhlIHNlcnZlciB0aGF0IGNhbGxzIHRoYXQgYXBwbGljYXRpb24uICBUaGUKK2FwcGxpY2F0aW9uIGFuZCByZXF1ZXN0IGFyZSBvYmplY3RzLCB3aGlsZSB0aGUgc2VydmVyIGFuZCByZXNwb25zZSBhcmUKK3JlYWxseSBtb3JlIGxpa2UgYWN0aW9ucyB0aGFuIGNvbmNyZXRlIG9iamVjdHMuCisKK0luIHRoaXMgY29udGV4dCwgVVJMIHBhcnNpbmcgaXMgYWJvdXQgbWFwcGluZyBhIFVSTCB0byBhbgorKmFwcGxpY2F0aW9uKiBhbmQgYSAqcmVxdWVzdCouICBUaGUgcmVxdWVzdCBhY3R1YWxseSBnZXRzIG1vZGlmaWVkIGFzCitpdCBtb3ZlcyB0aHJvdWdoIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiAgVHdvIGRpY3Rpb25hcnkga2V5cworaW4gcGFydGljdWxhciByZWxhdGUgdG8gVVJMcyAtLSBgYFNDUklQVF9OQU1FYGAgYW5kIGBgUEFUSF9JTkZPYGAgLS0KK2J1dCBhbnkgcGFydCBvZiB0aGUgZW52aXJvbm1lbnQgY2FuIGJlIG1vZGlmaWVkIGFzIGl0IGlzIHBhc3NlZAordGhyb3VnaCB0aGUgc3lzdGVtLgorCitEaXNwYXRjaGluZworPT09PT09PT09PT0KKworLi4gbm90ZTo6CisKKyAgIFdTR0kgaXNuJ3Qgb2JqZWN0IG9yaWVudGVkPyAgV2VsbCwgaWYgeW91IGxvb2sgYXQgaXQsIHlvdSdsbCBub3RpY2UKKyAgIHRoZXJlJ3Mgbm8gb2JqZWN0cyBleGNlcHQgYnVpbHQtaW4gdHlwZXMsIHNvIGl0IHNob3VsZG4ndCBiZSBhCisgICBzdXJwcmlzZS4gIEFkZGl0aW9uYWxseSwgdGhlIGludGVyZmFjZSBhbmQgcHJvbWlzZXMgb2YgdGhlIG9iamVjdHMKKyAgIHdlIGRvIHNlZSBhcmUgdmVyeSBtaW5pbWFsLiAgQW4gYXBwbGljYXRpb24gZG9lc24ndCBoYXZlIGFueQorICAgaW50ZXJmYWNlIGV4Y2VwdCBvbmUgbWV0aG9kIC0tIGBgX19jYWxsX19gYCAtLSBhbmQgdGhhdCBtZXRob2QKKyAgICpkb2VzKiB0aGluZ3MsIGl0IGRvZXNuJ3QgZ2l2ZSBhbnkgb3RoZXIgaW5mb3JtYXRpb24uCisKK0JlY2F1c2UgV1NHSSBpcyBhY3Rpb24tb3JpZW50ZWQsIHJhdGhlciB0aGFuIG9iamVjdC1vcmllbnRlZCwgaXQncworbW9yZSBpbXBvcnRhbnQgd2hhdCB3ZSAqZG8qLiAgIkZpbmRpbmciIGFuIGFwcGxpY2F0aW9uIGlzIHByb2JhYmx5IGFuCitpbnRlcm1lZGlhdGUgc3RlcCwgYnV0ICJydW5uaW5nIiB0aGUgYXBwbGljYXRpb24gaXMgb3VyIHVsdGltYXRlIGdvYWwsCithbmQgdGhlIG9ubHkgcmVhbCBqdWRnZSBvZiBzdWNjZXNzLiAgQW4gYXBwbGljYXRpb24gdGhhdCBpc24ndCBydW4gaXMKK3VzZWxlc3MgdG8gdXMsIGJlY2F1c2UgaXQgZG9lc24ndCBoYXZlIGFueSBvdGhlciB1c2VmdWwgbWV0aG9kcy4KKworU28gd2hhdCB3ZSdyZSByZWFsbHkgZG9pbmcgaXMgKmRpc3BhdGNoaW5nKiAtLSB3ZSdyZSBoYW5kaW5nIHRoZQorcmVxdWVzdCBhbmQgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSByZXNwb25zZSBvZmYgdG8gYW5vdGhlciBvYmplY3QKKyhhbm90aGVyIGFjdG9yLCByZWFsbHkpLiAgSW4gdGhlIHByb2Nlc3Mgd2UgY2FuIGFjdHVhbGx5IHJldGFpbiBzb21lCitjb250cm9sIC0tIHdlIGNhbiBjYXB0dXJlIGFuZCB0cmFuc2Zvcm0gdGhlIHJlc3BvbnNlLCBhbmQgd2UgY2FuCittb2RpZnkgdGhlIHJlcXVlc3QgLS0gYnV0IHRoYXQncyBub3Qgd2hhdCB0aGUgdHlwaWNhbCBVUkwgcmVzb2x2ZXIgd2lsbAorZG8uICAKKworTW90aXZhdGlvbnMKKz09PT09PT09PT09CisKK1RoZSBtb3N0IG9idmlvdXMga2luZCBvZiBVUkwgcGFyc2luZyBpcyBmaW5kaW5nIGEgV1NHSSBhcHBsaWNhdGlvbi4KKworVHlwaWNhbGx5IHdoZW4gYSBmcmFtZXdvcmsgZmlyc3Qgc3VwcG9ydHMgV1NHSSBvciBpcyBpbnRlZ3JhdGVkIGludG8KK1Bhc3RlLCBpdCBpcyAibW9ub2xpdGhpYyIgd2l0aCByZXNwZWN0IHRvIFVSTHMuICBUaGF0IGlzLCB5b3UgZGVmaW5lCisoaW4gUGFzdGUsIG9yIG1heWJlIGluIEFwYWNoZSkgYSAicm9vdCIgVVJMLCBhbmQgZXZlcnl0aGluZyB1bmRlciB0aGF0Citnb2VzIGludG8gdGhlIGZyYW1ld29yay4gIFdoYXQgdGhlIGZyYW1ld29yayBkb2VzIGludGVybmFsbHksIFBhc3RlCitkb2VzIG5vdCBrbm93IC0tIGl0IHByb2JhYmx5IGZpbmRzIGludGVybmFsIG9iamVjdHMgdG8gZGlzcGF0Y2ggdG8sIAorYnV0IHRoZSBmcmFtZXdvcmsgaXMgb3BhcXVlIHRvIFBhc3RlLiAgTm90IGp1c3QgdG8gUGFzdGUsIGJ1dCB0bworYW55IGNvZGUgdGhhdCBpc24ndCBpbiB0aGF0IGZyYW1ld29yay4KKworVGhhdCBtZWFucyB0aGF0IHdlIGNhbid0IG1peCBjb2RlIGZyb20gbXVsdGlwbGUgZnJhbWV3b3Jrcywgb3IgYXMKK2Vhc2lseSBzaGFyZSBzZXJ2aWNlcywgb3IgdXNlIFdTR0kgbWlkZGxld2FyZSB0aGF0IGRvZXNuJ3QgYXBwbHkgdG8KK3RoZSBlbnRpcmUgZnJhbWV3b3JrL2FwcGxpY2F0aW9uLgorCitBbiBleGFtcGxlIG9mIHNvbWVwbGFjZSB3ZSBtaWdodCB3YW50IHRvIHVzZSBhbiAiYXBwbGljYXRpb24iIHRoYXQKK2lzbid0IHBhcnQgb2YgdGhlIGZyYW1ld29yayB3b3VsZCBiZSB1cGxvYWRpbmcgbGFyZ2UgZmlsZXMuICBJdCdzCitwb3NzaWJsZSB0byBrZWVwIHRyYWNrIG9mIHVwbG9hZCBwcm9ncmVzcywgYW5kIHJlcG9ydCB0aGF0IGJhY2sgdG8gdGhlCit1c2VyLCBidXQgbm8gZnJhbWV3b3JrIHR5cGljYWxseSBpcyBjYXBhYmxlIG9mIHRoaXMuICBUaGlzIGlzIHVzdWFsbHkKK2JlY2F1c2UgdGhlIFBPU1QgcmVxdWVzdCBpcyBjb21wbGV0ZWx5IHJlYWQgYW5kIHBhcnNlZCBiZWZvcmUgaXQKK2ludm9rZXMgYW55IGFwcGxpY2F0aW9uIGNvZGUuCisKK1RoaXMgaXMgcmVzb2x2YWJsZSBpbiBXU0dJIC0tIGEgV1NHSSBhcHBsaWNhdGlvbiBjYW4gcHJvdmlkZSBpdHMgb3duCitjb2RlIHRvIHJlYWQgYW5kIHBhcnNlIHRoZSBQT1NUIHJlcXVlc3QsIGFuZCBzaW11bHRhbmVvdXNseSByZXBvcnQKK3Byb2dyZXNzICh1c3VhbGx5IGluIGEgd2F5IHRoYXQgKmFub3RoZXIqIFdTR0kgYXBwbGljYXRpb24vcmVxdWVzdCBjYW4KK3JlYWQgYW5kIHJlcG9ydCB0byB0aGUgdXNlciBvbiB0aGF0IHByb2dyZXNzKS4gIFRoaXMgaXMgYW4gZXhhbXBsZQord2hlcmUgeW91IHdhbnQgdG8gYWxsb3cgImZvcmVpZ24iIGFwcGxpY2F0aW9ucyB0byBiZSBpbnRlcm1pbmdsZWQgd2l0aAorZnJhbWV3b3JrIGFwcGxpY2F0aW9uIGNvZGUuCisKK0ZpbmRpbmcgQXBwbGljYXRpb25zCis9PT09PT09PT09PT09PT09PT09PQorCitPSywgZW5vdWdoIHRoZW9yeS4gIEhvdyBkb2VzIGEgVVJMIHBhcnNlciB3b3JrPyAgV2VsbCwgaXQgaXMgYSBXU0dJCithcHBsaWNhdGlvbiwgYW5kIGEgV1NHSSBzZXJ2ZXIsIGluIHRoZSB0eXBpY2FsICJXU0dJIG1pZGRsZXdhcmUiCitzdHlsZS4gIEV4Y2VwdCB0aGF0IGl0IGRldGVybWluZXMgd2hpY2ggYXBwbGljYXRpb24gaXQgd2lsbCBzZXJ2ZQorZm9yIGVhY2ggcmVxdWVzdC4KKworTGV0J3MgY29uc2lkZXIgUGFzdGUncyBgYFVSTFBhcnNlcmBgIChpbiBgYHBhc3RlLnVybHBhcnNlcmBgKS4gIFRoaXMKK2NsYXNzIHRha2VzIGEgZGlyZWN0b3J5IG5hbWUgYXMgaXRzIG9ubHkgcmVxdWlyZWQgYXJndW1lbnQsIGFuZAoraW5zdGFuY2VzIGFyZSBXU0dJIGFwcGxpY2F0aW9ucy4KKworV2hlbiBhIHJlcXVlc3QgY29tZXMgaW4sIHRoZSBwYXJzZXIgbG9va3MgYXQgYGBQQVRIX0lORk9gYCB0byBzZWUKK3doYXQncyBsZWZ0IHRvIHBhcnNlLiAgYGBTQ1JJUFRfTkFNRWBgIHJlcHJlc2VudHMgd2hlcmUgd2UgYXJlICpub3cqOworaXQncyB0aGUgcGFydCBvZiB0aGUgVVJMIHRoYXQgaGFzIGJlZW4gcGFyc2VkLgorCitUaGVyZSdzIGEgY291cGxlIHNwZWNpYWwgY2FzZXM6CisKK1RoZSBlbXB0eSBzdHJpbmc6CisKKyAgICBVUkxQYXJzZXIgc2VydmVzIGRpcmVjdG9yaWVzLiAgV2hlbiBgYFBBVEhfSU5GT2BgIGlzIGVtcHR5LCB0aGF0CisgICAgbWVhbnMgd2UgZ290IGEgcmVxdWVzdCB3aXRoIG5vIHRyYWlsaW5nIGBgL2BgLCBsaWtlIHNheSBgYC9ibG9nYGAKKyAgICBJZiBVUkxQYXJzZXIgc2VydmVzIHRoZSBgYGJsb2dgYCBkaXJlY3RvcnksIHRoZW4gdGhpcyB3b24ndCBkbyAtLQorICAgIHRoZSB1c2VyIGlzIHJlcXVlc3RpbmcgdGhlIGBgYmxvZ2BgICpwYWdlKi4gIFdlIGhhdmUgdG8gcmVkaXJlY3QKKyAgICB0aGVtIHRvIGBgL2Jsb2cvYGAuCisKK0Egc2luZ2xlIGBgL2BgOgorCisgICAgU28sIHdlIGdvdCBhIHRyYWlsaW5nIGBgL2BgLiAgVGhpcyBtZWFucyB3ZSBuZWVkIHRvIHNlcnZlIHRoZQorICAgICJpbmRleCIgcGFnZS4gIEluIFVSTFBhcnNlciwgdGhpcyBpcyBzb21lIGZpbGUgbmFtZWQgYGBpbmRleGBgLAorICAgIHRob3VnaCB0aGF0J3MgcmVhbGx5IGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4gIFlvdSBjb3VsZCBjcmVhdGUKKyAgICBhbiBpbmRleCBkeW5hbWljYWxseSAobGlrZSBBcGFjaGUncyBmaWxlIGxpc3RpbmdzKSwgb3Igd2hhdGV2ZXIuCisKK090aGVyd2lzZSB3ZSBnZXQgYSBzdHJpbmcgbGlrZSBgYC9wYXRoLi4uYGAuICBOb3RlIHRoYXQgYGBQQVRIX0lORk9gYAorKm11c3QqIHN0YXJ0IHdpdGggYSBgYC9gYCwgb3IgaXQgbXVzdCBiZSBlbXB0eS4KKworVVJMUGFyc2VyIHB1bGxzIG9mZiB0aGUgZmlyc3QgcGFydCBvZiB0aGUgcGF0aC4gIEUuZy4sIGlmCitgYFBBVEhfSU5GT2BgIGlzIGBgL2Jsb2cvZWRpdC8yODVgYCwgdGhlbiB0aGUgZmlyc3QgcGFydCBpcyBgYGJsb2dgYC4KK0l0IGFwcGVuZHMgdGhpcyB0byBgYFNDUklQVF9OQU1FYGAsIGFuZCBzdHJpcHMgaXQgb2ZmIGBgUEFUSF9JTkZPYGAKKyh3aGljaCBiZWNvbWVzIGBgL2VkaXQvMjg1YGApLgorCitJdCB0aGVuIHNlYXJjaGVzIGZvciBhIGZpbGUgdGhhdCBtYXRjaGVzICJibG9nIi4gIEluIFVSTFBhcnNlciwgdGhpcworbWVhbnMgaXQgbG9va3MgZm9yIGEgZmlsZW5hbWUgd2hpY2ggbWF0Y2hlcyB0aGF0IG5hbWUgKGlnbm9yaW5nIHRoZQorZXh0ZW5zaW9uKS4gIEl0IHRoZW4gdXNlcyB0aGUgdHlwZSBvZiB0aGF0IGZpbGUgKGRldGVybWluZWQgYnkKK2V4dGVuc2lvbikgdG8gY3JlYXRlIGEgV1NHSSBhcHBsaWNhdGlvbi4KKworT25lIGNhc2UgaXMgdGhhdCB0aGUgZmlsZSBpcyBhIGRpcmVjdG9yeS4gIEluIHRoYXQgY2FzZSwgdGhlCithcHBsaWNhdGlvbiBpcyAqYW5vdGhlciogVVJMUGFyc2VyIGluc3RhbmNlLCB0aGlzIHRpbWUgd2l0aCB0aGUgbmV3CitkaXJlY3RvcnkuCisKK1VSTFBhcnNlciBhY3R1YWxseSBhbGxvd3MgcGVyLWV4dGVuc2lvbiAicGx1Z2lucyIgLS0gdGhlc2UgYXJlIGp1c3QKK2Z1bmN0aW9ucyB0aGF0IGdldCBhIGZpbGVuYW1lLCBhbmQgcHJvZHVjZSBhIFdTR0kgYXBwbGljYXRpb24uICBPbmUgb2YKK3RoZXNlIGlzIGBgbWFrZV9weWBgIC0tIHRoaXMgZnVuY3Rpb24gaW1wb3J0cyB0aGUgbW9kdWxlLCBhbmQgbG9va3MKK2ZvciBzcGVjaWFsIHN5bWJvbHM7IGlmIGl0IGZpbmRzIGEgc3ltYm9sIGBgYXBwbGljYXRpb25gYCwgaXQgYXNzdW1lcwordGhpcyBpcyBhIFdTR0kgYXBwbGljYXRpb24gdGhhdCBpcyByZWFkeSB0byBhY2NlcHQgdGhlIHJlcXVlc3QuICBJZiBpdAorZmluZHMgYSBzeW1ib2wgdGhhdCBtYXRjaGVzIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgKGUuZy4sIGBgZWRpdGBgKSwKK3RoZW4gaXQgYXNzdW1lcyB0aGF0IGlzIGFuIGFwcGxpY2F0aW9uICpmYWN0b3J5KiwgbWVhbmluZyB0aGF0IHdoZW4KK3lvdSBjYWxsIGl0IHdpdGggbm8gYXJndW1lbnRzIHlvdSBnZXQgYSBXU0dJIGFwcGxpY2F0aW9uLgorCitBbm90aGVyIGZ1bmN0aW9uIHRha2VzICJ1bmtub3duIiBmaWxlcyAoZmlsZXMgZm9yIHdoaWNoIG5vIGJldHRlcgorY29uc3RydWN0b3IgZXhpc3RzKSBhbmQgY3JlYXRlcyBhbiBhcHBsaWNhdGlvbiB0aGF0IHNpbXBseSByZXNwb25kcword2l0aCB0aGUgY29udGVudHMgb2YgdGhhdCBmaWxlIChhbmQgdGhlIGFwcHJvcHJpYXRlIGBgQ29udGVudC1UeXBlYGApLgorCitJbiBhbnkgY2FzZSwgYGBVUkxQYXJzZXJgYCBkZWxlZ2F0ZXMgYXMgc29vbiBhcyBpdCBjYW4uICBJdCBkb2Vzbid0CitwYXJzZSB0aGUgZW50aXJlIHBhdGggLS0gaXQganVzdCBmaW5kcyB0aGUgKm5leHQqIGFwcGxpY2F0aW9uLCB3aGljaAoraW4gdHVybiBtYXkgZGVsZWdhdGUgdG8geWV0IGFub3RoZXIgYXBwbGljYXRpb24uCisKK0hlcmUncyBhIHZlcnkgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIFVSTFBhcnNlcjo6CisKKyAgICBjbGFzcyBVUkxQYXJzZXIob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpcik6CisgICAgICAgICAgICBzZWxmLmRpciA9IGRpcgorICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgc2VnbWVudCA9IHdzZ2lsaWIucGF0aF9pbmZvX3BvcChlbnZpcm9uKQorICAgICAgICAgICAgaWYgc2VnbWVudCBpcyBOb25lOiAjIE5vIHRyYWlsaW5nIC8KKyAgICAgICAgICAgICAgICAjIGRvIGEgcmVkaXJlY3QuLi4KKyAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBvcy5saXN0ZGlyKHNlbGYuZGlyKToKKyAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVswXSA9PSBzZWdtZW50OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZV9hcHBsaWNhdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlLCBmaWxlbmFtZSkKKyAgICAgICAgICAgICMgZG8gYSA0MDQgTm90IEZvdW5kCisgICAgICAgIGRlZiBzZXJ2ZV9hcHBsaWNhdGlvbihzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSwgZmlsZW5hbWUpOgorICAgICAgICAgICAgYmFzZW5hbWUsIGV4dCA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpCisgICAgICAgICAgICBmaWxlbmFtZSA9IG9zLnBhdGguam9pbihzZWxmLmRpciwgZmlsZW5hbWUpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKGZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVVJMUGFyc2VyKGZpbGVuYW1lKShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIGVsaWYgZXh0ID09ICcucHknOgorICAgICAgICAgICAgICAgIG1vZHVsZSA9IGltcG9ydF9tb2R1bGUoZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihtb2R1bGUsICdhcHBsaWNhdGlvbicpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kdWxlLmFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgIGVsaWYgaGFzYXR0cihtb2R1bGUsIGJhc2VuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIobW9kdWxlLCBiYXNlbmFtZSkoCisgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHdzZ2lsaWIuc2VuZF9maWxlKGZpbGVuYW1lKQorCitNb2RpZnlpbmcgVGhlIFJlcXVlc3QKKz09PT09PT09PT09PT09PT09PT09PQorCitXZWxsLCBVUkxQYXJzZXIgaXMgb25lIGtpbmQgb2YgcGFyc2VyLiAgQnV0IG90aGVycyBhcmUgcG9zc2libGUsIGFuZAorYXJlbid0IHRvbyBoYXJkIHRvIHdyaXRlLgorCitMZXRzIGltYWdpbmUgYSBVUkwgbGlrZSBgYC8yMDA0LzA1LzAxL2VkaXRgYC4gIEl0J3MgbGlrZWx5IHRoYXQKK2BgLzIwMDQvMDUvMDFgYCBkb2Vzbid0IHBvaW50IHRvIGFueXRoaW5nIG9uIGZpbGUsIGJ1dCBpcyByZWFsbHkgbW9yZQorb2YgYSAidmFyaWFibGUiIHRoYXQgZ2V0cyBwYXNzZWQgdG8gYGBlZGl0YGAuICBTbyB3ZSBjYW4gcHVsbCB0aGVtIG9mZgorYW5kIHB1dCB0aGVtIHNvbWV3aGVyZS4gIFRoaXMgaXMgYSBnb29kIHBsYWNlIGZvciBhIFdTR0kgZXh0ZW5zaW9uLgorTGV0cyBwdXQgdGhlbSBpbiBgYGVudmlyb25bImFwcC51cmxfZGF0ZSJdYGAuCisKK1dlJ2xsIHBhc3Mgb25lIG90aGVyIGFwcGxpY2F0aW9ucyBpbiAtLSBvbmNlIHdlIGdldCB0aGUgZGF0ZSAoaWYgYW55KQord2UgbmVlZCB0byBwYXNzIHRoZSByZXF1ZXN0IG9udG8gYW4gYXBwbGljYXRpb24gdGhhdCBjYW4gYWN0dWFsbHkKK2hhbmRsZSBpdC4gIFRoaXMgImFwcGxpY2F0aW9uIiBtaWdodCBiZSBhIFVSTFBhcnNlciBvciBzaW1pbGFyIHN5c3RlbQorKHRoYXQgZmlndXJlcyBvdXQgd2hhdCBgYC9lZGl0YGAgbWVhbnMpLgorCis6OgorCisgICAgY2xhc3MgR3JhYkRhdGUob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN1YmFwcCk6CisgICAgICAgICAgICBzZWxmLnN1YmFwcCA9IHN1YmFwcAorICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgZGF0ZV9wYXJ0cyA9IFtdCisgICAgICAgICAgICB3aGlsZSBsZW4oZGF0ZV9wYXJ0cykgPCAzOgorICAgICAgICAgICAgICAgZmlyc3QsIHJlc3QgPSB3c2dpbGliLnBhdGhfaW5mb19zcGxpdChlbnZpcm9uWydQQVRIX0lORk8nXSkKKyAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICBkYXRlX3BhcnRzLmFwcGVuZChpbnQoZmlyc3QpKQorICAgICAgICAgICAgICAgICAgIHdzZ2lsaWIucGF0aF9pbmZvX3BvcChlbnZpcm9uKQorICAgICAgICAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBUeXBlRXJyb3IpOgorCSAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVudmlyb25bJ2FwcC5kYXRlX3BhcnRzJ10gPSBkYXRlX3BhcnRzCisgICAgICAgICAgICByZXR1cm4gc2VsZi5zdWJhcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK1RoaXMgaXMgcmVhbGx5IGxpa2UgdHJhZGl0aW9uYWwgIm1pZGRsZXdhcmUiLCBpbiB0aGF0IGl0IHNpdHMgYmV0d2VlbgordGhlIHNlcnZlciBhbmQganVzdCBvbmUgYXBwbGljYXRpb24uCisKK0Fzc3VtaW5nIHlvdSBwdXQgdGhpcyBjbGFzcyBpbiB0aGUgYGBteWFwcC5ncmFiZGF0ZWBgIG1vZHVsZSwgeW91Citjb3VsZCBpbnN0YWxsIGl0IGJ5IGFkZGluZyB0aGlzIHRvIHlvdXIgY29uZmlndXJhdGlvbjo6CisKKyAgICBtaWRkbGV3YXJlLmFwcGVuZCgnbXlhcHAuZ3JhYmRhdGUuR3JhYkRhdGUnKQorCitPYmplY3QgUHVibGlzaGluZworPT09PT09PT09PT09PT09PT0KKworQmVzaWRlcyBsb29raW5nIGluIHRoZSBmaWxlc3lzdGVtLCAib2JqZWN0IHB1Ymxpc2hpbmciIGlzIGFub3RoZXIKK3BvcHVsYXIgd2F5IHRvIGRvIFVSTCBwYXJzaW5nLiAgVGhpcyBpcyBwcmV0dHkgZWFzeSB0byBpbXBsZW1lbnQgYXMKK3dlbGwgLS0gaXQgdXN1YWxseSBqdXN0IG1lYW5zIHVzZSBgYGdldGF0dHJgYCB3aXRoIHRoZSBwb3BwZWQKK3NlZ21lbnRzLiAgQnV0IHdlJ2xsIGltcGxlbWVudCBhIHJvdWdoIGFwcHJveGltYXRpb24gb2YgYFF1aXhvdGUncworPGh0dHA6Ly93d3cubWVtcy1leGNoYW5nZS5vcmcvc29mdHdhcmUvcXVpeG90ZS8+YF8gVVJMIHBhcnNpbmc6OgorCisgICAgY2xhc3MgT2JqZWN0QXBwKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvYmopOgorICAgICAgICAgICAgc2VsZi5vYmogPSBvYmoKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgIG5leHQgPSB3c2dpbGliLnBhdGhfaW5mb19wb3AoZW52aXJvbikKKyAgICAgICAgICAgIGlmIG5leHQgaXMgTm9uZTogCisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBvYmplY3QsIGxldHMgc2VydmUgaXQuLi4KKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wdWJsaXNoKG9iaiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgICBuZXh0ID0gbmV4dCBvciAnX3FfaW5kZXgnICMgdGhlIGRlZmF1bHQgaW5kZXggbWV0aG9kCisgICAgICAgICAgICBpZiBuZXh0IGluIG9iai5fcV9leHBvcnQgYW5kIGdldGF0dHIob2JqLCBuZXh0LCBOb25lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0QXBwKGdldGF0dHIob2JqLCBuZXh0KSkoCisgICAgICAgICAgICAgICAgICAgIGVudmlyb24sIHN0YXJ0X3JlcG9uc2UpCisgICAgICAgICAgICBuZXh0X29iaiA9IG9iai5fcV90cmF2ZXJzZShuZXh0KQorICAgICAgICAgICAgaWYgbm90IG5leHRfb2JqOgorICAgICAgICAgICAgICAgICMgRG8gYSA0MDQKKyAgICAgICAgICAgIHJldHVybiBPYmplY3RBcHAobmV4dF9vYmopKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgICAgIGRlZiBwdWJsaXNoKHNlbGYsIG9iaiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgaWYgY2FsbGFibGUob2JqKToKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBzdHIob2JqKCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG91dHB1dCA9IHN0cihvYmopCisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpXSkKKyAgICAgICAgICAgIHJldHVybiBbb3V0cHV0XQorCitUaGUgYGBwdWJsaXNoYGAgb2JqZWN0IGlzIGEgbGl0dGxlIHdlYWssIGFuZCBmdW5jdGlvbnMgbGlrZQorYGBfcV90cmF2ZXJzZWBgIGFyZW4ndCBwYXNzZWQgaW50ZXJlc3RpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlCityZXF1ZXN0LCBidXQgdGhpcyBpcyBvbmx5IGEgcm91Z2ggYXBwcm94aW1hdGlvbiBvZiB0aGUgZnJhbWV3b3JrLgorVGhpbmdzIHRvIG5vdGU6CisKKyogVGhlIG9iamVjdCBoYXMgc3RhbmRhcmQgYXR0cmlidXRlcyBhbmQgbWV0aG9kcyAtLSBgYF9xX2V4cG9ydHNgYAorICAoYXR0cmlidXRlcyB0aGF0IGFyZSBwdWJsaWMgdG8gdGhlIHdlYikgYW5kIGBgX3FfdHJhdmVyc2VgYAorICAoYSB3YXkgb2Ygb3ZlcnJpZGluZyB0aGUgdHJhdmVyc2FsIHdpdGhvdXQgaGF2aW5nIGFuIGF0dHJpYnV0ZSBmb3IKKyAgZWFjaCBwb3NzaWJsZSBwYXRoIHNlZ21lbnQpLgorCisqIFRoZSBvYmplY3QgaXNuJ3QgcmVuZGVyZWQgdW50aWwgdGhlIHBhdGggaXMgY29tcGxldGVseSBjb25zdW1lZAorICAod2hlbiBgYG5leHRgYCBpcyBgYE5vbmVgYCkuICBUaGlzIG1lYW5zIGBgX3FfdHJhdmVyc2VgYCBoYXMgdG8KKyAgY29uc3VtZSBleHRyYSBzZWdtZW50cyBvZiB0aGUgcGF0aC4gIEluIHRoaXMgdmVyc2lvbiBgYF9xX3RyYXZlcnNlYGAKKyAgaXMgb25seSBnaXZlbiB0aGUgbmV4dCBwaWVjZSBvZiB0aGUgcGF0aDsgUXVpeG90ZSBnaXZlcyBpdCB0aGUKKyAgZW50aXJlIHBhdGggKGFzIGEgbGlzdCBvZiBzZWdtZW50cykuICAKKworKiBgYHB1Ymxpc2hgYCBpcyByZWFsbHkgYSBzbWFsbCBhbmQgbGFtZSB3YXkgdG8gdHVybiBhIFF1aXhvdGUgb2JqZWN0CisgIGludG8gYSBXU0dJIGFwcGxpY2F0aW9uLiAgRm9yIGFueSBzZXJpb3VzIGZyYW1ld29yayB5b3UnZCB3YW50IHRvIGRvCisgIGEgYmV0dGVyIGpvYiB0aGFuIHdoYXQgSSBkbyBoZXJlLgorCisqIEl0IHdvdWxkIGJlIGV2ZW4gYmV0dGVyIGlmIHlvdSB1c2VkIHNvbWV0aGluZyBsaWtlIGBBZGFwdGF0aW9uCisgIDxodHRwOi8vd3d3LnB5dGhvbi5vcmcvcGVwcy9wZXAtMDI0Ni5odG1sPmBfIHRvIGNvbnZlcnQgb2JqZWN0cyBpbnRvCisgIGFwcGxpY2F0aW9ucy4gIFRoaXMgd291bGQgaW5jbHVkZSByZW1vdmluZyB0aGUgZXhwbGljaXQgY3JlYXRpb24gb2YKKyAgbmV3IGBgT2JqZWN0QXBwYGAgaW5zdGFuY2VzLCB3aGljaCBjb3VsZCBhbHNvIGJlIGEga2luZCBvZiBmYWxsLWJhY2sKKyAgYWRhcHRhdGlvbi4gCisKK0FueXdheSwgdGhpcyBleGFtcGxlIGlzIGxlc3MgY29tcGxldGUsIGJ1dCBtYXliZSBpdCB3aWxsIGdldCB5b3UKK3RoaW5raW5nLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3Mvd2ViL2RlZmF1bHQtc2l0ZS5jc3MgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy93ZWIvZGVmYXVsdC1zaXRlLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzgxOWM4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3Mvd2ViL2RlZmF1bHQtc2l0ZS5jc3MKQEAgLTAsMCArMSwzODIgQEAKKy8qCis6QXV0aG9yOiBEYXZpZCBHb29kZ2VyLCBJYW4gQmlja2luZworOkNvbnRhY3Q6IGlhbmJAY29sb3JzdHVkeS5jb20KKzpkYXRlOiAkRGF0ZTogMjAwMy8xMS8wMSAyMDozNTo0NSAkCis6dmVyc2lvbjogJFJldmlzaW9uOiAxLjMgJAorOmNvcHlyaWdodDogVGhpcyBzdHlsZXNoZWV0IGhhcyBiZWVuIHBsYWNlZCBpbiB0aGUgcHVibGljIGRvbWFpbi4KKworQSBtb2RpZmljYXRpb24gb2YgdGhlIGRlZmF1bHQgY2FzY2FkaW5nIHN0eWxlIHNoZWV0ICh2LjEuMykgZm9yIHRoZQorSFRNTCBvdXRwdXQgb2YgRG9jdXRpbHMuICAKKyovCisKK2VtLCBpIHsKKyAgLyogVHlwaWNhbGx5IHNlcmlmIGZvbnRzIGhhdmUgbXVjaCBuaWNlciBpdGFsaWNzICovCisgIGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW4sIFRpbWVzLCBzZXJpZjsKK30KKwordWwgbGkgeworICBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsKK30KKworYS50b2MtYmFja3JlZiB7CisgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgY29sb3I6IGJsYWNrOworfQorCithLnRvYy1iYWNrcmVmOmhvdmVyIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKK30KKworaDEgYTpob3ZlciwgaDIgYTpob3ZlciwgaDMgYTpob3ZlciwgaDQgYTpob3ZlciwgaDUgYTpob3ZlciwgaDY6aG92ZXIgeyAKKyAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKK30KKworY2l0ZSB7CisgIGZvbnQtc3R5bGU6IG5vcm1hbDsKKyAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK2RkIHsKKyAgbWFyZ2luLWJvdHRvbTogMC41ZW07Cit9CisKK2Rpdi5hYnN0cmFjdCB7CisgIG1hcmdpbjogMmVtIDVlbTsKK30KKworZGl2LmFic3RyYWN0IHAudG9waWMtdGl0bGUgeworICBmb250LXdlaWdodDogYm9sZDsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCitkaXYuYXR0ZW50aW9uLCBkaXYuY2F1dGlvbiwgZGl2LmRhbmdlciwgZGl2LmVycm9yLCBkaXYuaGludCwKK2Rpdi5pbXBvcnRhbnQsIGRpdi5ub3RlLCBkaXYudGlwLCBkaXYud2FybmluZyB7CisgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7CisgIHdpZHRoOiA0MCU7CisgIGJvcmRlcjogbWVkaXVtIG91dHNldDsKKyAgcGFkZGluZzogM3B4OworICBmbG9hdDogcmlnaHQKK30KKworZGl2LmF0dGVudGlvbiBwLmFkbW9uaXRpb24tdGl0bGUsIGRpdi5jYXV0aW9uIHAuYWRtb25pdGlvbi10aXRsZSwKK2Rpdi5kYW5nZXIgcC5hZG1vbml0aW9uLXRpdGxlLCBkaXYuZXJyb3IgcC5hZG1vbml0aW9uLXRpdGxlLAorZGl2Lndhcm5pbmcgcC5hZG1vbml0aW9uLXRpdGxlIHsKKyAgY29sb3I6ICNjMDA7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OworICBkaXNwbGF5OiBibG9jazsKKyAgbWFyZ2luOiAwOworfQorCitkaXYuaGludCBwLmFkbW9uaXRpb24tdGl0bGUsIGRpdi5pbXBvcnRhbnQgcC5hZG1vbml0aW9uLXRpdGxlLAorZGl2Lm5vdGUgcC5hZG1vbml0aW9uLXRpdGxlLCBkaXYudGlwIHAuYWRtb25pdGlvbi10aXRsZSB7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OworICBkaXNwbGF5OiBibG9jazsKKyAgbWFyZ2luOiAwOworfQorCitkaXYuZGVkaWNhdGlvbiB7CisgIG1hcmdpbjogMmVtIDVlbTsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworICBmb250LXN0eWxlOiBpdGFsaWM7Cit9CisKK2Rpdi5kZWRpY2F0aW9uIHAudG9waWMtdGl0bGUgeworICBmb250LXdlaWdodDogYm9sZDsKKyAgZm9udC1zdHlsZTogbm9ybWFsOworfQorCitkaXYuZmlndXJlIHsKKyAgbWFyZ2luLWxlZnQ6IDJlbTsKK30KKworZGl2LmZvb3RlciwgZGl2LmhlYWRlciB7CisgIGZvbnQtc2l6ZTogc21hbGxlcjsKK30KKworZGl2LnN5c3RlbS1tZXNzYWdlcyB7CisgIG1hcmdpbjogNWVtOworfQorCitkaXYuc3lzdGVtLW1lc3NhZ2VzIGgxIHsKKyAgY29sb3I6IHJlZDsKK30KKworZGl2LnN5c3RlbS1tZXNzYWdlIHsKKyAgYm9yZGVyOiBtZWRpdW0gb3V0c2V0OworICBwYWRkaW5nOiAxZW07Cit9CisKK2Rpdi5zeXN0ZW0tbWVzc2FnZSBwLnN5c3RlbS1tZXNzYWdlLXRpdGxlIHsKKyAgY29sb3I6IHJlZDsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK2Rpdi50b3BpYyB7CisgIG1hcmdpbjogMmVtOworfQorCitoMyBhLnRvYy1iYWNrcmVmLCBoNCBhLnRvYy1iYWNrcmVmLCBoNSBhLnRvYy1iYWNrcmVmLCAKK2g2IGEudG9jLWJhY2tyZWYgeyAKKyAgY29sb3I6ICMwMDA7Cit9CisKK2gxLnRpdGxlIHsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCitoMi5zdWJ0aXRsZSB7CisgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKworaHIgeworICB3aWR0aDogNzUlOworfQorCitvbC5zaW1wbGUsIHVsLnNpbXBsZSB7CisgIG1hcmdpbi1ib3R0b206IDFlbTsKK30KKwordWwuY29udGVudHMgbGkgeworICBsaXN0LXN0eWxlOiBub25lOworICBtYXJnaW46IDA7CisgIHBhZGRpbmc6IDA7Cit9CisKK3VsLmNvbnRlbnRzIHsKKyAgcG9zaXRpb246IGZpeGVkOworICB0b3A6IDBweDsKKyAgcmlnaHQ6IDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZkOTsKKyAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZjcwOworICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y3MDsKKyAgd2lkdGg6IDIwMHB4OworICBwYWRkaW5nOiAwOworICBtYXJnaW46IDA7Cit9CisKK3VsLmNvbnRlbnRzIGEgeworICBwYWRkaW5nOiAycHggMWVtIDJweCAxZW07CisgIGRpc3BsYXk6IGJsb2NrOworICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CisgIGNvbG9yOiAjNDAwOworfQorCit1bC5jb250ZW50cyBhOmhvdmVyIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2Y4MDsKKyAgY29sb3I6ICNmZmY7Cit9CisKK3VsLmNvbnRlbnRzIGxpLmhlYWRlciB7CisgIHBhZGRpbmc6IDVweCAxcHggM3B4IDA7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCitvbC5hcmFiaWMgeworICBsaXN0LXN0eWxlOiBkZWNpbWFsOworfQorCitvbC5sb3dlcmFscGhhIHsKKyAgbGlzdC1zdHlsZTogbG93ZXItYWxwaGE7Cit9CisKK29sLnVwcGVyYWxwaGEgeworICBsaXN0LXN0eWxlOiB1cHBlci1hbHBoYTsKK30KKworb2wubG93ZXJyb21hbiB7CisgIGxpc3Qtc3R5bGU6IGxvd2VyLXJvbWFuOworfQorCitvbC51cHBlcnJvbWFuIHsKKyAgbGlzdC1zdHlsZTogdXBwZXItcm9tYW47Cit9CisKK3AuY2FwdGlvbiB7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKK30KKworcC5jcmVkaXRzIHsKKyAgZm9udC1zdHlsZTogaXRhbGljOworICBmb250LXNpemU6IHNtYWxsZXI7Cit9CisKK3AuZmlyc3QgeworICBtYXJnaW4tdG9wOiAwOworfQorCitwLmxhYmVsIHsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworcC50b3BpYy10aXRsZSB7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCitwcmUuYWRkcmVzcyB7CisgIG1hcmdpbi1ib3R0b206IDA7CisgIG1hcmdpbi10b3A6IDA7CisgIGZvbnQtZmFtaWx5OiBzZXJpZjsKKyAgZm9udC1zaXplOiAxMDAlOworfQorCitwcmUubGluZS1ibG9jayB7CisgIGZvbnQtZmFtaWx5OiBzZXJpZjsKKyAgZm9udC1zaXplOiAxMDAlOworfQorCitwcmUubGl0ZXJhbC1ibG9jaywgcHJlLmRvY3Rlc3QtYmxvY2sgeworICBtYXJnaW4tbGVmdDogMmVtOworICBtYXJnaW4tcmlnaHQ6IDJlbTsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKKyAgYm9yZGVyOiB0aGluIGJsYWNrIHNvbGlkOworICBwYWRkaW5nOiA1cHg7Cit9CisKK3NwYW4uY2xhc3NpZmllciB7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICBmb250LXN0eWxlOiBvYmxpcXVlOworfQorCitzcGFuLmNsYXNzaWZpZXItZGVsaW1pdGVyIHsKKyAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCitzcGFuLmludGVycHJldGVkIHsKKyAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7Cit9CisKK3NwYW4ub3B0aW9uLWFyZ3VtZW50IHsKKyAgZm9udC1zdHlsZTogaXRhbGljOworfQorCitzcGFuLnByZSB7CisgIHdoaXRlLXNwYWNlOiBwcmU7Cit9CisKK3NwYW4ucHJvYmxlbWF0aWMgeworICBjb2xvcjogcmVkOworfQorCit0YWJsZSB7CisgIG1hcmdpbi10b3A6IDAuNWVtOworICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKK30KKwordGFibGUuY2l0YXRpb24geworICBib3JkZXItbGVmdDogc29saWQgdGhpbiBncmF5OworICBwYWRkaW5nLWxlZnQ6IDAuNWV4Cit9CisKK3RhYmxlLmRvY2luZm8geworfQorCit0YWJsZS5mb290bm90ZSB7CisgIGJvcmRlci1sZWZ0OiBzb2xpZCB0aGluIGJsYWNrOworICBwYWRkaW5nLWxlZnQ6IDAuNWV4OworfQorCit0ZCwgdGggeworICBwYWRkaW5nLWxlZnQ6IDAuNWVtOworICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTsKKyAgdmVydGljYWwtYWxpZ246IHRvcDsKK30KKwordGQgPiBwOmZpcnN0LWNoaWxkLCB0aCA+IHA6Zmlyc3QtY2hpbGQgeworICBtYXJnaW4tdG9wOiAwZW07Cit9CisKK3RoLmRvY2luZm8tbmFtZSwgdGguZmllbGQtbmFtZSB7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICB0ZXh0LWFsaWduOiBsZWZ0OworICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCitoMSB0dCwgaDIgdHQsIGgzIHR0LCBoNCB0dCwgaDUgdHQsIGg2IHR0IHsKKyAgZm9udC1zaXplOiAxMDAlOworfQorCitjb2RlLCB0dCB7CisgIGNvbG9yOiAjMDA2OworfQorCit1bC5hdXRvLXRvYyB7CisgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEb2N0ZXN0IGVtYmVkZGVkIGV4YW1wbGVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3NwYW4uZG9jdGVzdC11cmwgeyAKKyAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKKyAgYm9yZGVyLXRvcDogMnB4IG91dHNldCAjNjY2OworICBib3JkZXItbGVmdDogMnB4IG91dHNldCAjNjY2OworICBib3JkZXItcmlnaHQ6IDJweCBvdXRzZXQgIzY2NjsKKyAgcGFkZGluZzogMC4yNWVtOworfQorCitkaXYuZG9jdGVzdC1leGFtcGxlIHsgCisgIGJvcmRlcjogb3V0c2V0IDVweCAjNjY2OworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICBmb250LWZhbWlseTogZGVmYXVsdDsKKyAgcGFkZGluZzogMC41ZW07Cit9CisKK2Rpdi5kb2N0ZXN0LWV4YW1wbGUgaDEgeyAKKyAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKKyAgYm9yZGVyOiBub25lOworICBjb2xvcjogaW5oZXJpdDsKKyAgZm9udC1mYW1pbHk6IGRlZmF1bHQ7Cit9CisKK2Rpdi5kb2N0ZXN0LWV4YW1wbGUgdHQgeyAKKyAgY29sb3I6IGluaGVyaXQ7Cit9CisKK2Rpdi5kb2N0ZXN0LXN0YXR1cyB7IAorICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDYwOworICBjb2xvcjogI2ZmZjsKK30KKworc3Bhbi5kb2N0ZXN0LWhlYWRlciB7IAorICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOworICBmb250LWZhbWlseTogbW9ub3NwYWNlOworfQorCitwcmUuZG9jdGVzdC1lcnJvcnMgeyAKKyAgYm9yZGVyOiBub25lOworICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOworICBjb2xvcjogIzYwMDsKK30KKworZGl2LnNvdXJjZS1jb2RlIHsgCisgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CisgIGJvcmRlcjogaW5zZXQgIzk5OSAzcHg7CisgIG92ZXJmbG93OiBhdXRvOworfQorCitwcmUuc291cmNlLWNvZGUgeyAKKyAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKKyAgYm9yZGVyOiBpbnNldCAjOTk5IDNweDsKKyAgb3ZlcmZsb3c6IGF1dG87CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgIGNvbG9yOiAjZmZmOworfQorCitzcGFuLnNvdXJjZS1maWxlbmFtZSB7IAorICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOworICBib3JkZXItdG9wOiAycHggb3V0c2V0ICM5OTk7CisgIGJvcmRlci1sZWZ0OiAycHggb3V0c2V0ICM5OTk7CisgIGJvcmRlci1yaWdodDogMnB4IG91dHNldCAjOTk5OworICBwYWRkaW5nOiAwLjI1ZW07CisgIGNvbG9yOiAjZmZmCit9CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3dlYi9zaXRlLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL2RvY3Mvd2ViL3NpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQyMzU3NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3dlYi9zaXRlLmpzCkBAIC0wLDAgKzEsNjkgQEAKK2Z1bmN0aW9uIHNldHVwX2Ryb3Bkb3ducygpIHsKKyAgdmFyIGVscyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdVTCcpOworICBmb3IgKHZhciBpID0gMDsgaSA8IGVscy5sZW5ndGg7IGkrKykgeworICAgIHZhciBlbCA9IGVsc1tpXTsKKyAgICBpZiAoZWwuY2xhc3NOYW1lLnNlYXJjaCgvXGJjb250ZW50c1xiLykgPiAtMSkgeworICAgICAgZW5hYmxlX2Ryb3Bkb3duKGVsKTsKKyAgICB9CisgIH0KK30KKworZnVuY3Rpb24gZW5hYmxlX2Ryb3Bkb3duKGVsKSB7CisgIHZhciB0aXRsZSA9IGVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdMSScpWzBdOworICB2YXIgcGx1c19taW51cyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgIFstXScpOworICBpZiAodGl0bGUuY2hpbGROb2Rlc1swXS50YWdOYW1lICE9ICdBJykgeworICAgIGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0EnKTsKKyAgICB3aGlsZSAodGl0bGUuY2hpbGROb2Rlcy5sZW5ndGgpIHsKKyAgICAgIGFuY2hvci5hcHBlbmRDaGlsZCh0aXRsZS5jaGlsZE5vZGVzWzBdKTsKKyAgICB9CisgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgnaHJlZicsICcjJyk7CisgICAgYW5jaG9yLnN0eWxlLnBhZGRpbmcgPSAnMXB4JzsKKyAgICB0aXRsZS5hcHBlbmRDaGlsZChhbmNob3IpOworICB9IGVsc2UgeworICAgIGFuY2hvciA9IHRpdGxlLmNoaWxkTm9kZXNbMF07CisgIH0KKyAgYW5jaG9yLmFwcGVuZENoaWxkKHBsdXNfbWludXMpOworICBmdW5jdGlvbiBzaG93X2hpZGUoKSB7CisgICAgaWYgKGVsLnN1Yl9oaWRkZW4pIHsKKyAgICAgIHNldF9zdWJfbGkoZWwsICcnKTsKKyAgICAgIGFuY2hvci5yZW1vdmVDaGlsZChwbHVzX21pbnVzKTsKKyAgICAgIHBsdXNfbWludXMgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnICBbLV0nKTsKKyAgICAgIGFuY2hvci5hcHBlbmRDaGlsZChwbHVzX21pbnVzKTsKKyAgICB9IGVsc2UgeworICAgICAgc2V0X3N1Yl9saShlbCwgJ25vbmUnKTsKKyAgICAgIGFuY2hvci5yZW1vdmVDaGlsZChwbHVzX21pbnVzKTsKKyAgICAgIHBsdXNfbWludXMgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnICBbK10nKTsKKyAgICAgIGFuY2hvci5hcHBlbmRDaGlsZChwbHVzX21pbnVzKTsKKyAgICB9CisgICAgZWwuc3ViX2hpZGRlbiA9ICEgZWwuc3ViX2hpZGRlbjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgYW5jaG9yLm9uY2xpY2sgPSBzaG93X2hpZGU7CisgIHNob3dfaGlkZSgpOworfQorCitmdW5jdGlvbiBzZXRfc3ViX2xpKGxpc3QsIGRpc3BsYXkpIHsKKyAgdmFyIHN1YiA9IGxpc3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ0xJJyk7CisgIGZvciAodmFyIGkgPSAxOyBpIDwgc3ViLmxlbmd0aDsgaSsrKSB7CisgICAgc3ViW2ldLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5OworICB9Cit9CisKK2Z1bmN0aW9uIGFkZF9vbmxvYWQoZnVuYykgeworICBpZiAod2luZG93Lm9ubG9hZCkgeworICAgIHZhciBvbGRfb25sb2FkID0gd2luZG93Lm9ubG9hZDsKKyAgICBmdW5jdGlvbiBuZXdfb25sb2FkKCkgeworICAgICAgb2xkX29ubG9hZCgpOworICAgICAgZnVuYygpOworICAgIH0KKyAgICB3aW5kb3cub25sb2FkID0gbmV3X29ubG9hZDsKKyAgfSBlbHNlIHsKKyAgICB3aW5kb3cub25sb2FkID0gZnVuYzsKKyAgfQorfQorCithZGRfb25sb2FkKHNldHVwX2Ryb3Bkb3ducyk7CisKKyAgICAgIAorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9kb2NzL3dlYi9zdHlsZS5jc3MgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy93ZWIvc3R5bGUuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNTg2NDMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvZG9jcy93ZWIvc3R5bGUuY3NzCkBAIC0wLDAgKzEsOTAgQEAKK2JvZHkgeworICBmb250LWZhbWlseTogSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7CisgIG1hcmdpbjogMDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKKyAgY29sb3I6ICMwMDA7Cit9CisKK2ksIGVtIHsKKyAgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbixUaW1lcyxzZXJpZjsKK30KKworYTpsaW5rIHsgCisgIGNvbG9yOiAjNzMwOworfQorCithOnZpc2l0ZWQgeyAKKyAgY29sb3I6ICM0MDI7Cit9CisKK2E6aG92ZXIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmQ4OworfQorCitkaXYjaGVhZGVyIHsKKyAgZGlzcGxheTogYmxvY2s7CisgIGJhY2tncm91bmQtY29sb3I6ICM5MzA7CisgIGNvbG9yOiAjZmQ2OworICBib3JkZXItYm90dG9tOiAzcHggc29saWQgI2Y3MDsKKyAgcGFkZGluZzogM3B4OworICBmb250LXNpemU6IDMwcHg7Cit9CisKK2RpdiNoZWFkZXIgaDEgeyAKKyAgcGFkZGluZzogMDsKKyAgbWFyZ2luOiAwOworICBmb250LXNpemU6IDEuNWVtOworfQorCitkaXYjbmF2IHsKKyAgZmxvYXQ6IGxlZnQ7CisgIGJhY2tncm91bmQtY29sb3I6ICNmZDk7CisgIGJvcmRlcjogMXB4IHNvbGlkICNmNzA7CisgIG1hcmdpbi1yaWdodDogMWVtOworICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y3MDsKKyAgd2lkdGg6IDIwMHB4OworfQorCitkaXYjbmF2IHVsIHsKKyAgcGFkZGluZzogMDsKKyAgbWFyZ2luOiAwOworfQorCitkaXYjbmF2IGxpIHsKKyAgbGlzdC1zdHlsZTogbm9uZTsKKyAgbWFyZ2luOiAwOworfQorCitkaXYjbmF2IHVsIGxpIHVsIGxpIGEgeyAKKyAgcGFkZGluZzogMnB4IDJlbSAycHggMmVtOworICBmb250LXdlaWdodDogbm9ybWFsOworfQorCitkaXYjbmF2IGEgeworICBkaXNwbGF5OiBibG9jazsKKyAgcGFkZGluZzogMnB4IDFlbSAycHggMWVtOworICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CisgIGNvbG9yOiAjNDAwOworICBmb250LXdlaWdodDogYm9sZDsKK30KKworZGl2I25hdiBhOmhvdmVyIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2Y4MDsKKyAgY29sb3I6ICNmZmY7Cit9CisKKy8qIElmIEkgZXZlciBkbyBtZW51cyB0aGF0IHNob3cgdGhlICJjdXJyZW50IiBwYWdlLCB0aGF0IHdvdWxkIGJlCisgICBieSBtYXJraW5nIHNvbWUgImxpbmtzIiBhcyBzZWxlY3RlZCAqLworZGl2I25hdiBzcGFuLnNlbGVjdGVkIHsKKyAgZGlzcGxheTogYmxvY2s7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBwYWRkaW5nOiAycHggMWVtIDJweCAxZW07Cit9CisKK2RpdiNib2R5IHsKKyAgcGFkZGluZzogMWVtOworfQorCitoMS5wYWdlLXRpdGxlIHsKKyAgbWFyZ2luLXRvcDogMDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUyZDYzOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE3IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCit0cnk6CisgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMKKyAgICBwa2dfcmVzb3VyY2VzLmRlY2xhcmVfbmFtZXNwYWNlKF9fbmFtZV9fKQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgZG9uJ3QgcHJldmVudCB1c2Ugb2YgcGFzdGUgaWYgcGtnX3Jlc291cmNlcyBpc24ndCBpbnN0YWxsZWQKKyAgICBmcm9tIHBrZ3V0aWwgaW1wb3J0IGV4dGVuZF9wYXRoCisgICAgX19wYXRoX18gPSBleHRlbmRfcGF0aChfX3BhdGhfXywgX19uYW1lX18pCisKK3RyeToKKyAgICBpbXBvcnQgbW9kdWxlZmluZGVyCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcGFzcworZWxzZToKKyAgICBmb3IgcCBpbiBfX3BhdGhfXzoKKyAgICAgICAgbW9kdWxlZmluZGVyLkFkZFBhY2thZ2VQYXRoKF9fbmFtZV9fLCBwKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODZlMmVmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvX19pbml0X18ucHkKQEAgLTAsMCArMSw5IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK1BhY2thZ2UgZm9yIGF1dGhlbnRpY2F0aW9uL2lkZW50aWZpY2F0aW9uIG9mIHJlcXVlc3RzLgorCitUaGUgb2JqZWN0aXZlIG9mIHRoaXMgcGFja2FnZSBpcyB0byBwcm92aWRlIHNpbmdsZS1mb2N1c2VkIG1pZGRsZXdhcmUKK2NvbXBvbmVudHMgdGhhdCBpbXBsZW1lbnQgYSBwYXJ0aWN1bGFyIHNwZWNpZmljYXRpb24uICBJbnRlZ3JhdGlvbiBvZgordGhlIGNvbXBvbmVudHMgaW50byBhIHVzYWJsZSBzeXN0ZW0gaXMgdXAgdG8gYSBoaWdoZXItbGV2ZWwgZnJhbWV3b3JrLgorIiIiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9hdXRoX3RrdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2F1dGhfdGt0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhOGRkYmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9hdXRoX3RrdC5weQpAQCAtMCwwICsxLDQyOSBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDA1IEltYWdpbmFyeSBMYW5kc2NhcGUgTExDIGFuZCBDb250cmlidXRvcnMuCisjCisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZworIyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyMgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworIyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisjIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworIyBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyMgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIworIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorIyBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisjIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorIyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorIyBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCisjIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyMgT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCisjIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyIiIgorSW1wbGVtZW50YXRpb24gb2YgY29va2llIHNpZ25pbmcgYXMgZG9uZSBpbiBgbW9kX2F1dGhfdGt0Cis8aHR0cDovL3d3dy5vcGVuZnVzaW9uLmNvbS5hdS9sYWJzL21vZF9hdXRoX3RrdC8+YF8uCisKK21vZF9hdXRoX3RrdCBpcyBhbiBBcGFjaGUgbW9kdWxlIHRoYXQgbG9va3MgZm9yIHRoZXNlIHNpZ25lZCBjb29raWVzCithbmQgc2V0cyBgYFJFTU9URV9VU0VSYGAsIGBgUkVNT1RFX1VTRVJfVE9LRU5TYGAgKGEgY29tbWEtc2VwYXJhdGVkCitsaXN0IG9mIGdyb3VwcykgYW5kIGBgUkVNT1RFX1VTRVJfREFUQWBgIChhcmJpdHJhcnkgc3RyaW5nIGRhdGEpLgorCitUaGlzIG1vZHVsZSBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgYGBwYXN0ZS5hdXRoLmNvb2tpZWBgIG1vZHVsZTsKK2l0J3MgcHJpbWFyeSBiZW5lZml0IGlzIGNvbXBhdGliaWxpdHkgd2l0aCBtb2RfYXV0aF90a3QsIHdoaWNoIGluIHR1cm4KK21ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSB0aGUgc2FtZSBhdXRoZW50aWNhdGlvbiBwcm9jZXNzIHdpdGgKK25vbi1QeXRob24gY29kZSBydW4gdW5kZXIgQXBhY2hlLgorIiIiCisKK2ltcG9ydCB0aW1lIGFzIHRpbWVfbW9kCit0cnk6CisgICAgaW1wb3J0IGhhc2hsaWIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIG1pbWljIGhhc2hsaWIgKHdpbGwgd29yayBmb3IgbWQ1LCBmYWlsIGZvciBzZWN1cmUgaGFzaGVzKQorICAgIGltcG9ydCBtZDUgYXMgaGFzaGxpYgordHJ5OgorICAgIGZyb20gaHR0cC5jb29raWVzIGltcG9ydCBTaW1wbGVDb29raWUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFB5dGhvbiAyCisgICAgZnJvbSBDb29raWUgaW1wb3J0IFNpbXBsZUNvb2tpZQorZnJvbSBwYXN0ZSBpbXBvcnQgcmVxdWVzdAorZnJvbSB1cmxsaWIgaW1wb3J0IHF1b3RlIGFzIHVybF9xdW90ZQorZnJvbSB1cmxsaWIgaW1wb3J0IHVucXVvdGUgYXMgdXJsX3VucXVvdGUKKworREVGQVVMVF9ESUdFU1QgPSBoYXNobGliLm1kNQorCisKK2NsYXNzIEF1dGhUaWNrZXQob2JqZWN0KToKKworICAgICIiIgorICAgIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhbiBhdXRoZW50aWNhdGlvbiB0b2tlbi4gIFlvdSBtdXN0IHBhc3MgaW4KKyAgICB0aGUgc2hhcmVkIHNlY3JldCwgdGhlIHVzZXJpZCwgYW5kIHRoZSBJUCBhZGRyZXNzLiAgT3B0aW9uYWxseSB5b3UKKyAgICBjYW4gaW5jbHVkZSB0b2tlbnMgKGEgbGlzdCBvZiBzdHJpbmdzLCByZXByZXNlbnRpbmcgcm9sZSBuYW1lcyksCisgICAgJ3VzZXJfZGF0YScsIHdoaWNoIGlzIGFyYml0cmFyeSBkYXRhIGF2YWlsYWJsZSBmb3IgeW91ciBvd24gdXNlIGluCisgICAgbGF0ZXIgc2NyaXB0cy4gIExhc3RseSwgeW91IGNhbiBvdmVycmlkZSB0aGUgdGltZXN0YW1wLCBjb29raWUgbmFtZSwKKyAgICB3aGV0aGVyIHRvIHNlY3VyZSB0aGUgY29va2llIGFuZCB0aGUgZGlnZXN0IGFsZ29yaXRobSAoZm9yIGRldGFpbHMKKyAgICBsb29rIGF0IGBgQXV0aFRLVE1pZGRsZXdhcmVgYCkuCisKKyAgICBPbmNlIHlvdSBwcm92aWRlIGFsbCB0aGUgYXJndW1lbnRzLCB1c2UgLmNvb2tpZV92YWx1ZSgpIHRvCisgICAgZ2VuZXJhdGUgdGhlIGFwcHJvcHJpYXRlIGF1dGhlbnRpY2F0aW9uIHRpY2tldC4gIC5jb29raWUoKQorICAgIGdlbmVyYXRlcyBhIENvb2tpZSBvYmplY3QsIHRoZSBzdHIoKSBvZiB3aGljaCBpcyB0aGUgY29tcGxldGUKKyAgICBjb29raWUgaGVhZGVyIHRvIGJlIHNlbnQuCisKKyAgICBDR0kgdXNhZ2U6OgorCisgICAgICAgIHRva2VuID0gYXV0aF90a3QuQXV0aFRpY2soJ3NoYXJlZHNlY3JldCcsICd1c2VybmFtZScsCisgICAgICAgICAgICBvcy5lbnZpcm9uWydSRU1PVEVfQUREUiddLCB0b2tlbnM9WydhZG1pbiddKQorICAgICAgICBwcmludCgnU3RhdHVzOiAyMDAgT0snKQorICAgICAgICBwcmludCgnQ29udGVudC10eXBlOiB0ZXh0L2h0bWwnKQorICAgICAgICBwcmludCh0b2tlbi5jb29raWUoKSkKKyAgICAgICAgcHJpbnQoIiIpCisgICAgICAgIC4uLiByZWRpcmVjdCBIVE1MIC4uLgorCisgICAgV2Vid2FyZSB1c2FnZTo6CisKKyAgICAgICAgdG9rZW4gPSBhdXRoX3RrdC5BdXRoVGljaygnc2hhcmVkc2VjcmV0JywgJ3VzZXJuYW1lJywKKyAgICAgICAgICAgIHNlbGYucmVxdWVzdCgpLmVudmlyb24oKVsnUkVNT1RFX0FERFInXSwgdG9rZW5zPVsnYWRtaW4nXSkKKyAgICAgICAgc2VsZi5yZXNwb25zZSgpLnNldENvb2tpZSgnYXV0aF90a3QnLCB0b2tlbi5jb29raWVfdmFsdWUoKSkKKworICAgIEJlIGNhcmVmdWwgbm90IHRvIGRvIGFuIEhUVFAgcmVkaXJlY3QgYWZ0ZXIgbG9naW47IHVzZSBtZXRhCisgICAgcmVmcmVzaCBvciBKYXZhc2NyaXB0IC0tIHNvbWUgYnJvd3NlcnMgaGF2ZSBidWdzIHdoZXJlIGNvb2tpZXMKKyAgICBhcmVuJ3Qgc2F2ZWQgd2hlbiBzZXQgb24gYSByZWRpcmVjdC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZWNyZXQsIHVzZXJpZCwgaXAsIHRva2Vucz0oKSwgdXNlcl9kYXRhPScnLAorICAgICAgICAgICAgICAgICB0aW1lPU5vbmUsIGNvb2tpZV9uYW1lPSdhdXRoX3RrdCcsCisgICAgICAgICAgICAgICAgIHNlY3VyZT1GYWxzZSwgZGlnZXN0X2FsZ289REVGQVVMVF9ESUdFU1QpOgorICAgICAgICBzZWxmLnNlY3JldCA9IHNlY3JldAorICAgICAgICBzZWxmLnVzZXJpZCA9IHVzZXJpZAorICAgICAgICBzZWxmLmlwID0gaXAKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodG9rZW5zLCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgIHRva2VucyA9ICcsJy5qb2luKHRva2VucykKKyAgICAgICAgc2VsZi50b2tlbnMgPSB0b2tlbnMKKyAgICAgICAgc2VsZi51c2VyX2RhdGEgPSB1c2VyX2RhdGEKKyAgICAgICAgaWYgdGltZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi50aW1lID0gdGltZV9tb2QudGltZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnRpbWUgPSB0aW1lCisgICAgICAgIHNlbGYuY29va2llX25hbWUgPSBjb29raWVfbmFtZQorICAgICAgICBzZWxmLnNlY3VyZSA9IHNlY3VyZQorICAgICAgICBpZiBpc2luc3RhbmNlKGRpZ2VzdF9hbGdvLCBzdHIpOgorICAgICAgICAgICAgIyBjb3JyZWN0IHNwZWNpZmljYXRpb24gb2YgZGlnZXN0IGZyb20gaGFzaGxpYiBvciBmYWlsCisgICAgICAgICAgICBzZWxmLmRpZ2VzdF9hbGdvID0gZ2V0YXR0cihoYXNobGliLCBkaWdlc3RfYWxnbykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZGlnZXN0X2FsZ28gPSBkaWdlc3RfYWxnbworCisgICAgZGVmIGRpZ2VzdChzZWxmKToKKyAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZV9kaWdlc3QoCisgICAgICAgICAgICBzZWxmLmlwLCBzZWxmLnRpbWUsIHNlbGYuc2VjcmV0LCBzZWxmLnVzZXJpZCwgc2VsZi50b2tlbnMsCisgICAgICAgICAgICBzZWxmLnVzZXJfZGF0YSwgc2VsZi5kaWdlc3RfYWxnbykKKworICAgIGRlZiBjb29raWVfdmFsdWUoc2VsZik6CisgICAgICAgIHYgPSAnJXMlMDh4JXMhJyAlIChzZWxmLmRpZ2VzdCgpLCBpbnQoc2VsZi50aW1lKSwgdXJsX3F1b3RlKHNlbGYudXNlcmlkKSkKKyAgICAgICAgaWYgc2VsZi50b2tlbnM6CisgICAgICAgICAgICB2ICs9IHNlbGYudG9rZW5zICsgJyEnCisgICAgICAgIHYgKz0gc2VsZi51c2VyX2RhdGEKKyAgICAgICAgcmV0dXJuIHYKKworICAgIGRlZiBjb29raWUoc2VsZik6CisgICAgICAgIGMgPSBTaW1wbGVDb29raWUoKQorICAgICAgICBjW3NlbGYuY29va2llX25hbWVdID0gc2VsZi5jb29raWVfdmFsdWUoKS5lbmNvZGUoJ2Jhc2U2NCcpLnN0cmlwKCkucmVwbGFjZSgnXG4nLCAnJykKKyAgICAgICAgY1tzZWxmLmNvb2tpZV9uYW1lXVsncGF0aCddID0gJy8nCisgICAgICAgIGlmIHNlbGYuc2VjdXJlOgorICAgICAgICAgICAgY1tzZWxmLmNvb2tpZV9uYW1lXVsnc2VjdXJlJ10gPSAndHJ1ZScKKyAgICAgICAgcmV0dXJuIGMKKworCitjbGFzcyBCYWRUaWNrZXQoRXhjZXB0aW9uKToKKyAgICAiIiIKKyAgICBFeGNlcHRpb24gcmFpc2VkIHdoZW4gYSB0aWNrZXQgY2FuJ3QgYmUgcGFyc2VkLiAgSWYgd2UgZ2V0CisgICAgZmFyIGVub3VnaCB0byBkZXRlcm1pbmUgd2hhdCB0aGUgZXhwZWN0ZWQgZGlnZXN0IHNob3VsZCBoYXZlCisgICAgYmVlbiwgZXhwZWN0ZWQgaXMgc2V0LiAgVGhpcyBzaG91bGQgbm90IGJlIHNob3duIGJ5IGRlZmF1bHQsCisgICAgYnV0IGNhbiBiZSB1c2VmdWwgZm9yIGRlYnVnZ2luZy4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnLCBleHBlY3RlZD1Ob25lKToKKyAgICAgICAgc2VsZi5leHBlY3RlZCA9IGV4cGVjdGVkCisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtc2cpCisKKworZGVmIHBhcnNlX3RpY2tldChzZWNyZXQsIHRpY2tldCwgaXAsIGRpZ2VzdF9hbGdvPURFRkFVTFRfRElHRVNUKToKKyAgICAiIiIKKyAgICBQYXJzZSB0aGUgdGlja2V0LCByZXR1cm5pbmcgKHRpbWVzdGFtcCwgdXNlcmlkLCB0b2tlbnMsIHVzZXJfZGF0YSkuCisKKyAgICBJZiB0aGUgdGlja2V0IGNhbm5vdCBiZSBwYXJzZWQsIGBgQmFkVGlja2V0YGAgd2lsbCBiZSByYWlzZWQgd2l0aAorICAgIGFuIGV4cGxhbmF0aW9uLgorICAgICIiIgorICAgIGlmIGlzaW5zdGFuY2UoZGlnZXN0X2FsZ28sIHN0cik6CisgICAgICAgICMgY29ycmVjdCBzcGVjaWZpY2F0aW9uIG9mIGRpZ2VzdCBmcm9tIGhhc2hsaWIgb3IgZmFpbAorICAgICAgICBkaWdlc3RfYWxnbyA9IGdldGF0dHIoaGFzaGxpYiwgZGlnZXN0X2FsZ28pCisgICAgZGlnZXN0X2hleGFfc2l6ZSA9IGRpZ2VzdF9hbGdvKCkuZGlnZXN0X3NpemUgKiAyCisgICAgdGlja2V0ID0gdGlja2V0LnN0cmlwKCciJykKKyAgICBkaWdlc3QgPSB0aWNrZXRbOmRpZ2VzdF9oZXhhX3NpemVdCisgICAgdHJ5OgorICAgICAgICB0aW1lc3RhbXAgPSBpbnQodGlja2V0W2RpZ2VzdF9oZXhhX3NpemU6ZGlnZXN0X2hleGFfc2l6ZSArIDhdLCAxNikKKyAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgorICAgICAgICByYWlzZSBCYWRUaWNrZXQoJ1RpbWVzdGFtcCBpcyBub3QgYSBoZXggaW50ZWdlcjogJXMnICUgZSkKKyAgICB0cnk6CisgICAgICAgIHVzZXJpZCwgZGF0YSA9IHRpY2tldFtkaWdlc3RfaGV4YV9zaXplICsgODpdLnNwbGl0KCchJywgMSkKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcmFpc2UgQmFkVGlja2V0KCd1c2VyaWQgaXMgbm90IGZvbGxvd2VkIGJ5ICEnKQorICAgIHVzZXJpZCA9IHVybF91bnF1b3RlKHVzZXJpZCkKKyAgICBpZiAnIScgaW4gZGF0YToKKyAgICAgICAgdG9rZW5zLCB1c2VyX2RhdGEgPSBkYXRhLnNwbGl0KCchJywgMSkKKyAgICBlbHNlOgorICAgICAgICAjIEBAOiBJcyB0aGlzIHRoZSByaWdodCBvcmRlcj8KKyAgICAgICAgdG9rZW5zID0gJycKKyAgICAgICAgdXNlcl9kYXRhID0gZGF0YQorCisgICAgZXhwZWN0ZWQgPSBjYWxjdWxhdGVfZGlnZXN0KGlwLCB0aW1lc3RhbXAsIHNlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcmlkLCB0b2tlbnMsIHVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlnZXN0X2FsZ28pCisKKyAgICBpZiBleHBlY3RlZCAhPSBkaWdlc3Q6CisgICAgICAgIHJhaXNlIEJhZFRpY2tldCgnRGlnZXN0IHNpZ25hdHVyZSBpcyBub3QgY29ycmVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZD0oZXhwZWN0ZWQsIGRpZ2VzdCkpCisKKyAgICB0b2tlbnMgPSB0b2tlbnMuc3BsaXQoJywnKQorCisgICAgcmV0dXJuICh0aW1lc3RhbXAsIHVzZXJpZCwgdG9rZW5zLCB1c2VyX2RhdGEpCisKKworIyBAQDogRGlnZXN0IG9iamVjdCBjb25zdHJ1Y3RvciBjb21wYXRpYmxlIHdpdGggbmFtZWQgb25lcyBpbiBoYXNobGliIG9ubHkKK2RlZiBjYWxjdWxhdGVfZGlnZXN0KGlwLCB0aW1lc3RhbXAsIHNlY3JldCwgdXNlcmlkLCB0b2tlbnMsIHVzZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgIGRpZ2VzdF9hbGdvKToKKyAgICBzZWNyZXQgPSBtYXliZV9lbmNvZGUoc2VjcmV0KQorICAgIHVzZXJpZCA9IG1heWJlX2VuY29kZSh1c2VyaWQpCisgICAgdG9rZW5zID0gbWF5YmVfZW5jb2RlKHRva2VucykKKyAgICB1c2VyX2RhdGEgPSBtYXliZV9lbmNvZGUodXNlcl9kYXRhKQorICAgIGRpZ2VzdDAgPSBkaWdlc3RfYWxnbygKKyAgICAgICAgZW5jb2RlX2lwX3RpbWVzdGFtcChpcCwgdGltZXN0YW1wKSArIHNlY3JldCArIHVzZXJpZCArICdcMCcKKyAgICAgICAgKyB0b2tlbnMgKyAnXDAnICsgdXNlcl9kYXRhKS5oZXhkaWdlc3QoKQorICAgIGRpZ2VzdCA9IGRpZ2VzdF9hbGdvKGRpZ2VzdDAgKyBzZWNyZXQpLmhleGRpZ2VzdCgpCisgICAgcmV0dXJuIGRpZ2VzdAorCisKK2RlZiBlbmNvZGVfaXBfdGltZXN0YW1wKGlwLCB0aW1lc3RhbXApOgorICAgIGlwX2NoYXJzID0gJycuam9pbihtYXAoY2hyLCBtYXAoaW50LCBpcC5zcGxpdCgnLicpKSkpCisgICAgdCA9IGludCh0aW1lc3RhbXApCisgICAgdHMgPSAoKHQgJiAweGZmMDAwMDAwKSA+PiAyNCwKKyAgICAgICAgICAodCAmIDB4ZmYwMDAwKSA+PiAxNiwKKyAgICAgICAgICAodCAmIDB4ZmYwMCkgPj4gOCwKKyAgICAgICAgICB0ICYgMHhmZikKKyAgICB0c19jaGFycyA9ICcnLmpvaW4obWFwKGNociwgdHMpKQorICAgIHJldHVybiBpcF9jaGFycyArIHRzX2NoYXJzCisKKworZGVmIG1heWJlX2VuY29kZShzLCBlbmNvZGluZz0ndXRmOCcpOgorICAgIGlmIGlzaW5zdGFuY2UocywgdW5pY29kZSk6CisgICAgICAgIHMgPSBzLmVuY29kZShlbmNvZGluZykKKyAgICByZXR1cm4gcworCisKK2NsYXNzIEF1dGhUS1RNaWRkbGV3YXJlKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBNaWRkbGV3YXJlIHRoYXQgY2hlY2tzIGZvciBzaWduZWQgY29va2llcyB0aGF0IG1hdGNoIHdoYXQKKyAgICBgbW9kX2F1dGhfdGt0IDxodHRwOi8vd3d3Lm9wZW5mdXNpb24uY29tLmF1L2xhYnMvbW9kX2F1dGhfdGt0Lz5gXworICAgIGxvb2tzIGZvciAoaWYgeW91IGhhdmUgbW9kX2F1dGhfdGt0IGluc3RhbGxlZCwgeW91IGRvbid0IG5lZWQgdGhpcworICAgIG1pZGRsZXdhcmUsIHNpbmNlIEFwYWNoZSB3aWxsIHNldCB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgZm9yCisgICAgeW91KS4KKworICAgIEFyZ3VtZW50czoKKworICAgIGBgc2VjcmV0YGA6CisgICAgICAgIEEgc2VjcmV0IHRoYXQgc2hvdWxkIGJlIHNoYXJlZCBieSBhbnkgaW5zdGFuY2VzIG9mIHRoaXMgYXBwbGljYXRpb24uCisgICAgICAgIElmIHRoaXMgYXBwIGlzIHNlcnZlZCBmcm9tIG1vcmUgdGhhbiBvbmUgbWFjaGluZSwgdGhleSBzaG91bGQgYWxsCisgICAgICAgIGhhdmUgdGhlIHNhbWUgc2VjcmV0LgorCisgICAgYGBjb29raWVfbmFtZWBgOgorICAgICAgICBUaGUgbmFtZSBvZiB0aGUgY29va2llIHRvIHJlYWQgYW5kIHdyaXRlIGZyb20uICBEZWZhdWx0IGBgYXV0aF90a3RgYC4KKworICAgIGBgc2VjdXJlYGA6CisgICAgICAgIElmIHRoZSBjb29raWUgc2hvdWxkIGJlIHNldCBhcyAnc2VjdXJlJyAob25seSBzZW50IG92ZXIgU1NMKSBhbmQgaWYKKyAgICAgICAgdGhlIGxvZ2luIG11c3QgYmUgb3ZlciBTU0wuIChEZWZhdWx0cyB0byBGYWxzZSkKKworICAgIGBgaHR0cG9ubHlgYDoKKyAgICAgICAgSWYgdGhlIGNvb2tpZSBzaG91bGQgYmUgbWFya2VkIGFzIEh0dHBPbmx5LCB3aGljaCBtZWFucyB0aGF0IGl0J3MKKyAgICAgICAgbm90IGFjY2Vzc2libGUgdG8gSmF2YVNjcmlwdC4gKERlZmF1bHRzIHRvIEZhbHNlKQorCisgICAgYGBpbmNsdWRlX2lwYGA6CisgICAgICAgIElmIHRoZSBjb29raWUgc2hvdWxkIGluY2x1ZGUgdGhlIHVzZXIncyBJUCBhZGRyZXNzLiAgSWYgc28sIHRoZW4KKyAgICAgICAgaWYgdGhleSBjaGFuZ2UgSVBzIHRoZWlyIGNvb2tpZSB3aWxsIGJlIGludmFsaWQuCisKKyAgICBgYGxvZ291dF9wYXRoYGA6CisgICAgICAgIFRoZSBwYXRoIHVuZGVyIHRoaXMgbWlkZGxld2FyZSB0aGF0IHNob3VsZCBzaWduaWZ5IGEgbG9nb3V0LiAgVGhlCisgICAgICAgIHBhZ2Ugd2lsbCBiZSBzaG93biBhcyB1c3VhbCwgYnV0IHRoZSB1c2VyIHdpbGwgYWxzbyBiZSBsb2dnZWQgb3V0CisgICAgICAgIHdoZW4gdGhleSB2aXNpdCB0aGlzIHBhZ2UuCisKKyAgICBgYGRpZ2VzdF9hbGdvYGA6CisgICAgICAgIERpZ2VzdCBhbGdvcml0aG0gc3BlY2lmaWVkIGFzIGEgbmFtZSBvZiB0aGUgYWxnb3JpdGhtIHByb3ZpZGVkIGJ5CisgICAgICAgIGBgaGFzaGxpYmBgIG9yIGFzIGEgY29tcGF0aWJsZSBkaWdlc3Qgb2JqZWN0IGNvbnN0cnVjdG9yLgorICAgICAgICBEZWZhdWx0cyB0byBgYG1kNWBgLCBhcyBpbiBtb2RfYXV0aF90a3QuICBUaGUgb3RoZXJzIGN1cnJlbnRseQorICAgICAgICBjb21wYXRpYmxlIHdpdGggbW9kX2F1dGhfdGt0IGFyZSBgYHNoYTI1NmBgIGFuZCBgYHNoYTUxMmBgLgorCisgICAgSWYgdXNlZCB3aXRoIG1vZF9hdXRoX3RrdCwgdGhlbiB0aGVzZSBzZXR0aW5ncyAoZXhjZXB0IGxvZ291dF9wYXRoKSBzaG91bGQKKyAgICBtYXRjaCB0aGUgYW5hbG9nb3VzIEFwYWNoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzLgorCisgICAgVGhpcyBhbHNvIGFkZHMgdHdvIGZ1bmN0aW9ucyB0byB0aGUgcmVxdWVzdDoKKworICAgIGBgZW52aXJvblsncGFzdGUuYXV0aF90a3Quc2V0X3VzZXInXSh1c2VyaWQsIHRva2Vucz0nJywgdXNlcl9kYXRhPScnKWBgCisKKyAgICAgICAgVGhpcyBzZXRzIGEgY29va2llIHRoYXQgbG9ncyB0aGUgdXNlciBpbi4gIGBgdG9rZW5zYGAgaXMgYQorICAgICAgICBzdHJpbmcgKGNvbW1hLXNlcGFyYXRlZCBncm91cHMpIG9yIGEgbGlzdCBvZiBzdHJpbmdzLgorICAgICAgICBgYHVzZXJfZGF0YWBgIGlzIGEgc3RyaW5nIGZvciB5b3VyIG93biB1c2UuCisKKyAgICBgYGVudmlyb25bJ3Bhc3RlLmF1dGhfdGt0LmxvZ291dF91c2VyJ10oKWBgCisKKyAgICAgICAgTG9ncyBvdXQgdGhlIHVzZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwLCBzZWNyZXQsIGNvb2tpZV9uYW1lPSdhdXRoX3RrdCcsIHNlY3VyZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgaW5jbHVkZV9pcD1UcnVlLCBsb2dvdXRfcGF0aD1Ob25lLCBodHRwb25seT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgbm9fZG9tYWluX2Nvb2tpZT1UcnVlLCBjdXJyZW50X2RvbWFpbl9jb29raWU9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgd2lsZGNhcmRfY29va2llPVRydWUsIGRpZ2VzdF9hbGdvPURFRkFVTFRfRElHRVNUKToKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5zZWNyZXQgPSBzZWNyZXQKKyAgICAgICAgc2VsZi5jb29raWVfbmFtZSA9IGNvb2tpZV9uYW1lCisgICAgICAgIHNlbGYuc2VjdXJlID0gc2VjdXJlCisgICAgICAgIHNlbGYuaHR0cG9ubHkgPSBodHRwb25seQorICAgICAgICBzZWxmLmluY2x1ZGVfaXAgPSBpbmNsdWRlX2lwCisgICAgICAgIHNlbGYubG9nb3V0X3BhdGggPSBsb2dvdXRfcGF0aAorICAgICAgICBzZWxmLm5vX2RvbWFpbl9jb29raWUgPSBub19kb21haW5fY29va2llCisgICAgICAgIHNlbGYuY3VycmVudF9kb21haW5fY29va2llID0gY3VycmVudF9kb21haW5fY29va2llCisgICAgICAgIHNlbGYud2lsZGNhcmRfY29va2llID0gd2lsZGNhcmRfY29va2llCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZGlnZXN0X2FsZ28sIHN0cik6CisgICAgICAgICAgICAjIGNvcnJlY3Qgc3BlY2lmaWNhdGlvbiBvZiBkaWdlc3QgZnJvbSBoYXNobGliIG9yIGZhaWwKKyAgICAgICAgICAgIHNlbGYuZGlnZXN0X2FsZ28gPSBnZXRhdHRyKGhhc2hsaWIsIGRpZ2VzdF9hbGdvKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5kaWdlc3RfYWxnbyA9IGRpZ2VzdF9hbGdvCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBjb29raWVzID0gcmVxdWVzdC5nZXRfY29va2llcyhlbnZpcm9uKQorICAgICAgICBpZiBzZWxmLmNvb2tpZV9uYW1lIGluIGNvb2tpZXM6CisgICAgICAgICAgICBjb29raWVfdmFsdWUgPSBjb29raWVzW3NlbGYuY29va2llX25hbWVdLnZhbHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb29raWVfdmFsdWUgPSAnJworICAgICAgICBpZiBjb29raWVfdmFsdWU6CisgICAgICAgICAgICBpZiBzZWxmLmluY2x1ZGVfaXA6CisgICAgICAgICAgICAgICAgcmVtb3RlX2FkZHIgPSBlbnZpcm9uWydSRU1PVEVfQUREUiddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgbW9kX2F1dGhfdGt0IHVzZXMgdGhpcyBkdW1teSB2YWx1ZSB3aGVuIElQIGlzIG5vdAorICAgICAgICAgICAgICAgICMgY2hlY2tlZDoKKyAgICAgICAgICAgICAgICByZW1vdGVfYWRkciA9ICcwLjAuMC4wJworICAgICAgICAgICAgIyBAQDogVGhpcyBzaG91bGQgaGFuZGxlIGJhZCBzaWduYXR1cmVzIGJldHRlcjoKKyAgICAgICAgICAgICMgQWxzbywgdGltZW91dHMgc2hvdWxkIGNhdXNlIGNvb2tpZSByZWZyZXNoCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGltZXN0YW1wLCB1c2VyaWQsIHRva2VucywgdXNlcl9kYXRhID0gcGFyc2VfdGlja2V0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlY3JldCwgY29va2llX3ZhbHVlLCByZW1vdGVfYWRkciwgc2VsZi5kaWdlc3RfYWxnbykKKyAgICAgICAgICAgICAgICB0b2tlbnMgPSAnLCcuam9pbih0b2tlbnMpCisgICAgICAgICAgICAgICAgZW52aXJvblsnUkVNT1RFX1VTRVInXSA9IHVzZXJpZAorICAgICAgICAgICAgICAgIGlmIGVudmlyb24uZ2V0KCdSRU1PVEVfVVNFUl9UT0tFTlMnKToKKyAgICAgICAgICAgICAgICAgICAgIyBXZSB3YW50IHRvIGFkZCB0b2tlbnMvcm9sZXMgdG8gd2hhdCdzIHRoZXJlOgorICAgICAgICAgICAgICAgICAgICB0b2tlbnMgPSBlbnZpcm9uWydSRU1PVEVfVVNFUl9UT0tFTlMnXSArICcsJyArIHRva2VucworICAgICAgICAgICAgICAgIGVudmlyb25bJ1JFTU9URV9VU0VSX1RPS0VOUyddID0gdG9rZW5zCisgICAgICAgICAgICAgICAgZW52aXJvblsnUkVNT1RFX1VTRVJfREFUQSddID0gdXNlcl9kYXRhCisgICAgICAgICAgICAgICAgZW52aXJvblsnQVVUSF9UWVBFJ10gPSAnY29va2llJworICAgICAgICAgICAgZXhjZXB0IEJhZFRpY2tldDoKKyAgICAgICAgICAgICAgICAjIGJhZCBjcmVkZW50aWFscywganVzdCBpZ25vcmUgd2l0aG91dCBsb2dnaW5nIHRoZSB1c2VyCisgICAgICAgICAgICAgICAgIyBpbiBvciBhbnl0aGluZworICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2V0X2Nvb2tpZXMgPSBbXQorCisgICAgICAgIGRlZiBzZXRfdXNlcih1c2VyaWQsIHRva2Vucz0nJywgdXNlcl9kYXRhPScnKToKKyAgICAgICAgICAgIHNldF9jb29raWVzLmV4dGVuZChzZWxmLnNldF91c2VyX2Nvb2tpZSgKKyAgICAgICAgICAgICAgICBlbnZpcm9uLCB1c2VyaWQsIHRva2VucywgdXNlcl9kYXRhKSkKKworICAgICAgICBkZWYgbG9nb3V0X3VzZXIoKToKKyAgICAgICAgICAgIHNldF9jb29raWVzLmV4dGVuZChzZWxmLmxvZ291dF91c2VyX2Nvb2tpZShlbnZpcm9uKSkKKworICAgICAgICBlbnZpcm9uWydwYXN0ZS5hdXRoX3RrdC5zZXRfdXNlciddID0gc2V0X3VzZXIKKyAgICAgICAgZW52aXJvblsncGFzdGUuYXV0aF90a3QubG9nb3V0X3VzZXInXSA9IGxvZ291dF91c2VyCisgICAgICAgIGlmIHNlbGYubG9nb3V0X3BhdGggYW5kIGVudmlyb24uZ2V0KCdQQVRIX0lORk8nKSA9PSBzZWxmLmxvZ291dF9wYXRoOgorICAgICAgICAgICAgbG9nb3V0X3VzZXIoKQorCisgICAgICAgIGRlZiBjb29raWVfc2V0dGluZ19zdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgaGVhZGVycy5leHRlbmQoc2V0X2Nvb2tpZXMpCisgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbykKKworICAgICAgICByZXR1cm4gc2VsZi5hcHAoZW52aXJvbiwgY29va2llX3NldHRpbmdfc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgc2V0X3VzZXJfY29va2llKHNlbGYsIGVudmlyb24sIHVzZXJpZCwgdG9rZW5zLCB1c2VyX2RhdGEpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh0b2tlbnMsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgdG9rZW5zID0gJywnLmpvaW4odG9rZW5zKQorICAgICAgICBpZiBzZWxmLmluY2x1ZGVfaXA6CisgICAgICAgICAgICByZW1vdGVfYWRkciA9IGVudmlyb25bJ1JFTU9URV9BRERSJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlbW90ZV9hZGRyID0gJzAuMC4wLjAnCisgICAgICAgIHRpY2tldCA9IEF1dGhUaWNrZXQoCisgICAgICAgICAgICBzZWxmLnNlY3JldCwKKyAgICAgICAgICAgIHVzZXJpZCwKKyAgICAgICAgICAgIHJlbW90ZV9hZGRyLAorICAgICAgICAgICAgdG9rZW5zPXRva2VucywKKyAgICAgICAgICAgIHVzZXJfZGF0YT11c2VyX2RhdGEsCisgICAgICAgICAgICBjb29raWVfbmFtZT1zZWxmLmNvb2tpZV9uYW1lLAorICAgICAgICAgICAgc2VjdXJlPXNlbGYuc2VjdXJlKQorICAgICAgICAjIEBAOiBTaG91bGQgd2Ugc2V0IFJFTU9URV9VU0VSIGV0YyBpbiB0aGUgY3VycmVudAorICAgICAgICAjIGVudmlyb25tZW50IHJpZ2h0IG5vdyBhcyB3ZWxsPworICAgICAgICBjdXJfZG9tYWluID0gZW52aXJvbi5nZXQoJ0hUVFBfSE9TVCcsIGVudmlyb24uZ2V0KCdTRVJWRVJfTkFNRScpKQorICAgICAgICB3aWxkX2RvbWFpbiA9ICcuJyArIGN1cl9kb21haW4KKworICAgICAgICBjb29raWVfb3B0aW9ucyA9ICIiCisgICAgICAgIGlmIHNlbGYuc2VjdXJlOgorICAgICAgICAgICAgY29va2llX29wdGlvbnMgKz0gIjsgc2VjdXJlIgorICAgICAgICBpZiBzZWxmLmh0dHBvbmx5OgorICAgICAgICAgICAgY29va2llX29wdGlvbnMgKz0gIjsgSHR0cE9ubHkiCisKKyAgICAgICAgY29va2llcyA9IFtdCisgICAgICAgIGlmIHNlbGYubm9fZG9tYWluX2Nvb2tpZToKKyAgICAgICAgICAgIGNvb2tpZXMuYXBwZW5kKCgnU2V0LUNvb2tpZScsICclcz0lczsgUGF0aD0vJXMnICUgKAorICAgICAgICAgICAgICAgIHNlbGYuY29va2llX25hbWUsIHRpY2tldC5jb29raWVfdmFsdWUoKSwgY29va2llX29wdGlvbnMpKSkKKyAgICAgICAgaWYgc2VsZi5jdXJyZW50X2RvbWFpbl9jb29raWU6CisgICAgICAgICAgICBjb29raWVzLmFwcGVuZCgoJ1NldC1Db29raWUnLCAnJXM9JXM7IFBhdGg9LzsgRG9tYWluPSVzJXMnICUgKAorICAgICAgICAgICAgICAgIHNlbGYuY29va2llX25hbWUsIHRpY2tldC5jb29raWVfdmFsdWUoKSwgY3VyX2RvbWFpbiwKKyAgICAgICAgICAgICAgICBjb29raWVfb3B0aW9ucykpKQorICAgICAgICBpZiBzZWxmLndpbGRjYXJkX2Nvb2tpZToKKyAgICAgICAgICAgIGNvb2tpZXMuYXBwZW5kKCgnU2V0LUNvb2tpZScsICclcz0lczsgUGF0aD0vOyBEb21haW49JXMlcycgJSAoCisgICAgICAgICAgICAgICAgc2VsZi5jb29raWVfbmFtZSwgdGlja2V0LmNvb2tpZV92YWx1ZSgpLCB3aWxkX2RvbWFpbiwKKyAgICAgICAgICAgICAgICBjb29raWVfb3B0aW9ucykpKQorCisgICAgICAgIHJldHVybiBjb29raWVzCisKKyAgICBkZWYgbG9nb3V0X3VzZXJfY29va2llKHNlbGYsIGVudmlyb24pOgorICAgICAgICBjdXJfZG9tYWluID0gZW52aXJvbi5nZXQoJ0hUVFBfSE9TVCcsIGVudmlyb24uZ2V0KCdTRVJWRVJfTkFNRScpKQorICAgICAgICB3aWxkX2RvbWFpbiA9ICcuJyArIGN1cl9kb21haW4KKyAgICAgICAgZXhwaXJlcyA9ICdTYXQsIDAxLUphbi0yMDAwIDEyOjAwOjAwIEdNVCcKKyAgICAgICAgY29va2llcyA9IFsKKyAgICAgICAgICAgICgnU2V0LUNvb2tpZScsICclcz0iIjsgRXhwaXJlcz0iJXMiOyBQYXRoPS8nICUgKHNlbGYuY29va2llX25hbWUsIGV4cGlyZXMpKSwKKyAgICAgICAgICAgICgnU2V0LUNvb2tpZScsICclcz0iIjsgRXhwaXJlcz0iJXMiOyBQYXRoPS87IERvbWFpbj0lcycgJQorICAgICAgICAgICAgIChzZWxmLmNvb2tpZV9uYW1lLCBleHBpcmVzLCBjdXJfZG9tYWluKSksCisgICAgICAgICAgICAoJ1NldC1Db29raWUnLCAnJXM9IiI7IEV4cGlyZXM9IiVzIjsgUGF0aD0vOyBEb21haW49JXMnICUKKyAgICAgICAgICAgICAoc2VsZi5jb29raWVfbmFtZSwgZXhwaXJlcywgd2lsZF9kb21haW4pKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgcmV0dXJuIGNvb2tpZXMKKworCitkZWYgbWFrZV9hdXRoX3RrdF9taWRkbGV3YXJlKAorICAgIGFwcCwKKyAgICBnbG9iYWxfY29uZiwKKyAgICBzZWNyZXQ9Tm9uZSwKKyAgICBjb29raWVfbmFtZT0nYXV0aF90a3QnLAorICAgIHNlY3VyZT1GYWxzZSwKKyAgICBpbmNsdWRlX2lwPVRydWUsCisgICAgbG9nb3V0X3BhdGg9Tm9uZSk6CisgICAgIiIiCisgICAgQ3JlYXRlcyB0aGUgYEF1dGhUS1RNaWRkbGV3YXJlCisgICAgPGNsYXNzLXBhc3RlLmF1dGguYXV0aF90a3QuQXV0aFRLVE1pZGRsZXdhcmUuaHRtbD5gXy4KKworICAgIGBgc2VjcmV0YGAgaXMgcmVxdWlyZCwgYnV0IGNhbiBiZSBzZXQgZ2xvYmFsbHkgb3IgbG9jYWxseS4KKyAgICAiIiIKKyAgICBmcm9tIHBhc3RlLmRlcGxveS5jb252ZXJ0ZXJzIGltcG9ydCBhc2Jvb2wKKyAgICBzZWN1cmUgPSBhc2Jvb2woc2VjdXJlKQorICAgIGluY2x1ZGVfaXAgPSBhc2Jvb2woaW5jbHVkZV9pcCkKKyAgICBpZiBzZWNyZXQgaXMgTm9uZToKKyAgICAgICAgc2VjcmV0ID0gZ2xvYmFsX2NvbmYuZ2V0KCdzZWNyZXQnKQorICAgIGlmIG5vdCBzZWNyZXQ6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAiWW91IG11c3QgcHJvdmlkZSBhICdzZWNyZXQnIChpbiBnbG9iYWwgb3IgbG9jYWwgY29uZmlndXJhdGlvbikiKQorICAgIHJldHVybiBBdXRoVEtUTWlkZGxld2FyZSgKKyAgICAgICAgYXBwLCBzZWNyZXQsIGNvb2tpZV9uYW1lLCBzZWN1cmUsIGluY2x1ZGVfaXAsIGxvZ291dF9wYXRoIG9yIE5vbmUpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9iYXNpYy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2Jhc2ljLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZDE3MzEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9iYXNpYy5weQpAQCAtMCwwICsxLDEyMiBAQAorIyAoYykgMjAwNSBDbGFyayBDLiBFdmFucworIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIyBUaGlzIGNvZGUgd2FzIHdyaXR0ZW4gd2l0aCBmdW5kaW5nIGJ5IGh0dHA6Ly9wcm9tZXRoZXVzcmVzZWFyY2guY29tCisiIiIKK0Jhc2ljIEhUVFAvMS4wIEF1dGhlbnRpY2F0aW9uCisKK1RoaXMgbW9kdWxlIGltcGxlbWVudHMgYGBCYXNpY2BgIGF1dGhlbnRpY2F0aW9uIGFzIGRlc2NyaWJlZCBpbgorSFRUUC8xLjAgc3BlY2lmaWNhdGlvbiBbMV1fIC4gIERvIG5vdCB1c2UgdGhpcyBtb2R1bGUgdW5sZXNzIHlvdQorYXJlIHVzaW5nIFNTTCBvciBuZWVkIHRvIHdvcmsgd2l0aCB2ZXJ5IG91dC1kYXRlZCBjbGllbnRzLCBpbnN0ZWFkCit1c2UgYGBkaWdlc3RgYCBhdXRoZW50aWNhdGlvbi4KKworPj4+IGZyb20gcGFzdGUud3NnaWxpYiBpbXBvcnQgZHVtcF9lbnZpcm9uCis+Pj4gZnJvbSBwYXN0ZS5odHRwc2VydmVyIGltcG9ydCBzZXJ2ZQorPj4+ICMgZnJvbSBwYXN0ZS5hdXRoLmJhc2ljIGltcG9ydCBBdXRoQmFzaWNIYW5kbGVyCis+Pj4gcmVhbG0gPSAnVGVzdCBSZWFsbScKKz4+PiBkZWYgYXV0aGZ1bmMoZW52aXJvbiwgdXNlcm5hbWUsIHBhc3N3b3JkKToKKy4uLiAgICAgcmV0dXJuIHVzZXJuYW1lID09IHBhc3N3b3JkCis+Pj4gc2VydmUoQXV0aEJhc2ljSGFuZGxlcihkdW1wX2Vudmlyb24sIHJlYWxtLCBhdXRoZnVuYykpCitzZXJ2aW5nIG9uLi4uCisKKy4uIFsxXSBodHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvSFRUUC8xLjAvZHJhZnQtaWV0Zi1odHRwLXNwZWMuaHRtbCNCYXNpY0FBCisiIiIKK2Zyb20gcGFzdGUuaHR0cGV4Y2VwdGlvbnMgaW1wb3J0IEhUVFBVbmF1dGhvcml6ZWQKK2Zyb20gcGFzdGUuaHR0cGhlYWRlcnMgaW1wb3J0ICoKKworY2xhc3MgQXV0aEJhc2ljQXV0aGVudGljYXRvcihvYmplY3QpOgorICAgICIiIgorICAgIGltcGxlbWVudHMgYGBCYXNpY2BgIGF1dGhlbnRpY2F0aW9uIGRldGFpbHMKKyAgICAiIiIKKyAgICB0eXBlID0gJ2Jhc2ljJworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZWFsbSwgYXV0aGZ1bmMpOgorICAgICAgICBzZWxmLnJlYWxtID0gcmVhbG0KKyAgICAgICAgc2VsZi5hdXRoZnVuYyA9IGF1dGhmdW5jCisKKyAgICBkZWYgYnVpbGRfYXV0aGVudGljYXRpb24oc2VsZik6CisgICAgICAgIGhlYWQgPSBXV1dfQVVUSEVOVElDQVRFLnR1cGxlcygnQmFzaWMgcmVhbG09IiVzIicgJSBzZWxmLnJlYWxtKQorICAgICAgICByZXR1cm4gSFRUUFVuYXV0aG9yaXplZChoZWFkZXJzPWhlYWQpCisKKyAgICBkZWYgYXV0aGVudGljYXRlKHNlbGYsIGVudmlyb24pOgorICAgICAgICBhdXRob3JpemF0aW9uID0gQVVUSE9SSVpBVElPTihlbnZpcm9uKQorICAgICAgICBpZiBub3QgYXV0aG9yaXphdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmJ1aWxkX2F1dGhlbnRpY2F0aW9uKCkKKyAgICAgICAgKGF1dGhtZXRoLCBhdXRoKSA9IGF1dGhvcml6YXRpb24uc3BsaXQoJyAnLCAxKQorICAgICAgICBpZiAnYmFzaWMnICE9IGF1dGhtZXRoLmxvd2VyKCk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5idWlsZF9hdXRoZW50aWNhdGlvbigpCisgICAgICAgIGF1dGggPSBhdXRoLnN0cmlwKCkuZGVjb2RlKCdiYXNlNjQnKQorICAgICAgICB1c2VybmFtZSwgcGFzc3dvcmQgPSBhdXRoLnNwbGl0KCc6JywgMSkKKyAgICAgICAgaWYgc2VsZi5hdXRoZnVuYyhlbnZpcm9uLCB1c2VybmFtZSwgcGFzc3dvcmQpOgorICAgICAgICAgICAgcmV0dXJuIHVzZXJuYW1lCisgICAgICAgIHJldHVybiBzZWxmLmJ1aWxkX2F1dGhlbnRpY2F0aW9uKCkKKworICAgIF9fY2FsbF9fID0gYXV0aGVudGljYXRlCisKK2NsYXNzIEF1dGhCYXNpY0hhbmRsZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBIVFRQLzEuMCBgYEJhc2ljYGAgYXV0aGVudGljYXRpb24gbWlkZGxld2FyZQorCisgICAgUGFyYW1ldGVyczoKKworICAgICAgICBgYGFwcGxpY2F0aW9uYGAKKworICAgICAgICAgICAgVGhlIGFwcGxpY2F0aW9uIG9iamVjdCBpcyBjYWxsZWQgb25seSB1cG9uIHN1Y2Nlc3NmdWwKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uLCBhbmQgY2FuIGFzc3VtZSBgYGVudmlyb25bJ1JFTU9URV9VU0VSJ11gYAorICAgICAgICAgICAgaXMgc2V0LiAgSWYgdGhlIGBgUkVNT1RFX1VTRVJgYCBpcyBhbHJlYWR5IHNldCwgdGhpcworICAgICAgICAgICAgbWlkZGxld2FyZSBpcyBzaW1wbHkgcGFzcy10aHJvdWdoLgorCisgICAgICAgIGBgcmVhbG1gYAorCisgICAgICAgICAgICBUaGlzIGlzIGEgaWRlbnRpZmllciBmb3IgdGhlIGF1dGhvcml0eSB0aGF0IGlzIHJlcXVlc3RpbmcKKyAgICAgICAgICAgIGF1dGhvcml6YXRpb24uICBJdCBpcyBzaG93biB0byB0aGUgdXNlciBhbmQgc2hvdWxkIGJlIHVuaXF1ZQorICAgICAgICAgICAgd2l0aGluIHRoZSBkb21haW4gaXQgaXMgYmVpbmcgdXNlZC4KKworICAgICAgICBgYGF1dGhmdW5jYGAKKworICAgICAgICAgICAgVGhpcyBpcyBhIG1hbmRhdG9yeSB1c2VyLWRlZmluZWQgZnVuY3Rpb24gd2hpY2ggdGFrZXMgYQorICAgICAgICAgICAgYGBlbnZpcm9uYGAsIGBgdXNlcm5hbWVgYCBhbmQgYGBwYXNzd29yZGBgIGZvciBpdHMgZmlyc3QKKyAgICAgICAgICAgIHRocmVlIGFyZ3VtZW50cy4gIEl0IHNob3VsZCByZXR1cm4gYGBUcnVlYGAgaWYgdGhlIHVzZXIgaXMKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0ZWQuCisKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwbGljYXRpb24sIHJlYWxtLCBhdXRoZnVuYyk6CisgICAgICAgIHNlbGYuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbgorICAgICAgICBzZWxmLmF1dGhlbnRpY2F0ZSA9IEF1dGhCYXNpY0F1dGhlbnRpY2F0b3IocmVhbG0sIGF1dGhmdW5jKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgdXNlcm5hbWUgPSBSRU1PVEVfVVNFUihlbnZpcm9uKQorICAgICAgICBpZiBub3QgdXNlcm5hbWU6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmF1dGhlbnRpY2F0ZShlbnZpcm9uKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIHN0cik6CisgICAgICAgICAgICAgICAgQVVUSF9UWVBFLnVwZGF0ZShlbnZpcm9uLCAnYmFzaWMnKQorICAgICAgICAgICAgICAgIFJFTU9URV9VU0VSLnVwZGF0ZShlbnZpcm9uLCByZXN1bHQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK21pZGRsZXdhcmUgPSBBdXRoQmFzaWNIYW5kbGVyCisKK19fYWxsX18gPSBbJ0F1dGhCYXNpY0hhbmRsZXInXQorCitkZWYgbWFrZV9iYXNpYyhhcHAsIGdsb2JhbF9jb25mLCByZWFsbSwgYXV0aGZ1bmMsICoqa3cpOgorICAgICIiIgorICAgIEdyYW50IGFjY2VzcyB2aWEgYmFzaWMgYXV0aGVudGljYXRpb24KKworICAgIENvbmZpZyBsb29rcyBsaWtlIHRoaXM6OgorCisgICAgICBbZmlsdGVyOmdyYW50XQorICAgICAgdXNlID0gZWdnOlBhc3RlI2F1dGhfYmFzaWMKKyAgICAgIHJlYWxtPW15cmVhbG0KKyAgICAgIGF1dGhmdW5jPXNvbWVwYWNrYWdlLnNvbWVtb2R1bGU6c29tZWZ1bmN0aW9uCisKKyAgICAiIiIKKyAgICBmcm9tIHBhc3RlLnV0aWwuaW1wb3J0X3N0cmluZyBpbXBvcnQgZXZhbF9pbXBvcnQKKyAgICBpbXBvcnQgdHlwZXMKKyAgICBhdXRoZnVuYyA9IGV2YWxfaW1wb3J0KGF1dGhmdW5jKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGF1dGhmdW5jLCB0eXBlcy5GdW5jdGlvblR5cGUpLCAiYXV0aGZ1bmMgbXVzdCByZXNvbHZlIHRvIGEgZnVuY3Rpb24iCisgICAgcmV0dXJuIEF1dGhCYXNpY0hhbmRsZXIoYXBwLCByZWFsbSwgYXV0aGZ1bmMpCisKKworaWYgIl9fbWFpbl9fIiA9PSBfX25hbWVfXzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZChvcHRpb25mbGFncz1kb2N0ZXN0LkVMTElQU0lTKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvY2FzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvY2FzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0ZTRlOTgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9jYXMucHkKQEAgLTAsMCArMSw5OSBAQAorIyAoYykgMjAwNSBDbGFyayBDLiBFdmFucworIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIyBUaGlzIGNvZGUgd2FzIHdyaXR0ZW4gd2l0aCBmdW5kaW5nIGJ5IGh0dHA6Ly9wcm9tZXRoZXVzcmVzZWFyY2guY29tCisiIiIKK0NBUyAxLjAgQXV0aGVudGljYXRpb24KKworVGhlIENlbnRyYWwgQXV0aGVudGljYXRpb24gU3lzdGVtIGlzIGEgc3RyYWlnaHQtZm9yd2FyZCBzaW5nbGUgc2lnbi1vbgorbWVjaGFuaXNtIGRldmVsb3BlZCBieSBZYWxlIFVuaXZlcnNpdHkncyBJVFMgZGVwYXJ0bWVudC4gIEl0IGhhcyBzaW5jZQorZW5qb3llZCB3aWRlc3ByZWFkIHN1Y2Nlc3MgYW5kIGlzIGRlcGxveWVkIGF0IG1hbnkgbWFqb3IgdW5pdmVyc2l0aWVzCithbmQgc29tZSBjb3Jwb3JhdGlvbnMuCisKKyAgICBodHRwczovL2NsZWFyaW5naG91c2UuamEtc2lnLm9yZy93aWtpL2Rpc3BsYXkvQ0FTL0hvbWUKKyAgICBodHRwOi8vd3d3LnlhbGUuZWR1L3RwL2F1dGgvdXNpbmdjYXNhdHlhbGUuaHRtbAorCitUaGlzIGltcGxlbWVudGF0aW9uIGhhcyB0aGUgZ29hbCBvZiBtYWludGFpbmluZyBjdXJyZW50IHBhdGggYXJndW1lbnRzCitwYXNzZWQgdG8gdGhlIHN5c3RlbSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGFzIG1pZGRsZXdhcmUgYXQgYW55IHN0YWdlCitvZiBwcm9jZXNzaW5nLiAgSXQgaGFzIHRoZSBzZWNvbmRhcnkgZ29hbCBvZiBhbGxvd2luZyBmb3Igb3RoZXIKK2F1dGhlbnRpY2F0aW9uIG1ldGhvZHMgdG8gYmUgdXNlZCBjb25jdXJyZW50bHkuCisiIiIKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsZW5jb2RlCitmcm9tIHBhc3RlLnJlcXVlc3QgaW1wb3J0IGNvbnN0cnVjdF91cmwKK2Zyb20gcGFzdGUuaHR0cGV4Y2VwdGlvbnMgaW1wb3J0IEhUVFBTZWVPdGhlciwgSFRUUEZvcmJpZGRlbgorCitjbGFzcyBDQVNMb2dpbkZhaWx1cmUoSFRUUEZvcmJpZGRlbik6CisgICAgIiIiIFRoZSBleGNlcHRpb24gcmFpc2VkIGlmIHRoZSBhdXRob3JpdHkgcmV0dXJucyAnbm8nICIiIgorCitjbGFzcyBDQVNBdXRoZW50aWNhdGUoSFRUUFNlZU90aGVyKToKKyAgICAiIiIgVGhlIGV4Y2VwdGlvbiByYWlzZWQgdG8gYXV0aGVudGljYXRlIHRoZSB1c2VyICIiIgorCitkZWYgQXV0aENBU0hhbmRsZXIoYXBwbGljYXRpb24sIGF1dGhvcml0eSk6CisgICAgIiIiCisgICAgbWlkZGxld2FyZSB0byBpbXBsZW1lbnQgQ0FTIDEuMCBhdXRoZW50aWNhdGlvbgorCisgICAgVGhlcmUgYXJlIHNldmVyYWwgcG9zc2libGUgb3V0Y29tZXM6CisKKyAgICAwLiBJZiB0aGUgUkVNT1RFX1VTRVIgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgYWxyZWFkeSBwb3B1bGF0ZWQ7CisgICAgICAgdGhlbiB0aGlzIG1pZGRsZXdhcmUgaXMgYSBuby1vcCwgYW5kIHRoZSByZXF1ZXN0IGlzIHBhc3NlZCBhbG9uZworICAgICAgIHRvIHRoZSBhcHBsaWNhdGlvbi4KKworICAgIDEuIElmIGEgcXVlcnkgYXJndW1lbnQgJ3RpY2tldCcgaXMgZm91bmQsIHRoZW4gYW4gYXR0ZW1wdCB0bworICAgICAgIHZhbGlkYXRlIHNhaWQgdGlja2V0IC93IHRoZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlIGRvbmUuICBJZiB0aGUKKyAgICAgICB0aWNrZXQgaXMgbm90IHZhbGlkYXRlZDsgYW4gNDAzICdGb3JiaWRkZW4nIGV4Y2VwdGlvbiBpcyByYWlzZWQuCisgICAgICAgT3RoZXJ3aXNlLCB0aGUgUkVNT1RFX1VTRVIgdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIE5ldElEIHRoYXQKKyAgICAgICB3YXMgdmFsaWRhdGVkIGFuZCBBVVRIX1RZUEUgaXMgc2V0IHRvICJjYXMiLgorCisgICAgMi4gT3RoZXJ3aXNlLCBhIDMwMyAnU2VlIE90aGVyJyBpcyByZXR1cm5lZCB0byB0aGUgY2xpZW50IGRpcmVjdGluZworICAgICAgIHRoZW0gdG8gbG9naW4gdXNpbmcgdGhlIENBUyBzZXJ2aWNlLiAgQWZ0ZXIgbG9nb24sIHRoZSBzZXJ2aWNlCisgICAgICAgd2lsbCBzZW5kIHRoZW0gYmFjayB0byB0aGlzIHNhbWUgVVJMLCBvbmx5IHdpdGggYSAndGlja2V0JyBxdWVyeQorICAgICAgIGFyZ3VtZW50LgorCisgICAgUGFyYW1ldGVyczoKKworICAgICAgICBgYGF1dGhvcml0eWBgCisKKyAgICAgICAgICAgIFRoaXMgaXMgYSBmdWxseS1xdWFsaWZpZWQgVVJMIHRvIGEgQ0FTIDEuMCBzZXJ2aWNlLiBUaGUgVVJMCisgICAgICAgICAgICBzaG91bGQgZW5kIHdpdGggYSAnLycgYW5kIGhhdmUgdGhlICdsb2dpbicgYW5kICd2YWxpZGF0ZScKKyAgICAgICAgICAgIHN1Yi1wYXRocyBhcyBkZXNjcmliZWQgaW4gdGhlIENBUyAxLjAgZG9jdW1lbnRhdGlvbi4KKworICAgICIiIgorICAgIGFzc2VydCBhdXRob3JpdHkuZW5kc3dpdGgoIi8iKSBhbmQgYXV0aG9yaXR5LnN0YXJ0c3dpdGgoImh0dHAiKQorICAgIGRlZiBjYXNfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICB1c2VybmFtZSA9IGVudmlyb24uZ2V0KCdSRU1PVEVfVVNFUicsJycpCisgICAgICAgIGlmIHVzZXJuYW1lOgorICAgICAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBxcyA9IGVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnLCcnKS5zcGxpdCgiJiIpCisgICAgICAgIGlmIHFzIGFuZCBxc1stMV0uc3RhcnRzd2l0aCgidGlja2V0PSIpOgorICAgICAgICAgICAgIyBhc3N1bWUgYSByZXNwb25zZSBmcm9tIHRoZSBhdXRob3JpdHkKKyAgICAgICAgICAgIHRpY2tldCA9IHFzLnBvcCgpLnNwbGl0KCI9IiwgMSlbMV0KKyAgICAgICAgICAgIGVudmlyb25bJ1FVRVJZX1NUUklORyddID0gIiYiLmpvaW4ocXMpCisgICAgICAgICAgICBzZXJ2aWNlID0gY29uc3RydWN0X3VybChlbnZpcm9uKQorICAgICAgICAgICAgYXJncyA9IHVybGVuY29kZSgKKyAgICAgICAgICAgICAgICAgICAgeydzZXJ2aWNlJzogc2VydmljZSwndGlja2V0JzogdGlja2V0fSkKKyAgICAgICAgICAgIHJlcXVybCA9IGF1dGhvcml0eSArICJ2YWxpZGF0ZT8iICsgYXJncworICAgICAgICAgICAgcmVzdWx0ID0gdXJsb3BlbihyZXF1cmwpLnJlYWQoKS5zcGxpdCgiXG4iKQorICAgICAgICAgICAgaWYgJ3llcycgPT0gcmVzdWx0WzBdOgorICAgICAgICAgICAgICAgIGVudmlyb25bJ1JFTU9URV9VU0VSJ10gPSByZXN1bHRbMV0KKyAgICAgICAgICAgICAgICBlbnZpcm9uWydBVVRIX1RZUEUnXSA9ICdjYXMnCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgZXhjZSA9IENBU0xvZ2luRmFpbHVyZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZXJ2aWNlID0gY29uc3RydWN0X3VybChlbnZpcm9uKQorICAgICAgICAgICAgYXJncyA9IHVybGVuY29kZSh7J3NlcnZpY2UnOiBzZXJ2aWNlfSkKKyAgICAgICAgICAgIGxvY2F0aW9uID0gYXV0aG9yaXR5ICsgImxvZ2luPyIgKyBhcmdzCisgICAgICAgICAgICBleGNlID0gQ0FTQXV0aGVudGljYXRlKGxvY2F0aW9uKQorICAgICAgICByZXR1cm4gZXhjZS53c2dpX2FwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgIHJldHVybiBjYXNfYXBwbGljYXRpb24KKworbWlkZGxld2FyZSA9IEF1dGhDQVNIYW5kbGVyCisKK19fYWxsX18gPSBbJ0NBU0xvZ2luRmFpbHVyZScsICdDQVNBdXRoZW50aWNhdGUnLCAnQXV0aENBU0hhbmRsZXInIF0KKworaWYgJ19fbWFpbl9fJyA9PSBfX25hbWVfXzoKKyAgICBhdXRob3JpdHkgPSAiaHR0cHM6Ly9zZWN1cmUuaXRzLnlhbGUuZWR1L2Nhcy9zZXJ2bGV0LyIKKyAgICBmcm9tIHBhc3RlLndzZ2lsaWIgaW1wb3J0IGR1bXBfZW52aXJvbgorICAgIGZyb20gcGFzdGUuaHR0cHNlcnZlciBpbXBvcnQgc2VydmUKKyAgICBmcm9tIHBhc3RlLmh0dHBleGNlcHRpb25zIGltcG9ydCAqCisgICAgc2VydmUoSFRUUEV4Y2VwdGlvbkhhbmRsZXIoCisgICAgICAgICAgICAgQXV0aENBU0hhbmRsZXIoZHVtcF9lbnZpcm9uLCBhdXRob3JpdHkpKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2Nvb2tpZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2Nvb2tpZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjExZDFiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvY29va2llLnB5CkBAIC0wLDAgKzEsNDA1IEBACisjIChjKSAyMDA1IENsYXJrIEMuIEV2YW5zCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFRoaXMgY29kZSB3YXMgd3JpdHRlbiB3aXRoIGZ1bmRpbmcgYnkgaHR0cDovL3Byb21ldGhldXNyZXNlYXJjaC5jb20KKyIiIgorQ29va2llICJTYXZlZCIgQXV0aGVudGljYXRpb24KKworVGhpcyBhdXRoZW50aWNhdGlvbiBtaWRkbGV3YXJlIHNhdmVzIHRoZSBjdXJyZW50IFJFTU9URV9VU0VSLAorUkVNT1RFX1NFU1NJT04sIGFuZCBhbnkgb3RoZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHNwZWNpZmllZCBpbiBhCitjb29raWUgc28gdGhhdCBpdCBjYW4gYmUgcmV0cmlldmVkIGR1cmluZyB0aGUgbmV4dCByZXF1ZXN0IHdpdGhvdXQKK3JlcXVpcmluZyByZS1hdXRoZW50aWNhdGlvbi4gVGhpcyB1c2VzIGEgc2Vzc2lvbiBjb29raWUgb24gdGhlIGNsaWVudAorc2lkZSAoc28gaXQgZ29lcyBhd2F5IHdoZW4gdGhlIHVzZXIgY2xvc2VzIHRoZWlyIHdpbmRvdykgYW5kIGRvZXMKK3NlcnZlci1zaWRlIGV4cGlyYXRpb24uCisKK0ZvbGxvd2luZyBpcyBhIHZlcnkgc2ltcGxlIGV4YW1wbGUgd2hlcmUgYSBmb3JtIGlzIHByZXNlbnRlZCBhc2tpbmcgZm9yCithIHVzZXIgbmFtZSAobm8gYWN0dWFsIGNoZWNraW5nKSwgYW5kIGR1bW15IHNlc3Npb24gaWRlbnRpZmllciAocGVyaGFwcworY29ycmVzcG9uZGluZyB0byBhIGRhdGFiYXNlIHNlc3Npb24gaWQpIGlzIHN0b3JlZCBpbiB0aGUgY29va2llLgorCis6OgorCisgID4+PiBmcm9tIHBhc3RlLmh0dHBzZXJ2ZXIgaW1wb3J0IHNlcnZlCisgID4+PiBmcm9tIHBhc3RlLmZpbGVhcHAgaW1wb3J0IERhdGFBcHAKKyAgPj4+IGZyb20gcGFzdGUuaHR0cGV4Y2VwdGlvbnMgaW1wb3J0ICoKKyAgPj4+IGZyb20gcGFzdGUuYXV0aC5jb29raWUgaW1wb3J0IEF1dGhDb29raWVIYW5kbGVyCisgID4+PiBmcm9tIHBhc3RlLndzZ2lsaWIgaW1wb3J0IHBhcnNlX3F1ZXJ5c3RyaW5nCisgID4+PiBkZWYgdGVzdGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgIC4uLiAgICAgdXNlciA9IGRpY3QocGFyc2VfcXVlcnlzdHJpbmcoZW52aXJvbikpLmdldCgndXNlcicsJycpCisgIC4uLiAgICAgaWYgdXNlcjoKKyAgLi4uICAgICAgICAgZW52aXJvblsnUkVNT1RFX1VTRVInXSA9IHVzZXIKKyAgLi4uICAgICAgICAgZW52aXJvblsnUkVNT1RFX1NFU1NJT04nXSA9ICdhLXNlc3Npb24taWQnCisgIC4uLiAgICAgaWYgZW52aXJvbi5nZXQoJ1JFTU9URV9VU0VSJyk6CisgIC4uLiAgICAgICAgIHBhZ2UgPSAnPGh0bWw+PGJvZHk+V2VsY29tZSAlcyAoJXMpPC9ib2R5PjwvaHRtbD4nCisgIC4uLiAgICAgICAgIHBhZ2UgJT0gKGVudmlyb25bJ1JFTU9URV9VU0VSJ10sIGVudmlyb25bJ1JFTU9URV9TRVNTSU9OJ10pCisgIC4uLiAgICAgZWxzZToKKyAgLi4uICAgICAgICAgcGFnZSA9ICgnPGh0bWw+PGJvZHk+PGZvcm0+PGlucHV0IG5hbWU9InVzZXIiIC8+JworICAuLi4gICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjwvZm9ybT48L2JvZHk+PC9odG1sPicpCisgIC4uLiAgICAgcmV0dXJuIERhdGFBcHAocGFnZSwgY29udGVudF90eXBlPSJ0ZXh0L2h0bWwiKSgKKyAgLi4uICAgICAgICAgICAgICAgICAgICBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgPj4+IHNlcnZlKEF1dGhDb29raWVIYW5kbGVyKHRlc3RhcHApKQorICBzZXJ2aW5nIG9uLi4uCisKKyIiIgorCitpbXBvcnQgaG1hYywgYmFzZTY0LCByYW5kb20sIHNpeCwgdGltZSwgd2FybmluZ3MKK3RyeToKKyAgICBmcm9tIGhhc2hsaWIgaW1wb3J0IHNoYTEKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIE5PVEU6IFdlIGhhdmUgdG8gdXNlIHRoZSBjYWxsYWJsZSB3aXRoIGhhc2hsaWIgKGhhc2hsaWIuc2hhMSksCisgICAgIyBvdGhlcndpc2UgaG1hYyBvbmx5IGFjY2VwdHMgdGhlIHNoYSBtb2R1bGUgb2JqZWN0IGl0c2VsZgorICAgIGltcG9ydCBzaGEgYXMgc2hhMQorZnJvbSBwYXN0ZS5yZXF1ZXN0IGltcG9ydCBnZXRfY29va2llcworCitkZWYgbWFrZV90aW1lKHZhbHVlKToKKyAgICByZXR1cm4gdGltZS5zdHJmdGltZSgiJVklbSVkJUglTSIsIHRpbWUuZ210aW1lKHZhbHVlKSkKK19zaWduYXR1cmVfc2l6ZSA9IGxlbihobWFjLm5ldyhiJ3gnLCBiJ3gnLCBzaGExKS5kaWdlc3QoKSkKK19oZWFkZXJfc2l6ZSA9IF9zaWduYXR1cmVfc2l6ZSArIGxlbihtYWtlX3RpbWUodGltZS50aW1lKCkpKQorCisjIEBAOiBTaG91bGQgdGhpcyBiZSB1c2luZyB1cmxsaWIucXVvdGU/CisjIGJ1aWxkIGVuY29kZS9kZWNvZGUgZnVuY3Rpb25zIHRvIHNhZmVseSBwYWNrIGF3YXkgdmFsdWVzCitfZW5jb2RlID0gWygnXFwnLCAnXFx4NWMnKSwgKCciJywgJ1xceDIyJyksCisgICAgICAgICAgICgnPScsICdcXHgzZCcpLCAoJzsnLCAnXFx4M2InKV0KK19kZWNvZGUgPSBbKHYsIGspIGZvciAoaywgdikgaW4gX2VuY29kZV0KK19kZWNvZGUucmV2ZXJzZSgpCitkZWYgZW5jb2RlKHMsIHN1Ymxpc3QgPSBfZW5jb2RlKToKKyAgICByZXR1cm4gc2l4Lm1vdmVzLnJlZHVjZSgobGFtYmRhIGEsIGI6IGEucmVwbGFjZShiWzBdLCBiWzFdKSksIHN1Ymxpc3QsIHN0cihzKSkKK2RlY29kZSA9IGxhbWJkYSBzOiBlbmNvZGUocywgX2RlY29kZSkKKworY2xhc3MgQ29va2llVG9vTGFyZ2UoUnVudGltZUVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29udGVudCwgY29va2llKToKKyAgICAgICAgUnVudGltZUVycm9yLl9faW5pdF9fKCJTaWduZWQgY29va2llIGV4Y2VlZHMgbWF4aW11bSBzaXplIG9mIDQwOTYiKQorICAgICAgICBzZWxmLmNvbnRlbnQgPSBjb250ZW50CisgICAgICAgIHNlbGYuY29va2llID0gY29va2llCisKK19hbGxfY2hhcnMgPSAnJy5qb2luKFtjaHIoeCkgZm9yIHggaW4gcmFuZ2UoMCwgMjU1KV0pCitkZWYgbmV3X3NlY3JldCgpOgorICAgICIiIiByZXR1cm5zIGEgNjQgYnl0ZSBzZWNyZXQgIiIiCisgICAgc2VjcmV0ID0gJycuam9pbihyYW5kb20uc2FtcGxlKF9hbGxfY2hhcnMsIDY0KSkKKyAgICBpZiBzaXguUFkzOgorICAgICAgICBzZWNyZXQgPSBzZWNyZXQuZW5jb2RlKCd1dGY4JykKKyAgICByZXR1cm4gc2VjcmV0CisKK2NsYXNzIEF1dGhDb29raWVTaWduZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBzYXZlL3Jlc3RvcmUgYGBlbnZpcm9uYGAgZW50cmllcyB2aWEgZGlnaWFsbHkgc2lnbmVkIGNvb2tpZQorCisgICAgVGhpcyBjbGFzcyBjb252ZXJ0cyBjb250ZW50IGludG8gYSB0aW1lZCBhbmQgZGlnaXRhbGx5IHNpZ25lZAorICAgIGNvb2tpZSwgYXMgd2VsbCBhcyBoYXZpbmcgdGhlIGZhY2lsaXR5IHRvIHJldmVyc2UgdGhpcyBwcm9jZWR1cmUuCisgICAgSWYgdGhlIGNvb2tpZSwgYWZ0ZXIgdGhlIGNvbnRlbnQgaXMgZW5jb2RlZCBhbmQgc2lnbmVkIGV4Y2VlZHMgdGhlCisgICAgbWF4aW11bSBsZW5ndGggKDQwOTYpLCB0aGVuIENvb2tpZVRvb0xhcmdlIGV4Y2VwdGlvbiBpcyByYWlzZWQuCisKKyAgICBUaGUgdGltZW91dCBvZiB0aGUgY29va2llIGlzIGhhbmRsZWQgb24gdGhlIHNlcnZlciBzaWRlIGZvciBhIGZldworICAgIHJlYXNvbnMuICBGaXJzdCwgaWYgYSAnRXhwaXJlcycgZGlyZWN0aXZlIGlzIGFkZGVkIHRvIGEgY29va2llLCB0aGVuCisgICAgdGhlIGNvb2tpZSBiZWNvbWVzIHBlcnNpc3RlbnQgKGxhc3RpbmcgZXZlbiBhZnRlciB0aGUgYnJvd3NlciB3aW5kb3cKKyAgICBoYXMgY2xvc2VkKS4gU2Vjb25kLCB0aGUgdXNlcidzIGNsb2NrIG1heSBiZSB3cm9uZyAocGVyaGFwcworICAgIGludGVudGlvbmFsbHkpLiBUaGUgdGltZW91dCBpcyBzcGVjaWZpZWQgaW4gbWludXRlczsgYW5kIGV4cGlyYXRpb24KKyAgICBkYXRlIHJldHVybmVkIGlzIHJvdW5kZWQgdG8gb25lIHNlY29uZC4KKworICAgIENvbnN0cnVjdG9yIEFyZ3VtZW50czoKKworICAgICAgICBgYHNlY3JldGBgCisKKyAgICAgICAgICAgIFRoaXMgaXMgYSBzZWNyZXQga2V5IGlmIHlvdSB3YW50IHRvIHN5bmNyb25pemUgeW91ciBrZXlzIHNvCisgICAgICAgICAgICB0aGF0IHRoZSBjb29raWUgd2lsbCBiZSBnb29kIGFjcm9zcyBhIGNsdXN0ZXIgb2YgY29tcHV0ZXJzLgorICAgICAgICAgICAgSXQgaXMgcmVjb21tZW5kZWQgdmlhIHRoZSBITUFDIHNwZWNpZmljYXRpb24gKFJGQyAyMTA0KSB0aGF0CisgICAgICAgICAgICB0aGUgc2VjcmV0IGtleSBiZSA2NCBieXRlcyBzaW5jZSB0aGlzIGlzIHRoZSBibG9jayBzaXplIG9mCisgICAgICAgICAgICB0aGUgaGFzaGluZy4gIElmIHlvdSBkbyBub3QgcHJvdmlkZSBhIHNlY3JldCBrZXksIGEgcmFuZG9tCisgICAgICAgICAgICBvbmUgaXMgZ2VuZXJhdGVkIGVhY2ggdGltZSB5b3UgY3JlYXRlIHRoZSBoYW5kbGVyOyB0aGlzCisgICAgICAgICAgICBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgbW9zdCBjYXNlcy4KKworICAgICAgICBgYHRpbWVvdXRgYAorCisgICAgICAgICAgICBUaGlzIGlzIHRoZSB0aW1lIChpbiBtaW51dGVzKSBmcm9tIHdoaWNoIHRoZSBjb29raWUgaXMgc2V0CisgICAgICAgICAgICB0byBleHBpcmUuICBOb3RlIHRoYXQgb24gZWFjaCByZXF1ZXN0IGEgbmV3IChyZXBsYWNlbWVudCkKKyAgICAgICAgICAgIGNvb2tpZSBpcyBzZW50LCBoZW5jZSB0aGlzIGlzIGVmZmVjdGl2ZWx5IGEgc2Vzc2lvbiB0aW1lb3V0CisgICAgICAgICAgICBwYXJhbWV0ZXIgZm9yIHlvdXIgZW50aXJlIGNsdXN0ZXIuICBJZiB5b3UgZG8gbm90IHByb3ZpZGUgYQorICAgICAgICAgICAgdGltZW91dCwgaXQgaXMgc2V0IGF0IDMwIG1pbnV0ZXMuCisKKyAgICAgICAgYGBtYXhsZW5gYAorCisgICAgICAgICAgICBUaGlzIGlzIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlICpzaWduZWQqIGNvb2tpZTsgaGVuY2UgdGhlCisgICAgICAgICAgICBhY3R1YWwgY29udGVudCBzaWduZWQgd2lsbCBiZSBzb21ld2hhdCBsZXNzLiAgSWYgdGhlIGNvb2tpZQorICAgICAgICAgICAgZ29lcyBvdmVyIHRoaXMgc2l6ZSwgYSBgYENvb2tpZVRvb0xhcmdlYGAgZXhjZXB0aW9uIGlzCisgICAgICAgICAgICByYWlzZWQgc28gdGhhdCB1bmV4cGVjdGVkIGhhbmRsaW5nIG9mIGNvb2tpZXMgb24gdGhlIGNsaWVudAorICAgICAgICAgICAgc2lkZSBhcmUgYXZvaWRlZC4gIEJ5IGRlZmF1bHQgdGhpcyBpcyBzZXQgYXQgNGsgKDQwOTYgYnl0ZXMpLAorICAgICAgICAgICAgd2hpY2ggaXMgdGhlIHN0YW5kYXJkIGNvb2tpZSBzaXplIGxpbWl0LgorCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlY3JldCA9IE5vbmUsIHRpbWVvdXQgPSBOb25lLCBtYXhsZW4gPSBOb25lKToKKyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCBvciAzMAorICAgICAgICBpZiBpc2luc3RhbmNlKHRpbWVvdXQsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAiVGltZW91dCBtdXN0IGJlIGEgbnVtYmVyIChtaW51dGVzKSwgbm90IGEgc3RyaW5nICglcikiCisgICAgICAgICAgICAgICAgJSB0aW1lb3V0KQorICAgICAgICBzZWxmLm1heGxlbiAgPSBtYXhsZW4gb3IgNDA5NgorICAgICAgICBzZWxmLnNlY3JldCA9IHNlY3JldCBvciBuZXdfc2VjcmV0KCkKKworICAgIGRlZiBzaWduKHNlbGYsIGNvbnRlbnQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2lnbiB0aGUgY29udGVudCByZXR1cm5pbmcgYSB2YWxpZCBjb29raWUgKHRoYXQgZG9lcyBub3QKKyAgICAgICAgbmVlZCB0byBiZSBlc2NhcGVkIGFuZCBxdW90ZWQpLiAgVGhlIGV4cGlyYXRpb24gb2YgdGhpcworICAgICAgICBjb29raWUgaXMgaGFuZGxlZCBzZXJ2ZXItc2lkZSBpbiB0aGUgYXV0aCgpIGZ1bmN0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgdGltZXN0YW1wID0gbWFrZV90aW1lKHRpbWUudGltZSgpICsgNjAqc2VsZi50aW1lb3V0KQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIHRpbWVzdGFtcCA9IHRpbWVzdGFtcC5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICBjb29raWUgPSBiYXNlNjQuZW5jb2Rlc3RyaW5nKAorICAgICAgICAgICAgaG1hYy5uZXcoc2VsZi5zZWNyZXQsIGNvbnRlbnQsIHNoYTEpLmRpZ2VzdCgpICsKKyAgICAgICAgICAgIHRpbWVzdGFtcCArCisgICAgICAgICAgICBjb250ZW50KQorICAgICAgICBjb29raWUgPSBjb29raWUucmVwbGFjZShiIi8iLCBiIl8iKS5yZXBsYWNlKGIiPSIsIGIifiIpCisgICAgICAgIGNvb2tpZSA9IGNvb2tpZS5yZXBsYWNlKGInXG4nLCBiJycpLnJlcGxhY2UoYidccicsIGInJykKKyAgICAgICAgaWYgbGVuKGNvb2tpZSkgPiBzZWxmLm1heGxlbjoKKyAgICAgICAgICAgIHJhaXNlIENvb2tpZVRvb0xhcmdlKGNvbnRlbnQsIGNvb2tpZSkKKyAgICAgICAgcmV0dXJuIGNvb2tpZQorCisgICAgZGVmIGF1dGgoc2VsZiwgY29va2llKToKKyAgICAgICAgIiIiCisgICAgICAgIEF1dGhlbnRpY2F0ZSB0aGUgY29va2UgdXNpbmcgdGhlIHNpZ25hdHVyZSwgdmVyaWZ5IHRoYXQgaXQKKyAgICAgICAgaGFzIG5vdCBleHBpcmVkOyBhbmQgcmV0dXJuIHRoZSBjb29raWUncyBjb250ZW50CisgICAgICAgICIiIgorICAgICAgICBkZWNvZGUgPSBiYXNlNjQuZGVjb2Rlc3RyaW5nKAorICAgICAgICAgICAgY29va2llLnJlcGxhY2UoIl8iLCAiLyIpLnJlcGxhY2UoIn4iLCAiPSIpKQorICAgICAgICBzaWduYXR1cmUgPSBkZWNvZGVbOl9zaWduYXR1cmVfc2l6ZV0KKyAgICAgICAgZXhwaXJlcyA9IGRlY29kZVtfc2lnbmF0dXJlX3NpemU6X2hlYWRlcl9zaXplXQorICAgICAgICBjb250ZW50ID0gZGVjb2RlW19oZWFkZXJfc2l6ZTpdCisgICAgICAgIGlmIHNpZ25hdHVyZSA9PSBobWFjLm5ldyhzZWxmLnNlY3JldCwgY29udGVudCwgc2hhMSkuZGlnZXN0KCk6CisgICAgICAgICAgICBpZiBpbnQoZXhwaXJlcykgPiBpbnQobWFrZV90aW1lKHRpbWUudGltZSgpKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBub3JtYWwgY2FzZSBvZiBhbiBleHBpcmVkIGNvb2tpZTsganVzdAorICAgICAgICAgICAgICAgICMgZG9uJ3QgYm90aGVyIGRvaW5nIGFueXRoaW5nIGhlcmUuCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBUaGlzIGNhc2UgY2FuIGhhcHBlbiBpZiB0aGUgc2VydmVyIGlzIHJlc3RhcnRlZCB3aXRoIGEKKyAgICAgICAgICAgICMgZGlmZmVyZW50IHNlY3JldDsgb3IgaWYgdGhlIHVzZXIncyBJUCBhZGRyZXNzIGNoYW5nZWQKKyAgICAgICAgICAgICMgZHVlIHRvIGEgcHJveHkuICBIb3dldmVyLCBpdCBjb3VsZCBhbHNvIGJlIGEgYnJlYWstaW4KKyAgICAgICAgICAgICMgYXR0ZW1wdCAtLSBzbyBzaG91bGQgaXQgYmUgcmVwb3J0ZWQ/CisgICAgICAgICAgICBwYXNzCisKK2NsYXNzIEF1dGhDb29raWVFbnZpcm9uKGxpc3QpOgorICAgICIiIgorICAgIGEgbGlzdCBvZiBlbnZpcm9ubWVudCBrZXlzIHRvIGJlIHNhdmVkIHZpYSBjb29raWUKKworICAgIEFuIGluc3RhbmNlIG9mIHRoaXMgb2JqZWN0LCBmb3VuZCBhdCBgYGVudmlyb25bJ3Bhc3RlLmF1dGguY29va2llJ11gYAorICAgIGxpc3RzIHRoZSBgZW52aXJvbmAga2V5cyB0aGF0IHdlcmUgcmVzdG9yZWQgZnJvbSBvciB3aWxsIGJlIGFkZGVkCisgICAgdG8gdGhlIGRpZ2lhbGx5IHNpZ25lZCBjb29raWUuICBUaGlzIG9iamVjdCBjYW4gYmUgYWNjZXNzZWQgZnJvbSBhbgorICAgIGBlbnZpcm9uYCB2YXJpYWJsZSBieSB1c2luZyB0aGlzIG1vZHVsZSdzIG5hbWUuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhhbmRsZXIsIHNjYW5saXN0KToKKyAgICAgICAgbGlzdC5fX2luaXRfXyhzZWxmLCBzY2FubGlzdCkKKyAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgorICAgIGRlZiBhcHBlbmQoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiB2YWx1ZSBpbiBzZWxmOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGxpc3QuYXBwZW5kKHNlbGYsIHN0cih2YWx1ZSkpCisKK2NsYXNzIEF1dGhDb29raWVIYW5kbGVyKG9iamVjdCk6CisgICAgIiIiCisgICAgdGhlIGFjdHVhbCBoYW5kbGVyIHRoYXQgc2hvdWxkIGJlIHB1dCBpbiB5b3VyIG1pZGRsZXdhcmUgc3RhY2sKKworICAgIFRoaXMgbWlkZGxld2FyZSB1c2VzIGNvb2tpZXMgdG8gc3Rhc2gtYXdheSBhIHByZXZpb3VzbHkgYXV0aGVudGljYXRlZAorICAgIHVzZXIgKGFuZCBwZXJoYXBzIG90aGVyIHZhcmlhYmxlcykgc28gdGhhdCByZS1hdXRoZW50aWNhdGlvbiBpcyBub3QKKyAgICBuZWVkZWQuICBUaGlzIGRvZXMgbm90IGltcGxlbWVudCBzZXNzaW9uczsgYW5kIHRoZXJlZm9yZSBOIHNlcnZlcnMKKyAgICBjYW4gYmUgc3luY3Jvbml6ZWQgdG8gYWNjZXB0IHRoZSBzYW1lIHNhdmVkIGF1dGhlbnRpY2F0aW9uIGlmIHRoZXkKKyAgICBhbGwgdXNlIHRoZSBzYW1lIGNvb2tpZV9uYW1lIGFuZCBzZWNyZXQuCisKKyAgICBCeSBkZWZhdWx0LCB0aGlzIGhhbmRsZXIgc2NhbnMgdGhlIGBlbnZpcm9uYCBmb3IgdGhlIFJFTU9URV9VU0VSCisgICAgYW5kIFJFTU9URV9TRVNTSU9OIGtleTsgaWYgZm91bmQsIGl0IGlzIHN0b3JlZC4gSXQgY2FuIGJlCisgICAgY29uZmlndXJlZCB0byBzY2FuIG90aGVyIGBlbnZpcm9uYCBrZXlzIGFzIHdlbGwgLS0gYnV0IGJlIGNhcmVmdWwKKyAgICBub3QgdG8gZXhjZWVkIDItM2sgKHNvIHRoYXQgdGhlIGVuY29kZWQgYW5kIHNpZ25lZCBjb29raWUgZG9lcyBub3QKKyAgICBleGNlZWQgNGspLiBZb3UgY2FuIGFzayBpdCB0byBoYW5kbGUgb3RoZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgYnkgZG9pbmc6CisKKyAgICAgICBgYGVudmlyb25bJ3Bhc3RlLmF1dGguY29va2llJ10uYXBwZW5kKCd5b3VyLmVudmlyb24udmFyaWFibGUnKWBgCisKKworICAgIENvbnN0cnVjdG9yIEFyZ3VtZW50czoKKworICAgICAgICBgYGFwcGxpY2F0aW9uYGAKKworICAgICAgICAgICAgVGhpcyBpcyB0aGUgd3JhcHBlZCBhcHBsaWNhdGlvbiB3aGljaCB3aWxsIGhhdmUgYWNjZXNzIHRvCisgICAgICAgICAgICB0aGUgYGBlbnZpcm9uWydSRU1PVEVfVVNFUiddYGAgcmVzdG9yZWQgYnkgdGhpcyBtaWRkbGV3YXJlLgorCisgICAgICAgIGBgY29va2llX25hbWVgYAorCisgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gc3RvcmUgdGhpcyBjb250ZW50LCBieSBkZWZhdWx0CisgICAgICAgICAgICBpdCBpcyBgYFBBU1RFX0FVVEhfQ09PS0lFYGAuCisKKyAgICAgICAgYGBzY2FubGlzdGBgCisKKyAgICAgICAgICAgIFRoaXMgaXMgdGhlIGluaXRpYWwgc2V0IG9mIGBgZW52aXJvbmBgIGtleXMgdG8KKyAgICAgICAgICAgIHNhdmUvcmVzdG9yZSB0byB0aGUgc2lnbmVkIGNvb2tpZS4gIEJ5IGRlZmF1bHQgaXMgY29uc2lzdHMKKyAgICAgICAgICAgIG9ubHkgb2YgYGBSRU1PVEVfVVNFUmBgIGFuZCBgYFJFTU9URV9TRVNTSU9OYGA7IGFueSB0dXBsZQorICAgICAgICAgICAgb3IgbGlzdCBvZiBlbnZpcm9ubWVudCBrZXlzIHdpbGwgd29yay4gIEhvd2V2ZXIsIGJlCisgICAgICAgICAgICBjYXJlZnVsLCBhcyB0aGUgdG90YWwgc2F2ZWQgc2l6ZSBpcyBsaW1pdGVkIHRvIGFyb3VuZCAzay4KKworICAgICAgICBgYHNpZ25lcmBgCisKKyAgICAgICAgICAgIFRoaXMgaXMgdGhlIHNpZ25lciBvYmplY3QgdXNlZCB0byBjcmVhdGUgdGhlIGFjdHVhbCBjb29raWUKKyAgICAgICAgICAgIHZhbHVlcywgYnkgZGVmYXVsdCwgaXQgaXMgYGBBdXRoQ29va2llU2lnbmVyYGAgYW5kIGlzIHBhc3NlZAorICAgICAgICAgICAgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMgdG8gdGhpcyBmdW5jdGlvbjogYGBzZWNyZXRgYCwKKyAgICAgICAgICAgIGBgdGltZW91dGBgLCBhbmQgYGBtYXhsZW5gYC4KKworICAgIEF0IHRoaXMgdGltZSwgZWFjaCBjb29raWUgaXMgaW5kaXZpZHVhbGx5IHNpZ25lZC4gIFRvIHN0b3JlIG1vcmUKKyAgICB0aGFuIHRoZSA0ayBvZiBkYXRhOyBpdCBpcyBwb3NzaWJsZSB0byBzdWItY2xhc3MgdGhpcyBvYmplY3QgdG8KKyAgICBwcm92aWRlIGRpZmZlcmVudCBgYGVudmlyb25fbmFtZWBgIGFuZCBgYGNvb2tpZV9uYW1lYGAKKyAgICAiIiIKKyAgICBlbnZpcm9uX25hbWUgPSAncGFzdGUuYXV0aC5jb29raWUnCisgICAgY29va2llX25hbWUgID0gJ1BBU1RFX0FVVEhfQ09PS0lFJworICAgIHNpZ25lcl9jbGFzcyA9IEF1dGhDb29raWVTaWduZXIKKyAgICBlbnZpcm9uX2NsYXNzID0gQXV0aENvb2tpZUVudmlyb24KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBsaWNhdGlvbiwgY29va2llX25hbWU9Tm9uZSwgc2Nhbmxpc3Q9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc2lnbmVyPU5vbmUsIHNlY3JldD1Ob25lLCB0aW1lb3V0PU5vbmUsIG1heGxlbj1Ob25lKToKKyAgICAgICAgaWYgbm90IHNpZ25lcjoKKyAgICAgICAgICAgIHNpZ25lciA9IHNlbGYuc2lnbmVyX2NsYXNzKHNlY3JldCwgdGltZW91dCwgbWF4bGVuKQorICAgICAgICBzZWxmLnNpZ25lciA9IHNpZ25lcgorICAgICAgICBzZWxmLnNjYW5saXN0ID0gc2Nhbmxpc3Qgb3IgKCdSRU1PVEVfVVNFUicsJ1JFTU9URV9TRVNTSU9OJykKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uCisgICAgICAgIHNlbGYuY29va2llX25hbWUgPSBjb29raWVfbmFtZSBvciBzZWxmLmNvb2tpZV9uYW1lCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiBzZWxmLmVudmlyb25fbmFtZSBpbiBlbnZpcm9uOgorICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIkF1dGhDb29raWUgYWxyZWFkeSBpbnN0YWxsZWQhIikKKyAgICAgICAgc2Nhbmxpc3QgPSBzZWxmLmVudmlyb25fY2xhc3Moc2VsZiwgc2VsZi5zY2FubGlzdCkKKyAgICAgICAgamFyID0gZ2V0X2Nvb2tpZXMoZW52aXJvbikKKyAgICAgICAgaWYgc2VsZi5jb29raWVfbmFtZSBpbiBqYXI6CisgICAgICAgICAgICBjb250ZW50ID0gc2VsZi5zaWduZXIuYXV0aChqYXJbc2VsZi5jb29raWVfbmFtZV0udmFsdWUpCisgICAgICAgICAgICBpZiBjb250ZW50OgorICAgICAgICAgICAgICAgIGZvciBwYWlyIGluIGNvbnRlbnQuc3BsaXQoIjsiKToKKyAgICAgICAgICAgICAgICAgICAgKGssIHYpID0gcGFpci5zcGxpdCgiPSIpCisgICAgICAgICAgICAgICAgICAgIGsgPSBkZWNvZGUoaykKKyAgICAgICAgICAgICAgICAgICAgaWYgayBub3QgaW4gc2Nhbmxpc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBzY2FubGlzdC5hcHBlbmQoaykKKyAgICAgICAgICAgICAgICAgICAgaWYgayBpbiBlbnZpcm9uOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvbltrXSA9IGRlY29kZSh2KQorICAgICAgICAgICAgICAgICAgICBpZiAnUkVNT1RFX1VTRVInID09IGs6CisgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uWydBVVRIX1RZUEUnXSA9ICdjb29raWUnCisgICAgICAgIGVudmlyb25bc2VsZi5lbnZpcm9uX25hbWVdID0gc2Nhbmxpc3QKKyAgICAgICAgaWYgInBhc3RlLmh0dHBleGNlcHRpb25zIiBpbiBlbnZpcm9uOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigiU2luY2UgcGFzdGUuaHR0cGV4Y2VwdGlvbnMgaXMgaG9va2VkIGluIHlvdXIgIgorICAgICAgICAgICAgICAgICJwcm9jZXNzaW5nIGNoYWluIGJlZm9yZSBwYXN0ZS5hdXRoLmNvb2tpZSwgaWYgYW4gIgorICAgICAgICAgICAgICAgICJIVFRQUmVkaXJlY3Rpb24gaXMgcmFpc2VkLCB0aGUgY29va2llcyB0aGlzIG1vZHVsZSBzZXRzICIKKyAgICAgICAgICAgICAgICAid2lsbCBub3QgYmUgaW5jbHVkZWQgaW4geW91ciByZXNwb25zZS5cbiIpCisKKyAgICAgICAgZGVmIHJlc3BvbnNlX2hvb2soc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgU2NhbiB0aGUgZW52aXJvbm1lbnQgZm9yIGtleXMgc3BlY2lmaWVkIGluIHRoZSBzY2FubGlzdCwKKyAgICAgICAgICAgIHBhY2sgdXAgdGhlaXIgdmFsdWVzLCBzaWducyB0aGUgY29udGVudCBhbmQgaXNzdWVzIGEgY29va2llLgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBzY2FubGlzdCA9IGVudmlyb24uZ2V0KHNlbGYuZW52aXJvbl9uYW1lKQorICAgICAgICAgICAgYXNzZXJ0IHNjYW5saXN0IGFuZCBpc2luc3RhbmNlKHNjYW5saXN0LCBzZWxmLmVudmlyb25fY2xhc3MpCisgICAgICAgICAgICBjb250ZW50ID0gW10KKyAgICAgICAgICAgIGZvciBrIGluIHNjYW5saXN0OgorICAgICAgICAgICAgICAgIHYgPSBlbnZpcm9uLmdldChrKQorICAgICAgICAgICAgICAgIGlmIHYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUodikgaXMgbm90IHN0cjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSB2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnRhbCB2YXJpYWJsZSAlciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlzIG5vdCBhIHN0ciAob25seSBzdHIgaXMgYWxsb3dlZDsgZ290ICVyKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChrLCB2KSkKKyAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQoIiVzPSVzIiAlIChlbmNvZGUoayksIGVuY29kZSh2KSkpCisgICAgICAgICAgICBpZiBjb250ZW50OgorICAgICAgICAgICAgICAgIGNvbnRlbnQgPSAiOyIuam9pbihjb250ZW50KQorICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBzZWxmLnNpZ25lci5zaWduKGNvbnRlbnQpCisgICAgICAgICAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZGVjb2RlKCd1dGY4JykKKyAgICAgICAgICAgICAgICBjb29raWUgPSAnJXM9JXM7IFBhdGg9LzsnICUgKHNlbGYuY29va2llX25hbWUsIGNvbnRlbnQpCisgICAgICAgICAgICAgICAgaWYgJ2h0dHBzJyA9PSBlbnZpcm9uWyd3c2dpLnVybF9zY2hlbWUnXToKKyAgICAgICAgICAgICAgICAgICAgY29va2llICs9ICcgc2VjdXJlOycKKyAgICAgICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzLmFwcGVuZCgoJ1NldC1Db29raWUnLCBjb29raWUpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgcmVzcG9uc2VfaGVhZGVycywgZXhjX2luZm8pCisgICAgICAgIHJldHVybiBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIHJlc3BvbnNlX2hvb2spCisKK21pZGRsZXdhcmUgPSBBdXRoQ29va2llSGFuZGxlcgorCisjIFBhc3RlIERlcGxveSBlbnRyeSBwb2ludDoKK2RlZiBtYWtlX2F1dGhfY29va2llKAorICAgIGFwcCwgZ2xvYmFsX2NvbmYsCisgICAgIyBTaG91bGQgdGhpcyBnZXQgcGlja2VkIHVwIGZyb20gZ2xvYmFsX2NvbmYgc29tZWhvdz86CisgICAgY29va2llX25hbWU9J1BBU1RFX0FVVEhfQ09PS0lFJywKKyAgICBzY2FubGlzdD0oJ1JFTU9URV9VU0VSJywgJ1JFTU9URV9TRVNTSU9OJyksCisgICAgIyBzaWduZXIgY2Fubm90IGJlIHNldAorICAgIHNlY3JldD1Ob25lLAorICAgIHRpbWVvdXQ9MzAsCisgICAgbWF4bGVuPTQwOTYpOgorICAgICIiIgorICAgIFRoaXMgbWlkZGxld2FyZSB1c2VzIGNvb2tpZXMgdG8gc3Rhc2gtYXdheSBhIHByZXZpb3VzbHkKKyAgICBhdXRoZW50aWNhdGVkIHVzZXIgKGFuZCBwZXJoYXBzIG90aGVyIHZhcmlhYmxlcykgc28gdGhhdAorICAgIHJlLWF1dGhlbnRpY2F0aW9uIGlzIG5vdCBuZWVkZWQuICBUaGlzIGRvZXMgbm90IGltcGxlbWVudAorICAgIHNlc3Npb25zOyBhbmQgdGhlcmVmb3JlIE4gc2VydmVycyBjYW4gYmUgc3luY3Jvbml6ZWQgdG8gYWNjZXB0IHRoZQorICAgIHNhbWUgc2F2ZWQgYXV0aGVudGljYXRpb24gaWYgdGhleSBhbGwgdXNlIHRoZSBzYW1lIGNvb2tpZV9uYW1lIGFuZAorICAgIHNlY3JldC4KKworICAgIEJ5IGRlZmF1bHQsIHRoaXMgaGFuZGxlciBzY2FucyB0aGUgYGVudmlyb25gIGZvciB0aGUgUkVNT1RFX1VTRVIKKyAgICBhbmQgUkVNT1RFX1NFU1NJT04ga2V5OyBpZiBmb3VuZCwgaXQgaXMgc3RvcmVkLiBJdCBjYW4gYmUKKyAgICBjb25maWd1cmVkIHRvIHNjYW4gb3RoZXIgYGVudmlyb25gIGtleXMgYXMgd2VsbCAtLSBidXQgYmUgY2FyZWZ1bAorICAgIG5vdCB0byBleGNlZWQgMi0zayAoc28gdGhhdCB0aGUgZW5jb2RlZCBhbmQgc2lnbmVkIGNvb2tpZSBkb2VzIG5vdAorICAgIGV4Y2VlZCA0aykuIFlvdSBjYW4gYXNrIGl0IHRvIGhhbmRsZSBvdGhlciBlbnZpcm9ubWVudCB2YXJpYWJsZXMKKyAgICBieSBkb2luZzoKKworICAgICAgIGBgZW52aXJvblsncGFzdGUuYXV0aC5jb29raWUnXS5hcHBlbmQoJ3lvdXIuZW52aXJvbi52YXJpYWJsZScpYGAKKworICAgIENvbmZpZ3VyYXRpb246CisKKyAgICAgICAgYGBjb29raWVfbmFtZWBgCisKKyAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb29raWUgdXNlZCB0byBzdG9yZSB0aGlzIGNvbnRlbnQsIGJ5CisgICAgICAgICAgICBkZWZhdWx0IGl0IGlzIGBgUEFTVEVfQVVUSF9DT09LSUVgYC4KKworICAgICAgICBgYHNjYW5saXN0YGAKKworICAgICAgICAgICAgVGhpcyBpcyB0aGUgaW5pdGlhbCBzZXQgb2YgYGBlbnZpcm9uYGAga2V5cyB0bworICAgICAgICAgICAgc2F2ZS9yZXN0b3JlIHRvIHRoZSBzaWduZWQgY29va2llLiAgQnkgZGVmYXVsdCBpcyBjb25zaXN0cworICAgICAgICAgICAgb25seSBvZiBgYFJFTU9URV9VU0VSYGAgYW5kIGBgUkVNT1RFX1NFU1NJT05gYDsgYW55CisgICAgICAgICAgICBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBlbnZpcm9ubWVudCBrZXlzIHdpbGwgd29yay4KKyAgICAgICAgICAgIEhvd2V2ZXIsIGJlIGNhcmVmdWwsIGFzIHRoZSB0b3RhbCBzYXZlZCBzaXplIGlzIGxpbWl0ZWQgdG8KKyAgICAgICAgICAgIGFyb3VuZCAzay4KKworICAgICAgICBgYHNlY3JldGBgCisKKyAgICAgICAgICAgIFRoZSBzZWNyZXQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2lnbiB0aGUgY29va2llcy4gIElmIHlvdQorICAgICAgICAgICAgZG9uJ3QgcHJvdmlkZSBvbmUgKGFuZCBub25lIGlzIHNldCBnbG9iYWxseSkgdGhlbiBhIHJhbmRvbQorICAgICAgICAgICAgc2VjcmV0IHdpbGwgYmUgY3JlYXRlZC4gIEVhY2ggdGltZSB0aGUgc2VydmVyIGlzIHJlc3RhcnRlZAorICAgICAgICAgICAgYSBuZXcgc2VjcmV0IHdpbGwgdGhlbiBiZSBjcmVhdGVkIGFuZCBhbGwgY29va2llcyB3aWxsCisgICAgICAgICAgICBiZWNvbWUgaW52YWxpZCEgIFRoaXMgY2FuIGJlIGFueSBzdHJpbmcgdmFsdWUuCisKKyAgICAgICAgYGB0aW1lb3V0YGAKKworICAgICAgICAgICAgVGhlIHRpbWUgdG8ga2VlcCB0aGUgY29va2llLCBleHByZXNzZWQgaW4gbWludXRlcy4gIFRoaXMKKyAgICAgICAgICAgIGlzIGhhbmRsZWQgc2VydmVyLXNpZGUsIHNvIGEgbmV3IGNvb2tpZSB3aXRoIGEgbmV3IHRpbWVvdXQKKyAgICAgICAgICAgIGlzIGFkZGVkIHRvIGV2ZXJ5IHJlc3BvbnNlLgorCisgICAgICAgIGBgbWF4bGVuYGAKKworICAgICAgICAgICAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBjb29raWUgdGhhdCBpcyBzZW50IChkZWZhdWx0IDRrLAorICAgICAgICAgICAgd2hpY2ggaXMgYSB0eXBpY2FsIGJyb3dzZXIgbWF4aW11bSkKKworICAgICIiIgorICAgIGlmIGlzaW5zdGFuY2Uoc2Nhbmxpc3QsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICBzY2FubGlzdCA9IHNjYW5saXN0LnNwbGl0KCkKKyAgICBpZiBzZWNyZXQgaXMgTm9uZSBhbmQgZ2xvYmFsX2NvbmYuZ2V0KCdzZWNyZXQnKToKKyAgICAgICAgc2VjcmV0ID0gZ2xvYmFsX2NvbmZbJ3NlY3JldCddCisgICAgdHJ5OgorICAgICAgICB0aW1lb3V0ID0gaW50KHRpbWVvdXQpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCB2YWx1ZSBmb3IgdGltZW91dCAobXVzdCBiZSBpbnQpOiAlcicKKyAgICAgICAgICAgICAgICAgICAgICAgICAlIHRpbWVvdXQpCisgICAgdHJ5OgorICAgICAgICBtYXhsZW4gPSBpbnQobWF4bGVuKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgdmFsdWUgZm9yIG1heGxlbiAobXVzdCBiZSBpbnQpOiAlcicKKyAgICAgICAgICAgICAgICAgICAgICAgICAlIG1heGxlbikKKyAgICByZXR1cm4gQXV0aENvb2tpZUhhbmRsZXIoCisgICAgICAgIGFwcCwgY29va2llX25hbWU9Y29va2llX25hbWUsIHNjYW5saXN0PXNjYW5saXN0LAorICAgICAgICBzZWNyZXQ9c2VjcmV0LCB0aW1lb3V0PXRpbWVvdXQsIG1heGxlbj1tYXhsZW4pCisKK19fYWxsX18gPSBbJ0F1dGhDb29raWVIYW5kbGVyJywgJ0F1dGhDb29raWVTaWduZXInLCAnQXV0aENvb2tpZUVudmlyb24nXQorCitpZiAiX19tYWluX18iID09IF9fbmFtZV9fOgorICAgIGltcG9ydCBkb2N0ZXN0CisgICAgZG9jdGVzdC50ZXN0bW9kKG9wdGlvbmZsYWdzPWRvY3Rlc3QuRUxMSVBTSVMpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2RpZ2VzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2RpZ2VzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWUwMzYyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvZGlnZXN0LnB5CkBAIC0wLDAgKzEsMjU0IEBACisjIChjKSAyMDA1IENsYXJrIEMuIEV2YW5zCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFRoaXMgY29kZSB3YXMgd3JpdHRlbiB3aXRoIGZ1bmRpbmcgYnkgaHR0cDovL3Byb21ldGhldXNyZXNlYXJjaC5jb20KKyIiIgorRGlnZXN0IEhUVFAvMS4xIEF1dGhlbnRpY2F0aW9uCisKK1RoaXMgbW9kdWxlIGltcGxlbWVudHMgYGBEaWdlc3RgYCBhdXRoZW50aWNhdGlvbiBhcyBkZXNjcmliZWQgYnkKK1JGQyAyNjE3IFsxXV8gLgorCitCYXNpY2FsbHksIHlvdSBqdXN0IHB1dCB0aGlzIG1vZHVsZSBiZWZvcmUgeW91ciBhcHBsaWNhdGlvbiwgYW5kIGl0Cit0YWtlcyBjYXJlIG9mIHJlcXVlc3RpbmcgYW5kIGhhbmRsaW5nIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3RzLiAgVGhpcworbW9kdWxlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIHNldmVyYWwgY29tbW9uIGJyb3dzZXJzICJvdXQtaW4tdGhlLXdpbGQiLgorCis+Pj4gZnJvbSBwYXN0ZS53c2dpbGliIGltcG9ydCBkdW1wX2Vudmlyb24KKz4+PiBmcm9tIHBhc3RlLmh0dHBzZXJ2ZXIgaW1wb3J0IHNlcnZlCis+Pj4gIyBmcm9tIHBhc3RlLmF1dGguZGlnZXN0IGltcG9ydCBkaWdlc3RfcGFzc3dvcmQsIEF1dGhEaWdlc3RIYW5kbGVyCis+Pj4gcmVhbG0gPSAnVGVzdCBSZWFsbScKKz4+PiBkZWYgYXV0aGZ1bmMoZW52aXJvbiwgcmVhbG0sIHVzZXJuYW1lKToKKy4uLiAgICAgcmV0dXJuIGRpZ2VzdF9wYXNzd29yZChyZWFsbSwgdXNlcm5hbWUsIHVzZXJuYW1lKQorPj4+IHNlcnZlKEF1dGhEaWdlc3RIYW5kbGVyKGR1bXBfZW52aXJvbiwgcmVhbG0sIGF1dGhmdW5jKSkKK3NlcnZpbmcgb24uLi4KKworVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBhdWRpdGVkIGJ5IGEgc2VjdXJpdHkgZXhwZXJ0LCBwbGVhc2UgdXNlIHdpdGgKK2NhdXRpb24gKG9yIGJldHRlciB5ZXQsIHJlcG9ydCBzZWN1cml0eSBob2xlcykuIEF0IHRoaXMgdGltZSwgdGhpcworaW1wbGVtZW50YXRpb24gZG9lcyBub3QgcHJvdmlkZSBmb3IgZnVydGhlciBjaGFsbGVuZ2VzLCBub3IgZG9lcyBpdAorc3VwcG9ydCBBdXRoZW50aWNhdGlvbi1JbmZvIGhlYWRlci4gIEl0IGFsc28gdXNlcyBtZDUsIGFuZCBhbiBvcHRpb24KK3RvIHVzZSBzaGEgd291bGQgYmUgYSBnb29kIHRoaW5nLgorCisuLiBbMV0gaHR0cDovL3d3dy5mYXFzLm9yZy9yZmNzL3JmYzI2MTcuaHRtbAorIiIiCitmcm9tIHBhc3RlLmh0dHBleGNlcHRpb25zIGltcG9ydCBIVFRQVW5hdXRob3JpemVkCitmcm9tIHBhc3RlLmh0dHBoZWFkZXJzIGltcG9ydCAqCit0cnk6CisgICAgZnJvbSBoYXNobGliIGltcG9ydCBtZDUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIG1kNSBpbXBvcnQgbWQ1CitpbXBvcnQgdGltZSwgcmFuZG9tCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHF1b3RlIGFzIHVybF9xdW90ZQoraW1wb3J0IHNpeAorCitkZWYgX3NwbGl0X2F1dGhfc3RyaW5nKGF1dGhfc3RyaW5nKToKKyAgICAiIiIgc3BsaXQgYSBkaWdlc3QgYXV0aCBzdHJpbmcgaW50byBpbmRpdmlkdWFsIGtleT12YWx1ZSBzdHJpbmdzICIiIgorICAgIHByZXYgPSBOb25lCisgICAgZm9yIGl0ZW0gaW4gYXV0aF9zdHJpbmcuc3BsaXQoIiwiKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgcHJldi5jb3VudCgnIicpID09IDE6CisgICAgICAgICAgICAgICAgcHJldiA9ICIlcywlcyIgJSAocHJldiwgaXRlbSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBpZiBwcmV2ID09IE5vbmU6CisgICAgICAgICAgICAgICAgcHJldiA9IGl0ZW0KKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisgICAgICAgIHlpZWxkIHByZXYuc3RyaXAoKQorICAgICAgICBwcmV2ID0gaXRlbQorCisgICAgeWllbGQgcHJldi5zdHJpcCgpCisgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorCitkZWYgX2F1dGhfdG9fa3ZfcGFpcnMoYXV0aF9zdHJpbmcpOgorICAgICIiIiBzcGxpdCBhIGRpZ2VzdCBhdXRoIHN0cmluZyBpbnRvIGtleSwgdmFsdWUgcGFpcnMgIiIiCisgICAgZm9yIGl0ZW0gaW4gX3NwbGl0X2F1dGhfc3RyaW5nKGF1dGhfc3RyaW5nKToKKyAgICAgICAgKGssIHYpID0gaXRlbS5zcGxpdCgiPSIsIDEpCisgICAgICAgIGlmIHYuc3RhcnRzd2l0aCgnIicpIGFuZCBsZW4odikgPiAxIGFuZCB2LmVuZHN3aXRoKCciJyk6CisgICAgICAgICAgICB2ID0gdlsxOi0xXQorICAgICAgICB5aWVsZCAoaywgdikKKworZGVmIGRpZ2VzdF9wYXNzd29yZChyZWFsbSwgdXNlcm5hbWUsIHBhc3N3b3JkKToKKyAgICAiIiIgY29uc3RydWN0IHRoZSBhcHByb3ByaWF0ZSBoYXNoY29kZSBuZWVkZWQgZm9yIEhUVFAgZGlnZXN0ICIiIgorICAgIGNvbnRlbnQgPSAiJXM6JXM6JXMiICUgKHVzZXJuYW1lLCByZWFsbSwgcGFzc3dvcmQpCisgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZW5jb2RlKCd1dGY4JykKKyAgICByZXR1cm4gbWQ1KGNvbnRlbnQpLmhleGRpZ2VzdCgpCisKK2NsYXNzIEF1dGhEaWdlc3RBdXRoZW50aWNhdG9yKG9iamVjdCk6CisgICAgIiIiIGltcGxlbWVudGF0aW9uIG9mIFJGQyAyNjE3IC0gSFRUUCBEaWdlc3QgQXV0aGVudGljYXRpb24gIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlYWxtLCBhdXRoZnVuYyk6CisgICAgICAgIHNlbGYubm9uY2UgICAgPSB7fSAjIGxpc3QgdG8gcHJldmVudCByZXBsYXkgYXR0YWNrcworICAgICAgICBzZWxmLmF1dGhmdW5jID0gYXV0aGZ1bmMKKyAgICAgICAgc2VsZi5yZWFsbSAgICA9IHJlYWxtCisKKyAgICBkZWYgYnVpbGRfYXV0aGVudGljYXRpb24oc2VsZiwgc3RhbGUgPSAnJyk6CisgICAgICAgICIiIiBidWlsZHMgdGhlIGF1dGhlbnRpY2F0aW9uIGVycm9yICIiIgorICAgICAgICBjb250ZW50ID0gIiVzOiVzIiAlICh0aW1lLnRpbWUoKSwgcmFuZG9tLnJhbmRvbSgpKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZW5jb2RlKCd1dGYtOCcpCisgICAgICAgIG5vbmNlICA9IG1kNShjb250ZW50KS5oZXhkaWdlc3QoKQorCisgICAgICAgIGNvbnRlbnQgPSAiJXM6JXMiICUgKHRpbWUudGltZSgpLCByYW5kb20ucmFuZG9tKCkpCisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgb3BhcXVlID0gbWQ1KGNvbnRlbnQpLmhleGRpZ2VzdCgpCisKKyAgICAgICAgc2VsZi5ub25jZVtub25jZV0gPSBOb25lCisgICAgICAgIHBhcnRzID0geydyZWFsbSc6IHNlbGYucmVhbG0sICdxb3AnOiAnYXV0aCcsCisgICAgICAgICAgICAgICAgICdub25jZSc6IG5vbmNlLCAnb3BhcXVlJzogb3BhcXVlIH0KKyAgICAgICAgaWYgc3RhbGU6CisgICAgICAgICAgICBwYXJ0c1snc3RhbGUnXSA9ICd0cnVlJworICAgICAgICBoZWFkID0gIiwgIi5qb2luKFsnJXM9IiVzIicgJSAoaywgdikgZm9yIChrLCB2KSBpbiBwYXJ0cy5pdGVtcygpXSkKKyAgICAgICAgaGVhZCA9IFsoIldXVy1BdXRoZW50aWNhdGUiLCAnRGlnZXN0ICVzJyAlIGhlYWQpXQorICAgICAgICByZXR1cm4gSFRUUFVuYXV0aG9yaXplZChoZWFkZXJzPWhlYWQpCisKKyAgICBkZWYgY29tcHV0ZShzZWxmLCBoYTEsIHVzZXJuYW1lLCByZXNwb25zZSwgbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIG5vbmNlLCBuYywgY25vbmNlLCBxb3ApOgorICAgICAgICAiIiIgY29tcHV0ZXMgdGhlIGF1dGhlbnRpY2F0aW9uLCByYWlzZXMgZXJyb3IgaWYgdW5zdWNjZXNzZnVsICIiIgorICAgICAgICBpZiBub3QgaGExOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnVpbGRfYXV0aGVudGljYXRpb24oKQorICAgICAgICBjb250ZW50ID0gJyVzOiVzJyAlIChtZXRob2QsIHBhdGgpCisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICBoYTIgPSBtZDUoY29udGVudCkuaGV4ZGlnZXN0KCkKKyAgICAgICAgaWYgcW9wOgorICAgICAgICAgICAgY2hrID0gIiVzOiVzOiVzOiVzOiVzOiVzIiAlIChoYTEsIG5vbmNlLCBuYywgY25vbmNlLCBxb3AsIGhhMikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNoayA9ICIlczolczolcyIgJSAoaGExLCBub25jZSwgaGEyKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgY2hrID0gY2hrLmVuY29kZSgndXRmOCcpCisgICAgICAgIGlmIHJlc3BvbnNlICE9IG1kNShjaGspLmhleGRpZ2VzdCgpOgorICAgICAgICAgICAgaWYgbm9uY2UgaW4gc2VsZi5ub25jZToKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5ub25jZVtub25jZV0KKyAgICAgICAgICAgIHJldHVybiBzZWxmLmJ1aWxkX2F1dGhlbnRpY2F0aW9uKCkKKyAgICAgICAgcG5jID0gc2VsZi5ub25jZS5nZXQobm9uY2UsJzAwMDAwMDAwJykKKyAgICAgICAgaWYgcG5jIGlzIG5vdCBOb25lIGFuZCBuYyA8PSBwbmM6CisgICAgICAgICAgICBpZiBub25jZSBpbiBzZWxmLm5vbmNlOgorICAgICAgICAgICAgICAgIGRlbCBzZWxmLm5vbmNlW25vbmNlXQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnVpbGRfYXV0aGVudGljYXRpb24oc3RhbGUgPSBUcnVlKQorICAgICAgICBzZWxmLm5vbmNlW25vbmNlXSA9IG5jCisgICAgICAgIHJldHVybiB1c2VybmFtZQorCisgICAgZGVmIGF1dGhlbnRpY2F0ZShzZWxmLCBlbnZpcm9uKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBXU0dJIGVudmlyb25tZW50IGFuZCBhdXRoZW50aWNhdGVzCisgICAgICAgICAgICB0aGUgcmVxdWVzdCByZXR1cm5pbmcgYXV0aGVudGljYXRlZCB1c2VyIG9yIGVycm9yLgorICAgICAgICAiIiIKKyAgICAgICAgbWV0aG9kID0gUkVRVUVTVF9NRVRIT0QoZW52aXJvbikKKyAgICAgICAgZnVsbHBhdGggPSB1cmxfcXVvdGUoU0NSSVBUX05BTUUoZW52aXJvbikpICsgdXJsX3F1b3RlKFBBVEhfSU5GTyhlbnZpcm9uKSkKKyAgICAgICAgYXV0aG9yaXphdGlvbiA9IEFVVEhPUklaQVRJT04oZW52aXJvbikKKyAgICAgICAgaWYgbm90IGF1dGhvcml6YXRpb246CisgICAgICAgICAgICByZXR1cm4gc2VsZi5idWlsZF9hdXRoZW50aWNhdGlvbigpCisgICAgICAgIChhdXRobWV0aCwgYXV0aCkgPSBhdXRob3JpemF0aW9uLnNwbGl0KCIgIiwgMSkKKyAgICAgICAgaWYgJ2RpZ2VzdCcgIT0gYXV0aG1ldGgubG93ZXIoKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmJ1aWxkX2F1dGhlbnRpY2F0aW9uKCkKKyAgICAgICAgYW1hcCA9IGRpY3QoX2F1dGhfdG9fa3ZfcGFpcnMoYXV0aCkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVzZXJuYW1lID0gYW1hcFsndXNlcm5hbWUnXQorICAgICAgICAgICAgYXV0aHBhdGggPSBhbWFwWyd1cmknXQorICAgICAgICAgICAgbm9uY2UgICAgPSBhbWFwWydub25jZSddCisgICAgICAgICAgICByZWFsbSAgICA9IGFtYXBbJ3JlYWxtJ10KKyAgICAgICAgICAgIHJlc3BvbnNlID0gYW1hcFsncmVzcG9uc2UnXQorICAgICAgICAgICAgYXNzZXJ0IGF1dGhwYXRoLnNwbGl0KCI/IiwgMSlbMF0gaW4gZnVsbHBhdGgKKyAgICAgICAgICAgIGFzc2VydCByZWFsbSA9PSBzZWxmLnJlYWxtCisgICAgICAgICAgICBxb3AgICAgICA9IGFtYXAuZ2V0KCdxb3AnLCAnJykKKyAgICAgICAgICAgIGNub25jZSAgID0gYW1hcC5nZXQoJ2Nub25jZScsICcnKQorICAgICAgICAgICAgbmMgICAgICAgPSBhbWFwLmdldCgnbmMnLCAnMDAwMDAwMDAnKQorICAgICAgICAgICAgaWYgcW9wOgorICAgICAgICAgICAgICAgIGFzc2VydCAnYXV0aCcgPT0gcW9wCisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vbmNlIGFuZCBuYworICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5idWlsZF9hdXRoZW50aWNhdGlvbigpCisgICAgICAgIGhhMSA9IHNlbGYuYXV0aGZ1bmMoZW52aXJvbiwgcmVhbG0sIHVzZXJuYW1lKQorICAgICAgICByZXR1cm4gc2VsZi5jb21wdXRlKGhhMSwgdXNlcm5hbWUsIHJlc3BvbnNlLCBtZXRob2QsIGF1dGhwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmNlLCBuYywgY25vbmNlLCBxb3ApCisKKyAgICBfX2NhbGxfXyA9IGF1dGhlbnRpY2F0ZQorCitjbGFzcyBBdXRoRGlnZXN0SGFuZGxlcihvYmplY3QpOgorICAgICIiIgorICAgIG1pZGRsZXdhcmUgZm9yIEhUVFAgRGlnZXN0IGF1dGhlbnRpY2F0aW9uIChSRkMgMjYxNykKKworICAgIFRoaXMgY29tcG9uZW50IGZvbGxvd3MgdGhlIHByb2NlZHVyZSBiZWxvdzoKKworICAgICAgICAwLiBJZiB0aGUgUkVNT1RFX1VTRVIgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgYWxyZWFkeSBwb3B1bGF0ZWQ7CisgICAgICAgICAgIHRoZW4gdGhpcyBtaWRkbGV3YXJlIGlzIGEgbm8tb3AsIGFuZCB0aGUgcmVxdWVzdCBpcyBwYXNzZWQKKyAgICAgICAgICAgYWxvbmcgdG8gdGhlIGFwcGxpY2F0aW9uLgorCisgICAgICAgIDEuIElmIHRoZSBIVFRQX0FVVEhPUklaQVRJT04gaGVhZGVyIHdhcyBub3QgcHJvdmlkZWQgb3Igc3BlY2lmaWVzCisgICAgICAgICAgIGFuIGFsZ29yaXRoZW0gb3RoZXIgdGhhbiBgYGRpZ2VzdGBgLCB0aGVuIGEgSFRUUFVuYXV0aG9yaXplZAorICAgICAgICAgICByZXNwb25zZSBpcyBnZW5lcmF0ZWQgd2l0aCB0aGUgY2hhbGxlbmdlLgorCisgICAgICAgIDIuIElmIHRoZSByZXNwb25zZSBpcyBtYWxmb3JtZWQgb3Igb3IgaWYgdGhlIHVzZXIncyBjcmVkaWVudGlhbHMKKyAgICAgICAgICAgZG8gbm90IHBhc3MgbXVzdGVyLCBhbm90aGVyIEhUVFBVbmF1dGhvcml6ZWQgaXMgcmFpc2VkLgorCisgICAgICAgIDMuIElmIGFsbCBnb2VzIHdlbGwsIGFuZCB0aGUgdXNlcidzIGNyZWRpbnRpYWxzIHBhc3M7IHRoZW4KKyAgICAgICAgICAgUkVNT1RFX1VTRVIgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgZmlsbGVkIGluIGFuZCB0aGUKKyAgICAgICAgICAgQVVUSF9UWVBFIGlzIGxpc3RlZCBhcyAnZGlnZXN0Jy4KKworICAgIFBhcmFtZXRlcnM6CisKKyAgICAgICAgYGBhcHBsaWNhdGlvbmBgCisKKyAgICAgICAgICAgIFRoZSBhcHBsaWNhdGlvbiBvYmplY3QgaXMgY2FsbGVkIG9ubHkgdXBvbiBzdWNjZXNzZnVsCisgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiwgYW5kIGNhbiBhc3N1bWUgYGBlbnZpcm9uWydSRU1PVEVfVVNFUiddYGAKKyAgICAgICAgICAgIGlzIHNldC4gIElmIHRoZSBgYFJFTU9URV9VU0VSYGAgaXMgYWxyZWFkeSBzZXQsIHRoaXMKKyAgICAgICAgICAgIG1pZGRsZXdhcmUgaXMgc2ltcGx5IHBhc3MtdGhyb3VnaC4KKworICAgICAgICBgYHJlYWxtYGAKKworICAgICAgICAgICAgVGhpcyBpcyBhIGlkZW50aWZpZXIgZm9yIHRoZSBhdXRob3JpdHkgdGhhdCBpcyByZXF1ZXN0aW5nCisgICAgICAgICAgICBhdXRob3JpemF0aW9uLiAgSXQgaXMgc2hvd24gdG8gdGhlIHVzZXIgYW5kIHNob3VsZCBiZSB1bmlxdWUKKyAgICAgICAgICAgIHdpdGhpbiB0aGUgZG9tYWluIGl0IGlzIGJlaW5nIHVzZWQuCisKKyAgICAgICAgYGBhdXRoZnVuY2BgCisKKyAgICAgICAgICAgIFRoaXMgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiB3aGljaCBwZXJmb3JtcyB0aGUgYWN0dWFsCisgICAgICAgICAgICBhdXRoZW50aWNhdGlvbjsgdGhlIHNpZ25hdHVyZSBvZiB0aGlzIGNhbGxiYWNrIGlzOgorCisgICAgICAgICAgICAgIGF1dGhmdW5jKGVudmlyb24sIHJlYWxtLCB1c2VybmFtZSkgLT4gaGFzaGNvZGUKKworICAgICAgICAgICAgVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSAnZGlnZXN0X3Bhc3N3b3JkJyBoZWxwZXIgZnVuY3Rpb24KKyAgICAgICAgICAgIHdoaWNoIGNhbiBoZWxwIGNvbnN0cnVjdCB0aGUgaGFzaGNvZGU7IGl0IGlzIHJlY29tbWVuZGVkCisgICAgICAgICAgICB0aGF0IHRoZSBoYXNoY29kZSBpcyBzdG9yZWQgaW4gYSBkYXRhYmFzZSwgbm90IHRoZSB1c2VyJ3MKKyAgICAgICAgICAgIGFjdHVhbCBwYXNzd29yZCAoc2luY2UgeW91IG9ubHkgbmVlZCB0aGUgaGFzaGNvZGUpLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBsaWNhdGlvbiwgcmVhbG0sIGF1dGhmdW5jKToKKyAgICAgICAgc2VsZi5hdXRoZW50aWNhdGUgPSBBdXRoRGlnZXN0QXV0aGVudGljYXRvcihyZWFsbSwgYXV0aGZ1bmMpCisgICAgICAgIHNlbGYuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgdXNlcm5hbWUgPSBSRU1PVEVfVVNFUihlbnZpcm9uKQorICAgICAgICBpZiBub3QgdXNlcm5hbWU6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmF1dGhlbnRpY2F0ZShlbnZpcm9uKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIHN0cik6CisgICAgICAgICAgICAgICAgQVVUSF9UWVBFLnVwZGF0ZShlbnZpcm9uLCdkaWdlc3QnKQorICAgICAgICAgICAgICAgIFJFTU9URV9VU0VSLnVwZGF0ZShlbnZpcm9uLCByZXN1bHQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK21pZGRsZXdhcmUgPSBBdXRoRGlnZXN0SGFuZGxlcgorCitfX2FsbF9fID0gWydkaWdlc3RfcGFzc3dvcmQnLCAnQXV0aERpZ2VzdEhhbmRsZXInIF0KKworZGVmIG1ha2VfZGlnZXN0KGFwcCwgZ2xvYmFsX2NvbmYsIHJlYWxtLCBhdXRoZnVuYywgKiprdyk6CisgICAgIiIiCisgICAgR3JhbnQgYWNjZXNzIHZpYSBkaWdlc3QgYXV0aGVudGljYXRpb24KKworICAgIENvbmZpZyBsb29rcyBsaWtlIHRoaXM6OgorCisgICAgICBbZmlsdGVyOmdyYW50XQorICAgICAgdXNlID0gZWdnOlBhc3RlI2F1dGhfZGlnZXN0CisgICAgICByZWFsbT1teXJlYWxtCisgICAgICBhdXRoZnVuYz1zb21lcGFja2FnZS5zb21lbW9kdWxlOnNvbWVmdW5jdGlvbgorCisgICAgIiIiCisgICAgZnJvbSBwYXN0ZS51dGlsLmltcG9ydF9zdHJpbmcgaW1wb3J0IGV2YWxfaW1wb3J0CisgICAgaW1wb3J0IHR5cGVzCisgICAgYXV0aGZ1bmMgPSBldmFsX2ltcG9ydChhdXRoZnVuYykKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShhdXRoZnVuYywgdHlwZXMuRnVuY3Rpb25UeXBlKSwgImF1dGhmdW5jIG11c3QgcmVzb2x2ZSB0byBhIGZ1bmN0aW9uIgorICAgIHJldHVybiBBdXRoRGlnZXN0SGFuZGxlcihhcHAsIHJlYWxtLCBhdXRoZnVuYykKKworaWYgIl9fbWFpbl9fIiA9PSBfX25hbWVfXzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZChvcHRpb25mbGFncz1kb2N0ZXN0LkVMTElQU0lTKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvZm9ybS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2Zvcm0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJlODJhMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL2Zvcm0ucHkKQEAgLTAsMCArMSwxNDkgQEAKKyMgKGMpIDIwMDUgQ2xhcmsgQy4gRXZhbnMKKyMgVGhpcyBtb2R1bGUgaXMgcGFydCBvZiB0aGUgUHl0aG9uIFBhc3RlIFByb2plY3QgYW5kIGlzIHJlbGVhc2VkIHVuZGVyCisjIHRoZSBNSVQgTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMgVGhpcyBjb2RlIHdhcyB3cml0dGVuIHdpdGggZnVuZGluZyBieSBodHRwOi8vcHJvbWV0aGV1c3Jlc2VhcmNoLmNvbQorIiIiCitBdXRoZW50aWNhdGlvbiB2aWEgSFRNTCBGb3JtCisKK1RoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBIVE1MIGZvcm0gbG9naW4gc2NyZWVuIHRoYXQgYXNrcyBmb3IgdGhlIHVzZXJuYW1lCithbmQgcGFzc3dvcmQuICBUaGlzIG1pZGRsZXdhcmUgY29tcG9uZW50IHJlcXVpcmVzIHRoYXQgYW4gYXV0aG9yaXphdGlvbgorZnVuY3Rpb24gdGFraW5nIHRoZSBuYW1lIGFuZCBwYXNzc3dvcmQgYW5kIHRoYXQgaXQgYmUgcGxhY2VkIGluIHlvdXIKK2FwcGxpY2F0aW9uIHN0YWNrLiBUaGlzIGNsYXNzIGRvZXMgbm90IGluY2x1ZGUgYW55IHNlc3Npb24gbWFuYWdlbWVudAorY29kZSBvciB3YXkgdG8gc2F2ZSB0aGUgdXNlcidzIGF1dGhvcml6YXRpb247IGhvd2V2ZXIsIGl0IGlzIGVhc3kgZW5vdWdoCit0byBwdXQgYGBwYXN0ZS5hdXRoLmNvb2tpZWBgIGluIHlvdXIgYXBwbGljYXRpb24gc3RhY2suCisKKz4+PiBmcm9tIHBhc3RlLndzZ2lsaWIgaW1wb3J0IGR1bXBfZW52aXJvbgorPj4+IGZyb20gcGFzdGUuaHR0cHNlcnZlciBpbXBvcnQgc2VydmUKKz4+PiBmcm9tIHBhc3RlLmF1dGguY29va2llIGltcG9ydCBBdXRoQ29va2llSGFuZGxlcgorPj4+IGZyb20gcGFzdGUuYXV0aC5mb3JtIGltcG9ydCBBdXRoRm9ybUhhbmRsZXIKKz4+PiBkZWYgYXV0aGZ1bmMoZW52aXJvbiwgdXNlcm5hbWUsIHBhc3N3b3JkKToKKy4uLiAgICByZXR1cm4gdXNlcm5hbWUgPT0gcGFzc3dvcmQKKz4+PiBzZXJ2ZShBdXRoQ29va2llSGFuZGxlcigKKy4uLiAgICAgICAgICAgQXV0aEZvcm1IYW5kbGVyKGR1bXBfZW52aXJvbiwgYXV0aGZ1bmMpKSkKK3NlcnZpbmcgb24uLi4KKworIiIiCitmcm9tIHBhc3RlLnJlcXVlc3QgaW1wb3J0IGNvbnN0cnVjdF91cmwsIHBhcnNlX2Zvcm12YXJzCisKK1RFTVBMQVRFID0gIiIiXAorPGh0bWw+CisgIDxoZWFkPjx0aXRsZT5QbGVhc2UgTG9naW4hPC90aXRsZT48L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5QbGVhc2UgTG9naW48L2gxPgorICAgIDxmb3JtIGFjdGlvbj0iJXMiIG1ldGhvZD0icG9zdCI+CisgICAgICA8ZGw+CisgICAgICAgIDxkdD5Vc2VybmFtZTo8L2R0PgorICAgICAgICA8ZGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIj48L2RkPgorICAgICAgICA8ZHQ+UGFzc3dvcmQ6PC9kdD4KKyAgICAgICAgPGRkPjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiPjwvZGQ+CisgICAgICA8L2RsPgorICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYXV0aGZvcm0iIC8+CisgICAgICA8aHIgLz4KKyAgICA8L2Zvcm0+CisgIDwvYm9keT4KKzwvaHRtbD4KKyIiIgorCitjbGFzcyBBdXRoRm9ybUhhbmRsZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBIVE1MLWJhc2VkIGxvZ2luIG1pZGRsZXdhcmUKKworICAgIFRoaXMgY2F1c2VzIGEgSFRNTCBmb3JtIHRvIGJlIHJldHVybmVkIGlmIGBgUkVNT1RFX1VTRVJgYCBpcworICAgIG5vdCBmb3VuZCBpbiB0aGUgYGBlbnZpcm9uYGAuICBJZiB0aGUgZm9ybSBpcyByZXR1cm5lZCwgdGhlCisgICAgYGB1c2VybmFtZWBgIGFuZCBgYHBhc3N3b3JkYGAgY29tYmluYXRpb24gYXJlIGdpdmVuIHRvIGEKKyAgICB1c2VyLXN1cHBsaWVkIGF1dGhlbnRpY2F0aW9uIGZ1bmN0aW9uLCBgYGF1dGhmdW5jYGAuICBJZiB0aGlzCisgICAgaXMgc3VjY2Vzc2Z1bCwgdGhlbiBhcHBsaWNhdGlvbiBwcm9jZXNzaW5nIGNvbnRpbnVlcy4KKworICAgIFBhcmFtZXRlcnM6CisKKyAgICAgICAgYGBhcHBsaWNhdGlvbmBgCisKKyAgICAgICAgICAgIFRoZSBhcHBsaWNhdGlvbiBvYmplY3QgaXMgY2FsbGVkIG9ubHkgdXBvbiBzdWNjZXNzZnVsCisgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiwgYW5kIGNhbiBhc3N1bWUgYGBlbnZpcm9uWydSRU1PVEVfVVNFUiddYGAKKyAgICAgICAgICAgIGlzIHNldC4gIElmIHRoZSBgYFJFTU9URV9VU0VSYGAgaXMgYWxyZWFkeSBzZXQsIHRoaXMKKyAgICAgICAgICAgIG1pZGRsZXdhcmUgaXMgc2ltcGx5IHBhc3MtdGhyb3VnaC4KKworICAgICAgICBgYGF1dGhmdW5jYGAKKworICAgICAgICAgICAgVGhpcyBpcyBhIG1hbmRhdG9yeSB1c2VyLWRlZmluZWQgZnVuY3Rpb24gd2hpY2ggdGFrZXMgYQorICAgICAgICAgICAgYGBlbnZpcm9uYGAsIGBgdXNlcm5hbWVgYCBhbmQgYGBwYXNzd29yZGBgIGZvciBpdHMgZmlyc3QKKyAgICAgICAgICAgIHRocmVlIGFyZ3VtZW50cy4gIEl0IHNob3VsZCByZXR1cm4gYGBUcnVlYGAgaWYgdGhlIHVzZXIgaXMKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0ZWQuCisKKyAgICAgICAgYGB0ZW1wbGF0ZWBgCisKKyAgICAgICAgICAgIFRoaXMgaXMgYW4gb3B0aW9uYWwgKGEgZGVmYXVsdCBpcyBwcm92aWRlZCkgSFRNTAorICAgICAgICAgICAgZnJhZ21lbnQgdGhhdCB0YWtlcyBleGFjdGx5IG9uZSBgYCVzYGAgc3Vic3R1dGlvbgorICAgICAgICAgICAgYXJndW1lbnQ7IHdoaWNoICptdXN0KiBiZSB1c2VkIGZvciB0aGUgZm9ybSdzIGBgYWN0aW9uYGAKKyAgICAgICAgICAgIHRvIGVuc3VyZSB0aGF0IHRoaXMgbWlkZGxld2FyZSBjb21wb25lbnQgZG9lcyBub3QgYWx0ZXIKKyAgICAgICAgICAgIHRoZSBjdXJyZW50IHBhdGguICBUaGUgSFRNTCBmb3JtIG11c3QgdXNlIGBgUE9TVGBgIGFuZAorICAgICAgICAgICAgaGF2ZSB0d28gaW5wdXQgbmFtZXM6ICBgYHVzZXJuYW1lYGAgYW5kIGBgcGFzc3dvcmRgYC4KKworICAgIFNpbmNlIHRoZSBhdXRoZW50aWNhdGlvbiBmb3JtIGlzIHN1Ym1pdHRlZCAodmlhIGBgUE9TVGBgKQorICAgIG5laXRoZXIgdGhlIGBgUEFUSF9JTkZPYGAgbm9yIHRoZSBgYFFVRVJZX1NUUklOR2BgIGFyZSBhY2Nlc3NlZCwKKyAgICBhbmQgaGVuY2UgdGhlIGN1cnJlbnQgcGF0aCByZW1haW5zIF91bmFsdGVyZWRfIHRocm91Z2ggdGhlCisgICAgZW50aXJlIGF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuIElmIGF1dGhlbnRpY2F0aW9uIHN1Y2NlZWRzLCB0aGUKKyAgICBgYFJFUVVFU1RfTUVUSE9EYGAgaXMgY29udmVydGVkIGZyb20gYSBgYFBPU1RgYCB0byBhIGBgR0VUYGAsCisgICAgc28gdGhhdCBhIHJlZGlyZWN0IGlzIHVubmVjZXNzYXJ5ICh1bmxpa2UgbW9zdCBmb3JtIGF1dGgKKyAgICBpbXBsZW1lbnRhdGlvbnMpCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwbGljYXRpb24sIGF1dGhmdW5jLCB0ZW1wbGF0ZT1Ob25lKToKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uCisgICAgICAgIHNlbGYuYXV0aGZ1bmMgPSBhdXRoZnVuYworICAgICAgICBzZWxmLnRlbXBsYXRlID0gdGVtcGxhdGUgb3IgVEVNUExBVEUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHVzZXJuYW1lID0gZW52aXJvbi5nZXQoJ1JFTU9URV9VU0VSJywnJykKKyAgICAgICAgaWYgdXNlcm5hbWU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgICAgICBpZiAnUE9TVCcgPT0gZW52aXJvblsnUkVRVUVTVF9NRVRIT0QnXToKKyAgICAgICAgICAgIGZvcm12YXJzID0gcGFyc2VfZm9ybXZhcnMoZW52aXJvbiwgaW5jbHVkZV9nZXRfdmFycz1GYWxzZSkKKyAgICAgICAgICAgIHVzZXJuYW1lID0gZm9ybXZhcnMuZ2V0KCd1c2VybmFtZScpCisgICAgICAgICAgICBwYXNzd29yZCA9IGZvcm12YXJzLmdldCgncGFzc3dvcmQnKQorICAgICAgICAgICAgaWYgdXNlcm5hbWUgYW5kIHBhc3N3b3JkOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuYXV0aGZ1bmMoZW52aXJvbiwgdXNlcm5hbWUsIHBhc3N3b3JkKToKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvblsnQVVUSF9UWVBFJ10gPSAnZm9ybScKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvblsnUkVNT1RFX1VTRVInXSA9IHVzZXJuYW1lCisgICAgICAgICAgICAgICAgICAgIGVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10gPSAnR0VUJworICAgICAgICAgICAgICAgICAgICBlbnZpcm9uWydDT05URU5UX0xFTkdUSCddID0gJycKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvblsnQ09OVEVOVF9UWVBFJ10gPSAnJworICAgICAgICAgICAgICAgICAgICBkZWwgZW52aXJvblsncGFzdGUucGFyc2VkX2Zvcm12YXJzJ10KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICAgICAgY29udGVudCA9IHNlbGYudGVtcGxhdGUgJSBjb25zdHJ1Y3RfdXJsKGVudmlyb24pCisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCIyMDAgT0siLCBbKCdDb250ZW50LVR5cGUnLCAndGV4dC9odG1sJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdDb250ZW50LUxlbmd0aCcsIHN0cihsZW4oY29udGVudCkpKV0pCisgICAgICAgIHJldHVybiBbY29udGVudF0KKworbWlkZGxld2FyZSA9IEF1dGhGb3JtSGFuZGxlcgorCitfX2FsbF9fID0gWydBdXRoRm9ybUhhbmRsZXInXQorCitkZWYgbWFrZV9mb3JtKGFwcCwgZ2xvYmFsX2NvbmYsIHJlYWxtLCBhdXRoZnVuYywgKiprdyk6CisgICAgIiIiCisgICAgR3JhbnQgYWNjZXNzIHZpYSBmb3JtIGF1dGhlbnRpY2F0aW9uCisKKyAgICBDb25maWcgbG9va3MgbGlrZSB0aGlzOjoKKworICAgICAgW2ZpbHRlcjpncmFudF0KKyAgICAgIHVzZSA9IGVnZzpQYXN0ZSNhdXRoX2Zvcm0KKyAgICAgIHJlYWxtPW15cmVhbG0KKyAgICAgIGF1dGhmdW5jPXNvbWVwYWNrYWdlLnNvbWVtb2R1bGU6c29tZWZ1bmN0aW9uCisKKyAgICAiIiIKKyAgICBmcm9tIHBhc3RlLnV0aWwuaW1wb3J0X3N0cmluZyBpbXBvcnQgZXZhbF9pbXBvcnQKKyAgICBpbXBvcnQgdHlwZXMKKyAgICBhdXRoZnVuYyA9IGV2YWxfaW1wb3J0KGF1dGhmdW5jKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGF1dGhmdW5jLCB0eXBlcy5GdW5jdGlvblR5cGUpLCAiYXV0aGZ1bmMgbXVzdCByZXNvbHZlIHRvIGEgZnVuY3Rpb24iCisgICAgdGVtcGxhdGUgPSBrdy5nZXQoJ3RlbXBsYXRlJykKKyAgICBpZiB0ZW1wbGF0ZSBpcyBub3QgTm9uZToKKyAgICAgICAgdGVtcGxhdGUgPSBldmFsX2ltcG9ydCh0ZW1wbGF0ZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodGVtcGxhdGUsIHN0ciksICJ0ZW1wbGF0ZSBtdXN0IHJlc29sdmUgdG8gYSBzdHJpbmciCisKKyAgICByZXR1cm4gQXV0aEZvcm1IYW5kbGVyKGFwcCwgYXV0aGZ1bmMsIHRlbXBsYXRlKQorCitpZiAiX19tYWluX18iID09IF9fbmFtZV9fOgorICAgIGltcG9ydCBkb2N0ZXN0CisgICAgZG9jdGVzdC50ZXN0bW9kKG9wdGlvbmZsYWdzPWRvY3Rlc3QuRUxMSVBTSVMpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9ncmFudGlwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvZ3JhbnRpcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmU2ZTFjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvZ3JhbnRpcC5weQpAQCAtMCwwICsxLDExNCBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitHcmFudCByb2xlcyBhbmQgbG9naW5zIGJhc2VkIG9uIElQIGFkZHJlc3MuCisiIiIKK2ltcG9ydCBzaXgKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgaXA0CisKK2NsYXNzIEdyYW50SVBNaWRkbGV3YXJlKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBPbiBlYWNoIHJlcXVlc3QsIGBgaXBfbWFwYGAgaXMgY2hlY2tlZCBhZ2FpbnN0IGBgUkVNT1RFX0FERFJgYAorICAgIGFuZCBsb2dpbnMgYW5kIHJvbGVzIGFyZSBhc3NpZ25lZCBiYXNlZCBvbiB0aGF0LgorCisgICAgYGBpcF9tYXBgYCBpcyBhIG1hcCBvZiB7aXBfbWFzazogKHVzZXJuYW1lLCByb2xlcyl9LiAgRWl0aGVyCisgICAgYGB1c2VybmFtZWBgIG9yIGBgcm9sZXNgYCBtYXkgYmUgTm9uZS4gIFJvbGVzIG1heSBhbHNvIGJlIHByZWZpeGVkCisgICAgd2l0aCBgYC1gYCwgbGlrZSBgYCctc3lzdGVtJ2BgIG1lYW5pbmcgdGhhdCByb2xlIHNob3VsZCBiZQorICAgIHJldm9rZWQuICBgYCdfX3JlbW92ZV9fJ2BgIGZvciBhIHVzZXJuYW1lIHdpbGwgcmVtb3ZlIHRoZSB1c2VybmFtZS4KKworICAgIElmIGBgY2xvYmJlcl91c2VybmFtZWBgIGlzIHRydWUgKGRlZmF1bHQpIHRoZW4gYW55IHVzZXIKKyAgICBzcGVjaWZpY2F0aW9uIHdpbGwgb3ZlcnJpZGUgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYGBSRU1PVEVfVVNFUmBgLgorICAgIGBgJ19fcmVtb3ZlX18nYGAgd2lsbCBhbHdheXMgY2xvYmJlciB0aGUgdXNlcm5hbWUuCisKKyAgICBgYGlwX21hc2tgYCBpcyBzb21ldGhpbmcgdGhhdCBgcGFzdGUudXRpbC5pcDQ6SVA0UmFuZ2UKKyAgICA8Y2xhc3MtcGFzdGUudXRpbC5pcDQuSVA0UmFuZ2UuaHRtbD5gXyBjYW4gcGFyc2UuICBTaW1wbGUgSVAKKyAgICBhZGRyZXNzZXMsIElQL21hc2ssIGlwPC0+aXAgcmFuZ2VzLCBhbmQgaG9zdG5hbWVzIGFyZSBhbGxvd2VkLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgaXBfbWFwLCBjbG9iYmVyX3VzZXJuYW1lPVRydWUpOgorICAgICAgICBzZWxmLmFwcCA9IGFwcAorICAgICAgICBzZWxmLmlwX21hcCA9IFtdCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGlwX21hcC5pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5pcF9tYXAuYXBwZW5kKChpcDQuSVA0UmFuZ2Uoa2V5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udmVydF91c2VyX3JvbGUodmFsdWVbMF0sIHZhbHVlWzFdKSkpCisgICAgICAgIHNlbGYuY2xvYmJlcl91c2VybmFtZSA9IGNsb2JiZXJfdXNlcm5hbWUKKworICAgIGRlZiBfY29udmVydF91c2VyX3JvbGUoc2VsZiwgdXNlcm5hbWUsIHJvbGVzKToKKyAgICAgICAgaWYgcm9sZXMgYW5kIGlzaW5zdGFuY2Uocm9sZXMsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgcm9sZXMgPSByb2xlcy5zcGxpdCgnLCcpCisgICAgICAgIHJldHVybiAodXNlcm5hbWUsIHJvbGVzKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgYWRkciA9IGlwNC5pcDJpbnQoZW52aXJvblsnUkVNT1RFX0FERFInXSwgRmFsc2UpCisgICAgICAgIHJlbW92ZV91c2VyID0gRmFsc2UKKyAgICAgICAgYWRkX3JvbGVzID0gW10KKyAgICAgICAgZm9yIHJhbmdlLCAodXNlcm5hbWUsIHJvbGVzKSBpbiBzZWxmLmlwX21hcDoKKyAgICAgICAgICAgIGlmIGFkZHIgaW4gcmFuZ2U6CisgICAgICAgICAgICAgICAgaWYgcm9sZXM6CisgICAgICAgICAgICAgICAgICAgIGFkZF9yb2xlcy5leHRlbmQocm9sZXMpCisgICAgICAgICAgICAgICAgaWYgdXNlcm5hbWUgPT0gJ19fcmVtb3ZlX18nOgorICAgICAgICAgICAgICAgICAgICByZW1vdmVfdXNlciA9IFRydWUKKyAgICAgICAgICAgICAgICBlbGlmIHVzZXJuYW1lOgorICAgICAgICAgICAgICAgICAgICBpZiAobm90IGVudmlyb24uZ2V0KCdSRU1PVEVfVVNFUicpCisgICAgICAgICAgICAgICAgICAgICAgICBvciBzZWxmLmNsb2JiZXJfdXNlcm5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvblsnUkVNT1RFX1VTRVInXSA9IHVzZXJuYW1lCisgICAgICAgIGlmIChyZW1vdmVfdXNlciBhbmQgJ1JFTU9URV9VU0VSJyBpbiBlbnZpcm9uKToKKyAgICAgICAgICAgIGRlbCBlbnZpcm9uWydSRU1PVEVfVVNFUiddCisgICAgICAgIGlmIHJvbGVzOgorICAgICAgICAgICAgc2VsZi5fc2V0X3JvbGVzKGVudmlyb24sIGFkZF9yb2xlcykKKyAgICAgICAgcmV0dXJuIHNlbGYuYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgZGVmIF9zZXRfcm9sZXMoc2VsZiwgZW52aXJvbiwgcm9sZXMpOgorICAgICAgICBjdXJfcm9sZXMgPSBlbnZpcm9uLmdldCgnUkVNT1RFX1VTRVJfVE9LRU5TJywgJycpLnNwbGl0KCcsJykKKyAgICAgICAgIyBHZXQgcmlkIG9mIGVtcHR5IHJvbGVzOgorICAgICAgICBjdXJfcm9sZXMgPSBsaXN0KGZpbHRlcihOb25lLCBjdXJfcm9sZXMpKQorICAgICAgICByZW1vdmVfcm9sZXMgPSBbXQorICAgICAgICBmb3Igcm9sZSBpbiByb2xlczoKKyAgICAgICAgICAgIGlmIHJvbGUuc3RhcnRzd2l0aCgnLScpOgorICAgICAgICAgICAgICAgIHJlbW92ZV9yb2xlcy5hcHBlbmQocm9sZVsxOl0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHJvbGUgbm90IGluIGN1cl9yb2xlczoKKyAgICAgICAgICAgICAgICAgICAgY3VyX3JvbGVzLmFwcGVuZChyb2xlKQorICAgICAgICBmb3Igcm9sZSBpbiByZW1vdmVfcm9sZXM6CisgICAgICAgICAgICBpZiByb2xlIGluIGN1cl9yb2xlczoKKyAgICAgICAgICAgICAgICBjdXJfcm9sZXMucmVtb3ZlKHJvbGUpCisgICAgICAgIGVudmlyb25bJ1JFTU9URV9VU0VSX1RPS0VOUyddID0gJywnLmpvaW4oY3VyX3JvbGVzKQorCisKK2RlZiBtYWtlX2dyYW50aXAoYXBwLCBnbG9iYWxfY29uZiwgY2xvYmJlcl91c2VybmFtZT1GYWxzZSwgKiprdyk6CisgICAgIiIiCisgICAgR3JhbnQgcm9sZXMgb3IgdXNlcm5hbWVzIGJhc2VkIG9uIElQIGFkZHJlc3Nlcy4KKworICAgIENvbmZpZyBsb29rcyBsaWtlIHRoaXM6OgorCisgICAgICBbZmlsdGVyOmdyYW50XQorICAgICAgdXNlID0gZWdnOlBhc3RlI2dyYW50aXAKKyAgICAgIGNsb2JiZXJfdXNlcm5hbWUgPSB0cnVlCisgICAgICAjIEdpdmUgbG9jYWxob3N0IHN5c3RlbSByb2xlIChubyB1c2VybmFtZSk6CisgICAgICAxMjcuMC4wLjEgPSAtOnN5c3RlbQorICAgICAgIyBHaXZlIGV2ZXJ5b25lIGluIDE5Mi4xNjguMC4qIGVkaXRvciByb2xlOgorICAgICAgMTkyLjE2OC4wLjAvMjQgPSAtOmVkaXRvcgorICAgICAgIyBHaXZlIG9uZSBJUCB0aGUgdXNlcm5hbWUgam9lOgorICAgICAgMTkyLjE2OC4wLjcgPSBqb2UKKyAgICAgICMgQW5kIG9uZSBJUCBpcyBzaG91bGQgbm90IGJlIGxvZ2dlZCBpbjoKKyAgICAgIDE5Mi4xNjguMC4xMCA9IF9fcmVtb3ZlX186LWVkaXRvcgorCisgICAgIiIiCisgICAgZnJvbSBwYXN0ZS5kZXBsb3kuY29udmVydGVycyBpbXBvcnQgYXNib29sCisgICAgY2xvYmJlcl91c2VybmFtZSA9IGFzYm9vbChjbG9iYmVyX3VzZXJuYW1lKQorICAgIGlwX21hcCA9IHt9CisgICAgZm9yIGtleSwgdmFsdWUgaW4ga3cuaXRlbXMoKToKKyAgICAgICAgaWYgJzonIGluIHZhbHVlOgorICAgICAgICAgICAgdXNlcm5hbWUsIHJvbGUgPSB2YWx1ZS5zcGxpdCgnOicsIDEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB1c2VybmFtZSA9IHZhbHVlCisgICAgICAgICAgICByb2xlID0gJycKKyAgICAgICAgaWYgdXNlcm5hbWUgPT0gJy0nOgorICAgICAgICAgICAgdXNlcm5hbWUgPSAnJworICAgICAgICBpZiByb2xlID09ICctJzoKKyAgICAgICAgICAgIHJvbGUgPSAnJworICAgICAgICBpcF9tYXBba2V5XSA9IHZhbHVlCisgICAgcmV0dXJuIEdyYW50SVBNaWRkbGV3YXJlKGFwcCwgaXBfbWFwLCBjbG9iYmVyX3VzZXJuYW1lKQorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL211bHRpLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvbXVsdGkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM3OGZhNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9hdXRoL211bHRpLnB5CkBAIC0wLDAgKzEsNzkgQEAKKyMgKGMpIDIwMDUgQ2xhcmsgQy4gRXZhbnMKKyMgVGhpcyBtb2R1bGUgaXMgcGFydCBvZiB0aGUgUHl0aG9uIFBhc3RlIFByb2plY3QgYW5kIGlzIHJlbGVhc2VkIHVuZGVyCisjIHRoZSBNSVQgTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMgVGhpcyBjb2RlIHdhcyB3cml0dGVuIHdpdGggZnVuZGluZyBieSBodHRwOi8vcHJvbWV0aGV1c3Jlc2VhcmNoLmNvbQorIiIiCitBdXRoZW50aWNhdGlvbiB2aWEgTXVsdGlwbGUgTWV0aG9kcworCitJbiBzb21lIGVudmlyb25tZW50cywgdGhlIGNob2ljZSBvZiBhdXRoZW50aWNhdGlvbiBtZXRob2QgdG8gYmUgdXNlZAorZGVwZW5kcyB1cG9uIHRoZSBlbnZpcm9ubWVudCBhbmQgaXMgbm90ICJmaXhlZCIuICBUaGlzIG1pZGRsZXdhcmUgYWxsb3dzCitOIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgdG8gYmUgcmVnaXN0ZXJlZCBhbG9uZyB3aXRoIGEgZ29vZG5lc3MgZnVuY3Rpb24KK3doaWNoIGRldGVybWluZXMgd2hpY2ggbWV0aG9kIHNob3VsZCBiZSB1c2VkLiBUaGUgZm9sbG93aW5nIGV4YW1wbGUKK2RlbW9uc3RyYXRlcyBob3cgdG8gdXNlIGJvdGggZm9ybSBhbmQgZGlnZXN0IGF1dGhlbnRpY2F0aW9uIGluIGEgc2VydmVyCitzdGFjazsgYnkgZGVmYXVsdCBpdCB1c2VzIGZvcm0tYmFzZWQgYXV0aGVudGljYXRpb24gdW5sZXNzCitgYCphdXRobWV0aD1kaWdlc3RgYCBpcyBzcGVjaWZpZWQgYXMgYSBxdWVyeSBhcmd1bWVudC4KKworPj4+IGZyb20gcGFzdGUuYXV0aCBpbXBvcnQgZm9ybSwgY29va2llLCBkaWdlc3QsIG11bHRpCis+Pj4gZnJvbSBwYXN0ZS53c2dpbGliIGltcG9ydCBkdW1wX2Vudmlyb24KKz4+PiBmcm9tIHBhc3RlLmh0dHBzZXJ2ZXIgaW1wb3J0IHNlcnZlCis+Pj4KKz4+PiBtdWx0aSA9IG11bHRpLk11bHRpSGFuZGxlcihkdW1wX2Vudmlyb24pCis+Pj4gZGVmIGF1dGhmdW5jKGVudmlyb24sIHJlYWxtLCB1c2VyKToKKy4uLiAgICAgcmV0dXJuIGRpZ2VzdC5kaWdlc3RfcGFzc3dvcmQocmVhbG0sIHVzZXIsIHVzZXIpCis+Pj4gbXVsdGkuYWRkX21ldGhvZCgnZGlnZXN0JywgZGlnZXN0Lm1pZGRsZXdhcmUsICJUZXN0IFJlYWxtIiwgYXV0aGZ1bmMpCis+Pj4gbXVsdGkuc2V0X3F1ZXJ5X2FyZ3VtZW50KCdkaWdlc3QnKQorPj4+Cis+Pj4gZGVmIGF1dGhmdW5jKGVudmlyb24sIHVzZXJuYW1lLCBwYXNzd29yZCk6CisuLi4gICAgIHJldHVybiB1c2VybmFtZSA9PSBwYXNzd29yZAorPj4+IG11bHRpLmFkZF9tZXRob2QoJ2Zvcm0nLCBmb3JtLm1pZGRsZXdhcmUsIGF1dGhmdW5jKQorPj4+IG11bHRpLnNldF9kZWZhdWx0KCdmb3JtJykKKz4+PiBzZXJ2ZShjb29raWUubWlkZGxld2FyZShtdWx0aSkpCitzZXJ2aW5nIG9uLi4uCisKKyIiIgorCitjbGFzcyBNdWx0aUhhbmRsZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBNdWx0aXBsZSBBdXRoZW50aWNhdGlvbiBIYW5kbGVyCisKKyAgICBUaGlzIG1pZGRsZXdhcmUgcHJvdmlkZXMgdHdvIG90aG9nb25hbCBmYWNpbGl0aWVzOgorCisgICAgICAtIGEgbWFubmVyIHRvIHJlZ2lzdGVyIGFueSBudW1iZXIgb2YgYXV0aGVudGljYXRpb24gbWlkZGxld2FyZXMKKworICAgICAgLSBhIG1lY2hhbmlzbSB0byByZWdpc3RlciBwcmVkaWNhdGVzIHdoaWNoIGNhdXNlIG9uZSBvZiB0aGUKKyAgICAgICAgcmVnaXN0ZXJlZCBtaWRkbGV3YXJlcyB0byBiZSB1c2VkIGRlcGVuZGluZyB1cG9uIHRoZSByZXF1ZXN0CisKKyAgICBJZiBub25lIG9mIHRoZSBwcmVkaWNhdGVzIHJldHVybnMgVHJ1ZSwgdGhlbiB0aGUgYXBwbGljYXRpb24gaXMKKyAgICBpbnZva2VkIGRpcmVjdGx5IHdpdGhvdXQgbWlkZGxld2FyZQorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBsaWNhdGlvbik6CisgICAgICAgIHNlbGYuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbgorICAgICAgICBzZWxmLmRlZmF1bHQgPSBhcHBsaWNhdGlvbgorICAgICAgICBzZWxmLmJpbmRpbmcgPSB7fQorICAgICAgICBzZWxmLnByZWRpY2F0ZSA9IFtdCisgICAgZGVmIGFkZF9tZXRob2Qoc2VsZiwgbmFtZSwgZmFjdG9yeSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5iaW5kaW5nW25hbWVdID0gZmFjdG9yeShzZWxmLmFwcGxpY2F0aW9uLCAqYXJncywgKiprd2FyZ3MpCisgICAgZGVmIGFkZF9wcmVkaWNhdGUoc2VsZiwgbmFtZSwgY2hlY2tlcik6CisgICAgICAgIHNlbGYucHJlZGljYXRlLmFwcGVuZCgoY2hlY2tlciwgc2VsZi5iaW5kaW5nW25hbWVdKSkKKyAgICBkZWYgc2V0X2RlZmF1bHQoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIiBzZXQgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBtZXRob2QgIiIiCisgICAgICAgIHNlbGYuZGVmYXVsdCA9IHNlbGYuYmluZGluZ1tuYW1lXQorICAgIGRlZiBzZXRfcXVlcnlfYXJndW1lbnQoc2VsZiwgbmFtZSwga2V5ID0gJyphdXRobWV0aCcsIHZhbHVlID0gTm9uZSk6CisgICAgICAgICIiIiBjaG9vc2UgYXV0aGVudGljYXRpb24gbWV0aG9kIGJhc2VkIG9uIGEgcXVlcnkgYXJndW1lbnQgIiIiCisgICAgICAgIGxvb2tmb3IgPSAiJXM9JXMiICUgKGtleSwgdmFsdWUgb3IgbmFtZSkKKyAgICAgICAgc2VsZi5hZGRfcHJlZGljYXRlKG5hbWUsCisgICAgICAgICAgICBsYW1iZGEgZW52aXJvbjogbG9va2ZvciBpbiBlbnZpcm9uLmdldCgnUVVFUllfU1RSSU5HJywnJykpCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgZm9yIChjaGVja2VyLCBiaW5kaW5nKSBpbiBzZWxmLnByZWRpY2F0ZToKKyAgICAgICAgICAgIGlmIGNoZWNrZXIoZW52aXJvbik6CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpbmRpbmcoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIHJldHVybiBzZWxmLmRlZmF1bHQoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK21pZGRsZXdhcmUgPSBNdWx0aUhhbmRsZXIKKworX19hbGxfXyA9IFsnTXVsdGlIYW5kbGVyJ10KKworaWYgIl9fbWFpbl9fIiA9PSBfX25hbWVfXzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZChvcHRpb25mbGFncz1kb2N0ZXN0LkVMTElQU0lTKQorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvYXV0aC9vcGVuX2lkLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvb3Blbl9pZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzlmN2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2F1dGgvb3Blbl9pZC5weQpAQCAtMCwwICsxLDQxMyBAQAorIyAoYykgMjAwNSBCZW4gQmFuZ2VydAorIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitPcGVuSUQgQXV0aGVudGljYXRpb24gKENvbnN1bWVyKQorCitPcGVuSUQgaXMgYSBkaXN0cmlidXRlZCBhdXRoZW50aWNhdGlvbiBzeXN0ZW0gZm9yIHNpbmdsZSBzaWduLW9uIG9yaWdpbmFsbHkKK2RldmVsb3BlZCBhdC9mb3IgTGl2ZUpvdXJuYWwuY29tLgorCisgICAgaHR0cDovL29wZW5pZC5uZXQvCisKK1VSTC4gWW91IGNhbiBoYXZlIG11bHRpcGxlIGlkZW50aXRpZXMgaW4gdGhlIHNhbWUgd2F5IHlvdSBjYW4gaGF2ZSBtdWx0aXBsZQorVVJMcy4gQWxsIE9wZW5JRCBkb2VzIGlzIHByb3ZpZGUgYSB3YXkgdG8gcHJvdmUgdGhhdCB5b3Ugb3duIGEgVVJMIChpZGVudGl0eSkuCitBbmQgaXQgZG9lcyB0aGlzIHdpdGhvdXQgcGFzc2luZyBhcm91bmQgeW91ciBwYXNzd29yZCwgeW91ciBlbWFpbCBhZGRyZXNzLCBvcgorYW55dGhpbmcgeW91IGRvbid0IHdhbnQgaXQgdG8uIFRoZXJlJ3Mgbm8gcHJvZmlsZSBleGNoYW5nZSBjb21wb25lbnQgYXQgYWxsOgoreW91ciBwcm9maWlsZSBpcyB5b3VyIGlkZW50aXR5IFVSTCwgYnV0IHJlY2lwaWVudHMgb2YgeW91ciBpZGVudGl0eSBjYW4gdGhlbgorbGVhcm4gbW9yZSBhYm91dCB5b3UgZnJvbSBhbnkgcHVibGljLCBzZW1hbnRpY2FsbHkgaW50ZXJlc3RpbmcgZG9jdW1lbnRzCitsaW5rZWQgdGhlcmV1bmRlciAoRk9BRiwgUlNTLCBBdG9tLCB2Q0FSRCwgZXRjLikuCisKK2BgTm90ZWBgOiBwYXN0ZS5hdXRoLm9wZW5pZCByZXF1aXJlcyBpbnN0YWxsYXRpb24gb2YgdGhlIFB5dGhvbi1PcGVuSUQKK2xpYnJhcmllczo6CisKKyAgICBodHRwOi8vd3d3Lm9wZW5pZGVuYWJsZWQuY29tLworCitUaGlzIG1vZHVsZSBpcyBiYXNlZCBoaWdobHkgb2ZmIHRoZSBjb25zdW1lci5weSB0aGF0IFB5dGhvbiBPcGVuSUQgY29tZXMgd2l0aC4KKworVXNpbmcgdGhlIE9wZW5JRCBNaWRkbGV3YXJlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVXNpbmcgdGhlIE9wZW5JRCBtaWRkbGV3YXJlIGlzIGZhaXJseSBlYXN5LCB0aGUgbW9zdCBtaW5pbWFsIGV4YW1wbGUgdXNpbmcgdGhlCitiYXNpYyBsb2dpbiBmb3JtIHRoYXRzIGluY2x1ZGVkOjoKKworICAgICMgQWRkIHRvIHlvdXIgd3NnaSBhcHAgY3JlYXRpb24KKyAgICBmcm9tIHBhc3RlLmF1dGggaW1wb3J0IG9wZW5faWQKKworICAgIHdzZ2lfYXBwID0gb3Blbl9pZC5taWRkbGV3YXJlKHdzZ2lfYXBwLCAnL3NvbWV3aGVyZS90by9zdG9yZS9vcGVuaWQvZGF0YScpCisKK1lvdSB3aWxsIG5vdyBoYXZlIHRoZSBPcGVuSUQgZm9ybSBhdmFpbGFibGUgYXQgL29pZCBvbiB5b3VyIHNpdGUuIExvZ2dpbmcgaW4gd2lsbAordmVyaWZ5IHRoYXQgdGhlIGxvZ2luIHdvcmtlZC4KKworQSBtb3JlIGNvbXBsZXRlIGxvZ2luIHNob3VsZCBpbnZvbHZlIGhhdmluZyB0aGUgT3BlbklEIG1pZGRsZXdhcmUgbG9hZCB5b3VyIG93bgorbG9naW4gcGFnZSBhZnRlciB2ZXJpZnlpbmcgdGhlIE9wZW5JRCBVUkwgc28gdGhhdCB5b3UgY2FuIHJldGFpbiB0aGUgbG9naW4KK2luZm9ybWF0aW9uIGluIHlvdXIgd2ViYXBwIChzZXNzaW9uLCBjb29raWVzLCBldGMuKTo6CisKKyAgICB3c2dpX2FwcCA9IG9wZW5faWQubWlkZGxld2FyZSh3c2dpX2FwcCwgJy9zb21ld2hlcmUvdG8vc3RvcmUvb3BlbmlkL2RhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luX3JlZGlyZWN0PScveW91ci9sb2dpbi9jb2RlJykKKworWW91ciBsb2dpbiBjb2RlIHNob3VsZCB0aGVuIGJlIGNvbmZpZ3VyZWQgdG8gcmV0cmlldmUgJ3Bhc3RlLmF1dGgub3Blbl9pZCcgZm9yCit0aGUgdXNlcnMgT3BlbklEIFVSTC4gSWYgdGhpcyBrZXkgZG9lcyBub3QgZXhpc3QsIHRoZSB1c2VyIGhhcyBub3QgbG9nZ2VkIGluLgorCitPbmNlIHRoZSBsb2dpbiBpcyByZXRyaWV2ZWQsIGl0IHNob3VsZCBiZSBzYXZlZCBpbiB5b3VyIHdlYmFwcCwgYW5kIHRoZSB1c2VyCitzaG91bGQgYmUgcmVkaXJlY3RlZCB0byB3aGVyZXZlciB0aGV5IHdvdWxkIG5vcm1hbGx5IGdvIGFmdGVyIGEgc3VjY2Vzc2Z1bAorbG9naW4uCisiIiIKKworX19hbGxfXyA9IFsnQXV0aE9wZW5JREhhbmRsZXInXQorCitpbXBvcnQgY2dpCitpbXBvcnQgdXJscGFyc2UKK2ltcG9ydCByZQoraW1wb3J0IHNpeAorCitpbXBvcnQgcGFzdGUucmVxdWVzdAorZnJvbSBwYXN0ZSBpbXBvcnQgaHR0cGV4Y2VwdGlvbnMKKworZGVmIHF1b3RlYXR0cihzKToKKyAgICBxcyA9IGNnaS5lc2NhcGUocywgMSkKKyAgICByZXR1cm4gJyIlcyInICUgKHFzLCkKKworIyBZb3UgbWF5IG5lZWQgdG8gbWFudWFsbHkgYWRkIHRoZSBvcGVuaWQgcGFja2FnZSBpbnRvIHlvdXIKKyMgcHl0aG9uIHBhdGggaWYgeW91IGRvbid0IGhhdmUgaXQgaW5zdGFsbGVkIHdpdGggeW91ciBzeXN0ZW0gcHl0aG9uLgorIyBJZiBzbywgdW5jb21tZW50IHRoZSBsaW5lIGJlbG93LCBhbmQgY2hhbmdlIHRoZSBwYXRoIHdoZXJlIHlvdSBoYXZlCisjIFB5dGhvbi1PcGVuSUQuCisjIHN5cy5wYXRoLmFwcGVuZCgnL3BhdGgvdG8vb3BlbmlkLycpCisKK2Zyb20gb3BlbmlkLnN0b3JlIGltcG9ydCBmaWxlc3RvcmUKK2Zyb20gb3BlbmlkLmNvbnN1bWVyIGltcG9ydCBjb25zdW1lcgorZnJvbSBvcGVuaWQub2lkdXRpbCBpbXBvcnQgYXBwZW5kQXJncworCitjbGFzcyBBdXRoT3BlbklESGFuZGxlcihvYmplY3QpOgorICAgICIiIgorICAgIFRoaXMgbWlkZGxld2FyZSBpbXBsZW1lbnRzIE9wZW5JRCBDb25zdW1lciBiZWhhdmlvciB0byBhdXRoZW50aWNhdGUgYQorICAgIFVSTCBhZ2FpbnN0IGFuIE9wZW5JRCBTZXJ2ZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwLCBkYXRhX3N0b3JlX3BhdGgsIGF1dGhfcHJlZml4PScvb2lkJywKKyAgICAgICAgICAgICAgICAgbG9naW5fcmVkaXJlY3Q9Tm9uZSwgY2F0Y2hfNDAxPUZhbHNlLAorICAgICAgICAgICAgICAgICB1cmxfdG9fdXNlcm5hbWU9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBPcGVuSUQgbWlkZGxld2FyZQorCisgICAgICAgIGBgYXBwYGAKKyAgICAgICAgICAgIFlvdXIgV1NHSSBhcHAgdG8gY2FsbAorCisgICAgICAgIGBgZGF0YV9zdG9yZV9wYXRoYGAKKyAgICAgICAgICAgIERpcmVjdG9yeSB0byBzdG9yZSBjcnlwdG8gZGF0YSBpbiBmb3IgdXNlIHdpdGggT3BlbklEIHNlcnZlcnMuCisKKyAgICAgICAgYGBhdXRoX3ByZWZpeGBgCisgICAgICAgICAgICBMb2NhdGlvbiBmb3IgYXV0aGVudGljYXRpb24gcHJvY2Vzcy92ZXJpZmljYXRpb24KKworICAgICAgICBgYGxvZ2luX3JlZGlyZWN0YGAKKyAgICAgICAgICAgIExvY2F0aW9uIHRvIGxvYWQgYWZ0ZXIgc3VjY2Vzc2Z1bCBwcm9jZXNzIG9mIGxvZ2luCisKKyAgICAgICAgYGBjYXRjaF80MDFgYAorICAgICAgICAgICAgSWYgdHJ1ZSwgdGhlbiBhbnkgNDAxIHJlc3BvbnNlcyB3aWxsIHR1cm4gaW50byBvcGVuIElEIGxvZ2luCisgICAgICAgICAgICByZXF1aXJlbWVudHMuCisKKyAgICAgICAgYGB1cmxfdG9fdXNlcm5hbWVgYAorICAgICAgICAgICAgQSBmdW5jdGlvbiBjYWxsZWQgbGlrZSBgYHVybF90b191c2VybmFtZShlbnZpcm9uLCB1cmwpYGAsIHdoaWNoIHNob3VsZAorICAgICAgICAgICAgcmV0dXJuIGEgc3RyaW5nIHVzZXJuYW1lLiAgSWYgbm90IGdpdmVuLCB0aGUgVVJMIHdpbGwgYmUgdGhlIHVzZXJuYW1lLgorICAgICAgICAiIiIKKyAgICAgICAgc3RvcmUgPSBmaWxlc3RvcmUuRmlsZU9wZW5JRFN0b3JlKGRhdGFfc3RvcmVfcGF0aCkKKyAgICAgICAgc2VsZi5vaWRjb25zdW1lciA9IGNvbnN1bWVyLk9wZW5JRENvbnN1bWVyKHN0b3JlKQorCisgICAgICAgIHNlbGYuYXBwID0gYXBwCisgICAgICAgIHNlbGYuYXV0aF9wcmVmaXggPSBhdXRoX3ByZWZpeAorICAgICAgICBzZWxmLmRhdGFfc3RvcmVfcGF0aCA9IGRhdGFfc3RvcmVfcGF0aAorICAgICAgICBzZWxmLmxvZ2luX3JlZGlyZWN0ID0gbG9naW5fcmVkaXJlY3QKKyAgICAgICAgc2VsZi5jYXRjaF80MDEgPSBjYXRjaF80MDEKKyAgICAgICAgc2VsZi51cmxfdG9fdXNlcm5hbWUgPSB1cmxfdG9fdXNlcm5hbWUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGlmIGVudmlyb25bJ1BBVEhfSU5GTyddLnN0YXJ0c3dpdGgoc2VsZi5hdXRoX3ByZWZpeCk6CisgICAgICAgICAgICAjIExldCdzIGxvYWQgZXZlcnl0aGluZyBpbnRvIGEgcmVxdWVzdCBkaWN0IHRvIHBhc3MgYXJvdW5kIGVhc2llcgorICAgICAgICAgICAgcmVxdWVzdCA9IGRpY3QoZW52aXJvbj1lbnZpcm9uLCBzdGFydD1zdGFydF9yZXNwb25zZSwgYm9keT1bXSkKKyAgICAgICAgICAgIHJlcXVlc3RbJ2Jhc2VfdXJsJ10gPSBwYXN0ZS5yZXF1ZXN0LmNvbnN0cnVjdF91cmwoZW52aXJvbiwgd2l0aF9wYXRoX2luZm89RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhfcXVlcnlfc3RyaW5nPUZhbHNlKQorCisgICAgICAgICAgICBwYXRoID0gcmUuc3ViKHNlbGYuYXV0aF9wcmVmaXgsICcnLCBlbnZpcm9uWydQQVRIX0lORk8nXSkKKyAgICAgICAgICAgIHJlcXVlc3RbJ3BhcnNlZF91cmknXSA9IHVybHBhcnNlLnVybHBhcnNlKHBhdGgpCisgICAgICAgICAgICByZXF1ZXN0WydxdWVyeSddID0gZGljdChwYXN0ZS5yZXF1ZXN0LnBhcnNlX3F1ZXJ5c3RyaW5nKGVudmlyb24pKQorCisgICAgICAgICAgICBwYXRoID0gcmVxdWVzdFsncGFyc2VkX3VyaSddWzJdCisgICAgICAgICAgICBpZiBwYXRoID09ICcvJyBvciBub3QgcGF0aDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZW5kZXIocmVxdWVzdCkKKyAgICAgICAgICAgIGVsaWYgcGF0aCA9PSAnL3ZlcmlmeSc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZG9fdmVyaWZ5KHJlcXVlc3QpCisgICAgICAgICAgICBlbGlmIHBhdGggPT0gJy9wcm9jZXNzJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5kb19wcm9jZXNzKHJlcXVlc3QpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm5vdF9mb3VuZChyZXF1ZXN0KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2VsZi5jYXRjaF80MDE6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2F0Y2hfNDAxX2FwcF9jYWxsKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgZGVmIGNhdGNoXzQwMV9hcHBfY2FsbChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICIiIgorICAgICAgICBDYWxsIHRoZSBhcHBsaWNhdGlvbiwgYW5kIHJlZGlyZWN0IGlmIHRoZSBhcHAgcmV0dXJucyBhIDQwMSByZXNwb25zZQorICAgICAgICAiIiIKKyAgICAgICAgd2FzXzQwMSA9IFtdCisgICAgICAgIGRlZiByZXBsYWNlbWVudF9zdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgaWYgaW50KHN0YXR1cy5zcGxpdChOb25lLCAxKSkgPT0gNDAxOgorICAgICAgICAgICAgICAgICMgQEA6IERvIEkgbmVlZCB0byBhcHBlbmQgc29tZXRoaW5nIHRvIGdvIGJhY2sgdG8gd2hlcmUgd2UKKyAgICAgICAgICAgICAgICAjIGNhbWUgZnJvbT8KKyAgICAgICAgICAgICAgICB3YXNfNDAxLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgIGRlZiBkdW1teV93cml0ZXIodik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICByZXR1cm4gZHVtbXlfd3JpdGVyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvKQorICAgICAgICBhcHBfaXRlciA9IHNlbGYuYXBwKGVudmlyb24sIHJlcGxhY2VtZW50X3N0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBpZiB3YXNfNDAxOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxpc3QoYXBwX2l0ZXIpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoYXBwX2l0ZXIsICdjbG9zZScpOgorICAgICAgICAgICAgICAgICAgICBhcHBfaXRlci5jbG9zZSgpCisgICAgICAgICAgICByZWRpcl91cmwgPSBwYXN0ZS5yZXF1ZXN0LmNvbnN0cnVjdF91cmwoZW52aXJvbiwgd2l0aF9wYXRoX2luZm89RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aF9xdWVyeV9zdHJpbmc9RmFsc2UpCisgICAgICAgICAgICBleGMgPSBodHRwZXhjZXB0aW9ucy5IVFRQVGVtcG9yYXJ5UmVkaXJlY3QocmVkaXJfdXJsKQorICAgICAgICAgICAgcmV0dXJuIGV4Yy53c2dpX2FwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGFwcF9pdGVyCisKKyAgICBkZWYgZG9fdmVyaWZ5KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJQcm9jZXNzIHRoZSBmb3JtIHN1Ym1pc3Npb24sIGluaXRhdGluZyBPcGVuSUQgdmVyaWZpY2F0aW9uLgorICAgICAgICAiIiIKKworICAgICAgICAjIEZpcnN0LCBtYWtlIHN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcmVkIHNvbWV0aGluZworICAgICAgICBvcGVuaWRfdXJsID0gcmVxdWVzdFsncXVlcnknXS5nZXQoJ29wZW5pZF91cmwnKQorICAgICAgICBpZiBub3Qgb3BlbmlkX3VybDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlbmRlcihyZXF1ZXN0LCAnRW50ZXIgYW4gaWRlbnRpdHkgVVJMIHRvIHZlcmlmeS4nLAorICAgICAgICAgICAgICAgICAgICAgICAgY3NzX2NsYXNzPSdlcnJvcicsIGZvcm1fY29udGVudHM9b3BlbmlkX3VybCkKKworICAgICAgICBvaWRjb25zdW1lciA9IHNlbGYub2lkY29uc3VtZXIKKworICAgICAgICAjIFRoZW4sIGFzayB0aGUgbGlicmFyeSB0byBiZWdpbiB0aGUgYXV0aG9yaXphdGlvbi4KKyAgICAgICAgIyBIZXJlIHdlIGZpbmQgb3V0IHRoZSBpZGVudGl0eSBzZXJ2ZXIgdGhhdCB3aWxsIHZlcmlmeSB0aGUKKyAgICAgICAgIyB1c2VyJ3MgaWRlbnRpdHksIGFuZCBnZXQgYSB0b2tlbiB0aGF0IGFsbG93cyB1cyB0bworICAgICAgICAjIGNvbW11bmljYXRlIHNlY3VyZWx5IHdpdGggdGhlIGlkZW50aXR5IHNlcnZlci4KKyAgICAgICAgc3RhdHVzLCBpbmZvID0gb2lkY29uc3VtZXIuYmVnaW5BdXRoKG9wZW5pZF91cmwpCisKKyAgICAgICAgIyBJZiB0aGUgVVJMIHdhcyB1bnVzYWJsZSAoZWl0aGVyIGJlY2F1c2Ugb2YgbmV0d29yaworICAgICAgICAjIGNvbmRpdGlvbnMsIGEgc2VydmVyIGVycm9yLCBvciB0aGF0IHRoZSByZXNwb25zZSByZXR1cm5lZAorICAgICAgICAjIHdhcyBub3QgYW4gT3BlbklEIGlkZW50aXR5IHBhZ2UpLCB0aGUgbGlicmFyeSB3aWxsIHJldHVybgorICAgICAgICAjIGFuIGVycm9yIGNvZGUuIExldCB0aGUgdXNlciBrbm93IHRoYXQgdGhhdCBVUkwgaXMgdW51c2FibGUuCisgICAgICAgIGlmIHN0YXR1cyBpbiBbY29uc3VtZXIuSFRUUF9GQUlMVVJFLCBjb25zdW1lci5QQVJTRV9FUlJPUl06CisgICAgICAgICAgICBpZiBzdGF0dXMgPT0gY29uc3VtZXIuSFRUUF9GQUlMVVJFOgorICAgICAgICAgICAgICAgIGZtdCA9ICdGYWlsZWQgdG8gcmV0cmlldmUgPHE+JXM8L3E+JworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmbXQgPSAnQ291bGQgbm90IGZpbmQgT3BlbklEIGluZm9ybWF0aW9uIGluIDxxPiVzPC9xPicKKworICAgICAgICAgICAgbWVzc2FnZSA9IGZtdCAlIChjZ2kuZXNjYXBlKG9wZW5pZF91cmwpLCkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlbmRlcihyZXF1ZXN0LCBtZXNzYWdlLCBjc3NfY2xhc3M9J2Vycm9yJywgZm9ybV9jb250ZW50cz1vcGVuaWRfdXJsKQorICAgICAgICBlbGlmIHN0YXR1cyA9PSBjb25zdW1lci5TVUNDRVNTOgorICAgICAgICAgICAgIyBUaGUgVVJMIHdhcyBhIHZhbGlkIGlkZW50aXR5IFVSTC4gTm93IHdlIGNvbnN0cnVjdCBhIFVSTAorICAgICAgICAgICAgIyB0aGF0IHdpbGwgZ2V0IHVzIHRvIHByb2Nlc3MgdGhlIHNlcnZlciByZXNwb25zZS4gV2Ugd2lsbAorICAgICAgICAgICAgIyBuZWVkIHRoZSB0b2tlbiBmcm9tIHRoZSBiZWdpbkF1dGggY2FsbCB3aGVuIHByb2Nlc3NpbmcKKyAgICAgICAgICAgICMgdGhlIHJlc3BvbnNlLiBBIGNvb2tpZSBvciBhIHNlc3Npb24gb2JqZWN0IGNvdWxkIGJlIHVzZWQKKyAgICAgICAgICAgICMgdG8gYWNjb21wbGlzaCB0aGlzLCBidXQgZm9yIHNpbXBsaWNpdHkgaGVyZSB3ZSBqdXN0IGFkZAorICAgICAgICAgICAgIyBpdCBhcyBhIHF1ZXJ5IHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuLXRvIFVSTC4KKyAgICAgICAgICAgIHJldHVybl90byA9IHNlbGYuYnVpbGRfdXJsKHJlcXVlc3QsICdwcm9jZXNzJywgdG9rZW49aW5mby50b2tlbikKKworICAgICAgICAgICAgIyBOb3cgYXNrIHRoZSBsaWJyYXJ5IGZvciB0aGUgVVJMIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvCisgICAgICAgICAgICAjIGhpcyBPcGVuSUQgc2VydmVyLiBJdCBpcyByZXF1aXJlZCBmb3Igc2VjdXJpdHkgdGhhdCB0aGUKKyAgICAgICAgICAgICMgcmV0dXJuX3RvIFVSTCBtdXN0IGJlIHVuZGVyIHRoZSBzcGVjaWZpZWQgdHJ1c3Rfcm9vdC4gV2UKKyAgICAgICAgICAgICMganVzdCB1c2UgdGhlIGJhc2VfdXJsIGZvciB0aGlzIHNlcnZlciBhcyBhIHRydXN0IHJvb3QuCisgICAgICAgICAgICByZWRpcmVjdF91cmwgPSBvaWRjb25zdW1lci5jb25zdHJ1Y3RSZWRpcmVjdCgKKyAgICAgICAgICAgICAgICBpbmZvLCByZXR1cm5fdG8sIHRydXN0X3Jvb3Q9cmVxdWVzdFsnYmFzZV91cmwnXSkKKworICAgICAgICAgICAgIyBTZW5kIHRoZSByZWRpcmVjdCByZXNwb25zZQorICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVkaXJlY3QocmVxdWVzdCwgcmVkaXJlY3RfdXJsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAnTm90IHJlYWNoZWQnCisKKyAgICBkZWYgZG9fcHJvY2VzcyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiSGFuZGxlIHRoZSByZWRpcmVjdCBmcm9tIHRoZSBPcGVuSUQgc2VydmVyLgorICAgICAgICAiIiIKKyAgICAgICAgb2lkY29uc3VtZXIgPSBzZWxmLm9pZGNvbnN1bWVyCisKKyAgICAgICAgIyByZXRyaWV2ZSB0aGUgdG9rZW4gZnJvbSB0aGUgZW52aXJvbm1lbnQgKGluIHRoaXMgY2FzZSwgdGhlIFVSTCkKKyAgICAgICAgdG9rZW4gPSByZXF1ZXN0WydxdWVyeSddLmdldCgndG9rZW4nLCAnJykKKworICAgICAgICAjIEFzayB0aGUgbGlicmFyeSB0byBjaGVjayB0aGUgcmVzcG9uc2UgdGhhdCB0aGUgc2VydmVyIHNlbnQKKyAgICAgICAgIyB1cy4gIFN0YXR1cyBpcyBhIGNvZGUgaW5kaWNhdGluZyB0aGUgcmVzcG9uc2UgdHlwZS4gaW5mbyBpcworICAgICAgICAjIGVpdGhlciBOb25lIG9yIGEgc3RyaW5nIGNvbnRhaW5pbmcgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAorICAgICAgICAjIHRoZSByZXR1cm4gdHlwZS4KKyAgICAgICAgc3RhdHVzLCBpbmZvID0gb2lkY29uc3VtZXIuY29tcGxldGVBdXRoKHRva2VuLCByZXF1ZXN0WydxdWVyeSddKQorCisgICAgICAgIGNzc19jbGFzcyA9ICdlcnJvcicKKyAgICAgICAgb3BlbmlkX3VybCA9IE5vbmUKKyAgICAgICAgaWYgc3RhdHVzID09IGNvbnN1bWVyLkZBSUxVUkUgYW5kIGluZm86CisgICAgICAgICAgICAjIEluIHRoZSBjYXNlIG9mIGZhaWx1cmUsIGlmIGluZm8gaXMgbm9uLU5vbmUsIGl0IGlzIHRoZQorICAgICAgICAgICAgIyBVUkwgdGhhdCB3ZSB3ZXJlIHZlcmlmeWluZy4gV2UgaW5jbHVkZSBpdCBpbiB0aGUgZXJyb3IKKyAgICAgICAgICAgICMgbWVzc2FnZSB0byBoZWxwIHRoZSB1c2VyIGZpZ3VyZSBvdXQgd2hhdCBoYXBwZW5lZC4KKyAgICAgICAgICAgIG9wZW5pZF91cmwgPSBpbmZvCisgICAgICAgICAgICBmbXQgPSAiVmVyaWZpY2F0aW9uIG9mICVzIGZhaWxlZC4iCisgICAgICAgICAgICBtZXNzYWdlID0gZm10ICUgKGNnaS5lc2NhcGUob3BlbmlkX3VybCksKQorICAgICAgICBlbGlmIHN0YXR1cyA9PSBjb25zdW1lci5TVUNDRVNTOgorICAgICAgICAgICAgIyBTdWNjZXNzIG1lYW5zIHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZCB3aXRob3V0CisgICAgICAgICAgICAjIGVycm9yLiBJZiBpbmZvIGlzIE5vbmUsIGl0IG1lYW5zIHRoYXQgdGhlIHVzZXIgY2FuY2VsbGVkCisgICAgICAgICAgICAjIHRoZSB2ZXJpZmljYXRpb24uCisgICAgICAgICAgICBjc3NfY2xhc3MgPSAnYWxlcnQnCisgICAgICAgICAgICBpZiBpbmZvOgorICAgICAgICAgICAgICAgICMgVGhpcyBpcyBhIHN1Y2Nlc3NmdWwgdmVyaWZpY2F0aW9uIGF0dGVtcHQuIElmIHRoaXMKKyAgICAgICAgICAgICAgICAjIHdhcyBhIHJlYWwgYXBwbGljYXRpb24sIHdlIHdvdWxkIGRvIG91ciBsb2dpbiwKKyAgICAgICAgICAgICAgICAjIGNvbW1lbnQgcG9zdGluZywgZXRjLiBoZXJlLgorICAgICAgICAgICAgICAgIG9wZW5pZF91cmwgPSBpbmZvCisgICAgICAgICAgICAgICAgaWYgc2VsZi51cmxfdG9fdXNlcm5hbWU6CisgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lID0gc2VsZi51cmxfdG9fdXNlcm5hbWUocmVxdWVzdFsnZW52aXJvbiddLCBvcGVuaWRfdXJsKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lID0gb3BlbmlkX3VybAorICAgICAgICAgICAgICAgIGlmICdwYXN0ZS5hdXRoX3RrdC5zZXRfdXNlcicgaW4gcmVxdWVzdFsnZW52aXJvbiddOgorICAgICAgICAgICAgICAgICAgICByZXF1ZXN0WydlbnZpcm9uJ11bJ3Bhc3RlLmF1dGhfdGt0LnNldF91c2VyJ10odXNlcm5hbWUpCisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYubG9naW5fcmVkaXJlY3Q6CisgICAgICAgICAgICAgICAgICAgIGZtdCA9ICgiSWYgeW91IGhhZCBzdXBwbGllZCBhIGxvZ2luIHJlZGlyZWN0IHBhdGgsIHlvdSB3b3VsZCBoYXZlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZWVuIHJlZGlyZWN0ZWQgdGhlcmUuICAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiWW91IGhhdmUgc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkICVzIGFzIHlvdXIgaWRlbnRpdHkuIikKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGZtdCAlIChjZ2kuZXNjYXBlKG9wZW5pZF91cmwpLCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIEBAOiBUaGlzIHN0dWZmIGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBtZTsgd2h5IG5vdCBhIHJlbW90ZSByZWRpcmVjdD8KKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFsnZW52aXJvbiddWydwYXN0ZS5hdXRoLm9wZW5faWQnXSA9IG9wZW5pZF91cmwKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFsnZW52aXJvbiddWydQQVRIX0lORk8nXSA9IHNlbGYubG9naW5fcmVkaXJlY3QKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwKHJlcXVlc3RbJ2Vudmlyb24nXSwgcmVxdWVzdFsnc3RhcnQnXSkKKyAgICAgICAgICAgICAgICAgICAgI2V4YyA9IGh0dHBleGNlcHRpb25zLkhUVFBUZW1wb3JhcnlSZWRpcmVjdChzZWxmLmxvZ2luX3JlZGlyZWN0KQorICAgICAgICAgICAgICAgICAgICAjcmV0dXJuIGV4Yy53c2dpX2FwcGxpY2F0aW9uKHJlcXVlc3RbJ2Vudmlyb24nXSwgcmVxdWVzdFsnc3RhcnQnXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBjYW5jZWxsZWQKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1ZlcmlmaWNhdGlvbiBjYW5jZWxsZWQnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEVpdGhlciB3ZSBkb24ndCB1bmRlcnN0YW5kIHRoZSBjb2RlIG9yIHRoZXJlIGlzIG5vCisgICAgICAgICAgICAjIG9wZW5pZF91cmwgaW5jbHVkZWQgd2l0aCB0aGUgZXJyb3IuIEdpdmUgYSBnZW5lcmljCisgICAgICAgICAgICAjIGZhaWx1cmUgbWVzc2FnZS4gVGhlIGxpYnJhcnkgc2hvdWxkIHN1cHBseSBkZWJ1ZworICAgICAgICAgICAgIyBpbmZvcm1hdGlvbiBpbiBhIGxvZy4KKyAgICAgICAgICAgIG1lc3NhZ2UgPSAnVmVyaWZpY2F0aW9uIGZhaWxlZC4nCisKKyAgICAgICAgcmV0dXJuIHNlbGYucmVuZGVyKHJlcXVlc3QsIG1lc3NhZ2UsIGNzc19jbGFzcywgb3BlbmlkX3VybCkKKworICAgIGRlZiBidWlsZF91cmwoc2VsZiwgcmVxdWVzdCwgYWN0aW9uLCAqKnF1ZXJ5KToKKyAgICAgICAgIiIiQnVpbGQgYSBVUkwgcmVsYXRpdmUgdG8gdGhlIHNlcnZlciBiYXNlX3VybCwgd2l0aCB0aGUgZ2l2ZW4KKyAgICAgICAgcXVlcnkgcGFyYW1ldGVycyBhZGRlZC4iIiIKKyAgICAgICAgYmFzZSA9IHVybHBhcnNlLnVybGpvaW4ocmVxdWVzdFsnYmFzZV91cmwnXSwgc2VsZi5hdXRoX3ByZWZpeCArICcvJyArIGFjdGlvbikKKyAgICAgICAgcmV0dXJuIGFwcGVuZEFyZ3MoYmFzZSwgcXVlcnkpCisKKyAgICBkZWYgcmVkaXJlY3Qoc2VsZiwgcmVxdWVzdCwgcmVkaXJlY3RfdXJsKToKKyAgICAgICAgIiIiU2VuZCBhIHJlZGlyZWN0IHJlc3BvbnNlIHRvIHRoZSBnaXZlbiBVUkwgdG8gdGhlIGJyb3dzZXIuIiIiCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnTG9jYXRpb24nLCByZWRpcmVjdF91cmwpXQorICAgICAgICByZXF1ZXN0WydzdGFydCddKCczMDIgUkVESVJFQ1QnLCByZXNwb25zZV9oZWFkZXJzKQorICAgICAgICByZXR1cm4gWyJSZWRpcmVjdGluZyB0byAlcyIgJSByZWRpcmVjdF91cmxdCisKKyAgICBkZWYgbm90X2ZvdW5kKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJSZW5kZXIgYSBwYWdlIHdpdGggYSA0MDQgcmV0dXJuIGNvZGUgYW5kIGEgbWVzc2FnZS4iIiIKKyAgICAgICAgZm10ID0gJ1RoZSBwYXRoIDxxPiVzPC9xPiB3YXMgbm90IHVuZGVyc3Rvb2QgYnkgdGhpcyBzZXJ2ZXIuJworICAgICAgICBtc2cgPSBmbXQgJSAocmVxdWVzdFsncGFyc2VkX3VyaSddLCkKKyAgICAgICAgb3BlbmlkX3VybCA9IHJlcXVlc3RbJ3F1ZXJ5J10uZ2V0KCdvcGVuaWRfdXJsJykKKyAgICAgICAgcmV0dXJuIHNlbGYucmVuZGVyKHJlcXVlc3QsIG1zZywgJ2Vycm9yJywgb3BlbmlkX3VybCwgc3RhdHVzPSc0MDQgTm90IEZvdW5kJykKKworICAgIGRlZiByZW5kZXIoc2VsZiwgcmVxdWVzdCwgbWVzc2FnZT1Ob25lLCBjc3NfY2xhc3M9J2FsZXJ0JywgZm9ybV9jb250ZW50cz1Ob25lLAorICAgICAgICAgICAgICAgc3RhdHVzPScyMDAgT0snLCB0aXRsZT0iUHl0aG9uIE9wZW5JRCBDb25zdW1lciIpOgorICAgICAgICAiIiJSZW5kZXIgYSBwYWdlLiIiIgorICAgICAgICByZXNwb25zZV9oZWFkZXJzID0gWygnQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpXQorICAgICAgICByZXF1ZXN0WydzdGFydCddKHN0cihzdGF0dXMpLCByZXNwb25zZV9oZWFkZXJzKQorCisgICAgICAgIHNlbGYucGFnZV9oZWFkZXIocmVxdWVzdCwgdGl0bGUpCisgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICByZXF1ZXN0Wydib2R5J10uYXBwZW5kKCI8ZGl2IGNsYXNzPSclcyc+IiAlIChjc3NfY2xhc3MsKSkKKyAgICAgICAgICAgIHJlcXVlc3RbJ2JvZHknXS5hcHBlbmQobWVzc2FnZSkKKyAgICAgICAgICAgIHJlcXVlc3RbJ2JvZHknXS5hcHBlbmQoIjwvZGl2PiIpCisgICAgICAgIHNlbGYucGFnZV9mb290ZXIocmVxdWVzdCwgZm9ybV9jb250ZW50cykKKyAgICAgICAgcmV0dXJuIHJlcXVlc3RbJ2JvZHknXQorCisgICAgZGVmIHBhZ2VfaGVhZGVyKHNlbGYsIHJlcXVlc3QsIHRpdGxlKToKKyAgICAgICAgIiIiUmVuZGVyIHRoZSBwYWdlIGhlYWRlciIiIgorICAgICAgICByZXF1ZXN0Wydib2R5J10uYXBwZW5kKCcnJ1wKKzxodG1sPgorICA8aGVhZD48dGl0bGU+JXM8L3RpdGxlPjwvaGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICogeworICAgICAgICBmb250LWZhbWlseTogdmVyZGFuYSxzYW5zLXNlcmlmOworICAgICAgfQorICAgICAgYm9keSB7CisgICAgICAgIHdpZHRoOiA1MGVtOworICAgICAgICBtYXJnaW46IDFlbTsKKyAgICAgIH0KKyAgICAgIGRpdiB7CisgICAgICAgIHBhZGRpbmc6IC41ZW07CisgICAgICB9CisgICAgICB0YWJsZSB7CisgICAgICAgIG1hcmdpbjogbm9uZTsKKyAgICAgICAgcGFkZGluZzogbm9uZTsKKyAgICAgIH0KKyAgICAgIC5hbGVydCB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlN2RjMmI7CisgICAgICAgIGJhY2tncm91bmQ6ICNmZmY4ODg7CisgICAgICB9CisgICAgICAuZXJyb3IgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDAwOworICAgICAgICBiYWNrZ3JvdW5kOiAjZmZhYWFhOworICAgICAgfQorICAgICAgI3ZlcmlmeS1mb3JtIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc3Nzc3NzsKKyAgICAgICAgYmFja2dyb3VuZDogI2RkZGRkZDsKKyAgICAgICAgbWFyZ2luLXRvcDogMWVtOworICAgICAgICBwYWRkaW5nLWJvdHRvbTogMGVtOworICAgICAgfQorICA8L3N0eWxlPgorICA8Ym9keT4KKyAgICA8aDE+JXM8L2gxPgorICAgIDxwPgorICAgICAgVGhpcyBleGFtcGxlIGNvbnN1bWVyIHVzZXMgdGhlIDxhCisgICAgICBocmVmPSJodHRwOi8vb3BlbmlkLnNjaHR1ZmYuY29tLyI+UHl0aG9uIE9wZW5JRDwvYT4gbGlicmFyeS4gSXQKKyAgICAgIGp1c3QgdmVyaWZpZXMgdGhhdCB0aGUgVVJMIHRoYXQgeW91IGVudGVyIGlzIHlvdXIgaWRlbnRpdHkgVVJMLgorICAgIDwvcD4KKycnJyAlICh0aXRsZSwgdGl0bGUpKQorCisgICAgZGVmIHBhZ2VfZm9vdGVyKHNlbGYsIHJlcXVlc3QsIGZvcm1fY29udGVudHMpOgorICAgICAgICAiIiJSZW5kZXIgdGhlIHBhZ2UgZm9vdGVyIiIiCisgICAgICAgIGlmIG5vdCBmb3JtX2NvbnRlbnRzOgorICAgICAgICAgICAgZm9ybV9jb250ZW50cyA9ICcnCisKKyAgICAgICAgcmVxdWVzdFsnYm9keSddLmFwcGVuZCgnJydcCisgICAgPGRpdiBpZD0idmVyaWZ5LWZvcm0iPgorICAgICAgPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0lcz4KKyAgICAgICAgSWRlbnRpdHkmbmJzcDtVUkw6CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJvcGVuaWRfdXJsIiB2YWx1ZT0lcyAvPgorICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVmVyaWZ5IiAvPgorICAgICAgPC9mb3JtPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisnJycgJSAocXVvdGVhdHRyKHNlbGYuYnVpbGRfdXJsKHJlcXVlc3QsICd2ZXJpZnknKSksIHF1b3RlYXR0cihmb3JtX2NvbnRlbnRzKSkpCisKKworbWlkZGxld2FyZSA9IEF1dGhPcGVuSURIYW5kbGVyCisKK2RlZiBtYWtlX29wZW5faWRfbWlkZGxld2FyZSgKKyAgICBhcHAsCisgICAgZ2xvYmFsX2NvbmYsCisgICAgIyBTaG91bGQgdGhpcyBkZWZhdWx0IHRvIHNvbWV0aGluZywgb3IgaW5oZXJpdCBzb21ldGhpbmcgZnJvbSBnbG9iYWxfY29uZj86CisgICAgZGF0YV9zdG9yZV9wYXRoLAorICAgIGF1dGhfcHJlZml4PScvb2lkJywKKyAgICBsb2dpbl9yZWRpcmVjdD1Ob25lLAorICAgIGNhdGNoXzQwMT1GYWxzZSwKKyAgICB1cmxfdG9fdXNlcm5hbWU9Tm9uZSwKKyAgICBhcHBseV9hdXRoX3RrdD1GYWxzZSwKKyAgICBhdXRoX3RrdF9sb2dvdXRfcGF0aD1Ob25lKToKKyAgICBmcm9tIHBhc3RlLmRlcGxveS5jb252ZXJ0ZXJzIGltcG9ydCBhc2Jvb2wKKyAgICBmcm9tIHBhc3RlLnV0aWwgaW1wb3J0IGltcG9ydF9zdHJpbmcKKyAgICBjYXRjaF80MDEgPSBhc2Jvb2woY2F0Y2hfNDAxKQorICAgIGlmIHVybF90b191c2VybmFtZSBhbmQgaXNpbnN0YW5jZSh1cmxfdG9fdXNlcm5hbWUsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICB1cmxfdG9fdXNlcm5hbWUgPSBpbXBvcnRfc3RyaW5nLmV2YWxfaW1wb3J0KHVybF90b191c2VybmFtZSkKKyAgICBhcHBseV9hdXRoX3RrdCA9IGFzYm9vbChhcHBseV9hdXRoX3RrdCkKKyAgICBuZXdfYXBwID0gQXV0aE9wZW5JREhhbmRsZXIoCisgICAgICAgIGFwcCwgZGF0YV9zdG9yZV9wYXRoPWRhdGFfc3RvcmVfcGF0aCwgYXV0aF9wcmVmaXg9YXV0aF9wcmVmaXgsCisgICAgICAgIGxvZ2luX3JlZGlyZWN0PWxvZ2luX3JlZGlyZWN0LCBjYXRjaF80MDE9Y2F0Y2hfNDAxLAorICAgICAgICB1cmxfdG9fdXNlcm5hbWU9dXJsX3RvX3VzZXJuYW1lIG9yIE5vbmUpCisgICAgaWYgYXBwbHlfYXV0aF90a3Q6CisgICAgICAgIGZyb20gcGFzdGUuYXV0aCBpbXBvcnQgYXV0aF90a3QKKyAgICAgICAgbmV3X2FwcCA9IGF1dGhfdGt0Lm1ha2VfYXV0aF90a3RfbWlkZGxld2FyZSgKKyAgICAgICAgICAgIG5ld19hcHAsIGdsb2JhbF9jb25mLCBsb2dvdXRfcGF0aD1hdXRoX3RrdF9sb2dvdXRfcGF0aCkKKyAgICByZXR1cm4gbmV3X2FwcApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2Nhc2NhZGUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY2FzY2FkZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjA3YWUzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2Nhc2NhZGUucHkKQEAgLTAsMCArMSwxMzMgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworIiIiCitDYXNjYWRlcyB0aHJvdWdoIHNldmVyYWwgYXBwbGljYXRpb25zLCBzbyBsb25nIGFzIGFwcGxpY2F0aW9ucworcmV0dXJuIGBgNDA0IE5vdCBGb3VuZGBgLgorIiIiCitmcm9tIHBhc3RlIGltcG9ydCBodHRwZXhjZXB0aW9ucworZnJvbSBwYXN0ZS51dGlsIGltcG9ydCBjb252ZXJ0ZXJzCitpbXBvcnQgdGVtcGZpbGUKK2Zyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworCitfX2FsbF9fID0gWydDYXNjYWRlJ10KKworZGVmIG1ha2VfY2FzY2FkZShsb2FkZXIsIGdsb2JhbF9jb25mLCBjYXRjaD0nNDA0JywgKipsb2NhbF9jb25mKToKKyAgICAiIiIKKyAgICBFbnRyeSBwb2ludCBmb3IgUGFzdGUgRGVwbG95IGNvbmZpZ3VyYXRpb24KKworICAgIEV4cGVjdHMgY29uZmlndXJhdGlvbiBsaWtlOjoKKworICAgICAgICBbY29tcG9zaXQ6Y2FzY2FkZV0KKyAgICAgICAgdXNlID0gZWdnOlBhc3RlI2Nhc2NhZGUKKyAgICAgICAgIyBhbGwgc3RhcnQgd2l0aCAnYXBwJyBhbmQgYXJlIHNvcnRlZCBhbHBoYWJldGljYWxseQorICAgICAgICBhcHAxID0gZm9vCisgICAgICAgIGFwcDIgPSBiYXIKKyAgICAgICAgLi4uCisgICAgICAgIGNhdGNoID0gNDA0IDUwMCAuLi4KKyAgICAiIiIKKyAgICBjYXRjaCA9IG1hcChpbnQsIGNvbnZlcnRlcnMuYXNsaXN0KGNhdGNoKSkKKyAgICBhcHBzID0gW10KKyAgICBmb3IgbmFtZSwgdmFsdWUgaW4gbG9jYWxfY29uZi5pdGVtcygpOgorICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCdhcHAnKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIkJhZCBjb25maWd1cmF0aW9uIGtleSAlciAoPSVyKTsgYWxsIGNvbmZpZ3VyYXRpb24ga2V5cyAiCisgICAgICAgICAgICAgICAgIm11c3Qgc3RhcnQgd2l0aCAnYXBwJyIKKyAgICAgICAgICAgICAgICAlIChuYW1lLCB2YWx1ZSkpCisgICAgICAgIGFwcCA9IGxvYWRlci5nZXRfYXBwKHZhbHVlLCBnbG9iYWxfY29uZj1nbG9iYWxfY29uZikKKyAgICAgICAgYXBwcy5hcHBlbmQoKG5hbWUsIGFwcCkpCisgICAgYXBwcy5zb3J0KCkKKyAgICBhcHBzID0gW2FwcCBmb3IgbmFtZSwgYXBwIGluIGFwcHNdCisgICAgcmV0dXJuIENhc2NhZGUoYXBwcywgY2F0Y2g9Y2F0Y2gpCisKK2NsYXNzIENhc2NhZGUob2JqZWN0KToKKworICAgICIiIgorICAgIFBhc3NlZCBhIGxpc3Qgb2YgYXBwbGljYXRpb25zLCBgYENhc2NhZGVgYCB3aWxsIHRyeSBlYWNoIG9mIHRoZW0KKyAgICBpbiB0dXJuLiAgSWYgb25lIHJldHVybnMgYSBzdGF0dXMgY29kZSBsaXN0ZWQgaW4gYGBjYXRjaGBgIChieQorICAgIGRlZmF1bHQganVzdCBgYDQwNCBOb3QgRm91bmRgYCkgdGhlbiB0aGUgbmV4dCBhcHBsaWNhdGlvbiBpcworICAgIHRyaWVkLgorCisgICAgSWYgYWxsIGFwcGxpY2F0aW9ucyBmYWlsLCB0aGVuIHRoZSBsYXN0IGFwcGxpY2F0aW9uJ3MgZmFpbHVyZQorICAgIHJlc3BvbnNlIGlzIHVzZWQuCisKKyAgICBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBhcmUgV1NHSSBhcHBsaWNhdGlvbnMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwbGljYXRpb25zLCBjYXRjaD0oNDA0LCkpOgorICAgICAgICBzZWxmLmFwcHMgPSBhcHBsaWNhdGlvbnMKKyAgICAgICAgc2VsZi5jYXRjaF9jb2RlcyA9IHt9CisgICAgICAgIHNlbGYuY2F0Y2hfZXhjZXB0aW9ucyA9IFtdCisgICAgICAgIGZvciBlcnJvciBpbiBjYXRjaDoKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXJyb3IsIHN0cik6CisgICAgICAgICAgICAgICAgZXJyb3IgPSBpbnQoZXJyb3Iuc3BsaXQoTm9uZSwgMSlbMF0pCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGVycm9yLCBodHRwZXhjZXB0aW9ucy5IVFRQRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICBleGMgPSBlcnJvcgorICAgICAgICAgICAgICAgIGNvZGUgPSBlcnJvci5jb2RlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4YyA9IGh0dHBleGNlcHRpb25zLmdldF9leGNlcHRpb24oZXJyb3IpCisgICAgICAgICAgICAgICAgY29kZSA9IGVycm9yCisgICAgICAgICAgICBzZWxmLmNhdGNoX2NvZGVzW2NvZGVdID0gZXhjCisgICAgICAgICAgICBzZWxmLmNhdGNoX2V4Y2VwdGlvbnMuYXBwZW5kKGV4YykKKyAgICAgICAgc2VsZi5jYXRjaF9leGNlcHRpb25zID0gdHVwbGUoc2VsZi5jYXRjaF9leGNlcHRpb25zKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgIiIiCisgICAgICAgIFdTR0kgYXBwbGljYXRpb24gaW50ZXJmYWNlCisgICAgICAgICIiIgorICAgICAgICBmYWlsZWQgPSBbXQorICAgICAgICBkZWYgcmVwbF9zdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgY29kZSA9IGludChzdGF0dXMuc3BsaXQoTm9uZSwgMSlbMF0pCisgICAgICAgICAgICBpZiBjb2RlIGluIHNlbGYuY2F0Y2hfY29kZXM6CisgICAgICAgICAgICAgICAgZmFpbGVkLmFwcGVuZChOb25lKQorICAgICAgICAgICAgICAgIHJldHVybiBfY29uc3VtaW5nX3dyaXRlcgorICAgICAgICAgICAgcmV0dXJuIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm8pCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbGVuZ3RoID0gaW50KGVudmlyb24uZ2V0KCdDT05URU5UX0xFTkdUSCcsIDApIG9yIDApCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgbGVuZ3RoID0gMAorICAgICAgICBpZiBsZW5ndGggPiAwOgorICAgICAgICAgICAgIyBXZSBoYXZlIHRvIGNvcHkgd3NnaS5pbnB1dAorICAgICAgICAgICAgY29weV93c2dpX2lucHV0ID0gVHJ1ZQorICAgICAgICAgICAgaWYgbGVuZ3RoID4gNDA5NiBvciBsZW5ndGggPCAwOgorICAgICAgICAgICAgICAgIGYgPSB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKCkKKyAgICAgICAgICAgICAgICBpZiBsZW5ndGggPCAwOgorICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGVudmlyb25bJ3dzZ2kuaW5wdXQnXS5yZWFkKCkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgY29weV9sZW4gPSBsZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgY29weV9sZW4gPiAwOgorICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSBlbnZpcm9uWyd3c2dpLmlucHV0J10ucmVhZChtaW4oY29weV9sZW4sIDQwOTYpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGNodW5rOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoIlJlcXVlc3QgYm9keSB0cnVuY2F0ZWQiKQorICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShjaHVuaykKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlfbGVuIC09IGxlbihjaHVuaykKKyAgICAgICAgICAgICAgICBmLnNlZWsoMCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZiA9IFN0cmluZ0lPKGVudmlyb25bJ3dzZ2kuaW5wdXQnXS5yZWFkKGxlbmd0aCkpCisgICAgICAgICAgICBlbnZpcm9uWyd3c2dpLmlucHV0J10gPSBmCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb3B5X3dzZ2lfaW5wdXQgPSBGYWxzZQorICAgICAgICBmb3IgYXBwIGluIHNlbGYuYXBwc1s6LTFdOgorICAgICAgICAgICAgZW52aXJvbl9jb3B5ID0gZW52aXJvbi5jb3B5KCkKKyAgICAgICAgICAgIGlmIGNvcHlfd3NnaV9pbnB1dDoKKyAgICAgICAgICAgICAgICBlbnZpcm9uX2NvcHlbJ3dzZ2kuaW5wdXQnXS5zZWVrKDApCisgICAgICAgICAgICBmYWlsZWQgPSBbXQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHYgPSBhcHAoZW52aXJvbl9jb3B5LCByZXBsX3N0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgIGlmIG5vdCBmYWlsZWQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB2CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaGFzYXR0cih2LCAnY2xvc2UnKToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgRXhoYXVzdCB0aGUgaXRlcmF0b3IgZmlyc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KHYpCisgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZW4gY2xvc2U6CisgICAgICAgICAgICAgICAgICAgICAgICB2LmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBzZWxmLmNhdGNoX2V4Y2VwdGlvbnM6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBpZiBjb3B5X3dzZ2lfaW5wdXQ6CisgICAgICAgICAgICBlbnZpcm9uWyd3c2dpLmlucHV0J10uc2VlaygwKQorICAgICAgICByZXR1cm4gc2VsZi5hcHBzWy0xXShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworZGVmIF9jb25zdW1pbmdfd3JpdGVyKHMpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9jZ2lhcHAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY2dpYXBwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1YTYyZjQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY2dpYXBwLnB5CkBAIC0wLDAgKzEsMjgwIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKKyIiIgorQXBwbGljYXRpb24gdGhhdCBydW5zIGEgQ0dJIHNjcmlwdC4KKyIiIgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgc3VicHJvY2VzcworZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCBxdW90ZQordHJ5OgorICAgIGltcG9ydCBzZWxlY3QKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBzZWxlY3QgPSBOb25lCitpbXBvcnQgc2l4CisKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgY29udmVydGVycworCitfX2FsbF9fID0gWydDR0lFcnJvcicsICdDR0lBcHBsaWNhdGlvbiddCisKK2NsYXNzIENHSUVycm9yKEV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgUmFpc2VkIHdoZW4gdGhlIENHSSBzY3JpcHQgY2FuJ3QgYmUgZm91bmQgb3IgZG9lc24ndAorICAgIGFjdCBsaWtlIGEgcHJvcGVyIENHSSBzY3JpcHQuCisgICAgIiIiCisKK2NsYXNzIENHSUFwcGxpY2F0aW9uKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBUaGlzIG9iamVjdCBhY3RzIGFzIGEgcHJveHkgdG8gYSBDR0kgYXBwbGljYXRpb24uICBZb3UgcGFzcyBpbiB0aGUKKyAgICBzY3JpcHQgcGF0aCAoYGBzY3JpcHRgYCksIGFuIG9wdGlvbmFsIHBhdGggdG8gc2VhcmNoIGZvciB0aGUKKyAgICBzY3JpcHQgKGlmIHRoZSBuYW1lIGlzbid0IGFic29sdXRlKSAoYGBwYXRoYGApLiAgSWYgeW91IGRvbid0IGdpdmUKKyAgICBhIHBhdGgsIHRoZW4gYGAkUEFUSGBgIHdpbGwgYmUgdXNlZC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICBnbG9iYWxfY29uZiwKKyAgICAgICAgICAgICAgICAgc2NyaXB0LAorICAgICAgICAgICAgICAgICBwYXRoPU5vbmUsCisgICAgICAgICAgICAgICAgIGluY2x1ZGVfb3NfZW52aXJvbj1UcnVlLAorICAgICAgICAgICAgICAgICBxdWVyeV9zdHJpbmc9Tm9uZSk6CisgICAgICAgIGlmIGdsb2JhbF9jb25mOgorICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWQoCisgICAgICAgICAgICAgICAgImdsb2JhbF9jb25mIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgZm9yIENHSUFwcGxpY2F0aW9uICIKKyAgICAgICAgICAgICAgICAiKHVzZSBtYWtlX2NnaV9hcHBsaWNhdGlvbik7IHBsZWFzZSBwYXNzIE5vbmUgaW5zdGVhZCIpCisgICAgICAgIHNlbGYuc2NyaXB0X2ZpbGVuYW1lID0gc2NyaXB0CisgICAgICAgIGlmIHBhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHBhdGggPSBvcy5lbnZpcm9uLmdldCgnUEFUSCcsICcnKS5zcGxpdCgnOicpCisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgaWYgJz8nIGluIHNjcmlwdDoKKyAgICAgICAgICAgIGFzc2VydCBxdWVyeV9zdHJpbmcgaXMgTm9uZSwgKAorICAgICAgICAgICAgICAgICJZb3UgY2Fubm90IGhhdmUgJz8nIGluIHlvdXIgc2NyaXB0IG5hbWUgKCVyKSBhbmQgYWxzbyAiCisgICAgICAgICAgICAgICAgImdpdmUgYSBxdWVyeV9zdHJpbmcgKCVyKSIgJSAoc2NyaXB0LCBxdWVyeV9zdHJpbmcpKQorICAgICAgICAgICAgc2NyaXB0LCBxdWVyeV9zdHJpbmcgPSBzY3JpcHQuc3BsaXQoJz8nLCAxKQorICAgICAgICBpZiBvcy5wYXRoLmFic3BhdGgoc2NyaXB0KSAhPSBzY3JpcHQ6CisgICAgICAgICAgICAjIHJlbGF0aXZlIHBhdGgKKyAgICAgICAgICAgIGZvciBwYXRoX2RpciBpbiBzZWxmLnBhdGg6CisgICAgICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHBhdGhfZGlyLCBzY3JpcHQpKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zY3JpcHQgPSBvcy5wYXRoLmpvaW4ocGF0aF9kaXIsIHNjcmlwdCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgQ0dJRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJTY3JpcHQgJXIgbm90IGZvdW5kIGluIHBhdGggJXIiCisgICAgICAgICAgICAgICAgICAgICUgKHNjcmlwdCwgc2VsZi5wYXRoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2NyaXB0ID0gc2NyaXB0CisgICAgICAgIHNlbGYuaW5jbHVkZV9vc19lbnZpcm9uID0gaW5jbHVkZV9vc19lbnZpcm9uCisgICAgICAgIHNlbGYucXVlcnlfc3RyaW5nID0gcXVlcnlfc3RyaW5nCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiAnUkVRVUVTVF9VUkknIG5vdCBpbiBlbnZpcm9uOgorICAgICAgICAgICAgZW52aXJvblsnUkVRVUVTVF9VUkknXSA9ICgKKyAgICAgICAgICAgICAgICBxdW90ZShlbnZpcm9uLmdldCgnU0NSSVBUX05BTUUnLCAnJykpCisgICAgICAgICAgICAgICAgKyBxdW90ZShlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpKSkKKyAgICAgICAgaWYgc2VsZi5pbmNsdWRlX29zX2Vudmlyb246CisgICAgICAgICAgICBjZ2lfZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjZ2lfZW52aXJvbiA9IHt9CisgICAgICAgIGZvciBuYW1lIGluIGVudmlyb246CisgICAgICAgICAgICAjIFNob3VsZCB1bmljb2RlIHZhbHVlcyBiZSBlbmNvZGVkPworICAgICAgICAgICAgaWYgKG5hbWUudXBwZXIoKSA9PSBuYW1lCisgICAgICAgICAgICAgICAgYW5kIGlzaW5zdGFuY2UoZW52aXJvbltuYW1lXSwgc3RyKSk6CisgICAgICAgICAgICAgICAgY2dpX2Vudmlyb25bbmFtZV0gPSBlbnZpcm9uW25hbWVdCisgICAgICAgIGlmIHNlbGYucXVlcnlfc3RyaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgb2xkID0gY2dpX2Vudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnLCAnJykKKyAgICAgICAgICAgIGlmIG9sZDoKKyAgICAgICAgICAgICAgICBvbGQgKz0gJyYnCisgICAgICAgICAgICBjZ2lfZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSBvbGQgKyBzZWxmLnF1ZXJ5X3N0cmluZworICAgICAgICBjZ2lfZW52aXJvblsnU0NSSVBUX0ZJTEVOQU1FJ10gPSBzZWxmLnNjcmlwdAorICAgICAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3BlbigKKyAgICAgICAgICAgIFtzZWxmLnNjcmlwdF0sCisgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgICAgIGVudj1jZ2lfZW52aXJvbiwKKyAgICAgICAgICAgIGN3ZD1vcy5wYXRoLmRpcm5hbWUoc2VsZi5zY3JpcHQpLAorICAgICAgICAgICAgKQorICAgICAgICB3cml0ZXIgPSBDR0lXcml0ZXIoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGlmIHNlbGVjdCBhbmQgc3lzLnBsYXRmb3JtICE9ICd3aW4zMic6CisgICAgICAgICAgICBwcm9jX2NvbW11bmljYXRlKAorICAgICAgICAgICAgICAgIHByb2MsCisgICAgICAgICAgICAgICAgc3RkaW49U3RkaW5SZWFkZXIuZnJvbV9lbnZpcm9uKGVudmlyb24pLAorICAgICAgICAgICAgICAgIHN0ZG91dD13cml0ZXIsCisgICAgICAgICAgICAgICAgc3RkZXJyPWVudmlyb25bJ3dzZ2kuZXJyb3JzJ10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHByb2MuY29tbXVuaWNhdGUoU3RkaW5SZWFkZXIuZnJvbV9lbnZpcm9uKGVudmlyb24pLnJlYWQoKSkKKyAgICAgICAgICAgIGlmIHN0ZGVycjoKKyAgICAgICAgICAgICAgICBlbnZpcm9uWyd3c2dpLmVycm9ycyddLndyaXRlKHN0ZGVycikKKyAgICAgICAgICAgIHdyaXRlci53cml0ZShzdGRvdXQpCisgICAgICAgIGlmIG5vdCB3cml0ZXIuaGVhZGVyc19maW5pc2hlZDoKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHdyaXRlci5zdGF0dXMsIHdyaXRlci5oZWFkZXJzKQorICAgICAgICByZXR1cm4gW10KKworY2xhc3MgQ0dJV3JpdGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisgICAgICAgIHNlbGYuc3RhcnRfcmVzcG9uc2UgPSBzdGFydF9yZXNwb25zZQorICAgICAgICBzZWxmLnN0YXR1cyA9ICcyMDAgT0snCisgICAgICAgIHNlbGYuaGVhZGVycyA9IFtdCisgICAgICAgIHNlbGYuaGVhZGVyc19maW5pc2hlZCA9IEZhbHNlCisgICAgICAgIHNlbGYud3JpdGVyID0gTm9uZQorICAgICAgICBzZWxmLmJ1ZmZlciA9IGInJworCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgorICAgICAgICBpZiBzZWxmLmhlYWRlcnNfZmluaXNoZWQ6CisgICAgICAgICAgICBzZWxmLndyaXRlcihkYXRhKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYuYnVmZmVyICs9IGRhdGEKKyAgICAgICAgd2hpbGUgYidcbicgaW4gc2VsZi5idWZmZXI6CisgICAgICAgICAgICBpZiBiJ1xyXG4nIGluIHNlbGYuYnVmZmVyIGFuZCBzZWxmLmJ1ZmZlci5maW5kKGInXHJcbicpIDwgc2VsZi5idWZmZXIuZmluZChiJ1xuJyk6CisgICAgICAgICAgICAgICAgbGluZTEsIHNlbGYuYnVmZmVyID0gc2VsZi5idWZmZXIuc3BsaXQoYidcclxuJywgMSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGluZTEsIHNlbGYuYnVmZmVyID0gc2VsZi5idWZmZXIuc3BsaXQoYidcbicsIDEpCisgICAgICAgICAgICBpZiBub3QgbGluZTE6CisgICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJzX2ZpbmlzaGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgIHNlbGYud3JpdGVyID0gc2VsZi5zdGFydF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0dXMsIHNlbGYuaGVhZGVycykKKyAgICAgICAgICAgICAgICBzZWxmLndyaXRlcihzZWxmLmJ1ZmZlcikKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5idWZmZXIKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5oZWFkZXJzCisgICAgICAgICAgICAgICAgZGVsIHNlbGYuc3RhdHVzCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgYic6JyBub3QgaW4gbGluZTE6CisgICAgICAgICAgICAgICAgcmFpc2UgQ0dJRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJCYWQgaGVhZGVyIGxpbmU6ICVyIiAlIGxpbmUxKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuYW1lLCB2YWx1ZSA9IGxpbmUxLnNwbGl0KGInOicsIDEpCisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5sc3RyaXAoKQorICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5kZWNvZGUoJ3V0ZjgnKQorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmRlY29kZSgndXRmOCcpCisgICAgICAgICAgICAgICAgaWYgbmFtZS5sb3dlcigpID09ICdzdGF0dXMnOgorICAgICAgICAgICAgICAgICAgICBpZiAnICcgbm90IGluIHZhbHVlOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBXU0dJIHJlcXVpcmVzIHRoaXMgc3BhY2UsIHNvbWV0aW1lcyBDR0kgc2NyaXB0cyBkb24ndCBzZXQgaXQ6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICclcyBHZW5lcmFsJyAlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdHVzID0gdmFsdWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMuYXBwZW5kKChuYW1lLCB2YWx1ZSkpCisKK2NsYXNzIFN0ZGluUmVhZGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RkaW4sIGNvbnRlbnRfbGVuZ3RoKToKKyAgICAgICAgc2VsZi5zdGRpbiA9IHN0ZGluCisgICAgICAgIHNlbGYuY29udGVudF9sZW5ndGggPSBjb250ZW50X2xlbmd0aAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fZW52aXJvbihjbHMsIGVudmlyb24pOgorICAgICAgICBsZW5ndGggPSBlbnZpcm9uLmdldCgnQ09OVEVOVF9MRU5HVEgnKQorICAgICAgICBpZiBsZW5ndGg6CisgICAgICAgICAgICBsZW5ndGggPSBpbnQobGVuZ3RoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGVuZ3RoID0gMAorICAgICAgICByZXR1cm4gY2xzKGVudmlyb25bJ3dzZ2kuaW5wdXQnXSwgbGVuZ3RoKQorCisgICAgZGVmIHJlYWQoc2VsZiwgc2l6ZT1Ob25lKToKKyAgICAgICAgaWYgbm90IHNlbGYuY29udGVudF9sZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gYicnCisgICAgICAgIGlmIHNpemUgaXMgTm9uZToKKyAgICAgICAgICAgIHRleHQgPSBzZWxmLnN0ZGluLnJlYWQoc2VsZi5jb250ZW50X2xlbmd0aCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRleHQgPSBzZWxmLnN0ZGluLnJlYWQobWluKHNlbGYuY29udGVudF9sZW5ndGgsIHNpemUpKQorICAgICAgICBzZWxmLmNvbnRlbnRfbGVuZ3RoIC09IGxlbih0ZXh0KQorICAgICAgICByZXR1cm4gdGV4dAorCitkZWYgcHJvY19jb21tdW5pY2F0ZShwcm9jLCBzdGRpbj1Ob25lLCBzdGRvdXQ9Tm9uZSwgc3RkZXJyPU5vbmUpOgorICAgICIiIgorICAgIFJ1biB0aGUgZ2l2ZW4gcHJvY2VzcywgcGlwaW5nIGlucHV0L291dHB1dC9lcnJvcnMgdG8gdGhlIGdpdmVuCisgICAgZmlsZS1saWtlIG9iamVjdHMgKHdoaWNoIG5lZWQgbm90IGJlIGFjdHVhbCBmaWxlIG9iamVjdHMsIHVubGlrZQorICAgIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIFBvcGVuKS4gIFdhaXQgZm9yIHByb2Nlc3MgdG8gdGVybWluYXRlLgorCisgICAgTm90ZTogdGhpcyBpcyB0YWtlbiBmcm9tIHRoZSBwb3NpeCB2ZXJzaW9uIG9mCisgICAgc3VicHJvY2Vzcy5Qb3Blbi5jb21tdW5pY2F0ZSwgYnV0IG1hZGUgbW9yZSBnZW5lcmFsIHRocm91Z2ggdGhlCisgICAgdXNlIG9mIGZpbGUtbGlrZSBvYmplY3RzLgorICAgICIiIgorICAgIHJlYWRfc2V0ID0gW10KKyAgICB3cml0ZV9zZXQgPSBbXQorICAgIGlucHV0X2J1ZmZlciA9IGInJworICAgIHRyYW5zX25sID0gcHJvYy51bml2ZXJzYWxfbmV3bGluZXMgYW5kIGhhc2F0dHIob3BlbiwgJ25ld2xpbmVzJykKKworICAgIGlmIHByb2Muc3RkaW46CisgICAgICAgICMgRmx1c2ggc3RkaW8gYnVmZmVyLiAgVGhpcyBtaWdodCBibG9jaywgaWYgdGhlIHVzZXIgaGFzCisgICAgICAgICMgYmVlbiB3cml0aW5nIHRvIC5zdGRpbiBpbiBhbiB1bmNvbnRyb2xsZWQgZmFzaGlvbi4KKyAgICAgICAgcHJvYy5zdGRpbi5mbHVzaCgpCisgICAgICAgIGlmIGlucHV0OgorICAgICAgICAgICAgd3JpdGVfc2V0LmFwcGVuZChwcm9jLnN0ZGluKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJvYy5zdGRpbi5jbG9zZSgpCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IHN0ZGluIGlzIE5vbmUKKyAgICBpZiBwcm9jLnN0ZG91dDoKKyAgICAgICAgcmVhZF9zZXQuYXBwZW5kKHByb2Muc3Rkb3V0KQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCBzdGRvdXQgaXMgTm9uZQorICAgIGlmIHByb2Muc3RkZXJyOgorICAgICAgICByZWFkX3NldC5hcHBlbmQocHJvYy5zdGRlcnIpCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IHN0ZGVyciBpcyBOb25lCisKKyAgICB3aGlsZSByZWFkX3NldCBvciB3cml0ZV9zZXQ6CisgICAgICAgIHJsaXN0LCB3bGlzdCwgeGxpc3QgPSBzZWxlY3Quc2VsZWN0KHJlYWRfc2V0LCB3cml0ZV9zZXQsIFtdKQorCisgICAgICAgIGlmIHByb2Muc3RkaW4gaW4gd2xpc3Q6CisgICAgICAgICAgICAjIFdoZW4gc2VsZWN0IGhhcyBpbmRpY2F0ZWQgdGhhdCB0aGUgZmlsZSBpcyB3cml0YWJsZSwKKyAgICAgICAgICAgICMgd2UgY2FuIHdyaXRlIHVwIHRvIFBJUEVfQlVGIGJ5dGVzIHdpdGhvdXQgcmlzaworICAgICAgICAgICAgIyBibG9ja2luZy4gIFBPU0lYIGRlZmluZXMgUElQRV9CVUYgPj0gNTEyCisgICAgICAgICAgICBuZXh0LCBpbnB1dF9idWZmZXIgPSBpbnB1dF9idWZmZXIsIGInJworICAgICAgICAgICAgbmV4dF9sZW4gPSA1MTItbGVuKG5leHQpCisgICAgICAgICAgICBpZiBuZXh0X2xlbjoKKyAgICAgICAgICAgICAgICBuZXh0ICs9IHN0ZGluLnJlYWQobmV4dF9sZW4pCisgICAgICAgICAgICBpZiBub3QgbmV4dDoKKyAgICAgICAgICAgICAgICBwcm9jLnN0ZGluLmNsb3NlKCkKKyAgICAgICAgICAgICAgICB3cml0ZV9zZXQucmVtb3ZlKHByb2Muc3RkaW4pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGJ5dGVzX3dyaXR0ZW4gPSBvcy53cml0ZShwcm9jLnN0ZGluLmZpbGVubygpLCBuZXh0KQorICAgICAgICAgICAgICAgIGlmIGJ5dGVzX3dyaXR0ZW4gPCBsZW4obmV4dCk6CisgICAgICAgICAgICAgICAgICAgIGlucHV0X2J1ZmZlciA9IG5leHRbYnl0ZXNfd3JpdHRlbjpdCisKKyAgICAgICAgaWYgcHJvYy5zdGRvdXQgaW4gcmxpc3Q6CisgICAgICAgICAgICBkYXRhID0gb3MucmVhZChwcm9jLnN0ZG91dC5maWxlbm8oKSwgMTAyNCkKKyAgICAgICAgICAgIGlmIGRhdGEgPT0gYiIiOgorICAgICAgICAgICAgICAgIHByb2Muc3Rkb3V0LmNsb3NlKCkKKyAgICAgICAgICAgICAgICByZWFkX3NldC5yZW1vdmUocHJvYy5zdGRvdXQpCisgICAgICAgICAgICBpZiB0cmFuc19ubDoKKyAgICAgICAgICAgICAgICBkYXRhID0gcHJvYy5fdHJhbnNsYXRlX25ld2xpbmVzKGRhdGEpCisgICAgICAgICAgICBzdGRvdXQud3JpdGUoZGF0YSkKKworICAgICAgICBpZiBwcm9jLnN0ZGVyciBpbiBybGlzdDoKKyAgICAgICAgICAgIGRhdGEgPSBvcy5yZWFkKHByb2Muc3RkZXJyLmZpbGVubygpLCAxMDI0KQorICAgICAgICAgICAgaWYgZGF0YSA9PSBiIiI6CisgICAgICAgICAgICAgICAgcHJvYy5zdGRlcnIuY2xvc2UoKQorICAgICAgICAgICAgICAgIHJlYWRfc2V0LnJlbW92ZShwcm9jLnN0ZGVycikKKyAgICAgICAgICAgIGlmIHRyYW5zX25sOgorICAgICAgICAgICAgICAgIGRhdGEgPSBwcm9jLl90cmFuc2xhdGVfbmV3bGluZXMoZGF0YSkKKyAgICAgICAgICAgIHN0ZGVyci53cml0ZShkYXRhKQorCisgICAgdHJ5OgorICAgICAgICBwcm9jLndhaXQoKQorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgIGlmIGUuZXJybm8gIT0gMTA6CisgICAgICAgICAgICByYWlzZQorCitkZWYgbWFrZV9jZ2lfYXBwbGljYXRpb24oZ2xvYmFsX2NvbmYsIHNjcmlwdCwgcGF0aD1Ob25lLCBpbmNsdWRlX29zX2Vudmlyb249Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeV9zdHJpbmc9Tm9uZSk6CisgICAgIiIiCisgICAgUGFzdGUgRGVwbG95IGludGVyZmFjZSBmb3IgOmNsYXNzOmBDR0lBcHBsaWNhdGlvbmAKKworICAgIFRoaXMgb2JqZWN0IGFjdHMgYXMgYSBwcm94eSB0byBhIENHSSBhcHBsaWNhdGlvbi4gIFlvdSBwYXNzIGluIHRoZQorICAgIHNjcmlwdCBwYXRoIChgYHNjcmlwdGBgKSwgYW4gb3B0aW9uYWwgcGF0aCB0byBzZWFyY2ggZm9yIHRoZQorICAgIHNjcmlwdCAoaWYgdGhlIG5hbWUgaXNuJ3QgYWJzb2x1dGUpIChgYHBhdGhgYCkuICBJZiB5b3UgZG9uJ3QgZ2l2ZQorICAgIGEgcGF0aCwgdGhlbiBgYCRQQVRIYGAgd2lsbCBiZSB1c2VkLgorICAgICIiIgorICAgIGlmIHBhdGggaXMgTm9uZToKKyAgICAgICAgcGF0aCA9IGdsb2JhbF9jb25mLmdldCgncGF0aCcpIG9yIGdsb2JhbF9jb25mLmdldCgnUEFUSCcpCisgICAgaW5jbHVkZV9vc19lbnZpcm9uID0gY29udmVydGVycy5hc2Jvb2woaW5jbHVkZV9vc19lbnZpcm9uKQorICAgIHJldHVybiBDR0lBcHBsaWNhdGlvbigKKyAgICAgICAgTm9uZSwKKyAgICAgICAgc2NyaXB0LCBwYXRoPXBhdGgsIGluY2x1ZGVfb3NfZW52aXJvbj1pbmNsdWRlX29zX2Vudmlyb24sCisgICAgICAgIHF1ZXJ5X3N0cmluZz1xdWVyeV9zdHJpbmcpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY2dpdGJfY2F0Y2hlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9jZ2l0Yl9jYXRjaGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OGZmYjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY2dpdGJfY2F0Y2hlci5weQpAQCAtMCwwICsxLDEyMSBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCisiIiIKK1dTR0kgbWlkZGxld2FyZQorCitDYXB0dXJlcyBhbnkgZXhjZXB0aW9ucyBhbmQgcHJpbnRzIGEgcHJldHR5IHJlcG9ydC4gIFNlZSB0aGUgYGNnaXRiCitkb2N1bWVudGF0aW9uIDxodHRwOi8vcHl0aG9uLm9yZy9kb2MvY3VycmVudC9saWIvbW9kdWxlLWNnaXRiLmh0bWw+YF8KK2ZvciBtb3JlLgorIiIiCisKK2ltcG9ydCBjZ2l0YgoraW1wb3J0IHNpeAorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJpbmdJTworaW1wb3J0IHN5cworCitmcm9tIHBhc3RlLnV0aWwgaW1wb3J0IGNvbnZlcnRlcnMKKworY2xhc3MgTm9EZWZhdWx0KG9iamVjdCk6CisgICAgcGFzcworCitjbGFzcyBDZ2l0Yk1pZGRsZXdhcmUob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHAsCisgICAgICAgICAgICAgICAgIGdsb2JhbF9jb25mPU5vbmUsCisgICAgICAgICAgICAgICAgIGRpc3BsYXk9Tm9EZWZhdWx0LAorICAgICAgICAgICAgICAgICBsb2dkaXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgY29udGV4dD01LAorICAgICAgICAgICAgICAgICBmb3JtYXQ9Imh0bWwiKToKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgaWYgZ2xvYmFsX2NvbmYgaXMgTm9uZToKKyAgICAgICAgICAgIGdsb2JhbF9jb25mID0ge30KKyAgICAgICAgaWYgZGlzcGxheSBpcyBOb0RlZmF1bHQ6CisgICAgICAgICAgICBkaXNwbGF5ID0gZ2xvYmFsX2NvbmYuZ2V0KCdkZWJ1ZycpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZGlzcGxheSwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgICAgICBkaXNwbGF5ID0gY29udmVydGVycy5hc2Jvb2woZGlzcGxheSkKKyAgICAgICAgc2VsZi5kaXNwbGF5ID0gZGlzcGxheQorICAgICAgICBzZWxmLmxvZ2RpciA9IGxvZ2RpcgorICAgICAgICBzZWxmLmNvbnRleHQgPSBpbnQoY29udGV4dCkKKyAgICAgICAgc2VsZi5mb3JtYXQgPSBmb3JtYXQKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFwcF9pdGVyID0gc2VsZi5hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5jYXRjaGluZ19pdGVyKGFwcF9pdGVyLCBlbnZpcm9uKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnNTAwIEludGVybmFsIFNlcnZlciBFcnJvcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjX2luZm8pCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZXhjZXB0aW9uX2hhbmRsZXIoZXhjX2luZm8sIGVudmlyb24pCisgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIHJldHVybiBbcmVzcG9uc2VdCisKKyAgICBkZWYgY2F0Y2hpbmdfaXRlcihzZWxmLCBhcHBfaXRlciwgZW52aXJvbik6CisgICAgICAgIGlmIG5vdCBhcHBfaXRlcjoKKyAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KKyAgICAgICAgZXJyb3Jfb25fY2xvc2UgPSBGYWxzZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgdiBpbiBhcHBfaXRlcjoKKyAgICAgICAgICAgICAgICB5aWVsZCB2CisgICAgICAgICAgICBpZiBoYXNhdHRyKGFwcF9pdGVyLCAnY2xvc2UnKToKKyAgICAgICAgICAgICAgICBlcnJvcl9vbl9jbG9zZSA9IFRydWUKKyAgICAgICAgICAgICAgICBhcHBfaXRlci5jbG9zZSgpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5leGNlcHRpb25faGFuZGxlcihzeXMuZXhjX2luZm8oKSwgZW52aXJvbikKKyAgICAgICAgICAgIGlmIG5vdCBlcnJvcl9vbl9jbG9zZSBhbmQgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBhcHBfaXRlci5jbG9zZSgpCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICBjbG9zZV9yZXNwb25zZSA9IHNlbGYuZXhjZXB0aW9uX2hhbmRsZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBzeXMuZXhjX2luZm8oKSwgZW52aXJvbikKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgKz0gKAorICAgICAgICAgICAgICAgICAgICAgICAgJzxociBub3NoYWRlPkVycm9yIGluIC5jbG9zZSgpOjxicj4lcycKKyAgICAgICAgICAgICAgICAgICAgICAgICUgY2xvc2VfcmVzcG9uc2UpCisgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIHlpZWxkIHJlc3BvbnNlCisKKyAgICBkZWYgZXhjZXB0aW9uX2hhbmRsZXIoc2VsZiwgZXhjX2luZm8sIGVudmlyb24pOgorICAgICAgICBkdW1teV9maWxlID0gU3RyaW5nSU8oKQorICAgICAgICBob29rID0gY2dpdGIuSG9vayhmaWxlPWR1bW15X2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk9c2VsZi5kaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dkaXI9c2VsZi5sb2dkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ9c2VsZi5jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9c2VsZi5mb3JtYXQpCisgICAgICAgIGhvb2soKmV4Y19pbmZvKQorICAgICAgICByZXR1cm4gZHVtbXlfZmlsZS5nZXR2YWx1ZSgpCisKK2RlZiBtYWtlX2NnaXRiX21pZGRsZXdhcmUoYXBwLCBnbG9iYWxfY29uZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheT1Ob0RlZmF1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2Rpcj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0PTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0naHRtbCcpOgorICAgICIiIgorICAgIFdyYXBzIHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUgYGBjZ2l0YmBgIChzdGFuZGFyZCBsaWJyYXJ5KQorICAgIGVycm9yIGNhdGNoZXIuCisKKyAgICAgIGRpc3BsYXk6CisgICAgICAgIElmIHRydWUgKG9yIGRlYnVnIGlzIHNldCBpbiB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24pCisgICAgICAgIHRoZW4gdGhlIHRyYWNlYmFjayB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlcgorCisgICAgICBsb2dkaXI6CisgICAgICAgIFdyaXRlcyBsb2dzIG9mIGFsbCBlcnJvcnMgaW4gdGhhdCBkaXJlY3RvcnkKKworICAgICAgY29udGV4dDoKKyAgICAgICAgTnVtYmVyIG9mIGxpbmVzIG9mIGNvbnRleHQgdG8gc2hvdyBhcm91bmQgZWFjaCBsaW5lIG9mCisgICAgICAgIHNvdXJjZSBjb2RlCisgICAgIiIiCisgICAgZnJvbSBwYXN0ZS5kZXBsb3kuY29udmVydGVycyBpbXBvcnQgYXNib29sCisgICAgaWYgZGlzcGxheSBpcyBub3QgTm9EZWZhdWx0OgorICAgICAgICBkaXNwbGF5ID0gYXNib29sKGRpc3BsYXkpCisgICAgaWYgJ2RlYnVnJyBpbiBnbG9iYWxfY29uZjoKKyAgICAgICAgZ2xvYmFsX2NvbmZbJ2RlYnVnJ10gPSBhc2Jvb2woZ2xvYmFsX2NvbmZbJ2RlYnVnJ10pCisgICAgcmV0dXJuIENnaXRiTWlkZGxld2FyZSgKKyAgICAgICAgYXBwLCBnbG9iYWxfY29uZj1nbG9iYWxfY29uZiwKKyAgICAgICAgZGlzcGxheT1kaXNwbGF5LAorICAgICAgICBsb2dkaXI9bG9nZGlyLAorICAgICAgICBjb250ZXh0PWNvbnRleHQsCisgICAgICAgIGZvcm1hdD1mb3JtYXQpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY29uZmlnLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTMxNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2NvbmZpZy5weQpAQCAtMCwwICsxLDEyMCBAQAorIyAoYykgMjAwNiBJYW4gQmlja2luZywgUGhpbGlwIEplbnZleSBhbmQgY29udHJpYnV0b3JzCisjIFdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiJQYXN0ZSBDb25maWd1cmF0aW9uIE1pZGRsZXdhcmUgYW5kIE9iamVjdHMiIiIKK2Zyb20gcGFzdGUucmVnaXN0cnkgaW1wb3J0IFJlZ2lzdHJ5TWFuYWdlciwgU3RhY2tlZE9iamVjdFByb3h5CisKK19fYWxsX18gPSBbJ0Rpc3BhdGNoaW5nQ29uZmlnJywgJ0NPTkZJRycsICdDb25maWdNaWRkbGV3YXJlJ10KKworY2xhc3MgRGlzcGF0Y2hpbmdDb25maWcoU3RhY2tlZE9iamVjdFByb3h5KToKKyAgICAiIiIKKyAgICBUaGlzIGlzIGEgY29uZmlndXJhdGlvbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBnbG9iYWxseSwKKyAgICBpbXBvcnRlZCwgaGF2ZSByZWZlcmVuY2VzIGhlbGQgb250by4gIFRoZSBjb25maWd1cmF0aW9uIG1heSBkaWZmZXIKKyAgICBieSB0aHJlYWQgKG9yIG1heSBub3QpLgorCisgICAgU3BlY2lmaWMgY29uZmlndXJhdGlvbnMgYXJlIHJlZ2lzdGVyZWQgKGFuZCBkZXJlZ2lzdGVyZWQpIGVpdGhlcgorICAgIGZvciB0aGUgcHJvY2VzcyBvciBmb3IgdGhyZWFkcy4KKyAgICAiIiIKKyAgICAjIEBAOiBXaGF0IHNob3VsZCBoYXBwZW4gd2hlbiBzb21lb25lIHRyaWVzIHRvIGFkZCB0aGlzCisgICAgIyBjb25maWd1cmF0aW9uIHRvIGl0c2VsZj8gIFByb2JhYmx5IHRoZSBjb25mIHNob3VsZCBiZWNvbWUKKyAgICAjIHJlc29sdmVkLCBhbmQgZ2V0IHJpZCBvZiB0aGlzIGRlbGVnYXRpb24gd3JhcHBlcgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWU9J0Rpc3BhdGNoaW5nQ29uZmlnJyk6CisgICAgICAgIHN1cGVyKERpc3BhdGNoaW5nQ29uZmlnLCBzZWxmKS5fX2luaXRfXyhuYW1lPW5hbWUpCisgICAgICAgIHNlbGYuX19kaWN0X19bJ19wcm9jZXNzX2NvbmZpZ3MnXSA9IFtdCisKKyAgICBkZWYgcHVzaF90aHJlYWRfY29uZmlnKHNlbGYsIGNvbmYpOgorICAgICAgICAiIiIKKyAgICAgICAgTWFrZSBgYGNvbmZgYCB0aGUgYWN0aXZlIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgdGhyZWFkLgorICAgICAgICBUaHJlYWQtbG9jYWwgY29uZmlndXJhdGlvbiBhbHdheXMgb3ZlcnJpZGVzIHByb2Nlc3Mtd2lkZQorICAgICAgICBjb25maWd1cmF0aW9uLgorCisgICAgICAgIFRoaXMgc2hvdWxkIGJlIHVzZWQgbGlrZTo6CisKKyAgICAgICAgICAgIGNvbmYgPSBtYWtlX2NvbmYoKQorICAgICAgICAgICAgZGlzcGF0Y2hpbmdfY29uZmlnLnB1c2hfdGhyZWFkX2NvbmZpZyhjb25mKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIC4uLiBkbyBzdHVmZiAuLi4KKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hpbmdfY29uZmlnLnBvcF90aHJlYWRfY29uZmlnKGNvbmYpCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9wdXNoX29iamVjdChjb25mKQorCisgICAgZGVmIHBvcF90aHJlYWRfY29uZmlnKHNlbGYsIGNvbmY9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBSZW1vdmUgYSB0aHJlYWQtbG9jYWwgY29uZmlndXJhdGlvbi4gIElmIGBgY29uZmBgIGlzIGdpdmVuLAorICAgICAgICBpdCBpcyBjaGVja2VkIGFnYWluc3QgdGhlIHBvcHBlZCBjb25maWd1cmF0aW9uIGFuZCBhbiBlcnJvcgorICAgICAgICBpcyBlbWl0dGVkIGlmIHRoZXkgZG9uJ3QgbWF0Y2guCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9wb3Bfb2JqZWN0KGNvbmYpCisKKyAgICBkZWYgcHVzaF9wcm9jZXNzX2NvbmZpZyhzZWxmLCBjb25mKToKKyAgICAgICAgIiIiCisgICAgICAgIExpa2UgcHVzaF90aHJlYWRfY29uZmlnLCBidXQgYXBwbGllcyB0aGUgY29uZmlndXJhdGlvbiB0bworICAgICAgICB0aGUgZW50aXJlIHByb2Nlc3MuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9wcm9jZXNzX2NvbmZpZ3MuYXBwZW5kKGNvbmYpCisKKyAgICBkZWYgcG9wX3Byb2Nlc3NfY29uZmlnKHNlbGYsIGNvbmY9Tm9uZSk6CisgICAgICAgIHNlbGYuX3BvcF9mcm9tKHNlbGYuX3Byb2Nlc3NfY29uZmlncywgY29uZikKKworICAgIGRlZiBfcG9wX2Zyb20oc2VsZiwgbHN0LCBjb25mKToKKyAgICAgICAgcG9wcGVkID0gbHN0LnBvcCgpCisgICAgICAgIGlmIGNvbmYgaXMgbm90IE5vbmUgYW5kIHBvcHBlZCBpcyBub3QgY29uZjoKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAorICAgICAgICAgICAgICAgICJUaGUgY29uZmlnIHBvcHBlZCAoJXMpIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgY29uZmlnICIKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgKCVzKSIKKyAgICAgICAgICAgICAgICAlIChwb3BwZWQsIGNvbmYpKQorCisgICAgZGVmIF9jdXJyZW50X29iaihzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKERpc3BhdGNoaW5nQ29uZmlnLCBzZWxmKS5fY3VycmVudF9vYmooKQorICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgaWYgc2VsZi5fcHJvY2Vzc19jb25maWdzOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX2NvbmZpZ3NbLTFdCisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKKyAgICAgICAgICAgICAgICAiTm8gY29uZmlndXJhdGlvbiBoYXMgYmVlbiByZWdpc3RlcmVkIGZvciB0aGlzIHByb2Nlc3MgIgorICAgICAgICAgICAgICAgICJvciB0aHJlYWQiKQorICAgIGN1cnJlbnQgPSBjdXJyZW50X2NvbmYgPSBfY3VycmVudF9vYmoKKworQ09ORklHID0gRGlzcGF0Y2hpbmdDb25maWcoKQorCitub19jb25maWcgPSBvYmplY3QoKQorY2xhc3MgQ29uZmlnTWlkZGxld2FyZShSZWdpc3RyeU1hbmFnZXIpOgorICAgICIiIgorICAgIEEgV1NHSSBtaWRkbGV3YXJlIHRoYXQgYWRkcyBhIGBgcGFzdGUuY29uZmlnYGAga2V5IChieSBkZWZhdWx0KQorICAgIHRvIHRoZSByZXF1ZXN0IGVudmlyb25tZW50LCBhcyB3ZWxsIGFzIHJlZ2lzdGVyaW5nIHRoZQorICAgIGNvbmZpZ3VyYXRpb24gdGVtcG9yYXJpbHkgKGZvciB0aGUgbGVuZ3RoIG9mIHRoZSByZXF1ZXN0KSB3aXRoCisgICAgYGBwYXN0ZS5jb25maWcuQ09ORklHYGAgKG9yIGFueSBvdGhlciBgYERpc3BhdGNoaW5nQ29uZmlnYGAKKyAgICBvYmplY3QpLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcGxpY2F0aW9uLCBjb25maWcsIGRpc3BhdGNoaW5nX2NvbmZpZz1DT05GSUcsCisgICAgICAgICAgICAgICAgIGVudmlyb25fa2V5PSdwYXN0ZS5jb25maWcnKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZGVsZWdhdGVzIGFsbCByZXF1ZXN0cyB0byBgYXBwbGljYXRpb25gLCBhZGRpbmcgYSAqY29weSoKKyAgICAgICAgb2YgdGhlIGNvbmZpZ3VyYXRpb24gYGNvbmZpZ2AuCisgICAgICAgICIiIgorICAgICAgICBkZWYgcmVnaXN0ZXJfY29uZmlnKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgIHBvcHBlZF9jb25maWcgPSBlbnZpcm9uLmdldChlbnZpcm9uX2tleSwgbm9fY29uZmlnKQorICAgICAgICAgICAgY3VycmVudF9jb25maWcgPSBlbnZpcm9uW2Vudmlyb25fa2V5XSA9IGNvbmZpZy5jb3B5KCkKKyAgICAgICAgICAgIGVudmlyb25bJ3Bhc3RlLnJlZ2lzdHJ5J10ucmVnaXN0ZXIoZGlzcGF0Y2hpbmdfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NvbmZpZykKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGFwcF9pdGVyID0gYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGlmIHBvcHBlZF9jb25maWcgaXMgbm9fY29uZmlnOgorICAgICAgICAgICAgICAgICAgICBlbnZpcm9uLnBvcChlbnZpcm9uX2tleSwgTm9uZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBlbnZpcm9uW2Vudmlyb25fa2V5XSA9IHBvcHBlZF9jb25maWcKKyAgICAgICAgICAgIHJldHVybiBhcHBfaXRlcgorCisgICAgICAgIHN1cGVyKHNlbGYuX19jbGFzc19fLCBzZWxmKS5fX2luaXRfXyhyZWdpc3Rlcl9jb25maWcpCisKK2RlZiBtYWtlX2NvbmZpZ19maWx0ZXIoYXBwLCBnbG9iYWxfY29uZiwgKipsb2NhbF9jb25mKToKKyAgICBjb25mID0gZ2xvYmFsX2NvbmYuY29weSgpCisgICAgY29uZi51cGRhdGUobG9jYWxfY29uZikKKyAgICByZXR1cm4gQ29uZmlnTWlkZGxld2FyZShhcHAsIGNvbmYpCisKK21ha2VfY29uZmlnX21pZGRsZXdhcmUgPSBDb25maWdNaWRkbGV3YXJlLl9fZG9jX18KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9jb3diZWxsL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2Nvd2JlbGwvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWEwZDIyZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9jb3diZWxsL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTA0IEBACisjIENvd2JlbGwgaW1hZ2VzOiBodHRwOi8vY29tbW9ucy53aWtpbWVkaWEub3JnL3dpa2kvSW1hZ2U6Q293YmVsbC0xLmpwZworaW1wb3J0IG9zCitpbXBvcnQgcmUKK2Zyb20gcGFzdGUuZmlsZWFwcCBpbXBvcnQgRmlsZUFwcAorZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgaGVhZGVyX3ZhbHVlLCByZW1vdmVfaGVhZGVyCisKK1NPVU5EID0gImh0dHA6Ly93d3cuYy1leWUubmV0L2V5ZW9uL1dhbGtlbldBVlMvZXhwbG9yZXN0dWRpb3NwYWNlLndhdiIKKworY2xhc3MgTW9yZUNvd2JlbGwob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwKToKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBwYXRoX2luZm8gPSBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpCisgICAgICAgIHNjcmlwdF9uYW1lID0gZW52aXJvbi5nZXQoJ1NDUklQVF9OQU1FJywgJycpCisgICAgICAgIGZvciBmaWxlbmFtZSBpbiBbJ2JlbGwtYXNjZW5kaW5nLnBuZycsICdiZWxsLWRlc2NlbmRpbmcucG5nJ106CisgICAgICAgICAgICBpZiBwYXRoX2luZm8gPT0gJy8uY293YmVsbC8nKyBmaWxlbmFtZToKKyAgICAgICAgICAgICAgICBhcHAgPSBGaWxlQXBwKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBmaWxlbmFtZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgdHlwZSA9IFtdCisgICAgICAgIGJvZHkgPSBbXQorICAgICAgICBkZWYgcmVwbF9zdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgY3QgPSBoZWFkZXJfdmFsdWUoaGVhZGVycywgJ2NvbnRlbnQtdHlwZScpCisgICAgICAgICAgICBpZiBjdCBhbmQgY3Quc3RhcnRzd2l0aCgndGV4dC9odG1sJyk6CisgICAgICAgICAgICAgICAgdHlwZS5hcHBlbmQoY3QpCisgICAgICAgICAgICAgICAgcmVtb3ZlX2hlYWRlcihoZWFkZXJzLCAnY29udGVudC1sZW5ndGgnKQorICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm8pCisgICAgICAgICAgICAgICAgcmV0dXJuIGJvZHkuYXBwZW5kCisgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbykKKyAgICAgICAgYXBwX2l0ZXIgPSBzZWxmLmFwcChlbnZpcm9uLCByZXBsX3N0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBpZiB0eXBlOgorICAgICAgICAgICAgIyBHb3QgdGV4dC9odG1sCisgICAgICAgICAgICBib2R5LmV4dGVuZChhcHBfaXRlcikKKyAgICAgICAgICAgIGJvZHkgPSAnJy5qb2luKGJvZHkpCisgICAgICAgICAgICBib2R5ID0gaW5zZXJ0X2hlYWQoYm9keSwgc2VsZi5qYXZhc2NyaXB0LnJlcGxhY2UoJ19fU0NSSVBUX05BTUVfXycsIHNjcmlwdF9uYW1lKSkKKyAgICAgICAgICAgIGJvZHkgPSBpbnNlcnRfYm9keShib2R5LCBzZWxmLnJlc291cmNlcy5yZXBsYWNlKCdfX1NDUklQVF9OQU1FX18nLCBzY3JpcHRfbmFtZSkpCisgICAgICAgICAgICByZXR1cm4gW2JvZHldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gYXBwX2l0ZXIKKworICAgIGphdmFzY3JpcHQgPSAnJydcCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgY293YmVsbFN0YXRlID0gJ2hpZGRlbic7Cit2YXIgbGFzdENvd2JlbGxQb3NpdGlvbiA9IG51bGw7CitmdW5jdGlvbiBzaG93U29tZXdoZXJlKCkgeworICB2YXIgc2VjLCBlbDsKKyAgaWYgKGNvd2JlbGxTdGF0ZSA9PSAnaGlkZGVuJykgeworICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nvd2JlbGwtYXNjZW5kaW5nJyk7CisgICAgbGFzdENvd2JlbGxQb3NpdGlvbiA9IFtwYXJzZUludChNYXRoLnJhbmRvbSgpKih3aW5kb3cuaW5uZXJXaWR0aC0yMDApKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KE1hdGgucmFuZG9tKCkqKHdpbmRvdy5pbm5lckhlaWdodC0yMDApKV07CisgICAgZWwuc3R5bGUubGVmdCA9IGxhc3RDb3diZWxsUG9zaXRpb25bMF0gKyAncHgnOworICAgIGVsLnN0eWxlLnRvcCA9IGxhc3RDb3diZWxsUG9zaXRpb25bMV0gKyAncHgnOworICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICBjb3diZWxsU3RhdGUgPSAnYXNjZW5kaW5nJzsKKyAgICBzZWMgPSAxOworICB9IGVsc2UgaWYgKGNvd2JlbGxTdGF0ZSA9PSAnYXNjZW5kaW5nJykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3diZWxsLWFzY2VuZGluZycpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY293YmVsbC1kZXNjZW5kaW5nJyk7CisgICAgZWwuc3R5bGUubGVmdCA9IGxhc3RDb3diZWxsUG9zaXRpb25bMF0gKyAncHgnOworICAgIGVsLnN0eWxlLnRvcCA9IGxhc3RDb3diZWxsUG9zaXRpb25bMV0gKyAncHgnOworICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICBjb3diZWxsU3RhdGUgPSAnZGVzY2VuZGluZyc7CisgICAgc2VjID0gMTsKKyAgfSBlbHNlIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY293YmVsbC1kZXNjZW5kaW5nJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICBjb3diZWxsU3RhdGUgPSAnaGlkZGVuJzsKKyAgICBzZWMgPSBNYXRoLnJhbmRvbSgpKjIwOworICB9CisgIHNldFRpbWVvdXQoc2hvd1NvbWV3aGVyZSwgc2VjKjEwMDApOworfQorc2V0VGltZW91dChzaG93U29tZXdoZXJlLCBNYXRoLnJhbmRvbSgpKjIwKjEwMDApOworPC9zY3JpcHQ+CisnJycKKworICAgIHJlc291cmNlcyA9ICcnJ1wKKzxkaXYgaWQ9ImNvd2JlbGwtYXNjZW5kaW5nIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkIj4KKzxpbWcgc3JjPSJfX1NDUklQVF9OQU1FX18vLmNvd2JlbGwvYmVsbC1hc2NlbmRpbmcucG5nIj4KKzwvZGl2PgorPGRpdiBpZD0iY293YmVsbC1kZXNjZW5kaW5nIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkIj4KKzxpbWcgc3JjPSJfX1NDUklQVF9OQU1FX18vLmNvd2JlbGwvYmVsbC1kZXNjZW5kaW5nLnBuZyI+Cis8L2Rpdj4KKycnJworCitkZWYgaW5zZXJ0X2hlYWQoYm9keSwgdGV4dCk6CisgICAgZW5kX2hlYWQgPSByZS5zZWFyY2gocic8L2hlYWQ+JywgYm9keSwgcmUuSSkKKyAgICBpZiBlbmRfaGVhZDoKKyAgICAgICAgcmV0dXJuIGJvZHlbOmVuZF9oZWFkLnN0YXJ0KCldICsgdGV4dCArIGJvZHlbZW5kX2hlYWQuZW5kKCk6XQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiB0ZXh0ICsgYm9keQorCitkZWYgaW5zZXJ0X2JvZHkoYm9keSwgdGV4dCk6CisgICAgZW5kX2JvZHkgPSByZS5zZWFyY2gocic8L2JvZHk+JywgYm9keSwgcmUuSSkKKyAgICBpZiBlbmRfYm9keToKKyAgICAgICAgcmV0dXJuIGJvZHlbOmVuZF9ib2R5LnN0YXJ0KCldICsgdGV4dCArIGJvZHlbZW5kX2JvZHkuZW5kKCk6XQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBib2R5ICsgdGV4dAorCitkZWYgbWFrZV9jb3diZWxsKGdsb2JhbF9jb25mLCBhcHApOgorICAgIHJldHVybiBNb3JlQ293YmVsbChhcHApCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgZnJvbSBwYXN0ZS5kZWJ1Zy5kZWJ1Z2FwcCBpbXBvcnQgU2ltcGxlQXBwbGljYXRpb24KKyAgICBhcHAgPSBNb3JlQ293YmVsbChTaW1wbGVBcHBsaWNhdGlvbigpKQorICAgIGZyb20gcGFzdGUuaHR0cHNlcnZlciBpbXBvcnQgc2VydmUKKyAgICBzZXJ2ZShhcHApCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY293YmVsbC9iZWxsLWFzY2VuZGluZy5wbmcgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY293YmVsbC9iZWxsLWFzY2VuZGluZy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJmMzNkYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9jb3diZWxsL2JlbGwtYXNjZW5kaW5nLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvY293YmVsbC9iZWxsLWRlc2NlbmRpbmcucG5nIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2Nvd2JlbGwvYmVsbC1kZXNjZW5kaW5nLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWM4MDEyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2Nvd2JlbGwvYmVsbC1kZXNjZW5kaW5nLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFlZjdjYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9kZWJ1Zy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDUgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorUGFja2FnZSBmb3IgZGVidWdnaW5nIGFuZCBkZXZlbG9wbWVudCB0b29scworIiIiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvZGVidWdhcHAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvZGVidWdhcHAucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjc1MmMzNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9kZWJ1Zy9kZWJ1Z2FwcC5weQpAQCAtMCwwICsxLDc5IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIChjKSAyMDA1IENsYXJrIEMuIEV2YW5zCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFRoaXMgY29kZSB3YXMgd3JpdHRlbiB3aXRoIGZ1bmRpbmcgYnkgaHR0cDovL3Byb21ldGhldXNyZXNlYXJjaC5jb20KKyIiIgorVmFyaW91cyBBcHBsaWNhdGlvbnMgZm9yIERlYnVnZ2luZy9UZXN0aW5nIFB1cnBvc2VzCisiIiIKKworaW1wb3J0IHRpbWUKK19fYWxsX18gPSBbJ1NpbXBsZUFwcGxpY2F0aW9uJywgJ1Nsb3dDb25zdW1lciddCisKKworY2xhc3MgU2ltcGxlQXBwbGljYXRpb24ob2JqZWN0KToKKyAgICAiIiIKKyAgICBQcm9kdWNlcyBhIHNpbXBsZSB3ZWIgcGFnZQorICAgICIiIgorICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGJvZHkgPSBiIjxodG1sPjxib2R5PnNpbXBsZTwvYm9keT48L2h0bWw+IgorICAgICAgICBzdGFydF9yZXNwb25zZSgiMjAwIE9LIiwgWygnQ29udGVudC1UeXBlJywgJ3RleHQvaHRtbCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnQ29udGVudC1MZW5ndGgnLCBzdHIobGVuKGJvZHkpKSldKQorICAgICAgICByZXR1cm4gW2JvZHldCisKK2NsYXNzIFNsb3dDb25zdW1lcihvYmplY3QpOgorICAgICIiIgorICAgIENvbnN1bWVzIGFuIHVwbG9hZCBzbG93bHkuLi4KKworICAgIE5PVEU6IFRoaXMgc2hvdWxkIHVzZSB0aGUgaXRlcmF0b3IgZm9ybSBvZiBgYHdzZ2kuaW5wdXRgYCwKKyAgICAgICAgICBidXQgaXQgaXNuJ3QgaW1wbGVtZW50ZWQgaW4gcGFzdGUuaHR0cHNlcnZlci4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY2h1bmtfc2l6ZSA9IDQwOTYsIGRlbGF5ID0gMSwgcHJvZ3Jlc3MgPSBUcnVlKToKKyAgICAgICAgc2VsZi5jaHVua19zaXplID0gY2h1bmtfc2l6ZQorICAgICAgICBzZWxmLmRlbGF5ID0gZGVsYXkKKyAgICAgICAgc2VsZi5wcm9ncmVzcyA9IFRydWUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHNpemUgPSAwCisgICAgICAgIHRvdGFsICA9IGVudmlyb24uZ2V0KCdDT05URU5UX0xFTkdUSCcpCisgICAgICAgIGlmIHRvdGFsOgorICAgICAgICAgICAgcmVtYWluaW5nID0gaW50KHRvdGFsKQorICAgICAgICAgICAgd2hpbGUgcmVtYWluaW5nID4gMDoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnByb2dyZXNzOgorICAgICAgICAgICAgICAgICAgICBwcmludCgiJXMgb2YgJXMgcmVtYWluaW5nIiAlIChyZW1haW5pbmcsIHRvdGFsKSkKKyAgICAgICAgICAgICAgICBpZiByZW1haW5pbmcgPiA0MDk2OgorICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGVudmlyb25bJ3dzZ2kuaW5wdXQnXS5yZWFkKDQwOTYpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSBlbnZpcm9uWyd3c2dpLmlucHV0J10ucmVhZChyZW1haW5pbmcpCisgICAgICAgICAgICAgICAgaWYgbm90IGNodW5rOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIHNpemUgKz0gbGVuKGNodW5rKQorICAgICAgICAgICAgICAgIHJlbWFpbmluZyAtPSBsZW4oY2h1bmspCisgICAgICAgICAgICAgICAgaWYgc2VsZi5kZWxheToKKyAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcChzZWxmLmRlbGF5KQorICAgICAgICAgICAgYm9keSA9ICI8aHRtbD48Ym9keT4lZCBieXRlczwvYm9keT48L2h0bWw+IiAlIHNpemUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJvZHkgPSAoJzxodG1sPjxib2R5PlxuJworICAgICAgICAgICAgICAgICc8Zm9ybSBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPlxuJworICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSI+XG4nCisgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJzdWJtaXQiID5cbicKKyAgICAgICAgICAgICAgICAnPC9mb3JtPjwvYm9keT48L2h0bWw+XG4nKQorICAgICAgICBwcmludCgiYmluZ2xlcyIpCisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCIyMDAgT0siLCBbKCdDb250ZW50LVR5cGUnLCAndGV4dC9odG1sJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdDb250ZW50LUxlbmd0aCcsIGxlbihib2R5KSldKQorICAgICAgICByZXR1cm4gW2JvZHldCisKK2RlZiBtYWtlX3Rlc3RfYXBwKGdsb2JhbF9jb25mKToKKyAgICByZXR1cm4gU2ltcGxlQXBwbGljYXRpb24oKQorCittYWtlX3Rlc3RfYXBwLl9fZG9jX18gPSBTaW1wbGVBcHBsaWNhdGlvbi5fX2RvY19fCisKK2RlZiBtYWtlX3Nsb3dfYXBwKGdsb2JhbF9jb25mLCBjaHVua19zaXplPTQwOTYsIGRlbGF5PTEsIHByb2dyZXNzPVRydWUpOgorICAgIGZyb20gcGFzdGUuZGVwbG95LmNvbnZlcnRlcnMgaW1wb3J0IGFzYm9vbAorICAgIHJldHVybiBTbG93Q29uc3VtZXIoCisgICAgICAgIGNodW5rX3NpemU9aW50KGNodW5rX3NpemUpLAorICAgICAgICBkZWxheT1pbnQoZGVsYXkpLAorICAgICAgICBwcm9ncmVzcz1hc2Jvb2wocHJvZ3Jlc3MpKQorCittYWtlX3Nsb3dfYXBwLl9fZG9jX18gPSBTbG93Q29uc3VtZXIuX19kb2NfXwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL2RvY3Rlc3Rfd2ViYXBwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL2RvY3Rlc3Rfd2ViYXBwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmY2ZhYTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvZG9jdGVzdF93ZWJhcHAucHkKQEAgLTAsMCArMSw0MzIgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjIuNAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCisiIiIKK1RoZXNlIGFyZSBmdW5jdGlvbnMgZm9yIHVzZSB3aGVuIGRvY3Rlc3QtdGVzdGluZyBhIGRvY3VtZW50LgorIiIiCisKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgZG9jdGVzdAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgcmUKK2ltcG9ydCBjZ2kKK2ltcG9ydCByZmM4MjIKK2Zyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworZnJvbSBwYXN0ZS51dGlsIGltcG9ydCBQeVNvdXJjZUNvbG9yCisKKworaGVyZSA9IG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykKK3Bhc3RlX3BhcmVudCA9IG9zLnBhdGguZGlybmFtZSgKKyAgICBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKGhlcmUpKSkKKworZGVmIHJ1bihjb21tYW5kKToKKyAgICBkYXRhID0gcnVuX3Jhdyhjb21tYW5kKQorICAgIGlmIGRhdGE6CisgICAgICAgIHByaW50KGRhdGEpCisKK2RlZiBydW5fcmF3KGNvbW1hbmQpOgorICAgICIiIgorICAgIFJ1bnMgdGhlIHN0cmluZyBjb21tYW5kLCByZXR1cm5zIGFueSBvdXRwdXQuCisgICAgIiIiCisgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY29tbWFuZCwgc2hlbGw9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgZW52PV9tYWtlX2VudigpKQorICAgIGRhdGEgPSBwcm9jLnN0ZG91dC5yZWFkKCkKKyAgICBwcm9jLndhaXQoKQorICAgIHdoaWxlIGRhdGEuZW5kc3dpdGgoJ1xuJykgb3IgZGF0YS5lbmRzd2l0aCgnXHInKToKKyAgICAgICAgZGF0YSA9IGRhdGFbOi0xXQorICAgIGlmIGRhdGE6CisgICAgICAgIGRhdGEgPSAnXG4nLmpvaW4oCisgICAgICAgICAgICBbbCBmb3IgbCBpbiBkYXRhLnNwbGl0bGluZXMoKSBpZiBsXSkKKyAgICAgICAgcmV0dXJuIGRhdGEKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJycKKworZGVmIHJ1bl9jb21tYW5kKGNvbW1hbmQsIG5hbWUsIGFuZF9wcmludD1GYWxzZSk6CisgICAgb3V0cHV0ID0gcnVuX3Jhdyhjb21tYW5kKQorICAgIGRhdGEgPSAnJCAlc1xuJXMnICUgKGNvbW1hbmQsIG91dHB1dCkKKyAgICBzaG93X2ZpbGUoJ3NoZWxsLWNvbW1hbmQnLCBuYW1lLCBkZXNjcmlwdGlvbj0nc2hlbGwgdHJhbnNjcmlwdCcsCisgICAgICAgICAgICAgIGRhdGE9ZGF0YSkKKyAgICBpZiBhbmRfcHJpbnQgYW5kIG91dHB1dDoKKyAgICAgICAgcHJpbnQob3V0cHV0KQorCitkZWYgX21ha2VfZW52KCk6CisgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICBlbnZbJ1BBVEgnXSA9IChlbnYuZ2V0KCdQQVRIJywgJycpCisgICAgICAgICAgICAgICAgICAgKyAnOicKKyAgICAgICAgICAgICAgICAgICArIG9zLnBhdGguam9pbihwYXN0ZV9wYXJlbnQsICdzY3JpcHRzJykKKyAgICAgICAgICAgICAgICAgICArICc6JworICAgICAgICAgICAgICAgICAgICsgb3MucGF0aC5qb2luKHBhc3RlX3BhcmVudCwgJ3Bhc3RlJywgJzNyZC1wYXJ0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NxbG9iamVjdC1maWxlcycsICdzY3JpcHRzJykpCisgICAgZW52WydQWVRIT05QQVRIJ10gPSAoZW52LmdldCgnUFlUSE9OUEFUSCcsICcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICsgJzonCisgICAgICAgICAgICAgICAgICAgICAgICAgKyBwYXN0ZV9wYXJlbnQpCisgICAgcmV0dXJuIGVudgorCitkZWYgY2xlYXJfZGlyKGRpcik6CisgICAgIiIiCisgICAgQ2xlYXJzIChkZWxldGVzKSB0aGUgZ2l2ZW4gZGlyZWN0b3J5CisgICAgIiIiCisgICAgc2h1dGlsLnJtdHJlZShkaXIsIFRydWUpCisKK2RlZiBscyhkaXI9Tm9uZSwgcmVjdXJzZT1GYWxzZSwgaW5kZW50PTApOgorICAgICIiIgorICAgIFNob3cgYSBkaXJlY3RvcnkgbGlzdGluZworICAgICIiIgorICAgIGRpciA9IGRpciBvciBvcy5nZXRjd2QoKQorICAgIGZucyA9IG9zLmxpc3RkaXIoZGlyKQorICAgIGZucy5zb3J0KCkKKyAgICBmb3IgZm4gaW4gZm5zOgorICAgICAgICBmdWxsID0gb3MucGF0aC5qb2luKGRpciwgZm4pCisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZnVsbCk6CisgICAgICAgICAgICBmbiA9IGZuICsgJy8nCisgICAgICAgIHByaW50KCcgJyppbmRlbnQgKyBmbikKKyAgICAgICAgaWYgb3MucGF0aC5pc2RpcihmdWxsKSBhbmQgcmVjdXJzZToKKyAgICAgICAgICAgIGxzKGRpcj1mdWxsLCByZWN1cnNlPVRydWUsIGluZGVudD1pbmRlbnQrMikKKworZGVmYXVsdF9hcHAgPSBOb25lCitkZWZhdWx0X3VybCA9IE5vbmUKKworZGVmIHNldF9kZWZhdWx0X2FwcChhcHAsIHVybCk6CisgICAgZ2xvYmFsIGRlZmF1bHRfYXBwCisgICAgZ2xvYmFsIGRlZmF1bHRfdXJsCisgICAgZGVmYXVsdF9hcHAgPSBhcHAKKyAgICBkZWZhdWx0X3VybCA9IHVybAorCitkZWYgcmVzb3VyY2VfZmlsZW5hbWUoZm4pOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIGZpbGVuYW1lIG9mIHRoZSByZXNvdXJjZSAtLSBnZW5lcmFsbHkgaW4gdGhlIGRpcmVjdG9yeQorICAgIHJlc291cmNlcy9Eb2N1bWVudE5hbWUvZm4KKyAgICAiIiIKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKAorICAgICAgICBvcy5wYXRoLmRpcm5hbWUoc3lzLnRlc3RpbmdfZG9jdW1lbnRfZmlsZW5hbWUpLAorICAgICAgICAncmVzb3VyY2VzJywKKyAgICAgICAgb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKHN5cy50ZXN0aW5nX2RvY3VtZW50X2ZpbGVuYW1lKSlbMF0sCisgICAgICAgIGZuKQorCitkZWYgc2hvdyhwYXRoX2luZm8sIGV4YW1wbGVfbmFtZSk6CisgICAgZm4gPSByZXNvdXJjZV9maWxlbmFtZShleGFtcGxlX25hbWUgKyAnLmh0bWwnKQorICAgIG91dCA9IFN0cmluZ0lPKCkKKyAgICBhc3NlcnQgZGVmYXVsdF9hcHAgaXMgbm90IE5vbmUsICgKKyAgICAgICAgIk5vIGRlZmF1bHRfYXBwIHNldCIpCisgICAgdXJsID0gZGVmYXVsdF91cmwgKyBwYXRoX2luZm8KKyAgICBvdXQud3JpdGUoJzxzcGFuIGNsYXNzPSJkb2N0ZXN0LXVybCI+PGEgaHJlZj0iJXMiPiVzPC9hPjwvc3Bhbj48YnI+XG4nCisgICAgICAgICAgICAgICUgKHVybCwgdXJsKSkKKyAgICBvdXQud3JpdGUoJzxkaXYgY2xhc3M9ImRvY3Rlc3QtZXhhbXBsZSI+XG4nKQorICAgIHByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKAorICAgICAgICBbJ3Bhc3RlcicsICdzZXJ2ZScgJy0tc2VydmVyPWNvbnNvbGUnLCAnLS1uby12ZXJib3NlJywKKyAgICAgICAgICctLXVybD0nICsgcGF0aF9pbmZvXSwKKyAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgZW52PV9tYWtlX2VudigpKQorICAgIHN0ZG91dCwgZXJyb3JzID0gcHJvYy5jb21tdW5pY2F0ZSgpCisgICAgc3Rkb3V0ID0gU3RyaW5nSU8oc3Rkb3V0KQorICAgIGhlYWRlcnMgPSByZmM4MjIuTWVzc2FnZShzdGRvdXQpCisgICAgY29udGVudCA9IHN0ZG91dC5yZWFkKCkKKyAgICBmb3IgaGVhZGVyLCB2YWx1ZSBpbiBoZWFkZXJzLml0ZW1zKCk6CisgICAgICAgIGlmIGhlYWRlci5sb3dlcigpID09ICdzdGF0dXMnIGFuZCBpbnQodmFsdWUuc3BsaXQoKVswXSkgPT0gMjAwOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgaGVhZGVyLmxvd2VyKCkgaW4gKCdjb250ZW50LXR5cGUnLCAnY29udGVudC1sZW5ndGgnKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIChoZWFkZXIubG93ZXIoKSA9PSAnc2V0LWNvb2tpZScKKyAgICAgICAgICAgIGFuZCB2YWx1ZS5zdGFydHN3aXRoKCdfU0lEXycpKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIG91dC53cml0ZSgnPHNwYW4gY2xhc3M9ImRvY3Rlc3QtaGVhZGVyIj4lczogJXM8L3NwYW4+PGJyPlxuJworICAgICAgICAgICAgICAgICAgJSAoaGVhZGVyLCB2YWx1ZSkpCisgICAgbGluZXMgPSBbbCBmb3IgbCBpbiBjb250ZW50LnNwbGl0bGluZXMoKSBpZiBsLnN0cmlwKCldCisgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgIG91dC53cml0ZShsaW5lICsgJ1xuJykKKyAgICBpZiBlcnJvcnM6CisgICAgICAgIG91dC53cml0ZSgnPHByZSBjbGFzcz0iZG9jdGVzdC1lcnJvcnMiPiVzPC9wcmU+JworICAgICAgICAgICAgICAgICAgJSBlcnJvcnMpCisgICAgb3V0LndyaXRlKCc8L2Rpdj5cbicpCisgICAgcmVzdWx0ID0gb3V0LmdldHZhbHVlKCkKKyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZm4pOgorICAgICAgICBmID0gb3BlbihmbiwgJ3diJykKKyAgICAgICAgZi53cml0ZShyZXN1bHQpCisgICAgICAgIGYuY2xvc2UoKQorICAgIGVsc2U6CisgICAgICAgIGYgPSBvcGVuKGZuLCAncmInKQorICAgICAgICBleHBlY3RlZCA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBpZiBub3QgaHRtbF9tYXRjaGVzKGV4cGVjdGVkLCByZXN1bHQpOgorICAgICAgICAgICAgcHJpbnQoJ1BhZ2VzIGRpZCBub3QgbWF0Y2guICBFeHBlY3RlZCBmcm9tICVzOicgJSBmbikKKyAgICAgICAgICAgIHByaW50KCctJyo2MCkKKyAgICAgICAgICAgIHByaW50KGV4cGVjdGVkKQorICAgICAgICAgICAgcHJpbnQoJz0nKjYwKQorICAgICAgICAgICAgcHJpbnQoJ0FjdHVhbCBvdXRwdXQ6JykKKyAgICAgICAgICAgIHByaW50KCctJyo2MCkKKyAgICAgICAgICAgIHByaW50KHJlc3VsdCkKKworZGVmIGh0bWxfbWF0Y2hlcyhwYXR0ZXJuLCB0ZXh0KToKKyAgICByZWdleCA9IHJlLmVzY2FwZShwYXR0ZXJuKQorICAgIHJlZ2V4ID0gcmVnZXgucmVwbGFjZShyJ1wuXC5cLicsICcuKicpCisgICAgcmVnZXggPSByZS5zdWIocicweFswLTlhLWZdKycsICcuKicsIHJlZ2V4KQorICAgIHJlZ2V4ID0gJ14lcyQnICUgcmVnZXgKKyAgICByZXR1cm4gcmUuc2VhcmNoKHJlZ2V4LCB0ZXh0KQorCitkZWYgY29udmVydF9kb2NzdHJpbmdfc3RyaW5nKGRhdGEpOgorICAgIGlmIGRhdGEuc3RhcnRzd2l0aCgnXG4nKToKKyAgICAgICAgZGF0YSA9IGRhdGFbMTpdCisgICAgbGluZXMgPSBkYXRhLnNwbGl0bGluZXMoKQorICAgIG5ld19saW5lcyA9IFtdCisgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgIGlmIGxpbmUucnN0cmlwKCkgPT0gJy4nOgorICAgICAgICAgICAgbmV3X2xpbmVzLmFwcGVuZCgnJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG5ld19saW5lcy5hcHBlbmQobGluZSkKKyAgICBkYXRhID0gJ1xuJy5qb2luKG5ld19saW5lcykgKyAnXG4nCisgICAgcmV0dXJuIGRhdGEKKworZGVmIGNyZWF0ZV9maWxlKHBhdGgsIHZlcnNpb24sIGRhdGEpOgorICAgIGRhdGEgPSBjb252ZXJ0X2RvY3N0cmluZ19zdHJpbmcoZGF0YSkKKyAgICB3cml0ZV9kYXRhKHBhdGgsIGRhdGEpCisgICAgc2hvd19maWxlKHBhdGgsIHZlcnNpb24pCisKK2RlZiBhcHBlbmRfdG9fZmlsZShwYXRoLCB2ZXJzaW9uLCBkYXRhKToKKyAgICBkYXRhID0gY29udmVydF9kb2NzdHJpbmdfc3RyaW5nKGRhdGEpCisgICAgZiA9IG9wZW4ocGF0aCwgJ2EnKQorICAgIGYud3JpdGUoZGF0YSkKKyAgICBmLmNsb3NlKCkKKyAgICAjIEkgdGhpbmsgdGhlc2UgYXBwZW5kcyBjYW4gaGFwcGVuIHNvIHF1aWNrbHkgKGluIGxlc3MgdGhhbiBhIHNlY29uZCkKKyAgICAjIHRoYXQgdGhlIC5weWMgZmlsZSBkb2Vzbid0IGFwcGVhciB0byBiZSBleHBpcmVkLCBldmVuIHRob3VnaCBpdAorICAgICMgaXMgYWZ0ZXIgd2UndmUgbWFkZSB0aGlzIGNoYW5nZTsgc28gd2UgaGF2ZSB0byBnZXQgcmlkIG9mIHRoZSAucHljCisgICAgIyBmaWxlOgorICAgIGlmIHBhdGguZW5kc3dpdGgoJy5weScpOgorICAgICAgICBweWNfZmlsZSA9IHBhdGggKyAnYycKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMocHljX2ZpbGUpOgorICAgICAgICAgICAgb3MudW5saW5rKHB5Y19maWxlKQorICAgIHNob3dfZmlsZShwYXRoLCB2ZXJzaW9uLCBkZXNjcmlwdGlvbj0nYWRkZWQgdG8gJXMnICUgcGF0aCwKKyAgICAgICAgICAgICAgZGF0YT1kYXRhKQorCitkZWYgc2hvd19maWxlKHBhdGgsIHZlcnNpb24sIGRlc2NyaXB0aW9uPU5vbmUsIGRhdGE9Tm9uZSk6CisgICAgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChwYXRoKVsxXQorICAgIGlmIGRhdGEgaXMgTm9uZToKKyAgICAgICAgZiA9IG9wZW4ocGF0aCwgJ3JiJykKKyAgICAgICAgZGF0YSA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQorICAgIGlmIGV4dCA9PSAnLnB5JzoKKyAgICAgICAgaHRtbCA9ICgnPGRpdiBjbGFzcz0ic291cmNlLWNvZGUiPiVzPC9kaXY+JworICAgICAgICAgICAgICAgICUgUHlTb3VyY2VDb2xvci5zdHIyaHRtbChkYXRhLCBQeVNvdXJjZUNvbG9yLmRhcmspKQorICAgIGVsc2U6CisgICAgICAgIGh0bWwgPSAnPHByZSBjbGFzcz0ic291cmNlLWNvZGUiPiVzPC9wcmU+JyAlIGNnaS5lc2NhcGUoZGF0YSwgMSkKKyAgICBodG1sID0gJzxzcGFuIGNsYXNzPSJzb3VyY2UtZmlsZW5hbWUiPiVzPC9zcGFuPjxicj4lcycgJSAoCisgICAgICAgIGRlc2NyaXB0aW9uIG9yIHBhdGgsIGh0bWwpCisgICAgd3JpdGVfZGF0YShyZXNvdXJjZV9maWxlbmFtZSgnJXMuJXMuZ2VuLmh0bWwnICUgKHBhdGgsIHZlcnNpb24pKSwKKyAgICAgICAgICAgICAgIGh0bWwpCisKK2RlZiBjYWxsX3NvdXJjZV9oaWdobGlnaHQoaW5wdXQsIGZvcm1hdCk6CisgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oWydzb3VyY2UtaGlnaGxpZ2h0JywgJy0tb3V0LWZvcm1hdD1odG1sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbm8tZG9jJywgJy0tY3NzPW5vbmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1zcmMtbGFuZz0lcycgJSBmb3JtYXRdLCBzaGVsbD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQorICAgIHN0ZG91dCwgc3RkZXJyID0gcHJvYy5jb21tdW5pY2F0ZShpbnB1dCkKKyAgICByZXN1bHQgPSBzdGRvdXQKKyAgICBwcm9jLndhaXQoKQorICAgIHJldHVybiByZXN1bHQKKworCitkZWYgd3JpdGVfZGF0YShwYXRoLCBkYXRhKToKKyAgICBkaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKHBhdGgpKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkaXIpOgorICAgICAgICBvcy5tYWtlZGlycyhkaXIpCisgICAgZiA9IG9wZW4ocGF0aCwgJ3diJykKKyAgICBmLndyaXRlKGRhdGEpCisgICAgZi5jbG9zZSgpCisKKworZGVmIGNoYW5nZV9maWxlKHBhdGgsIGNoYW5nZXMpOgorICAgIGYgPSBvcGVuKG9zLnBhdGguYWJzcGF0aChwYXRoKSwgJ3JiJykKKyAgICBsaW5lcyA9IGYucmVhZGxpbmVzKCkKKyAgICBmLmNsb3NlKCkKKyAgICBmb3IgY2hhbmdlX3R5cGUsIGxpbmUsIHRleHQgaW4gY2hhbmdlczoKKyAgICAgICAgaWYgY2hhbmdlX3R5cGUgPT0gJ2luc2VydCc6CisgICAgICAgICAgICBsaW5lc1tsaW5lOmxpbmVdID0gW3RleHRdCisgICAgICAgIGVsaWYgY2hhbmdlX3R5cGUgPT0gJ2RlbGV0ZSc6CisgICAgICAgICAgICBsaW5lc1tsaW5lOnRleHRdID0gW10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAwLCAoCisgICAgICAgICAgICAgICAgIlVua25vd24gY2hhbmdlX3R5cGU6ICVyIiAlIGNoYW5nZV90eXBlKQorICAgIGYgPSBvcGVuKHBhdGgsICd3YicpCisgICAgZi53cml0ZSgnJy5qb2luKGxpbmVzKSkKKyAgICBmLmNsb3NlKCkKKworY2xhc3MgTG9uZ0Zvcm1Eb2NUZXN0UGFyc2VyKGRvY3Rlc3QuRG9jVGVzdFBhcnNlcik6CisKKyAgICAiIiIKKyAgICBUaGlzIHBhcnNlciByZWNvZ25pemVzIHNvbWUgcmVTVCBjb21tZW50cyBhcyBjb21tYW5kcywgd2l0aG91dAorICAgIHByb21wdHMgb3IgZXhwZWN0ZWQgb3V0cHV0LCBsaWtlOgorCisgICAgLi4gcnVuOgorCisgICAgICAgIGRvX3RoaXMoLi4uCisgICAgICAgIC4uLikKKyAgICAiIiIKKworICAgIF9FWEFNUExFX1JFID0gcmUuY29tcGlsZShyIiIiCisgICAgICAgICMgU291cmNlIGNvbnNpc3RzIG9mIGEgUFMxIGxpbmUgZm9sbG93ZWQgYnkgemVybyBvciBtb3JlIFBTMiBsaW5lcy4KKyAgICAgICAgKD86ICg/UDxzb3VyY2U+CisgICAgICAgICAgICAgICAgKD86Xig/UDxpbmRlbnQ+IFsgXSopID4+PiAgICAuKikgICAgIyBQUzEgbGluZQorICAgICAgICAgICAgICAgICg/OlxuICAgICAgICAgICBbIF0qICBcLlwuXC4gLiopKikgICMgUFMyIGxpbmVzCisgICAgICAgICAgICBcbj8KKyAgICAgICAgICAgICMgV2FudCBjb25zaXN0cyBvZiBhbnkgbm9uLWJsYW5rIGxpbmVzIHRoYXQgZG8gbm90IHN0YXJ0IHdpdGggUFMxLgorICAgICAgICAgICAgKD9QPHdhbnQ+ICg/Oig/IVsgXSokKSAgICAjIE5vdCBhIGJsYW5rIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoPyFbIF0qPj4+KSAgIyBOb3QgYSBsaW5lIHN0YXJ0aW5nIHdpdGggUFMxCisgICAgICAgICAgICAgICAgICAgICAgICAgLiokXG4/ICAgICAgICMgQnV0IGFueSBvdGhlciBsaW5lCisgICAgICAgICAgICAgICAgICAgICAgKSopKQorICAgICAgICB8CisgICAgICAgICg/OiAjIFRoaXMgaXMgZm9yIGxvbmdlciBjb21tYW5kcyB0aGF0IGFyZSBwcmVmaXhlZCB3aXRoIGEgcmVTVAorICAgICAgICAgICAgIyBjb21tZW50IGxpa2UgJy4uIHJ1bjonICh0d28gY29sb25zIG1ha2VzIHRoYXQgYSBkaXJlY3RpdmUpLgorICAgICAgICAgICAgIyBUaGVzZSBjb21tYW5kcyBjYW5ub3QgaGF2ZSBhbnkgb3V0cHV0LgorCisgICAgICAgICAgICAoPzpeXC5cLlsgXSooP1A8cnVuPnJ1bik6WyBdKlxuKSAjIExlYWRpbmcgY29tbWFuZC9jb21tYW5kCisgICAgICAgICAgICAoPzpbIF0qXG4pPyAgICAgICAgICMgQmxhbmsgbGluZSBmb2xsb3dpbmcKKyAgICAgICAgICAgICg/UDxydW5zb3VyY2U+CisgICAgICAgICAgICAgICAgKD86KD9QPHJ1bmluZGVudD4gWyBdKylbXiBdLiokKQorICAgICAgICAgICAgICAgICg/OlxuIFsgXSsgLiopKikKKyAgICAgICAgICAgICkKKyAgICAgICAgfAorICAgICAgICAoPzogIyBUaGlzIGlzIGZvciBzaGVsbCBjb21tYW5kcworCisgICAgICAgICAgICAoP1A8c2hlbGxzb3VyY2U+CisgICAgICAgICAgICAgICAgKD86XihQPHNoZWxsaW5kZW50PiBbIF0qKSBbJF0gLiopICAgIyBTaGVsbCBsaW5lCisgICAgICAgICAgICAgICAgKD86XG4gICAgICAgICAgICAgICBbIF0qICBbPl0gLiopKikgIyBDb250aW51YXRpb24KKyAgICAgICAgICAgIFxuPworICAgICAgICAgICAgIyBXYW50IGNvbnNpc3RzIG9mIGFueSBub24tYmxhbmsgbGluZXMgdGhhdCBkbyBub3Qgc3RhcnQgd2l0aCAkCisgICAgICAgICAgICAoP1A8c2hlbGx3YW50PiAoPzooPyFbIF0qJCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg/IVsgXSpbJF0kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiokXG4/CisgICAgICAgICAgICAgICAgICAgICAgICAgICApKikpCisgICAgICAgICIiIiwgcmUuTVVMVElMSU5FIHwgcmUuVkVSQk9TRSkKKworICAgIGRlZiBfcGFyc2VfZXhhbXBsZShzZWxmLCBtLCBuYW1lLCBsaW5lbm8pOgorICAgICAgICByIiIiCisgICAgICAgIEdpdmVuIGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNoIGZyb20gYF9FWEFNUExFX1JFYCAoYG1gKSwKKyAgICAgICAgcmV0dXJuIGEgcGFpciBgKHNvdXJjZSwgd2FudClgLCB3aGVyZSBgc291cmNlYCBpcyB0aGUgbWF0Y2hlZAorICAgICAgICBleGFtcGxlJ3Mgc291cmNlIGNvZGUgKHdpdGggcHJvbXB0cyBhbmQgaW5kZW50YXRpb24gc3RyaXBwZWQpOworICAgICAgICBhbmQgYHdhbnRgIGlzIHRoZSBleGFtcGxlJ3MgZXhwZWN0ZWQgb3V0cHV0ICh3aXRoIGluZGVudGF0aW9uCisgICAgICAgIHN0cmlwcGVkKS4KKworICAgICAgICBgbmFtZWAgaXMgdGhlIHN0cmluZydzIG5hbWUsIGFuZCBgbGluZW5vYCBpcyB0aGUgbGluZSBudW1iZXIKKyAgICAgICAgd2hlcmUgdGhlIGV4YW1wbGUgc3RhcnRzOyBib3RoIGFyZSB1c2VkIGZvciBlcnJvciBtZXNzYWdlcy4KKworICAgICAgICA+Pj4gZGVmIHBhcnNlaXQocyk6CisgICAgICAgIC4uLiAgICAgcCA9IExvbmdGb3JtRG9jVGVzdFBhcnNlcigpCisgICAgICAgIC4uLiAgICAgcmV0dXJuIHAuX3BhcnNlX2V4YW1wbGUocC5fRVhBTVBMRV9SRS5zZWFyY2gocyksICc8c3RyaW5nPicsIDEpCisgICAgICAgID4+PiBwYXJzZWl0KCc+Pj4gMVxuMScpCisgICAgICAgICgnMScsIHt9LCAnMScsIE5vbmUpCisgICAgICAgID4+PiBwYXJzZWl0KCc+Pj4gKDFcbi4uLiArMSlcbjInKQorICAgICAgICAoJygxXG4rMSknLCB7fSwgJzInLCBOb25lKQorICAgICAgICA+Pj4gcGFyc2VpdCgnLi4gcnVuOlxuXG4gICAgdGVzdDFcbiAgICB0ZXN0MlxuJykKKyAgICAgICAgKCd0ZXN0MVxudGVzdDInLCB7fSwgJycsIE5vbmUpCisgICAgICAgICIiIgorICAgICAgICAjIEdldCB0aGUgZXhhbXBsZSdzIGluZGVudGF0aW9uIGxldmVsLgorICAgICAgICBydW5uZXIgPSBtLmdyb3VwKCdydW4nKSBvciAnJworICAgICAgICBpbmRlbnQgPSBsZW4obS5ncm91cCgnJXNpbmRlbnQnICUgcnVubmVyKSkKKworICAgICAgICAjIERpdmlkZSBzb3VyY2UgaW50byBsaW5lczsgY2hlY2sgdGhhdCB0aGV5J3JlIHByb3Blcmx5CisgICAgICAgICMgaW5kZW50ZWQ7IGFuZCB0aGVuIHN0cmlwIHRoZWlyIGluZGVudGF0aW9uICYgcHJvbXB0cy4KKyAgICAgICAgc291cmNlX2xpbmVzID0gbS5ncm91cCgnJXNzb3VyY2UnICUgcnVubmVyKS5zcGxpdCgnXG4nKQorICAgICAgICBpZiBydW5uZXI6CisgICAgICAgICAgICBzZWxmLl9jaGVja19wcmVmaXgoc291cmNlX2xpbmVzWzE6XSwgJyAnKmluZGVudCwgbmFtZSwgbGluZW5vKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fY2hlY2tfcHJvbXB0X2JsYW5rKHNvdXJjZV9saW5lcywgaW5kZW50LCBuYW1lLCBsaW5lbm8pCisgICAgICAgICAgICBzZWxmLl9jaGVja19wcmVmaXgoc291cmNlX2xpbmVzWzI6XSwgJyAnKmluZGVudCArICcuJywgbmFtZSwgbGluZW5vKQorICAgICAgICBpZiBydW5uZXI6CisgICAgICAgICAgICBzb3VyY2UgPSAnXG4nLmpvaW4oW3NsW2luZGVudDpdIGZvciBzbCBpbiBzb3VyY2VfbGluZXNdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc291cmNlID0gJ1xuJy5qb2luKFtzbFtpbmRlbnQrNDpdIGZvciBzbCBpbiBzb3VyY2VfbGluZXNdKQorCisgICAgICAgIGlmIHJ1bm5lcjoKKyAgICAgICAgICAgIHdhbnQgPSAnJworICAgICAgICAgICAgZXhjX21zZyA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgRGl2aWRlIHdhbnQgaW50byBsaW5lczsgY2hlY2sgdGhhdCBpdCdzIHByb3Blcmx5IGluZGVudGVkOyBhbmQKKyAgICAgICAgICAgICMgdGhlbiBzdHJpcCB0aGUgaW5kZW50YXRpb24uICBTcGFjZXMgYmVmb3JlIHRoZSBsYXN0IG5ld2xpbmUgc2hvdWxkCisgICAgICAgICAgICAjIGJlIHByZXNlcnZlZCwgc28gcGxhaW4gcnN0cmlwKCkgaXNuJ3QgZ29vZCBlbm91Z2guCisgICAgICAgICAgICB3YW50ID0gbS5ncm91cCgnd2FudCcpCisgICAgICAgICAgICB3YW50X2xpbmVzID0gd2FudC5zcGxpdCgnXG4nKQorICAgICAgICAgICAgaWYgbGVuKHdhbnRfbGluZXMpID4gMSBhbmQgcmUubWF0Y2gocicgKiQnLCB3YW50X2xpbmVzWy0xXSk6CisgICAgICAgICAgICAgICAgZGVsIHdhbnRfbGluZXNbLTFdICAjIGZvcmdldCBmaW5hbCBuZXdsaW5lICYgc3BhY2VzIGFmdGVyIGl0CisgICAgICAgICAgICBzZWxmLl9jaGVja19wcmVmaXgod2FudF9saW5lcywgJyAnKmluZGVudCwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lbm8gKyBsZW4oc291cmNlX2xpbmVzKSkKKyAgICAgICAgICAgIHdhbnQgPSAnXG4nLmpvaW4oW3dsW2luZGVudDpdIGZvciB3bCBpbiB3YW50X2xpbmVzXSkKKworICAgICAgICAgICAgIyBJZiBgd2FudGAgY29udGFpbnMgYSB0cmFjZWJhY2sgbWVzc2FnZSwgdGhlbiBleHRyYWN0IGl0LgorICAgICAgICAgICAgbSA9IHNlbGYuX0VYQ0VQVElPTl9SRS5tYXRjaCh3YW50KQorICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICBleGNfbXNnID0gbS5ncm91cCgnbXNnJykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhjX21zZyA9IE5vbmUKKworICAgICAgICAjIEV4dHJhY3Qgb3B0aW9ucyBmcm9tIHRoZSBzb3VyY2UuCisgICAgICAgIG9wdGlvbnMgPSBzZWxmLl9maW5kX29wdGlvbnMoc291cmNlLCBuYW1lLCBsaW5lbm8pCisKKyAgICAgICAgcmV0dXJuIHNvdXJjZSwgb3B0aW9ucywgd2FudCwgZXhjX21zZworCisKKyAgICBkZWYgcGFyc2Uoc2VsZiwgc3RyaW5nLCBuYW1lPSc8c3RyaW5nPicpOgorICAgICAgICAiIiIKKyAgICAgICAgRGl2aWRlIHRoZSBnaXZlbiBzdHJpbmcgaW50byBleGFtcGxlcyBhbmQgaW50ZXJ2ZW5pbmcgdGV4dCwKKyAgICAgICAgYW5kIHJldHVybiB0aGVtIGFzIGEgbGlzdCBvZiBhbHRlcm5hdGluZyBFeGFtcGxlcyBhbmQgc3RyaW5ncy4KKyAgICAgICAgTGluZSBudW1iZXJzIGZvciB0aGUgRXhhbXBsZXMgYXJlIDAtYmFzZWQuICBUaGUgb3B0aW9uYWwKKyAgICAgICAgYXJndW1lbnQgYG5hbWVgIGlzIGEgbmFtZSBpZGVudGlmeWluZyB0aGlzIHN0cmluZywgYW5kIGlzIG9ubHkKKyAgICAgICAgdXNlZCBmb3IgZXJyb3IgbWVzc2FnZXMuCisgICAgICAgICIiIgorICAgICAgICBzdHJpbmcgPSBzdHJpbmcuZXhwYW5kdGFicygpCisgICAgICAgICMgSWYgYWxsIGxpbmVzIGJlZ2luIHdpdGggdGhlIHNhbWUgaW5kZW50YXRpb24sIHRoZW4gc3RyaXAgaXQuCisgICAgICAgIG1pbl9pbmRlbnQgPSBzZWxmLl9taW5faW5kZW50KHN0cmluZykKKyAgICAgICAgaWYgbWluX2luZGVudCA+IDA6CisgICAgICAgICAgICBzdHJpbmcgPSAnXG4nLmpvaW4oW2xbbWluX2luZGVudDpdIGZvciBsIGluIHN0cmluZy5zcGxpdCgnXG4nKV0pCisKKyAgICAgICAgb3V0cHV0ID0gW10KKyAgICAgICAgY2hhcm5vLCBsaW5lbm8gPSAwLCAwCisgICAgICAgICMgRmluZCBhbGwgZG9jdGVzdCBleGFtcGxlcyBpbiB0aGUgc3RyaW5nOgorICAgICAgICBmb3IgbSBpbiBzZWxmLl9FWEFNUExFX1JFLmZpbmRpdGVyKHN0cmluZyk6CisgICAgICAgICAgICAjIEFkZCB0aGUgcHJlLWV4YW1wbGUgdGV4dCB0byBgb3V0cHV0YC4KKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nW2NoYXJubzptLnN0YXJ0KCldKQorICAgICAgICAgICAgIyBVcGRhdGUgbGluZW5vIChsaW5lcyBiZWZvcmUgdGhpcyBleGFtcGxlKQorICAgICAgICAgICAgbGluZW5vICs9IHN0cmluZy5jb3VudCgnXG4nLCBjaGFybm8sIG0uc3RhcnQoKSkKKyAgICAgICAgICAgICMgRXh0cmFjdCBpbmZvIGZyb20gdGhlIHJlZ2V4cCBtYXRjaC4KKyAgICAgICAgICAgIChzb3VyY2UsIG9wdGlvbnMsIHdhbnQsIGV4Y19tc2cpID0gXAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyc2VfZXhhbXBsZShtLCBuYW1lLCBsaW5lbm8pCisgICAgICAgICAgICAjIENyZWF0ZSBhbiBFeGFtcGxlLCBhbmQgYWRkIGl0IHRvIHRoZSBsaXN0LgorICAgICAgICAgICAgaWYgbm90IHNlbGYuX0lTX0JMQU5LX09SX0NPTU1FTlQoc291cmNlKToKKyAgICAgICAgICAgICAgICAjIEBAOiBFcmcsIHRoaXMgaXMgdGhlIG9ubHkgbGluZSBJIG5lZWQgdG8gY2hhbmdlLi4uCisgICAgICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChkb2N0ZXN0LkV4YW1wbGUoCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgd2FudCwgZXhjX21zZywKKyAgICAgICAgICAgICAgICAgICAgbGluZW5vPWxpbmVubywKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50PW1pbl9pbmRlbnQrbGVuKG0uZ3JvdXAoJ2luZGVudCcpIG9yIG0uZ3JvdXAoJ3J1bmluZGVudCcpKSwKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz1vcHRpb25zKSkKKyAgICAgICAgICAgICMgVXBkYXRlIGxpbmVubyAobGluZXMgaW5zaWRlIHRoaXMgZXhhbXBsZSkKKyAgICAgICAgICAgIGxpbmVubyArPSBzdHJpbmcuY291bnQoJ1xuJywgbS5zdGFydCgpLCBtLmVuZCgpKQorICAgICAgICAgICAgIyBVcGRhdGUgY2hhcm5vLgorICAgICAgICAgICAgY2hhcm5vID0gbS5lbmQoKQorICAgICAgICAjIEFkZCBhbnkgcmVtYWluaW5nIHBvc3QtZXhhbXBsZSB0ZXh0IHRvIGBvdXRwdXRgLgorICAgICAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1tjaGFybm86XSkKKyAgICAgICAgcmV0dXJuIG91dHB1dAorCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpZiBzeXMuYXJndlsxOl0gYW5kIHN5cy5hcmd2WzFdID09ICdkb2N0ZXN0JzoKKyAgICAgICAgZG9jdGVzdC50ZXN0bW9kKCkKKyAgICAgICAgc3lzLmV4aXQoKQorICAgIGlmIG5vdCBwYXN0ZV9wYXJlbnQgaW4gc3lzLnBhdGg6CisgICAgICAgIHN5cy5wYXRoLmFwcGVuZChwYXN0ZV9wYXJlbnQpCisgICAgZm9yIGZuIGluIHN5cy5hcmd2WzE6XToKKyAgICAgICAgZm4gPSBvcy5wYXRoLmFic3BhdGgoZm4pCisgICAgICAgICMgQEA6IE9LLCBpY2s7IGJ1dCB0aGlzIG1vZHVsZSBnZXRzIGxvYWRlZCB0d2ljZQorICAgICAgICBzeXMudGVzdGluZ19kb2N1bWVudF9maWxlbmFtZSA9IGZuCisgICAgICAgIGRvY3Rlc3QudGVzdGZpbGUoCisgICAgICAgICAgICBmbiwgbW9kdWxlX3JlbGF0aXZlPUZhbHNlLAorICAgICAgICAgICAgb3B0aW9uZmxhZ3M9ZG9jdGVzdC5FTExJUFNJU3xkb2N0ZXN0LlJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUsCisgICAgICAgICAgICBwYXJzZXI9TG9uZ0Zvcm1Eb2NUZXN0UGFyc2VyKCkpCisgICAgICAgIG5ldyA9IG9zLnBhdGguc3BsaXRleHQoZm4pWzBdICsgJy5odG1sJworICAgICAgICBhc3NlcnQgbmV3ICE9IGZuCisgICAgICAgIG9zLnN5c3RlbSgncnN0Mmh0bWwucHkgJXMgPiAlcycgJSAoZm4sIG5ldykpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvZnNkaWZmLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL2ZzZGlmZi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjllYzJkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL2ZzZGlmZi5weQpAQCAtMCwwICsxLDQwOCBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitNb2R1bGUgdG8gZmluZCBkaWZmZXJlbmNlcyBvdmVyIHRpbWUgaW4gYSBmaWxlc3lzdGVtCisKK0Jhc2ljYWxseSB0aGlzIHRha2VzIGEgc25hcHNob3Qgb2YgYSBkaXJlY3RvcnksIHRoZW4gc2VlcyB3aGF0IGNoYW5nZXMKK3dlcmUgbWFkZS4gIFRoZSBjb250ZW50cyBvZiB0aGUgZmlsZXMgYXJlIG5vdCBjaGVja2VkLCBzbyB5b3UgY2FuCitkZXRlY3QgdGhhdCB0aGUgY29udGVudCB3YXMgY2hhbmdlZCwgYnV0IG5vdCB3aGF0IHRoZSBvbGQgdmVyc2lvbiBvZgordGhlIGZpbGUgd2FzLgorIiIiCisKK2ltcG9ydCBvcworZnJvbSBmbm1hdGNoIGltcG9ydCBmbm1hdGNoCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQorCit0cnk6CisgICAgIyBQeXRob24gMworICAgIGltcG9ydCBjb2xsZWN0aW9ucy5Vc2VyRGljdCBhcyBJdGVyYWJsZVVzZXJEaWN0CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgIyBQeXRob24gMi41LTIuNworICAgIGZyb20gVXNlckRpY3QgaW1wb3J0IEl0ZXJhYmxlVXNlckRpY3QKK2ltcG9ydCBvcGVyYXRvcgoraW1wb3J0IHJlCisKK19fYWxsX18gPSBbJ0RpZmYnLCAnU25hcHNob3QnLCAnRmlsZScsICdEaXInLCAncmVwb3J0X2V4cGVjdGVkX2RpZmZzJywKKyAgICAgICAgICAgJ3Nob3dfZGlmZiddCisKK2NsYXNzIERpZmYob2JqZWN0KToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gc25hcHNob3RzCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYmVmb3JlLCBhZnRlcik6CisgICAgICAgIHNlbGYuYmVmb3JlID0gYmVmb3JlCisgICAgICAgIHNlbGYuYWZ0ZXIgPSBhZnRlcgorICAgICAgICBzZWxmLl9jYWxjdWxhdGUoKQorCisgICAgZGVmIF9jYWxjdWxhdGUoc2VsZik6CisgICAgICAgIGJlZm9yZSA9IHNlbGYuYmVmb3JlLmRhdGEKKyAgICAgICAgYWZ0ZXIgPSBzZWxmLmFmdGVyLmRhdGEKKyAgICAgICAgc2VsZi5kZWxldGVkID0ge30KKyAgICAgICAgc2VsZi51cGRhdGVkID0ge30KKyAgICAgICAgc2VsZi5jcmVhdGVkID0gYWZ0ZXIuY29weSgpCisgICAgICAgIGZvciBwYXRoLCBmIGluIGJlZm9yZS5pdGVtcygpOgorICAgICAgICAgICAgaWYgcGF0aCBub3QgaW4gYWZ0ZXI6CisgICAgICAgICAgICAgICAgc2VsZi5kZWxldGVkW3BhdGhdID0gZgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBkZWwgc2VsZi5jcmVhdGVkW3BhdGhdCisgICAgICAgICAgICBpZiBmLm10aW1lIDwgYWZ0ZXJbcGF0aF0ubXRpbWU6CisgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVkW3BhdGhdID0gYWZ0ZXJbcGF0aF0KKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnQoKQorCisgICAgZGVmIHJlcG9ydChzZWxmLCBoZWFkZXI9VHJ1ZSwgZGF0ZXM9RmFsc2UpOgorICAgICAgICBzID0gW10KKyAgICAgICAgaWYgaGVhZGVyOgorICAgICAgICAgICAgcy5hcHBlbmQoJ0RpZmZlcmVuY2UgaW4gJXMgZnJvbSAlcyB0byAlczonICUKKyAgICAgICAgICAgICAgICAgICAgIChzZWxmLmJlZm9yZS5iYXNlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgc2VsZi5iZWZvcmUuY2FsY3VsYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFmdGVyLmNhbGN1bGF0ZWQpKQorICAgICAgICBmb3IgbmFtZSwgZmlsZXMsIHNob3dfc2l6ZSBpbiBbCisgICAgICAgICAgICAoJ2NyZWF0ZWQnLCBzZWxmLmNyZWF0ZWQsIFRydWUpLAorICAgICAgICAgICAgKCdkZWxldGVkJywgc2VsZi5kZWxldGVkLCBUcnVlKSwKKyAgICAgICAgICAgICgndXBkYXRlZCcsIHNlbGYudXBkYXRlZCwgVHJ1ZSldOgorICAgICAgICAgICAgaWYgZmlsZXM6CisgICAgICAgICAgICAgICAgcy5hcHBlbmQoJy0tICVzOiAtLS0tLS0tLS0tLS0tLS0tLS0tJyAlIG5hbWUpCisgICAgICAgICAgICAgICAgZmlsZXMgPSBmaWxlcy5pdGVtcygpCisgICAgICAgICAgICAgICAgZmlsZXMuc29ydCgpCisgICAgICAgICAgICAgICAgbGFzdCA9ICcnCisgICAgICAgICAgICAgICAgZm9yIHBhdGgsIGYgaW4gZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIHQgPSAnICAlcycgJSBfc3BhY2VfcHJlZml4KGxhc3QsIHBhdGgsIGluZGVudD00LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX3NlcD1GYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgbGFzdCA9IHBhdGgKKyAgICAgICAgICAgICAgICAgICAgaWYgc2hvd19zaXplIGFuZCBmLnNpemUgIT0gJ04vQSc6CisgICAgICAgICAgICAgICAgICAgICAgICB0ICs9ICcgICglcyBieXRlcyknICUgZi5zaXplCisgICAgICAgICAgICAgICAgICAgIGlmIGRhdGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMgPSBbXQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5iZWZvcmUuZ2V0KHBhdGgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChzZWxmLmJlZm9yZVtwYXRoXS5tdGltZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuYWZ0ZXIuZ2V0KHBhdGgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChzZWxmLmFmdGVyW3BhdGhdLm10aW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgdCArPSAnIChtdGltZTogJXMpJyAlICgnLT4nLmpvaW4obWFwKHJlcHIsIHBhcnRzKSkpCisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKHQpCisgICAgICAgIGlmIGxlbihzKSA9PSAxOgorICAgICAgICAgICAgcy5hcHBlbmQoJyAgKG5vIGNoYW5nZXMpJykKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihzKQorCitjbGFzcyBTbmFwc2hvdChJdGVyYWJsZVVzZXJEaWN0KToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgYSBzbmFwc2hvdCBvZiBhIHNldCBvZiBmaWxlcy4gIEhhcyBhIGRpY3Rpb25hcnktbGlrZQorICAgIGludGVyZmFjZSwga2V5ZWQgcmVsYXRpdmUgdG8gYGBiYXNlX3BhdGhgYAorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJhc2VfcGF0aCwgZmlsZXM9Tm9uZSwgaWdub3JlX3dpbGRjYXJkcz0oKSwKKyAgICAgICAgICAgICAgICAgaWdub3JlX3BhdGhzPSgpLCBpZ25vcmVfaGlkZGVuPVRydWUpOgorICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLmlnbm9yZV93aWxkY2FyZHMgPSBpZ25vcmVfd2lsZGNhcmRzCisgICAgICAgIHNlbGYuaWdub3JlX2hpZGRlbiA9IGlnbm9yZV9oaWRkZW4KKyAgICAgICAgc2VsZi5pZ25vcmVfcGF0aHMgPSBpZ25vcmVfcGF0aHMKKyAgICAgICAgc2VsZi5jYWxjdWxhdGVkID0gTm9uZQorICAgICAgICBzZWxmLmRhdGEgPSBmaWxlcyBvciB7fQorICAgICAgICBpZiBmaWxlcyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5maW5kX2ZpbGVzKCkKKworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICMjIEZpbGUgZmluZGluZworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisgICAgZGVmIGZpbmRfZmlsZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBGaW5kIGFsbCB0aGUgZmlsZXMgdW5kZXIgdGhlIGJhc2UgcGF0aCwgYW5kIHB1dCB0aGVtIGluCisgICAgICAgIGBgc2VsZi5kYXRhYGAKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2ZpbmRfdHJhdmVyc2UoJycsIHNlbGYuZGF0YSkKKyAgICAgICAgc2VsZi5jYWxjdWxhdGVkID0gZGF0ZXRpbWUubm93KCkKKworICAgIGRlZiBfaWdub3JlX2ZpbGUoc2VsZiwgZm4pOgorICAgICAgICBpZiBmbiBpbiBzZWxmLmlnbm9yZV9wYXRoczoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIHNlbGYuaWdub3JlX2hpZGRlbiBhbmQgb3MucGF0aC5iYXNlbmFtZShmbikuc3RhcnRzd2l0aCgnLicpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZm9yIHBhdCBpbiBzZWxmLmlnbm9yZV93aWxkY2FyZHM6CisgICAgICAgICAgICBpZiBmbm1hdGNoKGZuLCBwYXQpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9maW5kX3RyYXZlcnNlKHNlbGYsIHBhdGgsIHJlc3VsdCk6CisgICAgICAgIGZ1bGwgPSBvcy5wYXRoLmpvaW4oc2VsZi5iYXNlX3BhdGgsIHBhdGgpCisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZnVsbCk6CisgICAgICAgICAgICBpZiBwYXRoOgorICAgICAgICAgICAgICAgICMgRG9uJ3QgYWN0dWFsbHkgaW5jbHVkZSB0aGUgYmFzZSBwYXRoCisgICAgICAgICAgICAgICAgcmVzdWx0W3BhdGhdID0gRGlyKHNlbGYuYmFzZV9wYXRoLCBwYXRoKQorICAgICAgICAgICAgZm9yIGZuIGluIG9zLmxpc3RkaXIoZnVsbCk6CisgICAgICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4ocGF0aCwgZm4pCisgICAgICAgICAgICAgICAgaWYgc2VsZi5faWdub3JlX2ZpbGUoZm4pOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHNlbGYuX2ZpbmRfdHJhdmVyc2UoZm4sIHJlc3VsdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdFtwYXRoXSA9IEZpbGUoc2VsZi5iYXNlX3BhdGgsIHBhdGgpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzIGluICVyIGZyb20gJXI+JyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmJhc2VfcGF0aCwKKyAgICAgICAgICAgIHNlbGYuY2FsY3VsYXRlZCBvciAnKG5vIGNhbGN1bGF0aW9uIGRvbmUpJykKKworICAgIGRlZiBjb21wYXJlX2V4cGVjdGVkKHNlbGYsIGV4cGVjdGVkLCBjb21wYXJpc29uPW9wZXJhdG9yLmVxLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZlcj1Ob25lLCBub3RfZm91bmQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX3N1Y2Nlc3M9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgQ29tcGFyZXMgYSBkaWN0aW9uYXJ5IG9mIGBgcGF0aDogY29udGVudGBgIHRvIHRoZQorICAgICAgICBmb3VuZCBmaWxlcy4gIENvbXBhcmlzb24gaXMgZG9uZSBieSBlcXVhbGl0eSwgb3IgdGhlCisgICAgICAgIGBgY29tcGFyaXNvbihhY3R1YWxfY29udGVudCwgZXhwZWN0ZWRfY29udGVudClgYCBmdW5jdGlvbiBnaXZlbi4KKworICAgICAgICBSZXR1cm5zIGRpY3Rpb25hcnkgb2YgZGlmZmVyZW5jZXMsIGtleWVkIGJ5IHBhdGguICBFYWNoCisgICAgICAgIGRpZmZlcmVuY2UgaXMgZWl0aGVyIG5vdGVkLCBvciB0aGUgb3V0cHV0IG9mCisgICAgICAgIGBgZGlmZmVyKGFjdHVhbF9jb250ZW50LCBleHBlY3RlZF9jb250ZW50KWBgIGlzIGdpdmVuLgorCisgICAgICAgIElmIGEgZmlsZSBkb2VzIG5vdCBleGlzdCBhbmQgYGBub3RfZm91bmRgYCBpcyBnaXZlbiwgdGhlbgorICAgICAgICBgYG5vdF9mb3VuZChwYXRoKWBgIGlzIHB1dCBpbi4KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IHt9CisgICAgICAgIGZvciBwYXRoIGluIGV4cGVjdGVkOgorICAgICAgICAgICAgb3JpZ19wYXRoID0gcGF0aAorICAgICAgICAgICAgcGF0aCA9IHBhdGguc3RyaXAoJy8nKQorICAgICAgICAgICAgaWYgcGF0aCBub3QgaW4gc2VsZi5kYXRhOgorICAgICAgICAgICAgICAgIGlmIG5vdF9mb3VuZDoKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gbm90X2ZvdW5kKHBhdGgpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gJ25vdCBmb3VuZCcKKyAgICAgICAgICAgICAgICByZXN1bHRbcGF0aF0gPSBtc2cKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXhwZWN0ZWRfY29udGVudCA9IGV4cGVjdGVkW29yaWdfcGF0aF0KKyAgICAgICAgICAgIGZpbGUgPSBzZWxmLmRhdGFbcGF0aF0KKyAgICAgICAgICAgIGFjdHVhbF9jb250ZW50ID0gZmlsZS5ieXRlcworICAgICAgICAgICAgaWYgbm90IGNvbXBhcmlzb24oYWN0dWFsX2NvbnRlbnQsIGV4cGVjdGVkX2NvbnRlbnQpOgorICAgICAgICAgICAgICAgIGlmIGRpZmZlcjoKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gZGlmZmVyKGFjdHVhbF9jb250ZW50LCBleHBlY3RlZF9jb250ZW50KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihhY3R1YWxfY29udGVudCkgPCBsZW4oZXhwZWN0ZWRfY29udGVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSAnZGlmZmVyICglaSBieXRlcyBzbWFsbGVyKScgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGV4cGVjdGVkX2NvbnRlbnQpIC0gbGVuKGFjdHVhbF9jb250ZW50KSkKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBsZW4oYWN0dWFsX2NvbnRlbnQpID4gbGVuKGV4cGVjdGVkX2NvbnRlbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gJ2RpZmZlciAoJWkgYnl0ZXMgbGFyZ2VyKScgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGFjdHVhbF9jb250ZW50KSAtIGxlbihleHBlY3RlZF9jb250ZW50KSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICdkaWZmIChzYW1lIHNpemUpJworICAgICAgICAgICAgICAgIHJlc3VsdFtwYXRoXSA9IG1zZworICAgICAgICAgICAgZWxpZiBpbmNsdWRlX3N1Y2Nlc3M6CisgICAgICAgICAgICAgICAgcmVzdWx0W3BhdGhdID0gJ3NhbWUhJworICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgZGlmZl90b19ub3coc2VsZik6CisgICAgICAgIHJldHVybiBEaWZmKHNlbGYsIHNlbGYuY2xvbmUoKSkKKworICAgIGRlZiBjbG9uZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKGJhc2VfcGF0aD1zZWxmLmJhc2VfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV93aWxkY2FyZHM9c2VsZi5pZ25vcmVfd2lsZGNhcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX3BhdGhzPXNlbGYuaWdub3JlX3BhdGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2hpZGRlbj1zZWxmLmlnbm9yZV9oaWRkZW4pCisKK2NsYXNzIEZpbGUob2JqZWN0KToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgYSBzaW5nbGUgZmlsZSBmb3VuZCBhcyB0aGUgcmVzdWx0IG9mIGEgY29tbWFuZC4KKworICAgIEhhcyBhdHRyaWJ1dGVzOgorCisgICAgYGBwYXRoYGA6CisgICAgICAgIFRoZSBwYXRoIG9mIHRoZSBmaWxlLCByZWxhdGl2ZSB0byB0aGUgYGBiYXNlX3BhdGhgYAorCisgICAgYGBmdWxsYGA6CisgICAgICAgIFRoZSBmdWxsIHBhdGgKKworICAgIGBgc3RhdGBgOgorICAgICAgICBUaGUgcmVzdWx0cyBvZiBgYG9zLnN0YXRgYC4gIEFsc28gYGBtdGltZWBgIGFuZCBgYHNpemVgYAorICAgICAgICBjb250YWluIHRoZSBgYC5zdF9tdGltZWBgIGFuZCBgYHN0X3NpemVgYCBvZiB0aGUgc3RhdC4KKworICAgIGBgYnl0ZXNgYDoKKyAgICAgICAgVGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlLgorCisgICAgWW91IG1heSB1c2UgdGhlIGBgaW5gYCBvcGVyYXRvciB3aXRoIHRoZXNlIG9iamVjdHMgKHRlc3RlZCBhZ2FpbnN0CisgICAgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlKSwgYW5kIHRoZSBgYC5tdXN0Y29udGFpbigpYGAgbWV0aG9kLgorICAgICIiIgorCisgICAgZmlsZSA9IFRydWUKKyAgICBkaXIgPSBGYWxzZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJhc2VfcGF0aCwgcGF0aCk6CisgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9wYXRoCisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi5mdWxsID0gb3MucGF0aC5qb2luKGJhc2VfcGF0aCwgcGF0aCkKKyAgICAgICAgc2VsZi5zdGF0ID0gb3Muc3RhdChzZWxmLmZ1bGwpCisgICAgICAgIHNlbGYubXRpbWUgPSBzZWxmLnN0YXQuc3RfbXRpbWUKKyAgICAgICAgc2VsZi5zaXplID0gc2VsZi5zdGF0LnN0X3NpemUKKyAgICAgICAgc2VsZi5fYnl0ZXMgPSBOb25lCisKKyAgICBkZWYgYnl0ZXNfX2dldChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fYnl0ZXMgaXMgTm9uZToKKyAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYuZnVsbCwgJ3JiJykKKyAgICAgICAgICAgIHNlbGYuX2J5dGVzID0gZi5yZWFkKCkKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICByZXR1cm4gc2VsZi5fYnl0ZXMKKyAgICBieXRlcyA9IHByb3BlcnR5KGJ5dGVzX19nZXQpCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIHMpOgorICAgICAgICByZXR1cm4gcyBpbiBzZWxmLmJ5dGVzCisKKyAgICBkZWYgbXVzdGNvbnRhaW4oc2VsZiwgcyk6CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBieXRlcyA9IHNlbGYuYnl0ZXMKKyAgICAgICAgaWYgcyBub3QgaW4gYnl0ZXM6CisgICAgICAgICAgICBwcmludCgnQ291bGQgbm90IGZpbmQgJXIgaW46JyAlIHMpCisgICAgICAgICAgICBwcmludChieXRlcykKKyAgICAgICAgICAgIGFzc2VydCBzIGluIGJ5dGVzCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzICVzOiVzPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgIHNlbGYuYmFzZV9wYXRoLCBzZWxmLnBhdGgpCisKK2NsYXNzIERpcihGaWxlKToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgYSBkaXJlY3RvcnkgY3JlYXRlZCBieSBhIGNvbW1hbmQuCisgICAgIiIiCisKKyAgICBmaWxlID0gRmFsc2UKKyAgICBkaXIgPSBUcnVlCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYmFzZV9wYXRoLCBwYXRoKToKKyAgICAgICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgKKyAgICAgICAgc2VsZi5wYXRoID0gcGF0aAorICAgICAgICBzZWxmLmZ1bGwgPSBvcy5wYXRoLmpvaW4oYmFzZV9wYXRoLCBwYXRoKQorICAgICAgICBzZWxmLnNpemUgPSAnTi9BJworICAgICAgICBzZWxmLm10aW1lID0gJ04vQScKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXM6JXM+JyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgc2VsZi5iYXNlX3BhdGgsIHNlbGYucGF0aCkKKworICAgIGRlZiBieXRlc19fZ2V0KHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKAorICAgICAgICAgICAgIkRpcmVjdG9yeSAlciBkb2Vzbid0IGhhdmUgY29udGVudCIgJSBzZWxmKQorCisgICAgYnl0ZXMgPSBwcm9wZXJ0eShieXRlc19fZ2V0KQorCisKK2RlZiBfc3BhY2VfcHJlZml4KHByZWYsIGZ1bGwsIHNlcD1Ob25lLCBpbmRlbnQ9Tm9uZSwgaW5jbHVkZV9zZXA9VHJ1ZSk6CisgICAgIiIiCisgICAgQW55dGhpbmcgc2hhcmVkIGJ5IHByZWYgYW5kIGZ1bGwgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHNwYWNlcworICAgIGluIGZ1bGwsIGFuZCBmdWxsIHJldHVybmVkLgorCisgICAgRXhhbXBsZTo6CisKKyAgICAgICAgPj4+IF9zcGFjZV9wcmVmaXgoJy9mb28vYmFyJywgJy9mb28nKQorICAgICAgICAnICAgIC9iYXInCisgICAgIiIiCisgICAgaWYgc2VwIGlzIE5vbmU6CisgICAgICAgIHNlcCA9IG9zLnBhdGguc2VwCisgICAgcHJlZiA9IHByZWYuc3BsaXQoc2VwKQorICAgIGZ1bGwgPSBmdWxsLnNwbGl0KHNlcCkKKyAgICBwYWRkaW5nID0gW10KKyAgICB3aGlsZSBwcmVmIGFuZCBmdWxsIGFuZCBwcmVmWzBdID09IGZ1bGxbMF06CisgICAgICAgIGlmIGluZGVudCBpcyBOb25lOgorICAgICAgICAgICAgcGFkZGluZy5hcHBlbmQoJyAnICogKGxlbihmdWxsWzBdKSArIGxlbihzZXApKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhZGRpbmcuYXBwZW5kKCcgJyAqIGluZGVudCkKKyAgICAgICAgZnVsbC5wb3AoMCkKKyAgICAgICAgcHJlZi5wb3AoMCkKKyAgICBpZiBwYWRkaW5nOgorICAgICAgICBpZiBpbmNsdWRlX3NlcDoKKyAgICAgICAgICAgIHJldHVybiAnJy5qb2luKHBhZGRpbmcpICsgc2VwICsgc2VwLmpvaW4oZnVsbCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAnJy5qb2luKHBhZGRpbmcpICsgc2VwLmpvaW4oZnVsbCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gc2VwLmpvaW4oZnVsbCkKKworZGVmIHJlcG9ydF9leHBlY3RlZF9kaWZmcyhkaWZmcywgY29sb3JpemU9RmFsc2UpOgorICAgICIiIgorICAgIFRha2VzIHRoZSBvdXRwdXQgb2YgY29tcGFyZV9leHBlY3RlZCwgYW5kIHJldHVybnMgYSBzdHJpbmcKKyAgICBkZXNjcmlwdGlvbiBvZiB0aGUgZGlmZmVyZW5jZXMuCisgICAgIiIiCisgICAgaWYgbm90IGRpZmZzOgorICAgICAgICByZXR1cm4gJ05vIGRpZmZlcmVuY2VzJworICAgIGRpZmZzID0gZGlmZnMuaXRlbXMoKQorICAgIGRpZmZzLnNvcnQoKQorICAgIHMgPSBbXQorICAgIGxhc3QgPSAnJworICAgIGZvciBwYXRoLCBkZXNjIGluIGRpZmZzOgorICAgICAgICB0ID0gX3NwYWNlX3ByZWZpeChsYXN0LCBwYXRoLCBpbmRlbnQ9NCwgaW5jbHVkZV9zZXA9RmFsc2UpCisgICAgICAgIGlmIGNvbG9yaXplOgorICAgICAgICAgICAgdCA9IGNvbG9yX2xpbmUodCwgMTEpCisgICAgICAgIGxhc3QgPSBwYXRoCisgICAgICAgIGlmIGxlbihkZXNjLnNwbGl0bGluZXMoKSkgPiAxOgorICAgICAgICAgICAgY3VyX2luZGVudCA9IGxlbihyZS5zZWFyY2gocideWyBdKicsIHQpLmdyb3VwKDApKQorICAgICAgICAgICAgZGVzYyA9IGluZGVudChjdXJfaW5kZW50KzIsIGRlc2MpCisgICAgICAgICAgICBpZiBjb2xvcml6ZToKKyAgICAgICAgICAgICAgICB0ICs9ICdcbicKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBkZXNjLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbGluZS5zdHJpcCgpLnN0YXJ0c3dpdGgoJysnKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBjb2xvcl9saW5lKGxpbmUsIDEwKQorICAgICAgICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RyaXAoKS5zdGFydHN3aXRoKCctJyk6CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gY29sb3JfbGluZShsaW5lLCA5KQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGNvbG9yX2xpbmUobGluZSwgMTQpCisgICAgICAgICAgICAgICAgICAgIHQgKz0gbGluZSsnXG4nCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHQgKz0gJ1xuJyArIGRlc2MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHQgKz0gJyAnK2Rlc2MKKyAgICAgICAgcy5hcHBlbmQodCkKKyAgICBzLmFwcGVuZCgnRmlsZXMgd2l0aCBkaWZmZXJlbmNlczogJXMnICUgbGVuKGRpZmZzKSkKKyAgICByZXR1cm4gJ1xuJy5qb2luKHMpCisKK2RlZiBjb2xvcl9jb2RlKGZvcmVncm91bmQ9Tm9uZSwgYmFja2dyb3VuZD1Ob25lKToKKyAgICAiIiIKKyAgICAwICBibGFjaworICAgIDEgIHJlZAorICAgIDIgIGdyZWVuCisgICAgMyAgeWVsbG93CisgICAgNCAgYmx1ZQorICAgIDUgIG1hZ2VudGEgKHB1cnBsZSkKKyAgICA2ICBjeWFuCisgICAgNyAgd2hpdGUgKGdyYXkpCisKKyAgICBBZGQgOCB0byBnZXQgaGlnaC1pbnRlbnNpdHkKKyAgICAiIiIKKyAgICBpZiBmb3JlZ3JvdW5kIGlzIE5vbmUgYW5kIGJhY2tncm91bmQgaXMgTm9uZToKKyAgICAgICAgIyBSZXNldAorICAgICAgICByZXR1cm4gJ1x4MWJbMG0nCisgICAgY29kZXMgPSBbXQorICAgIGlmIGZvcmVncm91bmQgaXMgTm9uZToKKyAgICAgICAgY29kZXMuYXBwZW5kKCdbMzltJykKKyAgICBlbGlmIGZvcmVncm91bmQgPiA3OgorICAgICAgICBjb2Rlcy5hcHBlbmQoJ1sxbScpCisgICAgICAgIGNvZGVzLmFwcGVuZCgnWyVpbScgJSAoMjIrZm9yZWdyb3VuZCkpCisgICAgZWxzZToKKyAgICAgICAgY29kZXMuYXBwZW5kKCdbJWltJyAlICgzMCtmb3JlZ3JvdW5kKSkKKyAgICBpZiBiYWNrZ3JvdW5kIGlzIE5vbmU6CisgICAgICAgIGNvZGVzLmFwcGVuZCgnWzQ5bScpCisgICAgZWxzZToKKyAgICAgICAgY29kZXMuYXBwZW5kKCdbJWltJyAlICg0MCtiYWNrZ3JvdW5kKSkKKyAgICByZXR1cm4gJ1x4MWInICsgJ1x4MWInLmpvaW4oY29kZXMpCisKK2RlZiBjb2xvcl9saW5lKGxpbmUsIGZvcmVncm91bmQ9Tm9uZSwgYmFja2dyb3VuZD1Ob25lKToKKyAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ14oXHMqKScsIGxpbmUpCisgICAgcmV0dXJuIChtYXRjaC5ncm91cCgxKSArIGNvbG9yX2NvZGUoZm9yZWdyb3VuZCwgYmFja2dyb3VuZCkKKyAgICAgICAgICAgICsgbGluZVttYXRjaC5lbmQoKTpdICsgY29sb3JfY29kZSgpKQorCitkZWYgaW5kZW50KGluZGVudCwgdGV4dCk6CisgICAgcmV0dXJuICdcbicuam9pbigKKyAgICAgICAgWycgJyppbmRlbnQgKyBsIGZvciBsIGluIHRleHQuc3BsaXRsaW5lcygpXSkKKworZGVmIHNob3dfZGlmZihhY3R1YWxfY29udGVudCwgZXhwZWN0ZWRfY29udGVudCk6CisgICAgYWN0dWFsX2xpbmVzID0gW2wuc3RyaXAoKSBmb3IgbCBpbiBhY3R1YWxfY29udGVudC5zcGxpdGxpbmVzKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgbC5zdHJpcCgpXQorICAgIGV4cGVjdGVkX2xpbmVzID0gW2wuc3RyaXAoKSBmb3IgbCBpbiBleHBlY3RlZF9jb250ZW50LnNwbGl0bGluZXMoKQorICAgICAgICAgICAgICAgICAgICAgIGlmIGwuc3RyaXAoKV0KKyAgICBpZiBsZW4oYWN0dWFsX2xpbmVzKSA9PSBsZW4oZXhwZWN0ZWRfbGluZXMpID09IDE6CisgICAgICAgIHJldHVybiAnJXIgbm90ICVyJyAlIChhY3R1YWxfbGluZXNbMF0sIGV4cGVjdGVkX2xpbmVzWzBdKQorICAgIGlmIG5vdCBhY3R1YWxfbGluZXM6CisgICAgICAgIHJldHVybiAnRW1wdHk7IHNob3VsZCBoYXZlOlxuJytleHBlY3RlZF9jb250ZW50CisgICAgaW1wb3J0IGRpZmZsaWIKKyAgICByZXR1cm4gJ1xuJy5qb2luKGRpZmZsaWIubmRpZmYoYWN0dWFsX2xpbmVzLCBleHBlY3RlZF9saW5lcykpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvcHJpbnRzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL3ByaW50cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjYwYmZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL3ByaW50cy5weQpAQCAtMCwwICsxLDE0OSBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitNaWRkbGV3YXJlIHRoYXQgZGlzcGxheXMgZXZlcnl0aGluZyB0aGF0IGlzIHByaW50ZWQgaW5saW5lIGluCithcHBsaWNhdGlvbiBwYWdlcy4KKworQW55dGhpbmcgcHJpbnRlZCBkdXJpbmcgdGhlIHJlcXVlc3Qgd2lsbCBnZXQgY2FwdHVyZWQgYW5kIGluY2x1ZGVkIG9uCit0aGUgcGFnZS4gIEl0IHdpbGwgdXN1YWxseSBiZSBpbmNsdWRlZCBhcyBhIGZsb2F0aW5nIGVsZW1lbnQgaW4gdGhlCit0b3AgcmlnaHQgaGFuZCBjb3JuZXIgb2YgdGhlIHBhZ2UuICBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSB0aGlzCit5b3UgY2FuIGluY2x1ZGUgYSB0YWcgaW4geW91ciB0ZW1wbGF0ZSB3aGVyZSBpdCB3aWxsIGJlIHBsYWNlZDo6CisKKyAgPHByZSBpZD0icGFzdGUtZGVidWctcHJpbnRzIj48L3ByZT4KKworWW91IG1pZ2h0IHdhbnQgdG8gaW5jbHVkZSBgYHN0eWxlPSJ3aGl0ZS1zcGFjZTogbm9ybWFsImBgLCBhcyBhbGwgdGhlCit3aGl0ZXNwYWNlIHdpbGwgYmUgcXVvdGVkLCBhbmQgdGhpcyBhbGxvd3MgdGhlIHRleHQgdG8gd3JhcCBpZgorbmVjZXNzYXJ5LgorCisiIiIKKworZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCitpbXBvcnQgcmUKK2ltcG9ydCBjZ2kKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgdGhyZWFkZWRwcmludAorZnJvbSBwYXN0ZSBpbXBvcnQgd3NnaWxpYgorZnJvbSBwYXN0ZSBpbXBvcnQgcmVzcG9uc2UKK2ltcG9ydCBzaXgKK2ltcG9ydCBzeXMKKworX3RocmVhZGVkcHJpbnRfaW5zdGFsbGVkID0gRmFsc2UKKworX19hbGxfXyA9IFsnUHJpbnREZWJ1Z01pZGRsZXdhcmUnXQorCitjbGFzcyBUZWVGaWxlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZXMpOgorICAgICAgICBzZWxmLmZpbGVzID0gZmlsZXMKKworICAgIGRlZiB3cml0ZShzZWxmLCB2KToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKKyAgICAgICAgICAgICMgV1NHSSBpcyBwaWNreSBpbiB0aGlzIGNhc2UKKyAgICAgICAgICAgIHYgPSBzdHIodikKKyAgICAgICAgZm9yIGZpbGUgaW4gc2VsZi5maWxlczoKKyAgICAgICAgICAgIGZpbGUud3JpdGUodikKKworY2xhc3MgUHJpbnREZWJ1Z01pZGRsZXdhcmUob2JqZWN0KToKKworICAgICIiIgorICAgIFRoaXMgbWlkZGxld2FyZSBjYXB0dXJlcyBhbGwgdGhlIHByaW50ZWQgc3RhdGVtZW50cywgYW5kIGlubGluZXMKKyAgICB0aGVtIGluIEhUTUwgcGFnZXMsIHNvIHRoYXQgeW91IGNhbiBzZWUgYWxsIHRoZSAoZGVidWctaW50ZW5kZWQpCisgICAgcHJpbnQgc3RhdGVtZW50cyBpbiB0aGUgcGFnZSBpdHNlbGYuCisKKyAgICBUaGVyZSBhcmUgdHdvIGtleXMgYWRkZWQgdG8gdGhlIGVudmlyb25tZW50IHRvIGNvbnRyb2wgdGhpczoKKyAgICBgYGVudmlyb25bJ3Bhc3RlLnByaW50ZGVidWdfbGlzdGVuZXJzJ11gYCBpcyBhIGxpc3Qgb2YgZnVuY3Rpb25zCisgICAgdGhhdCB3aWxsIGJlIGNhbGxlZCBldmVyeXRpbWUgc29tZXRoaW5nIGlzIHByaW50ZWQuCisKKyAgICBgYGVudmlyb25bJ3Bhc3RlLnJlbW92ZV9wcmludGRlYnVnJ11gYCBpcyBhIGZ1bmN0aW9uIHRoYXQsIGlmCisgICAgY2FsbGVkLCB3aWxsIGRpc2FibGUgcHJpbnRpbmcgb2Ygb3V0cHV0IGZvciB0aGF0IHJlcXVlc3QuCisKKyAgICBJZiB5b3UgaGF2ZSBgYHJlcGxhY2Vfc3Rkb3V0PVRydWVgYCB0aGVuIHN0ZG91dCBpcyByZXBsYWNlZCwgbm90CisgICAgY2FwdHVyZWQuCisgICAgIiIiCisKKyAgICBsb2dfdGVtcGxhdGUgPSAoCisgICAgICAgICc8cHJlIHN0eWxlPSJ3aWR0aDogNDAlJTsgYm9yZGVyOiAycHggc29saWQgIzAwMDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgJworICAgICAgICAnYmFja2dyb3VuZC1jb2xvcjogI2ZmZDsgY29sb3I6ICMwMDA7IGZsb2F0OiByaWdodDsiPicKKyAgICAgICAgJzxiIHN0eWxlPSJib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMCI+TG9nIG1lc3NhZ2VzPC9iPjxicj4nCisgICAgICAgICclczwvcHJlPicpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwLCBnbG9iYWxfY29uZj1Ob25lLCBmb3JjZV9jb250ZW50X3R5cGU9RmFsc2UsCisgICAgICAgICAgICAgICAgIHByaW50X3dzZ2lfZXJyb3JzPVRydWUsIHJlcGxhY2Vfc3Rkb3V0PUZhbHNlKToKKyAgICAgICAgIyBAQDogZ2xvYmFsX2NvbmYgc2hvdWxkIGJlIGhhbmRsZWQgc2VwYXJhdGVseSBhbmQgb25seSBmb3IKKyAgICAgICAgIyB0aGUgZW50cnkgcG9pbnQKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5mb3JjZV9jb250ZW50X3R5cGUgPSBmb3JjZV9jb250ZW50X3R5cGUKKyAgICAgICAgaWYgaXNpbnN0YW5jZShwcmludF93c2dpX2Vycm9ycywgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgICAgICBmcm9tIHBhc3RlLmRlcGxveS5jb252ZXJ0ZXJzIGltcG9ydCBhc2Jvb2wKKyAgICAgICAgICAgIHByaW50X3dzZ2lfZXJyb3JzID0gYXNib29sKHByaW50X3dzZ2lfZXJyb3JzKQorICAgICAgICBzZWxmLnByaW50X3dzZ2lfZXJyb3JzID0gcHJpbnRfd3NnaV9lcnJvcnMKKyAgICAgICAgc2VsZi5yZXBsYWNlX3N0ZG91dCA9IHJlcGxhY2Vfc3Rkb3V0CisgICAgICAgIHNlbGYuX3RocmVhZGVkX3ByaW50X3N0ZG91dCA9IE5vbmUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGdsb2JhbCBfdGhyZWFkZWRwcmludF9pbnN0YWxsZWQKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ3Bhc3RlLnRlc3RpbmcnKToKKyAgICAgICAgICAgICMgSW4gYSB0ZXN0aW5nIGVudmlyb25tZW50IHRoaXMgaW50ZXJjZXB0aW9uIGlzbid0CisgICAgICAgICAgICAjIHVzZWZ1bDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgKG5vdCBfdGhyZWFkZWRwcmludF9pbnN0YWxsZWQKKyAgICAgICAgICAgIG9yIHNlbGYuX3RocmVhZGVkX3ByaW50X3N0ZG91dCBpcyBub3Qgc3lzLnN0ZG91dCk6CisgICAgICAgICAgICAjIEBAOiBOb3Qgc3RyaWN0bHkgdGhyZWFkc2FmZQorICAgICAgICAgICAgX3RocmVhZGVkcHJpbnRfaW5zdGFsbGVkID0gVHJ1ZQorICAgICAgICAgICAgdGhyZWFkZWRwcmludC5pbnN0YWxsKGxlYXZlX3N0ZG91dD1ub3Qgc2VsZi5yZXBsYWNlX3N0ZG91dCkKKyAgICAgICAgICAgIHNlbGYuX3RocmVhZGVkX3ByaW50X3N0ZG91dCA9IHN5cy5zdGRvdXQKKyAgICAgICAgcmVtb3ZlZCA9IFtdCisgICAgICAgIGRlZiByZW1vdmVfcHJpbnRkZWJ1ZygpOgorICAgICAgICAgICAgcmVtb3ZlZC5hcHBlbmQoTm9uZSkKKyAgICAgICAgZW52aXJvblsncGFzdGUucmVtb3ZlX3ByaW50ZGVidWcnXSA9IHJlbW92ZV9wcmludGRlYnVnCisgICAgICAgIGxvZ2dlZCA9IFN0cmluZ0lPKCkKKyAgICAgICAgbGlzdGVuZXJzID0gW2xvZ2dlZF0KKyAgICAgICAgZW52aXJvblsncGFzdGUucHJpbnRkZWJ1Z19saXN0ZW5lcnMnXSA9IGxpc3RlbmVycworICAgICAgICBpZiBzZWxmLnByaW50X3dzZ2lfZXJyb3JzOgorICAgICAgICAgICAgbGlzdGVuZXJzLmFwcGVuZChlbnZpcm9uWyd3c2dpLmVycm9ycyddKQorICAgICAgICByZXBsYWNlbWVudF9zdGRvdXQgPSBUZWVGaWxlKGxpc3RlbmVycykKKyAgICAgICAgdGhyZWFkZWRwcmludC5yZWdpc3RlcihyZXBsYWNlbWVudF9zdGRvdXQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0YXR1cywgaGVhZGVycywgYm9keSA9IHdzZ2lsaWIuaW50ZXJjZXB0X291dHB1dCgKKyAgICAgICAgICAgICAgICBlbnZpcm9uLCBzZWxmLmFwcCkKKyAgICAgICAgICAgIGlmIHN0YXR1cyBpcyBOb25lOgorICAgICAgICAgICAgICAgICMgU29tZSBlcnJvciBvY2N1cnJlZAorICAgICAgICAgICAgICAgIHN0YXR1cyA9ICc1MDAgU2VydmVyIEVycm9yJworICAgICAgICAgICAgICAgIGhlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldCisgICAgICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzKQorICAgICAgICAgICAgICAgIGlmIG5vdCBib2R5OgorICAgICAgICAgICAgICAgICAgICBib2R5ID0gJ0FuIGVycm9yIG9jY3VycmVkJworICAgICAgICAgICAgY29udGVudF90eXBlID0gcmVzcG9uc2UuaGVhZGVyX3ZhbHVlKGhlYWRlcnMsICdjb250ZW50LXR5cGUnKQorICAgICAgICAgICAgaWYgKHJlbW92ZWQgb3IKKyAgICAgICAgICAgICAgICAobm90IHNlbGYuZm9yY2VfY29udGVudF90eXBlIGFuZAorICAgICAgICAgICAgICAgICAobm90IGNvbnRlbnRfdHlwZQorICAgICAgICAgICAgICAgICAgb3Igbm90IGNvbnRlbnRfdHlwZS5zdGFydHN3aXRoKCd0ZXh0L2h0bWwnKSkpKToKKyAgICAgICAgICAgICAgICBpZiByZXBsYWNlbWVudF9zdGRvdXQgPT0gbG9nZ2VkOgorICAgICAgICAgICAgICAgICAgICAjIFRoZW4gdGhlIHByaW50cyB3aWxsIGJlIGxvc3QsIHVubGVzcy4uLgorICAgICAgICAgICAgICAgICAgICBlbnZpcm9uWyd3c2dpLmVycm9ycyddLndyaXRlKGxvZ2dlZC5nZXR2YWx1ZSgpKQorICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycykKKyAgICAgICAgICAgICAgICByZXR1cm4gW2JvZHldCisgICAgICAgICAgICByZXNwb25zZS5yZW1vdmVfaGVhZGVyKGhlYWRlcnMsICdjb250ZW50LWxlbmd0aCcpCisgICAgICAgICAgICBib2R5ID0gc2VsZi5hZGRfbG9nKGJvZHksIGxvZ2dlZC5nZXR2YWx1ZSgpKQorICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzKQorICAgICAgICAgICAgcmV0dXJuIFtib2R5XQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdGhyZWFkZWRwcmludC5kZXJlZ2lzdGVyKCkKKworICAgIF9ib2R5X3JlID0gcmUuY29tcGlsZShyJzxib2R5W14+XSo+JywgcmUuSSkKKyAgICBfZXhwbGljaXRfcmUgPSByZS5jb21waWxlKHInPHByZVxzKltePl0qaWQ9InBhc3RlLWRlYnVnLXByaW50cyIuKj8+JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlLkkrcmUuUykKKworICAgIGRlZiBhZGRfbG9nKHNlbGYsIGh0bWwsIGxvZyk6CisgICAgICAgIGlmIG5vdCBsb2c6CisgICAgICAgICAgICByZXR1cm4gaHRtbAorICAgICAgICB0ZXh0ID0gY2dpLmVzY2FwZShsb2cpCisgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoJ1xuJywgJzxicj4nKQorICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCcgICcsICcmbmJzcDsgJykKKyAgICAgICAgbWF0Y2ggPSBzZWxmLl9leHBsaWNpdF9yZS5zZWFyY2goaHRtbCkKKyAgICAgICAgaWYgbm90IG1hdGNoOgorICAgICAgICAgICAgdGV4dCA9IHNlbGYubG9nX3RlbXBsYXRlICUgdGV4dAorICAgICAgICAgICAgbWF0Y2ggPSBzZWxmLl9ib2R5X3JlLnNlYXJjaChodG1sKQorICAgICAgICBpZiBub3QgbWF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdGV4dCArIGh0bWwKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBodG1sWzptYXRjaC5lbmQoKV0gKyB0ZXh0ICsgaHRtbFttYXRjaC5lbmQoKTpdCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvcHJvZmlsZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9kZWJ1Zy9wcm9maWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3MGE1NGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvcHJvZmlsZS5weQpAQCAtMCwwICsxLDIyOCBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitNaWRkbGV3YXJlIHRoYXQgcHJvZmlsZXMgdGhlIHJlcXVlc3QgYW5kIGRpc3BsYXlzIHByb2ZpbGluZworaW5mb3JtYXRpb24gYXQgdGhlIGJvdHRvbSBvZiBlYWNoIHBhZ2UuCisiIiIKKworCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBob3RzaG90CitpbXBvcnQgaG90c2hvdC5zdGF0cworaW1wb3J0IHRocmVhZGluZworaW1wb3J0IGNnaQoraW1wb3J0IHNpeAoraW1wb3J0IHRpbWUKK2Zyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworZnJvbSBwYXN0ZSBpbXBvcnQgcmVzcG9uc2UKKworX19hbGxfXyA9IFsnUHJvZmlsZU1pZGRsZXdhcmUnLCAncHJvZmlsZV9kZWNvcmF0b3InXQorCitjbGFzcyBQcm9maWxlTWlkZGxld2FyZShvYmplY3QpOgorCisgICAgIiIiCisgICAgTWlkZGxld2FyZSB0aGF0IHByb2ZpbGVzIGFsbCByZXF1ZXN0cy4KKworICAgIEFsbCBIVE1MIHBhZ2VzIHdpbGwgaGF2ZSBwcm9maWxpbmcgaW5mb3JtYXRpb24gYXBwZW5kZWQgdG8gdGhlbS4KKyAgICBUaGUgZGF0YSBpcyBpc29sYXRlZCB0byB0aGF0IHNpbmdsZSByZXF1ZXN0LCBhbmQgZG9lcyBub3QgaW5jbHVkZQorICAgIGRhdGEgZnJvbSBwcmV2aW91cyByZXF1ZXN0cy4KKworICAgIFRoaXMgdXNlcyB0aGUgYGBob3RzaG90YGAgbW9kdWxlLCB3aGljaCBhZmZlY3RzIHBlcmZvcm1hbmNlIG9mIHRoZQorICAgIGFwcGxpY2F0aW9uLiAgSXQgYWxzbyBydW5zIGluIGEgc2luZ2xlLXRocmVhZGVkIG1vZGUsIHNvIGl0IGlzCisgICAgb25seSB1c2FibGUgaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLgorICAgICIiIgorCisgICAgc3R5bGUgPSAoJ2NsZWFyOiBib3RoOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY5OyBjb2xvcjogIzAwMDsgJworICAgICAgICAgICAgICdib3JkZXI6IDJweCBzb2xpZCAjMDAwOyBwYWRkaW5nOiA1cHg7JykKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHAsIGdsb2JhbF9jb25mPU5vbmUsCisgICAgICAgICAgICAgICAgIGxvZ19maWxlbmFtZT0ncHJvZmlsZS5sb2cudG1wJywKKyAgICAgICAgICAgICAgICAgbGltaXQ9NDApOgorICAgICAgICBzZWxmLmFwcCA9IGFwcAorICAgICAgICBzZWxmLmxvY2sgPSB0aHJlYWRpbmcuTG9jaygpCisgICAgICAgIHNlbGYubG9nX2ZpbGVuYW1lID0gbG9nX2ZpbGVuYW1lCisgICAgICAgIHNlbGYubGltaXQgPSBsaW1pdAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgY2F0Y2hfcmVzcG9uc2UgPSBbXQorICAgICAgICBib2R5ID0gW10KKyAgICAgICAgZGVmIHJlcGxhY2Vfc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgIGNhdGNoX3Jlc3BvbnNlLmV4dGVuZChbc3RhdHVzLCBoZWFkZXJzXSkKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm8pCisgICAgICAgICAgICByZXR1cm4gYm9keS5hcHBlbmQKKyAgICAgICAgZGVmIHJ1bl9hcHAoKToKKyAgICAgICAgICAgIGFwcF9pdGVyID0gc2VsZi5hcHAoZW52aXJvbiwgcmVwbGFjZV9zdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBib2R5LmV4dGVuZChhcHBfaXRlcikKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICAgICAgICAgIGFwcF9pdGVyLmNsb3NlKCkKKyAgICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwcm9mID0gaG90c2hvdC5Qcm9maWxlKHNlbGYubG9nX2ZpbGVuYW1lKQorICAgICAgICAgICAgcHJvZi5hZGRpbmZvKCdVUkwnLCBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHByb2YucnVuY2FsbChydW5fYXBwKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBwcm9mLmNsb3NlKCkKKyAgICAgICAgICAgIGJvZHkgPSAnJy5qb2luKGJvZHkpCisgICAgICAgICAgICBoZWFkZXJzID0gY2F0Y2hfcmVzcG9uc2VbMV0KKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9IHJlc3BvbnNlLmhlYWRlcl92YWx1ZShoZWFkZXJzLCAnY29udGVudC10eXBlJykKKyAgICAgICAgICAgIGlmIGNvbnRlbnRfdHlwZSBpcyBOb25lIG9yIG5vdCBjb250ZW50X3R5cGUuc3RhcnRzd2l0aCgndGV4dC9odG1sJyk6CisgICAgICAgICAgICAgICAgIyBXZSBjYW4ndCBhZGQgaW5mbyB0byBub24tSFRNTCBvdXRwdXQKKyAgICAgICAgICAgICAgICByZXR1cm4gW2JvZHldCisgICAgICAgICAgICBzdGF0cyA9IGhvdHNob3Quc3RhdHMubG9hZChzZWxmLmxvZ19maWxlbmFtZSkKKyAgICAgICAgICAgIHN0YXRzLnN0cmlwX2RpcnMoKQorICAgICAgICAgICAgc3RhdHMuc29ydF9zdGF0cygndGltZScsICdjYWxscycpCisgICAgICAgICAgICBvdXRwdXQgPSBjYXB0dXJlX291dHB1dChzdGF0cy5wcmludF9zdGF0cywgc2VsZi5saW1pdCkKKyAgICAgICAgICAgIG91dHB1dF9jYWxsZXJzID0gY2FwdHVyZV9vdXRwdXQoCisgICAgICAgICAgICAgICAgc3RhdHMucHJpbnRfY2FsbGVycywgc2VsZi5saW1pdCkKKyAgICAgICAgICAgIGJvZHkgKz0gJzxwcmUgc3R5bGU9IiVzIj4lc1xuJXM8L3ByZT4nICUgKAorICAgICAgICAgICAgICAgIHNlbGYuc3R5bGUsIGNnaS5lc2NhcGUob3V0cHV0KSwgY2dpLmVzY2FwZShvdXRwdXRfY2FsbGVycykpCisgICAgICAgICAgICByZXR1cm4gW2JvZHldCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLmxvY2sucmVsZWFzZSgpCisKK2RlZiBjYXB0dXJlX291dHB1dChmdW5jLCAqYXJncywgKiprdyk6CisgICAgIyBOb3QgdGhyZWFkc2FmZSEgKHRoYXQncyBva2F5IHdoZW4gUHJvZmlsZU1pZGRsZXdhcmUgdXNlcyBpdCwKKyAgICAjIHRob3VnaCwgc2luY2UgaXQgc3luY2hyb25pemVzIGl0c2VsZi4pCisgICAgb3V0ID0gU3RyaW5nSU8oKQorICAgIG9sZF9zdGRvdXQgPSBzeXMuc3Rkb3V0CisgICAgc3lzLnN0ZG91dCA9IG91dAorICAgIHRyeToKKyAgICAgICAgZnVuYygqYXJncywgKiprdykKKyAgICBmaW5hbGx5OgorICAgICAgICBzeXMuc3Rkb3V0ID0gb2xkX3N0ZG91dAorICAgIHJldHVybiBvdXQuZ2V0dmFsdWUoKQorCitkZWYgcHJvZmlsZV9kZWNvcmF0b3IoKipvcHRpb25zKToKKworICAgICIiIgorICAgIFByb2ZpbGUgYSBzaW5nbGUgZnVuY3Rpb24gY2FsbC4KKworICAgIFVzZWQgYXJvdW5kIGEgZnVuY3Rpb24sIGxpa2U6OgorCisgICAgICAgIEBwcm9maWxlX2RlY29yYXRvcihvcHRpb25zLi4uKQorICAgICAgICBkZWYgLi4uCisKKyAgICBBbGwgY2FsbHMgdG8gdGhlIGZ1bmN0aW9uIHdpbGwgYmUgcHJvZmlsZWQuICBUaGUgb3B0aW9ucyBhcmUKKyAgICBhbGwga2V5d29yZHMsIGFuZCBhcmU6CisKKyAgICAgICAgbG9nX2ZpbGU6CisgICAgICAgICAgICBUaGUgZmlsZW5hbWUgdG8gbG9nIHRvIChvciBgYCdzdGRvdXQnYGAgb3IgYGAnc3RkZXJyJ2BgKS4KKyAgICAgICAgICAgIERlZmF1bHQ6IHN0ZGVyci4KKyAgICAgICAgZGlzcGxheV9saW1pdDoKKyAgICAgICAgICAgIE9ubHkgc2hvdyB0aGUgdG9wIE4gaXRlbXMsIGRlZmF1bHQ6IDIwLgorICAgICAgICBzb3J0X3N0YXRzOgorICAgICAgICAgICAgQSBsaXN0IG9mIHN0cmluZy1hdHRyaWJ1dGVzIHRvIHNvcnQgb24uICBEZWZhdWx0CisgICAgICAgICAgICBgYCgndGltZScsICdjYWxscycpYGAuCisgICAgICAgIHN0cmlwX2RpcnM6CisgICAgICAgICAgICBTdHJpcCBkaXJlY3Rvcmllcy9tb2R1bGUgbmFtZXMgZnJvbSBmaWxlcz8gIERlZmF1bHQgVHJ1ZS4KKyAgICAgICAgYWRkX2luZm86CisgICAgICAgICAgICBJZiBnaXZlbiwgdGhpcyBpbmZvIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHJlcG9ydCAoZm9yIHlvdXIKKyAgICAgICAgICAgIG93biB0cmFja2luZykuICBEZWZhdWx0OiBub25lLgorICAgICAgICBsb2dfZmlsZW5hbWU6CisgICAgICAgICAgICBUaGUgdGVtcG9yYXJ5IGZpbGVuYW1lIHRvIGxvZyBwcm9maWxpbmcgZGF0YSB0by4gIERlZmF1bHQ7CisgICAgICAgICAgICBgYC4vcHJvZmlsZV9kYXRhLmxvZy50bXBgYAorICAgICAgICBub19wcm9maWxlOgorICAgICAgICAgICAgSWYgdHJ1ZSwgdGhlbiBkb24ndCBhY3R1YWxseSBwcm9maWxlIGFueXRoaW5nLiAgVXNlZnVsIGZvcgorICAgICAgICAgICAgY29uZGl0aW9uYWwgcHJvZmlsaW5nLgorICAgICIiIgorCisgICAgaWYgb3B0aW9ucy5nZXQoJ25vX3Byb2ZpbGUnKToKKyAgICAgICAgZGVmIGRlY29yYXRvcihmdW5jKToKKyAgICAgICAgICAgIHJldHVybiBmdW5jCisgICAgICAgIHJldHVybiBkZWNvcmF0b3IKKyAgICBkZWYgZGVjb3JhdG9yKGZ1bmMpOgorICAgICAgICBkZWYgcmVwbGFjZW1lbnQoKmFyZ3MsICoqa3cpOgorICAgICAgICAgICAgcmV0dXJuIERlY29yYXRlZFByb2ZpbGUoZnVuYywgKipvcHRpb25zKSgqYXJncywgKiprdykKKyAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50CisgICAgcmV0dXJuIGRlY29yYXRvcgorCitjbGFzcyBEZWNvcmF0ZWRQcm9maWxlKG9iamVjdCk6CisKKyAgICBsb2NrID0gdGhyZWFkaW5nLkxvY2soKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmMsICoqb3B0aW9ucyk6CisgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0aW9ucworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wcm9maWxlKHNlbGYuZnVuYywgKmFyZ3MsICoqa3cpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLmxvY2sucmVsZWFzZSgpCisKKyAgICBkZWYgcHJvZmlsZShzZWxmLCBmdW5jLCAqYXJncywgKiprdyk6CisgICAgICAgIG9wcyA9IHNlbGYub3B0aW9ucworICAgICAgICBwcm9mX2ZpbGVuYW1lID0gb3BzLmdldCgnbG9nX2ZpbGVuYW1lJywgJ3Byb2ZpbGVfZGF0YS5sb2cudG1wJykKKyAgICAgICAgcHJvZiA9IGhvdHNob3QuUHJvZmlsZShwcm9mX2ZpbGVuYW1lKQorICAgICAgICBwcm9mLmFkZGluZm8oJ0Z1bmN0aW9uIENhbGwnLAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5mb3JtYXRfZnVuY3Rpb24oZnVuYywgKmFyZ3MsICoqa3cpKQorICAgICAgICBpZiBvcHMuZ2V0KCdhZGRfaW5mbycpOgorICAgICAgICAgICAgcHJvZi5hZGRpbmZvKCdFeHRyYSBpbmZvJywgb3BzWydhZGRfaW5mbyddKQorICAgICAgICBleGNfaW5mbyA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcHJvZi5ydW5jYWxsKGZ1bmMsICphcmdzLCAqKmt3KQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIGV4Y19pbmZvID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHByb2YuY2xvc2UoKQorICAgICAgICBzdGF0cyA9IGhvdHNob3Quc3RhdHMubG9hZChwcm9mX2ZpbGVuYW1lKQorICAgICAgICBvcy51bmxpbmsocHJvZl9maWxlbmFtZSkKKyAgICAgICAgaWYgb3BzLmdldCgnc3RyaXBfZGlycycsIFRydWUpOgorICAgICAgICAgICAgc3RhdHMuc3RyaXBfZGlycygpCisgICAgICAgIHN0YXRzLnNvcnRfc3RhdHMoKm9wcy5nZXQoJ3NvcnRfc3RhdHMnLCAoJ3RpbWUnLCAnY2FsbHMnKSkpCisgICAgICAgIGRpc3BsYXlfbGltaXQgPSBvcHMuZ2V0KCdkaXNwbGF5X2xpbWl0JywgMjApCisgICAgICAgIG91dHB1dCA9IGNhcHR1cmVfb3V0cHV0KHN0YXRzLnByaW50X3N0YXRzLCBkaXNwbGF5X2xpbWl0KQorICAgICAgICBvdXRwdXRfY2FsbGVycyA9IGNhcHR1cmVfb3V0cHV0KAorICAgICAgICAgICAgc3RhdHMucHJpbnRfY2FsbGVycywgZGlzcGxheV9saW1pdCkKKyAgICAgICAgb3V0cHV0X2ZpbGUgPSBvcHMuZ2V0KCdsb2dfZmlsZScpCisgICAgICAgIGlmIG91dHB1dF9maWxlIGluIChOb25lLCAnc3RkZXJyJyk6CisgICAgICAgICAgICBmID0gc3lzLnN0ZGVycgorICAgICAgICBlbGlmIG91dHB1dF9maWxlIGluICgnLScsICdzdGRvdXQnKToKKyAgICAgICAgICAgIGYgPSBzeXMuc3Rkb3V0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmID0gb3BlbihvdXRwdXRfZmlsZSwgJ2EnKQorICAgICAgICAgICAgZi53cml0ZSgnXG4lc1xuJyAlICgnLScqNjApKQorICAgICAgICAgICAgZi53cml0ZSgnRGF0ZTogJXNcbicgJSB0aW1lLnN0cmZ0aW1lKCclYycpKQorICAgICAgICBmLndyaXRlKCdGdW5jdGlvbiBjYWxsOiAlc1xuJworICAgICAgICAgICAgICAgICUgc2VsZi5mb3JtYXRfZnVuY3Rpb24oZnVuYywgKmFyZ3MsICoqa3cpKQorICAgICAgICBmLndyaXRlKCdXYWxsIHRpbWU6ICUwLjJmIHNlY29uZHNcbicKKyAgICAgICAgICAgICAgICAlIChlbmRfdGltZSAtIHN0YXJ0X3RpbWUpKQorICAgICAgICBmLndyaXRlKG91dHB1dCkKKyAgICAgICAgZi53cml0ZShvdXRwdXRfY2FsbGVycykKKyAgICAgICAgaWYgb3V0cHV0X2ZpbGUgbm90IGluIChOb25lLCAnLScsICdzdGRvdXQnLCAnc3RkZXJyJyk6CisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgaWYgZXhjX2luZm86CisgICAgICAgICAgICAjIFdlIGNhcHR1cmVkIGFuIGV4Y2VwdGlvbiBlYXJsaWVyLCBub3cgd2UgcmUtcmFpc2UgaXQKKyAgICAgICAgICAgIHNpeC5yZXJhaXNlKGV4Y19pbmZvWzBdLCBleGNfaW5mb1sxXSwgZXhjX2luZm9bMl0pCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBmb3JtYXRfZnVuY3Rpb24oc2VsZiwgZnVuYywgKmFyZ3MsICoqa3cpOgorICAgICAgICBhcmdzID0gbWFwKHJlcHIsIGFyZ3MpCisgICAgICAgIGFyZ3MuZXh0ZW5kKAorICAgICAgICAgICAgWyclcz0lcicgJSAoaywgdikgZm9yIGssIHYgaW4ga3cuaXRlbXMoKV0pCisgICAgICAgIHJldHVybiAnJXMoJXMpJyAlIChmdW5jLl9fbmFtZV9fLCAnLCAnLmpvaW4oYXJncykpCisKKworZGVmIG1ha2VfcHJvZmlsZV9taWRkbGV3YXJlKAorICAgIGFwcCwgZ2xvYmFsX2NvbmYsCisgICAgbG9nX2ZpbGVuYW1lPSdwcm9maWxlLmxvZy50bXAnLAorICAgIGxpbWl0PTQwKToKKyAgICAiIiIKKyAgICBXcmFwIHRoZSBhcHBsaWNhdGlvbiBpbiBhIGNvbXBvbmVudCB0aGF0IHdpbGwgcHJvZmlsZSBlYWNoCisgICAgcmVxdWVzdC4gIFRoZSBwcm9maWxpbmcgZGF0YSBpcyB0aGVuIGFwcGVuZGVkIHRvIHRoZSBvdXRwdXQKKyAgICBvZiBlYWNoIHBhZ2UuCisKKyAgICBOb3RlIHRoYXQgdGhpcyBzZXJpYWxpemVzIGFsbCByZXF1ZXN0cyAoaS5lLiwgcmVtb3ZpbmcKKyAgICBjb25jdXJyZW5jeSkuICBUaGVyZWZvcmUgbmV2ZXIgdXNlIHRoaXMgaW4gcHJvZHVjdGlvbi4KKyAgICAiIiIKKyAgICBsaW1pdCA9IGludChsaW1pdCkKKyAgICByZXR1cm4gUHJvZmlsZU1pZGRsZXdhcmUoCisgICAgICAgIGFwcCwgbG9nX2ZpbGVuYW1lPWxvZ19maWxlbmFtZSwgbGltaXQ9bGltaXQpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvdGVzdHNlcnZlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9kZWJ1Zy90ZXN0c2VydmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwNDRjN2MKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvdGVzdHNlcnZlci5weQpAQCAtMCwwICsxLDkzIEBACisjIChjKSAyMDA1IENsYXJrIEMuIEV2YW5zCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFRoaXMgY29kZSB3YXMgd3JpdHRlbiB3aXRoIGZ1bmRpbmcgYnkgaHR0cDovL3Byb21ldGhldXNyZXNlYXJjaC5jb20KKyIiIgorV1NHSSBUZXN0IFNlcnZlcgorCitUaGlzIGJ1aWxkcyB1cG9uIHBhc3RlLnV0aWwuYmFzZXNlcnZlciB0byBjdXN0b21pemUgaXQgZm9yIHJlZ3Jlc3Npb25zCit3aGVyZSB1c2luZyByYXdfaW50ZXJhY3RpdmUgd29uJ3QgZG8uCisKKworIiIiCitpbXBvcnQgdGltZQorZnJvbSBwYXN0ZS5odHRwc2VydmVyIGltcG9ydCAqCisKK2NsYXNzIFdTR0lSZWdyZXNzaW9uU2VydmVyKFdTR0lTZXJ2ZXIpOgorICAgICIiIgorICAgIEEgdGhyZWFkZWQgV1NHSVNlcnZlciBmb3IgdXNlIGluIHJlZ3Jlc3Npb24gdGVzdGluZy4gIFRvIHVzZSB0aGlzCisgICAgbW9kdWxlLCBjYWxsIHNlcnZlKGFwcGxpY2F0aW9uLCByZWdyZXNzaW9uPVRydWUpLCBhbmQgdGhlbiBjYWxsCisgICAgc2VydmVyLmFjY2VwdCgpIHRvIGxldCBpdCBoYW5kbGUgb25lIHJlcXVlc3QuICBXaGVuIGZpbmlzaGVkLCB1c2UKKyAgICBzZXJ2ZXIuc3RvcCgpIHRvIHNodXRkb3duIHRoZSBzZXJ2ZXIuIE5vdGUgdGhhdCBhbGwgcGVuZGluZyByZXF1ZXN0cworICAgIGFyZSBwcm9jZXNzZWQgYmVmb3JlIHRoZSBzZXJ2ZXIgc2h1dHMgZG93bi4KKyAgICAiIiIKKyAgICBkZWZhdWx0dGltZW91dCA9IDEwCisgICAgZGVmIF9faW5pdF9fIChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBXU0dJU2VydmVyLl9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5zdG9wcGluZyA9IFtdCisgICAgICAgIHNlbGYucGVuZGluZyA9IFtdCisgICAgICAgIHNlbGYudGltZW91dCA9IHNlbGYuZGVmYXVsdHRpbWVvdXQKKyAgICAgICAgIyB0aGlzIGlzIGEgbG9jYWwgY29ubmVjdGlvbiwgYmUgcXVpY2sKKyAgICAgICAgc2VsZi5zb2NrZXQuc2V0dGltZW91dCgyKQorICAgIGRlZiBzZXJ2ZV9mb3JldmVyKHNlbGYpOgorICAgICAgICBmcm9tIHRocmVhZGluZyBpbXBvcnQgVGhyZWFkCisgICAgICAgIHRocmVhZCA9IFRocmVhZCh0YXJnZXQ9c2VsZi5zZXJ2ZV9wZW5kaW5nKQorICAgICAgICB0aHJlYWQuc3RhcnQoKQorICAgIGRlZiByZXNldF9leHBpcmVzKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnRpbWVvdXQ6CisgICAgICAgICAgICBzZWxmLmV4cGlyZXMgPSB0aW1lLnRpbWUoKSArIHNlbGYudGltZW91dAorICAgIGRlZiBjbG9zZV9yZXF1ZXN0KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIFdTR0lTZXJ2ZXIuY2xvc2VfcmVxdWVzdChzZWxmLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYucGVuZGluZy5wb3AoKQorICAgICAgICBzZWxmLnJlc2V0X2V4cGlyZXMoKQorICAgIGRlZiBzZXJ2ZV9wZW5kaW5nKHNlbGYpOgorICAgICAgICBzZWxmLnJlc2V0X2V4cGlyZXMoKQorICAgICAgICB3aGlsZSBub3Qgc2VsZi5zdG9wcGluZyBvciBzZWxmLnBlbmRpbmc6CisgICAgICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgaWYgbm93ID4gc2VsZi5leHBpcmVzIGFuZCBzZWxmLnRpbWVvdXQ6CisgICAgICAgICAgICAgICAgIyBub3RlIHJlZ3Jlc3Npb24gdGVzdCBkb2Vzbid0IGhhbmRsZSBleGNlcHRpb25zIGluCisgICAgICAgICAgICAgICAgIyB0aHJlYWRzIHZlcnkgd2VsbDsgc28gd2UganVzdCBwcmludCBhbmQgZXhpdAorICAgICAgICAgICAgICAgIHByaW50KCJcbldBUk5JTkc6IFdTR0lSZWdyZXNzaW9uU2VydmVyIHRpbWVvdXQgZXhjZWVkZWRcbiIpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIHNlbGYucGVuZGluZzoKKyAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9yZXF1ZXN0KCkKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoLjEpCisgICAgZGVmIHN0b3Aoc2VsZik6CisgICAgICAgICIiIiBzdG9wIHRoZSBzZXJ2ZXIgKGNhbGxlZCBmcm9tIHRlc3RlcidzIHRocmVhZCkgIiIiCisgICAgICAgIHNlbGYuc3RvcHBpbmcuYXBwZW5kKFRydWUpCisgICAgZGVmIGFjY2VwdChzZWxmLCBjb3VudCA9IDEpOgorICAgICAgICAiIiIgYWNjZXB0IGFub3RoZXIgcmVxdWVzdCAoY2FsbGVkIGZyb20gdGVzdGVyJ3MgdGhyZWFkKSAiIiIKKyAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLnN0b3BwaW5nCisgICAgICAgIFtzZWxmLnBlbmRpbmcuYXBwZW5kKFRydWUpIGZvciB4IGluIHJhbmdlKGNvdW50KV0KKworZGVmIHNlcnZlKGFwcGxpY2F0aW9uLCBob3N0PU5vbmUsIHBvcnQ9Tm9uZSwgaGFuZGxlcj1Ob25lKToKKyAgICBzZXJ2ZXIgPSBXU0dJUmVncmVzc2lvblNlcnZlcihhcHBsaWNhdGlvbiwgaG9zdCwgcG9ydCwgaGFuZGxlcikKKyAgICBwcmludCgic2VydmluZyBvbiAlczolcyIgJSBzZXJ2ZXIuc2VydmVyX2FkZHJlc3MpCisgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQorICAgIHJldHVybiBzZXJ2ZXIKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgorICAgIGZyb20gcGFzdGUud3NnaWxpYiBpbXBvcnQgZHVtcF9lbnZpcm9uCisgICAgc2VydmVyID0gc2VydmUoZHVtcF9lbnZpcm9uKQorICAgIGJhc2V1cmkgPSAoImh0dHA6Ly8lczolcyIgJSBzZXJ2ZXIuc2VydmVyX2FkZHJlc3MpCisKKyAgICBkZWYgZmV0Y2gocGF0aCk6CisgICAgICAgICMgdGVsbCB0aGUgc2VydmVyIHRvIGh1bW9yIGV4YWN0bHkgb25lIG1vcmUgcmVxdWVzdAorICAgICAgICBzZXJ2ZXIuYWNjZXB0KDEpCisgICAgICAgICMgbm90IG5lZWRlZDsgYnV0IHRoaXMgaXMgd2hhdCB5b3UgZG8gaWYgdGhlIHNlcnZlcgorICAgICAgICAjIG1heSBub3QgcmVzcG9uZCBpbiBhIHJlc29uYWJsZSB0aW1lIHBlcmlvZAorICAgICAgICBpbXBvcnQgc29ja2V0CisgICAgICAgIHNvY2tldC5zZXRkZWZhdWx0dGltZW91dCg1KQorICAgICAgICAjIGJ1aWxkIGEgdXJpLCBmZXRjaCBhbmQgcmV0dXJuCisgICAgICAgIHJldHVybiB1cmxvcGVuKGJhc2V1cmkgKyBwYXRoKS5yZWFkKCkKKworICAgIGFzc2VydCAiUEFUSF9JTkZPOiAvZm9vIiBpbiBmZXRjaCgiL2ZvbyIpCisgICAgYXNzZXJ0ICJQQVRIX0lORk86IC93b21ibGUiIGluIGZldGNoKCIvd29tYmxlIikKKworICAgICMgb2ssIGxldCdzIG1ha2Ugb25lIG1vcmUgZmluYWwgcmVxdWVzdC4uLgorICAgIHNlcnZlci5hY2NlcHQoMSkKKyAgICAjIGFuZCB0aGVuIHNjaGVkdWxlIGEgc3RvcCgpCisgICAgc2VydmVyLnN0b3AoKQorICAgICMgYW5kIHRoZW4uLi4gZmV0Y2ggaXQuLi4KKyAgICB1cmxvcGVuKGJhc2V1cmkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvd2F0Y2h0aHJlYWRzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL3dhdGNodGhyZWFkcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDZjY2VhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL3dhdGNodGhyZWFkcy5weQpAQCAtMCwwICsxLDM0NyBAQAorIiIiCitXYXRjaGVzIHRoZSBrZXkgYGBwYXN0ZS5odHRwc2VydmVyLnRocmVhZF9wb29sYGAgdG8gc2VlIGhvdyBtYW55Cit0aHJlYWRzIHRoZXJlIGFyZSBhbmQgcmVwb3J0IG9uIGFueSB3ZWRnZWQgdGhyZWFkcy4KKyIiIgoraW1wb3J0IHN5cworaW1wb3J0IGNnaQoraW1wb3J0IHRpbWUKK2ltcG9ydCB0cmFjZWJhY2sKK2Zyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworZnJvbSB0aHJlYWQgaW1wb3J0IGdldF9pZGVudAorZnJvbSBwYXN0ZSBpbXBvcnQgaHR0cGV4Y2VwdGlvbnMKK2Zyb20gcGFzdGUucmVxdWVzdCBpbXBvcnQgY29uc3RydWN0X3VybCwgcGFyc2VfZm9ybXZhcnMKK2Zyb20gcGFzdGUudXRpbC50ZW1wbGF0ZSBpbXBvcnQgSFRNTFRlbXBsYXRlLCBidW5jaAorCitwYWdlX3RlbXBsYXRlID0gSFRNTFRlbXBsYXRlKCcnJworPGh0bWw+CisgPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICBib2R5IHsKKyAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICB9CisgICB0YWJsZS5lbnZpcm9uIHRyIHRkIHsKKyAgICAgYm9yZGVyLWJvdHRvbTogI2JiYiAxcHggc29saWQ7CisgICB9CisgICB0YWJsZS5lbnZpcm9uIHRyIHRkLmJvdHRvbSB7CisgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CisgICB9CisgICB0YWJsZS50aHJlYWQgeworICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOworICAgICBtYXJnaW4tYm90dG9tOiAxZW07CisgICB9CisgICB0YWJsZS50aHJlYWQgdHIgdGQgeworICAgICBib3JkZXItYm90dG9tOiAjOTk5IDFweCBzb2xpZDsKKyAgICAgcGFkZGluZy1yaWdodDogMWVtOworICAgfQorICAgdGFibGUudGhyZWFkIHRyIHRkLmJvdHRvbSB7CisgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CisgICB9CisgICB0YWJsZS50aHJlYWQgdHIudGhpc190aHJlYWQgdGQgeworICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2OworICAgICBjb2xvcjogI2ZmZjsKKyAgIH0KKyAgIGEuYnV0dG9uIHsKKyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKKyAgICAgYm9yZGVyOiAjYWFhIG91dHNldCAycHg7CisgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICAgbWFyZ2luLXRvcDogMTBweDsKKyAgICAgZm9udC1zaXplOiA4MCU7CisgICAgIGNvbG9yOiAjMDAwOworICAgfQorICAgYS5idXR0b246aG92ZXIgeworICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICAgICBib3JkZXI6ICNiYmIgb3V0c2V0IDJweDsKKyAgIH0KKyAgIGEuYnV0dG9uOmFjdGl2ZSB7CisgICAgIGJvcmRlcjogI2JiYiBpbnNldCAycHg7CisgICB9CisgIDwvc3R5bGU+CisgIDx0aXRsZT57e3RpdGxlfX08L3RpdGxlPgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGgxPnt7dGl0bGV9fTwvaDE+CisgIHt7aWYga2lsbF90aHJlYWRfaWR9fQorICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMDYwOyBjb2xvcjogI2ZmZjsKKyAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwMDsiPgorICBUaHJlYWQge3traWxsX3RocmVhZF9pZH19IGtpbGxlZAorICA8L2Rpdj4KKyAge3tlbmRpZn19CisgIDxkaXY+UG9vbCBzaXplOiB7e253b3JrZXJzfX0KKyAgICAgICB7e2lmIGFjdHVhbF93b3JrZXJzID4gbndvcmtlcnN9fQorICAgICAgICAgKyB7e2FjdHVhbF93b3JrZXJzLW53b3JrZXJzfX0gZXh0cmEKKyAgICAgICB7e2VuZGlmfX0KKyAgICAgICAoe3tud29ya2Vyc191c2VkfX0gdXNlZCBpbmNsdWRpbmcgY3VycmVudCByZXF1ZXN0KTxicj4KKyAgICAgICBpZGxlOiB7e2xlbih0cmFja190aHJlYWRzWyJpZGxlIl0pfX0sCisgICAgICAgYnVzeToge3tsZW4odHJhY2tfdGhyZWFkc1siYnVzeSJdKX19LAorICAgICAgIGh1bmc6IHt7bGVuKHRyYWNrX3RocmVhZHNbImh1bmciXSl9fSwKKyAgICAgICBkeWluZzoge3tsZW4odHJhY2tfdGhyZWFkc1siZHlpbmciXSl9fSwKKyAgICAgICB6b21iaWU6IHt7bGVuKHRyYWNrX3RocmVhZHNbInpvbWJpZSJdKX19PC9kaXY+CisKK3t7Zm9yIHRocmVhZCBpbiB0aHJlYWRzfX0KKworPHRhYmxlIGNsYXNzPSJ0aHJlYWQiPgorIDx0ciB7e2lmIHRocmVhZC50aHJlYWRfaWQgPT0gdGhpc190aHJlYWRfaWR9fWNsYXNzPSJ0aGlzX3RocmVhZCJ7e2VuZGlmfX0+CisgIDx0ZD4KKyAgIDxiPlRocmVhZDwvYj4KKyAgIHt7aWYgdGhyZWFkLnRocmVhZF9pZCA9PSB0aGlzX3RocmVhZF9pZH19CisgICAoPGk+dGhpczwvaT4gcmVxdWVzdCkKKyAgIHt7ZW5kaWZ9fTwvdGQ+CisgIDx0ZD4KKyAgIDxiPnt7dGhyZWFkLnRocmVhZF9pZH19CisgICAge3tpZiBhbGxvd19raWxsfX0KKyAgICA8Zm9ybSBhY3Rpb249Int7c2NyaXB0X25hbWV9fS9raWxsIiBtZXRob2Q9IlBPU1QiCisgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IGlubGluZSI+CisgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0aHJlYWRfaWQiIHZhbHVlPSJ7e3RocmVhZC50aHJlYWRfaWR9fSI+CisgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0ia2lsbCI+CisgICAgPC9mb3JtPgorICAgIHt7ZW5kaWZ9fQorICAgPC9iPgorICA8L3RkPgorIDwvdHI+CisgPHRyPgorICA8dGQ+VGltZSBwcm9jZXNzaW5nIHJlcXVlc3Q8L3RkPgorICA8dGQ+e3t0aHJlYWQudGltZV9odG1sfGh0bWx9fTwvdGQ+CisgPC90cj4KKyA8dHI+CisgIDx0ZD5VUkk8L3RkPgorICA8dGQ+e3tpZiB0aHJlYWQudXJpID09ICd1bmtub3duJ319CisgICAgICB1bmtub3duCisgICAgICB7e2Vsc2V9fTxhIGhyZWY9Int7dGhyZWFkLnVyaX19Ij57e3RocmVhZC51cmlfc2hvcnR9fTwvYT4KKyAgICAgIHt7ZW5kaWZ9fQorICA8L3RkPgorIDx0cj4KKyAgPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJib3R0b20iPgorICAgPGEgaHJlZj0iIyIgY2xhc3M9ImJ1dHRvbiIgc3R5bGU9IndpZHRoOiA5ZW07IGRpc3BsYXk6IGJsb2NrIgorICAgICAgb25jbGljaz0iCisgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbnZpcm9uLXt7dGhyZWFkLnRocmVhZF9pZH19Jyk7CisgICAgICAgIGlmIChlbC5zdHlsZS5kaXNwbGF5KSB7CisgICAgICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICAgICAgICB0aGlzLmlubmVySFRNTCA9IFwnJiM5NjYyOyBIaWRlIGVudmlyb25cJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgICAgICB0aGlzLmlubmVySFRNTCA9IFwnJiM5NjU2OyBTaG93IGVudmlyb25cJzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2UKKyAgICAgICI+JiM5NjU2OyBTaG93IGVudmlyb248L2E+CisKKyAgIDxkaXYgaWQ9ImVudmlyb24te3t0aHJlYWQudGhyZWFkX2lkfX0iIHN0eWxlPSJkaXNwbGF5OiBub25lIj4KKyAgICB7e2lmIHRocmVhZC5lbnZpcm9uOn19CisgICAgPHRhYmxlIGNsYXNzPSJlbnZpcm9uIj4KKyAgICAge3tmb3IgbG9vcCwgaXRlbSBpbiBsb29wZXIoc29ydGVkKHRocmVhZC5lbnZpcm9uLml0ZW1zKCkpKX19CisgICAgIHt7cHk6a2V5LCB2YWx1ZT1pdGVtfX0KKyAgICAgPHRyPgorICAgICAgPHRkIHt7aWYgbG9vcC5sYXN0fX1jbGFzcz0iYm90dG9tInt7ZW5kaWZ9fT57e2tleX19PC90ZD4KKyAgICAgIDx0ZCB7e2lmIGxvb3AubGFzdH19Y2xhc3M9ImJvdHRvbSJ7e2VuZGlmfX0+e3t2YWx1ZX19PC90ZD4KKyAgICAgPC90cj4KKyAgICAge3tlbmRmb3J9fQorICAgIDwvdGFibGU+CisgICAge3tlbHNlfX0KKyAgICBUaHJlYWQgaXMgaW4gcHJvY2VzcyBvZiBzdGFydGluZworICAgIHt7ZW5kaWZ9fQorICAgPC9kaXY+CisKKyAgIHt7aWYgdGhyZWFkLnRyYWNlYmFja319CisgICA8YSBocmVmPSIjIiBjbGFzcz0iYnV0dG9uIiBzdHlsZT0id2lkdGg6IDllbTsgZGlzcGxheTogYmxvY2siCisgICAgICBvbmNsaWNrPSIKKyAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWNlYmFjay17e3RocmVhZC50aHJlYWRfaWR9fScpOworICAgICAgICBpZiAoZWwuc3R5bGUuZGlzcGxheSkgeworICAgICAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICAgICAgdGhpcy5pbm5lckhUTUwgPSBcJyYjOTY2MjsgSGlkZSB0cmFjZWJhY2tcJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgICAgICB0aGlzLmlubmVySFRNTCA9IFwnJiM5NjU2OyBTaG93IHRyYWNlYmFja1wnOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZQorICAgICAgIj4mIzk2NTY7IFNob3cgdHJhY2ViYWNrPC9hPgorCisgICAgPGRpdiBpZD0idHJhY2ViYWNrLXt7dGhyZWFkLnRocmVhZF9pZH19IiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CisgICAgICA8cHJlIGNsYXNzPSJ0cmFjZWJhY2siPnt7dGhyZWFkLnRyYWNlYmFja319PC9wcmU+CisgICAgPC9kaXY+CisgICAge3tlbmRpZn19CisKKyAgPC90ZD4KKyA8L3RyPgorPC90YWJsZT4KKwore3tlbmRmb3J9fQorCisgPC9ib2R5PgorPC9odG1sPgorJycnLCBuYW1lPSd3YXRjaHRocmVhZHMucGFnZV90ZW1wbGF0ZScpCisKK2NsYXNzIFdhdGNoVGhyZWFkcyhvYmplY3QpOgorCisgICAgIiIiCisgICAgQXBwbGljYXRpb24gdGhhdCB3YXRjaGVzIHRoZSB0aHJlYWRzIGluIGBgcGFzdGUuaHR0cHNlcnZlcmBgLAorICAgIHNob3dpbmcgdGhlIGxlbmd0aCBlYWNoIHRocmVhZCBoYXMgYmVlbiB3b3JraW5nIG9uIGEgcmVxdWVzdC4KKworICAgIElmIGFsbG93X2tpbGwgaXMgdHJ1ZSwgdGhlbiB5b3UgY2FuIGtpbGwgZXJyYW50IHRocmVhZHMgdGhyb3VnaAorICAgIHRoaXMgYXBwbGljYXRpb24uCisKKyAgICBUaGlzIGFwcGxpY2F0aW9uIGNhbiBleHBvc2UgcHJpdmF0ZSBpbmZvcm1hdGlvbiAoc3BlY2lmaWNhbGx5IGluCisgICAgdGhlIGVudmlyb25tZW50LCBsaWtlIGNvb2tpZXMpLCBzbyBpdCBzaG91bGQgYmUgcHJvdGVjdGVkLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFsbG93X2tpbGw9RmFsc2UpOgorICAgICAgICBzZWxmLmFsbG93X2tpbGwgPSBhbGxvd19raWxsCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiAncGFzdGUuaHR0cHNlcnZlci50aHJlYWRfcG9vbCcgbm90IGluIGVudmlyb246CisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnNDAzIEZvcmJpZGRlbicsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICAgICAgcmV0dXJuIFsnWW91IG11c3QgdXNlIHRoZSB0aHJlYWRlZCBQYXN0ZSBIVFRQIHNlcnZlciB0byB1c2UgdGhpcyBhcHBsaWNhdGlvbiddCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdQQVRIX0lORk8nKSA9PSAnL2tpbGwnOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYua2lsbChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnNob3coZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgc2hvdyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldKQorICAgICAgICBmb3JtID0gcGFyc2VfZm9ybXZhcnMoZW52aXJvbikKKyAgICAgICAgaWYgZm9ybS5nZXQoJ2tpbGwnKToKKyAgICAgICAgICAgIGtpbGxfdGhyZWFkX2lkID0gZm9ybVsna2lsbCddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBraWxsX3RocmVhZF9pZCA9IE5vbmUKKyAgICAgICAgdGhyZWFkX3Bvb2wgPSBlbnZpcm9uWydwYXN0ZS5odHRwc2VydmVyLnRocmVhZF9wb29sJ10KKyAgICAgICAgbndvcmtlcnMgPSB0aHJlYWRfcG9vbC5ud29ya2VycworICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorCisKKyAgICAgICAgd29ya2VycyA9IHRocmVhZF9wb29sLndvcmtlcl90cmFja2VyLml0ZW1zKCkKKyAgICAgICAgd29ya2Vycy5zb3J0KGtleT1sYW1iZGEgdjogdlsxXVswXSkKKyAgICAgICAgdGhyZWFkcyA9IFtdCisgICAgICAgIGZvciB0aHJlYWRfaWQsICh0aW1lX3N0YXJ0ZWQsIHdvcmtlcl9lbnZpcm9uKSBpbiB3b3JrZXJzOgorICAgICAgICAgICAgdGhyZWFkID0gYnVuY2goKQorICAgICAgICAgICAgdGhyZWFkcy5hcHBlbmQodGhyZWFkKQorICAgICAgICAgICAgaWYgd29ya2VyX2Vudmlyb246CisgICAgICAgICAgICAgICAgdGhyZWFkLnVyaSA9IGNvbnN0cnVjdF91cmwod29ya2VyX2Vudmlyb24pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRocmVhZC51cmkgPSAndW5rbm93bicKKyAgICAgICAgICAgIHRocmVhZC50aHJlYWRfaWQgPSB0aHJlYWRfaWQKKyAgICAgICAgICAgIHRocmVhZC50aW1lX2h0bWwgPSBmb3JtYXRfdGltZShub3ctdGltZV9zdGFydGVkKQorICAgICAgICAgICAgdGhyZWFkLnVyaV9zaG9ydCA9IHNob3J0ZW4odGhyZWFkLnVyaSkKKyAgICAgICAgICAgIHRocmVhZC5lbnZpcm9uID0gd29ya2VyX2Vudmlyb24KKyAgICAgICAgICAgIHRocmVhZC50cmFjZWJhY2sgPSB0cmFjZWJhY2tfdGhyZWFkKHRocmVhZF9pZCkKKworICAgICAgICBwYWdlID0gcGFnZV90ZW1wbGF0ZS5zdWJzdGl0dXRlKAorICAgICAgICAgICAgdGl0bGU9IlRocmVhZCBQb29sIFdvcmtlciBUcmFja2VyIiwKKyAgICAgICAgICAgIG53b3JrZXJzPW53b3JrZXJzLAorICAgICAgICAgICAgYWN0dWFsX3dvcmtlcnM9bGVuKHRocmVhZF9wb29sLndvcmtlcnMpLAorICAgICAgICAgICAgbndvcmtlcnNfdXNlZD1sZW4od29ya2VycyksCisgICAgICAgICAgICBzY3JpcHRfbmFtZT1lbnZpcm9uWydTQ1JJUFRfTkFNRSddLAorICAgICAgICAgICAga2lsbF90aHJlYWRfaWQ9a2lsbF90aHJlYWRfaWQsCisgICAgICAgICAgICBhbGxvd19raWxsPXNlbGYuYWxsb3dfa2lsbCwKKyAgICAgICAgICAgIHRocmVhZHM9dGhyZWFkcywKKyAgICAgICAgICAgIHRoaXNfdGhyZWFkX2lkPWdldF9pZGVudCgpLAorICAgICAgICAgICAgdHJhY2tfdGhyZWFkcz10aHJlYWRfcG9vbC50cmFja190aHJlYWRzKCkpCisKKyAgICAgICAgcmV0dXJuIFtwYWdlXQorCisgICAgZGVmIGtpbGwoc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiBub3Qgc2VsZi5hbGxvd19raWxsOgorICAgICAgICAgICAgZXhjID0gaHR0cGV4Y2VwdGlvbnMuSFRUUEZvcmJpZGRlbigKKyAgICAgICAgICAgICAgICAnS2lsbGluZyB0aHJlYWRzIGhhcyBub3QgYmVlbiBlbmFibGVkLiAgU2hhbWUgb24geW91ICcKKyAgICAgICAgICAgICAgICAnZm9yIHRyeWluZyEnKQorICAgICAgICAgICAgcmV0dXJuIGV4YyhlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgdmFycyA9IHBhcnNlX2Zvcm12YXJzKGVudmlyb24pCisgICAgICAgIHRocmVhZF9pZCA9IGludCh2YXJzWyd0aHJlYWRfaWQnXSkKKyAgICAgICAgdGhyZWFkX3Bvb2wgPSBlbnZpcm9uWydwYXN0ZS5odHRwc2VydmVyLnRocmVhZF9wb29sJ10KKyAgICAgICAgaWYgdGhyZWFkX2lkIG5vdCBpbiB0aHJlYWRfcG9vbC53b3JrZXJfdHJhY2tlcjoKKyAgICAgICAgICAgIGV4YyA9IGh0dHBleGNlcHRpb25zLlByZWNvbmRpdGlvbkZhaWxlZCgKKyAgICAgICAgICAgICAgICAnWW91IHRyaWVkIHRvIGtpbGwgdGhyZWFkICVzLCBidXQgaXQgaXMgbm90IHdvcmtpbmcgb24gJworICAgICAgICAgICAgICAgICdhbnkgcmVxdWVzdHMnICUgdGhyZWFkX2lkKQorICAgICAgICAgICAgcmV0dXJuIGV4YyhlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgdGhyZWFkX3Bvb2wua2lsbF93b3JrZXIodGhyZWFkX2lkKQorICAgICAgICBzY3JpcHRfbmFtZSA9IGVudmlyb25bJ1NDUklQVF9OQU1FJ10gb3IgJy8nCisgICAgICAgIGV4YyA9IGh0dHBleGNlcHRpb25zLkhUVFBGb3VuZCgKKyAgICAgICAgICAgIGhlYWRlcnM9WygnTG9jYXRpb24nLCBzY3JpcHRfbmFtZSsnP2tpbGw9JXMnICUgdGhyZWFkX2lkKV0pCisgICAgICAgIHJldHVybiBleGMoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2RlZiB0cmFjZWJhY2tfdGhyZWFkKHRocmVhZF9pZCk6CisgICAgIiIiCisgICAgUmV0dXJucyBhIHBsYWluLXRleHQgdHJhY2ViYWNrIG9mIHRoZSBnaXZlbiB0aHJlYWQsIG9yIE5vbmUgaWYgaXQKKyAgICBjYW4ndCBnZXQgYSB0cmFjZWJhY2suCisgICAgIiIiCisgICAgaWYgbm90IGhhc2F0dHIoc3lzLCAnX2N1cnJlbnRfZnJhbWVzJyk6CisgICAgICAgICMgT25seSAyLjUgaGFzIHN1cHBvcnQgZm9yIHRoaXMsIHdpdGggdGhpcyBzcGVjaWFsIGZ1bmN0aW9uCisgICAgICAgIHJldHVybiBOb25lCisgICAgZnJhbWVzID0gc3lzLl9jdXJyZW50X2ZyYW1lcygpCisgICAgaWYgbm90IHRocmVhZF9pZCBpbiBmcmFtZXM6CisgICAgICAgIHJldHVybiBOb25lCisgICAgZnJhbWUgPSBmcmFtZXNbdGhyZWFkX2lkXQorICAgIG91dCA9IFN0cmluZ0lPKCkKKyAgICB0cmFjZWJhY2sucHJpbnRfc3RhY2soZnJhbWUsIGZpbGU9b3V0KQorICAgIHJldHVybiBvdXQuZ2V0dmFsdWUoKQorCitoaWRlX2tleXMgPSBbJ3Bhc3RlLmh0dHBzZXJ2ZXIudGhyZWFkX3Bvb2wnXQorCitkZWYgZm9ybWF0X2Vudmlyb24oZW52aXJvbik6CisgICAgaWYgZW52aXJvbiBpcyBOb25lOgorICAgICAgICByZXR1cm4gZW52aXJvbl90ZW1wbGF0ZS5zdWJzdGl0dXRlKAorICAgICAgICAgICAga2V5PSctLS0nLAorICAgICAgICAgICAgdmFsdWU9J05vIGVudmlyb25tZW50IHJlZ2lzdGVyZWQgZm9yIHRoaXMgdGhyZWFkIHlldCcpCisgICAgZW52aXJvbl9yb3dzID0gW10KKyAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzb3J0ZWQoZW52aXJvbi5pdGVtcygpKToKKyAgICAgICAgaWYga2V5IGluIGhpZGVfa2V5czoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIGtleS51cHBlcigpICE9IGtleToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHJlcHIodmFsdWUpCisgICAgICAgICAgICBlbnZpcm9uX3Jvd3MuYXBwZW5kKAorICAgICAgICAgICAgICAgIGVudmlyb25fdGVtcGxhdGUuc3Vic3RpdHV0ZSgKKyAgICAgICAgICAgICAgICBrZXk9Y2dpLmVzY2FwZShzdHIoa2V5KSksCisgICAgICAgICAgICAgICAgdmFsdWU9Y2dpLmVzY2FwZShzdHIodmFsdWUpKSkpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGVudmlyb25fcm93cy5hcHBlbmQoCisgICAgICAgICAgICAgICAgZW52aXJvbl90ZW1wbGF0ZS5zdWJzdGl0dXRlKAorICAgICAgICAgICAgICAgIGtleT1jZ2kuZXNjYXBlKHN0cihrZXkpKSwKKyAgICAgICAgICAgICAgICB2YWx1ZT0nRXJyb3IgaW4gPGNvZGU+cmVwcigpPC9jb2RlPjogJXMnICUgZSkpCisgICAgcmV0dXJuICcnLmpvaW4oZW52aXJvbl9yb3dzKQorCitkZWYgZm9ybWF0X3RpbWUodGltZV9sZW5ndGgpOgorICAgIGlmIHRpbWVfbGVuZ3RoID49IDYwKjYwOgorICAgICAgICAjIE1vcmUgdGhhbiBhbiBob3VyCisgICAgICAgIHRpbWVfc3RyaW5nID0gJyVpOiUwMmk6JTAyaScgJSAoaW50KHRpbWVfbGVuZ3RoLzYwLzYwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQodGltZV9sZW5ndGgvNjApICUgNjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZV9sZW5ndGggJSA2MCkKKyAgICBlbGlmIHRpbWVfbGVuZ3RoID49IDEyMDoKKyAgICAgICAgdGltZV9zdHJpbmcgPSAnJWk6JTAyaScgJSAoaW50KHRpbWVfbGVuZ3RoLzYwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZV9sZW5ndGggJSA2MCkKKyAgICBlbGlmIHRpbWVfbGVuZ3RoID4gNjA6CisgICAgICAgIHRpbWVfc3RyaW5nID0gJyVpIHNlYycgJSB0aW1lX2xlbmd0aAorICAgIGVsaWYgdGltZV9sZW5ndGggPiAxOgorICAgICAgICB0aW1lX3N0cmluZyA9ICclMC4xZiBzZWMnICUgdGltZV9sZW5ndGgKKyAgICBlbHNlOgorICAgICAgICB0aW1lX3N0cmluZyA9ICclMC4yZiBzZWMnICUgdGltZV9sZW5ndGgKKyAgICBpZiB0aW1lX2xlbmd0aCA8IDU6CisgICAgICAgIHJldHVybiB0aW1lX3N0cmluZworICAgIGVsaWYgdGltZV9sZW5ndGggPCAxMjA6CisgICAgICAgIHJldHVybiAnPHNwYW4gc3R5bGU9ImNvbG9yOiAjOTAwIj4lczwvc3Bhbj4nICUgdGltZV9zdHJpbmcKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJzxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjNjAwOyBjb2xvcjogI2ZmZiI+JXM8L3NwYW4+JyAlIHRpbWVfc3RyaW5nCisKK2RlZiBzaG9ydGVuKHMpOgorICAgIGlmIGxlbihzKSA+IDYwOgorICAgICAgICByZXR1cm4gc1s6NDBdKycuLi4nK3NbLTEwOl0KKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gcworCitkZWYgbWFrZV93YXRjaF90aHJlYWRzKGdsb2JhbF9jb25mLCBhbGxvd19raWxsPUZhbHNlKToKKyAgICBmcm9tIHBhc3RlLmRlcGxveS5jb252ZXJ0ZXJzIGltcG9ydCBhc2Jvb2wKKyAgICByZXR1cm4gV2F0Y2hUaHJlYWRzKGFsbG93X2tpbGw9YXNib29sKGFsbG93X2tpbGwpKQorbWFrZV93YXRjaF90aHJlYWRzLl9fZG9jX18gPSBXYXRjaFRocmVhZHMuX19kb2NfXworCitkZWYgbWFrZV9iYWRfYXBwKGdsb2JhbF9jb25mLCBwYXVzZT0wKToKKyAgICBwYXVzZSA9IGludChwYXVzZSkKKyAgICBkZWYgYmFkX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGltcG9ydCB0aHJlYWQKKyAgICAgICAgaWYgcGF1c2U6CisgICAgICAgICAgICB0aW1lLnNsZWVwKHBhdXNlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY291bnQgPSAwCisgICAgICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgICAgIHByaW50KCJJJ20gYWxpdmUgJXMgKCVzKSIgJSAoY291bnQsIHRocmVhZC5nZXRfaWRlbnQoKSkpCisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkKKyAgICAgICAgICAgICAgICBjb3VudCArPSAxCisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICAgICAgcmV0dXJuIFsnT0ssIHBhdXNlZCAlcyBzZWNvbmRzJyAlIHBhdXNlXQorICAgIHJldHVybiBiYWRfYXBwCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZGVidWcvd2RnX3ZhbGlkYXRlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL3dkZ192YWxpZGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjViYWY5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2RlYnVnL3dkZ192YWxpZGF0ZS5weQpAQCAtMCwwICsxLDExOCBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitNaWRkbGV3YXJlIHRoYXQgdGVzdHMgdGhlIHZhbGlkaXR5IG9mIGFsbCBnZW5lcmF0ZWQgSFRNTCB1c2luZyB0aGUKK2BXREcgSFRNTCBWYWxpZGF0b3IgPGh0dHA6Ly93d3cuaHRtbGhlbHAuY29tL3Rvb2xzL3ZhbGlkYXRvci8+YF8KKyIiIgorCitmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBzdWJwcm9jZXNzCitmcm9tIHBhc3RlLnJlc3BvbnNlIGltcG9ydCBoZWFkZXJfdmFsdWUKK2ltcG9ydCByZQoraW1wb3J0IGNnaQorCitfX2FsbF9fID0gWydXREdWYWxpZGF0ZU1pZGRsZXdhcmUnXQorCitjbGFzcyBXREdWYWxpZGF0ZU1pZGRsZXdhcmUob2JqZWN0KToKKworICAgICIiIgorICAgIE1pZGRsZXdhcmUgdGhhdCBjaGVja3MgSFRNTCBhbmQgYXBwZW5kcyBtZXNzYWdlcyBhYm91dCB0aGUgdmFsaWRpdHkgb2YKKyAgICB0aGUgSFRNTC4gIFVzZXM6IGh0dHA6Ly93d3cuaHRtbGhlbHAuY29tL3Rvb2xzL3ZhbGlkYXRvci8gLS0gaW50ZXJhY3RzCisgICAgd2l0aCB0aGUgY29tbWFuZCBsaW5lIGNsaWVudC4gIFVzZSB0aGUgY29uZmlndXJhdGlvbiBgYHdkZ19wYXRoYGAgdG8KKyAgICBvdmVycmlkZSB0aGUgcGF0aCAoZGVmYXVsdDogbG9va3MgZm9yIGBgdmFsaWRhdGVgYCBpbiAkUEFUSCkuCisKKyAgICBUbyBpbnN0YWxsLCBpbiB5b3VyIHdlYiBjb250ZXh0J3MgX19pbml0X18ucHk6OgorCisgICAgICAgIGRlZiB1cmxwYXJzZXJfd3JhcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSwgYXBwKToKKyAgICAgICAgICAgIHJldHVybiB3ZGdfdmFsaWRhdGUuV0RHVmFsaWRhdGVNaWRkbGV3YXJlKGFwcCkoCisgICAgICAgICAgICAgICAgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBPciBpbiB5b3VyIGNvbmZpZ3VyYXRpb246OgorCisgICAgICAgIG1pZGRsZXdhcmUuYXBwZW5kKCdwYXN0ZS53ZGdfdmFsaWRhdGUuV0RHVmFsaWRhdGVNaWRkbGV3YXJlJykKKyAgICAiIiIKKworICAgIF9lbmRfYm9keV9yZWdleCA9IHJlLmNvbXBpbGUocic8L2JvZHk+JywgcmUuSSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHAsIGdsb2JhbF9jb25mPU5vbmUsIHdkZ19wYXRoPSd2YWxpZGF0ZScpOgorICAgICAgICBzZWxmLmFwcCA9IGFwcAorICAgICAgICBzZWxmLndkZ19wYXRoID0gd2RnX3BhdGgKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKKyAgICAgICAgcmVzcG9uc2UgPSBbXQorCisgICAgICAgIGRlZiB3cml0ZXJfc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgIHJlc3BvbnNlLmV4dGVuZCgoc3RhdHVzLCBoZWFkZXJzKSkKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm8pCisgICAgICAgICAgICByZXR1cm4gb3V0cHV0LndyaXRlCisKKyAgICAgICAgYXBwX2l0ZXIgPSBzZWxmLmFwcChlbnZpcm9uLCB3cml0ZXJfc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBzIGluIGFwcF9pdGVyOgorICAgICAgICAgICAgICAgIG91dHB1dC53cml0ZShzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgaWYgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICAgICAgYXBwX2l0ZXIuY2xvc2UoKQorICAgICAgICBwYWdlID0gb3V0cHV0LmdldHZhbHVlKCkKKyAgICAgICAgc3RhdHVzLCBoZWFkZXJzID0gcmVzcG9uc2UKKyAgICAgICAgdiA9IGhlYWRlcl92YWx1ZShoZWFkZXJzLCAnY29udGVudC10eXBlJykgb3IgJycKKyAgICAgICAgaWYgKG5vdCB2LnN0YXJ0c3dpdGgoJ3RleHQvaHRtbCcpCisgICAgICAgICAgICBhbmQgbm90IHYuc3RhcnRzd2l0aCgndGV4dC94aHRtbCcpCisgICAgICAgICAgICBhbmQgbm90IHYuc3RhcnRzd2l0aCgnYXBwbGljYXRpb24veGh0bWwnKSk6CisgICAgICAgICAgICAjIENhbid0IHZhbGlkYXRlCisgICAgICAgICAgICAjIEBAOiBTaG91bGQgdmFsaWRhdGUgQ1NTIHRvby4uLiBidXQgdXNpbmcgd2hhdD8KKyAgICAgICAgICAgIHJldHVybiBbcGFnZV0KKyAgICAgICAgb3BzID0gW10KKyAgICAgICAgaWYgdi5zdGFydHN3aXRoKCd0ZXh0L3hodG1sK3htbCcpOgorICAgICAgICAgICAgb3BzLmFwcGVuZCgnLS14bWwnKQorICAgICAgICAjIEBAOiBTaG91bGQgY2FwdHVyZSBlbmNvZGluZyB0b28KKyAgICAgICAgaHRtbF9lcnJvcnMgPSBzZWxmLmNhbGxfd2RnX3ZhbGlkYXRlKAorICAgICAgICAgICAgc2VsZi53ZGdfcGF0aCwgb3BzLCBwYWdlKQorICAgICAgICBpZiBodG1sX2Vycm9yczoKKyAgICAgICAgICAgIHBhZ2UgPSBzZWxmLmFkZF9lcnJvcihwYWdlLCBodG1sX2Vycm9ycylbMF0KKyAgICAgICAgICAgIGhlYWRlcnMucmVtb3ZlKAorICAgICAgICAgICAgICAgICAgICAgKCdDb250ZW50LUxlbmd0aCcsCisgICAgICAgICAgICAgICAgICAgICAgc3RyKGhlYWRlcl92YWx1ZShoZWFkZXJzLCAnY29udGVudC1sZW5ndGgnKSkpKQorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCdDb250ZW50LUxlbmd0aCcsIHN0cihsZW4ocGFnZSkpKSkKKyAgICAgICAgcmV0dXJuIFtwYWdlXQorCisgICAgZGVmIGNhbGxfd2RnX3ZhbGlkYXRlKHNlbGYsIHdkZ19wYXRoLCBvcHMsIHBhZ2UpOgorICAgICAgICBpZiBzdWJwcm9jZXNzIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJUaGlzIG1pZGRsZXdhcmUgcmVxdWlyZXMgdGhlIHN1YnByb2Nlc3MgbW9kdWxlIGZyb20gIgorICAgICAgICAgICAgICAgICJQeXRob24gMi40IikKKyAgICAgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oW3dkZ19wYXRoXSArIG9wcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlbGw9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcz1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAgc3Rkb3V0ID0gcHJvYy5jb21tdW5pY2F0ZShwYWdlKVswXQorICAgICAgICBwcm9jLndhaXQoKQorICAgICAgICByZXR1cm4gc3Rkb3V0CisKKyAgICBkZWYgYWRkX2Vycm9yKHNlbGYsIGh0bWxfcGFnZSwgaHRtbF9lcnJvcnMpOgorICAgICAgICBhZGRfdGV4dCA9ICgnPHByZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZDsgY29sb3I6ICM2MDA7ICcKKyAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcjogMXB4IHNvbGlkICMwMDA7Ij4lczwvcHJlPicKKyAgICAgICAgICAgICAgICAgICAgJSBjZ2kuZXNjYXBlKGh0bWxfZXJyb3JzKSkKKyAgICAgICAgbWF0Y2ggPSBzZWxmLl9lbmRfYm9keV9yZWdleC5zZWFyY2goaHRtbF9wYWdlKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIHJldHVybiBbaHRtbF9wYWdlWzptYXRjaC5zdGFydCgpXQorICAgICAgICAgICAgICAgICAgICArIGFkZF90ZXh0CisgICAgICAgICAgICAgICAgICAgICsgaHRtbF9wYWdlW21hdGNoLnN0YXJ0KCk6XV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBbaHRtbF9wYWdlICsgYWRkX3RleHRdCisKK2RlZiBtYWtlX3dkZ192YWxpZGF0ZV9taWRkbGV3YXJlKAorICAgIGFwcCwgZ2xvYmFsX2NvbmYsIHdkZ19wYXRoPSd2YWxpZGF0ZScpOgorICAgICIiIgorICAgIFdyYXBzIHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUgV0RHIHZhbGlkYXRvciBmcm9tCisgICAgaHR0cDovL3d3dy5odG1saGVscC5jb20vdG9vbHMvdmFsaWRhdG9yLworCisgICAgVmFsaWRhdGlvbiBlcnJvcnMgYXJlIGFwcGVuZGVkIHRvIHRoZSB0ZXh0IG9mIGVhY2ggcGFnZS4KKyAgICBZb3UgY2FuIGNvbmZpZ3VyZSB0aGlzIGJ5IGdpdmluZyB0aGUgcGF0aCB0byB0aGUgdmFsaWRhdGUKKyAgICBleGVjdXRhYmxlIChieSBkZWZhdWx0IHBpY2tlZCB1cCBmcm9tICRQQVRIKQorICAgICIiIgorICAgIHJldHVybiBXREdWYWxpZGF0ZU1pZGRsZXdhcmUoCisgICAgICAgIGFwcCwgZ2xvYmFsX2NvbmYsIHdkZ19wYXRoPXdkZ19wYXRoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2Vycm9yZG9jdW1lbnQucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXJyb3Jkb2N1bWVudC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGYyZDRhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2Vycm9yZG9jdW1lbnQucHkKQEAgLTAsMCArMSwzODkgQEAKKyMgKGMpIDIwMDUtMjAwNiBKYW1lcyBHYXJkbmVyIDxqYW1lc0BweXRob253ZWIub3JnPgorIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitNaWRkbGV3YXJlIHRvIGRpc3BsYXkgZXJyb3IgZG9jdW1lbnRzIGZvciBjZXJ0YWluIHN0YXR1cyBjb2RlcworCitUaGUgbWlkZGxld2FyZSBpbiB0aGlzIG1vZHVsZSBjYW4gYmUgdXNlZCB0byBpbnRlcmNlcHQgcmVzcG9uc2VzIHdpdGgKK3NwZWNpZmllZCBzdGF0dXMgY29kZXMgYW5kIGludGVybmFsbHkgZm9yd2FyZCB0aGUgcmVxdWVzdCB0byBhbiBhcHByb3ByaWF0ZQorVVJMIHdoZXJlIHRoZSBjb250ZW50IGNhbiBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgYXMgYW4gZXJyb3IgZG9jdW1lbnQuCisiIiIKKworaW1wb3J0IHdhcm5pbmdzCitpbXBvcnQgc3lzCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVybHBhcnNlCitmcm9tIHBhc3RlLnJlY3Vyc2l2ZSBpbXBvcnQgRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24sIFJlY3Vyc2l2ZU1pZGRsZXdhcmUsIFJlY3Vyc2lvbkxvb3AKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgY29udmVydGVycworZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgcmVwbGFjZV9oZWFkZXIKK2ltcG9ydCBzaXgKKworZGVmIGZvcndhcmQoYXBwLCBjb2Rlcyk6CisgICAgIiIiCisgICAgSW50ZXJjZXB0cyBhIHJlc3BvbnNlIHdpdGggYSBwYXJ0aWN1bGFyIHN0YXR1cyBjb2RlIGFuZCByZXR1cm5zIHRoZQorICAgIGNvbnRlbnQgZnJvbSBhIHNwZWNpZmllZCBVUkwgaW5zdGVhZC4KKworICAgIFRoZSBhcmd1bWVudHMgYXJlOgorCisgICAgYGBhcHBgYAorICAgICAgICBUaGUgV1NHSSBhcHBsaWNhdGlvbiBvciBtaWRkbGV3YXJlIGNoYWluLgorCisgICAgYGBjb2Rlc2BgCisgICAgICAgIEEgZGljdGlvbmFyeSBvZiBpbnRlZ2VyIHN0YXR1cyBjb2RlcyBhbmQgdGhlIFVSTCB0byBiZSBkaXNwbGF5ZWQKKyAgICAgICAgaWYgdGhlIHJlc3BvbnNlIHVzZXMgdGhhdCBjb2RlLgorCisgICAgRm9yIGV4YW1wbGUsIHlvdSBtaWdodCB3YW50IHRvIGNyZWF0ZSBhIHN0YXRpYyBmaWxlIHRvIGRpc3BsYXkgYQorICAgICJGaWxlIE5vdCBGb3VuZCIgbWVzc2FnZSBhdCB0aGUgVVJMIGBgL2Vycm9yNDA0Lmh0bWxgYCBhbmQgdGhlbiB1c2UKKyAgICBgYGZvcndhcmRgYCBtaWRkbGV3YXJlIHRvIGNhdGNoIGFsbCA0MDQgc3RhdHVzIGNvZGVzIGFuZCBkaXNwbGF5IHRoZSBwYWdlCisgICAgeW91IGNyZWF0ZWQuIEluIHRoaXMgZXhhbXBsZSBgYGFwcGBgIGlzIHlvdXIgZXhpc2l0aW5nIFdTR0kKKyAgICBhcHBsaWNhaXRvbjo6CisKKyAgICAgICAgZnJvbSBwYXN0ZS5lcnJvcmRvY3VtZW50IGltcG9ydCBmb3J3YXJkCisgICAgICAgIGFwcCA9IGZvcndhcmQoYXBwLCBjb2Rlcz17NDA0OicvZXJyb3I0MDQuaHRtbCd9KQorCisgICAgIiIiCisgICAgZm9yIGNvZGUgaW4gY29kZXM6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvZGUsIGludCk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ0FsbCBzdGF0dXMgY29kZXMgc2hvdWxkIGJlIHR5cGUgaW50LiAnCisgICAgICAgICAgICAgICAgJyVzIGlzIG5vdCB2YWxpZCclcmVwcihjb2RlKSkKKworICAgIGRlZiBlcnJvcl9jb2Rlc19tYXBwZXIoY29kZSwgbWVzc2FnZSwgZW52aXJvbiwgZ2xvYmFsX2NvbmYsIGNvZGVzKToKKyAgICAgICAgaWYgY29kZSBpbiBjb2RlczoKKyAgICAgICAgICAgIHJldHVybiBjb2Rlc1tjb2RlXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICNyZXR1cm4gX1N0YXR1c0Jhc2VkUmVkaXJlY3QoYXBwLCBlcnJvcl9jb2Rlc19tYXBwZXIsIGNvZGVzPWNvZGVzKQorICAgIHJldHVybiBSZWN1cnNpdmVNaWRkbGV3YXJlKAorICAgICAgICBTdGF0dXNCYXNlZEZvcndhcmQoCisgICAgICAgICAgICBhcHAsCisgICAgICAgICAgICBlcnJvcl9jb2Rlc19tYXBwZXIsCisgICAgICAgICAgICBjb2Rlcz1jb2RlcywKKyAgICAgICAgKQorICAgICkKKworY2xhc3MgU3RhdHVzS2VlcGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgc3RhdHVzLCB1cmwsIGhlYWRlcnMpOgorICAgICAgICBzZWxmLmFwcCA9IGFwcAorICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cworICAgICAgICBzZWxmLnVybCA9IHVybAorICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBkZWYga2VlcF9zdGF0dXNfc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgIGZvciBoZWFkZXIsIHZhbHVlIGluIGhlYWRlcnM6CisgICAgICAgICAgICAgICAgaWYgaGVhZGVyLmxvd2VyKCkgPT0gJ3NldC1jb29raWUnOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMuYXBwZW5kKChoZWFkZXIsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXBsYWNlX2hlYWRlcihzZWxmLmhlYWRlcnMsIGhlYWRlciwgdmFsdWUpCisgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc2VsZi5zdGF0dXMsIHNlbGYuaGVhZGVycywgZXhjX2luZm8pCisgICAgICAgIHBhcnRzID0gc2VsZi51cmwuc3BsaXQoJz8nKQorICAgICAgICBlbnZpcm9uWydQQVRIX0lORk8nXSA9IHBhcnRzWzBdCisgICAgICAgIGlmIGxlbihwYXJ0cykgPiAxOgorICAgICAgICAgICAgZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSBwYXJ0c1sxXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSAnJworICAgICAgICAjcmFpc2UgRXhjZXB0aW9uKHNlbGYudXJsLCBzZWxmLnN0YXR1cykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwKGVudmlyb24sIGtlZXBfc3RhdHVzX3N0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBleGNlcHQgUmVjdXJzaW9uTG9vcCBhcyBlOgorICAgICAgICAgICAgbGluZSA9ICdSZWN1cnNpb24gZXJyb3IgZ2V0dGluZyBlcnJvciBwYWdlOiAlc1xuJyAlIGUKKyAgICAgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIGVudmlyb25bJ3dzZ2kuZXJyb3JzJ10ud3JpdGUobGluZSkKKyAgICAgICAgICAgIGtlZXBfc3RhdHVzX3N0YXJ0X3Jlc3BvbnNlKCc1MDAgU2VydmVyIEVycm9yJywgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKV0sIHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAgYm9keSA9ICgnRXJyb3I6ICVzLiAgKEVycm9yIHBhZ2UgY291bGQgbm90IGJlIGZldGNoZWQpJworICAgICAgICAgICAgICAgICAgICAlIHNlbGYuc3RhdHVzKQorICAgICAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgICAgICBib2R5ID0gYm9keS5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICAgICAgcmV0dXJuIFtib2R5XQorCisKK2NsYXNzIFN0YXR1c0Jhc2VkRm9yd2FyZChvYmplY3QpOgorICAgICIiIgorICAgIE1pZGRsZXdhcmUgdGhhdCBsZXRzIHlvdSB0ZXN0IGEgcmVzcG9uc2UgYWdhaW5zdCBhIGN1c3RvbSBtYXBwZXIgb2JqZWN0IHRvCisgICAgcHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZSB3aGV0aGVyIHRvIGludGVybmFsbHkgZm9yd2FyZCB0byBhbm90aGVyIFVSTCBhbmQKKyAgICBpZiBzbywgd2hpY2ggVVJMIHRvIGZvcndhcmQgdG8uCisKKyAgICBJZiB5b3UgZG9uJ3QgbmVlZCB0aGUgZnVsbCBwb3dlciBvZiB0aGlzIG1pZGRsZXdhcmUgeW91IG1pZ2h0IGNob29zZSB0byB1c2UKKyAgICB0aGUgc2ltcGxlciBgYGZvcndhcmRgYCBtaWRkbGV3YXJlIGluc3RlYWQuCisKKyAgICBUaGUgYXJndW1lbnRzIGFyZToKKworICAgIGBgYXBwYGAKKyAgICAgICAgVGhlIFdTR0kgYXBwbGljYXRpb24gb3IgbWlkZGxld2FyZSBjaGFpbi4KKworICAgIGBgbWFwcGVyYGAKKyAgICAgICAgQSBjYWxsYWJsZSB0aGF0IHRha2VzIGEgc3RhdHVzIGNvZGUgYXMgdGhlCisgICAgICAgIGZpcnN0IHBhcmFtZXRlciwgYSBtZXNzYWdlIGFzIHRoZSBzZWNvbmQsIGFuZCBhY2NlcHRzIG9wdGlvbmFsIGVudmlyb24sCisgICAgICAgIGdsb2JhbF9jb25mIGFuZCBuYW1lZCBhcmdtZW50cyBhZnRlcndhcmRzLiBJdCBzaG91bGQgcmV0dXJuIGEKKyAgICAgICAgVVJMIHRvIGZvcndhcmQgdG8gb3IgYGBOb25lYGAgaWYgdGhlIGNvZGUgaXMgbm90IHRvIGJlIGludGVyY2VwdGVkLgorCisgICAgYGBnbG9iYWxfY29uZmBgCisgICAgICAgIE9wdGlvbmFsIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmcm9tIHlvdXIgY29uZmlnIGZpbGUuIElmIGBgZGVidWdgYCBpcworICAgICAgICBzZXQgdG8gYGB0cnVlYGAgYSBtZXNzYWdlIHdpbGwgYmUgd3JpdHRlbiB0byBgYHdzZ2kuZXJyb3JzYGAgb24gZWFjaAorICAgICAgICBpbnRlcm5hbCBmb3J3YXJkIHN0YXRpbmcgdGhlIFVSTCBmb3J3YXJkZWQgdG8uCisKKyAgICBgYCoqcGFyYW1zYGAKKyAgICAgICAgT3B0aW9uYWwsIGFueSBvdGhlciBjb25maWd1cmF0aW9uIGFuZCBleHRyYSBhcmd1bWVudHMgeW91IHdpc2ggdG8KKyAgICAgICAgcGFzcyB3aGljaCB3aWxsIGluIHR1cm4gYmUgcGFzc2VkIGJhY2sgdG8gdGhlIGN1c3RvbSBtYXBwZXIgb2JqZWN0LgorCisgICAgSGVyZSBpcyBhbiBleGFtcGxlIHdoZXJlIGEgYGA0MDQgRmlsZSBOb3QgRm91bmRgYCBzdGF0dXMgcmVzcG9uc2Ugd291bGQgYmUKKyAgICByZWRpcmVjdGVkIHRvIHRoZSBVUkwgYGAvZXJyb3I/Y29kZT00MDQmbWVzc2FnZT1GaWxlJTIwTm90JTIwRm91bmRgYC4gVGhpcworICAgIGNvdWxkIGJlIHVzZWZ1bCBmb3IgcGFzc2luZyB0aGUgc3RhdHVzIGNvZGUgYW5kIG1lc3NhZ2UgaW50byBhbm90aGVyCisgICAgYXBwbGljYXRpb24gdG8gZGlzcGxheSBhbiBlcnJvciBkb2N1bWVudDoKKworICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBmcm9tIHBhc3RlLmVycm9yZG9jdW1lbnQgaW1wb3J0IFN0YXR1c0Jhc2VkRm9yd2FyZAorICAgICAgICBmcm9tIHBhc3RlLnJlY3Vyc2l2ZSBpbXBvcnQgUmVjdXJzaXZlTWlkZGxld2FyZQorICAgICAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsZW5jb2RlCisKKyAgICAgICAgZGVmIGVycm9yX21hcHBlcihjb2RlLCBtZXNzYWdlLCBlbnZpcm9uLCBnbG9iYWxfY29uZiwga3cpCisgICAgICAgICAgICBpZiBjb2RlIGluIFs0MDQsIDUwMF06CisgICAgICAgICAgICAgICAgcGFyYW1zID0gdXJsZW5jb2RlKHsnbWVzc2FnZSc6bWVzc2FnZSwgJ2NvZGUnOmNvZGV9KQorICAgICAgICAgICAgICAgIHVybCA9ICcvZXJyb3I/JyUocGFyYW1zKQorICAgICAgICAgICAgICAgIHJldHVybiB1cmwKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBhcHAgPSBSZWN1cnNpdmVNaWRkbGV3YXJlKAorICAgICAgICAgICAgU3RhdHVzQmFzZWRGb3J3YXJkKGFwcCwgbWFwcGVyPWVycm9yX21hcHBlciksCisgICAgICAgICkKKworICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgbWFwcGVyLCBnbG9iYWxfY29uZj1Ob25lLCAqKnBhcmFtcyk6CisgICAgICAgIGlmIGdsb2JhbF9jb25mIGlzIE5vbmU6CisgICAgICAgICAgICBnbG9iYWxfY29uZiA9IHt9CisgICAgICAgICMgQEA6IGdsb2JhbF9jb25mIHNob3VsZG4ndCByZWFsbHkgY29tZSBpbiBoZXJlLCBvbmx5IGluIGEKKyAgICAgICAgIyBzZXBhcmF0ZSBtYWtlX3N0YXR1c19iYXNlZF9mb3J3YXJkIGZ1bmN0aW9uCisgICAgICAgIGlmIGdsb2JhbF9jb25mOgorICAgICAgICAgICAgc2VsZi5kZWJ1ZyA9IGNvbnZlcnRlcnMuYXNib29sKGdsb2JhbF9jb25mLmdldCgnZGVidWcnLCBGYWxzZSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRlYnVnID0gRmFsc2UKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcAorICAgICAgICBzZWxmLm1hcHBlciA9IG1hcHBlcgorICAgICAgICBzZWxmLmdsb2JhbF9jb25mID0gZ2xvYmFsX2NvbmYKKyAgICAgICAgc2VsZi5wYXJhbXMgPSBwYXJhbXMKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHVybCA9IFtdCisKKyAgICAgICAgZGVmIGNoYW5nZV9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgc3RhdHVzX2NvZGUgPSBzdGF0dXMuc3BsaXQoJyAnKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNvZGUgPSBpbnQoc3RhdHVzX2NvZGVbMF0pCisgICAgICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnU3RhdHVzQmFzZWRGb3J3YXJkIG1pZGRsZXdhcmUgJworICAgICAgICAgICAgICAgICAgICAncmVjZWl2ZWQgYW4gaW52YWxpZCBzdGF0dXMgY29kZSAlcyclcmVwcihzdGF0dXNfY29kZVswXSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBtZXNzYWdlID0gJyAnLmpvaW4oc3RhdHVzX2NvZGVbMTpdKQorICAgICAgICAgICAgbmV3X3VybCA9IHNlbGYubWFwcGVyKAorICAgICAgICAgICAgICAgIGNvZGUsCisgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICBlbnZpcm9uLAorICAgICAgICAgICAgICAgIHNlbGYuZ2xvYmFsX2NvbmYsCisgICAgICAgICAgICAgICAgKipzZWxmLnBhcmFtcworICAgICAgICAgICAgKQorICAgICAgICAgICAgaWYgbm90IChuZXdfdXJsID09IE5vbmUgb3IgaXNpbnN0YW5jZShuZXdfdXJsLCBzdHIpKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICdFeHBlY3RlZCB0aGUgdXJsIHRvIGludGVybmFsbHkgJworICAgICAgICAgICAgICAgICAgICAncmVkaXJlY3QgdG8gaW4gdGhlIFN0YXR1c0Jhc2VkRm9yd2FyZCBtYXBwZXInCisgICAgICAgICAgICAgICAgICAgICd0byBiZSBhIHN0cmluZyBvciBOb25lLCBub3QgJXInICUgbmV3X3VybCkKKyAgICAgICAgICAgIGlmIG5ld191cmw6CisgICAgICAgICAgICAgICAgdXJsLmFwcGVuZChbbmV3X3VybCwgc3RhdHVzLCBoZWFkZXJzXSkKKyAgICAgICAgICAgICAgICAjIFdlIGhhdmUgdG8gYWxsb3cgdGhlIGFwcCB0byB3cml0ZSBzdHVmZiwgZXZlbiB0aG91Z2gKKyAgICAgICAgICAgICAgICAjIHdlJ2xsIGlnbm9yZSBpdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gW10uYXBwZW5kCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvKQorCisgICAgICAgIGFwcF9pdGVyID0gc2VsZi5hcHBsaWNhdGlvbihlbnZpcm9uLCBjaGFuZ2VfcmVzcG9uc2UpCisgICAgICAgIGlmIHVybDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoYXBwX2l0ZXIsICdjbG9zZScpOgorICAgICAgICAgICAgICAgIGFwcF9pdGVyLmNsb3NlKCkKKworICAgICAgICAgICAgZGVmIGZhY3RvcnkoYXBwKToKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzS2VlcGVyKGFwcCwgc3RhdHVzPXVybFswXVsxXSwgdXJsPXVybFswXVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9dXJsWzBdWzJdKQorICAgICAgICAgICAgcmFpc2UgRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24oZmFjdG9yeT1mYWN0b3J5KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGFwcF9pdGVyCisKK2RlZiBtYWtlX2Vycm9yZG9jdW1lbnQoYXBwLCBnbG9iYWxfY29uZiwgKiprdyk6CisgICAgIiIiCisgICAgUGFzdGUgRGVwbG95IGVudHJ5IHBvaW50IHRvIGNyZWF0ZSBhIGVycm9yIGRvY3VtZW50IHdyYXBwZXIuCisKKyAgICBVc2UgbGlrZTo6CisKKyAgICAgICAgW2ZpbHRlci1hcHA6bWFpbl0KKyAgICAgICAgdXNlID0gZWdnOlBhc3RlI2Vycm9yZG9jdW1lbnQKKyAgICAgICAgbmV4dCA9IHJlYWwtYXBwCisgICAgICAgIDUwMCA9IC9saWIvbXNnLzUwMC5odG1sCisgICAgICAgIDQwNCA9IC9saWIvbXNnLzQwNC5odG1sCisgICAgIiIiCisgICAgbWFwID0ge30KKyAgICBmb3Igc3RhdHVzLCByZWRpcl9sb2MgaW4ga3cuaXRlbXMoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3RhdHVzID0gaW50KHN0YXR1cykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgc3RhdHVzIGNvZGU6ICVyJyAlIHN0YXR1cykKKyAgICAgICAgbWFwW3N0YXR1c10gPSByZWRpcl9sb2MKKyAgICBmb3J3YXJkZXIgPSBmb3J3YXJkKGFwcCwgbWFwKQorICAgIHJldHVybiBmb3J3YXJkZXIKKworX19wdWRnZV9hbGxfXyA9IFsKKyAgICAnZm9yd2FyZCcsCisgICAgJ21ha2VfZXJyb3Jkb2N1bWVudCcsCisgICAgJ2VtcHR5X2Vycm9yJywKKyAgICAnbWFrZV9lbXB0eV9lcnJvcicsCisgICAgJ1N0YXR1c0Jhc2VkRm9yd2FyZCcsCitdCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgRGVwcmVjYXRlZAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitkZWYgY3VzdG9tX2ZvcndhcmQoYXBwLCBtYXBwZXIsIGdsb2JhbF9jb25mPU5vbmUsICoqa3cpOgorICAgICIiIgorICAgIERlcHJlY3RhdGVkOyB1c2UgU3RhdHVzQmFzZWRGb3J3YXJkIGluc3RlYWQuCisgICAgIiIiCisgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgImVycm9yZG9jdW1lbnRzLmN1c3RvbV9mb3J3YXJkIGhhcyBiZWVuIGRlcHJlY2F0ZWQ7IHBsZWFzZSAiCisgICAgICAgICJ1c2UgZXJyb3Jkb2N1bWVudHMuU3RhdHVzQmFzZWRGb3J3YXJkIiwKKyAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgIGlmIGdsb2JhbF9jb25mIGlzIE5vbmU6CisgICAgICAgIGdsb2JhbF9jb25mID0ge30KKyAgICByZXR1cm4gX1N0YXR1c0Jhc2VkUmVkaXJlY3QoYXBwLCBtYXBwZXIsIGdsb2JhbF9jb25mLCAqKmt3KQorCitjbGFzcyBfU3RhdHVzQmFzZWRSZWRpcmVjdChvYmplY3QpOgorICAgICIiIgorICAgIERlcHJlY3RhdGVkOyB1c2UgU3RhdHVzQmFzZWRGb3J3YXJkIGluc3RlYWQuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgbWFwcGVyLCBnbG9iYWxfY29uZj1Ob25lLCAqKmt3KToKKworICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgImVycm9yZG9jdW1lbnRzLl9TdGF0dXNCYXNlZFJlZGlyZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQ7IHBsZWFzZSAiCisgICAgICAgICAgICAidXNlIGVycm9yZG9jdW1lbnRzLlN0YXR1c0Jhc2VkRm9yd2FyZCIsCisgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisKKyAgICAgICAgaWYgZ2xvYmFsX2NvbmYgaXMgTm9uZToKKyAgICAgICAgICAgIGdsb2JhbF9jb25mID0ge30KKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcAorICAgICAgICBzZWxmLm1hcHBlciA9IG1hcHBlcgorICAgICAgICBzZWxmLmdsb2JhbF9jb25mID0gZ2xvYmFsX2NvbmYKKyAgICAgICAgc2VsZi5rdyA9IGt3CisgICAgICAgIHNlbGYuZmFsbGJhY2tfdGVtcGxhdGUgPSAiIiIKKyAgICAgICAgICAgIDxodG1sPgorICAgICAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8dGl0bGU+RXJyb3IgJShjb2RlKXM8L3RpdGxlPgorICAgICAgICAgICAgPC9odG1sPgorICAgICAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8aDE+RXJyb3IgJShjb2RlKXM8L2gxPgorICAgICAgICAgICAgPHA+JShtZXNzYWdlKXM8L3A+CisgICAgICAgICAgICA8aHI+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBBZGRpdGlvbmFsbHkgYW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIHByb2R1Y2UgYW4KKyAgICAgICAgICAgICAgICBlcnJvciBkb2N1bWVudC4gIEEgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIHdhcyBsb2dnZWQKKyAgICAgICAgICAgICAgICB0byA8dHQ+d3NnaS5lcnJvcnM8L3R0Pi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDwvYm9keT4KKyAgICAgICAgICAgIDwvaHRtbD4KKyAgICAgICAgIiIiCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICB1cmwgPSBbXQorICAgICAgICBjb2RlX21lc3NhZ2UgPSBbXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWYgY2hhbmdlX3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm89Tm9uZSk6CisgICAgICAgICAgICAgICAgbmV3X3VybCA9IE5vbmUKKyAgICAgICAgICAgICAgICBwYXJ0cyA9IHN0YXR1cy5zcGxpdCgnICcpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBjb2RlID0gaW50KHBhcnRzWzBdKQorICAgICAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgJ19TdGF0dXNCYXNlZFJlZGlyZWN0IG1pZGRsZXdhcmUgJworICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVkIGFuIGludmFsaWQgc3RhdHVzIGNvZGUgJXMnJXJlcHIocGFydHNbMF0pCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gJyAnLmpvaW4ocGFydHNbMTpdKQorICAgICAgICAgICAgICAgIG5ld191cmwgPSBzZWxmLm1hcHBlcigKKyAgICAgICAgICAgICAgICAgICAgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvbiwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5nbG9iYWxfY29uZiwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5rdworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBpZiBub3QgKG5ld191cmwgPT0gTm9uZSBvciBpc2luc3RhbmNlKG5ld191cmwsIHN0cikpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgdGhlIHVybCB0byBpbnRlcm5hbGx5ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZWRpcmVjdCB0byBpbiB0aGUgX1N0YXR1c0Jhc2VkUmVkaXJlY3QgZXJyb3JfbWFwcGVyJworICAgICAgICAgICAgICAgICAgICAgICAgJ3RvIGJlIGEgc3RyaW5nIG9yIE5vbmUsIG5vdCAlcyclcmVwcihuZXdfdXJsKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgaWYgbmV3X3VybDoKKyAgICAgICAgICAgICAgICAgICAgdXJsLmFwcGVuZChuZXdfdXJsKQorICAgICAgICAgICAgICAgIGNvZGVfbWVzc2FnZS5hcHBlbmQoW2NvZGUsIG1lc3NhZ2VdKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvKQorICAgICAgICAgICAgYXBwX2l0ZXIgPSBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIGNoYW5nZV9yZXNwb25zZSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgICAgICBlcnJvciA9IHN0cihzeXMuZXhjX2luZm8oKVsxXSkKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBlcnJvciA9ICcnCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgY29kZSwgbWVzc2FnZSA9IGNvZGVfbWVzc2FnZVswXQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIGNvZGUsIG1lc3NhZ2UgPSBbJycsICcnXQorICAgICAgICAgICAgZW52aXJvblsnd3NnaS5lcnJvcnMnXS53cml0ZSgKKyAgICAgICAgICAgICAgICAnRXJyb3Igb2NjdXJyZWQgaW4gX1N0YXR1c0Jhc2VkUmVkaXJlY3QgJworICAgICAgICAgICAgICAgICdpbnRlcmNlcHRpbmcgdGhlIHJlc3BvbnNlOiAnK3N0cihlcnJvcikKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBbc2VsZi5mYWxsYmFja190ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAlIHsnbWVzc2FnZSc6IG1lc3NhZ2UsICdjb2RlJzogY29kZX1dCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiB1cmw6CisgICAgICAgICAgICAgICAgdXJsXyA9IHVybFswXQorICAgICAgICAgICAgICAgIG5ld19lbnZpcm9uID0ge30KKyAgICAgICAgICAgICAgICBmb3IgaywgdiBpbiBlbnZpcm9uLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGlmIGsgIT0gJ1FVRVJZX1NUUklORyc6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSB1cmxwYXJzZS51cmxwYXJzZSh1cmxfKVs0XQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2Vudmlyb25ba10gPSB2CisgICAgICAgICAgICAgICAgY2xhc3MgSW52YWxpZEZvcndhcmQoRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGRlZiBlYXRfc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgICAgIFdlIGRvbid0IHdhbnQgc3RhcnRfcmVzcG9uc2UgdG8gZG8gYW55dGhpbmcgc2luY2UgaXQKKyAgICAgICAgICAgICAgICAgICAgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQKKyAgICAgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgICAgIGlmIHN0YXR1c1s6M10gIT0gJzIwMCc6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRm9yd2FyZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIFVSTCAlcyB0byBpbnRlcm5hbGx5IGZvcndhcmQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0byBpbiBvcmRlciB0byBjcmVhdGUgYW4gZXJyb3IgZG9jdW1lbnQgZGlkIG5vdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybiBhICcyMDAnIHN0YXR1cyBjb2RlLiIgJSB1cmxfCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZm9yd2FyZCA9IGVudmlyb25bJ3Bhc3RlLnJlY3Vyc2l2ZS5mb3J3YXJkJ10KKyAgICAgICAgICAgICAgICBvbGRfc3RhcnRfcmVzcG9uc2UgPSBmb3J3YXJkLnN0YXJ0X3Jlc3BvbnNlCisgICAgICAgICAgICAgICAgZm9yd2FyZC5zdGFydF9yZXNwb25zZSA9IGVhdF9zdGFydF9yZXNwb25zZQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgYXBwX2l0ZXIgPSBmb3J3YXJkKHVybF8sIG5ld19lbnZpcm9uKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBJbnZhbGlkRm9yd2FyZDoKKyAgICAgICAgICAgICAgICAgICAgY29kZSwgbWVzc2FnZSA9IGNvZGVfbWVzc2FnZVswXQorICAgICAgICAgICAgICAgICAgICBlbnZpcm9uWyd3c2dpLmVycm9ycyddLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0Vycm9yIG9jY3VycmVkIGluICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdfU3RhdHVzQmFzZWRSZWRpcmVjdCByZWRpcmVjdGluZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAndG8gbmV3IFVSTDogJytzdHIodXJsWzBdKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZhbGxiYWNrX3RlbXBsYXRlJXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSc6bWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29kZSc6Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZvcndhcmQuc3RhcnRfcmVzcG9uc2UgPSBvbGRfc3RhcnRfcmVzcG9uc2UKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcF9pdGVyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBhcHBfaXRlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXZhbGV4Y2VwdGlvbi9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTljZjg1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vX19pbml0X18ucHkKQEAgLTAsMCArMSw3IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK0FuIGV4Y2VwdGlvbiBoYW5kbGVyIGZvciBpbnRlcmFjdGl2ZSBkZWJ1Z2dpbmcKKyIiIgorZnJvbSBwYXN0ZS5ldmFsZXhjZXB0aW9uLm1pZGRsZXdhcmUgaW1wb3J0IEV2YWxFeGNlcHRpb24KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vZXZhbGNvbnRleHQucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXZhbGV4Y2VwdGlvbi9ldmFsY29udGV4dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmYyZWZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vZXZhbGNvbnRleHQucHkKQEAgLTAsMCArMSw2OSBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJpbmdJTworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHRocmVhZGluZworaW1wb3J0IHBkYgoraW1wb3J0IHNpeAoraW1wb3J0IHN5cworCitleGVjX2xvY2sgPSB0aHJlYWRpbmcuTG9jaygpCisKK2NsYXNzIEV2YWxDb250ZXh0KG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBDbGFzcyB0aGF0IHJlcHJlc2VudHMgYSBpbnRlcmFjdGl2ZSBpbnRlcmZhY2UuICBJdCBoYXMgaXRzIG93bgorICAgIG5hbWVzcGFjZS4gIFVzZSBldmFsX2NvbnRleHQuZXhlY19leHByKGV4cHIpIHRvIHJ1biBjb21tYW5kczsgdGhlCisgICAgb3V0cHV0IG9mIHRob3NlIGNvbW1hbmRzIGlzIHJldHVybmVkLCBhcyBhcmUgcHJpbnQgc3RhdGVtZW50cy4KKworICAgIFRoaXMgaXMgZXNzZW50aWFsbHkgd2hhdCBkb2N0ZXN0IGRvZXMsIGFuZCBpcyB0YWtlbiBkaXJlY3RseSBmcm9tCisgICAgZG9jdGVzdC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lc3BhY2UsIGdsb2JzKToKKyAgICAgICAgc2VsZi5uYW1lc3BhY2UgPSBuYW1lc3BhY2UKKyAgICAgICAgc2VsZi5nbG9icyA9IGdsb2JzCisKKyAgICBkZWYgZXhlY19leHByKHNlbGYsIHMpOgorICAgICAgICBvdXQgPSBTdHJpbmdJTygpCisgICAgICAgIGV4ZWNfbG9jay5hY3F1aXJlKCkKKyAgICAgICAgc2F2ZV9zdGRvdXQgPSBzeXMuc3Rkb3V0CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlYnVnZ2VyID0gX091dHB1dFJlZGlyZWN0aW5nUGRiKHNhdmVfc3Rkb3V0KQorICAgICAgICAgICAgZGVidWdnZXIucmVzZXQoKQorICAgICAgICAgICAgcGRiLnNldF90cmFjZSA9IGRlYnVnZ2VyLnNldF90cmFjZQorICAgICAgICAgICAgc3lzLnN0ZG91dCA9IG91dAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNvZGUgPSBjb21waWxlKHMsICc8d2ViPicsICJzaW5nbGUiLCAwLCAxKQorICAgICAgICAgICAgICAgIHNpeC5leGVjXyhjb2RlLCBzZWxmLmdsb2JzLCBzZWxmLm5hbWVzcGFjZSkKKyAgICAgICAgICAgICAgICBkZWJ1Z2dlci5zZXRfY29udGludWUoKQorICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPW91dCkKKyAgICAgICAgICAgICAgICBkZWJ1Z2dlci5zZXRfY29udGludWUoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc3lzLnN0ZG91dCA9IHNhdmVfc3Rkb3V0CisgICAgICAgICAgICBleGVjX2xvY2sucmVsZWFzZSgpCisgICAgICAgIHJldHVybiBvdXQuZ2V0dmFsdWUoKQorCisjIEZyb20gZG9jdGVzdAorY2xhc3MgX091dHB1dFJlZGlyZWN0aW5nUGRiKHBkYi5QZGIpOgorICAgICIiIgorICAgIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiB0aGUgcHl0aG9uIGRlYnVnZ2VyIHRoYXQgcmVkaXJlY3RzIHN0ZG91dAorICAgIHRvIGEgZ2l2ZW4gc3RyZWFtIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgdXNlci4gIFN0ZG91dCBpcyAqbm90KgorICAgIHJlZGlyZWN0ZWQgd2hlbiB0cmFjZWQgY29kZSBpcyBleGVjdXRlZC4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3V0KToKKyAgICAgICAgc2VsZi5fX291dCA9IG91dAorICAgICAgICBwZGIuUGRiLl9faW5pdF9fKHNlbGYpCisKKyAgICBkZWYgdHJhY2VfZGlzcGF0Y2goc2VsZiwgKmFyZ3MpOgorICAgICAgICAjIFJlZGlyZWN0IHN0ZG91dCB0byB0aGUgZ2l2ZW4gc3RyZWFtLgorICAgICAgICBzYXZlX3N0ZG91dCA9IHN5cy5zdGRvdXQKKyAgICAgICAgc3lzLnN0ZG91dCA9IHNlbGYuX19vdXQKKyAgICAgICAgIyBDYWxsIFBkYidzIHRyYWNlIGRpc3BhdGNoIG1ldGhvZC4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHBkYi5QZGIudHJhY2VfZGlzcGF0Y2goc2VsZiwgKmFyZ3MpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzeXMuc3Rkb3V0ID0gc2F2ZV9zdGRvdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL01vY2hpS2l0LnBhY2tlZC5qcyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL01vY2hpS2l0LnBhY2tlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTAyN2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vbWVkaWEvTW9jaGlLaXQucGFja2VkLmpzCkBAIC0wLDAgKzEsNzgyOSBAQAorLyoqKgorCisgICAgTW9jaGlLaXQuTW9jaGlLaXQgMS40LjIgOiBQQUNLRUQgVkVSU0lPTgorCisgICAgVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELiAgSWYgY3JlYXRpbmcgcGF0Y2hlcywgcGxlYXNlCisgICAgZGlmZiBhZ2FpbnN0IHRoZSBzb3VyY2UgdHJlZSwgbm90IHRoaXMgZmlsZS4KKworICAgIFNlZSA8aHR0cDovL21vY2hpa2l0LmNvbS8+IGZvciBkb2N1bWVudGF0aW9uLCBkb3dubG9hZHMsIGxpY2Vuc2UsIGV0Yy4KKworICAgIChjKSAyMDA1IEJvYiBJcHBvbGl0by4gIEFsbCByaWdodHMgUmVzZXJ2ZWQuCisKKyoqKi8KKworaWYodHlwZW9mIChkb2pvKSE9InVuZGVmaW5lZCIpeworZG9qby5wcm92aWRlKCJNb2NoaUtpdC5CYXNlIik7Cit9CitpZih0eXBlb2YgKE1vY2hpS2l0KT09InVuZGVmaW5lZCIpeworTW9jaGlLaXQ9e307Cit9CitpZih0eXBlb2YgKE1vY2hpS2l0LkJhc2UpPT0idW5kZWZpbmVkIil7CitNb2NoaUtpdC5CYXNlPXt9OworfQoraWYodHlwZW9mIChNb2NoaUtpdC5fX2V4cG9ydF9fKT09InVuZGVmaW5lZCIpeworTW9jaGlLaXQuX19leHBvcnRfXz0oTW9jaGlLaXQuX19jb21wYXRfX3x8KHR5cGVvZiAoSlNBTik9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgKGRvam8pPT0idW5kZWZpbmVkIikpOworfQorTW9jaGlLaXQuQmFzZS5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5CYXNlLk5BTUU9Ik1vY2hpS2l0LkJhc2UiOworTW9jaGlLaXQuQmFzZS51cGRhdGU9ZnVuY3Rpb24oXzEsXzIpeworaWYoXzE9PT1udWxsfHxfMT09PXVuZGVmaW5lZCl7CitfMT17fTsKK30KK2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspewordmFyIG89YXJndW1lbnRzW2ldOworaWYodHlwZW9mIChvKSE9InVuZGVmaW5lZCImJm8hPT1udWxsKXsKK2Zvcih2YXIgayBpbiBvKXsKK18xW2tdPW9ba107Cit9Cit9Cit9CityZXR1cm4gXzE7Cit9OworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuQmFzZSx7X19yZXByX186ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfSx0b1N0cmluZzpmdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK30sY2FtZWxpemU6ZnVuY3Rpb24oXzYpewordmFyIF83PV82LnNwbGl0KCItIik7Cit2YXIgY2M9XzdbMF07Citmb3IodmFyIGk9MTtpPF83Lmxlbmd0aDtpKyspeworY2MrPV83W2ldLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK183W2ldLnN1YnN0cmluZygxKTsKK30KK3JldHVybiBjYzsKK30sY291bnRlcjpmdW5jdGlvbihuKXsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0wKXsKK249MTsKK30KK3JldHVybiBmdW5jdGlvbigpeworcmV0dXJuIG4rKzsKK307Cit9LGNsb25lOmZ1bmN0aW9uKF9iKXsKK3ZhciBtZT1hcmd1bWVudHMuY2FsbGVlOworaWYoYXJndW1lbnRzLmxlbmd0aD09MSl7CittZS5wcm90b3R5cGU9X2I7CityZXR1cm4gbmV3IG1lKCk7Cit9Cit9LF9kZXBzOmZ1bmN0aW9uKF9kLF9lKXsKK2lmKCEoX2QgaW4gTW9jaGlLaXQpKXsKK01vY2hpS2l0W19kXT17fTsKK30KK2lmKHR5cGVvZiAoZG9qbykhPSJ1bmRlZmluZWQiKXsKK2Rvam8ucHJvdmlkZSgiTW9jaGlLaXQuIitfZCk7Cit9Citmb3IodmFyIGk9MDtpPF9lLmxlbmd0aDtpKyspeworaWYodHlwZW9mIChkb2pvKSE9InVuZGVmaW5lZCIpeworZG9qby5yZXF1aXJlKCJNb2NoaUtpdC4iK19lW2ldKTsKK30KK2lmKHR5cGVvZiAoSlNBTikhPSJ1bmRlZmluZWQiKXsKK0pTQU4udXNlKCJNb2NoaUtpdC4iK19lW2ldLFtdKTsKK30KK2lmKCEoX2VbaV0gaW4gTW9jaGlLaXQpKXsKK3Rocm93ICJNb2NoaUtpdC4iK19kKyIgZGVwZW5kcyBvbiBNb2NoaUtpdC4iK19lW2ldKyIhIjsKK30KK30KK30sX2ZsYXR0ZW5BcnJheTpmdW5jdGlvbihyZXMsbHN0KXsKK2Zvcih2YXIgaT0wO2k8bHN0Lmxlbmd0aDtpKyspewordmFyIG89bHN0W2ldOworaWYobyBpbnN0YW5jZW9mIEFycmF5KXsKK2FyZ3VtZW50cy5jYWxsZWUocmVzLG8pOworfWVsc2V7CityZXMucHVzaChvKTsKK30KK30KK3JldHVybiByZXM7Cit9LGZsYXR0ZW5BcnJheTpmdW5jdGlvbihsc3QpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UuX2ZsYXR0ZW5BcnJheShbXSxsc3QpOworfSxmbGF0dGVuQXJndW1lbnRzOmZ1bmN0aW9uKGxzdCl7Cit2YXIgcmVzPVtdOwordmFyIG09TW9jaGlLaXQuQmFzZTsKK3ZhciBfMTg9bS5leHRlbmQobnVsbCxhcmd1bWVudHMpOword2hpbGUoXzE4Lmxlbmd0aCl7Cit2YXIgbz1fMTguc2hpZnQoKTsKK2lmKG8mJnR5cGVvZiAobyk9PSJvYmplY3QiJiZ0eXBlb2YgKG8ubGVuZ3RoKT09Im51bWJlciIpeworZm9yKHZhciBpPW8ubGVuZ3RoLTE7aT49MDtpLS0peworXzE4LnVuc2hpZnQob1tpXSk7Cit9Cit9ZWxzZXsKK3Jlcy5wdXNoKG8pOworfQorfQorcmV0dXJuIHJlczsKK30sZXh0ZW5kOmZ1bmN0aW9uKF8xYixvYmosXzFkKXsKK2lmKCFfMWQpeworXzFkPTA7Cit9CitpZihvYmopewordmFyIGw9b2JqLmxlbmd0aDsKK2lmKHR5cGVvZiAobCkhPSJudW1iZXIiKXsKK2lmKHR5cGVvZiAoTW9jaGlLaXQuSXRlcikhPSJ1bmRlZmluZWQiKXsKK29iaj1Nb2NoaUtpdC5JdGVyLmxpc3Qob2JqKTsKK2w9b2JqLmxlbmd0aDsKK31lbHNlewordGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbm90IGFuIGFycmF5LWxpa2UgYW5kIE1vY2hpS2l0Lkl0ZXIgbm90IHByZXNlbnQiKTsKK30KK30KK2lmKCFfMWIpeworXzFiPVtdOworfQorZm9yKHZhciBpPV8xZDtpPGw7aSsrKXsKK18xYi5wdXNoKG9ialtpXSk7Cit9Cit9CityZXR1cm4gXzFiOworfSx1cGRhdGV0cmVlOmZ1bmN0aW9uKF8yMCxvYmopeworaWYoXzIwPT09bnVsbHx8XzIwPT09dW5kZWZpbmVkKXsKK18yMD17fTsKK30KK2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspewordmFyIG89YXJndW1lbnRzW2ldOworaWYodHlwZW9mIChvKSE9InVuZGVmaW5lZCImJm8hPT1udWxsKXsKK2Zvcih2YXIgayBpbiBvKXsKK3ZhciB2PW9ba107CitpZih0eXBlb2YgKF8yMFtrXSk9PSJvYmplY3QiJiZ0eXBlb2YgKHYpPT0ib2JqZWN0Iil7Cithcmd1bWVudHMuY2FsbGVlKF8yMFtrXSx2KTsKK31lbHNleworXzIwW2tdPXY7Cit9Cit9Cit9Cit9CityZXR1cm4gXzIwOworfSxzZXRkZWZhdWx0OmZ1bmN0aW9uKF8yNixvYmopeworaWYoXzI2PT09bnVsbHx8XzI2PT09dW5kZWZpbmVkKXsKK18yNj17fTsKK30KK2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspewordmFyIG89YXJndW1lbnRzW2ldOworZm9yKHZhciBrIGluIG8peworaWYoIShrIGluIF8yNikpeworXzI2W2tdPW9ba107Cit9Cit9Cit9CityZXR1cm4gXzI2OworfSxrZXlzOmZ1bmN0aW9uKG9iail7Cit2YXIgXzJjPVtdOworZm9yKHZhciBfMmQgaW4gb2JqKXsKK18yYy5wdXNoKF8yZCk7Cit9CityZXR1cm4gXzJjOworfSx2YWx1ZXM6ZnVuY3Rpb24ob2JqKXsKK3ZhciBfMmY9W107Citmb3IodmFyIF8zMCBpbiBvYmopeworXzJmLnB1c2gob2JqW18zMF0pOworfQorcmV0dXJuIF8yZjsKK30saXRlbXM6ZnVuY3Rpb24ob2JqKXsKK3ZhciBfMzI9W107Cit2YXIgZTsKK2Zvcih2YXIgXzM0IGluIG9iail7Cit2YXIgdjsKK3RyeXsKK3Y9b2JqW18zNF07Cit9CitjYXRjaChlKXsKK2NvbnRpbnVlOworfQorXzMyLnB1c2goW18zNCx2XSk7Cit9CityZXR1cm4gXzMyOworfSxfbmV3TmFtZWRFcnJvcjpmdW5jdGlvbihfMzYsXzM3LF8zOCl7CitfMzgucHJvdG90eXBlPW5ldyBNb2NoaUtpdC5CYXNlLk5hbWVkRXJyb3IoXzM2Lk5BTUUrIi4iK18zNyk7CitfMzZbXzM3XT1fMzg7Cit9LG9wZXJhdG9yOnt0cnV0aDpmdW5jdGlvbihhKXsKK3JldHVybiAhIWE7Cit9LGxvZ25vdDpmdW5jdGlvbihhKXsKK3JldHVybiAhYTsKK30saWRlbnRpdHk6ZnVuY3Rpb24oYSl7CityZXR1cm4gYTsKK30sbm90OmZ1bmN0aW9uKGEpeworcmV0dXJuIH5hOworfSxuZWc6ZnVuY3Rpb24oYSl7CityZXR1cm4gLWE7Cit9LGFkZDpmdW5jdGlvbihhLGIpeworcmV0dXJuIGErYjsKK30sc3ViOmZ1bmN0aW9uKGEsYil7CityZXR1cm4gYS1iOworfSxkaXY6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBhL2I7Cit9LG1vZDpmdW5jdGlvbihhLGIpeworcmV0dXJuIGElYjsKK30sbXVsOmZ1bmN0aW9uKGEsYil7CityZXR1cm4gYSpiOworfSxhbmQ6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBhJmI7Cit9LG9yOmZ1bmN0aW9uKGEsYil7CityZXR1cm4gYXxiOworfSx4b3I6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBhXmI7Cit9LGxzaGlmdDpmdW5jdGlvbihhLGIpeworcmV0dXJuIGE8PGI7Cit9LHJzaGlmdDpmdW5jdGlvbihhLGIpeworcmV0dXJuIGE+PmI7Cit9LHpyc2hpZnQ6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBhPj4+YjsKK30sZXE6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBhPT1iOworfSxuZTpmdW5jdGlvbihhLGIpeworcmV0dXJuIGEhPWI7Cit9LGd0OmZ1bmN0aW9uKGEsYil7CityZXR1cm4gYT5iOworfSxnZTpmdW5jdGlvbihhLGIpeworcmV0dXJuIGE+PWI7Cit9LGx0OmZ1bmN0aW9uKGEsYil7CityZXR1cm4gYTxiOworfSxsZTpmdW5jdGlvbihhLGIpeworcmV0dXJuIGE8PWI7Cit9LHNlcTpmdW5jdGlvbihhLGIpeworcmV0dXJuIGE9PT1iOworfSxzbmU6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBhIT09YjsKK30sY2VxOmZ1bmN0aW9uKGEsYil7CityZXR1cm4gTW9jaGlLaXQuQmFzZS5jb21wYXJlKGEsYik9PT0wOworfSxjbmU6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBNb2NoaUtpdC5CYXNlLmNvbXBhcmUoYSxiKSE9PTA7Cit9LGNndDpmdW5jdGlvbihhLGIpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UuY29tcGFyZShhLGIpPT0xOworfSxjZ2U6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBNb2NoaUtpdC5CYXNlLmNvbXBhcmUoYSxiKSE9LTE7Cit9LGNsdDpmdW5jdGlvbihhLGIpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UuY29tcGFyZShhLGIpPT0tMTsKK30sY2xlOmZ1bmN0aW9uKGEsYil7CityZXR1cm4gTW9jaGlLaXQuQmFzZS5jb21wYXJlKGEsYikhPTE7Cit9LGxvZ2FuZDpmdW5jdGlvbihhLGIpeworcmV0dXJuIGEmJmI7Cit9LGxvZ29yOmZ1bmN0aW9uKGEsYil7CityZXR1cm4gYXx8YjsKK30sY29udGFpbnM6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBiIGluIGE7Cit9fSxmb3J3YXJkQ2FsbDpmdW5jdGlvbihfNzYpeworcmV0dXJuIGZ1bmN0aW9uKCl7CityZXR1cm4gdGhpc1tfNzZdLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsKK307Cit9LGl0ZW1nZXR0ZXI6ZnVuY3Rpb24oXzc3KXsKK3JldHVybiBmdW5jdGlvbihhcmcpeworcmV0dXJuIGFyZ1tfNzddOworfTsKK30sdHlwZU1hdGNoZXI6ZnVuY3Rpb24oKXsKK3ZhciBfNzk9e307Citmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXsKK3ZhciB0eXA9YXJndW1lbnRzW2ldOworXzc5W3R5cF09dHlwOworfQorcmV0dXJuIGZ1bmN0aW9uKCl7Citmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXsKK2lmKCEodHlwZW9mIChhcmd1bWVudHNbaV0pIGluIF83OSkpeworcmV0dXJuIGZhbHNlOworfQorfQorcmV0dXJuIHRydWU7Cit9OworfSxpc051bGw6ZnVuY3Rpb24oKXsKK2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspeworaWYoYXJndW1lbnRzW2ldIT09bnVsbCl7CityZXR1cm4gZmFsc2U7Cit9Cit9CityZXR1cm4gdHJ1ZTsKK30saXNVbmRlZmluZWRPck51bGw6ZnVuY3Rpb24oKXsKK2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspewordmFyIG89YXJndW1lbnRzW2ldOworaWYoISh0eXBlb2YgKG8pPT0idW5kZWZpbmVkInx8bz09PW51bGwpKXsKK3JldHVybiBmYWxzZTsKK30KK30KK3JldHVybiB0cnVlOworfSxpc0VtcHR5OmZ1bmN0aW9uKG9iail7CityZXR1cm4gIU1vY2hpS2l0LkJhc2UuaXNOb3RFbXB0eS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Cit9LGlzTm90RW1wdHk6ZnVuY3Rpb24ob2JqKXsKK2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspewordmFyIG89YXJndW1lbnRzW2ldOworaWYoIShvJiZvLmxlbmd0aCkpeworcmV0dXJuIGZhbHNlOworfQorfQorcmV0dXJuIHRydWU7Cit9LGlzQXJyYXlMaWtlOmZ1bmN0aW9uKCl7Citmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXsKK3ZhciBvPWFyZ3VtZW50c1tpXTsKK3ZhciB0eXA9dHlwZW9mIChvKTsKK2lmKCh0eXAhPSJvYmplY3QiJiYhKHR5cD09ImZ1bmN0aW9uIiYmdHlwZW9mIChvLml0ZW0pPT0iZnVuY3Rpb24iKSl8fG89PT1udWxsfHx0eXBlb2YgKG8ubGVuZ3RoKSE9Im51bWJlciJ8fG8ubm9kZVR5cGU9PT0zfHxvLm5vZGVUeXBlPT09NCl7CityZXR1cm4gZmFsc2U7Cit9Cit9CityZXR1cm4gdHJ1ZTsKK30saXNEYXRlTGlrZTpmdW5jdGlvbigpeworZm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7Cit2YXIgbz1hcmd1bWVudHNbaV07CitpZih0eXBlb2YgKG8pIT0ib2JqZWN0Inx8bz09PW51bGx8fHR5cGVvZiAoby5nZXRUaW1lKSE9ImZ1bmN0aW9uIil7CityZXR1cm4gZmFsc2U7Cit9Cit9CityZXR1cm4gdHJ1ZTsKK30seG1hcDpmdW5jdGlvbihmbil7CitpZihmbj09PW51bGwpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UuZXh0ZW5kKG51bGwsYXJndW1lbnRzLDEpOworfQordmFyIF84YT1bXTsKK2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspeworXzhhLnB1c2goZm4oYXJndW1lbnRzW2ldKSk7Cit9CityZXR1cm4gXzhhOworfSxtYXA6ZnVuY3Rpb24oZm4sbHN0KXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit2YXIgaXRyPU1vY2hpS2l0Lkl0ZXI7Cit2YXIgXzkwPW0uaXNBcnJheUxpa2U7CitpZihhcmd1bWVudHMubGVuZ3RoPD0yKXsKK2lmKCFfOTAobHN0KSl7CitpZihpdHIpeworbHN0PWl0ci5saXN0KGxzdCk7CitpZihmbj09PW51bGwpeworcmV0dXJuIGxzdDsKK30KK31lbHNlewordGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbm90IGFuIGFycmF5LWxpa2UgYW5kIE1vY2hpS2l0Lkl0ZXIgbm90IHByZXNlbnQiKTsKK30KK30KK2lmKGZuPT09bnVsbCl7CityZXR1cm4gbS5leHRlbmQobnVsbCxsc3QpOworfQordmFyIF85MT1bXTsKK2Zvcih2YXIgaT0wO2k8bHN0Lmxlbmd0aDtpKyspeworXzkxLnB1c2goZm4obHN0W2ldKSk7Cit9CityZXR1cm4gXzkxOworfWVsc2V7CitpZihmbj09PW51bGwpeworZm49QXJyYXk7Cit9Cit2YXIgXzkzPW51bGw7Citmb3IoaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspeworaWYoIV85MChhcmd1bWVudHNbaV0pKXsKK2lmKGl0cil7CityZXR1cm4gaXRyLmxpc3QoaXRyLmltYXAuYXBwbHkobnVsbCxhcmd1bWVudHMpKTsKK31lbHNlewordGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbm90IGFuIGFycmF5LWxpa2UgYW5kIE1vY2hpS2l0Lkl0ZXIgbm90IHByZXNlbnQiKTsKK30KK30KK3ZhciBsPWFyZ3VtZW50c1tpXS5sZW5ndGg7CitpZihfOTM9PT1udWxsfHxfOTM+bCl7CitfOTM9bDsKK30KK30KK185MT1bXTsKK2ZvcihpPTA7aTxfOTM7aSsrKXsKK3ZhciBfOTU9W107Citmb3IodmFyIGo9MTtqPGFyZ3VtZW50cy5sZW5ndGg7aisrKXsKK185NS5wdXNoKGFyZ3VtZW50c1tqXVtpXSk7Cit9CitfOTEucHVzaChmbi5hcHBseSh0aGlzLF85NSkpOworfQorcmV0dXJuIF85MTsKK30KK30seGZpbHRlcjpmdW5jdGlvbihmbil7Cit2YXIgXzk4PVtdOworaWYoZm49PT1udWxsKXsKK2ZuPU1vY2hpS2l0LkJhc2Uub3BlcmF0b3IudHJ1dGg7Cit9Citmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXsKK3ZhciBvPWFyZ3VtZW50c1tpXTsKK2lmKGZuKG8pKXsKK185OC5wdXNoKG8pOworfQorfQorcmV0dXJuIF85ODsKK30sZmlsdGVyOmZ1bmN0aW9uKGZuLGxzdCxfOWQpewordmFyIF85ZT1bXTsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CitpZighbS5pc0FycmF5TGlrZShsc3QpKXsKK2lmKE1vY2hpS2l0Lkl0ZXIpeworbHN0PU1vY2hpS2l0Lkl0ZXIubGlzdChsc3QpOworfWVsc2V7Cit0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBub3QgYW4gYXJyYXktbGlrZSBhbmQgTW9jaGlLaXQuSXRlciBub3QgcHJlc2VudCIpOworfQorfQoraWYoZm49PT1udWxsKXsKK2ZuPW0ub3BlcmF0b3IudHJ1dGg7Cit9CitpZih0eXBlb2YgKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpPT0iZnVuY3Rpb24iKXsKK3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwobHN0LGZuLF85ZCk7Cit9ZWxzZXsKK2lmKHR5cGVvZiAoXzlkKT09InVuZGVmaW5lZCJ8fF85ZD09PW51bGwpeworZm9yKHZhciBpPTA7aTxsc3QubGVuZ3RoO2krKyl7Cit2YXIgbz1sc3RbaV07CitpZihmbihvKSl7CitfOWUucHVzaChvKTsKK30KK30KK31lbHNleworZm9yKGk9MDtpPGxzdC5sZW5ndGg7aSsrKXsKK289bHN0W2ldOworaWYoZm4uY2FsbChfOWQsbykpeworXzllLnB1c2gobyk7Cit9Cit9Cit9Cit9CityZXR1cm4gXzllOworfSxfd3JhcER1bWJGdW5jdGlvbjpmdW5jdGlvbihfYTIpeworcmV0dXJuIGZ1bmN0aW9uKCl7Citzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7CitjYXNlIDA6CityZXR1cm4gX2EyKCk7CitjYXNlIDE6CityZXR1cm4gX2EyKGFyZ3VtZW50c1swXSk7CitjYXNlIDI6CityZXR1cm4gX2EyKGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0pOworY2FzZSAzOgorcmV0dXJuIF9hMihhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSk7Cit9Cit2YXIgX2EzPVtdOworZm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7CitfYTMucHVzaCgiYXJndW1lbnRzWyIraSsiXSIpOworfQorcmV0dXJuIGV2YWwoIihmdW5jKCIrX2EzLmpvaW4oIiwiKSsiKSkiKTsKK307Cit9LG1ldGhvZGNhbGxlcjpmdW5jdGlvbihfYTUpewordmFyIF9hNj1Nb2NoaUtpdC5CYXNlLmV4dGVuZChudWxsLGFyZ3VtZW50cywxKTsKK2lmKHR5cGVvZiAoX2E1KT09ImZ1bmN0aW9uIil7CityZXR1cm4gZnVuY3Rpb24ob2JqKXsKK3JldHVybiBfYTUuYXBwbHkob2JqLF9hNik7Cit9OworfWVsc2V7CityZXR1cm4gZnVuY3Rpb24ob2JqKXsKK3JldHVybiBvYmpbX2E1XS5hcHBseShvYmosX2E2KTsKK307Cit9Cit9LG1ldGhvZDpmdW5jdGlvbihfYTksX2FhKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CityZXR1cm4gbS5iaW5kLmFwcGx5KHRoaXMsbS5leHRlbmQoW19hYSxfYTldLGFyZ3VtZW50cywyKSk7Cit9LGNvbXBvc2U6ZnVuY3Rpb24oZjEsZjIpewordmFyIF9hZT1bXTsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CitpZihhcmd1bWVudHMubGVuZ3RoPT09MCl7Cit0aHJvdyBuZXcgVHlwZUVycm9yKCJjb21wb3NlKCkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50Iik7Cit9Citmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXsKK3ZhciBmbj1hcmd1bWVudHNbaV07CitpZih0eXBlb2YgKGZuKSE9ImZ1bmN0aW9uIil7Cit0aHJvdyBuZXcgVHlwZUVycm9yKG0ucmVwcihmbikrIiBpcyBub3QgYSBmdW5jdGlvbiIpOworfQorX2FlLnB1c2goZm4pOworfQorcmV0dXJuIGZ1bmN0aW9uKCl7Cit2YXIgX2IyPWFyZ3VtZW50czsKK2Zvcih2YXIgaT1fYWUubGVuZ3RoLTE7aT49MDtpLS0peworX2IyPVtfYWVbaV0uYXBwbHkodGhpcyxfYjIpXTsKK30KK3JldHVybiBfYjJbMF07Cit9OworfSxiaW5kOmZ1bmN0aW9uKF9iNCxfYjUpeworaWYodHlwZW9mIChfYjQpPT0ic3RyaW5nIil7CitfYjQ9X2I1W19iNF07Cit9Cit2YXIgX2I2PV9iNC5pbV9mdW5jOwordmFyIF9iNz1fYjQuaW1fcHJlYXJnczsKK3ZhciBfYjg9X2I0LmltX3NlbGY7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworaWYodHlwZW9mIChfYjQpPT0iZnVuY3Rpb24iJiZ0eXBlb2YgKF9iNC5hcHBseSk9PSJ1bmRlZmluZWQiKXsKK19iND1tLl93cmFwRHVtYkZ1bmN0aW9uKF9iNCk7Cit9CitpZih0eXBlb2YgKF9iNikhPSJmdW5jdGlvbiIpeworX2I2PV9iNDsKK30KK2lmKHR5cGVvZiAoX2I1KSE9InVuZGVmaW5lZCIpeworX2I4PV9iNTsKK30KK2lmKHR5cGVvZiAoX2I3KT09InVuZGVmaW5lZCIpeworX2I3PVtdOworfWVsc2V7CitfYjc9X2I3LnNsaWNlKCk7Cit9CittLmV4dGVuZChfYjcsYXJndW1lbnRzLDIpOwordmFyIF9iYT1mdW5jdGlvbigpewordmFyIF9iYj1hcmd1bWVudHM7Cit2YXIgbWU9YXJndW1lbnRzLmNhbGxlZTsKK2lmKG1lLmltX3ByZWFyZ3MubGVuZ3RoPjApeworX2JiPW0uY29uY2F0KG1lLmltX3ByZWFyZ3MsX2JiKTsKK30KK3ZhciBfYmQ9bWUuaW1fc2VsZjsKK2lmKCFfYmQpeworX2JkPXRoaXM7Cit9CityZXR1cm4gbWUuaW1fZnVuYy5hcHBseShfYmQsX2JiKTsKK307CitfYmEuaW1fc2VsZj1fYjg7CitfYmEuaW1fZnVuYz1fYjY7CitfYmEuaW1fcHJlYXJncz1fYjc7CityZXR1cm4gX2JhOworfSxiaW5kTGF0ZTpmdW5jdGlvbihfYmUsX2JmKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CitpZih0eXBlb2YgKF9iZSkhPSJzdHJpbmciKXsKK3JldHVybiBtLmJpbmQuYXBwbHkodGhpcyxhcmd1bWVudHMpOworfQordmFyIF9jMT1tLmV4dGVuZChbXSxhcmd1bWVudHMsMik7Cit2YXIgX2MyPWZ1bmN0aW9uKCl7Cit2YXIgX2MzPWFyZ3VtZW50czsKK3ZhciBtZT1hcmd1bWVudHMuY2FsbGVlOworaWYobWUuaW1fcHJlYXJncy5sZW5ndGg+MCl7CitfYzM9bS5jb25jYXQobWUuaW1fcHJlYXJncyxfYzMpOworfQordmFyIF9jNT1tZS5pbV9zZWxmOworaWYoIV9jNSl7CitfYzU9dGhpczsKK30KK3JldHVybiBfYzVbbWUuaW1fZnVuY10uYXBwbHkoX2M1LF9jMyk7Cit9OworX2MyLmltX3NlbGY9X2JmOworX2MyLmltX2Z1bmM9X2JlOworX2MyLmltX3ByZWFyZ3M9X2MxOworcmV0dXJuIF9jMjsKK30sYmluZE1ldGhvZHM6ZnVuY3Rpb24oX2M2KXsKK3ZhciBfYzc9TW9jaGlLaXQuQmFzZS5iaW5kOworZm9yKHZhciBrIGluIF9jNil7Cit2YXIgX2M5PV9jNltrXTsKK2lmKHR5cGVvZiAoX2M5KT09ImZ1bmN0aW9uIil7CitfYzZba109X2M3KF9jOSxfYzYpOworfQorfQorfSxyZWdpc3RlckNvbXBhcmF0b3I6ZnVuY3Rpb24oX2NhLF9jYixfY2MsX2NkKXsKK01vY2hpS2l0LkJhc2UuY29tcGFyYXRvclJlZ2lzdHJ5LnJlZ2lzdGVyKF9jYSxfY2IsX2NjLF9jZCk7Cit9LF9wcmltaXRpdmVzOnsiYm9vbGVhbiI6dHJ1ZSwic3RyaW5nIjp0cnVlLCJudW1iZXIiOnRydWV9LGNvbXBhcmU6ZnVuY3Rpb24oYSxiKXsKK2lmKGE9PWIpeworcmV0dXJuIDA7Cit9Cit2YXIgX2QwPSh0eXBlb2YgKGEpPT0idW5kZWZpbmVkInx8YT09PW51bGwpOwordmFyIF9kMT0odHlwZW9mIChiKT09InVuZGVmaW5lZCJ8fGI9PT1udWxsKTsKK2lmKF9kMCYmX2QxKXsKK3JldHVybiAwOworfWVsc2V7CitpZihfZDApeworcmV0dXJuIC0xOworfWVsc2V7CitpZihfZDEpeworcmV0dXJuIDE7Cit9Cit9Cit9Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIF9kMz1tLl9wcmltaXRpdmVzOworaWYoISh0eXBlb2YgKGEpIGluIF9kMyYmdHlwZW9mIChiKSBpbiBfZDMpKXsKK3RyeXsKK3JldHVybiBtLmNvbXBhcmF0b3JSZWdpc3RyeS5tYXRjaChhLGIpOworfQorY2F0Y2goZSl7CitpZihlIT1tLk5vdEZvdW5kKXsKK3Rocm93IGU7Cit9Cit9Cit9CitpZihhPGIpeworcmV0dXJuIC0xOworfWVsc2V7CitpZihhPmIpeworcmV0dXJuIDE7Cit9Cit9Cit2YXIgX2Q0PW0ucmVwcjsKK3Rocm93IG5ldyBUeXBlRXJyb3IoX2Q0KGEpKyIgYW5kICIrX2Q0KGIpKyIgY2FuIG5vdCBiZSBjb21wYXJlZCIpOworfSxjb21wYXJlRGF0ZUxpa2U6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiBNb2NoaUtpdC5CYXNlLmNvbXBhcmUoYS5nZXRUaW1lKCksYi5nZXRUaW1lKCkpOworfSxjb21wYXJlQXJyYXlMaWtlOmZ1bmN0aW9uKGEsYil7Cit2YXIgX2Q5PU1vY2hpS2l0LkJhc2UuY29tcGFyZTsKK3ZhciBfZGE9YS5sZW5ndGg7Cit2YXIgX2RiPTA7CitpZihfZGE+Yi5sZW5ndGgpeworX2RiPTE7CitfZGE9Yi5sZW5ndGg7Cit9ZWxzZXsKK2lmKF9kYTxiLmxlbmd0aCl7CitfZGI9LTE7Cit9Cit9Citmb3IodmFyIGk9MDtpPF9kYTtpKyspewordmFyIGNtcD1fZDkoYVtpXSxiW2ldKTsKK2lmKGNtcCl7CityZXR1cm4gY21wOworfQorfQorcmV0dXJuIF9kYjsKK30scmVnaXN0ZXJSZXByOmZ1bmN0aW9uKF9kZSxfZGYsX2UwLF9lMSl7CitNb2NoaUtpdC5CYXNlLnJlcHJSZWdpc3RyeS5yZWdpc3RlcihfZGUsX2RmLF9lMCxfZTEpOworfSxyZXByOmZ1bmN0aW9uKG8peworaWYodHlwZW9mIChvKT09InVuZGVmaW5lZCIpeworcmV0dXJuICJ1bmRlZmluZWQiOworfWVsc2V7CitpZihvPT09bnVsbCl7CityZXR1cm4gIm51bGwiOworfQorfQordHJ5eworaWYodHlwZW9mIChvLl9fcmVwcl9fKT09ImZ1bmN0aW9uIil7CityZXR1cm4gby5fX3JlcHJfXygpOworfWVsc2V7CitpZih0eXBlb2YgKG8ucmVwcik9PSJmdW5jdGlvbiImJm8ucmVwciE9YXJndW1lbnRzLmNhbGxlZSl7CityZXR1cm4gby5yZXByKCk7Cit9Cit9CityZXR1cm4gTW9jaGlLaXQuQmFzZS5yZXByUmVnaXN0cnkubWF0Y2gobyk7Cit9CitjYXRjaChlKXsKK2lmKHR5cGVvZiAoby5OQU1FKT09InN0cmluZyImJihvLnRvU3RyaW5nPT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmd8fG8udG9TdHJpbmc9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpKXsKK3JldHVybiBvLk5BTUU7Cit9Cit9Cit0cnl7Cit2YXIgX2UzPShvKyIiKTsKK30KK2NhdGNoKGUpeworcmV0dXJuICJbIit0eXBlb2YgKG8pKyJdIjsKK30KK2lmKHR5cGVvZiAobyk9PSJmdW5jdGlvbiIpeworX2UzPV9lMy5yZXBsYWNlKC9eXHMrLywiIikucmVwbGFjZSgvXHMrL2csIiAiKTsKK19lMz1fZTMucmVwbGFjZSgvLChcUykvLCIsICQxIik7Cit2YXIgaWR4PV9lMy5pbmRleE9mKCJ7Iik7CitpZihpZHghPS0xKXsKK19lMz1fZTMuc3Vic3RyKDAsaWR4KSsiey4uLn0iOworfQorfQorcmV0dXJuIF9lMzsKK30scmVwckFycmF5TGlrZTpmdW5jdGlvbihvKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CityZXR1cm4gIlsiK20ubWFwKG0ucmVwcixvKS5qb2luKCIsICIpKyJdIjsKK30scmVwclN0cmluZzpmdW5jdGlvbihvKXsKK3JldHVybiAoIlwiIitvLnJlcGxhY2UoLyhbIlxcXSkvZywiXFwkMSIpKyJcIiIpLnJlcGxhY2UoL1tcZl0vZywiXFxmIikucmVwbGFjZSgvW1xiXS9nLCJcXGIiKS5yZXBsYWNlKC9bXG5dL2csIlxcbiIpLnJlcGxhY2UoL1tcdF0vZywiXFx0IikucmVwbGFjZSgvW1x2XS9nLCJcXHYiKS5yZXBsYWNlKC9bXHJdL2csIlxcciIpOworfSxyZXByTnVtYmVyOmZ1bmN0aW9uKG8peworcmV0dXJuIG8rIiI7Cit9LHJlZ2lzdGVySlNPTjpmdW5jdGlvbihfZTksX2VhLF9lYixfZWMpeworTW9jaGlLaXQuQmFzZS5qc29uUmVnaXN0cnkucmVnaXN0ZXIoX2U5LF9lYSxfZWIsX2VjKTsKK30sZXZhbEpTT046ZnVuY3Rpb24oKXsKK3JldHVybiBldmFsKCIoIitNb2NoaUtpdC5CYXNlLl9maWx0ZXJKU09OKGFyZ3VtZW50c1swXSkrIikiKTsKK30sX2ZpbHRlckpTT046ZnVuY3Rpb24ocyl7Cit2YXIgbT1zLm1hdGNoKC9eXHMqXC9cKiguKilcKlwvXHMqJC8pOworaWYobSl7CityZXR1cm4gbVsxXTsKK30KK3JldHVybiBzOworfSxzZXJpYWxpemVKU09OOmZ1bmN0aW9uKG8pewordmFyIF9mMD10eXBlb2YgKG8pOworaWYoX2YwPT0ibnVtYmVyInx8X2YwPT0iYm9vbGVhbiIpeworcmV0dXJuIG8rIiI7Cit9ZWxzZXsKK2lmKG89PT1udWxsKXsKK3JldHVybiAibnVsbCI7Cit9ZWxzZXsKK2lmKF9mMD09InN0cmluZyIpewordmFyIHJlcz0iIjsKK2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKXsKK3ZhciBjPW8uY2hhckF0KGkpOworaWYoYz09IlwiIil7CityZXMrPSJcXFwiIjsKK31lbHNleworaWYoYz09IlxcIil7CityZXMrPSJcXFxcIjsKK31lbHNleworaWYoYz09IlxiIil7CityZXMrPSJcXGIiOworfWVsc2V7CitpZihjPT0iXGYiKXsKK3Jlcys9IlxcZiI7Cit9ZWxzZXsKK2lmKGM9PSJcbiIpeworcmVzKz0iXFxuIjsKK31lbHNleworaWYoYz09IlxyIil7CityZXMrPSJcXHIiOworfWVsc2V7CitpZihjPT0iXHQiKXsKK3Jlcys9IlxcdCI7Cit9ZWxzZXsKK2lmKG8uY2hhckNvZGVBdChpKTw9MzEpewordmFyIGhleD1vLmNoYXJDb2RlQXQoaSkudG9TdHJpbmcoMTYpOworaWYoaGV4Lmxlbmd0aDwyKXsKK2hleD0iMCIraGV4OworfQorcmVzKz0iXFx1MDAiK2hleC50b1VwcGVyQ2FzZSgpOworfWVsc2V7CityZXMrPWM7Cit9Cit9Cit9Cit9Cit9Cit9Cit9Cit9Cit9CityZXR1cm4gIlwiIityZXMrIlwiIjsKK30KK30KK30KK3ZhciBtZT1hcmd1bWVudHMuY2FsbGVlOwordmFyIF9mNjsKK2lmKHR5cGVvZiAoby5fX2pzb25fXyk9PSJmdW5jdGlvbiIpeworX2Y2PW8uX19qc29uX18oKTsKK2lmKG8hPT1fZjYpeworcmV0dXJuIG1lKF9mNik7Cit9Cit9CitpZih0eXBlb2YgKG8uanNvbik9PSJmdW5jdGlvbiIpeworX2Y2PW8uanNvbigpOworaWYobyE9PV9mNil7CityZXR1cm4gbWUoX2Y2KTsKK30KK30KK2lmKF9mMCE9ImZ1bmN0aW9uIiYmdHlwZW9mIChvLmxlbmd0aCk9PSJudW1iZXIiKXsKK3ZhciByZXM9W107Citmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krKyl7Cit2YXIgdmFsPW1lKG9baV0pOworaWYodHlwZW9mICh2YWwpIT0ic3RyaW5nIil7Citjb250aW51ZTsKK30KK3Jlcy5wdXNoKHZhbCk7Cit9CityZXR1cm4gIlsiK3Jlcy5qb2luKCIsICIpKyJdIjsKK30KK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit0cnl7CitfZjY9bS5qc29uUmVnaXN0cnkubWF0Y2gobyk7CitpZihvIT09X2Y2KXsKK3JldHVybiBtZShfZjYpOworfQorfQorY2F0Y2goZSl7CitpZihlIT1tLk5vdEZvdW5kKXsKK3Rocm93IGU7Cit9Cit9CitpZihfZjA9PSJ1bmRlZmluZWQiKXsKK3Rocm93IG5ldyBUeXBlRXJyb3IoInVuZGVmaW5lZCBjYW4gbm90IGJlIHNlcmlhbGl6ZWQgYXMgSlNPTiIpOworfQoraWYoX2YwPT0iZnVuY3Rpb24iKXsKK3JldHVybiBudWxsOworfQorcmVzPVtdOworZm9yKHZhciBrIGluIG8pewordmFyIF9mYTsKK2lmKHR5cGVvZiAoayk9PSJudW1iZXIiKXsKK19mYT0iXCIiK2srIlwiIjsKK31lbHNleworaWYodHlwZW9mIChrKT09InN0cmluZyIpeworX2ZhPW1lKGspOworfWVsc2V7Citjb250aW51ZTsKK30KK30KK3ZhbD1tZShvW2tdKTsKK2lmKHR5cGVvZiAodmFsKSE9InN0cmluZyIpeworY29udGludWU7Cit9CityZXMucHVzaChfZmErIjoiK3ZhbCk7Cit9CityZXR1cm4gInsiK3Jlcy5qb2luKCIsICIpKyJ9IjsKK30sb2JqRXF1YWw6ZnVuY3Rpb24oYSxiKXsKK3JldHVybiAoTW9jaGlLaXQuQmFzZS5jb21wYXJlKGEsYik9PT0wKTsKK30sYXJyYXlFcXVhbDpmdW5jdGlvbihfZmQsYXJyKXsKK2lmKF9mZC5sZW5ndGghPWFyci5sZW5ndGgpeworcmV0dXJuIGZhbHNlOworfQorcmV0dXJuIChNb2NoaUtpdC5CYXNlLmNvbXBhcmUoX2ZkLGFycik9PT0wKTsKK30sY29uY2F0OmZ1bmN0aW9uKCl7Cit2YXIgX2ZmPVtdOwordmFyIF8xMDA9TW9jaGlLaXQuQmFzZS5leHRlbmQ7Citmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXsKK18xMDAoX2ZmLGFyZ3VtZW50c1tpXSk7Cit9CityZXR1cm4gX2ZmOworfSxrZXlDb21wYXJhdG9yOmZ1bmN0aW9uKGtleSl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIF8xMDQ9bS5jb21wYXJlOworaWYoYXJndW1lbnRzLmxlbmd0aD09MSl7CityZXR1cm4gZnVuY3Rpb24oYSxiKXsKK3JldHVybiBfMTA0KGFba2V5XSxiW2tleV0pOworfTsKK30KK3ZhciBfMTA3PW0uZXh0ZW5kKG51bGwsYXJndW1lbnRzKTsKK3JldHVybiBmdW5jdGlvbihhLGIpewordmFyIHJ2YWw9MDsKK2Zvcih2YXIgaT0wOyhydmFsPT09MCkmJihpPF8xMDcubGVuZ3RoKTtpKyspewordmFyIGtleT1fMTA3W2ldOworcnZhbD1fMTA0KGFba2V5XSxiW2tleV0pOworfQorcmV0dXJuIHJ2YWw7Cit9OworfSxyZXZlcnNlS2V5Q29tcGFyYXRvcjpmdW5jdGlvbihrZXkpewordmFyIF8xMGU9TW9jaGlLaXQuQmFzZS5rZXlDb21wYXJhdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsKK3JldHVybiBmdW5jdGlvbihhLGIpeworcmV0dXJuIF8xMGUoYixhKTsKK307Cit9LHBhcnRpYWw6ZnVuY3Rpb24oZnVuYyl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworcmV0dXJuIG0uYmluZC5hcHBseSh0aGlzLG0uZXh0ZW5kKFtmdW5jLHVuZGVmaW5lZF0sYXJndW1lbnRzLDEpKTsKK30sbGlzdE1pbk1heDpmdW5jdGlvbihfMTEzLGxzdCl7CitpZihsc3QubGVuZ3RoPT09MCl7CityZXR1cm4gbnVsbDsKK30KK3ZhciBjdXI9bHN0WzBdOwordmFyIF8xMTY9TW9jaGlLaXQuQmFzZS5jb21wYXJlOworZm9yKHZhciBpPTE7aTxsc3QubGVuZ3RoO2krKyl7Cit2YXIgbz1sc3RbaV07CitpZihfMTE2KG8sY3VyKT09XzExMyl7CitjdXI9bzsKK30KK30KK3JldHVybiBjdXI7Cit9LG9iak1heDpmdW5jdGlvbigpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UubGlzdE1pbk1heCgxLGFyZ3VtZW50cyk7Cit9LG9iak1pbjpmdW5jdGlvbigpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UubGlzdE1pbk1heCgtMSxhcmd1bWVudHMpOworfSxmaW5kSWRlbnRpY2FsOmZ1bmN0aW9uKGxzdCxfMTFhLF8xMWIsZW5kKXsKK2lmKHR5cGVvZiAoZW5kKT09InVuZGVmaW5lZCJ8fGVuZD09PW51bGwpeworZW5kPWxzdC5sZW5ndGg7Cit9CitpZih0eXBlb2YgKF8xMWIpPT0idW5kZWZpbmVkInx8XzExYj09PW51bGwpeworXzExYj0wOworfQorZm9yKHZhciBpPV8xMWI7aTxlbmQ7aSsrKXsKK2lmKGxzdFtpXT09PV8xMWEpeworcmV0dXJuIGk7Cit9Cit9CityZXR1cm4gLTE7Cit9LG1lYW46ZnVuY3Rpb24oKXsKK3ZhciBzdW09MDsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit2YXIgYXJncz1tLmV4dGVuZChudWxsLGFyZ3VtZW50cyk7Cit2YXIgXzEyMT1hcmdzLmxlbmd0aDsKK3doaWxlKGFyZ3MubGVuZ3RoKXsKK3ZhciBvPWFyZ3Muc2hpZnQoKTsKK2lmKG8mJnR5cGVvZiAobyk9PSJvYmplY3QiJiZ0eXBlb2YgKG8ubGVuZ3RoKT09Im51bWJlciIpeworXzEyMSs9by5sZW5ndGgtMTsKK2Zvcih2YXIgaT1vLmxlbmd0aC0xO2k+PTA7aS0tKXsKK3N1bSs9b1tpXTsKK30KK31lbHNleworc3VtKz1vOworfQorfQoraWYoXzEyMTw9MCl7Cit0aHJvdyBuZXcgVHlwZUVycm9yKCJtZWFuKCkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50Iik7Cit9CityZXR1cm4gc3VtL18xMjE7Cit9LG1lZGlhbjpmdW5jdGlvbigpewordmFyIGRhdGE9TW9jaGlLaXQuQmFzZS5mbGF0dGVuQXJndW1lbnRzKGFyZ3VtZW50cyk7CitpZihkYXRhLmxlbmd0aD09PTApewordGhyb3cgbmV3IFR5cGVFcnJvcigibWVkaWFuKCkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50Iik7Cit9CitkYXRhLnNvcnQoY29tcGFyZSk7CitpZihkYXRhLmxlbmd0aCUyPT0wKXsKK3ZhciBfMTI1PWRhdGEubGVuZ3RoLzI7CityZXR1cm4gKGRhdGFbXzEyNV0rZGF0YVtfMTI1LTFdKS8yOworfWVsc2V7CityZXR1cm4gZGF0YVsoZGF0YS5sZW5ndGgtMSkvMl07Cit9Cit9LGZpbmRWYWx1ZTpmdW5jdGlvbihsc3QsXzEyNyxfMTI4LGVuZCl7CitpZih0eXBlb2YgKGVuZCk9PSJ1bmRlZmluZWQifHxlbmQ9PT1udWxsKXsKK2VuZD1sc3QubGVuZ3RoOworfQoraWYodHlwZW9mIChfMTI4KT09InVuZGVmaW5lZCJ8fF8xMjg9PT1udWxsKXsKK18xMjg9MDsKK30KK3ZhciBjbXA9TW9jaGlLaXQuQmFzZS5jb21wYXJlOworZm9yKHZhciBpPV8xMjg7aTxlbmQ7aSsrKXsKK2lmKGNtcChsc3RbaV0sXzEyNyk9PT0wKXsKK3JldHVybiBpOworfQorfQorcmV0dXJuIC0xOworfSxub2RlV2FsazpmdW5jdGlvbihub2RlLF8xMmQpewordmFyIF8xMmU9W25vZGVdOwordmFyIF8xMmY9TW9jaGlLaXQuQmFzZS5leHRlbmQ7Cit3aGlsZShfMTJlLmxlbmd0aCl7Cit2YXIgcmVzPV8xMmQoXzEyZS5zaGlmdCgpKTsKK2lmKHJlcyl7CitfMTJmKF8xMmUscmVzKTsKK30KK30KK30sbmFtZUZ1bmN0aW9uczpmdW5jdGlvbihfMTMxKXsKK3ZhciBiYXNlPV8xMzEuTkFNRTsKK2lmKHR5cGVvZiAoYmFzZSk9PSJ1bmRlZmluZWQiKXsKK2Jhc2U9IiI7Cit9ZWxzZXsKK2Jhc2U9YmFzZSsiLiI7Cit9Citmb3IodmFyIG5hbWUgaW4gXzEzMSl7Cit2YXIgbz1fMTMxW25hbWVdOworaWYodHlwZW9mIChvKT09ImZ1bmN0aW9uIiYmdHlwZW9mIChvLk5BTUUpPT0idW5kZWZpbmVkIil7Cit0cnl7CitvLk5BTUU9YmFzZStuYW1lOworfQorY2F0Y2goZSl7Cit9Cit9Cit9Cit9LHF1ZXJ5U3RyaW5nOmZ1bmN0aW9uKF8xMzUsXzEzNil7CitpZih0eXBlb2YgKE1vY2hpS2l0LkRPTSkhPSJ1bmRlZmluZWQiJiZhcmd1bWVudHMubGVuZ3RoPT0xJiYodHlwZW9mIChfMTM1KT09InN0cmluZyJ8fCh0eXBlb2YgKF8xMzUubm9kZVR5cGUpIT0idW5kZWZpbmVkIiYmXzEzNS5ub2RlVHlwZT4wKSkpewordmFyIGt2PU1vY2hpS2l0LkRPTS5mb3JtQ29udGVudHMoXzEzNSk7CitfMTM1PWt2WzBdOworXzEzNj1rdlsxXTsKK31lbHNleworaWYoYXJndW1lbnRzLmxlbmd0aD09MSl7CitpZih0eXBlb2YgKF8xMzUubGVuZ3RoKT09Im51bWJlciImJl8xMzUubGVuZ3RoPT0yKXsKK3JldHVybiBhcmd1bWVudHMuY2FsbGVlKF8xMzVbMF0sXzEzNVsxXSk7Cit9Cit2YXIgbz1fMTM1OworXzEzNT1bXTsKK18xMzY9W107Citmb3IodmFyIGsgaW4gbyl7Cit2YXIgdj1vW2tdOworaWYodHlwZW9mICh2KT09ImZ1bmN0aW9uIil7Citjb250aW51ZTsKK31lbHNleworaWYoTW9jaGlLaXQuQmFzZS5pc0FycmF5TGlrZSh2KSl7Citmb3IodmFyIGk9MDtpPHYubGVuZ3RoO2krKyl7CitfMTM1LnB1c2goayk7CitfMTM2LnB1c2godltpXSk7Cit9Cit9ZWxzZXsKK18xMzUucHVzaChrKTsKK18xMzYucHVzaCh2KTsKK30KK30KK30KK30KK30KK3ZhciBydmFsPVtdOwordmFyIGxlbj1NYXRoLm1pbihfMTM1Lmxlbmd0aCxfMTM2Lmxlbmd0aCk7Cit2YXIgXzEzZT1Nb2NoaUtpdC5CYXNlLnVybEVuY29kZTsKK2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7Cit2PV8xMzZbaV07CitpZih0eXBlb2YgKHYpIT0idW5kZWZpbmVkIiYmdiE9PW51bGwpeworcnZhbC5wdXNoKF8xM2UoXzEzNVtpXSkrIj0iK18xM2UodikpOworfQorfQorcmV0dXJuIHJ2YWwuam9pbigiJiIpOworfSxwYXJzZVF1ZXJ5U3RyaW5nOmZ1bmN0aW9uKF8xM2YsXzE0MCl7Cit2YXIgcXN0cj0oXzEzZi5jaGFyQXQoMCk9PSI/Iik/XzEzZi5zdWJzdHJpbmcoMSk6XzEzZjsKK3ZhciBfMTQyPXFzdHIucmVwbGFjZSgvXCsvZywiJTIwIikuc3BsaXQoL1wmYW1wXDt8XCZcIzM4XDt8XCYjeDI2O3xcJi8pOwordmFyIG89e307Cit2YXIgXzE0NDsKK2lmKHR5cGVvZiAoZGVjb2RlVVJJQ29tcG9uZW50KSE9InVuZGVmaW5lZCIpeworXzE0ND1kZWNvZGVVUklDb21wb25lbnQ7Cit9ZWxzZXsKK18xNDQ9dW5lc2NhcGU7Cit9CitpZihfMTQwKXsKK2Zvcih2YXIgaT0wO2k8XzE0Mi5sZW5ndGg7aSsrKXsKK3ZhciBwYWlyPV8xNDJbaV0uc3BsaXQoIj0iKTsKK3ZhciBuYW1lPV8xNDQocGFpci5zaGlmdCgpKTsKK2lmKCFuYW1lKXsKK2NvbnRpbnVlOworfQordmFyIGFycj1vW25hbWVdOworaWYoIShhcnIgaW5zdGFuY2VvZiBBcnJheSkpeworYXJyPVtdOworb1tuYW1lXT1hcnI7Cit9CithcnIucHVzaChfMTQ0KHBhaXIuam9pbigiPSIpKSk7Cit9Cit9ZWxzZXsKK2ZvcihpPTA7aTxfMTQyLmxlbmd0aDtpKyspeworcGFpcj1fMTQyW2ldLnNwbGl0KCI9Iik7Cit2YXIgbmFtZT1wYWlyLnNoaWZ0KCk7CitpZighbmFtZSl7Citjb250aW51ZTsKK30KK29bXzE0NChuYW1lKV09XzE0NChwYWlyLmpvaW4oIj0iKSk7Cit9Cit9CityZXR1cm4gbzsKK319KTsKK01vY2hpS2l0LkJhc2UuQWRhcHRlclJlZ2lzdHJ5PWZ1bmN0aW9uKCl7Cit0aGlzLnBhaXJzPVtdOworfTsKK01vY2hpS2l0LkJhc2UuQWRhcHRlclJlZ2lzdHJ5LnByb3RvdHlwZT17cmVnaXN0ZXI6ZnVuY3Rpb24obmFtZSxfMTRhLHdyYXAsXzE0Yyl7CitpZihfMTRjKXsKK3RoaXMucGFpcnMudW5zaGlmdChbbmFtZSxfMTRhLHdyYXBdKTsKK31lbHNlewordGhpcy5wYWlycy5wdXNoKFtuYW1lLF8xNGEsd3JhcF0pOworfQorfSxtYXRjaDpmdW5jdGlvbigpeworZm9yKHZhciBpPTA7aTx0aGlzLnBhaXJzLmxlbmd0aDtpKyspewordmFyIHBhaXI9dGhpcy5wYWlyc1tpXTsKK2lmKHBhaXJbMV0uYXBwbHkodGhpcyxhcmd1bWVudHMpKXsKK3JldHVybiBwYWlyWzJdLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsKK30KK30KK3Rocm93IE1vY2hpS2l0LkJhc2UuTm90Rm91bmQ7Cit9LHVucmVnaXN0ZXI6ZnVuY3Rpb24obmFtZSl7Citmb3IodmFyIGk9MDtpPHRoaXMucGFpcnMubGVuZ3RoO2krKyl7Cit2YXIgcGFpcj10aGlzLnBhaXJzW2ldOworaWYocGFpclswXT09bmFtZSl7Cit0aGlzLnBhaXJzLnNwbGljZShpLDEpOworcmV0dXJuIHRydWU7Cit9Cit9CityZXR1cm4gZmFsc2U7Cit9fTsKK01vY2hpS2l0LkJhc2UuRVhQT1JUPVsiZmxhdHRlbkFycmF5Iiwibm9vcCIsImNhbWVsaXplIiwiY291bnRlciIsImNsb25lIiwiZXh0ZW5kIiwidXBkYXRlIiwidXBkYXRldHJlZSIsInNldGRlZmF1bHQiLCJrZXlzIiwidmFsdWVzIiwiaXRlbXMiLCJOYW1lZEVycm9yIiwib3BlcmF0b3IiLCJmb3J3YXJkQ2FsbCIsIml0ZW1nZXR0ZXIiLCJ0eXBlTWF0Y2hlciIsImlzQ2FsbGFibGUiLCJpc1VuZGVmaW5lZCIsImlzVW5kZWZpbmVkT3JOdWxsIiwiaXNOdWxsIiwiaXNFbXB0eSIsImlzTm90RW1wdHkiLCJpc0FycmF5TGlrZSIsImlzRGF0ZUxpa2UiLCJ4bWFwIiwibWFwIiwieGZpbHRlciIsImZpbHRlciIsIm1ldGhvZGNhbGxlciIsImNvbXBvc2UiLCJiaW5kIiwiYmluZExhdGUiLCJiaW5kTWV0aG9kcyIsIk5vdEZvdW5kIiwiQWRhcHRlclJlZ2lzdHJ5IiwicmVnaXN0ZXJDb21wYXJhdG9yIiwiY29tcGFyZSIsInJlZ2lzdGVyUmVwciIsInJlcHIiLCJvYmpFcXVhbCIsImFycmF5RXF1YWwiLCJjb25jYXQiLCJrZXlDb21wYXJhdG9yIiwicmV2ZXJzZUtleUNvbXBhcmF0b3IiLCJwYXJ0aWFsIiwibWVyZ2UiLCJsaXN0TWluTWF4IiwibGlzdE1heCIsImxpc3RNaW4iLCJvYmpNYXgiLCJvYmpNaW4iLCJub2RlV2FsayIsInppcCIsInVybEVuY29kZSIsInF1ZXJ5U3RyaW5nIiwic2VyaWFsaXplSlNPTiIsInJlZ2lzdGVySlNPTiIsImV2YWxKU09OIiwicGFyc2VRdWVyeVN0cmluZyIsImZpbmRWYWx1ZSIsImZpbmRJZGVudGljYWwiLCJmbGF0dGVuQXJndW1lbnRzIiwibWV0aG9kIiwiYXZlcmFnZSIsIm1lYW4iLCJtZWRpYW4iXTsKK01vY2hpS2l0LkJhc2UuRVhQT1JUX09LPVsibmFtZUZ1bmN0aW9ucyIsImNvbXBhcmF0b3JSZWdpc3RyeSIsInJlcHJSZWdpc3RyeSIsImpzb25SZWdpc3RyeSIsImNvbXBhcmVEYXRlTGlrZSIsImNvbXBhcmVBcnJheUxpa2UiLCJyZXByQXJyYXlMaWtlIiwicmVwclN0cmluZyIsInJlcHJOdW1iZXIiXTsKK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHM9ZnVuY3Rpb24oXzE1MixfMTUzKXsKK2lmKCFNb2NoaUtpdC5fX2V4cG9ydF9fKXsKK3JldHVybjsKK30KK3ZhciBhbGw9XzE1My5FWFBPUlRfVEFHU1siOmFsbCJdOworZm9yKHZhciBpPTA7aTxhbGwubGVuZ3RoO2krKyl7CitfMTUyW2FsbFtpXV09XzE1M1thbGxbaV1dOworfQorfTsKK01vY2hpS2l0LkJhc2UuX19uZXdfXz1mdW5jdGlvbigpewordmFyIG09dGhpczsKK20ubm9vcD1tLm9wZXJhdG9yLmlkZW50aXR5OworbS5mb3J3YXJkPW0uZm9yd2FyZENhbGw7CittLmZpbmQ9bS5maW5kVmFsdWU7CitpZih0eXBlb2YgKGVuY29kZVVSSUNvbXBvbmVudCkhPSJ1bmRlZmluZWQiKXsKK20udXJsRW5jb2RlPWZ1bmN0aW9uKF8xNTcpeworcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChfMTU3KS5yZXBsYWNlKC9cJy9nLCIlMjciKTsKK307Cit9ZWxzZXsKK20udXJsRW5jb2RlPWZ1bmN0aW9uKF8xNTgpeworcmV0dXJuIGVzY2FwZShfMTU4KS5yZXBsYWNlKC9cKy9nLCIlMkIiKS5yZXBsYWNlKC9cIi9nLCIlMjIiKS5ydmFsLnJlcGxhY2UoL1wnL2csIiUyNyIpOworfTsKK30KK20uTmFtZWRFcnJvcj1mdW5jdGlvbihuYW1lKXsKK3RoaXMubWVzc2FnZT1uYW1lOwordGhpcy5uYW1lPW5hbWU7Cit9OworbS5OYW1lZEVycm9yLnByb3RvdHlwZT1uZXcgRXJyb3IoKTsKK20udXBkYXRlKG0uTmFtZWRFcnJvci5wcm90b3R5cGUse3JlcHI6ZnVuY3Rpb24oKXsKK2lmKHRoaXMubWVzc2FnZSYmdGhpcy5tZXNzYWdlIT10aGlzLm5hbWUpeworcmV0dXJuIHRoaXMubmFtZSsiKCIrbS5yZXByKHRoaXMubWVzc2FnZSkrIikiOworfWVsc2V7CityZXR1cm4gdGhpcy5uYW1lKyIoKSI7Cit9Cit9LHRvU3RyaW5nOm0uZm9yd2FyZENhbGwoInJlcHIiKX0pOworbS5Ob3RGb3VuZD1uZXcgbS5OYW1lZEVycm9yKCJNb2NoaUtpdC5CYXNlLk5vdEZvdW5kIik7CittLmxpc3RNYXg9bS5wYXJ0aWFsKG0ubGlzdE1pbk1heCwxKTsKK20ubGlzdE1pbj1tLnBhcnRpYWwobS5saXN0TWluTWF4LC0xKTsKK20uaXNDYWxsYWJsZT1tLnR5cGVNYXRjaGVyKCJmdW5jdGlvbiIpOworbS5pc1VuZGVmaW5lZD1tLnR5cGVNYXRjaGVyKCJ1bmRlZmluZWQiKTsKK20ubWVyZ2U9bS5wYXJ0aWFsKG0udXBkYXRlLG51bGwpOworbS56aXA9bS5wYXJ0aWFsKG0ubWFwLG51bGwpOworbS5hdmVyYWdlPW0ubWVhbjsKK20uY29tcGFyYXRvclJlZ2lzdHJ5PW5ldyBtLkFkYXB0ZXJSZWdpc3RyeSgpOworbS5yZWdpc3RlckNvbXBhcmF0b3IoImRhdGVMaWtlIixtLmlzRGF0ZUxpa2UsbS5jb21wYXJlRGF0ZUxpa2UpOworbS5yZWdpc3RlckNvbXBhcmF0b3IoImFycmF5TGlrZSIsbS5pc0FycmF5TGlrZSxtLmNvbXBhcmVBcnJheUxpa2UpOworbS5yZXByUmVnaXN0cnk9bmV3IG0uQWRhcHRlclJlZ2lzdHJ5KCk7CittLnJlZ2lzdGVyUmVwcigiYXJyYXlMaWtlIixtLmlzQXJyYXlMaWtlLG0ucmVwckFycmF5TGlrZSk7CittLnJlZ2lzdGVyUmVwcigic3RyaW5nIixtLnR5cGVNYXRjaGVyKCJzdHJpbmciKSxtLnJlcHJTdHJpbmcpOworbS5yZWdpc3RlclJlcHIoIm51bWJlcnMiLG0udHlwZU1hdGNoZXIoIm51bWJlciIsImJvb2xlYW4iKSxtLnJlcHJOdW1iZXIpOworbS5qc29uUmVnaXN0cnk9bmV3IG0uQWRhcHRlclJlZ2lzdHJ5KCk7Cit2YXIgYWxsPW0uY29uY2F0KG0uRVhQT1JULG0uRVhQT1JUX09LKTsKK20uRVhQT1JUX1RBR1M9eyI6Y29tbW9uIjptLmNvbmNhdChtLkVYUE9SVF9PSyksIjphbGwiOmFsbH07CittLm5hbWVGdW5jdGlvbnModGhpcyk7Cit9OworTW9jaGlLaXQuQmFzZS5fX25ld19fKCk7CitpZihNb2NoaUtpdC5fX2V4cG9ydF9fKXsKK2NvbXBhcmU9TW9jaGlLaXQuQmFzZS5jb21wYXJlOworY29tcG9zZT1Nb2NoaUtpdC5CYXNlLmNvbXBvc2U7CitzZXJpYWxpemVKU09OPU1vY2hpS2l0LkJhc2Uuc2VyaWFsaXplSlNPTjsKK21lYW49TW9jaGlLaXQuQmFzZS5tZWFuOworbWVkaWFuPU1vY2hpS2l0LkJhc2UubWVkaWFuOworfQorTW9jaGlLaXQuQmFzZS5fZXhwb3J0U3ltYm9scyh0aGlzLE1vY2hpS2l0LkJhc2UpOworTW9jaGlLaXQuQmFzZS5fZGVwcygiSXRlciIsWyJCYXNlIl0pOworTW9jaGlLaXQuSXRlci5OQU1FPSJNb2NoaUtpdC5JdGVyIjsKK01vY2hpS2l0Lkl0ZXIuVkVSU0lPTj0iMS40LjIiOworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuSXRlcix7X19yZXByX186ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfSx0b1N0cmluZzpmdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK30scmVnaXN0ZXJJdGVyYXRvckZhY3Rvcnk6ZnVuY3Rpb24obmFtZSxfMTVjLF8xNWQsXzE1ZSl7CitNb2NoaUtpdC5JdGVyLml0ZXJhdG9yUmVnaXN0cnkucmVnaXN0ZXIobmFtZSxfMTVjLF8xNWQsXzE1ZSk7Cit9LGlzSXRlcmFibGU6ZnVuY3Rpb24obyl7CityZXR1cm4gbyE9bnVsbCYmKHR5cGVvZiAoby5uZXh0KT09ImZ1bmN0aW9uInx8dHlwZW9mIChvLml0ZXIpPT0iZnVuY3Rpb24iKTsKK30saXRlcjpmdW5jdGlvbihfMTYwLF8xNjEpewordmFyIHNlbGY9TW9jaGlLaXQuSXRlcjsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PTIpeworcmV0dXJuIHNlbGYudGFrZXdoaWxlKGZ1bmN0aW9uKGEpeworcmV0dXJuIGEhPV8xNjE7Cit9LF8xNjApOworfQoraWYodHlwZW9mIChfMTYwLm5leHQpPT0iZnVuY3Rpb24iKXsKK3JldHVybiBfMTYwOworfWVsc2V7CitpZih0eXBlb2YgKF8xNjAuaXRlcik9PSJmdW5jdGlvbiIpeworcmV0dXJuIF8xNjAuaXRlcigpOworfQorfQordHJ5eworcmV0dXJuIHNlbGYuaXRlcmF0b3JSZWdpc3RyeS5tYXRjaChfMTYwKTsKK30KK2NhdGNoKGUpewordmFyIG09TW9jaGlLaXQuQmFzZTsKK2lmKGU9PW0uTm90Rm91bmQpeworZT1uZXcgVHlwZUVycm9yKHR5cGVvZiAoXzE2MCkrIjogIittLnJlcHIoXzE2MCkrIiBpcyBub3QgaXRlcmFibGUiKTsKK30KK3Rocm93IGU7Cit9Cit9LGNvdW50OmZ1bmN0aW9uKG4peworaWYoIW4peworbj0wOworfQordmFyIG09TW9jaGlLaXQuQmFzZTsKK3JldHVybiB7cmVwcjpmdW5jdGlvbigpeworcmV0dXJuICJjb3VudCgiK24rIikiOworfSx0b1N0cmluZzptLmZvcndhcmRDYWxsKCJyZXByIiksbmV4dDptLmNvdW50ZXIobil9OworfSxjeWNsZTpmdW5jdGlvbihwKXsKK3ZhciBzZWxmPU1vY2hpS2l0Lkl0ZXI7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIGxzdD1bXTsKK3ZhciBfMTZiPXNlbGYuaXRlcihwKTsKK3JldHVybiB7cmVwcjpmdW5jdGlvbigpeworcmV0dXJuICJjeWNsZSguLi4pIjsKK30sdG9TdHJpbmc6bS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3RyeXsKK3ZhciBydmFsPV8xNmIubmV4dCgpOworbHN0LnB1c2gocnZhbCk7CityZXR1cm4gcnZhbDsKK30KK2NhdGNoKGUpeworaWYoZSE9c2VsZi5TdG9wSXRlcmF0aW9uKXsKK3Rocm93IGU7Cit9CitpZihsc3QubGVuZ3RoPT09MCl7Cit0aGlzLm5leHQ9ZnVuY3Rpb24oKXsKK3Rocm93IHNlbGYuU3RvcEl0ZXJhdGlvbjsKK307Cit9ZWxzZXsKK3ZhciBpPS0xOwordGhpcy5uZXh0PWZ1bmN0aW9uKCl7CitpPShpKzEpJWxzdC5sZW5ndGg7CityZXR1cm4gbHN0W2ldOworfTsKK30KK3JldHVybiB0aGlzLm5leHQoKTsKK30KK319OworfSxyZXBlYXQ6ZnVuY3Rpb24oZWxlbSxuKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CitpZih0eXBlb2YgKG4pPT0idW5kZWZpbmVkIil7CityZXR1cm4ge3JlcHI6ZnVuY3Rpb24oKXsKK3JldHVybiAicmVwZWF0KCIrbS5yZXByKGVsZW0pKyIpIjsKK30sdG9TdHJpbmc6bS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3JldHVybiBlbGVtOworfX07Cit9CityZXR1cm4ge3JlcHI6ZnVuY3Rpb24oKXsKK3JldHVybiAicmVwZWF0KCIrbS5yZXByKGVsZW0pKyIsICIrbisiKSI7Cit9LHRvU3RyaW5nOm0uZm9yd2FyZENhbGwoInJlcHIiKSxuZXh0OmZ1bmN0aW9uKCl7CitpZihuPD0wKXsKK3Rocm93IE1vY2hpS2l0Lkl0ZXIuU3RvcEl0ZXJhdGlvbjsKK30KK24tPTE7CityZXR1cm4gZWxlbTsKK319OworfSxuZXh0OmZ1bmN0aW9uKF8xNzEpeworcmV0dXJuIF8xNzEubmV4dCgpOworfSxpemlwOmZ1bmN0aW9uKHAscSl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIHNlbGY9TW9jaGlLaXQuSXRlcjsKK3ZhciBuZXh0PXNlbGYubmV4dDsKK3ZhciBfMTc3PW0ubWFwKHNlbGYuaXRlcixhcmd1bWVudHMpOworcmV0dXJuIHtyZXByOmZ1bmN0aW9uKCl7CityZXR1cm4gIml6aXAoLi4uKSI7Cit9LHRvU3RyaW5nOm0uZm9yd2FyZENhbGwoInJlcHIiKSxuZXh0OmZ1bmN0aW9uKCl7CityZXR1cm4gbS5tYXAobmV4dCxfMTc3KTsKK319OworfSxpZmlsdGVyOmZ1bmN0aW9uKHByZWQsc2VxKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CitzZXE9TW9jaGlLaXQuSXRlci5pdGVyKHNlcSk7CitpZihwcmVkPT09bnVsbCl7CitwcmVkPW0ub3BlcmF0b3IudHJ1dGg7Cit9CityZXR1cm4ge3JlcHI6ZnVuY3Rpb24oKXsKK3JldHVybiAiaWZpbHRlciguLi4pIjsKK30sdG9TdHJpbmc6bS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3doaWxlKHRydWUpewordmFyIHJ2YWw9c2VxLm5leHQoKTsKK2lmKHByZWQocnZhbCkpeworcmV0dXJuIHJ2YWw7Cit9Cit9CityZXR1cm4gdW5kZWZpbmVkOworfX07Cit9LGlmaWx0ZXJmYWxzZTpmdW5jdGlvbihwcmVkLHNlcSl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworc2VxPU1vY2hpS2l0Lkl0ZXIuaXRlcihzZXEpOworaWYocHJlZD09PW51bGwpeworcHJlZD1tLm9wZXJhdG9yLnRydXRoOworfQorcmV0dXJuIHtyZXByOmZ1bmN0aW9uKCl7CityZXR1cm4gImlmaWx0ZXJmYWxzZSguLi4pIjsKK30sdG9TdHJpbmc6bS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3doaWxlKHRydWUpewordmFyIHJ2YWw9c2VxLm5leHQoKTsKK2lmKCFwcmVkKHJ2YWwpKXsKK3JldHVybiBydmFsOworfQorfQorcmV0dXJuIHVuZGVmaW5lZDsKK319OworfSxpc2xpY2U6ZnVuY3Rpb24oc2VxKXsKK3ZhciBzZWxmPU1vY2hpS2l0Lkl0ZXI7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworc2VxPXNlbGYuaXRlcihzZXEpOwordmFyIF8xODM9MDsKK3ZhciBzdG9wPTA7Cit2YXIgc3RlcD0xOwordmFyIGk9LTE7CitpZihhcmd1bWVudHMubGVuZ3RoPT0yKXsKK3N0b3A9YXJndW1lbnRzWzFdOworfWVsc2V7CitpZihhcmd1bWVudHMubGVuZ3RoPT0zKXsKK18xODM9YXJndW1lbnRzWzFdOworc3RvcD1hcmd1bWVudHNbMl07Cit9ZWxzZXsKK18xODM9YXJndW1lbnRzWzFdOworc3RvcD1hcmd1bWVudHNbMl07CitzdGVwPWFyZ3VtZW50c1szXTsKK30KK30KK3JldHVybiB7cmVwcjpmdW5jdGlvbigpeworcmV0dXJuICJpc2xpY2UoIitbIi4uLiIsXzE4MyxzdG9wLHN0ZXBdLmpvaW4oIiwgIikrIikiOworfSx0b1N0cmluZzptLmZvcndhcmRDYWxsKCJyZXByIiksbmV4dDpmdW5jdGlvbigpewordmFyIHJ2YWw7Cit3aGlsZShpPF8xODMpeworcnZhbD1zZXEubmV4dCgpOworaSsrOworfQoraWYoXzE4Mz49c3RvcCl7Cit0aHJvdyBzZWxmLlN0b3BJdGVyYXRpb247Cit9CitfMTgzKz1zdGVwOworcmV0dXJuIHJ2YWw7Cit9fTsKK30saW1hcDpmdW5jdGlvbihmdW4scCxxKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit2YXIgc2VsZj1Nb2NoaUtpdC5JdGVyOwordmFyIF8xOGQ9bS5tYXAoc2VsZi5pdGVyLG0uZXh0ZW5kKG51bGwsYXJndW1lbnRzLDEpKTsKK3ZhciBtYXA9bS5tYXA7Cit2YXIgbmV4dD1zZWxmLm5leHQ7CityZXR1cm4ge3JlcHI6ZnVuY3Rpb24oKXsKK3JldHVybiAiaW1hcCguLi4pIjsKK30sdG9TdHJpbmc6bS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3JldHVybiBmdW4uYXBwbHkodGhpcyxtYXAobmV4dCxfMThkKSk7Cit9fTsKK30sYXBwbHltYXA6ZnVuY3Rpb24oZnVuLHNlcSxzZWxmKXsKK3NlcT1Nb2NoaUtpdC5JdGVyLml0ZXIoc2VxKTsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CityZXR1cm4ge3JlcHI6ZnVuY3Rpb24oKXsKK3JldHVybiAiYXBwbHltYXAoLi4uKSI7Cit9LHRvU3RyaW5nOm0uZm9yd2FyZENhbGwoInJlcHIiKSxuZXh0OmZ1bmN0aW9uKCl7CityZXR1cm4gZnVuLmFwcGx5KHNlbGYsc2VxLm5leHQoKSk7Cit9fTsKK30sY2hhaW46ZnVuY3Rpb24ocCxxKXsKK3ZhciBzZWxmPU1vY2hpS2l0Lkl0ZXI7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworaWYoYXJndW1lbnRzLmxlbmd0aD09MSl7CityZXR1cm4gc2VsZi5pdGVyKGFyZ3VtZW50c1swXSk7Cit9Cit2YXIgXzE5OD1tLm1hcChzZWxmLml0ZXIsYXJndW1lbnRzKTsKK3JldHVybiB7cmVwcjpmdW5jdGlvbigpeworcmV0dXJuICJjaGFpbiguLi4pIjsKK30sdG9TdHJpbmc6bS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3doaWxlKF8xOTgubGVuZ3RoPjEpewordHJ5ewordmFyIF8xOTk9XzE5OFswXS5uZXh0KCk7CityZXR1cm4gXzE5OTsKK30KK2NhdGNoKGUpeworaWYoZSE9c2VsZi5TdG9wSXRlcmF0aW9uKXsKK3Rocm93IGU7Cit9CitfMTk4LnNoaWZ0KCk7Cit2YXIgXzE5OT1fMTk4WzBdLm5leHQoKTsKK3JldHVybiBfMTk5OworfQorfQoraWYoXzE5OC5sZW5ndGg9PTEpewordmFyIGFyZz1fMTk4LnNoaWZ0KCk7Cit0aGlzLm5leHQ9bS5iaW5kKCJuZXh0IixhcmcpOworcmV0dXJuIHRoaXMubmV4dCgpOworfQordGhyb3cgc2VsZi5TdG9wSXRlcmF0aW9uOworfX07Cit9LHRha2V3aGlsZTpmdW5jdGlvbihwcmVkLHNlcSl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5JdGVyOworc2VxPXNlbGYuaXRlcihzZXEpOworcmV0dXJuIHtyZXByOmZ1bmN0aW9uKCl7CityZXR1cm4gInRha2V3aGlsZSguLi4pIjsKK30sdG9TdHJpbmc6TW9jaGlLaXQuQmFzZS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3ZhciBydmFsPXNlcS5uZXh0KCk7CitpZighcHJlZChydmFsKSl7Cit0aGlzLm5leHQ9ZnVuY3Rpb24oKXsKK3Rocm93IHNlbGYuU3RvcEl0ZXJhdGlvbjsKK307Cit0aGlzLm5leHQoKTsKK30KK3JldHVybiBydmFsOworfX07Cit9LGRyb3B3aGlsZTpmdW5jdGlvbihwcmVkLHNlcSl7CitzZXE9TW9jaGlLaXQuSXRlci5pdGVyKHNlcSk7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIGJpbmQ9bS5iaW5kOworcmV0dXJuIHsicmVwciI6ZnVuY3Rpb24oKXsKK3JldHVybiAiZHJvcHdoaWxlKC4uLikiOworfSwidG9TdHJpbmciOm0uZm9yd2FyZENhbGwoInJlcHIiKSwibmV4dCI6ZnVuY3Rpb24oKXsKK3doaWxlKHRydWUpewordmFyIHJ2YWw9c2VxLm5leHQoKTsKK2lmKCFwcmVkKHJ2YWwpKXsKK2JyZWFrOworfQorfQordGhpcy5uZXh0PWJpbmQoIm5leHQiLHNlcSk7CityZXR1cm4gcnZhbDsKK319OworfSxfdGVlOmZ1bmN0aW9uKF8xYTQsc3luYyxfMWE2KXsKK3N5bmMucG9zW18xYTRdPS0xOwordmFyIG09TW9jaGlLaXQuQmFzZTsKK3ZhciBfMWE4PW0ubGlzdE1pbjsKK3JldHVybiB7cmVwcjpmdW5jdGlvbigpeworcmV0dXJuICJ0ZWUoIitfMWE0KyIsIC4uLikiOworfSx0b1N0cmluZzptLmZvcndhcmRDYWxsKCJyZXByIiksbmV4dDpmdW5jdGlvbigpewordmFyIHJ2YWw7Cit2YXIgaT1zeW5jLnBvc1tfMWE0XTsKK2lmKGk9PXN5bmMubWF4KXsKK3J2YWw9XzFhNi5uZXh0KCk7CitzeW5jLmRlcXVlLnB1c2gocnZhbCk7CitzeW5jLm1heCs9MTsKK3N5bmMucG9zW18xYTRdKz0xOworfWVsc2V7CitydmFsPXN5bmMuZGVxdWVbaS1zeW5jLm1pbl07CitzeW5jLnBvc1tfMWE0XSs9MTsKK2lmKGk9PXN5bmMubWluJiZfMWE4KHN5bmMucG9zKSE9c3luYy5taW4peworc3luYy5taW4rPTE7CitzeW5jLmRlcXVlLnNoaWZ0KCk7Cit9Cit9CityZXR1cm4gcnZhbDsKK319OworfSx0ZWU6ZnVuY3Rpb24oXzFhYixuKXsKK3ZhciBydmFsPVtdOwordmFyIHN5bmM9eyJwb3MiOltdLCJkZXF1ZSI6W10sIm1heCI6LTEsIm1pbiI6LTF9OworaWYoYXJndW1lbnRzLmxlbmd0aD09MXx8dHlwZW9mIChuKT09InVuZGVmaW5lZCJ8fG49PT1udWxsKXsKK249MjsKK30KK3ZhciBzZWxmPU1vY2hpS2l0Lkl0ZXI7CitfMWFiPXNlbGYuaXRlcihfMWFiKTsKK3ZhciBfdGVlPXNlbGYuX3RlZTsKK2Zvcih2YXIgaT0wO2k8bjtpKyspeworcnZhbC5wdXNoKF90ZWUoaSxzeW5jLF8xYWIpKTsKK30KK3JldHVybiBydmFsOworfSxsaXN0OmZ1bmN0aW9uKF8xYjIpewordmFyIHJ2YWw7CitpZihfMWIyIGluc3RhbmNlb2YgQXJyYXkpeworcmV0dXJuIF8xYjIuc2xpY2UoKTsKK30KK2lmKHR5cGVvZiAoXzFiMik9PSJmdW5jdGlvbiImJiEoXzFiMiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSYmdHlwZW9mIChfMWIyLmxlbmd0aCk9PSJudW1iZXIiKXsKK3J2YWw9W107Citmb3IodmFyIGk9MDtpPF8xYjIubGVuZ3RoO2krKyl7CitydmFsLnB1c2goXzFiMltpXSk7Cit9CityZXR1cm4gcnZhbDsKK30KK3ZhciBzZWxmPU1vY2hpS2l0Lkl0ZXI7CitfMWIyPXNlbGYuaXRlcihfMWIyKTsKK3ZhciBydmFsPVtdOwordmFyIF8xYjY7Cit0cnl7Cit3aGlsZSh0cnVlKXsKK18xYjY9XzFiMi5uZXh0KCk7CitydmFsLnB1c2goXzFiNik7Cit9Cit9CitjYXRjaChlKXsKK2lmKGUhPXNlbGYuU3RvcEl0ZXJhdGlvbil7Cit0aHJvdyBlOworfQorcmV0dXJuIHJ2YWw7Cit9CityZXR1cm4gdW5kZWZpbmVkOworfSxyZWR1Y2U6ZnVuY3Rpb24oZm4sXzFiOCxfMWI5KXsKK3ZhciBpPTA7Cit2YXIgeD1fMWI5OwordmFyIHNlbGY9TW9jaGlLaXQuSXRlcjsKK18xYjg9c2VsZi5pdGVyKF8xYjgpOworaWYoYXJndW1lbnRzLmxlbmd0aDwzKXsKK3RyeXsKK3g9XzFiOC5uZXh0KCk7Cit9CitjYXRjaChlKXsKK2lmKGU9PXNlbGYuU3RvcEl0ZXJhdGlvbil7CitlPW5ldyBUeXBlRXJyb3IoInJlZHVjZSgpIG9mIGVtcHR5IHNlcXVlbmNlIHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpOworfQordGhyb3cgZTsKK30KK2krKzsKK30KK3RyeXsKK3doaWxlKHRydWUpeworeD1mbih4LF8xYjgubmV4dCgpKTsKK30KK30KK2NhdGNoKGUpeworaWYoZSE9c2VsZi5TdG9wSXRlcmF0aW9uKXsKK3Rocm93IGU7Cit9Cit9CityZXR1cm4geDsKK30scmFuZ2U6ZnVuY3Rpb24oKXsKK3ZhciBfMWJkPTA7Cit2YXIgc3RvcD0wOwordmFyIHN0ZXA9MTsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpeworc3RvcD1hcmd1bWVudHNbMF07Cit9ZWxzZXsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PTIpeworXzFiZD1hcmd1bWVudHNbMF07CitzdG9wPWFyZ3VtZW50c1sxXTsKK31lbHNleworaWYoYXJndW1lbnRzLmxlbmd0aD09Myl7CitfMWJkPWFyZ3VtZW50c1swXTsKK3N0b3A9YXJndW1lbnRzWzFdOworc3RlcD1hcmd1bWVudHNbMl07Cit9ZWxzZXsKK3Rocm93IG5ldyBUeXBlRXJyb3IoInJhbmdlKCkgdGFrZXMgMSwgMiwgb3IgMyBhcmd1bWVudHMhIik7Cit9Cit9Cit9CitpZihzdGVwPT09MCl7Cit0aHJvdyBuZXcgVHlwZUVycm9yKCJyYW5nZSgpIHN0ZXAgbXVzdCBub3QgYmUgMCIpOworfQorcmV0dXJuIHtuZXh0OmZ1bmN0aW9uKCl7CitpZigoc3RlcD4wJiZfMWJkPj1zdG9wKXx8KHN0ZXA8MCYmXzFiZDw9c3RvcCkpewordGhyb3cgTW9jaGlLaXQuSXRlci5TdG9wSXRlcmF0aW9uOworfQordmFyIHJ2YWw9XzFiZDsKK18xYmQrPXN0ZXA7CityZXR1cm4gcnZhbDsKK30scmVwcjpmdW5jdGlvbigpeworcmV0dXJuICJyYW5nZSgiK1tfMWJkLHN0b3Asc3RlcF0uam9pbigiLCAiKSsiKSI7Cit9LHRvU3RyaW5nOk1vY2hpS2l0LkJhc2UuZm9yd2FyZENhbGwoInJlcHIiKX07Cit9LHN1bTpmdW5jdGlvbihfMWMxLF8xYzIpeworaWYodHlwZW9mIChfMWMyKT09InVuZGVmaW5lZCJ8fF8xYzI9PT1udWxsKXsKK18xYzI9MDsKK30KK3ZhciB4PV8xYzI7Cit2YXIgc2VsZj1Nb2NoaUtpdC5JdGVyOworXzFjMT1zZWxmLml0ZXIoXzFjMSk7Cit0cnl7Cit3aGlsZSh0cnVlKXsKK3grPV8xYzEubmV4dCgpOworfQorfQorY2F0Y2goZSl7CitpZihlIT1zZWxmLlN0b3BJdGVyYXRpb24pewordGhyb3cgZTsKK30KK30KK3JldHVybiB4OworfSxleGhhdXN0OmZ1bmN0aW9uKF8xYzUpewordmFyIHNlbGY9TW9jaGlLaXQuSXRlcjsKK18xYzU9c2VsZi5pdGVyKF8xYzUpOwordHJ5eword2hpbGUodHJ1ZSl7CitfMWM1Lm5leHQoKTsKK30KK30KK2NhdGNoKGUpeworaWYoZSE9c2VsZi5TdG9wSXRlcmF0aW9uKXsKK3Rocm93IGU7Cit9Cit9Cit9LGZvckVhY2g6ZnVuY3Rpb24oXzFjNyxmdW5jLG9iail7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIHNlbGY9TW9jaGlLaXQuSXRlcjsKK2lmKGFyZ3VtZW50cy5sZW5ndGg+Mil7CitmdW5jPW0uYmluZChmdW5jLG9iaik7Cit9CitpZihtLmlzQXJyYXlMaWtlKF8xYzcpJiYhc2VsZi5pc0l0ZXJhYmxlKF8xYzcpKXsKK3RyeXsKK2Zvcih2YXIgaT0wO2k8XzFjNy5sZW5ndGg7aSsrKXsKK2Z1bmMoXzFjN1tpXSk7Cit9Cit9CitjYXRjaChlKXsKK2lmKGUhPXNlbGYuU3RvcEl0ZXJhdGlvbil7Cit0aHJvdyBlOworfQorfQorfWVsc2V7CitzZWxmLmV4aGF1c3Qoc2VsZi5pbWFwKGZ1bmMsXzFjNykpOworfQorfSxldmVyeTpmdW5jdGlvbihfMWNkLGZ1bmMpewordmFyIHNlbGY9TW9jaGlLaXQuSXRlcjsKK3RyeXsKK3NlbGYuaWZpbHRlcmZhbHNlKGZ1bmMsXzFjZCkubmV4dCgpOworcmV0dXJuIGZhbHNlOworfQorY2F0Y2goZSl7CitpZihlIT1zZWxmLlN0b3BJdGVyYXRpb24pewordGhyb3cgZTsKK30KK3JldHVybiB0cnVlOworfQorfSxzb3J0ZWQ6ZnVuY3Rpb24oXzFkMCxjbXApewordmFyIHJ2YWw9TW9jaGlLaXQuSXRlci5saXN0KF8xZDApOworaWYoYXJndW1lbnRzLmxlbmd0aD09MSl7CitjbXA9TW9jaGlLaXQuQmFzZS5jb21wYXJlOworfQorcnZhbC5zb3J0KGNtcCk7CityZXR1cm4gcnZhbDsKK30scmV2ZXJzZWQ6ZnVuY3Rpb24oXzFkMyl7Cit2YXIgcnZhbD1Nb2NoaUtpdC5JdGVyLmxpc3QoXzFkMyk7CitydmFsLnJldmVyc2UoKTsKK3JldHVybiBydmFsOworfSxzb21lOmZ1bmN0aW9uKF8xZDUsZnVuYyl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5JdGVyOwordHJ5eworc2VsZi5pZmlsdGVyKGZ1bmMsXzFkNSkubmV4dCgpOworcmV0dXJuIHRydWU7Cit9CitjYXRjaChlKXsKK2lmKGUhPXNlbGYuU3RvcEl0ZXJhdGlvbil7Cit0aHJvdyBlOworfQorcmV0dXJuIGZhbHNlOworfQorfSxpZXh0ZW5kOmZ1bmN0aW9uKGxzdCxfMWQ5KXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit2YXIgc2VsZj1Nb2NoaUtpdC5JdGVyOworaWYobS5pc0FycmF5TGlrZShfMWQ5KSYmIXNlbGYuaXNJdGVyYWJsZShfMWQ5KSl7Citmb3IodmFyIGk9MDtpPF8xZDkubGVuZ3RoO2krKyl7Citsc3QucHVzaChfMWQ5W2ldKTsKK30KK31lbHNleworXzFkOT1zZWxmLml0ZXIoXzFkOSk7Cit0cnl7Cit3aGlsZSh0cnVlKXsKK2xzdC5wdXNoKF8xZDkubmV4dCgpKTsKK30KK30KK2NhdGNoKGUpeworaWYoZSE9c2VsZi5TdG9wSXRlcmF0aW9uKXsKK3Rocm93IGU7Cit9Cit9Cit9CityZXR1cm4gbHN0OworfSxncm91cGJ5OmZ1bmN0aW9uKF8xZGQsXzFkZSl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIHNlbGY9TW9jaGlLaXQuSXRlcjsKK2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7CitfMWRlPW0ub3BlcmF0b3IuaWRlbnRpdHk7Cit9CitfMWRkPXNlbGYuaXRlcihfMWRkKTsKK3ZhciBwaz11bmRlZmluZWQ7Cit2YXIgaz11bmRlZmluZWQ7Cit2YXIgdjsKK2Z1bmN0aW9uIGZldGNoKCl7Cit2PV8xZGQubmV4dCgpOworaz1fMWRlKHYpOworfQorZnVuY3Rpb24gZWF0KCl7Cit2YXIgcmV0PXY7Cit2PXVuZGVmaW5lZDsKK3JldHVybiByZXQ7Cit9Cit2YXIgXzFlNT10cnVlOwordmFyIF8xZTY9bS5jb21wYXJlOworcmV0dXJuIHtyZXByOmZ1bmN0aW9uKCl7CityZXR1cm4gImdyb3VwYnkoLi4uKSI7Cit9LG5leHQ6ZnVuY3Rpb24oKXsKK3doaWxlKF8xZTYoayxwayk9PT0wKXsKK2ZldGNoKCk7CitpZihfMWU1KXsKK18xZTU9ZmFsc2U7CiticmVhazsKK30KK30KK3BrPWs7CityZXR1cm4gW2sse25leHQ6ZnVuY3Rpb24oKXsKK2lmKHY9PXVuZGVmaW5lZCl7CitmZXRjaCgpOworfQoraWYoXzFlNihrLHBrKSE9PTApewordGhyb3cgc2VsZi5TdG9wSXRlcmF0aW9uOworfQorcmV0dXJuIGVhdCgpOworfX1dOworfX07Cit9LGdyb3VwYnlfYXNfYXJyYXk6ZnVuY3Rpb24oXzFlNyxfMWU4KXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit2YXIgc2VsZj1Nb2NoaUtpdC5JdGVyOworaWYoYXJndW1lbnRzLmxlbmd0aDwyKXsKK18xZTg9bS5vcGVyYXRvci5pZGVudGl0eTsKK30KK18xZTc9c2VsZi5pdGVyKF8xZTcpOwordmFyIF8xZWI9W107Cit2YXIgXzFlYz10cnVlOwordmFyIF8xZWQ7Cit2YXIgXzFlZT1tLmNvbXBhcmU7Cit3aGlsZSh0cnVlKXsKK3RyeXsKK3ZhciBfMWVmPV8xZTcubmV4dCgpOwordmFyIGtleT1fMWU4KF8xZWYpOworfQorY2F0Y2goZSl7CitpZihlPT1zZWxmLlN0b3BJdGVyYXRpb24peworYnJlYWs7Cit9Cit0aHJvdyBlOworfQoraWYoXzFlY3x8XzFlZShrZXksXzFlZCkhPT0wKXsKK3ZhciBfMWYxPVtdOworXzFlYi5wdXNoKFtrZXksXzFmMV0pOworfQorXzFmMS5wdXNoKF8xZWYpOworXzFlYz1mYWxzZTsKK18xZWQ9a2V5OworfQorcmV0dXJuIF8xZWI7Cit9LGFycmF5TGlrZUl0ZXI6ZnVuY3Rpb24oXzFmMil7Cit2YXIgaT0wOworcmV0dXJuIHtyZXByOmZ1bmN0aW9uKCl7CityZXR1cm4gImFycmF5TGlrZUl0ZXIoLi4uKSI7Cit9LHRvU3RyaW5nOk1vY2hpS2l0LkJhc2UuZm9yd2FyZENhbGwoInJlcHIiKSxuZXh0OmZ1bmN0aW9uKCl7CitpZihpPj1fMWYyLmxlbmd0aCl7Cit0aHJvdyBNb2NoaUtpdC5JdGVyLlN0b3BJdGVyYXRpb247Cit9CityZXR1cm4gXzFmMltpKytdOworfX07Cit9LGhhc0l0ZXJhdGVOZXh0OmZ1bmN0aW9uKF8xZjQpeworcmV0dXJuIChfMWY0JiZ0eXBlb2YgKF8xZjQuaXRlcmF0ZU5leHQpPT0iZnVuY3Rpb24iKTsKK30saXRlcmF0ZU5leHRJdGVyOmZ1bmN0aW9uKF8xZjUpeworcmV0dXJuIHtyZXByOmZ1bmN0aW9uKCl7CityZXR1cm4gIml0ZXJhdGVOZXh0SXRlciguLi4pIjsKK30sdG9TdHJpbmc6TW9jaGlLaXQuQmFzZS5mb3J3YXJkQ2FsbCgicmVwciIpLG5leHQ6ZnVuY3Rpb24oKXsKK3ZhciBydmFsPV8xZjUuaXRlcmF0ZU5leHQoKTsKK2lmKHJ2YWw9PT1udWxsfHxydmFsPT09dW5kZWZpbmVkKXsKK3Rocm93IE1vY2hpS2l0Lkl0ZXIuU3RvcEl0ZXJhdGlvbjsKK30KK3JldHVybiBydmFsOworfX07Cit9fSk7CitNb2NoaUtpdC5JdGVyLkVYUE9SVF9PSz1bIml0ZXJhdG9yUmVnaXN0cnkiLCJhcnJheUxpa2VJdGVyIiwiaGFzSXRlcmF0ZU5leHQiLCJpdGVyYXRlTmV4dEl0ZXIiXTsKK01vY2hpS2l0Lkl0ZXIuRVhQT1JUPVsiU3RvcEl0ZXJhdGlvbiIsInJlZ2lzdGVySXRlcmF0b3JGYWN0b3J5IiwiaXRlciIsImNvdW50IiwiY3ljbGUiLCJyZXBlYXQiLCJuZXh0IiwiaXppcCIsImlmaWx0ZXIiLCJpZmlsdGVyZmFsc2UiLCJpc2xpY2UiLCJpbWFwIiwiYXBwbHltYXAiLCJjaGFpbiIsInRha2V3aGlsZSIsImRyb3B3aGlsZSIsInRlZSIsImxpc3QiLCJyZWR1Y2UiLCJyYW5nZSIsInN1bSIsImV4aGF1c3QiLCJmb3JFYWNoIiwiZXZlcnkiLCJzb3J0ZWQiLCJyZXZlcnNlZCIsInNvbWUiLCJpZXh0ZW5kIiwiZ3JvdXBieSIsImdyb3VwYnlfYXNfYXJyYXkiXTsKK01vY2hpS2l0Lkl0ZXIuX19uZXdfXz1mdW5jdGlvbigpewordmFyIG09TW9jaGlLaXQuQmFzZTsKK2lmKHR5cGVvZiAoU3RvcEl0ZXJhdGlvbikhPSJ1bmRlZmluZWQiKXsKK3RoaXMuU3RvcEl0ZXJhdGlvbj1TdG9wSXRlcmF0aW9uOworfWVsc2V7Cit0aGlzLlN0b3BJdGVyYXRpb249bmV3IG0uTmFtZWRFcnJvcigiU3RvcEl0ZXJhdGlvbiIpOworfQordGhpcy5pdGVyYXRvclJlZ2lzdHJ5PW5ldyBtLkFkYXB0ZXJSZWdpc3RyeSgpOwordGhpcy5yZWdpc3Rlckl0ZXJhdG9yRmFjdG9yeSgiYXJyYXlMaWtlIixtLmlzQXJyYXlMaWtlLHRoaXMuYXJyYXlMaWtlSXRlcik7Cit0aGlzLnJlZ2lzdGVySXRlcmF0b3JGYWN0b3J5KCJpdGVyYXRlTmV4dCIsdGhpcy5oYXNJdGVyYXRlTmV4dCx0aGlzLml0ZXJhdGVOZXh0SXRlcik7Cit0aGlzLkVYUE9SVF9UQUdTPXsiOmNvbW1vbiI6dGhpcy5FWFBPUlQsIjphbGwiOm0uY29uY2F0KHRoaXMuRVhQT1JULHRoaXMuRVhQT1JUX09LKX07CittLm5hbWVGdW5jdGlvbnModGhpcyk7Cit9OworTW9jaGlLaXQuSXRlci5fX25ld19fKCk7CitpZihNb2NoaUtpdC5fX2V4cG9ydF9fKXsKK3JlZHVjZT1Nb2NoaUtpdC5JdGVyLnJlZHVjZTsKK30KK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHModGhpcyxNb2NoaUtpdC5JdGVyKTsKK01vY2hpS2l0LkJhc2UuX2RlcHMoIkxvZ2dpbmciLFsiQmFzZSJdKTsKK01vY2hpS2l0LkxvZ2dpbmcuTkFNRT0iTW9jaGlLaXQuTG9nZ2luZyI7CitNb2NoaUtpdC5Mb2dnaW5nLlZFUlNJT049IjEuNC4yIjsKK01vY2hpS2l0LkxvZ2dpbmcuX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0LkxvZ2dpbmcudG9TdHJpbmc9ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9fcmVwcl9fKCk7Cit9OworTW9jaGlLaXQuTG9nZ2luZy5FWFBPUlQ9WyJMb2dMZXZlbCIsIkxvZ01lc3NhZ2UiLCJMb2dnZXIiLCJhbGVydExpc3RlbmVyIiwibG9nZ2VyIiwibG9nIiwibG9nRXJyb3IiLCJsb2dEZWJ1ZyIsImxvZ0ZhdGFsIiwibG9nV2FybmluZyJdOworTW9jaGlLaXQuTG9nZ2luZy5FWFBPUlRfT0s9WyJsb2dMZXZlbEF0TGVhc3QiLCJpc0xvZ01lc3NhZ2UiLCJjb21wYXJlTG9nTWVzc2FnZSJdOworTW9jaGlLaXQuTG9nZ2luZy5Mb2dNZXNzYWdlPWZ1bmN0aW9uKG51bSxfMWY5LGluZm8pewordGhpcy5udW09bnVtOwordGhpcy5sZXZlbD1fMWY5OwordGhpcy5pbmZvPWluZm87Cit0aGlzLnRpbWVzdGFtcD1uZXcgRGF0ZSgpOworfTsKK01vY2hpS2l0LkxvZ2dpbmcuTG9nTWVzc2FnZS5wcm90b3R5cGU9e3JlcHI6ZnVuY3Rpb24oKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CityZXR1cm4gIkxvZ01lc3NhZ2UoIittLm1hcChtLnJlcHIsW3RoaXMubnVtLHRoaXMubGV2ZWwsdGhpcy5pbmZvXSkuam9pbigiLCAiKSsiKSI7Cit9LHRvU3RyaW5nOk1vY2hpS2l0LkJhc2UuZm9yd2FyZENhbGwoInJlcHIiKX07CitNb2NoaUtpdC5CYXNlLnVwZGF0ZShNb2NoaUtpdC5Mb2dnaW5nLHtsb2dMZXZlbEF0TGVhc3Q6ZnVuY3Rpb24oXzFmYyl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Mb2dnaW5nOworaWYodHlwZW9mIChfMWZjKT09InN0cmluZyIpeworXzFmYz1zZWxmLkxvZ0xldmVsW18xZmNdOworfQorcmV0dXJuIGZ1bmN0aW9uKG1zZyl7Cit2YXIgXzFmZj1tc2cubGV2ZWw7CitpZih0eXBlb2YgKF8xZmYpPT0ic3RyaW5nIil7CitfMWZmPXNlbGYuTG9nTGV2ZWxbXzFmZl07Cit9CityZXR1cm4gXzFmZj49XzFmYzsKK307Cit9LGlzTG9nTWVzc2FnZTpmdW5jdGlvbigpewordmFyIF8yMDA9TW9jaGlLaXQuTG9nZ2luZy5Mb2dNZXNzYWdlOworZm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7CitpZighKGFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIF8yMDApKXsKK3JldHVybiBmYWxzZTsKK30KK30KK3JldHVybiB0cnVlOworfSxjb21wYXJlTG9nTWVzc2FnZTpmdW5jdGlvbihhLGIpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UuY29tcGFyZShbYS5sZXZlbCxhLmluZm9dLFtiLmxldmVsLGIuaW5mb10pOworfSxhbGVydExpc3RlbmVyOmZ1bmN0aW9uKG1zZyl7CithbGVydCgibnVtOiAiK21zZy5udW0rIlxubGV2ZWw6ICIrbXNnLmxldmVsKyJcbmluZm86ICIrbXNnLmluZm8uam9pbigiICIpKTsKK319KTsKK01vY2hpS2l0LkxvZ2dpbmcuTG9nZ2VyPWZ1bmN0aW9uKF8yMDUpewordGhpcy5jb3VudGVyPTA7CitpZih0eXBlb2YgKF8yMDUpPT0idW5kZWZpbmVkInx8XzIwNT09PW51bGwpeworXzIwNT0tMTsKK30KK3RoaXMubWF4U2l6ZT1fMjA1OwordGhpcy5fbWVzc2FnZXM9W107Cit0aGlzLmxpc3RlbmVycz17fTsKK3RoaXMudXNlTmF0aXZlQ29uc29sZT1mYWxzZTsKK307CitNb2NoaUtpdC5Mb2dnaW5nLkxvZ2dlci5wcm90b3R5cGU9e2NsZWFyOmZ1bmN0aW9uKCl7Cit0aGlzLl9tZXNzYWdlcy5zcGxpY2UoMCx0aGlzLl9tZXNzYWdlcy5sZW5ndGgpOworfSxsb2dUb0NvbnNvbGU6ZnVuY3Rpb24obXNnKXsKK2lmKHR5cGVvZiAod2luZG93KSE9InVuZGVmaW5lZCImJndpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cpeword2luZG93LmNvbnNvbGUubG9nKG1zZy5yZXBsYWNlKC8lL2csIlx1ZmYwNSIpKTsKK31lbHNleworaWYodHlwZW9mIChvcGVyYSkhPSJ1bmRlZmluZWQiJiZvcGVyYS5wb3N0RXJyb3Ipeworb3BlcmEucG9zdEVycm9yKG1zZyk7Cit9ZWxzZXsKK2lmKHR5cGVvZiAocHJpbnRmaXJlKT09ImZ1bmN0aW9uIil7CitwcmludGZpcmUobXNnKTsKK31lbHNleworaWYodHlwZW9mIChEZWJ1ZykhPSJ1bmRlZmluZWQiJiZEZWJ1Zy53cml0ZWxuKXsKK0RlYnVnLndyaXRlbG4obXNnKTsKK31lbHNleworaWYodHlwZW9mIChkZWJ1ZykhPSJ1bmRlZmluZWQiJiZkZWJ1Zy50cmFjZSl7CitkZWJ1Zy50cmFjZShtc2cpOworfQorfQorfQorfQorfQorfSxkaXNwYXRjaExpc3RlbmVyczpmdW5jdGlvbihtc2cpeworZm9yKHZhciBrIGluIHRoaXMubGlzdGVuZXJzKXsKK3ZhciBwYWlyPXRoaXMubGlzdGVuZXJzW2tdOworaWYocGFpci5pZGVudCE9a3x8KHBhaXJbMF0mJiFwYWlyWzBdKG1zZykpKXsKK2NvbnRpbnVlOworfQorcGFpclsxXShtc2cpOworfQorfSxhZGRMaXN0ZW5lcjpmdW5jdGlvbihfMjBhLF8yMGIsXzIwYyl7CitpZih0eXBlb2YgKF8yMGIpPT0ic3RyaW5nIil7CitfMjBiPU1vY2hpS2l0LkxvZ2dpbmcubG9nTGV2ZWxBdExlYXN0KF8yMGIpOworfQordmFyIF8yMGQ9W18yMGIsXzIwY107CitfMjBkLmlkZW50PV8yMGE7Cit0aGlzLmxpc3RlbmVyc1tfMjBhXT1fMjBkOworfSxyZW1vdmVMaXN0ZW5lcjpmdW5jdGlvbihfMjBlKXsKK2RlbGV0ZSB0aGlzLmxpc3RlbmVyc1tfMjBlXTsKK30sYmFzZUxvZzpmdW5jdGlvbihfMjBmLF8yMTApeworaWYodHlwZW9mIChfMjBmKT09Im51bWJlciIpeworaWYoXzIwZj49TW9jaGlLaXQuTG9nZ2luZy5Mb2dMZXZlbC5GQVRBTCl7CitfMjBmPSJGQVRBTCI7Cit9ZWxzZXsKK2lmKF8yMGY+PU1vY2hpS2l0LkxvZ2dpbmcuTG9nTGV2ZWwuRVJST1IpeworXzIwZj0iRVJST1IiOworfWVsc2V7CitpZihfMjBmPj1Nb2NoaUtpdC5Mb2dnaW5nLkxvZ0xldmVsLldBUk5JTkcpeworXzIwZj0iV0FSTklORyI7Cit9ZWxzZXsKK2lmKF8yMGY+PU1vY2hpS2l0LkxvZ2dpbmcuTG9nTGV2ZWwuSU5GTyl7CitfMjBmPSJJTkZPIjsKK31lbHNleworXzIwZj0iREVCVUciOworfQorfQorfQorfQorfQordmFyIG1zZz1uZXcgTW9jaGlLaXQuTG9nZ2luZy5Mb2dNZXNzYWdlKHRoaXMuY291bnRlcixfMjBmLE1vY2hpS2l0LkJhc2UuZXh0ZW5kKG51bGwsYXJndW1lbnRzLDEpKTsKK3RoaXMuX21lc3NhZ2VzLnB1c2gobXNnKTsKK3RoaXMuZGlzcGF0Y2hMaXN0ZW5lcnMobXNnKTsKK2lmKHRoaXMudXNlTmF0aXZlQ29uc29sZSl7Cit0aGlzLmxvZ1RvQ29uc29sZShtc2cubGV2ZWwrIjogIittc2cuaW5mby5qb2luKCIgIikpOworfQordGhpcy5jb3VudGVyKz0xOword2hpbGUodGhpcy5tYXhTaXplPj0wJiZ0aGlzLl9tZXNzYWdlcy5sZW5ndGg+dGhpcy5tYXhTaXplKXsKK3RoaXMuX21lc3NhZ2VzLnNoaWZ0KCk7Cit9Cit9LGdldE1lc3NhZ2VzOmZ1bmN0aW9uKF8yMTIpewordmFyIF8yMTM9MDsKK2lmKCEodHlwZW9mIChfMjEyKT09InVuZGVmaW5lZCJ8fF8yMTI9PT1udWxsKSl7CitfMjEzPU1hdGgubWF4KDAsdGhpcy5fbWVzc2FnZXMubGVuZ3RoLV8yMTIpOworfQorcmV0dXJuIHRoaXMuX21lc3NhZ2VzLnNsaWNlKF8yMTMpOworfSxnZXRNZXNzYWdlVGV4dDpmdW5jdGlvbihfMjE0KXsKK2lmKHR5cGVvZiAoXzIxNCk9PSJ1bmRlZmluZWQifHxfMjE0PT09bnVsbCl7CitfMjE0PTMwOworfQordmFyIF8yMTU9dGhpcy5nZXRNZXNzYWdlcyhfMjE0KTsKK2lmKF8yMTUubGVuZ3RoKXsKK3ZhciBsc3Q9bWFwKGZ1bmN0aW9uKG0peworcmV0dXJuICJcbiAgWyIrbS5udW0rIl0gIittLmxldmVsKyI6ICIrbS5pbmZvLmpvaW4oIiAiKTsKK30sXzIxNSk7Citsc3QudW5zaGlmdCgiTEFTVCAiK18yMTUubGVuZ3RoKyIgTUVTU0FHRVM6Iik7CityZXR1cm4gbHN0LmpvaW4oIiIpOworfQorcmV0dXJuICIiOworfSxkZWJ1Z2dpbmdCb29rbWFya2xldDpmdW5jdGlvbihfMjE4KXsKK2lmKHR5cGVvZiAoTW9jaGlLaXQuTG9nZ2luZ1BhbmUpPT0idW5kZWZpbmVkIil7CithbGVydCh0aGlzLmdldE1lc3NhZ2VUZXh0KCkpOworfWVsc2V7CitNb2NoaUtpdC5Mb2dnaW5nUGFuZS5jcmVhdGVMb2dnaW5nUGFuZShfMjE4fHxmYWxzZSk7Cit9Cit9fTsKK01vY2hpS2l0LkxvZ2dpbmcuX19uZXdfXz1mdW5jdGlvbigpewordGhpcy5Mb2dMZXZlbD17RVJST1I6NDAsRkFUQUw6NTAsV0FSTklORzozMCxJTkZPOjIwLERFQlVHOjEwfTsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CittLnJlZ2lzdGVyQ29tcGFyYXRvcigiTG9nTWVzc2FnZSIsdGhpcy5pc0xvZ01lc3NhZ2UsdGhpcy5jb21wYXJlTG9nTWVzc2FnZSk7Cit2YXIgXzIxYT1tLnBhcnRpYWw7Cit2YXIgXzIxYj10aGlzLkxvZ2dlcjsKK3ZhciBfMjFjPV8yMWIucHJvdG90eXBlLmJhc2VMb2c7CittLnVwZGF0ZSh0aGlzLkxvZ2dlci5wcm90b3R5cGUse2RlYnVnOl8yMWEoXzIxYywiREVCVUciKSxsb2c6XzIxYShfMjFjLCJJTkZPIiksZXJyb3I6XzIxYShfMjFjLCJFUlJPUiIpLGZhdGFsOl8yMWEoXzIxYywiRkFUQUwiKSx3YXJuaW5nOl8yMWEoXzIxYywiV0FSTklORyIpfSk7Cit2YXIgc2VsZj10aGlzOwordmFyIF8yMWU9ZnVuY3Rpb24obmFtZSl7CityZXR1cm4gZnVuY3Rpb24oKXsKK3NlbGYubG9nZ2VyW25hbWVdLmFwcGx5KHNlbGYubG9nZ2VyLGFyZ3VtZW50cyk7Cit9OworfTsKK3RoaXMubG9nPV8yMWUoImxvZyIpOwordGhpcy5sb2dFcnJvcj1fMjFlKCJlcnJvciIpOwordGhpcy5sb2dEZWJ1Zz1fMjFlKCJkZWJ1ZyIpOwordGhpcy5sb2dGYXRhbD1fMjFlKCJmYXRhbCIpOwordGhpcy5sb2dXYXJuaW5nPV8yMWUoIndhcm5pbmciKTsKK3RoaXMubG9nZ2VyPW5ldyBfMjFiKCk7Cit0aGlzLmxvZ2dlci51c2VOYXRpdmVDb25zb2xlPXRydWU7Cit0aGlzLkVYUE9SVF9UQUdTPXsiOmNvbW1vbiI6dGhpcy5FWFBPUlQsIjphbGwiOm0uY29uY2F0KHRoaXMuRVhQT1JULHRoaXMuRVhQT1JUX09LKX07CittLm5hbWVGdW5jdGlvbnModGhpcyk7Cit9OworaWYodHlwZW9mIChwcmludGZpcmUpPT0idW5kZWZpbmVkIiYmdHlwZW9mIChkb2N1bWVudCkhPSJ1bmRlZmluZWQiJiZkb2N1bWVudC5jcmVhdGVFdmVudCYmdHlwZW9mIChkaXNwYXRjaEV2ZW50KSE9InVuZGVmaW5lZCIpeworcHJpbnRmaXJlPWZ1bmN0aW9uKCl7CitwcmludGZpcmUuYXJncz1hcmd1bWVudHM7Cit2YXIgZXY9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50cyIpOworZXYuaW5pdEV2ZW50KCJwcmludGZpcmUiLGZhbHNlLHRydWUpOworZGlzcGF0Y2hFdmVudChldik7Cit9OworfQorTW9jaGlLaXQuTG9nZ2luZy5fX25ld19fKCk7CitNb2NoaUtpdC5CYXNlLl9leHBvcnRTeW1ib2xzKHRoaXMsTW9jaGlLaXQuTG9nZ2luZyk7CitNb2NoaUtpdC5CYXNlLl9kZXBzKCJEYXRlVGltZSIsWyJCYXNlIl0pOworTW9jaGlLaXQuRGF0ZVRpbWUuTkFNRT0iTW9jaGlLaXQuRGF0ZVRpbWUiOworTW9jaGlLaXQuRGF0ZVRpbWUuVkVSU0lPTj0iMS40LjIiOworTW9jaGlLaXQuRGF0ZVRpbWUuX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0LkRhdGVUaW1lLnRvU3RyaW5nPWZ1bmN0aW9uKCl7CityZXR1cm4gdGhpcy5fX3JlcHJfXygpOworfTsKK01vY2hpS2l0LkRhdGVUaW1lLmlzb0RhdGU9ZnVuY3Rpb24oc3RyKXsKK3N0cj1zdHIrIiI7CitpZih0eXBlb2YgKHN0cikhPSJzdHJpbmcifHxzdHIubGVuZ3RoPT09MCl7CityZXR1cm4gbnVsbDsKK30KK3ZhciBpc289c3RyLnNwbGl0KCItIik7CitpZihpc28ubGVuZ3RoPT09MCl7CityZXR1cm4gbnVsbDsKK30KK3ZhciBkYXRlPW5ldyBEYXRlKGlzb1swXSxpc29bMV0tMSxpc29bMl0pOworZGF0ZS5zZXRGdWxsWWVhcihpc29bMF0pOworZGF0ZS5zZXRNb250aChpc29bMV0tMSk7CitkYXRlLnNldERhdGUoaXNvWzJdKTsKK3JldHVybiBkYXRlOworfTsKK01vY2hpS2l0LkRhdGVUaW1lLl9pc29SZWdleHA9LyhcZHs0LH0pKD86LShcZHsxLDJ9KSg/Oi0oXGR7MSwyfSkoPzpbVCBdKFxkezEsMn0pOihcZHsxLDJ9KSg/OjooXGR7MSwyfSkoPzpcLihcZCspKT8pPyg/OihaKXwoWystXSkoXGR7MSwyfSkoPzo6KFxkezEsMn0pKT8pPyk/KT8pPy87CitNb2NoaUtpdC5EYXRlVGltZS5pc29UaW1lc3RhbXA9ZnVuY3Rpb24oc3RyKXsKK3N0cj1zdHIrIiI7CitpZih0eXBlb2YgKHN0cikhPSJzdHJpbmcifHxzdHIubGVuZ3RoPT09MCl7CityZXR1cm4gbnVsbDsKK30KK3ZhciByZXM9c3RyLm1hdGNoKE1vY2hpS2l0LkRhdGVUaW1lLl9pc29SZWdleHApOworaWYodHlwZW9mIChyZXMpPT0idW5kZWZpbmVkInx8cmVzPT09bnVsbCl7CityZXR1cm4gbnVsbDsKK30KK3ZhciB5ZWFyLF8yMjcsZGF5LGhvdXIsbWluLHNlYyxtc2VjOworeWVhcj1wYXJzZUludChyZXNbMV0sMTApOworaWYodHlwZW9mIChyZXNbMl0pPT0idW5kZWZpbmVkInx8cmVzWzJdPT09IiIpeworcmV0dXJuIG5ldyBEYXRlKHllYXIpOworfQorXzIyNz1wYXJzZUludChyZXNbMl0sMTApLTE7CitkYXk9cGFyc2VJbnQocmVzWzNdLDEwKTsKK2lmKHR5cGVvZiAocmVzWzRdKT09InVuZGVmaW5lZCJ8fHJlc1s0XT09PSIiKXsKK3JldHVybiBuZXcgRGF0ZSh5ZWFyLF8yMjcsZGF5KTsKK30KK2hvdXI9cGFyc2VJbnQocmVzWzRdLDEwKTsKK21pbj1wYXJzZUludChyZXNbNV0sMTApOworc2VjPSh0eXBlb2YgKHJlc1s2XSkhPSJ1bmRlZmluZWQiJiZyZXNbNl0hPT0iIik/cGFyc2VJbnQocmVzWzZdLDEwKTowOworaWYodHlwZW9mIChyZXNbN10pIT0idW5kZWZpbmVkIiYmcmVzWzddIT09IiIpeworbXNlYz1NYXRoLnJvdW5kKDEwMDAqcGFyc2VGbG9hdCgiMC4iK3Jlc1s3XSkpOworfWVsc2V7Cittc2VjPTA7Cit9CitpZigodHlwZW9mIChyZXNbOF0pPT0idW5kZWZpbmVkInx8cmVzWzhdPT09IiIpJiYodHlwZW9mIChyZXNbOV0pPT0idW5kZWZpbmVkInx8cmVzWzldPT09IiIpKXsKK3JldHVybiBuZXcgRGF0ZSh5ZWFyLF8yMjcsZGF5LGhvdXIsbWluLHNlYyxtc2VjKTsKK30KK3ZhciBvZnM7CitpZih0eXBlb2YgKHJlc1s5XSkhPSJ1bmRlZmluZWQiJiZyZXNbOV0hPT0iIil7CitvZnM9cGFyc2VJbnQocmVzWzEwXSwxMCkqMzYwMDAwMDsKK2lmKHR5cGVvZiAocmVzWzExXSkhPSJ1bmRlZmluZWQiJiZyZXNbMTFdIT09IiIpeworb2ZzKz1wYXJzZUludChyZXNbMTFdLDEwKSo2MDAwMDsKK30KK2lmKHJlc1s5XT09Ii0iKXsKK29mcz0tb2ZzOworfQorfWVsc2V7CitvZnM9MDsKK30KK3JldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLF8yMjcsZGF5LGhvdXIsbWluLHNlYyxtc2VjKS1vZnMpOworfTsKK01vY2hpS2l0LkRhdGVUaW1lLnRvSVNPVGltZT1mdW5jdGlvbihkYXRlLF8yMmYpeworaWYodHlwZW9mIChkYXRlKT09InVuZGVmaW5lZCJ8fGRhdGU9PT1udWxsKXsKK3JldHVybiBudWxsOworfQordmFyIGhoPWRhdGUuZ2V0SG91cnMoKTsKK3ZhciBtbT1kYXRlLmdldE1pbnV0ZXMoKTsKK3ZhciBzcz1kYXRlLmdldFNlY29uZHMoKTsKK3ZhciBsc3Q9WygoXzIyZiYmKGhoPDEwKSk/IjAiK2hoOmhoKSwoKG1tPDEwKT8iMCIrbW06bW0pLCgoc3M8MTApPyIwIitzczpzcyldOworcmV0dXJuIGxzdC5qb2luKCI6Iik7Cit9OworTW9jaGlLaXQuRGF0ZVRpbWUudG9JU09UaW1lc3RhbXA9ZnVuY3Rpb24oZGF0ZSxfMjM1KXsKK2lmKHR5cGVvZiAoZGF0ZSk9PSJ1bmRlZmluZWQifHxkYXRlPT09bnVsbCl7CityZXR1cm4gbnVsbDsKK30KK3ZhciBzZXA9XzIzNT8iVCI6IiAiOwordmFyIGZvb3Q9XzIzNT8iWiI6IiI7CitpZihfMjM1KXsKK2RhdGU9bmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkrKGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSo2MDAwMCkpOworfQorcmV0dXJuIE1vY2hpS2l0LkRhdGVUaW1lLnRvSVNPRGF0ZShkYXRlKStzZXArTW9jaGlLaXQuRGF0ZVRpbWUudG9JU09UaW1lKGRhdGUsXzIzNSkrZm9vdDsKK307CitNb2NoaUtpdC5EYXRlVGltZS50b0lTT0RhdGU9ZnVuY3Rpb24oZGF0ZSl7CitpZih0eXBlb2YgKGRhdGUpPT0idW5kZWZpbmVkInx8ZGF0ZT09PW51bGwpeworcmV0dXJuIG51bGw7Cit9Cit2YXIgXzIzOT1Nb2NoaUtpdC5EYXRlVGltZS5fcGFkVHdvOwordmFyIF8yM2E9TW9jaGlLaXQuRGF0ZVRpbWUuX3BhZEZvdXI7CityZXR1cm4gW18yM2EoZGF0ZS5nZXRGdWxsWWVhcigpKSxfMjM5KGRhdGUuZ2V0TW9udGgoKSsxKSxfMjM5KGRhdGUuZ2V0RGF0ZSgpKV0uam9pbigiLSIpOworfTsKK01vY2hpS2l0LkRhdGVUaW1lLmFtZXJpY2FuRGF0ZT1mdW5jdGlvbihkKXsKK2Q9ZCsiIjsKK2lmKHR5cGVvZiAoZCkhPSJzdHJpbmcifHxkLmxlbmd0aD09PTApeworcmV0dXJuIG51bGw7Cit9Cit2YXIgYT1kLnNwbGl0KCIvIik7CityZXR1cm4gbmV3IERhdGUoYVsyXSxhWzBdLTEsYVsxXSk7Cit9OworTW9jaGlLaXQuRGF0ZVRpbWUuX3BhZFR3bz1mdW5jdGlvbihuKXsKK3JldHVybiAobj45KT9uOiIwIituOworfTsKK01vY2hpS2l0LkRhdGVUaW1lLl9wYWRGb3VyPWZ1bmN0aW9uKG4peworc3dpdGNoKG4udG9TdHJpbmcoKS5sZW5ndGgpeworY2FzZSAxOgorcmV0dXJuICIwMDAiK247CiticmVhazsKK2Nhc2UgMjoKK3JldHVybiAiMDAiK247CiticmVhazsKK2Nhc2UgMzoKK3JldHVybiAiMCIrbjsKK2JyZWFrOworY2FzZSA0OgorZGVmYXVsdDoKK3JldHVybiBuOworfQorfTsKK01vY2hpS2l0LkRhdGVUaW1lLnRvUGFkZGVkQW1lcmljYW5EYXRlPWZ1bmN0aW9uKGQpeworaWYodHlwZW9mIChkKT09InVuZGVmaW5lZCJ8fGQ9PT1udWxsKXsKK3JldHVybiBudWxsOworfQordmFyIF8yNDA9TW9jaGlLaXQuRGF0ZVRpbWUuX3BhZFR3bzsKK3JldHVybiBbXzI0MChkLmdldE1vbnRoKCkrMSksXzI0MChkLmdldERhdGUoKSksZC5nZXRGdWxsWWVhcigpXS5qb2luKCIvIik7Cit9OworTW9jaGlLaXQuRGF0ZVRpbWUudG9BbWVyaWNhbkRhdGU9ZnVuY3Rpb24oZCl7CitpZih0eXBlb2YgKGQpPT0idW5kZWZpbmVkInx8ZD09PW51bGwpeworcmV0dXJuIG51bGw7Cit9CityZXR1cm4gW2QuZ2V0TW9udGgoKSsxLGQuZ2V0RGF0ZSgpLGQuZ2V0RnVsbFllYXIoKV0uam9pbigiLyIpOworfTsKK01vY2hpS2l0LkRhdGVUaW1lLkVYUE9SVD1bImlzb0RhdGUiLCJpc29UaW1lc3RhbXAiLCJ0b0lTT1RpbWUiLCJ0b0lTT1RpbWVzdGFtcCIsInRvSVNPRGF0ZSIsImFtZXJpY2FuRGF0ZSIsInRvUGFkZGVkQW1lcmljYW5EYXRlIiwidG9BbWVyaWNhbkRhdGUiXTsKK01vY2hpS2l0LkRhdGVUaW1lLkVYUE9SVF9PSz1bXTsKK01vY2hpS2l0LkRhdGVUaW1lLkVYUE9SVF9UQUdTPXsiOmNvbW1vbiI6TW9jaGlLaXQuRGF0ZVRpbWUuRVhQT1JULCI6YWxsIjpNb2NoaUtpdC5EYXRlVGltZS5FWFBPUlR9OworTW9jaGlLaXQuRGF0ZVRpbWUuX19uZXdfXz1mdW5jdGlvbigpewordmFyIGJhc2U9dGhpcy5OQU1FKyIuIjsKK2Zvcih2YXIgayBpbiB0aGlzKXsKK3ZhciBvPXRoaXNba107CitpZih0eXBlb2YgKG8pPT0iZnVuY3Rpb24iJiZ0eXBlb2YgKG8uTkFNRSk9PSJ1bmRlZmluZWQiKXsKK3RyeXsKK28uTkFNRT1iYXNlK2s7Cit9CitjYXRjaChlKXsKK30KK30KK30KK307CitNb2NoaUtpdC5EYXRlVGltZS5fX25ld19fKCk7CitpZih0eXBlb2YgKE1vY2hpS2l0LkJhc2UpIT0idW5kZWZpbmVkIil7CitNb2NoaUtpdC5CYXNlLl9leHBvcnRTeW1ib2xzKHRoaXMsTW9jaGlLaXQuRGF0ZVRpbWUpOworfWVsc2V7CisoZnVuY3Rpb24oXzI0NSxfMjQ2KXsKK2lmKCh0eXBlb2YgKEpTQU4pPT0idW5kZWZpbmVkIiYmdHlwZW9mIChkb2pvKT09InVuZGVmaW5lZCIpfHwoTW9jaGlLaXQuX19leHBvcnRfXz09PWZhbHNlKSl7Cit2YXIgYWxsPV8yNDYuRVhQT1JUX1RBR1NbIjphbGwiXTsKK2Zvcih2YXIgaT0wO2k8YWxsLmxlbmd0aDtpKyspeworXzI0NVthbGxbaV1dPV8yNDZbYWxsW2ldXTsKK30KK30KK30pKHRoaXMsTW9jaGlLaXQuRGF0ZVRpbWUpOworfQorTW9jaGlLaXQuQmFzZS5fZGVwcygiRm9ybWF0IixbIkJhc2UiXSk7CitNb2NoaUtpdC5Gb3JtYXQuTkFNRT0iTW9jaGlLaXQuRm9ybWF0IjsKK01vY2hpS2l0LkZvcm1hdC5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5Gb3JtYXQuX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0LkZvcm1hdC50b1N0cmluZz1mdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK307CitNb2NoaUtpdC5Gb3JtYXQuX251bWJlckZvcm1hdHRlcj1mdW5jdGlvbihfMjQ5LF8yNGEsXzI0YixfMjRjLF8yNGQsXzI0ZSxfMjRmLF8yNTAsXzI1MSl7CityZXR1cm4gZnVuY3Rpb24obnVtKXsKK251bT1wYXJzZUZsb2F0KG51bSk7CitpZih0eXBlb2YgKG51bSk9PSJ1bmRlZmluZWQifHxudW09PT1udWxsfHxpc05hTihudW0pKXsKK3JldHVybiBfMjQ5OworfQordmFyIF8yNTM9XzI0YTsKK3ZhciBfMjU0PV8yNGI7CitpZihudW08MCl7CitudW09LW51bTsKK31lbHNleworXzI1Mz1fMjUzLnJlcGxhY2UoLy0vLCIiKTsKK30KK3ZhciBtZT1hcmd1bWVudHMuY2FsbGVlOwordmFyIGZtdD1Nb2NoaUtpdC5Gb3JtYXQuZm9ybWF0TG9jYWxlKF8yNGMpOworaWYoXzI0ZCl7CitudW09bnVtKjEwMDsKK18yNTQ9Zm10LnBlcmNlbnQrXzI1NDsKK30KK251bT1Nb2NoaUtpdC5Gb3JtYXQucm91bmRUb0ZpeGVkKG51bSxfMjRlKTsKK3ZhciBfMjU3PW51bS5zcGxpdCgvXC4vKTsKK3ZhciBfMjU4PV8yNTdbMF07Cit2YXIgZnJhYz0oXzI1Ny5sZW5ndGg9PTEpPyIiOl8yNTdbMV07Cit2YXIgcmVzPSIiOword2hpbGUoXzI1OC5sZW5ndGg8XzI0Zil7CitfMjU4PSIwIitfMjU4OworfQoraWYoXzI1MCl7Cit3aGlsZShfMjU4Lmxlbmd0aD5fMjUwKXsKK3ZhciBpPV8yNTgubGVuZ3RoLV8yNTA7CityZXM9Zm10LnNlcGFyYXRvcitfMjU4LnN1YnN0cmluZyhpLF8yNTgubGVuZ3RoKStyZXM7CitfMjU4PV8yNTguc3Vic3RyaW5nKDAsaSk7Cit9Cit9CityZXM9XzI1OCtyZXM7CitpZihfMjRlPjApeword2hpbGUoZnJhYy5sZW5ndGg8XzI1MSl7CitmcmFjPWZyYWMrIjAiOworfQorcmVzPXJlcytmbXQuZGVjaW1hbCtmcmFjOworfQorcmV0dXJuIF8yNTMrcmVzK18yNTQ7Cit9OworfTsKK01vY2hpS2l0LkZvcm1hdC5udW1iZXJGb3JtYXR0ZXI9ZnVuY3Rpb24oXzI1YyxfMjVkLF8yNWUpeworaWYodHlwZW9mIChfMjVkKT09InVuZGVmaW5lZCIpeworXzI1ZD0iIjsKK30KK3ZhciBfMjVmPV8yNWMubWF0Y2goLygoPzpbMCNdKywpP1swI10rKSg/OlwuKFswI10rKSk/KCUpPy8pOworaWYoIV8yNWYpewordGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIHBhdHRlcm4iKTsKK30KK3ZhciBfMjYwPV8yNWMuc3Vic3RyKDAsXzI1Zi5pbmRleCk7Cit2YXIgXzI2MT1fMjVjLnN1YnN0cihfMjVmLmluZGV4K18yNWZbMF0ubGVuZ3RoKTsKK2lmKF8yNjAuc2VhcmNoKC8tLyk9PS0xKXsKK18yNjA9XzI2MCsiLSI7Cit9Cit2YXIgXzI2Mj1fMjVmWzFdOwordmFyIGZyYWM9KHR5cGVvZiAoXzI1ZlsyXSk9PSJzdHJpbmciJiZfMjVmWzJdIT0iIik/XzI1ZlsyXToiIjsKK3ZhciBfMjY0PSh0eXBlb2YgKF8yNWZbM10pPT0ic3RyaW5nIiYmXzI1ZlszXSE9IiIpOwordmFyIHRtcD1fMjYyLnNwbGl0KC8sLyk7Cit2YXIgXzI2NjsKK2lmKHR5cGVvZiAoXzI1ZSk9PSJ1bmRlZmluZWQiKXsKK18yNWU9ImRlZmF1bHQiOworfQoraWYodG1wLmxlbmd0aD09MSl7CitfMjY2PW51bGw7Cit9ZWxzZXsKK18yNjY9dG1wWzFdLmxlbmd0aDsKK30KK3ZhciBfMjY3PV8yNjIubGVuZ3RoLV8yNjIucmVwbGFjZSgvMC9nLCIiKS5sZW5ndGg7Cit2YXIgXzI2OD1mcmFjLmxlbmd0aC1mcmFjLnJlcGxhY2UoLzAvZywiIikubGVuZ3RoOwordmFyIF8yNjk9ZnJhYy5sZW5ndGg7Cit2YXIgcnZhbD1Nb2NoaUtpdC5Gb3JtYXQuX251bWJlckZvcm1hdHRlcihfMjVkLF8yNjAsXzI2MSxfMjVlLF8yNjQsXzI2OSxfMjY3LF8yNjYsXzI2OCk7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworaWYobSl7Cit2YXIgZm49YXJndW1lbnRzLmNhbGxlZTsKK3ZhciBhcmdzPW0uY29uY2F0KGFyZ3VtZW50cyk7CitydmFsLnJlcHI9ZnVuY3Rpb24oKXsKK3JldHVybiBbc2VsZi5OQU1FLCIoIixtYXAobS5yZXByLGFyZ3MpLmpvaW4oIiwgIiksIikiXS5qb2luKCIiKTsKK307Cit9CityZXR1cm4gcnZhbDsKK307CitNb2NoaUtpdC5Gb3JtYXQuZm9ybWF0TG9jYWxlPWZ1bmN0aW9uKF8yNmUpeworaWYodHlwZW9mIChfMjZlKT09InVuZGVmaW5lZCJ8fF8yNmU9PT1udWxsKXsKK18yNmU9ImRlZmF1bHQiOworfQoraWYodHlwZW9mIChfMjZlKT09InN0cmluZyIpewordmFyIHJ2YWw9TW9jaGlLaXQuRm9ybWF0LkxPQ0FMRVtfMjZlXTsKK2lmKHR5cGVvZiAocnZhbCk9PSJzdHJpbmciKXsKK3J2YWw9YXJndW1lbnRzLmNhbGxlZShydmFsKTsKK01vY2hpS2l0LkZvcm1hdC5MT0NBTEVbXzI2ZV09cnZhbDsKK30KK3JldHVybiBydmFsOworfWVsc2V7CityZXR1cm4gXzI2ZTsKK30KK307CitNb2NoaUtpdC5Gb3JtYXQudHdvRGlnaXRBdmVyYWdlPWZ1bmN0aW9uKF8yNzAsXzI3MSl7CitpZihfMjcxKXsKK3ZhciByZXM9XzI3MC9fMjcxOworaWYoIWlzTmFOKHJlcykpeworcmV0dXJuIE1vY2hpS2l0LkZvcm1hdC50d29EaWdpdEZsb2F0KHJlcyk7Cit9Cit9CityZXR1cm4gIjAiOworfTsKK01vY2hpS2l0LkZvcm1hdC50d29EaWdpdEZsb2F0PWZ1bmN0aW9uKF8yNzMpewordmFyIHJlcz1yb3VuZFRvRml4ZWQoXzI3MywyKTsKK2lmKHJlcy5pbmRleE9mKCIuMDAiKT4wKXsKK3JldHVybiByZXMuc3Vic3RyaW5nKDAscmVzLmxlbmd0aC0zKTsKK31lbHNleworaWYocmVzLmNoYXJBdChyZXMubGVuZ3RoLTEpPT0iMCIpeworcmV0dXJuIHJlcy5zdWJzdHJpbmcoMCxyZXMubGVuZ3RoLTEpOworfWVsc2V7CityZXR1cm4gcmVzOworfQorfQorfTsKK01vY2hpS2l0LkZvcm1hdC5sc3RyaXA9ZnVuY3Rpb24oc3RyLF8yNzYpeworc3RyPXN0cisiIjsKK2lmKHR5cGVvZiAoc3RyKSE9InN0cmluZyIpeworcmV0dXJuIG51bGw7Cit9CitpZighXzI3Nil7CityZXR1cm4gc3RyLnJlcGxhY2UoL15ccysvLCIiKTsKK31lbHNleworcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoIl5bIitfMjc2KyJdKyIpLCIiKTsKK30KK307CitNb2NoaUtpdC5Gb3JtYXQucnN0cmlwPWZ1bmN0aW9uKHN0cixfMjc4KXsKK3N0cj1zdHIrIiI7CitpZih0eXBlb2YgKHN0cikhPSJzdHJpbmciKXsKK3JldHVybiBudWxsOworfQoraWYoIV8yNzgpeworcmV0dXJuIHN0ci5yZXBsYWNlKC9ccyskLywiIik7Cit9ZWxzZXsKK3JldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKCJbIitfMjc4KyJdKyQiKSwiIik7Cit9Cit9OworTW9jaGlLaXQuRm9ybWF0LnN0cmlwPWZ1bmN0aW9uKHN0cixfMjdhKXsKK3ZhciBzZWxmPU1vY2hpS2l0LkZvcm1hdDsKK3JldHVybiBzZWxmLnJzdHJpcChzZWxmLmxzdHJpcChzdHIsXzI3YSksXzI3YSk7Cit9OworTW9jaGlLaXQuRm9ybWF0LnRydW5jVG9GaXhlZD1mdW5jdGlvbihfMjdjLF8yN2QpewordmFyIHJlcz1NYXRoLmZsb29yKF8yN2MpLnRvRml4ZWQoMCk7CitpZihfMjdjPDApeworcmVzPU1hdGguY2VpbChfMjdjKS50b0ZpeGVkKDApOworaWYocmVzLmNoYXJBdCgwKSE9Ii0iJiZfMjdkPjApeworcmVzPSItIityZXM7Cit9Cit9CitpZihyZXMuaW5kZXhPZigiZSIpPDAmJl8yN2Q+MCl7Cit2YXIgdGFpbD1fMjdjLnRvU3RyaW5nKCk7CitpZih0YWlsLmluZGV4T2YoImUiKT4wKXsKK3RhaWw9Ii4iOworfWVsc2V7CitpZih0YWlsLmluZGV4T2YoIi4iKTwwKXsKK3RhaWw9Ii4iOworfWVsc2V7Cit0YWlsPXRhaWwuc3Vic3RyaW5nKHRhaWwuaW5kZXhPZigiLiIpKTsKK30KK30KK2lmKHRhaWwubGVuZ3RoLTE+XzI3ZCl7Cit0YWlsPXRhaWwuc3Vic3RyaW5nKDAsXzI3ZCsxKTsKK30KK3doaWxlKHRhaWwubGVuZ3RoLTE8XzI3ZCl7Cit0YWlsKz0iMCI7Cit9CityZXMrPXRhaWw7Cit9CityZXR1cm4gcmVzOworfTsKK01vY2hpS2l0LkZvcm1hdC5yb3VuZFRvRml4ZWQ9ZnVuY3Rpb24oXzI4MCxfMjgxKXsKK3ZhciBfMjgyPU1hdGguYWJzKF8yODApKzAuNSpNYXRoLnBvdygxMCwtXzI4MSk7Cit2YXIgcmVzPU1vY2hpS2l0LkZvcm1hdC50cnVuY1RvRml4ZWQoXzI4MixfMjgxKTsKK2lmKF8yODA8MCl7CityZXM9Ii0iK3JlczsKK30KK3JldHVybiByZXM7Cit9OworTW9jaGlLaXQuRm9ybWF0LnBlcmNlbnRGb3JtYXQ9ZnVuY3Rpb24oXzI4NCl7CityZXR1cm4gTW9jaGlLaXQuRm9ybWF0LnR3b0RpZ2l0RmxvYXQoMTAwKl8yODQpKyIlIjsKK307CitNb2NoaUtpdC5Gb3JtYXQuRVhQT1JUPVsidHJ1bmNUb0ZpeGVkIiwicm91bmRUb0ZpeGVkIiwibnVtYmVyRm9ybWF0dGVyIiwiZm9ybWF0TG9jYWxlIiwidHdvRGlnaXRBdmVyYWdlIiwidHdvRGlnaXRGbG9hdCIsInBlcmNlbnRGb3JtYXQiLCJsc3RyaXAiLCJyc3RyaXAiLCJzdHJpcCJdOworTW9jaGlLaXQuRm9ybWF0LkxPQ0FMRT17ZW5fVVM6e3NlcGFyYXRvcjoiLCIsZGVjaW1hbDoiLiIscGVyY2VudDoiJSJ9LGRlX0RFOntzZXBhcmF0b3I6Ii4iLGRlY2ltYWw6IiwiLHBlcmNlbnQ6IiUifSxwdF9CUjp7c2VwYXJhdG9yOiIuIixkZWNpbWFsOiIsIixwZXJjZW50OiIlIn0sZnJfRlI6e3NlcGFyYXRvcjoiICIsZGVjaW1hbDoiLCIscGVyY2VudDoiJSJ9LCJkZWZhdWx0IjoiZW5fVVMifTsKK01vY2hpS2l0LkZvcm1hdC5FWFBPUlRfT0s9W107CitNb2NoaUtpdC5Gb3JtYXQuRVhQT1JUX1RBR1M9eyI6YWxsIjpNb2NoaUtpdC5Gb3JtYXQuRVhQT1JULCI6Y29tbW9uIjpNb2NoaUtpdC5Gb3JtYXQuRVhQT1JUfTsKK01vY2hpS2l0LkZvcm1hdC5fX25ld19fPWZ1bmN0aW9uKCl7Cit2YXIgYmFzZT10aGlzLk5BTUUrIi4iOwordmFyIGssdixvOworZm9yKGsgaW4gdGhpcy5MT0NBTEUpeworbz10aGlzLkxPQ0FMRVtrXTsKK2lmKHR5cGVvZiAobyk9PSJvYmplY3QiKXsKK28ucmVwcj1mdW5jdGlvbigpeworcmV0dXJuIHRoaXMuTkFNRTsKK307CitvLk5BTUU9YmFzZSsiTE9DQUxFLiIrazsKK30KK30KK2ZvcihrIGluIHRoaXMpeworbz10aGlzW2tdOworaWYodHlwZW9mIChvKT09ImZ1bmN0aW9uIiYmdHlwZW9mIChvLk5BTUUpPT0idW5kZWZpbmVkIil7Cit0cnl7CitvLk5BTUU9YmFzZStrOworfQorY2F0Y2goZSl7Cit9Cit9Cit9Cit9OworTW9jaGlLaXQuRm9ybWF0Ll9fbmV3X18oKTsKK2lmKHR5cGVvZiAoTW9jaGlLaXQuQmFzZSkhPSJ1bmRlZmluZWQiKXsKK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHModGhpcyxNb2NoaUtpdC5Gb3JtYXQpOworfWVsc2V7CisoZnVuY3Rpb24oXzI4OSxfMjhhKXsKK2lmKCh0eXBlb2YgKEpTQU4pPT0idW5kZWZpbmVkIiYmdHlwZW9mIChkb2pvKT09InVuZGVmaW5lZCIpfHwoTW9jaGlLaXQuX19leHBvcnRfXz09PWZhbHNlKSl7Cit2YXIgYWxsPV8yOGEuRVhQT1JUX1RBR1NbIjphbGwiXTsKK2Zvcih2YXIgaT0wO2k8YWxsLmxlbmd0aDtpKyspeworXzI4OVthbGxbaV1dPV8yOGFbYWxsW2ldXTsKK30KK30KK30pKHRoaXMsTW9jaGlLaXQuRm9ybWF0KTsKK30KK01vY2hpS2l0LkJhc2UuX2RlcHMoIkFzeW5jIixbIkJhc2UiXSk7CitNb2NoaUtpdC5Bc3luYy5OQU1FPSJNb2NoaUtpdC5Bc3luYyI7CitNb2NoaUtpdC5Bc3luYy5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5Bc3luYy5fX3JlcHJfXz1mdW5jdGlvbigpeworcmV0dXJuICJbIit0aGlzLk5BTUUrIiAiK3RoaXMuVkVSU0lPTisiXSI7Cit9OworTW9jaGlLaXQuQXN5bmMudG9TdHJpbmc9ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9fcmVwcl9fKCk7Cit9OworTW9jaGlLaXQuQXN5bmMuRGVmZXJyZWQ9ZnVuY3Rpb24oXzI4ZCl7Cit0aGlzLmNoYWluPVtdOwordGhpcy5pZD10aGlzLl9uZXh0SWQoKTsKK3RoaXMuZmlyZWQ9LTE7Cit0aGlzLnBhdXNlZD0wOwordGhpcy5yZXN1bHRzPVtudWxsLG51bGxdOwordGhpcy5jYW5jZWxsZXI9XzI4ZDsKK3RoaXMuc2lsZW50bHlDYW5jZWxsZWQ9ZmFsc2U7Cit0aGlzLmNoYWluZWQ9ZmFsc2U7Cit9OworTW9jaGlLaXQuQXN5bmMuRGVmZXJyZWQucHJvdG90eXBlPXtyZXByOmZ1bmN0aW9uKCl7Cit2YXIgXzI4ZTsKK2lmKHRoaXMuZmlyZWQ9PS0xKXsKK18yOGU9InVuZmlyZWQiOworfWVsc2V7CitpZih0aGlzLmZpcmVkPT09MCl7CitfMjhlPSJzdWNjZXNzIjsKK31lbHNleworXzI4ZT0iZXJyb3IiOworfQorfQorcmV0dXJuICJEZWZlcnJlZCgiK3RoaXMuaWQrIiwgIitfMjhlKyIpIjsKK30sdG9TdHJpbmc6TW9jaGlLaXQuQmFzZS5mb3J3YXJkQ2FsbCgicmVwciIpLF9uZXh0SWQ6TW9jaGlLaXQuQmFzZS5jb3VudGVyKCksY2FuY2VsOmZ1bmN0aW9uKCl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Bc3luYzsKK2lmKHRoaXMuZmlyZWQ9PS0xKXsKK2lmKHRoaXMuY2FuY2VsbGVyKXsKK3RoaXMuY2FuY2VsbGVyKHRoaXMpOworfWVsc2V7Cit0aGlzLnNpbGVudGx5Q2FuY2VsbGVkPXRydWU7Cit9CitpZih0aGlzLmZpcmVkPT0tMSl7Cit0aGlzLmVycmJhY2sobmV3IHNlbGYuQ2FuY2VsbGVkRXJyb3IodGhpcykpOworfQorfWVsc2V7CitpZigodGhpcy5maXJlZD09PTApJiYodGhpcy5yZXN1bHRzWzBdIGluc3RhbmNlb2Ygc2VsZi5EZWZlcnJlZCkpewordGhpcy5yZXN1bHRzWzBdLmNhbmNlbCgpOworfQorfQorfSxfcmVzYmFjazpmdW5jdGlvbihyZXMpewordGhpcy5maXJlZD0oKHJlcyBpbnN0YW5jZW9mIEVycm9yKT8xOjApOwordGhpcy5yZXN1bHRzW3RoaXMuZmlyZWRdPXJlczsKK3RoaXMuX2ZpcmUoKTsKK30sX2NoZWNrOmZ1bmN0aW9uKCl7CitpZih0aGlzLmZpcmVkIT0tMSl7CitpZighdGhpcy5zaWxlbnRseUNhbmNlbGxlZCl7Cit0aHJvdyBuZXcgTW9jaGlLaXQuQXN5bmMuQWxyZWFkeUNhbGxlZEVycm9yKHRoaXMpOworfQordGhpcy5zaWxlbnRseUNhbmNlbGxlZD1mYWxzZTsKK3JldHVybjsKK30KK30sY2FsbGJhY2s6ZnVuY3Rpb24ocmVzKXsKK3RoaXMuX2NoZWNrKCk7CitpZihyZXMgaW5zdGFuY2VvZiBNb2NoaUtpdC5Bc3luYy5EZWZlcnJlZCl7Cit0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGluc3RhbmNlcyBjYW4gb25seSBiZSBjaGFpbmVkIGlmIHRoZXkgYXJlIHRoZSByZXN1bHQgb2YgYSBjYWxsYmFjayIpOworfQordGhpcy5fcmVzYmFjayhyZXMpOworfSxlcnJiYWNrOmZ1bmN0aW9uKHJlcyl7Cit0aGlzLl9jaGVjaygpOwordmFyIHNlbGY9TW9jaGlLaXQuQXN5bmM7CitpZihyZXMgaW5zdGFuY2VvZiBzZWxmLkRlZmVycmVkKXsKK3Rocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgaW5zdGFuY2VzIGNhbiBvbmx5IGJlIGNoYWluZWQgaWYgdGhleSBhcmUgdGhlIHJlc3VsdCBvZiBhIGNhbGxiYWNrIik7Cit9CitpZighKHJlcyBpbnN0YW5jZW9mIEVycm9yKSl7CityZXM9bmV3IHNlbGYuR2VuZXJpY0Vycm9yKHJlcyk7Cit9Cit0aGlzLl9yZXNiYWNrKHJlcyk7Cit9LGFkZEJvdGg6ZnVuY3Rpb24oZm4peworaWYoYXJndW1lbnRzLmxlbmd0aD4xKXsKK2ZuPU1vY2hpS2l0LkJhc2UucGFydGlhbC5hcHBseShudWxsLGFyZ3VtZW50cyk7Cit9CityZXR1cm4gdGhpcy5hZGRDYWxsYmFja3MoZm4sZm4pOworfSxhZGRDYWxsYmFjazpmdW5jdGlvbihmbil7CitpZihhcmd1bWVudHMubGVuZ3RoPjEpeworZm49TW9jaGlLaXQuQmFzZS5wYXJ0aWFsLmFwcGx5KG51bGwsYXJndW1lbnRzKTsKK30KK3JldHVybiB0aGlzLmFkZENhbGxiYWNrcyhmbixudWxsKTsKK30sYWRkRXJyYmFjazpmdW5jdGlvbihmbil7CitpZihhcmd1bWVudHMubGVuZ3RoPjEpeworZm49TW9jaGlLaXQuQmFzZS5wYXJ0aWFsLmFwcGx5KG51bGwsYXJndW1lbnRzKTsKK30KK3JldHVybiB0aGlzLmFkZENhbGxiYWNrcyhudWxsLGZuKTsKK30sYWRkQ2FsbGJhY2tzOmZ1bmN0aW9uKGNiLGViKXsKK2lmKHRoaXMuY2hhaW5lZCl7Cit0aHJvdyBuZXcgRXJyb3IoIkNoYWluZWQgRGVmZXJyZWRzIGNhbiBub3QgYmUgcmUtdXNlZCIpOworfQordGhpcy5jaGFpbi5wdXNoKFtjYixlYl0pOworaWYodGhpcy5maXJlZD49MCl7Cit0aGlzLl9maXJlKCk7Cit9CityZXR1cm4gdGhpczsKK30sX2ZpcmU6ZnVuY3Rpb24oKXsKK3ZhciBfMjk5PXRoaXMuY2hhaW47Cit2YXIgXzI5YT10aGlzLmZpcmVkOwordmFyIHJlcz10aGlzLnJlc3VsdHNbXzI5YV07Cit2YXIgc2VsZj10aGlzOwordmFyIGNiPW51bGw7Cit3aGlsZShfMjk5Lmxlbmd0aD4wJiZ0aGlzLnBhdXNlZD09PTApewordmFyIHBhaXI9XzI5OS5zaGlmdCgpOwordmFyIGY9cGFpcltfMjlhXTsKK2lmKGY9PT1udWxsKXsKK2NvbnRpbnVlOworfQordHJ5eworcmVzPWYocmVzKTsKK18yOWE9KChyZXMgaW5zdGFuY2VvZiBFcnJvcik/MTowKTsKK2lmKHJlcyBpbnN0YW5jZW9mIE1vY2hpS2l0LkFzeW5jLkRlZmVycmVkKXsKK2NiPWZ1bmN0aW9uKHJlcyl7CitzZWxmLl9yZXNiYWNrKHJlcyk7CitzZWxmLnBhdXNlZC0tOworaWYoKHNlbGYucGF1c2VkPT09MCkmJihzZWxmLmZpcmVkPj0wKSl7CitzZWxmLl9maXJlKCk7Cit9Cit9OwordGhpcy5wYXVzZWQrKzsKK30KK30KK2NhdGNoKGVycil7CitfMjlhPTE7CitpZighKGVyciBpbnN0YW5jZW9mIEVycm9yKSl7CitlcnI9bmV3IE1vY2hpS2l0LkFzeW5jLkdlbmVyaWNFcnJvcihlcnIpOworfQorcmVzPWVycjsKK30KK30KK3RoaXMuZmlyZWQ9XzI5YTsKK3RoaXMucmVzdWx0c1tfMjlhXT1yZXM7CitpZihjYiYmdGhpcy5wYXVzZWQpeworcmVzLmFkZEJvdGgoY2IpOworcmVzLmNoYWluZWQ9dHJ1ZTsKK30KK319OworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuQXN5bmMse2V2YWxKU09OUmVxdWVzdDpmdW5jdGlvbihyZXEpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UuZXZhbEpTT04ocmVxLnJlc3BvbnNlVGV4dCk7Cit9LHN1Y2NlZWQ6ZnVuY3Rpb24oXzJhMil7Cit2YXIgZD1uZXcgTW9jaGlLaXQuQXN5bmMuRGVmZXJyZWQoKTsKK2QuY2FsbGJhY2suYXBwbHkoZCxhcmd1bWVudHMpOworcmV0dXJuIGQ7Cit9LGZhaWw6ZnVuY3Rpb24oXzJhNCl7Cit2YXIgZD1uZXcgTW9jaGlLaXQuQXN5bmMuRGVmZXJyZWQoKTsKK2QuZXJyYmFjay5hcHBseShkLGFyZ3VtZW50cyk7CityZXR1cm4gZDsKK30sZ2V0WE1MSHR0cFJlcXVlc3Q6ZnVuY3Rpb24oKXsKK3ZhciBzZWxmPWFyZ3VtZW50cy5jYWxsZWU7CitpZighc2VsZi5YTUxIdHRwUmVxdWVzdCl7Cit2YXIgXzJhNz1bZnVuY3Rpb24oKXsKK3JldHVybiBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKK30sZnVuY3Rpb24oKXsKK3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiTXN4bWwyLlhNTEhUVFAiKTsKK30sZnVuY3Rpb24oKXsKK3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKK30sZnVuY3Rpb24oKXsKK3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiTXN4bWwyLlhNTEhUVFAuNC4wIik7Cit9LGZ1bmN0aW9uKCl7Cit0aHJvdyBuZXcgTW9jaGlLaXQuQXN5bmMuQnJvd3NlckNvbXBsaWFuY2VFcnJvcigiQnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFhNTEh0dHBSZXF1ZXN0Iik7Cit9XTsKK2Zvcih2YXIgaT0wO2k8XzJhNy5sZW5ndGg7aSsrKXsKK3ZhciBmdW5jPV8yYTdbaV07Cit0cnl7CitzZWxmLlhNTEh0dHBSZXF1ZXN0PWZ1bmM7CityZXR1cm4gZnVuYygpOworfQorY2F0Y2goZSl7Cit9Cit9Cit9CityZXR1cm4gc2VsZi5YTUxIdHRwUmVxdWVzdCgpOworfSxfeGhyX29ucmVhZHlzdGF0ZWNoYW5nZTpmdW5jdGlvbihkKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CitpZih0aGlzLnJlYWR5U3RhdGU9PTQpewordHJ5ewordGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDsKK30KK2NhdGNoKGUpewordHJ5ewordGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U9bS5ub29wOworfQorY2F0Y2goZSl7Cit9Cit9Cit2YXIgXzJhYz1udWxsOwordHJ5eworXzJhYz10aGlzLnN0YXR1czsKK2lmKCFfMmFjJiZtLmlzTm90RW1wdHkodGhpcy5yZXNwb25zZVRleHQpKXsKK18yYWM9MzA0OworfQorfQorY2F0Y2goZSl7Cit9CitpZihfMmFjPT0yMDB8fF8yYWM9PTIwMXx8XzJhYz09MjA0fHxfMmFjPT0zMDR8fF8yYWM9PTEyMjMpeworZC5jYWxsYmFjayh0aGlzKTsKK31lbHNlewordmFyIGVycj1uZXcgTW9jaGlLaXQuQXN5bmMuWE1MSHR0cFJlcXVlc3RFcnJvcih0aGlzLCJSZXF1ZXN0IGZhaWxlZCIpOworaWYoZXJyLm51bWJlcil7CitkLmVycmJhY2soZXJyKTsKK31lbHNleworZC5lcnJiYWNrKGVycik7Cit9Cit9Cit9Cit9LF94aHJfY2FuY2VsbGVyOmZ1bmN0aW9uKHJlcSl7Cit0cnl7CityZXEub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7Cit9CitjYXRjaChlKXsKK3RyeXsKK3JlcS5vbnJlYWR5c3RhdGVjaGFuZ2U9TW9jaGlLaXQuQmFzZS5ub29wOworfQorY2F0Y2goZSl7Cit9Cit9CityZXEuYWJvcnQoKTsKK30sc2VuZFhNTEh0dHBSZXF1ZXN0OmZ1bmN0aW9uKHJlcSxfMmIwKXsKK2lmKHR5cGVvZiAoXzJiMCk9PSJ1bmRlZmluZWQifHxfMmIwPT09bnVsbCl7CitfMmIwPSIiOworfQordmFyIG09TW9jaGlLaXQuQmFzZTsKK3ZhciBzZWxmPU1vY2hpS2l0LkFzeW5jOwordmFyIGQ9bmV3IHNlbGYuRGVmZXJyZWQobS5wYXJ0aWFsKHNlbGYuX3hocl9jYW5jZWxsZXIscmVxKSk7Cit0cnl7CityZXEub25yZWFkeXN0YXRlY2hhbmdlPW0uYmluZChzZWxmLl94aHJfb25yZWFkeXN0YXRlY2hhbmdlLHJlcSxkKTsKK3JlcS5zZW5kKF8yYjApOworfQorY2F0Y2goZSl7Cit0cnl7CityZXEub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7Cit9CitjYXRjaChpZ25vcmUpeworfQorZC5lcnJiYWNrKGUpOworfQorcmV0dXJuIGQ7Cit9LGRvWEhSOmZ1bmN0aW9uKHVybCxvcHRzKXsKK3ZhciBzZWxmPU1vY2hpS2l0LkFzeW5jOworcmV0dXJuIHNlbGYuY2FsbExhdGVyKDAsc2VsZi5fZG9YSFIsdXJsLG9wdHMpOworfSxfZG9YSFI6ZnVuY3Rpb24odXJsLG9wdHMpewordmFyIG09TW9jaGlLaXQuQmFzZTsKK29wdHM9bS51cGRhdGUoe21ldGhvZDoiR0VUIixzZW5kQ29udGVudDoiIn0sb3B0cyk7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Bc3luYzsKK3ZhciByZXE9c2VsZi5nZXRYTUxIdHRwUmVxdWVzdCgpOworaWYob3B0cy5xdWVyeVN0cmluZyl7Cit2YXIgcXM9bS5xdWVyeVN0cmluZyhvcHRzLnF1ZXJ5U3RyaW5nKTsKK2lmKHFzKXsKK3VybCs9Ij8iK3FzOworfQorfQoraWYoInVzZXJuYW1lIiBpbiBvcHRzKXsKK3JlcS5vcGVuKG9wdHMubWV0aG9kLHVybCx0cnVlLG9wdHMudXNlcm5hbWUsb3B0cy5wYXNzd29yZCk7Cit9ZWxzZXsKK3JlcS5vcGVuKG9wdHMubWV0aG9kLHVybCx0cnVlKTsKK30KK2lmKHJlcS5vdmVycmlkZU1pbWVUeXBlJiZvcHRzLm1pbWVUeXBlKXsKK3JlcS5vdmVycmlkZU1pbWVUeXBlKG9wdHMubWltZVR5cGUpOworfQorcmVxLnNldFJlcXVlc3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpOworaWYob3B0cy5oZWFkZXJzKXsKK3ZhciBfMmJkPW9wdHMuaGVhZGVyczsKK2lmKCFtLmlzQXJyYXlMaWtlKF8yYmQpKXsKK18yYmQ9bS5pdGVtcyhfMmJkKTsKK30KK2Zvcih2YXIgaT0wO2k8XzJiZC5sZW5ndGg7aSsrKXsKK3ZhciBfMmJmPV8yYmRbaV07Cit2YXIgbmFtZT1fMmJmWzBdOwordmFyIF8yYzE9XzJiZlsxXTsKK3JlcS5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsXzJjMSk7Cit9Cit9CityZXR1cm4gc2VsZi5zZW5kWE1MSHR0cFJlcXVlc3QocmVxLG9wdHMuc2VuZENvbnRlbnQpOworfSxfYnVpbGRVUkw6ZnVuY3Rpb24odXJsKXsKK2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIHFzPW0ucXVlcnlTdHJpbmcuYXBwbHkobnVsbCxtLmV4dGVuZChudWxsLGFyZ3VtZW50cywxKSk7CitpZihxcyl7CityZXR1cm4gdXJsKyI/IitxczsKK30KK30KK3JldHVybiB1cmw7Cit9LGRvU2ltcGxlWE1MSHR0cFJlcXVlc3Q6ZnVuY3Rpb24odXJsKXsKK3ZhciBzZWxmPU1vY2hpS2l0LkFzeW5jOwordXJsPXNlbGYuX2J1aWxkVVJMLmFwcGx5KHNlbGYsYXJndW1lbnRzKTsKK3JldHVybiBzZWxmLmRvWEhSKHVybCk7Cit9LGxvYWRKU09ORG9jOmZ1bmN0aW9uKHVybCl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Bc3luYzsKK3VybD1zZWxmLl9idWlsZFVSTC5hcHBseShzZWxmLGFyZ3VtZW50cyk7Cit2YXIgZD1zZWxmLmRvWEhSKHVybCx7Im1pbWVUeXBlIjoidGV4dC9wbGFpbiIsImhlYWRlcnMiOltbIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iXV19KTsKK2Q9ZC5hZGRDYWxsYmFjayhzZWxmLmV2YWxKU09OUmVxdWVzdCk7CityZXR1cm4gZDsKK30sd2FpdDpmdW5jdGlvbihfMmNhLF8yY2IpewordmFyIGQ9bmV3IE1vY2hpS2l0LkFzeW5jLkRlZmVycmVkKCk7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworaWYodHlwZW9mIChfMmNiKSE9InVuZGVmaW5lZCIpeworZC5hZGRDYWxsYmFjayhmdW5jdGlvbigpeworcmV0dXJuIF8yY2I7Cit9KTsKK30KK3ZhciBfMmNlPXNldFRpbWVvdXQobS5iaW5kKCJjYWxsYmFjayIsZCksTWF0aC5mbG9vcihfMmNhKjEwMDApKTsKK2QuY2FuY2VsbGVyPWZ1bmN0aW9uKCl7Cit0cnl7CitjbGVhclRpbWVvdXQoXzJjZSk7Cit9CitjYXRjaChlKXsKK30KK307CityZXR1cm4gZDsKK30sY2FsbExhdGVyOmZ1bmN0aW9uKF8yY2YsZnVuYyl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIF8yZDI9bS5wYXJ0aWFsLmFwcGx5KG0sbS5leHRlbmQobnVsbCxhcmd1bWVudHMsMSkpOworcmV0dXJuIE1vY2hpS2l0LkFzeW5jLndhaXQoXzJjZikuYWRkQ2FsbGJhY2soZnVuY3Rpb24ocmVzKXsKK3JldHVybiBfMmQyKCk7Cit9KTsKK319KTsKK01vY2hpS2l0LkFzeW5jLkRlZmVycmVkTG9jaz1mdW5jdGlvbigpewordGhpcy53YWl0aW5nPVtdOwordGhpcy5sb2NrZWQ9ZmFsc2U7Cit0aGlzLmlkPXRoaXMuX25leHRJZCgpOworfTsKK01vY2hpS2l0LkFzeW5jLkRlZmVycmVkTG9jay5wcm90b3R5cGU9e19fY2xhc3NfXzpNb2NoaUtpdC5Bc3luYy5EZWZlcnJlZExvY2ssYWNxdWlyZTpmdW5jdGlvbigpewordmFyIGQ9bmV3IE1vY2hpS2l0LkFzeW5jLkRlZmVycmVkKCk7CitpZih0aGlzLmxvY2tlZCl7Cit0aGlzLndhaXRpbmcucHVzaChkKTsKK31lbHNlewordGhpcy5sb2NrZWQ9dHJ1ZTsKK2QuY2FsbGJhY2sodGhpcyk7Cit9CityZXR1cm4gZDsKK30scmVsZWFzZTpmdW5jdGlvbigpeworaWYoIXRoaXMubG9ja2VkKXsKK3Rocm93IFR5cGVFcnJvcigiVHJpZWQgdG8gcmVsZWFzZSBhbiB1bmxvY2tlZCBEZWZlcnJlZExvY2siKTsKK30KK3RoaXMubG9ja2VkPWZhbHNlOworaWYodGhpcy53YWl0aW5nLmxlbmd0aD4wKXsKK3RoaXMubG9ja2VkPXRydWU7Cit0aGlzLndhaXRpbmcuc2hpZnQoKS5jYWxsYmFjayh0aGlzKTsKK30KK30sX25leHRJZDpNb2NoaUtpdC5CYXNlLmNvdW50ZXIoKSxyZXByOmZ1bmN0aW9uKCl7Cit2YXIgXzJkNTsKK2lmKHRoaXMubG9ja2VkKXsKK18yZDU9ImxvY2tlZCwgIit0aGlzLndhaXRpbmcubGVuZ3RoKyIgd2FpdGluZyI7Cit9ZWxzZXsKK18yZDU9InVubG9ja2VkIjsKK30KK3JldHVybiAiRGVmZXJyZWRMb2NrKCIrdGhpcy5pZCsiLCAiK18yZDUrIikiOworfSx0b1N0cmluZzpNb2NoaUtpdC5CYXNlLmZvcndhcmRDYWxsKCJyZXByIil9OworTW9jaGlLaXQuQXN5bmMuRGVmZXJyZWRMaXN0PWZ1bmN0aW9uKGxpc3QsXzJkNyxfMmQ4LF8yZDksXzJkYSl7CitNb2NoaUtpdC5Bc3luYy5EZWZlcnJlZC5hcHBseSh0aGlzLFtfMmRhXSk7Cit0aGlzLmxpc3Q9bGlzdDsKK3ZhciBfMmRiPVtdOwordGhpcy5yZXN1bHRMaXN0PV8yZGI7Cit0aGlzLmZpbmlzaGVkQ291bnQ9MDsKK3RoaXMuZmlyZU9uT25lQ2FsbGJhY2s9XzJkNzsKK3RoaXMuZmlyZU9uT25lRXJyYmFjaz1fMmQ4OwordGhpcy5jb25zdW1lRXJyb3JzPV8yZDk7Cit2YXIgY2I9TW9jaGlLaXQuQmFzZS5iaW5kKHRoaXMuX2NiRGVmZXJyZWQsdGhpcyk7Citmb3IodmFyIGk9MDtpPGxpc3QubGVuZ3RoO2krKyl7Cit2YXIgZD1saXN0W2ldOworXzJkYi5wdXNoKHVuZGVmaW5lZCk7CitkLmFkZENhbGxiYWNrKGNiLGksdHJ1ZSk7CitkLmFkZEVycmJhY2soY2IsaSxmYWxzZSk7Cit9CitpZihsaXN0Lmxlbmd0aD09PTAmJiFfMmQ3KXsKK3RoaXMuY2FsbGJhY2sodGhpcy5yZXN1bHRMaXN0KTsKK30KK307CitNb2NoaUtpdC5Bc3luYy5EZWZlcnJlZExpc3QucHJvdG90eXBlPW5ldyBNb2NoaUtpdC5Bc3luYy5EZWZlcnJlZCgpOworTW9jaGlLaXQuQXN5bmMuRGVmZXJyZWRMaXN0LnByb3RvdHlwZS5fY2JEZWZlcnJlZD1mdW5jdGlvbihfMmRmLF8yZTAsXzJlMSl7Cit0aGlzLnJlc3VsdExpc3RbXzJkZl09W18yZTAsXzJlMV07Cit0aGlzLmZpbmlzaGVkQ291bnQrPTE7CitpZih0aGlzLmZpcmVkPT0tMSl7CitpZihfMmUwJiZ0aGlzLmZpcmVPbk9uZUNhbGxiYWNrKXsKK3RoaXMuY2FsbGJhY2soW18yZGYsXzJlMV0pOworfWVsc2V7CitpZighXzJlMCYmdGhpcy5maXJlT25PbmVFcnJiYWNrKXsKK3RoaXMuZXJyYmFjayhfMmUxKTsKK31lbHNleworaWYodGhpcy5maW5pc2hlZENvdW50PT10aGlzLmxpc3QubGVuZ3RoKXsKK3RoaXMuY2FsbGJhY2sodGhpcy5yZXN1bHRMaXN0KTsKK30KK30KK30KK30KK2lmKCFfMmUwJiZ0aGlzLmNvbnN1bWVFcnJvcnMpeworXzJlMT1udWxsOworfQorcmV0dXJuIF8yZTE7Cit9OworTW9jaGlLaXQuQXN5bmMuZ2F0aGVyUmVzdWx0cz1mdW5jdGlvbihfMmUyKXsKK3ZhciBkPW5ldyBNb2NoaUtpdC5Bc3luYy5EZWZlcnJlZExpc3QoXzJlMixmYWxzZSx0cnVlLGZhbHNlKTsKK2QuYWRkQ2FsbGJhY2soZnVuY3Rpb24oXzJlNCl7Cit2YXIgcmV0PVtdOworZm9yKHZhciBpPTA7aTxfMmU0Lmxlbmd0aDtpKyspeworcmV0LnB1c2goXzJlNFtpXVsxXSk7Cit9CityZXR1cm4gcmV0OworfSk7CityZXR1cm4gZDsKK307CitNb2NoaUtpdC5Bc3luYy5tYXliZURlZmVycmVkPWZ1bmN0aW9uKGZ1bmMpewordmFyIHNlbGY9TW9jaGlLaXQuQXN5bmM7Cit2YXIgXzJlOTsKK3RyeXsKK3ZhciByPWZ1bmMuYXBwbHkobnVsbCxNb2NoaUtpdC5CYXNlLmV4dGVuZChbXSxhcmd1bWVudHMsMSkpOworaWYociBpbnN0YW5jZW9mIHNlbGYuRGVmZXJyZWQpeworXzJlOT1yOworfWVsc2V7CitpZihyIGluc3RhbmNlb2YgRXJyb3IpeworXzJlOT1zZWxmLmZhaWwocik7Cit9ZWxzZXsKK18yZTk9c2VsZi5zdWNjZWVkKHIpOworfQorfQorfQorY2F0Y2goZSl7CitfMmU5PXNlbGYuZmFpbChlKTsKK30KK3JldHVybiBfMmU5OworfTsKK01vY2hpS2l0LkFzeW5jLkVYUE9SVD1bIkFscmVhZHlDYWxsZWRFcnJvciIsIkNhbmNlbGxlZEVycm9yIiwiQnJvd3NlckNvbXBsaWFuY2VFcnJvciIsIkdlbmVyaWNFcnJvciIsIlhNTEh0dHBSZXF1ZXN0RXJyb3IiLCJEZWZlcnJlZCIsInN1Y2NlZWQiLCJmYWlsIiwiZ2V0WE1MSHR0cFJlcXVlc3QiLCJkb1NpbXBsZVhNTEh0dHBSZXF1ZXN0IiwibG9hZEpTT05Eb2MiLCJ3YWl0IiwiY2FsbExhdGVyIiwic2VuZFhNTEh0dHBSZXF1ZXN0IiwiRGVmZXJyZWRMb2NrIiwiRGVmZXJyZWRMaXN0IiwiZ2F0aGVyUmVzdWx0cyIsIm1heWJlRGVmZXJyZWQiLCJkb1hIUiJdOworTW9jaGlLaXQuQXN5bmMuRVhQT1JUX09LPVsiZXZhbEpTT05SZXF1ZXN0Il07CitNb2NoaUtpdC5Bc3luYy5fX25ld19fPWZ1bmN0aW9uKCl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordmFyIG5lPW0ucGFydGlhbChtLl9uZXdOYW1lZEVycm9yLHRoaXMpOworbmUoIkFscmVhZHlDYWxsZWRFcnJvciIsZnVuY3Rpb24oXzJlZCl7Cit0aGlzLmRlZmVycmVkPV8yZWQ7Cit9KTsKK25lKCJDYW5jZWxsZWRFcnJvciIsZnVuY3Rpb24oXzJlZSl7Cit0aGlzLmRlZmVycmVkPV8yZWU7Cit9KTsKK25lKCJCcm93c2VyQ29tcGxpYW5jZUVycm9yIixmdW5jdGlvbihtc2cpewordGhpcy5tZXNzYWdlPW1zZzsKK30pOworbmUoIkdlbmVyaWNFcnJvciIsZnVuY3Rpb24obXNnKXsKK3RoaXMubWVzc2FnZT1tc2c7Cit9KTsKK25lKCJYTUxIdHRwUmVxdWVzdEVycm9yIixmdW5jdGlvbihyZXEsbXNnKXsKK3RoaXMucmVxPXJlcTsKK3RoaXMubWVzc2FnZT1tc2c7Cit0cnl7Cit0aGlzLm51bWJlcj1yZXEuc3RhdHVzOworfQorY2F0Y2goZSl7Cit9Cit9KTsKK3RoaXMuRVhQT1JUX1RBR1M9eyI6Y29tbW9uIjp0aGlzLkVYUE9SVCwiOmFsbCI6bS5jb25jYXQodGhpcy5FWFBPUlQsdGhpcy5FWFBPUlRfT0spfTsKK20ubmFtZUZ1bmN0aW9ucyh0aGlzKTsKK307CitNb2NoaUtpdC5Bc3luYy5fX25ld19fKCk7CitNb2NoaUtpdC5CYXNlLl9leHBvcnRTeW1ib2xzKHRoaXMsTW9jaGlLaXQuQXN5bmMpOworTW9jaGlLaXQuQmFzZS5fZGVwcygiRE9NIixbIkJhc2UiXSk7CitNb2NoaUtpdC5ET00uTkFNRT0iTW9jaGlLaXQuRE9NIjsKK01vY2hpS2l0LkRPTS5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5ET00uX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0LkRPTS50b1N0cmluZz1mdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK307CitNb2NoaUtpdC5ET00uRVhQT1JUPVsicmVtb3ZlRW1wdHlUZXh0Tm9kZXMiLCJmb3JtQ29udGVudHMiLCJjdXJyZW50V2luZG93IiwiY3VycmVudERvY3VtZW50Iiwid2l0aFdpbmRvdyIsIndpdGhEb2N1bWVudCIsInJlZ2lzdGVyRE9NQ29udmVydGVyIiwiY29lcmNlVG9ET00iLCJjcmVhdGVET00iLCJjcmVhdGVET01GdW5jIiwiaXNDaGlsZE5vZGUiLCJnZXROb2RlQXR0cmlidXRlIiwicmVtb3ZlTm9kZUF0dHJpYnV0ZSIsInNldE5vZGVBdHRyaWJ1dGUiLCJ1cGRhdGVOb2RlQXR0cmlidXRlcyIsImFwcGVuZENoaWxkTm9kZXMiLCJpbnNlcnRTaWJsaW5nTm9kZXNBZnRlciIsImluc2VydFNpYmxpbmdOb2Rlc0JlZm9yZSIsInJlcGxhY2VDaGlsZE5vZGVzIiwicmVtb3ZlRWxlbWVudCIsInN3YXBET00iLCJCVVRUT04iLCJUVCIsIlBSRSIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkJSIiwiQ0FOVkFTIiwiSFIiLCJMQUJFTCIsIlRFWFRBUkVBIiwiRk9STSIsIlNUUk9ORyIsIlNFTEVDVCIsIk9QVElPTiIsIk9QVEdST1VQIiwiTEVHRU5EIiwiRklFTERTRVQiLCJQIiwiVUwiLCJPTCIsIkxJIiwiREwiLCJEVCIsIkREIiwiVEQiLCJUUiIsIlRIRUFEIiwiVEJPRFkiLCJURk9PVCIsIlRBQkxFIiwiVEgiLCJJTlBVVCIsIlNQQU4iLCJBIiwiRElWIiwiSU1HIiwiZ2V0RWxlbWVudCIsIiQiLCJnZXRFbGVtZW50c0J5VGFnQW5kQ2xhc3NOYW1lIiwiYWRkVG9DYWxsU3RhY2siLCJhZGRMb2FkRXZlbnQiLCJmb2N1c09uTG9hZCIsInNldEVsZW1lbnRDbGFzcyIsInRvZ2dsZUVsZW1lbnRDbGFzcyIsImFkZEVsZW1lbnRDbGFzcyIsInJlbW92ZUVsZW1lbnRDbGFzcyIsInN3YXBFbGVtZW50Q2xhc3MiLCJoYXNFbGVtZW50Q2xhc3MiLCJjb21wdXRlZFN0eWxlIiwiZXNjYXBlSFRNTCIsInRvSFRNTCIsImVtaXRIVE1MIiwic2NyYXBlVGV4dCIsImdldEZpcnN0UGFyZW50QnlUYWdBbmRDbGFzc05hbWUiLCJnZXRGaXJzdEVsZW1lbnRCeVRhZ0FuZENsYXNzTmFtZSJdOworTW9jaGlLaXQuRE9NLkVYUE9SVF9PSz1bImRvbUNvbnZlcnRlcnMiXTsKK01vY2hpS2l0LkRPTS5ERVBSRUNBVEVEPVtbImNvbXB1dGVkU3R5bGUiLCJNb2NoaUtpdC5TdHlsZS5nZXRTdHlsZSIsIjEuNCJdLFsiZWxlbWVudERpbWVuc2lvbnMiLCJNb2NoaUtpdC5TdHlsZS5nZXRFbGVtZW50RGltZW5zaW9ucyIsIjEuNCJdLFsiZWxlbWVudFBvc2l0aW9uIiwiTW9jaGlLaXQuU3R5bGUuZ2V0RWxlbWVudFBvc2l0aW9uIiwiMS40Il0sWyJnZXRWaWV3cG9ydERpbWVuc2lvbnMiLCJNb2NoaUtpdC5TdHlsZS5nZXRWaWV3cG9ydERpbWVuc2lvbnMiLCIxLjQiXSxbImhpZGVFbGVtZW50IiwiTW9jaGlLaXQuU3R5bGUuaGlkZUVsZW1lbnQiLCIxLjQiXSxbIm1ha2VDbGlwcGluZyIsIk1vY2hpS2l0LlN0eWxlLm1ha2VDbGlwcGluZyIsIjEuNC4xIl0sWyJtYWtlUG9zaXRpb25lZCIsIk1vY2hpS2l0LlN0eWxlLm1ha2VQb3NpdGlvbmVkIiwiMS40LjEiXSxbInNldEVsZW1lbnREaW1lbnNpb25zIiwiTW9jaGlLaXQuU3R5bGUuc2V0RWxlbWVudERpbWVuc2lvbnMiLCIxLjQiXSxbInNldEVsZW1lbnRQb3NpdGlvbiIsIk1vY2hpS2l0LlN0eWxlLnNldEVsZW1lbnRQb3NpdGlvbiIsIjEuNCJdLFsic2V0RGlzcGxheUZvckVsZW1lbnQiLCJNb2NoaUtpdC5TdHlsZS5zZXREaXNwbGF5Rm9yRWxlbWVudCIsIjEuNCJdLFsic2V0T3BhY2l0eSIsIk1vY2hpS2l0LlN0eWxlLnNldE9wYWNpdHkiLCIxLjQiXSxbInNob3dFbGVtZW50IiwiTW9jaGlLaXQuU3R5bGUuc2hvd0VsZW1lbnQiLCIxLjQiXSxbInVuZG9DbGlwcGluZyIsIk1vY2hpS2l0LlN0eWxlLnVuZG9DbGlwcGluZyIsIjEuNC4xIl0sWyJ1bmRvUG9zaXRpb25lZCIsIk1vY2hpS2l0LlN0eWxlLnVuZG9Qb3NpdGlvbmVkIiwiMS40LjEiXSxbIkNvb3JkaW5hdGVzIiwiTW9jaGlLaXQuU3R5bGUuQ29vcmRpbmF0ZXMiLCIxLjQiXSxbIkRpbWVuc2lvbnMiLCJNb2NoaUtpdC5TdHlsZS5EaW1lbnNpb25zIiwiMS40Il1dOworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuRE9NLHtjdXJyZW50V2luZG93OmZ1bmN0aW9uKCl7CityZXR1cm4gTW9jaGlLaXQuRE9NLl93aW5kb3c7Cit9LGN1cnJlbnREb2N1bWVudDpmdW5jdGlvbigpeworcmV0dXJuIE1vY2hpS2l0LkRPTS5fZG9jdW1lbnQ7Cit9LHdpdGhXaW5kb3c6ZnVuY3Rpb24od2luLGZ1bmMpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOwordmFyIF8yZjY9c2VsZi5fZG9jdW1lbnQ7Cit2YXIgXzJmNz1zZWxmLl93aW5kb3c7Cit2YXIgcnZhbDsKK3RyeXsKK3NlbGYuX3dpbmRvdz13aW47CitzZWxmLl9kb2N1bWVudD13aW4uZG9jdW1lbnQ7CitydmFsPWZ1bmMoKTsKK30KK2NhdGNoKGUpeworc2VsZi5fd2luZG93PV8yZjc7CitzZWxmLl9kb2N1bWVudD1fMmY2OwordGhyb3cgZTsKK30KK3NlbGYuX3dpbmRvdz1fMmY3Oworc2VsZi5fZG9jdW1lbnQ9XzJmNjsKK3JldHVybiBydmFsOworfSxmb3JtQ29udGVudHM6ZnVuY3Rpb24oZWxlbSl7Cit2YXIgXzJmYT1bXTsKK3ZhciBfMmZiPVtdOwordmFyIG09TW9jaGlLaXQuQmFzZTsKK3ZhciBzZWxmPU1vY2hpS2l0LkRPTTsKK2lmKHR5cGVvZiAoZWxlbSk9PSJ1bmRlZmluZWQifHxlbGVtPT09bnVsbCl7CitlbGVtPXNlbGYuX2RvY3VtZW50LmJvZHk7Cit9ZWxzZXsKK2VsZW09c2VsZi5nZXRFbGVtZW50KGVsZW0pOworfQorbS5ub2RlV2FsayhlbGVtLGZ1bmN0aW9uKGVsZW0pewordmFyIG5hbWU9ZWxlbS5uYW1lOworaWYobS5pc05vdEVtcHR5KG5hbWUpKXsKK3ZhciBfMzAwPWVsZW0udGFnTmFtZS50b1VwcGVyQ2FzZSgpOworaWYoXzMwMD09PSJJTlBVVCImJihlbGVtLnR5cGU9PSJyYWRpbyJ8fGVsZW0udHlwZT09ImNoZWNrYm94IikmJiFlbGVtLmNoZWNrZWQpeworcmV0dXJuIG51bGw7Cit9CitpZihfMzAwPT09IlNFTEVDVCIpeworaWYoZWxlbS50eXBlPT0ic2VsZWN0LW9uZSIpeworaWYoZWxlbS5zZWxlY3RlZEluZGV4Pj0wKXsKK3ZhciBvcHQ9ZWxlbS5vcHRpb25zW2VsZW0uc2VsZWN0ZWRJbmRleF07Cit2YXIgdj1vcHQudmFsdWU7CitpZighdil7Cit2YXIgaD1vcHQub3V0ZXJIVE1MOworaWYoaCYmIWgubWF0Y2goL15bXj5dK1xzdmFsdWVccyo9L2kpKXsKK3Y9b3B0LnRleHQ7Cit9Cit9CitfMmZhLnB1c2gobmFtZSk7CitfMmZiLnB1c2godik7CityZXR1cm4gbnVsbDsKK30KK18yZmEucHVzaChuYW1lKTsKK18yZmIucHVzaCgiIik7CityZXR1cm4gbnVsbDsKK31lbHNlewordmFyIG9wdHM9ZWxlbS5vcHRpb25zOworaWYoIW9wdHMubGVuZ3RoKXsKK18yZmEucHVzaChuYW1lKTsKK18yZmIucHVzaCgiIik7CityZXR1cm4gbnVsbDsKK30KK2Zvcih2YXIgaT0wO2k8b3B0cy5sZW5ndGg7aSsrKXsKK3ZhciBvcHQ9b3B0c1tpXTsKK2lmKCFvcHQuc2VsZWN0ZWQpeworY29udGludWU7Cit9Cit2YXIgdj1vcHQudmFsdWU7CitpZighdil7Cit2YXIgaD1vcHQub3V0ZXJIVE1MOworaWYoaCYmIWgubWF0Y2goL15bXj5dK1xzdmFsdWVccyo9L2kpKXsKK3Y9b3B0LnRleHQ7Cit9Cit9CitfMmZhLnB1c2gobmFtZSk7CitfMmZiLnB1c2godik7Cit9CityZXR1cm4gbnVsbDsKK30KK30KK2lmKF8zMDA9PT0iRk9STSJ8fF8zMDA9PT0iUCJ8fF8zMDA9PT0iU1BBTiJ8fF8zMDA9PT0iRElWIil7CityZXR1cm4gZWxlbS5jaGlsZE5vZGVzOworfQorXzJmYS5wdXNoKG5hbWUpOworXzJmYi5wdXNoKGVsZW0udmFsdWV8fCIiKTsKK3JldHVybiBudWxsOworfQorcmV0dXJuIGVsZW0uY2hpbGROb2RlczsKK30pOworcmV0dXJuIFtfMmZhLF8yZmJdOworfSx3aXRoRG9jdW1lbnQ6ZnVuY3Rpb24oZG9jLGZ1bmMpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOwordmFyIF8zMDk9c2VsZi5fZG9jdW1lbnQ7Cit2YXIgcnZhbDsKK3RyeXsKK3NlbGYuX2RvY3VtZW50PWRvYzsKK3J2YWw9ZnVuYygpOworfQorY2F0Y2goZSl7CitzZWxmLl9kb2N1bWVudD1fMzA5OwordGhyb3cgZTsKK30KK3NlbGYuX2RvY3VtZW50PV8zMDk7CityZXR1cm4gcnZhbDsKK30scmVnaXN0ZXJET01Db252ZXJ0ZXI6ZnVuY3Rpb24obmFtZSxfMzBjLHdyYXAsXzMwZSl7CitNb2NoaUtpdC5ET00uZG9tQ29udmVydGVycy5yZWdpc3RlcihuYW1lLF8zMGMsd3JhcCxfMzBlKTsKK30sY29lcmNlVG9ET006ZnVuY3Rpb24obm9kZSxjdHgpewordmFyIG09TW9jaGlLaXQuQmFzZTsKK3ZhciBpbT1Nb2NoaUtpdC5JdGVyOwordmFyIHNlbGY9TW9jaGlLaXQuRE9NOworaWYoaW0pewordmFyIGl0ZXI9aW0uaXRlcjsKK3ZhciBfMzE1PWltLnJlcGVhdDsKK30KK3ZhciBtYXA9bS5tYXA7Cit2YXIgXzMxNz1zZWxmLmRvbUNvbnZlcnRlcnM7Cit2YXIgXzMxOD1hcmd1bWVudHMuY2FsbGVlOwordmFyIF8zMTk9bS5Ob3RGb3VuZDsKK3doaWxlKHRydWUpeworaWYodHlwZW9mIChub2RlKT09InVuZGVmaW5lZCJ8fG5vZGU9PT1udWxsKXsKK3JldHVybiBudWxsOworfQoraWYodHlwZW9mIChub2RlKT09ImZ1bmN0aW9uIiYmdHlwZW9mIChub2RlLmxlbmd0aCk9PSJudW1iZXIiJiYhKG5vZGUgaW5zdGFuY2VvZiBGdW5jdGlvbikpeworbm9kZT1pbT9pbS5saXN0KG5vZGUpOm0uZXh0ZW5kKG51bGwsbm9kZSk7Cit9CitpZih0eXBlb2YgKG5vZGUubm9kZVR5cGUpIT0idW5kZWZpbmVkIiYmbm9kZS5ub2RlVHlwZT4wKXsKK3JldHVybiBub2RlOworfQoraWYodHlwZW9mIChub2RlKT09Im51bWJlciJ8fHR5cGVvZiAobm9kZSk9PSJib29sZWFuIil7Citub2RlPW5vZGUudG9TdHJpbmcoKTsKK30KK2lmKHR5cGVvZiAobm9kZSk9PSJzdHJpbmciKXsKK3JldHVybiBzZWxmLl9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShub2RlKTsKK30KK2lmKHR5cGVvZiAobm9kZS5fX2RvbV9fKT09ImZ1bmN0aW9uIil7Citub2RlPW5vZGUuX19kb21fXyhjdHgpOworY29udGludWU7Cit9CitpZih0eXBlb2YgKG5vZGUuZG9tKT09ImZ1bmN0aW9uIil7Citub2RlPW5vZGUuZG9tKGN0eCk7Citjb250aW51ZTsKK30KK2lmKHR5cGVvZiAobm9kZSk9PSJmdW5jdGlvbiIpeworbm9kZT1ub2RlLmFwcGx5KGN0eCxbY3R4XSk7Citjb250aW51ZTsKK30KK2lmKGltKXsKK3ZhciBfMzFhPW51bGw7Cit0cnl7CitfMzFhPWl0ZXIobm9kZSk7Cit9CitjYXRjaChlKXsKK30KK2lmKF8zMWEpeworcmV0dXJuIG1hcChfMzE4LF8zMWEsXzMxNShjdHgpKTsKK30KK31lbHNleworaWYobS5pc0FycmF5TGlrZShub2RlKSl7Cit2YXIgZnVuYz1mdW5jdGlvbihuKXsKK3JldHVybiBfMzE4KG4sY3R4KTsKK307CityZXR1cm4gbWFwKGZ1bmMsbm9kZSk7Cit9Cit9Cit0cnl7Citub2RlPV8zMTcubWF0Y2gobm9kZSxjdHgpOworY29udGludWU7Cit9CitjYXRjaChlKXsKK2lmKGUhPV8zMTkpewordGhyb3cgZTsKK30KK30KK3JldHVybiBzZWxmLl9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShub2RlLnRvU3RyaW5nKCkpOworfQorcmV0dXJuIHVuZGVmaW5lZDsKK30saXNDaGlsZE5vZGU6ZnVuY3Rpb24obm9kZSxfMzFlKXsKK3ZhciBzZWxmPU1vY2hpS2l0LkRPTTsKK2lmKHR5cGVvZiAobm9kZSk9PSJzdHJpbmciKXsKK25vZGU9c2VsZi5nZXRFbGVtZW50KG5vZGUpOworfQoraWYodHlwZW9mIChfMzFlKT09InN0cmluZyIpeworXzMxZT1zZWxmLmdldEVsZW1lbnQoXzMxZSk7Cit9CitpZih0eXBlb2YgKG5vZGUpPT0idW5kZWZpbmVkInx8bm9kZT09PW51bGwpeworcmV0dXJuIGZhbHNlOworfQord2hpbGUobm9kZSE9bnVsbCYmbm9kZSE9PXNlbGYuX2RvY3VtZW50KXsKK2lmKG5vZGU9PT1fMzFlKXsKK3JldHVybiB0cnVlOworfQorbm9kZT1ub2RlLnBhcmVudE5vZGU7Cit9CityZXR1cm4gZmFsc2U7Cit9LHNldE5vZGVBdHRyaWJ1dGU6ZnVuY3Rpb24obm9kZSxhdHRyLF8zMjIpewordmFyIG89e307CitvW2F0dHJdPV8zMjI7Cit0cnl7CityZXR1cm4gTW9jaGlLaXQuRE9NLnVwZGF0ZU5vZGVBdHRyaWJ1dGVzKG5vZGUsbyk7Cit9CitjYXRjaChlKXsKK30KK3JldHVybiBudWxsOworfSxnZXROb2RlQXR0cmlidXRlOmZ1bmN0aW9uKG5vZGUsYXR0cil7Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007Cit2YXIgXzMyNz1zZWxmLmF0dHJpYnV0ZUFycmF5LnJlbmFtZXNbYXR0cl07Cit2YXIgXzMyOD1zZWxmLmF0dHJpYnV0ZUFycmF5Lmlnbm9yZUF0dHJbYXR0cl07Citub2RlPXNlbGYuZ2V0RWxlbWVudChub2RlKTsKK3RyeXsKK2lmKF8zMjcpeworcmV0dXJuIG5vZGVbXzMyN107Cit9Cit2YXIgXzMyOT1ub2RlLmdldEF0dHJpYnV0ZShhdHRyKTsKK2lmKF8zMjkhPV8zMjgpeworcmV0dXJuIF8zMjk7Cit9Cit9CitjYXRjaChlKXsKK30KK3JldHVybiBudWxsOworfSxyZW1vdmVOb2RlQXR0cmlidXRlOmZ1bmN0aW9uKG5vZGUsYXR0cil7Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007Cit2YXIgXzMyZD1zZWxmLmF0dHJpYnV0ZUFycmF5LnJlbmFtZXNbYXR0cl07Citub2RlPXNlbGYuZ2V0RWxlbWVudChub2RlKTsKK3RyeXsKK2lmKF8zMmQpeworcmV0dXJuIG5vZGVbXzMyZF07Cit9CityZXR1cm4gbm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0cik7Cit9CitjYXRjaChlKXsKK30KK3JldHVybiBudWxsOworfSx1cGRhdGVOb2RlQXR0cmlidXRlczpmdW5jdGlvbihub2RlLF8zMmYpewordmFyIGVsZW09bm9kZTsKK3ZhciBzZWxmPU1vY2hpS2l0LkRPTTsKK2lmKHR5cGVvZiAobm9kZSk9PSJzdHJpbmciKXsKK2VsZW09c2VsZi5nZXRFbGVtZW50KG5vZGUpOworfQoraWYoXzMyZil7Cit2YXIgXzMzMj1Nb2NoaUtpdC5CYXNlLnVwZGF0ZXRyZWU7CitpZihzZWxmLmF0dHJpYnV0ZUFycmF5LmNvbXBsaWFudCl7Citmb3IodmFyIGsgaW4gXzMyZil7Cit2YXIgdj1fMzJmW2tdOworaWYodHlwZW9mICh2KT09Im9iamVjdCImJnR5cGVvZiAoZWxlbVtrXSk9PSJvYmplY3QiKXsKK2lmKGs9PSJzdHlsZSImJk1vY2hpS2l0LlN0eWxlKXsKK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKGVsZW0sdik7Cit9ZWxzZXsKK18zMzIoZWxlbVtrXSx2KTsKK30KK31lbHNleworaWYoay5zdWJzdHJpbmcoMCwyKT09Im9uIil7CitpZih0eXBlb2YgKHYpPT0ic3RyaW5nIil7Cit2PW5ldyBGdW5jdGlvbih2KTsKK30KK2VsZW1ba109djsKK31lbHNleworZWxlbS5zZXRBdHRyaWJ1dGUoayx2KTsKK30KK30KK2lmKHR5cGVvZiAoZWxlbVtrXSk9PSJzdHJpbmciJiZlbGVtW2tdIT12KXsKK2VsZW1ba109djsKK30KK30KK31lbHNlewordmFyIF8zMzU9c2VsZi5hdHRyaWJ1dGVBcnJheS5yZW5hbWVzOworZm9yKHZhciBrIGluIF8zMmYpewordj1fMzJmW2tdOwordmFyIF8zMzY9XzMzNVtrXTsKK2lmKGs9PSJzdHlsZSImJnR5cGVvZiAodik9PSJzdHJpbmciKXsKK2VsZW0uc3R5bGUuY3NzVGV4dD12OworfWVsc2V7CitpZih0eXBlb2YgKF8zMzYpPT0ic3RyaW5nIil7CitlbGVtW18zMzZdPXY7Cit9ZWxzZXsKK2lmKHR5cGVvZiAoZWxlbVtrXSk9PSJvYmplY3QiJiZ0eXBlb2YgKHYpPT0ib2JqZWN0Iil7CitpZihrPT0ic3R5bGUiJiZNb2NoaUtpdC5TdHlsZSl7CitNb2NoaUtpdC5TdHlsZS5zZXRTdHlsZShlbGVtLHYpOworfWVsc2V7CitfMzMyKGVsZW1ba10sdik7Cit9Cit9ZWxzZXsKK2lmKGsuc3Vic3RyaW5nKDAsMik9PSJvbiIpeworaWYodHlwZW9mICh2KT09InN0cmluZyIpewordj1uZXcgRnVuY3Rpb24odik7Cit9CitlbGVtW2tdPXY7Cit9ZWxzZXsKK2VsZW0uc2V0QXR0cmlidXRlKGssdik7Cit9Cit9Cit9Cit9CitpZih0eXBlb2YgKGVsZW1ba10pPT0ic3RyaW5nIiYmZWxlbVtrXSE9dil7CitlbGVtW2tdPXY7Cit9Cit9Cit9Cit9CityZXR1cm4gZWxlbTsKK30sYXBwZW5kQ2hpbGROb2RlczpmdW5jdGlvbihub2RlKXsKK3ZhciBlbGVtPW5vZGU7Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007CitpZih0eXBlb2YgKG5vZGUpPT0ic3RyaW5nIil7CitlbGVtPXNlbGYuZ2V0RWxlbWVudChub2RlKTsKK30KK3ZhciBfMzNhPVtzZWxmLmNvZXJjZVRvRE9NKE1vY2hpS2l0LkJhc2UuZXh0ZW5kKG51bGwsYXJndW1lbnRzLDEpLGVsZW0pXTsKK3ZhciBfMzNiPU1vY2hpS2l0LkJhc2UuY29uY2F0Oword2hpbGUoXzMzYS5sZW5ndGgpewordmFyIG49XzMzYS5zaGlmdCgpOworaWYodHlwZW9mIChuKT09InVuZGVmaW5lZCJ8fG49PT1udWxsKXsKK31lbHNleworaWYodHlwZW9mIChuLm5vZGVUeXBlKT09Im51bWJlciIpeworZWxlbS5hcHBlbmRDaGlsZChuKTsKK31lbHNleworXzMzYT1fMzNiKG4sXzMzYSk7Cit9Cit9Cit9CityZXR1cm4gZWxlbTsKK30saW5zZXJ0U2libGluZ05vZGVzQmVmb3JlOmZ1bmN0aW9uKG5vZGUpewordmFyIGVsZW09bm9kZTsKK3ZhciBzZWxmPU1vY2hpS2l0LkRPTTsKK2lmKHR5cGVvZiAobm9kZSk9PSJzdHJpbmciKXsKK2VsZW09c2VsZi5nZXRFbGVtZW50KG5vZGUpOworfQordmFyIF8zNDA9W3NlbGYuY29lcmNlVG9ET00oTW9jaGlLaXQuQmFzZS5leHRlbmQobnVsbCxhcmd1bWVudHMsMSksZWxlbSldOwordmFyIF8zNDE9ZWxlbS5wYXJlbnROb2RlOwordmFyIF8zNDI9TW9jaGlLaXQuQmFzZS5jb25jYXQ7Cit3aGlsZShfMzQwLmxlbmd0aCl7Cit2YXIgbj1fMzQwLnNoaWZ0KCk7CitpZih0eXBlb2YgKG4pPT0idW5kZWZpbmVkInx8bj09PW51bGwpeworfWVsc2V7CitpZih0eXBlb2YgKG4ubm9kZVR5cGUpPT0ibnVtYmVyIil7CitfMzQxLmluc2VydEJlZm9yZShuLGVsZW0pOworfWVsc2V7CitfMzQwPV8zNDIobixfMzQwKTsKK30KK30KK30KK3JldHVybiBfMzQxOworfSxpbnNlcnRTaWJsaW5nTm9kZXNBZnRlcjpmdW5jdGlvbihub2RlKXsKK3ZhciBlbGVtPW5vZGU7Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007CitpZih0eXBlb2YgKG5vZGUpPT0ic3RyaW5nIil7CitlbGVtPXNlbGYuZ2V0RWxlbWVudChub2RlKTsKK30KK3ZhciBfMzQ3PVtzZWxmLmNvZXJjZVRvRE9NKE1vY2hpS2l0LkJhc2UuZXh0ZW5kKG51bGwsYXJndW1lbnRzLDEpLGVsZW0pXTsKK2lmKGVsZW0ubmV4dFNpYmxpbmcpeworcmV0dXJuIHNlbGYuaW5zZXJ0U2libGluZ05vZGVzQmVmb3JlKGVsZW0ubmV4dFNpYmxpbmcsXzM0Nyk7Cit9ZWxzZXsKK3JldHVybiBzZWxmLmFwcGVuZENoaWxkTm9kZXMoZWxlbS5wYXJlbnROb2RlLF8zNDcpOworfQorfSxyZXBsYWNlQ2hpbGROb2RlczpmdW5jdGlvbihub2RlKXsKK3ZhciBlbGVtPW5vZGU7Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007CitpZih0eXBlb2YgKG5vZGUpPT0ic3RyaW5nIil7CitlbGVtPXNlbGYuZ2V0RWxlbWVudChub2RlKTsKK2FyZ3VtZW50c1swXT1lbGVtOworfQordmFyIF8zNGI7Cit3aGlsZSgoXzM0Yj1lbGVtLmZpcnN0Q2hpbGQpKXsKK2VsZW0ucmVtb3ZlQ2hpbGQoXzM0Yik7Cit9CitpZihhcmd1bWVudHMubGVuZ3RoPDIpeworcmV0dXJuIGVsZW07Cit9ZWxzZXsKK3JldHVybiBzZWxmLmFwcGVuZENoaWxkTm9kZXMuYXBwbHkodGhpcyxhcmd1bWVudHMpOworfQorfSxjcmVhdGVET006ZnVuY3Rpb24obmFtZSxfMzRkKXsKK3ZhciBlbGVtOwordmFyIHNlbGY9TW9jaGlLaXQuRE9NOwordmFyIG09TW9jaGlLaXQuQmFzZTsKK2lmKHR5cGVvZiAoXzM0ZCk9PSJzdHJpbmcifHx0eXBlb2YgKF8zNGQpPT0ibnVtYmVyIil7Cit2YXIgYXJncz1tLmV4dGVuZChbbmFtZSxudWxsXSxhcmd1bWVudHMsMSk7CityZXR1cm4gYXJndW1lbnRzLmNhbGxlZS5hcHBseSh0aGlzLGFyZ3MpOworfQoraWYodHlwZW9mIChuYW1lKT09InN0cmluZyIpewordmFyIF8zNTI9c2VsZi5feGh0bWw7CitpZihfMzRkJiYhc2VsZi5hdHRyaWJ1dGVBcnJheS5jb21wbGlhbnQpewordmFyIF8zNTM9IiI7CitpZigibmFtZSIgaW4gXzM0ZCl7CitfMzUzKz0iIG5hbWU9XCIiK3NlbGYuZXNjYXBlSFRNTChfMzRkLm5hbWUpKyJcIiI7Cit9CitpZihuYW1lPT0iaW5wdXQiJiYidHlwZSIgaW4gXzM0ZCl7CitfMzUzKz0iIHR5cGU9XCIiK3NlbGYuZXNjYXBlSFRNTChfMzRkLnR5cGUpKyJcIiI7Cit9CitpZihfMzUzKXsKK25hbWU9IjwiK25hbWUrXzM1MysiPiI7CitfMzUyPWZhbHNlOworfQorfQordmFyIGQ9c2VsZi5fZG9jdW1lbnQ7CitpZihfMzUyJiZkPT09ZG9jdW1lbnQpeworZWxlbT1kLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsbmFtZSk7Cit9ZWxzZXsKK2VsZW09ZC5jcmVhdGVFbGVtZW50KG5hbWUpOworfQorfWVsc2V7CitlbGVtPW5hbWU7Cit9CitpZihfMzRkKXsKK3NlbGYudXBkYXRlTm9kZUF0dHJpYnV0ZXMoZWxlbSxfMzRkKTsKK30KK2lmKGFyZ3VtZW50cy5sZW5ndGg8PTIpeworcmV0dXJuIGVsZW07Cit9ZWxzZXsKK3ZhciBhcmdzPW0uZXh0ZW5kKFtlbGVtXSxhcmd1bWVudHMsMik7CityZXR1cm4gc2VsZi5hcHBlbmRDaGlsZE5vZGVzLmFwcGx5KHRoaXMsYXJncyk7Cit9Cit9LGNyZWF0ZURPTUZ1bmM6ZnVuY3Rpb24oKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CityZXR1cm4gbS5wYXJ0aWFsLmFwcGx5KHRoaXMsbS5leHRlbmQoW01vY2hpS2l0LkRPTS5jcmVhdGVET01dLGFyZ3VtZW50cykpOworfSxyZW1vdmVFbGVtZW50OmZ1bmN0aW9uKGVsZW0pewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOwordmFyIGU9c2VsZi5jb2VyY2VUb0RPTShzZWxmLmdldEVsZW1lbnQoZWxlbSkpOworZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpOworcmV0dXJuIGU7Cit9LHN3YXBET006ZnVuY3Rpb24oZGVzdCxzcmMpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOworZGVzdD1zZWxmLmdldEVsZW1lbnQoZGVzdCk7Cit2YXIgXzM1Yz1kZXN0LnBhcmVudE5vZGU7CitpZihzcmMpeworc3JjPXNlbGYuY29lcmNlVG9ET00oc2VsZi5nZXRFbGVtZW50KHNyYyksXzM1Yyk7CitfMzVjLnJlcGxhY2VDaGlsZChzcmMsZGVzdCk7Cit9ZWxzZXsKK18zNWMucmVtb3ZlQ2hpbGQoZGVzdCk7Cit9CityZXR1cm4gc3JjOworfSxnZXRFbGVtZW50OmZ1bmN0aW9uKGlkKXsKK3ZhciBzZWxmPU1vY2hpS2l0LkRPTTsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpeworcmV0dXJuICgodHlwZW9mIChpZCk9PSJzdHJpbmciKT9zZWxmLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk6aWQpOworfWVsc2V7CityZXR1cm4gTW9jaGlLaXQuQmFzZS5tYXAoc2VsZi5nZXRFbGVtZW50LGFyZ3VtZW50cyk7Cit9Cit9LGdldEVsZW1lbnRzQnlUYWdBbmRDbGFzc05hbWU6ZnVuY3Rpb24oXzM1ZixfMzYwLF8zNjEpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOworaWYodHlwZW9mIChfMzVmKT09InVuZGVmaW5lZCJ8fF8zNWY9PT1udWxsKXsKK18zNWY9IioiOworfQoraWYodHlwZW9mIChfMzYxKT09InVuZGVmaW5lZCJ8fF8zNjE9PT1udWxsKXsKK18zNjE9c2VsZi5fZG9jdW1lbnQ7Cit9CitfMzYxPXNlbGYuZ2V0RWxlbWVudChfMzYxKTsKK2lmKF8zNjE9PW51bGwpeworcmV0dXJuIFtdOworfQordmFyIF8zNjM9KF8zNjEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXzM1Zil8fHNlbGYuX2RvY3VtZW50LmFsbCk7CitpZih0eXBlb2YgKF8zNjApPT0idW5kZWZpbmVkInx8XzM2MD09PW51bGwpeworcmV0dXJuIE1vY2hpS2l0LkJhc2UuZXh0ZW5kKG51bGwsXzM2Myk7Cit9Cit2YXIgXzM2ND1bXTsKK2Zvcih2YXIgaT0wO2k8XzM2My5sZW5ndGg7aSsrKXsKK3ZhciBfMzY2PV8zNjNbaV07Cit2YXIgY2xzPV8zNjYuY2xhc3NOYW1lOworaWYodHlwZW9mIChjbHMpIT0ic3RyaW5nIil7CitjbHM9XzM2Ni5nZXRBdHRyaWJ1dGUoImNsYXNzIik7Cit9CitpZih0eXBlb2YgKGNscyk9PSJzdHJpbmciKXsKK3ZhciBfMzY4PWNscy5zcGxpdCgiICIpOworZm9yKHZhciBqPTA7ajxfMzY4Lmxlbmd0aDtqKyspeworaWYoXzM2OFtqXT09XzM2MCl7CitfMzY0LnB1c2goXzM2Nik7CiticmVhazsKK30KK30KK30KK30KK3JldHVybiBfMzY0OworfSxfbmV3Q2FsbFN0YWNrOmZ1bmN0aW9uKHBhdGgsb25jZSl7Cit2YXIgcnZhbD1mdW5jdGlvbigpewordmFyIF8zNmQ9YXJndW1lbnRzLmNhbGxlZS5jYWxsU3RhY2s7Citmb3IodmFyIGk9MDtpPF8zNmQubGVuZ3RoO2krKyl7CitpZihfMzZkW2ldLmFwcGx5KHRoaXMsYXJndW1lbnRzKT09PWZhbHNlKXsKK2JyZWFrOworfQorfQoraWYob25jZSl7Cit0cnl7Cit0aGlzW3BhdGhdPW51bGw7Cit9CitjYXRjaChlKXsKK30KK30KK307CitydmFsLmNhbGxTdGFjaz1bXTsKK3JldHVybiBydmFsOworfSxhZGRUb0NhbGxTdGFjazpmdW5jdGlvbihfMzZmLHBhdGgsZnVuYyxvbmNlKXsKK3ZhciBzZWxmPU1vY2hpS2l0LkRPTTsKK3ZhciBfMzc0PV8zNmZbcGF0aF07Cit2YXIgXzM3NT1fMzc0OworaWYoISh0eXBlb2YgKF8zNzQpPT0iZnVuY3Rpb24iJiZ0eXBlb2YgKF8zNzQuY2FsbFN0YWNrKT09Im9iamVjdCImJl8zNzQuY2FsbFN0YWNrIT09bnVsbCkpeworXzM3NT1zZWxmLl9uZXdDYWxsU3RhY2socGF0aCxvbmNlKTsKK2lmKHR5cGVvZiAoXzM3NCk9PSJmdW5jdGlvbiIpeworXzM3NS5jYWxsU3RhY2sucHVzaChfMzc0KTsKK30KK18zNmZbcGF0aF09XzM3NTsKK30KK18zNzUuY2FsbFN0YWNrLnB1c2goZnVuYyk7Cit9LGFkZExvYWRFdmVudDpmdW5jdGlvbihmdW5jKXsKK3ZhciBzZWxmPU1vY2hpS2l0LkRPTTsKK3NlbGYuYWRkVG9DYWxsU3RhY2soc2VsZi5fd2luZG93LCJvbmxvYWQiLGZ1bmMsdHJ1ZSk7Cit9LGZvY3VzT25Mb2FkOmZ1bmN0aW9uKF8zNzgpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOworc2VsZi5hZGRMb2FkRXZlbnQoZnVuY3Rpb24oKXsKK18zNzg9c2VsZi5nZXRFbGVtZW50KF8zNzgpOworaWYoXzM3OCl7CitfMzc4LmZvY3VzKCk7Cit9Cit9KTsKK30sc2V0RWxlbWVudENsYXNzOmZ1bmN0aW9uKF8zN2EsXzM3Yil7Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007Cit2YXIgb2JqPXNlbGYuZ2V0RWxlbWVudChfMzdhKTsKK2lmKHNlbGYuYXR0cmlidXRlQXJyYXkuY29tcGxpYW50KXsKK29iai5zZXRBdHRyaWJ1dGUoImNsYXNzIixfMzdiKTsKK31lbHNleworb2JqLnNldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIixfMzdiKTsKK30KK30sdG9nZ2xlRWxlbWVudENsYXNzOmZ1bmN0aW9uKF8zN2UpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOworZm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7Cit2YXIgb2JqPXNlbGYuZ2V0RWxlbWVudChhcmd1bWVudHNbaV0pOworaWYoIXNlbGYuYWRkRWxlbWVudENsYXNzKG9iaixfMzdlKSl7CitzZWxmLnJlbW92ZUVsZW1lbnRDbGFzcyhvYmosXzM3ZSk7Cit9Cit9Cit9LGFkZEVsZW1lbnRDbGFzczpmdW5jdGlvbihfMzgyLF8zODMpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOwordmFyIG9iaj1zZWxmLmdldEVsZW1lbnQoXzM4Mik7Cit2YXIgY2xzPW9iai5jbGFzc05hbWU7CitpZih0eXBlb2YgKGNscykhPSJzdHJpbmciKXsKK2Nscz1vYmouZ2V0QXR0cmlidXRlKCJjbGFzcyIpOworfQoraWYodHlwZW9mIChjbHMpIT0ic3RyaW5nInx8Y2xzLmxlbmd0aD09PTApeworc2VsZi5zZXRFbGVtZW50Q2xhc3Mob2JqLF8zODMpOworcmV0dXJuIHRydWU7Cit9CitpZihjbHM9PV8zODMpeworcmV0dXJuIGZhbHNlOworfQordmFyIF8zODc9Y2xzLnNwbGl0KCIgIik7Citmb3IodmFyIGk9MDtpPF8zODcubGVuZ3RoO2krKyl7CitpZihfMzg3W2ldPT1fMzgzKXsKK3JldHVybiBmYWxzZTsKK30KK30KK3NlbGYuc2V0RWxlbWVudENsYXNzKG9iaixjbHMrIiAiK18zODMpOworcmV0dXJuIHRydWU7Cit9LHJlbW92ZUVsZW1lbnRDbGFzczpmdW5jdGlvbihfMzg5LF8zOGEpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOwordmFyIG9iaj1zZWxmLmdldEVsZW1lbnQoXzM4OSk7Cit2YXIgY2xzPW9iai5jbGFzc05hbWU7CitpZih0eXBlb2YgKGNscykhPSJzdHJpbmciKXsKK2Nscz1vYmouZ2V0QXR0cmlidXRlKCJjbGFzcyIpOworfQoraWYodHlwZW9mIChjbHMpIT0ic3RyaW5nInx8Y2xzLmxlbmd0aD09PTApeworcmV0dXJuIGZhbHNlOworfQoraWYoY2xzPT1fMzhhKXsKK3NlbGYuc2V0RWxlbWVudENsYXNzKG9iaiwiIik7CityZXR1cm4gdHJ1ZTsKK30KK3ZhciBfMzhlPWNscy5zcGxpdCgiICIpOworZm9yKHZhciBpPTA7aTxfMzhlLmxlbmd0aDtpKyspeworaWYoXzM4ZVtpXT09XzM4YSl7CitfMzhlLnNwbGljZShpLDEpOworc2VsZi5zZXRFbGVtZW50Q2xhc3Mob2JqLF8zOGUuam9pbigiICIpKTsKK3JldHVybiB0cnVlOworfQorfQorcmV0dXJuIGZhbHNlOworfSxzd2FwRWxlbWVudENsYXNzOmZ1bmN0aW9uKF8zOTAsXzM5MSxfMzkyKXsKK3ZhciBvYmo9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzM5MCk7Cit2YXIgcmVzPU1vY2hpS2l0LkRPTS5yZW1vdmVFbGVtZW50Q2xhc3Mob2JqLF8zOTEpOworaWYocmVzKXsKK01vY2hpS2l0LkRPTS5hZGRFbGVtZW50Q2xhc3Mob2JqLF8zOTIpOworfQorcmV0dXJuIHJlczsKK30saGFzRWxlbWVudENsYXNzOmZ1bmN0aW9uKF8zOTUsXzM5Nil7Cit2YXIgb2JqPU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KF8zOTUpOworaWYob2JqPT1udWxsKXsKK3JldHVybiBmYWxzZTsKK30KK3ZhciBjbHM9b2JqLmNsYXNzTmFtZTsKK2lmKHR5cGVvZiAoY2xzKSE9InN0cmluZyIpeworY2xzPW9iai5nZXRBdHRyaWJ1dGUoImNsYXNzIik7Cit9CitpZih0eXBlb2YgKGNscykhPSJzdHJpbmciKXsKK3JldHVybiBmYWxzZTsKK30KK3ZhciBfMzk5PWNscy5zcGxpdCgiICIpOworZm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7Cit2YXIgZ29vZD1mYWxzZTsKK2Zvcih2YXIgaj0wO2o8XzM5OS5sZW5ndGg7aisrKXsKK2lmKF8zOTlbal09PWFyZ3VtZW50c1tpXSl7Citnb29kPXRydWU7CiticmVhazsKK30KK30KK2lmKCFnb29kKXsKK3JldHVybiBmYWxzZTsKK30KK30KK3JldHVybiB0cnVlOworfSxlc2NhcGVIVE1MOmZ1bmN0aW9uKHMpeworcmV0dXJuIHMucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iik7Cit9LHRvSFRNTDpmdW5jdGlvbihkb20peworcmV0dXJuIE1vY2hpS2l0LkRPTS5lbWl0SFRNTChkb20pLmpvaW4oIiIpOworfSxlbWl0SFRNTDpmdW5jdGlvbihkb20sbHN0KXsKK2lmKHR5cGVvZiAobHN0KT09InVuZGVmaW5lZCJ8fGxzdD09PW51bGwpeworbHN0PVtdOworfQordmFyIF8zYTE9W2RvbV07Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007Cit2YXIgXzNhMz1zZWxmLmVzY2FwZUhUTUw7Cit2YXIgXzNhND1zZWxmLmF0dHJpYnV0ZUFycmF5Oword2hpbGUoXzNhMS5sZW5ndGgpeworZG9tPV8zYTEucG9wKCk7CitpZih0eXBlb2YgKGRvbSk9PSJzdHJpbmciKXsKK2xzdC5wdXNoKGRvbSk7Cit9ZWxzZXsKK2lmKGRvbS5ub2RlVHlwZT09MSl7Citsc3QucHVzaCgiPCIrZG9tLnRhZ05hbWUudG9Mb3dlckNhc2UoKSk7Cit2YXIgXzNhNT1bXTsKK3ZhciBfM2E2PV8zYTQoZG9tKTsKK2Zvcih2YXIgaT0wO2k8XzNhNi5sZW5ndGg7aSsrKXsKK3ZhciBhPV8zYTZbaV07CitfM2E1LnB1c2goWyIgIixhLm5hbWUsIj1cIiIsXzNhMyhhLnZhbHVlKSwiXCIiXSk7Cit9CitfM2E1LnNvcnQoKTsKK2ZvcihpPTA7aTxfM2E1Lmxlbmd0aDtpKyspewordmFyIF8zYTk9XzNhNVtpXTsKK2Zvcih2YXIgaj0wO2o8XzNhOS5sZW5ndGg7aisrKXsKK2xzdC5wdXNoKF8zYTlbal0pOworfQorfQoraWYoZG9tLmhhc0NoaWxkTm9kZXMoKSl7Citsc3QucHVzaCgiPiIpOworXzNhMS5wdXNoKCI8LyIrZG9tLnRhZ05hbWUudG9Mb3dlckNhc2UoKSsiPiIpOwordmFyIF8zYWI9ZG9tLmNoaWxkTm9kZXM7Citmb3IoaT1fM2FiLmxlbmd0aC0xO2k+PTA7aS0tKXsKK18zYTEucHVzaChfM2FiW2ldKTsKK30KK31lbHNleworbHN0LnB1c2goIi8+Iik7Cit9Cit9ZWxzZXsKK2lmKGRvbS5ub2RlVHlwZT09Myl7Citsc3QucHVzaChfM2EzKGRvbS5ub2RlVmFsdWUpKTsKK30KK30KK30KK30KK3JldHVybiBsc3Q7Cit9LHNjcmFwZVRleHQ6ZnVuY3Rpb24obm9kZSxfM2FkKXsKK3ZhciBydmFsPVtdOworKGZ1bmN0aW9uKG5vZGUpewordmFyIGNuPW5vZGUuY2hpbGROb2RlczsKK2lmKGNuKXsKK2Zvcih2YXIgaT0wO2k8Y24ubGVuZ3RoO2krKyl7Cithcmd1bWVudHMuY2FsbGVlLmNhbGwodGhpcyxjbltpXSk7Cit9Cit9Cit2YXIgXzNiMj1ub2RlLm5vZGVWYWx1ZTsKK2lmKHR5cGVvZiAoXzNiMik9PSJzdHJpbmciKXsKK3J2YWwucHVzaChfM2IyKTsKK30KK30pKE1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KG5vZGUpKTsKK2lmKF8zYWQpeworcmV0dXJuIHJ2YWw7Cit9ZWxzZXsKK3JldHVybiBydmFsLmpvaW4oIiIpOworfQorfSxyZW1vdmVFbXB0eVRleHROb2RlczpmdW5jdGlvbihfM2IzKXsKK18zYjM9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzNiMyk7Citmb3IodmFyIGk9MDtpPF8zYjMuY2hpbGROb2Rlcy5sZW5ndGg7aSsrKXsKK3ZhciBub2RlPV8zYjMuY2hpbGROb2Rlc1tpXTsKK2lmKG5vZGUubm9kZVR5cGU9PTMmJiEvXFMvLnRlc3Qobm9kZS5ub2RlVmFsdWUpKXsKK25vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTsKK30KK30KK30sZ2V0Rmlyc3RFbGVtZW50QnlUYWdBbmRDbGFzc05hbWU6ZnVuY3Rpb24oXzNiNixfM2I3LF8zYjgpewordmFyIHNlbGY9TW9jaGlLaXQuRE9NOworaWYodHlwZW9mIChfM2I2KT09InVuZGVmaW5lZCJ8fF8zYjY9PT1udWxsKXsKK18zYjY9IioiOworfQoraWYodHlwZW9mIChfM2I4KT09InVuZGVmaW5lZCJ8fF8zYjg9PT1udWxsKXsKK18zYjg9c2VsZi5fZG9jdW1lbnQ7Cit9CitfM2I4PXNlbGYuZ2V0RWxlbWVudChfM2I4KTsKK2lmKF8zYjg9PW51bGwpeworcmV0dXJuIG51bGw7Cit9Cit2YXIgXzNiYT0oXzNiOC5nZXRFbGVtZW50c0J5VGFnTmFtZShfM2I2KXx8c2VsZi5fZG9jdW1lbnQuYWxsKTsKK2lmKF8zYmEubGVuZ3RoPD0wKXsKK3JldHVybiBudWxsOworfWVsc2V7CitpZih0eXBlb2YgKF8zYjcpPT0idW5kZWZpbmVkInx8XzNiNz09PW51bGwpeworcmV0dXJuIF8zYmFbMF07Cit9Cit9Citmb3IodmFyIGk9MDtpPF8zYmEubGVuZ3RoO2krKyl7Cit2YXIgXzNiYz1fM2JhW2ldOwordmFyIGNscz1fM2JjLmNsYXNzTmFtZTsKK2lmKHR5cGVvZiAoY2xzKSE9InN0cmluZyIpeworY2xzPV8zYmMuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOworfQoraWYodHlwZW9mIChjbHMpPT0ic3RyaW5nIil7Cit2YXIgXzNiZT1jbHMuc3BsaXQoIiAiKTsKK2Zvcih2YXIgaj0wO2o8XzNiZS5sZW5ndGg7aisrKXsKK2lmKF8zYmVbal09PV8zYjcpeworcmV0dXJuIF8zYmM7Cit9Cit9Cit9Cit9CityZXR1cm4gbnVsbDsKK30sZ2V0Rmlyc3RQYXJlbnRCeVRhZ0FuZENsYXNzTmFtZTpmdW5jdGlvbihlbGVtLF8zYzEsXzNjMil7Cit2YXIgc2VsZj1Nb2NoaUtpdC5ET007CitlbGVtPXNlbGYuZ2V0RWxlbWVudChlbGVtKTsKK2lmKHR5cGVvZiAoXzNjMSk9PSJ1bmRlZmluZWQifHxfM2MxPT09bnVsbCl7CitfM2MxPSIqIjsKK31lbHNleworXzNjMT1fM2MxLnRvVXBwZXJDYXNlKCk7Cit9CitpZih0eXBlb2YgKF8zYzIpPT0idW5kZWZpbmVkInx8XzNjMj09PW51bGwpeworXzNjMj1udWxsOworfQoraWYoZWxlbSl7CitlbGVtPWVsZW0ucGFyZW50Tm9kZTsKK30KK3doaWxlKGVsZW0mJmVsZW0udGFnTmFtZSl7Cit2YXIgXzNjND1lbGVtLnRhZ05hbWUudG9VcHBlckNhc2UoKTsKK2lmKChfM2MxPT09IioifHxfM2MxPT1fM2M0KSYmKF8zYzI9PT1udWxsfHxzZWxmLmhhc0VsZW1lbnRDbGFzcyhlbGVtLF8zYzIpKSl7CityZXR1cm4gZWxlbTsKK30KK2VsZW09ZWxlbS5wYXJlbnROb2RlOworfQorcmV0dXJuIG51bGw7Cit9LF9fbmV3X186ZnVuY3Rpb24od2luKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7CitpZih0eXBlb2YgKGRvY3VtZW50KSE9InVuZGVmaW5lZCIpewordGhpcy5fZG9jdW1lbnQ9ZG9jdW1lbnQ7Cit2YXIgXzNjNz0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVyZS5pcy5vbmx5Lnh1bCI7Cit0aGlzLl94aHRtbD0oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1fM2M3KTsKK31lbHNleworaWYoTW9jaGlLaXQuTW9ja0RPTSl7Cit0aGlzLl9kb2N1bWVudD1Nb2NoaUtpdC5Nb2NrRE9NLmRvY3VtZW50OworfQorfQordGhpcy5fd2luZG93PXdpbjsKK3RoaXMuZG9tQ29udmVydGVycz1uZXcgbS5BZGFwdGVyUmVnaXN0cnkoKTsKK3ZhciBfM2M4PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKK3ZhciBfM2M5OworaWYoXzNjOCYmXzNjOC5hdHRyaWJ1dGVzJiZfM2M4LmF0dHJpYnV0ZXMubGVuZ3RoPjApewordmFyIF8zY2E9bS5maWx0ZXI7CitfM2M5PWZ1bmN0aW9uKG5vZGUpeworcmV0dXJuIF8zY2EoXzNjOS5pZ25vcmVBdHRyRmlsdGVyLG5vZGUuYXR0cmlidXRlcyk7Cit9OworXzNjOS5pZ25vcmVBdHRyPXt9OwordmFyIF8zY2M9XzNjOC5hdHRyaWJ1dGVzOwordmFyIF8zY2Q9XzNjOS5pZ25vcmVBdHRyOworZm9yKHZhciBpPTA7aTxfM2NjLmxlbmd0aDtpKyspewordmFyIGE9XzNjY1tpXTsKK18zY2RbYS5uYW1lXT1hLnZhbHVlOworfQorXzNjOS5pZ25vcmVBdHRyRmlsdGVyPWZ1bmN0aW9uKGEpeworcmV0dXJuIChfM2M5Lmlnbm9yZUF0dHJbYS5uYW1lXSE9YS52YWx1ZSk7Cit9OworXzNjOS5jb21wbGlhbnQ9ZmFsc2U7CitfM2M5LnJlbmFtZXM9eyJjbGFzcyI6ImNsYXNzTmFtZSIsImNoZWNrZWQiOiJkZWZhdWx0Q2hlY2tlZCIsInVzZW1hcCI6InVzZU1hcCIsImZvciI6Imh0bWxGb3IiLCJyZWFkb25seSI6InJlYWRPbmx5IiwiY29sc3BhbiI6ImNvbFNwYW4iLCJiZ2NvbG9yIjoiYmdDb2xvciIsImNlbGxzcGFjaW5nIjoiY2VsbFNwYWNpbmciLCJjZWxscGFkZGluZyI6ImNlbGxQYWRkaW5nIn07Cit9ZWxzZXsKK18zYzk9ZnVuY3Rpb24obm9kZSl7CityZXR1cm4gbm9kZS5hdHRyaWJ1dGVzOworfTsKK18zYzkuY29tcGxpYW50PXRydWU7CitfM2M5Lmlnbm9yZUF0dHI9e307CitfM2M5LnJlbmFtZXM9e307Cit9Cit0aGlzLmF0dHJpYnV0ZUFycmF5PV8zYzk7Cit2YXIgXzNkMj1mdW5jdGlvbihfM2QzLGFycil7Cit2YXIgXzNkNT1hcnJbMF07Cit2YXIgXzNkNj1hcnJbMV07Cit2YXIgXzNkNz1fM2Q2LnNwbGl0KCIuIilbMV07Cit2YXIgc3RyPSIiOworc3RyKz0iaWYgKCFNb2NoaUtpdC4iK18zZDcrIikgeyB0aHJvdyBuZXcgRXJyb3IoXCIiOworc3RyKz0iVGhpcyBmdW5jdGlvbiBoYXMgYmVlbiBkZXByZWNhdGVkIGFuZCBkZXBlbmRzIG9uIE1vY2hpS2l0LiI7CitzdHIrPV8zZDcrIi5cIik7fSI7CitzdHIrPSJyZXR1cm4gIitfM2Q2KyIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsiOworTW9jaGlLaXRbXzNkM11bXzNkNV09bmV3IEZ1bmN0aW9uKHN0cik7Cit9OworZm9yKHZhciBpPTA7aTxNb2NoaUtpdC5ET00uREVQUkVDQVRFRC5sZW5ndGg7aSsrKXsKK18zZDIoIkRPTSIsTW9jaGlLaXQuRE9NLkRFUFJFQ0FURURbaV0pOworfQordmFyIF8zZDk9dGhpcy5jcmVhdGVET01GdW5jOwordGhpcy5VTD1fM2Q5KCJ1bCIpOwordGhpcy5PTD1fM2Q5KCJvbCIpOwordGhpcy5MST1fM2Q5KCJsaSIpOwordGhpcy5ETD1fM2Q5KCJkbCIpOwordGhpcy5EVD1fM2Q5KCJkdCIpOwordGhpcy5ERD1fM2Q5KCJkZCIpOwordGhpcy5URD1fM2Q5KCJ0ZCIpOwordGhpcy5UUj1fM2Q5KCJ0ciIpOwordGhpcy5UQk9EWT1fM2Q5KCJ0Ym9keSIpOwordGhpcy5USEVBRD1fM2Q5KCJ0aGVhZCIpOwordGhpcy5URk9PVD1fM2Q5KCJ0Zm9vdCIpOwordGhpcy5UQUJMRT1fM2Q5KCJ0YWJsZSIpOwordGhpcy5USD1fM2Q5KCJ0aCIpOwordGhpcy5JTlBVVD1fM2Q5KCJpbnB1dCIpOwordGhpcy5TUEFOPV8zZDkoInNwYW4iKTsKK3RoaXMuQT1fM2Q5KCJhIik7Cit0aGlzLkRJVj1fM2Q5KCJkaXYiKTsKK3RoaXMuSU1HPV8zZDkoImltZyIpOwordGhpcy5CVVRUT049XzNkOSgiYnV0dG9uIik7Cit0aGlzLlRUPV8zZDkoInR0Iik7Cit0aGlzLlBSRT1fM2Q5KCJwcmUiKTsKK3RoaXMuSDE9XzNkOSgiaDEiKTsKK3RoaXMuSDI9XzNkOSgiaDIiKTsKK3RoaXMuSDM9XzNkOSgiaDMiKTsKK3RoaXMuSDQ9XzNkOSgiaDQiKTsKK3RoaXMuSDU9XzNkOSgiaDUiKTsKK3RoaXMuSDY9XzNkOSgiaDYiKTsKK3RoaXMuQlI9XzNkOSgiYnIiKTsKK3RoaXMuSFI9XzNkOSgiaHIiKTsKK3RoaXMuTEFCRUw9XzNkOSgibGFiZWwiKTsKK3RoaXMuVEVYVEFSRUE9XzNkOSgidGV4dGFyZWEiKTsKK3RoaXMuRk9STT1fM2Q5KCJmb3JtIik7Cit0aGlzLlA9XzNkOSgicCIpOwordGhpcy5TRUxFQ1Q9XzNkOSgic2VsZWN0Iik7Cit0aGlzLk9QVElPTj1fM2Q5KCJvcHRpb24iKTsKK3RoaXMuT1BUR1JPVVA9XzNkOSgib3B0Z3JvdXAiKTsKK3RoaXMuTEVHRU5EPV8zZDkoImxlZ2VuZCIpOwordGhpcy5GSUVMRFNFVD1fM2Q5KCJmaWVsZHNldCIpOwordGhpcy5TVFJPTkc9XzNkOSgic3Ryb25nIik7Cit0aGlzLkNBTlZBUz1fM2Q5KCJjYW52YXMiKTsKK3RoaXMuJD10aGlzLmdldEVsZW1lbnQ7Cit0aGlzLkVYUE9SVF9UQUdTPXsiOmNvbW1vbiI6dGhpcy5FWFBPUlQsIjphbGwiOm0uY29uY2F0KHRoaXMuRVhQT1JULHRoaXMuRVhQT1JUX09LKX07CittLm5hbWVGdW5jdGlvbnModGhpcyk7Cit9fSk7CitNb2NoaUtpdC5ET00uX19uZXdfXygoKHR5cGVvZiAod2luZG93KT09InVuZGVmaW5lZCIpP3RoaXM6d2luZG93KSk7CitpZihNb2NoaUtpdC5fX2V4cG9ydF9fKXsKK3dpdGhXaW5kb3c9TW9jaGlLaXQuRE9NLndpdGhXaW5kb3c7Cit3aXRoRG9jdW1lbnQ9TW9jaGlLaXQuRE9NLndpdGhEb2N1bWVudDsKK30KK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHModGhpcyxNb2NoaUtpdC5ET00pOworTW9jaGlLaXQuQmFzZS5fZGVwcygiU2VsZWN0b3IiLFsiQmFzZSIsIkRPTSIsIkl0ZXIiXSk7CitNb2NoaUtpdC5TZWxlY3Rvci5OQU1FPSJNb2NoaUtpdC5TZWxlY3RvciI7CitNb2NoaUtpdC5TZWxlY3Rvci5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5TZWxlY3Rvci5fX3JlcHJfXz1mdW5jdGlvbigpeworcmV0dXJuICJbIit0aGlzLk5BTUUrIiAiK3RoaXMuVkVSU0lPTisiXSI7Cit9OworTW9jaGlLaXQuU2VsZWN0b3IudG9TdHJpbmc9ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9fcmVwcl9fKCk7Cit9OworTW9jaGlLaXQuU2VsZWN0b3IuRVhQT1JUPVsiU2VsZWN0b3IiLCJmaW5kQ2hpbGRFbGVtZW50cyIsImZpbmREb2NFbGVtZW50cyIsIiQkIl07CitNb2NoaUtpdC5TZWxlY3Rvci5FWFBPUlRfT0s9W107CitNb2NoaUtpdC5TZWxlY3Rvci5TZWxlY3Rvcj1mdW5jdGlvbihfM2RhKXsKK3RoaXMucGFyYW1zPXtjbGFzc05hbWVzOltdLHBzZXVkb0NsYXNzTmFtZXM6W119OwordGhpcy5leHByZXNzaW9uPV8zZGEudG9TdHJpbmcoKS5yZXBsYWNlKC8oXlxzK3xccyskKS9nLCIiKTsKK3RoaXMucGFyc2VFeHByZXNzaW9uKCk7Cit0aGlzLmNvbXBpbGVNYXRjaGVyKCk7Cit9OworTW9jaGlLaXQuU2VsZWN0b3IuU2VsZWN0b3IucHJvdG90eXBlPXtfX2NsYXNzX186TW9jaGlLaXQuU2VsZWN0b3IuU2VsZWN0b3IscGFyc2VFeHByZXNzaW9uOmZ1bmN0aW9uKCl7CitmdW5jdGlvbiBhYm9ydChfM2RiKXsKK3Rocm93ICJQYXJzZSBlcnJvciBpbiBzZWxlY3RvcjogIitfM2RiOworfQoraWYodGhpcy5leHByZXNzaW9uPT0iIil7CithYm9ydCgiZW1wdHkgZXhwcmVzc2lvbiIpOworfQordmFyIHJlcHI9TW9jaGlLaXQuQmFzZS5yZXByOwordmFyIF8zZGQ9dGhpcy5wYXJhbXM7Cit2YXIgZXhwcj10aGlzLmV4cHJlc3Npb247Cit2YXIgXzNkZixfM2UwLF8zZTEscmVzdDsKK3doaWxlKF8zZGY9ZXhwci5tYXRjaCgvXiguKilcWyhbYS16MC05XzotXSs/KSg/Oihbflx8IV4kKl0/PSkoPzoiKFteIl0qKSJ8KFteXF1cc10qKSkpP1xdJC9pKSl7CitfM2RkLmF0dHJpYnV0ZXM9XzNkZC5hdHRyaWJ1dGVzfHxbXTsKK18zZGQuYXR0cmlidXRlcy5wdXNoKHtuYW1lOl8zZGZbMl0sb3BlcmF0b3I6XzNkZlszXSx2YWx1ZTpfM2RmWzRdfHxfM2RmWzVdfHwiIn0pOworZXhwcj1fM2RmWzFdOworfQoraWYoZXhwcj09IioiKXsKK3JldHVybiB0aGlzLnBhcmFtcy53aWxkY2FyZD10cnVlOworfQord2hpbGUoXzNkZj1leHByLm1hdGNoKC9eKFteYS16MC05Xy1dKT8oW2EtejAtOV8tXSsoPzpcKFteKV0qXCkpPykoLiopL2kpKXsKK18zZTA9XzNkZlsxXTsKK18zZTE9XzNkZlsyXTsKK3Jlc3Q9XzNkZlszXTsKK3N3aXRjaChfM2UwKXsKK2Nhc2UgIiMiOgorXzNkZC5pZD1fM2UxOworYnJlYWs7CitjYXNlICIuIjoKK18zZGQuY2xhc3NOYW1lcy5wdXNoKF8zZTEpOworYnJlYWs7CitjYXNlICI6IjoKK18zZGQucHNldWRvQ2xhc3NOYW1lcy5wdXNoKF8zZTEpOworYnJlYWs7CitjYXNlICIiOgorY2FzZSB1bmRlZmluZWQ6CitfM2RkLnRhZ05hbWU9XzNlMS50b1VwcGVyQ2FzZSgpOworYnJlYWs7CitkZWZhdWx0OgorYWJvcnQocmVwcihleHByKSk7Cit9CitleHByPXJlc3Q7Cit9CitpZihleHByLmxlbmd0aD4wKXsKK2Fib3J0KHJlcHIoZXhwcikpOworfQorfSxidWlsZE1hdGNoRXhwcmVzc2lvbjpmdW5jdGlvbigpewordmFyIHJlcHI9TW9jaGlLaXQuQmFzZS5yZXByOwordmFyIF8zZTQ9dGhpcy5wYXJhbXM7Cit2YXIgXzNlNT1bXTsKK3ZhciBfM2U2LGk7CitmdW5jdGlvbiBjaGlsZEVsZW1lbnRzKF8zZTgpeworcmV0dXJuICJNb2NoaUtpdC5CYXNlLmZpbHRlcihmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlVHlwZSA9PSAxOyB9LCAiK18zZTgrIi5jaGlsZE5vZGVzKSI7Cit9CitpZihfM2U0LndpbGRjYXJkKXsKK18zZTUucHVzaCgidHJ1ZSIpOworfQoraWYoXzNlNj1fM2U0LmlkKXsKK18zZTUucHVzaCgiZWxlbWVudC5pZCA9PSAiK3JlcHIoXzNlNikpOworfQoraWYoXzNlNj1fM2U0LnRhZ05hbWUpeworXzNlNS5wdXNoKCJlbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKSA9PSAiK3JlcHIoXzNlNikpOworfQoraWYoKF8zZTY9XzNlNC5jbGFzc05hbWVzKS5sZW5ndGg+MCl7Citmb3IoaT0wO2k8XzNlNi5sZW5ndGg7aSsrKXsKK18zZTUucHVzaCgiTW9jaGlLaXQuRE9NLmhhc0VsZW1lbnRDbGFzcyhlbGVtZW50LCAiK3JlcHIoXzNlNltpXSkrIikiKTsKK30KK30KK2lmKChfM2U2PV8zZTQucHNldWRvQ2xhc3NOYW1lcykubGVuZ3RoPjApeworZm9yKGk9MDtpPF8zZTYubGVuZ3RoO2krKyl7Cit2YXIgXzNlOT1fM2U2W2ldLm1hdGNoKC9eKFteKF0rKSg/OlwoKC4qKVwpKT8kLyk7Cit2YXIgXzNlYT1fM2U5WzFdOwordmFyIF8zZWI9XzNlOVsyXTsKK3N3aXRjaChfM2VhKXsKK2Nhc2UgInJvb3QiOgorXzNlNS5wdXNoKCJlbGVtZW50Lm5vZGVUeXBlID09IDkgfHwgZWxlbWVudCA9PT0gZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCIpOworYnJlYWs7CitjYXNlICJudGgtY2hpbGQiOgorY2FzZSAibnRoLWxhc3QtY2hpbGQiOgorY2FzZSAibnRoLW9mLXR5cGUiOgorY2FzZSAibnRoLWxhc3Qtb2YtdHlwZSI6CitfM2U5PV8zZWIubWF0Y2goL14oKD86KFxkKyluXCspPyhcZCspfG9kZHxldmVuKSQvKTsKK2lmKCFfM2U5KXsKK3Rocm93ICJJbnZhbGlkIGFyZ3VtZW50IHRvIHBzZXVkbyBlbGVtZW50IG50aC1jaGlsZDogIitfM2ViOworfQordmFyIGEsYjsKK2lmKF8zZTlbMF09PSJvZGQiKXsKK2E9MjsKK2I9MTsKK31lbHNleworaWYoXzNlOVswXT09ImV2ZW4iKXsKK2E9MjsKK2I9MDsKK31lbHNleworYT1fM2U5WzJdJiZwYXJzZUludChfM2U5KXx8bnVsbDsKK2I9cGFyc2VJbnQoXzNlOVszXSk7Cit9Cit9CitfM2U1LnB1c2goInRoaXMubnRoQ2hpbGQoZWxlbWVudCwiK2ErIiwiK2IrIiwiKyEhXzNlYS5tYXRjaCgiXm50aC1sYXN0IikrIiwiKyEhXzNlYS5tYXRjaCgib2YtdHlwZSQiKSsiKSIpOworYnJlYWs7CitjYXNlICJmaXJzdC1jaGlsZCI6CitfM2U1LnB1c2goInRoaXMubnRoQ2hpbGQoZWxlbWVudCwgbnVsbCwgMSkiKTsKK2JyZWFrOworY2FzZSAibGFzdC1jaGlsZCI6CitfM2U1LnB1c2goInRoaXMubnRoQ2hpbGQoZWxlbWVudCwgbnVsbCwgMSwgdHJ1ZSkiKTsKK2JyZWFrOworY2FzZSAiZmlyc3Qtb2YtdHlwZSI6CitfM2U1LnB1c2goInRoaXMubnRoQ2hpbGQoZWxlbWVudCwgbnVsbCwgMSwgZmFsc2UsIHRydWUpIik7CiticmVhazsKK2Nhc2UgImxhc3Qtb2YtdHlwZSI6CitfM2U1LnB1c2goInRoaXMubnRoQ2hpbGQoZWxlbWVudCwgbnVsbCwgMSwgdHJ1ZSwgdHJ1ZSkiKTsKK2JyZWFrOworY2FzZSAib25seS1jaGlsZCI6CitfM2U1LnB1c2goY2hpbGRFbGVtZW50cygiZWxlbWVudC5wYXJlbnROb2RlIikrIi5sZW5ndGggPT0gMSIpOworYnJlYWs7CitjYXNlICJvbmx5LW9mLXR5cGUiOgorXzNlNS5wdXNoKCJNb2NoaUtpdC5CYXNlLmZpbHRlcihmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS50YWdOYW1lID09IGVsZW1lbnQudGFnTmFtZTsgfSwgIitjaGlsZEVsZW1lbnRzKCJlbGVtZW50LnBhcmVudE5vZGUiKSsiKS5sZW5ndGggPT0gMSIpOworYnJlYWs7CitjYXNlICJlbXB0eSI6CitfM2U1LnB1c2goImVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT0gMCIpOworYnJlYWs7CitjYXNlICJlbmFibGVkIjoKK18zZTUucHVzaCgiKHRoaXMuaXNVSUVsZW1lbnQoZWxlbWVudCkgJiYgZWxlbWVudC5kaXNhYmxlZCA9PT0gZmFsc2UpIik7CiticmVhazsKK2Nhc2UgImRpc2FibGVkIjoKK18zZTUucHVzaCgiKHRoaXMuaXNVSUVsZW1lbnQoZWxlbWVudCkgJiYgZWxlbWVudC5kaXNhYmxlZCA9PT0gdHJ1ZSkiKTsKK2JyZWFrOworY2FzZSAiY2hlY2tlZCI6CitfM2U1LnB1c2goIih0aGlzLmlzVUlFbGVtZW50KGVsZW1lbnQpICYmIGVsZW1lbnQuY2hlY2tlZCA9PT0gdHJ1ZSkiKTsKK2JyZWFrOworY2FzZSAibm90IjoKK3ZhciBfM2VlPW5ldyBNb2NoaUtpdC5TZWxlY3Rvci5TZWxlY3RvcihfM2ViKTsKK18zZTUucHVzaCgiISggIitfM2VlLmJ1aWxkTWF0Y2hFeHByZXNzaW9uKCkrIikiKTsKK2JyZWFrOworfQorfQorfQoraWYoXzNlNj1fM2U0LmF0dHJpYnV0ZXMpeworTW9jaGlLaXQuQmFzZS5tYXAoZnVuY3Rpb24oXzNlZil7Cit2YXIgXzNmMD0iTW9jaGlLaXQuRE9NLmdldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgIityZXByKF8zZWYubmFtZSkrIikiOwordmFyIF8zZjE9ZnVuY3Rpb24oXzNmMil7CityZXR1cm4gXzNmMCsiLnNwbGl0KCIrcmVwcihfM2YyKSsiKSI7Cit9OworXzNlNS5wdXNoKF8zZjArIiAhPSBudWxsIik7Citzd2l0Y2goXzNlZi5vcGVyYXRvcil7CitjYXNlICI9IjoKK18zZTUucHVzaChfM2YwKyIgPT0gIityZXByKF8zZWYudmFsdWUpKTsKK2JyZWFrOworY2FzZSAifj0iOgorXzNlNS5wdXNoKCJNb2NoaUtpdC5CYXNlLmZpbmRWYWx1ZSgiK18zZjEoIiAiKSsiLCAiK3JlcHIoXzNlZi52YWx1ZSkrIikgPiAtMSIpOworYnJlYWs7CitjYXNlICJePSI6CitfM2U1LnB1c2goXzNmMCsiLnN1YnN0cmluZygwLCAiK18zZWYudmFsdWUubGVuZ3RoKyIpID09ICIrcmVwcihfM2VmLnZhbHVlKSk7CiticmVhazsKK2Nhc2UgIiQ9IjoKK18zZTUucHVzaChfM2YwKyIuc3Vic3RyaW5nKCIrXzNmMCsiLmxlbmd0aCAtICIrXzNlZi52YWx1ZS5sZW5ndGgrIikgPT0gIityZXByKF8zZWYudmFsdWUpKTsKK2JyZWFrOworY2FzZSAiKj0iOgorXzNlNS5wdXNoKF8zZjArIi5tYXRjaCgiK3JlcHIoXzNlZi52YWx1ZSkrIikiKTsKK2JyZWFrOworY2FzZSAifD0iOgorXzNlNS5wdXNoKF8zZjEoIi0iKSsiWzBdLnRvVXBwZXJDYXNlKCkgPT0gIityZXByKF8zZWYudmFsdWUudG9VcHBlckNhc2UoKSkpOworYnJlYWs7CitjYXNlICIhPSI6CitfM2U1LnB1c2goXzNmMCsiICE9ICIrcmVwcihfM2VmLnZhbHVlKSk7CiticmVhazsKK2Nhc2UgIiI6CitjYXNlIHVuZGVmaW5lZDoKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93ICJVbmtub3duIG9wZXJhdG9yICIrXzNlZi5vcGVyYXRvcisiIGluIHNlbGVjdG9yIjsKK30KK30sXzNlNik7Cit9CityZXR1cm4gXzNlNS5qb2luKCIgJiYgIik7Cit9LGNvbXBpbGVNYXRjaGVyOmZ1bmN0aW9uKCl7Cit2YXIgY29kZT0icmV0dXJuICghZWxlbWVudC50YWdOYW1lKSA/IGZhbHNlIDogIit0aGlzLmJ1aWxkTWF0Y2hFeHByZXNzaW9uKCkrIjsiOwordGhpcy5tYXRjaD1uZXcgRnVuY3Rpb24oImVsZW1lbnQiLGNvZGUpOworfSxudGhDaGlsZDpmdW5jdGlvbihfM2Y0LGEsYixfM2Y3LF8zZjgpewordmFyIF8zZjk9TW9jaGlLaXQuQmFzZS5maWx0ZXIoZnVuY3Rpb24obm9kZSl7CityZXR1cm4gbm9kZS5ub2RlVHlwZT09MTsKK30sXzNmNC5wYXJlbnROb2RlLmNoaWxkTm9kZXMpOworaWYoXzNmOCl7CitfM2Y5PU1vY2hpS2l0LkJhc2UuZmlsdGVyKGZ1bmN0aW9uKG5vZGUpeworcmV0dXJuIG5vZGUudGFnTmFtZT09XzNmNC50YWdOYW1lOworfSxfM2Y5KTsKK30KK2lmKF8zZjcpeworXzNmOT1Nb2NoaUtpdC5JdGVyLnJldmVyc2VkKF8zZjkpOworfQoraWYoYSl7Cit2YXIgXzNmYz1Nb2NoaUtpdC5CYXNlLmZpbmRJZGVudGljYWwoXzNmOSxfM2Y0KTsKK3JldHVybiAoKF8zZmMrMS1iKS9hKSUxPT0wOworfWVsc2V7CityZXR1cm4gYj09TW9jaGlLaXQuQmFzZS5maW5kSWRlbnRpY2FsKF8zZjksXzNmNCkrMTsKK30KK30saXNVSUVsZW1lbnQ6ZnVuY3Rpb24oXzNmZCl7CityZXR1cm4gTW9jaGlLaXQuQmFzZS5maW5kVmFsdWUoWyJpbnB1dCIsImJ1dHRvbiIsInNlbGVjdCIsIm9wdGlvbiIsInRleHRhcmVhIiwib2JqZWN0Il0sXzNmZC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpPi0xOworfSxmaW5kRWxlbWVudHM6ZnVuY3Rpb24oXzNmZSxheGlzKXsKK3ZhciBfNDAwOworaWYoYXhpcz09dW5kZWZpbmVkKXsKK2F4aXM9IiI7Cit9CitmdW5jdGlvbiBpblNjb3BlKF80MDEsXzQwMil7CitpZihheGlzPT0iIil7CityZXR1cm4gTW9jaGlLaXQuRE9NLmlzQ2hpbGROb2RlKF80MDEsXzQwMik7Cit9ZWxzZXsKK2lmKGF4aXM9PSI+Iil7CityZXR1cm4gXzQwMS5wYXJlbnROb2RlPT09XzQwMjsKK31lbHNleworaWYoYXhpcz09IisiKXsKK3JldHVybiBfNDAxPT09bmV4dFNpYmxpbmdFbGVtZW50KF80MDIpOworfWVsc2V7CitpZihheGlzPT0ifiIpewordmFyIF80MDM9XzQwMjsKK3doaWxlKF80MDM9bmV4dFNpYmxpbmdFbGVtZW50KF80MDMpKXsKK2lmKF80MDE9PT1fNDAzKXsKK3JldHVybiB0cnVlOworfQorfQorcmV0dXJuIGZhbHNlOworfWVsc2V7Cit0aHJvdyAiSW52YWxpZCBheGlzOiAiK2F4aXM7Cit9Cit9Cit9Cit9Cit9CitpZihfNDAwPU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KHRoaXMucGFyYW1zLmlkKSl7CitpZih0aGlzLm1hdGNoKF80MDApKXsKK2lmKCFfM2ZlfHxpblNjb3BlKF80MDAsXzNmZSkpeworcmV0dXJuIFtfNDAwXTsKK30KK30KK30KK2Z1bmN0aW9uIG5leHRTaWJsaW5nRWxlbWVudChub2RlKXsKK25vZGU9bm9kZS5uZXh0U2libGluZzsKK3doaWxlKG5vZGUmJm5vZGUubm9kZVR5cGUhPTEpeworbm9kZT1ub2RlLm5leHRTaWJsaW5nOworfQorcmV0dXJuIG5vZGU7Cit9CitpZihheGlzPT0iIil7CitfM2ZlPShfM2ZlfHxNb2NoaUtpdC5ET00uY3VycmVudERvY3VtZW50KCkpLmdldEVsZW1lbnRzQnlUYWdOYW1lKHRoaXMucGFyYW1zLnRhZ05hbWV8fCIqIik7Cit9ZWxzZXsKK2lmKGF4aXM9PSI+Iil7CitpZighXzNmZSl7Cit0aHJvdyAiPiBjb21iaW5hdG9yIG5vdCBhbGxvd2VkIHdpdGhvdXQgcHJlY2VlZGluZyBleHByZXNzaW9uIjsKK30KK18zZmU9TW9jaGlLaXQuQmFzZS5maWx0ZXIoZnVuY3Rpb24obm9kZSl7CityZXR1cm4gbm9kZS5ub2RlVHlwZT09MTsKK30sXzNmZS5jaGlsZE5vZGVzKTsKK31lbHNleworaWYoYXhpcz09IisiKXsKK2lmKCFfM2ZlKXsKK3Rocm93ICIrIGNvbWJpbmF0b3Igbm90IGFsbG93ZWQgd2l0aG91dCBwcmVjZWVkaW5nIGV4cHJlc3Npb24iOworfQorXzNmZT1uZXh0U2libGluZ0VsZW1lbnQoXzNmZSkmJltuZXh0U2libGluZ0VsZW1lbnQoXzNmZSldOworfWVsc2V7CitpZihheGlzPT0ifiIpeworaWYoIV8zZmUpewordGhyb3cgIn4gY29tYmluYXRvciBub3QgYWxsb3dlZCB3aXRob3V0IHByZWNlZWRpbmcgZXhwcmVzc2lvbiI7Cit9Cit2YXIgXzQwNj1bXTsKK3doaWxlKG5leHRTaWJsaW5nRWxlbWVudChfM2ZlKSl7CitfM2ZlPW5leHRTaWJsaW5nRWxlbWVudChfM2ZlKTsKK180MDYucHVzaChfM2ZlKTsKK30KK18zZmU9XzQwNjsKK30KK30KK30KK30KK2lmKCFfM2ZlKXsKK3JldHVybiBbXTsKK30KK3ZhciBfNDA3PU1vY2hpS2l0LkJhc2UuZmlsdGVyKE1vY2hpS2l0LkJhc2UuYmluZChmdW5jdGlvbihfNDA4KXsKK3JldHVybiB0aGlzLm1hdGNoKF80MDgpOworfSx0aGlzKSxfM2ZlKTsKK3JldHVybiBfNDA3OworfSxyZXByOmZ1bmN0aW9uKCl7CityZXR1cm4gIlNlbGVjdG9yKCIrdGhpcy5leHByZXNzaW9uKyIpIjsKK30sdG9TdHJpbmc6TW9jaGlLaXQuQmFzZS5mb3J3YXJkQ2FsbCgicmVwciIpfTsKK01vY2hpS2l0LkJhc2UudXBkYXRlKE1vY2hpS2l0LlNlbGVjdG9yLHtmaW5kQ2hpbGRFbGVtZW50czpmdW5jdGlvbihfNDA5LF80MGEpewordmFyIHVuaXE9ZnVuY3Rpb24oYXJyKXsKK3ZhciByZXM9W107Citmb3IodmFyIGk9MDtpPGFyci5sZW5ndGg7aSsrKXsKK2lmKE1vY2hpS2l0LkJhc2UuZmluZElkZW50aWNhbChyZXMsYXJyW2ldKTwwKXsKK3Jlcy5wdXNoKGFycltpXSk7Cit9Cit9CityZXR1cm4gcmVzOworfTsKK3JldHVybiBNb2NoaUtpdC5CYXNlLmZsYXR0ZW5BcnJheShNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihfNDBmKXsKK3ZhciBfNDEwPSIiOwordmFyIF80MTE9ZnVuY3Rpb24oXzQxMixleHByKXsKK2lmKG1hdGNoPWV4cHIubWF0Y2goL15bPit+XSQvKSl7CitfNDEwPW1hdGNoWzBdOworcmV0dXJuIF80MTI7Cit9ZWxzZXsKK3ZhciBfNDE0PW5ldyBNb2NoaUtpdC5TZWxlY3Rvci5TZWxlY3RvcihleHByKTsKK3ZhciBfNDE1PU1vY2hpS2l0Lkl0ZXIucmVkdWNlKGZ1bmN0aW9uKF80MTYsXzQxNyl7CityZXR1cm4gTW9jaGlLaXQuQmFzZS5leHRlbmQoXzQxNixfNDE0LmZpbmRFbGVtZW50cyhfNDE3fHxfNDA5LF80MTApKTsKK30sXzQxMixbXSk7CitfNDEwPSIiOworcmV0dXJuIF80MTU7Cit9Cit9OwordmFyIF80MTg9XzQwZi5yZXBsYWNlKC8oXlxzK3xccyskKS9nLCIiKS5zcGxpdCgvXHMrLyk7CityZXR1cm4gdW5pcShNb2NoaUtpdC5JdGVyLnJlZHVjZShfNDExLF80MTgsW251bGxdKSk7Cit9LF80MGEpKTsKK30sZmluZERvY0VsZW1lbnRzOmZ1bmN0aW9uKCl7CityZXR1cm4gTW9jaGlLaXQuU2VsZWN0b3IuZmluZENoaWxkRWxlbWVudHMoTW9jaGlLaXQuRE9NLmN1cnJlbnREb2N1bWVudCgpLGFyZ3VtZW50cyk7Cit9LF9fbmV3X186ZnVuY3Rpb24oKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit0aGlzLiQkPXRoaXMuZmluZERvY0VsZW1lbnRzOwordGhpcy5FWFBPUlRfVEFHUz17Ijpjb21tb24iOnRoaXMuRVhQT1JULCI6YWxsIjptLmNvbmNhdCh0aGlzLkVYUE9SVCx0aGlzLkVYUE9SVF9PSyl9OworbS5uYW1lRnVuY3Rpb25zKHRoaXMpOworfX0pOworTW9jaGlLaXQuU2VsZWN0b3IuX19uZXdfXygpOworTW9jaGlLaXQuQmFzZS5fZXhwb3J0U3ltYm9scyh0aGlzLE1vY2hpS2l0LlNlbGVjdG9yKTsKK01vY2hpS2l0LkJhc2UuX2RlcHMoIlN0eWxlIixbIkJhc2UiLCJET00iXSk7CitNb2NoaUtpdC5TdHlsZS5OQU1FPSJNb2NoaUtpdC5TdHlsZSI7CitNb2NoaUtpdC5TdHlsZS5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5TdHlsZS5fX3JlcHJfXz1mdW5jdGlvbigpeworcmV0dXJuICJbIit0aGlzLk5BTUUrIiAiK3RoaXMuVkVSU0lPTisiXSI7Cit9OworTW9jaGlLaXQuU3R5bGUudG9TdHJpbmc9ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9fcmVwcl9fKCk7Cit9OworTW9jaGlLaXQuU3R5bGUuRVhQT1JUX09LPVtdOworTW9jaGlLaXQuU3R5bGUuRVhQT1JUPVsic2V0U3R5bGUiLCJzZXRPcGFjaXR5IiwiZ2V0U3R5bGUiLCJnZXRFbGVtZW50RGltZW5zaW9ucyIsImVsZW1lbnREaW1lbnNpb25zIiwic2V0RWxlbWVudERpbWVuc2lvbnMiLCJnZXRFbGVtZW50UG9zaXRpb24iLCJlbGVtZW50UG9zaXRpb24iLCJzZXRFbGVtZW50UG9zaXRpb24iLCJtYWtlUG9zaXRpb25lZCIsInVuZG9Qb3NpdGlvbmVkIiwibWFrZUNsaXBwaW5nIiwidW5kb0NsaXBwaW5nIiwic2V0RGlzcGxheUZvckVsZW1lbnQiLCJoaWRlRWxlbWVudCIsInNob3dFbGVtZW50IiwiZ2V0Vmlld3BvcnREaW1lbnNpb25zIiwiZ2V0Vmlld3BvcnRQb3NpdGlvbiIsIkRpbWVuc2lvbnMiLCJDb29yZGluYXRlcyJdOworTW9jaGlLaXQuU3R5bGUuRGltZW5zaW9ucz1mdW5jdGlvbih3LGgpewordGhpcy53PXc7Cit0aGlzLmg9aDsKK307CitNb2NoaUtpdC5TdHlsZS5EaW1lbnNpb25zLnByb3RvdHlwZS5fX3JlcHJfXz1mdW5jdGlvbigpewordmFyIHJlcHI9TW9jaGlLaXQuQmFzZS5yZXByOworcmV0dXJuICJ7dzogIityZXByKHRoaXMudykrIiwgaDogIityZXByKHRoaXMuaCkrIn0iOworfTsKK01vY2hpS2l0LlN0eWxlLkRpbWVuc2lvbnMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7CityZXR1cm4gdGhpcy5fX3JlcHJfXygpOworfTsKK01vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzPWZ1bmN0aW9uKHgseSl7Cit0aGlzLng9eDsKK3RoaXMueT15OworfTsKK01vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzLnByb3RvdHlwZS5fX3JlcHJfXz1mdW5jdGlvbigpewordmFyIHJlcHI9TW9jaGlLaXQuQmFzZS5yZXByOworcmV0dXJuICJ7eDogIityZXByKHRoaXMueCkrIiwgeTogIityZXByKHRoaXMueSkrIn0iOworfTsKK01vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK307CitNb2NoaUtpdC5CYXNlLnVwZGF0ZShNb2NoaUtpdC5TdHlsZSx7Z2V0U3R5bGU6ZnVuY3Rpb24oZWxlbSxfNDIxKXsKK3ZhciBkb209TW9jaGlLaXQuRE9NOwordmFyIGQ9ZG9tLl9kb2N1bWVudDsKK2VsZW09ZG9tLmdldEVsZW1lbnQoZWxlbSk7CitfNDIxPU1vY2hpS2l0LkJhc2UuY2FtZWxpemUoXzQyMSk7CitpZighZWxlbXx8ZWxlbT09ZCl7CityZXR1cm4gdW5kZWZpbmVkOworfQoraWYoXzQyMT09Im9wYWNpdHkiJiZ0eXBlb2YgKGVsZW0uZmlsdGVycykhPSJ1bmRlZmluZWQiKXsKK3ZhciBfNDI0PShNb2NoaUtpdC5TdHlsZS5nZXRTdHlsZShlbGVtLCJmaWx0ZXIiKXx8IiIpLm1hdGNoKC9hbHBoYVwob3BhY2l0eT0oLiopXCkvKTsKK2lmKF80MjQmJl80MjRbMV0peworcmV0dXJuIHBhcnNlRmxvYXQoXzQyNFsxXSkvMTAwOworfQorcmV0dXJuIDE7Cit9CitpZihfNDIxPT0iZmxvYXQifHxfNDIxPT0iY3NzRmxvYXQifHxfNDIxPT0ic3R5bGVGbG9hdCIpeworaWYoZWxlbS5zdHlsZVsiZmxvYXQiXSl7CityZXR1cm4gZWxlbS5zdHlsZVsiZmxvYXQiXTsKK31lbHNleworaWYoZWxlbS5zdHlsZS5jc3NGbG9hdCl7CityZXR1cm4gZWxlbS5zdHlsZS5jc3NGbG9hdDsKK31lbHNleworaWYoZWxlbS5zdHlsZS5zdHlsZUZsb2F0KXsKK3JldHVybiBlbGVtLnN0eWxlLnN0eWxlRmxvYXQ7Cit9ZWxzZXsKK3JldHVybiAibm9uZSI7Cit9Cit9Cit9Cit9Cit2YXIgXzQyNT1lbGVtLnN0eWxlP2VsZW0uc3R5bGVbXzQyMV06bnVsbDsKK2lmKCFfNDI1KXsKK2lmKGQuZGVmYXVsdFZpZXcmJmQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSl7Cit2YXIgY3NzPWQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtLG51bGwpOworXzQyMT1fNDIxLnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKTsKK180MjU9Y3NzP2Nzcy5nZXRQcm9wZXJ0eVZhbHVlKF80MjEpOm51bGw7Cit9ZWxzZXsKK2lmKGVsZW0uY3VycmVudFN0eWxlKXsKK180MjU9ZWxlbS5jdXJyZW50U3R5bGVbXzQyMV07CitpZigvXlxkLy50ZXN0KF80MjUpJiYhL3B4JC8udGVzdChfNDI1KSYmXzQyMSE9ImZvbnRXZWlnaHQiKXsKK3ZhciBsZWZ0PWVsZW0uc3R5bGUubGVmdDsKK3ZhciBfNDI4PWVsZW0ucnVudGltZVN0eWxlLmxlZnQ7CitlbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0PWVsZW0uY3VycmVudFN0eWxlLmxlZnQ7CitlbGVtLnN0eWxlLmxlZnQ9XzQyNXx8MDsKK180MjU9ZWxlbS5zdHlsZS5waXhlbExlZnQrInB4IjsKK2VsZW0uc3R5bGUubGVmdD1sZWZ0OworZWxlbS5ydW50aW1lU3R5bGUubGVmdD1fNDI4OworfQorfQorfQorfQoraWYoXzQyMT09Im9wYWNpdHkiKXsKK180MjU9cGFyc2VGbG9hdChfNDI1KTsKK30KK2lmKC9PcGVyYS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmKE1vY2hpS2l0LkJhc2UuZmluZFZhbHVlKFsibGVmdCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIl0sXzQyMSkhPS0xKSl7CitpZihNb2NoaUtpdC5TdHlsZS5nZXRTdHlsZShlbGVtLCJwb3NpdGlvbiIpPT0ic3RhdGljIil7CitfNDI1PSJhdXRvIjsKK30KK30KK3JldHVybiBfNDI1PT0iYXV0byI/bnVsbDpfNDI1OworfSxzZXRTdHlsZTpmdW5jdGlvbihlbGVtLF80MmEpeworZWxlbT1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChlbGVtKTsKK2Zvcih2YXIgbmFtZSBpbiBfNDJhKXsKK3N3aXRjaChuYW1lKXsKK2Nhc2UgIm9wYWNpdHkiOgorTW9jaGlLaXQuU3R5bGUuc2V0T3BhY2l0eShlbGVtLF80MmFbbmFtZV0pOworYnJlYWs7CitjYXNlICJmbG9hdCI6CitjYXNlICJjc3NGbG9hdCI6CitjYXNlICJzdHlsZUZsb2F0IjoKK2lmKHR5cGVvZiAoZWxlbS5zdHlsZVsiZmxvYXQiXSkhPSJ1bmRlZmluZWQiKXsKK2VsZW0uc3R5bGVbImZsb2F0Il09XzQyYVtuYW1lXTsKK31lbHNleworaWYodHlwZW9mIChlbGVtLnN0eWxlLmNzc0Zsb2F0KSE9InVuZGVmaW5lZCIpeworZWxlbS5zdHlsZS5jc3NGbG9hdD1fNDJhW25hbWVdOworfWVsc2V7CitlbGVtLnN0eWxlLnN0eWxlRmxvYXQ9XzQyYVtuYW1lXTsKK30KK30KK2JyZWFrOworZGVmYXVsdDoKK2VsZW0uc3R5bGVbTW9jaGlLaXQuQmFzZS5jYW1lbGl6ZShuYW1lKV09XzQyYVtuYW1lXTsKK30KK30KK30sc2V0T3BhY2l0eTpmdW5jdGlvbihlbGVtLG8peworZWxlbT1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChlbGVtKTsKK3ZhciBzZWxmPU1vY2hpS2l0LlN0eWxlOworaWYobz09MSl7Cit2YXIgXzQyZj0vR2Vja28vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiEoL0tvbnF1ZXJvcnxBcHBsZVdlYktpdHxLSFRNTC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSk7CitlbGVtLnN0eWxlWyJvcGFjaXR5Il09XzQyZj8wLjk5OTk5OToxOworaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpeworZWxlbS5zdHlsZVsiZmlsdGVyIl09c2VsZi5nZXRTdHlsZShlbGVtLCJmaWx0ZXIiKS5yZXBsYWNlKC9hbHBoYVwoW15cKV0qXCkvZ2ksIiIpOworfQorfWVsc2V7CitpZihvPDAuMDAwMDEpeworbz0wOworfQorZWxlbS5zdHlsZVsib3BhY2l0eSJdPW87CitpZigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7CitlbGVtLnN0eWxlWyJmaWx0ZXIiXT1zZWxmLmdldFN0eWxlKGVsZW0sImZpbHRlciIpLnJlcGxhY2UoL2FscGhhXChbXlwpXSpcKS9naSwiIikrImFscGhhKG9wYWNpdHk9IitvKjEwMCsiKSI7Cit9Cit9Cit9LGdldEVsZW1lbnRQb3NpdGlvbjpmdW5jdGlvbihlbGVtLF80MzEpewordmFyIHNlbGY9TW9jaGlLaXQuU3R5bGU7Cit2YXIgZG9tPU1vY2hpS2l0LkRPTTsKK2VsZW09ZG9tLmdldEVsZW1lbnQoZWxlbSk7CitpZighZWxlbXx8KCEoZWxlbS54JiZlbGVtLnkpJiYoIWVsZW0ucGFyZW50Tm9kZT09PW51bGx8fHNlbGYuZ2V0U3R5bGUoZWxlbSwiZGlzcGxheSIpPT0ibm9uZSIpKSl7CityZXR1cm4gdW5kZWZpbmVkOworfQordmFyIGM9bmV3IHNlbGYuQ29vcmRpbmF0ZXMoMCwwKTsKK3ZhciBib3g9bnVsbDsKK3ZhciBfNDM2PW51bGw7Cit2YXIgZD1Nb2NoaUtpdC5ET00uX2RvY3VtZW50OwordmFyIGRlPWQuZG9jdW1lbnRFbGVtZW50OwordmFyIGI9ZC5ib2R5OworaWYoIWVsZW0ucGFyZW50Tm9kZSYmZWxlbS54JiZlbGVtLnkpeworYy54Kz1lbGVtLnh8fDA7CitjLnkrPWVsZW0ueXx8MDsKK31lbHNleworaWYoZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QpeworYm94PWVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CitjLngrPWJveC5sZWZ0KyhkZS5zY3JvbGxMZWZ0fHxiLnNjcm9sbExlZnQpLShkZS5jbGllbnRMZWZ0fHwwKTsKK2MueSs9Ym94LnRvcCsoZGUuc2Nyb2xsVG9wfHxiLnNjcm9sbFRvcCktKGRlLmNsaWVudFRvcHx8MCk7Cit9ZWxzZXsKK2lmKGVsZW0ub2Zmc2V0UGFyZW50KXsKK2MueCs9ZWxlbS5vZmZzZXRMZWZ0OworYy55Kz1lbGVtLm9mZnNldFRvcDsKK180MzY9ZWxlbS5vZmZzZXRQYXJlbnQ7CitpZihfNDM2IT1lbGVtKXsKK3doaWxlKF80MzYpeworYy54Kz1wYXJzZUludChfNDM2LnN0eWxlLmJvcmRlckxlZnRXaWR0aCl8fDA7CitjLnkrPXBhcnNlSW50KF80MzYuc3R5bGUuYm9yZGVyVG9wV2lkdGgpfHwwOworYy54Kz1fNDM2Lm9mZnNldExlZnQ7CitjLnkrPV80MzYub2Zmc2V0VG9wOworXzQzNj1fNDM2Lm9mZnNldFBhcmVudDsKK30KK30KK3ZhciB1YT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7CitpZigodHlwZW9mIChvcGVyYSkhPSJ1bmRlZmluZWQiJiZwYXJzZUZsb2F0KG9wZXJhLnZlcnNpb24oKSk8OSl8fCh1YS5pbmRleE9mKCJBcHBsZVdlYktpdCIpIT0tMSYmc2VsZi5nZXRTdHlsZShlbGVtLCJwb3NpdGlvbiIpPT0iYWJzb2x1dGUiKSl7CitjLngtPWIub2Zmc2V0TGVmdDsKK2MueS09Yi5vZmZzZXRUb3A7Cit9CitpZihlbGVtLnBhcmVudE5vZGUpeworXzQzNj1lbGVtLnBhcmVudE5vZGU7Cit9ZWxzZXsKK180MzY9bnVsbDsKK30KK3doaWxlKF80MzYpewordmFyIF80M2I9XzQzNi50YWdOYW1lLnRvVXBwZXJDYXNlKCk7CitpZihfNDNiPT09IkJPRFkifHxfNDNiPT09IkhUTUwiKXsKK2JyZWFrOworfQordmFyIGRpc3A9c2VsZi5nZXRTdHlsZShfNDM2LCJkaXNwbGF5Iik7CitpZihkaXNwLnNlYXJjaCgvXmlubGluZXx0YWJsZS1yb3cuKiQvaSkpeworYy54LT1fNDM2LnNjcm9sbExlZnQ7CitjLnktPV80MzYuc2Nyb2xsVG9wOworfQoraWYoXzQzNi5wYXJlbnROb2RlKXsKK180MzY9XzQzNi5wYXJlbnROb2RlOworfWVsc2V7CitfNDM2PW51bGw7Cit9Cit9Cit9Cit9Cit9CitpZih0eXBlb2YgKF80MzEpIT0idW5kZWZpbmVkIil7CitfNDMxPWFyZ3VtZW50cy5jYWxsZWUoXzQzMSk7CitpZihfNDMxKXsKK2MueC09KF80MzEueHx8MCk7CitjLnktPShfNDMxLnl8fDApOworfQorfQorcmV0dXJuIGM7Cit9LHNldEVsZW1lbnRQb3NpdGlvbjpmdW5jdGlvbihlbGVtLF80M2UsXzQzZil7CitlbGVtPU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KGVsZW0pOworaWYodHlwZW9mIChfNDNmKT09InVuZGVmaW5lZCIpeworXzQzZj0icHgiOworfQordmFyIF80NDA9e307Cit2YXIgXzQ0MT1Nb2NoaUtpdC5CYXNlLmlzVW5kZWZpbmVkT3JOdWxsOworaWYoIV80NDEoXzQzZS54KSl7CitfNDQwWyJsZWZ0Il09XzQzZS54K180M2Y7Cit9CitpZighXzQ0MShfNDNlLnkpKXsKK180NDBbInRvcCJdPV80M2UueStfNDNmOworfQorTW9jaGlLaXQuRE9NLnVwZGF0ZU5vZGVBdHRyaWJ1dGVzKGVsZW0seyJzdHlsZSI6XzQ0MH0pOworfSxtYWtlUG9zaXRpb25lZDpmdW5jdGlvbihfNDQyKXsKK180NDI9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzQ0Mik7Cit2YXIgcG9zPU1vY2hpS2l0LlN0eWxlLmdldFN0eWxlKF80NDIsInBvc2l0aW9uIik7CitpZihwb3M9PSJzdGF0aWMifHwhcG9zKXsKK180NDIuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjsKK2lmKC9PcGVyYS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7CitfNDQyLnN0eWxlLnRvcD0wOworXzQ0Mi5zdHlsZS5sZWZ0PTA7Cit9Cit9Cit9LHVuZG9Qb3NpdGlvbmVkOmZ1bmN0aW9uKF80NDQpeworXzQ0ND1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNDQ0KTsKK2lmKF80NDQuc3R5bGUucG9zaXRpb249PSJyZWxhdGl2ZSIpeworXzQ0NC5zdHlsZS5wb3NpdGlvbj1fNDQ0LnN0eWxlLnRvcD1fNDQ0LnN0eWxlLmxlZnQ9XzQ0NC5zdHlsZS5ib3R0b209XzQ0NC5zdHlsZS5yaWdodD0iIjsKK30KK30sbWFrZUNsaXBwaW5nOmZ1bmN0aW9uKF80NDUpeworXzQ0NT1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNDQ1KTsKK3ZhciBzPV80NDUuc3R5bGU7Cit2YXIgXzQ0Nz17Im92ZXJmbG93IjpzLm92ZXJmbG93LCJvdmVyZmxvdy14IjpzLm92ZXJmbG93WCwib3ZlcmZsb3cteSI6cy5vdmVyZmxvd1l9OworaWYoKE1vY2hpS2l0LlN0eWxlLmdldFN0eWxlKF80NDUsIm92ZXJmbG93Iil8fCJ2aXNpYmxlIikhPSJoaWRkZW4iKXsKK180NDUuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7CitfNDQ1LnN0eWxlLm92ZXJmbG93WD0iaGlkZGVuIjsKK180NDUuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iOworfQorcmV0dXJuIF80NDc7Cit9LHVuZG9DbGlwcGluZzpmdW5jdGlvbihfNDQ4LF80NDkpeworXzQ0OD1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNDQ4KTsKK2lmKHR5cGVvZiAoXzQ0OSk9PSJzdHJpbmciKXsKK180NDguc3R5bGUub3ZlcmZsb3c9XzQ0OTsKK31lbHNleworaWYoXzQ0OSE9bnVsbCl7CitfNDQ4LnN0eWxlLm92ZXJmbG93PV80NDlbIm92ZXJmbG93Il07CitfNDQ4LnN0eWxlLm92ZXJmbG93WD1fNDQ5WyJvdmVyZmxvdy14Il07CitfNDQ4LnN0eWxlLm92ZXJmbG93WT1fNDQ5WyJvdmVyZmxvdy15Il07Cit9Cit9Cit9LGdldEVsZW1lbnREaW1lbnNpb25zOmZ1bmN0aW9uKGVsZW0sXzQ0Yil7Cit2YXIgc2VsZj1Nb2NoaUtpdC5TdHlsZTsKK3ZhciBkb209TW9jaGlLaXQuRE9NOworaWYodHlwZW9mIChlbGVtLncpPT0ibnVtYmVyInx8dHlwZW9mIChlbGVtLmgpPT0ibnVtYmVyIil7CityZXR1cm4gbmV3IHNlbGYuRGltZW5zaW9ucyhlbGVtLnd8fDAsZWxlbS5ofHwwKTsKK30KK2VsZW09ZG9tLmdldEVsZW1lbnQoZWxlbSk7CitpZighZWxlbSl7CityZXR1cm4gdW5kZWZpbmVkOworfQordmFyIGRpc3A9c2VsZi5nZXRTdHlsZShlbGVtLCJkaXNwbGF5Iik7CitpZihkaXNwPT0ibm9uZSJ8fGRpc3A9PSIifHx0eXBlb2YgKGRpc3ApPT0idW5kZWZpbmVkIil7Cit2YXIgcz1lbGVtLnN0eWxlOwordmFyIF80NTA9cy52aXNpYmlsaXR5OwordmFyIF80NTE9cy5wb3NpdGlvbjsKK3ZhciBfNDUyPXMuZGlzcGxheTsKK3MudmlzaWJpbGl0eT0iaGlkZGVuIjsKK3MucG9zaXRpb249ImFic29sdXRlIjsKK3MuZGlzcGxheT1zZWxmLl9nZXREZWZhdWx0RGlzcGxheShlbGVtKTsKK3ZhciBfNDUzPWVsZW0ub2Zmc2V0V2lkdGg7Cit2YXIgXzQ1ND1lbGVtLm9mZnNldEhlaWdodDsKK3MuZGlzcGxheT1fNDUyOworcy5wb3NpdGlvbj1fNDUxOworcy52aXNpYmlsaXR5PV80NTA7Cit9ZWxzZXsKK180NTM9ZWxlbS5vZmZzZXRXaWR0aHx8MDsKK180NTQ9ZWxlbS5vZmZzZXRIZWlnaHR8fDA7Cit9CitpZihfNDRiKXsKK3ZhciBfNDU1PSJjb2xTcGFuIiBpbiBlbGVtJiYicm93U3BhbiIgaW4gZWxlbTsKK3ZhciBfNDU2PShfNDU1JiZlbGVtLnBhcmVudE5vZGUmJnNlbGYuZ2V0U3R5bGUoZWxlbS5wYXJlbnROb2RlLCJib3JkZXJDb2xsYXBzZSIpPT0iY29sbGFwc2UiKTsKK2lmKF80NTYpeworaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpewordmFyIF80NTc9ZWxlbS5wcmV2aW91c1NpYmxpbmc/MC41OjE7Cit2YXIgXzQ1OD1lbGVtLm5leHRTaWJsaW5nPzAuNToxOworfWVsc2V7Cit2YXIgXzQ1Nz0wLjU7Cit2YXIgXzQ1OD0wLjU7Cit9Cit9ZWxzZXsKK3ZhciBfNDU3PTE7Cit2YXIgXzQ1OD0xOworfQorXzQ1My09TWF0aC5yb3VuZCgocGFyc2VGbG9hdChzZWxmLmdldFN0eWxlKGVsZW0sInBhZGRpbmdMZWZ0IikpfHwwKSsocGFyc2VGbG9hdChzZWxmLmdldFN0eWxlKGVsZW0sInBhZGRpbmdSaWdodCIpKXx8MCkrXzQ1NyoocGFyc2VGbG9hdChzZWxmLmdldFN0eWxlKGVsZW0sImJvcmRlckxlZnRXaWR0aCIpKXx8MCkrXzQ1OCoocGFyc2VGbG9hdChzZWxmLmdldFN0eWxlKGVsZW0sImJvcmRlclJpZ2h0V2lkdGgiKSl8fDApKTsKK2lmKF80NTUpeworaWYoL0dlY2tvfE9wZXJhLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhL0tvbnF1ZXJvcnxBcHBsZVdlYktpdHxLSFRNTC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7Cit2YXIgXzQ1OT0wOworfWVsc2V7CitpZigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7Cit2YXIgXzQ1OT0xOworfWVsc2V7Cit2YXIgXzQ1OT1fNDU2PzAuNToxOworfQorfQorfWVsc2V7Cit2YXIgXzQ1OT0xOworfQorXzQ1NC09TWF0aC5yb3VuZCgocGFyc2VGbG9hdChzZWxmLmdldFN0eWxlKGVsZW0sInBhZGRpbmdUb3AiKSl8fDApKyhwYXJzZUZsb2F0KHNlbGYuZ2V0U3R5bGUoZWxlbSwicGFkZGluZ0JvdHRvbSIpKXx8MCkrXzQ1OSooKHBhcnNlRmxvYXQoc2VsZi5nZXRTdHlsZShlbGVtLCJib3JkZXJUb3BXaWR0aCIpKXx8MCkrKHBhcnNlRmxvYXQoc2VsZi5nZXRTdHlsZShlbGVtLCJib3JkZXJCb3R0b21XaWR0aCIpKXx8MCkpKTsKK30KK3JldHVybiBuZXcgc2VsZi5EaW1lbnNpb25zKF80NTMsXzQ1NCk7Cit9LHNldEVsZW1lbnREaW1lbnNpb25zOmZ1bmN0aW9uKGVsZW0sXzQ1YixfNDVjKXsKK2VsZW09TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoZWxlbSk7CitpZih0eXBlb2YgKF80NWMpPT0idW5kZWZpbmVkIil7CitfNDVjPSJweCI7Cit9Cit2YXIgXzQ1ZD17fTsKK3ZhciBfNDVlPU1vY2hpS2l0LkJhc2UuaXNVbmRlZmluZWRPck51bGw7CitpZighXzQ1ZShfNDViLncpKXsKK180NWRbIndpZHRoIl09XzQ1Yi53K180NWM7Cit9CitpZighXzQ1ZShfNDViLmgpKXsKK180NWRbImhlaWdodCJdPV80NWIuaCtfNDVjOworfQorTW9jaGlLaXQuRE9NLnVwZGF0ZU5vZGVBdHRyaWJ1dGVzKGVsZW0seyJzdHlsZSI6XzQ1ZH0pOworfSxfZ2V0RGVmYXVsdERpc3BsYXk6ZnVuY3Rpb24oZWxlbSl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5TdHlsZTsKK3ZhciBkb209TW9jaGlLaXQuRE9NOworZWxlbT1kb20uZ2V0RWxlbWVudChlbGVtKTsKK2lmKCFlbGVtKXsKK3JldHVybiB1bmRlZmluZWQ7Cit9Cit2YXIgXzQ2Mj1lbGVtLnRhZ05hbWUudG9VcHBlckNhc2UoKTsKK3JldHVybiBzZWxmLl9kZWZhdWx0RGlzcGxheVtfNDYyXXx8ImJsb2NrIjsKK30sc2V0RGlzcGxheUZvckVsZW1lbnQ6ZnVuY3Rpb24oXzQ2MyxfNDY0KXsKK3ZhciBfNDY1PU1vY2hpS2l0LkJhc2UuZXh0ZW5kKG51bGwsYXJndW1lbnRzLDEpOwordmFyIF80NjY9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQ7Citmb3IodmFyIGk9MDtpPF80NjUubGVuZ3RoO2krKyl7CitfNDY0PV80NjYoXzQ2NVtpXSk7CitpZihfNDY0KXsKK180NjQuc3R5bGUuZGlzcGxheT1fNDYzOworfQorfQorfSxnZXRWaWV3cG9ydERpbWVuc2lvbnM6ZnVuY3Rpb24oKXsKK3ZhciBkPW5ldyBNb2NoaUtpdC5TdHlsZS5EaW1lbnNpb25zKCk7Cit2YXIgdz1Nb2NoaUtpdC5ET00uX3dpbmRvdzsKK3ZhciBiPU1vY2hpS2l0LkRPTS5fZG9jdW1lbnQuYm9keTsKK2lmKHcuaW5uZXJXaWR0aCl7CitkLnc9dy5pbm5lcldpZHRoOworZC5oPXcuaW5uZXJIZWlnaHQ7Cit9ZWxzZXsKK2lmKGImJmIucGFyZW50RWxlbWVudCYmYi5wYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoKXsKK2Qudz1iLnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGg7CitkLmg9Yi5wYXJlbnRFbGVtZW50LmNsaWVudEhlaWdodDsKK31lbHNleworaWYoYiYmYi5jbGllbnRXaWR0aCl7CitkLnc9Yi5jbGllbnRXaWR0aDsKK2QuaD1iLmNsaWVudEhlaWdodDsKK30KK30KK30KK3JldHVybiBkOworfSxnZXRWaWV3cG9ydFBvc2l0aW9uOmZ1bmN0aW9uKCl7Cit2YXIgYz1uZXcgTW9jaGlLaXQuU3R5bGUuQ29vcmRpbmF0ZXMoMCwwKTsKK3ZhciBkPU1vY2hpS2l0LkRPTS5fZG9jdW1lbnQ7Cit2YXIgZGU9ZC5kb2N1bWVudEVsZW1lbnQ7Cit2YXIgZGI9ZC5ib2R5OworaWYoZGUmJihkZS5zY3JvbGxUb3B8fGRlLnNjcm9sbExlZnQpKXsKK2MueD1kZS5zY3JvbGxMZWZ0OworYy55PWRlLnNjcm9sbFRvcDsKK31lbHNleworaWYoZGIpeworYy54PWRiLnNjcm9sbExlZnQ7CitjLnk9ZGIuc2Nyb2xsVG9wOworfQorfQorcmV0dXJuIGM7Cit9LF9fbmV3X186ZnVuY3Rpb24oKXsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit2YXIgXzQ3MD1bIkEiLCJBQkJSIiwiQUNST05ZTSIsIkIiLCJCQVNFRk9OVCIsIkJETyIsIkJJRyIsIkJSIiwiQ0lURSIsIkNPREUiLCJERk4iLCJFTSIsIkZPTlQiLCJJIiwiSU1HIiwiS0JEIiwiTEFCRUwiLCJRIiwiUyIsIlNBTVAiLCJTTUFMTCIsIlNQQU4iLCJTVFJJS0UiLCJTVFJPTkciLCJTVUIiLCJTVVAiLCJURVhUQVJFQSIsIlRUIiwiVSIsIlZBUiJdOwordGhpcy5fZGVmYXVsdERpc3BsYXk9eyJUQUJMRSI6InRhYmxlIiwiVEhFQUQiOiJ0YWJsZS1oZWFkZXItZ3JvdXAiLCJUQk9EWSI6InRhYmxlLXJvdy1ncm91cCIsIlRGT09UIjoidGFibGUtZm9vdGVyLWdyb3VwIiwiQ09MR1JPVVAiOiJ0YWJsZS1jb2x1bW4tZ3JvdXAiLCJDT0wiOiJ0YWJsZS1jb2x1bW4iLCJUUiI6InRhYmxlLXJvdyIsIlREIjoidGFibGUtY2VsbCIsIlRIIjoidGFibGUtY2VsbCIsIkNBUFRJT04iOiJ0YWJsZS1jYXB0aW9uIiwiTEkiOiJsaXN0LWl0ZW0iLCJJTlBVVCI6ImlubGluZS1ibG9jayIsIlNFTEVDVCI6ImlubGluZS1ibG9jayJ9OworaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpeworZm9yKHZhciBrIGluIHRoaXMuX2RlZmF1bHREaXNwbGF5KXsKK3ZhciB2PXRoaXMuX2RlZmF1bHREaXNwbGF5W2tdOworaWYodi5pbmRleE9mKCJ0YWJsZSIpPT0wKXsKK3RoaXMuX2RlZmF1bHREaXNwbGF5W2tdPSJibG9jayI7Cit9Cit9Cit9Citmb3IodmFyIGk9MDtpPF80NzAubGVuZ3RoO2krKyl7Cit0aGlzLl9kZWZhdWx0RGlzcGxheVtfNDcwW2ldXT0iaW5saW5lIjsKK30KK3RoaXMuZWxlbWVudFBvc2l0aW9uPXRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uOwordGhpcy5lbGVtZW50RGltZW5zaW9ucz10aGlzLmdldEVsZW1lbnREaW1lbnNpb25zOwordGhpcy5oaWRlRWxlbWVudD1tLnBhcnRpYWwodGhpcy5zZXREaXNwbGF5Rm9yRWxlbWVudCwibm9uZSIpOwordGhpcy5zaG93RWxlbWVudD1tLnBhcnRpYWwodGhpcy5zZXREaXNwbGF5Rm9yRWxlbWVudCwiYmxvY2siKTsKK3RoaXMuRVhQT1JUX1RBR1M9eyI6Y29tbW9uIjp0aGlzLkVYUE9SVCwiOmFsbCI6bS5jb25jYXQodGhpcy5FWFBPUlQsdGhpcy5FWFBPUlRfT0spfTsKK20ubmFtZUZ1bmN0aW9ucyh0aGlzKTsKK319KTsKK01vY2hpS2l0LlN0eWxlLl9fbmV3X18oKTsKK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHModGhpcyxNb2NoaUtpdC5TdHlsZSk7CitNb2NoaUtpdC5CYXNlLl9kZXBzKCJMb2dnaW5nUGFuZSIsWyJCYXNlIiwiTG9nZ2luZyJdKTsKK01vY2hpS2l0LkxvZ2dpbmdQYW5lLk5BTUU9Ik1vY2hpS2l0LkxvZ2dpbmdQYW5lIjsKK01vY2hpS2l0LkxvZ2dpbmdQYW5lLlZFUlNJT049IjEuNC4yIjsKK01vY2hpS2l0LkxvZ2dpbmdQYW5lLl9fcmVwcl9fPWZ1bmN0aW9uKCl7CityZXR1cm4gIlsiK3RoaXMuTkFNRSsiICIrdGhpcy5WRVJTSU9OKyJdIjsKK307CitNb2NoaUtpdC5Mb2dnaW5nUGFuZS50b1N0cmluZz1mdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK307CitNb2NoaUtpdC5Mb2dnaW5nUGFuZS5jcmVhdGVMb2dnaW5nUGFuZT1mdW5jdGlvbihfNDc0KXsKK3ZhciBtPU1vY2hpS2l0LkxvZ2dpbmdQYW5lOworXzQ3ND0hKCFfNDc0KTsKK2lmKG0uX2xvZ2dpbmdQYW5lJiZtLl9sb2dnaW5nUGFuZS5pbmxpbmUhPV80NzQpeworbS5fbG9nZ2luZ1BhbmUuY2xvc2VQYW5lKCk7CittLl9sb2dnaW5nUGFuZT1udWxsOworfQoraWYoIW0uX2xvZ2dpbmdQYW5lfHxtLl9sb2dnaW5nUGFuZS5jbG9zZWQpeworbS5fbG9nZ2luZ1BhbmU9bmV3IG0uTG9nZ2luZ1BhbmUoXzQ3NCxNb2NoaUtpdC5Mb2dnaW5nLmxvZ2dlcik7Cit9CityZXR1cm4gbS5fbG9nZ2luZ1BhbmU7Cit9OworTW9jaGlLaXQuTG9nZ2luZ1BhbmUuTG9nZ2luZ1BhbmU9ZnVuY3Rpb24oXzQ3NixfNDc3KXsKK2lmKHR5cGVvZiAoXzQ3Nyk9PSJ1bmRlZmluZWQifHxfNDc3PT09bnVsbCl7CitfNDc3PU1vY2hpS2l0LkxvZ2dpbmcubG9nZ2VyOworfQordGhpcy5sb2dnZXI9XzQ3NzsKK3ZhciBfNDc4PU1vY2hpS2l0LkJhc2UudXBkYXRlOwordmFyIF80Nzk9TW9jaGlLaXQuQmFzZS51cGRhdGV0cmVlOwordmFyIGJpbmQ9TW9jaGlLaXQuQmFzZS5iaW5kOwordmFyIF80N2I9TW9jaGlLaXQuQmFzZS5jbG9uZTsKK3ZhciB3aW49d2luZG93OwordmFyIHVpZD0iX01vY2hpS2l0X0xvZ2dpbmdQYW5lIjsKK2lmKHR5cGVvZiAoTW9jaGlLaXQuRE9NKSE9InVuZGVmaW5lZCIpeword2luPU1vY2hpS2l0LkRPTS5jdXJyZW50V2luZG93KCk7Cit9CitpZighXzQ3Nil7Cit2YXIgdXJsPXdpbi5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMF0ucmVwbGFjZSgvWyM6XC8uPjwmJS1dL2csIl8iKTsKK3ZhciBuYW1lPXVpZCsiXyIrdXJsOwordmFyIG53aW49d2luLm9wZW4oIiIsbmFtZSwiZGVwZW5kZW50LHJlc2l6YWJsZSxoZWlnaHQ9MjAwIik7CitpZighbndpbil7CithbGVydCgiTm90IGFibGUgdG8gb3BlbiBkZWJ1Z2dpbmcgd2luZG93IGR1ZSB0byBwb3AtdXAgYmxvY2tpbmcuIik7CityZXR1cm4gdW5kZWZpbmVkOworfQorbndpbi5kb2N1bWVudC53cml0ZSgiPCFET0NUWVBFIEhUTUwgUFVCTElDIFwiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTlwiICIrIlwiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkXCI+IisiPGh0bWw+PGhlYWQ+PHRpdGxlPltNb2NoaUtpdC5Mb2dnaW5nUGFuZV08L3RpdGxlPjwvaGVhZD4iKyI8Ym9keT48L2JvZHk+PC9odG1sPiIpOworbndpbi5kb2N1bWVudC5jbG9zZSgpOworbndpbi5kb2N1bWVudC50aXRsZSs9IiAiK3dpbi5kb2N1bWVudC50aXRsZTsKK3dpbj1ud2luOworfQordmFyIGRvYz13aW4uZG9jdW1lbnQ7Cit0aGlzLmRvYz1kb2M7Cit2YXIgXzQ4Mj1kb2MuZ2V0RWxlbWVudEJ5SWQodWlkKTsKK3ZhciBfNDgzPSEhXzQ4MjsKK2lmKF80ODImJnR5cGVvZiAoXzQ4Mi5sb2dnaW5nUGFuZSkhPSJ1bmRlZmluZWQiKXsKK180ODIubG9nZ2luZ1BhbmUubG9nZ2VyPXRoaXMubG9nZ2VyOworXzQ4Mi5sb2dnaW5nUGFuZS5idWlsZEFuZEFwcGx5RmlsdGVyKCk7CityZXR1cm4gXzQ4Mi5sb2dnaW5nUGFuZTsKK30KK2lmKF80ODMpewordmFyIF80ODQ7Cit3aGlsZSgoXzQ4ND1fNDgyLmZpcnN0Q2hpbGQpKXsKK180ODIucmVtb3ZlQ2hpbGQoXzQ4NCk7Cit9Cit9ZWxzZXsKK180ODI9ZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOworXzQ4Mi5pZD11aWQ7Cit9CitfNDgyLmxvZ2dpbmdQYW5lPXRoaXM7Cit2YXIgXzQ4NT1kb2MuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK3ZhciBfNDg2PWRvYy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwordmFyIF80ODc9ZG9jLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwordmFyIF80ODg9ZG9jLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwordmFyIF80ODk9ZG9jLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwordmFyIF80OGE9ZG9jLmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwordmFyIF80OGI9ZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordmFyIF80OGM9ZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordmFyIF80OGQ9dWlkKyJfTGlzdGVuZXIiOwordGhpcy5jb2xvclRhYmxlPV80N2IodGhpcy5jb2xvclRhYmxlKTsKK3ZhciBfNDhlPVtdOwordmFyIF80OGY9bnVsbDsKK3ZhciBfNDkwPWZ1bmN0aW9uKG1zZyl7Cit2YXIgXzQ5Mj1tc2cubGV2ZWw7CitpZih0eXBlb2YgKF80OTIpPT0ibnVtYmVyIil7CitfNDkyPU1vY2hpS2l0LkxvZ2dpbmcuTG9nTGV2ZWxbXzQ5Ml07Cit9CityZXR1cm4gXzQ5MjsKK307Cit2YXIgXzQ5Mz1mdW5jdGlvbihtc2cpeworcmV0dXJuIG1zZy5pbmZvLmpvaW4oIiAiKTsKK307Cit2YXIgXzQ5NT1iaW5kKGZ1bmN0aW9uKG1zZyl7Cit2YXIgXzQ5Nz1fNDkwKG1zZyk7Cit2YXIgdGV4dD1fNDkzKG1zZyk7Cit2YXIgYz10aGlzLmNvbG9yVGFibGVbXzQ5N107Cit2YXIgcD1kb2MuY3JlYXRlRWxlbWVudCgic3BhbiIpOworcC5jbGFzc05hbWU9Ik1vY2hpS2l0LUxvZ01lc3NhZ2UgTW9jaGlLaXQtTG9nTGV2ZWwtIitfNDk3OworcC5zdHlsZS5jc3NUZXh0PSJtYXJnaW46IDBweDsgd2hpdGUtc3BhY2U6IC1tb3otcHJlLXdyYXA7IHdoaXRlLXNwYWNlOiAtby1wcmUtd3JhcDsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7IHdvcmQtd3JhcDogYnJlYWstd29yZDsgd3JhcC1vcHRpb246IGVtZXJnZW5jeTsgY29sb3I6ICIrYzsKK3AuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKF80OTcrIjogIit0ZXh0KSk7CitfNDhjLmFwcGVuZENoaWxkKHApOworXzQ4Yy5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgiYnIiKSk7CitpZihfNDhiLm9mZnNldEhlaWdodD5fNDhiLnNjcm9sbEhlaWdodCl7CitfNDhiLnNjcm9sbFRvcD0wOworfWVsc2V7CitfNDhiLnNjcm9sbFRvcD1fNDhiLnNjcm9sbEhlaWdodDsKK30KK30sdGhpcyk7Cit2YXIgXzQ5Yj1mdW5jdGlvbihtc2cpeworXzQ4ZVtfNDhlLmxlbmd0aF09bXNnOworXzQ5NShtc2cpOworfTsKK3ZhciBfNDlkPWZ1bmN0aW9uKCl7Cit2YXIgXzQ5ZSxfNDlmOwordHJ5eworXzQ5ZT1uZXcgUmVnRXhwKF80ODUudmFsdWUpOworXzQ5Zj1uZXcgUmVnRXhwKF80ODYudmFsdWUpOworfQorY2F0Y2goZSl7Citsb2dEZWJ1ZygiRXJyb3IgaW4gZmlsdGVyIHJlZ2V4OiAiK2UubWVzc2FnZSk7CityZXR1cm4gbnVsbDsKK30KK3JldHVybiBmdW5jdGlvbihtc2cpeworcmV0dXJuIChfNDllLnRlc3QoXzQ5MChtc2cpKSYmXzQ5Zi50ZXN0KF80OTMobXNnKSkpOworfTsKK307Cit2YXIgXzRhMT1mdW5jdGlvbigpeword2hpbGUoXzQ4Yy5maXJzdENoaWxkKXsKK180OGMucmVtb3ZlQ2hpbGQoXzQ4Yy5maXJzdENoaWxkKTsKK30KK307Cit2YXIgXzRhMj1mdW5jdGlvbigpeworXzQ4ZT1bXTsKK180YTEoKTsKK307Cit2YXIgXzRhMz1iaW5kKGZ1bmN0aW9uKCl7CitpZih0aGlzLmNsb3NlZCl7CityZXR1cm47Cit9Cit0aGlzLmNsb3NlZD10cnVlOworaWYoTW9jaGlLaXQuTG9nZ2luZ1BhbmUuX2xvZ2dpbmdQYW5lPT10aGlzKXsKK01vY2hpS2l0LkxvZ2dpbmdQYW5lLl9sb2dnaW5nUGFuZT1udWxsOworfQordGhpcy5sb2dnZXIucmVtb3ZlTGlzdGVuZXIoXzQ4ZCk7Cit0cnl7Cit0cnl7CitfNDgyLmxvZ2dpbmdQYW5lPW51bGw7Cit9CitjYXRjaChlKXsKK2xvZ0ZhdGFsKCJCb29rbWFya2xldCB3YXMgY2xvc2VkIGluY29ycmVjdGx5LiIpOworfQoraWYoXzQ3Nil7CitfNDgyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoXzQ4Mik7Cit9ZWxzZXsKK3RoaXMud2luLmNsb3NlKCk7Cit9Cit9CitjYXRjaChlKXsKK30KK30sdGhpcyk7Cit2YXIgXzRhND1mdW5jdGlvbigpeworXzRhMSgpOworZm9yKHZhciBpPTA7aTxfNDhlLmxlbmd0aDtpKyspewordmFyIG1zZz1fNDhlW2ldOworaWYoXzQ4Zj09PW51bGx8fF80OGYobXNnKSl7CitfNDk1KG1zZyk7Cit9Cit9Cit9OwordGhpcy5idWlsZEFuZEFwcGx5RmlsdGVyPWZ1bmN0aW9uKCl7CitfNDhmPV80OWQoKTsKK180YTQoKTsKK3RoaXMubG9nZ2VyLnJlbW92ZUxpc3RlbmVyKF80OGQpOwordGhpcy5sb2dnZXIuYWRkTGlzdGVuZXIoXzQ4ZCxfNDhmLF80OWIpOworfTsKK3ZhciBfNGE3PWJpbmQoZnVuY3Rpb24oKXsKK180OGU9dGhpcy5sb2dnZXIuZ2V0TWVzc2FnZXMoKTsKK180YTQoKTsKK30sdGhpcyk7Cit2YXIgXzRhOD1iaW5kKGZ1bmN0aW9uKF80YTkpeworXzRhOT1fNGE5fHx3aW5kb3cuZXZlbnQ7CitrZXk9XzRhOS53aGljaHx8XzRhOS5rZXlDb2RlOworaWYoa2V5PT0xMyl7Cit0aGlzLmJ1aWxkQW5kQXBwbHlGaWx0ZXIoKTsKK30KK30sdGhpcyk7Cit2YXIgXzRhYT0iZGlzcGxheTogYmxvY2s7IHotaW5kZXg6IDEwMDA7IGxlZnQ6IDBweDsgYm90dG9tOiAwcHg7IHBvc2l0aW9uOiBmaXhlZDsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBmb250OiAiK3RoaXMubG9nRm9udDsKK2lmKF80NzYpeworXzRhYSs9IjsgaGVpZ2h0OiAxMGVtOyBib3JkZXItdG9wOiAycHggc29saWQgYmxhY2siOworfWVsc2V7CitfNGFhKz0iOyBoZWlnaHQ6IDEwMCU7IjsKK30KK180ODIuc3R5bGUuY3NzVGV4dD1fNGFhOworaWYoIV80ODMpeworZG9jLmJvZHkuYXBwZW5kQ2hpbGQoXzQ4Mik7Cit9CitfNGFhPXsiY3NzVGV4dCI6IndpZHRoOiAzMyU7IGRpc3BsYXk6IGlubGluZTsgZm9udDogIit0aGlzLmxvZ0ZvbnR9OworXzQ3OShfNDg1LHsidmFsdWUiOiJGQVRBTHxFUlJPUnxXQVJOSU5HfElORk98REVCVUciLCJvbmtleXByZXNzIjpfNGE4LCJzdHlsZSI6XzRhYX0pOworXzQ4Mi5hcHBlbmRDaGlsZChfNDg1KTsKK180NzkoXzQ4Nix7InZhbHVlIjoiLioiLCJvbmtleXByZXNzIjpfNGE4LCJzdHlsZSI6XzRhYX0pOworXzQ4Mi5hcHBlbmRDaGlsZChfNDg2KTsKK180YWE9IndpZHRoOiA4JTsgZGlzcGxheTppbmxpbmU7IGZvbnQ6ICIrdGhpcy5sb2dGb250OworXzQ4Ny5hcHBlbmRDaGlsZChkb2MuY3JlYXRlVGV4dE5vZGUoIkZpbHRlciIpKTsKK180ODcub25jbGljaz1iaW5kKCJidWlsZEFuZEFwcGx5RmlsdGVyIix0aGlzKTsKK180ODcuc3R5bGUuY3NzVGV4dD1fNGFhOworXzQ4Mi5hcHBlbmRDaGlsZChfNDg3KTsKK180ODguYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKCJMb2FkIikpOworXzQ4OC5vbmNsaWNrPV80YTc7CitfNDg4LnN0eWxlLmNzc1RleHQ9XzRhYTsKK180ODIuYXBwZW5kQ2hpbGQoXzQ4OCk7CitfNDg5LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZSgiQ2xlYXIiKSk7CitfNDg5Lm9uY2xpY2s9XzRhMjsKK180ODkuc3R5bGUuY3NzVGV4dD1fNGFhOworXzQ4Mi5hcHBlbmRDaGlsZChfNDg5KTsKK180OGEuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKCJDbG9zZSIpKTsKK180OGEub25jbGljaz1fNGEzOworXzQ4YS5zdHlsZS5jc3NUZXh0PV80YWE7CitfNDgyLmFwcGVuZENoaWxkKF80OGEpOworXzQ4Yi5zdHlsZS5jc3NUZXh0PSJvdmVyZmxvdzogYXV0bzsgd2lkdGg6IDEwMCUiOworXzQ4Yy5zdHlsZS5jc3NUZXh0PSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAiKyhfNDc2PyI4ZW0iOiIxMDAlIik7CitfNDhiLmFwcGVuZENoaWxkKF80OGMpOworXzQ4Mi5hcHBlbmRDaGlsZChfNDhiKTsKK3RoaXMuYnVpbGRBbmRBcHBseUZpbHRlcigpOworXzRhNygpOworaWYoXzQ3Nil7Cit0aGlzLndpbj11bmRlZmluZWQ7Cit9ZWxzZXsKK3RoaXMud2luPXdpbjsKK30KK3RoaXMuaW5saW5lPV80NzY7Cit0aGlzLmNsb3NlUGFuZT1fNGEzOwordGhpcy5jbG9zZWQ9ZmFsc2U7CityZXR1cm4gdGhpczsKK307CitNb2NoaUtpdC5Mb2dnaW5nUGFuZS5Mb2dnaW5nUGFuZS5wcm90b3R5cGU9eyJsb2dGb250IjoiOHB0IFZlcmRhbmEsc2Fucy1zZXJpZiIsImNvbG9yVGFibGUiOnsiRVJST1IiOiJyZWQiLCJGQVRBTCI6ImRhcmtyZWQiLCJXQVJOSU5HIjoiYmx1ZSIsIklORk8iOiJibGFjayIsIkRFQlVHIjoiZ3JlZW4ifX07CitNb2NoaUtpdC5Mb2dnaW5nUGFuZS5FWFBPUlRfT0s9WyJMb2dnaW5nUGFuZSJdOworTW9jaGlLaXQuTG9nZ2luZ1BhbmUuRVhQT1JUPVsiY3JlYXRlTG9nZ2luZ1BhbmUiXTsKK01vY2hpS2l0LkxvZ2dpbmdQYW5lLl9fbmV3X189ZnVuY3Rpb24oKXsKK3RoaXMuRVhQT1JUX1RBR1M9eyI6Y29tbW9uIjp0aGlzLkVYUE9SVCwiOmFsbCI6TW9jaGlLaXQuQmFzZS5jb25jYXQodGhpcy5FWFBPUlQsdGhpcy5FWFBPUlRfT0spfTsKK01vY2hpS2l0LkJhc2UubmFtZUZ1bmN0aW9ucyh0aGlzKTsKK01vY2hpS2l0LkxvZ2dpbmdQYW5lLl9sb2dnaW5nUGFuZT1udWxsOworfTsKK01vY2hpS2l0LkxvZ2dpbmdQYW5lLl9fbmV3X18oKTsKK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHModGhpcyxNb2NoaUtpdC5Mb2dnaW5nUGFuZSk7CitNb2NoaUtpdC5CYXNlLl9kZXBzKCJDb2xvciIsWyJCYXNlIiwiRE9NIiwiU3R5bGUiXSk7CitNb2NoaUtpdC5Db2xvci5OQU1FPSJNb2NoaUtpdC5Db2xvciI7CitNb2NoaUtpdC5Db2xvci5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5Db2xvci5fX3JlcHJfXz1mdW5jdGlvbigpeworcmV0dXJuICJbIit0aGlzLk5BTUUrIiAiK3RoaXMuVkVSU0lPTisiXSI7Cit9OworTW9jaGlLaXQuQ29sb3IudG9TdHJpbmc9ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9fcmVwcl9fKCk7Cit9OworTW9jaGlLaXQuQ29sb3IuQ29sb3I9ZnVuY3Rpb24ocmVkLF80YWMsYmx1ZSxfNGFlKXsKK2lmKHR5cGVvZiAoXzRhZSk9PSJ1bmRlZmluZWQifHxfNGFlPT09bnVsbCl7CitfNGFlPTE7Cit9Cit0aGlzLnJnYj17cjpyZWQsZzpfNGFjLGI6Ymx1ZSxhOl80YWV9OworfTsKK01vY2hpS2l0LkNvbG9yLkNvbG9yLnByb3RvdHlwZT17X19jbGFzc19fOk1vY2hpS2l0LkNvbG9yLkNvbG9yLGNvbG9yV2l0aEFscGhhOmZ1bmN0aW9uKF80YWYpewordmFyIHJnYj10aGlzLnJnYjsKK3ZhciBtPU1vY2hpS2l0LkNvbG9yOworcmV0dXJuIG0uQ29sb3IuZnJvbVJHQihyZ2IucixyZ2IuZyxyZ2IuYixfNGFmKTsKK30sY29sb3JXaXRoSHVlOmZ1bmN0aW9uKGh1ZSl7Cit2YXIgaHNsPXRoaXMuYXNIU0woKTsKK2hzbC5oPWh1ZTsKK3ZhciBtPU1vY2hpS2l0LkNvbG9yOworcmV0dXJuIG0uQ29sb3IuZnJvbUhTTChoc2wpOworfSxjb2xvcldpdGhTYXR1cmF0aW9uOmZ1bmN0aW9uKF80YjUpewordmFyIGhzbD10aGlzLmFzSFNMKCk7Citoc2wucz1fNGI1OwordmFyIG09TW9jaGlLaXQuQ29sb3I7CityZXR1cm4gbS5Db2xvci5mcm9tSFNMKGhzbCk7Cit9LGNvbG9yV2l0aExpZ2h0bmVzczpmdW5jdGlvbihfNGI4KXsKK3ZhciBoc2w9dGhpcy5hc0hTTCgpOworaHNsLmw9XzRiODsKK3ZhciBtPU1vY2hpS2l0LkNvbG9yOworcmV0dXJuIG0uQ29sb3IuZnJvbUhTTChoc2wpOworfSxkYXJrZXJDb2xvcldpdGhMZXZlbDpmdW5jdGlvbihfNGJiKXsKK3ZhciBoc2w9dGhpcy5hc0hTTCgpOworaHNsLmw9TWF0aC5tYXgoaHNsLmwtXzRiYiwwKTsKK3ZhciBtPU1vY2hpS2l0LkNvbG9yOworcmV0dXJuIG0uQ29sb3IuZnJvbUhTTChoc2wpOworfSxsaWdodGVyQ29sb3JXaXRoTGV2ZWw6ZnVuY3Rpb24oXzRiZSl7Cit2YXIgaHNsPXRoaXMuYXNIU0woKTsKK2hzbC5sPU1hdGgubWluKGhzbC5sK180YmUsMSk7Cit2YXIgbT1Nb2NoaUtpdC5Db2xvcjsKK3JldHVybiBtLkNvbG9yLmZyb21IU0woaHNsKTsKK30sYmxlbmRlZENvbG9yOmZ1bmN0aW9uKF80YzEsXzRjMil7CitpZih0eXBlb2YgKF80YzIpPT0idW5kZWZpbmVkInx8XzRjMj09PW51bGwpeworXzRjMj0wLjU7Cit9Cit2YXIgc2Y9MS1fNGMyOwordmFyIHM9dGhpcy5yZ2I7Cit2YXIgZD1fNGMxLnJnYjsKK3ZhciBkZj1fNGMyOworcmV0dXJuIE1vY2hpS2l0LkNvbG9yLkNvbG9yLmZyb21SR0IoKHMucipzZikrKGQucipkZiksKHMuZypzZikrKGQuZypkZiksKHMuYipzZikrKGQuYipkZiksKHMuYSpzZikrKGQuYSpkZikpOworfSxjb21wYXJlUkdCOmZ1bmN0aW9uKF80YzcpewordmFyIGE9dGhpcy5hc1JHQigpOwordmFyIGI9XzRjNy5hc1JHQigpOworcmV0dXJuIE1vY2hpS2l0LkJhc2UuY29tcGFyZShbYS5yLGEuZyxhLmIsYS5hXSxbYi5yLGIuZyxiLmIsYi5hXSk7Cit9LGlzTGlnaHQ6ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLmFzSFNMKCkuYj4wLjU7Cit9LGlzRGFyazpmdW5jdGlvbigpeworcmV0dXJuICghdGhpcy5pc0xpZ2h0KCkpOworfSx0b0hTTFN0cmluZzpmdW5jdGlvbigpewordmFyIGM9dGhpcy5hc0hTTCgpOwordmFyIGNjYz1Nb2NoaUtpdC5Db2xvci5jbGFtcENvbG9yQ29tcG9uZW50OwordmFyIHJ2YWw9dGhpcy5faHNsU3RyaW5nOworaWYoIXJ2YWwpewordmFyIG1pZD0oY2NjKGMuaCwzNjApLnRvRml4ZWQoMCkrIiwiK2NjYyhjLnMsMTAwKS50b1ByZWNpc2lvbig0KSsiJSIrIiwiK2NjYyhjLmwsMTAwKS50b1ByZWNpc2lvbig0KSsiJSIpOwordmFyIGE9Yy5hOworaWYoYT49MSl7CithPTE7CitydmFsPSJoc2woIittaWQrIikiOworfWVsc2V7CitpZihhPD0wKXsKK2E9MDsKK30KK3J2YWw9ImhzbGEoIittaWQrIiwiK2ErIikiOworfQordGhpcy5faHNsU3RyaW5nPXJ2YWw7Cit9CityZXR1cm4gcnZhbDsKK30sdG9SR0JTdHJpbmc6ZnVuY3Rpb24oKXsKK3ZhciBjPXRoaXMucmdiOwordmFyIGNjYz1Nb2NoaUtpdC5Db2xvci5jbGFtcENvbG9yQ29tcG9uZW50OwordmFyIHJ2YWw9dGhpcy5fcmdiU3RyaW5nOworaWYoIXJ2YWwpewordmFyIG1pZD0oY2NjKGMuciwyNTUpLnRvRml4ZWQoMCkrIiwiK2NjYyhjLmcsMjU1KS50b0ZpeGVkKDApKyIsIitjY2MoYy5iLDI1NSkudG9GaXhlZCgwKSk7CitpZihjLmEhPTEpeworcnZhbD0icmdiYSgiK21pZCsiLCIrYy5hKyIpIjsKK31lbHNleworcnZhbD0icmdiKCIrbWlkKyIpIjsKK30KK3RoaXMuX3JnYlN0cmluZz1ydmFsOworfQorcmV0dXJuIHJ2YWw7Cit9LGFzUkdCOmZ1bmN0aW9uKCl7CityZXR1cm4gTW9jaGlLaXQuQmFzZS5jbG9uZSh0aGlzLnJnYik7Cit9LHRvSGV4U3RyaW5nOmZ1bmN0aW9uKCl7Cit2YXIgbT1Nb2NoaUtpdC5Db2xvcjsKK3ZhciBjPXRoaXMucmdiOwordmFyIGNjYz1Nb2NoaUtpdC5Db2xvci5jbGFtcENvbG9yQ29tcG9uZW50OwordmFyIHJ2YWw9dGhpcy5faGV4U3RyaW5nOworaWYoIXJ2YWwpeworcnZhbD0oIiMiK20udG9Db2xvclBhcnQoY2NjKGMuciwyNTUpKSttLnRvQ29sb3JQYXJ0KGNjYyhjLmcsMjU1KSkrbS50b0NvbG9yUGFydChjY2MoYy5iLDI1NSkpKTsKK3RoaXMuX2hleFN0cmluZz1ydmFsOworfQorcmV0dXJuIHJ2YWw7Cit9LGFzSFNWOmZ1bmN0aW9uKCl7Cit2YXIgaHN2PXRoaXMuaHN2OwordmFyIGM9dGhpcy5yZ2I7CitpZih0eXBlb2YgKGhzdik9PSJ1bmRlZmluZWQifHxoc3Y9PT1udWxsKXsKK2hzdj1Nb2NoaUtpdC5Db2xvci5yZ2JUb0hTVih0aGlzLnJnYik7Cit0aGlzLmhzdj1oc3Y7Cit9CityZXR1cm4gTW9jaGlLaXQuQmFzZS5jbG9uZShoc3YpOworfSxhc0hTTDpmdW5jdGlvbigpewordmFyIGhzbD10aGlzLmhzbDsKK3ZhciBjPXRoaXMucmdiOworaWYodHlwZW9mIChoc2wpPT0idW5kZWZpbmVkInx8aHNsPT09bnVsbCl7Citoc2w9TW9jaGlLaXQuQ29sb3IucmdiVG9IU0wodGhpcy5yZ2IpOwordGhpcy5oc2w9aHNsOworfQorcmV0dXJuIE1vY2hpS2l0LkJhc2UuY2xvbmUoaHNsKTsKK30sdG9TdHJpbmc6ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLnRvUkdCU3RyaW5nKCk7Cit9LHJlcHI6ZnVuY3Rpb24oKXsKK3ZhciBjPXRoaXMucmdiOwordmFyIGNvbD1bYy5yLGMuZyxjLmIsYy5hXTsKK3JldHVybiB0aGlzLl9fY2xhc3NfXy5OQU1FKyIoIitjb2wuam9pbigiLCAiKSsiKSI7Cit9fTsKK01vY2hpS2l0LkJhc2UudXBkYXRlKE1vY2hpS2l0LkNvbG9yLkNvbG9yLHtmcm9tUkdCOmZ1bmN0aW9uKHJlZCxfNGRlLGJsdWUsXzRlMCl7Cit2YXIgXzRlMT1Nb2NoaUtpdC5Db2xvci5Db2xvcjsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpewordmFyIHJnYj1yZWQ7CityZWQ9cmdiLnI7CitfNGRlPXJnYi5nOworYmx1ZT1yZ2IuYjsKK2lmKHR5cGVvZiAocmdiLmEpPT0idW5kZWZpbmVkIil7CitfNGUwPXVuZGVmaW5lZDsKK31lbHNleworXzRlMD1yZ2IuYTsKK30KK30KK3JldHVybiBuZXcgXzRlMShyZWQsXzRkZSxibHVlLF80ZTApOworfSxmcm9tSFNMOmZ1bmN0aW9uKGh1ZSxfNGU0LF80ZTUsXzRlNil7Cit2YXIgbT1Nb2NoaUtpdC5Db2xvcjsKK3JldHVybiBtLkNvbG9yLmZyb21SR0IobS5oc2xUb1JHQi5hcHBseShtLGFyZ3VtZW50cykpOworfSxmcm9tSFNWOmZ1bmN0aW9uKGh1ZSxfNGU5LF80ZWEsXzRlYil7Cit2YXIgbT1Nb2NoaUtpdC5Db2xvcjsKK3JldHVybiBtLkNvbG9yLmZyb21SR0IobS5oc3ZUb1JHQi5hcHBseShtLGFyZ3VtZW50cykpOworfSxmcm9tTmFtZTpmdW5jdGlvbihuYW1lKXsKK3ZhciBfNGVlPU1vY2hpS2l0LkNvbG9yLkNvbG9yOworaWYobmFtZS5jaGFyQXQoMCk9PSJcIiIpeworbmFtZT1uYW1lLnN1YnN0cigxLG5hbWUubGVuZ3RoLTIpOworfQordmFyIF80ZWY9XzRlZS5fbmFtZWRDb2xvcnNbbmFtZS50b0xvd2VyQ2FzZSgpXTsKK2lmKHR5cGVvZiAoXzRlZik9PSJzdHJpbmciKXsKK3JldHVybiBfNGVlLmZyb21IZXhTdHJpbmcoXzRlZik7Cit9ZWxzZXsKK2lmKG5hbWU9PSJ0cmFuc3BhcmVudCIpeworcmV0dXJuIF80ZWUudHJhbnNwYXJlbnRDb2xvcigpOworfQorfQorcmV0dXJuIG51bGw7Cit9LGZyb21TdHJpbmc6ZnVuY3Rpb24oXzRmMCl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Db2xvci5Db2xvcjsKK3ZhciBfNGYyPV80ZjAuc3Vic3RyKDAsMyk7CitpZihfNGYyPT0icmdiIil7CityZXR1cm4gc2VsZi5mcm9tUkdCU3RyaW5nKF80ZjApOworfWVsc2V7CitpZihfNGYyPT0iaHNsIil7CityZXR1cm4gc2VsZi5mcm9tSFNMU3RyaW5nKF80ZjApOworfWVsc2V7CitpZihfNGYwLmNoYXJBdCgwKT09IiMiKXsKK3JldHVybiBzZWxmLmZyb21IZXhTdHJpbmcoXzRmMCk7Cit9Cit9Cit9CityZXR1cm4gc2VsZi5mcm9tTmFtZShfNGYwKTsKK30sZnJvbUhleFN0cmluZzpmdW5jdGlvbihfNGYzKXsKK2lmKF80ZjMuY2hhckF0KDApPT0iIyIpeworXzRmMz1fNGYzLnN1YnN0cmluZygxKTsKK30KK3ZhciBfNGY0PVtdOwordmFyIGksaGV4OworaWYoXzRmMy5sZW5ndGg9PTMpeworZm9yKGk9MDtpPDM7aSsrKXsKK2hleD1fNGYzLnN1YnN0cihpLDEpOworXzRmNC5wdXNoKHBhcnNlSW50KGhleCtoZXgsMTYpLzI1NSk7Cit9Cit9ZWxzZXsKK2ZvcihpPTA7aTw2O2krPTIpeworaGV4PV80ZjMuc3Vic3RyKGksMik7CitfNGY0LnB1c2gocGFyc2VJbnQoaGV4LDE2KS8yNTUpOworfQorfQordmFyIF80Zjc9TW9jaGlLaXQuQ29sb3IuQ29sb3I7CityZXR1cm4gXzRmNy5mcm9tUkdCLmFwcGx5KF80ZjcsXzRmNCk7Cit9LF9mcm9tQ29sb3JTdHJpbmc6ZnVuY3Rpb24ocHJlLF80ZjksXzRmYSxfNGZiKXsKK2lmKF80ZmIuaW5kZXhPZihwcmUpPT09MCl7CitfNGZiPV80ZmIuc3Vic3RyaW5nKF80ZmIuaW5kZXhPZigiKCIsMykrMSxfNGZiLmxlbmd0aC0xKTsKK30KK3ZhciBfNGZjPV80ZmIuc3BsaXQoL1xzKixccyovKTsKK3ZhciBfNGZkPVtdOworZm9yKHZhciBpPTA7aTxfNGZjLmxlbmd0aDtpKyspewordmFyIGM9XzRmY1tpXTsKK3ZhciB2YWw7Cit2YXIgXzUwMT1jLnN1YnN0cmluZyhjLmxlbmd0aC0zKTsKK2lmKGMuY2hhckF0KGMubGVuZ3RoLTEpPT0iJSIpewordmFsPTAuMDEqcGFyc2VGbG9hdChjLnN1YnN0cmluZygwLGMubGVuZ3RoLTEpKTsKK31lbHNleworaWYoXzUwMT09ImRlZyIpewordmFsPXBhcnNlRmxvYXQoYykvMzYwOworfWVsc2V7CitpZihfNTAxPT0icmFkIil7Cit2YWw9cGFyc2VGbG9hdChjKS8oTWF0aC5QSSoyKTsKK31lbHNlewordmFsPV80ZmFbaV0qcGFyc2VGbG9hdChjKTsKK30KK30KK30KK180ZmQucHVzaCh2YWwpOworfQorcmV0dXJuIHRoaXNbXzRmOV0uYXBwbHkodGhpcyxfNGZkKTsKK30sZnJvbUNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oZWxlbSxfNTAzKXsKK3ZhciBkPU1vY2hpS2l0LkRPTTsKK3ZhciBjbHM9TW9jaGlLaXQuQ29sb3IuQ29sb3I7Citmb3IoZWxlbT1kLmdldEVsZW1lbnQoZWxlbSk7ZWxlbTtlbGVtPWVsZW0ucGFyZW50Tm9kZSl7Cit2YXIgXzUwNj1Nb2NoaUtpdC5TdHlsZS5nZXRTdHlsZS5hcHBseShkLGFyZ3VtZW50cyk7CitpZighXzUwNil7Citjb250aW51ZTsKK30KK3ZhciBfNTA3PWNscy5mcm9tU3RyaW5nKF81MDYpOworaWYoIV81MDcpeworYnJlYWs7Cit9CitpZihfNTA3LmFzUkdCKCkuYT4wKXsKK3JldHVybiBfNTA3OworfQorfQorcmV0dXJuIG51bGw7Cit9LGZyb21CYWNrZ3JvdW5kOmZ1bmN0aW9uKGVsZW0pewordmFyIGNscz1Nb2NoaUtpdC5Db2xvci5Db2xvcjsKK3JldHVybiBjbHMuZnJvbUNvbXB1dGVkU3R5bGUoZWxlbSwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZC1jb2xvciIpfHxjbHMud2hpdGVDb2xvcigpOworfSxmcm9tVGV4dDpmdW5jdGlvbihlbGVtKXsKK3ZhciBjbHM9TW9jaGlLaXQuQ29sb3IuQ29sb3I7CityZXR1cm4gY2xzLmZyb21Db21wdXRlZFN0eWxlKGVsZW0sImNvbG9yIiwiY29sb3IiKXx8Y2xzLmJsYWNrQ29sb3IoKTsKK30sbmFtZWRDb2xvcnM6ZnVuY3Rpb24oKXsKK3JldHVybiBNb2NoaUtpdC5CYXNlLmNsb25lKE1vY2hpS2l0LkNvbG9yLkNvbG9yLl9uYW1lZENvbG9ycyk7Cit9fSk7CitNb2NoaUtpdC5CYXNlLnVwZGF0ZShNb2NoaUtpdC5Db2xvcix7Y2xhbXBDb2xvckNvbXBvbmVudDpmdW5jdGlvbih2LF81MGQpewordio9XzUwZDsKK2lmKHY8MCl7CityZXR1cm4gMDsKK31lbHNleworaWYodj5fNTBkKXsKK3JldHVybiBfNTBkOworfWVsc2V7CityZXR1cm4gdjsKK30KK30KK30sX2hzbFZhbHVlOmZ1bmN0aW9uKG4xLG4yLGh1ZSl7CitpZihodWU+Nil7CitodWUtPTY7Cit9ZWxzZXsKK2lmKGh1ZTwwKXsKK2h1ZSs9NjsKK30KK30KK3ZhciB2YWw7CitpZihodWU8MSl7Cit2YWw9bjErKG4yLW4xKSpodWU7Cit9ZWxzZXsKK2lmKGh1ZTwzKXsKK3ZhbD1uMjsKK31lbHNleworaWYoaHVlPDQpewordmFsPW4xKyhuMi1uMSkqKDQtaHVlKTsKK31lbHNlewordmFsPW4xOworfQorfQorfQorcmV0dXJuIHZhbDsKK30saHN2VG9SR0I6ZnVuY3Rpb24oaHVlLF81MTMsXzUxNCxfNTE1KXsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpewordmFyIGhzdj1odWU7CitodWU9aHN2Lmg7CitfNTEzPWhzdi5zOworXzUxND1oc3YudjsKK181MTU9aHN2LmE7Cit9Cit2YXIgcmVkOwordmFyIF81MTg7Cit2YXIgYmx1ZTsKK2lmKF81MTM9PT0wKXsKK3JlZD1fNTE0OworXzUxOD1fNTE0OworYmx1ZT1fNTE0OworfWVsc2V7Cit2YXIgaT1NYXRoLmZsb29yKGh1ZSo2KTsKK3ZhciBmPShodWUqNiktaTsKK3ZhciBwPV81MTQqKDEtXzUxMyk7Cit2YXIgcT1fNTE0KigxLShfNTEzKmYpKTsKK3ZhciB0PV81MTQqKDEtKF81MTMqKDEtZikpKTsKK3N3aXRjaChpKXsKK2Nhc2UgMToKK3JlZD1xOworXzUxOD1fNTE0OworYmx1ZT1wOworYnJlYWs7CitjYXNlIDI6CityZWQ9cDsKK181MTg9XzUxNDsKK2JsdWU9dDsKK2JyZWFrOworY2FzZSAzOgorcmVkPXA7CitfNTE4PXE7CitibHVlPV81MTQ7CiticmVhazsKK2Nhc2UgNDoKK3JlZD10OworXzUxOD1wOworYmx1ZT1fNTE0OworYnJlYWs7CitjYXNlIDU6CityZWQ9XzUxNDsKK181MTg9cDsKK2JsdWU9cTsKK2JyZWFrOworY2FzZSA2OgorY2FzZSAwOgorcmVkPV81MTQ7CitfNTE4PXQ7CitibHVlPXA7CiticmVhazsKK30KK30KK3JldHVybiB7cjpyZWQsZzpfNTE4LGI6Ymx1ZSxhOl81MTV9OworfSxoc2xUb1JHQjpmdW5jdGlvbihodWUsXzUyMCxfNTIxLF81MjIpeworaWYoYXJndW1lbnRzLmxlbmd0aD09MSl7Cit2YXIgaHNsPWh1ZTsKK2h1ZT1oc2wuaDsKK181MjA9aHNsLnM7CitfNTIxPWhzbC5sOworXzUyMj1oc2wuYTsKK30KK3ZhciByZWQ7Cit2YXIgXzUyNTsKK3ZhciBibHVlOworaWYoXzUyMD09PTApeworcmVkPV81MjE7CitfNTI1PV81MjE7CitibHVlPV81MjE7Cit9ZWxzZXsKK3ZhciBtMjsKK2lmKF81MjE8PTAuNSl7CittMj1fNTIxKigxK181MjApOworfWVsc2V7CittMj1fNTIxK181MjAtKF81MjEqXzUyMCk7Cit9Cit2YXIgbTE9KDIqXzUyMSktbTI7Cit2YXIgZj1Nb2NoaUtpdC5Db2xvci5faHNsVmFsdWU7Cit2YXIgaDY9aHVlKjY7CityZWQ9ZihtMSxtMixoNisyKTsKK181MjU9ZihtMSxtMixoNik7CitibHVlPWYobTEsbTIsaDYtMik7Cit9CityZXR1cm4ge3I6cmVkLGc6XzUyNSxiOmJsdWUsYTpfNTIyfTsKK30scmdiVG9IU1Y6ZnVuY3Rpb24ocmVkLF81MmMsYmx1ZSxfNTJlKXsKK2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpewordmFyIHJnYj1yZWQ7CityZWQ9cmdiLnI7CitfNTJjPXJnYi5nOworYmx1ZT1yZ2IuYjsKK181MmU9cmdiLmE7Cit9Cit2YXIgbWF4PU1hdGgubWF4KE1hdGgubWF4KHJlZCxfNTJjKSxibHVlKTsKK3ZhciBtaW49TWF0aC5taW4oTWF0aC5taW4ocmVkLF81MmMpLGJsdWUpOwordmFyIGh1ZTsKK3ZhciBfNTMzOwordmFyIF81MzQ9bWF4OworaWYobWluPT1tYXgpeworaHVlPTA7CitfNTMzPTA7Cit9ZWxzZXsKK3ZhciBfNTM1PShtYXgtbWluKTsKK181MzM9XzUzNS9tYXg7CitpZihyZWQ9PW1heCl7CitodWU9KF81MmMtYmx1ZSkvXzUzNTsKK31lbHNleworaWYoXzUyYz09bWF4KXsKK2h1ZT0yKygoYmx1ZS1yZWQpL181MzUpOworfWVsc2V7CitodWU9NCsoKHJlZC1fNTJjKS9fNTM1KTsKK30KK30KK2h1ZS89NjsKK2lmKGh1ZTwwKXsKK2h1ZSs9MTsKK30KK2lmKGh1ZT4xKXsKK2h1ZS09MTsKK30KK30KK3JldHVybiB7aDpodWUsczpfNTMzLHY6XzUzNCxhOl81MmV9OworfSxyZ2JUb0hTTDpmdW5jdGlvbihyZWQsXzUzNyxibHVlLF81MzkpeworaWYoYXJndW1lbnRzLmxlbmd0aD09MSl7Cit2YXIgcmdiPXJlZDsKK3JlZD1yZ2IucjsKK181Mzc9cmdiLmc7CitibHVlPXJnYi5iOworXzUzOT1yZ2IuYTsKK30KK3ZhciBtYXg9TWF0aC5tYXgocmVkLE1hdGgubWF4KF81MzcsYmx1ZSkpOwordmFyIG1pbj1NYXRoLm1pbihyZWQsTWF0aC5taW4oXzUzNyxibHVlKSk7Cit2YXIgaHVlOwordmFyIF81M2U7Cit2YXIgXzUzZj0obWF4K21pbikvMjsKK3ZhciBfNTQwPW1heC1taW47CitpZihfNTQwPT09MCl7CitodWU9MDsKK181M2U9MDsKK31lbHNleworaWYoXzUzZjw9MC41KXsKK181M2U9XzU0MC8obWF4K21pbik7Cit9ZWxzZXsKK181M2U9XzU0MC8oMi1tYXgtbWluKTsKK30KK2lmKHJlZD09bWF4KXsKK2h1ZT0oXzUzNy1ibHVlKS9fNTQwOworfWVsc2V7CitpZihfNTM3PT1tYXgpeworaHVlPTIrKChibHVlLXJlZCkvXzU0MCk7Cit9ZWxzZXsKK2h1ZT00KygocmVkLV81MzcpL181NDApOworfQorfQoraHVlLz02OworaWYoaHVlPDApeworaHVlKz0xOworfQoraWYoaHVlPjEpeworaHVlLT0xOworfQorfQorcmV0dXJuIHtoOmh1ZSxzOl81M2UsbDpfNTNmLGE6XzUzOX07Cit9LHRvQ29sb3JQYXJ0OmZ1bmN0aW9uKG51bSl7CitudW09TWF0aC5yb3VuZChudW0pOwordmFyIF81NDI9bnVtLnRvU3RyaW5nKDE2KTsKK2lmKG51bTwxNil7CityZXR1cm4gIjAiK181NDI7Cit9CityZXR1cm4gXzU0MjsKK30sX19uZXdfXzpmdW5jdGlvbigpewordmFyIG09TW9jaGlLaXQuQmFzZTsKK3RoaXMuQ29sb3IuZnJvbVJHQlN0cmluZz1tLmJpbmQodGhpcy5Db2xvci5fZnJvbUNvbG9yU3RyaW5nLHRoaXMuQ29sb3IsInJnYiIsImZyb21SR0IiLFsxLzI1NSwxLzI1NSwxLzI1NSwxXSk7Cit0aGlzLkNvbG9yLmZyb21IU0xTdHJpbmc9bS5iaW5kKHRoaXMuQ29sb3IuX2Zyb21Db2xvclN0cmluZyx0aGlzLkNvbG9yLCJoc2wiLCJmcm9tSFNMIixbMS8zNjAsMC4wMSwwLjAxLDFdKTsKK3ZhciBfNTQ0PTEvMzsKK3ZhciBfNTQ1PXtibGFjazpbMCwwLDBdLGJsdWU6WzAsMCwxXSxicm93bjpbMC42LDAuNCwwLjJdLGN5YW46WzAsMSwxXSxkYXJrR3JheTpbXzU0NCxfNTQ0LF81NDRdLGdyYXk6WzAuNSwwLjUsMC41XSxncmVlbjpbMCwxLDBdLGxpZ2h0R3JheTpbMipfNTQ0LDIqXzU0NCwyKl81NDRdLG1hZ2VudGE6WzEsMCwxXSxvcmFuZ2U6WzEsMC41LDBdLHB1cnBsZTpbMC41LDAsMC41XSxyZWQ6WzEsMCwwXSx0cmFuc3BhcmVudDpbMCwwLDAsMF0sd2hpdGU6WzEsMSwxXSx5ZWxsb3c6WzEsMSwwXX07Cit2YXIgXzU0Nj1mdW5jdGlvbihuYW1lLHIsZyxiLGEpewordmFyIHJ2YWw9dGhpcy5mcm9tUkdCKHIsZyxiLGEpOwordGhpc1tuYW1lXT1mdW5jdGlvbigpeworcmV0dXJuIHJ2YWw7Cit9OworcmV0dXJuIHJ2YWw7Cit9OworZm9yKHZhciBrIGluIF81NDUpewordmFyIG5hbWU9aysiQ29sb3IiOwordmFyIF81NGY9bS5jb25jYXQoW181NDYsdGhpcy5Db2xvcixuYW1lXSxfNTQ1W2tdKTsKK3RoaXMuQ29sb3JbbmFtZV09bS5iaW5kLmFwcGx5KG51bGwsXzU0Zik7Cit9Cit2YXIgXzU1MD1mdW5jdGlvbigpeworZm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7CitpZighKGFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIE1vY2hpS2l0LkNvbG9yLkNvbG9yKSl7CityZXR1cm4gZmFsc2U7Cit9Cit9CityZXR1cm4gdHJ1ZTsKK307Cit2YXIgXzU1Mj1mdW5jdGlvbihhLGIpeworcmV0dXJuIGEuY29tcGFyZVJHQihiKTsKK307CittLm5hbWVGdW5jdGlvbnModGhpcyk7CittLnJlZ2lzdGVyQ29tcGFyYXRvcih0aGlzLkNvbG9yLk5BTUUsXzU1MCxfNTUyKTsKK3RoaXMuRVhQT1JUX1RBR1M9eyI6Y29tbW9uIjp0aGlzLkVYUE9SVCwiOmFsbCI6bS5jb25jYXQodGhpcy5FWFBPUlQsdGhpcy5FWFBPUlRfT0spfTsKK319KTsKK01vY2hpS2l0LkNvbG9yLkVYUE9SVD1bIkNvbG9yIl07CitNb2NoaUtpdC5Db2xvci5FWFBPUlRfT0s9WyJjbGFtcENvbG9yQ29tcG9uZW50IiwicmdiVG9IU0wiLCJoc2xUb1JHQiIsInJnYlRvSFNWIiwiaHN2VG9SR0IiLCJ0b0NvbG9yUGFydCJdOworTW9jaGlLaXQuQ29sb3IuX19uZXdfXygpOworTW9jaGlLaXQuQmFzZS5fZXhwb3J0U3ltYm9scyh0aGlzLE1vY2hpS2l0LkNvbG9yKTsKK01vY2hpS2l0LkNvbG9yLkNvbG9yLl9uYW1lZENvbG9ycz17YWxpY2VibHVlOiIjZjBmOGZmIixhbnRpcXVld2hpdGU6IiNmYWViZDciLGFxdWE6IiMwMGZmZmYiLGFxdWFtYXJpbmU6IiM3ZmZmZDQiLGF6dXJlOiIjZjBmZmZmIixiZWlnZToiI2Y1ZjVkYyIsYmlzcXVlOiIjZmZlNGM0IixibGFjazoiIzAwMDAwMCIsYmxhbmNoZWRhbG1vbmQ6IiNmZmViY2QiLGJsdWU6IiMwMDAwZmYiLGJsdWV2aW9sZXQ6IiM4YTJiZTIiLGJyb3duOiIjYTUyYTJhIixidXJseXdvb2Q6IiNkZWI4ODciLGNhZGV0Ymx1ZToiIzVmOWVhMCIsY2hhcnRyZXVzZToiIzdmZmYwMCIsY2hvY29sYXRlOiIjZDI2OTFlIixjb3JhbDoiI2ZmN2Y1MCIsY29ybmZsb3dlcmJsdWU6IiM2NDk1ZWQiLGNvcm5zaWxrOiIjZmZmOGRjIixjcmltc29uOiIjZGMxNDNjIixjeWFuOiIjMDBmZmZmIixkYXJrYmx1ZToiIzAwMDA4YiIsZGFya2N5YW46IiMwMDhiOGIiLGRhcmtnb2xkZW5yb2Q6IiNiODg2MGIiLGRhcmtncmF5OiIjYTlhOWE5IixkYXJrZ3JlZW46IiMwMDY0MDAiLGRhcmtncmV5OiIjYTlhOWE5IixkYXJra2hha2k6IiNiZGI3NmIiLGRhcmttYWdlbnRhOiIjOGIwMDhiIixkYXJrb2xpdmVncmVlbjoiIzU1NmIyZiIsZGFya29yYW5nZToiI2ZmOGMwMCIsZGFya29yY2hpZDoiIzk5MzJjYyIsZGFya3JlZDoiIzhiMDAwMCIsZGFya3NhbG1vbjoiI2U5OTY3YSIsZGFya3NlYWdyZWVuOiIjOGZiYzhmIixkYXJrc2xhdGVibHVlOiIjNDgzZDhiIixkYXJrc2xhdGVncmF5OiIjMmY0ZjRmIixkYXJrc2xhdGVncmV5OiIjMmY0ZjRmIixkYXJrdHVycXVvaXNlOiIjMDBjZWQxIixkYXJrdmlvbGV0OiIjOTQwMGQzIixkZWVwcGluazoiI2ZmMTQ5MyIsZGVlcHNreWJsdWU6IiMwMGJmZmYiLGRpbWdyYXk6IiM2OTY5NjkiLGRpbWdyZXk6IiM2OTY5NjkiLGRvZGdlcmJsdWU6IiMxZTkwZmYiLGZpcmVicmljazoiI2IyMjIyMiIsZmxvcmFsd2hpdGU6IiNmZmZhZjAiLGZvcmVzdGdyZWVuOiIjMjI4YjIyIixmdWNoc2lhOiIjZmYwMGZmIixnYWluc2Jvcm86IiNkY2RjZGMiLGdob3N0d2hpdGU6IiNmOGY4ZmYiLGdvbGQ6IiNmZmQ3MDAiLGdvbGRlbnJvZDoiI2RhYTUyMCIsZ3JheToiIzgwODA4MCIsZ3JlZW46IiMwMDgwMDAiLGdyZWVueWVsbG93OiIjYWRmZjJmIixncmV5OiIjODA4MDgwIixob25leWRldzoiI2YwZmZmMCIsaG90cGluazoiI2ZmNjliNCIsaW5kaWFucmVkOiIjY2Q1YzVjIixpbmRpZ286IiM0YjAwODIiLGl2b3J5OiIjZmZmZmYwIixraGFraToiI2YwZTY4YyIsbGF2ZW5kZXI6IiNlNmU2ZmEiLGxhdmVuZGVyYmx1c2g6IiNmZmYwZjUiLGxhd25ncmVlbjoiIzdjZmMwMCIsbGVtb25jaGlmZm9uOiIjZmZmYWNkIixsaWdodGJsdWU6IiNhZGQ4ZTYiLGxpZ2h0Y29yYWw6IiNmMDgwODAiLGxpZ2h0Y3lhbjoiI2UwZmZmZiIsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6IiNmYWZhZDIiLGxpZ2h0Z3JheToiI2QzZDNkMyIsbGlnaHRncmVlbjoiIzkwZWU5MCIsbGlnaHRncmV5OiIjZDNkM2QzIixsaWdodHBpbms6IiNmZmI2YzEiLGxpZ2h0c2FsbW9uOiIjZmZhMDdhIixsaWdodHNlYWdyZWVuOiIjMjBiMmFhIixsaWdodHNreWJsdWU6IiM4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHNsYXRlZ3JleToiIzc3ODg5OSIsbGlnaHRzdGVlbGJsdWU6IiNiMGM0ZGUiLGxpZ2h0eWVsbG93OiIjZmZmZmUwIixsaW1lOiIjMDBmZjAwIixsaW1lZ3JlZW46IiMzMmNkMzIiLGxpbmVuOiIjZmFmMGU2IixtYWdlbnRhOiIjZmYwMGZmIixtYXJvb246IiM4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IiM2NmNkYWEiLG1lZGl1bWJsdWU6IiMwMDAwY2QiLG1lZGl1bW9yY2hpZDoiI2JhNTVkMyIsbWVkaXVtcHVycGxlOiIjOTM3MGRiIixtZWRpdW1zZWFncmVlbjoiIzNjYjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwZmE5YSIsbWVkaXVtdHVycXVvaXNlOiIjNDhkMWNjIixtZWRpdW12aW9sZXRyZWQ6IiNjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjZjVmZmZhIixtaXN0eXJvc2U6IiNmZmU0ZTEiLG1vY2Nhc2luOiIjZmZlNGI1IixuYXZham93aGl0ZToiI2ZmZGVhZCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI2ZkZjVlNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzZiOGUyMyIsb3JhbmdlOiIjZmZhNTAwIixvcmFuZ2VyZWQ6IiNmZjQ1MDAiLG9yY2hpZDoiI2RhNzBkNiIscGFsZWdvbGRlbnJvZDoiI2VlZThhYSIscGFsZWdyZWVuOiIjOThmYjk4IixwYWxldHVycXVvaXNlOiIjYWZlZWVlIixwYWxldmlvbGV0cmVkOiIjZGI3MDkzIixwYXBheWF3aGlwOiIjZmZlZmQ1IixwZWFjaHB1ZmY6IiNmZmRhYjkiLHBlcnU6IiNjZDg1M2YiLHBpbms6IiNmZmMwY2IiLHBsdW06IiNkZGEwZGQiLHBvd2RlcmJsdWU6IiNiMGUwZTYiLHB1cnBsZToiIzgwMDA4MCIscmVkOiIjZmYwMDAwIixyb3N5YnJvd246IiNiYzhmOGYiLHJveWFsYmx1ZToiIzQxNjllMSIsc2FkZGxlYnJvd246IiM4YjQ1MTMiLHNhbG1vbjoiI2ZhODA3MiIsc2FuZHlicm93bjoiI2Y0YTQ2MCIsc2VhZ3JlZW46IiMyZThiNTciLHNlYXNoZWxsOiIjZmZmNWVlIixzaWVubmE6IiNhMDUyMmQiLHNpbHZlcjoiI2MwYzBjMCIsc2t5Ymx1ZToiIzg3Y2VlYiIsc2xhdGVibHVlOiIjNmE1YWNkIixzbGF0ZWdyYXk6IiM3MDgwOTAiLHNsYXRlZ3JleToiIzcwODA5MCIsc25vdzoiI2ZmZmFmYSIsc3ByaW5nZ3JlZW46IiMwMGZmN2YiLHN0ZWVsYmx1ZToiIzQ2ODJiNCIsdGFuOiIjZDJiNDhjIix0ZWFsOiIjMDA4MDgwIix0aGlzdGxlOiIjZDhiZmQ4Iix0b21hdG86IiNmZjYzNDciLHR1cnF1b2lzZToiIzQwZTBkMCIsdmlvbGV0OiIjZWU4MmVlIix3aGVhdDoiI2Y1ZGViMyIsd2hpdGU6IiNmZmZmZmYiLHdoaXRlc21va2U6IiNmNWY1ZjUiLHllbGxvdzoiI2ZmZmYwMCIseWVsbG93Z3JlZW46IiM5YWNkMzIifTsKK01vY2hpS2l0LkJhc2UuX2RlcHMoIlNpZ25hbCIsWyJCYXNlIiwiRE9NIiwiU3R5bGUiXSk7CitNb2NoaUtpdC5TaWduYWwuTkFNRT0iTW9jaGlLaXQuU2lnbmFsIjsKK01vY2hpS2l0LlNpZ25hbC5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5TaWduYWwuX29ic2VydmVycz1bXTsKK01vY2hpS2l0LlNpZ25hbC5FdmVudD1mdW5jdGlvbihzcmMsZSl7Cit0aGlzLl9ldmVudD1lfHx3aW5kb3cuZXZlbnQ7Cit0aGlzLl9zcmM9c3JjOworfTsKK01vY2hpS2l0LkJhc2UudXBkYXRlKE1vY2hpS2l0LlNpZ25hbC5FdmVudC5wcm90b3R5cGUse19fcmVwcl9fOmZ1bmN0aW9uKCl7Cit2YXIgcmVwcj1Nb2NoaUtpdC5CYXNlLnJlcHI7Cit2YXIgc3RyPSJ7ZXZlbnQoKTogIityZXByKHRoaXMuZXZlbnQoKSkrIiwgc3JjKCk6ICIrcmVwcih0aGlzLnNyYygpKSsiLCB0eXBlKCk6ICIrcmVwcih0aGlzLnR5cGUoKSkrIiwgdGFyZ2V0KCk6ICIrcmVwcih0aGlzLnRhcmdldCgpKTsKK2lmKHRoaXMudHlwZSgpJiZ0aGlzLnR5cGUoKS5pbmRleE9mKCJrZXkiKT09PTB8fHRoaXMudHlwZSgpLmluZGV4T2YoIm1vdXNlIik9PT0wfHx0aGlzLnR5cGUoKS5pbmRleE9mKCJjbGljayIpIT0tMXx8dGhpcy50eXBlKCk9PSJjb250ZXh0bWVudSIpeworc3RyKz0iLCBtb2RpZmllcigpOiAiKyJ7YWx0OiAiK3JlcHIodGhpcy5tb2RpZmllcigpLmFsdCkrIiwgY3RybDogIityZXByKHRoaXMubW9kaWZpZXIoKS5jdHJsKSsiLCBtZXRhOiAiK3JlcHIodGhpcy5tb2RpZmllcigpLm1ldGEpKyIsIHNoaWZ0OiAiK3JlcHIodGhpcy5tb2RpZmllcigpLnNoaWZ0KSsiLCBhbnk6ICIrcmVwcih0aGlzLm1vZGlmaWVyKCkuYW55KSsifSI7Cit9CitpZih0aGlzLnR5cGUoKSYmdGhpcy50eXBlKCkuaW5kZXhPZigia2V5Iik9PT0wKXsKK3N0cis9Iiwga2V5KCk6IHtjb2RlOiAiK3JlcHIodGhpcy5rZXkoKS5jb2RlKSsiLCBzdHJpbmc6ICIrcmVwcih0aGlzLmtleSgpLnN0cmluZykrIn0iOworfQoraWYodGhpcy50eXBlKCkmJih0aGlzLnR5cGUoKS5pbmRleE9mKCJtb3VzZSIpPT09MHx8dGhpcy50eXBlKCkuaW5kZXhPZigiY2xpY2siKSE9LTF8fHRoaXMudHlwZSgpPT0iY29udGV4dG1lbnUiKSl7CitzdHIrPSIsIG1vdXNlKCk6IHtwYWdlOiAiK3JlcHIodGhpcy5tb3VzZSgpLnBhZ2UpKyIsIGNsaWVudDogIityZXByKHRoaXMubW91c2UoKS5jbGllbnQpOworaWYodGhpcy50eXBlKCkhPSJtb3VzZW1vdmUiJiZ0aGlzLnR5cGUoKSE9Im1vdXNld2hlZWwiKXsKK3N0cis9IiwgYnV0dG9uOiB7bGVmdDogIityZXByKHRoaXMubW91c2UoKS5idXR0b24ubGVmdCkrIiwgbWlkZGxlOiAiK3JlcHIodGhpcy5tb3VzZSgpLmJ1dHRvbi5taWRkbGUpKyIsIHJpZ2h0OiAiK3JlcHIodGhpcy5tb3VzZSgpLmJ1dHRvbi5yaWdodCkrIn0iOworfQoraWYodGhpcy50eXBlKCk9PSJtb3VzZXdoZWVsIil7CitzdHIrPSIsIHdoZWVsOiAiK3JlcHIodGhpcy5tb3VzZSgpLndoZWVsKTsKK30KK3N0cis9In0iOworfQoraWYodGhpcy50eXBlKCk9PSJtb3VzZW92ZXIifHx0aGlzLnR5cGUoKT09Im1vdXNlb3V0Inx8dGhpcy50eXBlKCk9PSJtb3VzZWVudGVyInx8dGhpcy50eXBlKCk9PSJtb3VzZWxlYXZlIil7CitzdHIrPSIsIHJlbGF0ZWRUYXJnZXQoKTogIityZXByKHRoaXMucmVsYXRlZFRhcmdldCgpKTsKK30KK3N0cis9In0iOworcmV0dXJuIHN0cjsKK30sdG9TdHJpbmc6ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9fcmVwcl9fKCk7Cit9LHNyYzpmdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX3NyYzsKK30sZXZlbnQ6ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9ldmVudDsKK30sdHlwZTpmdW5jdGlvbigpeworaWYodGhpcy5fZXZlbnQudHlwZT09PSJET01Nb3VzZVNjcm9sbCIpeworcmV0dXJuICJtb3VzZXdoZWVsIjsKK31lbHNleworcmV0dXJuIHRoaXMuX2V2ZW50LnR5cGV8fHVuZGVmaW5lZDsKK30KK30sdGFyZ2V0OmZ1bmN0aW9uKCl7CityZXR1cm4gdGhpcy5fZXZlbnQudGFyZ2V0fHx0aGlzLl9ldmVudC5zcmNFbGVtZW50OworfSxfcmVsYXRlZFRhcmdldDpudWxsLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oKXsKK2lmKHRoaXMuX3JlbGF0ZWRUYXJnZXQhPT1udWxsKXsKK3JldHVybiB0aGlzLl9yZWxhdGVkVGFyZ2V0OworfQordmFyIGVsZW09bnVsbDsKK2lmKHRoaXMudHlwZSgpPT0ibW91c2VvdmVyInx8dGhpcy50eXBlKCk9PSJtb3VzZWVudGVyIil7CitlbGVtPSh0aGlzLl9ldmVudC5yZWxhdGVkVGFyZ2V0fHx0aGlzLl9ldmVudC5mcm9tRWxlbWVudCk7Cit9ZWxzZXsKK2lmKHRoaXMudHlwZSgpPT0ibW91c2VvdXQifHx0aGlzLnR5cGUoKT09Im1vdXNlbGVhdmUiKXsKK2VsZW09KHRoaXMuX2V2ZW50LnJlbGF0ZWRUYXJnZXR8fHRoaXMuX2V2ZW50LnRvRWxlbWVudCk7Cit9Cit9Cit0cnl7CitpZihlbGVtIT09bnVsbCYmZWxlbS5ub2RlVHlwZSE9PW51bGwpewordGhpcy5fcmVsYXRlZFRhcmdldD1lbGVtOworcmV0dXJuIGVsZW07Cit9Cit9CitjYXRjaChpZ25vcmUpeworfQorcmV0dXJuIHVuZGVmaW5lZDsKK30sX21vZGlmaWVyOm51bGwsbW9kaWZpZXI6ZnVuY3Rpb24oKXsKK2lmKHRoaXMuX21vZGlmaWVyIT09bnVsbCl7CityZXR1cm4gdGhpcy5fbW9kaWZpZXI7Cit9Cit2YXIgbT17fTsKK20uYWx0PXRoaXMuX2V2ZW50LmFsdEtleTsKK20uY3RybD10aGlzLl9ldmVudC5jdHJsS2V5OworbS5tZXRhPXRoaXMuX2V2ZW50Lm1ldGFLZXl8fGZhbHNlOworbS5zaGlmdD10aGlzLl9ldmVudC5zaGlmdEtleTsKK20uYW55PW0uYWx0fHxtLmN0cmx8fG0uc2hpZnR8fG0ubWV0YTsKK3RoaXMuX21vZGlmaWVyPW07CityZXR1cm4gbTsKK30sX2tleTpudWxsLGtleTpmdW5jdGlvbigpeworaWYodGhpcy5fa2V5IT09bnVsbCl7CityZXR1cm4gdGhpcy5fa2V5OworfQordmFyIGs9e307CitpZih0aGlzLnR5cGUoKSYmdGhpcy50eXBlKCkuaW5kZXhPZigia2V5Iik9PT0wKXsKK2lmKHRoaXMudHlwZSgpPT0ia2V5ZG93biJ8fHRoaXMudHlwZSgpPT0ia2V5dXAiKXsKK2suY29kZT10aGlzLl9ldmVudC5rZXlDb2RlOworay5zdHJpbmc9KE1vY2hpS2l0LlNpZ25hbC5fc3BlY2lhbEtleXNbay5jb2RlXXx8IktFWV9VTktOT1dOIik7Cit0aGlzLl9rZXk9azsKK3JldHVybiBrOworfWVsc2V7CitpZih0aGlzLnR5cGUoKT09ImtleXByZXNzIil7CitrLmNvZGU9MDsKK2suc3RyaW5nPSIiOworaWYodHlwZW9mICh0aGlzLl9ldmVudC5jaGFyQ29kZSkhPSJ1bmRlZmluZWQiJiZ0aGlzLl9ldmVudC5jaGFyQ29kZSE9PTAmJiFNb2NoaUtpdC5TaWduYWwuX3NwZWNpYWxNYWNLZXlzW3RoaXMuX2V2ZW50LmNoYXJDb2RlXSl7CitrLmNvZGU9dGhpcy5fZXZlbnQuY2hhckNvZGU7CitrLnN0cmluZz1TdHJpbmcuZnJvbUNoYXJDb2RlKGsuY29kZSk7Cit9ZWxzZXsKK2lmKHRoaXMuX2V2ZW50LmtleUNvZGUmJnR5cGVvZiAodGhpcy5fZXZlbnQuY2hhckNvZGUpPT0idW5kZWZpbmVkIil7CitrLmNvZGU9dGhpcy5fZXZlbnQua2V5Q29kZTsKK2suc3RyaW5nPVN0cmluZy5mcm9tQ2hhckNvZGUoay5jb2RlKTsKK30KK30KK3RoaXMuX2tleT1rOworcmV0dXJuIGs7Cit9Cit9Cit9CityZXR1cm4gdW5kZWZpbmVkOworfSxfbW91c2U6bnVsbCxtb3VzZTpmdW5jdGlvbigpeworaWYodGhpcy5fbW91c2UhPT1udWxsKXsKK3JldHVybiB0aGlzLl9tb3VzZTsKK30KK3ZhciBtPXt9OwordmFyIGU9dGhpcy5fZXZlbnQ7CitpZih0aGlzLnR5cGUoKSYmKHRoaXMudHlwZSgpLmluZGV4T2YoIm1vdXNlIik9PT0wfHx0aGlzLnR5cGUoKS5pbmRleE9mKCJjbGljayIpIT0tMXx8dGhpcy50eXBlKCk9PSJjb250ZXh0bWVudSIpKXsKK20uY2xpZW50PW5ldyBNb2NoaUtpdC5TdHlsZS5Db29yZGluYXRlcygwLDApOworaWYoZS5jbGllbnRYfHxlLmNsaWVudFkpeworbS5jbGllbnQueD0oIWUuY2xpZW50WHx8ZS5jbGllbnRYPDApPzA6ZS5jbGllbnRYOworbS5jbGllbnQueT0oIWUuY2xpZW50WXx8ZS5jbGllbnRZPDApPzA6ZS5jbGllbnRZOworfQorbS5wYWdlPW5ldyBNb2NoaUtpdC5TdHlsZS5Db29yZGluYXRlcygwLDApOworaWYoZS5wYWdlWHx8ZS5wYWdlWSl7CittLnBhZ2UueD0oIWUucGFnZVh8fGUucGFnZVg8MCk/MDplLnBhZ2VYOworbS5wYWdlLnk9KCFlLnBhZ2VZfHxlLnBhZ2VZPDApPzA6ZS5wYWdlWTsKK31lbHNlewordmFyIGRlPU1vY2hpS2l0LkRPTS5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwordmFyIGI9TW9jaGlLaXQuRE9NLl9kb2N1bWVudC5ib2R5OworbS5wYWdlLng9ZS5jbGllbnRYKyhkZS5zY3JvbGxMZWZ0fHxiLnNjcm9sbExlZnQpLShkZS5jbGllbnRMZWZ0fHwwKTsKK20ucGFnZS55PWUuY2xpZW50WSsoZGUuc2Nyb2xsVG9wfHxiLnNjcm9sbFRvcCktKGRlLmNsaWVudFRvcHx8MCk7Cit9CitpZih0aGlzLnR5cGUoKSE9Im1vdXNlbW92ZSImJnRoaXMudHlwZSgpIT0ibW91c2V3aGVlbCIpeworbS5idXR0b249e307CittLmJ1dHRvbi5sZWZ0PWZhbHNlOworbS5idXR0b24ucmlnaHQ9ZmFsc2U7CittLmJ1dHRvbi5taWRkbGU9ZmFsc2U7CitpZihlLndoaWNoKXsKK20uYnV0dG9uLmxlZnQ9KGUud2hpY2g9PTEpOworbS5idXR0b24ubWlkZGxlPShlLndoaWNoPT0yKTsKK20uYnV0dG9uLnJpZ2h0PShlLndoaWNoPT0zKTsKK31lbHNleworbS5idXR0b24ubGVmdD0hIShlLmJ1dHRvbiYxKTsKK20uYnV0dG9uLnJpZ2h0PSEhKGUuYnV0dG9uJjIpOworbS5idXR0b24ubWlkZGxlPSEhKGUuYnV0dG9uJjQpOworfQorfQoraWYodGhpcy50eXBlKCk9PSJtb3VzZXdoZWVsIil7CittLndoZWVsPW5ldyBNb2NoaUtpdC5TdHlsZS5Db29yZGluYXRlcygwLDApOworaWYoZS53aGVlbERlbHRhWHx8ZS53aGVlbERlbHRhWSl7CittLndoZWVsLng9ZS53aGVlbERlbHRhWC8tNDB8fDA7CittLndoZWVsLnk9ZS53aGVlbERlbHRhWS8tNDB8fDA7Cit9ZWxzZXsKK2lmKGUud2hlZWxEZWx0YSl7CittLndoZWVsLnk9ZS53aGVlbERlbHRhLy00MDsKK31lbHNleworbS53aGVlbC55PWUuZGV0YWlsfHwwOworfQorfQorfQordGhpcy5fbW91c2U9bTsKK3JldHVybiBtOworfQorcmV0dXJuIHVuZGVmaW5lZDsKK30sc3RvcDpmdW5jdGlvbigpewordGhpcy5zdG9wUHJvcGFnYXRpb24oKTsKK3RoaXMucHJldmVudERlZmF1bHQoKTsKK30sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7CitpZih0aGlzLl9ldmVudC5zdG9wUHJvcGFnYXRpb24pewordGhpcy5fZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Cit9ZWxzZXsKK3RoaXMuX2V2ZW50LmNhbmNlbEJ1YmJsZT10cnVlOworfQorfSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpeworaWYodGhpcy5fZXZlbnQucHJldmVudERlZmF1bHQpewordGhpcy5fZXZlbnQucHJldmVudERlZmF1bHQoKTsKK31lbHNleworaWYodGhpcy5fY29uZmlybVVubG9hZD09PW51bGwpewordGhpcy5fZXZlbnQucmV0dXJuVmFsdWU9ZmFsc2U7Cit9Cit9Cit9LF9jb25maXJtVW5sb2FkOm51bGwsY29uZmlybVVubG9hZDpmdW5jdGlvbihtc2cpeworaWYodGhpcy50eXBlKCk9PSJiZWZvcmV1bmxvYWQiKXsKK3RoaXMuX2NvbmZpcm1VbmxvYWQ9bXNnOwordGhpcy5fZXZlbnQucmV0dXJuVmFsdWU9bXNnOworfQorfX0pOworTW9jaGlLaXQuU2lnbmFsLl9zcGVjaWFsTWFjS2V5cz17MzoiS0VZX0VOVEVSIiw2MzI4OToiS0VZX05VTV9QQURfQ0xFQVIiLDYzMjc2OiJLRVlfUEFHRV9VUCIsNjMyNzc6IktFWV9QQUdFX0RPV04iLDYzMjc1OiJLRVlfRU5EIiw2MzI3MzoiS0VZX0hPTUUiLDYzMjM0OiJLRVlfQVJST1dfTEVGVCIsNjMyMzI6IktFWV9BUlJPV19VUCIsNjMyMzU6IktFWV9BUlJPV19SSUdIVCIsNjMyMzM6IktFWV9BUlJPV19ET1dOIiw2MzMwMjoiS0VZX0lOU0VSVCIsNjMyNzI6IktFWV9ERUxFVEUifTsKKyhmdW5jdGlvbigpewordmFyIF81NjE9TW9jaGlLaXQuU2lnbmFsLl9zcGVjaWFsTWFjS2V5czsKK2ZvcihpPTYzMjM2O2k8PTYzMjQyO2krKyl7CitfNTYxW2ldPSJLRVlfRiIrKGktNjMyMzYrMSk7Cit9Cit9KSgpOworTW9jaGlLaXQuU2lnbmFsLl9zcGVjaWFsS2V5cz17ODoiS0VZX0JBQ0tTUEFDRSIsOToiS0VZX1RBQiIsMTI6IktFWV9OVU1fUEFEX0NMRUFSIiwxMzoiS0VZX0VOVEVSIiwxNjoiS0VZX1NISUZUIiwxNzoiS0VZX0NUUkwiLDE4OiJLRVlfQUxUIiwxOToiS0VZX1BBVVNFIiwyMDoiS0VZX0NBUFNfTE9DSyIsMjc6IktFWV9FU0NBUEUiLDMyOiJLRVlfU1BBQ0VCQVIiLDMzOiJLRVlfUEFHRV9VUCIsMzQ6IktFWV9QQUdFX0RPV04iLDM1OiJLRVlfRU5EIiwzNjoiS0VZX0hPTUUiLDM3OiJLRVlfQVJST1dfTEVGVCIsMzg6IktFWV9BUlJPV19VUCIsMzk6IktFWV9BUlJPV19SSUdIVCIsNDA6IktFWV9BUlJPV19ET1dOIiw0NDoiS0VZX1BSSU5UX1NDUkVFTiIsNDU6IktFWV9JTlNFUlQiLDQ2OiJLRVlfREVMRVRFIiw1OToiS0VZX1NFTUlDT0xPTiIsOTE6IktFWV9XSU5ET1dTX0xFRlQiLDkyOiJLRVlfV0lORE9XU19SSUdIVCIsOTM6IktFWV9TRUxFQ1QiLDEwNjoiS0VZX05VTV9QQURfQVNURVJJU0siLDEwNzoiS0VZX05VTV9QQURfUExVU19TSUdOIiwxMDk6IktFWV9OVU1fUEFEX0hZUEhFTi1NSU5VUyIsMTEwOiJLRVlfTlVNX1BBRF9GVUxMX1NUT1AiLDExMToiS0VZX05VTV9QQURfU09MSURVUyIsMTQ0OiJLRVlfTlVNX0xPQ0siLDE0NToiS0VZX1NDUk9MTF9MT0NLIiwxODY6IktFWV9TRU1JQ09MT04iLDE4NzoiS0VZX0VRVUFMU19TSUdOIiwxODg6IktFWV9DT01NQSIsMTg5OiJLRVlfSFlQSEVOLU1JTlVTIiwxOTA6IktFWV9GVUxMX1NUT1AiLDE5MToiS0VZX1NPTElEVVMiLDE5MjoiS0VZX0dSQVZFX0FDQ0VOVCIsMjE5OiJLRVlfTEVGVF9TUVVBUkVfQlJBQ0tFVCIsMjIwOiJLRVlfUkVWRVJTRV9TT0xJRFVTIiwyMjE6IktFWV9SSUdIVF9TUVVBUkVfQlJBQ0tFVCIsMjIyOiJLRVlfQVBPU1RST1BIRSJ9OworKGZ1bmN0aW9uKCl7Cit2YXIgXzU2Mj1Nb2NoaUtpdC5TaWduYWwuX3NwZWNpYWxLZXlzOworZm9yKHZhciBpPTQ4O2k8PTU3O2krKyl7CitfNTYyW2ldPSJLRVlfIisoaS00OCk7Cit9Citmb3IoaT02NTtpPD05MDtpKyspeworXzU2MltpXT0iS0VZXyIrU3RyaW5nLmZyb21DaGFyQ29kZShpKTsKK30KK2ZvcihpPTk2O2k8PTEwNTtpKyspeworXzU2MltpXT0iS0VZX05VTV9QQURfIisoaS05Nik7Cit9Citmb3IoaT0xMTI7aTw9MTIzO2krKyl7CitfNTYyW2ldPSJLRVlfRiIrKGktMTEyKzEpOworfQorfSkoKTsKK01vY2hpS2l0LlNpZ25hbC5JZGVudD1mdW5jdGlvbihfNTY0KXsKK3RoaXMuc291cmNlPV81NjQuc291cmNlOwordGhpcy5zaWduYWw9XzU2NC5zaWduYWw7Cit0aGlzLmxpc3RlbmVyPV81NjQubGlzdGVuZXI7Cit0aGlzLmlzRE9NPV81NjQuaXNET007Cit0aGlzLm9iak9yRnVuYz1fNTY0Lm9iak9yRnVuYzsKK3RoaXMuZnVuY09yU3RyPV81NjQuZnVuY09yU3RyOwordGhpcy5jb25uZWN0ZWQ9XzU2NC5jb25uZWN0ZWQ7Cit9OworTW9jaGlLaXQuU2lnbmFsLklkZW50LnByb3RvdHlwZT17fTsKK01vY2hpS2l0LkJhc2UudXBkYXRlKE1vY2hpS2l0LlNpZ25hbCx7X19yZXByX186ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfSx0b1N0cmluZzpmdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK30sX3VubG9hZENhY2hlOmZ1bmN0aW9uKCl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5TaWduYWw7Cit2YXIgXzU2Nj1zZWxmLl9vYnNlcnZlcnM7Citmb3IodmFyIGk9MDtpPF81NjYubGVuZ3RoO2krKyl7CitpZihfNTY2W2ldLnNpZ25hbCE9PSJvbmxvYWQiJiZfNTY2W2ldLnNpZ25hbCE9PSJvbnVubG9hZCIpeworc2VsZi5fZGlzY29ubmVjdChfNTY2W2ldKTsKK30KK30KK30sX2xpc3RlbmVyOmZ1bmN0aW9uKHNyYyxzaWcsZnVuYyxvYmosXzU2Yyl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5TaWduYWw7Cit2YXIgRT1zZWxmLkV2ZW50OworaWYoIV81NmMpeworaWYodHlwZW9mIChmdW5jLmltX3NlbGYpPT0idW5kZWZpbmVkIil7CityZXR1cm4gTW9jaGlLaXQuQmFzZS5iaW5kTGF0ZShmdW5jLG9iaik7Cit9ZWxzZXsKK3JldHVybiBmdW5jOworfQorfQorb2JqPW9ianx8c3JjOworaWYodHlwZW9mIChmdW5jKT09InN0cmluZyIpeworaWYoc2lnPT09Im9ubG9hZCJ8fHNpZz09PSJvbnVubG9hZCIpeworcmV0dXJuIGZ1bmN0aW9uKF81NmYpeworb2JqW2Z1bmNdLmFwcGx5KG9iaixbbmV3IEUoc3JjLF81NmYpXSk7Cit2YXIgXzU3MD1uZXcgTW9jaGlLaXQuU2lnbmFsLklkZW50KHtzb3VyY2U6c3JjLHNpZ25hbDpzaWcsb2JqT3JGdW5jOm9iaixmdW5jT3JTdHI6ZnVuY30pOworTW9jaGlLaXQuU2lnbmFsLl9kaXNjb25uZWN0KF81NzApOworfTsKK31lbHNleworcmV0dXJuIGZ1bmN0aW9uKF81NzEpeworb2JqW2Z1bmNdLmFwcGx5KG9iaixbbmV3IEUoc3JjLF81NzEpXSk7Cit9OworfQorfWVsc2V7CitpZihzaWc9PT0ib25sb2FkInx8c2lnPT09Im9udW5sb2FkIil7CityZXR1cm4gZnVuY3Rpb24oXzU3Mil7CitmdW5jLmFwcGx5KG9iaixbbmV3IEUoc3JjLF81NzIpXSk7Cit2YXIgXzU3Mz1uZXcgTW9jaGlLaXQuU2lnbmFsLklkZW50KHtzb3VyY2U6c3JjLHNpZ25hbDpzaWcsb2JqT3JGdW5jOmZ1bmN9KTsKK01vY2hpS2l0LlNpZ25hbC5fZGlzY29ubmVjdChfNTczKTsKK307Cit9ZWxzZXsKK3JldHVybiBmdW5jdGlvbihfNTc0KXsKK2Z1bmMuYXBwbHkob2JqLFtuZXcgRShzcmMsXzU3NCldKTsKK307Cit9Cit9Cit9LF9icm93c2VyQWxyZWFkeUhhc01vdXNlRW50ZXJBbmRMZWF2ZTpmdW5jdGlvbigpeworcmV0dXJuIC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOworfSxfYnJvd3NlckxhY2tzTW91c2VXaGVlbEV2ZW50OmZ1bmN0aW9uKCl7CityZXR1cm4gL0dlY2tvXC8vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7Cit9LF9tb3VzZUVudGVyTGlzdGVuZXI6ZnVuY3Rpb24oc3JjLHNpZyxmdW5jLG9iail7Cit2YXIgRT1Nb2NoaUtpdC5TaWduYWwuRXZlbnQ7CityZXR1cm4gZnVuY3Rpb24oXzU3YSl7Cit2YXIgZT1uZXcgRShzcmMsXzU3YSk7Cit0cnl7CitlLnJlbGF0ZWRUYXJnZXQoKS5ub2RlTmFtZTsKK30KK2NhdGNoKGVycil7CityZXR1cm47Cit9CitlLnN0b3AoKTsKK2lmKE1vY2hpS2l0LkRPTS5pc0NoaWxkTm9kZShlLnJlbGF0ZWRUYXJnZXQoKSxzcmMpKXsKK3JldHVybjsKK30KK2UudHlwZT1mdW5jdGlvbigpeworcmV0dXJuIHNpZzsKK307CitpZih0eXBlb2YgKGZ1bmMpPT0ic3RyaW5nIil7CityZXR1cm4gb2JqW2Z1bmNdLmFwcGx5KG9iaixbZV0pOworfWVsc2V7CityZXR1cm4gZnVuYy5hcHBseShvYmosW2VdKTsKK30KK307Cit9LF9nZXREZXN0UGFpcjpmdW5jdGlvbihfNTdjLF81N2QpewordmFyIG9iaj1udWxsOwordmFyIGZ1bmM9bnVsbDsKK2lmKHR5cGVvZiAoXzU3ZCkhPSJ1bmRlZmluZWQiKXsKK29iaj1fNTdjOworZnVuYz1fNTdkOworaWYodHlwZW9mIChfNTdkKT09InN0cmluZyIpeworaWYodHlwZW9mIChfNTdjW181N2RdKSE9ImZ1bmN0aW9uIil7Cit0aHJvdyBuZXcgRXJyb3IoIidmdW5jT3JTdHInIG11c3QgYmUgYSBmdW5jdGlvbiBvbiAnb2JqT3JGdW5jJyIpOworfQorfWVsc2V7CitpZih0eXBlb2YgKF81N2QpIT0iZnVuY3Rpb24iKXsKK3Rocm93IG5ldyBFcnJvcigiJ2Z1bmNPclN0cicgbXVzdCBiZSBhIGZ1bmN0aW9uIG9yIHN0cmluZyIpOworfQorfQorfWVsc2V7CitpZih0eXBlb2YgKF81N2MpIT0iZnVuY3Rpb24iKXsKK3Rocm93IG5ldyBFcnJvcigiJ29iak9yRnVuYycgbXVzdCBiZSBhIGZ1bmN0aW9uIGlmICdmdW5jT3JTdHInIGlzIG5vdCBnaXZlbiIpOworfWVsc2V7CitmdW5jPV81N2M7Cit9Cit9CityZXR1cm4gW29iaixmdW5jXTsKK30sY29ubmVjdDpmdW5jdGlvbihzcmMsc2lnLF81ODIsXzU4Myl7CitzcmM9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoc3JjKTsKK3ZhciBzZWxmPU1vY2hpS2l0LlNpZ25hbDsKK2lmKHR5cGVvZiAoc2lnKSE9InN0cmluZyIpewordGhyb3cgbmV3IEVycm9yKCInc2lnJyBtdXN0IGJlIGEgc3RyaW5nIik7Cit9Cit2YXIgXzU4NT1zZWxmLl9nZXREZXN0UGFpcihfNTgyLF81ODMpOwordmFyIG9iaj1fNTg1WzBdOwordmFyIGZ1bmM9XzU4NVsxXTsKK2lmKHR5cGVvZiAob2JqKT09InVuZGVmaW5lZCJ8fG9iaj09PW51bGwpeworb2JqPXNyYzsKK30KK3ZhciBfNTg4PSEhKHNyYy5hZGRFdmVudExpc3RlbmVyfHxzcmMuYXR0YWNoRXZlbnQpOworaWYoXzU4OCYmKHNpZz09PSJvbm1vdXNlZW50ZXIifHxzaWc9PT0ib25tb3VzZWxlYXZlIikmJiFzZWxmLl9icm93c2VyQWxyZWFkeUhhc01vdXNlRW50ZXJBbmRMZWF2ZSgpKXsKK3ZhciBfNTg5PXNlbGYuX21vdXNlRW50ZXJMaXN0ZW5lcihzcmMsc2lnLnN1YnN0cigyKSxmdW5jLG9iaik7CitpZihzaWc9PT0ib25tb3VzZWVudGVyIil7CitzaWc9Im9ubW91c2VvdmVyIjsKK31lbHNleworc2lnPSJvbm1vdXNlb3V0IjsKK30KK31lbHNleworaWYoXzU4OCYmc2lnPT0ib25tb3VzZXdoZWVsIiYmc2VsZi5fYnJvd3NlckxhY2tzTW91c2VXaGVlbEV2ZW50KCkpewordmFyIF81ODk9c2VsZi5fbGlzdGVuZXIoc3JjLHNpZyxmdW5jLG9iaixfNTg4KTsKK3NpZz0ib25ET01Nb3VzZVNjcm9sbCI7Cit9ZWxzZXsKK3ZhciBfNTg5PXNlbGYuX2xpc3RlbmVyKHNyYyxzaWcsZnVuYyxvYmosXzU4OCk7Cit9Cit9CitpZihzcmMuYWRkRXZlbnRMaXN0ZW5lcil7CitzcmMuYWRkRXZlbnRMaXN0ZW5lcihzaWcuc3Vic3RyKDIpLF81ODksZmFsc2UpOworfWVsc2V7CitpZihzcmMuYXR0YWNoRXZlbnQpeworc3JjLmF0dGFjaEV2ZW50KHNpZyxfNTg5KTsKK30KK30KK3ZhciBfNThhPW5ldyBNb2NoaUtpdC5TaWduYWwuSWRlbnQoe3NvdXJjZTpzcmMsc2lnbmFsOnNpZyxsaXN0ZW5lcjpfNTg5LGlzRE9NOl81ODgsb2JqT3JGdW5jOl81ODIsZnVuY09yU3RyOl81ODMsY29ubmVjdGVkOnRydWV9KTsKK3NlbGYuX29ic2VydmVycy5wdXNoKF81OGEpOworaWYoIV81ODgmJnR5cGVvZiAoc3JjLl9fY29ubmVjdF9fKT09ImZ1bmN0aW9uIil7Cit2YXIgYXJncz1Nb2NoaUtpdC5CYXNlLmV4dGVuZChbXzU4YV0sYXJndW1lbnRzLDEpOworc3JjLl9fY29ubmVjdF9fLmFwcGx5KHNyYyxhcmdzKTsKK30KK3JldHVybiBfNThhOworfSxfZGlzY29ubmVjdDpmdW5jdGlvbihfNThjKXsKK2lmKCFfNThjLmNvbm5lY3RlZCl7CityZXR1cm47Cit9CitfNThjLmNvbm5lY3RlZD1mYWxzZTsKK3ZhciBzcmM9XzU4Yy5zb3VyY2U7Cit2YXIgc2lnPV81OGMuc2lnbmFsOwordmFyIF81OGY9XzU4Yy5saXN0ZW5lcjsKK2lmKCFfNThjLmlzRE9NKXsKK2lmKHR5cGVvZiAoc3JjLl9fZGlzY29ubmVjdF9fKT09ImZ1bmN0aW9uIil7CitzcmMuX19kaXNjb25uZWN0X18oXzU4YyxzaWcsXzU4Yy5vYmpPckZ1bmMsXzU4Yy5mdW5jT3JTdHIpOworfQorcmV0dXJuOworfQoraWYoc3JjLnJlbW92ZUV2ZW50TGlzdGVuZXIpeworc3JjLnJlbW92ZUV2ZW50TGlzdGVuZXIoc2lnLnN1YnN0cigyKSxfNThmLGZhbHNlKTsKK31lbHNleworaWYoc3JjLmRldGFjaEV2ZW50KXsKK3NyYy5kZXRhY2hFdmVudChzaWcsXzU4Zik7Cit9ZWxzZXsKK3Rocm93IG5ldyBFcnJvcigiJ3NyYycgbXVzdCBiZSBhIERPTSBlbGVtZW50Iik7Cit9Cit9Cit9LGRpc2Nvbm5lY3Q6ZnVuY3Rpb24oXzU5MCl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5TaWduYWw7Cit2YXIgXzU5Mj1zZWxmLl9vYnNlcnZlcnM7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworaWYoYXJndW1lbnRzLmxlbmd0aD4xKXsKK3ZhciBzcmM9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoYXJndW1lbnRzWzBdKTsKK3ZhciBzaWc9YXJndW1lbnRzWzFdOwordmFyIG9iaj1hcmd1bWVudHNbMl07Cit2YXIgZnVuYz1hcmd1bWVudHNbM107Citmb3IodmFyIGk9XzU5Mi5sZW5ndGgtMTtpPj0wO2ktLSl7Cit2YXIgbz1fNTkyW2ldOworaWYoby5zb3VyY2U9PT1zcmMmJm8uc2lnbmFsPT09c2lnJiZvLm9iak9yRnVuYz09PW9iaiYmby5mdW5jT3JTdHI9PT1mdW5jKXsKK3NlbGYuX2Rpc2Nvbm5lY3Qobyk7CitpZighc2VsZi5fbG9jayl7CitfNTkyLnNwbGljZShpLDEpOworfWVsc2V7CitzZWxmLl9kaXJ0eT10cnVlOworfQorcmV0dXJuIHRydWU7Cit9Cit9Cit9ZWxzZXsKK3ZhciBpZHg9bS5maW5kSWRlbnRpY2FsKF81OTIsXzU5MCk7CitpZihpZHg+PTApeworc2VsZi5fZGlzY29ubmVjdChfNTkwKTsKK2lmKCFzZWxmLl9sb2NrKXsKK181OTIuc3BsaWNlKGlkeCwxKTsKK31lbHNleworc2VsZi5fZGlydHk9dHJ1ZTsKK30KK3JldHVybiB0cnVlOworfQorfQorcmV0dXJuIGZhbHNlOworfSxkaXNjb25uZWN0QWxsVG86ZnVuY3Rpb24oXzU5YixfNTljKXsKK3ZhciBzZWxmPU1vY2hpS2l0LlNpZ25hbDsKK3ZhciBfNTllPXNlbGYuX29ic2VydmVyczsKK3ZhciBfNTlmPXNlbGYuX2Rpc2Nvbm5lY3Q7Cit2YXIgXzVhMD1zZWxmLl9sb2NrOwordmFyIF81YTE9c2VsZi5fZGlydHk7CitpZih0eXBlb2YgKF81OWMpPT09InVuZGVmaW5lZCIpeworXzU5Yz1udWxsOworfQorZm9yKHZhciBpPV81OWUubGVuZ3RoLTE7aT49MDtpLS0pewordmFyIF81YTM9XzU5ZVtpXTsKK2lmKF81YTMub2JqT3JGdW5jPT09XzU5YiYmKF81OWM9PT1udWxsfHxfNWEzLmZ1bmNPclN0cj09PV81OWMpKXsKK181OWYoXzVhMyk7CitpZihfNWEwKXsKK181YTE9dHJ1ZTsKK31lbHNleworXzU5ZS5zcGxpY2UoaSwxKTsKK30KK30KK30KK3NlbGYuX2RpcnR5PV81YTE7Cit9LGRpc2Nvbm5lY3RBbGw6ZnVuY3Rpb24oc3JjLHNpZyl7CitzcmM9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoc3JjKTsKK3ZhciBtPU1vY2hpS2l0LkJhc2U7Cit2YXIgXzVhNz1tLmZsYXR0ZW5Bcmd1bWVudHMobS5leHRlbmQobnVsbCxhcmd1bWVudHMsMSkpOwordmFyIHNlbGY9TW9jaGlLaXQuU2lnbmFsOwordmFyIF81YTk9c2VsZi5fZGlzY29ubmVjdDsKK3ZhciBfNWFhPXNlbGYuX29ic2VydmVyczsKK3ZhciBpLF81YWM7Cit2YXIgXzVhZD1zZWxmLl9sb2NrOwordmFyIF81YWU9c2VsZi5fZGlydHk7CitpZihfNWE3Lmxlbmd0aD09PTApeworZm9yKGk9XzVhYS5sZW5ndGgtMTtpPj0wO2ktLSl7CitfNWFjPV81YWFbaV07CitpZihfNWFjLnNvdXJjZT09PXNyYyl7CitfNWE5KF81YWMpOworaWYoIV81YWQpeworXzVhYS5zcGxpY2UoaSwxKTsKK31lbHNleworXzVhZT10cnVlOworfQorfQorfQorfWVsc2V7Cit2YXIgc2lncz17fTsKK2ZvcihpPTA7aTxfNWE3Lmxlbmd0aDtpKyspeworc2lnc1tfNWE3W2ldXT10cnVlOworfQorZm9yKGk9XzVhYS5sZW5ndGgtMTtpPj0wO2ktLSl7CitfNWFjPV81YWFbaV07CitpZihfNWFjLnNvdXJjZT09PXNyYyYmXzVhYy5zaWduYWwgaW4gc2lncyl7CitfNWE5KF81YWMpOworaWYoIV81YWQpeworXzVhYS5zcGxpY2UoaSwxKTsKK31lbHNleworXzVhZT10cnVlOworfQorfQorfQorfQorc2VsZi5fZGlydHk9XzVhZTsKK30sc2lnbmFsOmZ1bmN0aW9uKHNyYyxzaWcpewordmFyIHNlbGY9TW9jaGlLaXQuU2lnbmFsOwordmFyIF81YjM9c2VsZi5fb2JzZXJ2ZXJzOworc3JjPU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KHNyYyk7Cit2YXIgYXJncz1Nb2NoaUtpdC5CYXNlLmV4dGVuZChudWxsLGFyZ3VtZW50cywyKTsKK3ZhciBfNWI1PVtdOworc2VsZi5fbG9jaz10cnVlOworZm9yKHZhciBpPTA7aTxfNWIzLmxlbmd0aDtpKyspewordmFyIF81Yjc9XzViM1tpXTsKK2lmKF81Yjcuc291cmNlPT09c3JjJiZfNWI3LnNpZ25hbD09PXNpZyYmXzViNy5jb25uZWN0ZWQpewordHJ5eworXzViNy5saXN0ZW5lci5hcHBseShzcmMsYXJncyk7Cit9CitjYXRjaChlKXsKK181YjUucHVzaChlKTsKK30KK30KK30KK3NlbGYuX2xvY2s9ZmFsc2U7CitpZihzZWxmLl9kaXJ0eSl7CitzZWxmLl9kaXJ0eT1mYWxzZTsKK2Zvcih2YXIgaT1fNWIzLmxlbmd0aC0xO2k+PTA7aS0tKXsKK2lmKCFfNWIzW2ldLmNvbm5lY3RlZCl7CitfNWIzLnNwbGljZShpLDEpOworfQorfQorfQoraWYoXzViNS5sZW5ndGg9PTEpewordGhyb3cgXzViNVswXTsKK31lbHNleworaWYoXzViNS5sZW5ndGg+MSl7Cit2YXIgZT1uZXcgRXJyb3IoIk11bHRpcGxlIGVycm9ycyB0aHJvd24gaW4gaGFuZGxpbmcgJ3NpZycsIHNlZSBlcnJvcnMgcHJvcGVydHkiKTsKK2UuZXJyb3JzPV81YjU7Cit0aHJvdyBlOworfQorfQorfX0pOworTW9jaGlLaXQuU2lnbmFsLkVYUE9SVF9PSz1bXTsKK01vY2hpS2l0LlNpZ25hbC5FWFBPUlQ9WyJjb25uZWN0IiwiZGlzY29ubmVjdCIsInNpZ25hbCIsImRpc2Nvbm5lY3RBbGwiLCJkaXNjb25uZWN0QWxsVG8iXTsKK01vY2hpS2l0LlNpZ25hbC5fX25ld19fPWZ1bmN0aW9uKHdpbil7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordGhpcy5fZG9jdW1lbnQ9ZG9jdW1lbnQ7Cit0aGlzLl93aW5kb3c9d2luOwordGhpcy5fbG9jaz1mYWxzZTsKK3RoaXMuX2RpcnR5PWZhbHNlOwordHJ5ewordGhpcy5jb25uZWN0KHdpbmRvdywib251bmxvYWQiLHRoaXMuX3VubG9hZENhY2hlKTsKK30KK2NhdGNoKGUpeworfQordGhpcy5FWFBPUlRfVEFHUz17Ijpjb21tb24iOnRoaXMuRVhQT1JULCI6YWxsIjptLmNvbmNhdCh0aGlzLkVYUE9SVCx0aGlzLkVYUE9SVF9PSyl9OworbS5uYW1lRnVuY3Rpb25zKHRoaXMpOworfTsKK01vY2hpS2l0LlNpZ25hbC5fX25ld19fKHRoaXMpOworaWYoTW9jaGlLaXQuX19leHBvcnRfXyl7Citjb25uZWN0PU1vY2hpS2l0LlNpZ25hbC5jb25uZWN0OworZGlzY29ubmVjdD1Nb2NoaUtpdC5TaWduYWwuZGlzY29ubmVjdDsKK2Rpc2Nvbm5lY3RBbGw9TW9jaGlLaXQuU2lnbmFsLmRpc2Nvbm5lY3RBbGw7CitzaWduYWw9TW9jaGlLaXQuU2lnbmFsLnNpZ25hbDsKK30KK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHModGhpcyxNb2NoaUtpdC5TaWduYWwpOworTW9jaGlLaXQuQmFzZS5fZGVwcygiUG9zaXRpb24iLFsiQmFzZSIsIkRPTSIsIlN0eWxlIl0pOworTW9jaGlLaXQuUG9zaXRpb24uTkFNRT0iTW9jaGlLaXQuUG9zaXRpb24iOworTW9jaGlLaXQuUG9zaXRpb24uVkVSU0lPTj0iMS40LjIiOworTW9jaGlLaXQuUG9zaXRpb24uX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0LlBvc2l0aW9uLnRvU3RyaW5nPWZ1bmN0aW9uKCl7CityZXR1cm4gdGhpcy5fX3JlcHJfXygpOworfTsKK01vY2hpS2l0LlBvc2l0aW9uLkVYUE9SVF9PSz1bXTsKK01vY2hpS2l0LlBvc2l0aW9uLkVYUE9SVD1bXTsKK01vY2hpS2l0LkJhc2UudXBkYXRlKE1vY2hpS2l0LlBvc2l0aW9uLHtpbmNsdWRlU2Nyb2xsT2Zmc2V0czpmYWxzZSxwcmVwYXJlOmZ1bmN0aW9uKCl7Cit2YXIgXzViYj13aW5kb3cucGFnZVhPZmZzZXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnR8fDA7Cit2YXIgXzViYz13aW5kb3cucGFnZVlPZmZzZXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wfHwwOwordGhpcy53aW5kb3dPZmZzZXQ9bmV3IE1vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzKF81YmIsXzViYyk7Cit9LGN1bXVsYXRpdmVPZmZzZXQ6ZnVuY3Rpb24oXzViZCl7Cit2YXIgXzViZT0wOwordmFyIF81YmY9MDsKK2RveworXzViZSs9XzViZC5vZmZzZXRUb3B8fDA7CitfNWJmKz1fNWJkLm9mZnNldExlZnR8fDA7CitfNWJkPV81YmQub2Zmc2V0UGFyZW50OworfXdoaWxlKF81YmQpOworcmV0dXJuIG5ldyBNb2NoaUtpdC5TdHlsZS5Db29yZGluYXRlcyhfNWJmLF81YmUpOworfSxyZWFsT2Zmc2V0OmZ1bmN0aW9uKF81YzApewordmFyIF81YzE9MDsKK3ZhciBfNWMyPTA7Citkb3sKK181YzErPV81YzAuc2Nyb2xsVG9wfHwwOworXzVjMis9XzVjMC5zY3JvbGxMZWZ0fHwwOworXzVjMD1fNWMwLnBhcmVudE5vZGU7Cit9d2hpbGUoXzVjMCk7CityZXR1cm4gbmV3IE1vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzKF81YzIsXzVjMSk7Cit9LHdpdGhpbjpmdW5jdGlvbihfNWMzLHgseSl7CitpZih0aGlzLmluY2x1ZGVTY3JvbGxPZmZzZXRzKXsKK3JldHVybiB0aGlzLndpdGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldHMoXzVjMyx4LHkpOworfQordGhpcy54Y29tcD14OwordGhpcy55Y29tcD15OwordGhpcy5vZmZzZXQ9dGhpcy5jdW11bGF0aXZlT2Zmc2V0KF81YzMpOworaWYoXzVjMy5zdHlsZS5wb3NpdGlvbj09ImZpeGVkIil7Cit0aGlzLm9mZnNldC54Kz10aGlzLndpbmRvd09mZnNldC54OwordGhpcy5vZmZzZXQueSs9dGhpcy53aW5kb3dPZmZzZXQueTsKK30KK3JldHVybiAoeT49dGhpcy5vZmZzZXQueSYmeTx0aGlzLm9mZnNldC55K181YzMub2Zmc2V0SGVpZ2h0JiZ4Pj10aGlzLm9mZnNldC54JiZ4PHRoaXMub2Zmc2V0LngrXzVjMy5vZmZzZXRXaWR0aCk7Cit9LHdpdGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldHM6ZnVuY3Rpb24oXzVjNix4LHkpewordmFyIF81Yzk9dGhpcy5yZWFsT2Zmc2V0KF81YzYpOwordGhpcy54Y29tcD14K181YzkueC10aGlzLndpbmRvd09mZnNldC54OwordGhpcy55Y29tcD15K181YzkueS10aGlzLndpbmRvd09mZnNldC55OwordGhpcy5vZmZzZXQ9dGhpcy5jdW11bGF0aXZlT2Zmc2V0KF81YzYpOworcmV0dXJuICh0aGlzLnljb21wPj10aGlzLm9mZnNldC55JiZ0aGlzLnljb21wPHRoaXMub2Zmc2V0LnkrXzVjNi5vZmZzZXRIZWlnaHQmJnRoaXMueGNvbXA+PXRoaXMub2Zmc2V0LngmJnRoaXMueGNvbXA8dGhpcy5vZmZzZXQueCtfNWM2Lm9mZnNldFdpZHRoKTsKK30sb3ZlcmxhcDpmdW5jdGlvbihtb2RlLF81Y2IpeworaWYoIW1vZGUpeworcmV0dXJuIDA7Cit9CitpZihtb2RlPT0idmVydGljYWwiKXsKK3JldHVybiAoKHRoaXMub2Zmc2V0LnkrXzVjYi5vZmZzZXRIZWlnaHQpLXRoaXMueWNvbXApL181Y2Iub2Zmc2V0SGVpZ2h0OworfQoraWYobW9kZT09Imhvcml6b250YWwiKXsKK3JldHVybiAoKHRoaXMub2Zmc2V0LngrXzVjYi5vZmZzZXRXaWR0aCktdGhpcy54Y29tcCkvXzVjYi5vZmZzZXRXaWR0aDsKK30KK30sYWJzb2x1dGl6ZTpmdW5jdGlvbihfNWNjKXsKK181Y2M9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzVjYyk7CitpZihfNWNjLnN0eWxlLnBvc2l0aW9uPT0iYWJzb2x1dGUiKXsKK3JldHVybjsKK30KK01vY2hpS2l0LlBvc2l0aW9uLnByZXBhcmUoKTsKK3ZhciBfNWNkPU1vY2hpS2l0LlBvc2l0aW9uLnBvc2l0aW9uZWRPZmZzZXQoXzVjYyk7Cit2YXIgXzVjZT1fNWNjLmNsaWVudFdpZHRoOwordmFyIF81Y2Y9XzVjYy5jbGllbnRIZWlnaHQ7Cit2YXIgXzVkMD17InBvc2l0aW9uIjpfNWNjLnN0eWxlLnBvc2l0aW9uLCJsZWZ0IjpfNWNkLngtcGFyc2VGbG9hdChfNWNjLnN0eWxlLmxlZnR8fDApLCJ0b3AiOl81Y2QueS1wYXJzZUZsb2F0KF81Y2Muc3R5bGUudG9wfHwwKSwid2lkdGgiOl81Y2Muc3R5bGUud2lkdGgsImhlaWdodCI6XzVjYy5zdHlsZS5oZWlnaHR9OworXzVjYy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiOworXzVjYy5zdHlsZS50b3A9XzVjZC55KyJweCI7CitfNWNjLnN0eWxlLmxlZnQ9XzVjZC54KyJweCI7CitfNWNjLnN0eWxlLndpZHRoPV81Y2UrInB4IjsKK181Y2Muc3R5bGUuaGVpZ2h0PV81Y2YrInB4IjsKK3JldHVybiBfNWQwOworfSxwb3NpdGlvbmVkT2Zmc2V0OmZ1bmN0aW9uKF81ZDEpewordmFyIF81ZDI9MCxfNWQzPTA7Citkb3sKK181ZDIrPV81ZDEub2Zmc2V0VG9wfHwwOworXzVkMys9XzVkMS5vZmZzZXRMZWZ0fHwwOworXzVkMT1fNWQxLm9mZnNldFBhcmVudDsKK2lmKF81ZDEpeworcD1Nb2NoaUtpdC5TdHlsZS5nZXRTdHlsZShfNWQxLCJwb3NpdGlvbiIpOworaWYocD09InJlbGF0aXZlInx8cD09ImFic29sdXRlIil7CiticmVhazsKK30KK30KK313aGlsZShfNWQxKTsKK3JldHVybiBuZXcgTW9jaGlLaXQuU3R5bGUuQ29vcmRpbmF0ZXMoXzVkMyxfNWQyKTsKK30scmVsYXRpdml6ZTpmdW5jdGlvbihfNWQ0LF81ZDUpeworXzVkND1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNWQ0KTsKK2lmKF81ZDQuc3R5bGUucG9zaXRpb249PSJyZWxhdGl2ZSIpeworcmV0dXJuOworfQorTW9jaGlLaXQuUG9zaXRpb24ucHJlcGFyZSgpOwordmFyIHRvcD1wYXJzZUZsb2F0KF81ZDQuc3R5bGUudG9wfHwwKS0oXzVkNVsidG9wIl18fDApOwordmFyIGxlZnQ9cGFyc2VGbG9hdChfNWQ0LnN0eWxlLmxlZnR8fDApLShfNWQ1WyJsZWZ0Il18fDApOworXzVkNC5zdHlsZS5wb3NpdGlvbj1fNWQ1WyJwb3NpdGlvbiJdOworXzVkNC5zdHlsZS50b3A9dG9wKyJweCI7CitfNWQ0LnN0eWxlLmxlZnQ9bGVmdCsicHgiOworXzVkNC5zdHlsZS53aWR0aD1fNWQ1WyJ3aWR0aCJdOworXzVkNC5zdHlsZS5oZWlnaHQ9XzVkNVsiaGVpZ2h0Il07Cit9LGNsb25lOmZ1bmN0aW9uKF81ZDgsXzVkOSl7CitfNWQ4PU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KF81ZDgpOworXzVkOT1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNWQ5KTsKK181ZDkuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjsKK3ZhciBfNWRhPXRoaXMuY3VtdWxhdGl2ZU9mZnNldChfNWQ4KTsKK181ZDkuc3R5bGUudG9wPV81ZGEueSsicHgiOworXzVkOS5zdHlsZS5sZWZ0PV81ZGEueCsicHgiOworXzVkOS5zdHlsZS53aWR0aD1fNWQ4Lm9mZnNldFdpZHRoKyJweCI7CitfNWQ5LnN0eWxlLmhlaWdodD1fNWQ4Lm9mZnNldEhlaWdodCsicHgiOworfSxwYWdlOmZ1bmN0aW9uKF81ZGIpewordmFyIF81ZGM9MDsKK3ZhciBfNWRkPTA7Cit2YXIgXzVkZT1fNWRiOworZG97CitfNWRjKz1fNWRlLm9mZnNldFRvcHx8MDsKK181ZGQrPV81ZGUub2Zmc2V0TGVmdHx8MDsKK2lmKF81ZGUub2Zmc2V0UGFyZW50PT1kb2N1bWVudC5ib2R5JiZNb2NoaUtpdC5TdHlsZS5nZXRTdHlsZShfNWRlLCJwb3NpdGlvbiIpPT0iYWJzb2x1dGUiKXsKK2JyZWFrOworfQorfXdoaWxlKF81ZGU9XzVkZS5vZmZzZXRQYXJlbnQpOworXzVkZT1fNWRiOworZG97CitfNWRjLT1fNWRlLnNjcm9sbFRvcHx8MDsKK181ZGQtPV81ZGUuc2Nyb2xsTGVmdHx8MDsKK313aGlsZShfNWRlPV81ZGUucGFyZW50Tm9kZSk7CityZXR1cm4gbmV3IE1vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzKF81ZGQsXzVkYyk7Cit9fSk7CitNb2NoaUtpdC5Qb3NpdGlvbi5fX25ld19fPWZ1bmN0aW9uKHdpbil7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOwordGhpcy5FWFBPUlRfVEFHUz17Ijpjb21tb24iOnRoaXMuRVhQT1JULCI6YWxsIjptLmNvbmNhdCh0aGlzLkVYUE9SVCx0aGlzLkVYUE9SVF9PSyl9OworbS5uYW1lRnVuY3Rpb25zKHRoaXMpOworfTsKK01vY2hpS2l0LlBvc2l0aW9uLl9fbmV3X18odGhpcyk7CitNb2NoaUtpdC5CYXNlLl9leHBvcnRTeW1ib2xzKHRoaXMsTW9jaGlLaXQuUG9zaXRpb24pOworTW9jaGlLaXQuQmFzZS5fZGVwcygiVmlzdWFsIixbIkJhc2UiLCJET00iLCJTdHlsZSIsIkNvbG9yIiwiUG9zaXRpb24iXSk7CitNb2NoaUtpdC5WaXN1YWwuTkFNRT0iTW9jaGlLaXQuVmlzdWFsIjsKK01vY2hpS2l0LlZpc3VhbC5WRVJTSU9OPSIxLjQuMiI7CitNb2NoaUtpdC5WaXN1YWwuX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0LlZpc3VhbC50b1N0cmluZz1mdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK307CitNb2NoaUtpdC5WaXN1YWwuX1JvdW5kQ29ybmVycz1mdW5jdGlvbihlLF81ZTIpeworZT1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChlKTsKK3RoaXMuX3NldE9wdGlvbnMoXzVlMik7CitpZih0aGlzLm9wdGlvbnMuX191bnN0YWJsZV9fd3JhcEVsZW1lbnQpeworZT10aGlzLl9kb1dyYXAoZSk7Cit9Cit2YXIgXzVlMz10aGlzLm9wdGlvbnMuY29sb3I7Cit2YXIgQz1Nb2NoaUtpdC5Db2xvci5Db2xvcjsKK2lmKHRoaXMub3B0aW9ucy5jb2xvcj09PSJmcm9tRWxlbWVudCIpeworXzVlMz1DLmZyb21CYWNrZ3JvdW5kKGUpOworfWVsc2V7CitpZighKF81ZTMgaW5zdGFuY2VvZiBDKSl7CitfNWUzPUMuZnJvbVN0cmluZyhfNWUzKTsKK30KK30KK3RoaXMuaXNUcmFuc3BhcmVudD0oXzVlMy5hc1JHQigpLmE8PTApOwordmFyIF81ZTU9dGhpcy5vcHRpb25zLmJnQ29sb3I7CitpZih0aGlzLm9wdGlvbnMuYmdDb2xvcj09PSJmcm9tUGFyZW50Iil7CitfNWU1PUMuZnJvbUJhY2tncm91bmQoZS5vZmZzZXRQYXJlbnQpOworfWVsc2V7CitpZighKF81ZTUgaW5zdGFuY2VvZiBDKSl7CitfNWU1PUMuZnJvbVN0cmluZyhfNWU1KTsKK30KK30KK3RoaXMuX3JvdW5kQ29ybmVyc0ltcGwoZSxfNWUzLF81ZTUpOworfTsKK01vY2hpS2l0LlZpc3VhbC5fUm91bmRDb3JuZXJzLnByb3RvdHlwZT17X2RvV3JhcDpmdW5jdGlvbihlKXsKK3ZhciBfNWU3PWUucGFyZW50Tm9kZTsKK3ZhciBkb2M9TW9jaGlLaXQuRE9NLmN1cnJlbnREb2N1bWVudCgpOworaWYodHlwZW9mIChkb2MuZGVmYXVsdFZpZXcpPT09InVuZGVmaW5lZCJ8fGRvYy5kZWZhdWx0Vmlldz09PW51bGwpeworcmV0dXJuIGU7Cit9Cit2YXIgXzVlOT1kb2MuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpOworaWYodHlwZW9mIChfNWU5KT09PSJ1bmRlZmluZWQifHxfNWU5PT09bnVsbCl7CityZXR1cm4gZTsKK30KK3ZhciBfNWVhPU1vY2hpS2l0LkRPTS5ESVYoeyJzdHlsZSI6e2Rpc3BsYXk6ImJsb2NrIixtYXJnaW5Ub3A6XzVlOS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLXRvcCIpLG1hcmdpblJpZ2h0Ol81ZTkuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1yaWdodCIpLG1hcmdpbkJvdHRvbTpfNWU5LmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctYm90dG9tIiksbWFyZ2luTGVmdDpfNWU5LmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctbGVmdCIpLHBhZGRpbmc6IjBweCJ9fSk7CitfNWVhLmlubmVySFRNTD1lLmlubmVySFRNTDsKK2UuaW5uZXJIVE1MPSIiOworZS5hcHBlbmRDaGlsZChfNWVhKTsKK3JldHVybiBlOworfSxfcm91bmRDb3JuZXJzSW1wbDpmdW5jdGlvbihlLF81ZWMsXzVlZCl7CitpZih0aGlzLm9wdGlvbnMuYm9yZGVyKXsKK3RoaXMuX3JlbmRlckJvcmRlcihlLF81ZWQpOworfQoraWYodGhpcy5faXNUb3BSb3VuZGVkKCkpewordGhpcy5fcm91bmRUb3BDb3JuZXJzKGUsXzVlYyxfNWVkKTsKK30KK2lmKHRoaXMuX2lzQm90dG9tUm91bmRlZCgpKXsKK3RoaXMuX3JvdW5kQm90dG9tQ29ybmVycyhlLF81ZWMsXzVlZCk7Cit9Cit9LF9yZW5kZXJCb3JkZXI6ZnVuY3Rpb24oZWwsXzVlZil7Cit2YXIgXzVmMD0iMXB4IHNvbGlkICIrdGhpcy5fYm9yZGVyQ29sb3IoXzVlZik7Cit2YXIgXzVmMT0iYm9yZGVyLWxlZnQ6ICIrXzVmMDsKK3ZhciBfNWYyPSJib3JkZXItcmlnaHQ6ICIrXzVmMDsKK3ZhciBfNWYzPSJzdHlsZT0nIitfNWYxKyI7IitfNWYyKyInIjsKK2VsLmlubmVySFRNTD0iPGRpdiAiK181ZjMrIj4iK2VsLmlubmVySFRNTCsiPC9kaXY+IjsKK30sX3JvdW5kVG9wQ29ybmVyczpmdW5jdGlvbihlbCxfNWY1LF81ZjYpewordmFyIF81Zjc9dGhpcy5fY3JlYXRlQ29ybmVyKF81ZjYpOworZm9yKHZhciBpPTA7aTx0aGlzLm9wdGlvbnMubnVtU2xpY2VzO2krKyl7CitfNWY3LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNvcm5lclNsaWNlKF81ZjUsXzVmNixpLCJ0b3AiKSk7Cit9CitlbC5zdHlsZS5wYWRkaW5nVG9wPTA7CitlbC5pbnNlcnRCZWZvcmUoXzVmNyxlbC5maXJzdENoaWxkKTsKK30sX3JvdW5kQm90dG9tQ29ybmVyczpmdW5jdGlvbihlbCxfNWZhLF81ZmIpewordmFyIF81ZmM9dGhpcy5fY3JlYXRlQ29ybmVyKF81ZmIpOworZm9yKHZhciBpPSh0aGlzLm9wdGlvbnMubnVtU2xpY2VzLTEpO2k+PTA7aS0tKXsKK181ZmMuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ29ybmVyU2xpY2UoXzVmYSxfNWZiLGksImJvdHRvbSIpKTsKK30KK2VsLnN0eWxlLnBhZGRpbmdCb3R0b209MDsKK2VsLmFwcGVuZENoaWxkKF81ZmMpOworfSxfY3JlYXRlQ29ybmVyOmZ1bmN0aW9uKF81ZmUpewordmFyIGRvbT1Nb2NoaUtpdC5ET007CityZXR1cm4gZG9tLkRJVih7c3R5bGU6e2JhY2tncm91bmRDb2xvcjpfNWZlLnRvU3RyaW5nKCl9fSk7Cit9LF9jcmVhdGVDb3JuZXJTbGljZTpmdW5jdGlvbihfNjAwLF82MDEsbixfNjAzKXsKK3ZhciBfNjA0PU1vY2hpS2l0LkRPTS5TUEFOKCk7Cit2YXIgXzYwNT1fNjA0LnN0eWxlOworXzYwNS5iYWNrZ3JvdW5kQ29sb3I9XzYwMC50b1N0cmluZygpOworXzYwNS5kaXNwbGF5PSJibG9jayI7CitfNjA1LmhlaWdodD0iMXB4IjsKK182MDUub3ZlcmZsb3c9ImhpZGRlbiI7CitfNjA1LmZvbnRTaXplPSIxcHgiOwordmFyIF82MDY9dGhpcy5fYm9yZGVyQ29sb3IoXzYwMCxfNjAxKTsKK2lmKHRoaXMub3B0aW9ucy5ib3JkZXImJm49PT0wKXsKK182MDUuYm9yZGVyVG9wU3R5bGU9InNvbGlkIjsKK182MDUuYm9yZGVyVG9wV2lkdGg9IjFweCI7CitfNjA1LmJvcmRlckxlZnRXaWR0aD0iMHB4IjsKK182MDUuYm9yZGVyUmlnaHRXaWR0aD0iMHB4IjsKK182MDUuYm9yZGVyQm90dG9tV2lkdGg9IjBweCI7CitfNjA1LmhlaWdodD0iMHB4IjsKK182MDUuYm9yZGVyQ29sb3I9XzYwNi50b1N0cmluZygpOworfWVsc2V7CitpZihfNjA2KXsKK182MDUuYm9yZGVyQ29sb3I9XzYwNi50b1N0cmluZygpOworXzYwNS5ib3JkZXJTdHlsZT0ic29saWQiOworXzYwNS5ib3JkZXJXaWR0aD0iMHB4IDFweCI7Cit9Cit9CitpZighdGhpcy5vcHRpb25zLmNvbXBhY3QmJihuPT0odGhpcy5vcHRpb25zLm51bVNsaWNlcy0xKSkpeworXzYwNS5oZWlnaHQ9IjJweCI7Cit9Cit0aGlzLl9zZXRNYXJnaW4oXzYwNCxuLF82MDMpOwordGhpcy5fc2V0Qm9yZGVyKF82MDQsbixfNjAzKTsKK3JldHVybiBfNjA0OworfSxfc2V0T3B0aW9uczpmdW5jdGlvbihfNjA3KXsKK3RoaXMub3B0aW9ucz17Y29ybmVyczoiYWxsIixjb2xvcjoiZnJvbUVsZW1lbnQiLGJnQ29sb3I6ImZyb21QYXJlbnQiLGJsZW5kOnRydWUsYm9yZGVyOmZhbHNlLGNvbXBhY3Q6ZmFsc2UsX191bnN0YWJsZV9fd3JhcEVsZW1lbnQ6ZmFsc2V9OworTW9jaGlLaXQuQmFzZS51cGRhdGUodGhpcy5vcHRpb25zLF82MDcpOwordGhpcy5vcHRpb25zLm51bVNsaWNlcz0odGhpcy5vcHRpb25zLmNvbXBhY3Q/Mjo0KTsKK30sX3doaWNoU2lkZVRvcDpmdW5jdGlvbigpewordmFyIF82MDg9dGhpcy5vcHRpb25zLmNvcm5lcnM7CitpZih0aGlzLl9oYXNTdHJpbmcoXzYwOCwiYWxsIiwidG9wIikpeworcmV0dXJuICIiOworfQordmFyIF82MDk9KF82MDguaW5kZXhPZigidGwiKSE9LTEpOwordmFyIF82MGE9KF82MDguaW5kZXhPZigidHIiKSE9LTEpOworaWYoXzYwOSYmXzYwYSl7CityZXR1cm4gIiI7Cit9CitpZihfNjA5KXsKK3JldHVybiAibGVmdCI7Cit9CitpZihfNjBhKXsKK3JldHVybiAicmlnaHQiOworfQorcmV0dXJuICIiOworfSxfd2hpY2hTaWRlQm90dG9tOmZ1bmN0aW9uKCl7Cit2YXIgXzYwYj10aGlzLm9wdGlvbnMuY29ybmVyczsKK2lmKHRoaXMuX2hhc1N0cmluZyhfNjBiLCJhbGwiLCJib3R0b20iKSl7CityZXR1cm4gIiI7Cit9Cit2YXIgXzYwYz0oXzYwYi5pbmRleE9mKCJibCIpIT0tMSk7Cit2YXIgXzYwZD0oXzYwYi5pbmRleE9mKCJiciIpIT0tMSk7CitpZihfNjBjJiZfNjBkKXsKK3JldHVybiAiIjsKK30KK2lmKF82MGMpeworcmV0dXJuICJsZWZ0IjsKK30KK2lmKF82MGQpeworcmV0dXJuICJyaWdodCI7Cit9CityZXR1cm4gIiI7Cit9LF9ib3JkZXJDb2xvcjpmdW5jdGlvbihfNjBlLF82MGYpeworaWYoXzYwZT09InRyYW5zcGFyZW50Iil7CityZXR1cm4gXzYwZjsKK31lbHNleworaWYodGhpcy5vcHRpb25zLmJvcmRlcil7CityZXR1cm4gdGhpcy5vcHRpb25zLmJvcmRlcjsKK31lbHNleworaWYodGhpcy5vcHRpb25zLmJsZW5kKXsKK3JldHVybiBfNjBmLmJsZW5kZWRDb2xvcihfNjBlKTsKK30KK30KK30KK3JldHVybiAiIjsKK30sX3NldE1hcmdpbjpmdW5jdGlvbihlbCxuLF82MTIpewordmFyIF82MTM9dGhpcy5fbWFyZ2luU2l6ZShuKSsicHgiOwordmFyIF82MTQ9KF82MTI9PSJ0b3AiP3RoaXMuX3doaWNoU2lkZVRvcCgpOnRoaXMuX3doaWNoU2lkZUJvdHRvbSgpKTsKK3ZhciBfNjE1PWVsLnN0eWxlOworaWYoXzYxND09ImxlZnQiKXsKK182MTUubWFyZ2luTGVmdD1fNjEzOworXzYxNS5tYXJnaW5SaWdodD0iMHB4IjsKK31lbHNleworaWYoXzYxND09InJpZ2h0Iil7CitfNjE1Lm1hcmdpblJpZ2h0PV82MTM7CitfNjE1Lm1hcmdpbkxlZnQ9IjBweCI7Cit9ZWxzZXsKK182MTUubWFyZ2luTGVmdD1fNjEzOworXzYxNS5tYXJnaW5SaWdodD1fNjEzOworfQorfQorfSxfc2V0Qm9yZGVyOmZ1bmN0aW9uKGVsLG4sXzYxOCl7Cit2YXIgXzYxOT10aGlzLl9ib3JkZXJTaXplKG4pKyJweCI7Cit2YXIgXzYxYT0oXzYxOD09InRvcCI/dGhpcy5fd2hpY2hTaWRlVG9wKCk6dGhpcy5fd2hpY2hTaWRlQm90dG9tKCkpOwordmFyIF82MWI9ZWwuc3R5bGU7CitpZihfNjFhPT0ibGVmdCIpeworXzYxYi5ib3JkZXJMZWZ0V2lkdGg9XzYxOTsKK182MWIuYm9yZGVyUmlnaHRXaWR0aD0iMHB4IjsKK31lbHNleworaWYoXzYxYT09InJpZ2h0Iil7CitfNjFiLmJvcmRlclJpZ2h0V2lkdGg9XzYxOTsKK182MWIuYm9yZGVyTGVmdFdpZHRoPSIwcHgiOworfWVsc2V7CitfNjFiLmJvcmRlckxlZnRXaWR0aD1fNjE5OworXzYxYi5ib3JkZXJSaWdodFdpZHRoPV82MTk7Cit9Cit9Cit9LF9tYXJnaW5TaXplOmZ1bmN0aW9uKG4peworaWYodGhpcy5pc1RyYW5zcGFyZW50KXsKK3JldHVybiAwOworfQordmFyIG89dGhpcy5vcHRpb25zOworaWYoby5jb21wYWN0JiZvLmJsZW5kKXsKK3ZhciBfNjFlPVsxLDBdOworcmV0dXJuIF82MWVbbl07Cit9ZWxzZXsKK2lmKG8uY29tcGFjdCl7Cit2YXIgXzYxZj1bMiwxXTsKK3JldHVybiBfNjFmW25dOworfWVsc2V7CitpZihvLmJsZW5kKXsKK3ZhciBfNjIwPVszLDIsMSwwXTsKK3JldHVybiBfNjIwW25dOworfWVsc2V7Cit2YXIgXzYyMT1bNSwzLDIsMV07CityZXR1cm4gXzYyMVtuXTsKK30KK30KK30KK30sX2JvcmRlclNpemU6ZnVuY3Rpb24obil7Cit2YXIgbz10aGlzLm9wdGlvbnM7Cit2YXIgXzYyNDsKK2lmKG8uY29tcGFjdCYmKG8uYmxlbmR8fHRoaXMuaXNUcmFuc3BhcmVudCkpeworcmV0dXJuIDE7Cit9ZWxzZXsKK2lmKG8uY29tcGFjdCl7CitfNjI0PVsxLDBdOworfWVsc2V7CitpZihvLmJsZW5kKXsKK182MjQ9WzIsMSwxLDFdOworfWVsc2V7CitpZihvLmJvcmRlcil7CitfNjI0PVswLDIsMCwwXTsKK31lbHNleworaWYodGhpcy5pc1RyYW5zcGFyZW50KXsKK182MjQ9WzUsMywyLDFdOworfWVsc2V7CityZXR1cm4gMDsKK30KK30KK30KK30KK30KK3JldHVybiBfNjI0W25dOworfSxfaGFzU3RyaW5nOmZ1bmN0aW9uKHN0cil7Citmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXsKK2lmKHN0ci5pbmRleE9mKGFyZ3VtZW50c1tpXSkhPS0xKXsKK3JldHVybiB0cnVlOworfQorfQorcmV0dXJuIGZhbHNlOworfSxfaXNUb3BSb3VuZGVkOmZ1bmN0aW9uKCl7CityZXR1cm4gdGhpcy5faGFzU3RyaW5nKHRoaXMub3B0aW9ucy5jb3JuZXJzLCJhbGwiLCJ0b3AiLCJ0bCIsInRyIik7Cit9LF9pc0JvdHRvbVJvdW5kZWQ6ZnVuY3Rpb24oKXsKK3JldHVybiB0aGlzLl9oYXNTdHJpbmcodGhpcy5vcHRpb25zLmNvcm5lcnMsImFsbCIsImJvdHRvbSIsImJsIiwiYnIiKTsKK30sX2hhc1NpbmdsZVRleHRDaGlsZDpmdW5jdGlvbihlbCl7CityZXR1cm4gKGVsLmNoaWxkTm9kZXMubGVuZ3RoPT0xJiZlbC5jaGlsZE5vZGVzWzBdLm5vZGVUeXBlPT0zKTsKK319OworTW9jaGlLaXQuVmlzdWFsLnJvdW5kRWxlbWVudD1mdW5jdGlvbihlLF82MjkpeworbmV3IE1vY2hpS2l0LlZpc3VhbC5fUm91bmRDb3JuZXJzKGUsXzYyOSk7Cit9OworTW9jaGlLaXQuVmlzdWFsLnJvdW5kQ2xhc3M9ZnVuY3Rpb24oXzYyYSxfNjJiLF82MmMpewordmFyIF82MmQ9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnRzQnlUYWdBbmRDbGFzc05hbWUoXzYyYSxfNjJiKTsKK2Zvcih2YXIgaT0wO2k8XzYyZC5sZW5ndGg7aSsrKXsKK01vY2hpS2l0LlZpc3VhbC5yb3VuZEVsZW1lbnQoXzYyZFtpXSxfNjJjKTsKK30KK307CitNb2NoaUtpdC5WaXN1YWwudGFnaWZ5VGV4dD1mdW5jdGlvbihfNjJmLF82MzApeworXzYzMD1fNjMwfHwicG9zaXRpb246cmVsYXRpdmUiOworaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpeworXzYzMCs9Ijt6b29tOjEiOworfQorXzYyZj1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNjJmKTsKK3ZhciBtYT1Nb2NoaUtpdC5CYXNlLm1hcDsKK21hKGZ1bmN0aW9uKF82MzIpeworaWYoXzYzMi5ub2RlVHlwZT09Myl7CittYShmdW5jdGlvbihfNjMzKXsKK182MmYuaW5zZXJ0QmVmb3JlKE1vY2hpS2l0LkRPTS5TUEFOKHtzdHlsZTpfNjMwfSxfNjMzPT0iICI/U3RyaW5nLmZyb21DaGFyQ29kZSgxNjApOl82MzMpLF82MzIpOworfSxfNjMyLm5vZGVWYWx1ZS5zcGxpdCgiIikpOworTW9jaGlLaXQuRE9NLnJlbW92ZUVsZW1lbnQoXzYzMik7Cit9Cit9LF82MmYuY2hpbGROb2Rlcyk7Cit9OworTW9jaGlLaXQuVmlzdWFsLmZvcmNlUmVyZW5kZXJpbmc9ZnVuY3Rpb24oXzYzNCl7Cit0cnl7CitfNjM0PU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KF82MzQpOwordmFyIG49ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKTsKK182MzQuYXBwZW5kQ2hpbGQobik7CitfNjM0LnJlbW92ZUNoaWxkKG4pOworfQorY2F0Y2goZSl7Cit9Cit9OworTW9jaGlLaXQuVmlzdWFsLm11bHRpcGxlPWZ1bmN0aW9uKF82MzYsXzYzNyxfNjM4KXsKK182Mzg9TW9jaGlLaXQuQmFzZS51cGRhdGUoe3NwZWVkOjAuMSxkZWxheTowfSxfNjM4KTsKK3ZhciBfNjM5PV82MzguZGVsYXk7Cit2YXIgXzYzYT0wOworTW9jaGlLaXQuQmFzZS5tYXAoZnVuY3Rpb24oXzYzYil7CitfNjM4LmRlbGF5PV82M2EqXzYzOC5zcGVlZCtfNjM5OworbmV3IF82MzcoXzYzYixfNjM4KTsKK182M2ErPTE7Cit9LF82MzYpOworfTsKK01vY2hpS2l0LlZpc3VhbC5QQUlSUz17InNsaWRlIjpbInNsaWRlRG93biIsInNsaWRlVXAiXSwiYmxpbmQiOlsiYmxpbmREb3duIiwiYmxpbmRVcCJdLCJhcHBlYXIiOlsiYXBwZWFyIiwiZmFkZSJdLCJzaXplIjpbImdyb3ciLCJzaHJpbmsiXX07CitNb2NoaUtpdC5WaXN1YWwudG9nZ2xlPWZ1bmN0aW9uKF82M2MsXzYzZCxfNjNlKXsKK182M2M9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzYzYyk7CitfNjNkPShfNjNkfHwiYXBwZWFyIikudG9Mb3dlckNhc2UoKTsKK182M2U9TW9jaGlLaXQuQmFzZS51cGRhdGUoe3F1ZXVlOntwb3NpdGlvbjoiZW5kIixzY29wZTooXzYzYy5pZHx8Imdsb2JhbCIpLGxpbWl0OjF9fSxfNjNlKTsKK3ZhciB2PU1vY2hpS2l0LlZpc3VhbDsKK3ZbTW9jaGlLaXQuU3R5bGUuZ2V0U3R5bGUoXzYzYywiZGlzcGxheSIpIT0ibm9uZSI/di5QQUlSU1tfNjNkXVsxXTp2LlBBSVJTW182M2RdWzBdXShfNjNjLF82M2UpOworfTsKK01vY2hpS2l0LlZpc3VhbC5UcmFuc2l0aW9ucz17fTsKK01vY2hpS2l0LlZpc3VhbC5UcmFuc2l0aW9ucy5saW5lYXI9ZnVuY3Rpb24ocG9zKXsKK3JldHVybiBwb3M7Cit9OworTW9jaGlLaXQuVmlzdWFsLlRyYW5zaXRpb25zLnNpbm9pZGFsPWZ1bmN0aW9uKHBvcyl7CityZXR1cm4gMC41LU1hdGguY29zKHBvcypNYXRoLlBJKS8yOworfTsKK01vY2hpS2l0LlZpc3VhbC5UcmFuc2l0aW9ucy5yZXZlcnNlPWZ1bmN0aW9uKHBvcyl7CityZXR1cm4gMS1wb3M7Cit9OworTW9jaGlLaXQuVmlzdWFsLlRyYW5zaXRpb25zLmZsaWNrZXI9ZnVuY3Rpb24ocG9zKXsKK3JldHVybiAwLjI1LU1hdGguY29zKHBvcypNYXRoLlBJKS80K01hdGgucmFuZG9tKCkvMjsKK307CitNb2NoaUtpdC5WaXN1YWwuVHJhbnNpdGlvbnMud29iYmxlPWZ1bmN0aW9uKHBvcyl7CityZXR1cm4gMC41LU1hdGguY29zKDkqcG9zKk1hdGguUEkpLzI7Cit9OworTW9jaGlLaXQuVmlzdWFsLlRyYW5zaXRpb25zLnB1bHNlPWZ1bmN0aW9uKHBvcyxfNjQ2KXsKK2lmKF82NDYpeworcG9zKj0yKl82NDY7Cit9ZWxzZXsKK3Bvcyo9MTA7Cit9Cit2YXIgXzY0Nz1wb3MtTWF0aC5mbG9vcihwb3MpOworcmV0dXJuIChNYXRoLmZsb29yKHBvcyklMj09MCk/XzY0NzoxLV82NDc7Cit9OworTW9jaGlLaXQuVmlzdWFsLlRyYW5zaXRpb25zLnBhcmFib2xpYz1mdW5jdGlvbihwb3MpeworcmV0dXJuIHBvcypwb3M7Cit9OworTW9jaGlLaXQuVmlzdWFsLlRyYW5zaXRpb25zLm5vbmU9ZnVuY3Rpb24ocG9zKXsKK3JldHVybiAwOworfTsKK01vY2hpS2l0LlZpc3VhbC5UcmFuc2l0aW9ucy5mdWxsPWZ1bmN0aW9uKHBvcyl7CityZXR1cm4gMTsKK307CitNb2NoaUtpdC5WaXN1YWwuU2NvcGVkUXVldWU9ZnVuY3Rpb24oKXsKK3ZhciBjbHM9YXJndW1lbnRzLmNhbGxlZTsKK2lmKCEodGhpcyBpbnN0YW5jZW9mIGNscykpeworcmV0dXJuIG5ldyBjbHMoKTsKK30KK3RoaXMuX19pbml0X18oKTsKK307CitNb2NoaUtpdC5CYXNlLnVwZGF0ZShNb2NoaUtpdC5WaXN1YWwuU2NvcGVkUXVldWUucHJvdG90eXBlLHtfX2luaXRfXzpmdW5jdGlvbigpewordGhpcy5lZmZlY3RzPVtdOwordGhpcy5pbnRlcnZhbD1udWxsOworfSxhZGQ6ZnVuY3Rpb24oXzY0Yyl7Cit2YXIgXzY0ZD1uZXcgRGF0ZSgpLmdldFRpbWUoKTsKK3ZhciBfNjRlPSh0eXBlb2YgKF82NGMub3B0aW9ucy5xdWV1ZSk9PSJzdHJpbmciKT9fNjRjLm9wdGlvbnMucXVldWU6XzY0Yy5vcHRpb25zLnF1ZXVlLnBvc2l0aW9uOwordmFyIG1hPU1vY2hpS2l0LkJhc2UubWFwOworc3dpdGNoKF82NGUpeworY2FzZSAiZnJvbnQiOgorbWEoZnVuY3Rpb24oZSl7CitpZihlLnN0YXRlPT0iaWRsZSIpeworZS5zdGFydE9uKz1fNjRjLmZpbmlzaE9uOworZS5maW5pc2hPbis9XzY0Yy5maW5pc2hPbjsKK30KK30sdGhpcy5lZmZlY3RzKTsKK2JyZWFrOworY2FzZSAiZW5kIjoKK3ZhciBfNjUxOworbWEoZnVuY3Rpb24oZSl7Cit2YXIgaT1lLmZpbmlzaE9uOworaWYoaT49KF82NTF8fGkpKXsKK182NTE9aTsKK30KK30sdGhpcy5lZmZlY3RzKTsKK182NGQ9XzY1MXx8XzY0ZDsKK2JyZWFrOworY2FzZSAiYnJlYWsiOgorbWEoZnVuY3Rpb24oZSl7CitlLmZpbmFsaXplKCk7Cit9LHRoaXMuZWZmZWN0cyk7CiticmVhazsKK30KK182NGMuc3RhcnRPbis9XzY0ZDsKK182NGMuZmluaXNoT24rPV82NGQ7CitpZighXzY0Yy5vcHRpb25zLnF1ZXVlLmxpbWl0fHx0aGlzLmVmZmVjdHMubGVuZ3RoPF82NGMub3B0aW9ucy5xdWV1ZS5saW1pdCl7Cit0aGlzLmVmZmVjdHMucHVzaChfNjRjKTsKK30KK2lmKCF0aGlzLmludGVydmFsKXsKK3RoaXMuaW50ZXJ2YWw9dGhpcy5zdGFydExvb3AoTW9jaGlLaXQuQmFzZS5iaW5kKHRoaXMubG9vcCx0aGlzKSw0MCk7Cit9Cit9LHN0YXJ0TG9vcDpmdW5jdGlvbihmdW5jLF82NTYpeworcmV0dXJuIHNldEludGVydmFsKGZ1bmMsXzY1Nik7Cit9LHJlbW92ZTpmdW5jdGlvbihfNjU3KXsKK3RoaXMuZWZmZWN0cz1Nb2NoaUtpdC5CYXNlLmZpbHRlcihmdW5jdGlvbihlKXsKK3JldHVybiBlIT1fNjU3OworfSx0aGlzLmVmZmVjdHMpOworaWYoIXRoaXMuZWZmZWN0cy5sZW5ndGgpewordGhpcy5zdG9wTG9vcCh0aGlzLmludGVydmFsKTsKK3RoaXMuaW50ZXJ2YWw9bnVsbDsKK30KK30sc3RvcExvb3A6ZnVuY3Rpb24oXzY1OSl7CitjbGVhckludGVydmFsKF82NTkpOworfSxsb29wOmZ1bmN0aW9uKCl7Cit2YXIgXzY1YT1uZXcgRGF0ZSgpLmdldFRpbWUoKTsKK01vY2hpS2l0LkJhc2UubWFwKGZ1bmN0aW9uKF82NWIpeworXzY1Yi5sb29wKF82NWEpOworfSx0aGlzLmVmZmVjdHMpOworfX0pOworTW9jaGlLaXQuVmlzdWFsLlF1ZXVlcz17aW5zdGFuY2VzOnt9LGdldDpmdW5jdGlvbihfNjVjKXsKK2lmKHR5cGVvZiAoXzY1YykhPSJzdHJpbmciKXsKK3JldHVybiBfNjVjOworfQoraWYoIXRoaXMuaW5zdGFuY2VzW182NWNdKXsKK3RoaXMuaW5zdGFuY2VzW182NWNdPW5ldyBNb2NoaUtpdC5WaXN1YWwuU2NvcGVkUXVldWUoKTsKK30KK3JldHVybiB0aGlzLmluc3RhbmNlc1tfNjVjXTsKK319OworTW9jaGlLaXQuVmlzdWFsLlF1ZXVlPU1vY2hpS2l0LlZpc3VhbC5RdWV1ZXMuZ2V0KCJnbG9iYWwiKTsKK01vY2hpS2l0LlZpc3VhbC5EZWZhdWx0T3B0aW9ucz17dHJhbnNpdGlvbjpNb2NoaUtpdC5WaXN1YWwuVHJhbnNpdGlvbnMuc2lub2lkYWwsZHVyYXRpb246MSxmcHM6MjUsc3luYzpmYWxzZSxmcm9tOjAsdG86MSxkZWxheTowLHF1ZXVlOiJwYXJhbGxlbCJ9OworTW9jaGlLaXQuVmlzdWFsLkJhc2U9ZnVuY3Rpb24oKXsKK307CitNb2NoaUtpdC5WaXN1YWwuQmFzZS5wcm90b3R5cGU9e19fY2xhc3NfXzpNb2NoaUtpdC5WaXN1YWwuQmFzZSxzdGFydDpmdW5jdGlvbihfNjVkKXsKK3ZhciB2PU1vY2hpS2l0LlZpc3VhbDsKK3RoaXMub3B0aW9ucz1Nb2NoaUtpdC5CYXNlLnNldGRlZmF1bHQoXzY1ZCx2LkRlZmF1bHRPcHRpb25zKTsKK3RoaXMuY3VycmVudEZyYW1lPTA7Cit0aGlzLnN0YXRlPSJpZGxlIjsKK3RoaXMuc3RhcnRPbj10aGlzLm9wdGlvbnMuZGVsYXkqMTAwMDsKK3RoaXMuZmluaXNoT249dGhpcy5zdGFydE9uKyh0aGlzLm9wdGlvbnMuZHVyYXRpb24qMTAwMCk7Cit0aGlzLmV2ZW50KCJiZWZvcmVTdGFydCIpOworaWYoIXRoaXMub3B0aW9ucy5zeW5jKXsKK3YuUXVldWVzLmdldCh0eXBlb2YgKHRoaXMub3B0aW9ucy5xdWV1ZSk9PSJzdHJpbmciPyJnbG9iYWwiOnRoaXMub3B0aW9ucy5xdWV1ZS5zY29wZSkuYWRkKHRoaXMpOworfQorfSxsb29wOmZ1bmN0aW9uKF82NWYpeworaWYoXzY1Zj49dGhpcy5zdGFydE9uKXsKK2lmKF82NWY+PXRoaXMuZmluaXNoT24peworcmV0dXJuIHRoaXMuZmluYWxpemUoKTsKK30KK3ZhciBwb3M9KF82NWYtdGhpcy5zdGFydE9uKS8odGhpcy5maW5pc2hPbi10aGlzLnN0YXJ0T24pOwordmFyIF82NjE9TWF0aC5yb3VuZChwb3MqdGhpcy5vcHRpb25zLmZwcyp0aGlzLm9wdGlvbnMuZHVyYXRpb24pOworaWYoXzY2MT50aGlzLmN1cnJlbnRGcmFtZSl7Cit0aGlzLnJlbmRlcihwb3MpOwordGhpcy5jdXJyZW50RnJhbWU9XzY2MTsKK30KK30KK30scmVuZGVyOmZ1bmN0aW9uKHBvcyl7CitpZih0aGlzLnN0YXRlPT0iaWRsZSIpewordGhpcy5zdGF0ZT0icnVubmluZyI7Cit0aGlzLmV2ZW50KCJiZWZvcmVTZXR1cCIpOwordGhpcy5zZXR1cCgpOwordGhpcy5ldmVudCgiYWZ0ZXJTZXR1cCIpOworfQoraWYodGhpcy5zdGF0ZT09InJ1bm5pbmciKXsKK2lmKHRoaXMub3B0aW9ucy50cmFuc2l0aW9uKXsKK3Bvcz10aGlzLm9wdGlvbnMudHJhbnNpdGlvbihwb3MpOworfQorcG9zKj0odGhpcy5vcHRpb25zLnRvLXRoaXMub3B0aW9ucy5mcm9tKTsKK3Bvcys9dGhpcy5vcHRpb25zLmZyb207Cit0aGlzLmV2ZW50KCJiZWZvcmVVcGRhdGUiKTsKK3RoaXMudXBkYXRlKHBvcyk7Cit0aGlzLmV2ZW50KCJhZnRlclVwZGF0ZSIpOworfQorfSxjYW5jZWw6ZnVuY3Rpb24oKXsKK2lmKCF0aGlzLm9wdGlvbnMuc3luYyl7CitNb2NoaUtpdC5WaXN1YWwuUXVldWVzLmdldCh0eXBlb2YgKHRoaXMub3B0aW9ucy5xdWV1ZSk9PSJzdHJpbmciPyJnbG9iYWwiOnRoaXMub3B0aW9ucy5xdWV1ZS5zY29wZSkucmVtb3ZlKHRoaXMpOworfQordGhpcy5zdGF0ZT0iZmluaXNoZWQiOworfSxmaW5hbGl6ZTpmdW5jdGlvbigpewordGhpcy5yZW5kZXIoMSk7Cit0aGlzLmNhbmNlbCgpOwordGhpcy5ldmVudCgiYmVmb3JlRmluaXNoIik7Cit0aGlzLmZpbmlzaCgpOwordGhpcy5ldmVudCgiYWZ0ZXJGaW5pc2giKTsKK30sc2V0dXA6ZnVuY3Rpb24oKXsKK30sZmluaXNoOmZ1bmN0aW9uKCl7Cit9LHVwZGF0ZTpmdW5jdGlvbihfNjYzKXsKK30sZXZlbnQ6ZnVuY3Rpb24oXzY2NCl7CitpZih0aGlzLm9wdGlvbnNbXzY2NCsiSW50ZXJuYWwiXSl7Cit0aGlzLm9wdGlvbnNbXzY2NCsiSW50ZXJuYWwiXSh0aGlzKTsKK30KK2lmKHRoaXMub3B0aW9uc1tfNjY0XSl7Cit0aGlzLm9wdGlvbnNbXzY2NF0odGhpcyk7Cit9Cit9LHJlcHI6ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5fX2NsYXNzX18uTkFNRSsiLCBvcHRpb25zOiIrTW9jaGlLaXQuQmFzZS5yZXByKHRoaXMub3B0aW9ucykrIl0iOworfX07CitNb2NoaUtpdC5WaXN1YWwuUGFyYWxsZWw9ZnVuY3Rpb24oXzY2NSxfNjY2KXsKK3ZhciBjbHM9YXJndW1lbnRzLmNhbGxlZTsKK2lmKCEodGhpcyBpbnN0YW5jZW9mIGNscykpeworcmV0dXJuIG5ldyBjbHMoXzY2NSxfNjY2KTsKK30KK3RoaXMuX19pbml0X18oXzY2NSxfNjY2KTsKK307CitNb2NoaUtpdC5WaXN1YWwuUGFyYWxsZWwucHJvdG90eXBlPW5ldyBNb2NoaUtpdC5WaXN1YWwuQmFzZSgpOworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuVmlzdWFsLlBhcmFsbGVsLnByb3RvdHlwZSx7X19jbGFzc19fOk1vY2hpS2l0LlZpc3VhbC5QYXJhbGxlbCxfX2luaXRfXzpmdW5jdGlvbihfNjY4LF82NjkpewordGhpcy5lZmZlY3RzPV82Njh8fFtdOwordGhpcy5zdGFydChfNjY5KTsKK30sdXBkYXRlOmZ1bmN0aW9uKF82NmEpeworTW9jaGlLaXQuQmFzZS5tYXAoZnVuY3Rpb24oXzY2Yil7CitfNjZiLnJlbmRlcihfNjZhKTsKK30sdGhpcy5lZmZlY3RzKTsKK30sZmluaXNoOmZ1bmN0aW9uKCl7CitNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihfNjZjKXsKK182NmMuZmluYWxpemUoKTsKK30sdGhpcy5lZmZlY3RzKTsKK319KTsKK01vY2hpS2l0LlZpc3VhbC5TZXF1ZW5jZT1mdW5jdGlvbihfNjZkLF82NmUpewordmFyIGNscz1hcmd1bWVudHMuY2FsbGVlOworaWYoISh0aGlzIGluc3RhbmNlb2YgY2xzKSl7CityZXR1cm4gbmV3IGNscyhfNjZkLF82NmUpOworfQordGhpcy5fX2luaXRfXyhfNjZkLF82NmUpOworfTsKK01vY2hpS2l0LlZpc3VhbC5TZXF1ZW5jZS5wcm90b3R5cGU9bmV3IE1vY2hpS2l0LlZpc3VhbC5CYXNlKCk7CitNb2NoaUtpdC5CYXNlLnVwZGF0ZShNb2NoaUtpdC5WaXN1YWwuU2VxdWVuY2UucHJvdG90eXBlLHtfX2NsYXNzX186TW9jaGlLaXQuVmlzdWFsLlNlcXVlbmNlLF9faW5pdF9fOmZ1bmN0aW9uKF82NzAsXzY3MSl7Cit2YXIgZGVmcz17dHJhbnNpdGlvbjpNb2NoaUtpdC5WaXN1YWwuVHJhbnNpdGlvbnMubGluZWFyLGR1cmF0aW9uOjB9OwordGhpcy5lZmZlY3RzPV82NzB8fFtdOworTW9jaGlLaXQuQmFzZS5tYXAoZnVuY3Rpb24oXzY3Myl7CitkZWZzLmR1cmF0aW9uKz1fNjczLm9wdGlvbnMuZHVyYXRpb247Cit9LHRoaXMuZWZmZWN0cyk7CitNb2NoaUtpdC5CYXNlLnNldGRlZmF1bHQoXzY3MSxkZWZzKTsKK3RoaXMuc3RhcnQoXzY3MSk7Cit9LHVwZGF0ZTpmdW5jdGlvbihfNjc0KXsKK3ZhciB0aW1lPV82NzQqdGhpcy5vcHRpb25zLmR1cmF0aW9uOworZm9yKHZhciBpPTA7aTx0aGlzLmVmZmVjdHMubGVuZ3RoO2krKyl7Cit2YXIgXzY3Nz10aGlzLmVmZmVjdHNbaV07CitpZih0aW1lPD1fNjc3Lm9wdGlvbnMuZHVyYXRpb24peworXzY3Ny5yZW5kZXIodGltZS9fNjc3Lm9wdGlvbnMuZHVyYXRpb24pOworYnJlYWs7Cit9ZWxzZXsKK3RpbWUtPV82Nzcub3B0aW9ucy5kdXJhdGlvbjsKK30KK30KK30sZmluaXNoOmZ1bmN0aW9uKCl7CitNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihfNjc4KXsKK182NzguZmluYWxpemUoKTsKK30sdGhpcy5lZmZlY3RzKTsKK319KTsKK01vY2hpS2l0LlZpc3VhbC5PcGFjaXR5PWZ1bmN0aW9uKF82NzksXzY3YSl7Cit2YXIgY2xzPWFyZ3VtZW50cy5jYWxsZWU7CitpZighKHRoaXMgaW5zdGFuY2VvZiBjbHMpKXsKK3JldHVybiBuZXcgY2xzKF82NzksXzY3YSk7Cit9Cit0aGlzLl9faW5pdF9fKF82NzksXzY3YSk7Cit9OworTW9jaGlLaXQuVmlzdWFsLk9wYWNpdHkucHJvdG90eXBlPW5ldyBNb2NoaUtpdC5WaXN1YWwuQmFzZSgpOworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuVmlzdWFsLk9wYWNpdHkucHJvdG90eXBlLHtfX2NsYXNzX186TW9jaGlLaXQuVmlzdWFsLk9wYWNpdHksX19pbml0X186ZnVuY3Rpb24oXzY3YyxfNjdkKXsKK3ZhciBiPU1vY2hpS2l0LkJhc2U7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK3RoaXMuZWxlbWVudD1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNjdjKTsKK2lmKHRoaXMuZWxlbWVudC5jdXJyZW50U3R5bGUmJighdGhpcy5lbGVtZW50LmN1cnJlbnRTdHlsZS5oYXNMYXlvdXQpKXsKK3Muc2V0U3R5bGUodGhpcy5lbGVtZW50LHt6b29tOjF9KTsKK30KK182N2Q9Yi51cGRhdGUoe2Zyb206cy5nZXRTdHlsZSh0aGlzLmVsZW1lbnQsIm9wYWNpdHkiKXx8MCx0bzoxfSxfNjdkKTsKK3RoaXMuc3RhcnQoXzY3ZCk7Cit9LHVwZGF0ZTpmdW5jdGlvbihfNjgwKXsKK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKHRoaXMuZWxlbWVudCx7Im9wYWNpdHkiOl82ODB9KTsKK319KTsKK01vY2hpS2l0LlZpc3VhbC5Nb3ZlPWZ1bmN0aW9uKF82ODEsXzY4Mil7Cit2YXIgY2xzPWFyZ3VtZW50cy5jYWxsZWU7CitpZighKHRoaXMgaW5zdGFuY2VvZiBjbHMpKXsKK3JldHVybiBuZXcgY2xzKF82ODEsXzY4Mik7Cit9Cit0aGlzLl9faW5pdF9fKF82ODEsXzY4Mik7Cit9OworTW9jaGlLaXQuVmlzdWFsLk1vdmUucHJvdG90eXBlPW5ldyBNb2NoaUtpdC5WaXN1YWwuQmFzZSgpOworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuVmlzdWFsLk1vdmUucHJvdG90eXBlLHtfX2NsYXNzX186TW9jaGlLaXQuVmlzdWFsLk1vdmUsX19pbml0X186ZnVuY3Rpb24oXzY4NCxfNjg1KXsKK3RoaXMuZWxlbWVudD1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfNjg0KTsKK182ODU9TW9jaGlLaXQuQmFzZS51cGRhdGUoe3g6MCx5OjAsbW9kZToicmVsYXRpdmUifSxfNjg1KTsKK3RoaXMuc3RhcnQoXzY4NSk7Cit9LHNldHVwOmZ1bmN0aW9uKCl7CitNb2NoaUtpdC5TdHlsZS5tYWtlUG9zaXRpb25lZCh0aGlzLmVsZW1lbnQpOwordmFyIHM9dGhpcy5lbGVtZW50LnN0eWxlOwordmFyIF82ODc9cy52aXNpYmlsaXR5OwordmFyIF82ODg9cy5kaXNwbGF5OworaWYoXzY4OD09Im5vbmUiKXsKK3MudmlzaWJpbGl0eT0iaGlkZGVuIjsKK3MuZGlzcGxheT0iIjsKK30KK3RoaXMub3JpZ2luYWxMZWZ0PXBhcnNlRmxvYXQoTW9jaGlLaXQuU3R5bGUuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCJsZWZ0Iil8fCIwIik7Cit0aGlzLm9yaWdpbmFsVG9wPXBhcnNlRmxvYXQoTW9jaGlLaXQuU3R5bGUuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCJ0b3AiKXx8IjAiKTsKK2lmKHRoaXMub3B0aW9ucy5tb2RlPT0iYWJzb2x1dGUiKXsKK3RoaXMub3B0aW9ucy54LT10aGlzLm9yaWdpbmFsTGVmdDsKK3RoaXMub3B0aW9ucy55LT10aGlzLm9yaWdpbmFsVG9wOworfQoraWYoXzY4OD09Im5vbmUiKXsKK3MudmlzaWJpbGl0eT1fNjg3Oworcy5kaXNwbGF5PV82ODg7Cit9Cit9LHVwZGF0ZTpmdW5jdGlvbihfNjg5KXsKK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKHRoaXMuZWxlbWVudCx7bGVmdDpNYXRoLnJvdW5kKHRoaXMub3B0aW9ucy54Kl82ODkrdGhpcy5vcmlnaW5hbExlZnQpKyJweCIsdG9wOk1hdGgucm91bmQodGhpcy5vcHRpb25zLnkqXzY4OSt0aGlzLm9yaWdpbmFsVG9wKSsicHgifSk7Cit9fSk7CitNb2NoaUtpdC5WaXN1YWwuU2NhbGU9ZnVuY3Rpb24oXzY4YSxfNjhiLF82OGMpewordmFyIGNscz1hcmd1bWVudHMuY2FsbGVlOworaWYoISh0aGlzIGluc3RhbmNlb2YgY2xzKSl7CityZXR1cm4gbmV3IGNscyhfNjhhLF82OGIsXzY4Yyk7Cit9Cit0aGlzLl9faW5pdF9fKF82OGEsXzY4YixfNjhjKTsKK307CitNb2NoaUtpdC5WaXN1YWwuU2NhbGUucHJvdG90eXBlPW5ldyBNb2NoaUtpdC5WaXN1YWwuQmFzZSgpOworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuVmlzdWFsLlNjYWxlLnByb3RvdHlwZSx7X19jbGFzc19fOk1vY2hpS2l0LlZpc3VhbC5TY2FsZSxfX2luaXRfXzpmdW5jdGlvbihfNjhlLF82OGYsXzY5MCl7Cit0aGlzLmVsZW1lbnQ9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzY4ZSk7CitfNjkwPU1vY2hpS2l0LkJhc2UudXBkYXRlKHtzY2FsZVg6dHJ1ZSxzY2FsZVk6dHJ1ZSxzY2FsZUNvbnRlbnQ6dHJ1ZSxzY2FsZUZyb21DZW50ZXI6ZmFsc2Usc2NhbGVNb2RlOiJib3giLHNjYWxlRnJvbToxMDAsc2NhbGVUbzpfNjhmfSxfNjkwKTsKK3RoaXMuc3RhcnQoXzY5MCk7Cit9LHNldHVwOmZ1bmN0aW9uKCl7Cit0aGlzLnJlc3RvcmVBZnRlckZpbmlzaD10aGlzLm9wdGlvbnMucmVzdG9yZUFmdGVyRmluaXNofHxmYWxzZTsKK3RoaXMuZWxlbWVudFBvc2l0aW9uaW5nPU1vY2hpS2l0LlN0eWxlLmdldFN0eWxlKHRoaXMuZWxlbWVudCwicG9zaXRpb24iKTsKK3ZhciBtYT1Nb2NoaUtpdC5CYXNlLm1hcDsKK3ZhciBiPU1vY2hpS2l0LkJhc2UuYmluZDsKK3RoaXMub3JpZ2luYWxTdHlsZT17fTsKK21hKGIoZnVuY3Rpb24oayl7Cit0aGlzLm9yaWdpbmFsU3R5bGVba109dGhpcy5lbGVtZW50LnN0eWxlW2tdOworfSx0aGlzKSxbInRvcCIsImxlZnQiLCJ3aWR0aCIsImhlaWdodCIsImZvbnRTaXplIl0pOwordGhpcy5vcmlnaW5hbFRvcD10aGlzLmVsZW1lbnQub2Zmc2V0VG9wOwordGhpcy5vcmlnaW5hbExlZnQ9dGhpcy5lbGVtZW50Lm9mZnNldExlZnQ7Cit2YXIgXzY5ND1Nb2NoaUtpdC5TdHlsZS5nZXRTdHlsZSh0aGlzLmVsZW1lbnQsImZvbnQtc2l6ZSIpfHwiMTAwJSI7CittYShiKGZ1bmN0aW9uKF82OTUpeworaWYoXzY5NC5pbmRleE9mKF82OTUpPjApewordGhpcy5mb250U2l6ZT1wYXJzZUZsb2F0KF82OTQpOwordGhpcy5mb250U2l6ZVR5cGU9XzY5NTsKK30KK30sdGhpcyksWyJlbSIsInB4IiwiJSJdKTsKK3RoaXMuZmFjdG9yPSh0aGlzLm9wdGlvbnMuc2NhbGVUby10aGlzLm9wdGlvbnMuc2NhbGVGcm9tKS8xMDA7CitpZigvXmNvbnRlbnQvLnRlc3QodGhpcy5vcHRpb25zLnNjYWxlTW9kZSkpewordGhpcy5kaW1zPVt0aGlzLmVsZW1lbnQuc2Nyb2xsSGVpZ2h0LHRoaXMuZWxlbWVudC5zY3JvbGxXaWR0aF07Cit9ZWxzZXsKK2lmKHRoaXMub3B0aW9ucy5zY2FsZU1vZGU9PSJib3giKXsKK3RoaXMuZGltcz1bdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodCx0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGhdOworfWVsc2V7Cit0aGlzLmRpbXM9W3RoaXMub3B0aW9ucy5zY2FsZU1vZGUub3JpZ2luYWxIZWlnaHQsdGhpcy5vcHRpb25zLnNjYWxlTW9kZS5vcmlnaW5hbFdpZHRoXTsKK30KK30KK30sdXBkYXRlOmZ1bmN0aW9uKF82OTYpewordmFyIF82OTc9KHRoaXMub3B0aW9ucy5zY2FsZUZyb20vMTAwKSsodGhpcy5mYWN0b3IqXzY5Nik7CitpZih0aGlzLm9wdGlvbnMuc2NhbGVDb250ZW50JiZ0aGlzLmZvbnRTaXplKXsKK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKHRoaXMuZWxlbWVudCx7Zm9udFNpemU6dGhpcy5mb250U2l6ZSpfNjk3K3RoaXMuZm9udFNpemVUeXBlfSk7Cit9Cit0aGlzLnNldERpbWVuc2lvbnModGhpcy5kaW1zWzBdKl82OTcsdGhpcy5kaW1zWzFdKl82OTcpOworfSxmaW5pc2g6ZnVuY3Rpb24oKXsKK2lmKHRoaXMucmVzdG9yZUFmdGVyRmluaXNoKXsKK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKHRoaXMuZWxlbWVudCx0aGlzLm9yaWdpbmFsU3R5bGUpOworfQorfSxzZXREaW1lbnNpb25zOmZ1bmN0aW9uKF82OTgsXzY5OSl7Cit2YXIgZD17fTsKK3ZhciByPU1hdGgucm91bmQ7CitpZigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7CityPU1hdGguY2VpbDsKK30KK2lmKHRoaXMub3B0aW9ucy5zY2FsZVgpeworZC53aWR0aD1yKF82OTkpKyJweCI7Cit9CitpZih0aGlzLm9wdGlvbnMuc2NhbGVZKXsKK2QuaGVpZ2h0PXIoXzY5OCkrInB4IjsKK30KK2lmKHRoaXMub3B0aW9ucy5zY2FsZUZyb21DZW50ZXIpewordmFyIHRvcGQ9KF82OTgtdGhpcy5kaW1zWzBdKS8yOwordmFyIF82OWQ9KF82OTktdGhpcy5kaW1zWzFdKS8yOworaWYodGhpcy5lbGVtZW50UG9zaXRpb25pbmc9PSJhYnNvbHV0ZSIpeworaWYodGhpcy5vcHRpb25zLnNjYWxlWSl7CitkLnRvcD10aGlzLm9yaWdpbmFsVG9wLXRvcGQrInB4IjsKK30KK2lmKHRoaXMub3B0aW9ucy5zY2FsZVgpeworZC5sZWZ0PXRoaXMub3JpZ2luYWxMZWZ0LV82OWQrInB4IjsKK30KK31lbHNleworaWYodGhpcy5vcHRpb25zLnNjYWxlWSl7CitkLnRvcD0tdG9wZCsicHgiOworfQoraWYodGhpcy5vcHRpb25zLnNjYWxlWCl7CitkLmxlZnQ9LV82OWQrInB4IjsKK30KK30KK30KK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKHRoaXMuZWxlbWVudCxkKTsKK319KTsKK01vY2hpS2l0LlZpc3VhbC5IaWdobGlnaHQ9ZnVuY3Rpb24oXzY5ZSxfNjlmKXsKK3ZhciBjbHM9YXJndW1lbnRzLmNhbGxlZTsKK2lmKCEodGhpcyBpbnN0YW5jZW9mIGNscykpeworcmV0dXJuIG5ldyBjbHMoXzY5ZSxfNjlmKTsKK30KK3RoaXMuX19pbml0X18oXzY5ZSxfNjlmKTsKK307CitNb2NoaUtpdC5WaXN1YWwuSGlnaGxpZ2h0LnByb3RvdHlwZT1uZXcgTW9jaGlLaXQuVmlzdWFsLkJhc2UoKTsKK01vY2hpS2l0LkJhc2UudXBkYXRlKE1vY2hpS2l0LlZpc3VhbC5IaWdobGlnaHQucHJvdG90eXBlLHtfX2NsYXNzX186TW9jaGlLaXQuVmlzdWFsLkhpZ2hsaWdodCxfX2luaXRfXzpmdW5jdGlvbihfNmExLF82YTIpewordGhpcy5lbGVtZW50PU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KF82YTEpOworXzZhMj1Nb2NoaUtpdC5CYXNlLnVwZGF0ZSh7c3RhcnRjb2xvcjoiI2ZmZmY5OSJ9LF82YTIpOwordGhpcy5zdGFydChfNmEyKTsKK30sc2V0dXA6ZnVuY3Rpb24oKXsKK3ZhciBiPU1vY2hpS2l0LkJhc2U7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK2lmKHMuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCJkaXNwbGF5Iik9PSJub25lIil7Cit0aGlzLmNhbmNlbCgpOworcmV0dXJuOworfQordGhpcy5vbGRTdHlsZT17YmFja2dyb3VuZEltYWdlOnMuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCJiYWNrZ3JvdW5kLWltYWdlIil9Oworcy5zZXRTdHlsZSh0aGlzLmVsZW1lbnQse2JhY2tncm91bmRJbWFnZToibm9uZSJ9KTsKK2lmKCF0aGlzLm9wdGlvbnMuZW5kY29sb3IpewordGhpcy5vcHRpb25zLmVuZGNvbG9yPU1vY2hpS2l0LkNvbG9yLkNvbG9yLmZyb21CYWNrZ3JvdW5kKHRoaXMuZWxlbWVudCkudG9IZXhTdHJpbmcoKTsKK30KK2lmKGIuaXNVbmRlZmluZWRPck51bGwodGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvcikpewordGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvcj1zLmdldFN0eWxlKHRoaXMuZWxlbWVudCwiYmFja2dyb3VuZC1jb2xvciIpOworfQordGhpcy5fYmFzZT1iLm1hcChiLmJpbmQoZnVuY3Rpb24oaSl7CityZXR1cm4gcGFyc2VJbnQodGhpcy5vcHRpb25zLnN0YXJ0Y29sb3Iuc2xpY2UoaSoyKzEsaSoyKzMpLDE2KTsKK30sdGhpcyksWzAsMSwyXSk7Cit0aGlzLl9kZWx0YT1iLm1hcChiLmJpbmQoZnVuY3Rpb24oaSl7CityZXR1cm4gcGFyc2VJbnQodGhpcy5vcHRpb25zLmVuZGNvbG9yLnNsaWNlKGkqMisxLGkqMiszKSwxNiktdGhpcy5fYmFzZVtpXTsKK30sdGhpcyksWzAsMSwyXSk7Cit9LHVwZGF0ZTpmdW5jdGlvbihfNmE3KXsKK3ZhciBtPSIjIjsKK01vY2hpS2l0LkJhc2UubWFwKE1vY2hpS2l0LkJhc2UuYmluZChmdW5jdGlvbihpKXsKK20rPU1vY2hpS2l0LkNvbG9yLnRvQ29sb3JQYXJ0KE1hdGgucm91bmQodGhpcy5fYmFzZVtpXSt0aGlzLl9kZWx0YVtpXSpfNmE3KSk7Cit9LHRoaXMpLFswLDEsMl0pOworTW9jaGlLaXQuU3R5bGUuc2V0U3R5bGUodGhpcy5lbGVtZW50LHtiYWNrZ3JvdW5kQ29sb3I6bX0pOworfSxmaW5pc2g6ZnVuY3Rpb24oKXsKK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKHRoaXMuZWxlbWVudCxNb2NoaUtpdC5CYXNlLnVwZGF0ZSh0aGlzLm9sZFN0eWxlLHtiYWNrZ3JvdW5kQ29sb3I6dGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvcn0pKTsKK319KTsKK01vY2hpS2l0LlZpc3VhbC5TY3JvbGxUbz1mdW5jdGlvbihfNmFhLF82YWIpewordmFyIGNscz1hcmd1bWVudHMuY2FsbGVlOworaWYoISh0aGlzIGluc3RhbmNlb2YgY2xzKSl7CityZXR1cm4gbmV3IGNscyhfNmFhLF82YWIpOworfQordGhpcy5fX2luaXRfXyhfNmFhLF82YWIpOworfTsKK01vY2hpS2l0LlZpc3VhbC5TY3JvbGxUby5wcm90b3R5cGU9bmV3IE1vY2hpS2l0LlZpc3VhbC5CYXNlKCk7CitNb2NoaUtpdC5CYXNlLnVwZGF0ZShNb2NoaUtpdC5WaXN1YWwuU2Nyb2xsVG8ucHJvdG90eXBlLHtfX2NsYXNzX186TW9jaGlLaXQuVmlzdWFsLlNjcm9sbFRvLF9faW5pdF9fOmZ1bmN0aW9uKF82YWQsXzZhZSl7Cit0aGlzLmVsZW1lbnQ9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzZhZCk7Cit0aGlzLnN0YXJ0KF82YWUpOworfSxzZXR1cDpmdW5jdGlvbigpewordmFyIHA9TW9jaGlLaXQuUG9zaXRpb247CitwLnByZXBhcmUoKTsKK3ZhciBfNmIwPXAuY3VtdWxhdGl2ZU9mZnNldCh0aGlzLmVsZW1lbnQpOworaWYodGhpcy5vcHRpb25zLm9mZnNldCl7CitfNmIwLnkrPXRoaXMub3B0aW9ucy5vZmZzZXQ7Cit9Cit2YXIgbWF4OworaWYod2luZG93LmlubmVySGVpZ2h0KXsKK21heD13aW5kb3cuaW5uZXJIZWlnaHQtd2luZG93LmhlaWdodDsKK31lbHNleworaWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KXsKK21heD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LWRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0OworfWVsc2V7CitpZihkb2N1bWVudC5ib2R5KXsKK21heD1kb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodC1kb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodDsKK30KK30KK30KK3RoaXMuc2Nyb2xsU3RhcnQ9cC53aW5kb3dPZmZzZXQueTsKK3RoaXMuZGVsdGE9KF82YjAueT5tYXg/bWF4Ol82YjAueSktdGhpcy5zY3JvbGxTdGFydDsKK30sdXBkYXRlOmZ1bmN0aW9uKF82YjIpewordmFyIHA9TW9jaGlLaXQuUG9zaXRpb247CitwLnByZXBhcmUoKTsKK3dpbmRvdy5zY3JvbGxUbyhwLndpbmRvd09mZnNldC54LHRoaXMuc2Nyb2xsU3RhcnQrKF82YjIqdGhpcy5kZWx0YSkpOworfX0pOworTW9jaGlLaXQuVmlzdWFsLkNTU19MRU5HVEg9L14oKFtcK1wtXT9bMC05XC5dKykoZW18ZXh8cHh8aW58Y218bW18cHR8cGN8XCUpKXwwJC87CitNb2NoaUtpdC5WaXN1YWwuTW9ycGg9ZnVuY3Rpb24oXzZiNCxfNmI1KXsKK3ZhciBjbHM9YXJndW1lbnRzLmNhbGxlZTsKK2lmKCEodGhpcyBpbnN0YW5jZW9mIGNscykpeworcmV0dXJuIG5ldyBjbHMoXzZiNCxfNmI1KTsKK30KK3RoaXMuX19pbml0X18oXzZiNCxfNmI1KTsKK307CitNb2NoaUtpdC5WaXN1YWwuTW9ycGgucHJvdG90eXBlPW5ldyBNb2NoaUtpdC5WaXN1YWwuQmFzZSgpOworTW9jaGlLaXQuQmFzZS51cGRhdGUoTW9jaGlLaXQuVmlzdWFsLk1vcnBoLnByb3RvdHlwZSx7X19jbGFzc19fOk1vY2hpS2l0LlZpc3VhbC5Nb3JwaCxfX2luaXRfXzpmdW5jdGlvbihfNmI3LF82YjgpewordGhpcy5lbGVtZW50PU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KF82YjcpOwordGhpcy5zdGFydChfNmI4KTsKK30sc2V0dXA6ZnVuY3Rpb24oKXsKK3ZhciBiPU1vY2hpS2l0LkJhc2U7Cit2YXIgXzZiYT10aGlzLm9wdGlvbnMuc3R5bGU7Cit0aGlzLnN0eWxlU3RhcnQ9e307Cit0aGlzLnN0eWxlRW5kPXt9OwordGhpcy51bml0cz17fTsKK3ZhciBfNmJiLHVuaXQ7Citmb3IodmFyIHMgaW4gXzZiYSl7CitfNmJiPV82YmFbc107CitzPWIuY2FtZWxpemUocyk7CitpZihNb2NoaUtpdC5WaXN1YWwuQ1NTX0xFTkdUSC50ZXN0KF82YmIpKXsKK3ZhciBfNmJlPV82YmIubWF0Y2goL14oW1wrXC1dP1swLTlcLl0rKSguKikkLyk7CitfNmJiPXBhcnNlRmxvYXQoXzZiZVsxXSk7Cit1bml0PShfNmJlLmxlbmd0aD09Myk/XzZiZVsyXTpudWxsOwordGhpcy5zdHlsZUVuZFtzXT1fNmJiOwordGhpcy51bml0c1tzXT11bml0OworXzZiYj1Nb2NoaUtpdC5TdHlsZS5nZXRTdHlsZSh0aGlzLmVsZW1lbnQscyk7CitfNmJlPV82YmIubWF0Y2goL14oW1wrXC1dP1swLTlcLl0rKSguKikkLyk7CitfNmJiPXBhcnNlRmxvYXQoXzZiZVsxXSk7Cit0aGlzLnN0eWxlU3RhcnRbc109XzZiYjsKK31lbHNleworaWYoL1tDY11vbG9yJC8udGVzdChzKSl7Cit2YXIgYz1Nb2NoaUtpdC5Db2xvci5Db2xvcjsKK182YmI9Yy5mcm9tU3RyaW5nKF82YmIpOworaWYoXzZiYil7Cit0aGlzLnVuaXRzW3NdPSJjb2xvciI7Cit0aGlzLnN0eWxlRW5kW3NdPV82YmIudG9IZXhTdHJpbmcoKTsKK182YmI9TW9jaGlLaXQuU3R5bGUuZ2V0U3R5bGUodGhpcy5lbGVtZW50LHMpOwordGhpcy5zdHlsZVN0YXJ0W3NdPWMuZnJvbVN0cmluZyhfNmJiKS50b0hleFN0cmluZygpOwordGhpcy5zdHlsZVN0YXJ0W3NdPWIubWFwKGIuYmluZChmdW5jdGlvbihpKXsKK3JldHVybiBwYXJzZUludCh0aGlzLnN0eWxlU3RhcnRbc10uc2xpY2UoaSoyKzEsaSoyKzMpLDE2KTsKK30sdGhpcyksWzAsMSwyXSk7Cit0aGlzLnN0eWxlRW5kW3NdPWIubWFwKGIuYmluZChmdW5jdGlvbihpKXsKK3JldHVybiBwYXJzZUludCh0aGlzLnN0eWxlRW5kW3NdLnNsaWNlKGkqMisxLGkqMiszKSwxNik7Cit9LHRoaXMpLFswLDEsMl0pOworfQorfWVsc2V7Cit0aGlzLmVsZW1lbnQuc3R5bGVbc109XzZiYjsKK30KK30KK30KK30sdXBkYXRlOmZ1bmN0aW9uKF82YzIpewordmFyIF82YzM7Citmb3IodmFyIHMgaW4gdGhpcy5zdHlsZVN0YXJ0KXsKK2lmKHRoaXMudW5pdHNbc109PSJjb2xvciIpewordmFyIG09IiMiOwordmFyIF82YzY9dGhpcy5zdHlsZVN0YXJ0W3NdOwordmFyIGVuZD10aGlzLnN0eWxlRW5kW3NdOworTW9jaGlLaXQuQmFzZS5tYXAoTW9jaGlLaXQuQmFzZS5iaW5kKGZ1bmN0aW9uKGkpeworbSs9TW9jaGlLaXQuQ29sb3IudG9Db2xvclBhcnQoTWF0aC5yb3VuZChfNmM2W2ldKyhlbmRbaV0tXzZjNltpXSkqXzZjMikpOworfSx0aGlzKSxbMCwxLDJdKTsKK3RoaXMuZWxlbWVudC5zdHlsZVtzXT1tOworfWVsc2V7CitfNmMzPXRoaXMuc3R5bGVTdGFydFtzXStNYXRoLnJvdW5kKCh0aGlzLnN0eWxlRW5kW3NdLXRoaXMuc3R5bGVTdGFydFtzXSkqXzZjMioxMDAwKS8xMDAwK3RoaXMudW5pdHNbc107Cit0aGlzLmVsZW1lbnQuc3R5bGVbc109XzZjMzsKK30KK30KK319KTsKK01vY2hpS2l0LlZpc3VhbC5mYWRlPWZ1bmN0aW9uKF82YzksXzZjYSl7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK3ZhciBfNmNjPXMuZ2V0U3R5bGUoXzZjOSwib3BhY2l0eSIpOworXzZjYT1Nb2NoaUtpdC5CYXNlLnVwZGF0ZSh7ZnJvbTpzLmdldFN0eWxlKF82YzksIm9wYWNpdHkiKXx8MSx0bzowLGFmdGVyRmluaXNoSW50ZXJuYWw6ZnVuY3Rpb24oXzZjZCl7CitpZihfNmNkLm9wdGlvbnMudG8hPT0wKXsKK3JldHVybjsKK30KK3MuaGlkZUVsZW1lbnQoXzZjZC5lbGVtZW50KTsKK3Muc2V0U3R5bGUoXzZjZC5lbGVtZW50LHsib3BhY2l0eSI6XzZjY30pOworfX0sXzZjYSk7CityZXR1cm4gbmV3IE1vY2hpS2l0LlZpc3VhbC5PcGFjaXR5KF82YzksXzZjYSk7Cit9OworTW9jaGlLaXQuVmlzdWFsLmFwcGVhcj1mdW5jdGlvbihfNmNlLF82Y2YpewordmFyIHM9TW9jaGlLaXQuU3R5bGU7Cit2YXIgdj1Nb2NoaUtpdC5WaXN1YWw7CitfNmNmPU1vY2hpS2l0LkJhc2UudXBkYXRlKHtmcm9tOihzLmdldFN0eWxlKF82Y2UsImRpc3BsYXkiKT09Im5vbmUiPzA6cy5nZXRTdHlsZShfNmNlLCJvcGFjaXR5Iil8fDApLHRvOjEsYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihfNmQyKXsKK3YuZm9yY2VSZXJlbmRlcmluZyhfNmQyLmVsZW1lbnQpOworfSxiZWZvcmVTZXR1cEludGVybmFsOmZ1bmN0aW9uKF82ZDMpeworcy5zZXRTdHlsZShfNmQzLmVsZW1lbnQseyJvcGFjaXR5IjpfNmQzLm9wdGlvbnMuZnJvbX0pOworcy5zaG93RWxlbWVudChfNmQzLmVsZW1lbnQpOworfX0sXzZjZik7CityZXR1cm4gbmV3IHYuT3BhY2l0eShfNmNlLF82Y2YpOworfTsKK01vY2hpS2l0LlZpc3VhbC5wdWZmPWZ1bmN0aW9uKF82ZDQsXzZkNSl7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK3ZhciB2PU1vY2hpS2l0LlZpc3VhbDsKK182ZDQ9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzZkNCk7Cit2YXIgXzZkOD1Nb2NoaUtpdC5TdHlsZS5nZXRFbGVtZW50RGltZW5zaW9ucyhfNmQ0LHRydWUpOwordmFyIF82ZDk9e3Bvc2l0aW9uOnMuZ2V0U3R5bGUoXzZkNCwicG9zaXRpb24iKSx0b3A6XzZkNC5zdHlsZS50b3AsbGVmdDpfNmQ0LnN0eWxlLmxlZnQsd2lkdGg6XzZkNC5zdHlsZS53aWR0aCxoZWlnaHQ6XzZkNC5zdHlsZS5oZWlnaHQsb3BhY2l0eTpzLmdldFN0eWxlKF82ZDQsIm9wYWNpdHkiKX07CitfNmQ1PU1vY2hpS2l0LkJhc2UudXBkYXRlKHtiZWZvcmVTZXR1cEludGVybmFsOmZ1bmN0aW9uKF82ZGEpeworTW9jaGlLaXQuUG9zaXRpb24uYWJzb2x1dGl6ZShfNmRhLmVmZmVjdHNbMF0uZWxlbWVudCk7Cit9LGFmdGVyRmluaXNoSW50ZXJuYWw6ZnVuY3Rpb24oXzZkYil7CitzLmhpZGVFbGVtZW50KF82ZGIuZWZmZWN0c1swXS5lbGVtZW50KTsKK3Muc2V0U3R5bGUoXzZkYi5lZmZlY3RzWzBdLmVsZW1lbnQsXzZkOSk7Cit9LHNjYWxlQ29udGVudDp0cnVlLHNjYWxlRnJvbUNlbnRlcjp0cnVlfSxfNmQ1KTsKK3JldHVybiBuZXcgdi5QYXJhbGxlbChbbmV3IHYuU2NhbGUoXzZkNCwyMDAse3N5bmM6dHJ1ZSxzY2FsZUZyb21DZW50ZXI6XzZkNS5zY2FsZUZyb21DZW50ZXIsc2NhbGVNb2RlOntvcmlnaW5hbEhlaWdodDpfNmQ4Lmgsb3JpZ2luYWxXaWR0aDpfNmQ4Lnd9LHNjYWxlQ29udGVudDpfNmQ1LnNjYWxlQ29udGVudCxyZXN0b3JlQWZ0ZXJGaW5pc2g6dHJ1ZX0pLG5ldyB2Lk9wYWNpdHkoXzZkNCx7c3luYzp0cnVlLHRvOjB9KV0sXzZkNSk7Cit9OworTW9jaGlLaXQuVmlzdWFsLmJsaW5kVXA9ZnVuY3Rpb24oXzZkYyxfNmRkKXsKK3ZhciBkPU1vY2hpS2l0LkRPTTsKK3ZhciBzPU1vY2hpS2l0LlN0eWxlOworXzZkYz1kLmdldEVsZW1lbnQoXzZkYyk7Cit2YXIgXzZlMD1zLmdldEVsZW1lbnREaW1lbnNpb25zKF82ZGMsdHJ1ZSk7Cit2YXIgXzZlMT1zLm1ha2VDbGlwcGluZyhfNmRjKTsKK182ZGQ9TW9jaGlLaXQuQmFzZS51cGRhdGUoe3NjYWxlQ29udGVudDpmYWxzZSxzY2FsZVg6ZmFsc2Usc2NhbGVNb2RlOntvcmlnaW5hbEhlaWdodDpfNmUwLmgsb3JpZ2luYWxXaWR0aDpfNmUwLnd9LHJlc3RvcmVBZnRlckZpbmlzaDp0cnVlLGFmdGVyRmluaXNoSW50ZXJuYWw6ZnVuY3Rpb24oXzZlMil7CitzLmhpZGVFbGVtZW50KF82ZTIuZWxlbWVudCk7CitzLnVuZG9DbGlwcGluZyhfNmUyLmVsZW1lbnQsXzZlMSk7Cit9fSxfNmRkKTsKK3JldHVybiBuZXcgTW9jaGlLaXQuVmlzdWFsLlNjYWxlKF82ZGMsMCxfNmRkKTsKK307CitNb2NoaUtpdC5WaXN1YWwuYmxpbmREb3duPWZ1bmN0aW9uKF82ZTMsXzZlNCl7Cit2YXIgZD1Nb2NoaUtpdC5ET007Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK182ZTM9ZC5nZXRFbGVtZW50KF82ZTMpOwordmFyIF82ZTc9cy5nZXRFbGVtZW50RGltZW5zaW9ucyhfNmUzLHRydWUpOwordmFyIF82ZTg7CitfNmU0PU1vY2hpS2l0LkJhc2UudXBkYXRlKHtzY2FsZUNvbnRlbnQ6ZmFsc2Usc2NhbGVYOmZhbHNlLHNjYWxlRnJvbTowLHNjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6XzZlNy5oLG9yaWdpbmFsV2lkdGg6XzZlNy53fSxyZXN0b3JlQWZ0ZXJGaW5pc2g6dHJ1ZSxhZnRlclNldHVwSW50ZXJuYWw6ZnVuY3Rpb24oXzZlOSl7CitfNmU4PXMubWFrZUNsaXBwaW5nKF82ZTkuZWxlbWVudCk7CitzLnNldFN0eWxlKF82ZTkuZWxlbWVudCx7aGVpZ2h0OiIwcHgifSk7CitzLnNob3dFbGVtZW50KF82ZTkuZWxlbWVudCk7Cit9LGFmdGVyRmluaXNoSW50ZXJuYWw6ZnVuY3Rpb24oXzZlYSl7CitzLnVuZG9DbGlwcGluZyhfNmVhLmVsZW1lbnQsXzZlOCk7Cit9fSxfNmU0KTsKK3JldHVybiBuZXcgTW9jaGlLaXQuVmlzdWFsLlNjYWxlKF82ZTMsMTAwLF82ZTQpOworfTsKK01vY2hpS2l0LlZpc3VhbC5zd2l0Y2hPZmY9ZnVuY3Rpb24oXzZlYixfNmVjKXsKK3ZhciBkPU1vY2hpS2l0LkRPTTsKK3ZhciBzPU1vY2hpS2l0LlN0eWxlOworXzZlYj1kLmdldEVsZW1lbnQoXzZlYik7Cit2YXIgXzZlZj1zLmdldEVsZW1lbnREaW1lbnNpb25zKF82ZWIsdHJ1ZSk7Cit2YXIgXzZmMD1zLmdldFN0eWxlKF82ZWIsIm9wYWNpdHkiKTsKK3ZhciBfNmYxOworXzZlYz1Nb2NoaUtpdC5CYXNlLnVwZGF0ZSh7ZHVyYXRpb246MC43LHJlc3RvcmVBZnRlckZpbmlzaDp0cnVlLGJlZm9yZVNldHVwSW50ZXJuYWw6ZnVuY3Rpb24oXzZmMil7CitzLm1ha2VQb3NpdGlvbmVkKF82ZWIpOworXzZmMT1zLm1ha2VDbGlwcGluZyhfNmViKTsKK30sYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihfNmYzKXsKK3MuaGlkZUVsZW1lbnQoXzZlYik7CitzLnVuZG9DbGlwcGluZyhfNmViLF82ZjEpOworcy51bmRvUG9zaXRpb25lZChfNmViKTsKK3Muc2V0U3R5bGUoXzZlYix7Im9wYWNpdHkiOl82ZjB9KTsKK319LF82ZWMpOwordmFyIHY9TW9jaGlLaXQuVmlzdWFsOworcmV0dXJuIG5ldyB2LlNlcXVlbmNlKFtuZXcgdi5hcHBlYXIoXzZlYix7c3luYzp0cnVlLGR1cmF0aW9uOjAuNTcqXzZlYy5kdXJhdGlvbixmcm9tOjAsdHJhbnNpdGlvbjp2LlRyYW5zaXRpb25zLmZsaWNrZXJ9KSxuZXcgdi5TY2FsZShfNmViLDEse3N5bmM6dHJ1ZSxkdXJhdGlvbjowLjQzKl82ZWMuZHVyYXRpb24sc2NhbGVGcm9tQ2VudGVyOnRydWUsc2NhbGVYOmZhbHNlLHNjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6XzZlZi5oLG9yaWdpbmFsV2lkdGg6XzZlZi53fSxzY2FsZUNvbnRlbnQ6ZmFsc2UscmVzdG9yZUFmdGVyRmluaXNoOnRydWV9KV0sXzZlYyk7Cit9OworTW9jaGlLaXQuVmlzdWFsLmRyb3BPdXQ9ZnVuY3Rpb24oXzZmNSxfNmY2KXsKK3ZhciBkPU1vY2hpS2l0LkRPTTsKK3ZhciBzPU1vY2hpS2l0LlN0eWxlOworXzZmNT1kLmdldEVsZW1lbnQoXzZmNSk7Cit2YXIgXzZmOT17dG9wOnMuZ2V0U3R5bGUoXzZmNSwidG9wIiksbGVmdDpzLmdldFN0eWxlKF82ZjUsImxlZnQiKSxvcGFjaXR5OnMuZ2V0U3R5bGUoXzZmNSwib3BhY2l0eSIpfTsKK182ZjY9TW9jaGlLaXQuQmFzZS51cGRhdGUoe2R1cmF0aW9uOjAuNSxkaXN0YW5jZToxMDAsYmVmb3JlU2V0dXBJbnRlcm5hbDpmdW5jdGlvbihfNmZhKXsKK3MubWFrZVBvc2l0aW9uZWQoXzZmYS5lZmZlY3RzWzBdLmVsZW1lbnQpOworfSxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKF82ZmIpeworcy5oaWRlRWxlbWVudChfNmZiLmVmZmVjdHNbMF0uZWxlbWVudCk7CitzLnVuZG9Qb3NpdGlvbmVkKF82ZmIuZWZmZWN0c1swXS5lbGVtZW50KTsKK3Muc2V0U3R5bGUoXzZmYi5lZmZlY3RzWzBdLmVsZW1lbnQsXzZmOSk7Cit9fSxfNmY2KTsKK3ZhciB2PU1vY2hpS2l0LlZpc3VhbDsKK3JldHVybiBuZXcgdi5QYXJhbGxlbChbbmV3IHYuTW92ZShfNmY1LHt4OjAseTpfNmY2LmRpc3RhbmNlLHN5bmM6dHJ1ZX0pLG5ldyB2Lk9wYWNpdHkoXzZmNSx7c3luYzp0cnVlLHRvOjB9KV0sXzZmNik7Cit9OworTW9jaGlLaXQuVmlzdWFsLnNoYWtlPWZ1bmN0aW9uKF82ZmQsXzZmZSl7Cit2YXIgZD1Nb2NoaUtpdC5ET007Cit2YXIgdj1Nb2NoaUtpdC5WaXN1YWw7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK182ZmQ9ZC5nZXRFbGVtZW50KF82ZmQpOwordmFyIF83MDI9e3RvcDpzLmdldFN0eWxlKF82ZmQsInRvcCIpLGxlZnQ6cy5nZXRTdHlsZShfNmZkLCJsZWZ0Iil9OworXzZmZT1Nb2NoaUtpdC5CYXNlLnVwZGF0ZSh7ZHVyYXRpb246MC41LGFmdGVyRmluaXNoSW50ZXJuYWw6ZnVuY3Rpb24oXzcwMyl7CitzLnVuZG9Qb3NpdGlvbmVkKF82ZmQpOworcy5zZXRTdHlsZShfNmZkLF83MDIpOworfX0sXzZmZSk7CityZXR1cm4gbmV3IHYuU2VxdWVuY2UoW25ldyB2Lk1vdmUoXzZmZCx7c3luYzp0cnVlLGR1cmF0aW9uOjAuMSpfNmZlLmR1cmF0aW9uLHg6MjAseTowfSksbmV3IHYuTW92ZShfNmZkLHtzeW5jOnRydWUsZHVyYXRpb246MC4yKl82ZmUuZHVyYXRpb24seDotNDAseTowfSksbmV3IHYuTW92ZShfNmZkLHtzeW5jOnRydWUsZHVyYXRpb246MC4yKl82ZmUuZHVyYXRpb24seDo0MCx5OjB9KSxuZXcgdi5Nb3ZlKF82ZmQse3N5bmM6dHJ1ZSxkdXJhdGlvbjowLjIqXzZmZS5kdXJhdGlvbix4Oi00MCx5OjB9KSxuZXcgdi5Nb3ZlKF82ZmQse3N5bmM6dHJ1ZSxkdXJhdGlvbjowLjIqXzZmZS5kdXJhdGlvbix4OjQwLHk6MH0pLG5ldyB2Lk1vdmUoXzZmZCx7c3luYzp0cnVlLGR1cmF0aW9uOjAuMSpfNmZlLmR1cmF0aW9uLHg6LTIwLHk6MH0pXSxfNmZlKTsKK307CitNb2NoaUtpdC5WaXN1YWwuc2xpZGVEb3duPWZ1bmN0aW9uKF83MDQsXzcwNSl7Cit2YXIgZD1Nb2NoaUtpdC5ET007Cit2YXIgYj1Nb2NoaUtpdC5CYXNlOwordmFyIHM9TW9jaGlLaXQuU3R5bGU7CitfNzA0PWQuZ2V0RWxlbWVudChfNzA0KTsKK2lmKCFfNzA0LmZpcnN0Q2hpbGQpewordGhyb3cgbmV3IEVycm9yKCJNb2NoaUtpdC5WaXN1YWwuc2xpZGVEb3duIG11c3QgYmUgdXNlZCBvbiBhIGVsZW1lbnQgd2l0aCBhIGNoaWxkIik7Cit9CitkLnJlbW92ZUVtcHR5VGV4dE5vZGVzKF83MDQpOwordmFyIF83MDk9cy5nZXRTdHlsZShfNzA0LmZpcnN0Q2hpbGQsImJvdHRvbSIpfHwwOwordmFyIF83MGE9cy5nZXRFbGVtZW50RGltZW5zaW9ucyhfNzA0LHRydWUpOwordmFyIF83MGI7CitfNzA1PWIudXBkYXRlKHtzY2FsZUNvbnRlbnQ6ZmFsc2Usc2NhbGVYOmZhbHNlLHNjYWxlRnJvbTowLHNjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6XzcwYS5oLG9yaWdpbmFsV2lkdGg6XzcwYS53fSxyZXN0b3JlQWZ0ZXJGaW5pc2g6dHJ1ZSxhZnRlclNldHVwSW50ZXJuYWw6ZnVuY3Rpb24oXzcwYyl7CitzLm1ha2VQb3NpdGlvbmVkKF83MGMuZWxlbWVudCk7CitzLm1ha2VQb3NpdGlvbmVkKF83MGMuZWxlbWVudC5maXJzdENoaWxkKTsKK2lmKC9PcGVyYS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7CitzLnNldFN0eWxlKF83MGMuZWxlbWVudCx7dG9wOiIifSk7Cit9CitfNzBiPXMubWFrZUNsaXBwaW5nKF83MGMuZWxlbWVudCk7CitzLnNldFN0eWxlKF83MGMuZWxlbWVudCx7aGVpZ2h0OiIwcHgifSk7CitzLnNob3dFbGVtZW50KF83MGMuZWxlbWVudCk7Cit9LGFmdGVyVXBkYXRlSW50ZXJuYWw6ZnVuY3Rpb24oXzcwZCl7Cit2YXIgXzcwZT1zLmdldEVsZW1lbnREaW1lbnNpb25zKF83MGQuZWxlbWVudCx0cnVlKTsKK3Muc2V0U3R5bGUoXzcwZC5lbGVtZW50LmZpcnN0Q2hpbGQse2JvdHRvbTooXzcwZC5kaW1zWzBdLV83MGUuaCkrInB4In0pOworfSxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKF83MGYpeworcy51bmRvQ2xpcHBpbmcoXzcwZi5lbGVtZW50LF83MGIpOworaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpeworcy51bmRvUG9zaXRpb25lZChfNzBmLmVsZW1lbnQpOworcy51bmRvUG9zaXRpb25lZChfNzBmLmVsZW1lbnQuZmlyc3RDaGlsZCk7Cit9ZWxzZXsKK3MudW5kb1Bvc2l0aW9uZWQoXzcwZi5lbGVtZW50LmZpcnN0Q2hpbGQpOworcy51bmRvUG9zaXRpb25lZChfNzBmLmVsZW1lbnQpOworfQorcy5zZXRTdHlsZShfNzBmLmVsZW1lbnQuZmlyc3RDaGlsZCx7Ym90dG9tOl83MDl9KTsKK319LF83MDUpOworcmV0dXJuIG5ldyBNb2NoaUtpdC5WaXN1YWwuU2NhbGUoXzcwNCwxMDAsXzcwNSk7Cit9OworTW9jaGlLaXQuVmlzdWFsLnNsaWRlVXA9ZnVuY3Rpb24oXzcxMCxfNzExKXsKK3ZhciBkPU1vY2hpS2l0LkRPTTsKK3ZhciBiPU1vY2hpS2l0LkJhc2U7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK183MTA9ZC5nZXRFbGVtZW50KF83MTApOworaWYoIV83MTAuZmlyc3RDaGlsZCl7Cit0aHJvdyBuZXcgRXJyb3IoIk1vY2hpS2l0LlZpc3VhbC5zbGlkZVVwIG11c3QgYmUgdXNlZCBvbiBhIGVsZW1lbnQgd2l0aCBhIGNoaWxkIik7Cit9CitkLnJlbW92ZUVtcHR5VGV4dE5vZGVzKF83MTApOwordmFyIF83MTU9cy5nZXRTdHlsZShfNzEwLmZpcnN0Q2hpbGQsImJvdHRvbSIpOwordmFyIF83MTY9cy5nZXRFbGVtZW50RGltZW5zaW9ucyhfNzEwLHRydWUpOwordmFyIF83MTc7CitfNzExPWIudXBkYXRlKHtzY2FsZUNvbnRlbnQ6ZmFsc2Usc2NhbGVYOmZhbHNlLHNjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6XzcxNi5oLG9yaWdpbmFsV2lkdGg6XzcxNi53fSxzY2FsZUZyb206MTAwLHJlc3RvcmVBZnRlckZpbmlzaDp0cnVlLGJlZm9yZVN0YXJ0SW50ZXJuYWw6ZnVuY3Rpb24oXzcxOCl7CitzLm1ha2VQb3NpdGlvbmVkKF83MTguZWxlbWVudCk7CitzLm1ha2VQb3NpdGlvbmVkKF83MTguZWxlbWVudC5maXJzdENoaWxkKTsKK2lmKC9PcGVyYS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7CitzLnNldFN0eWxlKF83MTguZWxlbWVudCx7dG9wOiIifSk7Cit9CitfNzE3PXMubWFrZUNsaXBwaW5nKF83MTguZWxlbWVudCk7CitzLnNob3dFbGVtZW50KF83MTguZWxlbWVudCk7Cit9LGFmdGVyVXBkYXRlSW50ZXJuYWw6ZnVuY3Rpb24oXzcxOSl7Cit2YXIgXzcxYT1zLmdldEVsZW1lbnREaW1lbnNpb25zKF83MTkuZWxlbWVudCx0cnVlKTsKK3Muc2V0U3R5bGUoXzcxOS5lbGVtZW50LmZpcnN0Q2hpbGQse2JvdHRvbTooXzcxOS5kaW1zWzBdLV83MWEuaCkrInB4In0pOworfSxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKF83MWIpeworcy5oaWRlRWxlbWVudChfNzFiLmVsZW1lbnQpOworcy51bmRvQ2xpcHBpbmcoXzcxYi5lbGVtZW50LF83MTcpOworcy51bmRvUG9zaXRpb25lZChfNzFiLmVsZW1lbnQuZmlyc3RDaGlsZCk7CitzLnVuZG9Qb3NpdGlvbmVkKF83MWIuZWxlbWVudCk7CitzLnNldFN0eWxlKF83MWIuZWxlbWVudC5maXJzdENoaWxkLHtib3R0b206XzcxNX0pOworfX0sXzcxMSk7CityZXR1cm4gbmV3IE1vY2hpS2l0LlZpc3VhbC5TY2FsZShfNzEwLDAsXzcxMSk7Cit9OworTW9jaGlLaXQuVmlzdWFsLnNxdWlzaD1mdW5jdGlvbihfNzFjLF83MWQpewordmFyIGQ9TW9jaGlLaXQuRE9NOwordmFyIGI9TW9jaGlLaXQuQmFzZTsKK3ZhciBzPU1vY2hpS2l0LlN0eWxlOwordmFyIF83MjE9cy5nZXRFbGVtZW50RGltZW5zaW9ucyhfNzFjLHRydWUpOwordmFyIF83MjI7CitfNzFkPWIudXBkYXRlKHtyZXN0b3JlQWZ0ZXJGaW5pc2g6dHJ1ZSxzY2FsZU1vZGU6e29yaWdpbmFsSGVpZ2h0Ol83MjEudyxvcmlnaW5hbFdpZHRoOl83MjEuaH0sYmVmb3JlU2V0dXBJbnRlcm5hbDpmdW5jdGlvbihfNzIzKXsKK183MjI9cy5tYWtlQ2xpcHBpbmcoXzcyMy5lbGVtZW50KTsKK30sYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihfNzI0KXsKK3MuaGlkZUVsZW1lbnQoXzcyNC5lbGVtZW50KTsKK3MudW5kb0NsaXBwaW5nKF83MjQuZWxlbWVudCxfNzIyKTsKK319LF83MWQpOworcmV0dXJuIG5ldyBNb2NoaUtpdC5WaXN1YWwuU2NhbGUoXzcxYywvT3BlcmEvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk/MTowLF83MWQpOworfTsKK01vY2hpS2l0LlZpc3VhbC5ncm93PWZ1bmN0aW9uKF83MjUsXzcyNil7Cit2YXIgZD1Nb2NoaUtpdC5ET007Cit2YXIgdj1Nb2NoaUtpdC5WaXN1YWw7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZTsKK183MjU9ZC5nZXRFbGVtZW50KF83MjUpOworXzcyNj1Nb2NoaUtpdC5CYXNlLnVwZGF0ZSh7ZGlyZWN0aW9uOiJjZW50ZXIiLG1vdmVUcmFuc2l0aW9uOnYuVHJhbnNpdGlvbnMuc2lub2lkYWwsc2NhbGVUcmFuc2l0aW9uOnYuVHJhbnNpdGlvbnMuc2lub2lkYWwsb3BhY2l0eVRyYW5zaXRpb246di5UcmFuc2l0aW9ucy5mdWxsLHNjYWxlQ29udGVudDp0cnVlLHNjYWxlRnJvbUNlbnRlcjpmYWxzZX0sXzcyNik7Cit2YXIgXzcyYT17dG9wOl83MjUuc3R5bGUudG9wLGxlZnQ6XzcyNS5zdHlsZS5sZWZ0LGhlaWdodDpfNzI1LnN0eWxlLmhlaWdodCx3aWR0aDpfNzI1LnN0eWxlLndpZHRoLG9wYWNpdHk6cy5nZXRTdHlsZShfNzI1LCJvcGFjaXR5Iil9OwordmFyIGRpbXM9cy5nZXRFbGVtZW50RGltZW5zaW9ucyhfNzI1LHRydWUpOwordmFyIF83MmMsXzcyZDsKK3ZhciBfNzJlLF83MmY7Citzd2l0Y2goXzcyNi5kaXJlY3Rpb24peworY2FzZSAidG9wLWxlZnQiOgorXzcyYz1fNzJkPV83MmU9XzcyZj0wOworYnJlYWs7CitjYXNlICJ0b3AtcmlnaHQiOgorXzcyYz1kaW1zLnc7CitfNzJkPV83MmY9MDsKK183MmU9LWRpbXMudzsKK2JyZWFrOworY2FzZSAiYm90dG9tLWxlZnQiOgorXzcyYz1fNzJlPTA7CitfNzJkPWRpbXMuaDsKK183MmY9LWRpbXMuaDsKK2JyZWFrOworY2FzZSAiYm90dG9tLXJpZ2h0IjoKK183MmM9ZGltcy53OworXzcyZD1kaW1zLmg7CitfNzJlPS1kaW1zLnc7CitfNzJmPS1kaW1zLmg7CiticmVhazsKK2Nhc2UgImNlbnRlciI6CitfNzJjPWRpbXMudy8yOworXzcyZD1kaW1zLmgvMjsKK183MmU9LWRpbXMudy8yOworXzcyZj0tZGltcy5oLzI7CiticmVhazsKK30KK3ZhciBfNzMwPU1vY2hpS2l0LkJhc2UudXBkYXRlKHtiZWZvcmVTZXR1cEludGVybmFsOmZ1bmN0aW9uKF83MzEpeworcy5zZXRTdHlsZShfNzMxLmVmZmVjdHNbMF0uZWxlbWVudCx7aGVpZ2h0OiIwcHgifSk7CitzLnNob3dFbGVtZW50KF83MzEuZWZmZWN0c1swXS5lbGVtZW50KTsKK30sYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihfNzMyKXsKK3MudW5kb0NsaXBwaW5nKF83MzIuZWZmZWN0c1swXS5lbGVtZW50KTsKK3MudW5kb1Bvc2l0aW9uZWQoXzczMi5lZmZlY3RzWzBdLmVsZW1lbnQpOworcy5zZXRTdHlsZShfNzMyLmVmZmVjdHNbMF0uZWxlbWVudCxfNzJhKTsKK319LF83MjYpOworcmV0dXJuIG5ldyB2Lk1vdmUoXzcyNSx7eDpfNzJjLHk6XzcyZCxkdXJhdGlvbjowLjAxLGJlZm9yZVNldHVwSW50ZXJuYWw6ZnVuY3Rpb24oXzczMyl7CitzLmhpZGVFbGVtZW50KF83MzMuZWxlbWVudCk7CitzLm1ha2VDbGlwcGluZyhfNzMzLmVsZW1lbnQpOworcy5tYWtlUG9zaXRpb25lZChfNzMzLmVsZW1lbnQpOworfSxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKF83MzQpeworbmV3IHYuUGFyYWxsZWwoW25ldyB2Lk9wYWNpdHkoXzczNC5lbGVtZW50LHtzeW5jOnRydWUsdG86MSxmcm9tOjAsdHJhbnNpdGlvbjpfNzI2Lm9wYWNpdHlUcmFuc2l0aW9ufSksbmV3IHYuTW92ZShfNzM0LmVsZW1lbnQse3g6XzcyZSx5Ol83MmYsc3luYzp0cnVlLHRyYW5zaXRpb246XzcyNi5tb3ZlVHJhbnNpdGlvbn0pLG5ldyB2LlNjYWxlKF83MzQuZWxlbWVudCwxMDAse3NjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6ZGltcy5oLG9yaWdpbmFsV2lkdGg6ZGltcy53fSxzeW5jOnRydWUsc2NhbGVGcm9tOi9PcGVyYS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT8xOjAsdHJhbnNpdGlvbjpfNzI2LnNjYWxlVHJhbnNpdGlvbixzY2FsZUNvbnRlbnQ6XzcyNi5zY2FsZUNvbnRlbnQsc2NhbGVGcm9tQ2VudGVyOl83MjYuc2NhbGVGcm9tQ2VudGVyLHJlc3RvcmVBZnRlckZpbmlzaDp0cnVlfSldLF83MzApOworfX0pOworfTsKK01vY2hpS2l0LlZpc3VhbC5zaHJpbms9ZnVuY3Rpb24oXzczNSxfNzM2KXsKK3ZhciBkPU1vY2hpS2l0LkRPTTsKK3ZhciB2PU1vY2hpS2l0LlZpc3VhbDsKK3ZhciBzPU1vY2hpS2l0LlN0eWxlOworXzczNT1kLmdldEVsZW1lbnQoXzczNSk7CitfNzM2PU1vY2hpS2l0LkJhc2UudXBkYXRlKHtkaXJlY3Rpb246ImNlbnRlciIsbW92ZVRyYW5zaXRpb246di5UcmFuc2l0aW9ucy5zaW5vaWRhbCxzY2FsZVRyYW5zaXRpb246di5UcmFuc2l0aW9ucy5zaW5vaWRhbCxvcGFjaXR5VHJhbnNpdGlvbjp2LlRyYW5zaXRpb25zLm5vbmUsc2NhbGVDb250ZW50OnRydWUsc2NhbGVGcm9tQ2VudGVyOmZhbHNlfSxfNzM2KTsKK3ZhciBfNzNhPXt0b3A6XzczNS5zdHlsZS50b3AsbGVmdDpfNzM1LnN0eWxlLmxlZnQsaGVpZ2h0Ol83MzUuc3R5bGUuaGVpZ2h0LHdpZHRoOl83MzUuc3R5bGUud2lkdGgsb3BhY2l0eTpzLmdldFN0eWxlKF83MzUsIm9wYWNpdHkiKX07Cit2YXIgZGltcz1zLmdldEVsZW1lbnREaW1lbnNpb25zKF83MzUsdHJ1ZSk7Cit2YXIgXzczYyxfNzNkOworc3dpdGNoKF83MzYuZGlyZWN0aW9uKXsKK2Nhc2UgInRvcC1sZWZ0IjoKK183M2M9XzczZD0wOworYnJlYWs7CitjYXNlICJ0b3AtcmlnaHQiOgorXzczYz1kaW1zLnc7CitfNzNkPTA7CiticmVhazsKK2Nhc2UgImJvdHRvbS1sZWZ0IjoKK183M2M9MDsKK183M2Q9ZGltcy5oOworYnJlYWs7CitjYXNlICJib3R0b20tcmlnaHQiOgorXzczYz1kaW1zLnc7CitfNzNkPWRpbXMuaDsKK2JyZWFrOworY2FzZSAiY2VudGVyIjoKK183M2M9ZGltcy53LzI7CitfNzNkPWRpbXMuaC8yOworYnJlYWs7Cit9Cit2YXIgXzczZTsKK3ZhciBfNzNmPU1vY2hpS2l0LkJhc2UudXBkYXRlKHtiZWZvcmVTdGFydEludGVybmFsOmZ1bmN0aW9uKF83NDApeworcy5tYWtlUG9zaXRpb25lZChfNzQwLmVmZmVjdHNbMF0uZWxlbWVudCk7CitfNzNlPXMubWFrZUNsaXBwaW5nKF83NDAuZWZmZWN0c1swXS5lbGVtZW50KTsKK30sYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihfNzQxKXsKK3MuaGlkZUVsZW1lbnQoXzc0MS5lZmZlY3RzWzBdLmVsZW1lbnQpOworcy51bmRvQ2xpcHBpbmcoXzc0MS5lZmZlY3RzWzBdLmVsZW1lbnQsXzczZSk7CitzLnVuZG9Qb3NpdGlvbmVkKF83NDEuZWZmZWN0c1swXS5lbGVtZW50KTsKK3Muc2V0U3R5bGUoXzc0MS5lZmZlY3RzWzBdLmVsZW1lbnQsXzczYSk7Cit9fSxfNzM2KTsKK3JldHVybiBuZXcgdi5QYXJhbGxlbChbbmV3IHYuT3BhY2l0eShfNzM1LHtzeW5jOnRydWUsdG86MCxmcm9tOjEsdHJhbnNpdGlvbjpfNzM2Lm9wYWNpdHlUcmFuc2l0aW9ufSksbmV3IHYuU2NhbGUoXzczNSwvT3BlcmEvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk/MTowLHtzY2FsZU1vZGU6e29yaWdpbmFsSGVpZ2h0OmRpbXMuaCxvcmlnaW5hbFdpZHRoOmRpbXMud30sc3luYzp0cnVlLHRyYW5zaXRpb246XzczNi5zY2FsZVRyYW5zaXRpb24sc2NhbGVDb250ZW50Ol83MzYuc2NhbGVDb250ZW50LHNjYWxlRnJvbUNlbnRlcjpfNzM2LnNjYWxlRnJvbUNlbnRlcixyZXN0b3JlQWZ0ZXJGaW5pc2g6dHJ1ZX0pLG5ldyB2Lk1vdmUoXzczNSx7eDpfNzNjLHk6XzczZCxzeW5jOnRydWUsdHJhbnNpdGlvbjpfNzM2Lm1vdmVUcmFuc2l0aW9ufSldLF83M2YpOworfTsKK01vY2hpS2l0LlZpc3VhbC5wdWxzYXRlPWZ1bmN0aW9uKF83NDIsXzc0Myl7Cit2YXIgZD1Nb2NoaUtpdC5ET007Cit2YXIgdj1Nb2NoaUtpdC5WaXN1YWw7Cit2YXIgYj1Nb2NoaUtpdC5CYXNlOwordmFyIF83NDc9TW9jaGlLaXQuU3R5bGUuZ2V0U3R5bGUoXzc0Miwib3BhY2l0eSIpOworXzc0Mz1iLnVwZGF0ZSh7ZHVyYXRpb246Myxmcm9tOjAsYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihfNzQ4KXsKK01vY2hpS2l0LlN0eWxlLnNldFN0eWxlKF83NDguZWxlbWVudCx7Im9wYWNpdHkiOl83NDd9KTsKK319LF83NDMpOwordmFyIF83NDk9Xzc0My50cmFuc2l0aW9ufHx2LlRyYW5zaXRpb25zLnNpbm9pZGFsOworXzc0My50cmFuc2l0aW9uPWZ1bmN0aW9uKHBvcyl7CityZXR1cm4gXzc0OSgxLXYuVHJhbnNpdGlvbnMucHVsc2UocG9zLF83NDMucHVsc2VzKSk7Cit9OworcmV0dXJuIG5ldyB2Lk9wYWNpdHkoXzc0MixfNzQzKTsKK307CitNb2NoaUtpdC5WaXN1YWwuZm9sZD1mdW5jdGlvbihfNzRiLF83NGMpewordmFyIGQ9TW9jaGlLaXQuRE9NOwordmFyIHY9TW9jaGlLaXQuVmlzdWFsOwordmFyIHM9TW9jaGlLaXQuU3R5bGU7CitfNzRiPWQuZ2V0RWxlbWVudChfNzRiKTsKK3ZhciBfNzUwPXMuZ2V0RWxlbWVudERpbWVuc2lvbnMoXzc0Yix0cnVlKTsKK3ZhciBfNzUxPXt0b3A6Xzc0Yi5zdHlsZS50b3AsbGVmdDpfNzRiLnN0eWxlLmxlZnQsd2lkdGg6Xzc0Yi5zdHlsZS53aWR0aCxoZWlnaHQ6Xzc0Yi5zdHlsZS5oZWlnaHR9OwordmFyIF83NTI9cy5tYWtlQ2xpcHBpbmcoXzc0Yik7CitfNzRjPU1vY2hpS2l0LkJhc2UudXBkYXRlKHtzY2FsZUNvbnRlbnQ6ZmFsc2Usc2NhbGVYOmZhbHNlLHNjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6Xzc1MC5oLG9yaWdpbmFsV2lkdGg6Xzc1MC53fSxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKF83NTMpeworbmV3IHYuU2NhbGUoXzc0YiwxLHtzY2FsZUNvbnRlbnQ6ZmFsc2Usc2NhbGVZOmZhbHNlLHNjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6Xzc1MC5oLG9yaWdpbmFsV2lkdGg6Xzc1MC53fSxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKF83NTQpeworcy5oaWRlRWxlbWVudChfNzU0LmVsZW1lbnQpOworcy51bmRvQ2xpcHBpbmcoXzc1NC5lbGVtZW50LF83NTIpOworcy5zZXRTdHlsZShfNzU0LmVsZW1lbnQsXzc1MSk7Cit9fSk7Cit9fSxfNzRjKTsKK3JldHVybiBuZXcgdi5TY2FsZShfNzRiLDUsXzc0Yyk7Cit9OworTW9jaGlLaXQuVmlzdWFsLkNvbG9yPU1vY2hpS2l0LkNvbG9yLkNvbG9yOworTW9jaGlLaXQuVmlzdWFsLmdldEVsZW1lbnRzQ29tcHV0ZWRTdHlsZT1Nb2NoaUtpdC5ET00uY29tcHV0ZWRTdHlsZTsKK01vY2hpS2l0LlZpc3VhbC5fX25ld19fPWZ1bmN0aW9uKCl7Cit2YXIgbT1Nb2NoaUtpdC5CYXNlOworbS5uYW1lRnVuY3Rpb25zKHRoaXMpOwordGhpcy5FWFBPUlRfVEFHUz17Ijpjb21tb24iOnRoaXMuRVhQT1JULCI6YWxsIjptLmNvbmNhdCh0aGlzLkVYUE9SVCx0aGlzLkVYUE9SVF9PSyl9OworfTsKK01vY2hpS2l0LlZpc3VhbC5FWFBPUlQ9WyJyb3VuZEVsZW1lbnQiLCJyb3VuZENsYXNzIiwidGFnaWZ5VGV4dCIsIm11bHRpcGxlIiwidG9nZ2xlIiwiUGFyYWxsZWwiLCJTZXF1ZW5jZSIsIk9wYWNpdHkiLCJNb3ZlIiwiU2NhbGUiLCJIaWdobGlnaHQiLCJTY3JvbGxUbyIsIk1vcnBoIiwiZmFkZSIsImFwcGVhciIsInB1ZmYiLCJibGluZFVwIiwiYmxpbmREb3duIiwic3dpdGNoT2ZmIiwiZHJvcE91dCIsInNoYWtlIiwic2xpZGVEb3duIiwic2xpZGVVcCIsInNxdWlzaCIsImdyb3ciLCJzaHJpbmsiLCJwdWxzYXRlIiwiZm9sZCJdOworTW9jaGlLaXQuVmlzdWFsLkVYUE9SVF9PSz1bIkJhc2UiLCJQQUlSUyJdOworTW9jaGlLaXQuVmlzdWFsLl9fbmV3X18oKTsKK01vY2hpS2l0LkJhc2UuX2V4cG9ydFN5bWJvbHModGhpcyxNb2NoaUtpdC5WaXN1YWwpOworTW9jaGlLaXQuQmFzZS5fZGVwcygiRHJhZ0FuZERyb3AiLFsiQmFzZSIsIkl0ZXIiLCJET00iLCJTaWduYWwiLCJWaXN1YWwiLCJQb3NpdGlvbiJdKTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLk5BTUU9Ik1vY2hpS2l0LkRyYWdBbmREcm9wIjsKK01vY2hpS2l0LkRyYWdBbmREcm9wLlZFUlNJT049IjEuNC4yIjsKK01vY2hpS2l0LkRyYWdBbmREcm9wLl9fcmVwcl9fPWZ1bmN0aW9uKCl7CityZXR1cm4gIlsiK3RoaXMuTkFNRSsiICIrdGhpcy5WRVJTSU9OKyJdIjsKK307CitNb2NoaUtpdC5EcmFnQW5kRHJvcC50b1N0cmluZz1mdW5jdGlvbigpeworcmV0dXJuIHRoaXMuX19yZXByX18oKTsKK307CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5FWFBPUlQ9WyJEcm9wcGFibGUiLCJEcmFnZ2FibGUiXTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLkVYUE9SVF9PSz1bIkRyb3BwYWJsZXMiLCJEcmFnZ2FibGVzIl07CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5Ecm9wcGFibGVzPXtkcm9wczpbXSxyZW1vdmU6ZnVuY3Rpb24oXzc1Nil7Cit0aGlzLmRyb3BzPU1vY2hpS2l0LkJhc2UuZmlsdGVyKGZ1bmN0aW9uKGQpeworcmV0dXJuIGQuZWxlbWVudCE9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzc1Nik7Cit9LHRoaXMuZHJvcHMpOworfSxyZWdpc3RlcjpmdW5jdGlvbihkcm9wKXsKK3RoaXMuZHJvcHMucHVzaChkcm9wKTsKK30sdW5yZWdpc3RlcjpmdW5jdGlvbihkcm9wKXsKK3RoaXMuZHJvcHM9TW9jaGlLaXQuQmFzZS5maWx0ZXIoZnVuY3Rpb24oZCl7CityZXR1cm4gZCE9ZHJvcDsKK30sdGhpcy5kcm9wcyk7Cit9LHByZXBhcmU6ZnVuY3Rpb24oXzc1Yil7CitNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihkcm9wKXsKK2lmKGRyb3AuaXNBY2NlcHRlZChfNzViKSl7CitpZihkcm9wLm9wdGlvbnMuYWN0aXZlY2xhc3MpeworTW9jaGlLaXQuRE9NLmFkZEVsZW1lbnRDbGFzcyhkcm9wLmVsZW1lbnQsZHJvcC5vcHRpb25zLmFjdGl2ZWNsYXNzKTsKK30KK2Ryb3Aub3B0aW9ucy5vbmFjdGl2ZShkcm9wLmVsZW1lbnQsXzc1Yik7Cit9Cit9LHRoaXMuZHJvcHMpOworfSxmaW5kRGVlcGVzdENoaWxkOmZ1bmN0aW9uKF83NWQpeworZGVlcGVzdD1fNzVkWzBdOworZm9yKGk9MTtpPF83NWQubGVuZ3RoOysraSl7CitpZihNb2NoaUtpdC5ET00uaXNDaGlsZE5vZGUoXzc1ZFtpXS5lbGVtZW50LGRlZXBlc3QuZWxlbWVudCkpeworZGVlcGVzdD1fNzVkW2ldOworfQorfQorcmV0dXJuIGRlZXBlc3Q7Cit9LHNob3c6ZnVuY3Rpb24oXzc1ZSxfNzVmKXsKK2lmKCF0aGlzLmRyb3BzLmxlbmd0aCl7CityZXR1cm47Cit9Cit2YXIgXzc2MD1bXTsKK2lmKHRoaXMubGFzdF9hY3RpdmUpewordGhpcy5sYXN0X2FjdGl2ZS5kZWFjdGl2YXRlKCk7Cit9CitNb2NoaUtpdC5JdGVyLmZvckVhY2godGhpcy5kcm9wcyxmdW5jdGlvbihkcm9wKXsKK2lmKGRyb3AuaXNBZmZlY3RlZChfNzVlLF83NWYpKXsKK183NjAucHVzaChkcm9wKTsKK30KK30pOworaWYoXzc2MC5sZW5ndGg+MCl7Citkcm9wPXRoaXMuZmluZERlZXBlc3RDaGlsZChfNzYwKTsKK01vY2hpS2l0LlBvc2l0aW9uLndpdGhpbihkcm9wLmVsZW1lbnQsXzc1ZS5wYWdlLngsXzc1ZS5wYWdlLnkpOworZHJvcC5vcHRpb25zLm9uaG92ZXIoXzc1Zixkcm9wLmVsZW1lbnQsTW9jaGlLaXQuUG9zaXRpb24ub3ZlcmxhcChkcm9wLm9wdGlvbnMub3ZlcmxhcCxkcm9wLmVsZW1lbnQpKTsKK2Ryb3AuYWN0aXZhdGUoKTsKK30KK30sZmlyZTpmdW5jdGlvbihfNzYyLF83NjMpeworaWYoIXRoaXMubGFzdF9hY3RpdmUpeworcmV0dXJuOworfQorTW9jaGlLaXQuUG9zaXRpb24ucHJlcGFyZSgpOworaWYodGhpcy5sYXN0X2FjdGl2ZS5pc0FmZmVjdGVkKF83NjIubW91c2UoKSxfNzYzKSl7Cit0aGlzLmxhc3RfYWN0aXZlLm9wdGlvbnMub25kcm9wKF83NjMsdGhpcy5sYXN0X2FjdGl2ZS5lbGVtZW50LF83NjIpOworfQorfSxyZXNldDpmdW5jdGlvbihfNzY0KXsKK01vY2hpS2l0LkJhc2UubWFwKGZ1bmN0aW9uKGRyb3ApeworaWYoZHJvcC5vcHRpb25zLmFjdGl2ZWNsYXNzKXsKK01vY2hpS2l0LkRPTS5yZW1vdmVFbGVtZW50Q2xhc3MoZHJvcC5lbGVtZW50LGRyb3Aub3B0aW9ucy5hY3RpdmVjbGFzcyk7Cit9Citkcm9wLm9wdGlvbnMub25kZXNhY3RpdmUoZHJvcC5lbGVtZW50LF83NjQpOworfSx0aGlzLmRyb3BzKTsKK2lmKHRoaXMubGFzdF9hY3RpdmUpewordGhpcy5sYXN0X2FjdGl2ZS5kZWFjdGl2YXRlKCk7Cit9Cit9fTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLkRyb3BwYWJsZT1mdW5jdGlvbihfNzY2LF83NjcpewordmFyIGNscz1hcmd1bWVudHMuY2FsbGVlOworaWYoISh0aGlzIGluc3RhbmNlb2YgY2xzKSl7CityZXR1cm4gbmV3IGNscyhfNzY2LF83NjcpOworfQordGhpcy5fX2luaXRfXyhfNzY2LF83NjcpOworfTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLkRyb3BwYWJsZS5wcm90b3R5cGU9e19fY2xhc3NfXzpNb2NoaUtpdC5EcmFnQW5kRHJvcC5Ecm9wcGFibGUsX19pbml0X186ZnVuY3Rpb24oXzc2OSxfNzZhKXsKK3ZhciBkPU1vY2hpS2l0LkRPTTsKK3ZhciBiPU1vY2hpS2l0LkJhc2U7Cit0aGlzLmVsZW1lbnQ9ZC5nZXRFbGVtZW50KF83NjkpOwordGhpcy5vcHRpb25zPWIudXBkYXRlKHtncmVlZHk6dHJ1ZSxob3ZlcmNsYXNzOm51bGwsYWN0aXZlY2xhc3M6bnVsbCxob3ZlcmZ1bmM6Yi5ub29wLGFjY2VwdDpudWxsLG9uYWN0aXZlOmIubm9vcCxvbmRlc2FjdGl2ZTpiLm5vb3Asb25ob3ZlcjpiLm5vb3Asb25kcm9wOmIubm9vcCxjb250YWlubWVudDpbXSx0cmVlOmZhbHNlfSxfNzZhKTsKK3RoaXMub3B0aW9ucy5fY29udGFpbmVycz1bXTsKK2IubWFwKE1vY2hpS2l0LkJhc2UuYmluZChmdW5jdGlvbihjKXsKK3RoaXMub3B0aW9ucy5fY29udGFpbmVycy5wdXNoKGQuZ2V0RWxlbWVudChjKSk7Cit9LHRoaXMpLHRoaXMub3B0aW9ucy5jb250YWlubWVudCk7CitNb2NoaUtpdC5TdHlsZS5tYWtlUG9zaXRpb25lZCh0aGlzLmVsZW1lbnQpOworTW9jaGlLaXQuRHJhZ0FuZERyb3AuRHJvcHBhYmxlcy5yZWdpc3Rlcih0aGlzKTsKK30saXNDb250YWluZWQ6ZnVuY3Rpb24oXzc2ZSl7CitpZih0aGlzLm9wdGlvbnMuX2NvbnRhaW5lcnMubGVuZ3RoKXsKK3ZhciBfNzZmOworaWYodGhpcy5vcHRpb25zLnRyZWUpeworXzc2Zj1fNzZlLnRyZWVOb2RlOworfWVsc2V7CitfNzZmPV83NmUucGFyZW50Tm9kZTsKK30KK3JldHVybiBNb2NoaUtpdC5JdGVyLnNvbWUodGhpcy5vcHRpb25zLl9jb250YWluZXJzLGZ1bmN0aW9uKGMpeworcmV0dXJuIF83NmY9PWM7Cit9KTsKK31lbHNleworcmV0dXJuIHRydWU7Cit9Cit9LGlzQWNjZXB0ZWQ6ZnVuY3Rpb24oXzc3MSl7CityZXR1cm4gKCghdGhpcy5vcHRpb25zLmFjY2VwdCl8fE1vY2hpS2l0Lkl0ZXIuc29tZSh0aGlzLm9wdGlvbnMuYWNjZXB0LGZ1bmN0aW9uKGMpeworcmV0dXJuIE1vY2hpS2l0LkRPTS5oYXNFbGVtZW50Q2xhc3MoXzc3MSxjKTsKK30pKTsKK30saXNBZmZlY3RlZDpmdW5jdGlvbihfNzczLF83NzQpeworcmV0dXJuICgodGhpcy5lbGVtZW50IT1fNzc0KSYmdGhpcy5pc0NvbnRhaW5lZChfNzc0KSYmdGhpcy5pc0FjY2VwdGVkKF83NzQpJiZNb2NoaUtpdC5Qb3NpdGlvbi53aXRoaW4odGhpcy5lbGVtZW50LF83NzMucGFnZS54LF83NzMucGFnZS55KSk7Cit9LGRlYWN0aXZhdGU6ZnVuY3Rpb24oKXsKK2lmKHRoaXMub3B0aW9ucy5ob3ZlcmNsYXNzKXsKK01vY2hpS2l0LkRPTS5yZW1vdmVFbGVtZW50Q2xhc3ModGhpcy5lbGVtZW50LHRoaXMub3B0aW9ucy5ob3ZlcmNsYXNzKTsKK30KK3RoaXMub3B0aW9ucy5ob3ZlcmZ1bmModGhpcy5lbGVtZW50LGZhbHNlKTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLkRyb3BwYWJsZXMubGFzdF9hY3RpdmU9bnVsbDsKK30sYWN0aXZhdGU6ZnVuY3Rpb24oKXsKK2lmKHRoaXMub3B0aW9ucy5ob3ZlcmNsYXNzKXsKK01vY2hpS2l0LkRPTS5hZGRFbGVtZW50Q2xhc3ModGhpcy5lbGVtZW50LHRoaXMub3B0aW9ucy5ob3ZlcmNsYXNzKTsKK30KK3RoaXMub3B0aW9ucy5ob3ZlcmZ1bmModGhpcy5lbGVtZW50LHRydWUpOworTW9jaGlLaXQuRHJhZ0FuZERyb3AuRHJvcHBhYmxlcy5sYXN0X2FjdGl2ZT10aGlzOworfSxkZXN0cm95OmZ1bmN0aW9uKCl7CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5Ecm9wcGFibGVzLnVucmVnaXN0ZXIodGhpcyk7Cit9LHJlcHI6ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5fX2NsYXNzX18uTkFNRSsiLCBvcHRpb25zOiIrTW9jaGlLaXQuQmFzZS5yZXByKHRoaXMub3B0aW9ucykrIl0iOworfX07CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5EcmFnZ2FibGVzPXtkcmFnczpbXSxyZWdpc3RlcjpmdW5jdGlvbihfNzc1KXsKK2lmKHRoaXMuZHJhZ3MubGVuZ3RoPT09MCl7Cit2YXIgY29ubj1Nb2NoaUtpdC5TaWduYWwuY29ubmVjdDsKK3RoaXMuZXZlbnRNb3VzZVVwPWNvbm4oZG9jdW1lbnQsIm9ubW91c2V1cCIsdGhpcyx0aGlzLmVuZERyYWcpOwordGhpcy5ldmVudE1vdXNlTW92ZT1jb25uKGRvY3VtZW50LCJvbm1vdXNlbW92ZSIsdGhpcyx0aGlzLnVwZGF0ZURyYWcpOwordGhpcy5ldmVudEtleXByZXNzPWNvbm4oZG9jdW1lbnQsIm9ua2V5cHJlc3MiLHRoaXMsdGhpcy5rZXlQcmVzcyk7Cit9Cit0aGlzLmRyYWdzLnB1c2goXzc3NSk7Cit9LHVucmVnaXN0ZXI6ZnVuY3Rpb24oXzc3Nyl7Cit0aGlzLmRyYWdzPU1vY2hpS2l0LkJhc2UuZmlsdGVyKGZ1bmN0aW9uKGQpeworcmV0dXJuIGQhPV83Nzc7Cit9LHRoaXMuZHJhZ3MpOworaWYodGhpcy5kcmFncy5sZW5ndGg9PT0wKXsKK3ZhciBkaXNjPU1vY2hpS2l0LlNpZ25hbC5kaXNjb25uZWN0OworZGlzYyh0aGlzLmV2ZW50TW91c2VVcCk7CitkaXNjKHRoaXMuZXZlbnRNb3VzZU1vdmUpOworZGlzYyh0aGlzLmV2ZW50S2V5cHJlc3MpOworfQorfSxhY3RpdmF0ZTpmdW5jdGlvbihfNzdhKXsKK3dpbmRvdy5mb2N1cygpOwordGhpcy5hY3RpdmVEcmFnZ2FibGU9Xzc3YTsKK30sZGVhY3RpdmF0ZTpmdW5jdGlvbigpewordGhpcy5hY3RpdmVEcmFnZ2FibGU9bnVsbDsKK30sdXBkYXRlRHJhZzpmdW5jdGlvbihfNzdiKXsKK2lmKCF0aGlzLmFjdGl2ZURyYWdnYWJsZSl7CityZXR1cm47Cit9Cit2YXIgXzc3Yz1fNzdiLm1vdXNlKCk7CitpZih0aGlzLl9sYXN0UG9pbnRlciYmKE1vY2hpS2l0LkJhc2UucmVwcih0aGlzLl9sYXN0UG9pbnRlci5wYWdlKT09TW9jaGlLaXQuQmFzZS5yZXByKF83N2MucGFnZSkpKXsKK3JldHVybjsKK30KK3RoaXMuX2xhc3RQb2ludGVyPV83N2M7Cit0aGlzLmFjdGl2ZURyYWdnYWJsZS51cGRhdGVEcmFnKF83N2IsXzc3Yyk7Cit9LGVuZERyYWc6ZnVuY3Rpb24oXzc3ZCl7CitpZighdGhpcy5hY3RpdmVEcmFnZ2FibGUpeworcmV0dXJuOworfQordGhpcy5fbGFzdFBvaW50ZXI9bnVsbDsKK3RoaXMuYWN0aXZlRHJhZ2dhYmxlLmVuZERyYWcoXzc3ZCk7Cit0aGlzLmFjdGl2ZURyYWdnYWJsZT1udWxsOworfSxrZXlQcmVzczpmdW5jdGlvbihfNzdlKXsKK2lmKHRoaXMuYWN0aXZlRHJhZ2dhYmxlKXsKK3RoaXMuYWN0aXZlRHJhZ2dhYmxlLmtleVByZXNzKF83N2UpOworfQorfSxub3RpZnk6ZnVuY3Rpb24oXzc3ZixfNzgwLF83ODEpeworTW9jaGlLaXQuU2lnbmFsLnNpZ25hbCh0aGlzLF83N2YsXzc4MCxfNzgxKTsKK319OworTW9jaGlLaXQuRHJhZ0FuZERyb3AuRHJhZ2dhYmxlPWZ1bmN0aW9uKF83ODIsXzc4Myl7Cit2YXIgY2xzPWFyZ3VtZW50cy5jYWxsZWU7CitpZighKHRoaXMgaW5zdGFuY2VvZiBjbHMpKXsKK3JldHVybiBuZXcgY2xzKF83ODIsXzc4Myk7Cit9Cit0aGlzLl9faW5pdF9fKF83ODIsXzc4Myk7Cit9OworTW9jaGlLaXQuRHJhZ0FuZERyb3AuRHJhZ2dhYmxlLnByb3RvdHlwZT17X19jbGFzc19fOk1vY2hpS2l0LkRyYWdBbmREcm9wLkRyYWdnYWJsZSxfX2luaXRfXzpmdW5jdGlvbihfNzg1LF83ODYpewordmFyIHY9TW9jaGlLaXQuVmlzdWFsOwordmFyIGI9TW9jaGlLaXQuQmFzZTsKK183ODY9Yi51cGRhdGUoe2hhbmRsZTpmYWxzZSxzdGFydGVmZmVjdDpmdW5jdGlvbihfNzg5KXsKK3RoaXMuX3NhdmVkT3BhY2l0eT1Nb2NoaUtpdC5TdHlsZS5nZXRTdHlsZShfNzg5LCJvcGFjaXR5Iil8fDE7CituZXcgdi5PcGFjaXR5KF83ODkse2R1cmF0aW9uOjAuMixmcm9tOnRoaXMuX3NhdmVkT3BhY2l0eSx0bzowLjd9KTsKK30scmV2ZXJ0ZWZmZWN0OmZ1bmN0aW9uKF83OGEsXzc4YixfNzhjKXsKK3ZhciBkdXI9TWF0aC5zcXJ0KE1hdGguYWJzKF83OGJeMikrTWF0aC5hYnMoXzc4Y14yKSkqMC4wMjsKK3JldHVybiBuZXcgdi5Nb3ZlKF83OGEse3g6LV83OGMseTotXzc4YixkdXJhdGlvbjpkdXJ9KTsKK30sZW5kZWZmZWN0OmZ1bmN0aW9uKF83OGUpeworbmV3IHYuT3BhY2l0eShfNzhlLHtkdXJhdGlvbjowLjIsZnJvbTowLjcsdG86dGhpcy5fc2F2ZWRPcGFjaXR5fSk7Cit9LG9uY2hhbmdlOmIubm9vcCx6aW5kZXg6MTAwMCxyZXZlcnQ6ZmFsc2Usc2Nyb2xsOmZhbHNlLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjE1LHNuYXA6ZmFsc2V9LF83ODYpOwordmFyIGQ9TW9jaGlLaXQuRE9NOwordGhpcy5lbGVtZW50PWQuZ2V0RWxlbWVudChfNzg1KTsKK2lmKF83ODYuaGFuZGxlJiYodHlwZW9mIChfNzg2LmhhbmRsZSk9PSJzdHJpbmciKSl7Cit0aGlzLmhhbmRsZT1kLmdldEZpcnN0RWxlbWVudEJ5VGFnQW5kQ2xhc3NOYW1lKG51bGwsXzc4Ni5oYW5kbGUsdGhpcy5lbGVtZW50KTsKK30KK2lmKCF0aGlzLmhhbmRsZSl7Cit0aGlzLmhhbmRsZT1kLmdldEVsZW1lbnQoXzc4Ni5oYW5kbGUpOworfQoraWYoIXRoaXMuaGFuZGxlKXsKK3RoaXMuaGFuZGxlPXRoaXMuZWxlbWVudDsKK30KK2lmKF83ODYuc2Nyb2xsJiYhXzc4Ni5zY3JvbGwuc2Nyb2xsVG8mJiFfNzg2LnNjcm9sbC5vdXRlckhUTUwpeworXzc4Ni5zY3JvbGw9ZC5nZXRFbGVtZW50KF83ODYuc2Nyb2xsKTsKK3RoaXMuX2lzU2Nyb2xsQ2hpbGQ9TW9jaGlLaXQuRE9NLmlzQ2hpbGROb2RlKHRoaXMuZWxlbWVudCxfNzg2LnNjcm9sbCk7Cit9CitNb2NoaUtpdC5TdHlsZS5tYWtlUG9zaXRpb25lZCh0aGlzLmVsZW1lbnQpOwordGhpcy5kZWx0YT10aGlzLmN1cnJlbnREZWx0YSgpOwordGhpcy5vcHRpb25zPV83ODY7Cit0aGlzLmRyYWdnaW5nPWZhbHNlOwordGhpcy5ldmVudE1vdXNlRG93bj1Nb2NoaUtpdC5TaWduYWwuY29ubmVjdCh0aGlzLmhhbmRsZSwib25tb3VzZWRvd24iLHRoaXMsdGhpcy5pbml0RHJhZyk7CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5EcmFnZ2FibGVzLnJlZ2lzdGVyKHRoaXMpOworfSxkZXN0cm95OmZ1bmN0aW9uKCl7CitNb2NoaUtpdC5TaWduYWwuZGlzY29ubmVjdCh0aGlzLmV2ZW50TW91c2VEb3duKTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLkRyYWdnYWJsZXMudW5yZWdpc3Rlcih0aGlzKTsKK30sY3VycmVudERlbHRhOmZ1bmN0aW9uKCl7Cit2YXIgcz1Nb2NoaUtpdC5TdHlsZS5nZXRTdHlsZTsKK3JldHVybiBbcGFyc2VJbnQocyh0aGlzLmVsZW1lbnQsImxlZnQiKXx8IjAiKSxwYXJzZUludChzKHRoaXMuZWxlbWVudCwidG9wIil8fCIwIildOworfSxpbml0RHJhZzpmdW5jdGlvbihfNzkxKXsKK2lmKCFfNzkxLm1vdXNlKCkuYnV0dG9uLmxlZnQpeworcmV0dXJuOworfQordmFyIHNyYz1fNzkxLnRhcmdldCgpOwordmFyIF83OTM9KHNyYy50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKTsKK2lmKF83OTM9PT0iSU5QVVQifHxfNzkzPT09IlNFTEVDVCJ8fF83OTM9PT0iT1BUSU9OInx8Xzc5Mz09PSJCVVRUT04ifHxfNzkzPT09IlRFWFRBUkVBIil7CityZXR1cm47Cit9CitpZih0aGlzLl9yZXZlcnQpewordGhpcy5fcmV2ZXJ0LmNhbmNlbCgpOwordGhpcy5fcmV2ZXJ0PW51bGw7Cit9Cit2YXIgXzc5ND1fNzkxLm1vdXNlKCk7Cit2YXIgcG9zPU1vY2hpS2l0LlBvc2l0aW9uLmN1bXVsYXRpdmVPZmZzZXQodGhpcy5lbGVtZW50KTsKK3RoaXMub2Zmc2V0PVtfNzk0LnBhZ2UueC1wb3MueCxfNzk0LnBhZ2UueS1wb3MueV07CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5EcmFnZ2FibGVzLmFjdGl2YXRlKHRoaXMpOworXzc5MS5zdG9wKCk7Cit9LHN0YXJ0RHJhZzpmdW5jdGlvbihfNzk2KXsKK3RoaXMuZHJhZ2dpbmc9dHJ1ZTsKK2lmKHRoaXMub3B0aW9ucy5zZWxlY3RjbGFzcyl7CitNb2NoaUtpdC5ET00uYWRkRWxlbWVudENsYXNzKHRoaXMuZWxlbWVudCx0aGlzLm9wdGlvbnMuc2VsZWN0Y2xhc3MpOworfQoraWYodGhpcy5vcHRpb25zLnppbmRleCl7Cit0aGlzLm9yaWdpbmFsWj1wYXJzZUludChNb2NoaUtpdC5TdHlsZS5nZXRTdHlsZSh0aGlzLmVsZW1lbnQsInotaW5kZXgiKXx8IjAiKTsKK3RoaXMuZWxlbWVudC5zdHlsZS56SW5kZXg9dGhpcy5vcHRpb25zLnppbmRleDsKK30KK2lmKHRoaXMub3B0aW9ucy5naG9zdGluZyl7Cit0aGlzLl9jbG9uZT10aGlzLmVsZW1lbnQuY2xvbmVOb2RlKHRydWUpOwordGhpcy5naG9zdFBvc2l0aW9uPU1vY2hpS2l0LlBvc2l0aW9uLmFic29sdXRpemUodGhpcy5lbGVtZW50KTsKK3RoaXMuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLl9jbG9uZSx0aGlzLmVsZW1lbnQpOworfQoraWYodGhpcy5vcHRpb25zLnNjcm9sbCl7CitpZih0aGlzLm9wdGlvbnMuc2Nyb2xsPT13aW5kb3cpewordmFyIF83OTc9dGhpcy5fZ2V0V2luZG93U2Nyb2xsKHRoaXMub3B0aW9ucy5zY3JvbGwpOwordGhpcy5vcmlnaW5hbFNjcm9sbExlZnQ9Xzc5Ny5sZWZ0OwordGhpcy5vcmlnaW5hbFNjcm9sbFRvcD1fNzk3LnRvcDsKK31lbHNlewordGhpcy5vcmlnaW5hbFNjcm9sbExlZnQ9dGhpcy5vcHRpb25zLnNjcm9sbC5zY3JvbGxMZWZ0OwordGhpcy5vcmlnaW5hbFNjcm9sbFRvcD10aGlzLm9wdGlvbnMuc2Nyb2xsLnNjcm9sbFRvcDsKK30KK30KK01vY2hpS2l0LkRyYWdBbmREcm9wLkRyb3BwYWJsZXMucHJlcGFyZSh0aGlzLmVsZW1lbnQpOworTW9jaGlLaXQuRHJhZ0FuZERyb3AuRHJhZ2dhYmxlcy5ub3RpZnkoInN0YXJ0Iix0aGlzLF83OTYpOworaWYodGhpcy5vcHRpb25zLnN0YXJ0ZWZmZWN0KXsKK3RoaXMub3B0aW9ucy5zdGFydGVmZmVjdCh0aGlzLmVsZW1lbnQpOworfQorfSx1cGRhdGVEcmFnOmZ1bmN0aW9uKF83OTgsXzc5OSl7CitpZighdGhpcy5kcmFnZ2luZyl7Cit0aGlzLnN0YXJ0RHJhZyhfNzk4KTsKK30KK01vY2hpS2l0LlBvc2l0aW9uLnByZXBhcmUoKTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLkRyb3BwYWJsZXMuc2hvdyhfNzk5LHRoaXMuZWxlbWVudCk7CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5EcmFnZ2FibGVzLm5vdGlmeSgiZHJhZyIsdGhpcyxfNzk4KTsKK3RoaXMuZHJhdyhfNzk5KTsKK3RoaXMub3B0aW9ucy5vbmNoYW5nZSh0aGlzKTsKK2lmKHRoaXMub3B0aW9ucy5zY3JvbGwpewordGhpcy5zdG9wU2Nyb2xsaW5nKCk7Cit2YXIgcCxxOworaWYodGhpcy5vcHRpb25zLnNjcm9sbD09d2luZG93KXsKK3ZhciBzPXRoaXMuX2dldFdpbmRvd1Njcm9sbCh0aGlzLm9wdGlvbnMuc2Nyb2xsKTsKK3A9bmV3IE1vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzKHMubGVmdCxzLnRvcCk7CitxPW5ldyBNb2NoaUtpdC5TdHlsZS5Db29yZGluYXRlcyhzLmxlZnQrcy53aWR0aCxzLnRvcCtzLmhlaWdodCk7Cit9ZWxzZXsKK3A9TW9jaGlLaXQuUG9zaXRpb24ucGFnZSh0aGlzLm9wdGlvbnMuc2Nyb2xsKTsKK3AueCs9dGhpcy5vcHRpb25zLnNjcm9sbC5zY3JvbGxMZWZ0OworcC55Kz10aGlzLm9wdGlvbnMuc2Nyb2xsLnNjcm9sbFRvcDsKK3AueCs9KHdpbmRvdy5wYWdlWE9mZnNldHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdHx8MCk7CitwLnkrPSh3aW5kb3cucGFnZVlPZmZzZXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wfHwwKTsKK3E9bmV3IE1vY2hpS2l0LlN0eWxlLkNvb3JkaW5hdGVzKHAueCt0aGlzLm9wdGlvbnMuc2Nyb2xsLm9mZnNldFdpZHRoLHAueSt0aGlzLm9wdGlvbnMuc2Nyb2xsLm9mZnNldEhlaWdodCk7Cit9Cit2YXIgXzc5ZD1bMCwwXTsKK2lmKF83OTkucGFnZS54PihxLngtdGhpcy5vcHRpb25zLnNjcm9sbFNlbnNpdGl2aXR5KSl7CitfNzlkWzBdPV83OTkucGFnZS54LShxLngtdGhpcy5vcHRpb25zLnNjcm9sbFNlbnNpdGl2aXR5KTsKK31lbHNleworaWYoXzc5OS5wYWdlLng8KHAueCt0aGlzLm9wdGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHkpKXsKK183OWRbMF09Xzc5OS5wYWdlLngtKHAueCt0aGlzLm9wdGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHkpOworfQorfQoraWYoXzc5OS5wYWdlLnk+KHEueS10aGlzLm9wdGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHkpKXsKK183OWRbMV09Xzc5OS5wYWdlLnktKHEueS10aGlzLm9wdGlvbnMuc2Nyb2xsU2Vuc2l0aXZpdHkpOworfWVsc2V7CitpZihfNzk5LnBhZ2UueTwocC55K3RoaXMub3B0aW9ucy5zY3JvbGxTZW5zaXRpdml0eSkpeworXzc5ZFsxXT1fNzk5LnBhZ2UueS0ocC55K3RoaXMub3B0aW9ucy5zY3JvbGxTZW5zaXRpdml0eSk7Cit9Cit9Cit0aGlzLnN0YXJ0U2Nyb2xsaW5nKF83OWQpOworfQoraWYoL0FwcGxlV2ViS2l0Ly50ZXN0KG5hdmlnYXRvci5hcHBWZXJzaW9uKSl7Cit3aW5kb3cuc2Nyb2xsQnkoMCwwKTsKK30KK183OTguc3RvcCgpOworfSxmaW5pc2hEcmFnOmZ1bmN0aW9uKF83OWUsXzc5Zil7Cit2YXIgZHI9TW9jaGlLaXQuRHJhZ0FuZERyb3A7Cit0aGlzLmRyYWdnaW5nPWZhbHNlOworaWYodGhpcy5vcHRpb25zLnNlbGVjdGNsYXNzKXsKK01vY2hpS2l0LkRPTS5yZW1vdmVFbGVtZW50Q2xhc3ModGhpcy5lbGVtZW50LHRoaXMub3B0aW9ucy5zZWxlY3RjbGFzcyk7Cit9CitpZih0aGlzLm9wdGlvbnMuZ2hvc3RpbmcpeworTW9jaGlLaXQuUG9zaXRpb24ucmVsYXRpdml6ZSh0aGlzLmVsZW1lbnQsdGhpcy5naG9zdFBvc2l0aW9uKTsKK01vY2hpS2l0LkRPTS5yZW1vdmVFbGVtZW50KHRoaXMuX2Nsb25lKTsKK3RoaXMuX2Nsb25lPW51bGw7Cit9CitpZihfNzlmKXsKK2RyLkRyb3BwYWJsZXMuZmlyZShfNzllLHRoaXMuZWxlbWVudCk7Cit9Citkci5EcmFnZ2FibGVzLm5vdGlmeSgiZW5kIix0aGlzLF83OWUpOwordmFyIF83YTE9dGhpcy5vcHRpb25zLnJldmVydDsKK2lmKF83YTEmJnR5cGVvZiAoXzdhMSk9PSJmdW5jdGlvbiIpeworXzdhMT1fN2ExKHRoaXMuZWxlbWVudCk7Cit9Cit2YXIgZD10aGlzLmN1cnJlbnREZWx0YSgpOworaWYoXzdhMSYmdGhpcy5vcHRpb25zLnJldmVydGVmZmVjdCl7Cit0aGlzLl9yZXZlcnQ9dGhpcy5vcHRpb25zLnJldmVydGVmZmVjdCh0aGlzLmVsZW1lbnQsZFsxXS10aGlzLmRlbHRhWzFdLGRbMF0tdGhpcy5kZWx0YVswXSk7Cit9ZWxzZXsKK3RoaXMuZGVsdGE9ZDsKK30KK2lmKHRoaXMub3B0aW9ucy56aW5kZXgpewordGhpcy5lbGVtZW50LnN0eWxlLnpJbmRleD10aGlzLm9yaWdpbmFsWjsKK30KK2lmKHRoaXMub3B0aW9ucy5lbmRlZmZlY3QpewordGhpcy5vcHRpb25zLmVuZGVmZmVjdCh0aGlzLmVsZW1lbnQpOworfQorZHIuRHJhZ2dhYmxlcy5kZWFjdGl2YXRlKCk7Citkci5Ecm9wcGFibGVzLnJlc2V0KHRoaXMuZWxlbWVudCk7Cit9LGtleVByZXNzOmZ1bmN0aW9uKF83YTMpeworaWYoXzdhMy5rZXkoKS5zdHJpbmchPSJLRVlfRVNDQVBFIil7CityZXR1cm47Cit9Cit0aGlzLmZpbmlzaERyYWcoXzdhMyxmYWxzZSk7CitfN2EzLnN0b3AoKTsKK30sZW5kRHJhZzpmdW5jdGlvbihfN2E0KXsKK2lmKCF0aGlzLmRyYWdnaW5nKXsKK3JldHVybjsKK30KK3RoaXMuc3RvcFNjcm9sbGluZygpOwordGhpcy5maW5pc2hEcmFnKF83YTQsdHJ1ZSk7CitfN2E0LnN0b3AoKTsKK30sZHJhdzpmdW5jdGlvbihfN2E1KXsKK3ZhciBwb3M9TW9jaGlLaXQuUG9zaXRpb24uY3VtdWxhdGl2ZU9mZnNldCh0aGlzLmVsZW1lbnQpOwordmFyIGQ9dGhpcy5jdXJyZW50RGVsdGEoKTsKK3Bvcy54LT1kWzBdOworcG9zLnktPWRbMV07CitpZih0aGlzLm9wdGlvbnMuc2Nyb2xsJiYodGhpcy5vcHRpb25zLnNjcm9sbCE9d2luZG93JiZ0aGlzLl9pc1Njcm9sbENoaWxkKSl7Citwb3MueC09dGhpcy5vcHRpb25zLnNjcm9sbC5zY3JvbGxMZWZ0LXRoaXMub3JpZ2luYWxTY3JvbGxMZWZ0OworcG9zLnktPXRoaXMub3B0aW9ucy5zY3JvbGwuc2Nyb2xsVG9wLXRoaXMub3JpZ2luYWxTY3JvbGxUb3A7Cit9Cit2YXIgcD1bXzdhNS5wYWdlLngtcG9zLngtdGhpcy5vZmZzZXRbMF0sXzdhNS5wYWdlLnktcG9zLnktdGhpcy5vZmZzZXRbMV1dOworaWYodGhpcy5vcHRpb25zLnNuYXApeworaWYodHlwZW9mICh0aGlzLm9wdGlvbnMuc25hcCk9PSJmdW5jdGlvbiIpeworcD10aGlzLm9wdGlvbnMuc25hcChwWzBdLHBbMV0pOworfWVsc2V7CitpZih0aGlzLm9wdGlvbnMuc25hcCBpbnN0YW5jZW9mIEFycmF5KXsKK3ZhciBpPS0xOworcD1Nb2NoaUtpdC5CYXNlLm1hcChNb2NoaUtpdC5CYXNlLmJpbmQoZnVuY3Rpb24odil7CitpKz0xOworcmV0dXJuIE1hdGgucm91bmQodi90aGlzLm9wdGlvbnMuc25hcFtpXSkqdGhpcy5vcHRpb25zLnNuYXBbaV07Cit9LHRoaXMpLHApOworfWVsc2V7CitwPU1vY2hpS2l0LkJhc2UubWFwKE1vY2hpS2l0LkJhc2UuYmluZChmdW5jdGlvbih2KXsKK3JldHVybiBNYXRoLnJvdW5kKHYvdGhpcy5vcHRpb25zLnNuYXApKnRoaXMub3B0aW9ucy5zbmFwOworfSx0aGlzKSxwKTsKK30KK30KK30KK3ZhciBfN2FjPXRoaXMuZWxlbWVudC5zdHlsZTsKK2lmKCghdGhpcy5vcHRpb25zLmNvbnN0cmFpbnQpfHwodGhpcy5vcHRpb25zLmNvbnN0cmFpbnQ9PSJob3Jpem9udGFsIikpeworXzdhYy5sZWZ0PXBbMF0rInB4IjsKK30KK2lmKCghdGhpcy5vcHRpb25zLmNvbnN0cmFpbnQpfHwodGhpcy5vcHRpb25zLmNvbnN0cmFpbnQ9PSJ2ZXJ0aWNhbCIpKXsKK183YWMudG9wPXBbMV0rInB4IjsKK30KK2lmKF83YWMudmlzaWJpbGl0eT09ImhpZGRlbiIpeworXzdhYy52aXNpYmlsaXR5PSIiOworfQorfSxzdG9wU2Nyb2xsaW5nOmZ1bmN0aW9uKCl7CitpZih0aGlzLnNjcm9sbEludGVydmFsKXsKK2NsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxJbnRlcnZhbCk7Cit0aGlzLnNjcm9sbEludGVydmFsPW51bGw7CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5EcmFnZ2FibGVzLl9sYXN0U2Nyb2xsUG9pbnRlcj1udWxsOworfQorfSxzdGFydFNjcm9sbGluZzpmdW5jdGlvbihfN2FkKXsKK2lmKCFfN2FkWzBdJiYhXzdhZFsxXSl7CityZXR1cm47Cit9Cit0aGlzLnNjcm9sbFNwZWVkPVtfN2FkWzBdKnRoaXMub3B0aW9ucy5zY3JvbGxTcGVlZCxfN2FkWzFdKnRoaXMub3B0aW9ucy5zY3JvbGxTcGVlZF07Cit0aGlzLmxhc3RTY3JvbGxlZD1uZXcgRGF0ZSgpOwordGhpcy5zY3JvbGxJbnRlcnZhbD1zZXRJbnRlcnZhbChNb2NoaUtpdC5CYXNlLmJpbmQodGhpcy5zY3JvbGwsdGhpcyksMTApOworfSxzY3JvbGw6ZnVuY3Rpb24oKXsKK3ZhciBfN2FlPW5ldyBEYXRlKCk7Cit2YXIgXzdhZj1fN2FlLXRoaXMubGFzdFNjcm9sbGVkOwordGhpcy5sYXN0U2Nyb2xsZWQ9XzdhZTsKK2lmKHRoaXMub3B0aW9ucy5zY3JvbGw9PXdpbmRvdyl7Cit2YXIgcz10aGlzLl9nZXRXaW5kb3dTY3JvbGwodGhpcy5vcHRpb25zLnNjcm9sbCk7CitpZih0aGlzLnNjcm9sbFNwZWVkWzBdfHx0aGlzLnNjcm9sbFNwZWVkWzFdKXsKK3ZhciBkbT1fN2FmLzEwMDA7Cit0aGlzLm9wdGlvbnMuc2Nyb2xsLnNjcm9sbFRvKHMubGVmdCtkbSp0aGlzLnNjcm9sbFNwZWVkWzBdLHMudG9wK2RtKnRoaXMuc2Nyb2xsU3BlZWRbMV0pOworfQorfWVsc2V7Cit0aGlzLm9wdGlvbnMuc2Nyb2xsLnNjcm9sbExlZnQrPXRoaXMuc2Nyb2xsU3BlZWRbMF0qXzdhZi8xMDAwOwordGhpcy5vcHRpb25zLnNjcm9sbC5zY3JvbGxUb3ArPXRoaXMuc2Nyb2xsU3BlZWRbMV0qXzdhZi8xMDAwOworfQordmFyIGQ9TW9jaGlLaXQuRHJhZ0FuZERyb3A7CitNb2NoaUtpdC5Qb3NpdGlvbi5wcmVwYXJlKCk7CitkLkRyb3BwYWJsZXMuc2hvdyhkLkRyYWdnYWJsZXMuX2xhc3RQb2ludGVyLHRoaXMuZWxlbWVudCk7CitkLkRyYWdnYWJsZXMubm90aWZ5KCJkcmFnIix0aGlzKTsKK2lmKHRoaXMuX2lzU2Nyb2xsQ2hpbGQpeworZC5EcmFnZ2FibGVzLl9sYXN0U2Nyb2xsUG9pbnRlcj1kLkRyYWdnYWJsZXMuX2xhc3RTY3JvbGxQb2ludGVyfHxkLkRyYWdnYWJsZXMuX2xhc3RQb2ludGVyOworZC5EcmFnZ2FibGVzLl9sYXN0U2Nyb2xsUG9pbnRlci54Kz10aGlzLnNjcm9sbFNwZWVkWzBdKl83YWYvMTAwMDsKK2QuRHJhZ2dhYmxlcy5fbGFzdFNjcm9sbFBvaW50ZXIueSs9dGhpcy5zY3JvbGxTcGVlZFsxXSpfN2FmLzEwMDA7CitpZihkLkRyYWdnYWJsZXMuX2xhc3RTY3JvbGxQb2ludGVyLng8MCl7CitkLkRyYWdnYWJsZXMuX2xhc3RTY3JvbGxQb2ludGVyLng9MDsKK30KK2lmKGQuRHJhZ2dhYmxlcy5fbGFzdFNjcm9sbFBvaW50ZXIueTwwKXsKK2QuRHJhZ2dhYmxlcy5fbGFzdFNjcm9sbFBvaW50ZXIueT0wOworfQordGhpcy5kcmF3KGQuRHJhZ2dhYmxlcy5fbGFzdFNjcm9sbFBvaW50ZXIpOworfQordGhpcy5vcHRpb25zLm9uY2hhbmdlKHRoaXMpOworfSxfZ2V0V2luZG93U2Nyb2xsOmZ1bmN0aW9uKHdpbil7Cit2YXIgdnAsdyxoOworTW9jaGlLaXQuRE9NLndpdGhXaW5kb3cod2luLGZ1bmN0aW9uKCl7Cit2cD1Nb2NoaUtpdC5TdHlsZS5nZXRWaWV3cG9ydFBvc2l0aW9uKHdpbi5kb2N1bWVudCk7Cit9KTsKK2lmKHdpbi5pbm5lcldpZHRoKXsKK3c9d2luLmlubmVyV2lkdGg7CitoPXdpbi5pbm5lckhlaWdodDsKK31lbHNleworaWYod2luLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmd2luLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl7Cit3PXdpbi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7CitoPXdpbi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OworfWVsc2V7Cit3PXdpbi5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOworaD13aW4uZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7Cit9Cit9CityZXR1cm4ge3RvcDp2cC55LGxlZnQ6dnAueCx3aWR0aDp3LGhlaWdodDpofTsKK30scmVwcjpmdW5jdGlvbigpeworcmV0dXJuICJbIit0aGlzLl9fY2xhc3NfXy5OQU1FKyIsIG9wdGlvbnM6IitNb2NoaUtpdC5CYXNlLnJlcHIodGhpcy5vcHRpb25zKSsiXSI7Cit9fTsKK01vY2hpS2l0LkRyYWdBbmREcm9wLl9fbmV3X189ZnVuY3Rpb24oKXsKK01vY2hpS2l0LkJhc2UubmFtZUZ1bmN0aW9ucyh0aGlzKTsKK3RoaXMuRVhQT1JUX1RBR1M9eyI6Y29tbW9uIjp0aGlzLkVYUE9SVCwiOmFsbCI6TW9jaGlLaXQuQmFzZS5jb25jYXQodGhpcy5FWFBPUlQsdGhpcy5FWFBPUlRfT0spfTsKK307CitNb2NoaUtpdC5EcmFnQW5kRHJvcC5fX25ld19fKCk7CitNb2NoaUtpdC5CYXNlLl9leHBvcnRTeW1ib2xzKHRoaXMsTW9jaGlLaXQuRHJhZ0FuZERyb3ApOworTW9jaGlLaXQuQmFzZS5fZGVwcygiU29ydGFibGUiLFsiQmFzZSIsIkl0ZXIiLCJET00iLCJQb3NpdGlvbiIsIkRyYWdBbmREcm9wIl0pOworTW9jaGlLaXQuU29ydGFibGUuTkFNRT0iTW9jaGlLaXQuU29ydGFibGUiOworTW9jaGlLaXQuU29ydGFibGUuVkVSU0lPTj0iMS40LjIiOworTW9jaGlLaXQuU29ydGFibGUuX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0LlNvcnRhYmxlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7CityZXR1cm4gdGhpcy5fX3JlcHJfXygpOworfTsKK01vY2hpS2l0LlNvcnRhYmxlLkVYUE9SVD1bXTsKK01vY2hpS2l0LlNvcnRhYmxlLkVYUE9SVF9PSz1bXTsKK01vY2hpS2l0LkJhc2UudXBkYXRlKE1vY2hpS2l0LlNvcnRhYmxlLHtzb3J0YWJsZXM6e30sX2ZpbmRSb290RWxlbWVudDpmdW5jdGlvbihfN2I3KXsKK3doaWxlKF83YjcudGFnTmFtZS50b1VwcGVyQ2FzZSgpIT0iQk9EWSIpeworaWYoXzdiNy5pZCYmTW9jaGlLaXQuU29ydGFibGUuc29ydGFibGVzW183YjcuaWRdKXsKK3JldHVybiBfN2I3OworfQorXzdiNz1fN2I3LnBhcmVudE5vZGU7Cit9Cit9LF9jcmVhdGVFbGVtZW50SWQ6ZnVuY3Rpb24oXzdiOCl7CitpZihfN2I4LmlkPT1udWxsfHxfN2I4LmlkPT0iIil7Cit2YXIgZD1Nb2NoaUtpdC5ET007Cit2YXIgaWQ7Cit2YXIgXzdiYj0xOword2hpbGUoZC5nZXRFbGVtZW50KGlkPSJzb3J0YWJsZSIrXzdiYikhPW51bGwpeworXzdiYis9MTsKK30KK2Quc2V0Tm9kZUF0dHJpYnV0ZShfN2I4LCJpZCIsaWQpOworfQorfSxvcHRpb25zOmZ1bmN0aW9uKF83YmMpeworXzdiYz1Nb2NoaUtpdC5Tb3J0YWJsZS5fZmluZFJvb3RFbGVtZW50KE1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KF83YmMpKTsKK2lmKCFfN2JjKXsKK3JldHVybjsKK30KK3JldHVybiBNb2NoaUtpdC5Tb3J0YWJsZS5zb3J0YWJsZXNbXzdiYy5pZF07Cit9LGRlc3Ryb3k6ZnVuY3Rpb24oXzdiZCl7Cit2YXIgcz1Nb2NoaUtpdC5Tb3J0YWJsZS5vcHRpb25zKF83YmQpOwordmFyIGI9TW9jaGlLaXQuQmFzZTsKK3ZhciBkPU1vY2hpS2l0LkRyYWdBbmREcm9wOworaWYocyl7CitNb2NoaUtpdC5TaWduYWwuZGlzY29ubmVjdChzLnN0YXJ0SGFuZGxlKTsKK01vY2hpS2l0LlNpZ25hbC5kaXNjb25uZWN0KHMuZW5kSGFuZGxlKTsKK2IubWFwKGZ1bmN0aW9uKGRyKXsKK2QuRHJvcHBhYmxlcy5yZW1vdmUoZHIpOworfSxzLmRyb3BwYWJsZXMpOworYi5tYXAoZnVuY3Rpb24oZHIpeworZHIuZGVzdHJveSgpOworfSxzLmRyYWdnYWJsZXMpOworZGVsZXRlIE1vY2hpS2l0LlNvcnRhYmxlLnNvcnRhYmxlc1tzLmVsZW1lbnQuaWRdOworfQorfSxjcmVhdGU6ZnVuY3Rpb24oXzdjMyxfN2M0KXsKK183YzM9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzdjMyk7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Tb3J0YWJsZTsKK3NlbGYuX2NyZWF0ZUVsZW1lbnRJZChfN2MzKTsKK183YzQ9TW9jaGlLaXQuQmFzZS51cGRhdGUoe2VsZW1lbnQ6XzdjMyx0YWc6ImxpIixkcm9wT25FbXB0eTpmYWxzZSx0cmVlOmZhbHNlLHRyZWVUYWc6InVsIixvdmVybGFwOiJ2ZXJ0aWNhbCIsY29uc3RyYWludDoidmVydGljYWwiLGNvbnRhaW5tZW50OltfN2MzXSxoYW5kbGU6ZmFsc2Usb25seTpmYWxzZSxob3ZlcmNsYXNzOm51bGwsZ2hvc3Rpbmc6ZmFsc2Usc2Nyb2xsOmZhbHNlLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjE1LGZvcm1hdDovXlteX10qXyguKikkLyxvbkNoYW5nZTpNb2NoaUtpdC5CYXNlLm5vb3Asb25VcGRhdGU6TW9jaGlLaXQuQmFzZS5ub29wLGFjY2VwdDpudWxsfSxfN2M0KTsKK3NlbGYuZGVzdHJveShfN2MzKTsKK3ZhciBfN2M2PXtyZXZlcnQ6dHJ1ZSxnaG9zdGluZzpfN2M0Lmdob3N0aW5nLHNjcm9sbDpfN2M0LnNjcm9sbCxzY3JvbGxTZW5zaXRpdml0eTpfN2M0LnNjcm9sbFNlbnNpdGl2aXR5LHNjcm9sbFNwZWVkOl83YzQuc2Nyb2xsU3BlZWQsY29uc3RyYWludDpfN2M0LmNvbnN0cmFpbnQsaGFuZGxlOl83YzQuaGFuZGxlfTsKK2lmKF83YzQuc3RhcnRlZmZlY3QpeworXzdjNi5zdGFydGVmZmVjdD1fN2M0LnN0YXJ0ZWZmZWN0OworfQoraWYoXzdjNC5yZXZlcnRlZmZlY3QpeworXzdjNi5yZXZlcnRlZmZlY3Q9XzdjNC5yZXZlcnRlZmZlY3Q7Cit9ZWxzZXsKK2lmKF83YzQuZ2hvc3RpbmcpeworXzdjNi5yZXZlcnRlZmZlY3Q9ZnVuY3Rpb24oXzdjNyl7CitfN2M3LnN0eWxlLnRvcD0wOworXzdjNy5zdHlsZS5sZWZ0PTA7Cit9OworfQorfQoraWYoXzdjNC5lbmRlZmZlY3QpeworXzdjNi5lbmRlZmZlY3Q9XzdjNC5lbmRlZmZlY3Q7Cit9CitpZihfN2M0LnppbmRleCl7CitfN2M2LnppbmRleD1fN2M0LnppbmRleDsKK30KK3ZhciBfN2M4PXtvdmVybGFwOl83YzQub3ZlcmxhcCxjb250YWlubWVudDpfN2M0LmNvbnRhaW5tZW50LGhvdmVyY2xhc3M6XzdjNC5ob3ZlcmNsYXNzLG9uaG92ZXI6c2VsZi5vbkhvdmVyLHRyZWU6XzdjNC50cmVlLGFjY2VwdDpfN2M0LmFjY2VwdH07Cit2YXIgXzdjOT17b25ob3ZlcjpzZWxmLm9uRW1wdHlIb3ZlcixvdmVybGFwOl83YzQub3ZlcmxhcCxjb250YWlubWVudDpfN2M0LmNvbnRhaW5tZW50LGhvdmVyY2xhc3M6XzdjNC5ob3ZlcmNsYXNzLGFjY2VwdDpfN2M0LmFjY2VwdH07CitNb2NoaUtpdC5ET00ucmVtb3ZlRW1wdHlUZXh0Tm9kZXMoXzdjMyk7CitfN2M0LmRyYWdnYWJsZXM9W107CitfN2M0LmRyb3BwYWJsZXM9W107CitpZihfN2M0LmRyb3BPbkVtcHR5fHxfN2M0LnRyZWUpeworbmV3IE1vY2hpS2l0LkRyYWdBbmREcm9wLkRyb3BwYWJsZShfN2MzLF83YzkpOworXzdjNC5kcm9wcGFibGVzLnB1c2goXzdjMyk7Cit9CitNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihlKXsKK3ZhciBfN2NiPV83YzQuaGFuZGxlP01vY2hpS2l0LkRPTS5nZXRGaXJzdEVsZW1lbnRCeVRhZ0FuZENsYXNzTmFtZShudWxsLF83YzQuaGFuZGxlLGUpOmU7CitfN2M0LmRyYWdnYWJsZXMucHVzaChuZXcgTW9jaGlLaXQuRHJhZ0FuZERyb3AuRHJhZ2dhYmxlKGUsTW9jaGlLaXQuQmFzZS51cGRhdGUoXzdjNix7aGFuZGxlOl83Y2J9KSkpOworbmV3IE1vY2hpS2l0LkRyYWdBbmREcm9wLkRyb3BwYWJsZShlLF83YzgpOworaWYoXzdjNC50cmVlKXsKK2UudHJlZU5vZGU9XzdjMzsKK30KK183YzQuZHJvcHBhYmxlcy5wdXNoKGUpOworfSwoc2VsZi5maW5kRWxlbWVudHMoXzdjMyxfN2M0KXx8W10pKTsKK2lmKF83YzQudHJlZSl7CitNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihlKXsKK25ldyBNb2NoaUtpdC5EcmFnQW5kRHJvcC5Ecm9wcGFibGUoZSxfN2M5KTsKK2UudHJlZU5vZGU9XzdjMzsKK183YzQuZHJvcHBhYmxlcy5wdXNoKGUpOworfSwoc2VsZi5maW5kVHJlZUVsZW1lbnRzKF83YzMsXzdjNCl8fFtdKSk7Cit9CitzZWxmLnNvcnRhYmxlc1tfN2MzLmlkXT1fN2M0OworXzdjNC5sYXN0VmFsdWU9c2VsZi5zZXJpYWxpemUoXzdjMyk7CitfN2M0LnN0YXJ0SGFuZGxlPU1vY2hpS2l0LlNpZ25hbC5jb25uZWN0KE1vY2hpS2l0LkRyYWdBbmREcm9wLkRyYWdnYWJsZXMsInN0YXJ0IixNb2NoaUtpdC5CYXNlLnBhcnRpYWwoc2VsZi5vblN0YXJ0LF83YzMpKTsKK183YzQuZW5kSGFuZGxlPU1vY2hpS2l0LlNpZ25hbC5jb25uZWN0KE1vY2hpS2l0LkRyYWdBbmREcm9wLkRyYWdnYWJsZXMsImVuZCIsTW9jaGlLaXQuQmFzZS5wYXJ0aWFsKHNlbGYub25FbmQsXzdjMykpOworfSxvblN0YXJ0OmZ1bmN0aW9uKF83Y2QsXzdjZSl7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Tb3J0YWJsZTsKK3ZhciBfN2QwPXNlbGYub3B0aW9ucyhfN2NkKTsKK183ZDAubGFzdFZhbHVlPXNlbGYuc2VyaWFsaXplKF83ZDAuZWxlbWVudCk7Cit9LG9uRW5kOmZ1bmN0aW9uKF83ZDEsXzdkMil7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Tb3J0YWJsZTsKK3NlbGYudW5tYXJrKCk7Cit2YXIgXzdkND1zZWxmLm9wdGlvbnMoXzdkMSk7CitpZihfN2Q0Lmxhc3RWYWx1ZSE9c2VsZi5zZXJpYWxpemUoXzdkNC5lbGVtZW50KSl7CitfN2Q0Lm9uVXBkYXRlKF83ZDQuZWxlbWVudCk7Cit9Cit9LGZpbmRFbGVtZW50czpmdW5jdGlvbihfN2Q1LF83ZDYpeworcmV0dXJuIE1vY2hpS2l0LlNvcnRhYmxlLmZpbmRDaGlsZHJlbihfN2Q1LF83ZDYub25seSxfN2Q2LnRyZWUsXzdkNi50YWcpOworfSxmaW5kVHJlZUVsZW1lbnRzOmZ1bmN0aW9uKF83ZDcsXzdkOCl7CityZXR1cm4gTW9jaGlLaXQuU29ydGFibGUuZmluZENoaWxkcmVuKF83ZDcsXzdkOC5vbmx5LF83ZDgudHJlZT90cnVlOmZhbHNlLF83ZDgudHJlZVRhZyk7Cit9LGZpbmRDaGlsZHJlbjpmdW5jdGlvbihfN2Q5LG9ubHksXzdkYixfN2RjKXsKK2lmKCFfN2Q5Lmhhc0NoaWxkTm9kZXMoKSl7CityZXR1cm4gbnVsbDsKK30KK183ZGM9XzdkYy50b1VwcGVyQ2FzZSgpOworaWYob25seSl7Citvbmx5PU1vY2hpS2l0LkJhc2UuZmxhdHRlbkFycmF5KFtvbmx5XSk7Cit9Cit2YXIgXzdkZD1bXTsKK01vY2hpS2l0LkJhc2UubWFwKGZ1bmN0aW9uKGUpeworaWYoZS50YWdOYW1lJiZlLnRhZ05hbWUudG9VcHBlckNhc2UoKT09XzdkYyYmKCFvbmx5fHxNb2NoaUtpdC5JdGVyLnNvbWUob25seSxmdW5jdGlvbihjKXsKK3JldHVybiBNb2NoaUtpdC5ET00uaGFzRWxlbWVudENsYXNzKGUsYyk7Cit9KSkpeworXzdkZC5wdXNoKGUpOworfQoraWYoXzdkYil7Cit2YXIgXzdlMD1Nb2NoaUtpdC5Tb3J0YWJsZS5maW5kQ2hpbGRyZW4oZSxvbmx5LF83ZGIsXzdkYyk7CitpZihfN2UwJiZfN2UwLmxlbmd0aD4wKXsKK183ZGQ9XzdkZC5jb25jYXQoXzdlMCk7Cit9Cit9Cit9LF83ZDkuY2hpbGROb2Rlcyk7CityZXR1cm4gXzdkZDsKK30sb25Ib3ZlcjpmdW5jdGlvbihfN2UxLF83ZTIsXzdlMyl7CitpZihNb2NoaUtpdC5ET00uaXNDaGlsZE5vZGUoXzdlMixfN2UxKSl7CityZXR1cm47Cit9Cit2YXIgc2VsZj1Nb2NoaUtpdC5Tb3J0YWJsZTsKK2lmKF83ZTM+MC4zMyYmXzdlMzwwLjY2JiZzZWxmLm9wdGlvbnMoXzdlMikudHJlZSl7CityZXR1cm47Cit9ZWxzZXsKK2lmKF83ZTM+MC41KXsKK3NlbGYubWFyayhfN2UyLCJiZWZvcmUiKTsKK2lmKF83ZTIucHJldmlvdXNTaWJsaW5nIT1fN2UxKXsKK3ZhciBfN2U1PV83ZTEucGFyZW50Tm9kZTsKK183ZTEuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjsKK183ZTIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoXzdlMSxfN2UyKTsKK2lmKF83ZTIucGFyZW50Tm9kZSE9XzdlNSl7CitzZWxmLm9wdGlvbnMoXzdlNSkub25DaGFuZ2UoXzdlMSk7Cit9CitzZWxmLm9wdGlvbnMoXzdlMi5wYXJlbnROb2RlKS5vbkNoYW5nZShfN2UxKTsKK30KK31lbHNleworc2VsZi5tYXJrKF83ZTIsImFmdGVyIik7Cit2YXIgXzdlNj1fN2UyLm5leHRTaWJsaW5nfHxudWxsOworaWYoXzdlNiE9XzdlMSl7Cit2YXIgXzdlNT1fN2UxLnBhcmVudE5vZGU7CitfN2UxLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7CitfN2UyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKF83ZTEsXzdlNik7CitpZihfN2UyLnBhcmVudE5vZGUhPV83ZTUpeworc2VsZi5vcHRpb25zKF83ZTUpLm9uQ2hhbmdlKF83ZTEpOworfQorc2VsZi5vcHRpb25zKF83ZTIucGFyZW50Tm9kZSkub25DaGFuZ2UoXzdlMSk7Cit9Cit9Cit9Cit9LF9vZmZzZXRTaXplOmZ1bmN0aW9uKF83ZTcsdHlwZSl7CitpZih0eXBlPT0idmVydGljYWwifHx0eXBlPT0iaGVpZ2h0Iil7CityZXR1cm4gXzdlNy5vZmZzZXRIZWlnaHQ7Cit9ZWxzZXsKK3JldHVybiBfN2U3Lm9mZnNldFdpZHRoOworfQorfSxvbkVtcHR5SG92ZXI6ZnVuY3Rpb24oXzdlOSxfN2VhLF83ZWIpewordmFyIF83ZWM9XzdlOS5wYXJlbnROb2RlOwordmFyIHNlbGY9TW9jaGlLaXQuU29ydGFibGU7Cit2YXIgXzdlZT1zZWxmLm9wdGlvbnMoXzdlYSk7CitpZighTW9jaGlLaXQuRE9NLmlzQ2hpbGROb2RlKF83ZWEsXzdlOSkpewordmFyIF83ZWY7Cit2YXIgXzdmMD1zZWxmLmZpbmRFbGVtZW50cyhfN2VhLHt0YWc6XzdlZS50YWcsb25seTpfN2VlLm9ubHl9KTsKK3ZhciBfN2YxPW51bGw7CitpZihfN2YwKXsKK3ZhciBfN2YyPXNlbGYuX29mZnNldFNpemUoXzdlYSxfN2VlLm92ZXJsYXApKigxLV83ZWIpOworZm9yKF83ZWY9MDtfN2VmPF83ZjAubGVuZ3RoO183ZWYrPTEpeworaWYoXzdmMi1zZWxmLl9vZmZzZXRTaXplKF83ZjBbXzdlZl0sXzdlZS5vdmVybGFwKT49MCl7CitfN2YyLT1zZWxmLl9vZmZzZXRTaXplKF83ZjBbXzdlZl0sXzdlZS5vdmVybGFwKTsKK31lbHNleworaWYoXzdmMi0oc2VsZi5fb2Zmc2V0U2l6ZShfN2YwW183ZWZdLF83ZWUub3ZlcmxhcCkvMik+PTApeworXzdmMT1fN2VmKzE8XzdmMC5sZW5ndGg/XzdmMFtfN2VmKzFdOm51bGw7CiticmVhazsKK31lbHNleworXzdmMT1fN2YwW183ZWZdOworYnJlYWs7Cit9Cit9Cit9Cit9CitfN2VhLmluc2VydEJlZm9yZShfN2U5LF83ZjEpOworc2VsZi5vcHRpb25zKF83ZWMpLm9uQ2hhbmdlKF83ZTkpOworXzdlZS5vbkNoYW5nZShfN2U5KTsKK30KK30sdW5tYXJrOmZ1bmN0aW9uKCl7Cit2YXIgbT1Nb2NoaUtpdC5Tb3J0YWJsZS5fbWFya2VyOworaWYobSl7CitNb2NoaUtpdC5TdHlsZS5oaWRlRWxlbWVudChtKTsKK30KK30sbWFyazpmdW5jdGlvbihfN2Y0LF83ZjUpewordmFyIGQ9TW9jaGlLaXQuRE9NOwordmFyIHNlbGY9TW9jaGlLaXQuU29ydGFibGU7Cit2YXIgXzdmOD1zZWxmLm9wdGlvbnMoXzdmNC5wYXJlbnROb2RlKTsKK2lmKF83ZjgmJiFfN2Y4Lmdob3N0aW5nKXsKK3JldHVybjsKK30KK2lmKCFzZWxmLl9tYXJrZXIpeworc2VsZi5fbWFya2VyPWQuZ2V0RWxlbWVudCgiZHJvcG1hcmtlciIpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKK01vY2hpS2l0LlN0eWxlLmhpZGVFbGVtZW50KHNlbGYuX21hcmtlcik7CitkLmFkZEVsZW1lbnRDbGFzcyhzZWxmLl9tYXJrZXIsImRyb3BtYXJrZXIiKTsKK3NlbGYuX21hcmtlci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiOworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKS5pdGVtKDApLmFwcGVuZENoaWxkKHNlbGYuX21hcmtlcik7Cit9Cit2YXIgXzdmOT1Nb2NoaUtpdC5Qb3NpdGlvbi5jdW11bGF0aXZlT2Zmc2V0KF83ZjQpOworc2VsZi5fbWFya2VyLnN0eWxlLmxlZnQ9XzdmOS54KyJweCI7CitzZWxmLl9tYXJrZXIuc3R5bGUudG9wPV83ZjkueSsicHgiOworaWYoXzdmNT09ImFmdGVyIil7CitpZihfN2Y4Lm92ZXJsYXA9PSJob3Jpem9udGFsIil7CitzZWxmLl9tYXJrZXIuc3R5bGUubGVmdD0oXzdmOS54K183ZjQuY2xpZW50V2lkdGgpKyJweCI7Cit9ZWxzZXsKK3NlbGYuX21hcmtlci5zdHlsZS50b3A9KF83ZjkueStfN2Y0LmNsaWVudEhlaWdodCkrInB4IjsKK30KK30KK01vY2hpS2l0LlN0eWxlLnNob3dFbGVtZW50KHNlbGYuX21hcmtlcik7Cit9LF90cmVlOmZ1bmN0aW9uKF83ZmEsXzdmYixfN2ZjKXsKK3ZhciBzZWxmPU1vY2hpS2l0LlNvcnRhYmxlOwordmFyIF83ZmU9c2VsZi5maW5kRWxlbWVudHMoXzdmYSxfN2ZiKXx8W107Citmb3IodmFyIGk9MDtpPF83ZmUubGVuZ3RoOysraSl7Cit2YXIgXzgwMD1fN2ZlW2ldLmlkLm1hdGNoKF83ZmIuZm9ybWF0KTsKK2lmKCFfODAwKXsKK2NvbnRpbnVlOworfQordmFyIF84MDE9e2lkOmVuY29kZVVSSUNvbXBvbmVudChfODAwP184MDBbMV06bnVsbCksZWxlbWVudDpfN2ZhLHBhcmVudDpfN2ZjLGNoaWxkcmVuOltdLHBvc2l0aW9uOl83ZmMuY2hpbGRyZW4ubGVuZ3RoLGNvbnRhaW5lcjpzZWxmLl9maW5kQ2hpbGRyZW5FbGVtZW50KF83ZmVbaV0sXzdmYi50cmVlVGFnLnRvVXBwZXJDYXNlKCkpfTsKK2lmKF84MDEuY29udGFpbmVyKXsKK3NlbGYuX3RyZWUoXzgwMS5jb250YWluZXIsXzdmYixfODAxKTsKK30KK183ZmMuY2hpbGRyZW4ucHVzaChfODAxKTsKK30KK3JldHVybiBfN2ZjOworfSxfZmluZENoaWxkcmVuRWxlbWVudDpmdW5jdGlvbihfODAyLF84MDMpeworaWYoXzgwMiYmXzgwMi5oYXNDaGlsZE5vZGVzKXsKK184MDM9XzgwMy50b1VwcGVyQ2FzZSgpOworZm9yKHZhciBpPTA7aTxfODAyLmNoaWxkTm9kZXMubGVuZ3RoOysraSl7CitpZihfODAyLmNoaWxkTm9kZXNbaV0udGFnTmFtZS50b1VwcGVyQ2FzZSgpPT1fODAzKXsKK3JldHVybiBfODAyLmNoaWxkTm9kZXNbaV07Cit9Cit9Cit9CityZXR1cm4gbnVsbDsKK30sdHJlZTpmdW5jdGlvbihfODA1LF84MDYpeworXzgwNT1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfODA1KTsKK3ZhciBfODA3PU1vY2hpS2l0LlNvcnRhYmxlLm9wdGlvbnMoXzgwNSk7CitfODA2PU1vY2hpS2l0LkJhc2UudXBkYXRlKHt0YWc6XzgwNy50YWcsdHJlZVRhZzpfODA3LnRyZWVUYWcsb25seTpfODA3Lm9ubHksbmFtZTpfODA1LmlkLGZvcm1hdDpfODA3LmZvcm1hdH0sXzgwNnx8e30pOwordmFyIHJvb3Q9e2lkOm51bGwscGFyZW50Om51bGwsY2hpbGRyZW46bmV3IEFycmF5LGNvbnRhaW5lcjpfODA1LHBvc2l0aW9uOjB9OworcmV0dXJuIE1vY2hpS2l0LlNvcnRhYmxlLl90cmVlKF84MDUsXzgwNixyb290KTsKK30sc2V0U2VxdWVuY2U6ZnVuY3Rpb24oXzgwOSxfODBhLF84MGIpewordmFyIHNlbGY9TW9jaGlLaXQuU29ydGFibGU7Cit2YXIgYj1Nb2NoaUtpdC5CYXNlOworXzgwOT1Nb2NoaUtpdC5ET00uZ2V0RWxlbWVudChfODA5KTsKK184MGI9Yi51cGRhdGUoc2VsZi5vcHRpb25zKF84MDkpLF84MGJ8fHt9KTsKK3ZhciBfODBlPXt9OworYi5tYXAoZnVuY3Rpb24obil7Cit2YXIgbT1uLmlkLm1hdGNoKF84MGIuZm9ybWF0KTsKK2lmKG0peworXzgwZVttWzFdXT1bbixuLnBhcmVudE5vZGVdOworfQorbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pOworfSxzZWxmLmZpbmRFbGVtZW50cyhfODA5LF84MGIpKTsKK2IubWFwKGZ1bmN0aW9uKF84MTEpewordmFyIG49XzgwZVtfODExXTsKK2lmKG4peworblsxXS5hcHBlbmRDaGlsZChuWzBdKTsKK2RlbGV0ZSBfODBlW184MTFdOworfQorfSxfODBhKTsKK30sX2NvbnN0cnVjdEluZGV4OmZ1bmN0aW9uKG5vZGUpewordmFyIF84MTQ9IiI7Citkb3sKK2lmKG5vZGUuaWQpeworXzgxND0iWyIrbm9kZS5wb3NpdGlvbisiXSIrXzgxNDsKK30KK313aGlsZSgobm9kZT1ub2RlLnBhcmVudCkhPW51bGwpOworcmV0dXJuIF84MTQ7Cit9LHNlcXVlbmNlOmZ1bmN0aW9uKF84MTUsXzgxNil7CitfODE1PU1vY2hpS2l0LkRPTS5nZXRFbGVtZW50KF84MTUpOwordmFyIHNlbGY9TW9jaGlLaXQuU29ydGFibGU7Cit2YXIgXzgxNj1Nb2NoaUtpdC5CYXNlLnVwZGF0ZShzZWxmLm9wdGlvbnMoXzgxNSksXzgxNnx8e30pOworcmV0dXJuIE1vY2hpS2l0LkJhc2UubWFwKGZ1bmN0aW9uKGl0ZW0peworcmV0dXJuIGl0ZW0uaWQubWF0Y2goXzgxNi5mb3JtYXQpP2l0ZW0uaWQubWF0Y2goXzgxNi5mb3JtYXQpWzFdOiIiOworfSxNb2NoaUtpdC5ET00uZ2V0RWxlbWVudChzZWxmLmZpbmRFbGVtZW50cyhfODE1LF84MTYpfHxbXSkpOworfSxzZXJpYWxpemU6ZnVuY3Rpb24oXzgxOSxfODFhKXsKK184MTk9TW9jaGlLaXQuRE9NLmdldEVsZW1lbnQoXzgxOSk7Cit2YXIgc2VsZj1Nb2NoaUtpdC5Tb3J0YWJsZTsKK184MWE9TW9jaGlLaXQuQmFzZS51cGRhdGUoc2VsZi5vcHRpb25zKF84MTkpLF84MWF8fHt9KTsKK3ZhciBuYW1lPWVuY29kZVVSSUNvbXBvbmVudChfODFhLm5hbWV8fF84MTkuaWQpOworaWYoXzgxYS50cmVlKXsKK3JldHVybiBNb2NoaUtpdC5CYXNlLmZsYXR0ZW5BcnJheShNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihpdGVtKXsKK3JldHVybiBbbmFtZStzZWxmLl9jb25zdHJ1Y3RJbmRleChpdGVtKSsiW2lkXT0iK2VuY29kZVVSSUNvbXBvbmVudChpdGVtLmlkKV0uY29uY2F0KGl0ZW0uY2hpbGRyZW4ubWFwKGFyZ3VtZW50cy5jYWxsZWUpKTsKK30sc2VsZi50cmVlKF84MTksXzgxYSkuY2hpbGRyZW4pKS5qb2luKCImIik7Cit9ZWxzZXsKK3JldHVybiBNb2NoaUtpdC5CYXNlLm1hcChmdW5jdGlvbihpdGVtKXsKK3JldHVybiBuYW1lKyJbXT0iK2VuY29kZVVSSUNvbXBvbmVudChpdGVtKTsKK30sc2VsZi5zZXF1ZW5jZShfODE5LF84MWEpKS5qb2luKCImIik7Cit9Cit9fSk7CitNb2NoaUtpdC5Tb3J0YWJsZS5Tb3J0YWJsZT1Nb2NoaUtpdC5Tb3J0YWJsZTsKK01vY2hpS2l0LlNvcnRhYmxlLl9fbmV3X189ZnVuY3Rpb24oKXsKK01vY2hpS2l0LkJhc2UubmFtZUZ1bmN0aW9ucyh0aGlzKTsKK3RoaXMuRVhQT1JUX1RBR1M9eyI6Y29tbW9uIjp0aGlzLkVYUE9SVCwiOmFsbCI6TW9jaGlLaXQuQmFzZS5jb25jYXQodGhpcy5FWFBPUlQsdGhpcy5FWFBPUlRfT0spfTsKK307CitNb2NoaUtpdC5Tb3J0YWJsZS5fX25ld19fKCk7CitNb2NoaUtpdC5CYXNlLl9leHBvcnRTeW1ib2xzKHRoaXMsTW9jaGlLaXQuU29ydGFibGUpOworaWYodHlwZW9mIChNb2NoaUtpdCk9PSJ1bmRlZmluZWQiKXsKK01vY2hpS2l0PXt9OworfQoraWYodHlwZW9mIChNb2NoaUtpdC5Nb2NoaUtpdCk9PSJ1bmRlZmluZWQiKXsKK01vY2hpS2l0Lk1vY2hpS2l0PXt9OworfQorTW9jaGlLaXQuTW9jaGlLaXQuTkFNRT0iTW9jaGlLaXQuTW9jaGlLaXQiOworTW9jaGlLaXQuTW9jaGlLaXQuVkVSU0lPTj0iMS40LjIiOworTW9jaGlLaXQuTW9jaGlLaXQuX19yZXByX189ZnVuY3Rpb24oKXsKK3JldHVybiAiWyIrdGhpcy5OQU1FKyIgIit0aGlzLlZFUlNJT04rIl0iOworfTsKK01vY2hpS2l0Lk1vY2hpS2l0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7CityZXR1cm4gdGhpcy5fX3JlcHJfXygpOworfTsKK01vY2hpS2l0Lk1vY2hpS2l0LlNVQk1PRFVMRVM9WyJCYXNlIiwiSXRlciIsIkxvZ2dpbmciLCJEYXRlVGltZSIsIkZvcm1hdCIsIkFzeW5jIiwiRE9NIiwiU2VsZWN0b3IiLCJTdHlsZSIsIkxvZ2dpbmdQYW5lIiwiQ29sb3IiLCJTaWduYWwiLCJQb3NpdGlvbiIsIlZpc3VhbCIsIkRyYWdBbmREcm9wIiwiU29ydGFibGUiXTsKK2lmKHR5cGVvZiAoSlNBTikhPSJ1bmRlZmluZWQifHx0eXBlb2YgKGRvam8pIT0idW5kZWZpbmVkIil7CitpZih0eXBlb2YgKGRvam8pIT0idW5kZWZpbmVkIil7Citkb2pvLnByb3ZpZGUoIk1vY2hpS2l0Lk1vY2hpS2l0Iik7CisoZnVuY3Rpb24obHN0KXsKK2Zvcih2YXIgaT0wO2k8bHN0Lmxlbmd0aDtpKyspeworZG9qby5yZXF1aXJlKCJNb2NoaUtpdC4iK2xzdFtpXSk7Cit9Cit9KShNb2NoaUtpdC5Nb2NoaUtpdC5TVUJNT0RVTEVTKTsKK30KK2lmKHR5cGVvZiAoSlNBTikhPSJ1bmRlZmluZWQiKXsKKyhmdW5jdGlvbihsc3QpeworZm9yKHZhciBpPTA7aTxsc3QubGVuZ3RoO2krKyl7CitKU0FOLnVzZSgiTW9jaGlLaXQuIitsc3RbaV0sW10pOworfQorfSkoTW9jaGlLaXQuTW9jaGlLaXQuU1VCTU9EVUxFUyk7Cit9CisoZnVuY3Rpb24oKXsKK3ZhciBfODIzPU1vY2hpS2l0LkJhc2UuZXh0ZW5kOwordmFyIHNlbGY9TW9jaGlLaXQuTW9jaGlLaXQ7Cit2YXIgXzgyNT1zZWxmLlNVQk1PRFVMRVM7Cit2YXIgXzgyNj1bXTsKK3ZhciBfODI3PVtdOwordmFyIF84Mjg9e307Cit2YXIgaSxrLG0sYWxsOworZm9yKGk9MDtpPF84MjUubGVuZ3RoO2krKyl7CittPU1vY2hpS2l0W184MjVbaV1dOworXzgyMyhfODI2LG0uRVhQT1JUKTsKK184MjMoXzgyNyxtLkVYUE9SVF9PSyk7Citmb3IoayBpbiBtLkVYUE9SVF9UQUdTKXsKK184Mjhba109XzgyMyhfODI4W2tdLG0uRVhQT1JUX1RBR1Nba10pOworfQorYWxsPW0uRVhQT1JUX1RBR1NbIjphbGwiXTsKK2lmKCFhbGwpeworYWxsPV84MjMobnVsbCxtLkVYUE9SVCxtLkVYUE9SVF9PSyk7Cit9Cit2YXIgajsKK2ZvcihqPTA7ajxhbGwubGVuZ3RoO2orKyl7CitrPWFsbFtqXTsKK3NlbGZba109bVtrXTsKK30KK30KK3NlbGYuRVhQT1JUPV84MjY7CitzZWxmLkVYUE9SVF9PSz1fODI3Oworc2VsZi5FWFBPUlRfVEFHUz1fODI4OworfSgpKTsKK31lbHNleworaWYodHlwZW9mIChNb2NoaUtpdC5fX2NvbXBhdF9fKT09InVuZGVmaW5lZCIpeworTW9jaGlLaXQuX19jb21wYXRfXz10cnVlOworfQorKGZ1bmN0aW9uKCl7CitpZih0eXBlb2YgKGRvY3VtZW50KT09InVuZGVmaW5lZCIpeworcmV0dXJuOworfQordmFyIF84MmU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpOwordmFyIF84MmY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwordmFyIF84MzA9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKK3ZhciBfODMxPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIjsKK3ZhciBfODMyPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL2tleW1hc3Rlci9nYXRla2VlcGVyL3RoZXJlLmlzLm9ubHkueHVsIjsKK3ZhciBiYXNlPW51bGw7Cit2YXIgXzgzND1udWxsOwordmFyIF84MzU9e307Cit2YXIgaTsKK3ZhciBzcmM7Citmb3IoaT0wO2k8XzgyZS5sZW5ndGg7aSsrKXsKK3NyYz1udWxsOworc3dpdGNoKF84MmVbaV0ubmFtZXNwYWNlVVJJKXsKK2Nhc2UgXzgzMDoKK3NyYz1fODJlW2ldLmdldEF0dHJpYnV0ZU5TKF84MzEsImhyZWYiKTsKK2JyZWFrOworZGVmYXVsdDoKK3NyYz1fODJlW2ldLmdldEF0dHJpYnV0ZSgic3JjIik7CiticmVhazsKK30KK2lmKCFzcmMpeworY29udGludWU7Cit9CitfODM1W3NyY109dHJ1ZTsKK2lmKHNyYy5tYXRjaCgvTW9jaGlLaXQuanMoXD8uKik/JC8pKXsKK2Jhc2U9c3JjLnN1YnN0cmluZygwLHNyYy5sYXN0SW5kZXhPZigiTW9jaGlLaXQuanMiKSk7CitfODM0PV84MmVbaV07Cit9Cit9CitpZihiYXNlPT09bnVsbCl7CityZXR1cm47Cit9Cit2YXIgXzgzOD1Nb2NoaUtpdC5Nb2NoaUtpdC5TVUJNT0RVTEVTOworZm9yKHZhciBpPTA7aTxfODM4Lmxlbmd0aDtpKyspeworaWYoTW9jaGlLaXRbXzgzOFtpXV0peworY29udGludWU7Cit9Cit2YXIgdXJpPWJhc2UrXzgzOFtpXSsiLmpzIjsKK2lmKHVyaSBpbiBfODM1KXsKK2NvbnRpbnVlOworfQoraWYoXzgzNC5uYW1lc3BhY2VVUkk9PV84MzB8fF84MzQubmFtZXNwYWNlVVJJPT1fODMyKXsKK3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhfODM0Lm5hbWVzcGFjZVVSSSwic2NyaXB0Iik7CitzLnNldEF0dHJpYnV0ZSgiaWQiLCJNb2NoaUtpdF8iK2Jhc2UrXzgzOFtpXSk7CitpZihfODM0Lm5hbWVzcGFjZVVSST09XzgzMCl7CitzLnNldEF0dHJpYnV0ZU5TKF84MzEsImhyZWYiLHVyaSk7Cit9ZWxzZXsKK3Muc2V0QXR0cmlidXRlKCJzcmMiLHVyaSk7Cit9CitzLnNldEF0dHJpYnV0ZSgidHlwZSIsImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIpOworXzgzNC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHMpOworfWVsc2V7Citkb2N1bWVudC53cml0ZSgiPCIrXzgzNC5ub2RlTmFtZSsiIHNyYz1cIiIrdXJpKyJcIiB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+PC9zY3JpcHQ+Iik7Cit9Cit9Cit9KSgpOworfQorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL2RlYnVnLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vbWVkaWEvZGVidWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdmOWRmMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL2RlYnVnLmpzCkBAIC0wLDAgKzEsMTYxIEBACitmdW5jdGlvbiBzaG93RnJhbWUoYW5jaG9yKSB7CisgICAgdmFyIHRiaWQgPSBhbmNob3IuZ2V0QXR0cmlidXRlKCd0YmlkJyk7CisgICAgdmFyIGV4cGFuZGVkID0gYW5jaG9yLmV4cGFuZGVkOworICAgIGlmIChleHBhbmRlZCkgeworICAgICAgICBNb2NoaUtpdC5ET00uaGlkZUVsZW1lbnQoYW5jaG9yLmV4cGFuZGVkRWxlbWVudCk7CisgICAgICAgIGFuY2hvci5leHBhbmRlZCA9IGZhbHNlOworICAgICAgICBfc3dhcEltYWdlKGFuY2hvcik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgYW5jaG9yLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICBpZiAoYW5jaG9yLmV4cGFuZGVkRWxlbWVudCkgeworICAgICAgICBNb2NoaUtpdC5ET00uc2hvd0VsZW1lbnQoYW5jaG9yLmV4cGFuZGVkRWxlbWVudCk7CisgICAgICAgIF9zd2FwSW1hZ2UoYW5jaG9yKTsKKyAgICAgICAgJCgnZGVidWdfaW5wdXRfJyt0YmlkKS5mb2N1cygpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHZhciB1cmwgPSBkZWJ1Z19iYXNlCisgICAgICAgICsgJy9zaG93X2ZyYW1lP3RiaWQ9JyArIHRiaWQKKyAgICAgICAgKyAnJmRlYnVnY291bnQ9JyArIGRlYnVnX2NvdW50OworICAgIHZhciBkID0gTW9jaGlLaXQuQXN5bmMuZG9TaW1wbGVYTUxIdHRwUmVxdWVzdCh1cmwpOworICAgIGQuYWRkQ2FsbGJhY2tzKGZ1bmN0aW9uIChkYXRhKSB7CisgICAgICAgIHZhciBlbCA9IE1vY2hpS2l0LkRPTS5ESVYoe30pOworICAgICAgICBhbmNob3IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWwsIGFuY2hvci5uZXh0U2libGluZyk7CisgICAgICAgIGVsLmlubmVySFRNTCA9IGRhdGEucmVzcG9uc2VUZXh0OworICAgICAgICBhbmNob3IuZXhwYW5kZWRFbGVtZW50ID0gZWw7CisgICAgICAgIF9zd2FwSW1hZ2UoYW5jaG9yKTsKKyAgICAgICAgJCgnZGVidWdfaW5wdXRfJyt0YmlkKS5mb2N1cygpOworICAgIH0sIGZ1bmN0aW9uIChlcnJvcikgeworICAgICAgICBzaG93RXJyb3IoZXJyb3IucmVxLnJlc3BvbnNlVGV4dCk7CisgICAgfSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiBfc3dhcEltYWdlKGFuY2hvcikgeworICAgIHZhciBlbCA9IGFuY2hvci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU1HJylbMF07CisgICAgaWYgKGFuY2hvci5leHBhbmRlZCkgeworICAgICAgICB2YXIgaW1nID0gJ21pbnVzLmpwZyc7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGltZyA9ICdwbHVzLmpwZyc7CisgICAgfQorICAgIGVsLnNyYyA9IGRlYnVnX2Jhc2UgKyAnL21lZGlhLycgKyBpbWc7Cit9CisKK2Z1bmN0aW9uIHN1Ym1pdElucHV0KGJ1dHRvbiwgdGJpZCkgeworICAgIHZhciBpbnB1dCA9ICQoYnV0dG9uLmdldEF0dHJpYnV0ZSgnaW5wdXQtZnJvbScpKTsKKyAgICB2YXIgb3V0cHV0ID0gJChidXR0b24uZ2V0QXR0cmlidXRlKCdvdXRwdXQtdG8nKSk7CisgICAgdmFyIHVybCA9IGRlYnVnX2Jhc2UKKyAgICAgICAgKyAnL2V4ZWNfaW5wdXQnOworICAgIHZhciBoaXN0b3J5ID0gaW5wdXQuZm9ybS5oaXN0b3J5OworICAgIGlucHV0Lmhpc3RvcnlQb3NpdGlvbiA9IDA7CisgICAgaWYgKCEgaGlzdG9yeSkgeworICAgICAgICBoaXN0b3J5ID0gaW5wdXQuZm9ybS5oaXN0b3J5ID0gW107CisgICAgfQorICAgIGhpc3RvcnkucHVzaChpbnB1dC52YWx1ZSk7CisgICAgdmFyIHZhcnMgPSB7CisgICAgICAgIHRiaWQ6IHRiaWQsCisgICAgICAgIGRlYnVnY291bnQ6IGRlYnVnX2NvdW50LAorICAgICAgICBpbnB1dDogaW5wdXQudmFsdWUKKyAgICB9OworICAgIE1vY2hpS2l0LkRPTS5zaG93RWxlbWVudChvdXRwdXQpOworICAgIHZhciBkID0gTW9jaGlLaXQuQXN5bmMuZG9TaW1wbGVYTUxIdHRwUmVxdWVzdCh1cmwsIHZhcnMpOworICAgIGQuYWRkQ2FsbGJhY2tzKGZ1bmN0aW9uIChkYXRhKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBkYXRhLnJlc3BvbnNlVGV4dDsKKyAgICAgICAgb3V0cHV0LmlubmVySFRNTCArPSByZXN1bHQ7CisgICAgICAgIGlucHV0LnZhbHVlID0gJyc7CisgICAgICAgIGlucHV0LmZvY3VzKCk7CisgICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7CisgICAgICAgIHNob3dFcnJvcihlcnJvci5yZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIHNob3dFcnJvcihtc2cpIHsKKyAgICB2YXIgZWwgPSAkKCdlcnJvci1jb250YWluZXInKTsKKyAgICBpZiAoZWwuaW5uZXJIVE1MKSB7CisgICAgICAgIGVsLmlubmVySFRNTCArPSAnPGhyIG5vc2hhZGU+XG4nICsgbXNnOworICAgIH0gZWxzZSB7CisgICAgICAgIGVsLmlubmVySFRNTCA9IG1zZzsKKyAgICB9CisgICAgTW9jaGlLaXQuRE9NLnNob3dFbGVtZW50KCdlcnJvci1hcmVhJyk7Cit9CisKK2Z1bmN0aW9uIGNsZWFyRXJyb3IoKSB7CisgICAgdmFyIGVsID0gJCgnZXJyb3ItY29udGFpbmVyJyk7CisgICAgZWwuaW5uZXJIVE1MID0gJyc7CisgICAgTW9jaGlLaXQuRE9NLmhpZGVFbGVtZW50KCdlcnJvci1hcmVhJyk7Cit9CisKK2Z1bmN0aW9uIGV4cGFuZElucHV0KGJ1dHRvbikgeworICAgIHZhciBpbnB1dCA9IGJ1dHRvbi5mb3JtLmVsZW1lbnRzLmlucHV0OworICAgIHN0ZG9wcyA9IHsKKyAgICAgICAgbmFtZTogJ2lucHV0JywKKyAgICAgICAgc3R5bGU6ICd3aWR0aDogMTAwJScsCisgICAgICAgIGF1dG9jb21wbGV0ZTogJ29mZicKKyAgICB9OworICAgIGlmIChpbnB1dC50YWdOYW1lID09ICdJTlBVVCcpIHsKKyAgICAgICAgdmFyIG5ld0VsID0gTW9jaGlLaXQuRE9NLlRFWFRBUkVBKHN0ZG9wcyk7CisgICAgICAgIHZhciB0ZXh0ID0gJ0NvbnRyYWN0JzsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGRvcHNbJ3R5cGUnXSA9ICd0ZXh0JzsKKyAgICAgICAgc3Rkb3BzWydvbmtleXByZXNzJ10gPSAndXBBcnJvdyh0aGlzKSc7CisgICAgICAgIHZhciBuZXdFbCA9IE1vY2hpS2l0LkRPTS5JTlBVVChzdGRvcHMpOworICAgICAgICB2YXIgdGV4dCA9ICdFeHBhbmQnOworICAgIH0KKyAgICBuZXdFbC52YWx1ZSA9IGlucHV0LnZhbHVlOworICAgIG5ld0VsLmlkID0gaW5wdXQuaWQ7CisgICAgTW9jaGlLaXQuRE9NLnN3YXBET00oaW5wdXQsIG5ld0VsKTsKKyAgICBuZXdFbC5mb2N1cygpOworICAgIGJ1dHRvbi52YWx1ZSA9IHRleHQ7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiB1cEFycm93KGlucHV0LCBldmVudCkgeworICAgIGlmICh3aW5kb3cuZXZlbnQpIHsKKyAgICAgICAgZXZlbnQgPSB3aW5kb3cuZXZlbnQ7CisgICAgfQorICAgIGlmIChldmVudC5rZXlDb2RlICE9IDM4ICYmIGV2ZW50LmtleUNvZGUgIT0gNDApIHsKKyAgICAgICAgLy8gbm90IGFuIHVwLSBvciBkb3duLWFycm93CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICB2YXIgZGlyID0gZXZlbnQua2V5Q29kZSA9PSAzOCA/IDEgOiAtMTsKKyAgICB2YXIgaGlzdG9yeSA9IGlucHV0LmZvcm0uaGlzdG9yeTsKKyAgICBpZiAoISBoaXN0b3J5KSB7CisgICAgICAgIGhpc3RvcnkgPSBpbnB1dC5mb3JtLmhpc3RvcnkgPSBbXTsKKyAgICB9CisgICAgdmFyIHBvcyA9IGlucHV0Lmhpc3RvcnlQb3NpdGlvbiB8fCAwOworICAgIGlmICghIHBvcyAmJiBkaXIgPT0gLTEpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmICghIHBvcyAmJiBpbnB1dC52YWx1ZSkgeworICAgICAgICBoaXN0b3J5LnB1c2goaW5wdXQudmFsdWUpOworICAgICAgICBwb3MgPSAxOworICAgIH0KKyAgICBwb3MgKz0gZGlyOworICAgIGlmIChoaXN0b3J5Lmxlbmd0aC1wb3MgPCAwKSB7CisgICAgICAgIHBvcyA9IDE7CisgICAgfQorICAgIGlmIChoaXN0b3J5Lmxlbmd0aC1wb3MgPiBoaXN0b3J5Lmxlbmd0aC0xKSB7CisgICAgICAgIGlucHV0LnZhbHVlID0gJyc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpbnB1dC5oaXN0b3J5UG9zaXRpb24gPSBwb3M7CisgICAgdmFyIGxpbmUgPSBoaXN0b3J5W2hpc3RvcnkubGVuZ3RoLXBvc107CisgICAgaW5wdXQudmFsdWUgPSBsaW5lOworfQorCitmdW5jdGlvbiBleHBhbmRMb25nKGFuY2hvcikgeworICAgIHZhciBzcGFuID0gYW5jaG9yOworICAgIHdoaWxlIChzcGFuKSB7CisgICAgICAgIGlmIChzcGFuLnN0eWxlICYmIHNwYW4uc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHNwYW4gPSBzcGFuLm5leHRTaWJsaW5nOworICAgIH0KKyAgICBpZiAoISBzcGFuKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgTW9jaGlLaXQuRE9NLnNob3dFbGVtZW50KHNwYW4pOworICAgIE1vY2hpS2l0LkRPTS5oaWRlRWxlbWVudChhbmNob3IpOworICAgIHJldHVybiBmYWxzZTsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL21pbnVzLmpwZyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL21pbnVzLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWYzMzA2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vbWVkaWEvbWludXMuanBnCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL3BsdXMuanBnIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V2YWxleGNlcHRpb24vbWVkaWEvcGx1cy5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE3YWE1ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21lZGlhL3BsdXMuanBnCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9ldmFsZXhjZXB0aW9uL21pZGRsZXdhcmUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXZhbGV4Y2VwdGlvbi9taWRkbGV3YXJlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNzg3NmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXZhbGV4Y2VwdGlvbi9taWRkbGV3YXJlLnB5CkBAIC0wLDAgKzEsNjE4IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK0V4Y2VwdGlvbi1jYXRjaGluZyBtaWRkbGV3YXJlIHRoYXQgYWxsb3dzIGludGVyYWN0aXZlIGRlYnVnZ2luZy4KKworVGhpcyBtaWRkbGV3YXJlIGNhdGNoZXMgYWxsIHVuZXhwZWN0ZWQgZXhjZXB0aW9ucy4gIEEgbm9ybWFsCit0cmFjZWJhY2ssIGxpa2UgcHJvZHVjZWQgYnkKK2BgcGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmUuRXJyb3JNaWRkbGV3YXJlYGAgaXMgZ2l2ZW4sIHBsdXMKK2NvbnRyb2xzIHRvIHNlZSBsb2NhbCB2YXJpYWJsZXMgYW5kIGV2YWx1YXRlIGV4cHJlc3Npb25zIGluIGEgbG9jYWwKK2NvbnRleHQuCisKK1RoaXMgY2FuIG9ubHkgYmUgdXNlZCBpbiBzaW5nbGUtcHJvY2VzcyBlbnZpcm9ubWVudHMsIGJlY2F1c2UKK3N1YnNlcXVlbnQgcmVxdWVzdHMgbXVzdCBnbyBiYWNrIHRvIHRoZSBzYW1lIHByb2Nlc3MgdGhhdCB0aGUKK2V4Y2VwdGlvbiBvcmlnaW5hbGx5IG9jY3VycmVkIGluLiAgVGhyZWFkZWQgb3Igbm9uLWNvbmN1cnJlbnQKK2Vudmlyb25tZW50cyBib3RoIHdvcmsuCisKK1RoaXMgc2hvdWxkbid0IGJlIHVzZWQgaW4gcHJvZHVjdGlvbiBpbiBhbnkgd2F5LiAgVGhhdCB3b3VsZCBqdXN0IGJlCitzaWxseS4KKworSWYgY2FsbGluZyBmcm9tIGFuIFhNTEh0dHBSZXF1ZXN0IGNhbGwsIGlmIHRoZSBHRVQgdmFyaWFibGUgYGBfYGAgaXMKK2dpdmVuIHRoZW4gaXQgd2lsbCBtYWtlIHRoZSByZXNwb25zZSBtb3JlIGNvbXBhY3QgKGFuZCBsZXNzCitKYXZhc2NyaXB0eSksIHNpbmNlIGlmIHlvdSB1c2UgaW5uZXJIVE1MIGl0J2xsIGtpbGwgeW91ciBicm93c2VyLiAgWW91CitjYW4gbG9vayBmb3IgdGhlIGhlYWRlciBYLURlYnVnLVVSTCBpbiB5b3VyIDUwMCByZXNwb25zZXMgaWYgeW91IHdhbnQKK3RvIHNlZSB0aGUgZnVsbCBkZWJ1Z2dhYmxlIHRyYWNlYmFjay4gIEFsc28sIHRoaXMgVVJMIGlzIHByaW50ZWQgdG8KK2Bgd3NnaS5lcnJvcnNgYCwgc28geW91IGNhbiBvcGVuIGl0IHVwIGluIGFub3RoZXIgYnJvd3NlciB3aW5kb3cuCisiIiIKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBjZ2kKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCBzaXgKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KK2ltcG9ydCBwcHJpbnQKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCB0aW1lCitpbXBvcnQgcmUKK2Zyb20gcGFzdGUuZXhjZXB0aW9ucyBpbXBvcnQgZXJyb3JtaWRkbGV3YXJlLCBmb3JtYXR0ZXIsIGNvbGxlY3RvcgorZnJvbSBwYXN0ZSBpbXBvcnQgd3NnaWxpYgorZnJvbSBwYXN0ZSBpbXBvcnQgdXJscGFyc2VyCitmcm9tIHBhc3RlIGltcG9ydCBodHRwZXhjZXB0aW9ucworZnJvbSBwYXN0ZSBpbXBvcnQgcmVnaXN0cnkKK2Zyb20gcGFzdGUgaW1wb3J0IHJlcXVlc3QKK2Zyb20gcGFzdGUgaW1wb3J0IHJlc3BvbnNlCitmcm9tIHBhc3RlLmV2YWxleGNlcHRpb24gaW1wb3J0IGV2YWxjb250ZXh0CisKK2xpbWl0ID0gMjAwCisKK2RlZiBodG1sX3F1b3RlKHYpOgorICAgICIiIgorICAgIEVzY2FwZSBIVE1MIGNoYXJhY3RlcnMsIHBsdXMgdHJhbnNsYXRlIE5vbmUgdG8gJycKKyAgICAiIiIKKyAgICBpZiB2IGlzIE5vbmU6CisgICAgICAgIHJldHVybiAnJworICAgIHJldHVybiBjZ2kuZXNjYXBlKHN0cih2KSwgMSkKKworZGVmIHByZXNlcnZlX3doaXRlc3BhY2UodiwgcXVvdGU9VHJ1ZSk6CisgICAgIiIiCisgICAgUXVvdGUgYSB2YWx1ZSBmb3IgSFRNTCwgcHJlc2VydmluZyB3aGl0ZXNwYWNlICh0cmFuc2xhdGluZworICAgIG5ld2xpbmVzIHRvIGBgPGJyPmBgIGFuZCBtdWx0aXBsZSBzcGFjZXMgdG8gdXNlIGBgJm5ic3A7YGApLgorCisgICAgSWYgYGBxdW90ZWBgIGlzIHRydWUsIHRoZW4gdGhlIHZhbHVlIHdpbGwgYmUgSFRNTCBxdW90ZWQgZmlyc3QuCisgICAgIiIiCisgICAgaWYgcXVvdGU6CisgICAgICAgIHYgPSBodG1sX3F1b3RlKHYpCisgICAgdiA9IHYucmVwbGFjZSgnXG4nLCAnPGJyPlxuJykKKyAgICB2ID0gcmUuc3ViKHInKCkoICArKScsIF9yZXBsX25ic3AsIHYpCisgICAgdiA9IHJlLnN1YihyJyhcbikoICspJywgX3JlcGxfbmJzcCwgdikKKyAgICB2ID0gcmUuc3ViKHInXigpKCArKScsIF9yZXBsX25ic3AsIHYpCisgICAgcmV0dXJuICc8Y29kZT4lczwvY29kZT4nICUgdgorCitkZWYgX3JlcGxfbmJzcChtYXRjaCk6CisgICAgaWYgbGVuKG1hdGNoLmdyb3VwKDIpKSA9PSAxOgorICAgICAgICByZXR1cm4gJyZuYnNwOycKKyAgICByZXR1cm4gbWF0Y2guZ3JvdXAoMSkgKyAnJm5ic3A7JyAqIChsZW4obWF0Y2guZ3JvdXAoMikpLTEpICsgJyAnCisKK2RlZiBzaW1wbGVjYXRjaGVyKGFwcGxpY2F0aW9uKToKKyAgICAiIiIKKyAgICBBIHNpbXBsZSBtaWRkbGV3YXJlIHRoYXQgY2F0Y2hlcyBlcnJvcnMgYW5kIHR1cm5zIHRoZW0gaW50byBzaW1wbGUKKyAgICB0cmFjZWJhY2tzLgorICAgICIiIgorICAgIGRlZiBzaW1wbGVjYXRjaGVyX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBhcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgb3V0ID0gU3RyaW5nSU8oKQorICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPW91dCkKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCc1MDAgU2VydmVyIEVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXMuZXhjX2luZm8oKSkKKyAgICAgICAgICAgIHJlcyA9IG91dC5nZXR2YWx1ZSgpCisgICAgICAgICAgICByZXR1cm4gWyc8aDM+RXJyb3I8L2gzPjxwcmU+JXM8L3ByZT4nCisgICAgICAgICAgICAgICAgICAgICUgaHRtbF9xdW90ZShyZXMpXQorICAgIHJldHVybiBzaW1wbGVjYXRjaGVyX2FwcAorCitkZWYgd3NnaWFwcCgpOgorICAgICIiIgorICAgIFR1cm5zIGEgZnVuY3Rpb24gb3IgbWV0aG9kIGludG8gYSBXU0dJIGFwcGxpY2F0aW9uLgorICAgICIiIgorICAgIGRlZiBkZWNvcmF0b3IoZnVuYyk6CisgICAgICAgIGRlZiB3c2dpYXBwX3dyYXBwZXIoKmFyZ3MpOgorICAgICAgICAgICAgIyB3ZSBnZXQgMyBhcmdzIHdoZW4gdGhpcyBpcyBhIG1ldGhvZCwgdHdvIHdoZW4gaXQgaXMKKyAgICAgICAgICAgICMgYSBmdW5jdGlvbiA6KAorICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID09IDM6CisgICAgICAgICAgICAgICAgZW52aXJvbiA9IGFyZ3NbMV0KKyAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSA9IGFyZ3NbMl0KKyAgICAgICAgICAgICAgICBhcmdzID0gW2FyZ3NbMF1dCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlID0gYXJncworICAgICAgICAgICAgICAgIGFyZ3MgPSBbXQorICAgICAgICAgICAgZGVmIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgICAgICBmb3JtID0gd3NnaWxpYi5wYXJzZV9mb3JtdmFycyhlbnZpcm9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfZ2V0X3ZhcnM9VHJ1ZSkKKyAgICAgICAgICAgICAgICBoZWFkZXJzID0gcmVzcG9uc2UuSGVhZGVyRGljdCgKKyAgICAgICAgICAgICAgICAgICAgeydjb250ZW50LXR5cGUnOiAndGV4dC9odG1sJywKKyAgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnOiAnMjAwIE9LJ30pCisgICAgICAgICAgICAgICAgZm9ybVsnZW52aXJvbiddID0gZW52aXJvbgorICAgICAgICAgICAgICAgIGZvcm1bJ2hlYWRlcnMnXSA9IGhlYWRlcnMKKyAgICAgICAgICAgICAgICByZXMgPSBmdW5jKCphcmdzLCAqKmZvcm0ubWl4ZWQoKSkKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBoZWFkZXJzLnBvcCgnc3RhdHVzJykKKyAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMuaGVhZGVyaXRlbXMoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gW3Jlc10KKyAgICAgICAgICAgIGFwcCA9IGh0dHBleGNlcHRpb25zLm1ha2VfbWlkZGxld2FyZShhcHBsaWNhdGlvbikKKyAgICAgICAgICAgIGFwcCA9IHNpbXBsZWNhdGNoZXIoYXBwKQorICAgICAgICAgICAgcmV0dXJuIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgd3NnaWFwcF93cmFwcGVyLmV4cG9zZWQgPSBUcnVlCisgICAgICAgIHJldHVybiB3c2dpYXBwX3dyYXBwZXIKKyAgICByZXR1cm4gZGVjb3JhdG9yCisKK2RlZiBnZXRfZGVidWdfaW5mbyhmdW5jKToKKyAgICAiIiIKKyAgICBBIGRlY29yYXRvciAobWVhbnQgdG8gYmUgdXNlZCB1bmRlciBgYHdzZ2lhcHAoKWBgKSB0aGF0IHJlc29sdmVzCisgICAgdGhlIGBgZGVidWdjb3VudGBgIHZhcmlhYmxlIHRvIGEgYGBEZWJ1Z0luZm9gYCBvYmplY3QgKG9yIGdpdmVzIGFuCisgICAgZXJyb3IgaWYgaXQgY2FuJ3QgYmUgZm91bmQpLgorICAgICIiIgorICAgIGRlZiBkZWJ1Z19pbmZvX3JlcGxhY2VtZW50KHNlbGYsICoqZm9ybSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmICdkZWJ1Z2NvdW50JyBub3QgaW4gZm9ybToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgZGVidWdjb3VudCBwYXJhbWV0ZXInKQorICAgICAgICAgICAgZGVidWdjb3VudCA9IGZvcm0ucG9wKCdkZWJ1Z2NvdW50JykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkZWJ1Z2NvdW50ID0gaW50KGRlYnVnY291bnQpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgdmFsdWUgZm9yIGRlYnVnY291bnQnKQorICAgICAgICAgICAgaWYgZGVidWdjb3VudCBub3QgaW4gc2VsZi5kZWJ1Z19pbmZvczoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAnRGVidWcgJXMgbm8gbG9uZ2VyIGZvdW5kIChtYXliZSBpdCBoYXMgZXhwaXJlZD8pJworICAgICAgICAgICAgICAgICAgICAlIGRlYnVnY291bnQpCisgICAgICAgICAgICBkZWJ1Z19pbmZvID0gc2VsZi5kZWJ1Z19pbmZvc1tkZWJ1Z2NvdW50XQorICAgICAgICAgICAgcmV0dXJuIGZ1bmMoc2VsZiwgZGVidWdfaW5mbz1kZWJ1Z19pbmZvLCAqKmZvcm0pCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6CisgICAgICAgICAgICBmb3JtWydoZWFkZXJzJ11bJ3N0YXR1cyddID0gJzUwMCBTZXJ2ZXIgRXJyb3InCisgICAgICAgICAgICByZXR1cm4gJzxodG1sPlRoZXJlIHdhcyBhbiBlcnJvcjogJXM8L2h0bWw+JyAlIGh0bWxfcXVvdGUoZSkKKyAgICByZXR1cm4gZGVidWdfaW5mb19yZXBsYWNlbWVudAorCitkZWJ1Z19jb3VudGVyID0gaXRlcnRvb2xzLmNvdW50KGludCh0aW1lLnRpbWUoKSkpCitkZWYgZ2V0X2RlYnVnX2NvdW50KGVudmlyb24pOgorICAgICIiIgorICAgIFJldHVybiB0aGUgdW5pcXVlIGRlYnVnIGNvdW50IGZvciB0aGUgY3VycmVudCByZXF1ZXN0CisgICAgIiIiCisgICAgaWYgJ3Bhc3RlLmV2YWxleGNlcHRpb24uZGVidWdfY291bnQnIGluIGVudmlyb246CisgICAgICAgIHJldHVybiBlbnZpcm9uWydwYXN0ZS5ldmFsZXhjZXB0aW9uLmRlYnVnX2NvdW50J10KKyAgICBlbHNlOgorICAgICAgICBlbnZpcm9uWydwYXN0ZS5ldmFsZXhjZXB0aW9uLmRlYnVnX2NvdW50J10gPSBuZXh0ID0gc2l4Lm5leHQoZGVidWdfY291bnRlcikKKyAgICAgICAgcmV0dXJuIG5leHQKKworY2xhc3MgRXZhbEV4Y2VwdGlvbihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcGxpY2F0aW9uLCBnbG9iYWxfY29uZj1Ob25lLAorICAgICAgICAgICAgICAgICB4bWxodHRwX2tleT1Ob25lKToKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uCisgICAgICAgIHNlbGYuZGVidWdfaW5mb3MgPSB7fQorICAgICAgICBpZiB4bWxodHRwX2tleSBpcyBOb25lOgorICAgICAgICAgICAgaWYgZ2xvYmFsX2NvbmYgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB4bWxodHRwX2tleSA9ICdfJworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB4bWxodHRwX2tleSA9IGdsb2JhbF9jb25mLmdldCgneG1saHR0cF9rZXknLCAnXycpCisgICAgICAgIHNlbGYueG1saHR0cF9rZXkgPSB4bWxodHRwX2tleQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgYXNzZXJ0IG5vdCBlbnZpcm9uWyd3c2dpLm11bHRpcHJvY2VzcyddLCAoCisgICAgICAgICAgICAiVGhlIEV2YWxFeGNlcHRpb24gbWlkZGxld2FyZSBpcyBub3QgdXNhYmxlIGluIGEgIgorICAgICAgICAgICAgIm11bHRpLXByb2Nlc3MgZW52aXJvbm1lbnQiKQorICAgICAgICBlbnZpcm9uWydwYXN0ZS5ldmFsZXhjZXB0aW9uJ10gPSBzZWxmCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdQQVRIX0lORk8nLCAnJykuc3RhcnRzd2l0aCgnL19kZWJ1Zy8nKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmRlYnVnKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzcG9uZChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgIGRlZiBkZWJ1ZyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGFzc2VydCByZXF1ZXN0LnBhdGhfaW5mb19wb3AoZW52aXJvbikgPT0gJ19kZWJ1ZycKKyAgICAgICAgbmV4dF9wYXJ0ID0gcmVxdWVzdC5wYXRoX2luZm9fcG9wKGVudmlyb24pCisgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoc2VsZiwgbmV4dF9wYXJ0LCBOb25lKQorICAgICAgICBpZiBub3QgbWV0aG9kOgorICAgICAgICAgICAgZXhjID0gaHR0cGV4Y2VwdGlvbnMuSFRUUE5vdEZvdW5kKAorICAgICAgICAgICAgICAgICclciBub3QgZm91bmQgd2hlbiBwYXJzaW5nICVyJworICAgICAgICAgICAgICAgICUgKG5leHRfcGFydCwgd3NnaWxpYi5jb25zdHJ1Y3RfdXJsKGVudmlyb24pKSkKKyAgICAgICAgICAgIHJldHVybiBleGMud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgbm90IGdldGF0dHIobWV0aG9kLCAnZXhwb3NlZCcsIEZhbHNlKToKKyAgICAgICAgICAgIGV4YyA9IGh0dHBleGNlcHRpb25zLkhUVFBGb3JiaWRkZW4oCisgICAgICAgICAgICAgICAgJyVyIG5vdCBhbGxvd2VkJyAlIG5leHRfcGFydCkKKyAgICAgICAgICAgIHJldHVybiBleGMud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIG1ldGhvZChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgIGRlZiBtZWRpYShzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICIiIgorICAgICAgICBTdGF0aWMgcGF0aCB3aGVyZSBpbWFnZXMgYW5kIG90aGVyIGZpbGVzIGxpdmUKKyAgICAgICAgIiIiCisgICAgICAgIGFwcCA9IHVybHBhcnNlci5TdGF0aWNVUkxQYXJzZXIoCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ21lZGlhJykpCisgICAgICAgIHJldHVybiBhcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgbWVkaWEuZXhwb3NlZCA9IFRydWUKKworICAgIGRlZiBtb2NoaWtpdChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICIiIgorICAgICAgICBTdGF0aWMgcGF0aCB3aGVyZSBNb2NoaUtpdCBsaXZlcworICAgICAgICAiIiIKKyAgICAgICAgYXBwID0gdXJscGFyc2VyLlN0YXRpY1VSTFBhcnNlcigKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnbW9jaGlraXQnKSkKKyAgICAgICAgcmV0dXJuIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICBtb2NoaWtpdC5leHBvc2VkID0gVHJ1ZQorCisgICAgZGVmIHN1bW1hcnkoc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhIEpTT04tZm9ybWF0IHN1bW1hcnkgb2YgYWxsIHRoZSBjYWNoZWQKKyAgICAgICAgZXhjZXB0aW9uIHJlcG9ydHMKKyAgICAgICAgIiIiCisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC94LWpzb24nKV0pCisgICAgICAgIGRhdGEgPSBbXTsKKyAgICAgICAgaXRlbXMgPSBzZWxmLmRlYnVnX2luZm9zLnZhbHVlcygpCisgICAgICAgIGl0ZW1zLnNvcnQobGFtYmRhIGEsIGI6IGNtcChhLmNyZWF0ZWQsIGIuY3JlYXRlZCkpCisgICAgICAgIGRhdGEgPSBbaXRlbS5qc29uKCkgZm9yIGl0ZW0gaW4gaXRlbXNdCisgICAgICAgIHJldHVybiBbcmVwcihkYXRhKV0KKyAgICBzdW1tYXJ5LmV4cG9zZWQgPSBUcnVlCisKKyAgICBkZWYgdmlldyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICIiIgorICAgICAgICBWaWV3IG9sZCBleGNlcHRpb24gcmVwb3J0cworICAgICAgICAiIiIKKyAgICAgICAgaWQgPSBpbnQocmVxdWVzdC5wYXRoX2luZm9fcG9wKGVudmlyb24pKQorICAgICAgICBpZiBpZCBub3QgaW4gc2VsZi5kZWJ1Z19pbmZvczoKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICc1MDAgU2VydmVyIEVycm9yJywKKyAgICAgICAgICAgICAgICBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldKQorICAgICAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAgICAgICAiVHJhY2ViYWNrIGJ5IGlkICVzIGRvZXMgbm90IGV4aXN0IChtYXliZSAiCisgICAgICAgICAgICAgICAgInRoZSBzZXJ2ZXIgaGFzIGJlZW4gcmVzdGFydGVkPykiCisgICAgICAgICAgICAgICAgJSBpZF0KKyAgICAgICAgZGVidWdfaW5mbyA9IHNlbGYuZGVidWdfaW5mb3NbaWRdCisgICAgICAgIHJldHVybiBkZWJ1Z19pbmZvLndzZ2lfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgdmlldy5leHBvc2VkID0gVHJ1ZQorCisgICAgZGVmIG1ha2Vfdmlld191cmwoc2VsZiwgZW52aXJvbiwgYmFzZV9wYXRoLCBjb3VudCk6CisgICAgICAgIHJldHVybiBiYXNlX3BhdGggKyAnL19kZWJ1Zy92aWV3LyVzJyAlIGNvdW50CisKKyAgICAjQHdzZ2lhcHAoKQorICAgICNAZ2V0X2RlYnVnX2luZm8KKyAgICBkZWYgc2hvd19mcmFtZShzZWxmLCB0YmlkLCBkZWJ1Z19pbmZvLCAqKmt3KToKKyAgICAgICAgZnJhbWUgPSBkZWJ1Z19pbmZvLmZyYW1lKGludCh0YmlkKSkKKyAgICAgICAgdmFycyA9IGZyYW1lLnRiX2ZyYW1lLmZfbG9jYWxzCisgICAgICAgIGlmIHZhcnM6CisgICAgICAgICAgICByZWdpc3RyeS5yZXN0b3Jlci5yZXN0b3JhdGlvbl9iZWdpbihkZWJ1Z19pbmZvLmNvdW50ZXIpCisgICAgICAgICAgICBsb2NhbF92YXJzID0gbWFrZV90YWJsZSh2YXJzKQorICAgICAgICAgICAgcmVnaXN0cnkucmVzdG9yZXIucmVzdG9yYXRpb25fZW5kKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvY2FsX3ZhcnMgPSAnTm8gbG9jYWwgdmFycycKKyAgICAgICAgcmV0dXJuIGlucHV0X2Zvcm0odGJpZCwgZGVidWdfaW5mbykgKyBsb2NhbF92YXJzCisKKyAgICBzaG93X2ZyYW1lID0gd3NnaWFwcCgpKGdldF9kZWJ1Z19pbmZvKHNob3dfZnJhbWUpKQorCisgICAgI0B3c2dpYXBwKCkKKyAgICAjQGdldF9kZWJ1Z19pbmZvCisgICAgZGVmIGV4ZWNfaW5wdXQoc2VsZiwgdGJpZCwgZGVidWdfaW5mbywgaW5wdXQsICoqa3cpOgorICAgICAgICBpZiBub3QgaW5wdXQuc3RyaXAoKToKKyAgICAgICAgICAgIHJldHVybiAnJworICAgICAgICBpbnB1dCA9IGlucHV0LnJzdHJpcCgpICsgJ1xuJworICAgICAgICBmcmFtZSA9IGRlYnVnX2luZm8uZnJhbWUoaW50KHRiaWQpKQorICAgICAgICB2YXJzID0gZnJhbWUudGJfZnJhbWUuZl9sb2NhbHMKKyAgICAgICAgZ2xvYl92YXJzID0gZnJhbWUudGJfZnJhbWUuZl9nbG9iYWxzCisgICAgICAgIGNvbnRleHQgPSBldmFsY29udGV4dC5FdmFsQ29udGV4dCh2YXJzLCBnbG9iX3ZhcnMpCisgICAgICAgIHJlZ2lzdHJ5LnJlc3RvcmVyLnJlc3RvcmF0aW9uX2JlZ2luKGRlYnVnX2luZm8uY291bnRlcikKKyAgICAgICAgb3V0cHV0ID0gY29udGV4dC5leGVjX2V4cHIoaW5wdXQpCisgICAgICAgIHJlZ2lzdHJ5LnJlc3RvcmVyLnJlc3RvcmF0aW9uX2VuZCgpCisgICAgICAgIGlucHV0X2h0bWwgPSBmb3JtYXR0ZXIuc3RyMmh0bWwoaW5wdXQpCisgICAgICAgIHJldHVybiAoJzxjb2RlIHN0eWxlPSJjb2xvcjogIzA2MCI+Jmd0OyZndDsmZ3Q7PC9jb2RlPiAnCisgICAgICAgICAgICAgICAgJzxjb2RlPiVzPC9jb2RlPjxicj5cbiVzJworICAgICAgICAgICAgICAgICUgKHByZXNlcnZlX3doaXRlc3BhY2UoaW5wdXRfaHRtbCwgcXVvdGU9RmFsc2UpLAorICAgICAgICAgICAgICAgICAgIHByZXNlcnZlX3doaXRlc3BhY2Uob3V0cHV0KSkpCisKKyAgICBleGVjX2lucHV0ID0gd3NnaWFwcCgpKGdldF9kZWJ1Z19pbmZvKGV4ZWNfaW5wdXQpKQorCisgICAgZGVmIHJlc3BvbmQoc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiBlbnZpcm9uLmdldCgncGFzdGUudGhyb3dfZXJyb3JzJyk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgYmFzZV9wYXRoID0gcmVxdWVzdC5jb25zdHJ1Y3RfdXJsKGVudmlyb24sIHdpdGhfcGF0aF9pbmZvPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aF9xdWVyeV9zdHJpbmc9RmFsc2UpCisgICAgICAgIGVudmlyb25bJ3Bhc3RlLnRocm93X2Vycm9ycyddID0gVHJ1ZQorICAgICAgICBzdGFydGVkID0gW10KKyAgICAgICAgZGVmIGRldGVjdF9zdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHN0YXJ0ZWQuYXBwZW5kKFRydWUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIF9fdHJhY2ViYWNrX3N1cHBsZW1lbnRfXyA9IGVycm9ybWlkZGxld2FyZS5TdXBwbGVtZW50LCBzZWxmLCBlbnZpcm9uCisgICAgICAgICAgICBhcHBfaXRlciA9IHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgZGV0ZWN0X3N0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybl9pdGVyID0gbGlzdChhcHBfaXRlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuX2l0ZXIKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICAgICAgICAgIGFwcF9pdGVyLmNsb3NlKCkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgZm9yIGV4cGVjdGVkIGluIGVudmlyb24uZ2V0KCdwYXN0ZS5leHBlY3RlZF9leGNlcHRpb25zJywgW10pOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXhjX2luZm9bMV0sIGV4cGVjdGVkKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICAgICAgIyBUZWxsIHRoZSBSZWdpc3RyeSB0byBzYXZlIGl0cyBTdGFja2VkT2JqZWN0UHJveGllcyBjdXJyZW50IHN0YXRlCisgICAgICAgICAgICAjIGZvciBsYXRlciByZXN0b3JhdGlvbgorICAgICAgICAgICAgcmVnaXN0cnkucmVzdG9yZXIuc2F2ZV9yZWdpc3RyeV9zdGF0ZShlbnZpcm9uKQorCisgICAgICAgICAgICBjb3VudCA9IGdldF9kZWJ1Z19jb3VudChlbnZpcm9uKQorICAgICAgICAgICAgdmlld191cmkgPSBzZWxmLm1ha2Vfdmlld191cmwoZW52aXJvbiwgYmFzZV9wYXRoLCBjb3VudCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGFydGVkOgorICAgICAgICAgICAgICAgIGhlYWRlcnMgPSBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldCisgICAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCdYLURlYnVnLVVSTCcsIHZpZXdfdXJpKSkKKyAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnNTAwIEludGVybmFsIFNlcnZlciBFcnJvcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNfaW5mbykKKyAgICAgICAgICAgIG1zZyA9ICdEZWJ1ZyBhdDogJXNcbicgJSB2aWV3X3VyaQorICAgICAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgICAgICBtc2cgPSBtc2cuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIGVudmlyb25bJ3dzZ2kuZXJyb3JzJ10ud3JpdGUobXNnKQorCisgICAgICAgICAgICBleGNfZGF0YSA9IGNvbGxlY3Rvci5jb2xsZWN0X2V4Y2VwdGlvbigqZXhjX2luZm8pCisgICAgICAgICAgICBkZWJ1Z19pbmZvID0gRGVidWdJbmZvKGNvdW50LCBleGNfaW5mbywgZXhjX2RhdGEsIGJhc2VfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbiwgdmlld191cmkpCisgICAgICAgICAgICBhc3NlcnQgY291bnQgbm90IGluIHNlbGYuZGVidWdfaW5mb3MKKyAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mb3NbY291bnRdID0gZGVidWdfaW5mbworCisgICAgICAgICAgICBpZiBzZWxmLnhtbGh0dHBfa2V5OgorICAgICAgICAgICAgICAgIGdldF92YXJzID0gcmVxdWVzdC5wYXJzZV9xdWVyeXN0cmluZyhlbnZpcm9uKQorICAgICAgICAgICAgICAgIGlmIGRpY3QoZ2V0X3ZhcnMpLmdldChzZWxmLnhtbGh0dHBfa2V5KToKKyAgICAgICAgICAgICAgICAgICAgZXhjX2RhdGEgPSBjb2xsZWN0b3IuY29sbGVjdF9leGNlcHRpb24oKmV4Y19pbmZvKQorICAgICAgICAgICAgICAgICAgICBodG1sID0gZm9ybWF0dGVyLmZvcm1hdF9odG1sKAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjX2RhdGEsIGluY2x1ZGVfaGlkZGVuX2ZyYW1lcz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfcmV1c2FibGU9RmFsc2UsIHNob3dfZXh0cmFfZGF0YT1GYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtodG1sXQorCisgICAgICAgICAgICAjIEBAOiBpdCB3b3VsZCBiZSBuaWNlIHRvIGRlYWwgd2l0aCBiYWQgY29udGVudCB0eXBlcyBoZXJlCisgICAgICAgICAgICByZXR1cm4gZGVidWdfaW5mby5jb250ZW50KCkKKworICAgIGRlZiBleGNlcHRpb25faGFuZGxlcihzZWxmLCBleGNfaW5mbywgZW52aXJvbik6CisgICAgICAgIHNpbXBsZV9odG1sX2Vycm9yID0gRmFsc2UKKyAgICAgICAgaWYgc2VsZi54bWxodHRwX2tleToKKyAgICAgICAgICAgIGdldF92YXJzID0gcmVxdWVzdC5wYXJzZV9xdWVyeXN0cmluZyhlbnZpcm9uKQorICAgICAgICAgICAgaWYgZGljdChnZXRfdmFycykuZ2V0KHNlbGYueG1saHR0cF9rZXkpOgorICAgICAgICAgICAgICAgIHNpbXBsZV9odG1sX2Vycm9yID0gVHJ1ZQorICAgICAgICByZXR1cm4gZXJyb3JtaWRkbGV3YXJlLmhhbmRsZV9leGNlcHRpb24oCisgICAgICAgICAgICBleGNfaW5mbywgZW52aXJvblsnd3NnaS5lcnJvcnMnXSwKKyAgICAgICAgICAgIGh0bWw9VHJ1ZSwKKyAgICAgICAgICAgIGRlYnVnX21vZGU9VHJ1ZSwKKyAgICAgICAgICAgIHNpbXBsZV9odG1sX2Vycm9yPXNpbXBsZV9odG1sX2Vycm9yKQorCitjbGFzcyBEZWJ1Z0luZm8ob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb3VudGVyLCBleGNfaW5mbywgZXhjX2RhdGEsIGJhc2VfcGF0aCwKKyAgICAgICAgICAgICAgICAgZW52aXJvbiwgdmlld191cmkpOgorICAgICAgICBzZWxmLmNvdW50ZXIgPSBjb3VudGVyCisgICAgICAgIHNlbGYuZXhjX2RhdGEgPSBleGNfZGF0YQorICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisgICAgICAgIHNlbGYudmlld191cmkgPSB2aWV3X3VyaQorICAgICAgICBzZWxmLmNyZWF0ZWQgPSB0aW1lLnRpbWUoKQorICAgICAgICBzZWxmLmV4Y190eXBlLCBzZWxmLmV4Y192YWx1ZSwgc2VsZi50YiA9IGV4Y19pbmZvCisgICAgICAgIF9fZXhjZXB0aW9uX2Zvcm1hdHRlcl9fID0gMQorICAgICAgICBzZWxmLmZyYW1lcyA9IFtdCisgICAgICAgIG4gPSAwCisgICAgICAgIHRiID0gc2VsZi50YgorICAgICAgICB3aGlsZSB0YiBpcyBub3QgTm9uZSBhbmQgKGxpbWl0IGlzIE5vbmUgb3IgbiA8IGxpbWl0KToKKyAgICAgICAgICAgIGlmIHRiLnRiX2ZyYW1lLmZfbG9jYWxzLmdldCgnX19leGNlcHRpb25fZm9ybWF0dGVyX18nKToKKyAgICAgICAgICAgICAgICAjIFN0b3AgcmVjdXJzaW9uLiBAQDogc2hvdWxkIG1ha2UgYSBmYWtlIEV4Y2VwdGlvbkZyYW1lCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHNlbGYuZnJhbWVzLmFwcGVuZCh0YikKKyAgICAgICAgICAgIHRiID0gdGIudGJfbmV4dAorICAgICAgICAgICAgbiArPSAxCisKKyAgICBkZWYganNvbihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBKU09OLWFibGUgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QiIiIKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICd1cmknOiBzZWxmLnZpZXdfdXJpLAorICAgICAgICAgICAgJ2NyZWF0ZWQnOiB0aW1lLnN0cmZ0aW1lKCclYycsIHRpbWUuZ210aW1lKHNlbGYuY3JlYXRlZCkpLAorICAgICAgICAgICAgJ2NyZWF0ZWRfdGltZXN0YW1wJzogc2VsZi5jcmVhdGVkLAorICAgICAgICAgICAgJ2V4Y2VwdGlvbl90eXBlJzogc3RyKHNlbGYuZXhjX3R5cGUpLAorICAgICAgICAgICAgJ2V4Y2VwdGlvbic6IHN0cihzZWxmLmV4Y192YWx1ZSksCisgICAgICAgICAgICB9CisKKyAgICBkZWYgZnJhbWUoc2VsZiwgdGJpZCk6CisgICAgICAgIGZvciBmcmFtZSBpbiBzZWxmLmZyYW1lczoKKyAgICAgICAgICAgIGlmIGlkKGZyYW1lKSA9PSB0YmlkOgorICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gZnJhbWUgYnkgaWQgJXMgZm91bmQgZnJvbSAlciIgJSAodGJpZCwgc2VsZi5mcmFtZXMpKQorCisgICAgZGVmIHdzZ2lfYXBwbGljYXRpb24oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnY29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpXSkKKyAgICAgICAgcmV0dXJuIHNlbGYuY29udGVudCgpCisKKyAgICBkZWYgY29udGVudChzZWxmKToKKyAgICAgICAgaHRtbCA9IGZvcm1hdF9ldmFsX2h0bWwoc2VsZi5leGNfZGF0YSwgc2VsZi5iYXNlX3BhdGgsIHNlbGYuY291bnRlcikKKyAgICAgICAgaGVhZF9odG1sID0gKGZvcm1hdHRlci5lcnJvcl9jc3MgKyBmb3JtYXR0ZXIuaGlkZV9kaXNwbGF5X2pzKQorICAgICAgICBoZWFkX2h0bWwgKz0gc2VsZi5ldmFsX2phdmFzY3JpcHQoKQorICAgICAgICByZXBvc3RfYnV0dG9uID0gbWFrZV9yZXBvc3RfYnV0dG9uKHNlbGYuZW52aXJvbikKKyAgICAgICAgcGFnZSA9IGVycm9yX3RlbXBsYXRlICUgeworICAgICAgICAgICAgJ3JlcG9zdF9idXR0b24nOiByZXBvc3RfYnV0dG9uIG9yICcnLAorICAgICAgICAgICAgJ2hlYWRfaHRtbCc6IGhlYWRfaHRtbCwKKyAgICAgICAgICAgICdib2R5JzogaHRtbH0KKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHBhZ2UgPSBwYWdlLmVuY29kZSgndXRmOCcpCisgICAgICAgIHJldHVybiBbcGFnZV0KKworICAgIGRlZiBldmFsX2phdmFzY3JpcHQoc2VsZik6CisgICAgICAgIGJhc2VfcGF0aCA9IHNlbGYuYmFzZV9wYXRoICsgJy9fZGVidWcnCisgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJXMvbWVkaWEvTW9jaGlLaXQucGFja2VkLmpzIj4nCisgICAgICAgICAgICAnPC9zY3JpcHQ+XG4nCisgICAgICAgICAgICAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJXMvbWVkaWEvZGVidWcuanMiPicKKyAgICAgICAgICAgICc8L3NjcmlwdD5cbicKKyAgICAgICAgICAgICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+XG4nCisgICAgICAgICAgICAnZGVidWdfYmFzZSA9ICVyO1xuJworICAgICAgICAgICAgJ2RlYnVnX2NvdW50ID0gJXI7XG4nCisgICAgICAgICAgICAnPC9zY3JpcHQ+XG4nCisgICAgICAgICAgICAlIChiYXNlX3BhdGgsIGJhc2VfcGF0aCwgYmFzZV9wYXRoLCBzZWxmLmNvdW50ZXIpKQorCitjbGFzcyBFdmFsSFRNTEZvcm1hdHRlcihmb3JtYXR0ZXIuSFRNTEZvcm1hdHRlcik6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYmFzZV9wYXRoLCBjb3VudGVyLCAqKmt3KToKKyAgICAgICAgc3VwZXIoRXZhbEhUTUxGb3JtYXR0ZXIsIHNlbGYpLl9faW5pdF9fKCoqa3cpCisgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9wYXRoCisgICAgICAgIHNlbGYuY291bnRlciA9IGNvdW50ZXIKKworICAgIGRlZiBmb3JtYXRfc291cmNlX2xpbmUoc2VsZiwgZmlsZW5hbWUsIGZyYW1lKToKKyAgICAgICAgbGluZSA9IGZvcm1hdHRlci5IVE1MRm9ybWF0dGVyLmZvcm1hdF9zb3VyY2VfbGluZSgKKyAgICAgICAgICAgIHNlbGYsIGZpbGVuYW1lLCBmcmFtZSkKKyAgICAgICAgcmV0dXJuIChsaW5lICsKKyAgICAgICAgICAgICAgICAnICA8YSBocmVmPSIjIiBjbGFzcz0ic3dpdGNoX3NvdXJjZSIgJworICAgICAgICAgICAgICAgICd0YmlkPSIlcyIgb25DbGljaz0icmV0dXJuIHNob3dGcmFtZSh0aGlzKSI+Jm5ic3A7ICZuYnNwOyAnCisgICAgICAgICAgICAgICAgJzxpbWcgc3JjPSIlcy9fZGVidWcvbWVkaWEvcGx1cy5qcGciIGJvcmRlcj0wIHdpZHRoPTkgJworICAgICAgICAgICAgICAgICdoZWlnaHQ9OT4gJm5ic3A7ICZuYnNwOzwvYT4nCisgICAgICAgICAgICAgICAgJSAoZnJhbWUudGJpZCwgc2VsZi5iYXNlX3BhdGgpKQorCitkZWYgbWFrZV90YWJsZShpdGVtcyk6CisgICAgaWYgaXNpbnN0YW5jZShpdGVtcywgZGljdCk6CisgICAgICAgIGl0ZW1zID0gaXRlbXMuaXRlbXMoKQorICAgICAgICBpdGVtcy5zb3J0KCkKKyAgICByb3dzID0gW10KKyAgICBpID0gMAorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBpdGVtczoKKyAgICAgICAgaSArPSAxCisgICAgICAgIG91dCA9IFN0cmluZ0lPKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcHByaW50LnBwcmludCh2YWx1ZSwgb3V0KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBwcmludCgnRXJyb3I6ICVzJyAlIGUsIGZpbGU9b3V0KQorICAgICAgICB2YWx1ZSA9IGh0bWxfcXVvdGUob3V0LmdldHZhbHVlKCkpCisgICAgICAgIGlmIGxlbih2YWx1ZSkgPiAxMDA6CisgICAgICAgICAgICAjIEBAOiBUaGlzIGNhbiBhY3R1YWxseSBicmVhayB0aGUgSFRNTCA6KAorICAgICAgICAgICAgIyBzaG91bGQgSSB0cnVuY2F0ZSBiZWZvcmUgcXVvdGluZz8KKyAgICAgICAgICAgIG9yaWdfdmFsdWUgPSB2YWx1ZQorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVs6MTAwXQorICAgICAgICAgICAgdmFsdWUgKz0gJzxhIGNsYXNzPSJzd2l0Y2hfc291cmNlIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogIzk5OSIgaHJlZj0iIyIgb25jbGljaz0icmV0dXJuIGV4cGFuZExvbmcodGhpcykiPi4uLjwvYT4nCisgICAgICAgICAgICB2YWx1ZSArPSAnPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPiVzPC9zcGFuPicgJSBvcmlnX3ZhbHVlWzEwMDpdCisgICAgICAgIHZhbHVlID0gZm9ybWF0dGVyLm1ha2Vfd3JhcHBhYmxlKHZhbHVlKQorICAgICAgICBpZiBpICUgMjoKKyAgICAgICAgICAgIGF0dHIgPSAnIGNsYXNzPSJldmVuIicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGF0dHIgPSAnIGNsYXNzPSJvZGQiJworICAgICAgICByb3dzLmFwcGVuZCgnPHRyJXMgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7Ij48dGQ+JworICAgICAgICAgICAgICAgICAgICAnPGI+JXM8L2I+PC90ZD48dGQgc3R5bGU9Im92ZXJmbG93OiBhdXRvIj4lczx0ZD48L3RyPicKKyAgICAgICAgICAgICAgICAgICAgJSAoYXR0ciwgaHRtbF9xdW90ZShuYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVfd2hpdGVzcGFjZSh2YWx1ZSwgcXVvdGU9RmFsc2UpKSkKKyAgICByZXR1cm4gJzx0YWJsZT4lczwvdGFibGU+JyAlICgKKyAgICAgICAgJ1xuJy5qb2luKHJvd3MpKQorCitkZWYgZm9ybWF0X2V2YWxfaHRtbChleGNfZGF0YSwgYmFzZV9wYXRoLCBjb3VudGVyKToKKyAgICBzaG9ydF9mb3JtYXR0ZXIgPSBFdmFsSFRNTEZvcm1hdHRlcigKKyAgICAgICAgYmFzZV9wYXRoPWJhc2VfcGF0aCwKKyAgICAgICAgY291bnRlcj1jb3VudGVyLAorICAgICAgICBpbmNsdWRlX3JldXNhYmxlPUZhbHNlKQorICAgIHNob3J0X2VyID0gc2hvcnRfZm9ybWF0dGVyLmZvcm1hdF9jb2xsZWN0ZWRfZGF0YShleGNfZGF0YSkKKyAgICBsb25nX2Zvcm1hdHRlciA9IEV2YWxIVE1MRm9ybWF0dGVyKAorICAgICAgICBiYXNlX3BhdGg9YmFzZV9wYXRoLAorICAgICAgICBjb3VudGVyPWNvdW50ZXIsCisgICAgICAgIHNob3dfaGlkZGVuX2ZyYW1lcz1UcnVlLAorICAgICAgICBzaG93X2V4dHJhX2RhdGE9RmFsc2UsCisgICAgICAgIGluY2x1ZGVfcmV1c2FibGU9RmFsc2UpCisgICAgbG9uZ19lciA9IGxvbmdfZm9ybWF0dGVyLmZvcm1hdF9jb2xsZWN0ZWRfZGF0YShleGNfZGF0YSkKKyAgICB0ZXh0X2VyID0gZm9ybWF0dGVyLmZvcm1hdF90ZXh0KGV4Y19kYXRhLCBzaG93X2hpZGRlbl9mcmFtZXM9VHJ1ZSkKKyAgICBpZiBzaG9ydF9mb3JtYXR0ZXIuZmlsdGVyX2ZyYW1lcyhleGNfZGF0YS5mcmFtZXMpICE9IFwKKyAgICAgICAgbG9uZ19mb3JtYXR0ZXIuZmlsdGVyX2ZyYW1lcyhleGNfZGF0YS5mcmFtZXMpOgorICAgICAgICAjIE9ubHkgZGlzcGxheSB0aGUgZnVsbCB0cmFjZWJhY2sgd2hlbiBpdCBkaWZmZXJzIGZyb20gdGhlCisgICAgICAgICMgc2hvcnQgdmVyc2lvbgorICAgICAgICBmdWxsX3RyYWNlYmFja19odG1sID0gIiIiCisgICAgPGJyPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBzaG93X2J1dHRvbignZnVsbF90cmFjZWJhY2snLCAnZnVsbCB0cmFjZWJhY2snKQorICAgIDwvc2NyaXB0PgorICAgIDxkaXYgaWQ9ImZ1bGxfdHJhY2ViYWNrIiBjbGFzcz0iaGlkZGVuLWRhdGEiPgorICAgICVzCisgICAgPC9kaXY+CisgICAgICAgICIiIiAlIGxvbmdfZXIKKyAgICBlbHNlOgorICAgICAgICBmdWxsX3RyYWNlYmFja19odG1sID0gJycKKworICAgIHJldHVybiAiIiIKKyAgICAlcworICAgICVzCisgICAgPGJyPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBzaG93X2J1dHRvbigndGV4dF92ZXJzaW9uJywgJ3RleHQgdmVyc2lvbicpCisgICAgPC9zY3JpcHQ+CisgICAgPGRpdiBpZD0idGV4dF92ZXJzaW9uIiBjbGFzcz0iaGlkZGVuLWRhdGEiPgorICAgIDx0ZXh0YXJlYSBzdHlsZT0id2lkdGg6IDEwMCUlIiByb3dzPTEwIGNvbHM9NjA+JXM8L3RleHRhcmVhPgorICAgIDwvZGl2PgorICAgICIiIiAlIChzaG9ydF9lciwgZnVsbF90cmFjZWJhY2tfaHRtbCwgY2dpLmVzY2FwZSh0ZXh0X2VyKSkKKworZGVmIG1ha2VfcmVwb3N0X2J1dHRvbihlbnZpcm9uKToKKyAgICB1cmwgPSByZXF1ZXN0LmNvbnN0cnVjdF91cmwoZW52aXJvbikKKyAgICBpZiBlbnZpcm9uWydSRVFVRVNUX01FVEhPRCddID09ICdHRVQnOgorICAgICAgICByZXR1cm4gKCc8YnV0dG9uIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbi5ocmVmPSVyIj4nCisgICAgICAgICAgICAgICAgJ1JlLUdFVCBQYWdlPC9idXR0b24+PGJyPicgJSB1cmwpCisgICAgZWxzZToKKyAgICAgICAgIyBAQDogSSdkIGxpa2UgdG8gcmVjb25zdHJ1Y3QgdGhpcywgYnV0IEkgY2FuJ3QgYmVjYXVzZQorICAgICAgICAjIHRoZSBQT1NUIGJvZHkgaXMgcHJvYmFibHkgbG9zdCBhdCB0aGlzIHBvaW50LCBhbmQKKyAgICAgICAgIyBJIGNhbid0IGdldCBpdCBiYWNrIDooCisgICAgICAgIHJldHVybiBOb25lCisgICAgIyBAQDogVXNlIG9yIGxvc2UgdGhlIGZvbGxvd2luZyBjb2RlIGJsb2NrCisgICAgIiIiCisgICAgZmllbGRzID0gW10KKyAgICBmb3IgbmFtZSwgdmFsdWUgaW4gd3NnaWxpYi5wYXJzZV9mb3JtdmFycygKKyAgICAgICAgZW52aXJvbiwgaW5jbHVkZV9nZXRfdmFycz1GYWxzZSkuaXRlbXMoKToKKyAgICAgICAgaWYgaGFzYXR0cih2YWx1ZSwgJ2ZpbGVuYW1lJyk6CisgICAgICAgICAgICAjIEBAOiBBcmcsIHdlJ2xsIGp1c3Qgc3VibWl0IHRoZSBib2R5LCBhbmQgbGVhdmUgb3V0CisgICAgICAgICAgICAjIHRoZSBmaWxlbmFtZSA6KAorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZQorICAgICAgICBmaWVsZHMuYXBwZW5kKAorICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IiVzIiB2YWx1ZT0iJXMiPicKKyAgICAgICAgICAgICUgKGh0bWxfcXVvdGUobmFtZSksIGh0bWxfcXVvdGUodmFsdWUpKSkKKyAgICByZXR1cm4gJycnCis8Zm9ybSBhY3Rpb249IiVzIiBtZXRob2Q9IlBPU1QiPgorJXMKKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJSZS1QT1NUIFBhZ2UiPgorPC9mb3JtPicnJyAlICh1cmwsICdcbicuam9pbihmaWVsZHMpKQorIiIiCisKKworZGVmIGlucHV0X2Zvcm0odGJpZCwgZGVidWdfaW5mbyk6CisgICAgcmV0dXJuICcnJworPGZvcm0gYWN0aW9uPSIjIiBtZXRob2Q9IlBPU1QiCisgb25zdWJtaXQ9InJldHVybiBzdWJtaXRJbnB1dCgkKFwnc3VibWl0XyUodGJpZClzXCcpLCAlKHRiaWQpcykiPgorPGRpdiBpZD0iZXhlYy1vdXRwdXQtJSh0YmlkKXMiIHN0eWxlPSJ3aWR0aDogOTUlJTsKKyBwYWRkaW5nOiA1cHg7IG1hcmdpbjogNXB4OyBib3JkZXI6IDJweCBzb2xpZCAjMDAwOworIGRpc3BsYXk6IG5vbmUiPjwvZGl2PgorPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImlucHV0IiBpZD0iZGVidWdfaW5wdXRfJSh0YmlkKXMiCisgc3R5bGU9IndpZHRoOiAxMDAlJSIKKyBhdXRvY29tcGxldGU9Im9mZiIgb25rZXlwcmVzcz0idXBBcnJvdyh0aGlzLCBldmVudCkiPjxicj4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJFeGVjdXRlIiBuYW1lPSJzdWJtaXRidXR0b24iCisgb25jbGljaz0icmV0dXJuIHN1Ym1pdElucHV0KHRoaXMsICUodGJpZClzKSIKKyBpZD0ic3VibWl0XyUodGJpZClzIgorIGlucHV0LWZyb209ImRlYnVnX2lucHV0XyUodGJpZClzIgorIG91dHB1dC10bz0iZXhlYy1vdXRwdXQtJSh0YmlkKXMiPgorPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkV4cGFuZCIKKyBvbmNsaWNrPSJyZXR1cm4gZXhwYW5kSW5wdXQodGhpcykiPgorPC9mb3JtPgorICcnJyAlIHsndGJpZCc6IHRiaWR9CisKK2Vycm9yX3RlbXBsYXRlID0gJycnCis8aHRtbD4KKzxoZWFkPgorIDx0aXRsZT5TZXJ2ZXIgRXJyb3I8L3RpdGxlPgorICUoaGVhZF9odG1sKXMKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJlcnJvci1hcmVhIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgYmFja2dyb3VuZC1jb2xvcjogIzYwMDsgY29sb3I6ICNmZmY7IGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrIj4KKzxkaXYgaWQ9ImVycm9yLWNvbnRhaW5lciI+PC9kaXY+Cis8YnV0dG9uIG9uY2xpY2s9InJldHVybiBjbGVhckVycm9yKCkiPmNsZWFyIHRoaXM8L2J1dHRvbj4KKzwvZGl2PgorCislKHJlcG9zdF9idXR0b24pcworCislKGJvZHkpcworCis8L2JvZHk+Cis8L2h0bWw+CisnJycKKworZGVmIG1ha2VfZXZhbF9leGNlcHRpb24oYXBwLCBnbG9iYWxfY29uZiwgeG1saHR0cF9rZXk9Tm9uZSk6CisgICAgIiIiCisgICAgV3JhcHMgdGhlIGFwcGxpY2F0aW9uIGluIGFuIGludGVyYWN0aXZlIGRlYnVnZ2VyLgorCisgICAgVGhpcyBkZWJ1Z2dlciBpcyBhIG1ham9yIHNlY3VyaXR5IGhvbGUsIGFuZCBzaG91bGQgb25seSBiZQorICAgIHVzZWQgZHVyaW5nIGRldmVsb3BtZW50LgorCisgICAgeG1saHR0cF9rZXkgaXMgYSBzdHJpbmcgdGhhdCwgaWYgcHJlc2VudCBpbiBRVUVSWV9TVFJJTkcsCisgICAgaW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3QgaXMgYW4gWE1MSHR0cCByZXF1ZXN0LCBhbmQgdGhlCisgICAgSmF2YXNjcmlwdC9pbnRlcmFjdGl2ZSBkZWJ1Z2dlciBzaG91bGQgbm90IGJlIHJldHVybmVkLiAgKElmIHlvdQorICAgIHRyeSB0byBwdXQgdGhlIGRlYnVnZ2VyIHNvbWV3aGVyZSB3aXRoIGlubmVySFRNTCwgeW91IHdpbGwgb2Z0ZW4KKyAgICBjcmFzaCB0aGUgYnJvd3NlcikKKyAgICAiIiIKKyAgICBpZiB4bWxodHRwX2tleSBpcyBOb25lOgorICAgICAgICB4bWxodHRwX2tleSA9IGdsb2JhbF9jb25mLmdldCgneG1saHR0cF9rZXknLCAnXycpCisgICAgcmV0dXJuIEV2YWxFeGNlcHRpb24oYXBwLCB4bWxodHRwX2tleT14bWxodHRwX2tleSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9leGNlcHRpb25zL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODEzZjg1NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9leGNlcHRpb25zL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNiBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitQYWNrYWdlIGZvciBjYXRjaGluZyBleGNlcHRpb25zIGFuZCBkaXNwbGF5aW5nIGFubm90YXRlZCBleGNlcHRpb24KK3JlcG9ydHMKKyIiIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvY29sbGVjdG9yLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvY29sbGVjdG9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NjdiZjcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXhjZXB0aW9ucy9jb2xsZWN0b3IucHkKQEAgLTAsMCArMSw1MjMgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgWm9wZSBDb3Jwb3JhdGlvbiBhbmQgQ29udHJpYnV0b3JzLgorIyBBbGwgUmlnaHRzIFJlc2VydmVkLgorIworIyBUaGlzIHNvZnR3YXJlIGlzIHN1YmplY3QgdG8gdGhlIHByb3Zpc2lvbnMgb2YgdGhlIFpvcGUgUHVibGljIExpY2Vuc2UsCisjIFZlcnNpb24gMi4wIChaUEwpLiAgQSBjb3B5IG9mIHRoZSBaUEwgc2hvdWxkIGFjY29tcGFueSB0aGlzIGRpc3RyaWJ1dGlvbi4KKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBBTlkgQU5EIEFMTCBFWFBSRVNTIE9SIElNUExJRUQKKyMgV0FSUkFOVElFUyBBUkUgRElTQ0xBSU1FRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgVElUTEUsIE1FUkNIQU5UQUJJTElUWSwgQUdBSU5TVCBJTkZSSU5HRU1FTlQsIEFORCBGSVRORVNTCisjIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgT3JpZ2luYWxseSB6RXhjZXB0aW9ucy5FeGNlcHRpb25Gb3JtYXR0ZXIgZnJvbSBab3BlOworIyMgTW9kaWZpZWQgYnkgSWFuIEJpY2tpbmcsIEltYWdpbmFyeSBMYW5kc2NhcGUsIDIwMDUKKyIiIgorQW4gZXhjZXB0aW9uIGNvbGxlY3RvciB0aGF0IGZpbmRzIHRyYWNlYmFjayBpbmZvcm1hdGlvbiBwbHVzCitzdXBwbGVtZW50cworIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCB0aW1lCitmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0cmluZ0lPCitpbXBvcnQgbGluZWNhY2hlCitmcm9tIHBhc3RlLmV4Y2VwdGlvbnMgaW1wb3J0IHNlcmlhbF9udW1iZXJfZ2VuZXJhdG9yCitpbXBvcnQgd2FybmluZ3MKKworREVCVUdfRVhDRVBUSU9OX0ZPUk1BVFRFUiA9IFRydWUKK0RFQlVHX0lERU5UX1BSRUZJWCA9ICdFLScKK0ZBTExCQUNLX0VOQ09ESU5HID0gJ1VURi04JworCitfX2FsbF9fID0gWydjb2xsZWN0X2V4Y2VwdGlvbicsICdFeGNlcHRpb25Db2xsZWN0b3InXQorCitjbGFzcyBFeGNlcHRpb25Db2xsZWN0b3Iob2JqZWN0KToKKworICAgICIiIgorICAgIFByb2R1Y2VzIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZCBieSBmb3JtYXR0ZXJzIHRvCisgICAgZGlzcGxheSBleGNlcHRpb24gcmVwb3J0cy4KKworICAgIE1hZ2ljIHZhcmlhYmxlczoKKworICAgIElmIHlvdSBkZWZpbmUgb25lIG9mIHRoZXNlIHZhcmlhYmxlcyBpbiB5b3VyIGxvY2FsIHNjb3BlLCB5b3UgY2FuCisgICAgYWRkIGluZm9ybWF0aW9uIHRvIHRyYWNlYmFja3MgdGhhdCBoYXBwZW4gaW4gdGhhdCBjb250ZXh0LiAgVGhpcworICAgIGFsbG93cyBhcHBsaWNhdGlvbnMgdG8gYWRkIGFsbCBzb3J0cyBvZiBleHRyYSBpbmZvcm1hdGlvbiBhYm91dAorICAgIHRoZSBjb250ZXh0IG9mIHRoZSBlcnJvciwgaW5jbHVkaW5nIFVSTHMsIGVudmlyb25tZW50YWwgdmFyaWFibGVzLAorICAgIHVzZXJzLCBob3N0bmFtZXMsIGV0Yy4gIFRoZXNlIGFyZSB0aGUgdmFyaWFibGVzIHdlIGxvb2sgZm9yOgorCisgICAgYGBfX3RyYWNlYmFja19zdXBwbGVtZW50X19gYDoKKyAgICAgICAgWW91IGNhbiBkZWZpbmUgdGhpcyBsb2NhbGx5IG9yIGdsb2JhbGx5ICh1bmxpa2UgYWxsIHRoZSBvdGhlcgorICAgICAgICB2YXJpYWJsZXMsIHdoaWNoIG11c3QgYmUgZGVmaW5lZCBsb2NhbGx5KS4KKworICAgICAgICBgYF9fdHJhY2ViYWNrX3N1cHBsZW1lbnRfX2BgIGlzIGEgdHVwbGUgb2YgYGAoZmFjdG9yeSwgYXJnMSwKKyAgICAgICAgYXJnMi4uLilgYC4gIFdoZW4gdGhlcmUgaXMgYW4gZXhjZXB0aW9uLCBgYGZhY3RvcnkoYXJnMSwgYXJnMiwKKyAgICAgICAgLi4uKWBgIGlzIGNhbGxlZCwgYW5kIHRoZSByZXN1bHRpbmcgb2JqZWN0IGlzIGluc3BlY3RlZCBmb3IKKyAgICAgICAgc3VwcGxlbWVudGFsIGluZm9ybWF0aW9uLgorCisgICAgYGBfX3RyYWNlYmFja19pbmZvX19gYDoKKyAgICAgICAgVGhpcyBpbmZvcm1hdGlvbiBpcyBhZGRlZCB0byB0aGUgdHJhY2ViYWNrLCB1c3VhbGx5IGZhaXJseQorICAgICAgICBsaXRlcmFsbHkuCisKKyAgICBgYF9fdHJhY2ViYWNrX2hpZGVfX2BgOgorICAgICAgICBJZiBzZXQgYW5kIHRydWUsIHRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIGZyYW1lIHNob3VsZCBiZQorICAgICAgICBoaWRkZW4gZnJvbSBhYmJyZXZpYXRlZCB0cmFjZWJhY2tzLiAgVGhpcyB3YXkgeW91IGNhbiBoaWRlCisgICAgICAgIHNvbWUgb2YgdGhlIGNvbXBsZXhpdHkgb2YgdGhlIGxhcmdlciBmcmFtZXdvcmsgYW5kIGxldCB0aGUKKyAgICAgICAgdXNlciBmb2N1cyBvbiB0aGVpciBvd24gZXJyb3JzLgorCisgICAgICAgIEJ5IHNldHRpbmcgaXQgdG8gYGAnYmVmb3JlJ2BgLCBhbGwgZnJhbWVzIGJlZm9yZSB0aGlzIG9uZSB3aWxsCisgICAgICAgIGJlIHRocm93biBhd2F5LiAgQnkgc2V0dGluZyBpdCB0byBgYCdhZnRlcidgYCB0aGVuIGFsbCBmcmFtZXMKKyAgICAgICAgYWZ0ZXIgdGhpcyB3aWxsIGJlIHRocm93biBhd2F5IHVudGlsIGBgJ3Jlc2V0J2BgIGlzIGZvdW5kLiAgSW4KKyAgICAgICAgZWFjaCBjYXNlIHRoZSBmcmFtZSB3aGVyZSBpdCBpcyBzZXQgaXMgaW5jbHVkZWQsIHVubGVzcyB5b3UKKyAgICAgICAgYXBwZW5kIGBgJ19hbmRfdGhpcydgYCB0byB0aGUgdmFsdWUgKGUuZy4sCisgICAgICAgIGBgJ2JlZm9yZV9hbmRfdGhpcydgYCkuCisKKyAgICAgICAgTm90ZSB0aGF0IGZvcm1hdHRlcnMgd2lsbCBpZ25vcmUgdGhpcyBlbnRpcmVseSBpZiB0aGUgZnJhbWUKKyAgICAgICAgdGhhdCBjb250YWlucyB0aGUgZXJyb3Igd291bGRuJ3Qgbm9ybWFsbHkgYmUgc2hvd24gYWNjb3JkaW5nCisgICAgICAgIHRvIHRoZXNlIHJ1bGVzLgorCisgICAgYGBfX3RyYWNlYmFja19yZXBvcnRlcl9fYGA6CisgICAgICAgIFRoaXMgc2hvdWxkIGJlIGEgcmVwb3J0ZXIgb2JqZWN0IChzZWUgdGhlIHJlcG9ydGVyIG1vZHVsZSksCisgICAgICAgIG9yIGEgbGlzdC90dXBsZSBvZiByZXBvcnRlciBvYmplY3RzLiAgQWxsIHJlcG9ydGVycyBmb3VuZCB0aGlzCisgICAgICAgIHdheSB3aWxsIGJlIGdpdmVuIHRoZSBleGNlcHRpb24sIGlubmVybW9zdCBmaXJzdC4KKworICAgIGBgX190cmFjZWJhY2tfZGVjb3JhdG9yX19gYDoKKyAgICAgICAgVGhpcyBvYmplY3QgKGRlZmluZWQgaW4gYSBsb2NhbCBvciBnbG9iYWwgc2NvcGUpIHdpbGwgZ2V0IHRoZQorICAgICAgICByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiAodGhlIENvbGxlY3RlZEV4Y2VwdGlvbiBkZWZpbmVkCisgICAgICAgIGJlbG93KS4gIEl0IG1heSBtb2RpZnkgdGhpcyBvYmplY3QgaW4gcGxhY2UsIG9yIHJldHVybiBhbgorICAgICAgICBlbnRpcmVseSBuZXcgb2JqZWN0LiAgVGhpcyBnaXZlcyB0aGUgb2JqZWN0IHRoZSBhYmlsaXR5IHRvCisgICAgICAgIG1hbmlwdWxhdGUgdGhlIHRyYWNlYmFjayBhcmJpdHJhcmlseS4KKworICAgIFRoZSBhY3R1YWxseSBpbnRlcnByZXRhdGlvbiBvZiB0aGVzZSB2YWx1ZXMgaXMgbGFyZ2VseSB1cCB0byB0aGUKKyAgICByZXBvcnRlcnMgYW5kIGZvcm1hdHRlcnMuCisKKyAgICBgYGNvbGxlY3RfZXhjZXB0aW9uKCpzeXMuZXhjX2luZm8oKSlgYCB3aWxsIHJldHVybiBhbiBvYmplY3Qgd2l0aAorICAgIHNldmVyYWwgYXR0cmlidXRlczoKKworICAgIGBgZnJhbWVzYGA6CisgICAgICAgIEEgbGlzdCBvZiBmcmFtZXMKKyAgICBgYGV4Y2VwdGlvbl9mb3JtYXR0ZWRgYDoKKyAgICAgICAgVGhlIGZvcm1hdHRlZCBleGNlcHRpb24sIGdlbmVyYWxseSBhIGZ1bGwgdHJhY2ViYWNrCisgICAgYGBleGNlcHRpb25fdHlwZWBgOgorICAgICAgICBUaGUgdHlwZSBvZiB0aGUgZXhjZXB0aW9uLCBsaWtlIGBgVmFsdWVFcnJvcmBgCisgICAgYGBleGNlcHRpb25fdmFsdWVgYDoKKyAgICAgICAgVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgZXhjZXB0aW9uLCBsaWtlIGBgJ3ggbm90IGluIGxpc3QnYGAKKyAgICBgYGlkZW50aWZpY2F0aW9uX2NvZGVgYDoKKyAgICAgICAgQSBoYXNoIG9mIHRoZSBleGNlcHRpb24gZGF0YSBtZWFudCB0byBpZGVudGlmeSB0aGUgZ2VuZXJhbAorICAgICAgICBleGNlcHRpb24sIHNvIHRoYXQgaXQgc2hhcmVzIHRoaXMgY29kZSB3aXRoIG90aGVyIGV4Y2VwdGlvbnMKKyAgICAgICAgdGhhdCBkZXJpdmUgZnJvbSB0aGUgc2FtZSBwcm9ibGVtLiAgVGhlIGNvZGUgaXMgYSBoYXNoIG9mCisgICAgICAgIGFsbCB0aGUgbW9kdWxlIG5hbWVzIGFuZCBmdW5jdGlvbiBuYW1lcyBpbiB0aGUgdHJhY2ViYWNrLAorICAgICAgICBwbHVzIGV4Y2VwdGlvbl90eXBlLiAgVGhpcyBzaG91bGQgYmUgc2hvd24gdG8gdXNlcnMgc28gdGhleQorICAgICAgICBjYW4gcmVmZXIgdG8gdGhlIGV4Y2VwdGlvbiBsYXRlci4gKEBAOiBzaG91bGQgaXQgaW5jbHVkZSBhCisgICAgICAgIHBvcnRpb24gdGhhdCBhbGxvd3MgaWRlbnRpZmljYXRpb24gb2YgdGhlIHNwZWNpZmljIGluc3RhbmNlCisgICAgICAgIG9mIHRoZSBleGNlcHRpb24gYXMgd2VsbD8pCisKKyAgICBUaGUgbGlzdCBvZiBmcmFtZXMgZ29lcyBpbm5lcm1vc3QgZmlyc3QuICBFYWNoIGZyYW1lIGhhcyB0aGVzZQorICAgIGF0dHJpYnV0ZXM7IHNvbWUgdmFsdWVzIG1heSBiZSBOb25lIGlmIHRoZXkgY291bGQgbm90IGJlCisgICAgZGV0ZXJtaW5lZC4KKworICAgIGBgbW9kbmFtZWBgOgorICAgICAgICB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlCisgICAgYGBmaWxlbmFtZWBgOgorICAgICAgICB0aGUgZmlsZW5hbWUgb2YgdGhlIG1vZHVsZQorICAgIGBgbGluZW5vYGA6CisgICAgICAgIHRoZSBsaW5lIG9mIHRoZSBlcnJvcgorICAgIGBgcmV2aXNpb25gYDoKKyAgICAgICAgdGhlIGNvbnRlbnRzIG9mIF9fdmVyc2lvbl9fIG9yIF9fcmV2aXNpb25fXworICAgIGBgbmFtZWBgOgorICAgICAgICB0aGUgZnVuY3Rpb24gbmFtZQorICAgIGBgc3VwcGxlbWVudGBgOgorICAgICAgICBhbiBvYmplY3QgY3JlYXRlZCBmcm9tIGBgX190cmFjZWJhY2tfc3VwcGxlbWVudF9fYGAKKyAgICBgYHN1cHBsZW1lbnRfZXhjZXB0aW9uYGA6CisgICAgICAgIGEgc2ltcGxlIHRyYWNlYmFjayBvZiBhbnkgZXhjZXB0aW9uIGBgX190cmFjZWJhY2tfc3VwcGxlbWVudF9fYGAKKyAgICAgICAgY3JlYXRlZAorICAgIGBgdHJhY2ViYWNrX2luZm9gYDoKKyAgICAgICAgdGhlIHN0cigpIG9mIGFueSBgYF9fdHJhY2ViYWNrX2luZm9fX2BgIHZhcmlhYmxlIGZvdW5kIGluIHRoZSBsb2NhbAorICAgICAgICBzY29wZSAoQEA6IHNob3VsZCBpdCBzdHIoKS1pZnkgaXQgb3Igbm90PykKKyAgICBgYHRyYWNlYmFja19oaWRlYGA6CisgICAgICAgIHRoZSB2YWx1ZSBvZiBhbnkgYGBfX3RyYWNlYmFja19oaWRlX19gYCB2YXJpYWJsZQorICAgIGBgdHJhY2ViYWNrX2xvZ2BgOgorICAgICAgICB0aGUgdmFsdWUgb2YgYW55IGBgX190cmFjZWJhY2tfbG9nX19gYCB2YXJpYWJsZQorCisKKyAgICBgYF9fdHJhY2ViYWNrX3N1cHBsZW1lbnRfX2BgIGlzIHRocm93biBhd2F5LCBidXQgYSBmaXhlZAorICAgIHNldCBvZiBhdHRyaWJ1dGVzIGFyZSBjYXB0dXJlZDsgZWFjaCBvZiB0aGVzZSBhdHRyaWJ1dGVzIGlzCisgICAgb3B0aW9uYWwuCisKKyAgICBgYG9iamVjdGBgOgorICAgICAgICB0aGUgbmFtZSBvZiB0aGUgb2JqZWN0IGJlaW5nIHZpc2l0ZWQKKyAgICBgYHNvdXJjZV91cmxgYDoKKyAgICAgICAgdGhlIG9yaWdpbmFsIFVSTCByZXF1ZXN0ZWQKKyAgICBgYGxpbmVgYDoKKyAgICAgICAgdGhlIGxpbmUgb2Ygc291cmNlIGJlaW5nIGV4ZWN1dGVkIChmb3IgaW50ZXJwcmV0ZXJzLCBsaWtlIFpQVCkKKyAgICBgYGNvbHVtbmBgOgorICAgICAgICB0aGUgY29sdW1uIG9mIHNvdXJjZSBiZWluZyBleGVjdXRlZAorICAgIGBgZXhwcmVzc2lvbmBgOgorICAgICAgICB0aGUgZXhwcmVzc2lvbiBiZWluZyBldmFsdWF0ZWQgKGFsc28gZm9yIGludGVycHJldGVycykKKyAgICBgYHdhcm5pbmdzYGA6CisgICAgICAgIGEgbGlzdCBvZiAoc3RyaW5nKSB3YXJuaW5ncyB0byBiZSBkaXNwbGF5ZWQKKyAgICBgYGdldEluZm9gYDoKKyAgICAgICAgYSBmdW5jdGlvbi9tZXRob2QgdGhhdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCByZXR1cm5zIGEgc3RyaW5nCisgICAgICAgIGRlc2NyaWJpbmcgYW55IGV4dHJhIGluZm9ybWF0aW9uCisgICAgYGBleHRyYURhdGFgYDoKKyAgICAgICAgYSBmdW5jdGlvbi9tZXRob2QgdGhhdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCByZXR1cm5zIGEKKyAgICAgICAgZGljdGlvbmFyeS4gIFRoZSBjb250ZW50cyBvZiB0aGlzIGRpY3Rpb25hcnkgd2lsbCBub3QgYmUKKyAgICAgICAgZGlzcGxheWVkIGluIHRoZSBjb250ZXh0IG9mIHRoZSB0cmFjZWJhY2ssIGJ1dCBnbG9iYWxseSBmb3IKKyAgICAgICAgdGhlIGV4Y2VwdGlvbi4gIFJlc3VsdHMgd2lsbCBiZSBncm91cGVkIGJ5IHRoZSBrZXlzIGluIHRoZQorICAgICAgICBkaWN0aW9uYXJpZXMgKHdoaWNoIGFsc28gc2VydmUgYXMgdGl0bGVzKS4gIFRoZSBrZXlzIGNhbiBhbHNvCisgICAgICAgIGJlIHR1cGxlcyBvZiAoaW1wb3J0YW5jZSwgdGl0bGUpOyBpbiB0aGlzIGNhc2UgdGhlIGltcG9ydGFuY2UKKyAgICAgICAgc2hvdWxkIGJlIGBgaW1wb3J0YW50YGAgKHNob3dzIHVwIGF0IHRvcCksIGBgbm9ybWFsYGAgKHNob3dzCisgICAgICAgIHVwIHNvbWV3aGVyZTsgdW5zcGVjaWZpZWQpLCBgYHN1cHBsZW1lbnRhbGBgIChzaG93cyB1cCBhdAorICAgICAgICBib3R0b20pLCBvciBgYGV4dHJhYGAgKHNob3dzIHVwIGhpZGRlbiBvciBub3QgYXQgYWxsKS4KKworICAgIFRoZXNlIGFyZSB1c2VkIHRvIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhdHRyaWJ1dGVzIG9mIHRoZSBzYW1lCisgICAgbmFtZXMgKGBgZ2V0SW5mb2BgIGJlY29tZXMgYSBzdHJpbmcgYXR0cmlidXRlLCBub3QgYSBtZXRob2QpLgorICAgIGBgX190cmFjZWJhY2tfc3VwcGxlbWVudF9fYGAgaW1wbGVtZW50YXRpb25zIHNob3VsZCBiZSBjYXJlZnVsIHRvCisgICAgcHJvZHVjZSB2YWx1ZXMgdGhhdCBhcmUgcmVsYXRpdmVseSBzdGF0aWMgYW5kIHVubGlrZWx5IHRvIGNhdXNlCisgICAgZnVydGhlciBlcnJvcnMgaW4gdGhlIHJlcG9ydGluZyBzeXN0ZW0gLS0gYW55IGNvbXBsZXgKKyAgICBpbnRyb3NwZWN0aW9uIHNob3VsZCBnbyBpbiBgYGdldEluZm8oKWBgIGFuZCBzaG91bGQgdWx0aW1hdGVseQorICAgIHJldHVybiBhIHN0cmluZy4KKworICAgIE5vdGUgdGhhdCBhbGwgYXR0cmlidXRlcyBhcmUgb3B0aW9uYWwsIGFuZCB1bmRlciBjZXJ0YWluCisgICAgY2lyY3Vtc3RhbmNlcyBtYXkgYmUgTm9uZSBvciBtYXkgbm90IGV4aXN0IGF0IGFsbCAtLSB0aGUgY29sbGVjdG9yCisgICAgY2FuIG9ubHkgZG8gYSBiZXN0IGVmZm9ydCwgYnV0IG11c3QgYXZvaWQgY3JlYXRpbmcgYW55IGV4Y2VwdGlvbnMKKyAgICBpdHNlbGYuCisKKyAgICBGb3JtYXR0ZXJzIG1heSB3YW50IHRvIHVzZSBgYF9fdHJhY2ViYWNrX2hpZGVfX2BgIGFzIGEgaGludCB0bworICAgIGhpZGUgZnJhbWVzIHRoYXQgYXJlIHBhcnQgb2YgdGhlICdmcmFtZXdvcmsnIG9yIHVuZGVybHlpbmcgc3lzdGVtLgorICAgIFRoZXJlIGFyZSBhIHZhcmlldHkgb2YgcnVsZXMgYWJvdXQgc3BlY2lhbCB2YWx1ZXMgZm9yIHRoaXMKKyAgICB2YXJpYWJsZXMgdGhhdCBmb3JtYXR0ZXJzIHNob3VsZCBiZSBhd2FyZSBvZi4KKworICAgIFRPRE86CisKKyAgICBNb3JlIGF0dHJpYnV0ZXMgaW4gX190cmFjZWJhY2tfc3VwcGxlbWVudF9fPyAgTWF5YmUgYW4gYXR0cmlidXRlCisgICAgdGhhdCBnaXZlcyBhIGxpc3Qgb2YgbG9jYWwgdmFyaWFibGVzIHRoYXQgc2hvdWxkIGFsc28gYmUKKyAgICBjb2xsZWN0ZWQ/ICBBbHNvLCBhdHRyaWJ1dGVzIHRoYXQgd291bGQgYmUgZXhwbGljaXRseSBtZWFudCBmb3IKKyAgICB0aGUgZW50aXJlIHJlcXVlc3QsIG5vdCBqdXN0IGEgc2luZ2xlIGZyYW1lLiAgUmlnaHQgbm93IHNvbWUgb2YKKyAgICB0aGUgZml4ZWQgc2V0IG9mIGF0dHJpYnV0ZXMgKGUuZy4sIHNvdXJjZV91cmwpIGFyZSBtZWFudCBmb3IgdGhpcworICAgIHVzZSwgYnV0IHRoZXJlJ3Mgbm8gZXhwbGljaXQgd2F5IGZvciB0aGUgc3VwcGxlbWVudCB0byBpbmRpY2F0ZQorICAgIG5ldyB2YWx1ZXMsIGUuZy4sIGxvZ2dlZC1pbiB1c2VyLCBIVFRQIHJlZmVycmVyLCBlbnZpcm9ubWVudCwgZXRjLgorICAgIEFsc28sIHRoZSBhdHRyaWJ1dGVzIHRoYXQgZG8gZXhpc3QgYXJlIFpvcGUvV2ViIG9yaWVudGVkLgorCisgICAgTW9yZSBpbmZvcm1hdGlvbiBvbiBmcmFtZXM/ICBjZ2l0YiwgZm9yIGluc3RhbmNlLCBwcm9kdWNlcworICAgIGV4dGVuc2l2ZSBpbmZvcm1hdGlvbiBvbiBsb2NhbCB2YXJpYWJsZXMuICBUaGVyZSBleGlzdHMgdGhlCisgICAgcG9zc2liaWxpdHkgdGhhdCBnZXR0aW5nIHRoaXMgaW5mb3JtYXRpb24gbWF5IGNhdXNlIHNpZGUgZWZmZWN0cywKKyAgICB3aGljaCBjYW4gbWFrZSBkZWJ1Z2dpbmcgbW9yZSBkaWZmaWN1bHQ7IGJ1dCBpdCBhbHNvIHByb3ZpZGVzCisgICAgZm9kZGVyIGZvciBwb3N0LW1vcnRlbSBkZWJ1Z2dpbmcuICBIb3dldmVyLCB0aGUgY29sbGVjdG9yIGlzIG5vdAorICAgIG1lYW50IHRvIGJlIGNvbmZpZ3VyYWJsZSwgYnV0IHRvIGNhcHR1cmUgZXZlcnl0aGluZyBpdCBjYW4gYW5kIGxldAorICAgIHRoZSBmb3JtYXR0ZXJzIGJlIGNvbmZpZ3VyYWJsZS4gIE1heWJlIHRoaXMgd291bGQgaGF2ZSB0byBiZSBhCisgICAgY29uZmlndXJhdGlvbiB2YWx1ZSwgb3IgbWF5YmUgaXQgY291bGQgYmUgaW5kaWNhdGVkIGJ5IGFub3RoZXIKKyAgICBtYWdpY2FsIHZhcmlhYmxlICh3aGljaCB3b3VsZCBwcm9iYWJseSBtZWFuICdzaG93IGFsbCBsb2NhbAorICAgIHZhcmlhYmxlcyBiZWxvdyB0aGlzIGZyYW1lJykKKyAgICAiIiIKKworICAgIHNob3dfcmV2aXNpb25zID0gMAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxpbWl0PU5vbmUpOgorICAgICAgICBzZWxmLmxpbWl0ID0gbGltaXQKKworICAgIGRlZiBnZXRMaW1pdChzZWxmKToKKyAgICAgICAgbGltaXQgPSBzZWxmLmxpbWl0CisgICAgICAgIGlmIGxpbWl0IGlzIE5vbmU6CisgICAgICAgICAgICBsaW1pdCA9IGdldGF0dHIoc3lzLCAndHJhY2ViYWNrbGltaXQnLCBOb25lKQorICAgICAgICByZXR1cm4gbGltaXQKKworICAgIGRlZiBnZXRSZXZpc2lvbihzZWxmLCBnbG9iYWxzKToKKyAgICAgICAgaWYgbm90IHNlbGYuc2hvd19yZXZpc2lvbnM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXZpc2lvbiA9IGdsb2JhbHMuZ2V0KCdfX3JldmlzaW9uX18nLCBOb25lKQorICAgICAgICBpZiByZXZpc2lvbiBpcyBOb25lOgorICAgICAgICAgICAgIyBJbmNvcnJlY3QgYnV0IGNvbW1vbmx5IHVzZWQgc3BlbGxpbmcKKyAgICAgICAgICAgIHJldmlzaW9uID0gZ2xvYmFscy5nZXQoJ19fdmVyc2lvbl9fJywgTm9uZSkKKworICAgICAgICBpZiByZXZpc2lvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXZpc2lvbiA9IHN0cihyZXZpc2lvbikuc3RyaXAoKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJldmlzaW9uID0gJz8/PycKKyAgICAgICAgcmV0dXJuIHJldmlzaW9uCisKKyAgICBkZWYgY29sbGVjdFN1cHBsZW1lbnQoc2VsZiwgc3VwcGxlbWVudCwgdGIpOgorICAgICAgICByZXN1bHQgPSB7fQorCisgICAgICAgIGZvciBuYW1lIGluICgnb2JqZWN0JywgJ3NvdXJjZV91cmwnLCAnbGluZScsICdjb2x1bW4nLAorICAgICAgICAgICAgICAgICAgICAgJ2V4cHJlc3Npb24nLCAnd2FybmluZ3MnKToKKyAgICAgICAgICAgIHJlc3VsdFtuYW1lXSA9IGdldGF0dHIoc3VwcGxlbWVudCwgbmFtZSwgTm9uZSkKKworICAgICAgICBmdW5jID0gZ2V0YXR0cihzdXBwbGVtZW50LCAnZ2V0SW5mbycsIE5vbmUpCisgICAgICAgIGlmIGZ1bmM6CisgICAgICAgICAgICByZXN1bHRbJ2luZm8nXSA9IGZ1bmMoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0WydpbmZvJ10gPSBOb25lCisgICAgICAgIGZ1bmMgPSBnZXRhdHRyKHN1cHBsZW1lbnQsICdleHRyYURhdGEnLCBOb25lKQorICAgICAgICBpZiBmdW5jOgorICAgICAgICAgICAgcmVzdWx0WydleHRyYSddID0gZnVuYygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHRbJ2V4dHJhJ10gPSBOb25lCisgICAgICAgIHJldHVybiBTdXBwbGVtZW50YXJ5RGF0YSgqKnJlc3VsdCkKKworICAgIGRlZiBjb2xsZWN0TGluZShzZWxmLCB0YiwgZXh0cmFfZGF0YSk6CisgICAgICAgIGYgPSB0Yi50Yl9mcmFtZQorICAgICAgICBsaW5lbm8gPSB0Yi50Yl9saW5lbm8KKyAgICAgICAgY28gPSBmLmZfY29kZQorICAgICAgICBmaWxlbmFtZSA9IGNvLmNvX2ZpbGVuYW1lCisgICAgICAgIG5hbWUgPSBjby5jb19uYW1lCisgICAgICAgIGdsb2JhbHMgPSBmLmZfZ2xvYmFscworICAgICAgICBsb2NhbHMgPSBmLmZfbG9jYWxzCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKGxvY2FscywgJ2hhc19rZXknKToKKyAgICAgICAgICAgICMgU29tZXRoaW5nIHdlaXJkIGFib3V0IHRoaXMgZnJhbWU7IGl0J3Mgbm90IGEgcmVhbCBkaWN0CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgICAgICJGcmFtZSAlcyBoYXMgYW4gaW52YWxpZCBsb2NhbHMoKTogJXIiICUgKAorICAgICAgICAgICAgICAgIGdsb2JhbHMuZ2V0KCdfX25hbWVfXycsICd1bmtub3duJyksIGxvY2FscykpCisgICAgICAgICAgICBsb2NhbHMgPSB7fQorICAgICAgICBkYXRhID0ge30KKyAgICAgICAgZGF0YVsnbW9kbmFtZSddID0gZ2xvYmFscy5nZXQoJ19fbmFtZV9fJywgTm9uZSkKKyAgICAgICAgZGF0YVsnZmlsZW5hbWUnXSA9IGZpbGVuYW1lCisgICAgICAgIGRhdGFbJ2xpbmVubyddID0gbGluZW5vCisgICAgICAgIGRhdGFbJ3JldmlzaW9uJ10gPSBzZWxmLmdldFJldmlzaW9uKGdsb2JhbHMpCisgICAgICAgIGRhdGFbJ25hbWUnXSA9IG5hbWUKKyAgICAgICAgZGF0YVsndGJpZCddID0gaWQodGIpCisKKyAgICAgICAgIyBPdXRwdXQgYSB0cmFjZWJhY2sgc3VwcGxlbWVudCwgaWYgYW55LgorICAgICAgICBpZiAnX190cmFjZWJhY2tfc3VwcGxlbWVudF9fJyBpbiBsb2NhbHM6CisgICAgICAgICAgICAjIFVzZSB0aGUgc3VwcGxlbWVudCBkZWZpbmVkIGluIHRoZSBmdW5jdGlvbi4KKyAgICAgICAgICAgIHRicyA9IGxvY2Fsc1snX190cmFjZWJhY2tfc3VwcGxlbWVudF9fJ10KKyAgICAgICAgZWxpZiAnX190cmFjZWJhY2tfc3VwcGxlbWVudF9fJyBpbiBnbG9iYWxzOgorICAgICAgICAgICAgIyBVc2UgdGhlIHN1cHBsZW1lbnQgZGVmaW5lZCBpbiB0aGUgbW9kdWxlLgorICAgICAgICAgICAgIyBUaGlzIGlzIHVzZWQgYnkgU2NyaXB0cyAoUHl0aG9uKS4KKyAgICAgICAgICAgIHRicyA9IGdsb2JhbHNbJ19fdHJhY2ViYWNrX3N1cHBsZW1lbnRfXyddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0YnMgPSBOb25lCisgICAgICAgIGlmIHRicyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZhY3RvcnkgPSB0YnNbMF0KKyAgICAgICAgICAgIGFyZ3MgPSB0YnNbMTpdCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc3VwcCA9IGZhY3RvcnkoKmFyZ3MpCisgICAgICAgICAgICAgICAgZGF0YVsnc3VwcGxlbWVudCddID0gc2VsZi5jb2xsZWN0U3VwcGxlbWVudChzdXBwLCB0YikKKyAgICAgICAgICAgICAgICBpZiBkYXRhWydzdXBwbGVtZW50J10uZXh0cmE6CisgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGRhdGFbJ3N1cHBsZW1lbnQnXS5leHRyYS5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfZGF0YS5zZXRkZWZhdWx0KGtleSwgW10pLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBpZiBERUJVR19FWENFUFRJT05fRk9STUFUVEVSOgorICAgICAgICAgICAgICAgICAgICBvdXQgPSBTdHJpbmdJTygpCisgICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1vdXQpCisgICAgICAgICAgICAgICAgICAgIHRleHQgPSBvdXQuZ2V0dmFsdWUoKQorICAgICAgICAgICAgICAgICAgICBkYXRhWydzdXBwbGVtZW50X2V4Y2VwdGlvbiddID0gdGV4dAorICAgICAgICAgICAgICAgICMgZWxzZSBqdXN0IHN3YWxsb3cgdGhlIGV4Y2VwdGlvbi4KKworICAgICAgICB0cnk6CisgICAgICAgICAgICB0YmkgPSBsb2NhbHMuZ2V0KCdfX3RyYWNlYmFja19pbmZvX18nLCBOb25lKQorICAgICAgICAgICAgaWYgdGJpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGRhdGFbJ3RyYWNlYmFja19pbmZvJ10gPSBzdHIodGJpKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbWFya2VyID0gW10KKyAgICAgICAgZm9yIG5hbWUgaW4gKCdfX3RyYWNlYmFja19oaWRlX18nLCAnX190cmFjZWJhY2tfbG9nX18nLAorICAgICAgICAgICAgICAgICAgICAgJ19fdHJhY2ViYWNrX2RlY29yYXRvcl9fJyk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGJoID0gbG9jYWxzLmdldChuYW1lLCBnbG9iYWxzLmdldChuYW1lLCBtYXJrZXIpKQorICAgICAgICAgICAgICAgIGlmIHRiaCBpcyBub3QgbWFya2VyOgorICAgICAgICAgICAgICAgICAgICBkYXRhW25hbWVbMjotMl1dID0gdGJoCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBkZWYgY29sbGVjdEV4Y2VwdGlvbk9ubHkoc2VsZiwgZXR5cGUsIHZhbHVlKToKKyAgICAgICAgcmV0dXJuIHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uX29ubHkoZXR5cGUsIHZhbHVlKQorCisgICAgZGVmIGNvbGxlY3RFeGNlcHRpb24oc2VsZiwgZXR5cGUsIHZhbHVlLCB0YiwgbGltaXQ9Tm9uZSk6CisgICAgICAgICMgVGhlIG5leHQgbGluZSBwcm92aWRlcyBhIHdheSB0byBkZXRlY3QgcmVjdXJzaW9uLgorICAgICAgICBfX2V4Y2VwdGlvbl9mb3JtYXR0ZXJfXyA9IDEKKyAgICAgICAgZnJhbWVzID0gW10KKyAgICAgICAgaWRlbnRfZGF0YSA9IFtdCisgICAgICAgIHRyYWNlYmFja19kZWNvcmF0b3JzID0gW10KKyAgICAgICAgaWYgbGltaXQgaXMgTm9uZToKKyAgICAgICAgICAgIGxpbWl0ID0gc2VsZi5nZXRMaW1pdCgpCisgICAgICAgIG4gPSAwCisgICAgICAgIGV4dHJhX2RhdGEgPSB7fQorICAgICAgICB3aGlsZSB0YiBpcyBub3QgTm9uZSBhbmQgKGxpbWl0IGlzIE5vbmUgb3IgbiA8IGxpbWl0KToKKyAgICAgICAgICAgIGlmIHRiLnRiX2ZyYW1lLmZfbG9jYWxzLmdldCgnX19leGNlcHRpb25fZm9ybWF0dGVyX18nKToKKyAgICAgICAgICAgICAgICAjIFN0b3AgcmVjdXJzaW9uLiBAQDogc2hvdWxkIG1ha2UgYSBmYWtlIEV4Y2VwdGlvbkZyYW1lCisgICAgICAgICAgICAgICAgZnJhbWVzLmFwcGVuZCgnKFJlY3Vyc2l2ZSBmb3JtYXRFeGNlcHRpb24oKSBzdG9wcGVkKVxuJykKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZGF0YSA9IHNlbGYuY29sbGVjdExpbmUodGIsIGV4dHJhX2RhdGEpCisgICAgICAgICAgICBmcmFtZSA9IEV4Y2VwdGlvbkZyYW1lKCoqZGF0YSkKKyAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoZnJhbWUpCisgICAgICAgICAgICBpZiBmcmFtZS50cmFjZWJhY2tfZGVjb3JhdG9yIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHRyYWNlYmFja19kZWNvcmF0b3JzLmFwcGVuZChmcmFtZS50cmFjZWJhY2tfZGVjb3JhdG9yKQorICAgICAgICAgICAgaWRlbnRfZGF0YS5hcHBlbmQoZnJhbWUubW9kbmFtZSBvciAnPycpCisgICAgICAgICAgICBpZGVudF9kYXRhLmFwcGVuZChmcmFtZS5uYW1lIG9yICc/JykKKyAgICAgICAgICAgIHRiID0gdGIudGJfbmV4dAorICAgICAgICAgICAgbiA9IG4gKyAxCisgICAgICAgIGlkZW50X2RhdGEuYXBwZW5kKHN0cihldHlwZSkpCisgICAgICAgIGlkZW50ID0gc2VyaWFsX251bWJlcl9nZW5lcmF0b3IuaGFzaF9pZGVudGlmaWVyKAorICAgICAgICAgICAgJyAnLmpvaW4oaWRlbnRfZGF0YSksIGxlbmd0aD01LCB1cHBlcj1UcnVlLAorICAgICAgICAgICAgcHJlZml4PURFQlVHX0lERU5UX1BSRUZJWCkKKworICAgICAgICByZXN1bHQgPSBDb2xsZWN0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICBmcmFtZXM9ZnJhbWVzLAorICAgICAgICAgICAgZXhjZXB0aW9uX2Zvcm1hdHRlZD1zZWxmLmNvbGxlY3RFeGNlcHRpb25Pbmx5KGV0eXBlLCB2YWx1ZSksCisgICAgICAgICAgICBleGNlcHRpb25fdHlwZT1ldHlwZSwKKyAgICAgICAgICAgIGV4Y2VwdGlvbl92YWx1ZT1zZWxmLnNhZmVTdHIodmFsdWUpLAorICAgICAgICAgICAgaWRlbnRpZmljYXRpb25fY29kZT1pZGVudCwKKyAgICAgICAgICAgIGRhdGU9dGltZS5sb2NhbHRpbWUoKSwKKyAgICAgICAgICAgIGV4dHJhX2RhdGE9ZXh0cmFfZGF0YSkKKyAgICAgICAgaWYgZXR5cGUgaXMgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICBleHRyYV9kYXRhWygnaW1wb3J0YW50JywgJ3N5cy5wYXRoJyldID0gW3N5cy5wYXRoXQorICAgICAgICBmb3IgZGVjb3JhdG9yIGluIHRyYWNlYmFja19kZWNvcmF0b3JzOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG5ld19yZXN1bHQgPSBkZWNvcmF0b3IocmVzdWx0KQorICAgICAgICAgICAgICAgIGlmIG5ld19yZXN1bHQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ld19yZXN1bHQKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBzYWZlU3RyKHNlbGYsIG9iaik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzdHIob2JqKQorICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiB1bmljb2RlKG9iaikuZW5jb2RlKEZBTExCQUNLX0VOQ09ESU5HLCAncmVwbGFjZScpCisgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgICAgICMgVGhpcyBpcyB3aGVuIHNvbWV0aGluZyBpcyByZWFsbHkgbWVzc2VkIHVwLCBidXQgdGhpcyBjYW4KKyAgICAgICAgICAgICAgICAjIGhhcHBlbiB3aGVuIHRoZSBfX3N0cl9fIG9mIGFuIG9iamVjdCBoYXMgdG8gaGFuZGxlIHVuaWNvZGUKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVwcihvYmopCisKK2xpbWl0ID0gMjAwCisKK2NsYXNzIEJ1bmNoKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBBIGdlbmVyaWMgY29udGFpbmVyCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiphdHRycyk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBhdHRycy5pdGVtcygpOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCB2YWx1ZSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgbmFtZSA9ICc8JXMgJyAlIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fCisgICAgICAgIG5hbWUgKz0gJyAnLmpvaW4oWyclcz0lcicgJSAobmFtZSwgc3RyKHZhbHVlKVs6MzBdKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5fX2RpY3RfXy5pdGVtcygpCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoJ18nKV0pCisgICAgICAgIHJldHVybiBuYW1lICsgJz4nCisKK2NsYXNzIENvbGxlY3RlZEV4Y2VwdGlvbihCdW5jaCk6CisgICAgIiIiCisgICAgVGhpcyBpcyB0aGUgcmVzdWx0IG9mIGNvbGxlY3Rpb24gdGhlIGV4Y2VwdGlvbjsgaXQgY29udGFpbnMgY29waWVzCisgICAgb2YgZGF0YSBvZiBpbnRlcmVzdC4KKyAgICAiIiIKKyAgICAjIEEgbGlzdCBvZiBmcmFtZXMgKEV4Y2VwdGlvbkZyYW1lIGluc3RhbmNlcyksIGlubmVybW9zdCBsYXN0OgorICAgIGZyYW1lcyA9IFtdCisgICAgIyBUaGUgcmVzdWx0IG9mIHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uX29ubHk7IHRoaXMgbG9va3MKKyAgICAjIGxpa2UgYSBub3JtYWwgdHJhY2ViYWNrIHlvdSdkIHNlZSBpbiB0aGUgaW50ZXJhY3RpdmUgaW50ZXJwcmV0ZXIKKyAgICBleGNlcHRpb25fZm9ybWF0dGVkID0gTm9uZQorICAgICMgVGhlICpzdHJpbmcqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0eXBlIG9mIHRoZSBleGNlcHRpb24KKyAgICAjIChAQDogc2hvdWxkIHdlIGdpdmUgdGhlICMgYWN0dWFsIGNsYXNzPyAtLSB3ZSBjYW4ndCBrZWVwIHRoZQorICAgICMgYWN0dWFsIGV4Y2VwdGlvbiBhcm91bmQsIGJ1dCB0aGUgY2xhc3Mgc2hvdWxkIGJlIHNhZmUpCisgICAgIyBTb21ldGhpbmcgbGlrZSAnVmFsdWVFcnJvcicKKyAgICBleGNlcHRpb25fdHlwZSA9IE5vbmUKKyAgICAjIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGV4Y2VwdGlvbiwgZnJvbSBgYHN0cihlKWBgLgorICAgIGV4Y2VwdGlvbl92YWx1ZSA9IE5vbmUKKyAgICAjIEFuIGlkZW50aWZpZXIgd2hpY2ggc2hvdWxkIG1vcmUtb3ItbGVzcyBjbGFzc2lmeSB0aGlzIHBhcnRpY3VsYXIKKyAgICAjIGV4Y2VwdGlvbiwgaW5jbHVkaW5nIHdoZXJlIGluIHRoZSBjb2RlIGl0IGhhcHBlbmVkLgorICAgIGlkZW50aWZpY2F0aW9uX2NvZGUgPSBOb25lCisgICAgIyBUaGUgZGF0ZSwgYXMgdGltZS5sb2NhbHRpbWUoKSByZXR1cm5zOgorICAgIGRhdGUgPSBOb25lCisgICAgIyBBIGRpY3Rpb25hcnkgb2Ygc3VwcGxlbWVudGFsIGRhdGE6CisgICAgZXh0cmFfZGF0YSA9IHt9CisKK2NsYXNzIFN1cHBsZW1lbnRhcnlEYXRhKEJ1bmNoKToKKyAgICAiIiIKKyAgICBUaGUgcmVzdWx0IG9mIF9fdHJhY2ViYWNrX3N1cHBsZW1lbnRfXy4gIFdlIGRvbid0IGtlZXAgdGhlCisgICAgc3VwcGxlbWVudCBvYmplY3QgYXJvdW5kLCBmb3IgZmVhciBvZiBHQyBwcm9ibGVtcyBhbmQgd2hhdG5vdC4KKyAgICAoQEA6IE1heWJlIEknbSBiZWluZyB0b28gc3VwZXJzdGl0aW91cyBhYm91dCBjb3B5aW5nIG9ubHkgc3BlY2lmaWMKKyAgICBpbmZvcm1hdGlvbiBvdmVyKQorICAgICIiIgorCisgICAgIyBUaGVzZSBhdHRyaWJ1dGVzIGFyZSBjb3BpZWQgZnJvbSB0aGUgb2JqZWN0LCBvciBsZWZ0IGFzIE5vbmUKKyAgICAjIGlmIHRoZSBvYmplY3QgZG9lc24ndCBoYXZlIHRoZXNlIGF0dHJpYnV0ZXM6CisgICAgb2JqZWN0ID0gTm9uZQorICAgIHNvdXJjZV91cmwgPSBOb25lCisgICAgbGluZSA9IE5vbmUKKyAgICBjb2x1bW4gPSBOb25lCisgICAgZXhwcmVzc2lvbiA9IE5vbmUKKyAgICB3YXJuaW5ncyA9IE5vbmUKKyAgICAjIFRoaXMgaXMgdGhlICpyZXR1cm4gdmFsdWUqIG9mIHN1cHBsZW1lbnQuZ2V0SW5mbygpOgorICAgIGluZm8gPSBOb25lCisKK2NsYXNzIEV4Y2VwdGlvbkZyYW1lKEJ1bmNoKToKKyAgICAiIiIKKyAgICBUaGlzIHJlcHJlc2VudHMgb25lIGZyYW1lIG9mIHRoZSBleGNlcHRpb24uICBFYWNoIGZyYW1lIGlzIGEKKyAgICBjb250ZXh0IGluIHRoZSBjYWxsIHN0YWNrLCB0eXBpY2FsbHkgcmVwcmVzZW50ZWQgYnkgYSBsaW5lCisgICAgbnVtYmVyIGFuZCBtb2R1bGUgbmFtZSBpbiB0aGUgdHJhY2ViYWNrLgorICAgICIiIgorCisgICAgIyBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlOyBjYW4gYmUgTm9uZSwgZXNwZWNpYWxseSB3aGVuIHRoZSBjb2RlCisgICAgIyBpc24ndCBhc3NvY2lhdGVkIHdpdGggYSBtb2R1bGUuCisgICAgbW9kbmFtZSA9IE5vbmUKKyAgICAjIFRoZSBmaWxlbmFtZSAoQEA6IHdoZW4gbm8gZmlsZW5hbWUsIGlzIGl0IE5vbmUgb3IgJz8nPykKKyAgICBmaWxlbmFtZSA9IE5vbmUKKyAgICAjIExpbmUgbnVtYmVyCisgICAgbGluZW5vID0gTm9uZQorICAgICMgVGhlIHZhbHVlIG9mIF9fcmV2aXNpb25fXyBvciBfX3ZlcnNpb25fXyAtLSBidXQgb25seSBpZgorICAgICMgc2hvd19yZXZpc2lvbiA9IFRydWUgKGJ5IGRlZmF1dCBpdCBpcyBmYWxzZSkuICAoQEA6IFdoeSBub3QKKyAgICAjIGNvbGxlY3QgdGhpcz8pCisgICAgcmV2aXNpb24gPSBOb25lCisgICAgIyBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgZXJyb3IgKEBAOiBOb25lIG9yICc/JyB3aGVuCisgICAgIyB1bmtub3duPykKKyAgICBuYW1lID0gTm9uZQorICAgICMgQSBTdXBwbGVtZW50YXJ5RGF0YSBvYmplY3QsIGlmIF9fdHJhY2ViYWNrX3N1cHBsZW1lbnRfXyB3YXMgZm91bmQKKyAgICAjIChhbmQgcHJvZHVjZWQgbm8gZXJyb3JzKQorICAgIHN1cHBsZW1lbnQgPSBOb25lCisgICAgIyBJZiBhY2Nlc3NpbmcgX190cmFjZWJhY2tfc3VwcGxlbWVudF9fIGNhdXNlcyBhbnkgZXJyb3IsIHRoZQorICAgICMgcGxhaW4tdGV4dCB0cmFjZWJhY2sgaXMgc3RvcmVkIGhlcmUKKyAgICBzdXBwbGVtZW50X2V4Y2VwdGlvbiA9IE5vbmUKKyAgICAjIFRoZSBzdHIoKSBvZiBhbnkgX190cmFjZWJhY2tfaW5mb19fIHZhbHVlIGZvdW5kCisgICAgdHJhY2ViYWNrX2luZm8gPSBOb25lCisgICAgIyBUaGUgdmFsdWUgb2YgX190cmFjZWJhY2tfaGlkZV9fCisgICAgdHJhY2ViYWNrX2hpZGUgPSBGYWxzZQorICAgICMgVGhlIHZhbHVlIG9mIF9fdHJhY2ViYWNrX2RlY29yYXRvcl9fCisgICAgdHJhY2ViYWNrX2RlY29yYXRvciA9IE5vbmUKKyAgICAjIFRoZSBpZCgpIG9mIHRoZSB0cmFjZWJhY2sgc2NvcGUsIGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUKKyAgICAjIHNjb3BlIGZvciB1c2UgZWxzZXdoZXJlCisgICAgdGJpZCA9IE5vbmUKKworICAgIGRlZiBnZXRfc291cmNlX2xpbmUoc2VsZiwgY29udGV4dD0wKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgc291cmNlIG9mIHRoZSBjdXJyZW50IGxpbmUgb2YgdGhpcyBmcmFtZS4gIFlvdQorICAgICAgICBwcm9iYWJseSB3YW50IHRvIC5zdHJpcCgpIGl0IGFzIHdlbGwsIGFzIGl0IGlzIGxpa2VseSB0byBoYXZlCisgICAgICAgIGxlYWRpbmcgd2hpdGVzcGFjZS4KKworICAgICAgICBJZiBjb250ZXh0IGlzIGdpdmVuLCB0aGVuIHRoYXQgbWFueSBsaW5lcyBvbiBlaXRoZXIgc2lkZSB3aWxsCisgICAgICAgIGFsc28gYmUgcmV0dXJuZWQuICBFLmcuLCBjb250ZXh0PTEgd2lsbCBnaXZlIDMgbGluZXMuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgc2VsZi5maWxlbmFtZSBvciBub3Qgc2VsZi5saW5lbm86CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGZvciBsaW5lbm8gaW4gcmFuZ2Uoc2VsZi5saW5lbm8tY29udGV4dCwgc2VsZi5saW5lbm8rY29udGV4dCsxKToKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChsaW5lY2FjaGUuZ2V0bGluZShzZWxmLmZpbGVuYW1lLCBsaW5lbm8pKQorICAgICAgICByZXR1cm4gJycuam9pbihsaW5lcykKKworaWYgaGFzYXR0cihzeXMsICd0cmFjZWJhY2tsaW1pdCcpOgorICAgIGxpbWl0ID0gbWluKGxpbWl0LCBzeXMudHJhY2ViYWNrbGltaXQpCisKK2NvbCA9IEV4Y2VwdGlvbkNvbGxlY3RvcigpCisKK2RlZiBjb2xsZWN0X2V4Y2VwdGlvbih0LCB2LCB0YiwgbGltaXQ9Tm9uZSk6CisgICAgIiIiCisgICAgQ29sbGVjdGlvbiBhbiBleGNlcHRpb24gZnJvbSBgYHN5cy5leGNfaW5mbygpYGAuCisKKyAgICBVc2UgbGlrZTo6CisKKyAgICAgIHRyeToKKyAgICAgICAgICBibGFoIGJsYWgKKyAgICAgIGV4Y2VwdDoKKyAgICAgICAgICBleGNfZGF0YSA9IGNvbGxlY3RfZXhjZXB0aW9uKCpzeXMuZXhjX2luZm8oKSkKKyAgICAiIiIKKyAgICByZXR1cm4gY29sLmNvbGxlY3RFeGNlcHRpb24odCwgdiwgdGIsIGxpbWl0PWxpbWl0KQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvZXJyb3JtaWRkbGV3YXJlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvZXJyb3JtaWRkbGV3YXJlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzEyNjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXhjZXB0aW9ucy9lcnJvcm1pZGRsZXdhcmUucHkKQEAgLTAsMCArMSw0NjYgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworIiIiCitFcnJvciBoYW5kbGVyIG1pZGRsZXdhcmUKKyIiIgoraW1wb3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IGNnaQorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJpbmdJTworZnJvbSBwYXN0ZS5leGNlcHRpb25zIGltcG9ydCBmb3JtYXR0ZXIsIGNvbGxlY3RvciwgcmVwb3J0ZXIKK2Zyb20gcGFzdGUgaW1wb3J0IHdzZ2lsaWIKK2Zyb20gcGFzdGUgaW1wb3J0IHJlcXVlc3QKK2ltcG9ydCBzaXgKKworX19hbGxfXyA9IFsnRXJyb3JNaWRkbGV3YXJlJywgJ2hhbmRsZV9leGNlcHRpb24nXQorCitjbGFzcyBfTm9EZWZhdWx0KG9iamVjdCk6CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzxOb0RlZmF1bHQ+JworTm9EZWZhdWx0ID0gX05vRGVmYXVsdCgpCisKK2NsYXNzIEVycm9yTWlkZGxld2FyZShvYmplY3QpOgorCisgICAgIiIiCisgICAgRXJyb3IgaGFuZGxpbmcgbWlkZGxld2FyZQorCisgICAgVXNhZ2U6OgorCisgICAgICAgIGVycm9yX2NhdGNoaW5nX3dzZ2lfYXBwID0gRXJyb3JNaWRkbGV3YXJlKHdzZ2lfYXBwKQorCisgICAgU2V0dGluZ3M6CisKKyAgICAgIGBgZGVidWdgYDoKKyAgICAgICAgICBJZiB0cnVlLCB0aGVuIHRyYWNlYmFja3Mgd2lsbCBiZSBzaG93biBpbiB0aGUgYnJvd3Nlci4KKworICAgICAgYGBlcnJvcl9lbWFpbGBgOgorICAgICAgICAgIGFuIGVtYWlsIGFkZHJlc3MgKG9yIGxpc3Qgb2YgYWRkcmVzc2VzKSB0byBzZW5kIGV4Y2VwdGlvbgorICAgICAgICAgIHJlcG9ydHMgdG8KKworICAgICAgYGBlcnJvcl9sb2dgYDoKKyAgICAgICAgICBhIGZpbGVuYW1lIHRvIGFwcGVuZCB0cmFjZWJhY2tzIHRvCisKKyAgICAgIGBgc2hvd19leGNlcHRpb25zX2luX3dzZ2lfZXJyb3JzYGA6CisgICAgICAgICAgSWYgdHJ1ZSwgdGhlbiBlcnJvcnMgd2lsbCBiZSBwcmludGVkIHRvIGBgd3NnaS5lcnJvcnNgYAorICAgICAgICAgIChmcmVxdWVudGx5IGEgc2VydmVyIGVycm9yIGxvZywgb3Igc3RkZXJyKS4KKworICAgICAgYGBmcm9tX2FkZHJlc3NgYCwgYGBzbXRwX3NlcnZlcmBgLCBgYGVycm9yX3N1YmplY3RfcHJlZml4YGAsIGBgc210cF91c2VybmFtZWBgLCBgYHNtdHBfcGFzc3dvcmRgYCwgYGBzbXRwX3VzZV90bHNgYDoKKyAgICAgICAgICB2YXJpYWJsZXMgdG8gY29udHJvbCB0aGUgZW1haWxlZCBleGNlcHRpb24gcmVwb3J0cworCisgICAgICBgYGVycm9yX21lc3NhZ2VgYDoKKyAgICAgICAgICBXaGVuIGRlYnVnIG1vZGUgaXMgb2ZmLCB0aGUgZXJyb3IgbWVzc2FnZSB0byBzaG93IHRvIHVzZXJzLgorCisgICAgICBgYHhtbGh0dHBfa2V5YGA6CisgICAgICAgICAgV2hlbiB0aGlzIGtleSAoZGVmYXVsdCBgYF9gYCkgaXMgaW4gdGhlIHJlcXVlc3QgR0VUIHZhcmlhYmxlcworICAgICAgICAgIChub3QgUE9TVCEpLCBleHBlY3QgdGhhdCB0aGlzIGlzIGFuIFhNTEh0dHBSZXF1ZXN0LCBhbmQgdGhlCisgICAgICAgICAgcmVzcG9uc2Ugc2hvdWxkIGJlIG1vcmUgbWluaW1hbDsgaXQgc2hvdWxkIG5vdCBiZSBhIGNvbXBsZXRlCisgICAgICAgICAgSFRNTCBwYWdlLgorCisgICAgRW52aXJvbm1lbnQgQ29uZmlndXJhdGlvbjoKKworICAgICAgYGBwYXN0ZS50aHJvd19lcnJvcnNgYDoKKyAgICAgICAgICBJZiB0aGlzIHNldHRpbmcgaW4gdGhlIHJlcXVlc3QgZW52aXJvbm1lbnQgaXMgdHJ1ZSwgdGhlbiB0aGlzCisgICAgICAgICAgbWlkZGxld2FyZSBpcyBkaXNhYmxlZC4gVGhpcyBjYW4gYmUgdXNlZnVsIGluIGEgdGVzdGluZyBzaXR1YXRpb24KKyAgICAgICAgICB3aGVyZSB5b3UgZG9uJ3Qgd2FudCBlcnJvcnMgdG8gYmUgY2F1Z2h0IGFuZCB0cmFuc2Zvcm1lZC4KKworICAgICAgYGBwYXN0ZS5leHBlY3RlZF9leGNlcHRpb25zYGA6CisgICAgICAgICAgV2hlbiB0aGlzIG1pZGRsZXdhcmUgZW5jb3VudGVycyBhbiBleGNlcHRpb24gbGlzdGVkIGluIHRoaXMKKyAgICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQgd2hlbiB0aGUgYGBzdGFydF9yZXNwb25zZWBgIGhhcyBub3QKKyAgICAgICAgICB5ZXQgb2NjdXJyZWQsIHRoZSBleGNlcHRpb24gd2lsbCBiZSByZS1yYWlzZWQgaW5zdGVhZCBvZiBiZWluZworICAgICAgICAgIGNhdWdodC4gIFRoaXMgc2hvdWxkIGdlbmVyYWxseSBiZSBzZXQgYnkgbWlkZGxld2FyZSB0aGF0IG1heQorICAgICAgICAgIChidXQgcHJvYmFibHkgc2hvdWxkbid0IGJlKSBpbnN0YWxsZWQgYWJvdmUgdGhpcyBtaWRkbGV3YXJlLAorICAgICAgICAgIGFuZCB3YW50cyB0byBnZXQgY2VydGFpbiBleGNlcHRpb25zLiAgRXhjZXB0aW9ucyByYWlzZWQgYWZ0ZXIKKyAgICAgICAgICBgYHN0YXJ0X3Jlc3BvbnNlYGAgaGF2ZSBiZWVuIGNhbGxlZCBhcmUgYWx3YXlzIGNhdWdodCBzaW5jZQorICAgICAgICAgIGJ5IGRlZmluaXRpb24gdGhleSBhcmUgbm8gbG9uZ2VyIGV4cGVjdGVkLgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwbGljYXRpb24sIGdsb2JhbF9jb25mPU5vbmUsCisgICAgICAgICAgICAgICAgIGRlYnVnPU5vRGVmYXVsdCwKKyAgICAgICAgICAgICAgICAgZXJyb3JfZW1haWw9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXJyb3JfbG9nPU5vbmUsCisgICAgICAgICAgICAgICAgIHNob3dfZXhjZXB0aW9uc19pbl93c2dpX2Vycm9ycz1Ob0RlZmF1bHQsCisgICAgICAgICAgICAgICAgIGZyb21fYWRkcmVzcz1Ob25lLAorICAgICAgICAgICAgICAgICBzbXRwX3NlcnZlcj1Ob25lLAorICAgICAgICAgICAgICAgICBzbXRwX3VzZXJuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgIHNtdHBfcGFzc3dvcmQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc210cF91c2VfdGxzPUZhbHNlLAorICAgICAgICAgICAgICAgICBlcnJvcl9zdWJqZWN0X3ByZWZpeD1Ob25lLAorICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlPU5vbmUsCisgICAgICAgICAgICAgICAgIHhtbGh0dHBfa2V5PU5vbmUpOgorICAgICAgICBmcm9tIHBhc3RlLnV0aWwgaW1wb3J0IGNvbnZlcnRlcnMKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uCisgICAgICAgICMgQEA6IGdsb2JhbF9jb25mIHNob3VsZCBiZSBoYW5kbGVkIGVsc2V3aGVyZSBpbiBhIHNlcGFyYXRlCisgICAgICAgICMgZnVuY3Rpb24gZm9yIHRoZSBlbnRyeSBwb2ludAorICAgICAgICBpZiBnbG9iYWxfY29uZiBpcyBOb25lOgorICAgICAgICAgICAgZ2xvYmFsX2NvbmYgPSB7fQorICAgICAgICBpZiBkZWJ1ZyBpcyBOb0RlZmF1bHQ6CisgICAgICAgICAgICBkZWJ1ZyA9IGNvbnZlcnRlcnMuYXNib29sKGdsb2JhbF9jb25mLmdldCgnZGVidWcnKSkKKyAgICAgICAgaWYgc2hvd19leGNlcHRpb25zX2luX3dzZ2lfZXJyb3JzIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgICAgIHNob3dfZXhjZXB0aW9uc19pbl93c2dpX2Vycm9ycyA9IGNvbnZlcnRlcnMuYXNib29sKGdsb2JhbF9jb25mLmdldCgnc2hvd19leGNlcHRpb25zX2luX3dzZ2lfZXJyb3JzJykpCisgICAgICAgIHNlbGYuZGVidWdfbW9kZSA9IGNvbnZlcnRlcnMuYXNib29sKGRlYnVnKQorICAgICAgICBpZiBlcnJvcl9lbWFpbCBpcyBOb25lOgorICAgICAgICAgICAgZXJyb3JfZW1haWwgPSAoZ2xvYmFsX2NvbmYuZ2V0KCdlcnJvcl9lbWFpbCcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBnbG9iYWxfY29uZi5nZXQoJ2FkbWluX2VtYWlsJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGdsb2JhbF9jb25mLmdldCgnd2VibWFzdGVyX2VtYWlsJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGdsb2JhbF9jb25mLmdldCgnc3lzYWRtaW5fZW1haWwnKSkKKyAgICAgICAgc2VsZi5lcnJvcl9lbWFpbCA9IGNvbnZlcnRlcnMuYXNsaXN0KGVycm9yX2VtYWlsKQorICAgICAgICBzZWxmLmVycm9yX2xvZyA9IGVycm9yX2xvZworICAgICAgICBzZWxmLnNob3dfZXhjZXB0aW9uc19pbl93c2dpX2Vycm9ycyA9IHNob3dfZXhjZXB0aW9uc19pbl93c2dpX2Vycm9ycworICAgICAgICBpZiBmcm9tX2FkZHJlc3MgaXMgTm9uZToKKyAgICAgICAgICAgIGZyb21fYWRkcmVzcyA9IGdsb2JhbF9jb25mLmdldCgnZXJyb3JfZnJvbV9hZGRyZXNzJywgJ2Vycm9yc0Bsb2NhbGhvc3QnKQorICAgICAgICBzZWxmLmZyb21fYWRkcmVzcyA9IGZyb21fYWRkcmVzcworICAgICAgICBpZiBzbXRwX3NlcnZlciBpcyBOb25lOgorICAgICAgICAgICAgc210cF9zZXJ2ZXIgPSBnbG9iYWxfY29uZi5nZXQoJ3NtdHBfc2VydmVyJywgJ2xvY2FsaG9zdCcpCisgICAgICAgIHNlbGYuc210cF9zZXJ2ZXIgPSBzbXRwX3NlcnZlcgorICAgICAgICBzZWxmLnNtdHBfdXNlcm5hbWUgPSBzbXRwX3VzZXJuYW1lIG9yIGdsb2JhbF9jb25mLmdldCgnc210cF91c2VybmFtZScpCisgICAgICAgIHNlbGYuc210cF9wYXNzd29yZCA9IHNtdHBfcGFzc3dvcmQgb3IgZ2xvYmFsX2NvbmYuZ2V0KCdzbXRwX3Bhc3N3b3JkJykKKyAgICAgICAgc2VsZi5zbXRwX3VzZV90bHMgPSBzbXRwX3VzZV90bHMgb3IgY29udmVydGVycy5hc2Jvb2woZ2xvYmFsX2NvbmYuZ2V0KCdzbXRwX3VzZV90bHMnKSkKKyAgICAgICAgc2VsZi5lcnJvcl9zdWJqZWN0X3ByZWZpeCA9IGVycm9yX3N1YmplY3RfcHJlZml4IG9yICcnCisgICAgICAgIGlmIGVycm9yX21lc3NhZ2UgaXMgTm9uZToKKyAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSBnbG9iYWxfY29uZi5nZXQoJ2Vycm9yX21lc3NhZ2UnKQorICAgICAgICBzZWxmLmVycm9yX21lc3NhZ2UgPSBlcnJvcl9tZXNzYWdlCisgICAgICAgIGlmIHhtbGh0dHBfa2V5IGlzIE5vbmU6CisgICAgICAgICAgICB4bWxodHRwX2tleSA9IGdsb2JhbF9jb25mLmdldCgneG1saHR0cF9rZXknLCAnXycpCisgICAgICAgIHNlbGYueG1saHR0cF9rZXkgPSB4bWxodHRwX2tleQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSBXU0dJIGFwcGxpY2F0aW9uIGludGVyZmFjZS4KKyAgICAgICAgIiIiCisgICAgICAgICMgV2Ugd2FudCB0byBiZSBjYXJlZnVsIGFib3V0IG5vdCBzZW5kaW5nIGhlYWRlcnMgdHdpY2UsCisgICAgICAgICMgYW5kIHRoZSBjb250ZW50IHR5cGUgdGhhdCB0aGUgYXBwIGhhcyBjb21taXR0ZWQgdG8gKGlmIHRoZXJlCisgICAgICAgICMgaXMgYW4gZXhjZXB0aW9uIGluIHRoZSBpdGVyYXRvciBib2R5IG9mIHRoZSByZXNwb25zZSkKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ3Bhc3RlLnRocm93X2Vycm9ycycpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGVudmlyb25bJ3Bhc3RlLnRocm93X2Vycm9ycyddID0gVHJ1ZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIF9fdHJhY2ViYWNrX3N1cHBsZW1lbnRfXyA9IFN1cHBsZW1lbnQsIHNlbGYsIGVudmlyb24KKyAgICAgICAgICAgIHNyX2NoZWNrZXIgPSBSZXNwb25zZVN0YXJ0Q2hlY2tlcihzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIGFwcF9pdGVyID0gc2VsZi5hcHBsaWNhdGlvbihlbnZpcm9uLCBzcl9jaGVja2VyKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYubWFrZV9jYXRjaGluZ19pdGVyKGFwcF9pdGVyLCBlbnZpcm9uLCBzcl9jaGVja2VyKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZm9yIGV4cGVjdCBpbiBlbnZpcm9uLmdldCgncGFzdGUuZXhwZWN0ZWRfZXhjZXB0aW9ucycsIFtdKToKKyAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleGNfaW5mb1sxXSwgZXhwZWN0KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjX2luZm8pCisgICAgICAgICAgICAgICAgIyBAQDogaXQgd291bGQgYmUgbmljZSB0byBkZWFsIHdpdGggYmFkIGNvbnRlbnQgdHlwZXMgaGVyZQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5leGNlcHRpb25faGFuZGxlcihleGNfaW5mbywgZW52aXJvbikKKyAgICAgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlLmVuY29kZSgndXRmOCcpCisgICAgICAgICAgICAgICAgcmV0dXJuIFtyZXNwb25zZV0KKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgIyBjbGVhbiB1cCBsb2NhbHMuLi4KKyAgICAgICAgICAgICAgICBleGNfaW5mbyA9IE5vbmUKKworICAgIGRlZiBtYWtlX2NhdGNoaW5nX2l0ZXIoc2VsZiwgYXBwX2l0ZXIsIGVudmlyb24sIHNyX2NoZWNrZXIpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGFwcF9pdGVyLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgICMgVGhlc2UgZG9uJ3QgcmFpc2UKKyAgICAgICAgICAgIHJldHVybiBhcHBfaXRlcgorICAgICAgICByZXR1cm4gQ2F0Y2hpbmdJdGVyKGFwcF9pdGVyLCBlbnZpcm9uLCBzcl9jaGVja2VyLCBzZWxmKQorCisgICAgZGVmIGV4Y2VwdGlvbl9oYW5kbGVyKHNlbGYsIGV4Y19pbmZvLCBlbnZpcm9uKToKKyAgICAgICAgc2ltcGxlX2h0bWxfZXJyb3IgPSBGYWxzZQorICAgICAgICBpZiBzZWxmLnhtbGh0dHBfa2V5OgorICAgICAgICAgICAgZ2V0X3ZhcnMgPSByZXF1ZXN0LnBhcnNlX3F1ZXJ5c3RyaW5nKGVudmlyb24pCisgICAgICAgICAgICBpZiBkaWN0KGdldF92YXJzKS5nZXQoc2VsZi54bWxodHRwX2tleSk6CisgICAgICAgICAgICAgICAgc2ltcGxlX2h0bWxfZXJyb3IgPSBUcnVlCisgICAgICAgIHJldHVybiBoYW5kbGVfZXhjZXB0aW9uKAorICAgICAgICAgICAgZXhjX2luZm8sIGVudmlyb25bJ3dzZ2kuZXJyb3JzJ10sCisgICAgICAgICAgICBodG1sPVRydWUsCisgICAgICAgICAgICBkZWJ1Z19tb2RlPXNlbGYuZGVidWdfbW9kZSwKKyAgICAgICAgICAgIGVycm9yX2VtYWlsPXNlbGYuZXJyb3JfZW1haWwsCisgICAgICAgICAgICBlcnJvcl9sb2c9c2VsZi5lcnJvcl9sb2csCisgICAgICAgICAgICBzaG93X2V4Y2VwdGlvbnNfaW5fd3NnaV9lcnJvcnM9c2VsZi5zaG93X2V4Y2VwdGlvbnNfaW5fd3NnaV9lcnJvcnMsCisgICAgICAgICAgICBlcnJvcl9lbWFpbF9mcm9tPXNlbGYuZnJvbV9hZGRyZXNzLAorICAgICAgICAgICAgc210cF9zZXJ2ZXI9c2VsZi5zbXRwX3NlcnZlciwKKyAgICAgICAgICAgIHNtdHBfdXNlcm5hbWU9c2VsZi5zbXRwX3VzZXJuYW1lLAorICAgICAgICAgICAgc210cF9wYXNzd29yZD1zZWxmLnNtdHBfcGFzc3dvcmQsCisgICAgICAgICAgICBzbXRwX3VzZV90bHM9c2VsZi5zbXRwX3VzZV90bHMsCisgICAgICAgICAgICBlcnJvcl9zdWJqZWN0X3ByZWZpeD1zZWxmLmVycm9yX3N1YmplY3RfcHJlZml4LAorICAgICAgICAgICAgZXJyb3JfbWVzc2FnZT1zZWxmLmVycm9yX21lc3NhZ2UsCisgICAgICAgICAgICBzaW1wbGVfaHRtbF9lcnJvcj1zaW1wbGVfaHRtbF9lcnJvcikKKworY2xhc3MgUmVzcG9uc2VTdGFydENoZWNrZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzZWxmLnN0YXJ0X3Jlc3BvbnNlID0gc3RhcnRfcmVzcG9uc2UKKyAgICAgICAgc2VsZi5yZXNwb25zZV9zdGFydGVkID0gRmFsc2UKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYucmVzcG9uc2Vfc3RhcnRlZCA9IFRydWUKKyAgICAgICAgc2VsZi5zdGFydF9yZXNwb25zZSgqYXJncykKKworY2xhc3MgQ2F0Y2hpbmdJdGVyKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBBIHdyYXBwZXIgYXJvdW5kIHRoZSBhcHBsaWNhdGlvbiBpdGVyYXRvciB0aGF0IHdpbGwgY2F0Y2gKKyAgICBleGNlcHRpb25zIHJhaXNlZCBieSB0aGUgYSBnZW5lcmF0b3IsIG9yIGJ5IHRoZSBjbG9zZSBtZXRob2QsIGFuZAorICAgIGRpc3BsYXkgb3IgcmVwb3J0IGFzIG5lY2Vzc2FyeS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBfaXRlciwgZW52aXJvbiwgc3RhcnRfY2hlY2tlciwgZXJyb3JfbWlkZGxld2FyZSk6CisgICAgICAgIHNlbGYuYXBwX2l0ZXJhYmxlID0gYXBwX2l0ZXIKKyAgICAgICAgc2VsZi5hcHBfaXRlcmF0b3IgPSBpdGVyKGFwcF9pdGVyKQorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisgICAgICAgIHNlbGYuc3RhcnRfY2hlY2tlciA9IHN0YXJ0X2NoZWNrZXIKKyAgICAgICAgc2VsZi5lcnJvcl9taWRkbGV3YXJlID0gZXJyb3JfbWlkZGxld2FyZQorICAgICAgICBzZWxmLmNsb3NlZCA9IEZhbHNlCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgbmV4dChzZWxmKToKKyAgICAgICAgX190cmFjZWJhY2tfc3VwcGxlbWVudF9fID0gKAorICAgICAgICAgICAgU3VwcGxlbWVudCwgc2VsZi5lcnJvcl9taWRkbGV3YXJlLCBzZWxmLmVudmlyb24pCisgICAgICAgIGlmIHNlbGYuY2xvc2VkOgorICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHBfaXRlcmF0b3IubmV4dCgpCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgc2VsZi5jbG9zZWQgPSBUcnVlCisgICAgICAgICAgICBjbG9zZV9yZXNwb25zZSA9IHNlbGYuX2Nsb3NlKCkKKyAgICAgICAgICAgIGlmIGNsb3NlX3Jlc3BvbnNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBjbG9zZV9yZXNwb25zZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHNlbGYuY2xvc2VkID0gVHJ1ZQorICAgICAgICAgICAgY2xvc2VfcmVzcG9uc2UgPSBzZWxmLl9jbG9zZSgpCisgICAgICAgICAgICBleGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZXJyb3JfbWlkZGxld2FyZS5leGNlcHRpb25faGFuZGxlcigKKyAgICAgICAgICAgICAgICBleGNfaW5mbywgc2VsZi5lbnZpcm9uKQorICAgICAgICAgICAgaWYgY2xvc2VfcmVzcG9uc2UgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgKz0gKAorICAgICAgICAgICAgICAgICAgICAnPGhyIG5vc2hhZGU+RXJyb3IgaW4gLmNsb3NlKCk6PGJyPiVzJworICAgICAgICAgICAgICAgICAgICAlIGNsb3NlX3Jlc3BvbnNlKQorCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5zdGFydF9jaGVja2VyLnJlc3BvbnNlX3N0YXJ0ZWQ6CisgICAgICAgICAgICAgICAgc2VsZi5zdGFydF9jaGVja2VyKCc1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y19pbmZvKQorCisgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZQorICAgIF9fbmV4dF9fID0gbmV4dAorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICAjIFRoaXMgc2hvdWxkIGF0IGxlYXN0IHByaW50IHNvbWV0aGluZyB0byBzdGRlcnIgaWYgdGhlCisgICAgICAgICMgY2xvc2UgbWV0aG9kIGZhaWxzIGF0IHRoaXMgcG9pbnQKKyAgICAgICAgaWYgbm90IHNlbGYuY2xvc2VkOgorICAgICAgICAgICAgc2VsZi5fY2xvc2UoKQorCisgICAgZGVmIF9jbG9zZShzZWxmKToKKyAgICAgICAgIiIiQ2xvc2UgYW5kIHJldHVybiBhbnkgZXJyb3IgbWVzc2FnZSIiIgorICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLmFwcF9pdGVyYWJsZSwgJ2Nsb3NlJyk6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFwcF9pdGVyYWJsZS5jbG9zZSgpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBjbG9zZV9yZXNwb25zZSA9IHNlbGYuZXJyb3JfbWlkZGxld2FyZS5leGNlcHRpb25faGFuZGxlcigKKyAgICAgICAgICAgICAgICBzeXMuZXhjX2luZm8oKSwgc2VsZi5lbnZpcm9uKQorICAgICAgICAgICAgcmV0dXJuIGNsb3NlX3Jlc3BvbnNlCisKKworY2xhc3MgU3VwcGxlbWVudChvYmplY3QpOgorCisgICAgIiIiCisgICAgVGhpcyBpcyBhIHN1cHBsZW1lbnQgdXNlZCB0byBkaXNwbGF5IHN0YW5kYXJkIFdTR0kgaW5mb3JtYXRpb24gaW4KKyAgICB0aGUgdHJhY2ViYWNrLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1pZGRsZXdhcmUsIGVudmlyb24pOgorICAgICAgICBzZWxmLm1pZGRsZXdhcmUgPSBtaWRkbGV3YXJlCisgICAgICAgIHNlbGYuZW52aXJvbiA9IGVudmlyb24KKyAgICAgICAgc2VsZi5zb3VyY2VfdXJsID0gcmVxdWVzdC5jb25zdHJ1Y3RfdXJsKGVudmlyb24pCisKKyAgICBkZWYgZXh0cmFEYXRhKHNlbGYpOgorICAgICAgICBkYXRhID0ge30KKyAgICAgICAgY2dpX3ZhcnMgPSBkYXRhWygnZXh0cmEnLCAnQ0dJIFZhcmlhYmxlcycpXSA9IHt9CisgICAgICAgIHdzZ2lfdmFycyA9IGRhdGFbKCdleHRyYScsICdXU0dJIFZhcmlhYmxlcycpXSA9IHt9CisgICAgICAgIGhpZGVfdmFycyA9IFsncGFzdGUuY29uZmlnJywgJ3dzZ2kuZXJyb3JzJywgJ3dzZ2kuaW5wdXQnLAorICAgICAgICAgICAgICAgICAgICAgJ3dzZ2kubXVsdGl0aHJlYWQnLCAnd3NnaS5tdWx0aXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgJ3dzZ2kucnVuX29uY2UnLCAnd3NnaS52ZXJzaW9uJywKKyAgICAgICAgICAgICAgICAgICAgICd3c2dpLnVybF9zY2hlbWUnXQorICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5lbnZpcm9uLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBuYW1lLnVwcGVyKCkgPT0gbmFtZToKKyAgICAgICAgICAgICAgICBpZiB2YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgY2dpX3ZhcnNbbmFtZV0gPSB2YWx1ZQorICAgICAgICAgICAgZWxpZiBuYW1lIG5vdCBpbiBoaWRlX3ZhcnM6CisgICAgICAgICAgICAgICAgd3NnaV92YXJzW25hbWVdID0gdmFsdWUKKyAgICAgICAgaWYgc2VsZi5lbnZpcm9uWyd3c2dpLnZlcnNpb24nXSAhPSAoMSwgMCk6CisgICAgICAgICAgICB3c2dpX3ZhcnNbJ3dzZ2kudmVyc2lvbiddID0gc2VsZi5lbnZpcm9uWyd3c2dpLnZlcnNpb24nXQorICAgICAgICBwcm9jX2Rlc2MgPSB0dXBsZShbaW50KGJvb2woc2VsZi5lbnZpcm9uW2tleV0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSBpbiAoJ3dzZ2kubXVsdGlwcm9jZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3c2dpLm11bHRpdGhyZWFkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3c2dpLnJ1bl9vbmNlJyldKQorICAgICAgICB3c2dpX3ZhcnNbJ3dzZ2kgcHJvY2VzcyddID0gc2VsZi5wcm9jZXNzX2NvbWJvc1twcm9jX2Rlc2NdCisgICAgICAgIHdzZ2lfdmFyc1snYXBwbGljYXRpb24nXSA9IHNlbGYubWlkZGxld2FyZS5hcHBsaWNhdGlvbgorICAgICAgICBpZiAncGFzdGUuY29uZmlnJyBpbiBzZWxmLmVudmlyb246CisgICAgICAgICAgICBkYXRhWygnZXh0cmEnLCAnQ29uZmlndXJhdGlvbicpXSA9IGRpY3Qoc2VsZi5lbnZpcm9uWydwYXN0ZS5jb25maWcnXSkKKyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIHByb2Nlc3NfY29tYm9zID0geworICAgICAgICAjIG11bHRpcHJvY2VzcywgbXVsdGl0aHJlYWQsIHJ1bl9vbmNlCisgICAgICAgICgwLCAwLCAwKTogJ05vbi1jb25jdXJyZW50IHNlcnZlcicsCisgICAgICAgICgwLCAxLCAwKTogJ011bHRpdGhyZWFkZWQnLAorICAgICAgICAoMSwgMCwgMCk6ICdNdWx0aXByb2Nlc3MnLAorICAgICAgICAoMSwgMSwgMCk6ICdNdWx0aSBwcm9jZXNzIEFORCB0aHJlYWRzICg/KScsCisgICAgICAgICgwLCAwLCAxKTogJ05vbi1jb25jdXJyZW50IENHSScsCisgICAgICAgICgwLCAxLCAxKTogJ011bHRpdGhyZWFkIENHSSAoPyknLAorICAgICAgICAoMSwgMCwgMSk6ICdDR0knLAorICAgICAgICAoMSwgMSwgMSk6ICdNdWx0aSB0aHJlYWQvcHJvY2VzcyBDR0kgKD8pJywKKyAgICAgICAgfQorCitkZWYgaGFuZGxlX2V4Y2VwdGlvbihleGNfaW5mbywgZXJyb3Jfc3RyZWFtLCBodG1sPVRydWUsCisgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19tb2RlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZW1haWw9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIGVycm9yX2xvZz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgc2hvd19leGNlcHRpb25zX2luX3dzZ2lfZXJyb3JzPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgZXJyb3JfZW1haWxfZnJvbT0nZXJyb3JzQGxvY2FsaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICBzbXRwX3NlcnZlcj0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgICAgIHNtdHBfdXNlcm5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIHNtdHBfcGFzc3dvcmQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIHNtdHBfdXNlX3Rscz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgIGVycm9yX3N1YmplY3RfcHJlZml4PScnLAorICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgc2ltcGxlX2h0bWxfZXJyb3I9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICApOgorICAgICIiIgorICAgIEZvciBleGNlcHRpb24gaGFuZGxpbmcgb3V0c2lkZSBvZiBhIHdlYiBjb250ZXh0CisKKyAgICBVc2UgbGlrZTo6CisKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAgICBmcm9tIHBhc3RlLmV4Y2VwdGlvbnMuZXJyb3JtaWRkbGV3YXJlIGltcG9ydCBoYW5kbGVfZXhjZXB0aW9uCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRvIHN0dWZmCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGhhbmRsZV9leGNlcHRpb24oCisgICAgICAgICAgICAgICAgc3lzLmV4Y19pbmZvKCksIHN5cy5zdGRlcnIsIGh0bWw9RmFsc2UsIC4uLm90aGVyIGNvbmZpZy4uLikKKworICAgIElmIHlvdSB3YW50IHRvIHJlcG9ydCwgYnV0IG5vdCBmdWxseSBjYXRjaCB0aGUgZXhjZXB0aW9uLCBjYWxsCisgICAgYGByYWlzZWBgIGFmdGVyIGBgaGFuZGxlX2V4Y2VwdGlvbmBgLCB3aGljaCAod2hlbiBnaXZlbiBubyBhcmd1bWVudCkKKyAgICB3aWxsIHJlcmFpc2UgdGhlIGV4Y2VwdGlvbi4KKyAgICAiIiIKKyAgICByZXBvcnRlZCA9IEZhbHNlCisgICAgZXhjX2RhdGEgPSBjb2xsZWN0b3IuY29sbGVjdF9leGNlcHRpb24oKmV4Y19pbmZvKQorICAgIGV4dHJhX2RhdGEgPSAnJworICAgIGlmIGVycm9yX2VtYWlsOgorICAgICAgICByZXAgPSByZXBvcnRlci5FbWFpbFJlcG9ydGVyKAorICAgICAgICAgICAgdG9fYWRkcmVzc2VzPWVycm9yX2VtYWlsLAorICAgICAgICAgICAgZnJvbV9hZGRyZXNzPWVycm9yX2VtYWlsX2Zyb20sCisgICAgICAgICAgICBzbXRwX3NlcnZlcj1zbXRwX3NlcnZlciwKKyAgICAgICAgICAgIHNtdHBfdXNlcm5hbWU9c210cF91c2VybmFtZSwKKyAgICAgICAgICAgIHNtdHBfcGFzc3dvcmQ9c210cF9wYXNzd29yZCwKKyAgICAgICAgICAgIHNtdHBfdXNlX3Rscz1zbXRwX3VzZV90bHMsCisgICAgICAgICAgICBzdWJqZWN0X3ByZWZpeD1lcnJvcl9zdWJqZWN0X3ByZWZpeCkKKyAgICAgICAgcmVwX2VyciA9IHNlbmRfcmVwb3J0KHJlcCwgZXhjX2RhdGEsIGh0bWw9aHRtbCkKKyAgICAgICAgaWYgcmVwX2VycjoKKyAgICAgICAgICAgIGV4dHJhX2RhdGEgKz0gcmVwX2VycgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVwb3J0ZWQgPSBUcnVlCisgICAgaWYgZXJyb3JfbG9nOgorICAgICAgICByZXAgPSByZXBvcnRlci5Mb2dSZXBvcnRlcigKKyAgICAgICAgICAgIGZpbGVuYW1lPWVycm9yX2xvZykKKyAgICAgICAgcmVwX2VyciA9IHNlbmRfcmVwb3J0KHJlcCwgZXhjX2RhdGEsIGh0bWw9aHRtbCkKKyAgICAgICAgaWYgcmVwX2VycjoKKyAgICAgICAgICAgIGV4dHJhX2RhdGEgKz0gcmVwX2VycgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVwb3J0ZWQgPSBUcnVlCisgICAgaWYgc2hvd19leGNlcHRpb25zX2luX3dzZ2lfZXJyb3JzOgorICAgICAgICByZXAgPSByZXBvcnRlci5GaWxlUmVwb3J0ZXIoCisgICAgICAgICAgICBmaWxlPWVycm9yX3N0cmVhbSkKKyAgICAgICAgcmVwX2VyciA9IHNlbmRfcmVwb3J0KHJlcCwgZXhjX2RhdGEsIGh0bWw9aHRtbCkKKyAgICAgICAgaWYgcmVwX2VycjoKKyAgICAgICAgICAgIGV4dHJhX2RhdGEgKz0gcmVwX2VycgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVwb3J0ZWQgPSBUcnVlCisgICAgZWxzZToKKyAgICAgICAgbGluZSA9ICgnRXJyb3IgLSAlczogJXNcbicKKyAgICAgICAgICAgICAgICAlIChleGNfZGF0YS5leGNlcHRpb25fdHlwZSwgZXhjX2RhdGEuZXhjZXB0aW9uX3ZhbHVlKSkKKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLmVuY29kZSgndXRmOCcpCisgICAgICAgIGVycm9yX3N0cmVhbS53cml0ZShsaW5lKQorICAgIGlmIGh0bWw6CisgICAgICAgIGlmIGRlYnVnX21vZGUgYW5kIHNpbXBsZV9odG1sX2Vycm9yOgorICAgICAgICAgICAgcmV0dXJuX2Vycm9yID0gZm9ybWF0dGVyLmZvcm1hdF9odG1sKAorICAgICAgICAgICAgICAgIGV4Y19kYXRhLCBpbmNsdWRlX2hpZGRlbl9mcmFtZXM9RmFsc2UsCisgICAgICAgICAgICAgICAgaW5jbHVkZV9yZXVzYWJsZT1GYWxzZSwgc2hvd19leHRyYV9kYXRhPUZhbHNlKQorICAgICAgICAgICAgcmVwb3J0ZWQgPSBUcnVlCisgICAgICAgIGVsaWYgZGVidWdfbW9kZSBhbmQgbm90IHNpbXBsZV9odG1sX2Vycm9yOgorICAgICAgICAgICAgZXJyb3JfaHRtbCA9IGZvcm1hdHRlci5mb3JtYXRfaHRtbCgKKyAgICAgICAgICAgICAgICBleGNfZGF0YSwKKyAgICAgICAgICAgICAgICBpbmNsdWRlX2hpZGRlbl9mcmFtZXM9VHJ1ZSwKKyAgICAgICAgICAgICAgICBpbmNsdWRlX3JldXNhYmxlPUZhbHNlKQorICAgICAgICAgICAgaGVhZF9odG1sID0gZm9ybWF0dGVyLmVycm9yX2NzcyArIGZvcm1hdHRlci5oaWRlX2Rpc3BsYXlfanMKKyAgICAgICAgICAgIHJldHVybl9lcnJvciA9IGVycm9yX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgIGhlYWRfaHRtbCwgZXJyb3JfaHRtbCwgZXh0cmFfZGF0YSkKKyAgICAgICAgICAgIGV4dHJhX2RhdGEgPSAnJworICAgICAgICAgICAgcmVwb3J0ZWQgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtc2cgPSBlcnJvcl9tZXNzYWdlIG9yICcnJworICAgICAgICAgICAgQW4gZXJyb3Igb2NjdXJyZWQuICBTZWUgdGhlIGVycm9yIGxvZ3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgICAgICAoVHVybiBkZWJ1ZyBvbiB0byBkaXNwbGF5IGV4Y2VwdGlvbiByZXBvcnRzIGhlcmUpCisgICAgICAgICAgICAnJycKKyAgICAgICAgICAgIHJldHVybl9lcnJvciA9IGVycm9yX3RlbXBsYXRlKCcnLCBtc2csICcnKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybl9lcnJvciA9IE5vbmUKKyAgICBpZiBub3QgcmVwb3J0ZWQgYW5kIGVycm9yX3N0cmVhbToKKyAgICAgICAgZXJyX3JlcG9ydCA9IGZvcm1hdHRlci5mb3JtYXRfdGV4dChleGNfZGF0YSwgc2hvd19oaWRkZW5fZnJhbWVzPVRydWUpCisgICAgICAgIGVycl9yZXBvcnQgKz0gJ1xuJyArICctJyo2MCArICdcbicKKyAgICAgICAgZXJyb3Jfc3RyZWFtLndyaXRlKGVycl9yZXBvcnQpCisgICAgaWYgZXh0cmFfZGF0YToKKyAgICAgICAgZXJyb3Jfc3RyZWFtLndyaXRlKGV4dHJhX2RhdGEpCisgICAgcmV0dXJuIHJldHVybl9lcnJvcgorCitkZWYgc2VuZF9yZXBvcnQocmVwLCBleGNfZGF0YSwgaHRtbD1UcnVlKToKKyAgICB0cnk6CisgICAgICAgIHJlcC5yZXBvcnQoZXhjX2RhdGEpCisgICAgZXhjZXB0OgorICAgICAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1vdXRwdXQpCisgICAgICAgIGlmIGh0bWw6CisgICAgICAgICAgICByZXR1cm4gIiIiCisgICAgICAgICAgICA8cD5BZGRpdGlvbmFsbHkgYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2VuZGluZyB0aGUgJXMgcmVwb3J0OgorCisgICAgICAgICAgICA8cHJlPiVzPC9wcmU+CisgICAgICAgICAgICA8L3A+IiIiICUgKAorICAgICAgICAgICAgICAgIGNnaS5lc2NhcGUoc3RyKHJlcCkpLCBvdXRwdXQuZ2V0dmFsdWUoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICAgICAgIkFkZGl0aW9uYWxseSBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBzZW5kaW5nIHRoZSAiCisgICAgICAgICAgICAgICAgIiVzIHJlcG9ydDpcbiVzIiAlIChzdHIocmVwKSwgb3V0cHV0LmdldHZhbHVlKCkpKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiAnJworCitkZWYgZXJyb3JfdGVtcGxhdGUoaGVhZF9odG1sLCBleGNlcHRpb24sIGV4dHJhKToKKyAgICByZXR1cm4gJycnCisgICAgPGh0bWw+CisgICAgPGhlYWQ+CisgICAgPHRpdGxlPlNlcnZlciBFcnJvcjwvdGl0bGU+CisgICAgJXMKKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgPGgxPlNlcnZlciBFcnJvcjwvaDE+CisgICAgJXMKKyAgICAlcworICAgIDwvYm9keT4KKyAgICA8L2h0bWw+JycnICUgKGhlYWRfaHRtbCwgZXhjZXB0aW9uLCBleHRyYSkKKworZGVmIG1ha2VfZXJyb3JfbWlkZGxld2FyZShhcHAsIGdsb2JhbF9jb25mLCAqKmt3KToKKyAgICByZXR1cm4gRXJyb3JNaWRkbGV3YXJlKGFwcCwgZ2xvYmFsX2NvbmY9Z2xvYmFsX2NvbmYsICoqa3cpCisKK2RvY19saW5lcyA9IEVycm9yTWlkZGxld2FyZS5fX2RvY19fLnNwbGl0bGluZXMoVHJ1ZSkKK2ZvciBpIGluIHJhbmdlKGxlbihkb2NfbGluZXMpKToKKyAgICBpZiBkb2NfbGluZXNbaV0uc3RyaXAoKS5zdGFydHN3aXRoKCdTZXR0aW5ncycpOgorICAgICAgICBtYWtlX2Vycm9yX21pZGRsZXdhcmUuX19kb2NfXyA9ICcnLmpvaW4oZG9jX2xpbmVzW2k6XSkKKyAgICAgICAgYnJlYWsKK2RlbCBpLCBkb2NfbGluZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9leGNlcHRpb25zL2Zvcm1hdHRlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9leGNlcHRpb25zL2Zvcm1hdHRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODNhYjUwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvZm9ybWF0dGVyLnB5CkBAIC0wLDAgKzEsNTY1IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKKyIiIgorRm9ybWF0dGVycyBmb3IgdGhlIGV4Y2VwdGlvbiBkYXRhIHRoYXQgY29tZXMgZnJvbSBFeGNlcHRpb25Db2xsZWN0b3IuCisiIiIKKyMgQEA6IFRPRE86CisjIFVzZSB0aGlzOiBodHRwOi8vd3d3LnpvcGUub3JnL01lbWJlcnMvdGluby9WaXN1YWxUcmFjZWJhY2svVmlzdWFsVHJhY2ViYWNrTmV3cworCitpbXBvcnQgY2dpCitpbXBvcnQgc2l4CitpbXBvcnQgcmUKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgUHlTb3VyY2VDb2xvcgorCitkZWYgaHRtbF9xdW90ZShzKToKKyAgICByZXR1cm4gY2dpLmVzY2FwZShzdHIocyksIFRydWUpCisKK2NsYXNzIEFic3RyYWN0Rm9ybWF0dGVyKG9iamVjdCk6CisKKyAgICBnZW5lcmFsX2RhdGFfb3JkZXIgPSBbJ29iamVjdCcsICdzb3VyY2VfdXJsJ10KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzaG93X2hpZGRlbl9mcmFtZXM9RmFsc2UsCisgICAgICAgICAgICAgICAgIGluY2x1ZGVfcmV1c2FibGU9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgc2hvd19leHRyYV9kYXRhPVRydWUsCisgICAgICAgICAgICAgICAgIHRyaW1fc291cmNlX3BhdGhzPSgpKToKKyAgICAgICAgc2VsZi5zaG93X2hpZGRlbl9mcmFtZXMgPSBzaG93X2hpZGRlbl9mcmFtZXMKKyAgICAgICAgc2VsZi50cmltX3NvdXJjZV9wYXRocyA9IHRyaW1fc291cmNlX3BhdGhzCisgICAgICAgIHNlbGYuaW5jbHVkZV9yZXVzYWJsZSA9IGluY2x1ZGVfcmV1c2FibGUKKyAgICAgICAgc2VsZi5zaG93X2V4dHJhX2RhdGEgPSBzaG93X2V4dHJhX2RhdGEKKworICAgIGRlZiBmb3JtYXRfY29sbGVjdGVkX2RhdGEoc2VsZiwgZXhjX2RhdGEpOgorICAgICAgICBnZW5lcmFsX2RhdGEgPSB7fQorICAgICAgICBpZiBzZWxmLnNob3dfZXh0cmFfZGF0YToKKyAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZV9saXN0IGluIGV4Y19kYXRhLmV4dHJhX2RhdGEuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5hbWUsIHR1cGxlKToKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0YW5jZSwgdGl0bGUgPSBuYW1lCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0YW5jZSwgdGl0bGUgPSAnbm9ybWFsJywgbmFtZQorICAgICAgICAgICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1ZV9saXN0OgorICAgICAgICAgICAgICAgICAgICBnZW5lcmFsX2RhdGFbKGltcG9ydGFuY2UsIG5hbWUpXSA9IHNlbGYuZm9ybWF0X2V4dHJhX2RhdGEoCisgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRhbmNlLCB0aXRsZSwgdmFsdWUpCisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgZnJhbWVzID0gc2VsZi5maWx0ZXJfZnJhbWVzKGV4Y19kYXRhLmZyYW1lcykKKyAgICAgICAgZm9yIGZyYW1lIGluIGZyYW1lczoKKyAgICAgICAgICAgIHN1cCA9IGZyYW1lLnN1cHBsZW1lbnQKKyAgICAgICAgICAgIGlmIHN1cDoKKyAgICAgICAgICAgICAgICBpZiBzdXAub2JqZWN0OgorICAgICAgICAgICAgICAgICAgICBnZW5lcmFsX2RhdGFbKCdpbXBvcnRhbnQnLCAnb2JqZWN0JyldID0gc2VsZi5mb3JtYXRfc3VwX29iamVjdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1cC5vYmplY3QpCisgICAgICAgICAgICAgICAgaWYgc3VwLnNvdXJjZV91cmw6CisgICAgICAgICAgICAgICAgICAgIGdlbmVyYWxfZGF0YVsoJ2ltcG9ydGFudCcsICdzb3VyY2VfdXJsJyldID0gc2VsZi5mb3JtYXRfc3VwX3VybCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1cC5zb3VyY2VfdXJsKQorICAgICAgICAgICAgICAgIGlmIHN1cC5saW5lOgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5mb3JtYXRfc3VwX2xpbmVfcG9zKHN1cC5saW5lLCBzdXAuY29sdW1uKSkKKyAgICAgICAgICAgICAgICBpZiBzdXAuZXhwcmVzc2lvbjoKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNlbGYuZm9ybWF0X3N1cF9leHByZXNzaW9uKHN1cC5leHByZXNzaW9uKSkKKyAgICAgICAgICAgICAgICBpZiBzdXAud2FybmluZ3M6CisgICAgICAgICAgICAgICAgICAgIGZvciB3YXJuaW5nIGluIHN1cC53YXJuaW5nczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzZWxmLmZvcm1hdF9zdXBfd2FybmluZyh3YXJuaW5nKSkKKyAgICAgICAgICAgICAgICBpZiBzdXAuaW5mbzoKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZm9ybWF0X3N1cF9pbmZvKHN1cC5pbmZvKSkKKyAgICAgICAgICAgIGlmIGZyYW1lLnN1cHBsZW1lbnRfZXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnRXhjZXB0aW9uIGluIHN1cHBsZW1lbnQ6JykKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5xdW90ZV9sb25nKGZyYW1lLnN1cHBsZW1lbnRfZXhjZXB0aW9uKSkKKyAgICAgICAgICAgIGlmIGZyYW1lLnRyYWNlYmFja19pbmZvOgorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzZWxmLmZvcm1hdF90cmFjZWJhY2tfaW5mbyhmcmFtZS50cmFjZWJhY2tfaW5mbykpCisgICAgICAgICAgICBmaWxlbmFtZSA9IGZyYW1lLmZpbGVuYW1lCisgICAgICAgICAgICBpZiBmaWxlbmFtZSBhbmQgc2VsZi50cmltX3NvdXJjZV9wYXRoczoKKyAgICAgICAgICAgICAgICBmb3IgcGF0aCwgcmVwbCBpbiBzZWxmLnRyaW1fc291cmNlX3BhdGhzOgorICAgICAgICAgICAgICAgICAgICBpZiBmaWxlbmFtZS5zdGFydHN3aXRoKHBhdGgpOgorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSByZXBsICsgZmlsZW5hbWVbbGVuKHBhdGgpOl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5mb3JtYXRfc291cmNlX2xpbmUoZmlsZW5hbWUgb3IgJz8nLCBmcmFtZSkpCisgICAgICAgICAgICBzb3VyY2UgPSBmcmFtZS5nZXRfc291cmNlX2xpbmUoKQorICAgICAgICAgICAgbG9uZ19zb3VyY2UgPSBmcmFtZS5nZXRfc291cmNlX2xpbmUoMikKKyAgICAgICAgICAgIGlmIHNvdXJjZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5mb3JtYXRfbG9uZ19zb3VyY2UoCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgbG9uZ19zb3VyY2UpKQorICAgICAgICBldHlwZSA9IGV4Y19kYXRhLmV4Y2VwdGlvbl90eXBlCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV0eXBlLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgIGV0eXBlID0gZXR5cGUuX19uYW1lX18KKyAgICAgICAgZXhjX2luZm8gPSBzZWxmLmZvcm1hdF9leGNlcHRpb25faW5mbygKKyAgICAgICAgICAgIGV0eXBlLAorICAgICAgICAgICAgZXhjX2RhdGEuZXhjZXB0aW9uX3ZhbHVlKQorICAgICAgICBkYXRhX2J5X2ltcG9ydGFuY2UgPSB7J2ltcG9ydGFudCc6IFtdLCAnbm9ybWFsJzogW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3VwcGxlbWVudGFsJzogW10sICdleHRyYSc6IFtdfQorICAgICAgICBmb3IgKGltcG9ydGFuY2UsIG5hbWUpLCB2YWx1ZSBpbiBnZW5lcmFsX2RhdGEuaXRlbXMoKToKKyAgICAgICAgICAgIGRhdGFfYnlfaW1wb3J0YW5jZVtpbXBvcnRhbmNlXS5hcHBlbmQoCisgICAgICAgICAgICAgICAgKG5hbWUsIHZhbHVlKSkKKyAgICAgICAgZm9yIHZhbHVlIGluIGRhdGFfYnlfaW1wb3J0YW5jZS52YWx1ZXMoKToKKyAgICAgICAgICAgIHZhbHVlLnNvcnQoKQorICAgICAgICByZXR1cm4gc2VsZi5mb3JtYXRfY29tYmluZShkYXRhX2J5X2ltcG9ydGFuY2UsIGxpbmVzLCBleGNfaW5mbykKKworICAgIGRlZiBmaWx0ZXJfZnJhbWVzKHNlbGYsIGZyYW1lcyk6CisgICAgICAgICIiIgorICAgICAgICBSZW1vdmVzIGFueSBmcmFtZXMgdGhhdCBzaG91bGQgYmUgaGlkZGVuLCBhY2NvcmRpbmcgdG8gdGhlCisgICAgICAgIHZhbHVlcyBvZiB0cmFjZWJhY2tfaGlkZSwgc2VsZi5zaG93X2hpZGRlbl9mcmFtZXMsIGFuZCB0aGUKKyAgICAgICAgaGlkZGVuIHN0YXR1cyBvZiB0aGUgZmluYWwgZnJhbWUuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLnNob3dfaGlkZGVuX2ZyYW1lczoKKyAgICAgICAgICAgIHJldHVybiBmcmFtZXMKKyAgICAgICAgbmV3X2ZyYW1lcyA9IFtdCisgICAgICAgIGhpZGRlbiA9IEZhbHNlCisgICAgICAgIGZvciBmcmFtZSBpbiBmcmFtZXM6CisgICAgICAgICAgICBoaWRlID0gZnJhbWUudHJhY2ViYWNrX2hpZGUKKyAgICAgICAgICAgICMgQEA6IEl0IHdvdWxkIGJlIG5pY2UgdG8gc2lnbmFsIGEgd2FybmluZyBpZiBhbiB1bmtub3duCisgICAgICAgICAgICAjIGhpZGUgc3RyaW5nIHdhcyB1c2VkLCBidXQgSSdtIG5vdCBzdXJlIHdoZXJlIHRvIHB1dAorICAgICAgICAgICAgIyB0aGF0IHdhcm5pbmcuCisgICAgICAgICAgICBpZiBoaWRlID09ICdiZWZvcmUnOgorICAgICAgICAgICAgICAgIG5ld19mcmFtZXMgPSBbXQorICAgICAgICAgICAgICAgIGhpZGRlbiA9IEZhbHNlCisgICAgICAgICAgICBlbGlmIGhpZGUgPT0gJ2JlZm9yZV9hbmRfdGhpcyc6CisgICAgICAgICAgICAgICAgbmV3X2ZyYW1lcyA9IFtdCisgICAgICAgICAgICAgICAgaGlkZGVuID0gRmFsc2UKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBoaWRlID09ICdyZXNldCc6CisgICAgICAgICAgICAgICAgaGlkZGVuID0gRmFsc2UKKyAgICAgICAgICAgIGVsaWYgaGlkZSA9PSAncmVzZXRfYW5kX3RoaXMnOgorICAgICAgICAgICAgICAgIGhpZGRlbiA9IEZhbHNlCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGVsaWYgaGlkZSA9PSAnYWZ0ZXInOgorICAgICAgICAgICAgICAgIGhpZGRlbiA9IFRydWUKKyAgICAgICAgICAgIGVsaWYgaGlkZSA9PSAnYWZ0ZXJfYW5kX3RoaXMnOgorICAgICAgICAgICAgICAgIGhpZGRlbiA9IFRydWUKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBoaWRlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbGlmIGhpZGRlbjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgbmV3X2ZyYW1lcy5hcHBlbmQoZnJhbWUpCisgICAgICAgIGlmIGZyYW1lc1stMV0gbm90IGluIG5ld19mcmFtZXM6CisgICAgICAgICAgICAjIFdlIG11c3QgaW5jbHVkZSB0aGUgbGFzdCBmcmFtZTsgdGhhdCB3ZSBkb24ndCBpbmRpY2F0ZXMKKyAgICAgICAgICAgICMgdGhhdCB0aGUgZXJyb3IgaGFwcGVuZWQgd2hlcmUgc29tZXRoaW5nIHdhcyAiaGlkZGVuIiwKKyAgICAgICAgICAgICMgc28gd2UganVzdCBoYXZlIHRvIHNob3cgZXZlcnl0aGluZworICAgICAgICAgICAgcmV0dXJuIGZyYW1lcworICAgICAgICByZXR1cm4gbmV3X2ZyYW1lcworCisgICAgZGVmIHByZXR0eV9zdHJpbmdfcmVwcihzZWxmLCBzKToKKyAgICAgICAgIiIiCisgICAgICAgIEZvcm1hdHMgdGhlIHN0cmluZyBhcyBhIHRyaXBsZS1xdW90ZWQgc3RyaW5nIHdoZW4gaXQgY29udGFpbnMKKyAgICAgICAgbmV3bGluZXMuCisgICAgICAgICIiIgorICAgICAgICBpZiAnXG4nIGluIHM6CisgICAgICAgICAgICBzID0gcmVwcihzKQorICAgICAgICAgICAgcyA9IHNbMF0qMyArIHNbMTotMV0gKyBzWy0xXSozCisgICAgICAgICAgICBzID0gcy5yZXBsYWNlKCdcXG4nLCAnXG4nKQorICAgICAgICAgICAgcmV0dXJuIHMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiByZXByKHMpCisKKyAgICBkZWYgbG9uZ19pdGVtX2xpc3Qoc2VsZiwgbHN0KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgbGlzdCBjb250YWlucyBpdGVtcyB0aGF0IGFyZSBsb25nLCBhbmQgc2hvdWxkCisgICAgICAgIGJlIG1vcmUgbmljZWx5IGZvcm1hdHRlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGhvd19tYW55ID0gMAorICAgICAgICBmb3IgaXRlbSBpbiBsc3Q6CisgICAgICAgICAgICBpZiBsZW4ocmVwcihpdGVtKSkgPiA0MDoKKyAgICAgICAgICAgICAgICBob3dfbWFueSArPSAxCisgICAgICAgICAgICAgICAgaWYgaG93X21hbnkgPj0gMzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKK2NsYXNzIFRleHRGb3JtYXR0ZXIoQWJzdHJhY3RGb3JtYXR0ZXIpOgorCisgICAgZGVmIHF1b3RlKHNlbGYsIHMpOgorICAgICAgICByZXR1cm4gcworICAgIGRlZiBxdW90ZV9sb25nKHNlbGYsIHMpOgorICAgICAgICByZXR1cm4gcworICAgIGRlZiBlbXBoYXNpemUoc2VsZiwgcyk6CisgICAgICAgIHJldHVybiBzCisgICAgZGVmIGZvcm1hdF9zdXBfb2JqZWN0KHNlbGYsIG9iaik6CisgICAgICAgIHJldHVybiAnSW4gb2JqZWN0OiAlcycgJSBzZWxmLmVtcGhhc2l6ZShzZWxmLnF1b3RlKHJlcHIob2JqKSkpCisgICAgZGVmIGZvcm1hdF9zdXBfdXJsKHNlbGYsIHVybCk6CisgICAgICAgIHJldHVybiAnVVJMOiAlcycgJSBzZWxmLnF1b3RlKHVybCkKKyAgICBkZWYgZm9ybWF0X3N1cF9saW5lX3BvcyhzZWxmLCBsaW5lLCBjb2x1bW4pOgorICAgICAgICBpZiBjb2x1bW46CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lbXBoYXNpemUoJ0xpbmUgJWksIENvbHVtbiAlaScgJSAobGluZSwgY29sdW1uKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVtcGhhc2l6ZSgnTGluZSAlaScgJSBsaW5lKQorICAgIGRlZiBmb3JtYXRfc3VwX2V4cHJlc3Npb24oc2VsZiwgZXhwcik6CisgICAgICAgIHJldHVybiBzZWxmLmVtcGhhc2l6ZSgnSW4gZXhwcmVzc2lvbjogJXMnICUgc2VsZi5xdW90ZShleHByKSkKKyAgICBkZWYgZm9ybWF0X3N1cF93YXJuaW5nKHNlbGYsIHdhcm5pbmcpOgorICAgICAgICByZXR1cm4gJ1dhcm5pbmc6ICVzJyAlIHNlbGYucXVvdGUod2FybmluZykKKyAgICBkZWYgZm9ybWF0X3N1cF9pbmZvKHNlbGYsIGluZm8pOgorICAgICAgICByZXR1cm4gW3NlbGYucXVvdGVfbG9uZyhpbmZvKV0KKyAgICBkZWYgZm9ybWF0X3NvdXJjZV9saW5lKHNlbGYsIGZpbGVuYW1lLCBmcmFtZSk6CisgICAgICAgIHJldHVybiAnRmlsZSAlciwgbGluZSAlcyBpbiAlcycgJSAoCisgICAgICAgICAgICBmaWxlbmFtZSwgZnJhbWUubGluZW5vIG9yICc/JywgZnJhbWUubmFtZSBvciAnPycpCisgICAgZGVmIGZvcm1hdF9sb25nX3NvdXJjZShzZWxmLCBzb3VyY2UsIGxvbmdfc291cmNlKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZm9ybWF0X3NvdXJjZShzb3VyY2UpCisgICAgZGVmIGZvcm1hdF9zb3VyY2Uoc2VsZiwgc291cmNlX2xpbmUpOgorICAgICAgICByZXR1cm4gJyAgJyArIHNlbGYucXVvdGUoc291cmNlX2xpbmUuc3RyaXAoKSkKKyAgICBkZWYgZm9ybWF0X2V4Y2VwdGlvbl9pbmZvKHNlbGYsIGV0eXBlLCBldmFsdWUpOgorICAgICAgICByZXR1cm4gc2VsZi5lbXBoYXNpemUoCisgICAgICAgICAgICAnJXM6ICVzJyAlIChzZWxmLnF1b3RlKGV0eXBlKSwgc2VsZi5xdW90ZShldmFsdWUpKSkKKyAgICBkZWYgZm9ybWF0X3RyYWNlYmFja19pbmZvKHNlbGYsIGluZm8pOgorICAgICAgICByZXR1cm4gaW5mbworCisgICAgZGVmIGZvcm1hdF9jb21iaW5lKHNlbGYsIGRhdGFfYnlfaW1wb3J0YW5jZSwgbGluZXMsIGV4Y19pbmZvKToKKyAgICAgICAgbGluZXNbOjBdID0gW3ZhbHVlIGZvciBuLCB2YWx1ZSBpbiBkYXRhX2J5X2ltcG9ydGFuY2VbJ2ltcG9ydGFudCddXQorICAgICAgICBsaW5lcy5hcHBlbmQoZXhjX2luZm8pCisgICAgICAgIGZvciBuYW1lIGluICdub3JtYWwnLCAnc3VwcGxlbWVudGFsJywgJ2V4dHJhJzoKKyAgICAgICAgICAgIGxpbmVzLmV4dGVuZChbdmFsdWUgZm9yIG4sIHZhbHVlIGluIGRhdGFfYnlfaW1wb3J0YW5jZVtuYW1lXV0pCisgICAgICAgIHJldHVybiBzZWxmLmZvcm1hdF9jb21iaW5lX2xpbmVzKGxpbmVzKQorCisgICAgZGVmIGZvcm1hdF9jb21iaW5lX2xpbmVzKHNlbGYsIGxpbmVzKToKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKKworICAgIGRlZiBmb3JtYXRfZXh0cmFfZGF0YShzZWxmLCBpbXBvcnRhbmNlLCB0aXRsZSwgdmFsdWUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICAgICAgcyA9IHNlbGYucHJldHR5X3N0cmluZ19yZXByKHZhbHVlKQorICAgICAgICAgICAgaWYgJ1xuJyBpbiBzOgorICAgICAgICAgICAgICAgIHJldHVybiAnJXM6XG4lcycgJSAodGl0bGUsIHMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiAnJXM6ICVzJyAlICh0aXRsZSwgcykKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KToKKyAgICAgICAgICAgIGxpbmVzID0gWydcbicsIHRpdGxlLCAnLScqbGVuKHRpdGxlKV0KKyAgICAgICAgICAgIGl0ZW1zID0gdmFsdWUuaXRlbXMoKQorICAgICAgICAgICAgaXRlbXMuc29ydCgpCisgICAgICAgICAgICBmb3IgbiwgdiBpbiBpdGVtczoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHYgPSByZXByKHYpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICB2ID0gJ0Nhbm5vdCBkaXNwbGF5OiAlcycgJSBlCisgICAgICAgICAgICAgICAgdiA9IHRydW5jYXRlKHYpCisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcgICVzOiAlcycgJSAobiwgdikpCisgICAgICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorICAgICAgICBlbGlmIChpc2luc3RhbmNlKHZhbHVlLCAobGlzdCwgdHVwbGUpKQorICAgICAgICAgICAgICBhbmQgc2VsZi5sb25nX2l0ZW1fbGlzdCh2YWx1ZSkpOgorICAgICAgICAgICAgcGFydHMgPSBbdHJ1bmNhdGUocmVwcih2KSkgZm9yIHYgaW4gdmFsdWVdCisgICAgICAgICAgICByZXR1cm4gJyVzOiBbXG4gICAgJXNdJyAlICgKKyAgICAgICAgICAgICAgICB0aXRsZSwgJyxcbiAgICAnLmpvaW4ocGFydHMpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICclczogJXMnICUgKHRpdGxlLCB0cnVuY2F0ZShyZXByKHZhbHVlKSkpCisKK2NsYXNzIEhUTUxGb3JtYXR0ZXIoVGV4dEZvcm1hdHRlcik6CisKKyAgICBkZWYgcXVvdGUoc2VsZiwgcyk6CisgICAgICAgIHJldHVybiBodG1sX3F1b3RlKHMpCisgICAgZGVmIHF1b3RlX2xvbmcoc2VsZiwgcyk6CisgICAgICAgIHJldHVybiAnPHByZT4lczwvcHJlPicgJSBzZWxmLnF1b3RlKHMpCisgICAgZGVmIGVtcGhhc2l6ZShzZWxmLCBzKToKKyAgICAgICAgcmV0dXJuICc8Yj4lczwvYj4nICUgcworICAgIGRlZiBmb3JtYXRfc3VwX3VybChzZWxmLCB1cmwpOgorICAgICAgICByZXR1cm4gJ1VSTDogPGEgaHJlZj0iJXMiPiVzPC9hPicgJSAodXJsLCB1cmwpCisgICAgZGVmIGZvcm1hdF9jb21iaW5lX2xpbmVzKHNlbGYsIGxpbmVzKToKKyAgICAgICAgcmV0dXJuICc8YnI+XG4nLmpvaW4obGluZXMpCisgICAgZGVmIGZvcm1hdF9zb3VyY2VfbGluZShzZWxmLCBmaWxlbmFtZSwgZnJhbWUpOgorICAgICAgICBuYW1lID0gc2VsZi5xdW90ZShmcmFtZS5uYW1lIG9yICc/JykKKyAgICAgICAgcmV0dXJuICdNb2R1bGUgPHNwYW4gY2xhc3M9Im1vZHVsZSIgdGl0bGU9IiVzIj4lczwvc3Bhbj46PGI+JXM8L2I+IGluIDxjb2RlPiVzPC9jb2RlPicgJSAoCisgICAgICAgICAgICBmaWxlbmFtZSwgZnJhbWUubW9kbmFtZSBvciAnPycsIGZyYW1lLmxpbmVubyBvciAnPycsCisgICAgICAgICAgICBuYW1lKQorICAgICAgICByZXR1cm4gJ0ZpbGUgJXIsIGxpbmUgJXMgaW4gPHR0PiVzPC90dD4nICUgKAorICAgICAgICAgICAgZmlsZW5hbWUsIGZyYW1lLmxpbmVubywgbmFtZSkKKyAgICBkZWYgZm9ybWF0X2xvbmdfc291cmNlKHNlbGYsIHNvdXJjZSwgbG9uZ19zb3VyY2UpOgorICAgICAgICBxX2xvbmdfc291cmNlID0gc3RyMmh0bWwobG9uZ19zb3VyY2UsIEZhbHNlLCA0LCBUcnVlKQorICAgICAgICBxX3NvdXJjZSA9IHN0cjJodG1sKHNvdXJjZSwgVHJ1ZSwgMCwgRmFsc2UpCisgICAgICAgIHJldHVybiAoJzxjb2RlIHN0eWxlPSJkaXNwbGF5OiBub25lIiBjbGFzcz0ic291cmNlIiBzb3VyY2UtdHlwZT0ibG9uZyI+PGEgY2xhc3M9InN3aXRjaF9zb3VyY2UiIG9uY2xpY2s9InJldHVybiBzd2l0Y2hfc291cmNlKHRoaXMsIFwnbG9uZ1wnKSIgaHJlZj0iIyI+Jmx0OyZsdDsmbmJzcDsgPC9hPiVzPC9jb2RlPicKKyAgICAgICAgICAgICAgICAnPGNvZGUgY2xhc3M9InNvdXJjZSIgc291cmNlLXR5cGU9InNob3J0Ij48YSBvbmNsaWNrPSJyZXR1cm4gc3dpdGNoX3NvdXJjZSh0aGlzLCBcJ3Nob3J0XCcpIiBjbGFzcz0ic3dpdGNoX3NvdXJjZSIgaHJlZj0iIyI+Jmd0OyZndDsmbmJzcDsgPC9hPiVzPC9jb2RlPicKKyAgICAgICAgICAgICAgICAlIChxX2xvbmdfc291cmNlLAorICAgICAgICAgICAgICAgICAgIHFfc291cmNlKSkKKyAgICBkZWYgZm9ybWF0X3NvdXJjZShzZWxmLCBzb3VyY2VfbGluZSk6CisgICAgICAgIHJldHVybiAnJm5ic3A7Jm5ic3A7PGNvZGUgY2xhc3M9InNvdXJjZSI+JXM8L2NvZGU+JyAlIHNlbGYucXVvdGUoc291cmNlX2xpbmUuc3RyaXAoKSkKKyAgICBkZWYgZm9ybWF0X3RyYWNlYmFja19pbmZvKHNlbGYsIGluZm8pOgorICAgICAgICByZXR1cm4gJzxwcmU+JXM8L3ByZT4nICUgc2VsZi5xdW90ZShpbmZvKQorCisgICAgZGVmIGZvcm1hdF9leHRyYV9kYXRhKHNlbGYsIGltcG9ydGFuY2UsIHRpdGxlLCB2YWx1ZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CisgICAgICAgICAgICBzID0gc2VsZi5wcmV0dHlfc3RyaW5nX3JlcHIodmFsdWUpCisgICAgICAgICAgICBpZiAnXG4nIGluIHM6CisgICAgICAgICAgICAgICAgcmV0dXJuICclczo8YnI+PHByZT4lczwvcHJlPicgJSAodGl0bGUsIHNlbGYucXVvdGUocykpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiAnJXM6IDx0dD4lczwvdHQ+JyAlICh0aXRsZSwgc2VsZi5xdW90ZShzKSkKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnplYnJhX3RhYmxlKHRpdGxlLCB2YWx1ZSkKKyAgICAgICAgZWxpZiAoaXNpbnN0YW5jZSh2YWx1ZSwgKGxpc3QsIHR1cGxlKSkKKyAgICAgICAgICAgICAgYW5kIHNlbGYubG9uZ19pdGVtX2xpc3QodmFsdWUpKToKKyAgICAgICAgICAgIHJldHVybiAnJXM6IDx0dD5bPGJyPlxuJm5ic3A7ICZuYnNwOyAlc108L3R0PicgJSAoCisgICAgICAgICAgICAgICAgdGl0bGUsICcsPGJyPiZuYnNwOyAmbmJzcDsgJy5qb2luKG1hcChzZWxmLnF1b3RlLCBtYXAocmVwciwgdmFsdWUpKSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gJyVzOiA8dHQ+JXM8L3R0PicgJSAodGl0bGUsIHNlbGYucXVvdGUocmVwcih2YWx1ZSkpKQorCisgICAgZGVmIGZvcm1hdF9jb21iaW5lKHNlbGYsIGRhdGFfYnlfaW1wb3J0YW5jZSwgbGluZXMsIGV4Y19pbmZvKToKKyAgICAgICAgbGluZXNbOjBdID0gW3ZhbHVlIGZvciBuLCB2YWx1ZSBpbiBkYXRhX2J5X2ltcG9ydGFuY2VbJ2ltcG9ydGFudCddXQorICAgICAgICBsaW5lcy5hcHBlbmQoZXhjX2luZm8pCisgICAgICAgIGZvciBuYW1lIGluICdub3JtYWwnLCAnc3VwcGxlbWVudGFsJzoKKyAgICAgICAgICAgIGxpbmVzLmV4dGVuZChbdmFsdWUgZm9yIG4sIHZhbHVlIGluIGRhdGFfYnlfaW1wb3J0YW5jZVtuYW1lXV0pCisgICAgICAgIGlmIGRhdGFfYnlfaW1wb3J0YW5jZVsnZXh0cmEnXToKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPlxuc2hvd19idXR0b24oXCdleHRyYV9kYXRhXCcsIFwnZXh0cmEgZGF0YVwnKTtcbjwvc2NyaXB0PlxuJyArCisgICAgICAgICAgICAgICAgJzxkaXYgaWQ9ImV4dHJhX2RhdGEiIGNsYXNzPSJoaWRkZW4tZGF0YSI+XG4nKQorICAgICAgICAgICAgbGluZXMuZXh0ZW5kKFt2YWx1ZSBmb3IgbiwgdmFsdWUgaW4gZGF0YV9ieV9pbXBvcnRhbmNlWydleHRyYSddXSkKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnPC9kaXY+JykKKyAgICAgICAgdGV4dCA9IHNlbGYuZm9ybWF0X2NvbWJpbmVfbGluZXMobGluZXMpCisgICAgICAgIGlmIHNlbGYuaW5jbHVkZV9yZXVzYWJsZToKKyAgICAgICAgICAgIHJldHVybiBlcnJvcl9jc3MgKyBoaWRlX2Rpc3BsYXlfanMgKyB0ZXh0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFVzdWFsbHkgYmVjYXVzZSBhbm90aGVyIGVycm9yIGlzIGFscmVhZHkgb24gdGhpcyBwYWdlLAorICAgICAgICAgICAgIyBhbmQgc28gdGhlIGpzICYgQ1NTIGFyZSB1bm5lZWRlZAorICAgICAgICAgICAgcmV0dXJuIHRleHQKKworICAgIGRlZiB6ZWJyYV90YWJsZShzZWxmLCB0aXRsZSwgcm93cywgdGFibGVfY2xhc3M9InZhcmlhYmxlcyIpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHJvd3MsIGRpY3QpOgorICAgICAgICAgICAgcm93cyA9IHJvd3MuaXRlbXMoKQorICAgICAgICAgICAgcm93cy5zb3J0KCkKKyAgICAgICAgdGFibGUgPSBbJzx0YWJsZSBjbGFzcz0iJXMiPicgJSB0YWJsZV9jbGFzcywKKyAgICAgICAgICAgICAgICAgJzx0ciBjbGFzcz0iaGVhZGVyIj48dGggY29sc3Bhbj0iMiI+JXM8L3RoPjwvdHI+JworICAgICAgICAgICAgICAgICAlIHNlbGYucXVvdGUodGl0bGUpXQorICAgICAgICBvZGQgPSBGYWxzZQorICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gcm93czoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHJlcHIodmFsdWUpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgdmFsdWUgPSAnQ2Fubm90IHByaW50OiAlcycgJSBlCisgICAgICAgICAgICBvZGQgPSBub3Qgb2RkCisgICAgICAgICAgICB0YWJsZS5hcHBlbmQoCisgICAgICAgICAgICAgICAgJzx0ciBjbGFzcz0iJXMiPjx0ZD4lczwvdGQ+JworICAgICAgICAgICAgICAgICUgKG9kZCBhbmQgJ29kZCcgb3IgJ2V2ZW4nLCBzZWxmLnF1b3RlKG5hbWUpKSkKKyAgICAgICAgICAgIHRhYmxlLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAnPHRkPjx0dD4lczwvdHQ+PC90ZD48L3RyPicKKyAgICAgICAgICAgICAgICAlIG1ha2Vfd3JhcHBhYmxlKHNlbGYucXVvdGUodHJ1bmNhdGUodmFsdWUpKSkpCisgICAgICAgIHRhYmxlLmFwcGVuZCgnPC90YWJsZT4nKQorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHRhYmxlKQorCitoaWRlX2Rpc3BsYXlfanMgPSByJycnCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBoaWRlX2Rpc3BsYXkoaWQpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgaWYgKGVsLmNsYXNzTmFtZSA9PSAiaGlkZGVuLWRhdGEiKSB7CisgICAgICAgIGVsLmNsYXNzTmFtZSA9ICIiOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgICBlbC5jbGFzc05hbWUgPSAiaGlkZGVuLWRhdGEiOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorZG9jdW1lbnQud3JpdGUoJzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+XG4nKTsKK2RvY3VtZW50LndyaXRlKCcuaGlkZGVuLWRhdGEge2Rpc3BsYXk6IG5vbmV9XG4nKTsKK2RvY3VtZW50LndyaXRlKCc8L3N0eWxlPlxuJyk7CitmdW5jdGlvbiBzaG93X2J1dHRvbih0b2dnbGVfaWQsIG5hbWUpIHsKKyAgICBkb2N1bWVudC53cml0ZSgnPGEgaHJlZj0iIycgKyB0b2dnbGVfaWQKKyAgICAgICAgKyAnIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmhpZGVfZGlzcGxheShcJycgKyB0b2dnbGVfaWQKKyAgICAgICAgKyAnXCcpIiBjbGFzcz0iYnV0dG9uIj4nICsgbmFtZSArICc8L2E+PGJyPicpOworfQorCitmdW5jdGlvbiBzd2l0Y2hfc291cmNlKGVsLCBoaWRlX3R5cGUpIHsKKyAgICB3aGlsZSAoZWwpIHsKKyAgICAgICAgaWYgKGVsLmdldEF0dHJpYnV0ZSAmJgorICAgICAgICAgICAgZWwuZ2V0QXR0cmlidXRlKCdzb3VyY2UtdHlwZScpID09IGhpZGVfdHlwZSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZWwgPSBlbC5wYXJlbnROb2RlOworICAgIH0KKyAgICBpZiAoISBlbCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgaWYgKGhpZGVfdHlwZSA9PSAnbG9uZycpIHsKKyAgICAgICAgd2hpbGUgKGVsKSB7CisgICAgICAgICAgICBpZiAoZWwuZ2V0QXR0cmlidXRlICYmCisgICAgICAgICAgICAgICAgZWwuZ2V0QXR0cmlidXRlKCdzb3VyY2UtdHlwZScpID09ICdzaG9ydCcpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsID0gZWwubmV4dFNpYmxpbmc7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB3aGlsZSAoZWwpIHsKKyAgICAgICAgICAgIGlmIChlbC5nZXRBdHRyaWJ1dGUgJiYKKyAgICAgICAgICAgICAgICBlbC5nZXRBdHRyaWJ1dGUoJ3NvdXJjZS10eXBlJykgPT0gJ2xvbmcnKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbCA9IGVsLnByZXZpb3VzU2libGluZzsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZWwpIHsKKyAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9ICcnOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKzwvc2NyaXB0PicnJworCisKK2Vycm9yX2NzcyA9ICIiIgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK2JvZHkgeworICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCit0YWJsZSB7CisgIHdpZHRoOiAxMDAlOworfQorCit0ci5oZWFkZXIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2OworICBjb2xvcjogI2ZmZjsKK30KKwordHIuZXZlbiB7CisgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7Cit9CisKK3RhYmxlLnZhcmlhYmxlcyB0ZCB7CisgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgIG92ZXJmbG93OiBhdXRvOworfQorCithLmJ1dHRvbiB7CisgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7CisgIGJvcmRlcjogMnB4IG91dHNldCAjYWFhOworICBjb2xvcjogIzAwMDsKKyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorCithLmJ1dHRvbjpob3ZlciB7CisgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7Cit9CisKK2NvZGUuc291cmNlIHsKKyAgY29sb3I6ICMwMDY7Cit9CisKK2Euc3dpdGNoX3NvdXJjZSB7CisgIGNvbG9yOiAjMDkwOworICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisKK2Euc3dpdGNoX3NvdXJjZTpob3ZlciB7CisgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7Cit9CisKKy5zb3VyY2UtaGlnaGxpZ2h0IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOTsKK30KKworPC9zdHlsZT4KKyIiIgorCitkZWYgZm9ybWF0X2h0bWwoZXhjX2RhdGEsIGluY2x1ZGVfaGlkZGVuX2ZyYW1lcz1GYWxzZSwgKipvcHMpOgorICAgIGlmIG5vdCBpbmNsdWRlX2hpZGRlbl9mcmFtZXM6CisgICAgICAgIHJldHVybiBIVE1MRm9ybWF0dGVyKCoqb3BzKS5mb3JtYXRfY29sbGVjdGVkX2RhdGEoZXhjX2RhdGEpCisgICAgc2hvcnRfZXIgPSBmb3JtYXRfaHRtbChleGNfZGF0YSwgc2hvd19oaWRkZW5fZnJhbWVzPUZhbHNlLCAqKm9wcykKKyAgICAjIEBAOiBUaGlzIHNob3VsZCBoYXZlIGEgd2F5IG9mIHNlZWluZyBpZiB0aGUgcHJldmlvdXMgdHJhY2ViYWNrCisgICAgIyB3YXMgYWN0dWFsbHkgdHJpbW1lZCBhdCBhbGwKKyAgICBvcHNbJ2luY2x1ZGVfcmV1c2FibGUnXSA9IEZhbHNlCisgICAgb3BzWydzaG93X2V4dHJhX2RhdGEnXSA9IEZhbHNlCisgICAgbG9uZ19lciA9IGZvcm1hdF9odG1sKGV4Y19kYXRhLCBzaG93X2hpZGRlbl9mcmFtZXM9VHJ1ZSwgKipvcHMpCisgICAgdGV4dF9lciA9IGZvcm1hdF90ZXh0KGV4Y19kYXRhLCBzaG93X2hpZGRlbl9mcmFtZXM9VHJ1ZSwgKipvcHMpCisgICAgcmV0dXJuICIiIgorICAgICVzCisgICAgPGJyPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBzaG93X2J1dHRvbignZnVsbF90cmFjZWJhY2snLCAnZnVsbCB0cmFjZWJhY2snKQorICAgIDwvc2NyaXB0PgorICAgIDxkaXYgaWQ9ImZ1bGxfdHJhY2ViYWNrIiBjbGFzcz0iaGlkZGVuLWRhdGEiPgorICAgICVzCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBzaG93X2J1dHRvbigndGV4dF92ZXJzaW9uJywgJ3RleHQgdmVyc2lvbicpCisgICAgPC9zY3JpcHQ+CisgICAgPGRpdiBpZD0idGV4dF92ZXJzaW9uIiBjbGFzcz0iaGlkZGVuLWRhdGEiPgorICAgIDx0ZXh0YXJlYSBzdHlsZT0id2lkdGg6IDEwMCUlIiByb3dzPTEwIGNvbHM9NjA+JXM8L3RleHRhcmVhPgorICAgIDwvZGl2PgorICAgICIiIiAlIChzaG9ydF9lciwgbG9uZ19lciwgY2dpLmVzY2FwZSh0ZXh0X2VyKSkKKworZGVmIGZvcm1hdF90ZXh0KGV4Y19kYXRhLCAqKm9wcyk6CisgICAgcmV0dXJuIFRleHRGb3JtYXR0ZXIoKipvcHMpLmZvcm1hdF9jb2xsZWN0ZWRfZGF0YShleGNfZGF0YSkKKword2hpdGVzcGFjZV9yZSA9IHJlLmNvbXBpbGUocicgICsnKQorcHJlX3JlID0gcmUuY29tcGlsZShyJzwvP3ByZS4qPz4nKQorZXJyb3JfcmUgPSByZS5jb21waWxlKHInPGgzPkVSUk9SOiAuKj88L2gzPicpCisKK2RlZiBzdHIyaHRtbChzcmMsIHN0cmlwPUZhbHNlLCBpbmRlbnRfc3Vic2VxdWVudD0wLAorICAgICAgICAgICAgIGhpZ2hsaWdodF9pbm5lcj1GYWxzZSk6CisgICAgIiIiCisgICAgQ29udmVydCBhIHN0cmluZyB0byBIVE1MLiAgVHJ5IHRvIGJlIHJlYWxseSBzYWZlIGFib3V0IGl0LAorICAgIHJldHVybmluZyBhIHF1b3RlZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgaWYgbm90aGluZyBlbHNlIHdvcmtzLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIF9zdHIyaHRtbChzcmMsIHN0cmlwPXN0cmlwLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudF9zdWJzZXF1ZW50PWluZGVudF9zdWJzZXF1ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodF9pbm5lcj1oaWdobGlnaHRfaW5uZXIpCisgICAgZXhjZXB0OgorICAgICAgICByZXR1cm4gaHRtbF9xdW90ZShzcmMpCisKK2RlZiBfc3RyMmh0bWwoc3JjLCBzdHJpcD1GYWxzZSwgaW5kZW50X3N1YnNlcXVlbnQ9MCwKKyAgICAgICAgICAgICAgaGlnaGxpZ2h0X2lubmVyPUZhbHNlKToKKyAgICBpZiBzdHJpcDoKKyAgICAgICAgc3JjID0gc3JjLnN0cmlwKCkKKyAgICBvcmlnX3NyYyA9IHNyYworICAgIHRyeToKKyAgICAgICAgc3JjID0gUHlTb3VyY2VDb2xvci5zdHIyaHRtbChzcmMsIGZvcm09J3NuaXAnKQorICAgICAgICBzcmMgPSBlcnJvcl9yZS5zdWIoJycsIHNyYykKKyAgICAgICAgc3JjID0gcHJlX3JlLnN1YignJywgc3JjKQorICAgICAgICBzcmMgPSByZS5zdWIocideW1xuXHJdezAsMX0nLCAnJywgc3JjKQorICAgICAgICBzcmMgPSByZS5zdWIocidbXG5ccl17MCwxfSQnLCAnJywgc3JjKQorICAgIGV4Y2VwdDoKKyAgICAgICAgc3JjID0gaHRtbF9xdW90ZShvcmlnX3NyYykKKyAgICBsaW5lcyA9IHNyYy5zcGxpdGxpbmVzKCkKKyAgICBpZiBsZW4obGluZXMpID09IDE6CisgICAgICAgIHJldHVybiBsaW5lc1swXQorICAgIGluZGVudCA9ICcgJyppbmRlbnRfc3Vic2VxdWVudAorICAgIGZvciBpIGluIHJhbmdlKDEsIGxlbihsaW5lcykpOgorICAgICAgICBsaW5lc1tpXSA9IGluZGVudCtsaW5lc1tpXQorICAgICAgICBpZiBoaWdobGlnaHRfaW5uZXIgYW5kIGkgPT0gbGVuKGxpbmVzKS8yOgorICAgICAgICAgICAgbGluZXNbaV0gPSAnPHNwYW4gY2xhc3M9InNvdXJjZS1oaWdobGlnaHQiPiVzPC9zcGFuPicgJSBsaW5lc1tpXQorICAgIHNyYyA9ICc8YnI+XG4nLmpvaW4obGluZXMpCisgICAgc3JjID0gd2hpdGVzcGFjZV9yZS5zdWIoCisgICAgICAgIGxhbWJkYSBtOiAnJm5ic3A7JyoobGVuKG0uZ3JvdXAoMCkpLTEpICsgJyAnLCBzcmMpCisgICAgcmV0dXJuIHNyYworCitkZWYgdHJ1bmNhdGUoc3RyaW5nLCBsaW1pdD0xMDAwKToKKyAgICAiIiIKKyAgICBUcnVuY2F0ZSB0aGUgc3RyaW5nIHRvIHRoZSBsaW1pdCBudW1iZXIgb2YKKyAgICBjaGFyYWN0ZXJzCisgICAgIiIiCisgICAgaWYgbGVuKHN0cmluZykgPiBsaW1pdDoKKyAgICAgICAgcmV0dXJuIHN0cmluZ1s6bGltaXQtMjBdKycuLi4nK3N0cmluZ1stMTc6XQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBzdHJpbmcKKworZGVmIG1ha2Vfd3JhcHBhYmxlKGh0bWwsIHdyYXBfbGltaXQ9NjAsCisgICAgICAgICAgICAgICAgICAgc3BsaXRfb249Jzs/JkAhJCMtL1xcIlwnJyk6CisgICAgIyBDdXJyZW50bHkgdXNpbmcgPHdicj4sIG1heWJlIHNob3VsZCB1c2UgJiM4MjAzOworICAgICMgICBodHRwOi8vd3d3LmNzLnR1dC5maS9+amtvcnBlbGEvaHRtbC9ub2JyLmh0bWwKKyAgICBpZiBsZW4oaHRtbCkgPD0gd3JhcF9saW1pdDoKKyAgICAgICAgcmV0dXJuIGh0bWwKKyAgICB3b3JkcyA9IGh0bWwuc3BsaXQoKQorICAgIG5ld193b3JkcyA9IFtdCisgICAgZm9yIHdvcmQgaW4gd29yZHM6CisgICAgICAgIHdyYXBwZWRfd29yZCA9ICcnCisgICAgICAgIHdoaWxlIGxlbih3b3JkKSA+IHdyYXBfbGltaXQ6CisgICAgICAgICAgICBmb3IgY2hhciBpbiBzcGxpdF9vbjoKKyAgICAgICAgICAgICAgICBpZiBjaGFyIGluIHdvcmQ6CisgICAgICAgICAgICAgICAgICAgIGZpcnN0LCByZXN0ID0gd29yZC5zcGxpdChjaGFyLCAxKQorICAgICAgICAgICAgICAgICAgICB3cmFwcGVkX3dvcmQgKz0gZmlyc3QrY2hhcisnPHdicj4nCisgICAgICAgICAgICAgICAgICAgIHdvcmQgPSByZXN0CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbih3b3JkKSwgd3JhcF9saW1pdCk6CisgICAgICAgICAgICAgICAgICAgIHdyYXBwZWRfd29yZCArPSB3b3JkW2k6aSt3cmFwX2xpbWl0XSsnPHdicj4nCisgICAgICAgICAgICAgICAgd29yZCA9ICcnCisgICAgICAgIHdyYXBwZWRfd29yZCArPSB3b3JkCisgICAgICAgIG5ld193b3Jkcy5hcHBlbmQod3JhcHBlZF93b3JkKQorICAgIHJldHVybiAnICcuam9pbihuZXdfd29yZHMpCisKK2RlZiBtYWtlX3ByZV93cmFwcGFibGUoaHRtbCwgd3JhcF9saW1pdD02MCwKKyAgICAgICAgICAgICAgICAgICAgICAgc3BsaXRfb249Jzs/JkAhJCMtL1xcIlwnJyk6CisgICAgIiIiCisgICAgTGlrZSBgYG1ha2Vfd3JhcHBhYmxlKClgYCBidXQgaW50ZW5kZWQgZm9yIHRleHQgdGhhdCB3aWxsCisgICAgZ28gaW4gYSBgYDxwcmU+YGAgYmxvY2ssIHNvIHdyYXAgb24gYSBsaW5lLWJ5LWxpbmUgYmFzaXMuCisgICAgIiIiCisgICAgbGluZXMgPSBodG1sLnNwbGl0bGluZXMoKQorICAgIG5ld19saW5lcyA9IFtdCisgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgIGlmIGxlbihsaW5lKSA+IHdyYXBfbGltaXQ6CisgICAgICAgICAgICBmb3IgY2hhciBpbiBzcGxpdF9vbjoKKyAgICAgICAgICAgICAgICBpZiBjaGFyIGluIGxpbmU6CisgICAgICAgICAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdChjaGFyKQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gJzx3YnI+Jy5qb2luKHBhcnRzKQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBuZXdfbGluZXMuYXBwZW5kKGxpbmUpCisgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9leGNlcHRpb25zL3JlcG9ydGVyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvcmVwb3J0ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MwYzI2NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9leGNlcHRpb25zL3JlcG9ydGVyLnB5CkBAIC0wLDAgKzEsMTQxIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKK2Zyb20gZW1haWwubWltZS50ZXh0IGltcG9ydCBNSU1FVGV4dAorZnJvbSBlbWFpbC5taW1lLm11bHRpcGFydCBpbXBvcnQgTUlNRU11bHRpcGFydAoraW1wb3J0IHNtdHBsaWIKK2ltcG9ydCB0aW1lCit0cnk6CisgICAgZnJvbSBzb2NrZXQgaW1wb3J0IHNzbGVycm9yCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgc3NsZXJyb3IgPSBOb25lCitmcm9tIHBhc3RlLmV4Y2VwdGlvbnMgaW1wb3J0IGZvcm1hdHRlcgorCitjbGFzcyBSZXBvcnRlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqY29uZik6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBjb25mLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJUaGUga2V5d29yZCBhcmd1bWVudCAlcyB3YXMgbm90IGV4cGVjdGVkIgorICAgICAgICAgICAgICAgICAgICAlIG5hbWUpCisgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIG5hbWUsIHZhbHVlKQorICAgICAgICBzZWxmLmNoZWNrX3BhcmFtcygpCisKKyAgICBkZWYgY2hlY2tfcGFyYW1zKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZm9ybWF0X2RhdGUoc2VsZiwgZXhjX2RhdGEpOgorICAgICAgICByZXR1cm4gdGltZS5zdHJmdGltZSgnJWMnLCBleGNfZGF0YS5kYXRlKQorCisgICAgZGVmIGZvcm1hdF9odG1sKHNlbGYsIGV4Y19kYXRhLCAqKmt3KToKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXRfaHRtbChleGNfZGF0YSwgKiprdykKKworICAgIGRlZiBmb3JtYXRfdGV4dChzZWxmLCBleGNfZGF0YSwgKiprdyk6CisgICAgICAgIHJldHVybiBmb3JtYXR0ZXIuZm9ybWF0X3RleHQoZXhjX2RhdGEsICoqa3cpCisKK2NsYXNzIEVtYWlsUmVwb3J0ZXIoUmVwb3J0ZXIpOgorCisgICAgdG9fYWRkcmVzc2VzID0gTm9uZQorICAgIGZyb21fYWRkcmVzcyA9IE5vbmUKKyAgICBzbXRwX3NlcnZlciA9ICdsb2NhbGhvc3QnCisgICAgc210cF91c2VybmFtZSA9IE5vbmUKKyAgICBzbXRwX3Bhc3N3b3JkID0gTm9uZQorICAgIHNtdHBfdXNlX3RscyA9IEZhbHNlCisgICAgc3ViamVjdF9wcmVmaXggPSAnJworCisgICAgZGVmIHJlcG9ydChzZWxmLCBleGNfZGF0YSk6CisgICAgICAgIG1zZyA9IHNlbGYuYXNzZW1ibGVfZW1haWwoZXhjX2RhdGEpCisgICAgICAgIHNlcnZlciA9IHNtdHBsaWIuU01UUChzZWxmLnNtdHBfc2VydmVyKQorICAgICAgICBpZiBzZWxmLnNtdHBfdXNlX3RsczoKKyAgICAgICAgICAgIHNlcnZlci5laGxvKCkKKyAgICAgICAgICAgIHNlcnZlci5zdGFydHRscygpCisgICAgICAgICAgICBzZXJ2ZXIuZWhsbygpCisgICAgICAgIGlmIHNlbGYuc210cF91c2VybmFtZSBhbmQgc2VsZi5zbXRwX3Bhc3N3b3JkOgorICAgICAgICAgICAgc2VydmVyLmxvZ2luKHNlbGYuc210cF91c2VybmFtZSwgc2VsZi5zbXRwX3Bhc3N3b3JkKQorICAgICAgICBzZXJ2ZXIuc2VuZG1haWwoc2VsZi5mcm9tX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRvX2FkZHJlc3NlcywgbXNnLmFzX3N0cmluZygpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZXJ2ZXIucXVpdCgpCisgICAgICAgIGV4Y2VwdCBzc2xlcnJvcjoKKyAgICAgICAgICAgICMgc3NsZXJyb3IgaXMgcmFpc2VkIGluIHRscyBjb25uZWN0aW9ucyBvbiBjbG9zaW5nIHNvbWV0aW1lcworICAgICAgICAgICAgcGFzcworCisgICAgZGVmIGNoZWNrX3BhcmFtcyhzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYudG9fYWRkcmVzc2VzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiWW91IG11c3Qgc2V0IHRvX2FkZHJlc3NlcyIpCisgICAgICAgIGlmIG5vdCBzZWxmLmZyb21fYWRkcmVzczoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIllvdSBtdXN0IHNldCBmcm9tX2FkZHJlc3MiKQorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYudG9fYWRkcmVzc2VzLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICBzZWxmLnRvX2FkZHJlc3NlcyA9IFtzZWxmLnRvX2FkZHJlc3Nlc10KKworICAgIGRlZiBhc3NlbWJsZV9lbWFpbChzZWxmLCBleGNfZGF0YSk6CisgICAgICAgIHNob3J0X2h0bWxfdmVyc2lvbiA9IHNlbGYuZm9ybWF0X2h0bWwoCisgICAgICAgICAgICBleGNfZGF0YSwgc2hvd19oaWRkZW5fZnJhbWVzPUZhbHNlKQorICAgICAgICBsb25nX2h0bWxfdmVyc2lvbiA9IHNlbGYuZm9ybWF0X2h0bWwoCisgICAgICAgICAgICBleGNfZGF0YSwgc2hvd19oaWRkZW5fZnJhbWVzPVRydWUpCisgICAgICAgIHRleHRfdmVyc2lvbiA9IHNlbGYuZm9ybWF0X3RleHQoCisgICAgICAgICAgICBleGNfZGF0YSwgc2hvd19oaWRkZW5fZnJhbWVzPUZhbHNlKQorICAgICAgICBtc2cgPSBNSU1FTXVsdGlwYXJ0KCkKKyAgICAgICAgbXNnLnNldF90eXBlKCdtdWx0aXBhcnQvYWx0ZXJuYXRpdmUnKQorICAgICAgICBtc2cucHJlYW1ibGUgPSBtc2cuZXBpbG9ndWUgPSAnJworICAgICAgICB0ZXh0X21zZyA9IE1JTUVUZXh0KHRleHRfdmVyc2lvbikKKyAgICAgICAgdGV4dF9tc2cuc2V0X3R5cGUoJ3RleHQvcGxhaW4nKQorICAgICAgICB0ZXh0X21zZy5zZXRfcGFyYW0oJ2NoYXJzZXQnLCAnQVNDSUknKQorICAgICAgICBtc2cuYXR0YWNoKHRleHRfbXNnKQorICAgICAgICBodG1sX21zZyA9IE1JTUVUZXh0KHNob3J0X2h0bWxfdmVyc2lvbikKKyAgICAgICAgaHRtbF9tc2cuc2V0X3R5cGUoJ3RleHQvaHRtbCcpCisgICAgICAgICMgQEA6IENvcnJlY3QgY2hhcmFjdGVyIHNldD8KKyAgICAgICAgaHRtbF9tc2cuc2V0X3BhcmFtKCdjaGFyc2V0JywgJ1VURi04JykKKyAgICAgICAgaHRtbF9sb25nID0gTUlNRVRleHQobG9uZ19odG1sX3ZlcnNpb24pCisgICAgICAgIGh0bWxfbG9uZy5zZXRfdHlwZSgndGV4dC9odG1sJykKKyAgICAgICAgaHRtbF9sb25nLnNldF9wYXJhbSgnY2hhcnNldCcsICdVVEYtOCcpCisgICAgICAgIG1zZy5hdHRhY2goaHRtbF9tc2cpCisgICAgICAgIG1zZy5hdHRhY2goaHRtbF9sb25nKQorICAgICAgICBzdWJqZWN0ID0gJyVzOiAlcycgJSAoZXhjX2RhdGEuZXhjZXB0aW9uX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIudHJ1bmNhdGUoc3RyKGV4Y19kYXRhLmV4Y2VwdGlvbl92YWx1ZSkpKQorICAgICAgICBtc2dbJ1N1YmplY3QnXSA9IHNlbGYuc3ViamVjdF9wcmVmaXggKyBzdWJqZWN0CisgICAgICAgIG1zZ1snRnJvbSddID0gc2VsZi5mcm9tX2FkZHJlc3MKKyAgICAgICAgbXNnWydUbyddID0gJywgJy5qb2luKHNlbGYudG9fYWRkcmVzc2VzKQorICAgICAgICByZXR1cm4gbXNnCisKK2NsYXNzIExvZ1JlcG9ydGVyKFJlcG9ydGVyKToKKworICAgIGZpbGVuYW1lID0gTm9uZQorICAgIHNob3dfaGlkZGVuX2ZyYW1lcyA9IFRydWUKKworICAgIGRlZiBjaGVja19wYXJhbXMoc2VsZik6CisgICAgICAgIGFzc2VydCBzZWxmLmZpbGVuYW1lIGlzIG5vdCBOb25lLCAoCisgICAgICAgICAgICAiWW91IG11c3QgZ2l2ZSBhIGZpbGVuYW1lIikKKworICAgIGRlZiByZXBvcnQoc2VsZiwgZXhjX2RhdGEpOgorICAgICAgICB0ZXh0ID0gc2VsZi5mb3JtYXRfdGV4dCgKKyAgICAgICAgICAgIGV4Y19kYXRhLCBzaG93X2hpZGRlbl9mcmFtZXM9c2VsZi5zaG93X2hpZGRlbl9mcmFtZXMpCisgICAgICAgIGYgPSBvcGVuKHNlbGYuZmlsZW5hbWUsICdhJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZi53cml0ZSh0ZXh0ICsgJ1xuJyArICctJyo2MCArICdcbicpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBmLmNsb3NlKCkKKworY2xhc3MgRmlsZVJlcG9ydGVyKFJlcG9ydGVyKToKKworICAgIGZpbGUgPSBOb25lCisgICAgc2hvd19oaWRkZW5fZnJhbWVzID0gVHJ1ZQorCisgICAgZGVmIGNoZWNrX3BhcmFtcyhzZWxmKToKKyAgICAgICAgYXNzZXJ0IHNlbGYuZmlsZSBpcyBub3QgTm9uZSwgKAorICAgICAgICAgICAgIllvdSBtdXN0IGdpdmUgYSBmaWxlIG9iamVjdCIpCisKKyAgICBkZWYgcmVwb3J0KHNlbGYsIGV4Y19kYXRhKToKKyAgICAgICAgdGV4dCA9IHNlbGYuZm9ybWF0X3RleHQoCisgICAgICAgICAgICBleGNfZGF0YSwgc2hvd19oaWRkZW5fZnJhbWVzPXNlbGYuc2hvd19oaWRkZW5fZnJhbWVzKQorICAgICAgICBzZWxmLmZpbGUud3JpdGUodGV4dCArICdcbicgKyAnLScqNjAgKyAnXG4nKQorCitjbGFzcyBXU0dJQXBwUmVwb3J0ZXIoUmVwb3J0ZXIpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4Y19kYXRhKToKKyAgICAgICAgc2VsZi5leGNfZGF0YSA9IGV4Y19kYXRhCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzdGFydF9yZXNwb25zZSgnNTAwIFNlcnZlciBFcnJvcicsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgIHJldHVybiBbZm9ybWF0dGVyLmZvcm1hdF9odG1sKHNlbGYuZXhjX2RhdGEpXQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvc2VyaWFsX251bWJlcl9nZW5lcmF0b3IucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZXhjZXB0aW9ucy9zZXJpYWxfbnVtYmVyX2dlbmVyYXRvci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjgwMTA3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2V4Y2VwdGlvbnMvc2VyaWFsX251bWJlcl9nZW5lcmF0b3IucHkKQEAgLTAsMCArMSwxMjkgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworIiIiCitDcmVhdGVzIGEgaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllciwgdXNpbmcgbnVtYmVycyBhbmQgZGlnaXRzLAorYXZvaWRpbmcgYW1iaWd1b3VzIG51bWJlcnMgYW5kIGxldHRlcnMuICBoYXNoX2lkZW50aWZpZXIgY2FuIGJlIHVzZWQKK3RvIGNyZWF0ZSBjb21wYWN0IHJlcHJlc2VudGF0aW9ucyB0aGF0IGFyZSB1bmlxdWUgZm9yIGEgY2VydGFpbiBzdHJpbmcKKyhvciBjb25jYXRlbmF0aW9uIG9mIHN0cmluZ3MpCisiIiIKKwordHJ5OgorICAgIGZyb20gaGFzaGxpYiBpbXBvcnQgbWQ1CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBtZDUgaW1wb3J0IG1kNQorCitpbXBvcnQgc2l4CisKK2dvb2RfY2hhcmFjdGVycyA9ICIyMzQ1Njc4OWFiY2RlZmdoamttbnBxcnR1dnd4eXoiCisKK2Jhc2UgPSBsZW4oZ29vZF9jaGFyYWN0ZXJzKQorCitkZWYgbWFrZV9pZGVudGlmaWVyKG51bWJlcik6CisgICAgIiIiCisgICAgRW5jb2RlcyBhIG51bWJlciBhcyBhbiBpZGVudGlmaWVyLgorICAgICIiIgorICAgIGlmIG5vdCBpc2luc3RhbmNlKG51bWJlciwgc2l4LmludGVnZXJfdHlwZXMpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgIllvdSBjYW4gb25seSBtYWtlIGlkZW50aWZpZXJzIG91dCBvZiBpbnRlZ2VycyAobm90ICVyKSIKKyAgICAgICAgICAgICUgbnVtYmVyKQorICAgIGlmIG51bWJlciA8IDA6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAiWW91IGNhbm5vdCBtYWtlIGlkZW50aWZpZXJzIG91dCBvZiBuZWdhdGl2ZSBudW1iZXJzOiAlciIKKyAgICAgICAgICAgICUgbnVtYmVyKQorICAgIHJlc3VsdCA9IFtdCisgICAgd2hpbGUgbnVtYmVyOgorICAgICAgICBuZXh0ID0gbnVtYmVyICUgYmFzZQorICAgICAgICByZXN1bHQuYXBwZW5kKGdvb2RfY2hhcmFjdGVyc1tuZXh0XSkKKyAgICAgICAgIyBOb3RlLCB0aGlzIGRlcGVuZHMgb24gaW50ZWdlciByb3VuZGluZyBvZiByZXN1bHRzOgorICAgICAgICBudW1iZXIgPSBudW1iZXIgLy8gYmFzZQorICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKKworZGVmIGhhc2hfaWRlbnRpZmllcihzLCBsZW5ndGgsIHBhZD1UcnVlLCBoYXNoZXI9bWQ1LCBwcmVmaXg9JycsCisgICAgICAgICAgICAgICAgICAgIGdyb3VwPU5vbmUsIHVwcGVyPUZhbHNlKToKKyAgICAiIiIKKyAgICBIYXNoZXMgdGhlIHN0cmluZyAod2l0aCB0aGUgZ2l2ZW4gaGFzaGluZyBtb2R1bGUpLCB0aGVuIHR1cm5zIHRoYXQKKyAgICBoYXNoIGludG8gYW4gaWRlbnRpZmllciBvZiB0aGUgZ2l2ZW4gbGVuZ3RoICh1c2luZyBtb2R1bG8gdG8KKyAgICByZWR1Y2UgdGhlIGxlbmd0aCBvZiB0aGUgaWRlbnRpZmllcikuICBJZiBgYHBhZGBgIGlzIEZhbHNlLCB0aGVuCisgICAgdGhlIG1pbmltdW0tbGVuZ3RoIGlkZW50aWZpZXIgd2lsbCBiZSB1c2VkOyBvdGhlcndpc2UgdGhlCisgICAgaWRlbnRpZmllciB3aWxsIGJlIHBhZGRlZCB3aXRoIDAncyBhcyBuZWNlc3NhcnkuCisKKyAgICBgYHByZWZpeGBgIHdpbGwgYmUgYWRkZWQgbGFzdCwgYW5kIGRvZXMgbm90IGNvdW50IHRvd2FyZHMgdGhlCisgICAgdGFyZ2V0IGxlbmd0aC4gIGBgZ3JvdXBgYCB3aWxsIGdyb3VwIHRoZSBjaGFyYWN0ZXJzIHdpdGggYGAtYGAgaW4KKyAgICB0aGUgZ2l2ZW4gbGVuZ3RocywgYW5kIGFsc28gZG9lcyBub3QgY291bnQgdG93YXJkcyB0aGUgdGFyZ2V0CisgICAgbGVuZ3RoLiAgRS5nLiwgYGBncm91cD00YGAgd2lsbCBjYXVzZSBhIGlkZW50aWZpZXIgbGlrZQorICAgIGBgYTVmMy1oZ2szLWFzZGZgYC4gIEdyb3VwaW5nIG9jY3VycyBiZWZvcmUgdGhlIHByZWZpeC4KKyAgICAiIiIKKyAgICBpZiBub3QgY2FsbGFibGUoaGFzaGVyKToKKyAgICAgICAgIyBBY2NlcHQgc2hhL21kNSBtb2R1bGVzIGFzIHdlbGwgYXMgY2FsbGFibGVzCisgICAgICAgIGhhc2hlciA9IGhhc2hlci5uZXcKKyAgICBpZiBsZW5ndGggPiAyNiBhbmQgaGFzaGVyIGlzIG1kNToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICJtZDUgY2Fubm90IGNyZWF0ZSBoYXNoZXMgbG9uZ2VyIHRoYW4gMjYgY2hhcmFjdGVycyBpbiAiCisgICAgICAgICAgICAibGVuZ3RoICh5b3UgZ2F2ZSAlcykiICUgbGVuZ3RoKQorICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LnRleHRfdHlwZSk6CisgICAgICAgIHMgPSBzLmVuY29kZSgndXRmLTgnKQorICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uocywgc2l4LmJpbmFyeV90eXBlKToKKyAgICAgICAgcyA9IHN0cihzKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgcyA9IHMuZW5jb2RlKCd1dGYtOCcpCisgICAgaCA9IGhhc2hlcihzKQorICAgIGJpbl9oYXNoID0gaC5kaWdlc3QoKQorICAgIG1vZHVsbyA9IGJhc2UgKiogbGVuZ3RoCisgICAgbnVtYmVyID0gMAorICAgIGZvciBjIGluIGxpc3QoYmluX2hhc2gpOgorICAgICAgICBudW1iZXIgPSAobnVtYmVyICogMjU2ICsgc2l4LmJ5dGUyaW50KFtjXSkpICUgbW9kdWxvCisgICAgaWRlbnQgPSBtYWtlX2lkZW50aWZpZXIobnVtYmVyKQorICAgIGlmIHBhZDoKKyAgICAgICAgaWRlbnQgPSBnb29kX2NoYXJhY3RlcnNbMF0qKGxlbmd0aC1sZW4oaWRlbnQpKSArIGlkZW50CisgICAgaWYgZ3JvdXA6CisgICAgICAgIHBhcnRzID0gW10KKyAgICAgICAgd2hpbGUgaWRlbnQ6CisgICAgICAgICAgICBwYXJ0cy5pbnNlcnQoMCwgaWRlbnRbLWdyb3VwOl0pCisgICAgICAgICAgICBpZGVudCA9IGlkZW50WzotZ3JvdXBdCisgICAgICAgIGlkZW50ID0gJy0nLmpvaW4ocGFydHMpCisgICAgaWYgdXBwZXI6CisgICAgICAgIGlkZW50ID0gaWRlbnQudXBwZXIoKQorICAgIHJldHVybiBwcmVmaXggKyBpZGVudAorCisjIGRvY3Rlc3QgdGVzdHM6CitfX3Rlc3RfXyA9IHsKKyAgICAnbWFrZV9pZGVudGlmaWVyJzogIiIiCisgICAgPj4+IG1ha2VfaWRlbnRpZmllcigwKQorICAgICcnCisgICAgPj4+IG1ha2VfaWRlbnRpZmllcigxMDAwKQorICAgICdjNTMnCisgICAgPj4+IG1ha2VfaWRlbnRpZmllcigtMTAwKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAgVmFsdWVFcnJvcjogWW91IGNhbm5vdCBtYWtlIGlkZW50aWZpZXJzIG91dCBvZiBuZWdhdGl2ZSBudW1iZXJzOiAtMTAwCisgICAgPj4+IG1ha2VfaWRlbnRpZmllcigndGVzdCcpCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBWYWx1ZUVycm9yOiBZb3UgY2FuIG9ubHkgbWFrZSBpZGVudGlmaWVycyBvdXQgb2YgaW50ZWdlcnMgKG5vdCAndGVzdCcpCisgICAgPj4+IG1ha2VfaWRlbnRpZmllcigxMDAwMDAwMDAwMDAwKQorICAgICdjNTN4OXJxaDMnCisgICAgIiIiLAorICAgICdoYXNoX2lkZW50aWZpZXInOiAiIiIKKyAgICA+Pj4gaGFzaF9pZGVudGlmaWVyKDAsIDUpCisgICAgJ2N5MmRyJworICAgID4+PiBoYXNoX2lkZW50aWZpZXIoMCwgMTApCisgICAgJ2N5MmRyNnJnNDYnCisgICAgPj4+IGhhc2hfaWRlbnRpZmllcigndGhpcyBpcyBhIHRlc3Qgb2YgYSBsb25nIHN0cmluZycsIDUpCisgICAgJ2F3YXR1JworICAgID4+PiBoYXNoX2lkZW50aWZpZXIoMCwgMjYpCisgICAgJ2N5MmRyNnJnNDZjeDh0NHcyZjNuZmV4ems0JworICAgID4+PiBoYXNoX2lkZW50aWZpZXIoMCwgMzApCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBWYWx1ZUVycm9yOiBtZDUgY2Fubm90IGNyZWF0ZSBoYXNoZXMgbG9uZ2VyIHRoYW4gMjYgY2hhcmFjdGVycyBpbiBsZW5ndGggKHlvdSBnYXZlIDMwKQorICAgID4+PiBoYXNoX2lkZW50aWZpZXIoMCwgMTAsIGdyb3VwPTQpCisgICAgJ2N5LTJkcjYtcmc0NicKKyAgICA+Pj4gaGFzaF9pZGVudGlmaWVyKDAsIDEwLCBncm91cD00LCB1cHBlcj1UcnVlLCBwcmVmaXg9J00tJykKKyAgICAnTS1DWS0yRFI2LVJHNDYnCisgICAgIiIifQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGltcG9ydCBkb2N0ZXN0CisgICAgZG9jdGVzdC50ZXN0bW9kKCkKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2ZpbGVhcHAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZmlsZWFwcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTgyODFhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2ZpbGVhcHAucHkKQEAgLTAsMCArMSwzNTYgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcsIENsYXJrIEMuIEV2YW5zIGFuZCBjb250cmlidXRvcnMKKyMgVGhpcyBtb2R1bGUgaXMgcGFydCBvZiB0aGUgUHl0aG9uIFBhc3RlIFByb2plY3QgYW5kIGlzIHJlbGVhc2VkIHVuZGVyCisjIHRoZSBNSVQgTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorVGhpcyBtb2R1bGUgaGFuZGxlcyBzZW5kaW5nIHN0YXRpYyBjb250ZW50IHN1Y2ggYXMgaW4tbWVtb3J5IGRhdGEgb3IKK2ZpbGVzLiAgQXQgdGhpcyB0aW1lIGl0IGhhcyBjYWNoZSBoZWxwZXJzIGFuZCB1bmRlcnN0YW5kcyB0aGUKK2lmLW1vZGlmaWVkLXNpbmNlIHJlcXVlc3QgaGVhZGVyLgorIiIiCisKK2ltcG9ydCBvcywgdGltZSwgbWltZXR5cGVzLCB6aXBmaWxlLCB0YXJmaWxlCitmcm9tIHBhc3RlLmh0dHBleGNlcHRpb25zIGltcG9ydCAqCitmcm9tIHBhc3RlLmh0dHBoZWFkZXJzIGltcG9ydCAqCisKK0NBQ0hFX1NJWkUgPSA0MDk2CitCTE9DS19TSVpFID0gNDA5NiAqIDE2CisKK19fYWxsX18gPSBbJ0RhdGFBcHAnLCAnRmlsZUFwcCcsICdEaXJlY3RvcnlBcHAnLCAnQXJjaGl2ZVN0b3JlJ10KKworY2xhc3MgRGF0YUFwcChvYmplY3QpOgorICAgICIiIgorICAgIFJldHVybnMgYW4gYXBwbGljYXRpb24gdGhhdCB3aWxsIHNlbmQgY29udGVudCBpbiBhIHNpbmdsZSBjaHVuaywKKyAgICB0aGlzIGFwcGxpY2F0aW9uIGhhcyBzdXBwb3J0IGZvciBzZXR0aW5nIGNhY2hlLWNvbnRyb2wgYW5kIGZvcgorICAgIHJlc3BvbmRpbmcgdG8gY29uZGl0aW9uYWwgKG9yIEhFQUQpIHJlcXVlc3RzLgorCisgICAgQ29uc3RydWN0b3IgQXJndW1lbnRzOgorCisgICAgICAgIGBgY29udGVudGBgICAgICB0aGUgY29udGVudCBiZWluZyBzZW50IHRvIHRoZSBjbGllbnQKKworICAgICAgICBgYGhlYWRlcnNgYCAgICAgdGhlIGhlYWRlcnMgdG8gc2VuZCAvdyB0aGUgcmVzcG9uc2UKKworICAgICAgICBUaGUgcmVtYWluaW5nIGBga3dhcmdzYGAgY29ycmVzcG9uZCB0byBoZWFkZXJzLCB3aGVyZSB0aGUKKyAgICAgICAgdW5kZXJzY29yZSBpcyByZXBsYWNlZCB3aXRoIGEgZGFzaC4gIFRoZXNlIHZhbHVlcyBhcmUgb25seQorICAgICAgICBhZGRlZCB0byB0aGUgaGVhZGVycyBpZiB0aGV5IGFyZSBub3QgYWxyZWFkeSBwcm92aWRlZDsgdGh1cywKKyAgICAgICAgdGhleSBjYW4gYmUgdXNlZCBmb3IgZGVmYXVsdCB2YWx1ZXMuICBFeGFtcGxlcyBpbmNsdWRlLCBidXQKKyAgICAgICAgYXJlIG5vdCBsaW1pdGVkIHRvOgorCisgICAgICAgICAgICBgYGNvbnRlbnRfdHlwZWBgCisgICAgICAgICAgICBgYGNvbnRlbnRfZW5jb2RpbmdgYAorICAgICAgICAgICAgYGBjb250ZW50X2xvY2F0aW9uYGAKKworICAgIGBgY2FjaGVfY29udHJvbCgpYGAKKworICAgICAgICBUaGlzIG1ldGhvZCBwcm92aWRlcyB2YWxpZGF0ZWQgY29uc3RydWN0aW9uIG9mIHRoZSBgYENhY2hlLUNvbnRyb2xgYAorICAgICAgICBoZWFkZXIgYXMgd2VsbCBhcyBwcm92aWRpbmcgZm9yIGF1dG9tYXRlZCBmaWxsaW5nIG91dCBvZiB0aGUKKyAgICAgICAgYGBFWFBJUkVTYGAgaGVhZGVyIGZvciBIVFRQLzEuMCBjbGllbnRzLgorCisgICAgYGBzZXRfY29udGVudCgpYGAKKworICAgICAgICBUaGlzIG1ldGhvZCBwcm92aWRlcyBhIG1lY2hhbmlzbSB0byBzZXQgdGhlIGNvbnRlbnQgYWZ0ZXIgdGhlCisgICAgICAgIGFwcGxpY2F0aW9uIGhhcyBiZWVuIGNvbnN0cnVjdGVkLiAgVGhpcyBtZXRob2QgZG9lcyB0aGluZ3MKKyAgICAgICAgbGlrZSBjaGFuZ2luZyBgYExhc3QtTW9kaWZpZWRgYCBhbmQgYGBDb250ZW50LUxlbmd0aGBgIGhlYWRlcnMuCisKKyAgICAiIiIKKworICAgIGFsbG93ZWRfbWV0aG9kcyA9ICgnR0VUJywgJ0hFQUQnKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbnRlbnQsIGhlYWRlcnM9Tm9uZSwgYWxsb3dlZF9tZXRob2RzPU5vbmUsCisgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaGVhZGVycywgKHR5cGUoTm9uZSksIGxpc3QpKQorICAgICAgICBzZWxmLmV4cGlyZXMgPSBOb25lCisgICAgICAgIHNlbGYuY29udGVudCA9IE5vbmUKKyAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCA9IE5vbmUKKyAgICAgICAgc2VsZi5sYXN0X21vZGlmaWVkID0gMAorICAgICAgICBpZiBhbGxvd2VkX21ldGhvZHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmFsbG93ZWRfbWV0aG9kcyA9IGFsbG93ZWRfbWV0aG9kcworICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzIG9yIFtdCisgICAgICAgIGZvciAoaywgdikgaW4ga3dhcmdzLml0ZW1zKCk6CisgICAgICAgICAgICBoZWFkZXIgPSBnZXRfaGVhZGVyKGspCisgICAgICAgICAgICBoZWFkZXIudXBkYXRlKHNlbGYuaGVhZGVycywgdikKKyAgICAgICAgQUNDRVBUX1JBTkdFUy51cGRhdGUoc2VsZi5oZWFkZXJzLCBieXRlcz1UcnVlKQorICAgICAgICBpZiBub3QgQ09OVEVOVF9UWVBFKHNlbGYuaGVhZGVycyk6CisgICAgICAgICAgICBDT05URU5UX1RZUEUudXBkYXRlKHNlbGYuaGVhZGVycykKKyAgICAgICAgaWYgY29udGVudCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuc2V0X2NvbnRlbnQoY29udGVudCkKKworICAgIGRlZiBjYWNoZV9jb250cm9sKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5leHBpcmVzID0gQ0FDSEVfQ09OVFJPTC5hcHBseShzZWxmLmhlYWRlcnMsICoqa3dhcmdzKSBvciBOb25lCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgc2V0X2NvbnRlbnQoc2VsZiwgY29udGVudCwgbGFzdF9tb2RpZmllZD1Ob25lKToKKyAgICAgICAgYXNzZXJ0IGNvbnRlbnQgaXMgbm90IE5vbmUKKyAgICAgICAgaWYgbGFzdF9tb2RpZmllZCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5sYXN0X21vZGlmaWVkID0gdGltZS50aW1lKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYubGFzdF9tb2RpZmllZCA9IGxhc3RfbW9kaWZpZWQKKyAgICAgICAgc2VsZi5jb250ZW50ID0gY29udGVudAorICAgICAgICBzZWxmLmNvbnRlbnRfbGVuZ3RoID0gbGVuKGNvbnRlbnQpCisgICAgICAgIExBU1RfTU9ESUZJRUQudXBkYXRlKHNlbGYuaGVhZGVycywgdGltZT1zZWxmLmxhc3RfbW9kaWZpZWQpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgY29udGVudF9kaXNwb3NpdGlvbihzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIENPTlRFTlRfRElTUE9TSVRJT04uYXBwbHkoc2VsZi5oZWFkZXJzLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIG1ldGhvZCA9IGVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10udXBwZXIoKQorICAgICAgICBpZiBtZXRob2Qgbm90IGluIHNlbGYuYWxsb3dlZF9tZXRob2RzOgorICAgICAgICAgICAgZXhjID0gSFRUUE1ldGhvZE5vdEFsbG93ZWQoCisgICAgICAgICAgICAgICAgJ1lvdSBjYW5ub3QgJXMgYSBmaWxlJyAlIG1ldGhvZCwKKyAgICAgICAgICAgICAgICBoZWFkZXJzPVsoJ0FsbG93JywgJywnLmpvaW4oc2VsZi5hbGxvd2VkX21ldGhvZHMpKV0pCisgICAgICAgICAgICByZXR1cm4gZXhjKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICByZXR1cm4gc2VsZi5nZXQoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgY2FsY3VsYXRlX2V0YWcoc2VsZik6CisgICAgICAgIHJldHVybiAnIiVzLSVzIicgJSAoc2VsZi5sYXN0X21vZGlmaWVkLCBzZWxmLmNvbnRlbnRfbGVuZ3RoKQorCisgICAgZGVmIGdldChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGhlYWRlcnMgPSBzZWxmLmhlYWRlcnNbOl0KKyAgICAgICAgY3VycmVudF9ldGFnID0gc2VsZi5jYWxjdWxhdGVfZXRhZygpCisgICAgICAgIEVUQUcudXBkYXRlKGhlYWRlcnMsIGN1cnJlbnRfZXRhZykKKyAgICAgICAgaWYgc2VsZi5leHBpcmVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgRVhQSVJFUy51cGRhdGUoaGVhZGVycywgZGVsdGE9c2VsZi5leHBpcmVzKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNsaWVudF9ldGFncyA9IElGX05PTkVfTUFUQ0gucGFyc2UoZW52aXJvbikKKyAgICAgICAgICAgIGlmIGNsaWVudF9ldGFnczoKKyAgICAgICAgICAgICAgICBmb3IgZXRhZyBpbiBjbGllbnRfZXRhZ3M6CisgICAgICAgICAgICAgICAgICAgIGlmIGV0YWcgPT0gY3VycmVudF9ldGFnIG9yIGV0YWcgPT0gJyonOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBob3JyaWJseSBpbmVmZmljaWVudCwgbl4yIHBlcmZvcm1hbmNlLCB5dWNrIQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGhlYWQgaW4gbGlzdF9oZWFkZXJzKGVudGl0eT1UcnVlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkLmRlbGV0ZShoZWFkZXJzKQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzMwNCBOb3QgTW9kaWZpZWQnLCBoZWFkZXJzKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtiJyddCisgICAgICAgIGV4Y2VwdCBIVFRQQmFkUmVxdWVzdCBhcyBleGNlOgorICAgICAgICAgICAgcmV0dXJuIGV4Y2Uud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgICAgICAjIElmIHdlIGdldCBJZi1Ob25lLU1hdGNoIGFuZCBJZi1Nb2RpZmllZC1TaW5jZSwgYW5kCisgICAgICAgICMgSWYtTm9uZS1NYXRjaCBkb2Vzbid0IG1hdGNoLCB0aGVuIHdlIHNob3VsZCBub3QgdHJ5IHRvCisgICAgICAgICMgZmlndXJlIG91dCBJZi1Nb2RpZmllZC1TaW5jZSAod2hpY2ggaGFzIDEtc2Vjb25kIGdyYW51bGFyaXR5CisgICAgICAgICMgYW5kIGp1c3QgaXNuJ3QgYXMgYWNjdXJhdGUpCisgICAgICAgIGlmIG5vdCBjbGllbnRfZXRhZ3M6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgY2xpZW50X2Nsb2NrID0gSUZfTU9ESUZJRURfU0lOQ0UucGFyc2UoZW52aXJvbikKKyAgICAgICAgICAgICAgICBpZiAoY2xpZW50X2Nsb2NrIGlzIG5vdCBOb25lCisgICAgICAgICAgICAgICAgICAgIGFuZCBjbGllbnRfY2xvY2sgPj0gaW50KHNlbGYubGFzdF9tb2RpZmllZCkpOgorICAgICAgICAgICAgICAgICAgICAjIGhvcnJpYmx5IGluZWZmaWNpZW50LCBuXjIgcGVyZm9ybWFuY2UsIHl1Y2shCisgICAgICAgICAgICAgICAgICAgIGZvciBoZWFkIGluIGxpc3RfaGVhZGVycyhlbnRpdHk9VHJ1ZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBoZWFkLmRlbGV0ZShoZWFkZXJzKQorICAgICAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMzA0IE5vdCBNb2RpZmllZCcsIGhlYWRlcnMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBbYicnXSAjIGVtcHR5IGJvZHkKKyAgICAgICAgICAgIGV4Y2VwdCBIVFRQQmFkUmVxdWVzdCBhcyBleGNlOgorICAgICAgICAgICAgICAgIHJldHVybiBleGNlLndzZ2lfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICAgICAgKGxvd2VyLCB1cHBlcikgPSAoMCwgc2VsZi5jb250ZW50X2xlbmd0aCAtIDEpCisgICAgICAgIHJhbmdlID0gUkFOR0UucGFyc2UoZW52aXJvbikKKyAgICAgICAgaWYgcmFuZ2UgYW5kICdieXRlcycgPT0gcmFuZ2VbMF0gYW5kIDEgPT0gbGVuKHJhbmdlWzFdKToKKyAgICAgICAgICAgIChsb3dlciwgdXBwZXIpID0gcmFuZ2VbMV1bMF0KKyAgICAgICAgICAgIHVwcGVyID0gdXBwZXIgb3IgKHNlbGYuY29udGVudF9sZW5ndGggLSAxKQorICAgICAgICAgICAgaWYgdXBwZXIgPj0gc2VsZi5jb250ZW50X2xlbmd0aCBvciBsb3dlciA+IHVwcGVyOgorICAgICAgICAgICAgICAgIHJldHVybiBIVFRQUmVxdWVzdFJhbmdlTm90U2F0aXNmaWFibGUoKAorICAgICAgICAgICAgICAgICAgIlJhbmdlIHJlcXVlc3Qgd2FzIG1hZGUgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQsXHJcbiIKKyAgICAgICAgICAgICAgICAgICJ3aGljaCBpcyAlcyBsb25nLlxyXG4gIFJhbmdlOiAlc1xyXG4iKSAlICgKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29udGVudF9sZW5ndGgsIFJBTkdFKGVudmlyb24pKQorICAgICAgICAgICAgICAgICkud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgICAgICBjb250ZW50X2xlbmd0aCA9IHVwcGVyIC0gbG93ZXIgKyAxCisgICAgICAgIENPTlRFTlRfUkFOR0UudXBkYXRlKGhlYWRlcnMsIGZpcnN0X2J5dGU9bG93ZXIsIGxhc3RfYnl0ZT11cHBlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9sZW5ndGggPSBzZWxmLmNvbnRlbnRfbGVuZ3RoKQorICAgICAgICBDT05URU5UX0xFTkdUSC51cGRhdGUoaGVhZGVycywgY29udGVudF9sZW5ndGgpCisgICAgICAgIGlmIHJhbmdlIG9yIGNvbnRlbnRfbGVuZ3RoICE9IHNlbGYuY29udGVudF9sZW5ndGg6CisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMjA2IFBhcnRpYWwgQ29udGVudCcsIGhlYWRlcnMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgaGVhZGVycykKKyAgICAgICAgaWYgc2VsZi5jb250ZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIFtzZWxmLmNvbnRlbnRbbG93ZXI6dXBwZXIrMV1dCisgICAgICAgIHJldHVybiAobG93ZXIsIGNvbnRlbnRfbGVuZ3RoKQorCitjbGFzcyBGaWxlQXBwKERhdGFBcHApOgorICAgICIiIgorICAgIFJldHVybnMgYW4gYXBwbGljYXRpb24gdGhhdCB3aWxsIHNlbmQgdGhlIGZpbGUgYXQgdGhlIGdpdmVuCisgICAgZmlsZW5hbWUuICBBZGRzIGEgbWltZSB0eXBlIGJhc2VkIG9uIGBgbWltZXR5cGVzLmd1ZXNzX3R5cGUoKWBgLgorICAgIFNlZSBEYXRhQXBwIGZvciB0aGUgYXJndW1lbnRzIGJleW9uZCBgYGZpbGVuYW1lYGAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIGhlYWRlcnM9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKyAgICAgICAgY29udGVudF90eXBlLCBjb250ZW50X2VuY29kaW5nID0gc2VsZi5ndWVzc190eXBlKCkKKyAgICAgICAgaWYgY29udGVudF90eXBlIGFuZCAnY29udGVudF90eXBlJyBub3QgaW4ga3dhcmdzOgorICAgICAgICAgICAga3dhcmdzWydjb250ZW50X3R5cGUnXSA9IGNvbnRlbnRfdHlwZQorICAgICAgICBpZiBjb250ZW50X2VuY29kaW5nIGFuZCAnY29udGVudF9lbmNvZGluZycgbm90IGluIGt3YXJnczoKKyAgICAgICAgICAgIGt3YXJnc1snY29udGVudF9lbmNvZGluZyddID0gY29udGVudF9lbmNvZGluZworICAgICAgICBEYXRhQXBwLl9faW5pdF9fKHNlbGYsIE5vbmUsIGhlYWRlcnMsICoqa3dhcmdzKQorCisgICAgZGVmIGd1ZXNzX3R5cGUoc2VsZik6CisgICAgICAgIHJldHVybiBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShzZWxmLmZpbGVuYW1lKQorCisgICAgZGVmIHVwZGF0ZShzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHN0YXQgPSBvcy5zdGF0KHNlbGYuZmlsZW5hbWUpCisgICAgICAgIGlmIG5vdCBmb3JjZSBhbmQgc3RhdC5zdF9tdGltZSA9PSBzZWxmLmxhc3RfbW9kaWZpZWQ6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi5sYXN0X21vZGlmaWVkID0gc3RhdC5zdF9tdGltZQorICAgICAgICBpZiBzdGF0LnN0X3NpemUgPCBDQUNIRV9TSVpFOgorICAgICAgICAgICAgZmggPSBvcGVuKHNlbGYuZmlsZW5hbWUsInJiIikKKyAgICAgICAgICAgIHNlbGYuc2V0X2NvbnRlbnQoZmgucmVhZCgpLCBzdGF0LnN0X210aW1lKQorICAgICAgICAgICAgZmguY2xvc2UoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5jb250ZW50ID0gTm9uZQorICAgICAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCA9IHN0YXQuc3Rfc2l6ZQorICAgICAgICAgICAgIyBUaGlzIGlzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBpZiBzZWxmLnNldF9jb250ZW50KCkgaXMKKyAgICAgICAgICAgICMgY2FsbGVkCisgICAgICAgICAgICBMQVNUX01PRElGSUVELnVwZGF0ZShzZWxmLmhlYWRlcnMsIHRpbWU9c2VsZi5sYXN0X21vZGlmaWVkKQorCisgICAgZGVmIGdldChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGlzX2hlYWQgPSBlbnZpcm9uWydSRVFVRVNUX01FVEhPRCddLnVwcGVyKCkgPT0gJ0hFQUQnCisgICAgICAgIGlmICdtYXgtYWdlPTAnIGluIENBQ0hFX0NPTlRST0woZW52aXJvbikubG93ZXIoKToKKyAgICAgICAgICAgIHNlbGYudXBkYXRlKGZvcmNlPVRydWUpICMgUkZDIDI2MTYgMTMuMi42CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnVwZGF0ZSgpCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbnRlbnQ6CisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5maWxlbmFtZSk6CisgICAgICAgICAgICAgICAgZXhjID0gSFRUUE5vdEZvdW5kKAorICAgICAgICAgICAgICAgICAgICAnVGhlIHJlc291cmNlIGRvZXMgbm90IGV4aXN0JywKKyAgICAgICAgICAgICAgICAgICAgY29tbWVudD0iTm8gZmlsZSBhdCAlciIgJSBzZWxmLmZpbGVuYW1lKQorICAgICAgICAgICAgICAgIHJldHVybiBleGMoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmlsZSA9IG9wZW4oc2VsZi5maWxlbmFtZSwgJ3JiJykKKyAgICAgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgT1NFcnJvcikgYXMgZToKKyAgICAgICAgICAgICAgICBleGMgPSBIVFRQRm9yYmlkZGVuKAorICAgICAgICAgICAgICAgICAgICAnWW91IGFyZSBub3QgcGVybWl0dGVkIHRvIHZpZXcgdGhpcyBmaWxlICglcyknICUgZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhjLndzZ2lfYXBwbGljYXRpb24oCisgICAgICAgICAgICAgICAgICAgIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICByZXR2YWwgPSBEYXRhQXBwLmdldChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShyZXR2YWwsIGxpc3QpOgorICAgICAgICAgICAgIyBjYWNoZWQgY29udGVudCwgZXhjZXB0aW9uLCBvciBub3QtbW9kaWZpZWQKKyAgICAgICAgICAgIGlmIGlzX2hlYWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFtiJyddCisgICAgICAgICAgICByZXR1cm4gcmV0dmFsCisgICAgICAgIChsb3dlciwgY29udGVudF9sZW5ndGgpID0gcmV0dmFsCisgICAgICAgIGlmIGlzX2hlYWQ6CisgICAgICAgICAgICByZXR1cm4gW2InJ10KKyAgICAgICAgZmlsZS5zZWVrKGxvd2VyKQorICAgICAgICBmaWxlX3dyYXBwZXIgPSBlbnZpcm9uLmdldCgnd3NnaS5maWxlX3dyYXBwZXInLCBOb25lKQorICAgICAgICBpZiBmaWxlX3dyYXBwZXI6CisgICAgICAgICAgICByZXR1cm4gZmlsZV93cmFwcGVyKGZpbGUsIEJMT0NLX1NJWkUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gX0ZpbGVJdGVyKGZpbGUsIHNpemU9Y29udGVudF9sZW5ndGgpCisKK2NsYXNzIF9GaWxlSXRlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGUsIGJsb2NrX3NpemU9Tm9uZSwgc2l6ZT1Ob25lKToKKyAgICAgICAgc2VsZi5maWxlID0gZmlsZQorICAgICAgICBzZWxmLnNpemUgPSBzaXplCisgICAgICAgIHNlbGYuYmxvY2tfc2l6ZSA9IGJsb2NrX3NpemUgb3IgQkxPQ0tfU0laRQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIGNodW5rX3NpemUgPSBzZWxmLmJsb2NrX3NpemUKKyAgICAgICAgaWYgc2VsZi5zaXplIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgY2h1bmtfc2l6ZSA+IHNlbGYuc2l6ZToKKyAgICAgICAgICAgICAgICBjaHVua19zaXplID0gc2VsZi5zaXplCisgICAgICAgICAgICBzZWxmLnNpemUgLT0gY2h1bmtfc2l6ZQorICAgICAgICBkYXRhID0gc2VsZi5maWxlLnJlYWQoY2h1bmtfc2l6ZSkKKyAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisgICAgICAgIHJldHVybiBkYXRhCisgICAgX19uZXh0X18gPSBuZXh0CisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIHNlbGYuZmlsZS5jbG9zZSgpCisKKworY2xhc3MgRGlyZWN0b3J5QXBwKG9iamVjdCk6CisgICAgIiIiCisgICAgUmV0dXJucyBhbiBhcHBsaWNhdGlvbiB0aGF0IGRpc3BhdGNoZXMgcmVxdWVzdHMgdG8gY29ycmVzcG9uZGluZyBGaWxlQXBwcyBiYXNlZCBvbiBQQVRIX0lORk8uCisgICAgRmlsZUFwcCBpbnN0YW5jZXMgYXJlIGNhY2hlZC4gVGhpcyBhcHAgbWFrZXMgc3VyZSBub3QgdG8gc2VydmUgYW55IGZpbGVzIHRoYXQgYXJlIG5vdCBpbiBhIHN1YmRpcmVjdG9yeS4KKyAgICBUbyBjdXN0b21pemUgRmlsZUFwcCBjcmVhdGlvbiBvdmVycmlkZSBgYERpcmVjdG9yeUFwcC5tYWtlX2ZpbGVhcHBgYAorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgorICAgICAgICBzZWxmLnBhdGggPSBvcy5wYXRoLmFic3BhdGgocGF0aCkKKyAgICAgICAgaWYgbm90IHNlbGYucGF0aC5lbmRzd2l0aChvcy5wYXRoLnNlcCk6CisgICAgICAgICAgICBzZWxmLnBhdGggKz0gb3MucGF0aC5zZXAKKyAgICAgICAgYXNzZXJ0IG9zLnBhdGguaXNkaXIoc2VsZi5wYXRoKQorICAgICAgICBzZWxmLmNhY2hlZF9hcHBzID0ge30KKworICAgIG1ha2VfZmlsZWFwcCA9IEZpbGVBcHAKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHBhdGhfaW5mbyA9IGVudmlyb25bJ1BBVEhfSU5GTyddCisgICAgICAgIGFwcCA9IHNlbGYuY2FjaGVkX2FwcHMuZ2V0KHBhdGhfaW5mbykKKyAgICAgICAgaWYgYXBwIGlzIE5vbmU6CisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNlbGYucGF0aCwgcGF0aF9pbmZvLmxzdHJpcCgnLycpKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGgubm9ybXBhdGgocGF0aCkuc3RhcnRzd2l0aChzZWxmLnBhdGgpOgorICAgICAgICAgICAgICAgIGFwcCA9IEhUVFBGb3JiaWRkZW4oKQorICAgICAgICAgICAgZWxpZiBvcy5wYXRoLmlzZmlsZShwYXRoKToKKyAgICAgICAgICAgICAgICBhcHAgPSBzZWxmLm1ha2VfZmlsZWFwcChwYXRoKQorICAgICAgICAgICAgICAgIHNlbGYuY2FjaGVkX2FwcHNbcGF0aF9pbmZvXSA9IGFwcAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhcHAgPSBIVFRQTm90Rm91bmQoY29tbWVudD1wYXRoKQorICAgICAgICByZXR1cm4gYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisKK2NsYXNzIEFyY2hpdmVTdG9yZShvYmplY3QpOgorICAgICIiIgorICAgIFJldHVybnMgYW4gYXBwbGljYXRpb24gdGhhdCBzZXJ2ZXMgdXAgYSBEYXRhQXBwIGZvciBpdGVtcyByZXF1ZXN0ZWQKKyAgICBpbiBhIGdpdmVuIHppcCBvciB0YXIgYXJjaGl2ZS4KKworICAgIENvbnN0cnVjdG9yIEFyZ3VtZW50czoKKworICAgICAgICBgYGZpbGVwYXRoYGAgICAgdGhlIHBhdGggdG8gdGhlIGFyY2hpdmUgYmVpbmcgc2VydmVkCisKKyAgICBgYGNhY2hlX2NvbnRyb2woKWBgCisKKyAgICAgICAgVGhpcyBtZXRob2QgcHJvdmlkZXMgdmFsaWRhdGVkIGNvbnN0cnVjdGlvbiBvZiB0aGUgYGBDYWNoZS1Db250cm9sYGAKKyAgICAgICAgaGVhZGVyIGFzIHdlbGwgYXMgcHJvdmlkaW5nIGZvciBhdXRvbWF0ZWQgZmlsbGluZyBvdXQgb2YgdGhlCisgICAgICAgIGBgRVhQSVJFU2BgIGhlYWRlciBmb3IgSFRUUC8xLjAgY2xpZW50cy4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlcGF0aCk6CisgICAgICAgIGlmIHppcGZpbGUuaXNfemlwZmlsZShmaWxlcGF0aCk6CisgICAgICAgICAgICBzZWxmLmFyY2hpdmUgPSB6aXBmaWxlLlppcEZpbGUoZmlsZXBhdGgsInIiKQorICAgICAgICBlbGlmIHRhcmZpbGUuaXNfdGFyZmlsZShmaWxlcGF0aCk6CisgICAgICAgICAgICBzZWxmLmFyY2hpdmUgPSB0YXJmaWxlLlRhckZpbGVDb21wYXQoZmlsZXBhdGgsInIiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoImZpbGVwYXRoICclcycgaXMgbm90IGEgemlwIG9yIHRhciAiICUgZmlsZXBhdGgpCisgICAgICAgIHNlbGYuZXhwaXJlcyA9IE5vbmUKKyAgICAgICAgc2VsZi5sYXN0X21vZGlmaWVkID0gdGltZS50aW1lKCkKKyAgICAgICAgc2VsZi5jYWNoZSA9IHt9CisKKyAgICBkZWYgY2FjaGVfY29udHJvbChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuZXhwaXJlcyA9IENBQ0hFX0NPTlRST0wuYXBwbHkoc2VsZi5oZWFkZXJzLCAqKmt3YXJncykgb3IgTm9uZQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgcGF0aCA9IGVudmlyb24uZ2V0KCJQQVRIX0lORk8iLCIiKQorICAgICAgICBpZiBwYXRoLnN0YXJ0c3dpdGgoIi8iKToKKyAgICAgICAgICAgIHBhdGggPSBwYXRoWzE6XQorICAgICAgICBhcHBsaWNhdGlvbiA9IHNlbGYuY2FjaGUuZ2V0KHBhdGgpCisgICAgICAgIGlmIGFwcGxpY2F0aW9uOgorICAgICAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbmZvID0gc2VsZi5hcmNoaXZlLmdldGluZm8ocGF0aCkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgZXhjID0gSFRUUE5vdEZvdW5kKCJUaGUgZmlsZSByZXF1ZXN0ZWQsICclcycsIHdhcyBub3QgZm91bmQuIiAlIHBhdGgpCisgICAgICAgICAgICByZXR1cm4gZXhjLndzZ2lfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGlmIGluZm8uZmlsZW5hbWUuZW5kc3dpdGgoIi8iKToKKyAgICAgICAgICAgIGV4YyA9IEhUVFBOb3RGb3VuZCgiUGF0aCByZXF1ZXN0ZWQsICclcycsIGlzIG5vdCBhIGZpbGUuIiAlIHBhdGgpCisgICAgICAgICAgICByZXR1cm4gZXhjLndzZ2lfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGNvbnRlbnRfdHlwZSwgY29udGVudF9lbmNvZGluZyA9IG1pbWV0eXBlcy5ndWVzc190eXBlKGluZm8uZmlsZW5hbWUpCisgICAgICAgICMgJ05vbmUnIGlzIG5vdCBhIHZhbGlkIGNvbnRlbnQtZW5jb2RpbmcsIHNvIGRvbid0IHNldCB0aGUgaGVhZGVyIGlmCisgICAgICAgICMgbWltZXR5cGVzLmd1ZXNzX3R5cGUgcmV0dXJucyBOb25lCisgICAgICAgIGlmIGNvbnRlbnRfZW5jb2RpbmcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhcHAgPSBEYXRhQXBwKE5vbmUsIGNvbnRlbnRfdHlwZSA9IGNvbnRlbnRfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF9lbmNvZGluZyA9IGNvbnRlbnRfZW5jb2RpbmcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcHAgPSBEYXRhQXBwKE5vbmUsIGNvbnRlbnRfdHlwZSA9IGNvbnRlbnRfdHlwZSkKKyAgICAgICAgYXBwLnNldF9jb250ZW50KHNlbGYuYXJjaGl2ZS5yZWFkKHBhdGgpLAorICAgICAgICAgICAgICAgIHRpbWUubWt0aW1lKGluZm8uZGF0ZV90aW1lICsgKDAsMCwwKSkpCisgICAgICAgIHNlbGYuY2FjaGVbcGF0aF0gPSBhcHAKKyAgICAgICAgYXBwLmV4cGlyZXMgPSBzZWxmLmV4cGlyZXMKKyAgICAgICAgcmV0dXJuIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2ZpeHR1cmUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZml4dHVyZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjFjNzVkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2ZpeHR1cmUucHkKQEAgLTAsMCArMSwxNzU1IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK1JvdXRpbmVzIGZvciB0ZXN0aW5nIFdTR0kgYXBwbGljYXRpb25zLgorCitNb3N0IGludGVyZXN0aW5nIGlzIHRoZSBgVGVzdEFwcCA8Y2xhc3MtcGFzdGUuZml4dHVyZS5UZXN0QXBwLmh0bWw+YF8KK2ZvciB0ZXN0aW5nIFdTR0kgYXBwbGljYXRpb25zLCBhbmQgdGhlIGBUZXN0RmlsZUVudmlyb25tZW50Cis8Y2xhc3MtcGFzdGUuZml4dHVyZS5UZXN0RmlsZUVudmlyb25tZW50Lmh0bWw+YF8gY2xhc3MgZm9yIHRlc3RpbmcgdGhlCitlZmZlY3RzIG9mIGNvbW1hbmQtbGluZSBzY3JpcHRzLgorIiIiCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHN5cworaW1wb3J0IHJhbmRvbQoraW1wb3J0IG1pbWV0eXBlcworaW1wb3J0IHRpbWUKK2ltcG9ydCBvcworaW1wb3J0IHNodXRpbAoraW1wb3J0IHNtdHBsaWIKK2ltcG9ydCBzaGxleAoraW1wb3J0IHJlCitpbXBvcnQgc2l4CitpbXBvcnQgc3VicHJvY2VzcworZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJpbmdJTworZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYiBpbXBvcnQgcGFyc2UgYXMgdXJscGFyc2UKK3RyeToKKyAgICAjIFB5dGhvbiAzCisgICAgZnJvbSBodHRwLmNvb2tpZXMgaW1wb3J0IEJhc2VDb29raWUKKyAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgc3BsaXR0eXBlLCBzcGxpdGhvc3QKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFB5dGhvbiAyCisgICAgZnJvbSBDb29raWUgaW1wb3J0IEJhc2VDb29raWUKKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgc3BsaXR0eXBlLCBzcGxpdGhvc3QKKworZnJvbSBwYXN0ZSBpbXBvcnQgd3NnaWxpYgorZnJvbSBwYXN0ZSBpbXBvcnQgbGludAorZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgSGVhZGVyRGljdAorCitkZWYgdGVtcG5hbV9ub193YXJuaW5nKCphcmdzKToKKyAgICAiIiIKKyAgICBBbiBvcy50ZW1wbmFtIHdpdGggdGhlIHdhcm5pbmcgdHVybmVkIG9mZiwgYmVjYXVzZSBzb21ldGltZXMKKyAgICB5b3UganVzdCBuZWVkIHRvIHVzZSB0aGlzIGFuZCBkb24ndCBjYXJlIGFib3V0IHRoZSBzdHVwaWQKKyAgICBzZWN1cml0eSB3YXJuaW5nLgorICAgICIiIgorICAgIHJldHVybiBvcy50ZW1wbmFtKCphcmdzKQorCitjbGFzcyBOb0RlZmF1bHQob2JqZWN0KToKKyAgICBwYXNzCisKK2RlZiBzb3J0ZWQobCk6CisgICAgbCA9IGxpc3QobCkKKyAgICBsLnNvcnQoKQorICAgIHJldHVybiBsCisKK2NsYXNzIER1bW15X3NtdHBsaWIob2JqZWN0KToKKworICAgIGV4aXN0aW5nID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcnZlcik6CisgICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgJ0R1bW15X3NtdHBsaWIgaXMgbm90IG1haW50YWluZWQgYW5kIGlzIGRlcHJlY2F0ZWQnLAorICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICBhc3NlcnQgbm90IHNlbGYuZXhpc3RpbmcsICgKKyAgICAgICAgICAgICJzbXRwbGliLlNNVFAoKSBjYWxsZWQgYWdhaW4gYmVmb3JlIER1bW15X3NtdHBsaWIuZXhpc3RpbmcucmVzZXQoKSAiCisgICAgICAgICAgICAiY2FsbGVkLiIpCisgICAgICAgIHNlbGYuc2VydmVyID0gc2VydmVyCisgICAgICAgIHNlbGYub3BlbiA9IFRydWUKKyAgICAgICAgc2VsZi5fX2NsYXNzX18uZXhpc3RpbmcgPSBzZWxmCisKKyAgICBkZWYgcXVpdChzZWxmKToKKyAgICAgICAgYXNzZXJ0IHNlbGYub3BlbiwgKAorICAgICAgICAgICAgIkNhbGxlZCAlcy5xdWl0KCkgdHdpY2UiICUgc2VsZikKKyAgICAgICAgc2VsZi5vcGVuID0gRmFsc2UKKworICAgIGRlZiBzZW5kbWFpbChzZWxmLCBmcm9tX2FkZHJlc3MsIHRvX2FkZHJlc3NlcywgbXNnKToKKyAgICAgICAgc2VsZi5mcm9tX2FkZHJlc3MgPSBmcm9tX2FkZHJlc3MKKyAgICAgICAgc2VsZi50b19hZGRyZXNzZXMgPSB0b19hZGRyZXNzZXMKKyAgICAgICAgc2VsZi5tZXNzYWdlID0gbXNnCisKKyAgICBkZWYgaW5zdGFsbChjbHMpOgorICAgICAgICBzbXRwbGliLlNNVFAgPSBjbHMKKworICAgIGluc3RhbGwgPSBjbGFzc21ldGhvZChpbnN0YWxsKQorCisgICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAgICBhc3NlcnQgbm90IHNlbGYub3BlbiwgKAorICAgICAgICAgICAgIlNNVFAgY29ubmVjdGlvbiBub3QgcXVpdCIpCisgICAgICAgIHNlbGYuX19jbGFzc19fLmV4aXN0aW5nID0gTm9uZQorCitjbGFzcyBBcHBFcnJvcihFeGNlcHRpb24pOgorICAgIHBhc3MKKworY2xhc3MgVGVzdEFwcChvYmplY3QpOgorCisgICAgIyBmb3IgcHkudGVzdAorICAgIGRpc2FibGVkID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgbmFtZXNwYWNlPU5vbmUsIHJlbGF0aXZlX3RvPU5vbmUsCisgICAgICAgICAgICAgICAgIGV4dHJhX2Vudmlyb249Tm9uZSwgcHJlX3JlcXVlc3RfaG9vaz1Ob25lLAorICAgICAgICAgICAgICAgICBwb3N0X3JlcXVlc3RfaG9vaz1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFdyYXBzIGEgV1NHSSBhcHBsaWNhdGlvbiBpbiBhIG1vcmUgY29udmVuaWVudCBpbnRlcmZhY2UgZm9yCisgICAgICAgIHRlc3RpbmcuCisKKyAgICAgICAgYGBhcHBgYCBtYXkgYmUgYW4gYXBwbGljYXRpb24sIG9yIGEgUGFzdGUgRGVwbG95IGFwcAorICAgICAgICBVUkksIGxpa2UgYGAnY29uZmlnOmZpbGVuYW1lLmluaSN0ZXN0J2BgLgorCisgICAgICAgIGBgbmFtZXNwYWNlYGAgaXMgYSBkaWN0aW9uYXJ5IHRoYXQgd2lsbCBiZSB3cml0dGVuIHRvIChpZgorICAgICAgICBwcm92aWRlZCkuICBUaGlzIGNhbiBiZSB1c2VkIHdpdGggZG9jdGVzdCBvciBzb21lIG90aGVyCisgICAgICAgIHN5c3RlbSwgYW5kIHRoZSB2YXJpYWJsZSBgYHJlc2BgIHdpbGwgYmUgYXNzaWduZWQgZXZlcnl0aW1lCisgICAgICAgIHlvdSBtYWtlIGEgcmVxdWVzdCAoaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlIHJlcXVlc3QpLgorCisgICAgICAgIGBgcmVsYXRpdmVfdG9gYCBpcyBhIGRpcmVjdG9yeSwgYW5kIGZpbGVuYW1lcyB1c2VkIGZvciBmaWxlCisgICAgICAgIHVwbG9hZHMgYXJlIGNhbGN1bGF0ZWQgcmVsYXRpdmUgdG8gdGhpcy4gIEFsc28gYGBjb25maWc6YGAKKyAgICAgICAgVVJJcyB0aGF0IGFyZW4ndCBhYnNvbHV0ZS4KKworICAgICAgICBgYGV4dHJhX2Vudmlyb25gYCBpcyBhIGRpY3Rpb25hcnkgb2YgdmFsdWVzIHRoYXQgc2hvdWxkIGdvCisgICAgICAgIGludG8gdGhlIGVudmlyb25tZW50IGZvciBlYWNoIHJlcXVlc3QuICBUaGVzZSBjYW4gcHJvdmlkZSBhCisgICAgICAgIGNvbW11bmljYXRpb24gY2hhbm5lbCB3aXRoIHRoZSBhcHBsaWNhdGlvbi4KKworICAgICAgICBgYHByZV9yZXF1ZXN0X2hvb2tgYCBpcyBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBwcmlvciB0bworICAgICAgICBtYWtpbmcgcmVxdWVzdHMgKHN1Y2ggYXMgYGBwb3N0YGAgb3IgYGBnZXRgYCkuIFRoaXMgZnVuY3Rpb24KKyAgICAgICAgbXVzdCB0YWtlIG9uZSBhcmd1bWVudCAodGhlIGluc3RhbmNlIG9mIHRoZSBUZXN0QXBwKS4KKworICAgICAgICBgYHBvc3RfcmVxdWVzdF9ob29rYGAgaXMgYSBmdW5jdGlvbiwgc2ltaWxhciB0bworICAgICAgICBgYHByZV9yZXF1ZXN0X2hvb2tgYCwgdG8gYmUgY2FsbGVkIGFmdGVyIHJlcXVlc3RzIGFyZSBtYWRlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShhcHAsIChzaXguYmluYXJ5X3R5cGUsIHNpeC50ZXh0X3R5cGUpKToKKyAgICAgICAgICAgIGZyb20gcGFzdGUuZGVwbG95IGltcG9ydCBsb2FkYXBwCisgICAgICAgICAgICAjIEBAOiBTaG91bGQgcGljayB1cCByZWxhdGl2ZV90byBmcm9tIGNhbGxpbmcgbW9kdWxlJ3MKKyAgICAgICAgICAgICMgX19maWxlX18KKyAgICAgICAgICAgIGFwcCA9IGxvYWRhcHAoYXBwLCByZWxhdGl2ZV90bz1yZWxhdGl2ZV90bykKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5uYW1lc3BhY2UgPSBuYW1lc3BhY2UKKyAgICAgICAgc2VsZi5yZWxhdGl2ZV90byA9IHJlbGF0aXZlX3RvCisgICAgICAgIGlmIGV4dHJhX2Vudmlyb24gaXMgTm9uZToKKyAgICAgICAgICAgIGV4dHJhX2Vudmlyb24gPSB7fQorICAgICAgICBzZWxmLmV4dHJhX2Vudmlyb24gPSBleHRyYV9lbnZpcm9uCisgICAgICAgIHNlbGYucHJlX3JlcXVlc3RfaG9vayA9IHByZV9yZXF1ZXN0X2hvb2sKKyAgICAgICAgc2VsZi5wb3N0X3JlcXVlc3RfaG9vayA9IHBvc3RfcmVxdWVzdF9ob29rCisgICAgICAgIHNlbGYucmVzZXQoKQorCisgICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgYXBwbGljYXRpb247IGN1cnJlbnRseSBqdXN0IGNsZWFycworICAgICAgICBzYXZlZCBjb29raWVzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5jb29raWVzID0ge30KKworICAgIGRlZiBfbWFrZV9lbnZpcm9uKHNlbGYpOgorICAgICAgICBlbnZpcm9uID0gc2VsZi5leHRyYV9lbnZpcm9uLmNvcHkoKQorICAgICAgICBlbnZpcm9uWydwYXN0ZS50aHJvd19lcnJvcnMnXSA9IFRydWUKKyAgICAgICAgcmV0dXJuIGVudmlyb24KKworICAgIGRlZiBnZXQoc2VsZiwgdXJsLCBwYXJhbXM9Tm9uZSwgaGVhZGVycz1Ob25lLCBleHRyYV9lbnZpcm9uPU5vbmUsCisgICAgICAgICAgICBzdGF0dXM9Tm9uZSwgZXhwZWN0X2Vycm9ycz1GYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBHZXQgdGhlIGdpdmVuIHVybCAod2VsbCwgYWN0dWFsbHkgYSBwYXRoIGxpa2UKKyAgICAgICAgYGAnL3BhZ2UuaHRtbCdgYCkuCisKKyAgICAgICAgYGBwYXJhbXNgYDoKKyAgICAgICAgICAgIEEgcXVlcnkgc3RyaW5nLCBvciBhIGRpY3Rpb25hcnkgdGhhdCB3aWxsIGJlIGVuY29kZWQKKyAgICAgICAgICAgIGludG8gYSBxdWVyeSBzdHJpbmcuICBZb3UgbWF5IGFsc28gaW5jbHVkZSBhIHF1ZXJ5CisgICAgICAgICAgICBzdHJpbmcgb24gdGhlIGBgdXJsYGAuCisKKyAgICAgICAgYGBoZWFkZXJzYGA6CisgICAgICAgICAgICBBIGRpY3Rpb25hcnkgb2YgZXh0cmEgaGVhZGVycyB0byBzZW5kLgorCisgICAgICAgIGBgZXh0cmFfZW52aXJvbmBgOgorICAgICAgICAgICAgQSBkaWN0aW9uYXJ5IG9mIGVudmlyb25tZW50YWwgdmFyaWFibGVzIHRoYXQgc2hvdWxkCisgICAgICAgICAgICBiZSBhZGRlZCB0byB0aGUgcmVxdWVzdC4KKworICAgICAgICBgYHN0YXR1c2BgOgorICAgICAgICAgICAgVGhlIGludGVnZXIgc3RhdHVzIGNvZGUgeW91IGV4cGVjdCAoaWYgbm90IDIwMCBvciAzeHgpLgorICAgICAgICAgICAgSWYgeW91IGV4cGVjdCBhIDQwNCByZXNwb25zZSwgZm9yIGluc3RhbmNlLCB5b3UgbXVzdCBnaXZlCisgICAgICAgICAgICBgYHN0YXR1cz00MDRgYCBvciBpdCB3aWxsIGJlIGFuIGVycm9yLiAgWW91IGNhbiBhbHNvIGdpdmUKKyAgICAgICAgICAgIGEgd2lsZGNhcmQsIGxpa2UgYGAnMyonYGAgb3IgYGAnKidgYC4KKworICAgICAgICBgYGV4cGVjdF9lcnJvcnNgYDoKKyAgICAgICAgICAgIElmIHRoaXMgaXMgbm90IHRydWUsIHRoZW4gaWYgYW55dGhpbmcgaXMgd3JpdHRlbiB0bworICAgICAgICAgICAgYGB3c2dpLmVycm9yc2BgIGl0IHdpbGwgYmUgYW4gZXJyb3IuICBJZiBpdCBpcyB0cnVlLCB0aGVuCisgICAgICAgICAgICBub24tMjAwLzN4eCByZXNwb25zZXMgYXJlIGFsc28gb2theS4KKworICAgICAgICBSZXR1cm5zIGEgYHJlc3BvbnNlIG9iamVjdAorICAgICAgICA8Y2xhc3MtcGFzdGUuZml4dHVyZS5UZXN0UmVzcG9uc2UuaHRtbD5gXworICAgICAgICAiIiIKKyAgICAgICAgaWYgZXh0cmFfZW52aXJvbiBpcyBOb25lOgorICAgICAgICAgICAgZXh0cmFfZW52aXJvbiA9IHt9CisgICAgICAgICMgSGlkZSBmcm9tIHB5LnRlc3Q6CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBpZiBwYXJhbXM6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwYXJhbXMsIChzaXguYmluYXJ5X3R5cGUsIHNpeC50ZXh0X3R5cGUpKToKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSB1cmxlbmNvZGUocGFyYW1zLCBkb3NlcT1UcnVlKQorICAgICAgICAgICAgaWYgJz8nIGluIHVybDoKKyAgICAgICAgICAgICAgICB1cmwgKz0gJyYnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHVybCArPSAnPycKKyAgICAgICAgICAgIHVybCArPSBwYXJhbXMKKyAgICAgICAgZW52aXJvbiA9IHNlbGYuX21ha2VfZW52aXJvbigpCisgICAgICAgIHVybCA9IHN0cih1cmwpCisgICAgICAgIGlmICc/JyBpbiB1cmw6CisgICAgICAgICAgICB1cmwsIGVudmlyb25bJ1FVRVJZX1NUUklORyddID0gdXJsLnNwbGl0KCc/JywgMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudmlyb25bJ1FVRVJZX1NUUklORyddID0gJycKKyAgICAgICAgc2VsZi5fc2V0X2hlYWRlcnMoaGVhZGVycywgZW52aXJvbikKKyAgICAgICAgZW52aXJvbi51cGRhdGUoZXh0cmFfZW52aXJvbikKKyAgICAgICAgcmVxID0gVGVzdFJlcXVlc3QodXJsLCBlbnZpcm9uLCBleHBlY3RfZXJyb3JzKQorICAgICAgICByZXR1cm4gc2VsZi5kb19yZXF1ZXN0KHJlcSwgc3RhdHVzPXN0YXR1cykKKworICAgIGRlZiBfZ2VuX3JlcXVlc3Qoc2VsZiwgbWV0aG9kLCB1cmwsIHBhcmFtcz1iJycsIGhlYWRlcnM9Tm9uZSwgZXh0cmFfZW52aXJvbj1Ob25lLAorICAgICAgICAgICAgIHN0YXR1cz1Ob25lLCB1cGxvYWRfZmlsZXM9Tm9uZSwgZXhwZWN0X2Vycm9ycz1GYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBEbyBhIGdlbmVyaWMgcmVxdWVzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGhlYWRlcnMgaXMgTm9uZToKKyAgICAgICAgICAgIGhlYWRlcnMgPSB7fQorICAgICAgICBpZiBleHRyYV9lbnZpcm9uIGlzIE5vbmU6CisgICAgICAgICAgICBleHRyYV9lbnZpcm9uID0ge30KKyAgICAgICAgZW52aXJvbiA9IHNlbGYuX21ha2VfZW52aXJvbigpCisgICAgICAgICMgQEA6IFNob3VsZCB0aGlzIGJlIGFsbCBub24tc3RyaW5ncz8KKyAgICAgICAgaWYgaXNpbnN0YW5jZShwYXJhbXMsIChsaXN0LCB0dXBsZSwgZGljdCkpOgorICAgICAgICAgICAgcGFyYW1zID0gdXJsZW5jb2RlKHBhcmFtcykKKyAgICAgICAgaWYgaGFzYXR0cihwYXJhbXMsICdpdGVtcycpOgorICAgICAgICAgICAgIyBTb21lIG90aGVyIG11bHRpLWRpY3QgbGlrZSBmb3JtYXQKKyAgICAgICAgICAgIHBhcmFtcyA9IHVybGVuY29kZShwYXJhbXMuaXRlbXMoKSkKKyAgICAgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmVuY29kZSgndXRmOCcpCisgICAgICAgIGlmIHVwbG9hZF9maWxlczoKKyAgICAgICAgICAgIHBhcmFtcyA9IHVybHBhcnNlLnBhcnNlX3FzbChwYXJhbXMsIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUpCisgICAgICAgICAgICBjb250ZW50X3R5cGUsIHBhcmFtcyA9IHNlbGYuZW5jb2RlX211bHRpcGFydCgKKyAgICAgICAgICAgICAgICBwYXJhbXMsIHVwbG9hZF9maWxlcykKKyAgICAgICAgICAgIGVudmlyb25bJ0NPTlRFTlRfVFlQRSddID0gY29udGVudF90eXBlCisgICAgICAgIGVsaWYgcGFyYW1zOgorICAgICAgICAgICAgZW52aXJvbi5zZXRkZWZhdWx0KCdDT05URU5UX1RZUEUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykKKyAgICAgICAgaWYgJz8nIGluIHVybDoKKyAgICAgICAgICAgIHVybCwgZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSB1cmwuc3BsaXQoJz8nLCAxKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSAnJworICAgICAgICBlbnZpcm9uWydDT05URU5UX0xFTkdUSCddID0gc3RyKGxlbihwYXJhbXMpKQorICAgICAgICBlbnZpcm9uWydSRVFVRVNUX01FVEhPRCddID0gbWV0aG9kCisgICAgICAgIGVudmlyb25bJ3dzZ2kuaW5wdXQnXSA9IHNpeC5CeXRlc0lPKHBhcmFtcykKKyAgICAgICAgc2VsZi5fc2V0X2hlYWRlcnMoaGVhZGVycywgZW52aXJvbikKKyAgICAgICAgZW52aXJvbi51cGRhdGUoZXh0cmFfZW52aXJvbikKKyAgICAgICAgcmVxID0gVGVzdFJlcXVlc3QodXJsLCBlbnZpcm9uLCBleHBlY3RfZXJyb3JzKQorICAgICAgICByZXR1cm4gc2VsZi5kb19yZXF1ZXN0KHJlcSwgc3RhdHVzPXN0YXR1cykKKworICAgIGRlZiBwb3N0KHNlbGYsIHVybCwgcGFyYW1zPWInJywgaGVhZGVycz1Ob25lLCBleHRyYV9lbnZpcm9uPU5vbmUsCisgICAgICAgICAgICAgc3RhdHVzPU5vbmUsIHVwbG9hZF9maWxlcz1Ob25lLCBleHBlY3RfZXJyb3JzPUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIERvIGEgUE9TVCByZXF1ZXN0LiAgVmVyeSBsaWtlIHRoZSBgYC5nZXQoKWBgIG1ldGhvZC4KKyAgICAgICAgYGBwYXJhbXNgYCBhcmUgcHV0IGluIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LgorCisgICAgICAgIGBgdXBsb2FkX2ZpbGVzYGAgaXMgZm9yIGZpbGUgdXBsb2Fkcy4gIEl0IHNob3VsZCBiZSBhIGxpc3Qgb2YKKyAgICAgICAgYGBbKGZpZWxkbmFtZSwgZmlsZW5hbWUsIGZpbGVfY29udGVudCldYGAuICBZb3UgY2FuIGFsc28gdXNlCisgICAgICAgIGp1c3QgYGBbKGZpZWxkbmFtZSwgZmlsZW5hbWUpXWBgIGFuZCB0aGUgZmlsZSBjb250ZW50IHdpbGwgYmUKKyAgICAgICAgcmVhZCBmcm9tIGRpc2suCisKKyAgICAgICAgUmV0dXJucyBhIGByZXNwb25zZSBvYmplY3QKKyAgICAgICAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuVGVzdFJlc3BvbnNlLmh0bWw+YF8KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9nZW5fcmVxdWVzdCgnUE9TVCcsIHVybCwgcGFyYW1zPXBhcmFtcywgaGVhZGVycz1oZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfZW52aXJvbj1leHRyYV9lbnZpcm9uLHN0YXR1cz1zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRfZmlsZXM9dXBsb2FkX2ZpbGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0X2Vycm9ycz1leHBlY3RfZXJyb3JzKQorCisgICAgZGVmIHB1dChzZWxmLCB1cmwsIHBhcmFtcz1iJycsIGhlYWRlcnM9Tm9uZSwgZXh0cmFfZW52aXJvbj1Ob25lLAorICAgICAgICAgICAgIHN0YXR1cz1Ob25lLCB1cGxvYWRfZmlsZXM9Tm9uZSwgZXhwZWN0X2Vycm9ycz1GYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBEbyBhIFBVVCByZXF1ZXN0LiAgVmVyeSBsaWtlIHRoZSBgYC5nZXQoKWBgIG1ldGhvZC4KKyAgICAgICAgYGBwYXJhbXNgYCBhcmUgcHV0IGluIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LgorCisgICAgICAgIGBgdXBsb2FkX2ZpbGVzYGAgaXMgZm9yIGZpbGUgdXBsb2Fkcy4gIEl0IHNob3VsZCBiZSBhIGxpc3Qgb2YKKyAgICAgICAgYGBbKGZpZWxkbmFtZSwgZmlsZW5hbWUsIGZpbGVfY29udGVudCldYGAuICBZb3UgY2FuIGFsc28gdXNlCisgICAgICAgIGp1c3QgYGBbKGZpZWxkbmFtZSwgZmlsZW5hbWUpXWBgIGFuZCB0aGUgZmlsZSBjb250ZW50IHdpbGwgYmUKKyAgICAgICAgcmVhZCBmcm9tIGRpc2suCisKKyAgICAgICAgUmV0dXJucyBhIGByZXNwb25zZSBvYmplY3QKKyAgICAgICAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuVGVzdFJlc3BvbnNlLmh0bWw+YF8KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9nZW5fcmVxdWVzdCgnUFVUJywgdXJsLCBwYXJhbXM9cGFyYW1zLCBoZWFkZXJzPWhlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9lbnZpcm9uPWV4dHJhX2Vudmlyb24sc3RhdHVzPXN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZF9maWxlcz11cGxvYWRfZmlsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RfZXJyb3JzPWV4cGVjdF9lcnJvcnMpCisKKyAgICBkZWYgZGVsZXRlKHNlbGYsIHVybCwgcGFyYW1zPWInJywgaGVhZGVycz1Ob25lLCBleHRyYV9lbnZpcm9uPU5vbmUsCisgICAgICAgICAgICAgICBzdGF0dXM9Tm9uZSwgZXhwZWN0X2Vycm9ycz1GYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBEbyBhIERFTEVURSByZXF1ZXN0LiAgVmVyeSBsaWtlIHRoZSBgYC5nZXQoKWBgIG1ldGhvZC4KKyAgICAgICAgYGBwYXJhbXNgYCBhcmUgcHV0IGluIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LgorCisgICAgICAgIFJldHVybnMgYSBgcmVzcG9uc2Ugb2JqZWN0CisgICAgICAgIDxjbGFzcy1wYXN0ZS5maXh0dXJlLlRlc3RSZXNwb25zZS5odG1sPmBfCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZ2VuX3JlcXVlc3QoJ0RFTEVURScsIHVybCwgcGFyYW1zPXBhcmFtcywgaGVhZGVycz1oZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfZW52aXJvbj1leHRyYV9lbnZpcm9uLHN0YXR1cz1zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRfZmlsZXM9Tm9uZSwgZXhwZWN0X2Vycm9ycz1leHBlY3RfZXJyb3JzKQorCisKKworCisgICAgZGVmIF9zZXRfaGVhZGVycyhzZWxmLCBoZWFkZXJzLCBlbnZpcm9uKToKKyAgICAgICAgIiIiCisgICAgICAgIFR1cm4gYW55IGhlYWRlcnMgaW50byBlbnZpcm9uIHZhcmlhYmxlcworICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGhlYWRlcnM6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZm9yIGhlYWRlciwgdmFsdWUgaW4gaGVhZGVycy5pdGVtcygpOgorICAgICAgICAgICAgaWYgaGVhZGVyLmxvd2VyKCkgPT0gJ2NvbnRlbnQtdHlwZSc6CisgICAgICAgICAgICAgICAgdmFyID0gJ0NPTlRFTlRfVFlQRScKKyAgICAgICAgICAgIGVsaWYgaGVhZGVyLmxvd2VyKCkgPT0gJ2NvbnRlbnQtbGVuZ3RoJzoKKyAgICAgICAgICAgICAgICB2YXIgPSAnQ09OVEVOVF9MRU5HVEgnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHZhciA9ICdIVFRQXyVzJyAlIGhlYWRlci5yZXBsYWNlKCctJywgJ18nKS51cHBlcigpCisgICAgICAgICAgICBlbnZpcm9uW3Zhcl0gPSB2YWx1ZQorCisgICAgZGVmIGVuY29kZV9tdWx0aXBhcnQoc2VsZiwgcGFyYW1zLCBmaWxlcyk6CisgICAgICAgICIiIgorICAgICAgICBFbmNvZGVzIGEgc2V0IG9mIHBhcmFtZXRlcnMgKHR5cGljYWxseSBhIG5hbWUvdmFsdWUgbGlzdCkgYW5kCisgICAgICAgIGEgc2V0IG9mIGZpbGVzIChhIGxpc3Qgb2YgKG5hbWUsIGZpbGVuYW1lLCBmaWxlX2JvZHkpKSBpbnRvIGEKKyAgICAgICAgdHlwaWNhbCBQT1NUIGJvZHksIHJldHVybmluZyB0aGUgKGNvbnRlbnRfdHlwZSwgYm9keSkuCisgICAgICAgICIiIgorICAgICAgICBib3VuZGFyeSA9ICctLS0tLS0tLS0tYV9Cb1VuRGFSeSVzJCcgJSByYW5kb20ucmFuZG9tKCkKKyAgICAgICAgY29udGVudF90eXBlID0gJ211bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSVzJyAlIGJvdW5kYXJ5CisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBib3VuZGFyeSA9IGJvdW5kYXJ5LmVuY29kZSgnYXNjaWknKQorCisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gcGFyYW1zOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKGInLS0nK2JvdW5kYXJ5KQorICAgICAgICAgICAgbGluZSA9ICdDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9IiVzIicgJSBrZXkKKyAgICAgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChsaW5lKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKGInJykKKyAgICAgICAgICAgIGxpbmUgPSB2YWx1ZQorICAgICAgICAgICAgaWYgc2l4LlBZMyBhbmQgaXNpbnN0YW5jZShsaW5lLCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKGxpbmUpCisgICAgICAgIGZvciBmaWxlX2luZm8gaW4gZmlsZXM6CisgICAgICAgICAgICBrZXksIGZpbGVuYW1lLCB2YWx1ZSA9IHNlbGYuX2dldF9maWxlX2luZm8oZmlsZV9pbmZvKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKGInLS0nK2JvdW5kYXJ5KQorICAgICAgICAgICAgbGluZSA9ICgnQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSIlcyI7IGZpbGVuYW1lPSIlcyInCisgICAgICAgICAgICAgICAgICAgICAgICAgJSAoa2V5LCBmaWxlbmFtZSkpCisgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLmVuY29kZSgndXRmOCcpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQobGluZSkKKyAgICAgICAgICAgIGZjb250ZW50ID0gbWltZXR5cGVzLmd1ZXNzX3R5cGUoZmlsZW5hbWUpWzBdCisgICAgICAgICAgICBsaW5lID0gKCdDb250ZW50LVR5cGU6ICVzJworICAgICAgICAgICAgICAgICAgICAlIChmY29udGVudCBvciAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJykpCisgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLmVuY29kZSgndXRmOCcpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQobGluZSkKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChiJycpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQodmFsdWUpCisgICAgICAgIGxpbmVzLmFwcGVuZChiJy0tJyArIGJvdW5kYXJ5ICsgYictLScpCisgICAgICAgIGxpbmVzLmFwcGVuZChiJycpCisgICAgICAgIGJvZHkgPSBiJ1xyXG4nLmpvaW4obGluZXMpCisgICAgICAgIHJldHVybiBjb250ZW50X3R5cGUsIGJvZHkKKworICAgIGRlZiBfZ2V0X2ZpbGVfaW5mbyhzZWxmLCBmaWxlX2luZm8pOgorICAgICAgICBpZiBsZW4oZmlsZV9pbmZvKSA9PSAyOgorICAgICAgICAgICAgIyBJdCBvbmx5IGhhcyBhIGZpbGVuYW1lCisgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVfaW5mb1sxXQorICAgICAgICAgICAgaWYgc2VsZi5yZWxhdGl2ZV90bzoKKyAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IG9zLnBhdGguam9pbihzZWxmLnJlbGF0aXZlX3RvLCBmaWxlbmFtZSkKKyAgICAgICAgICAgIGYgPSBvcGVuKGZpbGVuYW1lLCAncmInKQorICAgICAgICAgICAgY29udGVudCA9IGYucmVhZCgpCisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgICAgIHJldHVybiAoZmlsZV9pbmZvWzBdLCBmaWxlbmFtZSwgY29udGVudCkKKyAgICAgICAgZWxpZiBsZW4oZmlsZV9pbmZvKSA9PSAzOgorICAgICAgICAgICAgcmV0dXJuIGZpbGVfaW5mbworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAidXBsb2FkX2ZpbGVzIG5lZWQgdG8gYmUgYSBsaXN0IG9mIHR1cGxlcyBvZiAoZmllbGRuYW1lLCAiCisgICAgICAgICAgICAgICAgImZpbGVuYW1lLCBmaWxlY29udGVudCkgb3IgKGZpZWxkbmFtZSwgZmlsZW5hbWUpOyAiCisgICAgICAgICAgICAgICAgInlvdSBnYXZlOiAlciIKKyAgICAgICAgICAgICAgICAlIHJlcHIoZmlsZV9pbmZvKVs6MTAwXSkKKworICAgIGRlZiBkb19yZXF1ZXN0KHNlbGYsIHJlcSwgc3RhdHVzKToKKyAgICAgICAgIiIiCisgICAgICAgIEV4ZWN1dGVzIHRoZSBnaXZlbiByZXF1ZXN0IChgYHJlcWBgKSwgd2l0aCB0aGUgZXhwZWN0ZWQKKyAgICAgICAgYGBzdGF0dXNgYC4gIEdlbmVyYWxseSBgYC5nZXQoKWBgIGFuZCBgYC5wb3N0KClgYCBhcmUgdXNlZAorICAgICAgICBpbnN0ZWFkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5wcmVfcmVxdWVzdF9ob29rOgorICAgICAgICAgICAgc2VsZi5wcmVfcmVxdWVzdF9ob29rKHNlbGYpCisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBpZiBzZWxmLmNvb2tpZXM6CisgICAgICAgICAgICBjID0gQmFzZUNvb2tpZSgpCisgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5jb29raWVzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgY1tuYW1lXSA9IHZhbHVlCisgICAgICAgICAgICBoYyA9ICc7ICcuam9pbihbJz0nLmpvaW4oW20ua2V5LCBtLnZhbHVlXSkgZm9yIG0gaW4gYy52YWx1ZXMoKV0pCisgICAgICAgICAgICByZXEuZW52aXJvblsnSFRUUF9DT09LSUUnXSA9IGhjCisgICAgICAgIHJlcS5lbnZpcm9uWydwYXN0ZS50ZXN0aW5nJ10gPSBUcnVlCisgICAgICAgIHJlcS5lbnZpcm9uWydwYXN0ZS50ZXN0aW5nX3ZhcmlhYmxlcyddID0ge30KKyAgICAgICAgYXBwID0gbGludC5taWRkbGV3YXJlKHNlbGYuYXBwKQorICAgICAgICBvbGRfc3Rkb3V0ID0gc3lzLnN0ZG91dAorICAgICAgICBvdXQgPSBDYXB0dXJlU3Rkb3V0KG9sZF9zdGRvdXQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN5cy5zdGRvdXQgPSBvdXQKKyAgICAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgcmFpc2Vfb25fd3NnaV9lcnJvciA9IG5vdCByZXEuZXhwZWN0X2Vycm9ycworICAgICAgICAgICAgcmF3X3JlcyA9IHdzZ2lsaWIucmF3X2ludGVyYWN0aXZlKAorICAgICAgICAgICAgICAgIGFwcCwgcmVxLnVybCwKKyAgICAgICAgICAgICAgICByYWlzZV9vbl93c2dpX2Vycm9yPXJhaXNlX29uX3dzZ2lfZXJyb3IsCisgICAgICAgICAgICAgICAgKipyZXEuZW52aXJvbikKKyAgICAgICAgICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHN5cy5zdGRvdXQgPSBvbGRfc3Rkb3V0CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKG91dC5nZXR2YWx1ZSgpKQorICAgICAgICByZXMgPSBzZWxmLl9tYWtlX3Jlc3BvbnNlKHJhd19yZXMsIGVuZF90aW1lIC0gc3RhcnRfdGltZSkKKyAgICAgICAgcmVzLnJlcXVlc3QgPSByZXEKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHJlcS5lbnZpcm9uWydwYXN0ZS50ZXN0aW5nX3ZhcmlhYmxlcyddLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHJlcywgbmFtZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgInBhc3RlLnRlc3RpbmdfdmFyaWFibGVzIGNvbnRhaW5zIHRoZSB2YXJpYWJsZSAlciwgYnV0ICIKKyAgICAgICAgICAgICAgICAgICAgInRoZSByZXNwb25zZSBvYmplY3QgYWxyZWFkeSBoYXMgYW4gYXR0cmlidXRlIGJ5IHRoYXQgIgorICAgICAgICAgICAgICAgICAgICAibmFtZSIgJSBuYW1lKQorICAgICAgICAgICAgc2V0YXR0cihyZXMsIG5hbWUsIHZhbHVlKQorICAgICAgICBpZiBzZWxmLm5hbWVzcGFjZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYubmFtZXNwYWNlWydyZXMnXSA9IHJlcworICAgICAgICBpZiBub3QgcmVxLmV4cGVjdF9lcnJvcnM6CisgICAgICAgICAgICBzZWxmLl9jaGVja19zdGF0dXMoc3RhdHVzLCByZXMpCisgICAgICAgICAgICBzZWxmLl9jaGVja19lcnJvcnMocmVzKQorICAgICAgICByZXMuY29va2llc19zZXQgPSB7fQorICAgICAgICBmb3IgaGVhZGVyIGluIHJlcy5hbGxfaGVhZGVycygnc2V0LWNvb2tpZScpOgorICAgICAgICAgICAgYyA9IEJhc2VDb29raWUoaGVhZGVyKQorICAgICAgICAgICAgZm9yIGtleSwgbW9yc2VsIGluIGMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBzZWxmLmNvb2tpZXNba2V5XSA9IG1vcnNlbC52YWx1ZQorICAgICAgICAgICAgICAgIHJlcy5jb29raWVzX3NldFtrZXldID0gbW9yc2VsLnZhbHVlCisgICAgICAgIGlmIHNlbGYucG9zdF9yZXF1ZXN0X2hvb2s6CisgICAgICAgICAgICBzZWxmLnBvc3RfcmVxdWVzdF9ob29rKHNlbGYpCisgICAgICAgIGlmIHNlbGYubmFtZXNwYWNlIGlzIE5vbmU6CisgICAgICAgICAgICAjIEl0J3MgYW5ub3lpbmcgdG8gcmV0dXJuIHRoZSByZXNwb25zZSBpbiBkb2N0ZXN0cywgYXMgaXQnbGwKKyAgICAgICAgICAgICMgYmUgcHJpbnRlZCwgc28gd2Ugb25seSByZXR1cm4gaXQgaXMgd2UgY291bGRuJ3QgYXNzaWduCisgICAgICAgICAgICAjIGl0IGFueXdoZXJlCisgICAgICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgX2NoZWNrX3N0YXR1cyhzZWxmLCBzdGF0dXMsIHJlcyk6CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBpZiBzdGF0dXMgPT0gJyonOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RhdHVzLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgIGlmIHJlcy5zdGF0dXMgbm90IGluIHN0YXR1czoKKyAgICAgICAgICAgICAgICByYWlzZSBBcHBFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkJhZCByZXNwb25zZTogJXMgKG5vdCBvbmUgb2YgJXMgZm9yICVzKVxuJXMiCisgICAgICAgICAgICAgICAgICAgICUgKHJlcy5mdWxsX3N0YXR1cywgJywgJy5qb2luKG1hcChzdHIsIHN0YXR1cykpLAorICAgICAgICAgICAgICAgICAgICAgICByZXMucmVxdWVzdC51cmwsIHJlcy5ib2R5KSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBzdGF0dXMgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIHJlcy5zdGF0dXMgPj0gMjAwIGFuZCByZXMuc3RhdHVzIDwgNDAwOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgYm9keSA9IHJlcy5ib2R5CisgICAgICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgICAgIGJvZHkgPSBib2R5LmRlY29kZSgndXRmOCcsICd4bWxjaGFycmVmcmVwbGFjZScpCisgICAgICAgICAgICByYWlzZSBBcHBFcnJvcigKKyAgICAgICAgICAgICAgICAiQmFkIHJlc3BvbnNlOiAlcyAobm90IDIwMCBPSyBvciAzeHggcmVkaXJlY3QgZm9yICVzKVxuJXMiCisgICAgICAgICAgICAgICAgJSAocmVzLmZ1bGxfc3RhdHVzLCByZXMucmVxdWVzdC51cmwsCisgICAgICAgICAgICAgICAgICAgYm9keSkpCisgICAgICAgIGlmIHN0YXR1cyAhPSByZXMuc3RhdHVzOgorICAgICAgICAgICAgcmFpc2UgQXBwRXJyb3IoCisgICAgICAgICAgICAgICAgIkJhZCByZXNwb25zZTogJXMgKG5vdCAlcykiICUgKHJlcy5mdWxsX3N0YXR1cywgc3RhdHVzKSkKKworICAgIGRlZiBfY2hlY2tfZXJyb3JzKHNlbGYsIHJlcyk6CisgICAgICAgIGlmIHJlcy5lcnJvcnM6CisgICAgICAgICAgICByYWlzZSBBcHBFcnJvcigKKyAgICAgICAgICAgICAgICAiQXBwbGljYXRpb24gaGFkIGVycm9ycyBsb2dnZWQ6XG4lcyIgJSByZXMuZXJyb3JzKQorCisgICAgZGVmIF9tYWtlX3Jlc3BvbnNlKHNlbGYsIHJlc3AsIHRvdGFsX3RpbWUpOgorICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGJvZHksIGVycm9ycyA9IHJlc3AKKyAgICAgICAgcmV0dXJuIFRlc3RSZXNwb25zZShzZWxmLCBzdGF0dXMsIGhlYWRlcnMsIGJvZHksIGVycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF90aW1lKQorCitjbGFzcyBDYXB0dXJlU3Rkb3V0KG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYWN0dWFsKToKKyAgICAgICAgc2VsZi5jYXB0dXJlZCA9IFN0cmluZ0lPKCkKKyAgICAgICAgc2VsZi5hY3R1YWwgPSBhY3R1YWwKKworICAgIGRlZiB3cml0ZShzZWxmLCBzKToKKyAgICAgICAgc2VsZi5jYXB0dXJlZC53cml0ZShzKQorICAgICAgICBzZWxmLmFjdHVhbC53cml0ZShzKQorCisgICAgZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICBzZWxmLmFjdHVhbC5mbHVzaCgpCisKKyAgICBkZWYgd3JpdGVsaW5lcyhzZWxmLCBsaW5lcyk6CisgICAgICAgIGZvciBpdGVtIGluIGxpbmVzOgorICAgICAgICAgICAgc2VsZi53cml0ZShpdGVtKQorCisgICAgZGVmIGdldHZhbHVlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jYXB0dXJlZC5nZXR2YWx1ZSgpCisKK2NsYXNzIFRlc3RSZXNwb25zZShvYmplY3QpOgorCisgICAgIyBmb3IgcHkudGVzdAorICAgIGRpc2FibGVkID0gVHJ1ZQorCisgICAgIiIiCisgICAgSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIHJldHVybiBieSBgVGVzdEFwcAorICAgIDxjbGFzcy1wYXN0ZS5maXh0dXJlLlRlc3RBcHAuaHRtbD5gXworICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfYXBwLCBzdGF0dXMsIGhlYWRlcnMsIGJvZHksIGVycm9ycywKKyAgICAgICAgICAgICAgICAgdG90YWxfdGltZSk6CisgICAgICAgIHNlbGYudGVzdF9hcHAgPSB0ZXN0X2FwcAorICAgICAgICBzZWxmLnN0YXR1cyA9IGludChzdGF0dXMuc3BsaXQoKVswXSkKKyAgICAgICAgc2VsZi5mdWxsX3N0YXR1cyA9IHN0YXR1cworICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCisgICAgICAgIHNlbGYuaGVhZGVyX2RpY3QgPSBIZWFkZXJEaWN0LmZyb21saXN0KHNlbGYuaGVhZGVycykKKyAgICAgICAgc2VsZi5ib2R5ID0gYm9keQorICAgICAgICBzZWxmLmVycm9ycyA9IGVycm9ycworICAgICAgICBzZWxmLl9ub3JtYWxfYm9keSA9IE5vbmUKKyAgICAgICAgc2VsZi50aW1lID0gdG90YWxfdGltZQorICAgICAgICBzZWxmLl9mb3Jtc19pbmRleGVkID0gTm9uZQorCisgICAgZGVmIGZvcm1zX19nZXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgZGljdGlvbmFyeSBvZiBgYEZvcm1gYCBvYmplY3RzLiAgSW5kZXhlcyBhcmUgYm90aCBpbgorICAgICAgICBvcmRlciAoZnJvbSB6ZXJvKSBhbmQgYnkgZm9ybSBpZCAoaWYgdGhlIGZvcm0gaXMgZ2l2ZW4gYW4gaWQpLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fZm9ybXNfaW5kZXhlZCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fcGFyc2VfZm9ybXMoKQorICAgICAgICByZXR1cm4gc2VsZi5fZm9ybXNfaW5kZXhlZAorCisgICAgZm9ybXMgPSBwcm9wZXJ0eShmb3Jtc19fZ2V0LAorICAgICAgICAgICAgICAgICAgICAgZG9jPSIiIgorICAgICAgICAgICAgICAgICAgICAgQSBsaXN0IG9mIDxmb3JtPnMgZm91bmQgb24gdGhlIHBhZ2UgKGluc3RhbmNlcyBvZgorICAgICAgICAgICAgICAgICAgICAgYEZvcm0gPGNsYXNzLXBhc3RlLmZpeHR1cmUuRm9ybS5odG1sPmBfKQorICAgICAgICAgICAgICAgICAgICAgIiIiKQorCisgICAgZGVmIGZvcm1fX2dldChzZWxmKToKKyAgICAgICAgZm9ybXMgPSBzZWxmLmZvcm1zCisgICAgICAgIGlmIG5vdCBmb3JtczoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IHVzZWQgcmVzcG9uc2UuZm9ybSwgYnV0IG5vIGZvcm1zIGV4aXN0IikKKyAgICAgICAgaWYgMSBpbiBmb3JtczoKKyAgICAgICAgICAgICMgVGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBmb3JtCisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIllvdSB1c2VkIHJlc3BvbnNlLmZvcm0sIGJ1dCBtb3JlIHRoYW4gb25lIGZvcm0gZXhpc3RzIikKKyAgICAgICAgcmV0dXJuIGZvcm1zWzBdCisKKyAgICBmb3JtID0gcHJvcGVydHkoZm9ybV9fZ2V0LAorICAgICAgICAgICAgICAgICAgICBkb2M9IiIiCisgICAgICAgICAgICAgICAgICAgIFJldHVybnMgYSBzaW5nbGUgYEZvcm0KKyAgICAgICAgICAgICAgICAgICAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuRm9ybS5odG1sPmBfIGluc3RhbmNlOyBpdAorICAgICAgICAgICAgICAgICAgICBpcyBhbiBlcnJvciBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZm9ybXMgb24gdGhlCisgICAgICAgICAgICAgICAgICAgIHBhZ2UuCisgICAgICAgICAgICAgICAgICAgICIiIikKKworICAgIF90YWdfcmUgPSByZS5jb21waWxlKHInPCgvPykoWzphLXowLTlfXC1dKikoLio/KT4nLCByZS5TfHJlLkkpCisKKyAgICBkZWYgX3BhcnNlX2Zvcm1zKHNlbGYpOgorICAgICAgICBmb3JtcyA9IHNlbGYuX2Zvcm1zX2luZGV4ZWQgPSB7fQorICAgICAgICBmb3JtX3RleHRzID0gW10KKyAgICAgICAgc3RhcnRlZCA9IE5vbmUKKyAgICAgICAgZm9yIG1hdGNoIGluIHNlbGYuX3RhZ19yZS5maW5kaXRlcihzZWxmLmJvZHkpOgorICAgICAgICAgICAgZW5kID0gbWF0Y2guZ3JvdXAoMSkgPT0gJy8nCisgICAgICAgICAgICB0YWcgPSBtYXRjaC5ncm91cCgyKS5sb3dlcigpCisgICAgICAgICAgICBpZiB0YWcgIT0gJ2Zvcm0nOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBlbmQ6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHN0YXJ0ZWQsICgKKyAgICAgICAgICAgICAgICAgICAgIjwvZm9ybT4gdW5leHBlY3RlZCBhdCAlcyIgJSBtYXRjaC5zdGFydCgpKQorICAgICAgICAgICAgICAgIGZvcm1fdGV4dHMuYXBwZW5kKHNlbGYuYm9keVtzdGFydGVkOm1hdGNoLmVuZCgpXSkKKyAgICAgICAgICAgICAgICBzdGFydGVkID0gTm9uZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHN0YXJ0ZWQsICgKKyAgICAgICAgICAgICAgICAgICAgIk5lc3RlZCBmb3JtIHRhZ3MgYXQgJXMiICUgbWF0Y2guc3RhcnQoKSkKKyAgICAgICAgICAgICAgICBzdGFydGVkID0gbWF0Y2guc3RhcnQoKQorICAgICAgICBhc3NlcnQgbm90IHN0YXJ0ZWQsICgKKyAgICAgICAgICAgICJEYW5naW5nIGZvcm06ICVyIiAlIHNlbGYuYm9keVtzdGFydGVkOl0pCisgICAgICAgIGZvciBpLCB0ZXh0IGluIGVudW1lcmF0ZShmb3JtX3RleHRzKToKKyAgICAgICAgICAgIGZvcm0gPSBGb3JtKHNlbGYsIHRleHQpCisgICAgICAgICAgICBmb3Jtc1tpXSA9IGZvcm0KKyAgICAgICAgICAgIGlmIGZvcm0uaWQ6CisgICAgICAgICAgICAgICAgZm9ybXNbZm9ybS5pZF0gPSBmb3JtCisKKyAgICBkZWYgaGVhZGVyKHNlbGYsIG5hbWUsIGRlZmF1bHQ9Tm9EZWZhdWx0KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIG5hbWVkIGhlYWRlcjsgYW4gZXJyb3IgaWYgdGhlcmUgaXMgbm90IGV4YWN0bHkgb25lCisgICAgICAgIG1hdGNoaW5nIGhlYWRlciAodW5sZXNzIHlvdSBnaXZlIGEgZGVmYXVsdCAtLSBhbHdheXMgYW4gZXJyb3IKKyAgICAgICAgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBoZWFkZXIpCisgICAgICAgICIiIgorICAgICAgICBmb3VuZCA9IE5vbmUKKyAgICAgICAgZm9yIGN1cl9uYW1lLCB2YWx1ZSBpbiBzZWxmLmhlYWRlcnM6CisgICAgICAgICAgICBpZiBjdXJfbmFtZS5sb3dlcigpID09IG5hbWUubG93ZXIoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IGZvdW5kLCAoCisgICAgICAgICAgICAgICAgICAgICJBbWJpZ3VvdXMgaGVhZGVyOiAlcyBtYXRjaGVzICVyIGFuZCAlciIKKyAgICAgICAgICAgICAgICAgICAgJSAobmFtZSwgZm91bmQsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICBmb3VuZCA9IHZhbHVlCisgICAgICAgIGlmIGZvdW5kIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBkZWZhdWx0IGlzIE5vRGVmYXVsdDoKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIk5vIGhlYWRlciBmb3VuZDogJXIgKGZyb20gJXMpIgorICAgICAgICAgICAgICAgICAgICAlIChuYW1lLCAnLCAnLmpvaW4oW24gZm9yIG4sIHYgaW4gc2VsZi5oZWFkZXJzXSkpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICByZXR1cm4gZm91bmQKKworICAgIGRlZiBhbGxfaGVhZGVycyhzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldHMgYWxsIGhlYWRlcnMgYnkgdGhlIGBgbmFtZWBgLCByZXR1cm5zIGFzIGEgbGlzdAorICAgICAgICAiIiIKKyAgICAgICAgZm91bmQgPSBbXQorICAgICAgICBmb3IgY3VyX25hbWUsIHZhbHVlIGluIHNlbGYuaGVhZGVyczoKKyAgICAgICAgICAgIGlmIGN1cl9uYW1lLmxvd2VyKCkgPT0gbmFtZS5sb3dlcigpOgorICAgICAgICAgICAgICAgIGZvdW5kLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgcmV0dXJuIGZvdW5kCisKKyAgICBkZWYgZm9sbG93KHNlbGYsICoqa3cpOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgdGhpcyByZXF1ZXN0IGlzIGEgcmVkaXJlY3QsIGZvbGxvdyB0aGF0IHJlZGlyZWN0LiAgSXQKKyAgICAgICAgaXMgYW4gZXJyb3IgaWYgdGhpcyBpcyBub3QgYSByZWRpcmVjdCByZXNwb25zZS4gIFJldHVybnMKKyAgICAgICAgYW5vdGhlciByZXNwb25zZSBvYmplY3QuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgc2VsZi5zdGF0dXMgPj0gMzAwIGFuZCBzZWxmLnN0YXR1cyA8IDQwMCwgKAorICAgICAgICAgICAgIllvdSBjYW4gb25seSBmb2xsb3cgcmVkaXJlY3QgcmVzcG9uc2VzIChub3QgJXMpIgorICAgICAgICAgICAgJSBzZWxmLmZ1bGxfc3RhdHVzKQorICAgICAgICBsb2NhdGlvbiA9IHNlbGYuaGVhZGVyKCdsb2NhdGlvbicpCisgICAgICAgIHR5cGUsIHJlc3QgPSBzcGxpdHR5cGUobG9jYXRpb24pCisgICAgICAgIGhvc3QsIHBhdGggPSBzcGxpdGhvc3QocmVzdCkKKyAgICAgICAgIyBAQDogV2Ugc2hvdWxkIHRlc3QgdGhhdCBpdCdzIG5vdCBhIHJlbW90ZSByZWRpcmVjdAorICAgICAgICByZXR1cm4gc2VsZi50ZXN0X2FwcC5nZXQobG9jYXRpb24sICoqa3cpCisKKyAgICBkZWYgY2xpY2soc2VsZiwgZGVzY3JpcHRpb249Tm9uZSwgbGlua2lkPU5vbmUsIGhyZWY9Tm9uZSwKKyAgICAgICAgICAgICAgYW5jaG9yPU5vbmUsIGluZGV4PU5vbmUsIHZlcmJvc2U9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2xpY2sgdGhlIGxpbmsgYXMgZGVzY3JpYmVkLiAgRWFjaCBvZiBgYGRlc2NyaXB0aW9uYGAsCisgICAgICAgIGBgbGlua2lkYGAsIGFuZCBgYHVybGBgIGFyZSAqcGF0dGVybnMqLCBtZWFuaW5nIHRoYXQgdGhleSBhcmUKKyAgICAgICAgZWl0aGVyIHN0cmluZ3MgKHJlZ3VsYXIgZXhwcmVzc2lvbnMpLCBjb21waWxlZCByZWd1bGFyCisgICAgICAgIGV4cHJlc3Npb25zIChvYmplY3RzIHdpdGggYSBgYHNlYXJjaGBgIG1ldGhvZCksIG9yIGNhbGxhYmxlcworICAgICAgICByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZS4KKworICAgICAgICBBbGwgdGhlIGdpdmVuIHBhdHRlcm5zIGFyZSBBTkRlZCB0b2dldGhlcjoKKworICAgICAgICAqIGBgZGVzY3JpcHRpb25gYCBpcyBhIHBhdHRlcm4gdGhhdCBtYXRjaGVzIHRoZSBjb250ZW50cyBvZiB0aGUKKyAgICAgICAgICBhbmNob3IgKEhUTUwgYW5kIGFsbCAtLSBldmVyeXRoaW5nIGJldHdlZW4gYGA8YS4uLj5gYCBhbmQKKyAgICAgICAgICBgYDwvYT5gYCkKKworICAgICAgICAqIGBgbGlua2lkYGAgaXMgYSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB0aGUgYGBpZGBgIGF0dHJpYnV0ZSBvZgorICAgICAgICAgIHRoZSBhbmNob3IuICBJdCB3aWxsIHJlY2VpdmUgdGhlIGVtcHR5IHN0cmluZyBpZiBubyBpZCBpcworICAgICAgICAgIGdpdmVuLgorCisgICAgICAgICogYGBocmVmYGAgaXMgYSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB0aGUgYGBocmVmYGAgb2YgdGhlIGFuY2hvcjsKKyAgICAgICAgICB0aGUgbGl0ZXJhbCBjb250ZW50IG9mIHRoYXQgYXR0cmlidXRlLCBub3QgdGhlIGZ1bGx5IHF1YWxpZmllZAorICAgICAgICAgIGF0dHJpYnV0ZS4KKworICAgICAgICAqIGBgYW5jaG9yYGAgaXMgYSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB0aGUgZW50aXJlIGFuY2hvciwgd2l0aAorICAgICAgICAgIGl0cyBjb250ZW50cy4KKworICAgICAgICBJZiBtb3JlIHRoYW4gb25lIGxpbmsgbWF0Y2hlcywgdGhlbiB0aGUgYGBpbmRleGBgIGxpbmsgaXMKKyAgICAgICAgZm9sbG93ZWQuICBJZiBgYGluZGV4YGAgaXMgbm90IGdpdmVuIGFuZCBtb3JlIHRoYW4gb25lIGxpbmsKKyAgICAgICAgbWF0Y2hlcywgb3IgaWYgbm8gbGluayBtYXRjaGVzLCB0aGVuIGBgSW5kZXhFcnJvcmBgIHdpbGwgYmUKKyAgICAgICAgcmFpc2VkLgorCisgICAgICAgIElmIHlvdSBnaXZlIGBgdmVyYm9zZWBgIHRoZW4gbWVzc2FnZXMgd2lsbCBiZSBwcmludGVkIGFib3V0CisgICAgICAgIGVhY2ggbGluaywgYW5kIHdoeSBpdCBkb2VzIG9yIGRvZXNuJ3QgbWF0Y2guICBJZiB5b3UgdXNlCisgICAgICAgIGBgYXBwLmNsaWNrKHZlcmJvc2U9VHJ1ZSlgYCB5b3UnbGwgc2VlIGEgbGlzdCBvZiBhbGwgdGhlCisgICAgICAgIGxpbmtzLgorCisgICAgICAgIFlvdSBjYW4gdXNlIG11bHRpcGxlIGNyaXRlcmlhIHRvIGVzc2VudGlhbGx5IGFzc2VydCBtdWx0aXBsZQorICAgICAgICBhc3BlY3RzIGFib3V0IHRoZSBsaW5rLCBlLmcuLCB3aGVyZSB0aGUgbGluaydzIGRlc3RpbmF0aW9uIGlzLgorICAgICAgICAiIiIKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGZvdW5kX2h0bWwsIGZvdW5kX2Rlc2MsIGZvdW5kX2F0dHJzID0gc2VsZi5fZmluZF9lbGVtZW50KAorICAgICAgICAgICAgdGFnPSdhJywgaHJlZl9hdHRyPSdocmVmJywKKyAgICAgICAgICAgIGhyZWZfZXh0cmFjdD1Ob25lLAorICAgICAgICAgICAgY29udGVudD1kZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIGlkPWxpbmtpZCwKKyAgICAgICAgICAgIGhyZWZfcGF0dGVybj1ocmVmLAorICAgICAgICAgICAgaHRtbF9wYXR0ZXJuPWFuY2hvciwKKyAgICAgICAgICAgIGluZGV4PWluZGV4LCB2ZXJib3NlPXZlcmJvc2UpCisgICAgICAgIHJldHVybiBzZWxmLmdvdG8oZm91bmRfYXR0cnNbJ3VyaSddKQorCisgICAgZGVmIGNsaWNrYnV0dG9uKHNlbGYsIGRlc2NyaXB0aW9uPU5vbmUsIGJ1dHRvbmlkPU5vbmUsIGhyZWY9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgYnV0dG9uPU5vbmUsIGluZGV4PU5vbmUsIHZlcmJvc2U9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlrZSBgYC5jbGljaygpYGAsIGV4Y2VwdCBsb29rcyBmb3IgbGluay1saWtlIGJ1dHRvbnMuCisgICAgICAgIFRoaXMga2luZCBvZiBidXR0b24gc2hvdWxkIGxvb2sgbGlrZQorICAgICAgICBgYDxidXR0b24gb25jbGljaz0iLi4ubG9jYXRpb24uaHJlZj0ndXJsJy4uLiI+YGAuCisgICAgICAgICIiIgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgZm91bmRfaHRtbCwgZm91bmRfZGVzYywgZm91bmRfYXR0cnMgPSBzZWxmLl9maW5kX2VsZW1lbnQoCisgICAgICAgICAgICB0YWc9J2J1dHRvbicsIGhyZWZfYXR0cj0nb25jbGljaycsCisgICAgICAgICAgICBocmVmX2V4dHJhY3Q9cmUuY29tcGlsZShyImxvY2F0aW9uXC5ocmVmPScoLio/KSciKSwKKyAgICAgICAgICAgIGNvbnRlbnQ9ZGVzY3JpcHRpb24sCisgICAgICAgICAgICBpZD1idXR0b25pZCwKKyAgICAgICAgICAgIGhyZWZfcGF0dGVybj1ocmVmLAorICAgICAgICAgICAgaHRtbF9wYXR0ZXJuPWJ1dHRvbiwKKyAgICAgICAgICAgIGluZGV4PWluZGV4LCB2ZXJib3NlPXZlcmJvc2UpCisgICAgICAgIHJldHVybiBzZWxmLmdvdG8oZm91bmRfYXR0cnNbJ3VyaSddKQorCisgICAgZGVmIF9maW5kX2VsZW1lbnQoc2VsZiwgdGFnLCBocmVmX2F0dHIsIGhyZWZfZXh0cmFjdCwKKyAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICBocmVmX3BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgaHRtbF9wYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCB2ZXJib3NlKToKKyAgICAgICAgY29udGVudF9wYXQgPSBfbWFrZV9wYXR0ZXJuKGNvbnRlbnQpCisgICAgICAgIGlkX3BhdCA9IF9tYWtlX3BhdHRlcm4oaWQpCisgICAgICAgIGhyZWZfcGF0ID0gX21ha2VfcGF0dGVybihocmVmX3BhdHRlcm4pCisgICAgICAgIGh0bWxfcGF0ID0gX21ha2VfcGF0dGVybihodG1sX3BhdHRlcm4pCisKKyAgICAgICAgX3RhZ19yZSA9IHJlLmNvbXBpbGUocic8JXNccysoLio/KT4oLio/KTwvJXM+JyAlICh0YWcsIHRhZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlLkkrcmUuUykKKworICAgICAgICBkZWYgcHJpbnRsb2cocyk6CisgICAgICAgICAgICBpZiB2ZXJib3NlOgorICAgICAgICAgICAgICAgIHByaW50KHMpCisKKyAgICAgICAgZm91bmRfbGlua3MgPSBbXQorICAgICAgICB0b3RhbF9saW5rcyA9IDAKKyAgICAgICAgZm9yIG1hdGNoIGluIF90YWdfcmUuZmluZGl0ZXIoc2VsZi5ib2R5KToKKyAgICAgICAgICAgIGVsX2h0bWwgPSBtYXRjaC5ncm91cCgwKQorICAgICAgICAgICAgZWxfYXR0ciA9IG1hdGNoLmdyb3VwKDEpCisgICAgICAgICAgICBlbF9jb250ZW50ID0gbWF0Y2guZ3JvdXAoMikKKyAgICAgICAgICAgIGF0dHJzID0gX3BhcnNlX2F0dHJzKGVsX2F0dHIpCisgICAgICAgICAgICBpZiB2ZXJib3NlOgorICAgICAgICAgICAgICAgIHByaW50bG9nKCdFbGVtZW50OiAlcicgJSBlbF9odG1sKQorICAgICAgICAgICAgaWYgbm90IGF0dHJzLmdldChocmVmX2F0dHIpOgorICAgICAgICAgICAgICAgIHByaW50bG9nKCcgIFNraXBwZWQ6IG5vICVzIGF0dHJpYnV0ZScgJSBocmVmX2F0dHIpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGVsX2hyZWYgPSBhdHRyc1tocmVmX2F0dHJdCisgICAgICAgICAgICBpZiBocmVmX2V4dHJhY3Q6CisgICAgICAgICAgICAgICAgbSA9IGhyZWZfZXh0cmFjdC5zZWFyY2goZWxfaHJlZikKKyAgICAgICAgICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsb2coIiAgU2tpcHBlZDogZG9lc24ndCBtYXRjaCBleHRyYWN0IHBhdHRlcm4iKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGVsX2hyZWYgPSBtLmdyb3VwKDEpCisgICAgICAgICAgICBhdHRyc1sndXJpJ10gPSBlbF9ocmVmCisgICAgICAgICAgICBpZiBlbF9ocmVmLnN0YXJ0c3dpdGgoJyMnKToKKyAgICAgICAgICAgICAgICBwcmludGxvZygnICBTa2lwcGVkOiBvbmx5IGludGVybmFsIGZyYWdtZW50IGhyZWYnKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBlbF9ocmVmLnN0YXJ0c3dpdGgoJ2phdmFzY3JpcHQ6Jyk6CisgICAgICAgICAgICAgICAgcHJpbnRsb2coJyAgU2tpcHBlZDogY2Fubm90IGZvbGxvdyBqYXZhc2NyaXB0OicpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRvdGFsX2xpbmtzICs9IDEKKyAgICAgICAgICAgIGlmIGNvbnRlbnRfcGF0IGFuZCBub3QgY29udGVudF9wYXQoZWxfY29udGVudCk6CisgICAgICAgICAgICAgICAgcHJpbnRsb2coIiAgU2tpcHBlZDogZG9lc24ndCBtYXRjaCBkZXNjcmlwdGlvbiIpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGlkX3BhdCBhbmQgbm90IGlkX3BhdChhdHRycy5nZXQoJ2lkJywgJycpKToKKyAgICAgICAgICAgICAgICBwcmludGxvZygiICBTa2lwcGVkOiBkb2Vzbid0IG1hdGNoIGlkIikKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgaHJlZl9wYXQgYW5kIG5vdCBocmVmX3BhdChlbF9ocmVmKToKKyAgICAgICAgICAgICAgICBwcmludGxvZygiICBTa2lwcGVkOiBkb2Vzbid0IG1hdGNoIGhyZWYiKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBodG1sX3BhdCBhbmQgbm90IGh0bWxfcGF0KGVsX2h0bWwpOgorICAgICAgICAgICAgICAgIHByaW50bG9nKCIgIFNraXBwZWQ6IGRvZXNuJ3QgbWF0Y2ggaHRtbCIpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHByaW50bG9nKCIgIEFjY2VwdGVkIikKKyAgICAgICAgICAgIGZvdW5kX2xpbmtzLmFwcGVuZCgoZWxfaHRtbCwgZWxfY29udGVudCwgYXR0cnMpKQorICAgICAgICBpZiBub3QgZm91bmRfbGlua3M6CisgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKAorICAgICAgICAgICAgICAgICJObyBtYXRjaGluZyBlbGVtZW50cyBmb3VuZCAoZnJvbSAlcyBwb3NzaWJsZSkiCisgICAgICAgICAgICAgICAgJSB0b3RhbF9saW5rcykKKyAgICAgICAgaWYgaW5kZXggaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGxlbihmb3VuZF9saW5rcykgPiAxOgorICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJNdWx0aXBsZSBsaW5rcyBtYXRjaDogJXMiCisgICAgICAgICAgICAgICAgICAgICUgJywgJy5qb2luKFtyZXByKGFuYykgZm9yIGFuYywgZCwgYXR0ciBpbiBmb3VuZF9saW5rc10pKQorICAgICAgICAgICAgZm91bmRfbGluayA9IGZvdW5kX2xpbmtzWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZm91bmRfbGluayA9IGZvdW5kX2xpbmtzW2luZGV4XQorICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIk9ubHkgJXMgKG91dCBvZiAlcykgbGlua3MgbWF0Y2g7IGluZGV4ICVzIG91dCBvZiByYW5nZSIKKyAgICAgICAgICAgICAgICAgICAgJSAobGVuKGZvdW5kX2xpbmtzKSwgdG90YWxfbGlua3MsIGluZGV4KSkKKyAgICAgICAgcmV0dXJuIGZvdW5kX2xpbmsKKworICAgIGRlZiBnb3RvKHNlbGYsIGhyZWYsIG1ldGhvZD0nZ2V0JywgKiphcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIEdvIHRvIHRoZSAocG90ZW50aWFsbHkgcmVsYXRpdmUpIGxpbmsgYGBocmVmYGAsIHVzaW5nIHRoZQorICAgICAgICBnaXZlbiBtZXRob2QgKGBgJ2dldCdgYCBvciBgYCdwb3N0J2BgKSBhbmQgYW55IGV4dHJhIGFyZ3VtZW50cworICAgICAgICB5b3Ugd2FudCB0byBwYXNzIHRvIHRoZSBgYGFwcC5nZXQoKWBgIG9yIGBgYXBwLnBvc3QoKWBgCisgICAgICAgIG1ldGhvZHMuCisKKyAgICAgICAgQWxsIGhvc3RuYW1lcyBhbmQgc2NoZW1lcyB3aWxsIGJlIGlnbm9yZWQuCisgICAgICAgICIiIgorICAgICAgICBzY2hlbWUsIGhvc3QsIHBhdGgsIHF1ZXJ5LCBmcmFnbWVudCA9IHVybHBhcnNlLnVybHNwbGl0KGhyZWYpCisgICAgICAgICMgV2UKKyAgICAgICAgc2NoZW1lID0gaG9zdCA9IGZyYWdtZW50ID0gJycKKyAgICAgICAgaHJlZiA9IHVybHBhcnNlLnVybHVuc3BsaXQoKHNjaGVtZSwgaG9zdCwgcGF0aCwgcXVlcnksIGZyYWdtZW50KSkKKyAgICAgICAgaHJlZiA9IHVybHBhcnNlLnVybGpvaW4oc2VsZi5yZXF1ZXN0LmZ1bGxfdXJsLCBocmVmKQorICAgICAgICBtZXRob2QgPSBtZXRob2QubG93ZXIoKQorICAgICAgICBhc3NlcnQgbWV0aG9kIGluICgnZ2V0JywgJ3Bvc3QnKSwgKAorICAgICAgICAgICAgJ09ubHkgImdldCIgb3IgInBvc3QiIGFyZSBhbGxvd2VkIGZvciBtZXRob2QgKHlvdSBnYXZlICVyKScKKyAgICAgICAgICAgICUgbWV0aG9kKQorICAgICAgICBpZiBtZXRob2QgPT0gJ2dldCc6CisgICAgICAgICAgICBtZXRob2QgPSBzZWxmLnRlc3RfYXBwLmdldAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWV0aG9kID0gc2VsZi50ZXN0X2FwcC5wb3N0CisgICAgICAgIHJldHVybiBtZXRob2QoaHJlZiwgKiphcmdzKQorCisgICAgX25vcm1hbF9ib2R5X3JlZ2V4ID0gcmUuY29tcGlsZShicidbIFxuXHJcdF0rJykKKworICAgIGRlZiBub3JtYWxfYm9keV9fZ2V0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9ub3JtYWxfYm9keSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fbm9ybWFsX2JvZHkgPSBzZWxmLl9ub3JtYWxfYm9keV9yZWdleC5zdWIoCisgICAgICAgICAgICAgICAgYicgJywgc2VsZi5ib2R5KQorICAgICAgICByZXR1cm4gc2VsZi5fbm9ybWFsX2JvZHkKKworICAgIG5vcm1hbF9ib2R5ID0gcHJvcGVydHkobm9ybWFsX2JvZHlfX2dldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvYz0iIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiB0aGUgd2hpdGVzcGFjZS1ub3JtYWxpemVkIGJvZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIiIikKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgcyk6CisgICAgICAgICIiIgorICAgICAgICBBIHJlc3BvbnNlICdjb250YWlucycgYSBzdHJpbmcgaWYgaXQgaXMgcHJlc2VudCBpbiB0aGUgYm9keQorICAgICAgICBvZiB0aGUgcmVzcG9uc2UuICBXaGl0ZXNwYWNlIGlzIG5vcm1hbGl6ZWQgd2hlbiBzZWFyY2hpbmcKKyAgICAgICAgZm9yIGEgc3RyaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocywgKHNpeC5iaW5hcnlfdHlwZSwgc2l4LnRleHRfdHlwZSkpOgorICAgICAgICAgICAgcyA9IHN0cihzKQorICAgICAgICBpZiBpc2luc3RhbmNlKHMsIHNpeC50ZXh0X3R5cGUpOgorICAgICAgICAgICAgIyMgRklYTUU6IHdlIGRvbid0IGtub3cgdGhhdCB0aGlzIHJlc3BvbnNlIHVzZXMgdXRmODoKKyAgICAgICAgICAgIHMgPSBzLmVuY29kZSgndXRmOCcpCisgICAgICAgIHJldHVybiAoc2VsZi5ib2R5LmZpbmQocykgIT0gLTEKKyAgICAgICAgICAgICAgICBvciBzZWxmLm5vcm1hbF9ib2R5LmZpbmQocykgIT0gLTEpCisKKyAgICBkZWYgbXVzdGNvbnRhaW4oc2VsZiwgKnN0cmluZ3MsICoqa3cpOgorICAgICAgICAiIiIKKyAgICAgICAgQXNzZXJ0IHRoYXQgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIGFsbCBvZiB0aGUgc3RyaW5ncyBwYXNzZWQKKyAgICAgICAgaW4gYXMgYXJndW1lbnRzLgorCisgICAgICAgIEVxdWl2YWxlbnQgdG86OgorCisgICAgICAgICAgICBhc3NlcnQgc3RyaW5nIGluIHJlcworICAgICAgICAiIiIKKyAgICAgICAgaWYgJ25vJyBpbiBrdzoKKyAgICAgICAgICAgIG5vID0ga3dbJ25vJ10KKyAgICAgICAgICAgIGRlbCBrd1snbm8nXQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShubywgKHNpeC5iaW5hcnlfdHlwZSwgc2l4LnRleHRfdHlwZSkpOgorICAgICAgICAgICAgICAgIG5vID0gW25vXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbm8gPSBbXQorICAgICAgICBpZiBrdzoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAiVGhlIG9ubHkga2V5d29yZCBhcmd1bWVudCBhbGxvd2VkIGlzICdubyciKQorICAgICAgICBmb3IgcyBpbiBzdHJpbmdzOgorICAgICAgICAgICAgaWYgbm90IHMgaW4gc2VsZjoKKyAgICAgICAgICAgICAgICBwcmludCgiQWN0dWFsIHJlc3BvbnNlIChubyAlcik6IiAlIHMsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICBwcmludChzZWxmLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkJvZHkgZG9lcyBub3QgY29udGFpbiBzdHJpbmcgJXIiICUgcykKKyAgICAgICAgZm9yIG5vX3MgaW4gbm86CisgICAgICAgICAgICBpZiBub19zIGluIHNlbGY6CisgICAgICAgICAgICAgICAgcHJpbnQoIkFjdHVhbCByZXNwb25zZSAoaGFzICVyKSIgJSBub19zLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICAgICAgcHJpbnQoc2VsZiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJCb2R5IGNvbnRhaW5zIHN0cmluZyAlciIgJSBzKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBib2R5ID0gc2VsZi5ib2R5CisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBib2R5ID0gYm9keS5kZWNvZGUoJ3V0ZjgnLCAneG1sY2hhcnJlZnJlcGxhY2UnKQorICAgICAgICBib2R5ID0gYm9keVs6MjBdCisgICAgICAgIHJldHVybiAnPFJlc3BvbnNlICVzICVyPicgJSAoc2VsZi5mdWxsX3N0YXR1cywgYm9keSkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBzaW1wbGVfYm9keSA9IGInXG4nLmpvaW4oW2wgZm9yIGwgaW4gc2VsZi5ib2R5LnNwbGl0bGluZXMoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbC5zdHJpcCgpXSkKKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHNpbXBsZV9ib2R5ID0gc2ltcGxlX2JvZHkuZGVjb2RlKCd1dGY4JywgJ3htbGNoYXJyZWZyZXBsYWNlJykKKyAgICAgICAgcmV0dXJuICdSZXNwb25zZTogJXNcbiVzXG4lcycgJSAoCisgICAgICAgICAgICBzZWxmLnN0YXR1cywKKyAgICAgICAgICAgICdcbicuam9pbihbJyVzOiAlcycgJSAobiwgdikgZm9yIG4sIHYgaW4gc2VsZi5oZWFkZXJzXSksCisgICAgICAgICAgICBzaW1wbGVfYm9keSkKKworICAgIGRlZiBzaG93YnJvd3NlcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFNob3cgdGhpcyByZXNwb25zZSBpbiBhIGJyb3dzZXIgd2luZG93IChmb3IgZGVidWdnaW5nIHB1cnBvc2VzLAorICAgICAgICB3aGVuIGl0J3MgaGFyZCB0byByZWFkIHRoZSBIVE1MKS4KKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCB3ZWJicm93c2VyCisgICAgICAgIGZuID0gdGVtcG5hbV9ub193YXJuaW5nKE5vbmUsICdwYXN0ZS1maXh0dXJlJykgKyAnLmh0bWwnCisgICAgICAgIGYgPSBvcGVuKGZuLCAnd2InKQorICAgICAgICBmLndyaXRlKHNlbGYuYm9keSkKKyAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHVybCA9ICdmaWxlOicgKyBmbi5yZXBsYWNlKG9zLnNlcCwgJy8nKQorICAgICAgICB3ZWJicm93c2VyLm9wZW5fbmV3KHVybCkKKworY2xhc3MgVGVzdFJlcXVlc3Qob2JqZWN0KToKKworICAgICMgZm9yIHB5LnRlc3QKKyAgICBkaXNhYmxlZCA9IFRydWUKKworICAgICIiIgorICAgIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBjcmVhdGVkIGJ5IGBUZXN0QXBwCisgICAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuVGVzdEFwcC5odG1sPmBfIHdpdGggdGhlIGBgLmdldCgpYGAgYW5kCisgICAgYGAucG9zdCgpYGAgbWV0aG9kcywgYW5kIGFyZSBjb25zdW1lZCB0aGVyZSBieSBgYC5kb19yZXF1ZXN0KClgYC4KKworICAgIEluc3RhbmNlcyBhcmUgYWxzbyBhdmFpbGFibGUgYXMgYSBgYC5yZXFgYCBhdHRyaWJ1dGUgb24KKyAgICBgVGVzdFJlc3BvbnNlIDxjbGFzcy1wYXN0ZS5maXh0dXJlLlRlc3RSZXNwb25zZS5odG1sPmBfIGluc3RhbmNlcy4KKworICAgIFVzZWZ1bCBhdHRyaWJ1dGVzOgorCisgICAgYGB1cmxgYDoKKyAgICAgICAgVGhlIHVybCAoYWN0dWFsbHkgdXN1YWxseSB0aGUgcGF0aCkgb2YgdGhlIHJlcXVlc3QsIHdpdGhvdXQKKyAgICAgICAgcXVlcnkgc3RyaW5nLgorCisgICAgYGBlbnZpcm9uYGA6CisgICAgICAgIFRoZSBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5IHVzZWQgZm9yIHRoZSByZXF1ZXN0LgorCisgICAgYGBmdWxsX3VybGBgOgorICAgICAgICBUaGUgdXJsL3BhdGgsIHdpdGggcXVlcnkgc3RyaW5nLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybCwgZW52aXJvbiwgZXhwZWN0X2Vycm9ycz1GYWxzZSk6CisgICAgICAgIGlmIHVybC5zdGFydHN3aXRoKCdodHRwOi8vbG9jYWxob3N0Jyk6CisgICAgICAgICAgICB1cmwgPSB1cmxbbGVuKCdodHRwOi8vbG9jYWxob3N0Jyk6XQorICAgICAgICBzZWxmLnVybCA9IHVybAorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnKToKKyAgICAgICAgICAgIHNlbGYuZnVsbF91cmwgPSB1cmwgKyAnPycgKyBlbnZpcm9uWydRVUVSWV9TVFJJTkcnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mdWxsX3VybCA9IHVybAorICAgICAgICBzZWxmLmV4cGVjdF9lcnJvcnMgPSBleHBlY3RfZXJyb3JzCisKKworY2xhc3MgRm9ybShvYmplY3QpOgorCisgICAgIiIiCisgICAgVGhpcyBvYmplY3QgcmVwcmVzZW50cyBhIGZvcm0gdGhhdCBoYXMgYmVlbiBmb3VuZCBpbiBhIHBhZ2UuCisgICAgVGhpcyBoYXMgYSBjb3VwbGUgdXNlZnVsIGF0dHJpYnV0ZXM6CisKKyAgICBgYHRleHRgYDoKKyAgICAgICAgdGhlIGZ1bGwgSFRNTCBvZiB0aGUgZm9ybS4KKworICAgIGBgYWN0aW9uYGA6CisgICAgICAgIHRoZSByZWxhdGl2ZSBVUkkgb2YgdGhlIGFjdGlvbi4KKworICAgIGBgbWV0aG9kYGA6CisgICAgICAgIHRoZSBtZXRob2QgKGUuZy4sIGBgJ0dFVCdgYCkuCisKKyAgICBgYGlkYGA6CisgICAgICAgIHRoZSBpZCwgb3IgTm9uZSBpZiBub3QgZ2l2ZW4uCisKKyAgICBgYGZpZWxkc2BgOgorICAgICAgICBhIGRpY3Rpb25hcnkgb2YgZmllbGRzLCBlYWNoIHZhbHVlIGlzIGEgbGlzdCBvZiBmaWVsZHMgYnkKKyAgICAgICAgdGhhdCBuYW1lLiAgYGA8aW5wdXQgdHlwZT1cInJhZGlvXCI+YGAgYW5kIGBgPHNlbGVjdD5gYCBhcmUKKyAgICAgICAgYm90aCByZXByZXNlbnRlZCBhcyBzaW5nbGUgZmllbGRzIHdpdGggbXVsdGlwbGUgb3B0aW9ucy4KKyAgICAiIiIKKworICAgICMgQEA6IFRoaXMgcmVhbGx5IHNob3VsZCBiZSB1c2luZyBNZWNoYW5pemUvQ2xpZW50Rm9ybSBvcgorICAgICMgc29tZXRoaW5nLi4uCisKKyAgICBfdGFnX3JlID0gcmUuY29tcGlsZShyJzwoLz8pKFs6YS16MC05X1wtXSopKFtePl0qPyk+JywgcmUuSSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXNwb25zZSwgdGV4dCk6CisgICAgICAgIHNlbGYucmVzcG9uc2UgPSByZXNwb25zZQorICAgICAgICBzZWxmLnRleHQgPSB0ZXh0CisgICAgICAgIHNlbGYuX3BhcnNlX2ZpZWxkcygpCisgICAgICAgIHNlbGYuX3BhcnNlX2FjdGlvbigpCisKKyAgICBkZWYgX3BhcnNlX2ZpZWxkcyhzZWxmKToKKyAgICAgICAgaW5fc2VsZWN0ID0gTm9uZQorICAgICAgICBpbl90ZXh0YXJlYSA9IE5vbmUKKyAgICAgICAgZmllbGRzID0ge30KKyAgICAgICAgZm9yIG1hdGNoIGluIHNlbGYuX3RhZ19yZS5maW5kaXRlcihzZWxmLnRleHQpOgorICAgICAgICAgICAgZW5kID0gbWF0Y2guZ3JvdXAoMSkgPT0gJy8nCisgICAgICAgICAgICB0YWcgPSBtYXRjaC5ncm91cCgyKS5sb3dlcigpCisgICAgICAgICAgICBpZiB0YWcgbm90IGluICgnaW5wdXQnLCAnc2VsZWN0JywgJ29wdGlvbicsICd0ZXh0YXJlYScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnV0dG9uJyk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIHRhZyA9PSAnc2VsZWN0JyBhbmQgZW5kOgorICAgICAgICAgICAgICAgIGFzc2VydCBpbl9zZWxlY3QsICgKKyAgICAgICAgICAgICAgICAgICAgJyVyIHdpdGhvdXQgc3RhcnRpbmcgc2VsZWN0JyAlIG1hdGNoLmdyb3VwKDApKQorICAgICAgICAgICAgICAgIGluX3NlbGVjdCA9IE5vbmUKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgdGFnID09ICd0ZXh0YXJlYScgYW5kIGVuZDoKKyAgICAgICAgICAgICAgICBhc3NlcnQgaW5fdGV4dGFyZWEsICgKKyAgICAgICAgICAgICAgICAgICAgIjwvdGV4dGFyZWE+IHdpdGggbm8gPHRleHRhcmVhPiBhdCAlcyIgJSBtYXRjaC5zdGFydCgpKQorICAgICAgICAgICAgICAgIGluX3RleHRhcmVhWzBdLnZhbHVlID0gaHRtbF91bnF1b3RlKHNlbGYudGV4dFtpbl90ZXh0YXJlYVsxXTptYXRjaC5zdGFydCgpXSkKKyAgICAgICAgICAgICAgICBpbl90ZXh0YXJlYSA9IE5vbmUKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgZW5kOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBhdHRycyA9IF9wYXJzZV9hdHRycyhtYXRjaC5ncm91cCgzKSkKKyAgICAgICAgICAgIGlmICduYW1lJyBpbiBhdHRyczoKKyAgICAgICAgICAgICAgICBuYW1lID0gYXR0cnMucG9wKCduYW1lJykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbmFtZSA9IE5vbmUKKyAgICAgICAgICAgIGlmIHRhZyA9PSAnb3B0aW9uJzoKKyAgICAgICAgICAgICAgICBpbl9zZWxlY3Qub3B0aW9ucy5hcHBlbmQoKGF0dHJzLmdldCgndmFsdWUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWxlY3RlZCcgaW4gYXR0cnMpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiB0YWcgPT0gJ2lucHV0JyBhbmQgYXR0cnMuZ2V0KCd0eXBlJykgPT0gJ3JhZGlvJzoKKyAgICAgICAgICAgICAgICBmaWVsZCA9IGZpZWxkcy5nZXQobmFtZSkKKyAgICAgICAgICAgICAgICBpZiBub3QgZmllbGQ6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkID0gUmFkaW8oc2VsZiwgdGFnLCBuYW1lLCBtYXRjaC5zdGFydCgpLCAqKmF0dHJzKQorICAgICAgICAgICAgICAgICAgICBmaWVsZHMuc2V0ZGVmYXVsdChuYW1lLCBbXSkuYXBwZW5kKGZpZWxkKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkID0gZmllbGRbMF0KKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmllbGQsIFJhZGlvKQorICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuYXBwZW5kKChhdHRycy5nZXQoJ3ZhbHVlJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGVja2VkJyBpbiBhdHRycykpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRhZ190eXBlID0gdGFnCisgICAgICAgICAgICBpZiB0YWcgPT0gJ2lucHV0JzoKKyAgICAgICAgICAgICAgICB0YWdfdHlwZSA9IGF0dHJzLmdldCgndHlwZScsICd0ZXh0JykubG93ZXIoKQorICAgICAgICAgICAgRmllbGRDbGFzcyA9IEZpZWxkLmNsYXNzZXMuZ2V0KHRhZ190eXBlLCBGaWVsZCkKKyAgICAgICAgICAgIGZpZWxkID0gRmllbGRDbGFzcyhzZWxmLCB0YWcsIG5hbWUsIG1hdGNoLnN0YXJ0KCksICoqYXR0cnMpCisgICAgICAgICAgICBpZiB0YWcgPT0gJ3RleHRhcmVhJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IGluX3RleHRhcmVhLCAoCisgICAgICAgICAgICAgICAgICAgICJOZXN0ZWQgdGV4dGFyZWFzOiAlciBhbmQgJXIiCisgICAgICAgICAgICAgICAgICAgICUgKGluX3RleHRhcmVhLCBtYXRjaC5ncm91cCgwKSkpCisgICAgICAgICAgICAgICAgaW5fdGV4dGFyZWEgPSBmaWVsZCwgbWF0Y2guZW5kKCkKKyAgICAgICAgICAgIGVsaWYgdGFnID09ICdzZWxlY3QnOgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgaW5fc2VsZWN0LCAoCisgICAgICAgICAgICAgICAgICAgICJOZXN0ZWQgc2VsZWN0czogJXIgYW5kICVyIgorICAgICAgICAgICAgICAgICAgICAlIChpbl9zZWxlY3QsIG1hdGNoLmdyb3VwKDApKSkKKyAgICAgICAgICAgICAgICBpbl9zZWxlY3QgPSBmaWVsZAorICAgICAgICAgICAgZmllbGRzLnNldGRlZmF1bHQobmFtZSwgW10pLmFwcGVuZChmaWVsZCkKKyAgICAgICAgc2VsZi5maWVsZHMgPSBmaWVsZHMKKworICAgIGRlZiBfcGFyc2VfYWN0aW9uKHNlbGYpOgorICAgICAgICBzZWxmLmFjdGlvbiA9IE5vbmUKKyAgICAgICAgZm9yIG1hdGNoIGluIHNlbGYuX3RhZ19yZS5maW5kaXRlcihzZWxmLnRleHQpOgorICAgICAgICAgICAgZW5kID0gbWF0Y2guZ3JvdXAoMSkgPT0gJy8nCisgICAgICAgICAgICB0YWcgPSBtYXRjaC5ncm91cCgyKS5sb3dlcigpCisgICAgICAgICAgICBpZiB0YWcgIT0gJ2Zvcm0nOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBlbmQ6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGF0dHJzID0gX3BhcnNlX2F0dHJzKG1hdGNoLmdyb3VwKDMpKQorICAgICAgICAgICAgc2VsZi5hY3Rpb24gPSBhdHRycy5nZXQoJ2FjdGlvbicsICcnKQorICAgICAgICAgICAgc2VsZi5tZXRob2QgPSBhdHRycy5nZXQoJ21ldGhvZCcsICdHRVQnKQorICAgICAgICAgICAgc2VsZi5pZCA9IGF0dHJzLmdldCgnaWQnKQorICAgICAgICAgICAgIyBAQDogZW5jdHlwZT8KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAwLCAiTm8gPC9mb3JtPiB0YWcgZm91bmQiCisgICAgICAgIGFzc2VydCBzZWxmLmFjdGlvbiBpcyBub3QgTm9uZSwgKAorICAgICAgICAgICAgIk5vIDxmb3JtPiB0YWcgZm91bmQiKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldCB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGZpZWxkLiAgSWYgdGhlcmUgaXMgMCBvciBtdWx0aXBsZQorICAgICAgICBmaWVsZHMgYnkgdGhhdCBuYW1lLCBpdCBpcyBhbiBlcnJvci4KKworICAgICAgICBTZXR0aW5nIHRoZSB2YWx1ZSBvZiBhIGBgPHNlbGVjdD5gYCBzZWxlY3RzIHRoZSBnaXZlbiBvcHRpb24KKyAgICAgICAgKGFuZCBjb25maXJtcyBpdCBpcyBhbiBvcHRpb24pLiAgU2V0dGluZyByYWRpbyBmaWVsZHMgZG9lcyB0aGUKKyAgICAgICAgc2FtZS4gIENoZWNrYm94ZXMgZ2V0IGJvb2xlYW4gdmFsdWVzLiAgWW91IGNhbm5vdCBzZXQgaGlkZGVuCisgICAgICAgIGZpZWxkcyBvciBidXR0b25zLgorCisgICAgICAgIFVzZSBgYC5zZXQoKWBgIGlmIHRoZXJlIGlzIGFueSBhbWJpZ3VpdHkgYW5kIHlvdSBtdXN0IHByb3ZpZGUKKyAgICAgICAgYW4gaW5kZXguCisgICAgICAgICIiIgorICAgICAgICBmaWVsZHMgPSBzZWxmLmZpZWxkcy5nZXQobmFtZSkKKyAgICAgICAgYXNzZXJ0IGZpZWxkcyBpcyBub3QgTm9uZSwgKAorICAgICAgICAgICAgIk5vIGZpZWxkIGJ5IHRoZSBuYW1lICVyIGZvdW5kIChmaWVsZHM6ICVzKSIKKyAgICAgICAgICAgICUgKG5hbWUsICcsICcuam9pbihtYXAocmVwciwgc2VsZi5maWVsZHMua2V5cygpKSkpKQorICAgICAgICBhc3NlcnQgbGVuKGZpZWxkcykgPT0gMSwgKAorICAgICAgICAgICAgIk11bHRpcGxlIGZpZWxkcyBtYXRjaCAlcjogJXMiCisgICAgICAgICAgICAlIChuYW1lLCAnLCAnLmpvaW4obWFwKHJlcHIsIGZpZWxkcykpKSkKKyAgICAgICAgZmllbGRzWzBdLnZhbHVlID0gdmFsdWUKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldCB0aGUgbmFtZWQgZmllbGQgb2JqZWN0IChhbWJpZ3VpdHkgaXMgYW4gZXJyb3IpLgorICAgICAgICAiIiIKKyAgICAgICAgZmllbGRzID0gc2VsZi5maWVsZHMuZ2V0KG5hbWUpCisgICAgICAgIGFzc2VydCBmaWVsZHMgaXMgbm90IE5vbmUsICgKKyAgICAgICAgICAgICJObyBmaWVsZCBieSB0aGUgbmFtZSAlciBmb3VuZCIgJSBuYW1lKQorICAgICAgICBhc3NlcnQgbGVuKGZpZWxkcykgPT0gMSwgKAorICAgICAgICAgICAgIk11bHRpcGxlIGZpZWxkcyBtYXRjaCAlcjogJXMiCisgICAgICAgICAgICAlIChuYW1lLCAnLCAnLmpvaW4obWFwKHJlcHIsIGZpZWxkcykpKSkKKyAgICAgICAgcmV0dXJuIGZpZWxkc1swXQorCisgICAgZGVmIHNldChzZWxmLCBuYW1lLCB2YWx1ZSwgaW5kZXg9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXQgdGhlIGdpdmVuIG5hbWUsIHVzaW5nIGBgaW5kZXhgYCB0byBkaXNhbWJpZ3VhdGUuCisgICAgICAgICIiIgorICAgICAgICBpZiBpbmRleCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZltuYW1lXSA9IHZhbHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWVsZHMgPSBzZWxmLmZpZWxkcy5nZXQobmFtZSkKKyAgICAgICAgICAgIGFzc2VydCBmaWVsZHMgaXMgbm90IE5vbmUsICgKKyAgICAgICAgICAgICAgICAiTm8gZmllbGRzIGZvdW5kIG1hdGNoaW5nICVyIiAlIG5hbWUpCisgICAgICAgICAgICBmaWVsZCA9IGZpZWxkc1tpbmRleF0KKyAgICAgICAgICAgIGZpZWxkLnZhbHVlID0gdmFsdWUKKworICAgIGRlZiBnZXQoc2VsZiwgbmFtZSwgaW5kZXg9Tm9uZSwgZGVmYXVsdD1Ob0RlZmF1bHQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0IHRoZSBuYW1lZC9pbmRleGVkIGZpZWxkIG9iamVjdCwgb3IgYGBkZWZhdWx0YGAgaWYgbm8gZmllbGQKKyAgICAgICAgaXMgZm91bmQuCisgICAgICAgICIiIgorICAgICAgICBmaWVsZHMgPSBzZWxmLmZpZWxkcy5nZXQobmFtZSkKKyAgICAgICAgaWYgZmllbGRzIGlzIE5vbmUgYW5kIGRlZmF1bHQgaXMgbm90IE5vRGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0CisgICAgICAgIGlmIGluZGV4IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZltuYW1lXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmllbGRzID0gc2VsZi5maWVsZHMuZ2V0KG5hbWUpCisgICAgICAgICAgICBhc3NlcnQgZmllbGRzIGlzIG5vdCBOb25lLCAoCisgICAgICAgICAgICAgICAgIk5vIGZpZWxkcyBmb3VuZCBtYXRjaGluZyAlciIgJSBuYW1lKQorICAgICAgICAgICAgZmllbGQgPSBmaWVsZHNbaW5kZXhdCisgICAgICAgICAgICByZXR1cm4gZmllbGQKKworICAgIGRlZiBzZWxlY3Qoc2VsZiwgbmFtZSwgdmFsdWUsIGluZGV4PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlrZSBgYC5zZXQoKWBgLCBleGNlcHQgYWxzbyBjb25maXJtcyB0aGUgdGFyZ2V0IGlzIGEKKyAgICAgICAgYGA8c2VsZWN0PmBgLgorICAgICAgICAiIiIKKyAgICAgICAgZmllbGQgPSBzZWxmLmdldChuYW1lLCBpbmRleD1pbmRleCkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmllbGQsIFNlbGVjdCkKKyAgICAgICAgZmllbGQudmFsdWUgPSB2YWx1ZQorCisgICAgZGVmIHN1Ym1pdChzZWxmLCBuYW1lPU5vbmUsIGluZGV4PU5vbmUsICoqYXJncyk6CisgICAgICAgICIiIgorICAgICAgICBTdWJtaXRzIHRoZSBmb3JtLiAgSWYgYGBuYW1lYGAgaXMgZ2l2ZW4sIHRoZW4gYWxzbyBzZWxlY3QgdGhhdAorICAgICAgICBidXR0b24gKHVzaW5nIGBgaW5kZXhgYCB0byBkaXNhbWJpZ3VhdGUpYGAuCisKKyAgICAgICAgQW55IGV4dHJhIGtleXdvcmQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGBgLmdldCgpYGAgb3IKKyAgICAgICAgYGAucG9zdCgpYGAgbWV0aG9kLgorCisgICAgICAgIFJldHVybnMgYSByZXNwb25zZSBvYmplY3QuCisgICAgICAgICIiIgorICAgICAgICBmaWVsZHMgPSBzZWxmLnN1Ym1pdF9maWVsZHMobmFtZSwgaW5kZXg9aW5kZXgpCisgICAgICAgIHJldHVybiBzZWxmLnJlc3BvbnNlLmdvdG8oc2VsZi5hY3Rpb24sIG1ldGhvZD1zZWxmLm1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9ZmllbGRzLCAqKmFyZ3MpCisKKyAgICBkZWYgc3VibWl0X2ZpZWxkcyhzZWxmLCBuYW1lPU5vbmUsIGluZGV4PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiBgYFsobmFtZSwgdmFsdWUpLCAuLi5dYGAgZm9yIHRoZSBjdXJyZW50CisgICAgICAgIHN0YXRlIG9mIHRoZSBmb3JtLgorICAgICAgICAiIiIKKyAgICAgICAgc3VibWl0ID0gW10KKyAgICAgICAgaWYgbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZpZWxkID0gc2VsZi5nZXQobmFtZSwgaW5kZXg9aW5kZXgpCisgICAgICAgICAgICBzdWJtaXQuYXBwZW5kKChmaWVsZC5uYW1lLCBmaWVsZC52YWx1ZV9pZl9zdWJtaXR0ZWQoKSkpCisgICAgICAgIGZvciBuYW1lLCBmaWVsZHMgaW4gc2VsZi5maWVsZHMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGZpZWxkLnZhbHVlCisgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBzdWJtaXQuYXBwZW5kKChuYW1lLCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBzdWJtaXQKKworCitfYXR0cl9yZSA9IHJlLmNvbXBpbGUocicoW149IFxuXHJcdF0rKVsgXG5cclx0XSooPzo9WyBcblxyXHRdKig/OiIoW14iXSopInwoW14iXVteIFxuXHJcdD5dKikpKT8nLCByZS5TKQorCitkZWYgX3BhcnNlX2F0dHJzKHRleHQpOgorICAgIGF0dHJzID0ge30KKyAgICBmb3IgbWF0Y2ggaW4gX2F0dHJfcmUuZmluZGl0ZXIodGV4dCk6CisgICAgICAgIGF0dHJfbmFtZSA9IG1hdGNoLmdyb3VwKDEpLmxvd2VyKCkKKyAgICAgICAgYXR0cl9ib2R5ID0gbWF0Y2guZ3JvdXAoMikgb3IgbWF0Y2guZ3JvdXAoMykKKyAgICAgICAgYXR0cl9ib2R5ID0gaHRtbF91bnF1b3RlKGF0dHJfYm9keSBvciAnJykKKyAgICAgICAgYXR0cnNbYXR0cl9uYW1lXSA9IGF0dHJfYm9keQorICAgIHJldHVybiBhdHRycworCitjbGFzcyBGaWVsZChvYmplY3QpOgorCisgICAgIiIiCisgICAgRmllbGQgb2JqZWN0LgorICAgICIiIgorCisgICAgIyBEaWN0aW9uYXJ5IG9mIGZpZWxkIHR5cGVzIChzZWxlY3QsIHJhZGlvLCBldGMpIHRvIGNsYXNzZXMKKyAgICBjbGFzc2VzID0ge30KKworICAgIHNldHRhYmxlID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZvcm0sIHRhZywgbmFtZSwgcG9zLAorICAgICAgICAgICAgICAgICB2YWx1ZT1Ob25lLCBpZD1Ob25lLCAqKmF0dHJzKToKKyAgICAgICAgc2VsZi5mb3JtID0gZm9ybQorICAgICAgICBzZWxmLnRhZyA9IHRhZworICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYucG9zID0gcG9zCisgICAgICAgIHNlbGYuX3ZhbHVlID0gdmFsdWUKKyAgICAgICAgc2VsZi5pZCA9IGlkCisgICAgICAgIHNlbGYuYXR0cnMgPSBhdHRycworCisgICAgZGVmIHZhbHVlX19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiBub3Qgc2VsZi5zZXR0YWJsZToKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKAorICAgICAgICAgICAgICAgICJZb3UgY2Fubm90IHNldCB0aGUgdmFsdWUgb2YgdGhlIDwlcz4gZmllbGQgJXIiCisgICAgICAgICAgICAgICAgJSAoc2VsZi50YWcsIHNlbGYubmFtZSkpCisgICAgICAgIHNlbGYuX3ZhbHVlID0gdmFsdWUKKworICAgIGRlZiBmb3JjZV92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBMaWtlIHNldHRpbmcgYSB2YWx1ZSwgZXhjZXB0IGZvcmNlcyBpdCBldmVuIGZvciwgc2F5LCBoaWRkZW4KKyAgICAgICAgZmllbGRzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fdmFsdWUgPSB2YWx1ZQorCisgICAgZGVmIHZhbHVlX19nZXQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl92YWx1ZQorCisgICAgdmFsdWUgPSBwcm9wZXJ0eSh2YWx1ZV9fZ2V0LCB2YWx1ZV9fc2V0KQorCitjbGFzcyBTZWxlY3QoRmllbGQpOgorCisgICAgIiIiCisgICAgRmllbGQgcmVwcmVzZW50aW5nIGBgPHNlbGVjdD5gYAorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmF0dHJzKToKKyAgICAgICAgc3VwZXIoU2VsZWN0LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiphdHRycykKKyAgICAgICAgc2VsZi5vcHRpb25zID0gW10KKyAgICAgICAgc2VsZi5tdWx0aXBsZSA9IGF0dHJzLmdldCgnbXVsdGlwbGUnKQorICAgICAgICBhc3NlcnQgbm90IHNlbGYubXVsdGlwbGUsICgKKyAgICAgICAgICAgICI8c2VsZWN0IG11bHRpcGxlPiBub3QgeWV0IHN1cHBvcnRlZCIpCisgICAgICAgICMgVW5kZXRlcm1pbmVkIHlldDoKKyAgICAgICAgc2VsZi5zZWxlY3RlZEluZGV4ID0gTm9uZQorCisgICAgZGVmIHZhbHVlX19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBmb3IgaSwgKG9wdGlvbiwgY2hlY2tlZCkgaW4gZW51bWVyYXRlKHNlbGYub3B0aW9ucyk6CisgICAgICAgICAgICBpZiBvcHRpb24gPT0gc3RyKHZhbHVlKToKKyAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkSW5kZXggPSBpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIk9wdGlvbiAlciBub3QgZm91bmQgKGZyb20gJXMpIgorICAgICAgICAgICAgICAgICUgKHZhbHVlLCAnLCAnLmpvaW4oCisgICAgICAgICAgICAgICAgW3JlcHIobykgZm9yIG8sIGMgaW4gc2VsZi5vcHRpb25zXSkpKQorCisgICAgZGVmIHZhbHVlX19nZXQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuc2VsZWN0ZWRJbmRleCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm9wdGlvbnNbc2VsZi5zZWxlY3RlZEluZGV4XVswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIG9wdGlvbiwgY2hlY2tlZCBpbiBzZWxmLm9wdGlvbnM6CisgICAgICAgICAgICAgICAgaWYgY2hlY2tlZDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLm9wdGlvbnM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm9wdGlvbnNbMF1bMF0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgdmFsdWUgPSBwcm9wZXJ0eSh2YWx1ZV9fZ2V0LCB2YWx1ZV9fc2V0KQorCitGaWVsZC5jbGFzc2VzWydzZWxlY3QnXSA9IFNlbGVjdAorCitjbGFzcyBSYWRpbyhTZWxlY3QpOgorCisgICAgIiIiCisgICAgRmllbGQgcmVwcmVzZW50aW5nIGBgPGlucHV0IHR5cGU9InJhZGlvIj5gYAorICAgICIiIgorCitGaWVsZC5jbGFzc2VzWydyYWRpbyddID0gUmFkaW8KKworY2xhc3MgQ2hlY2tib3goRmllbGQpOgorCisgICAgIiIiCisgICAgRmllbGQgcmVwcmVzZW50aW5nIGBgPGlucHV0IHR5cGU9ImNoZWNrYm94Ij5gYAorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmF0dHJzKToKKyAgICAgICAgc3VwZXIoQ2hlY2tib3gsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmF0dHJzKQorICAgICAgICBzZWxmLmNoZWNrZWQgPSAnY2hlY2tlZCcgaW4gYXR0cnMKKworICAgIGRlZiB2YWx1ZV9fc2V0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5jaGVja2VkID0gbm90IG5vdCB2YWx1ZQorCisgICAgZGVmIHZhbHVlX19nZXQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY2hlY2tlZDoKKyAgICAgICAgICAgIGlmIHNlbGYuX3ZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuICdvbicKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3ZhbHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgdmFsdWUgPSBwcm9wZXJ0eSh2YWx1ZV9fZ2V0LCB2YWx1ZV9fc2V0KQorCitGaWVsZC5jbGFzc2VzWydjaGVja2JveCddID0gQ2hlY2tib3gKKworY2xhc3MgVGV4dChGaWVsZCk6CisgICAgIiIiCisgICAgRmllbGQgcmVwcmVzZW50aW5nIGBgPGlucHV0IHR5cGU9InRleHQiPmBgCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZvcm0sIHRhZywgbmFtZSwgcG9zLAorICAgICAgICAgICAgICAgICB2YWx1ZT0nJywgaWQ9Tm9uZSwgKiphdHRycyk6CisgICAgICAgICN0ZXh0IGZpZWxkcyBkZWZhdWx0IHRvIGVtcHR5IHN0cmluZworICAgICAgICBGaWVsZC5fX2luaXRfXyhzZWxmLCBmb3JtLCB0YWcsIG5hbWUsIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9dmFsdWUsIGlkPWlkLCAqKmF0dHJzKQorCitGaWVsZC5jbGFzc2VzWyd0ZXh0J10gPSBUZXh0CisKK2NsYXNzIFRleHRhcmVhKFRleHQpOgorICAgICIiIgorICAgIEZpZWxkIHJlcHJlc2VudGluZyBgYDx0ZXh0YXJlYT5gYAorICAgICIiIgorCitGaWVsZC5jbGFzc2VzWyd0ZXh0YXJlYSddID0gVGV4dGFyZWEKKworY2xhc3MgSGlkZGVuKFRleHQpOgorICAgICIiIgorICAgIEZpZWxkIHJlcHJlc2VudGluZyBgYDxpbnB1dCB0eXBlPSJoaWRkZW4iPmBgCisgICAgIiIiCisKK0ZpZWxkLmNsYXNzZXNbJ2hpZGRlbiddID0gSGlkZGVuCisKK2NsYXNzIFN1Ym1pdChGaWVsZCk6CisgICAgIiIiCisgICAgRmllbGQgcmVwcmVzZW50aW5nIGBgPGlucHV0IHR5cGU9InN1Ym1pdCI+YGAgYW5kIGBgPGJ1dHRvbj5gYAorICAgICIiIgorCisgICAgc2V0dGFibGUgPSBGYWxzZQorCisgICAgZGVmIHZhbHVlX19nZXQoc2VsZik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICB2YWx1ZSA9IHByb3BlcnR5KHZhbHVlX19nZXQpCisKKyAgICBkZWYgdmFsdWVfaWZfc3VibWl0dGVkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdmFsdWUKKworRmllbGQuY2xhc3Nlc1snc3VibWl0J10gPSBTdWJtaXQKKworRmllbGQuY2xhc3Nlc1snYnV0dG9uJ10gPSBTdWJtaXQKKworRmllbGQuY2xhc3Nlc1snaW1hZ2UnXSA9IFN1Ym1pdAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIENvbW1hbmQtbGluZSB0ZXN0aW5nCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCitjbGFzcyBUZXN0RmlsZUVudmlyb25tZW50KG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBUaGlzIHJlcHJlc2VudHMgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggZmlsZXMgd2lsbCBiZSB3cml0dGVuLCBhbmQKKyAgICBzY3JpcHRzIHdpbGwgYmUgcnVuLgorICAgICIiIgorCisgICAgIyBmb3IgcHkudGVzdAorICAgIGRpc2FibGVkID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJhc2VfcGF0aCwgdGVtcGxhdGVfcGF0aD1Ob25lLAorICAgICAgICAgICAgICAgICBzY3JpcHRfcGF0aD1Ob25lLAorICAgICAgICAgICAgICAgICBlbnZpcm9uPU5vbmUsIGN3ZD1Ob25lLCBzdGFydF9jbGVhcj1UcnVlLAorICAgICAgICAgICAgICAgICBpZ25vcmVfcGF0aHM9Tm9uZSwgaWdub3JlX2hpZGRlbj1UcnVlKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYW4gZW52aXJvbm1lbnQuICBgYGJhc2VfcGF0aGBgIGlzIHVzZWQgYXMgdGhlIGN1cnJlbnQKKyAgICAgICAgd29ya2luZyBkaXJlY3RvcnksIGFuZCBnZW5lcmFsbHkgd2hlcmUgY2hhbmdlcyBhcmUgbG9va2VkIGZvci4KKworICAgICAgICBgYHRlbXBsYXRlX3BhdGhgYCBpcyB0aGUgZGlyZWN0b3J5IHRvIGxvb2sgZm9yICp0ZW1wbGF0ZSoKKyAgICAgICAgZmlsZXMsIHdoaWNoIGFyZSBmaWxlcyB5b3UnbGwgZXhwbGljaXRseSBhZGQgdG8gdGhlCisgICAgICAgIGVudmlyb25tZW50LiAgVGhpcyBpcyBkb25lIHdpdGggYGAud3JpdGVmaWxlKClgYC4KKworICAgICAgICBgYHNjcmlwdF9wYXRoYGAgaXMgdGhlIFBBVEggZm9yIGZpbmRpbmcgZXhlY3V0YWJsZXMuICBVc3VhbGx5CisgICAgICAgIGdyYWJiZWQgZnJvbSBgYCRQQVRIYGAuCisKKyAgICAgICAgYGBlbnZpcm9uYGAgaXMgdGhlIG9wZXJhdGluZyBzeXN0ZW0gZW52aXJvbm1lbnQsCisgICAgICAgIGBgb3MuZW52aXJvbmBgIGlmIG5vdCBnaXZlbi4KKworICAgICAgICBgYGN3ZGBgIGlzIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgYGBiYXNlX3BhdGhgYCBieSBkZWZhdWx0LgorCisgICAgICAgIElmIGBgc3RhcnRfY2xlYXJgYCBpcyB0cnVlIChkZWZhdWx0KSB0aGVuIHRoZSBgYGJhc2VfcGF0aGBgCisgICAgICAgIHdpbGwgYmUgY2xlYXJlZCAoYWxsIGZpbGVzIGRlbGV0ZWQpIHdoZW4gYW4gaW5zdGFuY2UgaXMKKyAgICAgICAgY3JlYXRlZC4gIFlvdSBjYW4gYWxzbyB1c2UgYGAuY2xlYXIoKWBgIHRvIGNsZWFyIHRoZSBmaWxlcy4KKworICAgICAgICBgYGlnbm9yZV9wYXRoc2BgIGlzIGEgc2V0IG9mIHNwZWNpZmljIGZpbGVuYW1lcyB0aGF0IHNob3VsZCBiZQorICAgICAgICBpZ25vcmVkIHdoZW4gY3JlYXRlZCBpbiB0aGUgZW52aXJvbm1lbnQuICBgYGlnbm9yZV9oaWRkZW5gYAorICAgICAgICBtZWFucywgaWYgdHJ1ZSAoZGVmYXVsdCkgdGhhdCBmaWxlbmFtZXMgYW5kIGRpcmVjdG9yaWVzCisgICAgICAgIHN0YXJ0aW5nIHdpdGggYGAnLidgYCB3aWxsIGJlIGlnbm9yZWQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSB0ZW1wbGF0ZV9wYXRoCisgICAgICAgIGlmIGVudmlyb24gaXMgTm9uZToKKyAgICAgICAgICAgIGVudmlyb24gPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisgICAgICAgIGlmIHNjcmlwdF9wYXRoIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgICAgICBzY3JpcHRfcGF0aCA9IGVudmlyb24uZ2V0KCdQQVRIJywgJycpLnNwbGl0KCc7JykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2NyaXB0X3BhdGggPSBlbnZpcm9uLmdldCgnUEFUSCcsICcnKS5zcGxpdCgnOicpCisgICAgICAgIHNlbGYuc2NyaXB0X3BhdGggPSBzY3JpcHRfcGF0aAorICAgICAgICBpZiBjd2QgaXMgTm9uZToKKyAgICAgICAgICAgIGN3ZCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLmN3ZCA9IGN3ZAorICAgICAgICBpZiBzdGFydF9jbGVhcjoKKyAgICAgICAgICAgIHNlbGYuY2xlYXIoKQorICAgICAgICBlbGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhiYXNlX3BhdGgpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMoYmFzZV9wYXRoKQorICAgICAgICBzZWxmLmlnbm9yZV9wYXRocyA9IGlnbm9yZV9wYXRocyBvciBbXQorICAgICAgICBzZWxmLmlnbm9yZV9oaWRkZW4gPSBpZ25vcmVfaGlkZGVuCisKKyAgICBkZWYgcnVuKHNlbGYsIHNjcmlwdCwgKmFyZ3MsICoqa3cpOgorICAgICAgICAiIiIKKyAgICAgICAgUnVuIHRoZSBjb21tYW5kLCB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMuICBUaGUgYGBzY3JpcHRgYAorICAgICAgICBhcmd1bWVudCBjYW4gaGF2ZSBzcGFjZS1zZXBhcmF0ZWQgYXJndW1lbnRzLCBvciB5b3UgY2FuIHVzZQorICAgICAgICB0aGUgcG9zaXRpb25hbCBhcmd1bWVudHMuCisKKyAgICAgICAgS2V5d29yZHMgYWxsb3dlZCBhcmU6CisKKyAgICAgICAgYGBleHBlY3RfZXJyb3JgYDogKGRlZmF1bHQgRmFsc2UpCisgICAgICAgICAgICBEb24ndCByYWlzZSBhbiBleGNlcHRpb24gaW4gY2FzZSBvZiBlcnJvcnMKKyAgICAgICAgYGBleHBlY3Rfc3RkZXJyYGA6IChkZWZhdWx0IGBgZXhwZWN0X2Vycm9yYGApCisgICAgICAgICAgICBEb24ndCByYWlzZSBhbiBleGNlcHRpb24gaWYgYW55dGhpbmcgaXMgcHJpbnRlZCB0byBzdGRlcnIKKyAgICAgICAgYGBzdGRpbmBgOiAoZGVmYXVsdCBgYCIiYGApCisgICAgICAgICAgICBJbnB1dCB0byB0aGUgc2NyaXB0CisgICAgICAgIGBgcHJpbnRyZXN1bHRgYDogKGRlZmF1bHQgVHJ1ZSkKKyAgICAgICAgICAgIFByaW50IHRoZSByZXN1bHQgYWZ0ZXIgcnVubmluZworICAgICAgICBgYGN3ZGBgOiAoZGVmYXVsdCBgYHNlbGYuY3dkYGApCisgICAgICAgICAgICBUaGUgd29ya2luZyBkaXJlY3RvcnkgdG8gcnVuIGluCisKKyAgICAgICAgUmV0dXJucyBhIGBQcm9jUmVzcG9uc2UKKyAgICAgICAgPGNsYXNzLXBhc3RlLmZpeHR1cmUuUHJvY1Jlc3BvbnNlLmh0bWw+YF8gb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGV4cGVjdF9lcnJvciA9IF9wb3BnZXQoa3csICdleHBlY3RfZXJyb3InLCBGYWxzZSkKKyAgICAgICAgZXhwZWN0X3N0ZGVyciA9IF9wb3BnZXQoa3csICdleHBlY3Rfc3RkZXJyJywgZXhwZWN0X2Vycm9yKQorICAgICAgICBjd2QgPSBfcG9wZ2V0KGt3LCAnY3dkJywgc2VsZi5jd2QpCisgICAgICAgIHN0ZGluID0gX3BvcGdldChrdywgJ3N0ZGluJywgTm9uZSkKKyAgICAgICAgcHJpbnRyZXN1bHQgPSBfcG9wZ2V0KGt3LCAncHJpbnRyZXN1bHQnLCBUcnVlKQorICAgICAgICBhcmdzID0gbGlzdChtYXAoc3RyLCBhcmdzKSkKKyAgICAgICAgYXNzZXJ0IG5vdCBrdywgKAorICAgICAgICAgICAgIkFyZ3VtZW50cyBub3QgZXhwZWN0ZWQ6ICVzIiAlICcsICcuam9pbihrdy5rZXlzKCkpKQorICAgICAgICBpZiAnICcgaW4gc2NyaXB0OgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBhcmdzLCAoCisgICAgICAgICAgICAgICAgIllvdSBjYW5ub3QgZ2l2ZSBhIG11bHRpLWFyZ3VtZW50IHNjcmlwdCAoJXIpICIKKyAgICAgICAgICAgICAgICAiYW5kIGFyZ3VtZW50cyAoJXMpIiAlIChzY3JpcHQsIGFyZ3MpKQorICAgICAgICAgICAgc2NyaXB0LCBhcmdzID0gc2NyaXB0LnNwbGl0KE5vbmUsIDEpCisgICAgICAgICAgICBhcmdzID0gc2hsZXguc3BsaXQoYXJncykKKyAgICAgICAgc2NyaXB0ID0gc2VsZi5fZmluZF9leGUoc2NyaXB0KQorICAgICAgICBhbGwgPSBbc2NyaXB0XSArIGFyZ3MKKyAgICAgICAgZmlsZXNfYmVmb3JlID0gc2VsZi5fZmluZF9maWxlcygpCisgICAgICAgIHByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKGFsbCwgc3RkaW49c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9Y3dkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9c2VsZi5lbnZpcm9uKQorICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHByb2MuY29tbXVuaWNhdGUoc3RkaW4pCisgICAgICAgIGZpbGVzX2FmdGVyID0gc2VsZi5fZmluZF9maWxlcygpCisgICAgICAgIHJlc3VsdCA9IFByb2NSZXN1bHQoCisgICAgICAgICAgICBzZWxmLCBhbGwsIHN0ZGluLCBzdGRvdXQsIHN0ZGVyciwKKyAgICAgICAgICAgIHJldHVybmNvZGU9cHJvYy5yZXR1cm5jb2RlLAorICAgICAgICAgICAgZmlsZXNfYmVmb3JlPWZpbGVzX2JlZm9yZSwKKyAgICAgICAgICAgIGZpbGVzX2FmdGVyPWZpbGVzX2FmdGVyKQorICAgICAgICBpZiBwcmludHJlc3VsdDoKKyAgICAgICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgIHByaW50KCctJyo0MCkKKyAgICAgICAgaWYgbm90IGV4cGVjdF9lcnJvcjoKKyAgICAgICAgICAgIHJlc3VsdC5hc3NlcnRfbm9fZXJyb3IoKQorICAgICAgICBpZiBub3QgZXhwZWN0X3N0ZGVycjoKKyAgICAgICAgICAgIHJlc3VsdC5hc3NlcnRfbm9fc3RkZXJyKCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIF9maW5kX2V4ZShzZWxmLCBzY3JpcHRfbmFtZSk6CisgICAgICAgIGlmIHNlbGYuc2NyaXB0X3BhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHNjcmlwdF9uYW1lID0gb3MucGF0aC5qb2luKHNlbGYuY3dkLCBzY3JpcHRfbmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzY3JpcHRfbmFtZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIlNjcmlwdCAlcyBkb2VzIG5vdCBleGlzdCIgJSBzY3JpcHRfbmFtZSkKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHRfbmFtZQorICAgICAgICBmb3IgcGF0aCBpbiBzZWxmLnNjcmlwdF9wYXRoOgorICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4ocGF0aCwgc2NyaXB0X25hbWUpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhmbik6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZuCisgICAgICAgIHJhaXNlIE9TRXJyb3IoCisgICAgICAgICAgICAiU2NyaXB0ICVzIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiAlcyIKKyAgICAgICAgICAgICUgKHNjcmlwdF9uYW1lLCAnOicuam9pbihzZWxmLnNjcmlwdF9wYXRoKSkpCisKKyAgICBkZWYgX2ZpbmRfZmlsZXMoc2VsZik6CisgICAgICAgIHJlc3VsdCA9IHt9CisgICAgICAgIGZvciBmbiBpbiBvcy5saXN0ZGlyKHNlbGYuYmFzZV9wYXRoKToKKyAgICAgICAgICAgIGlmIHNlbGYuX2lnbm9yZV9maWxlKGZuKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgc2VsZi5fZmluZF90cmF2ZXJzZShmbiwgcmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgX2lnbm9yZV9maWxlKHNlbGYsIGZuKToKKyAgICAgICAgaWYgZm4gaW4gc2VsZi5pZ25vcmVfcGF0aHM6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBzZWxmLmlnbm9yZV9oaWRkZW4gYW5kIG9zLnBhdGguYmFzZW5hbWUoZm4pLnN0YXJ0c3dpdGgoJy4nKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9maW5kX3RyYXZlcnNlKHNlbGYsIHBhdGgsIHJlc3VsdCk6CisgICAgICAgIGZ1bGwgPSBvcy5wYXRoLmpvaW4oc2VsZi5iYXNlX3BhdGgsIHBhdGgpCisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZnVsbCk6CisgICAgICAgICAgICByZXN1bHRbcGF0aF0gPSBGb3VuZERpcihzZWxmLmJhc2VfcGF0aCwgcGF0aCkKKyAgICAgICAgICAgIGZvciBmbiBpbiBvcy5saXN0ZGlyKGZ1bGwpOgorICAgICAgICAgICAgICAgIGZuID0gb3MucGF0aC5qb2luKHBhdGgsIGZuKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2lnbm9yZV9maWxlKGZuKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBzZWxmLl9maW5kX3RyYXZlcnNlKGZuLCByZXN1bHQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHRbcGF0aF0gPSBGb3VuZEZpbGUoc2VsZi5iYXNlX3BhdGgsIHBhdGgpCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBEZWxldGUgYWxsIHRoZSBmaWxlcyBpbiB0aGUgYmFzZSBkaXJlY3RvcnkuCisgICAgICAgICIiIgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzZWxmLmJhc2VfcGF0aCk6CisgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuYmFzZV9wYXRoKQorICAgICAgICBvcy5ta2RpcihzZWxmLmJhc2VfcGF0aCkKKworICAgIGRlZiB3cml0ZWZpbGUoc2VsZiwgcGF0aCwgY29udGVudD1Ob25lLAorICAgICAgICAgICAgICAgICAgZnJvbXBhdGg9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBXcml0ZSBhIGZpbGUgdG8gdGhlIGdpdmVuIHBhdGguICBJZiBgYGNvbnRlbnRgYCBpcyBnaXZlbiB0aGVuCisgICAgICAgIHRoYXQgdGV4dCBpcyB3cml0dGVuLCBvdGhlcndpc2UgdGhlIGZpbGUgaW4gYGBmcm9tcGF0aGBgIGlzCisgICAgICAgIHVzZWQuICBgYGZyb21wYXRoYGAgaXMgcmVsYXRpdmUgdG8gYGBzZWxmLnRlbXBsYXRlX3BhdGhgYAorICAgICAgICAiIiIKKyAgICAgICAgZnVsbCA9IG9zLnBhdGguam9pbihzZWxmLmJhc2VfcGF0aCwgcGF0aCkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguZGlybmFtZShmdWxsKSk6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhvcy5wYXRoLmRpcm5hbWUoZnVsbCkpCisgICAgICAgIGYgPSBvcGVuKGZ1bGwsICd3YicpCisgICAgICAgIGlmIGNvbnRlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmLndyaXRlKGNvbnRlbnQpCisgICAgICAgIGlmIGZyb21wYXRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgc2VsZi50ZW1wbGF0ZV9wYXRoOgorICAgICAgICAgICAgICAgIGZyb21wYXRoID0gb3MucGF0aC5qb2luKHNlbGYudGVtcGxhdGVfcGF0aCwgZnJvbXBhdGgpCisgICAgICAgICAgICBmMiA9IG9wZW4oZnJvbXBhdGgsICdyYicpCisgICAgICAgICAgICBmLndyaXRlKGYyLnJlYWQoKSkKKyAgICAgICAgICAgIGYyLmNsb3NlKCkKKyAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHJldHVybiBGb3VuZEZpbGUoc2VsZi5iYXNlX3BhdGgsIHBhdGgpCisKK2NsYXNzIFByb2NSZXN1bHQob2JqZWN0KToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgdGhlIHJlc3VsdHMgb2YgcnVubmluZyBhIGNvbW1hbmQgaW4KKyAgICBgVGVzdEZpbGVFbnZpcm9ubWVudAorICAgIDxjbGFzcy1wYXN0ZS5maXh0dXJlLlRlc3RGaWxlRW52aXJvbm1lbnQuaHRtbD5gXy4KKworICAgIEF0dHJpYnV0ZXMgdG8gcGF5IHBhcnRpY3VsYXIgYXR0ZW50aW9uIHRvOgorCisgICAgYGBzdGRvdXRgYCwgYGBzdGRlcnJgYDoKKyAgICAgICAgV2hhdCBpcyBwcm9kdWNlZAorCisgICAgYGBmaWxlc19jcmVhdGVkYGAsIGBgZmlsZXNfZGVsZXRlZGBgLCBgYGZpbGVzX3VwZGF0ZWRgYDoKKyAgICAgICAgRGljdGlvbmFyaWVzIG1hcHBpbmcgZmlsZW5hbWVzIChyZWxhdGl2ZSB0byB0aGUgYGBiYXNlX2RpcmBgKQorICAgICAgICB0byBgRm91bmRGaWxlIDxjbGFzcy1wYXN0ZS5maXh0dXJlLkZvdW5kRmlsZS5odG1sPmBfIG9yCisgICAgICAgIGBGb3VuZERpciA8Y2xhc3MtcGFzdGUuZml4dHVyZS5Gb3VuZERpci5odG1sPmBfIG9iamVjdHMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9lbnYsIGFyZ3MsIHN0ZGluLCBzdGRvdXQsIHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgcmV0dXJuY29kZSwgZmlsZXNfYmVmb3JlLCBmaWxlc19hZnRlcik6CisgICAgICAgIHNlbGYudGVzdF9lbnYgPSB0ZXN0X2VudgorICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzCisgICAgICAgIHNlbGYuc3RkaW4gPSBzdGRpbgorICAgICAgICBzZWxmLnN0ZG91dCA9IHN0ZG91dAorICAgICAgICBzZWxmLnN0ZGVyciA9IHN0ZGVycgorICAgICAgICBzZWxmLnJldHVybmNvZGUgPSByZXR1cm5jb2RlCisgICAgICAgIHNlbGYuZmlsZXNfYmVmb3JlID0gZmlsZXNfYmVmb3JlCisgICAgICAgIHNlbGYuZmlsZXNfYWZ0ZXIgPSBmaWxlc19hZnRlcgorICAgICAgICBzZWxmLmZpbGVzX2RlbGV0ZWQgPSB7fQorICAgICAgICBzZWxmLmZpbGVzX3VwZGF0ZWQgPSB7fQorICAgICAgICBzZWxmLmZpbGVzX2NyZWF0ZWQgPSBmaWxlc19hZnRlci5jb3B5KCkKKyAgICAgICAgZm9yIHBhdGgsIGYgaW4gZmlsZXNfYmVmb3JlLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBwYXRoIG5vdCBpbiBmaWxlc19hZnRlcjoKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVzX2RlbGV0ZWRbcGF0aF0gPSBmCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGRlbCBzZWxmLmZpbGVzX2NyZWF0ZWRbcGF0aF0KKyAgICAgICAgICAgIGlmIGYubXRpbWUgPCBmaWxlc19hZnRlcltwYXRoXS5tdGltZToKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVzX3VwZGF0ZWRbcGF0aF0gPSBmaWxlc19hZnRlcltwYXRoXQorCisgICAgZGVmIGFzc2VydF9ub19lcnJvcihzZWxmKToKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGFzc2VydCBzZWxmLnJldHVybmNvZGUgPT0gMCwgKAorICAgICAgICAgICAgIlNjcmlwdCByZXR1cm5lZCBjb2RlOiAlcyIgJSBzZWxmLnJldHVybmNvZGUpCisKKyAgICBkZWYgYXNzZXJ0X25vX3N0ZGVycihzZWxmKToKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGlmIHNlbGYuc3RkZXJyOgorICAgICAgICAgICAgcHJpbnQoJ0Vycm9yIG91dHB1dDonKQorICAgICAgICAgICAgcHJpbnQoc2VsZi5zdGRlcnIpCisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigic3RkZXJyIG91dHB1dCBub3QgZXhwZWN0ZWQiKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHMgPSBbJ1NjcmlwdCByZXN1bHQ6ICVzJyAlICcgJy5qb2luKHNlbGYuYXJncyldCisgICAgICAgIGlmIHNlbGYucmV0dXJuY29kZToKKyAgICAgICAgICAgIHMuYXBwZW5kKCcgIHJldHVybiBjb2RlOiAlcycgJSBzZWxmLnJldHVybmNvZGUpCisgICAgICAgIGlmIHNlbGYuc3RkZXJyOgorICAgICAgICAgICAgcy5hcHBlbmQoJy0tIHN0ZGVycjogLS0tLS0tLS0tLS0tLS0tLS0tLS0nKQorICAgICAgICAgICAgcy5hcHBlbmQoc2VsZi5zdGRlcnIpCisgICAgICAgIGlmIHNlbGYuc3Rkb3V0OgorICAgICAgICAgICAgcy5hcHBlbmQoJy0tIHN0ZG91dDogLS0tLS0tLS0tLS0tLS0tLS0tLS0nKQorICAgICAgICAgICAgcy5hcHBlbmQoc2VsZi5zdGRvdXQpCisgICAgICAgIGZvciBuYW1lLCBmaWxlcywgc2hvd19zaXplIGluIFsKKyAgICAgICAgICAgICgnY3JlYXRlZCcsIHNlbGYuZmlsZXNfY3JlYXRlZCwgVHJ1ZSksCisgICAgICAgICAgICAoJ2RlbGV0ZWQnLCBzZWxmLmZpbGVzX2RlbGV0ZWQsIFRydWUpLAorICAgICAgICAgICAgKCd1cGRhdGVkJywgc2VsZi5maWxlc191cGRhdGVkLCBUcnVlKV06CisgICAgICAgICAgICBpZiBmaWxlczoKKyAgICAgICAgICAgICAgICBzLmFwcGVuZCgnLS0gJXM6IC0tLS0tLS0tLS0tLS0tLS0tLS0nICUgbmFtZSkKKyAgICAgICAgICAgICAgICBmaWxlcyA9IGZpbGVzLml0ZW1zKCkKKyAgICAgICAgICAgICAgICBmaWxlcy5zb3J0KCkKKyAgICAgICAgICAgICAgICBsYXN0ID0gJycKKyAgICAgICAgICAgICAgICBmb3IgcGF0aCwgZiBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICAgICAgdCA9ICcgICVzJyAlIF9zcGFjZV9wcmVmaXgobGFzdCwgcGF0aCwgaW5kZW50PTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfc2VwPUZhbHNlKQorICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcGF0aAorICAgICAgICAgICAgICAgICAgICBpZiBzaG93X3NpemUgYW5kIGYuc2l6ZSAhPSAnTi9BJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHQgKz0gJyAgKCVzIGJ5dGVzKScgJSBmLnNpemUKKyAgICAgICAgICAgICAgICAgICAgcy5hcHBlbmQodCkKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihzKQorCitjbGFzcyBGb3VuZEZpbGUob2JqZWN0KToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgYSBzaW5nbGUgZmlsZSBmb3VuZCBhcyB0aGUgcmVzdWx0IG9mIGEgY29tbWFuZC4KKworICAgIEhhcyBhdHRyaWJ1dGVzOgorCisgICAgYGBwYXRoYGA6CisgICAgICAgIFRoZSBwYXRoIG9mIHRoZSBmaWxlLCByZWxhdGl2ZSB0byB0aGUgYGBiYXNlX3BhdGhgYAorCisgICAgYGBmdWxsYGA6CisgICAgICAgIFRoZSBmdWxsIHBhdGgKKworICAgIGBgc3RhdGBgOgorICAgICAgICBUaGUgcmVzdWx0cyBvZiBgYG9zLnN0YXRgYC4gIEFsc28gYGBtdGltZWBgIGFuZCBgYHNpemVgYAorICAgICAgICBjb250YWluIHRoZSBgYC5zdF9tdGltZWBgIGFuZCBgYHN0X3NpemVgYCBvZiB0aGUgc3RhdC4KKworICAgIGBgYnl0ZXNgYDoKKyAgICAgICAgVGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlLgorCisgICAgWW91IG1heSB1c2UgdGhlIGBgaW5gYCBvcGVyYXRvciB3aXRoIHRoZXNlIG9iamVjdHMgKHRlc3RlZCBhZ2FpbnN0CisgICAgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlKSwgYW5kIHRoZSBgYC5tdXN0Y29udGFpbigpYGAgbWV0aG9kLgorICAgICIiIgorCisgICAgZmlsZSA9IFRydWUKKyAgICBkaXIgPSBGYWxzZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJhc2VfcGF0aCwgcGF0aCk6CisgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9wYXRoCisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi5mdWxsID0gb3MucGF0aC5qb2luKGJhc2VfcGF0aCwgcGF0aCkKKyAgICAgICAgc2VsZi5zdGF0ID0gb3Muc3RhdChzZWxmLmZ1bGwpCisgICAgICAgIHNlbGYubXRpbWUgPSBzZWxmLnN0YXQuc3RfbXRpbWUKKyAgICAgICAgc2VsZi5zaXplID0gc2VsZi5zdGF0LnN0X3NpemUKKyAgICAgICAgc2VsZi5fYnl0ZXMgPSBOb25lCisKKyAgICBkZWYgYnl0ZXNfX2dldChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fYnl0ZXMgaXMgTm9uZToKKyAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYuZnVsbCwgJ3JiJykKKyAgICAgICAgICAgIHNlbGYuX2J5dGVzID0gZi5yZWFkKCkKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICByZXR1cm4gc2VsZi5fYnl0ZXMKKyAgICBieXRlcyA9IHByb3BlcnR5KGJ5dGVzX19nZXQpCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIHMpOgorICAgICAgICByZXR1cm4gcyBpbiBzZWxmLmJ5dGVzCisKKyAgICBkZWYgbXVzdGNvbnRhaW4oc2VsZiwgcyk6CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBieXRlc18gPSBzZWxmLmJ5dGVzCisgICAgICAgIGlmIHMgbm90IGluIGJ5dGVzXzoKKyAgICAgICAgICAgIHByaW50KCdDb3VsZCBub3QgZmluZCAlciBpbjonICUgcykKKyAgICAgICAgICAgIHByaW50KGJ5dGVzXykKKyAgICAgICAgICAgIGFzc2VydCBzIGluIGJ5dGVzXworCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzwlcyAlczolcz4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBzZWxmLmJhc2VfcGF0aCwgc2VsZi5wYXRoKQorCitjbGFzcyBGb3VuZERpcihvYmplY3QpOgorCisgICAgIiIiCisgICAgUmVwcmVzZW50cyBhIGRpcmVjdG9yeSBjcmVhdGVkIGJ5IGEgY29tbWFuZC4KKyAgICAiIiIKKworICAgIGZpbGUgPSBGYWxzZQorICAgIGRpciA9IFRydWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiYXNlX3BhdGgsIHBhdGgpOgorICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLnBhdGggPSBwYXRoCisgICAgICAgIHNlbGYuZnVsbCA9IG9zLnBhdGguam9pbihiYXNlX3BhdGgsIHBhdGgpCisgICAgICAgIHNlbGYuc2l6ZSA9ICdOL0EnCisgICAgICAgIHNlbGYubXRpbWUgPSAnTi9BJworCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzwlcyAlczolcz4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBzZWxmLmJhc2VfcGF0aCwgc2VsZi5wYXRoKQorCitkZWYgX3BvcGdldChkLCBrZXksIGRlZmF1bHQ9Tm9uZSk6CisgICAgIiIiCisgICAgUG9wIHRoZSBrZXkgaWYgZm91bmQgKGVsc2UgcmV0dXJuIGRlZmF1bHQpCisgICAgIiIiCisgICAgaWYga2V5IGluIGQ6CisgICAgICAgIHJldHVybiBkLnBvcChrZXkpCisgICAgcmV0dXJuIGRlZmF1bHQKKworZGVmIF9zcGFjZV9wcmVmaXgocHJlZiwgZnVsbCwgc2VwPU5vbmUsIGluZGVudD1Ob25lLCBpbmNsdWRlX3NlcD1UcnVlKToKKyAgICAiIiIKKyAgICBBbnl0aGluZyBzaGFyZWQgYnkgcHJlZiBhbmQgZnVsbCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggc3BhY2VzCisgICAgaW4gZnVsbCwgYW5kIGZ1bGwgcmV0dXJuZWQuCisgICAgIiIiCisgICAgaWYgc2VwIGlzIE5vbmU6CisgICAgICAgIHNlcCA9IG9zLnBhdGguc2VwCisgICAgcHJlZiA9IHByZWYuc3BsaXQoc2VwKQorICAgIGZ1bGwgPSBmdWxsLnNwbGl0KHNlcCkKKyAgICBwYWRkaW5nID0gW10KKyAgICB3aGlsZSBwcmVmIGFuZCBmdWxsIGFuZCBwcmVmWzBdID09IGZ1bGxbMF06CisgICAgICAgIGlmIGluZGVudCBpcyBOb25lOgorICAgICAgICAgICAgcGFkZGluZy5hcHBlbmQoJyAnICogKGxlbihmdWxsWzBdKSArIGxlbihzZXApKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhZGRpbmcuYXBwZW5kKCcgJyAqIGluZGVudCkKKyAgICAgICAgZnVsbC5wb3AoMCkKKyAgICAgICAgcHJlZi5wb3AoMCkKKyAgICBpZiBwYWRkaW5nOgorICAgICAgICBpZiBpbmNsdWRlX3NlcDoKKyAgICAgICAgICAgIHJldHVybiAnJy5qb2luKHBhZGRpbmcpICsgc2VwICsgc2VwLmpvaW4oZnVsbCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAnJy5qb2luKHBhZGRpbmcpICsgc2VwLmpvaW4oZnVsbCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gc2VwLmpvaW4oZnVsbCkKKworZGVmIF9tYWtlX3BhdHRlcm4ocGF0KToKKyAgICBpZiBwYXQgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICBpZiBpc2luc3RhbmNlKHBhdCwgKHNpeC5iaW5hcnlfdHlwZSwgc2l4LnRleHRfdHlwZSkpOgorICAgICAgICBwYXQgPSByZS5jb21waWxlKHBhdCkKKyAgICBpZiBoYXNhdHRyKHBhdCwgJ3NlYXJjaCcpOgorICAgICAgICByZXR1cm4gcGF0LnNlYXJjaAorICAgIGlmIGNhbGxhYmxlKHBhdCk6CisgICAgICAgIHJldHVybiBwYXQKKyAgICBhc3NlcnQgMCwgKAorICAgICAgICAiQ2Fubm90IG1ha2UgY2FsbGFibGUgcGF0dGVybiBvYmplY3Qgb3V0IG9mICVyIiAlIHBhdCkKKworZGVmIHNldHVwX21vZHVsZShtb2R1bGU9Tm9uZSk6CisgICAgIiIiCisgICAgVGhpcyBpcyB1c2VkIGJ5IHB5LnRlc3QgaWYgaXQgaXMgaW4gdGhlIG1vZHVsZSwgc28geW91IGNhbgorICAgIGltcG9ydCB0aGlzIGRpcmVjdGx5LgorCisgICAgVXNlIGxpa2U6OgorCisgICAgICAgIGZyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgc2V0dXBfbW9kdWxlCisgICAgIiIiCisgICAgIyBEZXByZWNhdGVkIEp1bmUgMjAwOAorICAgIGltcG9ydCB3YXJuaW5ncworICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICdzZXR1cF9tb2R1bGUgaXMgZGVwcmVjYXRlZCcsCisgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICBpZiBtb2R1bGUgaXMgTm9uZToKKyAgICAgICAgIyBUaGUgbW9kdWxlIHdlIHdlcmUgY2FsbGVkIGZyb20gbXVzdCBiZSB0aGUgbW9kdWxlLi4uCisgICAgICAgIG1vZHVsZSA9IHN5cy5fZ2V0ZnJhbWUoKS5mX2JhY2suZl9nbG9iYWxzWydfX25hbWVfXyddCisgICAgaWYgaXNpbnN0YW5jZShtb2R1bGUsIChzaXguYmluYXJ5X3R5cGUsIHNpeC50ZXh0X3R5cGUpKToKKyAgICAgICAgbW9kdWxlID0gc3lzLm1vZHVsZXNbbW9kdWxlXQorICAgIGlmIGhhc2F0dHIobW9kdWxlLCAncmVzZXRfc3RhdGUnKToKKyAgICAgICAgbW9kdWxlLnJlc2V0X3N0YXRlKCkKKworZGVmIGh0bWxfdW5xdW90ZSh2KToKKyAgICAiIiIKKyAgICBVbnF1b3RlIChzb21lKSBlbnRpdGllcyBpbiBIVE1MLiAgKGluY29tcGxldGUpCisgICAgIiIiCisgICAgZm9yIGVudCwgcmVwbCBpbiBbKCcmbmJzcDsnLCAnICcpLCAoJyZndDsnLCAnPicpLAorICAgICAgICAgICAgICAgICAgICAgICgnJmx0OycsICc8JyksICgnJnF1b3Q7JywgJyInKSwKKyAgICAgICAgICAgICAgICAgICAgICAoJyZhbXA7JywgJyYnKV06CisgICAgICAgIHYgPSB2LnJlcGxhY2UoZW50LCByZXBsKQorICAgIHJldHVybiB2CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZmx1cF9zZXNzaW9uLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2ZsdXBfc2Vzc2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjVjNzUwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2ZsdXBfc2Vzc2lvbi5weQpAQCAtMCwwICsxLDEwOCBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCisiIiIKK0NyZWF0ZXMgYSBzZXNzaW9uIG9iamVjdC4KKworSW4geW91ciBhcHBsaWNhdGlvbiwgdXNlOjoKKworICAgIGVudmlyb25bJ3Bhc3RlLmZsdXBfc2Vzc2lvbl9zZXJ2aWNlJ10uc2Vzc2lvbgorCitUaGlzIHdpbGwgcmV0dXJuIGEgZGljdGlvbmFyeS4gIFRoZSBjb250ZW50cyBvZiB0aGlzIGRpY3Rpb25hcnkgd2lsbAorYmUgc2F2ZWQgdG8gZGlzayB3aGVuIHRoZSByZXF1ZXN0IGlzIGNvbXBsZXRlZC4gIFRoZSBzZXNzaW9uIHdpbGwgYmUKK2NyZWF0ZWQgd2hlbiB5b3UgZmlyc3QgZmV0Y2ggdGhlIHNlc3Npb24gZGljdGlvbmFyeSwgYW5kIGEgY29va2llIHdpbGwKK2JlIHNlbnQgaW4gdGhhdCBjYXNlLiAgVGhlcmUncyBjdXJyZW50IG5vIHdheSB0byB1c2Ugc2Vzc2lvbnMgd2l0aG91dAorY29va2llcywgYW5kIHRoZXJlJ3Mgbm8gd2F5IHRvIGRlbGV0ZSBhIHNlc3Npb24gZXhjZXB0IHRvIGNsZWFyIGl0cworZGF0YS4KKyIiIgorCitmcm9tIHBhc3RlIGltcG9ydCBodHRwZXhjZXB0aW9ucworZnJvbSBwYXN0ZSBpbXBvcnQgd3NnaWxpYgoraW1wb3J0IGZsdXAubWlkZGxld2FyZS5zZXNzaW9uCitmbHVwX3Nlc3Npb24gPSBmbHVwLm1pZGRsZXdhcmUuc2Vzc2lvbgorCisjIFRoaXMgaXMgYSBkaWN0aW9uYXJ5IG9mIGV4aXN0aW5nIHN0b3Jlcywga2V5ZWQgYnkgYSB0dXBsZSBvZgorIyBzdG9yZSB0eXBlIGFuZCBwYXJhbWV0ZXJzCitzdG9yZV9jYWNoZSA9IHt9CisKK2NsYXNzIE5vRGVmYXVsdChvYmplY3QpOgorICAgIHBhc3MKKworY2xhc3MgU2Vzc2lvbk1pZGRsZXdhcmUob2JqZWN0KToKKworICAgIHNlc3Npb25fY2xhc3NlcyA9IHsKKyAgICAgICAgJ21lbW9yeSc6IChmbHVwX3Nlc3Npb24uTWVtb3J5U2Vzc2lvblN0b3JlLAorICAgICAgICAgICAgICAgICAgIFsoJ3Nlc3Npb25fdGltZW91dCcsICd0aW1lb3V0JywgaW50LCA2MCldKSwKKyAgICAgICAgJ2Rpc2snOiAoZmx1cF9zZXNzaW9uLkRpc2tTZXNzaW9uU3RvcmUsCisgICAgICAgICAgICAgICAgIFsoJ3Nlc3Npb25fdGltZW91dCcsICd0aW1lb3V0JywgaW50LCA2MCksCisgICAgICAgICAgICAgICAgICAoJ3Nlc3Npb25fZGlyJywgJ3N0b3JlRGlyJywgc3RyLCAnL3RtcC9zZXNzaW9ucycpXSksCisgICAgICAgICdzaGVsdmUnOiAoZmx1cF9zZXNzaW9uLlNoZWx2ZVNlc3Npb25TdG9yZSwKKyAgICAgICAgICAgICAgICAgICBbKCdzZXNzaW9uX3RpbWVvdXQnLCAndGltZW91dCcsIGludCwgNjApLAorICAgICAgICAgICAgICAgICAgICAoJ3Nlc3Npb25fZmlsZScsICdzdG9yZUZpbGUnLCBzdHIsCisgICAgICAgICAgICAgICAgICAgICAnL3RtcC9zZXNzaW9uLnNoZWx2ZScpXSksCisgICAgICAgIH0KKworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwKKyAgICAgICAgICAgICAgICAgZ2xvYmFsX2NvbmY9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc2Vzc2lvbl90eXBlPU5vRGVmYXVsdCwKKyAgICAgICAgICAgICAgICAgY29va2llX25hbWU9Tm9EZWZhdWx0LAorICAgICAgICAgICAgICAgICAqKnN0b3JlX2NvbmZpZworICAgICAgICAgICAgICAgICApOgorICAgICAgICBzZWxmLmFwcGxpY2F0aW9uID0gYXBwCisgICAgICAgIGlmIHNlc3Npb25fdHlwZSBpcyBOb0RlZmF1bHQ6CisgICAgICAgICAgICBzZXNzaW9uX3R5cGUgPSBnbG9iYWxfY29uZi5nZXQoJ3Nlc3Npb25fdHlwZScsICdkaXNrJykKKyAgICAgICAgc2VsZi5zZXNzaW9uX3R5cGUgPSBzZXNzaW9uX3R5cGUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5zdG9yZV9jbGFzcywgc2VsZi5zdG9yZV9hcmdzID0gc2VsZi5zZXNzaW9uX2NsYXNzZXNbc2VsZi5zZXNzaW9uX3R5cGVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKAorICAgICAgICAgICAgICAgICJUaGUgc2Vzc2lvbl90eXBlICVzIGlzIHVua25vd24gKEkga25vdyBhYm91dCAlcykiCisgICAgICAgICAgICAgICAgJSAoc2VsZi5zZXNzaW9uX3R5cGUsCisgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKHNlbGYuc2Vzc2lvbl9jbGFzc2VzLmtleXMoKSkpKQorICAgICAgICBrdyA9IHt9CisgICAgICAgIGZvciBjb25maWdfbmFtZSwga3dfbmFtZSwgY29lcmNlciwgZGVmYXVsdCBpbiBzZWxmLnN0b3JlX2FyZ3M6CisgICAgICAgICAgICB2YWx1ZSA9IGNvZXJjZXIoc3RvcmVfY29uZmlnLmdldChjb25maWdfbmFtZSwgZGVmYXVsdCkpCisgICAgICAgICAgICBrd1trd19uYW1lXSA9IHZhbHVlCisgICAgICAgIHNlbGYuc3RvcmUgPSBzZWxmLnN0b3JlX2NsYXNzKCoqa3cpCisgICAgICAgIGlmIGNvb2tpZV9uYW1lIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgICAgIGNvb2tpZV9uYW1lID0gZ2xvYmFsX2NvbmYuZ2V0KCdzZXNzaW9uX2Nvb2tpZScsICdfU0lEXycpCisgICAgICAgIHNlbGYuY29va2llX25hbWUgPSBjb29raWVfbmFtZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc2VydmljZSA9IGZsdXBfc2Vzc2lvbi5TZXNzaW9uU2VydmljZSgKKyAgICAgICAgICAgIHNlbGYuc3RvcmUsIGVudmlyb24sIGNvb2tpZU5hbWU9c2VsZi5jb29raWVfbmFtZSwKKyAgICAgICAgICAgIGZpZWxkTmFtZT1zZWxmLmNvb2tpZV9uYW1lKQorICAgICAgICBlbnZpcm9uWydwYXN0ZS5mbHVwX3Nlc3Npb25fc2VydmljZSddID0gc2VydmljZQorCisgICAgICAgIGRlZiBjb29raWVfc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgIHNlcnZpY2UuYWRkQ29va2llKGhlYWRlcnMpCisgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbykKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBhcHBfaXRlciA9IHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgY29va2llX3N0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBleGNlcHQgaHR0cGV4Y2VwdGlvbnMuSFRUUEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgaGVhZGVycyA9IChlLmhlYWRlcnMgb3Ige30pLml0ZW1zKCkKKyAgICAgICAgICAgIHNlcnZpY2UuYWRkQ29va2llKGhlYWRlcnMpCisgICAgICAgICAgICBlLmhlYWRlcnMgPSBkaWN0KGhlYWRlcnMpCisgICAgICAgICAgICBzZXJ2aWNlLmNsb3NlKCkKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHNlcnZpY2UuY2xvc2UoKQorICAgICAgICAgICAgcmFpc2UKKworICAgICAgICByZXR1cm4gd3NnaWxpYi5hZGRfY2xvc2UoYXBwX2l0ZXIsIHNlcnZpY2UuY2xvc2UpCisKK2RlZiBtYWtlX3Nlc3Npb25fbWlkZGxld2FyZShhcHAsIGdsb2JhbF9jb25mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fdHlwZT1Ob0RlZmF1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2llX25hbWU9Tm9EZWZhdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqc3RvcmVfY29uZmlnKToKKyAgICAiIiIKKyAgICBXcmFwcyB0aGUgYXBwbGljYXRpb24gaW4gYSBzZXNzaW9uLW1hbmFnaW5nIG1pZGRsZXdhcmUuCisgICAgVGhlIHNlc3Npb24gc2VydmljZSBjYW4gdGhlbiBiZSBmb3VuZCBpbgorICAgIGBgZW52aXJvblsncGFzdGUuZmx1cF9zZXNzaW9uX3NlcnZpY2UnXWBgCisgICAgIiIiCisgICAgcmV0dXJuIFNlc3Npb25NaWRkbGV3YXJlKAorICAgICAgICBhcHAsIGdsb2JhbF9jb25mPWdsb2JhbF9jb25mLAorICAgICAgICBzZXNzaW9uX3R5cGU9c2Vzc2lvbl90eXBlLCBjb29raWVfbmFtZT1jb29raWVfbmFtZSwKKyAgICAgICAgKipzdG9yZV9jb25maWcpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZ3ppcHBlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9nemlwcGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYTg3NzUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvZ3ppcHBlci5weQpAQCAtMCwwICsxLDEwNyBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKKyIiIgorV1NHSSBtaWRkbGV3YXJlCisKK0d6aXAtZW5jb2RlcyB0aGUgcmVzcG9uc2UuCisiIiIKKworaW1wb3J0IGd6aXAKK2Zyb20gcGFzdGUucmVzcG9uc2UgaW1wb3J0IGhlYWRlcl92YWx1ZSwgcmVtb3ZlX2hlYWRlcgorZnJvbSBwYXN0ZS5odHRwaGVhZGVycyBpbXBvcnQgQ09OVEVOVF9MRU5HVEgKK2ltcG9ydCBzaXgKKworY2xhc3MgR3ppcE91dHB1dChvYmplY3QpOgorICAgIHBhc3MKKworY2xhc3MgbWlkZGxld2FyZShvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcGxpY2F0aW9uLCBjb21wcmVzc19sZXZlbD02KToKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uCisgICAgICAgIHNlbGYuY29tcHJlc3NfbGV2ZWwgPSBpbnQoY29tcHJlc3NfbGV2ZWwpCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiAnZ3ppcCcgbm90IGluIGVudmlyb24uZ2V0KCdIVFRQX0FDQ0VQVF9FTkNPRElORycsICcnKToKKyAgICAgICAgICAgICMgbm90aGluZyBmb3IgdXMgdG8gZG8sIHNvIHRoaXMgbWlkZGxld2FyZSB3aWxsCisgICAgICAgICAgICAjIGJlIGEgbm8tb3A6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgcmVzcG9uc2UgPSBHemlwUmVzcG9uc2Uoc3RhcnRfcmVzcG9uc2UsIHNlbGYuY29tcHJlc3NfbGV2ZWwpCisgICAgICAgIGFwcF9pdGVyID0gc2VsZi5hcHBsaWNhdGlvbihlbnZpcm9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ3ppcF9zdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgYXBwX2l0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXNwb25zZS5maW5pc2hfcmVzcG9uc2UoYXBwX2l0ZXIpCisKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlLndyaXRlKCkKKworY2xhc3MgR3ppcFJlc3BvbnNlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhcnRfcmVzcG9uc2UsIGNvbXByZXNzX2xldmVsKToKKyAgICAgICAgc2VsZi5zdGFydF9yZXNwb25zZSA9IHN0YXJ0X3Jlc3BvbnNlCisgICAgICAgIHNlbGYuY29tcHJlc3NfbGV2ZWwgPSBjb21wcmVzc19sZXZlbAorICAgICAgICBzZWxmLmJ1ZmZlciA9IHNpeC5CeXRlc0lPKCkKKyAgICAgICAgc2VsZi5jb21wcmVzc2libGUgPSBGYWxzZQorICAgICAgICBzZWxmLmNvbnRlbnRfbGVuZ3RoID0gTm9uZQorCisgICAgZGVmIGd6aXBfc3RhcnRfcmVzcG9uc2Uoc2VsZiwgc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgc2VsZi5oZWFkZXJzID0gaGVhZGVycworICAgICAgICBjdCA9IGhlYWRlcl92YWx1ZShoZWFkZXJzLCdjb250ZW50LXR5cGUnKQorICAgICAgICBjZSA9IGhlYWRlcl92YWx1ZShoZWFkZXJzLCdjb250ZW50LWVuY29kaW5nJykKKyAgICAgICAgc2VsZi5jb21wcmVzc2libGUgPSBGYWxzZQorICAgICAgICBpZiBjdCBhbmQgKGN0LnN0YXJ0c3dpdGgoJ3RleHQvJykgb3IgY3Quc3RhcnRzd2l0aCgnYXBwbGljYXRpb24vJykpIFwKKyAgICAgICAgICAgIGFuZCAnemlwJyBub3QgaW4gY3Q6CisgICAgICAgICAgICBzZWxmLmNvbXByZXNzaWJsZSA9IFRydWUKKyAgICAgICAgaWYgY2U6CisgICAgICAgICAgICBzZWxmLmNvbXByZXNzaWJsZSA9IEZhbHNlCisgICAgICAgIGlmIHNlbGYuY29tcHJlc3NpYmxlOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCdjb250ZW50LWVuY29kaW5nJywgJ2d6aXAnKSkKKyAgICAgICAgcmVtb3ZlX2hlYWRlcihoZWFkZXJzLCAnY29udGVudC1sZW5ndGgnKQorICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCisgICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCisgICAgICAgIHJldHVybiBzZWxmLmJ1ZmZlci53cml0ZQorCisgICAgZGVmIHdyaXRlKHNlbGYpOgorICAgICAgICBvdXQgPSBzZWxmLmJ1ZmZlcgorICAgICAgICBvdXQuc2VlaygwKQorICAgICAgICBzID0gb3V0LmdldHZhbHVlKCkKKyAgICAgICAgb3V0LmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIFtzXQorCisgICAgZGVmIGZpbmlzaF9yZXNwb25zZShzZWxmLCBhcHBfaXRlcik6CisgICAgICAgIGlmIHNlbGYuY29tcHJlc3NpYmxlOgorICAgICAgICAgICAgb3V0cHV0ID0gZ3ppcC5HemlwRmlsZShtb2RlPSd3YicsIGNvbXByZXNzbGV2ZWw9c2VsZi5jb21wcmVzc19sZXZlbCwKKyAgICAgICAgICAgICAgICBmaWxlb2JqPXNlbGYuYnVmZmVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5idWZmZXIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIHMgaW4gYXBwX2l0ZXI6CisgICAgICAgICAgICAgICAgb3V0cHV0LndyaXRlKHMpCisgICAgICAgICAgICBpZiBzZWxmLmNvbXByZXNzaWJsZToKKyAgICAgICAgICAgICAgICBvdXRwdXQuY2xvc2UoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgaWYgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICAgICAgYXBwX2l0ZXIuY2xvc2UoKQorICAgICAgICBjb250ZW50X2xlbmd0aCA9IHNlbGYuYnVmZmVyLnRlbGwoKQorICAgICAgICBDT05URU5UX0xFTkdUSC51cGRhdGUoc2VsZi5oZWFkZXJzLCBjb250ZW50X2xlbmd0aCkKKyAgICAgICAgc2VsZi5zdGFydF9yZXNwb25zZShzZWxmLnN0YXR1cywgc2VsZi5oZWFkZXJzKQorCitkZWYgZmlsdGVyX2ZhY3RvcnkoYXBwbGljYXRpb24sICoqY29uZik6CisgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgJ1RoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDsgdXNlIG1ha2VfZ3ppcF9taWRkbGV3YXJlIGluc3RlYWQnLAorICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgZGVmIGZpbHRlcihhcHBsaWNhdGlvbik6CisgICAgICAgIHJldHVybiBtaWRkbGV3YXJlKGFwcGxpY2F0aW9uKQorICAgIHJldHVybiBmaWx0ZXIKKworZGVmIG1ha2VfZ3ppcF9taWRkbGV3YXJlKGFwcCwgZ2xvYmFsX2NvbmYsIGNvbXByZXNzX2xldmVsPTYpOgorICAgICIiIgorICAgIFdyYXAgdGhlIG1pZGRsZXdhcmUsIHNvIHRoYXQgaXQgYXBwbGllcyBnemlwcGluZyB0byBhIHJlc3BvbnNlCisgICAgd2hlbiBpdCBpcyBzdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXIgYW5kIHRoZSBjb250ZW50IGlzIG9mCisgICAgdHlwZSBgYHRleHQvKmBgIG9yIGBgYXBwbGljYXRpb24vKmBgCisgICAgIiIiCisgICAgY29tcHJlc3NfbGV2ZWwgPSBpbnQoY29tcHJlc3NfbGV2ZWwpCisgICAgcmV0dXJuIG1pZGRsZXdhcmUoYXBwLCBjb21wcmVzc19sZXZlbD1jb21wcmVzc19sZXZlbCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9odHRwZXhjZXB0aW9ucy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9odHRwZXhjZXB0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjY4YzJkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2h0dHBleGNlcHRpb25zLnB5CkBAIC0wLDAgKzEsNjY3IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIChjKSAyMDA1IElhbiBCaWNraW5nLCBDbGFyayBDLiBFdmFucyBhbmQgY29udHJpYnV0b3JzCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFNvbWUgb2YgdGhpcyBjb2RlIHdhcyBmdW5kZWQgYnkgaHR0cDovL3Byb21ldGhldXNyZXNlYXJjaC5jb20KKyIiIgorSFRUUCBFeGNlcHRpb24gTWlkZGxld2FyZQorCitUaGlzIG1vZHVsZSBwcm9jZXNzZXMgUHl0aG9uIGV4Y2VwdGlvbnMgdGhhdCByZWxhdGUgdG8gSFRUUCBleGNlcHRpb25zCitieSBkZWZpbmluZyBhIHNldCBvZiBleGNlcHRpb25zLCBhbGwgc3ViY2xhc3NlcyBvZiBIVFRQRXhjZXB0aW9uLCBhbmQgYQorcmVxdWVzdCBoYW5kbGVyIChgbWlkZGxld2FyZWApIHRoYXQgY2F0Y2hlcyB0aGVzZSBleGNlcHRpb25zIGFuZCB0dXJucwordGhlbSBpbnRvIHByb3BlciByZXNwb25zZXMuCisKK1RoaXMgbW9kdWxlIGRlZmluZXMgZXhjZXB0aW9ucyBhY2NvcmRpbmcgdG8gUkZDIDIwNjggWzFdXyA6IGNvZGVzIHdpdGgKKzEwMC0zMDAgYXJlIG5vdCByZWFsbHkgZXJyb3JzOyA0MDAncyBhcmUgY2xpZW50IGVycm9ycywgYW5kIDUwMCdzIGFyZQorc2VydmVyIGVycm9ycy4gIEFjY29yZGluZyB0byB0aGUgV1NHSSBzcGVjaWZpY2F0aW9uIFsyXV8gLCB0aGUgYXBwbGljYXRpb24KK2NhbiBjYWxsIGBgc3RhcnRfcmVzcG9uc2VgYCBtb3JlIHRoZW4gb25jZSBvbmx5IHVuZGVyIHR3byBjb25kaXRpb25zOgorKGEpIHRoZSByZXNwb25zZSBoYXMgbm90IHlldCBiZWVuIHNlbnQsIG9yIChiKSBpZiB0aGUgc2Vjb25kIGFuZAorc3Vic2VxdWVudCBpbnZvY2F0aW9ucyBvZiBgYHN0YXJ0X3Jlc3BvbnNlYGAgaGF2ZSBhIHZhbGlkIGBgZXhjX2luZm9gYAorYXJndW1lbnQgb2J0YWluZWQgZnJvbSBgYHN5cy5leGNfaW5mbygpYGAuICBUaGUgV1NHSSBzcGVjaWZpY2F0aW9uIHRoZW4KK3JlcXVpcmVzIHRoZSBzZXJ2ZXIgb3IgZ2F0ZXdheSB0byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgY29udGVudCBoYXMgYmVlbgorc2VudCBhbmQgdGhlbiBhbiBleGNlcHRpb24gd2FzIGVuY291bnRlcmVkLgorCitFeGNlcHRpb25zIGluIHRoZSA1eHggcmFuZ2UgYW5kIHRob3NlIHJhaXNlZCBhZnRlciBgYHN0YXJ0X3Jlc3BvbnNlYGAKK2hhcyBiZWVuIGNhbGxlZCBhcmUgdHJlYXRlZCBhcyBzZXJpb3VzIGVycm9ycyBhbmQgdGhlIGBgZXhjX2luZm9gYCBpcworZmlsbGVkLWluIHdpdGggaW5mb3JtYXRpb24gbmVlZGVkIGZvciBhIGxvd2VyIGxldmVsIG1vZHVsZSB0byBnZW5lcmF0ZSBhCitzdGFjayB0cmFjZSBhbmQgbG9nIGluZm9ybWF0aW9uLgorCitFeGNlcHRpb24KKyAgSFRUUEV4Y2VwdGlvbgorICAgIEhUVFBSZWRpcmVjdGlvbgorICAgICAgKiAzMDAgLSBIVFRQTXVsdGlwbGVDaG9pY2VzCisgICAgICAqIDMwMSAtIEhUVFBNb3ZlZFBlcm1hbmVudGx5CisgICAgICAqIDMwMiAtIEhUVFBGb3VuZAorICAgICAgKiAzMDMgLSBIVFRQU2VlT3RoZXIKKyAgICAgICogMzA0IC0gSFRUUE5vdE1vZGlmaWVkCisgICAgICAqIDMwNSAtIEhUVFBVc2VQcm94eQorICAgICAgKiAzMDYgLSBVbnVzZWQgKG5vdCBpbXBsZW1lbnRlZCwgb2J2aW91c2x5KQorICAgICAgKiAzMDcgLSBIVFRQVGVtcG9yYXJ5UmVkaXJlY3QKKyAgICBIVFRQRXJyb3IKKyAgICAgIEhUVFBDbGllbnRFcnJvcgorICAgICAgICAqIDQwMCAtIEhUVFBCYWRSZXF1ZXN0CisgICAgICAgICogNDAxIC0gSFRUUFVuYXV0aG9yaXplZAorICAgICAgICAqIDQwMiAtIEhUVFBQYXltZW50UmVxdWlyZWQKKyAgICAgICAgKiA0MDMgLSBIVFRQRm9yYmlkZGVuCisgICAgICAgICogNDA0IC0gSFRUUE5vdEZvdW5kCisgICAgICAgICogNDA1IC0gSFRUUE1ldGhvZE5vdEFsbG93ZWQKKyAgICAgICAgKiA0MDYgLSBIVFRQTm90QWNjZXB0YWJsZQorICAgICAgICAqIDQwNyAtIEhUVFBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQKKyAgICAgICAgKiA0MDggLSBIVFRQUmVxdWVzdFRpbWVvdXQKKyAgICAgICAgKiA0MDkgLSBIVFRQQ29uZmljdAorICAgICAgICAqIDQxMCAtIEhUVFBHb25lCisgICAgICAgICogNDExIC0gSFRUUExlbmd0aFJlcXVpcmVkCisgICAgICAgICogNDEyIC0gSFRUUFByZWNvbmRpdGlvbkZhaWxlZAorICAgICAgICAqIDQxMyAtIEhUVFBSZXF1ZXN0RW50aXR5VG9vTGFyZ2UKKyAgICAgICAgKiA0MTQgLSBIVFRQUmVxdWVzdFVSSVRvb0xvbmcKKyAgICAgICAgKiA0MTUgLSBIVFRQVW5zdXBwb3J0ZWRNZWRpYVR5cGUKKyAgICAgICAgKiA0MTYgLSBIVFRQUmVxdWVzdFJhbmdlTm90U2F0aXNmaWFibGUKKyAgICAgICAgKiA0MTcgLSBIVFRQRXhwZWN0YXRpb25GYWlsZWQKKyAgICAgICAgKiA0MjkgLSBIVFRQVG9vTWFueVJlcXVlc3RzCisgICAgICBIVFRQU2VydmVyRXJyb3IKKyAgICAgICAgKiA1MDAgLSBIVFRQSW50ZXJuYWxTZXJ2ZXJFcnJvcgorICAgICAgICAqIDUwMSAtIEhUVFBOb3RJbXBsZW1lbnRlZAorICAgICAgICAqIDUwMiAtIEhUVFBCYWRHYXRld2F5CisgICAgICAgICogNTAzIC0gSFRUUFNlcnZpY2VVbmF2YWlsYWJsZQorICAgICAgICAqIDUwNCAtIEhUVFBHYXRld2F5VGltZW91dAorICAgICAgICAqIDUwNSAtIEhUVFBWZXJzaW9uTm90U3VwcG9ydGVkCisKK1JlZmVyZW5jZXM6CisKKy4uIFsxXSBodHRwOi8vd3d3LnB5dGhvbi5vcmcvcGVwcy9wZXAtMDMzMy5odG1sI2Vycm9yLWhhbmRsaW5nCisuLiBbMl0gaHR0cDovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMxMC5odG1sI3NlYzEwLjUKKworIiIiCisKK2ltcG9ydCBzaXgKK2Zyb20gcGFzdGUud3NnaWxpYiBpbXBvcnQgY2F0Y2hfZXJyb3JzX2FwcAorZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgaGFzX2hlYWRlciwgaGVhZGVyX3ZhbHVlLCByZXBsYWNlX2hlYWRlcgorZnJvbSBwYXN0ZS5yZXF1ZXN0IGltcG9ydCByZXNvbHZlX3JlbGF0aXZlX3VybAorZnJvbSBwYXN0ZS51dGlsLnF1b3RpbmcgaW1wb3J0IHN0cmlwX2h0bWwsIGh0bWxfcXVvdGUsIG5vX3F1b3RlLCBjb21tZW50X3F1b3RlCisKK1NFUlZFUl9OQU1FID0gJ1dTR0kgU2VydmVyJworVEVNUExBVEUgPSAiIiJcCis8aHRtbD5ccgorICA8aGVhZD48dGl0bGU+JSh0aXRsZSlzPC90aXRsZT48L2hlYWQ+XHIKKyAgPGJvZHk+XHIKKyAgICA8aDE+JSh0aXRsZSlzPC9oMT5ccgorICAgIDxwPiUoYm9keSlzPC9wPlxyCisgICAgPGhyIG5vc2hhZGU+XHIKKyAgICA8ZGl2IGFsaWduPSJyaWdodCI+JShzZXJ2ZXIpczwvZGl2PlxyCisgIDwvYm9keT5ccgorPC9odG1sPlxyCisiIiIKKworY2xhc3MgSFRUUEV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICIiIgorICAgIHRoZSBIVFRQIGV4Y2VwdGlvbiBiYXNlIGNsYXNzCisKKyAgICBUaGlzIGVuY2Fwc3VsYXRlcyBhbiBIVFRQIHJlc3BvbnNlIHRoYXQgaW50ZXJydXB0cyBub3JtYWwgYXBwbGljYXRpb24KKyAgICBmbG93OyBidXQgb25lIHdoaWNoIGlzIG5vdCBuZWNlc3Nhcmx5IGFuIGVycm9yIGNvbmRpdGlvbi4gRm9yCisgICAgZXhhbXBsZSwgY29kZXMgaW4gdGhlIDMwMCdzIGFyZSBleGNlcHRpb25zIGluIHRoYXQgdGhleSBpbnRlcnJ1cHQKKyAgICBub3JtYWwgcHJvY2Vzc2luZzsgaG93ZXZlciwgdGhleSBhcmUgbm90IGNvbnNpZGVyZWQgZXJyb3JzLgorCisgICAgVGhpcyBjbGFzcyBpcyBjb21wbGljYXRlZCBieSA0IGZhY3RvcnM6CisKKyAgICAgIDEuIFRoZSBjb250ZW50IGdpdmVuIHRvIHRoZSBleGNlcHRpb24gbWF5IGVpdGhlciBiZSBwbGFpbi10ZXh0IG9yCisgICAgICAgICBhcyBodG1sLXRleHQuCisKKyAgICAgIDIuIFRoZSB0ZW1wbGF0ZSBtYXkgd2FudCB0byBoYXZlIHN0cmluZy1zdWJzdGl0dXRpb25zIHRha2VuIGZyb20KKyAgICAgICAgIHRoZSBjdXJyZW50IGBgZW52aXJvbmBgIG9yIHZhbHVlcyBmcm9tIGluY29taW5nIGhlYWRlcnMuIFRoaXMKKyAgICAgICAgIGlzIGVzcGVjaWFsbHkgdHJvdWJsZXNvbWUgZHVlIHRvIGNhc2Ugc2Vuc2l0aXZpdHkuCisKKyAgICAgIDMuIFRoZSBmaW5hbCBvdXRwdXQgbWF5IGVpdGhlciBiZSB0ZXh0L3BsYWluIG9yIHRleHQvaHRtbAorICAgICAgICAgbWltZS10eXBlIGFzIHJlcXVlc3RlZCBieSB0aGUgY2xpZW50IGFwcGxpY2F0aW9uLgorCisgICAgICA0LiBFYWNoIGV4Y2VwdGlvbiBoYXMgYSBkZWZhdWx0IGV4cGxhbmF0aW9uLCBidXQgdGhvc2Ugd2hvCisgICAgICAgICByYWlzZSBleGNlcHRpb25zIG1heSB3YW50IHRvIHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWwuCisKKyAgICBBdHRyaWJ1dGVzOgorCisgICAgICAgYGBjb2RlYGAKKyAgICAgICAgICAgdGhlIEhUVFAgc3RhdHVzIGNvZGUgZm9yIHRoZSBleGNlcHRpb24KKworICAgICAgIGBgdGl0bGVgYAorICAgICAgICAgICByZW1haW5kZXIgb2YgdGhlIHN0YXR1cyBsaW5lIChzdHVmZiBhZnRlciB0aGUgY29kZSkKKworICAgICAgIGBgZXhwbGFuYXRpb25gYAorICAgICAgICAgICBhIHBsYWluLXRleHQgZXhwbGFuYXRpb24gb2YgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBpcworICAgICAgICAgICBub3Qgc3ViamVjdCB0byBlbnZpcm9ubWVudCBvciBoZWFkZXIgc3Vic3RpdHV0aW9uczsKKyAgICAgICAgICAgaXQgaXMgYWNjZXNzaWJsZSBpbiB0aGUgdGVtcGxhdGUgdmlhICUoZXhwbGFuYXRpb24pcworCisgICAgICAgYGBkZXRhaWxgYAorICAgICAgICAgICBhIHBsYWluLXRleHQgbWVzc2FnZSBjdXN0b21pemF0aW9uIHRoYXQgaXMgbm90IHN1YmplY3QKKyAgICAgICAgICAgdG8gZW52aXJvbm1lbnQgb3IgaGVhZGVyIHN1YnN0aXR1dGlvbnM7IGFjY2Vzc2libGUgaW4KKyAgICAgICAgICAgdGhlIHRlbXBsYXRlIHZpYSAlKGRldGFpbClzCisKKyAgICAgICBgYHRlbXBsYXRlYGAKKyAgICAgICAgICAgYSBjb250ZW50IGZyYWdtZW50IChpbiBIVE1MKSB1c2VkIGZvciBlbnZpcm9ubWVudCBhbmQKKyAgICAgICAgICAgaGVhZGVyIHN1YnN0aXR1dGlvbjsgdGhlIGRlZmF1bHQgdGVtcGxhdGUgaW5jbHVkZXMgYm90aAorICAgICAgICAgICB0aGUgZXhwbGFuYXRpb24gYW5kIGZ1cnRoZXIgZGV0YWlsIHByb3ZpZGVkIGluIHRoZQorICAgICAgICAgICBtZXNzYWdlCisKKyAgICAgICBgYHJlcXVpcmVkX2hlYWRlcnNgYAorICAgICAgICAgICBhIHNlcXVlbmNlIG9mIGhlYWRlcnMgd2hpY2ggYXJlIHJlcXVpcmVkIGZvciBwcm9wZXIKKyAgICAgICAgICAgY29uc3RydWN0aW9uIG9mIHRoZSBleGNlcHRpb24KKworICAgIFBhcmFtZXRlcnM6CisKKyAgICAgICBgYGRldGFpbGBgCisgICAgICAgICBhIHBsYWluLXRleHQgb3ZlcnJpZGUgb2YgdGhlIGRlZmF1bHQgYGBkZXRhaWxgYAorCisgICAgICAgYGBoZWFkZXJzYGAKKyAgICAgICAgIGEgbGlzdCBvZiAoayx2KSBoZWFkZXIgcGFpcnMKKworICAgICAgIGBgY29tbWVudGBgCisgICAgICAgICBhIHBsYWluLXRleHQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB3aGljaCBpcworICAgICAgICAgdXN1YWxseSBzdHJpcHBlZC9oaWRkZW4gZm9yIGVuZC11c2VycworCisgICAgVG8gb3ZlcnJpZGUgdGhlIHRlbXBsYXRlICh3aGljaCBpcyBIVE1MIGNvbnRlbnQpIG9yIHRoZSBwbGFpbi10ZXh0CisgICAgZXhwbGFuYXRpb24sIG9uZSBtdXN0IHN1YmNsYXNzIHRoZSBnaXZlbiBleGNlcHRpb247IG9yIGN1c3RvbWl6ZSBpdAorICAgIGFmdGVyIGl0IGhhcyBiZWVuIGNyZWF0ZWQuICBUaGlzIHBhcnRpY3VsYXIgYnJlYWtkb3duIG9mIGEgbWVzc2FnZQorICAgIGludG8gZXhwbGFuYXRpb24sIGRldGFpbCBhbmQgdGVtcGxhdGUgYWxsb3dzIGJvdGggdGhlIGNyZWF0aW9uIG9mCisgICAgcGxhaW4tdGV4dCBhbmQgaHRtbCBtZXNzYWdlcyBmb3IgdmFyaW91cyBjbGllbnRzIGFzIHdlbGwgYXMKKyAgICBlcnJvci1mcmVlIHN1YnN0aXR1dGlvbiBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIGhlYWRlcnMuCisgICAgIiIiCisKKyAgICBjb2RlID0gTm9uZQorICAgIHRpdGxlID0gTm9uZQorICAgIGV4cGxhbmF0aW9uID0gJycKKyAgICBkZXRhaWwgPSAnJworICAgIGNvbW1lbnQgPSAnJworICAgIHRlbXBsYXRlID0gIiUoZXhwbGFuYXRpb24pc1xyXG48YnIvPiUoZGV0YWlsKXNcclxuPCEtLSAlKGNvbW1lbnQpcyAtLT4iCisgICAgcmVxdWlyZWRfaGVhZGVycyA9ICgpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGV0YWlsPU5vbmUsIGhlYWRlcnM9Tm9uZSwgY29tbWVudD1Ob25lKToKKyAgICAgICAgYXNzZXJ0IHNlbGYuY29kZSwgIkRvIG5vdCBkaXJlY3RseSBpbnN0YW50aWF0ZSBhYnN0cmFjdCBleGNlcHRpb25zLiIKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaGVhZGVycywgKHR5cGUoTm9uZSksIGxpc3QpKSwgKAorICAgICAgICAgICAgImhlYWRlcnMgbXVzdCBiZSBOb25lIG9yIGEgbGlzdDogJXIiCisgICAgICAgICAgICAlIGhlYWRlcnMpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRldGFpbCwgKHR5cGUoTm9uZSksIHNpeC5iaW5hcnlfdHlwZSwgc2l4LnRleHRfdHlwZSkpLCAoCisgICAgICAgICAgICAiZGV0YWlsIG11c3QgYmUgTm9uZSBvciBhIHN0cmluZzogJXIiICUgZGV0YWlsKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb21tZW50LCAodHlwZShOb25lKSwgc2l4LmJpbmFyeV90eXBlLCBzaXgudGV4dF90eXBlKSksICgKKyAgICAgICAgICAgICJjb21tZW50IG11c3QgYmUgTm9uZSBvciBhIHN0cmluZzogJXIiICUgY29tbWVudCkKKyAgICAgICAgc2VsZi5oZWFkZXJzID0gaGVhZGVycyBvciB0dXBsZSgpCisgICAgICAgIGZvciByZXEgaW4gc2VsZi5yZXF1aXJlZF9oZWFkZXJzOgorICAgICAgICAgICAgYXNzZXJ0IGhlYWRlcnMgYW5kIGhhc19oZWFkZXIoaGVhZGVycywgcmVxKSwgKAorICAgICAgICAgICAgICAgICJFeGNlcHRpb24gJXMgbXVzdCBiZSBwYXNzZWQgdGhlIGhlYWRlciAlciAiCisgICAgICAgICAgICAgICAgIihnb3QgaGVhZGVyczogJXIpIgorICAgICAgICAgICAgICAgICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCByZXEsIGhlYWRlcnMpKQorICAgICAgICBpZiBkZXRhaWwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmRldGFpbCA9IGRldGFpbAorICAgICAgICBpZiBjb21tZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5jb21tZW50ID0gY29tbWVudAorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwiJXMgJXNcbiVzXG4lc1xuIiAlICgKKyAgICAgICAgICAgIHNlbGYuY29kZSwgc2VsZi50aXRsZSwgc2VsZi5leHBsYW5hdGlvbiwgc2VsZi5kZXRhaWwpKQorCisgICAgZGVmIG1ha2VfYm9keShzZWxmLCBlbnZpcm9uLCB0ZW1wbGF0ZSwgZXNjZnVuYywgY29tbWVudF9lc2NmdW5jPU5vbmUpOgorICAgICAgICBjb21tZW50X2VzY2Z1bmMgPSBjb21tZW50X2VzY2Z1bmMgb3IgZXNjZnVuYworICAgICAgICBhcmdzID0geydleHBsYW5hdGlvbic6IGVzY2Z1bmMoc2VsZi5leHBsYW5hdGlvbiksCisgICAgICAgICAgICAgICAgJ2RldGFpbCc6IGVzY2Z1bmMoc2VsZi5kZXRhaWwpLAorICAgICAgICAgICAgICAgICdjb21tZW50JzogY29tbWVudF9lc2NmdW5jKHNlbGYuY29tbWVudCl9CisgICAgICAgIGlmIEhUVFBFeGNlcHRpb24udGVtcGxhdGUgIT0gc2VsZi50ZW1wbGF0ZToKKyAgICAgICAgICAgIGZvciAoaywgdikgaW4gZW52aXJvbi5pdGVtcygpOgorICAgICAgICAgICAgICAgIGFyZ3Nba10gPSBlc2NmdW5jKHYpCisgICAgICAgICAgICBpZiBzZWxmLmhlYWRlcnM6CisgICAgICAgICAgICAgICAgZm9yIChrLCB2KSBpbiBzZWxmLmhlYWRlcnM6CisgICAgICAgICAgICAgICAgICAgIGFyZ3Nbay5sb3dlcigpXSA9IGVzY2Z1bmModikKKyAgICAgICAgaWYgc2l4LlBZMjoKKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGFyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgICAgICAgICAgICAgYXJnc1trZXldID0gdmFsdWUuZW5jb2RlKCd1dGY4JywgJ3htbGNoYXJyZWZyZXBsYWNlJykKKyAgICAgICAgcmV0dXJuIHRlbXBsYXRlICUgYXJncworCisgICAgZGVmIHBsYWluKHNlbGYsIGVudmlyb24pOgorICAgICAgICAiIiIgdGV4dC9wbGFpbiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXhjZXB0aW9uICIiIgorICAgICAgICBib2R5ID0gc2VsZi5tYWtlX2JvZHkoZW52aXJvbiwgc3RyaXBfaHRtbChzZWxmLnRlbXBsYXRlKSwgbm9fcXVvdGUsIGNvbW1lbnRfcXVvdGUpCisgICAgICAgIHJldHVybiAoJyVzICVzXHJcbiVzXHJcbicgJSAoc2VsZi5jb2RlLCBzZWxmLnRpdGxlLCBib2R5KSkKKworICAgIGRlZiBodG1sKHNlbGYsIGVudmlyb24pOgorICAgICAgICAiIiIgdGV4dC9odG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBleGNlcHRpb24gIiIiCisgICAgICAgIGJvZHkgPSBzZWxmLm1ha2VfYm9keShlbnZpcm9uLCBzZWxmLnRlbXBsYXRlLCBodG1sX3F1b3RlLCBjb21tZW50X3F1b3RlKQorICAgICAgICByZXR1cm4gVEVNUExBVEUgJSB7CisgICAgICAgICAgICAgICAgICAgJ3RpdGxlJzogc2VsZi50aXRsZSwKKyAgICAgICAgICAgICAgICAgICAnY29kZSc6IHNlbGYuY29kZSwKKyAgICAgICAgICAgICAgICAgICAnc2VydmVyJzogU0VSVkVSX05BTUUsCisgICAgICAgICAgICAgICAgICAgJ2JvZHknOiBib2R5IH0KKworICAgIGRlZiBwcmVwYXJlX2NvbnRlbnQoc2VsZiwgZW52aXJvbik6CisgICAgICAgIGlmIHNlbGYuaGVhZGVyczoKKyAgICAgICAgICAgIGhlYWRlcnMgPSBsaXN0KHNlbGYuaGVhZGVycykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGhlYWRlcnMgPSBbXQorICAgICAgICBpZiAnaHRtbCcgaW4gZW52aXJvbi5nZXQoJ0hUVFBfQUNDRVBUJywnJykgb3IgXAorICAgICAgICAgICAgJyovKicgaW4gZW52aXJvbi5nZXQoJ0hUVFBfQUNDRVBUJywnJyk6CisgICAgICAgICAgICByZXBsYWNlX2hlYWRlcihoZWFkZXJzLCAnY29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpCisgICAgICAgICAgICBjb250ZW50ID0gc2VsZi5odG1sKGVudmlyb24pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXBsYWNlX2hlYWRlcihoZWFkZXJzLCAnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKQorICAgICAgICAgICAgY29udGVudCA9IHNlbGYucGxhaW4oZW52aXJvbikKKyAgICAgICAgaWYgaXNpbnN0YW5jZShjb250ZW50LCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LmVuY29kZSgndXRmOCcpCisgICAgICAgICAgICBjdXJfY29udGVudF90eXBlID0gKAorICAgICAgICAgICAgICAgIGhlYWRlcl92YWx1ZShoZWFkZXJzLCAnY29udGVudC10eXBlJykKKyAgICAgICAgICAgICAgICBvciAndGV4dC9odG1sJykKKyAgICAgICAgICAgIHJlcGxhY2VfaGVhZGVyKAorICAgICAgICAgICAgICAgIGhlYWRlcnMsICdjb250ZW50LXR5cGUnLAorICAgICAgICAgICAgICAgIGN1cl9jb250ZW50X3R5cGUgKyAnOyBjaGFyc2V0PXV0ZjgnKQorICAgICAgICByZXR1cm4gaGVhZGVycywgY29udGVudAorCisgICAgZGVmIHJlc3BvbnNlKHNlbGYsIGVudmlyb24pOgorICAgICAgICBmcm9tIHBhc3RlLndzZ2l3cmFwcGVycyBpbXBvcnQgV1NHSVJlc3BvbnNlCisgICAgICAgIGhlYWRlcnMsIGNvbnRlbnQgPSBzZWxmLnByZXBhcmVfY29udGVudChlbnZpcm9uKQorICAgICAgICByZXNwID0gV1NHSVJlc3BvbnNlKGNvZGU9c2VsZi5jb2RlLCBjb250ZW50PWNvbnRlbnQpCisgICAgICAgIHJlc3AuaGVhZGVycyA9IHJlc3AuaGVhZGVycy5mcm9tbGlzdChoZWFkZXJzKQorICAgICAgICByZXR1cm4gcmVzcAorCisgICAgZGVmIHdzZ2lfYXBwbGljYXRpb24oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBleGNlcHRpb24gYXMgYSBXU0dJIGFwcGxpY2F0aW9uCisgICAgICAgICIiIgorICAgICAgICBoZWFkZXJzLCBjb250ZW50ID0gc2VsZi5wcmVwYXJlX2NvbnRlbnQoZW52aXJvbikKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJyVzICVzJyAlIChzZWxmLmNvZGUsIHNlbGYudGl0bGUpLAorICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgICBleGNfaW5mbykKKyAgICAgICAgcmV0dXJuIFtjb250ZW50XQorCisgICAgX19jYWxsX18gPSB3c2dpX2FwcGxpY2F0aW9uCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzICVzOyBjb2RlPSVzPicgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50aXRsZSwgc2VsZi5jb2RlKQorCitjbGFzcyBIVFRQRXJyb3IoSFRUUEV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgYmFzZSBjbGFzcyBmb3Igc3RhdHVzIGNvZGVzIGluIHRoZSA0MDAncyBhbmQgNTAwJ3MKKworICAgIFRoaXMgaXMgYW4gZXhjZXB0aW9uIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVycm9yIGhhcyBvY2N1cnJlZCwKKyAgICBhbmQgdGhhdCBhbnkgd29yayBpbiBwcm9ncmVzcyBzaG91bGQgbm90IGJlIGNvbW1pdHRlZC4gIFRoZXNlIGFyZQorICAgIHR5cGljYWxseSByZXN1bHRzIGluIHRoZSA0MDAncyBhbmQgNTAwJ3MuCisgICAgIiIiCisKKyMKKyMgM3h4IFJlZGlyZWN0aW9uCisjCisjICBUaGlzIGNsYXNzIG9mIHN0YXR1cyBjb2RlIGluZGljYXRlcyB0aGF0IGZ1cnRoZXIgYWN0aW9uIG5lZWRzIHRvIGJlCisjICB0YWtlbiBieSB0aGUgdXNlciBhZ2VudCBpbiBvcmRlciB0byBmdWxmaWxsIHRoZSByZXF1ZXN0LiBUaGUgYWN0aW9uCisjICByZXF1aXJlZCBNQVkgYmUgY2FycmllZCBvdXQgYnkgdGhlIHVzZXIgYWdlbnQgd2l0aG91dCBpbnRlcmFjdGlvbiB3aXRoCisjICB0aGUgdXNlciBpZiBhbmQgb25seSBpZiB0aGUgbWV0aG9kIHVzZWQgaW4gdGhlIHNlY29uZCByZXF1ZXN0IGlzIEdFVCBvcgorIyAgSEVBRC4gQSBjbGllbnQgU0hPVUxEIGRldGVjdCBpbmZpbml0ZSByZWRpcmVjdGlvbiBsb29wcywgc2luY2Ugc3VjaAorIyAgbG9vcHMgZ2VuZXJhdGUgbmV0d29yayB0cmFmZmljIGZvciBlYWNoIHJlZGlyZWN0aW9uLgorIworCitjbGFzcyBIVFRQUmVkaXJlY3Rpb24oSFRUUEV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgYmFzZSBjbGFzcyBmb3IgMzAwJ3Mgc3RhdHVzIGNvZGUgKHJlZGlyZWN0aW9ucykKKworICAgIFRoaXMgaXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgM3h4IHJlZGlyZWN0aW9uLiAgSXQgaW5kaWNhdGVzCisgICAgdGhhdCBmdXJ0aGVyIGFjdGlvbiBuZWVkcyB0byBiZSB0YWtlbiBieSB0aGUgdXNlciBhZ2VudCBpbiBvcmRlcgorICAgIHRvIGZ1bGZpbGwgdGhlIHJlcXVlc3QuICBJdCBkb2VzIG5vdCBuZWNlc3Nhcmx5IHNpZ25hbCBhbiBlcnJvcgorICAgIGNvbmRpdGlvbi4KKyAgICAiIiIKKworY2xhc3MgX0hUVFBNb3ZlKEhUVFBSZWRpcmVjdGlvbik6CisgICAgIiIiCisgICAgcmVkaXJlY3Rpb25zIHdoaWNoIHJlcXVpcmUgYSBMb2NhdGlvbiBmaWVsZAorCisgICAgU2luY2UgYSAnTG9jYXRpb24nIGhlYWRlciBpcyBhIHJlcXVpcmVkIGF0dHJpYnV0ZSBvZiAzMDEsIDMwMiwgMzAzLAorICAgIDMwNSBhbmQgMzA3IChidXQgbm90IDMwNCksIHRoaXMgYmFzZSBjbGFzcyBwcm92aWRlcyB0aGUgbWVjaGFuaWNzIHRvCisgICAgbWFrZSB0aGlzIGVhc3kuICBXaGlsZSB0aGlzIGhhcyB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIEhUVFBFeGNlcHRpb24sCisgICAgaWYgYSBsb2NhdGlvbiBpcyBub3QgcHJvdmlkZWQgaW4gdGhlIGhlYWRlcnM7IGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUKKyAgICBkZXRhaWwgX2lzXyB0aGUgbG9jYXRpb24gKHRoaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIG90aGVyd2lzZQorICAgIHdlJ2QgYWRkIGEgbmV3IGF0dHJpYnV0ZSkuCisgICAgIiIiCisgICAgcmVxdWlyZWRfaGVhZGVycyA9ICgnbG9jYXRpb24nLCkKKyAgICBleHBsYW5hdGlvbiA9ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gbW92ZWQgdG8nCisgICAgdGVtcGxhdGUgPSAoCisgICAgICAgICclKGV4cGxhbmF0aW9uKXMgPGEgaHJlZj0iJShsb2NhdGlvbilzIj4lKGxvY2F0aW9uKXM8L2E+O1xyXG4nCisgICAgICAgICd5b3Ugc2hvdWxkIGJlIHJlZGlyZWN0ZWQgYXV0b21hdGljYWxseS5cclxuJworICAgICAgICAnJShkZXRhaWwpc1xyXG48IS0tICUoY29tbWVudClzIC0tPicpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGV0YWlsPU5vbmUsIGhlYWRlcnM9Tm9uZSwgY29tbWVudD1Ob25lKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaGVhZGVycywgKHR5cGUoTm9uZSksIGxpc3QpKQorICAgICAgICBoZWFkZXJzID0gaGVhZGVycyBvciBbXQorICAgICAgICBsb2NhdGlvbiA9IGhlYWRlcl92YWx1ZShoZWFkZXJzLCdsb2NhdGlvbicpCisgICAgICAgIGlmIG5vdCBsb2NhdGlvbjoKKyAgICAgICAgICAgIGxvY2F0aW9uID0gZGV0YWlsCisgICAgICAgICAgICBkZXRhaWwgPSAnJworICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCdsb2NhdGlvbicsIGxvY2F0aW9uKSkKKyAgICAgICAgYXNzZXJ0IGxvY2F0aW9uLCAoIkhUVFBSZWRpcmVjdGlvbiBzcGVjaWZpZWQgbmVpdGhlciBhICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0aW9uIGluIHRoZSBoZWFkZXJzIG5vciBkaWQgaXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdmlkZSBhIGRldGFpbCBhcmd1bWVudC4iKQorICAgICAgICBIVFRQUmVkaXJlY3Rpb24uX19pbml0X18oc2VsZiwgbG9jYXRpb24sIGhlYWRlcnMsIGNvbW1lbnQpCisgICAgICAgIGlmIGRldGFpbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuZGV0YWlsID0gZGV0YWlsCisKKyAgICBkZWYgcmVsYXRpdmVfcmVkaXJlY3QoY2xzLCBkZXN0X3VyaSwgZW52aXJvbiwgZGV0YWlsPU5vbmUsIGhlYWRlcnM9Tm9uZSwgY29tbWVudD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZSBhIHJlZGlyZWN0IG9iamVjdCB3aXRoIHRoZSBkZXN0X3VyaSwgd2hpY2ggbWF5IGJlIHJlbGF0aXZlLAorICAgICAgICBjb25zaWRlcmluZyBpdCByZWxhdGl2ZSB0byB0aGUgdXJpIGltcGxpZWQgYnkgdGhlIGdpdmVuIGVudmlyb24uCisgICAgICAgICIiIgorICAgICAgICBsb2NhdGlvbiA9IHJlc29sdmVfcmVsYXRpdmVfdXJsKGRlc3RfdXJpLCBlbnZpcm9uKQorICAgICAgICBoZWFkZXJzID0gaGVhZGVycyBvciBbXQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoJ0xvY2F0aW9uJywgbG9jYXRpb24pKQorICAgICAgICByZXR1cm4gY2xzKGRldGFpbD1kZXRhaWwsIGhlYWRlcnM9aGVhZGVycywgY29tbWVudD1jb21tZW50KQorCisgICAgcmVsYXRpdmVfcmVkaXJlY3QgPSBjbGFzc21ldGhvZChyZWxhdGl2ZV9yZWRpcmVjdCkKKworICAgIGRlZiBsb2NhdGlvbihzZWxmKToKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuaGVhZGVyczoKKyAgICAgICAgICAgIGlmIG5hbWUubG93ZXIoKSA9PSAnbG9jYXRpb24nOgorICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoIk5vIGxvY2F0aW9uIHNldCBmb3IgJXMiICUgc2VsZikKKworY2xhc3MgSFRUUE11bHRpcGxlQ2hvaWNlcyhfSFRUUE1vdmUpOgorICAgIGNvZGUgPSAzMDAKKyAgICB0aXRsZSA9ICdNdWx0aXBsZSBDaG9pY2VzJworCitjbGFzcyBIVFRQTW92ZWRQZXJtYW5lbnRseShfSFRUUE1vdmUpOgorICAgIGNvZGUgPSAzMDEKKyAgICB0aXRsZSA9ICdNb3ZlZCBQZXJtYW5lbnRseScKKworY2xhc3MgSFRUUEZvdW5kKF9IVFRQTW92ZSk6CisgICAgY29kZSA9IDMwMgorICAgIHRpdGxlID0gJ0ZvdW5kJworICAgIGV4cGxhbmF0aW9uID0gJ1RoZSByZXNvdXJjZSB3YXMgZm91bmQgYXQnCisKKyMgVGhpcyBvbmUgaXMgc2FmZSBhZnRlciBhIFBPU1QgKHRoZSByZWRpcmVjdGVkIGxvY2F0aW9uIHdpbGwgYmUKKyMgcmV0cmlldmVkIHdpdGggR0VUKToKK2NsYXNzIEhUVFBTZWVPdGhlcihfSFRUUE1vdmUpOgorICAgIGNvZGUgPSAzMDMKKyAgICB0aXRsZSA9ICdTZWUgT3RoZXInCisKK2NsYXNzIEhUVFBOb3RNb2RpZmllZChIVFRQUmVkaXJlY3Rpb24pOgorICAgICMgQEA6IGJ1dCBub3QgYWx3YXlzIChIVFRQIHNlY3Rpb24gMTQuMTguMSkuLi4/CisgICAgIyBAQDogUmVtb3ZlZCAnZGF0ZScgcmVxdWlyZW1lbnQsIGFzIGl0cyBub3QgcmVxdWlyZWQgZm9yIGFuIEVUYWcKKyAgICAjIEBAOiBGSVhNRTogVGhpcyBzaG91bGQgcmVxdWlyZSBlaXRoZXIgYW4gRVRhZyBvciBhIGRhdGUgaGVhZGVyCisgICAgY29kZSA9IDMwNAorICAgIHRpdGxlID0gJ05vdCBNb2RpZmllZCcKKyAgICBtZXNzYWdlID0gJycKKyAgICAjIEBAOiBzaG91bGQgaW5jbHVkZSBkYXRlIGhlYWRlciwgb3B0aW9uYWxseSBvdGhlciBoZWFkZXJzCisgICAgIyBAQDogc2hvdWxkIG5vdCByZXR1cm4gYSBjb250ZW50IGJvZHkKKyAgICBkZWYgcGxhaW4oc2VsZiwgZW52aXJvbik6CisgICAgICAgIHJldHVybiAnJworICAgIGRlZiBodG1sKHNlbGYsIGVudmlyb24pOgorICAgICAgICAiIiIgdGV4dC9odG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBleGNlcHRpb24gIiIiCisgICAgICAgIHJldHVybiAnJworCitjbGFzcyBIVFRQVXNlUHJveHkoX0hUVFBNb3ZlKToKKyAgICAjIEBAOiBPSywgbm90IGEgbW92ZSwgYnV0IGxvb2tzIGEgbGl0dGxlIGxpa2Ugb25lCisgICAgY29kZSA9IDMwNQorICAgIHRpdGxlID0gJ1VzZSBQcm94eScKKyAgICBleHBsYW5hdGlvbiA9ICgKKyAgICAgICAgJ1RoZSByZXNvdXJjZSBtdXN0IGJlIGFjY2Vzc2VkIHRocm91Z2ggYSBwcm94eSAnCisgICAgICAgICdsb2NhdGVkIGF0JykKKworY2xhc3MgSFRUUFRlbXBvcmFyeVJlZGlyZWN0KF9IVFRQTW92ZSk6CisgICAgY29kZSA9IDMwNworICAgIHRpdGxlID0gJ1RlbXBvcmFyeSBSZWRpcmVjdCcKKworIworIyA0eHggQ2xpZW50IEVycm9yCisjCisjICBUaGUgNHh4IGNsYXNzIG9mIHN0YXR1cyBjb2RlIGlzIGludGVuZGVkIGZvciBjYXNlcyBpbiB3aGljaCB0aGUgY2xpZW50CisjICBzZWVtcyB0byBoYXZlIGVycmVkLiBFeGNlcHQgd2hlbiByZXNwb25kaW5nIHRvIGEgSEVBRCByZXF1ZXN0LCB0aGUKKyMgIHNlcnZlciBTSE9VTEQgaW5jbHVkZSBhbiBlbnRpdHkgY29udGFpbmluZyBhbiBleHBsYW5hdGlvbiBvZiB0aGUgZXJyb3IKKyMgIHNpdHVhdGlvbiwgYW5kIHdoZXRoZXIgaXQgaXMgYSB0ZW1wb3Jhcnkgb3IgcGVybWFuZW50IGNvbmRpdGlvbi4gVGhlc2UKKyMgIHN0YXR1cyBjb2RlcyBhcmUgYXBwbGljYWJsZSB0byBhbnkgcmVxdWVzdCBtZXRob2QuIFVzZXIgYWdlbnRzIFNIT1VMRAorIyAgZGlzcGxheSBhbnkgaW5jbHVkZWQgZW50aXR5IHRvIHRoZSB1c2VyLgorIworCitjbGFzcyBIVFRQQ2xpZW50RXJyb3IoSFRUUEVycm9yKToKKyAgICAiIiIKKyAgICBiYXNlIGNsYXNzIGZvciB0aGUgNDAwJ3MsIHdoZXJlIHRoZSBjbGllbnQgaXMgaW4tZXJyb3IKKworICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uIGluIHdoaWNoIHRoZSBjbGllbnQgaXMgcHJlc3VtZWQgdG8gYmUKKyAgICBpbi1lcnJvci4gIFRoaXMgaXMgYW4gZXhwZWN0ZWQgcHJvYmxlbSwgYW5kIHRodXMgaXMgbm90IGNvbnNpZGVyZWQKKyAgICBhIGJ1Zy4gIEEgc2VydmVyLXNpZGUgdHJhY2ViYWNrIGlzIG5vdCB3YXJyYW50ZWQuICBVbmxlc3Mgc3BlY2lhbGl6ZWQsCisgICAgdGhpcyBpcyBhICc0MDAgQmFkIFJlcXVlc3QnCisgICAgIiIiCisgICAgY29kZSA9IDQwMAorICAgIHRpdGxlID0gJ0JhZCBSZXF1ZXN0JworICAgIGV4cGxhbmF0aW9uID0gKCdUaGUgc2VydmVyIGNvdWxkIG5vdCBjb21wbHkgd2l0aCB0aGUgcmVxdWVzdCBzaW5jZVxyXG4nCisgICAgICAgICAgICAgICAgICAgJ2l0IGlzIGVpdGhlciBtYWxmb3JtZWQgb3Igb3RoZXJ3aXNlIGluY29ycmVjdC5cclxuJykKKworY2xhc3MgSFRUUEJhZFJlcXVlc3QoSFRUUENsaWVudEVycm9yKToKKyAgICBwYXNzCisKK2NsYXNzIEhUVFBVbmF1dGhvcml6ZWQoSFRUUENsaWVudEVycm9yKToKKyAgICBjb2RlID0gNDAxCisgICAgdGl0bGUgPSAnVW5hdXRob3JpemVkJworICAgIGV4cGxhbmF0aW9uID0gKAorICAgICAgICAnVGhpcyBzZXJ2ZXIgY291bGQgbm90IHZlcmlmeSB0aGF0IHlvdSBhcmUgYXV0aG9yaXplZCB0b1xyXG4nCisgICAgICAgICdhY2Nlc3MgdGhlIGRvY3VtZW50IHlvdSByZXF1ZXN0ZWQuICBFaXRoZXIgeW91IHN1cHBsaWVkIHRoZVxyXG4nCisgICAgICAgICd3cm9uZyBjcmVkZW50aWFscyAoZS5nLiwgYmFkIHBhc3N3b3JkKSwgb3IgeW91ciBicm93c2VyXHJcbicKKyAgICAgICAgJ2RvZXMgbm90IHVuZGVyc3RhbmQgaG93IHRvIHN1cHBseSB0aGUgY3JlZGVudGlhbHMgcmVxdWlyZWQuXHJcbicpCisKK2NsYXNzIEhUVFBQYXltZW50UmVxdWlyZWQoSFRUUENsaWVudEVycm9yKToKKyAgICBjb2RlID0gNDAyCisgICAgdGl0bGUgPSAnUGF5bWVudCBSZXF1aXJlZCcKKyAgICBleHBsYW5hdGlvbiA9ICgnQWNjZXNzIHdhcyBkZW5pZWQgZm9yIGZpbmFuY2lhbCByZWFzb25zLicpCisKK2NsYXNzIEhUVFBGb3JiaWRkZW4oSFRUUENsaWVudEVycm9yKToKKyAgICBjb2RlID0gNDAzCisgICAgdGl0bGUgPSAnRm9yYmlkZGVuJworICAgIGV4cGxhbmF0aW9uID0gKCdBY2Nlc3Mgd2FzIGRlbmllZCB0byB0aGlzIHJlc291cmNlLicpCisKK2NsYXNzIEhUVFBOb3RGb3VuZChIVFRQQ2xpZW50RXJyb3IpOgorICAgIGNvZGUgPSA0MDQKKyAgICB0aXRsZSA9ICdOb3QgRm91bmQnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSByZXNvdXJjZSBjb3VsZCBub3QgYmUgZm91bmQuJykKKworY2xhc3MgSFRUUE1ldGhvZE5vdEFsbG93ZWQoSFRUUENsaWVudEVycm9yKToKKyAgICByZXF1aXJlZF9oZWFkZXJzID0gKCdhbGxvdycsKQorICAgIGNvZGUgPSA0MDUKKyAgICB0aXRsZSA9ICdNZXRob2QgTm90IEFsbG93ZWQnCisgICAgIyBvdmVycmlkZSB0ZW1wbGF0ZSBzaW5jZSB3ZSBuZWVkIGFuIGVudmlyb25tZW50IHZhcmlhYmxlCisgICAgdGVtcGxhdGUgPSAoJ1RoZSBtZXRob2QgJShSRVFVRVNUX01FVEhPRClzIGlzIG5vdCBhbGxvd2VkIGZvciAnCisgICAgICAgICAgICAgICAgJ3RoaXMgcmVzb3VyY2UuXHJcbiUoZGV0YWlsKXMnKQorCitjbGFzcyBIVFRQTm90QWNjZXB0YWJsZShIVFRQQ2xpZW50RXJyb3IpOgorICAgIGNvZGUgPSA0MDYKKyAgICB0aXRsZSA9ICdOb3QgQWNjZXB0YWJsZScKKyAgICAjIG92ZXJyaWRlIHRlbXBsYXRlIHNpbmNlIHdlIG5lZWQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICB0ZW1wbGF0ZSA9ICgnVGhlIHJlc291cmNlIGNvdWxkIG5vdCBiZSBnZW5lcmF0ZWQgdGhhdCB3YXMgJworICAgICAgICAgICAgICAgICdhY2NlcHRhYmxlIHRvIHlvdXIgYnJvd3NlciAoY29udGVudFxyXG5vZiB0eXBlICcKKyAgICAgICAgICAgICAgICAnJShIVFRQX0FDQ0VQVClzKS5cclxuJShkZXRhaWwpcycpCisKK2NsYXNzIEhUVFBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoSFRUUENsaWVudEVycm9yKToKKyAgICBjb2RlID0gNDA3CisgICAgdGl0bGUgPSAnUHJveHkgQXV0aGVudGljYXRpb24gUmVxdWlyZWQnCisgICAgZXhwbGFuYXRpb24gPSAoJ0F1dGhlbnRpY2F0aW9uIC93IGEgbG9jYWwgcHJveHkgaXMgbmVlZGVkLicpCisKK2NsYXNzIEhUVFBSZXF1ZXN0VGltZW91dChIVFRQQ2xpZW50RXJyb3IpOgorICAgIGNvZGUgPSA0MDgKKyAgICB0aXRsZSA9ICdSZXF1ZXN0IFRpbWVvdXQnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBzZXJ2ZXIgaGFzIHdhaXRlZCB0b28gbG9uZyBmb3IgdGhlIHJlcXVlc3QgdG8gJworICAgICAgICAgICAgICAgICAgICdiZSBzZW50IGJ5IHRoZSBjbGllbnQuJykKKworY2xhc3MgSFRUUENvbmZsaWN0KEhUVFBDbGllbnRFcnJvcik6CisgICAgY29kZSA9IDQwOQorICAgIHRpdGxlID0gJ0NvbmZsaWN0JworICAgIGV4cGxhbmF0aW9uID0gKCdUaGVyZSB3YXMgYSBjb25mbGljdCB3aGVuIHRyeWluZyB0byBjb21wbGV0ZSAnCisgICAgICAgICAgICAgICAgICAgJ3lvdXIgcmVxdWVzdC4nKQorCitjbGFzcyBIVFRQR29uZShIVFRQQ2xpZW50RXJyb3IpOgorICAgIGNvZGUgPSA0MTAKKyAgICB0aXRsZSA9ICdHb25lJworICAgIGV4cGxhbmF0aW9uID0gKCdUaGlzIHJlc291cmNlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuICBObyBmb3J3YXJkaW5nICcKKyAgICAgICAgICAgICAgICAgICAnYWRkcmVzcyBpcyBnaXZlbi4nKQorCitjbGFzcyBIVFRQTGVuZ3RoUmVxdWlyZWQoSFRUUENsaWVudEVycm9yKToKKyAgICBjb2RlID0gNDExCisgICAgdGl0bGUgPSAnTGVuZ3RoIFJlcXVpcmVkJworICAgIGV4cGxhbmF0aW9uID0gKCdDb250ZW50LUxlbmd0aCBoZWFkZXIgcmVxdWlyZWQuJykKKworY2xhc3MgSFRUUFByZWNvbmRpdGlvbkZhaWxlZChIVFRQQ2xpZW50RXJyb3IpOgorICAgIGNvZGUgPSA0MTIKKyAgICB0aXRsZSA9ICdQcmVjb25kaXRpb24gRmFpbGVkJworICAgIGV4cGxhbmF0aW9uID0gKCdSZXF1ZXN0IHByZWNvbmRpdGlvbiBmYWlsZWQuJykKKworY2xhc3MgSFRUUFJlcXVlc3RFbnRpdHlUb29MYXJnZShIVFRQQ2xpZW50RXJyb3IpOgorICAgIGNvZGUgPSA0MTMKKyAgICB0aXRsZSA9ICdSZXF1ZXN0IEVudGl0eSBUb28gTGFyZ2UnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBib2R5IG9mIHlvdXIgcmVxdWVzdCB3YXMgdG9vIGxhcmdlIGZvciB0aGlzIHNlcnZlci4nKQorCitjbGFzcyBIVFRQUmVxdWVzdFVSSVRvb0xvbmcoSFRUUENsaWVudEVycm9yKToKKyAgICBjb2RlID0gNDE0CisgICAgdGl0bGUgPSAnUmVxdWVzdC1VUkkgVG9vIExvbmcnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSByZXF1ZXN0IFVSSSB3YXMgdG9vIGxvbmcgZm9yIHRoaXMgc2VydmVyLicpCisKK2NsYXNzIEhUVFBVbnN1cHBvcnRlZE1lZGlhVHlwZShIVFRQQ2xpZW50RXJyb3IpOgorICAgIGNvZGUgPSA0MTUKKyAgICB0aXRsZSA9ICdVbnN1cHBvcnRlZCBNZWRpYSBUeXBlJworICAgICMgb3ZlcnJpZGUgdGVtcGxhdGUgc2luY2Ugd2UgbmVlZCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgIHRlbXBsYXRlID0gKCdUaGUgcmVxdWVzdCBtZWRpYSB0eXBlICUoQ09OVEVOVF9UWVBFKXMgaXMgbm90ICcKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkIGJ5IHRoaXMgc2VydmVyLlxyXG4lKGRldGFpbClzJykKKworY2xhc3MgSFRUUFJlcXVlc3RSYW5nZU5vdFNhdGlzZmlhYmxlKEhUVFBDbGllbnRFcnJvcik6CisgICAgY29kZSA9IDQxNgorICAgIHRpdGxlID0gJ1JlcXVlc3QgUmFuZ2UgTm90IFNhdGlzZmlhYmxlJworICAgIGV4cGxhbmF0aW9uID0gKCdUaGUgUmFuZ2UgcmVxdWVzdGVkIGlzIG5vdCBhdmFpbGFibGUuJykKKworY2xhc3MgSFRUUEV4cGVjdGF0aW9uRmFpbGVkKEhUVFBDbGllbnRFcnJvcik6CisgICAgY29kZSA9IDQxNworICAgIHRpdGxlID0gJ0V4cGVjdGF0aW9uIEZhaWxlZCcKKyAgICBleHBsYW5hdGlvbiA9ICgnRXhwZWN0YXRpb24gZmFpbGVkLicpCisKK2NsYXNzIEhUVFBUb29NYW55UmVxdWVzdHMoSFRUUENsaWVudEVycm9yKToKKyAgICBjb2RlID0gNDI5CisgICAgdGl0bGUgPSAnVG9vIE1hbnkgUmVxdWVzdHMnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBjbGllbnQgaGFzIHNlbnQgdG9vIG1hbnkgcmVxdWVzdHMgdG8gdGhlIHNlcnZlci4nKQorCisjCisjIDV4eCBTZXJ2ZXIgRXJyb3IKKyMKKyMgIFJlc3BvbnNlIHN0YXR1cyBjb2RlcyBiZWdpbm5pbmcgd2l0aCB0aGUgZGlnaXQgIjUiIGluZGljYXRlIGNhc2VzIGluCisjICB3aGljaCB0aGUgc2VydmVyIGlzIGF3YXJlIHRoYXQgaXQgaGFzIGVycmVkIG9yIGlzIGluY2FwYWJsZSBvZgorIyAgcGVyZm9ybWluZyB0aGUgcmVxdWVzdC4gRXhjZXB0IHdoZW4gcmVzcG9uZGluZyB0byBhIEhFQUQgcmVxdWVzdCwgdGhlCisjICBzZXJ2ZXIgU0hPVUxEIGluY2x1ZGUgYW4gZW50aXR5IGNvbnRhaW5pbmcgYW4gZXhwbGFuYXRpb24gb2YgdGhlIGVycm9yCisjICBzaXR1YXRpb24sIGFuZCB3aGV0aGVyIGl0IGlzIGEgdGVtcG9yYXJ5IG9yIHBlcm1hbmVudCBjb25kaXRpb24uIFVzZXIKKyMgIGFnZW50cyBTSE9VTEQgZGlzcGxheSBhbnkgaW5jbHVkZWQgZW50aXR5IHRvIHRoZSB1c2VyLiBUaGVzZSByZXNwb25zZQorIyAgY29kZXMgYXJlIGFwcGxpY2FibGUgdG8gYW55IHJlcXVlc3QgbWV0aG9kLgorIworCitjbGFzcyBIVFRQU2VydmVyRXJyb3IoSFRUUEVycm9yKToKKyAgICAiIiIKKyAgICBiYXNlIGNsYXNzIGZvciB0aGUgNTAwJ3MsIHdoZXJlIHRoZSBzZXJ2ZXIgaXMgaW4tZXJyb3IKKworICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uIGluIHdoaWNoIHRoZSBzZXJ2ZXIgaXMgcHJlc3VtZWQgdG8gYmUKKyAgICBpbi1lcnJvci4gIFRoaXMgaXMgdXN1YWxseSB1bmV4cGVjdGVkLCBhbmQgdGh1cyByZXF1aXJlcyBhIHRyYWNlYmFjazsKKyAgICBpZGVhbGx5LCBvcGVuaW5nIGEgc3VwcG9ydCB0aWNrZXQgZm9yIHRoZSBjdXN0b21lci4gVW5sZXNzIHNwZWNpYWxpemVkLAorICAgIHRoaXMgaXMgYSAnNTAwIEludGVybmFsIFNlcnZlciBFcnJvcicKKyAgICAiIiIKKyAgICBjb2RlID0gNTAwCisgICAgdGl0bGUgPSAnSW50ZXJuYWwgU2VydmVyIEVycm9yJworICAgIGV4cGxhbmF0aW9uID0gKAorICAgICAgJ1RoZSBzZXJ2ZXIgaGFzIGVpdGhlciBlcnJlZCBvciBpcyBpbmNhcGFibGUgb2YgcGVyZm9ybWluZ1xyXG4nCisgICAgICAndGhlIHJlcXVlc3RlZCBvcGVyYXRpb24uXHJcbicpCisKK2NsYXNzIEhUVFBJbnRlcm5hbFNlcnZlckVycm9yKEhUVFBTZXJ2ZXJFcnJvcik6CisgICAgcGFzcworCitjbGFzcyBIVFRQTm90SW1wbGVtZW50ZWQoSFRUUFNlcnZlckVycm9yKToKKyAgICBjb2RlID0gNTAxCisgICAgdGl0bGUgPSAnTm90IEltcGxlbWVudGVkJworICAgICMgb3ZlcnJpZGUgdGVtcGxhdGUgc2luY2Ugd2UgbmVlZCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgIHRlbXBsYXRlID0gKCdUaGUgcmVxdWVzdCBtZXRob2QgJShSRVFVRVNUX01FVEhPRClzIGlzIG5vdCBpbXBsZW1lbnRlZCAnCisgICAgICAgICAgICAgICAgJ2ZvciB0aGlzIHNlcnZlci5cclxuJShkZXRhaWwpcycpCisKK2NsYXNzIEhUVFBCYWRHYXRld2F5KEhUVFBTZXJ2ZXJFcnJvcik6CisgICAgY29kZSA9IDUwMgorICAgIHRpdGxlID0gJ0JhZCBHYXRld2F5JworICAgIGV4cGxhbmF0aW9uID0gKCdCYWQgZ2F0ZXdheS4nKQorCitjbGFzcyBIVFRQU2VydmljZVVuYXZhaWxhYmxlKEhUVFBTZXJ2ZXJFcnJvcik6CisgICAgY29kZSA9IDUwMworICAgIHRpdGxlID0gJ1NlcnZpY2UgVW5hdmFpbGFibGUnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlLiAnCisgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSB0cnkgYWdhaW4gYXQgYSBsYXRlciB0aW1lLicpCisKK2NsYXNzIEhUVFBHYXRld2F5VGltZW91dChIVFRQU2VydmVyRXJyb3IpOgorICAgIGNvZGUgPSA1MDQKKyAgICB0aXRsZSA9ICdHYXRld2F5IFRpbWVvdXQnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBnYXRld2F5IGhhcyB0aW1lZCBvdXQuJykKKworY2xhc3MgSFRUUFZlcnNpb25Ob3RTdXBwb3J0ZWQoSFRUUFNlcnZlckVycm9yKToKKyAgICBjb2RlID0gNTA1CisgICAgdGl0bGUgPSAnSFRUUCBWZXJzaW9uIE5vdCBTdXBwb3J0ZWQnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBIVFRQIHZlcnNpb24gaXMgbm90IHN1cHBvcnRlZC4nKQorCisjIGFic3RyYWN0IEhUVFAgcmVsYXRlZCBleGNlcHRpb25zCitfX2FsbF9fID0gWydIVFRQRXhjZXB0aW9uJywgJ0hUVFBSZWRpcmVjdGlvbicsICdIVFRQRXJyb3InIF0KKworX2V4Y2VwdGlvbnMgPSB7fQorZm9yIG5hbWUsIHZhbHVlIGluIHNpeC5pdGVyaXRlbXMoZGljdChnbG9iYWxzKCkpKToKKyAgICBpZiAoaXNpbnN0YW5jZSh2YWx1ZSwgKHR5cGUsIHNpeC5jbGFzc190eXBlcykpIGFuZAorICAgICAgICBpc3N1YmNsYXNzKHZhbHVlLCBIVFRQRXhjZXB0aW9uKSBhbmQKKyAgICAgICAgdmFsdWUuY29kZSk6CisgICAgICAgIF9leGNlcHRpb25zW3ZhbHVlLmNvZGVdID0gdmFsdWUKKyAgICAgICAgX19hbGxfXy5hcHBlbmQobmFtZSkKKworZGVmIGdldF9leGNlcHRpb24oY29kZSk6CisgICAgcmV0dXJuIF9leGNlcHRpb25zW2NvZGVdCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgTWlkZGxld2FyZSBpbXBsZW1lbnRhdGlvbjoKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitjbGFzcyBIVFRQRXhjZXB0aW9uSGFuZGxlcihvYmplY3QpOgorICAgICIiIgorICAgIGNhdGNoZXMgZXhjZXB0aW9ucyBhbmQgdHVybnMgdGhlbSBpbnRvIHByb3BlciBIVFRQIHJlc3BvbnNlcworCisgICAgVGhpcyBtaWRkbGV3YXJlIGNhdGNoZXMgYW55IGV4Y2VwdGlvbnMgKHdoaWNoIGFyZSBzdWJjbGFzc2VzIG9mCisgICAgYGBIVFRQRXhjZXB0aW9uYGApIGFuZCB0dXJucyB0aGVtIGludG8gcHJvcGVyIEhUVFAgcmVzcG9uc2VzLgorICAgIE5vdGUgaWYgdGhlIGhlYWRlcnMgaGF2ZSBhbHJlYWR5IGJlZW4gc2VudCwgdGhlIHN0YWNrIHRyYWNlIGlzCisgICAgYWx3YXlzIG1haW50YWluZWQgYXMgdGhpcyBpbmRpY2F0ZXMgYSBwcm9ncmFtbWluZyBlcnJvci4KKworICAgIE5vdGUgdGhhdCB5b3UgbXVzdCByYWlzZSB0aGUgZXhjZXB0aW9uIGJlZm9yZSByZXR1cm5pbmcgdGhlCisgICAgYXBwX2l0ZXIsIGFuZCB5b3UgY2Fubm90IHVzZSB0aGlzIHdpdGggZ2VuZXJhdG9yIGFwcHMgdGhhdCBkb24ndAorICAgIHJhaXNlIGFuIGV4Y2VwdGlvbiB1bnRpbCBhZnRlciB0aGVpciBhcHBfaXRlciBpcyBpdGVyYXRlZCBvdmVyLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcGxpY2F0aW9uLCB3YXJuaW5nX2xldmVsPU5vbmUpOgorICAgICAgICBhc3NlcnQgbm90IHdhcm5pbmdfbGV2ZWwgb3IgKCB3YXJuaW5nX2xldmVsID4gOTkgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdfbGV2ZWwgPCA2MDApCisgICAgICAgIGlmIHdhcm5pbmdfbGV2ZWwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oJ1RoZSB3YXJuaW5nX2xldmVsIHBhcmFtZXRlciBpcyBub3QgdXNlZCBvciBzdXBwb3J0ZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgIHNlbGYud2FybmluZ19sZXZlbCA9IHdhcm5pbmdfbGV2ZWwgb3IgNTAwCisgICAgICAgIHNlbGYuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgZW52aXJvblsncGFzdGUuaHR0cGV4Y2VwdGlvbnMnXSA9IHNlbGYKKyAgICAgICAgZW52aXJvbi5zZXRkZWZhdWx0KCdwYXN0ZS5leHBlY3RlZF9leGNlcHRpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKS5hcHBlbmQoSFRUUEV4Y2VwdGlvbikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGV4Y2VwdCBIVFRQRXhjZXB0aW9uIGFzIGV4YzoKKyAgICAgICAgICAgIHJldHVybiBleGMoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2RlZiBtaWRkbGV3YXJlKCphcmdzLCAqKmt3KToKKyAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAjIGRlcHJlY2F0ZWQgMTMgZGVjIDIwMDUKKyAgICB3YXJuaW5ncy53YXJuKCdodHRwZXhjZXB0aW9ucy5taWRkbGV3YXJlIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnCisgICAgICAgICAgICAgICAgICAnbWFrZV9taWRkbGV3YXJlIG9yIEhUVFBFeGNlcHRpb25IYW5kbGVyIGluc3RlYWQnLAorICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgIHJldHVybiBtYWtlX21pZGRsZXdhcmUoKmFyZ3MsICoqa3cpCisKK2RlZiBtYWtlX21pZGRsZXdhcmUoYXBwLCBnbG9iYWxfY29uZj1Ob25lLCB3YXJuaW5nX2xldmVsPU5vbmUpOgorICAgICIiIgorICAgIGBgaHR0cGV4Y2VwdGlvbnNgYCBtaWRkbGV3YXJlOyB0aGlzIGNhdGNoZXMgYW55CisgICAgYGBwYXN0ZS5odHRwZXhjZXB0aW9ucy5IVFRQRXhjZXB0aW9uYGAgZXhjZXB0aW9ucyAoZXhjZXB0aW9ucyBsaWtlCisgICAgYGBIVFRQTm90Rm91bmRgYCwgYGBIVFRQTW92ZWRQZXJtYW5lbnRseWBgLCBldGMpIGFuZCB0dXJucyB0aGVtCisgICAgaW50byBwcm9wZXIgSFRUUCByZXNwb25zZXMuCisKKyAgICBgYHdhcm5pbmdfbGV2ZWxgYCBjYW4gYmUgYW4gaW50ZWdlciBjb3JyZXNwb25kaW5nIHRvIGFuIEhUVFAgY29kZS4KKyAgICBBbnkgY29kZSBvdmVyIHRoYXQgdmFsdWUgd2lsbCBiZSBwYXNzZWQgJ3VwJyB0aGUgY2hhaW4sIHBvdGVudGlhbGx5CisgICAgcmVwb3J0ZWQgb24gYnkgYW5vdGhlciBwaWVjZSBvZiBtaWRkbGV3YXJlLgorICAgICIiIgorICAgIGlmIHdhcm5pbmdfbGV2ZWw6CisgICAgICAgIHdhcm5pbmdfbGV2ZWwgPSBpbnQod2FybmluZ19sZXZlbCkKKyAgICByZXR1cm4gSFRUUEV4Y2VwdGlvbkhhbmRsZXIoYXBwLCB3YXJuaW5nX2xldmVsPXdhcm5pbmdfbGV2ZWwpCisKK19fYWxsX18uZXh0ZW5kKFsnSFRUUEV4Y2VwdGlvbkhhbmRsZXInLCAnZ2V0X2V4Y2VwdGlvbiddKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2h0dHBoZWFkZXJzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2h0dHBoZWFkZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NTcxMzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvaHR0cGhlYWRlcnMucHkKQEAgLTAsMCArMSwxMTE2IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIChjKSAyMDA1IElhbiBCaWNraW5nLCBDbGFyayBDLiBFdmFucyBhbmQgY29udHJpYnV0b3JzCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFNvbWUgb2YgdGhpcyBjb2RlIHdhcyBmdW5kZWQgYnk6IGh0dHA6Ly9wcm9tZXRoZXVzcmVzZWFyY2guY29tCisiIiIKK0hUVFAgTWVzc2FnZSBIZWFkZXIgRmllbGRzIChzZWUgUkZDIDQyMjkpCisKK1RoaXMgY29udGFpbnMgZ2VuZXJhbCBzdXBwb3J0IGZvciBIVFRQLzEuMSBtZXNzYWdlIGhlYWRlcnMgWzFdXyBpbiBhCittYW5uZXIgdGhhdCBzdXBwb3J0cyBXU0dJIGBgZW52aXJvbmBgIFsyXV8gYW5kIGBgcmVzcG9uc2VfaGVhZGVyc2BgCitbM11fLiBTcGVjaWZpY2FsbHksIHRoaXMgbW9kdWxlIGRlZmluZXMgYSBgYEhUVFBIZWFkZXJgYCBjbGFzcyB3aG9zZQoraW5zdGFuY2VzIGNvcnJlc3BvbmQgdG8gZmllbGQtbmFtZSBpdGVtcy4gIFRoZSBhY3R1YWwgZmllbGQtY29udGVudCBmb3IKK3RoZSBtZXNzYWdlLWhlYWRlciBpcyBzdG9yZWQgaW4gdGhlIGFwcHJvcHJpYXRlIFdTR0kgY29sbGVjdGlvbiAoZWl0aGVyCit0aGUgYGBlbnZpcm9uYGAgZm9yIHJlcXVlc3RzLCBvciBgYHJlc3BvbnNlX2hlYWRlcnNgYCBmb3IgcmVzcG9uc2VzKS4KKworRWFjaCBgYEhUVFBIZWFkZXJgYCBpbnN0YW5jZSBpcyBhIGNhbGxhYmxlIChkZWZpbmluZyBgYF9fY2FsbF9fYGApCit0aGF0IHRha2VzIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorCisgIC0gYW4gYGBlbnZpcm9uYGAgZGljdGlvbmFyeSwgcmV0dXJuaW5nIHRoZSBjb3JyZXNwb25kaW5nIGhlYWRlcgorICAgIHZhbHVlIGJ5IGFjY29yZGluZyB0byB0aGUgV1NHSSdzIGBgSFRUUF9gYCBwcmVmaXggbWVjaGFuaXNtLCBlLmcuLAorICAgIGBgVVNFUl9BR0VOVChlbnZpcm9uKWBgIHJldHVybnMgYGBlbnZpcm9uLmdldCgnSFRUUF9VU0VSX0FHRU5UJylgYAorCisgIC0gYSBgYHJlc3BvbnNlX2hlYWRlcnNgYCBsaXN0LCBnaXZpbmcgYSBjb21tYS1kZWxpbWl0ZWQgc3RyaW5nIGZvcgorICAgIGVhY2ggY29ycmVzcG9uZGluZyBgYGhlYWRlcl92YWx1ZWBgIHR1cGxlIGVudHJpZXMgKHNlZSBiZWxvdykuCisKKyAgLSBhIHNlcXVlbmNlIG9mIHN0cmluZyBgYCphcmdzYGAgdGhhdCBhcmUgY29tbWEtZGVsaW1pdGVkIGludG8KKyAgICBhIHNpbmdsZSBzdHJpbmcgdmFsdWU6IGBgQ09OVEVOVF9UWVBFKCJ0ZXh0L2h0bWwiLCJ0ZXh0L3BsYWluIilgYAorICAgIHJldHVybnMgYGAidGV4dC9odG1sLCB0ZXh0L3BsYWluImBgCisKKyAgLSBhIHNldCBvZiBgYCoqa3dhcmdzYGAga2V5d29yZCBhcmd1bWVudHMgdGhhdCBhcmUgdXNlZCB0byBjcmVhdGUKKyAgICBhIGhlYWRlciB2YWx1ZSwgaW4gYSBtYW5uZXIgZGVwZW5kZW50IHVwb24gdGhlIHBhcnRpY3VsYXIgaGVhZGVyIGluCisgICAgcXVlc3Rpb24gKHRvIG1ha2UgdmFsdWUgY29uc3RydWN0aW9uIGVhc2llciBhbmQgZXJyb3ItZnJlZSk6CisgICAgYGBDT05URU5UX0RJU1BPU0lUSU9OKG1heF9hZ2U9Q09OVEVOVF9ESVNQT1NJVElPTi5PTkVXRUVLKWBgCisgICAgcmV0dXJucyBgYCJwdWJsaWMsIG1heC1hZ2U9NjA0ODAiYGAKKworRWFjaCBgYEhUVFBIZWFkZXJgYCBpbnN0YW5jZSBhbHNvIHByb3ZpZGVzIHNldmVyYWwgbWV0aG9kcyB0byBhY3Qgb24KK2EgV1NHSSBjb2xsZWN0aW9uLCBmb3IgcmVtb3ZpbmcgYW5kIHNldHRpbmcgaGVhZGVyIHZhbHVlcy4KKworICBgYGRlbGV0ZShjb2xsZWN0aW9uKWBgCisKKyAgICBUaGlzIG1ldGhvZCByZW1vdmVzIGFsbCBlbnRyaWVzIG9mIHRoZSBjb3JyZXNwb25kaW5nIGhlYWRlciBmcm9tCisgICAgdGhlIGdpdmVuIGNvbGxlY3Rpb24gKGBgZW52aXJvbmBgIG9yIGBgcmVzcG9uc2VfaGVhZGVyc2BgKSwgZS5nLiwKKyAgICBgYFVTRVJfQUdFTlQuZGVsZXRlKGVudmlyb24pYGAgZGVsZXRlcyB0aGUgJ0hUVFBfVVNFUl9BR0VOVCcgZW50cnkKKyAgICBmcm9tIHRoZSBgYGVudmlyb25gYC4KKworICBgYHVwZGF0ZShjb2xsZWN0aW9uLCAqYXJncywgKiprd2FyZ3MpYGAKKworICAgIFRoaXMgbWV0aG9kIGRvZXMgYW4gaW4tcGxhY2UgcmVwbGFjZW1lbnQgb2YgdGhlIGdpdmVuIGhlYWRlciBlbnRyeSwKKyAgICBmb3IgZXhhbXBsZTogYGBDT05URU5UX0xFTkdUSChyZXNwb25zZV9oZWFkZXJzLGxlbihib2R5KSlgYAorCisgICAgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgdmFsaWQgYGBlbnZpcm9uYGAgZGljdGlvbmFyeSBvcgorICAgIGBgcmVzcG9uc2VfaGVhZGVyc2BgIGxpc3Q7IHJlbWFpbmluZyBhcmd1bWVudHMgYXJlIHBhc3NlZCBvbiB0bworICAgIGBgX19jYWxsX18oKmFyZ3MsICoqa3dhcmdzKWBgIGZvciB2YWx1ZSBjb25zdHJ1Y3Rpb24uCisKKyAgYGBhcHBseShjb2xsZWN0aW9uLCAqKmt3YXJncylgYAorCisgICAgVGhpcyBtZXRob2QgaXMgc2ltaWxhciB0byB1cGRhdGUsIG9ubHkgdGhhdCBpdCBtYXkgYWZmZWN0IG90aGVyCisgICAgaGVhZGVycy4gIEZvciBleGFtcGxlLCBhY2NvcmRpbmcgdG8gcmVjb21tZW5kYXRpb25zIGluIFJGQyAyNjE2LAorICAgIGNlcnRhaW4gQ2FjaGUtQ29udHJvbCBjb25maWd1cmF0aW9ucyBzaG91bGQgYWxzbyBzZXQgdGhlCisgICAgYGBFeHBpcmVzYGAgaGVhZGVyIGZvciBIVFRQLzEuMCBjbGllbnRzLiBCeSBkZWZhdWx0LCBgYGFwcGx5KClgYAorICAgIGlzIHNpbXBseSBgYHVwZGF0ZSgpYGAgYnV0IGxpbWl0ZWQgdG8ga2V5d29yZCBhcmd1bWVudHMuCisKK1RoaXMgcGFydGljdWxhciBhcHByb2FjaCB0byBtYW5hZ2luZyBoZWFkZXJzIHdpdGhpbiBhIFdTR0kgY29sbGVjdGlvbgoraGFzIHNldmVyYWwgYWR2YW50YWdlczoKKworICAxLiBUeXBvcyBpbiB0aGUgaGVhZGVyIG5hbWUgYXJlIGVhc2lseSBkZXRlY3RlZCBzaW5jZSB0aGV5IGJlY29tZSBhCisgICAgIGBgTmFtZUVycm9yYGAgd2hlbiBleGVjdXRlZC4gIFRoZSBhcHByb2FjaCBvZiB1c2luZyBoZWFkZXIgc3RyaW5ncworICAgICBkaXJlY3RseSBjYW4gYmUgcHJvYmxlbWF0aWM7IGZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHNob3VsZAorICAgICByZXR1cm4gYGBOb25lYGAgOiBgYGVudmlyb24uZ2V0KCJIVFRQX0FDQ0VQVF9MQU5HVUFHRVMiKWBgCisKKyAgMi4gRm9yIHNwZWNpZmljIGhlYWRlcnMgd2l0aCB2YWxpZGF0aW9uLCB1c2luZyBgYF9fY2FsbF9fYGAgd2lsbAorICAgICByZXN1bHQgaW4gYW4gYXV0b21hdGljIGhlYWRlciB2YWx1ZSBjaGVjay4gIEZvciBleGFtcGxlLCB0aGUKKyAgICAgX0NvbnRlbnREaXNwb3NpdGlvbiBoZWFkZXIgd2lsbCByZWplY3QgYSB2YWx1ZSBoYXZpbmcgYGBtYXhhZ2VgYAorICAgICBvciBgYG1heF9hZ2VgYCAodGhlIGFwcHJvcHJpYXRlIHBhcmFtZXRlciBpcyBgYG1heC1hZ2VgYCApLgorCisgIDMuIFdoZW4gYXBwZW5kaW5nL3JlcGxhY2luZyBoZWFkZXJzLCB0aGUgZmllbGQtbmFtZSBoYXMgdGhlIHN1Z2dlc3RlZAorICAgICBSRkMgY2FwaXRhbGl6YXRpb24gKGUuZy4gYGBDb250ZW50LVR5cGVgYCBvciBgYEVUYWdgYCkgZm9yCisgICAgIHVzZXItYWdlbnRzIHRoYXQgaW5jb3JyZWN0bHkgdXNlIGNhc2Utc2Vuc2l0aXZlIG1hdGNoZXMuCisKKyAgNC4gU29tZSBoZWFkZXJzIChzdWNoIGFzIGBgQ29udGVudC1UeXBlYGApIGFyZSAwLCB0aGF0IGlzLAorICAgICBvbmx5IG9uZSBlbnRyeSBvZiB0aGlzIHR5cGUgbWF5IG9jY3VyIGluIGEgZ2l2ZW4gc2V0IG9mCisgICAgIGBgcmVzcG9uc2VfaGVhZGVyc2BgLiAgVGhpcyBtb2R1bGUga25vd3MgYWJvdXQgdGhvc2UgY2FzZXMgYW5kCisgICAgIGVuZm9yY2VzIHRoaXMgY2FyZGluYWxpdHkgY29uc3RyYWludC4KKworICA1LiBUaGUgZXhhY3QgZGV0YWlscyBvZiBXU0dJIGhlYWRlciBtYW5hZ2VtZW50IGFyZSBhYnN0cmFjdGVkIHNvCisgICAgIHRoZSBwcm9ncmFtbWVyIG5lZWQgbm90IHdvcnJ5IGFib3V0IG9wZXJhdGlvbmFsIGRpZmZlcmVuY2VzCisgICAgIGJldHdlZW4gYGBlbnZpcm9uYGAgZGljdGlvbmFyeSBvciBgYHJlc3BvbnNlX2hlYWRlcnNgYCBsaXN0LgorCisgIDYuIFNvcnRpbmcgb2YgYGBIVFRQSGVhZGVyc2BgIGlzIGRvbmUgZm9sbG93aW5nIHRoZSBSRkMgc3VnZ2VzdGlvbgorICAgICB0aGF0IGdlbmVyYWwtaGVhZGVycyBjb21lIGZpcnN0LCBmb2xsb3dlZCBieSByZXF1ZXN0IGFuZCByZXNwb25zZQorICAgICBoZWFkZXJzLCBhbmQgZmluaXNoaW5nIHdpdGggZW50aXR5LWhlYWRlcnMuCisKKyAgNy4gU3BlY2lhbCBjYXJlIGlzIGdpdmVuIHRvIGV4Y2VwdGlvbmFsIGNhc2VzIHN1Y2ggYXMgU2V0LUNvb2tpZQorICAgICB3aGljaCB2aW9sYXRlcyB0aGUgUkZDJ3MgcmVjb21tZW5kYXRpb24gYWJvdXQgY29tYmluaW5nIGhlYWRlcgorICAgICBjb250ZW50IGludG8gYSBzaW5nbGUgZW50cnkgdXNpbmcgY29tbWEgc2VwYXJhdGlvbi4KKworQSBwYXJ0aWN1bGFyIGRpZmZpY3VsdHkgd2l0aCBIVFRQIG1lc3NhZ2UgaGVhZGVycyBpcyBhIGNhdGVnb3JpemF0aW9uCitvZiBzb3J0cyBhcyBkZXNjcmliZWQgaW4gc2VjdGlvbiA0LjI6CisKKyAgICBNdWx0aXBsZSBtZXNzYWdlLWhlYWRlciBmaWVsZHMgd2l0aCB0aGUgc2FtZSBmaWVsZC1uYW1lIE1BWSBiZQorICAgIHByZXNlbnQgaW4gYSBtZXNzYWdlIGlmIGFuZCBvbmx5IGlmIHRoZSBlbnRpcmUgZmllbGQtdmFsdWUgZm9yCisgICAgdGhhdCBoZWFkZXIgZmllbGQgaXMgZGVmaW5lZCBhcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IFtpLmUuLAorICAgICModmFsdWVzKV0uIEl0IE1VU1QgYmUgcG9zc2libGUgdG8gY29tYmluZSB0aGUgbXVsdGlwbGUgaGVhZGVyCisgICAgZmllbGRzIGludG8gb25lICJmaWVsZC1uYW1lOiBmaWVsZC12YWx1ZSIgcGFpciwgd2l0aG91dCBjaGFuZ2luZworICAgIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIG1lc3NhZ2UsIGJ5IGFwcGVuZGluZyBlYWNoIHN1YnNlcXVlbnQKKyAgICBmaWVsZC12YWx1ZSB0byB0aGUgZmlyc3QsIGVhY2ggc2VwYXJhdGVkIGJ5IGEgY29tbWEuCisKK1RoaXMgY3JlYXRlcyB0aHJlZSBmdW5kYW1lbnRhbGx5IGRpZmZlcmVudCBraW5kcyBvZiBoZWFkZXJzOgorCisgIC0gVGhvc2UgdGhhdCBkbyBub3QgaGF2ZSBhICModmFsdWVzKSBwcm9kdWN0aW9uLCBhbmQgaGVuY2UgYXJlCisgICAgc2luZ3VsYXIgYW5kIG1heSBvbmx5IG9jY3VyIG9uY2UgaW4gYSBzZXQgb2YgcmVzcG9uc2UgZmllbGRzOworICAgIHRoaXMgY2FzZSBpcyBoYW5kbGVkIGJ5IHRoZSBgYF9TaW5nbGVWYWx1ZUhlYWRlcmBgIHN1YmNsYXNzLgorCisgIC0gVGhvc2Ugd2hpY2ggaGF2ZSB0aGUgIyh2YWx1ZXMpIHByb2R1Y3Rpb24gYW5kIGZvbGxvdyB0aGUKKyAgICBjb21iaW5pbmcgcnVsZSBvdXRsaW5lZCBhYm92ZTsgb3VyIGBgX011bHRpVmFsdWVIZWFkZXJgYCBjYXNlLgorCisgIC0gVGhvc2Ugd2hpY2ggYXJlIG11bHRpLXZhbHVlZCwgYnV0IGNhbm5vdCBiZSBjb21iaW5lZCAoc3VjaCBhcyB0aGUKKyAgICBgYFNldC1Db29raWVgYCBoZWFkZXIgZHVlIHRvIGl0cyBgYEV4cGlyZXNgYCBwYXJhbWV0ZXIpOyBvciB3aGVyZQorICAgIGNvbWJpbmluZyB0aGVtIGludG8gYSBzaW5nbGUgaGVhZGVyIGVudHJ5IHdvdWxkIGNhdXNlIGNvbW1vbgorICAgIHVzZXItYWdlbnRzIHRvIGZhaWwgKGBgV1dXLUF1dGhlbnRpY2F0ZWBgLCBgYFdhcm5pbmdgYCkgc2luY2UKKyAgICB0aGV5IGZhaWwgdG8gaGFuZGxlIGRhdGVzIGV2ZW4gd2hlbiBwcm9wZXJseSBxdW90ZWQuIFRoaXMgY2FzZQorICAgIGlzIGhhbmRsZWQgYnkgYGBfTXVsdGlFbnRyeUhlYWRlcmBgLgorCitTaW5jZSB0aGlzIHByb2plY3QgZG9lcyBub3QgaGF2ZSB0aW1lIHRvIHByb3ZpZGUgcmlnb3JvdXMgc3VwcG9ydAorYW5kIHZhbGlkYXRpb24gZm9yIGFsbCBoZWFkZXJzLCBpdCBkb2VzIGEgYmFzaWMgY29uc3RydWN0aW9uIG9mCitoZWFkZXJzIGxpc3RlZCBpbiBSRkMgMjYxNiAocGx1cyBhIGZldyBvdGhlcnMpIHNvIHRoYXQgdGhleSBjYW4KK2JlIG9idGFpbmVkIGJ5IHNpbXBseSBkb2luZyBgYGZyb20gcGFzdGUuaHR0cGhlYWRlcnMgaW1wb3J0ICpgYDsKK3RoZSBuYW1lIG9mIHRoZSBoZWFkZXIgaW5zdGFuY2UgaXMgdGhlICJjb21tb24gbmFtZSIgbGVzcyBhbnkKK2Rhc2hlcyB0byBnaXZlIENhbWVsQ2FzZSBzdHlsZSBuYW1lcy4KKworLi4gWzFdIGh0dHA6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjNC5odG1sI3NlYzQuMgorLi4gWzJdIGh0dHA6Ly93d3cucHl0aG9uLm9yZy9wZXBzL3BlcC0wMzMzLmh0bWwjZW52aXJvbi12YXJpYWJsZXMKKy4uIFszXSBodHRwOi8vd3d3LnB5dGhvbi5vcmcvcGVwcy9wZXAtMDMzMy5odG1sI3RoZS1zdGFydC1yZXNwb25zZS1jYWxsYWJsZQorCisiIiIKK2ltcG9ydCBtaW1ldHlwZXMKK2ltcG9ydCBzaXgKK2Zyb20gdGltZSBpbXBvcnQgdGltZSBhcyBub3cKK3RyeToKKyAgICAjIFB5dGhvbiAzCisgICAgZnJvbSBlbWFpbC51dGlscyBpbXBvcnQgZm9ybWF0ZGF0ZSwgcGFyc2VkYXRlX3R6LCBta3RpbWVfdHoKKyAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCBBYnN0cmFjdERpZ2VzdEF1dGhIYW5kbGVyLCBwYXJzZV9rZXF2X2xpc3QsIHBhcnNlX2h0dHBfbGlzdAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgUHl0aG9uIDIKKyAgICBmcm9tIHJmYzgyMiBpbXBvcnQgZm9ybWF0ZGF0ZSwgcGFyc2VkYXRlX3R6LCBta3RpbWVfdHoKKyAgICBmcm9tIHVybGxpYjIgaW1wb3J0IEFic3RyYWN0RGlnZXN0QXV0aEhhbmRsZXIsIHBhcnNlX2tlcXZfbGlzdCwgcGFyc2VfaHR0cF9saXN0CisKK2Zyb20gLmh0dHBleGNlcHRpb25zIGltcG9ydCBIVFRQQmFkUmVxdWVzdAorCitfX2FsbF9fID0gWydnZXRfaGVhZGVyJywgJ2xpc3RfaGVhZGVycycsICdub3JtYWxpemVfaGVhZGVycycsCisgICAgICAgICAgICdIVFRQSGVhZGVyJywgJ0Vudmlyb25WYXJpYWJsZScgXQorCitjbGFzcyBFbnZpcm9uVmFyaWFibGUoc3RyKToKKyAgICAiIiIKKyAgICBhIENHSSBgYGVudmlyb25gYCB2YXJpYWJsZSBhcyBkZXNjcmliZWQgYnkgV1NHSQorCisgICAgVGhpcyBpcyBhIGhlbHBlciBvYmplY3Qgc28gdGhhdCBzdGFuZGFyZCBXU0dJIGBgZW52aXJvbmBgIHZhcmlhYmxlcworICAgIGNhbiBiZSBleHRyYWN0ZWQgdy9vIHN5bnRheCBlcnJvciBwb3NzaWJpbGl0eS4KKyAgICAiIiIKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbik6CisgICAgICAgIHJldHVybiBlbnZpcm9uLmdldChzZWxmLCcnKQorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8RW52aXJvblZhcmlhYmxlICVzPicgJSBzZWxmCisgICAgZGVmIHVwZGF0ZShzZWxmLCBlbnZpcm9uLCB2YWx1ZSk6CisgICAgICAgIGVudmlyb25bc2VsZl0gPSB2YWx1ZQorUkVNT1RFX1VTRVIgICAgPSBFbnZpcm9uVmFyaWFibGUoIlJFTU9URV9VU0VSIikKK1JFTU9URV9TRVNTSU9OID0gRW52aXJvblZhcmlhYmxlKCJSRU1PVEVfU0VTU0lPTiIpCitBVVRIX1RZUEUgICAgICA9IEVudmlyb25WYXJpYWJsZSgiQVVUSF9UWVBFIikKK1JFUVVFU1RfTUVUSE9EID0gRW52aXJvblZhcmlhYmxlKCJSRVFVRVNUX01FVEhPRCIpCitTQ1JJUFRfTkFNRSAgICA9IEVudmlyb25WYXJpYWJsZSgiU0NSSVBUX05BTUUiKQorUEFUSF9JTkZPICAgICAgPSBFbnZpcm9uVmFyaWFibGUoIlBBVEhfSU5GTyIpCisKK2ZvciBfbmFtZSwgX29iaiBpbiBzaXguaXRlcml0ZW1zKGRpY3QoZ2xvYmFscygpKSk6CisgICAgaWYgaXNpbnN0YW5jZShfb2JqLCBFbnZpcm9uVmFyaWFibGUpOgorICAgICAgICBfX2FsbF9fLmFwcGVuZChfbmFtZSkKKworX2hlYWRlcnMgPSB7fQorCitjbGFzcyBIVFRQSGVhZGVyKG9iamVjdCk6CisgICAgIiIiCisgICAgYW4gSFRUUCBoZWFkZXIKKworICAgIEhUVFBIZWFkZXIgaW5zdGFuY2VzIHJlcHJlc2VudCBhIHBhcnRpY3VsYXIgYGBmaWVsZC1uYW1lYGAgb2YgYW4KKyAgICBIVFRQIG1lc3NhZ2UgaGVhZGVyLiBUaGV5IGRvIG5vdCBob2xkIGEgZmllbGQtdmFsdWUsIGJ1dCBpbnN0ZWFkCisgICAgcHJvdmlkZSBvcGVyYXRpb25zIHRoYXQgd29yayBvbiBpcyBjb3JyZXNwb25kaW5nIHZhbHVlcy4gIFN0b3JhZ2UKKyAgICBvZiB0aGUgYWN0dWFsIGZpZWxkIHZhbHVlcyBpcyBkb25lIHdpdGggV1NHSSBgYGVudmlyb25gYCBvcgorICAgIGBgcmVzcG9uc2VfaGVhZGVyc2BgIGFzIGFwcHJvcHJpYXRlLiAgVHlwaWNhbGx5LCBhIHN1Yi1jbGFzc2VzIHRoYXQKKyAgICByZXByZXNlbnQgYSBzcGVjaWZpYyBIVFRQIGhlYWRlciwgc3VjaCBhcyBfQ29udGVudERpc3Bvc2l0aW9uLCBhcmUKKyAgICAwLiAgT25jZSBjb25zdHJ1Y3RlZCB0aGUgSFRUUEhlYWRlciBpbnN0YW5jZXMgdGhlbXNlbHZlcworICAgIGFyZSBpbW11dGFibGUgYW5kIHN0YXRlbGVzcy4KKworICAgIEZvciBwdXJwb3NlcyBvZiBkb2N1bWVudGF0aW9uIGEgImNvbnRhaW5lciIgcmVmZXJzIHRvIGVpdGhlciBhCisgICAgV1NHSSBgYGVudmlyb25gYCBkaWN0aW9uYXJ5LCBvciBhIGBgcmVzcG9uc2VfaGVhZGVyc2BgIGxpc3QuCisKKyAgICBNZW1iZXIgdmFyaWFibGVzIChhbmQgY29ycmVzcG9uZGluZ2x5IGNvbnN0cnVjdG9yIGFyZ3VtZW50cykuCisKKyAgICAgIGBgbmFtZWBgCisKKyAgICAgICAgICB0aGUgYGBmaWVsZC1uYW1lYGAgb2YgdGhlIGhlYWRlciwgaW4gImNvbW1vbiBmb3JtIgorICAgICAgICAgIGFzIHByZXNlbnRlZCBpbiBSRkMgMjYxNjsgZS5nLiAnQ29udGVudC1UeXBlJworCisgICAgICBgYGNhdGVnb3J5YGAKKworICAgICAgICAgIG9uZSBvZiAnZ2VuZXJhbCcsICdyZXF1ZXN0JywgJ3Jlc3BvbnNlJywgb3IgJ2VudGl0eScKKworICAgICAgYGB2ZXJzaW9uYGAKKworICAgICAgICAgIHZlcnNpb24gb2YgSFRUUCAoaW5mb3JtYXRpb25hbCkgd2l0aCB3aGljaCB0aGUgaGVhZGVyIHNob3VsZAorICAgICAgICAgIGJlIHJlY29nbml6ZWQKKworICAgICAgYGBzb3J0X29yZGVyYGAKKworICAgICAgICAgIHNvcnRpbmcgb3JkZXIgdG8gYmUgYXBwbGllZCBiZWZvcmUgc29ydGluZyBvbgorICAgICAgICAgIGZpZWxkLW5hbWUgd2hlbiBvcmRlcmluZyBoZWFkZXJzIGluIGEgcmVzcG9uc2UKKworICAgIFNwZWNpYWwgTWV0aG9kczoKKworICAgICAgIGBgX19jYWxsX19gYAorCisgICAgICAgICAgIFRoZSBwcmltYXJ5IG1ldGhvZCBvZiB0aGUgSFRUUEhlYWRlciBpbnN0YW5jZSBpcyB0byBtYWtlCisgICAgICAgICAgIGl0IGEgY2FsbGFibGUsIGl0IHRha2VzIGVpdGhlciBhIGNvbGxlY3Rpb24sIGEgc3RyaW5nIHZhbHVlLAorICAgICAgICAgICBvciBrZXl3b3JkIGFyZ3VtZW50cyBhbmQgYXR0ZW1wdHMgdG8gZmluZC9jb25zdHJ1Y3QgYSB2YWxpZAorICAgICAgICAgICBmaWVsZC12YWx1ZQorCisgICAgICAgYGBfX2x0X19gYAorCisgICAgICAgICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgc28gdGhhdCBIVFRQSGVhZGVyIG9iamVjdHMgY2FuIGJlCisgICAgICAgICAgIHNvcnRlZCBpbiBhIG1hbm5lciBzdWdnZXN0ZWQgYnkgUkZDIDI2MTYuCisKKyAgICAgICBgYF9fc3RyX19gYAorCisgICAgICAgICAgIFRoZSBzdHJpbmctdmFsdWUgZm9yIGluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGlzCisgICAgICAgICAgIHRoZSBgYGZpZWxkLW5hbWVgYC4KKworICAgIFByaW1hcnkgTWV0aG9kczoKKworICAgICAgIGBgZGVsZXRlKClgYAorCisgICAgICAgICAgIHJlbW92ZSB0aGUgYWxsIG9jY3VycmVuY2VzIChpZiBhbnkpIG9mIHRoZSBnaXZlbgorICAgICAgICAgICBoZWFkZXIgaW4gdGhlIGNvbGxlY3Rpb24gcHJvdmlkZWQKKworICAgICAgIGBgdXBkYXRlKClgYAorCisgICAgICAgICAgIHJlcGxhY2VzIChpZiB0aGV5IGV4aXN0KSBhbGwgZmllbGQtdmFsdWUgaXRlbXMKKyAgICAgICAgICAgaW4gdGhlIGdpdmVuIGNvbGxlY3Rpb24gd2l0aCB0aGUgdmFsdWUgcHJvdmlkZWQKKworICAgICAgIGBgdHVwbGVzKClgYAorCisgICAgICAgICAgIHJldHVybnMgYSBzZXQgb2YgKGZpZWxkLW5hbWUsIGZpZWxkLXZhbHVlKSB0dXBsZXMKKyAgICAgICAgICAgNSBmb3IgZXh0ZW5kaW5nIGBgcmVzcG9uc2VfaGVhZGVyc2BgCisKKyAgICBDdXN0b20gTWV0aG9kcyAodGhlc2UgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCk6CisKKyAgICAgICBgYGFwcGx5KClgYAorCisgICAgICAgICAgIHNpbWlsYXIgdG8gYGB1cGRhdGVgYCwgYnV0IHdpdGggdHdvIGRpZmZlcmVuY2VzOyBmaXJzdCwKKyAgICAgICAgICAgb25seSBrZXl3b3JkIGFyZ3VtZW50cyBjYW4gYmUgdXNlZCwgYW5kIHNlY29uZCwgc3BlY2lmaWMKKyAgICAgICAgICAgc3ViLWNsYXNzZXMgbWF5IGludHJvZHVjZSBzaWRlLWVmZmVjdHMKKworICAgICAgIGBgcGFyc2UoKWBgCisKKyAgICAgICAgICAgY29udmVydHMgYSBzdHJpbmcgdmFsdWUgb2YgdGhlIGhlYWRlciBpbnRvIGEgbW9yZSB1c2FibGUKKyAgICAgICAgICAgZm9ybSwgc3VjaCBhcyB0aW1lIGluIHNlY29uZHMgZm9yIGEgZGF0ZSBoZWFkZXIsIGV0Yy4KKworICAgIFRoZSBjb2xsZWN0ZWQgdmVyc2lvbnMgb2YgaW5pdGlhbGl6ZWQgaGVhZGVyIGluc3RhbmNlcyBhcmUgaW1tZWRpYXRlbHkKKyAgICByZWdpc3RlcmVkIGFuZCBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGBgZ2V0X2hlYWRlcmBgIGZ1bmN0aW9uLiAgRG8gbm90CisgICAgaW5oZXJpdCBmcm9tIHRoaXMgZGlyZWN0bHksIHVzZSBvbmUgb2YgYGBfU2luZ2xlVmFsdWVIZWFkZXJgYCwKKyAgICBgYF9NdWx0aVZhbHVlSGVhZGVyYGAsIG9yIGBgX011bHRpRW50cnlIZWFkZXJgYCBhcyBhcHByb3ByaWF0ZS4KKyAgICAiIiIKKworICAgICMKKyAgICAjIFRoaW5ncyB3aGljaCBjYW4gYmUgY3VzdG9taXplZAorICAgICMKKyAgICB2ZXJzaW9uID0gJzEuMScKKyAgICBjYXRlZ29yeSA9ICdnZW5lcmFsJworICAgIHJlZmVyZW5jZSA9ICcnCisgICAgZXh0ZW5zaW9ucyA9IHt9CisKKyAgICBkZWYgY29tcG9zZShzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBidWlsZCBoZWFkZXIgdmFsdWUgZnJvbSBrZXl3b3JkIGFyZ3VtZW50cworCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gYnVpbGQgdGhlIGNvcnJlc3BvbmRpbmcgaGVhZGVyIHZhbHVlIHdoZW4KKyAgICAgICAga2V5d29yZCBhcmd1bWVudHMgKG9yIG5vIGFyZ3VtZW50cykgd2VyZSBwcm92aWRlZC4gIFRoZSByZXN1bHQKKyAgICAgICAgc2hvdWxkIGJlIGEgc2VxdWVuY2Ugb2YgdmFsdWVzLiAgRm9yIGV4YW1wbGUsIHRoZSBgYEV4cGlyZXNgYAorICAgICAgICBoZWFkZXIgdGFrZXMgYSBrZXl3b3JkIGFyZ3VtZW50IGBgdGltZWBgIChlLmcuIHRpbWUudGltZSgpKSBmcm9tCisgICAgICAgIHdoaWNoIGl0IHJldHVybnMgYSB0aGUgY29ycmVzcG9uZGluZyBkYXRlLgorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgcGFyc2Uoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIGNvbnZlcnQgcmF3IGhlYWRlciB2YWx1ZSBpbnRvIG1vcmUgdXNhYmxlIGZvcm0KKworICAgICAgICBUaGlzIG1ldGhvZCBpbnZva2VzIGBgdmFsdWVzKClgYCB3aXRoIHRoZSBhcmd1bWVudHMgcHJvdmlkZWQsCisgICAgICAgIHBhcnNlcyB0aGUgaGVhZGVyIHJlc3VsdHMsIGFuZCB0aGVuIHJldHVybnMgYSBoZWFkZXItc3BlY2lmaWMKKyAgICAgICAgZGF0YSBzdHJ1Y3R1cmUgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhZGVyLiAgRm9yIGV4YW1wbGUsIHRoZQorICAgICAgICBgYEV4cGlyZXNgYCBoZWFkZXIgcmV0dXJucyBzZWNvbmRzIChhcyByZXR1cm5lZCBieSB0aW1lLnRpbWUoKSkKKyAgICAgICAgIiIiCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgZGVmIGFwcGx5KHNlbGYsIGNvbGxlY3Rpb24sICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIHVwZGF0ZSB0aGUgY29sbGVjdGlvbiAvdyBoZWFkZXIgdmFsdWUgKG1heSBoYXZlIHNpZGUgZWZmZWN0cykKKworICAgICAgICBUaGlzIG1ldGhvZCBpcyBzaW1pbGFyIHRvIGBgdXBkYXRlYGAgb25seSB0aGF0IHVzYWdlIG1heSByZXN1bHQKKyAgICAgICAgaW4gb3RoZXIgaGVhZGVycyBiZWluZyBjaGFuZ2VkIGFzIHJlY29tbWVuZGVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgIHNwZWNpZmljYXRpb24uICBUaGUgcmV0dXJuIHZhbHVlIGlzIGRlZmluZWQgYnkgdGhlIHBhcnRpY3VsYXIKKyAgICAgICAgc3ViLWNsYXNzLiBGb3IgZXhhbXBsZSwgdGhlIGBgX0NhY2hlQ29udHJvbC5hcHBseSgpYGAgc2V0cyB0aGUKKyAgICAgICAgYGBFeHBpcmVzYGAgaGVhZGVyIGluIGFkZGl0aW9uIHRvIGl0cyBub3JtYWwgYmVoYXZpb3IuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnVwZGF0ZShjb2xsZWN0aW9uLCAqKmt3YXJncykKKworICAgICMKKyAgICAjIFRoaW5ncyB3aGljaCBhcmUgc3RhbmRhcmRpemVkIChtb3N0bHkpCisgICAgIworICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgY2F0ZWdvcnk9Tm9uZSwgcmVmZXJlbmNlPU5vbmUsIHZlcnNpb249Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBjb25zdHJ1Y3QgYSBuZXcgYGBIVFRQSGVhZGVyYGAgaW5zdGFuY2UKKworICAgICAgICBXZSB1c2UgdGhlIGBgX19uZXdfX2BgIG9wZXJhdG9yIHRvIGVuc3VyZSB0aGF0IG9ubHkgb25lCisgICAgICAgIGBgSFRUUEhlYWRlcmBgIGluc3RhbmNlIGV4aXN0cyBmb3IgZWFjaCBmaWVsZC1uYW1lLCBhbmQgdG8KKyAgICAgICAgcmVnaXN0ZXIgdGhlIGhlYWRlciBzbyB0aGF0IGl0IGNhbiBiZSBmb3VuZC9lbnVtZXJhdGVkLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZiA9IGdldF9oZWFkZXIobmFtZSwgcmFpc2VFcnJvcj1GYWxzZSkKKyAgICAgICAgaWYgc2VsZjoKKyAgICAgICAgICAgICMgQWxsb3cgdGhlIHJlZ2lzdHJhdGlvbiB0byBoYXBwZW4gYWdhaW4sIGJ1dCBhc3NlcnQKKyAgICAgICAgICAgICMgdGhhdCBldmVyeXRoaW5nIGlzIGlkZW50aWNhbC4KKyAgICAgICAgICAgIGFzc2VydCBzZWxmLm5hbWUgPT0gbmFtZSwgXAorICAgICAgICAgICAgICAgICJkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIHdpdGggZGlmZmVyZW50IGNhcGl0YWxpemF0aW9uIgorICAgICAgICAgICAgYXNzZXJ0IHNlbGYuY2F0ZWdvcnkgPT0gY2F0ZWdvcnksIFwKKyAgICAgICAgICAgICAgICAiZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiB3aXRoIGRpZmZlcmVudCBjYXRlZ29yeSIKKyAgICAgICAgICAgIGFzc2VydCBjbHMgPT0gc2VsZi5fX2NsYXNzX18sIFwKKyAgICAgICAgICAgICAgICAiZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiB3aXRoIGRpZmZlcmVudCBjbGFzcyIKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgc2VsZiA9IG9iamVjdC5fX25ld19fKGNscykKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLm5hbWUsIHN0cikKKyAgICAgICAgc2VsZi5jYXRlZ29yeSA9IGNhdGVnb3J5IG9yIHNlbGYuY2F0ZWdvcnkKKyAgICAgICAgc2VsZi52ZXJzaW9uICA9IHZlcnNpb24gb3Igc2VsZi52ZXJzaW9uCisgICAgICAgIHNlbGYucmVmZXJlbmNlID0gcmVmZXJlbmNlIG9yIHNlbGYucmVmZXJlbmNlCisgICAgICAgIF9oZWFkZXJzW3NlbGYubmFtZS5sb3dlcigpXSA9IHNlbGYKKyAgICAgICAgc2VsZi5zb3J0X29yZGVyID0geydnZW5lcmFsJzogMSwgJ3JlcXVlc3QnOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc3BvbnNlJzogMywgJ2VudGl0eSc6IDQgfVtzZWxmLmNhdGVnb3J5XQorICAgICAgICBzZWxmLl9lbnZpcm9uX25hbWUgPSBnZXRhdHRyKHNlbGYsICdfZW52aXJvbl9uYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0hUVFBfJysgc2VsZi5uYW1lLnVwcGVyKCkucmVwbGFjZSgiLSIsIl8iKSkKKyAgICAgICAgc2VsZi5faGVhZGVyc19uYW1lID0gZ2V0YXR0cihzZWxmLCAnX2hlYWRlcnNfbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5hbWUubG93ZXIoKSkKKyAgICAgICAgYXNzZXJ0IHNlbGYudmVyc2lvbiBpbiAoJzEuMScsICcxLjAnLCAnMC45JykKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5uYW1lCisKKyAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIiIiCisgICAgICAgIHNvcnQgaGVhZGVyIGluc3RhbmNlcyBhcyBzcGVjaWZpZWQgYnkgUkZDIDI2MTYKKworICAgICAgICBSZS1kZWZpbmUgc29ydGluZyBzbyB0aGF0IGdlbmVyYWwgaGVhZGVycyBhcmUgZmlyc3QsIGZvbGxvd2VkCisgICAgICAgIGJ5IHJlcXVlc3QvcmVzcG9uc2UgaGVhZGVycywgYW5kIHRoZW4gZW50aXR5IGhlYWRlcnMuICBUaGUKKyAgICAgICAgbGlzdC5zb3J0KCkgbWV0aG9kcyB1c2UgdGhlIGxlc3MtdGhhbiBvcGVyYXRvciBmb3IgdGhpcyBwdXJwb3NlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgSFRUUEhlYWRlcik6CisgICAgICAgICAgICBpZiBzZWxmLnNvcnRfb3JkZXIgIT0gb3RoZXIuc29ydF9vcmRlcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zb3J0X29yZGVyIDwgb3RoZXIuc29ydF9vcmRlcgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubmFtZSA8IG90aGVyLm5hbWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJlZiA9IHNlbGYucmVmZXJlbmNlIGFuZCAoJyAoJXMpJyAlIHNlbGYucmVmZXJlbmNlKSBvciAnJworICAgICAgICByZXR1cm4gJzwlcyAlcyVzPicgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYubmFtZSwgcmVmKQorCisgICAgZGVmIHZhbHVlcyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgZmluZC9jb25zdHJ1Y3QgZmllbGQtdmFsdWUocykgZm9yIHRoZSBnaXZlbiBoZWFkZXIKKworICAgICAgICBSZXNvbHV0aW9uIGlzIGRvbmUgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOgorCisgICAgICAgIC0gSWYgb25seSBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sIHRoZW4gdGhpcyBpcyBlcXVpdmFsZW50CisgICAgICAgICAgdG8gYGBjb21wb3NlKCoqa3dhcmdzKWBgLgorCisgICAgICAgIC0gSWYgdGhlIGZpcnN0IChhbmQgb25seSkgYXJndW1lbnQgaXMgYSBkaWN0LCBpdCBpcyBhc3N1bWVkCisgICAgICAgICAgdG8gYmUgYSBXU0dJIGBgZW52aXJvbmBgIGFuZCB0aGUgcmVzdWx0IG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgYGBIVFRQX2BgIGVudHJ5IGlzIHJldHVybmVkLgorCisgICAgICAgIC0gSWYgdGhlIGZpcnN0IChhbmQgb25seSkgYXJndW1lbnQgaXMgYSBsaXN0LCBpdCBpcyBhc3N1bWVkCisgICAgICAgICAgdG8gYmUgYSBXU0dJIGBgcmVzcG9uc2VfaGVhZGVyc2BgIGFuZCB0aGUgZmllbGQtdmFsdWUocykKKyAgICAgICAgICBmb3IgdGhpcyBoZWFkZXIgYXJlIGNvbGxlY3RlZCBhbmQgcmV0dXJuZWQuCisKKyAgICAgICAgLSBJbiBhbGwgb3RoZXIgY2FzZXMsIHRoZSBhcmd1bWVudHMgYXJlIGNvbGxlY3RlZCwgY2hlY2tlZCB0aGF0CisgICAgICAgICAgdGhleSBhcmUgc3RyaW5nIHZhbHVlcywgcG9zc2libHkgdmVyaWZpZWQgYnkgdGhlIGhlYWRlcidzCisgICAgICAgICAgbG9naWMsIGFuZCByZXR1cm5lZC4KKworICAgICAgICBBdCB0aGlzIHRpbWUgaXQgaXMgYW4gZXJyb3IgdG8gcHJvdmlkZSBrZXl3b3JkIGFyZ3VtZW50cyBpZiBhcmdzCisgICAgICAgIGlzIHByZXNlbnQgKHRoaXMgbWlnaHQgY2hhbmdlKS4gIEl0IGlzIGFuIGVycm9yIHRvIHByb3ZpZGUgYm90aAorICAgICAgICBhIFdTR0kgb2JqZWN0IGFuZCBhbHNvIHN0cmluZyBhcmd1bWVudHMuICBJZiBubyBhcmd1bWVudHMgYXJlCisgICAgICAgIHByb3ZpZGVkLCB0aGVuIGBgY29tcG9zZSgpYGAgaXMgY2FsbGVkIHRvIHByb3ZpZGUgYSBkZWZhdWx0CisgICAgICAgIHZhbHVlIGZvciB0aGUgaGVhZGVyOyBpZiB0aGVyZSBpcyBub3QgZGVmYXVsdCBpdCBpcyBhbiBlcnJvci4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29tcG9zZSgqKmt3YXJncykKKyAgICAgICAgaWYgbGlzdCA9PSB0eXBlKGFyZ3NbMF0pOgorICAgICAgICAgICAgYXNzZXJ0IDEgPT0gbGVuKGFyZ3MpCisgICAgICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICAgICAgbmFtZSA9IHNlbGYubmFtZS5sb3dlcigpCisgICAgICAgICAgICBmb3IgdmFsdWUgaW4gW3ZhbHVlIGZvciBoZWFkZXIsIHZhbHVlIGluIGFyZ3NbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBoZWFkZXIubG93ZXIoKSA9PSBuYW1lXToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICBpZiBkaWN0ID09IHR5cGUoYXJnc1swXSk6CisgICAgICAgICAgICBhc3NlcnQgMSA9PSBsZW4oYXJncykgYW5kICd3c2dpLnZlcnNpb24nIGluIGFyZ3NbMF0KKyAgICAgICAgICAgIHZhbHVlID0gYXJnc1swXS5nZXQoc2VsZi5fZW52aXJvbl9uYW1lKQorICAgICAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgICAgIHJldHVybiAoKQorICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSwpCisgICAgICAgIGZvciBpdGVtIGluIGFyZ3M6CisgICAgICAgICAgICBhc3NlcnQgbm90IHR5cGUoaXRlbSkgaW4gKGRpY3QsIGxpc3QpCisgICAgICAgIHJldHVybiBhcmdzCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIGNvbnZlcnRzIGBgdmFsdWVzKClgYCBpbnRvIGEgc3RyaW5nIHZhbHVlCisKKyAgICAgICAgVGhpcyBtZXRob2QgY29udmVydHMgdGhlIHJlc3VsdHMgb2YgYGB2YWx1ZXMoKWBgIGludG8gYSBzdHJpbmcKKyAgICAgICAgdmFsdWUgZm9yIGNvbW1vbiB1c2FnZS4gIEJ5IGRlZmF1bHQsIGl0IGlzIGFzc2VydGVkIHRoYXQgb25seQorICAgICAgICBvbmUgdmFsdWUgZXhpc3RzOyBpZiB5b3UgbmVlZCB0byBhY2Nlc3MgYWxsIHZhbHVlcyB0aGVuIGVpdGhlcgorICAgICAgICBjYWxsIGBgdmFsdWVzKClgYCBkaXJlY3RseSwgb3IgaW5oZXJpdCBgYF9NdWx0aVZhbHVlSGVhZGVyYGAKKyAgICAgICAgd2hpY2ggb3ZlcnJpZGVzIHRoaXMgbWV0aG9kIHRvIHJldHVybiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mCisgICAgICAgIHZhbHVlcyBhcyBkZXNjcmliZWQgYnkgc2VjdGlvbiA0LjIgb2YgUkZDIDI2MTYuCisgICAgICAgICIiIgorICAgICAgICB2YWx1ZXMgPSBzZWxmLnZhbHVlcygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlcywgKHR1cGxlLCBsaXN0KSkKKyAgICAgICAgaWYgbm90IHZhbHVlczoKKyAgICAgICAgICAgIHJldHVybiAnJworICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMSwgIm1vcmUgdGhhbiBvbmUgdmFsdWU6ICVzIiAlIHJlcHIodmFsdWVzKQorICAgICAgICByZXR1cm4gc3RyKHZhbHVlc1swXSkuc3RyaXAoKQorCisgICAgZGVmIGRlbGV0ZShzZWxmLCBjb2xsZWN0aW9uKToKKyAgICAgICAgIiIiCisgICAgICAgIHJlbW92ZXMgYWxsIG9jY3VyYW5jZXMgb2YgdGhlIGhlYWRlciBmcm9tIHRoZSBjb2xsZWN0aW9uIHByb3ZpZGVkCisgICAgICAgICIiIgorICAgICAgICBpZiB0eXBlKGNvbGxlY3Rpb24pID09IGRpY3Q6CisgICAgICAgICAgICBpZiBzZWxmLl9lbnZpcm9uX25hbWUgaW4gY29sbGVjdGlvbjoKKyAgICAgICAgICAgICAgICBkZWwgY29sbGVjdGlvbltzZWxmLl9lbnZpcm9uX25hbWVdCisgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICBhc3NlcnQgbGlzdCA9PSB0eXBlKGNvbGxlY3Rpb24pCisgICAgICAgIGkgPSAwCisgICAgICAgIHdoaWxlIGkgPCBsZW4oY29sbGVjdGlvbik6CisgICAgICAgICAgICBpZiBjb2xsZWN0aW9uW2ldWzBdLmxvd2VyKCkgPT0gc2VsZi5faGVhZGVyc19uYW1lOgorICAgICAgICAgICAgICAgIGRlbCBjb2xsZWN0aW9uW2ldCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGkgKz0gMQorCisgICAgZGVmIHVwZGF0ZShzZWxmLCBjb2xsZWN0aW9uLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgdXBkYXRlcyB0aGUgY29sbGVjdGlvbiB3aXRoIHRoZSBwcm92aWRlZCBoZWFkZXIgdmFsdWUKKworICAgICAgICBUaGlzIG1ldGhvZCByZXBsYWNlcyAoaW4tcGxhY2Ugd2hlbiBwb3NzaWJsZSkgYWxsIG9jY3VycmVuY2VzIG9mCisgICAgICAgIHRoZSBnaXZlbiBoZWFkZXIgd2l0aCB0aGUgcHJvdmlkZWQgdmFsdWUuICBJZiBubyB2YWx1ZSBpcworICAgICAgICBwcm92aWRlZCwgdGhpcyBpcyB0aGUgc2FtZSBhcyBgYHJlbW92ZWBgIChub3RlIHRoYXQgdGhpcyBjYXNlCisgICAgICAgIGNhbiBvbmx5IG9jY3VyIGlmIHRoZSB0YXJnZXQgaXMgYSBjb2xsZWN0aW9uIHcvbyBhIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgaGVhZGVyIHZhbHVlKS4gVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgbmV3IGhlYWRlciB2YWx1ZSAod2hpY2gKKyAgICAgICAgY291bGQgYmUgYSBsaXN0IGZvciBgYF9NdWx0aUVudHJ5SGVhZGVyYGAgaW5zdGFuY2VzKS4KKyAgICAgICAgIiIiCisgICAgICAgIHZhbHVlID0gc2VsZi5fX2NhbGxfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIHNlbGYuZGVsZXRlKGNvbGxlY3Rpb24pCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgdHlwZShjb2xsZWN0aW9uKSA9PSBkaWN0OgorICAgICAgICAgICAgY29sbGVjdGlvbltzZWxmLl9lbnZpcm9uX25hbWVdID0gdmFsdWUKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBhc3NlcnQgbGlzdCA9PSB0eXBlKGNvbGxlY3Rpb24pCisgICAgICAgIGkgPSAwCisgICAgICAgIGZvdW5kID0gRmFsc2UKKyAgICAgICAgd2hpbGUgaSA8IGxlbihjb2xsZWN0aW9uKToKKyAgICAgICAgICAgIGlmIGNvbGxlY3Rpb25baV1bMF0ubG93ZXIoKSA9PSBzZWxmLl9oZWFkZXJzX25hbWU6CisgICAgICAgICAgICAgICAgaWYgZm91bmQ6CisgICAgICAgICAgICAgICAgICAgIGRlbCBjb2xsZWN0aW9uW2ldCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgY29sbGVjdGlvbltpXSA9IChzZWxmLm5hbWUsIHZhbHVlKQorICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQorICAgICAgICAgICAgaSArPSAxCisgICAgICAgIGlmIG5vdCBmb3VuZDoKKyAgICAgICAgICAgIGNvbGxlY3Rpb24uYXBwZW5kKChzZWxmLm5hbWUsIHZhbHVlKSkKKworICAgIGRlZiB0dXBsZXMoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgdmFsdWUgPSBzZWxmLl9fY2FsbF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgcmV0dXJuICgpCisgICAgICAgIHJldHVybiBbKHNlbGYubmFtZSwgdmFsdWUpXQorCitjbGFzcyBfU2luZ2xlVmFsdWVIZWFkZXIoSFRUUEhlYWRlcik6CisgICAgIiIiCisgICAgYSBgYEhUVFBIZWFkZXJgYCB3aXRoIGV4YWN0bHkgYSBzaW5nbGUgdmFsdWUKKworICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgYGBIVFRQSGVhZGVyYGAgd2hlcmUgcmV0dXJuaW5nIGEKKyAgICB0aGUgc3RyaW5nLXZhbHVlIG9mIGhlYWRlcnMgdmlhIGBgX19jYWxsX19gYCBhc3N1bWVzIHRoYXQgb25seQorICAgIGEgc2luZ2xlIHZhbHVlIGV4aXN0cy4KKyAgICAiIiIKKyAgICBwYXNzCisKK2NsYXNzIF9NdWx0aVZhbHVlSGVhZGVyKEhUVFBIZWFkZXIpOgorICAgICIiIgorICAgIGEgYGBIVFRQSGVhZGVyYGAgd2l0aCBvbmUgb3IgbW9yZSB2YWx1ZXMKKworICAgIFRoZSBmaWVsZC12YWx1ZSBmb3IgdGhlc2UgaGVhZGVyIGluc3RhbmNlcyBpcyBpcyBhbGxvd2VkIHRvIGJlIG1vcmUKKyAgICB0aGFuIG9uZSB2YWx1ZTsgd2hlcmVieSB0aGUgYGBfX2NhbGxfX2BgIG1ldGhvZCByZXR1cm5zIGEgY29tbWEKKyAgICBzZXBhcmF0ZWQgbGlzdCBhcyBkZXNjcmliZWQgYnkgc2VjdGlvbiA0LjIgb2YgUkZDIDI2MTYuCisgICAgIiIiCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcmVzdWx0cyA9IHNlbGYudmFsdWVzKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IHJlc3VsdHM6CisgICAgICAgICAgICByZXR1cm4gJycKKyAgICAgICAgcmV0dXJuICIsICIuam9pbihbc3RyKHYpLnN0cmlwKCkgZm9yIHYgaW4gcmVzdWx0c10pCisKKyAgICBkZWYgcGFyc2Uoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgdmFsdWUgPSBzZWxmLl9fY2FsbF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgdmFsdWVzID0gdmFsdWUuc3BsaXQoJywnKQorICAgICAgICByZXR1cm4gWworICAgICAgICAgICAgdi5zdHJpcCgpIGZvciB2IGluIHZhbHVlcworICAgICAgICAgICAgaWYgdi5zdHJpcCgpXQorCitjbGFzcyBfTXVsdGlFbnRyeUhlYWRlcihIVFRQSGVhZGVyKToKKyAgICAiIiIKKyAgICBhIG11bHRpLXZhbHVlIGBgSFRUUEhlYWRlcmBgIHdoZXJlIGl0ZW1zIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIGEgY29tbWEKKworICAgIFRoaXMgaGVhZGVyIGlzIG11bHRpLXZhbHVlZCwgYnV0IHRoZSB2YWx1ZXMgc2hvdWxkIG5vdCBiZSBjb21iaW5lZAorICAgIHdpdGggYSBjb21tYSBzaW5jZSB0aGUgaGVhZGVyIGlzIG5vdCBpbiBjb21wbGlhbmNlIHdpdGggUkZDIDI2MTYKKyAgICAoU2V0LUNvb2tpZSBkdWUgdG8gRXhwaXJlcyBwYXJhbWV0ZXIpIG9yIHdoaWNoIGNvbW1vbiB1c2VyLWFnZW50cyBkbworICAgIG5vdCBiZWhhdmUgd2VsbCB3aGVuIHRoZSBoZWFkZXIgdmFsdWVzIGFyZSBjb21iaW5lZC4KKyAgICAiIiIKKworICAgIGRlZiB1cGRhdGUoc2VsZiwgY29sbGVjdGlvbiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgYXNzZXJ0IGxpc3QgPT0gdHlwZShjb2xsZWN0aW9uKSwgImBgZW52aXJvbmBgIG1heSBub3QgYmUgdXBkYXRlZCIKKyAgICAgICAgc2VsZi5kZWxldGUoY29sbGVjdGlvbikKKyAgICAgICAgY29sbGVjdGlvbi5leHRlbmQoc2VsZi50dXBsZXMoKmFyZ3MsICoqa3dhcmdzKSkKKworICAgIGRlZiB0dXBsZXMoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgdmFsdWVzID0gc2VsZi52YWx1ZXMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBpZiBub3QgdmFsdWVzOgorICAgICAgICAgICAgcmV0dXJuICgpCisgICAgICAgIHJldHVybiBbKHNlbGYubmFtZSwgdmFsdWUuc3RyaXAoKSkgZm9yIHZhbHVlIGluIHZhbHVlc10KKworZGVmIGdldF9oZWFkZXIobmFtZSwgcmFpc2VFcnJvcj1UcnVlKToKKyAgICAiIiIKKyAgICBmaW5kIHRoZSBnaXZlbiBgYEhUVFBIZWFkZXJgYCBpbnN0YW5jZQorCisgICAgVGhpcyBmdW5jdGlvbiBmaW5kcyB0aGUgY29ycmVzcG9uZGluZyBgYEhUVFBIZWFkZXJgYCBmb3IgdGhlCisgICAgYGBuYW1lYGAgcHJvdmlkZWQuICBTbyB0aGF0IHB5dGhvbi1zdHlsZSBuYW1lcyBjYW4gYmUgdXNlZCwKKyAgICB1bmRlcnNjb3JlcyBhcmUgY29udmVydGVkIHRvIGRhc2hlcyBiZWZvcmUgdGhlIGxvb2t1cC4KKyAgICAiIiIKKyAgICByZXR2YWwgPSBfaGVhZGVycy5nZXQoc3RyKG5hbWUpLnN0cmlwKCkubG93ZXIoKS5yZXBsYWNlKCJfIiwiLSIpKQorICAgIGlmIG5vdCByZXR2YWwgYW5kIHJhaXNlRXJyb3I6CisgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCInJXMnIGlzIGFuIHVua25vd24gaGVhZGVyIiAlIG5hbWUpCisgICAgcmV0dXJuIHJldHZhbAorCitkZWYgbGlzdF9oZWFkZXJzKGdlbmVyYWw9Tm9uZSwgcmVxdWVzdD1Ob25lLCByZXNwb25zZT1Ob25lLCBlbnRpdHk9Tm9uZSk6CisgICAgIiBsaXN0IGFsbCBoZWFkZXJzIGZvciBhIGdpdmVuIGNhdGVnb3J5ICIKKyAgICBpZiBub3QgKGdlbmVyYWwgb3IgcmVxdWVzdCBvciByZXNwb25zZSBvciBlbnRpdHkpOgorICAgICAgICBnZW5lcmFsID0gcmVxdWVzdCA9IHJlc3BvbnNlID0gZW50aXR5ID0gVHJ1ZQorICAgIHNlYXJjaCA9IFtdCisgICAgZm9yIChib29sLCBzdHJ2YWwpIGluICgoZ2VuZXJhbCwgJ2dlbmVyYWwnKSwgKHJlcXVlc3QsICdyZXF1ZXN0JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UsICdyZXNwb25zZScpLCAoZW50aXR5LCAnZW50aXR5JykpOgorICAgICAgICBpZiBib29sOgorICAgICAgICAgICAgc2VhcmNoLmFwcGVuZChzdHJ2YWwpCisgICAgcmV0dXJuIFtoZWFkIGZvciBoZWFkIGluIF9oZWFkZXJzLnZhbHVlcygpIGlmIGhlYWQuY2F0ZWdvcnkgaW4gc2VhcmNoXQorCitkZWYgbm9ybWFsaXplX2hlYWRlcnMocmVzcG9uc2VfaGVhZGVycywgc3RyaWN0PVRydWUpOgorICAgICIiIgorICAgIHNvcnQgaGVhZGVycyBhcyBzdWdnZXN0ZWQgYnkgIFJGQyAyNjE2CisKKyAgICBUaGlzIGFsdGVycyB0aGUgdW5kZXJseWluZyByZXNwb25zZV9oZWFkZXJzIHRvIHVzZSB0aGUgY29tbW9uCisgICAgbmFtZSBmb3IgZWFjaCBoZWFkZXI7IGFzIHdlbGwgYXMgc29ydGluZyB0aGVtIHdpdGggZ2VuZXJhbAorICAgIGhlYWRlcnMgZmlyc3QsIGZvbGxvd2VkIGJ5IHJlcXVlc3QvcmVzcG9uc2UgaGVhZGVycywgdGhlbgorICAgIGVudGl0eSBoZWFkZXJzLCBhbmQgdW5rbm93biBoZWFkZXJzIGxhc3QuCisgICAgIiIiCisgICAgY2F0ZWdvcnkgPSB7fQorICAgIGZvciBpZHggaW4gcmFuZ2UobGVuKHJlc3BvbnNlX2hlYWRlcnMpKToKKyAgICAgICAgKGtleSwgdmFsKSA9IHJlc3BvbnNlX2hlYWRlcnNbaWR4XQorICAgICAgICBoZWFkID0gZ2V0X2hlYWRlcihrZXksIHN0cmljdCkKKyAgICAgICAgaWYgbm90IGhlYWQ6CisgICAgICAgICAgICBuZXdoZWFkID0gJy0nLmpvaW4oW3guY2FwaXRhbGl6ZSgpIGZvciB4IGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleS5yZXBsYWNlKCJfIiwiLSIpLnNwbGl0KCItIildKQorICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyc1tpZHhdID0gKG5ld2hlYWQsIHZhbCkKKyAgICAgICAgICAgIGNhdGVnb3J5W25ld2hlYWRdID0gNAorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyc1tpZHhdID0gKHN0cihoZWFkKSwgdmFsKQorICAgICAgICBjYXRlZ29yeVtzdHIoaGVhZCldID0gaGVhZC5zb3J0X29yZGVyCisgICAgZGVmIGtleV9mdW5jKGl0ZW0pOgorICAgICAgICB2YWx1ZSA9IGl0ZW1bMF0KKyAgICAgICAgcmV0dXJuIChjYXRlZ29yeVt2YWx1ZV0sIHZhbHVlKQorICAgIHJlc3BvbnNlX2hlYWRlcnMuc29ydChrZXk9a2V5X2Z1bmMpCisKK2NsYXNzIF9EYXRlSGVhZGVyKF9TaW5nbGVWYWx1ZUhlYWRlcik6CisgICAgIiIiCisgICAgaGFuZGxlIGRhdGUtYmFzZWQgaGVhZGVycworCisgICAgVGhpcyBleHRlbmRzIHRoZSBgYF9TaW5nbGVWYWx1ZUhlYWRlcmBgIG9iamVjdCB3aXRoIHNwZWNpZmljCisgICAgdHJlYXRtZW50IG9mIHRpbWUgdmFsdWVzOgorCisgICAgLSBJdCBvdmVycmlkZXMgYGBjb21wb3NlYGAgdG8gcHJvdmlkZSBhIHNvbGUga2V5d29yZCBhcmd1bWVudAorICAgICAgYGB0aW1lYGAgd2hpY2ggaXMgYW4gb2Zmc2V0IGluIHNlY29uZHMgZnJvbSB0aGUgY3VycmVudCB0aW1lLgorCisgICAgLSBBIGBgdGltZWBgIG1ldGhvZCBpcyBwcm92aWRlZCB3aGljaCBwYXJzZXMgdGhlIGdpdmVuIHZhbHVlCisgICAgICBhbmQgcmV0dXJucyB0aGUgY3VycmVudCB0aW1lIHZhbHVlLgorICAgICIiIgorCisgICAgZGVmIGNvbXBvc2Uoc2VsZiwgdGltZT1Ob25lLCBkZWx0YT1Ob25lKToKKyAgICAgICAgdGltZSA9IHRpbWUgb3Igbm93KCkKKyAgICAgICAgaWYgZGVsdGE6CisgICAgICAgICAgICBhc3NlcnQgdHlwZShkZWx0YSkgPT0gaW50CisgICAgICAgICAgICB0aW1lICs9IGRlbHRhCisgICAgICAgIHJldHVybiAoZm9ybWF0ZGF0ZSh0aW1lKSwpCisKKyAgICBkZWYgcGFyc2Uoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIHJldHVybiB0aGUgdGltZSB2YWx1ZSAoaW4gc2Vjb25kcyBzaW5jZSAxOTcwKSAiIiIKKyAgICAgICAgdmFsdWUgPSBzZWxmLl9fY2FsbF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1rdGltZV90eihwYXJzZWRhdGVfdHoodmFsdWUpKQorICAgICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIE92ZXJmbG93RXJyb3IpOgorICAgICAgICAgICAgICAgIHJhaXNlIEhUVFBCYWRSZXF1ZXN0KCgKKyAgICAgICAgICAgICAgICAgICAgIlJlY2VpdmVkIGFuIGlsbC1mb3JtZWQgdGltZXN0YW1wIGZvciAlczogJXNcclxuIikgJQorICAgICAgICAgICAgICAgICAgICAoc2VsZi5uYW1lLCB2YWx1ZSkpCisKKyMKKyMgRm9sbG93aW5nIGFyZSBzcGVjaWZpYyBIVFRQIGhlYWRlcnMuIFNpbmNlIHRoZXNlIGNsYXNzZXMgYXJlIG1vc3RseQorIyBzaW5nbGV0b25zLCB0aGVyZSBpcyBubyBwb2ludCBpbiBrZWVwaW5nIHRoZSBjbGFzcyBhcm91bmQgb25jZSBpdCBoYXMKKyMgYmVlbiBpbnN0YW50aWF0ZWQsIHNvIHdlIHVzZSB0aGUgc2FtZSBuYW1lLgorIworCitjbGFzcyBfQ2FjaGVDb250cm9sKF9NdWx0aVZhbHVlSGVhZGVyKToKKyAgICAiIiIKKyAgICBDYWNoZS1Db250cm9sLCBSRkMgMjYxNiAxNC45ICAodXNlIGBgQ0FDSEVfQ09OVFJPTGBgKQorCisgICAgVGhpcyBoZWFkZXIgY2FuIGJlIGNvbnN0cnVjdGVkICh1c2luZyBrZXl3b3JkIGFyZ3VtZW50cyksIGJ5CisgICAgZmlyc3Qgc3BlY2lmeWluZyBvbmUgb2YgdGhlIGZvbGxvd2luZyBtZWNoYW5pc21zOgorCisgICAgICBgYHB1YmxpY2BgCisKKyAgICAgICAgICBpZiBUcnVlLCB0aGlzIGFyZ3VtZW50IHNwZWNpZmllcyB0aGF0IHRoZQorICAgICAgICAgIHJlc3BvbnNlLCBhcyBhIHdob2xlLCBtYXkgYmUgY2FzaGVkLgorCisgICAgICBgYHByaXZhdGVgYAorCisgICAgICAgICAgaWYgVHJ1ZSwgdGhpcyBhcmd1bWVudCBzcGVjaWZpZXMgdGhhdCB0aGUgcmVzcG9uc2UsIGFzIGEKKyAgICAgICAgICB3aG9sZSwgbWF5IGJlIGNhc2hlZDsgdGhpcyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBzdXBwb3J0CisgICAgICAgICAgdGhlIGVudW1lcmF0aW9uIG9mIHByaXZhdGUgZmllbGRzCisKKyAgICAgIGBgbm9fY2FjaGVgYAorCisgICAgICAgICAgaWYgVHJ1ZSwgdGhpcyBhcmd1bWVudCBzcGVjaWZpZXMgdGhhdCB0aGUgcmVzcG9uc2UsIGFzIGEKKyAgICAgICAgICB3aG9sZSwgbWF5IG5vdCBiZSBjYXNoZWQ7IHRoaXMgaW1wbGVtZW50YXRpb24gZG9lcyBub3QKKyAgICAgICAgICBzdXBwb3J0IHRoZSBlbnVtZXJhdGlvbiBvZiBwcml2YXRlIGZpZWxkcworCisgICAgSW4gZ2VuZXJhbCwgb25seSBvbmUgb2YgdGhlIGFib3ZlIHRocmVlIG1heSBiZSBUcnVlLCB0aGUgb3RoZXIgMgorICAgIG11c3QgdGhlbiBiZSBGYWxzZSBvciBOb25lLiAgSWYgYWxsIHRocmVlIGFyZSBOb25lLCB0aGVuIHRoZSBjYWNoZQorICAgIGlzIGFzc3VtZWQgdG8gYmUgYGBwdWJsaWNgYC4gIEZvbGxvd2luZyBvbmUgb2YgdGhlc2UgbWVjaGFuaXNtCisgICAgc3BlY2lmaWVycyBhcmUgdmFyaW91cyBtb2RpZmllcnM6CisKKyAgICAgIGBgbm9fc3RvcmVgYAorCisgICAgICAgICAgaW5kaWNhdGVzIGlmIGNvbnRlbnQgbWF5IGJlIHN0b3JlZCBvbiBkaXNrOworICAgICAgICAgIG90aGVyd2lzZSBjYWNoZSBpcyBsaW1pdGVkIHRvIG1lbW9yeSAobm90ZToKKyAgICAgICAgICB1c2VycyBjYW4gc3RpbGwgc2F2ZSB0aGUgZGF0YSwgdGhpcyBhcHBsaWVzCisgICAgICAgICAgdG8gaW50ZXJtZWRpYXRlIGNhY2hlcykKKworICAgICAgYGBtYXhfYWdlYGAKKworICAgICAgICAgIHRoZSBtYXhpbXVtIGR1cmF0aW9uIChpbiBzZWNvbmRzKSBmb3Igd2hpY2gKKyAgICAgICAgICB0aGUgY29udGVudCBzaG91bGQgYmUgY2FjaGVkOyBpZiBgYG5vLWNhY2hlYGAKKyAgICAgICAgICBpcyBzcGVjaWZpZWQsIHRoaXMgZGVmYXVsdHMgdG8gMCBzZWNvbmRzCisKKyAgICAgIGBgc19tYXhhZ2VgYAorCisgICAgICAgICAgdGhlIG1heGltdW0gZHVyYXRpb24gKGluIHNlY29uZHMpIGZvciB3aGljaCB0aGUKKyAgICAgICAgICBjb250ZW50IHNob3VsZCBiZSBhbGxvd2VkIGluIGEgc2hhcmVkIGNhY2hlLgorCisgICAgICBgYG5vX3RyYW5zZm9ybWBgCisKKyAgICAgICAgICBzcGVjaWZpZXMgdGhhdCBhbiBpbnRlcm1lZGlhdGUgY2FjaGUgc2hvdWxkCisgICAgICAgICAgbm90IGNvbnZlcnQgdGhlIGNvbnRlbnQgZnJvbSBvbmUgdHlwZSB0bworICAgICAgICAgIGFub3RoZXIgKGUuZy4gdHJhbnNmb3JtIGEgQk1QIHRvIGEgUE5HKS4KKworICAgICAgYGBleHRlbnNpb25zYGAKKworICAgICAgICAgIGdpdmVzIGFkZGl0aW9uYWwgY2FjaGUtY29udHJvbCBleHRlbnNpb25zLAorICAgICAgICAgIHN1Y2ggYXMgaXRlbXMgbGlrZSwgY29tbXVuaXR5PSJVQ0kiICgxNC45LjYpCisKKyAgICBUaGUgdXNhZ2Ugb2YgYGBhcHBseSgpYGAgb24gdGhpcyBoZWFkZXIgaGFzIHNpZGUtZWZmZWN0cy4gQXMKKyAgICByZWNvbW1lbmRlZCBieSBSRkMgMjYxNiwgaWYgYGBtYXhfYWdlYGAgaXMgcHJvdmlkZWQsIHRoZW4gdGhlbiB0aGUKKyAgICBgYEV4cGlyZXNgYCBoZWFkZXIgaXMgYWxzbyBjYWxjdWxhdGVkIGZvciBIVFRQLzEuMCBjbGllbnRzIGFuZAorICAgIHByb3hpZXMgKHRoaXMgaXMgZG9uZSBhdCB0aGUgdGltZSBgYGFwcGx5KClgYCBpcyBjYWxsZWQpLiAgRm9yCisgICAgYGBuby1jYWNoZWBgIGFuZCBmb3IgYGBwcml2YXRlYGAgY2FzZXMsIHdlIGVpdGhlciBkbyBub3Qgd2FudCB0aGUKKyAgICByZXNwb25zZSBjYWNoZWQgb3IgZG8gbm90IHdhbnQgYW55IHJlc3BvbnNlIGFjY2lkZW50bHkgcmV0dXJuZWQgdG8KKyAgICBvdGhlciB1c2Vyczsgc28gdG8gcHJldmVudCB0aGlzIGNhc2UsIHdlIHNldCB0aGUgYGBFeHBpcmVzYGAgaGVhZGVyCisgICAgdG8gdGhlIHRpbWUgb2YgdGhlIHJlcXVlc3QsIHNpZ25pZnlpbmcgdG8gSFRUUC8xLjAgdHJhbnNwb3J0cyB0aGF0CisgICAgdGhlIGNvbnRlbnQgaXNuJ3QgdG8gYmUgY2FjaGVkLiAgSWYgeW91IGFyZSB1c2luZyBTU0wsIHlvdXIKKyAgICBjb21tdW5pY2F0aW9uIGlzIGFscmVhZHkgInByaXZhdGUiLCBzbyB0byB3b3JrIHdpdGggSFRUUC8xLjAKKyAgICBicm93c2VycyBvdmVyIFNTTCwgY29uc2lkZXIgc3BlY2lmeWluZyB5b3VyIGNhY2hlIGFzIGBgcHVibGljYGAgYXMKKyAgICB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBwdWJsaWMgYW5kIHByaXZhdGUgaXMgbW9vdC4KKyAgICAiIiIKKworICAgICMgY29tbW9uIHZhbHVlcyBmb3IgbWF4LWFnZTsgImdvb2QgZW5vdWdoIiBhcHByb3hpbWF0ZXMKKyAgICBPTkVfSE9VUiAgPSA2MCo2MAorICAgIE9ORV9EQVkgICA9IE9ORV9IT1VSICogMjQKKyAgICBPTkVfV0VFSyAgPSBPTkVfREFZICogNworICAgIE9ORV9NT05USCA9IE9ORV9EQVkgKiAzMAorICAgIE9ORV9ZRUFSICA9IE9ORV9XRUVLICogNTIKKworICAgIGRlZiBfY29tcG9zZShzZWxmLCBwdWJsaWM9Tm9uZSwgcHJpdmF0ZT1Ob25lLCBub19jYWNoZT1Ob25lLAorICAgICAgICAgICAgICAgICBub19zdG9yZT1GYWxzZSwgbWF4X2FnZT1Ob25lLCBzX21heGFnZT1Ob25lLAorICAgICAgICAgICAgICAgICBub190cmFuc2Zvcm09RmFsc2UsICoqZXh0ZW5zaW9ucyk6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1heF9hZ2UsICh0eXBlKE5vbmUpLCBpbnQpKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzX21heGFnZSwgKHR5cGUoTm9uZSksIGludCkpCisgICAgICAgIGV4cGlyZXMgPSAwCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGlmIHByaXZhdGUgaXMgVHJ1ZToKKyAgICAgICAgICAgIGFzc2VydCBub3QgcHVibGljIGFuZCBub3Qgbm9fY2FjaGUgYW5kIG5vdCBzX21heGFnZQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgncHJpdmF0ZScpCisgICAgICAgIGVsaWYgbm9fY2FjaGUgaXMgVHJ1ZToKKyAgICAgICAgICAgIGFzc2VydCBub3QgcHVibGljIGFuZCBub3QgcHJpdmF0ZSBhbmQgbm90IG1heF9hZ2UKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ25vLWNhY2hlJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBwdWJsaWMgaXMgTm9uZSBvciBwdWJsaWMgaXMgVHJ1ZQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBwcml2YXRlIGFuZCBub3Qgbm9fY2FjaGUKKyAgICAgICAgICAgIGV4cGlyZXMgPSBtYXhfYWdlCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdwdWJsaWMnKQorICAgICAgICBpZiBub19zdG9yZToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ25vLXN0b3JlJykKKyAgICAgICAgaWYgbm9fdHJhbnNmb3JtOgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnbm8tdHJhbnNmb3JtJykKKyAgICAgICAgaWYgbWF4X2FnZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ21heC1hZ2U9JWQnICUgbWF4X2FnZSkKKyAgICAgICAgaWYgc19tYXhhZ2UgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdzLW1heGFnZT0lZCcgJSBzX21heGFnZSkKKyAgICAgICAgZm9yIChrLCB2KSBpbiBzaXguaXRlcml0ZW1zKGV4dGVuc2lvbnMpOgorICAgICAgICAgICAgaWYgayBub3QgaW4gc2VsZi5leHRlbnNpb25zOgorICAgICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCJ1bmV4cGVjdGVkIGV4dGVuc2lvbiB1c2VkOiAnJXMnIiAlIGspCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCclcz0iJXMiJyAlIChrLnJlcGxhY2UoIl8iLCAiLSIpLCB2KSkKKyAgICAgICAgcmV0dXJuIChyZXN1bHQsIGV4cGlyZXMpCisKKyAgICBkZWYgY29tcG9zZShzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIChyZXN1bHQsIGV4cGlyZXMpID0gc2VsZi5fY29tcG9zZSgqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIGFwcGx5KHNlbGYsIGNvbGxlY3Rpb24sICoqa3dhcmdzKToKKyAgICAgICAgIiIiIHJldHVybnMgdGhlIG9mZnNldCBleHBpcmF0aW9uIGluIHNlY29uZHMgIiIiCisgICAgICAgIChyZXN1bHQsIGV4cGlyZXMpID0gc2VsZi5fY29tcG9zZSgqKmt3YXJncykKKyAgICAgICAgaWYgZXhwaXJlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIEVYUElSRVMudXBkYXRlKGNvbGxlY3Rpb24sIGRlbHRhPWV4cGlyZXMpCisgICAgICAgIHNlbGYudXBkYXRlKGNvbGxlY3Rpb24sICpyZXN1bHQpCisgICAgICAgIHJldHVybiBleHBpcmVzCisKK19DYWNoZUNvbnRyb2woJ0NhY2hlLUNvbnRyb2wnLCAnZ2VuZXJhbCcsICdSRkMgMjYxNiwgMTQuOScpCisKK2NsYXNzIF9Db250ZW50VHlwZShfU2luZ2xlVmFsdWVIZWFkZXIpOgorICAgICIiIgorICAgIENvbnRlbnQtVHlwZSwgUkZDIDI2MTYgc2VjdGlvbiAxNC4xNworCisgICAgVW5saWtlIG90aGVyIGhlYWRlcnMsIHVzZSB0aGUgQ0dJIHZhcmlhYmxlIGluc3RlYWQuCisgICAgIiIiCisgICAgdmVyc2lvbiA9ICcxLjAnCisgICAgX2Vudmlyb25fbmFtZSA9ICdDT05URU5UX1RZUEUnCisKKyAgICAjIGNvbW1vbiBtaW1ldHlwZSBjb25zdGFudHMKKyAgICBVTktOT1dOICAgID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScKKyAgICBURVhUX1BMQUlOID0gJ3RleHQvcGxhaW4nCisgICAgVEVYVF9IVE1MICA9ICd0ZXh0L2h0bWwnCisgICAgVEVYVF9YTUwgICA9ICd0ZXh0L3htbCcKKworICAgIGRlZiBjb21wb3NlKHNlbGYsIG1ham9yPU5vbmUsIG1pbm9yPU5vbmUsIGNoYXJzZXQ9Tm9uZSk6CisgICAgICAgIGlmIG5vdCBtYWpvcjoKKyAgICAgICAgICAgIGlmIG1pbm9yIGluICgncGxhaW4nLCAnaHRtbCcsICd4bWwnKToKKyAgICAgICAgICAgICAgICBtYWpvciA9ICd0ZXh0JworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IG1pbm9yIGFuZCBub3QgY2hhcnNldAorICAgICAgICAgICAgICAgIHJldHVybiAoc2VsZi5VTktOT1dOLCkKKyAgICAgICAgaWYgbm90IG1pbm9yOgorICAgICAgICAgICAgbWlub3IgPSAiKiIKKyAgICAgICAgcmVzdWx0ID0gIiVzLyVzIiAlIChtYWpvciwgbWlub3IpCisgICAgICAgIGlmIGNoYXJzZXQ6CisgICAgICAgICAgICByZXN1bHQgKz0gIjsgY2hhcnNldD0lcyIgJSBjaGFyc2V0CisgICAgICAgIHJldHVybiAocmVzdWx0LCkKKworX0NvbnRlbnRUeXBlKCdDb250ZW50LVR5cGUnLCAnZW50aXR5JywgJ1JGQyAyNjE2LCAxNC4xNycpCisKK2NsYXNzIF9Db250ZW50TGVuZ3RoKF9TaW5nbGVWYWx1ZUhlYWRlcik6CisgICAgIiIiCisgICAgQ29udGVudC1MZW5ndGgsIFJGQyAyNjE2IHNlY3Rpb24gMTQuMTMKKworICAgIFVubGlrZSBvdGhlciBoZWFkZXJzLCB1c2UgdGhlIENHSSB2YXJpYWJsZSBpbnN0ZWFkLgorICAgICIiIgorICAgIHZlcnNpb24gPSAiMS4wIgorICAgIF9lbnZpcm9uX25hbWUgPSAnQ09OVEVOVF9MRU5HVEgnCisKK19Db250ZW50TGVuZ3RoKCdDb250ZW50LUxlbmd0aCcsICdlbnRpdHknLCAnUkZDIDI2MTYsIDE0LjEzJykKKworY2xhc3MgX0NvbnRlbnREaXNwb3NpdGlvbihfU2luZ2xlVmFsdWVIZWFkZXIpOgorICAgICIiIgorICAgIENvbnRlbnQtRGlzcG9zaXRpb24sIFJGQyAyMTgzICh1c2UgYGBDT05URU5UX0RJU1BPU0lUSU9OYGApCisKKyAgICBUaGlzIGhlYWRlciBjYW4gYmUgY29uc3RydWN0ZWQgKHVzaW5nIGtleXdvcmQgYXJndW1lbnRzKSwKKyAgICBieSBmaXJzdCBzcGVjaWZ5aW5nIG9uZSBvZiB0aGUgZm9sbG93aW5nIG1lY2hhbmlzbXM6CisKKyAgICAgIGBgYXR0YWNobWVudGBgCisKKyAgICAgICAgICBpZiBUcnVlLCB0aGlzIHNwZWNpZmllcyB0aGF0IHRoZSBjb250ZW50IHNob3VsZCBub3QgYmUKKyAgICAgICAgICBzaG93biBpbiB0aGUgYnJvd3NlciBhbmQgc2hvdWxkIGJlIGhhbmRsZWQgZXh0ZXJuYWxseSwKKyAgICAgICAgICBldmVuIGlmIHRoZSBicm93c2VyIGNvdWxkIHJlbmRlciB0aGUgY29udGVudAorCisgICAgICBgYGlubGluZWBgCisKKyAgICAgICAgIGV4Y2x1c2l2ZSB3aXRoIGF0dGFjaG1lbnQ7IGluZGljYXRlcyB0aGF0IHRoZSBjb250ZW50CisgICAgICAgICBzaG91bGQgYmUgcmVuZGVyZWQgaW4gdGhlIGJyb3dzZXIgaWYgcG9zc2libGUsIGJ1dAorICAgICAgICAgb3RoZXJ3aXNlIGl0IHNob3VsZCBiZSBoYW5kbGVkIGV4dGVybmFsbHkKKworICAgIE9ubHkgb25lIG9mIHRoZSBhYm92ZSAyIG1heSBiZSBUcnVlLiAgSWYgYm90aCBhcmUgTm9uZSwgdGhlbgorICAgIHRoZSBkaXNwb3NpdGlvbiBpcyBhc3N1bWVkIHRvIGJlIGFuIGBgYXR0YWNobWVudGBgLiBUaGVzZSBhcmUKKyAgICBkaXN0aW5jdCBmaWVsZHMgc2luY2Ugc3VwcG9ydCBmb3IgZmllbGQgZW51bWVyYXRpb24gbWF5IGJlCisgICAgYWRkZWQgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgYGBmaWxlbmFtZWBgCisKKyAgICAgICAgICB0aGUgZmlsZW5hbWUgcGFyYW1ldGVyLCBpZiBhbnksIHRvIGJlIHJlcG9ydGVkOyBpZgorICAgICAgICAgIHRoaXMgaXMgTm9uZSwgdGhlbiB0aGUgY3VycmVudCBvYmplY3QncyBmaWxlbmFtZQorICAgICAgICAgIGF0dHJpYnV0ZSBpcyB1c2VkCisKKyAgICBUaGUgdXNhZ2Ugb2YgYGBhcHBseSgpYGAgb24gdGhpcyBoZWFkZXIgaGFzIHNpZGUtZWZmZWN0cy4gSWYKKyAgICBmaWxlbmFtZSBpcyBwcm92aWRlZCwgYW5kIENvbnRlbnQtVHlwZSBpcyBub3Qgc2V0IG9yIGlzCisgICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsIHRoZW4gdGhlIG1pbWV0eXBlcy5ndWVzcyBpcyB1c2VkIHRvCisgICAgdXBncmFkZSB0aGUgQ29udGVudC1UeXBlIHNldHRpbmcuCisgICAgIiIiCisKKyAgICBkZWYgX2NvbXBvc2Uoc2VsZiwgYXR0YWNobWVudD1Ob25lLCBpbmxpbmU9Tm9uZSwgZmlsZW5hbWU9Tm9uZSk6CisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGlmIGlubGluZSBpcyBUcnVlOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBhdHRhY2htZW50CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdpbmxpbmUnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBpbmxpbmUKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ2F0dGFjaG1lbnQnKQorICAgICAgICBpZiBmaWxlbmFtZToKKyAgICAgICAgICAgIGFzc2VydCAnIicgbm90IGluIGZpbGVuYW1lCisgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnNwbGl0KCIvIilbLTFdCisgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnNwbGl0KCJcXCIpWy0xXQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnZmlsZW5hbWU9IiVzIicgJSBmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuICgoIjsgIi5qb2luKHJlc3VsdCksKSwgZmlsZW5hbWUpCisKKyAgICBkZWYgY29tcG9zZShzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIChyZXN1bHQsIG1pbWV0eXBlKSA9IHNlbGYuX2NvbXBvc2UoKiprd2FyZ3MpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBhcHBseShzZWxmLCBjb2xsZWN0aW9uLCAqKmt3YXJncyk6CisgICAgICAgICIiIiByZXR1cm4gdGhlIG5ldyBDb250ZW50LVR5cGUgc2lkZS1lZmZlY3QgdmFsdWUgIiIiCisgICAgICAgIChyZXN1bHQsIGZpbGVuYW1lKSA9IHNlbGYuX2NvbXBvc2UoKiprd2FyZ3MpCisgICAgICAgIG1pbWV0eXBlID0gQ09OVEVOVF9UWVBFKGNvbGxlY3Rpb24pCisgICAgICAgIGlmIGZpbGVuYW1lIGFuZCAobm90IG1pbWV0eXBlIG9yIENPTlRFTlRfVFlQRS5VTktOT1dOID09IG1pbWV0eXBlKToKKyAgICAgICAgICAgIG1pbWV0eXBlLCBfID0gbWltZXR5cGVzLmd1ZXNzX3R5cGUoZmlsZW5hbWUpCisgICAgICAgICAgICBpZiBtaW1ldHlwZSBhbmQgQ09OVEVOVF9UWVBFLlVOS05PV04gIT0gbWltZXR5cGU6CisgICAgICAgICAgICAgICAgQ09OVEVOVF9UWVBFLnVwZGF0ZShjb2xsZWN0aW9uLCBtaW1ldHlwZSkKKyAgICAgICAgc2VsZi51cGRhdGUoY29sbGVjdGlvbiwgKnJlc3VsdCkKKyAgICAgICAgcmV0dXJuIG1pbWV0eXBlCisKK19Db250ZW50RGlzcG9zaXRpb24oJ0NvbnRlbnQtRGlzcG9zaXRpb24nLCAnZW50aXR5JywgJ1JGQyAyMTgzJykKKworY2xhc3MgX0lmTW9kaWZpZWRTaW5jZShfRGF0ZUhlYWRlcik6CisgICAgIiIiCisgICAgSWYtTW9kaWZpZWQtU2luY2UsIFJGQyAyNjE2IHNlY3Rpb24gMTQuMjUKKyAgICAiIiIKKyAgICB2ZXJzaW9uID0gJzEuMCcKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgU3BsaXQgdGhlIHZhbHVlIG9uICc7JyBpbmNhc2UgdGhlIGhlYWRlciBpbmNsdWRlcyBleHRyYSBhdHRyaWJ1dGVzLiBFLmcuCisgICAgICAgIElFIDYgaXMga25vd24gdG8gc2VuZDoKKyAgICAgICAgSWYtTW9kaWZpZWQtU2luY2U6IFN1biwgMjUgSnVuIDIwMDYgMjA6MzY6MzUgR01UOyBsZW5ndGg9MTUwNgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIF9EYXRlSGVhZGVyLl9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykuc3BsaXQoJzsnLCAxKVswXQorCisgICAgZGVmIHBhcnNlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHZhbHVlID0gX0RhdGVIZWFkZXIucGFyc2Uoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBpZiB2YWx1ZSBhbmQgdmFsdWUgPiBub3coKToKKyAgICAgICAgICAgIHJhaXNlIEhUVFBCYWRSZXF1ZXN0KCgKKyAgICAgICAgICAgICAgIlBsZWFzZSBjaGVjayB5b3VyIHN5c3RlbSBjbG9jay5cclxuIgorICAgICAgICAgICAgICAiQWNjb3JkaW5nIHRvIHRoaXMgc2VydmVyLCB0aGUgdGltZSBwcm92aWRlZCBpbiB0aGVcclxuIgorICAgICAgICAgICAgICAiJXMgaGVhZGVyIGlzIGluIHRoZSBmdXR1cmUuXHJcbiIpICUgc2VsZi5uYW1lKQorICAgICAgICByZXR1cm4gdmFsdWUKK19JZk1vZGlmaWVkU2luY2UoJ0lmLU1vZGlmaWVkLVNpbmNlJywgJ3JlcXVlc3QnLCAnUkZDIDI2MTYsIDE0LjI1JykKKworY2xhc3MgX1JhbmdlKF9NdWx0aVZhbHVlSGVhZGVyKToKKyAgICAiIiIKKyAgICBSYW5nZSwgUkZDIDI2MTYgMTQuMzUgKHVzZSBgYFJBTkdFYGApCisKKyAgICBBY2NvcmRpbmcgdG8gc2VjdGlvbiAxNC4xNiwgdGhlIHJlc3BvbnNlIHRvIHRoaXMgbWVzc2FnZSBzaG91bGQgYmUgYQorICAgIDIwNiBQYXJ0aWFsIENvbnRlbnQgYW5kIHRoYXQgaWYgbXVsdGlwbGUgbm9uLW92ZXJsYXBwaW5nIGJ5dGUgcmFuZ2VzCisgICAgYXJlIHJlcXVlc3RlZCAoaXQgaXMgYW4gZXJyb3IgdG8gcmVxdWVzdCBtdWx0aXBsZSBvdmVybGFwcGluZworICAgIHJhbmdlcykgdGhlIHJlc3VsdCBzaG91bGQgYmUgc2VudCBhcyBtdWx0aXBhcnQvYnl0ZXJhbmdlcyBtaW1ldHlwZS4KKworICAgIFRoZSBzZXJ2ZXIgc2hvdWxkIHJlc3BvbmQgd2l0aCAnNDE2IFJlcXVlc3RlZCBSYW5nZSBOb3QgU2F0aXNmaWFibGUnCisgICAgaWYgdGhlIHJlcXVlc3RlZCByYW5nZXMgYXJlIG91dC1vZi1ib3VuZHMuICBUaGUgc3BlY2lmaWNhdGlvbiBhbHNvCisgICAgaW5kaWNhdGVzIHRoYXQgYSBzeW50YXggZXJyb3IgaW4gdGhlIFJhbmdlIHJlcXVlc3Qgc2hvdWxkIHJlc3VsdCBpbgorICAgIHRoZSBoZWFkZXIgYmVpbmcgaWdub3JlZCByYXRoZXIgdGhhbiBhICc0MDAgQmFkIFJlcXVlc3QnLgorICAgICIiIgorCisgICAgZGVmIHBhcnNlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgdHVwbGUgKHVuaXRzLCBsaXN0KSwgd2hlcmUgbGlzdCBpcyBhIHNlcXVlbmNlIG9mCisgICAgICAgIChiZWdpbiwgZW5kKSB0dXBsZXM7IGFuZCBlbmQgaXMgTm9uZSBpZiBpdCB3YXMgbm90IHByb3ZpZGVkLgorICAgICAgICAiIiIKKyAgICAgICAgdmFsdWUgPSBzZWxmLl9fY2FsbF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmFuZ2VzID0gW10KKyAgICAgICAgbGFzdF9lbmQgICA9IC0xCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICh1bml0cywgcmFuZ2UpID0gdmFsdWUuc3BsaXQoIj0iLCAxKQorICAgICAgICAgICAgdW5pdHMgPSB1bml0cy5zdHJpcCgpLmxvd2VyKCkKKyAgICAgICAgICAgIGZvciBpdGVtIGluIHJhbmdlLnNwbGl0KCIsIik6CisgICAgICAgICAgICAgICAgKGJlZ2luLCBlbmQpID0gaXRlbS5zcGxpdCgiLSIpCisgICAgICAgICAgICAgICAgaWYgbm90IGJlZ2luLnN0cmlwKCk6CisgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gMAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGJlZ2luID0gaW50KGJlZ2luKQorICAgICAgICAgICAgICAgIGlmIGJlZ2luIDw9IGxhc3RfZW5kOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgICAgICAgICBpZiBub3QgZW5kLnN0cmlwKCk6CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IE5vbmUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBlbmQgPSBpbnQoZW5kKQorICAgICAgICAgICAgICAgIGxhc3RfZW5kID0gZW5kCisgICAgICAgICAgICAgICAgcmFuZ2VzLmFwcGVuZCgoYmVnaW4sIGVuZCkpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgIyBJbiB0aGlzIGNhc2Ugd2hlcmUgdGhlIFJhbmdlIGhlYWRlciBpcyBtYWxmb3JtZWQsCisgICAgICAgICAgICAjIHNlY3Rpb24gMTQuMTYgc2F5cyB0byB0cmVhdCB0aGUgcmVxdWVzdCBhcyBpZiB0aGUKKyAgICAgICAgICAgICMgUmFuZ2UgaGVhZGVyIHdhcyBub3QgcHJlc2VudC4gIEhvdyBkbyBJIGxvZyB0aGlzPworICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuICh1bml0cywgcmFuZ2VzKQorX1JhbmdlKCdSYW5nZScsICdyZXF1ZXN0JywgJ1JGQyAyNjE2LCAxNC4zNScpCisKK2NsYXNzIF9BY2NlcHRMYW5ndWFnZShfTXVsdGlWYWx1ZUhlYWRlcik6CisgICAgIiIiCisgICAgQWNjZXB0LUxhbmd1YWdlLCBSRkMgMjYxNiBzZWN0aW9uIDE0LjQKKyAgICAiIiIKKworICAgIGRlZiBwYXJzZShzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiBsYW5ndWFnZSB0YWdzIHNvcnRlZCBieSB0aGVpciAicSIgdmFsdWVzLiAgRm9yIGV4YW1wbGUsCisgICAgICAgICJlbi11cyxlbjtxPTAuNSIgc2hvdWxkIHJldHVybiBgYFsiZW4tdXMiLCAiZW4iXWBgLiAgSWYgdGhlcmUgaXMgbm8KKyAgICAgICAgYGBBY2NlcHQtTGFuZ3VhZ2VgYCBoZWFkZXIgcHJlc2VudCwgZGVmYXVsdCB0byBgYFtdYGAuCisgICAgICAgICIiIgorICAgICAgICBoZWFkZXIgPSBzZWxmLl9fY2FsbF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgaGVhZGVyIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgbGFuZ3MgPSBbdiBmb3IgdiBpbiBoZWFkZXIuc3BsaXQoIiwiKSBpZiB2XQorICAgICAgICBxcyA9IFtdCisgICAgICAgIGZvciBsYW5nIGluIGxhbmdzOgorICAgICAgICAgICAgcGllY2VzID0gbGFuZy5zcGxpdCgiOyIpCisgICAgICAgICAgICBsYW5nLCBwYXJhbXMgPSBwaWVjZXNbMF0uc3RyaXAoKS5sb3dlcigpLCBwaWVjZXNbMTpdCisgICAgICAgICAgICBxID0gMQorICAgICAgICAgICAgZm9yIHBhcmFtIGluIHBhcmFtczoKKyAgICAgICAgICAgICAgICBpZiAnPScgbm90IGluIHBhcmFtOgorICAgICAgICAgICAgICAgICAgICAjIE1hbGZvcm1lZCByZXF1ZXN0OyBwcm9iYWJseSBhIGJvdCwgd2UnbGwgaWdub3JlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgbHZhbHVlLCBydmFsdWUgPSBwYXJhbS5zcGxpdCgiPSIpCisgICAgICAgICAgICAgICAgbHZhbHVlID0gbHZhbHVlLnN0cmlwKCkubG93ZXIoKQorICAgICAgICAgICAgICAgIHJ2YWx1ZSA9IHJ2YWx1ZS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbHZhbHVlID09ICJxIjoKKyAgICAgICAgICAgICAgICAgICAgcSA9IGZsb2F0KHJ2YWx1ZSkKKyAgICAgICAgICAgIHFzLmFwcGVuZCgobGFuZywgcSkpCisgICAgICAgIHFzLnNvcnQoa2V5PWxhbWJkYSBxdWVyeTogcXVlcnlbMV0sIHJldmVyc2U9VHJ1ZSkKKyAgICAgICAgcmV0dXJuIFtsYW5nIGZvciAobGFuZywgcSkgaW4gcXNdCitfQWNjZXB0TGFuZ3VhZ2UoJ0FjY2VwdC1MYW5ndWFnZScsICdyZXF1ZXN0JywgJ1JGQyAyNjE2LCAxNC40JykKKworY2xhc3MgX0FjY2VwdFJhbmdlcyhfTXVsdGlWYWx1ZUhlYWRlcik6CisgICAgIiIiCisgICAgQWNjZXB0LVJhbmdlcywgUkZDIDI2MTYgc2VjdGlvbiAxNC41CisgICAgIiIiCisgICAgZGVmIGNvbXBvc2Uoc2VsZiwgbm9uZT1Ob25lLCBieXRlcz1Ob25lKToKKyAgICAgICAgaWYgYnl0ZXM6CisgICAgICAgICAgICByZXR1cm4gKCdieXRlcycsKQorICAgICAgICByZXR1cm4gKCdub25lJywpCitfQWNjZXB0UmFuZ2VzKCdBY2NlcHQtUmFuZ2VzJywgJ3Jlc3BvbnNlJywgJ1JGQyAyNjE2LCAxNC41JykKKworY2xhc3MgX0NvbnRlbnRSYW5nZShfU2luZ2xlVmFsdWVIZWFkZXIpOgorICAgICIiIgorICAgIENvbnRlbnQtUmFuZ2UsIFJGQyAyNjE2IHNlY3Rpb24gMTQuNgorICAgICIiIgorICAgIGRlZiBjb21wb3NlKHNlbGYsIGZpcnN0X2J5dGU9Tm9uZSwgbGFzdF9ieXRlPU5vbmUsIHRvdGFsX2xlbmd0aD1Ob25lKToKKyAgICAgICAgcmV0dmFsID0gImJ5dGVzICVkLSVkLyVkIiAlIChmaXJzdF9ieXRlLCBsYXN0X2J5dGUsIHRvdGFsX2xlbmd0aCkKKyAgICAgICAgYXNzZXJ0IGxhc3RfYnl0ZSA9PSAtMSBvciBmaXJzdF9ieXRlIDw9IGxhc3RfYnl0ZQorICAgICAgICBhc3NlcnQgbGFzdF9ieXRlICA8IHRvdGFsX2xlbmd0aAorICAgICAgICByZXR1cm4gKHJldHZhbCwpCitfQ29udGVudFJhbmdlKCdDb250ZW50LVJhbmdlJywgJ2VudGl0eScsICdSRkMgMjYxNiwgMTQuNicpCisKK2NsYXNzIF9BdXRob3JpemF0aW9uKF9TaW5nbGVWYWx1ZUhlYWRlcik6CisgICAgIiIiCisgICAgQXV0aG9yaXphdGlvbiwgUkZDIDI2MTcgKFJGQyAyNjE2LCAxNC44KQorICAgICIiIgorICAgIGRlZiBjb21wb3NlKHNlbGYsIGRpZ2VzdD1Ob25lLCBiYXNpYz1Ob25lLCB1c2VybmFtZT1Ob25lLCBwYXNzd29yZD1Ob25lLAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZT1Ob25lLCBwYXRoPU5vbmUsIG1ldGhvZD1Ob25lKToKKyAgICAgICAgYXNzZXJ0IHVzZXJuYW1lIGFuZCBwYXNzd29yZAorICAgICAgICBpZiBiYXNpYyBvciBub3QgY2hhbGxlbmdlOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBkaWdlc3QKKyAgICAgICAgICAgIHVzZXJwYXNzID0gIiVzOiVzIiAlICh1c2VybmFtZS5zdHJpcCgpLCBwYXNzd29yZC5zdHJpcCgpKQorICAgICAgICAgICAgcmV0dXJuICJCYXNpYyAlcyIgJSB1c2VycGFzcy5lbmNvZGUoJ2Jhc2U2NCcpLnN0cmlwKCkKKyAgICAgICAgYXNzZXJ0IGNoYWxsZW5nZSBhbmQgbm90IGJhc2ljCisgICAgICAgIHBhdGggPSBwYXRoIG9yICIvIgorICAgICAgICAoXywgcmVhbG0pID0gY2hhbGxlbmdlLnNwbGl0KCdyZWFsbT0iJykKKyAgICAgICAgKHJlYWxtLCBfKSA9IHJlYWxtLnNwbGl0KCciJywgMSkKKyAgICAgICAgYXV0aCA9IEFic3RyYWN0RGlnZXN0QXV0aEhhbmRsZXIoKQorICAgICAgICBhdXRoLmFkZF9wYXNzd29yZChyZWFsbSwgcGF0aCwgdXNlcm5hbWUsIHBhc3N3b3JkKQorICAgICAgICAodG9rZW4sIGNoYWxsZW5nZSkgPSBjaGFsbGVuZ2Uuc3BsaXQoJyAnLCAxKQorICAgICAgICBjaGFsID0gcGFyc2Vfa2Vxdl9saXN0KHBhcnNlX2h0dHBfbGlzdChjaGFsbGVuZ2UpKQorICAgICAgICBjbGFzcyBGYWtlUmVxdWVzdChvYmplY3QpOgorICAgICAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgICAgICAgICBkZWYgZnVsbF91cmwoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXRoCisKKyAgICAgICAgICAgICAgICBzZWxlY3RvciA9IGZ1bGxfdXJsCisKKyAgICAgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgICAgICAgICBkZWYgZGF0YShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZGVmIGdldF9mdWxsX3VybChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGgKKworICAgICAgICAgICAgICAgIGdldF9zZWxlY3RvciA9IGdldF9mdWxsX3VybAorCisgICAgICAgICAgICAgICAgZGVmIGhhc19kYXRhKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAgICAgZGVmIGdldF9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ldGhvZCBvciAiR0VUIgorCisgICAgICAgIHJldHZhbCA9ICJEaWdlc3QgJXMiICUgYXV0aC5nZXRfYXV0aG9yaXphdGlvbihGYWtlUmVxdWVzdCgpLCBjaGFsKQorICAgICAgICByZXR1cm4gKHJldHZhbCwpCitfQXV0aG9yaXphdGlvbignQXV0aG9yaXphdGlvbicsICdyZXF1ZXN0JywgJ1JGQyAyNjE3JykKKworIworIyBGb3Igbm93LCBjb25zdHJ1Y3QgYSBtaW5pbWFsaXN0aWMgdmVyc2lvbiBvZiB0aGUgZmllbGQtbmFtZXM7IGF0IGEKKyMgbGF0ZXIgZGF0ZSBtb3JlIGNvbXBsaWNhdGVkIGhlYWRlcnMgbWF5IHNwcm91dCBjb250ZW50IGNvbnN0cnVjdG9ycy4KKyMgVGhlIGl0ZW1zIGNvbW1lbnRlZCBvdXQgaGF2ZSBjb25jcmV0ZSB2YXJpYW50cy4KKyMKK2ZvciAobmFtZSwgICAgICAgICAgICAgIGNhdGVnb3J5LCB2ZXJzaW9uLCBzdHlsZSwgICAgICBjb21tZW50KSBpbiBcCisoKCJBY2NlcHQiICAgICAgICAgICAgICwncmVxdWVzdCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4xJyApCissKCJBY2NlcHQtQ2hhcnNldCIgICAgICwncmVxdWVzdCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4yJyApCissKCJBY2NlcHQtRW5jb2RpbmciICAgICwncmVxdWVzdCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4zJyApCisjLCgiQWNjZXB0LUxhbmd1YWdlIiAgICAsJ3JlcXVlc3QnICwnMS4xJywnbXVsdGktdmFsdWUnLCdSRkMgMjYxNiwgMTQuNCcgKQorIywoIkFjY2VwdC1SYW5nZXMiICAgICAgLCdyZXNwb25zZScsJzEuMScsJ211bHRpLXZhbHVlJywnUkZDIDI2MTYsIDE0LjUnICkKKywoIkFnZSIgICAgICAgICAgICAgICAgLCdyZXNwb25zZScsJzEuMScsJ3Npbmd1bGFyJyAgICwnUkZDIDI2MTYsIDE0LjYnICkKKywoIkFsbG93IiAgICAgICAgICAgICAgLCdlbnRpdHknICAsJzEuMCcsJ211bHRpLXZhbHVlJywnUkZDIDI2MTYsIDE0LjcnICkKKyMsKCJBdXRob3JpemF0aW9uIiAgICAgICwncmVxdWVzdCcgLCcxLjAnLCdzaW5ndWxhcicgICAsJ1JGQyAyNjE2LCAxNC44JyApCisjLCgiQ2FjaGUtQ29udHJvbCIgICAgICAsJ2dlbmVyYWwnICwnMS4xJywnbXVsdGktdmFsdWUnLCdSRkMgMjYxNiwgMTQuOScgKQorLCgiQ29va2llIiAgICAgICAgICAgICAsJ3JlcXVlc3QnICwnMS4wJywnbXVsdGktdmFsdWUnLCdSRkMgMjEwOS9OZXRzY2FwZScpCissKCJDb25uZWN0aW9uIiAgICAgICAgICwnZ2VuZXJhbCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4xMCcpCissKCJDb250ZW50LUVuY29kaW5nIiAgICwnZW50aXR5JyAgLCcxLjAnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4xMScpCisjLCgiQ29udGVudC1EaXNwb3NpdGlvbiIsJ2VudGl0eScgICwnMS4xJywnbXVsdGktdmFsdWUnLCdSRkMgMjYxNiwgMTUuNScgKQorLCgiQ29udGVudC1MYW5ndWFnZSIgICAsJ2VudGl0eScgICwnMS4xJywnbXVsdGktdmFsdWUnLCdSRkMgMjYxNiwgMTQuMTInKQorIywoIkNvbnRlbnQtTGVuZ3RoIiAgICAgLCdlbnRpdHknICAsJzEuMCcsJ3Npbmd1bGFyJyAgICwnUkZDIDI2MTYsIDE0LjEzJykKKywoIkNvbnRlbnQtTG9jYXRpb24iICAgLCdlbnRpdHknICAsJzEuMScsJ3Npbmd1bGFyJyAgICwnUkZDIDI2MTYsIDE0LjE0JykKKywoIkNvbnRlbnQtTUQ1IiAgICAgICAgLCdlbnRpdHknICAsJzEuMScsJ3Npbmd1bGFyJyAgICwnUkZDIDI2MTYsIDE0LjE1JykKKyMsKCJDb250ZW50LVJhbmdlIiAgICAgICwnZW50aXR5JyAgLCcxLjEnLCdzaW5ndWxhcicgICAsJ1JGQyAyNjE2LCAxNC4xNicpCisjLCgiQ29udGVudC1UeXBlIiAgICAgICAsJ2VudGl0eScgICwnMS4wJywnc2luZ3VsYXInICAgLCdSRkMgMjYxNiwgMTQuMTcnKQorLCgiRGF0ZSIgICAgICAgICAgICAgICAsJ2dlbmVyYWwnICwnMS4wJywnZGF0ZS1oZWFkZXInLCdSRkMgMjYxNiwgMTQuMTgnKQorLCgiRVRhZyIgICAgICAgICAgICAgICAsJ3Jlc3BvbnNlJywnMS4xJywnc2luZ3VsYXInICAgLCdSRkMgMjYxNiwgMTQuMTknKQorLCgiRXhwZWN0IiAgICAgICAgICAgICAsJ3JlcXVlc3QnICwnMS4xJywnbXVsdGktdmFsdWUnLCdSRkMgMjYxNiwgMTQuMjAnKQorLCgiRXhwaXJlcyIgICAgICAgICAgICAsJ2VudGl0eScgICwnMS4wJywnZGF0ZS1oZWFkZXInLCdSRkMgMjYxNiwgMTQuMjEnKQorLCgiRnJvbSIgICAgICAgICAgICAgICAsJ3JlcXVlc3QnICwnMS4wJywnc2luZ3VsYXInICAgLCdSRkMgMjYxNiwgMTQuMjInKQorLCgiSG9zdCIgICAgICAgICAgICAgICAsJ3JlcXVlc3QnICwnMS4xJywnc2luZ3VsYXInICAgLCdSRkMgMjYxNiwgMTQuMjMnKQorLCgiSWYtTWF0Y2giICAgICAgICAgICAsJ3JlcXVlc3QnICwnMS4xJywnbXVsdGktdmFsdWUnLCdSRkMgMjYxNiwgMTQuMjQnKQorIywoIklmLU1vZGlmaWVkLVNpbmNlIiAgLCdyZXF1ZXN0JyAsJzEuMCcsJ2RhdGUtaGVhZGVyJywnUkZDIDI2MTYsIDE0LjI1JykKKywoIklmLU5vbmUtTWF0Y2giICAgICAgLCdyZXF1ZXN0JyAsJzEuMScsJ211bHRpLXZhbHVlJywnUkZDIDI2MTYsIDE0LjI2JykKKywoIklmLVJhbmdlIiAgICAgICAgICAgLCdyZXF1ZXN0JyAsJzEuMScsJ3Npbmd1bGFyJyAgICwnUkZDIDI2MTYsIDE0LjI3JykKKywoIklmLVVubW9kaWZpZWQtU2luY2UiLCdyZXF1ZXN0JyAsJzEuMScsJ2RhdGUtaGVhZGVyJyAsJ1JGQyAyNjE2LCAxNC4yOCcpCissKCJMYXN0LU1vZGlmaWVkIiAgICAgICwnZW50aXR5JyAgLCcxLjAnLCdkYXRlLWhlYWRlcicsJ1JGQyAyNjE2LCAxNC4yOScpCissKCJMb2NhdGlvbiIgICAgICAgICAgICwncmVzcG9uc2UnLCcxLjAnLCdzaW5ndWxhcicgICAsJ1JGQyAyNjE2LCAxNC4zMCcpCissKCJNYXgtRm9yd2FyZHMiICAgICAgICwncmVxdWVzdCcgLCcxLjEnLCdzaW5ndWxhcicgICAsJ1JGQyAyNjE2LCAxNC4zMScpCissKCJQcmFnbWEiICAgICAgICAgICAgICwnZ2VuZXJhbCcgLCcxLjAnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4zMicpCissKCJQcm94eS1BdXRoZW50aWNhdGUiICwncmVzcG9uc2UnLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4zMycpCissKCJQcm94eS1BdXRob3JpemF0aW9uIiwncmVxdWVzdCcgLCcxLjEnLCdzaW5ndWxhcicgICAsJ1JGQyAyNjE2LCAxNC4zNCcpCisjLCgiUmFuZ2UiICAgICAgICAgICAgICAsJ3JlcXVlc3QnICwnMS4xJywnbXVsdGktdmFsdWUnLCdSRkMgMjYxNiwgMTQuMzUnKQorLCgiUmVmZXJlciIgICAgICAgICAgICAsJ3JlcXVlc3QnICwnMS4wJywnc2luZ3VsYXInICAgLCdSRkMgMjYxNiwgMTQuMzYnKQorLCgiUmV0cnktQWZ0ZXIiICAgICAgICAsJ3Jlc3BvbnNlJywnMS4xJywnc2luZ3VsYXInICAgLCdSRkMgMjYxNiwgMTQuMzcnKQorLCgiU2VydmVyIiAgICAgICAgICAgICAsJ3Jlc3BvbnNlJywnMS4wJywnc2luZ3VsYXInICAgLCdSRkMgMjYxNiwgMTQuMzgnKQorLCgiU2V0LUNvb2tpZSIgICAgICAgICAsJ3Jlc3BvbnNlJywnMS4wJywnbXVsdGktZW50cnknLCdSRkMgMjEwOS9OZXRzY2FwZScpCissKCJURSIgICAgICAgICAgICAgICAgICwncmVxdWVzdCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC4zOScpCissKCJUcmFpbGVyIiAgICAgICAgICAgICwnZ2VuZXJhbCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC40MCcpCissKCJUcmFuc2Zlci1FbmNvZGluZyIgICwnZ2VuZXJhbCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC40MScpCissKCJVcGdyYWRlIiAgICAgICAgICAgICwnZ2VuZXJhbCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC40MicpCissKCJVc2VyLUFnZW50IiAgICAgICAgICwncmVxdWVzdCcgLCcxLjAnLCdzaW5ndWxhcicgICAsJ1JGQyAyNjE2LCAxNC40MycpCissKCJWYXJ5IiAgICAgICAgICAgICAgICwncmVzcG9uc2UnLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC40NCcpCissKCJWaWEiICAgICAgICAgICAgICAgICwnZ2VuZXJhbCcgLCcxLjEnLCdtdWx0aS12YWx1ZScsJ1JGQyAyNjE2LCAxNC40NScpCissKCJXYXJuaW5nIiAgICAgICAgICAgICwnZ2VuZXJhbCcgLCcxLjEnLCdtdWx0aS1lbnRyeScsJ1JGQyAyNjE2LCAxNC40NicpCissKCJXV1ctQXV0aGVudGljYXRlIiAgICwncmVzcG9uc2UnLCcxLjAnLCdtdWx0aS1lbnRyeScsJ1JGQyAyNjE2LCAxNC40NycpKToKKyAgICBrbGFzcyA9IHsnbXVsdGktdmFsdWUnOiBfTXVsdGlWYWx1ZUhlYWRlciwKKyAgICAgICAgICAgICAnbXVsdGktZW50cnknOiBfTXVsdGlFbnRyeUhlYWRlciwKKyAgICAgICAgICAgICAnZGF0ZS1oZWFkZXInOiBfRGF0ZUhlYWRlciwKKyAgICAgICAgICAgICAnc2luZ3VsYXInICAgOiBfU2luZ2xlVmFsdWVIZWFkZXJ9W3N0eWxlXQorICAgIGtsYXNzKG5hbWUsIGNhdGVnb3J5LCBjb21tZW50LCB2ZXJzaW9uKS5fX2RvY19fID0gY29tbWVudAorICAgIGRlbCBrbGFzcworCitmb3IgaGVhZCBpbiBfaGVhZGVycy52YWx1ZXMoKToKKyAgICBoZWFkbmFtZSA9IGhlYWQubmFtZS5yZXBsYWNlKCItIiwiXyIpLnVwcGVyKCkKKyAgICBsb2NhbHMoKVtoZWFkbmFtZV0gPSBoZWFkCisgICAgX19hbGxfXy5hcHBlbmQoaGVhZG5hbWUpCisKK19fcHVkZ2VfYWxsX18gPSBfX2FsbF9fWzpdCitmb3IgX25hbWUsIF9vYmogaW4gc2l4Lml0ZXJpdGVtcyhkaWN0KGdsb2JhbHMoKSkpOgorICAgIGlmIGlzaW5zdGFuY2UoX29iaiwgdHlwZSkgYW5kIGlzc3ViY2xhc3MoX29iaiwgSFRUUEhlYWRlcik6CisgICAgICAgIF9fcHVkZ2VfYWxsX18uYXBwZW5kKF9uYW1lKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2h0dHBzZXJ2ZXIucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvaHR0cHNlcnZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMzVkODE4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2h0dHBzZXJ2ZXIucHkKQEAgLTAsMCArMSwxNDMwIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIChjKSAyMDA1IENsYXJrIEMuIEV2YW5zCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFRoaXMgY29kZSB3YXMgd3JpdHRlbiB3aXRoIGZ1bmRpbmcgYnkgaHR0cDovL3Byb21ldGhldXNyZXNlYXJjaC5jb20KKyIiIgorV1NHSSBIVFRQIFNlcnZlcgorCitUaGlzIGlzIGEgbWluaW1hbGlzdGljIFdTR0kgc2VydmVyIHVzaW5nIFB5dGhvbidzIGJ1aWx0LWluIEJhc2VIVFRQU2VydmVyOworaWYgcHlPcGVuU1NMIGlzIGluc3RhbGxlZCwgaXQgYWxzbyBwcm92aWRlcyBTU0wgY2FwYWJpbGl0aWVzLgorIiIiCisKKyMgQEA6IGFkZCBpbiBwcm90ZWN0aW9uIGFnYWluc3QgSFRUUC8xLjAgY2xpZW50cyB3aG8gY2xhaW0gdG8KKyMgICAgIGJlIDEuMSBidXQgZG8gbm90IHNlbmQgYSBDb250ZW50LUxlbmd0aAorCisjIEBAOiBhZGQgc3VwcG9ydCBmb3IgY2h1bmtlZCBlbmNvZGluZywgdGhpcyBpcyBub3QgYSAxLjEgc2VydmVyCisjICAgICB0aWxsIHRoaXMgaXMgY29tcGxldGVkLgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCitpbXBvcnQgYXRleGl0CitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgc29ja2V0LCBzeXMsIHRocmVhZGluZworaW1wb3J0IHBvc2l4cGF0aAoraW1wb3J0IHNpeAoraW1wb3J0IHRpbWUKK2ltcG9ydCBvcworZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvdW50Citmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgX3RocmVhZAorZnJvbSBzaXgubW92ZXMgaW1wb3J0IHF1ZXVlCitmcm9tIHNpeC5tb3Zlcy5CYXNlSFRUUFNlcnZlciBpbXBvcnQgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlciwgSFRUUFNlcnZlcgorZnJvbSBzaXgubW92ZXMuc29ja2V0c2VydmVyIGltcG9ydCBUaHJlYWRpbmdNaXhJbgorZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1bnF1b3RlLCB1cmxzcGxpdAorZnJvbSBwYXN0ZS51dGlsIGltcG9ydCBjb252ZXJ0ZXJzCitpbXBvcnQgbG9nZ2luZwordHJ5OgorICAgIGZyb20gcGFzdGUudXRpbCBpbXBvcnQga2lsbHRocmVhZAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgTm90IGF2YWlsYWJsZSwgcHJvYmFibHkgbm8gY3R5cGVzCisgICAga2lsbHRocmVhZCA9IE5vbmUKKworX19hbGxfXyA9IFsnV1NHSUhhbmRsZXJNaXhpbicsICdXU0dJU2VydmVyJywgJ1dTR0lIYW5kbGVyJywgJ3NlcnZlJ10KK19fdmVyc2lvbl9fID0gIjAuNSIKKworCitkZWYgX2dldF9oZWFkZXJzKGhlYWRlcnMsIGspOgorICAgICIiIgorICAgIFByaXZhdGUgZnVuY3Rpb24gZm9yIGFic3RyYWN0aW5nIGRpZmZlcmVuY2VzIGluIGdldHRpbmcgSFRUUCByZXF1ZXN0CisgICAgaGVhZGVycyBvbiBQeXRob24gMiB2cy4gUHl0aG9uIDMKKyAgICAiIiIKKworICAgIGlmIGhhc2F0dHIoaGVhZGVycywgJ2dldF9hbGwnKToKKyAgICAgICAgcmV0dXJuIGhlYWRlcnMuZ2V0X2FsbChrKSAgICAgIyBQeXRob24gMyAtIGVtYWlsLm1lc3NhZ2UuTWVzc2FnZQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBoZWFkZXJzLmdldGhlYWRlcnMoaykgICMgUHl0aG9uIDIgLSBtaW1ldG9vbHMuTWVzc2FnZQorCisKK2NsYXNzIENvbnRpbnVlSG9vayhvYmplY3QpOgorICAgICIiIgorICAgIFdoZW4gYSBjbGllbnQgcmVxdWVzdCBpbmNsdWRlcyBhICdFeHBlY3Q6IDEwMC1jb250aW51ZScgaGVhZGVyLCB0aGVuCisgICAgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBzZXJ2ZXIgdG8gc2VuZCAxMDAgQ29udGludWUgd2hlbiBpdAorICAgIGlzIHJlYWR5IGZvciB0aGUgY29udGVudCBib2R5LiAgVGhpcyBhbGxvd3MgYXV0aGVudGljYXRpb24sIGFjY2VzcworICAgIGxldmVscywgYW5kIG90aGVyIGV4Y2VwdGlvbnMgdG8gYmUgZGV0ZWN0ZWQgKmJlZm9yZSogYmFuZHdpdGggaXMKKyAgICBzcGVudCBvbiB0aGUgcmVxdWVzdCBib2R5LgorCisgICAgVGhpcyBpcyBhIHJmaWxlIHdyYXBwZXIgdGhhdCBpbXBsZW1lbnRzIHRoaXMgZnVuY3Rpb25hbGl0eSBieQorICAgIHNlbmRpbmcgMTAwIENvbnRpbnVlIHRvIHRoZSBjbGllbnQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHVzZXIKKyAgICByZXF1ZXN0cyB0aGUgY29udGVudCB2aWEgYSByZWFkKCkgb3BlcmF0aW9uIG9uIHRoZSByZmlsZSBzdHJlYW0uCisgICAgQWZ0ZXIgdGhpcyByZXNwb25zZSBpcyBzZW50LCBpdCBiZWNvbWVzIGEgcGFzcy10aHJvdWdoIG9iamVjdC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZmlsZSwgd3JpdGUpOgorICAgICAgICBzZWxmLl9Db250aW51ZUZpbGVfcmZpbGUgPSByZmlsZQorICAgICAgICBzZWxmLl9Db250aW51ZUZpbGVfd3JpdGUgPSB3cml0ZQorICAgICAgICBmb3IgYXR0ciBpbiAoJ2Nsb3NlJywgJ2Nsb3NlZCcsICdmaWxlbm8nLCAnZmx1c2gnLAorICAgICAgICAgICAgICAgICAgICAgJ21vZGUnLCAnYnVmc2l6ZScsICdzb2Z0c3BhY2UnKToKKyAgICAgICAgICAgIGlmIGhhc2F0dHIocmZpbGUsIGF0dHIpOgorICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgYXR0ciwgZ2V0YXR0cihyZmlsZSwgYXR0cikpCisgICAgICAgIGZvciBhdHRyIGluICgncmVhZCcsICdyZWFkbGluZScsICdyZWFkbGluZXMnKToKKyAgICAgICAgICAgIGlmIGhhc2F0dHIocmZpbGUsIGF0dHIpOgorICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgYXR0ciwgZ2V0YXR0cihzZWxmLCAnX0NvbnRpbnVlRmlsZV8nICsgYXR0cikpCisKKyAgICBkZWYgX0NvbnRpbnVlRmlsZV9zZW5kKHNlbGYpOgorICAgICAgICBzZWxmLl9Db250aW51ZUZpbGVfd3JpdGUoIkhUVFAvMS4xIDEwMCBDb250aW51ZVxyXG5cclxuIikKKyAgICAgICAgcmZpbGUgPSBzZWxmLl9Db250aW51ZUZpbGVfcmZpbGUKKyAgICAgICAgZm9yIGF0dHIgaW4gKCdyZWFkJywgJ3JlYWRsaW5lJywgJ3JlYWRsaW5lcycpOgorICAgICAgICAgICAgaWYgaGFzYXR0cihyZmlsZSwgYXR0cik6CisgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBhdHRyLCBnZXRhdHRyKHJmaWxlLCBhdHRyKSkKKworICAgIGRlZiBfQ29udGludWVGaWxlX3JlYWQoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgIHNlbGYuX0NvbnRpbnVlRmlsZV9zZW5kKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX0NvbnRpbnVlRmlsZV9yZmlsZS5yZWFkKHNpemUpCisKKyAgICBkZWYgX0NvbnRpbnVlRmlsZV9yZWFkbGluZShzZWxmLCBzaXplPS0xKToKKyAgICAgICAgc2VsZi5fQ29udGludWVGaWxlX3NlbmQoKQorICAgICAgICByZXR1cm4gc2VsZi5fQ29udGludWVGaWxlX3JmaWxlLnJlYWRsaW5lKHNpemUpCisKKyAgICBkZWYgX0NvbnRpbnVlRmlsZV9yZWFkbGluZXMoc2VsZiwgc2l6ZWhpbnQ9MCk6CisgICAgICAgIHNlbGYuX0NvbnRpbnVlRmlsZV9zZW5kKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX0NvbnRpbnVlRmlsZV9yZmlsZS5yZWFkbGluZXMoc2l6ZWhpbnQpCisKK2NsYXNzIFdTR0lIYW5kbGVyTWl4aW46CisgICAgIiIiCisgICAgV1NHSSBtaXgtaW4gZm9yIEhUVFBSZXF1ZXN0SGFuZGxlcgorCisgICAgVGhpcyBjbGFzcyBpcyBhIG1peC1pbiB0byBwcm92aWRlIFdTR0kgZnVuY3Rpb25hbGl0eSB0byBhbnkKKyAgICBIVFRQUmVxdWVzdEhhbmRsZXIgZGVyaXZhdGl2ZSAoYXMgcHJvdmlkZWQgaW4gUHl0aG9uJ3MgQmFzZUhUVFBTZXJ2ZXIpLgorICAgIFRoaXMgYXNzdW1lcyBhIGBgd3NnaV9hcHBsaWNhdGlvbmBgIGhhbmRsZXIgb24gYGBzZWxmLnNlcnZlcmBgLgorICAgICIiIgorICAgIGxvb2t1cF9hZGRyZXNzZXMgPSBUcnVlCisKKyAgICBkZWYgbG9nX3JlcXVlc3Qoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIGRpc2FibGUgc3VjY2VzcyByZXF1ZXN0IGxvZ2dpbmcKKworICAgICAgICBMb2dnaW5nIHRyYW5zYWN0aW9ucyBzaG91bGQgbm90IGJlIHBhcnQgb2YgYSBXU0dJIHNlcnZlciwKKyAgICAgICAgaWYgeW91IHdhbnQgbG9nZ2luZzsgbG9vayBhdCBwYXN0ZS50cmFuc2xvZ2dlcgorICAgICAgICAiIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIGxvZ19tZXNzYWdlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiBkaXNhYmxlIGVycm9yIG1lc3NhZ2UgbG9nZ2luZworCisgICAgICAgIExvZ2dpbmcgdHJhbnNhY3Rpb25zIHNob3VsZCBub3QgYmUgcGFydCBvZiBhIFdTR0kgc2VydmVyLAorICAgICAgICBpZiB5b3Ugd2FudCBsb2dnaW5nOyBsb29rIGF0IHBhc3RlLnRyYW5zbG9nZ2VyCisgICAgICAgICIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdmVyc2lvbl9zdHJpbmcoc2VsZik6CisgICAgICAgICIiIiBiZWhhdmlvciB0aGF0IEJhc2VIVFRQU2VydmVyIHNob3VsZCBoYXZlIGhhZCAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuc3lzX3ZlcnNpb246CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXJfdmVyc2lvbgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyX3ZlcnNpb24gKyAnICcgKyBzZWxmLnN5c192ZXJzaW9uCisKKyAgICBkZWYgd3NnaV93cml0ZV9jaHVuayhzZWxmLCBjaHVuayk6CisgICAgICAgICIiIgorICAgICAgICBXcml0ZSBhIGNodW5rIG9mIHRoZSBvdXRwdXQgc3RyZWFtOyBzZW5kIGhlYWRlcnMgaWYgdGhleQorICAgICAgICBoYXZlIG5vdCBhbHJlYWR5IGJlZW4gc2VudC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLndzZ2lfaGVhZGVyc19zZW50IGFuZCBub3Qgc2VsZi53c2dpX2N1cnJfaGVhZGVyczoKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKKyAgICAgICAgICAgICAgICAiQ29udGVudCByZXR1cm5lZCBiZWZvcmUgc3RhcnRfcmVzcG9uc2UgY2FsbGVkIikKKyAgICAgICAgaWYgbm90IHNlbGYud3NnaV9oZWFkZXJzX3NlbnQ6CisgICAgICAgICAgICBzZWxmLndzZ2lfaGVhZGVyc19zZW50ID0gVHJ1ZQorICAgICAgICAgICAgKHN0YXR1cywgaGVhZGVycykgPSBzZWxmLndzZ2lfY3Vycl9oZWFkZXJzCisgICAgICAgICAgICBjb2RlLCBtZXNzYWdlID0gc3RhdHVzLnNwbGl0KCIgIiwgMSkKKyAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZShpbnQoY29kZSksIG1lc3NhZ2UpCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIEhUVFAvMS4xIGNvbXBsaWFuY2U7IGVpdGhlciBzZW5kIENvbnRlbnQtTGVuZ3RoIG9yCisgICAgICAgICAgICAjIHNpZ25hbCB0aGF0IHRoZSBjb25uZWN0aW9uIGlzIGJlaW5nIGNsb3NlZC4KKyAgICAgICAgICAgICMKKyAgICAgICAgICAgIHNlbmRfY2xvc2UgPSBUcnVlCisgICAgICAgICAgICBmb3IgKGssIHYpIGluICBoZWFkZXJzOgorICAgICAgICAgICAgICAgIGxrID0gay5sb3dlcigpCisgICAgICAgICAgICAgICAgaWYgJ2NvbnRlbnQtbGVuZ3RoJyA9PSBsazoKKyAgICAgICAgICAgICAgICAgICAgc2VuZF9jbG9zZSA9IEZhbHNlCisgICAgICAgICAgICAgICAgaWYgJ2Nvbm5lY3Rpb24nID09IGxrOgorICAgICAgICAgICAgICAgICAgICBpZiAnY2xvc2UnID09IHYubG93ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xvc2VfY29ubmVjdGlvbiA9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfY2xvc2UgPSBGYWxzZQorICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoaywgdikKKyAgICAgICAgICAgIGlmIHNlbmRfY2xvc2U6CisgICAgICAgICAgICAgICAgc2VsZi5jbG9zZV9jb25uZWN0aW9uID0gMQorICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoJ0Nvbm5lY3Rpb24nLCAnY2xvc2UnKQorCisgICAgICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKKyAgICAgICAgc2VsZi53ZmlsZS53cml0ZShjaHVuaykKKworICAgIGRlZiB3c2dpX3N0YXJ0X3Jlc3BvbnNlKHNlbGYsIHN0YXR1cywgcmVzcG9uc2VfaGVhZGVycywgZXhjX2luZm89Tm9uZSk6CisgICAgICAgIGlmIGV4Y19pbmZvOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmIHNlbGYud3NnaV9oZWFkZXJzX3NlbnQ6CisgICAgICAgICAgICAgICAgICAgIHNpeC5yZXJhaXNlKGV4Y19pbmZvWzBdLCBleGNfaW5mb1sxXSwgZXhjX2luZm9bMl0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBJbiB0aGlzIGNhc2UsIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGF0IHRoZQorICAgICAgICAgICAgICAgICAgICAjIGhpZ2hlci1sZXZlbCBjb2RlIGlzIGN1cnJlbnRseSBoYW5kbGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgIyBpc3N1ZSBhbmQgcmV0dXJuaW5nIGEgcmVzb25hYmxlIHJlc3BvbnNlLgorICAgICAgICAgICAgICAgICAgICAjIHNlbGYubG9nX2Vycm9yKHJlcHIoZXhjX2luZm8pKQorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGV4Y19pbmZvID0gTm9uZQorICAgICAgICBlbGlmIHNlbGYud3NnaV9jdXJyX2hlYWRlcnM6CisgICAgICAgICAgICBhc3NlcnQgMCwgIkF0dGVtcHQgdG8gc2V0IGhlYWRlcnMgYSBzZWNvbmQgdGltZSB3L28gYW4gZXhjX2luZm8iCisgICAgICAgIHNlbGYud3NnaV9jdXJyX2hlYWRlcnMgPSAoc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzKQorICAgICAgICByZXR1cm4gc2VsZi53c2dpX3dyaXRlX2NodW5rCisKKyAgICBkZWYgd3NnaV9zZXR1cChzZWxmLCBlbnZpcm9uPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0dXAgdGhlIG1lbWJlciB2YXJpYWJsZXMgdXNlZCBieSB0aGlzIFdTR0kgbWl4aW4sIGluY2x1ZGluZworICAgICAgICB0aGUgYGBlbnZpcm9uYGAgYW5kIHN0YXR1cyBtZW1iZXIgdmFyaWFibGVzLgorCisgICAgICAgIEFmdGVyIHRoZSBiYXNpYyBlbnZpcm9ubWVudCBpcyBjcmVhdGVkOyB0aGUgb3B0aW9uYWwgYGBlbnZpcm9uYGAKKyAgICAgICAgYXJndW1lbnQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgYW55IHNldHRpbmdzLgorICAgICAgICAiIiIKKworICAgICAgICBkdW1teV91cmwgPSAnaHR0cDovL2R1bW15JXMnICUgKHNlbGYucGF0aCwpCisgICAgICAgIChzY2hlbWUsIG5ldGxvYywgcGF0aCwgcXVlcnksIGZyYWdtZW50KSA9IHVybHNwbGl0KGR1bW15X3VybCkKKyAgICAgICAgcGF0aCA9IHVucXVvdGUocGF0aCkKKyAgICAgICAgZW5kc2xhc2ggPSBwYXRoLmVuZHN3aXRoKCcvJykKKyAgICAgICAgcGF0aCA9IHBvc2l4cGF0aC5ub3JtcGF0aChwYXRoKQorICAgICAgICBpZiBlbmRzbGFzaCBhbmQgcGF0aCAhPSAnLyc6CisgICAgICAgICAgICAjIFB1dCB0aGUgc2xhc2ggYmFjay4uLgorICAgICAgICAgICAgcGF0aCArPSAnLycKKyAgICAgICAgKHNlcnZlcl9uYW1lLCBzZXJ2ZXJfcG9ydCkgPSBzZWxmLnNlcnZlci5zZXJ2ZXJfYWRkcmVzc1s6Ml0KKworICAgICAgICByZmlsZSA9IHNlbGYucmZpbGUKKyAgICAgICAgIyBXZSBjYW4gcHV0IGluIHRoZSBwcm90ZWN0aW9uIHRvIGtlZXAgZnJvbSBvdmVyLXJlYWRpbmcgdGhlCisgICAgICAgICMgZmlsZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb250ZW50X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcsICcwJykpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgY29udGVudF9sZW5ndGggPSAwCisgICAgICAgIGlmICcxMDAtY29udGludWUnID09IHNlbGYuaGVhZGVycy5nZXQoJ0V4cGVjdCcsJycpLmxvd2VyKCk6CisgICAgICAgICAgICByZmlsZSA9IExpbWl0ZWRMZW5ndGhGaWxlKENvbnRpbnVlSG9vayhyZmlsZSwgc2VsZi53ZmlsZS53cml0ZSksIGNvbnRlbnRfbGVuZ3RoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi5jb25uZWN0aW9uLCAnZ2V0X2NvbnRleHQnKToKKyAgICAgICAgICAgICAgICAjIEBAOiBMaW1pdGVkTGVuZ3RoRmlsZSBpcyBjdXJyZW50bHkgYnJva2VuIGluIGNvbm5lY3Rpb24KKyAgICAgICAgICAgICAgICAjIHdpdGggU1NMIChzcG9yYXRpYyBlcnJvcnMgdGhhdCBhcmUgZGlmZmN1bHQgdG8gdHJhY2UsIGJ1dAorICAgICAgICAgICAgICAgICMgb25lcyB0aGF0IGdvIGF3YXkgd2hlbiB5b3UgZG9uJ3QgdXNlIExpbWl0ZWRMZW5ndGhGaWxlKQorICAgICAgICAgICAgICAgIHJmaWxlID0gTGltaXRlZExlbmd0aEZpbGUocmZpbGUsIGNvbnRlbnRfbGVuZ3RoKQorCisgICAgICAgIHJlbW90ZV9hZGRyZXNzID0gc2VsZi5jbGllbnRfYWRkcmVzc1swXQorICAgICAgICBzZWxmLndzZ2lfZW52aXJvbiA9IHsKKyAgICAgICAgICAgICAgICAnd3NnaS52ZXJzaW9uJzogKDEsMCkKKyAgICAgICAgICAgICAgICwnd3NnaS51cmxfc2NoZW1lJzogJ2h0dHAnCisgICAgICAgICAgICAgICAsJ3dzZ2kuaW5wdXQnOiByZmlsZQorICAgICAgICAgICAgICAgLCd3c2dpLmVycm9ycyc6IHN5cy5zdGRlcnIKKyAgICAgICAgICAgICAgICwnd3NnaS5tdWx0aXRocmVhZCc6IFRydWUKKyAgICAgICAgICAgICAgICwnd3NnaS5tdWx0aXByb2Nlc3MnOiBGYWxzZQorICAgICAgICAgICAgICAgLCd3c2dpLnJ1bl9vbmNlJzogRmFsc2UKKyAgICAgICAgICAgICAgICMgQ0dJIHZhcmlhYmxlcyByZXF1aXJlZCBieSBQRVAtMzMzCisgICAgICAgICAgICAgICAsJ1JFUVVFU1RfTUVUSE9EJzogc2VsZi5jb21tYW5kCisgICAgICAgICAgICAgICAsJ1NDUklQVF9OQU1FJzogJycgIyBhcHBsaWNhdGlvbiBpcyByb290IG9mIHNlcnZlcgorICAgICAgICAgICAgICAgLCdQQVRIX0lORk8nOiBwYXRoCisgICAgICAgICAgICAgICAsJ1FVRVJZX1NUUklORyc6IHF1ZXJ5CisgICAgICAgICAgICAgICAsJ0NPTlRFTlRfVFlQRSc6IHNlbGYuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScsICcnKQorICAgICAgICAgICAgICAgLCdDT05URU5UX0xFTkdUSCc6IHNlbGYuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJywgJzAnKQorICAgICAgICAgICAgICAgLCdTRVJWRVJfTkFNRSc6IHNlcnZlcl9uYW1lCisgICAgICAgICAgICAgICAsJ1NFUlZFUl9QT1JUJzogc3RyKHNlcnZlcl9wb3J0KQorICAgICAgICAgICAgICAgLCdTRVJWRVJfUFJPVE9DT0wnOiBzZWxmLnJlcXVlc3RfdmVyc2lvbgorICAgICAgICAgICAgICAgIyBDR0kgbm90IHJlcXVpcmVkIGJ5IFBFUC0zMzMKKyAgICAgICAgICAgICAgICwnUkVNT1RFX0FERFInOiByZW1vdGVfYWRkcmVzcworICAgICAgICAgICAgICAgfQorICAgICAgICBpZiBzY2hlbWU6CisgICAgICAgICAgICBzZWxmLndzZ2lfZW52aXJvblsncGFzdGUuaHR0cHNlcnZlci5wcm94eS5zY2hlbWUnXSA9IHNjaGVtZQorICAgICAgICBpZiBuZXRsb2M6CisgICAgICAgICAgICBzZWxmLndzZ2lfZW52aXJvblsncGFzdGUuaHR0cHNlcnZlci5wcm94eS5ob3N0J10gPSBuZXRsb2MKKworICAgICAgICBpZiBzZWxmLmxvb2t1cF9hZGRyZXNzZXM6CisgICAgICAgICAgICAjIEBAOiBtYWtlIGxvb2t1cF9hZGRyZXNlcyBhY3R1YWxseSB3b3JrLCBhdCB0aGlzIHBvaW50CisgICAgICAgICAgICAjICAgICBpdCBoYXMgYmVlbiBhZGRyZXNzX3N0cmluZygpIGlzIG92ZXJyaWRlbiBkb3duIGluCisgICAgICAgICAgICAjICAgICBmaWxlIGFuZCBoZW5jZSBpcyBhIG5vb3AKKyAgICAgICAgICAgIGlmIHJlbW90ZV9hZGRyZXNzLnN0YXJ0c3dpdGgoIjE5Mi4xNjguIikgXAorICAgICAgICAgICAgb3IgcmVtb3RlX2FkZHJlc3Muc3RhcnRzd2l0aCgiMTAuIikgXAorICAgICAgICAgICAgb3IgcmVtb3RlX2FkZHJlc3Muc3RhcnRzd2l0aCgiMTcyLjE2LiIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYWRkcmVzc19zdHJpbmcgPSBOb25lICMgc2VsZi5hZGRyZXNzX3N0cmluZygpCisgICAgICAgICAgICAgICAgaWYgYWRkcmVzc19zdHJpbmc6CisgICAgICAgICAgICAgICAgICAgIHNlbGYud3NnaV9lbnZpcm9uWydSRU1PVEVfSE9TVCddID0gYWRkcmVzc19zdHJpbmcKKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuc2VydmVyLCAndGhyZWFkX3Bvb2wnKToKKyAgICAgICAgICAgICMgTm93IHRoYXQgd2Uga25vdyB3aGF0IHRoZSByZXF1ZXN0IHdhcyBmb3IsIHdlIHNob3VsZAorICAgICAgICAgICAgIyB0ZWxsIHRoZSB0aHJlYWQgcG9vbCB3aGF0IGl0cyB3b3JrZXIgaXMgd29ya2luZyBvbgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIudGhyZWFkX3Bvb2wud29ya2VyX3RyYWNrZXJbX3RocmVhZC5nZXRfaWRlbnQoKV1bMV0gPSBzZWxmLndzZ2lfZW52aXJvbgorICAgICAgICAgICAgc2VsZi53c2dpX2Vudmlyb25bJ3Bhc3RlLmh0dHBzZXJ2ZXIudGhyZWFkX3Bvb2wnXSA9IHNlbGYuc2VydmVyLnRocmVhZF9wb29sCisKKyAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5oZWFkZXJzLml0ZW1zKCk6CisgICAgICAgICAgICBrZXkgPSAnSFRUUF8nICsgay5yZXBsYWNlKCItIiwiXyIpLnVwcGVyKCkKKyAgICAgICAgICAgIGlmIGtleSBpbiAoJ0hUVFBfQ09OVEVOVF9UWVBFJywnSFRUUF9DT05URU5UX0xFTkdUSCcpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzZWxmLndzZ2lfZW52aXJvbltrZXldID0gJywnLmpvaW4oX2dldF9oZWFkZXJzKHNlbGYuaGVhZGVycywgaykpCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLmNvbm5lY3Rpb24sJ2dldF9jb250ZXh0Jyk6CisgICAgICAgICAgICBzZWxmLndzZ2lfZW52aXJvblsnd3NnaS51cmxfc2NoZW1lJ10gPSAnaHR0cHMnCisgICAgICAgICAgICAjIEBAOiBleHRyYWN0IG90aGVyIFNTTCBwYXJhbWV0ZXJzIGZyb20gcHlPcGVuU1NMIGF0Li4uCisgICAgICAgICAgICAjIGh0dHA6Ly93d3cubW9kc3NsLm9yZy9kb2NzLzIuOC9zc2xfcmVmZXJlbmNlLmh0bWwjVG9DMjUKKworICAgICAgICBpZiBlbnZpcm9uOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZW52aXJvbiwgZGljdCkKKyAgICAgICAgICAgIHNlbGYud3NnaV9lbnZpcm9uLnVwZGF0ZShlbnZpcm9uKQorICAgICAgICAgICAgaWYgJ29uJyA9PSBlbnZpcm9uLmdldCgnSFRUUFMnKToKKyAgICAgICAgICAgICAgICBzZWxmLndzZ2lfZW52aXJvblsnd3NnaS51cmxfc2NoZW1lJ10gPSAnaHR0cHMnCisKKyAgICAgICAgc2VsZi53c2dpX2N1cnJfaGVhZGVycyA9IE5vbmUKKyAgICAgICAgc2VsZi53c2dpX2hlYWRlcnNfc2VudCA9IEZhbHNlCisKKyAgICBkZWYgd3NnaV9jb25uZWN0aW9uX2Ryb3Aoc2VsZiwgZXhjZSwgZW52aXJvbj1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRlIHRoaXMgaWYgeW91J3JlIGludGVyZXN0ZWQgaW4gc29ja2V0IGV4Y2VwdGlvbnMsIHN1Y2gKKyAgICAgICAgYXMgd2hlbiB0aGUgdXNlciBjbGlja3MgJ0NhbmNlbCcgZHVyaW5nIGEgZmlsZSBkb3dubG9hZC4KKyAgICAgICAgIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiB3c2dpX2V4ZWN1dGUoc2VsZiwgZW52aXJvbj1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIEludm9rZSB0aGUgc2VydmVyJ3MgYGB3c2dpX2FwcGxpY2F0aW9uYGAuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYud3NnaV9zZXR1cChlbnZpcm9uKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuc2VydmVyLndzZ2lfYXBwbGljYXRpb24oc2VsZi53c2dpX2Vudmlyb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYud3NnaV9zdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBmb3IgY2h1bmsgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBzZWxmLndzZ2lfd3JpdGVfY2h1bmsoY2h1bmspCisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYud3NnaV9oZWFkZXJzX3NlbnQ6CisgICAgICAgICAgICAgICAgICAgIHNlbGYud3NnaV93cml0ZV9jaHVuaygnJykKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihyZXN1bHQsJ2Nsb3NlJyk6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5jbG9zZSgpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gTm9uZQorICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGV4Y2U6CisgICAgICAgICAgICBzZWxmLndzZ2lfY29ubmVjdGlvbl9kcm9wKGV4Y2UsIGVudmlyb24pCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgaWYgbm90IHNlbGYud3NnaV9oZWFkZXJzX3NlbnQ6CisgICAgICAgICAgICAgICAgZXJyb3JfbXNnID0gIkludGVybmFsIFNlcnZlciBFcnJvclxuIgorICAgICAgICAgICAgICAgIHNlbGYud3NnaV9jdXJyX2hlYWRlcnMgPSAoCisgICAgICAgICAgICAgICAgICAgICc1MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKSwKKyAgICAgICAgICAgICAgICAgICAgICgnQ29udGVudC1sZW5ndGgnLCBzdHIobGVuKGVycm9yX21zZykpKV0pCisgICAgICAgICAgICAgICAgc2VsZi53c2dpX3dyaXRlX2NodW5rKCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcbiIpCisgICAgICAgICAgICByYWlzZQorCisjCisjIFNTTCBGdW5jdGlvbmFsaXR5CisjCisjIFRoaXMgaW1wbGVtZW50YXRpb24gd2FzIG1vdGl2YXRlZCBieSBTZWJhc3RpZW4gTWFydGluaSdzIFNTTCBleGFtcGxlCisjIGh0dHA6Ly9hc3BuLmFjdGl2ZXN0YXRlLmNvbS9BU1BOL0Nvb2tib29rL1B5dGhvbi9SZWNpcGUvNDQyNDczCisjCit0cnk6CisgICAgZnJvbSBPcGVuU1NMIGltcG9ydCBTU0wsIHRzYWZlCisgICAgU29ja2V0RXJyb3JzID0gKHNvY2tldC5lcnJvciwgU1NMLlplcm9SZXR1cm5FcnJvciwgU1NMLlN5c0NhbGxFcnJvcikKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIERvIG5vdCByZXF1aXJlIHB5T3BlblNTTCB0byBiZSBpbnN0YWxsZWQsIGJ1dCBkaXNhYmxlIFNTTAorICAgICMgZnVuY3Rpb25hbGl0eSBpbiB0aGF0IGNhc2UuCisgICAgU1NMID0gTm9uZQorICAgIFNvY2tldEVycm9ycyA9IChzb2NrZXQuZXJyb3IsKQorICAgIGNsYXNzIFNlY3VyZUhUVFBTZXJ2ZXIoSFRUUFNlcnZlcik6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXJ2ZXJfYWRkcmVzcywgUmVxdWVzdEhhbmRsZXJDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgIHNzbF9jb250ZXh0PU5vbmUsIHJlcXVlc3RfcXVldWVfc2l6ZT1Ob25lKToKKyAgICAgICAgICAgIGFzc2VydCBub3Qgc3NsX2NvbnRleHQsICJweU9wZW5TU0wgbm90IGluc3RhbGxlZCIKKyAgICAgICAgICAgIEhUVFBTZXJ2ZXIuX19pbml0X18oc2VsZiwgc2VydmVyX2FkZHJlc3MsIFJlcXVlc3RIYW5kbGVyQ2xhc3MpCisgICAgICAgICAgICBpZiByZXF1ZXN0X3F1ZXVlX3NpemU6CisgICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQubGlzdGVuKHJlcXVlc3RfcXVldWVfc2l6ZSkKK2Vsc2U6CisKKyAgICBjbGFzcyBfQ29ubkZpeGVyKG9iamVjdCk6CisgICAgICAgICIiIiB3cmFwcyBhIHNvY2tldCBjb25uZWN0aW9uIHNvIGl0IGltcGxlbWVudHMgbWFrZWZpbGUgIiIiCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uKToKKyAgICAgICAgICAgIHNlbGYuX19jb25uID0gY29ubgorICAgICAgICBkZWYgbWFrZWZpbGUoc2VsZiwgbW9kZSwgYnVmc2l6ZSk6CisgICAgICAgICAgICByZXR1cm4gc29ja2V0Ll9maWxlb2JqZWN0KHNlbGYuX19jb25uLCBtb2RlLCBidWZzaXplKQorICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cmliKToKKyAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYuX19jb25uLCBhdHRyaWIpCisKKyAgICBjbGFzcyBTZWN1cmVIVFRQU2VydmVyKEhUVFBTZXJ2ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgUHJvdmlkZXMgU1NMIHNlcnZlciBmdW5jdGlvbmFsaXR5IG9uIHRvcCBvZiB0aGUgQmFzZUhUVFBTZXJ2ZXIKKyAgICAgICAgYnkgb3ZlcnJpZGluZyBfcHJpdmF0ZV8gbWVtYmVycyBvZiBQeXRob24ncyBzdGFuZGFyZAorICAgICAgICBkaXN0cmlidXRpb24uIFRoZSBpbnRlcmZhY2UgZm9yIHRoaXMgaW5zdGFuY2Ugb25seSBjaGFuZ2VzIGJ5CisgICAgICAgIGFkZGluZyBhIGFuIG9wdGlvbmFsIHNzbF9jb250ZXh0IGF0dHJpYnV0ZSB0byB0aGUgY29uc3RydWN0b3I6CisKKyAgICAgICAgICAgICAgY250eCA9IFNTTC5Db250ZXh0KFNTTC5TU0x2MjNfTUVUSE9EKQorICAgICAgICAgICAgICBjbnR4LnVzZV9wcml2YXRla2V5X2ZpbGUoImhvc3QucGVtIikKKyAgICAgICAgICAgICAgY250eC51c2VfY2VydGlmaWNhdGVfZmlsZSgiaG9zdC5wZW0iKQorCisgICAgICAgICIiIgorCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXJ2ZXJfYWRkcmVzcywgUmVxdWVzdEhhbmRsZXJDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgIHNzbF9jb250ZXh0PU5vbmUsIHJlcXVlc3RfcXVldWVfc2l6ZT1Ob25lKToKKyAgICAgICAgICAgICMgVGhpcyBvdmVycmlkZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIF9faW5pdF9fIGluIHB5dGhvbidzCisgICAgICAgICAgICAjIFNvY2tldFNlcnZlci5UQ1BTZXJ2ZXIgKHdoaWNoIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIKKyAgICAgICAgICAgICMgZG9lcyBub3Qgb3ZlcnJpZGUsIHRoYW5rZnVsbHkpLgorICAgICAgICAgICAgSFRUUFNlcnZlci5fX2luaXRfXyhzZWxmLCBzZXJ2ZXJfYWRkcmVzcywgUmVxdWVzdEhhbmRsZXJDbGFzcykKKyAgICAgICAgICAgIHNlbGYuc29ja2V0ID0gc29ja2V0LnNvY2tldChzZWxmLmFkZHJlc3NfZmFtaWx5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0X3R5cGUpCisgICAgICAgICAgICBzZWxmLnNzbF9jb250ZXh0ID0gc3NsX2NvbnRleHQKKyAgICAgICAgICAgIGlmIHNzbF9jb250ZXh0OgorICAgICAgICAgICAgICAgIGNsYXNzIFRTYWZlQ29ubmVjdGlvbih0c2FmZS5Db25uZWN0aW9uKToKKyAgICAgICAgICAgICAgICAgICAgZGVmIHNldHRpbWVvdXQoc2VsZiwgKmFyZ3MpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9jay5hY3F1aXJlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fc3NsX2Nvbm4uc2V0dGltZW91dCgqYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9jay5yZWxlYXNlKCkKKyAgICAgICAgICAgICAgICAgICAgZGVmIGdldHRpbWVvdXQoc2VsZik6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2NrLmFjcXVpcmUoKQorICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9zc2xfY29ubi5nZXR0aW1lb3V0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9jay5yZWxlYXNlKCkKKyAgICAgICAgICAgICAgICBzZWxmLnNvY2tldCA9IFRTYWZlQ29ubmVjdGlvbihzc2xfY29udGV4dCwgc2VsZi5zb2NrZXQpCisgICAgICAgICAgICBzZWxmLnNlcnZlcl9iaW5kKCkKKyAgICAgICAgICAgIGlmIHJlcXVlc3RfcXVldWVfc2l6ZToKKyAgICAgICAgICAgICAgICBzZWxmLnNvY2tldC5saXN0ZW4ocmVxdWVzdF9xdWV1ZV9zaXplKQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfYWN0aXZhdGUoKQorCisgICAgICAgIGRlZiBnZXRfcmVxdWVzdChzZWxmKToKKyAgICAgICAgICAgICMgVGhlIGRlZmF1bHQgU1NMIHJlcXVlc3Qgb2JqZWN0IGRvZXMgbm90IHNlZW0gdG8gaGF2ZSBhCisgICAgICAgICAgICAjIGBgbWFrZWZpbGUobW9kZSwgYnVmc2l6ZSlgYCBtZXRob2QgYXMgZXhwZWN0ZWQgYnkKKyAgICAgICAgICAgICMgU29ja2V0c2VydmVyLlN0cmVhbVJlcXVlc3RIYW5kbGVyLgorICAgICAgICAgICAgKGNvbm4sIGluZm8pID0gc2VsZi5zb2NrZXQuYWNjZXB0KCkKKyAgICAgICAgICAgIGlmIHNlbGYuc3NsX2NvbnRleHQ6CisgICAgICAgICAgICAgICAgY29ubiA9IF9Db25uRml4ZXIoY29ubikKKyAgICAgICAgICAgIHJldHVybiAoY29ubiwgaW5mbykKKworICAgIGRlZiBfYXV0b19zc2xfY29udGV4dCgpOgorICAgICAgICBpbXBvcnQgT3BlblNTTCwgcmFuZG9tCisgICAgICAgIHBrZXkgPSBPcGVuU1NMLmNyeXB0by5QS2V5KCkKKyAgICAgICAgcGtleS5nZW5lcmF0ZV9rZXkoT3BlblNTTC5jcnlwdG8uVFlQRV9SU0EsIDc2OCkKKworICAgICAgICBjZXJ0ID0gT3BlblNTTC5jcnlwdG8uWDUwOSgpCisKKyAgICAgICAgY2VydC5zZXRfc2VyaWFsX251bWJlcihyYW5kb20ucmFuZGludCgwLCBzeXMubWF4aW50KSkKKyAgICAgICAgY2VydC5nbXRpbWVfYWRqX25vdEJlZm9yZSgwKQorICAgICAgICBjZXJ0LmdtdGltZV9hZGpfbm90QWZ0ZXIoNjAgKiA2MCAqIDI0ICogMzY1KQorICAgICAgICBjZXJ0LmdldF9zdWJqZWN0KCkuQ04gPSAnKicKKyAgICAgICAgY2VydC5nZXRfc3ViamVjdCgpLk8gPSAnRHVtbXkgQ2VydGlmaWNhdGUnCisgICAgICAgIGNlcnQuZ2V0X2lzc3VlcigpLkNOID0gJ1VudHJ1c3RlZCBBdXRob3JpdHknCisgICAgICAgIGNlcnQuZ2V0X2lzc3VlcigpLk8gPSAnU2VsZi1TaWduZWQnCisgICAgICAgIGNlcnQuc2V0X3B1YmtleShwa2V5KQorICAgICAgICBjZXJ0LnNpZ24ocGtleSwgJ21kNScpCisKKyAgICAgICAgY3R4ID0gU1NMLkNvbnRleHQoU1NMLlNTTHYyM19NRVRIT0QpCisgICAgICAgIGN0eC51c2VfcHJpdmF0ZWtleShwa2V5KQorICAgICAgICBjdHgudXNlX2NlcnRpZmljYXRlKGNlcnQpCisKKyAgICAgICAgcmV0dXJuIGN0eAorCitjbGFzcyBXU0dJSGFuZGxlcihXU0dJSGFuZGxlck1peGluLCBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyKToKKyAgICAiIiIKKyAgICBBIFdTR0kgaGFuZGxlciB0aGF0IG92ZXJyaWRlcyBQT1NULCBHRVQgYW5kIEhFQUQgdG8gZGVsZWdhdGUKKyAgICByZXF1ZXN0cyB0byB0aGUgc2VydmVyJ3MgYGB3c2dpX2FwcGxpY2F0aW9uYGAuCisgICAgIiIiCisgICAgc2VydmVyX3ZlcnNpb24gPSAnUGFzdGVXU0dJU2VydmVyLycgKyBfX3ZlcnNpb25fXworCisgICAgZGVmIGhhbmRsZV9vbmVfcmVxdWVzdChzZWxmKToKKyAgICAgICAgIiIiSGFuZGxlIGEgc2luZ2xlIEhUVFAgcmVxdWVzdC4KKworICAgICAgICBZb3Ugbm9ybWFsbHkgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZDsgc2VlIHRoZSBjbGFzcworICAgICAgICBfX2RvY19fIHN0cmluZyBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGhhbmRsZSBzcGVjaWZpYyBIVFRQCisgICAgICAgIGNvbW1hbmRzIHN1Y2ggYXMgR0VUIGFuZCBQT1NULgorCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnJhd19yZXF1ZXN0bGluZSA9IHNlbGYucmZpbGUucmVhZGxpbmUoKQorICAgICAgICBpZiBub3Qgc2VsZi5yYXdfcmVxdWVzdGxpbmU6CisgICAgICAgICAgICBzZWxmLmNsb3NlX2Nvbm5lY3Rpb24gPSAxCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgbm90IHNlbGYucGFyc2VfcmVxdWVzdCgpOiAjIEFuIGVycm9yIGNvZGUgaGFzIGJlZW4gc2VudCwganVzdCBleGl0CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi53c2dpX2V4ZWN1dGUoKQorCisgICAgZGVmIGhhbmRsZShzZWxmKToKKyAgICAgICAgIyBkb24ndCBib3RoZXIgbG9nZ2luZyBkaXNjb25uZWN0cyB3aGlsZSBoYW5kbGluZyBhIHJlcXVlc3QKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGUoc2VsZikKKyAgICAgICAgZXhjZXB0IFNvY2tldEVycm9ycyBhcyBleGNlOgorICAgICAgICAgICAgc2VsZi53c2dpX2Nvbm5lY3Rpb25fZHJvcChleGNlKQorCisgICAgZGVmIGFkZHJlc3Nfc3RyaW5nKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIGNsaWVudCBhZGRyZXNzIGZvcm1hdHRlZCBmb3IgbG9nZ2luZy4KKworICAgICAgICBUaGlzIGlzIG92ZXJyaWRkZW4gc28gdGhhdCBubyBob3N0bmFtZSBsb29rdXAgaXMgZG9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiAnJworCitjbGFzcyBMaW1pdGVkTGVuZ3RoRmlsZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlLCBsZW5ndGgpOgorICAgICAgICBzZWxmLmZpbGUgPSBmaWxlCisgICAgICAgIHNlbGYubGVuZ3RoID0gbGVuZ3RoCisgICAgICAgIHNlbGYuX2NvbnN1bWVkID0gMAorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuZmlsZSwgJ3NlZWsnKToKKyAgICAgICAgICAgIHNlbGYuc2VlayA9IHNlbGYuX3NlZWsKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgYmFzZV9yZXByID0gcmVwcihzZWxmLmZpbGUpCisgICAgICAgIHJldHVybiBiYXNlX3JlcHJbOi0xXSArICcgbGVuZ3RoPSVzPicgJSBzZWxmLmxlbmd0aAorCisgICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoPU5vbmUpOgorICAgICAgICBsZWZ0ID0gc2VsZi5sZW5ndGggLSBzZWxmLl9jb25zdW1lZAorICAgICAgICBpZiBsZW5ndGggaXMgTm9uZToKKyAgICAgICAgICAgIGxlbmd0aCA9IGxlZnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxlbmd0aCA9IG1pbihsZW5ndGgsIGxlZnQpCisgICAgICAgICMgbmV4dCB0d28gbGluZXMgYXJlIGhuZWNlc3Nhcnkgb25seSBpZiByZWFkKDApIGJsb2NrcworICAgICAgICBpZiBub3QgbGVmdDoKKyAgICAgICAgICAgIHJldHVybiAnJworICAgICAgICBkYXRhID0gc2VsZi5maWxlLnJlYWQobGVuZ3RoKQorICAgICAgICBzZWxmLl9jb25zdW1lZCArPSBsZW4oZGF0YSkKKyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIGRlZiByZWFkbGluZShzZWxmLCAqYXJncyk6CisgICAgICAgIG1heF9yZWFkID0gc2VsZi5sZW5ndGggLSBzZWxmLl9jb25zdW1lZAorICAgICAgICBpZiBsZW4oYXJncyk6CisgICAgICAgICAgICBtYXhfcmVhZCA9IG1pbihhcmdzWzBdLCBtYXhfcmVhZCkKKyAgICAgICAgZGF0YSA9IHNlbGYuZmlsZS5yZWFkbGluZShtYXhfcmVhZCkKKyAgICAgICAgc2VsZi5fY29uc3VtZWQgKz0gbGVuKGRhdGEpCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBkZWYgcmVhZGxpbmVzKHNlbGYsIGhpbnQ9Tm9uZSk6CisgICAgICAgIGRhdGEgPSBzZWxmLmZpbGUucmVhZGxpbmVzKGhpbnQpCisgICAgICAgIGZvciBjaHVuayBpbiBkYXRhOgorICAgICAgICAgICAgc2VsZi5fY29uc3VtZWQgKz0gbGVuKGNodW5rKQorICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIGlmIHNlbGYubGVuZ3RoIC0gc2VsZi5fY29uc3VtZWQgPD0gMDoKKyAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KKyAgICAgICAgcmV0dXJuIHNlbGYucmVhZGxpbmUoKQorCisgICAgIyMgT3B0aW9uYWwgbWV0aG9kcyAjIworCisgICAgZGVmIF9zZWVrKHNlbGYsIHBsYWNlKToKKyAgICAgICAgc2VsZi5maWxlLnNlZWsocGxhY2UpCisgICAgICAgIHNlbGYuX2NvbnN1bWVkID0gcGxhY2UKKworICAgIGRlZiB0ZWxsKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuZmlsZSwgJ3RlbGwnKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmZpbGUudGVsbCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29uc3VtZWQKKworY2xhc3MgVGhyZWFkUG9vbChvYmplY3QpOgorICAgICIiIgorICAgIEdlbmVyaWMgdGhyZWFkIHBvb2wgd2l0aCBhIHF1ZXVlIG9mIGNhbGxhYmxlcyB0byBjb25zdW1lLgorCisgICAgS2VlcHMgYSBub3Rpb24gb2YgdGhlIHN0YXR1cyBvZiBpdHMgd29ya2VyIHRocmVhZHM6CisKKyAgICBpZGxlOiB3b3JrZXIgdGhyZWFkIHdpdGggbm90aGluZyB0byBkbworCisgICAgYnVzeTogd29ya2VyIHRocmVhZCBkb2luZyBpdHMgam9iCisKKyAgICBodW5nOiB3b3JrZXIgdGhyZWFkIHRoYXQncyBiZWVuIGRvaW5nIGEgam9iIGZvciB0b28gbG9uZworCisgICAgZHlpbmc6IGEgaHVuZyB0aHJlYWQgdGhhdCBoYXMgYmVlbiBraWxsZWQsIGJ1dCBoYXNuJ3QgZGllZCBxdWl0ZQorICAgIHlldC4KKworICAgIHpvbWJpZTogd2hhdCB3YXMgYSB3b3JrZXIgdGhyZWFkIHRoYXQgd2UndmUgdHJpZWQgdG8ga2lsbCBidXQKKyAgICBpc24ndCBkZWFkIHlldC4KKworICAgIEF0IGFueSB0aW1lIHlvdSBjYW4gY2FsbCB0cmFja190aHJlYWRzLCB0byBnZXQgYSBkaWN0aW9uYXJ5IHdpdGgKKyAgICB0aGVzZSBrZXlzIGFuZCBsaXN0cyBvZiB0aHJlYWRfaWRzIHRoYXQgZmFsbCBpbiB0aGF0IHN0YXR1cy4gIEFsbAorICAgIGtleXMgd2lsbCBiZSBwcmVzZW50LCBldmVuIGlmIHRoZXkgcG9pbnQgdG8gZW10eSBsaXN0cy4KKworICAgIGh1bmcgdGhyZWFkcyBhcmUgdGhyZWFkcyB0aGF0IGhhdmUgYmVlbiBidXN5IG1vcmUgdGhhbgorICAgIGh1bmdfdGhyZWFkX2xpbWl0IHNlY29uZHMuICBIdW5nIHRocmVhZHMgYXJlIGtpbGxlZCB3aGVuIHRoZXkgbGl2ZQorICAgIGxvbmdlciB0aGFuIGtpbGxfdGhyZWFkX2xpbWl0IHNlY29uZHMuICBBIHRocmVhZCBpcyB0aGVuCisgICAgY29uc2lkZXJlZCBkeWluZyBmb3IgZHlpbmdfbGltaXQgc2Vjb25kcywgaWYgaXQgaXMgc3RpbGwgYWxpdmUKKyAgICBhZnRlciB0aGF0IGl0IGlzIGNvbnNpZGVyZWQgYSB6b21iaWUuCisKKyAgICBXaGVuIHRoZXJlIGFyZSBubyBpZGxlIHdvcmtlcnMgYW5kIGEgcmVxdWVzdCBjb21lcyBpbiwgYW5vdGhlcgorICAgIHdvcmtlciAqbWF5KiBiZSBzcGF3bmVkLiAgSWYgdGhlcmUgYXJlIGxlc3MgdGhhbiBzcGF3bl9pZl91bmRlcgorICAgIHRocmVhZHMgaW4gdGhlIGJ1c3kgc3RhdGUsIGFub3RoZXIgdGhyZWFkIHdpbGwgYmUgc3Bhd25lZC4gIFNvIGlmCisgICAgdGhlIGxpbWl0IGlzIDUsIGFuZCB0aGVyZSBhcmUgNCBodW5nIHRocmVhZHMgYW5kIDYgYnVzeSB0aHJlYWRzLAorICAgIG5vIHRocmVhZCB3aWxsIGJlIHNwYXduZWQuCisKKyAgICBXaGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gbWF4X3pvbWJpZV90aHJlYWRzX2JlZm9yZV9kaWUgem9tYmllCisgICAgdGhyZWFkcywgYSBTeXN0ZW1FeGl0IGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCwgc3RvcHBpbmcgdGhlCisgICAgc2VydmVyLiAgVXNlIDAgb3IgTm9uZSB0byBuZXZlciByYWlzZSB0aGlzIGV4Y2VwdGlvbi4gIFpvbWJpZQorICAgIHRocmVhZHMgKnNob3VsZCogZ2V0IGNsZWFuZWQgdXAsIGJ1dCBraWxsaW5nIHRocmVhZHMgaXMgbm8KKyAgICBuZWNlc3NhcmlseSByZWxpYWJsZS4gIFRoaXMgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0LCBzaW5jZSBpdCBpcworICAgIG9ubHkgYSBnb29kIGlkZWEgaWYgeW91J3ZlIGRlcGxveWVkIHRoZSBzZXJ2ZXIgd2l0aCBzb21lIHByb2Nlc3MKKyAgICB3YXRjaGluZyBmcm9tIGFib3ZlIChzb21ldGhpbmcgc2ltaWxhciB0byBkYWVtb250b29scyBvciB6ZGFlbW9uKS4KKworICAgIEVhY2ggd29ya2VyIHRocmVhZCBvbmx5IHByb2Nlc3NlcyBgYG1heF9yZXF1ZXN0c2BgIHRhc2tzIGJlZm9yZSBpdAorICAgIGRpZXMgYW5kIHJlcGxhY2VzIGl0c2VsZiB3aXRoIGEgbmV3IHdvcmtlciB0aHJlYWQuCisgICAgIiIiCisKKworICAgIFNIVVRET1dOID0gb2JqZWN0KCkKKworICAgIGRlZiBfX2luaXRfXygKKyAgICAgICAgc2VsZiwgbndvcmtlcnMsIG5hbWU9IlRocmVhZFBvb2wiLCBkYWVtb249RmFsc2UsCisgICAgICAgIG1heF9yZXF1ZXN0cz0xMDAsICMgdGhyZWFkcyBhcmUga2lsbGVkIGFmdGVyIHRoaXMgbWFueSByZXF1ZXN0cworICAgICAgICBodW5nX3RocmVhZF9saW1pdD0zMCwgIyB3aGVuIGEgdGhyZWFkIGlzIG1hcmtlZCAiaHVuZyIKKyAgICAgICAga2lsbF90aHJlYWRfbGltaXQ9MTgwMCwgIyB3aGVuIHlvdSBraWxsIHRoYXQgaHVuZyB0aHJlYWQKKyAgICAgICAgZHlpbmdfbGltaXQ9MzAwLCAjIHNlY29uZHMgdGhhdCBhIGtpbGwgc2hvdWxkIHRha2UgdG8gZ28gaW50byBlZmZlY3QgKGxvbmdlciB0aGFuIHRoaXMgYW5kIHRoZSB0aHJlYWQgaXMgYSAiem9tYmllIikKKyAgICAgICAgc3Bhd25faWZfdW5kZXI9NSwgIyBzcGF3biBpZiB0aGVyZSdzIHRvbyBtYW55IGh1bmcgdGhyZWFkcworICAgICAgICBtYXhfem9tYmllX3RocmVhZHNfYmVmb3JlX2RpZT0wLCAjIHdoZW4gdG8gZ2l2ZSB1cCBvbiB0aGUgcHJvY2VzcworICAgICAgICBodW5nX2NoZWNrX3BlcmlvZD0xMDAsICMgZXZlcnkgMTAwIHJlcXVlc3RzIGNoZWNrIGZvciBodW5nIHdvcmtlcnMKKyAgICAgICAgbG9nZ2VyPU5vbmUsICMgUGxhY2UgdG8gbG9nIG1lc3NhZ2VzIHRvCisgICAgICAgIGVycm9yX2VtYWlsPU5vbmUsICMgUGVyc29uKHMpIHRvIG5vdGlmeSBpZiBzZXJpb3VzIHByb2JsZW0gb2NjdXJzCisgICAgICAgICk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgdGhyZWFkIHBvb2wgd2l0aCBgbndvcmtlcnNgIHdvcmtlciB0aHJlYWRzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5ud29ya2VycyA9IG53b3JrZXJzCisgICAgICAgIHNlbGYubWF4X3JlcXVlc3RzID0gbWF4X3JlcXVlc3RzCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5xdWV1ZSA9IHF1ZXVlLlF1ZXVlKCkKKyAgICAgICAgc2VsZi53b3JrZXJzID0gW10KKyAgICAgICAgc2VsZi5kYWVtb24gPSBkYWVtb24KKyAgICAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CisgICAgICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigncGFzdGUuaHR0cHNlcnZlci5UaHJlYWRQb29sJykKKyAgICAgICAgaWYgaXNpbnN0YW5jZShsb2dnZXIsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIobG9nZ2VyKQorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLmVycm9yX2VtYWlsID0gZXJyb3JfZW1haWwKKyAgICAgICAgc2VsZi5fd29ya2VyX2NvdW50ID0gY291bnQoKQorCisgICAgICAgIGFzc2VydCAobm90IGtpbGxfdGhyZWFkX2xpbWl0CisgICAgICAgICAgICAgICAgb3Iga2lsbF90aHJlYWRfbGltaXQgPj0gaHVuZ190aHJlYWRfbGltaXQpLCAoCisgICAgICAgICAgICAia2lsbF90aHJlYWRfbGltaXQgKCVzKSBzaG91bGQgYmUgaGlnaGVyIHRoYW4gaHVuZ190aHJlYWRfbGltaXQgKCVzKSIKKyAgICAgICAgICAgICUgKGtpbGxfdGhyZWFkX2xpbWl0LCBodW5nX3RocmVhZF9saW1pdCkpCisgICAgICAgIGlmIG5vdCBraWxsdGhyZWFkOgorICAgICAgICAgICAga2lsbF90aHJlYWRfbGltaXQgPSAwCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKAorICAgICAgICAgICAgICAgICJDYW5ub3QgdXNlIGtpbGxfdGhyZWFkX2xpbWl0IGFzIGN0eXBlcy9raWxsdGhyZWFkIGlzIG5vdCBhdmFpbGFibGUiKQorICAgICAgICBzZWxmLmtpbGxfdGhyZWFkX2xpbWl0ID0ga2lsbF90aHJlYWRfbGltaXQKKyAgICAgICAgc2VsZi5keWluZ19saW1pdCA9IGR5aW5nX2xpbWl0CisgICAgICAgIHNlbGYuaHVuZ190aHJlYWRfbGltaXQgPSBodW5nX3RocmVhZF9saW1pdAorICAgICAgICBhc3NlcnQgc3Bhd25faWZfdW5kZXIgPD0gbndvcmtlcnMsICgKKyAgICAgICAgICAgICJzcGF3bl9pZl91bmRlciAoJXMpIHNob3VsZCBiZSBsZXNzIHRoYW4gbndvcmtlcnMgKCVzKSIKKyAgICAgICAgICAgICUgKHNwYXduX2lmX3VuZGVyLCBud29ya2VycykpCisgICAgICAgIHNlbGYuc3Bhd25faWZfdW5kZXIgPSBzcGF3bl9pZl91bmRlcgorICAgICAgICBzZWxmLm1heF96b21iaWVfdGhyZWFkc19iZWZvcmVfZGllID0gbWF4X3pvbWJpZV90aHJlYWRzX2JlZm9yZV9kaWUKKyAgICAgICAgc2VsZi5odW5nX2NoZWNrX3BlcmlvZCA9IGh1bmdfY2hlY2tfcGVyaW9kCisgICAgICAgIHNlbGYucmVxdWVzdHNfc2luY2VfbGFzdF9odW5nX2NoZWNrID0gMAorICAgICAgICAjIFVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGF0IHdvcmtlciBpcyBkb2luZyB3aGF0OgorICAgICAgICBzZWxmLndvcmtlcl90cmFja2VyID0ge30KKyAgICAgICAgIyBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHdvcmtlcnMgbm90IGRvaW5nIGFueXRoaW5nOgorICAgICAgICBzZWxmLmlkbGVfd29ya2VycyA9IFtdCisgICAgICAgICMgVXNlZCB0byBrZWVwIHRyYWNrIG9mIHRocmVhZHMgdGhhdCBoYXZlIGJlZW4ga2lsbGVkLCBidXQgbWF5YmUgYXJlbid0IGRlYWQgeWV0OgorICAgICAgICBzZWxmLmR5aW5nX3RocmVhZHMgPSB7fQorICAgICAgICAjIFRoaXMgaXMgdXNlZCB0byB0cmFjayB3aGVuIHdlIGxhc3QgaGFkIHRvIGFkZCBpZGxlIHdvcmtlcnM7CisgICAgICAgICMgd2Ugc2hvdWxkbid0IGN1bGwgZXh0cmEgd29ya2VycyB1bnRpbCBzb21lIHRpbWUgaGFzIHBhc3NlZAorICAgICAgICAjIChodW5nX3RocmVhZF9saW1pdCkgc2luY2Ugd29ya2VycyB3ZXJlIGFkZGVkOgorICAgICAgICBzZWxmLl9sYXN0X2FkZGVkX25ld19pZGxlX3dvcmtlcnMgPSAwCisgICAgICAgIGlmIG5vdCBkYWVtb246CisgICAgICAgICAgICBhdGV4aXQucmVnaXN0ZXIoc2VsZi5zaHV0ZG93bikKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5ud29ya2Vycyk6CisgICAgICAgICAgICBzZWxmLmFkZF93b3JrZXJfdGhyZWFkKG1lc3NhZ2U9J0luaXRpYWwgd29ya2VyIHBvb2wnKQorCisgICAgZGVmIGFkZF90YXNrKHNlbGYsIHRhc2spOgorICAgICAgICAiIiIKKyAgICAgICAgQWRkIGEgdGFzayB0byB0aGUgcXVldWUKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdBZGRlZCB0YXNrICglaSB0YXNrcyBxdWV1ZWQpJywgc2VsZi5xdWV1ZS5xc2l6ZSgpKQorICAgICAgICBpZiBzZWxmLmh1bmdfY2hlY2tfcGVyaW9kOgorICAgICAgICAgICAgc2VsZi5yZXF1ZXN0c19zaW5jZV9sYXN0X2h1bmdfY2hlY2sgKz0gMQorICAgICAgICAgICAgaWYgc2VsZi5yZXF1ZXN0c19zaW5jZV9sYXN0X2h1bmdfY2hlY2sgPiBzZWxmLmh1bmdfY2hlY2tfcGVyaW9kOgorICAgICAgICAgICAgICAgIHNlbGYucmVxdWVzdHNfc2luY2VfbGFzdF9odW5nX2NoZWNrID0gMAorICAgICAgICAgICAgICAgIHNlbGYua2lsbF9odW5nX3RocmVhZHMoKQorICAgICAgICBpZiBub3Qgc2VsZi5pZGxlX3dvcmtlcnMgYW5kIHNlbGYuc3Bhd25faWZfdW5kZXI6CisgICAgICAgICAgICAjIHNwYXduX2lmX3VuZGVyIGNhbiBjb21lIGludG8gZWZmZWN0Li4uCisgICAgICAgICAgICBidXN5ID0gMAorICAgICAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCdObyBpZGxlIHdvcmtlcnMgZm9yIHRhc2s7IGNoZWNraW5nIGlmIHdlIG5lZWQgdG8gbWFrZSBtb3JlIHdvcmtlcnMnKQorICAgICAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLndvcmtlcnM6CisgICAgICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIod29ya2VyLCAndGhyZWFkX2lkJyk6CisgICAgICAgICAgICAgICAgICAgICMgTm90IGluaXRpYWxpemVkCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgdGltZV9zdGFydGVkLCBpbmZvID0gc2VsZi53b3JrZXJfdHJhY2tlci5nZXQod29ya2VyLnRocmVhZF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9uZSwgTm9uZSkpCisgICAgICAgICAgICAgICAgaWYgdGltZV9zdGFydGVkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBpZiBub3cgLSB0aW1lX3N0YXJ0ZWQgPCBzZWxmLmh1bmdfdGhyZWFkX2xpbWl0OgorICAgICAgICAgICAgICAgICAgICAgICAgYnVzeSArPSAxCisgICAgICAgICAgICBpZiBidXN5IDwgc2VsZi5zcGF3bl9pZl91bmRlcjoKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKAorICAgICAgICAgICAgICAgICAgICAnTm8gaWRsZSB0YXNrcywgYW5kIG9ubHkgJXMgYnVzeSB0YXNrczsgYWRkaW5nICVzIG1vcmUgJworICAgICAgICAgICAgICAgICAgICAnd29ya2VycycsIGJ1c3ksIHNlbGYuc3Bhd25faWZfdW5kZXItYnVzeSkKKyAgICAgICAgICAgICAgICBzZWxmLl9sYXN0X2FkZGVkX25ld19pZGxlX3dvcmtlcnMgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuc3Bhd25faWZfdW5kZXIgLSBidXN5KToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGRfd29ya2VyX3RocmVhZChtZXNzYWdlPSdSZXNwb25zZSB0byBsYWNrIG9mIGlkbGUgd29ya2VycycpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAnTm8gZXh0cmEgd29ya2VycyBuZWVkZWQgKCVzIGJ1c3kgd29ya2VycyknLAorICAgICAgICAgICAgICAgICAgICBidXN5KQorICAgICAgICBpZiAobGVuKHNlbGYud29ya2VycykgPiBzZWxmLm53b3JrZXJzCisgICAgICAgICAgICBhbmQgbGVuKHNlbGYuaWRsZV93b3JrZXJzKSA+IDMKKyAgICAgICAgICAgIGFuZCB0aW1lLnRpbWUoKS1zZWxmLl9sYXN0X2FkZGVkX25ld19pZGxlX3dvcmtlcnMgPiBzZWxmLmh1bmdfdGhyZWFkX2xpbWl0KToKKyAgICAgICAgICAgICMgV2UndmUgc3Bhd25lZCB3b3JlcnMgaW4gdGhlIHBhc3QsIGJ1dCB0aGV5IGFyZW4ndCBuZWVkZWQKKyAgICAgICAgICAgICMgYW55bW9yZTsga2lsbCBvZmYgc29tZQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygKKyAgICAgICAgICAgICAgICAnQ3VsbGluZyAlcyBleHRyYSB3b3JrZXJzICglcyBpZGxlIHdvcmtlcnMgcHJlc2VudCknLAorICAgICAgICAgICAgICAgIGxlbihzZWxmLndvcmtlcnMpLXNlbGYubndvcmtlcnMsIGxlbihzZWxmLmlkbGVfd29ya2VycykpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAnSWRsZSB3b3JrZXJzOiAlcycsIHNlbGYuaWRsZV93b3JrZXJzKQorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHNlbGYud29ya2VycykgLSBzZWxmLm53b3JrZXJzKToKKyAgICAgICAgICAgICAgICBzZWxmLnF1ZXVlLnB1dChzZWxmLlNIVVRET1dOKQorICAgICAgICBzZWxmLnF1ZXVlLnB1dCh0YXNrKQorCisgICAgZGVmIHRyYWNrX3RocmVhZHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSBkaWN0IHN1bW1hcml6aW5nIHRoZSB0aHJlYWRzIGluIHRoZSBwb29sIChhcworICAgICAgICBkZXNjcmliZWQgaW4gdGhlIFRocmVhZFBvb2wgZG9jc3RyaW5nKS4KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGRpY3QoaWRsZT1bXSwgYnVzeT1bXSwgaHVuZz1bXSwgZHlpbmc9W10sIHpvbWJpZT1bXSkKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLndvcmtlcnM6CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cih3b3JrZXIsICd0aHJlYWRfaWQnKToKKyAgICAgICAgICAgICAgICAjIFRoZSB3b3JrZXIgaGFzbid0IGZ1bGx5IHN0YXJ0ZWQgdXAsIHdlIHNob3VsZCBqdXN0CisgICAgICAgICAgICAgICAgIyBpZ25vcmUgaXQKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgdGltZV9zdGFydGVkLCBpbmZvID0gc2VsZi53b3JrZXJfdHJhY2tlci5nZXQod29ya2VyLnRocmVhZF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb25lLCBOb25lKSkKKyAgICAgICAgICAgIGlmIHRpbWVfc3RhcnRlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBub3cgLSB0aW1lX3N0YXJ0ZWQgPiBzZWxmLmh1bmdfdGhyZWFkX2xpbWl0OgorICAgICAgICAgICAgICAgICAgICByZXN1bHRbJ2h1bmcnXS5hcHBlbmQod29ya2VyKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdFsnYnVzeSddLmFwcGVuZCh3b3JrZXIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdFsnaWRsZSddLmFwcGVuZCh3b3JrZXIpCisgICAgICAgIGZvciB0aHJlYWRfaWQsICh0aW1lX2tpbGxlZCwgd29ya2VyKSBpbiBzZWxmLmR5aW5nX3RocmVhZHMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRocmVhZF9leGlzdHModGhyZWFkX2lkKToKKyAgICAgICAgICAgICAgICAjIEN1bGwgZHlpbmcgdGhyZWFkcyB0aGF0IGFyZSBhY3R1YWxseSBkZWFkIGFuZCBnb25lCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnS2lsbGVkIHRocmVhZCAlcyBubyBsb25nZXIgYXJvdW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZF9pZCkKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGRlbCBzZWxmLmR5aW5nX3RocmVhZHNbdGhyZWFkX2lkXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBub3cgLSB0aW1lX2tpbGxlZCA+IHNlbGYuZHlpbmdfbGltaXQ6CisgICAgICAgICAgICAgICAgcmVzdWx0Wyd6b21iaWUnXS5hcHBlbmQod29ya2VyKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXN1bHRbJ2R5aW5nJ10uYXBwZW5kKHdvcmtlcikKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIGtpbGxfd29ya2VyKHNlbGYsIHRocmVhZF9pZCk6CisgICAgICAgICIiIgorICAgICAgICBSZW1vdmVzIHRoZSB3b3JrZXIgd2l0aCB0aGUgZ2l2ZW4gdGhyZWFkX2lkIGZyb20gdGhlIHBvb2wsIGFuZAorICAgICAgICByZXBsYWNlcyBpdCB3aXRoIGEgbmV3IHdvcmtlciB0aHJlYWQuCisKKyAgICAgICAgVGhpcyBzaG91bGQgb25seSBiZSBkb25lIGZvciBtaXMtYmVoYXZpbmcgd29ya2Vycy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGtpbGx0aHJlYWQgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKKyAgICAgICAgICAgICAgICAiQ2Fubm90IGtpbGwgd29ya2VyOyBraWxsdGhyZWFkL2N0eXBlcyBub3QgYXZhaWxhYmxlIikKKyAgICAgICAgdGhyZWFkX29iaiA9IHRocmVhZGluZy5fYWN0aXZlLmdldCh0aHJlYWRfaWQpCisgICAgICAgIGtpbGx0aHJlYWQuYXN5bmNfcmFpc2UodGhyZWFkX2lkLCBTeXN0ZW1FeGl0KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWwgc2VsZi53b3JrZXJfdHJhY2tlclt0aHJlYWRfaWRdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnS2lsbGluZyB0aHJlYWQgJXMnLCB0aHJlYWRfaWQpCisgICAgICAgIGlmIHRocmVhZF9vYmogaW4gc2VsZi53b3JrZXJzOgorICAgICAgICAgICAgc2VsZi53b3JrZXJzLnJlbW92ZSh0aHJlYWRfb2JqKQorICAgICAgICBzZWxmLmR5aW5nX3RocmVhZHNbdGhyZWFkX2lkXSA9ICh0aW1lLnRpbWUoKSwgdGhyZWFkX29iaikKKyAgICAgICAgc2VsZi5hZGRfd29ya2VyX3RocmVhZChtZXNzYWdlPSdSZXBsYWNlbWVudCBmb3Iga2lsbGVkIHRocmVhZCAlcycgJSB0aHJlYWRfaWQpCisKKyAgICBkZWYgdGhyZWFkX2V4aXN0cyhzZWxmLCB0aHJlYWRfaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0cnVlIGlmIGEgdGhyZWFkIHdpdGggdGhpcyBpZCBpcyBzdGlsbCBydW5uaW5nCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gdGhyZWFkX2lkIGluIHRocmVhZGluZy5fYWN0aXZlCisKKyAgICBkZWYgYWRkX3dvcmtlcl90aHJlYWQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgaW5kZXggPSBzaXgubmV4dChzZWxmLl93b3JrZXJfY291bnQpCisgICAgICAgIHdvcmtlciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYud29ya2VyX3RocmVhZF9jYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MsIGt3YXJncz1rd2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0oIndvcmtlciAlZCIgJSBpbmRleCkpCisgICAgICAgIHdvcmtlci5zZXREYWVtb24oc2VsZi5kYWVtb24pCisgICAgICAgIHdvcmtlci5zdGFydCgpCisKKyAgICBkZWYga2lsbF9odW5nX3RocmVhZHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUcmllcyB0byBraWxsIGFueSBodW5nIHRocmVhZHMKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmtpbGxfdGhyZWFkX2xpbWl0OgorICAgICAgICAgICAgIyBObyBraWxsaW5nIHNob3VsZCBvY2N1cgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG5vdyA9IHRpbWUudGltZSgpCisgICAgICAgIG1heF90aW1lID0gMAorICAgICAgICB0b3RhbF90aW1lID0gMAorICAgICAgICBpZGxlX3dvcmtlcnMgPSAwCisgICAgICAgIHN0YXJ0aW5nX3dvcmtlcnMgPSAwCisgICAgICAgIHdvcmtpbmdfd29ya2VycyA9IDAKKyAgICAgICAga2lsbGVkX3dvcmtlcnMgPSAwCisgICAgICAgIGZvciB3b3JrZXIgaW4gc2VsZi53b3JrZXJzOgorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIod29ya2VyLCAndGhyZWFkX2lkJyk6CisgICAgICAgICAgICAgICAgIyBOb3Qgc2V0dXAgeWV0CisgICAgICAgICAgICAgICAgc3RhcnRpbmdfd29ya2VycyArPSAxCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRpbWVfc3RhcnRlZCwgaW5mbyA9IHNlbGYud29ya2VyX3RyYWNrZXIuZ2V0KHdvcmtlci50aHJlYWRfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9uZSwgTm9uZSkpCisgICAgICAgICAgICBpZiB0aW1lX3N0YXJ0ZWQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIE11c3QgYmUgaWRsZQorICAgICAgICAgICAgICAgIGlkbGVfd29ya2VycyArPSAxCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHdvcmtpbmdfd29ya2VycyArPSAxCisgICAgICAgICAgICBtYXhfdGltZSA9IG1heChtYXhfdGltZSwgbm93LXRpbWVfc3RhcnRlZCkKKyAgICAgICAgICAgIHRvdGFsX3RpbWUgKz0gbm93LXRpbWVfc3RhcnRlZAorICAgICAgICAgICAgaWYgbm93IC0gdGltZV9zdGFydGVkID4gc2VsZi5raWxsX3RocmVhZF9saW1pdDoKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKAorICAgICAgICAgICAgICAgICAgICAnVGhyZWFkICVzIGh1bmcgKHdvcmtpbmcgb24gdGFzayBmb3IgJWkgc2Vjb25kcyknLAorICAgICAgICAgICAgICAgICAgICB3b3JrZXIudGhyZWFkX2lkLCBub3cgLSB0aW1lX3N0YXJ0ZWQpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBpbXBvcnQgcHByaW50CisgICAgICAgICAgICAgICAgICAgIGluZm9fZGVzYyA9IHBwcmludC5wZm9ybWF0KGluZm8pCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICBvdXQgPSBzaXguU3RyaW5nSU8oKQorICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9b3V0KQorICAgICAgICAgICAgICAgICAgICBpbmZvX2Rlc2MgPSAnRXJyb3I6XG4lcycgJSBvdXQuZ2V0dmFsdWUoKQorICAgICAgICAgICAgICAgIHNlbGYubm90aWZ5X3Byb2JsZW0oCisgICAgICAgICAgICAgICAgICAgICJLaWxsaW5nIHdvcmtlciB0aHJlYWQgKGlkPSUodGhyZWFkX2lkKXMpIGJlY2F1c2UgaXQgaGFzIGJlZW4gXG4iCisgICAgICAgICAgICAgICAgICAgICJ3b3JraW5nIG9uIHRhc2sgZm9yICUodGltZSlzIHNlY29uZHMgKGxpbWl0IGlzICUobGltaXQpcylcbiIKKyAgICAgICAgICAgICAgICAgICAgIkluZm8gb24gdGFzazpcbiIKKyAgICAgICAgICAgICAgICAgICAgIiUoaW5mbylzIgorICAgICAgICAgICAgICAgICAgICAlIGRpY3QodGhyZWFkX2lkPXdvcmtlci50aHJlYWRfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lPW5vdyAtIHRpbWVfc3RhcnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0PXNlbGYua2lsbF90aHJlYWRfbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvPWluZm9fZGVzYykpCisgICAgICAgICAgICAgICAgc2VsZi5raWxsX3dvcmtlcih3b3JrZXIudGhyZWFkX2lkKQorICAgICAgICAgICAgICAgIGtpbGxlZF93b3JrZXJzICs9IDEKKyAgICAgICAgaWYgd29ya2luZ193b3JrZXJzOgorICAgICAgICAgICAgYXZlX3RpbWUgPSBmbG9hdCh0b3RhbF90aW1lKSAvIHdvcmtpbmdfd29ya2VycworICAgICAgICAgICAgYXZlX3RpbWUgPSAnJS4yZnNlYycgJSBhdmVfdGltZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXZlX3RpbWUgPSAnTi9BJworICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKAorICAgICAgICAgICAgImtpbGxfaHVuZ190aHJlYWRzIHN0YXR1czogJXMgdGhyZWFkcyAoJXMgd29ya2luZywgJXMgaWRsZSwgJXMgc3RhcnRpbmcpICIKKyAgICAgICAgICAgICJhdmUgdGltZSAlcywgbWF4IHRpbWUgJS4yZnNlYywga2lsbGVkICVzIHdvcmtlcnMiCisgICAgICAgICAgICAlIChpZGxlX3dvcmtlcnMgKyBzdGFydGluZ193b3JrZXJzICsgd29ya2luZ193b3JrZXJzLAorICAgICAgICAgICAgICAgd29ya2luZ193b3JrZXJzLCBpZGxlX3dvcmtlcnMsIHN0YXJ0aW5nX3dvcmtlcnMsCisgICAgICAgICAgICAgICBhdmVfdGltZSwgbWF4X3RpbWUsIGtpbGxlZF93b3JrZXJzKSkKKyAgICAgICAgc2VsZi5jaGVja19tYXhfem9tYmllcygpCisKKyAgICBkZWYgY2hlY2tfbWF4X3pvbWJpZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDaGVjayBpZiB3ZSd2ZSByZWFjaGVkIG1heF96b21iaWVfdGhyZWFkc19iZWZvcmVfZGllOyBpZiBzbworICAgICAgICB0aGVuIGtpbGwgdGhlIGVudGlyZSBwcm9jZXNzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYubWF4X3pvbWJpZV90aHJlYWRzX2JlZm9yZV9kaWU6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZm91bmQgPSBbXQorICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAgICBmb3IgdGhyZWFkX2lkLCAodGltZV9raWxsZWQsIHdvcmtlcikgaW4gc2VsZi5keWluZ190aHJlYWRzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi50aHJlYWRfZXhpc3RzKHRocmVhZF9pZCk6CisgICAgICAgICAgICAgICAgIyBDdWxsIGR5aW5nIHRocmVhZHMgdGhhdCBhcmUgYWN0dWFsbHkgZGVhZCBhbmQgZ29uZQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZGVsIHNlbGYuZHlpbmdfdGhyZWFkc1t0aHJlYWRfaWRdCisgICAgICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIG5vdyAtIHRpbWVfa2lsbGVkID4gc2VsZi5keWluZ19saW1pdDoKKyAgICAgICAgICAgICAgICBmb3VuZC5hcHBlbmQodGhyZWFkX2lkKQorICAgICAgICBpZiBmb3VuZDoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oJ0ZvdW5kICVzIHpvbWJpZSB0aHJlYWRzJywgZm91bmQpCisgICAgICAgIGlmIGxlbihmb3VuZCkgPiBzZWxmLm1heF96b21iaWVfdGhyZWFkc19iZWZvcmVfZGllOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZmF0YWwoCisgICAgICAgICAgICAgICAgJ0V4aXRpbmcgcHJvY2VzcyBiZWNhdXNlICVzIHpvbWJpZSB0aHJlYWRzIGlzIG1vcmUgdGhhbiAlcyBsaW1pdCcsCisgICAgICAgICAgICAgICAgbGVuKGZvdW5kKSwgc2VsZi5tYXhfem9tYmllX3RocmVhZHNfYmVmb3JlX2RpZSkKKyAgICAgICAgICAgIHNlbGYubm90aWZ5X3Byb2JsZW0oCisgICAgICAgICAgICAgICAgIkV4aXRpbmcgcHJvY2VzcyBiZWNhdXNlICUoZm91bmQpcyB6b21iaWUgdGhyZWFkcyAiCisgICAgICAgICAgICAgICAgIihtb3JlIHRoYW4gbGltaXQgb2YgJShsaW1pdClzKVxuIgorICAgICAgICAgICAgICAgICJCYWQgdGhyZWFkcyAoaWRzKTpcbiIKKyAgICAgICAgICAgICAgICAiICAlKGlkcylzXG4iCisgICAgICAgICAgICAgICAgJSBkaWN0KGZvdW5kPWxlbihmb3VuZCksCisgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0PXNlbGYubWF4X3pvbWJpZV90aHJlYWRzX2JlZm9yZV9kaWUsCisgICAgICAgICAgICAgICAgICAgICAgIGlkcz0iXG4gICIuam9pbihtYXAoc3RyLCBmb3VuZCkpKSwKKyAgICAgICAgICAgICAgICBzdWJqZWN0PSJQcm9jZXNzIHJlc3RhcnQgKHRvbyBtYW55IHpvbWJpZSB0aHJlYWRzKSIpCisgICAgICAgICAgICBzZWxmLnNodXRkb3duKDEwKQorICAgICAgICAgICAgcHJpbnQoJ1NodXR0aW5nIGRvd24nLCB0aHJlYWRpbmcuY3VycmVudFRocmVhZCgpKQorICAgICAgICAgICAgcmFpc2UgU2VydmVyRXhpdCgzKQorCisgICAgZGVmIHdvcmtlcl90aHJlYWRfY2FsbGJhY2soc2VsZiwgbWVzc2FnZT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFdvcmtlciB0aHJlYWQgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2QgdG8gZ2V0IGFuZCBwcm9jZXNzIHF1ZXVlZAorICAgICAgICBjYWxsYWJsZXMuCisgICAgICAgICIiIgorICAgICAgICB0aHJlYWRfb2JqID0gdGhyZWFkaW5nLmN1cnJlbnRUaHJlYWQoKQorICAgICAgICB0aHJlYWRfaWQgPSB0aHJlYWRfb2JqLnRocmVhZF9pZCA9IF90aHJlYWQuZ2V0X2lkZW50KCkKKyAgICAgICAgc2VsZi53b3JrZXJzLmFwcGVuZCh0aHJlYWRfb2JqKQorICAgICAgICBzZWxmLmlkbGVfd29ya2Vycy5hcHBlbmQodGhyZWFkX2lkKQorICAgICAgICByZXF1ZXN0c19wcm9jZXNzZWQgPSAwCisgICAgICAgIGFkZF9yZXBsYWNlbWVudF93b3JrZXIgPSBGYWxzZQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygnU3RhcnRlZCBuZXcgd29ya2VyICVzOiAlcycsIHRocmVhZF9pZCwgbWVzc2FnZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLm1heF9yZXF1ZXN0cyBhbmQgc2VsZi5tYXhfcmVxdWVzdHMgPCByZXF1ZXN0c19wcm9jZXNzZWQ6CisgICAgICAgICAgICAgICAgICAgICMgUmVwbGFjZSB0aGlzIHRocmVhZCB0aGVuIGRpZQorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygnVGhyZWFkICVzIHByb2Nlc3NlZCAlaSByZXF1ZXN0cyAobGltaXQgJXMpOyBzdG9wcGluZyB0aHJlYWQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHRocmVhZF9pZCwgcmVxdWVzdHNfcHJvY2Vzc2VkLCBzZWxmLm1heF9yZXF1ZXN0cykpCisgICAgICAgICAgICAgICAgICAgIGFkZF9yZXBsYWNlbWVudF93b3JrZXIgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgcnVubmFibGUgPSBzZWxmLnF1ZXVlLmdldCgpCisgICAgICAgICAgICAgICAgaWYgcnVubmFibGUgaXMgVGhyZWFkUG9vbC5TSFVURE9XTjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoJ1dvcmtlciAlcyBhc2tlZCB0byBTSFVURE9XTicsIHRocmVhZF9pZCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuaWRsZV93b3JrZXJzLnJlbW92ZSh0aHJlYWRfaWQpCisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBzZWxmLndvcmtlcl90cmFja2VyW3RocmVhZF9pZF0gPSBbdGltZS50aW1lKCksIE5vbmVdCisgICAgICAgICAgICAgICAgcmVxdWVzdHNfcHJvY2Vzc2VkICs9IDEKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bm5hYmxlKCkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICAgICAgIyBXZSBhcmUgbGF0ZXIgZ29pbmcgdG8gY2FsbCBzeXMuZXhjX2NsZWFyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAjIHJlbW92aW5nIGFsbCByZW1uYW50cyBvZiBhbnkgZXhjZXB0aW9uLCBzbworICAgICAgICAgICAgICAgICAgICAgICAgIyB3ZSBzaG91bGQgbG9nIGl0IG5vdy4gIEJ1dCBpZGVhbGx5IG5vCisgICAgICAgICAgICAgICAgICAgICAgICAjIGV4Y2VwdGlvbiBzaG91bGQgcmVhY2ggdGhpcyBsZXZlbAorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uIGluIHdvcmtlciAlcicgJSBydW5uYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgICAgICAgICBpZiB0aHJlYWRfaWQgaW4gc2VsZi5keWluZ190aHJlYWRzOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGF0IGxhc3QgZXhjZXB0aW9uIHdhcyBpbnRlbmRlZCB0byBraWxsIG1lCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbCBzZWxmLndvcmtlcl90cmFja2VyW3RocmVhZF9pZF0KKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgICAgICBpZiBzaXguUFkyOgorICAgICAgICAgICAgICAgICAgICAgICAgc3lzLmV4Y19jbGVhcigpCisgICAgICAgICAgICAgICAgc2VsZi5pZGxlX3dvcmtlcnMuYXBwZW5kKHRocmVhZF9pZCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi53b3JrZXJfdHJhY2tlclt0aHJlYWRfaWRdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuaWRsZV93b3JrZXJzLnJlbW92ZSh0aHJlYWRfaWQpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi53b3JrZXJzLnJlbW92ZSh0aHJlYWRfb2JqKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGRlbCBzZWxmLmR5aW5nX3RocmVhZHNbdGhyZWFkX2lkXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGlmIGFkZF9yZXBsYWNlbWVudF93b3JrZXI6CisgICAgICAgICAgICAgICAgc2VsZi5hZGRfd29ya2VyX3RocmVhZChtZXNzYWdlPSdWb2x1bnRhcnkgcmVwbGFjZW1lbnQgZm9yIHRocmVhZCAlcycgJSB0aHJlYWRfaWQpCisKKyAgICBkZWYgc2h1dGRvd24oc2VsZiwgZm9yY2VfcXVpdF90aW1lb3V0PTApOgorICAgICAgICAiIiIKKyAgICAgICAgU2h1dGRvd24gdGhlIHF1ZXVlIChhZnRlciBmaW5pc2hpbmcgYW55IHBlbmRpbmcgcmVxdWVzdHMpLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnU2h1dHRpbmcgZG93biB0aHJlYWRwb29sJykKKyAgICAgICAgIyBBZGQgYSBzaHV0ZG93biByZXF1ZXN0IGZvciBldmVyeSB3b3JrZXIKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHNlbGYud29ya2VycykpOgorICAgICAgICAgICAgc2VsZi5xdWV1ZS5wdXQoVGhyZWFkUG9vbC5TSFVURE9XTikKKyAgICAgICAgIyBXYWl0IGZvciBlYWNoIHRocmVhZCB0byB0ZXJtaW5hdGUKKyAgICAgICAgaHVuZ193b3JrZXJzID0gW10KKyAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLndvcmtlcnM6CisgICAgICAgICAgICB3b3JrZXIuam9pbigwLjUpCisgICAgICAgICAgICBpZiB3b3JrZXIuaXNBbGl2ZSgpOgorICAgICAgICAgICAgICAgIGh1bmdfd29ya2Vycy5hcHBlbmQod29ya2VyKQorICAgICAgICB6b21iaWVzID0gW10KKyAgICAgICAgZm9yIHRocmVhZF9pZCBpbiBzZWxmLmR5aW5nX3RocmVhZHM6CisgICAgICAgICAgICBpZiBzZWxmLnRocmVhZF9leGlzdHModGhyZWFkX2lkKToKKyAgICAgICAgICAgICAgICB6b21iaWVzLmFwcGVuZCh0aHJlYWRfaWQpCisgICAgICAgIGlmIGh1bmdfd29ya2VycyBvciB6b21iaWVzOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiJXMgd29ya2VycyBkaWRuJ3Qgc3RvcCBwcm9wZXJseSwgYW5kICVzIHpvbWJpZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oaHVuZ193b3JrZXJzKSwgbGVuKHpvbWJpZXMpKQorICAgICAgICAgICAgaWYgaHVuZ193b3JrZXJzOgorICAgICAgICAgICAgICAgIGZvciB3b3JrZXIgaW4gaHVuZ193b3JrZXJzOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmtpbGxfd29ya2VyKHdvcmtlci50aHJlYWRfaWQpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnV29ya2VycyBraWxsZWQgZm9yY2VmdWxseScpCisgICAgICAgICAgICBpZiBmb3JjZV9xdWl0X3RpbWVvdXQ6CisgICAgICAgICAgICAgICAgdGltZWRfb3V0ID0gRmFsc2UKKyAgICAgICAgICAgICAgICBuZWVkX2ZvcmNlX3F1aXQgPSBib29sKHpvbWJpZXMpCisgICAgICAgICAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLndvcmtlcnM6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCB0aW1lZF9vdXQgYW5kIHdvcmtlci5pc0FsaXZlKCk6CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lZF9vdXQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXIuam9pbihmb3JjZV9xdWl0X3RpbWVvdXQpCisgICAgICAgICAgICAgICAgICAgIGlmIHdvcmtlci5pc0FsaXZlKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiV29ya2VyICVzIHdvbid0IGRpZSIgJSB3b3JrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX2ZvcmNlX3F1aXQgPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgbmVlZF9mb3JjZV9xdWl0OgorICAgICAgICAgICAgICAgICAgICBpbXBvcnQgYXRleGl0CisgICAgICAgICAgICAgICAgICAgICMgUmVtb3ZlIHRoZSB0aHJlYWRpbmcgYXRleGl0IGNhbGxiYWNrCisgICAgICAgICAgICAgICAgICAgIGZvciBjYWxsYmFjayBpbiBsaXN0KGF0ZXhpdC5fZXhpdGhhbmRsZXJzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPSBnZXRhdHRyKGNhbGxiYWNrWzBdLCAnaW1fZnVuYycsIE5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgZnVuYzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYnMgPSBnZXRhdHRyKGZ1bmMsICdmdW5jX2dsb2JhbHMnLCB7fSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZCA9IGdsb2JzLmdldCgnX19uYW1lX18nKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbW9kID09ICd0aHJlYWRpbmcnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0ZXhpdC5fZXhpdGhhbmRsZXJzLnJlbW92ZShjYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgYXRleGl0Ll9ydW5fZXhpdGZ1bmNzKCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ0ZvcmNlZnVsbHkgZXhpdGluZyBwcm9jZXNzJykKKyAgICAgICAgICAgICAgICAgICAgb3MuX2V4aXQoMykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCdBbGwgd29ya2VycyBldmVudHVhbGx5IGtpbGxlZCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCdBbGwgd29ya2VycyBzdG9wcGVkJykKKworICAgIGRlZiBub3RpZnlfcHJvYmxlbShzZWxmLCBtc2csIHN1YmplY3Q9Tm9uZSwgc3Bhd25fdGhyZWFkPVRydWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2FsbGVkIHdoZW4gdGhlcmUncyBhIHN1YnN0YW50aWFsIHByb2JsZW0uICBtc2cgY29udGFpbnMgdGhlCisgICAgICAgIGJvZHkgb2YgdGhlIG5vdGlmaWNhdGlvbiwgc3ViamVjdCB0aGUgc3VtbWFyeS4KKworICAgICAgICBJZiBzcGF3bl90aHJlYWQgaXMgdHJ1ZSwgdGhlbiB0aGUgZW1haWwgd2lsbCBiZSBzZW5kIGluCisgICAgICAgIGFub3RoZXIgdGhyZWFkIChzbyB0aGlzIGRvZXNuJ3QgYmxvY2spLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuZXJyb3JfZW1haWw6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgc3Bhd25fdGhyZWFkOgorICAgICAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQoCisgICAgICAgICAgICAgICAgdGFyZ2V0PXNlbGYubm90aWZ5X3Byb2JsZW0sCisgICAgICAgICAgICAgICAgYXJncz0obXNnLCBzdWJqZWN0LCBGYWxzZSkpCisgICAgICAgICAgICB0LnN0YXJ0KCkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBmcm9tX2FkZHJlc3MgPSAnZXJyb3JzQGxvY2FsaG9zdCcKKyAgICAgICAgaWYgbm90IHN1YmplY3Q6CisgICAgICAgICAgICBzdWJqZWN0ID0gbXNnLnN0cmlwKCkuc3BsaXRsaW5lcygpWzBdCisgICAgICAgICAgICBzdWJqZWN0ID0gc3ViamVjdFs6NTBdCisgICAgICAgICAgICBzdWJqZWN0ID0gJ1todHRwIHRocmVhZHBvb2xdICVzJyAlIHN1YmplY3QKKyAgICAgICAgaGVhZGVycyA9IFsKKyAgICAgICAgICAgICJUbzogJXMiICUgc2VsZi5lcnJvcl9lbWFpbCwKKyAgICAgICAgICAgICJGcm9tOiAlcyIgJSBmcm9tX2FkZHJlc3MsCisgICAgICAgICAgICAiU3ViamVjdDogJXMiICUgc3ViamVjdCwKKyAgICAgICAgICAgIF0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3lzdGVtID0gJyAnLmpvaW4ob3MudW5hbWUoKSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgc3lzdGVtID0gJyh1bmtub3duKScKKyAgICAgICAgYm9keSA9ICgKKyAgICAgICAgICAgICJBbiBlcnJvciBoYXMgb2NjdXJyZWQgaW4gdGhlIHBhc3RlLmh0dHBzZXJ2ZXIuVGhyZWFkUG9vbFxuIgorICAgICAgICAgICAgIkVycm9yOlxuIgorICAgICAgICAgICAgIiAgJShtc2cpc1xuIgorICAgICAgICAgICAgIk9jY3VycmVkIGF0OiAlKHRpbWUpc1xuIgorICAgICAgICAgICAgIlBJRDogJShwaWQpc1xuIgorICAgICAgICAgICAgIlN5c3RlbTogJShzeXN0ZW0pc1xuIgorICAgICAgICAgICAgIlNlcnZlciAucHkgZmlsZTogJShmaWxlKXNcbiIKKyAgICAgICAgICAgICUgZGljdChtc2c9bXNnLAorICAgICAgICAgICAgICAgICAgIHRpbWU9dGltZS5zdHJmdGltZSgiJWMiKSwKKyAgICAgICAgICAgICAgICAgICBwaWQ9b3MuZ2V0cGlkKCksCisgICAgICAgICAgICAgICAgICAgc3lzdGVtPXN5c3RlbSwKKyAgICAgICAgICAgICAgICAgICBmaWxlPW9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXyksCisgICAgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgbWVzc2FnZSA9ICdcbicuam9pbihoZWFkZXJzKSArICJcblxuIiArIGJvZHkKKyAgICAgICAgaW1wb3J0IHNtdHBsaWIKKyAgICAgICAgc2VydmVyID0gc210cGxpYi5TTVRQKCdsb2NhbGhvc3QnKQorICAgICAgICBlcnJvcl9lbWFpbHMgPSBbCisgICAgICAgICAgICBlLnN0cmlwKCkgZm9yIGUgaW4gc2VsZi5lcnJvcl9lbWFpbC5zcGxpdCgiLCIpCisgICAgICAgICAgICBpZiBlLnN0cmlwKCldCisgICAgICAgIHNlcnZlci5zZW5kbWFpbChmcm9tX2FkZHJlc3MsIGVycm9yX2VtYWlscywgbWVzc2FnZSkKKyAgICAgICAgc2VydmVyLnF1aXQoKQorICAgICAgICBwcmludCgnZW1haWwgc2VudCB0bycsIGVycm9yX2VtYWlscywgbWVzc2FnZSkKKworY2xhc3MgVGhyZWFkUG9vbE1peEluKG9iamVjdCk6CisgICAgIiIiCisgICAgTWl4LWluIGNsYXNzIHRvIHByb2Nlc3MgcmVxdWVzdHMgZnJvbSBhIHRocmVhZCBwb29sCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG53b3JrZXJzLCBkYWVtb249RmFsc2UsICoqdGhyZWFkcG9vbF9vcHRpb25zKToKKyAgICAgICAgIyBDcmVhdGUgYW5kIHN0YXJ0IHRoZSB3b3JrZXJzCisgICAgICAgIHNlbGYucnVubmluZyA9IFRydWUKKyAgICAgICAgYXNzZXJ0IG53b3JrZXJzID4gMCwgIlRocmVhZFBvb2xNaXhJbiBzZXJ2ZXJzIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgd29ya2VyIgorICAgICAgICBzZWxmLnRocmVhZF9wb29sID0gVGhyZWFkUG9vbCgKKyAgICAgICAgICAgIG53b3JrZXJzLAorICAgICAgICAgICAgIlRocmVhZFBvb2xNaXhJbiBIVFRQIHNlcnZlciBvbiAlczolZCIKKyAgICAgICAgICAgICUgKHNlbGYuc2VydmVyX25hbWUsIHNlbGYuc2VydmVyX3BvcnQpLAorICAgICAgICAgICAgZGFlbW9uLAorICAgICAgICAgICAgKip0aHJlYWRwb29sX29wdGlvbnMpCisKKyAgICBkZWYgcHJvY2Vzc19yZXF1ZXN0KHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKToKKyAgICAgICAgIiIiCisgICAgICAgIFF1ZXVlIHRoZSByZXF1ZXN0IHRvIGJlIHByb2Nlc3NlZCBieSBvbiBvZiB0aGUgdGhyZWFkIHBvb2wgdGhyZWFkcworICAgICAgICAiIiIKKyAgICAgICAgIyBUaGlzIHNldHMgdGhlIHNvY2tldCB0byBibG9ja2luZyBtb2RlIChhbmQgbm8gdGltZW91dCkgc2luY2UgaXQKKyAgICAgICAgIyBtYXkgdGFrZSB0aGUgdGhyZWFkIHBvb2wgYSBsaXR0bGUgd2hpbGUgdG8gZ2V0IGJhY2sgdG8gaXQuIChUaGlzCisgICAgICAgICMgaXMgdGhlIGRlZmF1bHQgYnV0IHNpbmNlIHdlIHNldCBhIHRpbWVvdXQgb24gdGhlIHBhcmVudCBzb2NrZXQgc28KKyAgICAgICAgIyB0aGF0IHdlIGNhbiB0cmFwIGludGVycnVwdHMgd2UgbmVlZCB0byByZXN0b3JlIHRoaXMsLikKKyAgICAgICAgcmVxdWVzdC5zZXRibG9ja2luZygxKQorICAgICAgICAjIFF1ZXVlIHByb2Nlc3Npbmcgb2YgdGhlIHJlcXVlc3QKKyAgICAgICAgc2VsZi50aHJlYWRfcG9vbC5hZGRfdGFzaygKKyAgICAgICAgICAgICBsYW1iZGE6IHNlbGYucHJvY2Vzc19yZXF1ZXN0X2luX3RocmVhZChyZXF1ZXN0LCBjbGllbnRfYWRkcmVzcykpCisKKyAgICBkZWYgaGFuZGxlX2Vycm9yKHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKToKKyAgICAgICAgZXhjX2NsYXNzLCBleGMsIHRiID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgaWYgZXhjX2NsYXNzIGlzIFNlcnZlckV4aXQ6CisgICAgICAgICAgICAjIFRoaXMgaXMgYWN0dWFsbHkgYSByZXF1ZXN0IHRvIHN0b3AgdGhlIHNlcnZlcgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgcmV0dXJuIHN1cGVyKFRocmVhZFBvb2xNaXhJbiwgc2VsZikuaGFuZGxlX2Vycm9yKHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKQorCisgICAgZGVmIHByb2Nlc3NfcmVxdWVzdF9pbl90aHJlYWQoc2VsZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIHdvcmtlciB0aHJlYWQgc2hvdWxkIGNhbGwgYmFjayBoZXJlIHRvIGRvIHRoZSByZXN0IG9mIHRoZQorICAgICAgICByZXF1ZXN0IHByb2Nlc3NpbmcuIEVycm9yIGhhbmRsaW5nIG5vcm1hbGxlciBkb25lIGluICdoYW5kbGVfcmVxdWVzdCcKKyAgICAgICAgbXVzdCBiZSBkb25lIGhlcmUuCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmZpbmlzaF9yZXF1ZXN0KHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKQorICAgICAgICAgICAgc2VsZi5jbG9zZV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2Vycm9yKHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKQorICAgICAgICAgICAgc2VsZi5jbG9zZV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgICAgICBleGMgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleGMsIChNZW1vcnlFcnJvciwgS2V5Ym9hcmRJbnRlcnJ1cHQpKToKKyAgICAgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIHNlcnZlX2ZvcmV2ZXIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBPdmVycmlkZXMgYHNlcnZlX2ZvcmV2ZXJgIHRvIHNodXQgdGhlIHRocmVhZHBvb2wgZG93biBjbGVhbmx5LgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2hpbGUgc2VsZi5ydW5uaW5nOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfcmVxdWVzdCgpCisgICAgICAgICAgICAgICAgZXhjZXB0IHNvY2tldC50aW1lb3V0OgorICAgICAgICAgICAgICAgICAgICAjIFRpbWVvdXQgaXMgZXhwZWN0ZWQsIGdpdmVzIGludGVycnVwdHMgYSBjaGFuY2UgdG8KKyAgICAgICAgICAgICAgICAgICAgIyBwcm9wb2dhdGUsIGp1c3Qga2VlcCBoYW5kbGluZworICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICd0aHJlYWRfcG9vbCcpOgorICAgICAgICAgICAgICAgIHNlbGYudGhyZWFkX3Bvb2wuc2h1dGRvd24oKQorCisgICAgZGVmIHNlcnZlcl9hY3RpdmF0ZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRlcyBzZXJ2ZXJfYWN0aXZhdGUgdG8gc2V0IHRpbWVvdXQgb24gb3VyIGxpc3RlbmVyIHNvY2tldC4KKyAgICAgICAgIiIiCisgICAgICAgICMgV2Ugc2V0IHRoZSB0aW1lb3V0IGhlcmUgc28gdGhhdCB3ZSBjYW4gdHJhcCBpbnRlcnJ1cHRzIG9uIHdpbmRvd3MKKyAgICAgICAgc2VsZi5zb2NrZXQuc2V0dGltZW91dCgxKQorCisgICAgZGVmIHNlcnZlcl9jbG9zZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpbmlzaCBwZW5kaW5nIHJlcXVlc3RzIGFuZCBzaHV0ZG93biB0aGUgc2VydmVyLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5ydW5uaW5nID0gRmFsc2UKKyAgICAgICAgc2VsZi5zb2NrZXQuY2xvc2UoKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICd0aHJlYWRfcG9vbCcpOgorICAgICAgICAgICAgc2VsZi50aHJlYWRfcG9vbC5zaHV0ZG93big2MCkKKworY2xhc3MgV1NHSVNlcnZlckJhc2UoU2VjdXJlSFRUUFNlcnZlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHdzZ2lfYXBwbGljYXRpb24sIHNlcnZlcl9hZGRyZXNzLAorICAgICAgICAgICAgICAgICBSZXF1ZXN0SGFuZGxlckNsYXNzPU5vbmUsIHNzbF9jb250ZXh0PU5vbmUsCisgICAgICAgICAgICAgICAgIHJlcXVlc3RfcXVldWVfc2l6ZT1Ob25lKToKKyAgICAgICAgU2VjdXJlSFRUUFNlcnZlci5fX2luaXRfXyhzZWxmLCBzZXJ2ZXJfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SGFuZGxlckNsYXNzLCBzc2xfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X3F1ZXVlX3NpemU9cmVxdWVzdF9xdWV1ZV9zaXplKQorICAgICAgICBzZWxmLndzZ2lfYXBwbGljYXRpb24gPSB3c2dpX2FwcGxpY2F0aW9uCisgICAgICAgIHNlbGYud3NnaV9zb2NrZXRfdGltZW91dCA9IE5vbmUKKworICAgIGRlZiBnZXRfcmVxdWVzdChzZWxmKToKKyAgICAgICAgIyBJZiB0aGVyZSBpcyBhIHNvY2tldF90aW1lb3V0LCBzZXQgaXQgb24gdGhlIGFjY2VwdGVkCisgICAgICAgIChjb25uLGluZm8pID0gU2VjdXJlSFRUUFNlcnZlci5nZXRfcmVxdWVzdChzZWxmKQorICAgICAgICBpZiBzZWxmLndzZ2lfc29ja2V0X3RpbWVvdXQ6CisgICAgICAgICAgICBjb25uLnNldHRpbWVvdXQoc2VsZi53c2dpX3NvY2tldF90aW1lb3V0KQorICAgICAgICByZXR1cm4gKGNvbm4sIGluZm8pCisKK2NsYXNzIFdTR0lTZXJ2ZXIoVGhyZWFkaW5nTWl4SW4sIFdTR0lTZXJ2ZXJCYXNlKToKKyAgICBkYWVtb25fdGhyZWFkcyA9IEZhbHNlCisKK2NsYXNzIFdTR0lUaHJlYWRQb29sU2VydmVyKFRocmVhZFBvb2xNaXhJbiwgV1NHSVNlcnZlckJhc2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3c2dpX2FwcGxpY2F0aW9uLCBzZXJ2ZXJfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgUmVxdWVzdEhhbmRsZXJDbGFzcz1Ob25lLCBzc2xfY29udGV4dD1Ob25lLAorICAgICAgICAgICAgICAgICBud29ya2Vycz0xMCwgZGFlbW9uX3RocmVhZHM9RmFsc2UsCisgICAgICAgICAgICAgICAgIHRocmVhZHBvb2xfb3B0aW9ucz1Ob25lLCByZXF1ZXN0X3F1ZXVlX3NpemU9Tm9uZSk6CisgICAgICAgIFdTR0lTZXJ2ZXJCYXNlLl9faW5pdF9fKHNlbGYsIHdzZ2lfYXBwbGljYXRpb24sIHNlcnZlcl9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SGFuZGxlckNsYXNzLCBzc2xfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9xdWV1ZV9zaXplPXJlcXVlc3RfcXVldWVfc2l6ZSkKKyAgICAgICAgaWYgdGhyZWFkcG9vbF9vcHRpb25zIGlzIE5vbmU6CisgICAgICAgICAgICB0aHJlYWRwb29sX29wdGlvbnMgPSB7fQorICAgICAgICBUaHJlYWRQb29sTWl4SW4uX19pbml0X18oc2VsZiwgbndvcmtlcnMsIGRhZW1vbl90aHJlYWRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKip0aHJlYWRwb29sX29wdGlvbnMpCisKK2NsYXNzIFNlcnZlckV4aXQoU3lzdGVtRXhpdCk6CisgICAgIiIiCisgICAgUmFpc2VkIHRvIHRlbGwgdGhlIHNlcnZlciB0byByZWFsbHkgZXhpdCAoU3lzdGVtRXhpdCBpcyBub3JtYWxseQorICAgIGNhdWdodCkKKyAgICAiIiIKKworZGVmIHNlcnZlKGFwcGxpY2F0aW9uLCBob3N0PU5vbmUsIHBvcnQ9Tm9uZSwgaGFuZGxlcj1Ob25lLCBzc2xfcGVtPU5vbmUsCisgICAgICAgICAgc3NsX2NvbnRleHQ9Tm9uZSwgc2VydmVyX3ZlcnNpb249Tm9uZSwgcHJvdG9jb2xfdmVyc2lvbj1Ob25lLAorICAgICAgICAgIHN0YXJ0X2xvb3A9VHJ1ZSwgZGFlbW9uX3RocmVhZHM9Tm9uZSwgc29ja2V0X3RpbWVvdXQ9Tm9uZSwKKyAgICAgICAgICB1c2VfdGhyZWFkcG9vbD1Ob25lLCB0aHJlYWRwb29sX3dvcmtlcnM9MTAsCisgICAgICAgICAgdGhyZWFkcG9vbF9vcHRpb25zPU5vbmUsIHJlcXVlc3RfcXVldWVfc2l6ZT01KToKKyAgICAiIiIKKyAgICBTZXJ2ZXMgeW91ciBgYGFwcGxpY2F0aW9uYGAgb3ZlciBIVFRQKFMpIHZpYSBXU0dJIGludGVyZmFjZQorCisgICAgYGBob3N0YGAKKworICAgICAgICBUaGlzIGlzIHRoZSBpcGFkZHJlc3MgdG8gYmluZCB0byAob3IgYSBob3N0bmFtZSBpZiB5b3VyCisgICAgICAgIG5hbWVzZXJ2ZXIgaXMgcHJvcGVybHkgY29uZmlndXJlZCkuICBUaGlzIGRlZmF1bHRzIHRvCisgICAgICAgIDEyNy4wLjAuMSwgd2hpY2ggaXMgbm90IGEgcHVibGljIGludGVyZmFjZS4KKworICAgIGBgcG9ydGBgCisKKyAgICAgICAgVGhlIHBvcnQgdG8gcnVuIG9uLCBkZWZhdWx0cyB0byA4MDgwIGZvciBIVFRQLCBvciA0NDQzIGZvcgorICAgICAgICBIVFRQUy4gVGhpcyBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gaW50ZWdlciB2YWx1ZS4KKworICAgIGBgaGFuZGxlcmBgCisKKyAgICAgICAgVGhpcyBpcyB0aGUgSFRUUCByZXF1ZXN0IGhhbmRsZXIgdG8gdXNlLCBpdCBkZWZhdWx0cyB0bworICAgICAgICBgYFdTR0lIYW5kbGVyYGAgaW4gdGhpcyBtb2R1bGUuCisKKyAgICBgYHNzbF9wZW1gYAorCisgICAgICAgIFRoaXMgYW4gb3B0aW9uYWwgU1NMIGNlcnRpZmljYXRlIGZpbGUgKHZpYSBPcGVuU1NMKS4gWW91IGNhbgorICAgICAgICBzdXBwbHkgYGAqYGAgYW5kIGEgZGV2ZWxvcG1lbnQtb25seSBjZXJ0aWZpY2F0ZSB3aWxsIGJlCisgICAgICAgIGNyZWF0ZWQgZm9yIHlvdSwgb3IgeW91IGNhbiBnZW5lcmF0ZSBhIHNlbGYtc2lnbmVkIHRlc3QgUEVNCisgICAgICAgIGNlcnRpZmljYXRlIGZpbGUgYXMgZm9sbG93czo6CisKKyAgICAgICAgICAgICQgb3BlbnNzbCBnZW5yc2EgMTAyNCA+IGhvc3Qua2V5CisgICAgICAgICAgICAkIGNobW9kIDQwMCBob3N0LmtleQorICAgICAgICAgICAgJCBvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1ub2RlcyAtc2hhMSAtZGF5cyAzNjUgIFxcCisgICAgICAgICAgICAgICAgICAgICAgICAgIC1rZXkgaG9zdC5rZXkgPiBob3N0LmNlcnQKKyAgICAgICAgICAgICQgY2F0IGhvc3QuY2VydCBob3N0LmtleSA+IGhvc3QucGVtCisgICAgICAgICAgICAkIGNobW9kIDQwMCBob3N0LnBlbQorCisgICAgYGBzc2xfY29udGV4dGBgCisKKyAgICAgICAgVGhpcyBhbiBvcHRpb25hbCBTU0wgY29udGV4dCBvYmplY3QgZm9yIHRoZSBzZXJ2ZXIuICBBIFNTTAorICAgICAgICBjb250ZXh0IHdpbGwgYmUgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RlZCBmb3IgeW91IGlmIHlvdSBzdXBwbHkKKyAgICAgICAgYGBzc2xfcGVtYGAuICBTdXBwbHkgdGhpcyB0byB1c2UgYSBjb250ZXh0IG9mIHlvdXIgb3duCisgICAgICAgIGNvbnN0cnVjdGlvbi4KKworICAgIGBgc2VydmVyX3ZlcnNpb25gYAorCisgICAgICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJ2ZXIgYXMgcmVwb3J0ZWQgaW4gSFRUUCByZXNwb25zZSBsaW5lLiBUaGlzCisgICAgICAgIGRlZmF1bHRzIHRvIHNvbWV0aGluZyBsaWtlICJQYXN0ZVdTR0lTZXJ2ZXIvMC41Ii4gIE1hbnkgc2VydmVycworICAgICAgICBoaWRlIHRoZWlyIGNvZGUtYmFzZSBpZGVudGl0eSB3aXRoIGEgbmFtZSBsaWtlICdBbW5lc2lhYy8xLjAnCisKKyAgICBgYHByb3RvY29sX3ZlcnNpb25gYAorCisgICAgICAgIFRoaXMgc2V0cyB0aGUgcHJvdG9jb2wgdXNlZCBieSB0aGUgc2VydmVyLCBieSBkZWZhdWx0CisgICAgICAgIGBgSFRUUC8xLjBgYC4gVGhlcmUgaXMgc29tZSBzdXBwb3J0IGZvciBgYEhUVFAvMS4xYGAsIHdoaWNoCisgICAgICAgIGRlZmF1bHRzIHRvIG5pY2VyIGtlZXAtYWxpdmUgY29ubmVjdGlvbnMuICBUaGlzIHNlcnZlciBzdXBwb3J0cworICAgICAgICBgYDEwMCBDb250aW51ZWBgLCBidXQgZG9lcyBub3QgeWV0IHN1cHBvcnQgSFRUUC8xLjEgQ2h1bmtlZAorICAgICAgICBFbmNvZGluZy4gSGVuY2UsIGlmIHlvdSB1c2UgSFRUUC8xLjEsIHlvdSdyZSBzb21ld2hhdCBpbiBlcnJvcgorICAgICAgICBzaW5jZSBjaHVua2VkIGNvZGluZyBpcyBhIG1hbmRhdG9yeSByZXF1aXJlbWVudCBvZiBhIEhUVFAvMS4xCisgICAgICAgIHNlcnZlci4gIElmIHlvdSBzcGVjaWZ5IEhUVFAvMS4xLCBldmVyeSByZXNwb25zZSAqbXVzdCogaGF2ZSBhCisgICAgICAgIGBgQ29udGVudC1MZW5ndGhgYCBhbmQgeW91IG11c3QgYmUgY2FyZWZ1bCBub3QgdG8gcmVhZCBwYXN0IHRoZQorICAgICAgICBlbmQgb2YgdGhlIHNvY2tldC4KKworICAgIGBgc3RhcnRfbG9vcGBgCisKKyAgICAgICAgVGhpcyBzcGVjaWZpZXMgaWYgdGhlIHNlcnZlciBsb29wIChha2EgYGBzZXJ2ZXIuc2VydmVfZm9yZXZlcigpYGApCisgICAgICAgIHNob3VsZCBiZSBjYWxsZWQ7IGl0IGRlZmF1bHRzIHRvIGBgVHJ1ZWBgLgorCisgICAgYGBkYWVtb25fdGhyZWFkc2BgCisKKyAgICAgICAgVGhpcyBmbGFnIHNwZWNpZmllcyBpZiB3aGVuIHlvdXIgd2Vic2VydmVyIHRlcm1pbmF0ZXMgYWxsCisgICAgICAgIGluLXByb2dyZXNzIGNsaWVudCBjb25uZWN0aW9ucyBzaG91bGQgYmUgZHJvcHBwZWQuICBJdCBkZWZhdWx0cworICAgICAgICB0byBgYEZhbHNlYGAuICAgWW91IG1pZ2h0IHdhbnQgdG8gc2V0IHRoaXMgdG8gYGBUcnVlYGAgaWYgeW91CisgICAgICAgIGFyZSB1c2luZyBgYEhUVFAvMS4xYGAgYW5kIGRvbid0IHNldCBhIGBgc29ja2V0X3RpbWVvdXRgYC4KKworICAgIGBgc29ja2V0X3RpbWVvdXRgYAorCisgICAgICAgIFRoaXMgc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIHRoYXQgYSBjb25uZWN0aW9uIHRvIGEKKyAgICAgICAgZ2l2ZW4gY2xpZW50IHdpbGwgYmUga2VwdCBvcGVuLiAgQXQgdGhpcyB0aW1lLCBpdCBpcyBhIHJ1ZGUKKyAgICAgICAgZGlzY29ubmVjdCwgYnV0IGF0IGEgbGF0ZXIgdGltZSBpdCBtaWdodCBmb2xsb3cgdGhlIFJGQyBhIGJpdAorICAgICAgICBtb3JlIGNsb3NlbHkuCisKKyAgICBgYHVzZV90aHJlYWRwb29sYGAKKworICAgICAgICBTZXJ2ZXIgcmVxdWVzdHMgZnJvbSBhIHBvb2wgb2Ygd29ya2VyIHRocmVhZHMgKGBgdGhyZWFkcG9vbF93b3JrZXJzYGApCisgICAgICAgIHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgbmV3IHRocmVhZCBmb3IgZWFjaCByZXF1ZXN0LiBUaGlzIGNhbgorICAgICAgICBzdWJzdGFudGlhbGx5IHJlZHVjZSBsYXRlbmN5IHNpbmNlIHRoZXJlIGlzIGEgaGlnaCBjb3N0IGFzc29jaWF0ZWQKKyAgICAgICAgd2l0aCB0aHJlYWQgY3JlYXRpb24uCisKKyAgICBgYHRocmVhZHBvb2xfd29ya2Vyc2BgCisKKyAgICAgICAgTnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzIHRvIGNyZWF0ZSB3aGVuIGBgdXNlX3RocmVhZHBvb2xgYCBpcyB0cnVlLiBUaGlzCisgICAgICAgIGNhbiBiZSBhIHN0cmluZyBvciBhbiBpbnRlZ2VyIHZhbHVlLgorCisgICAgYGB0aHJlYWRwb29sX29wdGlvbnNgYAorCisgICAgICAgIEEgZGljdGlvbmFyeSBvZiBvcHRpb25zIHRvIGJlIHVzZWQgd2hlbiBpbnN0YW50aWF0aW5nIHRoZQorICAgICAgICB0aHJlYWRwb29sLiAgU2VlIHBhc3RlLmh0dHBzZXJ2ZXIuVGhyZWFkUG9vbCBmb3Igc3BlY2lmaWMKKyAgICAgICAgb3B0aW9ucyAoYGB0aHJlYWRwb29sX3dvcmtlcnNgYCBpcyBhIHNwZWNpZmljIG9wdGlvbiB0aGF0IGNhbgorICAgICAgICBhbHNvIGdvIGhlcmUpLgorCisgICAgYGByZXF1ZXN0X3F1ZXVlX3NpemVgYAorCisgICAgICAgIFRoZSAnYmFja2xvZycgYXJndW1lbnQgdG8gc29ja2V0Lmxpc3RlbigpOyBzcGVjaWZpZXMgdGhlCisgICAgICAgIG1heGltdW0gbnVtYmVyIG9mIHF1ZXVlZCBjb25uZWN0aW9ucy4KKworICAgICIiIgorICAgIGlzX3NzbCA9IEZhbHNlCisgICAgaWYgc3NsX3BlbSBvciBzc2xfY29udGV4dDoKKyAgICAgICAgYXNzZXJ0IFNTTCwgInB5T3BlblNTTCBpcyBub3QgaW5zdGFsbGVkIgorICAgICAgICBpc19zc2wgPSBUcnVlCisgICAgICAgIHBvcnQgPSBpbnQocG9ydCBvciA0NDQzKQorICAgICAgICBpZiBub3Qgc3NsX2NvbnRleHQ6CisgICAgICAgICAgICBpZiBzc2xfcGVtID09ICcqJzoKKyAgICAgICAgICAgICAgICBzc2xfY29udGV4dCA9IF9hdXRvX3NzbF9jb250ZXh0KCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3NsX2NvbnRleHQgPSBTU0wuQ29udGV4dChTU0wuU1NMdjIzX01FVEhPRCkKKyAgICAgICAgICAgICAgICBzc2xfY29udGV4dC51c2VfcHJpdmF0ZWtleV9maWxlKHNzbF9wZW0pCisgICAgICAgICAgICAgICAgc3NsX2NvbnRleHQudXNlX2NlcnRpZmljYXRlX2NoYWluX2ZpbGUoc3NsX3BlbSkKKworICAgIGhvc3QgPSBob3N0IG9yICcxMjcuMC4wLjEnCisgICAgaWYgcG9ydCBpcyBOb25lOgorICAgICAgICBpZiAnOicgaW4gaG9zdDoKKyAgICAgICAgICAgIGhvc3QsIHBvcnQgPSBob3N0LnNwbGl0KCc6JywgMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBvcnQgPSA4MDgwCisgICAgc2VydmVyX2FkZHJlc3MgPSAoaG9zdCwgaW50KHBvcnQpKQorCisgICAgaWYgbm90IGhhbmRsZXI6CisgICAgICAgIGhhbmRsZXIgPSBXU0dJSGFuZGxlcgorICAgIGlmIHNlcnZlcl92ZXJzaW9uOgorICAgICAgICBoYW5kbGVyLnNlcnZlcl92ZXJzaW9uID0gc2VydmVyX3ZlcnNpb24KKyAgICAgICAgaGFuZGxlci5zeXNfdmVyc2lvbiA9IE5vbmUKKyAgICBpZiBwcm90b2NvbF92ZXJzaW9uOgorICAgICAgICBhc3NlcnQgcHJvdG9jb2xfdmVyc2lvbiBpbiAoJ0hUVFAvMC45JywgJ0hUVFAvMS4wJywgJ0hUVFAvMS4xJykKKyAgICAgICAgaGFuZGxlci5wcm90b2NvbF92ZXJzaW9uID0gcHJvdG9jb2xfdmVyc2lvbgorCisgICAgaWYgdXNlX3RocmVhZHBvb2wgaXMgTm9uZToKKyAgICAgICAgdXNlX3RocmVhZHBvb2wgPSBUcnVlCisKKyAgICBpZiBjb252ZXJ0ZXJzLmFzYm9vbCh1c2VfdGhyZWFkcG9vbCk6CisgICAgICAgIHNlcnZlciA9IFdTR0lUaHJlYWRQb29sU2VydmVyKGFwcGxpY2F0aW9uLCBzZXJ2ZXJfYWRkcmVzcywgaGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsX2NvbnRleHQsIGludCh0aHJlYWRwb29sX3dvcmtlcnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYWVtb25fdGhyZWFkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkcG9vbF9vcHRpb25zPXRocmVhZHBvb2xfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9xdWV1ZV9zaXplPXJlcXVlc3RfcXVldWVfc2l6ZSkKKyAgICBlbHNlOgorICAgICAgICBzZXJ2ZXIgPSBXU0dJU2VydmVyKGFwcGxpY2F0aW9uLCBzZXJ2ZXJfYWRkcmVzcywgaGFuZGxlciwgc3NsX2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9xdWV1ZV9zaXplPXJlcXVlc3RfcXVldWVfc2l6ZSkKKyAgICAgICAgaWYgZGFlbW9uX3RocmVhZHM6CisgICAgICAgICAgICBzZXJ2ZXIuZGFlbW9uX3RocmVhZHMgPSBkYWVtb25fdGhyZWFkcworCisgICAgaWYgc29ja2V0X3RpbWVvdXQ6CisgICAgICAgIHNlcnZlci53c2dpX3NvY2tldF90aW1lb3V0ID0gaW50KHNvY2tldF90aW1lb3V0KQorCisgICAgaWYgY29udmVydGVycy5hc2Jvb2woc3RhcnRfbG9vcCk6CisgICAgICAgIHByb3RvY29sID0gaXNfc3NsIGFuZCAnaHR0cHMnIG9yICdodHRwJworICAgICAgICBob3N0LCBwb3J0ID0gc2VydmVyLnNlcnZlcl9hZGRyZXNzWzoyXQorICAgICAgICBpZiBob3N0ID09ICcwLjAuMC4wJzoKKyAgICAgICAgICAgIHByaW50KCdzZXJ2aW5nIG9uIDAuMC4wLjA6JXMgdmlldyBhdCAlczovLzEyNy4wLjAuMTolcycKKyAgICAgICAgICAgICAgICAgICUgKHBvcnQsIHByb3RvY29sLCBwb3J0KSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KCJzZXJ2aW5nIG9uICVzOi8vJXM6JXMiICUgKHByb3RvY29sLCBob3N0LCBwb3J0KSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAjIGFsbG93IENUUkwrQyB0byBzaHV0ZG93bgorICAgICAgICAgICAgcGFzcworICAgIHJldHVybiBzZXJ2ZXIKKworIyBGb3IgcGFzdGUuZGVwbG95IHNlcnZlciBpbnN0YW50aWF0aW9uIChlZ2c6UGFzdGUjaHR0cCkKKyMgTm90ZTogdGhpcyBnZXRzIGEgc2VwYXJhdGUgZnVuY3Rpb24gYmVjYXVzZSBpdCBoYXMgdG8gZXhwZWN0IHN0cmluZworIyBhcmd1bWVudHMgKHRob3VnaCB0aGF0J3Mgbm90IG11Y2ggb2YgYW4gaXNzdWUgeWV0LCBldmVyPykKK2RlZiBzZXJ2ZXJfcnVubmVyKHdzZ2lfYXBwLCBnbG9iYWxfY29uZiwgKiprd2FyZ3MpOgorICAgIGZyb20gcGFzdGUuZGVwbG95LmNvbnZlcnRlcnMgaW1wb3J0IGFzYm9vbAorICAgIGZvciBuYW1lIGluIFsncG9ydCcsICdzb2NrZXRfdGltZW91dCcsICd0aHJlYWRwb29sX3dvcmtlcnMnLAorICAgICAgICAgICAgICAgICAndGhyZWFkcG9vbF9odW5nX3RocmVhZF9saW1pdCcsCisgICAgICAgICAgICAgICAgICd0aHJlYWRwb29sX2tpbGxfdGhyZWFkX2xpbWl0JywKKyAgICAgICAgICAgICAgICAgJ3RocmVhZHBvb2xfZHlpbmdfbGltaXQnLCAndGhyZWFkcG9vbF9zcGF3bl9pZl91bmRlcicsCisgICAgICAgICAgICAgICAgICd0aHJlYWRwb29sX21heF96b21iaWVfdGhyZWFkc19iZWZvcmVfZGllJywKKyAgICAgICAgICAgICAgICAgJ3RocmVhZHBvb2xfaHVuZ19jaGVja19wZXJpb2QnLAorICAgICAgICAgICAgICAgICAndGhyZWFkcG9vbF9tYXhfcmVxdWVzdHMnLCAncmVxdWVzdF9xdWV1ZV9zaXplJ106CisgICAgICAgIGlmIG5hbWUgaW4ga3dhcmdzOgorICAgICAgICAgICAga3dhcmdzW25hbWVdID0gaW50KGt3YXJnc1tuYW1lXSkKKyAgICBmb3IgbmFtZSBpbiBbJ3VzZV90aHJlYWRwb29sJywgJ2RhZW1vbl90aHJlYWRzJ106CisgICAgICAgIGlmIG5hbWUgaW4ga3dhcmdzOgorICAgICAgICAgICAga3dhcmdzW25hbWVdID0gYXNib29sKGt3YXJnc1tuYW1lXSkKKyAgICB0aHJlYWRwb29sX29wdGlvbnMgPSB7fQorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrd2FyZ3MuaXRlbXMoKToKKyAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKCd0aHJlYWRwb29sXycpIGFuZCBuYW1lICE9ICd0aHJlYWRwb29sX3dvcmtlcnMnOgorICAgICAgICAgICAgdGhyZWFkcG9vbF9vcHRpb25zW25hbWVbbGVuKCd0aHJlYWRwb29sXycpOl1dID0gdmFsdWUKKyAgICAgICAgICAgIGRlbCBrd2FyZ3NbbmFtZV0KKyAgICBpZiAoJ2Vycm9yX2VtYWlsJyBub3QgaW4gdGhyZWFkcG9vbF9vcHRpb25zCisgICAgICAgIGFuZCAnZXJyb3JfZW1haWwnIGluIGdsb2JhbF9jb25mKToKKyAgICAgICAgdGhyZWFkcG9vbF9vcHRpb25zWydlcnJvcl9lbWFpbCddID0gZ2xvYmFsX2NvbmZbJ2Vycm9yX2VtYWlsJ10KKyAgICBrd2FyZ3NbJ3RocmVhZHBvb2xfb3B0aW9ucyddID0gdGhyZWFkcG9vbF9vcHRpb25zCisgICAgc2VydmUod3NnaV9hcHAsICoqa3dhcmdzKQorCitzZXJ2ZXJfcnVubmVyLl9fZG9jX18gPSAoc2VydmUuX19kb2NfXyBvciAnJykgKyAiIiIKKworICAgIFlvdSBjYW4gYWxzbyBzZXQgdGhlc2UgdGhyZWFkcG9vbCBvcHRpb25zOgorCisgICAgYGB0aHJlYWRwb29sX21heF9yZXF1ZXN0c2BgOgorCisgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZXF1ZXN0cyBhIHdvcmtlciB0aHJlYWQgd2lsbCBwcm9jZXNzCisgICAgICAgIGJlZm9yZSBkeWluZyAoYW5kIHJlcGxhY2luZyBpdHNlbGYgd2l0aCBhIG5ldyB3b3JrZXIgdGhyZWFkKS4KKyAgICAgICAgRGVmYXVsdCAxMDAuCisKKyAgICBgYHRocmVhZHBvb2xfaHVuZ190aHJlYWRfbGltaXRgYDoKKworICAgICAgICBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYSB0aHJlYWQgY2FuIHdvcmsgb24gYSB0YXNrIGJlZm9yZSBpdCBpcworICAgICAgICBjb25zaWRlcmVkIGh1bmcgKHN0dWNrKS4gIERlZmF1bHQgMzAgc2Vjb25kcy4KKworICAgIGBgdGhyZWFkcG9vbF9raWxsX3RocmVhZF9saW1pdGBgOgorCisgICAgICAgIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBhIHRocmVhZCBjYW4gd29yayBiZWZvcmUgeW91IHNob3VsZCBraWxsIGl0CisgICAgICAgIChhc3N1bWluZyBpdCB3aWxsIG5ldmVyIGZpbmlzaCkuICBEZWZhdWx0IDYwMCBzZWNvbmRzICgxMCBtaW51dGVzKS4KKworICAgIGBgdGhyZWFkcG9vbF9keWluZ19saW1pdGBgOgorCisgICAgICAgIFRoZSBsZW5ndGggb2YgdGltZSBhZnRlciBraWxsaW5nIGEgdGhyZWFkIHRoYXQgaXQgc2hvdWxkIGFjdHVhbGx5CisgICAgICAgIGRpc2FwcGVhci4gIElmIGl0IGxpdmVzIGxvbmdlciB0aGFuIHRoaXMsIGl0IGlzIGNvbnNpZGVyZWQgYQorICAgICAgICAiem9tYmllIi4gIE5vdGUgdGhhdCBldmVuIGluIGVhc3kgc2l0dWF0aW9ucyBraWxsaW5nIGEgdGhyZWFkIGNhbgorICAgICAgICBiZSB2ZXJ5IHNsb3cuICBEZWZhdWx0IDMwMCBzZWNvbmRzICg1IG1pbnV0ZXMpLgorCisgICAgYGB0aHJlYWRwb29sX3NwYXduX2lmX3VuZGVyYGA6CisKKyAgICAgICAgSWYgdGhlcmUgYXJlIG5vIGlkbGUgdGhyZWFkcyBhbmQgYSByZXF1ZXN0IGNvbWVzIGluLCBhbmQgdGhlcmUgYXJlCisgICAgICAgIGxlc3MgdGhhbiB0aGlzIG51bWJlciBvZiAqYnVzeSogdGhyZWFkcywgdGhlbiBhZGQgd29ya2VycyB0byB0aGUKKyAgICAgICAgcG9vbC4gIEJ1c3kgdGhyZWFkcyBhcmUgdGhyZWFkcyB0aGF0IGhhdmUgdGFrZW4gbGVzcyB0aGFuCisgICAgICAgIGBgdGhyZWFkcG9vbF9odW5nX3RocmVhZF9saW1pdGBgIHNlY29uZHMgc28gZmFyLiAgU28gaWYgeW91IGdldAorICAgICAgICAqbG90cyogb2YgcmVxdWVzdHMgYnV0IHRoZXkgY29tcGxldGUgaW4gYSByZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lLAorICAgICAgICB0aGUgcmVxdWVzdHMgd2lsbCBzaW1wbHkgcXVldWUgdXAgKGFkZGluZyBtb3JlIHRocmVhZHMgcHJvYmFibHkKKyAgICAgICAgd291bGRuJ3Qgc3BlZWQgdGhlbSB1cCkuICBCdXQgaWYgeW91IGhhdmUgbG90cyBvZiBodW5nIHRocmVhZHMgYW5kCisgICAgICAgIG9uZSBtb3JlIHJlcXVlc3QgY29tZXMgaW4sIHRoaXMgd2lsbCBhZGQgd29ya2VycyB0byBoYW5kbGUgaXQuCisgICAgICAgIERlZmF1bHQgNS4KKworICAgIGBgdGhyZWFkcG9vbF9tYXhfem9tYmllX3RocmVhZHNfYmVmb3JlX2RpZWBgOgorCisgICAgICAgIElmIHRoZXJlIGFyZSBtb3JlIHpvbWJpZXMgdGhhbiB0aGlzLCBqdXN0IGtpbGwgdGhlIHByb2Nlc3MuICBUaGlzIGlzCisgICAgICAgIG9ubHkgZ29vZCBpZiB5b3UgaGF2ZSBhIG1vbml0b3IgdGhhdCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzdGFydAorICAgICAgICB0aGUgc2VydmVyLiAgVGhpcyBjYW4gY2xlYW4gdXAgdGhlIG1lc3MuICBEZWZhdWx0IDAgKGRpc2FibGVkKS4KKworICAgIGB0aHJlYWRwb29sX2h1bmdfY2hlY2tfcGVyaW9kYGA6CisKKyAgICAgICAgRXZlcnkgWCByZXF1ZXN0cywgY2hlY2sgZm9yIGh1bmcgdGhyZWFkcyB0aGF0IG5lZWQgdG8gYmUga2lsbGVkLAorICAgICAgICBvciBmb3Igem9tYmllIHRocmVhZHMgdGhhdCBzaG91bGQgY2F1c2UgYSByZXN0YXJ0LiAgRGVmYXVsdCAxMDAKKyAgICAgICAgcmVxdWVzdHMuCisKKyAgICBgYHRocmVhZHBvb2xfbG9nZ2VyYGA6CisKKyAgICAgICAgTG9nZ2luZyBtZXNzYWdlcyB3aWxsIGdvIHRoZSBsb2dnZXIgbmFtZWQgaGVyZS4KKworICAgIGBgdGhyZWFkcG9vbF9lcnJvcl9lbWFpbGBgIChvciBnbG9iYWwgYGBlcnJvcl9lbWFpbGBgIHNldHRpbmcpOgorCisgICAgICAgIFdoZW4gdGhyZWFkcyBhcmUga2lsbGVkIG9yIHRoZSBwcm9jZXNzIHJlc3RhcnRlZCwgdGhpcyBlbWFpbAorICAgICAgICBhZGRyZXNzIHdpbGwgYmUgY29udGFjdGVkICh1c2luZyBhbiBTTVRQIHNlcnZlciBvbiBsb2NhbGhvc3QpLgorCisiIiIKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGZyb20gcGFzdGUud3NnaWxpYiBpbXBvcnQgZHVtcF9lbnZpcm9uCisgICAgI3NlcnZlKGR1bXBfZW52aXJvbiwgc3NsX3BlbT0idGVzdC5wZW0iKQorICAgIHNlcnZlKGR1bXBfZW52aXJvbiwgc2VydmVyX3ZlcnNpb249IldvbWJsZXMvMS4wIiwKKyAgICAgICAgICBwcm90b2NvbF92ZXJzaW9uPSJIVFRQLzEuMSIsIHBvcnQ9Ijg4ODgiKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2xpbnQucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvbGludC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzgxNjg2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL2xpbnQucHkKQEAgLTAsMCArMSw0MzggQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMgQWxzbyBsaWNlbmNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIDIuMDogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FwYWNoZTIuMC5waHAKKyMgTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50CisiIiIKK01pZGRsZXdhcmUgdG8gY2hlY2sgZm9yIG9iZWRpZW5jZSB0byB0aGUgV1NHSSBzcGVjaWZpY2F0aW9uLgorCitTb21lIG9mIHRoZSB0aGluZ3MgdGhpcyBjaGVja3M6CisKKyogU2lnbmF0dXJlIG9mIHRoZSBhcHBsaWNhdGlvbiBhbmQgc3RhcnRfcmVzcG9uc2UgKGluY2x1ZGluZyB0aGF0CisgIGtleXdvcmQgYXJndW1lbnRzIGFyZSBub3QgdXNlZCkuCisKKyogRW52aXJvbm1lbnQgY2hlY2tzOgorCisgIC0gRW52aXJvbm1lbnQgaXMgYSBkaWN0aW9uYXJ5IChhbmQgbm90IGEgc3ViY2xhc3MpLgorCisgIC0gVGhhdCBhbGwgdGhlIHJlcXVpcmVkIGtleXMgYXJlIGluIHRoZSBlbnZpcm9ubWVudDogUkVRVUVTVF9NRVRIT0QsCisgICAgU0VSVkVSX05BTUUsIFNFUlZFUl9QT1JULCB3c2dpLnZlcnNpb24sIHdzZ2kuaW5wdXQsIHdzZ2kuZXJyb3JzLAorICAgIHdzZ2kubXVsdGl0aHJlYWQsIHdzZ2kubXVsdGlwcm9jZXNzLCB3c2dpLnJ1bl9vbmNlCisKKyAgLSBUaGF0IEhUVFBfQ09OVEVOVF9UWVBFIGFuZCBIVFRQX0NPTlRFTlRfTEVOR1RIIGFyZSBub3QgaW4gdGhlCisgICAgZW52aXJvbm1lbnQgKHRoZXNlIGhlYWRlcnMgc2hvdWxkIGFwcGVhciBhcyBDT05URU5UX0xFTkdUSCBhbmQKKyAgICBDT05URU5UX1RZUEUpLgorCisgIC0gV2FybnMgaWYgUVVFUllfU1RSSU5HIGlzIG1pc3NpbmcsIGFzIHRoZSBjZ2kgbW9kdWxlIGFjdHMKKyAgICB1bnByZWRpY3RhYmx5IGluIHRoYXQgY2FzZS4KKworICAtIFRoYXQgQ0dJLXN0eWxlIHZhcmlhYmxlcyAodGhhdCBkb24ndCBjb250YWluIGEgLikgaGF2ZQorICAgIChub24tdW5pY29kZSkgc3RyaW5nIHZhbHVlcworCisgIC0gVGhhdCB3c2dpLnZlcnNpb24gaXMgYSB0dXBsZQorCisgIC0gVGhhdCB3c2dpLnVybF9zY2hlbWUgaXMgJ2h0dHAnIG9yICdodHRwcycgKEBAOiBpcyB0aGlzIHRvbworICAgIHJlc3RyaWN0aXZlPykKKworICAtIFdhcm5zIGlmIHRoZSBSRVFVRVNUX01FVEhPRCBpcyBub3Qga25vd24gKEBAOiBwcm9iYWJseSB0b28KKyAgICByZXN0cmljdGl2ZSkuCisKKyAgLSBUaGF0IFNDUklQVF9OQU1FIGFuZCBQQVRIX0lORk8gYXJlIGVtcHR5IG9yIHN0YXJ0IHdpdGggLworCisgIC0gVGhhdCBhdCBsZWFzdCBvbmUgb2YgU0NSSVBUX05BTUUgb3IgUEFUSF9JTkZPIGFyZSBzZXQuCisKKyAgLSBUaGF0IENPTlRFTlRfTEVOR1RIIGlzIGEgcG9zaXRpdmUgaW50ZWdlci4KKworICAtIFRoYXQgU0NSSVBUX05BTUUgaXMgbm90ICcvJyAoaXQgc2hvdWxkIGJlICcnLCBhbmQgUEFUSF9JTkZPIHNob3VsZAorICAgIGJlICcvJykuCisKKyAgLSBUaGF0IHdzZ2kuaW5wdXQgaGFzIHRoZSBtZXRob2RzIHJlYWQsIHJlYWRsaW5lLCByZWFkbGluZXMsIGFuZAorICAgIF9faXRlcl9fCisKKyAgLSBUaGF0IHdzZ2kuZXJyb3JzIGhhcyB0aGUgbWV0aG9kcyBmbHVzaCwgd3JpdGUsIHdyaXRlbGluZXMKKworKiBUaGUgc3RhdHVzIGlzIGEgc3RyaW5nLCBjb250YWlucyBhIHNwYWNlLCBzdGFydHMgd2l0aCBhbiBpbnRlZ2VyLAorICBhbmQgdGhhdCBpbnRlZ2VyIGlzIGluIHJhbmdlICg+IDEwMCkuCisKKyogVGhhdCB0aGUgaGVhZGVycyBpcyBhIGxpc3QgKG5vdCBhIHN1YmNsYXNzLCBub3QgYW5vdGhlciBraW5kIG9mCisgIHNlcXVlbmNlKS4KKworKiBUaGF0IHRoZSBpdGVtcyBvZiB0aGUgaGVhZGVycyBhcmUgdHVwbGVzIG9mIHN0cmluZ3MuCisKKyogVGhhdCB0aGVyZSBpcyBubyAnc3RhdHVzJyBoZWFkZXIgKHRoYXQgaXMgdXNlZCBpbiBDR0ksIGJ1dCBub3QgaW4KKyAgV1NHSSkuCisKKyogVGhhdCB0aGUgaGVhZGVycyBkb24ndCBjb250YWluIG5ld2xpbmVzIG9yIGNvbG9ucywgZW5kIGluIF8gb3IgLSwgb3IKKyAgY29udGFpbiBjaGFyYWN0ZXJzIGNvZGVzIGJlbG93IDAzNy4KKworKiBUaGF0IENvbnRlbnQtVHlwZSBpcyBnaXZlbiBpZiB0aGVyZSBpcyBjb250ZW50IChDR0kgb2Z0ZW4gaGFzIGEKKyAgZGVmYXVsdCBjb250ZW50IHR5cGUsIGJ1dCBXU0dJIGRvZXMgbm90KS4KKworKiBUaGF0IG5vIENvbnRlbnQtVHlwZSBpcyBnaXZlbiB3aGVuIHRoZXJlIGlzIG5vIGNvbnRlbnQgKEBAOiBpcyB0aGlzCisgIHRvbyByZXN0cmljdGl2ZT8pCisKKyogVGhhdCB0aGUgZXhjX2luZm8gYXJndW1lbnQgdG8gc3RhcnRfcmVzcG9uc2UgaXMgYSB0dXBsZSBvciBOb25lLgorCisqIFRoYXQgYWxsIGNhbGxzIHRvIHRoZSB3cml0ZXIgYXJlIHdpdGggc3RyaW5ncywgYW5kIG5vIG90aGVyIG1ldGhvZHMKKyAgb24gdGhlIHdyaXRlciBhcmUgYWNjZXNzZWQuCisKKyogVGhhdCB3c2dpLmlucHV0IGlzIHVzZWQgcHJvcGVybHk6CisKKyAgLSAucmVhZCgpIGlzIGNhbGxlZCB3aXRoIHplcm8gb3Igb25lIGFyZ3VtZW50CisKKyAgLSBUaGF0IGl0IHJldHVybnMgYSBzdHJpbmcKKworICAtIFRoYXQgcmVhZGxpbmUsIHJlYWRsaW5lcywgYW5kIF9faXRlcl9fIHJldHVybiBzdHJpbmdzCisKKyAgLSBUaGF0IC5jbG9zZSgpIGlzIG5vdCBjYWxsZWQKKworICAtIE5vIG90aGVyIG1ldGhvZHMgYXJlIHByb3ZpZGVkCisKKyogVGhhdCB3c2dpLmVycm9ycyBpcyB1c2VkIHByb3Blcmx5OgorCisgIC0gLndyaXRlKCkgYW5kIC53cml0ZWxpbmVzKCkgaXMgY2FsbGVkIHdpdGggYSBzdHJpbmcKKworICAtIFRoYXQgLmNsb3NlKCkgaXMgbm90IGNhbGxlZCwgYW5kIG5vIG90aGVyIG1ldGhvZHMgYXJlIHByb3ZpZGVkLgorCisqIFRoZSByZXNwb25zZSBpdGVyYXRvcjoKKworICAtIFRoYXQgaXQgaXMgbm90IGEgc3RyaW5nIChpdCBzaG91bGQgYmUgYSBsaXN0IG9mIGEgc2luZ2xlIHN0cmluZzsgYQorICAgIHN0cmluZyB3aWxsIHdvcmssIGJ1dCBwZXJmb3JtIGhvcnJpYmx5KS4KKworICAtIFRoYXQgLm5leHQoKSByZXR1cm5zIGEgc3RyaW5nCisKKyAgLSBUaGF0IHRoZSBpdGVyYXRvciBpcyBub3QgaXRlcmF0ZWQgb3ZlciB1bnRpbCBzdGFydF9yZXNwb25zZSBoYXMKKyAgICBiZWVuIGNhbGxlZCAodGhhdCBjYW4gc2lnbmFsIGVpdGhlciBhIHNlcnZlciBvciBhcHBsaWNhdGlvbgorICAgIGVycm9yKS4KKworICAtIFRoYXQgLmNsb3NlKCkgaXMgY2FsbGVkIChkb2Vzbid0IHJhaXNlIGV4Y2VwdGlvbiwgb25seSBwcmludHMgdG8KKyAgICBzeXMuc3RkZXJyLCBiZWNhdXNlIHdlIG9ubHkga25vdyBpdCBpc24ndCBjYWxsZWQgd2hlbiB0aGUgb2JqZWN0CisgICAgaXMgZ2FyYmFnZSBjb2xsZWN0ZWQpLgorIiIiCisKK2ltcG9ydCByZQoraW1wb3J0IHNpeAoraW1wb3J0IHN5cworaW1wb3J0IHdhcm5pbmdzCisKK2hlYWRlcl9yZSA9IHJlLmNvbXBpbGUocideW2EtekEtWl1bYS16QS1aMC05XC1fXSokJykKK2JhZF9oZWFkZXJfdmFsdWVfcmUgPSByZS5jb21waWxlKHInW1wwMDAtXDAzN10nKQorCitjbGFzcyBXU0dJV2FybmluZyhXYXJuaW5nKToKKyAgICAiIiIKKyAgICBSYWlzZWQgaW4gcmVzcG9uc2UgdG8gV1NHSS1zcGVjLXJlbGF0ZWQgd2FybmluZ3MKKyAgICAiIiIKKworZGVmIG1pZGRsZXdhcmUoYXBwbGljYXRpb24sIGdsb2JhbF9jb25mPU5vbmUpOgorCisgICAgIiIiCisgICAgV2hlbiBhcHBsaWVkIGJldHdlZW4gYSBXU0dJIHNlcnZlciBhbmQgYSBXU0dJIGFwcGxpY2F0aW9uLCB0aGlzCisgICAgbWlkZGxld2FyZSB3aWxsIGNoZWNrIGZvciBXU0dJIGNvbXBsaWFuY3kgb24gYSBudW1iZXIgb2YgbGV2ZWxzLgorICAgIFRoaXMgbWlkZGxld2FyZSBkb2VzIG5vdCBtb2RpZnkgdGhlIHJlcXVlc3Qgb3IgcmVzcG9uc2UgaW4gYW55CisgICAgd2F5LCBidXQgd2lsbCB0aHJvdyBhbiBBc3NlcnRpb25FcnJvciBpZiBhbnl0aGluZyBzZWVtcyBvZmYKKyAgICAoZXhjZXB0IGZvciBhIGZhaWx1cmUgdG8gY2xvc2UgdGhlIGFwcGxpY2F0aW9uIGl0ZXJhdG9yLCB3aGljaAorICAgIHdpbGwgYmUgcHJpbnRlZCB0byBzdGRlcnIgLS0gdGhlcmUncyBubyB3YXkgdG8gdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgYXQgdGhhdCBwb2ludCkuCisgICAgIiIiCisKKyAgICBkZWYgbGludF9hcHAoKmFyZ3MsICoqa3cpOgorICAgICAgICBhc3NlcnQgbGVuKGFyZ3MpID09IDIsICJUd28gYXJndW1lbnRzIHJlcXVpcmVkIgorICAgICAgICBhc3NlcnQgbm90IGt3LCAiTm8ga2V5d29yZCBhcmd1bWVudHMgYWxsb3dlZCIKKyAgICAgICAgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UgPSBhcmdzCisKKyAgICAgICAgY2hlY2tfZW52aXJvbihlbnZpcm9uKQorCisgICAgICAgICMgV2UgdXNlIHRoaXMgdG8gY2hlY2sgaWYgdGhlIGFwcGxpY2F0aW9uIHJldHVybnMgd2l0aG91dAorICAgICAgICAjIGNhbGxpbmcgc3RhcnRfcmVzcG9uc2U6CisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlX3N0YXJ0ZWQgPSBbXQorCisgICAgICAgIGRlZiBzdGFydF9yZXNwb25zZV93cmFwcGVyKCphcmdzLCAqKmt3KToKKyAgICAgICAgICAgIGFzc2VydCBsZW4oYXJncykgPT0gMiBvciBsZW4oYXJncykgPT0gMywgKAorICAgICAgICAgICAgICAgICJJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHM6ICVzIiAlIGFyZ3MpCisgICAgICAgICAgICBhc3NlcnQgbm90IGt3LCAiTm8ga2V5d29yZCBhcmd1bWVudHMgYWxsb3dlZCIKKyAgICAgICAgICAgIHN0YXR1cyA9IGFyZ3NbMF0KKyAgICAgICAgICAgIGhlYWRlcnMgPSBhcmdzWzFdCisgICAgICAgICAgICBpZiBsZW4oYXJncykgPT0gMzoKKyAgICAgICAgICAgICAgICBleGNfaW5mbyA9IGFyZ3NbMl0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhjX2luZm8gPSBOb25lCisKKyAgICAgICAgICAgIGNoZWNrX3N0YXR1cyhzdGF0dXMpCisgICAgICAgICAgICBjaGVja19oZWFkZXJzKGhlYWRlcnMpCisgICAgICAgICAgICBjaGVja19jb250ZW50X3R5cGUoc3RhdHVzLCBoZWFkZXJzKQorICAgICAgICAgICAgY2hlY2tfZXhjX2luZm8oZXhjX2luZm8pCisKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlX3N0YXJ0ZWQuYXBwZW5kKE5vbmUpCisgICAgICAgICAgICByZXR1cm4gV3JpdGVXcmFwcGVyKHN0YXJ0X3Jlc3BvbnNlKCphcmdzKSkKKworICAgICAgICBlbnZpcm9uWyd3c2dpLmlucHV0J10gPSBJbnB1dFdyYXBwZXIoZW52aXJvblsnd3NnaS5pbnB1dCddKQorICAgICAgICBlbnZpcm9uWyd3c2dpLmVycm9ycyddID0gRXJyb3JXcmFwcGVyKGVudmlyb25bJ3dzZ2kuZXJyb3JzJ10pCisKKyAgICAgICAgaXRlcmF0b3IgPSBhcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZV93cmFwcGVyKQorICAgICAgICBhc3NlcnQgaXRlcmF0b3IgaXMgbm90IE5vbmUgYW5kIGl0ZXJhdG9yICE9IEZhbHNlLCAoCisgICAgICAgICAgICAiVGhlIGFwcGxpY2F0aW9uIG11c3QgcmV0dXJuIGFuIGl0ZXJhdG9yLCBpZiBvbmx5IGFuIGVtcHR5IGxpc3QiKQorCisgICAgICAgIGNoZWNrX2l0ZXJhdG9yKGl0ZXJhdG9yKQorCisgICAgICAgIHJldHVybiBJdGVyYXRvcldyYXBwZXIoaXRlcmF0b3IsIHN0YXJ0X3Jlc3BvbnNlX3N0YXJ0ZWQpCisKKyAgICByZXR1cm4gbGludF9hcHAKKworY2xhc3MgSW5wdXRXcmFwcGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgd3NnaV9pbnB1dCk6CisgICAgICAgIHNlbGYuaW5wdXQgPSB3c2dpX2lucHV0CisKKyAgICBkZWYgcmVhZChzZWxmLCAqYXJncyk6CisgICAgICAgIGFzc2VydCBsZW4oYXJncykgPD0gMQorICAgICAgICB2ID0gc2VsZi5pbnB1dC5yZWFkKCphcmdzKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2LCBzaXguYmluYXJ5X3R5cGUpCisgICAgICAgIHJldHVybiB2CisKKyAgICBkZWYgcmVhZGxpbmUoc2VsZiwgKmFyZ3MpOgorICAgICAgICB2ID0gc2VsZi5pbnB1dC5yZWFkbGluZSgqYXJncykKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uodiwgc2l4LmJpbmFyeV90eXBlKQorICAgICAgICByZXR1cm4gdgorCisgICAgZGVmIHJlYWRsaW5lcyhzZWxmLCAqYXJncyk6CisgICAgICAgIGFzc2VydCBsZW4oYXJncykgPD0gMQorICAgICAgICBsaW5lcyA9IHNlbGYuaW5wdXQucmVhZGxpbmVzKCphcmdzKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lcywgbGlzdCkKKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lLCBzaXguYmluYXJ5X3R5cGUpCisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgbGluZSA9IHNlbGYucmVhZGxpbmUoKQorICAgICAgICAgICAgaWYgbm90IGxpbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIGFzc2VydCAwLCAiaW5wdXQuY2xvc2UoKSBtdXN0IG5vdCBiZSBjYWxsZWQiCisKK2NsYXNzIEVycm9yV3JhcHBlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHdzZ2lfZXJyb3JzKToKKyAgICAgICAgc2VsZi5lcnJvcnMgPSB3c2dpX2Vycm9ycworCisgICAgZGVmIHdyaXRlKHNlbGYsIHMpOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCBieXRlcykKKyAgICAgICAgc2VsZi5lcnJvcnMud3JpdGUocykKKworICAgIGRlZiBmbHVzaChzZWxmKToKKyAgICAgICAgc2VsZi5lcnJvcnMuZmx1c2goKQorCisgICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgc2VxKToKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VxOgorICAgICAgICAgICAgc2VsZi53cml0ZShsaW5lKQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBhc3NlcnQgMCwgImVycm9ycy5jbG9zZSgpIG11c3Qgbm90IGJlIGNhbGxlZCIKKworY2xhc3MgV3JpdGVXcmFwcGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgd3NnaV93cml0ZXIpOgorICAgICAgICBzZWxmLndyaXRlciA9IHdzZ2lfd3JpdGVyCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcyk6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHMsIHNpeC5iaW5hcnlfdHlwZSkKKyAgICAgICAgc2VsZi53cml0ZXIocykKKworY2xhc3MgUGFydGlhbEl0ZXJhdG9yV3JhcHBlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHdzZ2lfaXRlcmF0b3IpOgorICAgICAgICBzZWxmLml0ZXJhdG9yID0gd3NnaV9pdGVyYXRvcgorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAjIFdlIHdhbnQgdG8gbWFrZSBzdXJlIF9faXRlcl9fIGlzIGNhbGxlZAorICAgICAgICByZXR1cm4gSXRlcmF0b3JXcmFwcGVyKHNlbGYuaXRlcmF0b3IpCisKK2NsYXNzIEl0ZXJhdG9yV3JhcHBlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHdzZ2lfaXRlcmF0b3IsIGNoZWNrX3N0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc2VsZi5vcmlnaW5hbF9pdGVyYXRvciA9IHdzZ2lfaXRlcmF0b3IKKyAgICAgICAgc2VsZi5pdGVyYXRvciA9IGl0ZXIod3NnaV9pdGVyYXRvcikKKyAgICAgICAgc2VsZi5jbG9zZWQgPSBGYWxzZQorICAgICAgICBzZWxmLmNoZWNrX3N0YXJ0X3Jlc3BvbnNlID0gY2hlY2tfc3RhcnRfcmVzcG9uc2UKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBuZXh0KHNlbGYpOgorICAgICAgICBhc3NlcnQgbm90IHNlbGYuY2xvc2VkLCAoCisgICAgICAgICAgICAiSXRlcmF0b3IgcmVhZCBhZnRlciBjbG9zZWQiKQorICAgICAgICB2ID0gc2l4Lm5leHQoc2VsZi5pdGVyYXRvcikKKyAgICAgICAgaWYgc2VsZi5jaGVja19zdGFydF9yZXNwb25zZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFzc2VydCBzZWxmLmNoZWNrX3N0YXJ0X3Jlc3BvbnNlLCAoCisgICAgICAgICAgICAgICAgIlRoZSBhcHBsaWNhdGlvbiByZXR1cm5zIGFuZCB3ZSBzdGFydGVkIGl0ZXJhdGluZyBvdmVyIGl0cyBib2R5LCBidXQgc3RhcnRfcmVzcG9uc2UgaGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQiKQorICAgICAgICAgICAgc2VsZi5jaGVja19zdGFydF9yZXNwb25zZSA9IE5vbmUKKyAgICAgICAgcmV0dXJuIHYKKworICAgIF9fbmV4dF9fID0gbmV4dAorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBzZWxmLmNsb3NlZCA9IFRydWUKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLm9yaWdpbmFsX2l0ZXJhdG9yLCAnY2xvc2UnKToKKyAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfaXRlcmF0b3IuY2xvc2UoKQorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLmNsb3NlZDoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgIkl0ZXJhdG9yIGdhcmJhZ2UgY29sbGVjdGVkIHdpdGhvdXQgYmVpbmcgY2xvc2VkIikKKyAgICAgICAgYXNzZXJ0IHNlbGYuY2xvc2VkLCAoCisgICAgICAgICAgICAiSXRlcmF0b3IgZ2FyYmFnZSBjb2xsZWN0ZWQgd2l0aG91dCBiZWluZyBjbG9zZWQiKQorCitkZWYgY2hlY2tfZW52aXJvbihlbnZpcm9uKToKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShlbnZpcm9uLGRpY3QpLCAoCisgICAgICAgICJFbnZpcm9ubWVudCBpcyBub3Qgb2YgdGhlIHJpZ2h0IHR5cGU6ICVyIChlbnZpcm9ubWVudDogJXIpIgorICAgICAgICAlICh0eXBlKGVudmlyb24pLCBlbnZpcm9uKSkKKworICAgIGZvciBrZXkgaW4gWydSRVFVRVNUX01FVEhPRCcsICdTRVJWRVJfTkFNRScsICdTRVJWRVJfUE9SVCcsCisgICAgICAgICAgICAgICAgJ3dzZ2kudmVyc2lvbicsICd3c2dpLmlucHV0JywgJ3dzZ2kuZXJyb3JzJywKKyAgICAgICAgICAgICAgICAnd3NnaS5tdWx0aXRocmVhZCcsICd3c2dpLm11bHRpcHJvY2VzcycsCisgICAgICAgICAgICAgICAgJ3dzZ2kucnVuX29uY2UnXToKKyAgICAgICAgYXNzZXJ0IGtleSBpbiBlbnZpcm9uLCAoCisgICAgICAgICAgICAiRW52aXJvbm1lbnQgbWlzc2luZyByZXF1aXJlZCBrZXk6ICVyIiAlIGtleSkKKworICAgIGZvciBrZXkgaW4gWydIVFRQX0NPTlRFTlRfVFlQRScsICdIVFRQX0NPTlRFTlRfTEVOR1RIJ106CisgICAgICAgIGFzc2VydCBrZXkgbm90IGluIGVudmlyb24sICgKKyAgICAgICAgICAgICJFbnZpcm9ubWVudCBzaG91bGQgbm90IGhhdmUgdGhlIGtleTogJXMgIgorICAgICAgICAgICAgIih1c2UgJXMgaW5zdGVhZCkiICUgKGtleSwga2V5WzU6XSkpCisKKyAgICBpZiAnUVVFUllfU1RSSU5HJyBub3QgaW4gZW52aXJvbjoKKyAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICdRVUVSWV9TVFJJTkcgaXMgbm90IGluIHRoZSBXU0dJIGVudmlyb25tZW50OyB0aGUgY2dpICcKKyAgICAgICAgICAgICdtb2R1bGUgd2lsbCB1c2Ugc3lzLmFyZ3Ygd2hlbiB0aGlzIHZhcmlhYmxlIGlzIG1pc3NpbmcsICcKKyAgICAgICAgICAgICdzbyBhcHBsaWNhdGlvbiBlcnJvcnMgYXJlIG1vcmUgbGlrZWx5JywKKyAgICAgICAgICAgIFdTR0lXYXJuaW5nKQorCisgICAgZm9yIGtleSBpbiBlbnZpcm9uLmtleXMoKToKKyAgICAgICAgaWYgJy4nIGluIGtleToKKyAgICAgICAgICAgICMgRXh0ZW5zaW9uLCB3ZSBkb24ndCBjYXJlIGFib3V0IGl0cyB0eXBlCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShlbnZpcm9uW2tleV0sIHN0ciksICgKKyAgICAgICAgICAgICJFbnZpcm9ubWVudGFsIHZhcmlhYmxlICVzIGlzIG5vdCBhIHN0cmluZzogJXIgKHZhbHVlOiAlcikiCisgICAgICAgICAgICAlIChrZXksIHR5cGUoZW52aXJvbltrZXldKSwgZW52aXJvbltrZXldKSkKKworICAgIGFzc2VydCBpc2luc3RhbmNlKGVudmlyb25bJ3dzZ2kudmVyc2lvbiddLCB0dXBsZSksICgKKyAgICAgICAgIndzZ2kudmVyc2lvbiBzaG91bGQgYmUgYSB0dXBsZSAoJXIpIiAlIGVudmlyb25bJ3dzZ2kudmVyc2lvbiddKQorICAgIGFzc2VydCBlbnZpcm9uWyd3c2dpLnVybF9zY2hlbWUnXSBpbiAoJ2h0dHAnLCAnaHR0cHMnKSwgKAorICAgICAgICAid3NnaS51cmxfc2NoZW1lIHVua25vd246ICVyIiAlIGVudmlyb25bJ3dzZ2kudXJsX3NjaGVtZSddKQorCisgICAgY2hlY2tfaW5wdXQoZW52aXJvblsnd3NnaS5pbnB1dCddKQorICAgIGNoZWNrX2Vycm9ycyhlbnZpcm9uWyd3c2dpLmVycm9ycyddKQorCisgICAgIyBAQDogdGhlc2UgbmVlZCBmaWxsaW5nIG91dDoKKyAgICBpZiBlbnZpcm9uWydSRVFVRVNUX01FVEhPRCddIG5vdCBpbiAoCisgICAgICAgICdHRVQnLCAnSEVBRCcsICdQT1NUJywgJ09QVElPTlMnLCdQVVQnLCdERUxFVEUnLCdUUkFDRScpOgorICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgIlVua25vd24gUkVRVUVTVF9NRVRIT0Q6ICVyIiAlIGVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10sCisgICAgICAgICAgICBXU0dJV2FybmluZykKKworICAgIGFzc2VydCAobm90IGVudmlyb24uZ2V0KCdTQ1JJUFRfTkFNRScpCisgICAgICAgICAgICBvciBlbnZpcm9uWydTQ1JJUFRfTkFNRSddLnN0YXJ0c3dpdGgoJy8nKSksICgKKyAgICAgICAgIlNDUklQVF9OQU1FIGRvZXNuJ3Qgc3RhcnQgd2l0aCAvOiAlciIgJSBlbnZpcm9uWydTQ1JJUFRfTkFNRSddKQorICAgIGFzc2VydCAobm90IGVudmlyb24uZ2V0KCdQQVRIX0lORk8nKQorICAgICAgICAgICAgb3IgZW52aXJvblsnUEFUSF9JTkZPJ10uc3RhcnRzd2l0aCgnLycpKSwgKAorICAgICAgICAiUEFUSF9JTkZPIGRvZXNuJ3Qgc3RhcnQgd2l0aCAvOiAlciIgJSBlbnZpcm9uWydQQVRIX0lORk8nXSkKKyAgICBpZiBlbnZpcm9uLmdldCgnQ09OVEVOVF9MRU5HVEgnKToKKyAgICAgICAgYXNzZXJ0IGludChlbnZpcm9uWydDT05URU5UX0xFTkdUSCddKSA+PSAwLCAoCisgICAgICAgICAgICAiSW52YWxpZCBDT05URU5UX0xFTkdUSDogJXIiICUgZW52aXJvblsnQ09OVEVOVF9MRU5HVEgnXSkKKworICAgIGlmIG5vdCBlbnZpcm9uLmdldCgnU0NSSVBUX05BTUUnKToKKyAgICAgICAgYXNzZXJ0ICdQQVRIX0lORk8nIGluIGVudmlyb24sICgKKyAgICAgICAgICAgICJPbmUgb2YgU0NSSVBUX05BTUUgb3IgUEFUSF9JTkZPIGFyZSByZXF1aXJlZCAoUEFUSF9JTkZPICIKKyAgICAgICAgICAgICJzaG91bGQgYXQgbGVhc3QgYmUgJy8nIGlmIFNDUklQVF9OQU1FIGlzIGVtcHR5KSIpCisgICAgYXNzZXJ0IGVudmlyb24uZ2V0KCdTQ1JJUFRfTkFNRScpICE9ICcvJywgKAorICAgICAgICAiU0NSSVBUX05BTUUgY2Fubm90IGJlICcvJzsgaXQgc2hvdWxkIGluc3RlYWQgYmUgJycsIGFuZCAiCisgICAgICAgICJQQVRIX0lORk8gc2hvdWxkIGJlICcvJyIpCisKK2RlZiBjaGVja19pbnB1dCh3c2dpX2lucHV0KToKKyAgICBmb3IgYXR0ciBpbiBbJ3JlYWQnLCAncmVhZGxpbmUnLCAncmVhZGxpbmVzJywgJ19faXRlcl9fJ106CisgICAgICAgIGFzc2VydCBoYXNhdHRyKHdzZ2lfaW5wdXQsIGF0dHIpLCAoCisgICAgICAgICAgICAid3NnaS5pbnB1dCAoJXIpIGRvZXNuJ3QgaGF2ZSB0aGUgYXR0cmlidXRlICVzIgorICAgICAgICAgICAgJSAod3NnaV9pbnB1dCwgYXR0cikpCisKK2RlZiBjaGVja19lcnJvcnMod3NnaV9lcnJvcnMpOgorICAgIGZvciBhdHRyIGluIFsnZmx1c2gnLCAnd3JpdGUnLCAnd3JpdGVsaW5lcyddOgorICAgICAgICBhc3NlcnQgaGFzYXR0cih3c2dpX2Vycm9ycywgYXR0ciksICgKKyAgICAgICAgICAgICJ3c2dpLmVycm9ycyAoJXIpIGRvZXNuJ3QgaGF2ZSB0aGUgYXR0cmlidXRlICVzIgorICAgICAgICAgICAgJSAod3NnaV9lcnJvcnMsIGF0dHIpKQorCitkZWYgY2hlY2tfc3RhdHVzKHN0YXR1cyk6CisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc3RhdHVzLCBzdHIpLCAoCisgICAgICAgICJTdGF0dXMgbXVzdCBiZSBhIHN0cmluZyAobm90ICVyKSIgJSBzdGF0dXMpCisgICAgIyBJbXBsaWNpdGx5IGNoZWNrIHRoYXQgd2UgY2FuIHR1cm4gaXQgaW50byBhbiBpbnRlZ2VyOgorICAgIHN0YXR1c19jb2RlID0gc3RhdHVzLnNwbGl0KE5vbmUsIDEpWzBdCisgICAgYXNzZXJ0IGxlbihzdGF0dXNfY29kZSkgPT0gMywgKAorICAgICAgICAiU3RhdHVzIGNvZGVzIG11c3QgYmUgdGhyZWUgY2hhcmFjdGVyczogJXIiICUgc3RhdHVzX2NvZGUpCisgICAgc3RhdHVzX2ludCA9IGludChzdGF0dXNfY29kZSkKKyAgICBhc3NlcnQgc3RhdHVzX2ludCA+PSAxMDAsICJTdGF0dXMgY29kZSBpcyBpbnZhbGlkOiAlciIgJSBzdGF0dXNfaW50CisgICAgaWYgbGVuKHN0YXR1cykgPCA0IG9yIHN0YXR1c1szXSAhPSAnICc6CisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAiVGhlIHN0YXR1cyBzdHJpbmcgKCVyKSBzaG91bGQgYmUgYSB0aHJlZS1kaWdpdCBpbnRlZ2VyICIKKyAgICAgICAgICAgICJmb2xsb3dlZCBieSBhIHNpbmdsZSBzcGFjZSBhbmQgYSBzdGF0dXMgZXhwbGFuYXRpb24iCisgICAgICAgICAgICAlIHN0YXR1cywgV1NHSVdhcm5pbmcpCisKK2RlZiBjaGVja19oZWFkZXJzKGhlYWRlcnMpOgorICAgIGFzc2VydCBpc2luc3RhbmNlKGhlYWRlcnMsbGlzdCksICgKKyAgICAgICAgIkhlYWRlcnMgKCVyKSBtdXN0IGJlIG9mIHR5cGUgbGlzdDogJXIiCisgICAgICAgICUgKGhlYWRlcnMsIHR5cGUoaGVhZGVycykpKQorICAgIGhlYWRlcl9uYW1lcyA9IHt9CisgICAgZm9yIGl0ZW0gaW4gaGVhZGVyczoKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbSwgdHVwbGUpLCAoCisgICAgICAgICAgICAiSW5kaXZpZHVhbCBoZWFkZXJzICglcikgbXVzdCBiZSBvZiB0eXBlIHR1cGxlOiAlciIKKyAgICAgICAgICAgICUgKGl0ZW0sIHR5cGUoaXRlbSkpKQorICAgICAgICBhc3NlcnQgbGVuKGl0ZW0pID09IDIKKyAgICAgICAgbmFtZSwgdmFsdWUgPSBpdGVtCisgICAgICAgIGFzc2VydCBuYW1lLmxvd2VyKCkgIT0gJ3N0YXR1cycsICgKKyAgICAgICAgICAgICJUaGUgU3RhdHVzIGhlYWRlciBjYW5ub3QgYmUgdXNlZDsgaXQgY29uZmxpY3RzIHdpdGggQ0dJICIKKyAgICAgICAgICAgICJzY3JpcHQsIGFuZCBIVFRQIHN0YXR1cyBpcyBub3QgZ2l2ZW4gdGhyb3VnaCBoZWFkZXJzICIKKyAgICAgICAgICAgICIodmFsdWU6ICVyKS4iICUgdmFsdWUpCisgICAgICAgIGhlYWRlcl9uYW1lc1tuYW1lLmxvd2VyKCldID0gTm9uZQorICAgICAgICBhc3NlcnQgJ1xuJyBub3QgaW4gbmFtZSBhbmQgJzonIG5vdCBpbiBuYW1lLCAoCisgICAgICAgICAgICAiSGVhZGVyIG5hbWVzIG1heSBub3QgY29udGFpbiAnOicgb3IgJ1xcbic6ICVyIiAlIG5hbWUpCisgICAgICAgIGFzc2VydCBoZWFkZXJfcmUuc2VhcmNoKG5hbWUpLCAiQmFkIGhlYWRlciBuYW1lOiAlciIgJSBuYW1lCisgICAgICAgIGFzc2VydCBub3QgbmFtZS5lbmRzd2l0aCgnLScpIGFuZCBub3QgbmFtZS5lbmRzd2l0aCgnXycpLCAoCisgICAgICAgICAgICAiTmFtZXMgbWF5IG5vdCBlbmQgaW4gJy0nIG9yICdfJzogJXIiICUgbmFtZSkKKyAgICAgICAgYXNzZXJ0IG5vdCBiYWRfaGVhZGVyX3ZhbHVlX3JlLnNlYXJjaCh2YWx1ZSksICgKKyAgICAgICAgICAgICJCYWQgaGVhZGVyIHZhbHVlOiAlciAoYmFkIGNoYXI6ICVyKSIKKyAgICAgICAgICAgICUgKHZhbHVlLCBiYWRfaGVhZGVyX3ZhbHVlX3JlLnNlYXJjaCh2YWx1ZSkuZ3JvdXAoMCkpKQorCitkZWYgY2hlY2tfY29udGVudF90eXBlKHN0YXR1cywgaGVhZGVycyk6CisgICAgY29kZSA9IGludChzdGF0dXMuc3BsaXQoTm9uZSwgMSlbMF0pCisgICAgIyBAQDogbmVlZCBvbmUgbW9yZSBwZXJzb24gdG8gdmVyaWZ5IHRoaXMgaW50ZXJwcmV0YXRpb24gb2YgUkZDIDI2MTYKKyAgICAjICAgICBodHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzEwLmh0bWwKKyAgICBOT19NRVNTQUdFX0JPRFkgPSAoMjA0LCAzMDQpCisgICAgTk9fTUVTU0FHRV9UWVBFID0gKDIwNCwgMzA0KQorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBoZWFkZXJzOgorICAgICAgICBpZiBuYW1lLmxvd2VyKCkgPT0gJ2NvbnRlbnQtdHlwZSc6CisgICAgICAgICAgICBpZiBjb2RlIG5vdCBpbiBOT19NRVNTQUdFX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBhc3NlcnQgMCwgKCgiQ29udGVudC1UeXBlIGhlYWRlciBmb3VuZCBpbiBhICVzIHJlc3BvbnNlLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAid2hpY2ggbXVzdCBub3QgcmV0dXJuIGNvbnRlbnQuIikgJSBjb2RlKQorICAgIGlmIGNvZGUgbm90IGluIE5PX01FU1NBR0VfQk9EWToKKyAgICAgICAgYXNzZXJ0IDAsICJObyBDb250ZW50LVR5cGUgaGVhZGVyIGZvdW5kIGluIGhlYWRlcnMgKCVzKSIgJSBoZWFkZXJzCisKK2RlZiBjaGVja19leGNfaW5mbyhleGNfaW5mbyk6CisgICAgYXNzZXJ0IGV4Y19pbmZvIGlzIE5vbmUgb3IgdHlwZShleGNfaW5mbykgaXMgdHlwZSgoKSksICgKKyAgICAgICAgImV4Y19pbmZvICglcikgaXMgbm90IGEgdHVwbGU6ICVyIiAlIChleGNfaW5mbywgdHlwZShleGNfaW5mbykpKQorICAgICMgTW9yZSBleGNfaW5mbyBjaGVja3M/CisKK2RlZiBjaGVja19pdGVyYXRvcihpdGVyYXRvcik6CisgICAgIyBUZWNobmljYWxseSBhIHN0cmluZyBpcyBsZWdhbCwgd2hpY2ggaXMgd2h5IGl0J3MgYSByZWFsbHkgYmFkCisgICAgIyBpZGVhLCBiZWNhdXNlIGl0IG1heSBjYXVzZSB0aGUgcmVzcG9uc2UgdG8gYmUgcmV0dXJuZWQKKyAgICAjIGNoYXJhY3Rlci1ieS1jaGFyYWN0ZXIKKyAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2UoaXRlcmF0b3IsIHN0ciksICgKKyAgICAgICAgIllvdSBzaG91bGQgbm90IHJldHVybiBhIHN0cmluZyBhcyB5b3VyIGFwcGxpY2F0aW9uIGl0ZXJhdG9yLCAiCisgICAgICAgICJpbnN0ZWFkIHJldHVybiBhIHNpbmdsZS1pdGVtIGxpc3QgY29udGFpbmluZyB0aGF0IHN0cmluZy4iKQorCitkZWYgbWFrZV9taWRkbGV3YXJlKGFwcGxpY2F0aW9uLCBnbG9iYWxfY29uZik6CisgICAgIyBAQDogZ2xvYmFsX2NvbmYgc2hvdWxkIGJlIHRha2VuIG91dCBvZiB0aGUgbWlkZGxld2FyZSBmdW5jdGlvbiwKKyAgICAjIGFuZCBpc29sYXRlZCBoZXJlCisgICAgcmV0dXJuIG1pZGRsZXdhcmUoYXBwbGljYXRpb24pCisKK21ha2VfbWlkZGxld2FyZS5fX2RvY19fID0gX19kb2NfXworCitfX2FsbF9fID0gWydtaWRkbGV3YXJlJywgJ21ha2VfbWlkZGxld2FyZSddCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvbW9kcHl0aG9uLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL21vZHB5dGhvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjBhNTg4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL21vZHB5dGhvbi5weQpAQCAtMCwwICsxLDI1MyBAQAorIiIiV1NHSSBQYXN0ZSB3cmFwcGVyIGZvciBtb2RfcHl0aG9uLiBSZXF1aXJlcyBQeXRob24gMi4yIG9yIGdyZWF0ZXIuCisKKworRXhhbXBsZSBodHRwZC5jb25mIHNlY3Rpb24gZm9yIGEgUGFzdGUgYXBwIHdpdGggYW4gaW5pIGZpbGU6OgorCisgICAgPExvY2F0aW9uIC8+CisgICAgICAgIFNldEhhbmRsZXIgcHl0aG9uLXByb2dyYW0KKyAgICAgICAgUHl0aG9uSGFuZGxlciBwYXN0ZS5tb2RweXRob24KKyAgICAgICAgUHl0aG9uT3B0aW9uIHBhc3RlLmluaSAvc29tZS9sb2NhdGlvbi95b3VyL3Bhc3RlY29uZmlnLmluaQorICAgIDwvTG9jYXRpb24+CisKK09yIGlmIHlvdSB3YW50IHRvIGxvYWQgYSBXU0dJIGFwcGxpY2F0aW9uIHVuZGVyIC95b3VyL2hvbWVkaXIgaW4gdGhlIG1vZHVsZQorYGBzdGFydHVwYGAgYW5kIHRoZSBXU0dJIGFwcCBpcyBgYGFwcGBgOjoKKworICAgIDxMb2NhdGlvbiAvPgorICAgICAgICBTZXRIYW5kbGVyIHB5dGhvbi1wcm9ncmFtCisgICAgICAgIFB5dGhvbkhhbmRsZXIgcGFzdGUubW9kcHl0aG9uCisgICAgICAgIFB5dGhvblBhdGggIlsnL3ZpcnR1YWwvcHJvamVjdC9kaXJlY3RvcnknXSArIHN5cy5wYXRoIgorICAgICAgICBQeXRob25PcHRpb24gd3NnaS5hcHBsaWNhdGlvbiBzdGFydHVwOjphcHAKKyAgICA8L0xvY2F0aW9uPgorCisKK0lmIHlvdSdkIGxpa2UgdG8gdXNlIGEgdmlydHVhbCBpbnN0YWxsYXRpb24sIG1ha2Ugc3VyZSB0byBhZGQgaXQgaW4gdGhlIHBhdGgKK2xpa2Ugc286OgorCisgICAgPExvY2F0aW9uIC8+CisgICAgICAgIFNldEhhbmRsZXIgcHl0aG9uLXByb2dyYW0KKyAgICAgICAgUHl0aG9uSGFuZGxlciBwYXN0ZS5tb2RweXRob24KKyAgICAgICAgUHl0aG9uUGF0aCAiWycvdmlydHVhbC9wcm9qZWN0L2RpcmVjdG9yeScsICcvdmlydHVhbC9saWIvcHl0aG9uMi40LyddICsgc3lzLnBhdGgiCisgICAgICAgIFB5dGhvbk9wdGlvbiBwYXN0ZS5pbmkgL3ZpcnR1YWwvcHJvamVjdC9kaXJlY3RvcnkvcGFzdGVjb25maWcuaW5pCisgICAgPC9Mb2NhdGlvbj4KKworU29tZSBXU0dJIGltcGxlbWVudGF0aW9ucyBhc3N1bWUgdGhhdCB0aGUgU0NSSVBUX05BTUUgZW52aXJvbiB2YXJpYWJsZSB3aWxsCithbHdheXMgYmUgZXF1YWwgdG8gInRoZSByb290IFVSTCBvZiB0aGUgYXBwIjsgQXBhY2hlIHByb2JhYmx5IHdvbid0IGFjdCBhcworeW91IGV4cGVjdCBpbiB0aGF0IGNhc2UuIFlvdSBjYW4gYWRkIGFub3RoZXIgUHl0aG9uT3B0aW9uIGRpcmVjdGl2ZSB0byB0ZWxsCittb2RweXRob25fZ2F0ZXdheSB0byBmb3JjZSB0aGF0IGJlaGF2aW9yOgorCisgICAgUHl0aG9uT3B0aW9uIFNDUklQVF9OQU1FIC9tY29udHJvbAorCitTb21lIFdTR0kgYXBwbGljYXRpb25zIG5lZWQgdG8gYmUgY2xlYW5lZCB1cCB3aGVuIEFwYWNoZSBleGl0cy4gWW91IGNhbgorcmVnaXN0ZXIgYSBjbGVhbnVwIGhhbmRsZXIgd2l0aCB5ZXQgYW5vdGhlciBQeXRob25PcHRpb24gZGlyZWN0aXZlOgorCisgICAgUHl0aG9uT3B0aW9uIHdzZ2kuY2xlYW51cCBtb2R1bGU6OmZ1bmN0aW9uCisKK1RoZSBtb2R1bGUuZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMgb24gc2VydmVyIHNodXRkb3duLAorb25jZSBmb3IgZWFjaCBjaGlsZCBwcm9jZXNzIG9yIHRocmVhZC4KKworVGhpcyBtb2R1bGUgaGlnaGx5IGJhc2VkIG9uIFJvYmVydCBCcmV3ZXIncywgaGVyZToKK2h0dHA6Ly9wcm9qZWN0cy5hbW9yLm9yZy9taXNjL3N2bi9tb2RweXRob25fZ2F0ZXdheS5weQorIiIiCisKK2ltcG9ydCBzaXgKK2ltcG9ydCB0cmFjZWJhY2sKKwordHJ5OgorICAgIGZyb20gbW9kX3B5dGhvbiBpbXBvcnQgYXBhY2hlCitleGNlcHQ6CisgICAgcGFzcworZnJvbSBwYXN0ZS5kZXBsb3kgaW1wb3J0IGxvYWRhcHAKKworY2xhc3MgSW5wdXRXcmFwcGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxKToKKyAgICAgICAgc2VsZi5yZXEgPSByZXEKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHJlYWQoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgIHJldHVybiBzZWxmLnJlcS5yZWFkKHNpemUpCisKKyAgICBkZWYgcmVhZGxpbmUoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgIHJldHVybiBzZWxmLnJlcS5yZWFkbGluZShzaXplKQorCisgICAgZGVmIHJlYWRsaW5lcyhzZWxmLCBoaW50PS0xKToKKyAgICAgICAgcmV0dXJuIHNlbGYucmVxLnJlYWRsaW5lcyhoaW50KQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBsaW5lID0gc2VsZi5yZWFkbGluZSgpCisgICAgICAgIHdoaWxlIGxpbmU6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgICAgICAjIE5vdGljZSB0aGlzIHdvbid0IHByZWZldGNoIHRoZSBuZXh0IGxpbmU7IGl0IG9ubHkKKyAgICAgICAgICAgICMgZ2V0cyBjYWxsZWQgaWYgdGhlIGdlbmVyYXRvciBpcyByZXN1bWVkLgorICAgICAgICAgICAgbGluZSA9IHNlbGYucmVhZGxpbmUoKQorCisKK2NsYXNzIEVycm9yV3JhcHBlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcSk6CisgICAgICAgIHNlbGYucmVxID0gcmVxCisKKyAgICBkZWYgZmx1c2goc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB3cml0ZShzZWxmLCBtc2cpOgorICAgICAgICBzZWxmLnJlcS5sb2dfZXJyb3IobXNnKQorCisgICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgc2VxKToKKyAgICAgICAgc2VsZi53cml0ZSgnJy5qb2luKHNlcSkpCisKKworYmFkX3ZhbHVlID0gKCJZb3UgbXVzdCBwcm92aWRlIGEgUHl0aG9uT3B0aW9uICclcycsIGVpdGhlciAnb24nIG9yICdvZmYnLCAiCisgICAgICAgICAgICAgIndoZW4gcnVubmluZyBhIHZlcnNpb24gb2YgbW9kX3B5dGhvbiA8IDMuMSIpCisKKworY2xhc3MgSGFuZGxlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcSk6CisgICAgICAgIHNlbGYuc3RhcnRlZCA9IEZhbHNlCisKKyAgICAgICAgb3B0aW9ucyA9IHJlcS5nZXRfb3B0aW9ucygpCisKKyAgICAgICAgIyBUaHJlYWRpbmcgYW5kIGZvcmtpbmcKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcSA9IGFwYWNoZS5tcG1fcXVlcnkKKyAgICAgICAgICAgIHRocmVhZGVkID0gcShhcGFjaGUuQVBfTVBNUV9JU19USFJFQURFRCkKKyAgICAgICAgICAgIGZvcmtlZCA9IHEoYXBhY2hlLkFQX01QTVFfSVNfRk9SS0VEKQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICB0aHJlYWRlZCA9IG9wdGlvbnMuZ2V0KCdtdWx0aXRocmVhZCcsICcnKS5sb3dlcigpCisgICAgICAgICAgICBpZiB0aHJlYWRlZCA9PSAnb24nOgorICAgICAgICAgICAgICAgIHRocmVhZGVkID0gVHJ1ZQorICAgICAgICAgICAgZWxpZiB0aHJlYWRlZCA9PSAnb2ZmJzoKKyAgICAgICAgICAgICAgICB0aHJlYWRlZCA9IEZhbHNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoYmFkX3ZhbHVlICUgIm11bHRpdGhyZWFkIikKKworICAgICAgICAgICAgZm9ya2VkID0gb3B0aW9ucy5nZXQoJ211bHRpcHJvY2VzcycsICcnKS5sb3dlcigpCisgICAgICAgICAgICBpZiBmb3JrZWQgPT0gJ29uJzoKKyAgICAgICAgICAgICAgICBmb3JrZWQgPSBUcnVlCisgICAgICAgICAgICBlbGlmIGZvcmtlZCA9PSAnb2ZmJzoKKyAgICAgICAgICAgICAgICBmb3JrZWQgPSBGYWxzZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGJhZF92YWx1ZSAlICJtdWx0aXByb2Nlc3MiKQorCisgICAgICAgIGVudiA9IHNlbGYuZW52aXJvbiA9IGRpY3QoYXBhY2hlLmJ1aWxkX2NnaV9lbnYocmVxKSkKKworICAgICAgICBpZiAnU0NSSVBUX05BTUUnIGluIG9wdGlvbnM6CisgICAgICAgICAgICAjIE92ZXJyaWRlIFNDUklQVF9OQU1FIGFuZCBQQVRIX0lORk8gaWYgcmVxdWVzdGVkLgorICAgICAgICAgICAgZW52WydTQ1JJUFRfTkFNRSddID0gb3B0aW9uc1snU0NSSVBUX05BTUUnXQorICAgICAgICAgICAgZW52WydQQVRIX0lORk8nXSA9IHJlcS51cmlbbGVuKG9wdGlvbnNbJ1NDUklQVF9OQU1FJ10pOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudlsnU0NSSVBUX05BTUUnXSA9ICcnCisgICAgICAgICAgICBlbnZbJ1BBVEhfSU5GTyddID0gcmVxLnVyaQorCisgICAgICAgIGVudlsnd3NnaS5pbnB1dCddID0gSW5wdXRXcmFwcGVyKHJlcSkKKyAgICAgICAgZW52Wyd3c2dpLmVycm9ycyddID0gRXJyb3JXcmFwcGVyKHJlcSkKKyAgICAgICAgZW52Wyd3c2dpLnZlcnNpb24nXSA9ICgxLCAwKQorICAgICAgICBlbnZbJ3dzZ2kucnVuX29uY2UnXSA9IEZhbHNlCisgICAgICAgIGlmIGVudi5nZXQoIkhUVFBTIikgaW4gKCd5ZXMnLCAnb24nLCAnMScpOgorICAgICAgICAgICAgZW52Wyd3c2dpLnVybF9zY2hlbWUnXSA9ICdodHRwcycKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudlsnd3NnaS51cmxfc2NoZW1lJ10gPSAnaHR0cCcKKyAgICAgICAgZW52Wyd3c2dpLm11bHRpdGhyZWFkJ10gID0gdGhyZWFkZWQKKyAgICAgICAgZW52Wyd3c2dpLm11bHRpcHJvY2VzcyddID0gZm9ya2VkCisKKyAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxCisKKyAgICBkZWYgcnVuKHNlbGYsIGFwcGxpY2F0aW9uKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gYXBwbGljYXRpb24oc2VsZi5lbnZpcm9uLCBzZWxmLnN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgZm9yIGRhdGEgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoZGF0YSkKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLnN0YXJ0ZWQ6CisgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0LnNldF9jb250ZW50X2xlbmd0aCgwKQorICAgICAgICAgICAgaWYgaGFzYXR0cihyZXN1bHQsICdjbG9zZScpOgorICAgICAgICAgICAgICAgIHJlc3VsdC5jbG9zZSgpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoTm9uZSwgc2VsZi5lbnZpcm9uWyd3c2dpLmVycm9ycyddKQorICAgICAgICAgICAgaWYgbm90IHNlbGYuc3RhcnRlZDoKKyAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3Quc3RhdHVzID0gNTAwCisgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0LmNvbnRlbnRfdHlwZSA9ICd0ZXh0L3BsYWluJworICAgICAgICAgICAgICAgIGRhdGEgPSAiQSBzZXJ2ZXIgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLiIKKyAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3Quc2V0X2NvbnRlbnRfbGVuZ3RoKGxlbihkYXRhKSkKKyAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3Qud3JpdGUoZGF0YSkKKworICAgIGRlZiBzdGFydF9yZXNwb25zZShzZWxmLCBzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICBpZiBleGNfaW5mbzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnN0YXJ0ZWQ6CisgICAgICAgICAgICAgICAgICAgIHNpeC5yZXJhaXNlKGV4Y19pbmZvWzBdLCBleGNfaW5mb1sxXSwgZXhjX2luZm9bMl0pCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGV4Y19pbmZvID0gTm9uZQorCisgICAgICAgIHNlbGYucmVxdWVzdC5zdGF0dXMgPSBpbnQoc3RhdHVzWzozXSkKKworICAgICAgICBmb3Iga2V5LCB2YWwgaW4gaGVhZGVyczoKKyAgICAgICAgICAgIGlmIGtleS5sb3dlcigpID09ICdjb250ZW50LWxlbmd0aCc6CisgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0LnNldF9jb250ZW50X2xlbmd0aChpbnQodmFsKSkKKyAgICAgICAgICAgIGVsaWYga2V5Lmxvd2VyKCkgPT0gJ2NvbnRlbnQtdHlwZSc6CisgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0LmNvbnRlbnRfdHlwZSA9IHZhbAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3QuaGVhZGVyc19vdXQuYWRkKGtleSwgdmFsKQorCisgICAgICAgIHJldHVybiBzZWxmLndyaXRlCisKKyAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmIG5vdCBzZWxmLnN0YXJ0ZWQ6CisgICAgICAgICAgICBzZWxmLnN0YXJ0ZWQgPSBUcnVlCisgICAgICAgIHNlbGYucmVxdWVzdC53cml0ZShkYXRhKQorCisKK3N0YXJ0dXAgPSBOb25lCitjbGVhbnVwID0gTm9uZQord3NnaWFwcHMgPSB7fQorCitkZWYgaGFuZGxlcihyZXEpOgorICAgIG9wdGlvbnMgPSByZXEuZ2V0X29wdGlvbnMoKQorICAgICMgUnVuIGEgc3RhcnR1cCBmdW5jdGlvbiBpZiByZXF1ZXN0ZWQuCisgICAgZ2xvYmFsIHN0YXJ0dXAKKyAgICBpZiAnd3NnaS5zdGFydHVwJyBpbiBvcHRpb25zIGFuZCBub3Qgc3RhcnR1cDoKKyAgICAgICAgZnVuYyA9IG9wdGlvbnNbJ3dzZ2kuc3RhcnR1cCddCisgICAgICAgIGlmIGZ1bmM6CisgICAgICAgICAgICBtb2R1bGVfbmFtZSwgb2JqZWN0X3N0ciA9IGZ1bmMuc3BsaXQoJzo6JywgMSkKKyAgICAgICAgICAgIG1vZHVsZSA9IF9faW1wb3J0X18obW9kdWxlX25hbWUsIGdsb2JhbHMoKSwgbG9jYWxzKCksIFsnJ10pCisgICAgICAgICAgICBzdGFydHVwID0gYXBhY2hlLnJlc29sdmVfb2JqZWN0KG1vZHVsZSwgb2JqZWN0X3N0cikKKyAgICAgICAgICAgIHN0YXJ0dXAocmVxKQorCisgICAgIyBSZWdpc3RlciBhIGNsZWFudXAgZnVuY3Rpb24gaWYgcmVxdWVzdGVkLgorICAgIGdsb2JhbCBjbGVhbnVwCisgICAgaWYgJ3dzZ2kuY2xlYW51cCcgaW4gb3B0aW9ucyBhbmQgbm90IGNsZWFudXA6CisgICAgICAgIGZ1bmMgPSBvcHRpb25zWyd3c2dpLmNsZWFudXAnXQorICAgICAgICBpZiBmdW5jOgorICAgICAgICAgICAgbW9kdWxlX25hbWUsIG9iamVjdF9zdHIgPSBmdW5jLnNwbGl0KCc6OicsIDEpCisgICAgICAgICAgICBtb2R1bGUgPSBfX2ltcG9ydF9fKG1vZHVsZV9uYW1lLCBnbG9iYWxzKCksIGxvY2FscygpLCBbJyddKQorICAgICAgICAgICAgY2xlYW51cCA9IGFwYWNoZS5yZXNvbHZlX29iamVjdChtb2R1bGUsIG9iamVjdF9zdHIpCisgICAgICAgICAgICBkZWYgY2xlYW5lcihkYXRhKToKKyAgICAgICAgICAgICAgICBjbGVhbnVwKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAjIGFwYWNoZS5yZWdpc3Rlcl9jbGVhbnVwIHdhc24ndCBhdmFpbGFibGUgdW50aWwgMy4xLjQuCisgICAgICAgICAgICAgICAgYXBhY2hlLnJlZ2lzdGVyX2NsZWFudXAoY2xlYW5lcikKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICByZXEuc2VydmVyLnJlZ2lzdGVyX2NsZWFudXAocmVxLCBjbGVhbmVyKQorCisgICAgIyBJbXBvcnQgdGhlIHdzZ2kgJ2FwcGxpY2F0aW9uJyBjYWxsYWJsZSBhbmQgcGFzcyBpdCB0byBIYW5kbGVyLnJ1bgorICAgIGdsb2JhbCB3c2dpYXBwcworICAgIGFwcGluaSA9IG9wdGlvbnMuZ2V0KCdwYXN0ZS5pbmknKQorICAgIGFwcCA9IE5vbmUKKyAgICBpZiBhcHBpbmk6CisgICAgICAgIGlmIGFwcGluaSBub3QgaW4gd3NnaWFwcHM6CisgICAgICAgICAgICB3c2dpYXBwc1thcHBpbmldID0gbG9hZGFwcCgiY29uZmlnOiVzIiAlIGFwcGluaSkKKyAgICAgICAgYXBwID0gd3NnaWFwcHNbYXBwaW5pXQorCisgICAgIyBJbXBvcnQgdGhlIHdzZ2kgJ2FwcGxpY2F0aW9uJyBjYWxsYWJsZSBhbmQgcGFzcyBpdCB0byBIYW5kbGVyLnJ1bgorICAgIGFwcHdzZ2kgPSBvcHRpb25zLmdldCgnd3NnaS5hcHBsaWNhdGlvbicpCisgICAgaWYgYXBwd3NnaSBhbmQgbm90IGFwcGluaToKKyAgICAgICAgbW9kbmFtZSwgb2JqbmFtZSA9IGFwcHdzZ2kuc3BsaXQoJzo6JywgMSkKKyAgICAgICAgbW9kdWxlID0gX19pbXBvcnRfXyhtb2RuYW1lLCBnbG9iYWxzKCksIGxvY2FscygpLCBbJyddKQorICAgICAgICBhcHAgPSBnZXRhdHRyKG1vZHVsZSwgb2JqbmFtZSkKKworICAgIEhhbmRsZXIocmVxKS5ydW4oYXBwKQorCisgICAgIyBzdGF0dXMgd2FzIHNldCBpbiBIYW5kbGVyOyBhbHdheXMgcmV0dXJuIGFwYWNoZS5PSworICAgIHJldHVybiBhcGFjaGUuT0sKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9wb255LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3BvbnkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNlNmFhOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9wb255LnB5CkBAIC0wLDAgKzEsNTcgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorV2UgaGF2ZSBhIHBvbnkgYW5kL29yIGEgdW5pY29ybi4KKyIiIgorZnJvbSBwYXN0ZS5yZXF1ZXN0IGltcG9ydCBjb25zdHJ1Y3RfdXJsCisKK1BPTlkgPSAiIiIKK2VKeUZra0Z1eENBTVJmZHpDaXNiSnhLMkQ1RDJKcGJNcmxJM1hYUVpEdDlQQ0cweVNnY1dJTVQ3OXJjTjBYQ2xVSmxaUkI5alZtY2kKK0ZtVjE5a2hqZ1JGbDBSenJLbXF6dlk4bFJVV0ZsWHZDckQ3VWJBUVIvMTdOVXZHaHlwQUY5b2cxNnZXdGtDOER6VWF5UzZwTjMvZFIKK2tpME9ucHpLalVCRnBtbEM3elZGUk5MMXJ3b3E2UFdYWFFTbkltOVdvVHpsTTIvL2tlMjFvNWcvbDFja1JoaVBia0RaWHNLSVI3bDEKKzM2aEY5dU1oblJpVmpJOFVnWWpsc0lLQ3JYWHBjQTlpWDV5N3pNbXRHMGZVcFc2MVNzdHRpcGY2Y3AzV0FSZmtNVm9ZRnJ5aTJhK3cKK28vMmRoVzBPWGZjTVRubWg1M29SOWVnelBzK3FrcFk5SUt4ZFVWUlA1d0hPN1VEQXVJNm1vQTJOKy96NHZ0YzJrOEIrQUlCaW1WVT0KKyIiIgorCitVTklDT1JOID0gIiIiCitlSnlWVkQxdmhEQU0zZTlYZUF0SXhCNVA2cWxEeDBPTVhWQnpTcFpPSGRzeFA3NjJFMEpBbk1nWjhabjM3T2VQQVBDNjBlVjFEbDViCitTUzdmQjZEbVFOR2h0ZWdwTmxQSVFTOEhta1lHZFNxTnFERjl3Y01ZdXM0VHVCWUdzWndJUHFYZkVvTmlyNUsrUjNtYnpobFI0Sk1XCitlR3Bpa1Bwbjl3SGwyc0RnRUgxMjcwZ3Vad3pLRFJmM25UenRNdmZJNXIzZkpxRW1OeGRDeUlTQmNXak5nalBHOEVnZzJoZ1QzbUppCitLQndOdm1QQjFoYldKM1R3QmZNbHFkVHp4TnlERTJIOHpPRDVIQTRLa3FKR1BWWS9Ud254bVBBODJrZFNKTmo3enMrUjBkMXBCK0pPCit4bjJES2dzZHhBZkZTMnBmVFNEMEZiNlV6djdkQ1FTdkU1Sm1aUUVROTB2TmpCVTFHUHVHUXBDUFM4Y0dvK2RRZ2pJS3F4bkpUWGJ3Cit1Y0Z6UEZWSUpYdHprNkJYS0dQbllzS3p2Rm1HeDdBMGo2WnF2bHZrNXJFVFhiTVdUR1dqMFJGYzhRTlBZVmZoSmZNTW5pQ1BheldKCitsR3RQWmVjSUdKV1c2b0wyaHBiV1JaRWtDaGU4ZWc1V2I3eHgvTUJaQkZqeGVaUEVzcyttUlEzVWhjOFdRdjY4NHNlU1JPN2kzbmI0Cis3SGxLVWc4c3JhejQ3TG1YeWg4UzBzb21BRHZvVXBvSGpHV2wrclVrRjBIK0VJZi9nYnl5TWc1OEJCazZMNjM0L2ZrSFVDb2RNdz09CisiIiIKKworCitjbGFzcyBQb255TWlkZGxld2FyZShvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcGxpY2F0aW9uKToKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBwYXRoX2luZm8gPSBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpCisgICAgICAgIGlmIHBhdGhfaW5mbyA9PSAnL3BvbnknOgorICAgICAgICAgICAgdXJsID0gY29uc3RydWN0X3VybChlbnZpcm9uLCB3aXRoX3F1ZXJ5X3N0cmluZz1GYWxzZSkKKyAgICAgICAgICAgIGlmICdob3JuJyBpbiBlbnZpcm9uLmdldCgnUVVFUllfU1RSSU5HJywgJycpOgorICAgICAgICAgICAgICAgIGRhdGEgPSBVTklDT1JOCisgICAgICAgICAgICAgICAgbGluayA9ICdyZW1vdmUgaG9ybiEnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRhdGEgPSBQT05ZCisgICAgICAgICAgICAgICAgdXJsICs9ICc/aG9ybicKKyAgICAgICAgICAgICAgICBsaW5rID0gJ2FkZCBob3JuIScKKyAgICAgICAgICAgIG1zZyA9IGRhdGEuZGVjb2RlKCdiYXNlNjQnKS5kZWNvZGUoJ3psaWInKQorICAgICAgICAgICAgbXNnID0gJzxwcmU+JXNcbjxhIGhyZWY9IiVzIj4lczwvYT48L3ByZT4nICUgKAorICAgICAgICAgICAgICAgIG1zZywgdXJsLCBsaW5rKQorICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgICAgICByZXR1cm4gW21zZ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCitkZWYgbWFrZV9wb255KGFwcCwgZ2xvYmFsX2NvbmYpOgorICAgICIiIgorICAgIEFkZHMgcG9ueSBwb3dlciB0byBhbnkgYXBwbGljYXRpb24sIGF0IC9wb255CisgICAgIiIiCisgICAgcmV0dXJuIFBvbnlNaWRkbGV3YXJlKGFwcCkKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3Byb2dyZXNzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3Byb2dyZXNzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3YmYwYmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvcHJvZ3Jlc3MucHkKQEAgLTAsMCArMSwyMjIgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMgKGMpIDIwMDUgQ2xhcmsgQy4gRXZhbnMKKyMgVGhpcyBtb2R1bGUgaXMgcGFydCBvZiB0aGUgUHl0aG9uIFBhc3RlIFByb2plY3QgYW5kIGlzIHJlbGVhc2VkIHVuZGVyCisjIHRoZSBNSVQgTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyMgVGhpcyBjb2RlIHdhcyB3cml0dGVuIHdpdGggZnVuZGluZyBieSBodHRwOi8vcHJvbWV0aGV1c3Jlc2VhcmNoLmNvbQorIiIiCitVcGxvYWQgUHJvZ3Jlc3MgTW9uaXRvcgorCitUaGlzIGlzIGEgV1NHSSBtaWRkbGV3YXJlIGNvbXBvbmVudCB3aGljaCBtb25pdG9ycyB0aGUgc3RhdHVzIG9mIGZpbGVzCitiZWluZyB1cGxvYWRlZC4gIEl0IGluY2x1ZGVzIGEgc21hbGwgcXVlcnkgYXBwbGljYXRpb24gd2hpY2ggd2lsbCByZXR1cm4KK2EgbGlzdCBvZiBhbGwgZmlsZXMgYmVpbmcgdXBsb2FkZWQgYnkgcGFydGljdWxhciBzZXNzaW9uL3VzZXIuCisKKz4+PiBmcm9tIHBhc3RlLmh0dHBzZXJ2ZXIgaW1wb3J0IHNlcnZlCis+Pj4gZnJvbSBwYXN0ZS51cmxtYXAgaW1wb3J0IFVSTE1hcAorPj4+IGZyb20gcGFzdGUuYXV0aC5iYXNpYyBpbXBvcnQgQXV0aEJhc2ljSGFuZGxlcgorPj4+IGZyb20gcGFzdGUuZGVidWcuZGVidWdhcHAgaW1wb3J0IFNsb3dDb25zdW1lciwgU2ltcGxlQXBwbGljYXRpb24KKz4+PiAjIGZyb20gcGFzdGUucHJvZ3Jlc3MgaW1wb3J0ICoKKz4+PiByZWFsbSA9ICdUZXN0IFJlYWxtJworPj4+IGRlZiBhdXRoZnVuYyh1c2VybmFtZSwgcGFzc3dvcmQpOgorLi4uICAgICByZXR1cm4gdXNlcm5hbWUgPT0gcGFzc3dvcmQKKz4+PiBtYXAgPSBVUkxNYXAoe30pCis+Pj4gdXBzID0gVXBsb2FkUHJvZ3Jlc3NNb25pdG9yKG1hcCwgdGhyZXNob2xkPTEwMjQpCis+Pj4gbWFwWycvdXBsb2FkJ10gPSBTbG93Q29uc3VtZXIoKQorPj4+IG1hcFsnL3NpbXBsZSddID0gU2ltcGxlQXBwbGljYXRpb24oKQorPj4+IG1hcFsnL3JlcG9ydCddID0gVXBsb2FkUHJvZ3Jlc3NSZXBvcnRlcih1cHMpCis+Pj4gc2VydmUoQXV0aEJhc2ljSGFuZGxlcih1cHMsIHJlYWxtLCBhdXRoZnVuYykpCitzZXJ2aW5nIG9uLi4uCisKKy4uIG5vdGU6OgorCisgICBUaGlzIGlzIGV4cGVyaW1lbnRhbCwgYW5kIHdpbGwgY2hhbmdlIGluIHRoZSBmdXR1cmUuCisiIiIKK2ltcG9ydCB0aW1lCitmcm9tIHBhc3RlLndzZ2lsaWIgaW1wb3J0IGNhdGNoX2Vycm9ycworCitERUZBVUxUX1RIUkVTSE9MRCA9IDEwMjQgKiAxMDI0ICAjIG9uZSBtZWdhYnl0ZQorREVGQVVMVF9USU1FT1VUICAgPSA2MCo1ICAgICAgICAgIyBmaXZlIG1pbnV0ZXMKK0VOVklST05fUkVDRUlWRUQgID0gJ3Bhc3RlLmJ5dGVzX3JlY2VpdmVkJworUkVRVUVTVF9TVEFSVEVEICAgPSAncGFzdGUucmVxdWVzdF9zdGFydGVkJworUkVRVUVTVF9GSU5JU0hFRCAgPSAncGFzdGUucmVxdWVzdF9maW5pc2hlZCcKKworY2xhc3MgX1Byb2dyZXNzRmlsZShvYmplY3QpOgorICAgICIiIgorICAgIFRoaXMgaXMgdGhlIGlucHV0LWZpbGUgd3JhcHBlciB1c2VkIHRvIHJlY29yZCB0aGUgbnVtYmVyIG9mCisgICAgYGBwYXN0ZS5ieXRlc19yZWNlaXZlZGBgIGZvciB0aGUgZ2l2ZW4gcmVxdWVzdC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbnZpcm9uLCByZmlsZSk6CisgICAgICAgIHNlbGYuX1Byb2dyZXNzRmlsZV9lbnZpcm9uID0gZW52aXJvbgorICAgICAgICBzZWxmLl9Qcm9ncmVzc0ZpbGVfcmZpbGUgICA9IHJmaWxlCisgICAgICAgIHNlbGYuZmx1c2ggPSByZmlsZS5mbHVzaAorICAgICAgICBzZWxmLndyaXRlID0gcmZpbGUud3JpdGUKKyAgICAgICAgc2VsZi53cml0ZWxpbmVzID0gcmZpbGUud3JpdGVsaW5lcworCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBlbnZpcm9uID0gc2VsZi5fUHJvZ3Jlc3NGaWxlX2Vudmlyb24KKyAgICAgICAgcml0ZXIgPSBpdGVyKHNlbGYuX1Byb2dyZXNzRmlsZV9yZmlsZSkKKyAgICAgICAgZGVmIGl0ZXJ3cmFwKCk6CisgICAgICAgICAgICBmb3IgY2h1bmsgaW4gcml0ZXI6CisgICAgICAgICAgICAgICAgZW52aXJvbltFTlZJUk9OX1JFQ0VJVkVEXSArPSBsZW4oY2h1bmspCisgICAgICAgICAgICAgICAgeWllbGQgY2h1bmsKKyAgICAgICAgcmV0dXJuIGl0ZXIoaXRlcndyYXApCisKKyAgICBkZWYgcmVhZChzZWxmLCBzaXplPS0xKToKKyAgICAgICAgY2h1bmsgPSBzZWxmLl9Qcm9ncmVzc0ZpbGVfcmZpbGUucmVhZChzaXplKQorICAgICAgICBzZWxmLl9Qcm9ncmVzc0ZpbGVfZW52aXJvbltFTlZJUk9OX1JFQ0VJVkVEXSArPSBsZW4oY2h1bmspCisgICAgICAgIHJldHVybiBjaHVuaworCisgICAgZGVmIHJlYWRsaW5lKHNlbGYpOgorICAgICAgICBjaHVuayA9IHNlbGYuX1Byb2dyZXNzRmlsZV9yZmlsZS5yZWFkbGluZSgpCisgICAgICAgIHNlbGYuX1Byb2dyZXNzRmlsZV9lbnZpcm9uW0VOVklST05fUkVDRUlWRURdICs9IGxlbihjaHVuaykKKyAgICAgICAgcmV0dXJuIGNodW5rCisKKyAgICBkZWYgcmVhZGxpbmVzKHNlbGYsIGhpbnQ9Tm9uZSk6CisgICAgICAgIGNodW5rID0gc2VsZi5fUHJvZ3Jlc3NGaWxlX3JmaWxlLnJlYWRsaW5lcyhoaW50KQorICAgICAgICBzZWxmLl9Qcm9ncmVzc0ZpbGVfZW52aXJvbltFTlZJUk9OX1JFQ0VJVkVEXSArPSBsZW4oY2h1bmspCisgICAgICAgIHJldHVybiBjaHVuaworCitjbGFzcyBVcGxvYWRQcm9ncmVzc01vbml0b3Iob2JqZWN0KToKKyAgICAiIiIKKyAgICBtb25pdG9ycyBhbmQgcmVwb3J0cyBvbiB0aGUgc3RhdHVzIG9mIHVwbG9hZHMgaW4gcHJvZ3Jlc3MKKworICAgIFBhcmFtZXRlcnM6CisKKyAgICAgICAgYGBhcHBsaWNhdGlvbmBgCisKKyAgICAgICAgICAgIFRoaXMgaXMgdGhlIG5leHQgYXBwbGljYXRpb24gaW4gdGhlIFdTR0kgc3RhY2suCisKKyAgICAgICAgYGB0aHJlc2hvbGRgYAorCisgICAgICAgICAgICBUaGlzIGlzIHRoZSBzaXplIGluIGJ5dGVzIHRoYXQgaXMgbmVlZGVkIGZvciB0aGUKKyAgICAgICAgICAgIHVwbG9hZCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgbW9uaXRvci4KKworICAgICAgICBgYHRpbWVvdXRgYAorCisgICAgICAgICAgICBUaGlzIGlzIHRoZSBhbW91bnQgb2YgdGltZSAoaW4gc2Vjb25kcykgdGhhdCBhIHVwbG9hZAorICAgICAgICAgICAgcmVtYWlucyBpbiB0aGUgbW9uaXRvciBhZnRlciBpdCBoYXMgZmluaXNoZWQuCisKKyAgICBNZXRob2RzOgorCisgICAgICAgIGBgdXBsb2FkcygpYGAKKworICAgICAgICAgICAgVGhpcyByZXR1cm5zIGEgbGlzdCBvZiBgYGVudmlyb25gYCBkaWN0IG9iamVjdHMgZm9yIGVhY2gKKyAgICAgICAgICAgIHVwbG9hZCBiZWluZyBjdXJyZW50bHkgbW9uaXRvcmVkLCBvciBmaW5pc2hlZCBidXQgd2hvc2UgdGltZQorICAgICAgICAgICAgaGFzIG5vdCB5ZXQgZXhwaXJlZC4KKworICAgIEZvciBlYWNoIHJlcXVlc3QgYGBlbnZpcm9uYGAgdGhhdCBpcyBtb25pdG9yZWQsIHRoZXJlIGFyZSBzZXZlcmFsCisgICAgdmFyaWFibGVzIHRoYXQgYXJlIHN0b3JlZDoKKworICAgICAgICBgYHBhc3RlLmJ5dGVzX3JlY2VpdmVkYGAKKworICAgICAgICAgICAgVGhpcyBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlY2VpdmVkIGZvciB0aGUgZ2l2ZW4KKyAgICAgICAgICAgIHJlcXVlc3Q7IGl0IGNhbiBiZSBjb21wYXJlZCB3aXRoIGBgQ09OVEVOVF9MRU5HVEhgYCB0bworICAgICAgICAgICAgYnVpbGQgYSBwZXJjZW50YWdlIGNvbXBsZXRlLiAgVGhpcyBpcyBhbiBpbnRlZ2VyIHZhbHVlLgorCisgICAgICAgIGBgcGFzdGUucmVxdWVzdF9zdGFydGVkYGAKKworICAgICAgICAgICAgVGhpcyBpcyB0aGUgdGltZSAoaW4gc2Vjb25kcykgd2hlbiB0aGUgcmVxdWVzdCB3YXMgc3RhcnRlZAorICAgICAgICAgICAgYXMgb2J0YWluZWQgZnJvbSBgYHRpbWUudGltZSgpYGAuICBPbmUgd291bGQgd2FudCB0byBmb3JtYXQKKyAgICAgICAgICAgIHRoaXMgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlciwgaWYgbmVjZXNzYXJ5LgorCisgICAgICAgIGBgcGFzdGUucmVxdWVzdF9maW5pc2hlZGBgCisKKyAgICAgICAgICAgIFRoaXMgaXMgdGhlIHRpbWUgKGluIHNlY29uZHMpIHdoZW4gdGhlIHJlcXVlc3Qgd2FzIGZpbmlzaGVkLAorICAgICAgICAgICAgY2FuY2VsZWQsIG9yIG90aGVyd2lzZSBkaXNjb25uZWN0ZWQuICBUaGlzIGlzIE5vbmUgd2hpbGUKKyAgICAgICAgICAgIHRoZSBnaXZlbiB1cGxvYWQgaXMgc3RpbGwgaW4tcHJvZ3Jlc3MuCisKKyAgICBUT0RPOiB0dXJuIG1vbml0b3IgaW50byBhIHF1ZXVlIGFuZCBwdXJnZSBxdWV1ZSBvZiBmaW5pc2hlZAorICAgICAgICAgIHJlcXVlc3RzIHRoYXQgaGF2ZSBwYXNzZWQgdGhlIHRpbWVvdXQgcGVyaW9kLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBsaWNhdGlvbiwgdGhyZXNob2xkPU5vbmUsIHRpbWVvdXQ9Tm9uZSk6CisgICAgICAgIHNlbGYuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbgorICAgICAgICBzZWxmLnRocmVzaG9sZCA9IHRocmVzaG9sZCBvciBERUZBVUxUX1RIUkVTSE9MRAorICAgICAgICBzZWxmLnRpbWVvdXQgICA9IHRpbWVvdXQgICBvciBERUZBVUxUX1RJTUVPVVQKKyAgICAgICAgc2VsZi5tb25pdG9yICAgPSBbXQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgbGVuZ3RoID0gZW52aXJvbi5nZXQoJ0NPTlRFTlRfTEVOR1RIJywgMCkKKyAgICAgICAgaWYgbGVuZ3RoIGFuZCBpbnQobGVuZ3RoKSA+IHNlbGYudGhyZXNob2xkOgorICAgICAgICAgICAgIyByZXBsYWNlIGlucHV0IGZpbGUgb2JqZWN0CisgICAgICAgICAgICBzZWxmLm1vbml0b3IuYXBwZW5kKGVudmlyb24pCisgICAgICAgICAgICBlbnZpcm9uW0VOVklST05fUkVDRUlWRURdID0gMAorICAgICAgICAgICAgZW52aXJvbltSRVFVRVNUX1NUQVJURURdID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIGVudmlyb25bUkVRVUVTVF9GSU5JU0hFRF0gPSBOb25lCisgICAgICAgICAgICBlbnZpcm9uWyd3c2dpLmlucHV0J10gPSBcCisgICAgICAgICAgICAgICAgX1Byb2dyZXNzRmlsZShlbnZpcm9uLCBlbnZpcm9uWyd3c2dpLmlucHV0J10pCisgICAgICAgICAgICBkZWYgZmluYWxpemVyKGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgICAgIGVudmlyb25bUkVRVUVTVF9GSU5JU0hFRF0gPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgcmV0dXJuIGNhdGNoX2Vycm9ycyhzZWxmLmFwcGxpY2F0aW9uLCBlbnZpcm9uLAorICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSwgZmluYWxpemVyLCBmaW5hbGl6ZXIpCisgICAgICAgIHJldHVybiBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgZGVmIHVwbG9hZHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm1vbml0b3IKKworY2xhc3MgVXBsb2FkUHJvZ3Jlc3NSZXBvcnRlcihvYmplY3QpOgorICAgICIiIgorICAgIHJlcG9ydHMgb24gdGhlIHByb2dyZXNzIG9mIHVwbG9hZHMgZm9yIGEgZ2l2ZW4gdXNlcgorCisgICAgVGhpcyByZXBvcnRlciByZXR1cm5zIGEgSlNPTiBmaWxlIChmb3IgdXNlIGluIEFKQVgpIGxpc3RpbmcgdGhlCisgICAgdXBsb2FkcyBpbiBwcm9ncmVzcyBmb3IgdGhlIGdpdmVuIHVzZXIuICBCeSBkZWZhdWx0LCB0aGlzIHJlcG9ydGVyCisgICAgdXNlcyB0aGUgYGBSRU1PVEVfVVNFUmBgIGVudmlyb25tZW50IHRvIGNvbXBhcmUgYmV0d2VlbiB0aGUgY3VycmVudAorICAgIHJlcXVlc3QgYW5kIHVwbG9hZHMgaW4tcHJvZ3Jlc3MuICBJZiB0aGV5IG1hdGNoLCB0aGVuIGEgcmVzcG9uc2UKKyAgICByZWNvcmQgaXMgZm9ybWVkLgorCisgICAgICAgIGBgbWF0Y2goKWBgCisKKyAgICAgICAgICAgIFRoaXMgbWVtYmVyIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZW4gdG8gcHJvdmlkZSBhbHRlcm5hdGl2ZQorICAgICAgICAgICAgbWF0Y2hpbmcgY3JpdGVyaWEuICBJdCB0YWtlcyB0d28gZW52aXJvbm1lbnRzLCB0aGUgZmlyc3QKKyAgICAgICAgICAgIGlzIHRoZSBjdXJyZW50IHJlcXVlc3QsIHRoZSBzZWNvbmQgaXMgYSBjdXJyZW50IHVwbG9hZC4KKworICAgICAgICBgYHJlcG9ydCgpYGAKKworICAgICAgICAgICAgVGhpcyBtZW1iZXIgZnVuY3Rpb24gdGFrZXMgYW4gZW52aXJvbm1lbnQgYW5kIGJ1aWxkcyBhCisgICAgICAgICAgICBgYGRpY3RgYCB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYSBKU09OIG1hcHBpbmcgZm9yCisgICAgICAgICAgICB0aGUgZ2l2ZW4gdXBsb2FkLiAgQnkgZGVmYXVsdCwgdGhpcyBqdXN0IGluY2x1ZGVzIHRoZQorICAgICAgICAgICAgcGVyY2VudCBjb21wbGV0ZSBhbmQgdGhlIHJlcXVlc3QgdXJsLgorCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vbml0b3IpOgorICAgICAgICBzZWxmLm1vbml0b3IgICA9IG1vbml0b3IKKworICAgIGRlZiBtYXRjaChzZWxmLCBzZWFyY2hfZW52aXJvbiwgdXBsb2FkX2Vudmlyb24pOgorICAgICAgICBpZiBzZWFyY2hfZW52aXJvbi5nZXQoJ1JFTU9URV9VU0VSJywgTm9uZSkgPT0gXAorICAgICAgICAgICB1cGxvYWRfZW52aXJvbi5nZXQoJ1JFTU9URV9VU0VSJywgMCk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiByZXBvcnQoc2VsZiwgZW52aXJvbik6CisgICAgICAgIHJldHZhbCA9IHsgJ3N0YXJ0ZWQnOiB0aW1lLnN0cmZ0aW1lKCIlWS0lbS0lZCAlSDolTTolUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuZ210aW1lKGVudmlyb25bUkVRVUVTVF9TVEFSVEVEXSkpLAorICAgICAgICAgICAgICAgICAgICdmaW5pc2hlZCc6ICcnLAorICAgICAgICAgICAgICAgICAgICdjb250ZW50X2xlbmd0aCc6IGVudmlyb24uZ2V0KCdDT05URU5UX0xFTkdUSCcpLAorICAgICAgICAgICAgICAgICAgICdieXRlc19yZWNlaXZlZCc6IGVudmlyb25bRU5WSVJPTl9SRUNFSVZFRF0sCisgICAgICAgICAgICAgICAgICAgJ3BhdGhfaW5mbyc6IGVudmlyb24uZ2V0KCdQQVRIX0lORk8nLCcnKSwKKyAgICAgICAgICAgICAgICAgICAncXVlcnlfc3RyaW5nJzogZW52aXJvbi5nZXQoJ1FVRVJZX1NUUklORycsJycpfQorICAgICAgICBmaW5pc2hlZCA9IGVudmlyb25bUkVRVUVTVF9GSU5JU0hFRF0KKyAgICAgICAgaWYgZmluaXNoZWQ6CisgICAgICAgICAgICByZXR2YWxbJ2ZpbmlzaGVkJ10gPSB0aW1lLnN0cmZ0aW1lKCIlWTolbTolZCAlSDolTTolUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuZ210aW1lKGZpbmlzaGVkKSkKKyAgICAgICAgcmV0dXJuIHJldHZhbAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgYm9keSA9IFtdCisgICAgICAgIGZvciBtYXAgaW4gW3NlbGYucmVwb3J0KGVudikgZm9yIGVudiBpbiBzZWxmLm1vbml0b3IudXBsb2FkcygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLm1hdGNoKGVudmlyb24sIGVudildOgorICAgICAgICAgICAgcGFydHMgPSBbXQorICAgICAgICAgICAgZm9yIGssIHYgaW4gbWFwLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgdiA9IHN0cih2KS5yZXBsYWNlKCJcXCIsICJcXFxcIikucmVwbGFjZSgnIicsICdcXCInKQorICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgnJXM6ICIlcyInICUgKGssIHYpKQorICAgICAgICAgICAgYm9keS5hcHBlbmQoInsgJXMgfSIgJSAiLCAiLmpvaW4ocGFydHMpKQorICAgICAgICBib2R5ID0gIlsgJXMgXSIgJSAiLCAiLmpvaW4oYm9keSkKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoIjIwMCBPSyIsIFsoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdDb250ZW50LUxlbmd0aCcsIGxlbihib2R5KSldKQorICAgICAgICByZXR1cm4gW2JvZHldCisKK19fYWxsX18gPSBbJ1VwbG9hZFByb2dyZXNzTW9uaXRvcicsICdVcGxvYWRQcm9ncmVzc1JlcG9ydGVyJ10KKworaWYgIl9fbWFpbl9fIiA9PSBfX25hbWVfXzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZChvcHRpb25mbGFncz1kb2N0ZXN0LkVMTElQU0lTKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3Byb3h5LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3Byb3h5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZDRiMWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvcHJveHkucHkKQEAgLTAsMCArMSwyODkgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorQW4gYXBwbGljYXRpb24gdGhhdCBwcm94aWVzIFdTR0kgcmVxdWVzdHMgdG8gYSByZW1vdGUgc2VydmVyLgorCitUT0RPOgorCisqIFNlbmQgYGBWaWFgYCBoZWFkZXI/ICBJdCdzIG5vdCBjbGVhciB0byBtZSB0aGlzIGlzIGEgVmlhIGluIHRoZQorICBzdHlsZSBvZiBhIHR5cGljYWwgcHJveHkuCisKKyogT3RoZXIgaGVhZGVycyBvciBtZXRhZGF0YT8gIEkgcHV0IGluIFgtRm9yd2FyZGVkLUZvciwgYnV0IHRoYXQncyBpdC4KKworKiBTaWduZWQgZGF0YSBvZiBub24tSFRUUCBrZXlzPyAgVGhpcyB3b3VsZCBiZSBmb3IgdGhpbmdzIGxpa2UKKyAgUkVNT1RFX1VTRVIuCisKKyogU29tZXRoaW5nIHRvIGluZGljYXRlIHdoYXQgdGhlIG9yaWdpbmFsIFVSTCB3YXM/ICBUaGUgb3JpZ2luYWwgaG9zdCwKKyAgc2NoZW1lLCBhbmQgYmFzZSBwYXRoLgorCisqIFJld3JpdGluZyBgYExvY2F0aW9uYGAgaGVhZGVycz8gIG1vZF9wcm94eSBkb2VzIHRoaXMuCisKKyogUmV3cml0aW5nIGJvZHk/ICAoUHJvYmFibHkgbm90IG9uIHRoaXMgb25lIC0tIHRoYXQgY2FuIGJlIGRvbmUgd2l0aAorICBhIGRpZmZlcmVudCBtaWRkbGV3YXJlIHRoYXQgd3JhcHMgdGhpcyBtaWRkbGV3YXJlKQorCisqIEV4YW1wbGU6OgorCisgICAgdXNlID0gZWdnOlBhc3RlI3Byb3h5CisgICAgYWRkcmVzcyA9IGh0dHA6Ly9zZXJ2ZXIzOjg2ODAvZXhpc3QvcmVzdC9kYi9vcmdzL3NjaC9jb25maWcvCisgICAgYWxsb3dlZF9yZXF1ZXN0X21ldGhvZHMgPSBHRVQKKworIiIiCisKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBodHRwX2NsaWVudCBhcyBodHRwbGliCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVybHBhcnNlCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHF1b3RlCitpbXBvcnQgc2l4CisKK2Zyb20gcGFzdGUgaW1wb3J0IGh0dHBleGNlcHRpb25zCitmcm9tIHBhc3RlLnV0aWwuY29udmVydGVycyBpbXBvcnQgYXNsaXN0CisKKyMgUmVtb3ZlIHRoZXNlIGhlYWRlcnMgZnJvbSByZXNwb25zZSAoc3BlY2lmeSBsb3dlciBjYXNlIGhlYWRlcgorIyBuYW1lcyk6CitmaWx0ZXJlZF9oZWFkZXJzID0gKAorICAgICd0cmFuc2Zlci1lbmNvZGluZycsCisgICAgJ2Nvbm5lY3Rpb24nLAorICAgICdrZWVwLWFsaXZlJywKKyAgICAncHJveHktYXV0aGVudGljYXRlJywKKyAgICAncHJveHktYXV0aG9yaXphdGlvbicsCisgICAgJ3RlJywKKyAgICAndHJhaWxlcnMnLAorICAgICd1cGdyYWRlJywKKykKKworY2xhc3MgUHJveHkob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzLCBhbGxvd2VkX3JlcXVlc3RfbWV0aG9kcz0oKSwKKyAgICAgICAgICAgICAgICAgc3VwcHJlc3NfaHR0cF9oZWFkZXJzPSgpKToKKyAgICAgICAgc2VsZi5hZGRyZXNzID0gYWRkcmVzcworICAgICAgICBzZWxmLnBhcnNlZCA9IHVybHBhcnNlLnVybHNwbGl0KGFkZHJlc3MpCisgICAgICAgIHNlbGYuc2NoZW1lID0gc2VsZi5wYXJzZWRbMF0ubG93ZXIoKQorICAgICAgICBzZWxmLmhvc3QgPSBzZWxmLnBhcnNlZFsxXQorICAgICAgICBzZWxmLnBhdGggPSBzZWxmLnBhcnNlZFsyXQorICAgICAgICBzZWxmLmFsbG93ZWRfcmVxdWVzdF9tZXRob2RzID0gWworICAgICAgICAgICAgeC5sb3dlcigpIGZvciB4IGluIGFsbG93ZWRfcmVxdWVzdF9tZXRob2RzIGlmIHhdCisKKyAgICAgICAgc2VsZi5zdXBwcmVzc19odHRwX2hlYWRlcnMgPSBbCisgICAgICAgICAgICB4Lmxvd2VyKCkgZm9yIHggaW4gc3VwcHJlc3NfaHR0cF9oZWFkZXJzIGlmIHhdCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiAoc2VsZi5hbGxvd2VkX3JlcXVlc3RfbWV0aG9kcyBhbmQKKyAgICAgICAgICAgIGVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10ubG93ZXIoKSBub3QgaW4gc2VsZi5hbGxvd2VkX3JlcXVlc3RfbWV0aG9kcyk6CisgICAgICAgICAgICByZXR1cm4gaHR0cGV4Y2VwdGlvbnMuSFRUUEJhZFJlcXVlc3QoIkRpc2FsbG93ZWQiKShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgICAgICBpZiBzZWxmLnNjaGVtZSA9PSAnaHR0cCc6CisgICAgICAgICAgICBDb25uQ2xhc3MgPSBodHRwbGliLkhUVFBDb25uZWN0aW9uCisgICAgICAgIGVsaWYgc2VsZi5zY2hlbWUgPT0gJ2h0dHBzJzoKKyAgICAgICAgICAgIENvbm5DbGFzcyA9IGh0dHBsaWIuSFRUUFNDb25uZWN0aW9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJVbmtub3duIHNjaGVtZSBmb3IgJXI6ICVyIiAlIChzZWxmLmFkZHJlc3MsIHNlbGYuc2NoZW1lKSkKKyAgICAgICAgY29ubiA9IENvbm5DbGFzcyhzZWxmLmhvc3QpCisgICAgICAgIGhlYWRlcnMgPSB7fQorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBlbnZpcm9uLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBrZXkuc3RhcnRzd2l0aCgnSFRUUF8nKToKKyAgICAgICAgICAgICAgICBrZXkgPSBrZXlbNTpdLmxvd2VyKCkucmVwbGFjZSgnXycsICctJykKKyAgICAgICAgICAgICAgICBpZiBrZXkgPT0gJ2hvc3QnIG9yIGtleSBpbiBzZWxmLnN1cHByZXNzX2h0dHBfaGVhZGVyczoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBoZWFkZXJzW2tleV0gPSB2YWx1ZQorICAgICAgICBoZWFkZXJzWydob3N0J10gPSBzZWxmLmhvc3QKKyAgICAgICAgaWYgJ1JFTU9URV9BRERSJyBpbiBlbnZpcm9uOgorICAgICAgICAgICAgaGVhZGVyc1sneC1mb3J3YXJkZWQtZm9yJ10gPSBlbnZpcm9uWydSRU1PVEVfQUREUiddCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdDT05URU5UX1RZUEUnKToKKyAgICAgICAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gZW52aXJvblsnQ09OVEVOVF9UWVBFJ10KKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ0NPTlRFTlRfTEVOR1RIJyk6CisgICAgICAgICAgICBpZiBlbnZpcm9uWydDT05URU5UX0xFTkdUSCddID09ICctMSc6CisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlLCB3aGVyZSB0aGUgY29udGVudCBsZW5ndGggaXMgYmFzaWNhbGx5IHVuZGV0ZXJtaW5lZAorICAgICAgICAgICAgICAgIGJvZHkgPSBlbnZpcm9uWyd3c2dpLmlucHV0J10ucmVhZCgtMSkKKyAgICAgICAgICAgICAgICBoZWFkZXJzWydjb250ZW50LWxlbmd0aCddID0gc3RyKGxlbihib2R5KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSA9IGVudmlyb25bJ0NPTlRFTlRfTEVOR1RIJ10KKyAgICAgICAgICAgICAgICBsZW5ndGggPSBpbnQoZW52aXJvblsnQ09OVEVOVF9MRU5HVEgnXSkKKyAgICAgICAgICAgICAgICBib2R5ID0gZW52aXJvblsnd3NnaS5pbnB1dCddLnJlYWQobGVuZ3RoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYm9keSA9ICcnCisKKyAgICAgICAgcGF0aF9pbmZvID0gcXVvdGUoZW52aXJvblsnUEFUSF9JTkZPJ10pCisgICAgICAgIGlmIHNlbGYucGF0aDoKKyAgICAgICAgICAgIHJlcXVlc3RfcGF0aCA9IHBhdGhfaW5mbworICAgICAgICAgICAgaWYgcmVxdWVzdF9wYXRoIGFuZCByZXF1ZXN0X3BhdGhbMF0gPT0gJy8nOgorICAgICAgICAgICAgICAgIHJlcXVlc3RfcGF0aCA9IHJlcXVlc3RfcGF0aFsxOl0KKworICAgICAgICAgICAgcGF0aCA9IHVybHBhcnNlLnVybGpvaW4oc2VsZi5wYXRoLCByZXF1ZXN0X3BhdGgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYXRoID0gcGF0aF9pbmZvCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnKToKKyAgICAgICAgICAgIHBhdGggKz0gJz8nICsgZW52aXJvblsnUVVFUllfU1RSSU5HJ10KKworICAgICAgICBjb25uLnJlcXVlc3QoZW52aXJvblsnUkVRVUVTVF9NRVRIT0QnXSwKKyAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICBib2R5LCBoZWFkZXJzKQorICAgICAgICByZXMgPSBjb25uLmdldHJlc3BvbnNlKCkKKyAgICAgICAgaGVhZGVyc19vdXQgPSBwYXJzZV9oZWFkZXJzKHJlcy5tc2cpCisKKyAgICAgICAgc3RhdHVzID0gJyVzICVzJyAlIChyZXMuc3RhdHVzLCByZXMucmVhc29uKQorICAgICAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnNfb3V0KQorICAgICAgICAjIEBAOiBEZWZhdWx0PworICAgICAgICBsZW5ndGggPSByZXMuZ2V0aGVhZGVyKCdjb250ZW50LWxlbmd0aCcpCisgICAgICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHkgPSByZXMucmVhZChpbnQobGVuZ3RoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJvZHkgPSByZXMucmVhZCgpCisgICAgICAgIGNvbm4uY2xvc2UoKQorICAgICAgICByZXR1cm4gW2JvZHldCisKK2RlZiBtYWtlX3Byb3h5KGdsb2JhbF9jb25mLCBhZGRyZXNzLCBhbGxvd2VkX3JlcXVlc3RfbWV0aG9kcz0iIiwKKyAgICAgICAgICAgICAgIHN1cHByZXNzX2h0dHBfaGVhZGVycz0iIik6CisgICAgIiIiCisgICAgTWFrZSBhIFdTR0kgYXBwbGljYXRpb24gdGhhdCBwcm94aWVzIHRvIGFub3RoZXIgYWRkcmVzczoKKworICAgIGBgYWRkcmVzc2BgCisgICAgICAgIHRoZSBmdWxsIFVSTCBlbmRpbmcgd2l0aCBhIHRyYWlsaW5nIGBgL2BgCisKKyAgICBgYGFsbG93ZWRfcmVxdWVzdF9tZXRob2RzYGA6CisgICAgICAgIGEgc3BhY2Ugc2VwZXJhdGVkIGxpc3Qgb2YgcmVxdWVzdCBtZXRob2RzIChlLmcuLCBgYEdFVCBQT1NUYGApCisKKyAgICBgYHN1cHByZXNzX2h0dHBfaGVhZGVyc2BgCisgICAgICAgIGEgc3BhY2Ugc2VwZXJhdGVkIGxpc3Qgb2YgaHR0cCBoZWFkZXJzIChsb3dlciBjYXNlLCB3aXRob3V0CisgICAgICAgIHRoZSBsZWFkaW5nIGBgaHR0cF9gYCkgdGhhdCBzaG91bGQgbm90IGJlIHBhc3NlZCBvbiB0byB0YXJnZXQKKyAgICAgICAgaG9zdAorICAgICIiIgorICAgIGFsbG93ZWRfcmVxdWVzdF9tZXRob2RzID0gYXNsaXN0KGFsbG93ZWRfcmVxdWVzdF9tZXRob2RzKQorICAgIHN1cHByZXNzX2h0dHBfaGVhZGVycyA9IGFzbGlzdChzdXBwcmVzc19odHRwX2hlYWRlcnMpCisgICAgcmV0dXJuIFByb3h5KAorICAgICAgICBhZGRyZXNzLAorICAgICAgICBhbGxvd2VkX3JlcXVlc3RfbWV0aG9kcz1hbGxvd2VkX3JlcXVlc3RfbWV0aG9kcywKKyAgICAgICAgc3VwcHJlc3NfaHR0cF9oZWFkZXJzPXN1cHByZXNzX2h0dHBfaGVhZGVycykKKworCitjbGFzcyBUcmFuc3BhcmVudFByb3h5KG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBBIHByb3h5IHRoYXQgc2VuZHMgdGhlIHJlcXVlc3QganVzdCBhcyBpdCB3YXMgZ2l2ZW4sIGluY2x1ZGluZworICAgIHJlc3BlY3RpbmcgSFRUUF9IT1NULCB3c2dpLnVybF9zY2hlbWUsIGV0Yy4KKworICAgIFRoaXMgaXMgYSB3YXkgb2YgdHJhbnNsYXRpbmcgV1NHSSByZXF1ZXN0cyBkaXJlY3RseSB0byByZWFsIEhUVFAKKyAgICByZXF1ZXN0cy4gIEFsbCBpbmZvcm1hdGlvbiBnb2VzIGluIHRoZSBlbnZpcm9ubWVudDsgbW9kaWZ5IGl0IHRvCisgICAgbW9kaWZ5IHRoZSB3YXkgdGhlIHJlcXVlc3QgaXMgbWFkZS4KKworICAgIElmIHlvdSBzcGVjaWZ5IGBgZm9yY2VfaG9zdGBgIChhbmQgb3B0aW9uYWxseSBgYGZvcmNlX3NjaGVtZWBgKQorICAgIHRoZW4gSFRUUF9IT1NUIHdvbid0IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXJlIHRvIGNvbm5lY3QgdG87CisgICAgaW5zdGVhZCBhIHNwZWNpZmljIGhvc3Qgd2lsbCBiZSBjb25uZWN0ZWQgdG8sIGJ1dCB0aGUgYGBIb3N0YGAKKyAgICBoZWFkZXIgaW4gdGhlIHJlcXVlc3Qgd2lsbCByZW1haW4gaW50YWN0LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZvcmNlX2hvc3Q9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZm9yY2Vfc2NoZW1lPSdodHRwJyk6CisgICAgICAgIHNlbGYuZm9yY2VfaG9zdCA9IGZvcmNlX2hvc3QKKyAgICAgICAgc2VsZi5mb3JjZV9zY2hlbWUgPSBmb3JjZV9zY2hlbWUKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXMgZm9yY2VfaG9zdD0lciBmb3JjZV9zY2hlbWU9JXI+JyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgaGV4KGlkKHNlbGYpKSwKKyAgICAgICAgICAgIHNlbGYuZm9yY2VfaG9zdCwgc2VsZi5mb3JjZV9zY2hlbWUpCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzY2hlbWUgPSBlbnZpcm9uWyd3c2dpLnVybF9zY2hlbWUnXQorICAgICAgICBpZiBzZWxmLmZvcmNlX2hvc3QgaXMgTm9uZToKKyAgICAgICAgICAgIGNvbm5fc2NoZW1lID0gc2NoZW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb25uX3NjaGVtZSA9IHNlbGYuZm9yY2Vfc2NoZW1lCisgICAgICAgIGlmIGNvbm5fc2NoZW1lID09ICdodHRwJzoKKyAgICAgICAgICAgIENvbm5DbGFzcyA9IGh0dHBsaWIuSFRUUENvbm5lY3Rpb24KKyAgICAgICAgZWxpZiBjb25uX3NjaGVtZSA9PSAnaHR0cHMnOgorICAgICAgICAgICAgQ29ubkNsYXNzID0gaHR0cGxpYi5IVFRQU0Nvbm5lY3Rpb24KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIlVua25vd24gc2NoZW1lICVyIiAlIHNjaGVtZSkKKyAgICAgICAgaWYgJ0hUVFBfSE9TVCcgbm90IGluIGVudmlyb246CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJXU0dJIGVudmlyb24gbXVzdCBjb250YWluIGFuIEhUVFBfSE9TVCBrZXkiKQorICAgICAgICBob3N0ID0gZW52aXJvblsnSFRUUF9IT1NUJ10KKyAgICAgICAgaWYgc2VsZi5mb3JjZV9ob3N0IGlzIE5vbmU6CisgICAgICAgICAgICBjb25uX2hvc3QgPSBob3N0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb25uX2hvc3QgPSBzZWxmLmZvcmNlX2hvc3QKKyAgICAgICAgY29ubiA9IENvbm5DbGFzcyhjb25uX2hvc3QpCisgICAgICAgIGhlYWRlcnMgPSB7fQorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBlbnZpcm9uLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBrZXkuc3RhcnRzd2l0aCgnSFRUUF8nKToKKyAgICAgICAgICAgICAgICBrZXkgPSBrZXlbNTpdLmxvd2VyKCkucmVwbGFjZSgnXycsICctJykKKyAgICAgICAgICAgICAgICBoZWFkZXJzW2tleV0gPSB2YWx1ZQorICAgICAgICBoZWFkZXJzWydob3N0J10gPSBob3N0CisgICAgICAgIGlmICdSRU1PVEVfQUREUicgaW4gZW52aXJvbiBhbmQgJ0hUVFBfWF9GT1JXQVJERURfRk9SJyBub3QgaW4gZW52aXJvbjoKKyAgICAgICAgICAgIGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvciddID0gZW52aXJvblsnUkVNT1RFX0FERFInXQorICAgICAgICBpZiBlbnZpcm9uLmdldCgnQ09OVEVOVF9UWVBFJyk6CisgICAgICAgICAgICBoZWFkZXJzWydjb250ZW50LXR5cGUnXSA9IGVudmlyb25bJ0NPTlRFTlRfVFlQRSddCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdDT05URU5UX0xFTkdUSCcpOgorICAgICAgICAgICAgbGVuZ3RoID0gaW50KGVudmlyb25bJ0NPTlRFTlRfTEVOR1RIJ10pCisgICAgICAgICAgICBib2R5ID0gZW52aXJvblsnd3NnaS5pbnB1dCddLnJlYWQobGVuZ3RoKQorICAgICAgICAgICAgaWYgbGVuZ3RoID09IC0xOgorICAgICAgICAgICAgICAgIGVudmlyb25bJ0NPTlRFTlRfTEVOR1RIJ10gPSBzdHIobGVuKGJvZHkpKQorICAgICAgICBlbGlmICdDT05URU5UX0xFTkdUSCcgbm90IGluIGVudmlyb246CisgICAgICAgICAgICBib2R5ID0gJycKKyAgICAgICAgICAgIGxlbmd0aCA9IDAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJvZHkgPSAnJworICAgICAgICAgICAgbGVuZ3RoID0gMAorCisgICAgICAgIHBhdGggPSAoZW52aXJvbi5nZXQoJ1NDUklQVF9OQU1FJywgJycpCisgICAgICAgICAgICAgICAgKyBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpKQorICAgICAgICBwYXRoID0gcXVvdGUocGF0aCkKKyAgICAgICAgaWYgJ1FVRVJZX1NUUklORycgaW4gZW52aXJvbjoKKyAgICAgICAgICAgIHBhdGggKz0gJz8nICsgZW52aXJvblsnUVVFUllfU1RSSU5HJ10KKyAgICAgICAgY29ubi5yZXF1ZXN0KGVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10sCisgICAgICAgICAgICAgICAgICAgICBwYXRoLCBib2R5LCBoZWFkZXJzKQorICAgICAgICByZXMgPSBjb25uLmdldHJlc3BvbnNlKCkKKyAgICAgICAgaGVhZGVyc19vdXQgPSBwYXJzZV9oZWFkZXJzKHJlcy5tc2cpCisKKyAgICAgICAgc3RhdHVzID0gJyVzICVzJyAlIChyZXMuc3RhdHVzLCByZXMucmVhc29uKQorICAgICAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnNfb3V0KQorICAgICAgICAjIEBAOiBEZWZhdWx0PworICAgICAgICBsZW5ndGggPSByZXMuZ2V0aGVhZGVyKCdjb250ZW50LWxlbmd0aCcpCisgICAgICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHkgPSByZXMucmVhZChpbnQobGVuZ3RoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJvZHkgPSByZXMucmVhZCgpCisgICAgICAgIGNvbm4uY2xvc2UoKQorICAgICAgICByZXR1cm4gW2JvZHldCisKK2RlZiBwYXJzZV9oZWFkZXJzKG1lc3NhZ2UpOgorICAgICIiIgorICAgIFR1cm4gYSBNZXNzYWdlIG9iamVjdCBpbnRvIGEgbGlzdCBvZiBXU0dJLXN0eWxlIGhlYWRlcnMuCisgICAgIiIiCisgICAgaGVhZGVyc19vdXQgPSBbXQorICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGZvciBoZWFkZXIsIHZhbHVlIGluIG1lc3NhZ2UuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIGhlYWRlci5sb3dlcigpIG5vdCBpbiBmaWx0ZXJlZF9oZWFkZXJzOgorICAgICAgICAgICAgICAgIGhlYWRlcnNfb3V0LmFwcGVuZCgoaGVhZGVyLCB2YWx1ZSkpCisgICAgZWxzZToKKyAgICAgICAgZm9yIGZ1bGxfaGVhZGVyIGluIG1lc3NhZ2UuaGVhZGVyczoKKyAgICAgICAgICAgIGlmIG5vdCBmdWxsX2hlYWRlcjoKKyAgICAgICAgICAgICAgICAjIFNob3VsZG4ndCBoYXBwZW4sIGJ1dCB3ZSdsbCBqdXN0IGlnbm9yZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBmdWxsX2hlYWRlclswXS5pc3NwYWNlKCk6CisgICAgICAgICAgICAgICAgIyBDb250aW51YXRpb24gbGluZSwgYWRkIHRvIHRoZSBsYXN0IGhlYWRlcgorICAgICAgICAgICAgICAgIGlmIG5vdCBoZWFkZXJzX291dDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICJGaXJzdCBoZWFkZXIgc3RhcnRzIHdpdGggYSBzcGFjZSAoJXIpIiAlIGZ1bGxfaGVhZGVyKQorICAgICAgICAgICAgICAgIGxhc3RfaGVhZGVyLCBsYXN0X3ZhbHVlID0gaGVhZGVyc19vdXQucG9wKCkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxhc3RfdmFsdWUgKyAnICcgKyBmdWxsX2hlYWRlci5zdHJpcCgpCisgICAgICAgICAgICAgICAgaGVhZGVyc19vdXQuYXBwZW5kKChsYXN0X2hlYWRlciwgdmFsdWUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaGVhZGVyLCB2YWx1ZSA9IGZ1bGxfaGVhZGVyLnNwbGl0KCc6JywgMSkKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIGhlYWRlcjogJXIiICUgZnVsbF9oZWFkZXIpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIGhlYWRlci5sb3dlcigpIG5vdCBpbiBmaWx0ZXJlZF9oZWFkZXJzOgorICAgICAgICAgICAgICAgIGhlYWRlcnNfb3V0LmFwcGVuZCgoaGVhZGVyLCB2YWx1ZSkpCisgICAgcmV0dXJuIGhlYWRlcnNfb3V0CisKK2RlZiBtYWtlX3RyYW5zcGFyZW50X3Byb3h5KAorICAgIGdsb2JhbF9jb25mLCBmb3JjZV9ob3N0PU5vbmUsIGZvcmNlX3NjaGVtZT0naHR0cCcpOgorICAgICIiIgorICAgIENyZWF0ZSBhIHByb3h5IHRoYXQgY29ubmVjdHMgdG8gYSBzcGVjaWZpYyBob3N0LCBidXQgZG9lcworICAgIGFic29sdXRlbHkgbm8gb3RoZXIgZmlsdGVyaW5nLCBpbmNsdWRpbmcgdGhlIEhvc3QgaGVhZGVyLgorICAgICIiIgorICAgIHJldHVybiBUcmFuc3BhcmVudFByb3h5KGZvcmNlX2hvc3Q9Zm9yY2VfaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZV9zY2hlbWU9Zm9yY2Vfc2NoZW1lKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3JlY3Vyc2l2ZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZWN1cnNpdmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJlZjkyMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZWN1cnNpdmUucHkKQEAgLTAsMCArMSw0MDYgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorTWlkZGxld2FyZSB0byBtYWtlIGludGVybmFsIHJlcXVlc3RzIGFuZCBmb3J3YXJkIHJlcXVlc3RzIGludGVybmFsbHkuCisKK1doZW4gYXBwbGllZCwgc2V2ZXJhbCBrZXlzIGFyZSBhZGRlZCB0byB0aGUgZW52aXJvbm1lbnQgdGhhdCB3aWxsIGFsbG93Cit5b3UgdG8gdHJpZ2dlciByZWN1cnNpdmUgcmVkaXJlY3RzIGFuZCBmb3J3YXJkcy4KKworICBwYXN0ZS5yZWN1cnNpdmUuaW5jbHVkZToKKyAgICAgIFdoZW4geW91IGNhbGwKKyAgICAgIGBgZW52aXJvblsncGFzdGUucmVjdXJzaXZlLmluY2x1ZGUnXShuZXdfcGF0aF9pbmZvKWBgIGEgcmVzcG9uc2UKKyAgICAgIHdpbGwgYmUgcmV0dXJuZWQuICBUaGUgcmVzcG9uc2UgaGFzIGEgYGBib2R5YGAgYXR0cmlidXRlLCBhCisgICAgICBgYHN0YXR1c2BgIGF0dHJpYnV0ZSwgYW5kIGEgYGBoZWFkZXJzYGAgYXR0cmlidXRlLgorCisgIHBhc3RlLnJlY3Vyc2l2ZS5zY3JpcHRfbmFtZToKKyAgICAgIFRoZSBgYFNDUklQVF9OQU1FYGAgYXQgdGhlIHBvaW50IHRoYXQgcmVjdXJzaXZlIGxpdmVzLiAgT25seQorICAgICAgcGF0aHMgdW5kZXJuZWF0aCB0aGlzIHBhdGggY2FuIGJlIHJlZGlyZWN0ZWQgdG8uCisKKyAgcGFzdGUucmVjdXJzaXZlLm9sZF9wYXRoX2luZm86CisgICAgICBBIGxpc3Qgb2YgcHJldmlvdXMgYGBQQVRIX0lORk9gYCB2YWx1ZXMgZnJvbSBwcmV2aW91cyByZWRpcmVjdHMuCisKK1JhaXNlIGBgRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24obmV3X3BhdGhfaW5mbylgYCB0byBkbyBhIGZvcndhcmQKKyhhYm9ydGluZyB0aGUgY3VycmVudCByZXF1ZXN0KS4KKyIiIgorCitpbXBvcnQgc2l4CitpbXBvcnQgd2FybmluZ3MKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KKworX19hbGxfXyA9IFsnUmVjdXJzaXZlTWlkZGxld2FyZSddCitfX3B1ZGdlX2FsbF9fID0gIFsnUmVjdXJzaXZlTWlkZGxld2FyZScsICdGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbiddCisKK2NsYXNzIFJlY3Vyc2lvbkxvb3AoQXNzZXJ0aW9uRXJyb3IpOgorICAgICMgU3ViY2xhc3NlcyBBc3NlcnRpb25FcnJvciBmb3IgbGVnYWN5IHJlYXNvbnMKKyAgICAiIiJSYWlzZWQgd2hlbiBhIHJlY3Vyc2lvbiBlbnRlcnMgaW50byBhIGxvb3AiIiIKKworY2xhc3MgQ2hlY2tGb3JSZWN1cnNpb25NaWRkbGV3YXJlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgZW52KToKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5lbnYgPSBlbnYKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHBhdGhfaW5mbyA9IGVudmlyb24uZ2V0KCdQQVRIX0lORk8nLCcnKQorICAgICAgICBpZiBwYXRoX2luZm8gaW4gc2VsZi5lbnYuZ2V0KAorICAgICAgICAgICAgJ3Bhc3RlLnJlY3Vyc2l2ZS5vbGRfcGF0aF9pbmZvJywgW10pOgorICAgICAgICAgICAgcmFpc2UgUmVjdXJzaW9uTG9vcCgKKyAgICAgICAgICAgICAgICAiRm9yd2FyZGluZyBsb29wIGRldGVjdGVkOyAlciB2aXNpdGVkIHR3aWNlIChpbnRlcm5hbCAiCisgICAgICAgICAgICAgICAgInJlZGlyZWN0IHBhdGg6ICVzKSIKKyAgICAgICAgICAgICAgICAlIChwYXRoX2luZm8sIHNlbGYuZW52WydwYXN0ZS5yZWN1cnNpdmUub2xkX3BhdGhfaW5mbyddKSkKKyAgICAgICAgb2xkX3BhdGhfaW5mbyA9IHNlbGYuZW52LnNldGRlZmF1bHQoJ3Bhc3RlLnJlY3Vyc2l2ZS5vbGRfcGF0aF9pbmZvJywgW10pCisgICAgICAgIG9sZF9wYXRoX2luZm8uYXBwZW5kKHNlbGYuZW52LmdldCgnUEFUSF9JTkZPJywgJycpKQorICAgICAgICByZXR1cm4gc2VsZi5hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2NsYXNzIFJlY3Vyc2l2ZU1pZGRsZXdhcmUob2JqZWN0KToKKworICAgICIiIgorICAgIEEgV1NHSSBtaWRkbGV3YXJlIHRoYXQgYWxsb3dzIGZvciByZWN1cnNpdmUgYW5kIGZvcndhcmRlZCBjYWxscy4KKyAgICBBbGwgdGhlc2UgY2FsbHMgZ28gdG8gdGhlIHNhbWUgJ2FwcGxpY2F0aW9uJywgYnV0IHByZXN1bWFibHkgdGhhdAorICAgIGFwcGxpY2F0aW9uIGFjdHMgZGlmZmVyZW50bHkgd2l0aCBkaWZmZXJlbnQgVVJMcy4gIFRoZSBmb3J3YXJkZWQKKyAgICBVUkxzIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhpcyBjb250YWluZXIuCisKKyAgICBJbnRlcmZhY2UgaXMgZW50aXJlbHkgdGhyb3VnaCB0aGUgYGBwYXN0ZS5yZWN1cnNpdmUuZm9yd2FyZGBgIGFuZAorICAgIGBgcGFzdGUucmVjdXJzaXZlLmluY2x1ZGVgYCBlbnZpcm9ubWVudGFsIGtleXMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwbGljYXRpb24sIGdsb2JhbF9jb25mPU5vbmUpOgorICAgICAgICBzZWxmLmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb24KKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGVudmlyb25bJ3Bhc3RlLnJlY3Vyc2l2ZS5mb3J3YXJkJ10gPSBGb3J3YXJkZXIoCisgICAgICAgICAgICBzZWxmLmFwcGxpY2F0aW9uLAorICAgICAgICAgICAgZW52aXJvbiwKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBlbnZpcm9uWydwYXN0ZS5yZWN1cnNpdmUuaW5jbHVkZSddID0gSW5jbHVkZXIoCisgICAgICAgICAgICBzZWxmLmFwcGxpY2F0aW9uLAorICAgICAgICAgICAgZW52aXJvbiwKKyAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBlbnZpcm9uWydwYXN0ZS5yZWN1cnNpdmUuaW5jbHVkZV9hcHBfaXRlciddID0gSW5jbHVkZXJBcHBJdGVyKAorICAgICAgICAgICAgc2VsZi5hcHBsaWNhdGlvbiwKKyAgICAgICAgICAgIGVudmlyb24sCisgICAgICAgICAgICBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgbXlfc2NyaXB0X25hbWUgPSBlbnZpcm9uLmdldCgnU0NSSVBUX05BTUUnLCAnJykKKyAgICAgICAgZW52aXJvblsncGFzdGUucmVjdXJzaXZlLnNjcmlwdF9uYW1lJ10gPSBteV9zY3JpcHRfbmFtZQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgZXhjZXB0IEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBtaWRkbGV3YXJlID0gQ2hlY2tGb3JSZWN1cnNpb25NaWRkbGV3YXJlKAorICAgICAgICAgICAgICAgIGUuZmFjdG9yeShzZWxmKSwgZW52aXJvbikKKyAgICAgICAgICAgIHJldHVybiBtaWRkbGV3YXJlKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCitjbGFzcyBGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICIiIgorICAgIFVzZWQgdG8gc2lnbmFsIHRoYXQgYSByZXF1ZXN0IHNob3VsZCBiZSBmb3J3YXJkZWQgdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24uCisKKyAgICBgYHVybGBgCisgICAgICAgIFRoZSBVUkwgdG8gZm9yd2FyZCB0byBzdGFydGluZyB3aXRoIGEgYGAvYGAgYW5kIHJlbGF0aXZlIHRvCisgICAgICAgIGBgUmVjdXJzaXZlTWlkZGxld2FyZWBgLiBVUkwgZnJhZ21lbnRzIGNhbiBhbHNvIGNvbnRhaW4gcXVlcnkgc3RyaW5ncworICAgICAgICBzbyBgYC9lcnJvcj9jb2RlPTQwNGBgIHdvdWxkIGJlIGEgdmFsaWQgVVJMIGZyYWdtZW50LgorCisgICAgYGBlbnZpcm9uYGAKKyAgICAgICAgQW4gYWx0ZXJ0YXRpdmUgV1NHSSBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5IHRvIHVzZSBmb3IgdGhlIGZvcndhcmRlZAorICAgICAgICByZXF1ZXN0LiBJZiBzcGVjaWZpZWQgaXMgdXNlZCAqaW5zdGVhZCogb2YgdGhlIGBgdXJsX2ZyYWdtZW50YGAKKworICAgIGBgZmFjdG9yeWBgCisgICAgICAgIElmIHNwZWNpZmVkIGBgZmFjdG9yeWBgIGlzIHVzZWQgaW5zdGVhZCBvZiBgYHVybGBgIG9yIGBgZW52aXJvbmBgLgorICAgICAgICBgYGZhY3RvcnlgYCBpcyBhIGNhbGxhYmxlIHRoYXQgdGFrZXMgYSBXU0dJIGFwcGxpY2F0aW9uIG9iamVjdAorICAgICAgICBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHJldHVybnMgYW4gaW5pdGlhbGlzZWQgV1NHSSBtaWRkbGV3YXJlCisgICAgICAgIHdoaWNoIGNhbiBhbHRlciB0aGUgZm9yd2FyZGVkIHJlc3BvbnNlLgorCisgICAgQmFzaWMgdXNhZ2UgKG11c3QgaGF2ZSBgYFJlY3Vyc2l2ZU1pZGRsZXdhcmVgYCBwcmVzZW50KSA6CisKKyAgICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAgICAgZnJvbSBwYXN0ZS5yZWN1cnNpdmUgaW1wb3J0IEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uCisgICAgICAgIGRlZiBhcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgaWYgZW52aXJvblsnUEFUSF9JTkZPJ10gPT0gJy9oZWxsbyc6CisgICAgICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2UoIjIwMCBPSyIsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICAgICAgICAgIHJldHVybiBbYidIZWxsbyBXb3JsZCEnXQorICAgICAgICAgICAgZWxpZiBlbnZpcm9uWydQQVRIX0lORk8nXSA9PSAnL2Vycm9yJzoKKyAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgiNDA0IE5vdCBGb3VuZCIsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICAgICAgICAgIHJldHVybiBbYidQYWdlIG5vdCBmb3VuZCddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uKCcvZXJyb3InKQorCisgICAgICAgIGZyb20gcGFzdGUucmVjdXJzaXZlIGltcG9ydCBSZWN1cnNpdmVNaWRkbGV3YXJlCisgICAgICAgIGFwcCA9IFJlY3Vyc2l2ZU1pZGRsZXdhcmUoYXBwKQorCisgICAgSWYgeW91IHJhbiB0aGlzIGFwcGxpY2F0aW9uIGFuZCB2aXNpdGVkIGBgL2hlbGxvYGAgeW91IHdvdWxkIGdldCBhCisgICAgYGBIZWxsbyBXb3JsZCFgYCBtZXNzYWdlLiBJZiB5b3UgcmFuIHRoZSBhcHBsaWNhdGlvbiBhbmQgdmlzaXRlZAorICAgIGBgL25vdF9mb3VuZGBgIGEgYGBGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbmBgIHdvdWxkIGJlIHJhaXNlZCBhbmQgdGhlIGNhdWdodAorICAgIGJ5IHRoZSBgYFJlY3Vyc2l2ZU1pZGRsZXdhcmVgYC4gVGhlIGBgUmVjdXJzaXZlTWlkZGxld2FyZWBgIHdvdWxkIHRoZW4KKyAgICByZXR1cm4gdGhlIGhlYWRlcnMgYW5kIHJlc3BvbnNlIGZyb20gdGhlIGBgL2Vycm9yYGAgVVJMIGJ1dCB3b3VsZCBkaXNwbGF5CisgICAgYSBgYDQwNCBOb3QgZm91bmRgYCBzdGF0dXMgbWVzc2FnZS4KKworICAgIFlvdSBjb3VsZCBhbHNvIHNwZWNpZnkgYW4gYGBlbnZpcm9uYGAgZGljdGlvbmFyeSBpbnN0ZWFkIG9mIGEgdXJsLiBVc2luZworICAgIHRoZSBzYW1lIGV4YW1wbGUgYXMgYmVmb3JlOgorCisgICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICAgIGRlZiBhcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgLi4uIHNhbWUgYXMgcHJldmlvdXMgZXhhbXBsZSAuLi4KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbmV3X2Vudmlyb24gPSBlbnZpcm9uLmNvcHkoKQorICAgICAgICAgICAgICAgIG5ld19lbnZpcm9uWydQQVRIX0lORk8nXSA9ICcvZXJyb3InCisgICAgICAgICAgICAgICAgcmFpc2UgRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24oZW52aXJvbj1uZXdfZW52aXJvbikKKworICAgIEZpbmFsbHksIGlmIHlvdSB3YW50IGNvbXBsZXRlIGNvbnRyb2wgb3ZlciBldmVyeSBhc3BlY3Qgb2YgdGhlIGZvcndhcmQgeW91CisgICAgY2FuIHNwZWNpZnkgYSBtaWRkbGV3YXJlIGZhY3RvcnkuIEZvciBleGFtcGxlIHRvIGtlZXAgdGhlIG9sZCBzdGF0dXMgY29kZQorICAgIGJ1dCB1c2UgdGhlIGhlYWRlcnMgYW5kIHJlc3Bvc25lIGJvZHkgZnJvbSB0aGUgZm9yd2FyZGVkIHJlc3BvbnNlIHlvdSBtaWdodAorICAgIGRvIHRoaXM6CisKKyAgICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAgICAgZnJvbSBwYXN0ZS5yZWN1cnNpdmUgaW1wb3J0IEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uCisgICAgICAgIGZyb20gcGFzdGUucmVjdXJzaXZlIGltcG9ydCBSZWN1cnNpdmVNaWRkbGV3YXJlCisgICAgICAgIGZyb20gcGFzdGUuZXJyb3Jkb2N1bWVudCBpbXBvcnQgU3RhdHVzS2VlcGVyCisKKyAgICAgICAgZGVmIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICBpZiBlbnZpcm9uWydQQVRIX0lORk8nXSA9PSAnL2hlbGxvJzoKKyAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgiMjAwIE9LIiwgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIFtiJ0hlbGxvIFdvcmxkISddCisgICAgICAgICAgICBlbGlmIGVudmlyb25bJ1BBVEhfSU5GTyddID09ICcvZXJyb3InOgorICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCI0MDQgTm90IEZvdW5kIiwgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIFtiJ1BhZ2Ugbm90IGZvdW5kJ10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZGVmIGZhY3RvcnkoYXBwKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0tlZXBlcihhcHAsIHN0YXR1cz0nNDA0IE5vdCBGb3VuZCcsIHVybD0nL2Vycm9yJykKKyAgICAgICAgICAgICAgICByYWlzZSBGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbihmYWN0b3J5PWZhY3RvcnkpCisKKyAgICAgICAgYXBwID0gUmVjdXJzaXZlTWlkZGxld2FyZShhcHApCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oCisgICAgICAgIHNlbGYsCisgICAgICAgIHVybD1Ob25lLAorICAgICAgICBlbnZpcm9uPXt9LAorICAgICAgICBmYWN0b3J5PU5vbmUsCisgICAgICAgIHBhdGhfaW5mbz1Ob25lKToKKyAgICAgICAgIyBDaGVjayBubyBpbmNvbXBhdGlibGUgb3B0aW9ucyBoYXZlIGJlZW4gY2hvc2VuCisgICAgICAgIGlmIGZhY3RvcnkgYW5kIHVybDoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAnWW91IGNhbm5vdCBzcGVjaWZ5IGZhY3RvcnkgYW5kIGEgdXJsIGluICcKKyAgICAgICAgICAgICAgICAnRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24nKQorICAgICAgICBlbGlmIGZhY3RvcnkgYW5kIGVudmlyb246CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgJ1lvdSBjYW5ub3Qgc3BlY2lmeSBmYWN0b3J5IGFuZCBlbnZpcm9uIGluICcKKyAgICAgICAgICAgICAgICAnRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24nKQorICAgICAgICBpZiB1cmwgYW5kIGVudmlyb246CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgJ1lvdSBjYW5ub3Qgc3BlY2lmeSBlbnZpcm9uIGFuZCB1cmwgaW4gJworICAgICAgICAgICAgICAgICdGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbicpCisKKyAgICAgICAgIyBzZXQgdGhlIHBhdGhfaW5mbyBvciB3YXJuIGFib3V0IGl0cyB1c2UuCisgICAgICAgIGlmIHBhdGhfaW5mbzoKKyAgICAgICAgICAgIGlmIG5vdCB1cmw6CisgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICAgICAgIkZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uKHBhdGhfaW5mbz0uLi4pIGhhcyBiZWVuIGRlcHJlY2F0ZWQ7IHBsZWFzZSAiCisgICAgICAgICAgICAgICAgICAgICJ1c2UgRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24odXJsPS4uLikiLAorICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignWW91IGNhbm5vdCB1c2UgdXJsIGFuZCBwYXRoX2luZm8gaW4gRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24nKQorICAgICAgICAgICAgc2VsZi5wYXRoX2luZm8gPSBwYXRoX2luZm8KKworICAgICAgICAjIElmIHRoZSB1cmwgY2FuIGJlIHRyZWF0ZWQgYXMgYSBwYXRoX2luZm8gZG8gdGhhdAorICAgICAgICBpZiB1cmwgYW5kIG5vdCAnPycgaW4gc3RyKHVybCk6CisgICAgICAgICAgICBzZWxmLnBhdGhfaW5mbyA9IHVybAorCisgICAgICAgICMgQmFzZSBtaWRkbGV3YXJlCisgICAgICAgIGNsYXNzIEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uTWlkZGxld2FyZShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCk6CisgICAgICAgICAgICAgICAgc2VsZi5hcHAgPSBhcHAKKworICAgICAgICAjIE90aGVyd2lzZSBjb25zdHJ1Y3QgdGhlIGFwcHJvcHJpYXRlIG1pZGRsZXdhcmUgZmFjdG9yeQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdwYXRoX2luZm8nKToKKyAgICAgICAgICAgIHAgPSBzZWxmLnBhdGhfaW5mbworICAgICAgICAgICAgZGVmIGZhY3RvcnlfKGFwcCk6CisgICAgICAgICAgICAgICAgY2xhc3MgUGF0aEluZm9Gb3J3YXJkKEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uTWlkZGxld2FyZSk6CisgICAgICAgICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uWydQQVRIX0lORk8nXSA9IHAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUGF0aEluZm9Gb3J3YXJkKGFwcCkKKyAgICAgICAgICAgIHNlbGYuZmFjdG9yeSA9IGZhY3RvcnlfCisgICAgICAgIGVsaWYgdXJsOgorICAgICAgICAgICAgZGVmIGZhY3RvcnlfKGFwcCk6CisgICAgICAgICAgICAgICAgY2xhc3MgVVJMRm9yd2FyZChGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbk1pZGRsZXdhcmUpOgorICAgICAgICAgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvblsnUEFUSF9JTkZPJ10gPSB1cmwuc3BsaXQoJz8nKVswXQorICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSB1cmwuc3BsaXQoJz8nKVsxXQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgIHJldHVybiBVUkxGb3J3YXJkKGFwcCkKKyAgICAgICAgICAgIHNlbGYuZmFjdG9yeSA9IGZhY3RvcnlfCisgICAgICAgIGVsaWYgZW52aXJvbjoKKyAgICAgICAgICAgIGRlZiBmYWN0b3J5XyhhcHApOgorICAgICAgICAgICAgICAgIGNsYXNzIEVudmlyb25Gb3J3YXJkKEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uTWlkZGxld2FyZSk6CisgICAgICAgICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uXywgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgIHJldHVybiBFbnZpcm9uRm9yd2FyZChhcHApCisgICAgICAgICAgICBzZWxmLmZhY3RvcnkgPSBmYWN0b3J5XworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWN0b3J5ID0gZmFjdG9yeQorCitjbGFzcyBSZWN1cnNpdmUob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBsaWNhdGlvbiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzZWxmLmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb24KKyAgICAgICAgc2VsZi5vcmlnaW5hbF9lbnZpcm9uID0gZW52aXJvbi5jb3B5KCkKKyAgICAgICAgc2VsZi5wcmV2aW91c19lbnZpcm9uID0gZW52aXJvbgorICAgICAgICBzZWxmLnN0YXJ0X3Jlc3BvbnNlID0gc3RhcnRfcmVzcG9uc2UKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXRoLCBleHRyYV9lbnZpcm9uPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgYGV4dHJhX2Vudmlyb25gIGlzIGFuIG9wdGlvbmFsIGRpY3Rpb25hcnkgdGhhdCBpcyBhbHNvIGFkZGVkCisgICAgICAgIHRvIHRoZSBmb3J3YXJkZWQgcmVxdWVzdC4gIEUuZy4sIGBgeydIVFRQX0hPU1QnOiAnbmV3Lmhvc3QnfWBgCisgICAgICAgIGNvdWxkIGJlIHVzZWQgdG8gZm9yd2FyZCB0byBhIGRpZmZlcmVudCB2aXJ0dWFsIGhvc3QuCisgICAgICAgICIiIgorICAgICAgICBlbnZpcm9uID0gc2VsZi5vcmlnaW5hbF9lbnZpcm9uLmNvcHkoKQorICAgICAgICBpZiBleHRyYV9lbnZpcm9uOgorICAgICAgICAgICAgZW52aXJvbi51cGRhdGUoZXh0cmFfZW52aXJvbikKKyAgICAgICAgZW52aXJvblsncGFzdGUucmVjdXJzaXZlLnByZXZpb3VzX2Vudmlyb24nXSA9IHNlbGYucHJldmlvdXNfZW52aXJvbgorICAgICAgICBiYXNlX3BhdGggPSBzZWxmLm9yaWdpbmFsX2Vudmlyb24uZ2V0KCdTQ1JJUFRfTkFNRScpCisgICAgICAgIGlmIHBhdGguc3RhcnRzd2l0aCgnLycpOgorICAgICAgICAgICAgYXNzZXJ0IHBhdGguc3RhcnRzd2l0aChiYXNlX3BhdGgpLCAoCisgICAgICAgICAgICAgICAgIllvdSBjYW4gb25seSBmb3J3YXJkIHJlcXVlc3RzIHRvIHJlc291cmNlcyB1bmRlciB0aGUgIgorICAgICAgICAgICAgICAgICJwYXRoICVyIChub3QgJXIpIiAlIChiYXNlX3BhdGgsIHBhdGgpKQorICAgICAgICAgICAgcGF0aCA9IHBhdGhbbGVuKGJhc2VfcGF0aCkrMTpdCisgICAgICAgIGFzc2VydCBub3QgcGF0aC5zdGFydHN3aXRoKCcvJykKKyAgICAgICAgcGF0aF9pbmZvID0gJy8nICsgcGF0aAorICAgICAgICBlbnZpcm9uWydQQVRIX0lORk8nXSA9IHBhdGhfaW5mbworICAgICAgICBlbnZpcm9uWydSRVFVRVNUX01FVEhPRCddID0gJ0dFVCcKKyAgICAgICAgZW52aXJvblsnQ09OVEVOVF9MRU5HVEgnXSA9ICcwJworICAgICAgICBlbnZpcm9uWydDT05URU5UX1RZUEUnXSA9ICcnCisgICAgICAgIGVudmlyb25bJ3dzZ2kuaW5wdXQnXSA9IFN0cmluZ0lPKCcnKQorICAgICAgICByZXR1cm4gc2VsZi5hY3RpdmF0ZShlbnZpcm9uKQorCisgICAgZGVmIGFjdGl2YXRlKHNlbGYsIGVudmlyb24pOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzLiVzIGZyb20gJXM+JyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbW9kdWxlX18sCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfZW52aXJvbi5nZXQoJ1NDUklQVF9OQU1FJykgb3IgJy8nKQorCitjbGFzcyBGb3J3YXJkZXIoUmVjdXJzaXZlKToKKworICAgICIiIgorICAgIFRoZSBmb3J3YXJkZXIgd2lsbCB0cnkgdG8gcmVzdGFydCB0aGUgcmVxdWVzdCwgZXhjZXB0IHdpdGgKKyAgICB0aGUgbmV3IGBwYXRoYCAocmVwbGFjaW5nIGBgUEFUSF9JTkZPYGAgaW4gdGhlIHJlcXVlc3QpLgorCisgICAgSXQgbXVzdCBub3QgYmUgY2FsbGVkIGFmdGVyIGFuZCBoZWFkZXJzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICBJdCByZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgbXVzdCBiZSByZXR1cm5lZCBiYWNrIHVwIHRoZSBjYWxsCisgICAgc3RhY2ssIHNvIGl0IG11c3QgYmUgdXNlZCBsaWtlOgorCisgICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICAgIHJldHVybiBlbnZpcm9uWydwYXN0ZS5yZWN1cnNpdmUuZm9yd2FyZCddKHBhdGgpCisKKyAgICBNZWFuaW5nZnVsIHRyYW5zZm9ybWF0aW9ucyBjYW5ub3QgYmUgZG9uZSwgc2luY2UgaGVhZGVycyBhcmUKKyAgICBzZW50IGRpcmVjdGx5IHRvIHRoZSBzZXJ2ZXIgYW5kIGNhbm5vdCBiZSBpbnNwZWN0ZWQgb3IKKyAgICByZXdyaXR0ZW4uCisgICAgIiIiCisKKyAgICBkZWYgYWN0aXZhdGUoc2VsZiwgZW52aXJvbik6CisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAicmVjdXJzaXZlLkZvcndhcmRlciBoYXMgYmVlbiBkZXByZWNhdGVkOyBwbGVhc2UgdXNlICIKKyAgICAgICAgICAgICJGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbiIsCisgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgIHJldHVybiBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIHNlbGYuc3RhcnRfcmVzcG9uc2UpCisKKworY2xhc3MgSW5jbHVkZXIoUmVjdXJzaXZlKToKKworICAgICIiIgorICAgIFN0YXJ0cyBhbm90aGVyIHJlcXVlc3Qgd2l0aCB0aGUgZ2l2ZW4gcGF0aCBhbmQgYWRkaW5nIG9yCisgICAgb3ZlcndyaXRpbmcgYW55IHZhbHVlcyBpbiB0aGUgYGV4dHJhX2Vudmlyb25gIGRpY3Rpb25hcnkuCisgICAgUmV0dXJucyBhbiBJbmNsdWRlUmVzcG9uc2Ugb2JqZWN0LgorICAgICIiIgorCisgICAgZGVmIGFjdGl2YXRlKHNlbGYsIGVudmlyb24pOgorICAgICAgICByZXNwb25zZSA9IEluY2x1ZGVkUmVzcG9uc2UoKQorICAgICAgICBkZWYgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgIGlmIGV4Y19pbmZvOgorICAgICAgICAgICAgICAgIHNpeC5yZXJhaXNlKGV4Y19pbmZvWzBdLCBleGNfaW5mb1sxXSwgZXhjX2luZm9bMl0pCisgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSBzdGF0dXMKKyAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMgPSBoZWFkZXJzCisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2Uud3JpdGUKKyAgICAgICAgYXBwX2l0ZXIgPSBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgcyBpbiBhcHBfaXRlcjoKKyAgICAgICAgICAgICAgICByZXNwb25zZS53cml0ZShzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgaWYgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICAgICAgYXBwX2l0ZXIuY2xvc2UoKQorICAgICAgICByZXNwb25zZS5jbG9zZSgpCisgICAgICAgIHJldHVybiByZXNwb25zZQorCitjbGFzcyBJbmNsdWRlZFJlc3BvbnNlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYuaGVhZGVycyA9IE5vbmUKKyAgICAgICAgc2VsZi5zdGF0dXMgPSBOb25lCisgICAgICAgIHNlbGYub3V0cHV0ID0gU3RyaW5nSU8oKQorICAgICAgICBzZWxmLnN0ciA9IE5vbmUKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgc2VsZi5zdHIgPSBzZWxmLm91dHB1dC5nZXR2YWx1ZSgpCisgICAgICAgIHNlbGYub3V0cHV0LmNsb3NlKCkKKyAgICAgICAgc2VsZi5vdXRwdXQgPSBOb25lCisKKyAgICBkZWYgd3JpdGUoc2VsZiwgcyk6CisgICAgICAgIGFzc2VydCBzZWxmLm91dHB1dCBpcyBub3QgTm9uZSwgKAorICAgICAgICAgICAgIlRoaXMgcmVzcG9uc2UgaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQgYW5kIG5vIGZ1cnRoZXIgZGF0YSAiCisgICAgICAgICAgICAiY2FuIGJlIHdyaXR0ZW4uIikKKyAgICAgICAgc2VsZi5vdXRwdXQud3JpdGUocykKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5ib2R5CisKKyAgICBkZWYgYm9keV9fZ2V0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnN0ciBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYub3V0cHV0LmdldHZhbHVlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnN0cgorICAgIGJvZHkgPSBwcm9wZXJ0eShib2R5X19nZXQpCisKKworY2xhc3MgSW5jbHVkZXJBcHBJdGVyKFJlY3Vyc2l2ZSk6CisgICAgIiIiCisgICAgTGlrZSBJbmNsdWRlciwgYnV0IGp1c3Qgc3RvcmVzIHRoZSBhcHBfaXRlciByZXNwb25zZQorICAgIChiZSBzdXJlIHRvIGNhbGwgY2xvc2Ugb24gdGhlIHJlc3BvbnNlISkKKyAgICAiIiIKKworICAgIGRlZiBhY3RpdmF0ZShzZWxmLCBlbnZpcm9uKToKKyAgICAgICAgcmVzcG9uc2UgPSBJbmNsdWRlZEFwcEl0ZXJSZXNwb25zZSgpCisgICAgICAgIGRlZiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgaWYgZXhjX2luZm86CisgICAgICAgICAgICAgICAgc2l4LnJlcmFpc2UoZXhjX2luZm9bMF0sIGV4Y19pbmZvWzFdLCBleGNfaW5mb1syXSkKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IHN0YXR1cworICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycyA9IGhlYWRlcnMKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS53cml0ZQorICAgICAgICBhcHBfaXRlciA9IHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIHJlc3BvbnNlLmFwcF9pdGVyID0gYXBwX2l0ZXIKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKK2NsYXNzIEluY2x1ZGVkQXBwSXRlclJlc3BvbnNlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYuc3RhdHVzID0gTm9uZQorICAgICAgICBzZWxmLmhlYWRlcnMgPSBOb25lCisgICAgICAgIHNlbGYuYWNjdW11bGF0ZWQgPSBbXQorICAgICAgICBzZWxmLmFwcF9pdGVyID0gTm9uZQorICAgICAgICBzZWxmLl9jbG9zZWQgPSBGYWxzZQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBhc3NlcnQgbm90IHNlbGYuX2Nsb3NlZCwgKAorICAgICAgICAgICAgIlRyaWVkIHRvIGNsb3NlIHR3aWNlIikKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLmFwcF9pdGVyLCAnY2xvc2UnKToKKyAgICAgICAgICAgIHNlbGYuYXBwX2l0ZXIuY2xvc2UoKQorCisgICAgZGVmIHdyaXRlKHNlbGYsIHMpOgorICAgICAgICBzZWxmLmFjY3VtdWxhdGVkLmFwcGVuZAorCitkZWYgbWFrZV9yZWN1cnNpdmVfbWlkZGxld2FyZShhcHAsIGdsb2JhbF9jb25mKToKKyAgICByZXR1cm4gUmVjdXJzaXZlTWlkZGxld2FyZShhcHApCisKK21ha2VfcmVjdXJzaXZlX21pZGRsZXdhcmUuX19kb2NfXyA9IF9fZG9jX18KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZWdpc3RyeS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZWdpc3RyeS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDhiYzBkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3JlZ2lzdHJ5LnB5CkBAIC0wLDAgKzEsNTgxIEBACisjIChjKSAyMDA1IEJlbiBCYW5nZXJ0CisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiJSZWdpc3RyeSBmb3IgaGFuZGxpbmcgcmVxdWVzdC1sb2NhbCBtb2R1bGUgZ2xvYmFscyBzYW5lbHkKKworRGVhbGluZyB3aXRoIG1vZHVsZSBnbG9iYWxzIGluIGEgdGhyZWFkLXNhZmUgd2F5IGlzIGdvb2QgaWYgeW91cgorYXBwbGljYXRpb24gaXMgdGhlIHNvbGUgcmVzcG9uZGVyIGluIGEgdGhyZWFkLCBob3dldmVyIHRoYXQgYXBwcm9hY2ggZmFpbHMKK3RvIHByb3Blcmx5IGFjY291bnQgZm9yIHZhcmlvdXMgc2NlbmFyaW9zIHRoYXQgb2NjdXIgd2l0aCBXU0dJIGFwcGxpY2F0aW9ucworYW5kIG1pZGRsZXdhcmUuCisKK1doYXQgaXMgYWN0dWFsbHkgbmVlZGVkIGluIHRoZSBjYXNlIHdoZXJlIGEgbW9kdWxlIGdsb2JhbCBpcyBkZXNpcmVkIHRoYXQKK2lzIGFsd2F5cyBzZXQgcHJvcGVybHkgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50IHJlcXVlc3QsIGlzIGEgc3RhY2tlZAordGhyZWFkLWxvY2FsIG9iamVjdC4gU3VjaCBhbiBvYmplY3QgaXMgcG9wcGVkIG9yIHB1c2hlZCBkdXJpbmcgdGhlIHJlcXVlc3QKK2N5Y2xlIHNvIHRoYXQgaXQgcHJvcGVybHkgcmVwcmVzZW50cyB0aGUgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIGFjdGl2ZSBmb3IKK3RoZSBjdXJyZW50IHJlcXVlc3QuCisKK1RvIG1ha2UgaXQgZWFzeSB0byBkZWFsIHdpdGggc3VjaCB2YXJpYWJsZXMsIHRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc3BlY2lhbAorU3RhY2tlZE9iamVjdFByb3h5IGNsYXNzIHdoaWNoIHlvdSBjYW4gaW5zdGFudGlhdGUgYW5kIGF0dGFjaCB0byB5b3VyCittb2R1bGUgd2hlcmUgeW91J2QgbGlrZSBvdGhlcnMgdG8gYWNjZXNzIGl0LiBUaGUgb2JqZWN0IHlvdSdkIGxpa2UgdGhpcyB0bworYWN0dWFsbHkgImJlIiBkdXJpbmcgdGhlIHJlcXVlc3QgaXMgdGhlbiByZWdpc3RlcmVkIHdpdGggdGhlCitSZWdpc3RyeU1hbmFnZXIgbWlkZGxld2FyZSwgd2hpY2ggZW5zdXJlcyB0aGF0IGZvciB0aGUgc2NvcGUgb2YgdGhlIGN1cnJlbnQKK1dTR0kgYXBwbGljYXRpb24gZXZlcnl0aGluZyB3aWxsIHdvcmsgcHJvcGVybHkuCisKK0V4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICN5b3VycGFja2FnZS9fX2luaXRfXy5weQorCisgICAgZnJvbSBwYXN0ZS5yZWdpc3RyeSBpbXBvcnQgUmVnaXN0cnlNYW5hZ2VyLCBTdGFja2VkT2JqZWN0UHJveHkKKyAgICBteWdsb2JhbCA9IFN0YWNrZWRPYmplY3RQcm94eSgpCisKKyAgICAjd3NnaSBhcHAgc3RhY2sKKyAgICBhcHAgPSBSZWdpc3RyeU1hbmFnZXIoeW91cmFwcCkKKworICAgICNpbnNpZGUgeW91ciB3c2dpIGFwcAorICAgIGNsYXNzIHlvdXJhcHAob2JqZWN0KToKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgIG9iaiA9IHNvbWVvYmplY3QgICMgVGhlIHJlcXVlc3QtbG9jYWwgb2JqZWN0IHlvdSB3YW50IHRvIGFjY2VzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB2aWEgeW91cnBhY2thZ2UubXlnbG9iYWwKKyAgICAgICAgICAgIGlmIGVudmlyb24uaGFzX2tleSgncGFzdGUucmVnaXN0cnknKToKKyAgICAgICAgICAgICAgICBlbnZpcm9uWydwYXN0ZS5yZWdpc3RyeSddLnJlZ2lzdGVyKG15Z2xvYmFsLCBvYmopCisKK1lvdSB3aWxsIHRoZW4gYmUgYWJsZSB0byBpbXBvcnQgeW91cnBhY2thZ2UgYW55d2hlcmUgaW4geW91ciBXU0dJIGFwcCBvciBpbgordGhlIGNhbGxpbmcgc3RhY2sgYmVsb3cgaXQgYW5kIGJlIGFzc3VyZWQgdGhhdCBpdCBpcyB1c2luZyB0aGUgb2JqZWN0IHlvdQorcmVnaXN0ZXJlZCB3aXRoIFJlZ2lzdHJ5LgorCitSZWdpc3RyeU1hbmFnZXIgY2FuIGJlIGluIHRoZSBXU0dJIHN0YWNrIG11bHRpcGxlIHRpbWVzLCBlYWNoIHRpbWUgaXQKK2FwcGVhcnMgaXQgcmVnaXN0ZXJzIGEgbmV3IHJlcXVlc3QgY29udGV4dC4KKworCitQZXJmb3JtYW5jZQorPT09PT09PT09PT0KKworVGhlIG92ZXJoZWFkIG9mIHRoZSBwcm94eSBvYmplY3QgaXMgdmVyeSBtaW5pbWFsLCBob3dldmVyIGlmIHlvdSBhcmUgdXNpbmcKK3Byb3h5IG9iamVjdHMgZXh0ZW5zaXZlbHkgKFRob3VzYW5kcyBvZiBhY2Nlc3NlcyBwZXIgcmVxdWVzdCBvciBtb3JlKSwgdGhlcmUKK2FyZSBzb21lIHdheXMgdG8gYXZvaWQgdGhlbS4gQSBwcm94eSBvYmplY3QgcnVucyBhcHByb3hpbWF0ZWx5IDMtMjB4IHNsb3dlcgordGhhbiBkaXJlY3QgYWNjZXNzIHRvIHRoZSBvYmplY3QsIHRoaXMgaXMgcmFyZWx5IHlvdXIgcGVyZm9ybWFuY2UgYm90dGxlbmVjaword2hlbiBkZXZlbG9waW5nIHdlYiBhcHBsaWNhdGlvbnMuCisKK1Nob3VsZCB5b3UgYmUgZGV2ZWxvcGluZyBhIHN5c3RlbSB3aGljaCBtYXkgYmUgYWNjZXNzaW5nIHRoZSBwcm94eSBvYmplY3QKK3Rob3VzYW5kcyBvZiB0aW1lcyBwZXIgcmVxdWVzdCwgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwcm94eSB3aWxsIHN0YXJ0IHRvCitiZWNvbWUgbW9yZSBub3RpY2VhYmxlLiBJbiB0aGF0IGNpcmN1bXN0YW5jZSwgdGhlIHByb2JsZW0gY2FuIGJlIGF2b2lkZWQgYnkKK2dldHRpbmcgYXQgdGhlIGFjdHVhbCBvYmplY3QgdmlhIHRoZSBwcm94eSB3aXRoIHRoZSBgYF9jdXJyZW50X29iamBgIGZ1bmN0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjc2Vzc2lvbnMucHkKKyAgICBTZXNzaW9uID0gU3RhY2tlZE9iamVjdFByb3h5KCkKKyAgICAjIC4uLiBpbml0aWFsaXphdGlvbiBjb2RlLCBldGMuCisKKyAgICAjIHNvbWVtb2R1bGUucHkKKyAgICBpbXBvcnQgc2Vzc2lvbnMKKworICAgIGRlZiBzb21lZnVuYygpOgorICAgICAgICBzZXNzaW9uID0gc2Vzc2lvbnMuU2Vzc2lvbi5fY3VycmVudF9vYmooKQorICAgICAgICAjIC4uLiB0b25zIG9mIHNlc3Npb24gYWNjZXNzCisKK1RoaXMgd2F5IHRoZSBwcm94eSBpcyB1c2VkIG9ubHkgb25jZSB0byByZXRyaWV2ZSB0aGUgb2JqZWN0IGZvciB0aGUgY3VycmVudAorY29udGV4dCBhbmQgdGhlIG92ZXJoZWFkIGlzIG1pbmltaXplZCB3aGlsZSBzdGlsbCBtYWtpbmcgaXQgZWFzeSB0byBhY2Nlc3MKK3RoZSB1bmRlcmx5aW5nIG9iamVjdC4gVGhlIGBgX2N1cnJlbnRfb2JqYGAgZnVuY3Rpb24gaXMgcHJlY2VkZWQgYnkgYW4KK3VuZGVyc2NvcmUgdG8gbW9yZSBsaWtlbHkgYXZvaWQgY2xhc2hpbmcgd2l0aCB0aGUgY29udGFpbmVkIG9iamVjdCdzCithdHRyaWJ1dGVzLgorCisqKk5PVEU6KiogVGhpcyBpcyAqaGlnaGx5KiB1bmxpa2VseSB0byBiZSBhbiBpc3N1ZSBpbiB0aGUgdmFzdCBtYWpvcml0eSBvZgorY2FzZXMsIGFuZCByZXF1aXJlcyBpbmNyZWRpYmx5IGxhcmdlIGFtb3VudHMgb2YgcHJveHkgb2JqZWN0IGFjY2VzcyBiZWZvcmUKK29uZSBzaG91bGQgY29uc2lkZXIgdGhlIHByb3h5IG9iamVjdCB0byBiZSBjYXVzaW5nIHNsb3ctZG93bnMuIFRoaXMgc2VjdGlvbgoraXMgcHJvdmlkZWQgc29sZWx5IGluIHRoZSBleHRyZW1lbHkgcmFyZSBjYXNlIHRoYXQgaXQgaXMgYW4gaXNzdWUgc28gdGhhdCBhCitxdWljayB3YXkgdG8gd29yayBhcm91bmQgaXQgaXMgZG9jdW1lbnRlZC4KKworIiIiCitpbXBvcnQgc2l4CitpbXBvcnQgcGFzdGUudXRpbC50aHJlYWRpbmdsb2NhbCBhcyB0aHJlYWRpbmdsb2NhbAorCitfX2FsbF9fID0gWydTdGFja2VkT2JqZWN0UHJveHknLCAnUmVnaXN0cnlNYW5hZ2VyJywgJ1N0YWNrZWRPYmplY3RSZXN0b3JlcicsCisgICAgICAgICAgICdyZXN0b3JlciddCisKK2NsYXNzIE5vRGVmYXVsdChvYmplY3QpOiBwYXNzCisKK2NsYXNzIFN0YWNrZWRPYmplY3RQcm94eShvYmplY3QpOgorICAgICIiIlRyYWNrIGFuIG9iamVjdCBpbnN0YW5jZSBpbnRlcm5hbGx5IHVzaW5nIGEgc3RhY2sKKworICAgIFRoZSBTdGFja2VkT2JqZWN0UHJveHkgcHJveGllcyBhY2Nlc3MgdG8gYW4gb2JqZWN0IGludGVybmFsbHkgdXNpbmcgYQorICAgIHN0YWNrZWQgdGhyZWFkLWxvY2FsLiBUaGlzIG1ha2VzIGl0IHNhZmUgZm9yIGNvbXBsZXggV1NHSSBlbnZpcm9ubWVudHMKKyAgICB3aGVyZSBhY2Nlc3MgdG8gdGhlIG9iamVjdCBtYXkgYmUgZGVzaXJlZCBpbiBtdWx0aXBsZSBwbGFjZXMgd2l0aG91dAorICAgIGhhdmluZyB0byBwYXNzIHRoZSBhY3R1YWwgb2JqZWN0IGFyb3VuZC4KKworICAgIE5ldyBvYmplY3RzIGFyZSBhZGRlZCB0byB0aGUgdG9wIG9mIHRoZSBzdGFjayB3aXRoIF9wdXNoX29iamVjdCB3aGlsZQorICAgIG9iamVjdHMgY2FuIGJlIHJlbW92ZWQgd2l0aCBfcG9wX29iamVjdC4KKworICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWZhdWx0PU5vRGVmYXVsdCwgbmFtZT0iRGVmYXVsdCIpOgorICAgICAgICAiIiJDcmVhdGUgYSBuZXcgU3RhY2tlZE9iamVjdFByb3h5CisKKyAgICAgICAgSWYgYSBkZWZhdWx0IGlzIGdpdmVuLCBpdHMgdXNlZCBpbiBldmVyeSB0aHJlYWQgaWYgbm8gb3RoZXIgb2JqZWN0CisgICAgICAgIGhhcyBiZWVuIHB1c2hlZCBvbi4KKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fX2RpY3RfX1snX19fX25hbWVfXyddID0gbmFtZQorICAgICAgICBzZWxmLl9fZGljdF9fWydfX19fbG9jYWxfXyddID0gdGhyZWFkaW5nbG9jYWwubG9jYWwoKQorICAgICAgICBpZiBkZWZhdWx0IGlzIG5vdCBOb0RlZmF1bHQ6CisgICAgICAgICAgICBzZWxmLl9fZGljdF9fWydfX19fZGVmYXVsdF9vYmplY3RfXyddID0gZGVmYXVsdAorCisgICAgZGVmIF9fZGlyX18oc2VsZik6CisgICAgICAgICIiIlJldHVybiBhIGxpc3Qgb2YgdGhlIFN0YWNrZWRPYmplY3RQcm94eSdzIGFuZCBwcm94aWVkCisgICAgICAgIG9iamVjdCdzIChpZiBvbmUgZXhpc3RzKSBuYW1lcy4KKyAgICAgICAgIiIiCisgICAgICAgIGRpcl9saXN0ID0gZGlyKHNlbGYuX19jbGFzc19fKSArIHNlbGYuX19kaWN0X18ua2V5cygpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRpcl9saXN0LmV4dGVuZChkaXIoc2VsZi5fY3VycmVudF9vYmooKSkpCisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRpcl9saXN0LnNvcnQoKQorICAgICAgICByZXR1cm4gZGlyX2xpc3QKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyKToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5fY3VycmVudF9vYmooKSwgYXR0cikKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBhdHRyLCB2YWx1ZSk6CisgICAgICAgIHNldGF0dHIoc2VsZi5fY3VycmVudF9vYmooKSwgYXR0ciwgdmFsdWUpCisKKyAgICBkZWYgX19kZWxhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGRlbGF0dHIoc2VsZi5fY3VycmVudF9vYmooKSwgbmFtZSkKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICByZXR1cm4gc2VsZi5fY3VycmVudF9vYmooKVtrZXldCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX2N1cnJlbnRfb2JqKClba2V5XSA9IHZhbHVlCisKKyAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAgZGVsIHNlbGYuX2N1cnJlbnRfb2JqKClba2V5XQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2N1cnJlbnRfb2JqKCkoKmFyZ3MsICoqa3cpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiByZXByKHNlbGYuX2N1cnJlbnRfb2JqKCkpCisgICAgICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICByZXR1cm4gJzwlcy4lcyBvYmplY3QgYXQgMHgleD4nICUgKHNlbGYuX19jbGFzc19fLl9fbW9kdWxlX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZChzZWxmKSkKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5fY3VycmVudF9vYmooKSkKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2N1cnJlbnRfb2JqKCkpCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CisgICAgICAgIHJldHVybiBrZXkgaW4gc2VsZi5fY3VycmVudF9vYmooKQorCisgICAgZGVmIF9fbm9uemVyb19fKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9jdXJyZW50X29iaigpKQorCisgICAgZGVmIF9jdXJyZW50X29iaihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgY3VycmVudCBhY3RpdmUgb2JqZWN0IGJlaW5nIHByb3hpZWQgdG8KKworICAgICAgICBJbiB0aGUgZXZlbnQgdGhhdCBubyBvYmplY3Qgd2FzIHB1c2hlZCwgdGhlIGRlZmF1bHQgb2JqZWN0IGlmCisgICAgICAgIHByb3ZpZGVkIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCBhIFR5cGVFcnJvciB3aWxsIGJlIHJhaXNlZC4KKworICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb2JqZWN0cyA9IHNlbGYuX19fX2xvY2FsX18ub2JqZWN0cworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBvYmplY3RzID0gTm9uZQorICAgICAgICBpZiBvYmplY3RzOgorICAgICAgICAgICAgcmV0dXJuIG9iamVjdHNbLTFdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvYmogPSBzZWxmLl9fZGljdF9fLmdldCgnX19fX2RlZmF1bHRfb2JqZWN0X18nLCBOb0RlZmF1bHQpCisgICAgICAgICAgICBpZiBvYmogaXMgbm90IE5vRGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJ05vIG9iamVjdCAobmFtZTogJXMpIGhhcyBiZWVuIHJlZ2lzdGVyZWQgZm9yIHRoaXMgJworICAgICAgICAgICAgICAgICAgICAndGhyZWFkJyAlIHNlbGYuX19fX25hbWVfXykKKworICAgIGRlZiBfcHVzaF9vYmplY3Qoc2VsZiwgb2JqKToKKyAgICAgICAgIiIiTWFrZSBgYG9iamBgIHRoZSBhY3RpdmUgb2JqZWN0IGZvciB0aGlzIHRocmVhZC1sb2NhbC4KKworICAgICAgICBUaGlzIHNob3VsZCBiZSB1c2VkIGxpa2U6CisKKyAgICAgICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICAgICAgICBvYmogPSB5b3Vyb2JqZWN0KCkKKyAgICAgICAgICAgIG1vZHVsZS5nbG9iID0gU3RhY2tlZE9iamVjdFByb3h5KCkKKyAgICAgICAgICAgIG1vZHVsZS5nbG9iLl9wdXNoX29iamVjdChvYmopCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgLi4uIGRvIHN0dWZmIC4uLgorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBtb2R1bGUuZ2xvYi5fcG9wX29iamVjdChjb25mKQorCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9fX19sb2NhbF9fLm9iamVjdHMuYXBwZW5kKG9iaikKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgc2VsZi5fX19fbG9jYWxfXy5vYmplY3RzID0gW10KKyAgICAgICAgICAgIHNlbGYuX19fX2xvY2FsX18ub2JqZWN0cy5hcHBlbmQob2JqKQorCisgICAgZGVmIF9wb3Bfb2JqZWN0KHNlbGYsIG9iaj1Ob25lKToKKyAgICAgICAgIiIiUmVtb3ZlIGEgdGhyZWFkLWxvY2FsIG9iamVjdC4KKworICAgICAgICBJZiBgYG9iamBgIGlzIGdpdmVuLCBpdCBpcyBjaGVja2VkIGFnYWluc3QgdGhlIHBvcHBlZCBvYmplY3QgYW5kIGFuCisgICAgICAgIGVycm9yIGlzIGVtaXR0ZWQgaWYgdGhleSBkb24ndCBtYXRjaC4KKworICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9wcGVkID0gc2VsZi5fX19fbG9jYWxfXy5vYmplY3RzLnBvcCgpCisgICAgICAgICAgICBpZiBvYmogYW5kIHBvcHBlZCBpcyBub3Qgb2JqOgorICAgICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAorICAgICAgICAgICAgICAgICAgICAnVGhlIG9iamVjdCBwb3BwZWQgKCVzKSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIG9iamVjdCAnCisgICAgICAgICAgICAgICAgICAgICdleHBlY3RlZCAoJXMpJyAlIChwb3BwZWQsIG9iaikpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCdObyBvYmplY3QgaGFzIGJlZW4gcmVnaXN0ZXJlZCBmb3IgdGhpcyB0aHJlYWQnKQorCisgICAgZGVmIF9vYmplY3Rfc3RhY2soc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYWxsIG9mIHRoZSBvYmplY3RzIHN0YWNrZWQgaW4gdGhpcyBjb250YWluZXIKKworICAgICAgICAoTWlnaHQgcmV0dXJuIFtdIGlmIHRoZXJlIGFyZSBub25lKQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9ianMgPSBzZWxmLl9fX19sb2NhbF9fLm9iamVjdHMKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgICAgIHJldHVybiBvYmpzWzpdCisgICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgIyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgd2lsbCBiZSBzd2FwcGVkIGZvciB0aGVpciBvcmlnaW5hbCB2ZXJzaW9ucyBieQorICAgICMgU3RhY2tlZE9iamVjdFJlc3RvcmVyIHdoZW4gcmVzdG9yYXRpb24gaXMgZW5hYmxlZC4gVGhlIG9yaWdpbmFsCisgICAgIyBmdW5jdGlvbnMgKGUuZy4gX2N1cnJlbnRfb2JqKSB3aWxsIGJlIGF2YWlsYWJsZSBhdCBfY3VycmVudF9vYmpfb3JpZworCisgICAgZGVmIF9jdXJyZW50X29ial9yZXN0b3JhdGlvbihzZWxmKToKKyAgICAgICAgcmVxdWVzdF9pZCA9IHJlc3RvcmVyLmluX3Jlc3RvcmF0aW9uKCkKKyAgICAgICAgaWYgcmVxdWVzdF9pZDoKKyAgICAgICAgICAgIHJldHVybiByZXN0b3Jlci5nZXRfc2F2ZWRfcHJveGllZF9vYmooc2VsZiwgcmVxdWVzdF9pZCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2N1cnJlbnRfb2JqX29yaWcoKQorICAgIF9jdXJyZW50X29ial9yZXN0b3JhdGlvbi5fX2RvY19fID0gXAorICAgICAgICAoJyVzXG4oU3RhY2tlZE9iamVjdFJlc3RvcmVyIHJlc3RvcmF0aW9uIGVuYWJsZWQpJyAlIFwKKyAgICAgICAgIF9jdXJyZW50X29iai5fX2RvY19fKQorCisgICAgZGVmIF9wdXNoX29iamVjdF9yZXN0b3JhdGlvbihzZWxmLCBvYmopOgorICAgICAgICBpZiBub3QgcmVzdG9yZXIuaW5fcmVzdG9yYXRpb24oKToKKyAgICAgICAgICAgIHNlbGYuX3B1c2hfb2JqZWN0X29yaWcob2JqKQorICAgIF9wdXNoX29iamVjdF9yZXN0b3JhdGlvbi5fX2RvY19fID0gXAorICAgICAgICAoJyVzXG4oU3RhY2tlZE9iamVjdFJlc3RvcmVyIHJlc3RvcmF0aW9uIGVuYWJsZWQpJyAlIFwKKyAgICAgICAgIF9wdXNoX29iamVjdC5fX2RvY19fKQorCisgICAgZGVmIF9wb3Bfb2JqZWN0X3Jlc3RvcmF0aW9uKHNlbGYsIG9iaj1Ob25lKToKKyAgICAgICAgaWYgbm90IHJlc3RvcmVyLmluX3Jlc3RvcmF0aW9uKCk6CisgICAgICAgICAgICBzZWxmLl9wb3Bfb2JqZWN0X29yaWcob2JqKQorICAgIF9wb3Bfb2JqZWN0X3Jlc3RvcmF0aW9uLl9fZG9jX18gPSBcCisgICAgICAgICgnJXNcbihTdGFja2VkT2JqZWN0UmVzdG9yZXIgcmVzdG9yYXRpb24gZW5hYmxlZCknICUgXAorICAgICAgICAgX3BvcF9vYmplY3QuX19kb2NfXykKKworY2xhc3MgUmVnaXN0cnkob2JqZWN0KToKKyAgICAiIiJUcmFjayBvYmplY3RzIGFuZCBzdGFja2VkIG9iamVjdCBwcm94aWVzIGZvciByZW1vdmFsCisKKyAgICBUaGUgUmVnaXN0cnkgb2JqZWN0IGlzIGluc3RhbnRpYXRlZCBhIHNpbmdsZSB0aW1lIGZvciB0aGUgcmVxdWVzdCBubworICAgIG1hdHRlciBob3cgbWFueSB0aW1lcyB0aGUgUmVnaXN0cnlNYW5hZ2VyIGlzIHVzZWQgaW4gYSBXU0dJIHN0YWNrLiBFYWNoCisgICAgUmVnaXN0cnlNYW5hZ2VyIG11c3QgY2FsbCBgYHByZXBhcmVgYCBiZWZvcmUgY29udGludWluZyB0aGUgY2FsbCB0bworICAgIHN0YXJ0IGEgbmV3IGNvbnRleHQgZm9yIG9iamVjdCByZWdpc3RlcmluZy4KKworICAgIEVhY2ggY29udGV4dCBpcyB0cmFja2VkIHdpdGggYSBkaWN0IGluc2lkZSBhIGxpc3QuIFRoZSBsYXN0IGxpc3QKKyAgICBlbGVtZW50IGlzIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGNvbnRleHQuIEVhY2ggY29udGV4dCBkaWN0IGlzIGtleWVkCisgICAgYnkgdGhlIGlkIG9mIHRoZSBTdGFja2VkT2JqZWN0UHJveHkgaW5zdGFuY2UgYmVpbmcgcHJveGllZCwgdGhlIHZhbHVlCisgICAgaXMgYSB0dXBsZSBvZiB0aGUgU3RhY2tlZE9iamVjdFByb3h5IGluc3RhbmNlIGFuZCB0aGUgb2JqZWN0IGJlaW5nCisgICAgdHJhY2tlZC4KKworICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IFJlZ2lzdHJ5IG9iamVjdAorCisgICAgICAgIGBgcHJlcGFyZWBgIG11c3Qgc3RpbGwgYmUgY2FsbGVkIGJlZm9yZSB0aGlzIFJlZ2lzdHJ5IG9iamVjdCBjYW4gYmUKKyAgICAgICAgdXNlZCB0byByZWdpc3RlciBvYmplY3RzLgorCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnJlZ2xpc3QgPSBbXQorCisgICAgZGVmIHByZXBhcmUoc2VsZik6CisgICAgICAgICIiIlVzZWQgdG8gY3JlYXRlIGEgbmV3IHJlZ2lzdHJ5IGNvbnRleHQKKworICAgICAgICBBbnl0aW1lIGEgbmV3IFJlZ2lzdHJ5TWFuYWdlciBpcyBjYWxsZWQsIGBgcHJlcGFyZWBgIG5lZWRzIHRvIGJlCisgICAgICAgIGNhbGxlZCBvbiB0aGUgZXhpc3RpbmcgUmVnaXN0cnkgb2JqZWN0LiBUaGlzIHNldHMgdXAgYSBuZXcgY29udGV4dAorICAgICAgICBmb3IgcmVnaXN0ZXJpbmcgb2JqZWN0cy4KKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5yZWdsaXN0LmFwcGVuZCh7fSkKKworICAgIGRlZiByZWdpc3RlcihzZWxmLCBzdGFja2VkLCBvYmopOgorICAgICAgICAiIiJSZWdpc3RlciBhbiBvYmplY3Qgd2l0aCBhIFN0YWNrZWRPYmplY3RQcm94eSIiIgorICAgICAgICBteXJlZ2xpc3QgPSBzZWxmLnJlZ2xpc3RbLTFdCisgICAgICAgIHN0YWNrZWRfaWQgPSBpZChzdGFja2VkKQorICAgICAgICBpZiBzdGFja2VkX2lkIGluIG15cmVnbGlzdDoKKyAgICAgICAgICAgIHN0YWNrZWQuX3BvcF9vYmplY3QobXlyZWdsaXN0W3N0YWNrZWRfaWRdWzFdKQorICAgICAgICAgICAgZGVsIG15cmVnbGlzdFtzdGFja2VkX2lkXQorICAgICAgICBzdGFja2VkLl9wdXNoX29iamVjdChvYmopCisgICAgICAgIG15cmVnbGlzdFtzdGFja2VkX2lkXSA9IChzdGFja2VkLCBvYmopCisKKyAgICBkZWYgbXVsdGlyZWdpc3RlcihzZWxmLCBzdGFja2xpc3QpOgorICAgICAgICAiIiJSZWdpc3RlciBhIGxpc3Qgb2YgdHVwbGVzCisKKyAgICAgICAgU2ltaWxhciBjYWxsIHNlbWFudGljcyBhcyByZWdpc3RlciwgZXhjZXB0IHRoaXMgcmVnaXN0ZXJzCisgICAgICAgIG11bHRpcGxlIG9iamVjdHMgYXQgb25jZS4KKworICAgICAgICBFeGFtcGxlOjoKKworICAgICAgICAgICAgcmVnaXN0cnkubXVsdGlyZWdpc3RlcihbKHNvcCwgb2JqKSwgKGFub3RoZXJzb3AsIGFub3RoZXJvYmopXSkKKworICAgICAgICAiIiIKKyAgICAgICAgbXlyZWdsaXN0ID0gc2VsZi5yZWdsaXN0Wy0xXQorICAgICAgICBmb3Igc3RhY2tlZCwgb2JqIGluIHN0YWNrbGlzdDoKKyAgICAgICAgICAgIHN0YWNrZWRfaWQgPSBpZChzdGFja2VkKQorICAgICAgICAgICAgaWYgc3RhY2tlZF9pZCBpbiBteXJlZ2xpc3Q6CisgICAgICAgICAgICAgICAgc3RhY2tlZC5fcG9wX29iamVjdChteXJlZ2xpc3Rbc3RhY2tlZF9pZF1bMV0pCisgICAgICAgICAgICAgICAgZGVsIG15cmVnbGlzdFtzdGFja2VkX2lkXQorICAgICAgICAgICAgc3RhY2tlZC5fcHVzaF9vYmplY3Qob2JqKQorICAgICAgICAgICAgbXlyZWdsaXN0W3N0YWNrZWRfaWRdID0gKHN0YWNrZWQsIG9iaikKKworICAgICMgUmVwbGFjZSBub3cgZG9lcyB0aGUgc2FtZSB0aGluZyBhcyByZWdpc3RlcgorICAgIHJlcGxhY2UgPSByZWdpc3RlcgorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgICIiIlJlbW92ZSBhbGwgb2JqZWN0cyBmcm9tIGFsbCBTdGFja2VkT2JqZWN0UHJveHkgaW5zdGFuY2VzIHRoYXQKKyAgICAgICAgd2VyZSB0cmFja2VkIGF0IHRoaXMgUmVnaXN0cnkgY29udGV4dCIiIgorICAgICAgICBmb3Igc3RhY2tlZCwgb2JqIGluIHNpeC5pdGVydmFsdWVzKHNlbGYucmVnbGlzdFstMV0pOgorICAgICAgICAgICAgc3RhY2tlZC5fcG9wX29iamVjdChvYmopCisgICAgICAgIHNlbGYucmVnbGlzdC5wb3AoKQorCitjbGFzcyBSZWdpc3RyeU1hbmFnZXIob2JqZWN0KToKKyAgICAiIiJDcmVhdGVzIGFuZCBtYWludGFpbnMgYSBSZWdpc3RyeSBjb250ZXh0CisKKyAgICBSZWdpc3RyeU1hbmFnZXIgY3JlYXRlcyBhIG5ldyByZWdpc3RyeSBjb250ZXh0IGZvciB0aGUgcmVnaXN0cmF0aW9uIG9mCisgICAgU3RhY2tlZE9iamVjdFByb3h5IGluc3RhbmNlcy4gTXVsdGlwbGUgUmVnaXN0cnlNYW5hZ2VyJ3MgY2FuIGJlIGluIGEKKyAgICBXU0dJIHN0YWNrIGFuZCB3aWxsIG1hbmFnZSB0aGUgY29udGV4dCBzbyB0aGF0IHRoZSBTdGFja2VkT2JqZWN0UHJveGllcworICAgIGFsd2F5cyBwcm94eSB0byB0aGUgcHJvcGVyIG9iamVjdC4KKworICAgIFRoZSBvYmplY3QgYmVpbmcgcmVnaXN0ZXJlZCBjYW4gYmUgYW55IG9iamVjdCBzdWItY2xhc3MsIGxpc3QsIG9yIGRpY3QuCisKKyAgICBSZWdpc3RlcmluZyBvYmplY3RzIGlzIGRvbmUgaW5zaWRlIGEgV1NHSSBhcHBsaWNhdGlvbiB1bmRlciB0aGUKKyAgICBSZWdpc3RyeU1hbmFnZXIgaW5zdGFuY2UsIHVzaW5nIHRoZSBgYGVudmlyb25bJ3Bhc3RlLnJlZ2lzdHJ5J11gYAorICAgIG9iamVjdCB3aGljaCBpcyBhIFJlZ2lzdHJ5IGluc3RhbmNlLgorCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcGxpY2F0aW9uLCBzdHJlYW1pbmc9RmFsc2UpOgorICAgICAgICBzZWxmLmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb24KKyAgICAgICAgc2VsZi5zdHJlYW1pbmcgPSBzdHJlYW1pbmcKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGFwcF9pdGVyID0gTm9uZQorICAgICAgICByZWcgPSBlbnZpcm9uLnNldGRlZmF1bHQoJ3Bhc3RlLnJlZ2lzdHJ5JywgUmVnaXN0cnkoKSkKKyAgICAgICAgcmVnLnByZXBhcmUoKQorICAgICAgICBpZiBzZWxmLnN0cmVhbWluZzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnN0cmVhbWluZ19pdGVyKHJlZywgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXBwX2l0ZXIgPSBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAjIFJlZ2FyZGxlc3Mgb2YgaWYgdGhlIGNvbnRlbnQgaXMgYW4gaXRlcmFibGUsIGdlbmVyYXRvciwgbGlzdAorICAgICAgICAgICAgIyBvciB0dXBsZSwgd2UgY2xlYW4tdXAgcmlnaHQgbm93LiBJZiBpdHMgYW4gaXRlcmFibGUvZ2VuZXJhdG9yCisgICAgICAgICAgICAjIGNhcmUgc2hvdWxkIGJlIHVzZWQgdG8gZW5zdXJlIHRoZSBnZW5lcmF0b3IgaGFzIGl0cyBvd24gcmVmCisgICAgICAgICAgICAjIHRvIHRoZSBhY3R1YWwgb2JqZWN0CisgICAgICAgICAgICBpZiBlbnZpcm9uLmdldCgncGFzdGUuZXZhbGV4Y2VwdGlvbicpOgorICAgICAgICAgICAgICAgICMgRXZhbEV4Y2VwdGlvbiBpcyBwcmVzZW50IGluIHRoZSBXU0dJIHN0YWNrCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBGYWxzZQorICAgICAgICAgICAgICAgIGZvciBleHBlY3QgaW4gZW52aXJvbi5nZXQoJ3Bhc3RlLmV4cGVjdGVkX2V4Y2VwdGlvbnMnLCBbXSk6CisgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZSwgZXhwZWN0KToKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIG5vdCBleHBlY3RlZDoKKyAgICAgICAgICAgICAgICAgICAgIyBBbiB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogc2F2ZSBzdGF0ZSBmb3IgRXZhbEV4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICByZXN0b3Jlci5zYXZlX3JlZ2lzdHJ5X3N0YXRlKGVudmlyb24pCisgICAgICAgICAgICByZWcuY2xlYW51cCgpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAjIFNhdmUgc3RhdGUgZm9yIEV2YWxFeGNlcHRpb24gaWYgaXQncyBwcmVzZW50CisgICAgICAgICAgICBpZiBlbnZpcm9uLmdldCgncGFzdGUuZXZhbGV4Y2VwdGlvbicpOgorICAgICAgICAgICAgICAgIHJlc3RvcmVyLnNhdmVfcmVnaXN0cnlfc3RhdGUoZW52aXJvbikKKyAgICAgICAgICAgIHJlZy5jbGVhbnVwKCkKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZWcuY2xlYW51cCgpCisKKyAgICAgICAgcmV0dXJuIGFwcF9pdGVyCisKKyAgICBkZWYgc3RyZWFtaW5nX2l0ZXIoc2VsZiwgcmVnLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBpdGVtIGluIHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgICAgIHlpZWxkIGl0ZW0KKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgIyBSZWdhcmRsZXNzIG9mIGlmIHRoZSBjb250ZW50IGlzIGFuIGl0ZXJhYmxlLCBnZW5lcmF0b3IsIGxpc3QKKyAgICAgICAgICAgICMgb3IgdHVwbGUsIHdlIGNsZWFuLXVwIHJpZ2h0IG5vdy4gSWYgaXRzIGFuIGl0ZXJhYmxlL2dlbmVyYXRvcgorICAgICAgICAgICAgIyBjYXJlIHNob3VsZCBiZSB1c2VkIHRvIGVuc3VyZSB0aGUgZ2VuZXJhdG9yIGhhcyBpdHMgb3duIHJlZgorICAgICAgICAgICAgIyB0byB0aGUgYWN0dWFsIG9iamVjdAorICAgICAgICAgICAgaWYgZW52aXJvbi5nZXQoJ3Bhc3RlLmV2YWxleGNlcHRpb24nKToKKyAgICAgICAgICAgICAgICAjIEV2YWxFeGNlcHRpb24gaXMgcHJlc2VudCBpbiB0aGUgV1NHSSBzdGFjaworICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gRmFsc2UKKyAgICAgICAgICAgICAgICBmb3IgZXhwZWN0IGluIGVudmlyb24uZ2V0KCdwYXN0ZS5leHBlY3RlZF9leGNlcHRpb25zJywgW10pOgorICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGUsIGV4cGVjdCk6CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IFRydWUKKyAgICAgICAgICAgICAgICBpZiBub3QgZXhwZWN0ZWQ6CisgICAgICAgICAgICAgICAgICAgICMgQW4gdW5leHBlY3RlZCBleGNlcHRpb246IHNhdmUgc3RhdGUgZm9yIEV2YWxFeGNlcHRpb24KKyAgICAgICAgICAgICAgICAgICAgcmVzdG9yZXIuc2F2ZV9yZWdpc3RyeV9zdGF0ZShlbnZpcm9uKQorICAgICAgICAgICAgcmVnLmNsZWFudXAoKQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgIyBTYXZlIHN0YXRlIGZvciBFdmFsRXhjZXB0aW9uIGlmIGl0J3MgcHJlc2VudAorICAgICAgICAgICAgaWYgZW52aXJvbi5nZXQoJ3Bhc3RlLmV2YWxleGNlcHRpb24nKToKKyAgICAgICAgICAgICAgICByZXN0b3Jlci5zYXZlX3JlZ2lzdHJ5X3N0YXRlKGVudmlyb24pCisgICAgICAgICAgICByZWcuY2xlYW51cCgpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVnLmNsZWFudXAoKQorCisKK2NsYXNzIFN0YWNrZWRPYmplY3RSZXN0b3JlcihvYmplY3QpOgorICAgICIiIlRyYWNrIFN0YWNrZWRPYmplY3RQcm94aWVzIGFuZCB0aGVpciBwcm94aWVkIG9iamVjdHMgZm9yIGF1dG9tYXRpYworICAgIHJlc3RvcmF0aW9uIHdpdGhpbiBFdmFsRXhjZXB0aW9uJ3MgaW50ZXJhY3RpdmUgZGVidWdnZXIuCisKKyAgICBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHRyYWNrcyBhbGwgU3RhY2tlZE9iamVjdFByb3h5IHN0YXRlIGluIGV4aXN0ZW5jZQorICAgIHdoZW4gdW5leHBlY3RlZCBleGNlcHRpb25zIGFyZSByYWlzZWQgYnkgV1NHSSBhcHBsaWNhdGlvbnMgaG91c2VkIGJ5CisgICAgRXZhbEV4Y2VwdGlvbiBhbmQgUmVnaXN0cnlNYW5hZ2VyLiBMaWtlIEV2YWxFeGNlcHRpb24sIHRoaXMgaW5mb3JtYXRpb24gaXMKKyAgICBzdG9yZWQgZm9yIHRoZSBsaWZlIG9mIHRoZSBwcm9jZXNzLgorCisgICAgV2hlbiBhbiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiBvY2N1cnMgYW5kIEV2YWxFeGNlcHRpb24gaXMgcHJlc2VudCBpbiB0aGUKKyAgICBXU0dJIHN0YWNrLCBzYXZlX3JlZ2lzdHJ5X3N0YXRlIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCB0byBzdG9yZSB0aGUKKyAgICBSZWdpc3RyeSBzdGF0ZSBhbmQgZW5hYmxlIGF1dG9tYXRpYyByZXN0b3JhdGlvbiBvbiBhbGwgY3VycmVudGx5IHJlZ2lzdGVyZWQKKyAgICBTdGFja2VkT2JqZWN0UHJveGllcy4KKworICAgIFdpdGggcmVzdG9yYXRpb24gZW5hYmxlZCwgdGhvc2UgU3RhY2tlZE9iamVjdFByb3hpZXMnIF9jdXJyZW50X29iagorICAgIChvdmVyd3JpdHRlbiBieSBfY3VycmVudF9vYmpfcmVzdG9yYXRpb24pIG1ldGhvZCdzIHN0cmF0ZWd5IGlzIG1vZGlmaWVkOgorICAgIGl0IHdpbGwgcmV0dXJuIGl0cyBhcHByb3ByaWF0ZSBwcm94aWVkIG9iamVjdCBmcm9tIHRoZSByZXN0b3JlciB3aGVuCisgICAgYSByZXN0b3JhdGlvbiBjb250ZXh0IGlzIGFjdGl2ZSBpbiB0aGUgY3VycmVudCB0aHJlYWQuCisKKyAgICBUaGUgU3RhY2tlZE9iamVjdFByb3hpZXMnIF9wdXNoL3BvcF9vYmplY3QgbWV0aG9kcyBzdHJhdGVnaWVzIGFyZSBhbHNvCisgICAgY2hhbmdlZDogdGhleSBuby1vcCB3aGVuIGEgcmVzdG9yYXRpb24gY29udGV4dCBpcyBhY3RpdmUgaW4gdGhlIGN1cnJlbnQKKyAgICB0aHJlYWQgKGJlY2F1c2UgdGhlIHB1c2hpbmcvcG9wcGluZyB3b3JrIGlzIGFsbCBoYW5kbGVkIGJ5IHRoZQorICAgIFJlZ2lzdHJ5L3Jlc3RvcmVyKS4KKworICAgIFRoZSByZXF1ZXN0J3MgUmVnaXN0cnkgb2JqZWN0cycgcmVnbGlzdHMgYXJlIHJlc3RvcmVkIGZyb20gdGhlIHJlc3RvcmVyCisgICAgd2hlbiBhIHJlc3RvcmF0aW9uIGNvbnRleHQgYmVnaW5zLCBlbmFibGluZyB0aGUgUmVnaXN0cnkgbWV0aG9kcyB0byB3b3JrCisgICAgd2hpbGUgdGhlaXIgY2hhbmdlcyBhcmUgdHJhY2tlZCBieSB0aGUgcmVzdG9yZXIuCisKKyAgICBUaGUgb3ZlcmhlYWQgb2YgZW5hYmxpbmcgcmVzdG9yYXRpb24gaXMgbmVnbGlnaWJsZSAoYW5vdGhlciB0aHJlYWRsb2NhbAorICAgIGFjY2VzcyBmb3IgdGhlIGNoYW5nZWQgU3RhY2tlZE9iamVjdFByb3h5IG1ldGhvZHMpIGZvciBub3JtYWwgdXNlIG91dHNpZGUKKyAgICBvZiBhIHJlc3RvcmF0aW9uIGNvbnRleHQsIGJ1dCB3b3J0aCBtZW50aW9uaW5nIHdoZW4gY29tYmluZWQgd2l0aAorICAgIFN0YWNrZWRPYmplY3RQcm94aWVzIG5vcm1hbCBvdmVyaGVhZC4gT25jZSBlbmFibGVkIGl0IGRvZXMgbm90IHR1cm4gb2ZmLAorICAgIGhvd2V2ZXI6CisKKyAgICBvIEVuYWJsaW5nIHJlc3RvcmF0aW9uIG9ubHkgb2NjdXJzIGFmdGVyIGFuIHVuZXhwZWN0ZWQgZXhjZXB0aW9uIGlzCisgICAgZGV0ZWN0ZWQuIFRoZSBzZXJ2ZXIgaXMgbGlrZWx5IHRvIGJlIHJlc3RhcnRlZCBzaG9ydGx5IGFmdGVyIHRoZSBleGNlcHRpb24KKyAgICBpcyByYWlzZWQgdG8gZml4IHRoZSBjYXVzZQorCisgICAgbyBTdGFja2VkT2JqZWN0UmVzdG9yZXIgaXMgb25seSBlbmFibGVkIHdoZW4gRXZhbEV4Y2VwdGlvbiBpcyBlbmFibGVkIChub3QKKyAgICBvbiBhIHByb2R1Y3Rpb24gc2VydmVyKSBhbmQgUmVnaXN0cnlNYW5hZ2VyIGV4aXN0cyBpbiB0aGUgbWlkZGxld2FyZQorICAgIHN0YWNrIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAjIFJlZ2lzdHJpZXMgYW5kIHRoZWlyIHNhdmVkIHJlZ2xpc3RzIGJ5IHJlcXVlc3RfaWQKKyAgICAgICAgc2VsZi5zYXZlZF9yZWdpc3RyeV9zdGF0ZXMgPSB7fQorICAgICAgICBzZWxmLnJlc3RvcmF0aW9uX2NvbnRleHRfaWQgPSB0aHJlYWRpbmdsb2NhbC5sb2NhbCgpCisKKyAgICBkZWYgc2F2ZV9yZWdpc3RyeV9zdGF0ZShzZWxmLCBlbnZpcm9uKToKKyAgICAgICAgIiIiU2F2ZSB0aGUgc3RhdGUgb2YgdGhpcyByZXF1ZXN0J3MgUmVnaXN0cnkgKGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4KKyAgICAgICAgc2F2ZWQpIHRvIHRoZSBzYXZlZF9yZWdpc3RyeV9zdGF0ZXMgZGljdCwga2V5ZWQgYnkgdGhlIHJlcXVlc3QncyB1bmlxdWUKKyAgICAgICAgaWRlbnRpZmllciIiIgorICAgICAgICByZWdpc3RyeSA9IGVudmlyb24uZ2V0KCdwYXN0ZS5yZWdpc3RyeScpCisgICAgICAgIGlmIG5vdCByZWdpc3RyeSBvciBub3QgbGVuKHJlZ2lzdHJ5LnJlZ2xpc3QpIG9yIFwKKyAgICAgICAgICAgICAgICBzZWxmLmdldF9yZXF1ZXN0X2lkKGVudmlyb24pIGluIHNlbGYuc2F2ZWRfcmVnaXN0cnlfc3RhdGVzOgorICAgICAgICAgICAgIyBObyBSZWdpc3RyeSwgbm8gc3RhdGUgdG8gc2F2ZSwgb3IgdGhpcyByZXF1ZXN0J3Mgc3RhdGUgaGFzCisgICAgICAgICAgICAjIGFscmVhZHkgYmVlbiBzYXZlZAorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5zYXZlZF9yZWdpc3RyeV9zdGF0ZXNbc2VsZi5nZXRfcmVxdWVzdF9pZChlbnZpcm9uKV0gPSBcCisgICAgICAgICAgICAocmVnaXN0cnksIHJlZ2lzdHJ5LnJlZ2xpc3RbOl0pCisKKyAgICAgICAgIyBUd2VhayB0aGUgU3RhY2tlZE9iamVjdFByb3hpZXMgd2Ugd2FudCB0byBzYXZlIHN0YXRlIGZvciAtLSBjaGFuZ2UKKyAgICAgICAgIyB0aGVpciBtZXRob2RzIHRvIGFjdCBkaWZmZXJlbnRseSB3aGVuIGEgcmVzdG9yYXRpb24gY29udGV4dCBpcyBhY3RpdmUKKyAgICAgICAgIyBpbiB0aGUgY3VycmVudCB0aHJlYWQKKyAgICAgICAgZm9yIHJlZ2xpc3QgaW4gcmVnaXN0cnkucmVnbGlzdDoKKyAgICAgICAgICAgIGZvciBzdGFja2VkLCBvYmogaW4gc2l4Lml0ZXJ2YWx1ZXMocmVnbGlzdCk6CisgICAgICAgICAgICAgICAgc2VsZi5lbmFibGVfcmVzdG9yYXRpb24oc3RhY2tlZCkKKworICAgIGRlZiBnZXRfc2F2ZWRfcHJveGllZF9vYmooc2VsZiwgc3RhY2tlZCwgcmVxdWVzdF9pZCk6CisgICAgICAgICIiIlJldHJpZXZlIHRoZSBzYXZlZCBvYmplY3QgcHJveGllZCBieSB0aGUgc3BlY2lmaWVkCisgICAgICAgIFN0YWNrZWRPYmplY3RQcm94eSBmb3IgdGhlIHJlcXVlc3QgaWRlbnRpZmllZCBieSByZXF1ZXN0X2lkIiIiCisgICAgICAgICMgQWxsIHN0YXRlIGZvciB0aGUgcmVxdWVzdCBpZGVudGlmaWVkIGJ5IHJlcXVlc3RfaWQKKyAgICAgICAgcmVnbGlzdCA9IHNlbGYuc2F2ZWRfcmVnaXN0cnlfc3RhdGVzW3JlcXVlc3RfaWRdWzFdCisKKyAgICAgICAgIyBUaGUgdG9wIG9mIHRoZSBzdGFjayB3YXMgY3VycmVudCB3aGVuIHRoZSBleGNlcHRpb24gb2NjdXJyZWQKKyAgICAgICAgc3RhY2tfbGV2ZWwgPSBsZW4ocmVnbGlzdCkgLSAxCisgICAgICAgIHN0YWNrZWRfaWQgPSBpZChzdGFja2VkKQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgaWYgc3RhY2tfbGV2ZWwgPCAwOgorICAgICAgICAgICAgICAgICMgTm90aGluZyByZWdpc3RlcmVkOiBDYWxsIF9jdXJyZW50X29ial9vcmlnIHRvIHJhaXNlIGEKKyAgICAgICAgICAgICAgICAjIFR5cGVFcnJvcgorICAgICAgICAgICAgICAgIHJldHVybiBzdGFja2VkLl9jdXJyZW50X29ial9vcmlnKCkKKyAgICAgICAgICAgIGNvbnRleHQgPSByZWdsaXN0W3N0YWNrX2xldmVsXQorICAgICAgICAgICAgaWYgc3RhY2tlZF9pZCBpbiBjb250ZXh0OgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAjIFRoaXMgU3RhY2tlZE9iamVjdFByb3h5IG1heSBub3QgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgYnkgdGhlCisgICAgICAgICAgICAjIFJlZ2lzdHJ5TWFuYWdlciB0aGF0IHdhcyBhY3RpdmUgd2hlbiB0aGUgZXhjZXB0aW9uIHdhcyByYWlzZWQgLS0KKyAgICAgICAgICAgICMgY29udGludWUgc2VhcmNoaW5nIGRvd24gdGhlIHN0YWNrIHVudGlsIGl0J3MgZm91bmQKKyAgICAgICAgICAgIHN0YWNrX2xldmVsIC09IDEKKyAgICAgICAgcmV0dXJuIGNvbnRleHRbc3RhY2tlZF9pZF1bMV0KKworICAgIGRlZiBlbmFibGVfcmVzdG9yYXRpb24oc2VsZiwgc3RhY2tlZCk6CisgICAgICAgICIiIlJlcGxhY2UgdGhlIHNwZWNpZmllZCBTdGFja2VkT2JqZWN0UHJveHkncyBtZXRob2RzIHdpdGggdGhlaXIKKyAgICAgICAgcmVzcGVjdGl2ZSByZXN0b3JhdGlvbiB2ZXJzaW9ucy4KKworICAgICAgICBfY3VycmVudF9vYmpfcmVzdG9yYXRpb24gZm9yY2VzIHJlY292ZXJ5IG9mIHRoZSBzYXZlZCBwcm94aWVkIG9iamVjdAorICAgICAgICB3aGVuIGEgcmVzdG9yYXRpb24gY29udGV4dCBpcyBhY3RpdmUgaW4gdGhlIGN1cnJlbnQgdGhyZWFkLgorCisgICAgICAgIF9wdXNoL3BvcF9vYmplY3RfcmVzdG9yYXRpb24gYXZvaWQgcHVzaGluZy9wb3BwaW5nIGRhdGEKKyAgICAgICAgKHB1c2hpbmcvcG9wcGluZyBpcyBvbmx5IGRvbmUgYXQgdGhlIFJlZ2lzdHJ5IGxldmVsKSB3aGVuIGEgcmVzdG9yYXRpb24KKyAgICAgICAgY29udGV4dCBpcyBhY3RpdmUgaW4gdGhlIGN1cnJlbnQgdGhyZWFkIiIiCisgICAgICAgIGlmICdfY3VycmVudF9vYmpfb3JpZycgaW4gc3RhY2tlZC5fX2RpY3RfXzoKKyAgICAgICAgICAgICMgUmVzdG9yYXRpb24gYWxyZWFkeSBlbmFibGVkCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBmb3IgZnVuY19uYW1lIGluICgnX2N1cnJlbnRfb2JqJywgJ19wdXNoX29iamVjdCcsICdfcG9wX29iamVjdCcpOgorICAgICAgICAgICAgb3JpZ19mdW5jID0gZ2V0YXR0cihzdGFja2VkLCBmdW5jX25hbWUpCisgICAgICAgICAgICByZXN0b3JhdGlvbl9mdW5jID0gZ2V0YXR0cihzdGFja2VkLCBmdW5jX25hbWUgKyAnX3Jlc3RvcmF0aW9uJykKKyAgICAgICAgICAgIHN0YWNrZWQuX19kaWN0X19bZnVuY19uYW1lICsgJ19vcmlnJ10gPSBvcmlnX2Z1bmMKKyAgICAgICAgICAgIHN0YWNrZWQuX19kaWN0X19bZnVuY19uYW1lXSA9IHJlc3RvcmF0aW9uX2Z1bmMKKworICAgIGRlZiBnZXRfcmVxdWVzdF9pZChzZWxmLCBlbnZpcm9uKToKKyAgICAgICAgIiIiUmV0dXJuIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjdXJyZW50IHJlcXVlc3QiIiIKKyAgICAgICAgZnJvbSBwYXN0ZS5ldmFsZXhjZXB0aW9uLm1pZGRsZXdhcmUgaW1wb3J0IGdldF9kZWJ1Z19jb3VudAorICAgICAgICByZXR1cm4gZ2V0X2RlYnVnX2NvdW50KGVudmlyb24pCisKKyAgICBkZWYgcmVzdG9yYXRpb25fYmVnaW4oc2VsZiwgcmVxdWVzdF9pZCk6CisgICAgICAgICIiIkVuYWJsZSBhIHJlc3RvcmF0aW9uIGNvbnRleHQgaW4gdGhlIGN1cnJlbnQgdGhyZWFkIGZvciB0aGUgc3BlY2lmaWVkCisgICAgICAgIHJlcXVlc3RfaWQiIiIKKyAgICAgICAgaWYgcmVxdWVzdF9pZCBpbiBzZWxmLnNhdmVkX3JlZ2lzdHJ5X3N0YXRlczoKKyAgICAgICAgICAgICMgUmVzdG9yZSB0aGUgb2xkIFJlZ2lzdHJ5IG9iamVjdCdzIHN0YXRlCisgICAgICAgICAgICByZWdpc3RyeSwgcmVnbGlzdCA9IHNlbGYuc2F2ZWRfcmVnaXN0cnlfc3RhdGVzW3JlcXVlc3RfaWRdCisgICAgICAgICAgICByZWdpc3RyeS5yZWdsaXN0ID0gcmVnbGlzdAorCisgICAgICAgIHNlbGYucmVzdG9yYXRpb25fY29udGV4dF9pZC5yZXF1ZXN0X2lkID0gcmVxdWVzdF9pZAorCisgICAgZGVmIHJlc3RvcmF0aW9uX2VuZChzZWxmKToKKyAgICAgICAgIiIiUmVnaXN0ZXIgYSByZXN0b3JhdGlvbiBjb250ZXh0IGFzIGZpbmlzaGVkLCBpZiBvbmUgZXhpc3RzIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlbCBzZWxmLnJlc3RvcmF0aW9uX2NvbnRleHRfaWQucmVxdWVzdF9pZAorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgaW5fcmVzdG9yYXRpb24oc2VsZik6CisgICAgICAgICIiIkRldGVybWluZSBpZiBhIHJlc3RvcmF0aW9uIGNvbnRleHQgaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudCB0aHJlYWQuCisgICAgICAgIFJldHVybnMgdGhlIHJlcXVlc3RfaWQgaXQncyBhY3RpdmUgZm9yIGlmIHNvLCBvdGhlcndpc2UgRmFsc2UiIiIKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5yZXN0b3JhdGlvbl9jb250ZXh0X2lkLCAncmVxdWVzdF9pZCcsIEZhbHNlKQorCityZXN0b3JlciA9IFN0YWNrZWRPYmplY3RSZXN0b3JlcigpCisKKworIyBQYXN0ZSBEZXBsb3kgZW50cnkgcG9pbnQKK2RlZiBtYWtlX3JlZ2lzdHJ5X21hbmFnZXIoYXBwLCBnbG9iYWxfY29uZik6CisgICAgcmV0dXJuIFJlZ2lzdHJ5TWFuYWdlcihhcHApCisKK21ha2VfcmVnaXN0cnlfbWFuYWdlci5fX2RvY19fID0gUmVnaXN0cnlNYW5hZ2VyLl9fZG9jX18KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZWxvYWRlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZWxvYWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWQ3YzE0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3JlbG9hZGVyLnB5CkBAIC0wLDAgKzEsMTc5IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK0EgZmlsZSBtb25pdG9yIGFuZCBzZXJ2ZXIgcmVzdGFydGVyLgorCitVc2UgdGhpcyBsaWtlOgorCisuLmNvZGUtYmxvY2s6OiBQeXRob24KKworICAgIGltcG9ydCByZWxvYWRlcgorICAgIHJlbG9hZGVyLmluc3RhbGwoKQorCitUaGVuIG1ha2Ugc3VyZSB5b3VyIHNlcnZlciBpcyBpbnN0YWxsZWQgd2l0aCBhIHNoZWxsIHNjcmlwdCBsaWtlOjoKKworICAgIGVycj0zCisgICAgd2hpbGUgdGVzdCAiJGVyciIgLWVxIDMgOyBkbworICAgICAgICBweXRob24gc2VydmVyLnB5CisgICAgICAgIGVycj0iJD8iCisgICAgZG9uZQorCitvciBpcyBydW4gZnJvbSB0aGlzIC5iYXQgZmlsZSAoaWYgeW91IHVzZSBXaW5kb3dzKTo6CisKKyAgICBAZWNobyBvZmYKKyAgICA6cmVwZWF0CisgICAgICAgIHB5dGhvbiBzZXJ2ZXIucHkKKyAgICBpZiAlZXJyb3JsZXZlbCUgPT0gMyBnb3RvIHJlcGVhdAorCitvciBydW4gYSBtb25pdG9yaW5nIHByb2Nlc3MgaW4gUHl0aG9uIChgYHBhc3RlciBzZXJ2ZSAtLXJlbG9hZGBgIGRvZXMKK3RoaXMpLgorCitVc2UgdGhlIGBgd2F0Y2hfZmlsZShmaWxlbmFtZSlgYCBmdW5jdGlvbiB0byBjYXVzZSBhIHJlbG9hZC9yZXN0YXJ0IGZvcgorb3RoZXIgb3RoZXIgbm9uLVB5dGhvbiBmaWxlcyAoZS5nLiwgY29uZmlndXJhdGlvbiBmaWxlcykuICBJZiB5b3UgaGF2ZQorYSBkeW5hbWljIHNldCBvZiBmaWxlcyB0aGF0IGdyb3dzIG92ZXIgdGltZSB5b3UgY2FuIHVzZSBzb21ldGhpbmcgbGlrZTo6CisKKyAgICBkZWYgd2F0Y2hfY29uZmlnX2ZpbGVzKCk6CisgICAgICAgIHJldHVybiBDT05GSUdfRklMRV9DQUNIRS5rZXlzKCkKKyAgICBwYXN0ZS5yZWxvYWRlci5hZGRfZmlsZV9jYWxsYmFjayh3YXRjaF9jb25maWdfZmlsZXMpCisKK1RoZW4gZXZlcnkgdGltZSB0aGUgcmVsb2FkZXIgcG9sbHMgZmlsZXMgaXQgd2lsbCBjYWxsCitgYHdhdGNoX2NvbmZpZ19maWxlc2BgIGFuZCBjaGVjayBhbGwgdGhlIGZpbGVuYW1lcyBpdCByZXR1cm5zLgorIiIiCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHRpbWUKK2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0cmFjZWJhY2sKK2Zyb20gcGFzdGUudXRpbC5jbGFzc2luc3RhbmNlIGltcG9ydCBjbGFzc2luc3RhbmNlbWV0aG9kCisKK2RlZiBpbnN0YWxsKHBvbGxfaW50ZXJ2YWw9MSk6CisgICAgIiIiCisgICAgSW5zdGFsbCB0aGUgcmVsb2FkaW5nIG1vbml0b3IuCisKKyAgICBPbiBzb21lIHBsYXRmb3JtcyBzZXJ2ZXIgdGhyZWFkcyBtYXkgbm90IHRlcm1pbmF0ZSB3aGVuIHRoZSBtYWluCisgICAgdGhyZWFkIGRvZXMsIGNhdXNpbmcgcG9ydHMgdG8gcmVtYWluIG9wZW4vbG9ja2VkLiAgVGhlCisgICAgYGByYWlzZV9rZXlib2FyZF9pbnRlcnJ1cHRgYCBvcHRpb24gY3JlYXRlcyBhIHVuaWdub3JhYmxlIHNpZ25hbAorICAgIHdoaWNoIGNhdXNlcyB0aGUgd2hvbGUgYXBwbGljYXRpb24gdG8gc2h1dC1kb3duIChydWRlbHkpLgorICAgICIiIgorICAgIG1vbiA9IE1vbml0b3IocG9sbF9pbnRlcnZhbD1wb2xsX2ludGVydmFsKQorICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1tb24ucGVyaW9kaWNfcmVsb2FkKQorICAgIHQuc2V0RGFlbW9uKFRydWUpCisgICAgdC5zdGFydCgpCisKK2NsYXNzIE1vbml0b3Iob2JqZWN0KToKKworICAgIGluc3RhbmNlcyA9IFtdCisgICAgZ2xvYmFsX2V4dHJhX2ZpbGVzID0gW10KKyAgICBnbG9iYWxfZmlsZV9jYWxsYmFja3MgPSBbXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvbGxfaW50ZXJ2YWwpOgorICAgICAgICBzZWxmLm1vZHVsZV9tdGltZXMgPSB7fQorICAgICAgICBzZWxmLmtlZXBfcnVubmluZyA9IFRydWUKKyAgICAgICAgc2VsZi5wb2xsX2ludGVydmFsID0gcG9sbF9pbnRlcnZhbAorICAgICAgICBzZWxmLmV4dHJhX2ZpbGVzID0gbGlzdChzZWxmLmdsb2JhbF9leHRyYV9maWxlcykKKyAgICAgICAgc2VsZi5pbnN0YW5jZXMuYXBwZW5kKHNlbGYpCisgICAgICAgIHNlbGYuZmlsZV9jYWxsYmFja3MgPSBsaXN0KHNlbGYuZ2xvYmFsX2ZpbGVfY2FsbGJhY2tzKQorCisgICAgZGVmIHBlcmlvZGljX3JlbG9hZChzZWxmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNoZWNrX3JlbG9hZCgpOgorICAgICAgICAgICAgICAgICMgdXNlIG9zLl9leGl0KCkgaGVyZSBhbmQgbm90IHN5cy5leGl0KCkgc2luY2Ugd2l0aGluIGEKKyAgICAgICAgICAgICAgICAjIHRocmVhZCBzeXMuZXhpdCgpIGp1c3QgY2xvc2VzIHRoZSBnaXZlbiB0aHJlYWQgYW5kCisgICAgICAgICAgICAgICAgIyB3b24ndCBraWxsIHRoZSBwcm9jZXNzOyBub3RlIG9zLl9leGl0IGRvZXMgbm90IGNhbGwKKyAgICAgICAgICAgICAgICAjIGFueSBhdGV4aXQgY2FsbGJhY2tzLCBub3IgZG9lcyBpdCBkbyBmaW5hbGx5IGJsb2NrcywKKyAgICAgICAgICAgICAgICAjIGZsdXNoIG9wZW4gZmlsZXMsIGV0Yy4gIEluIG90aGVyd29yZHMsIGl0IGlzIHJ1ZGUuCisgICAgICAgICAgICAgICAgb3MuX2V4aXQoMykKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgdGltZS5zbGVlcChzZWxmLnBvbGxfaW50ZXJ2YWwpCisKKyAgICBkZWYgY2hlY2tfcmVsb2FkKHNlbGYpOgorICAgICAgICBmaWxlbmFtZXMgPSBsaXN0KHNlbGYuZXh0cmFfZmlsZXMpCisgICAgICAgIGZvciBmaWxlX2NhbGxiYWNrIGluIHNlbGYuZmlsZV9jYWxsYmFja3M6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmlsZW5hbWVzLmV4dGVuZChmaWxlX2NhbGxiYWNrKCkpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcHJpbnQoIkVycm9yIGNhbGxpbmcgcGFzdGUucmVsb2FkZXIgY2FsbGJhY2sgJXI6IiAlIGZpbGVfY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICBmb3IgbW9kdWxlIGluIHN5cy5tb2R1bGVzLnZhbHVlcygpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gbW9kdWxlLl9fZmlsZV9fCisgICAgICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBJbXBvcnRFcnJvcik6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGZpbGVuYW1lcy5hcHBlbmQoZmlsZW5hbWUpCisgICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc3RhdCA9IG9zLnN0YXQoZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgaWYgc3RhdDoKKyAgICAgICAgICAgICAgICAgICAgbXRpbWUgPSBzdGF0LnN0X210aW1lCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbXRpbWUgPSAwCisgICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBmaWxlbmFtZS5lbmRzd2l0aCgnLnB5YycpIGFuZCBvcy5wYXRoLmV4aXN0cyhmaWxlbmFtZVs6LTFdKToKKyAgICAgICAgICAgICAgICBtdGltZSA9IG1heChvcy5zdGF0KGZpbGVuYW1lWzotMV0pLnN0X210aW1lLCBtdGltZSkKKyAgICAgICAgICAgIGVsaWYgZmlsZW5hbWUuZW5kc3dpdGgoJyRweS5jbGFzcycpIGFuZCBcCisgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lWzotOV0gKyAnLnB5Jyk6CisgICAgICAgICAgICAgICAgbXRpbWUgPSBtYXgob3Muc3RhdChmaWxlbmFtZVs6LTldICsgJy5weScpLnN0X210aW1lLCBtdGltZSkKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lIG5vdCBpbiBzZWxmLm1vZHVsZV9tdGltZXM6CisgICAgICAgICAgICAgICAgc2VsZi5tb2R1bGVfbXRpbWVzW2ZpbGVuYW1lXSA9IG10aW1lCisgICAgICAgICAgICBlbGlmIHNlbGYubW9kdWxlX210aW1lc1tmaWxlbmFtZV0gPCBtdGltZToKKyAgICAgICAgICAgICAgICBwcmludCgiJXMgY2hhbmdlZDsgcmVsb2FkaW5nLi4uIiAlIGZpbGVuYW1lLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgd2F0Y2hfZmlsZShzZWxmLCBjbHMsIGZpbGVuYW1lKToKKyAgICAgICAgIiIiV2F0Y2ggdGhlIG5hbWVkIGZpbGUgZm9yIGNoYW5nZXMiIiIKKyAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmFic3BhdGgoZmlsZW5hbWUpCisgICAgICAgIGlmIHNlbGYgaXMgTm9uZToKKyAgICAgICAgICAgIGZvciBpbnN0YW5jZSBpbiBjbHMuaW5zdGFuY2VzOgorICAgICAgICAgICAgICAgIGluc3RhbmNlLndhdGNoX2ZpbGUoZmlsZW5hbWUpCisgICAgICAgICAgICBjbHMuZ2xvYmFsX2V4dHJhX2ZpbGVzLmFwcGVuZChmaWxlbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZXh0cmFfZmlsZXMuYXBwZW5kKGZpbGVuYW1lKQorCisgICAgd2F0Y2hfZmlsZSA9IGNsYXNzaW5zdGFuY2VtZXRob2Qod2F0Y2hfZmlsZSkKKworICAgIGRlZiBhZGRfZmlsZV9jYWxsYmFjayhzZWxmLCBjbHMsIGNhbGxiYWNrKToKKyAgICAgICAgIiIiQWRkIGEgY2FsbGJhY2sgLS0gYSBmdW5jdGlvbiB0aGF0IHRha2VzIG5vIHBhcmFtZXRlcnMgLS0gdGhhdCB3aWxsCisgICAgICAgIHJldHVybiBhIGxpc3Qgb2YgZmlsZW5hbWVzIHRvIHdhdGNoIGZvciBjaGFuZ2VzLiIiIgorICAgICAgICBpZiBzZWxmIGlzIE5vbmU6CisgICAgICAgICAgICBmb3IgaW5zdGFuY2UgaW4gY2xzLmluc3RhbmNlczoKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS5hZGRfZmlsZV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAgICAgICAgIGNscy5nbG9iYWxfZmlsZV9jYWxsYmFja3MuYXBwZW5kKGNhbGxiYWNrKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5maWxlX2NhbGxiYWNrcy5hcHBlbmQoY2FsbGJhY2spCisKKyAgICBhZGRfZmlsZV9jYWxsYmFjayA9IGNsYXNzaW5zdGFuY2VtZXRob2QoYWRkX2ZpbGVfY2FsbGJhY2spCisKK2lmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJyk6CisgICAgdHJ5OgorICAgICAgICBmcm9tIF9zeXN0ZW1yZXN0YXJ0IGltcG9ydCBTeXN0ZW1SZXN0YXJ0CisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgY2xhc3MgSnl0aG9uTW9uaXRvcihNb25pdG9yKToKKworICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBNb25pdG9yIHRoYXQgdXRpbGl6ZXMgSnl0aG9uJ3Mgc3BlY2lhbAorICAgICAgICAgICAgYGBfc3lzdGVtcmVzdGFydC5TeXN0ZW1SZXN0YXJ0YGAgZXhjZXB0aW9uLgorCisgICAgICAgICAgICBXaGVuIHJhaXNlZCBmcm9tIHRoZSBtYWluIHRocmVhZCBpdCBjYXVzZXMgSnl0aG9uIHRvIHJlbG9hZAorICAgICAgICAgICAgdGhlIGludGVycHJldGVyIGluIHRoZSBleGlzdGluZyBKYXZhIHByb2Nlc3MgKGF2b2lkaW5nCisgICAgICAgICAgICBzdGFydHVwIHRpbWUpLgorCisgICAgICAgICAgICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IG9mIEp5dGhvbiBpcyBleHBlcmltZW50YWwgYW5kCisgICAgICAgICAgICBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuCisgICAgICAgICAgICAiIiIKKworICAgICAgICAgICAgZGVmIHBlcmlvZGljX3JlbG9hZChzZWxmKToKKyAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5jaGVja19yZWxvYWQoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFN5c3RlbVJlc3RhcnQoKQorICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKHNlbGYucG9sbF9pbnRlcnZhbCkKKword2F0Y2hfZmlsZSA9IE1vbml0b3Iud2F0Y2hfZmlsZQorYWRkX2ZpbGVfY2FsbGJhY2sgPSBNb25pdG9yLmFkZF9maWxlX2NhbGxiYWNrCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvcmVxdWVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZXF1ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZDkxYzEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvcmVxdWVzdC5weQpAQCAtMCwwICsxLDQyMSBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK1RoaXMgbW9kdWxlIHByb3ZpZGVzIGhlbHBlciByb3V0aW5lcyB3aXRoIHdvcmsgZGlyZWN0bHkgb24gYSBXU0dJCitlbnZpcm9ubWVudCB0byBzb2x2ZSBjb21tb24gcmVxdWlyZW1lbnRzLgorCisgICAqIGdldF9jb29raWVzKGVudmlyb24pCisgICAqIHBhcnNlX3F1ZXJ5c3RyaW5nKGVudmlyb24pCisgICAqIHBhcnNlX2Zvcm12YXJzKGVudmlyb24sIGluY2x1ZGVfZ2V0X3ZhcnM9VHJ1ZSkKKyAgICogY29uc3RydWN0X3VybChlbnZpcm9uLCB3aXRoX3F1ZXJ5X3N0cmluZz1UcnVlLCB3aXRoX3BhdGhfaW5mbz1UcnVlLAorICAgICAgICAgICAgICAgICAgIHNjcmlwdF9uYW1lPU5vbmUsIHBhdGhfaW5mbz1Ob25lLCBxdWVyeXN0cmluZz1Ob25lKQorICAgKiBwYXRoX2luZm9fc3BsaXQocGF0aF9pbmZvKQorICAgKiBwYXRoX2luZm9fcG9wKGVudmlyb24pCisgICAqIHJlc29sdmVfcmVsYXRpdmVfdXJsKHVybCwgZW52aXJvbikKKworIiIiCitpbXBvcnQgY2dpCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVybHBhcnNlCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHF1b3RlLCBwYXJzZV9xc2wKK3RyeToKKyAgICAjIFB5dGhvbiAzCisgICAgZnJvbSBodHRwLmNvb2tpZXMgaW1wb3J0IFNpbXBsZUNvb2tpZSwgQ29va2llRXJyb3IKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFB5dGhvbiAyCisgICAgZnJvbSBDb29raWUgaW1wb3J0IFNpbXBsZUNvb2tpZSwgQ29va2llRXJyb3IKKwordHJ5OgorICAgIGZyb20gVXNlckRpY3QgaW1wb3J0IERpY3RNaXhpbgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBwaW5nIGFzIERpY3RNaXhpbgoraW1wb3J0IHNpeAorCitmcm9tIHBhc3RlLnV0aWwubXVsdGlkaWN0IGltcG9ydCBNdWx0aURpY3QKKworX19hbGxfXyA9IFsnZ2V0X2Nvb2tpZXMnLCAnZ2V0X2Nvb2tpZV9kaWN0JywgJ3BhcnNlX3F1ZXJ5c3RyaW5nJywKKyAgICAgICAgICAgJ3BhcnNlX2Zvcm12YXJzJywgJ2NvbnN0cnVjdF91cmwnLCAncGF0aF9pbmZvX3NwbGl0JywKKyAgICAgICAgICAgJ3BhdGhfaW5mb19wb3AnLCAncmVzb2x2ZV9yZWxhdGl2ZV91cmwnLCAnRW52aXJvbkhlYWRlcnMnXQorCitkZWYgZ2V0X2Nvb2tpZXMoZW52aXJvbik6CisgICAgIiIiCisgICAgR2V0cyBhIGNvb2tpZSBvYmplY3QgKHdoaWNoIGlzIGEgZGljdGlvbmFyeS1saWtlIG9iamVjdCkgZnJvbSB0aGUKKyAgICByZXF1ZXN0IGVudmlyb25tZW50OyBjYWNoZXMgdGhpcyB2YWx1ZSBpbiBjYXNlIGdldF9jb29raWVzIGlzCisgICAgY2FsbGVkIGFnYWluIGZvciB0aGUgc2FtZSByZXF1ZXN0LgorCisgICAgIiIiCisgICAgaGVhZGVyID0gZW52aXJvbi5nZXQoJ0hUVFBfQ09PS0lFJywgJycpCisgICAgaWYgJ3Bhc3RlLmNvb2tpZXMnIGluIGVudmlyb246CisgICAgICAgIGNvb2tpZXMsIGNoZWNrX2hlYWRlciA9IGVudmlyb25bJ3Bhc3RlLmNvb2tpZXMnXQorICAgICAgICBpZiBjaGVja19oZWFkZXIgPT0gaGVhZGVyOgorICAgICAgICAgICAgcmV0dXJuIGNvb2tpZXMKKyAgICBjb29raWVzID0gU2ltcGxlQ29va2llKCkKKyAgICB0cnk6CisgICAgICAgIGNvb2tpZXMubG9hZChoZWFkZXIpCisgICAgZXhjZXB0IENvb2tpZUVycm9yOgorICAgICAgICBwYXNzCisgICAgZW52aXJvblsncGFzdGUuY29va2llcyddID0gKGNvb2tpZXMsIGhlYWRlcikKKyAgICByZXR1cm4gY29va2llcworCitkZWYgZ2V0X2Nvb2tpZV9kaWN0KGVudmlyb24pOgorICAgICIiIlJldHVybiBhICpwbGFpbiogZGljdGlvbmFyeSBvZiBjb29raWVzIGFzIGZvdW5kIGluIHRoZSByZXF1ZXN0LgorCisgICAgVW5saWtlIGBgZ2V0X2Nvb2tpZXNgYCB0aGlzIHJldHVybnMgYSBkaWN0aW9uYXJ5LCBub3QgYQorICAgIGBgU2ltcGxlQ29va2llYGAgb2JqZWN0LiAgRm9yIGluY29taW5nIGNvb2tpZXMgYSBkaWN0aW9uYXJ5IGZ1bGx5CisgICAgcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24uICBMaWtlIGBgZ2V0X2Nvb2tpZXNgYCB0aGlzIGNhY2hlcyBhbmQKKyAgICBjaGVja3MgdGhlIGNhY2hlLgorICAgICIiIgorICAgIGhlYWRlciA9IGVudmlyb24uZ2V0KCdIVFRQX0NPT0tJRScpCisgICAgaWYgbm90IGhlYWRlcjoKKyAgICAgICAgcmV0dXJuIHt9CisgICAgaWYgJ3Bhc3RlLmNvb2tpZXMuZGljdCcgaW4gZW52aXJvbjoKKyAgICAgICAgY29va2llcywgY2hlY2tfaGVhZGVyID0gZW52aXJvblsncGFzdGUuY29va2llcy5kaWN0J10KKyAgICAgICAgaWYgY2hlY2tfaGVhZGVyID09IGhlYWRlcjoKKyAgICAgICAgICAgIHJldHVybiBjb29raWVzCisgICAgY29va2llcyA9IFNpbXBsZUNvb2tpZSgpCisgICAgdHJ5OgorICAgICAgICBjb29raWVzLmxvYWQoaGVhZGVyKQorICAgIGV4Y2VwdCBDb29raWVFcnJvcjoKKyAgICAgICAgcGFzcworICAgIHJlc3VsdCA9IHt9CisgICAgZm9yIG5hbWUgaW4gY29va2llczoKKyAgICAgICAgcmVzdWx0W25hbWVdID0gY29va2llc1tuYW1lXS52YWx1ZQorICAgIGVudmlyb25bJ3Bhc3RlLmNvb2tpZXMuZGljdCddID0gKHJlc3VsdCwgaGVhZGVyKQorICAgIHJldHVybiByZXN1bHQKKworZGVmIHBhcnNlX3F1ZXJ5c3RyaW5nKGVudmlyb24pOgorICAgICIiIgorICAgIFBhcnNlcyBhIHF1ZXJ5IHN0cmluZyBpbnRvIGEgbGlzdCBsaWtlIGBgWyhuYW1lLCB2YWx1ZSldYGAuCisgICAgQ2FjaGVzIHRoaXMgdmFsdWUgaW4gY2FzZSBwYXJzZV9xdWVyeXN0cmluZyBpcyBjYWxsZWQgYWdhaW4KKyAgICBmb3IgdGhlIHNhbWUgcmVxdWVzdC4KKworICAgIFlvdSBjYW4gcGFzcyB0aGUgcmVzdWx0IHRvIGBgZGljdCgpYGAsIGJ1dCBiZSBhd2FyZSB0aGF0IGtleXMgdGhhdAorICAgIGFwcGVhciBtdWx0aXBsZSB0aW1lcyB3aWxsIGJlIGxvc3QgKG9ubHkgdGhlIGxhc3QgdmFsdWUgd2lsbCBiZQorICAgIHByZXNlcnZlZCkuCisKKyAgICAiIiIKKyAgICBzb3VyY2UgPSBlbnZpcm9uLmdldCgnUVVFUllfU1RSSU5HJywgJycpCisgICAgaWYgbm90IHNvdXJjZToKKyAgICAgICAgcmV0dXJuIFtdCisgICAgaWYgJ3Bhc3RlLnBhcnNlZF9xdWVyeXN0cmluZycgaW4gZW52aXJvbjoKKyAgICAgICAgcGFyc2VkLCBjaGVja19zb3VyY2UgPSBlbnZpcm9uWydwYXN0ZS5wYXJzZWRfcXVlcnlzdHJpbmcnXQorICAgICAgICBpZiBjaGVja19zb3VyY2UgPT0gc291cmNlOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlZAorICAgIHBhcnNlZCA9IHBhcnNlX3FzbChzb3VyY2UsIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdF9wYXJzaW5nPUZhbHNlKQorICAgIGVudmlyb25bJ3Bhc3RlLnBhcnNlZF9xdWVyeXN0cmluZyddID0gKHBhcnNlZCwgc291cmNlKQorICAgIHJldHVybiBwYXJzZWQKKworZGVmIHBhcnNlX2RpY3RfcXVlcnlzdHJpbmcoZW52aXJvbik6CisgICAgIiIiUGFyc2VzIGEgcXVlcnkgc3RyaW5nIGxpa2UgcGFyc2VfcXVlcnlzdHJpbmcsIGJ1dCByZXR1cm5zIGEgTXVsdGlEaWN0CisKKyAgICBDYWNoZXMgdGhpcyB2YWx1ZSBpbiBjYXNlIHBhcnNlX2RpY3RfcXVlcnlzdHJpbmcgaXMgY2FsbGVkIGFnYWluCisgICAgZm9yIHRoZSBzYW1lIHJlcXVlc3QuCisKKyAgICBFeGFtcGxlOjoKKworICAgICAgICA+Pj4gZW52aXJvbiA9IHsnUVVFUllfU1RSSU5HJzogJ2RheT1Nb25kYXkmdXNlcj1mcmVkJnVzZXI9amFuZSd9CisgICAgICAgID4+PiBwYXJzZWQgPSBwYXJzZV9kaWN0X3F1ZXJ5c3RyaW5nKGVudmlyb24pCisKKyAgICAgICAgPj4+IHBhcnNlZFsnZGF5J10KKyAgICAgICAgJ01vbmRheScKKyAgICAgICAgPj4+IHBhcnNlZFsndXNlciddCisgICAgICAgICdmcmVkJworICAgICAgICA+Pj4gcGFyc2VkLmdldGFsbCgndXNlcicpCisgICAgICAgIFsnZnJlZCcsICdqYW5lJ10KKworICAgICIiIgorICAgIHNvdXJjZSA9IGVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnLCAnJykKKyAgICBpZiBub3Qgc291cmNlOgorICAgICAgICByZXR1cm4gTXVsdGlEaWN0KCkKKyAgICBpZiAncGFzdGUucGFyc2VkX2RpY3RfcXVlcnlzdHJpbmcnIGluIGVudmlyb246CisgICAgICAgIHBhcnNlZCwgY2hlY2tfc291cmNlID0gZW52aXJvblsncGFzdGUucGFyc2VkX2RpY3RfcXVlcnlzdHJpbmcnXQorICAgICAgICBpZiBjaGVja19zb3VyY2UgPT0gc291cmNlOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlZAorICAgIHBhcnNlZCA9IHBhcnNlX3FzbChzb3VyY2UsIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdF9wYXJzaW5nPUZhbHNlKQorICAgIG11bHRpID0gTXVsdGlEaWN0KHBhcnNlZCkKKyAgICBlbnZpcm9uWydwYXN0ZS5wYXJzZWRfZGljdF9xdWVyeXN0cmluZyddID0gKG11bHRpLCBzb3VyY2UpCisgICAgcmV0dXJuIG11bHRpCisKK2RlZiBwYXJzZV9mb3JtdmFycyhlbnZpcm9uLCBpbmNsdWRlX2dldF92YXJzPVRydWUpOgorICAgICIiIlBhcnNlcyB0aGUgcmVxdWVzdCwgcmV0dXJuaW5nIGEgTXVsdGlEaWN0IG9mIGZvcm0gdmFyaWFibGVzLgorCisgICAgSWYgYGBpbmNsdWRlX2dldF92YXJzYGAgaXMgdHJ1ZSB0aGVuIEdFVCAocXVlcnkgc3RyaW5nKSB2YXJpYWJsZXMKKyAgICB3aWxsIGFsc28gYmUgZm9sZGVkIGludG8gdGhlIE11bHRpRGljdC4KKworICAgIEFsbCB2YWx1ZXMgc2hvdWxkIGJlIHN0cmluZ3MsIGV4Y2VwdCBmb3IgZmlsZSB1cGxvYWRzIHdoaWNoIGFyZQorICAgIGxlZnQgYXMgYGBGaWVsZFN0b3JhZ2VgYCBpbnN0YW5jZXMuCisKKyAgICBJZiB0aGUgcmVxdWVzdCB3YXMgbm90IGEgbm9ybWFsIGZvcm0gcmVxdWVzdCAoZS5nLiwgYSBQT1NUIHdpdGggYW4KKyAgICBYTUwgYm9keSkgdGhlbiBgYGVudmlyb25bJ3dzZ2kuaW5wdXQnXWBgIHdvbid0IGJlIHJlYWQuCisgICAgIiIiCisgICAgc291cmNlID0gZW52aXJvblsnd3NnaS5pbnB1dCddCisgICAgaWYgJ3Bhc3RlLnBhcnNlZF9mb3JtdmFycycgaW4gZW52aXJvbjoKKyAgICAgICAgcGFyc2VkLCBjaGVja19zb3VyY2UgPSBlbnZpcm9uWydwYXN0ZS5wYXJzZWRfZm9ybXZhcnMnXQorICAgICAgICBpZiBjaGVja19zb3VyY2UgPT0gc291cmNlOgorICAgICAgICAgICAgaWYgaW5jbHVkZV9nZXRfdmFyczoKKyAgICAgICAgICAgICAgICBwYXJzZWQudXBkYXRlKHBhcnNlX3F1ZXJ5c3RyaW5nKGVudmlyb24pKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlZAorICAgICMgQEA6IFNob3VsZG4ndCBib3RoZXIgRmllbGRTdG9yYWdlIHBhcnNpbmcgZHVyaW5nIEdFVC9IRUFEIGFuZAorICAgICMgZmFrZV9vdXRfY2dpIHJlcXVlc3RzCisgICAgdHlwZSA9IGVudmlyb24uZ2V0KCdDT05URU5UX1RZUEUnLCAnJykubG93ZXIoKQorICAgIGlmICc7JyBpbiB0eXBlOgorICAgICAgICB0eXBlID0gdHlwZS5zcGxpdCgnOycsIDEpWzBdCisgICAgZmFrZV9vdXRfY2dpID0gdHlwZSBub3QgaW4gKCcnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ211bHRpcGFydC9mb3JtLWRhdGEnKQorICAgICMgRmllbGRTdG9yYWdlIGFzc3VtZXMgYSBkZWZhdWx0IENPTlRFTlRfTEVOR1RIIG9mIC0xLCBidXQgYQorICAgICMgZGVmYXVsdCBvZiAwIGlzIGJldHRlcjoKKyAgICBpZiBub3QgZW52aXJvbi5nZXQoJ0NPTlRFTlRfTEVOR1RIJyk6CisgICAgICAgIGVudmlyb25bJ0NPTlRFTlRfTEVOR1RIJ10gPSAnMCcKKyAgICAjIFByZXZlbnQgRmllbGRTdG9yYWdlIGZyb20gcGFyc2luZyBRVUVSWV9TVFJJTkcgZHVyaW5nIEdFVC9IRUFECisgICAgIyByZXF1ZXN0cworICAgIG9sZF9xdWVyeV9zdHJpbmcgPSBlbnZpcm9uLmdldCgnUVVFUllfU1RSSU5HJywnJykKKyAgICBlbnZpcm9uWydRVUVSWV9TVFJJTkcnXSA9ICcnCisgICAgaWYgZmFrZV9vdXRfY2dpOgorICAgICAgICBpbnB1dCA9IHNpeC5CeXRlc0lPKGInJykKKyAgICAgICAgb2xkX2NvbnRlbnRfdHlwZSA9IGVudmlyb24uZ2V0KCdDT05URU5UX1RZUEUnKQorICAgICAgICBvbGRfY29udGVudF9sZW5ndGggPSBlbnZpcm9uLmdldCgnQ09OVEVOVF9MRU5HVEgnKQorICAgICAgICBlbnZpcm9uWydDT05URU5UX0xFTkdUSCddID0gJzAnCisgICAgICAgIGVudmlyb25bJ0NPTlRFTlRfVFlQRSddID0gJycKKyAgICBlbHNlOgorICAgICAgICBpbnB1dCA9IGVudmlyb25bJ3dzZ2kuaW5wdXQnXQorICAgIGZzID0gY2dpLkZpZWxkU3RvcmFnZShmcD1pbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbj1lbnZpcm9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwX2JsYW5rX3ZhbHVlcz0xKQorICAgIGVudmlyb25bJ1FVRVJZX1NUUklORyddID0gb2xkX3F1ZXJ5X3N0cmluZworICAgIGlmIGZha2Vfb3V0X2NnaToKKyAgICAgICAgZW52aXJvblsnQ09OVEVOVF9UWVBFJ10gPSBvbGRfY29udGVudF90eXBlCisgICAgICAgIGVudmlyb25bJ0NPTlRFTlRfTEVOR1RIJ10gPSBvbGRfY29udGVudF9sZW5ndGgKKyAgICBmb3JtdmFycyA9IE11bHRpRGljdCgpCisgICAgaWYgaXNpbnN0YW5jZShmcy52YWx1ZSwgbGlzdCk6CisgICAgICAgIGZvciBuYW1lIGluIGZzLmtleXMoKToKKyAgICAgICAgICAgIHZhbHVlcyA9IGZzW25hbWVdCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZXMsIGxpc3QpOgorICAgICAgICAgICAgICAgIHZhbHVlcyA9IFt2YWx1ZXNdCisgICAgICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVzOgorICAgICAgICAgICAgICAgIGlmIG5vdCB2YWx1ZS5maWxlbmFtZToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZQorICAgICAgICAgICAgICAgIGZvcm12YXJzLmFkZChuYW1lLCB2YWx1ZSkKKyAgICBlbnZpcm9uWydwYXN0ZS5wYXJzZWRfZm9ybXZhcnMnXSA9IChmb3JtdmFycywgc291cmNlKQorICAgIGlmIGluY2x1ZGVfZ2V0X3ZhcnM6CisgICAgICAgIGZvcm12YXJzLnVwZGF0ZShwYXJzZV9xdWVyeXN0cmluZyhlbnZpcm9uKSkKKyAgICByZXR1cm4gZm9ybXZhcnMKKworZGVmIGNvbnN0cnVjdF91cmwoZW52aXJvbiwgd2l0aF9xdWVyeV9zdHJpbmc9VHJ1ZSwgd2l0aF9wYXRoX2luZm89VHJ1ZSwKKyAgICAgICAgICAgICAgICAgIHNjcmlwdF9uYW1lPU5vbmUsIHBhdGhfaW5mbz1Ob25lLCBxdWVyeXN0cmluZz1Ob25lKToKKyAgICAiIiJSZWNvbnN0cnVjdHMgdGhlIFVSTCBmcm9tIHRoZSBXU0dJIGVudmlyb25tZW50LgorCisgICAgWW91IG1heSBvdmVycmlkZSBTQ1JJUFRfTkFNRSwgUEFUSF9JTkZPLCBhbmQgUVVFUllTVFJJTkcgd2l0aAorICAgIHRoZSBrZXl3b3JkIGFyZ3VtZW50cy4KKworICAgICIiIgorICAgIHVybCA9IGVudmlyb25bJ3dzZ2kudXJsX3NjaGVtZSddKyc6Ly8nCisKKyAgICBpZiBlbnZpcm9uLmdldCgnSFRUUF9IT1NUJyk6CisgICAgICAgIGhvc3QgPSBlbnZpcm9uWydIVFRQX0hPU1QnXQorICAgICAgICBwb3J0ID0gTm9uZQorICAgICAgICBpZiAnOicgaW4gaG9zdDoKKyAgICAgICAgICAgIGhvc3QsIHBvcnQgPSBob3N0LnNwbGl0KCc6JywgMSkKKyAgICAgICAgICAgIGlmIGVudmlyb25bJ3dzZ2kudXJsX3NjaGVtZSddID09ICdodHRwcyc6CisgICAgICAgICAgICAgICAgaWYgcG9ydCA9PSAnNDQzJzoKKyAgICAgICAgICAgICAgICAgICAgcG9ydCA9IE5vbmUKKyAgICAgICAgICAgIGVsaWYgZW52aXJvblsnd3NnaS51cmxfc2NoZW1lJ10gPT0gJ2h0dHAnOgorICAgICAgICAgICAgICAgIGlmIHBvcnQgPT0gJzgwJzoKKyAgICAgICAgICAgICAgICAgICAgcG9ydCA9IE5vbmUKKyAgICAgICAgdXJsICs9IGhvc3QKKyAgICAgICAgaWYgcG9ydDoKKyAgICAgICAgICAgIHVybCArPSAnOiVzJyAlIHBvcnQKKyAgICBlbHNlOgorICAgICAgICB1cmwgKz0gZW52aXJvblsnU0VSVkVSX05BTUUnXQorICAgICAgICBpZiBlbnZpcm9uWyd3c2dpLnVybF9zY2hlbWUnXSA9PSAnaHR0cHMnOgorICAgICAgICAgICAgaWYgZW52aXJvblsnU0VSVkVSX1BPUlQnXSAhPSAnNDQzJzoKKyAgICAgICAgICAgICAgICB1cmwgKz0gJzonICsgZW52aXJvblsnU0VSVkVSX1BPUlQnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgZW52aXJvblsnU0VSVkVSX1BPUlQnXSAhPSAnODAnOgorICAgICAgICAgICAgICAgIHVybCArPSAnOicgKyBlbnZpcm9uWydTRVJWRVJfUE9SVCddCisKKyAgICBpZiBzY3JpcHRfbmFtZSBpcyBOb25lOgorICAgICAgICB1cmwgKz0gcXVvdGUoZW52aXJvbi5nZXQoJ1NDUklQVF9OQU1FJywnJykpCisgICAgZWxzZToKKyAgICAgICAgdXJsICs9IHF1b3RlKHNjcmlwdF9uYW1lKQorICAgIGlmIHdpdGhfcGF0aF9pbmZvOgorICAgICAgICBpZiBwYXRoX2luZm8gaXMgTm9uZToKKyAgICAgICAgICAgIHVybCArPSBxdW90ZShlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywnJykpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB1cmwgKz0gcXVvdGUocGF0aF9pbmZvKQorICAgIGlmIHdpdGhfcXVlcnlfc3RyaW5nOgorICAgICAgICBpZiBxdWVyeXN0cmluZyBpcyBOb25lOgorICAgICAgICAgICAgaWYgZW52aXJvbi5nZXQoJ1FVRVJZX1NUUklORycpOgorICAgICAgICAgICAgICAgIHVybCArPSAnPycgKyBlbnZpcm9uWydRVUVSWV9TVFJJTkcnXQorICAgICAgICBlbGlmIHF1ZXJ5c3RyaW5nOgorICAgICAgICAgICAgdXJsICs9ICc/JyArIHF1ZXJ5c3RyaW5nCisgICAgcmV0dXJuIHVybAorCitkZWYgcmVzb2x2ZV9yZWxhdGl2ZV91cmwodXJsLCBlbnZpcm9uKToKKyAgICAiIiIKKyAgICBSZXNvbHZlIHRoZSBnaXZlbiByZWxhdGl2ZSBVUkwgYXMgYmVpbmcgcmVsYXRpdmUgdG8gdGhlCisgICAgbG9jYXRpb24gcmVwcmVzZW50ZWQgYnkgdGhlIGVudmlyb25tZW50LiAgVGhpcyBjYW4gYmUgdXNlZAorICAgIGZvciByZWRpcmVjdGluZyB0byBhIHJlbGF0aXZlIHBhdGguICBOb3RlOiBpZiB1cmwgaXMgYWxyZWFkeQorICAgIGFic29sdXRlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgKGludGVudGlvbmFsbHkpIGhhdmUgbm8gZWZmZWN0CisgICAgb24gaXQuCisKKyAgICAiIiIKKyAgICBjdXJfdXJsID0gY29uc3RydWN0X3VybChlbnZpcm9uLCB3aXRoX3F1ZXJ5X3N0cmluZz1GYWxzZSkKKyAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihjdXJfdXJsLCB1cmwpCisKK2RlZiBwYXRoX2luZm9fc3BsaXQocGF0aF9pbmZvKToKKyAgICAiIiIKKyAgICBTcGxpdHMgb2ZmIHRoZSBmaXJzdCBzZWdtZW50IG9mIHRoZSBwYXRoLiAgUmV0dXJucyAoZmlyc3RfcGFydCwKKyAgICByZXN0X29mX3BhdGgpLiAgZmlyc3RfcGFydCBjYW4gYmUgTm9uZSAoaWYgUEFUSF9JTkZPIGlzIGVtcHR5KSwgJycKKyAgICAoaWYgUEFUSF9JTkZPIGlzICcvJyksIG9yIGEgbmFtZSB3aXRob3V0IGFueSAvJ3MuICByZXN0X29mX3BhdGgKKyAgICBjYW4gYmUgJycgb3IgYSBzdHJpbmcgc3RhcnRpbmcgd2l0aCAvLgorCisgICAgIiIiCisgICAgaWYgbm90IHBhdGhfaW5mbzoKKyAgICAgICAgcmV0dXJuIE5vbmUsICcnCisgICAgYXNzZXJ0IHBhdGhfaW5mby5zdGFydHN3aXRoKCcvJyksICgKKyAgICAgICAgIlBBVEhfSU5GTyBzaG91bGQgc3RhcnQgd2l0aCAvOiAlciIgJSBwYXRoX2luZm8pCisgICAgcGF0aF9pbmZvID0gcGF0aF9pbmZvLmxzdHJpcCgnLycpCisgICAgaWYgJy8nIGluIHBhdGhfaW5mbzoKKyAgICAgICAgZmlyc3QsIHJlc3QgPSBwYXRoX2luZm8uc3BsaXQoJy8nLCAxKQorICAgICAgICByZXR1cm4gZmlyc3QsICcvJyArIHJlc3QKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gcGF0aF9pbmZvLCAnJworCitkZWYgcGF0aF9pbmZvX3BvcChlbnZpcm9uKToKKyAgICAiIiIKKyAgICAnUG9wcycgb2ZmIHRoZSBuZXh0IHNlZ21lbnQgb2YgUEFUSF9JTkZPLCBwdXNoaW5nIGl0IG9udG8KKyAgICBTQ1JJUFRfTkFNRSwgYW5kIHJldHVybmluZyB0aGF0IHNlZ21lbnQuCisKKyAgICBGb3IgaW5zdGFuY2U6OgorCisgICAgICAgID4+PiBkZWYgY2FsbF9pdChzY3JpcHRfbmFtZSwgcGF0aF9pbmZvKToKKyAgICAgICAgLi4uICAgICBlbnYgPSB7J1NDUklQVF9OQU1FJzogc2NyaXB0X25hbWUsICdQQVRIX0lORk8nOiBwYXRoX2luZm99CisgICAgICAgIC4uLiAgICAgcmVzdWx0ID0gcGF0aF9pbmZvX3BvcChlbnYpCisgICAgICAgIC4uLiAgICAgcHJpbnQoJ1NDUklQVF9OQU1FPSVyOyBQQVRIX0lORk89JXI7IHJldHVybnM9JXInICUgKAorICAgICAgICAuLi4gICAgICAgICBlbnZbJ1NDUklQVF9OQU1FJ10sIGVudlsnUEFUSF9JTkZPJ10sIHJlc3VsdCkpCisgICAgICAgID4+PiBjYWxsX2l0KCcvZm9vJywgJy9iYXInKQorICAgICAgICBTQ1JJUFRfTkFNRT0nL2Zvby9iYXInOyBQQVRIX0lORk89Jyc7IHJldHVybnM9J2JhcicKKyAgICAgICAgPj4+IGNhbGxfaXQoJy9mb28vYmFyJywgJycpCisgICAgICAgIFNDUklQVF9OQU1FPScvZm9vL2Jhcic7IFBBVEhfSU5GTz0nJzsgcmV0dXJucz1Ob25lCisgICAgICAgID4+PiBjYWxsX2l0KCcvZm9vL2JhcicsICcvJykKKyAgICAgICAgU0NSSVBUX05BTUU9Jy9mb28vYmFyLyc7IFBBVEhfSU5GTz0nJzsgcmV0dXJucz0nJworICAgICAgICA+Pj4gY2FsbF9pdCgnJywgJy8xLzIvMycpCisgICAgICAgIFNDUklQVF9OQU1FPScvMSc7IFBBVEhfSU5GTz0nLzIvMyc7IHJldHVybnM9JzEnCisgICAgICAgID4+PiBjYWxsX2l0KCcnLCAnLy8xLzInKQorICAgICAgICBTQ1JJUFRfTkFNRT0nLy8xJzsgUEFUSF9JTkZPPScvMic7IHJldHVybnM9JzEnCisKKyAgICAiIiIKKyAgICBwYXRoID0gZW52aXJvbi5nZXQoJ1BBVEhfSU5GTycsICcnKQorICAgIGlmIG5vdCBwYXRoOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHdoaWxlIHBhdGguc3RhcnRzd2l0aCgnLycpOgorICAgICAgICBlbnZpcm9uWydTQ1JJUFRfTkFNRSddICs9ICcvJworICAgICAgICBwYXRoID0gcGF0aFsxOl0KKyAgICBpZiAnLycgbm90IGluIHBhdGg6CisgICAgICAgIGVudmlyb25bJ1NDUklQVF9OQU1FJ10gKz0gcGF0aAorICAgICAgICBlbnZpcm9uWydQQVRIX0lORk8nXSA9ICcnCisgICAgICAgIHJldHVybiBwYXRoCisgICAgZWxzZToKKyAgICAgICAgc2VnbWVudCwgcGF0aCA9IHBhdGguc3BsaXQoJy8nLCAxKQorICAgICAgICBlbnZpcm9uWydQQVRIX0lORk8nXSA9ICcvJyArIHBhdGgKKyAgICAgICAgZW52aXJvblsnU0NSSVBUX05BTUUnXSArPSBzZWdtZW50CisgICAgICAgIHJldHVybiBzZWdtZW50CisKK19wYXJzZV9oZWFkZXJzX3NwZWNpYWwgPSB7CisgICAgIyBUaGlzIGlzIGEgWm9wZSBjb252ZW50aW9uLCBidXQgd2UnbGwgYWxsb3cgaXQgaGVyZToKKyAgICAnSFRUUF9DR0lfQVVUSE9SSVpBVElPTic6ICdBdXRob3JpemF0aW9uJywKKyAgICAnQ09OVEVOVF9MRU5HVEgnOiAnQ29udGVudC1MZW5ndGgnLAorICAgICdDT05URU5UX1RZUEUnOiAnQ29udGVudC1UeXBlJywKKyAgICB9CisKK2RlZiBwYXJzZV9oZWFkZXJzKGVudmlyb24pOgorICAgICIiIgorICAgIFBhcnNlIHRoZSBoZWFkZXJzIGluIHRoZSBlbnZpcm9ubWVudCAobGlrZSBgYEhUVFBfSE9TVGBgKSBhbmQKKyAgICB5aWVsZCBhIHNlcXVlbmNlIG9mIHRob3NlIChoZWFkZXJfbmFtZSwgdmFsdWUpIHR1cGxlcy4KKyAgICAiIiIKKyAgICAjIEBAOiBNYXliZSBzaG91bGQgcGFyc2Ugb3V0IGNvbW1hLXNlcGFyYXRlZCBoZWFkZXJzPworICAgIGZvciBjZ2lfdmFyLCB2YWx1ZSBpbiBlbnZpcm9uLml0ZXJpdGVtcygpOgorICAgICAgICBpZiBjZ2lfdmFyIGluIF9wYXJzZV9oZWFkZXJzX3NwZWNpYWw6CisgICAgICAgICAgICB5aWVsZCBfcGFyc2VfaGVhZGVyc19zcGVjaWFsW2NnaV92YXJdLCB2YWx1ZQorICAgICAgICBlbGlmIGNnaV92YXIuc3RhcnRzd2l0aCgnSFRUUF8nKToKKyAgICAgICAgICAgIHlpZWxkIGNnaV92YXJbNTpdLnRpdGxlKCkucmVwbGFjZSgnXycsICctJyksIHZhbHVlCisKK2NsYXNzIEVudmlyb25IZWFkZXJzKERpY3RNaXhpbik6CisgICAgIiIiQW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgaGVhZGVycyBhcyBwcmVzZW50IGluIGEKKyAgICBXU0dJIGVudmlyb25tZW50LgorCisgICAgVGhpcyBvYmplY3QgaXMgYSB3cmFwcGVyICh3aXRoIG5vIGludGVybmFsIHN0YXRlKSBmb3IgYSBXU0dJCisgICAgcmVxdWVzdCBvYmplY3QsIHJlcHJlc2VudGluZyB0aGUgQ0dJLXN0eWxlIEhUVFBfKiBrZXlzIGFzIGEKKyAgICBkaWN0aW9uYXJ5LiAgQmVjYXVzZSBhIENHSSBlbnZpcm9ubWVudCBjYW4gb25seSBob2xkIG9uZSB2YWx1ZSBmb3IKKyAgICBlYWNoIGtleSwgdGhpcyBkaWN0aW9uYXJ5IGlzIHNpbmdsZS12YWx1ZWQgKHVubGlrZSBvdXRnb2luZworICAgIGhlYWRlcnMpLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb24pOgorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisKKyAgICBkZWYgX3RyYW5zX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIGtleSA9ICdIVFRQXycrbmFtZS5yZXBsYWNlKCctJywgJ18nKS51cHBlcigpCisgICAgICAgIGlmIGtleSA9PSAnSFRUUF9DT05URU5UX0xFTkdUSCc6CisgICAgICAgICAgICBrZXkgPSAnQ09OVEVOVF9MRU5HVEgnCisgICAgICAgIGVsaWYga2V5ID09ICdIVFRQX0NPTlRFTlRfVFlQRSc6CisgICAgICAgICAgICBrZXkgPSAnQ09OVEVOVF9UWVBFJworICAgICAgICByZXR1cm4ga2V5CisKKyAgICBkZWYgX3RyYW5zX2tleShzZWxmLCBrZXkpOgorICAgICAgICBpZiBrZXkgPT0gJ0NPTlRFTlRfVFlQRSc6CisgICAgICAgICAgICByZXR1cm4gJ0NvbnRlbnQtVHlwZScKKyAgICAgICAgZWxpZiBrZXkgPT0gJ0NPTlRFTlRfTEVOR1RIJzoKKyAgICAgICAgICAgIHJldHVybiAnQ29udGVudC1MZW5ndGgnCisgICAgICAgIGVsaWYga2V5LnN0YXJ0c3dpdGgoJ0hUVFBfJyk6CisgICAgICAgICAgICByZXR1cm4ga2V5WzU6XS5yZXBsYWNlKCdfJywgJy0nKS50aXRsZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5lbnZpcm9uKQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGl0ZW0pOgorICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uW3NlbGYuX3RyYW5zX25hbWUoaXRlbSldCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwgaXRlbSwgdmFsdWUpOgorICAgICAgICAjIEBAOiBTaG91bGQgdGhpcyBkaWN0aW9uYXJ5IGJlIHdyaXRhYmxlIGF0IGFsbD8KKyAgICAgICAgc2VsZi5lbnZpcm9uW3NlbGYuX3RyYW5zX25hbWUoaXRlbSldID0gdmFsdWUKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBpdGVtKToKKyAgICAgICAgZGVsIHNlbGYuZW52aXJvbltzZWxmLl90cmFuc19uYW1lKGl0ZW0pXQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBmb3Iga2V5IGluIHNlbGYuZW52aXJvbjoKKyAgICAgICAgICAgIG5hbWUgPSBzZWxmLl90cmFuc19rZXkoa2V5KQorICAgICAgICAgICAgaWYgbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICB5aWVsZCBuYW1lCisKKyAgICBkZWYga2V5cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGxpc3QoaXRlcihzZWxmKSkKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgaXRlbSk6CisgICAgICAgIHJldHVybiBzZWxmLl90cmFuc19uYW1lKGl0ZW0pIGluIHNlbGYuZW52aXJvbgorCitkZWYgX2NnaV9GaWVsZFN0b3JhZ2VfX3JlcHJfX3BhdGNoKHNlbGYpOgorICAgICIiIiBtb25rZXkgcGF0Y2ggZm9yIEZpZWxkU3RvcmFnZS5fX3JlcHJfXworCisgICAgVW5iZWxpZXZlbHksIHRoZSBkZWZhdWx0IF9fcmVwcl9fIG9uIEZpZWxkU3RvcmFnZSByZWFkcworICAgIHRoZSBlbnRpcmUgZmlsZSBjb250ZW50IGluc3RlYWQgb2YgYmVpbmcgc2FuZSBhYm91dCBpdC4KKyAgICBUaGlzIGlzIGEgc2ltcGxlIHJlcGxhY2VtZW50IHRoYXQgZG9lc24ndCBkbyB0aGF0CisgICAgIiIiCisgICAgaWYgc2VsZi5maWxlOgorICAgICAgICByZXR1cm4gIkZpZWxkU3RvcmFnZSglciwgJXIpIiAlICgKKyAgICAgICAgICAgICAgICBzZWxmLm5hbWUsIHNlbGYuZmlsZW5hbWUpCisgICAgcmV0dXJuICJGaWVsZFN0b3JhZ2UoJXIsICVyLCAlcikiICUgKAorICAgICAgICAgICAgIHNlbGYubmFtZSwgc2VsZi5maWxlbmFtZSwgc2VsZi52YWx1ZSkKKworY2dpLkZpZWxkU3RvcmFnZS5fX3JlcHJfXyA9IF9jZ2lfRmllbGRTdG9yYWdlX19yZXByX19wYXRjaAorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGltcG9ydCBkb2N0ZXN0CisgICAgZG9jdGVzdC50ZXN0bW9kKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZXNwb25zZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9yZXNwb25zZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2UwMzIwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3Jlc3BvbnNlLnB5CkBAIC0wLDAgKzEsMjQwIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiJSb3V0aW5lcyB0byBnZW5lcmF0ZSBXU0dJIHJlc3BvbnNlcyIiIgorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIEhlYWRlcnMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHdhcm5pbmdzCisKK2NsYXNzIEhlYWRlckRpY3QoZGljdCk6CisKKyAgICAiIiIKKyAgICBUaGlzIHJlcHJlc2VudHMgcmVzcG9uc2UgaGVhZGVycy4gIEl0IGhhbmRsZXMgdGhlIGhlYWRlcnMgYXMgYQorICAgIGRpY3Rpb25hcnksIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBrZXlzLgorCisgICAgQWxzbyB0aGVyZSBpcyBhbiBgYC5hZGQoa2V5LCB2YWx1ZSlgYCBtZXRob2QsIHdoaWNoIHNldHMgdGhlIGtleSwKKyAgICBvciBhZGRzIHRoZSB2YWx1ZSB0byB0aGUgY3VycmVudCB2YWx1ZSAodHVybmluZyBpdCBpbnRvIGEgbGlzdCBpZgorICAgIG5lY2Vzc2FyeSkuCisKKyAgICBGb3IgcGFzc2luZyB0byBXU0dJIHRoZXJlIGlzIGEgYGAuaGVhZGVyaXRlbXMoKWBgIG1ldGhvZCB3aGljaCBpcworICAgIGxpa2UgYGAuaXRlbXMoKWBgIGJ1dCB1bnBhY2tzIHZhbHVlIHRoYXQgYXJlIGxpc3RzLiAgSXQgYWxzbworICAgIGhhbmRsZXMgZW5jb2RpbmcgLS0gYWxsIGhlYWRlcnMgYXJlIGVuY29kZWQgaW4gQVNDSUkgKGlmIHRoZXkgYXJlCisgICAgdW5pY29kZSkuCisKKyAgICBAQDogU2hvdWxkIHRoYXQgZW5jb2RpbmcgYmUgSVNPLTg4NTktMSBvciBVVEYtOD8gIEknbSBub3Qgc3VyZQorICAgIHdoYXQgdGhlIHNwZWMgc2F5cy4KKyAgICAiIiIKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBzZWxmLm5vcm1hbGl6ZShrZXkpKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNlbGYsIHNlbGYubm9ybWFsaXplKGtleSksIHZhbHVlKQorCisgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIGRpY3QuX19kZWxpdGVtX18oc2VsZiwgc2VsZi5ub3JtYWxpemUoa2V5KSkKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAgcmV0dXJuIGRpY3QuX19jb250YWluc19fKHNlbGYsIHNlbGYubm9ybWFsaXplKGtleSkpCisKKyAgICBoYXNfa2V5ID0gX19jb250YWluc19fCisKKyAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZmFpbG9iaj1Ob25lKToKKyAgICAgICAgcmV0dXJuIGRpY3QuZ2V0KHNlbGYsIHNlbGYubm9ybWFsaXplKGtleSksIGZhaWxvYmopCisKKyAgICBkZWYgc2V0ZGVmYXVsdChzZWxmLCBrZXksIGZhaWxvYmo9Tm9uZSk6CisgICAgICAgIHJldHVybiBkaWN0LnNldGRlZmF1bHQoc2VsZiwgc2VsZi5ub3JtYWxpemUoa2V5KSwgZmFpbG9iaikKKworICAgIGRlZiBwb3Aoc2VsZiwga2V5LCAqYXJncyk6CisgICAgICAgIHJldHVybiBkaWN0LnBvcChzZWxmLCBzZWxmLm5vcm1hbGl6ZShrZXkpLCAqYXJncykKKworICAgIGRlZiB1cGRhdGUoc2VsZiwgb3RoZXIpOgorICAgICAgICBmb3Iga2V5IGluIG90aGVyOgorICAgICAgICAgICAgc2VsZltzZWxmLm5vcm1hbGl6ZShrZXkpXSA9IG90aGVyW2tleV0KKworICAgIGRlZiBub3JtYWxpemUoc2VsZiwga2V5KToKKyAgICAgICAgcmV0dXJuIHN0cihrZXkpLmxvd2VyKCkuc3RyaXAoKQorCisgICAgZGVmIGFkZChzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAga2V5ID0gc2VsZi5ub3JtYWxpemUoa2V5KQorICAgICAgICBpZiBrZXkgaW4gc2VsZjoKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZltrZXldLCBsaXN0KToKKyAgICAgICAgICAgICAgICBzZWxmW2tleV0uYXBwZW5kKHZhbHVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmW2tleV0gPSBbc2VsZltrZXldLCB2YWx1ZV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGZba2V5XSA9IHZhbHVlCisKKyAgICBkZWYgaGVhZGVyaXRlbXMoc2VsZik6CisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgorICAgICAgICAgICAgICAgIGZvciB2IGluIHZhbHVlOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChrZXksIHN0cih2KSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGtleSwgc3RyKHZhbHVlKSkpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICNAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbWxpc3QoY2xzLCBzZXEpOgorICAgICAgICBzZWxmID0gY2xzKCkKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlcToKKyAgICAgICAgICAgIHNlbGYuYWRkKG5hbWUsIHZhbHVlKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZnJvbWxpc3QgPSBjbGFzc21ldGhvZChmcm9tbGlzdCkKKworZGVmIGhhc19oZWFkZXIoaGVhZGVycywgbmFtZSk6CisgICAgIiIiCisgICAgSXMgaGVhZGVyIG5hbWVkIGBgbmFtZWBgIHByZXNlbnQgaW4gaGVhZGVycz8KKyAgICAiIiIKKyAgICBuYW1lID0gbmFtZS5sb3dlcigpCisgICAgZm9yIGhlYWRlciwgdmFsdWUgaW4gaGVhZGVyczoKKyAgICAgICAgaWYgaGVhZGVyLmxvd2VyKCkgPT0gbmFtZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIEZhbHNlCisKK2RlZiBoZWFkZXJfdmFsdWUoaGVhZGVycywgbmFtZSk6CisgICAgIiIiCisgICAgUmV0dXJucyB0aGUgaGVhZGVyJ3MgdmFsdWUsIG9yIE5vbmUgaWYgbm8gc3VjaCBoZWFkZXIuICBJZiBhCisgICAgaGVhZGVyIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UsIGFsbCB0aGUgdmFsdWVzIG9mIHRoZSBoZWFkZXJzCisgICAgYXJlIGpvaW5lZCB3aXRoICcsJy4gICBOb3RlIHRoYXQgdGhpcyBpcyBjb25zaXN0ZW50IC93IFJGQyAyNjE2CisgICAgc2VjdGlvbiA0LjIgd2hpY2ggc3RhdGVzOgorCisgICAgICAgIEl0IE1VU1QgYmUgcG9zc2libGUgdG8gY29tYmluZSB0aGUgbXVsdGlwbGUgaGVhZGVyIGZpZWxkcworICAgICAgICBpbnRvIG9uZSAiZmllbGQtbmFtZTogZmllbGQtdmFsdWUiIHBhaXIsIHdpdGhvdXQgY2hhbmdpbmcKKyAgICAgICAgdGhlIHNlbWFudGljcyBvZiB0aGUgbWVzc2FnZSwgYnkgYXBwZW5kaW5nIGVhY2ggc3Vic2VxdWVudAorICAgICAgICBmaWVsZC12YWx1ZSB0byB0aGUgZmlyc3QsIGVhY2ggc2VwYXJhdGVkIGJ5IGEgY29tbWEuCisKKyAgICBIb3dldmVyLCBub3RlIHRoYXQgdGhlIG9yaWdpbmFsIG5ldHNjYXBlIHVzYWdlIG9mICdTZXQtQ29va2llJywKKyAgICBlc3BlY2lhbGx5IGluIE1TSUUgd2hpY2ggY29udGFpbnMgYW4gJ2V4cGlyZXMnIGRhdGUgd2lsbCBpcyBub3QKKyAgICBjb21wYXRpYmxlIHdpdGggdGhpcyBwYXJ0aWN1bGFyIGNvbmNhdGluYXRpb24gbWV0aG9kLgorICAgICIiIgorICAgIG5hbWUgPSBuYW1lLmxvd2VyKCkKKyAgICByZXN1bHQgPSBbdmFsdWUgZm9yIGhlYWRlciwgdmFsdWUgaW4gaGVhZGVycworICAgICAgICAgICAgICBpZiBoZWFkZXIubG93ZXIoKSA9PSBuYW1lXQorICAgIGlmIHJlc3VsdDoKKyAgICAgICAgcmV0dXJuICcsJy5qb2luKHJlc3VsdCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gTm9uZQorCitkZWYgcmVtb3ZlX2hlYWRlcihoZWFkZXJzLCBuYW1lKToKKyAgICAiIiIKKyAgICBSZW1vdmVzIHRoZSBuYW1lZCBoZWFkZXIgZnJvbSB0aGUgbGlzdCBvZiBoZWFkZXJzLiAgUmV0dXJucyB0aGUKKyAgICB2YWx1ZSBvZiB0aGF0IGhlYWRlciwgb3IgTm9uZSBpZiBubyBoZWFkZXIgZm91bmQuICBJZiBtdWx0aXBsZQorICAgIGhlYWRlcnMgYXJlIGZvdW5kLCBvbmx5IHRoZSBsYXN0IG9uZSBpcyByZXR1cm5lZC4KKyAgICAiIiIKKyAgICBuYW1lID0gbmFtZS5sb3dlcigpCisgICAgaSA9IDAKKyAgICByZXN1bHQgPSBOb25lCisgICAgd2hpbGUgaSA8IGxlbihoZWFkZXJzKToKKyAgICAgICAgaWYgaGVhZGVyc1tpXVswXS5sb3dlcigpID09IG5hbWU6CisgICAgICAgICAgICByZXN1bHQgPSBoZWFkZXJzW2ldWzFdCisgICAgICAgICAgICBkZWwgaGVhZGVyc1tpXQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaSArPSAxCisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgcmVwbGFjZV9oZWFkZXIoaGVhZGVycywgbmFtZSwgdmFsdWUpOgorICAgICIiIgorICAgIFVwZGF0ZXMgdGhlIGhlYWRlcnMgcmVwbGFjaW5nIHRoZSBmaXJzdCBvY2N1cmFuY2Ugb2YgdGhlIGdpdmVuIG5hbWUKKyAgICB3aXRoIHRoZSB2YWx1ZSBwcm92aWRlZDsgYXNzZXJ0aW5nIHRoYXQgbm8gZnVydGhlciBvY2N1cmFuY2VzCisgICAgaGFwcGVuLiBOb3RlIHRoYXQgdGhpcyBpcyBfbm90XyB0aGUgc2FtZSBhcyByZW1vdmVfaGVhZGVyIGFuZCB0aGVuCisgICAgYXBwZW5kLCBhcyB0d28gZGlzdGluY3Qgb3BlcmF0aW9ucyAoZGVsIGZvbGxvd2VkIGJ5IGFuIGFwcGVuZCkgYXJlCisgICAgbm90IGF0b21pYyBpbiBhIHRocmVhZGVkIGVudmlyb25tZW50LiBSZXR1cm5zIHRoZSBwcmV2aW91cyBoZWFkZXIKKyAgICB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIG5hbWUsIGlmIGFueS4gICBDbGVhcmx5IG9uZSBzaG91bGQgbm90IHVzZQorICAgIHRoaXMgZnVuY3Rpb24gd2l0aCBgYHNldC1jb29raWVgYCBvciBvdGhlciBuYW1lcyB0aGF0IG1heSBoYXZlIG1vcmUKKyAgICB0aGFuIG9uZSBvY2N1cmFuY2UgaW4gdGhlIGhlYWRlcnMuCisgICAgIiIiCisgICAgbmFtZSA9IG5hbWUubG93ZXIoKQorICAgIGkgPSAwCisgICAgcmVzdWx0ID0gTm9uZQorICAgIHdoaWxlIGkgPCBsZW4oaGVhZGVycyk6CisgICAgICAgIGlmIGhlYWRlcnNbaV1bMF0ubG93ZXIoKSA9PSBuYW1lOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCByZXN1bHQsICJ0d28gdmFsdWVzIGZvciB0aGUgaGVhZGVyICclcycgZm91bmQiICUgbmFtZQorICAgICAgICAgICAgcmVzdWx0ID0gaGVhZGVyc1tpXVsxXQorICAgICAgICAgICAgaGVhZGVyc1tpXSA9IChuYW1lLCB2YWx1ZSkKKyAgICAgICAgaSArPSAxCisgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKG5hbWUsIHZhbHVlKSkKKyAgICByZXR1cm4gcmVzdWx0CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyBEZXByZWNhdGVkIG1ldGhvZHMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitkZWYgZXJyb3JfYm9keV9yZXNwb25zZShlcnJvcl9jb2RlLCBtZXNzYWdlLCBfX3dhcm49VHJ1ZSk6CisgICAgIiIiCisgICAgUmV0dXJucyBhIHN0YW5kYXJkIEhUTUwgcmVzcG9uc2UgcGFnZSBmb3IgYW4gSFRUUCBlcnJvci4KKyAgICAqKk5vdGU6KiogRGVwcmVjYXRlZAorICAgICIiIgorICAgIGlmIF9fd2FybjoKKyAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICd3c2dpbGliLmVycm9yX2JvZHlfcmVzcG9uc2UgaXMgZGVwcmVjYXRlZDsgdXNlIHRoZSAnCisgICAgICAgICAgICAnd3NnaV9hcHBsaWNhdGlvbiBtZXRob2Qgb24gYW4gSFRUUEV4Y2VwdGlvbiBvYmplY3QgJworICAgICAgICAgICAgJ2luc3RlYWQnLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgcmV0dXJuICcnJ1wKKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+JShlcnJvcl9jb2RlKXM8L3RpdGxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICA8aDE+JShlcnJvcl9jb2RlKXM8L2gxPgorICAlKG1lc3NhZ2UpcworICA8L2JvZHk+Cis8L2h0bWw+JycnICUgeworICAgICAgICAnZXJyb3JfY29kZSc6IGVycm9yX2NvZGUsCisgICAgICAgICdtZXNzYWdlJzogbWVzc2FnZSwKKyAgICAgICAgfQorCisKK2RlZiBlcnJvcl9yZXNwb25zZShlbnZpcm9uLCBlcnJvcl9jb2RlLCBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgIGRlYnVnX21lc3NhZ2U9Tm9uZSwgX193YXJuPVRydWUpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHN0YXR1cywgaGVhZGVycywgYW5kIGJvZHkgb2YgYW4gZXJyb3IgcmVzcG9uc2UuCisKKyAgICBVc2UgbGlrZToKKworICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGJvZHkgPSB3c2dpbGliLmVycm9yX3Jlc3BvbnNlKAorICAgICAgICAgICAgJzMwMSBNb3ZlZCBQZXJtYW5lbnRseScsICdNb3ZlZCB0byA8YSBocmVmPSIlcyI+JXM8L2E+JworICAgICAgICAgICAgJSAodXJsLCB1cmwpKQorICAgICAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMpCisgICAgICAgIHJldHVybiBbYm9keV0KKworICAgICoqTm90ZToqKiBEZXByZWNhdGVkCisgICAgIiIiCisgICAgaWYgX193YXJuOgorICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgJ3dzZ2lsaWIuZXJyb3JfcmVzcG9uc2UgaXMgZGVwcmVjYXRlZDsgdXNlIHRoZSAnCisgICAgICAgICAgICAnd3NnaV9hcHBsaWNhdGlvbiBtZXRob2Qgb24gYW4gSFRUUEV4Y2VwdGlvbiBvYmplY3QgJworICAgICAgICAgICAgJ2luc3RlYWQnLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgaWYgZGVidWdfbWVzc2FnZSBhbmQgZW52aXJvbi5nZXQoJ3Bhc3RlLmNvbmZpZycsIHt9KS5nZXQoJ2RlYnVnJyk6CisgICAgICAgIG1lc3NhZ2UgKz0gJ1xuXG48IS0tICVzIC0tPicgJSBkZWJ1Z19tZXNzYWdlCisgICAgYm9keSA9IGVycm9yX2JvZHlfcmVzcG9uc2UoZXJyb3JfY29kZSwgbWVzc2FnZSwgX193YXJuPUZhbHNlKQorICAgIGhlYWRlcnMgPSBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyksCisgICAgICAgICAgICAgICAoJ2NvbnRlbnQtbGVuZ3RoJywgc3RyKGxlbihib2R5KSkpXQorICAgIHJldHVybiBlcnJvcl9jb2RlLCBoZWFkZXJzLCBib2R5CisKK2RlZiBlcnJvcl9yZXNwb25zZV9hcHAoZXJyb3JfY29kZSwgbWVzc2FnZSwgZGVidWdfbWVzc2FnZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICBfX3dhcm49VHJ1ZSk6CisgICAgIiIiCisgICAgQW4gYXBwbGljYXRpb24gdGhhdCBlbWl0cyB0aGUgZ2l2ZW4gZXJyb3IgcmVzcG9uc2UuCisKKyAgICAqKk5vdGU6KiogRGVwcmVjYXRlZAorICAgICIiIgorICAgIGlmIF9fd2FybjoKKyAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICd3c2dpbGliLmVycm9yX3Jlc3BvbnNlX2FwcCBpcyBkZXByZWNhdGVkOyB1c2UgdGhlICcKKyAgICAgICAgICAgICd3c2dpX2FwcGxpY2F0aW9uIG1ldGhvZCBvbiBhbiBIVFRQRXhjZXB0aW9uIG9iamVjdCAnCisgICAgICAgICAgICAnaW5zdGVhZCcsIERlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICBkZWYgYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGJvZHkgPSBlcnJvcl9yZXNwb25zZSgKKyAgICAgICAgICAgIGVudmlyb24sIGVycm9yX2NvZGUsIG1lc3NhZ2UsCisgICAgICAgICAgICBkZWJ1Z19tZXNzYWdlPWRlYnVnX21lc3NhZ2UsIF9fd2Fybj1GYWxzZSkKKyAgICAgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzKQorICAgICAgICByZXR1cm4gW2JvZHldCisgICAgcmV0dXJuIGFwcGxpY2F0aW9uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvc2Vzc2lvbi5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS9zZXNzaW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlMjA4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvc2Vzc2lvbi5weQpAQCAtMCwwICsxLDM0NiBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCisiIiIKK0NyZWF0ZXMgYSBzZXNzaW9uIG9iamVjdCBpbiB5b3VyIFdTR0kgZW52aXJvbm1lbnQuCisKK1VzZSBsaWtlOgorCisuLmNvZGUtYmxvY2s6OiBQeXRob24KKworICAgIGVudmlyb25bJ3Bhc3RlLnNlc3Npb24uZmFjdG9yeSddKCkKKworVGhpcyB3aWxsIHJldHVybiBhIGRpY3Rpb25hcnkuICBUaGUgY29udGVudHMgb2YgdGhpcyBkaWN0aW9uYXJ5IHdpbGwKK2JlIHNhdmVkIHRvIGRpc2sgd2hlbiB0aGUgcmVxdWVzdCBpcyBjb21wbGV0ZWQuICBUaGUgc2Vzc2lvbiB3aWxsIGJlCitjcmVhdGVkIHdoZW4geW91IGZpcnN0IGZldGNoIHRoZSBzZXNzaW9uIGRpY3Rpb25hcnksIGFuZCBhIGNvb2tpZSB3aWxsCitiZSBzZW50IGluIHRoYXQgY2FzZS4gIFRoZXJlJ3MgY3VycmVudCBubyB3YXkgdG8gdXNlIHNlc3Npb25zIHdpdGhvdXQKK2Nvb2tpZXMsIGFuZCB0aGVyZSdzIG5vIHdheSB0byBkZWxldGUgYSBzZXNzaW9uIGV4Y2VwdCB0byBjbGVhciBpdHMKK2RhdGEuCisKK0BAOiBUaGlzIGRvZXNuJ3QgZG8gYW55IGxvY2tpbmcsIGFuZCBtYXkgY2F1c2UgcHJvYmxlbXMgd2hlbiBhIHNpbmdsZQorc2Vzc2lvbiBpcyBhY2Nlc3NlZCBjb25jdXJyZW50bHkuICBBbHNvLCBpdCBsb2FkcyBhbmQgc2F2ZXMgdGhlCitzZXNzaW9uIGZvciBlYWNoIHJlcXVlc3QsIHdpdGggbm8gY2FjaGluZy4gIEFsc28sIHNlc3Npb25zIGFyZW4ndAorZXhwaXJlZC4KKyIiIgorCit0cnk6CisgICAgIyBQeXRob24gMworICAgIGZyb20gaHR0cC5jb29raWVzIGltcG9ydCBTaW1wbGVDb29raWUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFB5dGhvbiAyCisgICAgZnJvbSBDb29raWUgaW1wb3J0IFNpbXBsZUNvb2tpZQoraW1wb3J0IHRpbWUKK2ltcG9ydCByYW5kb20KK2ltcG9ydCBvcworaW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgc2l4CitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGVtcGZpbGUKKwordHJ5OgorICAgIGltcG9ydCBjUGlja2xlCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IHBpY2tsZSBhcyBjUGlja2xlCit0cnk6CisgICAgZnJvbSBoYXNobGliIGltcG9ydCBtZDUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIG1kNSBpbXBvcnQgbWQ1Citmcm9tIHBhc3RlIGltcG9ydCB3c2dpbGliCitmcm9tIHBhc3RlIGltcG9ydCByZXF1ZXN0CisKK2NsYXNzIFNlc3Npb25NaWRkbGV3YXJlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwbGljYXRpb24sIGdsb2JhbF9jb25mPU5vbmUsICoqZmFjdG9yeV9rdyk6CisgICAgICAgIHNlbGYuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbgorICAgICAgICBzZWxmLmZhY3Rvcnlfa3cgPSBmYWN0b3J5X2t3CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzZXNzaW9uX2ZhY3RvcnkgPSBTZXNzaW9uRmFjdG9yeShlbnZpcm9uLCAqKnNlbGYuZmFjdG9yeV9rdykKKyAgICAgICAgZW52aXJvblsncGFzdGUuc2Vzc2lvbi5mYWN0b3J5J10gPSBzZXNzaW9uX2ZhY3RvcnkKKyAgICAgICAgcmVtZW1iZXJfaGVhZGVycyA9IFtdCisKKyAgICAgICAgZGVmIHNlc3Npb25fc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgIGlmIG5vdCBzZXNzaW9uX2ZhY3RvcnkuY3JlYXRlZDoKKyAgICAgICAgICAgICAgICByZW1lbWJlcl9oZWFkZXJzWzpdID0gW3N0YXR1cywgaGVhZGVyc10KKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzKQorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoc2Vzc2lvbl9mYWN0b3J5LnNldF9jb29raWVfaGVhZGVyKCkpCisgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbykKKworICAgICAgICBhcHBfaXRlciA9IHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgc2Vzc2lvbl9zdGFydF9yZXNwb25zZSkKKyAgICAgICAgZGVmIHN0YXJ0KCk6CisgICAgICAgICAgICBpZiBzZXNzaW9uX2ZhY3RvcnkuY3JlYXRlZCBhbmQgcmVtZW1iZXJfaGVhZGVyczoKKyAgICAgICAgICAgICAgICAjIFRyaWNreSBiYXN0YXJkIHVzZWQgdGhlIHNlc3Npb24gYWZ0ZXIgc3RhcnRfcmVzcG9uc2UKKyAgICAgICAgICAgICAgICBzdGF0dXMsIGhlYWRlcnMgPSByZW1lbWJlcl9oZWFkZXJzCisgICAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoc2Vzc2lvbl9mYWN0b3J5LnNldF9jb29raWVfaGVhZGVyKCkpCisgICAgICAgICAgICAgICAgZXhjID0gVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIllvdSBjYW5ub3QgZ2V0IHRoZSBzZXNzaW9uIGFmdGVyIGNvbnRlbnQgZnJvbSB0aGUgIgorICAgICAgICAgICAgICAgICAgICAiYXBwX2l0ZXIgaGFzIGJlZW4gcmV0dXJuZWQiKQorICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgKGV4Yy5fX2NsYXNzX18sIGV4YywgTm9uZSkpCisgICAgICAgIGRlZiBjbG9zZSgpOgorICAgICAgICAgICAgaWYgc2Vzc2lvbl9mYWN0b3J5LnVzZWQ6CisgICAgICAgICAgICAgICAgc2Vzc2lvbl9mYWN0b3J5LmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHdzZ2lsaWIuYWRkX3N0YXJ0X2Nsb3NlKGFwcF9pdGVyLCBzdGFydCwgY2xvc2UpCisKKworY2xhc3MgU2Vzc2lvbkZhY3Rvcnkob2JqZWN0KToKKworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb24sIGNvb2tpZV9uYW1lPSdfU0lEXycsCisgICAgICAgICAgICAgICAgIHNlc3Npb25fY2xhc3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgc2Vzc2lvbl9leHBpcmF0aW9uPTYwKjEyLCAjIGluIG1pbnV0ZXMKKyAgICAgICAgICAgICAgICAgKipzZXNzaW9uX2NsYXNzX2t3KToKKworICAgICAgICBzZWxmLmNyZWF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLnVzZWQgPSBGYWxzZQorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisgICAgICAgIHNlbGYuY29va2llX25hbWUgPSBjb29raWVfbmFtZQorICAgICAgICBzZWxmLnNlc3Npb24gPSBOb25lCisgICAgICAgIHNlbGYuc2Vzc2lvbl9jbGFzcyA9IHNlc3Npb25fY2xhc3Mgb3IgRmlsZVNlc3Npb24KKyAgICAgICAgc2VsZi5zZXNzaW9uX2NsYXNzX2t3ID0gc2Vzc2lvbl9jbGFzc19rdworCisgICAgICAgIHNlbGYuZXhwaXJhdGlvbiA9IHNlc3Npb25fZXhwaXJhdGlvbgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICBzZWxmLnVzZWQgPSBUcnVlCisgICAgICAgIGlmIHNlbGYuc2Vzc2lvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnNlc3Npb24uZGF0YSgpCisgICAgICAgIGNvb2tpZXMgPSByZXF1ZXN0LmdldF9jb29raWVzKHNlbGYuZW52aXJvbikKKyAgICAgICAgc2Vzc2lvbiA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5jb29raWVfbmFtZSBpbiBjb29raWVzOgorICAgICAgICAgICAgc2VsZi5zaWQgPSBjb29raWVzW3NlbGYuY29va2llX25hbWVdLnZhbHVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2Vzc2lvbiA9IHNlbGYuc2Vzc2lvbl9jbGFzcyhzZWxmLnNpZCwgY3JlYXRlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipzZWxmLnNlc3Npb25fY2xhc3Nfa3cpCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgIyBJbnZhbGlkIFNJRAorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgaWYgc2Vzc2lvbiBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5jcmVhdGVkID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5zaWQgPSBzZWxmLm1ha2Vfc2lkKCkKKyAgICAgICAgICAgIHNlc3Npb24gPSBzZWxmLnNlc3Npb25fY2xhc3Moc2VsZi5zaWQsIGNyZWF0ZT1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnNlbGYuc2Vzc2lvbl9jbGFzc19rdykKKyAgICAgICAgc2Vzc2lvbi5jbGVhbl91cCgpCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKyAgICAgICAgcmV0dXJuIHNlc3Npb24uZGF0YSgpCisKKyAgICBkZWYgaGFzX3Nlc3Npb24oc2VsZik6CisgICAgICAgIGlmIHNlbGYuc2Vzc2lvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGNvb2tpZXMgPSByZXF1ZXN0LmdldF9jb29raWVzKHNlbGYuZW52aXJvbikKKyAgICAgICAgaWYgY29va2llcy5oYXNfa2V5KHNlbGYuY29va2llX25hbWUpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgbWFrZV9zaWQoc2VsZik6CisgICAgICAgICMgQEA6IG5lZWQgYmV0dGVyIGFsZ29yaXRobQorICAgICAgICByZXR1cm4gKCcnLmpvaW4oWyclMDJkJyAlIHggZm9yIHggaW4gdGltZS5sb2NhbHRpbWUodGltZS50aW1lKCkpWzo2XV0pCisgICAgICAgICAgICAgICAgKyAnLScgKyBzZWxmLnVuaXF1ZV9pZCgpKQorCisgICAgZGVmIHVuaXF1ZV9pZChzZWxmLCBmb3Jfb2JqZWN0PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGVzIGFuIG9wYXF1ZSwgaWRlbnRpZmllciBzdHJpbmcgdGhhdCBpcyBwcmFjdGljYWxseQorICAgICAgICBndWFyYW50ZWVkIHRvIGJlIHVuaXF1ZS4gIElmIGFuIG9iamVjdCBpcyBwYXNzZWQsIHRoZW4gaXRzCisgICAgICAgIGlkKCkgaXMgaW5jb3Jwb3JhdGVkIGludG8gdGhlIGdlbmVyYXRpb24uICBSZWxpZXMgb24gbWQ1IGFuZAorICAgICAgICByZXR1cm5zIGEgMzIgY2hhcmFjdGVyIGxvbmcgc3RyaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgciA9IFt0aW1lLnRpbWUoKSwgcmFuZG9tLnJhbmRvbSgpXQorICAgICAgICBpZiBoYXNhdHRyKG9zLCAndGltZXMnKToKKyAgICAgICAgICAgIHIuYXBwZW5kKG9zLnRpbWVzKCkpCisgICAgICAgIGlmIGZvcl9vYmplY3QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByLmFwcGVuZChpZChmb3Jfb2JqZWN0KSkKKyAgICAgICAgY29udGVudCA9IHN0cihyKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgbWQ1X2hhc2ggPSBtZDUoY29udGVudCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIG1kNV9oYXNoLmhleGRpZ2VzdCgpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICMgT2xkZXIgdmVyc2lvbnMgb2YgUHl0aG9uIGRpZG4ndCBoYXZlIGhleGRpZ2VzdCwgc28gd2UnbGwKKyAgICAgICAgICAgICMgZG8gaXQgbWFudWFsbHkKKyAgICAgICAgICAgIGhleGRpZ2VzdCA9IFtdCisgICAgICAgICAgICBmb3IgY2hhciBpbiBtZDVfaGFzaC5kaWdlc3QoKToKKyAgICAgICAgICAgICAgICBoZXhkaWdlc3QuYXBwZW5kKCclMDJ4JyAlIG9yZChjaGFyKSkKKyAgICAgICAgICAgIHJldHVybiAnJy5qb2luKGhleGRpZ2VzdCkKKworICAgIGRlZiBzZXRfY29va2llX2hlYWRlcihzZWxmKToKKyAgICAgICAgYyA9IFNpbXBsZUNvb2tpZSgpCisgICAgICAgIGNbc2VsZi5jb29raWVfbmFtZV0gPSBzZWxmLnNpZAorICAgICAgICBjW3NlbGYuY29va2llX25hbWVdWydwYXRoJ10gPSAnLycKKworICAgICAgICBnbXRfZXhwaXJhdGlvbl90aW1lID0gdGltZS5nbXRpbWUodGltZS50aW1lKCkgKyAoc2VsZi5leHBpcmF0aW9uICogNjApKQorICAgICAgICBjW3NlbGYuY29va2llX25hbWVdWydleHBpcmVzJ10gPSB0aW1lLnN0cmZ0aW1lKCIlYSwgJWQtJWItJVkgJUg6JU06JVMgR01UIiwgZ210X2V4cGlyYXRpb25fdGltZSkKKworICAgICAgICBuYW1lLCB2YWx1ZSA9IHN0cihjKS5zcGxpdCgnOiAnLCAxKQorICAgICAgICByZXR1cm4gKG5hbWUsIHZhbHVlKQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnNlc3Npb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNlc3Npb24uY2xvc2UoKQorCisKK2xhc3RfY2xlYW51cCA9IE5vbmUKK2NsZWFuaW5nX3VwID0gRmFsc2UKK2NsZWFudXBfY3ljbGUgPSBkYXRldGltZS50aW1lZGVsdGEoc2Vjb25kcz0xNSo2MCkgIzE1IG1pbgorCitjbGFzcyBGaWxlU2Vzc2lvbihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNpZCwgY3JlYXRlPUZhbHNlLCBzZXNzaW9uX2ZpbGVfcGF0aD10ZW1wZmlsZS5nZXR0ZW1wZGlyKCksCisgICAgICAgICAgICAgICAgIGNobW9kPU5vbmUsCisgICAgICAgICAgICAgICAgIGV4cGlyYXRpb249Mjg4MCwgIyBpbiBtaW51dGVzOiA0OCBob3VycworICAgICAgICAgICAgICAgICApOgorICAgICAgICBpZiBjaG1vZCBhbmQgaXNpbnN0YW5jZShjaG1vZCwgKHNpeC5iaW5hcnlfdHlwZSwgc2l4LnRleHRfdHlwZSkpOgorICAgICAgICAgICAgY2htb2QgPSBpbnQoY2htb2QsIDgpCisgICAgICAgIHNlbGYuY2htb2QgPSBjaG1vZAorICAgICAgICBpZiBub3Qgc2lkOgorICAgICAgICAgICAgIyBJbnZhbGlkLi4uCisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcgorICAgICAgICBzZWxmLnNlc3Npb25fZmlsZV9wYXRoID0gc2Vzc2lvbl9maWxlX3BhdGgKKyAgICAgICAgc2VsZi5zaWQgPSBzaWQKKyAgICAgICAgaWYgbm90IGNyZWF0ZToKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLmZpbGVuYW1lKCkpOgorICAgICAgICAgICAgICAgIHJhaXNlIEtleUVycm9yCisgICAgICAgIHNlbGYuX2RhdGEgPSBOb25lCisKKyAgICAgICAgc2VsZi5leHBpcmF0aW9uID0gZXhwaXJhdGlvbgorCisKKyAgICBkZWYgZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5zZXNzaW9uX2ZpbGVfcGF0aCwgc2VsZi5zaWQpCisKKyAgICBkZWYgZGF0YShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9kYXRhCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYuZmlsZW5hbWUoKSk6CisgICAgICAgICAgICBmID0gb3BlbihzZWxmLmZpbGVuYW1lKCksICdyYicpCisgICAgICAgICAgICBzZWxmLl9kYXRhID0gY1BpY2tsZS5sb2FkKGYpCisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2RhdGEgPSB7fQorICAgICAgICByZXR1cm4gc2VsZi5fZGF0YQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZmlsZW5hbWUgPSBzZWxmLmZpbGVuYW1lKCkKKyAgICAgICAgICAgIGV4aXN0cyA9IG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKQorICAgICAgICAgICAgaWYgbm90IHNlbGYuX2RhdGE6CisgICAgICAgICAgICAgICAgaWYgZXhpc3RzOgorICAgICAgICAgICAgICAgICAgICBvcy51bmxpbmsoZmlsZW5hbWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGYgPSBvcGVuKGZpbGVuYW1lLCAnd2InKQorICAgICAgICAgICAgICAgIGNQaWNrbGUuZHVtcChzZWxmLl9kYXRhLCBmKQorICAgICAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAgICAgIGlmIG5vdCBleGlzdHMgYW5kIHNlbGYuY2htb2Q6CisgICAgICAgICAgICAgICAgICAgIG9zLmNobW9kKGZpbGVuYW1lLCBzZWxmLmNobW9kKQorCisgICAgZGVmIF9jbGVhbl91cChzZWxmKToKKyAgICAgICAgZ2xvYmFsIGNsZWFuaW5nX3VwCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4cF90aW1lID0gZGF0ZXRpbWUudGltZWRlbHRhKHNlY29uZHM9c2VsZi5leHBpcmF0aW9uKjYwKQorICAgICAgICAgICAgbm93ID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkKKworICAgICAgICAgICAgI09wZW4gZXZlcnkgc2Vzc2lvbiBhbmQgY2hlY2sgdGhhdCBpdCBpc24ndCB0b28gb2xkCisgICAgICAgICAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2FsayhzZWxmLnNlc3Npb25fZmlsZV9wYXRoKToKKyAgICAgICAgICAgICAgICBmb3IgZiBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2xlYW5fdXBfZmlsZShmLCBleHBfdGltZT1leHBfdGltZSwgbm93PW5vdykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGNsZWFuaW5nX3VwID0gRmFsc2UKKworICAgIGRlZiBfY2xlYW5fdXBfZmlsZShzZWxmLCBmLCBleHBfdGltZSwgbm93KToKKyAgICAgICAgdCA9IGYuc3BsaXQoIi0iKQorICAgICAgICBpZiBsZW4odCkgIT0gMjoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0ID0gdFswXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZXNzX3RpbWUgPSBkYXRldGltZS5kYXRldGltZSgKKyAgICAgICAgICAgICAgICAgICAgaW50KHRbMDo0XSksCisgICAgICAgICAgICAgICAgICAgIGludCh0WzQ6Nl0pLAorICAgICAgICAgICAgICAgICAgICBpbnQodFs2OjhdKSwKKyAgICAgICAgICAgICAgICAgICAgaW50KHRbODoxMF0pLAorICAgICAgICAgICAgICAgICAgICBpbnQodFsxMDoxMl0pLAorICAgICAgICAgICAgICAgICAgICBpbnQodFsxMjoxNF0pKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgUHJvYmFibHkgbm90IGEgc2Vzc2lvbiBmaWxlIGF0IGFsbAorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgc2Vzc190aW1lICsgZXhwX3RpbWUgPCBub3c6CisgICAgICAgICAgICBvcy5yZW1vdmUob3MucGF0aC5qb2luKHNlbGYuc2Vzc2lvbl9maWxlX3BhdGgsIGYpKQorCisgICAgZGVmIGNsZWFuX3VwKHNlbGYpOgorICAgICAgICBnbG9iYWwgbGFzdF9jbGVhbnVwLCBjbGVhbnVwX2N5Y2xlLCBjbGVhbmluZ191cAorICAgICAgICBub3cgPSBkYXRldGltZS5kYXRldGltZS5ub3coKQorCisgICAgICAgIGlmIGNsZWFuaW5nX3VwOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgbm90IGxhc3RfY2xlYW51cCBvciBsYXN0X2NsZWFudXAgKyBjbGVhbnVwX2N5Y2xlIDwgbm93OgorICAgICAgICAgICAgaWYgbm90IGNsZWFuaW5nX3VwOgorICAgICAgICAgICAgICAgIGNsZWFuaW5nX3VwID0gVHJ1ZQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgbGFzdF9jbGVhbnVwID0gbm93CisgICAgICAgICAgICAgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLl9jbGVhbl91cCkKKyAgICAgICAgICAgICAgICAgICAgdC5zdGFydCgpCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICAjIE5vcm1hbGx5IF9jbGVhbl91cCBzaG91bGQgc2V0IGNsZWFuaW5nX3VwCisgICAgICAgICAgICAgICAgICAgICMgdG8gZmFsc2UsIGJ1dCBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyBzdGFydGluZworICAgICAgICAgICAgICAgICAgICAjIGl0Li4uCisgICAgICAgICAgICAgICAgICAgIGNsZWFuaW5nX3VwID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKworY2xhc3MgX05vRGVmYXVsdChvYmplY3QpOgorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8ZHluYW1pYyBkZWZhdWx0PicKK05vRGVmYXVsdCA9IF9Ob0RlZmF1bHQoKQorCitkZWYgbWFrZV9zZXNzaW9uX21pZGRsZXdhcmUoCisgICAgYXBwLCBnbG9iYWxfY29uZiwKKyAgICBzZXNzaW9uX2V4cGlyYXRpb249Tm9EZWZhdWx0LAorICAgIGV4cGlyYXRpb249Tm9EZWZhdWx0LAorICAgIGNvb2tpZV9uYW1lPU5vRGVmYXVsdCwKKyAgICBzZXNzaW9uX2ZpbGVfcGF0aD1Ob0RlZmF1bHQsCisgICAgY2htb2Q9Tm9EZWZhdWx0KToKKyAgICAiIiIKKyAgICBBZGRzIGEgbWlkZGxld2FyZSB0aGF0IGhhbmRsZXMgc2Vzc2lvbnMgZm9yIHlvdXIgYXBwbGljYXRpb25zLgorICAgIFRoZSBzZXNzaW9uIGlzIGEgcGVyaXN0ZW50IGRpY3Rpb25hcnkuICBUbyBnZXQgdGhpcyBkaWN0aW9uYXJ5CisgICAgaW4geW91ciBhcHBsaWNhdGlvbiwgdXNlIGBgZW52aXJvblsncGFzdGUuc2Vzc2lvbi5mYWN0b3J5J10oKWBgCisgICAgd2hpY2ggcmV0dXJucyB0aGlzIHBlcnNpc3RlbnQgZGljdGlvbmFyeS4KKworICAgIENvbmZpZ3VyYXRpb246CisKKyAgICAgIHNlc3Npb25fZXhwaXJhdGlvbjoKKyAgICAgICAgICBUaGUgdGltZSBlYWNoIHNlc3Npb24gbGl2ZXMsIGluIG1pbnV0ZXMuICBUaGlzIGNvbnRyb2xzCisgICAgICAgICAgdGhlIGNvb2tpZSBleHBpcmF0aW9uLiAgRGVmYXVsdCAxMiBob3Vycy4KKworICAgICAgZXhwaXJhdGlvbjoKKyAgICAgICAgICBUaGUgdGltZSBlYWNoIHNlc3Npb24gbGl2ZXMgb24gZGlzay4gIE9sZCBzZXNzaW9ucyBhcmUKKyAgICAgICAgICBjdWxsZWQgZnJvbSBkaXNrIGJhc2VkIG9uIHRoaXMuICBEZWZhdWx0IDQ4IGhvdXJzLgorCisgICAgICBjb29raWVfbmFtZToKKyAgICAgICAgICBUaGUgY29va2llIG5hbWUgdXNlZCB0byB0cmFjayB0aGUgc2Vzc2lvbi4gIFVzZSBkaWZmZXJlbnQKKyAgICAgICAgICBuYW1lcyB0byBhdm9pZCBzZXNzaW9uIGNsYXNoZXMuCisKKyAgICAgIHNlc3Npb25fZmlsZV9wYXRoOgorICAgICAgICAgIFNlc3Npb25zIGFyZSBwdXQgaW4gdGhpcyBsb2NhdGlvbiwgZGVmYXVsdCAvdG1wLgorCisgICAgICBjaG1vZDoKKyAgICAgICAgICBUaGUgb2N0YWwgY2htb2QgeW91IHdhbnQgdG8gYXBwbHkgdG8gbmV3IHNlc3Npb25zIChlLmcuLCA2NjAKKyAgICAgICAgICB0byBtYWtlIHRoZSBzZXNzaW9ucyBncm91cCByZWFkYWJsZS93cml0YWJsZSkKKworICAgIEVhY2ggb2YgdGhlc2UgYWxzbyB0YWtlcyBmcm9tIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvbi4gIGNvb2tpZV9uYW1lCisgICAgYW5kIGNobW9kIHRha2UgZnJvbSBzZXNzaW9uX2Nvb2tpZV9uYW1lIGFuZCBzZXNzaW9uX2NobW9kCisgICAgIiIiCisgICAgaWYgc2Vzc2lvbl9leHBpcmF0aW9uIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgc2Vzc2lvbl9leHBpcmF0aW9uID0gZ2xvYmFsX2NvbmYuZ2V0KCdzZXNzaW9uX2V4cGlyYXRpb24nLCA2MCoxMikKKyAgICBzZXNzaW9uX2V4cGlyYXRpb24gPSBpbnQoc2Vzc2lvbl9leHBpcmF0aW9uKQorICAgIGlmIGV4cGlyYXRpb24gaXMgTm9EZWZhdWx0OgorICAgICAgICBleHBpcmF0aW9uID0gZ2xvYmFsX2NvbmYuZ2V0KCdleHBpcmF0aW9uJywgNjAqNDgpCisgICAgZXhwaXJhdGlvbiA9IGludChleHBpcmF0aW9uKQorICAgIGlmIGNvb2tpZV9uYW1lIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgY29va2llX25hbWUgPSBnbG9iYWxfY29uZi5nZXQoJ3Nlc3Npb25fY29va2llX25hbWUnLCAnX1NJRF8nKQorICAgIGlmIHNlc3Npb25fZmlsZV9wYXRoIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgc2Vzc2lvbl9maWxlX3BhdGggPSBnbG9iYWxfY29uZi5nZXQoJ3Nlc3Npb25fZmlsZV9wYXRoJywgJy90bXAnKQorICAgIGlmIGNobW9kIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgY2htb2QgPSBnbG9iYWxfY29uZi5nZXQoJ3Nlc3Npb25fY2htb2QnLCBOb25lKQorICAgIHJldHVybiBTZXNzaW9uTWlkZGxld2FyZSgKKyAgICAgICAgYXBwLCBzZXNzaW9uX2V4cGlyYXRpb249c2Vzc2lvbl9leHBpcmF0aW9uLAorICAgICAgICBleHBpcmF0aW9uPWV4cGlyYXRpb24sIGNvb2tpZV9uYW1lPWNvb2tpZV9uYW1lLAorICAgICAgICBzZXNzaW9uX2ZpbGVfcGF0aD1zZXNzaW9uX2ZpbGVfcGF0aCwgY2htb2Q9Y2htb2QpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdHJhbnNhY3Rpb24ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdHJhbnNhY3Rpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM0N2FjZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS90cmFuc2FjdGlvbi5weQpAQCAtMCwwICsxLDEyMCBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIyAoYykgMjAwNSBDbGFyayBDLiBFdmFucworIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitNaWRkbGV3YXJlIHJlbGF0ZWQgdG8gdHJhbnNhY3Rpb25zIGFuZCBkYXRhYmFzZSBjb25uZWN0aW9ucy4KKworQXQgdGhpcyB0aW1lIGl0IGlzIHZlcnkgYmFzaWM7IGJ1dCB3aWxsIGV2ZW50dWFsbHkgc3Byb3V0IGFsbCB0aGF0Cit0d28tcGhhc2UgY29tbWl0IGdvb2RuZXNzIHRoYXQgSSBkb24ndCBuZWVkLgorCisuLiBub3RlOjoKKworICAgVGhpcyBpcyBleHBlcmltZW50YWwsIGFuZCB3aWxsIGNoYW5nZSBpbiB0aGUgZnV0dXJlLgorIiIiCitmcm9tIHBhc3RlLmh0dHBleGNlcHRpb25zIGltcG9ydCBIVFRQRXhjZXB0aW9uCitmcm9tIHdzZ2lsaWIgaW1wb3J0IGNhdGNoX2Vycm9ycworCitjbGFzcyBUcmFuc2FjdGlvbk1hbmFnZXJNaWRkbGV3YXJlKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwbGljYXRpb24pOgorICAgICAgICBzZWxmLmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb24KKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGVudmlyb25bJ3Bhc3RlLnRyYW5zYWN0aW9uX21hbmFnZXInXSA9IG1hbmFnZXIgPSBNYW5hZ2VyKCkKKyAgICAgICAgIyBUaGlzIG1ha2VzIHN1cmUgbm90aGluZyBlbHNlIHRyYXBzIHVuZXhwZWN0ZWQgZXhjZXB0aW9uczoKKyAgICAgICAgZW52aXJvblsncGFzdGUudGhyb3dfZXJyb3JzJ10gPSBUcnVlCisgICAgICAgIHJldHVybiBjYXRjaF9lcnJvcnMoc2VsZi5hcHBsaWNhdGlvbiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY2FsbGJhY2s9bWFuYWdlci5lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBva19jYWxsYmFjaz1tYW5hZ2VyLmZpbmlzaCkKKworY2xhc3MgTWFuYWdlcihvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmFib3J0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLnRyYW5zYWN0aW9ucyA9IFtdCisKKyAgICBkZWYgYWJvcnQoc2VsZik6CisgICAgICAgIHNlbGYuYWJvcnRlZCA9IFRydWUKKworICAgIGRlZiBlcnJvcihzZWxmLCBleGNfaW5mbyk6CisgICAgICAgIHNlbGYuYWJvcnRlZCA9IFRydWUKKyAgICAgICAgc2VsZi5maW5pc2goKQorCisgICAgZGVmIGZpbmlzaChzZWxmKToKKyAgICAgICAgZm9yIHRyYW5zIGluIHNlbGYudHJhbnNhY3Rpb25zOgorICAgICAgICAgICAgaWYgc2VsZi5hYm9ydGVkOgorICAgICAgICAgICAgICAgIHRyYW5zLnJvbGxiYWNrKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdHJhbnMuY29tbWl0KCkKKworCitjbGFzcyBDb25uZWN0aW9uRmFjdG9yeShvYmplY3QpOgorICAgICIiIgorICAgIFByb3ZpZGVzIGEgY2FsbGFibGUgaW50ZXJmYWNlIGZvciBjb25uZWN0aW5nIHRvIEFEQkFQSSBkYXRhYmFzZXMgaW4KKyAgICBhIFdTR0kgc3R5bGUgKHVzaW5nIHRoZSBlbnZpcm9ubWVudCkuICBNb3JlIGFkdmFuY2VkIGNvbm5lY3Rpb24KKyAgICBmYWN0b3JpZXMgbWlnaHQgdXNlIHRoZSBSRU1PVEVfVVNFUiBhbmQvb3Igb3RoZXIgZW52aXJvbm1lbnQKKyAgICB2YXJpYWJsZXMgdG8gbWFrZSB0aGUgY29ubmVjdGlvbiByZXR1cm5lZCBkZXBlbmQgdXBvbiB0aGUgcmVxdWVzdC4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kdWxlLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAjYXNzZXJ0IGdldGF0dHIobW9kdWxlLCd0aHJlYWRzYWZ0ZXknLDApID4gMAorICAgICAgICBzZWxmLm1vZHVsZSA9IG1vZHVsZQorICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzCisgICAgICAgIHNlbGYua3dhcmdzID0ga3dhcmdzCisKKyAgICAgICAgIyBkZWFsIHdpdGggZGF0YWJhc2Ugc3RyaW5nIHF1b3RpbmcgaXNzdWVzCisgICAgICAgIHNlbGYucXVvdGUgPSBsYW1iZGEgczogIiclcyciICUgcy5yZXBsYWNlKCInIiwiJyciKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYubW9kdWxlLCdQZ1F1b3RlU3RyaW5nJyk6CisgICAgICAgICAgICBzZWxmLnF1b3RlID0gc2VsZi5tb2R1bGUuUGdRdW90ZVN0cmluZworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb249Tm9uZSk6CisgICAgICAgIGNvbm4gPSBzZWxmLm1vZHVsZS5jb25uZWN0KCpzZWxmLmFyZ3MsICoqc2VsZi5rd2FyZ3MpCisgICAgICAgIGNvbm4uX19kaWN0X19bJ21vZHVsZSddID0gc2VsZi5tb2R1bGUKKyAgICAgICAgY29ubi5fX2RpY3RfX1sncXVvdGUnXSA9IHNlbGYucXVvdGUKKyAgICAgICAgcmV0dXJuIGNvbm4KKworZGVmIEJhc2ljVHJhbnNhY3Rpb25IYW5kbGVyKGFwcGxpY2F0aW9uLCBmYWN0b3J5KToKKyAgICAiIiIKKyAgICBQcm92aWRlcyBhIHNpbXBsZSBtZWNoYW5pc20gZm9yIHN0YXJ0aW5nIGEgdHJhbnNhY3Rpb24gYmFzZWQgb24gdGhlCisgICAgZmFjdG9yeTsgYW5kIGZvciBlaXRoZXIgY29tbWl0dGluZyBvciByb2xsaW5nIGJhY2sgdGhlIHRyYW5zYWN0aW9uCisgICAgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHQuICBJdCBjaGVja3MgZm9yIHRoZSByZXNwb25zZSdzIGN1cnJlbnQKKyAgICBzdGF0dXMgY29kZSBlaXRoZXIgdGhyb3VnaCB0aGUgbGF0ZXN0IGNhbGwgdG8gc3RhcnRfcmVzcG9uc2U7IG9yCisgICAgdGhyb3VnaCBhIEhUVFBFeGNlcHRpb24ncyBjb2RlLiAgSWYgaXQgaXMgYSAxMDAsIDIwMCwgb3IgMzAwOyB0aGUKKyAgICB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQ7IG90aGVyd2lzZSBpdCBpcyByb2xsZWQgYmFjay4KKyAgICAiIiIKKyAgICBkZWYgYmFzaWNfdHJhbnNhY3Rpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBjb25uID0gZmFjdG9yeShlbnZpcm9uKQorICAgICAgICBlbnZpcm9uWydwYXN0ZS5jb25uZWN0aW9uJ10gPSBjb25uCisgICAgICAgIHNob3VsZF9jb21taXQgPSBbNTAwXQorICAgICAgICBkZWYgZmluYWxpemVyKGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgaWYgZXhjX2luZm86CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleGNfaW5mb1sxXSwgSFRUUEV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgICAgIHNob3VsZF9jb21taXQuYXBwZW5kKGV4Y19pbmZvWzFdLmNvZGUpCisgICAgICAgICAgICBpZiBzaG91bGRfY29tbWl0LnBvcCgpIDwgNDAwOgorICAgICAgICAgICAgICAgIGNvbm4uY29tbWl0KCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBjb25uLnJvbGxiYWNrKCkKKyAgICAgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgICAgICMgVE9ETzogY2hlY2sgaWYgcm9sbGJhY2sgaGFzIGFscmVhZHkgaGFwcGVuZWQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBjb25uLmNsb3NlKCkKKyAgICAgICAgZGVmIGJhc2ljdHJhbnNfc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbyA9IE5vbmUpOgorICAgICAgICAgICAgc2hvdWxkX2NvbW1pdC5hcHBlbmQoaW50KHN0YXR1cy5zcGxpdCgiICIpWzBdKSkKKyAgICAgICAgICAgIHJldHVybiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvKQorICAgICAgICByZXR1cm4gY2F0Y2hfZXJyb3JzKGFwcGxpY2F0aW9uLCBlbnZpcm9uLCBiYXNpY3RyYW5zX3N0YXJ0X3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsaXplciwgZmluYWxpemVyKQorICAgIHJldHVybiBiYXNpY190cmFuc2FjdGlvbgorCitfX2FsbF9fID0gWydDb25uZWN0aW9uRmFjdG9yeScsICdCYXNpY1RyYW5zYWN0aW9uSGFuZGxlciddCisKK2lmICdfX21haW5fXycgPT0gX19uYW1lX18gYW5kIEZhbHNlOgorICAgIGZyb20gcHlQZ1NRTCBpbXBvcnQgUGdTUUwKKyAgICBmYWN0b3J5ID0gQ29ubmVjdGlvbkZhY3RvcnkoUGdTUUwsIGRhdGFiYXNlPSJ0ZXN0aW5nIikKKyAgICBjb25uID0gZmFjdG9yeSgpCisgICAgY3VyciA9IGNvbm4uY3Vyc29yKCkKKyAgICBjdXJyLmV4ZWN1dGUoIlNFTEVDVCBub3coKSwgJXMiICUgY29ubi5xdW90ZSgiQiduXFwnZ2xlcyIpKQorICAgICh0aW1lLCBiaW5nKSA9IGN1cnIuZmV0Y2hvbmUoKQorICAgIHByaW50KGJpbmcsIHRpbWUpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS90cmFuc2xvZ2dlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS90cmFuc2xvZ2dlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTRlZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3RyYW5zbG9nZ2VyLnB5CkBAIC0wLDAgKzEsMTIyIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK01pZGRsZXdhcmUgZm9yIGxvZ2dpbmcgcmVxdWVzdHMsIHVzaW5nIEFwYWNoZSBjb21iaW5lZCBsb2cgZm9ybWF0CisiIiIKKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzaXgKK2ltcG9ydCB0aW1lCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHF1b3RlCisKK2NsYXNzIFRyYW5zTG9nZ2VyKG9iamVjdCk6CisgICAgIiIiCisgICAgVGhpcyBsb2dnaW5nIG1pZGRsZXdhcmUgd2lsbCBsb2cgYWxsIHJlcXVlc3RzIGFzIHRoZXkgZ28gdGhyb3VnaC4KKyAgICBUaGV5IGFyZSwgYnkgZGVmYXVsdCwgc2VudCB0byBhIGxvZ2dlciBuYW1lZCBgYCd3c2dpJ2BgIGF0IHRoZQorICAgIElORk8gbGV2ZWwuCisKKyAgICBJZiBgYHNldHVwX2NvbnNvbGVfaGFuZGxlcmBgIGlzIHRydWUsIHRoZW4gbWVzc2FnZXMgZm9yIHRoZSBuYW1lZAorICAgIGxvZ2dlciB3aWxsIGJlIHNlbnQgdG8gdGhlIGNvbnNvbGUuCisgICAgIiIiCisKKyAgICBmb3JtYXQgPSAoJyUoUkVNT1RFX0FERFIpcyAtICUoUkVNT1RFX1VTRVIpcyBbJSh0aW1lKXNdICcKKyAgICAgICAgICAgICAgJyIlKFJFUVVFU1RfTUVUSE9EKXMgJShSRVFVRVNUX1VSSSlzICUoSFRUUF9WRVJTSU9OKXMiICcKKyAgICAgICAgICAgICAgJyUoc3RhdHVzKXMgJShieXRlcylzICIlKEhUVFBfUkVGRVJFUilzIiAiJShIVFRQX1VTRVJfQUdFTlQpcyInKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcGxpY2F0aW9uLAorICAgICAgICAgICAgICAgICBsb2dnZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZm9ybWF0PU5vbmUsCisgICAgICAgICAgICAgICAgIGxvZ2dpbmdfbGV2ZWw9bG9nZ2luZy5JTkZPLAorICAgICAgICAgICAgICAgICBsb2dnZXJfbmFtZT0nd3NnaScsCisgICAgICAgICAgICAgICAgIHNldHVwX2NvbnNvbGVfaGFuZGxlcj1UcnVlLAorICAgICAgICAgICAgICAgICBzZXRfbG9nZ2VyX2xldmVsPWxvZ2dpbmcuREVCVUcpOgorICAgICAgICBpZiBmb3JtYXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmZvcm1hdCA9IGZvcm1hdAorICAgICAgICBzZWxmLmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb24KKyAgICAgICAgc2VsZi5sb2dnaW5nX2xldmVsID0gbG9nZ2luZ19sZXZlbAorICAgICAgICBzZWxmLmxvZ2dlcl9uYW1lID0gbG9nZ2VyX25hbWUKKyAgICAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKHNlbGYubG9nZ2VyX25hbWUpCisgICAgICAgICAgICBpZiBzZXR1cF9jb25zb2xlX2hhbmRsZXI6CisgICAgICAgICAgICAgICAgY29uc29sZSA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcigpCisgICAgICAgICAgICAgICAgY29uc29sZS5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQorICAgICAgICAgICAgICAgICMgV2UgbmVlZCB0byBjb250cm9sIHRoZSBleGFjdCBmb3JtYXQ6CisgICAgICAgICAgICAgICAgY29uc29sZS5zZXRGb3JtYXR0ZXIobG9nZ2luZy5Gb3JtYXR0ZXIoJyUobWVzc2FnZSlzJykpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuYWRkSGFuZGxlcihjb25zb2xlKQorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb3BhZ2F0ZSA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZXRfbG9nZ2VyX2xldmVsIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnNldExldmVsKHNldF9sb2dnZXJfbGV2ZWwpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc3RhcnQgPSB0aW1lLmxvY2FsdGltZSgpCisgICAgICAgIHJlcV91cmkgPSBxdW90ZShlbnZpcm9uLmdldCgnU0NSSVBUX05BTUUnLCAnJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGVudmlyb24uZ2V0KCdQQVRIX0lORk8nLCAnJykpCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnKToKKyAgICAgICAgICAgIHJlcV91cmkgKz0gJz8nK2Vudmlyb25bJ1FVRVJZX1NUUklORyddCisgICAgICAgIG1ldGhvZCA9IGVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10KKyAgICAgICAgZGVmIHJlcGxhY2VtZW50X3N0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm89Tm9uZSk6CisgICAgICAgICAgICAjIEBAOiBJZGVhbGx5IHdlIHdvdWxkIGNvdW50IHRoZSBieXRlcyBnb2luZyBieSBpZiBubworICAgICAgICAgICAgIyBjb250ZW50LWxlbmd0aCBoZWFkZXIgd2FzIHByb3ZpZGVkOyBidXQgdGhhdCBkb2VzIGFkZAorICAgICAgICAgICAgIyBzb21lIG92ZXJoZWFkLCBzbyBhdCBsZWFzdCBmb3Igbm93IHdlJ2xsIGJlIGxhenkuCisgICAgICAgICAgICBieXRlcyA9IE5vbmUKKyAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBoZWFkZXJzOgorICAgICAgICAgICAgICAgIGlmIG5hbWUubG93ZXIoKSA9PSAnY29udGVudC1sZW5ndGgnOgorICAgICAgICAgICAgICAgICAgICBieXRlcyA9IHZhbHVlCisgICAgICAgICAgICBzZWxmLndyaXRlX2xvZyhlbnZpcm9uLCBtZXRob2QsIHJlcV91cmksIHN0YXJ0LCBzdGF0dXMsIGJ5dGVzKQorICAgICAgICAgICAgcmV0dXJuIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycykKKyAgICAgICAgcmV0dXJuIHNlbGYuYXBwbGljYXRpb24oZW52aXJvbiwgcmVwbGFjZW1lbnRfc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgd3JpdGVfbG9nKHNlbGYsIGVudmlyb24sIG1ldGhvZCwgcmVxX3VyaSwgc3RhcnQsIHN0YXR1cywgYnl0ZXMpOgorICAgICAgICBpZiBieXRlcyBpcyBOb25lOgorICAgICAgICAgICAgYnl0ZXMgPSAnLScKKyAgICAgICAgaWYgdGltZS5kYXlsaWdodDoKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSB0aW1lLmFsdHpvbmUgLyA2MCAvIDYwICogLTEwMAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG9mZnNldCA9IHRpbWUudGltZXpvbmUgLyA2MCAvIDYwICogLTEwMAorICAgICAgICBpZiBvZmZzZXQgPj0gMDoKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSAiKyUwLjRkIiAlIChvZmZzZXQpCisgICAgICAgIGVsaWYgb2Zmc2V0IDwgMDoKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSAiJTAuNGQiICUgKG9mZnNldCkKKyAgICAgICAgcmVtb3RlX2FkZHIgPSAnLScKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk6CisgICAgICAgICAgICByZW1vdGVfYWRkciA9IGVudmlyb25bJ0hUVFBfWF9GT1JXQVJERURfRk9SJ10KKyAgICAgICAgZWxpZiBlbnZpcm9uLmdldCgnUkVNT1RFX0FERFInKToKKyAgICAgICAgICAgIHJlbW90ZV9hZGRyID0gZW52aXJvblsnUkVNT1RFX0FERFInXQorICAgICAgICBkID0geworICAgICAgICAgICAgJ1JFTU9URV9BRERSJzogcmVtb3RlX2FkZHIsCisgICAgICAgICAgICAnUkVNT1RFX1VTRVInOiBlbnZpcm9uLmdldCgnUkVNT1RFX1VTRVInKSBvciAnLScsCisgICAgICAgICAgICAnUkVRVUVTVF9NRVRIT0QnOiBtZXRob2QsCisgICAgICAgICAgICAnUkVRVUVTVF9VUkknOiByZXFfdXJpLAorICAgICAgICAgICAgJ0hUVFBfVkVSU0lPTic6IGVudmlyb24uZ2V0KCdTRVJWRVJfUFJPVE9DT0wnKSwKKyAgICAgICAgICAgICd0aW1lJzogdGltZS5zdHJmdGltZSgnJWQvJWIvJVk6JUg6JU06JVMgJywgc3RhcnQpICsgb2Zmc2V0LAorICAgICAgICAgICAgJ3N0YXR1cyc6IHN0YXR1cy5zcGxpdChOb25lLCAxKVswXSwKKyAgICAgICAgICAgICdieXRlcyc6IGJ5dGVzLAorICAgICAgICAgICAgJ0hUVFBfUkVGRVJFUic6IGVudmlyb24uZ2V0KCdIVFRQX1JFRkVSRVInLCAnLScpLAorICAgICAgICAgICAgJ0hUVFBfVVNFUl9BR0VOVCc6IGVudmlyb24uZ2V0KCdIVFRQX1VTRVJfQUdFTlQnLCAnLScpLAorICAgICAgICAgICAgfQorICAgICAgICBtZXNzYWdlID0gc2VsZi5mb3JtYXQgJSBkCisgICAgICAgIHNlbGYubG9nZ2VyLmxvZyhzZWxmLmxvZ2dpbmdfbGV2ZWwsIG1lc3NhZ2UpCisKK2RlZiBtYWtlX2ZpbHRlcigKKyAgICBhcHAsIGdsb2JhbF9jb25mLAorICAgIGxvZ2dlcl9uYW1lPSd3c2dpJywKKyAgICBmb3JtYXQ9Tm9uZSwKKyAgICBsb2dnaW5nX2xldmVsPWxvZ2dpbmcuSU5GTywKKyAgICBzZXR1cF9jb25zb2xlX2hhbmRsZXI9VHJ1ZSwKKyAgICBzZXRfbG9nZ2VyX2xldmVsPWxvZ2dpbmcuREVCVUcpOgorICAgIGZyb20gcGFzdGUudXRpbC5jb252ZXJ0ZXJzIGltcG9ydCBhc2Jvb2wKKyAgICBpZiBpc2luc3RhbmNlKGxvZ2dpbmdfbGV2ZWwsIChzaXguYmluYXJ5X3R5cGUsIHNpeC50ZXh0X3R5cGUpKToKKyAgICAgICAgbG9nZ2luZ19sZXZlbCA9IGxvZ2dpbmcuX2xldmVsTmFtZXNbbG9nZ2luZ19sZXZlbF0KKyAgICBpZiBpc2luc3RhbmNlKHNldF9sb2dnZXJfbGV2ZWwsIChzaXguYmluYXJ5X3R5cGUsIHNpeC50ZXh0X3R5cGUpKToKKyAgICAgICAgc2V0X2xvZ2dlcl9sZXZlbCA9IGxvZ2dpbmcuX2xldmVsTmFtZXNbc2V0X2xvZ2dlcl9sZXZlbF0KKyAgICByZXR1cm4gVHJhbnNMb2dnZXIoCisgICAgICAgIGFwcCwKKyAgICAgICAgZm9ybWF0PWZvcm1hdCBvciBOb25lLAorICAgICAgICBsb2dnaW5nX2xldmVsPWxvZ2dpbmdfbGV2ZWwsCisgICAgICAgIGxvZ2dlcl9uYW1lPWxvZ2dlcl9uYW1lLAorICAgICAgICBzZXR1cF9jb25zb2xlX2hhbmRsZXI9YXNib29sKHNldHVwX2NvbnNvbGVfaGFuZGxlciksCisgICAgICAgIHNldF9sb2dnZXJfbGV2ZWw9c2V0X2xvZ2dlcl9sZXZlbCkKKworbWFrZV9maWx0ZXIuX19kb2NfXyA9IFRyYW5zTG9nZ2VyLl9fZG9jX18KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91cmwucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXJsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMDhkNmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXJsLnB5CkBAIC0wLDAgKzEsNDc4IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKKyIiIgorVGhpcyBtb2R1bGUgaW1wbGVtZW50cyBhIGNsYXNzIGZvciBoYW5kbGluZyBVUkxzLgorIiIiCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHBhcnNlX3FzbCwgcXVvdGUsIHVucXVvdGUsIHVybGVuY29kZQoraW1wb3J0IGNnaQorZnJvbSBwYXN0ZSBpbXBvcnQgcmVxdWVzdAoraW1wb3J0IHNpeAorCisjIEltcG9ydGVkIGxhemlseSBmcm9tIEZvcm1FbmNvZGU6Cit2YXJpYWJsZWRlY29kZSA9IE5vbmUKKworX19hbGxfXyA9IFsiVVJMIiwgIkltYWdlIl0KKworZGVmIGh0bWxfcXVvdGUodik6CisgICAgaWYgdiBpcyBOb25lOgorICAgICAgICByZXR1cm4gJycKKyAgICByZXR1cm4gY2dpLmVzY2FwZShzdHIodiksIDEpCisKK2RlZiB1cmxfcXVvdGUodik6CisgICAgaWYgdiBpcyBOb25lOgorICAgICAgICByZXR1cm4gJycKKyAgICByZXR1cm4gcXVvdGUoc3RyKHYpKQorCitkZWYganNfcmVwcih2KToKKyAgICBpZiB2IGlzIE5vbmU6CisgICAgICAgIHJldHVybiAnbnVsbCcKKyAgICBlbGlmIHYgaXMgRmFsc2U6CisgICAgICAgIHJldHVybiAnZmFsc2UnCisgICAgZWxpZiB2IGlzIFRydWU6CisgICAgICAgIHJldHVybiAndHJ1ZScKKyAgICBlbGlmIGlzaW5zdGFuY2UodiwgbGlzdCk6CisgICAgICAgIHJldHVybiAnWyVzXScgJSAnLCAnLmpvaW4obWFwKGpzX3JlcHIsIHYpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBkaWN0KToKKyAgICAgICAgcmV0dXJuICd7JXN9JyAlICcsICcuam9pbigKKyAgICAgICAgICAgIFsnJXM6ICVzJyAlIChqc19yZXByKGtleSksIGpzX3JlcHIodmFsdWUpKQorICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHZdKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBzdHIpOgorICAgICAgICByZXR1cm4gcmVwcih2KQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKKyAgICAgICAgIyBAQDogaG93IGRvIHlvdSBkbyBVbmljb2RlIGxpdGVyYWxzIGluIEphdmFzY3JpcHQ/CisgICAgICAgIHJldHVybiByZXByKHYuZW5jb2RlKCdVVEYtOCcpKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCAoZmxvYXQsIGludCkpOgorICAgICAgICByZXR1cm4gcmVwcih2KQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBsb25nKToKKyAgICAgICAgcmV0dXJuIHJlcHIodikubHN0cmlwKCdMJykKKyAgICBlbGlmIGhhc2F0dHIodiwgJ19fanNfcmVwcl9fJyk6CisgICAgICAgIHJldHVybiB2Ll9fanNfcmVwcl9fKCkKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgIkkgZG9uJ3Qga25vdyBob3cgdG8gdHVybiAlciBpbnRvIGEgSmF2YXNjcmlwdCByZXByZXNlbnRhdGlvbiIKKyAgICAgICAgICAgICUgdikKKworY2xhc3MgVVJMUmVzb3VyY2Uob2JqZWN0KToKKworICAgICIiIgorICAgIFRoaXMgaXMgYW4gYWJzdHJhY3Qgc3VwZXJjbGFzcyBmb3IgZGlmZmVyZW50IGtpbmRzIG9mIFVSTHMKKyAgICAiIiIKKworICAgIGRlZmF1bHRfcGFyYW1zID0ge30KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwsIHZhcnM9Tm9uZSwgYXR0cnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgcGFyYW1zPU5vbmUpOgorICAgICAgICBzZWxmLnVybCA9IHVybCBvciAnLycKKyAgICAgICAgc2VsZi52YXJzID0gdmFycyBvciBbXQorICAgICAgICBzZWxmLmF0dHJzID0gYXR0cnMgb3Ige30KKyAgICAgICAgc2VsZi5wYXJhbXMgPSBzZWxmLmRlZmF1bHRfcGFyYW1zLmNvcHkoKQorICAgICAgICBzZWxmLm9yaWdpbmFsX3BhcmFtcyA9IHBhcmFtcyBvciB7fQorICAgICAgICBpZiBwYXJhbXM6CisgICAgICAgICAgICBzZWxmLnBhcmFtcy51cGRhdGUocGFyYW1zKQorCisgICAgI0BjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2Vudmlyb24oY2xzLCBlbnZpcm9uLCB3aXRoX3F1ZXJ5X3N0cmluZz1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgd2l0aF9wYXRoX2luZm89VHJ1ZSwgc2NyaXB0X25hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIHBhdGhfaW5mbz1Ob25lLCBxdWVyeXN0cmluZz1Ob25lKToKKyAgICAgICAgdXJsID0gcmVxdWVzdC5jb25zdHJ1Y3RfdXJsKAorICAgICAgICAgICAgZW52aXJvbiwgd2l0aF9xdWVyeV9zdHJpbmc9RmFsc2UsCisgICAgICAgICAgICB3aXRoX3BhdGhfaW5mbz13aXRoX3BhdGhfaW5mbywgc2NyaXB0X25hbWU9c2NyaXB0X25hbWUsCisgICAgICAgICAgICBwYXRoX2luZm89cGF0aF9pbmZvKQorICAgICAgICBpZiB3aXRoX3F1ZXJ5X3N0cmluZzoKKyAgICAgICAgICAgIGlmIHF1ZXJ5c3RyaW5nIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgdmFycyA9IHJlcXVlc3QucGFyc2VfcXVlcnlzdHJpbmcoZW52aXJvbikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdmFycyA9IHBhcnNlX3FzbCgKKyAgICAgICAgICAgICAgICAgICAgcXVlcnlzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUsCisgICAgICAgICAgICAgICAgICAgIHN0cmljdF9wYXJzaW5nPUZhbHNlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmFycyA9IE5vbmUKKyAgICAgICAgdiA9IGNscyh1cmwsIHZhcnM9dmFycykKKyAgICAgICAgcmV0dXJuIHYKKworICAgIGZyb21fZW52aXJvbiA9IGNsYXNzbWV0aG9kKGZyb21fZW52aXJvbikKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHJlcyA9IHNlbGYuX2FkZF9wb3NpdGlvbmFsKGFyZ3MpCisgICAgICAgIHJlcyA9IHJlcy5fYWRkX3ZhcnMoa3cpCisgICAgICAgIHJldHVybiByZXMKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBpdGVtKToKKyAgICAgICAgaWYgJz0nIGluIGl0ZW06CisgICAgICAgICAgICBuYW1lLCB2YWx1ZSA9IGl0ZW0uc3BsaXQoJz0nLCAxKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2FkZF92YXJzKHt1bnF1b3RlKG5hbWUpOiB1bnF1b3RlKHZhbHVlKX0pCisgICAgICAgIHJldHVybiBzZWxmLl9hZGRfcG9zaXRpb25hbCgoaXRlbSwpKQorCisgICAgZGVmIGF0dHIoc2VsZiwgKiprdyk6CisgICAgICAgIGZvciBrZXkgaW4ga3cua2V5cygpOgorICAgICAgICAgICAgaWYga2V5LmVuZHN3aXRoKCdfJyk6CisgICAgICAgICAgICAgICAga3dba2V5WzotMV1dID0ga3dba2V5XQorICAgICAgICAgICAgICAgIGRlbCBrd1trZXldCisgICAgICAgIG5ld19hdHRycyA9IHNlbGYuYXR0cnMuY29weSgpCisgICAgICAgIG5ld19hdHRycy51cGRhdGUoa3cpCisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLnVybCwgdmFycz1zZWxmLnZhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRycz1uZXdfYXR0cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9c2VsZi5vcmlnaW5hbF9wYXJhbXMpCisKKyAgICBkZWYgcGFyYW0oc2VsZiwgKiprdyk6CisgICAgICAgIG5ld19wYXJhbXMgPSBzZWxmLm9yaWdpbmFsX3BhcmFtcy5jb3B5KCkKKyAgICAgICAgbmV3X3BhcmFtcy51cGRhdGUoa3cpCisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLnVybCwgdmFycz1zZWxmLnZhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRycz1zZWxmLmF0dHJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zPW5ld19wYXJhbXMpCisKKyAgICBkZWYgY29lcmNlX3ZhcnMoc2VsZiwgdmFycyk6CisgICAgICAgIGdsb2JhbCB2YXJpYWJsZWRlY29kZQorICAgICAgICBuZWVkX3ZhcmlhYmxlX2VuY29kZSA9IEZhbHNlCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHZhcnMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpOgorICAgICAgICAgICAgICAgIG5lZWRfdmFyaWFibGVfZW5jb2RlID0gVHJ1ZQorICAgICAgICAgICAgaWYga2V5LmVuZHN3aXRoKCdfJyk6CisgICAgICAgICAgICAgICAgdmFyc1trZXlbOi0xXV0gPSB2YXJzW2tleV0KKyAgICAgICAgICAgICAgICBkZWwgdmFyc1trZXldCisgICAgICAgIGlmIG5lZWRfdmFyaWFibGVfZW5jb2RlOgorICAgICAgICAgICAgaWYgdmFyaWFibGVkZWNvZGUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBmcm9tIGZvcm1lbmNvZGUgaW1wb3J0IHZhcmlhYmxlZGVjb2RlCisgICAgICAgICAgICB2YXJzID0gdmFyaWFibGVkZWNvZGUudmFyaWFibGVfZW5jb2RlKHZhcnMpCisgICAgICAgIHJldHVybiB2YXJzCisKKworICAgIGRlZiB2YXIoc2VsZiwgKiprdyk6CisgICAgICAgIGt3ID0gc2VsZi5jb2VyY2VfdmFycyhrdykKKyAgICAgICAgbmV3X3ZhcnMgPSBzZWxmLnZhcnMgKyBsaXN0KGt3Lml0ZW1zKCkpCisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLnVybCwgdmFycz1uZXdfdmFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzPXNlbGYuYXR0cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9c2VsZi5vcmlnaW5hbF9wYXJhbXMpCisKKyAgICBkZWYgc2V0dmFyKHNlbGYsICoqa3cpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlrZSBgYC52YXIoLi4uKWBgLCBleGNlcHQgb3ZlcndyaXRlcyBrZXlzLCB3aGVyZSAudmFyIHNpbXBseQorICAgICAgICBleHRlbmRzIHRoZSBrZXlzLiAgU2V0dGluZyBhIHZhcmlhYmxlIHRvIE5vbmUgaGVyZSB3aWxsCisgICAgICAgIGVmZmVjdGl2ZWx5IGRlbGV0ZSBpdC4KKyAgICAgICAgIiIiCisgICAgICAgIGt3ID0gc2VsZi5jb2VyY2VfdmFycyhrdykKKyAgICAgICAgbmV3X3ZhcnMgPSBbXQorICAgICAgICBmb3IgbmFtZSwgdmFsdWVzIGluIHNlbGYudmFyczoKKyAgICAgICAgICAgIGlmIG5hbWUgaW4ga3c6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIG5ld192YXJzLmFwcGVuZCgobmFtZSwgdmFsdWVzKSkKKyAgICAgICAgbmV3X3ZhcnMuZXh0ZW5kKGt3Lml0ZW1zKCkpCisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLnVybCwgdmFycz1uZXdfdmFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzPXNlbGYuYXR0cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9c2VsZi5vcmlnaW5hbF9wYXJhbXMpCisKKyAgICBkZWYgc2V0dmFycyhzZWxmLCAqKmt3KToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgVVJMLCBidXQgd2l0aCBhbGwgdGhlIHZhcmlhYmxlcyBzZXQvcmVzZXQKKyAgICAgICAgKGxpa2UgLnNldHZhcigpLCBleGNlcHQgY2xlYXJzIHBhc3QgdmFyaWFibGVzIGF0IHRoZSBzYW1lIHRpbWUpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi51cmwsIHZhcnM9a3cuaXRlbXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzPXNlbGYuYXR0cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9c2VsZi5vcmlnaW5hbF9wYXJhbXMpCisKKyAgICBkZWYgYWRkcGF0aChzZWxmLCAqcGF0aHMpOgorICAgICAgICB1ID0gc2VsZgorICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKKyAgICAgICAgICAgIHBhdGggPSBzdHIocGF0aCkubHN0cmlwKCcvJykKKyAgICAgICAgICAgIG5ld191cmwgPSB1LnVybAorICAgICAgICAgICAgaWYgbm90IG5ld191cmwuZW5kc3dpdGgoJy8nKToKKyAgICAgICAgICAgICAgICBuZXdfdXJsICs9ICcvJworICAgICAgICAgICAgdSA9IHUuX19jbGFzc19fKG5ld191cmwrcGF0aCwgdmFycz11LnZhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM9dS5hdHRycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9dS5vcmlnaW5hbF9wYXJhbXMpCisgICAgICAgIHJldHVybiB1CisKKyAgICBpZiBzaXguUFkzOgorICAgICAgICBfX3RydWVkaXZfXyA9IGFkZHBhdGgKKyAgICBlbHNlOgorICAgICAgICBfX2Rpdl9fID0gYWRkcGF0aAorCisgICAgZGVmIGJlY29tZShzZWxmLCBPdGhlckNsYXNzKToKKyAgICAgICAgcmV0dXJuIE90aGVyQ2xhc3Moc2VsZi51cmwsIHZhcnM9c2VsZi52YXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRycz1zZWxmLmF0dHJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9c2VsZi5vcmlnaW5hbF9wYXJhbXMpCisKKyAgICBkZWYgaHJlZl9fZ2V0KHNlbGYpOgorICAgICAgICBzID0gc2VsZi51cmwKKyAgICAgICAgaWYgc2VsZi52YXJzOgorICAgICAgICAgICAgcyArPSAnPycKKyAgICAgICAgICAgIHZhcnMgPSBbXQorICAgICAgICAgICAgZm9yIG5hbWUsIHZhbCBpbiBzZWxmLnZhcnM6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIChsaXN0LCB0dXBsZSkpOgorICAgICAgICAgICAgICAgICAgICB2YWwgPSBbdiBmb3IgdiBpbiB2YWwgaWYgdiBpcyBub3QgTm9uZV0KKyAgICAgICAgICAgICAgICBlbGlmIHZhbCBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHZhcnMuYXBwZW5kKChuYW1lLCB2YWwpKQorICAgICAgICAgICAgcyArPSB1cmxlbmNvZGUodmFycywgVHJ1ZSkKKyAgICAgICAgcmV0dXJuIHMKKworICAgIGhyZWYgPSBwcm9wZXJ0eShocmVmX19nZXQpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGJhc2UgPSAnPCVzICVzJyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaHJlZiBvciAiJyciKQorICAgICAgICBpZiBzZWxmLmF0dHJzOgorICAgICAgICAgICAgYmFzZSArPSAnIGF0dHJzKCVzKScgJSAoCisgICAgICAgICAgICAgICAgJyAnLmpvaW4oWyclcz0iJXMiJyAlIChodG1sX3F1b3RlKG4pLCBodG1sX3F1b3RlKHYpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbiwgdiBpbiBzZWxmLmF0dHJzLml0ZW1zKCldKSkKKyAgICAgICAgaWYgc2VsZi5vcmlnaW5hbF9wYXJhbXM6CisgICAgICAgICAgICBiYXNlICs9ICcgcGFyYW1zKCVzKScgJSAoCisgICAgICAgICAgICAgICAgJywgJy5qb2luKFsnJXM9JXInICUgKG4sIHYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbiwgdiBpbiBzZWxmLmF0dHJzLml0ZW1zKCldKSkKKyAgICAgICAgcmV0dXJuIGJhc2UgKyAnPicKKworICAgIGRlZiBodG1sX19nZXQoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLnBhcmFtcy5nZXQoJ3RhZycpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IGNhbm5vdCBnZXQgdGhlIEhUTUwgb2YgJXIgdW50aWwgeW91IHNldCB0aGUgIgorICAgICAgICAgICAgICAgICIndGFnJyBwYXJhbSciICUgc2VsZikKKyAgICAgICAgY29udGVudCA9IHNlbGYuX2dldF9jb250ZW50KCkKKyAgICAgICAgdGFnID0gJzwlcycgJSBzZWxmLnBhcmFtcy5nZXQoJ3RhZycpCisgICAgICAgIGF0dHJzID0gJyAnLmpvaW4oWworICAgICAgICAgICAgJyVzPSIlcyInICUgKGh0bWxfcXVvdGUobiksIGh0bWxfcXVvdGUodikpCisgICAgICAgICAgICBmb3IgbiwgdiBpbiBzZWxmLl9odG1sX2F0dHJzKCldKQorICAgICAgICBpZiBhdHRyczoKKyAgICAgICAgICAgIHRhZyArPSAnICcgKyBhdHRycworICAgICAgICB0YWcgKz0gc2VsZi5faHRtbF9leHRyYSgpCisgICAgICAgIGlmIGNvbnRlbnQgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiB0YWcgKyAnIC8+JworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICclcz4lczwvJXM+JyAlICh0YWcsIGNvbnRlbnQsIHNlbGYucGFyYW1zLmdldCgndGFnJykpCisKKyAgICBodG1sID0gcHJvcGVydHkoaHRtbF9fZ2V0KQorCisgICAgZGVmIF9odG1sX2F0dHJzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5hdHRycy5pdGVtcygpCisKKyAgICBkZWYgX2h0bWxfZXh0cmEoc2VsZik6CisgICAgICAgIHJldHVybiAnJworCisgICAgZGVmIF9nZXRfY29udGVudChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgY29udGVudCBmb3IgYSB0YWcgKGZvciBzZWxmLmh0bWwpOyByZXR1cm4gTm9uZQorICAgICAgICBmb3IgYW4gZW1wdHkgdGFnIChsaWtlIGBgPGltZyAvPmBgKQorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIF9hZGRfdmFycyhzZWxmLCB2YXJzKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIF9hZGRfcG9zaXRpb25hbChzZWxmLCBhcmdzKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCitjbGFzcyBVUkwoVVJMUmVzb3VyY2UpOgorCisgICAgciIiIgorICAgID4+PiB1ID0gVVJMKCdodHRwOi8vbG9jYWxob3N0JykKKyAgICA+Pj4gdQorICAgIDxVUkwgaHR0cDovL2xvY2FsaG9zdD4KKyAgICA+Pj4gdSA9IHVbJ3ZpZXcnXQorICAgID4+PiBzdHIodSkKKyAgICAnaHR0cDovL2xvY2FsaG9zdC92aWV3JworICAgID4+PiB1WycvL2ZvbyddLnBhcmFtKGNvbnRlbnQ9J3ZpZXcnKS5odG1sCisgICAgJzxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Qvdmlldy9mb28iPnZpZXc8L2E+JworICAgID4+PiB1LnBhcmFtKGNvbmZpcm09J1JlYWxseT8nLCBjb250ZW50PSdnb3RvJykuaHRtbAorICAgICc8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L3ZpZXciIG9uY2xpY2s9InJldHVybiBjb25maXJtKFwnUmVhbGx5P1wnKSI+Z290bzwvYT4nCisgICAgPj4+IHUodGl0bGU9J1NlZSAiaXQiJywgY29udGVudD0nZ290bycpLmh0bWwKKyAgICAnPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdC92aWV3P3RpdGxlPVNlZSslMjJpdCUyMiI+Z290bzwvYT4nCisgICAgPj4+IHUoJ2Fub3RoZXInLCB2YXI9J2Z1Z2dldGFib3V0aXQnLCBjb250ZW50PSdnb3RvJykuaHRtbAorICAgICc8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L3ZpZXcvYW5vdGhlcj92YXI9ZnVnZ2V0YWJvdXRpdCI+Z290bzwvYT4nCisgICAgPj4+IHUuYXR0cihjb250ZW50PSdnb3RvJykuaHRtbAorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uLgorICAgIFZhbHVlRXJyb3I6IFlvdSBtdXN0IGdpdmUgYSBjb250ZW50IHBhcmFtIHRvIDxVUkwgaHR0cDovL2xvY2FsaG9zdC92aWV3IGF0dHJzKGNvbnRlbnQ9ImdvdG8iKT4gZ2VuZXJhdGUgYW5jaG9yIHRhZ3MKKyAgICA+Pj4gc3RyKHVbJ2Zvbz1iYXIlMjBzdHVmZiddKQorICAgICdodHRwOi8vbG9jYWxob3N0L3ZpZXc/Zm9vPWJhcitzdHVmZicKKyAgICAiIiIKKworICAgIGRlZmF1bHRfcGFyYW1zID0geyd0YWcnOiAnYSd9CisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuaHJlZgorCisgICAgZGVmIF9nZXRfY29udGVudChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYucGFyYW1zLmdldCgnY29udGVudCcpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IG11c3QgZ2l2ZSBhIGNvbnRlbnQgcGFyYW0gdG8gJXIgZ2VuZXJhdGUgYW5jaG9yIHRhZ3MiCisgICAgICAgICAgICAgICAgJSBzZWxmKQorICAgICAgICByZXR1cm4gc2VsZi5wYXJhbXNbJ2NvbnRlbnQnXQorCisgICAgZGVmIF9hZGRfdmFycyhzZWxmLCB2YXJzKToKKyAgICAgICAgdXJsID0gc2VsZgorICAgICAgICBmb3IgbmFtZSBpbiAoJ2NvbmZpcm0nLCAnY29udGVudCcpOgorICAgICAgICAgICAgaWYgbmFtZSBpbiB2YXJzOgorICAgICAgICAgICAgICAgIHVybCA9IHVybC5wYXJhbSgqKntuYW1lOiB2YXJzLnBvcChuYW1lKX0pCisgICAgICAgIGlmICd0YXJnZXQnIGluIHZhcnM6CisgICAgICAgICAgICB1cmwgPSB1cmwuYXR0cih0YXJnZXQ9dmFycy5wb3AoJ3RhcmdldCcpKQorICAgICAgICByZXR1cm4gdXJsLnZhcigqKnZhcnMpCisKKyAgICBkZWYgX2FkZF9wb3NpdGlvbmFsKHNlbGYsIGFyZ3MpOgorICAgICAgICByZXR1cm4gc2VsZi5hZGRwYXRoKCphcmdzKQorCisgICAgZGVmIF9odG1sX2F0dHJzKHNlbGYpOgorICAgICAgICBhdHRycyA9IGxpc3Qoc2VsZi5hdHRycy5pdGVtcygpKQorICAgICAgICBhdHRycy5pbnNlcnQoMCwgKCdocmVmJywgc2VsZi5ocmVmKSkKKyAgICAgICAgaWYgc2VsZi5wYXJhbXMuZ2V0KCdjb25maXJtJyk6CisgICAgICAgICAgICBhdHRycy5hcHBlbmQoKCdvbmNsaWNrJywgJ3JldHVybiBjb25maXJtKCVzKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJSBqc19yZXByKHNlbGYucGFyYW1zWydjb25maXJtJ10pKSkKKyAgICAgICAgcmV0dXJuIGF0dHJzCisKKyAgICBkZWYgb25jbGlja19nb3RvX19nZXQoc2VsZik6CisgICAgICAgIHJldHVybiAnbG9jYXRpb24uaHJlZj0lczsgcmV0dXJuIGZhbHNlJyAlIGpzX3JlcHIoc2VsZi5ocmVmKQorCisgICAgb25jbGlja19nb3RvID0gcHJvcGVydHkob25jbGlja19nb3RvX19nZXQpCisKKyAgICBkZWYgYnV0dG9uX19nZXQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmJlY29tZShCdXR0b24pCisKKyAgICBidXR0b24gPSBwcm9wZXJ0eShidXR0b25fX2dldCkKKworICAgIGRlZiBqc19wb3B1cF9fZ2V0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5iZWNvbWUoSlNQb3B1cCkKKworICAgIGpzX3BvcHVwID0gcHJvcGVydHkoanNfcG9wdXBfX2dldCkKKworY2xhc3MgSW1hZ2UoVVJMUmVzb3VyY2UpOgorCisgICAgciIiIgorICAgID4+PiBpID0gSW1hZ2UoJy9pbWFnZXMnKQorICAgID4+PiBpID0gaSAvICcvZm9vLnBuZycKKyAgICA+Pj4gaS5odG1sCisgICAgJzxpbWcgc3JjPSIvaW1hZ2VzL2Zvby5wbmciIC8+JworICAgID4+PiBzdHIoaVsnYWx0PWZvbyddKQorICAgICc8aW1nIHNyYz0iL2ltYWdlcy9mb28ucG5nIiBhbHQ9ImZvbyIgLz4nCisgICAgPj4+IGkuaHJlZgorICAgICcvaW1hZ2VzL2Zvby5wbmcnCisgICAgIiIiCisKKyAgICBkZWZhdWx0X3BhcmFtcyA9IHsndGFnJzogJ2ltZyd9CisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuaHRtbAorCisgICAgZGVmIF9nZXRfY29udGVudChzZWxmKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfYWRkX3ZhcnMoc2VsZiwgdmFycyk6CisgICAgICAgIHJldHVybiBzZWxmLmF0dHIoKip2YXJzKQorCisgICAgZGVmIF9hZGRfcG9zaXRpb25hbChzZWxmLCBhcmdzKToKKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkcGF0aCgqYXJncykKKworICAgIGRlZiBfaHRtbF9hdHRycyhzZWxmKToKKyAgICAgICAgYXR0cnMgPSBsaXN0KHNlbGYuYXR0cnMuaXRlbXMoKSkKKyAgICAgICAgYXR0cnMuaW5zZXJ0KDAsICgnc3JjJywgc2VsZi5ocmVmKSkKKyAgICAgICAgcmV0dXJuIGF0dHJzCisKK2NsYXNzIEJ1dHRvbihVUkxSZXNvdXJjZSk6CisKKyAgICByIiIiCisgICAgPj4+IHUgPSBVUkwoJy8nKQorICAgID4+PiB1ID0gdSAvICdkZWxldGUnCisgICAgPj4+IGIgPSB1LmJ1dHRvblsnY29uZmlybT1TdXJlPyddKGlkPTUsIGNvbnRlbnQ9J2RlbCcpCisgICAgPj4+IHN0cihiKQorICAgICc8YnV0dG9uIG9uY2xpY2s9ImlmIChjb25maXJtKFwnU3VyZT9cJykpIHtsb2NhdGlvbi5ocmVmPVwnL2RlbGV0ZT9pZD01XCd9OyByZXR1cm4gZmFsc2UiPmRlbDwvYnV0dG9uPicKKyAgICAiIiIKKworICAgIGRlZmF1bHRfcGFyYW1zID0geyd0YWcnOiAnYnV0dG9uJ30KKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5odG1sCisKKyAgICBkZWYgX2dldF9jb250ZW50KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnBhcmFtcy5nZXQoJ2NvbnRlbnQnKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmFtc1snY29udGVudCddCisgICAgICAgIGlmIHNlbGYuYXR0cnMuZ2V0KCd2YWx1ZScpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXR0cnNbJ2NvbnRlbnQnXQorICAgICAgICAjIEBAOiBFcnJvcj8KKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfYWRkX3ZhcnMoc2VsZiwgdmFycyk6CisgICAgICAgIGJ1dHRvbiA9IHNlbGYKKyAgICAgICAgaWYgJ2NvbmZpcm0nIGluIHZhcnM6CisgICAgICAgICAgICBidXR0b24gPSBidXR0b24ucGFyYW0oY29uZmlybT12YXJzLnBvcCgnY29uZmlybScpKQorICAgICAgICBpZiAnY29udGVudCcgaW4gdmFyczoKKyAgICAgICAgICAgIGJ1dHRvbiA9IGJ1dHRvbi5wYXJhbShjb250ZW50PXZhcnMucG9wKCdjb250ZW50JykpCisgICAgICAgIHJldHVybiBidXR0b24udmFyKCoqdmFycykKKworICAgIGRlZiBfYWRkX3Bvc2l0aW9uYWwoc2VsZiwgYXJncyk6CisgICAgICAgIHJldHVybiBzZWxmLmFkZHBhdGgoKmFyZ3MpCisKKyAgICBkZWYgX2h0bWxfYXR0cnMoc2VsZik6CisgICAgICAgIGF0dHJzID0gbGlzdChzZWxmLmF0dHJzLml0ZW1zKCkpCisgICAgICAgIG9uY2xpY2sgPSAnbG9jYXRpb24uaHJlZj0lcycgJSBqc19yZXByKHNlbGYuaHJlZikKKyAgICAgICAgaWYgc2VsZi5wYXJhbXMuZ2V0KCdjb25maXJtJyk6CisgICAgICAgICAgICBvbmNsaWNrID0gJ2lmIChjb25maXJtKCVzKSkgeyVzfScgJSAoCisgICAgICAgICAgICAgICAganNfcmVwcihzZWxmLnBhcmFtc1snY29uZmlybSddKSwgb25jbGljaykKKyAgICAgICAgb25jbGljayArPSAnOyByZXR1cm4gZmFsc2UnCisgICAgICAgIGF0dHJzLmluc2VydCgwLCAoJ29uY2xpY2snLCBvbmNsaWNrKSkKKyAgICAgICAgcmV0dXJuIGF0dHJzCisKK2NsYXNzIEpTUG9wdXAoVVJMUmVzb3VyY2UpOgorCisgICAgciIiIgorICAgID4+PiB1ID0gVVJMKCcvJykKKyAgICA+Pj4gdSA9IHUgLyAndmlldycKKyAgICA+Pj4gaiA9IHUuanNfcG9wdXAoY29udGVudD0ndmlldycpCisgICAgPj4+IGouaHRtbAorICAgICc8YSBocmVmPSIvdmlldyIgb25jbGljaz0id2luZG93Lm9wZW4oXCcvdmlld1wnLCBcJ19ibGFua1wnKTsgcmV0dXJuIGZhbHNlIiB0YXJnZXQ9Il9ibGFuayI+dmlldzwvYT4nCisgICAgIiIiCisKKyAgICBkZWZhdWx0X3BhcmFtcyA9IHsndGFnJzogJ2EnLCAndGFyZ2V0JzogJ19ibGFuayd9CisKKyAgICBkZWYgX2FkZF92YXJzKHNlbGYsIHZhcnMpOgorICAgICAgICBidXR0b24gPSBzZWxmCisgICAgICAgIGZvciB2YXIgaW4gKCd3aWR0aCcsICdoZWlnaHQnLCAnc3RyaXBwZWQnLCAnY29udGVudCcpOgorICAgICAgICAgICAgaWYgdmFyIGluIHZhcnM6CisgICAgICAgICAgICAgICAgYnV0dG9uID0gYnV0dG9uLnBhcmFtKCoqe3ZhcjogdmFycy5wb3AodmFyKX0pCisgICAgICAgIHJldHVybiBidXR0b24udmFyKCoqdmFycykKKworICAgIGRlZiBfd2luZG93X2FyZ3Moc2VsZik6CisgICAgICAgIHAgPSBzZWxmLnBhcmFtcworICAgICAgICBmZWF0dXJlcyA9IFtdCisgICAgICAgIGlmIHAuZ2V0KCdzdHJpcHBlZCcpOgorICAgICAgICAgICAgcFsnbG9jYXRpb24nXSA9IHBbJ3N0YXR1cyddID0gcFsndG9vbGJhciddID0gJzAnCisgICAgICAgIGZvciBwYXJhbSBpbiAnY2hhbm5lbG1vZGUgZGlyZWN0b3JpZXMgZnVsbHNjcmVlbiBsb2NhdGlvbiBtZW51YmFyIHJlc2l6YWJsZSBzY3JvbGxiYXJzIHN0YXR1cyB0aXRsZWJhcicuc3BsaXQoKToKKyAgICAgICAgICAgIGlmIHBhcmFtIG5vdCBpbiBwOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB2ID0gcFtwYXJhbV0KKyAgICAgICAgICAgIGlmIHYgbm90IGluICgneWVzJywgJ25vJywgJzEnLCAnMCcpOgorICAgICAgICAgICAgICAgIGlmIHY6CisgICAgICAgICAgICAgICAgICAgIHYgPSAnMScKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB2ID0gJzAnCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJyVzPSVzJyAlIChwYXJhbSwgdikpCisgICAgICAgIGZvciBwYXJhbSBpbiAnaGVpZ2h0IGxlZnQgdG9wIHdpZHRoJzoKKyAgICAgICAgICAgIGlmIG5vdCBwLmdldChwYXJhbSk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGZlYXR1cmVzLmFwcGVuZCgnJXM9JXMnICUgKHBhcmFtLCBwW3BhcmFtXSkpCisgICAgICAgIGFyZ3MgPSBbc2VsZi5ocmVmLCBwWyd0YXJnZXQnXV0KKyAgICAgICAgaWYgZmVhdHVyZXM6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgnLCcuam9pbihmZWF0dXJlcykpCisgICAgICAgIHJldHVybiAnLCAnLmpvaW4obWFwKGpzX3JlcHIsIGFyZ3MpKQorCisgICAgZGVmIF9odG1sX2F0dHJzKHNlbGYpOgorICAgICAgICBhdHRycyA9IGxpc3Qoc2VsZi5hdHRycy5pdGVtcygpKQorICAgICAgICBvbmNsaWNrID0gKCd3aW5kb3cub3Blbiglcyk7IHJldHVybiBmYWxzZScKKyAgICAgICAgICAgICAgICAgICAlIHNlbGYuX3dpbmRvd19hcmdzKCkpCisgICAgICAgIGF0dHJzLmluc2VydCgwLCAoJ3RhcmdldCcsIHNlbGYucGFyYW1zWyd0YXJnZXQnXSkpCisgICAgICAgIGF0dHJzLmluc2VydCgwLCAoJ29uY2xpY2snLCBvbmNsaWNrKSkKKyAgICAgICAgYXR0cnMuaW5zZXJ0KDAsICgnaHJlZicsIHNlbGYuaHJlZikpCisgICAgICAgIHJldHVybiBhdHRycworCisgICAgZGVmIF9nZXRfY29udGVudChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYucGFyYW1zLmdldCgnY29udGVudCcpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IG11c3QgZ2l2ZSBhIGNvbnRlbnQgcGFyYW0gdG8gJXIgZ2VuZXJhdGUgYW5jaG9yIHRhZ3MiCisgICAgICAgICAgICAgICAgJSBzZWxmKQorICAgICAgICByZXR1cm4gc2VsZi5wYXJhbXNbJ2NvbnRlbnQnXQorCisgICAgZGVmIF9hZGRfcG9zaXRpb25hbChzZWxmLCBhcmdzKToKKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkcGF0aCgqYXJncykKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZCgpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91cmxtYXAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXJsbWFwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MjFmMmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXJsbWFwLnB5CkBAIC0wLDAgKzEsMjYzIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiIKK01hcCBVUkwgcHJlZml4ZXMgdG8gV1NHSSBhcHBsaWNhdGlvbnMuICBTZWUgYGBVUkxNYXBgYAorIiIiCisKK2ltcG9ydCByZQoraW1wb3J0IG9zCitpbXBvcnQgY2dpCit0cnk6CisgICAgIyBQeXRob24gMworICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBwaW5nIGFzIERpY3RNaXhpbgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgUHl0aG9uIDIKKyAgICBmcm9tIFVzZXJEaWN0IGltcG9ydCBEaWN0TWl4aW4KKworZnJvbSBwYXN0ZSBpbXBvcnQgaHR0cGV4Y2VwdGlvbnMKKworX19hbGxfXyA9IFsnVVJMTWFwJywgJ1BhdGhQcm94eVVSTE1hcCddCisKK2RlZiB1cmxtYXBfZmFjdG9yeShsb2FkZXIsIGdsb2JhbF9jb25mLCAqKmxvY2FsX2NvbmYpOgorICAgIGlmICdub3RfZm91bmRfYXBwJyBpbiBsb2NhbF9jb25mOgorICAgICAgICBub3RfZm91bmRfYXBwID0gbG9jYWxfY29uZi5wb3AoJ25vdF9mb3VuZF9hcHAnKQorICAgIGVsc2U6CisgICAgICAgIG5vdF9mb3VuZF9hcHAgPSBnbG9iYWxfY29uZi5nZXQoJ25vdF9mb3VuZF9hcHAnKQorICAgIGlmIG5vdF9mb3VuZF9hcHA6CisgICAgICAgIG5vdF9mb3VuZF9hcHAgPSBsb2FkZXIuZ2V0X2FwcChub3RfZm91bmRfYXBwLCBnbG9iYWxfY29uZj1nbG9iYWxfY29uZikKKyAgICB1cmxtYXAgPSBVUkxNYXAobm90X2ZvdW5kX2FwcD1ub3RfZm91bmRfYXBwKQorICAgIGZvciBwYXRoLCBhcHBfbmFtZSBpbiBsb2NhbF9jb25mLml0ZW1zKCk6CisgICAgICAgIHBhdGggPSBwYXJzZV9wYXRoX2V4cHJlc3Npb24ocGF0aCkKKyAgICAgICAgYXBwID0gbG9hZGVyLmdldF9hcHAoYXBwX25hbWUsIGdsb2JhbF9jb25mPWdsb2JhbF9jb25mKQorICAgICAgICB1cmxtYXBbcGF0aF0gPSBhcHAKKyAgICByZXR1cm4gdXJsbWFwCisKK2RlZiBwYXJzZV9wYXRoX2V4cHJlc3Npb24ocGF0aCk6CisgICAgIiIiCisgICAgUGFyc2VzIGEgcGF0aCBleHByZXNzaW9uIGxpa2UgJ2RvbWFpbiBmb29iYXIuY29tIHBvcnQgMjAgLycgb3IKKyAgICBqdXN0ICcvZm9vYmFyJyBmb3IgYSBwYXRoIGFsb25lLiAgUmV0dXJucyBhcyBhbiBhZGRyZXNzIHRoYXQKKyAgICBVUkxNYXAgbGlrZXMuCisgICAgIiIiCisgICAgcGFydHMgPSBwYXRoLnNwbGl0KCkKKyAgICBkb21haW4gPSBwb3J0ID0gcGF0aCA9IE5vbmUKKyAgICB3aGlsZSBwYXJ0czoKKyAgICAgICAgaWYgcGFydHNbMF0gPT0gJ2RvbWFpbic6CisgICAgICAgICAgICBwYXJ0cy5wb3AoMCkKKyAgICAgICAgICAgIGlmIG5vdCBwYXJ0czoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCInZG9tYWluJyBtdXN0IGJlIGZvbGxvd2VkIHdpdGggYSBkb21haW4gbmFtZSIpCisgICAgICAgICAgICBpZiBkb21haW46CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJ2RvbWFpbicgZ2l2ZW4gdHdpY2UiKQorICAgICAgICAgICAgZG9tYWluID0gcGFydHMucG9wKDApCisgICAgICAgIGVsaWYgcGFydHNbMF0gPT0gJ3BvcnQnOgorICAgICAgICAgICAgcGFydHMucG9wKDApCisgICAgICAgICAgICBpZiBub3QgcGFydHM6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJ3BvcnQnIG11c3QgYmUgZm9sbG93ZWQgd2l0aCBhIHBvcnQgbnVtYmVyIikKKyAgICAgICAgICAgIGlmIHBvcnQ6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJ3BvcnQnIGdpdmVuIHR3aWNlIikKKyAgICAgICAgICAgIHBvcnQgPSBwYXJ0cy5wb3AoMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHBhdGg6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibW9yZSB0aGFuIG9uZSBwYXRoIGdpdmVuIChoYXZlICVyLCBnb3QgJXIpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAocGF0aCwgcGFydHNbMF0pKQorICAgICAgICAgICAgcGF0aCA9IHBhcnRzLnBvcCgwKQorICAgIHMgPSAnJworICAgIGlmIGRvbWFpbjoKKyAgICAgICAgcyA9ICdodHRwOi8vJXMnICUgZG9tYWluCisgICAgaWYgcG9ydDoKKyAgICAgICAgaWYgbm90IGRvbWFpbjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIklmIHlvdSBnaXZlIGEgcG9ydCwgeW91IG11c3QgYWxzbyBnaXZlIGEgZG9tYWluIikKKyAgICAgICAgcyArPSAnOicgKyBwb3J0CisgICAgaWYgcGF0aDoKKyAgICAgICAgaWYgczoKKyAgICAgICAgICAgIHMgKz0gJy8nCisgICAgICAgIHMgKz0gcGF0aAorICAgIHJldHVybiBzCisKK2NsYXNzIFVSTE1hcChEaWN0TWl4aW4pOgorCisgICAgIiIiCisgICAgVVJMTWFwIGluc3RhbmNlcyBhcmUgZGljdGlvbmFyeS1saWtlIG9iamVjdCB0aGF0IGRpc3BhdGNoIHRvIG9uZQorICAgIG9mIHNldmVyYWwgYXBwbGljYXRpb25zIGJhc2VkIG9uIHRoZSBVUkwuCisKKyAgICBUaGUgZGljdGlvbmFyeSBrZXlzIGFyZSBVUkxzIHRvIG1hdGNoIChsaWtlCisgICAgYGBQQVRIX0lORk8uc3RhcnRzd2l0aCh1cmwpYGApLCBhbmQgdGhlIHZhbHVlcyBhcmUgYXBwbGljYXRpb25zIHRvCisgICAgZGlzcGF0Y2ggdG8uICBVUkxzIGFyZSBtYXRjaGVkIG1vc3Qtc3BlY2lmaWMtZmlyc3QsIGkuZS4sIGxvbmdlc3QKKyAgICBVUkwgZmlyc3QuICBUaGUgYGBTQ1JJUFRfTkFNRWBgIGFuZCBgYFBBVEhfSU5GT2BgIGVudmlyb25tZW50YWwKKyAgICB2YXJpYWJsZXMgYXJlIGFkanVzdGVkIHRvIGluZGljYXRlIHRoZSBuZXcgY29udGV4dC4KKworICAgIFVSTHMgY2FuIGFsc28gaW5jbHVkZSBkb21haW5zLCBsaWtlIGBgaHR0cDovL2JsYWguY29tL2Zvb2BgLCBvciBhcworICAgIHR1cGxlcyBgYCgnYmxhaC5jb20nLCAnL2ZvbycpYGAuICBUaGlzIHdpbGwgbWF0Y2ggZG9tYWluIG5hbWVzOyB3aXRob3V0CisgICAgdGhlIGBgaHR0cDovL2RvbWFpbmBgIG9yIHdpdGggYSBkb21haW4gb2YgYGBOb25lYGAgYW55IGRvbWFpbiB3aWxsIGJlCisgICAgbWF0Y2hlZCAoc28gbG9uZyBhcyBubyBvdGhlciBleHBsaWNpdCBkb21haW4gbWF0Y2hlcykuICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub3RfZm91bmRfYXBwPU5vbmUpOgorICAgICAgICBzZWxmLmFwcGxpY2F0aW9ucyA9IFtdCisgICAgICAgIGlmIG5vdCBub3RfZm91bmRfYXBwOgorICAgICAgICAgICAgbm90X2ZvdW5kX2FwcCA9IHNlbGYubm90X2ZvdW5kX2FwcAorICAgICAgICBzZWxmLm5vdF9mb3VuZF9hcHBsaWNhdGlvbiA9IG5vdF9mb3VuZF9hcHAKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYuYXBwbGljYXRpb25zKQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBmb3IgYXBwX3VybCwgYXBwIGluIHNlbGYuYXBwbGljYXRpb25zOgorICAgICAgICAgICAgeWllbGQgYXBwX3VybAorCisgICAgbm9ybV91cmxfcmUgPSByZS5jb21waWxlKCcvLysnKQorICAgIGRvbWFpbl91cmxfcmUgPSByZS5jb21waWxlKCdeKGh0dHB8aHR0cHMpOi8vJykKKworICAgIGRlZiBub3RfZm91bmRfYXBwKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgbWFwcGVyID0gZW52aXJvbi5nZXQoJ3Bhc3RlLnVybG1hcF9vYmplY3QnKQorICAgICAgICBpZiBtYXBwZXI6CisgICAgICAgICAgICBtYXRjaGVzID0gW3AgZm9yIHAsIGEgaW4gbWFwcGVyLmFwcGxpY2F0aW9uc10KKyAgICAgICAgICAgIGV4dHJhID0gJ2RlZmluZWQgYXBwczogJXMnICUgKAorICAgICAgICAgICAgICAgICcsXG4gICcuam9pbihtYXAocmVwciwgbWF0Y2hlcykpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXh0cmEgPSAnJworICAgICAgICBleHRyYSArPSAnXG5TQ1JJUFRfTkFNRTogJXInICUgY2dpLmVzY2FwZShlbnZpcm9uLmdldCgnU0NSSVBUX05BTUUnKSkKKyAgICAgICAgZXh0cmEgKz0gJ1xuUEFUSF9JTkZPOiAlcicgJSBjZ2kuZXNjYXBlKGVudmlyb24uZ2V0KCdQQVRIX0lORk8nKSkKKyAgICAgICAgZXh0cmEgKz0gJ1xuSFRUUF9IT1NUOiAlcicgJSBjZ2kuZXNjYXBlKGVudmlyb24uZ2V0KCdIVFRQX0hPU1QnKSkKKyAgICAgICAgYXBwID0gaHR0cGV4Y2VwdGlvbnMuSFRUUE5vdEZvdW5kKAorICAgICAgICAgICAgZW52aXJvblsnUEFUSF9JTkZPJ10sCisgICAgICAgICAgICBjb21tZW50PWNnaS5lc2NhcGUoZXh0cmEpKS53c2dpX2FwcGxpY2F0aW9uCisgICAgICAgIHJldHVybiBhcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgbm9ybWFsaXplX3VybChzZWxmLCB1cmwsIHRyaW09VHJ1ZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodXJsLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgIGRvbWFpbiA9IHVybFswXQorICAgICAgICAgICAgdXJsID0gc2VsZi5ub3JtYWxpemVfdXJsKHVybFsxXSlbMV0KKyAgICAgICAgICAgIHJldHVybiBkb21haW4sIHVybAorICAgICAgICBhc3NlcnQgKG5vdCB1cmwgb3IgdXJsLnN0YXJ0c3dpdGgoJy8nKQorICAgICAgICAgICAgICAgIG9yIHNlbGYuZG9tYWluX3VybF9yZS5zZWFyY2godXJsKSksICgKKyAgICAgICAgICAgICJVUkwgZnJhZ21lbnRzIG11c3Qgc3RhcnQgd2l0aCAvIG9yIGh0dHA6Ly8gKHlvdSBnYXZlICVyKSIgJSB1cmwpCisgICAgICAgIG1hdGNoID0gc2VsZi5kb21haW5fdXJsX3JlLnNlYXJjaCh1cmwpCisgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgdXJsID0gdXJsW21hdGNoLmVuZCgpOl0KKyAgICAgICAgICAgIGlmICcvJyBpbiB1cmw6CisgICAgICAgICAgICAgICAgZG9tYWluLCB1cmwgPSB1cmwuc3BsaXQoJy8nLCAxKQorICAgICAgICAgICAgICAgIHVybCA9ICcvJyArIHVybAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkb21haW4sIHVybCA9IHVybCwgJycKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRvbWFpbiA9IE5vbmUKKyAgICAgICAgdXJsID0gc2VsZi5ub3JtX3VybF9yZS5zdWIoJy8nLCB1cmwpCisgICAgICAgIGlmIHRyaW06CisgICAgICAgICAgICB1cmwgPSB1cmwucnN0cmlwKCcvJykKKyAgICAgICAgcmV0dXJuIGRvbWFpbiwgdXJsCisKKyAgICBkZWYgc29ydF9hcHBzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTWFrZSBzdXJlIGFwcGxpY2F0aW9ucyBhcmUgc29ydGVkIHdpdGggbG9uZ2VzdCBVUkxzIGZpcnN0CisgICAgICAgICIiIgorICAgICAgICBkZWYga2V5KGFwcF9kZXNjKToKKyAgICAgICAgICAgIChkb21haW4sIHVybCksIGFwcCA9IGFwcF9kZXNjCisgICAgICAgICAgICBpZiBub3QgZG9tYWluOgorICAgICAgICAgICAgICAgICMgTWFrZSBzdXJlIGVtcHR5IGRvbWFpbnMgc29ydCBsYXN0OgorICAgICAgICAgICAgICAgIHJldHVybiAnXHhmZicsIC1sZW4odXJsKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9tYWluLCAtbGVuKHVybCkKKyAgICAgICAgYXBwcyA9IFsoa2V5KGRlc2MpLCBkZXNjKSBmb3IgZGVzYyBpbiBzZWxmLmFwcGxpY2F0aW9uc10KKyAgICAgICAgYXBwcy5zb3J0KCkKKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbnMgPSBbZGVzYyBmb3IgKHNvcnRhYmxlLCBkZXNjKSBpbiBhcHBzXQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIHVybCwgYXBwKToKKyAgICAgICAgaWYgYXBwIGlzIE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGVsIHNlbGZbdXJsXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBkb21fdXJsID0gc2VsZi5ub3JtYWxpemVfdXJsKHVybCkKKyAgICAgICAgaWYgZG9tX3VybCBpbiBzZWxmOgorICAgICAgICAgICAgZGVsIHNlbGZbZG9tX3VybF0KKyAgICAgICAgc2VsZi5hcHBsaWNhdGlvbnMuYXBwZW5kKChkb21fdXJsLCBhcHApKQorICAgICAgICBzZWxmLnNvcnRfYXBwcygpCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgdXJsKToKKyAgICAgICAgZG9tX3VybCA9IHNlbGYubm9ybWFsaXplX3VybCh1cmwpCisgICAgICAgIGZvciBhcHBfdXJsLCBhcHAgaW4gc2VsZi5hcHBsaWNhdGlvbnM6CisgICAgICAgICAgICBpZiBhcHBfdXJsID09IGRvbV91cmw6CisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcAorICAgICAgICByYWlzZSBLZXlFcnJvcigKKyAgICAgICAgICAgICJObyBhcHBsaWNhdGlvbiB3aXRoIHRoZSB1cmwgJXIgKGRvbWFpbjogJXI7IGV4aXN0aW5nOiAlcykiCisgICAgICAgICAgICAlICh1cmxbMV0sIHVybFswXSBvciAnKicsIHNlbGYuYXBwbGljYXRpb25zKSkKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCB1cmwpOgorICAgICAgICB1cmwgPSBzZWxmLm5vcm1hbGl6ZV91cmwodXJsKQorICAgICAgICBmb3IgYXBwX3VybCwgYXBwIGluIHNlbGYuYXBwbGljYXRpb25zOgorICAgICAgICAgICAgaWYgYXBwX3VybCA9PSB1cmw6CisgICAgICAgICAgICAgICAgc2VsZi5hcHBsaWNhdGlvbnMucmVtb3ZlKChhcHBfdXJsLCBhcHApKQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcigKKyAgICAgICAgICAgICAgICAiTm8gYXBwbGljYXRpb24gd2l0aCB0aGUgdXJsICVyIiAlICh1cmwsKSkKKworICAgIGRlZiBrZXlzKHNlbGYpOgorICAgICAgICByZXR1cm4gW2FwcF91cmwgZm9yIGFwcF91cmwsIGFwcCBpbiBzZWxmLmFwcGxpY2F0aW9uc10KKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGhvc3QgPSBlbnZpcm9uLmdldCgnSFRUUF9IT1NUJywgZW52aXJvbi5nZXQoJ1NFUlZFUl9OQU1FJykpLmxvd2VyKCkKKyAgICAgICAgaWYgJzonIGluIGhvc3Q6CisgICAgICAgICAgICBob3N0LCBwb3J0ID0gaG9zdC5zcGxpdCgnOicsIDEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBlbnZpcm9uWyd3c2dpLnVybF9zY2hlbWUnXSA9PSAnaHR0cCc6CisgICAgICAgICAgICAgICAgcG9ydCA9ICc4MCcKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcG9ydCA9ICc0NDMnCisgICAgICAgIHBhdGhfaW5mbyA9IGVudmlyb24uZ2V0KCdQQVRIX0lORk8nKQorICAgICAgICBwYXRoX2luZm8gPSBzZWxmLm5vcm1hbGl6ZV91cmwocGF0aF9pbmZvLCBGYWxzZSlbMV0KKyAgICAgICAgZm9yIChkb21haW4sIGFwcF91cmwpLCBhcHAgaW4gc2VsZi5hcHBsaWNhdGlvbnM6CisgICAgICAgICAgICBpZiBkb21haW4gYW5kIGRvbWFpbiAhPSBob3N0IGFuZCBkb21haW4gIT0gaG9zdCsnOicrcG9ydDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgKHBhdGhfaW5mbyA9PSBhcHBfdXJsCisgICAgICAgICAgICAgICAgb3IgcGF0aF9pbmZvLnN0YXJ0c3dpdGgoYXBwX3VybCArICcvJykpOgorICAgICAgICAgICAgICAgIGVudmlyb25bJ1NDUklQVF9OQU1FJ10gKz0gYXBwX3VybAorICAgICAgICAgICAgICAgIGVudmlyb25bJ1BBVEhfSU5GTyddID0gcGF0aF9pbmZvW2xlbihhcHBfdXJsKTpdCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgZW52aXJvblsncGFzdGUudXJsbWFwX29iamVjdCddID0gc2VsZgorICAgICAgICByZXR1cm4gc2VsZi5ub3RfZm91bmRfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKworY2xhc3MgUGF0aFByb3h5VVJMTWFwKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBUaGlzIGlzIGEgd3JhcHBlciBmb3IgVVJMTWFwIHRoYXQgY2F0Y2hlcyBhbnkgc3RyaW5ncyB0aGF0CisgICAgYXJlIHBhc3NlZCBpbiBhcyBhcHBsaWNhdGlvbnM7IHRoZXNlIHN0cmluZ3MgYXJlIHRyZWF0ZWQgYXMKKyAgICBmaWxlbmFtZXMgKHJlbGF0aXZlIHRvIGBiYXNlX3BhdGhgKSBhbmQgYXJlIHBhc3NlZCB0byB0aGUKKyAgICBjYWxsYWJsZSBgYnVpbGRlcmAsIHdoaWNoIHdpbGwgcmV0dXJuIGFuIGFwcGxpY2F0aW9uLgorCisgICAgVGhpcyBpcyBpbnRlbmRlZCBmb3IgY2FzZXMgd2hlbiBjb25maWd1cmF0aW9uIGZpbGVzIGNhbiBiZQorICAgIHRyZWF0ZWQgYXMgYXBwbGljYXRpb25zLgorCisgICAgYGJhc2VfcGFzdGVfdXJsYCBpcyB0aGUgVVJMIHVuZGVyIHdoaWNoIGFsbCBhcHBsaWNhdGlvbnMgYWRkZWQgdGhyb3VnaAorICAgIHRoaXMgd3JhcHBlciBtdXN0IGdvLiAgVXNlIGBgIiJgYCBpZiB5b3Ugd2FudCB0aGlzIHRvIG5vdAorICAgIGNoYW5nZSBpbmNvbWluZyBVUkxzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hcCwgYmFzZV9wYXN0ZV91cmwsIGJhc2VfcGF0aCwgYnVpbGRlcik6CisgICAgICAgIHNlbGYubWFwID0gbWFwCisgICAgICAgIHNlbGYuYmFzZV9wYXN0ZV91cmwgPSBzZWxmLm1hcC5ub3JtYWxpemVfdXJsKGJhc2VfcGFzdGVfdXJsKQorICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLmJ1aWxkZXIgPSBidWlsZGVyCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwgdXJsLCBhcHApOgorICAgICAgICBpZiBpc2luc3RhbmNlKGFwcCwgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgYXBwX2ZuID0gb3MucGF0aC5qb2luKHNlbGYuYmFzZV9wYXRoLCBhcHApCisgICAgICAgICAgICBhcHAgPSBzZWxmLmJ1aWxkZXIoYXBwX2ZuKQorICAgICAgICB1cmwgPSBzZWxmLm1hcC5ub3JtYWxpemVfdXJsKHVybCkKKyAgICAgICAgIyBAQDogVGhpcyBtZWFucyBodHRwOi8vZm9vLmNvbS9iYXIgd2lsbCBwb3RlbnRpYWxseQorICAgICAgICAjIG1hdGNoIGZvby5jb20sIGJ1dCAvYmFzZV9wYXN0ZV91cmwvYmFyLCB3aGljaCBpcyB1bmludHVpdGl2ZQorICAgICAgICB1cmwgPSAodXJsWzBdIG9yIHNlbGYuYmFzZV9wYXN0ZV91cmxbMF0sCisgICAgICAgICAgICAgICBzZWxmLmJhc2VfcGFzdGVfdXJsWzFdICsgdXJsWzFdKQorICAgICAgICBzZWxmLm1hcFt1cmxdID0gYXBwCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cik6CisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYubWFwLCBhdHRyKQorCisgICAgIyBUaGlzIGlzIHJlYWxseSB0aGUgb25seSBzZXR0YWJsZSBhdHRyaWJ1dGUKKyAgICBkZWYgbm90X2ZvdW5kX2FwcGxpY2F0aW9uX19nZXQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm1hcC5ub3RfZm91bmRfYXBwbGljYXRpb24KKyAgICBkZWYgbm90X2ZvdW5kX2FwcGxpY2F0aW9uX19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLm1hcC5ub3RfZm91bmRfYXBwbGljYXRpb24gPSB2YWx1ZQorICAgIG5vdF9mb3VuZF9hcHBsaWNhdGlvbiA9IHByb3BlcnR5KG5vdF9mb3VuZF9hcHBsaWNhdGlvbl9fZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdF9mb3VuZF9hcHBsaWNhdGlvbl9fc2V0KQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3VybG1hcC5weS5vcmlnIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3VybG1hcC5weS5vcmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MjFmMmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXJsbWFwLnB5Lm9yaWcKQEAgLTAsMCArMSwyNjMgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorTWFwIFVSTCBwcmVmaXhlcyB0byBXU0dJIGFwcGxpY2F0aW9ucy4gIFNlZSBgYFVSTE1hcGBgCisiIiIKKworaW1wb3J0IHJlCitpbXBvcnQgb3MKK2ltcG9ydCBjZ2kKK3RyeToKKyAgICAjIFB5dGhvbiAzCisgICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcgYXMgRGljdE1peGluCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgIyBQeXRob24gMgorICAgIGZyb20gVXNlckRpY3QgaW1wb3J0IERpY3RNaXhpbgorCitmcm9tIHBhc3RlIGltcG9ydCBodHRwZXhjZXB0aW9ucworCitfX2FsbF9fID0gWydVUkxNYXAnLCAnUGF0aFByb3h5VVJMTWFwJ10KKworZGVmIHVybG1hcF9mYWN0b3J5KGxvYWRlciwgZ2xvYmFsX2NvbmYsICoqbG9jYWxfY29uZik6CisgICAgaWYgJ25vdF9mb3VuZF9hcHAnIGluIGxvY2FsX2NvbmY6CisgICAgICAgIG5vdF9mb3VuZF9hcHAgPSBsb2NhbF9jb25mLnBvcCgnbm90X2ZvdW5kX2FwcCcpCisgICAgZWxzZToKKyAgICAgICAgbm90X2ZvdW5kX2FwcCA9IGdsb2JhbF9jb25mLmdldCgnbm90X2ZvdW5kX2FwcCcpCisgICAgaWYgbm90X2ZvdW5kX2FwcDoKKyAgICAgICAgbm90X2ZvdW5kX2FwcCA9IGxvYWRlci5nZXRfYXBwKG5vdF9mb3VuZF9hcHAsIGdsb2JhbF9jb25mPWdsb2JhbF9jb25mKQorICAgIHVybG1hcCA9IFVSTE1hcChub3RfZm91bmRfYXBwPW5vdF9mb3VuZF9hcHApCisgICAgZm9yIHBhdGgsIGFwcF9uYW1lIGluIGxvY2FsX2NvbmYuaXRlbXMoKToKKyAgICAgICAgcGF0aCA9IHBhcnNlX3BhdGhfZXhwcmVzc2lvbihwYXRoKQorICAgICAgICBhcHAgPSBsb2FkZXIuZ2V0X2FwcChhcHBfbmFtZSwgZ2xvYmFsX2NvbmY9Z2xvYmFsX2NvbmYpCisgICAgICAgIHVybG1hcFtwYXRoXSA9IGFwcAorICAgIHJldHVybiB1cmxtYXAKKworZGVmIHBhcnNlX3BhdGhfZXhwcmVzc2lvbihwYXRoKToKKyAgICAiIiIKKyAgICBQYXJzZXMgYSBwYXRoIGV4cHJlc3Npb24gbGlrZSAnZG9tYWluIGZvb2Jhci5jb20gcG9ydCAyMCAvJyBvcgorICAgIGp1c3QgJy9mb29iYXInIGZvciBhIHBhdGggYWxvbmUuICBSZXR1cm5zIGFzIGFuIGFkZHJlc3MgdGhhdAorICAgIFVSTE1hcCBsaWtlcy4KKyAgICAiIiIKKyAgICBwYXJ0cyA9IHBhdGguc3BsaXQoKQorICAgIGRvbWFpbiA9IHBvcnQgPSBwYXRoID0gTm9uZQorICAgIHdoaWxlIHBhcnRzOgorICAgICAgICBpZiBwYXJ0c1swXSA9PSAnZG9tYWluJzoKKyAgICAgICAgICAgIHBhcnRzLnBvcCgwKQorICAgICAgICAgICAgaWYgbm90IHBhcnRzOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIidkb21haW4nIG11c3QgYmUgZm9sbG93ZWQgd2l0aCBhIGRvbWFpbiBuYW1lIikKKyAgICAgICAgICAgIGlmIGRvbWFpbjoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCInZG9tYWluJyBnaXZlbiB0d2ljZSIpCisgICAgICAgICAgICBkb21haW4gPSBwYXJ0cy5wb3AoMCkKKyAgICAgICAgZWxpZiBwYXJ0c1swXSA9PSAncG9ydCc6CisgICAgICAgICAgICBwYXJ0cy5wb3AoMCkKKyAgICAgICAgICAgIGlmIG5vdCBwYXJ0czoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIncG9ydCcgbXVzdCBiZSBmb2xsb3dlZCB3aXRoIGEgcG9ydCBudW1iZXIiKQorICAgICAgICAgICAgaWYgcG9ydDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIncG9ydCcgZ2l2ZW4gdHdpY2UiKQorICAgICAgICAgICAgcG9ydCA9IHBhcnRzLnBvcCgwKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgcGF0aDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtb3JlIHRoYW4gb25lIHBhdGggZ2l2ZW4gKGhhdmUgJXIsIGdvdCAlcikiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChwYXRoLCBwYXJ0c1swXSkpCisgICAgICAgICAgICBwYXRoID0gcGFydHMucG9wKDApCisgICAgcyA9ICcnCisgICAgaWYgZG9tYWluOgorICAgICAgICBzID0gJ2h0dHA6Ly8lcycgJSBkb21haW4KKyAgICBpZiBwb3J0OgorICAgICAgICBpZiBub3QgZG9tYWluOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSWYgeW91IGdpdmUgYSBwb3J0LCB5b3UgbXVzdCBhbHNvIGdpdmUgYSBkb21haW4iKQorICAgICAgICBzICs9ICc6JyArIHBvcnQKKyAgICBpZiBwYXRoOgorICAgICAgICBpZiBzOgorICAgICAgICAgICAgcyArPSAnLycKKyAgICAgICAgcyArPSBwYXRoCisgICAgcmV0dXJuIHMKKworY2xhc3MgVVJMTWFwKERpY3RNaXhpbik6CisKKyAgICAiIiIKKyAgICBVUkxNYXAgaW5zdGFuY2VzIGFyZSBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0IHRoYXQgZGlzcGF0Y2ggdG8gb25lCisgICAgb2Ygc2V2ZXJhbCBhcHBsaWNhdGlvbnMgYmFzZWQgb24gdGhlIFVSTC4KKworICAgIFRoZSBkaWN0aW9uYXJ5IGtleXMgYXJlIFVSTHMgdG8gbWF0Y2ggKGxpa2UKKyAgICBgYFBBVEhfSU5GTy5zdGFydHN3aXRoKHVybClgYCksIGFuZCB0aGUgdmFsdWVzIGFyZSBhcHBsaWNhdGlvbnMgdG8KKyAgICBkaXNwYXRjaCB0by4gIFVSTHMgYXJlIG1hdGNoZWQgbW9zdC1zcGVjaWZpYy1maXJzdCwgaS5lLiwgbG9uZ2VzdAorICAgIFVSTCBmaXJzdC4gIFRoZSBgYFNDUklQVF9OQU1FYGAgYW5kIGBgUEFUSF9JTkZPYGAgZW52aXJvbm1lbnRhbAorICAgIHZhcmlhYmxlcyBhcmUgYWRqdXN0ZWQgdG8gaW5kaWNhdGUgdGhlIG5ldyBjb250ZXh0LgorCisgICAgVVJMcyBjYW4gYWxzbyBpbmNsdWRlIGRvbWFpbnMsIGxpa2UgYGBodHRwOi8vYmxhaC5jb20vZm9vYGAsIG9yIGFzCisgICAgdHVwbGVzIGBgKCdibGFoLmNvbScsICcvZm9vJylgYC4gIFRoaXMgd2lsbCBtYXRjaCBkb21haW4gbmFtZXM7IHdpdGhvdXQKKyAgICB0aGUgYGBodHRwOi8vZG9tYWluYGAgb3Igd2l0aCBhIGRvbWFpbiBvZiBgYE5vbmVgYCBhbnkgZG9tYWluIHdpbGwgYmUKKyAgICBtYXRjaGVkIChzbyBsb25nIGFzIG5vIG90aGVyIGV4cGxpY2l0IGRvbWFpbiBtYXRjaGVzKS4gICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vdF9mb3VuZF9hcHA9Tm9uZSk6CisgICAgICAgIHNlbGYuYXBwbGljYXRpb25zID0gW10KKyAgICAgICAgaWYgbm90IG5vdF9mb3VuZF9hcHA6CisgICAgICAgICAgICBub3RfZm91bmRfYXBwID0gc2VsZi5ub3RfZm91bmRfYXBwCisgICAgICAgIHNlbGYubm90X2ZvdW5kX2FwcGxpY2F0aW9uID0gbm90X2ZvdW5kX2FwcAorCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5hcHBsaWNhdGlvbnMpCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIGZvciBhcHBfdXJsLCBhcHAgaW4gc2VsZi5hcHBsaWNhdGlvbnM6CisgICAgICAgICAgICB5aWVsZCBhcHBfdXJsCisKKyAgICBub3JtX3VybF9yZSA9IHJlLmNvbXBpbGUoJy8vKycpCisgICAgZG9tYWluX3VybF9yZSA9IHJlLmNvbXBpbGUoJ14oaHR0cHxodHRwcyk6Ly8nKQorCisgICAgZGVmIG5vdF9mb3VuZF9hcHAoc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBtYXBwZXIgPSBlbnZpcm9uLmdldCgncGFzdGUudXJsbWFwX29iamVjdCcpCisgICAgICAgIGlmIG1hcHBlcjoKKyAgICAgICAgICAgIG1hdGNoZXMgPSBbcCBmb3IgcCwgYSBpbiBtYXBwZXIuYXBwbGljYXRpb25zXQorICAgICAgICAgICAgZXh0cmEgPSAnZGVmaW5lZCBhcHBzOiAlcycgJSAoCisgICAgICAgICAgICAgICAgJyxcbiAgJy5qb2luKG1hcChyZXByLCBtYXRjaGVzKSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleHRyYSA9ICcnCisgICAgICAgIGV4dHJhICs9ICdcblNDUklQVF9OQU1FOiAlcicgJSBjZ2kuZXNjYXBlKGVudmlyb24uZ2V0KCdTQ1JJUFRfTkFNRScpKQorICAgICAgICBleHRyYSArPSAnXG5QQVRIX0lORk86ICVyJyAlIGNnaS5lc2NhcGUoZW52aXJvbi5nZXQoJ1BBVEhfSU5GTycpKQorICAgICAgICBleHRyYSArPSAnXG5IVFRQX0hPU1Q6ICVyJyAlIGNnaS5lc2NhcGUoZW52aXJvbi5nZXQoJ0hUVFBfSE9TVCcpKQorICAgICAgICBhcHAgPSBodHRwZXhjZXB0aW9ucy5IVFRQTm90Rm91bmQoCisgICAgICAgICAgICBlbnZpcm9uWydQQVRIX0lORk8nXSwKKyAgICAgICAgICAgIGNvbW1lbnQ9Y2dpLmVzY2FwZShleHRyYSkpLndzZ2lfYXBwbGljYXRpb24KKyAgICAgICAgcmV0dXJuIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgIGRlZiBub3JtYWxpemVfdXJsKHNlbGYsIHVybCwgdHJpbT1UcnVlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh1cmwsIChsaXN0LCB0dXBsZSkpOgorICAgICAgICAgICAgZG9tYWluID0gdXJsWzBdCisgICAgICAgICAgICB1cmwgPSBzZWxmLm5vcm1hbGl6ZV91cmwodXJsWzFdKVsxXQorICAgICAgICAgICAgcmV0dXJuIGRvbWFpbiwgdXJsCisgICAgICAgIGFzc2VydCAobm90IHVybCBvciB1cmwuc3RhcnRzd2l0aCgnLycpCisgICAgICAgICAgICAgICAgb3Igc2VsZi5kb21haW5fdXJsX3JlLnNlYXJjaCh1cmwpKSwgKAorICAgICAgICAgICAgIlVSTCBmcmFnbWVudHMgbXVzdCBzdGFydCB3aXRoIC8gb3IgaHR0cDovLyAoeW91IGdhdmUgJXIpIiAlIHVybCkKKyAgICAgICAgbWF0Y2ggPSBzZWxmLmRvbWFpbl91cmxfcmUuc2VhcmNoKHVybCkKKyAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICB1cmwgPSB1cmxbbWF0Y2guZW5kKCk6XQorICAgICAgICAgICAgaWYgJy8nIGluIHVybDoKKyAgICAgICAgICAgICAgICBkb21haW4sIHVybCA9IHVybC5zcGxpdCgnLycsIDEpCisgICAgICAgICAgICAgICAgdXJsID0gJy8nICsgdXJsCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRvbWFpbiwgdXJsID0gdXJsLCAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgZG9tYWluID0gTm9uZQorICAgICAgICB1cmwgPSBzZWxmLm5vcm1fdXJsX3JlLnN1YignLycsIHVybCkKKyAgICAgICAgaWYgdHJpbToKKyAgICAgICAgICAgIHVybCA9IHVybC5yc3RyaXAoJy8nKQorICAgICAgICByZXR1cm4gZG9tYWluLCB1cmwKKworICAgIGRlZiBzb3J0X2FwcHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBNYWtlIHN1cmUgYXBwbGljYXRpb25zIGFyZSBzb3J0ZWQgd2l0aCBsb25nZXN0IFVSTHMgZmlyc3QKKyAgICAgICAgIiIiCisgICAgICAgIGRlZiBrZXkoYXBwX2Rlc2MpOgorICAgICAgICAgICAgKGRvbWFpbiwgdXJsKSwgYXBwID0gYXBwX2Rlc2MKKyAgICAgICAgICAgIGlmIG5vdCBkb21haW46CisgICAgICAgICAgICAgICAgIyBNYWtlIHN1cmUgZW1wdHkgZG9tYWlucyBzb3J0IGxhc3Q6CisgICAgICAgICAgICAgICAgcmV0dXJuICdceGZmJywgLWxlbih1cmwpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBkb21haW4sIC1sZW4odXJsKQorICAgICAgICBhcHBzID0gWyhrZXkoZGVzYyksIGRlc2MpIGZvciBkZXNjIGluIHNlbGYuYXBwbGljYXRpb25zXQorICAgICAgICBhcHBzLnNvcnQoKQorICAgICAgICBzZWxmLmFwcGxpY2F0aW9ucyA9IFtkZXNjIGZvciAoc29ydGFibGUsIGRlc2MpIGluIGFwcHNdCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwgdXJsLCBhcHApOgorICAgICAgICBpZiBhcHAgaXMgTm9uZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkZWwgc2VsZlt1cmxdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGRvbV91cmwgPSBzZWxmLm5vcm1hbGl6ZV91cmwodXJsKQorICAgICAgICBpZiBkb21fdXJsIGluIHNlbGY6CisgICAgICAgICAgICBkZWwgc2VsZltkb21fdXJsXQorICAgICAgICBzZWxmLmFwcGxpY2F0aW9ucy5hcHBlbmQoKGRvbV91cmwsIGFwcCkpCisgICAgICAgIHNlbGYuc29ydF9hcHBzKCkKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCB1cmwpOgorICAgICAgICBkb21fdXJsID0gc2VsZi5ub3JtYWxpemVfdXJsKHVybCkKKyAgICAgICAgZm9yIGFwcF91cmwsIGFwcCBpbiBzZWxmLmFwcGxpY2F0aW9uczoKKyAgICAgICAgICAgIGlmIGFwcF91cmwgPT0gZG9tX3VybDoKKyAgICAgICAgICAgICAgICByZXR1cm4gYXBwCisgICAgICAgIHJhaXNlIEtleUVycm9yKAorICAgICAgICAgICAgIk5vIGFwcGxpY2F0aW9uIHdpdGggdGhlIHVybCAlciAoZG9tYWluOiAlcjsgZXhpc3Rpbmc6ICVzKSIKKyAgICAgICAgICAgICUgKHVybFsxXSwgdXJsWzBdIG9yICcqJywgc2VsZi5hcHBsaWNhdGlvbnMpKQorCisgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIHVybCk6CisgICAgICAgIHVybCA9IHNlbGYubm9ybWFsaXplX3VybCh1cmwpCisgICAgICAgIGZvciBhcHBfdXJsLCBhcHAgaW4gc2VsZi5hcHBsaWNhdGlvbnM6CisgICAgICAgICAgICBpZiBhcHBfdXJsID09IHVybDoKKyAgICAgICAgICAgICAgICBzZWxmLmFwcGxpY2F0aW9ucy5yZW1vdmUoKGFwcF91cmwsIGFwcCkpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKAorICAgICAgICAgICAgICAgICJObyBhcHBsaWNhdGlvbiB3aXRoIHRoZSB1cmwgJXIiICUgKHVybCwpKQorCisgICAgZGVmIGtleXMoc2VsZik6CisgICAgICAgIHJldHVybiBbYXBwX3VybCBmb3IgYXBwX3VybCwgYXBwIGluIHNlbGYuYXBwbGljYXRpb25zXQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgaG9zdCA9IGVudmlyb24uZ2V0KCdIVFRQX0hPU1QnLCBlbnZpcm9uLmdldCgnU0VSVkVSX05BTUUnKSkubG93ZXIoKQorICAgICAgICBpZiAnOicgaW4gaG9zdDoKKyAgICAgICAgICAgIGhvc3QsIHBvcnQgPSBob3N0LnNwbGl0KCc6JywgMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGVudmlyb25bJ3dzZ2kudXJsX3NjaGVtZSddID09ICdodHRwJzoKKyAgICAgICAgICAgICAgICBwb3J0ID0gJzgwJworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwb3J0ID0gJzQ0MycKKyAgICAgICAgcGF0aF9pbmZvID0gZW52aXJvbi5nZXQoJ1BBVEhfSU5GTycpCisgICAgICAgIHBhdGhfaW5mbyA9IHNlbGYubm9ybWFsaXplX3VybChwYXRoX2luZm8sIEZhbHNlKVsxXQorICAgICAgICBmb3IgKGRvbWFpbiwgYXBwX3VybCksIGFwcCBpbiBzZWxmLmFwcGxpY2F0aW9uczoKKyAgICAgICAgICAgIGlmIGRvbWFpbiBhbmQgZG9tYWluICE9IGhvc3QgYW5kIGRvbWFpbiAhPSBob3N0Kyc6Jytwb3J0OgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiAocGF0aF9pbmZvID09IGFwcF91cmwKKyAgICAgICAgICAgICAgICBvciBwYXRoX2luZm8uc3RhcnRzd2l0aChhcHBfdXJsICsgJy8nKSk6CisgICAgICAgICAgICAgICAgZW52aXJvblsnU0NSSVBUX05BTUUnXSArPSBhcHBfdXJsCisgICAgICAgICAgICAgICAgZW52aXJvblsnUEFUSF9JTkZPJ10gPSBwYXRoX2luZm9bbGVuKGFwcF91cmwpOl0KKyAgICAgICAgICAgICAgICByZXR1cm4gYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBlbnZpcm9uWydwYXN0ZS51cmxtYXBfb2JqZWN0J10gPSBzZWxmCisgICAgICAgIHJldHVybiBzZWxmLm5vdF9mb3VuZF9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworCitjbGFzcyBQYXRoUHJveHlVUkxNYXAob2JqZWN0KToKKworICAgICIiIgorICAgIFRoaXMgaXMgYSB3cmFwcGVyIGZvciBVUkxNYXAgdGhhdCBjYXRjaGVzIGFueSBzdHJpbmdzIHRoYXQKKyAgICBhcmUgcGFzc2VkIGluIGFzIGFwcGxpY2F0aW9uczsgdGhlc2Ugc3RyaW5ncyBhcmUgdHJlYXRlZCBhcworICAgIGZpbGVuYW1lcyAocmVsYXRpdmUgdG8gYGJhc2VfcGF0aGApIGFuZCBhcmUgcGFzc2VkIHRvIHRoZQorICAgIGNhbGxhYmxlIGBidWlsZGVyYCwgd2hpY2ggd2lsbCByZXR1cm4gYW4gYXBwbGljYXRpb24uCisKKyAgICBUaGlzIGlzIGludGVuZGVkIGZvciBjYXNlcyB3aGVuIGNvbmZpZ3VyYXRpb24gZmlsZXMgY2FuIGJlCisgICAgdHJlYXRlZCBhcyBhcHBsaWNhdGlvbnMuCisKKyAgICBgYmFzZV9wYXN0ZV91cmxgIGlzIHRoZSBVUkwgdW5kZXIgd2hpY2ggYWxsIGFwcGxpY2F0aW9ucyBhZGRlZCB0aHJvdWdoCisgICAgdGhpcyB3cmFwcGVyIG11c3QgZ28uICBVc2UgYGAiImBgIGlmIHlvdSB3YW50IHRoaXMgdG8gbm90CisgICAgY2hhbmdlIGluY29taW5nIFVSTHMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWFwLCBiYXNlX3Bhc3RlX3VybCwgYmFzZV9wYXRoLCBidWlsZGVyKToKKyAgICAgICAgc2VsZi5tYXAgPSBtYXAKKyAgICAgICAgc2VsZi5iYXNlX3Bhc3RlX3VybCA9IHNlbGYubWFwLm5vcm1hbGl6ZV91cmwoYmFzZV9wYXN0ZV91cmwpCisgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9wYXRoCisgICAgICAgIHNlbGYuYnVpbGRlciA9IGJ1aWxkZXIKKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCB1cmwsIGFwcCk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoYXBwLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICBhcHBfZm4gPSBvcy5wYXRoLmpvaW4oc2VsZi5iYXNlX3BhdGgsIGFwcCkKKyAgICAgICAgICAgIGFwcCA9IHNlbGYuYnVpbGRlcihhcHBfZm4pCisgICAgICAgIHVybCA9IHNlbGYubWFwLm5vcm1hbGl6ZV91cmwodXJsKQorICAgICAgICAjIEBAOiBUaGlzIG1lYW5zIGh0dHA6Ly9mb28uY29tL2JhciB3aWxsIHBvdGVudGlhbGx5CisgICAgICAgICMgbWF0Y2ggZm9vLmNvbSwgYnV0IC9iYXNlX3Bhc3RlX3VybC9iYXIsIHdoaWNoIGlzIHVuaW50dWl0aXZlCisgICAgICAgIHVybCA9ICh1cmxbMF0gb3Igc2VsZi5iYXNlX3Bhc3RlX3VybFswXSwKKyAgICAgICAgICAgICAgIHNlbGYuYmFzZV9wYXN0ZV91cmxbMV0gKyB1cmxbMV0pCisgICAgICAgIHNlbGYubWFwW3VybF0gPSBhcHAKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyKToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5tYXAsIGF0dHIpCisKKyAgICAjIFRoaXMgaXMgcmVhbGx5IHRoZSBvbmx5IHNldHRhYmxlIGF0dHJpYnV0ZQorICAgIGRlZiBub3RfZm91bmRfYXBwbGljYXRpb25fX2dldChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWFwLm5vdF9mb3VuZF9hcHBsaWNhdGlvbgorICAgIGRlZiBub3RfZm91bmRfYXBwbGljYXRpb25fX3NldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYubWFwLm5vdF9mb3VuZF9hcHBsaWNhdGlvbiA9IHZhbHVlCisgICAgbm90X2ZvdW5kX2FwcGxpY2F0aW9uID0gcHJvcGVydHkobm90X2ZvdW5kX2FwcGxpY2F0aW9uX19nZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90X2ZvdW5kX2FwcGxpY2F0aW9uX19zZXQpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXJscGFyc2VyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3VybHBhcnNlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWJjYmFjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3VybHBhcnNlci5weQpAQCAtMCwwICsxLDYzOSBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitXU0dJIGFwcGxpY2F0aW9ucyB0aGF0IHBhcnNlIHRoZSBVUkwgYW5kIGRpc3BhdGNoIHRvIG9uLWRpc2sgcmVzb3VyY2VzCisiIiIKKworaW1wb3J0IG9zCitpbXBvcnQgc2l4CitpbXBvcnQgc3lzCitpbXBvcnQgaW1wCitpbXBvcnQgbWltZXR5cGVzCit0cnk6CisgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBwa2dfcmVzb3VyY2VzID0gTm9uZQorZnJvbSBwYXN0ZSBpbXBvcnQgcmVxdWVzdAorZnJvbSBwYXN0ZSBpbXBvcnQgZmlsZWFwcAorZnJvbSBwYXN0ZS51dGlsIGltcG9ydCBpbXBvcnRfc3RyaW5nCitmcm9tIHBhc3RlIGltcG9ydCBodHRwZXhjZXB0aW9ucworZnJvbSAuaHR0cGhlYWRlcnMgaW1wb3J0IEVUQUcKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgY29udmVydGVycworCitjbGFzcyBOb0RlZmF1bHQob2JqZWN0KToKKyAgICBwYXNzCisKK19fYWxsX18gPSBbJ1VSTFBhcnNlcicsICdTdGF0aWNVUkxQYXJzZXInLCAnUGtnUmVzb3VyY2VzUGFyc2VyJ10KKworY2xhc3MgVVJMUGFyc2VyKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBXU0dJIG1pZGRsZXdhcmUKKworICAgIEFwcGxpY2F0aW9uIGRpc3BhdGNoaW5nLCBiYXNlZCBvbiBVUkwuICBBbiBpbnN0YW5jZSBvZiBgVVJMUGFyc2VyYCBpcworICAgIGFuIGFwcGxpY2F0aW9uIHRoYXQgbG9hZHMgYW5kIGRlbGVnYXRlcyB0byBvdGhlciBhcHBsaWNhdGlvbnMuICBJdAorICAgIGxvb2tzIGZvciBmaWxlcyBpbiBpdHMgZGlyZWN0b3J5IHRoYXQgbWF0Y2ggdGhlIGZpcnN0IHBhcnQgb2YKKyAgICBQQVRIX0lORk87IHRoZXNlIG1heSBoYXZlIGFuIGV4dGVuc2lvbiwgYnV0IGFyZSBub3QgcmVxdWlyZWQgdG8gaGF2ZQorICAgIG9uZSwgaW4gd2hpY2ggY2FzZSB0aGUgYXZhaWxhYmxlIGZpbGVzIGFyZSBzZWFyY2hlZCB0byBmaW5kIHRoZQorICAgIGFwcHJvcHJpYXRlIGZpbGUuICBJZiBpdCBpcyBhbWJpZ3VvdXMsIGEgNDA0IGlzIHJldHVybmVkIGFuZCBhbiBlcnJvcgorICAgIGxvZ2dlZC4KKworICAgIEJ5IGRlZmF1bHQgdGhlcmUgaXMgYSBjb25zdHJ1Y3RvciBmb3IgLnB5IGZpbGVzIHRoYXQgbG9hZHMgdGhlIG1vZHVsZSwKKyAgICBhbmQgbG9va3MgZm9yIGFuIGF0dHJpYnV0ZSBgYGFwcGxpY2F0aW9uYGAsIHdoaWNoIGlzIGEgcmVhZHkKKyAgICBhcHBsaWNhdGlvbiBvYmplY3QsIG9yIGFuIGF0dHJpYnV0ZSB0aGF0IG1hdGNoZXMgdGhlIG1vZHVsZSBuYW1lLAorICAgIHdoaWNoIGlzIGEgZmFjdG9yeSBmb3IgYnVpbGRpbmcgYXBwbGljYXRpb25zLCBhbmQgaXMgY2FsbGVkIHdpdGggbm8KKyAgICBhcmd1bWVudHMuCisKKyAgICBVUkxQYXJzZXIgd2lsbCBhbHNvIGxvb2sgaW4gX19pbml0X18ucHkgZm9yIHNwZWNpYWwgb3ZlcnJpZGVzLgorICAgIFRoZXNlIG92ZXJyaWRlcyBhcmU6CisKKyAgICBgYHVybHBhcnNlcl9ob29rKGVudmlyb24pYGAKKyAgICAgICAgVGhpcyBjYW4gbW9kaWZ5IHRoZSBlbnZpcm9ubWVudC4gIEl0cyByZXR1cm4gdmFsdWUgaXMgaWdub3JlZCwKKyAgICAgICAgYW5kIGl0IGNhbm5vdCBiZSB1c2VkIHRvIGNoYW5nZSB0aGUgcmVzcG9uc2UgaW4gYW55IHdheS4gIFlvdQorICAgICAgICAqY2FuKiB1c2UgdGhpcywgZm9yIGV4YW1wbGUsIHRvIG1hbmlwdWxhdGUgU0NSSVBUX05BTUUvUEFUSF9JTkZPCisgICAgICAgICh0cnkgdG8ga2VlcCB0aGVtIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3JpZ2luYWwgVVJMIC0tIGJ1dAorICAgICAgICBjb25zdW1pbmcgUEFUSF9JTkZPIGFuZCBtb3ZpbmcgdGhhdCB0byBTQ1JJUFRfTkFNRSBpcyBvaykuCisKKyAgICBgYHVybHBhcnNlcl93cmFwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlLCBhcHApYGA6CisgICAgICAgIEFmdGVyIFVSTFBhcnNlciBmaW5kcyB0aGUgYXBwbGljYXRpb24sIGl0IGNhbGxzIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgKGlmIHByZXNlbnQpLiAgSWYgdGhpcyBmdW5jdGlvbiBkb2Vzbid0IGNhbGwKKyAgICAgICAgYGBhcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpYGAgdGhlbiB0aGUgYXBwbGljYXRpb24gd29uJ3QgYmUKKyAgICAgICAgY2FsbGVkIGF0IGFsbCEgIFRoaXMgY2FuIGJlIHVzZWQgdG8gYWxsb2NhdGUgcmVzb3VyY2VzICh3aXRoCisgICAgICAgIGBgdHJ5OmZpbmFsbHk6YGApIG9yIG90aGVyd2lzZSBmaWx0ZXIgdGhlIG91dHB1dCBvZiB0aGUKKyAgICAgICAgYXBwbGljYXRpb24uCisKKyAgICBgYG5vdF9mb3VuZF9ob29rKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKWBgOgorICAgICAgICBJZiBubyBmaWxlIGNhbiBiZSBmb3VuZCAoKmluIHRoaXMgZGlyZWN0b3J5KikgdG8gbWF0Y2ggdGhlCisgICAgICAgIHJlcXVlc3QsIHRoZW4gdGhpcyBXU0dJIGFwcGxpY2F0aW9uIHdpbGwgYmUgY2FsbGVkLiAgWW91IGNhbgorICAgICAgICB1c2UgdGhpcyB0byBjaGFuZ2UgdGhlIFVSTCBhbmQgcGFzcyB0aGUgcmVxdWVzdCBiYWNrIHRvCisgICAgICAgIFVSTFBhcnNlciBhZ2Fpbiwgb3Igb24gdG8gc29tZSBvdGhlciBhcHBsaWNhdGlvbi4gIFRoaXMKKyAgICAgICAgZG9lc24ndCBjYXRjaCBhbGwgYGA0MDQgTm90IEZvdW5kYGAgcmVzcG9uc2VzLCBqdXN0IG1pc3NpbmcKKyAgICAgICAgZmlsZXMuCisKKyAgICBgYGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKWBgOgorICAgICAgICBUaGlzIGJhc2ljYWxseSBvdmVycmlkZXMgVVJMUGFyc2VyIGNvbXBsZXRlbHksIGFuZCB0aGUgZ2l2ZW4KKyAgICAgICAgYXBwbGljYXRpb24gaXMgdXNlZCBmb3IgYWxsIHJlcXVlc3RzLiAgYGB1cmxwYXJzZXJfd3JhcGBgIGFuZAorICAgICAgICBgYHVybHBhcnNlcl9ob29rYGAgYXJlIHN0aWxsIGNhbGxlZCwgYnV0IHRoZSBmaWxlc3lzdGVtIGlzbid0CisgICAgICAgIHNlYXJjaGVkIGluIGFueSB3YXkuCisgICAgIiIiCisKKyAgICBwYXJzZXJzX2J5X2RpcmVjdG9yeSA9IHt9CisKKyAgICAjIFRoaXMgaXMgbGF6aWx5IGluaXRpYWxpemVkCisgICAgaW5pdF9tb2R1bGUgPSBOb0RlZmF1bHQKKworICAgIGdsb2JhbF9jb25zdHJ1Y3RvcnMgPSB7fQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGdsb2JhbF9jb25mLAorICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGJhc2VfcHl0aG9uX25hbWUsCisgICAgICAgICAgICAgICAgIGluZGV4X25hbWVzPU5vRGVmYXVsdCwKKyAgICAgICAgICAgICAgICAgaGlkZV9leHRlbnNpb25zPU5vRGVmYXVsdCwKKyAgICAgICAgICAgICAgICAgaWdub3JlX2V4dGVuc2lvbnM9Tm9EZWZhdWx0LAorICAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgKipjb25zdHJ1Y3Rvcl9jb25mKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZSBhIFVSTFBhcnNlciBvYmplY3QgdGhhdCBsb29rcyBhdCBgZGlyZWN0b3J5YC4KKyAgICAgICAgYGJhc2VfcHl0aG9uX25hbWVgIGlzIHRoZSBwYWNrYWdlIHRoYXQgdGhpcyBkaXJlY3RvcnkKKyAgICAgICAgcmVwcmVzZW50cywgdGh1cyBhbnkgUHl0aG9uIG1vZHVsZXMgaW4gdGhpcyBkaXJlY3Rvcnkgd2lsbAorICAgICAgICBiZSBnaXZlbiBuYW1lcyB1bmRlciB0aGlzIHBhY2thZ2UuCisgICAgICAgICIiIgorICAgICAgICBpZiBnbG9iYWxfY29uZjoKKyAgICAgICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICAnVGhlIGdsb2JhbF9jb25mIGFyZ3VtZW50IHRvIFVSTFBhcnNlciBpcyBkZXByZWNhdGVkOyAnCisgICAgICAgICAgICAgICAgJ2VpdGhlciBwYXNzIGluIE5vbmUgb3Ige30sIG9yIHVzZSBtYWtlX3VybF9wYXJzZXInLAorICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGdsb2JhbF9jb25mID0ge30KKyAgICAgICAgaWYgb3MucGF0aC5zZXAgIT0gJy8nOgorICAgICAgICAgICAgZGlyZWN0b3J5ID0gZGlyZWN0b3J5LnJlcGxhY2Uob3MucGF0aC5zZXAsICcvJykKKyAgICAgICAgc2VsZi5kaXJlY3RvcnkgPSBkaXJlY3RvcnkKKyAgICAgICAgc2VsZi5iYXNlX3B5dGhvbl9uYW1lID0gYmFzZV9weXRob25fbmFtZQorICAgICAgICAjIFRoaXMgbG9naWMgaGVyZSBzaG91bGQgYmUgZGVwcmVjYXRlZCBzaW5jZSBpdCBpcyBpbgorICAgICAgICAjIG1ha2VfdXJsX3BhcnNlcgorICAgICAgICBpZiBpbmRleF9uYW1lcyBpcyBOb0RlZmF1bHQ6CisgICAgICAgICAgICBpbmRleF9uYW1lcyA9IGdsb2JhbF9jb25mLmdldCgKKyAgICAgICAgICAgICAgICAnaW5kZXhfbmFtZXMnLCAoJ2luZGV4JywgJ0luZGV4JywgJ21haW4nLCAnTWFpbicpKQorICAgICAgICBzZWxmLmluZGV4X25hbWVzID0gY29udmVydGVycy5hc2xpc3QoaW5kZXhfbmFtZXMpCisgICAgICAgIGlmIGhpZGVfZXh0ZW5zaW9ucyBpcyBOb0RlZmF1bHQ6CisgICAgICAgICAgICBoaWRlX2V4dGVuc2lvbnMgPSBnbG9iYWxfY29uZi5nZXQoCisgICAgICAgICAgICAgICAgJ2hpZGVfZXh0ZW5zaW9ucycsICgnLnB5YycsICcuYmFrJywgJy5weX4nLCAnLnB5bycpKQorICAgICAgICBzZWxmLmhpZGVfZXh0ZW5zaW9ucyA9IGNvbnZlcnRlcnMuYXNsaXN0KGhpZGVfZXh0ZW5zaW9ucykKKyAgICAgICAgaWYgaWdub3JlX2V4dGVuc2lvbnMgaXMgTm9EZWZhdWx0OgorICAgICAgICAgICAgaWdub3JlX2V4dGVuc2lvbnMgPSBnbG9iYWxfY29uZi5nZXQoCisgICAgICAgICAgICAgICAgJ2lnbm9yZV9leHRlbnNpb25zJywgKCkpCisgICAgICAgIHNlbGYuaWdub3JlX2V4dGVuc2lvbnMgPSBjb252ZXJ0ZXJzLmFzbGlzdChpZ25vcmVfZXh0ZW5zaW9ucykKKyAgICAgICAgc2VsZi5jb25zdHJ1Y3RvcnMgPSBzZWxmLmdsb2JhbF9jb25zdHJ1Y3RvcnMuY29weSgpCisgICAgICAgIGlmIGNvbnN0cnVjdG9yczoKKyAgICAgICAgICAgIHNlbGYuY29uc3RydWN0b3JzLnVwZGF0ZShjb25zdHJ1Y3RvcnMpCisgICAgICAgICMgQEA6IFNob3VsZCB3ZSBhbHNvIGNoZWNrIHRoZSBnbG9iYWwgb3B0aW9ucyBmb3IgY29uc3RydWN0b3JzPworICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gY29uc3RydWN0b3JfY29uZi5pdGVtcygpOgorICAgICAgICAgICAgaWYgbm90IG5hbWUuc3RhcnRzd2l0aCgnY29uc3RydWN0b3IgJyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIk9ubHkgZXh0cmEgY29uZmlndXJhdGlvbiBrZXlzIGFsbG93ZWQgYXJlICIKKyAgICAgICAgICAgICAgICAgICAgIidjb25zdHJ1Y3RvciAuZXh0ID0gaW1wb3J0X2V4cHInOyB5b3UgZ2F2ZSAlciAiCisgICAgICAgICAgICAgICAgICAgICIoPSVyKSIgJSAobmFtZSwgdmFsdWUpKQorICAgICAgICAgICAgZXh0ID0gbmFtZVtsZW4oJ2NvbnN0cnVjdG9yICcpOl0uc3RyaXAoKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHZhbHVlID0gaW1wb3J0X3N0cmluZy5ldmFsX2ltcG9ydCh2YWx1ZSkKKyAgICAgICAgICAgIHNlbGYuY29uc3RydWN0b3JzW2V4dF0gPSB2YWx1ZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgZW52aXJvblsncGFzdGUudXJscGFyc2VyLmJhc2VfcHl0aG9uX25hbWUnXSA9IHNlbGYuYmFzZV9weXRob25fbmFtZQorICAgICAgICBpZiBzZWxmLmluaXRfbW9kdWxlIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgICAgIHNlbGYuaW5pdF9tb2R1bGUgPSBzZWxmLmZpbmRfaW5pdF9tb2R1bGUoZW52aXJvbikKKyAgICAgICAgcGF0aF9pbmZvID0gZW52aXJvbi5nZXQoJ1BBVEhfSU5GTycsICcnKQorICAgICAgICBpZiBub3QgcGF0aF9pbmZvOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWRkX3NsYXNoKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBpZiAoc2VsZi5pbml0X21vZHVsZQorICAgICAgICAgICAgYW5kIGdldGF0dHIoc2VsZi5pbml0X21vZHVsZSwgJ3VybHBhcnNlcl9ob29rJywgTm9uZSkpOgorICAgICAgICAgICAgc2VsZi5pbml0X21vZHVsZS51cmxwYXJzZXJfaG9vayhlbnZpcm9uKQorICAgICAgICBvcmlnX3BhdGhfaW5mbyA9IGVudmlyb25bJ1BBVEhfSU5GTyddCisgICAgICAgIG9yaWdfc2NyaXB0X25hbWUgPSBlbnZpcm9uWydTQ1JJUFRfTkFNRSddCisgICAgICAgIGFwcGxpY2F0aW9uLCBmaWxlbmFtZSA9IHNlbGYuZmluZF9hcHBsaWNhdGlvbihlbnZpcm9uKQorICAgICAgICBpZiBub3QgYXBwbGljYXRpb246CisgICAgICAgICAgICBpZiAoc2VsZi5pbml0X21vZHVsZQorICAgICAgICAgICAgICAgIGFuZCBnZXRhdHRyKHNlbGYuaW5pdF9tb2R1bGUsICdub3RfZm91bmRfaG9vaycsIE5vbmUpCisgICAgICAgICAgICAgICAgYW5kIGVudmlyb24uZ2V0KCdwYXN0ZS51cmxwYXJzZXIubm90X2ZvdW5kX3BhcnNlcicpIGlzIG5vdCBzZWxmKToKKyAgICAgICAgICAgICAgICBub3RfZm91bmRfaG9vayA9IHNlbGYuaW5pdF9tb2R1bGUubm90X2ZvdW5kX2hvb2sKKyAgICAgICAgICAgICAgICBlbnZpcm9uWydwYXN0ZS51cmxwYXJzZXIubm90X2ZvdW5kX3BhcnNlciddID0gc2VsZgorICAgICAgICAgICAgICAgIGVudmlyb25bJ1BBVEhfSU5GTyddID0gb3JpZ19wYXRoX2luZm8KKyAgICAgICAgICAgICAgICBlbnZpcm9uWydTQ1JJUFRfTkFNRSddID0gb3JpZ19zY3JpcHRfbmFtZQorICAgICAgICAgICAgICAgIHJldHVybiBub3RfZm91bmRfaG9vayhlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgbmFtZSwgcmVzdF9vZl9wYXRoID0gcmVxdWVzdC5wYXRoX2luZm9fc3BsaXQoZW52aXJvblsnUEFUSF9JTkZPJ10pCisgICAgICAgICAgICAgICAgaWYgbm90IG5hbWU6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnb25lIG9mICVzJyAlICcsICcuam9pbigKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5kZXhfbmFtZXMgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIFsnKG5vIGluZGV4X25hbWVzIGRlZmluZWQpJ10pCisKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5ub3RfZm91bmQoCisgICAgICAgICAgICAgICAgICAgIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAnVHJpZWQgdG8gbG9hZCAlcyBmcm9tIGRpcmVjdG9yeSAlcycKKyAgICAgICAgICAgICAgICAgICAgJSAobmFtZSwgc2VsZi5kaXJlY3RvcnkpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBlbnZpcm9uWyd3c2dpLmVycm9ycyddLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAnRm91bmQgcmVzb3VyY2UgJXMsIGJ1dCBjb3VsZCBub3QgY29uc3RydWN0IGFwcGxpY2F0aW9uXG4nCisgICAgICAgICAgICAgICAgICAgICUgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYubm90X2ZvdW5kKAorICAgICAgICAgICAgICAgICAgICBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgJ1RyaWVkIHRvIGxvYWQgJXMgZnJvbSBkaXJlY3RvcnkgJXMnCisgICAgICAgICAgICAgICAgICAgICUgKGZpbGVuYW1lLCBzZWxmLmRpcmVjdG9yeSkpCisgICAgICAgIGlmIChzZWxmLmluaXRfbW9kdWxlCisgICAgICAgICAgICBhbmQgZ2V0YXR0cihzZWxmLmluaXRfbW9kdWxlLCAndXJscGFyc2VyX3dyYXAnLCBOb25lKSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5pbml0X21vZHVsZS51cmxwYXJzZXJfd3JhcCgKKyAgICAgICAgICAgICAgICBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSwgYXBwbGljYXRpb24pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgZmluZF9hcHBsaWNhdGlvbihzZWxmLCBlbnZpcm9uKToKKyAgICAgICAgaWYgKHNlbGYuaW5pdF9tb2R1bGUKKyAgICAgICAgICAgIGFuZCBnZXRhdHRyKHNlbGYuaW5pdF9tb2R1bGUsICdhcHBsaWNhdGlvbicsIE5vbmUpCisgICAgICAgICAgICBhbmQgbm90IGVudmlyb24uZ2V0KCdwYXN0ZS51cmxwYXJzZXIuaW5pdF9hcHBsaWNhdGlvbicpID09IGVudmlyb25bJ1NDUklQVF9OQU1FJ10pOgorICAgICAgICAgICAgZW52aXJvblsncGFzdGUudXJscGFyc2VyLmluaXRfYXBwbGljYXRpb24nXSA9IGVudmlyb25bJ1NDUklQVF9OQU1FJ10KKyAgICAgICAgICAgIHJldHVybiBzZWxmLmluaXRfbW9kdWxlLmFwcGxpY2F0aW9uLCBOb25lCisgICAgICAgIG5hbWUsIHJlc3Rfb2ZfcGF0aCA9IHJlcXVlc3QucGF0aF9pbmZvX3NwbGl0KGVudmlyb25bJ1BBVEhfSU5GTyddKQorICAgICAgICBlbnZpcm9uWydQQVRIX0lORk8nXSA9IHJlc3Rfb2ZfcGF0aAorICAgICAgICBpZiBuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZW52aXJvblsnU0NSSVBUX05BTUUnXSA9IGVudmlyb24uZ2V0KCdTQ1JJUFRfTkFNRScsICcnKSArICcvJyArIG5hbWUKKyAgICAgICAgaWYgbm90IG5hbWU6CisgICAgICAgICAgICBuYW1lcyA9IHNlbGYuaW5kZXhfbmFtZXMKKyAgICAgICAgICAgIGZvciBpbmRleF9uYW1lIGluIG5hbWVzOgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gc2VsZi5maW5kX2ZpbGUoZW52aXJvbiwgaW5kZXhfbmFtZSkKKyAgICAgICAgICAgICAgICBpZiBmaWxlbmFtZToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBOb25lIG9mIHRoZSBpbmRleCBmaWxlcyBmb3VuZAorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmlsZW5hbWUgPSBzZWxmLmZpbmRfZmlsZShlbnZpcm9uLCBuYW1lKQorICAgICAgICBpZiBmaWxlbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUsIGZpbGVuYW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRfYXBwbGljYXRpb24oZW52aXJvbiwgZmlsZW5hbWUpLCBmaWxlbmFtZQorCisgICAgZGVmIG5vdF9mb3VuZChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSwgZGVidWdfbWVzc2FnZT1Ob25lKToKKyAgICAgICAgZXhjID0gaHR0cGV4Y2VwdGlvbnMuSFRUUE5vdEZvdW5kKAorICAgICAgICAgICAgJ1RoZSByZXNvdXJjZSBhdCAlcyBjb3VsZCBub3QgYmUgZm91bmQnCisgICAgICAgICAgICAlIHJlcXVlc3QuY29uc3RydWN0X3VybChlbnZpcm9uKSwKKyAgICAgICAgICAgIGNvbW1lbnQ9ZGVidWdfbWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIGV4Yy53c2dpX2FwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgZGVmIGFkZF9zbGFzaChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGhhcHBlbnMgd2hlbiB5b3UgdHJ5IHRvIGdldCB0byBhIGRpcmVjdG9yeQorICAgICAgICB3aXRob3V0IGEgdHJhaWxpbmcgLworICAgICAgICAiIiIKKyAgICAgICAgdXJsID0gcmVxdWVzdC5jb25zdHJ1Y3RfdXJsKGVudmlyb24sIHdpdGhfcXVlcnlfc3RyaW5nPUZhbHNlKQorICAgICAgICB1cmwgKz0gJy8nCisgICAgICAgIGlmIGVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnKToKKyAgICAgICAgICAgIHVybCArPSAnPycgKyBlbnZpcm9uWydRVUVSWV9TVFJJTkcnXQorICAgICAgICBleGMgPSBodHRwZXhjZXB0aW9ucy5IVFRQTW92ZWRQZXJtYW5lbnRseSgKKyAgICAgICAgICAgICdUaGUgcmVzb3VyY2UgaGFzIG1vdmVkIHRvICVzIC0geW91IHNob3VsZCBiZSByZWRpcmVjdGVkICcKKyAgICAgICAgICAgICdhdXRvbWF0aWNhbGx5LicgJSB1cmwsCisgICAgICAgICAgICBoZWFkZXJzPVsoJ2xvY2F0aW9uJywgdXJsKV0pCisgICAgICAgIHJldHVybiBleGMud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgIGRlZiBmaW5kX2ZpbGUoc2VsZiwgZW52aXJvbiwgYmFzZV9maWxlbmFtZSk6CisgICAgICAgIHBvc3NpYmxlID0gW10KKyAgICAgICAgIiIiQ2FjaGUgYSBmZXcgdmFsdWVzIHRvIHJlZHVjZSBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkIiIiCisgICAgICAgIGZvciBmaWxlbmFtZSBpbiBvcy5saXN0ZGlyKHNlbGYuZGlyZWN0b3J5KToKKyAgICAgICAgICAgIGJhc2UsIGV4dCA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpCisgICAgICAgICAgICBmdWxsX2ZpbGVuYW1lID0gb3MucGF0aC5qb2luKHNlbGYuZGlyZWN0b3J5LCBmaWxlbmFtZSkKKyAgICAgICAgICAgIGlmIChleHQgaW4gc2VsZi5oaWRlX2V4dGVuc2lvbnMKKyAgICAgICAgICAgICAgICBvciBub3QgYmFzZSk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lID09IGJhc2VfZmlsZW5hbWU6CisgICAgICAgICAgICAgICAgcG9zc2libGUuYXBwZW5kKGZ1bGxfZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGV4dCBpbiBzZWxmLmlnbm9yZV9leHRlbnNpb25zOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBiYXNlID09IGJhc2VfZmlsZW5hbWU6CisgICAgICAgICAgICAgICAgcG9zc2libGUuYXBwZW5kKGZ1bGxfZmlsZW5hbWUpCisgICAgICAgIGlmIG5vdCBwb3NzaWJsZToKKyAgICAgICAgICAgICNlbnZpcm9uWyd3c2dpLmVycm9ycyddLndyaXRlKAorICAgICAgICAgICAgIyAgICAnTm8gZmlsZSBmb3VuZCBtYXRjaGluZyAlciBpbiAlc1xuJworICAgICAgICAgICAgIyAgICAlIChiYXNlX2ZpbGVuYW1lLCBzZWxmLmRpcmVjdG9yeSkpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBpZiBsZW4ocG9zc2libGUpID4gMToKKyAgICAgICAgICAgICMgSWYgdGhlcmUgaXMgYW4gZXhhY3QgbWF0Y2gsIHRoaXMgaXNuJ3QgJ2FtYmlndW91cycKKyAgICAgICAgICAgICMgcGVyIHNlOyBpdCBtaWdodCBtZWFuIGZvby5naWYgYW5kIGZvby5naWYuYmFjayBmb3IKKyAgICAgICAgICAgICMgaW5zdGFuY2UKKyAgICAgICAgICAgIGlmIGZ1bGxfZmlsZW5hbWUgaW4gcG9zc2libGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGxfZmlsZW5hbWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZW52aXJvblsnd3NnaS5lcnJvcnMnXS53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgJ0FtYmlndW91cyBVUkw6ICVzOyBtYXRjaGVzIGZpbGVzICVzXG4nCisgICAgICAgICAgICAgICAgICAgICUgKHJlcXVlc3QuY29uc3RydWN0X3VybChlbnZpcm9uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKHBvc3NpYmxlKSkpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gcG9zc2libGVbMF0KKworICAgIGRlZiBnZXRfYXBwbGljYXRpb24oc2VsZiwgZW52aXJvbiwgZmlsZW5hbWUpOgorICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKGZpbGVuYW1lKToKKyAgICAgICAgICAgIHQgPSAnZGlyJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgdCA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzFdCisgICAgICAgIGNvbnN0cnVjdG9yID0gc2VsZi5jb25zdHJ1Y3RvcnMuZ2V0KHQsIHNlbGYuY29uc3RydWN0b3JzLmdldCgnKicpKQorICAgICAgICBpZiBjb25zdHJ1Y3RvciBpcyBOb25lOgorICAgICAgICAgICAgI2Vudmlyb25bJ3dzZ2kuZXJyb3JzJ10ud3JpdGUoCisgICAgICAgICAgICAjICAgICdObyBjb25zdHJ1Y3RvciBmb3VuZCBmb3IgJXNcbicgJSB0KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yCisgICAgICAgIGFwcCA9IGNvbnN0cnVjdG9yKHNlbGYsIGVudmlyb24sIGZpbGVuYW1lKQorICAgICAgICBpZiBhcHAgaXMgTm9uZToKKyAgICAgICAgICAgICNlbnZpcm9uWyd3c2dpLmVycm9ycyddLndyaXRlKAorICAgICAgICAgICAgIyAgICAnQ29uc3RydWN0b3IgJXMgcmV0dXJuIE5vbmUgZm9yICVzXG4nICUKKyAgICAgICAgICAgICMgICAgKGNvbnN0cnVjdG9yLCBmaWxlbmFtZSkpCisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiBhcHAKKworICAgIGRlZiByZWdpc3Rlcl9jb25zdHJ1Y3RvcihjbHMsIGV4dGVuc2lvbiwgY29uc3RydWN0b3IpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVnaXN0ZXIgYSBmdW5jdGlvbiBhcyBhIGNvbnN0cnVjdG9yLiAgUmVnaXN0ZXJlZCBjb25zdHJ1Y3RvcnMKKyAgICAgICAgYXBwbHkgdG8gYWxsIGluc3RhbmNlcyBvZiBgVVJMUGFyc2VyYC4KKworICAgICAgICBUaGUgZXh0ZW5zaW9uIHNob3VsZCBoYXZlIGEgbGVhZGluZyBgYC5gYCwgb3IgdGhlIHNwZWNpYWwKKyAgICAgICAgZXh0ZW5zaW9ucyBgYGRpcmBgIChmb3IgZGlyZWN0b3JpZXMpIGFuZCBgYCpgYCAoYSBjYXRjaC1hbGwpLgorCisgICAgICAgIGBjb25zdHJ1Y3RvcmAgbXVzdCBiZSBhIGNhbGxhYmxlIHRoYXQgdGFrZXMgdHdvIGFyZ3VtZW50czoKKyAgICAgICAgYGBlbnZpcm9uYGAgYW5kIGBgZmlsZW5hbWVgYCwgYW5kIHJldHVybnMgYSBXU0dJIGFwcGxpY2F0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgZCA9IGNscy5nbG9iYWxfY29uc3RydWN0b3JzCisgICAgICAgIGFzc2VydCBleHRlbnNpb24gbm90IGluIGQsICgKKyAgICAgICAgICAgICJBIGNvbnN0cnVjdG9yIGFscmVhZHkgZXhpc3RzIGZvciB0aGUgZXh0ZW5zaW9uICVyICglcikgIgorICAgICAgICAgICAgIndoZW4gYXR0ZW1wdGlvbiB0byByZWdpc3RlciBjb25zdHJ1Y3RvciAlciIKKyAgICAgICAgICAgICUgKGV4dGVuc2lvbiwgZFtleHRlbnNpb25dLCBjb25zdHJ1Y3RvcikpCisgICAgICAgIGRbZXh0ZW5zaW9uXSA9IGNvbnN0cnVjdG9yCisgICAgcmVnaXN0ZXJfY29uc3RydWN0b3IgPSBjbGFzc21ldGhvZChyZWdpc3Rlcl9jb25zdHJ1Y3RvcikKKworICAgIGRlZiBnZXRfcGFyc2VyKHNlbGYsIGRpcmVjdG9yeSwgYmFzZV9weXRob25fbmFtZSk6CisgICAgICAgICIiIgorICAgICAgICBHZXQgYSBwYXJzZXIgZm9yIHRoZSBnaXZlbiBkaXJlY3RvcnksIG9yIGNyZWF0ZSBvbmUgaWYKKyAgICAgICAgbmVjZXNzYXJ5LiAgVGhpcyB3YXkgcGFyc2VycyBjYW4gYmUgY2FjaGVkIGFuZCByZXVzZWQuCisKKyAgICAgICAgIyBAQDogc2V0dGluZ3MgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBmaXJzdCBjYWxsZXIKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcnNlcnNfYnlfZGlyZWN0b3J5WyhkaXJlY3RvcnksIGJhc2VfcHl0aG9uX25hbWUpXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBwYXJzZXIgPSBzZWxmLl9fY2xhc3NfXygKKyAgICAgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGJhc2VfcHl0aG9uX25hbWUsCisgICAgICAgICAgICAgICAgaW5kZXhfbmFtZXM9c2VsZi5pbmRleF9uYW1lcywKKyAgICAgICAgICAgICAgICBoaWRlX2V4dGVuc2lvbnM9c2VsZi5oaWRlX2V4dGVuc2lvbnMsCisgICAgICAgICAgICAgICAgaWdub3JlX2V4dGVuc2lvbnM9c2VsZi5pZ25vcmVfZXh0ZW5zaW9ucywKKyAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcnM9c2VsZi5jb25zdHJ1Y3RvcnMpCisgICAgICAgICAgICBzZWxmLnBhcnNlcnNfYnlfZGlyZWN0b3J5WyhkaXJlY3RvcnksIGJhc2VfcHl0aG9uX25hbWUpXSA9IHBhcnNlcgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlcgorCisgICAgZGVmIGZpbmRfaW5pdF9tb2R1bGUoc2VsZiwgZW52aXJvbik6CisgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5qb2luKHNlbGYuZGlyZWN0b3J5LCAnX19pbml0X18ucHknKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZmlsZW5hbWUpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIGxvYWRfbW9kdWxlKGVudmlyb24sIGZpbGVuYW1lKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzwlcyBkaXJlY3Rvcnk9JXI7IG1vZHVsZT0lcyBhdCAlcz4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBzZWxmLmRpcmVjdG9yeSwKKyAgICAgICAgICAgIHNlbGYuYmFzZV9weXRob25fbmFtZSwKKyAgICAgICAgICAgIGhleChhYnMoaWQoc2VsZikpKSkKKworZGVmIG1ha2VfZGlyZWN0b3J5KHBhcnNlciwgZW52aXJvbiwgZmlsZW5hbWUpOgorICAgIGJhc2VfcHl0aG9uX25hbWUgPSBlbnZpcm9uWydwYXN0ZS51cmxwYXJzZXIuYmFzZV9weXRob25fbmFtZSddCisgICAgaWYgYmFzZV9weXRob25fbmFtZToKKyAgICAgICAgYmFzZV9weXRob25fbmFtZSArPSAiLiIgKyBvcy5wYXRoLmJhc2VuYW1lKGZpbGVuYW1lKQorICAgIGVsc2U6CisgICAgICAgIGJhc2VfcHl0aG9uX25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGZpbGVuYW1lKQorICAgIHJldHVybiBwYXJzZXIuZ2V0X3BhcnNlcihmaWxlbmFtZSwgYmFzZV9weXRob25fbmFtZSkKKworVVJMUGFyc2VyLnJlZ2lzdGVyX2NvbnN0cnVjdG9yKCdkaXInLCBtYWtlX2RpcmVjdG9yeSkKKworZGVmIG1ha2VfdW5rbm93bihwYXJzZXIsIGVudmlyb24sIGZpbGVuYW1lKToKKyAgICByZXR1cm4gZmlsZWFwcC5GaWxlQXBwKGZpbGVuYW1lKQorCitVUkxQYXJzZXIucmVnaXN0ZXJfY29uc3RydWN0b3IoJyonLCBtYWtlX3Vua25vd24pCisKK2RlZiBsb2FkX21vZHVsZShlbnZpcm9uLCBmaWxlbmFtZSk6CisgICAgYmFzZV9weXRob25fbmFtZSA9IGVudmlyb25bJ3Bhc3RlLnVybHBhcnNlci5iYXNlX3B5dGhvbl9uYW1lJ10KKyAgICBtb2R1bGVfbmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5iYXNlbmFtZShmaWxlbmFtZSkpWzBdCisgICAgaWYgYmFzZV9weXRob25fbmFtZToKKyAgICAgICAgbW9kdWxlX25hbWUgPSBiYXNlX3B5dGhvbl9uYW1lICsgJy4nICsgbW9kdWxlX25hbWUKKyAgICByZXR1cm4gbG9hZF9tb2R1bGVfZnJvbV9uYW1lKGVudmlyb24sIGZpbGVuYW1lLCBtb2R1bGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25bJ3dzZ2kuZXJyb3JzJ10pCisKK2RlZiBsb2FkX21vZHVsZV9mcm9tX25hbWUoZW52aXJvbiwgZmlsZW5hbWUsIG1vZHVsZV9uYW1lLCBlcnJvcnMpOgorICAgIGlmIG1vZHVsZV9uYW1lIGluIHN5cy5tb2R1bGVzOgorICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbW9kdWxlX25hbWVdCisgICAgaW5pdF9maWxlbmFtZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoZmlsZW5hbWUpLCAnX19pbml0X18ucHknKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhpbml0X2ZpbGVuYW1lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZiA9IG9wZW4oaW5pdF9maWxlbmFtZSwgJ3cnKQorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBlcnJvcnMud3JpdGUoCisgICAgICAgICAgICAgICAgJ0Nhbm5vdCB3cml0ZSBfX2luaXRfXy5weSBmaWxlIGludG8gZGlyZWN0b3J5ICVzICglcylcbicKKyAgICAgICAgICAgICAgICAlIChvcy5wYXRoLmRpcm5hbWUoZmlsZW5hbWUpLCBlKSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGYud3JpdGUoJyNcbicpCisgICAgICAgIGYuY2xvc2UoKQorICAgIGZwID0gTm9uZQorICAgIGlmIG1vZHVsZV9uYW1lIGluIHN5cy5tb2R1bGVzOgorICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbW9kdWxlX25hbWVdCisgICAgaWYgJy4nIGluIG1vZHVsZV9uYW1lOgorICAgICAgICBwYXJlbnRfbmFtZSA9ICcuJy5qb2luKG1vZHVsZV9uYW1lLnNwbGl0KCcuJylbOi0xXSkKKyAgICAgICAgYmFzZV9uYW1lID0gbW9kdWxlX25hbWUuc3BsaXQoJy4nKVstMV0KKyAgICAgICAgcGFyZW50ID0gbG9hZF9tb2R1bGVfZnJvbV9uYW1lKGVudmlyb24sIG9zLnBhdGguZGlybmFtZShmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRfbmFtZSwgZXJyb3JzKQorICAgIGVsc2U6CisgICAgICAgIGJhc2VfbmFtZSA9IG1vZHVsZV9uYW1lCisgICAgZnAgPSBOb25lCisgICAgdHJ5OgorICAgICAgICBmcCwgcGF0aG5hbWUsIHN0dWZmID0gaW1wLmZpbmRfbW9kdWxlKAorICAgICAgICAgICAgYmFzZV9uYW1lLCBbb3MucGF0aC5kaXJuYW1lKGZpbGVuYW1lKV0pCisgICAgICAgIG1vZHVsZSA9IGltcC5sb2FkX21vZHVsZShtb2R1bGVfbmFtZSwgZnAsIHBhdGhuYW1lLCBzdHVmZikKKyAgICBmaW5hbGx5OgorICAgICAgICBpZiBmcCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZwLmNsb3NlKCkKKyAgICByZXR1cm4gbW9kdWxlCisKK2RlZiBtYWtlX3B5KHBhcnNlciwgZW52aXJvbiwgZmlsZW5hbWUpOgorICAgIG1vZHVsZSA9IGxvYWRfbW9kdWxlKGVudmlyb24sIGZpbGVuYW1lKQorICAgIGlmIG5vdCBtb2R1bGU6CisgICAgICAgIHJldHVybiBOb25lCisgICAgaWYgaGFzYXR0cihtb2R1bGUsICdhcHBsaWNhdGlvbicpIGFuZCBtb2R1bGUuYXBwbGljYXRpb246CisgICAgICAgIHJldHVybiBnZXRhdHRyKG1vZHVsZS5hcHBsaWNhdGlvbiwgJ3dzZ2lfYXBwbGljYXRpb24nLCBtb2R1bGUuYXBwbGljYXRpb24pCisgICAgYmFzZV9uYW1lID0gbW9kdWxlLl9fbmFtZV9fLnNwbGl0KCcuJylbLTFdCisgICAgaWYgaGFzYXR0cihtb2R1bGUsIGJhc2VfbmFtZSk6CisgICAgICAgIG9iaiA9IGdldGF0dHIobW9kdWxlLCBiYXNlX25hbWUpCisgICAgICAgIGlmIGhhc2F0dHIob2JqLCAnd3NnaV9hcHBsaWNhdGlvbicpOgorICAgICAgICAgICAgcmV0dXJuIG9iai53c2dpX2FwcGxpY2F0aW9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEBAOiBPbGQgYmVoYXZpb3I7IHNob3VsZCBwcm9iYWJseSBiZSBkZXByZWNhdGVkIGV2ZW50dWFsbHk6CisgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihtb2R1bGUsIGJhc2VfbmFtZSkoKQorICAgIGVudmlyb25bJ3dzZ2kuZXJyb3JzJ10ud3JpdGUoCisgICAgICAgICJDb3VuZCBub3QgZmluZCBhcHBsaWNhdGlvbiBvciAlcyBpbiAlc1xuIgorICAgICAgICAlIChiYXNlX25hbWUsIG1vZHVsZSkpCisgICAgcmV0dXJuIE5vbmUKKworVVJMUGFyc2VyLnJlZ2lzdGVyX2NvbnN0cnVjdG9yKCcucHknLCBtYWtlX3B5KQorCitjbGFzcyBTdGF0aWNVUkxQYXJzZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBMaWtlIGBgVVJMUGFyc2VyYGAgYnV0IG9ubHkgc2VydmVzIHN0YXRpYyBmaWxlcy4KKworICAgIGBgY2FjaGVfbWF4X2FnZWBgOgorICAgICAgaW50ZWdlciBzcGVjaWZpZXMgQ2FjaGUtQ29udHJvbCBtYXhfYWdlIGluIHNlY29uZHMKKyAgICAiIiIKKyAgICAjIEBAOiBTaG91bGQgVVJMUGFyc2VyIHN1YmNsYXNzIGZyb20gdGhpcz8KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXJlY3RvcnksIHJvb3RfZGlyZWN0b3J5PU5vbmUsCisgICAgICAgICAgICAgICAgIGNhY2hlX21heF9hZ2U9Tm9uZSk6CisgICAgICAgIHNlbGYuZGlyZWN0b3J5ID0gc2VsZi5ub3JtcGF0aChkaXJlY3RvcnkpCisgICAgICAgIHNlbGYucm9vdF9kaXJlY3RvcnkgPSBzZWxmLm5vcm1wYXRoKHJvb3RfZGlyZWN0b3J5IG9yIGRpcmVjdG9yeSkKKyAgICAgICAgc2VsZi5jYWNoZV9tYXhfYWdlID0gY2FjaGVfbWF4X2FnZQorCisgICAgZGVmIG5vcm1wYXRoKHBhdGgpOgorICAgICAgICByZXR1cm4gb3MucGF0aC5ub3JtY2FzZShvcy5wYXRoLmFic3BhdGgocGF0aCkpCisgICAgbm9ybXBhdGggPSBzdGF0aWNtZXRob2Qobm9ybXBhdGgpCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBwYXRoX2luZm8gPSBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpCisgICAgICAgIGlmIG5vdCBwYXRoX2luZm86CisgICAgICAgICAgICByZXR1cm4gc2VsZi5hZGRfc2xhc2goZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGlmIHBhdGhfaW5mbyA9PSAnLyc6CisgICAgICAgICAgICAjIEBAOiBUaGlzIHNob3VsZCBvYnZpb3VzbHkgYmUgY29uZmlndXJhYmxlCisgICAgICAgICAgICBmaWxlbmFtZSA9ICdpbmRleC5odG1sJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmlsZW5hbWUgPSByZXF1ZXN0LnBhdGhfaW5mb19wb3AoZW52aXJvbikKKyAgICAgICAgZnVsbCA9IHNlbGYubm9ybXBhdGgob3MucGF0aC5qb2luKHNlbGYuZGlyZWN0b3J5LCBmaWxlbmFtZSkpCisgICAgICAgIGlmIG5vdCBmdWxsLnN0YXJ0c3dpdGgoc2VsZi5yb290X2RpcmVjdG9yeSk6CisgICAgICAgICAgICAjIE91dCBvZiBib3VuZHMKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5vdF9mb3VuZChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZ1bGwpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubm90X2ZvdW5kKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKGZ1bGwpOgorICAgICAgICAgICAgIyBAQDogQ2FjaGU/CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oZnVsbCwgcm9vdF9kaXJlY3Rvcnk9c2VsZi5yb290X2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYXhfYWdlPXNlbGYuY2FjaGVfbWF4X2FnZSkoZW52aXJvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ1BBVEhfSU5GTycpIGFuZCBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJykgIT0gJy8nOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfZXh0cmFfcGF0aChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWZfbm9uZV9tYXRjaCA9IGVudmlyb24uZ2V0KCdIVFRQX0lGX05PTkVfTUFUQ0gnKQorICAgICAgICBpZiBpZl9ub25lX21hdGNoOgorICAgICAgICAgICAgbXl0aW1lID0gb3Muc3RhdChmdWxsKS5zdF9tdGltZQorICAgICAgICAgICAgaWYgc3RyKG15dGltZSkgPT0gaWZfbm9uZV9tYXRjaDoKKyAgICAgICAgICAgICAgICBoZWFkZXJzID0gW10KKyAgICAgICAgICAgICAgICAjIyBGSVhNRTogcHJvYmFibHkgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgIyMgRVRBRy51cGRhdGUoaGVhZGVycywgJyIlcyInICUgbXl0aW1lKQorICAgICAgICAgICAgICAgIEVUQUcudXBkYXRlKGhlYWRlcnMsIG15dGltZSkKKyAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMzA0IE5vdCBNb2RpZmllZCcsIGhlYWRlcnMpCisgICAgICAgICAgICAgICAgcmV0dXJuIFsnJ10gIyBlbXB0eSBib2R5CisKKyAgICAgICAgZmEgPSBzZWxmLm1ha2VfYXBwKGZ1bGwpCisgICAgICAgIGlmIHNlbGYuY2FjaGVfbWF4X2FnZToKKyAgICAgICAgICAgIGZhLmNhY2hlX2NvbnRyb2wobWF4X2FnZT1zZWxmLmNhY2hlX21heF9hZ2UpCisgICAgICAgIHJldHVybiBmYShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgIGRlZiBtYWtlX2FwcChzZWxmLCBmaWxlbmFtZSk6CisgICAgICAgIHJldHVybiBmaWxlYXBwLkZpbGVBcHAoZmlsZW5hbWUpCisKKyAgICBkZWYgYWRkX3NsYXNoKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgaGFwcGVucyB3aGVuIHlvdSB0cnkgdG8gZ2V0IHRvIGEgZGlyZWN0b3J5CisgICAgICAgIHdpdGhvdXQgYSB0cmFpbGluZyAvCisgICAgICAgICIiIgorICAgICAgICB1cmwgPSByZXF1ZXN0LmNvbnN0cnVjdF91cmwoZW52aXJvbiwgd2l0aF9xdWVyeV9zdHJpbmc9RmFsc2UpCisgICAgICAgIHVybCArPSAnLycKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ1FVRVJZX1NUUklORycpOgorICAgICAgICAgICAgdXJsICs9ICc/JyArIGVudmlyb25bJ1FVRVJZX1NUUklORyddCisgICAgICAgIGV4YyA9IGh0dHBleGNlcHRpb25zLkhUVFBNb3ZlZFBlcm1hbmVudGx5KAorICAgICAgICAgICAgJ1RoZSByZXNvdXJjZSBoYXMgbW92ZWQgdG8gJXMgLSB5b3Ugc2hvdWxkIGJlIHJlZGlyZWN0ZWQgJworICAgICAgICAgICAgJ2F1dG9tYXRpY2FsbHkuJyAlIHVybCwKKyAgICAgICAgICAgIGhlYWRlcnM9WygnbG9jYXRpb24nLCB1cmwpXSkKKyAgICAgICAgcmV0dXJuIGV4Yy53c2dpX2FwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgZGVmIG5vdF9mb3VuZChzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSwgZGVidWdfbWVzc2FnZT1Ob25lKToKKyAgICAgICAgZXhjID0gaHR0cGV4Y2VwdGlvbnMuSFRUUE5vdEZvdW5kKAorICAgICAgICAgICAgJ1RoZSByZXNvdXJjZSBhdCAlcyBjb3VsZCBub3QgYmUgZm91bmQnCisgICAgICAgICAgICAlIHJlcXVlc3QuY29uc3RydWN0X3VybChlbnZpcm9uKSwKKyAgICAgICAgICAgIGNvbW1lbnQ9J1NDUklQVF9OQU1FPSVyOyBQQVRIX0lORk89JXI7IGxvb2tpbmcgaW4gJXI7IGRlYnVnOiAlcycKKyAgICAgICAgICAgICUgKGVudmlyb24uZ2V0KCdTQ1JJUFRfTkFNRScpLCBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJyksCisgICAgICAgICAgICAgICBzZWxmLmRpcmVjdG9yeSwgZGVidWdfbWVzc2FnZSBvciAnKG5vbmUpJykpCisgICAgICAgIHJldHVybiBleGMud3NnaV9hcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworICAgIGRlZiBlcnJvcl9leHRyYV9wYXRoKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgZXhjID0gaHR0cGV4Y2VwdGlvbnMuSFRUUE5vdEZvdW5kKAorICAgICAgICAgICAgJ1RoZSB0cmFpbGluZyBwYXRoICVyIGlzIG5vdCBhbGxvd2VkJyAlIGVudmlyb25bJ1BBVEhfSU5GTyddKQorICAgICAgICByZXR1cm4gZXhjLndzZ2lfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzICVyPicgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuZGlyZWN0b3J5KQorCitkZWYgbWFrZV9zdGF0aWMoZ2xvYmFsX2NvbmYsIGRvY3VtZW50X3Jvb3QsIGNhY2hlX21heF9hZ2U9Tm9uZSk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgV1NHSSBhcHBsaWNhdGlvbiB0aGF0IHNlcnZlcyBhIGRpcmVjdG9yeSAoY29uZmlndXJlZAorICAgIHdpdGggZG9jdW1lbnRfcm9vdCkKKworICAgIGNhY2hlX21heF9hZ2UgLSBpbnRlZ2VyIHNwZWNpZmllcyBDQUNIRV9DT05UUk9MIG1heF9hZ2UgaW4gc2Vjb25kcworICAgICIiIgorICAgIGlmIGNhY2hlX21heF9hZ2UgaXMgbm90IE5vbmU6CisgICAgICAgIGNhY2hlX21heF9hZ2UgPSBpbnQoY2FjaGVfbWF4X2FnZSkKKyAgICByZXR1cm4gU3RhdGljVVJMUGFyc2VyKAorICAgICAgICBkb2N1bWVudF9yb290LCBjYWNoZV9tYXhfYWdlPWNhY2hlX21heF9hZ2UpCisKK2NsYXNzIFBrZ1Jlc291cmNlc1BhcnNlcihTdGF0aWNVUkxQYXJzZXIpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVnZ19vcl9zcGVjLCByZXNvdXJjZV9uYW1lLCBtYW5hZ2VyPU5vbmUsIHJvb3RfcmVzb3VyY2U9Tm9uZSk6CisgICAgICAgIGlmIHBrZ19yZXNvdXJjZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoIlRoaXMgY2xhc3MgcmVxdWlyZXMgcGtnX3Jlc291cmNlcy4iKQorICAgICAgICBpZiBpc2luc3RhbmNlKGVnZ19vcl9zcGVjLCAoc2l4LmJpbmFyeV90eXBlLCBzaXgudGV4dF90eXBlKSk6CisgICAgICAgICAgICBzZWxmLmVnZyA9IHBrZ19yZXNvdXJjZXMuZ2V0X2Rpc3RyaWJ1dGlvbihlZ2dfb3Jfc3BlYykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZWdnID0gZWdnX29yX3NwZWMKKyAgICAgICAgc2VsZi5yZXNvdXJjZV9uYW1lID0gcmVzb3VyY2VfbmFtZQorICAgICAgICBpZiBtYW5hZ2VyIGlzIE5vbmU6CisgICAgICAgICAgICBtYW5hZ2VyID0gcGtnX3Jlc291cmNlcy5SZXNvdXJjZU1hbmFnZXIoKQorICAgICAgICBzZWxmLm1hbmFnZXIgPSBtYW5hZ2VyCisgICAgICAgIGlmIHJvb3RfcmVzb3VyY2UgaXMgTm9uZToKKyAgICAgICAgICAgIHJvb3RfcmVzb3VyY2UgPSByZXNvdXJjZV9uYW1lCisgICAgICAgIHNlbGYucm9vdF9yZXNvdXJjZSA9IG9zLnBhdGgubm9ybXBhdGgocm9vdF9yZXNvdXJjZSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgZm9yICVzOiVyPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgIHNlbGYuZWdnLnByb2plY3RfbmFtZSwKKyAgICAgICAgICAgIHNlbGYucmVzb3VyY2VfbmFtZSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHBhdGhfaW5mbyA9IGVudmlyb24uZ2V0KCdQQVRIX0lORk8nLCAnJykKKyAgICAgICAgaWYgbm90IHBhdGhfaW5mbzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmFkZF9zbGFzaChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgcGF0aF9pbmZvID09ICcvJzoKKyAgICAgICAgICAgICMgQEA6IFRoaXMgc2hvdWxkIG9idmlvdXNseSBiZSBjb25maWd1cmFibGUKKyAgICAgICAgICAgIGZpbGVuYW1lID0gJ2luZGV4Lmh0bWwnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWxlbmFtZSA9IHJlcXVlc3QucGF0aF9pbmZvX3BvcChlbnZpcm9uKQorICAgICAgICByZXNvdXJjZSA9IG9zLnBhdGgubm9ybWNhc2Uob3MucGF0aC5ub3JtcGF0aCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXNvdXJjZV9uYW1lICsgJy8nICsgZmlsZW5hbWUpKQorICAgICAgICBpZiBzZWxmLnJvb3RfcmVzb3VyY2UgaXMgbm90IE5vbmUgYW5kIG5vdCByZXNvdXJjZS5zdGFydHN3aXRoKHNlbGYucm9vdF9yZXNvdXJjZSk6CisgICAgICAgICAgICAjIE91dCBvZiBib3VuZHMKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5vdF9mb3VuZChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgbm90IHNlbGYuZWdnLmhhc19yZXNvdXJjZShyZXNvdXJjZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ub3RfZm91bmQoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGlmIHNlbGYuZWdnLnJlc291cmNlX2lzZGlyKHJlc291cmNlKToKKyAgICAgICAgICAgICMgQEA6IENhY2hlPworICAgICAgICAgICAgY2hpbGRfcm9vdCA9IHNlbGYucm9vdF9yZXNvdXJjZSBpcyBub3QgTm9uZSBhbmQgc2VsZi5yb290X3Jlc291cmNlIG9yIFwKKyAgICAgICAgICAgICAgICBzZWxmLnJlc291cmNlX25hbWUKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLmVnZywgcmVzb3VyY2UsIHNlbGYubWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290X3Jlc291cmNlPWNoaWxkX3Jvb3QpKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBpZiBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJykgYW5kIGVudmlyb24uZ2V0KCdQQVRIX0lORk8nKSAhPSAnLyc6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9leHRyYV9wYXRoKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgICAgIHR5cGUsIGVuY29kaW5nID0gbWltZXR5cGVzLmd1ZXNzX3R5cGUocmVzb3VyY2UpCisgICAgICAgIGlmIG5vdCB0eXBlOgorICAgICAgICAgICAgdHlwZSA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nCisgICAgICAgICMgQEA6IEkgZG9uJ3Qga25vdyB3aGF0IHRvIGRvIHdpdGggdGhlIGVuY29kaW5nLgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmaWxlID0gc2VsZi5lZ2cuZ2V0X3Jlc291cmNlX3N0cmVhbShzZWxmLm1hbmFnZXIsIHJlc291cmNlKQorICAgICAgICBleGNlcHQgKElPRXJyb3IsIE9TRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBleGMgPSBodHRwZXhjZXB0aW9ucy5IVFRQRm9yYmlkZGVuKAorICAgICAgICAgICAgICAgICdZb3UgYXJlIG5vdCBwZXJtaXR0ZWQgdG8gdmlldyB0aGlzIGZpbGUgKCVzKScgJSBlKQorICAgICAgICAgICAgcmV0dXJuIGV4Yy53c2dpX2FwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywKKyAgICAgICAgICAgICAgICAgICAgICAgWygnY29udGVudC10eXBlJywgdHlwZSldKQorICAgICAgICByZXR1cm4gZmlsZWFwcC5fRmlsZUl0ZXIoZmlsZSkKKworICAgIGRlZiBub3RfZm91bmQoc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UsIGRlYnVnX21lc3NhZ2U9Tm9uZSk6CisgICAgICAgIGV4YyA9IGh0dHBleGNlcHRpb25zLkhUVFBOb3RGb3VuZCgKKyAgICAgICAgICAgICdUaGUgcmVzb3VyY2UgYXQgJXMgY291bGQgbm90IGJlIGZvdW5kJworICAgICAgICAgICAgJSByZXF1ZXN0LmNvbnN0cnVjdF91cmwoZW52aXJvbiksCisgICAgICAgICAgICBjb21tZW50PSdTQ1JJUFRfTkFNRT0lcjsgUEFUSF9JTkZPPSVyOyBsb29raW5nIGluIGVnZzolcyMlcjsgZGVidWc6ICVzJworICAgICAgICAgICAgJSAoZW52aXJvbi5nZXQoJ1NDUklQVF9OQU1FJyksIGVudmlyb24uZ2V0KCdQQVRIX0lORk8nKSwKKyAgICAgICAgICAgICAgIHNlbGYuZWdnLCBzZWxmLnJlc291cmNlX25hbWUsIGRlYnVnX21lc3NhZ2Ugb3IgJyhub25lKScpKQorICAgICAgICByZXR1cm4gZXhjLndzZ2lfYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2RlZiBtYWtlX3BrZ19yZXNvdXJjZXMoZ2xvYmFsX2NvbmYsIGVnZywgcmVzb3VyY2VfbmFtZT0nJyk6CisgICAgIiIiCisgICAgQSBzdGF0aWMgZmlsZSBwYXJzZXIgdGhhdCBsb2FkcyBkYXRhIGZyb20gYW4gZWdnIHVzaW5nCisgICAgYGBwa2dfcmVzb3VyY2VzYGAuICBUYWtlcyBhIGNvbmZpZ3VyYXRpb24gdmFsdWUgYGBlZ2dgYCwgd2hpY2ggaXMKKyAgICBhbiBlZ2cgc3BlYywgYW5kIGEgYmFzZSBgYHJlc291cmNlX25hbWVgYCAoZGVmYXVsdCBlbXB0eSBzdHJpbmcpCisgICAgd2hpY2ggaXMgdGhlIHBhdGggaW4gdGhlIGVnZyB0aGF0IHRoaXMgc3RhcnRzIGF0LgorICAgICIiIgorICAgIGlmIHBrZ19yZXNvdXJjZXMgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiVGhpcyBmdW5jdGlvbiByZXF1aXJlcyBwa2dfcmVzb3VyY2VzLiIpCisgICAgcmV0dXJuIFBrZ1Jlc291cmNlc1BhcnNlcihlZ2csIHJlc291cmNlX25hbWUpCisKK2RlZiBtYWtlX3VybF9wYXJzZXIoZ2xvYmFsX2NvbmYsIGRpcmVjdG9yeSwgYmFzZV9weXRob25fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhfbmFtZXM9Tm9uZSwgaGlkZV9leHRlbnNpb25zPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9leHRlbnNpb25zPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICoqY29uc3RydWN0b3JfY29uZik6CisgICAgIiIiCisgICAgQ3JlYXRlIGEgVVJMUGFyc2VyIGFwcGxpY2F0aW9uIHRoYXQgbG9va3MgaW4gYGBkaXJlY3RvcnlgYCwgd2hpY2gKKyAgICBzaG91bGQgYmUgdGhlIGRpcmVjdG9yeSBmb3IgdGhlIFB5dGhvbiBwYWNrYWdlIG5hbWVkIGluCisgICAgYGBiYXNlX3B5dGhvbl9uYW1lYGAuICBgYGluZGV4X25hbWVzYGAgYXJlIHVzZWQgd2hlbiB2aWV3aW5nIHRoZQorICAgIGRpcmVjdG9yeSAobGlrZSBgYCdpbmRleCdgYCBmb3IgYGAnaW5kZXguaHRtbCdgYCkuCisgICAgYGBoaWRlX2V4dGVuc2lvbnNgYCBhcmUgZXh0ZW5zaW9ucyB0aGF0IGFyZSBub3Qgdmlld2FibGUgKGxpa2UKKyAgICBgYCcucHljJ2BgKSBhbmQgYGBpZ25vcmVfZXh0ZW5zaW9uc2BgIGFyZSB2aWV3YWJsZSBidXQgb25seSBpZiBhbgorICAgIGV4cGxpY2l0IGV4dGVuc2lvbiBpcyBnaXZlbi4KKyAgICAiIiIKKyAgICBpZiBpbmRleF9uYW1lcyBpcyBOb25lOgorICAgICAgICBpbmRleF9uYW1lcyA9IGdsb2JhbF9jb25mLmdldCgKKyAgICAgICAgICAgICdpbmRleF9uYW1lcycsICgnaW5kZXgnLCAnSW5kZXgnLCAnbWFpbicsICdNYWluJykpCisgICAgaW5kZXhfbmFtZXMgPSBjb252ZXJ0ZXJzLmFzbGlzdChpbmRleF9uYW1lcykKKworICAgIGlmIGhpZGVfZXh0ZW5zaW9ucyBpcyBOb25lOgorICAgICAgICBoaWRlX2V4dGVuc2lvbnMgPSBnbG9iYWxfY29uZi5nZXQoCisgICAgICAgICAgICAnaGlkZV9leHRlbnNpb25zJywgKCcucHljJywgJ2JhaycsICdweX4nKSkKKyAgICBoaWRlX2V4dGVuc2lvbnMgPSBjb252ZXJ0ZXJzLmFzbGlzdChoaWRlX2V4dGVuc2lvbnMpCisKKyAgICBpZiBpZ25vcmVfZXh0ZW5zaW9ucyBpcyBOb25lOgorICAgICAgICBpZ25vcmVfZXh0ZW5zaW9ucyA9IGdsb2JhbF9jb25mLmdldCgKKyAgICAgICAgICAgICdpZ25vcmVfZXh0ZW5zaW9ucycsICgpKQorICAgIGlnbm9yZV9leHRlbnNpb25zID0gY29udmVydGVycy5hc2xpc3QoaWdub3JlX2V4dGVuc2lvbnMpCisgICAgIyBUaGVyZSdzIG5vIHJlYWwgd2F5IHRvIHNldCBjb25zdHJ1Y3RvcnMgY3VycmVudGx5Li4uCisKKyAgICByZXR1cm4gVVJMUGFyc2VyKHt9LCBkaXJlY3RvcnksIGJhc2VfcHl0aG9uX25hbWUsCisgICAgICAgICAgICAgICAgICAgICBpbmRleF9uYW1lcz1pbmRleF9uYW1lcywKKyAgICAgICAgICAgICAgICAgICAgIGhpZGVfZXh0ZW5zaW9ucz1oaWRlX2V4dGVuc2lvbnMsCisgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfZXh0ZW5zaW9ucz1pZ25vcmVfZXh0ZW5zaW9ucywKKyAgICAgICAgICAgICAgICAgICAgICoqY29uc3RydWN0b3JfY29uZikKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL1B5U291cmNlQ29sb3IucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9QeVNvdXJjZUNvbG9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1NzZlYWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9QeVNvdXJjZUNvbG9yLnB5CkBAIC0wLDAgKzEsMjEwMiBAQAorIyAtKi0gY29kaW5nOiBMYXRpbi0xIC0qLQorIiIiCitQeVNvdXJjZUNvbG9yOiBjb2xvciBQeXRob24gc291cmNlIGNvZGUKKyIiIgorCisiIiIKKyBQeVNvdXJjZUNvbG9yLnB5CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIEEgcHl0aG9uIHNvdXJjZSB0byBjb2xvcml6ZWQgaHRtbC9jc3MveGh0bWwgY29udmVydGVyLgorIEhhY2tlZCBieSBNLkUuRmFybWVyIEpyLiAyMDA0LCAyMDA1CisgUHl0aG9uIGxpY2Vuc2UKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgLSBIVE1MIG1hcmt1cCBkb2VzIG5vdCBjcmVhdGUgdzNjIHZhbGlkIGh0bWwsIGJ1dCBpdCB3b3JrcyBvbiBldmVyeQorICAgYnJvd3NlciBpJ3ZlIHRyaWVkIHNvIGZhci4oSS5FLixNb3ppbGxhL0ZpcmVmb3gsT3BlcmEsS29ucXVlcm9yLHd4SFRNTCkuCisgLSBDU1MgbWFya3VwIGlzIHczYyB2YWxpZGF0ZWQgaHRtbCA0LjAxIHN0cmljdCwKKyAgIGJ1dCB3aWxsIG5vdCByZW5kZXIgY29ycmVjdGx5IG9uIGFsbCBicm93c2Vycy4KKyAtIFhIVE1MIG1hcmt1cCBpcyB3M2MgdmFsaWRhdGVkIHhodG1sIDEuMCBzdHJpY3QsCisgICBsaWtlIGh0bWwgNC4wMSwgd2lsbCBub3QgcmVuZGVyIGNvcnJlY3RseSBvbiBhbGwgYnJvd3NlcnMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRmVhdHVyZXM6CisKKyAtVGhyZWUgdHlwZXMgb2YgbWFya3VwOgorICAgIGh0bWwgKGRlZmF1bHQpCisgICAgY3NzL2h0bWwgNC4wMSBzdHJpY3QKKyAgICB4aHRtbCAxLjAgc3RyaWN0CisKKyAtQ2FuIHRva2VuaXplIGFuZCBjb2xvcml6ZToKKyAgICAxMiB0eXBlcyBvZiBzdHJpbmdzCisgICAgMiBjb21tZW50IHR5cGVzCisgICAgbnVtYmVycworICAgIG9wZXJhdG9ycworICAgIGJyYWNrZXRzCisgICAgbWF0aCBvcGVyYXRvcnMKKyAgICBjbGFzcyAvIG5hbWUKKyAgICBkZWYgLyBuYW1lCisgICAgZGVjb3JhdG9yIC8gbmFtZQorICAgIGtleXdvcmRzCisgICAgYXJndW1lbnRzIGNsYXNzL2RlZi9kZWNvcmF0b3IKKyAgICBsaW5lbnVtYmVycworICAgIG5hbWVzCisgICAgdGV4dAorCisgLUVpZ2h0IGNvbG9yc2NoZW1lcyBidWlsdC1pbjoKKyAgICBudWxsCisgICAgbW9ubworICAgIGxpdGUgKGRlZmF1bHQpCisgICAgZGFyaworICAgIGRhcmsyCisgICAgaWRsZQorICAgIHZpZXdjdnMKKyAgICBweXRob253aW4KKworIC1IZWFkZXIgYW5kIGZvb3RlcgorICAgIHNldCB0byAnJyBmb3IgYnVpbHRpbiBoZWFkZXIgLyBmb290ZXIuCisgICAgZ2l2ZSBwYXRoIHRvIGEgZmlsZSBjb250YWluaW5nIHRoZSBodG1sCisgICAgICAgIHlvdSB3YW50IGFkZGVkIGFzIGhlYWRlciBvciBmb290ZXIuCisKKyAtQXJiaXRyYXJ5IHRleHQgYW5kIGh0bWwKKyAgICBodG1sIG1hcmt1cCBjb252ZXJ0cyBhbGwgdG8gcmF3IChURVhUIHRva2VuKQorICAgICNAIyBmb3IgcmF3IC0+IHNlbmQgcmF3IHRleHQuCisgICAgIyQjIGZvciBzcGFuIC0+IGlubGluZSBodG1sIGFuZCB0ZXh0LgorICAgICMlIyBmb3IgZGl2IC0+IGJsb2NrIGxldmVsIGh0bWwgYW5kIHRleHQuCisKKyAtTGluZW51bWJlcnMKKyAgICBTdXBwb3J0cyBhbGwgc3R5bGVzLiBOZXcgdG9rZW4gaXMgY2FsbGVkIExJTkVOVU1CRVIuCisgICAgRGVmYXVsdHMgdG8gTkFNRSBpZiBub3QgZGVmaW5lZC4KKworIFN0eWxlIG9wdGlvbnMKKworIC1BTEwgbWFya3VwcyBzdXBwb3J0IHRoZXNlIHRleHQgc3R5bGVzOgorICAgICAgICAgYiA9IGJvbGQKKyAgICAgICAgIGkgPSBpdGFsaWMKKyAgICAgICAgIHUgPSB1bmRlcmxpbmUKKyAtQ1NTIGFuZCBYSFRNTCBoYXMgbGltaXRlZCBzdXBwb3J0ICBmb3IgYm9yZGVyczoKKyAgICAgSFRNTCBtYXJrdXAgZnVuY3Rpb25zIHdpbGwgaWdub3JlIHRoZXNlLgorICAgICBPcHRpb25hbDogQm9yZGVyIGNvbG9yIGluIFJHQiBoZXgKKyAgICAgRGVmYXVsdHMgdG8gdGhlIHRleHQgZm9yZWNvbG9yLgorICAgICAgICAgI3JyZ2diYiA9IGJvcmRlciBjb2xvcgorICAgICBCb3JkZXIgc2l6ZToKKyAgICAgICAgIGwgPSB0aGljaworICAgICAgICAgbSA9IG1lZGl1bQorICAgICAgICAgdCA9IHRoaW4KKyAgICAgQm9yZGVyIHR5cGU6CisgICAgICAgICAtID0gZGFzaGVkCisgICAgICAgICAuID0gZG90dGVkCisgICAgICAgICBzID0gc29saWQKKyAgICAgICAgIGQgPSBkb3VibGUKKyAgICAgICAgIGcgPSBncm9vdmUKKyAgICAgICAgIHIgPSByaWRnZQorICAgICAgICAgbiA9IGluc2V0CisgICAgICAgICBvID0gb3V0c2V0CisgICAgIFlvdSBjYW4gc3BlY2lmeSBtdWx0aXBsZSBzaWRlcywKKyAgICAgdGhleSB3aWxsIGFsbCB1c2UgdGhlIHNhbWUgc3R5bGUuCisgICAgIE9wdGlvbmFsOiBEZWZhdWx0IGlzIGZ1bGwgYm9yZGVyLgorICAgICAgICAgdiA9IGJvdHRvbQorICAgICAgICAgPCA9IGxlZnQKKyAgICAgICAgID4gPSByaWdodAorICAgICAgICAgXiA9IHRvcAorICAgICBOT1RFOiBTcGVjaWZ5IHRoZSBzdHlsZXMgeW91IHdhbnQuCisgICAgICAgICAgIFRoZSBtYXJrdXBzIHdpbGwgaWdub3JlIHVuc3VwcG9ydGVkIHN0eWxlcworICAgICAgICAgICBBbHNvIG5vdGUgbm90IGFsbCBicm93c2VycyBjYW4gc2hvdyB0aGVzZSBvcHRpb25zCisKKyAtQWxsIHRva2VucyBkZWZhdWx0IHRvIE5BTUUgaWYgbm90IGRlZmluZWQKKyAgICAgc28gdGhlIG9ubHkgYWJzb2x1dGVseSBjcml0aWNhbCBvbmVzIHRvIGRlZmluZSBhcmU6CisgICAgIE5BTUUsIEVSUk9SVE9LRU4sIFBBR0VCQUNLR1JPVU5ECisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRXhhbXBsZSB1c2FnZTo6CisKKyAjIGltcG9ydAorIGltcG9ydCBQeVNvdXJjZUNvbG9yIGFzIHBzYworIHBzYy5jb252ZXJ0KCdjOi9QeXRob24yMi9QeVNvdXJjZUNvbG9yLnB5JywgY29sb3JzPXBzYy5pZGxlLCBzaG93PTEpCisKKyAjIGZyb20gbW9kdWxlIGltcG9ydCAqCisgZnJvbSBQeVNvdXJjZUNvbG9yIGltcG9ydCAqCisgY29udmVydCgnYzovUHl0aG9uMjIvTGliJywgY29sb3JzPWxpdGUsIG1hcmt1cD0iY3NzIiwKKyAgICAgICAgICBoZWFkZXI9JyMkIzxiPlRoaXMgaXMgYSBzaW1wZSBoZWFkaW5nPC9iPjxoci8+JykKKworICMgSG93IHRvIHVzZSBhIGN1c3RvbSBjb2xvcnNjaGVtZSwgYW5kIG1vc3Qgb2YgdGhlICdmZWF0dXJlcycKKyBmcm9tIFB5U291cmNlQ29sb3IgaW1wb3J0ICoKKyBuZXcgPSB7CisgICBFUlJPUlRPS0VOOiAgICAgICAgICAgICAoJ2J1aScsJyNGRjgwODAnLCcnKSwKKyAgIERFQ09SQVRPUl9OQU1FOiAgICAgICAgICgncycsJyNBQUNCQkMnLCcnKSwKKyAgIERFQ09SQVRPUjogICAgICAgICAgICAgICgnbicsJyMzMzMzMzMnLCcnKSwKKyAgIE5BTUU6ICAgICAgICAgICAgICAgICAgICgndC48dicsJyMxMTMzQUEnLCcjRERGRjIyJyksCisgICBOVU1CRVI6ICAgICAgICAgICAgICAgICAoJycsJyMyMzY2NzYnLCcjRkY1NTU1JyksCisgICBPUEVSQVRPUjogICAgICAgICAgICAgICAoJ2InLCcjNDU0NTY3JywnI0JCQkIxMScpLAorICAgTUFUSF9PUEVSQVRPUjogICAgICAgICAgKCcnLCcjOTM1NjIzJywnIzQyM2FmYicpLAorICAgQlJBQ0tFVFM6ICAgICAgICAgICAgICAgKCdiJywnI2FjMzRiZicsJyM2NDU3YTUnKSwKKyAgIENPTU1FTlQ6ICAgICAgICAgICAgICAgICgndC0jMDAyMkZGJywnIzU0NTM2NicsJyNBQUJCRkYnKSwKKyAgIERPVUJMRUNPTU1FTlQ6ICAgICAgICAgICgnPGwjNTUzNDU1JywnIzU1MzQ1NScsJyNGRjAwRkYnKSwKKyAgIENMQVNTX05BTUU6ICAgICAgICAgICAgICgnbV52LScsJyMwMDAwMDAnLCcjRkZGRkZGJyksCisgICBERUZfTkFNRTogICAgICAgICAgICAgICAoJ2w9PHYnLCcjODk3ODQ1JywnIzAwMDAyMicpLAorICAgS0VZV09SRDogICAgICAgICAgICAgICAgKCcuYicsJyMzNDUzNDUnLCcjRkZGRjIyJyksCisgICBTSU5HTEVRVU9URTogICAgICAgICAgICAoJ21uJywnIzIyMzM0NCcsJyNBQUREQ0MnKSwKKyAgIFNJTkdMRVFVT1RFX1I6ICAgICAgICAgICgnJywnIzM0NDUyMicsJycpLAorICAgU0lOR0xFUVVPVEVfVTogICAgICAgICAgKCcnLCcjMjM0MjM0JywnJyksCisgICBET1VCTEVRVU9URTogICAgICAgICAgICAoJ20jMDAyMkZGJywnIzMzNDQyMScsJycpLAorICAgRE9VQkxFUVVPVEVfUjogICAgICAgICAgKCcnLCcjMzQ1MzQ1JywnJyksCisgICBET1VCTEVRVU9URV9VOiAgICAgICAgICAoJycsJyM2Nzg2NzMnLCcnKSwKKyAgIFRSSVBMRVNJTkdMRVFVT1RFOiAgICAgICgndHYnLCcjRkZGRkZGJywnIzAwMDAwMCcpLAorICAgVFJJUExFU0lOR0xFUVVPVEVfUjogICAgKCd0YnUnLCcjNDQzMjU2JywnI0RERkZEQScpLAorICAgVFJJUExFU0lOR0xFUVVPVEVfVTogICAgKCcnLCcjNDIzNDU0JywnI0RERkZEQScpLAorICAgVFJJUExFRE9VQkxFUVVPVEU6ICAgICAgKCdsaSMyMzZmZDNiPD4nLCcjMDAwMDAwJywnI0ZGRkZGRicpLAorICAgVFJJUExFRE9VQkxFUVVPVEVfUjogICAgKCd0dWInLCcjMDAwMDAwJywnI0ZGRkZGRicpLAorICAgVFJJUExFRE9VQkxFUVVPVEVfVTogICAgKCctJywgJyNDQ0FBQkInLCcjRkZGQUZGJyksCisgICBMSU5FTlVNQkVSOiAgICAgICAgICAgICAoJ2liLScsJyNmZjY2YWEnLCcjNzczM0ZGJyksXQorICAgVEVYVDogICAgICAgICAgICAgICAgICAgKCcnLCcjNTQ2NjM0JywnJyksCisgICBQQUdFQkFDS0dST1VORDogICAgICAgICAnI0ZGRkFBQScsCisgICAgIH0KKyBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICBpbXBvcnQgc3lzCisgICAgIGNvbnZlcnQoc3lzLmFyZ3ZbMV0sICcuL3hodG1sLmh0bWwnLCBjb2xvcnM9bmV3LCBtYXJrdXA9J3hodG1sJywgc2hvdz0xLAorICAgICAgICAgICAgIGxpbmVudW1iZXJzPTEpCisgICAgIGNvbnZlcnQoc3lzLmFyZ3ZbMV0sICcuL2h0bWwuaHRtbCcsIGNvbG9ycz1uZXcsIG1hcmt1cD0naHRtbCcsIHNob3c9MSwKKyAgICAgICAgICAgICBsaW5lbnVtYmVycz0xKQorCisiIiIKKworX19hbGxfXyA9IFsnRVJST1JUT0tFTicsJ0RFQ09SQVRPUl9OQU1FJywgJ0RFQ09SQVRPUicsICdBUkdTJywgJ0VYVFJBU1BBQ0UnLAorICAgICAgICdOQU1FJywgJ05VTUJFUicsICdPUEVSQVRPUicsICdDT01NRU5UJywgJ01BVEhfT1BFUkFUT1InLAorICAgICAgICdET1VCTEVDT01NRU5UJywgJ0NMQVNTX05BTUUnLCAnREVGX05BTUUnLCAnS0VZV09SRCcsICdCUkFDS0VUUycsCisgICAgICAgJ1NJTkdMRVFVT1RFJywnU0lOR0xFUVVPVEVfUicsJ1NJTkdMRVFVT1RFX1UnLCdET1VCTEVRVU9URScsCisgICAgICAgJ0RPVUJMRVFVT1RFX1InLCAnRE9VQkxFUVVPVEVfVScsICdUUklQTEVTSU5HTEVRVU9URScsICdURVhUJywKKyAgICAgICAnVFJJUExFU0lOR0xFUVVPVEVfUicsICdUUklQTEVTSU5HTEVRVU9URV9VJywgJ1RSSVBMRURPVUJMRVFVT1RFJywKKyAgICAgICAnVFJJUExFRE9VQkxFUVVPVEVfUicsICdUUklQTEVET1VCTEVRVU9URV9VJywgJ1BBR0VCQUNLR1JPVU5EJywKKyAgICAgICAnTElORU5VTUJFUicsICdDT0RFU1RBUlQnLCAnQ09ERUVORCcsICdQWScsICdUT0tFTl9OQU1FUycsICdDU1NIT09LJywKKyAgICAgICAnbnVsbCcsICdtb25vJywgJ2xpdGUnLCAnZGFyaycsJ2RhcmsyJywgJ3B5dGhvbndpbicsJ2lkbGUnLAorICAgICAgICd2aWV3Y3ZzJywgJ1VzYWdlJywgJ2NsaScsICdzdHIyc3Rkb3V0JywgJ3BhdGgyc3Rkb3V0JywgJ1BhcnNlcicsCisgICAgICAgJ3N0cjJmaWxlJywgJ3N0cjJodG1sJywgJ3N0cjJjc3MnLCAnc3RyMm1hcmt1cCcsICdwYXRoMmZpbGUnLAorICAgICAgICdwYXRoMmh0bWwnLCAnY29udmVydCcsICd3YWxrZGlyJywgJ2RlZmF1bHRDb2xvcnMnLCAnc2hvd3BhZ2UnLAorICAgICAgICdwYWdlY29udmVydCcsJ3RhZ3JlcGxhY2UnLCAnTUFSS1VQRElDVCddCitfX3RpdGxlX18gPSAnUHlTb3VyY2VDb2xvcicKK19fdmVyc2lvbl9fID0gIjIuMWEiCitfX2RhdGVfXyA9ICcyNSBBcHJpbCAyMDA1JworX19hdXRob3JfXyA9ICJNLkUuRmFybWVyIEpyLiIKK19fY3JlZGl0c19fID0gJycnVGhpcyB3YXMgb3JpZ2luYWxseSBiYXNlZCBvbiBhIHB5dGhvbiByZWNpcGUKK3N1Ym1pdHRlZCBieSBK/HJnZW4gSGVybWFubiB0byBBU1BOLiBOb3cgYmFzZWQgb24gdGhlIHZvaWNlcyBpbiBteSBoZWFkLgorTS5FLkZhcm1lciAyMDA0LCAyMDA1CitQeXRob24gbGljZW5zZQorJycnCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCitpbXBvcnQgZ2xvYgoraW1wb3J0IGdldG9wdAoraW1wb3J0IGtleXdvcmQKK2ltcG9ydCB0b2tlbgoraW1wb3J0IHRva2VuaXplCitpbXBvcnQgdHJhY2ViYWNrCitmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0cmluZ0lPCisjIERvIG5vdCBlZGl0CitOQU1FID0gdG9rZW4uTkFNRQorTlVNQkVSID0gdG9rZW4uTlVNQkVSCitDT01NRU5UID0gdG9rZW5pemUuQ09NTUVOVAorT1BFUkFUT1IgPSB0b2tlbi5PUAorRVJST1JUT0tFTiA9IHRva2VuLkVSUk9SVE9LRU4KK0FSR1MgPSB0b2tlbi5OVF9PRkZTRVQgKyAxCitET1VCTEVDT01NRU5UID0gdG9rZW4uTlRfT0ZGU0VUICsgMgorQ0xBU1NfTkFNRSA9IHRva2VuLk5UX09GRlNFVCArIDMKK0RFRl9OQU1FID0gdG9rZW4uTlRfT0ZGU0VUICsgNAorS0VZV09SRCA9IHRva2VuLk5UX09GRlNFVCArIDUKK1NJTkdMRVFVT1RFID0gdG9rZW4uTlRfT0ZGU0VUICsgNgorU0lOR0xFUVVPVEVfUiA9IHRva2VuLk5UX09GRlNFVCArIDcKK1NJTkdMRVFVT1RFX1UgPSB0b2tlbi5OVF9PRkZTRVQgKyA4CitET1VCTEVRVU9URSA9IHRva2VuLk5UX09GRlNFVCArIDkKK0RPVUJMRVFVT1RFX1IgPSB0b2tlbi5OVF9PRkZTRVQgKyAxMAorRE9VQkxFUVVPVEVfVSA9IHRva2VuLk5UX09GRlNFVCArIDExCitUUklQTEVTSU5HTEVRVU9URSA9IHRva2VuLk5UX09GRlNFVCArIDEyCitUUklQTEVTSU5HTEVRVU9URV9SID0gdG9rZW4uTlRfT0ZGU0VUICsgMTMKK1RSSVBMRVNJTkdMRVFVT1RFX1UgPSB0b2tlbi5OVF9PRkZTRVQgKyAxNAorVFJJUExFRE9VQkxFUVVPVEUgPSB0b2tlbi5OVF9PRkZTRVQgKyAxNQorVFJJUExFRE9VQkxFUVVPVEVfUiA9IHRva2VuLk5UX09GRlNFVCArIDE2CitUUklQTEVET1VCTEVRVU9URV9VID0gdG9rZW4uTlRfT0ZGU0VUICsgMTcKK1BBR0VCQUNLR1JPVU5EID0gdG9rZW4uTlRfT0ZGU0VUICsgMTgKK0RFQ09SQVRPUiA9IHRva2VuLk5UX09GRlNFVCArIDE5CitERUNPUkFUT1JfTkFNRSA9IHRva2VuLk5UX09GRlNFVCArIDIwCitCUkFDS0VUUyA9IHRva2VuLk5UX09GRlNFVCArIDIxCitNQVRIX09QRVJBVE9SID0gdG9rZW4uTlRfT0ZGU0VUICsgMjIKK0xJTkVOVU1CRVIgPSB0b2tlbi5OVF9PRkZTRVQgKyAyMworVEVYVCA9IHRva2VuLk5UX09GRlNFVCArIDI0CitQWSA9IHRva2VuLk5UX09GRlNFVCArIDI1CitDT0RFU1RBUlQgPSB0b2tlbi5OVF9PRkZTRVQgKyAyNgorQ09ERUVORCA9IHRva2VuLk5UX09GRlNFVCArIDI3CitDU1NIT09LID0gdG9rZW4uTlRfT0ZGU0VUICsgMjgKK0VYVFJBU1BBQ0UgPSB0b2tlbi5OVF9PRkZTRVQgKyAyOQorCisjIG1hcmt1cCBjbGFzc25hbWUgbG9va3VwCitNQVJLVVBESUNUID0geworICAgICAgICBFUlJPUlRPS0VOOiAgICAgICAgICAgICAncHlfZXJyJywKKyAgICAgICAgREVDT1JBVE9SX05BTUU6ICAgICAgICAgJ3B5X2RlY24nLAorICAgICAgICBERUNPUkFUT1I6ICAgICAgICAgICAgICAncHlfZGVjJywKKyAgICAgICAgQVJHUzogICAgICAgICAgICAgICAgICAgJ3B5X2FyZ3MnLAorICAgICAgICBOQU1FOiAgICAgICAgICAgICAgICAgICAncHlfbmFtZScsCisgICAgICAgIE5VTUJFUjogICAgICAgICAgICAgICAgICdweV9udW0nLAorICAgICAgICBPUEVSQVRPUjogICAgICAgICAgICAgICAncHlfb3AnLAorICAgICAgICBDT01NRU5UOiAgICAgICAgICAgICAgICAncHlfY29tJywKKyAgICAgICAgRE9VQkxFQ09NTUVOVDogICAgICAgICAgJ3B5X2Rjb20nLAorICAgICAgICBDTEFTU19OQU1FOiAgICAgICAgICAgICAncHlfY2xzbicsCisgICAgICAgIERFRl9OQU1FOiAgICAgICAgICAgICAgICdweV9kZWZuJywKKyAgICAgICAgS0VZV09SRDogICAgICAgICAgICAgICAgJ3B5X2tleScsCisgICAgICAgIFNJTkdMRVFVT1RFOiAgICAgICAgICAgICdweV9zcScsCisgICAgICAgIFNJTkdMRVFVT1RFX1I6ICAgICAgICAgICdweV9zcXInLAorICAgICAgICBTSU5HTEVRVU9URV9VOiAgICAgICAgICAncHlfc3F1JywKKyAgICAgICAgRE9VQkxFUVVPVEU6ICAgICAgICAgICAgJ3B5X2RxJywKKyAgICAgICAgRE9VQkxFUVVPVEVfUjogICAgICAgICAgJ3B5X2RxcicsCisgICAgICAgIERPVUJMRVFVT1RFX1U6ICAgICAgICAgICdweV9kcXUnLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URTogICAgICAncHlfdHNxJywKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEVfUjogICAgJ3B5X3RzcXInLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URV9VOiAgICAncHlfdHNxdScsCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFOiAgICAgICdweV90ZHEnLAorICAgICAgICBUUklQTEVET1VCTEVRVU9URV9SOiAgICAncHlfdGRxcicsCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1U6ICAgICdweV90ZHF1JywKKyAgICAgICAgQlJBQ0tFVFM6ICAgICAgICAgICAgICAgJ3B5X2JyYScsCisgICAgICAgIE1BVEhfT1BFUkFUT1I6ICAgICAgICAgICdweV9tb3AnLAorICAgICAgICBMSU5FTlVNQkVSOiAgICAgICAgICAgICAncHlfbG51bScsCisgICAgICAgIFRFWFQ6ICAgICAgICAgICAgICAgICAgICdweV90ZXh0JywKKyAgICAgICAgfQorIyBtaWdodCBoZWxwIHVzZXJzIHRoYXQgd2FudCB0byBjcmVhdGUgY3VzdG9tIHNjaGVtZXMKK1RPS0VOX05BTUVTPSB7CisgICAgICAgRVJST1JUT0tFTjonRVJST1JUT0tFTicsCisgICAgICAgREVDT1JBVE9SX05BTUU6J0RFQ09SQVRPUl9OQU1FJywKKyAgICAgICBERUNPUkFUT1I6J0RFQ09SQVRPUicsCisgICAgICAgQVJHUzonQVJHUycsCisgICAgICAgTkFNRTonTkFNRScsCisgICAgICAgTlVNQkVSOidOVU1CRVInLAorICAgICAgIE9QRVJBVE9SOidPUEVSQVRPUicsCisgICAgICAgQ09NTUVOVDonQ09NTUVOVCcsCisgICAgICAgRE9VQkxFQ09NTUVOVDonRE9VQkxFQ09NTUVOVCcsCisgICAgICAgQ0xBU1NfTkFNRTonQ0xBU1NfTkFNRScsCisgICAgICAgREVGX05BTUU6J0RFRl9OQU1FJywKKyAgICAgICBLRVlXT1JEOidLRVlXT1JEJywKKyAgICAgICBTSU5HTEVRVU9URTonU0lOR0xFUVVPVEUnLAorICAgICAgIFNJTkdMRVFVT1RFX1I6J1NJTkdMRVFVT1RFX1InLAorICAgICAgIFNJTkdMRVFVT1RFX1U6J1NJTkdMRVFVT1RFX1UnLAorICAgICAgIERPVUJMRVFVT1RFOidET1VCTEVRVU9URScsCisgICAgICAgRE9VQkxFUVVPVEVfUjonRE9VQkxFUVVPVEVfUicsCisgICAgICAgRE9VQkxFUVVPVEVfVTonRE9VQkxFUVVPVEVfVScsCisgICAgICAgVFJJUExFU0lOR0xFUVVPVEU6J1RSSVBMRVNJTkdMRVFVT1RFJywKKyAgICAgICBUUklQTEVTSU5HTEVRVU9URV9SOidUUklQTEVTSU5HTEVRVU9URV9SJywKKyAgICAgICBUUklQTEVTSU5HTEVRVU9URV9VOidUUklQTEVTSU5HTEVRVU9URV9VJywKKyAgICAgICBUUklQTEVET1VCTEVRVU9URTonVFJJUExFRE9VQkxFUVVPVEUnLAorICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1I6J1RSSVBMRURPVUJMRVFVT1RFX1InLAorICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1U6J1RSSVBMRURPVUJMRVFVT1RFX1UnLAorICAgICAgIEJSQUNLRVRTOidCUkFDS0VUUycsCisgICAgICAgTUFUSF9PUEVSQVRPUjonTUFUSF9PUEVSQVRPUicsCisgICAgICAgTElORU5VTUJFUjonTElORU5VTUJFUicsCisgICAgICAgVEVYVDonVEVYVCcsCisgICAgICAgUEFHRUJBQ0tHUk9VTkQ6J1BBR0VCQUNLR1JPVU5EJywKKyAgICAgICB9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgRWRpdCBjb2xvcnMgYW5kIHN0eWxlcyB0byB0YXN0ZQorIyBDcmVhdGUgeW91ciBvd24gc2NoZW1lLCBqdXN0IGNvcHkgb25lIGJlbG93ICwgcmVuYW1lIGFuZCBlZGl0LgorIyBDdXN0b20gc3R5bGVzIG11c3QgYXQgbGVhc3QgZGVmaW5lIE5BTUUsIEVSUk9SVE9LRU4sIFBBR0VCQUNLR1JPVU5ELAorIyBhbGwgbWlzc2luZyBlbGVtZW50cyB3aWxsIGRlZmF1bHQgdG8gTkFNRS4KKyMgU2VlIG1vZHVsZSBkb2NzdHJpbmcgZm9yIGRldGFpbHMgb24gc3R5bGUgYXR0cmlidXRlcy4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weSBudWxsIGFuZCB1c2UgaXQgYXMgYSBzdGFydGVyIGNvbG9yc2NoZW1lLgorbnVsbCA9IHsjIHRva2VudHlwZTogKCd0YWdzIGJvcmRlcl9jb2xvcicsICd0ZXh0Zm9yZWNvbG9yJywgJ3RleHRiYWNrY29sb3InKQorICAgICAgICBFUlJPUlRPS0VOOiAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwjIEVycm9yIHRva2VuCisgICAgICAgIERFQ09SQVRPUl9OQU1FOiAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgRGVjb3JhdG9yIG5hbWUKKyAgICAgICAgREVDT1JBVE9SOiAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksIyBAIHN5bWJvbAorICAgICAgICBBUkdTOiAgICAgICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwjIGNsYXNzLGRlZixkZWNvIGFyZ3VtZW50cworICAgICAgICBOQU1FOiAgICAgICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwjIEFsbCBvdGhlciBweXRob24gdGV4dAorICAgICAgICBOVU1CRVI6ICAgICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwjIDAtPjEwCisgICAgICAgIE9QRVJBVE9SOiAgICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgJzonLCc8PScsJzsnLCcsJywnLicsJz09JywgZXRjCisgICAgICAgIE1BVEhfT1BFUkFUT1I6ICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgJysnLCctJywnPScsJycsJyoqJyxldGMKKyAgICAgICAgQlJBQ0tFVFM6ICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksIyAnWycsJ10nLCcoJywnKScsJ3snLCd9JworICAgICAgICBDT01NRU5UOiAgICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwjIFNpbmdsZSBjb21tZW50CisgICAgICAgIERPVUJMRUNPTU1FTlQ6ICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMjIERvdWJsZSBjb21tZW50CisgICAgICAgIENMQVNTX05BTUU6ICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgQ2xhc3MgbmFtZQorICAgICAgICBERUZfTkFNRTogICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwjIERlZiBuYW1lCisgICAgICAgIEtFWVdPUkQ6ICAgICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgUHl0aG9uIGtleXdvcmRzCisgICAgICAgIFNJTkdMRVFVT1RFOiAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgJ1NJTkdMRVFVT1RFJworICAgICAgICBTSU5HTEVRVU9URV9SOiAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwjIHInU0lOR0xFUVVPVEUnCisgICAgICAgIFNJTkdMRVFVT1RFX1U6ICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgdSdTSU5HTEVRVU9URScKKyAgICAgICAgRE9VQkxFUVVPVEU6ICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksIyAiRE9VQkxFUVVPVEUiCisgICAgICAgIERPVUJMRVFVT1RFX1I6ICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgciJET1VCTEVRVU9URSIKKyAgICAgICAgRE9VQkxFUVVPVEVfVTogICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksIyB1IkRPVUJMRVFVT1RFIgorICAgICAgICBUUklQTEVTSU5HTEVRVU9URTogICAgICAoJycsJyMwMDAwMDAnLCcnKSwjICcnJ1RSSVBMRVNJTkdMRVFVT1RFJycnCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFX1I6ICAgICgnJywnIzAwMDAwMCcsJycpLCMgcicnJ1RSSVBMRVNJTkdMRVFVT1RFJycnCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFX1U6ICAgICgnJywnIzAwMDAwMCcsJycpLCMgdScnJ1RSSVBMRVNJTkdMRVFVT1RFJycnCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFOiAgICAgICgnJywnIzAwMDAwMCcsJycpLCMgIiIiVFJJUExFRE9VQkxFUVVPVEUiIiIKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEVfUjogICAgKCcnLCcjMDAwMDAwJywnJyksIyByIiIiVFJJUExFRE9VQkxFUVVPVEUiIiIKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEVfVTogICAgKCcnLCcjMDAwMDAwJywnJyksIyB1IiIiVFJJUExFRE9VQkxFUVVPVEUiIiIKKyAgICAgICAgVEVYVDogICAgICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksIyBub24gcHl0aG9uIHRleHQKKyAgICAgICAgTElORU5VTUJFUjogICAgICAgICAgICAgKCc+dGkjNTU1NTU1JywnIzAwMDAwMCcsJycpLCMgTGluZW51bWJlcnMKKyAgICAgICAgUEFHRUJBQ0tHUk9VTkQ6ICAgICAgICAgJyNGRkZGRkYnIyBzZXQgdGhlIHBhZ2UgYmFja2dyb3VuZAorICAgICAgICB9CisKK21vbm8gPSB7CisgICAgICAgIEVSUk9SVE9LRU46ICAgICAgICAgICAgICgncyNGRjAwMDAnLCcjRkY4MDgwJywnJyksCisgICAgICAgIERFQ09SQVRPUl9OQU1FOiAgICAgICAgICgnYnUnLCcjMDAwMDAwJywnJyksCisgICAgICAgIERFQ09SQVRPUjogICAgICAgICAgICAgICgnYicsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgQVJHUzogICAgICAgICAgICAgICAgICAgKCdiJywnIzU1NTU1NScsJycpLAorICAgICAgICBOQU1FOiAgICAgICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgTlVNQkVSOiAgICAgICAgICAgICAgICAgKCdiJywnIzAwMDAwMCcsJycpLAorICAgICAgICBPUEVSQVRPUjogICAgICAgICAgICAgICAoJ2InLCcjMDAwMDAwJywnJyksCisgICAgICAgIE1BVEhfT1BFUkFUT1I6ICAgICAgICAgICgnYicsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgQlJBQ0tFVFM6ICAgICAgICAgICAgICAgKCdiJywnIzAwMDAwMCcsJycpLAorICAgICAgICBDT01NRU5UOiAgICAgICAgICAgICAgICAoJ2knLCcjOTk5OTk5JywnJyksCisgICAgICAgIERPVUJMRUNPTU1FTlQ6ICAgICAgICAgICgnYicsJyM5OTk5OTknLCcnKSwKKyAgICAgICAgQ0xBU1NfTkFNRTogICAgICAgICAgICAgKCdidScsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgREVGX05BTUU6ICAgICAgICAgICAgICAgKCdiJywnIzAwMDAwMCcsJycpLAorICAgICAgICBLRVlXT1JEOiAgICAgICAgICAgICAgICAoJ2InLCcjMDAwMDAwJywnJyksCisgICAgICAgIFNJTkdMRVFVT1RFOiAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBTSU5HTEVRVU9URV9SOiAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgU0lOR0xFUVVPVEVfVTogICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIERPVUJMRVFVT1RFOiAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBET1VCTEVRVU9URV9SOiAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgRE9VQkxFUVVPVEVfVTogICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFOiAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URV9SOiAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEVfVTogICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFOiAgICAgICgnaScsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEVfUjogICAgKCdpJywnIzAwMDAwMCcsJycpLAorICAgICAgICBUUklQTEVET1VCTEVRVU9URV9VOiAgICAoJ2knLCcjMDAwMDAwJywnJyksCisgICAgICAgIFRFWFQ6ICAgICAgICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBMSU5FTlVNQkVSOiAgICAgICAgICAgICAoJz50aSM1NTU1NTUnLCcjMDAwMDAwJywnJyksCisgICAgICAgIFBBR0VCQUNLR1JPVU5EOiAgICAgICAgICcjRkZGRkZGJworICAgICAgICB9CisKK2RhcmsgPSB7CisgICAgICAgIEVSUk9SVE9LRU46ICAgICAgICAgICAgICgncyNGRjAwMDAnLCcjRkY4MDgwJywnJyksCisgICAgICAgIERFQ09SQVRPUl9OQU1FOiAgICAgICAgICgnYicsJyNGRkJCQUEnLCcnKSwKKyAgICAgICAgREVDT1JBVE9SOiAgICAgICAgICAgICAgKCdiJywnI0NDNTUxMScsJycpLAorICAgICAgICBBUkdTOiAgICAgICAgICAgICAgICAgICAoJ2InLCcjREREREZGJywnJyksCisgICAgICAgIE5BTUU6ICAgICAgICAgICAgICAgICAgICgnJywnI0RERERERCcsJycpLAorICAgICAgICBOVU1CRVI6ICAgICAgICAgICAgICAgICAoJycsJyNGRjAwMDAnLCcnKSwKKyAgICAgICAgT1BFUkFUT1I6ICAgICAgICAgICAgICAgKCdiJywnI0ZBRjc4NScsJycpLAorICAgICAgICBNQVRIX09QRVJBVE9SOiAgICAgICAgICAoJ2InLCcjRkFGNzg1JywnJyksCisgICAgICAgIEJSQUNLRVRTOiAgICAgICAgICAgICAgICgnYicsJyNGQUY3ODUnLCcnKSwKKyAgICAgICAgQ09NTUVOVDogICAgICAgICAgICAgICAgKCcnLCcjNDVGQ0EwJywnJyksCisgICAgICAgIERPVUJMRUNPTU1FTlQ6ICAgICAgICAgICgnaScsJyNBN0M3QTknLCcnKSwKKyAgICAgICAgQ0xBU1NfTkFNRTogICAgICAgICAgICAgKCdiJywnI0I2NjZGRCcsJycpLAorICAgICAgICBERUZfTkFNRTogICAgICAgICAgICAgICAoJ2InLCcjRUJBRTVDJywnJyksCisgICAgICAgIEtFWVdPUkQ6ICAgICAgICAgICAgICAgICgnYicsJyM4NjgwRkYnLCcnKSwKKyAgICAgICAgU0lOR0xFUVVPVEU6ICAgICAgICAgICAgKCcnLCcjRjhCQUZFJywnJyksCisgICAgICAgIFNJTkdMRVFVT1RFX1I6ICAgICAgICAgICgnJywnI0Y4QkFGRScsJycpLAorICAgICAgICBTSU5HTEVRVU9URV9VOiAgICAgICAgICAoJycsJyNGOEJBRkUnLCcnKSwKKyAgICAgICAgRE9VQkxFUVVPVEU6ICAgICAgICAgICAgKCcnLCcjRkY4MEMwJywnJyksCisgICAgICAgIERPVUJMRVFVT1RFX1I6ICAgICAgICAgICgnJywnI0ZGODBDMCcsJycpLAorICAgICAgICBET1VCTEVRVU9URV9VOiAgICAgICAgICAoJycsJyNGRjgwQzAnLCcnKSwKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEU6ICAgICAgKCcnLCcjRkY5NTk1JywnJyksCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFX1I6ICAgICgnJywnI0ZGOTU5NScsJycpLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URV9VOiAgICAoJycsJyNGRjk1OTUnLCcnKSwKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEU6ICAgICAgKCcnLCcjQjNGRkZGJywnJyksCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1I6ICAgICgnJywnI0IzRkZGRicsJycpLAorICAgICAgICBUUklQTEVET1VCTEVRVU9URV9VOiAgICAoJycsJyNCM0ZGRkYnLCcnKSwKKyAgICAgICAgVEVYVDogICAgICAgICAgICAgICAgICAgKCcnLCcjRkZGRkZGJywnJyksCisgICAgICAgIExJTkVOVU1CRVI6ICAgICAgICAgICAgICgnPm1pIzU1NTU1NScsJyNiYmNjYmInLCcjMzMzMzMzJyksCisgICAgICAgIFBBR0VCQUNLR1JPVU5EOiAgICAgICAgICcjMDAwMDAwJworICAgICAgICB9CisKK2RhcmsyID0geworICAgICAgICBFUlJPUlRPS0VOOiAgICAgICAgICAgICAoJycsJyNGRjAwMDAnLCcnKSwKKyAgICAgICAgREVDT1JBVE9SX05BTUU6ICAgICAgICAgKCdiJywnI0ZGQkJBQScsJycpLAorICAgICAgICBERUNPUkFUT1I6ICAgICAgICAgICAgICAoJ2InLCcjQ0M1NTExJywnJyksCisgICAgICAgIEFSR1M6ICAgICAgICAgICAgICAgICAgICgnYicsJyNEREREREQnLCcnKSwKKyAgICAgICAgTkFNRTogICAgICAgICAgICAgICAgICAgKCcnLCcjQzBDMEMwJywnJyksCisgICAgICAgIE5VTUJFUjogICAgICAgICAgICAgICAgICgnYicsJyMwMEZGMDAnLCcnKSwKKyAgICAgICAgT1BFUkFUT1I6ICAgICAgICAgICAgICAgKCdiJywnI0ZGMDkwRicsJycpLAorICAgICAgICBNQVRIX09QRVJBVE9SOiAgICAgICAgICAoJ2InLCcjRUU3MDIwJywnJyksCisgICAgICAgIEJSQUNLRVRTOiAgICAgICAgICAgICAgICgnYicsJyNGRkI5MEYnLCcnKSwKKyAgICAgICAgQ09NTUVOVDogICAgICAgICAgICAgICAgKCdpJywnI0QwRDAwMCcsJyM1MjIwMDAnKSwjJyM4OEFBODgnLCcjMTExMTFGJyksCisgICAgICAgIERPVUJMRUNPTU1FTlQ6ICAgICAgICAgICgnaScsJyNEMEQwMDAnLCcjNTIyMDAwJyksIycjNzdCQjc3JywnIzExMTExRicpLAorICAgICAgICBDTEFTU19OQU1FOiAgICAgICAgICAgICAoJ2InLCcjREQ0MDgwJywnJyksCisgICAgICAgIERFRl9OQU1FOiAgICAgICAgICAgICAgICgnYicsJyNGRjgwNDAnLCcnKSwKKyAgICAgICAgS0VZV09SRDogICAgICAgICAgICAgICAgKCdiJywnIzQ3MjZkMScsJycpLAorICAgICAgICBTSU5HTEVRVU9URTogICAgICAgICAgICAoJycsJyM4MDgwQzAnLCcnKSwKKyAgICAgICAgU0lOR0xFUVVPVEVfUjogICAgICAgICAgKCcnLCcjODA4MEMwJywnJyksCisgICAgICAgIFNJTkdMRVFVT1RFX1U6ICAgICAgICAgICgnJywnIzgwODBDMCcsJycpLAorICAgICAgICBET1VCTEVRVU9URTogICAgICAgICAgICAoJycsJyNBREI5RjEnLCcnKSwKKyAgICAgICAgRE9VQkxFUVVPVEVfUjogICAgICAgICAgKCcnLCcjQURCOUYxJywnJyksCisgICAgICAgIERPVUJMRVFVT1RFX1U6ICAgICAgICAgICgnJywnI0FEQjlGMScsJycpLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URTogICAgICAoJycsJyMwMEMxQzEnLCcnKSwjQTA1MEMwCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFX1I6ICAgICgnJywnIzAwQzFDMScsJycpLCNBMDUwQzAKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEVfVTogICAgKCcnLCcjMDBDMUMxJywnJyksI0EwNTBDMAorICAgICAgICBUUklQTEVET1VCTEVRVU9URTogICAgICAoJycsJyMzM0UzRTMnLCcnKSwjQjA5MEUwCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1I6ICAgICgnJywnIzMzRTNFMycsJycpLCNCMDkwRTAKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEVfVTogICAgKCcnLCcjMzNFM0UzJywnJyksI0IwOTBFMAorICAgICAgICBURVhUOiAgICAgICAgICAgICAgICAgICAoJycsJyNDMEMwQzAnLCcnKSwKKyAgICAgICAgTElORU5VTUJFUjogICAgICAgICAgICAgKCc+bWkjNTU1NTU1JywnI2JiY2NiYicsJyMzMzMzMzMnKSwKKyAgICAgICAgUEFHRUJBQ0tHUk9VTkQ6ICAgICAgICAgJyMwMDAwMDAnCisgICAgICAgIH0KKworbGl0ZSA9IHsKKyAgICAgICAgRVJST1JUT0tFTjogICAgICAgICAgICAgKCdzI0ZGMDAwMCcsJyNGRjgwODAnLCcnKSwKKyAgICAgICAgREVDT1JBVE9SX05BTUU6ICAgICAgICAgKCdiJywnI0JCNDQyMicsJycpLAorICAgICAgICBERUNPUkFUT1I6ICAgICAgICAgICAgICAoJ2InLCcjMzMzM0FGJywnJyksCisgICAgICAgIEFSR1M6ICAgICAgICAgICAgICAgICAgICgnYicsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgTkFNRTogICAgICAgICAgICAgICAgICAgKCcnLCcjMzMzMzMzJywnJyksCisgICAgICAgIE5VTUJFUjogICAgICAgICAgICAgICAgICgnYicsJyNERDIyMDAnLCcnKSwKKyAgICAgICAgT1BFUkFUT1I6ICAgICAgICAgICAgICAgKCdiJywnIzAwMDAwMCcsJycpLAorICAgICAgICBNQVRIX09QRVJBVE9SOiAgICAgICAgICAoJ2InLCcjMDAwMDAwJywnJyksCisgICAgICAgIEJSQUNLRVRTOiAgICAgICAgICAgICAgICgnYicsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgQ09NTUVOVDogICAgICAgICAgICAgICAgKCcnLCcjMDA3RjAwJywnJyksCisgICAgICAgIERPVUJMRUNPTU1FTlQ6ICAgICAgICAgICgnJywnIzYwODA2MCcsJycpLAorICAgICAgICBDTEFTU19OQU1FOiAgICAgICAgICAgICAoJ2InLCcjMDAwMERGJywnJyksCisgICAgICAgIERFRl9OQU1FOiAgICAgICAgICAgICAgICgnYicsJyM5QzdBMDAnLCcnKSwjZjA5MDMwCisgICAgICAgIEtFWVdPUkQ6ICAgICAgICAgICAgICAgICgnYicsJyMwMDAwQUYnLCcnKSwKKyAgICAgICAgU0lOR0xFUVVPVEU6ICAgICAgICAgICAgKCcnLCcjNjAwMDgwJywnJyksCisgICAgICAgIFNJTkdMRVFVT1RFX1I6ICAgICAgICAgICgnJywnIzYwMDA4MCcsJycpLAorICAgICAgICBTSU5HTEVRVU9URV9VOiAgICAgICAgICAoJycsJyM2MDAwODAnLCcnKSwKKyAgICAgICAgRE9VQkxFUVVPVEU6ICAgICAgICAgICAgKCcnLCcjQTAwMDhBJywnJyksCisgICAgICAgIERPVUJMRVFVT1RFX1I6ICAgICAgICAgICgnJywnI0EwMDA4QScsJycpLAorICAgICAgICBET1VCTEVRVU9URV9VOiAgICAgICAgICAoJycsJyNBMDAwOEEnLCcnKSwKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEU6ICAgICAgKCcnLCcjMzM3Nzk5JywnJyksCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFX1I6ICAgICgnJywnIzMzNzc5OScsJycpLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URV9VOiAgICAoJycsJyMzMzc3OTknLCcnKSwKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEU6ICAgICAgKCcnLCcjMTE2NkFBJywnJyksCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1I6ICAgICgnJywnIzExNjZBQScsJycpLAorICAgICAgICBUUklQTEVET1VCTEVRVU9URV9VOiAgICAoJycsJyMxMTY2QUEnLCcnKSwKKyAgICAgICAgVEVYVDogICAgICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIExJTkVOVU1CRVI6ICAgICAgICAgICAgICgnPnRpIzU1NTU1NScsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgUEFHRUJBQ0tHUk9VTkQ6ICAgICAgICAgJyNGRkZGRkYnCisgICAgICAgIH0KKworaWRsZSA9IHsKKyAgICAgICAgRVJST1JUT0tFTjogICAgICAgICAgICAgKCdzI0ZGMDAwMCcsJyNGRjgwODAnLCcnKSwKKyAgICAgICAgREVDT1JBVE9SX05BTUU6ICAgICAgICAgKCcnLCcjOTAwMDkwJywnJyksCisgICAgICAgIERFQ09SQVRPUjogICAgICAgICAgICAgICgnJywnI0ZGNzcwMCcsJycpLAorICAgICAgICBOQU1FOiAgICAgICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgTlVNQkVSOiAgICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIE9QRVJBVE9SOiAgICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBNQVRIX09QRVJBVE9SOiAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgQlJBQ0tFVFM6ICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIENPTU1FTlQ6ICAgICAgICAgICAgICAgICgnJywnI0REMDAwMCcsJycpLAorICAgICAgICBET1VCTEVDT01NRU5UOiAgICAgICAgICAoJycsJyNERDAwMDAnLCcnKSwKKyAgICAgICAgQ0xBU1NfTkFNRTogICAgICAgICAgICAgKCcnLCcjMDAwMEZGJywnJyksCisgICAgICAgIERFRl9OQU1FOiAgICAgICAgICAgICAgICgnJywnIzAwMDBGRicsJycpLAorICAgICAgICBLRVlXT1JEOiAgICAgICAgICAgICAgICAoJycsJyNGRjc3MDAnLCcnKSwKKyAgICAgICAgU0lOR0xFUVVPVEU6ICAgICAgICAgICAgKCcnLCcjMDBBQTAwJywnJyksCisgICAgICAgIFNJTkdMRVFVT1RFX1I6ICAgICAgICAgICgnJywnIzAwQUEwMCcsJycpLAorICAgICAgICBTSU5HTEVRVU9URV9VOiAgICAgICAgICAoJycsJyMwMEFBMDAnLCcnKSwKKyAgICAgICAgRE9VQkxFUVVPVEU6ICAgICAgICAgICAgKCcnLCcjMDBBQTAwJywnJyksCisgICAgICAgIERPVUJMRVFVT1RFX1I6ICAgICAgICAgICgnJywnIzAwQUEwMCcsJycpLAorICAgICAgICBET1VCTEVRVU9URV9VOiAgICAgICAgICAoJycsJyMwMEFBMDAnLCcnKSwKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEU6ICAgICAgKCcnLCcjMDBBQTAwJywnJyksCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFX1I6ICAgICgnJywnIzAwQUEwMCcsJycpLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URV9VOiAgICAoJycsJyMwMEFBMDAnLCcnKSwKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEU6ICAgICAgKCcnLCcjMDBBQTAwJywnJyksCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1I6ICAgICgnJywnIzAwQUEwMCcsJycpLAorICAgICAgICBUUklQTEVET1VCTEVRVU9URV9VOiAgICAoJycsJyMwMEFBMDAnLCcnKSwKKyAgICAgICAgVEVYVDogICAgICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIExJTkVOVU1CRVI6ICAgICAgICAgICAgICgnPnRpIzU1NTU1NScsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgUEFHRUJBQ0tHUk9VTkQ6ICAgICAgICAgJyNGRkZGRkYnCisgICAgICAgIH0KKworcHl0aG9ud2luID0geworICAgICAgICBFUlJPUlRPS0VOOiAgICAgICAgICAgICAoJ3MjRkYwMDAwJywnI0ZGODA4MCcsJycpLAorICAgICAgICBERUNPUkFUT1JfTkFNRTogICAgICAgICAoJ2InLCcjREQwMDgwJywnJyksCisgICAgICAgIERFQ09SQVRPUjogICAgICAgICAgICAgICgnYicsJyMwMDAwODAnLCcnKSwKKyAgICAgICAgQVJHUzogICAgICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIE5BTUU6ICAgICAgICAgICAgICAgICAgICgnJywnIzMwMzAzMCcsJycpLAorICAgICAgICBOVU1CRVI6ICAgICAgICAgICAgICAgICAoJycsJyMwMDgwODAnLCcnKSwKKyAgICAgICAgT1BFUkFUT1I6ICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIE1BVEhfT1BFUkFUT1I6ICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBCUkFDS0VUUzogICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgQ09NTUVOVDogICAgICAgICAgICAgICAgKCcnLCcjMDA3RjAwJywnJyksCisgICAgICAgIERPVUJMRUNPTU1FTlQ6ICAgICAgICAgICgnJywnIzdGN0Y3RicsJycpLAorICAgICAgICBDTEFTU19OQU1FOiAgICAgICAgICAgICAoJ2InLCcjMDAwMEZGJywnJyksCisgICAgICAgIERFRl9OQU1FOiAgICAgICAgICAgICAgICgnYicsJyMwMDdGN0YnLCcnKSwKKyAgICAgICAgS0VZV09SRDogICAgICAgICAgICAgICAgKCdiJywnIzAwMDA4MCcsJycpLAorICAgICAgICBTSU5HTEVRVU9URTogICAgICAgICAgICAoJycsJyM4MDgwMDAnLCcnKSwKKyAgICAgICAgU0lOR0xFUVVPVEVfUjogICAgICAgICAgKCcnLCcjODA4MDAwJywnJyksCisgICAgICAgIFNJTkdMRVFVT1RFX1U6ICAgICAgICAgICgnJywnIzgwODAwMCcsJycpLAorICAgICAgICBET1VCTEVRVU9URTogICAgICAgICAgICAoJycsJyM4MDgwMDAnLCcnKSwKKyAgICAgICAgRE9VQkxFUVVPVEVfUjogICAgICAgICAgKCcnLCcjODA4MDAwJywnJyksCisgICAgICAgIERPVUJMRVFVT1RFX1U6ICAgICAgICAgICgnJywnIzgwODAwMCcsJycpLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URTogICAgICAoJycsJyM4MDgwMDAnLCcnKSwKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEVfUjogICAgKCcnLCcjODA4MDAwJywnJyksCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFX1U6ICAgICgnJywnIzgwODAwMCcsJycpLAorICAgICAgICBUUklQTEVET1VCTEVRVU9URTogICAgICAoJycsJyM4MDgwMDAnLCcnKSwKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEVfUjogICAgKCcnLCcjODA4MDAwJywnJyksCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFX1U6ICAgICgnJywnIzgwODAwMCcsJycpLAorICAgICAgICBURVhUOiAgICAgICAgICAgICAgICAgICAoJycsJyMzMDMwMzAnLCcnKSwKKyAgICAgICAgTElORU5VTUJFUjogICAgICAgICAgICAgKCc+dGkjNTU1NTU1JywnIzAwMDAwMCcsJycpLAorICAgICAgICBQQUdFQkFDS0dST1VORDogICAgICAgICAnI0ZGRkZGRicKKyAgICAgICAgfQorCit2aWV3Y3ZzID0geworICAgICAgICBFUlJPUlRPS0VOOiAgICAgICAgICAgICAoJ3MjRkYwMDAwJywnI0ZGODA4MCcsJycpLAorICAgICAgICBERUNPUkFUT1JfTkFNRTogICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgREVDT1JBVE9SOiAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIEFSR1M6ICAgICAgICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBOQU1FOiAgICAgICAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgTlVNQkVSOiAgICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIE9QRVJBVE9SOiAgICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBNQVRIX09QRVJBVE9SOiAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgQlJBQ0tFVFM6ICAgICAgICAgICAgICAgKCcnLCcjMDAwMDAwJywnJyksCisgICAgICAgIENPTU1FTlQ6ICAgICAgICAgICAgICAgICgnaScsJyNiMjIyMjInLCcnKSwKKyAgICAgICAgRE9VQkxFQ09NTUVOVDogICAgICAgICAgKCdpJywnI2IyMjIyMicsJycpLAorICAgICAgICBDTEFTU19OQU1FOiAgICAgICAgICAgICAoJycsJyMwMDAwMDAnLCcnKSwKKyAgICAgICAgREVGX05BTUU6ICAgICAgICAgICAgICAgKCdiJywnIzAwMDBmZicsJycpLAorICAgICAgICBLRVlXT1JEOiAgICAgICAgICAgICAgICAoJ2InLCcjYTAyMGYwJywnJyksCisgICAgICAgIFNJTkdMRVFVT1RFOiAgICAgICAgICAgICgnYicsJyNiYzhmOGYnLCcnKSwKKyAgICAgICAgU0lOR0xFUVVPVEVfUjogICAgICAgICAgKCdiJywnI2JjOGY4ZicsJycpLAorICAgICAgICBTSU5HTEVRVU9URV9VOiAgICAgICAgICAoJ2InLCcjYmM4ZjhmJywnJyksCisgICAgICAgIERPVUJMRVFVT1RFOiAgICAgICAgICAgICgnYicsJyNiYzhmOGYnLCcnKSwKKyAgICAgICAgRE9VQkxFUVVPVEVfUjogICAgICAgICAgKCdiJywnI2JjOGY4ZicsJycpLAorICAgICAgICBET1VCTEVRVU9URV9VOiAgICAgICAgICAoJ2InLCcjYmM4ZjhmJywnJyksCisgICAgICAgIFRSSVBMRVNJTkdMRVFVT1RFOiAgICAgICgnYicsJyNiYzhmOGYnLCcnKSwKKyAgICAgICAgVFJJUExFU0lOR0xFUVVPVEVfUjogICAgKCdiJywnI2JjOGY4ZicsJycpLAorICAgICAgICBUUklQTEVTSU5HTEVRVU9URV9VOiAgICAoJ2InLCcjYmM4ZjhmJywnJyksCisgICAgICAgIFRSSVBMRURPVUJMRVFVT1RFOiAgICAgICgnYicsJyNiYzhmOGYnLCcnKSwKKyAgICAgICAgVFJJUExFRE9VQkxFUVVPVEVfUjogICAgKCdiJywnI2JjOGY4ZicsJycpLAorICAgICAgICBUUklQTEVET1VCTEVRVU9URV9VOiAgICAoJ2InLCcjYmM4ZjhmJywnJyksCisgICAgICAgIFRFWFQ6ICAgICAgICAgICAgICAgICAgICgnJywnIzAwMDAwMCcsJycpLAorICAgICAgICBMSU5FTlVNQkVSOiAgICAgICAgICAgICAoJz50aSM1NTU1NTUnLCcjMDAwMDAwJywnJyksCisgICAgICAgIFBBR0VCQUNLR1JPVU5EOiAgICAgICAgICcjRkZGRkZGJworICAgICAgICB9CisKK2RlZmF1bHRDb2xvcnMgPSBsaXRlCisKK2RlZiBVc2FnZSgpOgorICAgIGRvYyA9ICIiIgorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFB5U291cmNlQ29sb3IucHkgdmVyOiAlcworIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIE1vZHVsZSBzdW1tYXJ5OgorICAgICBUaGlzIG1vZHVsZSBpcyBkZXNpZ25lZCB0byBjb2xvcml6ZSBweXRob24gc291cmNlIGNvZGUuCisgICAgICAgICBJbnB1dC0tLT5weXRob24gc291cmNlCisgICAgICAgICBPdXRwdXQtLT5jb2xvcml6ZWQgKGh0bWwsIGh0bWw0LjAxL2NzcywgeGh0bWwxLjApCisgICAgIFN0YW5kYWxvbmU6CisgICAgICAgICBUaGlzIG1vZHVsZSB3aWxsIHdvcmsgZnJvbSB0aGUgY29tbWFuZCBsaW5lIHdpdGggb3B0aW9ucy4KKyAgICAgICAgIFRoaXMgbW9kdWxlIHdpbGwgd29yayB3aXRoIHJlZGlyZWN0ZWQgc3RkaW8uCisgICAgIEltcG9ydGVkOgorICAgICAgICAgVGhpcyBtb2R1bGUgY2FuIGJlIGltcG9ydGVkIGFuZCB1c2VkIGRpcmVjdGx5IGluIHlvdXIgY29kZS4KKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBDb21tYW5kIGxpbmUgb3B0aW9uczoKKyAgICAgLWgsIC0taGVscAorICAgICAgICAgT3B0aW9uYWwtPiBEaXNwbGF5IHRoaXMgaGVscCBtZXNzYWdlLgorICAgICAtdCwgLS10ZXN0CisgICAgICAgICBPcHRpb25hbC0+IFdpbGwgaWdub3JlIGFsbCBvdGhlcnMgZmxhZ3MgYnV0ICAtLXByb2ZpbGUKKyAgICAgICAgICAgICB0ZXN0IGFsbCBzY2hlbWVzIGFuZCBtYXJrdXAgY29tYmluYXRpb25zCisgICAgIC1wLCAtLXByb2ZpbGUKKyAgICAgICAgIE9wdGlvbmFsLT4gV29ya3Mgb25seSB3aXRoIC0tdGVzdCBvciAtdAorICAgICAgICAgICAgIHJ1bnMgcHJvZmlsZS5weSBhbmQgbWFrZXMgdGhlIHRlc3Qgd29yayBpbiBxdWlldCBtb2RlLgorICAgICAtaSwgLS1pbiwgLS1pbnB1dAorICAgICAgICAgT3B0aW9uYWwtPiBJZiB5b3UgZ2l2ZSBpbnB1dCBvbiBzdGRpbi4KKyAgICAgICAgIFVzZSBhbnkgb2YgdGhlc2UgZm9yIHRoZSBjdXJyZW50IGRpciAoLixjd2QpCisgICAgICAgICBJbnB1dCBjYW4gYmUgZmlsZSBvciBkaXIuCisgICAgICAgICBJbnB1dCBmcm9tIHN0ZGluIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyAoLSxzdGRpbikKKyAgICAgICAgIElmIHN0ZGluIGlzIHVzZWQgYXMgaW5wdXQgc3Rkb3V0IGlzIG91dHB1dCB1bmxlc3Mgc3BlY2lmaWVkLgorICAgICAtbywgLS1vdXQsIC0tb3V0cHV0CisgICAgICAgICBPcHRpb25hbC0+IG91dHB1dCBkaXIgZm9yIHRoZSBjb2xvcml6ZWQgc291cmNlLgorICAgICAgICAgICAgIGRlZmF1bHQ6IG91dHB1dCBkaXIgaXMgdGhlIGlucHV0IGRpci4KKyAgICAgICAgIFRvIG91dHB1dCBodG1sIHRvIHN0ZG91dCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgKC0sc3Rkb3V0KQorICAgICAgICAgU3Rkb3V0IGNhbiBiZSB1c2VkIHdpdGhvdXQgc3RkaW4gaWYgeW91IGdpdmUgYSBmaWxlIGFzIGlucHV0LgorICAgICAtYywgLS1jb2xvcgorICAgICAgICAgT3B0aW9uYWwtPiBudWxsLCBtb25vLCBkYXJrLCBkYXJrMiwgbGl0ZSwgaWRsZSwgcHl0aG9ud2luLCB2aWV3Y3ZzCisgICAgICAgICAgICAgZGVmYXVsdDogZGFyaworICAgICAtcywgLS1zaG93CisgICAgICAgICBPcHRpb25hbC0+IFNob3cgcGFnZSBhZnRlciBjcmVhdGlvbi4KKyAgICAgICAgICAgICBkZWZhdWx0OiBubyBzaG93CisgICAgIC1tLCAtLW1hcmt1cAorICAgICAgICAgT3B0aW9uYWwtPiBodG1sLCBjc3MsIHhodG1sCisgICAgICAgICAgICAgY3NzLCB4aHRtbCBhbHNvIHN1cHBvcnQgZXh0ZXJuYWwgc3R5bGVzaGVldHMgKC1lLC0tZXh0ZXJuYWwpCisgICAgICAgICAgICAgZGVmYXVsdDogSFRNTAorICAgICAtZSwgLS1leHRlcm5hbAorICAgICAgICAgT3B0aW9uYWwtPiB1c2Ugd2l0aCBjc3MsIHhodG1sCisgICAgICAgICAgICAgV3JpdGVzIGFuIHN0eWxlIHNoZWV0IGluc3RlYWQgb2YgZW1iZWRkaW5nIGl0IGluIHRoZSBwYWdlCisgICAgICAgICAgICAgc2F2ZXMgaXQgYXMgcHlzdHlsZS5jc3MgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LgorICAgICAgICAgICAgIGh0bWwgbWFya3VwIHdpbGwgc2lsZW50bHkgaWdub3JlIHRoaXMgZmxhZy4KKyAgICAgLUgsIC0taGVhZGVyCisgICAgICAgICBPcGlvbmFsLT4gYWRkIGEgcGFnZSBoZWFkZXIgdG8gdGhlIHRvcCBvZiB0aGUgb3V0cHV0CisgICAgICAgICAtSAorICAgICAgICAgICAgIEJ1aWx0aW4gaGVhZGVyIChuYW1lLGRhdGUsaHJ1bGUpCisgICAgICAgICAtLWhlYWRlcgorICAgICAgICAgICAgIFlvdSBtdXN0IHNwZWNpZnkgYSBmaWxlbmFtZS4KKyAgICAgICAgICAgICBUaGUgaGVhZGVyIGZpbGUgbXVzdCBiZSB2YWxpZCBodG1sCisgICAgICAgICAgICAgYW5kIG11c3QgaGFuZGxlIGl0cyBvd24gZm9udCBjb2xvcnMuCisgICAgICAgICAgICAgZXguIC0taGVhZGVyIGM6L3RtcC9oZWFkZXIudHh0CisgICAgIC1GLCAtLWZvb3RlcgorICAgICAgICAgT3Bpb25hbC0+IGFkZCBhIHBhZ2UgZm9vdGVyIHRvIHRoZSBib3R0b20gb2YgdGhlIG91dHB1dAorICAgICAgICAgLUYKKyAgICAgICAgICAgICBCdWlsdGluIGZvb3RlciAoaHJ1bGUsbmFtZSxkYXRlKQorICAgICAgICAgLS1mb290ZXIKKyAgICAgICAgICAgICBZb3UgbXVzdCBzcGVjaWZ5IGEgZmlsZW5hbWUuCisgICAgICAgICAgICAgVGhlIGZvb3RlciBmaWxlIG11c3QgYmUgdmFsaWQgaHRtbAorICAgICAgICAgICAgIGFuZCBtdXN0IGhhbmRsZSBpdHMgb3duIGZvbnQgY29sb3JzLgorICAgICAgICAgICAgIGV4LiAtLWZvb3RlciBjOi90bXAvZm9vdGVyLnR4dAorICAgICAtbCwgLS1saW5lbnVtYmVycworICAgICAgICAgT3B0aW9uYWwtPiBkZWZhdWx0IGlzIG5vIGxpbmVudW1iZXJzCisgICAgICAgICAgICAgQWRkcyBsaW5lIG51bWJlcnMgdG8gdGhlIHN0YXJ0IG9mIGVhY2ggbGluZSBpbiB0aGUgY29kZS4KKyAgICAtLWNvbnZlcnRwYWdlCisgICAgICAgICBHaXZlbiBhIHdlYnBhZ2UgdGhhdCBoYXMgY29kZSBlbWJlZGRlZCBpbiB0YWdzIGl0IHdpbGwKKyAgICAgICAgICAgICBjb252ZXJ0IGVtYmVkZGVkIGNvZGUgdG8gY29sb3JpemVkIGh0bWwuCisgICAgICAgICAgICAgKHNlZSBwYWdlY29udmVydCBmb3IgZGV0YWlscykKKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBPcHRpb24gdXNhZ2U6CisgICAjIFRlc3QgYW5kIHNob3cgcGFnZXMKKyAgICAgIHB5dGhvbiBQeVNvdXJjZUNvbG9yLnB5IC10IC1zCisgICAjIFRlc3QgYW5kIG9ubHkgc2hvdyBwcm9maWxlIHJlc3VsdHMKKyAgICAgIHB5dGhvbiBQeVNvdXJjZUNvbG9yLnB5IC10IC1wCisgICAjIENvbG9yaXplIGFsbCAucHksLnB5dyBmaWxlcyBpbiBjd2RpciB5b3UgY2FuIGFsc28gdXNlOiAoLixjd2QpCisgICAgICBweXRob24gUHlTb3VyY2VDb2xvci5weSAtaSAuCisgICAjIFVzaW5nIGxvbmcgb3B0aW9ucyB3LyA9CisgICAgICBweXRob24gUHlTb3VyY2VDb2xvci5weSAtLWluPWM6L215RGlyL215LnB5IC0tY29sb3I9bGl0ZSAtLXNob3cKKyAgICMgVXNpbmcgc2hvcnQgb3B0aW9ucyB3L291dCA9CisgICAgICBweXRob24gUHlTb3VyY2VDb2xvci5weSAtaSBjOi9teURpci8gIC1jIGlkbGUgLW0gY3NzIC1lCisgICAjIFVzaW5nIGFueSBtaXgKKyAgICAgIHB5dGhvbiBQeVNvdXJjZUNvbG9yLnB5IC0taW4gLiAtbz1jOi9teURpciAtLXNob3cKKyAgICMgUGxhY2UgYSBjdXN0b20gaGVhZGVyIG9uIHlvdXIgZmlsZXMKKyAgICAgIHB5dGhvbiBQeVNvdXJjZUNvbG9yLnB5IC1pIC4gLW8gYzovdG1wIC1tIHhodG1sIC0taGVhZGVyIGM6L2hlYWRlci50eHQKKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTdGRpbyB1c2FnZToKKyAgICMgU3RkaW8gdXNpbmcgbm8gb3B0aW9ucworICAgICAgcHl0aG9uIFB5U291cmNlQ29sb3IucHkgPCBjOi9NeUZpbGUucHkgPiBjOi90bXAvTXlGaWxlLmh0bWwKKyAgICMgVXNpbmcgc3RkaW4gYWxvbmUgYXV0b21hdGljYWxseSB1c2VzIHN0ZG91dCBmb3Igb3V0cHV0OiAoc3RkaW4sLSkKKyAgICAgIHB5dGhvbiBQeVNvdXJjZUNvbG9yLnB5IC1pLSA8IGM6L015RmlsZS5weSA+IGM6L3RtcC9teWZpbGUuaHRtbAorICAgIyBTdGRvdXQgY2FuIGFsc28gYmUgd3JpdHRlbiB0byBkaXJlY3RseSBmcm9tIGEgZmlsZSBpbnN0ZWFkIG9mIHN0ZGluCisgICAgICBweXRob24gUHlTb3VyY2VDb2xvci5weSAtaSBjOi9NeUZpbGUucHkgLW0gY3NzIC1vLSA+IGM6L3RtcC9teWZpbGUuaHRtbAorICAgIyBTdGRpbiBjYW4gYmUgdXNlZCBhcyBpbnB1dCAsIGJ1dCBvdXRwdXQgY2FuIHN0aWxsIGJlIHNwZWNpZmllZAorICAgICAgcHl0aG9uIFB5U291cmNlQ29sb3IucHkgLWktIC1vIGM6L3B5ZG9jLnB5Lmh0bWwgLXMgPCBjOi9QeXRob24yMi9teS5weQorIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgIiIiCisgICAgcHJpbnQoZG9jICUgKF9fdmVyc2lvbl9fKSkKKyAgICBzeXMuZXhpdCgxKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQ29tbWFuZCBsaW5lIGludGVyZmFjZQorCitkZWYgY2xpKCk6CisgICAgIiIiSGFuZGxlIGNvbW1hbmQgbGluZSBhcmdzIGFuZCByZWRpcmVjdGlvbnMiIiIKKyAgICB0cnk6CisgICAgICAgICMgdHJ5IHRvIGdldCBjb21tYW5kIGxpbmUgYXJncworICAgICAgICBvcHRzLCBhcmdzID0gZ2V0b3B0LmdldG9wdChzeXMuYXJndlsxOl0sCisgICAgICAgICAgICAgICJoc2VxdHBsSEZpOm86YzptOmg6ZjoiLFsiaGVscCIsICJzaG93IiwgInF1aWV0IiwKKyAgICAgICAgICAgICAgInRlc3QiLCAiZXh0ZXJuYWwiLCAibGluZW51bWJlcnMiLCAiY29udmVydHBhZ2UiLCAicHJvZmlsZSIsCisgICAgICAgICAgICAgICJpbnB1dD0iLCAib3V0cHV0PSIsICJjb2xvcj0iLCAibWFya3VwPSIsImhlYWRlcj0iLCAiZm9vdGVyPSJdKQorICAgIGV4Y2VwdCBnZXRvcHQuR2V0b3B0RXJyb3I6CisgICAgICAgICMgb24gZXJyb3IgcHJpbnQgaGVscCBpbmZvcm1hdGlvbiBhbmQgZXhpdDoKKyAgICAgICAgVXNhZ2UoKQorICAgICMgaW5pdCBzb21lIG5hbWVzCisgICAgaW5wdXQgPSBOb25lCisgICAgb3V0cHV0ID0gTm9uZQorICAgIGNvbG9yc2NoZW1lID0gTm9uZQorICAgIG1hcmt1cCA9ICdodG1sJworICAgIGhlYWRlciA9IE5vbmUKKyAgICBmb290ZXIgPSBOb25lCisgICAgbGluZW51bWJlcnMgPSAwCisgICAgc2hvdyA9IDAKKyAgICBxdWlldCA9IDAKKyAgICB0ZXN0ID0gMAorICAgIHByb2ZpbGUgPSAwCisgICAgY29udmVydHBhZ2UgPSAwCisgICAgZm9ybSA9IE5vbmUKKyAgICAjIGlmIHdlIGhhdmUgYXJncyB0aGVuIHByb2Nlc3MgdGhlbQorICAgIGZvciBvLCBhIGluIG9wdHM6CisgICAgICAgIGlmIG8gaW4gWyItaCIsICItLWhlbHAiXToKKyAgICAgICAgICAgIFVzYWdlKCkKKyAgICAgICAgICAgIHN5cy5leGl0KCkKKyAgICAgICAgaWYgbyBpbiBbIi1vIiwgIi0tb3V0cHV0IiwgIi0tb3V0Il06CisgICAgICAgICAgICBvdXRwdXQgPSBhCisgICAgICAgIGlmIG8gaW4gWyItaSIsICItLWlucHV0IiwgIi0taW4iXToKKyAgICAgICAgICAgIGlucHV0ID0gYQorICAgICAgICAgICAgaWYgaW5wdXQgaW4gWyIuIiwgImN3ZCJdOgorICAgICAgICAgICAgICAgIGlucHV0ID0gb3MuZ2V0Y3dkKCkKKyAgICAgICAgaWYgbyBpbiBbIi1zIiwgIi0tc2hvdyJdOgorICAgICAgICAgICAgc2hvdyA9IDEKKyAgICAgICAgaWYgbyBpbiBbIi1xIiwgIi0tcXVpZXQiXToKKyAgICAgICAgICAgIHF1aWV0ID0gMQorICAgICAgICBpZiBvIGluIFsiLXQiLCAiLS10ZXN0Il06CisgICAgICAgICAgICB0ZXN0ID0gMQorICAgICAgICBpZiBvIGluIFsiLS1jb252ZXJ0cGFnZSJdOgorICAgICAgICAgICAgY29udmVydHBhZ2UgPSAxCisgICAgICAgIGlmIG8gaW4gWyItcCIsICItLXByb2ZpbGUiXToKKyAgICAgICAgICAgIHByb2ZpbGUgPSAxCisgICAgICAgIGlmIG8gaW4gWyItZSIsICItLWV4dGVybmFsIl06CisgICAgICAgICAgICBmb3JtID0gJ2V4dGVybmFsJworICAgICAgICBpZiBvIGluIFsiLW0iLCAiLS1tYXJrdXAiXToKKyAgICAgICAgICAgIG1hcmt1cCA9IHN0cihhKQorICAgICAgICBpZiBvIGluIFsiLWwiLCAiLS1saW5lbnVtYmVycyJdOgorICAgICAgICAgICAgbGluZW51bWJlcnMgPSAxCisgICAgICAgIGlmIG8gaW4gWyItLWhlYWRlciJdOgorICAgICAgICAgICAgaGVhZGVyID0gc3RyKGEpCisgICAgICAgIGVsaWYgbyA9PSAiLUgiOgorICAgICAgICAgICAgaGVhZGVyID0gJycKKyAgICAgICAgaWYgbyBpbiBbIi0tZm9vdGVyIl06CisgICAgICAgICAgICBmb290ZXIgPSBzdHIoYSkKKyAgICAgICAgZWxpZiBvID09ICItRiI6CisgICAgICAgICAgICBmb290ZXIgPSAnJworICAgICAgICBpZiBvIGluIFsiLWMiLCAiLS1jb2xvciJdOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNvbG9yc2NoZW1lID0gZ2xvYmFscygpLmdldChhLmxvd2VyKCkpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgVXNhZ2UoKQorICAgIGlmIHRlc3Q6CisgICAgICAgIGlmIHByb2ZpbGU6CisgICAgICAgICAgICBpbXBvcnQgcHJvZmlsZQorICAgICAgICAgICAgcHJvZmlsZS5ydW4oJ190ZXN0KHNob3c9JXMsIHF1aWV0PSVzKSclKHNob3cscXVpZXQpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBQYXJzZSB0aGlzIHNjcmlwdCBpbiBldmVyeSBwb3NzaWJsZSBjb2xvcnNjaGVtZSBhbmQgbWFya3VwCisgICAgICAgICAgICBfdGVzdChzaG93LHF1aWV0KQorICAgIGVsaWYgaW5wdXQgaW4gW05vbmUsICItIiwgInN0ZGluIl0gb3Igb3V0cHV0IGluIFsiLSIsICJzdGRvdXQiXToKKyAgICAgICAgIyBkZXRlcm1pbmUgaWYgd2UgYXJlIGdvaW5nIHRvIHVzZSBzdGRpbworICAgICAgICBpZiBpbnB1dCBub3QgaW4gW05vbmUsICItIiwgInN0ZGluIl06CisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShpbnB1dCkgOgorICAgICAgICAgICAgICAgIHBhdGgyc3Rkb3V0KGlucHV0LCBjb2xvcnM9Y29sb3JzY2hlbWUsIG1hcmt1cD1tYXJrdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMsIGhlYWRlcj1oZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVyPWZvb3RlciwgZm9ybT1mb3JtKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBQYXRoRXJyb3IoJ0ZpbGUgZG9lcyBub3QgZXhpc3RzIScpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgc3lzLnN0ZGluLmlzYXR0eSgpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnB1dEVycm9yKCdQbGVhc2UgY2hlY2sgaW5wdXQhJykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiBvdXRwdXQgaW4gW05vbmUsIi0iLCJzdGRvdXQiXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cjJzdGRvdXQoc3lzLnN0ZGluLnJlYWQoKSwgY29sb3JzPWNvbG9yc2NoZW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXA9bWFya3VwLCBoZWFkZXI9aGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXI9Zm9vdGVyLCBsaW5lbnVtYmVycz1saW5lbnVtYmVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT1mb3JtKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc3RyMmZpbGUoc3lzLnN0ZGluLnJlYWQoKSwgb3V0ZmlsZT1vdXRwdXQsIHNob3c9c2hvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwPW1hcmt1cCwgaGVhZGVyPWhlYWRlciwgZm9vdGVyPWZvb3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMsIGZvcm09Zm9ybSkKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgICAgICAgICBVc2FnZSgpCisgICAgZWxzZToKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoaW5wdXQpOgorICAgICAgICAgICAgaWYgY29udmVydHBhZ2U6CisgICAgICAgICAgICAgICAgIyBpZiB0aGVyZSB3YXMgYXQgbGVhc3QgYW4gaW5wdXQgZ2l2ZW4gd2UgY2FuIHByb2NlZWQKKyAgICAgICAgICAgICAgICBwYWdlY29udmVydChpbnB1dCwgb3V0PW91dHB1dCwgY29sb3JzPWNvbG9yc2NoZW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c9c2hvdywgbWFya3VwPW1hcmt1cCxsaW5lbnVtYmVycz1saW5lbnVtYmVycykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBpZiB0aGVyZSB3YXMgYXQgbGVhc3QgYW4gaW5wdXQgZ2l2ZW4gd2UgY2FuIHByb2NlZWQKKyAgICAgICAgICAgICAgICBjb252ZXJ0KHNvdXJjZT1pbnB1dCwgb3V0ZGlyPW91dHB1dCwgY29sb3JzPWNvbG9yc2NoZW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgc2hvdz1zaG93LCBtYXJrdXA9bWFya3VwLCBxdWlldD1xdWlldCwgaGVhZGVyPWhlYWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvb3Rlcj1mb290ZXIsIGxpbmVudW1iZXJzPWxpbmVudW1iZXJzLCBmb3JtPWZvcm0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBQYXRoRXJyb3IoJ0ZpbGUgZG9lcyBub3QgZXhpc3RzIScpCisgICAgICAgICAgICBVc2FnZSgpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTaW1wbGUgbWFya3VwIHRlc3RzCisKK2RlZiBfdGVzdChzaG93PTAsIHF1aWV0PTApOgorICAgICIiIlRlc3QgdGhlIHBhcnNlciBhbmQgbW9zdCBvZiB0aGUgZnVuY3Rpb25zLgorCisgICAgICAgVGhlcmUgYXJlIDE5IHRlc3QgdG90YWwoZWlnaHQgY29sb3JzY2hlbWVzIGluIHRocmVlIGRpZmZyZW50IG1hcmt1cHMsCisgICAgICAgYW5kIGEgc3RyMmZpbGUgdGVzdC4gTW9zdCBmdW5jdGlvbnMgYXJlIHRlc3RlZCBieSB0aGlzLgorICAgICIiIgorICAgIGZpID0gc3lzLmFyZ3ZbMF0KKyAgICBpZiBub3QgZmkuZW5kc3dpdGgoJy5leGUnKTojIERvIG5vdCB0ZXN0IGlmIGZyb3plbiBhcyBhbiBhcmNoaXZlCisgICAgICAgICMgdGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgdGVzdCwgbW9zdCB0aGluZ3MgYXJlIGNvdmVyZWQuCisgICAgICAgIHBhdGgyZmlsZShmaSwgJy90bXAvbnVsbC5odG1sJywgbnVsbCwgc2hvdz1zaG93LCBxdWlldD1xdWlldCkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9udWxsX2Nzcy5odG1sJywgbnVsbCwgc2hvdz1zaG93LAorICAgICAgICAgICAgICAgICAgbWFya3VwPSdjc3MnLCBxdWlldD1xdWlldCkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9tb25vLmh0bWwnLCBtb25vLCBzaG93PXNob3csIHF1aWV0PXF1aWV0KQorICAgICAgICBwYXRoMmZpbGUoZmksICcvdG1wL21vbm9fY3NzLmh0bWwnLCBtb25vLCBzaG93PXNob3csCisgICAgICAgICAgICAgICAgICBtYXJrdXA9J2NzcycsIHF1aWV0PXF1aWV0KQorICAgICAgICBwYXRoMmZpbGUoZmksICcvdG1wL2xpdGUuaHRtbCcsIGxpdGUsIHNob3c9c2hvdywgcXVpZXQ9cXVpZXQpCisgICAgICAgIHBhdGgyZmlsZShmaSwgJy90bXAvbGl0ZV9jc3MuaHRtbCcsIGxpdGUsIHNob3c9c2hvdywKKyAgICAgICAgICAgICAgICAgIG1hcmt1cD0nY3NzJywgcXVpZXQ9cXVpZXQsIGhlYWRlcj0nJywgZm9vdGVyPScnLAorICAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9MSkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9saXRlX3hodG1sLmh0bWwnLCBsaXRlLCBzaG93PXNob3csCisgICAgICAgICAgICAgICAgICBtYXJrdXA9J3hodG1sJywgcXVpZXQ9cXVpZXQpCisgICAgICAgIHBhdGgyZmlsZShmaSwgJy90bXAvZGFyay5odG1sJywgZGFyaywgc2hvdz1zaG93LCBxdWlldD1xdWlldCkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9kYXJrX2Nzcy5odG1sJywgZGFyaywgc2hvdz1zaG93LAorICAgICAgICAgICAgICAgICAgbWFya3VwPSdjc3MnLCBxdWlldD1xdWlldCwgbGluZW51bWJlcnM9MSkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9kYXJrMi5odG1sJywgZGFyazIsIHNob3c9c2hvdywgcXVpZXQ9cXVpZXQpCisgICAgICAgIHBhdGgyZmlsZShmaSwgJy90bXAvZGFyazJfY3NzLmh0bWwnLCBkYXJrMiwgc2hvdz1zaG93LAorICAgICAgICAgICAgICAgICAgbWFya3VwPSdjc3MnLCBxdWlldD1xdWlldCkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9kYXJrMl94aHRtbC5odG1sJywgZGFyazIsIHNob3c9c2hvdywKKyAgICAgICAgICAgICAgICAgIG1hcmt1cD0neGh0bWwnLCBxdWlldD1xdWlldCwgaGVhZGVyPScnLCBmb290ZXI9JycsCisgICAgICAgICAgICAgICAgICBsaW5lbnVtYmVycz0xLCBmb3JtPSdleHRlcm5hbCcpCisgICAgICAgIHBhdGgyZmlsZShmaSwgJy90bXAvaWRsZS5odG1sJywgaWRsZSwgc2hvdz1zaG93LCBxdWlldD1xdWlldCkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9pZGxlX2Nzcy5odG1sJywgaWRsZSwgc2hvdz1zaG93LAorICAgICAgICAgICAgICAgICAgbWFya3VwPSdjc3MnLCBxdWlldD1xdWlldCkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC92aWV3Y3ZzLmh0bWwnLCB2aWV3Y3ZzLCBzaG93PXNob3csCisgICAgICAgICAgICAgICAgICBxdWlldD1xdWlldCwgbGluZW51bWJlcnM9MSkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC92aWV3Y3ZzX2Nzcy5odG1sJywgdmlld2N2cywgc2hvdz1zaG93LAorICAgICAgICAgICAgICAgICAgbWFya3VwPSdjc3MnLCBsaW5lbnVtYmVycz0xLCBxdWlldD1xdWlldCkKKyAgICAgICAgcGF0aDJmaWxlKGZpLCAnL3RtcC9weXRob253aW4uaHRtbCcsIHB5dGhvbndpbiwgc2hvdz1zaG93LAorICAgICAgICAgICAgICAgICAgcXVpZXQ9cXVpZXQpCisgICAgICAgIHBhdGgyZmlsZShmaSwgJy90bXAvcHl0aG9ud2luX2Nzcy5odG1sJywgcHl0aG9ud2luLCBzaG93PXNob3csCisgICAgICAgICAgICAgICAgICBtYXJrdXA9J2NzcycsIHF1aWV0PXF1aWV0KQorICAgICAgICB0ZXN0c3RyPXInJyciIiJUaGlzIGlzIGEgdGVzdCBvZiBkZWNvcmF0b3JzIGFuZCBvdGhlciB0aGluZ3MiIiIKKyMgVGhpcyBzaG91bGQgYmUgbGluZSA0MjEuLi4KK0B3aGF0ZXZlcihhcmcsYXJnMikKK0BBIEBCKGFyZ2hoKSBAQworZGVmIExsYW1hU2F5c05pKGFyZz0nTmkhJyxhcmcyPSJSQUxQSCIpOgorICAgIiIiVGhpcyBkb2NzdHJpbmcgaXMgZGVlcGx5IGRpc3R1cmJlZCBieSBhbGwgdGhlIGxsYW1hIHJlZmVyZW5jZXMiIiIKKyAgIHByaW50KCclcyBUaGUgV29uZGVyIExsYW1hIHNheXMgJXMnJSAoYXJnMixhcmcpKQorIyBTbyBJIHdhcyBsaWtlIGR1aCEsIGFuZCBoZSB3YXMgbGlrZSB5YSBrbm93PyEsCisjIGFuZCBzbyB3ZSB3ZXJlIGJvdGggbGlrZSBodWguLi53dGYhPyBSVEZNISEgTE9MISE7KQorQHN0YXRpY21ldGhvZCMjIERvdWJsZSBjb21tZW50cyBhcmUgS2V3TC4KK2RlZiBMbGFtYXNSTHVtcHkoKToKKyAgICIiIlRoaXMgZG9jc3RyaW5nIGlzIHRvbyBzZXh5IHRvIGJlIGhlcmUuCisgICAiIiIKKyAgIHUiIiIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitBIE34+HNlIG9uY2UgYml0IG15IHNpc3Rlci4uLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICIiIgorICAgIyMgUmVsYXgsIHRoaXMgd29uJ3QgaHVydCBhIGJpdCwganVzdCBhIHNpbXBsZSwgcGFpbmxlc3MgcHJvY2VkdXJlLAorICAgIyMgaG9sZCBzdGlsbCB3aGlsZSBJIGdldCB0aGUgYW5lc3RoZXRpemluZyBoYW1tZXIuCisgICBtID0geyd0aHJlZSc6JzEnLCd3b24nOicyJywndG9vJzonMyd9CisgICBvID0gcidmaXNoeVxmaXNoeVxmaXNoeS9maXNoXG9oL3doZXJlL2lzXG15L2xpdHRsZVwuLicKKyAgIHB5dGhvbiA9IHVSIiIiCisgTm8gcmVhbGxpISBTaGUgd2FzIEthcnZpbmcgaGVyIGluaXRpYWxzIPhuIHRoZSBt+PhzZSB3aXRoIHRoZSBzaGFycGVuZWQgZW5kCisgb2YgYW4gaW50ZXJzcGFjZSB0+Ph0aGJydXNoIGdpdmVuIGhlciBieSBTdmVuZ2UgLSBoZXIgYnJvdGhlci1pbi1sYXcgLWFuIE9zbG8KKyBkZW50aXN0IGFuZCBzdGFyIG9mIG1hbnkgTm9yd2VnaWFuIG34dmllczogIlRoZSBI+HQgSGFuZHMgb2YgYW4gT3NsbworIERlbnRpc3QiLCAiRmlsbGluZ3Mgb2YgUGFzc2lvbiIsICJUaGUgSHVnZSBN+GxhcnMgb2YgSG9yc3QgTm9yZGZpbmsiLi4uIiIiCisgICBSVSIiIjE0MiBNRVhJQ0FOIFdIT09QSU5HIExMQU1BUyIiIiM8LUNhbiB5b3UgZml0IDE0MiBsbGFtYXMgaW4gYSByZWQgYm94PworICAgbiA9IHUnIEhFUk1TR0VSVthSREVOQlLYVELYUkRBICcgKyAiIiIgWVVUVEUgIiIiCisgICB0ID0gIiIiU0FNQUxMTklBVE5VT01OQUlST0RBVUNFIiIiKyJERU5JQVJUWUxMQUlDRVBTMDQiCisgICAjIyBXZSBhcG9sb2dpc2UgZm9yIHRoZSBmYXVsdCBpbiB0aGUKKyAgICMjIGNvbW1lbnRzLiBUaG9zZSByZXNwb25zaWJsZSBoYXZlIGJlZW4KKyAgICMjIHNhY2tlZC4KKyAgIHkgPSAnMTQgTk9SVEggQ0hJTEVBTiBHVUFOQUNPUyBcCisoQ0xPU0VMWSBSRUxBVEVEIFRPIFRIRSBMTEFNQSknCisgICBydWxlcyA9IFswLDEsMiwzLDQsNV0KKyAgIHByaW50IHknJycKKyAgICAgICAgaHRtbFBhdGggPSBvcy5wYXRoLmFic3BhdGgoJy90bXAvc3RydGVzdF9saW5lcy5odG1sJykKKyAgICAgICAgc3RyMmZpbGUodGVzdHN0ciwgaHRtbFBhdGgsIGNvbG9ycz1kYXJrLCBtYXJrdXA9J3hodG1sJywKKyAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9NDIwLCBzaG93PXNob3cpCisgICAgICAgIF9wcmludGluZm8oIiAgd3JvdGUgJXMiICUgaHRtbFBhdGgsIHF1aWV0KQorICAgICAgICBodG1sUGF0aCA9IG9zLnBhdGguYWJzcGF0aCgnL3RtcC9zdHJ0ZXN0X25vbGluZXMuaHRtbCcpCisgICAgICAgIHN0cjJmaWxlKHRlc3RzdHIsIGh0bWxQYXRoLCBjb2xvcnM9ZGFyaywgbWFya3VwPSd4aHRtbCcsCisgICAgICAgICAgICAgICAgIHNob3c9c2hvdykKKyAgICAgICAgX3ByaW50aW5mbygiICB3cm90ZSAlcyIgJSBodG1sUGF0aCwgcXVpZXQpCisgICAgZWxzZToKKyAgICAgICAgVXNhZ2UoKQorICAgIHJldHVybgorCisjIGVtYWNzIHdhbnRzIHRoaXM6ICcKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBVc2VyIGZ1bnRjdGlvbnMKKworZGVmIHN0cjJzdGRvdXQoc291cmNlc3RyaW5nLCBjb2xvcnM9Tm9uZSwgdGl0bGU9JycsIG1hcmt1cD0naHRtbCcsCisgICAgICAgICAgICAgICAgIGhlYWRlcj1Ob25lLCBmb290ZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9MCwgZm9ybT1Ob25lKToKKyAgICAiIiJDb252ZXJ0cyBhIGNvZGUoc3RyaW5nKSB0byBjb2xvcml6ZWQgSFRNTC4gV3JpdGVzIHRvIHN0ZG91dC4KKworICAgICAgIGZvcm09J2NvZGUnLG9yJ3NuaXAnIChmb3IgIjxwcmU+eW91cmNvZGU8L3ByZT4iIG9ubHkpCisgICAgICAgY29sb3JzPW51bGwsbW9ubyxsaXRlLGRhcmssZGFyazIsaWRsZSxvciBweXRob253aW4KKyAgICAiIiIKKyAgICBQYXJzZXIoc291cmNlc3RyaW5nLCBjb2xvcnM9Y29sb3JzLCB0aXRsZT10aXRsZSwgbWFya3VwPW1hcmt1cCwKKyAgICAgICAgICAgaGVhZGVyPWhlYWRlciwgZm9vdGVyPWZvb3RlciwKKyAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMpLmZvcm1hdChmb3JtKQorCitkZWYgcGF0aDJzdGRvdXQoc291cmNlcGF0aCwgdGl0bGU9JycsIGNvbG9ycz1Ob25lLCBtYXJrdXA9J2h0bWwnLAorICAgICAgICAgICAgICAgICAgIGhlYWRlcj1Ob25lLCBmb290ZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICBsaW5lbnVtYmVycz0wLCBmb3JtPU5vbmUpOgorICAgICIiIkNvbnZlcnRzIGNvZGUoZmlsZSkgdG8gY29sb3JpemVkIEhUTUwuIFdyaXRlcyB0byBzdGRvdXQuCisKKyAgICAgICBmb3JtPSdjb2RlJyxvcidzbmlwJyAoZm9yICI8cHJlPnlvdXJjb2RlPC9wcmU+IiBvbmx5KQorICAgICAgIGNvbG9ycz1udWxsLG1vbm8sbGl0ZSxkYXJrLGRhcmsyLGlkbGUsb3IgcHl0aG9ud2luCisgICAgIiIiCisgICAgc291cmNlc3RyaW5nID0gb3Blbihzb3VyY2VwYXRoKS5yZWFkKCkKKyAgICBQYXJzZXIoc291cmNlc3RyaW5nLCBjb2xvcnM9Y29sb3JzLCB0aXRsZT1zb3VyY2VwYXRoLAorICAgICAgICAgICBtYXJrdXA9bWFya3VwLCBoZWFkZXI9aGVhZGVyLCBmb290ZXI9Zm9vdGVyLAorICAgICAgICAgICBsaW5lbnVtYmVycz1saW5lbnVtYmVycykuZm9ybWF0KGZvcm0pCisKK2RlZiBzdHIyaHRtbChzb3VyY2VzdHJpbmcsIGNvbG9ycz1Ob25lLCB0aXRsZT0nJywKKyAgICAgICAgICAgICAgIG1hcmt1cD0naHRtbCcsIGhlYWRlcj1Ob25lLCBmb290ZXI9Tm9uZSwKKyAgICAgICAgICAgICAgIGxpbmVudW1iZXJzPTAsIGZvcm09Tm9uZSk6CisgICAgIiIiQ29udmVydHMgYSBjb2RlKHN0cmluZykgdG8gY29sb3JpemVkIEhUTUwuIFJldHVybnMgYW4gSFRNTCBzdHJpbmcuCisKKyAgICAgICBmb3JtPSdjb2RlJyxvcidzbmlwJyAoZm9yICI8cHJlPnlvdXJjb2RlPC9wcmU+IiBvbmx5KQorICAgICAgIGNvbG9ycz1udWxsLG1vbm8sbGl0ZSxkYXJrLGRhcmsyLGlkbGUsb3IgcHl0aG9ud2luCisgICAgIiIiCisgICAgc3RyaW5nSU8gPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgUGFyc2VyKHNvdXJjZXN0cmluZywgY29sb3JzPWNvbG9ycywgdGl0bGU9dGl0bGUsIG91dD1zdHJpbmdJTywKKyAgICAgICAgICAgbWFya3VwPW1hcmt1cCwgaGVhZGVyPWhlYWRlciwgZm9vdGVyPWZvb3RlciwKKyAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMpLmZvcm1hdChmb3JtKQorICAgIHN0cmluZ0lPLnNlZWsoMCkKKyAgICByZXR1cm4gc3RyaW5nSU8ucmVhZCgpCisKK2RlZiBzdHIyY3NzKHNvdXJjZXN0cmluZywgY29sb3JzPU5vbmUsIHRpdGxlPScnLAorICAgICAgICAgICAgICBtYXJrdXA9J2NzcycsIGhlYWRlcj1Ob25lLCBmb290ZXI9Tm9uZSwKKyAgICAgICAgICAgICAgbGluZW51bWJlcnM9MCwgZm9ybT1Ob25lKToKKyAgICAiIiJDb252ZXJ0cyBhIGNvZGUgc3RyaW5nIHRvIGNvbG9yaXplZCBDU1MvSFRNTC4gUmV0dXJucyBDU1MvSFRNTCBzdHJpbmcKKworICAgICAgIElmIGZvcm0gIT0gTm9uZSB0aGVuIHRoaXMgd2lsbCByZXR1cm4gKHN0eWxlc2hlZXRfc3RyLCBjb2RlX3N0cikKKyAgICAgICBjb2xvcnM9bnVsbCxtb25vLGxpdGUsZGFyayxkYXJrMixpZGxlLG9yIHB5dGhvbndpbgorICAgICIiIgorICAgIGlmIG1hcmt1cC5sb3dlcigpIG5vdCBpbiBbJ2NzcycgLCd4aHRtbCddOgorICAgICAgICBtYXJrdXAgPSAnY3NzJworICAgIHN0cmluZ0lPID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgIHBhcnNlID0gUGFyc2VyKHNvdXJjZXN0cmluZywgY29sb3JzPWNvbG9ycywgdGl0bGU9dGl0bGUsCisgICAgICAgICAgICAgICAgICAgb3V0PXN0cmluZ0lPLCBtYXJrdXA9bWFya3VwLAorICAgICAgICAgICAgICAgICAgIGhlYWRlcj1oZWFkZXIsIGZvb3Rlcj1mb290ZXIsCisgICAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMpCisgICAgcGFyc2UuZm9ybWF0KGZvcm0pCisgICAgc3RyaW5nSU8uc2VlaygwKQorICAgIGlmIGZvcm0gIT0gTm9uZToKKyAgICAgICAgcmV0dXJuIHBhcnNlLl9zZW5kQ1NTU3R5bGUoZXh0ZXJuYWw9MSksIHN0cmluZ0lPLnJlYWQoKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBOb25lLCBzdHJpbmdJTy5yZWFkKCkKKworZGVmIHN0cjJtYXJrdXAoc291cmNlc3RyaW5nLCBjb2xvcnM9Tm9uZSwgdGl0bGUgPSAnJywKKyAgICAgICAgICAgICAgIG1hcmt1cD0neGh0bWwnLCBoZWFkZXI9Tm9uZSwgZm9vdGVyPU5vbmUsCisgICAgICAgICAgICAgIGxpbmVudW1iZXJzPTAsIGZvcm09Tm9uZSk6CisgICAgIiIiIENvbnZlcnQgY29kZSBzdHJpbmdzIGludG8gKFtzdHlsZXNoZWV0IG9yIE5vbmVdLCBjb2xvcml6ZWQgc3RyaW5nKSAiIiIKKyAgICBpZiBtYXJrdXAubG93ZXIoKSA9PSAnaHRtbCc6CisgICAgICAgIHJldHVybiBOb25lLCBzdHIyaHRtbChzb3VyY2VzdHJpbmcsIGNvbG9ycz1jb2xvcnMsIHRpdGxlPXRpdGxlLAorICAgICAgICAgICAgICAgICAgIGhlYWRlcj1oZWFkZXIsIGZvb3Rlcj1mb290ZXIsIG1hcmt1cD1tYXJrdXAsCisgICAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMsIGZvcm09Zm9ybSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gc3RyMmNzcyhzb3VyY2VzdHJpbmcsIGNvbG9ycz1jb2xvcnMsIHRpdGxlPXRpdGxlLAorICAgICAgICAgICAgICAgICAgIGhlYWRlcj1oZWFkZXIsIGZvb3Rlcj1mb290ZXIsIG1hcmt1cD1tYXJrdXAsCisgICAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMsIGZvcm09Zm9ybSkKKworZGVmIHN0cjJmaWxlKHNvdXJjZXN0cmluZywgb3V0ZmlsZSwgY29sb3JzPU5vbmUsIHRpdGxlPScnLAorICAgICAgICAgICAgICAgbWFya3VwPSdodG1sJywgaGVhZGVyPU5vbmUsIGZvb3Rlcj1Ob25lLAorICAgICAgICAgICAgICAgbGluZW51bWJlcnM9MCwgc2hvdz0wLCBkb3NoZWV0PTEsIGZvcm09Tm9uZSk6CisgICAgIiIiQ29udmVydHMgYSBjb2RlIHN0cmluZyB0byBhIGZpbGUuCisKKyAgICAgICBtYWtlcyBubyBhdHRlbXB0IGF0IGNvcnJlY3RpbmcgYmFkIHBhdGhuYW1lcworICAgICIiIgorICAgIGNzcyAsIGh0bWwgPSBzdHIybWFya3VwKHNvdXJjZXN0cmluZywgY29sb3JzPWNvbG9ycywgdGl0bGU9JycsCisgICAgICAgICAgICAgICAgICAgIG1hcmt1cD1tYXJrdXAsIGhlYWRlcj1oZWFkZXIsIGZvb3Rlcj1mb290ZXIsCisgICAgICAgICAgICAgICAgICAgIGxpbmVudW1iZXJzPWxpbmVudW1iZXJzLCBmb3JtPWZvcm0pCisgICAgIyB3cml0ZSBodG1sCisgICAgZiA9IG9wZW4ob3V0ZmlsZSwnd3QnKQorICAgIGYud3JpdGVsaW5lcyhodG1sKQorICAgIGYuY2xvc2UoKQorICAgICN3cml0ZSBjc3MKKyAgICBpZiBjc3MgIT0gTm9uZSBhbmQgZG9zaGVldDoKKyAgICAgICAgZGlyID0gb3MucGF0aC5kaXJuYW1lKG91dGZpbGUpCisgICAgICAgIG91dGNzcyA9IG9zLnBhdGguam9pbihkaXIsJ3B5c3R5bGUuY3NzJykKKyAgICAgICAgZiA9IG9wZW4ob3V0Y3NzLCd3dCcpCisgICAgICAgIGYud3JpdGVsaW5lcyhjc3MpCisgICAgICAgIGYuY2xvc2UoKQorICAgIGlmIHNob3c6CisgICAgICAgIHNob3dwYWdlKG91dGZpbGUpCisKK2RlZiBwYXRoMmh0bWwoc291cmNlcGF0aCwgY29sb3JzPU5vbmUsIG1hcmt1cD0naHRtbCcsCisgICAgICAgICAgICAgICAgaGVhZGVyPU5vbmUsIGZvb3Rlcj1Ob25lLAorICAgICAgICAgICAgICAgIGxpbmVudW1iZXJzPTAsIGZvcm09Tm9uZSk6CisgICAgIiIiQ29udmVydHMgY29kZShmaWxlKSB0byBjb2xvcml6ZWQgSFRNTC4gUmV0dXJucyBhbiBIVE1MIHN0cmluZy4KKworICAgICAgIGZvcm09J2NvZGUnLG9yJ3NuaXAnIChmb3IgIjxwcmU+eW91cmNvZGU8L3ByZT4iIG9ubHkpCisgICAgICAgY29sb3JzPW51bGwsbW9ubyxsaXRlLGRhcmssZGFyazIsaWRsZSxvciBweXRob253aW4KKyAgICAiIiIKKyAgICBzdHJpbmdJTyA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICBzb3VyY2VzdHJpbmcgPSBvcGVuKHNvdXJjZXBhdGgpLnJlYWQoKQorICAgIFBhcnNlcihzb3VyY2VzdHJpbmcsIGNvbG9ycywgdGl0bGU9c291cmNlcGF0aCwgb3V0PXN0cmluZ0lPLAorICAgICAgICAgICBtYXJrdXA9bWFya3VwLCBoZWFkZXI9aGVhZGVyLCBmb290ZXI9Zm9vdGVyLAorICAgICAgICAgICBsaW5lbnVtYmVycz1saW5lbnVtYmVycykuZm9ybWF0KGZvcm0pCisgICAgc3RyaW5nSU8uc2VlaygwKQorICAgIHJldHVybiBzdHJpbmdJTy5yZWFkKCkKKworZGVmIGNvbnZlcnQoc291cmNlLCBvdXRkaXI9Tm9uZSwgY29sb3JzPU5vbmUsCisgICAgICAgICAgICAgIHNob3c9MCwgbWFya3VwPSdodG1sJywgcXVpZXQ9MCwKKyAgICAgICAgICAgICAgaGVhZGVyPU5vbmUsIGZvb3Rlcj1Ob25lLCBsaW5lbnVtYmVycz0wLCBmb3JtPU5vbmUpOgorICAgICIiIlRha2VzIGEgZmlsZSBvciBkaXIgYXMgaW5wdXQgYW5kIHBsYWNlcyB0aGUgaHRtbCBpbiB0aGUgb3V0ZGlyLgorCisgICAgICAgSWYgb3V0ZGlyIGlzIG5vbmUgaXQgZGVmYXVsdHMgdG8gdGhlIGlucHV0IGRpcgorICAgICIiIgorICAgIGNvdW50PTAKKyAgICAjIElmIGl0IGlzIGEgZmlsZW5hbWUgdGhlbiBwYXRoMmZpbGUKKyAgICBpZiBub3Qgb3MucGF0aC5pc2Rpcihzb3VyY2UpOgorICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShzb3VyY2UpOgorICAgICAgICAgICAgY291bnQrPTEKKyAgICAgICAgICAgIHBhdGgyZmlsZShzb3VyY2UsIG91dGRpciwgY29sb3JzLCBzaG93LCBtYXJrdXAsCisgICAgICAgICAgICAgICAgICAgICBxdWlldCwgZm9ybSwgaGVhZGVyLCBmb290ZXIsIGxpbmVudW1iZXJzLCBjb3VudCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFBhdGhFcnJvcignRmlsZSBkb2VzIG5vdCBleGlzdCEnKQorICAgICMgSWYgd2UgcGFzcyBpbiBhIGRpciB3ZSBuZWVkIHRvIHdhbGtkaXIgZm9yIGZpbGVzLgorICAgICMgVGhlbiB3ZSBuZWVkIHRvIGNvbG9yaXplIHRoZW0gd2l0aCBwYXRoMmZpbGUKKyAgICBlbHNlOgorICAgICAgICBmaWxlTGlzdCA9IHdhbGtkaXIoc291cmNlKQorICAgICAgICBpZiBmaWxlTGlzdCAhPSBOb25lOgorICAgICAgICAgICAgIyBtYWtlIHN1cmUgb3V0ZGlyIGlzIGEgZGlyCisgICAgICAgICAgICBpZiBvdXRkaXIgIT0gTm9uZToKKyAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLnNwbGl0ZXh0KG91dGRpcilbMV0gIT0gJyc6CisgICAgICAgICAgICAgICAgICAgIG91dGRpciA9IG9zLnBhdGguc3BsaXQob3V0ZGlyKVswXQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZmlsZUxpc3Q6CisgICAgICAgICAgICAgICAgY291bnQrPTEKKyAgICAgICAgICAgICAgICBwYXRoMmZpbGUoaXRlbSwgb3V0ZGlyLCBjb2xvcnMsIHNob3csIG1hcmt1cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcXVpZXQsIGZvcm0sIGhlYWRlciwgZm9vdGVyLCBsaW5lbnVtYmVycywgY291bnQpCisgICAgICAgICAgICBfcHJpbnRpbmZvKCdDb21wbGV0ZWQgY29sb3JpemluZyAlcyBmaWxlcy4nJXN0cihjb3VudCksIHF1aWV0KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgX3ByaW50aW5mbygiTm8gZmlsZXMgdG8gY29udmVydCBpbiBkaXIuIiwgcXVpZXQpCisKK2RlZiBwYXRoMmZpbGUoc291cmNlUGF0aCwgb3V0PU5vbmUsIGNvbG9ycz1Ob25lLCBzaG93PTAsCisgICAgICAgICAgICAgICAgbWFya3VwPSdodG1sJywgcXVpZXQ9MCwgZm9ybT1Ob25lLAorICAgICAgICAgICAgICAgIGhlYWRlcj1Ob25lLCBmb290ZXI9Tm9uZSwgbGluZW51bWJlcnM9MCwgY291bnQ9MSk6CisgICAgIiIiIENvbnZlcnRzIHB5dGhvbiBzb3VyY2UgdG8gaHRtbCBmaWxlIiIiCisgICAgIyBJZiBubyBvdXRkaXIgaXMgZ2l2ZW4gd2UgdXNlIHRoZSBzb3VyY2VQYXRoCisgICAgaWYgb3V0ID09IE5vbmU6I3RoaXMgaXMgYSBndWVzcworICAgICAgICBodG1sUGF0aCA9IHNvdXJjZVBhdGggKyAnLmh0bWwnCisgICAgZWxzZToKKyAgICAgICAgIyBJZiB3ZSBkbyBnaXZlIGFuIG91dF9kaXIsIGFuZCBpdCBkb2VzCisgICAgICAgICMgbm90IGV4aXN0ICwgaXQgd2lsbCBiZSBjcmVhdGVkLgorICAgICAgICBpZiBvcy5wYXRoLnNwbGl0ZXh0KG91dClbMV0gPT0gJyc6CisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihvdXQpOgorICAgICAgICAgICAgICAgIG9zLm1ha2VkaXJzKG91dCkKKyAgICAgICAgICAgIHNvdXJjZU5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNvdXJjZVBhdGgpCisgICAgICAgICAgICBodG1sUGF0aCA9IG9zLnBhdGguam9pbihvdXQsc291cmNlTmFtZSkrJy5odG1sJworICAgICAgICAjIElmIHdlIGRvIGdpdmUgYW4gb3V0X25hbWUsIGFuZCBpdHMgZGlyIGRvZXMKKyAgICAgICAgIyBub3QgZXhpc3QgLCBpdCB3aWxsIGJlIGNyZWF0ZWQuCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRkaXIgPSBvcy5wYXRoLnNwbGl0KG91dClbMF0KKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKG91dGRpcik6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMob3V0ZGlyKQorICAgICAgICAgICAgaHRtbFBhdGggPSBvdXQKKyAgICBodG1sUGF0aCA9IG9zLnBhdGguYWJzcGF0aChodG1sUGF0aCkKKyAgICAjIE9wZW4gdGhlIHRleHQgYW5kIGRvIHRoZSBwYXJzaW5nLgorICAgIHNvdXJjZSA9IG9wZW4oc291cmNlUGF0aCkucmVhZCgpCisgICAgcGFyc2UgPSBQYXJzZXIoc291cmNlLCBjb2xvcnMsIHNvdXJjZVBhdGgsIG9wZW4oaHRtbFBhdGgsICd3dCcpLAorICAgICAgICAgICAgICAgICAgIG1hcmt1cCwgaGVhZGVyLCBmb290ZXIsIGxpbmVudW1iZXJzKQorICAgIHBhcnNlLmZvcm1hdChmb3JtKQorICAgIF9wcmludGluZm8oIiAgd3JvdGUgJXMiICUgaHRtbFBhdGgsIHF1aWV0KQorICAgICMgaHRtbCBtYXJrdXAgd2lsbCBpZ25vcmUgdGhlIGV4dGVybmFsIGZsYWcsIGJ1dAorICAgICMgd2UgbmVlZCB0byBzdG9wIHRoZSBibGFuayBmaWxlIGZyb20gYmVpbmcgd3JpdHRlbi4KKyAgICBpZiBmb3JtID09ICdleHRlcm5hbCcgYW5kIGNvdW50ID09IDEgYW5kIG1hcmt1cCAhPSAnaHRtbCc6CisgICAgICAgIGNzc1NoZWV0ID0gcGFyc2UuX3NlbmRDU1NTdHlsZShleHRlcm5hbD0xKQorICAgICAgICBjc3NQYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShodG1sUGF0aCksJ3B5c3R5bGUuY3NzJykKKyAgICAgICAgY3NzID0gb3Blbihjc3NQYXRoLCAnd3QnKQorICAgICAgICBjc3Mud3JpdGUoY3NzU2hlZXQpCisgICAgICAgIGNzcy5jbG9zZSgpCisgICAgICAgIF9wcmludGluZm8oIiAgICB3cm90ZSAlcyIgJSBjc3NQYXRoLCBxdWlldCkKKyAgICBpZiBzaG93OgorICAgICAgICAjIGxvYWQgSFRNTCBwYWdlIGludG8gdGhlIGRlZmF1bHQgd2ViIGJyb3dzZXIuCisgICAgICAgIHNob3dwYWdlKGh0bWxQYXRoKQorICAgIHJldHVybiBodG1sUGF0aAorCitkZWYgdGFncmVwbGFjZShzb3VyY2VzdHIsIGNvbG9ycz1saXRlLCBtYXJrdXA9J3hodG1sJywKKyAgICAgICAgICAgICAgIGxpbmVudW1iZXJzPTAsIGRvc2hlZXQ9MSwgdGFnc3RhcnQ9JzxQWT4nLmxvd2VyKCksCisgICAgICAgICAgICAgICB0YWdlbmQ9JzwvUFk+Jy5sb3dlcigpLCBzdHlsZXNoZWV0PSdweXN0eWxlLmNzcycpOgorICAgICIiIlRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gZm9yIHBhZ2Vjb252ZXJ0LiBSZXR1cm5zIGNzcywgcGFnZS4KKyAgICAiIiIKKyAgICBpZiBtYXJrdXAubG93ZXIoKSAhPSAnaHRtbCc6CisgICAgICAgIGxpbmsgID0gJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iJXMiIHR5cGU9InRleHQvY3NzIi8+PC9oZWFkPicKKyAgICAgICAgY3NzID0gbGluayVzdHlsZXNoZWV0CisgICAgICAgIGlmIHNvdXJjZXN0ci5maW5kKGNzcykgPT0gLTE6CisgICAgICAgICAgICBzb3VyY2VzdHIgPSBzb3VyY2VzdHIucmVwbGFjZSgnPC9oZWFkPicsIGNzcywgMSkKKyAgICBzdGFydHRhZ3MgPSBzb3VyY2VzdHIuY291bnQodGFnc3RhcnQpCisgICAgZW5kdGFncyA9IHNvdXJjZXN0ci5jb3VudCh0YWdlbmQpCisgICAgaWYgc3RhcnR0YWdzOgorICAgICAgICBpZiBzdGFydHRhZ3MgPT0gZW5kdGFnczoKKyAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKHN0YXJ0dGFncyk6CisgICAgICAgICAgICAgICBkYXRhc3RhcnQgPSBzb3VyY2VzdHIuZmluZCh0YWdzdGFydCkKKyAgICAgICAgICAgICAgIGRhdGFlbmQgPSBzb3VyY2VzdHIuZmluZCh0YWdlbmQpCisgICAgICAgICAgICAgICBkYXRhID0gc291cmNlc3RyW2RhdGFzdGFydCtsZW4odGFnc3RhcnQpOmRhdGFlbmRdCisgICAgICAgICAgICAgICBkYXRhID0gdW5lc2NhcGUoZGF0YSkKKyAgICAgICAgICAgICAgIGNzcyAsIGRhdGEgPSBzdHIybWFya3VwKGRhdGEsIGNvbG9ycz1jb2xvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgbGluZW51bWJlcnM9bGluZW51bWJlcnMsIG1hcmt1cD1tYXJrdXAsIGZvcm09J2VtYmVkJykKKyAgICAgICAgICAgICAgIHN0YXJ0ID0gc291cmNlc3RyWzpkYXRhc3RhcnRdCisgICAgICAgICAgICAgICBlbmQgPSBzb3VyY2VzdHJbZGF0YWVuZCtsZW4odGFnZW5kKTpdCisgICAgICAgICAgICAgICBzb3VyY2VzdHIgPSAgJycuam9pbihbc3RhcnQsZGF0YSxlbmRdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgSW5wdXRFcnJvcignVGFnIG1pc21hdGNoIVxuQ2hlY2sgJXMsJXMgdGFncycldGFnc3RhcnQsdGFnZW5kKQorICAgIGlmIG5vdCBkb3NoZWV0OgorICAgICAgICBjc3MgPSBOb25lCisgICAgcmV0dXJuIGNzcywgc291cmNlc3RyCisKK2RlZiBwYWdlY29udmVydChwYXRoLCBvdXQ9Tm9uZSwgY29sb3JzPWxpdGUsIG1hcmt1cD0neGh0bWwnLCBsaW5lbnVtYmVycz0wLAorICAgICAgICAgICAgICAgICAgZG9zaGVldD0xLCB0YWdzdGFydD0nPFBZPicubG93ZXIoKSwgdGFnZW5kPSc8L1BZPicubG93ZXIoKSwKKyAgICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQ9J3B5c3R5bGUnLCBzaG93PTEsIHJldHVybnN0cj0wKToKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIGNhbiBjb2xvcml6ZSBQeXRob24gc291cmNlCisKKyAgICAgICB0aGF0IGlzIHdyaXR0ZW4gaW4gYSB3ZWJwYWdlIGVuY2xvc2VkIGluIHRhZ3MuCisgICAgIiIiCisgICAgaWYgb3V0ID09IE5vbmU6CisgICAgICAgIG91dCA9IG9zLnBhdGguZGlybmFtZShwYXRoKQorICAgIGluZmlsZSA9IG9wZW4ocGF0aCwgJ3InKS5yZWFkKCkKKyAgICBjc3MscGFnZSAgPSB0YWdyZXBsYWNlKHNvdXJjZXN0cj1pbmZpbGUsY29sb3JzPWNvbG9ycywKKyAgICAgICAgICAgICAgICAgICBtYXJrdXA9bWFya3VwLCBsaW5lbnVtYmVycz1saW5lbnVtYmVycywgZG9zaGVldD1kb3NoZWV0LAorICAgICAgICAgICAgICAgICAgIHRhZ3N0YXJ0PXRhZ3N0YXJ0LCB0YWdlbmQ9dGFnZW5kLCBzdHlsZXNoZWV0PXN0eWxlc2hlZXQpCisgICAgaWYgbm90IHJldHVybnN0cjoKKyAgICAgICAgbmV3cGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICAgICAgICBvdXQsJ3RtcCcsIG9zLnBhdGguYmFzZW5hbWUocGF0aCkpKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMobmV3cGF0aCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMob3MucGF0aC5kaXJuYW1lKG5ld3BhdGgpKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MjdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgI1VzYWdlKCkKKyAgICAgICAgeSA9IG9wZW4obmV3cGF0aCwgJ3cnKQorICAgICAgICB5LndyaXRlKHBhZ2UpCisgICAgICAgIHkuY2xvc2UoKQorICAgICAgICBpZiBjc3M6CisgICAgICAgICAgICBjc3NwYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbigKKyAgICAgICAgICAgICAgICAgICAgICBvdXQsJ3RtcCcsJyVzLmNzcyclc3R5bGVzaGVldCkpCisgICAgICAgICAgICB4ID0gb3Blbihjc3NwYXRoLCd3JykKKyAgICAgICAgICAgIHgud3JpdGUoY3NzKQorICAgICAgICAgICAgeC5jbG9zZSgpCisgICAgICAgIGlmIHNob3c6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgb3Muc3RhcnRmaWxlKG5ld3BhdGgpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgIHJldHVybiBuZXdwYXRoCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGNzcywgcGFnZQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgaGVscGVycworCitkZWYgd2Fsa2RpcihkaXIpOgorICAgICIiIlJldHVybiBhIGxpc3Qgb2YgLnB5IGFuZCAucHl3IGZpbGVzIGZyb20gYSBnaXZlbiBkaXJlY3RvcnkuCisKKyAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB3cml0dGVuIGFzIGEgZ2VuZXJhdG9yIFB5dGhvbiAyLjMsIG9yIGEgZ2VuZXhwCisgICAgICAgaW4gUHl0aG9uIDIuNC4gQnV0IDIuMiBhbmQgMi4xIHdvdWxkIGJlIGxlZnQgb3V0Li4uLgorICAgICIiIgorICAgICMgR2V0IGEgbGlzdCBvZiBmaWxlcyB0aGF0IG1hdGNoICoucHkqCisgICAgR0xPQl9QQVRURVJOID0gb3MucGF0aC5qb2luKGRpciwgIiouW3BdW3ldKiIpCisgICAgcGF0aGxpc3QgPSBnbG9iLmdsb2IoR0xPQl9QQVRURVJOKQorICAgICMgTm93IGZpbHRlciBvdXQgYWxsIGJ1dCBweSBhbmQgcHl3CisgICAgZmlsdGVybGlzdCA9IFt4IGZvciB4IGluIHBhdGhsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICBpZiB4LmVuZHN3aXRoKCcucHknKQorICAgICAgICAgICAgICAgICAgICAgICAgb3IgeC5lbmRzd2l0aCgnLnB5dycpXQorICAgIGlmIGZpbHRlcmxpc3QgIT0gW106CisgICAgICAgICMgaWYgd2UgaGF2ZSBhIGxpc3Qgc2VuZCBpdAorICAgICAgICByZXR1cm4gZmlsdGVybGlzdAorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBOb25lCisKK2RlZiBzaG93cGFnZShwYXRoKToKKyAgICAiIiJIZWxwZXIgZnVuY3Rpb24gdG8gb3BlbiB3ZWJwYWdlcyIiIgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IHdlYmJyb3dzZXIKKyAgICAgICAgd2ViYnJvd3Nlci5vcGVuX25ldyhvcy5wYXRoLmFic3BhdGgocGF0aCkpCisgICAgZXhjZXB0OgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKworZGVmIF9wcmludGluZm8obWVzc2FnZSwgcXVpZXQpOgorICAgICIiIkhlbHBlciB0byBwcmludCBtZXNzYWdlcyIiIgorICAgIGlmIG5vdCBxdWlldDoKKyAgICAgICAgcHJpbnQobWVzc2FnZSkKKworZGVmIGVzY2FwZSh0ZXh0KToKKyAgICAgIiIiZXNjYXBlIHRleHQgZm9yIGh0bWwuIHNpbWlsYXIgdG8gY2dpLmVzY2FwZSIiIgorICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCImIiwgIiZhbXA7IikKKyAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgiPCIsICImbHQ7IikKKyAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgiPiIsICImZ3Q7IikKKyAgICAgcmV0dXJuIHRleHQKKworZGVmIHVuZXNjYXBlKHRleHQpOgorICAgICAiIiJ1bnNlY2FwZSBlc2NhcGVkIHRleHQiIiIKKyAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgiJnF1b3Q7IiwgJyInKQorICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCImZ3Q7IiwgIj4iKQorICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCImbHQ7IiwgIjwiKQorICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCImYW1wOyIsICImIikKKyAgICAgcmV0dXJuIHRleHQKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQ3VzdG9tIEV4Y2VwdGlvbnMKKworY2xhc3MgUHlTb3VyY2VDb2xvckVycm9yKEV4Y2VwdGlvbik6CisgICAgIyBCYXNlIGZvciBjdXN0b20gZXJyb3JzCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZz0nJyk6CisgICAgICAgIHNlbGYuX21zZyA9IG1zZworICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwgbXNnKQorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21zZworICAgIF9fc3RyX18gPSBfX3JlcHJfXworCitjbGFzcyBQYXRoRXJyb3IoUHlTb3VyY2VDb2xvckVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnKToKKyAgICAgICBQeVNvdXJjZUNvbG9yRXJyb3IuX19pbml0X18oc2VsZiwKKyAgICAgICAgICdQYXRoIGVycm9yISA6ICVzJyUgbXNnKQorCitjbGFzcyBJbnB1dEVycm9yKFB5U291cmNlQ29sb3JFcnJvcik6CisgICBkZWYgX19pbml0X18oc2VsZiwgbXNnKToKKyAgICAgICBQeVNvdXJjZUNvbG9yRXJyb3IuX19pbml0X18oc2VsZiwKKyAgICAgICAgICdJbnB1dCBlcnJvciEgOiAlcyclIG1zZykKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBQeXRob24gY29kZSBwYXJzZXIKKworY2xhc3MgUGFyc2VyKG9iamVjdCk6CisKKyAgICAiIiJNb2luTW9pbiBweXRob24gcGFyc2VyIGhlYXZpbHkgY2hvcHBlZCA6KSIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhdywgY29sb3JzPU5vbmUsIHRpdGxlPScnLCBvdXQ9c3lzLnN0ZG91dCwKKyAgICAgICAgICAgICAgICAgICBtYXJrdXA9J2h0bWwnLCBoZWFkZXI9Tm9uZSwgZm9vdGVyPU5vbmUsIGxpbmVudW1iZXJzPTApOgorICAgICAgICAiIiJTdG9yZSB0aGUgc291cmNlIHRleHQgJiBzZXQgc29tZSBmbGFncyIiIgorICAgICAgICBpZiBjb2xvcnMgPT0gTm9uZToKKyAgICAgICAgICAgIGNvbG9ycyA9IGRlZmF1bHRDb2xvcnMKKyAgICAgICAgc2VsZi5yYXcgPSByYXcuZXhwYW5kdGFicygpLnJzdHJpcCgpCisgICAgICAgIHNlbGYudGl0bGUgPSBvcy5wYXRoLmJhc2VuYW1lKHRpdGxlKQorICAgICAgICBzZWxmLm91dCA9IG91dAorICAgICAgICBzZWxmLmxpbmUgPSAnJworICAgICAgICBzZWxmLmxhc3R0ZXh0ID0gJycKKyAgICAgICAgc2VsZi5hcmdGbGFnID0gMAorICAgICAgICBzZWxmLmNsYXNzRmxhZyA9IDAKKyAgICAgICAgc2VsZi5kZWZGbGFnID0gMAorICAgICAgICBzZWxmLmRlY29yYXRvckZsYWcgPSAwCisgICAgICAgIHNlbGYuZXh0ZXJuYWwgPSAwCisgICAgICAgIHNlbGYubWFya3VwID0gbWFya3VwLnVwcGVyKCkKKyAgICAgICAgc2VsZi5jb2xvcnMgPSBjb2xvcnMKKyAgICAgICAgc2VsZi5oZWFkZXIgPSBoZWFkZXIKKyAgICAgICAgc2VsZi5mb290ZXIgPSBmb290ZXIKKyAgICAgICAgc2VsZi5kb0FyZ3MgPSAxICMgIG92ZXJyaWRlcyB0aGUgbmV3IHRva2VucworICAgICAgICBzZWxmLmRvTmFtZXMgPSAxICMgIG92ZXJyaWRlcyB0aGUgbmV3IHRva2VucworICAgICAgICBzZWxmLmRvTWF0aE9wcyA9IDEgIyAgb3ZlcnJpZGVzIHRoZSBuZXcgdG9rZW5zCisgICAgICAgIHNlbGYuZG9CcmFja2V0cyA9IDEgIyAgb3ZlcnJpZGVzIHRoZSBuZXcgdG9rZW5zCisgICAgICAgIHNlbGYuZG9VUkwgPSAxICMgb3ZlcnJpZGUgdXJsIGNvbnZlcnNpb24KKyAgICAgICAgc2VsZi5MSU5FTlVNSE9MREVSID0gIl9fX2xpbmVfX18iLnVwcGVyKCkKKyAgICAgICAgc2VsZi5MSU5FU1RBUlQgPSAiX19fc3RhcnRfX18iLnVwcGVyKCkKKyAgICAgICAgc2VsZi5za2lwID0gMAorICAgICAgICAjIGFkZCBzcGFjZSBsZWZ0IHNpZGUgb2YgY29kZSBmb3IgcGFkZGluZy5PdmVycmlkZSBpbiBjb2xvciBkaWN0LgorICAgICAgICBzZWxmLmV4dHJhc3BhY2UgPSBzZWxmLmNvbG9ycy5nZXQoRVhUUkFTUEFDRSwgJycpCisgICAgICAgICMgTGluZW51bWJlcnMgbGVzcyB0aGVuIHplcm8gYWxzbyBoYXZlIG51bWJlcmxpbmtzCisgICAgICAgIHNlbGYuZG9saW5lbnVtcyA9IHNlbGYubGluZW51bSA9IGFicyhsaW5lbnVtYmVycykKKyAgICAgICAgaWYgbGluZW51bWJlcnMgPCAwOgorICAgICAgICAgICAgc2VsZi5udW1iZXJsaW5rcyA9IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYubnVtYmVybGlua3MgPSAwCisKKyAgICBkZWYgZm9ybWF0KHNlbGYsIGZvcm09Tm9uZSk6CisgICAgICAgICIiIlBhcnNlIGFuZCBzZW5kIHRoZSBjb2xvcml6ZWQgc291cmNlIiIiCisgICAgICAgIGlmIGZvcm0gaW4gKCdzbmlwJywnY29kZScpOgorICAgICAgICAgICAgc2VsZi5hZGRFbmRzID0gMAorICAgICAgICBlbGlmIGZvcm0gPT0gJ2VtYmVkJzoKKyAgICAgICAgICAgIHNlbGYuYWRkRW5kcyA9IDAKKyAgICAgICAgICAgIHNlbGYuZXh0ZXJuYWwgPSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBmb3JtID09ICdleHRlcm5hbCc6CisgICAgICAgICAgICAgICAgc2VsZi5leHRlcm5hbCA9IDEKKyAgICAgICAgICAgIHNlbGYuYWRkRW5kcyA9IDEKKworICAgICAgICAjIFN0b3JlIGxpbmUgb2Zmc2V0cyBpbiBzZWxmLmxpbmVzCisgICAgICAgIHNlbGYubGluZXMgPSBbMCwgMF0KKyAgICAgICAgcG9zID0gMAorCisgICAgICAgICMgQWRkIGxpbmVudW1iZXJzCisgICAgICAgIGlmIHNlbGYuZG9saW5lbnVtczoKKyAgICAgICAgICAgIHN0YXJ0PXNlbGYuTElORU5VTUhPTERFUisnICcrc2VsZi5leHRyYXNwYWNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGFydD0nJytzZWxmLmV4dHJhc3BhY2UKKyAgICAgICAgbmV3bGluZXMgPSBbXQorICAgICAgICBsaW5lcyA9IHNlbGYucmF3LnNwbGl0bGluZXMoMCkKKyAgICAgICAgZm9yIGwgaW4gbGluZXM6CisgICAgICAgICAgICAgIyBzcGFuIGFuZCBkaXYgZXNjYXBlIGZvciBjdXN0b21pemluZyBhbmQgZW1iZWRkaW5nIHJhdyB0ZXh0CisgICAgICAgICAgICAgaWYgKGwuc3RhcnRzd2l0aCgnIyQjJykKKyAgICAgICAgICAgICAgICAgIG9yIGwuc3RhcnRzd2l0aCgnIyUjJykKKyAgICAgICAgICAgICAgICAgIG9yIGwuc3RhcnRzd2l0aCgnI0AjJykpOgorICAgICAgICAgICAgICAgIG5ld2xpbmVzLmFwcGVuZChsKQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBrbHVkZ2UgZm9yIGxpbmUgc3BhbnMgaW4gY3NzLHhodG1sCisgICAgICAgICAgICAgICAgaWYgc2VsZi5tYXJrdXAgaW4gWydYSFRNTCcsJ0NTUyddOgorICAgICAgICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBlbmQoc2VsZi5MSU5FU1RBUlQrJyAnK3N0YXJ0K2wpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbmV3bGluZXMuYXBwZW5kKHN0YXJ0K2wpCisgICAgICAgIHNlbGYucmF3ID0gIlxuIi5qb2luKG5ld2xpbmVzKSsnXG4nIyBwbHVzIGFuIGV4dHJhIG5ld2xpbmUgYXQgdGhlIGVuZAorCisgICAgICAgICMgR2F0aGVyIGxpbmVzCisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBwb3MgPSBzZWxmLnJhdy5maW5kKCdcbicsIHBvcykgKyAxCisgICAgICAgICAgICBpZiBub3QgcG9zOiBicmVhaworICAgICAgICAgICAgc2VsZi5saW5lcy5hcHBlbmQocG9zKQorICAgICAgICBzZWxmLmxpbmVzLmFwcGVuZChsZW4oc2VsZi5yYXcpKQorCisgICAgICAgICMgV3JhcCB0ZXh0IGluIGEgZmlsZWxpa2Ugb2JqZWN0CisgICAgICAgIHNlbGYucG9zID0gMAorICAgICAgICB0ZXh0ID0gU3RyaW5nSU8uU3RyaW5nSU8oc2VsZi5yYXcpCisKKyAgICAgICAgIyBNYXJrdXAgc3RhcnQKKyAgICAgICAgaWYgc2VsZi5hZGRFbmRzOgorICAgICAgICAgICAgc2VsZi5fZG9QYWdlU3RhcnQoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fZG9TbmlwcGV0U3RhcnQoKQorCisgICAgICAgICMjIFRva2VuaXplIGNhbGxzIHRoZSBfX2NhbGxfXworICAgICAgICAjIyBmdW5jdGlvbiBmb3IgZWFjaCB0b2tlbiB0aWxsIGRvbmUuCisgICAgICAgICMgUGFyc2UgdGhlIHNvdXJjZSBhbmQgd3JpdGUgb3V0IHRoZSByZXN1bHRzLgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0b2tlbml6ZS50b2tlbml6ZSh0ZXh0LnJlYWRsaW5lLCBzZWxmKQorICAgICAgICBleGNlcHQgdG9rZW5pemUuVG9rZW5FcnJvciBhcyBleDoKKyAgICAgICAgICAgIG1zZyA9IGV4WzBdCisgICAgICAgICAgICBsaW5lID0gZXhbMV1bMF0KKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCI8aDM+RVJST1I6ICVzPC9oMz4lc1xuIiUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobXNnLCBzZWxmLnJhd1tzZWxmLmxpbmVzW2xpbmVdOl0pKQorICAgICAgICAgICAgI3RyYWNlYmFjay5wcmludF9leGMoKQorCisgICAgICAgICMgTWFya3VwIGVuZAorICAgICAgICBpZiBzZWxmLmFkZEVuZHM6CisgICAgICAgICAgICBzZWxmLl9kb1BhZ2VFbmQoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fZG9TbmlwcGV0RW5kKCkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0b2t0eXBlLCB0b2t0ZXh0LCBzcm93X2NvbCwgZXJvd19jb2wsIGxpbmUpOgorICAgICAgICAiIiJUb2tlbiBoYW5kbGVyLiBPcmRlciBpcyBpbXBvcnRhbnQgZG8gbm90IHJlYXJyYW5nZS4iIiIKKyAgICAgICAgc2VsZi5saW5lID0gbGluZQorICAgICAgICBzcm93LCBzY29sID0gc3Jvd19jb2wKKyAgICAgICAgZXJvdywgZWNvbCA9IGVyb3dfY29sCisgICAgICAgICMgQ2FsY3VsYXRlIG5ldyBwb3NpdGlvbnMKKyAgICAgICAgb2xkcG9zID0gc2VsZi5wb3MKKyAgICAgICAgbmV3cG9zID0gc2VsZi5saW5lc1tzcm93XSArIHNjb2wKKyAgICAgICAgc2VsZi5wb3MgPSBuZXdwb3MgKyBsZW4odG9rdGV4dCkKKyAgICAgICAgIyBIYW5kbGUgbmV3bGluZXMKKyAgICAgICAgaWYgdG9rdHlwZSBpbiAodG9rZW4uTkVXTElORSwgdG9rZW5pemUuTkwpOgorICAgICAgICAgICAgc2VsZi5kZWNvcmF0b3JGbGFnID0gc2VsZi5hcmdGbGFnID0gMAorICAgICAgICAgICAgIyBrbHVkZ2UgZm9yIGxpbmUgc3BhbnMgaW4gY3NzLHhodG1sCisgICAgICAgICAgICBpZiBzZWxmLm1hcmt1cCBpbiBbJ1hIVE1MJywnQ1NTJ106CisgICAgICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoJzwvc3Bhbj4nKQorICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoJ1xuJykKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgU2VuZCB0aGUgb3JpZ2luYWwgd2hpdGVzcGFjZSwgYW5kIHRva2VuaXplIGJhY2tzbGFzaGVzIGlmIHByZXNlbnQuCisgICAgICAgICMgVG9rZW5pemVyLnB5IGp1c3Qgc2VuZHMgY29udGludWVkIGxpbmUgYmFja3NsYXNoZXMgd2l0aCB3aGl0ZXNwYWNlLgorICAgICAgICAjIFRoaXMgaXMgYSBoYWNrIHRvIHRva2VuaXplIGNvbnRpbnVlZCBsaW5lIHNsYXNoZXMgYXMgb3BlcmF0b3JzLgorICAgICAgICAjIFNob3VsZCBjb250aW51ZWQgbGluZSBiYWNrc2xhc2hlcyBiZSB0cmVhdGVkIGFzIG9wZXJhdG9ycworICAgICAgICAjIG9yIHNvbWUgb3RoZXIgdG9rZW4/CisKKyAgICAgICAgaWYgbmV3cG9zID4gb2xkcG9zOgorICAgICAgICAgICAgaWYgc2VsZi5yYXdbb2xkcG9zOm5ld3Bvc10uaXNzcGFjZSgpOgorICAgICAgICAgICAgICAgICMgY29uc3VtZSBhIHNpbmdsZSBzcGFjZSBhZnRlciBsaW5lc3RhcnRzIGFuZCBsaW5lbnVtYmVycworICAgICAgICAgICAgICAgICMgaGFkIHRvIGhhdmUgdGhlbSBzbyB0b2tlbml6ZXIgY291bGQgc2VwZXJhdGUgdGhlbS4KKyAgICAgICAgICAgICAgICAjIG11bHRpbGluZSBzdHJpbmdzIGFyZSBoYW5kbGVkIGJ5IGRvX1RleHQgZnVuY3Rpb25zCisgICAgICAgICAgICAgICAgaWYgc2VsZi5sYXN0dGV4dCAhPSBzZWxmLkxJTkVTVEFSVCBcCisgICAgICAgICAgICAgICAgICAgICAgICBhbmQgc2VsZi5sYXN0dGV4dCAhPSBzZWxmLkxJTkVOVU1IT0xERVI6CisgICAgICAgICAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKHNlbGYucmF3W29sZHBvczpuZXdwb3NdKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKHNlbGYucmF3W29sZHBvcysxOm5ld3Bvc10pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNsYXNoID0gc2VsZi5yYXdbb2xkcG9zOm5ld3Bvc10uZmluZCgnXFwnKStvbGRwb3MKKyAgICAgICAgICAgICAgICBzZWxmLm91dC53cml0ZShzZWxmLnJhd1tvbGRwb3M6c2xhc2hdKQorICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgJ19zZW5kJXNUZXh0JyUoc2VsZi5tYXJrdXApKShPUEVSQVRPUiwgJ1xcJykKKyAgICAgICAgICAgICAgICBzZWxmLmxpbmVudW0rPTEKKyAgICAgICAgICAgICAgICAjIGtsdWRnZSBmb3IgbGluZSBzcGFucyBpbiBjc3MseGh0bWwKKyAgICAgICAgICAgICAgICBpZiBzZWxmLm1hcmt1cCBpbiBbJ1hIVE1MJywnQ1NTJ106CisgICAgICAgICAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCc8L3NwYW4+JykKKyAgICAgICAgICAgICAgICBzZWxmLm91dC53cml0ZShzZWxmLnJhd1tzbGFzaCsxOm5ld3Bvc10pCisKKyAgICAgICAgIyBTa2lwIGluZGVudGluZyB0b2tlbnMKKyAgICAgICAgaWYgdG9rdHlwZSBpbiAodG9rZW4uSU5ERU5ULCB0b2tlbi5ERURFTlQpOgorICAgICAgICAgICAgc2VsZi5wb3MgPSBuZXdwb3MKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgTG9vayBmb3Igb3BlcmF0b3JzCisgICAgICAgIGlmIHRva2VuLkxQQVIgPD0gdG9rdHlwZSBhbmQgdG9rdHlwZSA8PSB0b2tlbi5PUDoKKyAgICAgICAgICAgICMgVHJhcCBkZWNvcmF0b3JzIHB5Mi40ID4KKyAgICAgICAgICAgIGlmIHRva3RleHQgPT0gJ0AnOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBERUNPUkFUT1IKKyAgICAgICAgICAgICAgICAjIFNldCBhIGZsYWcgaWYgdGhpcyB3YXMgdGhlIGRlY29yYXRvciBzdGFydCBzbworICAgICAgICAgICAgICAgICMgdGhlIGRlY29yYXRvciBuYW1lIGFuZCBhcmd1bWVudHMgY2FuIGJlIGlkZW50aWZpZWQKKyAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRvckZsYWcgPSBzZWxmLmFyZ0ZsYWcgPSAxCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuZG9BcmdzOgorICAgICAgICAgICAgICAgICAgICAjIEZpbmQgdGhlIHN0YXJ0IGZvciBhcmd1bWVudHMKKyAgICAgICAgICAgICAgICAgICAgaWYgdG9rdGV4dCA9PSAnKCcgYW5kIHNlbGYuYXJnRmxhZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXJnRmxhZyA9IDIKKyAgICAgICAgICAgICAgICAgICAgIyBGaW5kIHRoZSBlbmQgZm9yIGFyZ3VtZW50cworICAgICAgICAgICAgICAgICAgICBlbGlmIHRva3RleHQgPT0gJzonOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcmdGbGFnID0gMAorICAgICAgICAgICAgICAgICMjIFNlcGVyYXRlIHRoZSBkaWZmcmVudCBvcGVyYXRvciB0eXBlcworICAgICAgICAgICAgICAgICMgQnJhY2tldHMKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmRvQnJhY2tldHMgYW5kIHRva3RleHQgaW4gWydbJywnXScsJygnLCcpJywneycsJ30nXToKKyAgICAgICAgICAgICAgICAgICAgdG9rdHlwZSA9IEJSQUNLRVRTCisgICAgICAgICAgICAgICAgIyBNYXRoIG9wZXJhdG9ycworICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5kb01hdGhPcHMgYW5kIHRva3RleHQgaW4gWycqPScsJyoqPScsJy09JywnKz0nLCd8PScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJT0nLCc+Pj0nLCc8PD0nLCc9JywnXj0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy89JywgJysnLCctJywnKionLCcqJywnLycsJyUnXToKKyAgICAgICAgICAgICAgICAgICAgdG9rdHlwZSA9IE1BVEhfT1BFUkFUT1IKKyAgICAgICAgICAgICAgICAjIE9wZXJhdG9yCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdG9rdHlwZSA9IE9QRVJBVE9SCisgICAgICAgICAgICAgICAgICAgICMgZXhhbXBsZSBob3cgZmxhZ3Mgc2hvdWxkIHdvcmsuCisgICAgICAgICAgICAgICAgICAgICMgZGVmIGZ1bihhcmc9YXJndmFsdWUsYXJnMj1hcmd2YWx1ZTIpOgorICAgICAgICAgICAgICAgICAgICAjIDAgICAxICAyIEEgMSAgIE4gICAgMiBBICAxICAgIE4gICAgIDAKKyAgICAgICAgICAgICAgICAgICAgaWYgdG9rdGV4dCA9PSAiPSIgYW5kIHNlbGYuYXJnRmxhZyA9PSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXJnRmxhZyA9IDEKKyAgICAgICAgICAgICAgICAgICAgZWxpZiB0b2t0ZXh0ID09ICIsIiBhbmQgc2VsZi5hcmdGbGFnID09IDE6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFyZ0ZsYWcgPSAyCisgICAgICAgICMgTG9vayBmb3Iga2V5d29yZHMKKyAgICAgICAgZWxpZiB0b2t0eXBlID09IE5BTUUgYW5kIGtleXdvcmQuaXNrZXl3b3JkKHRva3RleHQpOgorICAgICAgICAgICAgdG9rdHlwZSA9IEtFWVdPUkQKKyAgICAgICAgICAgICMgU2V0IGEgZmxhZyBpZiB0aGlzIHdhcyB0aGUgY2xhc3MgLyBkZWYgc3RhcnQgc28KKyAgICAgICAgICAgICMgdGhlIGNsYXNzIC8gZGVmIG5hbWUgYW5kIGFyZ3VtZW50cyBjYW4gYmUgaWRlbnRpZmllZAorICAgICAgICAgICAgaWYgdG9rdGV4dCBpbiBbJ2NsYXNzJywgJ2RlZiddOgorICAgICAgICAgICAgICAgIGlmIHRva3RleHQgPT0nY2xhc3MnIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGxpbmVbOmxpbmUuZmluZCgnY2xhc3MnKV0uZW5kc3dpdGgoJy4nKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGFzc0ZsYWcgPSBzZWxmLmFyZ0ZsYWcgPSAxCisgICAgICAgICAgICAgICAgZWxpZiB0b2t0ZXh0ID09ICdkZWYnIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGxpbmVbOmxpbmUuZmluZCgnZGVmJyldLmVuZHN3aXRoKCcuJyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVmRmxhZyA9IHNlbGYuYXJnRmxhZyA9IDEKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgaGF2ZSB1c2VkIGEga2V5d29yZCBhcyBhIG5hbWUgaS5lLiBzZWxmLmNsYXNzCisgICAgICAgICAgICAgICAgICAgIHRva3R5cGUgPSBFUlJPUlRPS0VOCisKKyAgICAgICAgIyBMb29rIGZvciBjbGFzcywgZGVmLCBkZWNvcmF0b3IgbmFtZQorICAgICAgICBlbGlmIChzZWxmLmNsYXNzRmxhZyBvciBzZWxmLmRlZkZsYWcgb3Igc2VsZi5kZWNvcmF0b3JGbGFnKSBcCisgICAgICAgICAgICAgICAgYW5kIHNlbGYuZG9OYW1lczoKKyAgICAgICAgICAgIGlmIHNlbGYuY2xhc3NGbGFnOgorICAgICAgICAgICAgICAgIHNlbGYuY2xhc3NGbGFnID0gMAorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBDTEFTU19OQU1FCisgICAgICAgICAgICBlbGlmIHNlbGYuZGVmRmxhZzoKKyAgICAgICAgICAgICAgICBzZWxmLmRlZkZsYWcgPSAwCisgICAgICAgICAgICAgICAgdG9rdHlwZSA9IERFRl9OQU1FCisgICAgICAgICAgICBlbGlmIHNlbGYuZGVjb3JhdG9yRmxhZzoKKyAgICAgICAgICAgICAgICBzZWxmLmRlY29yYXRvckZsYWcgPSAwCisgICAgICAgICAgICAgICAgdG9rdHlwZSA9IERFQ09SQVRPUl9OQU1FCisKKyAgICAgICAgIyBMb29rIGZvciBzdHJpbmdzCisgICAgICAgICMgT3JkZXIgb2YgZXZhbHVhdGlvbiBpcyBpbXBvcnRhbnQgZG8gbm90IGNoYW5nZS4KKyAgICAgICAgZWxpZiB0b2t0eXBlID09IHRva2VuLlNUUklORzoKKyAgICAgICAgICAgIHRleHQgPSB0b2t0ZXh0Lmxvd2VyKCkKKyAgICAgICAgICAgICMgVFJJUExFIERPVUJMRSBRVU9URSdzCisgICAgICAgICAgICBpZiAodGV4dFs6M10gPT0gJyIiIicpOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBUUklQTEVET1VCTEVRVU9URQorICAgICAgICAgICAgZWxpZiAodGV4dFs6NF0gPT0gJ3IiIiInKToKKyAgICAgICAgICAgICAgICB0b2t0eXBlID0gVFJJUExFRE9VQkxFUVVPVEVfUgorICAgICAgICAgICAgZWxpZiAodGV4dFs6NF0gPT0gJ3UiIiInIG9yCisgICAgICAgICAgICAgICAgICAgdGV4dFs6NV0gPT0gJ3VyIiIiJyk6CisgICAgICAgICAgICAgICAgdG9rdHlwZSA9IFRSSVBMRURPVUJMRVFVT1RFX1UKKyAgICAgICAgICAgICMgRE9VQkxFIFFVT1RFJ3MKKyAgICAgICAgICAgIGVsaWYgKHRleHRbOjFdID09ICciJyk6CisgICAgICAgICAgICAgICAgdG9rdHlwZSA9IERPVUJMRVFVT1RFCisgICAgICAgICAgICBlbGlmICh0ZXh0WzoyXSA9PSAnciInKToKKyAgICAgICAgICAgICAgICB0b2t0eXBlID0gRE9VQkxFUVVPVEVfUgorICAgICAgICAgICAgZWxpZiAodGV4dFs6Ml0gPT0gJ3UiJyBvcgorICAgICAgICAgICAgICAgICAgIHRleHRbOjNdID09ICd1ciInKToKKyAgICAgICAgICAgICAgICB0b2t0eXBlID0gRE9VQkxFUVVPVEVfVQorICAgICAgICAgICAgIyBUUklQTEUgU0lOR0xFIFFVT1RFJ3MKKyAgICAgICAgICAgIGVsaWYgKHRleHRbOjNdID09ICInJyciKToKKyAgICAgICAgICAgICAgICAgdG9rdHlwZSA9IFRSSVBMRVNJTkdMRVFVT1RFCisgICAgICAgICAgICBlbGlmICh0ZXh0Wzo0XSA9PSAicicnJyIpOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBUUklQTEVTSU5HTEVRVU9URV9SCisgICAgICAgICAgICBlbGlmICh0ZXh0Wzo0XSA9PSAidScnJyIgb3IKKyAgICAgICAgICAgICAgICAgICB0ZXh0Wzo1XSA9PSAidXInJyciKToKKyAgICAgICAgICAgICAgICB0b2t0eXBlID0gVFJJUExFU0lOR0xFUVVPVEVfVQorICAgICAgICAgICAgIyBTSU5HTEUgUVVPVEUncworICAgICAgICAgICAgZWxpZiAodGV4dFs6MV0gPT0gIiciKToKKyAgICAgICAgICAgICAgICB0b2t0eXBlID0gU0lOR0xFUVVPVEUKKyAgICAgICAgICAgIGVsaWYgKHRleHRbOjJdID09ICJyJyIpOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBTSU5HTEVRVU9URV9SCisgICAgICAgICAgICBlbGlmICh0ZXh0WzoyXSA9PSAidSciIG9yCisgICAgICAgICAgICAgICAgICAgdGV4dFs6M10gPT0gInVyJyIpOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBTSU5HTEVRVU9URV9VCisKKyAgICAgICAgICAgICMgdGVzdCBmb3IgaW52YWxpZCBzdHJpbmcgZGVjbGFyYXRpb24KKyAgICAgICAgICAgIGlmIHNlbGYubGFzdHRleHQubG93ZXIoKSA9PSAncnUnOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBFUlJPUlRPS0VOCisKKyAgICAgICAgIyBMb29rIGZvciBjb21tZW50cworICAgICAgICBlbGlmIHRva3R5cGUgPT0gQ09NTUVOVDoKKyAgICAgICAgICAgIGlmIHRva3RleHRbOjJdID09ICIjIyI6CisgICAgICAgICAgICAgICAgdG9rdHlwZSA9IERPVUJMRUNPTU1FTlQKKyAgICAgICAgICAgIGVsaWYgdG9rdGV4dFs6M10gPT0gJyMkIyc6CisgICAgICAgICAgICAgICAgdG9rdHlwZSA9IFRFWFQKKyAgICAgICAgICAgICAgICBzZWxmLnRleHRGbGFnID0gJ1NQQU4nCisgICAgICAgICAgICAgICAgdG9rdGV4dCA9IHRva3RleHRbMzpdCisgICAgICAgICAgICBlbGlmIHRva3RleHRbOjNdID09ICcjJSMnOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBURVhUCisgICAgICAgICAgICAgICAgc2VsZi50ZXh0RmxhZyA9ICdESVYnCisgICAgICAgICAgICAgICAgdG9rdGV4dCA9IHRva3RleHRbMzpdCisgICAgICAgICAgICBlbGlmIHRva3RleHRbOjNdID09ICcjQCMnOgorICAgICAgICAgICAgICAgIHRva3R5cGUgPSBURVhUCisgICAgICAgICAgICAgICAgc2VsZi50ZXh0RmxhZyA9ICdSQVcnCisgICAgICAgICAgICAgICAgdG9rdGV4dCA9IHRva3RleHRbMzpdCisgICAgICAgICAgICBpZiBzZWxmLmRvVVJMOgorICAgICAgICAgICAgICAgICMgdGhpcyBpcyBhICdmYWtlIGhlbHBlciBmdW5jdGlvbicKKyAgICAgICAgICAgICAgICAjIHVybChVUkksQWxpYXNfbmFtZSkgb3IgdXJsKFVSSSkKKyAgICAgICAgICAgICAgICB1cmxfcG9zID0gdG9rdGV4dC5maW5kKCd1cmwoJykKKyAgICAgICAgICAgICAgICBpZiB1cmxfcG9zICE9IC0xOgorICAgICAgICAgICAgICAgICAgICBiZWZvcmUgPSB0b2t0ZXh0Wzp1cmxfcG9zXQorICAgICAgICAgICAgICAgICAgICB1cmwgPSB0b2t0ZXh0W3VybF9wb3MrNDpdCisgICAgICAgICAgICAgICAgICAgIHNwbGl0cG9pbnQgPSB1cmwuZmluZCgnLCcpCisgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50ID0gdXJsLmZpbmQoJyknKQorICAgICAgICAgICAgICAgICAgICBhZnRlciA9IHVybFtlbmRwb2ludCsxOl0KKyAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsWzplbmRwb2ludF0KKyAgICAgICAgICAgICAgICAgICAgaWYgc3BsaXRwb2ludCAhPSAtMToKKyAgICAgICAgICAgICAgICAgICAgICAgIHVybHBhcnRzID0gdXJsLnNwbGl0KCcsJywxKQorICAgICAgICAgICAgICAgICAgICAgICAgdG9rdGV4dCA9ICclczxhIGhyZWY9IiVzIj4lczwvYT4lcyclKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUsdXJscGFydHNbMF0sdXJscGFydHNbMV0ubHN0cmlwKCksYWZ0ZXIpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICB0b2t0ZXh0ID0gJyVzPGEgaHJlZj0iJXMiPiVzPC9hPiVzJyUoYmVmb3JlLHVybCx1cmwsYWZ0ZXIpCisKKyAgICAgICAgIyBTZXBlcmF0ZSBlcnJvcnMgZnJvbSBkZWNvcmF0b3JzCisgICAgICAgIGVsaWYgdG9rdHlwZSA9PSBFUlJPUlRPS0VOOgorICAgICAgICAgICAgIyBCdWcgZml4IGZvciA8IHB5Mi40CisgICAgICAgICAgICAjIHNwYWNlIGJldHdlZW4gZGVjb3JhdG9ycworICAgICAgICAgICAgaWYgc2VsZi5hcmdGbGFnIGFuZCB0b2t0ZXh0Lmlzc3BhY2UoKToKKyAgICAgICAgICAgICAgICAjdG9rdHlwZSA9IE5BTUUKKyAgICAgICAgICAgICAgICBzZWxmLm91dC53cml0ZSh0b2t0ZXh0KQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIyBCdWcgZml4IGZvciBweTIuMiBsaW5lbnVtYmVycyB3aXRoIGRlY29yYXRvcnMKKyAgICAgICAgICAgIGVsaWYgdG9rdGV4dC5pc3NwYWNlKCk6CisgICAgICAgICAgICAgICAgIyBXaGF0IGlmIHdlIGhhdmUgYSBkZWNvcmF0b3IgYWZ0ZXIgYSA+Pj4gb3IgLi4uCisgICAgICAgICAgICAgICAgI3AgPSBsaW5lLmZpbmQoJ0AnKQorICAgICAgICAgICAgICAgICNpZiBwID49IDAgYW5kIG5vdCBsaW5lWzpwXS5pc3NwYWNlKCk6CisgICAgICAgICAgICAgICAgICAgICNzZWxmLm91dC53cml0ZSh0b2t0ZXh0KQorICAgICAgICAgICAgICAgICAgICAjcmV0dXJuCisgICAgICAgICAgICAgICAgaWYgc2VsZi5za2lwOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnNraXA9MAorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLm91dC53cml0ZSh0b2t0ZXh0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICMgdHJhcCBkZWNvcmF0b3JzIDwgcHkyLjQKKyAgICAgICAgICAgIGVsaWYgdG9rdGV4dCA9PSAnQCc6CisgICAgICAgICAgICAgICAgdG9rdHlwZSA9IERFQ09SQVRPUgorICAgICAgICAgICAgICAgICMgU2V0IGEgZmxhZyBpZiB0aGlzIHdhcyB0aGUgZGVjb3JhdG9yIHN0YXJ0IHNvCisgICAgICAgICAgICAgICAgIyB0aGUgZGVjb3JhdG9yIG5hbWUgYW5kIGFyZ3VtZW50cyBjYW4gYmUgaWRlbnRpZmllZAorICAgICAgICAgICAgICAgIHNlbGYuZGVjb3JhdG9yRmxhZyA9IHNlbGYuYXJnRmxhZyA9IDEKKworICAgICAgICAjIFNlcGVyYXRlIGFyZ3MgZnJvbSBuYW1lcworICAgICAgICBlbGlmIChzZWxmLmFyZ0ZsYWcgPT0gMiBhbmQKKyAgICAgICAgICAgICAgdG9rdHlwZSA9PSBOQU1FIGFuZAorICAgICAgICAgICAgICB0b2t0ZXh0ICE9ICdOb25lJyBhbmQKKyAgICAgICAgICAgICAgc2VsZi5kb0FyZ3MpOgorICAgICAgICAgICAgdG9rdHlwZSA9IEFSR1MKKworICAgICAgICAjIExvb2sgZm9yIGxpbmUgbnVtYmVycworICAgICAgICAjIFRoZSBjb252ZXJzaW9uIGNvZGUgZm9yIHRoZW0gaXMgaW4gdGhlIHNlbmRfdGV4dCBmdW5jdGlvbnMuCisgICAgICAgIGlmIHRva3RleHQgaW4gW3NlbGYuTElORU5VTUhPTERFUixzZWxmLkxJTkVTVEFSVF06CisgICAgICAgICAgICB0b2t0eXBlID0gTElORU5VTUJFUgorICAgICAgICAgICAgIyBpZiB3ZSBkb24ndCBoYXZlIGxpbmVudW1iZXJzIHNldCBmbGFnCisgICAgICAgICAgICAjIHRvIHNraXAgdGhlIHRyYWlsaW5nIHNwYWNlIGZyb20gbGluZXN0YXJ0CisgICAgICAgICAgICBpZiB0b2t0ZXh0ID09IHNlbGYuTElORVNUQVJUIGFuZCBub3Qgc2VsZi5kb2xpbmVudW1zIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgdG9rdGV4dCA9PSBzZWxmLkxJTkVOVU1IT0xERVI6CisgICAgICAgICAgICAgICAgc2VsZi5za2lwPTEKKworCisgICAgICAgICMgU2tpcCBibGFuayB0b2tlbiB0aGF0IG1hZGUgaXQgdGhydQorICAgICAgICAjIyBidWdmaXggZm9yIHRoZSBsYXN0IGVtcHR5IHRhZy4KKyAgICAgICAgaWYgdG9rdGV4dCA9PSAnJzoKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgTGFzdCB0b2tlbiB0ZXh0IGhpc3RvcnkKKyAgICAgICAgc2VsZi5sYXN0dGV4dCA9IHRva3RleHQKKworICAgICAgICAjIGVzY2FwZSBhbGwgYnV0IHRoZSB1cmxzIGluIHRoZSBjb21tZW50cworICAgICAgICBpZiB0b2t0eXBlIGluIChET1VCTEVDT01NRU5ULCBDT01NRU5UKToKKyAgICAgICAgICAgIGlmIHRva3RleHQuZmluZCgnPGEgaHJlZj0nKSA9PSAtMToKKyAgICAgICAgICAgICAgICB0b2t0ZXh0ID0gZXNjYXBlKHRva3RleHQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxpZiB0b2t0eXBlID09IFRFWFQ6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0b2t0ZXh0ID0gZXNjYXBlKHRva3RleHQpCisKKyAgICAgICAgIyBTZW5kIHRleHQgZm9yIGFueSBtYXJrdXAKKyAgICAgICAgZ2V0YXR0cihzZWxmLCAnX3NlbmQlc1RleHQnJShzZWxmLm1hcmt1cCkpKHRva3R5cGUsIHRva3RleHQpCisgICAgICAgIHJldHVybgorCisgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgSGVscGVycworCisgICAgZGVmIF9kb1NuaXBwZXRTdGFydChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5tYXJrdXAgPT0gJ0hUTUwnOgorICAgICAgICAgICAgIyBTdGFydCBvZiBodG1sIHNuaXBwZXQKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCc8cHJlPlxuJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgU3RhcnQgb2YgY3NzL3hodG1sIHNuaXBwZXQKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKHNlbGYuY29sb3JzLmdldChDT0RFU1RBUlQsJzxwcmUgY2xhc3M9InB5Ij5cbicpKQorCisgICAgZGVmIF9kb1NuaXBwZXRFbmQoc2VsZik6CisgICAgICAgICMgRW5kIG9mIGh0bWwgc25pcHBldAorICAgICAgICBzZWxmLm91dC53cml0ZShzZWxmLmNvbG9ycy5nZXQoQ09ERUVORCwnPC9wcmU+XG4nKSkKKworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIG1hcmt1cCBzZWxlY3RvcnMKKworICAgIGRlZiBfZ2V0RmlsZShzZWxmLCBmaWxlcGF0aCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIF9maWxlID0gb3BlbihmaWxlcGF0aCwncicpCisgICAgICAgICAgICBjb250ZW50ID0gX2ZpbGUucmVhZCgpCisgICAgICAgICAgICBfZmlsZS5jbG9zZSgpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgY29udGVudCA9ICcnCisgICAgICAgIHJldHVybiBjb250ZW50CisKKyAgICBkZWYgX2RvUGFnZVN0YXJ0KHNlbGYpOgorICAgICAgICBnZXRhdHRyKHNlbGYsICdfZG8lc1N0YXJ0JyUoc2VsZi5tYXJrdXApKSgpCisKKyAgICBkZWYgX2RvUGFnZUhlYWRlcihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5oZWFkZXIgIT0gTm9uZToKKyAgICAgICAgICAgIGlmIHNlbGYuaGVhZGVyLmZpbmQoJyMkIycpICE9IC0xIG9yIFwKKyAgICAgICAgICAgICAgICBzZWxmLmhlYWRlci5maW5kKCcjJCMnKSAhPSAtMSBvciBcCisgICAgICAgICAgICAgICAgc2VsZi5oZWFkZXIuZmluZCgnIyUjJykgIT0gLTE6CisgICAgICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoc2VsZi5oZWFkZXJbMzpdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmhlYWRlciAhPSAnJzoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oZWFkZXIgPSBzZWxmLl9nZXRGaWxlKHNlbGYuaGVhZGVyKQorICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgJ19kbyVzSGVhZGVyJyUoc2VsZi5tYXJrdXApKSgpCisKKyAgICBkZWYgX2RvUGFnZUZvb3RlcihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5mb290ZXIgIT0gTm9uZToKKyAgICAgICAgICAgIGlmIHNlbGYuZm9vdGVyLmZpbmQoJyMkIycpICE9IC0xIG9yIFwKKyAgICAgICAgICAgICAgICBzZWxmLmZvb3Rlci5maW5kKCcjQCMnKSAhPSAtMSBvciBcCisgICAgICAgICAgICAgICAgc2VsZi5mb290ZXIuZmluZCgnIyUjJykgIT0gLTE6CisgICAgICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoc2VsZi5mb290ZXJbMzpdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmZvb3RlciAhPSAnJzoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mb290ZXIgPSBzZWxmLl9nZXRGaWxlKHNlbGYuZm9vdGVyKQorICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgJ19kbyVzRm9vdGVyJyUoc2VsZi5tYXJrdXApKSgpCisKKyAgICBkZWYgX2RvUGFnZUVuZChzZWxmKToKKyAgICAgICAgZ2V0YXR0cihzZWxmLCAnX2RvJXNFbmQnJShzZWxmLm1hcmt1cCkpKCkKKworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb2xvci9zdHlsZSByZXRyaWV2YWwKKyAgICAjIyBTb21lIG9mIHRoZXNlIGFyZSBub3QgdXNlZCBhbnltb3JlIGJ1dCBhcmUga2VwdCBmb3IgZG9jdW1lbnRhdGlvbgorCisgICAgZGVmIF9nZXRMaW5lTnVtYmVyKHNlbGYpOgorICAgICAgICBudW0gPSBzZWxmLmxpbmVudW0KKyAgICAgICAgc2VsZi5saW5lbnVtKz0xCisgICAgICAgIHJldHVybiAgc3RyKG51bSkucmp1c3QoNSkrIiAiCisKKyAgICBkZWYgX2dldFRhZ3Moc2VsZiwga2V5KToKKyAgICAgICAgIyBzdHlsZSB0YWdzCisgICAgICAgIHJldHVybiBzZWxmLmNvbG9ycy5nZXQoa2V5LCBzZWxmLmNvbG9yc1tOQU1FXSlbMF0KKworICAgIGRlZiBfZ2V0Rm9yZUNvbG9yKHNlbGYsIGtleSk6CisgICAgICAgICMgZ2V0IHRleHQgZm9yZWdyb3VuZCBjb2xvciwgaWYgbm90IHNldCB0byBibGFjaworICAgICAgICBjb2xvciA9IHNlbGYuY29sb3JzLmdldChrZXksIHNlbGYuY29sb3JzW05BTUVdKVsxXQorICAgICAgICBpZiBjb2xvcls6MV0gIT0gJyMnOgorICAgICAgICAgICAgY29sb3IgPSAnIzAwMDAwMCcKKyAgICAgICAgcmV0dXJuIGNvbG9yCisKKyAgICBkZWYgX2dldEJhY2tDb2xvcihzZWxmLCBrZXkpOgorICAgICAgICAjIGdldCB0ZXh0IGJhY2tncm91bmQgY29sb3IKKyAgICAgICAgcmV0dXJuIHNlbGYuY29sb3JzLmdldChrZXksIHNlbGYuY29sb3JzW05BTUVdKVsyXQorCisgICAgZGVmIF9nZXRQYWdlQ29sb3Ioc2VsZik6CisgICAgICAgICMgZ2V0IHBhZ2UgYmFja2dyb3VuZCBjb2xvcgorICAgICAgICByZXR1cm4gc2VsZi5jb2xvcnMuZ2V0KFBBR0VCQUNLR1JPVU5ELCAnI0ZGRkZGRicpCisKKyAgICBkZWYgX2dldFN0eWxlKHNlbGYsIGtleSk6CisgICAgICAgICMgZ2V0IHRoZSB0b2tlbiBzdHlsZSBmcm9tIHRoZSBjb2xvciBkaWN0aW9uYXJ5CisgICAgICAgIHJldHVybiBzZWxmLmNvbG9ycy5nZXQoa2V5LCBzZWxmLmNvbG9yc1tOQU1FXSkKKworICAgIGRlZiBfZ2V0TWFya3VwQ2xhc3Moc2VsZiwga2V5KToKKyAgICAgICAgIyBnZXQgdGhlIG1hcmt1cCBjbGFzcyBuYW1lIGZyb20gdGhlIG1hcmt1cCBkaWN0aW9uYXJ5CisgICAgICAgIHJldHVybiBNQVJLVVBESUNULmdldChrZXksIE1BUktVUERJQ1RbTkFNRV0pCisKKyAgICBkZWYgX2dldERvY3VtZW50Q3JlYXRlZEJ5KHNlbGYpOgorICAgICAgICByZXR1cm4gJzwhLS1UaGlzIGRvY3VtZW50IGNyZWF0ZWQgYnkgJXMgdmVyLiVzIG9uOiAlcy0tPlxuJyUoCisgICAgICAgICAgICAgICAgICBfX3RpdGxlX18sX192ZXJzaW9uX18sdGltZS5jdGltZSgpKQorCisgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEhUTUwgbWFya3VwIGZ1bmN0aW9ucworCisgICAgZGVmIF9kb0hUTUxTdGFydChzZWxmKToKKyAgICAgICAgIyBTdGFydCBvZiBodG1sIHBhZ2UKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoJzwhRE9DVFlQRSBodG1sIFBVQkxJQyBcCisiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiI+XG4nKQorICAgICAgICBzZWxmLm91dC53cml0ZSgnPGh0bWw+PGhlYWQ+PHRpdGxlPiVzPC90aXRsZT5cbiclKHNlbGYudGl0bGUpKQorICAgICAgICBzZWxmLm91dC53cml0ZShzZWxmLl9nZXREb2N1bWVudENyZWF0ZWRCeSgpKQorICAgICAgICBzZWxmLm91dC53cml0ZSgnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBcCitjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1pc28tODg1OS0xIj5cbicpCisgICAgICAgICMgR2V0IGJhY2tncm91bmQKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoJzwvaGVhZD48Ym9keSBiZ2NvbG9yPSIlcyI+XG4nJXNlbGYuX2dldFBhZ2VDb2xvcigpKQorICAgICAgICBzZWxmLl9kb1BhZ2VIZWFkZXIoKQorICAgICAgICBzZWxmLm91dC53cml0ZSgnPHByZT4nKQorCisgICAgZGVmIF9nZXRIVE1MU3R5bGVzKHNlbGYsIHRva3R5cGUsIHRva3RleHQpOgorICAgICAgICAjIEdldCBzdHlsZXMKKyAgICAgICAgdGFncywgY29sb3IgPSBzZWxmLmNvbG9ycy5nZXQodG9rdHlwZSwgc2VsZi5jb2xvcnNbTkFNRV0pWzoyXSMKKyAgICAgICAgdGFnc3RhcnQ9W10KKyAgICAgICAgdGFnZW5kPVtdCisgICAgICAgICMgY2hlY2sgZm9yIHN0eWxlcyBhbmQgc2V0IHRoZW0gaWYgbmVlZGVkLgorICAgICAgICBpZiAnYicgaW4gdGFnczojQm9sZAorICAgICAgICAgICAgdGFnc3RhcnQuYXBwZW5kKCc8Yj4nKQorICAgICAgICAgICAgdGFnZW5kLmFwcGVuZCgnPC9iPicpCisgICAgICAgIGlmICdpJyBpbiB0YWdzOiNJdGFsaWNzCisgICAgICAgICAgICB0YWdzdGFydC5hcHBlbmQoJzxpPicpCisgICAgICAgICAgICB0YWdlbmQuYXBwZW5kKCc8L2k+JykKKyAgICAgICAgaWYgJ3UnIGluIHRhZ3M6I1VuZGVybGluZQorICAgICAgICAgICAgdGFnc3RhcnQuYXBwZW5kKCc8dT4nKQorICAgICAgICAgICAgdGFnZW5kLmFwcGVuZCgnPC91PicpCisgICAgICAgICMgSFRNTCB0YWdzIHNob3VsZCBiZSBwYWlyZWQgbGlrZSBzbyA6IDxiPjxpPjx1PkRvaCE8L3U+PC9pPjwvYj4KKyAgICAgICAgdGFnZW5kLnJldmVyc2UoKQorICAgICAgICBzdGFydHRhZ3M9IiIuam9pbih0YWdzdGFydCkKKyAgICAgICAgZW5kdGFncz0iIi5qb2luKHRhZ2VuZCkKKyAgICAgICAgcmV0dXJuIHN0YXJ0dGFncyxlbmR0YWdzLGNvbG9yCisKKyAgICBkZWYgX3NlbmRIVE1MVGV4dChzZWxmLCB0b2t0eXBlLCB0b2t0ZXh0KToKKyAgICAgICAgbnVtYmVybGlua3MgPSBzZWxmLm51bWJlcmxpbmtzCisKKyAgICAgICAgIyBJZiBpdCBpcyBhbiBlcnJvciwgc2V0IGEgcmVkIGJveCBhcm91bmQgdGhlIGJhZCB0b2tlbnMKKyAgICAgICAgIyBvbGRlciBicm93c2VycyBzaG91bGQgaWdub3JlIGl0CisgICAgICAgIGlmIHRva3R5cGUgPT0gRVJST1JUT0tFTjoKKyAgICAgICAgICAgIHN0eWxlID0gJyBzdHlsZT0iYm9yZGVyOiBzb2xpZCAxLjVwdCAjRkYwMDAwOyInCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdHlsZSA9ICcnCisgICAgICAgICMgR2V0IHN0eWxlcworICAgICAgICBzdGFydHRhZywgZW5kdGFnLCBjb2xvciA9IHNlbGYuX2dldEhUTUxTdHlsZXModG9rdHlwZSwgdG9rdGV4dCkKKyAgICAgICAgIyBUaGlzIGlzIGEgaGFjayB0byAnZml4JyBtdWx0aS1saW5lICBzdHJpbmdzLgorICAgICAgICAjIE11bHRpLWxpbmUgc3RyaW5ncyBhcmUgdHJlYXRlZCBhcyBvbmx5IG9uZSB0b2tlbgorICAgICAgICAjIGV2ZW4gdGhvdWdoIHRoZXkgY2FuIGJlIHNldmVyYWwgcGh5c2ljYWwgbGluZXMuCisgICAgICAgICMgVGhhdCBtYWtlcyBpdCBoYXJkIHRvIHNwb3QgdGhlIHN0YXJ0IG9mIGEgbGluZSwKKyAgICAgICAgIyBiZWNhdXNlIGF0IHRoaXMgbGV2ZWwgYWxsIHdlIGtub3cgYWJvdXQgYXJlIHRva2Vucy4KKworICAgICAgICBpZiB0b2t0ZXh0LmNvdW50KHNlbGYuTElORU5VTUhPTERFUik6CisgICAgICAgICAgICAjIHJpcCBhcGFydCB0aGUgc3RyaW5nIGFuZCBzZXBhcmF0ZSBpdCBieSBsaW5lLgorICAgICAgICAgICAgIyBjb3VudCBsaW5lcyBhbmQgY2hhbmdlIGFsbCBsaW5lbnVtIHRva2VuIHRvIGxpbmUgbnVtYmVycy4KKyAgICAgICAgICAgICMgZW1iZWRkZWQgYWxsIHRoZSBuZXcgZm9udCB0YWdzIGluc2lkZSB0aGUgY3VycmVudCBvbmUuCisgICAgICAgICAgICAjIERvIHRoaXMgYnkgZW5kaW5nIHRoZSB0YWcgZmlyc3QgdGhlbiB3cml0aW5nIG91ciBuZXcgdGFncywKKyAgICAgICAgICAgICMgdGhlbiBzdGFydGluZyBhbm90aGVyIGZvbnQgdGFnIGV4YWN0bHkgbGlrZSB0aGUgZmlyc3Qgb25lLgorICAgICAgICAgICAgaWYgdG9rdHlwZSA9PSBMSU5FTlVNQkVSOgorICAgICAgICAgICAgICAgIHNwbGl0dGV4dCA9IHRva3RleHQuc3BsaXQoc2VsZi5MSU5FTlVNSE9MREVSKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzcGxpdHRleHQgPSB0b2t0ZXh0LnNwbGl0KHNlbGYuTElORU5VTUhPTERFUisnICcpCisgICAgICAgICAgICBzdG9yZSA9IFtdCisgICAgICAgICAgICBzdG9yZS5hcHBlbmQoc3BsaXR0ZXh0LnBvcCgwKSkKKyAgICAgICAgICAgIGxzdGFydHRhZywgbGVuZHRhZywgbGNvbG9yID0gc2VsZi5fZ2V0SFRNTFN0eWxlcyhMSU5FTlVNQkVSLCB0b2t0ZXh0KQorICAgICAgICAgICAgY291bnQgPSBsZW4oc3BsaXR0ZXh0KQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc3BsaXR0ZXh0OgorICAgICAgICAgICAgICAgIG51bSA9ICBzZWxmLl9nZXRMaW5lTnVtYmVyKCkKKyAgICAgICAgICAgICAgICBpZiBudW1iZXJsaW5rczoKKyAgICAgICAgICAgICAgICAgICAgbnVtc3RyaXAgPSBudW0uc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gJzxhIG5hbWU9IiVzIiBocmVmPSIjJXMiPiVzPC9hPicgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJShudW1zdHJpcCxudW1zdHJpcCxudW0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IG51bQorICAgICAgICAgICAgICAgIGlmIGNvdW50IDw9IDE6CisgICAgICAgICAgICAgICAgICAgIGVuZHRhZyxzdGFydHRhZyA9ICcnLCcnCisgICAgICAgICAgICAgICAgbGluZW51bWJlciA9ICcnLmpvaW4oW2VuZHRhZywnPGZvbnQgY29sb3I9JywgbGNvbG9yLCAnPicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHN0YXJ0dGFnLCBjb250ZW50LCBsZW5kdGFnLCAnPC9mb250PicgLHN0YXJ0dGFnXSkKKyAgICAgICAgICAgICAgICBzdG9yZS5hcHBlbmQobGluZW51bWJlcitpdGVtKQorICAgICAgICAgICAgdG9rdGV4dCA9ICcnLmpvaW4oc3RvcmUpCisgICAgICAgICMgc2VuZCB0ZXh0CisgICAgICAgICMjIE91dHB1dCBvcHRpbWl6YXRpb24KKyAgICAgICAgIyBza2lwIGZvbnQgdGFnIGlmIGJsYWNrIHRleHQsIGJ1dCBzdHlsZXMgd2lsbCBzdGlsbCBiZSBzZW50LiAoYix1LGkpCisgICAgICAgIGlmIGNvbG9yICE9JyMwMDAwMDAnOgorICAgICAgICAgICAgc3RhcnRmb250ID0gJzxmb250IGNvbG9yPSIlcyIlcz4nJShjb2xvciwgc3R5bGUpCisgICAgICAgICAgICBlbmRmb250ID0gJzwvZm9udD4nCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGFydGZvbnQsIGVuZGZvbnQgPSAoJycsJycpCisgICAgICAgIGlmIHRva3R5cGUgIT0gTElORU5VTUJFUjoKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCcnLmpvaW4oW3N0YXJ0Zm9udCxzdGFydHRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2t0ZXh0LGVuZHRhZyxlbmRmb250XSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLm91dC53cml0ZSh0b2t0ZXh0KQorICAgICAgICByZXR1cm4KKworICAgIGRlZiBfZG9IVE1MSGVhZGVyKHNlbGYpOgorICAgICAgICAjIE9wdGlvbmFsCisgICAgICAgIGlmIHNlbGYuaGVhZGVyICE9ICcnOgorICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoJyVzXG4nJXNlbGYuaGVhZGVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29sb3IgPSBzZWxmLl9nZXRGb3JlQ29sb3IoTkFNRSkKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCc8Yj48Zm9udCBjb2xvcj0iJXMiPiMgJXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4jICVzPC9mb250PjwvYj48aHI+XG4nJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbG9yLCBzZWxmLnRpdGxlLCB0aW1lLmN0aW1lKCkpKQorCisgICAgZGVmIF9kb0hUTUxGb290ZXIoc2VsZik6CisgICAgICAgICMgT3B0aW9uYWwKKyAgICAgICAgaWYgc2VsZi5mb290ZXIgIT0gJyc6CisgICAgICAgICAgICBzZWxmLm91dC53cml0ZSgnJXNcbiclc2VsZi5mb290ZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb2xvciA9IHNlbGYuX2dldEZvcmVDb2xvcihOQU1FKQorICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoJzxiPjxmb250IGNvbG9yPSIlcyI+IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHI+IyAlczxicj4jICVzPC9mb250PjwvYj5cbiclCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29sb3IsIHNlbGYudGl0bGUsIHRpbWUuY3RpbWUoKSkpCisKKyAgICBkZWYgX2RvSFRNTEVuZChzZWxmKToKKyAgICAgICAgIyBFbmQgb2YgaHRtbCBwYWdlCisgICAgICAgIHNlbGYub3V0LndyaXRlKCc8L3ByZT5cbicpCisgICAgICAgICMgV3JpdGUgYSBsaXR0bGUgaW5mbyBhdCB0aGUgYm90dG9tCisgICAgICAgIHNlbGYuX2RvUGFnZUZvb3RlcigpCisgICAgICAgIHNlbGYub3V0LndyaXRlKCc8L2JvZHk+PC9odG1sPlxuJykKKworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQ1NTIG1hcmt1cCBmdW5jdGlvbnMKKworICAgIGRlZiBfZ2V0Q1NTU3R5bGUoc2VsZiwga2V5KToKKyAgICAgICAgIyBHZXQgdGhlIHRhZ3MgYW5kIGNvbG9ycyBmcm9tIHRoZSBkaWN0aW9uYXJ5CisgICAgICAgIHRhZ3MsIGZvcmVjb2xvciwgYmFja2NvbG9yID0gc2VsZi5fZ2V0U3R5bGUoa2V5KQorICAgICAgICBzdHlsZT1bXQorICAgICAgICBib3JkZXIgPSBOb25lCisgICAgICAgIGJvcmRlcmNvbG9yID0gTm9uZQorICAgICAgICB0YWdzID0gdGFncy5sb3dlcigpCisgICAgICAgIGlmIHRhZ3M6CisgICAgICAgICAgICAjIGdldCB0aGUgYm9yZGVyIGNvbG9yIGlmIHNwZWNpZmllZAorICAgICAgICAgICAgIyB0aGUgYm9yZGVyIGNvbG9yIHdpbGwgYmUgYXBwZW5kZWQgdG8KKyAgICAgICAgICAgICMgdGhlIGxpc3QgYWZ0ZXIgd2UgZGVmaW5lIGEgYm9yZGVyCisgICAgICAgICAgICBpZiAnIycgaW4gdGFnczojIGJvcmRlciBjb2xvcgorICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGFncy5maW5kKCcjJykKKyAgICAgICAgICAgICAgICBlbmQgPSBzdGFydCArIDcKKyAgICAgICAgICAgICAgICBib3JkZXJjb2xvciA9IHRhZ3Nbc3RhcnQ6ZW5kXQorICAgICAgICAgICAgICAgIHRhZ3MucmVwbGFjZShib3JkZXJjb2xvciwnJywxKQorICAgICAgICAgICAgIyB0ZXh0IHN0eWxlcworICAgICAgICAgICAgaWYgJ2InIGluIHRhZ3M6IyBCb2xkCisgICAgICAgICAgICAgICAgc3R5bGUuYXBwZW5kKCdmb250LXdlaWdodDpib2xkOycpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHN0eWxlLmFwcGVuZCgnZm9udC13ZWlnaHQ6bm9ybWFsOycpCisgICAgICAgICAgICBpZiAnaScgaW4gdGFnczojIEl0YWxpYworICAgICAgICAgICAgICAgIHN0eWxlLmFwcGVuZCgnZm9udC1zdHlsZTppdGFsaWM7JykKKyAgICAgICAgICAgIGlmICd1JyBpbiB0YWdzOiMgVW5kZXJsaW5lCisgICAgICAgICAgICAgICAgc3R5bGUuYXBwZW5kKCd0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOycpCisgICAgICAgICAgICAjIGJvcmRlciBzaXplCisgICAgICAgICAgICBpZiAnbCcgaW4gdGFnczojIHRoaWNrIGJvcmRlcgorICAgICAgICAgICAgICAgIHNpemU9J3RoaWNrJworICAgICAgICAgICAgZWxpZiAnbScgaW4gdGFnczojIG1lZGl1bSBib3JkZXIKKyAgICAgICAgICAgICAgICBzaXplPSdtZWRpdW0nCisgICAgICAgICAgICBlbGlmICd0JyBpbiB0YWdzOiMgdGhpbiBib3JkZXIKKyAgICAgICAgICAgICAgICBzaXplPSd0aGluJworICAgICAgICAgICAgZWxzZTojIGRlZmF1bHQKKyAgICAgICAgICAgICAgICBzaXplPSdtZWRpdW0nCisgICAgICAgICAgICAjIGJvcmRlciBzdHlsZXMKKyAgICAgICAgICAgIGlmICduJyBpbiB0YWdzOiMgaW5zZXQgYm9yZGVyCisgICAgICAgICAgICAgICAgYm9yZGVyPSdpbnNldCcKKyAgICAgICAgICAgIGVsaWYgJ28nIGluIHRhZ3M6IyBvdXRzZXQgYm9yZGVyCisgICAgICAgICAgICAgICAgYm9yZGVyPSdvdXRzZXQnCisgICAgICAgICAgICBlbGlmICdyJyBpbiB0YWdzOiMgcmlkZ2UgYm9yZGVyCisgICAgICAgICAgICAgICAgYm9yZGVyPSdyaWRnZScKKyAgICAgICAgICAgIGVsaWYgJ2cnIGluIHRhZ3M6IyBncm9vdmUgYm9yZGVyCisgICAgICAgICAgICAgICAgYm9yZGVyPSdncm9vdmUnCisgICAgICAgICAgICBlbGlmICc9JyBpbiB0YWdzOiMgZG91YmxlIGJvcmRlcgorICAgICAgICAgICAgICAgIGJvcmRlcj0nZG91YmxlJworICAgICAgICAgICAgZWxpZiAnLicgaW4gdGFnczojIGRvdHRlZCBib3JkZXIKKyAgICAgICAgICAgICAgICBib3JkZXI9J2RvdHRlZCcKKyAgICAgICAgICAgIGVsaWYgJy0nIGluIHRhZ3M6IyBkYXNoZWQgYm9yZGVyCisgICAgICAgICAgICAgICAgYm9yZGVyPSdkYXNoZWQnCisgICAgICAgICAgICBlbGlmICdzJyBpbiB0YWdzOiMgc29saWQgYm9yZGVyCisgICAgICAgICAgICAgICAgYm9yZGVyPSdzb2xpZCcKKyAgICAgICAgICAgICMgYm9yZGVyIHR5cGUgY2hlY2sKKyAgICAgICAgICAgIHNlcGVyYXRlX3NpZGVzPTAKKyAgICAgICAgICAgIGZvciBzaWRlIGluIFsnPCcsJz4nLCdeJywndiddOgorICAgICAgICAgICAgICAgIGlmIHNpZGUgaW4gdGFnczoKKyAgICAgICAgICAgICAgICAgICAgc2VwZXJhdGVfc2lkZXMrPTEKKyAgICAgICAgICAgICMgYm9yZGVyIGJveCBvciBzZXBlcmF0ZSBzaWRlcworICAgICAgICAgICAgaWYgc2VwZXJhdGVfc2lkZXM9PTAgYW5kIGJvcmRlcjoKKyAgICAgICAgICAgICAgICAgICAgc3R5bGUuYXBwZW5kKCdib3JkZXI6ICVzICVzOyclKGJvcmRlcixzaXplKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgYm9yZGVyID09IE5vbmU6CisgICAgICAgICAgICAgICAgICAgYm9yZGVyID0gJ3NvbGlkJworICAgICAgICAgICAgICAgIGlmICd2JyBpbiB0YWdzOiMgYm90dG9tIGJvcmRlcgorICAgICAgICAgICAgICAgICAgICBzdHlsZS5hcHBlbmQoJ2JvcmRlci1ib3R0b206JXMgJXM7JyUoYm9yZGVyLHNpemUpKQorICAgICAgICAgICAgICAgIGlmICc8JyBpbiB0YWdzOiMgbGVmdCBib3JkZXIKKyAgICAgICAgICAgICAgICAgICAgc3R5bGUuYXBwZW5kKCdib3JkZXItbGVmdDolcyAlczsnJShib3JkZXIsc2l6ZSkpCisgICAgICAgICAgICAgICAgaWYgJz4nIGluIHRhZ3M6IyByaWdodCBib3JkZXIKKyAgICAgICAgICAgICAgICAgICAgc3R5bGUuYXBwZW5kKCdib3JkZXItcmlnaHQ6JXMgJXM7JyUoYm9yZGVyLHNpemUpKQorICAgICAgICAgICAgICAgIGlmICdeJyBpbiB0YWdzOiMgdG9wIGJvcmRlcgorICAgICAgICAgICAgICAgICAgICBzdHlsZS5hcHBlbmQoJ2JvcmRlci10b3A6JXMgJXM7JyUoYm9yZGVyLHNpemUpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3R5bGUuYXBwZW5kKCdmb250LXdlaWdodDpub3JtYWw7JykjIGNzcyBpbmhlcml0ZWQgc3R5bGUgZml4CisgICAgICAgICMgd2UgaGF2ZSB0byBkZWZpbmUgb3VyIGJvcmRlcnMgYmVmb3JlIHdlIHNldCBjb2xvcnMKKyAgICAgICAgaWYgYm9yZGVyY29sb3I6CisgICAgICAgICAgICBzdHlsZS5hcHBlbmQoJ2JvcmRlci1jb2xvcjolczsnJWJvcmRlcmNvbG9yKQorICAgICAgICAjIHRleHQgZm9yZWNvbG9yCisgICAgICAgIHN0eWxlLmFwcGVuZCgnY29sb3I6JXM7JyUgZm9yZWNvbG9yKQorICAgICAgICAjIHRleHQgYmFja2NvbG9yCisgICAgICAgIGlmIGJhY2tjb2xvcjoKKyAgICAgICAgICAgIHN0eWxlLmFwcGVuZCgnYmFja2dyb3VuZC1jb2xvcjolczsnJWJhY2tjb2xvcikKKyAgICAgICAgcmV0dXJuIChzZWxmLl9nZXRNYXJrdXBDbGFzcyhrZXkpLCcgJy5qb2luKHN0eWxlKSkKKworICAgIGRlZiBfc2VuZENTU1N0eWxlKHNlbGYsIGV4dGVybmFsPTApOgorICAgICAgICAiIiIgY3JlYXRlIGV4dGVybmFsIGFuZCBpbnRlcm5hbCBzdHlsZSBzaGVldHMiIiIKKyAgICAgICAgc3R5bGVzID0gW10KKyAgICAgICAgZXh0ZXJuYWwgKz0gc2VsZi5leHRlcm5hbAorICAgICAgICBpZiBub3QgZXh0ZXJuYWw6CisgICAgICAgICAgICBzdHlsZXMuYXBwZW5kKCc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPlxuPCEtLVxuJykKKyAgICAgICAgIyBHZXQgcGFnZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCB3cml0ZSBzdHlsZXMgaWdub3JlIGFueSB3ZSBkb24ndCBrbm93CisgICAgICAgIHN0eWxlcy5hcHBlbmQoJ2JvZHkgeyBiYWNrZ3JvdW5kOiVzOyB9XG4nJXNlbGYuX2dldFBhZ2VDb2xvcigpKQorICAgICAgICAjIHdyaXRlIG91dCB0aGUgdmFyaW91cyBjc3Mgc3R5bGVzCisgICAgICAgIGZvciBrZXkgaW4gTUFSS1VQRElDVDoKKyAgICAgICAgICAgIHN0eWxlcy5hcHBlbmQoJy4lcyB7ICVzIH1cbiclc2VsZi5fZ2V0Q1NTU3R5bGUoa2V5KSkKKyAgICAgICAgIyBJZiB5b3Ugd2FudCB0byBzdHlsZSB0aGUgcHJlIHRhZyB5b3UgbXVzdCBtb2RpZnkgdGhlIGNvbG9yIGRpY3QuCisgICAgICAgICMgIEV4YW1wbGU6CisgICAgICAgICMgIGxpdGVbUFldID0gLnB5IHtib3JkZXI6IHNvbGlkIHRoaW4gIzAwMDAwMDtiYWNrZ3JvdW5kOiM1NTU1NTV9XG4nJycKKyAgICAgICAgc3R5bGVzLmFwcGVuZChzZWxmLmNvbG9ycy5nZXQoUFksICcucHkgeyB9XG4nKSkKKyAgICAgICAgIyBFeHRyYSBjc3MgY2FuIGJlIGFkZGVkIGhlcmUKKyAgICAgICAgIyBhZGQgQ1NTSE9PSyB0byB0aGUgY29sb3IgZGljdCBpZiB5b3UgbmVlZCBpdC4KKyAgICAgICAgIyBFeGFtcGxlOgorICAgICAgICAjbGl0ZVtDU1NIT09LXSA9ICIiIi5teXRhZyB7IGJvcmRlcjogc29saWQgdGhpbiAjMDAwMDAwOyB9IFxuCisgICAgICAgICMgICAgICAgICAgICAgICAgICAgLm15b3RoZXJ0YWcgeyBmb250LXdlaWdodDpib2xkOyApXG4iIiIKKyAgICAgICAgc3R5bGVzLmFwcGVuZChzZWxmLmNvbG9ycy5nZXQoQ1NTSE9PSywnJykpCisgICAgICAgIGlmIG5vdCBzZWxmLmV4dGVybmFsOgorICAgICAgICAgICAgIHN0eWxlcy5hcHBlbmQoJy0tPjwvc3R5bGU+XG4nKQorICAgICAgICByZXR1cm4gJycuam9pbihzdHlsZXMpCisKKyAgICBkZWYgX2RvQ1NTU3RhcnQoc2VsZik6CisgICAgICAgICMgU3RhcnQgb2YgY3NzL2h0bWwgNC4wMSBwYWdlCisgICAgICAgIHNlbGYub3V0LndyaXRlKCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iPlxuJykKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoJzxodG1sPjxoZWFkPjx0aXRsZT4lczwvdGl0bGU+XG4nJShzZWxmLnRpdGxlKSkKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoc2VsZi5fZ2V0RG9jdW1lbnRDcmVhdGVkQnkoKSkKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoJzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgXAorY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9aXNvLTg4NTktMSI+XG4nKQorICAgICAgICBzZWxmLl9kb0NTU1N0eWxlU2hlZXQoKQorICAgICAgICBzZWxmLm91dC53cml0ZSgnPC9oZWFkPlxuPGJvZHk+XG4nKQorICAgICAgICAjIFdyaXRlIGEgbGl0dGxlIGluZm8gYXQgdGhlIHRvcC4KKyAgICAgICAgc2VsZi5fZG9QYWdlSGVhZGVyKCkKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoc2VsZi5jb2xvcnMuZ2V0KENPREVTVEFSVCwnPHByZSBjbGFzcz0icHkiPlxuJykpCisgICAgICAgIHJldHVybgorCisgICAgZGVmIF9kb0NTU1N0eWxlU2hlZXQoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLmV4dGVybmFsOgorICAgICAgICAgICAgIyB3cml0ZSBhbiBlbWJlZGRlZCBzdHlsZSBzaGVldAorICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoc2VsZi5fc2VuZENTU1N0eWxlKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHdyaXRlIGEgbGluayB0byBhbiBleHRlcm5hbCBzdHlsZSBzaGVldAorICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgXAoraHJlZj0icHlzdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIj4nKQorICAgICAgICByZXR1cm4KKworICAgIGRlZiBfc2VuZENTU1RleHQoc2VsZiwgdG9rdHlwZSwgdG9rdGV4dCk6CisgICAgICAgICMgVGhpcyBpcyBhIGhhY2sgdG8gJ2ZpeCcgbXVsdGktbGluZSBzdHJpbmdzLgorICAgICAgICAjIE11bHRpLWxpbmUgc3RyaW5ncyBhcmUgdHJlYXRlZCBhcyBvbmx5IG9uZSB0b2tlbgorICAgICAgICAjIGV2ZW4gdGhvdWdoIHRoZXkgY2FuIGJlIHNldmVyYWwgcGh5c2ljYWwgbGluZXMuCisgICAgICAgICMgVGhhdCBtYWtlcyBpdCBoYXJkIHRvIHNwb3QgdGhlIHN0YXJ0IG9mIGEgbGluZSwKKyAgICAgICAgIyBiZWNhdXNlIGF0IHRoaXMgbGV2ZWwgYWxsIHdlIGtub3cgYWJvdXQgYXJlIHRva2Vucy4KKyAgICAgICAgbWFya3VwY2xhc3MgPSBNQVJLVVBESUNULmdldCh0b2t0eXBlLCBNQVJLVVBESUNUW05BTUVdKQorICAgICAgICAjIGlmIGl0IGlzIGEgTElORU5VTUJFUiB0eXBlIHRoZW4gd2UgY2FuIHNraXAgdGhlIHJlc3QKKyAgICAgICAgaWYgdG9rdGV4dCA9PSBzZWxmLkxJTkVTVEFSVCBhbmQgdG9rdHlwZSA9PSBMSU5FTlVNQkVSOgorICAgICAgICAgICAgc2VsZi5vdXQud3JpdGUoJzxzcGFuIGNsYXNzPSJweV9saW5lIj4nKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIHRva3RleHQuY291bnQoc2VsZi5MSU5FTlVNSE9MREVSKToKKyAgICAgICAgICAgICMgcmlwIGFwYXJ0IHRoZSBzdHJpbmcgYW5kIHNlcGFyYXRlIGl0IGJ5IGxpbmUKKyAgICAgICAgICAgICMgY291bnQgbGluZXMgYW5kIGNoYW5nZSBhbGwgbGluZW51bSB0b2tlbiB0byBsaW5lIG51bWJlcnMKKyAgICAgICAgICAgICMgYWxzbyBjb252ZXJ0IGxpbmVzdGFydCBhbmQgbGluZWVuZCB0b2tlbnMKKyAgICAgICAgICAgICMgPGxpbmVzdGFydD4gPGxudW1zdGFydD4gbG51bSA8bG51bWVuZD4gdGV4dCA8bGluZWVuZD4KKyAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAgICAgICAgIG5ld21hcmt1cCA9IE1BUktVUERJQ1QuZ2V0KExJTkVOVU1CRVIsIE1BUktVUERJQ1RbTkFNRV0pCisgICAgICAgICAgICBsc3RhcnRzcGFuID0gJzxzcGFuIGNsYXNzPSIlcyI+JyUobmV3bWFya3VwKQorICAgICAgICAgICAgaWYgdG9rdHlwZSA9PSBMSU5FTlVNQkVSOgorICAgICAgICAgICAgICAgIHNwbGl0dGV4dCA9IHRva3RleHQuc3BsaXQoc2VsZi5MSU5FTlVNSE9MREVSKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzcGxpdHRleHQgPSB0b2t0ZXh0LnNwbGl0KHNlbGYuTElORU5VTUhPTERFUisnICcpCisgICAgICAgICAgICBzdG9yZSA9IFtdCisgICAgICAgICAgICAjIHdlIGhhdmUgYWxyZWFkeSBzZWVuIHRoZSBmaXJzdCBsaW5lbnVtYmVyIHRva2VuCisgICAgICAgICAgICAjIHNvIHdlIGNhbiBza2lwIHRoZSBmaXJzdCBvbmUKKyAgICAgICAgICAgIHN0b3JlLmFwcGVuZChzcGxpdHRleHQucG9wKDApKQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc3BsaXR0ZXh0OgorICAgICAgICAgICAgICAgIG51bSA9IHNlbGYuX2dldExpbmVOdW1iZXIoKQorICAgICAgICAgICAgICAgIGlmIHNlbGYubnVtYmVybGlua3M6CisgICAgICAgICAgICAgICAgICAgIG51bXN0cmlwID0gbnVtLnN0cmlwKCkKKyAgICAgICAgICAgICAgICAgICAgY29udGVudD0gJzxhIG5hbWU9IiVzIiBocmVmPSIjJXMiPiVzPC9hPicgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJShudW1zdHJpcCxudW1zdHJpcCxudW0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IG51bQorICAgICAgICAgICAgICAgIGxpbmVudW1iZXI9ICcnLmpvaW4oW2xzdGFydHNwYW4sY29udGVudCwnPC9zcGFuPiddKQorICAgICAgICAgICAgICAgIHN0b3JlLmFwcGVuZChsaW5lbnVtYmVyK2l0ZW0pCisgICAgICAgICAgICB0b2t0ZXh0ID0gJycuam9pbihzdG9yZSkKKyAgICAgICAgaWYgdG9rdGV4dC5jb3VudChzZWxmLkxJTkVTVEFSVCk6CisgICAgICAgICAgICAjIHdyYXBzIHRoZSB0ZXh0bGluZSBpbiBhIGxpbmUgc3BhbgorICAgICAgICAgICAgIyB0aGlzIGFkZHMgYSBsb3Qgb2Yga2x1ZGdlcywgaXMgaXQgcmVhbGx5IHdvcnRoIGl0PworICAgICAgICAgICAgc3RvcmUgPSBbXQorICAgICAgICAgICAgcGFydHMgPSB0b2t0ZXh0LnNwbGl0KHNlbGYuTElORVNUQVJUKycgJykKKyAgICAgICAgICAgICMgaGFuZGxlIHRoZSBmaXJzdCBwYXJ0IGRpZmZlcmVudGx5CisgICAgICAgICAgICAjIHRoZSB3aG9sZSB0b2tlbiBnZXRzIHdyYXFwcGVkIGluIGEgc3BhbiBsYXRlciBvbgorICAgICAgICAgICAgZmlyc3QgPSBwYXJ0cy5wb3AoMCkKKyAgICAgICAgICAgICMgcGxhY2Ugc3BhbnMgYmVmb3JlIHRoZSBuZXdsaW5lCisgICAgICAgICAgICBwb3MgPSBmaXJzdC5yZmluZCgnXG4nKQorICAgICAgICAgICAgaWYgcG9zICE9IC0xOgorICAgICAgICAgICAgICAgIGZpcnN0PWZpcnN0Wzpwb3NdKyc8L3NwYW4+PC9zcGFuPicrZmlyc3RbcG9zOl0KKyAgICAgICAgICAgIHN0b3JlLmFwcGVuZChmaXJzdCkKKyAgICAgICAgICAgICNwcm9jZXNzIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcKKyAgICAgICAgICAgIGZvciBpdGVtIGluIHBhcnRzOgorICAgICAgICAgICAgICAgICNoYW5kbGUgbGluZSBudW1iZXJzIGlmIHByZXNlbnQKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmRvbGluZW51bXM6CisgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnJlcGxhY2UoJzwvc3Bhbj4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3Bhbj48c3BhbiBjbGFzcz0iJXMiPiclKG1hcmt1cGNsYXNzKSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpdGVtID0gJzxzcGFuIGNsYXNzPSIlcyI+JXMnJShtYXJrdXBjbGFzcyxpdGVtKQorICAgICAgICAgICAgICAgICMgYWRkIGVuZGluZ3MgZm9yIGxpbmUgYW5kIHN0cmluZyB0b2tlbnMKKyAgICAgICAgICAgICAgICBwb3MgPSBpdGVtLnJmaW5kKCdcbicpCisgICAgICAgICAgICAgICAgaWYgcG9zICE9IC0xOgorICAgICAgICAgICAgICAgICAgICBpdGVtPWl0ZW1bOnBvc10rJzwvc3Bhbj48L3NwYW4+XG4nCisgICAgICAgICAgICAgICAgc3RvcmUuYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICAjIGFkZCBzdGFydCB0YWdzIGZvciBsaW5lcworICAgICAgICAgICAgdG9rdGV4dCA9ICc8c3BhbiBjbGFzcz0icHlfbGluZSI+Jy5qb2luKHN0b3JlKQorICAgICAgICAjIFNlbmQgdGV4dAorICAgICAgICBpZiB0b2t0eXBlICE9IExJTkVOVU1CRVI6CisgICAgICAgICAgICBpZiB0b2t0eXBlID09IFRFWFQgYW5kIHNlbGYudGV4dEZsYWcgPT0gJ0RJVic6CisgICAgICAgICAgICAgICAgc3RhcnRzcGFuID0gJzxkaXYgY2xhc3M9IiVzIj4nJShtYXJrdXBjbGFzcykKKyAgICAgICAgICAgICAgICBlbmRzcGFuID0gJzwvZGl2PicKKyAgICAgICAgICAgIGVsaWYgdG9rdHlwZSA9PSBURVhUIGFuZCBzZWxmLnRleHRGbGFnID09ICdSQVcnOgorICAgICAgICAgICAgICAgIHN0YXJ0c3BhbixlbmRzcGFuID0gKCcnLCcnKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzdGFydHNwYW4gPSAnPHNwYW4gY2xhc3M9IiVzIj4nJShtYXJrdXBjbGFzcykKKyAgICAgICAgICAgICAgICBlbmRzcGFuID0gJzwvc3Bhbj4nCisgICAgICAgICAgICBzZWxmLm91dC53cml0ZSgnJy5qb2luKFtzdGFydHNwYW4sIHRva3RleHQsIGVuZHNwYW5dKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKHRva3RleHQpCisgICAgICAgIHJldHVybgorCisgICAgZGVmIF9kb0NTU0hlYWRlcihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5oZWFkZXIgIT0gJyc6CisgICAgICAgICAgICBzZWxmLm91dC53cml0ZSgnJXNcbiclc2VsZi5oZWFkZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gTUFSS1VQRElDVC5nZXQoTkFNRSkKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCc8ZGl2IGNsYXNzPSIlcyI+IyAlcyA8YnI+IFwKKyMgJXM8L2Rpdj48aHI+XG4nJShuYW1lLCBzZWxmLnRpdGxlLCB0aW1lLmN0aW1lKCkpKQorCisgICAgZGVmIF9kb0NTU0Zvb3RlcihzZWxmKToKKyAgICAgICAgIyBPcHRpb25hbAorICAgICAgICBpZiBzZWxmLmZvb3RlciAhPSAnJzoKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCclc1xuJyVzZWxmLmZvb3RlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCc8aHI+PGRpdiBjbGFzcz0iJXMiPiMgJXMgPGJyPiBcCisjICVzPC9kaXY+XG4nJShNQVJLVVBESUNULmdldChOQU1FKSxzZWxmLnRpdGxlLCB0aW1lLmN0aW1lKCkpKQorCisgICAgZGVmIF9kb0NTU0VuZChzZWxmKToKKyAgICAgICAgIyBFbmQgb2YgY3NzL2h0bWwgcGFnZQorICAgICAgICBzZWxmLm91dC53cml0ZShzZWxmLmNvbG9ycy5nZXQoQ09ERUVORCwnPC9wcmU+XG4nKSkKKyAgICAgICAgIyBXcml0ZSBhIGxpdHRsZSBpbmZvIGF0IHRoZSBib3R0b20KKyAgICAgICAgc2VsZi5fZG9QYWdlRm9vdGVyKCkKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoJzwvYm9keT48L2h0bWw+XG4nKQorICAgICAgICByZXR1cm4KKworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFhIVE1MIG1hcmt1cCBmdW5jdGlvbnMKKworICAgIGRlZiBfZG9YSFRNTFN0YXJ0KHNlbGYpOgorICAgICAgICAjIFhIVE1MIGlzIHJlYWxseSBqdXN0IFhNTCArIEhUTUwgNC4wMS4KKyAgICAgICAgIyBXZSBvbmx5IG5lZWQgdG8gY2hhbmdlIHRoZSBwYWdlIGhlYWRlcnMsCisgICAgICAgICMgYW5kIGEgZmV3IHRhZ3MgdG8gZ2V0IHZhbGlkIFhIVE1MLgorICAgICAgICAjIFN0YXJ0IG9mIHhodG1sIHBhZ2UKKyAgICAgICAgc2VsZi5vdXQud3JpdGUoJzw/eG1sIHZlcnNpb249IjEuMCI/PlxuIFwKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iXG4gXAorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj5cbiBcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+XG4nKQorICAgICAgICBzZWxmLm91dC53cml0ZSgnPGhlYWQ+PHRpdGxlPiVzPC90aXRsZT5cbiclKHNlbGYudGl0bGUpKQorICAgICAgICBzZWxmLm91dC53cml0ZShzZWxmLl9nZXREb2N1bWVudENyZWF0ZWRCeSgpKQorICAgICAgICBzZWxmLm91dC53cml0ZSgnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBcCitjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1pc28tODg1OS0xIi8+XG4nKQorICAgICAgICBzZWxmLl9kb1hIVE1MU3R5bGVTaGVldCgpCisgICAgICAgIHNlbGYub3V0LndyaXRlKCc8L2hlYWQ+XG48Ym9keT5cbicpCisgICAgICAgICMgV3JpdGUgYSBsaXR0bGUgaW5mbyBhdCB0aGUgdG9wLgorICAgICAgICBzZWxmLl9kb1BhZ2VIZWFkZXIoKQorICAgICAgICBzZWxmLm91dC53cml0ZShzZWxmLmNvbG9ycy5nZXQoQ09ERVNUQVJULCc8cHJlIGNsYXNzPSJweSI+XG4nKSkKKyAgICAgICAgcmV0dXJuCisKKyAgICBkZWYgX2RvWEhUTUxTdHlsZVNoZWV0KHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5leHRlcm5hbDoKKyAgICAgICAgICAgICMgd3JpdGUgYW4gZW1iZWRkZWQgc3R5bGUgc2hlZXQKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKHNlbGYuX3NlbmRDU1NTdHlsZSgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyB3cml0ZSBhIGxpbmsgdG8gYW4gZXh0ZXJuYWwgc3R5bGUgc2hlZXQKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCc8bGluayByZWw9InN0eWxlc2hlZXQiIFwKK2hyZWY9InB5c3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPlxuJykKKyAgICAgICAgcmV0dXJuCisKKyAgICBkZWYgX3NlbmRYSFRNTFRleHQoc2VsZiwgdG9rdHlwZSwgdG9rdGV4dCk6CisgICAgICAgIHNlbGYuX3NlbmRDU1NUZXh0KHRva3R5cGUsIHRva3RleHQpCisKKyAgICBkZWYgX2RvWEhUTUxIZWFkZXIoc2VsZik6CisgICAgICAgICMgT3B0aW9uYWwKKyAgICAgICAgaWYgc2VsZi5oZWFkZXI6CisgICAgICAgICAgICBzZWxmLm91dC53cml0ZSgnJXNcbiclc2VsZi5oZWFkZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gTUFSS1VQRElDVC5nZXQoTkFNRSkKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlKCc8ZGl2IGNsYXNzPSIlcyI+IyAlcyA8YnIvPiBcCisjICVzPC9kaXY+PGhyLz5cbiAnJSgKKyAgICAgICAgICAgIG5hbWUsIHNlbGYudGl0bGUsIHRpbWUuY3RpbWUoKSkpCisKKyAgICBkZWYgX2RvWEhUTUxGb290ZXIoc2VsZik6CisgICAgICAgICMgT3B0aW9uYWwKKyAgICAgICAgaWYgc2VsZi5mb290ZXI6CisgICAgICAgICAgICBzZWxmLm91dC53cml0ZSgnJXNcbiclc2VsZi5mb290ZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLm91dC53cml0ZSgnPGhyLz48ZGl2IGNsYXNzPSIlcyI+IyAlcyA8YnIvPiBcCisjICVzPC9kaXY+XG4nJShNQVJLVVBESUNULmdldChOQU1FKSwgc2VsZi50aXRsZSwgdGltZS5jdGltZSgpKSkKKworICAgIGRlZiBfZG9YSFRNTEVuZChzZWxmKToKKyAgICAgICAgc2VsZi5fZG9DU1NFbmQoKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGNsaSgpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFB5U291cmNlQ29sb3IucHkKKyMgMjAwNCwgMjAwNSBNLkUuRmFybWVyIEpyLgorIyBQeXRob24gbGljZW5zZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTRmZjFlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvX19pbml0X18ucHkKQEAgLTAsMCArMSw0IEBACisiIiIKK1BhY2thZ2UgZm9yIG1pc2NlbGxhbmVvdXMgcm91dGluZXMgdGhhdCBkbyBub3QgZGVwZW5kIG9uIG90aGVyIHBhcnRzCitvZiBQYXN0ZQorIiIiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9jbGFzc2luaXQucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9jbGFzc2luaXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRlNmIyOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2NsYXNzaW5pdC5weQpAQCAtMCwwICsxLDQyIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKK2NsYXNzIENsYXNzSW5pdE1ldGEodHlwZSk6CisKKyAgICBkZWYgX19uZXdfXyhtZXRhLCBjbGFzc19uYW1lLCBiYXNlcywgbmV3X2F0dHJzKToKKyAgICAgICAgY2xzID0gdHlwZS5fX25ld19fKG1ldGEsIGNsYXNzX25hbWUsIGJhc2VzLCBuZXdfYXR0cnMpCisgICAgICAgIGlmIChuZXdfYXR0cnMuaGFzX2tleSgnX19jbGFzc2luaXRfXycpCisgICAgICAgICAgICBhbmQgbm90IGlzaW5zdGFuY2UoY2xzLl9fY2xhc3Npbml0X18sIHN0YXRpY21ldGhvZCkpOgorICAgICAgICAgICAgc2V0YXR0cihjbHMsICdfX2NsYXNzaW5pdF9fJywKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljbWV0aG9kKGNscy5fX2NsYXNzaW5pdF9fLmltX2Z1bmMpKQorICAgICAgICBpZiBoYXNhdHRyKGNscywgJ19fY2xhc3Npbml0X18nKToKKyAgICAgICAgICAgIGNscy5fX2NsYXNzaW5pdF9fKGNscywgbmV3X2F0dHJzKQorICAgICAgICByZXR1cm4gY2xzCisKK2RlZiBidWlsZF9wcm9wZXJ0aWVzKGNscywgbmV3X2F0dHJzKToKKyAgICAiIiIKKyAgICBHaXZlbiBhIGNsYXNzIGFuZCBhIG5ldyBzZXQgb2YgYXR0cmlidXRlcyAoYXMgcGFzc2VkIGluIGJ5CisgICAgX19jbGFzc2luaXRfXyksIGNyZWF0ZSBvciBtb2RpZnkgcHJvcGVydGllcyBiYXNlZCBvbiBmdW5jdGlvbnMKKyAgICB3aXRoIHNwZWNpYWwgbmFtZXMgZW5kaW5nIGluIF9fZ2V0LCBfX3NldCwgYW5kIF9fZGVsLgorICAgICIiIgorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBuZXdfYXR0cnMuaXRlbXMoKToKKyAgICAgICAgaWYgKG5hbWUuZW5kc3dpdGgoJ19fZ2V0Jykgb3IgbmFtZS5lbmRzd2l0aCgnX19zZXQnKQorICAgICAgICAgICAgb3IgbmFtZS5lbmRzd2l0aCgnX19kZWwnKSk6CisgICAgICAgICAgICBiYXNlID0gbmFtZVs6LTVdCisgICAgICAgICAgICBpZiBoYXNhdHRyKGNscywgYmFzZSk6CisgICAgICAgICAgICAgICAgb2xkX3Byb3AgPSBnZXRhdHRyKGNscywgYmFzZSkKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvbGRfcHJvcCwgcHJvcGVydHkpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgIkF0dHJpYnV0ZSAlcyBpcyBhICVzLCBub3QgYSBwcm9wZXJ0eTsgZnVuY3Rpb24gJXMgaXMgbmFtZWQgbGlrZSBhIHByb3BlcnR5IgorICAgICAgICAgICAgICAgICAgICAgICAgJSAoYmFzZSwgdHlwZShvbGRfcHJvcCksIG5hbWUpKQorICAgICAgICAgICAgICAgIGF0dHJzID0geydmZ2V0Jzogb2xkX3Byb3AuZmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZnNldCc6IG9sZF9wcm9wLmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZkZWwnOiBvbGRfcHJvcC5mZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnOiBvbGRfcHJvcC5fX2RvY19ffQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhdHRycyA9IHt9CisgICAgICAgICAgICBhdHRyc1snZicgKyBuYW1lWy0zOl1dID0gdmFsdWUKKyAgICAgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoJ19fZ2V0JykgYW5kIHZhbHVlLl9fZG9jX186CisgICAgICAgICAgICAgICAgYXR0cnNbJ2RvYyddID0gdmFsdWUuX19kb2NfXworICAgICAgICAgICAgbmV3X3Byb3AgPSBwcm9wZXJ0eSgqKmF0dHJzKQorICAgICAgICAgICAgc2V0YXR0cihjbHMsIGJhc2UsIG5ld19wcm9wKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvY2xhc3NpbnN0YW5jZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2NsYXNzaW5zdGFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQzNmE0NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2NsYXNzaW5zdGFuY2UucHkKQEAgLTAsMCArMSwzOCBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCitjbGFzcyBjbGFzc2luc3RhbmNlbWV0aG9kKG9iamVjdCk6CisgICAgIiIiCisgICAgQWN0cyBsaWtlIGEgY2xhc3MgbWV0aG9kIHdoZW4gY2FsbGVkIGZyb20gYSBjbGFzcywgbGlrZSBhbgorICAgIGluc3RhbmNlIG1ldGhvZCB3aGVuIGNhbGxlZCBieSBhbiBpbnN0YW5jZS4gIFRoZSBtZXRob2Qgc2hvdWxkCisgICAgdGFrZSB0d28gYXJndW1lbnRzLCAnc2VsZicgYW5kICdjbHMnOyBvbmUgb2YgdGhlc2Ugd2lsbCBiZSBOb25lCisgICAgZGVwZW5kaW5nIG9uIGhvdyB0aGUgbWV0aG9kIHdhcyBjYWxsZWQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuYyk6CisgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi5fX2RvY19fID0gZnVuYy5fX2RvY19fCisKKyAgICBkZWYgX19nZXRfXyhzZWxmLCBvYmosIHR5cGU9Tm9uZSk6CisgICAgICAgIHJldHVybiBfbWV0aG9kd3JhcHBlcihzZWxmLmZ1bmMsIG9iaj1vYmosIHR5cGU9dHlwZSkKKworY2xhc3MgX21ldGhvZHdyYXBwZXIob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCBvYmosIHR5cGUpOgorICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCisgICAgICAgIHNlbGYub2JqID0gb2JqCisgICAgICAgIHNlbGYudHlwZSA9IHR5cGUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIGFzc2VydCAnc2VsZicgbm90IGluIGt3IGFuZCAnY2xzJyBub3QgaW4ga3csICgKKyAgICAgICAgICAgICJZb3UgY2Fubm90IHVzZSAnc2VsZicgb3IgJ2NscycgYXJndW1lbnRzIHRvIGEgIgorICAgICAgICAgICAgImNsYXNzaW5zdGFuY2VtZXRob2QiKQorICAgICAgICByZXR1cm4gc2VsZi5mdW5jKCooKHNlbGYub2JqLCBzZWxmLnR5cGUpICsgYXJncyksICoqa3cpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYub2JqIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gKCc8Ym91bmQgY2xhc3MgbWV0aG9kICVzLiVzPicKKyAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi50eXBlLl9fbmFtZV9fLCBzZWxmLmZ1bmMuZnVuY19uYW1lKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAoJzxib3VuZCBtZXRob2QgJXMuJXMgb2YgJXI+JworICAgICAgICAgICAgICAgICAgICAlIChzZWxmLnR5cGUuX19uYW1lX18sIHNlbGYuZnVuYy5mdW5jX25hbWUsIHNlbGYub2JqKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2NvbnZlcnRlcnMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9jb252ZXJ0ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNDUxYmMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9jb252ZXJ0ZXJzLnB5CkBAIC0wLDAgKzEsMzAgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworaW1wb3J0IHNpeAorCisKK2RlZiBhc2Jvb2wob2JqKToKKyAgICBpZiBpc2luc3RhbmNlKG9iaiwgKHNpeC5iaW5hcnlfdHlwZSwgc2l4LnRleHRfdHlwZSkpOgorICAgICAgICBvYmogPSBvYmouc3RyaXAoKS5sb3dlcigpCisgICAgICAgIGlmIG9iaiBpbiBbJ3RydWUnLCAneWVzJywgJ29uJywgJ3knLCAndCcsICcxJ106CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbGlmIG9iaiBpbiBbJ2ZhbHNlJywgJ25vJywgJ29mZicsICduJywgJ2YnLCAnMCddOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJTdHJpbmcgaXMgbm90IHRydWUvZmFsc2U6ICVyIiAlIG9iaikKKyAgICByZXR1cm4gYm9vbChvYmopCisKK2RlZiBhc2xpc3Qob2JqLCBzZXA9Tm9uZSwgc3RyaXA9VHJ1ZSk6CisgICAgaWYgaXNpbnN0YW5jZShvYmosIChzaXguYmluYXJ5X3R5cGUsIHNpeC50ZXh0X3R5cGUpKToKKyAgICAgICAgbHN0ID0gb2JqLnNwbGl0KHNlcCkKKyAgICAgICAgaWYgc3RyaXA6CisgICAgICAgICAgICBsc3QgPSBbdi5zdHJpcCgpIGZvciB2IGluIGxzdF0KKyAgICAgICAgcmV0dXJuIGxzdAorICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIChsaXN0LCB0dXBsZSkpOgorICAgICAgICByZXR1cm4gb2JqCisgICAgZWxpZiBvYmogaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIFtdCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIFtvYmpdCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9kYXRlaW50ZXJ2YWwucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9kYXRlaW50ZXJ2YWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDIzYmNlNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2RhdGVpbnRlcnZhbC5weQpAQCAtMCwwICsxLDEwNCBAQAorIiIiCitEYXRlSW50ZXJ2YWwucHkKKworQ29udmVydCBpbnRlcnZhbCBzdHJpbmdzIChpbiB0aGUgZm9ybSBvZiAxdzJkLCBldGMpIHRvCitzZWNvbmRzLCBhbmQgYmFjayBhZ2Fpbi4gIElzIG5vdCBleGFjdGx5IGFib3V0IG1vbnRocyBvcgoreWVhcnMgKGxlYXAgeWVhcnMgaW4gcGFydGljdWxhcikuCisKK0FjY2VwdHMgKHkpZWFyLCAoYiltb250aCwgKHcpZWVrLCAoZClheSwgKGgpb3VyLCAobSlpbnV0ZSwgKHMpZWNvbmQuCisKK0V4cG9ydHMgb25seSB0aW1lRW5jb2RlIGFuZCB0aW1lRGVjb2RlIGZ1bmN0aW9ucy4KKyIiIgorCitpbXBvcnQgcmUKKworX19hbGxfXyA9IFsnaW50ZXJ2YWxfZGVjb2RlJywgJ2ludGVydmFsX2VuY29kZSddCisKK3NlY29uZCA9IDEKK21pbnV0ZSA9IHNlY29uZCo2MAoraG91ciA9IG1pbnV0ZSo2MAorZGF5ID0gaG91cioyNAord2VlayA9IGRheSo3Cittb250aCA9IGRheSozMAoreWVhciA9IGRheSozNjUKK3RpbWVWYWx1ZXMgPSB7CisgICAgJ3knOiB5ZWFyLAorICAgICdiJzogbW9udGgsCisgICAgJ3cnOiB3ZWVrLAorICAgICdkJzogZGF5LAorICAgICdoJzogaG91ciwKKyAgICAnbSc6IG1pbnV0ZSwKKyAgICAncyc6IHNlY29uZCwKKyAgICB9Cit0aW1lT3JkZXJlZCA9IGxpc3QodGltZVZhbHVlcy5pdGVtcygpKQordGltZU9yZGVyZWQuc29ydChrZXk9bGFtYmRhIHg6IHhbMV0sIHJldmVyc2U9VHJ1ZSkKKworCitkZWYgaW50ZXJ2YWxfZW5jb2RlKHNlY29uZHMsIGluY2x1ZGVfc2lnbj1GYWxzZSk6CisgICAgIiIiRW5jb2RlcyBhIG51bWJlciBvZiBzZWNvbmRzIChyZXByZXNlbnRpbmcgYSB0aW1lIGludGVydmFsKQorICAgIGludG8gYSBmb3JtIGxpa2UgMWgyZDNzLgorCisgICAgPj4+IGludGVydmFsX2VuY29kZSgxMCkKKyAgICAnMTBzJworICAgID4+PiBpbnRlcnZhbF9lbmNvZGUoNDkzOTM5KQorICAgICc1ZDE3aDEybTE5cycKKyAgICAiIiIKKyAgICBzID0gJycKKyAgICBvcmlnID0gc2Vjb25kcworICAgIHNlY29uZHMgPSBhYnMoc2Vjb25kcykKKyAgICBmb3IgY2hhciwgYW1vdW50IGluIHRpbWVPcmRlcmVkOgorICAgICAgICBpZiBzZWNvbmRzID49IGFtb3VudDoKKyAgICAgICAgICAgIGksIHNlY29uZHMgPSBkaXZtb2Qoc2Vjb25kcywgYW1vdW50KQorICAgICAgICAgICAgcyArPSAnJWklcycgJSAoaSwgY2hhcikKKyAgICBpZiBvcmlnIDwgMDoKKyAgICAgICAgcyA9ICctJyArIHMKKyAgICBlbGlmIG5vdCBvcmlnOgorICAgICAgICByZXR1cm4gJzAnCisgICAgZWxpZiBpbmNsdWRlX3NpZ246CisgICAgICAgIHMgPSAnKycgKyBzCisgICAgcmV0dXJuIHMKKworX3RpbWVSRSA9IHJlLmNvbXBpbGUocidbMC05XStbYS16QS1aXScpCitkZWYgaW50ZXJ2YWxfZGVjb2RlKHMpOgorICAgICIiIkRlY29kZXMgYSBudW1iZXIgaW4gdGhlIGZvcm1hdCAxaDRkM20gKDEgaG91ciwgMyBkYXlzLCAzIG1pbnV0ZXMpCisgICAgaW50byBhIG51bWJlciBvZiBzZWNvbmRzCisKKyAgICA+Pj4gaW50ZXJ2YWxfZGVjb2RlKCc0MHMnKQorICAgIDQwCisgICAgPj4+IGludGVydmFsX2RlY29kZSgnMTAwMDBzJykKKyAgICAxMDAwMAorICAgID4+PiBpbnRlcnZhbF9kZWNvZGUoJzNkMXc0NXMnKQorICAgIDg2NDA0NQorICAgICIiIgorICAgIHRpbWUgPSAwCisgICAgc2lnbiA9IDEKKyAgICBzID0gcy5zdHJpcCgpCisgICAgaWYgcy5zdGFydHN3aXRoKCctJyk6CisgICAgICAgIHMgPSBzWzE6XQorICAgICAgICBzaWduID0gLTEKKyAgICBlbGlmIHMuc3RhcnRzd2l0aCgnKycpOgorICAgICAgICBzID0gc1sxOl0KKyAgICBmb3IgbWF0Y2ggaW4gYWxsTWF0Y2hlcyhzLCBfdGltZVJFKToKKyAgICAgICAgY2hhciA9IG1hdGNoLmdyb3VwKDApWy0xXS5sb3dlcigpCisgICAgICAgIGlmIGNoYXIgbm90IGluIHRpbWVWYWx1ZXM6CisgICAgICAgICAgICAjIEBAOiBzaG91bGQgc2lnbmFsIGVycm9yCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0aW1lICs9IGludChtYXRjaC5ncm91cCgwKVs6LTFdKSAqIHRpbWVWYWx1ZXNbY2hhcl0KKyAgICByZXR1cm4gdGltZQorCisjIEBALXNnZCAyMDAyLTEyLTIzIC0gdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBiZWxvbmcgaW4gdGhpcyBtb2R1bGUsIGZpbmQgYSBiZXR0ZXIgcGxhY2UuCitkZWYgYWxsTWF0Y2hlcyhzb3VyY2UsIHJlZ2V4KToKKyAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIG1hdGNoZXMgZm9yIHJlZ2V4IGluIHNvdXJjZQorICAgICIiIgorICAgIHBvcyA9IDAKKyAgICBlbmQgPSBsZW4oc291cmNlKQorICAgIHJ2ID0gW10KKyAgICBtYXRjaCA9IHJlZ2V4LnNlYXJjaChzb3VyY2UsIHBvcykKKyAgICB3aGlsZSBtYXRjaDoKKyAgICAgICAgcnYuYXBwZW5kKG1hdGNoKQorICAgICAgICBtYXRjaCA9IHJlZ2V4LnNlYXJjaChzb3VyY2UsIG1hdGNoLmVuZCgpICkKKyAgICByZXR1cm4gcnYKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZCgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9kYXRldGltZXV0aWwucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9kYXRldGltZXV0aWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M2ZDdkOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2RhdGV0aW1ldXRpbC5weQpAQCAtMCwwICsxLDM1OSBAQAorIyAoYykgMjAwNSBDbGFyayBDLiBFdmFucyBhbmQgY29udHJpYnV0b3JzCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFNvbWUgb2YgdGhpcyBjb2RlIHdhcyBmdW5kZWQgYnk6IGh0dHA6Ly9wcm9tZXRoZXVzcmVzZWFyY2guY29tCisiIiIKK0RhdGUsIFRpbWUsIGFuZCBUaW1lc3BhbiBQYXJzaW5nIFV0aWxpdGllcworCitUaGlzIG1vZHVsZSBjb250YWlucyBwYXJzaW5nIHN1cHBvcnQgdG8gY3JlYXRlICJodW1hbiBmcmllbmRseSIKK2BgZGF0ZXRpbWVgYCBvYmplY3QgcGFyc2luZy4gIFRoZSBleHBsaWNpdCBnb2FsIG9mIHRoZXNlIHJvdXRpbmVzIGlzCit0byBwcm92aWRlIGEgbXVsdGktZm9ybWF0IGRhdGUvdGltZSBzdXBwb3J0IG5vdCB1bmxpa2UgdGhhdCBmb3VuZCBpbgorTWljcm9zb2Z0IEV4Y2VsLiAgSW4gbW9zdCBhcHByb2FjaGVzLCB0aGUgaW5wdXQgaXMgdmVyeSAic3RyaWN0IiB0bworcHJldmVudCBlcnJvcnMgLS0gaG93ZXZlciwgdGhpcyBhcHByb2FjaCBpcyBtdWNoIG1vcmUgbGliZXJhbCBzaW5jZSB3ZQorYXJlIGFzc3VtaW5nIHRoZSB1c2VyLWludGVyZmFjZSBpcyBwYXJyb3RpbmcgYmFjayB0aGUgbm9ybWFsaXplZCB2YWx1ZQorYW5kIHRodXMgdGhlIHVzZXIgaGFzIGltbWVkaWF0ZSBmZWVkYmFjayBpZiB0aGUgZGF0YSBpcyBub3QgdHlwZWQgaW4KK2NvcnJlY3RseS4KKworICBgYHBhcnNlX2RhdGVgYCBhbmQgYGBub3JtYWxpemVfZGF0ZWBgCisKKyAgICAgVGhlc2UgZnVuY3Rpb25zIHRha2UgYSB2YWx1ZSBsaWtlICc5IGphbiAyMDA3JyBhbmQgcmV0dXJucyBlaXRoZXIgYW4KKyAgICAgYGBkYXRlYGAgb2JqZWN0LCBvciBhbiBJU08gODYwMSBmb3JtYXR0ZWQgZGF0ZSB2YWx1ZSBzdWNoCisgICAgIGFzICcyMDA3LTAxLTA5Jy4gIFRoZXJlIGlzIGFuIG9wdGlvbiB0byBwcm92aWRlIGFuIE9yYWNsZSBkYXRhYmFzZQorICAgICBzdHlsZSBvdXRwdXQgYXMgd2VsbCwgYGAwOSBKQU4gMjAwN2BgLCBidXQgdGhpcyBpcyBub3QgdGhlIGRlZmF1bHQuCisKKyAgICAgVGhpcyBtb2R1bGUgYWx3YXlzIHRyZWF0cyAnLycgZGVsaW1pdGVycyBhcyB1c2luZyBVUyBkYXRlIG9yZGVyCisgICAgIChzaW5jZSB0aGUgYXV0aG9yJ3MgY2xpZW50cyBhcmUgVVMgYmFzZWQpLCBoZW5jZSAnMS85LzIwMDcnIGlzCisgICAgIEphbnVhcnkgOXRoLiAgU2luY2UgdGhpcyBtb2R1bGUgdHJlYXRzIHRoZSAnLScgYXMgZm9sbG93aW5nCisgICAgIEV1cm9wZWFuIG9yZGVyIHRoaXMgc3VwcG9ydHMgYm90aCBtb2RlcyBvZiBkYXRhLWVudHJ5OyB0b2dldGhlcgorICAgICB3aXRoIGltbWVkaWF0ZSBwYXJyb3RpbmcgYmFjayB0aGUgcmVzdWx0IHRvIHRoZSBzY3JlZW4sIHRoZSBhdXRob3IKKyAgICAgaGFzIGZvdW5kIHRoaXMgYXBwcm9hY2ggdG8gd29yayB3ZWxsIGluIHByYXRpY2UuCisKKyAgYGBwYXJzZV90aW1lYGAgYW5kIGBgbm9ybWFsaXplX3RpbWVgYAorCisgICAgIFRoZXNlIGZ1bmN0aW9ucyB0YWtlIGEgdmFsdWUgbGlrZSAnMSBwbScgYW5kIHJldHVybnMgZWl0aGVyIGFuCisgICAgIGBgdGltZWBgIG9iamVjdCwgb3IgYW4gSVNPIDg2MDEgZm9ybWF0dGVkIDI0aCBjbG9jayB0aW1lCisgICAgIHN1Y2ggYXMgJzEzOjAwJy4gIFRoZXJlIGlzIGFuIG9wdGlvbiB0byBwcm92aWRlIGZvciBVUyBzdHlsZSB0aW1lCisgICAgIHZhbHVlcywgJzE6MDAgUE0nLCBob3dldmVyIHRoaXMgaXMgbm90IHRoZSBkZWZhdWx0LgorCisgIGBgcGFyc2VfZGF0ZXRpbWVgYCBhbmQgYGBub3JtYWxpemVfZGF0ZXRpbWVgYAorCisgICAgIFRoZXNlIGZ1bmN0aW9ucyB0YWtlIGEgdmFsdWUgbGlrZSAnOSBqYW4gMjAwNyBhdCAxIHBtJyBhbmQgcmV0dXJucworICAgICBlaXRoZXIgYW4gYGBkYXRldGltZWBgIG9iamVjdCwgb3IgYW4gSVNPIDg2MDEgZm9ybWF0dGVkCisgICAgIHJldHVybiAod2l0aG91dCB0aGUgVCkgc3VjaCBhcyAnMjAwNy0wMS0wOSAxMzowMCcuIFRoZXJlIGlzIGFuCisgICAgIG9wdGlvbiB0byBwcm92aWRlIGZvciBPcmFjbGUgLyBVUyBzdHlsZSwgJzA5IEpBTiAyMDA3IEAgMTowMCBQTScsCisgICAgIGhvd2V2ZXIgdGhpcyBpcyBub3QgdGhlIGRlZmF1bHQuCisKKyAgYGBwYXJzZV9kZWx0YWBgIGFuZCBgYG5vcm1hbGl6ZV9kZWx0YWBgCisKKyAgICAgVGhlc2UgZnVuY3Rpb25zIHRha2UgYSB2YWx1ZSBsaWtlICcxaCAxNW0nIGFuZCByZXR1cm5zIGVpdGhlciBhbgorICAgICBgYHRpbWVkZWx0YWBgIG9iamVjdCwgb3IgYW4gMi1kZWNpbWFsIGZpeGVkLXBvaW50CisgICAgIG51bWVyaWNhbCB2YWx1ZSBpbiBob3Vycywgc3VjaCBhcyAnMS4yNScuICBUaGUgcmF0aW9uYWxlIGlzIHRvCisgICAgIHN1cHBvcnQgbWVldGluZyBvciB0aW1lLWJpbGxpbmcgbGVuZ3Rocywgbm90IHRvIGJlIGFuIGFjY3VyYXRlCisgICAgIHJlcHJlc2VudGF0aW9uIGluIG1pbGktc2Vjb25kcy4gIEFzIHN1Y2ggbm90IGFsbCB2YWxpZAorICAgICBgYHRpbWVkZWx0YWBgIHZhbHVlcyB3aWxsIGhhdmUgYSBub3JtYWxpemVkIHJlcHJlc2VudGF0aW9uLgorCisiIiIKK2Zyb20gZGF0ZXRpbWUgaW1wb3J0IHRpbWVkZWx0YSwgdGltZSwgZGF0ZQorZnJvbSB0aW1lIGltcG9ydCBsb2NhbHRpbWUKKworX19hbGxfXyA9IFsncGFyc2VfdGltZWRlbHRhJywgJ25vcm1hbGl6ZV90aW1lZGVsdGEnLAorICAgICAgICAgICAncGFyc2VfdGltZScsICdub3JtYWxpemVfdGltZScsCisgICAgICAgICAgICdwYXJzZV9kYXRlJywgJ25vcm1hbGl6ZV9kYXRlJ10KKworZGVmIF9udW1iZXIodmFsKToKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBpbnQodmFsKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworIworIyB0aW1lZGVsdGEKKyMKK2RlZiBwYXJzZV90aW1lZGVsdGEodmFsKToKKyAgICAiIiIKKyAgICByZXR1cm5zIGEgYGB0aW1lZGVsdGFgYCBvYmplY3QsIG9yIE5vbmUKKyAgICAiIiIKKyAgICBpZiBub3QgdmFsOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHZhbCA9IHZhbC5sb3dlcigpCisgICAgaWYgIi4iIGluIHZhbDoKKyAgICAgICAgdmFsID0gZmxvYXQodmFsKQorICAgICAgICByZXR1cm4gdGltZWRlbHRhKGhvdXJzPWludCh2YWwpLCBtaW51dGVzPTYwKih2YWwgJSAxLjApKQorICAgIGZIb3VyID0gKCJoIiBpbiB2YWwgb3IgIjoiIGluIHZhbCkKKyAgICBmTWluICA9ICgibSIgaW4gdmFsIG9yICI6IiBpbiB2YWwpCisgICAgZm9yIG5vaXNlIGluICJtaW51OnRlc2hvdXIoKSI6CisgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKG5vaXNlLCAnICcpCisgICAgdmFsID0gdmFsLnN0cmlwKCkKKyAgICB2YWwgPSB2YWwuc3BsaXQoKQorICAgIGhyID0gMC4wCisgICAgbWkgPSAwCisgICAgdmFsLnJldmVyc2UoKQorICAgIGlmIGZIb3VyOgorICAgICAgICBociA9IGludCh2YWwucG9wKCkpCisgICAgaWYgZk1pbjoKKyAgICAgICAgbWkgPSBpbnQodmFsLnBvcCgpKQorICAgIGlmIGxlbih2YWwpID4gMCBhbmQgbm90IGhyOgorICAgICAgICBociA9IGludCh2YWwucG9wKCkpCisgICAgcmV0dXJuIHRpbWVkZWx0YShob3Vycz1ociwgbWludXRlcz1taSkKKworZGVmIG5vcm1hbGl6ZV90aW1lZGVsdGEodmFsKToKKyAgICAiIiIKKyAgICBwcm9kdWNlcyBhIG5vcm1hbGl6ZWQgc3RyaW5nIHZhbHVlIG9mIHRoZSB0aW1lZGVsdGEKKworICAgIFRoaXMgbW9kdWxlIHJldHVybnMgYSBub3JtYWxpemVkIHRpbWUgc3BhbiB2YWx1ZSBjb25zaXN0aW5nIG9mIHRoZQorICAgIG51bWJlciBvZiBob3VycyBpbiBmcmFjdGlvbmFsIGZvcm0uIEZvciBleGFtcGxlICcxaCAxNW1pbicgaXMKKyAgICBmb3JtYXR0ZWQgYXMgMDEuMjUuCisgICAgIiIiCisgICAgaWYgdHlwZSh2YWwpID09IHN0cjoKKyAgICAgICAgdmFsID0gcGFyc2VfdGltZWRlbHRhKHZhbCkKKyAgICBpZiBub3QgdmFsOgorICAgICAgICByZXR1cm4gJycKKyAgICBociA9IHZhbC5zZWNvbmRzLzM2MDAKKyAgICBtbiA9ICh2YWwuc2Vjb25kcyAlIDM2MDApLzYwCisgICAgcmV0dXJuICIlZC4lMDJkIiAlIChociwgbW4gKiAxMDAvNjApCisKKyMKKyMgdGltZQorIworZGVmIHBhcnNlX3RpbWUodmFsKToKKyAgICBpZiBub3QgdmFsOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIGhyID0gbWkgPSAwCisgICAgdmFsID0gdmFsLmxvd2VyKCkKKyAgICBhbWZsYWcgPSAoLTEgIT0gdmFsLmZpbmQoJ2EnKSkgICMgc2V0IGlmIEFNIGlzIGZvdW5kCisgICAgcG1mbGFnID0gKC0xICE9IHZhbC5maW5kKCdwJykpICAjIHNldCBpZiBQTSBpcyBmb3VuZAorICAgIGZvciBub2lzZSBpbiAiOmFtcC4iOgorICAgICAgICB2YWwgPSB2YWwucmVwbGFjZShub2lzZSwgJyAnKQorICAgIHZhbCA9IHZhbC5zcGxpdCgpCisgICAgaWYgbGVuKHZhbCkgPiAxOgorICAgICAgICBociA9IGludCh2YWxbMF0pCisgICAgICAgIG1pID0gaW50KHZhbFsxXSkKKyAgICBlbHNlOgorICAgICAgICB2YWwgPSB2YWxbMF0KKyAgICAgICAgaWYgbGVuKHZhbCkgPCAxOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmICdub3cnID09IHZhbDoKKyAgICAgICAgICAgIHRtID0gbG9jYWx0aW1lKCkKKyAgICAgICAgICAgIGhyID0gdG1bM10KKyAgICAgICAgICAgIG1pID0gdG1bNF0KKyAgICAgICAgZWxpZiAnbm9vbicgPT0gdmFsOgorICAgICAgICAgICAgaHIgPSAxMgorICAgICAgICBlbGlmIGxlbih2YWwpIDwgMzoKKyAgICAgICAgICAgIGhyID0gaW50KHZhbCkKKyAgICAgICAgICAgIGlmIG5vdCBhbWZsYWcgYW5kIG5vdCBwbWZsYWcgYW5kIGhyIDwgNzoKKyAgICAgICAgICAgICAgICBociArPSAxMgorICAgICAgICBlbGlmIGxlbih2YWwpIDwgNToKKyAgICAgICAgICAgIGhyID0gaW50KHZhbFs6LTJdKQorICAgICAgICAgICAgbWkgPSBpbnQodmFsWy0yOl0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBociA9IGludCh2YWxbOjFdKQorICAgIGlmIGFtZmxhZyBhbmQgaHIgPj0gMTI6CisgICAgICAgIGhyID0gaHIgLSAxMgorICAgIGlmIHBtZmxhZyBhbmQgaHIgPCAxMjoKKyAgICAgICAgaHIgPSBociArIDEyCisgICAgcmV0dXJuIHRpbWUoaHIsIG1pKQorCitkZWYgbm9ybWFsaXplX3RpbWUodmFsdWUsIGFtcG0pOgorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgaWYgdHlwZSh2YWx1ZSkgPT0gc3RyOgorICAgICAgICB2YWx1ZSA9IHBhcnNlX3RpbWUodmFsdWUpCisgICAgaWYgbm90IGFtcG06CisgICAgICAgIHJldHVybiAiJTAyZDolMDJkIiAlICh2YWx1ZS5ob3VyLCB2YWx1ZS5taW51dGUpCisgICAgaHIgPSB2YWx1ZS5ob3VyCisgICAgYW0gPSAiQU0iCisgICAgaWYgaHIgPCAxIG9yIGhyID4gMjM6CisgICAgICAgIGhyID0gMTIKKyAgICBlbGlmIGhyID49IDEyOgorICAgICAgICBhbSA9ICJQTSIKKyAgICAgICAgaWYgaHIgPiAxMjoKKyAgICAgICAgICAgIGhyID0gaHIgLSAxMgorICAgIHJldHVybiAiJTAyZDolMDJkICVzIiAlIChociwgdmFsdWUubWludXRlLCBhbSkKKworIworIyBEYXRlIFByb2Nlc3NpbmcKKyMKKworX29uZV9kYXkgPSB0aW1lZGVsdGEoZGF5cz0xKQorCitfc3RyMm51bSA9IHsnamFuJzoxLCAnZmViJzoyLCAnbWFyJzozLCAnYXByJzo0LCAgJ21heSc6NSwgJ2p1bic6NiwKKyAgICAgICAgICAgICdqdWwnOjcsICdhdWcnOjgsICdzZXAnOjksICdvY3QnOjEwLCAnbm92JzoxMSwgJ2RlYyc6MTIgfQorCitkZWYgX21vbnRoKHZhbCk6CisgICAgZm9yIChrZXksIG1vbikgaW4gX3N0cjJudW0uaXRlbXMoKToKKyAgICAgICAgaWYga2V5IGluIHZhbDoKKyAgICAgICAgICAgIHJldHVybiBtb24KKyAgICByYWlzZSBUeXBlRXJyb3IoInVua25vd24gbW9udGggJyVzJyIgJSB2YWwpCisKK19kYXlzX2luX21vbnRoID0gezE6IDMxLCAyOiAyOCwgMzogMzEsIDQ6IDMwLCA1OiAzMSwgNjogMzAsCisgICAgICAgICAgICAgICAgICA3OiAzMSwgODogMzEsIDk6IDMwLCAxMDogMzEsIDExOiAzMCwgMTI6IDMxLAorICAgICAgICAgICAgICAgICAgfQorX251bTJzdHIgPSB7MTogJ0phbicsIDI6ICdGZWInLCAzOiAnTWFyJywgNDogJ0FwcicsIDU6ICdNYXknLCA2OiAnSnVuJywKKyAgICAgICAgICAgIDc6ICdKdWwnLCA4OiAnQXVnJywgOTogJ1NlcCcsIDEwOiAnT2N0JywgMTE6ICdOb3YnLCAxMjogJ0RlYycsCisgICAgICAgICAgICB9Citfd2tkeSA9ICgibW9uIiwgInR1ZSIsICJ3ZWQiLCAidGh1IiwgImZyaSIsICJzYXQiLCAic3VuIikKKworZGVmIHBhcnNlX2RhdGUodmFsKToKKyAgICBpZiBub3QodmFsKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICB2YWwgPSB2YWwubG93ZXIoKQorICAgIG5vdyA9IE5vbmUKKworICAgICMgb3B0aW1pemVkIGNoZWNrIGZvciBZWVlZLU1NLURECisgICAgc3RyaWN0ID0gdmFsLnNwbGl0KCItIikKKyAgICBpZiBsZW4oc3RyaWN0KSA9PSAzOgorICAgICAgICAoeSwgbSwgZCkgPSBzdHJpY3QKKyAgICAgICAgaWYgIisiIGluIGQ6CisgICAgICAgICAgICBkID0gZC5zcGxpdCgiKyIpWzBdCisgICAgICAgIGlmICIgIiBpbiBkOgorICAgICAgICAgICAgZCA9IGQuc3BsaXQoIiAiKVswXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBub3cgPSBkYXRlKGludCh5KSwgaW50KG0pLCBpbnQoZCkpCisgICAgICAgICAgICB2YWwgPSAieHh4IiArIHZhbFsxMDpdCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgcGFzcworCisgICAgIyBhbGxvdyBmb3IgJ25vdycsICdtb24nLCAndHVlJywgZXRjLgorICAgIGlmIG5vdCBub3c6CisgICAgICAgIGNoayA9IHZhbFs6M10KKyAgICAgICAgaWYgY2hrIGluICgnbm93JywndG9kJyk6CisgICAgICAgICAgICBub3cgPSBkYXRlLnRvZGF5KCkKKyAgICAgICAgZWxpZiBjaGsgaW4gX3drZHk6CisgICAgICAgICAgICBub3cgPSBkYXRlLnRvZGF5KCkKKyAgICAgICAgICAgIGlkeCA9IGxpc3QoX3drZHkpLmluZGV4KGNoaykgKyAxCisgICAgICAgICAgICB3aGlsZSBub3cuaXNvd2Vla2RheSgpICE9IGlkeDoKKyAgICAgICAgICAgICAgICBub3cgKz0gX29uZV9kYXkKKworICAgICMgYWxsb3cgZGF0ZXMgdG8gYmUgbW9kaWZpZWQgdmlhICsgb3IgLSAvdyBudW1iZXIgb2YgZGF5cywgc28KKyAgICAjIHRoYXQgbm93KzMgaXMgdGhyZWUgZGF5cyBmcm9tIG5vdworICAgIGlmIG5vdzoKKyAgICAgICAgdGFpbCA9IHZhbFszOl0uc3RyaXAoKQorICAgICAgICB0YWlsID0gdGFpbC5yZXBsYWNlKCIrIiwiICsiKS5yZXBsYWNlKCItIiwiIC0iKQorICAgICAgICBmb3IgaXRlbSBpbiB0YWlsLnNwbGl0KCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGF5cyA9IGludChpdGVtKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBub3cgKz0gdGltZWRlbHRhKGRheXM9ZGF5cykKKyAgICAgICAgcmV0dXJuIG5vdworCisgICAgIyBvaywgc3RhbmRhcmQgcGFyc2luZworICAgIHlyID0gbW8gPSBkeSA9IE5vbmUKKyAgICBmb3Igbm9pc2UgaW4gKCcvJywgJy0nLCAnLCcsICcqJyk6CisgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKG5vaXNlLCAnICcpCisgICAgZm9yIG5vaXNlIGluIF93a2R5OgorICAgICAgICB2YWwgPSB2YWwucmVwbGFjZShub2lzZSwgJyAnKQorICAgIG91dCA9IFtdCisgICAgbGFzdCA9IEZhbHNlCisgICAgbGRpZyA9IEZhbHNlCisgICAgZm9yIGNoIGluIHZhbDoKKyAgICAgICAgaWYgY2guaXNkaWdpdCgpOgorICAgICAgICAgICAgaWYgbGFzdCBhbmQgbm90IGxkaWc6CisgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCcgJykKKyAgICAgICAgICAgIGxhc3QgPSBsZGlnID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgbGRpZzoKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCcgJykKKyAgICAgICAgICAgICAgICBsZGlnID0gRmFsc2UKKyAgICAgICAgICAgIGxhc3QgPSBUcnVlCisgICAgICAgIG91dC5hcHBlbmQoY2gpCisgICAgdmFsID0gIiIuam9pbihvdXQpLnNwbGl0KCkKKyAgICBpZiAzID09IGxlbih2YWwpOgorICAgICAgICBhID0gX251bWJlcih2YWxbMF0pCisgICAgICAgIGIgPSBfbnVtYmVyKHZhbFsxXSkKKyAgICAgICAgYyA9IF9udW1iZXIodmFsWzJdKQorICAgICAgICBpZiBsZW4odmFsWzBdKSA9PSA0OgorICAgICAgICAgICAgeXIgPSBhCisgICAgICAgICAgICBpZiBiOiAgIyAxOTk5IDYgMjMKKyAgICAgICAgICAgICAgICBtbyA9IGIKKyAgICAgICAgICAgICAgICBkeSA9IGMKKyAgICAgICAgICAgIGVsc2U6ICAjIDE5OTkgSnVuIDIzCisgICAgICAgICAgICAgICAgbW8gPSBfbW9udGgodmFsWzFdKQorICAgICAgICAgICAgICAgIGR5ID0gYworICAgICAgICBlbGlmIGEgaXMgbm90IE5vbmUgYW5kIGEgPiAwOgorICAgICAgICAgICAgeXIgPSBjCisgICAgICAgICAgICBpZiBsZW4odmFsWzJdKSA8IDQ6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJmb3VyIGRpZ2l0IHllYXIgcmVxdWlyZWQiKQorICAgICAgICAgICAgaWYgYjogIyA2IDIzIDE5OTkKKyAgICAgICAgICAgICAgICBkeSA9IGIKKyAgICAgICAgICAgICAgICBtbyA9IGEKKyAgICAgICAgICAgIGVsc2U6ICMgMjMgSnVuIDE5OTkKKyAgICAgICAgICAgICAgICBkeSA9IGEKKyAgICAgICAgICAgICAgICBtbyA9IF9tb250aCh2YWxbMV0pCisgICAgICAgIGVsc2U6ICMgSnVuIDIzLCAyMDAwCisgICAgICAgICAgICBkeSA9IGIKKyAgICAgICAgICAgIHlyID0gYworICAgICAgICAgICAgaWYgbGVuKHZhbFsyXSkgPCA0OgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZm91ciBkaWdpdCB5ZWFyIHJlcXVpcmVkIikKKyAgICAgICAgICAgIG1vID0gX21vbnRoKHZhbFswXSkKKyAgICBlbGlmIDIgPT0gbGVuKHZhbCk6CisgICAgICAgIGEgPSBfbnVtYmVyKHZhbFswXSkKKyAgICAgICAgYiA9IF9udW1iZXIodmFsWzFdKQorICAgICAgICBpZiBhIGlzIG5vdCBOb25lIGFuZCBhID4gOTk5OgorICAgICAgICAgICAgeXIgPSBhCisgICAgICAgICAgICBkeSA9IDEKKyAgICAgICAgICAgIGlmIGIgaXMgbm90IE5vbmUgYW5kIGIgPiAwOiAjIDE5OTkgNgorICAgICAgICAgICAgICAgIG1vID0gYgorICAgICAgICAgICAgZWxzZTogIyAxOTk5IEp1bgorICAgICAgICAgICAgICAgIG1vID0gX21vbnRoKHZhbFsxXSkKKyAgICAgICAgZWxpZiBhIGlzIG5vdCBOb25lIGFuZCBhID4gMDoKKyAgICAgICAgICAgIGlmIGIgaXMgbm90IE5vbmUgYW5kIGIgPiA5OTk6ICMgNiAxOTk5CisgICAgICAgICAgICAgICAgbW8gPSBhCisgICAgICAgICAgICAgICAgeXIgPSBiCisgICAgICAgICAgICAgICAgZHkgPSAxCisgICAgICAgICAgICBlbGlmIGIgaXMgbm90IE5vbmUgYW5kIGIgPiAwOiAjIDYgMjMKKyAgICAgICAgICAgICAgICBtbyA9IGEKKyAgICAgICAgICAgICAgICBkeSA9IGIKKyAgICAgICAgICAgIGVsc2U6ICMgMjMgSnVuCisgICAgICAgICAgICAgICAgZHkgPSBhCisgICAgICAgICAgICAgICAgbW8gPSBfbW9udGgodmFsWzFdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgYiA+IDk5OTogIyBKdW4gMjAwMQorICAgICAgICAgICAgICAgIHlyID0gYgorICAgICAgICAgICAgICAgIGR5ID0gMQorICAgICAgICAgICAgZWxzZTogICMgSnVuIDIzCisgICAgICAgICAgICAgICAgZHkgPSBiCisgICAgICAgICAgICBtbyA9IF9tb250aCh2YWxbMF0pCisgICAgZWxpZiAxID09IGxlbih2YWwpOgorICAgICAgICB2YWwgPSB2YWxbMF0KKyAgICAgICAgaWYgbm90IHZhbC5pc2RpZ2l0KCk6CisgICAgICAgICAgICBtbyA9IF9tb250aCh2YWwpCisgICAgICAgICAgICBpZiBtbyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBkeSA9IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHYgPSBfbnVtYmVyKHZhbCkKKyAgICAgICAgICAgIHZhbCA9IHN0cih2KQorICAgICAgICAgICAgaWYgOCA9PSBsZW4odmFsKTogIyAyMDAxMDYyMworICAgICAgICAgICAgICAgIHlyID0gX251bWJlcih2YWxbOjRdKQorICAgICAgICAgICAgICAgIG1vID0gX251bWJlcih2YWxbNDo2XSkKKyAgICAgICAgICAgICAgICBkeSA9IF9udW1iZXIodmFsWzY6XSkKKyAgICAgICAgICAgIGVsaWYgbGVuKHZhbCkgaW4gKDMsNCk6CisgICAgICAgICAgICAgICAgaWYgdiBpcyBub3QgTm9uZSBhbmQgdiA+IDEzMDA6ICMgMjAwNAorICAgICAgICAgICAgICAgICAgICB5ciA9IHYKKyAgICAgICAgICAgICAgICAgICAgbW8gPSAxCisgICAgICAgICAgICAgICAgICAgIGR5ID0gMQorICAgICAgICAgICAgICAgIGVsc2U6ICAgICAgICAjIDEyMDIKKyAgICAgICAgICAgICAgICAgICAgbW8gPSBfbnVtYmVyKHZhbFs6LTJdKQorICAgICAgICAgICAgICAgICAgICBkeSA9IF9udW1iZXIodmFsWy0yOl0pCisgICAgICAgICAgICBlbGlmIHYgPCAzMjoKKyAgICAgICAgICAgICAgICBkeSA9IHYKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJmb3VyIGRpZ2l0IHllYXIgcmVxdWlyZWQiKQorICAgIHRtID0gbG9jYWx0aW1lKCkKKyAgICBpZiBtbyBpcyBOb25lOgorICAgICAgICBtbyA9IHRtWzFdCisgICAgaWYgZHkgaXMgTm9uZToKKyAgICAgICAgZHkgPSB0bVsyXQorICAgIGlmIHlyIGlzIE5vbmU6CisgICAgICAgIHlyID0gdG1bMF0KKyAgICByZXR1cm4gZGF0ZSh5ciwgbW8sIGR5KQorCitkZWYgbm9ybWFsaXplX2RhdGUodmFsLCBpc284NjAxPVRydWUpOgorICAgIGlmIG5vdCB2YWw6CisgICAgICAgIHJldHVybiAnJworICAgIGlmIHR5cGUodmFsKSA9PSBzdHI6CisgICAgICAgIHZhbCA9IHBhcnNlX2RhdGUodmFsKQorICAgIGlmIGlzbzg2MDE6CisgICAgICAgIHJldHVybiAiJTRkLSUwMmQtJTAyZCIgJSAodmFsLnllYXIsIHZhbC5tb250aCwgdmFsLmRheSkKKyAgICByZXR1cm4gIiUwMmQgJXMgJTRkIiAlICh2YWwuZGF5LCBfbnVtMnN0clt2YWwubW9udGhdLCB2YWwueWVhcikKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2ZpbGVtaXhpbi5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2ZpbGVtaXhpbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDZiMDM5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvZmlsZW1peGluLnB5CkBAIC0wLDAgKzEsNTMgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworY2xhc3MgRmlsZU1peGluKG9iamVjdCk6CisKKyAgICAiIiIKKyAgICBVc2VkIHRvIHByb3ZpZGUgYXV4aWxpYXJ5IG1ldGhvZHMgdG8gb2JqZWN0cyBzaW11bGF0aW5nIGZpbGVzLgorICAgIE9iamVjdHMgbXVzdCBpbXBsZW1lbnQgd3JpdGUsIGFuZCByZWFkIGlmIHRoZXkgYXJlIGlucHV0IGZpbGVzLgorICAgIEFsc28gdGhleSBzaG91bGQgaW1wbGVtZW50IGNsb3NlLgorCisgICAgT3RoZXIgbWV0aG9kcyB5b3UgbWF5IHdpc2ggdG8gb3ZlcnJpZGU6CisgICAgKiBmbHVzaCgpCisgICAgKiBzZWVrKG9mZnNldFssIHdoZW5jZV0pCisgICAgKiB0ZWxsKCkKKyAgICAqIHRydW5jYXRlKFtzaXplXSkKKworICAgIEF0dHJpYnV0ZXMgeW91IG1heSB3aXNoIHRvIHByb3ZpZGU6CisgICAgKiBjbG9zZWQKKyAgICAqIGVuY29kaW5nICh5b3Ugc2hvdWxkIGFsc28gcmVzcGVjdCB0aGF0IGluIHdyaXRlKCkpCisgICAgKiBtb2RlCisgICAgKiBuZXdsaW5lcyAoaGFyZCB0byBzdXBwb3J0KQorICAgICogc29mdHNwYWNlCisgICAgIiIiCisKKyAgICBkZWYgZmx1c2goc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBuZXh0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5yZWFkbGluZSgpCisKKyAgICBkZWYgcmVhZGxpbmUoc2VsZiwgc2l6ZT1Ob25lKToKKyAgICAgICAgIyBAQDogVGhpcyBpcyBhIGxhbWUgaW1wbGVtZW50YXRpb247IGJ1dCBhIGJ1ZmZlciB3b3VsZCBwcm9iYWJseQorICAgICAgICAjIGJlIG5lY2Vzc2FyeSBmb3IgYSBiZXR0ZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb3V0cHV0ID0gW10KKyAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIG5leHQgPSBzZWxmLnJlYWQoMSkKKyAgICAgICAgICAgIGlmIG5vdCBuZXh0OgorICAgICAgICAgICAgICAgIHJldHVybiAnJy5qb2luKG91dHB1dCkKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQobmV4dCkKKyAgICAgICAgICAgIGlmIHNpemUgYW5kIHNpemUgPiAwIGFuZCBsZW4ob3V0cHV0KSA+PSBzaXplOgorICAgICAgICAgICAgICAgIHJldHVybiAnJy5qb2luKG91dHB1dCkKKyAgICAgICAgICAgIGlmIG5leHQgPT0gJ1xuJzoKKyAgICAgICAgICAgICAgICAjIEBAOiBhbHNvIFxyPworICAgICAgICAgICAgICAgIHJldHVybiAnJy5qb2luKG91dHB1dCkKKworICAgIGRlZiB4cmVhZGxpbmVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgbGluZXMpOgorICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgICAgIHNlbGYud3JpdGUobGluZSkKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9maW5kZGF0YS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2ZpbmRkYXRhLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiN2M3NjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9maW5kZGF0YS5weQpAQCAtMCwwICsxLDk4IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIE5vdGU6IHlvdSBtYXkgd2FudCB0byBjb3B5IHRoaXMgaW50byB5b3VyIHNldHVwLnB5IGZpbGUgdmVyYmF0aW0sIGFzCisjIHlvdSBjYW4ndCBpbXBvcnQgdGhpcyBmcm9tIGFub3RoZXIgcGFja2FnZSwgd2hlbiB5b3UgZG9uJ3Qga25vdyBpZgorIyB0aGF0IHBhY2thZ2UgaXMgaW5zdGFsbGVkIHlldC4KKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitmcm9tIGZubWF0Y2ggaW1wb3J0IGZubWF0Y2hjYXNlCitmcm9tIGRpc3R1dGlscy51dGlsIGltcG9ydCBjb252ZXJ0X3BhdGgKKworIyBQcm92aWRlZCBhcyBhbiBhdHRyaWJ1dGUsIHNvIHlvdSBjYW4gYXBwZW5kIHRvIHRoZXNlIGluc3RlYWQKKyMgb2YgcmVwbGljYXRpbmcgdGhlbToKK3N0YW5kYXJkX2V4Y2x1ZGUgPSAoJyoucHknLCAnKi5weWMnLCAnKiRweS5jbGFzcycsICcqficsICcuKicsICcqLmJhaycpCitzdGFuZGFyZF9leGNsdWRlX2RpcmVjdG9yaWVzID0gKCcuKicsICdDVlMnLCAnX2RhcmNzJywgJy4vYnVpbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLi9kaXN0JywgJ0VHRy1JTkZPJywgJyouZWdnLWluZm8nKQorCitkZWYgZmluZF9wYWNrYWdlX2RhdGEoCisgICAgd2hlcmU9Jy4nLCBwYWNrYWdlPScnLAorICAgIGV4Y2x1ZGU9c3RhbmRhcmRfZXhjbHVkZSwKKyAgICBleGNsdWRlX2RpcmVjdG9yaWVzPXN0YW5kYXJkX2V4Y2x1ZGVfZGlyZWN0b3JpZXMsCisgICAgb25seV9pbl9wYWNrYWdlcz1UcnVlLAorICAgIHNob3dfaWdub3JlZD1GYWxzZSk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgZGljdGlvbmFyeSBzdWl0YWJsZSBmb3IgdXNlIGluIGBgcGFja2FnZV9kYXRhYGAKKyAgICBpbiBhIGRpc3R1dGlscyBgYHNldHVwLnB5YGAgZmlsZS4KKworICAgIFRoZSBkaWN0aW9uYXJ5IGxvb2tzIGxpa2U6OgorCisgICAgICAgIHsncGFja2FnZSc6IFtmaWxlc119CisKKyAgICBXaGVyZSBgYGZpbGVzYGAgaXMgYSBsaXN0IG9mIGFsbCB0aGUgZmlsZXMgaW4gdGhhdCBwYWNrYWdlIHRoYXQKKyAgICBkb24ndCBtYXRjaCBhbnl0aGluZyBpbiBgYGV4Y2x1ZGVgYC4KKworICAgIElmIGBgb25seV9pbl9wYWNrYWdlc2BgIGlzIHRydWUsIHRoZW4gdG9wLWxldmVsIGRpcmVjdG9yaWVzIHRoYXQKKyAgICBhcmUgbm90IHBhY2thZ2VzIHdvbid0IGJlIGluY2x1ZGVkIChidXQgZGlyZWN0b3JpZXMgdW5kZXIgcGFja2FnZXMKKyAgICB3aWxsKS4KKworICAgIERpcmVjdG9yaWVzIG1hdGNoaW5nIGFueSBwYXR0ZXJuIGluIGBgZXhjbHVkZV9kaXJlY3Rvcmllc2BgIHdpbGwKKyAgICBiZSBpZ25vcmVkOyBieSBkZWZhdWx0IGRpcmVjdG9yaWVzIHdpdGggbGVhZGluZyBgYC5gYCwgYGBDVlNgYCwKKyAgICBhbmQgYGBfZGFyY3NgYCB3aWxsIGJlIGlnbm9yZWQuCisKKyAgICBJZiBgYHNob3dfaWdub3JlZGBgIGlzIHRydWUsIHRoZW4gYWxsIHRoZSBmaWxlcyB0aGF0IGFyZW4ndAorICAgIGluY2x1ZGVkIGluIHBhY2thZ2UgZGF0YSBhcmUgc2hvd24gb24gc3RkZXJyIChmb3IgZGVidWdnaW5nCisgICAgcHVycG9zZXMpLgorCisgICAgTm90ZSBwYXR0ZXJucyB1c2Ugd2lsZGNhcmRzLCBvciBjYW4gYmUgZXhhY3QgcGF0aHMgKGluY2x1ZGluZworICAgIGxlYWRpbmcgYGAuL2BgKSwgYW5kIGFsbCBzZWFyY2hpbmcgaXMgY2FzZS1pbnNlbnNpdGl2ZS4KKyAgICAiIiIKKworICAgIG91dCA9IHt9CisgICAgc3RhY2sgPSBbKGNvbnZlcnRfcGF0aCh3aGVyZSksICcnLCBwYWNrYWdlLCBvbmx5X2luX3BhY2thZ2VzKV0KKyAgICB3aGlsZSBzdGFjazoKKyAgICAgICAgd2hlcmUsIHByZWZpeCwgcGFja2FnZSwgb25seV9pbl9wYWNrYWdlcyA9IHN0YWNrLnBvcCgwKQorICAgICAgICBmb3IgbmFtZSBpbiBvcy5saXN0ZGlyKHdoZXJlKToKKyAgICAgICAgICAgIGZuID0gb3MucGF0aC5qb2luKHdoZXJlLCBuYW1lKQorICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcihmbik6CisgICAgICAgICAgICAgICAgYmFkX25hbWUgPSBGYWxzZQorICAgICAgICAgICAgICAgIGZvciBwYXR0ZXJuIGluIGV4Y2x1ZGVfZGlyZWN0b3JpZXM6CisgICAgICAgICAgICAgICAgICAgIGlmIChmbm1hdGNoY2FzZShuYW1lLCBwYXR0ZXJuKQorICAgICAgICAgICAgICAgICAgICAgICAgb3IgZm4ubG93ZXIoKSA9PSBwYXR0ZXJuLmxvd2VyKCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgYmFkX25hbWUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaG93X2lnbm9yZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRpcmVjdG9yeSAlcyBpZ25vcmVkIGJ5IHBhdHRlcm4gJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoZm4sIHBhdHRlcm4pLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGlmIGJhZF9uYW1lOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIChvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oZm4sICdfX2luaXRfXy5weScpKQorICAgICAgICAgICAgICAgICAgICBhbmQgbm90IHByZWZpeCk6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBwYWNrYWdlOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3BhY2thZ2UgPSBuYW1lCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcGFja2FnZSA9IHBhY2thZ2UgKyAnLicgKyBuYW1lCisgICAgICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZCgoZm4sICcnLCBuZXdfcGFja2FnZSwgRmFsc2UpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZCgoZm4sIHByZWZpeCArIG5hbWUgKyAnLycsIHBhY2thZ2UsIG9ubHlfaW5fcGFja2FnZXMpKQorICAgICAgICAgICAgZWxpZiBwYWNrYWdlIG9yIG5vdCBvbmx5X2luX3BhY2thZ2VzOgorICAgICAgICAgICAgICAgICMgaXMgYSBmaWxlCisgICAgICAgICAgICAgICAgYmFkX25hbWUgPSBGYWxzZQorICAgICAgICAgICAgICAgIGZvciBwYXR0ZXJuIGluIGV4Y2x1ZGU6CisgICAgICAgICAgICAgICAgICAgIGlmIChmbm1hdGNoY2FzZShuYW1lLCBwYXR0ZXJuKQorICAgICAgICAgICAgICAgICAgICAgICAgb3IgZm4ubG93ZXIoKSA9PSBwYXR0ZXJuLmxvd2VyKCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgYmFkX25hbWUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaG93X2lnbm9yZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkZpbGUgJXMgaWdub3JlZCBieSBwYXR0ZXJuICVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKGZuLCBwYXR0ZXJuKSwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiBiYWRfbmFtZToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBvdXQuc2V0ZGVmYXVsdChwYWNrYWdlLCBbXSkuYXBwZW5kKHByZWZpeCtuYW1lKQorICAgIHJldHVybiBvdXQKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgcHByaW50CisgICAgcHByaW50LnBwcmludCgKKyAgICAgICAgZmluZF9wYWNrYWdlX2RhdGEoc2hvd19pZ25vcmVkPVRydWUpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvZmluZHBhY2thZ2UucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9maW5kcGFja2FnZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDY1M2U1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvZmluZHBhY2thZ2UucHkKQEAgLTAsMCArMSwyNiBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworZGVmIGZpbmRfcGFja2FnZShkaXIpOgorICAgICIiIgorICAgIEdpdmVuIGEgZGlyZWN0b3J5LCBmaW5kcyB0aGUgZXF1aXZhbGVudCBwYWNrYWdlIG5hbWUuICBJZiBpdAorICAgIGlzIGRpcmVjdGx5IGluIHN5cy5wYXRoLCByZXR1cm5zICcnLgorICAgICIiIgorICAgIGRpciA9IG9zLnBhdGguYWJzcGF0aChkaXIpCisgICAgb3JpZ19kaXIgPSBkaXIKKyAgICBwYXRoID0gbWFwKG9zLnBhdGguYWJzcGF0aCwgc3lzLnBhdGgpCisgICAgcGFja2FnZXMgPSBbXQorICAgIGxhc3RfZGlyID0gTm9uZQorICAgIHdoaWxlIDE6CisgICAgICAgIGlmIGRpciBpbiBwYXRoOgorICAgICAgICAgICAgcmV0dXJuICcuJy5qb2luKHBhY2thZ2VzKQorICAgICAgICBwYWNrYWdlcy5pbnNlcnQoMCwgb3MucGF0aC5iYXNlbmFtZShkaXIpKQorICAgICAgICBkaXIgPSBvcy5wYXRoLmRpcm5hbWUoZGlyKQorICAgICAgICBpZiBsYXN0X2RpciA9PSBkaXI6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICIlcyBpcyBub3QgdW5kZXIgYW55IHBhdGggZm91bmQgaW4gc3lzLnBhdGgiICUgb3JpZ19kaXIpCisgICAgICAgIGxhc3RfZGlyID0gZGlyCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2ltcG9ydF9zdHJpbmcucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9pbXBvcnRfc3RyaW5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMGRiMTgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9pbXBvcnRfc3RyaW5nLnB5CkBAIC0wLDAgKzEsOTUgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworIiIiCisnaW1wb3J0cycgYSBzdHJpbmcgLS0gY29udmVydHMgYSBzdHJpbmcgdG8gYSBQeXRob24gb2JqZWN0LCBpbXBvcnRpbmcKK2FueSBuZWNlc3NhcnkgbW9kdWxlcyBhbmQgZXZhbHVhdGluZyB0aGUgZXhwcmVzc2lvbi4gIEV2ZXJ5dGhpbmcKK2JlZm9yZSB0aGUgOiBpbiBhbiBpbXBvcnQgZXhwcmVzc2lvbiBpcyB0aGUgbW9kdWxlIHBhdGg7IGV2ZXJ5dGhpbmcKK2FmdGVyIGlzIGFuIGV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGluIHRoZSBuYW1lc3BhY2Ugb2YgdGhhdAorbW9kdWxlLgorCitBbHRlcm5hdGVseSwgaWYgbm8gOiBpcyBwcmVzZW50LCB0aGVuIGltcG9ydCB0aGUgbW9kdWxlcyBhbmQgZ2V0IHRoZQorYXR0cmlidXRlcyBhcyBuZWNlc3NhcnkuICBBcmJpdHJhcnkgZXhwcmVzc2lvbnMgYXJlIG5vdCBhbGxvd2VkIGluCit0aGF0IGNhc2UuCisiIiIKKworZGVmIGV2YWxfaW1wb3J0KHMpOgorICAgICIiIgorICAgIEltcG9ydCBhIG1vZHVsZSwgb3IgaW1wb3J0IGFuIG9iamVjdCBmcm9tIGEgbW9kdWxlLgorCisgICAgQSBtb2R1bGUgbmFtZSBsaWtlIGBgZm9vLmJhcjpiYXooKWBgIGNhbiBiZSB1c2VkLCB3aGVyZQorICAgIGBgZm9vLmJhcmBgIGlzIHRoZSBtb2R1bGUsIGFuZCBgYGJheigpYGAgaXMgYW4gZXhwcmVzc2lvbgorICAgIGV2YWx1YXRlZCBpbiB0aGUgY29udGV4dCBvZiB0aGF0IG1vZHVsZS4gIE5vdGUgdGhpcyBpcyBub3Qgc2FmZSBvbgorICAgIGFyYml0cmFyeSBzdHJpbmdzIGJlY2F1c2Ugb2YgdGhlIGV2YWwuCisgICAgIiIiCisgICAgaWYgJzonIG5vdCBpbiBzOgorICAgICAgICByZXR1cm4gc2ltcGxlX2ltcG9ydChzKQorICAgIG1vZHVsZV9uYW1lLCBleHByID0gcy5zcGxpdCgnOicsIDEpCisgICAgbW9kdWxlID0gaW1wb3J0X21vZHVsZShtb2R1bGVfbmFtZSkKKyAgICBvYmogPSBldmFsKGV4cHIsIG1vZHVsZS5fX2RpY3RfXykKKyAgICByZXR1cm4gb2JqCisKK2RlZiBzaW1wbGVfaW1wb3J0KHMpOgorICAgICIiIgorICAgIEltcG9ydCBhIG1vZHVsZSwgb3IgaW1wb3J0IGFuIG9iamVjdCBmcm9tIGEgbW9kdWxlLgorCisgICAgQSBuYW1lIGxpa2UgYGBmb28uYmFyLmJhemBgIGNhbiBiZSBhIG1vZHVsZSBgYGZvby5iYXIuYmF6YGAgb3IgYQorICAgIG1vZHVsZSBgYGZvby5iYXJgYCB3aXRoIGFuIG9iamVjdCBgYGJhemBgIGluIGl0LCBvciBhIG1vZHVsZQorICAgIGBgZm9vYGAgd2l0aCBhbiBvYmplY3QgYGBiYXJgYCB3aXRoIGFuIGF0dHJpYnV0ZSBgYGJhemBgLgorICAgICIiIgorICAgIHBhcnRzID0gcy5zcGxpdCgnLicpCisgICAgbW9kdWxlID0gaW1wb3J0X21vZHVsZShwYXJ0c1swXSkKKyAgICBuYW1lID0gcGFydHNbMF0KKyAgICBwYXJ0cyA9IHBhcnRzWzE6XQorICAgIGxhc3RfaW1wb3J0X2Vycm9yID0gTm9uZQorICAgIHdoaWxlIHBhcnRzOgorICAgICAgICBuYW1lICs9ICcuJyArIHBhcnRzWzBdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG1vZHVsZSA9IGltcG9ydF9tb2R1bGUobmFtZSkKKyAgICAgICAgICAgIHBhcnRzID0gcGFydHNbMTpdCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBlOgorICAgICAgICAgICAgbGFzdF9pbXBvcnRfZXJyb3IgPSBlCisgICAgICAgICAgICBicmVhaworICAgIG9iaiA9IG1vZHVsZQorICAgIHdoaWxlIHBhcnRzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBvYmogPSBnZXRhdHRyKG1vZHVsZSwgcGFydHNbMF0pCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKAorICAgICAgICAgICAgICAgICJDYW5ub3QgZmluZCAlcyBpbiBtb2R1bGUgJXIgKHN0b3BwZWQgaW1wb3J0aW5nIG1vZHVsZXMgd2l0aCBlcnJvciAlcykiICUgKHBhcnRzWzBdLCBtb2R1bGUsIGxhc3RfaW1wb3J0X2Vycm9yKSkKKyAgICAgICAgcGFydHMgPSBwYXJ0c1sxOl0KKyAgICByZXR1cm4gb2JqCisKK2RlZiBpbXBvcnRfbW9kdWxlKHMpOgorICAgICIiIgorICAgIEltcG9ydCBhIG1vZHVsZS4KKyAgICAiIiIKKyAgICBtb2QgPSBfX2ltcG9ydF9fKHMpCisgICAgcGFydHMgPSBzLnNwbGl0KCcuJykKKyAgICBmb3IgcGFydCBpbiBwYXJ0c1sxOl06CisgICAgICAgIG1vZCA9IGdldGF0dHIobW9kLCBwYXJ0KQorICAgIHJldHVybiBtb2QKKworZGVmIHRyeV9pbXBvcnRfbW9kdWxlKG1vZHVsZV9uYW1lKToKKyAgICAiIiIKKyAgICBJbXBvcnRzIGEgbW9kdWxlLCBidXQgY2F0Y2hlcyBpbXBvcnQgZXJyb3JzLiAgT25seSBjYXRjaGVzIGVycm9ycworICAgIHdoZW4gdGhhdCBtb2R1bGUgZG9lc24ndCBleGlzdDsgaWYgdGhhdCBtb2R1bGUgaXRzZWxmIGhhcyBhbgorICAgIGltcG9ydCBlcnJvciBpdCB3aWxsIHN0aWxsIGdldCByYWlzZWQuICBSZXR1cm5zIE5vbmUgaWYgdGhlIG1vZHVsZQorICAgIGRvZXNuJ3QgZXhpc3QuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gaW1wb3J0X21vZHVsZShtb2R1bGVfbmFtZSkKKyAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKKyAgICAgICAgaWYgbm90IGdldGF0dHIoZSwgJ2FyZ3MnLCBOb25lKToKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGRlc2MgPSBlLmFyZ3NbMF0KKyAgICAgICAgaWYgbm90IGRlc2Muc3RhcnRzd2l0aCgnTm8gbW9kdWxlIG5hbWVkICcpOgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZGVzYyA9IGRlc2NbbGVuKCdObyBtb2R1bGUgbmFtZWQgJyk6XQorICAgICAgICAjIElmIHlvdSBpbXBvcnQgZm9vLmJhci5iYXosIHRoZSBiYWQgaW1wb3J0IGNvdWxkIGJlIGFueQorICAgICAgICAjIG9mIGZvby5iYXIuYmF6LCBiYXIuYmF6LCBvciBiYXo7IHdlJ2xsIHRlc3QgdGhlbSBhbGw6CisgICAgICAgIHBhcnRzID0gbW9kdWxlX25hbWUuc3BsaXQoJy4nKQorICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4ocGFydHMpKToKKyAgICAgICAgICAgIGlmIGRlc2MgPT0gJy4nLmpvaW4ocGFydHNbaTpdKToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvaW50c2V0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvaW50c2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMDI2ZTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9pbnRzZXQucHkKQEAgLTAsMCArMSw1MTUgQEAKKyMgLSotIGNvZGluZzogaXNvLTg4NTktMTUgLSotCisiIiJJbW11dGFibGUgaW50ZWdlciBzZXQgdHlwZS4KKworSW50ZWdlciBzZXQgY2xhc3MuCisKK0NvcHlyaWdodCAoQykgMjAwNiwgSGVpa28gV3VuZHJhbS4KK1JlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4KKyIiIgoraW1wb3J0IHNpeAorCisjIFZlcnNpb24gaW5mb3JtYXRpb24KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorCitfX2F1dGhvcl9fID0gIkhlaWtvIFd1bmRyYW0gPG1lQG1vZGVsbmluZS5vcmc+IgorX192ZXJzaW9uX18gPSAiMC4yIgorX19yZXZpc2lvbl9fID0gIjYiCitfX2RhdGVfXyA9ICIyMDA2LTAxLTIwIgorCisKKyMgVXRpbGl0eSBjbGFzc2VzCisjIC0tLS0tLS0tLS0tLS0tLQorCitjbGFzcyBfSW5maW5pdHkob2JqZWN0KToKKyAgICAiIiJJbnRlcm5hbCB0eXBlIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5IHZhbHVlcy4iIiIKKworICAgIF9fc2xvdHNfXyA9IFsiX25lZyJdCisKKyAgICBkZWYgX19pbml0X18oc2VsZixuZWcpOgorICAgICAgICBzZWxmLl9uZWcgPSBuZWcKKworICAgIGRlZiBfX2x0X18oc2VsZix2YWx1ZSk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBfVkFMSURfVFlQRVMpOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIHJldHVybiAoIHNlbGYuX25lZyBhbmQKKyAgICAgICAgICAgICAgICAgbm90ICggaXNpbnN0YW5jZSh2YWx1ZSxfSW5maW5pdHkpIGFuZCB2YWx1ZS5fbmVnICkgKQorCisgICAgZGVmIF9fbGVfXyhzZWxmLHZhbHVlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIF9WQUxJRF9UWVBFUyk6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgcmV0dXJuIHNlbGYuX25lZworCisgICAgZGVmIF9fZ3RfXyhzZWxmLHZhbHVlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIF9WQUxJRF9UWVBFUyk6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgcmV0dXJuIG5vdCAoIHNlbGYuX25lZyBvcgorICAgICAgICAgICAgICAgICAgICAgKCBpc2luc3RhbmNlKHZhbHVlLF9JbmZpbml0eSkgYW5kIG5vdCB2YWx1ZS5fbmVnICkgKQorCisgICAgZGVmIF9fZ2VfXyhzZWxmLHZhbHVlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIF9WQUxJRF9UWVBFUyk6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9uZWcKKworICAgIGRlZiBfX2VxX18oc2VsZix2YWx1ZSk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBfVkFMSURfVFlQRVMpOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKHZhbHVlLF9JbmZpbml0eSkgYW5kIHNlbGYuX25lZyA9PSB2YWx1ZS5fbmVnCisKKyAgICBkZWYgX19uZV9fKHNlbGYsdmFsdWUpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgX1ZBTElEX1RZUEVTKToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICByZXR1cm4gbm90IGlzaW5zdGFuY2UodmFsdWUsX0luZmluaXR5KSBvciBzZWxmLl9uZWcgIT0gdmFsdWUuX25lZworCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIk5vbmUiCisKK19WQUxJRF9UWVBFUyA9IHNpeC5pbnRlZ2VyX3R5cGVzICsgKF9JbmZpbml0eSwpCisKKworCisjIENvbnN0YW50cworIyAtLS0tLS0tLS0KKworX01JTklORiA9IF9JbmZpbml0eShUcnVlKQorX01BWElORiA9IF9JbmZpbml0eShGYWxzZSkKKworCisjIEludGVnZXIgc2V0IGNsYXNzCisjIC0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIEludFNldChvYmplY3QpOgorICAgICIiIkludGVnZXIgc2V0IGNsYXNzIHdpdGggZWZmaWNpZW50IHN0b3JhZ2UgaW4gYSBSTEUgZm9ybWF0IG9mIHJhbmdlcy4KKyAgICBTdXBwb3J0cyBtaW51cyBhbmQgcGx1cyBpbmZpbml0eSBpbiB0aGUgcmFuZ2UuIiIiCisKKyAgICBfX3Nsb3RzX18gPSBbIl9yYW5nZXMiLCJfbWluIiwiX21heCIsIl9oYXNoIl0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCphcmdzLCoqa3dhcmdzKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZSBhbiBpbnRlZ2VyIHNldC4gVGhlIGNvbnN0cnVjdG9yIGFjY2VwdHMgYW4gdW5saW1pdGVkCisgICAgICAgIG51bWJlciBvZiBhcmd1bWVudHMgdGhhdCBtYXkgZWl0aGVyIGJlIHR1cGxlcyBpbiB0aGUgZm9ybSBvZgorICAgICAgICAoc3RhcnQsc3RvcCkgd2hlcmUgZWl0aGVyIHN0YXJ0IG9yIHN0b3AgbWF5IGJlIGEgbnVtYmVyIG9yIE5vbmUgdG8KKyAgICAgICAgcmVwcmVzZW50IG1heGltdW0vbWluaW11bSBpbiB0aGF0IGRpcmVjdGlvbi4gVGhlIHJhbmdlIHNwZWNpZmllZCBieQorICAgICAgICAoc3RhcnQsc3RvcCkgaXMgYWx3YXlzIGluY2x1c2l2ZSAoZGlmZmVyaW5nIGZyb20gdGhlIGJ1aWx0aW4gcmFuZ2UKKyAgICAgICAgb3BlcmF0b3IpLgorCisgICAgICAgIEtleXdvcmQgYXJndW1lbnRzIHRoYXQgY2FuIGJlIHBhc3NlZCB0byBhbiBpbnRlZ2VyIHNldCBhcmUgbWluIGFuZAorICAgICAgICBtYXgsIHdoaWNoIHNwZWNpZnkgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIGluIHRoZSBzZXQsCisgICAgICAgIHJlc3BlY3RpdmVseS4gWW91IGNhbiBhbHNvIHBhc3MgTm9uZSBoZXJlIHRvIHJlcHJlc2VudCBtaW51cyBvciBwbHVzCisgICAgICAgIGluZmluaXR5LCB3aGljaCBpcyBhbHNvIHRoZSBkZWZhdWx0LgorICAgICAgICAiIiIKKworICAgICAgICAjIFNwZWNpYWwgY2FzZSBjb3B5IGNvbnN0cnVjdG9yLgorICAgICAgICBpZiBsZW4oYXJncykgPT0gMSBhbmQgaXNpbnN0YW5jZShhcmdzWzBdLEludFNldCk6CisgICAgICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8ga2V5d29yZCBhcmd1bWVudHMgZm9yIGNvcHkgY29uc3RydWN0b3IuIikKKyAgICAgICAgICAgIHNlbGYuX21pbiA9IGFyZ3NbMF0uX21pbgorICAgICAgICAgICAgc2VsZi5fbWF4ID0gYXJnc1swXS5fbWF4CisgICAgICAgICAgICBzZWxmLl9yYW5nZXMgPSBhcmdzWzBdLl9yYW5nZXMKKyAgICAgICAgICAgIHNlbGYuX2hhc2ggPSBhcmdzWzBdLl9oYXNoCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIEluaXRpYWxpemUgc2V0LgorICAgICAgICBzZWxmLl9yYW5nZXMgPSBbXQorCisgICAgICAgICMgUHJvY2VzcyBrZXl3b3JkIGFyZ3VtZW50cy4KKyAgICAgICAgc2VsZi5fbWluID0ga3dhcmdzLnBvcCgibWluIixfTUlOSU5GKQorICAgICAgICBzZWxmLl9tYXggPSBrd2FyZ3MucG9wKCJtYXgiLF9NQVhJTkYpCisgICAgICAgIGlmIHNlbGYuX21pbiBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fbWluID0gX01JTklORgorICAgICAgICBpZiBzZWxmLl9tYXggaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX21heCA9IF9NQVhJTkYKKworICAgICAgICAjIENoZWNrIGtleXdvcmQgYXJndW1lbnRzLgorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIGtleXdvcmQgYXJndW1lbnQuIikKKyAgICAgICAgaWYgbm90ICggaXNpbnN0YW5jZShzZWxmLl9taW4sIHNpeC5pbnRlZ2VyX3R5cGVzKSBvciBzZWxmLl9taW4gaXMgX01JTklORiApOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJJbnZhbGlkIHR5cGUgb2YgbWluIGFyZ3VtZW50LiIpCisgICAgICAgIGlmIG5vdCAoIGlzaW5zdGFuY2Uoc2VsZi5fbWF4LCBzaXguaW50ZWdlcl90eXBlcykgb3Igc2VsZi5fbWF4IGlzIF9NQVhJTkYgKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiSW52YWxpZCB0eXBlIG9mIG1heCBhcmd1bWVudC4iKQorICAgICAgICBpZiAoIHNlbGYuX21pbiBpcyBub3QgX01JTklORiBhbmQgc2VsZi5fbWF4IGlzIG5vdCBfTUFYSU5GIGFuZAorICAgICAgICAgICAgIHNlbGYuX21pbiA+IHNlbGYuX21heCApOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWluaW11bSBpcyBub3Qgc21hbGxlciB0aGFuIG1heGltdW0uIikKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLl9tYXgsIHNpeC5pbnRlZ2VyX3R5cGVzKToKKyAgICAgICAgICAgIHNlbGYuX21heCArPSAxCisKKyAgICAgICAgIyBQcm9jZXNzIGFyZ3VtZW50cy4KKyAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhcmcsIHNpeC5pbnRlZ2VyX3R5cGVzKToKKyAgICAgICAgICAgICAgICBzdGFydCwgc3RvcCA9IGFyZywgYXJnKzEKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShhcmcsdHVwbGUpOgorICAgICAgICAgICAgICAgIGlmIGxlbihhcmcpICE9IDI6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgdHVwbGUsIG11c3QgYmUgKHN0YXJ0LHN0b3ApLiIpCisKKyAgICAgICAgICAgICAgICAjIFByb2Nlc3MgYXJndW1lbnQuCisgICAgICAgICAgICAgICAgc3RhcnQsIHN0b3AgPSBhcmcKKyAgICAgICAgICAgICAgICBpZiBzdGFydCBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHNlbGYuX21pbgorICAgICAgICAgICAgICAgIGlmIHN0b3AgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc3RvcCA9IHNlbGYuX21heAorCisgICAgICAgICAgICAgICAgIyBDaGVjayBhcmd1bWVudHMuCisgICAgICAgICAgICAgICAgaWYgbm90ICggaXNpbnN0YW5jZShzdGFydCwgc2l4LmludGVnZXJfdHlwZXMpIG9yIHN0YXJ0IGlzIF9NSU5JTkYgKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJJbnZhbGlkIHR5cGUgb2YgdHVwbGUgc3RhcnQuIikKKyAgICAgICAgICAgICAgICBpZiBub3QgKCBpc2luc3RhbmNlKHN0b3AsIHNpeC5pbnRlZ2VyX3R5cGVzKSBvciBzdG9wIGlzIF9NQVhJTkYgKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJJbnZhbGlkIHR5cGUgb2YgdHVwbGUgc3RvcC4iKQorICAgICAgICAgICAgICAgIGlmICggc3RhcnQgaXMgbm90IF9NSU5JTkYgYW5kIHN0b3AgaXMgbm90IF9NQVhJTkYgYW5kCisgICAgICAgICAgICAgICAgICAgICBzdGFydCA+IHN0b3AgKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHN0b3AsIHNpeC5pbnRlZ2VyX3R5cGVzKToKKyAgICAgICAgICAgICAgICAgICAgc3RvcCArPSAxCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiSW52YWxpZCBhcmd1bWVudC4iKQorCisgICAgICAgICAgICBpZiBzdGFydCA+IHNlbGYuX21heDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBzdGFydCA8IHNlbGYuX21pbjoKKyAgICAgICAgICAgICAgICBzdGFydCA9IHNlbGYuX21pbgorICAgICAgICAgICAgaWYgc3RvcCA8IHNlbGYuX21pbjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBzdG9wID4gc2VsZi5fbWF4OgorICAgICAgICAgICAgICAgIHN0b3AgPSBzZWxmLl9tYXgKKyAgICAgICAgICAgIHNlbGYuX3Jhbmdlcy5hcHBlbmQoKHN0YXJ0LHN0b3ApKQorCisgICAgICAgICMgTm9ybWFsaXplIHNldC4KKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKworICAgICMgVXRpbGl0eSBmdW5jdGlvbnMgZm9yIHNldCBvcGVyYXRpb25zCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiBfaXRlcnJhbmdlcyhzZWxmLHIxLHIyLG1pbnZhbD1fTUlOSU5GLG1heHZhbD1fTUFYSU5GKToKKyAgICAgICAgY3VydmFsID0gbWludmFsCisgICAgICAgIGN1cnN0YXRlcyA9IHsicjEiOkZhbHNlLCJyMiI6RmFsc2V9CisgICAgICAgIGltYXgsIGptYXggPSAyKmxlbihyMSksIDIqbGVuKHIyKQorICAgICAgICBpLCBqID0gMCwgMAorICAgICAgICB3aGlsZSBpIDwgaW1heCBvciBqIDwgam1heDoKKyAgICAgICAgICAgIGlmIGkgPCBpbWF4IGFuZCAoICggaiA8IGptYXggYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIxW2k+PjFdW2kmMV0gPCByMltqPj4xXVtqJjFdICkgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGogPT0gam1heCApOgorICAgICAgICAgICAgICAgIGN1cl9yLCBuZXduYW1lLCBuZXdzdGF0ZSA9IHIxW2k+PjFdW2kmMV0sICJyMSIsIG5vdCAoaSYxKQorICAgICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjdXJfciwgbmV3bmFtZSwgbmV3c3RhdGUgPSByMltqPj4xXVtqJjFdLCAicjIiLCBub3QgKGomMSkKKyAgICAgICAgICAgICAgICBqICs9IDEKKyAgICAgICAgICAgIGlmIGN1cnZhbCA8IGN1cl9yOgorICAgICAgICAgICAgICAgIGlmIGN1cl9yID4gbWF4dmFsOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIHlpZWxkIGN1cnN0YXRlcywgKGN1cnZhbCxjdXJfcikKKyAgICAgICAgICAgICAgICBjdXJ2YWwgPSBjdXJfcgorICAgICAgICAgICAgY3Vyc3RhdGVzW25ld25hbWVdID0gbmV3c3RhdGUKKyAgICAgICAgaWYgY3VydmFsIDwgbWF4dmFsOgorICAgICAgICAgICAgeWllbGQgY3Vyc3RhdGVzLCAoY3VydmFsLG1heHZhbCkKKworICAgIGRlZiBfbm9ybWFsaXplKHNlbGYpOgorICAgICAgICBzZWxmLl9yYW5nZXMuc29ydCgpCisgICAgICAgIGkgPSAxCisgICAgICAgIHdoaWxlIGkgPCBsZW4oc2VsZi5fcmFuZ2VzKToKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jhbmdlc1tpXVswXSA8IHNlbGYuX3Jhbmdlc1tpLTFdWzFdOgorICAgICAgICAgICAgICAgIHNlbGYuX3Jhbmdlc1tpLTFdID0gKHNlbGYuX3Jhbmdlc1tpLTFdWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heChzZWxmLl9yYW5nZXNbaS0xXVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmFuZ2VzW2ldWzFdKSkKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5fcmFuZ2VzW2ldCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICBzZWxmLl9yYW5nZXMgPSB0dXBsZShzZWxmLl9yYW5nZXMpCisgICAgICAgIHNlbGYuX2hhc2ggPSBoYXNoKHNlbGYuX3JhbmdlcykKKworICAgIGRlZiBfX2NvZXJjZV9fKHNlbGYsb3RoZXIpOgorICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLEludFNldCk6CisgICAgICAgICAgICByZXR1cm4gc2VsZiwgb3RoZXIKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKG90aGVyLCBzaXguaW50ZWdlcl90eXBlcyArICh0dXBsZSwpKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZiwgc2VsZi5fX2NsYXNzX18ob3RoZXIpCisgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgICMgQ2F0Y2ggYSB0eXBlIGVycm9yLCBpbiB0aGF0IGNhc2UgdGhlIHN0cnVjdHVyZSBzcGVjaWZpZWQgYnkKKyAgICAgICAgICAgICAgICAjIG90aGVyIGlzIHNvbWV0aGluZyB3ZSBjYW4ndCBjb2VyY2UsIHJldHVybiBOb3RJbXBsZW1lbnRlZC4KKyAgICAgICAgICAgICAgICAjIFZhbHVlRXJyb3JzIGFyZSBub3QgY2F1Z2h0LCB0aGV5IHNpZ25hbCB0aGF0IHRoZSBkYXRhIHdhcworICAgICAgICAgICAgICAgICMgaW52YWxpZCBmb3IgdGhlIGNvbnN0cnVjdG9yLiBUaGlzIGlzIGFwcHJvcHJpYXRlIHRvIHNpZ25hbAorICAgICAgICAgICAgICAgICMgYXMgYSBWYWx1ZUVycm9yIHRvIHRoZSBjYWxsZXIuCisgICAgICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvdGhlcixsaXN0KToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZiwgc2VsZi5fX2NsYXNzX18oKm90aGVyKQorICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICAgICAjIFNlZSBhYm92ZS4KKyAgICAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICAjIFNldCBmdW5jdGlvbiBkZWZpbml0aW9ucworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBkZWYgX21ha2VfZnVuY3Rpb24obmFtZSx0eXBlLGRvYyxwYWxsLHBhbnk9Tm9uZSk6CisgICAgICAgICIiIk1ha2VzIGEgZnVuY3Rpb24gdG8gbWF0Y2ggdHdvIHJhbmdlcy4gQWNjZXB0cyB0d28gdHlwZXM6IGVpdGhlcgorICAgICAgICAnc2V0Jywgd2hpY2ggZGVmaW5lcyBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYSBzZXQgd2l0aCBhbGwgcmFuZ2VzCisgICAgICAgIG1hdGNoaW5nIHBhbGwgKHBhbnkgaXMgaWdub3JlZCksIG9yICdib29sJywgd2hpY2ggcmV0dXJucyBUcnVlIGlmIHBhbGwKKyAgICAgICAgbWF0Y2hlcyBmb3IgYWxsIHJhbmdlcyBhbmQgcGFueSBtYXRjaGVzIGZvciBhbnkgb25lIHJhbmdlLiBkb2MgaXMgdGhlCisgICAgICAgIGRvc3RyaW5nIHRvIGdpdmUgdGhpcyBmdW5jdGlvbi4gcGFueSBtYXkgYmUgbm9uZSB0byBpZ25vcmUgdGhlIGFueQorICAgICAgICBtYXRjaC4KKworICAgICAgICBUaGUgcHJlZGljYXRlcyBnZXQgYSBkaWN0IHdpdGggdHdvIGtleXMsICdyMScsICdyMicsIHdoaWNoIGRlbm90ZQorICAgICAgICB3aGV0aGVyIHRoZSBjdXJyZW50IHJhbmdlIGlzIHByZXNlbnQgaW4gcmFuZ2UxIChzZWxmKSBhbmQvb3IgcmFuZ2UyCisgICAgICAgIChvdGhlcikgb3Igbm9uZSBvZiB0aGUgdHdvLCByZXNwZWN0aXZlbHkuIiIiCisKKyAgICAgICAgaWYgdHlwZSA9PSAic2V0IjoKKyAgICAgICAgICAgIGRlZiBmKHNlbGYsb3RoZXIpOgorICAgICAgICAgICAgICAgIGNvZXJjZWQgPSBzZWxmLl9fY29lcmNlX18ob3RoZXIpCisgICAgICAgICAgICAgICAgaWYgY29lcmNlZCBpcyBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgICAgICAgICAgb3RoZXIgPSBjb2VyY2VkWzFdCisgICAgICAgICAgICAgICAgbmV3c2V0ID0gc2VsZi5fX2NsYXNzX18uX19uZXdfXyhzZWxmLl9fY2xhc3NfXykKKyAgICAgICAgICAgICAgICBuZXdzZXQuX21pbiA9IG1pbihzZWxmLl9taW4sb3RoZXIuX21pbikKKyAgICAgICAgICAgICAgICBuZXdzZXQuX21heCA9IG1heChzZWxmLl9tYXgsb3RoZXIuX21heCkKKyAgICAgICAgICAgICAgICBuZXdzZXQuX3JhbmdlcyA9IFtdCisgICAgICAgICAgICAgICAgZm9yIHN0YXRlcywgKHN0YXJ0LHN0b3ApIGluIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2l0ZXJyYW5nZXMoc2VsZi5fcmFuZ2VzLG90aGVyLl9yYW5nZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3NldC5fbWluLG5ld3NldC5fbWF4KToKKyAgICAgICAgICAgICAgICAgICAgaWYgcGFsbChzdGF0ZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmV3c2V0Ll9yYW5nZXMgYW5kIG5ld3NldC5fcmFuZ2VzWy0xXVsxXSA9PSBzdGFydDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdzZXQuX3Jhbmdlc1stMV0gPSAobmV3c2V0Ll9yYW5nZXNbLTFdWzBdLHN0b3ApCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3NldC5fcmFuZ2VzLmFwcGVuZCgoc3RhcnQsc3RvcCkpCisgICAgICAgICAgICAgICAgbmV3c2V0Ll9yYW5nZXMgPSB0dXBsZShuZXdzZXQuX3JhbmdlcykKKyAgICAgICAgICAgICAgICBuZXdzZXQuX2hhc2ggPSBoYXNoKHNlbGYuX3JhbmdlcykKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3c2V0CisgICAgICAgIGVsaWYgdHlwZSA9PSAiYm9vbCI6CisgICAgICAgICAgICBkZWYgZihzZWxmLG90aGVyKToKKyAgICAgICAgICAgICAgICBjb2VyY2VkID0gc2VsZi5fX2NvZXJjZV9fKG90aGVyKQorICAgICAgICAgICAgICAgIGlmIGNvZXJjZWQgaXMgTm90SW1wbGVtZW50ZWQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgIG90aGVyID0gY29lcmNlZFsxXQorICAgICAgICAgICAgICAgIF9taW4gPSBtaW4oc2VsZi5fbWluLG90aGVyLl9taW4pCisgICAgICAgICAgICAgICAgX21heCA9IG1heChzZWxmLl9tYXgsb3RoZXIuX21heCkKKyAgICAgICAgICAgICAgICBmb3VuZCA9IG5vdCBwYW55CisgICAgICAgICAgICAgICAgZm9yIHN0YXRlcywgKHN0YXJ0LHN0b3ApIGluIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2l0ZXJyYW5nZXMoc2VsZi5fcmFuZ2VzLG90aGVyLl9yYW5nZXMsX21pbixfbWF4KToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHBhbGwoc3RhdGVzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZvdW5kIG9yIHBhbnkoc3RhdGVzKQorICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCB0eXBlIG9mIGZ1bmN0aW9uIHRvIGNyZWF0ZS4iKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmLmZ1bmNfbmFtZSA9IG5hbWUKKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZi5mdW5jX2RvYyA9IGRvYworICAgICAgICByZXR1cm4gZgorCisgICAgIyBJbnRlcnNlY3Rpb24uCisgICAgX19hbmRfXyA9IF9tYWtlX2Z1bmN0aW9uKCJfX2FuZF9fIiwic2V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludGVyc2VjdGlvbiBvZiB0d28gc2V0cyBhcyBhIG5ldyBzZXQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHM6IHNbInIxIl0gYW5kIHNbInIyIl0pCisgICAgX19yYW5kX18gPSBfbWFrZV9mdW5jdGlvbigiX19yYW5kX18iLCJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludGVyc2VjdGlvbiBvZiB0d28gc2V0cyBhcyBhIG5ldyBzZXQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMSJdIGFuZCBzWyJyMiJdKQorICAgIGludGVyc2VjdGlvbiA9IF9tYWtlX2Z1bmN0aW9uKCJpbnRlcnNlY3Rpb24iLCJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlcnNlY3Rpb24gb2YgdHdvIHNldHMgYXMgYSBuZXcgc2V0LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHM6IHNbInIxIl0gYW5kIHNbInIyIl0pCisKKyAgICAjIFVuaW9uLgorICAgIF9fb3JfXyA9IF9tYWtlX2Z1bmN0aW9uKCJfX29yX18iLCJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmlvbiBvZiB0d28gc2V0cyBhcyBhIG5ldyBzZXQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogc1sicjEiXSBvciBzWyJyMiJdKQorICAgIF9fcm9yX18gPSBfbWFrZV9mdW5jdGlvbigiX19yb3JfXyIsInNldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmlvbiBvZiB0d28gc2V0cyBhcyBhIG5ldyBzZXQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHM6IHNbInIxIl0gb3Igc1sicjIiXSkKKyAgICB1bmlvbiA9IF9tYWtlX2Z1bmN0aW9uKCJ1bmlvbiIsInNldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5pb24gb2YgdHdvIHNldHMgYXMgYSBuZXcgc2V0LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogc1sicjEiXSBvciBzWyJyMiJdKQorCisgICAgIyBEaWZmZXJlbmNlLgorICAgIF9fc3ViX18gPSBfbWFrZV9mdW5jdGlvbigiX19zdWJfXyIsInNldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEaWZmZXJlbmNlIG9mIHR3byBzZXRzIGFzIGEgbmV3IHNldC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogc1sicjEiXSBhbmQgbm90IHNbInIyIl0pCisgICAgX19yc3ViX18gPSBfbWFrZV9mdW5jdGlvbigiX19yc3ViX18iLCJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpZmZlcmVuY2Ugb2YgdHdvIHNldHMgYXMgYSBuZXcgc2V0LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogc1sicjIiXSBhbmQgbm90IHNbInIxIl0pCisgICAgZGlmZmVyZW5jZSA9IF9tYWtlX2Z1bmN0aW9uKCJkaWZmZXJlbmNlIiwic2V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpZmZlcmVuY2Ugb2YgdHdvIHNldHMgYXMgYSBuZXcgc2V0LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMSJdIGFuZCBub3Qgc1sicjIiXSkKKworICAgICMgU3ltbWV0cmljIGRpZmZlcmVuY2UuCisgICAgX194b3JfXyA9IF9tYWtlX2Z1bmN0aW9uKCJfX3hvcl9fIiwic2V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bW1ldHJpYyBkaWZmZXJlbmNlIG9mIHR3byBzZXRzIGFzIGEgbmV3IHNldC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogc1sicjEiXSBeIHNbInIyIl0pCisgICAgX19yeG9yX18gPSBfbWFrZV9mdW5jdGlvbigiX19yeG9yX18iLCJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bW1ldHJpYyBkaWZmZXJlbmNlIG9mIHR3byBzZXRzIGFzIGEgbmV3IHNldC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHM6IHNbInIxIl0gXiBzWyJyMiJdKQorICAgIHN5bW1ldHJpY19kaWZmZXJlbmNlID0gX21ha2VfZnVuY3Rpb24oInN5bW1ldHJpY19kaWZmZXJlbmNlIiwic2V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTeW1tZXRyaWMgZGlmZmVyZW5jZSBvZiB0d28gc2V0cyBhcyBhIG5ldyBzZXQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMSJdIF4gc1sicjIiXSkKKworICAgICMgQ29udGFpbmVyc2hpcCB0ZXN0aW5nLgorICAgIF9fY29udGFpbnNfXyA9IF9tYWtlX2Z1bmN0aW9uKCJfX2NvbnRhaW5zX18iLCJib29sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmV0dXJucyB0cnVlIGlmIHNlbGYgaXMgc3VwZXJzZXQgb2Ygb3RoZXIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogc1sicjEiXSBvciBub3Qgc1sicjIiXSkKKyAgICBpc3N1YnNldCA9IF9tYWtlX2Z1bmN0aW9uKCJpc3N1YnNldCIsImJvb2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJldHVybnMgdHJ1ZSBpZiBzZWxmIGlzIHN1YnNldCBvZiBvdGhlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHM6IHNbInIyIl0gb3Igbm90IHNbInIxIl0pCisgICAgaXN0cnVlc3Vic2V0ID0gX21ha2VfZnVuY3Rpb24oImlzdHJ1ZXN1YnNldCIsImJvb2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXR1cm5zIHRydWUgaWYgc2VsZiBpcyB0cnVlIHN1YnNldCBvZiBvdGhlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMiJdIG9yIG5vdCBzWyJyMSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMiJdIGFuZCBub3Qgc1sicjEiXSkKKyAgICBpc3N1cGVyc2V0ID0gX21ha2VfZnVuY3Rpb24oImlzc3VwZXJzZXQiLCJib29sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJldHVybnMgdHJ1ZSBpZiBzZWxmIGlzIHN1cGVyc2V0IG9mIG90aGVyLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMSJdIG9yIG5vdCBzWyJyMiJdKQorICAgIGlzdHJ1ZXN1cGVyc2V0ID0gX21ha2VfZnVuY3Rpb24oImlzdHJ1ZXN1cGVyc2V0IiwiYm9vbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmV0dXJucyB0cnVlIGlmIHNlbGYgaXMgdHJ1ZSBzdXBlcnNldCBvZiBvdGhlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHM6IHNbInIxIl0gb3Igbm90IHNbInIyIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogc1sicjEiXSBhbmQgbm90IHNbInIyIl0pCisgICAgb3ZlcmxhcHMgPSBfbWFrZV9mdW5jdGlvbigib3ZlcmxhcHMiLCJib29sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXR1cm5zIHRydWUgaWYgc2VsZiBvdmVybGFwcyB3aXRoIG90aGVyLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMSJdIGFuZCBzWyJyMiJdKQorCisgICAgIyBDb21wYXJpc29uLgorICAgIF9fZXFfXyA9IF9tYWtlX2Z1bmN0aW9uKCJfX2VxX18iLCJib29sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmV0dXJucyB0cnVlIGlmIHNlbGYgaXMgZXF1YWwgdG8gb3RoZXIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgczogbm90ICggc1sicjEiXSBeIHNbInIyIl0gKSkKKyAgICBfX25lX18gPSBfbWFrZV9mdW5jdGlvbigiX19uZV9fIiwiYm9vbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJldHVybnMgdHJ1ZSBpZiBzZWxmIGlzIGRpZmZlcmVudCB0byBvdGhlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzOiBzWyJyMSJdIF4gc1sicjIiXSkKKworICAgICMgQ2xlYW4gdXAgbmFtZXNwYWNlLgorICAgIGRlbCBfbWFrZV9mdW5jdGlvbgorCisgICAgIyBEZWZpbmUgb3RoZXIgZnVuY3Rpb25zLgorICAgIGRlZiBpbnZlcnNlKHNlbGYpOgorICAgICAgICAiIiJJbnZlcnNlIG9mIHNldCBhcyBhIG5ldyBzZXQuIiIiCisKKyAgICAgICAgbmV3c2V0ID0gc2VsZi5fX2NsYXNzX18uX19uZXdfXyhzZWxmLl9fY2xhc3NfXykKKyAgICAgICAgbmV3c2V0Ll9taW4gPSBzZWxmLl9taW4KKyAgICAgICAgbmV3c2V0Ll9tYXggPSBzZWxmLl9tYXgKKyAgICAgICAgbmV3c2V0Ll9yYW5nZXMgPSBbXQorICAgICAgICBsYXN0c3RvcCA9IHNlbGYuX21pbgorICAgICAgICBmb3IgciBpbiBzZWxmLl9yYW5nZXM6CisgICAgICAgICAgICBpZiBsYXN0c3RvcCA8IHJbMF06CisgICAgICAgICAgICAgICAgbmV3c2V0Ll9yYW5nZXMuYXBwZW5kKChsYXN0c3RvcCxyWzBdKSkKKyAgICAgICAgICAgICAgICBsYXN0c3RvcCA9IHJbMV0KKyAgICAgICAgaWYgbGFzdHN0b3AgPCBzZWxmLl9tYXg6CisgICAgICAgICAgICBuZXdzZXQuX3Jhbmdlcy5hcHBlbmQoKGxhc3RzdG9wLHNlbGYuX21heCkpCisgICAgICAgIHJldHVybiBuZXdzZXQKKworICAgIF9faW52ZXJ0X18gPSBpbnZlcnNlCisKKyAgICAjIEhhc2hpbmcKKyAgICAjIC0tLS0tLS0KKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGhhc2ggdmFsdWUgcmVwcmVzZW50aW5nIHRoaXMgaW50ZWdlciBzZXQuIEFzIHRoZSBzZXQgaXMKKyAgICAgICAgYWx3YXlzIHN0b3JlZCBub3JtYWxpemVkLCB0aGUgaGFzaCB2YWx1ZSBpcyBndWFyYW50ZWVkIHRvIG1hdGNoIGZvcgorICAgICAgICBtYXRjaGluZyByYW5nZXMuIiIiCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hhc2gKKworICAgICMgSXRlcmF0aW5nCisgICAgIyAtLS0tLS0tLS0KKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICAiIiJHZXQgbGVuZ3RoIG9mIHRoaXMgaW50ZWdlciBzZXQuIEluIGNhc2UgdGhlIGxlbmd0aCBpcyBsYXJnZXIgdGhhbgorICAgICAgICAyKiozMSAoaW5jbHVkaW5nIGluZmluaXRlbHkgc2l6ZWQgaW50ZWdlciBzZXRzKSwgaXQgcmFpc2VzIGFuCisgICAgICAgIE92ZXJmbG93RXJyb3IuIFRoaXMgaXMgZHVlIHRvIGxlbigpIHJlc3RyaWN0aW5nIHRoZSBzaXplIHRvCisgICAgICAgIDAgPD0gbGVuIDwgMioqMzEuIiIiCisKKyAgICAgICAgaWYgbm90IHNlbGYuX3JhbmdlczoKKyAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgIGlmIHNlbGYuX3Jhbmdlc1swXVswXSBpcyBfTUlOSU5GIG9yIHNlbGYuX3Jhbmdlc1stMV1bMV0gaXMgX01BWElORjoKKyAgICAgICAgICAgIHJhaXNlIE92ZXJmbG93RXJyb3IoIkluZmluaXRlbHkgc2l6ZWQgaW50ZWdlciBzZXQuIikKKyAgICAgICAgcmxlbiA9IDAKKyAgICAgICAgZm9yIHIgaW4gc2VsZi5fcmFuZ2VzOgorICAgICAgICAgICAgcmxlbiArPSByWzFdLXJbMF0KKyAgICAgICAgaWYgcmxlbiA+PSAyKiozMToKKyAgICAgICAgICAgIHJhaXNlIE92ZXJmbG93RXJyb3IoIkludGVnZXIgc2V0IGJpZ2dlciB0aGFuIDIqKjMxLiIpCisgICAgICAgIHJldHVybiBybGVuCisKKyAgICBkZWYgbGVuKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhpcyBpbnRlZ2VyIHNldCBhcyBhbiBpbnRlZ2VyLiBJbiBjYXNlIHRoZQorICAgICAgICBsZW5ndGggaXMgaW5maW5pdGUsIHJldHVybnMgLTEuIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGJlY2F1c2Ugb2YgYQorICAgICAgICBsaW1pdGF0aW9uIG9mIHRoZSBidWlsdGluIGxlbigpIGZ1bmN0aW9uIHdoaWNoIGV4cGVjdHMgdmFsdWVzIGluCisgICAgICAgIHRoZSByYW5nZSAwIDw9IGxlbiA8IDIqKjMxLiBVc2UgdGhpcyBmdW5jdGlvbiBpbiBjYXNlIHlvdXIgaW50ZWdlcgorICAgICAgICBzZXQgbWlnaHQgYmUgbGFyZ2VyLiIiIgorCisgICAgICAgIGlmIG5vdCBzZWxmLl9yYW5nZXM6CisgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICBpZiBzZWxmLl9yYW5nZXNbMF1bMF0gaXMgX01JTklORiBvciBzZWxmLl9yYW5nZXNbLTFdWzFdIGlzIF9NQVhJTkY6CisgICAgICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgcmxlbiA9IDAKKyAgICAgICAgZm9yIHIgaW4gc2VsZi5fcmFuZ2VzOgorICAgICAgICAgICAgcmxlbiArPSByWzFdLXJbMF0KKyAgICAgICAgcmV0dXJuIHJsZW4KKworICAgIGRlZiBfX25vbnplcm9fXyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyB0cnVlIGlmIHRoaXMgaW50ZWdlciBzZXQgY29udGFpbnMgYXQgbGVhc3Qgb25lIGl0ZW0uIiIiCisKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fcmFuZ2VzKQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAiIiJJdGVyYXRlIG92ZXIgYWxsIHZhbHVlcyBpbiB0aGlzIGludGVnZXIgc2V0LiBJdGVyYXRpb24gYWx3YXlzIHN0YXJ0cworICAgICAgICBieSBpdGVyYXRpbmcgZnJvbSBsb3dlc3QgdG8gaGlnaGVzdCBvdmVyIHRoZSByYW5nZXMgdGhhdCBhcmUgYm91bmRlZC4KKyAgICAgICAgQWZ0ZXIgcHJvY2Vzc2luZyB0aGVzZSwgYWxsIHJhbmdlcyB0aGF0IGFyZSB1bmJvdW5kZWQgKG1heGltdW0gMikgYXJlCisgICAgICAgIHlpZWxkZWQgaW50ZXJtaXhlZC4iIiIKKworICAgICAgICB1YnJhbmdlcyA9IFtdCisgICAgICAgIGZvciByIGluIHNlbGYuX3JhbmdlczoKKyAgICAgICAgICAgIGlmIHJbMF0gaXMgX01JTklORjoKKyAgICAgICAgICAgICAgICBpZiByWzFdIGlzIF9NQVhJTkY6CisgICAgICAgICAgICAgICAgICAgIHVicmFuZ2VzLmV4dGVuZCgoWzAsMV0sWy0xLC0xXSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdWJyYW5nZXMuYXBwZW5kKFtyWzFdLTEsLTFdKQorICAgICAgICAgICAgZWxpZiByWzFdIGlzIF9NQVhJTkY6CisgICAgICAgICAgICAgICAgdWJyYW5nZXMuYXBwZW5kKFtyWzBdLDFdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmb3IgdmFsIGluIHhyYW5nZShyWzBdLHJbMV0pOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCB2YWwKKyAgICAgICAgaWYgdWJyYW5nZXM6CisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIGZvciB1YnJhbmdlIGluIHVicmFuZ2VzOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCB1YnJhbmdlWzBdCisgICAgICAgICAgICAgICAgICAgIHVicmFuZ2VbMF0gKz0gdWJyYW5nZVsxXQorCisgICAgIyBQcmludGluZworICAgICMgLS0tLS0tLS0KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBpbnRlZ2VyIHNldC4gVGhlIHJlcHJlc2VudGF0aW9uIGlzCisgICAgICAgIGV4ZWN1dGFibGUgdG8gZ2V0IGFuIGVxdWFsIGludGVnZXIgc2V0LiIiIgorCisgICAgICAgIHJ2ID0gW10KKyAgICAgICAgZm9yIHN0YXJ0LCBzdG9wIGluIHNlbGYuX3JhbmdlczoKKyAgICAgICAgICAgIGlmICggaXNpbnN0YW5jZShzdGFydCwgc2l4LmludGVnZXJfdHlwZXMpIGFuZCBpc2luc3RhbmNlKHN0b3AsIHNpeC5pbnRlZ2VyX3R5cGVzKQorICAgICAgICAgICAgICAgICBhbmQgc3RvcC1zdGFydCA9PSAxICk6CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKCIlciIgJSBzdGFydCkKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzdG9wLCBzaXguaW50ZWdlcl90eXBlcyk6CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKCIoJXIsJXIpIiAlIChzdGFydCxzdG9wLTEpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBydi5hcHBlbmQoIiglciwlcikiICUgKHN0YXJ0LHN0b3ApKQorICAgICAgICBpZiBzZWxmLl9taW4gaXMgbm90IF9NSU5JTkY6CisgICAgICAgICAgICBydi5hcHBlbmQoIm1pbj0lciIgJSBzZWxmLl9taW4pCisgICAgICAgIGlmIHNlbGYuX21heCBpcyBub3QgX01BWElORjoKKyAgICAgICAgICAgIHJ2LmFwcGVuZCgibWF4PSVyIiAlIHNlbGYuX21heCkKKyAgICAgICAgcmV0dXJuICIlcyglcykiICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCIsIi5qb2luKHJ2KSkKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICAjIExpdHRsZSB0ZXN0IHNjcmlwdCBkZW1vbnN0cmF0aW5nIGZ1bmN0aW9uYWxpdHkuCisgICAgeCA9IEludFNldCgoMTAsMjApLDMwKQorICAgIHkgPSBJbnRTZXQoKDEwLDIwKSkKKyAgICB6ID0gSW50U2V0KCgxMCwyMCksMzAsKDE1LDE5KSxtaW49MCxtYXg9NDApCisgICAgcHJpbnQoeCkKKyAgICBwcmludCh4JjExMCkKKyAgICBwcmludCh4fDExMCkKKyAgICBwcmludCh4XigxNSwyNSkpCisgICAgcHJpbnQoeC0xMikKKyAgICBwcmludCgxMiBpbiB4KQorICAgIHByaW50KHguaXNzdWJzZXQoeCkpCisgICAgcHJpbnQoeS5pc3N1YnNldCh4KSkKKyAgICBwcmludCh4LmlzdHJ1ZXN1YnNldCh4KSkKKyAgICBwcmludCh5LmlzdHJ1ZXN1YnNldCh4KSkKKyAgICBmb3IgdmFsIGluIHg6CisgICAgICAgIHByaW50KHZhbCkKKyAgICBwcmludCh4LmludmVyc2UoKSkKKyAgICBwcmludCh4ID09IHopCisgICAgcHJpbnQoeCA9PSB5KQorICAgIHByaW50KHggIT0geSkKKyAgICBwcmludChoYXNoKHgpKQorICAgIHByaW50KGhhc2goeikpCisgICAgcHJpbnQobGVuKHgpKQorICAgIHByaW50KHgubGVuKCkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9pcDQucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9pcDQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNlMTdiOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2lwNC5weQpAQCAtMCwwICsxLDI3NCBAQAorIyAtKi0gY29kaW5nOiBpc28tODg1OS0xNSAtKi0KKyIiIklQNCBhZGRyZXNzIHJhbmdlIHNldCBpbXBsZW1lbnRhdGlvbi4KKworSW1wbGVtZW50cyBhbiBJUHY0LXJhbmdlIHR5cGUuCisKK0NvcHlyaWdodCAoQykgMjAwNiwgSGVpa28gV3VuZHJhbS4KK1JlbGVhc2VkIHVuZGVyIHRoZSBNSVQtbGljZW5zZS4KKyIiIgorCisjIFZlcnNpb24gaW5mb3JtYXRpb24KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorCitfX2F1dGhvcl9fID0gIkhlaWtvIFd1bmRyYW0gPG1lQG1vZGVsbmluZS5vcmc+IgorX192ZXJzaW9uX18gPSAiMC4yIgorX19yZXZpc2lvbl9fID0gIjMiCitfX2RhdGVfXyA9ICIyMDA2LTAxLTIwIgorCisKKyMgSW1wb3J0cworIyAtLS0tLS0tCisKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgaW50c2V0CitpbXBvcnQgc29ja2V0CitpbXBvcnQgc2l4CisKKworIyBJUDRSYW5nZSBjbGFzcworIyAtLS0tLS0tLS0tLS0tLQorCitjbGFzcyBJUDRSYW5nZShpbnRzZXQuSW50U2V0KToKKyAgICAiIiJJUDQgYWRkcmVzcyByYW5nZSBjbGFzcyB3aXRoIGVmZmljaWVudCBzdG9yYWdlIG9mIGFkZHJlc3MgcmFuZ2VzLgorICAgIFN1cHBvcnRzIGFsbCBzZXQgb3BlcmF0aW9ucy4iIiIKKworICAgIF9NSU5JUDQgPSAwCisgICAgX01BWElQNCA9ICgxPDwzMikgLSAxCisgICAgX1VOSVRZVFJBTlMgPSAiIi5qb2luKFtjaHIobikgZm9yIG4gaW4gcmFuZ2UoMjU2KV0pCisgICAgX0lQUkVNT1ZFID0gIjAxMjM0NTY3ODkuIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsKmFyZ3MpOgorICAgICAgICAiIiJJbml0aWFsaXplIGFuIGlwNHJhbmdlIGNsYXNzLiBUaGUgY29uc3RydWN0b3IgYWNjZXB0cyBhbiB1bmxpbWl0ZWQKKyAgICAgICAgbnVtYmVyIG9mIGFyZ3VtZW50cyB0aGF0IG1heSBlaXRoZXIgYmUgdHVwbGVzIGluIHRoZSBmb3JtIChzdGFydCxzdG9wKSwKKyAgICAgICAgaW50ZWdlcnMsIGxvbmdzIG9yIHN0cmluZ3MsIHdoZXJlIHN0YXJ0IGFuZCBzdG9wIGluIGEgdHVwbGUgbWF5CisgICAgICAgIGFsc28gYmUgb2YgdGhlIGZvcm0gaW50ZWdlciwgbG9uZyBvciBzdHJpbmcuCisKKyAgICAgICAgUGFzc2luZyBhbiBpbnRlZ2VyIG9yIGxvbmcgbWVhbnMgcGFzc2luZyBhbiBJUHY0LWFkZHJlc3MgdGhhdCdzIGFscmVhZHkKKyAgICAgICAgYmVlbiBjb252ZXJ0ZWQgdG8gaW50ZWdlciBub3RhdGlvbiwgd2hlcmVhcyBwYXNzaW5nIGEgc3RyaW5nIHNwZWNpZmllcworICAgICAgICBhbiBhZGRyZXNzIHdoZXJlIHRoaXMgY29udmVyc2lvbiBzdGlsbCBoYXMgdG8gYmUgZG9uZS4gQSBzdHJpbmcKKyAgICAgICAgYWRkcmVzcyBtYXkgYmUgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXRzOgorCisgICAgICAgIC0gMS4yLjMuNCAgICAtIGEgcGxhaW4gYWRkcmVzcywgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgYWRkcmVzcworICAgICAgICAtIDEuMi4zICAgICAgLSBhIHNldCBvZiBhZGRyZXNzZXMsIGludGVycHJldGVkIGFzIDEuMi4zLjAtMS4yLjMuMjU1CisgICAgICAgIC0gbG9jYWxob3N0ICAtIGhvc3RuYW1lIHRvIGxvb2sgdXAsIGludGVycHJldGVkIGFzIHNpbmdsZSBhZGRyZXNzCisgICAgICAgIC0gMS4yLjM8LT41ICAtIGEgc2V0IG9mIGFkZHJlc3NlcywgaW50ZXJwcmV0ZWQgYXMgMS4yLjMuMC0xLjIuNS4yNTUKKyAgICAgICAgLSAxLjIuMC4wLzE2IC0gYSBzZXQgb2YgYWRkcmVzc2VzLCBpbnRlcnByZXRlZCBhcyAxLjIuMC4wLTEuMi4yNTUuMjU1CisKKyAgICAgICAgT25seSB0aGUgZmlyc3QgdGhyZWUgbm90YXRpb25zIGFyZSB2YWxpZCBpZiB5b3UgdXNlIGEgc3RyaW5nIGFkZHJlc3MgaW4KKyAgICAgICAgYSB0dXBsZSwgd2hlcmVieSBub3RhdGlvbiAyIGlzIGludGVycHJldGVkIGFzIDEuMi4zLjAgaWYgc3BlY2lmaWVkIGFzCisgICAgICAgIGxvd2VyIGJvdW5kIGFuZCAxLjIuMy4yNTUgaWYgc3BlY2lmaWVkIGFzIHVwcGVyIGJvdW5kLCBub3QgYXMgYSByYW5nZQorICAgICAgICBvZiBhZGRyZXNzZXMuCisKKyAgICAgICAgU3BlY2lmeWluZyBhIHJhbmdlIGlzIGRvbmUgd2l0aCB0aGUgPC0+IG9wZXJhdG9yLiBUaGlzIGlzIG5lY2Vzc2FyeQorICAgICAgICBiZWNhdXNlICctJyBtaWdodCBiZSBwcmVzZW50IGluIGEgaG9zdG5hbWUuICc8LT4nIHNob3VsZG4ndCBiZSwgZXZlci4KKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBTcGVjaWFsIGNhc2UgY29weSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgaWYgbGVuKGFyZ3MpID09IDEgYW5kIGlzaW5zdGFuY2UoYXJnc1swXSxJUDRSYW5nZSk6CisgICAgICAgICAgICBzdXBlcihJUDRSYW5nZSxzZWxmKS5fX2luaXRfXyhhcmdzWzBdKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBDb252ZXJ0IGFyZ3VtZW50cyB0byB0dXBsZSBzeW50YXguCisgICAgICAgIGFyZ3MgPSBsaXN0KGFyZ3MpCisgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihhcmdzKSk6CisgICAgICAgICAgICBhcmd2YWwgPSBhcmdzW2ldCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGFyZ3ZhbCxzdHIpOgorICAgICAgICAgICAgICAgIGlmICI8LT4iIGluIGFyZ3ZhbDoKKyAgICAgICAgICAgICAgICAgICAgIyBUeXBlIDQgYWRkcmVzcy4KKyAgICAgICAgICAgICAgICAgICAgYXJnc1tpXSA9IHNlbGYuX3BhcnNlUmFuZ2UoKmFyZ3ZhbC5zcGxpdCgiPC0+IiwxKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBlbGlmICIvIiBpbiBhcmd2YWw6CisgICAgICAgICAgICAgICAgICAgICMgVHlwZSA1IGFkZHJlc3MuCisgICAgICAgICAgICAgICAgICAgIGFyZ3NbaV0gPSBzZWxmLl9wYXJzZU1hc2soKmFyZ3ZhbC5zcGxpdCgiLyIsMSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBUeXBlIDEsIDIgb3IgMy4KKyAgICAgICAgICAgICAgICAgICAgYXJnc1tpXSA9IHNlbGYuX3BhcnNlQWRkclJhbmdlKGFyZ3ZhbCkKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShhcmd2YWwsdHVwbGUpOgorICAgICAgICAgICAgICAgIGlmIGxlbih0dXBsZSkgIT0gMjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVHVwbGUgaXMgb2YgaW52YWxpZCBsZW5ndGguIikKKyAgICAgICAgICAgICAgICBhZGRyMSwgYWRkcjIgPSBhcmd2YWwKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGFkZHIxLHN0cik6CisgICAgICAgICAgICAgICAgICAgIGFkZHIxID0gc2VsZi5fcGFyc2VBZGRyUmFuZ2UoYWRkcjEpWzBdCisgICAgICAgICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShhZGRyMSwgc2l4LmludGVnZXJfdHlwZXMpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkludmFsaWQgYXJndW1lbnQuIikKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGFkZHIyLHN0cik6CisgICAgICAgICAgICAgICAgICAgIGFkZHIyID0gc2VsZi5fcGFyc2VBZGRyUmFuZ2UoYWRkcjIpWzFdCisgICAgICAgICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShhZGRyMiwgc2l4LmludGVnZXJfdHlwZXMpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkludmFsaWQgYXJndW1lbnQuIikKKyAgICAgICAgICAgICAgICBhcmdzW2ldID0gKGFkZHIxLGFkZHIyKQorICAgICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShhcmd2YWwsIHNpeC5pbnRlZ2VyX3R5cGVzKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkludmFsaWQgYXJndW1lbnQuIikKKworICAgICAgICAjIEluaXRpYWxpemUgdGhlIGludGVnZXIgc2V0LgorICAgICAgICBzdXBlcihJUDRSYW5nZSxzZWxmKS5fX2luaXRfXyhtaW49c2VsZi5fTUlOSVA0LG1heD1zZWxmLl9NQVhJUDQsKmFyZ3MpCisKKyAgICAjIFBhcnNpbmcgZnVuY3Rpb25zCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIF9wYXJzZVJhbmdlKHNlbGYsYWRkcjEsYWRkcjIpOgorICAgICAgICBuYWRkcjEsIG5hZGRyMWxlbiA9IF9wYXJzZUFkZHIoYWRkcjEpCisgICAgICAgIG5hZGRyMiwgbmFkZHIybGVuID0gX3BhcnNlQWRkcihhZGRyMikKKyAgICAgICAgaWYgbmFkZHIybGVuIDwgbmFkZHIxbGVuOgorICAgICAgICAgICAgbmFkZHIyICs9IG5hZGRyMSYoKCgxPDwoKG5hZGRyMWxlbi1uYWRkcjJsZW4pKjgpKS0xKTw8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFkZHIybGVuKjgpKQorICAgICAgICAgICAgbmFkZHIybGVuID0gbmFkZHIxbGVuCisgICAgICAgIGVsaWYgbmFkZHIybGVuID4gbmFkZHIxbGVuOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUmFuZ2UgaGFzIG1vcmUgZG90cyB0aGFuIGFkZHJlc3MuIikKKyAgICAgICAgbmFkZHIxIDw8PSAoNC1uYWRkcjFsZW4pKjgKKyAgICAgICAgbmFkZHIyIDw8PSAoNC1uYWRkcjJsZW4pKjgKKyAgICAgICAgbmFkZHIyICs9ICgxPDwoKDQtbmFkZHIybGVuKSo4KSktMQorICAgICAgICByZXR1cm4gKG5hZGRyMSxuYWRkcjIpCisKKyAgICBkZWYgX3BhcnNlTWFzayhzZWxmLGFkZHIsbWFzayk6CisgICAgICAgIG5hZGRyLCBuYWRkcmxlbiA9IF9wYXJzZUFkZHIoYWRkcikKKyAgICAgICAgbmFkZHIgPDw9ICg0LW5hZGRybGVuKSo4CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIG5vdCBtYXNrOgorICAgICAgICAgICAgICAgIG1hc2tsZW4gPSAwCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1hc2tsZW4gPSBpbnQobWFzaykKKyAgICAgICAgICAgIGlmIG5vdCAwIDw9IG1hc2tsZW4gPD0gMzI6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtYXNrID0gX3BhcnNlQWRkcihtYXNrLEZhbHNlKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWFzayBpc24ndCBwYXJzZWFibGUuIikKKyAgICAgICAgICAgIHJlbWFpbmluZyA9IDAKKyAgICAgICAgICAgIG1hc2tsZW4gPSAwCisgICAgICAgICAgICBpZiBub3QgbWFzazoKKyAgICAgICAgICAgICAgICBtYXNrbGVuID0gMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB3aGlsZSBub3QgKG1hc2smMSk6CisgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyArPSAxCisgICAgICAgICAgICAgICAgd2hpbGUgKG1hc2smMSk6CisgICAgICAgICAgICAgICAgICAgIG1hc2sgPj49IDEKKyAgICAgICAgICAgICAgICAgICAgbWFza2xlbiArPSAxCisgICAgICAgICAgICAgICAgaWYgcmVtYWluaW5nK21hc2tsZW4gIT0gMzI6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk1hc2sgaXNuJ3QgYSBwcm9wZXIgaG9zdCBtYXNrLiIpCisgICAgICAgIG5hZGRyMSA9IG5hZGRyICYgKCgoMTw8bWFza2xlbiktMSk8PCgzMi1tYXNrbGVuKSkKKyAgICAgICAgbmFkZHIyID0gbmFkZHIxICsgKDE8PCgzMi1tYXNrbGVuKSkgLSAxCisgICAgICAgIHJldHVybiAobmFkZHIxLG5hZGRyMikKKworICAgIGRlZiBfcGFyc2VBZGRyUmFuZ2Uoc2VsZixhZGRyKToKKyAgICAgICAgbmFkZHIsIG5hZGRybGVuID0gX3BhcnNlQWRkcihhZGRyKQorICAgICAgICBuYWRkcjEgPSBuYWRkcjw8KCg0LW5hZGRybGVuKSo4KQorICAgICAgICBuYWRkcjIgPSAoIChuYWRkcjw8KCg0LW5hZGRybGVuKSo4KSkgKworICAgICAgICAgICAgICAgICAgICgxPDwoKDQtbmFkZHJsZW4pKjgpKSAtIDEgKQorICAgICAgICByZXR1cm4gKG5hZGRyMSxuYWRkcjIpCisKKyAgICAjIFV0aWxpdHkgZnVuY3Rpb25zCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIF9pbnQyaXAoc2VsZixudW0pOgorICAgICAgICBydiA9IFtdCisgICAgICAgIGZvciBpIGluIHJhbmdlKDQpOgorICAgICAgICAgICAgcnYuYXBwZW5kKHN0cihudW0mMjU1KSkKKyAgICAgICAgICAgIG51bSA+Pj0gOAorICAgICAgICByZXR1cm4gIi4iLmpvaW4ocmV2ZXJzZWQocnYpKQorCisgICAgIyBJdGVyYXRpbmcKKyAgICAjIC0tLS0tLS0tLQorCisgICAgZGVmIGl0ZXJhZGRyZXNzZXMoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYW4gaXRlcmF0b3Igd2hpY2ggaXRlcmF0ZXMgb3ZlciBpcHMgaW4gdGhpcyBpcHJhbmdlLiBBbgorICAgICAgICBJUCBpcyByZXR1cm5lZCBpbiBzdHJpbmcgZm9ybSAoZS5nLiAnMS4yLjMuNCcpLiIiIgorCisgICAgICAgIGZvciB2IGluIHN1cGVyKElQNFJhbmdlLHNlbGYpLl9faXRlcl9fKCk6CisgICAgICAgICAgICB5aWVsZCBzZWxmLl9pbnQyaXAodikKKworICAgIGRlZiBpdGVycmFuZ2VzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIGFuIGl0ZXJhdG9yIHdoaWNoIGl0ZXJhdGVzIG92ZXIgaXAtaXAgcmFuZ2VzIHdoaWNoIGJ1aWxkCisgICAgICAgIHRoaXMgaXByYW5nZSBpZiBjb21iaW5lZC4gQW4gaXAtaXAgcGFpciBpcyByZXR1cm5lZCBpbiBzdHJpbmcgZm9ybQorICAgICAgICAoZS5nLiAnMS4yLjMuNC0yLjMuNC41JykuIiIiCisKKyAgICAgICAgZm9yIHIgaW4gc2VsZi5fcmFuZ2VzOgorICAgICAgICAgICAgaWYgclsxXS1yWzBdID09IDE6CisgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5faW50MmlwKHJbMF0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHlpZWxkICclcy0lcycgJSAoc2VsZi5faW50MmlwKHJbMF0pLHNlbGYuX2ludDJpcChyWzFdLTEpKQorCisgICAgZGVmIGl0ZXJtYXNrcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBhbiBpdGVyYXRvciB3aGljaCBpdGVyYXRlcyBvdmVyIGlwL21hc2sgcGFpcnMgd2hpY2ggYnVpbGQKKyAgICAgICAgdGhpcyBpcHJhbmdlIGlmIGNvbWJpbmVkLiBBbiBJUC9NYXNrIHBhaXIgaXMgcmV0dXJuZWQgaW4gc3RyaW5nIGZvcm0KKyAgICAgICAgKGUuZy4gJzEuMi4zLjAvMjQnKS4iIiIKKworICAgICAgICBmb3IgciBpbiBzZWxmLl9yYW5nZXM6CisgICAgICAgICAgICBmb3IgdiBpbiBzZWxmLl9pdGVybWFza3Mocik6CisgICAgICAgICAgICAgICAgeWllbGQgdgorCisgICAgZGVmIF9pdGVybWFza3Moc2VsZixyKToKKyAgICAgICAgcmFuZ2VzID0gW3JdCisgICAgICAgIHdoaWxlIHJhbmdlczoKKyAgICAgICAgICAgIGN1ciA9IHJhbmdlcy5wb3AoKQorICAgICAgICAgICAgY3VybWFzayA9IDAKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgY3VybWFza2xlbiA9IDE8PCgzMi1jdXJtYXNrKQorICAgICAgICAgICAgICAgIHN0YXJ0ID0gKGN1clswXStjdXJtYXNrbGVuLTEpJigoKDE8PGN1cm1hc2spLTEpPDwoMzItY3VybWFzaykpCisgICAgICAgICAgICAgICAgaWYgc3RhcnQgPj0gY3VyWzBdIGFuZCBzdGFydCtjdXJtYXNrbGVuIDw9IGN1clsxXToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBjdXJtYXNrICs9IDEKKyAgICAgICAgICAgIHlpZWxkICIlcy8lcyIgJSAoc2VsZi5faW50MmlwKHN0YXJ0KSxjdXJtYXNrKQorICAgICAgICAgICAgaWYgY3VyWzBdIDwgc3RhcnQ6CisgICAgICAgICAgICAgICAgcmFuZ2VzLmFwcGVuZCgoY3VyWzBdLHN0YXJ0KSkKKyAgICAgICAgICAgIGlmIGN1clsxXSA+IHN0YXJ0K2N1cm1hc2tsZW46CisgICAgICAgICAgICAgICAgcmFuZ2VzLmFwcGVuZCgoc3RhcnQrY3VybWFza2xlbixjdXJbMV0pKQorCisgICAgX19pdGVyX18gPSBpdGVyYWRkcmVzc2VzCisKKyAgICAjIFByaW50aW5nCisgICAgIyAtLS0tLS0tLQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIGEgc3RyaW5nIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlY29uc3RydWN0IHRoaXMgaXByYW5nZS4iIiIKKworICAgICAgICBydiA9IFtdCisgICAgICAgIGZvciBzdGFydCwgc3RvcCBpbiBzZWxmLl9yYW5nZXM6CisgICAgICAgICAgICBpZiBzdG9wLXN0YXJ0ID09IDE6CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKCIlciIgJSAoc2VsZi5faW50MmlwKHN0YXJ0KSwpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBydi5hcHBlbmQoIiglciwlcikiICUgKHNlbGYuX2ludDJpcChzdGFydCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9pbnQyaXAoc3RvcC0xKSkpCisgICAgICAgIHJldHVybiAiJXMoJXMpIiAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywiLCIuam9pbihydikpCisKK2RlZiBfcGFyc2VBZGRyKGFkZHIsbG9va3VwPVRydWUpOgorICAgIGlmIGxvb2t1cCBhbmQgYW55KGNoIG5vdCBpbiBJUDRSYW5nZS5fSVBSRU1PVkUgZm9yIGNoIGluIGFkZHIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhZGRyID0gc29ja2V0LmdldGhvc3RieW5hbWUoYWRkcikKKyAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgSG9zdG5hbWUgYXMgYXJndW1lbnQuIikKKyAgICBuYWRkciA9IDAKKyAgICBmb3IgbmFkZHJwb3MsIHBhcnQgaW4gZW51bWVyYXRlKGFkZHIuc3BsaXQoIi4iKSk6CisgICAgICAgIGlmIG5hZGRycG9zID49IDQ6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBZGRyZXNzIGNvbnRhaW5zIG1vcmUgdGhhbiBmb3VyIHBhcnRzLiIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIG5vdCBwYXJ0OgorICAgICAgICAgICAgICAgIHBhcnQgPSAwCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhcnQgPSBpbnQocGFydCkKKyAgICAgICAgICAgIGlmIG5vdCAwIDw9IHBhcnQgPCAyNTY6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkFkZHJlc3MgcGFydCBvdXQgb2YgcmFuZ2UuIikKKyAgICAgICAgbmFkZHIgPDw9IDgKKyAgICAgICAgbmFkZHIgKz0gcGFydAorICAgIHJldHVybiBuYWRkciwgbmFkZHJwb3MrMQorCitkZWYgaXAyaW50KGFkZHIsIGxvb2t1cD1UcnVlKToKKyAgICByZXR1cm4gX3BhcnNlQWRkcihhZGRyLCBsb29rdXA9bG9va3VwKVswXQorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgICMgTGl0dGxlIHRlc3Qgc2NyaXB0LgorICAgIHggPSBJUDRSYW5nZSgiMTcyLjIyLjE2Mi4yNTAvMjQiKQorICAgIHkgPSBJUDRSYW5nZSgiMTcyLjIyLjE2Mi4yNTAiLCIxNzIuMjIuMTYzLjI1MCIsIjE3Mi4yMi4xNjMuMjUzPC0+MjU1IikKKyAgICBwcmludCh4KQorICAgIGZvciB2YWwgaW4geC5pdGVybWFza3MoKToKKyAgICAgICAgcHJpbnQodmFsKQorICAgIGZvciB2YWwgaW4geS5pdGVybWFza3MoKToKKyAgICAgICAgcHJpbnQodmFsKQorICAgIGZvciB2YWwgaW4gKHh8eSkuaXRlcm1hc2tzKCk6CisgICAgICAgIHByaW50KHZhbCkKKyAgICBmb3IgdmFsIGluICh4XnkpLml0ZXJyYW5nZXMoKToKKyAgICAgICAgcHJpbnQodmFsKQorICAgIGZvciB2YWwgaW4geDoKKyAgICAgICAgcHJpbnQodmFsKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwva2lsbHRocmVhZC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2tpbGx0aHJlYWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRmNGY0MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL2tpbGx0aHJlYWQucHkKQEAgLTAsMCArMSwzMCBAQAorIiIiCitLaWxsIGEgdGhyZWFkLCBmcm9tIGh0dHA6Ly9zZWJ1bGJhLndpa2lzcGFjZXMuY29tL3JlY2lwZSt0aHJlYWQyCisiIiIKK2ltcG9ydCBzaXgKK3RyeToKKyAgICBpbXBvcnQgY3R5cGVzCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcmFpc2UgSW1wb3J0RXJyb3IoCisgICAgICAgICJZb3UgY2Fubm90IHVzZSBwYXN0ZS51dGlsLmtpbGx0aHJlYWQgd2l0aG91dCBjdHlwZXMgaW5zdGFsbGVkIikKK2lmIG5vdCBoYXNhdHRyKGN0eXBlcywgJ3B5dGhvbmFwaScpOgorICAgIHJhaXNlIEltcG9ydEVycm9yKAorICAgICAgICAiWW91IGNhbm5vdCB1c2UgcGFzdGUudXRpbC5raWxsdGhyZWFkIHdpdGhvdXQgY3R5cGVzLnB5dGhvbmFwaSIpCisKK2RlZiBhc3luY19yYWlzZSh0aWQsIGV4Y3R5cGUpOgorICAgICIiInJhaXNlcyB0aGUgZXhjZXB0aW9uLCBwZXJmb3JtcyBjbGVhbnVwIGlmIG5lZWRlZC4KKworICAgIHRpZCBpcyB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhyZWFkLmdldF9pZGVudCgpIChhbiBpbnRlZ2VyKS4KKyAgICBSYWlzZSBTeXN0ZW1FeGl0IHRvIGtpbGwgYSB0aHJlYWQuIiIiCisgICAgaWYgbm90IGlzaW5zdGFuY2UoZXhjdHlwZSwgKHNpeC5jbGFzc190eXBlcywgdHlwZSkpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoIk9ubHkgdHlwZXMgY2FuIGJlIHJhaXNlZCAobm90IGluc3RhbmNlcykiKQorICAgIGlmIG5vdCBpc2luc3RhbmNlKHRpZCwgaW50KToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ0aWQgbXVzdCBiZSBhbiBpbnRlZ2VyIikKKyAgICByZXMgPSBjdHlwZXMucHl0aG9uYXBpLlB5VGhyZWFkU3RhdGVfU2V0QXN5bmNFeGMoY3R5cGVzLmNfbG9uZyh0aWQpLCBjdHlwZXMucHlfb2JqZWN0KGV4Y3R5cGUpKQorICAgIGlmIHJlcyA9PSAwOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHRocmVhZCBpZCIpCisgICAgZWxpZiByZXMgIT0gMToKKyAgICAgICAgIyAiIiJpZiBpdCByZXR1cm5zIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvbmUsIHlvdSdyZSBpbiB0cm91YmxlLAorICAgICAgICAjIGFuZCB5b3Ugc2hvdWxkIGNhbGwgaXQgYWdhaW4gd2l0aCBleGM9TlVMTCB0byByZXZlcnQgdGhlIGVmZmVjdCIiIgorICAgICAgICBjdHlwZXMucHl0aG9uYXBpLlB5VGhyZWFkU3RhdGVfU2V0QXN5bmNFeGMoY3R5cGVzLmNfbG9uZyh0aWQpLCAwKQorICAgICAgICByYWlzZSBTeXN0ZW1FcnJvcigiUHlUaHJlYWRTdGF0ZV9TZXRBc3luY0V4YyBmYWlsZWQiKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvbG9vcGVyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvbG9vcGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NjM1OGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9sb29wZXIucHkKQEAgLTAsMCArMSwxNTYgQEAKKyIiIgorSGVscGVyIGZvciBsb29waW5nIG92ZXIgc2VxdWVuY2VzLCBwYXJ0aWN1bGFyIGluIHRlbXBsYXRlcy4KKworT2Z0ZW4gaW4gYSBsb29wIGluIGEgdGVtcGxhdGUgaXQncyBoYW5keSB0byBrbm93IHdoYXQncyBuZXh0IHVwLAorcHJldmlvdXNseSB1cCwgaWYgdGhpcyBpcyB0aGUgZmlyc3Qgb3IgbGFzdCBpdGVtIGluIHRoZSBzZXF1ZW5jZSwgZXRjLgorVGhlc2UgY2FuIGJlIGF3a3dhcmQgdG8gbWFuYWdlIGluIGEgbm9ybWFsIFB5dGhvbiBsb29wLCBidXQgdXNpbmcgdGhlCitsb29wZXIgeW91IGNhbiBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgdGhlIGNvbnRleHQuICBVc2UgbGlrZTo6CisKKyAgICA+Pj4gZm9yIGxvb3AsIGl0ZW0gaW4gbG9vcGVyKFsnYScsICdiJywgJ2MnXSk6CisgICAgLi4uICAgICBwcmludCgiJXMgJXMiICUgKGxvb3AubnVtYmVyLCBpdGVtKSkKKyAgICAuLi4gICAgIGlmIG5vdCBsb29wLmxhc3Q6CisgICAgLi4uICAgICAgICAgcHJpbnQoJy0tLScpCisgICAgMSBhCisgICAgLS0tCisgICAgMiBiCisgICAgLS0tCisgICAgMyBjCisKKyIiIgorCitfX2FsbF9fID0gWydsb29wZXInXQorCitpbXBvcnQgc2l4CisKKworY2xhc3MgbG9vcGVyKG9iamVjdCk6CisgICAgIiIiCisgICAgSGVscGVyIGZvciBsb29waW5nIChwYXJ0aWN1bGFybHkgaW4gdGVtcGxhdGVzKQorCisgICAgVXNlIHRoaXMgbGlrZTo6CisKKyAgICAgICAgZm9yIGxvb3AsIGl0ZW0gaW4gbG9vcGVyKHNlcSk6CisgICAgICAgICAgICBpZiBsb29wLmZpcnN0OgorICAgICAgICAgICAgICAgIC4uLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcSk6CisgICAgICAgIHNlbGYuc2VxID0gc2VxCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBsb29wZXJfaXRlcihzZWxmLnNlcSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgZm9yICVyPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2VsZi5zZXEpCisKK2NsYXNzIGxvb3Blcl9pdGVyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2VxKToKKyAgICAgICAgc2VsZi5zZXEgPSBsaXN0KHNlcSkKKyAgICAgICAgc2VsZi5wb3MgPSAwCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgbmV4dChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5wb3MgPj0gbGVuKHNlbGYuc2VxKToKKyAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KKyAgICAgICAgcmVzdWx0ID0gbG9vcF9wb3Moc2VsZi5zZXEsIHNlbGYucG9zKSwgc2VsZi5zZXFbc2VsZi5wb3NdCisgICAgICAgIHNlbGYucG9zICs9IDEKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIF9fbmV4dF9fID0gbmV4dAorCitjbGFzcyBsb29wX3BvcyhvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcSwgcG9zKToKKyAgICAgICAgc2VsZi5zZXEgPSBzZXEKKyAgICAgICAgc2VsZi5wb3MgPSBwb3MKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8bG9vcCBwb3M9JXIgYXQgJXI+JyAlICgKKyAgICAgICAgICAgIHNlbGYuc2VxW3NlbGYucG9zXSwgc2VsZi5wb3MpCisKKyAgICBkZWYgaW5kZXgoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnBvcworICAgIGluZGV4ID0gcHJvcGVydHkoaW5kZXgpCisKKyAgICBkZWYgbnVtYmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wb3MgKyAxCisgICAgbnVtYmVyID0gcHJvcGVydHkobnVtYmVyKQorCisgICAgZGVmIGl0ZW0oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlcVtzZWxmLnBvc10KKyAgICBpdGVtID0gcHJvcGVydHkoaXRlbSkKKworICAgIGRlZiBuZXh0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zZXFbc2VsZi5wb3MrMV0KKyAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgIG5leHQgPSBwcm9wZXJ0eShuZXh0KQorCisgICAgZGVmIHByZXZpb3VzKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnBvcyA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VxW3NlbGYucG9zLTFdCisgICAgcHJldmlvdXMgPSBwcm9wZXJ0eShwcmV2aW91cykKKworICAgIGRlZiBvZGQoc2VsZik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZi5wb3MgJSAyCisgICAgb2RkID0gcHJvcGVydHkob2RkKQorCisgICAgZGVmIGV2ZW4oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnBvcyAlIDIKKyAgICBldmVuID0gcHJvcGVydHkoZXZlbikKKworICAgIGRlZiBmaXJzdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucG9zID09IDAKKyAgICBmaXJzdCA9IHByb3BlcnR5KGZpcnN0KQorCisgICAgZGVmIGxhc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnBvcyA9PSBsZW4oc2VsZi5zZXEpLTEKKyAgICBsYXN0ID0gcHJvcGVydHkobGFzdCkKKworICAgIGRlZiBsZW5ndGgoc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5zZXEpCisgICAgbGVuZ3RoID0gcHJvcGVydHkobGVuZ3RoKQorCisgICAgZGVmIGZpcnN0X2dyb3VwKHNlbGYsIGdldHRlcj1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGl0ZW0gaXMgdGhlIHN0YXJ0IG9mIGEgbmV3IGdyb3VwLAorICAgICAgICB3aGVyZSBncm91cHMgbWVhbiB0aGF0IHNvbWUgYXR0cmlidXRlIGhhcyBjaGFuZ2VkLiAgVGhlIGdldHRlcgorICAgICAgICBjYW4gYmUgTm9uZSAodGhlIGl0ZW0gaXRzZWxmIGNoYW5nZXMpLCBhbiBhdHRyaWJ1dGUgbmFtZSBsaWtlCisgICAgICAgIGBgJy5hdHRyJ2BgLCBhIGZ1bmN0aW9uLCBvciBhIGRpY3Qga2V5IG9yIGxpc3QgaW5kZXguCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLmZpcnN0OgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NvbXBhcmVfZ3JvdXAoc2VsZi5pdGVtLCBzZWxmLnByZXZpb3VzLCBnZXR0ZXIpCisKKyAgICBkZWYgbGFzdF9ncm91cChzZWxmLCBnZXR0ZXI9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhpcyBpdGVtIGlzIHRoZSBlbmQgb2YgYSBuZXcgZ3JvdXAsCisgICAgICAgIHdoZXJlIGdyb3VwcyBtZWFuIHRoYXQgc29tZSBhdHRyaWJ1dGUgaGFzIGNoYW5nZWQuICBUaGUgZ2V0dGVyCisgICAgICAgIGNhbiBiZSBOb25lICh0aGUgaXRlbSBpdHNlbGYgY2hhbmdlcyksIGFuIGF0dHJpYnV0ZSBuYW1lIGxpa2UKKyAgICAgICAgYGAnLmF0dHInYGAsIGEgZnVuY3Rpb24sIG9yIGEgZGljdCBrZXkgb3IgbGlzdCBpbmRleC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYubGFzdDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBzZWxmLl9jb21wYXJlX2dyb3VwKHNlbGYuaXRlbSwgc2VsZi5uZXh0LCBnZXR0ZXIpCisKKyAgICBkZWYgX2NvbXBhcmVfZ3JvdXAoc2VsZiwgaXRlbSwgb3RoZXIsIGdldHRlcik6CisgICAgICAgIGlmIGdldHRlciBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIGl0ZW0gIT0gb3RoZXIKKyAgICAgICAgZWxpZiAoaXNpbnN0YW5jZShnZXR0ZXIsIChzaXguYmluYXJ5X3R5cGUsIHNpeC50ZXh0X3R5cGUpKQorICAgICAgICAgICAgICBhbmQgZ2V0dGVyLnN0YXJ0c3dpdGgoJy4nKSk6CisgICAgICAgICAgICBnZXR0ZXIgPSBnZXR0ZXJbMTpdCisgICAgICAgICAgICBpZiBnZXR0ZXIuZW5kc3dpdGgoJygpJyk6CisgICAgICAgICAgICAgICAgZ2V0dGVyID0gZ2V0dGVyWzotMl0KKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihpdGVtLCBnZXR0ZXIpKCkgIT0gZ2V0YXR0cihvdGhlciwgZ2V0dGVyKSgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKGl0ZW0sIGdldHRlcikgIT0gZ2V0YXR0cihvdGhlciwgZ2V0dGVyKQorICAgICAgICBlbGlmIGNhbGxhYmxlKGdldHRlcik6CisgICAgICAgICAgICByZXR1cm4gZ2V0dGVyKGl0ZW0pICE9IGdldHRlcihvdGhlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBpdGVtW2dldHRlcl0gIT0gb3RoZXJbZ2V0dGVyXQorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9taW1lcGFyc2UucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9taW1lcGFyc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc5NmM4YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL21pbWVwYXJzZS5weQpAQCAtMCwwICsxLDE2MCBAQAorIiIiTUlNRS1UeXBlIFBhcnNlcgorCitUaGlzIG1vZHVsZSBwcm92aWRlcyBiYXNpYyBmdW5jdGlvbnMgZm9yIGhhbmRsaW5nIG1pbWUtdHlwZXMuIEl0IGNhbiBoYW5kbGUKK21hdGNoaW5nIG1pbWUtdHlwZXMgYWdhaW5zdCBhIGxpc3Qgb2YgbWVkaWEtcmFuZ2VzLiBTZWUgc2VjdGlvbiAxNC4xIG9mCit0aGUgSFRUUCBzcGVjaWZpY2F0aW9uIFtSRkMgMjYxNl0gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24uCisKKyAgIGh0dHA6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMTQuaHRtbCNzZWMxNC4xCisKK0Jhc2VkIG9uIG1pbWVwYXJzZSAwLjEuMiBieSBKb2UgR3JlZ29yaW86CisKKyAgICBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWltZXBhcnNlLworCitDb250ZW50czoKKyAgICAtIHBhcnNlX21pbWVfdHlwZSgpOiAgIFBhcnNlcyBhIG1pbWUtdHlwZSBpbnRvIGl0cyBjb21wb25lbnQgcGFydHMuCisgICAgLSBwYXJzZV9tZWRpYV9yYW5nZSgpOiBNZWRpYS1yYW5nZXMgYXJlIG1pbWUtdHlwZXMgd2l0aCB3aWxkLWNhcmRzIGFuZCBhICdxJyBxdWFsaXR5IHBhcmFtZXRlci4KKyAgICAtIHF1YWxpdHkoKTogICAgICAgICAgIERldGVybWluZXMgdGhlIHF1YWxpdHkgKCdxJykgb2YgYSBtaW1lLXR5cGUgd2hlbiBjb21wYXJlZCBhZ2FpbnN0IGEgbGlzdCBvZiBtZWRpYS1yYW5nZXMuCisgICAgLSBxdWFsaXR5X3BhcnNlZCgpOiAgICBKdXN0IGxpa2UgcXVhbGl0eSgpIGV4Y2VwdCB0aGUgc2Vjb25kIHBhcmFtZXRlciBtdXN0IGJlIHByZS1wYXJzZWQuCisgICAgLSBiZXN0X21hdGNoKCk6ICAgICAgICBDaG9vc2UgdGhlIG1pbWUtdHlwZSB3aXRoIHRoZSBoaWdoZXN0IHF1YWxpdHkgKCdxJykgZnJvbSBhIGxpc3Qgb2YgY2FuZGlkYXRlcy4KKyAgICAtIGRlc2lyZWRfbWF0Y2hlcygpOiAgIEZpbHRlciBhZ2FpbnN0IGEgbGlzdCBvZiBkZXNpcmVkIG1pbWUtdHlwZXMgaW4gdGhlIG9yZGVyIHRoZSBzZXJ2ZXIgcHJlZmVycy4KKworIiIiCisKKworZGVmIHBhcnNlX21pbWVfdHlwZShtaW1lX3R5cGUpOgorICAgICIiIkNhcnZlcyB1cCBhIG1pbWUtdHlwZSBhbmQgcmV0dXJucyBhIHR1cGxlIG9mIHRoZQorICAgICAgICh0eXBlLCBzdWJ0eXBlLCBwYXJhbXMpIHdoZXJlICdwYXJhbXMnIGlzIGEgZGljdGlvbmFyeQorICAgICAgIG9mIGFsbCB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIG1lZGlhIHJhbmdlLgorICAgICAgIEZvciBleGFtcGxlLCB0aGUgbWVkaWEgcmFuZ2UgJ2FwcGxpY2F0aW9uL3hodG1sO3E9MC41JyB3b3VsZAorICAgICAgIGdldCBwYXJzZWQgaW50bzoKKworICAgICAgICgnYXBwbGljYXRpb24nLCAneGh0bWwnLCB7J3EnLCAnMC41J30pCisgICAgICAgIiIiCisgICAgdHlwZSA9IG1pbWVfdHlwZS5zcGxpdCgnOycpCisgICAgdHlwZSwgcGxpc3QgPSB0eXBlWzBdLCB0eXBlWzE6XQorICAgIHRyeToKKyAgICAgICAgdHlwZSwgc3VidHlwZSA9IHR5cGUuc3BsaXQoJy8nLCAxKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICB0eXBlLCBzdWJ0eXBlID0gdHlwZS5zdHJpcCgpIG9yICcqJywgJyonCisgICAgZWxzZToKKyAgICAgICAgdHlwZSA9IHR5cGUuc3RyaXAoKSBvciAnKicKKyAgICAgICAgc3VidHlwZSA9IHN1YnR5cGUuc3RyaXAoKSBvciAnKicKKyAgICBwYXJhbXMgPSB7fQorICAgIGZvciBwYXJhbSBpbiBwbGlzdDoKKyAgICAgICAgcGFyYW0gPSBwYXJhbS5zcGxpdCgnPScsIDEpCisgICAgICAgIGlmIGxlbihwYXJhbSkgPT0gMjoKKyAgICAgICAgICAgIGtleSwgdmFsdWUgPSBwYXJhbVswXS5zdHJpcCgpLCBwYXJhbVsxXS5zdHJpcCgpCisgICAgICAgICAgICBpZiBrZXkgYW5kIHZhbHVlOgorICAgICAgICAgICAgICAgIHBhcmFtc1trZXldID0gdmFsdWUKKyAgICByZXR1cm4gdHlwZSwgc3VidHlwZSwgcGFyYW1zCisKK2RlZiBwYXJzZV9tZWRpYV9yYW5nZShyYW5nZSk6CisgICAgIiIiQ2FydmVzIHVwIGEgbWVkaWEgcmFuZ2UgYW5kIHJldHVybnMgYSB0dXBsZSBvZiB0aGUKKyAgICAgICAodHlwZSwgc3VidHlwZSwgcGFyYW1zKSB3aGVyZSAncGFyYW1zJyBpcyBhIGRpY3Rpb25hcnkKKyAgICAgICBvZiBhbGwgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtZWRpYSByYW5nZS4KKyAgICAgICBGb3IgZXhhbXBsZSwgdGhlIG1lZGlhIHJhbmdlICdhcHBsaWNhdGlvbi8qO3E9MC41JyB3b3VsZAorICAgICAgIGdldCBwYXJzZWQgaW50bzoKKworICAgICAgICgnYXBwbGljYXRpb24nLCAnKicsIHsncScsICcwLjUnfSkKKworICAgICAgIEluIGFkZGl0aW9uIHRoaXMgZnVuY3Rpb24gYWxzbyBndWFyYW50ZWVzIHRoYXQgdGhlcmUKKyAgICAgICBpcyBhIHZhbHVlIGZvciAncScgaW4gdGhlIHBhcmFtcyBkaWN0aW9uYXJ5LCBmaWxsaW5nIGl0CisgICAgICAgaW4gd2l0aCBhIHByb3BlciBkZWZhdWx0IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAiIiIKKyAgICB0eXBlLCBzdWJ0eXBlLCBwYXJhbXMgPSBwYXJzZV9taW1lX3R5cGUocmFuZ2UpCisgICAgdHJ5OgorICAgICAgICBpZiBub3QgMCA8PSBmbG9hdChwYXJhbXNbJ3EnXSkgPD0gMToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICBleGNlcHQgKEtleUVycm9yLCBWYWx1ZUVycm9yKToKKyAgICAgICAgcGFyYW1zWydxJ10gPSAnMScKKyAgICByZXR1cm4gdHlwZSwgc3VidHlwZSwgcGFyYW1zCisKK2RlZiBmaXRuZXNzX2FuZF9xdWFsaXR5X3BhcnNlZChtaW1lX3R5cGUsIHBhcnNlZF9yYW5nZXMpOgorICAgICIiIkZpbmQgdGhlIGJlc3QgbWF0Y2ggZm9yIGEgZ2l2ZW4gbWltZS10eXBlIGFnYWluc3QKKyAgICAgICBhIGxpc3Qgb2YgbWVkaWFfcmFuZ2VzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4KKyAgICAgICBwYXJzZWQgYnkgcGFyc2VfbWVkaWFfcmFuZ2UoKS4gUmV0dXJucyBhIHR1cGxlIG9mCisgICAgICAgdGhlIGZpdG5lc3MgdmFsdWUgYW5kIHRoZSB2YWx1ZSBvZiB0aGUgJ3EnIHF1YWxpdHkKKyAgICAgICBwYXJhbWV0ZXIgb2YgdGhlIGJlc3QgbWF0Y2gsIG9yICgtMSwgMCkgaWYgbm8gbWF0Y2gKKyAgICAgICB3YXMgZm91bmQuIEp1c3QgYXMgZm9yIHF1YWxpdHlfcGFyc2VkKCksICdwYXJzZWRfcmFuZ2VzJworICAgICAgIG11c3QgYmUgYSBsaXN0IG9mIHBhcnNlZCBtZWRpYSByYW5nZXMuIiIiCisgICAgYmVzdF9maXRuZXNzLCBiZXN0X2ZpdF9xID0gLTEsIDAKKyAgICB0YXJnZXRfdHlwZSwgdGFyZ2V0X3N1YnR5cGUsIHRhcmdldF9wYXJhbXMgPSBwYXJzZV9tZWRpYV9yYW5nZShtaW1lX3R5cGUpCisgICAgZm9yIHR5cGUsIHN1YnR5cGUsIHBhcmFtcyBpbiBwYXJzZWRfcmFuZ2VzOgorICAgICAgICBpZiAodHlwZSA9PSB0YXJnZXRfdHlwZQorICAgICAgICAgICAgICAgICAgICBvciB0eXBlID09ICcqJyBvciB0YXJnZXRfdHlwZSA9PSAnKicpIGFuZCAoCisgICAgICAgICAgICAgICAgc3VidHlwZSA9PSB0YXJnZXRfc3VidHlwZQorICAgICAgICAgICAgICAgICAgICBvciBzdWJ0eXBlID09ICcqJyBvciB0YXJnZXRfc3VidHlwZSA9PSAnKicpOgorICAgICAgICAgICAgZml0bmVzcyA9IDAKKyAgICAgICAgICAgIGlmIHR5cGUgPT0gdGFyZ2V0X3R5cGU6CisgICAgICAgICAgICAgICAgZml0bmVzcyArPSAxMDAKKyAgICAgICAgICAgIGlmIHN1YnR5cGUgPT0gdGFyZ2V0X3N1YnR5cGU6CisgICAgICAgICAgICAgICAgZml0bmVzcyArPSAxMAorICAgICAgICAgICAgZm9yIGtleSBpbiB0YXJnZXRfcGFyYW1zOgorICAgICAgICAgICAgICAgIGlmIGtleSAhPSAncScgYW5kIGtleSBpbiBwYXJhbXM6CisgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtc1trZXldID09IHRhcmdldF9wYXJhbXNba2V5XToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpdG5lc3MgKz0gMQorICAgICAgICAgICAgaWYgZml0bmVzcyA+IGJlc3RfZml0bmVzczoKKyAgICAgICAgICAgICAgICBiZXN0X2ZpdG5lc3MgPSBmaXRuZXNzCisgICAgICAgICAgICAgICAgYmVzdF9maXRfcSA9IHBhcmFtc1sncSddCisgICAgcmV0dXJuIGJlc3RfZml0bmVzcywgZmxvYXQoYmVzdF9maXRfcSkKKworZGVmIHF1YWxpdHlfcGFyc2VkKG1pbWVfdHlwZSwgcGFyc2VkX3Jhbmdlcyk6CisgICAgIiIiRmluZCB0aGUgYmVzdCBtYXRjaCBmb3IgYSBnaXZlbiBtaW1lLXR5cGUgYWdhaW5zdAorICAgIGEgbGlzdCBvZiBtZWRpYV9yYW5nZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbgorICAgIHBhcnNlZCBieSBwYXJzZV9tZWRpYV9yYW5nZSgpLiBSZXR1cm5zIHRoZQorICAgICdxJyBxdWFsaXR5IHBhcmFtZXRlciBvZiB0aGUgYmVzdCBtYXRjaCwgMCBpZiBubworICAgIG1hdGNoIHdhcyBmb3VuZC4gVGhpcyBmdW5jdGlvbiBiZWhhdmVzIHRoZSBzYW1lIGFzIHF1YWxpdHkoKQorICAgIGV4Y2VwdCB0aGF0ICdwYXJzZWRfcmFuZ2VzJyBtdXN0IGJlIGEgbGlzdCBvZgorICAgIHBhcnNlZCBtZWRpYSByYW5nZXMuIiIiCisgICAgcmV0dXJuIGZpdG5lc3NfYW5kX3F1YWxpdHlfcGFyc2VkKG1pbWVfdHlwZSwgcGFyc2VkX3JhbmdlcylbMV0KKworZGVmIHF1YWxpdHkobWltZV90eXBlLCByYW5nZXMpOgorICAgICIiIlJldHVybnMgdGhlIHF1YWxpdHkgJ3EnIG9mIGEgbWltZS10eXBlIHdoZW4gY29tcGFyZWQKKyAgICBhZ2FpbnN0IHRoZSBtZWRpYS1yYW5nZXMgaW4gcmFuZ2VzLiBGb3IgZXhhbXBsZToKKworICAgID4+PiBxdWFsaXR5KCd0ZXh0L2h0bWwnLCd0ZXh0Lyo7cT0wLjMsIHRleHQvaHRtbDtxPTAuNywgdGV4dC9odG1sO2xldmVsPTEsIHRleHQvaHRtbDtsZXZlbD0yO3E9MC40LCAqLyo7cT0wLjUnKQorICAgIDAuNworCisgICAgIiIiCisgICAgcGFyc2VkX3JhbmdlcyA9IG1hcChwYXJzZV9tZWRpYV9yYW5nZSwgcmFuZ2VzLnNwbGl0KCcsJykpCisgICAgcmV0dXJuIHF1YWxpdHlfcGFyc2VkKG1pbWVfdHlwZSwgcGFyc2VkX3JhbmdlcykKKworZGVmIGJlc3RfbWF0Y2goc3VwcG9ydGVkLCBoZWFkZXIpOgorICAgICIiIlRha2VzIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbWltZS10eXBlcyBhbmQgZmluZHMgdGhlIGJlc3QKKyAgICBtYXRjaCBmb3IgYWxsIHRoZSBtZWRpYS1yYW5nZXMgbGlzdGVkIGluIGhlYWRlci4gSW4gY2FzZSBvZgorICAgIGFtYmlndWl0eSwgd2hhdGV2ZXIgY29tZXMgZmlyc3QgaW4gdGhlIGxpc3Qgd2lsbCBiZSBjaG9zZW4uCisgICAgVGhlIHZhbHVlIG9mIGhlYWRlciBtdXN0IGJlIGEgc3RyaW5nIHRoYXQgY29uZm9ybXMgdG8gdGhlIGZvcm1hdAorICAgIG9mIHRoZSBIVFRQIEFjY2VwdDogaGVhZGVyLiBUaGUgdmFsdWUgb2YgJ3N1cHBvcnRlZCcgaXMgYSBsaXN0CisgICAgb2YgbWltZS10eXBlcy4KKworICAgID4+PiBiZXN0X21hdGNoKFsnYXBwbGljYXRpb24veGJlbCt4bWwnLCAndGV4dC94bWwnXSwgJ3RleHQvKjtxPTAuNSwqLyo7IHE9MC4xJykKKyAgICAndGV4dC94bWwnCisgICAgIiIiCisgICAgaWYgbm90IHN1cHBvcnRlZDoKKyAgICAgICAgcmV0dXJuICcnCisgICAgcGFyc2VkX2hlYWRlciA9IGxpc3QobWFwKHBhcnNlX21lZGlhX3JhbmdlLCBoZWFkZXIuc3BsaXQoJywnKSkpCisgICAgYmVzdF90eXBlID0gbWF4KFsKKyAgICAgICAgICAgIChmaXRuZXNzX2FuZF9xdWFsaXR5X3BhcnNlZChtaW1lX3R5cGUsIHBhcnNlZF9oZWFkZXIpLCAtbikKKyAgICAgICAgICAgIGZvciBuLCBtaW1lX3R5cGUgaW4gZW51bWVyYXRlKHN1cHBvcnRlZCldKQorICAgIHJldHVybiBiZXN0X3R5cGVbMF1bMV0gYW5kIHN1cHBvcnRlZFstYmVzdF90eXBlWzFdXSBvciAnJworCitkZWYgZGVzaXJlZF9tYXRjaGVzKGRlc2lyZWQsIGhlYWRlcik6CisgICAgIiIiVGFrZXMgYSBsaXN0IG9mIGRlc2lyZWQgbWltZS10eXBlcyBpbiB0aGUgb3JkZXIgdGhlIHNlcnZlciBwcmVmZXJzIHRvCisgICAgc2VuZCB0aGVtIHJlZ2FyZGxlc3Mgb2YgdGhlIGJyb3dzZXJzIHByZWZlcmVuY2UuCisKKyAgICBCcm93c2VycyAoc3VjaCBhcyBGaXJlZm94KSB0ZWNobmljYWxseSB3YW50IFhNTCBvdmVyIEhUTUwgZGVwZW5kaW5nIG9uIGhvdworICAgIG9uZSByZWFkcyB0aGUgc3BlY2lmaWNhdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBwcm92aWRlZCBmb3IgYSBzZXJ2ZXIgdG8KKyAgICBkZWNsYXJlIGEgc2V0IG9mIGRlc2lyZWQgbWltZS10eXBlcyBpdCBzdXBwb3J0cywgYW5kIHJldHVybnMgYSBzdWJzZXQgb2YKKyAgICB0aGUgZGVzaXJlZCBsaXN0IGluIHRoZSBzYW1lIG9yZGVyIHNob3VsZCBlYWNoIG9uZSBiZSBBY2NlcHRlZCBieSB0aGUKKyAgICBicm93c2VyLgorCisgICAgPj4+IGRlc2lyZWRfbWF0Y2hlcyhbJ3RleHQvaHRtbCcsICdhcHBsaWNhdGlvbi94bWwnXSwgXAorICAgIC4uLiAgICAgJ3RleHQveG1sLGFwcGxpY2F0aW9uL3htbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsdGV4dC9odG1sO3E9MC45LHRleHQvcGxhaW47cT0wLjgsaW1hZ2UvcG5nJykKKyAgICBbJ3RleHQvaHRtbCcsICdhcHBsaWNhdGlvbi94bWwnXQorICAgID4+PiBkZXNpcmVkX21hdGNoZXMoWyd0ZXh0L2h0bWwnLCAnYXBwbGljYXRpb24veG1sJ10sICdhcHBsaWNhdGlvbi94bWwsYXBwbGljYXRpb24vanNvbicpCisgICAgWydhcHBsaWNhdGlvbi94bWwnXQorICAgICIiIgorICAgIHBhcnNlZF9yYW5nZXMgPSBsaXN0KG1hcChwYXJzZV9tZWRpYV9yYW5nZSwgaGVhZGVyLnNwbGl0KCcsJykpKQorICAgIHJldHVybiBbbWltZXR5cGUgZm9yIG1pbWV0eXBlIGluIGRlc2lyZWQKKyAgICAgICAgaWYgcXVhbGl0eV9wYXJzZWQobWltZXR5cGUsIHBhcnNlZF9yYW5nZXMpXQorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9tdWx0aWRpY3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9tdWx0aWRpY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzAxZDFhYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL211bHRpZGljdC5weQpAQCAtMCwwICsxLDQyOSBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZSAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykKKyMgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAoraW1wb3J0IGNnaQoraW1wb3J0IGNvcHkKK2ltcG9ydCBzaXgKK2ltcG9ydCBzeXMKKwordHJ5OgorICAgICMgUHl0aG9uIDMKKyAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlTWFwcGluZyBhcyBEaWN0TWl4aW4KK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFB5dGhvbiAyCisgICAgZnJvbSBVc2VyRGljdCBpbXBvcnQgRGljdE1peGluCisKK2NsYXNzIE11bHRpRGljdChEaWN0TWl4aW4pOgorCisgICAgIiIiCisgICAgQW4gb3JkZXJlZCBkaWN0aW9uYXJ5IHRoYXQgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzIGZvciBlYWNoIGtleS4KKyAgICBBZGRzIHRoZSBtZXRob2RzIGdldGFsbCwgZ2V0b25lLCBtaXhlZCwgYW5kIGFkZCB0byB0aGUgbm9ybWFsCisgICAgZGljdGlvbmFyeSBpbnRlcmZhY2UuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBpZiBsZW4oYXJncykgPiAxOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICJNdWx0aURpY3QgY2FuIG9ubHkgYmUgY2FsbGVkIHdpdGggb25lIHBvc2l0aW9uYWwgYXJndW1lbnQiKQorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgaWYgaGFzYXR0cihhcmdzWzBdLCAnaXRlcml0ZW1zJyk6CisgICAgICAgICAgICAgICAgaXRlbXMgPSBhcmdzWzBdLml0ZXJpdGVtcygpCisgICAgICAgICAgICBlbGlmIGhhc2F0dHIoYXJnc1swXSwgJ2l0ZW1zJyk6CisgICAgICAgICAgICAgICAgaXRlbXMgPSBhcmdzWzBdLml0ZW1zKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaXRlbXMgPSBhcmdzWzBdCisgICAgICAgICAgICBzZWxmLl9pdGVtcyA9IGxpc3QoaXRlbXMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9pdGVtcyA9IFtdCisgICAgICAgIHNlbGYuX2l0ZW1zLmV4dGVuZChzaXguaXRlcml0ZW1zKGt3KSkKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBmb3IgaywgdiBpbiBzZWxmLl9pdGVtczoKKyAgICAgICAgICAgIGlmIGsgPT0ga2V5OgorICAgICAgICAgICAgICAgIHJldHVybiB2CisgICAgICAgIHJhaXNlIEtleUVycm9yKHJlcHIoa2V5KSkKKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsIHNlbGZba2V5XQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuX2l0ZW1zLmFwcGVuZCgoa2V5LCB2YWx1ZSkpCisKKyAgICBkZWYgYWRkKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQWRkIHRoZSBrZXkgYW5kIHZhbHVlLCBub3Qgb3ZlcndyaXRpbmcgYW55IHByZXZpb3VzIHZhbHVlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5faXRlbXMuYXBwZW5kKChrZXksIHZhbHVlKSkKKworICAgIGRlZiBnZXRhbGwoc2VsZiwga2V5KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgYWxsIHZhbHVlcyBtYXRjaGluZyB0aGUga2V5IChtYXkgYmUgYW4gZW1wdHkgbGlzdCkKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2l0ZW1zOgorICAgICAgICAgICAgaWYgdHlwZShrZXkpID09IHR5cGUoaykgYW5kIGtleSA9PSBrOgorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodikKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIGdldG9uZShzZWxmLCBrZXkpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0IG9uZSB2YWx1ZSBtYXRjaGluZyB0aGUga2V5LCByYWlzaW5nIGEgS2V5RXJyb3IgaWYgbXVsdGlwbGUKKyAgICAgICAgdmFsdWVzIHdlcmUgZm91bmQuCisgICAgICAgICIiIgorICAgICAgICB2ID0gc2VsZi5nZXRhbGwoa2V5KQorICAgICAgICBpZiBub3QgdjoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdLZXkgbm90IGZvdW5kOiAlcicgJSBrZXkpCisgICAgICAgIGlmIGxlbih2KSA+IDE6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcignTXVsdGlwbGUgdmFsdWVzIG1hdGNoICVyOiAlcicgJSAoa2V5LCB2KSkKKyAgICAgICAgcmV0dXJuIHZbMF0KKworICAgIGRlZiBtaXhlZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBkaWN0aW9uYXJ5IHdoZXJlIHRoZSB2YWx1ZXMgYXJlIGVpdGhlciBzaW5nbGUKKyAgICAgICAgdmFsdWVzLCBvciBhIGxpc3Qgb2YgdmFsdWVzIHdoZW4gYSBrZXkvdmFsdWUgYXBwZWFycyBtb3JlIHRoYW4KKyAgICAgICAgb25jZSBpbiB0aGlzIGRpY3Rpb25hcnkuICBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGtpbmQgb2YKKyAgICAgICAgZGljdGlvbmFyeSBvZnRlbiB1c2VkIHRvIHJlcHJlc2VudCB0aGUgdmFyaWFibGVzIGluIGEgd2ViCisgICAgICAgIHJlcXVlc3QuCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSB7fQorICAgICAgICBtdWx0aSA9IHt9CisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYuX2l0ZW1zOgorICAgICAgICAgICAgaWYga2V5IGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAjIFdlIGRvIHRoaXMgdG8gbm90IGNsb2JiZXIgYW55IGxpc3RzIHRoYXQgYXJlCisgICAgICAgICAgICAgICAgIyAqYWN0dWFsKiB2YWx1ZXMgaW4gdGhpcyBkaWN0aW9uYXJ5OgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiBtdWx0aToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0uYXBwZW5kKHZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gW3Jlc3VsdFtrZXldLCB2YWx1ZV0KKyAgICAgICAgICAgICAgICAgICAgbXVsdGlba2V5XSA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgZGljdF9vZl9saXN0cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBkaWN0aW9uYXJ5IHdoZXJlIGVhY2gga2V5IGlzIGFzc29jaWF0ZWQgd2l0aCBhCisgICAgICAgIGxpc3Qgb2YgdmFsdWVzLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0ge30KKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2VsZi5faXRlbXM6CisgICAgICAgICAgICBpZiBrZXkgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBbdmFsdWVdCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBpdGVtcyA9IHNlbGYuX2l0ZW1zCisgICAgICAgIGZvdW5kID0gRmFsc2UKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGl0ZW1zKS0xLCAtMSwgLTEpOgorICAgICAgICAgICAgaWYgdHlwZShpdGVtc1tpXVswXSkgPT0gdHlwZShrZXkpIGFuZCBpdGVtc1tpXVswXSA9PSBrZXk6CisgICAgICAgICAgICAgICAgZGVsIGl0ZW1zW2ldCisgICAgICAgICAgICAgICAgZm91bmQgPSBUcnVlCisgICAgICAgIGlmIG5vdCBmb3VuZDoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKHJlcHIoa2V5KSkKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5faXRlbXM6CisgICAgICAgICAgICBpZiB0eXBlKGspID09IHR5cGUoa2V5KSBhbmQgayA9PSBrZXk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBoYXNfa2V5ID0gX19jb250YWluc19fCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIHNlbGYuX2l0ZW1zID0gW10KKworICAgIGRlZiBjb3B5KHNlbGYpOgorICAgICAgICByZXR1cm4gTXVsdGlEaWN0KHNlbGYpCisKKyAgICBkZWYgc2V0ZGVmYXVsdChzZWxmLCBrZXksIGRlZmF1bHQ9Tm9uZSk6CisgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2l0ZW1zOgorICAgICAgICAgICAgaWYga2V5ID09IGs6CisgICAgICAgICAgICAgICAgcmV0dXJuIHYKKyAgICAgICAgc2VsZi5faXRlbXMuYXBwZW5kKChrZXksIGRlZmF1bHQpKQorICAgICAgICByZXR1cm4gZGVmYXVsdAorCisgICAgZGVmIHBvcChzZWxmLCBrZXksICphcmdzKToKKyAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigicG9wIGV4cGVjdGVkIGF0IG1vc3QgMiBhcmd1bWVudHMsIGdvdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJlcHIoMSArIGxlbihhcmdzKSkpCisgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihzZWxmLl9pdGVtcykpOgorICAgICAgICAgICAgaWYgdHlwZShzZWxmLl9pdGVtc1tpXVswXSkgPT0gdHlwZShrZXkpIGFuZCBzZWxmLl9pdGVtc1tpXVswXSA9PSBrZXk6CisgICAgICAgICAgICAgICAgdiA9IHNlbGYuX2l0ZW1zW2ldWzFdCisgICAgICAgICAgICAgICAgZGVsIHNlbGYuX2l0ZW1zW2ldCisgICAgICAgICAgICAgICAgcmV0dXJuIHYKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIHJldHVybiBhcmdzWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihyZXByKGtleSkpCisKKyAgICBkZWYgcG9waXRlbShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2l0ZW1zLnBvcCgpCisKKyAgICBkZWYgdXBkYXRlKHNlbGYsIG90aGVyPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgaWYgb3RoZXIgaXMgTm9uZToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxpZiBoYXNhdHRyKG90aGVyLCAnaXRlbXMnKToKKyAgICAgICAgICAgIHNlbGYuX2l0ZW1zLmV4dGVuZChvdGhlci5pdGVtcygpKQorICAgICAgICBlbGlmIGhhc2F0dHIob3RoZXIsICdrZXlzJyk6CisgICAgICAgICAgICBmb3IgayBpbiBvdGhlci5rZXlzKCk6CisgICAgICAgICAgICAgICAgc2VsZi5faXRlbXMuYXBwZW5kKChrLCBvdGhlcltrXSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmb3IgaywgdiBpbiBvdGhlcjoKKyAgICAgICAgICAgICAgICBzZWxmLl9pdGVtcy5hcHBlbmQoKGssIHYpKQorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICBzZWxmLnVwZGF0ZShrd2FyZ3MpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGl0ZW1zID0gJywgJy5qb2luKFsnKCVyLCAlciknICUgdiBmb3IgdiBpbiBzZWxmLl9pdGVtc10pCisgICAgICAgIHJldHVybiAnJXMoWyVzXSknICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBpdGVtcykKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2l0ZW1zKQorCisgICAgIyMKKyAgICAjIyBBbGwgdGhlIGl0ZXJhdGlvbjoKKyAgICAjIworCisgICAgZGVmIGtleXMoc2VsZik6CisgICAgICAgIHJldHVybiBbayBmb3IgaywgdiBpbiBzZWxmLl9pdGVtc10KKworICAgIGRlZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5faXRlbXM6CisgICAgICAgICAgICB5aWVsZCBrCisKKyAgICBfX2l0ZXJfXyA9IGl0ZXJrZXlzCisKKyAgICBkZWYgaXRlbXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9pdGVtc1s6XQorCisgICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5faXRlbXMpCisKKyAgICBkZWYgdmFsdWVzKHNlbGYpOgorICAgICAgICByZXR1cm4gW3YgZm9yIGssIHYgaW4gc2VsZi5faXRlbXNdCisKKyAgICBkZWYgaXRlcnZhbHVlcyhzZWxmKToKKyAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5faXRlbXM6CisgICAgICAgICAgICB5aWVsZCB2CisKK2NsYXNzIFVuaWNvZGVNdWx0aURpY3QoRGljdE1peGluKToKKyAgICAiIiIKKyAgICBBIE11bHRpRGljdCB3cmFwcGVyIHRoYXQgZGVjb2RlcyByZXR1cm5lZCB2YWx1ZXMgdG8gdW5pY29kZSBvbiB0aGUKKyAgICBmbHkuIERlY29kaW5nIGlzIG5vdCBhcHBsaWVkIHRvIGFzc2lnbmVkIHZhbHVlcy4KKworICAgIFRoZSBrZXkvdmFsdWUgY29udGVudHMgYXJlIGFzc3VtZWQgdG8gYmUgYGBzdHJgYC9gYHN0cnNgYCBvcgorICAgIGBgc3RyYGAvYGBGaWVsZFN0b3JhZ2VzYGAgKGFzIGlzIHJldHVybmVkIGJ5IHRoZSBgYHBhc3RlLnJlcXVlc3QucGFyc2VfYGAKKyAgICBmdW5jdGlvbnMpLgorCisgICAgQ2FuIG9wdGlvbmFsbHkgYWxzbyBkZWNvZGUga2V5cyB3aGVuIHRoZSBgYGRlY29kZV9rZXlzYGAgYXJndW1lbnQgaXMKKyAgICBUcnVlLgorCisgICAgYGBGaWVsZFN0b3JhZ2VgYCBpbnN0YW5jZXMgYXJlIGNsb25lZCwgYW5kIHRoZSBjbG9uZSdzIGBgZmlsZW5hbWVgYAorICAgIHZhcmlhYmxlIGlzIGRlY29kZWQuIEl0cyBgYG5hbWVgYCB2YXJpYWJsZSBpcyBkZWNvZGVkIHdoZW4gYGBkZWNvZGVfa2V5c2BgCisgICAgaXMgZW5hYmxlZC4KKworICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdWx0aT1Ob25lLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9J3N0cmljdCcsCisgICAgICAgICAgICAgICAgIGRlY29kZV9rZXlzPUZhbHNlKToKKyAgICAgICAgc2VsZi5tdWx0aSA9IG11bHRpCisgICAgICAgIGlmIGVuY29kaW5nIGlzIE5vbmU6CisgICAgICAgICAgICBlbmNvZGluZyA9IHN5cy5nZXRkZWZhdWx0ZW5jb2RpbmcoKQorICAgICAgICBzZWxmLmVuY29kaW5nID0gZW5jb2RpbmcKKyAgICAgICAgc2VsZi5lcnJvcnMgPSBlcnJvcnMKKyAgICAgICAgc2VsZi5kZWNvZGVfa2V5cyA9IGRlY29kZV9rZXlzCisgICAgICAgIGlmIHNlbGYuZGVjb2RlX2tleXM6CisgICAgICAgICAgICBpdGVtcyA9IHNlbGYubXVsdGkuX2l0ZW1zCisgICAgICAgICAgICBmb3IgaW5kZXgsIGl0ZW0gaW4gZW51bWVyYXRlKGl0ZW1zKToKKyAgICAgICAgICAgICAgICBrZXksIHZhbHVlID0gaXRlbQorICAgICAgICAgICAgICAgIGtleSA9IHNlbGYuX2VuY29kZV9rZXkoa2V5KQorICAgICAgICAgICAgICAgIGl0ZW1zW2luZGV4XSA9IChrZXksIHZhbHVlKQorCisgICAgZGVmIF9lbmNvZGVfa2V5KHNlbGYsIGtleSk6CisgICAgICAgIGlmIHNlbGYuZGVjb2RlX2tleXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAga2V5ID0ga2V5LmVuY29kZShzZWxmLmVuY29kaW5nLCBzZWxmLmVycm9ycykKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiBrZXkKKworICAgIGRlZiBfZGVjb2RlX2tleShzZWxmLCBrZXkpOgorICAgICAgICBpZiBzZWxmLmRlY29kZV9rZXlzOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGtleSA9IGtleS5kZWNvZGUoc2VsZi5lbmNvZGluZywgc2VsZi5lcnJvcnMpCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICByZXR1cm4ga2V5CisKKyAgICBkZWYgX2RlY29kZV92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBEZWNvZGUgdGhlIHNwZWNpZmllZCB2YWx1ZSB0byB1bmljb2RlLiBBc3N1bWVzIHZhbHVlIGlzIGEgYGBzdHJgYCBvcgorICAgICAgICBgRmllbGRTdG9yYWdlYGAgb2JqZWN0LgorCisgICAgICAgIGBgRmllbGRTdG9yYWdlYGAgb2JqZWN0cyBhcmUgc3BlY2lhbGx5IGhhbmRsZWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBjZ2kuRmllbGRTdG9yYWdlKToKKyAgICAgICAgICAgICMgZGVjb2RlIEZpZWxkU3RvcmFnZSdzIGZpZWxkIG5hbWUgYW5kIGZpbGVuYW1lCisgICAgICAgICAgICB2YWx1ZSA9IGNvcHkuY29weSh2YWx1ZSkKKyAgICAgICAgICAgIGlmIHNlbGYuZGVjb2RlX2tleXMgYW5kIGlzaW5zdGFuY2UodmFsdWUubmFtZSwgc2l4LmJpbmFyeV90eXBlKToKKyAgICAgICAgICAgICAgICB2YWx1ZS5uYW1lID0gdmFsdWUubmFtZS5kZWNvZGUoc2VsZi5lbmNvZGluZywgc2VsZi5lcnJvcnMpCisgICAgICAgICAgICBpZiBzaXguUFkyOgorICAgICAgICAgICAgICAgIHZhbHVlLmZpbGVuYW1lID0gdmFsdWUuZmlsZW5hbWUuZGVjb2RlKHNlbGYuZW5jb2RpbmcsIHNlbGYuZXJyb3JzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZGVjb2RlKHNlbGYuZW5jb2RpbmcsIHNlbGYuZXJyb3JzKQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0gc2VsZi5fZW5jb2RlX2tleShrZXkpCisgICAgICAgIHJldHVybiBzZWxmLl9kZWNvZGVfdmFsdWUoc2VsZi5tdWx0aS5fX2dldGl0ZW1fXyhrZXkpKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICBrZXkgPSBzZWxmLl9lbmNvZGVfa2V5KGtleSkKKyAgICAgICAgc2VsZi5tdWx0aS5fX3NldGl0ZW1fXyhrZXksIHZhbHVlKQorCisgICAgZGVmIGFkZChzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIEFkZCB0aGUga2V5IGFuZCB2YWx1ZSwgbm90IG92ZXJ3cml0aW5nIGFueSBwcmV2aW91cyB2YWx1ZS4KKyAgICAgICAgIiIiCisgICAgICAgIGtleSA9IHNlbGYuX2VuY29kZV9rZXkoa2V5KQorICAgICAgICBzZWxmLm11bHRpLmFkZChrZXksIHZhbHVlKQorCisgICAgZGVmIGdldGFsbChzZWxmLCBrZXkpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiBhbGwgdmFsdWVzIG1hdGNoaW5nIHRoZSBrZXkgKG1heSBiZSBhbiBlbXB0eSBsaXN0KQorICAgICAgICAiIiIKKyAgICAgICAga2V5ID0gc2VsZi5fZW5jb2RlX2tleShrZXkpCisgICAgICAgIHJldHVybiBbc2VsZi5fZGVjb2RlX3ZhbHVlKHYpIGZvciB2IGluIHNlbGYubXVsdGkuZ2V0YWxsKGtleSldCisKKyAgICBkZWYgZ2V0b25lKHNlbGYsIGtleSk6CisgICAgICAgICIiIgorICAgICAgICBHZXQgb25lIHZhbHVlIG1hdGNoaW5nIHRoZSBrZXksIHJhaXNpbmcgYSBLZXlFcnJvciBpZiBtdWx0aXBsZQorICAgICAgICB2YWx1ZXMgd2VyZSBmb3VuZC4KKyAgICAgICAgIiIiCisgICAgICAgIGtleSA9IHNlbGYuX2VuY29kZV9rZXkoa2V5KQorICAgICAgICByZXR1cm4gc2VsZi5fZGVjb2RlX3ZhbHVlKHNlbGYubXVsdGkuZ2V0b25lKGtleSkpCisKKyAgICBkZWYgbWl4ZWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgZGljdGlvbmFyeSB3aGVyZSB0aGUgdmFsdWVzIGFyZSBlaXRoZXIgc2luZ2xlCisgICAgICAgIHZhbHVlcywgb3IgYSBsaXN0IG9mIHZhbHVlcyB3aGVuIGEga2V5L3ZhbHVlIGFwcGVhcnMgbW9yZSB0aGFuCisgICAgICAgIG9uY2UgaW4gdGhpcyBkaWN0aW9uYXJ5LiAgVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBraW5kIG9mCisgICAgICAgIGRpY3Rpb25hcnkgb2Z0ZW4gdXNlZCB0byByZXByZXNlbnQgdGhlIHZhcmlhYmxlcyBpbiBhIHdlYgorICAgICAgICByZXF1ZXN0LgorICAgICAgICAiIiIKKyAgICAgICAgdW5pY29kZV9taXhlZCA9IHt9CisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNpeC5pdGVyaXRlbXMoc2VsZi5tdWx0aS5taXhlZCgpKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgorICAgICAgICAgICAgICAgIHZhbHVlID0gW3NlbGYuX2RlY29kZV92YWx1ZSh2YWx1ZSkgZm9yIHZhbHVlIGluIHZhbHVlXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX2RlY29kZV92YWx1ZSh2YWx1ZSkKKyAgICAgICAgICAgIHVuaWNvZGVfbWl4ZWRbc2VsZi5fZGVjb2RlX2tleShrZXkpXSA9IHZhbHVlCisgICAgICAgIHJldHVybiB1bmljb2RlX21peGVkCisKKyAgICBkZWYgZGljdF9vZl9saXN0cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBkaWN0aW9uYXJ5IHdoZXJlIGVhY2gga2V5IGlzIGFzc29jaWF0ZWQgd2l0aCBhCisgICAgICAgIGxpc3Qgb2YgdmFsdWVzLgorICAgICAgICAiIiIKKyAgICAgICAgdW5pY29kZV9kaWN0ID0ge30KKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2l4Lml0ZXJpdGVtcyhzZWxmLm11bHRpLmRpY3Rfb2ZfbGlzdHMoKSk6CisgICAgICAgICAgICB2YWx1ZSA9IFtzZWxmLl9kZWNvZGVfdmFsdWUodmFsdWUpIGZvciB2YWx1ZSBpbiB2YWx1ZV0KKyAgICAgICAgICAgIHVuaWNvZGVfZGljdFtzZWxmLl9kZWNvZGVfa2V5KGtleSldID0gdmFsdWUKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfZGljdAorCisgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIGtleSA9IHNlbGYuX2VuY29kZV9rZXkoa2V5KQorICAgICAgICBzZWxmLm11bHRpLl9fZGVsaXRlbV9fKGtleSkKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0gc2VsZi5fZW5jb2RlX2tleShrZXkpCisgICAgICAgIHJldHVybiBzZWxmLm11bHRpLl9fY29udGFpbnNfXyhrZXkpCisKKyAgICBoYXNfa2V5ID0gX19jb250YWluc19fCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIHNlbGYubXVsdGkuY2xlYXIoKQorCisgICAgZGVmIGNvcHkoc2VsZik6CisgICAgICAgIHJldHVybiBVbmljb2RlTXVsdGlEaWN0KHNlbGYubXVsdGkuY29weSgpLCBzZWxmLmVuY29kaW5nLCBzZWxmLmVycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlX2tleXM9c2VsZi5kZWNvZGVfa2V5cykKKworICAgIGRlZiBzZXRkZWZhdWx0KHNlbGYsIGtleSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAga2V5ID0gc2VsZi5fZW5jb2RlX2tleShrZXkpCisgICAgICAgIHJldHVybiBzZWxmLl9kZWNvZGVfdmFsdWUoc2VsZi5tdWx0aS5zZXRkZWZhdWx0KGtleSwgZGVmYXVsdCkpCisKKyAgICBkZWYgcG9wKHNlbGYsIGtleSwgKmFyZ3MpOgorICAgICAgICBrZXkgPSBzZWxmLl9lbmNvZGVfa2V5KGtleSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RlY29kZV92YWx1ZShzZWxmLm11bHRpLnBvcChrZXksICphcmdzKSkKKworICAgIGRlZiBwb3BpdGVtKHNlbGYpOgorICAgICAgICBrLCB2ID0gc2VsZi5tdWx0aS5wb3BpdGVtKCkKKyAgICAgICAgcmV0dXJuIChzZWxmLl9kZWNvZGVfa2V5KGspLCBzZWxmLl9kZWNvZGVfdmFsdWUodikpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGl0ZW1zID0gJywgJy5qb2luKFsnKCVyLCAlciknICUgdiBmb3IgdiBpbiBzZWxmLml0ZW1zKCldKQorICAgICAgICByZXR1cm4gJyVzKFslc10pJyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgaXRlbXMpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubXVsdGkuX19sZW5fXygpCisKKyAgICAjIworICAgICMjIEFsbCB0aGUgaXRlcmF0aW9uOgorICAgICMjCisKKyAgICBkZWYga2V5cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLl9kZWNvZGVfa2V5KGspIGZvciBrIGluIHNlbGYubXVsdGkuaXRlcmtleXMoKV0KKworICAgIGRlZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgZm9yIGsgaW4gc2VsZi5tdWx0aS5pdGVya2V5cygpOgorICAgICAgICAgICAgeWllbGQgc2VsZi5fZGVjb2RlX2tleShrKQorCisgICAgX19pdGVyX18gPSBpdGVya2V5cworCisgICAgZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICByZXR1cm4gWyhzZWxmLl9kZWNvZGVfa2V5KGspLCBzZWxmLl9kZWNvZGVfdmFsdWUodikpIGZvciBcCisgICAgICAgICAgICAgICAgICAgIGssIHYgaW4gc2l4Lml0ZXJpdGVtcyhzZWxmLm11bHRpKV0KKworICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6CisgICAgICAgIGZvciBrLCB2IGluIHNpeC5pdGVyaXRlbXMoc2VsZi5tdWx0aSk6CisgICAgICAgICAgICB5aWVsZCAoc2VsZi5fZGVjb2RlX2tleShrKSwgc2VsZi5fZGVjb2RlX3ZhbHVlKHYpKQorCisgICAgZGVmIHZhbHVlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLl9kZWNvZGVfdmFsdWUodikgZm9yIHYgaW4gc2VsZi5tdWx0aS5pdGVydmFsdWVzKCldCisKKyAgICBkZWYgaXRlcnZhbHVlcyhzZWxmKToKKyAgICAgICAgZm9yIHYgaW4gc2VsZi5tdWx0aS5pdGVydmFsdWVzKCk6CisgICAgICAgICAgICB5aWVsZCBzZWxmLl9kZWNvZGVfdmFsdWUodikKKworX190ZXN0X18gPSB7CisgICAgJ2dlbmVyYWwnOiAiIiIKKyAgICA+Pj4gZCA9IE11bHRpRGljdChhPTEsIGI9MikKKyAgICA+Pj4gZFsnYSddCisgICAgMQorICAgID4+PiBkLmdldGFsbCgnYycpCisgICAgW10KKyAgICA+Pj4gZC5hZGQoJ2EnLCAyKQorICAgID4+PiBkWydhJ10KKyAgICAxCisgICAgPj4+IGQuZ2V0YWxsKCdhJykKKyAgICBbMSwgMl0KKyAgICA+Pj4gZFsnYiddID0gNAorICAgID4+PiBkLmdldGFsbCgnYicpCisgICAgWzRdCisgICAgPj4+IGQua2V5cygpCisgICAgWydhJywgJ2EnLCAnYiddCisgICAgPj4+IGQuaXRlbXMoKQorICAgIFsoJ2EnLCAxKSwgKCdhJywgMiksICgnYicsIDQpXQorICAgID4+PiBkLm1peGVkKCkKKyAgICB7J2EnOiBbMSwgMl0sICdiJzogNH0KKyAgICA+Pj4gTXVsdGlEaWN0KFsoJ2EnLCAnYicpXSwgYz0yKQorICAgIE11bHRpRGljdChbKCdhJywgJ2InKSwgKCdjJywgMildKQorICAgICIiIn0KKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZCgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9xdW90aW5nLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvcXVvdGluZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjBkOWRhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvcXVvdGluZy5weQpAQCAtMCwwICsxLDg1IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKK2ltcG9ydCBjZ2kKK2ltcG9ydCBzaXgKK2ltcG9ydCByZQorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGh0bWxfZW50aXRpZXMKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgcXVvdGUsIHVucXVvdGUKKworCitfX2FsbF9fID0gWydodG1sX3F1b3RlJywgJ2h0bWxfdW5xdW90ZScsICd1cmxfcXVvdGUnLCAndXJsX3VucXVvdGUnLAorICAgICAgICAgICAnc3RyaXBfaHRtbCddCisKK2RlZmF1bHRfZW5jb2RpbmcgPSAnVVRGLTgnCisKK2RlZiBodG1sX3F1b3RlKHYsIGVuY29kaW5nPU5vbmUpOgorICAgIHIiIiIKKyAgICBRdW90ZSB0aGUgdmFsdWUgKHR1cm5lZCB0byBhIHN0cmluZykgYXMgSFRNTC4gIFRoaXMgcXVvdGVzIDwsID4sCisgICAgYW5kIHF1b3RlczoKKyAgICAiIiIKKyAgICBlbmNvZGluZyA9IGVuY29kaW5nIG9yIGRlZmF1bHRfZW5jb2RpbmcKKyAgICBpZiB2IGlzIE5vbmU6CisgICAgICAgIHJldHVybiAnJworICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBzaXguYmluYXJ5X3R5cGUpOgorICAgICAgICByZXR1cm4gY2dpLmVzY2FwZSh2LCAxKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHJldHVybiBjZ2kuZXNjYXBlKHYsIDEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gY2dpLmVzY2FwZSh2LmVuY29kZShlbmNvZGluZyksIDEpCisgICAgZWxzZToKKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHJldHVybiBjZ2kuZXNjYXBlKHNpeC50ZXh0X3R5cGUodiksIDEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gY2dpLmVzY2FwZShzaXgudGV4dF90eXBlKHYpLmVuY29kZShlbmNvZGluZyksIDEpCisKK191bnF1b3RlX3JlID0gcmUuY29tcGlsZShyJyYoW2EtekEtWl0rKTsnKQorZGVmIF9lbnRpdHlfc3ViYmVyKG1hdGNoLCBuYW1lMmM9aHRtbF9lbnRpdGllcy5uYW1lMmNvZGVwb2ludCk6CisgICAgY29kZSA9IG5hbWUyYy5nZXQobWF0Y2guZ3JvdXAoMSkpCisgICAgaWYgY29kZToKKyAgICAgICAgcmV0dXJuIHNpeC51bmljaHIoY29kZSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gbWF0Y2guZ3JvdXAoMCkKKworZGVmIGh0bWxfdW5xdW90ZShzLCBlbmNvZGluZz1Ob25lKToKKyAgICByIiIiCisgICAgRGVjb2RlIHRoZSB2YWx1ZS4KKworICAgICIiIgorICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LmJpbmFyeV90eXBlKToKKyAgICAgICAgcyA9IHMuZGVjb2RlKGVuY29kaW5nIG9yIGRlZmF1bHRfZW5jb2RpbmcpCisgICAgcmV0dXJuIF91bnF1b3RlX3JlLnN1YihfZW50aXR5X3N1YmJlciwgcykKKworZGVmIHN0cmlwX2h0bWwocyk6CisgICAgIyBzaG91bGQgdGhpcyB1c2UgaHRtbF91bnF1b3RlPworICAgIHMgPSByZS5zdWIoJzwuKj8+JywgJycsIHMpCisgICAgcyA9IGh0bWxfdW5xdW90ZShzKQorICAgIHJldHVybiBzCisKK2RlZiBub19xdW90ZShzKToKKyAgICAiIiIKKyAgICBRdW90aW5nIHRoYXQgZG9lc24ndCBkbyBhbnl0aGluZworICAgICIiIgorICAgIHJldHVybiBzCisKK19jb21tZW50X3F1b3RlX3JlID0gcmUuY29tcGlsZShyJ1wtXHMqXD4nKQorIyBFdmVyeXRoaW5nIGJ1dCBcciwgXG4sIFx0OgorX2JhZF9jaGFyc19yZSA9IHJlLmNvbXBpbGUoJ1tceDAwLVx4MDhceDBiLVx4MGNceDBlLVx4MWZdJykKK2RlZiBjb21tZW50X3F1b3RlKHMpOgorICAgICIiIgorICAgIFF1b3RlIHRoYXQgbWFrZXMgc3VyZSB0ZXh0IGNhbid0IGVzY2FwZSBhIGNvbW1lbnQKKyAgICAiIiIKKyAgICBjb21tZW50ID0gc3RyKHMpCisgICAgI2NvbW1lbnQgPSBfYmFkX2NoYXJzX3JlLnN1YignJywgY29tbWVudCkKKyAgICAjcHJpbnQoJ2luICcsIHJlcHIoc3RyKHMpKSkKKyAgICAjcHJpbnQoJ291dCcsIHJlcHIoY29tbWVudCkpCisgICAgY29tbWVudCA9IF9jb21tZW50X3F1b3RlX3JlLnN1YignLSZndDsnLCBjb21tZW50KQorICAgIHJldHVybiBjb21tZW50CisKK3VybF9xdW90ZSA9IHF1b3RlCit1cmxfdW5xdW90ZSA9IHVucXVvdGUKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZCgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC9zY2dpc2VydmVyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvc2NnaXNlcnZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzg2Yzg2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvc2NnaXNlcnZlci5weQpAQCAtMCwwICsxLDE3MiBAQAorIiIiCitTQ0dJLS0+V1NHSSBhcHBsaWNhdGlvbiBwcm94eSwgIlNXQVAiLgorCisoT3JpZ2luYWxseSB3cml0dGVuIGJ5IFRpdHVzIEJyb3duLikKKworVGhpcyBsZXRzIGFuIFNDR0kgZnJvbnQtZW5kIGxpa2UgbW9kX3NjZ2kgYmUgdXNlZCB0byBleGVjdXRlIFdTR0kKK2FwcGxpY2F0aW9uIG9iamVjdHMuICBUbyB1c2UgaXQsIHN1YmNsYXNzIHRoZSBTV0FQIGNsYXNzIGxpa2Ugc286OgorCisgICBjbGFzcyBUZXN0QXBwSGFuZGxlcihzd2FwLlNXQVApOgorICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICBzZWxmLnByZWZpeCA9ICcvY2FuYWwnCisgICAgICAgICAgIHNlbGYuYXBwX29iaiA9IFRlc3RBcHBDbGFzcworICAgICAgICAgICBzd2FwLlNXQVAuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorCit3aGVyZSAnVGVzdEFwcENsYXNzJyBpcyB0aGUgYXBwbGljYXRpb24gb2JqZWN0IGZyb20gV1NHSSBhbmQgJy9jYW5hbCcKK2lzIHRoZSBwcmVmaXggZm9yIHdoYXQgaXMgc2VydmVkIGJ5IHRoZSBTQ0dJIFdlYi1zZXJ2ZXItc2lkZSBwcm9jZXNzLgorCitUaGVuIGV4ZWN1dGUgdGhlIFNDR0kgaGFuZGxlciAiYXMgdXN1YWwiIGJ5IGRvaW5nIHNvbWV0aGluZyBsaWtlIHRoaXM6OgorCisgICBzY2dpX3NlcnZlci5TQ0dJU2VydmVyKFRlc3RBcHBIYW5kbGVyLCBwb3J0PTQwMDApLnNlcnZlKCkKKworYW5kIHBvaW50IG1vZF9zY2dpIChvciB3aGF0ZXZlciB5b3VyIFNDR0kgZnJvbnQgZW5kIGlzKSBhdCBwb3J0IDQwMDAuCisKK0t1ZG9zIHRvIHRoZSBXU0dJIGZvbGsgZm9yIHdyaXRpbmcgYSBuaWNlIFBFUCAmIHRoZSBRdWl4b3RlIGZvbGsgZm9yCit3cml0aW5nIGEgbmljZSBleHRlbnNpYmxlIFNDR0kgc2VydmVyIGZvciBQeXRob24hCisiIiIKKworaW1wb3J0IHNpeAoraW1wb3J0IHN5cworaW1wb3J0IHRpbWUKK2Zyb20gc2NnaSBpbXBvcnQgc2NnaV9zZXJ2ZXIKKworZGVmIGRlYnVnKG1zZyk6CisgICAgdGltZXN0YW1wID0gdGltZS5zdHJmdGltZSgiJVktJW0tJWQgJUg6JU06JVMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS5sb2NhbHRpbWUodGltZS50aW1lKCkpKQorICAgIHN5cy5zdGRlcnIud3JpdGUoIlslc10gJXNcbiIgJSAodGltZXN0YW1wLCBtc2cpKQorCitjbGFzcyBTV0FQKHNjZ2lfc2VydmVyLlNDR0lIYW5kbGVyKToKKyAgICAiIiIKKyAgICBTQ0dJLT5XU0dJIGFwcGxpY2F0aW9uIHByb3h5OiBsZXQgYW4gU0NHSSBzZXJ2ZXIgZXhlY3V0ZSBXU0dJCisgICAgYXBwbGljYXRpb24gb2JqZWN0cy4KKyAgICAiIiIKKyAgICBhcHBfb2JqID0gTm9uZQorICAgIHByZWZpeCA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBhc3NlcnQgc2VsZi5hcHBfb2JqLCAibXVzdCBzZXQgYXBwX29iaiIKKyAgICAgICAgYXNzZXJ0IHNlbGYucHJlZml4IGlzIG5vdCBOb25lLCAibXVzdCBzZXQgcHJlZml4IgorICAgICAgICBhcmdzID0gKHNlbGYsKSArIGFyZ3MKKyAgICAgICAgc2NnaV9zZXJ2ZXIuU0NHSUhhbmRsZXIuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIGhhbmRsZV9jb25uZWN0aW9uKHNlbGYsIGNvbm4pOgorICAgICAgICAiIiIKKyAgICAgICAgSGFuZGxlIGFuIGluZGl2aWR1YWwgY29ubmVjdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlucHV0ID0gY29ubi5tYWtlZmlsZSgiciIpCisgICAgICAgIG91dHB1dCA9IGNvbm4ubWFrZWZpbGUoInciKQorCisgICAgICAgIGVudmlyb24gPSBzZWxmLnJlYWRfZW52KGlucHV0KQorICAgICAgICBlbnZpcm9uWyd3c2dpLmlucHV0J10gICAgICAgID0gaW5wdXQKKyAgICAgICAgZW52aXJvblsnd3NnaS5lcnJvcnMnXSAgICAgICA9IHN5cy5zdGRlcnIKKyAgICAgICAgZW52aXJvblsnd3NnaS52ZXJzaW9uJ10gICAgICA9ICgxLCAwKQorICAgICAgICBlbnZpcm9uWyd3c2dpLm11bHRpdGhyZWFkJ10gID0gRmFsc2UKKyAgICAgICAgZW52aXJvblsnd3NnaS5tdWx0aXByb2Nlc3MnXSA9IFRydWUKKyAgICAgICAgZW52aXJvblsnd3NnaS5ydW5fb25jZSddICAgICA9IEZhbHNlCisKKyAgICAgICAgIyBkdW5ubyBob3cgU0NHSSBkb2VzIEhUVFBTIHNpZ25hbGxpbmc7IGNhbid0IHRlc3QgaXQgbXlzZWxmLi4uIEBDVEIKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ0hUVFBTJywnb2ZmJykgaW4gKCdvbicsJzEnKToKKyAgICAgICAgICAgIGVudmlyb25bJ3dzZ2kudXJsX3NjaGVtZSddID0gJ2h0dHBzJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW52aXJvblsnd3NnaS51cmxfc2NoZW1lJ10gPSAnaHR0cCcKKworICAgICAgICAjIyBTQ0dJIGRvZXMgc29tZSB3ZWlyZCBlbnZpcm9uIG1hbmdsZW1lbnQuICBXZSBuZWVkIHRvIHNldAorICAgICAgICAjIyBTQ1JJUFRfTkFNRSBmcm9tICdwcmVmaXgnIGFuZCB0aGVuIHNldCBQQVRIX0lORk8gZnJvbQorICAgICAgICAjIyBSRVFVRVNUX1VSSS4KKworICAgICAgICBwcmVmaXggPSBzZWxmLnByZWZpeAorICAgICAgICBwYXRoID0gZW52aXJvblsnUkVRVUVTVF9VUkknXVtsZW4ocHJlZml4KTpdLnNwbGl0KCc/JywgMSlbMF0KKworICAgICAgICBlbnZpcm9uWydTQ1JJUFRfTkFNRSddID0gcHJlZml4CisgICAgICAgIGVudmlyb25bJ1BBVEhfSU5GTyddID0gcGF0aAorCisgICAgICAgIGhlYWRlcnNfc2V0ID0gW10KKyAgICAgICAgaGVhZGVyc19zZW50ID0gW10KKyAgICAgICAgY2h1bmtzID0gW10KKyAgICAgICAgZGVmIHdyaXRlKGRhdGEpOgorICAgICAgICAgICAgY2h1bmtzLmFwcGVuZChkYXRhKQorCisgICAgICAgIGRlZiBzdGFydF9yZXNwb25zZShzdGF0dXMsIHJlc3BvbnNlX2hlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgaWYgZXhjX2luZm86CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBpZiBoZWFkZXJzX3NlbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFJlLXJhaXNlIG9yaWdpbmFsIGV4Y2VwdGlvbiBpZiBoZWFkZXJzIHNlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpeC5yZXJhaXNlKGV4Y19pbmZvWzBdLCBleGNfaW5mb1sxXSwgZXhjX2luZm9bMl0pCisgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgZXhjX2luZm8gPSBOb25lICAgICAjIGF2b2lkIGRhbmdsaW5nIGNpcmN1bGFyIHJlZgorICAgICAgICAgICAgZWxpZiBoZWFkZXJzX3NldDoKKyAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiSGVhZGVycyBhbHJlYWR5IHNldCEiKQorCisgICAgICAgICAgICBoZWFkZXJzX3NldFs6XSA9IFtzdGF0dXMsIHJlc3BvbnNlX2hlYWRlcnNdCisgICAgICAgICAgICByZXR1cm4gd3JpdGUKKworICAgICAgICAjIyMKKworICAgICAgICByZXN1bHQgPSBzZWxmLmFwcF9vYmooZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBkYXRhIGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICBjaHVua3MuYXBwZW5kKGRhdGEpCisKKyAgICAgICAgICAgICMgQmVmb3JlIHRoZSBmaXJzdCBvdXRwdXQsIHNlbmQgdGhlIHN0b3JlZCBoZWFkZXJzCisgICAgICAgICAgICBpZiBub3QgaGVhZGVyc19zZXQ6CisgICAgICAgICAgICAgICAgIyBFcnJvciAtLSB0aGUgYXBwIG5ldmVyIGNhbGxlZCBzdGFydF9yZXNwb25zZQorICAgICAgICAgICAgICAgIHN0YXR1cyA9ICc1MDAgU2VydmVyIEVycm9yJworICAgICAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldCisgICAgICAgICAgICAgICAgY2h1bmtzID0gWyJYWFggc3RhcnRfcmVzcG9uc2UgbmV2ZXIgY2FsbGVkIl0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzID0gaGVhZGVyc19zZW50WzpdID0gaGVhZGVyc19zZXQKKworICAgICAgICAgICAgb3V0cHV0LndyaXRlKCdTdGF0dXM6ICVzXHJcbicgJSBzdGF0dXMpCisgICAgICAgICAgICBmb3IgaGVhZGVyIGluIHJlc3BvbnNlX2hlYWRlcnM6CisgICAgICAgICAgICAgICAgb3V0cHV0LndyaXRlKCclczogJXNcclxuJyAlIGhlYWRlcikKKyAgICAgICAgICAgIG91dHB1dC53cml0ZSgnXHJcbicpCisKKyAgICAgICAgICAgIGZvciBkYXRhIGluIGNodW5rczoKKyAgICAgICAgICAgICAgICBvdXRwdXQud3JpdGUoZGF0YSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGlmIGhhc2F0dHIocmVzdWx0LCdjbG9zZScpOgorICAgICAgICAgICAgICAgIHJlc3VsdC5jbG9zZSgpCisKKyAgICAgICAgIyBTQ0dJIGJhY2tlbmRzIHVzZSBjb25uZWN0aW9uIGNsb3NpbmcgdG8gc2lnbmFsICdmaW5pJy4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW5wdXQuY2xvc2UoKQorICAgICAgICAgICAgb3V0cHV0LmNsb3NlKCkKKyAgICAgICAgICAgIGNvbm4uY2xvc2UoKQorICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6CisgICAgICAgICAgICBkZWJ1ZygiSU9FcnJvciB3aGlsZSBjbG9zaW5nIGNvbm5lY3Rpb24gaWdub3JlZDogJXMiICUgZXJyKQorCisKK2RlZiBzZXJ2ZV9hcHBsaWNhdGlvbihhcHBsaWNhdGlvbiwgcHJlZml4LCBwb3J0PU5vbmUsIGhvc3Q9Tm9uZSwgbWF4X2NoaWxkcmVuPU5vbmUpOgorICAgICIiIgorICAgIFNlcnZlIHRoZSBzcGVjaWZpZWQgV1NHSSBhcHBsaWNhdGlvbiB2aWEgU0NHSSBwcm94eS4KKworICAgIGBgYXBwbGljYXRpb25gYAorICAgICAgICBUaGUgV1NHSSBhcHBsaWNhdGlvbiB0byBzZXJ2ZS4KKworICAgIGBgcHJlZml4YGAKKyAgICAgICAgVGhlIHByZWZpeCBmb3Igd2hhdCBpcyBzZXJ2ZWQgYnkgdGhlIFNDR0kgV2ViLXNlcnZlci1zaWRlIHByb2Nlc3MuCisKKyAgICBgYHBvcnRgYAorICAgICAgICBPcHRpb25hbCBwb3J0IHRvIGJpbmQgdGhlIFNDR0kgcHJveHkgdG8uIERlZmF1bHRzIHRvIFNDR0lTZXJ2ZXIncworICAgICAgICBkZWZhdWx0IHBvcnQgdmFsdWUuCisKKyAgICBgYGhvc3RgYAorICAgICAgICBPcHRpb25hbCBob3N0IHRvIGJpbmQgdGhlIFNDR0kgcHJveHkgdG8uIERlZmF1bHRzIHRvIFNDR0lTZXJ2ZXIncworICAgICAgICBkZWZhdWx0IGhvc3QgdmFsdWUuCisKKyAgICBgYGhvc3RgYAorICAgICAgICBPcHRpb25hbCBtYXhpbXVtIG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMgdGhlIFNDR0lTZXJ2ZXIgd2lsbAorICAgICAgICBzcGF3bi4gRGVmYXVsdHMgdG8gU0NHSVNlcnZlcidzIGRlZmF1bHQgbWF4X2NoaWxkcmVuIHZhbHVlLgorICAgICIiIgorICAgIGNsYXNzIFNDR0lBcHBIYW5kbGVyKFNXQVApOgorICAgICAgICBkZWYgX19pbml0X18gKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZpeAorICAgICAgICAgICAgc2VsZi5hcHBfb2JqID0gYXBwbGljYXRpb24KKyAgICAgICAgICAgIFNXQVAuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorCisgICAga3dhcmdzID0gZGljdChoYW5kbGVyX2NsYXNzPVNDR0lBcHBIYW5kbGVyKQorICAgIGZvciBrd2FyZyBpbiAoJ2hvc3QnLCAncG9ydCcsICdtYXhfY2hpbGRyZW4nKToKKyAgICAgICAgaWYgbG9jYWxzKClba3dhcmddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAga3dhcmdzW2t3YXJnXSA9IGxvY2FscygpW2t3YXJnXQorCisgICAgc2NnaV9zZXJ2ZXIuU0NHSVNlcnZlcigqKmt3YXJncykuc2VydmUoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvdGVtcGxhdGUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC90ZW1wbGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDgyNmFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvdGVtcGxhdGUucHkKQEAgLTAsMCArMSw3NTcgQEAKKyIiIgorQSBzbWFsbCB0ZW1wbGF0aW5nIGxhbmd1YWdlCisKK1RoaXMgaW1wbGVtZW50cyBhIHNtYWxsIHRlbXBsYXRpbmcgbGFuZ3VhZ2UgZm9yIHVzZSBpbnRlcm5hbGx5IGluCitQYXN0ZSBhbmQgUGFzdGUgU2NyaXB0LiAgVGhpcyBsYW5ndWFnZSBpbXBsZW1lbnRzIGlmL2VsaWYvZWxzZSwKK2Zvci9jb250aW51ZS9icmVhaywgZXhwcmVzc2lvbnMsIGFuZCBibG9ja3Mgb2YgUHl0aG9uIGNvZGUuICBUaGUKK3N5bnRheCBpczo6CisKKyAge3thbnkgZXhwcmVzc2lvbiAoZnVuY3Rpb24gY2FsbHMgZXRjKX19CisgIHt7YW55IGV4cHJlc3Npb24gfCBmaWx0ZXJ9fQorICB7e2ZvciB4IGluIHl9fS4uLnt7ZW5kZm9yfX0KKyAge3tpZiB4fX14e3tlbGlmIHl9fXl7e2Vsc2V9fXp7e2VuZGlmfX0KKyAge3tweTp4PTF9fQorICB7e3B5OgorICBkZWYgZm9vKGJhcik6CisgICAgICByZXR1cm4gJ2JheicKKyAgfX0KKyAge3tkZWZhdWx0IHZhciA9IGRlZmF1bHRfdmFsdWV9fQorICB7eyMgY29tbWVudH19CisKK1lvdSB1c2UgdGhpcyB3aXRoIHRoZSBgYFRlbXBsYXRlYGAgY2xhc3Mgb3IgdGhlIGBgc3ViYGAgc2hvcnRjdXQuCitUaGUgYGBUZW1wbGF0ZWBgIGNsYXNzIHRha2VzIHRoZSB0ZW1wbGF0ZSBzdHJpbmcgYW5kIHRoZSBuYW1lIG9mCit0aGUgdGVtcGxhdGUgKGZvciBlcnJvcnMpIGFuZCBhIGRlZmF1bHQgbmFtZXNwYWNlLiAgVGhlbiAobGlrZQorYGBzdHJpbmcuVGVtcGxhdGVgYCkgeW91IGNhbiBjYWxsIHRoZSBgYHRtcGwuc3Vic3RpdHV0ZSgqKmt3KWBgCittZXRob2QgdG8gbWFrZSBhIHN1YnN0aXR1dGlvbiAob3IgYGB0bXBsLnN1YnN0aXR1dGUoYV9kaWN0KWBgKS4KKworYGBzdWIoY29udGVudCwgKiprdylgYCBzdWJzdGl0dXRlcyB0aGUgdGVtcGxhdGUgaW1tZWRpYXRlbHkuICBZb3UKK2NhbiB1c2UgYGBfX25hbWU9J3RtcGwuaHRtbCdgYCB0byBzZXQgdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlLgorCitJZiB0aGVyZSBhcmUgc3ludGF4IGVycm9ycyBgYFRlbXBsYXRlRXJyb3JgYCB3aWxsIGJlIHJhaXNlZC4KKyIiIgorCitpbXBvcnQgcmUKK2ltcG9ydCBzaXgKK2ltcG9ydCBzeXMKK2ltcG9ydCBjZ2kKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgcXVvdGUKK2Zyb20gcGFzdGUudXRpbC5sb29wZXIgaW1wb3J0IGxvb3BlcgorCitfX2FsbF9fID0gWydUZW1wbGF0ZUVycm9yJywgJ1RlbXBsYXRlJywgJ3N1YicsICdIVE1MVGVtcGxhdGUnLAorICAgICAgICAgICAnc3ViX2h0bWwnLCAnaHRtbCcsICdidW5jaCddCisKK3Rva2VuX3JlID0gcmUuY29tcGlsZShyJ1x7XHt8XH1cfScpCitpbl9yZSA9IHJlLmNvbXBpbGUocidccytpblxzKycpCit2YXJfcmUgPSByZS5jb21waWxlKHInXlthLXpfXVthLXowLTlfXSokJywgcmUuSSkKKworY2xhc3MgVGVtcGxhdGVFcnJvcihFeGNlcHRpb24pOgorICAgICIiIkV4Y2VwdGlvbiByYWlzZWQgd2hpbGUgcGFyc2luZyBhIHRlbXBsYXRlCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgcG9zaXRpb24sIG5hbWU9Tm9uZSk6CisgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5wb3NpdGlvbiA9IHBvc2l0aW9uCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBtc2cgPSAnJXMgYXQgbGluZSAlcyBjb2x1bW4gJXMnICUgKAorICAgICAgICAgICAgc2VsZi5tZXNzYWdlLCBzZWxmLnBvc2l0aW9uWzBdLCBzZWxmLnBvc2l0aW9uWzFdKQorICAgICAgICBpZiBzZWxmLm5hbWU6CisgICAgICAgICAgICBtc2cgKz0gJyBpbiAlcycgJSBzZWxmLm5hbWUKKyAgICAgICAgcmV0dXJuIG1zZworCitjbGFzcyBfVGVtcGxhdGVDb250aW51ZShFeGNlcHRpb24pOgorICAgIHBhc3MKKworY2xhc3MgX1RlbXBsYXRlQnJlYWsoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKK2NsYXNzIFRlbXBsYXRlKG9iamVjdCk6CisKKyAgICBkZWZhdWx0X25hbWVzcGFjZSA9IHsKKyAgICAgICAgJ3N0YXJ0X2JyYWNlcyc6ICd7eycsCisgICAgICAgICdlbmRfYnJhY2VzJzogJ319JywKKyAgICAgICAgJ2xvb3Blcic6IGxvb3BlciwKKyAgICAgICAgfQorCisgICAgZGVmYXVsdF9lbmNvZGluZyA9ICd1dGY4JworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbnRlbnQsIG5hbWU9Tm9uZSwgbmFtZXNwYWNlPU5vbmUpOgorICAgICAgICBzZWxmLmNvbnRlbnQgPSBjb250ZW50CisgICAgICAgIHNlbGYuX3VuaWNvZGUgPSBpc2luc3RhbmNlKGNvbnRlbnQsIHNpeC50ZXh0X3R5cGUpCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5fcGFyc2VkID0gcGFyc2UoY29udGVudCwgbmFtZT1uYW1lKQorICAgICAgICBpZiBuYW1lc3BhY2UgaXMgTm9uZToKKyAgICAgICAgICAgIG5hbWVzcGFjZSA9IHt9CisgICAgICAgIHNlbGYubmFtZXNwYWNlID0gbmFtZXNwYWNlCisKKyAgICBkZWYgZnJvbV9maWxlbmFtZShjbHMsIGZpbGVuYW1lLCBuYW1lc3BhY2U9Tm9uZSwgZW5jb2Rpbmc9Tm9uZSk6CisgICAgICAgIGYgPSBvcGVuKGZpbGVuYW1lLCAncmInKQorICAgICAgICBjID0gZi5yZWFkKCkKKyAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIGlmIGVuY29kaW5nOgorICAgICAgICAgICAgYyA9IGMuZGVjb2RlKGVuY29kaW5nKQorICAgICAgICByZXR1cm4gY2xzKGNvbnRlbnQ9YywgbmFtZT1maWxlbmFtZSwgbmFtZXNwYWNlPW5hbWVzcGFjZSkKKworICAgIGZyb21fZmlsZW5hbWUgPSBjbGFzc21ldGhvZChmcm9tX2ZpbGVuYW1lKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzwlcyAlcyBuYW1lPSVyPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgIGhleChpZChzZWxmKSlbMjpdLCBzZWxmLm5hbWUpCisKKyAgICBkZWYgc3Vic3RpdHV0ZShzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICBpZiBrdzoKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJZb3UgY2FuIG9ubHkgZ2l2ZSBwb3NpdGlvbmFsICpvcioga2V5d29yZCBhcmd1bWVudHMiKQorICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJZb3UgY2FuIG9ubHkgZ2l2ZSBvbiBwb3NpdGlvbmFsIGFyZ3VtZW50IikKKyAgICAgICAgICAgIGt3ID0gYXJnc1swXQorICAgICAgICBucyA9IHNlbGYuZGVmYXVsdF9uYW1lc3BhY2UuY29weSgpCisgICAgICAgIG5zLnVwZGF0ZShzZWxmLm5hbWVzcGFjZSkKKyAgICAgICAgbnMudXBkYXRlKGt3KQorICAgICAgICByZXN1bHQgPSBzZWxmLl9pbnRlcnByZXQobnMpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBfaW50ZXJwcmV0KHNlbGYsIG5zKToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICBwYXJ0cyA9IFtdCisgICAgICAgIHNlbGYuX2ludGVycHJldF9jb2RlcyhzZWxmLl9wYXJzZWQsIG5zLCBvdXQ9cGFydHMpCisgICAgICAgIHJldHVybiAnJy5qb2luKHBhcnRzKQorCisgICAgZGVmIF9pbnRlcnByZXRfY29kZXMoc2VsZiwgY29kZXMsIG5zLCBvdXQpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIGZvciBpdGVtIGluIGNvZGVzOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9jb2RlKGl0ZW0sIG5zLCBvdXQpCisKKyAgICBkZWYgX2ludGVycHJldF9jb2RlKHNlbGYsIGNvZGUsIG5zLCBvdXQpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIG5hbWUsIHBvcyA9IGNvZGVbMF0sIGNvZGVbMV0KKyAgICAgICAgaWYgbmFtZSA9PSAncHknOgorICAgICAgICAgICAgc2VsZi5fZXhlYyhjb2RlWzJdLCBucywgcG9zKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2NvbnRpbnVlJzoKKyAgICAgICAgICAgIHJhaXNlIF9UZW1wbGF0ZUNvbnRpbnVlKCkKKyAgICAgICAgZWxpZiBuYW1lID09ICdicmVhayc6CisgICAgICAgICAgICByYWlzZSBfVGVtcGxhdGVCcmVhaygpCisgICAgICAgIGVsaWYgbmFtZSA9PSAnZm9yJzoKKyAgICAgICAgICAgIHZhcnMsIGV4cHIsIGNvbnRlbnQgPSBjb2RlWzJdLCBjb2RlWzNdLCBjb2RlWzRdCisgICAgICAgICAgICBleHByID0gc2VsZi5fZXZhbChleHByLCBucywgcG9zKQorICAgICAgICAgICAgc2VsZi5faW50ZXJwcmV0X2Zvcih2YXJzLCBleHByLCBjb250ZW50LCBucywgb3V0KQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2NvbmQnOgorICAgICAgICAgICAgcGFydHMgPSBjb2RlWzI6XQorICAgICAgICAgICAgc2VsZi5faW50ZXJwcmV0X2lmKHBhcnRzLCBucywgb3V0KQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2V4cHInOgorICAgICAgICAgICAgcGFydHMgPSBjb2RlWzJdLnNwbGl0KCd8JykKKyAgICAgICAgICAgIGJhc2UgPSBzZWxmLl9ldmFsKHBhcnRzWzBdLCBucywgcG9zKQorICAgICAgICAgICAgZm9yIHBhcnQgaW4gcGFydHNbMTpdOgorICAgICAgICAgICAgICAgIGZ1bmMgPSBzZWxmLl9ldmFsKHBhcnQsIG5zLCBwb3MpCisgICAgICAgICAgICAgICAgYmFzZSA9IGZ1bmMoYmFzZSkKKyAgICAgICAgICAgIG91dC5hcHBlbmQoc2VsZi5fcmVwcihiYXNlLCBwb3MpKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2RlZmF1bHQnOgorICAgICAgICAgICAgdmFyLCBleHByID0gY29kZVsyXSwgY29kZVszXQorICAgICAgICAgICAgaWYgdmFyIG5vdCBpbiBuczoKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9ldmFsKGV4cHIsIG5zLCBwb3MpCisgICAgICAgICAgICAgICAgbnNbdmFyXSA9IHJlc3VsdAorICAgICAgICBlbGlmIG5hbWUgPT0gJ2NvbW1lbnQnOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgMCwgIlVua25vd24gY29kZTogJXIiICUgbmFtZQorCisgICAgZGVmIF9pbnRlcnByZXRfZm9yKHNlbGYsIHZhcnMsIGV4cHIsIGNvbnRlbnQsIG5zLCBvdXQpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIGZvciBpdGVtIGluIGV4cHI6CisgICAgICAgICAgICBpZiBsZW4odmFycykgPT0gMToKKyAgICAgICAgICAgICAgICBuc1t2YXJzWzBdXSA9IGl0ZW0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgbGVuKHZhcnMpICE9IGxlbihpdGVtKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICdOZWVkICVpIGl0ZW1zIHRvIHVucGFjayAoZ290ICVpIGl0ZW1zKScKKyAgICAgICAgICAgICAgICAgICAgICAgICUgKGxlbih2YXJzKSwgbGVuKGl0ZW0pKSkKKyAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gemlwKHZhcnMsIGl0ZW0pOgorICAgICAgICAgICAgICAgICAgICBuc1tuYW1lXSA9IHZhbHVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5faW50ZXJwcmV0X2NvZGVzKGNvbnRlbnQsIG5zLCBvdXQpCisgICAgICAgICAgICBleGNlcHQgX1RlbXBsYXRlQ29udGludWU6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGV4Y2VwdCBfVGVtcGxhdGVCcmVhazoKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgZGVmIF9pbnRlcnByZXRfaWYoc2VsZiwgcGFydHMsIG5zLCBvdXQpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgICMgQEA6IGlmL2Vsc2UvZWxzZSBnZXRzIHRocm91Z2gKKyAgICAgICAgZm9yIHBhcnQgaW4gcGFydHM6CisgICAgICAgICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2UocGFydCwgc2l4LnN0cmluZ190eXBlcykKKyAgICAgICAgICAgIG5hbWUsIHBvcyA9IHBhcnRbMF0sIHBhcnRbMV0KKyAgICAgICAgICAgIGlmIG5hbWUgPT0gJ2Vsc2UnOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fZXZhbChwYXJ0WzJdLCBucywgcG9zKQorICAgICAgICAgICAgaWYgcmVzdWx0OgorICAgICAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9jb2RlcyhwYXJ0WzNdLCBucywgb3V0KQorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICBkZWYgX2V2YWwoc2VsZiwgY29kZSwgbnMsIHBvcyk6CisgICAgICAgIF9fdHJhY2ViYWNrX2hpZGVfXyA9IFRydWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdmFsdWUgPSBldmFsKGNvZGUsIG5zKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGV4Y19pbmZvID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIGUgPSBleGNfaW5mb1sxXQorICAgICAgICAgICAgaWYgZ2V0YXR0cihlLCAnYXJncycpOgorICAgICAgICAgICAgICAgIGFyZzAgPSBlLmFyZ3NbMF0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXJnMCA9IHN0cihlKQorICAgICAgICAgICAgZS5hcmdzID0gKHNlbGYuX2FkZF9saW5lX2luZm8oYXJnMCwgcG9zKSwpCisgICAgICAgICAgICBzaXgucmVyYWlzZShleGNfaW5mb1swXSwgZSwgZXhjX2luZm9bMl0pCisKKyAgICBkZWYgX2V4ZWMoc2VsZiwgY29kZSwgbnMsIHBvcyk6CisgICAgICAgIF9fdHJhY2ViYWNrX2hpZGVfXyA9IFRydWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2l4LmV4ZWNfKGNvZGUsIG5zKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBlID0gZXhjX2luZm9bMV0KKyAgICAgICAgICAgIGUuYXJncyA9IChzZWxmLl9hZGRfbGluZV9pbmZvKGUuYXJnc1swXSwgcG9zKSwpCisgICAgICAgICAgICBzaXgucmVyYWlzZShleGNfaW5mb1swXSwgZSwgZXhjX2luZm9bMl0pCisKKyAgICBkZWYgX3JlcHIoc2VsZiwgdmFsdWUsIHBvcyk6CisgICAgICAgIF9fdHJhY2ViYWNrX2hpZGVfXyA9IFRydWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gJycKKyAgICAgICAgICAgIGlmIHNlbGYuX3VuaWNvZGU6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNpeC50ZXh0X3R5cGUodmFsdWUpCisgICAgICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzdHIodmFsdWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBlID0gZXhjX2luZm9bMV0KKyAgICAgICAgICAgIGUuYXJncyA9IChzZWxmLl9hZGRfbGluZV9pbmZvKGUuYXJnc1swXSwgcG9zKSwpCisgICAgICAgICAgICBzaXgucmVyYWlzZShleGNfaW5mb1swXSwgZSwgZXhjX2luZm9bMl0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzZWxmLl91bmljb2RlIGFuZCBpc2luc3RhbmNlKHZhbHVlLCBzaXguYmluYXJ5X3R5cGUpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmRlY29kZV9lbmNvZGluZzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVW5pY29kZURlY29kZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCBkZWNvZGUgc3RyIHZhbHVlICVyIGludG8gdW5pY29kZSAnCisgICAgICAgICAgICAgICAgICAgICAgICAnKG5vIGRlZmF1bHRfZW5jb2RpbmcgcHJvdmlkZWQpJyAlIHZhbHVlKQorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZGVjb2RlKHNlbGYuZGVmYXVsdF9lbmNvZGluZykKKyAgICAgICAgICAgIGVsaWYgbm90IHNlbGYuX3VuaWNvZGUgYW5kIGlzaW5zdGFuY2UodmFsdWUsIHNpeC50ZXh0X3R5cGUpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmRlY29kZV9lbmNvZGluZzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVW5pY29kZUVuY29kZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCBlbmNvZGUgdW5pY29kZSB2YWx1ZSAlciBpbnRvIHN0ciAnCisgICAgICAgICAgICAgICAgICAgICAgICAnKG5vIGRlZmF1bHRfZW5jb2RpbmcgcHJvdmlkZWQpJyAlIHZhbHVlKQorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZW5jb2RlKHNlbGYuZGVmYXVsdF9lbmNvZGluZykKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorCisKKyAgICBkZWYgX2FkZF9saW5lX2luZm8oc2VsZiwgbXNnLCBwb3MpOgorICAgICAgICBtc2cgPSAiJXMgYXQgbGluZSAlcyBjb2x1bW4gJXMiICUgKAorICAgICAgICAgICAgbXNnLCBwb3NbMF0sIHBvc1sxXSkKKyAgICAgICAgaWYgc2VsZi5uYW1lOgorICAgICAgICAgICAgbXNnICs9ICIgaW4gZmlsZSAlcyIgJSBzZWxmLm5hbWUKKyAgICAgICAgcmV0dXJuIG1zZworCitkZWYgc3ViKGNvbnRlbnQsICoqa3cpOgorICAgIG5hbWUgPSBrdy5nZXQoJ19fbmFtZScpCisgICAgdG1wbCA9IFRlbXBsYXRlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICByZXR1cm4gdG1wbC5zdWJzdGl0dXRlKGt3KQorCitkZWYgcGFzdGVfc2NyaXB0X3RlbXBsYXRlX3JlbmRlcmVyKGNvbnRlbnQsIHZhcnMsIGZpbGVuYW1lPU5vbmUpOgorICAgIHRtcGwgPSBUZW1wbGF0ZShjb250ZW50LCBuYW1lPWZpbGVuYW1lKQorICAgIHJldHVybiB0bXBsLnN1YnN0aXR1dGUodmFycykKKworY2xhc3MgYnVuY2goZGljdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprdyk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdy5pdGVtcygpOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCB2YWx1ZSkKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIHNlbGZbbmFtZV0gPSB2YWx1ZQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZltuYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIGlmICdkZWZhdWx0JyBpbiBzZWxmOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleSkKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCAnZGVmYXVsdCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGl0ZW1zID0gWworICAgICAgICAgICAgKGssIHYpIGZvciBrLCB2IGluIHNlbGYuaXRlbXMoKV0KKyAgICAgICAgaXRlbXMuc29ydCgpCisgICAgICAgIHJldHVybiAnPCVzICVzPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICcgJy5qb2luKFsnJXM9JXInICUgKGssIHYpIGZvciBrLCB2IGluIGl0ZW1zXSkpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgSFRNTCBUZW1wbGF0aW5nCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY2xhc3MgaHRtbChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi52YWx1ZQorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXI+JyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLnZhbHVlKQorCitkZWYgaHRtbF9xdW90ZSh2YWx1ZSk6CisgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICBpZiBoYXNhdHRyKHZhbHVlLCAnX191bmljb2RlX18nKToKKyAgICAgICAgICAgIHZhbHVlID0gdW5pY29kZSh2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgIHZhbHVlID0gY2dpLmVzY2FwZSh2YWx1ZSwgMSkKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB1bmljb2RlKToKKyAgICAgICAgdmFsdWUgPSB2YWx1ZS5lbmNvZGUoJ2FzY2lpJywgJ3htbGNoYXJyZWZyZXBsYWNlJykKKyAgICByZXR1cm4gdmFsdWUKKworZGVmIHVybCh2KToKKyAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgaWYgaGFzYXR0cih2LCAnX191bmljb2RlX18nKToKKyAgICAgICAgICAgIHYgPSB1bmljb2RlKHYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB2ID0gc3RyKHYpCisgICAgaWYgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKKyAgICAgICAgdiA9IHYuZW5jb2RlKCd1dGY4JykKKyAgICByZXR1cm4gcXVvdGUodikKKworZGVmIGF0dHIoKiprdyk6CisgICAga3cgPSBrdy5pdGVtcygpCisgICAga3cuc29ydCgpCisgICAgcGFydHMgPSBbXQorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdzoKKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoJ18nKToKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lWzotMV0KKyAgICAgICAgcGFydHMuYXBwZW5kKCclcz0iJXMiJyAlIChodG1sX3F1b3RlKG5hbWUpLCBodG1sX3F1b3RlKHZhbHVlKSkpCisgICAgcmV0dXJuIGh0bWwoJyAnLmpvaW4ocGFydHMpKQorCitjbGFzcyBIVE1MVGVtcGxhdGUoVGVtcGxhdGUpOgorCisgICAgZGVmYXVsdF9uYW1lc3BhY2UgPSBUZW1wbGF0ZS5kZWZhdWx0X25hbWVzcGFjZS5jb3B5KCkKKyAgICBkZWZhdWx0X25hbWVzcGFjZS51cGRhdGUoZGljdCgKKyAgICAgICAgaHRtbD1odG1sLAorICAgICAgICBhdHRyPWF0dHIsCisgICAgICAgIHVybD11cmwsCisgICAgICAgICkpCisKKyAgICBkZWYgX3JlcHIoc2VsZiwgdmFsdWUsIHBvcyk6CisgICAgICAgIHBsYWluID0gVGVtcGxhdGUuX3JlcHIoc2VsZiwgdmFsdWUsIHBvcykKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaHRtbCk6CisgICAgICAgICAgICByZXR1cm4gcGxhaW4KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBodG1sX3F1b3RlKHBsYWluKQorCitkZWYgc3ViX2h0bWwoY29udGVudCwgKiprdyk6CisgICAgbmFtZSA9IGt3LmdldCgnX19uYW1lJykKKyAgICB0bXBsID0gSFRNTFRlbXBsYXRlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICByZXR1cm4gdG1wbC5zdWJzdGl0dXRlKGt3KQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgTGV4aW5nIGFuZCBQYXJzaW5nCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZGVmIGxleChzLCBuYW1lPU5vbmUsIHRyaW1fd2hpdGVzcGFjZT1UcnVlKToKKyAgICAiIiIKKyAgICBMZXggYSBzdHJpbmcgaW50byBjaHVua3M6CisKKyAgICAgICAgPj4+IGxleCgnaGV5JykKKyAgICAgICAgWydoZXknXQorICAgICAgICA+Pj4gbGV4KCdoZXkge3t5b3V9fScpCisgICAgICAgIFsnaGV5ICcsICgneW91JywgKDEsIDcpKV0KKyAgICAgICAgPj4+IGxleCgnaGV5IHt7JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE5vIH19IHRvIGZpbmlzaCBsYXN0IGV4cHJlc3Npb24gYXQgbGluZSAxIGNvbHVtbiA3CisgICAgICAgID4+PiBsZXgoJ2hleSB9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiB9fSBvdXRzaWRlIGV4cHJlc3Npb24gYXQgbGluZSAxIGNvbHVtbiA3CisgICAgICAgID4+PiBsZXgoJ2hleSB7eyB7eycpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiB7eyBpbnNpZGUgZXhwcmVzc2lvbiBhdCBsaW5lIDEgY29sdW1uIDEwCisKKyAgICAiIiIKKyAgICBpbl9leHByID0gRmFsc2UKKyAgICBjaHVua3MgPSBbXQorICAgIGxhc3QgPSAwCisgICAgbGFzdF9wb3MgPSAoMSwgMSkKKyAgICBmb3IgbWF0Y2ggaW4gdG9rZW5fcmUuZmluZGl0ZXIocyk6CisgICAgICAgIGV4cHIgPSBtYXRjaC5ncm91cCgwKQorICAgICAgICBwb3MgPSBmaW5kX3Bvc2l0aW9uKHMsIG1hdGNoLmVuZCgpKQorICAgICAgICBpZiBleHByID09ICd7eycgYW5kIGluX2V4cHI6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKCd7eyBpbnNpZGUgZXhwcmVzc2lvbicsIHBvc2l0aW9uPXBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lKQorICAgICAgICBlbGlmIGV4cHIgPT0gJ319JyBhbmQgbm90IGluX2V4cHI6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKCd9fSBvdXRzaWRlIGV4cHJlc3Npb24nLCBwb3NpdGlvbj1wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgZXhwciA9PSAne3snOgorICAgICAgICAgICAgcGFydCA9IHNbbGFzdDptYXRjaC5zdGFydCgpXQorICAgICAgICAgICAgaWYgcGFydDoKKyAgICAgICAgICAgICAgICBjaHVua3MuYXBwZW5kKHBhcnQpCisgICAgICAgICAgICBpbl9leHByID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2h1bmtzLmFwcGVuZCgoc1tsYXN0Om1hdGNoLnN0YXJ0KCldLCBsYXN0X3BvcykpCisgICAgICAgICAgICBpbl9leHByID0gRmFsc2UKKyAgICAgICAgbGFzdCA9IG1hdGNoLmVuZCgpCisgICAgICAgIGxhc3RfcG9zID0gcG9zCisgICAgaWYgaW5fZXhwcjoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcignTm8gfX0gdG8gZmluaXNoIGxhc3QgZXhwcmVzc2lvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lLCBwb3NpdGlvbj1sYXN0X3BvcykKKyAgICBwYXJ0ID0gc1tsYXN0Ol0KKyAgICBpZiBwYXJ0OgorICAgICAgICBjaHVua3MuYXBwZW5kKHBhcnQpCisgICAgaWYgdHJpbV93aGl0ZXNwYWNlOgorICAgICAgICBjaHVua3MgPSB0cmltX2xleChjaHVua3MpCisgICAgcmV0dXJuIGNodW5rcworCitzdGF0ZW1lbnRfcmUgPSByZS5jb21waWxlKHInXig/OmlmIHxlbGlmIHxlbHNlIHxmb3IgfHB5OiknKQorc2luZ2xlX3N0YXRlbWVudHMgPSBbJ2VuZGlmJywgJ2VuZGZvcicsICdjb250aW51ZScsICdicmVhayddCit0cmFpbF93aGl0ZXNwYWNlX3JlID0gcmUuY29tcGlsZShyJ1xuW1x0IF0qJCcpCitsZWFkX3doaXRlc3BhY2VfcmUgPSByZS5jb21waWxlKHInXltcdCBdKlxuJykKKworZGVmIHRyaW1fbGV4KHRva2Vucyk6CisgICAgciIiIgorICAgIFRha2VzIGEgbGV4ZWQgc2V0IG9mIHRva2VucywgYW5kIHJlbW92ZXMgd2hpdGVzcGFjZSB3aGVuIHRoZXJlIGlzCisgICAgYSBkaXJlY3RpdmUgb24gYSBsaW5lIGJ5IGl0c2VsZjoKKworICAgICAgID4+PiB0b2tlbnMgPSBsZXgoJ3t7aWYgeH19XG54XG57e2VuZGlmfX1cbnknLCB0cmltX3doaXRlc3BhY2U9RmFsc2UpCisgICAgICAgPj4+IHRva2VucworICAgICAgIFsoJ2lmIHgnLCAoMSwgMykpLCAnXG54XG4nLCAoJ2VuZGlmJywgKDMsIDMpKSwgJ1xueSddCisgICAgICAgPj4+IHRyaW1fbGV4KHRva2VucykKKyAgICAgICBbKCdpZiB4JywgKDEsIDMpKSwgJ3hcbicsICgnZW5kaWYnLCAoMywgMykpLCAneSddCisgICAgIiIiCisgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHRva2VucykpOgorICAgICAgICBjdXJyZW50ID0gdG9rZW5zW2ldCisgICAgICAgIGlmIGlzaW5zdGFuY2UodG9rZW5zW2ldLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgICMgd2UgZG9uJ3QgdHJpbSB0aGlzCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpdGVtID0gY3VycmVudFswXQorICAgICAgICBpZiBub3Qgc3RhdGVtZW50X3JlLnNlYXJjaChpdGVtKSBhbmQgaXRlbSBub3QgaW4gc2luZ2xlX3N0YXRlbWVudHM6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBub3QgaToKKyAgICAgICAgICAgIHByZXYgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJldiA9IHRva2Vuc1tpLTFdCisgICAgICAgIGlmIGkrMSA+PSBsZW4odG9rZW5zKToKKyAgICAgICAgICAgIG5leHQgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmV4dCA9IHRva2Vuc1tpKzFdCisgICAgICAgIGlmIChub3QgaXNpbnN0YW5jZShuZXh0LCBzaXguc3RyaW5nX3R5cGVzKQorICAgICAgICAgICAgb3Igbm90IGlzaW5zdGFuY2UocHJldiwgc2l4LnN0cmluZ190eXBlcykpOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgKChub3QgcHJldiBvciB0cmFpbF93aGl0ZXNwYWNlX3JlLnNlYXJjaChwcmV2KSkKKyAgICAgICAgICAgIGFuZCAobm90IG5leHQgb3IgbGVhZF93aGl0ZXNwYWNlX3JlLnNlYXJjaChuZXh0KSkpOgorICAgICAgICAgICAgaWYgcHJldjoKKyAgICAgICAgICAgICAgICBtID0gdHJhaWxfd2hpdGVzcGFjZV9yZS5zZWFyY2gocHJldikKKyAgICAgICAgICAgICAgICAjICsxIHRvIGxlYXZlIHRoZSBsZWFkaW5nIFxuIG9uOgorICAgICAgICAgICAgICAgIHByZXYgPSBwcmV2WzptLnN0YXJ0KCkrMV0KKyAgICAgICAgICAgICAgICB0b2tlbnNbaS0xXSA9IHByZXYKKyAgICAgICAgICAgIGlmIG5leHQ6CisgICAgICAgICAgICAgICAgbSA9IGxlYWRfd2hpdGVzcGFjZV9yZS5zZWFyY2gobmV4dCkKKyAgICAgICAgICAgICAgICBuZXh0ID0gbmV4dFttLmVuZCgpOl0KKyAgICAgICAgICAgICAgICB0b2tlbnNbaSsxXSA9IG5leHQKKyAgICByZXR1cm4gdG9rZW5zCisKKworZGVmIGZpbmRfcG9zaXRpb24oc3RyaW5nLCBpbmRleCk6CisgICAgIiIiR2l2ZW4gYSBzdHJpbmcgYW5kIGluZGV4LCByZXR1cm4gKGxpbmUsIGNvbHVtbikiIiIKKyAgICBsZWFkaW5nID0gc3RyaW5nWzppbmRleF0uc3BsaXRsaW5lcygpCisgICAgcmV0dXJuIChsZW4obGVhZGluZyksIGxlbihsZWFkaW5nWy0xXSkrMSkKKworZGVmIHBhcnNlKHMsIG5hbWU9Tm9uZSk6CisgICAgciIiIgorICAgIFBhcnNlcyBhIHN0cmluZyBpbnRvIGEga2luZCBvZiBBU1QKKworICAgICAgICA+Pj4gcGFyc2UoJ3t7eH19JykKKyAgICAgICAgWygnZXhwcicsICgxLCAzKSwgJ3gnKV0KKyAgICAgICAgPj4+IHBhcnNlKCdmb28nKQorICAgICAgICBbJ2ZvbyddCisgICAgICAgID4+PiBwYXJzZSgne3tpZiB4fX10ZXN0e3tlbmRpZn19JykKKyAgICAgICAgWygnY29uZCcsICgxLCAzKSwgKCdpZicsICgxLCAzKSwgJ3gnLCBbJ3Rlc3QnXSkpXQorICAgICAgICA+Pj4gcGFyc2UoJ3Nlcmllcy0+e3tmb3IgeCBpbiB5fX14PXt7eH19e3tlbmRmb3J9fScpCisgICAgICAgIFsnc2VyaWVzLT4nLCAoJ2ZvcicsICgxLCAxMSksICgneCcsKSwgJ3knLCBbJ3g9JywgKCdleHByJywgKDEsIDI3KSwgJ3gnKV0pXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7Zm9yIHgsIHkgaW4gejp9fXt7Y29udGludWV9fXt7ZW5kZm9yfX0nKQorICAgICAgICBbKCdmb3InLCAoMSwgMyksICgneCcsICd5JyksICd6JywgWygnY29udGludWUnLCAoMSwgMjEpKV0pXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7cHk6eD0xfX0nKQorICAgICAgICBbKCdweScsICgxLCAzKSwgJ3g9MScpXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7aWYgeH19YXt7ZWxpZiB5fX1ie3tlbHNlfX1je3tlbmRpZn19JykKKyAgICAgICAgWygnY29uZCcsICgxLCAzKSwgKCdpZicsICgxLCAzKSwgJ3gnLCBbJ2EnXSksICgnZWxpZicsICgxLCAxMiksICd5JywgWydiJ10pLCAoJ2Vsc2UnLCAoMSwgMjMpLCBOb25lLCBbJ2MnXSkpXQorCisgICAgU29tZSBleGNlcHRpb25zOjoKKworICAgICAgICA+Pj4gcGFyc2UoJ3t7Y29udGludWV9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiBjb250aW51ZSBvdXRzaWRlIG9mIGZvciBsb29wIGF0IGxpbmUgMSBjb2x1bW4gMworICAgICAgICA+Pj4gcGFyc2UoJ3t7aWYgeH19Zm9vJykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE5vIHt7ZW5kaWZ9fSBhdCBsaW5lIDEgY29sdW1uIDMKKyAgICAgICAgPj4+IHBhcnNlKCd7e2Vsc2V9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiBlbHNlIG91dHNpZGUgb2YgYW4gaWYgYmxvY2sgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgICAgID4+PiBwYXJzZSgne3tpZiB4fX17e2ZvciB4IGluIHl9fXt7ZW5kaWZ9fXt7ZW5kZm9yfX0nKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgVGVtcGxhdGVFcnJvcjogVW5leHBlY3RlZCBlbmRpZiBhdCBsaW5lIDEgY29sdW1uIDI1CisgICAgICAgID4+PiBwYXJzZSgne3tpZn19e3tlbmRpZn19JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IGlmIHdpdGggbm8gZXhwcmVzc2lvbiBhdCBsaW5lIDEgY29sdW1uIDMKKyAgICAgICAgPj4+IHBhcnNlKCd7e2ZvciB4IHl9fXt7ZW5kZm9yfX0nKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgVGVtcGxhdGVFcnJvcjogQmFkIGZvciAobm8gImluIikgaW4gJ3ggeScgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgICAgID4+PiBwYXJzZSgne3tweTp4PTFcbnk9Mn19JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE11bHRpLWxpbmUgcHkgYmxvY2tzIG11c3Qgc3RhcnQgd2l0aCBhIG5ld2xpbmUgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgIiIiCisgICAgdG9rZW5zID0gbGV4KHMsIG5hbWU9bmFtZSkKKyAgICByZXN1bHQgPSBbXQorICAgIHdoaWxlIHRva2VuczoKKyAgICAgICAgbmV4dCwgdG9rZW5zID0gcGFyc2VfZXhwcih0b2tlbnMsIG5hbWUpCisgICAgICAgIHJlc3VsdC5hcHBlbmQobmV4dCkKKyAgICByZXR1cm4gcmVzdWx0CisKK2RlZiBwYXJzZV9leHByKHRva2VucywgbmFtZSwgY29udGV4dD0oKSk6CisgICAgaWYgaXNpbnN0YW5jZSh0b2tlbnNbMF0sIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICByZXR1cm4gdG9rZW5zWzBdLCB0b2tlbnNbMTpdCisgICAgZXhwciwgcG9zID0gdG9rZW5zWzBdCisgICAgZXhwciA9IGV4cHIuc3RyaXAoKQorICAgIGlmIGV4cHIuc3RhcnRzd2l0aCgncHk6Jyk6CisgICAgICAgIGV4cHIgPSBleHByWzM6XS5sc3RyaXAoJyBcdCcpCisgICAgICAgIGlmIGV4cHIuc3RhcnRzd2l0aCgnXG4nKToKKyAgICAgICAgICAgIGV4cHIgPSBleHByWzE6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgJ1xuJyBpbiBleHByOgorICAgICAgICAgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICdNdWx0aS1saW5lIHB5IGJsb2NrcyBtdXN0IHN0YXJ0IHdpdGggYSBuZXdsaW5lJywKKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIHJldHVybiAoJ3B5JywgcG9zLCBleHByKSwgdG9rZW5zWzE6XQorICAgIGVsaWYgZXhwciBpbiAoJ2NvbnRpbnVlJywgJ2JyZWFrJyk6CisgICAgICAgIGlmICdmb3InIG5vdCBpbiBjb250ZXh0OgorICAgICAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICAgICAnY29udGludWUgb3V0c2lkZSBvZiBmb3IgbG9vcCcsCisgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIHJldHVybiAoZXhwciwgcG9zKSwgdG9rZW5zWzE6XQorICAgIGVsaWYgZXhwci5zdGFydHN3aXRoKCdpZiAnKToKKyAgICAgICAgcmV0dXJuIHBhcnNlX2NvbmQodG9rZW5zLCBuYW1lLCBjb250ZXh0KQorICAgIGVsaWYgKGV4cHIuc3RhcnRzd2l0aCgnZWxpZiAnKQorICAgICAgICAgIG9yIGV4cHIgPT0gJ2Vsc2UnKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICclcyBvdXRzaWRlIG9mIGFuIGlmIGJsb2NrJyAlIGV4cHIuc3BsaXQoKVswXSwKKyAgICAgICAgICAgIHBvc2l0aW9uPXBvcywgbmFtZT1uYW1lKQorICAgIGVsaWYgZXhwciBpbiAoJ2lmJywgJ2VsaWYnLCAnZm9yJyk6CisgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAnJXMgd2l0aCBubyBleHByZXNzaW9uJyAlIGV4cHIsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICBlbGlmIGV4cHIgaW4gKCdlbmRpZicsICdlbmRmb3InKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdVbmV4cGVjdGVkICVzJyAlIGV4cHIsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICBlbGlmIGV4cHIuc3RhcnRzd2l0aCgnZm9yICcpOgorICAgICAgICByZXR1cm4gcGFyc2VfZm9yKHRva2VucywgbmFtZSwgY29udGV4dCkKKyAgICBlbGlmIGV4cHIuc3RhcnRzd2l0aCgnZGVmYXVsdCAnKToKKyAgICAgICAgcmV0dXJuIHBhcnNlX2RlZmF1bHQodG9rZW5zLCBuYW1lLCBjb250ZXh0KQorICAgIGVsaWYgZXhwci5zdGFydHN3aXRoKCcjJyk6CisgICAgICAgIHJldHVybiAoJ2NvbW1lbnQnLCBwb3MsIHRva2Vuc1swXVswXSksIHRva2Vuc1sxOl0KKyAgICByZXR1cm4gKCdleHByJywgcG9zLCB0b2tlbnNbMF1bMF0pLCB0b2tlbnNbMTpdCisKK2RlZiBwYXJzZV9jb25kKHRva2VucywgbmFtZSwgY29udGV4dCk6CisgICAgc3RhcnQgPSB0b2tlbnNbMF1bMV0KKyAgICBwaWVjZXMgPSBbXQorICAgIGNvbnRleHQgPSBjb250ZXh0ICsgKCdpZicsKQorICAgIHdoaWxlIDE6CisgICAgICAgIGlmIG5vdCB0b2tlbnM6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgICAgICdNaXNzaW5nIHt7ZW5kaWZ9fScsCisgICAgICAgICAgICAgICAgcG9zaXRpb249c3RhcnQsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UodG9rZW5zWzBdLCB0dXBsZSkKKyAgICAgICAgICAgIGFuZCB0b2tlbnNbMF1bMF0gPT0gJ2VuZGlmJyk6CisgICAgICAgICAgICByZXR1cm4gKCdjb25kJywgc3RhcnQpICsgdHVwbGUocGllY2VzKSwgdG9rZW5zWzE6XQorICAgICAgICBuZXh0LCB0b2tlbnMgPSBwYXJzZV9vbmVfY29uZCh0b2tlbnMsIG5hbWUsIGNvbnRleHQpCisgICAgICAgIHBpZWNlcy5hcHBlbmQobmV4dCkKKworZGVmIHBhcnNlX29uZV9jb25kKHRva2VucywgbmFtZSwgY29udGV4dCk6CisgICAgKGZpcnN0LCBwb3MpLCB0b2tlbnMgPSB0b2tlbnNbMF0sIHRva2Vuc1sxOl0KKyAgICBjb250ZW50ID0gW10KKyAgICBpZiBmaXJzdC5lbmRzd2l0aCgnOicpOgorICAgICAgICBmaXJzdCA9IGZpcnN0WzotMV0KKyAgICBpZiBmaXJzdC5zdGFydHN3aXRoKCdpZiAnKToKKyAgICAgICAgcGFydCA9ICgnaWYnLCBwb3MsIGZpcnN0WzM6XS5sc3RyaXAoKSwgY29udGVudCkKKyAgICBlbGlmIGZpcnN0LnN0YXJ0c3dpdGgoJ2VsaWYgJyk6CisgICAgICAgIHBhcnQgPSAoJ2VsaWYnLCBwb3MsIGZpcnN0WzU6XS5sc3RyaXAoKSwgY29udGVudCkKKyAgICBlbGlmIGZpcnN0ID09ICdlbHNlJzoKKyAgICAgICAgcGFydCA9ICgnZWxzZScsIHBvcywgTm9uZSwgY29udGVudCkKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgMCwgIlVuZXhwZWN0ZWQgdG9rZW4gJXIgYXQgJXMiICUgKGZpcnN0LCBwb3MpCisgICAgd2hpbGUgMToKKyAgICAgICAgaWYgbm90IHRva2VuczoKKyAgICAgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAgICAgJ05vIHt7ZW5kaWZ9fScsCisgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIGlmIChpc2luc3RhbmNlKHRva2Vuc1swXSwgdHVwbGUpCisgICAgICAgICAgICBhbmQgKHRva2Vuc1swXVswXSA9PSAnZW5kaWYnCisgICAgICAgICAgICAgICAgIG9yIHRva2Vuc1swXVswXS5zdGFydHN3aXRoKCdlbGlmICcpCisgICAgICAgICAgICAgICAgIG9yIHRva2Vuc1swXVswXSA9PSAnZWxzZScpKToKKyAgICAgICAgICAgIHJldHVybiBwYXJ0LCB0b2tlbnMKKyAgICAgICAgbmV4dCwgdG9rZW5zID0gcGFyc2VfZXhwcih0b2tlbnMsIG5hbWUsIGNvbnRleHQpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKG5leHQpCisKK2RlZiBwYXJzZV9mb3IodG9rZW5zLCBuYW1lLCBjb250ZXh0KToKKyAgICBmaXJzdCwgcG9zID0gdG9rZW5zWzBdCisgICAgdG9rZW5zID0gdG9rZW5zWzE6XQorICAgIGNvbnRleHQgPSAoJ2ZvcicsKSArIGNvbnRleHQKKyAgICBjb250ZW50ID0gW10KKyAgICBhc3NlcnQgZmlyc3Quc3RhcnRzd2l0aCgnZm9yICcpCisgICAgaWYgZmlyc3QuZW5kc3dpdGgoJzonKToKKyAgICAgICAgZmlyc3QgPSBmaXJzdFs6LTFdCisgICAgZmlyc3QgPSBmaXJzdFszOl0uc3RyaXAoKQorICAgIG1hdGNoID0gaW5fcmUuc2VhcmNoKGZpcnN0KQorICAgIGlmIG5vdCBtYXRjaDoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdCYWQgZm9yIChubyAiaW4iKSBpbiAlcicgJSBmaXJzdCwKKyAgICAgICAgICAgIHBvc2l0aW9uPXBvcywgbmFtZT1uYW1lKQorICAgIHZhcnMgPSBmaXJzdFs6bWF0Y2guc3RhcnQoKV0KKyAgICBpZiAnKCcgaW4gdmFyczoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdZb3UgY2Fubm90IGhhdmUgKCkgaW4gdGhlIHZhcmlhYmxlIHNlY3Rpb24gb2YgYSBmb3IgbG9vcCAoJXIpJworICAgICAgICAgICAgJSB2YXJzLCBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICB2YXJzID0gdHVwbGUoWworICAgICAgICB2LnN0cmlwKCkgZm9yIHYgaW4gZmlyc3RbOm1hdGNoLnN0YXJ0KCldLnNwbGl0KCcsJykKKyAgICAgICAgaWYgdi5zdHJpcCgpXSkKKyAgICBleHByID0gZmlyc3RbbWF0Y2guZW5kKCk6XQorICAgIHdoaWxlIDE6CisgICAgICAgIGlmIG5vdCB0b2tlbnM6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgICAgICdObyB7e2VuZGZvcn19JywKKyAgICAgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UodG9rZW5zWzBdLCB0dXBsZSkKKyAgICAgICAgICAgIGFuZCB0b2tlbnNbMF1bMF0gPT0gJ2VuZGZvcicpOgorICAgICAgICAgICAgcmV0dXJuICgnZm9yJywgcG9zLCB2YXJzLCBleHByLCBjb250ZW50KSwgdG9rZW5zWzE6XQorICAgICAgICBuZXh0LCB0b2tlbnMgPSBwYXJzZV9leHByKHRva2VucywgbmFtZSwgY29udGV4dCkKKyAgICAgICAgY29udGVudC5hcHBlbmQobmV4dCkKKworZGVmIHBhcnNlX2RlZmF1bHQodG9rZW5zLCBuYW1lLCBjb250ZXh0KToKKyAgICBmaXJzdCwgcG9zID0gdG9rZW5zWzBdCisgICAgYXNzZXJ0IGZpcnN0LnN0YXJ0c3dpdGgoJ2RlZmF1bHQgJykKKyAgICBmaXJzdCA9IGZpcnN0LnNwbGl0KE5vbmUsIDEpWzFdCisgICAgcGFydHMgPSBmaXJzdC5zcGxpdCgnPScsIDEpCisgICAgaWYgbGVuKHBhcnRzKSA9PSAxOgorICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgIkV4cHJlc3Npb24gbXVzdCBiZSB7e2RlZmF1bHQgdmFyPXZhbHVlfX07IG5vID0gZm91bmQgaW4gJXIiICUgZmlyc3QsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICB2YXIgPSBwYXJ0c1swXS5zdHJpcCgpCisgICAgaWYgJywnIGluIHZhcjoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICJ7e2RlZmF1bHQgeCwgeSA9IC4uLn19IGlzIG5vdCBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgaWYgbm90IHZhcl9yZS5zZWFyY2godmFyKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICJOb3QgYSB2YWxpZCB2YXJpYWJsZSBuYW1lIGZvciB7e2RlZmF1bHR9fTogJXIiCisgICAgICAgICAgICAlIHZhciwgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgZXhwciA9IHBhcnRzWzFdLnN0cmlwKCkKKyAgICByZXR1cm4gKCdkZWZhdWx0JywgcG9zLCB2YXIsIGV4cHIpLCB0b2tlbnNbMTpdCisKK19maWxsX2NvbW1hbmRfdXNhZ2UgPSAiIiJcCislcHJvZyBbT1BUSU9OU10gVEVNUExBVEUgYXJnPXZhbHVlCisKK1VzZSBweTphcmc9dmFsdWUgdG8gc2V0IGEgUHl0aG9uIHZhbHVlOyBvdGhlcndpc2UgYWxsIHZhbHVlcyBhcmUKK3N0cmluZ3MuCisiIiIKKworZGVmIGZpbGxfY29tbWFuZChhcmdzPU5vbmUpOgorICAgIGltcG9ydCBzeXMsIG9wdHBhcnNlLCBwa2dfcmVzb3VyY2VzLCBvcworICAgIGlmIGFyZ3MgaXMgTm9uZToKKyAgICAgICAgYXJncyA9IHN5cy5hcmd2WzE6XQorICAgIGRpc3QgPSBwa2dfcmVzb3VyY2VzLmdldF9kaXN0cmlidXRpb24oJ1Bhc3RlJykKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCisgICAgICAgIHZlcnNpb249c3RyKGRpc3QpLAorICAgICAgICB1c2FnZT1fZmlsbF9jb21tYW5kX3VzYWdlKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLW8nLCAnLS1vdXRwdXQnLAorICAgICAgICBkZXN0PSdvdXRwdXQnLAorICAgICAgICBtZXRhdmFyPSJGSUxFTkFNRSIsCisgICAgICAgIGhlbHA9IkZpbGUgdG8gd3JpdGUgb3V0cHV0IHRvIChkZWZhdWx0IHN0ZG91dCkiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1odG1sJywKKyAgICAgICAgZGVzdD0ndXNlX2h0bWwnLAorICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICBoZWxwPSJVc2UgSFRNTCBzdHlsZSBmaWxsaW5nIChpbmNsdWRpbmcgYXV0b21hdGljIEhUTUwgcXVvdGluZykiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1lbnYnLAorICAgICAgICBkZXN0PSd1c2VfZW52JywKKyAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgaGVscD0iUHV0IHRoZSBlbnZpcm9ubWVudCBpbiBhcyB0b3AtbGV2ZWwgdmFyaWFibGVzIikKKyAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKyAgICBpZiBsZW4oYXJncykgPCAxOgorICAgICAgICBwcmludCgnWW91IG11c3QgZ2l2ZSBhIHRlbXBsYXRlIGZpbGVuYW1lJykKKyAgICAgICAgcHJpbnQoZGlyKHBhcnNlcikpCisgICAgICAgIGFzc2VydCAwCisgICAgdGVtcGxhdGVfbmFtZSA9IGFyZ3NbMF0KKyAgICBhcmdzID0gYXJnc1sxOl0KKyAgICB2YXJzID0ge30KKyAgICBpZiBvcHRpb25zLnVzZV9lbnY6CisgICAgICAgIHZhcnMudXBkYXRlKG9zLmVudmlyb24pCisgICAgZm9yIHZhbHVlIGluIGFyZ3M6CisgICAgICAgIGlmICc9JyBub3QgaW4gdmFsdWU6CisgICAgICAgICAgICBwcmludCgnQmFkIGFyZ3VtZW50OiAlcicgJSB2YWx1ZSkKKyAgICAgICAgICAgIHN5cy5leGl0KDIpCisgICAgICAgIG5hbWUsIHZhbHVlID0gdmFsdWUuc3BsaXQoJz0nLCAxKQorICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoJ3B5OicpOgorICAgICAgICAgICAgbmFtZSA9IG5hbWVbOjNdCisgICAgICAgICAgICB2YWx1ZSA9IGV2YWwodmFsdWUpCisgICAgICAgIHZhcnNbbmFtZV0gPSB2YWx1ZQorICAgIGlmIHRlbXBsYXRlX25hbWUgPT0gJy0nOgorICAgICAgICB0ZW1wbGF0ZV9jb250ZW50ID0gc3lzLnN0ZGluLnJlYWQoKQorICAgICAgICB0ZW1wbGF0ZV9uYW1lID0gJzxzdGRpbj4nCisgICAgZWxzZToKKyAgICAgICAgZiA9IG9wZW4odGVtcGxhdGVfbmFtZSwgJ3JiJykKKyAgICAgICAgdGVtcGxhdGVfY29udGVudCA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQorICAgIGlmIG9wdGlvbnMudXNlX2h0bWw6CisgICAgICAgIFRlbXBsYXRlQ2xhc3MgPSBIVE1MVGVtcGxhdGUKKyAgICBlbHNlOgorICAgICAgICBUZW1wbGF0ZUNsYXNzID0gVGVtcGxhdGUKKyAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlQ2xhc3ModGVtcGxhdGVfY29udGVudCwgbmFtZT10ZW1wbGF0ZV9uYW1lKQorICAgIHJlc3VsdCA9IHRlbXBsYXRlLnN1YnN0aXR1dGUodmFycykKKyAgICBpZiBvcHRpb25zLm91dHB1dDoKKyAgICAgICAgZiA9IG9wZW4ob3B0aW9ucy5vdXRwdXQsICd3YicpCisgICAgICAgIGYud3JpdGUocmVzdWx0KQorICAgICAgICBmLmNsb3NlKCkKKyAgICBlbHNlOgorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHJlc3VsdCkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBmcm9tIHBhc3RlLnV0aWwudGVtcGxhdGUgaW1wb3J0IGZpbGxfY29tbWFuZAorICAgIGZpbGxfY29tbWFuZCgpCisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvdGVtcGxhdGUucHkuMjAxNS0wNC0zMC0xMjMyMjQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvdXRpbC90ZW1wbGF0ZS5weS4yMDE1LTA0LTMwLTEyMzIyNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTQ2NmMzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvdGVtcGxhdGUucHkuMjAxNS0wNC0zMC0xMjMyMjQKQEAgLTAsMCArMSw3NjIgQEAKKyIiIgorQSBzbWFsbCB0ZW1wbGF0aW5nIGxhbmd1YWdlCisKK1RoaXMgaW1wbGVtZW50cyBhIHNtYWxsIHRlbXBsYXRpbmcgbGFuZ3VhZ2UgZm9yIHVzZSBpbnRlcm5hbGx5IGluCitQYXN0ZSBhbmQgUGFzdGUgU2NyaXB0LiAgVGhpcyBsYW5ndWFnZSBpbXBsZW1lbnRzIGlmL2VsaWYvZWxzZSwKK2Zvci9jb250aW51ZS9icmVhaywgZXhwcmVzc2lvbnMsIGFuZCBibG9ja3Mgb2YgUHl0aG9uIGNvZGUuICBUaGUKK3N5bnRheCBpczo6CisKKyAge3thbnkgZXhwcmVzc2lvbiAoZnVuY3Rpb24gY2FsbHMgZXRjKX19CisgIHt7YW55IGV4cHJlc3Npb24gfCBmaWx0ZXJ9fQorICB7e2ZvciB4IGluIHl9fS4uLnt7ZW5kZm9yfX0KKyAge3tpZiB4fX14e3tlbGlmIHl9fXl7e2Vsc2V9fXp7e2VuZGlmfX0KKyAge3tweTp4PTF9fQorICB7e3B5OgorICBkZWYgZm9vKGJhcik6CisgICAgICByZXR1cm4gJ2JheicKKyAgfX0KKyAge3tkZWZhdWx0IHZhciA9IGRlZmF1bHRfdmFsdWV9fQorICB7eyMgY29tbWVudH19CisKK1lvdSB1c2UgdGhpcyB3aXRoIHRoZSBgYFRlbXBsYXRlYGAgY2xhc3Mgb3IgdGhlIGBgc3ViYGAgc2hvcnRjdXQuCitUaGUgYGBUZW1wbGF0ZWBgIGNsYXNzIHRha2VzIHRoZSB0ZW1wbGF0ZSBzdHJpbmcgYW5kIHRoZSBuYW1lIG9mCit0aGUgdGVtcGxhdGUgKGZvciBlcnJvcnMpIGFuZCBhIGRlZmF1bHQgbmFtZXNwYWNlLiAgVGhlbiAobGlrZQorYGBzdHJpbmcuVGVtcGxhdGVgYCkgeW91IGNhbiBjYWxsIHRoZSBgYHRtcGwuc3Vic3RpdHV0ZSgqKmt3KWBgCittZXRob2QgdG8gbWFrZSBhIHN1YnN0aXR1dGlvbiAob3IgYGB0bXBsLnN1YnN0aXR1dGUoYV9kaWN0KWBgKS4KKworYGBzdWIoY29udGVudCwgKiprdylgYCBzdWJzdGl0dXRlcyB0aGUgdGVtcGxhdGUgaW1tZWRpYXRlbHkuICBZb3UKK2NhbiB1c2UgYGBfX25hbWU9J3RtcGwuaHRtbCdgYCB0byBzZXQgdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlLgorCitJZiB0aGVyZSBhcmUgc3ludGF4IGVycm9ycyBgYFRlbXBsYXRlRXJyb3JgYCB3aWxsIGJlIHJhaXNlZC4KKyIiIgorCitpbXBvcnQgcmUKK2ltcG9ydCBzaXgKK2ltcG9ydCBzeXMKK2ltcG9ydCBjZ2kKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgcXVvdGUKK2Zyb20gcGFzdGUudXRpbC5sb29wZXIgaW1wb3J0IGxvb3BlcgorCitfX2FsbF9fID0gWydUZW1wbGF0ZUVycm9yJywgJ1RlbXBsYXRlJywgJ3N1YicsICdIVE1MVGVtcGxhdGUnLAorICAgICAgICAgICAnc3ViX2h0bWwnLCAnaHRtbCcsICdidW5jaCddCisKK3Rva2VuX3JlID0gcmUuY29tcGlsZShyJ1x7XHt8XH1cfScpCitpbl9yZSA9IHJlLmNvbXBpbGUocidccytpblxzKycpCit2YXJfcmUgPSByZS5jb21waWxlKHInXlthLXpfXVthLXowLTlfXSokJywgcmUuSSkKKworY2xhc3MgVGVtcGxhdGVFcnJvcihFeGNlcHRpb24pOgorICAgICIiIkV4Y2VwdGlvbiByYWlzZWQgd2hpbGUgcGFyc2luZyBhIHRlbXBsYXRlCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgcG9zaXRpb24sIG5hbWU9Tm9uZSk6CisgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5wb3NpdGlvbiA9IHBvc2l0aW9uCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBtc2cgPSAnJXMgYXQgbGluZSAlcyBjb2x1bW4gJXMnICUgKAorICAgICAgICAgICAgc2VsZi5tZXNzYWdlLCBzZWxmLnBvc2l0aW9uWzBdLCBzZWxmLnBvc2l0aW9uWzFdKQorICAgICAgICBpZiBzZWxmLm5hbWU6CisgICAgICAgICAgICBtc2cgKz0gJyBpbiAlcycgJSBzZWxmLm5hbWUKKyAgICAgICAgcmV0dXJuIG1zZworCitjbGFzcyBfVGVtcGxhdGVDb250aW51ZShFeGNlcHRpb24pOgorICAgIHBhc3MKKworY2xhc3MgX1RlbXBsYXRlQnJlYWsoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKK2NsYXNzIFRlbXBsYXRlKG9iamVjdCk6CisKKyAgICBkZWZhdWx0X25hbWVzcGFjZSA9IHsKKyAgICAgICAgJ3N0YXJ0X2JyYWNlcyc6ICd7eycsCisgICAgICAgICdlbmRfYnJhY2VzJzogJ319JywKKyAgICAgICAgJ2xvb3Blcic6IGxvb3BlciwKKyAgICAgICAgfQorCisgICAgZGVmYXVsdF9lbmNvZGluZyA9ICd1dGY4JworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbnRlbnQsIG5hbWU9Tm9uZSwgbmFtZXNwYWNlPU5vbmUpOgorICAgICAgICBzZWxmLmNvbnRlbnQgPSBjb250ZW50CisgICAgICAgIHNlbGYuX3VuaWNvZGUgPSBpc2luc3RhbmNlKGNvbnRlbnQsIHNpeC50ZXh0X3R5cGUpCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgICAgICBpZiBub3Qgc2VsZi5fdW5pY29kZToKKyAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LmRlY29kZShzZWxmLmRlZmF1bHRfZW5jb2RpbmcpCisgICAgICAgICAgICBzZWxmLl91bmljb2RlID0gVHJ1ZQorCisgICAgICAgIHNlbGYuX3BhcnNlZCA9IHBhcnNlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgbmFtZXNwYWNlIGlzIE5vbmU6CisgICAgICAgICAgICBuYW1lc3BhY2UgPSB7fQorICAgICAgICBzZWxmLm5hbWVzcGFjZSA9IG5hbWVzcGFjZQorCisgICAgZGVmIGZyb21fZmlsZW5hbWUoY2xzLCBmaWxlbmFtZSwgbmFtZXNwYWNlPU5vbmUsIGVuY29kaW5nPU5vbmUpOgorICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgJ3JiJykKKyAgICAgICAgYyA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBpZiBlbmNvZGluZzoKKyAgICAgICAgICAgIGMgPSBjLmRlY29kZShlbmNvZGluZykKKyAgICAgICAgcmV0dXJuIGNscyhjb250ZW50PWMsIG5hbWU9ZmlsZW5hbWUsIG5hbWVzcGFjZT1uYW1lc3BhY2UpCisKKyAgICBmcm9tX2ZpbGVuYW1lID0gY2xhc3NtZXRob2QoZnJvbV9maWxlbmFtZSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXMgbmFtZT0lcj4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBoZXgoaWQoc2VsZikpWzI6XSwgc2VsZi5uYW1lKQorCisgICAgZGVmIHN1YnN0aXR1dGUoc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgaWYga3c6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiWW91IGNhbiBvbmx5IGdpdmUgcG9zaXRpb25hbCAqb3IqIGtleXdvcmQgYXJndW1lbnRzIikKKyAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiWW91IGNhbiBvbmx5IGdpdmUgb24gcG9zaXRpb25hbCBhcmd1bWVudCIpCisgICAgICAgICAgICBrdyA9IGFyZ3NbMF0KKyAgICAgICAgbnMgPSBzZWxmLmRlZmF1bHRfbmFtZXNwYWNlLmNvcHkoKQorICAgICAgICBucy51cGRhdGUoc2VsZi5uYW1lc3BhY2UpCisgICAgICAgIG5zLnVwZGF0ZShrdykKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5faW50ZXJwcmV0KG5zKQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgX2ludGVycHJldChzZWxmLCBucyk6CisgICAgICAgIF9fdHJhY2ViYWNrX2hpZGVfXyA9IFRydWUKKyAgICAgICAgcGFydHMgPSBbXQorICAgICAgICBzZWxmLl9pbnRlcnByZXRfY29kZXMoc2VsZi5fcGFyc2VkLCBucywgb3V0PXBhcnRzKQorICAgICAgICByZXR1cm4gJycuam9pbihwYXJ0cykKKworICAgIGRlZiBfaW50ZXJwcmV0X2NvZGVzKHNlbGYsIGNvZGVzLCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICBmb3IgaXRlbSBpbiBjb2RlczoKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpdGVtKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLl9pbnRlcnByZXRfY29kZShpdGVtLCBucywgb3V0KQorCisgICAgZGVmIF9pbnRlcnByZXRfY29kZShzZWxmLCBjb2RlLCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICBuYW1lLCBwb3MgPSBjb2RlWzBdLCBjb2RlWzFdCisgICAgICAgIGlmIG5hbWUgPT0gJ3B5JzoKKyAgICAgICAgICAgIHNlbGYuX2V4ZWMoY29kZVsyXSwgbnMsIHBvcykKKyAgICAgICAgZWxpZiBuYW1lID09ICdjb250aW51ZSc6CisgICAgICAgICAgICByYWlzZSBfVGVtcGxhdGVDb250aW51ZSgpCisgICAgICAgIGVsaWYgbmFtZSA9PSAnYnJlYWsnOgorICAgICAgICAgICAgcmFpc2UgX1RlbXBsYXRlQnJlYWsoKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2Zvcic6CisgICAgICAgICAgICB2YXJzLCBleHByLCBjb250ZW50ID0gY29kZVsyXSwgY29kZVszXSwgY29kZVs0XQorICAgICAgICAgICAgZXhwciA9IHNlbGYuX2V2YWwoZXhwciwgbnMsIHBvcykKKyAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9mb3IodmFycywgZXhwciwgY29udGVudCwgbnMsIG91dCkKKyAgICAgICAgZWxpZiBuYW1lID09ICdjb25kJzoKKyAgICAgICAgICAgIHBhcnRzID0gY29kZVsyOl0KKyAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9pZihwYXJ0cywgbnMsIG91dCkKKyAgICAgICAgZWxpZiBuYW1lID09ICdleHByJzoKKyAgICAgICAgICAgIHBhcnRzID0gY29kZVsyXS5zcGxpdCgnfCcpCisgICAgICAgICAgICBiYXNlID0gc2VsZi5fZXZhbChwYXJ0c1swXSwgbnMsIHBvcykKKyAgICAgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzWzE6XToKKyAgICAgICAgICAgICAgICBmdW5jID0gc2VsZi5fZXZhbChwYXJ0LCBucywgcG9zKQorICAgICAgICAgICAgICAgIGJhc2UgPSBmdW5jKGJhc2UpCisgICAgICAgICAgICBvdXQuYXBwZW5kKHNlbGYuX3JlcHIoYmFzZSwgcG9zKSkKKyAgICAgICAgZWxpZiBuYW1lID09ICdkZWZhdWx0JzoKKyAgICAgICAgICAgIHZhciwgZXhwciA9IGNvZGVbMl0sIGNvZGVbM10KKyAgICAgICAgICAgIGlmIHZhciBub3QgaW4gbnM6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fZXZhbChleHByLCBucywgcG9zKQorICAgICAgICAgICAgICAgIG5zW3Zhcl0gPSByZXN1bHQKKyAgICAgICAgZWxpZiBuYW1lID09ICdjb21tZW50JzoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IDAsICJVbmtub3duIGNvZGU6ICVyIiAlIG5hbWUKKworICAgIGRlZiBfaW50ZXJwcmV0X2ZvcihzZWxmLCB2YXJzLCBleHByLCBjb250ZW50LCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICBmb3IgaXRlbSBpbiBleHByOgorICAgICAgICAgICAgaWYgbGVuKHZhcnMpID09IDE6CisgICAgICAgICAgICAgICAgbnNbdmFyc1swXV0gPSBpdGVtCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGxlbih2YXJzKSAhPSBsZW4oaXRlbSk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnTmVlZCAlaSBpdGVtcyB0byB1bnBhY2sgKGdvdCAlaSBpdGVtcyknCisgICAgICAgICAgICAgICAgICAgICAgICAlIChsZW4odmFycyksIGxlbihpdGVtKSkpCisgICAgICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHppcCh2YXJzLCBpdGVtKToKKyAgICAgICAgICAgICAgICAgICAgbnNbbmFtZV0gPSB2YWx1ZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9jb2Rlcyhjb250ZW50LCBucywgb3V0KQorICAgICAgICAgICAgZXhjZXB0IF9UZW1wbGF0ZUNvbnRpbnVlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBleGNlcHQgX1RlbXBsYXRlQnJlYWs6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgIGRlZiBfaW50ZXJwcmV0X2lmKHNlbGYsIHBhcnRzLCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICAjIEBAOiBpZi9lbHNlL2Vsc2UgZ2V0cyB0aHJvdWdoCisgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHBhcnQsIHNpeC5zdHJpbmdfdHlwZXMpCisgICAgICAgICAgICBuYW1lLCBwb3MgPSBwYXJ0WzBdLCBwYXJ0WzFdCisgICAgICAgICAgICBpZiBuYW1lID09ICdlbHNlJzoKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX2V2YWwocGFydFsyXSwgbnMsIHBvcykKKyAgICAgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAgICAgICBzZWxmLl9pbnRlcnByZXRfY29kZXMocGFydFszXSwgbnMsIG91dCkKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgZGVmIF9ldmFsKHNlbGYsIGNvZGUsIG5zLCBwb3MpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZhbHVlID0gZXZhbChjb2RlLCBucykKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBlID0gZXhjX2luZm9bMV0KKyAgICAgICAgICAgIGlmIGdldGF0dHIoZSwgJ2FyZ3MnKToKKyAgICAgICAgICAgICAgICBhcmcwID0gZS5hcmdzWzBdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFyZzAgPSBzdHIoZSkKKyAgICAgICAgICAgIGUuYXJncyA9IChzZWxmLl9hZGRfbGluZV9pbmZvKGFyZzAsIHBvcyksKQorICAgICAgICAgICAgc2l4LnJlcmFpc2UoZXhjX2luZm9bMF0sIGUsIGV4Y19pbmZvWzJdKQorCisgICAgZGVmIF9leGVjKHNlbGYsIGNvZGUsIG5zLCBwb3MpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNpeC5leGVjXyhjb2RlLCBucykKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgZSA9IGV4Y19pbmZvWzFdCisgICAgICAgICAgICBlLmFyZ3MgPSAoc2VsZi5fYWRkX2xpbmVfaW5mbyhlLmFyZ3NbMF0sIHBvcyksKQorICAgICAgICAgICAgc2l4LnJlcmFpc2UoZXhjX2luZm9bMF0sIGUsIGV4Y19pbmZvWzJdKQorCisgICAgZGVmIF9yZXByKHNlbGYsIHZhbHVlLCBwb3MpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAgICAgICBpZiBzZWxmLl91bmljb2RlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzaXgudGV4dF90eXBlKHZhbHVlKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgZSA9IGV4Y19pbmZvWzFdCisgICAgICAgICAgICBlLmFyZ3MgPSAoc2VsZi5fYWRkX2xpbmVfaW5mbyhlLmFyZ3NbMF0sIHBvcyksKQorICAgICAgICAgICAgc2l4LnJlcmFpc2UoZXhjX2luZm9bMF0sIGUsIGV4Y19pbmZvWzJdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2VsZi5fdW5pY29kZSBhbmQgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LmJpbmFyeV90eXBlKToKKyAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5kZWZhdWx0X2VuY29kaW5nOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBVbmljb2RlRGVjb2RlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnQ2Fubm90IGRlY29kZSBzdHIgdmFsdWUgJXIgaW50byB1bmljb2RlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICcobm8gZGVmYXVsdF9lbmNvZGluZyBwcm92aWRlZCknICUgdmFsdWUpCisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5kZWNvZGUoc2VsZi5kZWZhdWx0X2VuY29kaW5nKQorICAgICAgICAgICAgZWxpZiBub3Qgc2VsZi5fdW5pY29kZSBhbmQgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LnRleHRfdHlwZSk6CisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuZGVmYXVsdF9lbmNvZGluZzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVW5pY29kZUVuY29kZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCBlbmNvZGUgdW5pY29kZSB2YWx1ZSAlciBpbnRvIHN0ciAnCisgICAgICAgICAgICAgICAgICAgICAgICAnKG5vIGRlZmF1bHRfZW5jb2RpbmcgcHJvdmlkZWQpJyAlIHZhbHVlKQorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZW5jb2RlKHNlbGYuZGVmYXVsdF9lbmNvZGluZykKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorCisKKyAgICBkZWYgX2FkZF9saW5lX2luZm8oc2VsZiwgbXNnLCBwb3MpOgorICAgICAgICBtc2cgPSAiJXMgYXQgbGluZSAlcyBjb2x1bW4gJXMiICUgKAorICAgICAgICAgICAgbXNnLCBwb3NbMF0sIHBvc1sxXSkKKyAgICAgICAgaWYgc2VsZi5uYW1lOgorICAgICAgICAgICAgbXNnICs9ICIgaW4gZmlsZSAlcyIgJSBzZWxmLm5hbWUKKyAgICAgICAgcmV0dXJuIG1zZworCitkZWYgc3ViKGNvbnRlbnQsICoqa3cpOgorICAgIG5hbWUgPSBrdy5nZXQoJ19fbmFtZScpCisgICAgdG1wbCA9IFRlbXBsYXRlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICByZXR1cm4gdG1wbC5zdWJzdGl0dXRlKGt3KQorCitkZWYgcGFzdGVfc2NyaXB0X3RlbXBsYXRlX3JlbmRlcmVyKGNvbnRlbnQsIHZhcnMsIGZpbGVuYW1lPU5vbmUpOgorICAgIHRtcGwgPSBUZW1wbGF0ZShjb250ZW50LCBuYW1lPWZpbGVuYW1lKQorICAgIHJldHVybiB0bXBsLnN1YnN0aXR1dGUodmFycykKKworY2xhc3MgYnVuY2goZGljdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprdyk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdy5pdGVtcygpOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCB2YWx1ZSkKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIHNlbGZbbmFtZV0gPSB2YWx1ZQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZltuYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIGlmICdkZWZhdWx0JyBpbiBzZWxmOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleSkKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCAnZGVmYXVsdCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGl0ZW1zID0gWworICAgICAgICAgICAgKGssIHYpIGZvciBrLCB2IGluIHNlbGYuaXRlbXMoKV0KKyAgICAgICAgaXRlbXMuc29ydCgpCisgICAgICAgIHJldHVybiAnPCVzICVzPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICcgJy5qb2luKFsnJXM9JXInICUgKGssIHYpIGZvciBrLCB2IGluIGl0ZW1zXSkpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgSFRNTCBUZW1wbGF0aW5nCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY2xhc3MgaHRtbChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi52YWx1ZQorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXI+JyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLnZhbHVlKQorCitkZWYgaHRtbF9xdW90ZSh2YWx1ZSk6CisgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICBpZiBoYXNhdHRyKHZhbHVlLCAnX191bmljb2RlX18nKToKKyAgICAgICAgICAgIHZhbHVlID0gdW5pY29kZSh2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgIHZhbHVlID0gY2dpLmVzY2FwZSh2YWx1ZSwgMSkKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB1bmljb2RlKToKKyAgICAgICAgdmFsdWUgPSB2YWx1ZS5lbmNvZGUoJ2FzY2lpJywgJ3htbGNoYXJyZWZyZXBsYWNlJykKKyAgICByZXR1cm4gdmFsdWUKKworZGVmIHVybCh2KToKKyAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgaWYgaGFzYXR0cih2LCAnX191bmljb2RlX18nKToKKyAgICAgICAgICAgIHYgPSB1bmljb2RlKHYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB2ID0gc3RyKHYpCisgICAgaWYgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKKyAgICAgICAgdiA9IHYuZW5jb2RlKCd1dGY4JykKKyAgICByZXR1cm4gcXVvdGUodikKKworZGVmIGF0dHIoKiprdyk6CisgICAga3cgPSBrdy5pdGVtcygpCisgICAga3cuc29ydCgpCisgICAgcGFydHMgPSBbXQorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdzoKKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoJ18nKToKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lWzotMV0KKyAgICAgICAgcGFydHMuYXBwZW5kKCclcz0iJXMiJyAlIChodG1sX3F1b3RlKG5hbWUpLCBodG1sX3F1b3RlKHZhbHVlKSkpCisgICAgcmV0dXJuIGh0bWwoJyAnLmpvaW4ocGFydHMpKQorCitjbGFzcyBIVE1MVGVtcGxhdGUoVGVtcGxhdGUpOgorCisgICAgZGVmYXVsdF9uYW1lc3BhY2UgPSBUZW1wbGF0ZS5kZWZhdWx0X25hbWVzcGFjZS5jb3B5KCkKKyAgICBkZWZhdWx0X25hbWVzcGFjZS51cGRhdGUoZGljdCgKKyAgICAgICAgaHRtbD1odG1sLAorICAgICAgICBhdHRyPWF0dHIsCisgICAgICAgIHVybD11cmwsCisgICAgICAgICkpCisKKyAgICBkZWYgX3JlcHIoc2VsZiwgdmFsdWUsIHBvcyk6CisgICAgICAgIHBsYWluID0gVGVtcGxhdGUuX3JlcHIoc2VsZiwgdmFsdWUsIHBvcykKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaHRtbCk6CisgICAgICAgICAgICByZXR1cm4gcGxhaW4KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBodG1sX3F1b3RlKHBsYWluKQorCitkZWYgc3ViX2h0bWwoY29udGVudCwgKiprdyk6CisgICAgbmFtZSA9IGt3LmdldCgnX19uYW1lJykKKyAgICB0bXBsID0gSFRNTFRlbXBsYXRlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICByZXR1cm4gdG1wbC5zdWJzdGl0dXRlKGt3KQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgTGV4aW5nIGFuZCBQYXJzaW5nCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZGVmIGxleChzLCBuYW1lPU5vbmUsIHRyaW1fd2hpdGVzcGFjZT1UcnVlKToKKyAgICAiIiIKKyAgICBMZXggYSBzdHJpbmcgaW50byBjaHVua3M6CisKKyAgICAgICAgPj4+IGxleCgnaGV5JykKKyAgICAgICAgWydoZXknXQorICAgICAgICA+Pj4gbGV4KCdoZXkge3t5b3V9fScpCisgICAgICAgIFsnaGV5ICcsICgneW91JywgKDEsIDcpKV0KKyAgICAgICAgPj4+IGxleCgnaGV5IHt7JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE5vIH19IHRvIGZpbmlzaCBsYXN0IGV4cHJlc3Npb24gYXQgbGluZSAxIGNvbHVtbiA3CisgICAgICAgID4+PiBsZXgoJ2hleSB9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiB9fSBvdXRzaWRlIGV4cHJlc3Npb24gYXQgbGluZSAxIGNvbHVtbiA3CisgICAgICAgID4+PiBsZXgoJ2hleSB7eyB7eycpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiB7eyBpbnNpZGUgZXhwcmVzc2lvbiBhdCBsaW5lIDEgY29sdW1uIDEwCisKKyAgICAiIiIKKyAgICBpbl9leHByID0gRmFsc2UKKyAgICBjaHVua3MgPSBbXQorICAgIGxhc3QgPSAwCisgICAgbGFzdF9wb3MgPSAoMSwgMSkKKyAgICBmb3IgbWF0Y2ggaW4gdG9rZW5fcmUuZmluZGl0ZXIocyk6CisgICAgICAgIGV4cHIgPSBtYXRjaC5ncm91cCgwKQorICAgICAgICBwb3MgPSBmaW5kX3Bvc2l0aW9uKHMsIG1hdGNoLmVuZCgpKQorICAgICAgICBpZiBleHByID09ICd7eycgYW5kIGluX2V4cHI6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKCd7eyBpbnNpZGUgZXhwcmVzc2lvbicsIHBvc2l0aW9uPXBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lKQorICAgICAgICBlbGlmIGV4cHIgPT0gJ319JyBhbmQgbm90IGluX2V4cHI6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKCd9fSBvdXRzaWRlIGV4cHJlc3Npb24nLCBwb3NpdGlvbj1wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgZXhwciA9PSAne3snOgorICAgICAgICAgICAgcGFydCA9IHNbbGFzdDptYXRjaC5zdGFydCgpXQorICAgICAgICAgICAgaWYgcGFydDoKKyAgICAgICAgICAgICAgICBjaHVua3MuYXBwZW5kKHBhcnQpCisgICAgICAgICAgICBpbl9leHByID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2h1bmtzLmFwcGVuZCgoc1tsYXN0Om1hdGNoLnN0YXJ0KCldLCBsYXN0X3BvcykpCisgICAgICAgICAgICBpbl9leHByID0gRmFsc2UKKyAgICAgICAgbGFzdCA9IG1hdGNoLmVuZCgpCisgICAgICAgIGxhc3RfcG9zID0gcG9zCisgICAgaWYgaW5fZXhwcjoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcignTm8gfX0gdG8gZmluaXNoIGxhc3QgZXhwcmVzc2lvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lLCBwb3NpdGlvbj1sYXN0X3BvcykKKyAgICBwYXJ0ID0gc1tsYXN0Ol0KKyAgICBpZiBwYXJ0OgorICAgICAgICBjaHVua3MuYXBwZW5kKHBhcnQpCisgICAgaWYgdHJpbV93aGl0ZXNwYWNlOgorICAgICAgICBjaHVua3MgPSB0cmltX2xleChjaHVua3MpCisgICAgcmV0dXJuIGNodW5rcworCitzdGF0ZW1lbnRfcmUgPSByZS5jb21waWxlKHInXig/OmlmIHxlbGlmIHxlbHNlIHxmb3IgfHB5OiknKQorc2luZ2xlX3N0YXRlbWVudHMgPSBbJ2VuZGlmJywgJ2VuZGZvcicsICdjb250aW51ZScsICdicmVhayddCit0cmFpbF93aGl0ZXNwYWNlX3JlID0gcmUuY29tcGlsZShyJ1xuW1x0IF0qJCcpCitsZWFkX3doaXRlc3BhY2VfcmUgPSByZS5jb21waWxlKHInXltcdCBdKlxuJykKKworZGVmIHRyaW1fbGV4KHRva2Vucyk6CisgICAgciIiIgorICAgIFRha2VzIGEgbGV4ZWQgc2V0IG9mIHRva2VucywgYW5kIHJlbW92ZXMgd2hpdGVzcGFjZSB3aGVuIHRoZXJlIGlzCisgICAgYSBkaXJlY3RpdmUgb24gYSBsaW5lIGJ5IGl0c2VsZjoKKworICAgICAgID4+PiB0b2tlbnMgPSBsZXgoJ3t7aWYgeH19XG54XG57e2VuZGlmfX1cbnknLCB0cmltX3doaXRlc3BhY2U9RmFsc2UpCisgICAgICAgPj4+IHRva2VucworICAgICAgIFsoJ2lmIHgnLCAoMSwgMykpLCAnXG54XG4nLCAoJ2VuZGlmJywgKDMsIDMpKSwgJ1xueSddCisgICAgICAgPj4+IHRyaW1fbGV4KHRva2VucykKKyAgICAgICBbKCdpZiB4JywgKDEsIDMpKSwgJ3hcbicsICgnZW5kaWYnLCAoMywgMykpLCAneSddCisgICAgIiIiCisgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHRva2VucykpOgorICAgICAgICBjdXJyZW50ID0gdG9rZW5zW2ldCisgICAgICAgIGlmIGlzaW5zdGFuY2UodG9rZW5zW2ldLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgICMgd2UgZG9uJ3QgdHJpbSB0aGlzCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpdGVtID0gY3VycmVudFswXQorICAgICAgICBpZiBub3Qgc3RhdGVtZW50X3JlLnNlYXJjaChpdGVtKSBhbmQgaXRlbSBub3QgaW4gc2luZ2xlX3N0YXRlbWVudHM6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBub3QgaToKKyAgICAgICAgICAgIHByZXYgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJldiA9IHRva2Vuc1tpLTFdCisgICAgICAgIGlmIGkrMSA+PSBsZW4odG9rZW5zKToKKyAgICAgICAgICAgIG5leHQgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmV4dCA9IHRva2Vuc1tpKzFdCisgICAgICAgIGlmIChub3QgaXNpbnN0YW5jZShuZXh0LCBzaXguc3RyaW5nX3R5cGVzKQorICAgICAgICAgICAgb3Igbm90IGlzaW5zdGFuY2UocHJldiwgc2l4LnN0cmluZ190eXBlcykpOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgKChub3QgcHJldiBvciB0cmFpbF93aGl0ZXNwYWNlX3JlLnNlYXJjaChwcmV2KSkKKyAgICAgICAgICAgIGFuZCAobm90IG5leHQgb3IgbGVhZF93aGl0ZXNwYWNlX3JlLnNlYXJjaChuZXh0KSkpOgorICAgICAgICAgICAgaWYgcHJldjoKKyAgICAgICAgICAgICAgICBtID0gdHJhaWxfd2hpdGVzcGFjZV9yZS5zZWFyY2gocHJldikKKyAgICAgICAgICAgICAgICAjICsxIHRvIGxlYXZlIHRoZSBsZWFkaW5nIFxuIG9uOgorICAgICAgICAgICAgICAgIHByZXYgPSBwcmV2WzptLnN0YXJ0KCkrMV0KKyAgICAgICAgICAgICAgICB0b2tlbnNbaS0xXSA9IHByZXYKKyAgICAgICAgICAgIGlmIG5leHQ6CisgICAgICAgICAgICAgICAgbSA9IGxlYWRfd2hpdGVzcGFjZV9yZS5zZWFyY2gobmV4dCkKKyAgICAgICAgICAgICAgICBuZXh0ID0gbmV4dFttLmVuZCgpOl0KKyAgICAgICAgICAgICAgICB0b2tlbnNbaSsxXSA9IG5leHQKKyAgICByZXR1cm4gdG9rZW5zCisKKworZGVmIGZpbmRfcG9zaXRpb24oc3RyaW5nLCBpbmRleCk6CisgICAgIiIiR2l2ZW4gYSBzdHJpbmcgYW5kIGluZGV4LCByZXR1cm4gKGxpbmUsIGNvbHVtbikiIiIKKyAgICBsZWFkaW5nID0gc3RyaW5nWzppbmRleF0uc3BsaXRsaW5lcygpCisgICAgcmV0dXJuIChsZW4obGVhZGluZyksIGxlbihsZWFkaW5nWy0xXSkrMSkKKworZGVmIHBhcnNlKHMsIG5hbWU9Tm9uZSk6CisgICAgciIiIgorICAgIFBhcnNlcyBhIHN0cmluZyBpbnRvIGEga2luZCBvZiBBU1QKKworICAgICAgICA+Pj4gcGFyc2UoJ3t7eH19JykKKyAgICAgICAgWygnZXhwcicsICgxLCAzKSwgJ3gnKV0KKyAgICAgICAgPj4+IHBhcnNlKCdmb28nKQorICAgICAgICBbJ2ZvbyddCisgICAgICAgID4+PiBwYXJzZSgne3tpZiB4fX10ZXN0e3tlbmRpZn19JykKKyAgICAgICAgWygnY29uZCcsICgxLCAzKSwgKCdpZicsICgxLCAzKSwgJ3gnLCBbJ3Rlc3QnXSkpXQorICAgICAgICA+Pj4gcGFyc2UoJ3Nlcmllcy0+e3tmb3IgeCBpbiB5fX14PXt7eH19e3tlbmRmb3J9fScpCisgICAgICAgIFsnc2VyaWVzLT4nLCAoJ2ZvcicsICgxLCAxMSksICgneCcsKSwgJ3knLCBbJ3g9JywgKCdleHByJywgKDEsIDI3KSwgJ3gnKV0pXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7Zm9yIHgsIHkgaW4gejp9fXt7Y29udGludWV9fXt7ZW5kZm9yfX0nKQorICAgICAgICBbKCdmb3InLCAoMSwgMyksICgneCcsICd5JyksICd6JywgWygnY29udGludWUnLCAoMSwgMjEpKV0pXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7cHk6eD0xfX0nKQorICAgICAgICBbKCdweScsICgxLCAzKSwgJ3g9MScpXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7aWYgeH19YXt7ZWxpZiB5fX1ie3tlbHNlfX1je3tlbmRpZn19JykKKyAgICAgICAgWygnY29uZCcsICgxLCAzKSwgKCdpZicsICgxLCAzKSwgJ3gnLCBbJ2EnXSksICgnZWxpZicsICgxLCAxMiksICd5JywgWydiJ10pLCAoJ2Vsc2UnLCAoMSwgMjMpLCBOb25lLCBbJ2MnXSkpXQorCisgICAgU29tZSBleGNlcHRpb25zOjoKKworICAgICAgICA+Pj4gcGFyc2UoJ3t7Y29udGludWV9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiBjb250aW51ZSBvdXRzaWRlIG9mIGZvciBsb29wIGF0IGxpbmUgMSBjb2x1bW4gMworICAgICAgICA+Pj4gcGFyc2UoJ3t7aWYgeH19Zm9vJykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE5vIHt7ZW5kaWZ9fSBhdCBsaW5lIDEgY29sdW1uIDMKKyAgICAgICAgPj4+IHBhcnNlKCd7e2Vsc2V9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiBlbHNlIG91dHNpZGUgb2YgYW4gaWYgYmxvY2sgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgICAgID4+PiBwYXJzZSgne3tpZiB4fX17e2ZvciB4IGluIHl9fXt7ZW5kaWZ9fXt7ZW5kZm9yfX0nKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgVGVtcGxhdGVFcnJvcjogVW5leHBlY3RlZCBlbmRpZiBhdCBsaW5lIDEgY29sdW1uIDI1CisgICAgICAgID4+PiBwYXJzZSgne3tpZn19e3tlbmRpZn19JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IGlmIHdpdGggbm8gZXhwcmVzc2lvbiBhdCBsaW5lIDEgY29sdW1uIDMKKyAgICAgICAgPj4+IHBhcnNlKCd7e2ZvciB4IHl9fXt7ZW5kZm9yfX0nKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgVGVtcGxhdGVFcnJvcjogQmFkIGZvciAobm8gImluIikgaW4gJ3ggeScgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgICAgID4+PiBwYXJzZSgne3tweTp4PTFcbnk9Mn19JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE11bHRpLWxpbmUgcHkgYmxvY2tzIG11c3Qgc3RhcnQgd2l0aCBhIG5ld2xpbmUgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgIiIiCisgICAgdG9rZW5zID0gbGV4KHMsIG5hbWU9bmFtZSkKKyAgICByZXN1bHQgPSBbXQorICAgIHdoaWxlIHRva2VuczoKKyAgICAgICAgbmV4dCwgdG9rZW5zID0gcGFyc2VfZXhwcih0b2tlbnMsIG5hbWUpCisgICAgICAgIHJlc3VsdC5hcHBlbmQobmV4dCkKKyAgICByZXR1cm4gcmVzdWx0CisKK2RlZiBwYXJzZV9leHByKHRva2VucywgbmFtZSwgY29udGV4dD0oKSk6CisgICAgaWYgaXNpbnN0YW5jZSh0b2tlbnNbMF0sIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICByZXR1cm4gdG9rZW5zWzBdLCB0b2tlbnNbMTpdCisgICAgZXhwciwgcG9zID0gdG9rZW5zWzBdCisgICAgZXhwciA9IGV4cHIuc3RyaXAoKQorICAgIGlmIGV4cHIuc3RhcnRzd2l0aCgncHk6Jyk6CisgICAgICAgIGV4cHIgPSBleHByWzM6XS5sc3RyaXAoJyBcdCcpCisgICAgICAgIGlmIGV4cHIuc3RhcnRzd2l0aCgnXG4nKToKKyAgICAgICAgICAgIGV4cHIgPSBleHByWzE6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgJ1xuJyBpbiBleHByOgorICAgICAgICAgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICdNdWx0aS1saW5lIHB5IGJsb2NrcyBtdXN0IHN0YXJ0IHdpdGggYSBuZXdsaW5lJywKKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIHJldHVybiAoJ3B5JywgcG9zLCBleHByKSwgdG9rZW5zWzE6XQorICAgIGVsaWYgZXhwciBpbiAoJ2NvbnRpbnVlJywgJ2JyZWFrJyk6CisgICAgICAgIGlmICdmb3InIG5vdCBpbiBjb250ZXh0OgorICAgICAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICAgICAnY29udGludWUgb3V0c2lkZSBvZiBmb3IgbG9vcCcsCisgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIHJldHVybiAoZXhwciwgcG9zKSwgdG9rZW5zWzE6XQorICAgIGVsaWYgZXhwci5zdGFydHN3aXRoKCdpZiAnKToKKyAgICAgICAgcmV0dXJuIHBhcnNlX2NvbmQodG9rZW5zLCBuYW1lLCBjb250ZXh0KQorICAgIGVsaWYgKGV4cHIuc3RhcnRzd2l0aCgnZWxpZiAnKQorICAgICAgICAgIG9yIGV4cHIgPT0gJ2Vsc2UnKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICclcyBvdXRzaWRlIG9mIGFuIGlmIGJsb2NrJyAlIGV4cHIuc3BsaXQoKVswXSwKKyAgICAgICAgICAgIHBvc2l0aW9uPXBvcywgbmFtZT1uYW1lKQorICAgIGVsaWYgZXhwciBpbiAoJ2lmJywgJ2VsaWYnLCAnZm9yJyk6CisgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAnJXMgd2l0aCBubyBleHByZXNzaW9uJyAlIGV4cHIsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICBlbGlmIGV4cHIgaW4gKCdlbmRpZicsICdlbmRmb3InKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdVbmV4cGVjdGVkICVzJyAlIGV4cHIsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICBlbGlmIGV4cHIuc3RhcnRzd2l0aCgnZm9yICcpOgorICAgICAgICByZXR1cm4gcGFyc2VfZm9yKHRva2VucywgbmFtZSwgY29udGV4dCkKKyAgICBlbGlmIGV4cHIuc3RhcnRzd2l0aCgnZGVmYXVsdCAnKToKKyAgICAgICAgcmV0dXJuIHBhcnNlX2RlZmF1bHQodG9rZW5zLCBuYW1lLCBjb250ZXh0KQorICAgIGVsaWYgZXhwci5zdGFydHN3aXRoKCcjJyk6CisgICAgICAgIHJldHVybiAoJ2NvbW1lbnQnLCBwb3MsIHRva2Vuc1swXVswXSksIHRva2Vuc1sxOl0KKyAgICByZXR1cm4gKCdleHByJywgcG9zLCB0b2tlbnNbMF1bMF0pLCB0b2tlbnNbMTpdCisKK2RlZiBwYXJzZV9jb25kKHRva2VucywgbmFtZSwgY29udGV4dCk6CisgICAgc3RhcnQgPSB0b2tlbnNbMF1bMV0KKyAgICBwaWVjZXMgPSBbXQorICAgIGNvbnRleHQgPSBjb250ZXh0ICsgKCdpZicsKQorICAgIHdoaWxlIDE6CisgICAgICAgIGlmIG5vdCB0b2tlbnM6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgICAgICdNaXNzaW5nIHt7ZW5kaWZ9fScsCisgICAgICAgICAgICAgICAgcG9zaXRpb249c3RhcnQsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UodG9rZW5zWzBdLCB0dXBsZSkKKyAgICAgICAgICAgIGFuZCB0b2tlbnNbMF1bMF0gPT0gJ2VuZGlmJyk6CisgICAgICAgICAgICByZXR1cm4gKCdjb25kJywgc3RhcnQpICsgdHVwbGUocGllY2VzKSwgdG9rZW5zWzE6XQorICAgICAgICBuZXh0LCB0b2tlbnMgPSBwYXJzZV9vbmVfY29uZCh0b2tlbnMsIG5hbWUsIGNvbnRleHQpCisgICAgICAgIHBpZWNlcy5hcHBlbmQobmV4dCkKKworZGVmIHBhcnNlX29uZV9jb25kKHRva2VucywgbmFtZSwgY29udGV4dCk6CisgICAgKGZpcnN0LCBwb3MpLCB0b2tlbnMgPSB0b2tlbnNbMF0sIHRva2Vuc1sxOl0KKyAgICBjb250ZW50ID0gW10KKyAgICBpZiBmaXJzdC5lbmRzd2l0aCgnOicpOgorICAgICAgICBmaXJzdCA9IGZpcnN0WzotMV0KKyAgICBpZiBmaXJzdC5zdGFydHN3aXRoKCdpZiAnKToKKyAgICAgICAgcGFydCA9ICgnaWYnLCBwb3MsIGZpcnN0WzM6XS5sc3RyaXAoKSwgY29udGVudCkKKyAgICBlbGlmIGZpcnN0LnN0YXJ0c3dpdGgoJ2VsaWYgJyk6CisgICAgICAgIHBhcnQgPSAoJ2VsaWYnLCBwb3MsIGZpcnN0WzU6XS5sc3RyaXAoKSwgY29udGVudCkKKyAgICBlbGlmIGZpcnN0ID09ICdlbHNlJzoKKyAgICAgICAgcGFydCA9ICgnZWxzZScsIHBvcywgTm9uZSwgY29udGVudCkKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgMCwgIlVuZXhwZWN0ZWQgdG9rZW4gJXIgYXQgJXMiICUgKGZpcnN0LCBwb3MpCisgICAgd2hpbGUgMToKKyAgICAgICAgaWYgbm90IHRva2VuczoKKyAgICAgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAgICAgJ05vIHt7ZW5kaWZ9fScsCisgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIGlmIChpc2luc3RhbmNlKHRva2Vuc1swXSwgdHVwbGUpCisgICAgICAgICAgICBhbmQgKHRva2Vuc1swXVswXSA9PSAnZW5kaWYnCisgICAgICAgICAgICAgICAgIG9yIHRva2Vuc1swXVswXS5zdGFydHN3aXRoKCdlbGlmICcpCisgICAgICAgICAgICAgICAgIG9yIHRva2Vuc1swXVswXSA9PSAnZWxzZScpKToKKyAgICAgICAgICAgIHJldHVybiBwYXJ0LCB0b2tlbnMKKyAgICAgICAgbmV4dCwgdG9rZW5zID0gcGFyc2VfZXhwcih0b2tlbnMsIG5hbWUsIGNvbnRleHQpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKG5leHQpCisKK2RlZiBwYXJzZV9mb3IodG9rZW5zLCBuYW1lLCBjb250ZXh0KToKKyAgICBmaXJzdCwgcG9zID0gdG9rZW5zWzBdCisgICAgdG9rZW5zID0gdG9rZW5zWzE6XQorICAgIGNvbnRleHQgPSAoJ2ZvcicsKSArIGNvbnRleHQKKyAgICBjb250ZW50ID0gW10KKyAgICBhc3NlcnQgZmlyc3Quc3RhcnRzd2l0aCgnZm9yICcpCisgICAgaWYgZmlyc3QuZW5kc3dpdGgoJzonKToKKyAgICAgICAgZmlyc3QgPSBmaXJzdFs6LTFdCisgICAgZmlyc3QgPSBmaXJzdFszOl0uc3RyaXAoKQorICAgIG1hdGNoID0gaW5fcmUuc2VhcmNoKGZpcnN0KQorICAgIGlmIG5vdCBtYXRjaDoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdCYWQgZm9yIChubyAiaW4iKSBpbiAlcicgJSBmaXJzdCwKKyAgICAgICAgICAgIHBvc2l0aW9uPXBvcywgbmFtZT1uYW1lKQorICAgIHZhcnMgPSBmaXJzdFs6bWF0Y2guc3RhcnQoKV0KKyAgICBpZiAnKCcgaW4gdmFyczoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdZb3UgY2Fubm90IGhhdmUgKCkgaW4gdGhlIHZhcmlhYmxlIHNlY3Rpb24gb2YgYSBmb3IgbG9vcCAoJXIpJworICAgICAgICAgICAgJSB2YXJzLCBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICB2YXJzID0gdHVwbGUoWworICAgICAgICB2LnN0cmlwKCkgZm9yIHYgaW4gZmlyc3RbOm1hdGNoLnN0YXJ0KCldLnNwbGl0KCcsJykKKyAgICAgICAgaWYgdi5zdHJpcCgpXSkKKyAgICBleHByID0gZmlyc3RbbWF0Y2guZW5kKCk6XQorICAgIHdoaWxlIDE6CisgICAgICAgIGlmIG5vdCB0b2tlbnM6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgICAgICdObyB7e2VuZGZvcn19JywKKyAgICAgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UodG9rZW5zWzBdLCB0dXBsZSkKKyAgICAgICAgICAgIGFuZCB0b2tlbnNbMF1bMF0gPT0gJ2VuZGZvcicpOgorICAgICAgICAgICAgcmV0dXJuICgnZm9yJywgcG9zLCB2YXJzLCBleHByLCBjb250ZW50KSwgdG9rZW5zWzE6XQorICAgICAgICBuZXh0LCB0b2tlbnMgPSBwYXJzZV9leHByKHRva2VucywgbmFtZSwgY29udGV4dCkKKyAgICAgICAgY29udGVudC5hcHBlbmQobmV4dCkKKworZGVmIHBhcnNlX2RlZmF1bHQodG9rZW5zLCBuYW1lLCBjb250ZXh0KToKKyAgICBmaXJzdCwgcG9zID0gdG9rZW5zWzBdCisgICAgYXNzZXJ0IGZpcnN0LnN0YXJ0c3dpdGgoJ2RlZmF1bHQgJykKKyAgICBmaXJzdCA9IGZpcnN0LnNwbGl0KE5vbmUsIDEpWzFdCisgICAgcGFydHMgPSBmaXJzdC5zcGxpdCgnPScsIDEpCisgICAgaWYgbGVuKHBhcnRzKSA9PSAxOgorICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgIkV4cHJlc3Npb24gbXVzdCBiZSB7e2RlZmF1bHQgdmFyPXZhbHVlfX07IG5vID0gZm91bmQgaW4gJXIiICUgZmlyc3QsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICB2YXIgPSBwYXJ0c1swXS5zdHJpcCgpCisgICAgaWYgJywnIGluIHZhcjoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICJ7e2RlZmF1bHQgeCwgeSA9IC4uLn19IGlzIG5vdCBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgaWYgbm90IHZhcl9yZS5zZWFyY2godmFyKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICJOb3QgYSB2YWxpZCB2YXJpYWJsZSBuYW1lIGZvciB7e2RlZmF1bHR9fTogJXIiCisgICAgICAgICAgICAlIHZhciwgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgZXhwciA9IHBhcnRzWzFdLnN0cmlwKCkKKyAgICByZXR1cm4gKCdkZWZhdWx0JywgcG9zLCB2YXIsIGV4cHIpLCB0b2tlbnNbMTpdCisKK19maWxsX2NvbW1hbmRfdXNhZ2UgPSAiIiJcCislcHJvZyBbT1BUSU9OU10gVEVNUExBVEUgYXJnPXZhbHVlCisKK1VzZSBweTphcmc9dmFsdWUgdG8gc2V0IGEgUHl0aG9uIHZhbHVlOyBvdGhlcndpc2UgYWxsIHZhbHVlcyBhcmUKK3N0cmluZ3MuCisiIiIKKworZGVmIGZpbGxfY29tbWFuZChhcmdzPU5vbmUpOgorICAgIGltcG9ydCBzeXMsIG9wdHBhcnNlLCBwa2dfcmVzb3VyY2VzLCBvcworICAgIGlmIGFyZ3MgaXMgTm9uZToKKyAgICAgICAgYXJncyA9IHN5cy5hcmd2WzE6XQorICAgIGRpc3QgPSBwa2dfcmVzb3VyY2VzLmdldF9kaXN0cmlidXRpb24oJ1Bhc3RlJykKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCisgICAgICAgIHZlcnNpb249c3RyKGRpc3QpLAorICAgICAgICB1c2FnZT1fZmlsbF9jb21tYW5kX3VzYWdlKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLW8nLCAnLS1vdXRwdXQnLAorICAgICAgICBkZXN0PSdvdXRwdXQnLAorICAgICAgICBtZXRhdmFyPSJGSUxFTkFNRSIsCisgICAgICAgIGhlbHA9IkZpbGUgdG8gd3JpdGUgb3V0cHV0IHRvIChkZWZhdWx0IHN0ZG91dCkiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1odG1sJywKKyAgICAgICAgZGVzdD0ndXNlX2h0bWwnLAorICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICBoZWxwPSJVc2UgSFRNTCBzdHlsZSBmaWxsaW5nIChpbmNsdWRpbmcgYXV0b21hdGljIEhUTUwgcXVvdGluZykiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1lbnYnLAorICAgICAgICBkZXN0PSd1c2VfZW52JywKKyAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgaGVscD0iUHV0IHRoZSBlbnZpcm9ubWVudCBpbiBhcyB0b3AtbGV2ZWwgdmFyaWFibGVzIikKKyAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKyAgICBpZiBsZW4oYXJncykgPCAxOgorICAgICAgICBwcmludCgnWW91IG11c3QgZ2l2ZSBhIHRlbXBsYXRlIGZpbGVuYW1lJykKKyAgICAgICAgcHJpbnQoZGlyKHBhcnNlcikpCisgICAgICAgIGFzc2VydCAwCisgICAgdGVtcGxhdGVfbmFtZSA9IGFyZ3NbMF0KKyAgICBhcmdzID0gYXJnc1sxOl0KKyAgICB2YXJzID0ge30KKyAgICBpZiBvcHRpb25zLnVzZV9lbnY6CisgICAgICAgIHZhcnMudXBkYXRlKG9zLmVudmlyb24pCisgICAgZm9yIHZhbHVlIGluIGFyZ3M6CisgICAgICAgIGlmICc9JyBub3QgaW4gdmFsdWU6CisgICAgICAgICAgICBwcmludCgnQmFkIGFyZ3VtZW50OiAlcicgJSB2YWx1ZSkKKyAgICAgICAgICAgIHN5cy5leGl0KDIpCisgICAgICAgIG5hbWUsIHZhbHVlID0gdmFsdWUuc3BsaXQoJz0nLCAxKQorICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoJ3B5OicpOgorICAgICAgICAgICAgbmFtZSA9IG5hbWVbOjNdCisgICAgICAgICAgICB2YWx1ZSA9IGV2YWwodmFsdWUpCisgICAgICAgIHZhcnNbbmFtZV0gPSB2YWx1ZQorICAgIGlmIHRlbXBsYXRlX25hbWUgPT0gJy0nOgorICAgICAgICB0ZW1wbGF0ZV9jb250ZW50ID0gc3lzLnN0ZGluLnJlYWQoKQorICAgICAgICB0ZW1wbGF0ZV9uYW1lID0gJzxzdGRpbj4nCisgICAgZWxzZToKKyAgICAgICAgZiA9IG9wZW4odGVtcGxhdGVfbmFtZSwgJ3JiJykKKyAgICAgICAgdGVtcGxhdGVfY29udGVudCA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQorICAgIGlmIG9wdGlvbnMudXNlX2h0bWw6CisgICAgICAgIFRlbXBsYXRlQ2xhc3MgPSBIVE1MVGVtcGxhdGUKKyAgICBlbHNlOgorICAgICAgICBUZW1wbGF0ZUNsYXNzID0gVGVtcGxhdGUKKyAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlQ2xhc3ModGVtcGxhdGVfY29udGVudCwgbmFtZT10ZW1wbGF0ZV9uYW1lKQorICAgIHJlc3VsdCA9IHRlbXBsYXRlLnN1YnN0aXR1dGUodmFycykKKyAgICBpZiBvcHRpb25zLm91dHB1dDoKKyAgICAgICAgZiA9IG9wZW4ob3B0aW9ucy5vdXRwdXQsICd3YicpCisgICAgICAgIGYud3JpdGUocmVzdWx0KQorICAgICAgICBmLmNsb3NlKCkKKyAgICBlbHNlOgorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHJlc3VsdCkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBmcm9tIHBhc3RlLnV0aWwudGVtcGxhdGUgaW1wb3J0IGZpbGxfY29tbWFuZAorICAgIGZpbGxfY29tbWFuZCgpCisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvdGVtcGxhdGUucHkub3JpZyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL3RlbXBsYXRlLnB5Lm9yaWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk0NjZjMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL3RlbXBsYXRlLnB5Lm9yaWcKQEAgLTAsMCArMSw3NjIgQEAKKyIiIgorQSBzbWFsbCB0ZW1wbGF0aW5nIGxhbmd1YWdlCisKK1RoaXMgaW1wbGVtZW50cyBhIHNtYWxsIHRlbXBsYXRpbmcgbGFuZ3VhZ2UgZm9yIHVzZSBpbnRlcm5hbGx5IGluCitQYXN0ZSBhbmQgUGFzdGUgU2NyaXB0LiAgVGhpcyBsYW5ndWFnZSBpbXBsZW1lbnRzIGlmL2VsaWYvZWxzZSwKK2Zvci9jb250aW51ZS9icmVhaywgZXhwcmVzc2lvbnMsIGFuZCBibG9ja3Mgb2YgUHl0aG9uIGNvZGUuICBUaGUKK3N5bnRheCBpczo6CisKKyAge3thbnkgZXhwcmVzc2lvbiAoZnVuY3Rpb24gY2FsbHMgZXRjKX19CisgIHt7YW55IGV4cHJlc3Npb24gfCBmaWx0ZXJ9fQorICB7e2ZvciB4IGluIHl9fS4uLnt7ZW5kZm9yfX0KKyAge3tpZiB4fX14e3tlbGlmIHl9fXl7e2Vsc2V9fXp7e2VuZGlmfX0KKyAge3tweTp4PTF9fQorICB7e3B5OgorICBkZWYgZm9vKGJhcik6CisgICAgICByZXR1cm4gJ2JheicKKyAgfX0KKyAge3tkZWZhdWx0IHZhciA9IGRlZmF1bHRfdmFsdWV9fQorICB7eyMgY29tbWVudH19CisKK1lvdSB1c2UgdGhpcyB3aXRoIHRoZSBgYFRlbXBsYXRlYGAgY2xhc3Mgb3IgdGhlIGBgc3ViYGAgc2hvcnRjdXQuCitUaGUgYGBUZW1wbGF0ZWBgIGNsYXNzIHRha2VzIHRoZSB0ZW1wbGF0ZSBzdHJpbmcgYW5kIHRoZSBuYW1lIG9mCit0aGUgdGVtcGxhdGUgKGZvciBlcnJvcnMpIGFuZCBhIGRlZmF1bHQgbmFtZXNwYWNlLiAgVGhlbiAobGlrZQorYGBzdHJpbmcuVGVtcGxhdGVgYCkgeW91IGNhbiBjYWxsIHRoZSBgYHRtcGwuc3Vic3RpdHV0ZSgqKmt3KWBgCittZXRob2QgdG8gbWFrZSBhIHN1YnN0aXR1dGlvbiAob3IgYGB0bXBsLnN1YnN0aXR1dGUoYV9kaWN0KWBgKS4KKworYGBzdWIoY29udGVudCwgKiprdylgYCBzdWJzdGl0dXRlcyB0aGUgdGVtcGxhdGUgaW1tZWRpYXRlbHkuICBZb3UKK2NhbiB1c2UgYGBfX25hbWU9J3RtcGwuaHRtbCdgYCB0byBzZXQgdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlLgorCitJZiB0aGVyZSBhcmUgc3ludGF4IGVycm9ycyBgYFRlbXBsYXRlRXJyb3JgYCB3aWxsIGJlIHJhaXNlZC4KKyIiIgorCitpbXBvcnQgcmUKK2ltcG9ydCBzaXgKK2ltcG9ydCBzeXMKK2ltcG9ydCBjZ2kKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgcXVvdGUKK2Zyb20gcGFzdGUudXRpbC5sb29wZXIgaW1wb3J0IGxvb3BlcgorCitfX2FsbF9fID0gWydUZW1wbGF0ZUVycm9yJywgJ1RlbXBsYXRlJywgJ3N1YicsICdIVE1MVGVtcGxhdGUnLAorICAgICAgICAgICAnc3ViX2h0bWwnLCAnaHRtbCcsICdidW5jaCddCisKK3Rva2VuX3JlID0gcmUuY29tcGlsZShyJ1x7XHt8XH1cfScpCitpbl9yZSA9IHJlLmNvbXBpbGUocidccytpblxzKycpCit2YXJfcmUgPSByZS5jb21waWxlKHInXlthLXpfXVthLXowLTlfXSokJywgcmUuSSkKKworY2xhc3MgVGVtcGxhdGVFcnJvcihFeGNlcHRpb24pOgorICAgICIiIkV4Y2VwdGlvbiByYWlzZWQgd2hpbGUgcGFyc2luZyBhIHRlbXBsYXRlCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgcG9zaXRpb24sIG5hbWU9Tm9uZSk6CisgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5wb3NpdGlvbiA9IHBvc2l0aW9uCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBtc2cgPSAnJXMgYXQgbGluZSAlcyBjb2x1bW4gJXMnICUgKAorICAgICAgICAgICAgc2VsZi5tZXNzYWdlLCBzZWxmLnBvc2l0aW9uWzBdLCBzZWxmLnBvc2l0aW9uWzFdKQorICAgICAgICBpZiBzZWxmLm5hbWU6CisgICAgICAgICAgICBtc2cgKz0gJyBpbiAlcycgJSBzZWxmLm5hbWUKKyAgICAgICAgcmV0dXJuIG1zZworCitjbGFzcyBfVGVtcGxhdGVDb250aW51ZShFeGNlcHRpb24pOgorICAgIHBhc3MKKworY2xhc3MgX1RlbXBsYXRlQnJlYWsoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKK2NsYXNzIFRlbXBsYXRlKG9iamVjdCk6CisKKyAgICBkZWZhdWx0X25hbWVzcGFjZSA9IHsKKyAgICAgICAgJ3N0YXJ0X2JyYWNlcyc6ICd7eycsCisgICAgICAgICdlbmRfYnJhY2VzJzogJ319JywKKyAgICAgICAgJ2xvb3Blcic6IGxvb3BlciwKKyAgICAgICAgfQorCisgICAgZGVmYXVsdF9lbmNvZGluZyA9ICd1dGY4JworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbnRlbnQsIG5hbWU9Tm9uZSwgbmFtZXNwYWNlPU5vbmUpOgorICAgICAgICBzZWxmLmNvbnRlbnQgPSBjb250ZW50CisgICAgICAgIHNlbGYuX3VuaWNvZGUgPSBpc2luc3RhbmNlKGNvbnRlbnQsIHNpeC50ZXh0X3R5cGUpCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgICAgICBpZiBub3Qgc2VsZi5fdW5pY29kZToKKyAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LmRlY29kZShzZWxmLmRlZmF1bHRfZW5jb2RpbmcpCisgICAgICAgICAgICBzZWxmLl91bmljb2RlID0gVHJ1ZQorCisgICAgICAgIHNlbGYuX3BhcnNlZCA9IHBhcnNlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgbmFtZXNwYWNlIGlzIE5vbmU6CisgICAgICAgICAgICBuYW1lc3BhY2UgPSB7fQorICAgICAgICBzZWxmLm5hbWVzcGFjZSA9IG5hbWVzcGFjZQorCisgICAgZGVmIGZyb21fZmlsZW5hbWUoY2xzLCBmaWxlbmFtZSwgbmFtZXNwYWNlPU5vbmUsIGVuY29kaW5nPU5vbmUpOgorICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgJ3JiJykKKyAgICAgICAgYyA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBpZiBlbmNvZGluZzoKKyAgICAgICAgICAgIGMgPSBjLmRlY29kZShlbmNvZGluZykKKyAgICAgICAgcmV0dXJuIGNscyhjb250ZW50PWMsIG5hbWU9ZmlsZW5hbWUsIG5hbWVzcGFjZT1uYW1lc3BhY2UpCisKKyAgICBmcm9tX2ZpbGVuYW1lID0gY2xhc3NtZXRob2QoZnJvbV9maWxlbmFtZSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXMgbmFtZT0lcj4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBoZXgoaWQoc2VsZikpWzI6XSwgc2VsZi5uYW1lKQorCisgICAgZGVmIHN1YnN0aXR1dGUoc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgaWYga3c6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiWW91IGNhbiBvbmx5IGdpdmUgcG9zaXRpb25hbCAqb3IqIGtleXdvcmQgYXJndW1lbnRzIikKKyAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiWW91IGNhbiBvbmx5IGdpdmUgb24gcG9zaXRpb25hbCBhcmd1bWVudCIpCisgICAgICAgICAgICBrdyA9IGFyZ3NbMF0KKyAgICAgICAgbnMgPSBzZWxmLmRlZmF1bHRfbmFtZXNwYWNlLmNvcHkoKQorICAgICAgICBucy51cGRhdGUoc2VsZi5uYW1lc3BhY2UpCisgICAgICAgIG5zLnVwZGF0ZShrdykKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5faW50ZXJwcmV0KG5zKQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgX2ludGVycHJldChzZWxmLCBucyk6CisgICAgICAgIF9fdHJhY2ViYWNrX2hpZGVfXyA9IFRydWUKKyAgICAgICAgcGFydHMgPSBbXQorICAgICAgICBzZWxmLl9pbnRlcnByZXRfY29kZXMoc2VsZi5fcGFyc2VkLCBucywgb3V0PXBhcnRzKQorICAgICAgICByZXR1cm4gJycuam9pbihwYXJ0cykKKworICAgIGRlZiBfaW50ZXJwcmV0X2NvZGVzKHNlbGYsIGNvZGVzLCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICBmb3IgaXRlbSBpbiBjb2RlczoKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpdGVtKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLl9pbnRlcnByZXRfY29kZShpdGVtLCBucywgb3V0KQorCisgICAgZGVmIF9pbnRlcnByZXRfY29kZShzZWxmLCBjb2RlLCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICBuYW1lLCBwb3MgPSBjb2RlWzBdLCBjb2RlWzFdCisgICAgICAgIGlmIG5hbWUgPT0gJ3B5JzoKKyAgICAgICAgICAgIHNlbGYuX2V4ZWMoY29kZVsyXSwgbnMsIHBvcykKKyAgICAgICAgZWxpZiBuYW1lID09ICdjb250aW51ZSc6CisgICAgICAgICAgICByYWlzZSBfVGVtcGxhdGVDb250aW51ZSgpCisgICAgICAgIGVsaWYgbmFtZSA9PSAnYnJlYWsnOgorICAgICAgICAgICAgcmFpc2UgX1RlbXBsYXRlQnJlYWsoKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2Zvcic6CisgICAgICAgICAgICB2YXJzLCBleHByLCBjb250ZW50ID0gY29kZVsyXSwgY29kZVszXSwgY29kZVs0XQorICAgICAgICAgICAgZXhwciA9IHNlbGYuX2V2YWwoZXhwciwgbnMsIHBvcykKKyAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9mb3IodmFycywgZXhwciwgY29udGVudCwgbnMsIG91dCkKKyAgICAgICAgZWxpZiBuYW1lID09ICdjb25kJzoKKyAgICAgICAgICAgIHBhcnRzID0gY29kZVsyOl0KKyAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9pZihwYXJ0cywgbnMsIG91dCkKKyAgICAgICAgZWxpZiBuYW1lID09ICdleHByJzoKKyAgICAgICAgICAgIHBhcnRzID0gY29kZVsyXS5zcGxpdCgnfCcpCisgICAgICAgICAgICBiYXNlID0gc2VsZi5fZXZhbChwYXJ0c1swXSwgbnMsIHBvcykKKyAgICAgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzWzE6XToKKyAgICAgICAgICAgICAgICBmdW5jID0gc2VsZi5fZXZhbChwYXJ0LCBucywgcG9zKQorICAgICAgICAgICAgICAgIGJhc2UgPSBmdW5jKGJhc2UpCisgICAgICAgICAgICBvdXQuYXBwZW5kKHNlbGYuX3JlcHIoYmFzZSwgcG9zKSkKKyAgICAgICAgZWxpZiBuYW1lID09ICdkZWZhdWx0JzoKKyAgICAgICAgICAgIHZhciwgZXhwciA9IGNvZGVbMl0sIGNvZGVbM10KKyAgICAgICAgICAgIGlmIHZhciBub3QgaW4gbnM6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fZXZhbChleHByLCBucywgcG9zKQorICAgICAgICAgICAgICAgIG5zW3Zhcl0gPSByZXN1bHQKKyAgICAgICAgZWxpZiBuYW1lID09ICdjb21tZW50JzoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IDAsICJVbmtub3duIGNvZGU6ICVyIiAlIG5hbWUKKworICAgIGRlZiBfaW50ZXJwcmV0X2ZvcihzZWxmLCB2YXJzLCBleHByLCBjb250ZW50LCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICBmb3IgaXRlbSBpbiBleHByOgorICAgICAgICAgICAgaWYgbGVuKHZhcnMpID09IDE6CisgICAgICAgICAgICAgICAgbnNbdmFyc1swXV0gPSBpdGVtCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGxlbih2YXJzKSAhPSBsZW4oaXRlbSk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnTmVlZCAlaSBpdGVtcyB0byB1bnBhY2sgKGdvdCAlaSBpdGVtcyknCisgICAgICAgICAgICAgICAgICAgICAgICAlIChsZW4odmFycyksIGxlbihpdGVtKSkpCisgICAgICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHppcCh2YXJzLCBpdGVtKToKKyAgICAgICAgICAgICAgICAgICAgbnNbbmFtZV0gPSB2YWx1ZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2ludGVycHJldF9jb2Rlcyhjb250ZW50LCBucywgb3V0KQorICAgICAgICAgICAgZXhjZXB0IF9UZW1wbGF0ZUNvbnRpbnVlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBleGNlcHQgX1RlbXBsYXRlQnJlYWs6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgIGRlZiBfaW50ZXJwcmV0X2lmKHNlbGYsIHBhcnRzLCBucywgb3V0KToKKyAgICAgICAgX190cmFjZWJhY2tfaGlkZV9fID0gVHJ1ZQorICAgICAgICAjIEBAOiBpZi9lbHNlL2Vsc2UgZ2V0cyB0aHJvdWdoCisgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHBhcnQsIHNpeC5zdHJpbmdfdHlwZXMpCisgICAgICAgICAgICBuYW1lLCBwb3MgPSBwYXJ0WzBdLCBwYXJ0WzFdCisgICAgICAgICAgICBpZiBuYW1lID09ICdlbHNlJzoKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX2V2YWwocGFydFsyXSwgbnMsIHBvcykKKyAgICAgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAgICAgICBzZWxmLl9pbnRlcnByZXRfY29kZXMocGFydFszXSwgbnMsIG91dCkKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgZGVmIF9ldmFsKHNlbGYsIGNvZGUsIG5zLCBwb3MpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZhbHVlID0gZXZhbChjb2RlLCBucykKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBlID0gZXhjX2luZm9bMV0KKyAgICAgICAgICAgIGlmIGdldGF0dHIoZSwgJ2FyZ3MnKToKKyAgICAgICAgICAgICAgICBhcmcwID0gZS5hcmdzWzBdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFyZzAgPSBzdHIoZSkKKyAgICAgICAgICAgIGUuYXJncyA9IChzZWxmLl9hZGRfbGluZV9pbmZvKGFyZzAsIHBvcyksKQorICAgICAgICAgICAgc2l4LnJlcmFpc2UoZXhjX2luZm9bMF0sIGUsIGV4Y19pbmZvWzJdKQorCisgICAgZGVmIF9leGVjKHNlbGYsIGNvZGUsIG5zLCBwb3MpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNpeC5leGVjXyhjb2RlLCBucykKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgZSA9IGV4Y19pbmZvWzFdCisgICAgICAgICAgICBlLmFyZ3MgPSAoc2VsZi5fYWRkX2xpbmVfaW5mbyhlLmFyZ3NbMF0sIHBvcyksKQorICAgICAgICAgICAgc2l4LnJlcmFpc2UoZXhjX2luZm9bMF0sIGUsIGV4Y19pbmZvWzJdKQorCisgICAgZGVmIF9yZXByKHNlbGYsIHZhbHVlLCBwb3MpOgorICAgICAgICBfX3RyYWNlYmFja19oaWRlX18gPSBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAgICAgICBpZiBzZWxmLl91bmljb2RlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzaXgudGV4dF90eXBlKHZhbHVlKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgZSA9IGV4Y19pbmZvWzFdCisgICAgICAgICAgICBlLmFyZ3MgPSAoc2VsZi5fYWRkX2xpbmVfaW5mbyhlLmFyZ3NbMF0sIHBvcyksKQorICAgICAgICAgICAgc2l4LnJlcmFpc2UoZXhjX2luZm9bMF0sIGUsIGV4Y19pbmZvWzJdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2VsZi5fdW5pY29kZSBhbmQgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LmJpbmFyeV90eXBlKToKKyAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5kZWZhdWx0X2VuY29kaW5nOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBVbmljb2RlRGVjb2RlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnQ2Fubm90IGRlY29kZSBzdHIgdmFsdWUgJXIgaW50byB1bmljb2RlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICcobm8gZGVmYXVsdF9lbmNvZGluZyBwcm92aWRlZCknICUgdmFsdWUpCisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5kZWNvZGUoc2VsZi5kZWZhdWx0X2VuY29kaW5nKQorICAgICAgICAgICAgZWxpZiBub3Qgc2VsZi5fdW5pY29kZSBhbmQgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LnRleHRfdHlwZSk6CisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuZGVmYXVsdF9lbmNvZGluZzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVW5pY29kZUVuY29kZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCBlbmNvZGUgdW5pY29kZSB2YWx1ZSAlciBpbnRvIHN0ciAnCisgICAgICAgICAgICAgICAgICAgICAgICAnKG5vIGRlZmF1bHRfZW5jb2RpbmcgcHJvdmlkZWQpJyAlIHZhbHVlKQorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZW5jb2RlKHNlbGYuZGVmYXVsdF9lbmNvZGluZykKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorCisKKyAgICBkZWYgX2FkZF9saW5lX2luZm8oc2VsZiwgbXNnLCBwb3MpOgorICAgICAgICBtc2cgPSAiJXMgYXQgbGluZSAlcyBjb2x1bW4gJXMiICUgKAorICAgICAgICAgICAgbXNnLCBwb3NbMF0sIHBvc1sxXSkKKyAgICAgICAgaWYgc2VsZi5uYW1lOgorICAgICAgICAgICAgbXNnICs9ICIgaW4gZmlsZSAlcyIgJSBzZWxmLm5hbWUKKyAgICAgICAgcmV0dXJuIG1zZworCitkZWYgc3ViKGNvbnRlbnQsICoqa3cpOgorICAgIG5hbWUgPSBrdy5nZXQoJ19fbmFtZScpCisgICAgdG1wbCA9IFRlbXBsYXRlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICByZXR1cm4gdG1wbC5zdWJzdGl0dXRlKGt3KQorCitkZWYgcGFzdGVfc2NyaXB0X3RlbXBsYXRlX3JlbmRlcmVyKGNvbnRlbnQsIHZhcnMsIGZpbGVuYW1lPU5vbmUpOgorICAgIHRtcGwgPSBUZW1wbGF0ZShjb250ZW50LCBuYW1lPWZpbGVuYW1lKQorICAgIHJldHVybiB0bXBsLnN1YnN0aXR1dGUodmFycykKKworY2xhc3MgYnVuY2goZGljdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprdyk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdy5pdGVtcygpOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCB2YWx1ZSkKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIHNlbGZbbmFtZV0gPSB2YWx1ZQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZltuYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIGlmICdkZWZhdWx0JyBpbiBzZWxmOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleSkKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCAnZGVmYXVsdCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGl0ZW1zID0gWworICAgICAgICAgICAgKGssIHYpIGZvciBrLCB2IGluIHNlbGYuaXRlbXMoKV0KKyAgICAgICAgaXRlbXMuc29ydCgpCisgICAgICAgIHJldHVybiAnPCVzICVzPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICcgJy5qb2luKFsnJXM9JXInICUgKGssIHYpIGZvciBrLCB2IGluIGl0ZW1zXSkpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgSFRNTCBUZW1wbGF0aW5nCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY2xhc3MgaHRtbChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi52YWx1ZQorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXI+JyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLnZhbHVlKQorCitkZWYgaHRtbF9xdW90ZSh2YWx1ZSk6CisgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICBpZiBoYXNhdHRyKHZhbHVlLCAnX191bmljb2RlX18nKToKKyAgICAgICAgICAgIHZhbHVlID0gdW5pY29kZSh2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgIHZhbHVlID0gY2dpLmVzY2FwZSh2YWx1ZSwgMSkKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB1bmljb2RlKToKKyAgICAgICAgdmFsdWUgPSB2YWx1ZS5lbmNvZGUoJ2FzY2lpJywgJ3htbGNoYXJyZWZyZXBsYWNlJykKKyAgICByZXR1cm4gdmFsdWUKKworZGVmIHVybCh2KToKKyAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgaWYgaGFzYXR0cih2LCAnX191bmljb2RlX18nKToKKyAgICAgICAgICAgIHYgPSB1bmljb2RlKHYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB2ID0gc3RyKHYpCisgICAgaWYgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKKyAgICAgICAgdiA9IHYuZW5jb2RlKCd1dGY4JykKKyAgICByZXR1cm4gcXVvdGUodikKKworZGVmIGF0dHIoKiprdyk6CisgICAga3cgPSBrdy5pdGVtcygpCisgICAga3cuc29ydCgpCisgICAgcGFydHMgPSBbXQorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdzoKKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoJ18nKToKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lWzotMV0KKyAgICAgICAgcGFydHMuYXBwZW5kKCclcz0iJXMiJyAlIChodG1sX3F1b3RlKG5hbWUpLCBodG1sX3F1b3RlKHZhbHVlKSkpCisgICAgcmV0dXJuIGh0bWwoJyAnLmpvaW4ocGFydHMpKQorCitjbGFzcyBIVE1MVGVtcGxhdGUoVGVtcGxhdGUpOgorCisgICAgZGVmYXVsdF9uYW1lc3BhY2UgPSBUZW1wbGF0ZS5kZWZhdWx0X25hbWVzcGFjZS5jb3B5KCkKKyAgICBkZWZhdWx0X25hbWVzcGFjZS51cGRhdGUoZGljdCgKKyAgICAgICAgaHRtbD1odG1sLAorICAgICAgICBhdHRyPWF0dHIsCisgICAgICAgIHVybD11cmwsCisgICAgICAgICkpCisKKyAgICBkZWYgX3JlcHIoc2VsZiwgdmFsdWUsIHBvcyk6CisgICAgICAgIHBsYWluID0gVGVtcGxhdGUuX3JlcHIoc2VsZiwgdmFsdWUsIHBvcykKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaHRtbCk6CisgICAgICAgICAgICByZXR1cm4gcGxhaW4KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBodG1sX3F1b3RlKHBsYWluKQorCitkZWYgc3ViX2h0bWwoY29udGVudCwgKiprdyk6CisgICAgbmFtZSA9IGt3LmdldCgnX19uYW1lJykKKyAgICB0bXBsID0gSFRNTFRlbXBsYXRlKGNvbnRlbnQsIG5hbWU9bmFtZSkKKyAgICByZXR1cm4gdG1wbC5zdWJzdGl0dXRlKGt3KQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgTGV4aW5nIGFuZCBQYXJzaW5nCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZGVmIGxleChzLCBuYW1lPU5vbmUsIHRyaW1fd2hpdGVzcGFjZT1UcnVlKToKKyAgICAiIiIKKyAgICBMZXggYSBzdHJpbmcgaW50byBjaHVua3M6CisKKyAgICAgICAgPj4+IGxleCgnaGV5JykKKyAgICAgICAgWydoZXknXQorICAgICAgICA+Pj4gbGV4KCdoZXkge3t5b3V9fScpCisgICAgICAgIFsnaGV5ICcsICgneW91JywgKDEsIDcpKV0KKyAgICAgICAgPj4+IGxleCgnaGV5IHt7JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE5vIH19IHRvIGZpbmlzaCBsYXN0IGV4cHJlc3Npb24gYXQgbGluZSAxIGNvbHVtbiA3CisgICAgICAgID4+PiBsZXgoJ2hleSB9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiB9fSBvdXRzaWRlIGV4cHJlc3Npb24gYXQgbGluZSAxIGNvbHVtbiA3CisgICAgICAgID4+PiBsZXgoJ2hleSB7eyB7eycpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiB7eyBpbnNpZGUgZXhwcmVzc2lvbiBhdCBsaW5lIDEgY29sdW1uIDEwCisKKyAgICAiIiIKKyAgICBpbl9leHByID0gRmFsc2UKKyAgICBjaHVua3MgPSBbXQorICAgIGxhc3QgPSAwCisgICAgbGFzdF9wb3MgPSAoMSwgMSkKKyAgICBmb3IgbWF0Y2ggaW4gdG9rZW5fcmUuZmluZGl0ZXIocyk6CisgICAgICAgIGV4cHIgPSBtYXRjaC5ncm91cCgwKQorICAgICAgICBwb3MgPSBmaW5kX3Bvc2l0aW9uKHMsIG1hdGNoLmVuZCgpKQorICAgICAgICBpZiBleHByID09ICd7eycgYW5kIGluX2V4cHI6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKCd7eyBpbnNpZGUgZXhwcmVzc2lvbicsIHBvc2l0aW9uPXBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lKQorICAgICAgICBlbGlmIGV4cHIgPT0gJ319JyBhbmQgbm90IGluX2V4cHI6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKCd9fSBvdXRzaWRlIGV4cHJlc3Npb24nLCBwb3NpdGlvbj1wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgZXhwciA9PSAne3snOgorICAgICAgICAgICAgcGFydCA9IHNbbGFzdDptYXRjaC5zdGFydCgpXQorICAgICAgICAgICAgaWYgcGFydDoKKyAgICAgICAgICAgICAgICBjaHVua3MuYXBwZW5kKHBhcnQpCisgICAgICAgICAgICBpbl9leHByID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2h1bmtzLmFwcGVuZCgoc1tsYXN0Om1hdGNoLnN0YXJ0KCldLCBsYXN0X3BvcykpCisgICAgICAgICAgICBpbl9leHByID0gRmFsc2UKKyAgICAgICAgbGFzdCA9IG1hdGNoLmVuZCgpCisgICAgICAgIGxhc3RfcG9zID0gcG9zCisgICAgaWYgaW5fZXhwcjoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcignTm8gfX0gdG8gZmluaXNoIGxhc3QgZXhwcmVzc2lvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lLCBwb3NpdGlvbj1sYXN0X3BvcykKKyAgICBwYXJ0ID0gc1tsYXN0Ol0KKyAgICBpZiBwYXJ0OgorICAgICAgICBjaHVua3MuYXBwZW5kKHBhcnQpCisgICAgaWYgdHJpbV93aGl0ZXNwYWNlOgorICAgICAgICBjaHVua3MgPSB0cmltX2xleChjaHVua3MpCisgICAgcmV0dXJuIGNodW5rcworCitzdGF0ZW1lbnRfcmUgPSByZS5jb21waWxlKHInXig/OmlmIHxlbGlmIHxlbHNlIHxmb3IgfHB5OiknKQorc2luZ2xlX3N0YXRlbWVudHMgPSBbJ2VuZGlmJywgJ2VuZGZvcicsICdjb250aW51ZScsICdicmVhayddCit0cmFpbF93aGl0ZXNwYWNlX3JlID0gcmUuY29tcGlsZShyJ1xuW1x0IF0qJCcpCitsZWFkX3doaXRlc3BhY2VfcmUgPSByZS5jb21waWxlKHInXltcdCBdKlxuJykKKworZGVmIHRyaW1fbGV4KHRva2Vucyk6CisgICAgciIiIgorICAgIFRha2VzIGEgbGV4ZWQgc2V0IG9mIHRva2VucywgYW5kIHJlbW92ZXMgd2hpdGVzcGFjZSB3aGVuIHRoZXJlIGlzCisgICAgYSBkaXJlY3RpdmUgb24gYSBsaW5lIGJ5IGl0c2VsZjoKKworICAgICAgID4+PiB0b2tlbnMgPSBsZXgoJ3t7aWYgeH19XG54XG57e2VuZGlmfX1cbnknLCB0cmltX3doaXRlc3BhY2U9RmFsc2UpCisgICAgICAgPj4+IHRva2VucworICAgICAgIFsoJ2lmIHgnLCAoMSwgMykpLCAnXG54XG4nLCAoJ2VuZGlmJywgKDMsIDMpKSwgJ1xueSddCisgICAgICAgPj4+IHRyaW1fbGV4KHRva2VucykKKyAgICAgICBbKCdpZiB4JywgKDEsIDMpKSwgJ3hcbicsICgnZW5kaWYnLCAoMywgMykpLCAneSddCisgICAgIiIiCisgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHRva2VucykpOgorICAgICAgICBjdXJyZW50ID0gdG9rZW5zW2ldCisgICAgICAgIGlmIGlzaW5zdGFuY2UodG9rZW5zW2ldLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgICMgd2UgZG9uJ3QgdHJpbSB0aGlzCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpdGVtID0gY3VycmVudFswXQorICAgICAgICBpZiBub3Qgc3RhdGVtZW50X3JlLnNlYXJjaChpdGVtKSBhbmQgaXRlbSBub3QgaW4gc2luZ2xlX3N0YXRlbWVudHM6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBub3QgaToKKyAgICAgICAgICAgIHByZXYgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJldiA9IHRva2Vuc1tpLTFdCisgICAgICAgIGlmIGkrMSA+PSBsZW4odG9rZW5zKToKKyAgICAgICAgICAgIG5leHQgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmV4dCA9IHRva2Vuc1tpKzFdCisgICAgICAgIGlmIChub3QgaXNpbnN0YW5jZShuZXh0LCBzaXguc3RyaW5nX3R5cGVzKQorICAgICAgICAgICAgb3Igbm90IGlzaW5zdGFuY2UocHJldiwgc2l4LnN0cmluZ190eXBlcykpOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgKChub3QgcHJldiBvciB0cmFpbF93aGl0ZXNwYWNlX3JlLnNlYXJjaChwcmV2KSkKKyAgICAgICAgICAgIGFuZCAobm90IG5leHQgb3IgbGVhZF93aGl0ZXNwYWNlX3JlLnNlYXJjaChuZXh0KSkpOgorICAgICAgICAgICAgaWYgcHJldjoKKyAgICAgICAgICAgICAgICBtID0gdHJhaWxfd2hpdGVzcGFjZV9yZS5zZWFyY2gocHJldikKKyAgICAgICAgICAgICAgICAjICsxIHRvIGxlYXZlIHRoZSBsZWFkaW5nIFxuIG9uOgorICAgICAgICAgICAgICAgIHByZXYgPSBwcmV2WzptLnN0YXJ0KCkrMV0KKyAgICAgICAgICAgICAgICB0b2tlbnNbaS0xXSA9IHByZXYKKyAgICAgICAgICAgIGlmIG5leHQ6CisgICAgICAgICAgICAgICAgbSA9IGxlYWRfd2hpdGVzcGFjZV9yZS5zZWFyY2gobmV4dCkKKyAgICAgICAgICAgICAgICBuZXh0ID0gbmV4dFttLmVuZCgpOl0KKyAgICAgICAgICAgICAgICB0b2tlbnNbaSsxXSA9IG5leHQKKyAgICByZXR1cm4gdG9rZW5zCisKKworZGVmIGZpbmRfcG9zaXRpb24oc3RyaW5nLCBpbmRleCk6CisgICAgIiIiR2l2ZW4gYSBzdHJpbmcgYW5kIGluZGV4LCByZXR1cm4gKGxpbmUsIGNvbHVtbikiIiIKKyAgICBsZWFkaW5nID0gc3RyaW5nWzppbmRleF0uc3BsaXRsaW5lcygpCisgICAgcmV0dXJuIChsZW4obGVhZGluZyksIGxlbihsZWFkaW5nWy0xXSkrMSkKKworZGVmIHBhcnNlKHMsIG5hbWU9Tm9uZSk6CisgICAgciIiIgorICAgIFBhcnNlcyBhIHN0cmluZyBpbnRvIGEga2luZCBvZiBBU1QKKworICAgICAgICA+Pj4gcGFyc2UoJ3t7eH19JykKKyAgICAgICAgWygnZXhwcicsICgxLCAzKSwgJ3gnKV0KKyAgICAgICAgPj4+IHBhcnNlKCdmb28nKQorICAgICAgICBbJ2ZvbyddCisgICAgICAgID4+PiBwYXJzZSgne3tpZiB4fX10ZXN0e3tlbmRpZn19JykKKyAgICAgICAgWygnY29uZCcsICgxLCAzKSwgKCdpZicsICgxLCAzKSwgJ3gnLCBbJ3Rlc3QnXSkpXQorICAgICAgICA+Pj4gcGFyc2UoJ3Nlcmllcy0+e3tmb3IgeCBpbiB5fX14PXt7eH19e3tlbmRmb3J9fScpCisgICAgICAgIFsnc2VyaWVzLT4nLCAoJ2ZvcicsICgxLCAxMSksICgneCcsKSwgJ3knLCBbJ3g9JywgKCdleHByJywgKDEsIDI3KSwgJ3gnKV0pXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7Zm9yIHgsIHkgaW4gejp9fXt7Y29udGludWV9fXt7ZW5kZm9yfX0nKQorICAgICAgICBbKCdmb3InLCAoMSwgMyksICgneCcsICd5JyksICd6JywgWygnY29udGludWUnLCAoMSwgMjEpKV0pXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7cHk6eD0xfX0nKQorICAgICAgICBbKCdweScsICgxLCAzKSwgJ3g9MScpXQorICAgICAgICA+Pj4gcGFyc2UoJ3t7aWYgeH19YXt7ZWxpZiB5fX1ie3tlbHNlfX1je3tlbmRpZn19JykKKyAgICAgICAgWygnY29uZCcsICgxLCAzKSwgKCdpZicsICgxLCAzKSwgJ3gnLCBbJ2EnXSksICgnZWxpZicsICgxLCAxMiksICd5JywgWydiJ10pLCAoJ2Vsc2UnLCAoMSwgMjMpLCBOb25lLCBbJ2MnXSkpXQorCisgICAgU29tZSBleGNlcHRpb25zOjoKKworICAgICAgICA+Pj4gcGFyc2UoJ3t7Y29udGludWV9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiBjb250aW51ZSBvdXRzaWRlIG9mIGZvciBsb29wIGF0IGxpbmUgMSBjb2x1bW4gMworICAgICAgICA+Pj4gcGFyc2UoJ3t7aWYgeH19Zm9vJykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE5vIHt7ZW5kaWZ9fSBhdCBsaW5lIDEgY29sdW1uIDMKKyAgICAgICAgPj4+IHBhcnNlKCd7e2Vsc2V9fScpCisgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgIC4uLgorICAgICAgICBUZW1wbGF0ZUVycm9yOiBlbHNlIG91dHNpZGUgb2YgYW4gaWYgYmxvY2sgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgICAgID4+PiBwYXJzZSgne3tpZiB4fX17e2ZvciB4IGluIHl9fXt7ZW5kaWZ9fXt7ZW5kZm9yfX0nKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgVGVtcGxhdGVFcnJvcjogVW5leHBlY3RlZCBlbmRpZiBhdCBsaW5lIDEgY29sdW1uIDI1CisgICAgICAgID4+PiBwYXJzZSgne3tpZn19e3tlbmRpZn19JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IGlmIHdpdGggbm8gZXhwcmVzc2lvbiBhdCBsaW5lIDEgY29sdW1uIDMKKyAgICAgICAgPj4+IHBhcnNlKCd7e2ZvciB4IHl9fXt7ZW5kZm9yfX0nKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgVGVtcGxhdGVFcnJvcjogQmFkIGZvciAobm8gImluIikgaW4gJ3ggeScgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgICAgID4+PiBwYXJzZSgne3tweTp4PTFcbnk9Mn19JykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgICAgLi4uCisgICAgICAgIFRlbXBsYXRlRXJyb3I6IE11bHRpLWxpbmUgcHkgYmxvY2tzIG11c3Qgc3RhcnQgd2l0aCBhIG5ld2xpbmUgYXQgbGluZSAxIGNvbHVtbiAzCisgICAgIiIiCisgICAgdG9rZW5zID0gbGV4KHMsIG5hbWU9bmFtZSkKKyAgICByZXN1bHQgPSBbXQorICAgIHdoaWxlIHRva2VuczoKKyAgICAgICAgbmV4dCwgdG9rZW5zID0gcGFyc2VfZXhwcih0b2tlbnMsIG5hbWUpCisgICAgICAgIHJlc3VsdC5hcHBlbmQobmV4dCkKKyAgICByZXR1cm4gcmVzdWx0CisKK2RlZiBwYXJzZV9leHByKHRva2VucywgbmFtZSwgY29udGV4dD0oKSk6CisgICAgaWYgaXNpbnN0YW5jZSh0b2tlbnNbMF0sIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICByZXR1cm4gdG9rZW5zWzBdLCB0b2tlbnNbMTpdCisgICAgZXhwciwgcG9zID0gdG9rZW5zWzBdCisgICAgZXhwciA9IGV4cHIuc3RyaXAoKQorICAgIGlmIGV4cHIuc3RhcnRzd2l0aCgncHk6Jyk6CisgICAgICAgIGV4cHIgPSBleHByWzM6XS5sc3RyaXAoJyBcdCcpCisgICAgICAgIGlmIGV4cHIuc3RhcnRzd2l0aCgnXG4nKToKKyAgICAgICAgICAgIGV4cHIgPSBleHByWzE6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgJ1xuJyBpbiBleHByOgorICAgICAgICAgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICdNdWx0aS1saW5lIHB5IGJsb2NrcyBtdXN0IHN0YXJ0IHdpdGggYSBuZXdsaW5lJywKKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIHJldHVybiAoJ3B5JywgcG9zLCBleHByKSwgdG9rZW5zWzE6XQorICAgIGVsaWYgZXhwciBpbiAoJ2NvbnRpbnVlJywgJ2JyZWFrJyk6CisgICAgICAgIGlmICdmb3InIG5vdCBpbiBjb250ZXh0OgorICAgICAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICAgICAnY29udGludWUgb3V0c2lkZSBvZiBmb3IgbG9vcCcsCisgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIHJldHVybiAoZXhwciwgcG9zKSwgdG9rZW5zWzE6XQorICAgIGVsaWYgZXhwci5zdGFydHN3aXRoKCdpZiAnKToKKyAgICAgICAgcmV0dXJuIHBhcnNlX2NvbmQodG9rZW5zLCBuYW1lLCBjb250ZXh0KQorICAgIGVsaWYgKGV4cHIuc3RhcnRzd2l0aCgnZWxpZiAnKQorICAgICAgICAgIG9yIGV4cHIgPT0gJ2Vsc2UnKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICclcyBvdXRzaWRlIG9mIGFuIGlmIGJsb2NrJyAlIGV4cHIuc3BsaXQoKVswXSwKKyAgICAgICAgICAgIHBvc2l0aW9uPXBvcywgbmFtZT1uYW1lKQorICAgIGVsaWYgZXhwciBpbiAoJ2lmJywgJ2VsaWYnLCAnZm9yJyk6CisgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAnJXMgd2l0aCBubyBleHByZXNzaW9uJyAlIGV4cHIsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICBlbGlmIGV4cHIgaW4gKCdlbmRpZicsICdlbmRmb3InKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdVbmV4cGVjdGVkICVzJyAlIGV4cHIsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICBlbGlmIGV4cHIuc3RhcnRzd2l0aCgnZm9yICcpOgorICAgICAgICByZXR1cm4gcGFyc2VfZm9yKHRva2VucywgbmFtZSwgY29udGV4dCkKKyAgICBlbGlmIGV4cHIuc3RhcnRzd2l0aCgnZGVmYXVsdCAnKToKKyAgICAgICAgcmV0dXJuIHBhcnNlX2RlZmF1bHQodG9rZW5zLCBuYW1lLCBjb250ZXh0KQorICAgIGVsaWYgZXhwci5zdGFydHN3aXRoKCcjJyk6CisgICAgICAgIHJldHVybiAoJ2NvbW1lbnQnLCBwb3MsIHRva2Vuc1swXVswXSksIHRva2Vuc1sxOl0KKyAgICByZXR1cm4gKCdleHByJywgcG9zLCB0b2tlbnNbMF1bMF0pLCB0b2tlbnNbMTpdCisKK2RlZiBwYXJzZV9jb25kKHRva2VucywgbmFtZSwgY29udGV4dCk6CisgICAgc3RhcnQgPSB0b2tlbnNbMF1bMV0KKyAgICBwaWVjZXMgPSBbXQorICAgIGNvbnRleHQgPSBjb250ZXh0ICsgKCdpZicsKQorICAgIHdoaWxlIDE6CisgICAgICAgIGlmIG5vdCB0b2tlbnM6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgICAgICdNaXNzaW5nIHt7ZW5kaWZ9fScsCisgICAgICAgICAgICAgICAgcG9zaXRpb249c3RhcnQsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UodG9rZW5zWzBdLCB0dXBsZSkKKyAgICAgICAgICAgIGFuZCB0b2tlbnNbMF1bMF0gPT0gJ2VuZGlmJyk6CisgICAgICAgICAgICByZXR1cm4gKCdjb25kJywgc3RhcnQpICsgdHVwbGUocGllY2VzKSwgdG9rZW5zWzE6XQorICAgICAgICBuZXh0LCB0b2tlbnMgPSBwYXJzZV9vbmVfY29uZCh0b2tlbnMsIG5hbWUsIGNvbnRleHQpCisgICAgICAgIHBpZWNlcy5hcHBlbmQobmV4dCkKKworZGVmIHBhcnNlX29uZV9jb25kKHRva2VucywgbmFtZSwgY29udGV4dCk6CisgICAgKGZpcnN0LCBwb3MpLCB0b2tlbnMgPSB0b2tlbnNbMF0sIHRva2Vuc1sxOl0KKyAgICBjb250ZW50ID0gW10KKyAgICBpZiBmaXJzdC5lbmRzd2l0aCgnOicpOgorICAgICAgICBmaXJzdCA9IGZpcnN0WzotMV0KKyAgICBpZiBmaXJzdC5zdGFydHN3aXRoKCdpZiAnKToKKyAgICAgICAgcGFydCA9ICgnaWYnLCBwb3MsIGZpcnN0WzM6XS5sc3RyaXAoKSwgY29udGVudCkKKyAgICBlbGlmIGZpcnN0LnN0YXJ0c3dpdGgoJ2VsaWYgJyk6CisgICAgICAgIHBhcnQgPSAoJ2VsaWYnLCBwb3MsIGZpcnN0WzU6XS5sc3RyaXAoKSwgY29udGVudCkKKyAgICBlbGlmIGZpcnN0ID09ICdlbHNlJzoKKyAgICAgICAgcGFydCA9ICgnZWxzZScsIHBvcywgTm9uZSwgY29udGVudCkKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgMCwgIlVuZXhwZWN0ZWQgdG9rZW4gJXIgYXQgJXMiICUgKGZpcnN0LCBwb3MpCisgICAgd2hpbGUgMToKKyAgICAgICAgaWYgbm90IHRva2VuczoKKyAgICAgICAgICAgIHJhaXNlIFRlbXBsYXRlRXJyb3IoCisgICAgICAgICAgICAgICAgJ05vIHt7ZW5kaWZ9fScsCisgICAgICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgICAgIGlmIChpc2luc3RhbmNlKHRva2Vuc1swXSwgdHVwbGUpCisgICAgICAgICAgICBhbmQgKHRva2Vuc1swXVswXSA9PSAnZW5kaWYnCisgICAgICAgICAgICAgICAgIG9yIHRva2Vuc1swXVswXS5zdGFydHN3aXRoKCdlbGlmICcpCisgICAgICAgICAgICAgICAgIG9yIHRva2Vuc1swXVswXSA9PSAnZWxzZScpKToKKyAgICAgICAgICAgIHJldHVybiBwYXJ0LCB0b2tlbnMKKyAgICAgICAgbmV4dCwgdG9rZW5zID0gcGFyc2VfZXhwcih0b2tlbnMsIG5hbWUsIGNvbnRleHQpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKG5leHQpCisKK2RlZiBwYXJzZV9mb3IodG9rZW5zLCBuYW1lLCBjb250ZXh0KToKKyAgICBmaXJzdCwgcG9zID0gdG9rZW5zWzBdCisgICAgdG9rZW5zID0gdG9rZW5zWzE6XQorICAgIGNvbnRleHQgPSAoJ2ZvcicsKSArIGNvbnRleHQKKyAgICBjb250ZW50ID0gW10KKyAgICBhc3NlcnQgZmlyc3Quc3RhcnRzd2l0aCgnZm9yICcpCisgICAgaWYgZmlyc3QuZW5kc3dpdGgoJzonKToKKyAgICAgICAgZmlyc3QgPSBmaXJzdFs6LTFdCisgICAgZmlyc3QgPSBmaXJzdFszOl0uc3RyaXAoKQorICAgIG1hdGNoID0gaW5fcmUuc2VhcmNoKGZpcnN0KQorICAgIGlmIG5vdCBtYXRjaDoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdCYWQgZm9yIChubyAiaW4iKSBpbiAlcicgJSBmaXJzdCwKKyAgICAgICAgICAgIHBvc2l0aW9uPXBvcywgbmFtZT1uYW1lKQorICAgIHZhcnMgPSBmaXJzdFs6bWF0Y2guc3RhcnQoKV0KKyAgICBpZiAnKCcgaW4gdmFyczoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICdZb3UgY2Fubm90IGhhdmUgKCkgaW4gdGhlIHZhcmlhYmxlIHNlY3Rpb24gb2YgYSBmb3IgbG9vcCAoJXIpJworICAgICAgICAgICAgJSB2YXJzLCBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICB2YXJzID0gdHVwbGUoWworICAgICAgICB2LnN0cmlwKCkgZm9yIHYgaW4gZmlyc3RbOm1hdGNoLnN0YXJ0KCldLnNwbGl0KCcsJykKKyAgICAgICAgaWYgdi5zdHJpcCgpXSkKKyAgICBleHByID0gZmlyc3RbbWF0Y2guZW5kKCk6XQorICAgIHdoaWxlIDE6CisgICAgICAgIGlmIG5vdCB0b2tlbnM6CisgICAgICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgICAgICdObyB7e2VuZGZvcn19JywKKyAgICAgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UodG9rZW5zWzBdLCB0dXBsZSkKKyAgICAgICAgICAgIGFuZCB0b2tlbnNbMF1bMF0gPT0gJ2VuZGZvcicpOgorICAgICAgICAgICAgcmV0dXJuICgnZm9yJywgcG9zLCB2YXJzLCBleHByLCBjb250ZW50KSwgdG9rZW5zWzE6XQorICAgICAgICBuZXh0LCB0b2tlbnMgPSBwYXJzZV9leHByKHRva2VucywgbmFtZSwgY29udGV4dCkKKyAgICAgICAgY29udGVudC5hcHBlbmQobmV4dCkKKworZGVmIHBhcnNlX2RlZmF1bHQodG9rZW5zLCBuYW1lLCBjb250ZXh0KToKKyAgICBmaXJzdCwgcG9zID0gdG9rZW5zWzBdCisgICAgYXNzZXJ0IGZpcnN0LnN0YXJ0c3dpdGgoJ2RlZmF1bHQgJykKKyAgICBmaXJzdCA9IGZpcnN0LnNwbGl0KE5vbmUsIDEpWzFdCisgICAgcGFydHMgPSBmaXJzdC5zcGxpdCgnPScsIDEpCisgICAgaWYgbGVuKHBhcnRzKSA9PSAxOgorICAgICAgICByYWlzZSBUZW1wbGF0ZUVycm9yKAorICAgICAgICAgICAgIkV4cHJlc3Npb24gbXVzdCBiZSB7e2RlZmF1bHQgdmFyPXZhbHVlfX07IG5vID0gZm91bmQgaW4gJXIiICUgZmlyc3QsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3MsIG5hbWU9bmFtZSkKKyAgICB2YXIgPSBwYXJ0c1swXS5zdHJpcCgpCisgICAgaWYgJywnIGluIHZhcjoKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICJ7e2RlZmF1bHQgeCwgeSA9IC4uLn19IGlzIG5vdCBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgaWYgbm90IHZhcl9yZS5zZWFyY2godmFyKToKKyAgICAgICAgcmFpc2UgVGVtcGxhdGVFcnJvcigKKyAgICAgICAgICAgICJOb3QgYSB2YWxpZCB2YXJpYWJsZSBuYW1lIGZvciB7e2RlZmF1bHR9fTogJXIiCisgICAgICAgICAgICAlIHZhciwgcG9zaXRpb249cG9zLCBuYW1lPW5hbWUpCisgICAgZXhwciA9IHBhcnRzWzFdLnN0cmlwKCkKKyAgICByZXR1cm4gKCdkZWZhdWx0JywgcG9zLCB2YXIsIGV4cHIpLCB0b2tlbnNbMTpdCisKK19maWxsX2NvbW1hbmRfdXNhZ2UgPSAiIiJcCislcHJvZyBbT1BUSU9OU10gVEVNUExBVEUgYXJnPXZhbHVlCisKK1VzZSBweTphcmc9dmFsdWUgdG8gc2V0IGEgUHl0aG9uIHZhbHVlOyBvdGhlcndpc2UgYWxsIHZhbHVlcyBhcmUKK3N0cmluZ3MuCisiIiIKKworZGVmIGZpbGxfY29tbWFuZChhcmdzPU5vbmUpOgorICAgIGltcG9ydCBzeXMsIG9wdHBhcnNlLCBwa2dfcmVzb3VyY2VzLCBvcworICAgIGlmIGFyZ3MgaXMgTm9uZToKKyAgICAgICAgYXJncyA9IHN5cy5hcmd2WzE6XQorICAgIGRpc3QgPSBwa2dfcmVzb3VyY2VzLmdldF9kaXN0cmlidXRpb24oJ1Bhc3RlJykKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCisgICAgICAgIHZlcnNpb249c3RyKGRpc3QpLAorICAgICAgICB1c2FnZT1fZmlsbF9jb21tYW5kX3VzYWdlKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLW8nLCAnLS1vdXRwdXQnLAorICAgICAgICBkZXN0PSdvdXRwdXQnLAorICAgICAgICBtZXRhdmFyPSJGSUxFTkFNRSIsCisgICAgICAgIGhlbHA9IkZpbGUgdG8gd3JpdGUgb3V0cHV0IHRvIChkZWZhdWx0IHN0ZG91dCkiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1odG1sJywKKyAgICAgICAgZGVzdD0ndXNlX2h0bWwnLAorICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICBoZWxwPSJVc2UgSFRNTCBzdHlsZSBmaWxsaW5nIChpbmNsdWRpbmcgYXV0b21hdGljIEhUTUwgcXVvdGluZykiKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1lbnYnLAorICAgICAgICBkZXN0PSd1c2VfZW52JywKKyAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgaGVscD0iUHV0IHRoZSBlbnZpcm9ubWVudCBpbiBhcyB0b3AtbGV2ZWwgdmFyaWFibGVzIikKKyAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKyAgICBpZiBsZW4oYXJncykgPCAxOgorICAgICAgICBwcmludCgnWW91IG11c3QgZ2l2ZSBhIHRlbXBsYXRlIGZpbGVuYW1lJykKKyAgICAgICAgcHJpbnQoZGlyKHBhcnNlcikpCisgICAgICAgIGFzc2VydCAwCisgICAgdGVtcGxhdGVfbmFtZSA9IGFyZ3NbMF0KKyAgICBhcmdzID0gYXJnc1sxOl0KKyAgICB2YXJzID0ge30KKyAgICBpZiBvcHRpb25zLnVzZV9lbnY6CisgICAgICAgIHZhcnMudXBkYXRlKG9zLmVudmlyb24pCisgICAgZm9yIHZhbHVlIGluIGFyZ3M6CisgICAgICAgIGlmICc9JyBub3QgaW4gdmFsdWU6CisgICAgICAgICAgICBwcmludCgnQmFkIGFyZ3VtZW50OiAlcicgJSB2YWx1ZSkKKyAgICAgICAgICAgIHN5cy5leGl0KDIpCisgICAgICAgIG5hbWUsIHZhbHVlID0gdmFsdWUuc3BsaXQoJz0nLCAxKQorICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoJ3B5OicpOgorICAgICAgICAgICAgbmFtZSA9IG5hbWVbOjNdCisgICAgICAgICAgICB2YWx1ZSA9IGV2YWwodmFsdWUpCisgICAgICAgIHZhcnNbbmFtZV0gPSB2YWx1ZQorICAgIGlmIHRlbXBsYXRlX25hbWUgPT0gJy0nOgorICAgICAgICB0ZW1wbGF0ZV9jb250ZW50ID0gc3lzLnN0ZGluLnJlYWQoKQorICAgICAgICB0ZW1wbGF0ZV9uYW1lID0gJzxzdGRpbj4nCisgICAgZWxzZToKKyAgICAgICAgZiA9IG9wZW4odGVtcGxhdGVfbmFtZSwgJ3JiJykKKyAgICAgICAgdGVtcGxhdGVfY29udGVudCA9IGYucmVhZCgpCisgICAgICAgIGYuY2xvc2UoKQorICAgIGlmIG9wdGlvbnMudXNlX2h0bWw6CisgICAgICAgIFRlbXBsYXRlQ2xhc3MgPSBIVE1MVGVtcGxhdGUKKyAgICBlbHNlOgorICAgICAgICBUZW1wbGF0ZUNsYXNzID0gVGVtcGxhdGUKKyAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlQ2xhc3ModGVtcGxhdGVfY29udGVudCwgbmFtZT10ZW1wbGF0ZV9uYW1lKQorICAgIHJlc3VsdCA9IHRlbXBsYXRlLnN1YnN0aXR1dGUodmFycykKKyAgICBpZiBvcHRpb25zLm91dHB1dDoKKyAgICAgICAgZiA9IG9wZW4ob3B0aW9ucy5vdXRwdXQsICd3YicpCisgICAgICAgIGYud3JpdGUocmVzdWx0KQorICAgICAgICBmLmNsb3NlKCkKKyAgICBlbHNlOgorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHJlc3VsdCkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBmcm9tIHBhc3RlLnV0aWwudGVtcGxhdGUgaW1wb3J0IGZpbGxfY29tbWFuZAorICAgIGZpbGxfY29tbWFuZCgpCisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvdGhyZWFkZWRwcmludC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL3RocmVhZGVkcHJpbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIwMzExZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL3RocmVhZGVkcHJpbnQucHkKQEAgLTAsMCArMSwyNTAgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworIiIiCit0aHJlYWRlZHByaW50LnB5Cis9PT09PT09PT09PT09PT09CisKKzphdXRob3I6IElhbiBCaWNraW5nCis6ZGF0ZTogMTIgSnVsIDIwMDQKKworTXVsdGktdGhyZWFkZWQgcHJpbnRpbmc7IGFsbG93cyB0aGUgb3V0cHV0IHByb2R1Y2VkIHZpYSBwcmludCB0byBiZQorc2VwYXJhdGVkIGFjY29yZGluZyB0byB0aGUgdGhyZWFkLgorCitUbyB1c2UgdGhpcywgeW91IG11c3QgaW5zdGFsbCB0aGUgY2F0Y2hlciwgbGlrZTo6CisKKyAgICB0aHJlYWRlZHByaW50Lmluc3RhbGwoKQorCitUaGUgaW5zdGFsbGF0aW9uIG9wdGlvbmFsbHkgdGFrZXMgb25lIG9mIHRocmVlIHBhcmFtZXRlcnM6CisKK2RlZmF1bHQKKyAgICBUaGUgZGVmYXVsdCBkZXN0aW5hdGlvbiBmb3IgcHJpbnQgc3RhdGVtZW50cyAoZS5nLiwgYGBzeXMuc3Rkb3V0YGApLgorZmFjdG9yeQorICAgIEEgZnVuY3Rpb24gdGhhdCB3aWxsIHByb2R1Y2UgdGhlIHN0cmVhbSBmb3IgYSB0aHJlYWQsIGdpdmVuIHRoZQorICAgIHRocmVhZCdzIG5hbWUuCitwYXJhbXdyaXRlcgorICAgIEluc3RlYWQgb2Ygd3JpdGluZyB0byBhIGZpbGUtbGlrZSBzdHJlYW0sIHRoaXMgZnVuY3Rpb24gd2lsbCBiZQorICAgIGNhbGxlZCBsaWtlIGBgcGFyYW13cml0ZXIodGhyZWFkX25hbWUsIHRleHQpYGAgZm9yIGV2ZXJ5IHdyaXRlLgorCitUaGUgdGhyZWFkIG5hbWUgaXMgdGhlIHZhbHVlIHJldHVybmVkIGJ5CitgYHRocmVhZGluZy5jdXJyZW50VGhyZWFkKCkuZ2V0TmFtZSgpYGAsIGEgc3RyaW5nICh0eXBpY2FsbHkgc29tZXRoaW5nCitsaWtlIFRocmVhZC1OKS4KKworWW91IGNhbiBhbHNvIHN1Ym1pdCBmaWxlLWxpa2Ugb2JqZWN0cyBmb3Igc3BlY2lmaWMgdGhyZWFkcywgd2hpY2ggd2lsbAorb3ZlcnJpZGUgYW55IG9mIHRoZXNlIHBhcmFtZXRlcnMuICBUbyBkbyB0aGlzLCBjYWxsIGBgcmVnaXN0ZXIoc3RyZWFtLAorW3RocmVhZE5hbWVdKWBgLiAgYGB0aHJlYWROYW1lYGAgaXMgb3B0aW9uYWwsIGFuZCBpZiBub3QgcHJvdmlkZWQgdGhlCitzdHJlYW0gd2lsbCBiZSByZWdpc3RlcmVkIGZvciB0aGUgY3VycmVudCB0aHJlYWQuCisKK0lmIG5vIHNwZWNpZmljIHN0cmVhbSBpcyByZWdpc3RlcmVkIGZvciBhIHRocmVhZCwgYW5kIG5vIGRlZmF1bHQgaGFzCitiZWVuIHByb3ZpZGVkLCB0aGVuIGFuIGVycm9yIHdpbGwgb2NjdXIgd2hlbiBhbnl0aGluZyBpcyB3cml0dGVuIHRvCitgYHN5cy5zdGRvdXRgYCAob3IgcHJpbnRlZCkuCisKK05vdGU6IHRoZSBzdHJlYW0ncyBgYHdyaXRlYGAgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGluIHRoZSB0aHJlYWQgdGhlCit0ZXh0IGNhbWUgZnJvbSwgc28geW91IHNob3VsZCBjb25zaWRlciB0aHJlYWQgc2FmZXR5LCBlc3BlY2lhbGx5IGlmCittdWx0aXBsZSB0aHJlYWRzIHNoYXJlIHRoZSBzYW1lIHdyaXRlci4KKworTm90ZTogaWYgeW91IHdhbnQgYWNjZXNzIHRvIHRoZSBvcmlnaW5hbCBzdGFuZGFyZCBvdXQsIHVzZQorYGBzeXMuX19zdGRvdXRfX2BgLgorCitZb3UgbWF5IGFsc28gdW5pbnN0YWxsIHRoaXMsIHZpYTo6CisKKyAgICB0aHJlYWRlZHByaW50LnVuaW5zdGFsbCgpCisKK1RPRE8KKy0tLS0KKworKiBTb21ldGhpbmcgd2l0aCBgYHN5cy5zdGRlcnJgYC4KKyogU29tZSBkZWZhdWx0IGhhbmRsZXJzLiAgTWF5YmUgc29tZXRoaW5nIHRoYXQgaG9va3MgaW50byBgbG9nZ2luZ2AuCisqIFBvc3NpYmx5IGNhY2hlIHRoZSByZXN1bHRzIG9mIGBgZmFjdG9yeWBgIGNhbGxzLiAgVGhpcyB3b3VsZCBiZSBhCisgIHNlbWFudGljIGNoYW5nZS4KKworIiIiCisKK2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCBzeXMKK2Zyb20gcGFzdGUudXRpbCBpbXBvcnQgZmlsZW1peGluCisKK2NsYXNzIFByaW50Q2F0Y2hlcihmaWxlbWl4aW4uRmlsZU1peGluKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWZhdWx0PU5vbmUsIGZhY3Rvcnk9Tm9uZSwgcGFyYW13cml0ZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgbGVhdmVfc3Rkb3V0PUZhbHNlKToKKyAgICAgICAgYXNzZXJ0IGxlbihmaWx0ZXIobGFtYmRhIHg6IHggaXMgbm90IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0LCBmYWN0b3J5LCBwYXJhbXdyaXRlcl0pKSA8PSAxLCAoCisgICAgICAgICAgICAiWW91IGNhbiBvbmx5IHByb3ZpZGUgb25lIG9mIGRlZmF1bHQsIGZhY3RvcnksIG9yIHBhcmFtd3JpdGVyIikKKyAgICAgICAgaWYgbGVhdmVfc3Rkb3V0OgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBkZWZhdWx0LCAoCisgICAgICAgICAgICAgICAgIllvdSBjYW5ub3QgcGFzcyBpbiBib3RoIGRlZmF1bHQgKCVyKSBhbmQgIgorICAgICAgICAgICAgICAgICJsZWF2ZV9zdGRvdXQ9VHJ1ZSIgJSBkZWZhdWx0KQorICAgICAgICAgICAgZGVmYXVsdCA9IHN5cy5zdGRvdXQKKyAgICAgICAgaWYgZGVmYXVsdDoKKyAgICAgICAgICAgIHNlbGYuX2RlZmF1bHRmdW5jID0gc2VsZi5fd3JpdGVkZWZhdWx0CisgICAgICAgIGVsaWYgZmFjdG9yeToKKyAgICAgICAgICAgIHNlbGYuX2RlZmF1bHRmdW5jID0gc2VsZi5fd3JpdGVmYWN0b3J5CisgICAgICAgIGVsaWYgcGFyYW13cml0ZXI6CisgICAgICAgICAgICBzZWxmLl9kZWZhdWx0ZnVuYyA9IHNlbGYuX3dyaXRlcGFyYW0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2RlZmF1bHRmdW5jID0gc2VsZi5fd3JpdGVlcnJvcgorICAgICAgICBzZWxmLl9kZWZhdWx0ID0gZGVmYXVsdAorICAgICAgICBzZWxmLl9mYWN0b3J5ID0gZmFjdG9yeQorICAgICAgICBzZWxmLl9wYXJhbXdyaXRlciA9IHBhcmFtd3JpdGVyCisgICAgICAgIHNlbGYuX2NhdGNoZXJzID0ge30KKworICAgIGRlZiB3cml0ZShzZWxmLCB2LCBjdXJyZW50VGhyZWFkPXRocmVhZGluZy5jdXJyZW50VGhyZWFkKToKKyAgICAgICAgbmFtZSA9IGN1cnJlbnRUaHJlYWQoKS5nZXROYW1lKCkKKyAgICAgICAgY2F0Y2hlcnMgPSBzZWxmLl9jYXRjaGVycworICAgICAgICBpZiBub3QgY2F0Y2hlcnMuaGFzX2tleShuYW1lKToKKyAgICAgICAgICAgIHNlbGYuX2RlZmF1bHRmdW5jKG5hbWUsIHYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXRjaGVyID0gY2F0Y2hlcnNbbmFtZV0KKyAgICAgICAgICAgIGNhdGNoZXIud3JpdGUodikKKworICAgIGRlZiBzZWVrKHNlbGYsICphcmdzKToKKyAgICAgICAgIyBXZWlyZCwgYnV0IEdvb2dsZSBBcHAgRW5naW5lIGlzIHNlZWtpbmcgb24gc3Rkb3V0CisgICAgICAgIG5hbWUgPSB0aHJlYWRpbmcuY3VycmVudFRocmVhZCgpLmdldE5hbWUoKQorICAgICAgICBjYXRjaGVycyA9IHNlbGYuX2NhdGNoZXJzCisgICAgICAgIGlmIG5vdCBuYW1lIGluIGNhdGNoZXJzOgorICAgICAgICAgICAgc2VsZi5fZGVmYXVsdC5zZWVrKCphcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2F0Y2hlcnNbbmFtZV0uc2VlaygqYXJncykKKworICAgIGRlZiByZWFkKHNlbGYsICphcmdzKToKKyAgICAgICAgbmFtZSA9IHRocmVhZGluZy5jdXJyZW50VGhyZWFkKCkuZ2V0TmFtZSgpCisgICAgICAgIGNhdGNoZXJzID0gc2VsZi5fY2F0Y2hlcnMKKyAgICAgICAgaWYgbm90IG5hbWUgaW4gY2F0Y2hlcnM6CisgICAgICAgICAgICBzZWxmLl9kZWZhdWx0LnJlYWQoKmFyZ3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXRjaGVyc1tuYW1lXS5yZWFkKCphcmdzKQorCisKKyAgICBkZWYgX3dyaXRlZGVmYXVsdChzZWxmLCBuYW1lLCB2KToKKyAgICAgICAgc2VsZi5fZGVmYXVsdC53cml0ZSh2KQorCisgICAgZGVmIF93cml0ZWZhY3Rvcnkoc2VsZiwgbmFtZSwgdik6CisgICAgICAgIHNlbGYuX2ZhY3RvcnkobmFtZSkud3JpdGUodikKKworICAgIGRlZiBfd3JpdGVwYXJhbShzZWxmLCBuYW1lLCB2KToKKyAgICAgICAgc2VsZi5fcGFyYW13cml0ZXIobmFtZSwgdikKKworICAgIGRlZiBfd3JpdGVlcnJvcihzZWxmLCBuYW1lLCB2KToKKyAgICAgICAgYXNzZXJ0IEZhbHNlLCAoCisgICAgICAgICAgICAiVGhlcmUgaXMgbm8gUHJpbnRDYXRjaGVyIG91dHB1dCBzdHJlYW0gZm9yIHRoZSB0aHJlYWQgJXIiCisgICAgICAgICAgICAlIG5hbWUpCisKKyAgICBkZWYgcmVnaXN0ZXIoc2VsZiwgY2F0Y2hlciwgbmFtZT1Ob25lLAorICAgICAgICAgICAgICAgICBjdXJyZW50VGhyZWFkPXRocmVhZGluZy5jdXJyZW50VGhyZWFkKToKKyAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgbmFtZSA9IGN1cnJlbnRUaHJlYWQoKS5nZXROYW1lKCkKKyAgICAgICAgc2VsZi5fY2F0Y2hlcnNbbmFtZV0gPSBjYXRjaGVyCisKKyAgICBkZWYgZGVyZWdpc3RlcihzZWxmLCBuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgICAgY3VycmVudFRocmVhZD10aHJlYWRpbmcuY3VycmVudFRocmVhZCk6CisgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIG5hbWUgPSBjdXJyZW50VGhyZWFkKCkuZ2V0TmFtZSgpCisgICAgICAgIGFzc2VydCBzZWxmLl9jYXRjaGVycy5oYXNfa2V5KG5hbWUpLCAoCisgICAgICAgICAgICAiVGhlcmUgaXMgbm8gUHJpbnRDYXRjaGVyIGNhdGNoZXIgZm9yIHRoZSB0aHJlYWQgJXIiICUgbmFtZSkKKyAgICAgICAgZGVsIHNlbGYuX2NhdGNoZXJzW25hbWVdCisKK19wcmludGNhdGNoZXIgPSBOb25lCitfb2xkc3Rkb3V0ID0gTm9uZQorCitkZWYgaW5zdGFsbCgqKmt3KToKKyAgICBnbG9iYWwgX3ByaW50Y2F0Y2hlciwgX29sZHN0ZG91dCwgcmVnaXN0ZXIsIGRlcmVnaXN0ZXIKKyAgICBpZiAobm90IF9wcmludGNhdGNoZXIgb3Igc3lzLnN0ZG91dCBpcyBub3QgX3ByaW50Y2F0Y2hlcik6CisgICAgICAgIF9vbGRzdGRvdXQgPSBzeXMuc3Rkb3V0CisgICAgICAgIF9wcmludGNhdGNoZXIgPSBzeXMuc3Rkb3V0ID0gUHJpbnRDYXRjaGVyKCoqa3cpCisgICAgICAgIHJlZ2lzdGVyID0gX3ByaW50Y2F0Y2hlci5yZWdpc3RlcgorICAgICAgICBkZXJlZ2lzdGVyID0gX3ByaW50Y2F0Y2hlci5kZXJlZ2lzdGVyCisKK2RlZiB1bmluc3RhbGwoKToKKyAgICBnbG9iYWwgX3ByaW50Y2F0Y2hlciwgX29sZHN0ZG91dCwgcmVnaXN0ZXIsIGRlcmVnaXN0ZXIKKyAgICBpZiBfcHJpbnRjYXRjaGVyOgorICAgICAgICBzeXMuc3Rkb3V0ID0gX29sZHN0ZG91dAorICAgICAgICBfcHJpbnRjYXRjaGVyID0gX29sZHN0ZG91dCA9IE5vbmUKKyAgICAgICAgcmVnaXN0ZXIgPSBub3RfaW5zdGFsbGVkX2Vycm9yCisgICAgICAgIGRlcmVnaXN0ZXIgPSBub3RfaW5zdGFsbGVkX2Vycm9yCisKK2RlZiBub3RfaW5zdGFsbGVkX2Vycm9yKCphcmdzLCAqKmt3KToKKyAgICBhc3NlcnQgRmFsc2UsICgKKyAgICAgICAgInRocmVhZGVkcHJpbnQgaGFzIG5vdCB5ZXQgYmVlbiBpbnN0YWxsZWQgKGNhbGwgIgorICAgICAgICAidGhyZWFkZWRwcmludC5pbnN0YWxsKCkpIikKKworcmVnaXN0ZXIgPSBkZXJlZ2lzdGVyID0gbm90X2luc3RhbGxlZF9lcnJvcgorCitjbGFzcyBTdGRpbkNhdGNoZXIoZmlsZW1peGluLkZpbGVNaXhpbik6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVmYXVsdD1Ob25lLCBmYWN0b3J5PU5vbmUsIHBhcmFtd3JpdGVyPU5vbmUpOgorICAgICAgICBhc3NlcnQgbGVuKGZpbHRlcihsYW1iZGEgeDogeCBpcyBub3QgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHQsIGZhY3RvcnksIHBhcmFtd3JpdGVyXSkpIDw9IDEsICgKKyAgICAgICAgICAgICJZb3UgY2FuIG9ubHkgcHJvdmlkZSBvbmUgb2YgZGVmYXVsdCwgZmFjdG9yeSwgb3IgcGFyYW13cml0ZXIiKQorICAgICAgICBpZiBkZWZhdWx0OgorICAgICAgICAgICAgc2VsZi5fZGVmYXVsdGZ1bmMgPSBzZWxmLl9yZWFkZGVmYXVsdAorICAgICAgICBlbGlmIGZhY3Rvcnk6CisgICAgICAgICAgICBzZWxmLl9kZWZhdWx0ZnVuYyA9IHNlbGYuX3JlYWRmYWN0b3J5CisgICAgICAgIGVsaWYgcGFyYW13cml0ZXI6CisgICAgICAgICAgICBzZWxmLl9kZWZhdWx0ZnVuYyA9IHNlbGYuX3JlYWRwYXJhbQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fZGVmYXVsdGZ1bmMgPSBzZWxmLl9yZWFkZXJyb3IKKyAgICAgICAgc2VsZi5fZGVmYXVsdCA9IGRlZmF1bHQKKyAgICAgICAgc2VsZi5fZmFjdG9yeSA9IGZhY3RvcnkKKyAgICAgICAgc2VsZi5fcGFyYW13cml0ZXIgPSBwYXJhbXdyaXRlcgorICAgICAgICBzZWxmLl9jYXRjaGVycyA9IHt9CisKKyAgICBkZWYgcmVhZChzZWxmLCBzaXplPU5vbmUsIGN1cnJlbnRUaHJlYWQ9dGhyZWFkaW5nLmN1cnJlbnRUaHJlYWQpOgorICAgICAgICBuYW1lID0gY3VycmVudFRocmVhZCgpLmdldE5hbWUoKQorICAgICAgICBjYXRjaGVycyA9IHNlbGYuX2NhdGNoZXJzCisgICAgICAgIGlmIG5vdCBjYXRjaGVycy5oYXNfa2V5KG5hbWUpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2RlZmF1bHRmdW5jKG5hbWUsIHNpemUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXRjaGVyID0gY2F0Y2hlcnNbbmFtZV0KKyAgICAgICAgICAgIHJldHVybiBjYXRjaGVyLnJlYWQoc2l6ZSkKKworICAgIGRlZiBfcmVhZGRlZmF1bHQoc2VsZiwgbmFtZSwgc2l6ZSk6CisgICAgICAgIHNlbGYuX2RlZmF1bHQucmVhZChzaXplKQorCisgICAgZGVmIF9yZWFkZmFjdG9yeShzZWxmLCBuYW1lLCBzaXplKToKKyAgICAgICAgc2VsZi5fZmFjdG9yeShuYW1lKS5yZWFkKHNpemUpCisKKyAgICBkZWYgX3JlYWRwYXJhbShzZWxmLCBuYW1lLCBzaXplKToKKyAgICAgICAgc2VsZi5fcGFyYW1yZWFkZXIobmFtZSwgc2l6ZSkKKworICAgIGRlZiBfcmVhZGVycm9yKHNlbGYsIG5hbWUsIHNpemUpOgorICAgICAgICBhc3NlcnQgRmFsc2UsICgKKyAgICAgICAgICAgICJUaGVyZSBpcyBubyBTdGRpbkNhdGNoZXIgb3V0cHV0IHN0cmVhbSBmb3IgdGhlIHRocmVhZCAlciIKKyAgICAgICAgICAgICUgbmFtZSkKKworICAgIGRlZiByZWdpc3RlcihzZWxmLCBjYXRjaGVyLCBuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgIGN1cnJlbnRUaHJlYWQ9dGhyZWFkaW5nLmN1cnJlbnRUaHJlYWQpOgorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBuYW1lID0gY3VycmVudFRocmVhZCgpLmdldE5hbWUoKQorICAgICAgICBzZWxmLl9jYXRjaGVyc1tuYW1lXSA9IGNhdGNoZXIKKworICAgIGRlZiBkZXJlZ2lzdGVyKHNlbGYsIGNhdGNoZXIsIG5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICBjdXJyZW50VGhyZWFkPXRocmVhZGluZy5jdXJyZW50VGhyZWFkKToKKyAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgbmFtZSA9IGN1cnJlbnRUaHJlYWQoKS5nZXROYW1lKCkKKyAgICAgICAgYXNzZXJ0IHNlbGYuX2NhdGNoZXJzLmhhc19rZXkobmFtZSksICgKKyAgICAgICAgICAgICJUaGVyZSBpcyBubyBTdGRpbkNhdGNoZXIgY2F0Y2hlciBmb3IgdGhlIHRocmVhZCAlciIgJSBuYW1lKQorICAgICAgICBkZWwgc2VsZi5fY2F0Y2hlcnNbbmFtZV0KKworX3N0ZGluY2F0Y2hlciA9IE5vbmUKK19vbGRzdGRpbiA9IE5vbmUKKworZGVmIGluc3RhbGxfc3RkaW4oKiprdyk6CisgICAgZ2xvYmFsIF9zdGRpbmNhdGNoZXIsIF9vbGRzdGRpbiwgcmVnaXN0ZXJfc3RkaW4sIGRlcmVnaXN0ZXJfc3RkaW4KKyAgICBpZiBub3QgX3N0ZGluY2F0Y2hlcjoKKyAgICAgICAgX29sZHN0ZGluID0gc3lzLnN0ZGluCisgICAgICAgIF9zdGRpbmNhdGNoZXIgPSBzeXMuc3RkaW4gPSBTdGRpbkNhdGNoZXIoKiprdykKKyAgICAgICAgcmVnaXN0ZXJfc3RkaW4gPSBfc3RkaW5jYXRjaGVyLnJlZ2lzdGVyCisgICAgICAgIGRlcmVnaXN0ZXJfc3RkaW4gPSBfc3RkaW5jYXRjaGVyLmRlcmVnaXN0ZXIKKworZGVmIHVuaW5zdGFsbF9zdGRpbigpOgorICAgIGdsb2JhbCBfc3RkaW5jYXRjaGVyLCBfb2xkc3RkaW4sIHJlZ2lzdGVyX3N0ZGluLCBkZXJlZ2lzdGVyX3N0ZGluCisgICAgaWYgX3N0ZGluY2F0Y2hlcjoKKyAgICAgICAgc3lzLnN0ZGluID0gX29sZHN0ZGluCisgICAgICAgIF9zdGRpbmNhdGNoZXIgPSBfb2xkc3RkaW4gPSBOb25lCisgICAgICAgIHJlZ2lzdGVyX3N0ZGluID0gZGVyZWdpc3Rlcl9zdGRpbiA9IG5vdF9pbnN0YWxsZWRfZXJyb3Jfc3RkaW4KKworZGVmIG5vdF9pbnN0YWxsZWRfZXJyb3Jfc3RkaW4oKmFyZ3MsICoqa3cpOgorICAgIGFzc2VydCBGYWxzZSwgKAorICAgICAgICAidGhyZWFkZWRwcmludCBoYXMgbm90IHlldCBiZWVuIGluc3RhbGxlZCBmb3Igc3RkaW4gKGNhbGwgIgorICAgICAgICAidGhyZWFkZWRwcmludC5pbnN0YWxsX3N0ZGluKCkpIikKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL3RocmVhZGluZ2xvY2FsLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3V0aWwvdGhyZWFkaW5nbG9jYWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZmMjY0MwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS91dGlsL3RocmVhZGluZ2xvY2FsLnB5CkBAIC0wLDAgKzEsNDMgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcgYW5kIGNvbnRyaWJ1dG9yczsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorSW1wbGVtZW50YXRpb24gb2YgdGhyZWFkLWxvY2FsIHN0b3JhZ2UsIGZvciBQeXRob24gdmVyc2lvbnMgdGhhdCBkb24ndAoraGF2ZSB0aHJlYWQgbG9jYWwgc3RvcmFnZSBuYXRpdmVseS4KKyIiIgorCit0cnk6CisgICAgaW1wb3J0IHRocmVhZGluZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgTm8gdGhyZWFkcywgc28gInRocmVhZCBsb2NhbCIgbWVhbnMgcHJvY2Vzcy1nbG9iYWwKKyAgICBjbGFzcyBsb2NhbChvYmplY3QpOgorICAgICAgICBwYXNzCitlbHNlOgorICAgIHRyeToKKyAgICAgICAgbG9jYWwgPSB0aHJlYWRpbmcubG9jYWwKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICMgQWRkZWQgaW4gMi40LCBidXQgbm93IHdlJ2xsIGhhdmUgdG8gZGVmaW5lIGl0IG91cnNlbHZlcworICAgICAgICBpbXBvcnQgdGhyZWFkCisgICAgICAgIGNsYXNzIGxvY2FsKG9iamVjdCk6CisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLl9fZGljdF9fWydfX29ianMnXSA9IHt9CisKKyAgICAgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyLCBnPXRocmVhZC5nZXRfaWRlbnQpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19kaWN0X19bJ19fb2JqcyddW2coKV1bYXR0cl0KKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHZhcmlhYmxlICVzIGRlZmluZWQgZm9yIHRoZSB0aHJlYWQgJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAlIChhdHRyLCBnKCkpKQorCisgICAgICAgICAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgYXR0ciwgdmFsdWUsIGc9dGhyZWFkLmdldF9pZGVudCk6CisgICAgICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1snX19vYmpzJ10uc2V0ZGVmYXVsdChnKCksIHt9KVthdHRyXSA9IHZhbHVlCisKKyAgICAgICAgICAgIGRlZiBfX2RlbGF0dHJfXyhzZWxmLCBhdHRyLCBnPXRocmVhZC5nZXRfaWRlbnQpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZGVsIHNlbGYuX19kaWN0X19bJ19fb2JqcyddW2coKV1bYXR0cl0KKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHZhcmlhYmxlICVzIGRlZmluZWQgZm9yIHRocmVhZCAlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICUgKGF0dHIsIGcoKSkpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS93c2dpbGliLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Bhc3RlL3dzZ2lsaWIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTgyOTllMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS93c2dpbGliLnB5CkBAIC0wLDAgKzEsNjAwIEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKKyIiIgorQSBtb2R1bGUgb2YgbWFueSBkaXNwYXJhdGUgcm91dGluZXMuCisiIiIKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCisjIGZ1bmN0aW9ucyB3aGljaCBtb3ZlZCB0byBwYXN0ZS5yZXF1ZXN0IGFuZCBwYXN0ZS5yZXNwb25zZQorIyBEZXByZWNhdGVkIGFyb3VuZCAxNSBEZWMgMjAwNQorZnJvbSBwYXN0ZS5yZXF1ZXN0IGltcG9ydCBnZXRfY29va2llcywgcGFyc2VfcXVlcnlzdHJpbmcsIHBhcnNlX2Zvcm12YXJzCitmcm9tIHBhc3RlLnJlcXVlc3QgaW1wb3J0IGNvbnN0cnVjdF91cmwsIHBhdGhfaW5mb19zcGxpdCwgcGF0aF9pbmZvX3BvcAorZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgSGVhZGVyRGljdCwgaGFzX2hlYWRlciwgaGVhZGVyX3ZhbHVlLCByZW1vdmVfaGVhZGVyCitmcm9tIHBhc3RlLnJlc3BvbnNlIGltcG9ydCBlcnJvcl9ib2R5X3Jlc3BvbnNlLCBlcnJvcl9yZXNwb25zZSwgZXJyb3JfcmVzcG9uc2VfYXBwCisKK2Zyb20gdHJhY2ViYWNrIGltcG9ydCBwcmludF9leGNlcHRpb24KK2ltcG9ydCBzaXgKK2ltcG9ydCBzeXMKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdW5xdW90ZSwgdXJsc3BsaXQKK2ltcG9ydCB3YXJuaW5ncworCitfX2FsbF9fID0gWydhZGRfY2xvc2UnLCAnYWRkX3N0YXJ0X2Nsb3NlJywgJ2NhcHR1cmVfb3V0cHV0JywgJ2NhdGNoX2Vycm9ycycsCisgICAgICAgICAgICdjYXRjaF9lcnJvcnNfYXBwJywgJ2NoYWluZWRfYXBwX2l0ZXJzJywgJ2NvbnN0cnVjdF91cmwnLAorICAgICAgICAgICAnZHVtcF9lbnZpcm9uJywgJ2VuY29kZV91bmljb2RlX2FwcF9pdGVyJywgJ2Vycm9yX2JvZHlfcmVzcG9uc2UnLAorICAgICAgICAgICAnZXJyb3JfcmVzcG9uc2UnLCAnZ2V0X2Nvb2tpZXMnLCAnaGFzX2hlYWRlcicsICdoZWFkZXJfdmFsdWUnLAorICAgICAgICAgICAnaW50ZXJhY3RpdmUnLCAnaW50ZXJjZXB0X291dHB1dCcsICdwYXRoX2luZm9fcG9wJywKKyAgICAgICAgICAgJ3BhdGhfaW5mb19zcGxpdCcsICdyYXdfaW50ZXJhY3RpdmUnLCAnc2VuZF9maWxlJ10KKworY2xhc3MgYWRkX2Nsb3NlKG9iamVjdCk6CisgICAgIiIiCisgICAgQW4gYW4gaXRlcmFibGUgdGhhdCBpdGVyYXRlcyBvdmVyIGFwcF9pdGVyLCB0aGVuIGNhbGxzCisgICAgY2xvc2VfZnVuYy4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBfaXRlcmFibGUsIGNsb3NlX2Z1bmMpOgorICAgICAgICBzZWxmLmFwcF9pdGVyYWJsZSA9IGFwcF9pdGVyYWJsZQorICAgICAgICBzZWxmLmFwcF9pdGVyID0gaXRlcihhcHBfaXRlcmFibGUpCisgICAgICAgIHNlbGYuY2xvc2VfZnVuYyA9IGNsb3NlX2Z1bmMKKyAgICAgICAgc2VsZi5fY2xvc2VkID0gRmFsc2UKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBuZXh0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5hcHBfaXRlci5uZXh0KCkKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgc2VsZi5fY2xvc2VkID0gVHJ1ZQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYXBwX2l0ZXJhYmxlLCAnY2xvc2UnKToKKyAgICAgICAgICAgIHNlbGYuYXBwX2l0ZXJhYmxlLmNsb3NlKCkKKyAgICAgICAgc2VsZi5jbG9zZV9mdW5jKCkKKworICAgIGRlZiBfX2RlbF9fKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5fY2xvc2VkOgorICAgICAgICAgICAgIyBXZSBjYW4ndCByYWlzZSBhbiBlcnJvciBvciBhbnl0aGluZyBhdCB0aGlzIHN0YWdlCisgICAgICAgICAgICBwcmludCgiRXJyb3I6IGFwcF9pdGVyLmNsb3NlKCkgd2FzIG5vdCBjYWxsZWQgd2hlbiBmaW5pc2hpbmcgIgorICAgICAgICAgICAgICAgICJXU0dJIHJlcXVlc3QuIGZpbmFsaXphdGlvbiBmdW5jdGlvbiAlcyBub3QgY2FsbGVkIgorICAgICAgICAgICAgICAgICAgJSBzZWxmLmNsb3NlX2Z1bmMsIGZpbGU9c3lzLnN0ZGVycikKKworY2xhc3MgYWRkX3N0YXJ0X2Nsb3NlKG9iamVjdCk6CisgICAgIiIiCisgICAgQW4gYW4gaXRlcmFibGUgdGhhdCBpdGVyYXRlcyBvdmVyIGFwcF9pdGVyLCBjYWxscyBzdGFydF9mdW5jCisgICAgYmVmb3JlIHRoZSBmaXJzdCBpdGVtIGlzIHJldHVybmVkLCB0aGVuIGNhbGxzIGNsb3NlX2Z1bmMgYXQgdGhlCisgICAgZW5kLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcF9pdGVyYWJsZSwgc3RhcnRfZnVuYywgY2xvc2VfZnVuYz1Ob25lKToKKyAgICAgICAgc2VsZi5hcHBfaXRlcmFibGUgPSBhcHBfaXRlcmFibGUKKyAgICAgICAgc2VsZi5hcHBfaXRlciA9IGl0ZXIoYXBwX2l0ZXJhYmxlKQorICAgICAgICBzZWxmLmZpcnN0ID0gVHJ1ZQorICAgICAgICBzZWxmLnN0YXJ0X2Z1bmMgPSBzdGFydF9mdW5jCisgICAgICAgIHNlbGYuY2xvc2VfZnVuYyA9IGNsb3NlX2Z1bmMKKyAgICAgICAgc2VsZi5fY2xvc2VkID0gRmFsc2UKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBuZXh0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLmZpcnN0OgorICAgICAgICAgICAgc2VsZi5zdGFydF9mdW5jKCkKKyAgICAgICAgICAgIHNlbGYuZmlyc3QgPSBGYWxzZQorICAgICAgICByZXR1cm4gbmV4dChzZWxmLmFwcF9pdGVyKQorICAgIF9fbmV4dF9fID0gbmV4dAorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBzZWxmLl9jbG9zZWQgPSBUcnVlCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hcHBfaXRlcmFibGUsICdjbG9zZScpOgorICAgICAgICAgICAgc2VsZi5hcHBfaXRlcmFibGUuY2xvc2UoKQorICAgICAgICBpZiBzZWxmLmNsb3NlX2Z1bmMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmNsb3NlX2Z1bmMoKQorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICAjIFdlIGNhbid0IHJhaXNlIGFuIGVycm9yIG9yIGFueXRoaW5nIGF0IHRoaXMgc3RhZ2UKKyAgICAgICAgICAgIHByaW50KCJFcnJvcjogYXBwX2l0ZXIuY2xvc2UoKSB3YXMgbm90IGNhbGxlZCB3aGVuIGZpbmlzaGluZyAiCisgICAgICAgICAgICAgICAgIldTR0kgcmVxdWVzdC4gZmluYWxpemF0aW9uIGZ1bmN0aW9uICVzIG5vdCBjYWxsZWQiCisgICAgICAgICAgICAgICAgICAlIHNlbGYuY2xvc2VfZnVuYywgZmlsZT1zeXMuc3RkZXJyKQorCitjbGFzcyBjaGFpbmVkX2FwcF9pdGVycyhvYmplY3QpOgorCisgICAgIiIiCisgICAgQ2hhaW5zIHNldmVyYWwgYXBwX2l0ZXJzIHRvZ2V0aGVyLCBhbHNvIGRlbGVnYXRpbmcgLmNsb3NlKCkgdG8gZWFjaAorICAgIG9mIHRoZW0uCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmNoYWluZWQpOgorICAgICAgICBzZWxmLmFwcF9pdGVycyA9IGNoYWluZWQKKyAgICAgICAgc2VsZi5jaGFpbmVkID0gW2l0ZXIoaXRlbSkgZm9yIGl0ZW0gaW4gY2hhaW5lZF0KKyAgICAgICAgc2VsZi5fY2xvc2VkID0gRmFsc2UKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBuZXh0KHNlbGYpOgorICAgICAgICBpZiBsZW4oc2VsZi5jaGFpbmVkKSA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2hhaW5lZFswXS5uZXh0KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5jaGFpbmVkWzBdLm5leHQoKQorICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICAgICAgc2VsZi5jaGFpbmVkLnBvcCgwKQorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm5leHQoKQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBzZWxmLl9jbG9zZWQgPSBUcnVlCisgICAgICAgIGdvdF9leGMgPSBOb25lCisgICAgICAgIGZvciBhcHBfaXRlciBpbiBzZWxmLmFwcF9pdGVyczoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGFwcF9pdGVyLCAnY2xvc2UnKToKKyAgICAgICAgICAgICAgICAgICAgYXBwX2l0ZXIuY2xvc2UoKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIGdvdF9leGMgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICBpZiBnb3RfZXhjOgorICAgICAgICAgICAgc2l4LnJlcmFpc2UoZ290X2V4Y1swXSwgZ290X2V4Y1sxXSwgZ290X2V4Y1syXSkKKworICAgIGRlZiBfX2RlbF9fKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5fY2xvc2VkOgorICAgICAgICAgICAgIyBXZSBjYW4ndCByYWlzZSBhbiBlcnJvciBvciBhbnl0aGluZyBhdCB0aGlzIHN0YWdlCisgICAgICAgICAgICBwcmludCgiRXJyb3I6IGFwcF9pdGVyLmNsb3NlKCkgd2FzIG5vdCBjYWxsZWQgd2hlbiBmaW5pc2hpbmcgIgorICAgICAgICAgICAgICAgICJXU0dJIHJlcXVlc3QuIGZpbmFsaXphdGlvbiBmdW5jdGlvbiAlcyBub3QgY2FsbGVkIgorICAgICAgICAgICAgICAgICAgJSBzZWxmLmNsb3NlX2Z1bmMsIGZpbGU9c3lzLnN0ZGVycikKKworY2xhc3MgZW5jb2RlX3VuaWNvZGVfYXBwX2l0ZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBFbmNvZGVzIGFuIGFwcF9pdGVyYWJsZSdzIHVuaWNvZGUgcmVzcG9uc2VzIGFzIHN0cmluZ3MKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBfaXRlcmFibGUsIGVuY29kaW5nPXN5cy5nZXRkZWZhdWx0ZW5jb2RpbmcoKSwKKyAgICAgICAgICAgICAgICAgZXJyb3JzPSdzdHJpY3QnKToKKyAgICAgICAgc2VsZi5hcHBfaXRlcmFibGUgPSBhcHBfaXRlcmFibGUKKyAgICAgICAgc2VsZi5hcHBfaXRlciA9IGl0ZXIoYXBwX2l0ZXJhYmxlKQorICAgICAgICBzZWxmLmVuY29kaW5nID0gZW5jb2RpbmcKKyAgICAgICAgc2VsZi5lcnJvcnMgPSBlcnJvcnMKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBuZXh0KHNlbGYpOgorICAgICAgICBjb250ZW50ID0gbmV4dChzZWxmLmFwcF9pdGVyKQorICAgICAgICBpZiBpc2luc3RhbmNlKGNvbnRlbnQsIHNpeC50ZXh0X3R5cGUpOgorICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZW5jb2RlKHNlbGYuZW5jb2RpbmcsIHNlbGYuZXJyb3JzKQorICAgICAgICByZXR1cm4gY29udGVudAorICAgIF9fbmV4dF9fID0gbmV4dAorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYXBwX2l0ZXJhYmxlLCAnY2xvc2UnKToKKyAgICAgICAgICAgIHNlbGYuYXBwX2l0ZXJhYmxlLmNsb3NlKCkKKworZGVmIGNhdGNoX2Vycm9ycyhhcHBsaWNhdGlvbiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UsIGVycm9yX2NhbGxiYWNrLAorICAgICAgICAgICAgICAgICBva19jYWxsYmFjaz1Ob25lKToKKyAgICAiIiIKKyAgICBSdW5zIHRoZSBhcHBsaWNhdGlvbiwgYW5kIHJldHVybnMgdGhlIGFwcGxpY2F0aW9uIGl0ZXJhdG9yICh3aGljaCBzaG91bGQgYmUKKyAgICBwYXNzZWQgdXBzdHJlYW0pLiAgSWYgYW4gZXJyb3Igb2NjdXJzIHRoZW4gZXJyb3JfY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgd2l0aAorICAgIGV4Y19pbmZvIGFzIGl0cyBzb2xlIGFyZ3VtZW50LiAgSWYgbm8gZXJyb3JzIG9jY3VyIGFuZCBva19jYWxsYmFjayBpcyBnaXZlbiwKKyAgICB0aGVuIGl0IHdpbGwgYmUgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRzLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgYXBwX2l0ZXIgPSBhcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICBleGNlcHQ6CisgICAgICAgIGVycm9yX2NhbGxiYWNrKHN5cy5leGNfaW5mbygpKQorICAgICAgICByYWlzZQorICAgIGlmIHR5cGUoYXBwX2l0ZXIpIGluIChsaXN0LCB0dXBsZSk6CisgICAgICAgICMgVGhlc2Ugd29uJ3QgcHJvZHVjZSBleGNlcHRpb25zCisgICAgICAgIGlmIG9rX2NhbGxiYWNrOgorICAgICAgICAgICAgb2tfY2FsbGJhY2soKQorICAgICAgICByZXR1cm4gYXBwX2l0ZXIKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gX3dyYXBfYXBwX2l0ZXIoYXBwX2l0ZXIsIGVycm9yX2NhbGxiYWNrLCBva19jYWxsYmFjaykKKworY2xhc3MgX3dyYXBfYXBwX2l0ZXIob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBfaXRlcmFibGUsIGVycm9yX2NhbGxiYWNrLCBva19jYWxsYmFjayk6CisgICAgICAgIHNlbGYuYXBwX2l0ZXJhYmxlID0gYXBwX2l0ZXJhYmxlCisgICAgICAgIHNlbGYuYXBwX2l0ZXIgPSBpdGVyKGFwcF9pdGVyYWJsZSkKKyAgICAgICAgc2VsZi5lcnJvcl9jYWxsYmFjayA9IGVycm9yX2NhbGxiYWNrCisgICAgICAgIHNlbGYub2tfY2FsbGJhY2sgPSBva19jYWxsYmFjaworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYXBwX2l0ZXJhYmxlLCAnY2xvc2UnKToKKyAgICAgICAgICAgIHNlbGYuY2xvc2UgPSBzZWxmLmFwcF9pdGVyYWJsZS5jbG9zZQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmFwcF9pdGVyLm5leHQoKQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgIGlmIHNlbGYub2tfY2FsbGJhY2s6CisgICAgICAgICAgICAgICAgc2VsZi5va19jYWxsYmFjaygpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBzZWxmLmVycm9yX2NhbGxiYWNrKHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAgcmFpc2UKKworZGVmIGNhdGNoX2Vycm9yc19hcHAoYXBwbGljYXRpb24sIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlLCBlcnJvcl9jYWxsYmFja19hcHAsCisgICAgICAgICAgICAgICAgICAgICBva19jYWxsYmFjaz1Ob25lLCBjYXRjaD1FeGNlcHRpb24pOgorICAgICIiIgorICAgIExpa2UgYGBjYXRjaF9lcnJvcnNgYCwgZXhjZXB0IGVycm9yX2NhbGxiYWNrX2FwcCBzaG91bGQgYmUgYQorICAgIGNhbGxhYmxlIHRoYXQgd2lsbCByZWNlaXZlICp0aHJlZSogYXJndW1lbnRzIC0tIGBgZW52aXJvbmBgLAorICAgIGBgc3RhcnRfcmVzcG9uc2VgYCwgYW5kIGBgZXhjX2luZm9gYC4gIEl0IHNob3VsZCBjYWxsCisgICAgYGBzdGFydF9yZXNwb25zZWBgICgqd2l0aCogdGhlIGV4Y19pbmZvIGFyZ3VtZW50ISkgYW5kIHJldHVybiBhbgorICAgIGl0ZXJhdG9yLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgYXBwX2l0ZXIgPSBhcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICBleGNlcHQgY2F0Y2g6CisgICAgICAgIHJldHVybiBlcnJvcl9jYWxsYmFja19hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UsIHN5cy5leGNfaW5mbygpKQorICAgIGlmIHR5cGUoYXBwX2l0ZXIpIGluIChsaXN0LCB0dXBsZSk6CisgICAgICAgICMgVGhlc2Ugd29uJ3QgcHJvZHVjZSBleGNlcHRpb25zCisgICAgICAgIGlmIG9rX2NhbGxiYWNrIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgb2tfY2FsbGJhY2soKQorICAgICAgICByZXR1cm4gYXBwX2l0ZXIKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gX3dyYXBfYXBwX2l0ZXJfYXBwKAorICAgICAgICAgICAgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UsIGFwcF9pdGVyLAorICAgICAgICAgICAgZXJyb3JfY2FsbGJhY2tfYXBwLCBva19jYWxsYmFjaywgY2F0Y2g9Y2F0Y2gpCisKK2NsYXNzIF93cmFwX2FwcF9pdGVyX2FwcChvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlLCBhcHBfaXRlcmFibGUsCisgICAgICAgICAgICAgICAgIGVycm9yX2NhbGxiYWNrX2FwcCwgb2tfY2FsbGJhY2ssIGNhdGNoPUV4Y2VwdGlvbik6CisgICAgICAgIHNlbGYuZW52aXJvbiA9IGVudmlyb24KKyAgICAgICAgc2VsZi5zdGFydF9yZXNwb25zZSA9IHN0YXJ0X3Jlc3BvbnNlCisgICAgICAgIHNlbGYuYXBwX2l0ZXJhYmxlID0gYXBwX2l0ZXJhYmxlCisgICAgICAgIHNlbGYuYXBwX2l0ZXIgPSBpdGVyKGFwcF9pdGVyYWJsZSkKKyAgICAgICAgc2VsZi5lcnJvcl9jYWxsYmFja19hcHAgPSBlcnJvcl9jYWxsYmFja19hcHAKKyAgICAgICAgc2VsZi5va19jYWxsYmFjayA9IG9rX2NhbGxiYWNrCisgICAgICAgIHNlbGYuY2F0Y2ggPSBjYXRjaAorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuYXBwX2l0ZXJhYmxlLCAnY2xvc2UnKToKKyAgICAgICAgICAgIHNlbGYuY2xvc2UgPSBzZWxmLmFwcF9pdGVyYWJsZS5jbG9zZQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmFwcF9pdGVyLm5leHQoKQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgIGlmIHNlbGYub2tfY2FsbGJhY2s6CisgICAgICAgICAgICAgICAgc2VsZi5va19jYWxsYmFjaygpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgc2VsZi5jYXRjaDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5hcHBfaXRlcmFibGUsICdjbG9zZScpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hcHBfaXRlcmFibGUuY2xvc2UoKQorICAgICAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICAgICAgIyBAQDogUHJpbnQgdG8gd3NnaS5lcnJvcnM/CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIG5ld19hcHBfaXRlcmFibGUgPSBzZWxmLmVycm9yX2NhbGxiYWNrX2FwcCgKKyAgICAgICAgICAgICAgICBzZWxmLmVudmlyb24sIHNlbGYuc3RhcnRfcmVzcG9uc2UsIHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAgYXBwX2l0ZXIgPSBpdGVyKG5ld19hcHBfaXRlcmFibGUpCisgICAgICAgICAgICBpZiBoYXNhdHRyKG5ld19hcHBfaXRlcmFibGUsICdjbG9zZScpOgorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UgPSBuZXdfYXBwX2l0ZXJhYmxlLmNsb3NlCisgICAgICAgICAgICBzZWxmLm5leHQgPSBhcHBfaXRlci5uZXh0CisgICAgICAgICAgICByZXR1cm4gc2VsZi5uZXh0KCkKKworZGVmIHJhd19pbnRlcmFjdGl2ZShhcHBsaWNhdGlvbiwgcGF0aD0nJywgcmFpc2Vfb25fd3NnaV9lcnJvcj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgKiplbnZpcm9uKToKKyAgICAiIiIKKyAgICBSdW5zIHRoZSBhcHBsaWNhdGlvbiBpbiBhIGZha2UgZW52aXJvbm1lbnQuCisgICAgIiIiCisgICAgYXNzZXJ0ICJwYXRoX2luZm8iIG5vdCBpbiBlbnZpcm9uLCAiYXJndW1lbnQgbGlzdCBjaGFuZ2VkIgorICAgIGlmIHJhaXNlX29uX3dzZ2lfZXJyb3I6CisgICAgICAgIGVycm9ycyA9IEVycm9yUmFpc2VyKCkKKyAgICBlbHNlOgorICAgICAgICBlcnJvcnMgPSBzaXguQnl0ZXNJTygpCisgICAgYmFzaWNfZW52aXJvbiA9IHsKKyAgICAgICAgIyBtYW5kYXRvcnkgQ0dJIHZhcmlhYmxlcworICAgICAgICAnUkVRVUVTVF9NRVRIT0QnOiAnR0VUJywgICAgICMgYWx3YXlzIG1hbmRhdG9yeQorICAgICAgICAnU0NSSVBUX05BTUUnOiAnJywgICAgICAgICAgICMgbWF5IGJlIGVtcHR5IGlmIGFwcCBpcyBhdCB0aGUgcm9vdAorICAgICAgICAnUEFUSF9JTkZPJzogJycsICAgICAgICAgICAgICMgbWF5IGJlIGVtcHR5IGlmIGF0IHJvb3Qgb2YgYXBwCisgICAgICAgICdTRVJWRVJfTkFNRSc6ICdsb2NhbGhvc3QnLCAgIyBhbHdheXMgbWFuZGF0b3J5CisgICAgICAgICdTRVJWRVJfUE9SVCc6ICc4MCcsICAgICAgICAgIyBhbHdheXMgbWFuZGF0b3J5CisgICAgICAgICdTRVJWRVJfUFJPVE9DT0wnOiAnSFRUUC8xLjAnLAorICAgICAgICAjIG1hbmRhdG9yeSB3c2dpIHZhcmlhYmxlcworICAgICAgICAnd3NnaS52ZXJzaW9uJzogKDEsIDApLAorICAgICAgICAnd3NnaS51cmxfc2NoZW1lJzogJ2h0dHAnLAorICAgICAgICAnd3NnaS5pbnB1dCc6IHNpeC5CeXRlc0lPKCksCisgICAgICAgICd3c2dpLmVycm9ycyc6IGVycm9ycywKKyAgICAgICAgJ3dzZ2kubXVsdGl0aHJlYWQnOiBGYWxzZSwKKyAgICAgICAgJ3dzZ2kubXVsdGlwcm9jZXNzJzogRmFsc2UsCisgICAgICAgICd3c2dpLnJ1bl9vbmNlJzogRmFsc2UsCisgICAgICAgIH0KKyAgICBpZiBwYXRoOgorICAgICAgICAoXywgXywgcGF0aF9pbmZvLCBxdWVyeSwgZnJhZ21lbnQpID0gdXJsc3BsaXQoc3RyKHBhdGgpKQorICAgICAgICBwYXRoX2luZm8gPSB1bnF1b3RlKHBhdGhfaW5mbykKKyAgICAgICAgIyB1cmxzcGxpdCByZXR1cm5zIHVuaWNvZGUgc28gY29lcmNlIGl0IGJhY2sgdG8gc3RyCisgICAgICAgIHBhdGhfaW5mbywgcXVlcnkgPSBzdHIocGF0aF9pbmZvKSwgc3RyKHF1ZXJ5KQorICAgICAgICBiYXNpY19lbnZpcm9uWydQQVRIX0lORk8nXSA9IHBhdGhfaW5mbworICAgICAgICBpZiBxdWVyeToKKyAgICAgICAgICAgIGJhc2ljX2Vudmlyb25bJ1FVRVJZX1NUUklORyddID0gcXVlcnkKKyAgICBmb3IgbmFtZSwgdmFsdWUgaW4gZW52aXJvbi5pdGVtcygpOgorICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKCdfXycsICcuJykKKyAgICAgICAgYmFzaWNfZW52aXJvbltuYW1lXSA9IHZhbHVlCisgICAgaWYgKCdTRVJWRVJfTkFNRScgaW4gYmFzaWNfZW52aXJvbgorICAgICAgICBhbmQgJ0hUVFBfSE9TVCcgbm90IGluIGJhc2ljX2Vudmlyb24pOgorICAgICAgICBiYXNpY19lbnZpcm9uWydIVFRQX0hPU1QnXSA9IGJhc2ljX2Vudmlyb25bJ1NFUlZFUl9OQU1FJ10KKyAgICBpc3RyZWFtID0gYmFzaWNfZW52aXJvblsnd3NnaS5pbnB1dCddCisgICAgaWYgaXNpbnN0YW5jZShpc3RyZWFtLCBieXRlcyk6CisgICAgICAgIGJhc2ljX2Vudmlyb25bJ3dzZ2kuaW5wdXQnXSA9IHNpeC5CeXRlc0lPKGlzdHJlYW0pCisgICAgICAgIGJhc2ljX2Vudmlyb25bJ0NPTlRFTlRfTEVOR1RIJ10gPSBsZW4oaXN0cmVhbSkKKyAgICBkYXRhID0ge30KKyAgICBvdXRwdXQgPSBbXQorICAgIGhlYWRlcnNfc2V0ID0gW10KKyAgICBoZWFkZXJzX3NlbnQgPSBbXQorICAgIGRlZiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICBpZiBleGNfaW5mbzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBoZWFkZXJzX3NlbnQ6CisgICAgICAgICAgICAgICAgICAgICMgUmUtcmFpc2Ugb3JpZ2luYWwgZXhjZXB0aW9uIG9ubHkgaWYgaGVhZGVycyBzZW50CisgICAgICAgICAgICAgICAgICAgIHNpeC5yZXJhaXNlKGV4Y19pbmZvWzBdLCBleGNfaW5mb1sxXSwgZXhjX2luZm9bMl0pCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICMgYXZvaWQgZGFuZ2xpbmcgY2lyY3VsYXIgcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgZXhjX2luZm8gPSBOb25lCisgICAgICAgIGVsaWYgaGVhZGVyc19zZXQ6CisgICAgICAgICAgICAjIFlvdSBjYW5ub3Qgc2V0IHRoZSBoZWFkZXJzIG1vcmUgdGhhbiBvbmNlLCB1bmxlc3MgdGhlCisgICAgICAgICAgICAjIGV4Y19pbmZvIGlzIHByb3ZpZGVkLgorICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIkhlYWRlcnMgYWxyZWFkeSBzZXQgYW5kIG5vIGV4Y19pbmZvISIpCisgICAgICAgIGhlYWRlcnNfc2V0LmFwcGVuZChUcnVlKQorICAgICAgICBkYXRhWydzdGF0dXMnXSA9IHN0YXR1cworICAgICAgICBkYXRhWydoZWFkZXJzJ10gPSBoZWFkZXJzCisgICAgICAgIHJldHVybiBvdXRwdXQuYXBwZW5kCisgICAgYXBwX2l0ZXIgPSBhcHBsaWNhdGlvbihiYXNpY19lbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICB0cnk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBzIGluIGFwcF9pdGVyOgorICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIHNpeC5iaW5hcnlfdHlwZSk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGFwcF9pdGVyIHJlc3BvbnNlIGNhbiBvbmx5IGNvbnRhaW4gYnl0ZXMgKG5vdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAidW5pY29kZSk7IGdvdDogJXIiICUgcykKKyAgICAgICAgICAgICAgICBoZWFkZXJzX3NlbnQuYXBwZW5kKFRydWUpCisgICAgICAgICAgICAgICAgaWYgbm90IGhlYWRlcnNfc2V0OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiQ29udGVudCBzZW50IHcvbyBoZWFkZXJzISIpCisgICAgICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChzKQorICAgICAgICBleGNlcHQgVHlwZUVycm9yIGFzIGU6CisgICAgICAgICAgICAjIFR5cGljYWxseSAiaXRlcmF0aW9uIG92ZXIgbm9uLXNlcXVlbmNlIiwgc28gd2Ugd2FudAorICAgICAgICAgICAgIyB0byBnaXZlIGJldHRlciBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uLi4KKyAgICAgICAgICAgIGUuYXJncyA9ICgoZS5hcmdzWzBdICsgJyBpdGVyYWJsZTogJXInICUgYXBwX2l0ZXIpLCkgKyBlLmFyZ3NbMTpdCisgICAgICAgICAgICByYWlzZQorICAgIGZpbmFsbHk6CisgICAgICAgIGlmIGhhc2F0dHIoYXBwX2l0ZXIsICdjbG9zZScpOgorICAgICAgICAgICAgYXBwX2l0ZXIuY2xvc2UoKQorICAgIHJldHVybiAoZGF0YVsnc3RhdHVzJ10sIGRhdGFbJ2hlYWRlcnMnXSwgYicnLmpvaW4ob3V0cHV0KSwKKyAgICAgICAgICAgIGVycm9ycy5nZXR2YWx1ZSgpKQorCitjbGFzcyBFcnJvclJhaXNlcihvYmplY3QpOgorCisgICAgZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgd3JpdGUoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoCisgICAgICAgICAgICAiTm8gZXJyb3JzIHNob3VsZCBiZSB3cml0dGVuIChnb3Q6ICVyKSIgJSB2YWx1ZSkKKworICAgIGRlZiB3cml0ZWxpbmVzKHNlbGYsIHNlcSk6CisgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAorICAgICAgICAgICAgIk5vIGVycm9ycyBzaG91bGQgYmUgd3JpdHRlbiAoZ290IGxpbmVzOiAlcykiICUgbGlzdChzZXEpKQorCisgICAgZGVmIGdldHZhbHVlKHNlbGYpOgorICAgICAgICByZXR1cm4gJycKKworZGVmIGludGVyYWN0aXZlKCphcmdzLCAqKmt3KToKKyAgICAiIiIKKyAgICBSdW5zIHRoZSBhcHBsaWNhdGlvbiBpbnRlcmF0aXZlbHksIHdyYXBwaW5nIGByYXdfaW50ZXJhY3RpdmVgIGJ1dAorICAgIHJldHVybmluZyB0aGUgb3V0cHV0IGluIGEgZm9ybWF0dGVkIHdheS4KKyAgICAiIiIKKyAgICBzdGF0dXMsIGhlYWRlcnMsIGNvbnRlbnQsIGVycm9ycyA9IHJhd19pbnRlcmFjdGl2ZSgqYXJncywgKiprdykKKyAgICBmdWxsID0gU3RyaW5nSU8oKQorICAgIGlmIGVycm9yczoKKyAgICAgICAgZnVsbC53cml0ZSgnRXJyb3JzOlxuJykKKyAgICAgICAgZnVsbC53cml0ZShlcnJvcnMuc3RyaXAoKSkKKyAgICAgICAgZnVsbC53cml0ZSgnXG4tLS0tLS0tLS0tZW5kIGVycm9yc1xuJykKKyAgICBmdWxsLndyaXRlKHN0YXR1cyArICdcbicpCisgICAgZm9yIG5hbWUsIHZhbHVlIGluIGhlYWRlcnM6CisgICAgICAgIGZ1bGwud3JpdGUoJyVzOiAlc1xuJyAlIChuYW1lLCB2YWx1ZSkpCisgICAgZnVsbC53cml0ZSgnXG4nKQorICAgIGZ1bGwud3JpdGUoY29udGVudCkKKyAgICByZXR1cm4gZnVsbC5nZXR2YWx1ZSgpCitpbnRlcmFjdGl2ZS5wcm94eSA9ICdyYXdfaW50ZXJhY3RpdmUnCisKK2RlZiBkdW1wX2Vudmlyb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICIiIgorICAgIEFwcGxpY2F0aW9uIHdoaWNoIHNpbXBseSBkdW1wcyB0aGUgY3VycmVudCBlbnZpcm9ubWVudAorICAgIHZhcmlhYmxlcyBvdXQgYXMgYSBwbGFpbiB0ZXh0IHJlc3BvbnNlLgorICAgICIiIgorICAgIG91dHB1dCA9IFtdCisgICAga2V5cyA9IGxpc3QoZW52aXJvbi5rZXlzKCkpCisgICAga2V5cy5zb3J0KCkKKyAgICBmb3IgayBpbiBrZXlzOgorICAgICAgICB2ID0gc3RyKGVudmlyb25ba10pLnJlcGxhY2UoIlxuIiwiXG4gICAgIikKKyAgICAgICAgb3V0cHV0LmFwcGVuZCgiJXM6ICVzXG4iICUgKGssIHYpKQorICAgIG91dHB1dC5hcHBlbmQoIlxuIikKKyAgICBjb250ZW50X2xlbmd0aCA9IGVudmlyb24uZ2V0KCJDT05URU5UX0xFTkdUSCIsICcnKQorICAgIGlmIGNvbnRlbnRfbGVuZ3RoOgorICAgICAgICBvdXRwdXQuYXBwZW5kKGVudmlyb25bJ3dzZ2kuaW5wdXQnXS5yZWFkKGludChjb250ZW50X2xlbmd0aCkpKQorICAgICAgICBvdXRwdXQuYXBwZW5kKCJcbiIpCisgICAgb3V0cHV0ID0gIiIuam9pbihvdXRwdXQpCisgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmVuY29kZSgndXRmOCcpCisgICAgaGVhZGVycyA9IFsoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJyksCisgICAgICAgICAgICAgICAoJ0NvbnRlbnQtTGVuZ3RoJywgc3RyKGxlbihvdXRwdXQpKSldCisgICAgc3RhcnRfcmVzcG9uc2UoIjIwMCBPSyIsIGhlYWRlcnMpCisgICAgcmV0dXJuIFtvdXRwdXRdCisKK2RlZiBzZW5kX2ZpbGUoZmlsZW5hbWUpOgorICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICJ3c2dpbGliLnNlbmRfZmlsZSBoYXMgYmVlbiBtb3ZlZCB0byBwYXN0ZS5maWxlYXBwLkZpbGVBcHAiLAorICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgZnJvbSBwYXN0ZSBpbXBvcnQgZmlsZWFwcAorICAgIHJldHVybiBmaWxlYXBwLkZpbGVBcHAoZmlsZW5hbWUpCisKK2RlZiBjYXB0dXJlX291dHB1dChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSwgYXBwbGljYXRpb24pOgorICAgICIiIgorICAgIFJ1bnMgYXBwbGljYXRpb24gd2l0aCBlbnZpcm9uIGFuZCBzdGFydF9yZXNwb25zZSwgYW5kIGNhcHR1cmVzCisgICAgc3RhdHVzLCBoZWFkZXJzLCBhbmQgYm9keS4KKworICAgIFNlbmRzIHN0YXR1cyBhbmQgaGVhZGVyLCBidXQgKm5vdCogYm9keS4gIFJldHVybnMgKHN0YXR1cywKKyAgICBoZWFkZXJzLCBib2R5KS4gIFR5cGljYWxseSB0aGlzIGlzIHVzZWQgbGlrZToKKworICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBkZWYgZGVodG1saWZ5aW5nX21pZGRsZXdhcmUoYXBwbGljYXRpb24pOgorICAgICAgICAgICAgZGVmIHJlcGxhY2VtZW50X2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCBoZWFkZXJzLCBib2R5ID0gY2FwdHVyZV9vdXRwdXQoCisgICAgICAgICAgICAgICAgICAgIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlLCBhcHBsaWNhdGlvbikKKyAgICAgICAgICAgICAgICBjb250ZW50X3R5cGUgPSBoZWFkZXJfdmFsdWUoaGVhZGVycywgJ2NvbnRlbnQtdHlwZScpCisgICAgICAgICAgICAgICAgaWYgKG5vdCBjb250ZW50X3R5cGUKKyAgICAgICAgICAgICAgICAgICAgb3Igbm90IGNvbnRlbnRfdHlwZS5zdGFydHN3aXRoKCd0ZXh0L2h0bWwnKSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBbYm9keV0KKyAgICAgICAgICAgICAgICBib2R5ID0gcmUuc3ViKHInPC4qPz4nLCAnJywgYm9keSkKKyAgICAgICAgICAgICAgICByZXR1cm4gW2JvZHldCisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRfYXBwCisKKyAgICAiIiIKKyAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAnd3NnaWxpYi5jYXB0dXJlX291dHB1dCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yICcKKyAgICAgICAgJ29mIHdzZ2lsaWIuaW50ZXJjZXB0X291dHB1dCcsCisgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICBkYXRhID0gW10KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgZGVmIHJlcGxhY2VtZW50X3N0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm89Tm9uZSk6CisgICAgICAgIGlmIGRhdGE6CisgICAgICAgICAgICBkYXRhWzpdID0gW10KKyAgICAgICAgZGF0YS5hcHBlbmQoc3RhdHVzKQorICAgICAgICBkYXRhLmFwcGVuZChoZWFkZXJzKQorICAgICAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvKQorICAgICAgICByZXR1cm4gb3V0cHV0LndyaXRlCisgICAgYXBwX2l0ZXIgPSBhcHBsaWNhdGlvbihlbnZpcm9uLCByZXBsYWNlbWVudF9zdGFydF9yZXNwb25zZSkKKyAgICB0cnk6CisgICAgICAgIGZvciBpdGVtIGluIGFwcF9pdGVyOgorICAgICAgICAgICAgb3V0cHV0LndyaXRlKGl0ZW0pCisgICAgZmluYWxseToKKyAgICAgICAgaWYgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICBhcHBfaXRlci5jbG9zZSgpCisgICAgaWYgbm90IGRhdGE6CisgICAgICAgIGRhdGEuYXBwZW5kKE5vbmUpCisgICAgaWYgbGVuKGRhdGEpIDwgMjoKKyAgICAgICAgZGF0YS5hcHBlbmQoTm9uZSkKKyAgICBkYXRhLmFwcGVuZChvdXRwdXQuZ2V0dmFsdWUoKSkKKyAgICByZXR1cm4gZGF0YQorCitkZWYgaW50ZXJjZXB0X291dHB1dChlbnZpcm9uLCBhcHBsaWNhdGlvbiwgY29uZGl0aW9uYWw9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlPU5vbmUpOgorICAgICIiIgorICAgIFJ1bnMgYXBwbGljYXRpb24gd2l0aCBlbnZpcm9uIGFuZCBjYXB0dXJlcyBzdGF0dXMsIGhlYWRlcnMsIGFuZAorICAgIGJvZHkuICBOb25lIGFyZSBzZW50IG9uOyB5b3UgbXVzdCBzZW5kIHRoZW0gb24geW91cnNlbGYgKHVubGlrZQorICAgIGBgY2FwdHVyZV9vdXRwdXRgYCkKKworICAgIFR5cGljYWxseSB0aGlzIGlzIHVzZWQgbGlrZToKKworICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBkZWYgZGVodG1saWZ5aW5nX21pZGRsZXdhcmUoYXBwbGljYXRpb24pOgorICAgICAgICAgICAgZGVmIHJlcGxhY2VtZW50X2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCBoZWFkZXJzLCBib2R5ID0gaW50ZXJjZXB0X291dHB1dCgKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvbiwgYXBwbGljYXRpb24pCisgICAgICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzKQorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9IGhlYWRlcl92YWx1ZShoZWFkZXJzLCAnY29udGVudC10eXBlJykKKyAgICAgICAgICAgICAgICBpZiAobm90IGNvbnRlbnRfdHlwZQorICAgICAgICAgICAgICAgICAgICBvciBub3QgY29udGVudF90eXBlLnN0YXJ0c3dpdGgoJ3RleHQvaHRtbCcpKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtib2R5XQorICAgICAgICAgICAgICAgIGJvZHkgPSByZS5zdWIocic8Lio/PicsICcnLCBib2R5KQorICAgICAgICAgICAgICAgIHJldHVybiBbYm9keV0KKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudF9hcHAKKworICAgIEEgdGhpcmQgb3B0aW9uYWwgYXJndW1lbnQgYGBjb25kaXRpb25hbGBgIHNob3VsZCBiZSBhIGZ1bmN0aW9uCisgICAgdGhhdCB0YWtlcyBgYGNvbmRpdGlvbmFsKHN0YXR1cywgaGVhZGVycylgYCBhbmQgcmV0dXJucyBGYWxzZSBpZgorICAgIHRoZSByZXF1ZXN0IHNob3VsZCBub3QgYmUgaW50ZXJjZXB0ZWQuICBJbiB0aGF0IGNhc2UKKyAgICBgYHN0YXJ0X3Jlc3BvbnNlYGAgd2lsbCBiZSBjYWxsZWQgYW5kIGBgKE5vbmUsIE5vbmUsIGFwcF9pdGVyKWBgCisgICAgd2lsbCBiZSByZXR1cm5lZC4gIFlvdSBtdXN0IGRldGVjdCB0aGF0IGluIHlvdXIgY29kZSBhbmQgcmV0dXJuCisgICAgdGhlIGFwcF9pdGVyLCBsaWtlOgorCisgICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICAgIGRlZiBkZWh0bWxpZnlpbmdfbWlkZGxld2FyZShhcHBsaWNhdGlvbik6CisgICAgICAgICAgICBkZWYgcmVwbGFjZW1lbnRfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGJvZHkgPSBpbnRlcmNlcHRfb3V0cHV0KAorICAgICAgICAgICAgICAgICAgICBlbnZpcm9uLCBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHMsIGg6IGhlYWRlcl92YWx1ZShoZWFkZXJzLCAnY29udGVudC10eXBlJykuc3RhcnRzd2l0aCgndGV4dC9odG1sJyksCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgIGlmIHN0YXR1cyBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm9keQorICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycykKKyAgICAgICAgICAgICAgICBib2R5ID0gcmUuc3ViKHInPC4qPz4nLCAnJywgYm9keSkKKyAgICAgICAgICAgICAgICByZXR1cm4gW2JvZHldCisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnRfYXBwCisgICAgIiIiCisgICAgaWYgY29uZGl0aW9uYWwgaXMgbm90IE5vbmUgYW5kIHN0YXJ0X3Jlc3BvbnNlIGlzIE5vbmU6CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICJJZiB5b3UgcHJvdmlkZSBjb25kaXRpb25hbCB5b3UgbXVzdCBhbHNvIHByb3ZpZGUgIgorICAgICAgICAgICAgInN0YXJ0X3Jlc3BvbnNlIikKKyAgICBkYXRhID0gW10KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgZGVmIHJlcGxhY2VtZW50X3N0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm89Tm9uZSk6CisgICAgICAgIGlmIGNvbmRpdGlvbmFsIGlzIG5vdCBOb25lIGFuZCBub3QgY29uZGl0aW9uYWwoc3RhdHVzLCBoZWFkZXJzKToKKyAgICAgICAgICAgIGRhdGEuYXBwZW5kKE5vbmUpCisgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbykKKyAgICAgICAgaWYgZGF0YToKKyAgICAgICAgICAgIGRhdGFbOl0gPSBbXQorICAgICAgICBkYXRhLmFwcGVuZChzdGF0dXMpCisgICAgICAgIGRhdGEuYXBwZW5kKGhlYWRlcnMpCisgICAgICAgIHJldHVybiBvdXRwdXQud3JpdGUKKyAgICBhcHBfaXRlciA9IGFwcGxpY2F0aW9uKGVudmlyb24sIHJlcGxhY2VtZW50X3N0YXJ0X3Jlc3BvbnNlKQorICAgIGlmIGRhdGFbMF0gaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIChOb25lLCBOb25lLCBhcHBfaXRlcikKKyAgICB0cnk6CisgICAgICAgIGZvciBpdGVtIGluIGFwcF9pdGVyOgorICAgICAgICAgICAgb3V0cHV0LndyaXRlKGl0ZW0pCisgICAgZmluYWxseToKKyAgICAgICAgaWYgaGFzYXR0cihhcHBfaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgICAgICBhcHBfaXRlci5jbG9zZSgpCisgICAgaWYgbm90IGRhdGE6CisgICAgICAgIGRhdGEuYXBwZW5kKE5vbmUpCisgICAgaWYgbGVuKGRhdGEpIDwgMjoKKyAgICAgICAgZGF0YS5hcHBlbmQoTm9uZSkKKyAgICBkYXRhLmFwcGVuZChvdXRwdXQuZ2V0dmFsdWUoKSkKKyAgICByZXR1cm4gZGF0YQorCisjIyBEZXByZWNhdGlvbiB3YXJuaW5nIHdyYXBwZXI6CisKK2NsYXNzIFJlc3BvbnNlSGVhZGVyRGljdChIZWFkZXJEaWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAiVGhlIGNsYXNzIHdzZ2lsaWIuUmVzcG9uc2VIZWFkZXJEaWN0IGhhcyBiZWVuIG1vdmVkICIKKyAgICAgICAgICAgICJ0byBwYXN0ZS5yZXNwb25zZS5IZWFkZXJEaWN0IiwKKyAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgSGVhZGVyRGljdC5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprdykKKworZGVmIF93YXJuX2RlcHJlY2F0ZWQobmV3X2Z1bmMpOgorICAgIG5ld19uYW1lID0gbmV3X2Z1bmMuZnVuY19uYW1lCisgICAgbmV3X3BhdGggPSBuZXdfZnVuYy5mdW5jX2dsb2JhbHNbJ19fbmFtZV9fJ10gKyAnLicgKyBuZXdfbmFtZQorICAgIGRlZiByZXBsYWNlbWVudCgqYXJncywgKiprdyk6CisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAiVGhlIGZ1bmN0aW9uIHdzZ2lsaWIuJXMgaGFzIGJlZW4gbW92ZWQgdG8gJXMiCisgICAgICAgICAgICAlIChuZXdfbmFtZSwgbmV3X3BhdGgpLAorICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICByZXR1cm4gbmV3X2Z1bmMoKmFyZ3MsICoqa3cpCisgICAgdHJ5OgorICAgICAgICByZXBsYWNlbWVudC5mdW5jX25hbWUgPSBuZXdfZnVuYy5mdW5jX25hbWUKKyAgICBleGNlcHQ6CisgICAgICAgIHBhc3MKKyAgICByZXR1cm4gcmVwbGFjZW1lbnQKKworIyBQdXQgd2FybmluZ3Mgd3JhcHBlciBpbiBwbGFjZSBmb3IgYWxsIHB1YmxpYyBmdW5jdGlvbnMgdGhhdAorIyB3ZXJlIGltcG9ydGVkIGZyb20gZWxzZXdoZXJlOgorCitmb3IgX25hbWUgaW4gX19hbGxfXzoKKyAgICBfZnVuYyA9IGdsb2JhbHMoKVtfbmFtZV0KKyAgICBpZiAoaGFzYXR0cihfZnVuYywgJ2Z1bmNfZ2xvYmFscycpCisgICAgICAgIGFuZCBfZnVuYy5mdW5jX2dsb2JhbHNbJ19fbmFtZV9fJ10gIT0gX19uYW1lX18pOgorICAgICAgICBnbG9iYWxzKClbX25hbWVdID0gX3dhcm5fZGVwcmVjYXRlZChfZnVuYykKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGRvY3Rlc3QudGVzdG1vZCgpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9wYXN0ZS93c2dpd3JhcHBlcnMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvd3NnaXdyYXBwZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiOGY2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcGFzdGUvd3NnaXdyYXBwZXJzLnB5CkBAIC0wLDAgKzEsNTg5IEBACisjIChjKSAyMDA1IElhbiBCaWNraW5nIGFuZCBjb250cmlidXRvcnM7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisiIiJXU0dJIFdyYXBwZXJzIGZvciBhIFJlcXVlc3QgYW5kIFJlc3BvbnNlCisKK1RoZSBXU0dJUmVxdWVzdCBhbmQgV1NHSVJlc3BvbnNlIG9iamVjdHMgYXJlIGxpZ2h0IHdyYXBwZXJzIHRvIG1ha2UgaXQgZWFzaWVyCit0byBkZWFsIHdpdGggYW4gaW5jb21pbmcgcmVxdWVzdCBhbmQgc2VuZGluZyBhIHJlc3BvbnNlLgorIiIiCitpbXBvcnQgcmUKK2ltcG9ydCB3YXJuaW5ncworZnJvbSBwcHJpbnQgaW1wb3J0IHBmb3JtYXQKK3RyeToKKyAgICAjIFB5dGhvbiAzCisgICAgZnJvbSBodHRwLmNvb2tpZXMgaW1wb3J0IFNpbXBsZUNvb2tpZQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgUHl0aG9uIDIKKyAgICBmcm9tIENvb2tpZSBpbXBvcnQgU2ltcGxlQ29va2llCitpbXBvcnQgc2l4CisKK2Zyb20gcGFzdGUucmVxdWVzdCBpbXBvcnQgRW52aXJvbkhlYWRlcnMsIGdldF9jb29raWVfZGljdCwgXAorICAgIHBhcnNlX2RpY3RfcXVlcnlzdHJpbmcsIHBhcnNlX2Zvcm12YXJzCitmcm9tIHBhc3RlLnV0aWwubXVsdGlkaWN0IGltcG9ydCBNdWx0aURpY3QsIFVuaWNvZGVNdWx0aURpY3QKK2Zyb20gcGFzdGUucmVnaXN0cnkgaW1wb3J0IFN0YWNrZWRPYmplY3RQcm94eQorZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgSGVhZGVyRGljdAorZnJvbSBwYXN0ZS53c2dpbGliIGltcG9ydCBlbmNvZGVfdW5pY29kZV9hcHBfaXRlcgorZnJvbSBwYXN0ZS5odHRwaGVhZGVycyBpbXBvcnQgQUNDRVBUX0xBTkdVQUdFCitmcm9tIHBhc3RlLnV0aWwubWltZXBhcnNlIGltcG9ydCBkZXNpcmVkX21hdGNoZXMKKworX19hbGxfXyA9IFsnV1NHSVJlcXVlc3QnLCAnV1NHSVJlc3BvbnNlJ10KKworX0NIQVJTRVRfUkUgPSByZS5jb21waWxlKHInO1xzKmNoYXJzZXQ9KFteO10qKScsIHJlLkkpCisKK2NsYXNzIERlcHJlY2F0ZWRTZXR0aW5ncyhTdGFja2VkT2JqZWN0UHJveHkpOgorICAgIGRlZiBfcHVzaF9vYmplY3Qoc2VsZiwgb2JqKToKKyAgICAgICAgd2FybmluZ3Mud2FybigncGFzdGUud3NnaXdyYXBwZXJzLnNldHRpbmdzIGlzIGRlcHJlY2F0ZWQ6IFBsZWFzZSB1c2UgJworICAgICAgICAgICAgICAgICAgICAgICdwYXN0ZS53c2dpd3JhcHBlcnMuV1NHSVJlcXVlc3QuZGVmYXVsdHMgaW5zdGVhZCcsCisgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAzKQorICAgICAgICBXU0dJUmVzcG9uc2UuZGVmYXVsdHMuX3B1c2hfb2JqZWN0KG9iaikKKyAgICAgICAgU3RhY2tlZE9iamVjdFByb3h5Ll9wdXNoX29iamVjdChzZWxmLCBvYmopCisKKyMgc2V0dGluZ3MgaXMgZGVwcmVjYXRlZDogdXNlIFdTR0lSZXNwb25zZS5kZWZhdWx0cyBpbnN0ZWFkCitzZXR0aW5ncyA9IERlcHJlY2F0ZWRTZXR0aW5ncyhkZWZhdWx0PWRpY3QoKSkKKworY2xhc3MgZW52aXJvbl9nZXR0ZXIob2JqZWN0KToKKyAgICAiIiJGb3IgZGVsZWdhdGluZyBhbiBhdHRyaWJ1dGUgdG8gYSBrZXkgaW4gc2VsZi5lbnZpcm9uLiIiIgorICAgICMgQEA6IEFsc28gX19zZXRfXz8gIFNob3VsZCBzZXR0aW5nIGJlIGFsbG93ZWQ/CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGtleSwgZGVmYXVsdD0nJywgZGVmYXVsdF9mYWN0b3J5PU5vbmUpOgorICAgICAgICBzZWxmLmtleSA9IGtleQorICAgICAgICBzZWxmLmRlZmF1bHQgPSBkZWZhdWx0CisgICAgICAgIHNlbGYuZGVmYXVsdF9mYWN0b3J5ID0gZGVmYXVsdF9mYWN0b3J5CisgICAgZGVmIF9fZ2V0X18oc2VsZiwgb2JqLCB0eXBlPU5vbmUpOgorICAgICAgICBpZiB0eXBlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICBpZiBzZWxmLmtleSBub3QgaW4gb2JqLmVudmlyb246CisgICAgICAgICAgICBpZiBzZWxmLmRlZmF1bHRfZmFjdG9yeToKKyAgICAgICAgICAgICAgICB2YWwgPSBvYmouZW52aXJvbltzZWxmLmtleV0gPSBzZWxmLmRlZmF1bHRfZmFjdG9yeSgpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5kZWZhdWx0CisgICAgICAgIHJldHVybiBvYmouZW52aXJvbltzZWxmLmtleV0KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8UHJveHkgZm9yIFdTR0kgZW52aXJvbiAlciBrZXk+JyAlIHNlbGYua2V5CisKK2NsYXNzIFdTR0lSZXF1ZXN0KG9iamVjdCk6CisgICAgIiIiV1NHSSBSZXF1ZXN0IEFQSSBPYmplY3QKKworICAgIFRoaXMgb2JqZWN0IHJlcHJlc2VudHMgYSBXU0dJIHJlcXVlc3Qgd2l0aCBhIG1vcmUgZnJpZW5kbHkgaW50ZXJmYWNlLgorICAgIFRoaXMgZG9lcyBub3QgZXhwb3NlIGV2ZXJ5IGRldGFpbCBvZiB0aGUgV1NHSSBlbnZpcm9ubWVudCwgYW5kIGF0dGVtcHRzCisgICAgdG8gZXhwcmVzcyBub3RoaW5nIGJleW9uZCB3aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUgZW52aXJvbm1lbnQKKyAgICBkaWN0aW9uYXJ5LgorCisgICAgVGhlIG9ubHkgc3RhdGUgbWFpbnRhaW5lZCBpbiB0aGlzIG9iamVjdCBpcyB0aGUgZGVzaXJlZCBgYGNoYXJzZXRgYCwKKyAgICBpdHMgYXNzb2NpYXRlZCBgYGVycm9yc2BgIGhhbmRsZXIsIGFuZCB0aGUgYGBkZWNvZGVfcGFyYW1fbmFtZXNgYAorICAgIG9wdGlvbi4KKworICAgIFRoZSBpbmNvbWluZyBwYXJhbWV0ZXIgdmFsdWVzIHdpbGwgYmUgYXV0b21hdGljYWxseSBjb2VyY2VkIHRvIHVuaWNvZGUKKyAgICBvYmplY3RzIG9mIHRoZSBgYGNoYXJzZXRgYCBlbmNvZGluZyB3aGVuIGBgY2hhcnNldGBgIGlzIHNldC4gVGhlCisgICAgaW5jb21pbmcgcGFyYW1ldGVyIG5hbWVzIGFyZSBub3QgZGVjb2RlZCB0byB1bmljb2RlIHVubGVzcyB0aGUKKyAgICBgYGRlY29kZV9wYXJhbV9uYW1lc2BgIG9wdGlvbiBpcyBlbmFibGVkLgorCisgICAgV2hlbiB1bmljb2RlIGlzIGV4cGVjdGVkLCBgYGNoYXJzZXRgYCB3aWxsIG92ZXJyaWRkZW4gYnkgdGhlIHRoZQorICAgIHZhbHVlIG9mIHRoZSBgYENvbnRlbnQtVHlwZWBgIGhlYWRlcidzIGNoYXJzZXQgcGFyYW1ldGVyIGlmIG9uZSB3YXMKKyAgICBzcGVjaWZpZWQgYnkgdGhlIGNsaWVudC4KKworICAgIFRoZSBjbGFzcyB2YXJpYWJsZSBgYGRlZmF1bHRzYGAgc3BlY2lmaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgIGBgY2hhcnNldGBgLCBgYGVycm9yc2BgLCBhbmQgYGBsYW5nYXVnZWBgLiBUaGVzZSBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgdGhlCisgICAgY3VycmVudCByZXF1ZXN0IHZpYSB0aGUgcmVnaXN0cnkuCisKKyAgICBUaGUgYGBsYW5ndWFnZWBgIGRlZmF1bHQgdmFsdWUgaXMgY29uc2lkZXJlZCB0aGUgZmFsbGJhY2sgZHVyaW5nIGkxOG4KKyAgICB0cmFuc2xhdGlvbnMgdG8gZW5zdXJlIGluIG9kZCBjYXNlcyB0aGF0IG1peGVkIGxhbmd1YWdlcyBkb24ndCBvY2N1ciBzaG91bGQKKyAgICB0aGUgYGBsYW5ndWFnZWBgIGZpbGUgY29udGFpbiB0aGUgc3RyaW5nIGJ1dCBub3QgYW5vdGhlciBsYW5ndWFnZSBpbiB0aGUKKyAgICBhY2NlcHRlZCBsYW5ndWFnZXMgbGlzdC4gVGhlIGBgbGFuZ3VhZ2VgYCB2YWx1ZSBvbmx5IGFwcGxpZXMgd2hlbiBnZXR0aW5nCisgICAgYSBsaXN0IG9mIGFjY2VwdGVkIGxhbmd1YWdlcyBmcm9tIHRoZSBIVFRQIEFjY2VwdCBoZWFkZXIuCisKKyAgICBUaGlzIGJlaGF2aW9yIGlzIGR1cGxpY2F0ZWQgZnJvbSBBcXVhcml1bSwgYW5kIG1heSBzZWVtIHN0cmFuZ2UgYnV0IGlzCisgICAgdmVyeSB1c2VmdWwuIE5vcm1hbGx5LCBldmVyeXRoaW5nIGluIHRoZSBjb2RlIGlzIGluICJlbi11cyIuICBIb3dldmVyLAorICAgIHRoZSAiZW4tdXMiIHRyYW5zbGF0aW9uIGNhdGFsb2cgaXMgdXN1YWxseSBlbXB0eS4gIElmIHRoZSB1c2VyIHJlcXVlc3RzCisgICAgYGBbImVuLXVzIiwgInpoLWNuIl1gYCBhbmQgYSB0cmFuc2xhdGlvbiBpc24ndCBmb3VuZCBmb3IgYSBzdHJpbmcgaW4KKyAgICAiZW4tdXMiLCB5b3UgZG9uJ3Qgd2FudCBnZXR0ZXh0IHRvIGZhbGxiYWNrIHRvICJ6aC1jbiIuICBZb3Ugd2FudCBpdCB0bworICAgIGp1c3QgdXNlIHRoZSBzdHJpbmcgaXRzZWxmLiAgSGVuY2UsIGlmIGEgc3RyaW5nIGlzbid0IGZvdW5kIGluIHRoZQorICAgIGBgbGFuZ3VhZ2VgYCBjYXRhbG9nLCB0aGUgc3RyaW5nIGluIHRoZSBzb3VyY2UgY29kZSB3aWxsIGJlIHVzZWQuCisKKyAgICAqQWxsKiBvdGhlciBzdGF0ZSBpcyBrZXB0IGluIHRoZSBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5OyB0aGlzIGlzCisgICAgZXNzZW50aWFsIGZvciBpbnRlcm9wZXJhYmlsaXR5LgorCisgICAgWW91IGFyZSBmcmVlIHRvIHN1YmNsYXNzIHRoaXMgb2JqZWN0LgorCisgICAgIiIiCisgICAgZGVmYXVsdHMgPSBTdGFja2VkT2JqZWN0UHJveHkoZGVmYXVsdD1kaWN0KGNoYXJzZXQ9Tm9uZSwgZXJyb3JzPSdyZXBsYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlX3BhcmFtX25hbWVzPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZT0nZW4tdXMnKSkKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZW52aXJvbik6CisgICAgICAgIHNlbGYuZW52aXJvbiA9IGVudmlyb24KKyAgICAgICAgIyBUaGlzIGlzbid0ICJzdGF0ZSIgcmVhbGx5LCBzaW5jZSB0aGUgb2JqZWN0IGlzIGRlcml2YXRpdmU6CisgICAgICAgIHNlbGYuaGVhZGVycyA9IEVudmlyb25IZWFkZXJzKGVudmlyb24pCisKKyAgICAgICAgZGVmYXVsdHMgPSBzZWxmLmRlZmF1bHRzLl9jdXJyZW50X29iaigpCisgICAgICAgIHNlbGYuY2hhcnNldCA9IGRlZmF1bHRzLmdldCgnY2hhcnNldCcpCisgICAgICAgIGlmIHNlbGYuY2hhcnNldDoKKyAgICAgICAgICAgICMgVGhlcmUncyBhIGNoYXJzZXQ6IHBhcmFtcyB3aWxsIGJlIGNvZXJjZWQgdG8gdW5pY29kZS4gSW4gdGhhdAorICAgICAgICAgICAgIyBjYXNlLCBhdHRlbXB0IHRvIHVzZSB0aGUgY2hhcnNldCBzcGVjaWZpZWQgYnkgdGhlIGJyb3dzZXIKKyAgICAgICAgICAgIGJyb3dzZXJfY2hhcnNldCA9IHNlbGYuZGV0ZXJtaW5lX2Jyb3dzZXJfY2hhcnNldCgpCisgICAgICAgICAgICBpZiBicm93c2VyX2NoYXJzZXQ6CisgICAgICAgICAgICAgICAgc2VsZi5jaGFyc2V0ID0gYnJvd3Nlcl9jaGFyc2V0CisgICAgICAgIHNlbGYuZXJyb3JzID0gZGVmYXVsdHMuZ2V0KCdlcnJvcnMnLCAnc3RyaWN0JykKKyAgICAgICAgc2VsZi5kZWNvZGVfcGFyYW1fbmFtZXMgPSBkZWZhdWx0cy5nZXQoJ2RlY29kZV9wYXJhbV9uYW1lcycsIEZhbHNlKQorICAgICAgICBzZWxmLl9sYW5ndWFnZXMgPSBOb25lCisKKyAgICBib2R5ID0gZW52aXJvbl9nZXR0ZXIoJ3dzZ2kuaW5wdXQnKQorICAgIHNjaGVtZSA9IGVudmlyb25fZ2V0dGVyKCd3c2dpLnVybF9zY2hlbWUnKQorICAgIG1ldGhvZCA9IGVudmlyb25fZ2V0dGVyKCdSRVFVRVNUX01FVEhPRCcpCisgICAgc2NyaXB0X25hbWUgPSBlbnZpcm9uX2dldHRlcignU0NSSVBUX05BTUUnKQorICAgIHBhdGhfaW5mbyA9IGVudmlyb25fZ2V0dGVyKCdQQVRIX0lORk8nKQorCisgICAgZGVmIHVybHZhcnMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYW55IHZhcmlhYmxlcyBtYXRjaGVkIGluIHRoZSBVUkwgKGUuZy4sCisgICAgICAgIGBgd3NnaW9yZy5yb3V0aW5nX2FyZ3NgYCkuCisgICAgICAgICIiIgorICAgICAgICBpZiAncGFzdGUudXJsdmFycycgaW4gc2VsZi5lbnZpcm9uOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW52aXJvblsncGFzdGUudXJsdmFycyddCisgICAgICAgIGVsaWYgJ3dzZ2lvcmcucm91dGluZ19hcmdzJyBpbiBzZWxmLmVudmlyb246CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uWyd3c2dpb3JnLnJvdXRpbmdfYXJncyddWzFdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4ge30KKyAgICB1cmx2YXJzID0gcHJvcGVydHkodXJsdmFycywgZG9jPXVybHZhcnMuX19kb2NfXykKKworICAgIGRlZiBpc194aHIoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYSBib29sZWFuIGlmIFgtUmVxdWVzdGVkLVdpdGggaXMgcHJlc2VudCBhbmQgYSBYTUxIdHRwUmVxdWVzdCIiIgorICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uLmdldCgnSFRUUF9YX1JFUVVFU1RFRF9XSVRIJywgJycpID09ICdYTUxIdHRwUmVxdWVzdCcKKyAgICBpc194aHIgPSBwcm9wZXJ0eShpc194aHIsIGRvYz1pc194aHIuX19kb2NfXykKKworICAgIGRlZiBob3N0KHNlbGYpOgorICAgICAgICAiIiJIb3N0IG5hbWUgcHJvdmlkZWQgaW4gSFRUUF9IT1NULCB3aXRoIGZhbGwtYmFjayB0byBTRVJWRVJfTkFNRSIiIgorICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uLmdldCgnSFRUUF9IT1NUJywgc2VsZi5lbnZpcm9uLmdldCgnU0VSVkVSX05BTUUnKSkKKyAgICBob3N0ID0gcHJvcGVydHkoaG9zdCwgZG9jPWhvc3QuX19kb2NfXykKKworICAgIGRlZiBsYW5ndWFnZXMoc2VsZik6CisgICAgICAgICIiIlJldHVybiBhIGxpc3Qgb2YgcHJlZmVycmVkIGxhbmd1YWdlcywgbW9zdCBwcmVmZXJyZWQgZmlyc3QuCisKKyAgICAgICAgVGhlIGxpc3QgbWF5IGJlIGVtcHR5LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fbGFuZ3VhZ2VzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xhbmd1YWdlcworICAgICAgICBhY2NlcHRMYW5ndWFnZSA9IHNlbGYuZW52aXJvbi5nZXQoJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJykKKyAgICAgICAgbGFuZ3MgPSBBQ0NFUFRfTEFOR1VBR0UucGFyc2Uoc2VsZi5lbnZpcm9uKQorICAgICAgICBmYWxsYmFjayA9IHNlbGYuZGVmYXVsdHMuZ2V0KCdsYW5ndWFnZScsICdlbi11cycpCisgICAgICAgIGlmIG5vdCBmYWxsYmFjazoKKyAgICAgICAgICAgIHJldHVybiBsYW5ncworICAgICAgICBpZiBmYWxsYmFjayBub3QgaW4gbGFuZ3M6CisgICAgICAgICAgICBsYW5ncy5hcHBlbmQoZmFsbGJhY2spCisgICAgICAgIGluZGV4ID0gbGFuZ3MuaW5kZXgoZmFsbGJhY2spCisgICAgICAgIGxhbmdzW2luZGV4KzE6XSA9IFtdCisgICAgICAgIHNlbGYuX2xhbmd1YWdlcyA9IGxhbmdzCisgICAgICAgIHJldHVybiBzZWxmLl9sYW5ndWFnZXMKKyAgICBsYW5ndWFnZXMgPSBwcm9wZXJ0eShsYW5ndWFnZXMsIGRvYz1sYW5ndWFnZXMuX19kb2NfXykKKworICAgIGRlZiBfR0VUKHNlbGYpOgorICAgICAgICByZXR1cm4gcGFyc2VfZGljdF9xdWVyeXN0cmluZyhzZWxmLmVudmlyb24pCisKKyAgICBkZWYgR0VUKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRGljdGlvbmFyeS1saWtlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIFFVRVJZX1NUUklORworICAgICAgICBwYXJhbWV0ZXJzLiBBbHdheXMgcHJlc2VudCwgaWYgcG9zc2libHkgZW1wdHkuCisKKyAgICAgICAgSWYgdGhlIHNhbWUga2V5IGlzIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IHN0cmluZyBtdWx0aXBsZSB0aW1lcywgYQorICAgICAgICBsaXN0IG9mIGl0cyB2YWx1ZXMgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBgYE11bHRpRGljdGBgIHZpYQorICAgICAgICB0aGUgYGBnZXRhbGxgYCBtZXRob2QuCisKKyAgICAgICAgUmV0dXJucyBhIGBgTXVsdGlEaWN0YGAgY29udGFpbmVyIG9yIGEgYGBVbmljb2RlTXVsdGlEaWN0YGAgd2hlbgorICAgICAgICBgYGNoYXJzZXRgYCBpcyBzZXQuCisgICAgICAgICIiIgorICAgICAgICBwYXJhbXMgPSBzZWxmLl9HRVQoKQorICAgICAgICBpZiBzZWxmLmNoYXJzZXQ6CisgICAgICAgICAgICBwYXJhbXMgPSBVbmljb2RlTXVsdGlEaWN0KHBhcmFtcywgZW5jb2Rpbmc9c2VsZi5jaGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM9c2VsZi5lcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZV9rZXlzPXNlbGYuZGVjb2RlX3BhcmFtX25hbWVzKQorICAgICAgICByZXR1cm4gcGFyYW1zCisgICAgR0VUID0gcHJvcGVydHkoR0VULCBkb2M9R0VULl9fZG9jX18pCisKKyAgICBkZWYgX1BPU1Qoc2VsZik6CisgICAgICAgIHJldHVybiBwYXJzZV9mb3JtdmFycyhzZWxmLmVudmlyb24sIGluY2x1ZGVfZ2V0X3ZhcnM9RmFsc2UpCisKKyAgICBkZWYgUE9TVChzZWxmKToKKyAgICAgICAgIiIiRGljdGlvbmFyeS1saWtlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIFBPU1QgYm9keS4KKworICAgICAgICBNb3N0IHZhbHVlcyBhcmUgZW5jb2RlZCBzdHJpbmdzLCBvciB1bmljb2RlIHN0cmluZ3Mgd2hlbgorICAgICAgICBgYGNoYXJzZXRgYCBpcyBzZXQuIFRoZXJlIG1heSBhbHNvIGJlIEZpZWxkU3RvcmFnZSBvYmplY3RzCisgICAgICAgIHJlcHJlc2VudGluZyBmaWxlIHVwbG9hZHMuIElmIHRoaXMgaXMgbm90IGEgUE9TVCByZXF1ZXN0LCBvciB0aGUKKyAgICAgICAgYm9keSBpcyBub3QgZW5jb2RlZCBmaWVsZHMgKGUuZy4sIGFuIFhNTFJQQyByZXF1ZXN0KSB0aGVuIHRoaXMKKyAgICAgICAgd2lsbCBiZSBlbXB0eS4KKworICAgICAgICBUaGlzIHdpbGwgY29uc3VtZSB3c2dpLmlucHV0IHdoZW4gZmlyc3QgYWNjZXNzZWQgaWYgYXBwbGljYWJsZSwKKyAgICAgICAgYnV0IHRoZSByYXcgdmVyc2lvbiB3aWxsIGJlIHB1dCBpbgorICAgICAgICBlbnZpcm9uWydwYXN0ZS5wYXJzZWRfZm9ybXZhcnMnXS4KKworICAgICAgICBSZXR1cm5zIGEgYGBNdWx0aURpY3RgYCBjb250YWluZXIgb3IgYSBgYFVuaWNvZGVNdWx0aURpY3RgYCB3aGVuCisgICAgICAgIGBgY2hhcnNldGBgIGlzIHNldC4KKyAgICAgICAgIiIiCisgICAgICAgIHBhcmFtcyA9IHNlbGYuX1BPU1QoKQorICAgICAgICBpZiBzZWxmLmNoYXJzZXQ6CisgICAgICAgICAgICBwYXJhbXMgPSBVbmljb2RlTXVsdGlEaWN0KHBhcmFtcywgZW5jb2Rpbmc9c2VsZi5jaGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnM9c2VsZi5lcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZV9rZXlzPXNlbGYuZGVjb2RlX3BhcmFtX25hbWVzKQorICAgICAgICByZXR1cm4gcGFyYW1zCisgICAgUE9TVCA9IHByb3BlcnR5KFBPU1QsIGRvYz1QT1NULl9fZG9jX18pCisKKyAgICBkZWYgcGFyYW1zKHNlbGYpOgorICAgICAgICAiIiJEaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0IG9mIGtleXMgZnJvbSBQT1NULCBHRVQsIFVSTCBkaWN0cworCisgICAgICAgIFJldHVybiBhIGtleSB2YWx1ZSBmcm9tIHRoZSBwYXJhbWV0ZXJzLCB0aGV5IGFyZSBjaGVja2VkIGluIHRoZQorICAgICAgICBmb2xsb3dpbmcgb3JkZXI6IFBPU1QsIEdFVCwgVVJMCisKKyAgICAgICAgQWRkaXRpb25hbCBtZXRob2RzIHN1cHBvcnRlZDoKKworICAgICAgICBgYGdldGxpc3Qoa2V5KWBgCisgICAgICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIHZhbHVlcyBieSB0aGF0IGtleSwgY29sbGVjdGVkIGZyb20KKyAgICAgICAgICAgIFBPU1QsIEdFVCwgVVJMIGRpY3RzCisKKyAgICAgICAgUmV0dXJucyBhIGBgTXVsdGlEaWN0YGAgY29udGFpbmVyIG9yIGEgYGBVbmljb2RlTXVsdGlEaWN0YGAgd2hlbgorICAgICAgICBgYGNoYXJzZXRgYCBpcyBzZXQuCisgICAgICAgICIiIgorICAgICAgICBwYXJhbXMgPSBNdWx0aURpY3QoKQorICAgICAgICBwYXJhbXMudXBkYXRlKHNlbGYuX1BPU1QoKSkKKyAgICAgICAgcGFyYW1zLnVwZGF0ZShzZWxmLl9HRVQoKSkKKyAgICAgICAgaWYgc2VsZi5jaGFyc2V0OgorICAgICAgICAgICAgcGFyYW1zID0gVW5pY29kZU11bHRpRGljdChwYXJhbXMsIGVuY29kaW5nPXNlbGYuY2hhcnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzPXNlbGYuZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVfa2V5cz1zZWxmLmRlY29kZV9wYXJhbV9uYW1lcykKKyAgICAgICAgcmV0dXJuIHBhcmFtcworICAgIHBhcmFtcyA9IHByb3BlcnR5KHBhcmFtcywgZG9jPXBhcmFtcy5fX2RvY19fKQorCisgICAgZGVmIGNvb2tpZXMoc2VsZik6CisgICAgICAgICIiIkRpY3Rpb25hcnkgb2YgY29va2llcyBrZXllZCBieSBjb29raWUgbmFtZS4KKworICAgICAgICBKdXN0IGEgcGxhaW4gZGljdGlvbmFyeSwgbWF5IGJlIGVtcHR5IGJ1dCBub3QgTm9uZS4KKworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGdldF9jb29raWVfZGljdChzZWxmLmVudmlyb24pCisgICAgY29va2llcyA9IHByb3BlcnR5KGNvb2tpZXMsIGRvYz1jb29raWVzLl9fZG9jX18pCisKKyAgICBkZWYgZGV0ZXJtaW5lX2Jyb3dzZXJfY2hhcnNldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIERldGVybWluZSB0aGUgZW5jb2RpbmcgYXMgc3BlY2lmaWVkIGJ5IHRoZSBicm93c2VyIHZpYSB0aGUKKyAgICAgICAgQ29udGVudC1UeXBlJ3MgY2hhcnNldCBwYXJhbWV0ZXIsIGlmIG9uZSBpcyBzZXQKKyAgICAgICAgIiIiCisgICAgICAgIGNoYXJzZXRfbWF0Y2ggPSBfQ0hBUlNFVF9SRS5zZWFyY2goc2VsZi5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJywgJycpKQorICAgICAgICBpZiBjaGFyc2V0X21hdGNoOgorICAgICAgICAgICAgcmV0dXJuIGNoYXJzZXRfbWF0Y2guZ3JvdXAoMSkKKworICAgIGRlZiBtYXRjaF9hY2NlcHQoc2VsZiwgbWltZXR5cGVzKToKKyAgICAgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBzcGVjaWZpZWQgbWltZS10eXBlcyB0aGF0IHRoZSBicm93c2VyJ3MgSFRUUCBBY2NlcHQKKyAgICAgICAgaGVhZGVyIGFsbG93cyBpbiB0aGUgb3JkZXIgcHJvdmlkZWQuIiIiCisgICAgICAgIHJldHVybiBkZXNpcmVkX21hdGNoZXMobWltZXR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZW52aXJvbi5nZXQoJ0hUVFBfQUNDRVBUJywgJyovKicpKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAiIiJTaG93IGltcG9ydGFudCBhdHRyaWJ1dGVzIG9mIHRoZSBXU0dJUmVxdWVzdCIiIgorICAgICAgICBwZiA9IHBmb3JtYXQKKyAgICAgICAgbXNnID0gJzwlcy4lcyBvYmplY3QgYXQgMHgleCBtZXRob2Q9JXMsJyAlIFwKKyAgICAgICAgICAgIChzZWxmLl9fY2xhc3NfXy5fX21vZHVsZV9fLCBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICBpZChzZWxmKSwgcGYoc2VsZi5tZXRob2QpKQorICAgICAgICBtc2cgKz0gJ1xuc2NoZW1lPSVzLCBob3N0PSVzLCBzY3JpcHRfbmFtZT0lcywgcGF0aF9pbmZvPSVzLCcgJSBcCisgICAgICAgICAgICAocGYoc2VsZi5zY2hlbWUpLCBwZihzZWxmLmhvc3QpLCBwZihzZWxmLnNjcmlwdF9uYW1lKSwKKyAgICAgICAgICAgICBwZihzZWxmLnBhdGhfaW5mbykpCisgICAgICAgIG1zZyArPSAnXG5sYW5ndWFnZXM9JXMsJyAlIHBmKHNlbGYubGFuZ3VhZ2VzKQorICAgICAgICBpZiBzZWxmLmNoYXJzZXQ6CisgICAgICAgICAgICBtc2cgKz0gJyBjaGFyc2V0PSVzLCBlcnJvcnM9JXMsJyAlIChwZihzZWxmLmNoYXJzZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGYoc2VsZi5lcnJvcnMpKQorICAgICAgICBtc2cgKz0gJ1xuR0VUPSVzLCcgJSBwZihzZWxmLkdFVCkKKyAgICAgICAgbXNnICs9ICdcblBPU1Q9JXMsJyAlIHBmKHNlbGYuUE9TVCkKKyAgICAgICAgbXNnICs9ICdcbmNvb2tpZXM9JXM+JyAlIHBmKHNlbGYuY29va2llcykKKyAgICAgICAgcmV0dXJuIG1zZworCitjbGFzcyBXU0dJUmVzcG9uc2Uob2JqZWN0KToKKyAgICAiIiJBIGJhc2ljIEhUVFAgcmVzcG9uc2Ugd2l0aCBjb250ZW50LCBoZWFkZXJzLCBhbmQgb3V0LWJvdW5kIGNvb2tpZXMKKworICAgIFRoZSBjbGFzcyB2YXJpYWJsZSBgYGRlZmF1bHRzYGAgc3BlY2lmaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgIGBgY29udGVudF90eXBlYGAsIGBgY2hhcnNldGBgIGFuZCBgYGVycm9yc2BgLiBUaGVzZSBjYW4gYmUgb3ZlcnJpZGRlbgorICAgIGZvciB0aGUgY3VycmVudCByZXF1ZXN0IHZpYSB0aGUgcmVnaXN0cnkuCisKKyAgICAiIiIKKyAgICBkZWZhdWx0cyA9IFN0YWNrZWRPYmplY3RQcm94eSgKKyAgICAgICAgZGVmYXVsdD1kaWN0KGNvbnRlbnRfdHlwZT0ndGV4dC9odG1sJywgY2hhcnNldD0ndXRmLTgnLAorICAgICAgICAgICAgICAgICAgICAgZXJyb3JzPSdzdHJpY3QnLCBoZWFkZXJzPXsnQ2FjaGUtQ29udHJvbCc6J25vLWNhY2hlJ30pCisgICAgICAgICkKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29udGVudD1iJycsIG1pbWV0eXBlPU5vbmUsIGNvZGU9MjAwKToKKyAgICAgICAgc2VsZi5faXRlciA9IE5vbmUKKyAgICAgICAgc2VsZi5faXNfc3RyX2l0ZXIgPSBUcnVlCisKKyAgICAgICAgc2VsZi5jb250ZW50ID0gY29udGVudAorICAgICAgICBzZWxmLmhlYWRlcnMgPSBIZWFkZXJEaWN0KCkKKyAgICAgICAgc2VsZi5jb29raWVzID0gU2ltcGxlQ29va2llKCkKKyAgICAgICAgc2VsZi5zdGF0dXNfY29kZSA9IGNvZGUKKworICAgICAgICBkZWZhdWx0cyA9IHNlbGYuZGVmYXVsdHMuX2N1cnJlbnRfb2JqKCkKKyAgICAgICAgaWYgbm90IG1pbWV0eXBlOgorICAgICAgICAgICAgbWltZXR5cGUgPSBkZWZhdWx0cy5nZXQoJ2NvbnRlbnRfdHlwZScsICd0ZXh0L2h0bWwnKQorICAgICAgICAgICAgY2hhcnNldCA9IGRlZmF1bHRzLmdldCgnY2hhcnNldCcpCisgICAgICAgICAgICBpZiBjaGFyc2V0OgorICAgICAgICAgICAgICAgIG1pbWV0eXBlID0gJyVzOyBjaGFyc2V0PSVzJyAlIChtaW1ldHlwZSwgY2hhcnNldCkKKyAgICAgICAgc2VsZi5oZWFkZXJzLnVwZGF0ZShkZWZhdWx0cy5nZXQoJ2hlYWRlcnMnLCB7fSkpCisgICAgICAgIHNlbGYuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSBtaW1ldHlwZQorICAgICAgICBzZWxmLmVycm9ycyA9IGRlZmF1bHRzLmdldCgnZXJyb3JzJywgJ3N0cmljdCcpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHJlbmRpdGlvbiBvZiB0aGUgZnVsbCBIVFRQIG1lc3NhZ2UsIGluY2x1ZGluZyBoZWFkZXJzLgorCisgICAgICAgIFdoZW4gdGhlIGNvbnRlbnQgaXMgYW4gaXRlcmF0b3IsIHRoZSBhY3R1YWwgY29udGVudCBpcyByZXBsYWNlZCB3aXRoIHRoZQorICAgICAgICBvdXRwdXQgb2Ygc3RyKGl0ZXJhdG9yKSAodG8gYXZvaWQgZXhoYXVzdGluZyB0aGUgaXRlcmF0b3IpLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5faXNfc3RyX2l0ZXI6CisgICAgICAgICAgICBjb250ZW50ID0gJycuam9pbihzZWxmLmdldF9jb250ZW50KCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb250ZW50ID0gc3RyKHNlbGYuY29udGVudCkKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihbJyVzOiAlcycgJSAoa2V5LCB2YWx1ZSkKKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYuaGVhZGVycy5oZWFkZXJpdGVtcygpXSkgXAorICAgICAgICAgICAgKyAnXG5cbicgKyBjb250ZW50CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAiIiJDb252ZW5pZW5jZSBjYWxsIHRvIHJldHVybiBvdXRwdXQgYW5kIHNldCBzdGF0dXMgaW5mb3JtYXRpb24KKworICAgICAgICBDb25mb3JtcyB0byB0aGUgV1NHSSBpbnRlcmZhY2UgZm9yIGNhbGxpbmcgcHVycG9zZXMgb25seS4KKworICAgICAgICBFeGFtcGxlIHVzYWdlOgorCisgICAgICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICAgICAgZGVmIHdzZ2lfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IFdTR0lSZXNwb25zZSgpCisgICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGUoIkhlbGxvIHdvcmxkIikKKyAgICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdsYXRpbjEnCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgICAgICIiIgorICAgICAgICBzdGF0dXNfdGV4dCA9IFNUQVRVU19DT0RFX1RFWFRbc2VsZi5zdGF0dXNfY29kZV0KKyAgICAgICAgc3RhdHVzID0gJyVzICVzJyAlIChzZWxmLnN0YXR1c19jb2RlLCBzdGF0dXNfdGV4dCkKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVycyA9IHNlbGYuaGVhZGVycy5oZWFkZXJpdGVtcygpCisgICAgICAgIGZvciBjIGluIHNlbGYuY29va2llcy52YWx1ZXMoKToKKyAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnMuYXBwZW5kKCgnU2V0LUNvb2tpZScsIGMub3V0cHV0KGhlYWRlcj0nJykpKQorICAgICAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIHJlc3BvbnNlX2hlYWRlcnMpCisgICAgICAgIGlzX2ZpbGUgPSBpc2luc3RhbmNlKHNlbGYuY29udGVudCwgZmlsZSkKKyAgICAgICAgaWYgJ3dzZ2kuZmlsZV93cmFwcGVyJyBpbiBlbnZpcm9uIGFuZCBpc19maWxlOgorICAgICAgICAgICAgcmV0dXJuIGVudmlyb25bJ3dzZ2kuZmlsZV93cmFwcGVyJ10oc2VsZi5jb250ZW50KQorICAgICAgICBlbGlmIGlzX2ZpbGU6CisgICAgICAgICAgICByZXR1cm4gaXRlcihsYW1iZGE6IHNlbGYuY29udGVudC5yZWFkKCksICcnKQorICAgICAgICByZXR1cm4gc2VsZi5nZXRfY29udGVudCgpCisKKyAgICBkZWYgZGV0ZXJtaW5lX2NoYXJzZXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBEZXRlcm1pbmUgdGhlIGVuY29kaW5nIGFzIHNwZWNpZmllZCBieSB0aGUgQ29udGVudC1UeXBlJ3MgY2hhcnNldAorICAgICAgICBwYXJhbWV0ZXIsIGlmIG9uZSBpcyBzZXQKKyAgICAgICAgIiIiCisgICAgICAgIGNoYXJzZXRfbWF0Y2ggPSBfQ0hBUlNFVF9SRS5zZWFyY2goc2VsZi5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJywgJycpKQorICAgICAgICBpZiBjaGFyc2V0X21hdGNoOgorICAgICAgICAgICAgcmV0dXJuIGNoYXJzZXRfbWF0Y2guZ3JvdXAoMSkKKworICAgIGRlZiBoYXNfaGVhZGVyKHNlbGYsIGhlYWRlcik6CisgICAgICAgICIiIgorICAgICAgICBDYXNlLWluc2Vuc2l0aXZlIGNoZWNrIGZvciBhIGhlYWRlcgorICAgICAgICAiIiIKKyAgICAgICAgd2FybmluZ3Mud2FybignV1NHSVJlc3BvbnNlLmhhc19oZWFkZXIgaXMgZGVwcmVjYXRlZCwgdXNlICcKKyAgICAgICAgICAgICAgICAgICAgICAnV1NHSVJlc3BvbnNlLmhlYWRlcnMuaGFzX2tleSBpbnN0ZWFkJywgRGVwcmVjYXRpb25XYXJuaW5nLAorICAgICAgICAgICAgICAgICAgICAgIDIpCisgICAgICAgIHJldHVybiBzZWxmLmhlYWRlcnMuaGFzX2tleShoZWFkZXIpCisKKyAgICBkZWYgc2V0X2Nvb2tpZShzZWxmLCBrZXksIHZhbHVlPScnLCBtYXhfYWdlPU5vbmUsIGV4cGlyZXM9Tm9uZSwgcGF0aD0nLycsCisgICAgICAgICAgICAgICAgICAgZG9tYWluPU5vbmUsIHNlY3VyZT1Ob25lLCBodHRwb25seT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIERlZmluZSBhIGNvb2tpZSB0byBiZSBzZW50IHZpYSB0aGUgb3V0Z29pbmcgSFRUUCBoZWFkZXJzCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmNvb2tpZXNba2V5XSA9IHZhbHVlCisgICAgICAgIGZvciB2YXJfbmFtZSwgdmFyX3ZhbHVlIGluIFsKKyAgICAgICAgICAgICgnbWF4X2FnZScsIG1heF9hZ2UpLCAoJ3BhdGgnLCBwYXRoKSwgKCdkb21haW4nLCBkb21haW4pLAorICAgICAgICAgICAgKCdzZWN1cmUnLCBzZWN1cmUpLCAoJ2V4cGlyZXMnLCBleHBpcmVzKSwgKCdodHRwb25seScsIGh0dHBvbmx5KV06CisgICAgICAgICAgICBpZiB2YXJfdmFsdWUgaXMgbm90IE5vbmUgYW5kIHZhcl92YWx1ZSBpcyBub3QgRmFsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5jb29raWVzW2tleV1bdmFyX25hbWUucmVwbGFjZSgnXycsICctJyldID0gdmFyX3ZhbHVlCisKKyAgICBkZWYgZGVsZXRlX2Nvb2tpZShzZWxmLCBrZXksIHBhdGg9Jy8nLCBkb21haW49Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBOb3RpZnkgdGhlIGJyb3dzZXIgdGhlIHNwZWNpZmllZCBjb29raWUgaGFzIGV4cGlyZWQgYW5kIHNob3VsZCBiZQorICAgICAgICBkZWxldGVkICh2aWEgdGhlIG91dGdvaW5nIEhUVFAgaGVhZGVycykKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuY29va2llc1trZXldID0gJycKKyAgICAgICAgaWYgcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY29va2llc1trZXldWydwYXRoJ10gPSBwYXRoCisgICAgICAgIGlmIGRvbWFpbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY29va2llc1trZXldWydkb21haW4nXSA9IGRvbWFpbgorICAgICAgICBzZWxmLmNvb2tpZXNba2V5XVsnZXhwaXJlcyddID0gMAorICAgICAgICBzZWxmLmNvb2tpZXNba2V5XVsnbWF4LWFnZSddID0gMAorCisgICAgZGVmIF9zZXRfY29udGVudChzZWxmLCBjb250ZW50KToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29udGVudCwgKHNpeC5iaW5hcnlfdHlwZSwgc2l4LnRleHRfdHlwZSkpOgorICAgICAgICAgICAgc2VsZi5faXRlciA9IGNvbnRlbnQKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29udGVudCwgbGlzdCk6CisgICAgICAgICAgICAgICAgc2VsZi5faXNfc3RyX2l0ZXIgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuX2lzX3N0cl9pdGVyID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2l0ZXIgPSBbY29udGVudF0KKyAgICAgICAgICAgIHNlbGYuX2lzX3N0cl9pdGVyID0gVHJ1ZQorICAgIGNvbnRlbnQgPSBwcm9wZXJ0eShsYW1iZGEgc2VsZjogc2VsZi5faXRlciwgX3NldF9jb250ZW50LAorICAgICAgICAgICAgICAgICAgICAgICBkb2M9J0dldC9zZXQgdGhlIHNwZWNpZmllZCBjb250ZW50LCB3aGVyZSBjb250ZW50IGNhbiAnCisgICAgICAgICAgICAgICAgICAgICAgICdiZTogYSBzdHJpbmcsIGEgbGlzdCBvZiBzdHJpbmdzLCBhIGdlbmVyYXRvciBmdW5jdGlvbiAnCisgICAgICAgICAgICAgICAgICAgICAgICd0aGF0IHlpZWxkcyBzdHJpbmdzLCBvciBhbiBpdGVyYWJsZSBvYmplY3QgdGhhdCAnCisgICAgICAgICAgICAgICAgICAgICAgICdwcm9kdWNlcyBzdHJpbmdzLicpCisKKyAgICBkZWYgZ2V0X2NvbnRlbnQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBjb250ZW50IGFzIGFuIGl0ZXJhYmxlIG9mIHN0cmluZ3MsIGVuY29kaW5nIGVhY2ggZWxlbWVudCBvZgorICAgICAgICB0aGUgaXRlcmF0b3IgZnJvbSBhIFVuaWNvZGUgb2JqZWN0IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgIiIiCisgICAgICAgIGNoYXJzZXQgPSBzZWxmLmRldGVybWluZV9jaGFyc2V0KCkKKyAgICAgICAgaWYgY2hhcnNldDoKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGVfdW5pY29kZV9hcHBfaXRlcihzZWxmLmNvbnRlbnQsIGNoYXJzZXQsIHNlbGYuZXJyb3JzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29udGVudAorCisgICAgZGVmIHdzZ2lfcmVzcG9uc2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdGhpcyBXU0dJUmVzcG9uc2UgYXMgYSB0dXBsZSBvZiBXU0dJIGZvcm1hdHRlZCBkYXRhLCBpbmNsdWRpbmc6CisgICAgICAgIChzdGF0dXMsIGhlYWRlcnMsIGl0ZXJhYmxlKQorICAgICAgICAiIiIKKyAgICAgICAgc3RhdHVzX3RleHQgPSBTVEFUVVNfQ09ERV9URVhUW3NlbGYuc3RhdHVzX2NvZGVdCisgICAgICAgIHN0YXR1cyA9ICclcyAlcycgJSAoc2VsZi5zdGF0dXNfY29kZSwgc3RhdHVzX3RleHQpCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBzZWxmLmhlYWRlcnMuaGVhZGVyaXRlbXMoKQorICAgICAgICBmb3IgYyBpbiBzZWxmLmNvb2tpZXMudmFsdWVzKCk6CisgICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzLmFwcGVuZCgoJ1NldC1Db29raWUnLCBjLm91dHB1dChoZWFkZXI9JycpKSkKKyAgICAgICAgcmV0dXJuIHN0YXR1cywgcmVzcG9uc2VfaGVhZGVycywgc2VsZi5nZXRfY29udGVudCgpCisKKyAgICAjIFRoZSByZW1haW5pbmcgbWV0aG9kcyBwYXJ0aWFsbHkgaW1wbGVtZW50IHRoZSBmaWxlLWxpa2Ugb2JqZWN0IGludGVyZmFjZS4KKyAgICAjIFNlZSBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYi9ibHRpbi1maWxlLW9iamVjdHMuaHRtbAorICAgIGRlZiB3cml0ZShzZWxmLCBjb250ZW50KToKKyAgICAgICAgaWYgbm90IHNlbGYuX2lzX3N0cl9pdGVyOgorICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiVGhpcyAlcyBpbnN0YW5jZSdzIGNvbnRlbnQgaXMgbm90IHdyaXRhYmxlOiAoY29udGVudCAiCisgICAgICAgICAgICAgICAgJ2lzIGFuIGl0ZXJhdG9yKScgJSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXykKKyAgICAgICAgc2VsZi5jb250ZW50LmFwcGVuZChjb250ZW50KQorCisgICAgZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVsbChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuX2lzX3N0cl9pdGVyOgorICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignVGhpcyAlcyBpbnN0YW5jZSBjYW5ub3QgdGVsbCBpdHMgcG9zaXRpb246IChjb250ZW50ICcKKyAgICAgICAgICAgICAgICAnaXMgYW4gaXRlcmF0b3IpJyAlIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAgICByZXR1cm4gc3VtKFtsZW4oY2h1bmspIGZvciBjaHVuayBpbiBzZWxmLl9pdGVyXSkKKworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAjIyBDb250ZW50LXR5cGUgYW5kIGNoYXJzZXQKKworICAgIGRlZiBjaGFyc2V0X19nZXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBHZXQvc2V0IHRoZSBjaGFyc2V0IChpbiB0aGUgQ29udGVudC1UeXBlKQorICAgICAgICAiIiIKKyAgICAgICAgaGVhZGVyID0gc2VsZi5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykKKyAgICAgICAgaWYgbm90IGhlYWRlcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIG1hdGNoID0gX0NIQVJTRVRfUkUuc2VhcmNoKGhlYWRlcikKKyAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICByZXR1cm4gbWF0Y2guZ3JvdXAoMSkKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBjaGFyc2V0X19zZXQoc2VsZiwgY2hhcnNldCk6CisgICAgICAgIGlmIGNoYXJzZXQgaXMgTm9uZToKKyAgICAgICAgICAgIGRlbCBzZWxmLmNoYXJzZXQKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0cnk6CisgICAgICAgICAgICBoZWFkZXIgPSBzZWxmLmhlYWRlcnMucG9wKCdjb250ZW50LXR5cGUnKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IGNhbm5vdCBzZXQgdGhlIGNoYXJzZXQgd2hlbiBubyBjb250ZW50LXR5cGUgaXMgZGVmaW5lZCIpCisgICAgICAgIG1hdGNoID0gX0NIQVJTRVRfUkUuc2VhcmNoKGhlYWRlcikKKyAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICBoZWFkZXIgPSBoZWFkZXJbOm1hdGNoLnN0YXJ0KCldICsgaGVhZGVyW21hdGNoLmVuZCgpOl0KKyAgICAgICAgaGVhZGVyICs9ICc7IGNoYXJzZXQ9JXMnICUgY2hhcnNldAorICAgICAgICBzZWxmLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gaGVhZGVyCisKKyAgICBkZWYgY2hhcnNldF9fZGVsKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBoZWFkZXIgPSBzZWxmLmhlYWRlcnMucG9wKCdjb250ZW50LXR5cGUnKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAjIERvbid0IG5lZWQgdG8gcmVtb3ZlIGFueXRoaW5nCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgbWF0Y2ggPSBfQ0hBUlNFVF9SRS5zZWFyY2goaGVhZGVyKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIGhlYWRlciA9IGhlYWRlcls6bWF0Y2guc3RhcnQoKV0gKyBoZWFkZXJbbWF0Y2guZW5kKCk6XQorICAgICAgICBzZWxmLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gaGVhZGVyCisKKyAgICBjaGFyc2V0ID0gcHJvcGVydHkoY2hhcnNldF9fZ2V0LCBjaGFyc2V0X19zZXQsIGNoYXJzZXRfX2RlbCwgZG9jPWNoYXJzZXRfX2dldC5fX2RvY19fKQorCisgICAgZGVmIGNvbnRlbnRfdHlwZV9fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0L3NldCB0aGUgQ29udGVudC1UeXBlIGhlYWRlciAob3IgTm9uZSksICp3aXRob3V0KiB0aGUKKyAgICAgICAgY2hhcnNldCBvciBhbnkgcGFyYW1ldGVycy4KKworICAgICAgICBJZiB5b3UgaW5jbHVkZSBwYXJhbWV0ZXJzIChvciBgYDtgYCBhdCBhbGwpIHdoZW4gc2V0dGluZyB0aGUKKyAgICAgICAgY29udGVudF90eXBlLCBhbnkgZXhpc3RpbmcgcGFyYW1ldGVycyB3aWxsIGJlIGRlbGV0ZWQ7CisgICAgICAgIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcHJlc2VydmVkLgorICAgICAgICAiIiIKKyAgICAgICAgaGVhZGVyID0gc2VsZi5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykKKyAgICAgICAgaWYgbm90IGhlYWRlcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBoZWFkZXIuc3BsaXQoJzsnLCAxKVswXQorCisgICAgZGVmIGNvbnRlbnRfdHlwZV9fc2V0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgaWYgJzsnIG5vdCBpbiB2YWx1ZToKKyAgICAgICAgICAgIGhlYWRlciA9IHNlbGYuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScsICcnKQorICAgICAgICAgICAgaWYgJzsnIGluIGhlYWRlcjoKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSBoZWFkZXIuc3BsaXQoJzsnLCAxKVsxXQorICAgICAgICAgICAgICAgIHZhbHVlICs9ICc7JyArIHBhcmFtcworICAgICAgICBzZWxmLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gdmFsdWUKKworICAgIGRlZiBjb250ZW50X3R5cGVfX2RlbChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsIHNlbGYuaGVhZGVyc1snY29udGVudC10eXBlJ10KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcGFzcworCisgICAgY29udGVudF90eXBlID0gcHJvcGVydHkoY29udGVudF90eXBlX19nZXQsIGNvbnRlbnRfdHlwZV9fc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZV9fZGVsLCBkb2M9Y29udGVudF90eXBlX19nZXQuX19kb2NfXykKKworIyMgQEAgSSdkIGxvdmUgdG8gcmVtb3ZlIHRoaXMsIGJ1dCBwYXN0ZS5odHRwZXhjZXB0aW9ucy5nZXRfZXhjZXB0aW9uCisjIyAgICBkb2Vzbid0IHNlZW0gdG8gd29yay4uLgorIyBTZWUgaHR0cDovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMxMC5odG1sCitTVEFUVVNfQ09ERV9URVhUID0geworICAgIDEwMDogJ0NPTlRJTlVFJywKKyAgICAxMDE6ICdTV0lUQ0hJTkcgUFJPVE9DT0xTJywKKyAgICAyMDA6ICdPSycsCisgICAgMjAxOiAnQ1JFQVRFRCcsCisgICAgMjAyOiAnQUNDRVBURUQnLAorICAgIDIwMzogJ05PTi1BVVRIT1JJVEFUSVZFIElORk9STUFUSU9OJywKKyAgICAyMDQ6ICdOTyBDT05URU5UJywKKyAgICAyMDU6ICdSRVNFVCBDT05URU5UJywKKyAgICAyMDY6ICdQQVJUSUFMIENPTlRFTlQnLAorICAgIDIyNjogJ0lNIFVTRUQnLAorICAgIDMwMDogJ01VTFRJUExFIENIT0lDRVMnLAorICAgIDMwMTogJ01PVkVEIFBFUk1BTkVOVExZJywKKyAgICAzMDI6ICdGT1VORCcsCisgICAgMzAzOiAnU0VFIE9USEVSJywKKyAgICAzMDQ6ICdOT1QgTU9ESUZJRUQnLAorICAgIDMwNTogJ1VTRSBQUk9YWScsCisgICAgMzA2OiAnUkVTRVJWRUQnLAorICAgIDMwNzogJ1RFTVBPUkFSWSBSRURJUkVDVCcsCisgICAgNDAwOiAnQkFEIFJFUVVFU1QnLAorICAgIDQwMTogJ1VOQVVUSE9SSVpFRCcsCisgICAgNDAyOiAnUEFZTUVOVCBSRVFVSVJFRCcsCisgICAgNDAzOiAnRk9SQklEREVOJywKKyAgICA0MDQ6ICdOT1QgRk9VTkQnLAorICAgIDQwNTogJ01FVEhPRCBOT1QgQUxMT1dFRCcsCisgICAgNDA2OiAnTk9UIEFDQ0VQVEFCTEUnLAorICAgIDQwNzogJ1BST1hZIEFVVEhFTlRJQ0FUSU9OIFJFUVVJUkVEJywKKyAgICA0MDg6ICdSRVFVRVNUIFRJTUVPVVQnLAorICAgIDQwOTogJ0NPTkZMSUNUJywKKyAgICA0MTA6ICdHT05FJywKKyAgICA0MTE6ICdMRU5HVEggUkVRVUlSRUQnLAorICAgIDQxMjogJ1BSRUNPTkRJVElPTiBGQUlMRUQnLAorICAgIDQxMzogJ1JFUVVFU1QgRU5USVRZIFRPTyBMQVJHRScsCisgICAgNDE0OiAnUkVRVUVTVC1VUkkgVE9PIExPTkcnLAorICAgIDQxNTogJ1VOU1VQUE9SVEVEIE1FRElBIFRZUEUnLAorICAgIDQxNjogJ1JFUVVFU1RFRCBSQU5HRSBOT1QgU0FUSVNGSUFCTEUnLAorICAgIDQxNzogJ0VYUEVDVEFUSU9OIEZBSUxFRCcsCisgICAgNDI5OiAnVE9PIE1BTlkgUkVRVUVTVFMnLAorICAgIDUwMDogJ0lOVEVSTkFMIFNFUlZFUiBFUlJPUicsCisgICAgNTAxOiAnTk9UIElNUExFTUVOVEVEJywKKyAgICA1MDI6ICdCQUQgR0FURVdBWScsCisgICAgNTAzOiAnU0VSVklDRSBVTkFWQUlMQUJMRScsCisgICAgNTA0OiAnR0FURVdBWSBUSU1FT1VUJywKKyAgICA1MDU6ICdIVFRQIFZFUlNJT04gTk9UIFNVUFBPUlRFRCcsCit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcmVnZW4tZG9jcyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9yZWdlbi1kb2NzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5ODc2M2QKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvcmVnZW4tZG9jcwpAQCAtMCwwICsxLDkgQEAKKyMhL2Jpbi9zaAorCitta2RpciAtcCBkb2NzL19zdGF0aWMgZG9jcy9fYnVpbGQKK3NwaGlueC1idWlsZCAtRSAtYiBodG1sIGRvY3MvIGRvY3MvX2J1aWxkIHx8IGV4aXQgMQoraWYgWyAiJDEiID0gInB1Ymxpc2giIF0gOyB0aGVuCisgIGNkIGRvY3MvCisgIGVjaG8gIlVwbG9hZGluZyBmaWxlcy4uLiIKKyAgc2NwIC1yIF9idWlsZC8qIGlhbmJAd2Vid2FyZWZvcnB5dGhvbi5vcmc6L2hvbWUvcGFzdGUvaHRkb2NzLworZmkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9zZXR1cC5jZmcgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvc2V0dXAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NDZmZTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvc2V0dXAuY2ZnCkBAIC0wLDAgKzEsOCBAQAorW2VnZ19pbmZvXQordGFnX2J1aWxkID0gCit0YWdfZGF0ZSA9IDAKK3RhZ19zdm5fcmV2aXNpb24gPSAwCisKK1thbGlhc2VzXQorZGlzdHJpYnV0ZSA9IHJlZ2lzdGVyIHNkaXN0IGJkaXN0X2VnZyB1cGxvYWQgcHVkZ2UgcHVibGlzaAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvc2V0dXAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvc2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMwMWY3YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS9zZXR1cC5weQpAQCAtMCwwICsxLDExNiBAQAorIyBQcm9jZWR1cmUgdG8gcmVsZWFzZSBhIG5ldyB2ZXJzaW9uOgorIworIyAtIHJ1biB0ZXN0czogcnVuIHRveAorIyAtIHVwZGF0ZSB2ZXJzaW9uIGluIHNldHVwLnB5IChfX3ZlcnNpb25fXykKKyMgLSB1cGRhdGUgdGFnX2J1aWxkIGluIHNldHVwLmNmZworIyAtIGNoZWNrIHRoYXQgInB5dGhvbiBzZXR1cC5weSBzZGlzdCIgY29udGFpbnMgYWxsIGZpbGVzIHRyYWNrZWQgYnkKKyMgICB0aGUgU0NNIChNZXJjdXJpYWwpOiB1cGRhdGUgTUFOSUZFU1QuaW4gaWYgbmVlZGVkCisjIC0gdXBkYXRlIGNoYW5nZWxvZzogZG9jcy9uZXdzLnR4dAorIworIyAtIGhnIGNpCisjIC0gaGcgdGFnIFZFUlNJT04KKyMgLSBoZyBwdXNoCisjIC0gcHl0aG9uMiBzZXR1cC5weSByZWdpc3RlciBzZGlzdCBiZGlzdF93aGVlbCB1cGxvYWQKKyMgLSBweXRob24zIHNldHVwLnB5IGJkaXN0X3doZWVsIHVwbG9hZAorIworIyAtIGluY3JlbWVudCB2ZXJzaW9uIGluIHNldHVwLnB5IChfX3ZlcnNpb25fXykKKyMgLSBoZyBjaSAmJiBoZyBwdXNoCisKK19fdmVyc2lvbl9fID0gJzIuMC4yJworCitmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwLCBmaW5kX3BhY2thZ2VzCitpbXBvcnQgc3lzLCBvcworc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzdGUnLCAndXRpbCcpKQoraW1wb3J0IGZpbmRkYXRhCisKK3dpdGggb3BlbigiUkVBRE1FLnJzdCIpIGFzIGZwOgorICAgIFJFQURNRSA9IGZwLnJlYWQoKQorCitzZXR1cChuYW1lPSJQYXN0ZSIsCisgICAgICB2ZXJzaW9uPV9fdmVyc2lvbl9fLAorICAgICAgZGVzY3JpcHRpb249IlRvb2xzIGZvciB1c2luZyBhIFdlYiBTZXJ2ZXIgR2F0ZXdheSBJbnRlcmZhY2Ugc3RhY2siLAorICAgICAgbG9uZ19kZXNjcmlwdGlvbj1SRUFETUUsCisgICAgICBjbGFzc2lmaWVycz1bCisgICAgICAgICJEZXZlbG9wbWVudCBTdGF0dXMgOjogNSAtIFByb2R1Y3Rpb24vU3RhYmxlIiwKKyAgICAgICAgIkludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMiLAorICAgICAgICAiTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UiLAorICAgICAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzIiwKKyAgICAgICAgIlRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIiwKKyAgICAgICAgIlRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IER5bmFtaWMgQ29udGVudCIsCisgICAgICAgICJUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMiLAorICAgICAgICAiVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogV1NHSSIsCisgICAgICAgICJUb3BpYyA6OiBJbnRlcm5ldCA6OiBXV1cvSFRUUCA6OiBXU0dJIDo6IEFwcGxpY2F0aW9uIiwKKyAgICAgICAgIlRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IFdTR0kgOjogTWlkZGxld2FyZSIsCisgICAgICAgICJUb3BpYyA6OiBJbnRlcm5ldCA6OiBXV1cvSFRUUCA6OiBXU0dJIDo6IFNlcnZlciIsCisgICAgICAgICJGcmFtZXdvcmsgOjogUGFzdGUiLAorICAgICAgICBdLAorICAgICAga2V5d29yZHM9J3dlYiBhcHBsaWNhdGlvbiBzZXJ2ZXIgd3NnaScsCisgICAgICBhdXRob3I9IklhbiBCaWNraW5nIiwKKyAgICAgIGF1dGhvcl9lbWFpbD0iaWFuYkBjb2xvcnN0dWR5LmNvbSIsCisgICAgICB1cmw9Imh0dHA6Ly9weXRob25wYXN0ZS5vcmciLAorICAgICAgbGljZW5zZT0iTUlUIiwKKyAgICAgIHBhY2thZ2VzPWZpbmRfcGFja2FnZXMoZXhjbHVkZT1bJ2V6X3NldHVwJywgJ2V4YW1wbGVzJywgJ3BhY2thZ2VzJywgJ3Rlc3RzKiddKSwKKyAgICAgIHBhY2thZ2VfZGF0YT1maW5kZGF0YS5maW5kX3BhY2thZ2VfZGF0YSgKKyAgICAgICAgICBleGNsdWRlX2RpcmVjdG9yaWVzPWZpbmRkYXRhLnN0YW5kYXJkX2V4Y2x1ZGVfZGlyZWN0b3JpZXMgKyAoJ3Rlc3RzJywpKSwKKyAgICAgIG5hbWVzcGFjZV9wYWNrYWdlcz1bJ3Bhc3RlJ10sCisgICAgICB6aXBfc2FmZT1GYWxzZSwKKyAgICAgIHRlc3Rfc3VpdGU9J25vc2UuY29sbGVjdG9yJywKKyAgICAgIGluc3RhbGxfcmVxdWlyZXM9WydzaXgnXSwKKyAgICAgIHRlc3RzX3JlcXVpcmU9Wydub3NlPj0wLjExJ10sCisgICAgICBleHRyYXNfcmVxdWlyZT17CisgICAgICAgICdzdWJwcm9jZXNzJzogW10sCisgICAgICAgICdob3RzaG90JzogW10sCisgICAgICAgICdGbHVwJzogWydmbHVwJ10sCisgICAgICAgICdQYXN0ZSc6IFtdLAorICAgICAgICAnb3BlbmlkJzogWydweXRob24tb3BlbmlkJ10sCisgICAgICAgIH0sCisgICAgICBlbnRyeV9wb2ludHM9IiIiCisgICAgICBbcGFzdGUuYXBwX2ZhY3RvcnldCisgICAgICBjZ2kgPSBwYXN0ZS5jZ2lhcHA6bWFrZV9jZ2lfYXBwbGljYXRpb24gW3N1YnByb2Nlc3NdCisgICAgICBzdGF0aWMgPSBwYXN0ZS51cmxwYXJzZXI6bWFrZV9zdGF0aWMKKyAgICAgIHBrZ19yZXNvdXJjZXMgPSBwYXN0ZS51cmxwYXJzZXI6bWFrZV9wa2dfcmVzb3VyY2VzCisgICAgICB1cmxwYXJzZXIgPSBwYXN0ZS51cmxwYXJzZXI6bWFrZV91cmxfcGFyc2VyCisgICAgICBwcm94eSA9IHBhc3RlLnByb3h5Om1ha2VfcHJveHkKKyAgICAgIHRlc3QgPSBwYXN0ZS5kZWJ1Zy5kZWJ1Z2FwcDptYWtlX3Rlc3RfYXBwCisgICAgICB0ZXN0X3Nsb3cgPSBwYXN0ZS5kZWJ1Zy5kZWJ1Z2FwcDptYWtlX3Nsb3dfYXBwCisgICAgICB0cmFuc3BhcmVudF9wcm94eSA9IHBhc3RlLnByb3h5Om1ha2VfdHJhbnNwYXJlbnRfcHJveHkKKyAgICAgIHdhdGNoX3RocmVhZHMgPSBwYXN0ZS5kZWJ1Zy53YXRjaHRocmVhZHM6bWFrZV93YXRjaF90aHJlYWRzCisKKyAgICAgIFtwYXN0ZS5jb21wb3NpdGVfZmFjdG9yeV0KKyAgICAgIHVybG1hcCA9IHBhc3RlLnVybG1hcDp1cmxtYXBfZmFjdG9yeQorICAgICAgY2FzY2FkZSA9IHBhc3RlLmNhc2NhZGU6bWFrZV9jYXNjYWRlCisKKyAgICAgIFtwYXN0ZS5maWx0ZXJfYXBwX2ZhY3RvcnldCisgICAgICBlcnJvcl9jYXRjaGVyID0gcGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmU6bWFrZV9lcnJvcl9taWRkbGV3YXJlCisgICAgICBjZ2l0YiA9IHBhc3RlLmNnaXRiX2NhdGNoZXI6bWFrZV9jZ2l0Yl9taWRkbGV3YXJlCisgICAgICBmbHVwX3Nlc3Npb24gPSBwYXN0ZS5mbHVwX3Nlc3Npb246bWFrZV9zZXNzaW9uX21pZGRsZXdhcmUgW0ZsdXBdCisgICAgICBnemlwID0gcGFzdGUuZ3ppcHBlcjptYWtlX2d6aXBfbWlkZGxld2FyZQorICAgICAgaHR0cGV4Y2VwdGlvbnMgPSBwYXN0ZS5odHRwZXhjZXB0aW9uczptYWtlX21pZGRsZXdhcmUKKyAgICAgIGxpbnQgPSBwYXN0ZS5saW50Om1ha2VfbWlkZGxld2FyZQorICAgICAgcHJpbnRkZWJ1ZyA9IHBhc3RlLmRlYnVnLnByaW50czpQcmludERlYnVnTWlkZGxld2FyZQorICAgICAgcHJvZmlsZSA9IHBhc3RlLmRlYnVnLnByb2ZpbGU6bWFrZV9wcm9maWxlX21pZGRsZXdhcmUgW2hvdHNob3RdCisgICAgICByZWN1cnNpdmUgPSBwYXN0ZS5yZWN1cnNpdmU6bWFrZV9yZWN1cnNpdmVfbWlkZGxld2FyZQorICAgICAgIyBUaGlzIGlzbid0IGdvb2QgZW5vdWdoIHRvIGRlc2VydmUgdGhlIG5hbWUgZWdnOlBhc3RlI3Nlc3Npb246CisgICAgICBwYXN0ZV9zZXNzaW9uID0gcGFzdGUuc2Vzc2lvbjptYWtlX3Nlc3Npb25fbWlkZGxld2FyZQorICAgICAgd2RnX3ZhbGlkYXRlID0gcGFzdGUuZGVidWcud2RnX3ZhbGlkYXRlOm1ha2Vfd2RnX3ZhbGlkYXRlX21pZGRsZXdhcmUgW3N1YnByb2Nlc3NdCisgICAgICBldmFsZXJyb3IgPSBwYXN0ZS5ldmFsZXhjZXB0aW9uLm1pZGRsZXdhcmU6bWFrZV9ldmFsX2V4Y2VwdGlvbgorICAgICAgYXV0aF90a3QgPSBwYXN0ZS5hdXRoLmF1dGhfdGt0Om1ha2VfYXV0aF90a3RfbWlkZGxld2FyZQorICAgICAgYXV0aF9iYXNpYyA9IHBhc3RlLmF1dGguYmFzaWM6bWFrZV9iYXNpYworICAgICAgYXV0aF9kaWdlc3QgPSBwYXN0ZS5hdXRoLmRpZ2VzdDptYWtlX2RpZ2VzdAorICAgICAgYXV0aF9mb3JtID0gcGFzdGUuYXV0aC5mb3JtOm1ha2VfZm9ybQorICAgICAgZ3JhbnRpcCA9IHBhc3RlLmF1dGguZ3JhbnRpcDptYWtlX2dyYW50aXAKKyAgICAgIG9wZW5pZCA9IHBhc3RlLmF1dGgub3Blbl9pZDptYWtlX29wZW5faWRfbWlkZGxld2FyZSBbb3BlbmlkXQorICAgICAgcG9ueSA9IHBhc3RlLnBvbnk6bWFrZV9wb255CisgICAgICBjb3diZWxsID0gcGFzdGUuY293YmVsbDptYWtlX2Nvd2JlbGwKKyAgICAgIGVycm9yZG9jdW1lbnQgPSBwYXN0ZS5lcnJvcmRvY3VtZW50Om1ha2VfZXJyb3Jkb2N1bWVudAorICAgICAgYXV0aF9jb29raWUgPSBwYXN0ZS5hdXRoLmNvb2tpZTptYWtlX2F1dGhfY29va2llCisgICAgICB0cmFuc2xvZ2dlciA9IHBhc3RlLnRyYW5zbG9nZ2VyOm1ha2VfZmlsdGVyCisgICAgICBjb25maWcgPSBwYXN0ZS5jb25maWc6bWFrZV9jb25maWdfZmlsdGVyCisgICAgICByZWdpc3RyeSA9IHBhc3RlLnJlZ2lzdHJ5Om1ha2VfcmVnaXN0cnlfbWFuYWdlcgorCisgICAgICBbcGFzdGUuc2VydmVyX3J1bm5lcl0KKyAgICAgIGh0dHAgPSBwYXN0ZS5odHRwc2VydmVyOnNlcnZlcl9ydW5uZXIKKyAgICAgICIiIiwKKyAgICAgICkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTJlMzZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNyBAQAoraW1wb3J0IHN5cworaW1wb3J0IG9zCisKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkpCisKK2ltcG9ydCBwa2dfcmVzb3VyY2VzCitwa2dfcmVzb3VyY2VzLnJlcXVpcmUoJ1Bhc3RlJykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy9jZ2lhcHBfZGF0YS9lcnJvci5jZ2kgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvZXJyb3IuY2dpCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUxMWM3NjYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvZXJyb3IuY2dpCkBAIC0wLDAgKzEsMyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisKK3ByaW50KCdoZXkgeW91IScpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvZm9ybS5jZ2kgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvZm9ybS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE4MTk5OAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy9jZ2lhcHBfZGF0YS9mb3JtLmNnaQpAQCAtMCwwICsxLDEyIEBACisjIS91c3IvYmluL2VudiBweXRob24KKworaW1wb3J0IGNnaQorCitwcmludCgnQ29udGVudC10eXBlOiB0ZXh0L3BsYWluJykKK3ByaW50KCcnKQorCitmb3JtID0gY2dpLkZpZWxkU3RvcmFnZSgpCisKK3ByaW50KCdGaWxlbmFtZTogJXMnICUgZm9ybVsndXAnXS5maWxlbmFtZSkKK3ByaW50KCdOYW1lOiAlcycgJSBmb3JtWyduYW1lJ10udmFsdWUpCitwcmludCgnQ29udGVudDogJXMnICUgZm9ybVsndXAnXS5maWxlLnJlYWQoKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy9jZ2lhcHBfZGF0YS9vay5jZ2kgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvb2suY2dpCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwM2YwYjkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvb2suY2dpCkBAIC0wLDAgKzEsNSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCitwcmludCgnQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKQorcHJpbnQoJ1N0YXR1czogMjAwIE9rYXknKQorcHJpbnQoJycpCitwcmludCgnVGhpcyBpcyB0aGUgYm9keScpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvc3RkZXJyLmNnaSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy9jZ2lhcHBfZGF0YS9zdGRlcnIuY2dpCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQyNTIwYjYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvY2dpYXBwX2RhdGEvc3RkZXJyLmNnaQpAQCAtMCwwICsxLDggQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHN5cworcHJpbnQoJ1N0YXR1czogNTAwIFNlcnZlciBFcnJvcicpCitwcmludCgnQ29udGVudC10eXBlOiB0ZXh0L2h0bWwnKQorcHJpbnQoKQorcHJpbnQoJ1RoZXJlIHdhcyBhbiBlcnJvcicpCitwcmludCgnc29tZSBkYXRhIG9uIHRoZSBlcnJvcicsIGZpbGU9c3lzLnN0ZGVycikKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci8uYWxsb3ctZGV2dG9vbHMtc2F2ZSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2F1dGgvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSB0cmFjZS12aWV3ZXIvLmFsbG93LWRldnRvb2xzLXNhdmUKY29weSB0byB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9hdXRoL19faW5pdF9fLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9hdXRoL3Rlc3RfYXV0aF9jb29raWUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9hdXRoL3Rlc3RfYXV0aF9jb29raWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhlMzdiOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2F1dGgvdGVzdF9hdXRoX2Nvb2tpZS5weQpAQCAtMCwwICsxLDQ2IEBACisjIChjKSAyMDA1IENsYXJrIEMuIEV2YW5zCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCB4cmFuZ2UKK2ltcG9ydCBzaXgKKworZnJvbSBwYXN0ZS5hdXRoIGltcG9ydCBjb29raWUKK2Zyb20gcGFzdGUud3NnaWxpYiBpbXBvcnQgcmF3X2ludGVyYWN0aXZlLCBkdW1wX2Vudmlyb24KK2Zyb20gcGFzdGUucmVzcG9uc2UgaW1wb3J0IGhlYWRlcl92YWx1ZQorZnJvbSBwYXN0ZS5odHRwZXhjZXB0aW9ucyBpbXBvcnQgKgorCitkZWYgYnVpbGQoYXBwbGljYXRpb24sc2V0ZW52LCAqYXJncywgKiprd2FyZ3MpOgorICAgIGRlZiBzZXR0ZXIoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzYXZlID0gZW52aXJvblsncGFzdGUuYXV0aC5jb29raWUnXS5hcHBlbmQKKyAgICAgICAgZm9yIChrLHYpIGluIHNldGVudi5pdGVtcygpOgorICAgICAgICAgICAgc2F2ZShrKQorICAgICAgICAgICAgZW52aXJvbltrXSA9IHYKKyAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgIHJldHVybiBjb29raWUubWlkZGxld2FyZShzZXR0ZXIsKmFyZ3MsKiprd2FyZ3MpCisKK2RlZiB0ZXN0X25vb3AoKToKKyAgICBhcHAgPSBidWlsZChkdW1wX2Vudmlyb24se30pCisgICAgKHN0YXR1cyxoZWFkZXJzLGNvbnRlbnQsZXJyb3JzKSA9IFwKKyAgICAgICAgcmF3X2ludGVyYWN0aXZlKGFwcCkKKyAgICBhc3NlcnQgbm90IGhlYWRlcl92YWx1ZShoZWFkZXJzLCdTZXQtQ29va2llJykKKworZGVmIHRlc3RfYmFzaWMoa2V5PSdrZXknLCB2YWw9J2JpbmdsZXMnKToKKyAgICBhcHAgPSBidWlsZChkdW1wX2Vudmlyb24se2tleTp2YWx9KQorICAgIChzdGF0dXMsaGVhZGVycyxjb250ZW50LGVycm9ycykgPSBcCisgICAgICAgIHJhd19pbnRlcmFjdGl2ZShhcHApCisgICAgdmFsdWUgPSBoZWFkZXJfdmFsdWUoaGVhZGVycywnU2V0LUNvb2tpZScpCisgICAgYXNzZXJ0ICJQYXRoPS87IiBpbiB2YWx1ZQorICAgIGFzc2VydCAiZXhwaXJlcz0iIG5vdCBpbiB2YWx1ZQorICAgIGNvb2tpZSA9IHZhbHVlLnNwbGl0KCI7IilbMF0KKyAgICAoc3RhdHVzLGhlYWRlcnMsY29udGVudCxlcnJvcnMpID0gXAorICAgICAgICAgICAgcmF3X2ludGVyYWN0aXZlKGFwcCx7J0hUVFBfQ09PS0lFJzogY29va2llfSkKKyAgICBleHBlY3RlZCA9ICgiJXM6ICVzIiAlIChrZXksdmFsLnJlcGxhY2UoIlxuIiwiXG4gICAgIikpKQorICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQuZW5jb2RlKCd1dGY4JykKKyAgICBhc3NlcnQgZXhwZWN0ZWQgaW4gY29udGVudAorCitkZWYgdGVzdF9yb3VuZHRyaXAoKToKKyAgICByb3VuZHRyaXAgPSBzdHIoJycpLmpvaW4obWFwKGNociwgeHJhbmdlKDI1NikpKQorICAgIHRlc3RfYmFzaWMocm91bmR0cmlwLHJvdW5kdHJpcCkKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfYXV0aC90ZXN0X2F1dGhfZGlnZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfYXV0aC90ZXN0X2F1dGhfZGlnZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNDQwMzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9hdXRoL3Rlc3RfYXV0aF9kaWdlc3QucHkKQEAgLTAsMCArMSw5MyBAQAorIyAoYykgMjAwNSBDbGFyayBDLiBFdmFucworIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorCitmcm9tIHBhc3RlLmF1dGguZGlnZXN0IGltcG9ydCAqCitmcm9tIHBhc3RlLndzZ2lsaWIgaW1wb3J0IHJhd19pbnRlcmFjdGl2ZQorZnJvbSBwYXN0ZS5odHRwZXhjZXB0aW9ucyBpbXBvcnQgKgorZnJvbSBwYXN0ZS5odHRwaGVhZGVycyBpbXBvcnQgQVVUSE9SSVpBVElPTiwgV1dXX0FVVEhFTlRJQ0FURSwgUkVNT1RFX1VTRVIKK2ltcG9ydCBvcworaW1wb3J0IHNpeAorCitkZWYgYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIGNvbnRlbnQgPSBSRU1PVEVfVVNFUihlbnZpcm9uKQorICAgIHN0YXJ0X3Jlc3BvbnNlKCIyMDAgT0siLCgoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnQ29udGVudC1MZW5ndGgnLCBsZW4oY29udGVudCkpKSkKKworICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LmVuY29kZSgndXRmOCcpCisgICAgcmV0dXJuIFtjb250ZW50XQorCityZWFsbSA9ICJ0YWc6Y2xhcmtldmFucy5jb20sMjAwNTp0ZXN0aW5nIgorCitkZWYgYmFja3dvcmRzKGVudmlyb24sIHJlYWxtLCB1c2VybmFtZSk6CisgICAgIiIiIGR1bW15IHBhc3N3b3JkIGhhc2gsIHdoZXJlIHVzZXIgcGFzc3dvcmQgaXMganVzdCByZXZlcnNlICIiIgorICAgIHBhc3N3b3JkID0gbGlzdCh1c2VybmFtZSkKKyAgICBwYXNzd29yZC5yZXZlcnNlKCkKKyAgICBwYXNzd29yZCA9ICIiLmpvaW4ocGFzc3dvcmQpCisgICAgcmV0dXJuIGRpZ2VzdF9wYXNzd29yZChyZWFsbSwgdXNlcm5hbWUsIHBhc3N3b3JkKQorCithcHBsaWNhdGlvbiA9IEF1dGhEaWdlc3RIYW5kbGVyKGFwcGxpY2F0aW9uLHJlYWxtLGJhY2t3b3JkcykKK2FwcGxpY2F0aW9uID0gSFRUUEV4Y2VwdGlvbkhhbmRsZXIoYXBwbGljYXRpb24pCisKK2RlZiBjaGVjayh1c2VybmFtZSwgcGFzc3dvcmQsIHBhdGg9Ii8iKToKKyAgICAiIiIgcGVyZm9ybSB0d28tc3RhZ2UgYXV0aGVudGljYXRpb24gdG8gdmVyaWZ5IGxvZ2luICIiIgorICAgIChzdGF0dXMsaGVhZGVycyxjb250ZW50LGVycm9ycykgPSBcCisgICAgICAgIHJhd19pbnRlcmFjdGl2ZShhcHBsaWNhdGlvbixwYXRoLCBhY2NlcHQ9J3RleHQvaHRtbCcpCisgICAgYXNzZXJ0IHN0YXR1cy5zdGFydHN3aXRoKCI0MDEiKQorICAgIGNoYWxsZW5nZSA9IFdXV19BVVRIRU5USUNBVEUoaGVhZGVycykKKyAgICByZXNwb25zZSA9IEFVVEhPUklaQVRJT04odXNlcm5hbWU9dXNlcm5hbWUsIHBhc3N3b3JkPXBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U9Y2hhbGxlbmdlLCBwYXRoPXBhdGgpCisgICAgYXNzZXJ0ICJEaWdlc3QiIGluIHJlc3BvbnNlIGFuZCB1c2VybmFtZSBpbiByZXNwb25zZQorICAgIChzdGF0dXMsaGVhZGVycyxjb250ZW50LGVycm9ycykgPSBcCisgICAgICAgIHJhd19pbnRlcmFjdGl2ZShhcHBsaWNhdGlvbixwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgSFRUUF9BVVRIT1JJWkFUSU9OPXJlc3BvbnNlKQorICAgIGlmIHN0YXR1cy5zdGFydHN3aXRoKCIyMDAiKToKKyAgICAgICAgcmV0dXJuIGNvbnRlbnQKKyAgICBpZiBzdGF0dXMuc3RhcnRzd2l0aCgiNDAxIik6CisgICAgICAgIHJldHVybiBOb25lCisgICAgYXNzZXJ0IEZhbHNlLCAiVW5leHBlY3RlZCBTdGF0dXM6ICVzIiAlIHN0YXR1cworCitkZWYgdGVzdF9kaWdlc3QoKToKKyAgICBhc3NlcnQgYidiaW5nJyA9PSBjaGVjaygiYmluZyIsImduaWIiKQorICAgIGFzc2VydCBjaGVjaygiYmluZyIsImJhZCIpIGlzIE5vbmUKKworIworIyBUaGUgZm9sbG93aW5nIGNvZGUgdXNlcyBzb2NrZXRzIHRvIHRlc3QgdGhlIGZ1bmN0aW9uYWxpdHksCisjIHRvIGVuYWJsZSB1c2U6CisjCisjICQgVEVTVF9TT0NLRVQgcHkudGVzdAorIworCitpZiBvcy5lbnZpcm9uLmdldCgiVEVTVF9TT0NLRVQiLCIiKToKKyAgICBmcm9tIHNpeC5tb3Zlcy51cmxsaWIuZXJyb3IgaW1wb3J0IEhUVFBFcnJvcgorICAgIGZyb20gc2l4Lm1vdmVzLnVybGxpYi5yZXF1ZXN0IGltcG9ydCBidWlsZF9vcGVuZXIsIEhUVFBEaWdlc3RBdXRoSGFuZGxlcgorICAgIGZyb20gcGFzdGUuZGVidWcudGVzdHNlcnZlciBpbXBvcnQgc2VydmUKKyAgICBzZXJ2ZXIgPSBzZXJ2ZShhcHBsaWNhdGlvbikKKworICAgIGRlZiBhdXRoZmV0Y2godXNlcm5hbWUscGFzc3dvcmQscGF0aD0iLyIscmVhbG09cmVhbG0pOgorICAgICAgICBzZXJ2ZXIuYWNjZXB0KDIpCisgICAgICAgIGltcG9ydCBzb2NrZXQKKyAgICAgICAgc29ja2V0LnNldGRlZmF1bHR0aW1lb3V0KDUpCisgICAgICAgIHVyaSA9ICgiaHR0cDovLyVzOiVzIiAlIHNlcnZlci5zZXJ2ZXJfYWRkcmVzcykgKyBwYXRoCisgICAgICAgIGF1dGggPSBIVFRQRGlnZXN0QXV0aEhhbmRsZXIoKQorICAgICAgICBhdXRoLmFkZF9wYXNzd29yZChyZWFsbSx1cmksdXNlcm5hbWUscGFzc3dvcmQpCisgICAgICAgIG9wZW5lciA9IGJ1aWxkX29wZW5lcihhdXRoKQorICAgICAgICByZXN1bHQgPSBvcGVuZXIub3Blbih1cmkpCisgICAgICAgIHJldHVybiByZXN1bHQucmVhZCgpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzKCk6CisgICAgICAgIGFzc2VydCAiYmluZyIgPT0gYXV0aGZldGNoKCdiaW5nJywnZ25pYicpCisKKyAgICBkZWYgdGVzdF9mYWlsdXJlKCk6CisgICAgICAgICMgdXJsbGliIHRyaWVzIDUgbW9yZSB0aW1lcyBiZWZvcmUgaXQgZ2l2ZXMgdXAKKyAgICAgICAgc2VydmVyLmFjY2VwdCg1KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhdXRoZmV0Y2goJ2JpbmcnLCd3cm9uZycpCisgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJ0aGlzIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24iCisgICAgICAgIGV4Y2VwdCBIVFRQRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGFzc2VydCBlLmNvZGUgPT0gNDAxCisKKyAgICBkZWYgdGVzdF9zaHV0ZG93bigpOgorICAgICAgICBzZXJ2ZXIuc3RvcCgpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2NnaWFwcC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2NnaWFwcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmNiMmJlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfY2dpYXBwLnB5CkBAIC0wLDAgKzEsMzYgQEAKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSBub3NlLnRvb2xzIGltcG9ydCBhc3NlcnRfcmFpc2VzCitmcm9tIHBhc3RlLmNnaWFwcCBpbXBvcnQgQ0dJQXBwbGljYXRpb24sIENHSUVycm9yCitmcm9tIHBhc3RlLmZpeHR1cmUgaW1wb3J0ICoKKworZGF0YV9kaXIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ2NnaWFwcF9kYXRhJykKKworIyB0aGVzZSBDR0kgc2NyaXB0cyBjYW4ndCB3b3JrIG9uIFdpbmRvd3Mgb3IgSnl0aG9uCitpZiBzeXMucGxhdGZvcm0gIT0gJ3dpbjMyJyBhbmQgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJyk6CisgICAgZGVmIHRlc3Rfb2soKToKKyAgICAgICAgYXBwID0gVGVzdEFwcChDR0lBcHBsaWNhdGlvbih7fSwgc2NyaXB0PSdvay5jZ2knLCBwYXRoPVtkYXRhX2Rpcl0pKQorICAgICAgICByZXMgPSBhcHAuZ2V0KCcnKQorICAgICAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvaHRtbDsgY2hhcnNldD1VVEYtOCcKKyAgICAgICAgYXNzZXJ0IHJlcy5mdWxsX3N0YXR1cyA9PSAnMjAwIE9rYXknCisgICAgICAgIGFzc2VydCAnVGhpcyBpcyB0aGUgYm9keScgaW4gcmVzCisKKyAgICBkZWYgdGVzdF9mb3JtKCk6CisgICAgICAgIGFwcCA9IFRlc3RBcHAoQ0dJQXBwbGljYXRpb24oe30sIHNjcmlwdD0nZm9ybS5jZ2knLCBwYXRoPVtkYXRhX2Rpcl0pKQorICAgICAgICByZXMgPSBhcHAucG9zdCgnJywgcGFyYW1zPXsnbmFtZSc6IGInam9lJ30sCisgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZF9maWxlcz1bKCd1cCcsICdmaWxlLnR4dCcsIGIneCcqMTAwMDApXSkKKyAgICAgICAgYXNzZXJ0ICdmaWxlLnR4dCcgaW4gcmVzCisgICAgICAgIGFzc2VydCAnam9lJyBpbiByZXMKKyAgICAgICAgYXNzZXJ0ICd4JyoxMDAwMCBpbiByZXMKKworICAgIGRlZiB0ZXN0X2Vycm9yKCk6CisgICAgICAgIGFwcCA9IFRlc3RBcHAoQ0dJQXBwbGljYXRpb24oe30sIHNjcmlwdD0nZXJyb3IuY2dpJywgcGF0aD1bZGF0YV9kaXJdKSkKKyAgICAgICAgYXNzZXJ0X3JhaXNlcyhDR0lFcnJvciwgYXBwLmdldCwgJycsIHN0YXR1cz01MDApCisKKyAgICBkZWYgdGVzdF9zdGRlcnIoKToKKyAgICAgICAgYXBwID0gVGVzdEFwcChDR0lBcHBsaWNhdGlvbih7fSwgc2NyaXB0PSdzdGRlcnIuY2dpJywgcGF0aD1bZGF0YV9kaXJdKSkKKyAgICAgICAgcmVzID0gYXBwLmdldCgnJywgZXhwZWN0X2Vycm9ycz1UcnVlKQorICAgICAgICBhc3NlcnQgcmVzLnN0YXR1cyA9PSA1MDAKKyAgICAgICAgYXNzZXJ0ICdlcnJvcicgaW4gcmVzCisgICAgICAgIGFzc2VydCBiJ3NvbWUgZGF0YScgaW4gcmVzLmVycm9ycworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9jZ2l0Yl9jYXRjaGVyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfY2dpdGJfY2F0Y2hlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjNmN2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfY2dpdGJfY2F0Y2hlci5weQpAQCAtMCwwICsxLDc4IEBACitmcm9tIHBhc3RlLmZpeHR1cmUgaW1wb3J0ICoKK2Zyb20gcGFzdGUuY2dpdGJfY2F0Y2hlciBpbXBvcnQgQ2dpdGJNaWRkbGV3YXJlCitmcm9tIHBhc3RlIGltcG9ydCBsaW50Citmcm9tIC50ZXN0X2V4Y2VwdGlvbnMudGVzdF9lcnJvcl9taWRkbGV3YXJlIGltcG9ydCBjbGVhcl9taWRkbGV3YXJlCisKK2RlZiBkb19yZXF1ZXN0KGFwcCwgZXhwZWN0X3N0YXR1cz01MDApOgorICAgIGFwcCA9IGxpbnQubWlkZGxld2FyZShhcHApCisgICAgYXBwID0gQ2dpdGJNaWRkbGV3YXJlKGFwcCwge30sIGRpc3BsYXk9VHJ1ZSkKKyAgICBhcHAgPSBjbGVhcl9taWRkbGV3YXJlKGFwcCkKKyAgICB0ZXN0YXBwID0gVGVzdEFwcChhcHApCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJycsIHN0YXR1cz1leHBlY3Rfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdF9lcnJvcnM9VHJ1ZSkKKyAgICByZXR1cm4gcmVzCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyBBcHBsaWNhdGlvbnMgdGhhdCByYWlzZSBleGNlcHRpb25zCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZGVmIGJhZF9hcHAoKToKKyAgICAiTm8gYXJndW1lbnQgbGlzdCEiCisgICAgcmV0dXJuIE5vbmUKKworZGVmIHN0YXJ0X3Jlc3BvbnNlX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgInJhaXNlIGVycm9yIGJlZm9yZSBzdGFydF9yZXNwb25zZSIKKyAgICByYWlzZSBWYWx1ZUVycm9yKCJoaSIpCisKK2RlZiBhZnRlcl9zdGFydF9yZXNwb25zZV9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXJ0X3Jlc3BvbnNlKCIyMDAgT0siLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICByYWlzZSBWYWx1ZUVycm9yKCdlcnJvcjInKQorCitkZWYgaXRlcl9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXJ0X3Jlc3BvbnNlKCIyMDAgT0siLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICByZXR1cm4geWllbGRlcihbYid0aGlzJywgYicgaXMgJywgYicgYScsIE5vbmVdKQorCitkZWYgeWllbGRlcihhcmdzKToKKyAgICBmb3IgYXJnIGluIGFyZ3M6CisgICAgICAgIGlmIGFyZyBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm9uZSByYWlzZXMgZXJyb3IiKQorICAgICAgICB5aWVsZCBhcmcKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyBUZXN0cworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2RlZiB0ZXN0X21ha2VzX2V4Y2VwdGlvbigpOgorICAgIHJlcyA9IGRvX3JlcXVlc3QoYmFkX2FwcCkKKyAgICBwcmludChyZXMpCisgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgYXNzZXJ0ICdiYWRfYXBwKCkgdGFrZXMgMCBwb3NpdGlvbmFsIGFyZ3VtZW50cyBidXQgMiB3ZXJlIGdpdmVuJyBpbiByZXMKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgJ2JhZF9hcHAoKSB0YWtlcyBubyBhcmd1bWVudHMgKDIgZ2l2ZW4nIGluIHJlcworICAgIGFzc2VydCAnaXRlcmF0b3IgPSBhcHBsaWNhdGlvbihlbnZpcm9uLCBzdGFydF9yZXNwb25zZV93cmFwcGVyKScgaW4gcmVzCisgICAgYXNzZXJ0ICdsaW50LnB5JyBpbiByZXMKKyAgICBhc3NlcnQgJ2NnaXRiX2NhdGNoZXIucHknIGluIHJlcworCitkZWYgdGVzdF9zdGFydF9yZXMoKToKKyAgICByZXMgPSBkb19yZXF1ZXN0KHN0YXJ0X3Jlc3BvbnNlX2FwcCkKKyAgICBwcmludChyZXMpCisgICAgYXNzZXJ0ICdWYWx1ZUVycm9yOiBoaScgaW4gcmVzCisgICAgYXNzZXJ0ICd0ZXN0X2NnaXRiX2NhdGNoZXIucHknIGluIHJlcworICAgIGFzc2VydCAnbGluZSAyNiwgaW4gc3RhcnRfcmVzcG9uc2VfYXBwJyBpbiByZXMKKworZGVmIHRlc3RfYWZ0ZXJfc3RhcnQoKToKKyAgICByZXMgPSBkb19yZXF1ZXN0KGFmdGVyX3N0YXJ0X3Jlc3BvbnNlX2FwcCwgMjAwKQorICAgIHByaW50KHJlcykKKyAgICBhc3NlcnQgJ1ZhbHVlRXJyb3I6IGVycm9yMicgaW4gcmVzCisgICAgYXNzZXJ0ICdsaW5lIDMwJyBpbiByZXMKKworZGVmIHRlc3RfaXRlcl9hcHAoKToKKyAgICByZXMgPSBkb19yZXF1ZXN0KGl0ZXJfYXBwLCAyMDApCisgICAgcHJpbnQocmVzKQorICAgIGFzc2VydCAnTm9uZSByYWlzZXMgZXJyb3InIGluIHJlcworICAgIGFzc2VydCAneWllbGRlcicgaW4gcmVzCisKKworCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2NvbmZpZy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTE5MTU3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfY29uZmlnLnB5CkBAIC0wLDAgKzEsODUgQEAKKyMgKGMpIDIwMDcgUGhpbGlwIEplbnZleTsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKK2Zyb20gbm9zZS50b29scyBpbXBvcnQgYXNzZXJ0X3JhaXNlcworZnJvbSBwYXN0ZS5jb25maWcgaW1wb3J0IENPTkZJRywgQ29uZmlnTWlkZGxld2FyZQorZnJvbSBwYXN0ZS5maXh0dXJlIGltcG9ydCBUZXN0QXBwCitpbXBvcnQgc2l4CisKK3Rlc3Rfa2V5ID0gJ3Rlc3Qga2V5JworCitkZWYgcmVzZXRfY29uZmlnKCk6CisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgQ09ORklHLl9wb3Bfb2JqZWN0KCkKKyAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICBicmVhaworCitkZWYgYXBwX3dpdGhfY29uZmlnKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnQ29udGVudC10eXBlJywndGV4dC9wbGFpbicpXSkKKyAgICBsaW5lcyA9IFsnVmFyaWFibGUgaXM6ICVzXG4nICUgQ09ORklHW3Rlc3Rfa2V5XSwKKyAgICAgICAgICAgICdWYXJpYWJsZSBpcyAoaW4gZW52aXJvbik6ICVzJyAlIGVudmlyb25bJ3Bhc3RlLmNvbmZpZyddW3Rlc3Rfa2V5XV0KKyAgICBpZiBzaXguUFkzOgorICAgICAgICBsaW5lcyA9IFtsaW5lLmVuY29kZSgndXRmOCcpIGZvciBsaW5lIGluIGxpbmVzXQorICAgIHJldHVybiBsaW5lcworCitjbGFzcyBOZXN0aW5nQXBwV2l0aENvbmZpZyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHApOgorICAgICAgICBzZWxmLmFwcCA9IGFwcAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2UsIGxpc3QpCisgICAgICAgIHN1cHBsZW1lbnQgPSBbJ05lc3RpbmcgdmFyaWFibGUgaXM6ICVzJyAlIENPTkZJR1t0ZXN0X2tleV0sCisgICAgICAgICAgICAgICAgICAgICAgJ05lc3RpbmcgdmFyaWFibGUgaXMgKGluIGVudmlyb24pOiAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25bJ3Bhc3RlLmNvbmZpZyddW3Rlc3Rfa2V5XV0KKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHN1cHBsZW1lbnQgPSBbbGluZS5lbmNvZGUoJ3V0ZjgnKSBmb3IgbGluZSBpbiBzdXBwbGVtZW50XQorICAgICAgICByZXNwb25zZS5leHRlbmQoc3VwcGxlbWVudCkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKK2RlZiB0ZXN0X3JlcXVlc3RfY29uZmlnKCk6CisgICAgdHJ5OgorICAgICAgICBjb25maWcgPSB7dGVzdF9rZXk6ICd0ZXN0IHZhbHVlJ30KKyAgICAgICAgYXBwID0gQ29uZmlnTWlkZGxld2FyZShhcHBfd2l0aF9jb25maWcsIGNvbmZpZykKKyAgICAgICAgcmVzID0gVGVzdEFwcChhcHApLmdldCgnLycpCisgICAgICAgIGFzc2VydCAnVmFyaWFibGUgaXM6IHRlc3QgdmFsdWUnIGluIHJlcworICAgICAgICBhc3NlcnQgJ1ZhcmlhYmxlIGlzIChpbiBlbnZpcm9uKTogdGVzdCB2YWx1ZScgaW4gcmVzCisgICAgZmluYWxseToKKyAgICAgICAgcmVzZXRfY29uZmlnKCkKKworZGVmIHRlc3RfcmVxdWVzdF9jb25maWdfbXVsdGkoKToKKyAgICB0cnk6CisgICAgICAgIGNvbmZpZyA9IHt0ZXN0X2tleTogJ3Rlc3QgdmFsdWUnfQorICAgICAgICBhcHAgPSBDb25maWdNaWRkbGV3YXJlKGFwcF93aXRoX2NvbmZpZywgY29uZmlnKQorICAgICAgICBjb25maWcgPSB7dGVzdF9rZXk6ICduZXN0aW5nIHZhbHVlJ30KKyAgICAgICAgYXBwID0gQ29uZmlnTWlkZGxld2FyZShOZXN0aW5nQXBwV2l0aENvbmZpZyhhcHApLCBjb25maWcpCisgICAgICAgIHJlcyA9IFRlc3RBcHAoYXBwKS5nZXQoJy8nKQorICAgICAgICBhc3NlcnQgJ1ZhcmlhYmxlIGlzOiB0ZXN0IHZhbHVlJyBpbiByZXMKKyAgICAgICAgYXNzZXJ0ICdWYXJpYWJsZSBpcyAoaW4gZW52aXJvbik6IHRlc3QgdmFsdWUnIGluIHJlcworICAgICAgICBhc3NlcnQgJ05lc3RpbmcgdmFyaWFibGUgaXM6IG5lc3RpbmcgdmFsdWUnIGluIHJlcworICAgICAgICBwcmludChyZXMpCisgICAgICAgIGFzc2VydCAnTmVzdGluZyB2YXJpYWJsZSBpcyAoaW4gZW52aXJvbik6IG5lc3RpbmcgdmFsdWUnIGluIHJlcworICAgIGZpbmFsbHk6CisgICAgICAgIHJlc2V0X2NvbmZpZygpCisKK2RlZiB0ZXN0X3Byb2Nlc3NfY29uZmlnKHJlcXVlc3RfYXBwPXRlc3RfcmVxdWVzdF9jb25maWcpOgorICAgIHRyeToKKyAgICAgICAgcHJvY2Vzc19jb25maWcgPSB7dGVzdF9rZXk6ICdiYXInLCAncHJvY2Vzc192YXInOiAnZm9vJ30KKyAgICAgICAgQ09ORklHLnB1c2hfcHJvY2Vzc19jb25maWcocHJvY2Vzc19jb25maWcpCisKKyAgICAgICAgYXNzZXJ0IENPTkZJR1t0ZXN0X2tleV0gPT0gJ2JhcicKKyAgICAgICAgYXNzZXJ0IENPTkZJR1sncHJvY2Vzc192YXInXSA9PSAnZm9vJworCisgICAgICAgIHJlcXVlc3RfYXBwKCkKKworICAgICAgICBhc3NlcnQgQ09ORklHW3Rlc3Rfa2V5XSA9PSAnYmFyJworICAgICAgICBhc3NlcnQgQ09ORklHWydwcm9jZXNzX3ZhciddID09ICdmb28nCisgICAgICAgIENPTkZJRy5wb3BfcHJvY2Vzc19jb25maWcoKQorCisgICAgICAgIGFzc2VydF9yYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYTogJ3Byb2Nlc3NfdmFyJyBub3QgaW4gQ09ORklHKQorICAgICAgICBhc3NlcnRfcmFpc2VzKEluZGV4RXJyb3IsIENPTkZJRy5wb3BfcHJvY2Vzc19jb25maWcpCisgICAgZmluYWxseToKKyAgICAgICAgcmVzZXRfY29uZmlnKCkKKworZGVmIHRlc3RfcHJvY2Vzc19jb25maWdfbXVsdGkoKToKKyAgICB0ZXN0X3Byb2Nlc3NfY29uZmlnKHRlc3RfcmVxdWVzdF9jb25maWdfbXVsdGkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9kb2N0ZXN0cy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2RvY3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NWZiYzIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9kb2N0ZXN0cy5weQpAQCAtMCwwICsxLDYwIEBACitpbXBvcnQgZG9jdGVzdAorZnJvbSBwYXN0ZS51dGlsLmltcG9ydF9zdHJpbmcgaW1wb3J0IHNpbXBsZV9pbXBvcnQKK2ltcG9ydCBvcworCitmaWxlbmFtZXMgPSBbCisgICAgJ3Rlc3RzL3Rlc3RfdGVtcGxhdGUudHh0JywKKyAgICBdCisKK21vZHVsZXMgPSBbCisgICAgJ3Bhc3RlLnV0aWwudGVtcGxhdGUnLAorICAgICdwYXN0ZS51dGlsLmxvb3BlcicsCisgICAgIyBUaGlzIG9uZSBvcGVucyB1cCBodHRwc2VydmVyLCB3aGljaCBpcyBiYWQ6CisgICAgIydwYXN0ZS5hdXRoLmNvb2tpZScsCisgICAgIydwYXN0ZS5hdXRoLm11bHRpJywKKyAgICAjJ3Bhc3RlLmF1dGguZGlnZXN0JywKKyAgICAjJ3Bhc3RlLmF1dGguYmFzaWMnLAorICAgICMncGFzdGUuYXV0aC5mb3JtJywKKyAgICAjJ3Bhc3RlLnByb2dyZXNzJywKKyAgICAncGFzdGUuZXhjZXB0aW9ucy5zZXJpYWxfbnVtYmVyX2dlbmVyYXRvcicsCisgICAgJ3Bhc3RlLmV2YWxleGNlcHRpb24uZXZhbGNvbnRleHQnLAorICAgICdwYXN0ZS51dGlsLmRhdGVpbnRlcnZhbCcsCisgICAgJ3Bhc3RlLnV0aWwucXVvdGluZycsCisgICAgJ3Bhc3RlLndzZ2lsaWInLAorICAgICdwYXN0ZS51cmwnLAorICAgICdwYXN0ZS5yZXF1ZXN0JywKKyAgICBdCisKK29wdGlvbnMgPSBkb2N0ZXN0LkVMTElQU0lTfGRvY3Rlc3QuUkVQT1JUX09OTFlfRklSU1RfRkFJTFVSRQorCitkZWYgdGVzdF9kb2N0ZXN0cygpOgorICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6CisgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5qb2luKAorICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpLAorICAgICAgICAgICAgZmlsZW5hbWUpCisgICAgICAgIHlpZWxkIGRvX2RvY3Rlc3QsIGZpbGVuYW1lCisKK2RlZiBkb19kb2N0ZXN0KGZpbGVuYW1lKToKKyAgICBmYWlsdXJlLCB0b3RhbCA9IGRvY3Rlc3QudGVzdGZpbGUoCisgICAgICAgIGZpbGVuYW1lLCBtb2R1bGVfcmVsYXRpdmU9RmFsc2UsCisgICAgICAgIG9wdGlvbmZsYWdzPW9wdGlvbnMpCisgICAgYXNzZXJ0IG5vdCBmYWlsdXJlLCAiRmFpbHVyZSBpbiAlciIgJSBmaWxlbmFtZQorCitkZWYgdGVzdF9kb2N0ZXN0X21vZHMoKToKKyAgICBmb3IgbW9kdWxlIGluIG1vZHVsZXM6CisgICAgICAgIHlpZWxkIGRvX2RvY3Rlc3RfbW9kLCBtb2R1bGUKKworZGVmIGRvX2RvY3Rlc3RfbW9kKG1vZHVsZSk6CisgICAgbW9kdWxlID0gc2ltcGxlX2ltcG9ydChtb2R1bGUpCisgICAgZmFpbHVyZSwgdG90YWwgPSBkb2N0ZXN0LnRlc3Rtb2QoCisgICAgICAgIG1vZHVsZSwgb3B0aW9uZmxhZ3M9b3B0aW9ucykKKyAgICBhc3NlcnQgbm90IGZhaWx1cmUsICJGYWlsdXJlIGluICVyIiAlIG1vZHVsZQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGltcG9ydCBzeXMKKyAgICBpbXBvcnQgZG9jdGVzdAorICAgIGFyZ3MgPSBzeXMuYXJndlsxOl0KKyAgICBpZiBub3QgYXJnczoKKyAgICAgICAgYXJncyA9IGZpbGVuYW1lcworICAgIGZvciBmaWxlbmFtZSBpbiBhcmdzOgorICAgICAgICBkb2N0ZXN0LnRlc3RmaWxlKGZpbGVuYW1lLCBtb2R1bGVfcmVsYXRpdmU9RmFsc2UpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9lcnJvcmRvY3VtZW50LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZXJyb3Jkb2N1bWVudC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmVhZTYxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZXJyb3Jkb2N1bWVudC5weQpAQCAtMCwwICsxLDkyIEBACitmcm9tIHBhc3RlLmVycm9yZG9jdW1lbnQgaW1wb3J0IGZvcndhcmQKK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgKgorZnJvbSBwYXN0ZS5yZWN1cnNpdmUgaW1wb3J0IFJlY3Vyc2l2ZU1pZGRsZXdhcmUKKworZGVmIHNpbXBsZV9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXJ0X3Jlc3BvbnNlKCIyMDAgT0siLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICByZXR1cm4gW2IncmVxdWVzdGVkIHBhZ2UgcmV0dXJuZWQnXQorCitkZWYgbm90X2ZvdW5kX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgc3RhcnRfcmVzcG9uc2UoIjQwNCBOb3QgZm91bmQiLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICByZXR1cm4gW2IncmVxdWVzdGVkIHBhZ2UgcmV0dXJuZWQnXQorCitkZWYgdGVzdF9vaygpOgorICAgIGFwcCA9IFRlc3RBcHAoc2ltcGxlX2FwcCkKKyAgICByZXMgPSBhcHAuZ2V0KCcnKQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9wbGFpbicKKyAgICBhc3NlcnQgcmVzLmZ1bGxfc3RhdHVzID09ICcyMDAgT0snCisgICAgYXNzZXJ0ICdyZXF1ZXN0ZWQgcGFnZSByZXR1cm5lZCcgaW4gcmVzCisKK2RlZiBlcnJvcl9kb2NzX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgaWYgZW52aXJvblsnUEFUSF9JTkZPJ10gPT0gJy9ub3RfZm91bmQnOgorICAgICAgICBzdGFydF9yZXNwb25zZSgiNDA0IE5vdCBmb3VuZCIsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICByZXR1cm4gW2InTm90IGZvdW5kJ10KKyAgICBlbGlmIGVudmlyb25bJ1BBVEhfSU5GTyddID09ICcvZXJyb3InOgorICAgICAgICBzdGFydF9yZXNwb25zZSgiMjAwIE9LIiwgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKV0pCisgICAgICAgIHJldHVybiBbYidQYWdlIG5vdCBmb3VuZCddCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIHNpbXBsZV9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2RlZiB0ZXN0X2Vycm9yX2RvY3NfYXBwKCk6CisgICAgYXBwID0gVGVzdEFwcChlcnJvcl9kb2NzX2FwcCkKKyAgICByZXMgPSBhcHAuZ2V0KCcnKQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9wbGFpbicKKyAgICBhc3NlcnQgcmVzLmZ1bGxfc3RhdHVzID09ICcyMDAgT0snCisgICAgYXNzZXJ0ICdyZXF1ZXN0ZWQgcGFnZSByZXR1cm5lZCcgaW4gcmVzCisgICAgcmVzID0gYXBwLmdldCgnL2Vycm9yJykKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvcGxhaW4nCisgICAgYXNzZXJ0IHJlcy5mdWxsX3N0YXR1cyA9PSAnMjAwIE9LJworICAgIGFzc2VydCAnUGFnZSBub3QgZm91bmQnIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy9ub3RfZm91bmQnLCBzdGF0dXM9NDA0KQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9wbGFpbicKKyAgICBhc3NlcnQgcmVzLmZ1bGxfc3RhdHVzID09ICc0MDQgTm90IGZvdW5kJworICAgIGFzc2VydCAnTm90IGZvdW5kJyBpbiByZXMKKworZGVmIHRlc3RfZm9yd2FyZCgpOgorICAgIGFwcCA9IGZvcndhcmQoZXJyb3JfZG9jc19hcHAsIGNvZGVzPXs0MDQ6Jy9lcnJvcid9KQorICAgIGFwcCA9IFRlc3RBcHAoUmVjdXJzaXZlTWlkZGxld2FyZShhcHApKQorICAgIHJlcyA9IGFwcC5nZXQoJycpCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpID09ICd0ZXh0L3BsYWluJworICAgIGFzc2VydCByZXMuZnVsbF9zdGF0dXMgPT0gJzIwMCBPSycKKyAgICBhc3NlcnQgJ3JlcXVlc3RlZCBwYWdlIHJldHVybmVkJyBpbiByZXMKKyAgICByZXMgPSBhcHAuZ2V0KCcvZXJyb3InKQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9wbGFpbicKKyAgICBhc3NlcnQgcmVzLmZ1bGxfc3RhdHVzID09ICcyMDAgT0snCisgICAgYXNzZXJ0ICdQYWdlIG5vdCBmb3VuZCcgaW4gcmVzCisgICAgcmVzID0gYXBwLmdldCgnL25vdF9mb3VuZCcsIHN0YXR1cz00MDQpCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpID09ICd0ZXh0L3BsYWluJworICAgIGFzc2VydCByZXMuZnVsbF9zdGF0dXMgPT0gJzQwNCBOb3QgZm91bmQnCisgICAgIyBOb3RlIGNoYW5nZWQgcmVzcG9uc2UKKyAgICBhc3NlcnQgJ1BhZ2Ugbm90IGZvdW5kJyBpbiByZXMKKworZGVmIGF1dGhfcmVxdWlyZWRfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGFydF9yZXNwb25zZSgnNDAxIFVuYXV0aG9yaXplZCcsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyksICgnd3d3LWF1dGhlbnRpY2F0ZScsICdCYXNpYyByZWFsbT0iRm9vIicpXSkKKyAgICByZXR1cm4gWydTaWduIGluISddCisKK2RlZiBhdXRoX2RvY3NfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBpZiBlbnZpcm9uWydQQVRIX0lORk8nXSA9PSAnL2F1dGgnOgorICAgICAgICByZXR1cm4gYXV0aF9yZXF1aXJlZF9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgZWxpZiBlbnZpcm9uWydQQVRIX0lORk8nXSA9PSAnL2F1dGhfZG9jJzoKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoIjIwMCBPSyIsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgIHJldHVybiBbYic8aHRtbD5Mb2dpbiE8L2h0bWw+J10KKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gc2ltcGxlX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworZGVmIHRlc3RfYXV0aF9kb2NzX2FwcCgpOgorICAgIHdzZ2lfYXBwID0gZm9yd2FyZChhdXRoX2RvY3NfYXBwLCBjb2Rlcz17NDAxOiAnL2F1dGhfZG9jJ30pCisgICAgYXBwID0gVGVzdEFwcCh3c2dpX2FwcCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvYXV0aF9kb2MnKQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9odG1sJworICAgIHJlcyA9IGFwcC5nZXQoJy9hdXRoJywgc3RhdHVzPTQwMSkKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvaHRtbCcKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignd3d3LWF1dGhlbnRpY2F0ZScpID09ICdCYXNpYyByZWFsbT0iRm9vIicKKyAgICBhc3NlcnQgcmVzLmJvZHkgPT0gYic8aHRtbD5Mb2dpbiE8L2h0bWw+JworCitkZWYgdGVzdF9iYWRfZXJyb3IoKToKKyAgICBkZWYgYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzQwNCBOb3QgRm91bmQnLCBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICAgICAgcmV0dXJuIFsnbm90IGZvdW5kJ10KKyAgICBhcHAgPSBmb3J3YXJkKGFwcCwgezQwNDogJy80MDQuaHRtbCd9KQorICAgIGFwcCA9IFRlc3RBcHAoYXBwKQorICAgIHJlc3AgPSBhcHAuZ2V0KCcvdGVzdCcsIGV4cGVjdF9lcnJvcnM9VHJ1ZSkKKyAgICBwcmludChyZXNwKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZXhjZXB0aW9ucy9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkyZDYwMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZXhjZXB0aW9ucy90ZXN0X2Vycm9yX21pZGRsZXdhcmUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9leGNlcHRpb25zL3Rlc3RfZXJyb3JfbWlkZGxld2FyZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWFiMTc3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZXhjZXB0aW9ucy90ZXN0X2Vycm9yX21pZGRsZXdhcmUucHkKQEAgLTAsMCArMSwxMDkgQEAKK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgKgorZnJvbSBwYXN0ZS5leGNlcHRpb25zLmVycm9ybWlkZGxld2FyZSBpbXBvcnQgRXJyb3JNaWRkbGV3YXJlCitmcm9tIHBhc3RlIGltcG9ydCBsaW50Citmcm9tIHBhc3RlLnV0aWwucXVvdGluZyBpbXBvcnQgc3RyaXBfaHRtbAorIworIyBGb3Igc29tZSBzdHJhbmdlIHJlYXNvbiwgdGhlc2UgNCBsaW5lcyBjYW5ub3QgYmUgcmVtb3ZlZCBvciB0aGUgcmVncmVzc2lvbgorIyB0ZXN0IGJyZWFrczsgaXMgaXQgY291bnRpbmcgdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgZmlsZSBzb21laG93PworIworCitkZWYgZG9fcmVxdWVzdChhcHAsIGV4cGVjdF9zdGF0dXM9NTAwKToKKyAgICBhcHAgPSBsaW50Lm1pZGRsZXdhcmUoYXBwKQorICAgIGFwcCA9IEVycm9yTWlkZGxld2FyZShhcHAsIHt9LCBkZWJ1Zz1UcnVlKQorICAgIGFwcCA9IGNsZWFyX21pZGRsZXdhcmUoYXBwKQorICAgIHRlc3RhcHAgPSBUZXN0QXBwKGFwcCkKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnJywgc3RhdHVzPWV4cGVjdF9zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0X2Vycm9ycz1UcnVlKQorICAgIHJldHVybiByZXMKKworZGVmIGNsZWFyX21pZGRsZXdhcmUoYXBwKToKKyAgICAiIiIKKyAgICBUaGUgZml4dHVyZSBzZXRzIHBhc3RlLnRocm93X2Vycm9ycywgd2hpY2ggc3VwcHJlc3NlcyBleGFjdGx5IHdoYXQKKyAgICB3ZSB3YW50IHRvIHRlc3QgaW4gdGhpcyBjYXNlLiBUaGlzIHdyYXBwZXIgYWxzbyBzdHJpcHMgZXhjX2luZm8KKyAgICBvbiB0aGUgKmZpcnN0KiBjYWxsIHRvIHN0YXJ0X3Jlc3BvbnNlIChidXQgbm90IHRoZSBzZWNvbmQsIG9yCisgICAgc3Vic2VxdWVudCBjYWxscy4KKyAgICAiIiIKKyAgICBkZWYgY2xlYXJfdGhyb3dfZXJyb3JzKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgaGVhZGVyc19zZW50ID0gW10KKyAgICAgICAgZGVmIHJlcGxhY2VtZW50KHN0YXR1cywgaGVhZGVycywgZXhjX2luZm89Tm9uZSk6CisgICAgICAgICAgICBpZiBoZWFkZXJzX3NlbnQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm8pCisgICAgICAgICAgICBoZWFkZXJzX3NlbnQuYXBwZW5kKFRydWUpCisgICAgICAgICAgICByZXR1cm4gc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzKQorICAgICAgICBpZiAncGFzdGUudGhyb3dfZXJyb3JzJyBpbiBlbnZpcm9uOgorICAgICAgICAgICAgZGVsIGVudmlyb25bJ3Bhc3RlLnRocm93X2Vycm9ycyddCisgICAgICAgIHJldHVybiBhcHAoZW52aXJvbiwgcmVwbGFjZW1lbnQpCisgICAgcmV0dXJuIGNsZWFyX3Rocm93X2Vycm9ycworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgQXBwbGljYXRpb25zIHRoYXQgcmFpc2UgZXhjZXB0aW9ucworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2RlZiBiYWRfYXBwKCk6CisgICAgIk5vIGFyZ3VtZW50IGxpc3QhIgorICAgIHJldHVybiBOb25lCisKK2RlZiB1bmljb2RlX2JhZF9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHJhaXNlIFZhbHVlRXJyb3IodSJcdTEwMDAiKQorCitkZWYgc3RhcnRfcmVzcG9uc2VfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAicmFpc2UgZXJyb3IgYmVmb3JlIHN0YXJ0X3Jlc3BvbnNlIgorICAgIHJhaXNlIFZhbHVlRXJyb3IoImhpIikKKworZGVmIGFmdGVyX3N0YXJ0X3Jlc3BvbnNlX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgc3RhcnRfcmVzcG9uc2UoIjIwMCBPSyIsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Vycm9yMicpCisKK2RlZiBpdGVyX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgc3RhcnRfcmVzcG9uc2UoIjIwMCBPSyIsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgIHJldHVybiB5aWVsZGVyKFtiJ3RoaXMnLCBiJyBpcyAnLCBiJyBhJywgTm9uZV0pCisKK2RlZiB5aWVsZGVyKGFyZ3MpOgorICAgIGZvciBhcmcgaW4gYXJnczoKKyAgICAgICAgaWYgYXJnIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJOb25lIHJhaXNlcyBlcnJvciIpCisgICAgICAgIHlpZWxkIGFyZworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIFRlc3RzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZGVmIHRlc3RfbWFrZXNfZXhjZXB0aW9uKCk6CisgICAgcmVzID0gZG9fcmVxdWVzdChiYWRfYXBwKQorICAgIGFzc2VydCAnPGh0bWwnIGluIHJlcworICAgIHJlcyA9IHN0cmlwX2h0bWwoc3RyKHJlcykpCisgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgYXNzZXJ0ICdiYWRfYXBwKCkgdGFrZXMgMCBwb3NpdGlvbmFsIGFyZ3VtZW50cyBidXQgMiB3ZXJlIGdpdmVuJyBpbiByZXMKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgJ2JhZF9hcHAoKSB0YWtlcyBubyBhcmd1bWVudHMgKDIgZ2l2ZW4nIGluIHJlcywgcmVwcihyZXMpCisgICAgYXNzZXJ0ICdpdGVyYXRvciA9IGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlX3dyYXBwZXIpJyBpbiByZXMKKyAgICBhc3NlcnQgJ3Bhc3RlLmxpbnQnIGluIHJlcworICAgIGFzc2VydCAncGFzdGUuZXhjZXB0aW9ucy5lcnJvcm1pZGRsZXdhcmUnIGluIHJlcworCitkZWYgdGVzdF91bmljb2RlX2V4Y2VwdGlvbigpOgorICAgIHJlcyA9IGRvX3JlcXVlc3QodW5pY29kZV9iYWRfYXBwKQorCisKK2RlZiB0ZXN0X3N0YXJ0X3JlcygpOgorICAgIHJlcyA9IGRvX3JlcXVlc3Qoc3RhcnRfcmVzcG9uc2VfYXBwKQorICAgIHJlcyA9IHN0cmlwX2h0bWwoc3RyKHJlcykpCisgICAgYXNzZXJ0ICdWYWx1ZUVycm9yOiBoaScgaW4gcmVzCisgICAgYXNzZXJ0ICd0ZXN0X2Vycm9yX21pZGRsZXdhcmUnIGluIHJlcworICAgIGFzc2VydCAnOjUyIGluIHN0YXJ0X3Jlc3BvbnNlX2FwcCcgaW4gcmVzCisKK2RlZiB0ZXN0X2FmdGVyX3N0YXJ0KCk6CisgICAgcmVzID0gZG9fcmVxdWVzdChhZnRlcl9zdGFydF9yZXNwb25zZV9hcHAsIDIwMCkKKyAgICByZXMgPSBzdHJpcF9odG1sKHN0cihyZXMpKQorICAgICNwcmludCByZXMKKyAgICBhc3NlcnQgJ1ZhbHVlRXJyb3I6IGVycm9yMicgaW4gcmVzCisKK2RlZiB0ZXN0X2l0ZXJfYXBwKCk6CisgICAgcmVzID0gZG9fcmVxdWVzdChsaW50Lm1pZGRsZXdhcmUoaXRlcl9hcHApLCAyMDApCisgICAgI3ByaW50IHJlcworICAgIGFzc2VydCAnTm9uZSByYWlzZXMgZXJyb3InIGluIHJlcworICAgIGFzc2VydCAneWllbGRlcicgaW4gcmVzCisKKworCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvdGVzdF9mb3JtYXR0ZXIucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9leGNlcHRpb25zL3Rlc3RfZm9ybWF0dGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNTNhOWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9leGNlcHRpb25zL3Rlc3RfZm9ybWF0dGVyLnB5CkBAIC0wLDAgKzEsMTgzIEBACitmcm9tIHBhc3RlLmV4Y2VwdGlvbnMgaW1wb3J0IGZvcm1hdHRlcgorZnJvbSBwYXN0ZS5leGNlcHRpb25zIGltcG9ydCBjb2xsZWN0b3IKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworaW1wb3J0IGRpZmZsaWIKKworY2xhc3MgTW9jayhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGt3Lml0ZW1zKCk6CisgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIG5hbWUsIHZhbHVlKQorCitjbGFzcyBTdXBwbGVtZW50KE1vY2spOgorCisgICAgb2JqZWN0ID0gJ3Rlc3Rfb2JqZWN0JworICAgIHNvdXJjZV91cmwgPSAnaHR0cDovL3doYXRldmVyLmNvbScKKyAgICBpbmZvID0gJ1RoaXMgaXMgc29tZSBzdXBwbGVtZW50YWwgaW5mb3JtYXRpb24nCisgICAgYXJncyA9ICgpCisgICAgZGVmIGdldEluZm8oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmluZm8KKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKKyAgICAgICAgcmV0dXJuIHNlbGYKKworY2xhc3MgQmFkU3VwcGxlbWVudChTdXBwbGVtZW50KToKKworICAgIGRlZiBnZXRJbmZvKHNlbGYpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUaGlzIHN1cHBsZW1lbnRhbCBpbmZvIGlzIGJ1Z2d5IikKKworZGVmIGNhbGxfZXJyb3Ioc3VwKToKKyAgICAxICsgMgorICAgIF9fdHJhY2ViYWNrX3N1cHBsZW1lbnRfXyA9IChzdXAsICgpKQorICAgIGFzc2VydCAwLCAiSSBhbSBhbiBlcnJvciIKKworZGVmIHJhaXNlX2Vycm9yKHN1cD0nZGVmYXVsdCcpOgorICAgIGlmIHN1cCA9PSAnZGVmYXVsdCc6CisgICAgICAgIHN1cCA9IFN1cHBsZW1lbnQoKQorICAgIGZvciBpIGluIHJhbmdlKDEwKToKKyAgICAgICAgX190cmFjZWJhY2tfaW5mb19fID0gaQorICAgICAgICBpZiBpID09IDU6CisgICAgICAgICAgICBjYWxsX2Vycm9yKHN1cD1zdXApCisKK2RlZiBoaWRlKHQsIGlubmVyLCAqYXJncywgKiprdyk6CisgICAgX190cmFjZWJhY2tfaGlkZV9fID0gdAorICAgIHJldHVybiBpbm5lcigqYXJncywgKiprdykKKworZGVmIHBhc3NfdGhyb3VnaChpbmZvLCBpbm5lciwgKmFyZ3MsICoqa3cpOgorICAgICIiIgorICAgIFRvIGFkZCBhbm90aGVyIGZyYW1lIHRvIHRoZSBjYWxsOyBkZXRlY3RhYmxlIGJlY2F1c2UKKyAgICBfX3RyYWNiYWNrX2luZm9fXyBpcyBzZXQgdG8gYGluZm9gCisgICAgIiIiCisgICAgX190cmFjZWJhY2tfaW5mb19fID0gaW5mbworICAgIHJldHVybiBpbm5lcigqYXJncywgKiprdykKKworZGVmIGZvcm1hdCh0eXBlPSdodG1sJywgKipvcHMpOgorICAgIGRhdGEgPSBjb2xsZWN0b3IuY29sbGVjdF9leGNlcHRpb24oKnN5cy5leGNfaW5mbygpKQorICAgIHJlcG9ydCA9IGdldGF0dHIoZm9ybWF0dGVyLCAnZm9ybWF0XycgKyB0eXBlKShkYXRhLCAqKm9wcykKKyAgICByZXR1cm4gcmVwb3J0CisKK2Zvcm1hdHMgPSAoJ3RleHQnLCAnaHRtbCcpCisKK2RlZiB0ZXN0X2V4Y2Vyc2l6ZSgpOgorICAgIGZvciBmIGluIGZvcm1hdHM6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJhaXNlX2Vycm9yKCkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZm9ybWF0KGYpCisKK2RlZiB0ZXN0X2NvbnRlbnQoKToKKyAgICBmb3IgZiBpbiBmb3JtYXRzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByYWlzZV9lcnJvcigpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJlc3VsdCA9IGZvcm1hdChmKQorICAgICAgICAgICAgcHJpbnQocmVzdWx0KQorICAgICAgICAgICAgYXNzZXJ0ICd0ZXN0X29iamVjdCcgaW4gcmVzdWx0CisgICAgICAgICAgICBhc3NlcnQgJ2h0dHA6Ly93aGF0ZXZlci5jb20nIGluIHJlc3VsdAorICAgICAgICAgICAgYXNzZXJ0ICdUaGlzIGlzIHNvbWUgc3VwcGxlbWVudGFsIGluZm9ybWF0aW9uJyBpbiByZXN1bHQKKyAgICAgICAgICAgIGFzc2VydCAncmFpc2VfZXJyb3InIGluIHJlc3VsdAorICAgICAgICAgICAgYXNzZXJ0ICdjYWxsX2Vycm9yJyBpbiByZXN1bHQKKyAgICAgICAgICAgIGFzc2VydCAnNScgaW4gcmVzdWx0CisgICAgICAgICAgICBhc3NlcnQgJ3Rlc3RfY29udGVudCcgaW4gcmVzdWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgMAorCitkZWYgdGVzdF90cmltKCk6CisgICAgY3VycmVudCA9IG9zLnBhdGguYWJzcGF0aChvcy5nZXRjd2QoKSkKKyAgICBmb3IgZiBpbiBmb3JtYXRzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByYWlzZV9lcnJvcigpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJlc3VsdCA9IGZvcm1hdChmLCB0cmltX3NvdXJjZV9wYXRocz1bKGN1cnJlbnQsICcuJyldKQorICAgICAgICAgICAgYXNzZXJ0IGN1cnJlbnQgbm90IGluIHJlc3VsdAorICAgICAgICAgICAgYXNzZXJ0ICgnJXN0ZXN0X2Zvcm1hdHRlci5weScgJSBvcy5zZXApIGluIHJlc3VsdCwgVmFsdWVFcnJvcihyZXByKHJlc3VsdCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgMAorCitkZWYgdGVzdF9oaWRlKCk6CisgICAgZm9yIGYgaW4gZm9ybWF0czoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaGlkZShUcnVlLCByYWlzZV9lcnJvcikKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmVzdWx0ID0gZm9ybWF0KGYpCisgICAgICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAgICAgICBhc3NlcnQgJ2luIGhpZGVfaW5uZXInIG5vdCBpbiByZXN1bHQKKyAgICAgICAgICAgIGFzc2VydCAnaW5uZXIoKmFyZ3MsICoqa3cpJyBub3QgaW4gcmVzdWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgMAorCitkZWYgcHJpbnRfZGlmZihzMSwgczIpOgorICAgIGRpZmZlciA9IGRpZmZsaWIuRGlmZmVyKCkKKyAgICByZXN1bHQgPSBsaXN0KGRpZmZlci5jb21wYXJlKHMxLnNwbGl0bGluZXMoKSwgczIuc3BsaXRsaW5lcygpKSkKKyAgICBwcmludCgnXG4nLmpvaW4ocmVzdWx0KSkKKworZGVmIHRlc3RfaGlkZV9zdXBwcHJlc3NlZCgpOgorICAgICIiIgorICAgIFdoZW4gYW4gZXJyb3Igb2NjdXJzIGFuZCBfX3RyYWNlYmFja19zdG9wX18gaXMgdHJ1ZSBmb3IgdGhlCisgICAgZXJyb25lb3VzIGZyYW1lLCB0aGVuIHRoYXQgc2V0dGluZyBzaG91bGQgYmUgaWdub3JlZC4KKyAgICAiIiIKKyAgICBmb3IgZiBpbiBbJ2h0bWwnXTogI2Zvcm1hdHM6CisgICAgICAgIHJlc3VsdHMgPSBbXQorICAgICAgICBmb3IgaGlkZV92YWx1ZSBpbiAoRmFsc2UsICdhZnRlcicpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHBhc3NfdGhyb3VnaCgKKyAgICAgICAgICAgICAgICAgICAgJ2EnLAorICAgICAgICAgICAgICAgICAgICBoaWRlLAorICAgICAgICAgICAgICAgICAgICBoaWRlX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICBwYXNzX3Rocm91Z2gsCisgICAgICAgICAgICAgICAgICAgICdiJywKKyAgICAgICAgICAgICAgICAgICAgcmFpc2VfZXJyb3IpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoZm9ybWF0KGYpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICBpZiByZXN1bHRzWzBdICE9IHJlc3VsdHNbMV06CisgICAgICAgICAgICBwcmludF9kaWZmKHJlc3VsdHNbMF0sIHJlc3VsdHNbMV0pCisgICAgICAgICAgICBhc3NlcnQgMAorCitkZWYgdGVzdF9oaWRlX2FmdGVyKCk6CisgICAgZm9yIGYgaW4gZm9ybWF0czoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFzc190aHJvdWdoKAorICAgICAgICAgICAgICAgICdBQUJCJywKKyAgICAgICAgICAgICAgICBoaWRlLCAnYWZ0ZXInLAorICAgICAgICAgICAgICAgIHBhc3NfdGhyb3VnaCwgJ0NDREQnLAorICAgICAgICAgICAgICAgICMgQSBsaXR0bGUgd2hpdGVzcGFjZSB0byBrZWVwIHRoaXMgbGluZSBvdXQgb2YgdGhlCisgICAgICAgICAgICAgICAgIyBjb250ZW50IHBhcnQgb2YgdGhlIHJlcG9ydAorCisKKyAgICAgICAgICAgICAgICBoaWRlLCAncmVzZXQnLAorICAgICAgICAgICAgICAgIHJhaXNlX2Vycm9yKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXN1bHQgPSBmb3JtYXQoZikKKyAgICAgICAgICAgIGFzc2VydCAnQUFCQicgaW4gcmVzdWx0CisgICAgICAgICAgICBhc3NlcnQgJ0NDREQnIG5vdCBpbiByZXN1bHQKKyAgICAgICAgICAgIGFzc2VydCAncmFpc2VfZXJyb3InIGluIHJlc3VsdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IDAKKworZGVmIHRlc3RfaGlkZV9iZWZvcmUoKToKKyAgICBmb3IgZiBpbiBmb3JtYXRzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXNzX3Rocm91Z2goCisgICAgICAgICAgICAgICAgJ0FBQkInLAorICAgICAgICAgICAgICAgIGhpZGUsICdiZWZvcmUnLAorICAgICAgICAgICAgICAgIHJhaXNlX2Vycm9yKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXN1bHQgPSBmb3JtYXQoZikKKyAgICAgICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgIGFzc2VydCAnQUFCQicgbm90IGluIHJlc3VsdAorICAgICAgICAgICAgYXNzZXJ0ICdyYWlzZV9lcnJvcicgaW4gcmVzdWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgMAorCitkZWYgdGVzdF9tYWtlX3dyYXBwYWJsZSgpOgorICAgIGFzc2VydCAnPHdicj4nIGluIGZvcm1hdHRlci5tYWtlX3dyYXBwYWJsZSgneCcqMTAwMCkKKyAgICAjIEknbSBqdXN0IGdvaW5nIHRvIHRlc3QgdGhhdCB0aGlzIGRvZXNuJ3QgZXhjZWRlIHRoZSBzdGFjayBsaW1pdDoKKyAgICBmb3JtYXR0ZXIubWFrZV93cmFwcGFibGUoJzsnKjIwMDApCisgICAgYXNzZXJ0IChmb3JtYXR0ZXIubWFrZV93cmFwcGFibGUoJ3RoaXMgdGhhdCB0aGUgb3RoZXInKQorICAgICAgICAgICAgPT0gJ3RoaXMgdGhhdCB0aGUgb3RoZXInKQorICAgIGFzc2VydCAoZm9ybWF0dGVyLm1ha2Vfd3JhcHBhYmxlKCd0aGlzIHRoYXQgJyArICgneCcqNTApICsgJzsnICsgKCd5Jyo1MCkgKyAnIGFuZCB0aGUgb3RoZXInKQorICAgICAgICAgICAgPT0gJ3RoaXMgdGhhdCAnKygneCcqNTApICsgJzs8d2JyPicgKyAoJ3knKjUwKSArICcgYW5kIHRoZSBvdGhlcicpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvdGVzdF9odHRwZXhjZXB0aW9ucy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvdGVzdF9odHRwZXhjZXB0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGUwMGRkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZXhjZXB0aW9ucy90ZXN0X2h0dHBleGNlcHRpb25zLnB5CkBAIC0wLDAgKzEsOTcgQEAKKyMgKGMpIDIwMDUgSWFuIEJpY2tpbmcsIENsYXJrIEMuIEV2YW5zIGFuZCBjb250cmlidXRvcnMKKyMgVGhpcyBtb2R1bGUgaXMgcGFydCBvZiB0aGUgUHl0aG9uIFBhc3RlIFByb2plY3QgYW5kIGlzIHJlbGVhc2VkIHVuZGVyCisjIHRoZSBNSVQgTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKyIiIgorV1NHSSBFeGNlcHRpb24gTWlkZGxld2FyZQorCitSZWdyZXNzaW9uIFRlc3QgU3VpdGUKKyIiIgorZnJvbSBub3NlLnRvb2xzIGltcG9ydCBhc3NlcnRfcmFpc2VzCitmcm9tIHBhc3RlLmh0dHBleGNlcHRpb25zIGltcG9ydCAqCitmcm9tIHBhc3RlLnJlc3BvbnNlIGltcG9ydCBoZWFkZXJfdmFsdWUKK2ltcG9ydCBzaXgKKworCitkZWYgdGVzdF9IVFRQTW92ZSgpOgorICAgICIiIiBtYWtlIHN1cmUgdGhhdCBsb2NhdGlvbiBpcyBhIG1hbmRhdG9yeSBhdHRyaWJ1dGUgb2YgUmVkaXJlY3RzICIiIgorICAgIGFzc2VydF9yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIEhUVFBGb3VuZCkKKyAgICBhc3NlcnRfcmFpc2VzKEFzc2VydGlvbkVycm9yLCBIVFRQVGVtcG9yYXJ5UmVkaXJlY3QsCisgICAgICAgICAgICAgICAgICAgaGVhZGVycz1bKCdsMGNhdGlvbicsJy9iaW5nJyldKQorICAgIGFzc2VydCBpc2luc3RhbmNlKEhUVFBNb3ZlZFBlcm1hbmVudGx5KCJUaGlzIGlzIGEgbWVzc2FnZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WygnTG9jYXRpb24nLCcvYmluZycpXSkKKyAgICAgICAgICAgICAgICAgICAgICxIVFRQUmVkaXJlY3Rpb24pCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoSFRUUFVzZVByb3h5KGhlYWRlcnM9WygnTE9DQVRJT04nLCcvYmluZycpXSkKKyAgICAgICAgICAgICAgICAgICAgICxIVFRQUmVkaXJlY3Rpb24pCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoSFRUUEZvdW5kKCcvZm9vYmFyJyksSFRUUFJlZGlyZWN0aW9uKQorCitkZWYgdGVzdF9iYWRhcHAoKToKKyAgICAiIiIgdmVyaWZ5IHRoYXQgdGhlIG1pZGRsZXdhcmUgaGFuZGxlcyBwcmV2aW91c2x5LXN0YXJ0ZWQgcmVzcG9uc2VzICIiIgorICAgIGRlZiBiYWRhcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzdGFydF9yZXNwb25zZSgiMjAwIE9LIixbXSkKKyAgICAgICAgcmFpc2UgSFRUUEJhZFJlcXVlc3QoIkRvIG5vdCBkbyB0aGlzIGF0IGhvbWUuIikKKyAgICBuZXdhcHAgPSBIVFRQRXhjZXB0aW9uSGFuZGxlcihiYWRhcHApCisgICAgYXNzZXJ0IGInQmFkIFJlcXVlc3QnIGluIGInJy5qb2luKG5ld2FwcCh7J0hUVFBfQUNDRVBUJzogJ3RleHQvaHRtbCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSBhLCBiLCBjPU5vbmU6IE5vbmUpKSkKKworZGVmIHRlc3RfdW5pY29kZSgpOgorICAgICIiIiB2ZXJpZnkgdW5pY29kZSBvdXRwdXQgIiIiCisgICAgdHN0ciA9IHUiXDB4Q0FGRSIKKyAgICBkZWYgYmFkYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoIjIwMCBPSyIsW10pCisgICAgICAgIHJhaXNlIEhUVFBCYWRSZXF1ZXN0KHRzdHIpCisgICAgbmV3YXBwID0gSFRUUEV4Y2VwdGlvbkhhbmRsZXIoYmFkYXBwKQorICAgIGFzc2VydCB0c3RyLmVuY29kZSgidXRmLTgiKSBpbiBiJycuam9pbihuZXdhcHAoeydIVFRQX0FDQ0VQVCc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSBhLCBiLCBjPU5vbmU6IE5vbmUpKSkKKyAgICBhc3NlcnQgdHN0ci5lbmNvZGUoInV0Zi04IikgaW4gYicnLmpvaW4obmV3YXBwKHsnSFRUUF9BQ0NFUFQnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC9wbGFpbid9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIGEsIGIsIGM9Tm9uZTogTm9uZSkpKQorCitkZWYgdGVzdF90ZW1wbGF0ZSgpOgorICAgICIiIiB2ZXJpZnkgdGhhdCBodG1sKCkgYW5kIHBsYWluKCkgb3V0cHV0IG1ldGhvZHMgd29yayAiIiIKKyAgICBlID0gSFRUUEludGVybmFsU2VydmVyRXJyb3IoKQorICAgIGUudGVtcGxhdGUgPSAnQSAlKHBpbmcpcyBhbmQgPGI+JShwb25nKXM8L2I+IG1lc3NhZ2UuJworICAgIGFzc2VydCBzdHIoZSkuc3RhcnRzd2l0aCgiNTAwIEludGVybmFsIFNlcnZlciBFcnJvciIpCisgICAgYXNzZXJ0IGUucGxhaW4oeydwaW5nJzogJ2Z1bicsICdwb25nJzogJ2hhcHB5J30pID09ICgKKyAgICAgICAgJzUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcclxuJworICAgICAgICAnQSBmdW4gYW5kIGhhcHB5IG1lc3NhZ2UuXHJcbicpCisgICAgYXNzZXJ0ICc8cD5BIGZ1biBhbmQgPGI+aGFwcHk8L2I+IG1lc3NhZ2UuPC9wPicgaW4gXAorICAgICAgICAgICBlLmh0bWwoeydwaW5nJzogJ2Z1bicsICdwb25nJzogJ2hhcHB5J30pCisKK2RlZiB0ZXN0X3JlZGFwcCgpOgorICAgICIiIiBjaGVjayB0aGF0IHJlZGlyZWN0IHJldHVybnMgdGhlIGNvcnJlY3QsIGV4cGVjdGVkIHJlc3VsdHMgIiIiCisgICAgc2F2ZWQgPSBbXQorICAgIGRlZiBzYXZlaXQoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbyA9IE5vbmUpOgorICAgICAgICBzYXZlZC5hcHBlbmQoKHN0YXR1cyxoZWFkZXJzKSkKKyAgICBkZWYgcmVkYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgcmFpc2UgSFRUUEZvdW5kKCIvYmluZy9mb28iKQorICAgIGFwcCA9IEhUVFBFeGNlcHRpb25IYW5kbGVyKHJlZGFwcCkKKyAgICByZXN1bHQgPSBsaXN0KGFwcCh7J0hUVFBfQUNDRVBUJzogJ3RleHQvaHRtbCd9LHNhdmVpdCkpCisgICAgYXNzZXJ0IGInPGEgaHJlZj0iL2JpbmcvZm9vIj4nIGluIHJlc3VsdFswXQorICAgIGFzc2VydCAiMzAyIEZvdW5kIiA9PSBzYXZlZFswXVswXQorICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGFzc2VydCAidGV4dC9odG1sOyBjaGFyc2V0PXV0ZjgiID09IGhlYWRlcl92YWx1ZShzYXZlZFswXVsxXSwgJ2NvbnRlbnQtdHlwZScpCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0ICJ0ZXh0L2h0bWwiID09IGhlYWRlcl92YWx1ZShzYXZlZFswXVsxXSwgJ2NvbnRlbnQtdHlwZScpCisgICAgYXNzZXJ0ICIvYmluZy9mb28iID09IGhlYWRlcl92YWx1ZShzYXZlZFswXVsxXSwnbG9jYXRpb24nKQorICAgIHJlc3VsdCA9IGxpc3QoYXBwKHsnSFRUUF9BQ0NFUFQnOiAndGV4dC9wbGFpbid9LHNhdmVpdCkpCisgICAgYXNzZXJ0ICJ0ZXh0L3BsYWluOyBjaGFyc2V0PXV0ZjgiID09IGhlYWRlcl92YWx1ZShzYXZlZFsxXVsxXSwnY29udGVudC10eXBlJykKKyAgICBhc3NlcnQgIi9iaW5nL2ZvbyIgPT0gaGVhZGVyX3ZhbHVlKHNhdmVkWzFdWzFdLCdsb2NhdGlvbicpCisKK2RlZiB0ZXN0X21pc2MoKToKKyAgICBhc3NlcnQgZ2V0X2V4Y2VwdGlvbigzMDEpID09IEhUVFBNb3ZlZFBlcm1hbmVudGx5CisgICAgcmVkaXJlY3QgPSBIVFRQRm91bmQoIi9zb21lL3BhdGgiKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlZGlyZWN0LEhUVFBFeGNlcHRpb24pCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVkaXJlY3QsSFRUUFJlZGlyZWN0aW9uKQorICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShyZWRpcmVjdCxIVFRQRXJyb3IpCisgICAgbm90Zm91bmQgPSBIVFRQTm90Rm91bmQoKQorICAgIGFzc2VydCBpc2luc3RhbmNlKG5vdGZvdW5kLEhUVFBFeGNlcHRpb24pCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm90Zm91bmQsSFRUUEVycm9yKQorICAgIGFzc2VydCBpc2luc3RhbmNlKG5vdGZvdW5kLEhUVFBDbGllbnRFcnJvcikKKyAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uobm90Zm91bmQsSFRUUFNlcnZlckVycm9yKQorICAgIG5vdGltcGwgPSBIVFRQTm90SW1wbGVtZW50ZWQoKQorICAgIGFzc2VydCBpc2luc3RhbmNlKG5vdGltcGwsSFRUUEV4Y2VwdGlvbikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShub3RpbXBsLEhUVFBFcnJvcikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShub3RpbXBsLEhUVFBTZXJ2ZXJFcnJvcikKKyAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uobm90aW1wbCxIVFRQQ2xpZW50RXJyb3IpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvdGVzdF9yZXBvcnRlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMvdGVzdF9yZXBvcnRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDA2NjZlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZXhjZXB0aW9ucy90ZXN0X3JlcG9ydGVyLnB5CkBAIC0wLDAgKzEsNTAgQEAKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworZnJvbSBwYXN0ZS5leGNlcHRpb25zLnJlcG9ydGVyIGltcG9ydCAqCitmcm9tIHBhc3RlLmV4Y2VwdGlvbnMgaW1wb3J0IGNvbGxlY3RvcgorCitkZWYgc2V0dXBfZmlsZShmbiwgY29udGVudD1Ob25lKToKKyAgICBkaXIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ3JlcG9ydGVyX291dHB1dCcpCisgICAgZm4gPSBvcy5wYXRoLmpvaW4oZGlyLCBmbikKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhkaXIpOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhmbik6CisgICAgICAgICAgICBvcy51bmxpbmsoZm4pCisgICAgZWxzZToKKyAgICAgICAgb3MubWtkaXIoZGlyKQorICAgIGlmIGNvbnRlbnQgaXMgbm90IE5vbmU6CisgICAgICAgIGYgPSBvcGVuKGZuLCAnd2InKQorICAgICAgICBmLndyaXRlKGNvbnRlbnQpCisgICAgICAgIGYuY2xvc2UoKQorICAgIHJldHVybiBmbgorCitkZWYgdGVzdF9sb2dnZXIoKToKKyAgICBmbiA9IHNldHVwX2ZpbGUoJ3Rlc3RfbG9nZ2VyLmxvZycpCisgICAgcmVwID0gTG9nUmVwb3J0ZXIoCisgICAgICAgIGZpbGVuYW1lPWZuLAorICAgICAgICBzaG93X2hpZGRlbl9mcmFtZXM9RmFsc2UpCisgICAgdHJ5OgorICAgICAgICBpbnQoJ2EnKQorICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjX2RhdGEgPSBjb2xsZWN0b3IuY29sbGVjdF9leGNlcHRpb24oKnN5cy5leGNfaW5mbygpKQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCAwCisgICAgcmVwLnJlcG9ydChleGNfZGF0YSkKKyAgICBjb250ZW50ID0gb3BlbihmbikucmVhZCgpCisgICAgYXNzZXJ0IGxlbihjb250ZW50LnNwbGl0bGluZXMoKSkgPT0gNCwgbGVuKGNvbnRlbnQuc3BsaXRsaW5lcygpKQorICAgIGFzc2VydCAnVmFsdWVFcnJvcicgaW4gY29udGVudAorICAgIGFzc2VydCAnaW50JyBpbiBjb250ZW50CisgICAgYXNzZXJ0ICd0ZXN0X3JlcG9ydGVyLnB5JyBpbiBjb250ZW50CisgICAgYXNzZXJ0ICd0ZXN0X2xvZ2dlcicgaW4gY29udGVudAorCisgICAgdHJ5OgorICAgICAgICAxIC8gMAorICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjX2RhdGEgPSBjb2xsZWN0b3IuY29sbGVjdF9leGNlcHRpb24oKnN5cy5leGNfaW5mbygpKQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCAwCisgICAgcmVwLnJlcG9ydChleGNfZGF0YSkKKyAgICBjb250ZW50ID0gb3BlbihmbikucmVhZCgpCisgICAgcHJpbnQoY29udGVudCkKKyAgICBhc3NlcnQgbGVuKGNvbnRlbnQuc3BsaXRsaW5lcygpKSA9PSA4CisgICAgYXNzZXJ0ICdaZXJvRGl2aXNpb25FcnJvcicgaW4gY29udGVudAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9maWxlYXBwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZmlsZWFwcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGQ3NTEwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZmlsZWFwcC5weQpAQCAtMCwwICsxLDI0MiBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZywgQ2xhcmsgQy4gRXZhbnMgYW5kIGNvbnRyaWJ1dG9ycworIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAoraW1wb3J0IHRpbWUKK2ltcG9ydCByYW5kb20KK2ltcG9ydCBvcworaW1wb3J0IHRlbXBmaWxlCit0cnk6CisgICAgIyBQeXRob24gMworICAgIGZyb20gZW1haWwudXRpbHMgaW1wb3J0IHBhcnNlZGF0ZV90eiwgbWt0aW1lX3R6CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgIyBQeXRob24gMgorICAgIGZyb20gcmZjODIyIGltcG9ydCBwYXJzZWRhdGVfdHosIG1rdGltZV90egoraW1wb3J0IHNpeAorCitmcm9tIHBhc3RlIGltcG9ydCBmaWxlYXBwCitmcm9tIHBhc3RlLmZpbGVhcHAgaW1wb3J0ICoKK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgKgorCisjIE5PVEUoaGF5cG8pOiBkb24ndCB1c2Ugc3RyaW5nLmxldHRlcnMgYmVjYXVzZSB0aGUgb3JkZXIgb2YgbG93ZXIgYW5kIHVwcGVyCisjIGNhc2UgbGV0dGVycyBjaGFuZ2VzIHdoZW4gbG9jYWxlLnNldGxvY2FsZSgpIGlzIGNhbGxlZCBmb3IgdGhlIGZpcnN0IHRpbWUKK0xFVFRFUlMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKKworZGVmIHRlc3RfZGF0YSgpOgorICAgIGhhcm5lc3MgPSBUZXN0QXBwKERhdGFBcHAoYidteWNvbnRlbnQnKSkKKyAgICByZXMgPSBoYXJuZXNzLmdldCgiLyIpCisgICAgYXNzZXJ0ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nID09IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpCisgICAgYXNzZXJ0ICc5JyA9PSByZXMuaGVhZGVyKCdjb250ZW50LWxlbmd0aCcpCisgICAgYXNzZXJ0ICI8UmVzcG9uc2UgMjAwIE9LICdteWNvbnRlbnQnPiIgPT0gcmVwcihyZXMpCisgICAgaGFybmVzcy5hcHAuc2V0X2NvbnRlbnQoYiJiaW5nbGVzIikKKyAgICBhc3NlcnQgIjxSZXNwb25zZSAyMDAgT0sgJ2JpbmdsZXMnPiIgPT0gcmVwcihoYXJuZXNzLmdldCgiLyIpKQorCitkZWYgdGVzdF9jYWNoZSgpOgorICAgIGRlZiBidWlsZCgqYXJncywqKmt3YXJncyk6CisgICAgICAgIGFwcCA9IERhdGFBcHAoYiJTb21lQ29udGVudCIpCisgICAgICAgIGFwcC5jYWNoZV9jb250cm9sKCphcmdzLCoqa3dhcmdzKQorICAgICAgICByZXR1cm4gVGVzdEFwcChhcHApLmdldCgiLyIpCisgICAgcmVzID0gYnVpbGQoKQorICAgIGFzc2VydCAncHVibGljJyA9PSByZXMuaGVhZGVyKCdjYWNoZS1jb250cm9sJykKKyAgICBhc3NlcnQgbm90IHJlcy5oZWFkZXIoJ2V4cGlyZXMnLE5vbmUpCisgICAgcmVzID0gYnVpbGQocHJpdmF0ZT1UcnVlKQorICAgIGFzc2VydCAncHJpdmF0ZScgPT0gcmVzLmhlYWRlcignY2FjaGUtY29udHJvbCcpCisgICAgYXNzZXJ0IG1rdGltZV90eihwYXJzZWRhdGVfdHoocmVzLmhlYWRlcignZXhwaXJlcycpKSkgPCB0aW1lLnRpbWUoKQorICAgIHJlcyA9IGJ1aWxkKG5vX2NhY2hlPVRydWUpCisgICAgYXNzZXJ0ICduby1jYWNoZScgPT0gcmVzLmhlYWRlcignY2FjaGUtY29udHJvbCcpCisgICAgYXNzZXJ0IG1rdGltZV90eihwYXJzZWRhdGVfdHoocmVzLmhlYWRlcignZXhwaXJlcycpKSkgPCB0aW1lLnRpbWUoKQorICAgIHJlcyA9IGJ1aWxkKG1heF9hZ2U9NjAsc19tYXhhZ2U9MzApCisgICAgYXNzZXJ0ICdwdWJsaWMsIG1heC1hZ2U9NjAsIHMtbWF4YWdlPTMwJyA9PSByZXMuaGVhZGVyKCdjYWNoZS1jb250cm9sJykKKyAgICBleHBpcmVzID0gbWt0aW1lX3R6KHBhcnNlZGF0ZV90eihyZXMuaGVhZGVyKCdleHBpcmVzJykpKQorICAgIGFzc2VydCBleHBpcmVzID4gdGltZS50aW1lKCkrNTggYW5kIGV4cGlyZXMgPCB0aW1lLnRpbWUoKSs2MQorICAgIHJlcyA9IGJ1aWxkKHByaXZhdGU9VHJ1ZSwgbWF4X2FnZT02MCwgbm9fdHJhbnNmb3JtPVRydWUsIG5vX3N0b3JlPVRydWUpCisgICAgYXNzZXJ0ICdwcml2YXRlLCBuby1zdG9yZSwgbm8tdHJhbnNmb3JtLCBtYXgtYWdlPTYwJyA9PSBcCisgICAgICAgICAgIHJlcy5oZWFkZXIoJ2NhY2hlLWNvbnRyb2wnKQorICAgIGV4cGlyZXMgPSBta3RpbWVfdHoocGFyc2VkYXRlX3R6KHJlcy5oZWFkZXIoJ2V4cGlyZXMnKSkpCisgICAgYXNzZXJ0IG1rdGltZV90eihwYXJzZWRhdGVfdHoocmVzLmhlYWRlcignZXhwaXJlcycpKSkgPCB0aW1lLnRpbWUoKQorCitkZWYgdGVzdF9kaXNwb3NpdGlvbigpOgorICAgIGRlZiBidWlsZCgqYXJncywqKmt3YXJncyk6CisgICAgICAgIGFwcCA9IERhdGFBcHAoYiJTb21lQ29udGVudCIpCisgICAgICAgIGFwcC5jb250ZW50X2Rpc3Bvc2l0aW9uKCphcmdzLCoqa3dhcmdzKQorICAgICAgICByZXR1cm4gVGVzdEFwcChhcHApLmdldCgiLyIpCisgICAgcmVzID0gYnVpbGQoKQorICAgIGFzc2VydCAnYXR0YWNobWVudCcgPT0gcmVzLmhlYWRlcignY29udGVudC1kaXNwb3NpdGlvbicpCisgICAgYXNzZXJ0ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nID09IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpCisgICAgcmVzID0gYnVpbGQoZmlsZW5hbWU9ImJpbmcudHh0IikKKyAgICBhc3NlcnQgJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPSJiaW5nLnR4dCInID09IFwKKyAgICAgICAgICAgIHJlcy5oZWFkZXIoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKQorICAgIGFzc2VydCAndGV4dC9wbGFpbicgPT0gcmVzLmhlYWRlcignY29udGVudC10eXBlJykKKyAgICByZXMgPSBidWlsZChpbmxpbmU9VHJ1ZSkKKyAgICBhc3NlcnQgJ2lubGluZScgPT0gcmVzLmhlYWRlcignY29udGVudC1kaXNwb3NpdGlvbicpCisgICAgYXNzZXJ0ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nID09IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpCisgICAgcmVzID0gYnVpbGQoaW5saW5lPVRydWUsIGZpbGVuYW1lPSIvc29tZS9wYXRoL2JpbmcudHh0IikKKyAgICBhc3NlcnQgJ2lubGluZTsgZmlsZW5hbWU9ImJpbmcudHh0IicgPT0gXAorICAgICAgICAgICAgcmVzLmhlYWRlcignY29udGVudC1kaXNwb3NpdGlvbicpCisgICAgYXNzZXJ0ICd0ZXh0L3BsYWluJyA9PSByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKQorICAgIHRyeToKKyAgICAgICByZXMgPSBidWlsZChpbmxpbmU9VHJ1ZSxhdHRhY2htZW50PVRydWUpCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IEZhbHNlLCAic2hvdWxkIGJlIGFuIGV4Y2VwdGlvbiIKKworZGVmIHRlc3RfbW9kaWZpZWQoKToKKyAgICBoYXJuZXNzID0gVGVzdEFwcChEYXRhQXBwKGInbXljb250ZW50JykpCisgICAgcmVzID0gaGFybmVzcy5nZXQoIi8iKQorICAgIGFzc2VydCAiPFJlc3BvbnNlIDIwMCBPSyAnbXljb250ZW50Jz4iID09IHJlcHIocmVzKQorICAgIGxhc3RfbW9kaWZpZWQgPSByZXMuaGVhZGVyKCdsYXN0LW1vZGlmaWVkJykKKyAgICByZXMgPSBoYXJuZXNzLmdldCgiLyIsaGVhZGVycz17J2lmLW1vZGlmaWVkLXNpbmNlJzogbGFzdF9tb2RpZmllZH0pCisgICAgYXNzZXJ0ICI8UmVzcG9uc2UgMzA0IE5vdCBNb2RpZmllZCAnJz4iID09IHJlcHIocmVzKQorICAgIHJlcyA9IGhhcm5lc3MuZ2V0KCIvIixoZWFkZXJzPXsnaWYtbW9kaWZpZWQtc2luY2UnOiBsYXN0X21vZGlmaWVkICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOyBsZW5ndGg9MTUwNid9KQorICAgIGFzc2VydCAiPFJlc3BvbnNlIDMwNCBOb3QgTW9kaWZpZWQgJyc+IiA9PSByZXByKHJlcykKKyAgICByZXMgPSBoYXJuZXNzLmdldCgiLyIsc3RhdHVzPTQwMCwKKyAgICAgICAgICAgIGhlYWRlcnM9eydpZi1tb2RpZmllZC1zaW5jZSc6ICdnYXJiYWdlJ30pCisgICAgYXNzZXJ0IDQwMCA9PSByZXMuc3RhdHVzIGFuZCBiImlsbC1mb3JtZWQgdGltZXN0YW1wIiBpbiByZXMuYm9keQorICAgIHJlcyA9IGhhcm5lc3MuZ2V0KCIvIixzdGF0dXM9NDAwLAorICAgICAgICAgICAgaGVhZGVycz17J2lmLW1vZGlmaWVkLXNpbmNlJzoKKyAgICAgICAgICAgICAgICAnVGh1LCAyMiBEZWMgMjAzMCAwMTowMTowMSBHTVQnfSkKKyAgICBhc3NlcnQgNDAwID09IHJlcy5zdGF0dXMgYW5kIGIiY2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siIGluIHJlcy5ib2R5CisKK2RlZiB0ZXN0X2ZpbGUoKToKKyAgICB0ZW1wZmlsZSA9ICJ0ZXN0X2ZpbGVhcHAuJXMudHh0IiAlIChyYW5kb20ucmFuZG9tKCkpCisgICAgY29udGVudCA9IExFVFRFUlMgKiAyMAorICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LmVuY29kZSgndXRmOCcpCisgICAgd2l0aCBvcGVuKHRlbXBmaWxlLCAid2IiKSBhcyBmcDoKKyAgICAgICAgZnAud3JpdGUoY29udGVudCkKKyAgICB0cnk6CisgICAgICAgIGFwcCA9IGZpbGVhcHAuRmlsZUFwcCh0ZW1wZmlsZSkKKyAgICAgICAgcmVzID0gVGVzdEFwcChhcHApLmdldCgiLyIpCisgICAgICAgIGFzc2VydCBsZW4oY29udGVudCkgPT0gaW50KHJlcy5oZWFkZXIoJ2NvbnRlbnQtbGVuZ3RoJykpCisgICAgICAgIGFzc2VydCAndGV4dC9wbGFpbicgPT0gcmVzLmhlYWRlcignY29udGVudC10eXBlJykKKyAgICAgICAgYXNzZXJ0IGNvbnRlbnQgPT0gcmVzLmJvZHkKKyAgICAgICAgYXNzZXJ0IGNvbnRlbnQgPT0gYXBwLmNvbnRlbnQgICMgdGhpcyBpcyBjYXNoZWQKKyAgICAgICAgbGFzdG1vZCA9IHJlcy5oZWFkZXIoJ2xhc3QtbW9kaWZpZWQnKQorICAgICAgICBwcmludCgidXBkYXRpbmciLCB0ZW1wZmlsZSkKKyAgICAgICAgZmlsZSA9IG9wZW4odGVtcGZpbGUsImErIikKKyAgICAgICAgZmlsZS53cml0ZSgiMDEyMzQ1Njc4OSIpCisgICAgICAgIGZpbGUuY2xvc2UoKQorICAgICAgICByZXMgPSBUZXN0QXBwKGFwcCkuZ2V0KCIvIixoZWFkZXJzPXsnQ2FjaGUtQ29udHJvbCc6ICdtYXgtYWdlPTAnfSkKKyAgICAgICAgYXNzZXJ0IGxlbihjb250ZW50KSsxMCA9PSBpbnQocmVzLmhlYWRlcignY29udGVudC1sZW5ndGgnKSkKKyAgICAgICAgYXNzZXJ0ICd0ZXh0L3BsYWluJyA9PSByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKQorICAgICAgICBhc3NlcnQgY29udGVudCArIGIiMDEyMzQ1Njc4OSIgPT0gcmVzLmJvZHkKKyAgICAgICAgYXNzZXJ0IGFwcC5jb250ZW50ICMgd2UgYXJlIHN0aWxsIGNhY2hlZAorICAgICAgICBmaWxlID0gb3Blbih0ZW1wZmlsZSwiYSsiKQorICAgICAgICBmaWxlLndyaXRlKCJYIiAqIGZpbGVhcHAuQ0FDSEVfU0laRSkgIyBleGNlZWQgdGhlIGNhc2hlIHNpemUKKyAgICAgICAgZmlsZS53cml0ZSgiWVoiKQorICAgICAgICBmaWxlLmNsb3NlKCkKKyAgICAgICAgcmVzID0gVGVzdEFwcChhcHApLmdldCgiLyIsaGVhZGVycz17J0NhY2hlLUNvbnRyb2wnOiAnbWF4LWFnZT0wJ30pCisgICAgICAgIG5ld3NpemUgPSBmaWxlYXBwLkNBQ0hFX1NJWkUgKyBsZW4oY29udGVudCkrMTIKKyAgICAgICAgYXNzZXJ0IG5ld3NpemUgPT0gaW50KHJlcy5oZWFkZXIoJ2NvbnRlbnQtbGVuZ3RoJykpCisgICAgICAgIGFzc2VydCBuZXdzaXplID09IGxlbihyZXMuYm9keSkKKyAgICAgICAgYXNzZXJ0IHJlcy5ib2R5LnN0YXJ0c3dpdGgoY29udGVudCkgYW5kIHJlcy5ib2R5LmVuZHN3aXRoKGInWFlaJykKKyAgICAgICAgYXNzZXJ0IG5vdCBhcHAuY29udGVudCAjIHdlIGFyZSBubyBsb25nZXIgY2FjaGVkCisgICAgZmluYWxseToKKyAgICAgICAgb3MudW5saW5rKHRlbXBmaWxlKQorCitkZWYgdGVzdF9kaXIoKToKKyAgICB0bXBkaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICB0cnk6CisgICAgICAgIHRtcGZpbGUgPSBvcy5wYXRoLmpvaW4odG1wZGlyLCAnZmlsZScpCisgICAgICAgIHRtcHN1YmRpciA9IG9zLnBhdGguam9pbih0bXBkaXIsICdkaXInKQorICAgICAgICBmcCA9IG9wZW4odG1wZmlsZSwgJ3cnKQorICAgICAgICBmcC53cml0ZSgnYWJjZCcpCisgICAgICAgIGZwLmNsb3NlKCkKKyAgICAgICAgb3MubWtkaXIodG1wc3ViZGlyKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhcHAgPSBmaWxlYXBwLkRpcmVjdG9yeUFwcCh0bXBkaXIpCisgICAgICAgICAgICBmb3IgcGF0aCBpbiBbJy8nLCAnJywgJy8vJywgJy8uLicsICcvLicsICcvLi4vLi4nXToKKyAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdEFwcChhcHApLmdldChwYXRoLCBzdGF0dXM9NDAzKS5zdGF0dXMgPT0gNDAzLCBWYWx1ZUVycm9yKHBhdGgpCisgICAgICAgICAgICBmb3IgcGF0aCBpbiBbJy9+JywgJy9mb28nLCAnL2RpcicsICcvZGlyLyddOgorICAgICAgICAgICAgICAgIGFzc2VydCBUZXN0QXBwKGFwcCkuZ2V0KHBhdGgsIHN0YXR1cz00MDQpLnN0YXR1cyA9PSA0MDQsIFZhbHVlRXJyb3IocGF0aCkKKyAgICAgICAgICAgIGFzc2VydCBUZXN0QXBwKGFwcCkuZ2V0KCcvZmlsZScpLmJvZHkgPT0gYidhYmNkJworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MucmVtb3ZlKHRtcGZpbGUpCisgICAgICAgICAgICBvcy5ybWRpcih0bXBzdWJkaXIpCisgICAgZmluYWxseToKKyAgICAgICAgb3Mucm1kaXIodG1wZGlyKQorCitkZWYgX2V4Y2VyY2l6ZV9yYW5nZShidWlsZCxjb250ZW50KToKKyAgICAjIGZ1bGwgY29udGVudCByZXF1ZXN0LCBidXQgdXNpbmcgcmFuZ2VzJworICAgIHJlcyA9IGJ1aWxkKCJieXRlcz0wLSVkIiAlIChsZW4oY29udGVudCktMSkpCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2FjY2VwdC1yYW5nZXMnKSA9PSAnYnl0ZXMnCisgICAgYXNzZXJ0IHJlcy5ib2R5ID09IGNvbnRlbnQKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC1sZW5ndGgnKSA9PSBzdHIobGVuKGNvbnRlbnQpKQorICAgIHJlcyA9IGJ1aWxkKCJieXRlcz0tJWQiICUgKGxlbihjb250ZW50KS0xKSkKKyAgICBhc3NlcnQgcmVzLmJvZHkgPT0gY29udGVudAorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LWxlbmd0aCcpID09IHN0cihsZW4oY29udGVudCkpCisgICAgcmVzID0gYnVpbGQoImJ5dGVzPTAtIikKKyAgICBhc3NlcnQgcmVzLmJvZHkgPT0gY29udGVudAorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LWxlbmd0aCcpID09IHN0cihsZW4oY29udGVudCkpCisgICAgIyBwYXJ0aWFsIGNvbnRlbnQgcmVxdWVzdHMKKyAgICByZXMgPSBidWlsZCgiYnl0ZXM9MC05Iiwgc3RhdHVzPTIwNikKKyAgICBhc3NlcnQgcmVzLmJvZHkgPT0gY29udGVudFs6MTBdCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2NvbnRlbnQtbGVuZ3RoJykgPT0gJzEwJworICAgIHJlcyA9IGJ1aWxkKCJieXRlcz0lZC0iICUgKGxlbihjb250ZW50KS0xKSwgc3RhdHVzPTIwNikKKyAgICBhc3NlcnQgcmVzLmJvZHkgPT0gYidaJworICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LWxlbmd0aCcpID09ICcxJworICAgIHJlcyA9IGJ1aWxkKCJieXRlcz0lZC0lZCIgJSAoMywxNyksIHN0YXR1cz0yMDYpCisgICAgYXNzZXJ0IHJlcy5ib2R5ID09IGNvbnRlbnRbMzoxOF0KKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC1sZW5ndGgnKSA9PSAnMTUnCisKK2RlZiB0ZXN0X3JhbmdlKCk6CisgICAgY29udGVudCA9IExFVFRFUlMgKiA1CisgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgY29udGVudCA9IGNvbnRlbnQuZW5jb2RlKCd1dGY4JykKKyAgICBkZWYgYnVpbGQocmFuZ2UsIHN0YXR1cz0yMDYpOgorICAgICAgICBhcHAgPSBEYXRhQXBwKGNvbnRlbnQpCisgICAgICAgIHJldHVybiBUZXN0QXBwKGFwcCkuZ2V0KCIvIixoZWFkZXJzPXsnUmFuZ2UnOiByYW5nZX0sIHN0YXR1cz1zdGF0dXMpCisgICAgX2V4Y2VyY2l6ZV9yYW5nZShidWlsZCxjb250ZW50KQorICAgIGJ1aWxkKCdieXRlcz0wLSVkJyAlIChsZW4oY29udGVudCkrMSksIDQxNikKKworZGVmIHRlc3RfZmlsZV9yYW5nZSgpOgorICAgIHRlbXBmaWxlID0gInRlc3RfZmlsZWFwcC4lcy50eHQiICUgKHJhbmRvbS5yYW5kb20oKSkKKyAgICBjb250ZW50ID0gTEVUVEVSUyAqICgxKyhmaWxlYXBwLkNBQ0hFX1NJWkUgLy8gbGVuKExFVFRFUlMpKSkKKyAgICBpZiBzaXguUFkzOgorICAgICAgICBjb250ZW50ID0gY29udGVudC5lbmNvZGUoJ3V0ZjgnKQorICAgIGFzc2VydCBsZW4oY29udGVudCkgPiBmaWxlYXBwLkNBQ0hFX1NJWkUKKyAgICB3aXRoIG9wZW4odGVtcGZpbGUsICJ3YiIpIGFzIGZwOgorICAgICAgICBmcC53cml0ZShjb250ZW50KQorICAgIHRyeToKKyAgICAgICAgZGVmIGJ1aWxkKHJhbmdlLCBzdGF0dXM9MjA2KToKKyAgICAgICAgICAgIGFwcCA9IGZpbGVhcHAuRmlsZUFwcCh0ZW1wZmlsZSkKKyAgICAgICAgICAgIHJldHVybiBUZXN0QXBwKGFwcCkuZ2V0KCIvIixoZWFkZXJzPXsnUmFuZ2UnOiByYW5nZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPXN0YXR1cykKKyAgICAgICAgX2V4Y2VyY2l6ZV9yYW5nZShidWlsZCxjb250ZW50KQorICAgICAgICBmb3Igc2l6ZSBpbiAoMTMsbGVuKExFVFRFUlMpLCBsZW4oTEVUVEVSUyktMSk6CisgICAgICAgICAgICBmaWxlYXBwLkJMT0NLX1NJWkUgPSBzaXplCisgICAgICAgICAgICBfZXhjZXJjaXplX3JhbmdlKGJ1aWxkLGNvbnRlbnQpCisgICAgZmluYWxseToKKyAgICAgICAgb3MudW5saW5rKHRlbXBmaWxlKQorCitkZWYgdGVzdF9maWxlX2NhY2hlKCk6CisgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJscGFyc2VyX2RhdGEnLCAnc2VjdXJlZC50eHQnKQorICAgIGFwcCA9IFRlc3RBcHAoZmlsZWFwcC5GaWxlQXBwKGZpbGVuYW1lKSkKKyAgICByZXMgPSBhcHAuZ2V0KCcvJykKKyAgICBldGFnID0gcmVzLmhlYWRlcignRVRhZycpCisgICAgbGFzdF9tb2QgPSByZXMuaGVhZGVyKCdMYXN0LU1vZGlmaWVkJykKKyAgICByZXMgPSBhcHAuZ2V0KCcvJywgaGVhZGVycz17J0lmLU1vZGlmaWVkLVNpbmNlJzogbGFzdF9tb2R9LAorICAgICAgICAgICAgICAgICAgc3RhdHVzPTMwNCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvJywgaGVhZGVycz17J0lmLU5vbmUtTWF0Y2gnOiBldGFnfSwKKyAgICAgICAgICAgICAgICAgIHN0YXR1cz0zMDQpCisgICAgcmVzID0gYXBwLmdldCgnLycsIGhlYWRlcnM9eydJZi1Ob25lLU1hdGNoJzogJ2FzZGYnfSwKKyAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDApCisgICAgcmVzID0gYXBwLmdldCgnLycsIGhlYWRlcnM9eydJZi1Nb2RpZmllZC1TaW5jZSc6ICdTYXQsIDEgSmFuIDIwMDUgMTI6MDA6MDAgR01UJ30sCisgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwKQorICAgIHJlcyA9IGFwcC5nZXQoJy8nLCBoZWFkZXJzPXsnSWYtTW9kaWZpZWQtU2luY2UnOiBsYXN0X21vZCArICc7IGxlbmd0aD0xMDAnfSwKKyAgICAgICAgICAgICAgICAgIHN0YXR1cz0zMDQpCisgICAgcmVzID0gYXBwLmdldCgnLycsIGhlYWRlcnM9eydJZi1Nb2RpZmllZC1TaW5jZSc6ICdpbnZhbGlkIGRhdGUnfSwKKyAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDApCisKK2RlZiB0ZXN0X21ldGhvZHMoKToKKyAgICBmaWxlbmFtZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmxwYXJzZXJfZGF0YScsICdzZWN1cmVkLnR4dCcpCisgICAgYXBwID0gVGVzdEFwcChmaWxlYXBwLkZpbGVBcHAoZmlsZW5hbWUpKQorICAgIGdldF9yZXMgPSBhcHAuZ2V0KCcnKQorICAgIHJlcyA9IGFwcC5nZXQoJycsIGV4dHJhX2Vudmlyb249eydSRVFVRVNUX01FVEhPRCc6ICdIRUFEJ30pCisgICAgYXNzZXJ0IHJlcy5oZWFkZXJzID09IGdldF9yZXMuaGVhZGVycworICAgIGFzc2VydCBub3QgcmVzLmJvZHkKKyAgICBhcHAucG9zdCgnJywgc3RhdHVzPTQwNSkgIyBNZXRob2QgTm90IEFsbG93ZWQKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZml4dHVyZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2ZpeHR1cmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE1NjQ4OAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2ZpeHR1cmUucHkKQEAgLTAsMCArMSwyOCBAQAorZnJvbSBwYXN0ZS5kZWJ1Zy5kZWJ1Z2FwcCBpbXBvcnQgU2ltcGxlQXBwbGljYXRpb24KK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgVGVzdEFwcAorCitkZWYgdGVzdF9maXh0dXJlKCk6CisgICAgYXBwID0gVGVzdEFwcChTaW1wbGVBcHBsaWNhdGlvbigpKQorICAgIHJlcyA9IGFwcC5nZXQoJy8nLCBwYXJhbXM9eydhJzogWycxJywgJzInXX0pCisgICAgYXNzZXJ0IChyZXMucmVxdWVzdC5lbnZpcm9uWydRVUVSWV9TVFJJTkcnXSA9PQorICAgICAgICAgICAgJ2E9MSZhPTInKQorICAgIHJlcyA9IGFwcC5wdXQoJy8nKQorICAgIGFzc2VydCAocmVzLnJlcXVlc3QuZW52aXJvblsnUkVRVUVTVF9NRVRIT0QnXSA9PQorICAgICAgICAgICAgJ1BVVCcpCisgICAgcmVzID0gYXBwLmRlbGV0ZSgnLycpCisgICAgYXNzZXJ0IChyZXMucmVxdWVzdC5lbnZpcm9uWydSRVFVRVNUX01FVEhPRCddID09CisgICAgICAgICAgICAnREVMRVRFJykKKyAgICBjbGFzcyBGYWtlRGljdChvYmplY3QpOgorICAgICAgICBkZWYgaXRlbXMoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gWygnYScsICcxMCcpLCAoJ2EnLCAnMjAnKV0KKyAgICByZXMgPSBhcHAucG9zdCgnL3BhcmFtcycsIHBhcmFtcz1GYWtlRGljdCgpKQorCisgICAgIyB0ZXN0IG11bHRpcGxlIGNvb2tpZXMgaW4gb25lIHJlcXVlc3QKKyAgICBhcHAuY29va2llc1snb25lJ10gPSAnZmlyc3QnOworICAgIGFwcC5jb29raWVzWyd0d28nXSA9ICdzZWNvbmQnOworICAgIGFwcC5jb29raWVzWyd0aHJlZSddID0gJyc7CisgICAgcmVzID0gYXBwLmdldCgnLycpCisgICAgaGMgPSByZXMucmVxdWVzdC5lbnZpcm9uWydIVFRQX0NPT0tJRSddLnNwbGl0KCc7ICcpOworICAgIGFzc2VydCAoJ29uZT1maXJzdCcgaW4gaGMpCisgICAgYXNzZXJ0ICgndHdvPXNlY29uZCcgaW4gaGMpCisgICAgYXNzZXJ0ICgndGhyZWU9JyBpbiBoYykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2dyYW50aXAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9ncmFudGlwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZGY3ZjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9ncmFudGlwLnB5CkBAIC0wLDAgKzEsMzcgQEAKK2Zyb20gcGFzdGUuYXV0aCBpbXBvcnQgZ3JhbnRpcAorZnJvbSBwYXN0ZS5maXh0dXJlIGltcG9ydCAqCisKK2RlZiB0ZXN0X21ha2VfYXBwKCk6CisgICAgZGVmIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICBsaW5lcyA9IFsKKyAgICAgICAgICAgIHN0cihlbnZpcm9uLmdldCgnUkVNT1RFX1VTRVInKSksCisgICAgICAgICAgICAnOicsCisgICAgICAgICAgICBzdHIoZW52aXJvbi5nZXQoJ1JFTU9URV9VU0VSX1RPS0VOUycpKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIGxpbmVzID0gW2xpbmUuZW5jb2RlKCd1dGY4JykgZm9yIGxpbmUgaW4gbGluZXNdCisgICAgICAgIHJldHVybiBsaW5lcworICAgIGlwX21hcCA9IHsKKyAgICAgICAgJzEyNy4wLjAuMSc6IChOb25lLCAnc3lzdGVtJyksCisgICAgICAgICcxOTIuMTY4LjAuMC8xNic6IChOb25lLCAnd29ya2VyJyksCisgICAgICAgICcxOTIuMTY4LjAuNTwtPjE5Mi4xNjguMC44JzogKCdib2InLCAnZWRpdG9yJyksCisgICAgICAgICcxOTIuMTY4LjAuOCc6ICgnX19yZW1vdmVfXycsICctd29ya2VyJyksCisgICAgICAgIH0KKyAgICBhcHAgPSBncmFudGlwLkdyYW50SVBNaWRkbGV3YXJlKGFwcGxpY2F0aW9uLCBpcF9tYXApCisgICAgYXBwID0gVGVzdEFwcChhcHApCisgICAgcmV0dXJuIGFwcAorCitkZWYgdGVzdF9yZXEoKToKKyAgICBhcHAgPSB0ZXN0X21ha2VfYXBwKCkKKyAgICBkZWYgZG9pdChyZW1vdGVfYWRkcik6CisgICAgICAgIHJlcyA9IGFwcC5nZXQoJy8nLCBleHRyYV9lbnZpcm9uPXsnUkVNT1RFX0FERFInOiByZW1vdGVfYWRkcn0pCisgICAgICAgIHJldHVybiByZXMuYm9keQorICAgIGFzc2VydCBkb2l0KCcxMjcuMC4wLjEnKSA9PSBiJ05vbmU6c3lzdGVtJworICAgIGFzc2VydCBkb2l0KCcxOTIuMTY4LjE1LjEyJykgPT0gYidOb25lOndvcmtlcicKKyAgICBhc3NlcnQgZG9pdCgnMTkyLjE2OC4wLjQnKSA9PSBiJ05vbmU6d29ya2VyJworICAgIHJlc3VsdCA9IGRvaXQoJzE5Mi4xNjguMC41JykKKyAgICBhc3NlcnQgcmVzdWx0LnN0YXJ0c3dpdGgoYidib2I6JykKKyAgICBhc3NlcnQgYidlZGl0b3InIGluIHJlc3VsdCBhbmQgYid3b3JrZXInIGluIHJlc3VsdAorICAgIGFzc2VydCByZXN1bHQuY291bnQoYicsJykgPT0gMQorICAgIGFzc2VydCBkb2l0KCcxOTIuMTY4LjAuOCcpID09IGInTm9uZTplZGl0b3InCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9nemlwcGVyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZ3ppcHBlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGI3OTAxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfZ3ppcHBlci5weQpAQCAtMCwwICsxLDE5IEBACitmcm9tIHBhc3RlLmZpeHR1cmUgaW1wb3J0IFRlc3RBcHAKK2Zyb20gcGFzdGUuZ3ppcHBlciBpbXBvcnQgbWlkZGxld2FyZQoraW1wb3J0IGd6aXAKK2ltcG9ydCBzaXgKKworZGVmIHNpbXBsZV9hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICByZXR1cm4gW2IndGhpcyBpcyBhIHRlc3QnXQorCit3c2dpX2FwcCA9IG1pZGRsZXdhcmUoc2ltcGxlX2FwcCkKK2FwcCA9IFRlc3RBcHAod3NnaV9hcHApCisKK2RlZiB0ZXN0X2d6aXAoKToKKyAgICByZXMgPSBhcHAuZ2V0KAorICAgICAgICAnLycsIGV4dHJhX2Vudmlyb249ZGljdChIVFRQX0FDQ0VQVF9FTkNPRElORz0nZ3ppcCcpKQorICAgIGFzc2VydCBpbnQocmVzLmhlYWRlcignY29udGVudC1sZW5ndGgnKSkgPT0gbGVuKHJlcy5ib2R5KQorICAgIGFzc2VydCByZXMuYm9keSAhPSBiJ3RoaXMgaXMgYSB0ZXN0JworICAgIGFjdHVhbCA9IGd6aXAuR3ppcEZpbGUoZmlsZW9iaj1zaXguQnl0ZXNJTyhyZXMuYm9keSkpLnJlYWQoKQorICAgIGFzc2VydCBhY3R1YWwgPT0gYid0aGlzIGlzIGEgdGVzdCcKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2h0dHBoZWFkZXJzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfaHR0cGhlYWRlcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM1NjBkMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2h0dHBoZWFkZXJzLnB5CkBAIC0wLDAgKzEsMTU5IEBACitmcm9tIHBhc3RlLmh0dHBoZWFkZXJzIGltcG9ydCAqCitpbXBvcnQgdGltZQorCitkZWYgX3Rlc3RfZ2VuZXJpYyhjb2xsZWN0aW9uKToKKyAgICBhc3NlcnQgJ2JpbmcnID09IFZJQShjb2xsZWN0aW9uKQorICAgIFJFRkVSRVIudXBkYXRlKGNvbGxlY3Rpb24sJ2ludGVybmFsOi9zb21lL3BhdGgnKQorICAgIGFzc2VydCAnaW50ZXJuYWw6L3NvbWUvcGF0aCcgPT0gUkVGRVJFUihjb2xsZWN0aW9uKQorICAgIENBQ0hFX0NPTlRST0wudXBkYXRlKGNvbGxlY3Rpb24sbWF4X2FnZT0xMjM0KQorICAgIENPTlRFTlRfRElTUE9TSVRJT04udXBkYXRlKGNvbGxlY3Rpb24sZmlsZW5hbWU9ImJpbmdsZXMudHh0IikKKyAgICBQUkFHTUEudXBkYXRlKGNvbGxlY3Rpb24sInRlc3QiLCJtdWx0aSIsJ3ZhbHVlZD0iaXRlbXMiJykKKyAgICBhc3NlcnQgJ3B1YmxpYywgbWF4LWFnZT0xMjM0JyA9PSBDQUNIRV9DT05UUk9MKGNvbGxlY3Rpb24pCisgICAgYXNzZXJ0ICdhdHRhY2htZW50OyBmaWxlbmFtZT0iYmluZ2xlcy50eHQiJyA9PSBcCisgICAgICAgICAgICBDT05URU5UX0RJU1BPU0lUSU9OKGNvbGxlY3Rpb24pCisgICAgYXNzZXJ0ICd0ZXN0LCBtdWx0aSwgdmFsdWVkPSJpdGVtcyInID09IFBSQUdNQShjb2xsZWN0aW9uKQorICAgIFZJQS5kZWxldGUoY29sbGVjdGlvbikKKworCitkZWYgdGVzdF9lbnZpcm9uKCk6CisgICAgY29sbGVjdGlvbiA9IHsnSFRUUF9WSUEnOidiaW5nJywgJ3dzZ2kudmVyc2lvbic6ICcxLjAnIH0KKyAgICBfdGVzdF9nZW5lcmljKGNvbGxlY3Rpb24pCisgICAgYXNzZXJ0IGNvbGxlY3Rpb24gPT0geyd3c2dpLnZlcnNpb24nOiAnMS4wJywKKyAgICAgICdIVFRQX1BSQUdNQSc6ICd0ZXN0LCBtdWx0aSwgdmFsdWVkPSJpdGVtcyInLAorICAgICAgJ0hUVFBfUkVGRVJFUic6ICdpbnRlcm5hbDovc29tZS9wYXRoJywKKyAgICAgICdIVFRQX0NPTlRFTlRfRElTUE9TSVRJT04nOiAnYXR0YWNobWVudDsgZmlsZW5hbWU9ImJpbmdsZXMudHh0IicsCisgICAgICAnSFRUUF9DQUNIRV9DT05UUk9MJzogJ3B1YmxpYywgbWF4LWFnZT0xMjM0JworICAgIH0KKworZGVmIHRlc3RfZW52aXJvbl9jZ2koKToKKyAgICBlbnZpcm9uID0geydDT05URU5UX1RZUEUnOiAndGV4dC9wbGFpbicsICd3c2dpLnZlcnNpb24nOiAnMS4wJywKKyAgICAgICAgICAgICAgICdIVFRQX0NPTlRFTlRfVFlQRSc6ICdpZ25vcmVkL2ludmFsaWQnLAorICAgICAgICAgICAgICAgJ0NPTlRFTlRfTEVOR1RIJzogJzIwMCd9CisgICAgYXNzZXJ0ICd0ZXh0L3BsYWluJyA9PSBDT05URU5UX1RZUEUoZW52aXJvbikKKyAgICBhc3NlcnQgJzIwMCcgPT0gQ09OVEVOVF9MRU5HVEgoZW52aXJvbikKKyAgICBDT05URU5UX1RZUEUudXBkYXRlKGVudmlyb24sJ25ldy90eXBlJykKKyAgICBhc3NlcnQgJ25ldy90eXBlJyA9PSBDT05URU5UX1RZUEUoZW52aXJvbikKKyAgICBDT05URU5UX1RZUEUuZGVsZXRlKGVudmlyb24pCisgICAgYXNzZXJ0ICcnID09IENPTlRFTlRfVFlQRShlbnZpcm9uKQorICAgIGFzc2VydCAnaWdub3JlZC9pbnZhbGlkJyA9PSBlbnZpcm9uWydIVFRQX0NPTlRFTlRfVFlQRSddCisKK2RlZiB0ZXN0X3Jlc3BvbnNlX2hlYWRlcnMoKToKKyAgICBjb2xsZWN0aW9uID0gWygndmlhJywgJ2JpbmcnKV0KKyAgICBfdGVzdF9nZW5lcmljKGNvbGxlY3Rpb24pCisgICAgbm9ybWFsaXplX2hlYWRlcnMoY29sbGVjdGlvbikKKyAgICBhc3NlcnQgY29sbGVjdGlvbiA9PSBbCisgICAgICAgICgnQ2FjaGUtQ29udHJvbCcsICdwdWJsaWMsIG1heC1hZ2U9MTIzNCcpLAorICAgICAgICAoJ1ByYWdtYScsICd0ZXN0LCBtdWx0aSwgdmFsdWVkPSJpdGVtcyInKSwKKyAgICAgICAgKCdSZWZlcmVyJywgJ2ludGVybmFsOi9zb21lL3BhdGgnKSwKKyAgICAgICAgKCdDb250ZW50LURpc3Bvc2l0aW9uJywgJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPSJiaW5nbGVzLnR4dCInKQorICAgIF0KKworZGVmIHRlc3RfY2FjaGVfY29udHJvbCgpOgorICAgIGFzc2VydCAncHVibGljJyA9PSBDQUNIRV9DT05UUk9MKCkKKyAgICBhc3NlcnQgJ3B1YmxpYycgPT0gQ0FDSEVfQ09OVFJPTChwdWJsaWM9VHJ1ZSkKKyAgICBhc3NlcnQgJ3ByaXZhdGUnID09IENBQ0hFX0NPTlRST0wocHJpdmF0ZT1UcnVlKQorICAgIGFzc2VydCAnbm8tY2FjaGUnID09IENBQ0hFX0NPTlRST0wobm9fY2FjaGU9VHJ1ZSkKKyAgICBhc3NlcnQgJ3ByaXZhdGUsIG5vLXN0b3JlJyA9PSBDQUNIRV9DT05UUk9MKHByaXZhdGU9VHJ1ZSwgbm9fc3RvcmU9VHJ1ZSkKKyAgICBhc3NlcnQgJ3B1YmxpYywgbWF4LWFnZT02MCcgPT0gQ0FDSEVfQ09OVFJPTChtYXhfYWdlPTYwKQorICAgIGFzc2VydCAncHVibGljLCBtYXgtYWdlPTg2NDAwJyA9PSBcCisgICAgICAgICAgICBDQUNIRV9DT05UUk9MKG1heF9hZ2U9Q0FDSEVfQ09OVFJPTC5PTkVfREFZKQorICAgIENBQ0hFX0NPTlRST0wuZXh0ZW5zaW9uc1snY29tbXVuaXR5J10gPSBzdHIKKyAgICBhc3NlcnQgJ3B1YmxpYywgY29tbXVuaXR5PSJiaW5nbGVzIicgPT0gXAorICAgICAgICAgICAgQ0FDSEVfQ09OVFJPTChjb21tdW5pdHk9ImJpbmdsZXMiKQorICAgIGhlYWRlcnMgPSBbXQorICAgIENBQ0hFX0NPTlRST0wuYXBwbHkoaGVhZGVycyxtYXhfYWdlPTYwKQorICAgIGFzc2VydCAncHVibGljLCBtYXgtYWdlPTYwJyA9PSBDQUNIRV9DT05UUk9MKGhlYWRlcnMpCisgICAgYXNzZXJ0IEVYUElSRVMucGFyc2UoaGVhZGVycykgPiB0aW1lLnRpbWUoKQorICAgIGFzc2VydCBFWFBJUkVTLnBhcnNlKGhlYWRlcnMpIDwgdGltZS50aW1lKCkgKyA2MAorCitkZWYgdGVzdF9jb250ZW50X2Rpc3Bvc2l0aW9uKCk6CisgICAgYXNzZXJ0ICdhdHRhY2htZW50JyA9PSBDT05URU5UX0RJU1BPU0lUSU9OKCkKKyAgICBhc3NlcnQgJ2F0dGFjaG1lbnQnID09IENPTlRFTlRfRElTUE9TSVRJT04oYXR0YWNobWVudD1UcnVlKQorICAgIGFzc2VydCAnaW5saW5lJyA9PSBDT05URU5UX0RJU1BPU0lUSU9OKGlubGluZT1UcnVlKQorICAgIGFzc2VydCAnaW5saW5lOyBmaWxlbmFtZT0idGVzdC50eHQiJyA9PSBcCisgICAgICAgICAgICBDT05URU5UX0RJU1BPU0lUSU9OKGlubGluZT1UcnVlLCBmaWxlbmFtZT0idGVzdC50eHQiKQorICAgIGFzc2VydCAnYXR0YWNobWVudDsgZmlsZW5hbWU9InRlc3QudHh0IicgPT0gXAorICAgICAgICAgICAgQ09OVEVOVF9ESVNQT1NJVElPTihmaWxlbmFtZT0iL3NvbWUvcGF0aC90ZXN0LnR4dCIpCisgICAgaGVhZGVycyA9IFtdCisgICAgQ09OVEVOVF9ESVNQT1NJVElPTi5hcHBseShoZWFkZXJzLGZpbGVuYW1lPSJ0ZXN0LnR4dCIpCisgICAgYXNzZXJ0ICd0ZXh0L3BsYWluJyA9PSBDT05URU5UX1RZUEUoaGVhZGVycykKKyAgICBDT05URU5UX0RJU1BPU0lUSU9OLmFwcGx5KGhlYWRlcnMsZmlsZW5hbWU9InRlc3QiKQorICAgIGFzc2VydCAndGV4dC9wbGFpbicgPT0gQ09OVEVOVF9UWVBFKGhlYWRlcnMpCisgICAgQ09OVEVOVF9ESVNQT1NJVElPTi5hcHBseShoZWFkZXJzLGZpbGVuYW1lPSJ0ZXN0Lmh0bWwiKQorICAgIGFzc2VydCAndGV4dC9wbGFpbicgPT0gQ09OVEVOVF9UWVBFKGhlYWRlcnMpCisgICAgaGVhZGVycyA9IFsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKV0KKyAgICBDT05URU5UX0RJU1BPU0lUSU9OLmFwcGx5KGhlYWRlcnMsZmlsZW5hbWU9InRlc3QudHh0IikKKyAgICBhc3NlcnQgJ3RleHQvcGxhaW4nID09IENPTlRFTlRfVFlQRShoZWFkZXJzKQorICAgIGFzc2VydCBoZWFkZXJzID09IFsKKyAgICAgICgnQ29udGVudC1UeXBlJywgJ3RleHQvcGxhaW4nKSwKKyAgICAgICgnQ29udGVudC1EaXNwb3NpdGlvbicsICdhdHRhY2htZW50OyBmaWxlbmFtZT0idGVzdC50eHQiJykKKyAgICBdCisKK2RlZiB0ZXN0X3JhbmdlKCk6CisgICAgYXNzZXJ0ICgnYnl0ZXMnLFsoMCwzMDApXSkgPT0gUkFOR0UucGFyc2UoImJ5dGVzPTAtMzAwIikKKyAgICBhc3NlcnQgKCdieXRlcycsWygwLDMwMCldKSA9PSBSQU5HRS5wYXJzZSgiYnl0ZXMgICA9ICAtMzAwIikKKyAgICBhc3NlcnQgKCdieXRlcycsWygwLE5vbmUpXSkgPT0gUkFOR0UucGFyc2UoImJ5dGVzPSAgLSIpCisgICAgYXNzZXJ0ICgnYnl0ZXMnLFsoMCxOb25lKV0pID09IFJBTkdFLnBhcnNlKCJieXRlcz0wICAgLSAgICIpCisgICAgYXNzZXJ0ICgnYnl0ZXMnLFsoMzAwLE5vbmUpXSkgPT0gUkFOR0UucGFyc2UoIiAgIEJZVEVTPTMwMC0iKQorICAgIGFzc2VydCAoJ2J5dGVzJyxbKDQsNSksKDYsNyldKSA9PSBSQU5HRS5wYXJzZSgiIEJ5dGVzID0gNCAtIDUsNiAtIDA3ICAiKQorICAgIGFzc2VydCAoJ2J5dGVzJyxbKDAsNSksKDcsTm9uZSldKSA9PSBSQU5HRS5wYXJzZSgiIGJ5dGVzPS01LDctIikKKyAgICBhc3NlcnQgKCdieXRlcycsWygwLDUpLCg3LE5vbmUpXSkgPT0gUkFOR0UucGFyc2UoIiBieXRlcz0tNSw3LSIpCisgICAgYXNzZXJ0ICgnYnl0ZXMnLFsoMCw1KSwoNyxOb25lKV0pID09IFJBTkdFLnBhcnNlKCIgYnl0ZXM9LTUsNy0iKQorICAgIGFzc2VydCBOb25lID09IFJBTkdFLnBhcnNlKCIiKQorICAgIGFzc2VydCBOb25lID09IFJBTkdFLnBhcnNlKCJieXRlcz0wLDMwMCIpCisgICAgYXNzZXJ0IE5vbmUgPT0gUkFOR0UucGFyc2UoImJ5dGVzPS03LDUtIikKKworZGVmIHRlc3RfY29weSgpOgorICAgIGVudmlyb24gPSB7J0hUVFBfVklBJzonYmluZycsICd3c2dpLnZlcnNpb24nOiAnMS4wJyB9CisgICAgcmVzcG9uc2VfaGVhZGVycyA9IFtdCisgICAgVklBLnVwZGF0ZShyZXNwb25zZV9oZWFkZXJzLGVudmlyb24pCisgICAgYXNzZXJ0IHJlc3BvbnNlX2hlYWRlcnMgPT0gWygnVmlhJywgJ2JpbmcnKV0KKworZGVmIHRlc3Rfc29ydGluZygpOgorICAgICMgdmVyaWZ5IHRoZSBIVFRQX0hFQURFUlMgYXJlIHNldCB3aXRoIHRoZWlyIGNhbm9uaWNhbCBmb3JtCisgICAgc2FtcGxlID0gW1dXV19BVVRIRU5USUNBVEUsIFZJQSwgQUNDRVBULCBEQVRFLAorICAgIEFDQ0VQVF9DSEFSU0VULCBBR0UsIEFMTE9XLCBDQUNIRV9DT05UUk9MLAorICAgIENPTlRFTlRfRU5DT0RJTkcsIEVUQUcsIENPTlRFTlRfVFlQRSwgRlJPTSwKKyAgICBFWFBJUkVTLCBSQU5HRSwgVVBHUkFERSwgVkFSWSwgQUxMT1ddCisgICAgc2FtcGxlLnNvcnQoKQorICAgIHNhbXBsZSA9IFtzdHIoeCkgZm9yIHggaW4gc2FtcGxlXQorICAgIGFzc2VydCBzYW1wbGUgPT0gWworICAgICAjIGdlbmVyYWwgaGVhZGVycyBmaXJzdAorICAgICAnQ2FjaGUtQ29udHJvbCcsICdEYXRlJywgJ1VwZ3JhZGUnLCAnVmlhJywKKyAgICAgIyByZXF1ZXN0IGhlYWRlcnMgbmV4dAorICAgICAnQWNjZXB0JywgJ0FjY2VwdC1DaGFyc2V0JywgJ0Zyb20nLCAnUmFuZ2UnLAorICAgICAjIHJlc3BvbnNlIGhlYWRlcnMgZm9sbG93aW5nCisgICAgICdBZ2UnLCAnRVRhZycsICdWYXJ5JywgJ1dXVy1BdXRoZW50aWNhdGUnLAorICAgICAjIGVudGl0eSBoZWFkZXJzICgvdyBleHBlY3RlZCBkdXBsaWNhdGUpCisgICAgICdBbGxvdycsICdBbGxvdycsICdDb250ZW50LUVuY29kaW5nJywgJ0NvbnRlbnQtVHlwZScsICdFeHBpcmVzJworICAgIF0KKworZGVmIHRlc3Rfbm9ybWFsaXplKCk6CisgICAgcmVzcG9uc2VfaGVhZGVycyA9IFsKKyAgICAgICAoJ3d3dy1hdXRoZW50aWNhdGUnLCdSZXNwb25zZSBBdXRoTWVzc2FnZScpLAorICAgICAgICgndW5rbm93bi1oZWFkZXInLCdVbmtub3duIFNvcnRlZCBMYXN0JyksCisgICAgICAgKCdWaWEnLCdHZW5lcmFsIEJpbmdsZXMnKSwKKyAgICAgICAoJ2FMTG9XJywnRW50aXR5IEFsbG93IFNvbWV0aGluZycpLAorICAgICAgICgnRVRBRycsJ1Jlc3BvbnNlIDM0MjM0JyksCisgICAgICAgKCdleHBpcmVzJywnRW50aXR5IEFuLUV4cGlyYXRpb24tRGF0ZScpLAorICAgICAgICgnZGF0ZScsJ0dlbmVyYWwgQS1EYXRlJyldCisgICAgbm9ybWFsaXplX2hlYWRlcnMocmVzcG9uc2VfaGVhZGVycywgc3RyaWN0PUZhbHNlKQorICAgIGFzc2VydCByZXNwb25zZV9oZWFkZXJzID09IFsKKyAgICAgKCdEYXRlJywgJ0dlbmVyYWwgQS1EYXRlJyksCisgICAgICgnVmlhJywgJ0dlbmVyYWwgQmluZ2xlcycpLAorICAgICAoJ0VUYWcnLCAnUmVzcG9uc2UgMzQyMzQnKSwKKyAgICAgKCdXV1ctQXV0aGVudGljYXRlJywgJ1Jlc3BvbnNlIEF1dGhNZXNzYWdlJyksCisgICAgICgnQWxsb3cnLCAnRW50aXR5IEFsbG93IFNvbWV0aGluZycpLAorICAgICAoJ0V4cGlyZXMnLCAnRW50aXR5IEFuLUV4cGlyYXRpb24tRGF0ZScpLAorICAgICAoJ1Vua25vd24tSGVhZGVyJywgJ1Vua25vd24gU29ydGVkIExhc3QnKV0KKworZGVmIHRlc3RfaWZfbW9kaWZpZWRfc2luY2UoKToKKyAgICBmcm9tIHBhc3RlLmh0dHBleGNlcHRpb25zIGltcG9ydCBIVFRQQmFkUmVxdWVzdAorICAgIGRhdGUgPSAnVGh1LCAzNCBKdWwgMzExOSAyOTozNDoxOCBHTVQnCisgICAgdHJ5OgorICAgICAgICB4ID0gSUZfTU9ESUZJRURfU0lOQ0UucGFyc2UoeydIVFRQX0lGX01PRElGSUVEX1NJTkNFJzogZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd3NnaS52ZXJzaW9uJzogKDEsIDApfSkKKyAgICBleGNlcHQgSFRUUEJhZFJlcXVlc3Q6CisgICAgICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgMApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfaHR0cHNlcnZlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2h0dHBzZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q3MmM3OQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2h0dHBzZXJ2ZXIucHkKQEAgLTAsMCArMSw0NSBAQAoraW1wb3J0IGVtYWlsCisKK2Zyb20gcGFzdGUuaHR0cHNlcnZlciBpbXBvcnQgV1NHSUhhbmRsZXIKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBTdHJpbmdJTworCisKK2NsYXNzIE1vY2tTZXJ2ZXIob2JqZWN0KToKKyAgICBzZXJ2ZXJfYWRkcmVzcyA9ICgnMTI3LjAuMC4xJywgODApCisKKworY2xhc3MgTW9ja1NvY2tldChvYmplY3QpOgorICAgIGRlZiBtYWtlZmlsZShzZWxmLCBtb2RlLCBidWZzaXplKToKKyAgICAgICAgcmV0dXJuIFN0cmluZ0lPKCkKKworCitkZWYgdGVzdF9lbnZpcm9uKCk6CisgICAgbW9ja19zb2NrZXQgPSBNb2NrU29ja2V0KCkKKyAgICBtb2NrX2NsaWVudF9hZGRyZXNzID0gJzEuMi4zLjQnCisgICAgbW9ja19zZXJ2ZXIgPSBNb2NrU2VydmVyKCkKKworICAgIHdzZ2lfaGFuZGxlciA9IFdTR0lIYW5kbGVyKG1vY2tfc29ja2V0LCBtb2NrX2NsaWVudF9hZGRyZXNzLCBtb2NrX3NlcnZlcikKKyAgICB3c2dpX2hhbmRsZXIuY29tbWFuZCA9ICdHRVQnCisgICAgd3NnaV9oYW5kbGVyLnBhdGggPSAnL3BhdGgnCisgICAgd3NnaV9oYW5kbGVyLnJlcXVlc3RfdmVyc2lvbiA9ICdIVFRQLzEuMCcKKyAgICB3c2dpX2hhbmRsZXIuaGVhZGVycyA9IGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcoJ0hvc3Q6IG15d2Vic2l0ZScpCisKKyAgICB3c2dpX2hhbmRsZXIud3NnaV9zZXR1cCgpCisKKyAgICBhc3NlcnQgd3NnaV9oYW5kbGVyLndzZ2lfZW52aXJvblsnSFRUUF9IT1NUJ10gPT0gJ215d2Vic2l0ZScKKworCitkZWYgdGVzdF9lbnZpcm9uX3dpdGhfbXVsdGlwbGVfdmFsdWVzKCk6CisgICAgbW9ja19zb2NrZXQgPSBNb2NrU29ja2V0KCkKKyAgICBtb2NrX2NsaWVudF9hZGRyZXNzID0gJzEuMi4zLjQnCisgICAgbW9ja19zZXJ2ZXIgPSBNb2NrU2VydmVyKCkKKworICAgIHdzZ2lfaGFuZGxlciA9IFdTR0lIYW5kbGVyKG1vY2tfc29ja2V0LCBtb2NrX2NsaWVudF9hZGRyZXNzLCBtb2NrX3NlcnZlcikKKyAgICB3c2dpX2hhbmRsZXIuY29tbWFuZCA9ICdHRVQnCisgICAgd3NnaV9oYW5kbGVyLnBhdGggPSAnL3BhdGgnCisgICAgd3NnaV9oYW5kbGVyLnJlcXVlc3RfdmVyc2lvbiA9ICdIVFRQLzEuMCcKKyAgICB3c2dpX2hhbmRsZXIuaGVhZGVycyA9IGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcoJ0hvc3Q6IGhvc3QxXG5Ib3N0OiBob3N0MicpCisKKyAgICB3c2dpX2hhbmRsZXIud3NnaV9zZXR1cCgpCisKKyAgICBhc3NlcnQgd3NnaV9oYW5kbGVyLndzZ2lfZW52aXJvblsnSFRUUF9IT1NUJ10gPT0gJ2hvc3QxLGhvc3QyJwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfaW1wb3J0X3N0cmluZy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2ltcG9ydF9zdHJpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYyY2JkZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X2ltcG9ydF9zdHJpbmcucHkKQEAgLTAsMCArMSwxNiBAQAorZnJvbSBwYXN0ZS51dGlsLmltcG9ydF9zdHJpbmcgaW1wb3J0ICoKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitkZWYgdGVzdF9zaW1wbGUoKToKKyAgICBmb3IgZnVuYyBpbiBldmFsX2ltcG9ydCwgc2ltcGxlX2ltcG9ydDoKKyAgICAgICAgYXNzZXJ0IGZ1bmMoJ3N5cycpIGlzIHN5cworICAgICAgICBhc3NlcnQgZnVuYygnc3lzLnZlcnNpb24nKSBpcyBzeXMudmVyc2lvbgorICAgICAgICBhc3NlcnQgZnVuYygnb3MucGF0aC5qb2luJykgaXMgb3MucGF0aC5qb2luCisKK2RlZiB0ZXN0X2NvbXBsZXgoKToKKyAgICBhc3NlcnQgZXZhbF9pbXBvcnQoJ3N5czp2ZXJzaW9uJykgaXMgc3lzLnZlcnNpb24KKyAgICBhc3NlcnQgZXZhbF9pbXBvcnQoJ29zOmdldGN3ZCgpJykgPT0gb3MuZ2V0Y3dkKCkKKyAgICBhc3NlcnQgKGV2YWxfaW1wb3J0KCdzeXM6dmVyc2lvbi5zcGxpdCgpWzBdJykgPT0KKyAgICAgICAgICAgIHN5cy52ZXJzaW9uLnNwbGl0KClbMF0pCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X211bHRpZGljdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X211bHRpZGljdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGE3NDZmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfbXVsdGlkaWN0LnB5CkBAIC0wLDAgKzEsMTYyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIyAoYykgMjAwNyBJYW4gQmlja2luZyBhbmQgUGhpbGlwIEplbnZleTsgd3JpdHRlbiBmb3IgUGFzdGUgKGh0dHA6Ly9weXRob25wYXN0ZS5vcmcpCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKK2ltcG9ydCBjZ2kKK2ltcG9ydCBzaXgKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBTdHJpbmdJTworCitmcm9tIG5vc2UudG9vbHMgaW1wb3J0IGFzc2VydF9yYWlzZXMKKworZnJvbSBwYXN0ZS51dGlsLm11bHRpZGljdCBpbXBvcnQgTXVsdGlEaWN0LCBVbmljb2RlTXVsdGlEaWN0CisKK2RlZiB0ZXN0X2RpY3QoKToKKyAgICBkID0gTXVsdGlEaWN0KHsnYSc6IDF9KQorICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWygnYScsIDEpXQorCisgICAgZFsnYiddID0gMgorICAgIGRbJ2MnXSA9IDMKKyAgICBhc3NlcnQgZC5pdGVtcygpID09IFsoJ2EnLCAxKSwgKCdiJywgMiksICgnYycsIDMpXQorCisgICAgZFsnYiddID0gNAorICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWygnYScsIDEpLCAoJ2MnLCAzKSwgKCdiJywgNCldCisKKyAgICBkLmFkZCgnYicsIDUpCisgICAgYXNzZXJ0X3JhaXNlcyhLZXlFcnJvciwgZC5nZXRvbmUsICJiIikKKyAgICBhc3NlcnQgZC5nZXRhbGwoJ2InKSA9PSBbNCwgNV0KKyAgICBhc3NlcnQgZC5pdGVtcygpID09IFsoJ2EnLCAxKSwgKCdjJywgMyksICgnYicsIDQpLCAoJ2InLCA1KV0KKworICAgIGRlbCBkWydiJ10KKyAgICBhc3NlcnQgZC5pdGVtcygpID09IFsoJ2EnLCAxKSwgKCdjJywgMyldCisgICAgYXNzZXJ0IGQucG9wKCd4eHgnLCA1KSA9PSA1CisgICAgYXNzZXJ0IGQuZ2V0b25lKCdhJykgPT0gMQorICAgIGFzc2VydCBkLnBvcGl0ZW0oKSA9PSAoJ2MnLCAzKQorICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWygnYScsIDEpXQorCisgICAgaXRlbSA9IFtdCisgICAgYXNzZXJ0IGQuc2V0ZGVmYXVsdCgneicsIGl0ZW0pIGlzIGl0ZW0KKyAgICBhc3NlcnQgZC5pdGVtcygpID09IFsoJ2EnLCAxKSwgKCd6JywgaXRlbSldCisKKyAgICBhc3NlcnQgZC5zZXRkZWZhdWx0KCd5JywgNikgPT0gNgorCisgICAgYXNzZXJ0IGQubWl4ZWQoKSA9PSB7J2EnOiAxLCAneSc6IDYsICd6JzogaXRlbX0KKyAgICBhc3NlcnQgZC5kaWN0X29mX2xpc3RzKCkgPT0geydhJzogWzFdLCAneSc6IFs2XSwgJ3onOiBbaXRlbV19CisKKyAgICBhc3NlcnQgJ2EnIGluIGQKKyAgICBkY29weSA9IGQuY29weSgpCisgICAgYXNzZXJ0IGRjb3B5IGlzIG5vdCBkCisgICAgYXNzZXJ0IGRjb3B5ID09IGQKKyAgICBkWyd4J10gPSAneCB0ZXN0JworICAgIGFzc2VydCBkY29weSAhPSBkCisKKyAgICBkWygxLCBOb25lKV0gPSAoTm9uZSwgMSkKKyAgICBhc3NlcnQgZC5pdGVtcygpID09IFsoJ2EnLCAxKSwgKCd6JywgW10pLCAoJ3knLCA2KSwgKCd4JywgJ3ggdGVzdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoMSwgTm9uZSksIChOb25lLCAxKSldCisKK2RlZiB0ZXN0X3VuaWNvZGVfZGljdCgpOgorICAgIF90ZXN0X3VuaWNvZGVfZGljdCgpCisgICAgX3Rlc3RfdW5pY29kZV9kaWN0KGRlY29kZV9wYXJhbV9uYW1lcz1UcnVlKQorCitkZWYgX3Rlc3RfdW5pY29kZV9kaWN0KGRlY29kZV9wYXJhbV9uYW1lcz1GYWxzZSk6CisgICAgZCA9IFVuaWNvZGVNdWx0aURpY3QoTXVsdGlEaWN0KHtiJ2EnOiAnYSB0ZXN0J30pKQorICAgIGQuZW5jb2RpbmcgPSAndXRmLTgnCisgICAgZC5lcnJvcnMgPSAnaWdub3JlJworCisgICAgaWYgZGVjb2RlX3BhcmFtX25hbWVzOgorICAgICAgICBrZXlfc3RyID0gc2l4LnRleHRfdHlwZQorICAgICAgICBrID0gbGFtYmRhIGtleToga2V5CisgICAgICAgIGQuZGVjb2RlX2tleXMgPSBUcnVlCisgICAgZWxzZToKKyAgICAgICAga2V5X3N0ciA9IHNpeC5iaW5hcnlfdHlwZQorICAgICAgICBrID0gbGFtYmRhIGtleToga2V5LmVuY29kZSgpCisKKyAgICBkZWYgYXNzZXJ0X3VuaWNvZGUob2JqKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob2JqLCBzaXgudGV4dF90eXBlKQorCisgICAgZGVmIGFzc2VydF9rZXlfc3RyKG9iaik6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9iaiwga2V5X3N0cikKKworICAgIGRlZiBhc3NlcnRfdW5pY29kZV9pdGVtKG9iaik6CisgICAgICAgIGtleSwgdmFsdWUgPSBvYmoKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoa2V5LCBrZXlfc3RyKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LnRleHRfdHlwZSkKKworICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWyhrKCdhJyksIHUnYSB0ZXN0JyldCisgICAgbWFwKGFzc2VydF9rZXlfc3RyLCBkLmtleXMoKSkKKyAgICBtYXAoYXNzZXJ0X3VuaWNvZGUsIGQudmFsdWVzKCkpCisKKyAgICBkW2InYiddID0gYicyIHRlc3QnCisgICAgZFtiJ2MnXSA9IGInMyB0ZXN0JworICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWyhrKCdhJyksIHUnYSB0ZXN0JyksIChrKCdiJyksIHUnMiB0ZXN0JyksIChrKCdjJyksIHUnMyB0ZXN0JyldCisgICAgbGlzdChtYXAoYXNzZXJ0X3VuaWNvZGVfaXRlbSwgZC5pdGVtcygpKSkKKworICAgIGRbaygnYicpXSA9IGInNCB0ZXN0JworICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWyhrKCdhJyksIHUnYSB0ZXN0JyksIChrKCdjJyksIHUnMyB0ZXN0JyksIChrKCdiJyksIHUnNCB0ZXN0JyldLCBkLml0ZW1zKCkKKyAgICBsaXN0KG1hcChhc3NlcnRfdW5pY29kZV9pdGVtLCBkLml0ZW1zKCkpKQorCisgICAgZC5hZGQoaygnYicpLCBiJzUgdGVzdCcpCisgICAgYXNzZXJ0X3JhaXNlcyhLZXlFcnJvciwgZC5nZXRvbmUsIGsoImIiKSkKKyAgICBhc3NlcnQgZC5nZXRhbGwoaygnYicpKSA9PSBbdSc0IHRlc3QnLCB1JzUgdGVzdCddCisgICAgbWFwKGFzc2VydF91bmljb2RlLCBkLmdldGFsbCgnYicpKQorICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWyhrKCdhJyksIHUnYSB0ZXN0JyksIChrKCdjJyksIHUnMyB0ZXN0JyksIChrKCdiJyksIHUnNCB0ZXN0JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKGsoJ2InKSwgdSc1IHRlc3QnKV0KKyAgICBsaXN0KG1hcChhc3NlcnRfdW5pY29kZV9pdGVtLCBkLml0ZW1zKCkpKQorCisgICAgZGVsIGRbaygnYicpXQorICAgIGFzc2VydCBkLml0ZW1zKCkgPT0gWyhrKCdhJyksIHUnYSB0ZXN0JyksIChrKCdjJyksIHUnMyB0ZXN0JyldCisgICAgbGlzdChtYXAoYXNzZXJ0X3VuaWNvZGVfaXRlbSwgZC5pdGVtcygpKSkKKyAgICBhc3NlcnQgZC5wb3AoJ3h4eCcsIHUnNSB0ZXN0JykgPT0gdSc1IHRlc3QnCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZC5wb3AoJ3h4eCcsIHUnNSB0ZXN0JyksIHNpeC50ZXh0X3R5cGUpCisgICAgYXNzZXJ0IGQuZ2V0b25lKGsoJ2EnKSkgPT0gdSdhIHRlc3QnCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZC5nZXRvbmUoaygnYScpKSwgc2l4LnRleHRfdHlwZSkKKyAgICBhc3NlcnQgZC5wb3BpdGVtKCkgPT0gKGsoJ2MnKSwgdSczIHRlc3QnKQorICAgIGRbaygnYycpXSA9IGInMyB0ZXN0JworICAgIGFzc2VydF91bmljb2RlX2l0ZW0oZC5wb3BpdGVtKCkpCisgICAgYXNzZXJ0IGQuaXRlbXMoKSA9PSBbKGsoJ2EnKSwgdSdhIHRlc3QnKV0KKyAgICBsaXN0KG1hcChhc3NlcnRfdW5pY29kZV9pdGVtLCBkLml0ZW1zKCkpKQorCisgICAgaXRlbSA9IFtdCisgICAgYXNzZXJ0IGQuc2V0ZGVmYXVsdChrKCd6JyksIGl0ZW0pIGlzIGl0ZW0KKyAgICBpdGVtcyA9IGQuaXRlbXMoKQorICAgIGFzc2VydCBpdGVtcyA9PSBbKGsoJ2EnKSwgdSdhIHRlc3QnKSwgKGsoJ3onKSwgaXRlbSldCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbXNbMV1bMF0sIGtleV9zdHIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbXNbMV1bMV0sIGxpc3QpCisKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShkLnNldGRlZmF1bHQoaygneScpLCBiJ3kgdGVzdCcpLCBzaXgudGV4dF90eXBlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGRbaygneScpXSwgc2l4LnRleHRfdHlwZSkKKworICAgIGFzc2VydCBkLm1peGVkKCkgPT0ge2soJ2EnKTogdSdhIHRlc3QnLCBrKCd5Jyk6IHUneSB0ZXN0JywgaygneicpOiBpdGVtfQorICAgIGFzc2VydCBkLmRpY3Rfb2ZfbGlzdHMoKSA9PSB7aygnYScpOiBbdSdhIHRlc3QnXSwgaygneScpOiBbdSd5IHRlc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsoJ3onKTogW2l0ZW1dfQorICAgIGRlbCBkW2soJ3onKV0KKyAgICBsaXN0KG1hcChhc3NlcnRfdW5pY29kZV9pdGVtLCBzaXguaXRlcml0ZW1zKGQubWl4ZWQoKSkpKQorICAgIGxpc3QobWFwKGFzc2VydF91bmljb2RlX2l0ZW0sIFsoa2V5LCB2YWx1ZVswXSkgZm9yIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LCB2YWx1ZSBpbiBzaXguaXRlcml0ZW1zKGQuZGljdF9vZl9saXN0cygpKV0pKQorCisgICAgYXNzZXJ0IGsoJ2EnKSBpbiBkCisgICAgZGNvcHkgPSBkLmNvcHkoKQorICAgIGFzc2VydCBkY29weSBpcyBub3QgZAorICAgIGFzc2VydCBkY29weSA9PSBkCisgICAgZFtrKCd4JyldID0gJ3ggdGVzdCcKKyAgICBhc3NlcnQgZGNvcHkgIT0gZAorCisgICAgZFsoMSwgTm9uZSldID0gKE5vbmUsIDEpCisgICAgYXNzZXJ0IGQuaXRlbXMoKSA9PSBbKGsoJ2EnKSwgdSdhIHRlc3QnKSwgKGsoJ3knKSwgdSd5IHRlc3QnKSwgKGsoJ3gnKSwgdSd4IHRlc3QnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKDEsIE5vbmUpLCAoTm9uZSwgMSkpXQorICAgIGl0ZW0gPSBkLml0ZW1zKClbLTFdCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbVswXSwgdHVwbGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbVsxXSwgdHVwbGUpCisKKyAgICBmcyA9IGNnaS5GaWVsZFN0b3JhZ2UoKQorICAgIGZzLm5hbWUgPSAndGhlZmlsZScKKyAgICBmcy5maWxlbmFtZSA9ICdoZWxsby50eHQnCisgICAgZnMuZmlsZSA9IFN0cmluZ0lPKCdoZWxsbycpCisgICAgZFtrKCdmJyldID0gZnMKKyAgICB1ZnMgPSBkW2soJ2YnKV0KKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh1ZnMsIGNnaS5GaWVsZFN0b3JhZ2UpCisgICAgYXNzZXJ0IHVmcyBpcyBub3QgZnMKKyAgICBhc3NlcnQgdWZzLm5hbWUgPT0gZnMubmFtZQorICAgIGFzc2VydCBpc2luc3RhbmNlKHVmcy5uYW1lLCBzdHIgaWYgc2l4LlBZMyBlbHNlIGtleV9zdHIpCisgICAgYXNzZXJ0IHVmcy5maWxlbmFtZSA9PSBmcy5maWxlbmFtZQorICAgIGFzc2VydCBpc2luc3RhbmNlKHVmcy5maWxlbmFtZSwgc2l4LnRleHRfdHlwZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh1ZnMudmFsdWUsIHN0cikKKyAgICBhc3NlcnQgdWZzLnZhbHVlID09ICdoZWxsbycKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3Byb2ZpbGVtaWRkbGV3YXJlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfcHJvZmlsZW1pZGRsZXdhcmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMxODlmOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3Byb2ZpbGVtaWRkbGV3YXJlLnB5CkBAIC0wLDAgKzEsMjkgQEAKK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgKgordHJ5OgorICAgIGZyb20gcGFzdGUuZGVidWcucHJvZmlsZSBpbXBvcnQgKgorICAgIGRpc2FibGUgPSBGYWxzZQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGRpc2FibGUgPSBUcnVlCisKK2lmIG5vdCBkaXNhYmxlOgorICAgIGRlZiBzaW1wbGVfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgIHJldHVybiBbJ2FsbCBvayddCisKKyAgICBkZWYgbG9uZ19mdW5jKCk6CisgICAgICAgIGZvciBpIGluIHJhbmdlKDEwMDApOgorICAgICAgICAgICAgcGFzcworICAgICAgICByZXR1cm4gJ3Rlc3QnCisKKyAgICBkZWYgdGVzdF9wcm9maWxlKCk6CisgICAgICAgIGFwcCA9IFRlc3RBcHAoUHJvZmlsZU1pZGRsZXdhcmUoc2ltcGxlX2FwcCwge30pKQorICAgICAgICByZXMgPSBhcHAuZ2V0KCcvJykKKyAgICAgICAgIyBUaGUgb3JpZ2luYWwgYXBwOgorICAgICAgICByZXMubXVzdGNvbnRhaW4oJ2FsbCBvaycpCisgICAgICAgICMgVGhlIHByb2ZpbGUgaW5mb3JtYXRpb246CisgICAgICAgIHJlcy5tdXN0Y29udGFpbignPHByZScpCisKKyAgICBkZWYgdGVzdF9kZWNvcmF0b3IoKToKKyAgICAgICAgdmFsdWUgPSBwcm9maWxlX2RlY29yYXRvcigpKGxvbmdfZnVuYykoKQorICAgICAgICBhc3NlcnQgdmFsdWUgPT0gJ3Rlc3QnCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3Byb3h5LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfcHJveHkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRkYjlmMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3Byb3h5LnB5CkBAIC0wLDAgKzEsMTIgQEAKK2Zyb20gcGFzdGUgaW1wb3J0IHByb3h5Citmcm9tIHBhc3RlLmZpeHR1cmUgaW1wb3J0IFRlc3RBcHAKKworZGVmIHRlc3RfcGFzdGVfd2Vic2l0ZSgpOgorICAgICMgTm90IHRoZSBtb3N0IHJvYnVzdCB0ZXN0Li4uCisgICAgIyBuZWVkIHRvIHRlc3QgdGhpbmdzIGxpa2UgUE9TVGluZyB0byBwYWdlcywgYW5kIGdldHRpbmcgZnJvbSBwYWdlcworICAgICMgdGhhdCBkb24ndCBzZXQgY29udGVudC1sZW5ndGguCisgICAgYXBwID0gcHJveHkuUHJveHkoJ2h0dHA6Ly9weXRob25wYXN0ZS5vcmcnKQorICAgIGFwcCA9IFRlc3RBcHAoYXBwKQorICAgIHJlcyA9IGFwcC5nZXQoJy8nKQorICAgIGFzc2VydCAnZG9jdW1lbnRhdGlvbicgaW4gcmVzCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3JlY3Vyc2l2ZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3JlY3Vyc2l2ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2IxOTg0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfcmVjdXJzaXZlLnB5CkBAIC0wLDAgKzEsMTA1IEBACitmcm9tIC50ZXN0X2Vycm9yZG9jdW1lbnQgaW1wb3J0IHNpbXBsZV9hcHAKK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgKgorZnJvbSBwYXN0ZS5yZWN1cnNpdmUgaW1wb3J0IFJlY3Vyc2l2ZU1pZGRsZXdhcmUsIEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uCisKK2RlZiBlcnJvcl9kb2NzX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgaWYgZW52aXJvblsnUEFUSF9JTkZPJ10gPT0gJy9ub3RfZm91bmQnOgorICAgICAgICBzdGFydF9yZXNwb25zZSgiNDA0IE5vdCBmb3VuZCIsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICByZXR1cm4gW2InTm90IGZvdW5kJ10KKyAgICBlbGlmIGVudmlyb25bJ1BBVEhfSU5GTyddID09ICcvZXJyb3InOgorICAgICAgICBzdGFydF9yZXNwb25zZSgiMjAwIE9LIiwgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKV0pCisgICAgICAgIHJldHVybiBbYidQYWdlIG5vdCBmb3VuZCddCisgICAgZWxpZiBlbnZpcm9uWydQQVRIX0lORk8nXSA9PSAnL3JlY3Vyc2UnOgorICAgICAgICByYWlzZSBGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbignL3JlY3Vyc2UnKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBzaW1wbGVfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCitjbGFzcyBNaWRkbGV3YXJlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgdXJsPScvZXJyb3InKToKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi51cmwgPSB1cmwKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICByYWlzZSBGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbihzZWxmLnVybCkKKworZGVmIGZvcndhcmQoYXBwKToKKyAgICBhcHAgPSBUZXN0QXBwKFJlY3Vyc2l2ZU1pZGRsZXdhcmUoYXBwKSkKKyAgICByZXMgPSBhcHAuZ2V0KCcnKQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9wbGFpbicKKyAgICBhc3NlcnQgcmVzLmZ1bGxfc3RhdHVzID09ICcyMDAgT0snCisgICAgYXNzZXJ0ICdyZXF1ZXN0ZWQgcGFnZSByZXR1cm5lZCcgaW4gcmVzCisgICAgcmVzID0gYXBwLmdldCgnL2Vycm9yJykKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvcGxhaW4nCisgICAgYXNzZXJ0IHJlcy5mdWxsX3N0YXR1cyA9PSAnMjAwIE9LJworICAgIGFzc2VydCAnUGFnZSBub3QgZm91bmQnIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy9ub3RfZm91bmQnKQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9wbGFpbicKKyAgICBhc3NlcnQgcmVzLmZ1bGxfc3RhdHVzID09ICcyMDAgT0snCisgICAgYXNzZXJ0ICdQYWdlIG5vdCBmb3VuZCcgaW4gcmVzCisgICAgdHJ5OgorICAgICAgICByZXMgPSBhcHAuZ2V0KCcvcmVjdXJzZScpCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yIGFzIGU6CisgICAgICAgIGlmIHN0cihlKS5zdGFydHN3aXRoKCdGb3J3YXJkaW5nIGxvb3AgZGV0ZWN0ZWQnKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCdGYWlsZWQgdG8gZGV0ZWN0IGZvcndhcmRpbmcgbG9vcCcpCisKK2RlZiB0ZXN0X0ZvcndhcmRSZXF1ZXN0X3VybCgpOgorICAgIGNsYXNzIFRlc3RGb3J3YXJkUmVxdWVzdE1pZGRsZXdhcmUoTWlkZGxld2FyZSk6CisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICBpZiBlbnZpcm9uWydQQVRIX0lORk8nXSAhPSAnL25vdF9mb3VuZCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgcmFpc2UgRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24oc2VsZi51cmwpCisgICAgZm9yd2FyZChUZXN0Rm9yd2FyZFJlcXVlc3RNaWRkbGV3YXJlKGVycm9yX2RvY3NfYXBwKSkKKworZGVmIHRlc3RfRm9yd2FyZFJlcXVlc3RfZW52aXJvbigpOgorICAgIGNsYXNzIFRlc3RGb3J3YXJkUmVxdWVzdE1pZGRsZXdhcmUoTWlkZGxld2FyZSk6CisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICBpZiBlbnZpcm9uWydQQVRIX0lORk8nXSAhPSAnL25vdF9mb3VuZCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgZW52aXJvblsnUEFUSF9JTkZPJ10gPSBzZWxmLnVybAorICAgICAgICAgICAgcmFpc2UgRm9yd2FyZFJlcXVlc3RFeGNlcHRpb24oZW52aXJvbj1lbnZpcm9uKQorICAgIGZvcndhcmQoVGVzdEZvcndhcmRSZXF1ZXN0TWlkZGxld2FyZShlcnJvcl9kb2NzX2FwcCkpCisKK2RlZiB0ZXN0X0ZvcndhcmRSZXF1ZXN0X2ZhY3RvcnkoKToKKworICAgIGZyb20gcGFzdGUuZXJyb3Jkb2N1bWVudCBpbXBvcnQgU3RhdHVzS2VlcGVyCisKKyAgICBjbGFzcyBUZXN0Rm9yd2FyZFJlcXVlc3RNaWRkbGV3YXJlKE1pZGRsZXdhcmUpOgorICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgaWYgZW52aXJvblsnUEFUSF9JTkZPJ10gIT0gJy9ub3RfZm91bmQnOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIGVudmlyb25bJ1BBVEhfSU5GTyddID0gc2VsZi51cmwKKyAgICAgICAgICAgIGRlZiBmYWN0b3J5KGFwcCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0tlZXBlcihhcHAsIHN0YXR1cz0nNDA0IE5vdCBGb3VuZCcsIHVybD0nL2Vycm9yJywgaGVhZGVycz1bXSkKKyAgICAgICAgICAgIHJhaXNlIEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uKGZhY3Rvcnk9ZmFjdG9yeSkKKworICAgIGFwcCA9IFRlc3RGb3J3YXJkUmVxdWVzdE1pZGRsZXdhcmUoZXJyb3JfZG9jc19hcHApCisgICAgYXBwID0gVGVzdEFwcChSZWN1cnNpdmVNaWRkbGV3YXJlKGFwcCkpCisgICAgcmVzID0gYXBwLmdldCgnJykKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvcGxhaW4nCisgICAgYXNzZXJ0IHJlcy5mdWxsX3N0YXR1cyA9PSAnMjAwIE9LJworICAgIGFzc2VydCAncmVxdWVzdGVkIHBhZ2UgcmV0dXJuZWQnIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy9lcnJvcicpCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpID09ICd0ZXh0L3BsYWluJworICAgIGFzc2VydCByZXMuZnVsbF9zdGF0dXMgPT0gJzIwMCBPSycKKyAgICBhc3NlcnQgJ1BhZ2Ugbm90IGZvdW5kJyBpbiByZXMKKyAgICByZXMgPSBhcHAuZ2V0KCcvbm90X2ZvdW5kJywgc3RhdHVzPTQwNCkKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvcGxhaW4nCisgICAgYXNzZXJ0IHJlcy5mdWxsX3N0YXR1cyA9PSAnNDA0IE5vdCBGb3VuZCcgIyBEaWZmZXJlbnQgc3RhdHVzCisgICAgYXNzZXJ0ICdQYWdlIG5vdCBmb3VuZCcgaW4gcmVzCisgICAgdHJ5OgorICAgICAgICByZXMgPSBhcHAuZ2V0KCcvcmVjdXJzZScpCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yIGFzIGU6CisgICAgICAgIGlmIHN0cihlKS5zdGFydHN3aXRoKCdGb3J3YXJkaW5nIGxvb3AgZGV0ZWN0ZWQnKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCdGYWlsZWQgdG8gZGV0ZWN0IGZvcndhcmRpbmcgbG9vcCcpCisKKyMgVGVzdCBEZXByZWNhdGVkIENvZGUKK2RlZiB0ZXN0X0ZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uKCk6CisgICAgY2xhc3MgVGVzdEZvcndhcmRSZXF1ZXN0RXhjZXB0aW9uTWlkZGxld2FyZShNaWRkbGV3YXJlKToKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgIGlmIGVudmlyb25bJ1BBVEhfSU5GTyddICE9ICcvbm90X2ZvdW5kJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgICByYWlzZSBGb3J3YXJkUmVxdWVzdEV4Y2VwdGlvbihwYXRoX2luZm89c2VsZi51cmwpCisgICAgZm9yd2FyZChUZXN0Rm9yd2FyZFJlcXVlc3RFeGNlcHRpb25NaWRkbGV3YXJlKGVycm9yX2RvY3NfYXBwKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3JlZ2lzdHJ5LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfcmVnaXN0cnkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNjZDliNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3JlZ2lzdHJ5LnB5CkBAIC0wLDAgKzEsMzE0IEBACisjIChjKSAyMDA1IEJlbiBCYW5nZXJ0CisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCitmcm9tIG5vc2UudG9vbHMgaW1wb3J0IGFzc2VydF9yYWlzZXMKKworZnJvbSBwYXN0ZS5maXh0dXJlIGltcG9ydCAqCitmcm9tIHBhc3RlLnJlZ2lzdHJ5IGltcG9ydCAqCitmcm9tIHBhc3RlLnJlZ2lzdHJ5IGltcG9ydCBSZWdpc3RyeQorZnJvbSBwYXN0ZS5ldmFsZXhjZXB0aW9uLm1pZGRsZXdhcmUgaW1wb3J0IEV2YWxFeGNlcHRpb24KKworcmVnb2JqID0gU3RhY2tlZE9iamVjdFByb3h5KCkKK3NlY29uZG9iaiA9IFN0YWNrZWRPYmplY3RQcm94eShkZWZhdWx0PWRpY3QoaGk9J3Blb3BsZScpKQorCitkZWYgc2ltcGxlYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGF0dXMgPSAnMjAwIE9LJworICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCd0ZXh0L3BsYWluJyldCisgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzKQorICAgIHJldHVybiBbYidIZWxsbyB3b3JsZCFcbiddCisKK2RlZiBzaW1wbGVhcHBfd2l0aHJlZ2lzdHJ5KGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGF0dXMgPSAnMjAwIE9LJworICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCd0ZXh0L3BsYWluJyldCisgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzKQorICAgIGJvZHkgPSAnSGVsbG8gd29ybGQhVmFsdWUgaXMgJXNcbicgJSByZWdvYmoua2V5cygpCisgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgYm9keSA9IGJvZHkuZW5jb2RlKCd1dGY4JykKKyAgICByZXR1cm4gW2JvZHldCisKK2RlZiBzaW1wbGVhcHBfd2l0aHJlZ2lzdHJ5X2RlZmF1bHQoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXR1cyA9ICcyMDAgT0snCisgICAgcmVzcG9uc2VfaGVhZGVycyA9IFsoJ0NvbnRlbnQtdHlwZScsJ3RleHQvcGxhaW4nKV0KKyAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIHJlc3BvbnNlX2hlYWRlcnMpCisgICAgYm9keSA9ICdIZWxsbyB3b3JsZCFWYWx1ZSBpcyAlc1xuJyAlIHNlY29uZG9iagorICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGJvZHkgPSBib2R5LmVuY29kZSgndXRmOCcpCisgICAgcmV0dXJuIFtib2R5XQorCisKK2NsYXNzIFJlZ2lzdHJ5VXNpbmdBcHAob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFyLCB2YWx1ZSwgcmFpc2VfZXhjPUZhbHNlKToKKyAgICAgICAgc2VsZi52YXIgPSB2YXIKKyAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCisgICAgICAgIHNlbGYucmFpc2VfZXhjID0gcmFpc2VfZXhjCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiAncGFzdGUucmVnaXN0cnknIGluIGVudmlyb246CisgICAgICAgICAgICBlbnZpcm9uWydwYXN0ZS5yZWdpc3RyeSddLnJlZ2lzdGVyKHNlbGYudmFyLCBzZWxmLnZhbHVlKQorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4YzoKKyAgICAgICAgICAgIHJhaXNlIHNlbGYucmFpc2VfZXhjCisgICAgICAgIHN0YXR1cyA9ICcyMDAgT0snCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCd0ZXh0L3BsYWluJyldCisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgcmVzcG9uc2VfaGVhZGVycykKKyAgICAgICAgYm9keSA9ICdIZWxsbyB3b3JsZCFcblRoZSB2YXJpYWJsZSBpcyAlcycgJSBzdHIocmVnb2JqKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgYm9keSA9IGJvZHkuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgcmV0dXJuIFtib2R5XQorCitjbGFzcyBSZWdpc3RyeVVzaW5nSXRlcmF0b3JBcHAob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFyLCB2YWx1ZSk6CisgICAgICAgIHNlbGYudmFyID0gdmFyCisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgaWYgJ3Bhc3RlLnJlZ2lzdHJ5JyBpbiBlbnZpcm9uOgorICAgICAgICAgICAgZW52aXJvblsncGFzdGUucmVnaXN0cnknXS5yZWdpc3RlcihzZWxmLnZhciwgc2VsZi52YWx1ZSkKKyAgICAgICAgc3RhdHVzID0gJzIwMCBPSycKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVycyA9IFsoJ0NvbnRlbnQtdHlwZScsJ3RleHQvcGxhaW4nKV0KKyAgICAgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzKQorICAgICAgICBib2R5ID0gJ0hlbGxvIHdvcmxkIVxuVGhlIHZhcmlhYmxlIGlzICVzJyAlIHN0cihyZWdvYmopCisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBib2R5ID0gYm9keS5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICByZXR1cm4gaXRlcihbYm9keV0pCisKK2NsYXNzIFJlZ2lzdHJ5TWlkZGxlTWFuKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgdmFyLCB2YWx1ZSwgZGVwdGgpOgorICAgICAgICBzZWxmLmFwcCA9IGFwcAorICAgICAgICBzZWxmLnZhciA9IHZhcgorICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWUKKyAgICAgICAgc2VsZi5kZXB0aCA9IGRlcHRoCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBpZiAncGFzdGUucmVnaXN0cnknIGluIGVudmlyb246CisgICAgICAgICAgICBlbnZpcm9uWydwYXN0ZS5yZWdpc3RyeSddLnJlZ2lzdGVyKHNlbGYudmFyLCBzZWxmLnZhbHVlKQorICAgICAgICBsaW5lID0gKCdcbkluc2VydGVkIGJ5IG1pZGRsZXdhcmUhXG5JbnNlcnRWYWx1ZSBhdCBkZXB0aCAlcyBpcyAlcycKKyAgICAgICAgICAgICAgICAlIChzZWxmLmRlcHRoLCBzdHIocmVnb2JqKSkpCisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBsaW5lID0gbGluZS5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICBhcHBfcmVzcG9uc2UgPSBbbGluZV0KKyAgICAgICAgYXBwX2l0ZXIgPSBOb25lCisgICAgICAgIGFwcF9pdGVyID0gc2VsZi5hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGlmIHR5cGUoYXBwX2l0ZXIpIGluIChsaXN0LCB0dXBsZSk6CisgICAgICAgICAgICBhcHBfcmVzcG9uc2UuZXh0ZW5kKGFwcF9pdGVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBbXQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gYXBwX2l0ZXI6CisgICAgICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGxpbmUpCisgICAgICAgICAgICBpZiBoYXNhdHRyKGFwcF9pdGVyLCAnY2xvc2UnKToKKyAgICAgICAgICAgICAgICBhcHBfaXRlci5jbG9zZSgpCisgICAgICAgICAgICBhcHBfcmVzcG9uc2UuZXh0ZW5kKHJlc3BvbnNlKQorICAgICAgICBsaW5lID0gKCdcbkFwcGVuZGVkIGJ5IG1pZGRsZXdhcmUhXG5BcHBlbmRWYWx1ZSBhdCBcCisgICAgICAgICAgICAgICAgZGVwdGggJXMgaXMgJXMnICUgKHNlbGYuZGVwdGgsIHN0cihyZWdvYmopKSkKKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLmVuY29kZSgndXRmOCcpCisgICAgICAgIGFwcF9yZXNwb25zZS5hcHBlbmQobGluZSkKKyAgICAgICAgcmV0dXJuIGFwcF9yZXNwb25zZQorCisKK2RlZiB0ZXN0X3NpbXBsZSgpOgorICAgIGFwcCA9IFRlc3RBcHAoc2ltcGxlYXBwKQorICAgIHJlc3BvbnNlID0gYXBwLmdldCgnLycpCisgICAgYXNzZXJ0ICdIZWxsbyB3b3JsZCcgaW4gcmVzcG9uc2UKKworZGVmIHRlc3Rfc29sb19yZWdpc3RyeSgpOgorICAgIG9iaiA9IHsnaGknOidwZW9wbGUnfQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeVVzaW5nQXBwKHJlZ29iaiwgb2JqKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1hbmFnZXIod3NnaWFwcCkKKyAgICBhcHAgPSBUZXN0QXBwKHdzZ2lhcHApCisgICAgcmVzID0gYXBwLmdldCgnLycpCisgICAgYXNzZXJ0ICdIZWxsbyB3b3JsZCcgaW4gcmVzCisgICAgYXNzZXJ0ICdUaGUgdmFyaWFibGUgaXMnIGluIHJlcworICAgIGFzc2VydCAieydoaSc6ICdwZW9wbGUnfSIgaW4gcmVzCisKK2RlZiB0ZXN0X3JlZ2lzdHJ5X25vX29iamVjdF9lcnJvcigpOgorICAgIGFwcCA9IFRlc3RBcHAoc2ltcGxlYXBwX3dpdGhyZWdpc3RyeSkKKyAgICBhc3NlcnRfcmFpc2VzKFR5cGVFcnJvciwgYXBwLmdldCwgJy8nKQorCitkZWYgdGVzdF93aXRoX2RlZmF1bHRfb2JqZWN0KCk6CisgICAgYXBwID0gVGVzdEFwcChzaW1wbGVhcHBfd2l0aHJlZ2lzdHJ5X2RlZmF1bHQpCisgICAgcmVzID0gYXBwLmdldCgnLycpCisgICAgcHJpbnQocmVzKQorICAgIGFzc2VydCAnSGVsbG8gd29ybGQnIGluIHJlcworICAgIGFzc2VydCAiVmFsdWUgaXMgeydoaSc6ICdwZW9wbGUnfSIgaW4gcmVzCisKK2RlZiB0ZXN0X2RvdWJsZV9yZWdpc3RyeSgpOgorICAgIG9iaiA9IHsnaGknOidwZW9wbGUnfQorICAgIHNlY29uZG9iaiA9IHsnYnllJzonZnJpZW5kcyd9CisgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5VXNpbmdBcHAocmVnb2JqLCBvYmopCisgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5TWFuYWdlcih3c2dpYXBwKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1pZGRsZU1hbih3c2dpYXBwLCByZWdvYmosIHNlY29uZG9iaiwgMCkKKyAgICB3c2dpYXBwID0gUmVnaXN0cnlNYW5hZ2VyKHdzZ2lhcHApCisgICAgYXBwID0gVGVzdEFwcCh3c2dpYXBwKQorICAgIHJlcyA9IGFwcC5nZXQoJy8nKQorICAgIGFzc2VydCAnSGVsbG8gd29ybGQnIGluIHJlcworICAgIGFzc2VydCAnVGhlIHZhcmlhYmxlIGlzJyBpbiByZXMKKyAgICBhc3NlcnQgInsnaGknOiAncGVvcGxlJ30iIGluIHJlcworICAgIGFzc2VydCAiSW5zZXJ0VmFsdWUgYXQgZGVwdGggMCBpcyB7J2J5ZSc6ICdmcmllbmRzJ30iIGluIHJlcworICAgIGFzc2VydCAiQXBwZW5kVmFsdWUgYXQgZGVwdGggMCBpcyB7J2J5ZSc6ICdmcmllbmRzJ30iIGluIHJlcworCitkZWYgdGVzdF9yZWFsbHlfZGVlcF9yZWdpc3RyeSgpOgorICAgIGtleWxpc3QgPSBbJ2ZyZWQnLCAnd2lsbWEnLCAnYmFybmV5JywgJ2hvbWVyJywgJ21hcmdlJywgJ2JhcnQnLCAnbGlzYScsCisgICAgICAgICdtYWdnaWUnXQorICAgIHZhbHVlbGlzdCA9IHJhbmdlKDAsIGxlbihrZXlsaXN0KSkKKyAgICBvYmogPSB7J2hpJzoncGVvcGxlJ30KKyAgICB3c2dpYXBwID0gUmVnaXN0cnlVc2luZ0FwcChyZWdvYmosIG9iaikKKyAgICB3c2dpYXBwID0gUmVnaXN0cnlNYW5hZ2VyKHdzZ2lhcHApCisgICAgZm9yIGRlcHRoIGluIHZhbHVlbGlzdDoKKyAgICAgICAgbmV3b2JqID0ge2tleWxpc3RbZGVwdGhdOiBkZXB0aH0KKyAgICAgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5TWlkZGxlTWFuKHdzZ2lhcHAsIHJlZ29iaiwgbmV3b2JqLCBkZXB0aCkKKyAgICAgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5TWFuYWdlcih3c2dpYXBwKQorICAgIGFwcCA9IFRlc3RBcHAod3NnaWFwcCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvJykKKyAgICBhc3NlcnQgJ0hlbGxvIHdvcmxkJyBpbiByZXMKKyAgICBhc3NlcnQgJ1RoZSB2YXJpYWJsZSBpcycgaW4gcmVzCisgICAgYXNzZXJ0ICJ7J2hpJzogJ3Blb3BsZSd9IiBpbiByZXMKKyAgICBmb3IgZGVwdGggaW4gdmFsdWVsaXN0OgorICAgICAgICBhc3NlcnQgIkluc2VydFZhbHVlIGF0IGRlcHRoICVzIGlzIHsnJXMnOiAlc30iICUgXAorICAgICAgICAgICAgKGRlcHRoLCBrZXlsaXN0W2RlcHRoXSwgZGVwdGgpIGluIHJlcworICAgIGZvciBkZXB0aCBpbiB2YWx1ZWxpc3Q6CisgICAgICAgIGFzc2VydCAiQXBwZW5kVmFsdWUgYXQgZGVwdGggJXMgaXMgeyclcyc6ICVzfSIgJSBcCisgICAgICAgICAgICAoZGVwdGgsIGtleWxpc3RbZGVwdGhdLCBkZXB0aCkgaW4gcmVzCisKK2RlZiB0ZXN0X2l0ZXJhdGluZ19yZXNwb25zZSgpOgorICAgIG9iaiA9IHsnaGknOidwZW9wbGUnfQorICAgIHNlY29uZG9iaiA9IHsnYnllJzonZnJpZW5kcyd9CisgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5VXNpbmdJdGVyYXRvckFwcChyZWdvYmosIG9iaikKKyAgICB3c2dpYXBwID0gUmVnaXN0cnlNYW5hZ2VyKHdzZ2lhcHApCisgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5TWlkZGxlTWFuKHdzZ2lhcHAsIHJlZ29iaiwgc2Vjb25kb2JqLCAwKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1hbmFnZXIod3NnaWFwcCkKKyAgICBhcHAgPSBUZXN0QXBwKHdzZ2lhcHApCisgICAgcmVzID0gYXBwLmdldCgnLycpCisgICAgYXNzZXJ0ICdIZWxsbyB3b3JsZCcgaW4gcmVzCisgICAgYXNzZXJ0ICdUaGUgdmFyaWFibGUgaXMnIGluIHJlcworICAgIGFzc2VydCAieydoaSc6ICdwZW9wbGUnfSIgaW4gcmVzCisgICAgYXNzZXJ0ICJJbnNlcnRWYWx1ZSBhdCBkZXB0aCAwIGlzIHsnYnllJzogJ2ZyaWVuZHMnfSIgaW4gcmVzCisgICAgYXNzZXJ0ICJBcHBlbmRWYWx1ZSBhdCBkZXB0aCAwIGlzIHsnYnllJzogJ2ZyaWVuZHMnfSIgaW4gcmVzCisKK2RlZiBfdGVzdF9yZXN0b3JlcihzdGFjaywgZGF0YSk6CisgICAgIyBXZSBuZWVkIHRvIHRlc3QgdGhlIHJlcXVlc3QncyBzcGVjaWZpYyBSZWdpc3RyeS4gSW5pdGlhbGl6ZSBpdCBoZXJlIHNvIHdlCisgICAgIyBjYW4gdXNlIGl0IGxhdGVyIChSZWdpc3RyeU1hbmFnZXIgd2lsbCByZS11c2Ugb25lIHByZWV4aXN0aW5nIGluIHRoZQorICAgICMgZW52aXJvbikKKyAgICByZWdpc3RyeSA9IFJlZ2lzdHJ5KCkKKyAgICBleHRyYV9lbnZpcm9uPXsncGFzdGUudGhyb3dfZXJyb3JzJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgJ3Bhc3RlLnJlZ2lzdHJ5JzogcmVnaXN0cnl9CisgICAgcmVxdWVzdF9pZCA9IHJlc3RvcmVyLmdldF9yZXF1ZXN0X2lkKGV4dHJhX2Vudmlyb24pCisgICAgYXBwID0gVGVzdEFwcChzdGFjaykKKyAgICByZXMgPSBhcHAuZ2V0KCcvJywgZXh0cmFfZW52aXJvbj1leHRyYV9lbnZpcm9uLCBleHBlY3RfZXJyb3JzPVRydWUpCisKKyAgICAjIEVuc3VyZSBhbGwgdGhlIFN0YWNrZWRPYmplY3RQcm94aWVzIGFyZSBlbXB0eSBhZnRlciB0aGUgUmVnaXN0cnlVc2luZ0FwcAorICAgICMgcmFpc2VzIGFuIEV4Y2VwdGlvbgorICAgIGZvciBzdGFja2VkLCBwcm94aWVkX29iaiwgdGVzdF9jbGVhbnVwIGluIGRhdGE6CisgICAgICAgIG9ubHlfa2V5ID0gbGlzdChwcm94aWVkX29iai5rZXlzKCkpWzBdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFzc2VydCBvbmx5X2tleSBub3QgaW4gc3RhY2tlZAorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAjIERlZmluaXRlbHkgZW1wdHkKKyAgICAgICAgICAgIHBhc3MKKworICAgICMgRW5zdXJlIHRoZSBTdGFja2VkT2JqZWN0UHJveGllcyAmIFJlZ2lzdHJ5ICd3b3JrJyBpbiB0aGUgc2ltdWxhdGVkCisgICAgIyBFdmFsRXhjZXB0aW9uIGNvbnRleHQKKyAgICByZXBsYWNlID0geydyZXBsYWNlJzogJ2RpY3QnfQorICAgIG5ldyA9IHsnbmV3JzogJ29iamVjdCd9CisgICAgcmVzdG9yZXIucmVzdG9yYXRpb25fYmVnaW4ocmVxdWVzdF9pZCkKKyAgICB0cnk6CisgICAgICAgIGZvciBzdGFja2VkLCBwcm94aWVkX29iaiwgdGVzdF9jbGVhbnVwIGluIGRhdGE6CisgICAgICAgICAgICAjIEVuc3VyZSBvdXIgb3JpZ2luYWwgZGF0YSBtYWdpY2FsbHkgcmUtYXBwZWFycyBpbiB0aGlzIGNvbnRleHQKKyAgICAgICAgICAgIG9ubHlfa2V5LCBvbmx5X3ZhbCA9IGxpc3QocHJveGllZF9vYmouaXRlbXMoKSlbMF0KKyAgICAgICAgICAgIGFzc2VydCBvbmx5X2tleSBpbiBzdGFja2VkIGFuZCBzdGFja2VkW29ubHlfa2V5XSA9PSBvbmx5X3ZhbAorCisgICAgICAgICAgICAjIEVuc3VyZSB0aGUgUmVnaXN0cnkgc3RpbGwgd29ya3MKKyAgICAgICAgICAgIHJlZ2lzdHJ5LnByZXBhcmUoKQorICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoc3RhY2tlZCwgbmV3KQorICAgICAgICAgICAgYXNzZXJ0ICduZXcnIGluIHN0YWNrZWQgYW5kIHN0YWNrZWRbJ25ldyddID09ICdvYmplY3QnCisgICAgICAgICAgICByZWdpc3RyeS5jbGVhbnVwKCkKKworICAgICAgICAgICAgIyBCYWNrIHRvIHRoZSBvcmlnaW5hbCAocHJlLXByZXBhcmUoKSkKKyAgICAgICAgICAgIGFzc2VydCBvbmx5X2tleSBpbiBzdGFja2VkIGFuZCBzdGFja2VkW29ubHlfa2V5XSA9PSBvbmx5X3ZhbAorCisgICAgICAgICAgICByZWdpc3RyeS5yZXBsYWNlKHN0YWNrZWQsIHJlcGxhY2UpCisgICAgICAgICAgICBhc3NlcnQgJ3JlcGxhY2UnIGluIHN0YWNrZWQgYW5kIHN0YWNrZWRbJ3JlcGxhY2UnXSA9PSAnZGljdCcKKworICAgICAgICAgICAgaWYgdGVzdF9jbGVhbnVwOgorICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LmNsZWFudXAoKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc3RhY2tlZC5fY3VycmVudF9vYmooKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgICAgICAjIERlZmluaXRlbHkgZW1wdHkKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgIGZpbmFsbHk6CisgICAgICAgIHJlc3RvcmVyLnJlc3RvcmF0aW9uX2VuZCgpCisKK2RlZiBfcmVzdG9yZXJfZGF0YSgpOgorICAgIFMgPSBTdGFja2VkT2JqZWN0UHJveHkKKyAgICBkID0gW1tTKG5hbWU9J2ZpcnN0JyksIGRpY3QodG9wPSdvZiB0aGUgcmVnaXN0cnkgc3RhY2snKSwgRmFsc2VdLAorICAgICAgICAgW1MobmFtZT0nc2Vjb25kJyksIGRpY3QobWlkZGxlPSdvZiB0aGUgc3RhY2snKSwgRmFsc2VdLAorICAgICAgICAgW1MobmFtZT0ndGhpcmQnKSwgZGljdChib3R0b209J29mIHRoZSBTVEFDSy4nKSwgRmFsc2VdXQorICAgIHJldHVybiBkCisKK2RlZiBfc2V0X2NsZWFudXBfdGVzdChkYXRhKToKKyAgICAiIiJJbnN0cnVjdCBfdGVzdF9yZXN0b3JlciB0byBjaGVjayByZWdpc3RyeSBjbGVhbnVwIGF0IHRoaXMgbGV2ZWwgb2YgdGhlIHN0YWNrCisgICAgIiIiCisgICAgZGF0YVsyXSA9IFRydWUKKworZGVmIHRlc3RfcmVzdG9yZXJfYmFzaWMoKToKKyAgICBkYXRhID0gX3Jlc3RvcmVyX2RhdGEoKVswXQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeVVzaW5nQXBwKGRhdGFbMF0sIGRhdGFbMV0sIHJhaXNlX2V4Yz1FeGNlcHRpb24oKSkKKyAgICB3c2dpYXBwID0gUmVnaXN0cnlNYW5hZ2VyKHdzZ2lhcHApCisgICAgX3NldF9jbGVhbnVwX3Rlc3QoZGF0YSkKKyAgICB3c2dpYXBwID0gRXZhbEV4Y2VwdGlvbih3c2dpYXBwKQorICAgIF90ZXN0X3Jlc3RvcmVyKHdzZ2lhcHAsIFtkYXRhXSkKKworZGVmIHRlc3RfcmVzdG9yZXJfYmFzaWNfbWFuYWdlcl9vdXRzaWRlKCk6CisgICAgZGF0YSA9IF9yZXN0b3Jlcl9kYXRhKClbMF0KKyAgICB3c2dpYXBwID0gUmVnaXN0cnlVc2luZ0FwcChkYXRhWzBdLCBkYXRhWzFdLCByYWlzZV9leGM9RXhjZXB0aW9uKCkpCisgICAgd3NnaWFwcCA9IEV2YWxFeGNlcHRpb24od3NnaWFwcCkKKyAgICB3c2dpYXBwID0gUmVnaXN0cnlNYW5hZ2VyKHdzZ2lhcHApCisgICAgX3NldF9jbGVhbnVwX3Rlc3QoZGF0YSkKKyAgICBfdGVzdF9yZXN0b3Jlcih3c2dpYXBwLCBbZGF0YV0pCisKK2RlZiB0ZXN0X3Jlc3RvcmVyX21pZGRsZW1hbl9uZXN0ZWRfZXZhbGV4Y2VwdGlvbigpOgorICAgIGRhdGEgPSBfcmVzdG9yZXJfZGF0YSgpWzoyXQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeVVzaW5nQXBwKGRhdGFbMF1bMF0sIGRhdGFbMF1bMV0sIHJhaXNlX2V4Yz1FeGNlcHRpb24oKSkKKyAgICB3c2dpYXBwID0gRXZhbEV4Y2VwdGlvbih3c2dpYXBwKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1pZGRsZU1hbih3c2dpYXBwLCBkYXRhWzFdWzBdLCBkYXRhWzFdWzFdLCAwKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1hbmFnZXIod3NnaWFwcCkKKyAgICBfc2V0X2NsZWFudXBfdGVzdChkYXRhWzFdKQorICAgIF90ZXN0X3Jlc3RvcmVyKHdzZ2lhcHAsIGRhdGEpCisKK2RlZiB0ZXN0X3Jlc3RvcmVyX25lc3RlZF9taWRkbGVtYW4oKToKKyAgICBkYXRhID0gX3Jlc3RvcmVyX2RhdGEoKVs6Ml0KKyAgICB3c2dpYXBwID0gUmVnaXN0cnlVc2luZ0FwcChkYXRhWzBdWzBdLCBkYXRhWzBdWzFdLCByYWlzZV9leGM9RXhjZXB0aW9uKCkpCisgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5TWFuYWdlcih3c2dpYXBwKQorICAgIF9zZXRfY2xlYW51cF90ZXN0KGRhdGFbMF0pCisgICAgd3NnaWFwcCA9IFJlZ2lzdHJ5TWlkZGxlTWFuKHdzZ2lhcHAsIGRhdGFbMV1bMF0sIGRhdGFbMV1bMV0sIDApCisgICAgd3NnaWFwcCA9IEV2YWxFeGNlcHRpb24od3NnaWFwcCkKKyAgICB3c2dpYXBwID0gUmVnaXN0cnlNYW5hZ2VyKHdzZ2lhcHApCisgICAgX3NldF9jbGVhbnVwX3Rlc3QoZGF0YVsxXSkKKyAgICBfdGVzdF9yZXN0b3Jlcih3c2dpYXBwLCBkYXRhKQorCitkZWYgdGVzdF9yZXN0b3Jlcl9taWRkbGVtZW5fbmVzdGVkX2V2YWxleGNlcHRpb24oKToKKyAgICBkYXRhID0gX3Jlc3RvcmVyX2RhdGEoKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeVVzaW5nQXBwKGRhdGFbMF1bMF0sIGRhdGFbMF1bMV0sIHJhaXNlX2V4Yz1FeGNlcHRpb24oKSkKKyAgICB3c2dpYXBwID0gUmVnaXN0cnlNYW5hZ2VyKHdzZ2lhcHApCisgICAgX3NldF9jbGVhbnVwX3Rlc3QoZGF0YVswXSkKKyAgICB3c2dpYXBwID0gRXZhbEV4Y2VwdGlvbih3c2dpYXBwKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1pZGRsZU1hbih3c2dpYXBwLCBkYXRhWzFdWzBdLCBkYXRhWzFdWzFdLCAwKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1hbmFnZXIod3NnaWFwcCkKKyAgICBfc2V0X2NsZWFudXBfdGVzdChkYXRhWzFdKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1pZGRsZU1hbih3c2dpYXBwLCBkYXRhWzJdWzBdLCBkYXRhWzJdWzFdLCAxKQorICAgIHdzZ2lhcHAgPSBSZWdpc3RyeU1hbmFnZXIod3NnaWFwcCkKKyAgICBfc2V0X2NsZWFudXBfdGVzdChkYXRhWzJdKQorICAgIF90ZXN0X3Jlc3RvcmVyKHdzZ2lhcHAsIGRhdGEpCisKK2RlZiB0ZXN0X3Jlc3RvcmVyX2Rpc2FibGVkKCk6CisgICAgIyBFbnN1cmUgcmVzdG9yYXRpb25fYmVnaW4vZW5kIHdvcmsgc2FmZWx5IHdoZW4gdGhlcmUncyBubyBSZWdpc3RyeQorICAgIHdzZ2lhcHAgPSBUZXN0QXBwKHNpbXBsZWFwcCkKKyAgICB3c2dpYXBwLmdldCgnLycpCisgICAgdHJ5OgorICAgICAgICByZXN0b3Jlci5yZXN0b3JhdGlvbl9iZWdpbigxKQorICAgIGZpbmFsbHk6CisgICAgICAgIHJlc3RvcmVyLnJlc3RvcmF0aW9uX2VuZCgpCisgICAgICAgICMgQSBzZWNvbmQgY2FsbCBzaG91bGQgZG8gbm90aGluZworICAgICAgICByZXN0b3Jlci5yZXN0b3JhdGlvbl9lbmQoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfcmVxdWVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3JlcXVlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcyMzA0ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3JlcXVlc3QucHkKQEAgLTAsMCArMSw2NiBAQAorIyAoYykgMjAwNSBCZW4gQmFuZ2VydAorIyBUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gUGFzdGUgUHJvamVjdCBhbmQgaXMgcmVsZWFzZWQgdW5kZXIKKyMgdGhlIE1JVCBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorZnJvbSBwYXN0ZS5maXh0dXJlIGltcG9ydCAqCitmcm9tIHBhc3RlLnJlcXVlc3QgaW1wb3J0ICoKK2Zyb20gcGFzdGUud3NnaXdyYXBwZXJzIGltcG9ydCBXU0dJUmVxdWVzdAoraW1wb3J0IHNpeAorCitkZWYgc2ltcGxlYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGF0dXMgPSAnMjAwIE9LJworICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCd0ZXh0L3BsYWluJyldCisgICAgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCByZXNwb25zZV9oZWFkZXJzKQorICAgIHJlcXVlc3QgPSBXU0dJUmVxdWVzdChlbnZpcm9uKQorICAgIGJvZHkgPSBbCisgICAgICAgICdIZWxsbyB3b3JsZCFcbicsICdUaGUgZ2V0IGlzICVzJyAlIHN0cihyZXF1ZXN0LkdFVCksCisgICAgICAgICcgYW5kIFZhbCBpcyAlc1xuJyAlIHJlcXVlc3QuR0VULmdldCgnbmFtZScpLAorICAgICAgICAnVGhlIGxhbmd1YWdlcyBhcmU6ICVzXG4nICUgcmVxdWVzdC5sYW5ndWFnZXMsCisgICAgICAgICdUaGUgYWNjZXB0dHlwZXMgaXM6ICVzXG4nICUgcmVxdWVzdC5tYXRjaF9hY2NlcHQoWyd0ZXh0L2h0bWwnLCAnYXBwbGljYXRpb24veG1sJ10pXQorICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGJvZHkgPSBbbGluZS5lbmNvZGUoJ3V0ZjgnKSAgZm9yIGxpbmUgaW4gYm9keV0KKyAgICByZXR1cm4gYm9keQorCitkZWYgdGVzdF9nZXRzKCk6CisgICAgYXBwID0gVGVzdEFwcChzaW1wbGVhcHApCisgICAgcmVzID0gYXBwLmdldCgnLycpCisgICAgYXNzZXJ0ICdIZWxsbycgaW4gcmVzCisgICAgYXNzZXJ0ICJnZXQgaXMgTXVsdGlEaWN0KFtdKSIgaW4gcmVzCisKKyAgICByZXMgPSBhcHAuZ2V0KCcvP25hbWU9Z2VvcmdlJykKKyAgICByZXMubXVzdGNvbnRhaW4oImdldCBpcyBNdWx0aURpY3QoWygnbmFtZScsICdnZW9yZ2UnKV0pIikKKyAgICByZXMubXVzdGNvbnRhaW4oIlZhbCBpcyBnZW9yZ2UiKQorCitkZWYgdGVzdF9sYW5ndWFnZV9wYXJzaW5nKCk6CisgICAgYXBwID0gVGVzdEFwcChzaW1wbGVhcHApCisgICAgcmVzID0gYXBwLmdldCgnLycpCisgICAgYXNzZXJ0ICJUaGUgbGFuZ3VhZ2VzIGFyZTogWydlbi11cyddIiBpbiByZXMKKworICAgIHJlcyA9IGFwcC5nZXQoJy8nLCBoZWFkZXJzPXsnQWNjZXB0LUxhbmd1YWdlJzonZGEsIGVuLWdiO3E9MC44LCBlbjtxPTAuNyd9KQorICAgIGFzc2VydCAibGFuZ3VhZ2VzIGFyZTogWydkYScsICdlbi1nYicsICdlbicsICdlbi11cyddIiBpbiByZXMKKworICAgIHJlcyA9IGFwcC5nZXQoJy8nLCBoZWFkZXJzPXsnQWNjZXB0LUxhbmd1YWdlJzonZW4tZ2I7cT0wLjgsIGRhLCBlbjtxPTAuNyd9KQorICAgIGFzc2VydCAibGFuZ3VhZ2VzIGFyZTogWydkYScsICdlbi1nYicsICdlbicsICdlbi11cyddIiBpbiByZXMKKworZGVmIHRlc3RfbWltZV9wYXJzaW5nKCk6CisgICAgYXBwID0gVGVzdEFwcChzaW1wbGVhcHApCisgICAgcmVzID0gYXBwLmdldCgnLycsIGhlYWRlcnM9eydBY2NlcHQnOid0ZXh0L2h0bWwnfSkKKyAgICBhc3NlcnQgImFjY2VwdHR5cGVzIGlzOiBbJ3RleHQvaHRtbCddIiBpbiByZXMKKworICAgIHJlcyA9IGFwcC5nZXQoJy8nLCBoZWFkZXJzPXsnQWNjZXB0JzonYXBwbGljYXRpb24veG1sJ30pCisgICAgYXNzZXJ0ICJhY2NlcHR0eXBlcyBpczogWydhcHBsaWNhdGlvbi94bWwnXSIgaW4gcmVzCisKKyAgICByZXMgPSBhcHAuZ2V0KCcvJywgaGVhZGVycz17J0FjY2VwdCc6J2FwcGxpY2F0aW9uL3htbCwqLyonfSkKKyAgICBhc3NlcnQgImFjY2VwdHR5cGVzIGlzOiBbJ3RleHQvaHRtbCcsICdhcHBsaWNhdGlvbi94bWwnXSIgaW4gcmVzCisKK2RlZiB0ZXN0X2JhZF9jb29raWUoKToKKyAgICBlbnYgPSB7fQorICAgIGVudlsnSFRUUF9DT09LSUUnXSA9ICcwNzAtaXQtOj48PzAnCisgICAgYXNzZXJ0IGdldF9jb29raWVfZGljdChlbnYpID09IHt9CisgICAgZW52WydIVFRQX0NPT0tJRSddID0gJ2Zvbz1iYXInCisgICAgYXNzZXJ0IGdldF9jb29raWVfZGljdChlbnYpID09IHsnZm9vJzogJ2Jhcid9CisgICAgZW52WydIVFRQX0NPT0tJRSddID0gJy4uLicKKyAgICBhc3NlcnQgZ2V0X2Nvb2tpZV9kaWN0KGVudikgPT0ge30KKyAgICBlbnZbJ0hUVFBfQ09PS0lFJ10gPSAnPWZvbycKKyAgICBhc3NlcnQgZ2V0X2Nvb2tpZV9kaWN0KGVudikgPT0ge30KKyAgICBlbnZbJ0hUVFBfQ09PS0lFJ10gPSAnPz0nCisgICAgYXNzZXJ0IGdldF9jb29raWVfZGljdChlbnYpID09IHt9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9yZXF1ZXN0X2Zvcm0ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9yZXF1ZXN0X2Zvcm0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y0MzcyMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3JlcXVlc3RfZm9ybS5weQpAQCAtMCwwICsxLDM2IEBACitpbXBvcnQgc2l4CisKK2Zyb20gcGFzdGUucmVxdWVzdCBpbXBvcnQgKgorZnJvbSBwYXN0ZS51dGlsLm11bHRpZGljdCBpbXBvcnQgTXVsdGlEaWN0CisKK2RlZiB0ZXN0X3BhcnNlX3F1ZXJ5c3RyaW5nKCk6CisgICAgZSA9IHsnUVVFUllfU1RSSU5HJzogJ2E9MSZiPTImYz0zJmI9NCd9CisgICAgZCA9IHBhcnNlX3F1ZXJ5c3RyaW5nKGUpCisgICAgYXNzZXJ0IGQgPT0gWygnYScsICcxJyksICgnYicsICcyJyksICgnYycsICczJyksICgnYicsICc0JyldCisgICAgYXNzZXJ0IGVbJ3Bhc3RlLnBhcnNlZF9xdWVyeXN0cmluZyddID09ICgKKyAgICAgICAgKGQsIGVbJ1FVRVJZX1NUUklORyddKSkKKyAgICBlID0geydRVUVSWV9TVFJJTkcnOiAnYSZiJmM9JmQ9MSd9CisgICAgZCA9IHBhcnNlX3F1ZXJ5c3RyaW5nKGUpCisgICAgYXNzZXJ0IGQgPT0gWygnYScsICcnKSwgKCdiJywgJycpLCAoJ2MnLCAnJyksICgnZCcsICcxJyldCisKK2RlZiBtYWtlX3Bvc3QoYm9keSk6CisgICAgZSA9IHsKKyAgICAgICAgJ0NPTlRFTlRfVFlQRSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLAorICAgICAgICAnQ09OVEVOVF9MRU5HVEgnOiBzdHIobGVuKGJvZHkpKSwKKyAgICAgICAgJ1JFUVVFU1RfTUVUSE9EJzogJ1BPU1QnLAorICAgICAgICAnd3NnaS5pbnB1dCc6IHNpeC5CeXRlc0lPKGJvZHkpLAorICAgICAgICB9CisgICAgcmV0dXJuIGUKKworZGVmIHRlc3RfcGFyc2V2YXJzKCk6CisgICAgZSA9IG1ha2VfcG9zdChiJ2E9MSZiPTImYz0zJmI9NCcpCisgICAgI2N1cl9pbnB1dCA9IGVbJ3dzZ2kuaW5wdXQnXQorICAgIGQgPSBwYXJzZV9mb3JtdmFycyhlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGQsIE11bHRpRGljdCkKKyAgICBhc3NlcnQgZCA9PSBNdWx0aURpY3QoWygnYScsICcxJyksICgnYicsICcyJyksICgnYycsICczJyksICgnYicsICc0JyldKQorICAgIGFzc2VydCBlWydwYXN0ZS5wYXJzZWRfZm9ybXZhcnMnXSA9PSAoCisgICAgICAgIChkLCBlWyd3c2dpLmlucHV0J10pKQorICAgICMgWFhYOiBodHRwOi8vdHJhYy5weXRob25wYXN0ZS5vcmcvcHl0aG9ucGFzdGUvdGlja2V0LzEyNQorICAgICNhc3NlcnQgZVsnd3NnaS5pbnB1dCddIGlzIG5vdCBjdXJfaW5wdXQKKyAgICAjY3VyX2lucHV0LnNlZWsoMCkKKyAgICAjYXNzZXJ0IGVbJ3dzZ2kuaW5wdXQnXS5yZWFkKCkgPT0gY3VyX2lucHV0LnJlYWQoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfcmVzcG9uc2UucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9yZXNwb25zZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWY2Zjk3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfcmVzcG9uc2UucHkKQEAgLTAsMCArMSwxMSBAQAorZnJvbSBwYXN0ZS5yZXNwb25zZSBpbXBvcnQgKgorCitkZWYgdGVzdF9yZXBsYWNlX2hlYWRlcigpOgorICAgIGggPSBbKCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpLAorICAgICAgICAgKCd4LWJsYWgnLCAnZm9vYmFyJyldCisgICAgcmVwbGFjZV9oZWFkZXIoaCwgJ2NvbnRlbnQtbGVuZ3RoJywgJzEwJykKKyAgICBhc3NlcnQgaFstMV0gPT0gKCdjb250ZW50LWxlbmd0aCcsICcxMCcpCisgICAgcmVwbGFjZV9oZWFkZXIoaCwgJ0NvbnRlbnQtVHlwZScsICd0ZXh0L2h0bWwnKQorICAgIGFzc2VydCAoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKSBpbiBoCisgICAgYXNzZXJ0ICgnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKSBub3QgaW4gaAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF9zZXNzaW9uLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3Rfc2Vzc2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjdiZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3Rfc2Vzc2lvbi5weQpAQCAtMCwwICsxLDU2IEBACitmcm9tIHBhc3RlLnNlc3Npb24gaW1wb3J0IFNlc3Npb25NaWRkbGV3YXJlCitmcm9tIHBhc3RlLmZpeHR1cmUgaW1wb3J0IFRlc3RBcHAKK2ltcG9ydCBzaXgKKworaW5mbyA9IFtdCisKK2RlZiB3c2dpX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgcGkgPSBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpCisgICAgaWYgcGkgaW4gKCcvZ2V0MScsICcvZ2V0MicpOgorICAgICAgICBpZiBwaSA9PSAnL2dldDEnOgorICAgICAgICAgICAgc2VzcyA9IGVudmlyb25bJ3Bhc3RlLnNlc3Npb24uZmFjdG9yeSddKCkKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICBpZiBwaSA9PSAnL2dldDInOgorICAgICAgICAgICAgc2VzcyA9IGVudmlyb25bJ3Bhc3RlLnNlc3Npb24uZmFjdG9yeSddKCkKKyAgICAgICAgaWYgJ2luZm8nIGluIHNlc3M6CisgICAgICAgICAgICBib2R5ID0gc3RyKHNlc3NbJ2luZm8nXSkKKyAgICAgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICAgICAgYm9keSA9IGJvZHkuZW5jb2RlKCd1dGY4JykKKyAgICAgICAgICAgIHJldHVybiBbYm9keV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBbYiduby1pbmZvJ10KKyAgICBpZiBwaSBpbiAoJy9wdXQxJywgJy9wdXQyJyk6CisgICAgICAgIGlmIHBpID09ICcvcHV0MSc6CisgICAgICAgICAgICBzZXNzID0gZW52aXJvblsncGFzdGUuc2Vzc2lvbi5mYWN0b3J5J10oKQorICAgICAgICAgICAgc2Vzc1snaW5mbyddICA9IGluZm9bMF0KKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgICAgICBpZiBwaSA9PSAnL3B1dDInOgorICAgICAgICAgICAgc2VzcyA9IGVudmlyb25bJ3Bhc3RlLnNlc3Npb24uZmFjdG9yeSddKCkKKyAgICAgICAgICAgIHNlc3NbJ2luZm8nXSAgPSBpbmZvWzBdCisgICAgICAgIHJldHVybiBbYidmb28nXQorCit3c2dpX2FwcCA9IFNlc3Npb25NaWRkbGV3YXJlKHdzZ2lfYXBwKQorCitkZWYgdGVzdF9hcHAxKCk6CisgICAgYXBwID0gVGVzdEFwcCh3c2dpX2FwcCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvZ2V0MScpCisgICAgYXNzZXJ0IHJlcy5ib2R5ID09IGInbm8taW5mbycKKyAgICByZXMgPSBhcHAuZ2V0KCcvZ2V0MicpCisgICAgYXNzZXJ0IHJlcy5ib2R5ID09Yiduby1pbmZvJworICAgIGluZm9bOl0gPSBbJ3Rlc3QnXQorICAgIHJlcyA9IGFwcC5nZXQoJy9wdXQxJykKKyAgICByZXMgPSBhcHAuZ2V0KCcvZ2V0MScpCisgICAgYXNzZXJ0IHJlcy5ib2R5ID09IGIndGVzdCcKKyAgICByZXMgPSBhcHAuZ2V0KCcvZ2V0MicpCisgICAgYXNzZXJ0IHJlcy5ib2R5ID09IGIndGVzdCcKKworZGVmIHRlc3RfYXBwMigpOgorICAgIGFwcCA9IFRlc3RBcHAod3NnaV9hcHApCisgICAgaW5mb1s6XSA9IFsnZmx1ZmYnXQorICAgIHJlcyA9IGFwcC5nZXQoJy9wdXQyJykKKyAgICByZXMgPSBhcHAuZ2V0KCcvZ2V0MScpCisgICAgYXNzZXJ0IHJlcy5ib2R5ID09IGInZmx1ZmYnCisgICAgcmVzID0gYXBwLmdldCgnL2dldDInKQorICAgIGFzc2VydCByZXMuYm9keSA9PSBiJ2ZsdWZmJworCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3RlbXBsYXRlLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3RlbXBsYXRlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWE4NWUyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdGVtcGxhdGUudHh0CkBAIC0wLDAgKzEsMTM2IEBACitUaGUgdGVtcGxhdGluZyBsYW5ndWFnZSBpcyBmYWlybHkgc2ltcGxlLCBqdXN0IHt7c3R1ZmZ9fS4gIEZvcgorZXhhbXBsZTo6CisKKyAgICA+Pj4gZnJvbSBwYXN0ZS51dGlsLnRlbXBsYXRlIGltcG9ydCBUZW1wbGF0ZSwgc3ViCisgICAgPj4+IHN1YignSGkge3tuYW1lfX0nLCBuYW1lPSdJYW4nKQorICAgICdIaSBJYW4nCisgICAgPj4+IFRlbXBsYXRlKCdIaSB7e3JlcHIobmFtZSl9fScpLnN1YnN0aXR1dGUobmFtZT0nSWFuJykKKyAgICAiSGkgJ0lhbiciCisgICAgPj4+IFRlbXBsYXRlKCdIaSB7e25hbWUrMX19Jykuc3Vic3RpdHV0ZShuYW1lPSdJYW4nKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAgVHlwZUVycm9yOiBjYW5ub3QgY29uY2F0ZW5hdGUgJ3N0cicgYW5kICdpbnQnIG9iamVjdHMgYXQgbGluZSAxIGNvbHVtbiA2CisKK0l0IGFsc28gaGFzIERqYW5nby1zdHlsZSBwaXBpbmc6OgorCisgICAgPj4+IHN1YignSGkge3tuYW1lfHJlcHJ9fScsIG5hbWU9J0lhbicpCisgICAgIkhpICdJYW4nIgorCitOb3RlIHRoYXQgTm9uZSBzaG93cyB1cCBhcyBhbiBlbXB0eSBzdHJpbmc6OgorCisgICAgPj4+IHN1YignSGkge3tuYW1lfX0nLCBuYW1lPU5vbmUpCisgICAgJ0hpICcKKworQW5kIGlmL2VsaWYvZWxzZTo6CisKKyAgICA+Pj4gdCA9IFRlbXBsYXRlKCd7e2lmIHh9fXt7eX19e3tlbHNlfX17e3p9fXt7ZW5kaWZ9fScpCisgICAgPj4+IHQuc3Vic3RpdHV0ZSh4PTEsIHk9Miwgej0zKQorICAgICcyJworICAgID4+PiB0LnN1YnN0aXR1dGUoeD0wLCB5PTIsIHo9MykKKyAgICAnMycKKyAgICA+Pj4gdCA9IFRlbXBsYXRlKCd7e2lmIHggPiAwfX1wb3NpdGl2ZXt7ZWxpZiB4IDwgMH19bmVnYXRpdmV7e2Vsc2V9fXplcm97e2VuZGlmfX0nKQorICAgID4+PiB0LnN1YnN0aXR1dGUoeD0xKSwgdC5zdWJzdGl0dXRlKHg9LTEwKSwgdC5zdWJzdGl0dXRlKHg9MCkKKyAgICAoJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJywgJ3plcm8nKQorCitQbHVzIGEgZm9yIGxvb3A6OgorCisgICAgPj4+IHQgPSBUZW1wbGF0ZSgne3tmb3IgaSBpbiB4fX1pPXt7aX19XG57e2VuZGZvcn19JykKKyAgICA+Pj4gdC5zdWJzdGl0dXRlKHg9cmFuZ2UoMykpCisgICAgJ2k9MFxuaT0xXG5pPTJcbicKKyAgICA+Pj4gdCA9IFRlbXBsYXRlKCd7e2ZvciBhLCBiIGluIHNvcnRlZCh6Lml0ZW1zKCkpOn19e3thfX09e3tifX0se3tlbmRmb3J9fScpCisgICAgPj4+IHQuc3Vic3RpdHV0ZSh6PXsxOiAyLCAzOiA0fSkKKyAgICAnMT0yLDM9NCwnCisgICAgPj4+IHQgPSBUZW1wbGF0ZSgne3tmb3IgaSBpbiB4fX17e2lmIG5vdCBpfX17e2JyZWFrfX0nCisgICAgLi4uICAgICAgICAgICAgICAne3tlbmRpZn19e3tpfX0ge3tlbmRmb3J9fScpCisgICAgPj4+IHQuc3Vic3RpdHV0ZSh4PVsxLCAyLCAwLCAzLCA0XSkKKyAgICAnMSAyICcKKyAgICA+Pj4gdCA9IFRlbXBsYXRlKCd7e2ZvciBpIGluIHh9fXt7aWYgbm90IGl9fXt7Y29udGludWV9fScKKyAgICAuLi4gICAgICAgICAgICAgICd7e2VuZGlmfX17e2l9fSB7e2VuZGZvcn19JykKKyAgICA+Pj4gdC5zdWJzdGl0dXRlKHg9WzEsIDIsIDAsIDMsIDAsIDRdKQorICAgICcxIDIgMyA0ICcKKworQWxzbyBQeXRob24gYmxvY2tzOjoKKworICAgID4+PiBzdWIoJ3t7cHk6XG54PTFcbn19e3t4fX0nKQorICAgICcxJworCitBbmQgc29tZSBzeW50YXggZXJyb3JzOjoKKworICAgID4+PiB0ID0gVGVtcGxhdGUoJ3t7aWYgeH19JywgbmFtZT0nZm9vLmh0bWwnKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAgVGVtcGxhdGVFcnJvcjogTm8ge3tlbmRpZn19IGF0IGxpbmUgMSBjb2x1bW4gMyBpbiBmb28uaHRtbAorICAgID4+PiB0ID0gVGVtcGxhdGUoJ3t7Zm9yIHh9fScsIG5hbWU9J2ZvbzIuaHRtbCcpCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBUZW1wbGF0ZUVycm9yOiBCYWQgZm9yIChubyAiaW4iKSBpbiAneCcgYXQgbGluZSAxIGNvbHVtbiAzIGluIGZvbzIuaHRtbAorCitUaGVyZSdzIGFsc28gYW4gSFRNTFRlbXBsYXRlIHRoYXQgdXNlcyBIVE1MaXNtczo6CisKKyAgICA+Pj4gZnJvbSBwYXN0ZS51dGlsLnRlbXBsYXRlIGltcG9ydCBIVE1MVGVtcGxhdGUsIHN1Yl9odG1sLCBodG1sCisgICAgPj4+IHN1Yl9odG1sKCdoaSB7e25hbWV9fScsIG5hbWU9Jzxmb28+JykKKyAgICAnaGkgJmx0O2ZvbyZndDsnCisKK0J1dCBpZiB5b3UgZG9uJ3Qgd2FudCBxdW90aW5nIHRvIGhhcHBlbiB5b3UgY2FuIGRvOjoKKworICAgID4+PiBzdWJfaHRtbCgnaGkge3tuYW1lfX0nLCBuYW1lPWh0bWwoJzxmb28+JykpCisgICAgJ2hpIDxmb28+JworICAgID4+PiBzdWJfaHRtbCgnaGkge3tuYW1lfGh0bWx9fScsIG5hbWU9Jzxmb28+JykKKyAgICAnaGkgPGZvbz4nCisKK0Fsc28gYSBjb3VwbGUgaGFuZHkgZnVuY3Rpb25zOzoKKworICAgID4+PiB0ID0gSFRNTFRlbXBsYXRlKCc8YSBocmVmPSJhcnRpY2xlP2lkPXt7aWR8dXJsfX0iIHt7YXR0cihjbGFzc189Y2xhc3NfKX19PicpCisgICAgPj4+IHQuc3Vic3RpdHV0ZShpZD0xLCBjbGFzc189J2ZvbycpCisgICAgJzxhIGhyZWY9ImFydGljbGU/aWQ9MSIgY2xhc3M9ImZvbyI+JworICAgID4+PiB0LnN1YnN0aXR1dGUoaWQ9J3dpdGggc3BhY2UnLCBjbGFzc189Tm9uZSkKKyAgICAnPGEgaHJlZj0iYXJ0aWNsZT9pZD13aXRoJTIwc3BhY2UiID4nCisKK1RoZXJlJ3MgYSBoYW5keWlzaCBsb29wZXIgdGhpbmcgeW91IGNhbiBhbHNvIHVzZSBpbiB5b3VyIHRlbXBsYXRlcyAob3IKK2luIFB5dGhvbiwgYnV0IGl0J3MgbW9yZSB1c2VmdWwgaW4gdGVtcGxhdGVzIGdlbmVyYWxseSk6OgorCisgICAgPj4+IGZyb20gcGFzdGUudXRpbC5sb29wZXIgaW1wb3J0IGxvb3BlcgorICAgID4+PiBzZXEgPSBbJ2FwcGxlJywgJ2FzcGFyYWd1cycsICdCYW5hbmEnLCAnb3JhbmdlJ10KKyAgICA+Pj4gZm9yIGxvb3AsIGl0ZW0gaW4gbG9vcGVyKHNlcSk6CisgICAgLi4uICAgICBpZiBpdGVtID09ICdhcHBsZSc6CisgICAgLi4uICAgICAgICAgYXNzZXJ0IGxvb3AuZmlyc3QKKyAgICAuLi4gICAgIGVsaWYgaXRlbSA9PSAnb3JhbmdlJzoKKyAgICAuLi4gICAgICAgICBhc3NlcnQgbG9vcC5sYXN0CisgICAgLi4uICAgICBpZiBsb29wLmZpcnN0X2dyb3VwKGxhbWJkYSBpOiBpWzBdLnVwcGVyKCkpOgorICAgIC4uLiAgICAgICAgIHByaW50ICclczonICUgaXRlbVswXS51cHBlcigpCisgICAgLi4uICAgICBwcmludCBsb29wLm51bWJlciwgaXRlbQorICAgIEE6CisgICAgMSBhcHBsZQorICAgIDIgYXNwYXJhZ3VzCisgICAgQjoKKyAgICAzIEJhbmFuYQorICAgIE86CisgICAgNCBvcmFuZ2UKKworSXQgd2lsbCBhbHNvIHN0cmlwIG91dCBlbXB0eSBsaW5lcywgd2hlbiB0aGVyZSBpcyBhIGxpbmUgdGhhdCBvbmx5Citjb250YWlucyBhIGRpcmVjdGl2ZS9zdGF0ZW1lbnQgKGlmL2ZvciwgZXRjKTo6CisKKyAgICA+Pj4gc3ViKCd7e2lmIDF9fVxue3t4fX1cbnt7ZW5kaWZ9fVxuJywgeD0wKQorICAgICcwXG4nCisgICAgPj4+IHN1Yigne3tpZiAxfX14PXt7eH19XG57e2VuZGlmfX1cbicsIHg9MSkKKyAgICAneD0xXG4nCisgICAgPj4+IHN1Yigne3tpZiAxfX1cbng9e3t4fX1cbnt7ZW5kaWZ9fVxuJywgeD0xKQorICAgICd4PTFcbicKKworTGFzdGx5LCB0aGVyZSBpcyBhIHNwZWNpYWwgZGlyZWN0aXZlIHRoYXQgd2lsbCBjcmVhdGUgYSBkZWZhdWx0IHZhbHVlCitmb3IgYSB2YXJpYWJsZSwgaWYgbm8gdmFsdWUgaXMgZ2l2ZW46OgorCisgICAgPj4+IHN1Yigne3tkZWZhdWx0IHg9MX19e3t4fX0nLCB4PTIpCisgICAgJzInCisgICAgPj4+IHN1Yigne3tkZWZhdWx0IHg9MX19e3t4fX0nKQorICAgICcxJworICAgID4+PiAjIFRoZSBub3JtYWwgY2FzZToKKyAgICA+Pj4gc3ViKCd7e3h9fScpCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBOYW1lRXJyb3I6IG5hbWUgJ3gnIGlzIG5vdCBkZWZpbmVkIGF0IGxpbmUgMSBjb2x1bW4gMworCitBbmQgY29tbWVudHMgd29yazo6CisKKyAgICA+Pj4gc3ViKCdUZXN0PXh7eyN3aGF0ZXZlcn19JykKKyAgICAnVGVzdD14JwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXJsbWFwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXJsbWFwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZWM3MjkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF91cmxtYXAucHkKQEAgLTAsMCArMSw1MyBAQAorZnJvbSBwYXN0ZS51cmxtYXAgaW1wb3J0ICoKK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgKgoraW1wb3J0IHNpeAorCitkZWYgbWFrZV9hcHAocmVzcG9uc2VfdGV4dCk6CisgICAgZGVmIGFwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGhlYWRlcnMgPSBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldCisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBoZWFkZXJzKQorICAgICAgICBib2R5ID0gcmVzcG9uc2VfdGV4dCAlIGVudmlyb24KKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIGJvZHkgPSBib2R5LmVuY29kZSgnYXNjaWknKQorICAgICAgICByZXR1cm4gW2JvZHldCisgICAgcmV0dXJuIGFwcAorCitkZWYgdGVzdF9tYXAoKToKKyAgICBtYXBwZXIgPSBVUkxNYXAoe30pCisgICAgYXBwID0gVGVzdEFwcChtYXBwZXIpCisgICAgdGV4dCA9ICclcyBzY3JpcHRfbmFtZT0iJSUoU0NSSVBUX05BTUUpcyIgcGF0aF9pbmZvPSIlJShQQVRIX0lORk8pcyInCisgICAgbWFwcGVyWycnXSA9IG1ha2VfYXBwKHRleHQgJSAncm9vdCcpCisgICAgbWFwcGVyWycvZm9vJ10gPSBtYWtlX2FwcCh0ZXh0ICUgJ2Zvby1vbmx5JykKKyAgICBtYXBwZXJbJy9mb28vYmFyJ10gPSBtYWtlX2FwcCh0ZXh0ICUgJ2ZvbzpiYXInKQorICAgIG1hcHBlclsnL2YnXSA9IG1ha2VfYXBwKHRleHQgJSAnZi1vbmx5JykKKyAgICByZXMgPSBhcHAuZ2V0KCcvJykKKyAgICByZXMubXVzdGNvbnRhaW4oJ3Jvb3QnKQorICAgIHJlcy5tdXN0Y29udGFpbignc2NyaXB0X25hbWU9IiInKQorICAgIHJlcy5tdXN0Y29udGFpbigncGF0aF9pbmZvPSIvIicpCisgICAgcmVzID0gYXBwLmdldCgnL2JsYWgnKQorICAgIHJlcy5tdXN0Y29udGFpbigncm9vdCcpCisgICAgcmVzLm11c3Rjb250YWluKCdzY3JpcHRfbmFtZT0iIicpCisgICAgcmVzLm11c3Rjb250YWluKCdwYXRoX2luZm89Ii9ibGFoIicpCisgICAgcmVzID0gYXBwLmdldCgnL2Zvby9hbmQvbW9yZScpCisgICAgcmVzLm11c3Rjb250YWluKCdzY3JpcHRfbmFtZT0iL2ZvbyInKQorICAgIHJlcy5tdXN0Y29udGFpbigncGF0aF9pbmZvPSIvYW5kL21vcmUiJykKKyAgICByZXMubXVzdGNvbnRhaW4oJ2Zvby1vbmx5JykKKyAgICByZXMgPSBhcHAuZ2V0KCcvZm9vL2Jhci9iYXonKQorICAgIHJlcy5tdXN0Y29udGFpbignZm9vOmJhcicpCisgICAgcmVzLm11c3Rjb250YWluKCdzY3JpcHRfbmFtZT0iL2Zvby9iYXIiJykKKyAgICByZXMubXVzdGNvbnRhaW4oJ3BhdGhfaW5mbz0iL2JheiInKQorICAgIHJlcyA9IGFwcC5nZXQoJy9mZmZ6enonKQorICAgIHJlcy5tdXN0Y29udGFpbigncm9vdCcpCisgICAgcmVzLm11c3Rjb250YWluKCdwYXRoX2luZm89Ii9mZmZ6enoiJykKKyAgICByZXMgPSBhcHAuZ2V0KCcvZi96L3knKQorICAgIHJlcy5tdXN0Y29udGFpbignc2NyaXB0X25hbWU9Ii9mIicpCisgICAgcmVzLm11c3Rjb250YWluKCdwYXRoX2luZm89Ii96L3kiJykKKyAgICByZXMubXVzdGNvbnRhaW4oJ2Ytb25seScpCisKK2RlZiB0ZXN0XzQwNCgpOgorICAgIG1hcHBlciA9IFVSTE1hcCh7fSkKKyAgICBhcHAgPSBUZXN0QXBwKG1hcHBlciwgZXh0cmFfZW52aXJvbj17J0hUVFBfQUNDRVBUJzogJ3RleHQvaHRtbCd9KQorICAgIHJlcyA9IGFwcC5nZXQoIi8tLT4lMEQ8c2NyaXB0PmFsZXJ0KCd4c3MnKTwvc2NyaXB0PiIsIHN0YXR1cz00MDQpCisgICAgYXNzZXJ0IGInLS0+PHNjcmlwdCcgbm90IGluIHJlcy5ib2R5CisgICAgcmVzID0gYXBwLmdldCgiLy0tJTAxPjxzY3JpcHQ+Iiwgc3RhdHVzPTQwNCkKKyAgICBhc3NlcnQgYictLVx4MDE+PHNjcmlwdD4nIG5vdCBpbiByZXMuYm9keQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXJscGFyc2VyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXJscGFyc2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxYzIxMGUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF91cmxwYXJzZXIucHkKQEAgLTAsMCArMSwxNzggQEAKK2ltcG9ydCBvcworZnJvbSBwYXN0ZS51cmxwYXJzZXIgaW1wb3J0ICoKK2Zyb20gcGFzdGUuZml4dHVyZSBpbXBvcnQgKgorZnJvbSBwa2dfcmVzb3VyY2VzIGltcG9ydCBnZXRfZGlzdHJpYnV0aW9uCisKK2RlZiByZWxhdGl2ZV9wYXRoKG5hbWUpOgorICAgIGhlcmUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3VybHBhcnNlcl9kYXRhJykKKyAgICBmID0gb3MucGF0aC5qb2luKCd1cmxwYXJzZXJfZGF0YScsICcuLicsICd1cmxwYXJzZXJfZGF0YScsIG5hbWUpCisgICAgcmV0dXJuIG9zLnBhdGguam9pbihoZXJlLCBmKQorCitkZWYgcGF0aChuYW1lKToKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd1cmxwYXJzZXJfZGF0YScsIG5hbWUpCisKK2RlZiBtYWtlX2FwcChuYW1lKToKKyAgICBhcHAgPSBVUkxQYXJzZXIoe30sIHBhdGgobmFtZSksIG5hbWUsIGluZGV4X25hbWVzPVsnaW5kZXgnLCAnTWFpbiddKQorICAgIHRlc3RhcHAgPSBUZXN0QXBwKGFwcCkKKyAgICByZXR1cm4gdGVzdGFwcAorCitkZWYgdGVzdF9maW5kX2ZpbGUoKToKKyAgICBhcHAgPSBtYWtlX2FwcCgnZmluZF9maWxlJykKKyAgICByZXMgPSBhcHAuZ2V0KCcvJykKKyAgICBhc3NlcnQgJ2luZGV4MScgaW4gcmVzCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpID09ICd0ZXh0L3BsYWluJworICAgIHJlcyA9IGFwcC5nZXQoJy9pbmRleCcpCisgICAgYXNzZXJ0ICdpbmRleDEnIGluIHJlcworICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9wbGFpbicKKyAgICByZXMgPSBhcHAuZ2V0KCcvaW5kZXgudHh0JykKKyAgICBhc3NlcnQgJ2luZGV4MScgaW4gcmVzCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpID09ICd0ZXh0L3BsYWluJworICAgIHJlcyA9IGFwcC5nZXQoJy90ZXN0Mi5odG1sJykKKyAgICBhc3NlcnQgJ3Rlc3QyJyBpbiByZXMKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvaHRtbCcKKyAgICByZXMgPSBhcHAuZ2V0KCcvdGVzdCAzLmh0bWwnKQorICAgIGFzc2VydCAndGVzdCAzJyBpbiByZXMKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvaHRtbCcKKyAgICByZXMgPSBhcHAuZ2V0KCcvdGVzdCUyMDMuaHRtbCcpCisgICAgYXNzZXJ0ICd0ZXN0IDMnIGluIHJlcworICAgIGFzc2VydCByZXMuaGVhZGVyKCdjb250ZW50LXR5cGUnKSA9PSAndGV4dC9odG1sJworICAgIHJlcyA9IGFwcC5nZXQoJy9kaXIgd2l0aCBzcGFjZXMvdGVzdCA0Lmh0bWwnKQorICAgIGFzc2VydCAndGVzdCA0JyBpbiByZXMKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvaHRtbCcKKyAgICByZXMgPSBhcHAuZ2V0KCcvZGlyJTIwd2l0aCUyMHNwYWNlcy90ZXN0JTIwNC5odG1sJykKKyAgICBhc3NlcnQgJ3Rlc3QgNCcgaW4gcmVzCisgICAgYXNzZXJ0IHJlcy5oZWFkZXIoJ2NvbnRlbnQtdHlwZScpID09ICd0ZXh0L2h0bWwnCisgICAgIyBFbnN1cmUgb25seSBkYXRhIHVuZGVyIHRoZSBhcHAncyByb290IGRpcmVjdG9yeSBpcyBhY2Nlc3NpYmxlCisgICAgcmVzID0gYXBwLmdldCgnLy4uL3NlY3VyZWQudHh0Jywgc3RhdHVzPTQwNCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvZGlyIHdpdGggc3BhY2VzLy4uLy4uL3NlY3VyZWQudHh0Jywgc3RhdHVzPTQwNCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvJTJlJTJlL3NlY3VyZWQudHh0Jywgc3RhdHVzPTQwNCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvJTJlJTJlJTNmc2VjdXJlZC50eHQnLCBzdGF0dXM9NDA0KQorICAgIHJlcyA9IGFwcC5nZXQoJy8uLiUzZnNlY3VyZWQudHh0Jywgc3RhdHVzPTQwNCkKKyAgICByZXMgPSBhcHAuZ2V0KCcvZGlyJTIwd2l0aCUyMHNwYWNlcy8lMmUlMmUvJTJlJTJlL3NlY3VyZWQudHh0Jywgc3RhdHVzPTQwNCkKKworZGVmIHRlc3RfZGVlcCgpOgorICAgIGFwcCA9IG1ha2VfYXBwKCdkZWVwJykKKyAgICByZXMgPSBhcHAuZ2V0KCcvJykKKyAgICBhc3NlcnQgJ2luZGV4MicgaW4gcmVzCisgICAgcmVzID0gYXBwLmdldCgnL3N1YicpCisgICAgYXNzZXJ0IHJlcy5zdGF0dXMgPT0gMzAxCisgICAgcHJpbnQocmVzKQorICAgIGFzc2VydCByZXMuaGVhZGVyKCdsb2NhdGlvbicpID09ICdodHRwOi8vbG9jYWxob3N0L3N1Yi8nCisgICAgYXNzZXJ0ICdodHRwOi8vbG9jYWxob3N0L3N1Yi8nIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy9zdWIvJykKKyAgICBhc3NlcnQgJ2luZGV4MycgaW4gcmVzCisKK2RlZiB0ZXN0X3B5dGhvbigpOgorICAgIGFwcCA9IG1ha2VfYXBwKCdweXRob24nKQorICAgIHJlcyA9IGFwcC5nZXQoJy9zaW1wbGVhcHAnKQorICAgIGFzc2VydCAndGVzdDEnIGluIHJlcworICAgIGFzc2VydCByZXMuaGVhZGVyKCd0ZXN0LWhlYWRlcicpID09ICdURVNUIScKKyAgICBhc3NlcnQgcmVzLmhlYWRlcignY29udGVudC10eXBlJykgPT0gJ3RleHQvaHRtbCcKKyAgICByZXMgPSBhcHAuZ2V0KCcvc3RyZWFtJykKKyAgICBhc3NlcnQgJ3Rlc3QyJyBpbiByZXMKKyAgICByZXMgPSBhcHAuZ2V0KCcvc3ViL3NpbXBsZWFwcCcpCisgICAgYXNzZXJ0ICdzdWJzaW1wbGUnIGluIHJlcworCitkZWYgdGVzdF9ob29rKCk6CisgICAgYXBwID0gbWFrZV9hcHAoJ2hvb2snKQorICAgIHJlcyA9IGFwcC5nZXQoJy9ib2IvYXBwJykKKyAgICBhc3NlcnQgJ3VzZXI6IGJvYicgaW4gcmVzCisgICAgcmVzID0gYXBwLmdldCgnL3RpbS8nKQorICAgIGFzc2VydCAnaW5kZXg6IHRpbScgaW4gcmVzCisKK2RlZiB0ZXN0X25vdF9mb3VuZF9ob29rKCk6CisgICAgYXBwID0gbWFrZV9hcHAoJ25vdF9mb3VuZCcpCisgICAgcmVzID0gYXBwLmdldCgnL3NpbXBsZS9ub3Rmb3VuZCcpCisgICAgYXNzZXJ0IHJlcy5zdGF0dXMgPT0gMjAwCisgICAgYXNzZXJ0ICdub3QgZm91bmQnIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy9zaW1wbGUvZm91bmQnKQorICAgIGFzc2VydCAnaXMgZm91bmQnIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy9yZWN1ci9fX25vdGZvdW5kJywgc3RhdHVzPTQwNCkKKyAgICAjIEBAOiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlIG9yaWdpbmFsIHBhdGggZG9lc24ndCBhY3R1YWxseSBzaG93IHVwCisgICAgYXNzZXJ0ICcvcmVjdXIvbm90Zm91bmQnIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy9yZWN1ci9fX2lzZm91bmQnKQorICAgIGFzc2VydCByZXMuc3RhdHVzID09IDIwMAorICAgIGFzc2VydCAnaXMgZm91bmQnIGluIHJlcworICAgIHJlcyA9IGFwcC5nZXQoJy91c2VyL2xpc3QnKQorICAgIGFzc2VydCAndXNlcjogTm9uZScgaW4gcmVzCisgICAgcmVzID0gYXBwLmdldCgnL3VzZXIvYm9iL2xpc3QnKQorICAgIGFzc2VydCByZXMuc3RhdHVzID09IDIwMAorICAgIGFzc2VydCAndXNlcjogYm9iJyBpbiByZXMKKworZGVmIHRlc3RfcmVsYXRpdmVfcGF0aF9pbl9zdGF0aWNfcGFyc2VyKCk6CisgICAgeCA9IHJlbGF0aXZlX3BhdGgoJ2ZpbmRfZmlsZScpCisgICAgYXBwID0gU3RhdGljVVJMUGFyc2VyKHJlbGF0aXZlX3BhdGgoJ2ZpbmRfZmlsZScpKQorICAgIGFzc2VydCAnLi4nIG5vdCBpbiBhcHAucm9vdF9kaXJlY3RvcnkKKworZGVmIHRlc3RfeHNzKCk6CisgICAgYXBwID0gVGVzdEFwcChTdGF0aWNVUkxQYXJzZXIocmVsYXRpdmVfcGF0aCgnZmluZF9maWxlJykpLAorICAgICAgICAgICAgICAgICAgZXh0cmFfZW52aXJvbj17J0hUVFBfQUNDRVBUJzogJ3RleHQvaHRtbCd9KQorICAgIHJlcyA9IGFwcC5nZXQoIi8tLT4lMEQ8c2NyaXB0PmFsZXJ0KCd4c3MnKTwvc2NyaXB0PiIsIHN0YXR1cz00MDQpCisgICAgYXNzZXJ0IGInLS0+PHNjcmlwdD4nIG5vdCBpbiByZXMuYm9keQorCitkZWYgdGVzdF9zdGF0aWNfcGFyc2VyKCk6CisgICAgYXBwID0gU3RhdGljVVJMUGFyc2VyKHBhdGgoJ2ZpbmRfZmlsZScpKQorICAgIHRlc3RhcHAgPSBUZXN0QXBwKGFwcCkKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnJywgc3RhdHVzPTMwMSkKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnLycsIHN0YXR1cz00MDQpCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy9pbmRleC50eHQnKQorICAgIGFzc2VydCByZXMuYm9keS5zdHJpcCgpID09IGInaW5kZXgxJworICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcvaW5kZXgudHh0L2ZvbycsIHN0YXR1cz00MDQpCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy90ZXN0IDMuaHRtbCcpCisgICAgYXNzZXJ0IHJlcy5ib2R5LnN0cmlwKCkgPT0gYid0ZXN0IDMnCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy90ZXN0JTIwMy5odG1sJykKKyAgICBhc3NlcnQgcmVzLmJvZHkuc3RyaXAoKSA9PSBiJ3Rlc3QgMycKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnL2RpciB3aXRoIHNwYWNlcy90ZXN0IDQuaHRtbCcpCisgICAgYXNzZXJ0IHJlcy5ib2R5LnN0cmlwKCkgPT0gYid0ZXN0IDQnCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy9kaXIlMjB3aXRoJTIwc3BhY2VzL3Rlc3QlMjA0Lmh0bWwnKQorICAgIGFzc2VydCByZXMuYm9keS5zdHJpcCgpID09IGIndGVzdCA0JworICAgICMgRW5zdXJlIG9ubHkgZGF0YSB1bmRlciB0aGUgYXBwJ3Mgcm9vdCBkaXJlY3RvcnkgaXMgYWNjZXNzaWJsZQorICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcvLi4vc2VjdXJlZC50eHQnLCBzdGF0dXM9NDA0KQorICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcvZGlyIHdpdGggc3BhY2VzLy4uLy4uL3NlY3VyZWQudHh0Jywgc3RhdHVzPTQwNCkKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnLyUyZSUyZS9zZWN1cmVkLnR4dCcsIHN0YXR1cz00MDQpCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy9kaXIlMjB3aXRoJTIwc3BhY2VzLyUyZSUyZS8lMmUlMmUvc2VjdXJlZC50eHQnLCBzdGF0dXM9NDA0KQorICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcvZGlyJTIwd2l0aCUyMHNwYWNlcy8nLCBzdGF0dXM9NDA0KQorCitkZWYgdGVzdF9lZ2dfcGFyc2VyKCk6CisgICAgYXBwID0gUGtnUmVzb3VyY2VzUGFyc2VyKCdQYXN0ZScsICdwYXN0ZScpCisgICAgdGVzdGFwcCA9IFRlc3RBcHAoYXBwKQorICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcnLCBzdGF0dXM9MzAxKQorICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcvJywgc3RhdHVzPTQwNCkKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnL2ZsdXBfc2Vzc2lvbicsIHN0YXR1cz00MDQpCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy91dGlsL2NsYXNzaW5pdC5weScpCisgICAgYXNzZXJ0ICdDbGFzc0luaXRNZXRhJyBpbiByZXMKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnL3V0aWwvY2xhc3Npbml0Jywgc3RhdHVzPTQwNCkKKyAgICByZXMgPSB0ZXN0YXBwLmdldCgnL3V0aWwnLCBzdGF0dXM9MzAxKQorICAgIHJlcyA9IHRlc3RhcHAuZ2V0KCcvdXRpbC9jbGFzc2luaXQucHkvZm9vJywgc3RhdHVzPTQwNCkKKworICAgICMgRmluZCBhIHJlYWRhYmxlIGZpbGUgaW4gdGhlIFBhc3RlIHBrZydzIHJvb3QgZGlyZWN0b3J5IChvciB1cHdhcmRzIHRoZQorICAgICMgZGlyZWN0b3J5IHRyZWUpLiBFbnN1cmUgaXQncyBub3QgYWNjZXNzaWJsZSB2aWEgdGhlIFVSTFBhcnNlcgorICAgIHVucmVhY2hhYmxlX3Rlc3RfZmlsZSA9IE5vbmUKKyAgICBzZWFyY2hfcGF0aCA9IHBrZ19yb290X3BhdGggPSBnZXRfZGlzdHJpYnV0aW9uKCdQYXN0ZScpLmxvY2F0aW9uCisgICAgbGV2ZWwgPSAwCisgICAgIyBXZSBtaWdodCBub3QgZmluZCBhbnkgcmVhZGFibGUgZmlsZXMgaW4gdGhlIHBrZydzIHJvb3QgZGlyZWN0b3J5ICh0aGlzCisgICAgIyBpcyBsaWtlbHkgd2hlbiBQYXN0ZSBpcyBpbnN0YWxsZWQgYXMgYSAuZWdnIGluIHNpdGUtcGFja2FnZXMpLiBXZQorICAgICMgKGhvcGVmdWxseSkgY2FuIHByZXZlbnQgdGhpcyBieSB0cmF2ZXJzaW5nIHVwIHRoZSBkaXJlY3RvcnkgdHJlZSB1bnRpbAorICAgICMgYSB1c2FibGUgZmlsZSBpcyBmb3VuZAorICAgIHdoaWxlIHVucmVhY2hhYmxlX3Rlc3RfZmlsZSBpcyBOb25lIGFuZCBcCisgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKHNlYXJjaF9wYXRoKSAhPSBvcy5wYXRoLnNlcDoKKyAgICAgICAgZm9yIGZpbGUgaW4gb3MubGlzdGRpcihzZWFyY2hfcGF0aCk6CisgICAgICAgICAgICBmdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VhcmNoX3BhdGgsIGZpbGUpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShmdWxsX3BhdGgpIGFuZCBvcy5hY2Nlc3MoZnVsbF9wYXRoLCBvcy5SX09LKToKKyAgICAgICAgICAgICAgICB1bnJlYWNoYWJsZV90ZXN0X2ZpbGUgPSBmaWxlCisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBzZWFyY2hfcGF0aCA9IG9zLnBhdGguZGlybmFtZShzZWFyY2hfcGF0aCkKKyAgICAgICAgbGV2ZWwgKz0gMQorICAgIGFzc2VydCB1bnJlYWNoYWJsZV90ZXN0X2ZpbGUgaXMgbm90IE5vbmUsIFwKKyAgICAgICAgICAgJ3Rlc3RfZWdnX3BhcnNlciByZXF1aXJlcyBhIHJlYWRhYmxlIGZpbGUgaW4gYSBwYXJlbnQgZGlyIG9mIHRoZVxuJyBcCisgICAgICAgICAgICdQYXN0ZSBwa2dcJ3Mgcm9vdCBkaXI6XG4lcycgJSBwa2dfcm9vdF9wYXRoCisKKyAgICB1bnJlYWNoYWJsZV9wYXRoID0gJy8nICsgJy4uLycqbGV2ZWwgKyB1bnJlYWNoYWJsZV90ZXN0X2ZpbGUKKyAgICB1bnJlYWNoYWJsZV9wYXRoX3F1b3RlZCA9ICcvJyArICclMmUlMmUvJypsZXZlbCArIHVucmVhY2hhYmxlX3Rlc3RfZmlsZQorICAgIHJlcyA9IHRlc3RhcHAuZ2V0KHVucmVhY2hhYmxlX3BhdGgsIHN0YXR1cz00MDQpCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy91dGlsLy4uJyArIHVucmVhY2hhYmxlX3BhdGgsIHN0YXR1cz00MDQpCisgICAgcmVzID0gdGVzdGFwcC5nZXQodW5yZWFjaGFibGVfcGF0aF9xdW90ZWQsIHN0YXR1cz00MDQpCisgICAgcmVzID0gdGVzdGFwcC5nZXQoJy91dGlsLyUyZSUyZScgKyB1bnJlYWNoYWJsZV9wYXRoX3F1b3RlZCwgc3RhdHVzPTQwNCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci8uYWxsb3ctZGV2dG9vbHMtc2F2ZSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy90ZXN0X3V0aWwvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSB0cmFjZS12aWV3ZXIvLmFsbG93LWRldnRvb2xzLXNhdmUKY29weSB0byB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF91dGlsL19faW5pdF9fLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF91dGlsL3Rlc3RfZGF0ZXRpbWV1dGlsLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXRpbC90ZXN0X2RhdGV0aW1ldXRpbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWQ5NmM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXRpbC90ZXN0X2RhdGV0aW1ldXRpbC5weQpAQCAtMCwwICsxLDEzNSBAQAorIyAoYykgMjAwNSBDbGFyayBDLiBFdmFucyBhbmQgY29udHJpYnV0b3JzCisjIFRoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFB5dGhvbiBQYXN0ZSBQcm9qZWN0IGFuZCBpcyByZWxlYXNlZCB1bmRlcgorIyB0aGUgTUlUIExpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisjIFNvbWUgb2YgdGhpcyBjb2RlIHdhcyBmdW5kZWQgYnk6IGh0dHA6Ly9wcm9tZXRoZXVzcmVzZWFyY2guY29tCitmcm9tIHRpbWUgaW1wb3J0IGxvY2FsdGltZQorZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZQorZnJvbSBwYXN0ZS51dGlsLmRhdGV0aW1ldXRpbCBpbXBvcnQgKgorCitkZWYgdGVzdF90aW1lZGVsdGEoKToKKyAgICBhc3NlcnQoJycgPT0gbm9ybWFsaXplX3RpbWVkZWx0YSgiIikpCisgICAgYXNzZXJ0KCcwLjEwJyA9PSBub3JtYWxpemVfdGltZWRlbHRhKCI2bSIpKQorICAgIGFzc2VydCgnMC41MCcgPT0gbm9ybWFsaXplX3RpbWVkZWx0YSgiMzBtIikpCisgICAgYXNzZXJ0KCcwLjc1JyA9PSBub3JtYWxpemVfdGltZWRlbHRhKCI0NW0iKSkKKyAgICBhc3NlcnQoJzEuMDAnID09IG5vcm1hbGl6ZV90aW1lZGVsdGEoIjYwIG1pbiIpKQorICAgIGFzc2VydCgnMS41MCcgPT0gbm9ybWFsaXplX3RpbWVkZWx0YSgiOTBtaW4iKSkKKyAgICBhc3NlcnQoJzEuNTAnID09IG5vcm1hbGl6ZV90aW1lZGVsdGEoIjEuNTAiKSkKKyAgICBhc3NlcnQoJzQuNTAnID09IG5vcm1hbGl6ZV90aW1lZGVsdGEoIjQgOiAzMCIpKQorICAgIGFzc2VydCgnMS41MCcgPT0gbm9ybWFsaXplX3RpbWVkZWx0YSgiMWggMzBtIikpCisgICAgYXNzZXJ0KCcxLjAwJyA9PSBub3JtYWxpemVfdGltZWRlbHRhKCIxIikpCisgICAgYXNzZXJ0KCcxLjAwJyA9PSBub3JtYWxpemVfdGltZWRlbHRhKCIxIGhvdXIiKSkKKyAgICBhc3NlcnQoJzguMDAnID09IG5vcm1hbGl6ZV90aW1lZGVsdGEoIjQ4MCBtaW5zIikpCisgICAgYXNzZXJ0KCc4LjAwJyA9PSBub3JtYWxpemVfdGltZWRlbHRhKCI4aCIpKQorICAgIGFzc2VydCgnMC41MCcgPT0gbm9ybWFsaXplX3RpbWVkZWx0YSgiMC41IikpCisgICAgYXNzZXJ0KCcwLjEwJyA9PSBub3JtYWxpemVfdGltZWRlbHRhKCIuMSIpKQorICAgIGFzc2VydCgnMC41MCcgPT0gbm9ybWFsaXplX3RpbWVkZWx0YSgiLjUwIikpCisgICAgYXNzZXJ0KCcwLjc1JyA9PSBub3JtYWxpemVfdGltZWRlbHRhKCIwLjc1IikpCisKK2RlZiB0ZXN0X3RpbWUoKToKKyAgICBhc3NlcnQoJzAzOjAwIFBNJyA9PSBub3JtYWxpemVfdGltZSgiM3AiLCBhbXBtPVRydWUpKQorICAgIGFzc2VydCgnMDM6MDAgQU0nID09IG5vcm1hbGl6ZV90aW1lKCIzMDAiLCBhbXBtPVRydWUpKQorICAgIGFzc2VydCgnMDM6MjIgQU0nID09IG5vcm1hbGl6ZV90aW1lKCIzMjIiLCBhbXBtPVRydWUpKQorICAgIGFzc2VydCgnMDE6MjIgUE0nID09IG5vcm1hbGl6ZV90aW1lKCIxMzIyIiwgYW1wbT1UcnVlKSkKKyAgICBhc3NlcnQoJzAxOjAwIFBNJyA9PSBub3JtYWxpemVfdGltZSgiMTMiLCBhbXBtPVRydWUpKQorICAgIGFzc2VydCgnMTI6MDAgUE0nID09IG5vcm1hbGl6ZV90aW1lKCJub29uIiwgYW1wbT1UcnVlKSkKKyAgICBhc3NlcnQoIjA2OjAwIFBNIiA9PSBub3JtYWxpemVfdGltZSgiNiIsIGFtcG09VHJ1ZSkpCisgICAgYXNzZXJ0KCIwMTowMCBQTSIgPT0gbm9ybWFsaXplX3RpbWUoIjEiLCBhbXBtPVRydWUpKQorICAgIGFzc2VydCgiMDc6MDAgQU0iID09IG5vcm1hbGl6ZV90aW1lKCI3IiwgYW1wbT1UcnVlKSkKKyAgICBhc3NlcnQoIjAxOjAwIFBNIiA9PSBub3JtYWxpemVfdGltZSgiMSBwbSIsIGFtcG09VHJ1ZSkpCisgICAgYXNzZXJ0KCIwMzozMCBQTSIgPT0gbm9ybWFsaXplX3RpbWUoIjM6MzAgcG0iLCBhbXBtPVRydWUpKQorICAgIGFzc2VydCgiMDM6MzAgUE0iID09IG5vcm1hbGl6ZV90aW1lKCIzIDMwIHBtIiwgYW1wbT1UcnVlKSkKKyAgICBhc3NlcnQoIjAzOjMwIFBNIiA9PSBub3JtYWxpemVfdGltZSgiMyAzMCBQLk0uIiwgYW1wbT1UcnVlKSkKKyAgICBhc3NlcnQoIjEyOjAwIFBNIiA9PSBub3JtYWxpemVfdGltZSgiMCIsIGFtcG09VHJ1ZSkpCisgICAgYXNzZXJ0KCIxMjowMCBBTSIgPT0gbm9ybWFsaXplX3RpbWUoIjEyMDAgQU0iLCBhbXBtPVRydWUpKQorCitkZWYgdGVzdF9kYXRlKCk6CisgICAgdG0gPSBsb2NhbHRpbWUoKQorICAgIHlyID0gdG1bMF0KKyAgICBtbyA9IHRtWzFdCisgICAgYXNzZXJ0KGRhdGUoeXIsNCwxMSkgID09IHBhcnNlX2RhdGUoIjQxMSIpKQorICAgIGFzc2VydChkYXRlKHlyLDQsMTEpICA9PSBwYXJzZV9kYXRlKCJBUFIxMSIpKQorICAgIGFzc2VydChkYXRlKHlyLDQsMTEpICA9PSBwYXJzZV9kYXRlKCIxMUFQUiIpKQorICAgIGFzc2VydChkYXRlKHlyLDQsMTEpICA9PSBwYXJzZV9kYXRlKCI0IDExIikpCisgICAgYXNzZXJ0KGRhdGUoeXIsNCwxMSkgID09IHBhcnNlX2RhdGUoIjExIEFQUiIpKQorICAgIGFzc2VydChkYXRlKHlyLDQsMTEpICA9PSBwYXJzZV9kYXRlKCJBUFIgMTEiKSkKKyAgICBhc3NlcnQoZGF0ZSh5cixtbywxMSkgPT0gcGFyc2VfZGF0ZSgiMTEiKSkKKyAgICBhc3NlcnQoZGF0ZSh5ciw0LDEpICAgPT0gcGFyc2VfZGF0ZSgiQVBSIikpCisgICAgYXNzZXJ0KGRhdGUoeXIsNCwxMSkgID09IHBhcnNlX2RhdGUoIjQvMTEiKSkKKyAgICBhc3NlcnQoZGF0ZS50b2RheSgpICAgPT0gcGFyc2VfZGF0ZSgidG9kYXkiKSkKKyAgICBhc3NlcnQoZGF0ZS50b2RheSgpICAgPT0gcGFyc2VfZGF0ZSgibm93IikpCisgICAgYXNzZXJ0KE5vbmUgICAgICAgICAgID09IHBhcnNlX2RhdGUoIiIpKQorICAgIGFzc2VydCgnJyAgICAgICAgICAgICA9PSBub3JtYWxpemVfZGF0ZShOb25lKSkKKworICAgIGFzc2VydCgnMjAwMS0wMi0wMycgPT0gbm9ybWFsaXplX2RhdGUoIjIwMDEwMjAzIikpCisgICAgYXNzZXJ0KCcxOTk5LTA0LTExJyA9PSBub3JtYWxpemVfZGF0ZSgiMTk5OSA0IDExIikpCisgICAgYXNzZXJ0KCcxOTk5LTA0LTExJyA9PSBub3JtYWxpemVfZGF0ZSgiMTk5OSBBUFIgMTEiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMTEnID09IG5vcm1hbGl6ZV9kYXRlKCJBUFIgMTEgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIjExIEFQUiAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTA0LTExJyA9PSBub3JtYWxpemVfZGF0ZSgiNCAxMSAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTA0LTAxJyA9PSBub3JtYWxpemVfZGF0ZSgiMTk5OSBBUFIiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMDEnID09IG5vcm1hbGl6ZV9kYXRlKCIxOTk5IDQiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMDEnID09IG5vcm1hbGl6ZV9kYXRlKCI0IDE5OTkiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMDEnID09IG5vcm1hbGl6ZV9kYXRlKCJBUFIgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wMS0wMScgPT0gbm9ybWFsaXplX2RhdGUoIjE5OTkiKSkKKworICAgIGFzc2VydCgnMTk5OS0wNC0wMScgPT0gbm9ybWFsaXplX2RhdGUoIjFBUFIxOTk5IikpCisgICAgYXNzZXJ0KCcyMDAxLTA0LTAxJyA9PSBub3JtYWxpemVfZGF0ZSgiMUFQUjIwMDEiKSkKKworICAgIGFzc2VydCgnMTk5OS0wNC0xOCcgPT0gbm9ybWFsaXplX2RhdGUoIjE5OTktMDQtMTErNyIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xOCcgPT0gbm9ybWFsaXplX2RhdGUoIjE5OTktMDQtMTEgNyIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0wMScgPT0gbm9ybWFsaXplX2RhdGUoIjEgYXByIDE5OTkiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMTEnID09IG5vcm1hbGl6ZV9kYXRlKCIxMSBhcHIgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIjExIEFwciAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTA0LTExJyA9PSBub3JtYWxpemVfZGF0ZSgiMTEtYXByLTE5OTkiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMTEnID09IG5vcm1hbGl6ZV9kYXRlKCIxMSBBcHJpbCAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTA0LTExJyA9PSBub3JtYWxpemVfZGF0ZSgiMTEgQVBSSUwgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIjExIGFwcmlsIDE5OTkiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMTEnID09IG5vcm1hbGl6ZV9kYXRlKCIxMSBhcHJpY2sgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIkFQUiAxMSwgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIjQvMTEvMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIjQtMTEtMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIjE5OTktNC0xMSIpKQorICAgIGFzc2VydCgnMTk5OS0wNC0xMScgPT0gbm9ybWFsaXplX2RhdGUoIjE5OTkwNDExIikpCisKKyAgICBhc3NlcnQoJzE5OTktMDEtMDEnID09IG5vcm1hbGl6ZV9kYXRlKCIxIEphbiAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTAyLTAxJyA9PSBub3JtYWxpemVfZGF0ZSgiMSBGZWIgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wMy0wMScgPT0gbm9ybWFsaXplX2RhdGUoIjEgTWFyIDE5OTkiKSkKKyAgICBhc3NlcnQoJzE5OTktMDQtMDEnID09IG5vcm1hbGl6ZV9kYXRlKCIxIEFwciAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTA1LTAxJyA9PSBub3JtYWxpemVfZGF0ZSgiMSBNYXkgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wNi0wMScgPT0gbm9ybWFsaXplX2RhdGUoIjEgSnVuIDE5OTkiKSkKKyAgICBhc3NlcnQoJzE5OTktMDctMDEnID09IG5vcm1hbGl6ZV9kYXRlKCIxIEp1bCAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTA4LTAxJyA9PSBub3JtYWxpemVfZGF0ZSgiMSBBdWcgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0wOS0wMScgPT0gbm9ybWFsaXplX2RhdGUoIjEgU2VwIDE5OTkiKSkKKyAgICBhc3NlcnQoJzE5OTktMTAtMDEnID09IG5vcm1hbGl6ZV9kYXRlKCIxIE9jdCAxOTk5IikpCisgICAgYXNzZXJ0KCcxOTk5LTExLTAxJyA9PSBub3JtYWxpemVfZGF0ZSgiMSBOb3YgMTk5OSIpKQorICAgIGFzc2VydCgnMTk5OS0xMi0wMScgPT0gbm9ybWFsaXplX2RhdGUoIjEgRGVjIDE5OTkiKSkKKworICAgIGFzc2VydCgnMTk5OS0wNC0zMCcgPT0gbm9ybWFsaXplX2RhdGUoIjE5OTktNC0zMCIpKQorICAgIGFzc2VydCgnMjAwMC0wMi0yOScgPT0gbm9ybWFsaXplX2RhdGUoIjI5IEZFQiAyMDAwIikpCisgICAgYXNzZXJ0KCcyMDAxLTAyLTI4JyA9PSBub3JtYWxpemVfZGF0ZSgiMjggRkVCIDIwMDEiKSkKKyAgICBhc3NlcnQoJzIwMDQtMDItMjknID09IG5vcm1hbGl6ZV9kYXRlKCIyOSBGRUIgMjAwNCIpKQorICAgIGFzc2VydCgnMjEwMC0wMi0yOCcgPT0gbm9ybWFsaXplX2RhdGUoIjI4IEZFQiAyMTAwIikpCisgICAgYXNzZXJ0KCcxOTAwLTAyLTI4JyA9PSBub3JtYWxpemVfZGF0ZSgiMjggRkVCIDE5MDAiKSkKKworICAgIGRlZiBhc3NlcnRFcnJvcih2YWwpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBub3JtYWxpemVfZGF0ZSh2YWwpCisgICAgICAgIGV4Y2VwdCAoVHlwZUVycm9yLFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInR5cGUgZXJyb3IgZXhwZWN0ZWQiLCB2YWwpCisKKyAgICBhc3NlcnRFcnJvcigiMjAwMC0xMy0xMSIpCisgICAgYXNzZXJ0RXJyb3IoIkFQUiA5OSIpCisgICAgYXNzZXJ0RXJyb3IoIjI5IEZFQiAxOTAwIikKKyAgICBhc3NlcnRFcnJvcigiMjkgRkVCIDIxMDAiKQorICAgIGFzc2VydEVycm9yKCIyOSBGRUIgMjAwMSIpCisgICAgYXNzZXJ0RXJyb3IoIjE5OTktNC0zMSIpCisgICAgYXNzZXJ0RXJyb3IoIkFQUiA5OSIpCisgICAgYXNzZXJ0RXJyb3IoIjIwMzAxIikKKyAgICBhc3NlcnRFcnJvcigiMDIwMzAxIikKKyAgICBhc3NlcnRFcnJvcigiMUFQUjk5IikKKyAgICBhc3NlcnRFcnJvcigiMUFQUjAxIikKKyAgICBhc3NlcnRFcnJvcigiMSBBUFIgOTkiKQorICAgIGFzc2VydEVycm9yKCIxIEFQUiAwMSIpCisgICAgYXNzZXJ0RXJyb3IoIjExLzUvMDEiKQorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF91dGlsL3Rlc3RfbWltZXBhcnNlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXRpbC90ZXN0X21pbWVwYXJzZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjliNjc1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXRpbC90ZXN0X21pbWVwYXJzZS5weQpAQCAtMCwwICsxLDIzNSBAQAorIyAoYykgMjAxMCBDaC4gWndlcnNjaGtlIGFuZCBjb250cmlidXRvcnMKKyMgVGhpcyBtb2R1bGUgaXMgcGFydCBvZiB0aGUgUHl0aG9uIFBhc3RlIFByb2plY3QgYW5kIGlzIHJlbGVhc2VkIHVuZGVyCisjIHRoZSBNSVQgTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKworZnJvbSBwYXN0ZS51dGlsLm1pbWVwYXJzZSBpbXBvcnQgKgorCitkZWYgdGVzdF9wYXJzZV9taW1lX3R5cGUoKToKKyAgICBwYXJzZSA9IHBhcnNlX21pbWVfdHlwZQorICAgIGFzc2VydCBwYXJzZSgnKi8qJykgPT0gKCcqJywgJyonLCB7fSkKKyAgICBhc3NlcnQgcGFyc2UoJ3RleHQvaHRtbCcpID09ICgndGV4dCcsICdodG1sJywge30pCisgICAgYXNzZXJ0IHBhcnNlKCdhdWRpby8qOyBxPTAuMicpID09ICgnYXVkaW8nLCAnKicsIHsncSc6ICcwLjInfSkKKyAgICBhc3NlcnQgcGFyc2UoJ3RleHQveC1kdmk7bGV2ZWw9MScpID09ICgndGV4dCcsICd4LWR2aScsIHsnbGV2ZWwnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnaW1hZ2UvZ2lmOyBsZXZlbD0yOyBxPTAuNCcpID09ICgKKyAgICAgICAgJ2ltYWdlJywgJ2dpZicsIHsnbGV2ZWwnOiAnMicsICdxJzogJzAuNCd9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veGh0bWw7bGV2ZWw9MztxPTAuNScpID09ICgKKyAgICAgICAgJ2FwcGxpY2F0aW9uJywgJ3hodG1sJywgeydsZXZlbCc6ICczJywgJ3EnOiAnMC41J30pCisgICAgYXNzZXJ0IHBhcnNlKCdhcHBsaWNhdGlvbi94bWwnKSA9PSAoJ2FwcGxpY2F0aW9uJywgJ3htbCcsIHt9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veG1sO3E9MScpID09ICgnYXBwbGljYXRpb24nLCAneG1sJywgeydxJzogJzEnfSkKKyAgICBhc3NlcnQgcGFyc2UoJ2FwcGxpY2F0aW9uL3htbCA7IHE9MTtiPW90aGVyJykgPT0gKAorICAgICAgICAnYXBwbGljYXRpb24nLCAneG1sJywgeydxJzogJzEnLCAnYic6ICdvdGhlcid9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veG1sIDsgcT0yO2I9b3RoZXInKSA9PSAoCisgICAgICAgICdhcHBsaWNhdGlvbicsICd4bWwnLCB7J3EnOiAnMicsICdiJzogJ290aGVyJ30pCisgICAgYXNzZXJ0IHBhcnNlKCdhcHBsaWNhdGlvbi94aHRtbDtxPTAuNScpID09ICgKKyAgICAgICAgJ2FwcGxpY2F0aW9uJywgJ3hodG1sJywgeydxJzogJzAuNSd9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veGh0bWw7cT0wLjU7dmVyPTEuMicpID09ICgKKyAgICAgICAgJ2FwcGxpY2F0aW9uJywgJ3hodG1sJywgeydxJzogJzAuNScsICd2ZXInOiAnMS4yJ30pCisKK2RlZiB0ZXN0X3BhcnNlX2lsbGZvcm1lZF9taW1lX3R5cGUoKToKKyAgICBwYXJzZSA9IHBhcnNlX21pbWVfdHlwZQorICAgIGFzc2VydCBwYXJzZSgnKicpID09ICgnKicsICcqJywge30pCisgICAgYXNzZXJ0IHBhcnNlKCd0ZXh0JykgPT0gKCd0ZXh0JywgJyonLCB7fSkKKyAgICBhc3NlcnQgcGFyc2UoJ3RleHQvJykgPT0gKCd0ZXh0JywgJyonLCB7fSkKKyAgICBhc3NlcnQgcGFyc2UoJy9wbGFpbicpID09ICgnKicsICdwbGFpbicsIHt9KQorICAgIGFzc2VydCBwYXJzZSgnLycpID09ICgnKicsICcqJywge30pCisgICAgYXNzZXJ0IHBhcnNlKCd0ZXh0L3BsYWluOycpID09ICgndGV4dCcsICdwbGFpbicsIHt9KQorICAgIGFzc2VydCBwYXJzZSgnO3E9MC41JykgPT0gKCcqJywgJyonLCB7J3EnOiAnMC41J30pCisgICAgYXNzZXJ0IHBhcnNlKCcqOyBxPS4yJykgPT0gKCcqJywgJyonLCB7J3EnOiAnLjInfSkKKyAgICBhc3NlcnQgcGFyc2UoJ2ltYWdlOyBxPS43OyBsZXZlbD0zJykgPT0gKAorICAgICAgICAnaW1hZ2UnLCAnKicsIHsncSc6ICcuNycsICdsZXZlbCc6ICczJ30pCisgICAgYXNzZXJ0IHBhcnNlKCcqO3E9MScpID09ICgnKicsICcqJywgeydxJzogJzEnfSkKKyAgICBhc3NlcnQgcGFyc2UoJyo7cT0nKSA9PSAoJyonLCAnKicsIHt9KQorICAgIGFzc2VydCBwYXJzZSgnKjs9MC41JykgPT0gKCcqJywgJyonLCB7fSkKKyAgICBhc3NlcnQgcGFyc2UoJyo7cT1mb29iYXInKSA9PSAoJyonLCAnKicsIHsncSc6ICdmb29iYXInfSkKKyAgICBhc3NlcnQgcGFyc2UoJ2ltYWdlL2dpZjsgbGV2ZWw9MjsgcT0yJykgPT0gKAorICAgICAgICAnaW1hZ2UnLCAnZ2lmJywgeydsZXZlbCc6ICcyJywgJ3EnOiAnMid9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veG1sO3E9JykgPT0gKCdhcHBsaWNhdGlvbicsICd4bWwnLCB7fSkKKyAgICBhc3NlcnQgcGFyc2UoJ2FwcGxpY2F0aW9uL3htbCA7cT0nKSA9PSAoJ2FwcGxpY2F0aW9uJywgJ3htbCcsIHt9KQorICAgIGFzc2VydCBwYXJzZSgnICo7IHEgPTsnKSA9PSAoJyonLCAnKicsIHt9KQorICAgIGFzc2VydCBwYXJzZSgnICo7IHE9LjInKSA9PSAoJyonLCAnKicsIHsncSc6ICcuMid9KQorCitkZWYgdGVzdF9wYXJzZV9tZWRpYV9yYW5nZSgpOgorICAgIHBhcnNlID0gcGFyc2VfbWVkaWFfcmFuZ2UKKyAgICBhc3NlcnQgcGFyc2UoJ2FwcGxpY2F0aW9uLyo7cT0wLjUnKSA9PSAoJ2FwcGxpY2F0aW9uJywgJyonLCB7J3EnOiAnMC41J30pCisgICAgYXNzZXJ0IHBhcnNlKCd0ZXh0L3BsYWluJykgPT0gKCd0ZXh0JywgJ3BsYWluJywgeydxJzogJzEnfSkKKyAgICBhc3NlcnQgcGFyc2UoJyonKSA9PSAoJyonLCAnKicsIHsncSc6ICcxJ30pCisgICAgYXNzZXJ0IHBhcnNlKCc7cT0wLjUnKSA9PSAoJyonLCAnKicsIHsncSc6ICcwLjUnfSkKKyAgICBhc3NlcnQgcGFyc2UoJyo7cT0wLjUnKSA9PSAoJyonLCAnKicsIHsncSc6ICcwLjUnfSkKKyAgICBhc3NlcnQgcGFyc2UoJyo7cT0xJykgPT0gKCcqJywgJyonLCB7J3EnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnKjtxPScpID09ICgnKicsICcqJywgeydxJzogJzEnfSkKKyAgICBhc3NlcnQgcGFyc2UoJyo7cT0tMScpID09ICgnKicsICcqJywgeydxJzogJzEnfSkKKyAgICBhc3NlcnQgcGFyc2UoJyo7cT1mb29iYXInKSA9PSAoJyonLCAnKicsIHsncSc6ICcxJ30pCisgICAgYXNzZXJ0IHBhcnNlKCcqO3E9MC4wMDAxJykgPT0gKCcqJywgJyonLCB7J3EnOiAnMC4wMDAxJ30pCisgICAgYXNzZXJ0IHBhcnNlKCcqO3E9MTAwMC4wJykgPT0gKCcqJywgJyonLCB7J3EnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnKjtxPTAnKSA9PSAoJyonLCAnKicsIHsncSc6ICcwJ30pCisgICAgYXNzZXJ0IHBhcnNlKCcqO3E9MC4wMDAwJykgPT0gKCcqJywgJyonLCB7J3EnOiAnMC4wMDAwJ30pCisgICAgYXNzZXJ0IHBhcnNlKCcqO3E9MS4wMDAxJykgPT0gKCcqJywgJyonLCB7J3EnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnKjtxPTInKSA9PSAoJyonLCAnKicsIHsncSc6ICcxJ30pCisgICAgYXNzZXJ0IHBhcnNlKCcqO3E9MWUzJykgPT0gKCcqJywgJyonLCB7J3EnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnaW1hZ2UvZ2lmOyBsZXZlbD0yJykgPT0gKAorICAgICAgICAnaW1hZ2UnLCAnZ2lmJywgeydsZXZlbCc6ICcyJywgJ3EnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnaW1hZ2UvZ2lmOyBsZXZlbD0yOyBxPTAuNScpID09ICgKKyAgICAgICAgJ2ltYWdlJywgJ2dpZicsIHsnbGV2ZWwnOiAnMicsICdxJzogJzAuNSd9KQorICAgIGFzc2VydCBwYXJzZSgnaW1hZ2UvZ2lmOyBsZXZlbD0yOyBxPTInKSA9PSAoCisgICAgICAgICdpbWFnZScsICdnaWYnLCB7J2xldmVsJzogJzInLCAncSc6ICcxJ30pCisgICAgYXNzZXJ0IHBhcnNlKCdhcHBsaWNhdGlvbi94bWwnKSA9PSAoJ2FwcGxpY2F0aW9uJywgJ3htbCcsIHsncSc6ICcxJ30pCisgICAgYXNzZXJ0IHBhcnNlKCdhcHBsaWNhdGlvbi94bWw7cT0xJykgPT0gKCdhcHBsaWNhdGlvbicsICd4bWwnLCB7J3EnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veG1sO3E9JykgPT0gKCdhcHBsaWNhdGlvbicsICd4bWwnLCB7J3EnOiAnMSd9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veG1sIDtxPScpID09ICgnYXBwbGljYXRpb24nLCAneG1sJywgeydxJzogJzEnfSkKKyAgICBhc3NlcnQgcGFyc2UoJ2FwcGxpY2F0aW9uL3htbCA7IHE9MTtiPW90aGVyJykgPT0gKAorICAgICAgICAnYXBwbGljYXRpb24nLCAneG1sJywgeydxJzogJzEnLCAnYic6ICdvdGhlcid9KQorICAgIGFzc2VydCBwYXJzZSgnYXBwbGljYXRpb24veG1sIDsgcT0yO2I9b3RoZXInKSA9PSAoCisgICAgICAgICdhcHBsaWNhdGlvbicsICd4bWwnLCB7J3EnOiAnMScsICdiJzogJ290aGVyJ30pCisgICAgYXNzZXJ0IHBhcnNlKCcgKjsgcSA9OycpID09ICgnKicsICcqJywgeydxJzogJzEnfSkKKyAgICBhc3NlcnQgcGFyc2UoJyAqOyBxPS4yJykgPT0gKCcqJywgJyonLCB7J3EnOiAnLjInfSkKKworZGVmIHRlc3RfZml0bmVzc19hbmRfcXVhbGl0eV9wYXJzZWQoKToKKyAgICBmYXEgPSBmaXRuZXNzX2FuZF9xdWFsaXR5X3BhcnNlZAorICAgIGFzc2VydCBmYXEoJyovKjtxPTAuNycsIFsKKyAgICAgICAgKCdmb28nLCAnYmFyJywgeydxJzogJzAuNSd9KV0pID09ICgwLCAwLjUpCisgICAgYXNzZXJ0IGZhcSgnZm9vLyo7cT0wLjcnLCBbCisgICAgICAgICgnZm9vJywgJ2JhcicsIHsncSc6ICcwLjUnfSldKSA9PSAoMTAwLCAwLjUpCisgICAgYXNzZXJ0IGZhcSgnKi9iYXI7cT0wLjcnLCBbCisgICAgICAgICgnZm9vJywgJ2JhcicsIHsncSc6ICcwLjUnfSldKSA9PSAoMTAsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCdmb28vYmFyO3E9MC43JywgWworICAgICAgICAoJ2ZvbycsICdiYXInLCB7J3EnOiAnMC41J30pXSkgPT0gKDExMCwgMC41KQorICAgIGFzc2VydCBmYXEoJ3RleHQvaHRtbDtxPTAuNycsIFsKKyAgICAgICAgKCdmb28nLCAnYmFyJywgeydxJzogJzAuNSd9KV0pID09ICgtMSwgMCkKKyAgICBhc3NlcnQgZmFxKCd0ZXh0L2h0bWw7cT0wLjcnLCBbCisgICAgICAgICgndGV4dCcsICdiYXInLCB7J3EnOiAnMC41J30pXSkgPT0gKC0xLCAwKQorICAgIGFzc2VydCBmYXEoJ3RleHQvaHRtbDtxPTAuNycsIFsKKyAgICAgICAgKCdmb28nLCAnaHRtbCcsIHsncSc6ICcwLjUnfSldKSA9PSAoLTEsIDApCisgICAgYXNzZXJ0IGZhcSgndGV4dC9odG1sO3E9MC43JywgWworICAgICAgICAoJ3RleHQnLCAnKicsIHsncSc6ICcwLjUnfSldKSA9PSAoMTAwLCAwLjUpCisgICAgYXNzZXJ0IGZhcSgndGV4dC9odG1sO3E9MC43JywgWworICAgICAgICAoJyonLCAnaHRtbCcsIHsncSc6ICcwLjUnfSldKSA9PSAoMTAsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCd0ZXh0L2h0bWw7cT0wLjcnLCBbCisgICAgICAgICgnKicsICcqJywgeydxJzogJzAnfSksICgndGV4dCcsICdodG1sJywgeydxJzogJzAuNSd9KV0pID09ICgxMTAsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCd0ZXh0L2h0bWw7cT0wLjcnLCBbCisgICAgICAgICgnKicsICcqJywgeydxJzogJzAuNSd9KSwgKCdhdWRpbycsICcqJywgeydxJzogJzAnfSldKSA9PSAoMCwgMC41KQorICAgIGFzc2VydCBmYXEoJ2F1ZGlvL21wMztxPTAuNycsIFsKKyAgICAgICAgKCcqJywgJyonLCB7J3EnOiAnMCd9KSwgKCdhdWRpbycsICcqJywgeydxJzogJzAuNSd9KV0pID09ICgxMDAsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCcqL21wMztxPTAuNycsIFsKKyAgICAgICAgKCdmb28nLCAnbXAzJywgeydxJzogJzAuNSd9KSwgKCdhdWRpbycsICcqJywgeydxJzogJzAnfSldKSA9PSAoMTAsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCdhdWRpby9tcDM7cT0wLjcnLCBbCisgICAgICAgICgnYXVkaW8nLCAnb2dnJywgeydxJzogJzAnfSksICgnKicsICdtcDMnLCB7J3EnOiAnMC41J30pXSkgPT0gKDEwLCAwLjUpCisgICAgYXNzZXJ0IGZhcSgnYXVkaW8vbXAzO3E9MC43JywgWworICAgICAgICAoJyonLCAnb2dnJywgeydxJzogJzAnfSksICgnKicsICdtcDMnLCB7J3EnOiAnMC41J30pXSkgPT0gKDEwLCAwLjUpCisgICAgYXNzZXJ0IGZhcSgndGV4dC9odG1sO3E9MC43JywgWworICAgICAgICAoJ3RleHQnLCAncGxhaW4nLCB7J3EnOiAnMCd9KSwKKyAgICAgICAgKCdwbGFpbicsICdodG1sJywgeydxJzogJzAnfSksCisgICAgICAgICgndGV4dCcsICdodG1sJywgeydxJzogJzAuNSd9KSwKKyAgICAgICAgKCdodG1sJywgJ3RleHQnLCB7J3EnOiAnMCd9KV0pID09ICgxMTAsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCd0ZXh0L2h0bWw7cT0wLjc7bGV2ZWw9MicsIFsKKyAgICAgICAgKCdwbGFpbicsICdodG1sJywgeydxJzogJzAnLCAnbGV2ZWwnOiAnMid9KSwKKyAgICAgICAgKCd0ZXh0JywgJyonLCB7J3EnOiAnMC41JywgJ2xldmVsJzogJzMnfSksCisgICAgICAgICgnKicsICdodG1sJywgeydxJzogJzAuNScsICdsZXZlbCc6ICcyJ30pLAorICAgICAgICAoJ2ltYWdlJywgJ2dpZicsIHsncSc6ICcwLjUnLCAnbGV2ZWwnOiAnMid9KV0pID09ICgxMDAsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCd0ZXh0L2h0bWw7cT0wLjc7bGV2ZWw9MicsIFsKKyAgICAgICAgKCd0ZXh0JywgJ3BsYWluJywgeydxJzogJzAnfSksICgndGV4dCcsICdodG1sJywgeydxJzogJzAnfSksCisgICAgICAgICgndGV4dCcsICdwbGFpbicsIHsncSc6ICcwJywgJ2xldmVsJzogJzInfSksCisgICAgICAgICgndGV4dCcsICdodG1sJywgeydxJzogJzAuNScsICdsZXZlbCc6ICcyJ30pLAorICAgICAgICAoJyonLCAnKicsIHsncSc6ICcwJywgJ2xldmVsJzogJzInfSksCisgICAgICAgICgndGV4dCcsICdodG1sJywgeydxJzogJzAnLCAnbGV2ZWwnOiAnMyd9KV0pID09ICgxMTEsIDAuNSkKKyAgICBhc3NlcnQgZmFxKCd0ZXh0L2h0bWw7cT0wLjc7bGV2ZWw9MjtvcHQ9MycsIFsKKyAgICAgICAgKCd0ZXh0JywgJ2h0bWwnLCB7J3EnOiAnMCd9KSwKKyAgICAgICAgKCd0ZXh0JywgJ2h0bWwnLCB7J3EnOiAnMCcsICdsZXZlbCc6ICcyJ30pLAorICAgICAgICAoJ3RleHQnLCAnaHRtbCcsIHsncSc6ICcwJywgJ29wdCc6ICczJ30pLAorICAgICAgICAoJyonLCAnKicsIHsncSc6ICcwJywgJ2xldmVsJzogJzInLCAnb3B0JzogJzMnfSksCisgICAgICAgICgndGV4dCcsICdodG1sJywgeydxJzogJzAnLCAnbGV2ZWwnOiAnMycsICdvcHQnOiAnMyd9KSwKKyAgICAgICAgKCd0ZXh0JywgJ2h0bWwnLCB7J3EnOiAnMC41JywgJ2xldmVsJzogJzInLCAnb3B0JzogJzMnfSksCisgICAgICAgICgnKicsICcqJywgeydxJzogJzAnLCAnbGV2ZWwnOiAnMycsICdvcHQnOiAnMyd9KV0pID09ICgxMTIsIDAuNSkKKworZGVmIHRlc3RfcXVhbGl0eV9wYXJzZWQoKToKKyAgICBxcCA9IHF1YWxpdHlfcGFyc2VkCisgICAgYXNzZXJ0IHFwKCdpbWFnZS9naWY7cT0wLjcnLCBbKCdpbWFnZScsICdqcGcnLCB7J3EnOiAnMC41J30pXSkgPT0gMAorICAgIGFzc2VydCBxcCgnaW1hZ2UvZ2lmO3E9MC43JywgWygnaW1hZ2UnLCAnKicsIHsncSc6ICcwLjUnfSldKSA9PSAwLjUKKyAgICBhc3NlcnQgcXAoJ2F1ZGlvL21wMztxPTAuNztxdWFsaXR5PTEwMCcsIFsKKyAgICAgICAgKCcqJywgJyonLCB7J3EnOiAnMCcsICdxdWFsaXR5JzogJzEwMCd9KSwKKyAgICAgICAgKCdhdWRpbycsICcqJywgeydxJzogJzAnLCAncXVhbGl0eSc6ICcxMDAnfSksCisgICAgICAgICgnKicsICdtcDMnLCB7J3EnOiAnMCcsICdxdWFsaXR5JzogJzEwMCd9KSwKKyAgICAgICAgKCdhdWRpbycsICdtcDMnLCB7J3EnOiAnMCcsICdxdWFsaXR5JzogJzUwJ30pLAorICAgICAgICAoJ2F1ZGlvJywgJ21wMycsIHsncSc6ICcwLjUnLCAncXVhbGl0eSc6ICcxMDAnfSksCisgICAgICAgICgnYXVkaW8nLCAnbXAzJywgeydxJzogJzAuNSd9KV0pID09IDAuNQorCitkZWYgdGVzdF9xdWFsaXR5KCk6CisgICAgYXNzZXJ0IHF1YWxpdHkoJ3RleHQvaHRtbCcsCisgICAgICAgICd0ZXh0Lyo7cT0wLjMsIHRleHQvaHRtbDtxPTAuNzUsIHRleHQvaHRtbDtsZXZlbD0xLCcKKyAgICAgICAgJyB0ZXh0L2h0bWw7bGV2ZWw9MjtxPTAuNCwgKi8qO3E9MC41JykgPT0gMC43NQorICAgIGFzc2VydCBxdWFsaXR5KCd0ZXh0L2h0bWw7bGV2ZWw9MicsCisgICAgICAgICd0ZXh0Lyo7cT0wLjMsIHRleHQvaHRtbDtxPTAuNywgdGV4dC9odG1sO2xldmVsPTEsJworICAgICAgICAnIHRleHQvaHRtbDtsZXZlbD0yO3E9MC40LCAqLyo7cT0wLjUnKSA9PSAwLjQKKyAgICBhc3NlcnQgcXVhbGl0eSgndGV4dC9wbGFpbicsCisgICAgICAgICd0ZXh0Lyo7cT0wLjI1LCB0ZXh0L2h0bWw7cT0wLjcsIHRleHQvaHRtbDtsZXZlbD0xLCcKKyAgICAgICAgJyB0ZXh0L2h0bWw7bGV2ZWw9MjtxPTAuNCwgKi8qO3E9MC41JykgPT0gMC4yNQorICAgIGFzc2VydCBxdWFsaXR5KCdwbGFpbi90ZXh0JywKKyAgICAgICAgJ3RleHQvKjtxPTAuMywgdGV4dC9odG1sO3E9MC43LCB0ZXh0L2h0bWw7bGV2ZWw9MSwnCisgICAgICAgICcgdGV4dC9odG1sO2xldmVsPTI7cT0wLjQsICovKjtxPTAuNScpID09IDAuNQorICAgIGFzc2VydCBxdWFsaXR5KCd0ZXh0L2h0bWw7bGV2ZWw9MScsCisgICAgICAgICd0ZXh0Lyo7cT0wLjMsIHRleHQvaHRtbDtxPTAuNywgdGV4dC9odG1sO2xldmVsPTEsJworICAgICAgICAnIHRleHQvaHRtbDtsZXZlbD0yO3E9MC40LCAqLyo7cT0wLjUnKSA9PSAxCisgICAgYXNzZXJ0IHF1YWxpdHkoJ2ltYWdlL2pwZWcnLAorICAgICAgICAndGV4dC8qO3E9MC4zLCB0ZXh0L2h0bWw7cT0wLjcsIHRleHQvaHRtbDtsZXZlbD0xLCcKKyAgICAgICAgJyB0ZXh0L2h0bWw7bGV2ZWw9MjtxPTAuNCwgKi8qO3E9MC41JykgPT0gMC41CisgICAgYXNzZXJ0IHF1YWxpdHkoJ3RleHQvaHRtbDtsZXZlbD0yJywKKyAgICAgICAgJ3RleHQvKjtxPTAuMywgdGV4dC9odG1sO3E9MC43LCB0ZXh0L2h0bWw7bGV2ZWw9MSwnCisgICAgICAgICcgdGV4dC9odG1sO2xldmVsPTI7cT0wLjM3NSwgKi8qO3E9MC41JykgPT0gMC4zNzUKKyAgICBhc3NlcnQgcXVhbGl0eSgndGV4dC9odG1sO2xldmVsPTMnLAorICAgICAgICAndGV4dC8qO3E9MC4zLCB0ZXh0L2h0bWw7cT0wLjc1LCB0ZXh0L2h0bWw7bGV2ZWw9MSwnCisgICAgICAgICcgdGV4dC9odG1sO2xldmVsPTI7cT0wLjQsICovKjtxPTAuNScpID09IDAuNzUKKworZGVmIHRlc3RfYmVzdF9tYXRjaCgpOgorICAgIGJtID0gYmVzdF9tYXRjaAorICAgIGFzc2VydCBibShbXSwgJyovKicpID09ICcnCisgICAgYXNzZXJ0IGJtKFsnYXBwbGljYXRpb24veGJlbCt4bWwnLCAndGV4dC94bWwnXSwKKyAgICAgICAgJ3RleHQvKjtxPTAuNSwqLyo7IHE9MC4xJykgPT0gJ3RleHQveG1sJworICAgIGFzc2VydCBibShbJ2FwcGxpY2F0aW9uL3hiZWwreG1sJywgJ2F1ZGlvL21wMyddLAorICAgICAgICAndGV4dC8qO3E9MC41LCovKjsgcT0wLjEnKSA9PSAnYXBwbGljYXRpb24veGJlbCt4bWwnCisgICAgYXNzZXJ0IGJtKFsnYXBwbGljYXRpb24veGJlbCt4bWwnLCAnYXVkaW8vbXAzJ10sCisgICAgICAgICd0ZXh0Lyo7cT0wLjUsKi9tcDM7IHE9MC4xJykgPT0gJ2F1ZGlvL21wMycKKyAgICBhc3NlcnQgYm0oWydhcHBsaWNhdGlvbi94YmVsK3htbCcsICd0ZXh0L3BsYWluJywgJ3RleHQvaHRtbCddLAorICAgICAgICAndGV4dC8qO3E9MC41LCovcGxhaW47IHE9MC4xJykgPT0gJ3RleHQvcGxhaW4nCisgICAgYXNzZXJ0IGJtKFsnYXBwbGljYXRpb24veGJlbCt4bWwnLCAndGV4dC9odG1sJywgJ3RleHQveGh0bWwnXSwKKyAgICAgICAgJ3RleHQvKjtxPTAuMSwqL3hodG1sOyBxPTAuNScpID09ICd0ZXh0L2h0bWwnCisgICAgYXNzZXJ0IGJtKFsnYXBwbGljYXRpb24veGJlbCt4bWwnLCAndGV4dC9odG1sJywgJ3RleHQveGh0bWwnXSwKKyAgICAgICAgJyovaHRtbDtxPTAuMSwqL3hodG1sOyBxPTAuNScpID09ICd0ZXh0L3hodG1sJworICAgIGFzc2VydCBibShbJ2FwcGxpY2F0aW9uL3hiZWwreG1sJywgJ2FwcGxpY2F0aW9uL3htbCddLAorICAgICAgICAnYXBwbGljYXRpb24veGJlbCt4bWwnKSA9PSAnYXBwbGljYXRpb24veGJlbCt4bWwnCisgICAgYXNzZXJ0IGJtKFsnYXBwbGljYXRpb24veGJlbCt4bWwnLCAnYXBwbGljYXRpb24veG1sJ10sCisgICAgICAgICdhcHBsaWNhdGlvbi94YmVsK3htbDsgcT0xJykgPT0gJ2FwcGxpY2F0aW9uL3hiZWwreG1sJworICAgIGFzc2VydCBibShbJ2FwcGxpY2F0aW9uL3hiZWwreG1sJywgJ2FwcGxpY2F0aW9uL3htbCddLAorICAgICAgICAnYXBwbGljYXRpb24veG1sOyBxPTEnKSA9PSAnYXBwbGljYXRpb24veG1sJworICAgIGFzc2VydCBibShbJ2FwcGxpY2F0aW9uL3hiZWwreG1sJywgJ2FwcGxpY2F0aW9uL3htbCddLAorICAgICAgICAnYXBwbGljYXRpb24vKjsgcT0xJykgPT0gJ2FwcGxpY2F0aW9uL3hiZWwreG1sJworICAgIGFzc2VydCBibShbJ2FwcGxpY2F0aW9uL3hiZWwreG1sJywgJ2FwcGxpY2F0aW9uL3htbCddLAorICAgICAgICAnKi8qLCBhcHBsaWNhdGlvbi94bWwnKSA9PSAnYXBwbGljYXRpb24veG1sJworICAgIGFzc2VydCBibShbJ2FwcGxpY2F0aW9uL3hiZWwreG1sJywgJ3RleHQveG1sJ10sCisgICAgICAgICd0ZXh0Lyo7cT0wLjUsKi8qOyBxPTAuMScpID09ICd0ZXh0L3htbCcKKyAgICBhc3NlcnQgYm0oWydhcHBsaWNhdGlvbi94YmVsK3htbCcsICd0ZXh0L3htbCddLAorICAgICAgICAndGV4dC9odG1sLGFwcGxpY2F0aW9uL2F0b20reG1sOyBxPTAuOScpID09ICcnCisgICAgYXNzZXJ0IGJtKFsnYXBwbGljYXRpb24vanNvbicsICd0ZXh0L2h0bWwnXSwKKyAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCwgKi8qJykgPT0gJ2FwcGxpY2F0aW9uL2pzb24nCisgICAgYXNzZXJ0IGJtKFsnYXBwbGljYXRpb24vanNvbicsICd0ZXh0L2h0bWwnXSwKKyAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24sIHRleHQvaHRtbDtxPTAuOScpID09ICdhcHBsaWNhdGlvbi9qc29uJworICAgIGFzc2VydCBibShbJ2ltYWdlLyonLCAnYXBwbGljYXRpb24veG1sJ10sICdpbWFnZS9wbmcnKSA9PSAnaW1hZ2UvKicKKyAgICBhc3NlcnQgYm0oWydpbWFnZS8qJywgJ2FwcGxpY2F0aW9uL3htbCddLCAnaW1hZ2UvKicpID09ICdpbWFnZS8qJworCitkZWYgdGVzdF9pbGxmb3JtZWRfYmVzdF9tYXRjaCgpOgorICAgIGJtID0gYmVzdF9tYXRjaAorICAgIGFzc2VydCBibShbJ2ltYWdlL3BuZycsICdpbWFnZS9qcGVnJywgJ2ltYWdlL2dpZicsICd0ZXh0L2h0bWwnXSwKKyAgICAgICAgJ3RleHQvaHRtbCwgaW1hZ2UvZ2lmLCBpbWFnZS9qcGVnLCAqOyBxPS4yLCAqLyo7IHE9LjInKSA9PSAnaW1hZ2UvanBlZycKKyAgICBhc3NlcnQgYm0oWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3RpZicsICd0ZXh0L2h0bWwnXSwKKyAgICAgICAgJ3RleHQvaHRtbCwgaW1hZ2UvZ2lmLCBpbWFnZS9qcGVnLCAqOyBxPS4yLCAqLyo7IHE9LjInKSA9PSAndGV4dC9odG1sJworICAgIGFzc2VydCBibShbJ2ltYWdlL3BuZycsICdpbWFnZS9qcGcnLCAnaW1hZ2UvdGlmJywgJ2F1ZGlvL21wMyddLAorICAgICAgICAndGV4dC9odG1sLCBpbWFnZS9naWYsIGltYWdlL2pwZWcsICo7IHE9LjIsICovKjsgcT0uMicpID09ICdpbWFnZS9wbmcnCisKK2RlZiB0ZXN0X3NvcnRlZF9tYXRjaCgpOgorICAgIGRtID0gZGVzaXJlZF9tYXRjaGVzCisgICAgYXNzZXJ0IGRtKFsndGV4dC9odG1sJywgJ2FwcGxpY2F0aW9uL3htbCddLAorICAgICAgICAndGV4dC94bWwsYXBwbGljYXRpb24veG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCx0ZXh0L2h0bWw7cT0wLjksJworICAgICAgICAndGV4dC9wbGFpbjtxPTAuOCxpbWFnZS9wbmcnKSA9PSBbJ3RleHQvaHRtbCcsICdhcHBsaWNhdGlvbi94bWwnXQorICAgIGFzc2VydCBkbShbJ3RleHQvaHRtbCcsICdhcHBsaWNhdGlvbi94bWwnXSwKKyAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCxhcHBsaWNhdGlvbi9qc29uJykgPT0gWydhcHBsaWNhdGlvbi94bWwnXQorICAgIGFzc2VydCBkbShbJ3RleHQveGh0bWwnLCAndGV4dC9wbGFpbicsICdhcHBsaWNhdGlvbi94aHRtbCddLAorICAgICAgICAndGV4dC94bWwsYXBwbGljYXRpb24veG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCx0ZXh0L2h0bWw7cT0wLjksJworICAgICAgICAndGV4dC9wbGFpbjtxPTAuOCxpbWFnZS9wbmcnKSA9PSBbJ3RleHQvcGxhaW4nXQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXRpbC90ZXN0X3F1b3RpbmcucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF91dGlsL3Rlc3RfcXVvdGluZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjVlMGE4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3RfdXRpbC90ZXN0X3F1b3RpbmcucHkKQEAgLTAsMCArMSwyOCBAQAorZnJvbSBwYXN0ZS51dGlsIGltcG9ydCBxdW90aW5nCitpbXBvcnQgc2l4CitpbXBvcnQgdW5pdHRlc3QKKworY2xhc3MgVGVzdFF1b3RpbmcodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2h0bWxfdW5xdW90ZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxdW90aW5nLmh0bWxfdW5xdW90ZShiJyZsdDtoZXkmbmJzcDt5b3UmZ3Q7JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgdSc8aGV5XHhhMHlvdT4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1b3RpbmcuaHRtbF91bnF1b3RlKGInJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgdScnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1b3RpbmcuaHRtbF91bnF1b3RlKGInJmJsYWhibGFoOycpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHUnJmJsYWhibGFoOycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXVvdGluZy5odG1sX3VucXVvdGUoYidceGUxXHg4MFx4YTknKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1J1x1MTAyOScpCisKKyAgICBkZWYgdGVzdF9odG1sX3F1b3RlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1b3RpbmcuaHRtbF9xdW90ZSgxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXVvdGluZy5odG1sX3F1b3RlKE5vbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1b3RpbmcuaHRtbF9xdW90ZSgnPGhleSE+JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJyZsdDtoZXkhJmd0OycpCisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1b3RpbmcuaHRtbF9xdW90ZSh1JzxcdTEwMjk+JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnJmx0O1x1MTAyOSZndDsnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxdW90aW5nLmh0bWxfcXVvdGUodSc8XHUxMDI5PicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJmx0O1x4ZTFceDgwXHhhOSZndDsnKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3Rfd3NnaXdyYXBwZXJzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3Rlc3Rfd3NnaXdyYXBwZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MTk2OTMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdGVzdF93c2dpd3JhcHBlcnMucHkKQEAgLTAsMCArMSwxNDYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisjIChjKSAyMDA3IFBoaWxpcCBKZW52ZXk7IHdyaXR0ZW4gZm9yIFBhc3RlIChodHRwOi8vcHl0aG9ucGFzdGUub3JnKQorIyBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCitpbXBvcnQgY2dpCitmcm9tIHBhc3RlLmZpeHR1cmUgaW1wb3J0IFRlc3RBcHAKK2Zyb20gcGFzdGUud3NnaXdyYXBwZXJzIGltcG9ydCBXU0dJUmVxdWVzdCwgV1NHSVJlc3BvbnNlCitpbXBvcnQgc2l4CisKK2NsYXNzIEFzc2VydEFwcChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhc3NlcnRmdW5jKToKKyAgICAgICAgc2VsZi5hc3NlcnRmdW5jID0gYXNzZXJ0ZnVuYworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ0NvbnRlbnQtdHlwZScsJ3RleHQvcGxhaW4nKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0ZnVuYyhlbnZpcm9uKQorICAgICAgICByZXR1cm4gWydQYXNzZWQnXQorCitub19lbmNvZGluZyA9IG9iamVjdCgpCitkZWYgdmFsaWRfbmFtZShuYW1lLCBlbmNvZGluZz1ub19lbmNvZGluZywgcG9zdD1GYWxzZSk6CisgICAgZGVmIGFzc2VydF92YWxpZF9uYW1lKGVudmlyb24pOgorICAgICAgICBpZiBlbmNvZGluZyBpcyBub3Qgbm9fZW5jb2Rpbmc6CisgICAgICAgICAgICBXU0dJUmVxdWVzdC5kZWZhdWx0cy5fcHVzaF9vYmplY3QoZGljdChjb250ZW50X3R5cGU9J3RleHQvaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyc2V0PWVuY29kaW5nKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVxdWVzdCA9IFdTR0lSZXF1ZXN0KGVudmlyb24pCisgICAgICAgICAgICBpZiBwb3N0OgorICAgICAgICAgICAgICAgIHBhcmFtcyA9IHJlcXVlc3QuUE9TVAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSByZXF1ZXN0LkdFVAorICAgICAgICAgICAgYXNzZXJ0IHBhcmFtc1snbmFtZSddID09IG5hbWUKKyAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LnBhcmFtc1snbmFtZSddID09IG5hbWUKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGlmIGVuY29kaW5nIGlzIG5vdCBub19lbmNvZGluZzoKKyAgICAgICAgICAgICAgICBXU0dJUmVxdWVzdC5kZWZhdWx0cy5fcG9wX29iamVjdCgpCisgICAgcmV0dXJuIGFzc2VydF92YWxpZF9uYW1lCisKK2RlZiB0ZXN0X3dzZ2lyZXF1ZXN0X2NoYXJzZXQoKToKKyAgICAjIEpvc2UsICdKb3PDqScKKyAgICBhcHAgPSBUZXN0QXBwKEFzc2VydEFwcChhc3NlcnRmdW5jPXZhbGlkX25hbWUodSdKb3PDqScsIGVuY29kaW5nPSdVVEYtOCcpKSkKKyAgICByZXMgPSBhcHAuZ2V0KCcvP25hbWU9Sm9zJUMzJUE5JykKKworICAgICMgVGFuYWthLCAn55Sw5LitJworICAgIGFwcCA9IFRlc3RBcHAoQXNzZXJ0QXBwKGFzc2VydGZ1bmM9dmFsaWRfbmFtZSh1J+eUsOS4rScsIGVuY29kaW5nPSdVVEYtOCcpKSkKKyAgICByZXMgPSBhcHAuZ2V0KCcvP25hbWU9JUU3JTk0JUIwJUU0JUI4JUFEJykKKworICAgICMgTmlwcG9uIChKYXBhbiksICfml6XmnKwnCisgICAgYXBwID0gVGVzdEFwcChBc3NlcnRBcHAoYXNzZXJ0ZnVuYz12YWxpZF9uYW1lKHUn5pel5pysJywgZW5jb2Rpbmc9J1VURi04JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdD1UcnVlKSkpCisgICAgcmVzID0gYXBwLnBvc3QoJy8nLCBwYXJhbXM9ZGljdChuYW1lPSfml6XmnKwnKSkKKworICAgICMgV1NHSVJlcXVlc3Qgd2lsbCBkZXRlcm1pbmUgdGhlIGNoYXJzZXQgZnJvbSB0aGUgQ29udGVudC1UeXBlIGhlYWRlciB3aGVuCisgICAgIyB1bmljb2RlIGlzIGV4cGVjdGVkLgorICAgICMgTm8gZW5jb2Rpbmcgc3BlY2lmaWVkOiBub3QgZXhwZWN0aW5nIHVuaWNvZGUKKyAgICBhcHAgPSBUZXN0QXBwKEFzc2VydEFwcChhc3NlcnRmdW5jPXZhbGlkX25hbWUoJ+aXpeacrCcsIHBvc3Q9VHJ1ZSkpKQorICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9JXMnCisgICAgcmVzID0gYXBwLnBvc3QoJy8nLCBwYXJhbXM9ZGljdChuYW1lPSfml6XmnKwnKSwKKyAgICAgICAgICAgICAgICAgICBoZWFkZXJzPXsnY29udGVudC10eXBlJzogY29udGVudF90eXBlICUgJ1VURi04J30pCisKKyAgICAjIEVuY29kaW5nIHNwZWNpZmllZDogZXhwZWN0IHVuaWNvZGUuIFNoaWZ0amlzIGlzIHRoZSBkZWZhdWx0IGVuY29kaW5nLCBidXQKKyAgICAjIHBhcmFtcyBiZWNvbWUgVVRGLTggYmVjYXVzZSB0aGUgYnJvd3NlciBzcGVjaWZpZWQgc28KKyAgICBhcHAgPSBUZXN0QXBwKEFzc2VydEFwcChhc3NlcnRmdW5jPXZhbGlkX25hbWUodSfml6XmnKwnLCBwb3N0PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPSdzaGlmdGppcycpKSkKKyAgICByZXMgPSBhcHAucG9zdCgnLycsIHBhcmFtcz1kaWN0KG5hbWU9J+aXpeacrCcpLAorICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9eydjb250ZW50LXR5cGUnOiBjb250ZW50X3R5cGUgJSAnVVRGLTgnfSkKKworICAgICMgQnJvd3NlciBkaWQgbm90IHNwZWNpZnk6IHBhcnNlIHBhcmFtcyBhcyB0aGUgZmFsbGJhY2sgc2hpZnRqaXMKKyAgICBhcHAgPSBUZXN0QXBwKEFzc2VydEFwcChhc3NlcnRmdW5jPXZhbGlkX25hbWUodSfml6XmnKwnLCBwb3N0PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPSdzaGlmdGppcycpKSkKKyAgICByZXMgPSBhcHAucG9zdCgnLycsIHBhcmFtcz1kaWN0KG5hbWU9dSfml6XmnKwnLmVuY29kZSgnc2hpZnRqaXMnKSkpCisKK2RlZiB0ZXN0X3dzZ2lyZXF1ZXN0X2NoYXJzZXRfZmlsZXVwbG9hZCgpOgorICAgIGRlZiBoYW5kbGVfZmlsZXVwbG9hZChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LXR5cGUnLCd0ZXh0L3BsYWluJyldKQorICAgICAgICByZXF1ZXN0ID0gV1NHSVJlcXVlc3QoZW52aXJvbikKKworICAgICAgICBhc3NlcnQgbGVuKHJlcXVlc3QuUE9TVCkgPT0gMQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXF1ZXN0LlBPU1Qua2V5cygpWzBdLCBzdHIpCisgICAgICAgIGZzID0gcmVxdWVzdC5QT1NUWyd0aGVmaWxlJ10KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZnMsIGNnaS5GaWVsZFN0b3JhZ2UpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZzLmZpbGVuYW1lLCBzdHIpCisgICAgICAgIGFzc2VydCBmcy5maWxlbmFtZSA9PSAn5a+/5Y+4LnR4dCcKKyAgICAgICAgYXNzZXJ0IGZzLnZhbHVlID09IGInU3VzaGknCisKKyAgICAgICAgcmVxdWVzdC5jaGFyc2V0ID0gJ1VURi04JworICAgICAgICBhc3NlcnQgbGVuKHJlcXVlc3QuUE9TVCkgPT0gMQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXF1ZXN0LlBPU1Qua2V5cygpWzBdLCBzdHIpCisgICAgICAgIGZzID0gcmVxdWVzdC5QT1NUWyd0aGVmaWxlJ10KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZnMsIGNnaS5GaWVsZFN0b3JhZ2UpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZzLmZpbGVuYW1lLCBzaXgudGV4dF90eXBlKQorICAgICAgICBhc3NlcnQgZnMuZmlsZW5hbWUgPT0gdSflr7/lj7gudHh0JworICAgICAgICBhc3NlcnQgZnMudmFsdWUgPT0gYidTdXNoaScKKworICAgICAgICByZXF1ZXN0LmNoYXJzZXQgPSBOb25lCisgICAgICAgIGFzc2VydCBmcy52YWx1ZSA9PSBiJ1N1c2hpJworICAgICAgICByZXR1cm4gW10KKworICAgIGFwcCA9IFRlc3RBcHAoaGFuZGxlX2ZpbGV1cGxvYWQpCisgICAgcmVzID0gYXBwLnBvc3QoJy8nLCB1cGxvYWRfZmlsZXM9WygndGhlZmlsZScsICflr7/lj7gudHh0JywgYidTdXNoaScpXSkKKworZGVmIHRlc3Rfd3NnaXJlc3BvbnNlX2NoYXJzZXQoKToKKyAgICByZXNwb25zZSA9IFdTR0lSZXNwb25zZShtaW1ldHlwZT0ndGV4dC9odG1sOyBjaGFyc2V0PVVURi04JykKKyAgICBhc3NlcnQgcmVzcG9uc2UuY29udGVudF90eXBlID09ICd0ZXh0L2h0bWwnCisgICAgYXNzZXJ0IHJlc3BvbnNlLmNoYXJzZXQgPT0gJ1VURi04JworICAgIHJlc3BvbnNlLndyaXRlKHUndGVzdCcpCisgICAgcmVzcG9uc2Uud3JpdGUodSd0ZXN0MicpCisgICAgcmVzcG9uc2Uud3JpdGUoJ3Rlc3QzJykKKyAgICBzdGF0dXMsIGhlYWRlcnMsIGNvbnRlbnQgPSByZXNwb25zZS53c2dpX3Jlc3BvbnNlKCkKKyAgICBmb3IgZGF0YSBpbiBjb250ZW50OgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShkYXRhLCBzaXguYmluYXJ5X3R5cGUpCisKKyAgICBXU0dJUmVzcG9uc2UuZGVmYXVsdHMuX3B1c2hfb2JqZWN0KGRpY3QoY29udGVudF90eXBlPSd0ZXh0L2h0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyc2V0PSdpc28tODg1OS0xJykpCisgICAgdHJ5OgorICAgICAgICByZXNwb25zZSA9IFdTR0lSZXNwb25zZSgpCisgICAgICAgIHJlc3BvbnNlLndyaXRlKHUndGVzdCcpCisgICAgICAgIHJlc3BvbnNlLndyaXRlKHUndGVzdDInKQorICAgICAgICByZXNwb25zZS53cml0ZSgndGVzdDMnKQorICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGNvbnRlbnQgPSByZXNwb25zZS53c2dpX3Jlc3BvbnNlKCkKKyAgICAgICAgZm9yIGRhdGEgaW4gY29udGVudDoKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRhdGEsIHNpeC5iaW5hcnlfdHlwZSkKKyAgICBmaW5hbGx5OgorICAgICAgICBXU0dJUmVzcG9uc2UuZGVmYXVsdHMuX3BvcF9vYmplY3QoKQorCisgICAgIyBXU0dJUmVzcG9uc2Ugd2lsbCBhbGxvdyB1bmljb2RlIHRvIHBhc3MgdGhyb3VnaCB3aGVuIG5vIGNoYXJzZXQgaXMKKyAgICAjIHNldAorICAgIFdTR0lSZXNwb25zZS5kZWZhdWx0cy5fcHVzaF9vYmplY3QoZGljdChjb250ZW50X3R5cGU9J3RleHQvaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQ9Tm9uZSkpCisgICAgdHJ5OgorICAgICAgICByZXNwb25zZSA9IFdTR0lSZXNwb25zZSh1J3Rlc3QnKQorICAgICAgICByZXNwb25zZS53cml0ZSh1J3Rlc3QxJykKKyAgICAgICAgc3RhdHVzLCBoZWFkZXJzLCBjb250ZW50ID0gcmVzcG9uc2Uud3NnaV9yZXNwb25zZSgpCisgICAgICAgIGZvciBkYXRhIGluIGNvbnRlbnQ6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShkYXRhLCBzaXgudGV4dF90eXBlKQorICAgIGZpbmFsbHk6CisgICAgICAgIFdTR0lSZXNwb25zZS5kZWZhdWx0cy5fcG9wX29iamVjdCgpCisKKyAgICBXU0dJUmVzcG9uc2UuZGVmYXVsdHMuX3B1c2hfb2JqZWN0KGRpY3QoY29udGVudF90eXBlPSd0ZXh0L2h0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyc2V0PScnKSkKKyAgICB0cnk6CisgICAgICAgIHJlc3BvbnNlID0gV1NHSVJlc3BvbnNlKHUndGVzdCcpCisgICAgICAgIHJlc3BvbnNlLndyaXRlKHUndGVzdDEnKQorICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGNvbnRlbnQgPSByZXNwb25zZS53c2dpX3Jlc3BvbnNlKCkKKyAgICAgICAgZm9yIGRhdGEgaW4gY29udGVudDoKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRhdGEsIHNpeC50ZXh0X3R5cGUpCisgICAgZmluYWxseToKKyAgICAgICAgV1NHSVJlc3BvbnNlLmRlZmF1bHRzLl9wb3Bfb2JqZWN0KCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTJkNjAwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9kZWVwL2luZGV4Lmh0bWwgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvZGVlcC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MTM0NDIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvZGVlcC9pbmRleC5odG1sCkBAIC0wLDAgKzEgQEAKK2luZGV4MgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL2RlZXAvc3ViL01haW4udHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL2RlZXAvc3ViL01haW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjNDI3NTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvZGVlcC9zdWIvTWFpbi50eHQKQEAgLTAsMCArMSBAQAoraW5kZXgzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvZmluZF9maWxlL2RpciB3aXRoIHNwYWNlcy90ZXN0IDQuaHRtbCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9maW5kX2ZpbGUvZGlyIHdpdGggc3BhY2VzL3Rlc3QgNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMjFlMzEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvZmluZF9maWxlL2RpciB3aXRoIHNwYWNlcy90ZXN0IDQuaHRtbApAQCAtMCwwICsxIEBACit0ZXN0IDQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9maW5kX2ZpbGUvaW5kZXgudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL2ZpbmRfZmlsZS9pbmRleC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJlMjliYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9maW5kX2ZpbGUvaW5kZXgudHh0CkBAIC0wLDAgKzEgQEAKK2luZGV4MQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL2ZpbmRfZmlsZS90ZXN0IDMuaHRtbCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9maW5kX2ZpbGUvdGVzdCAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU0YTUzNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9maW5kX2ZpbGUvdGVzdCAzLmh0bWwKQEAgLTAsMCArMSBAQAordGVzdCAzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvZmluZF9maWxlL3Rlc3QyLmh0bWwgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvZmluZF9maWxlL3Rlc3QyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwY2Y4MwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9maW5kX2ZpbGUvdGVzdDIuaHRtbApAQCAtMCwwICsxIEBACit0ZXN0MgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL2hvb2svX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvaG9vay9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODVhOTMwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL2hvb2svX19pbml0X18ucHkKQEAgLTAsMCArMSwxMCBAQAorZnJvbSBwYXN0ZSBpbXBvcnQgcmVxdWVzdAorCitkZWYgdXJscGFyc2VyX2hvb2soZW52aXJvbik6CisgICAgZmlyc3QsIHJlc3QgPSByZXF1ZXN0LnBhdGhfaW5mb19zcGxpdChlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpKQorICAgIGlmIG5vdCBmaXJzdDoKKyAgICAgICAgIyBObyB1c2VybmFtZQorICAgICAgICByZXR1cm4KKyAgICBlbnZpcm9uWydhcHAudXNlciddID0gZmlyc3QKKyAgICBlbnZpcm9uWydTQ1JJUFRfTkFNRSddICs9ICcvJyArIGZpcnN0CisgICAgZW52aXJvblsnUEFUSF9JTkZPJ10gPSByZXN0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvaG9vay9hcHAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvaG9vay9hcHAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE5ODAxMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ob29rL2FwcC5weQpAQCAtMCwwICsxLDkgQEAKK2ltcG9ydCBzaXgKKworZGVmIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpXSkKKyAgICBib2R5ID0gJ3VzZXI6ICVzJyAlIGVudmlyb25bJ2FwcC51c2VyJ10KKyAgICBpZiBzaXguUFkzOgorICAgICAgICBib2R5ID0gYm9keS5lbmNvZGUoJ2FzY2lpJykKKyAgICByZXR1cm4gW2JvZHldCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ob29rL2luZGV4LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL2hvb2svaW5kZXgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJmM2Q2NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ob29rL2luZGV4LnB5CkBAIC0wLDAgKzEsOSBAQAoraW1wb3J0IHNpeAorCitkZWYgYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyldKQorICAgIGJvZHkgPSAnaW5kZXg6ICVzJyAlIGVudmlyb25bJ2FwcC51c2VyJ10KKyAgICBpZiBzaXguUFkzOgorICAgICAgICBib2R5ID0gYm9keS5lbmNvZGUoJ2FzY2lpJykKKyAgICByZXR1cm4gW2JvZHldCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MmQ2MDAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvcmVjdXIvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3JlY3VyL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MjA1YTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3JlY3VyL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsOSBAQAorZGVmIG5vdF9mb3VuZF9ob29rKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICB1cmxwYXJzZXIgPSBlbnZpcm9uWydwYXN0ZS51cmxwYXJzZXIubm90X2ZvdW5kX3BhcnNlciddCisgICAgcGF0aCA9IGVudmlyb24uZ2V0KCdQQVRIX0lORk8nLCAnJykKKyAgICBpZiBub3QgcGF0aDoKKyAgICAgICAgcmV0dXJuIHVybHBhcnNlci5ub3RfZm91bmQoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgIyBTdHJpcCBvZmYgbGVhZGluZyBfJ3MKKyAgICBwYXRoID0gJy8nICsgcGF0aC5sc3RyaXAoJy8nKS5sc3RyaXAoJ18nKQorICAgIGVudmlyb25bJ1BBVEhfSU5GTyddID0gcGF0aAorICAgIHJldHVybiB1cmxwYXJzZXIoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3JlY3VyL2lzZm91bmQudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9yZWN1ci9pc2ZvdW5kLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGI4ZmFiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9yZWN1ci9pc2ZvdW5kLnR4dApAQCAtMCwwICsxIEBACitpcyBmb3VuZApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9zaW1wbGUvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3NpbXBsZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTg2ZGFhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9zaW1wbGUvX19pbml0X18ucHkKQEAgLTAsMCArMSwzIEBACitkZWYgbm90X2ZvdW5kX2hvb2soZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICByZXR1cm4gW2Inbm90IGZvdW5kJ10KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvc2ltcGxlL2ZvdW5kLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvc2ltcGxlL2ZvdW5kLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGI4ZmFiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL25vdF9mb3VuZC9zaW1wbGUvZm91bmQudHh0CkBAIC0wLDAgKzEgQEAKK2lzIGZvdW5kCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3VzZXIvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3VzZXIvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyNmMwNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvdXNlci9fX2luaXRfXy5weQpAQCAtMCwwICsxLDEyIEBACitmcm9tIHBhc3RlIGltcG9ydCByZXF1ZXN0CisKK2RlZiBub3RfZm91bmRfaG9vayhlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgdXJscGFyc2VyID0gZW52aXJvblsncGFzdGUudXJscGFyc2VyLm5vdF9mb3VuZF9wYXJzZXInXQorICAgIGZpcnN0LCByZXN0ID0gcmVxdWVzdC5wYXRoX2luZm9fc3BsaXQoZW52aXJvbi5nZXQoJ1BBVEhfSU5GTycsICcnKSkKKyAgICBpZiBub3QgZmlyc3Q6CisgICAgICAgICMgTm8gdXNlcm5hbWUKKyAgICAgICAgcmV0dXJuCisgICAgZW52aXJvblsnYXBwLnVzZXInXSA9IGZpcnN0CisgICAgZW52aXJvblsnU0NSSVBUX05BTUUnXSArPSAnLycgKyBmaXJzdAorICAgIGVudmlyb25bJ1BBVEhfSU5GTyddID0gcmVzdAorICAgIHJldHVybiB1cmxwYXJzZXIoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3VzZXIvbGlzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9ub3RfZm91bmQvdXNlci9saXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNzQ4MmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvbm90X2ZvdW5kL3VzZXIvbGlzdC5weQpAQCAtMCwwICsxLDggQEAKK2ltcG9ydCBzaXgKKworZGVmIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKV0pCisgICAgYm9keSA9ICd1c2VyOiAlcycgJSBlbnZpcm9uLmdldCgnYXBwLnVzZXInKQorICAgIGlmIHNpeC5QWTM6CisgICAgICAgIGJvZHkgPSBib2R5LmVuY29kZSgnYXNjaWknKQorICAgIHJldHVybiBbYm9keV0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvcHl0aG9uL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MmQ2MDAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvcHl0aG9uL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vc2ltcGxlYXBwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL3B5dGhvbi9zaW1wbGVhcHAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EzNmNlOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vc2ltcGxlYXBwLnB5CkBAIC0wLDAgKzEsNSBAQAorZGVmIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICBzdGFydF9yZXNwb25zZSgnMjAwIE9LJywgWygnQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCd0ZXN0LWhlYWRlcicsICdURVNUIScpXSkKKyAgICByZXR1cm4gW2IndGVzdDEnXQorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvcHl0aG9uL3N0cmVhbS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9QYXN0ZS90ZXN0cy91cmxwYXJzZXJfZGF0YS9weXRob24vc3RyZWFtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4MWZkMWMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvcHl0aG9uL3N0cmVhbS5weQpAQCAtMCwwICsxLDcgQEAKK2RlZiBzdHJlYW0oKToKKyAgICBkZWYgYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgd3JpdGVyID0gc3RhcnRfcmVzcG9uc2UoJzIwMCBPSycsIFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0pCisgICAgICAgIHdyaXRlcihiJ3RlJykKKyAgICAgICAgd3JpdGVyKGInc3QnKQorICAgICAgICByZXR1cm4gW2InMiddCisgICAgcmV0dXJuIGFwcApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL3B5dGhvbi9zdWIvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvcHl0aG9uL3N1Yi9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTJkNjAwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL3B5dGhvbi9zdWIvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL3B5dGhvbi9zdWIvc2ltcGxlYXBwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL3B5dGhvbi9zdWIvc2ltcGxlYXBwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YmQ5NzUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvcHl0aG9uL3N1Yi9zaW1wbGVhcHAucHkKQEAgLTAsMCArMSw0IEBACitkZWYgYXBwbGljYXRpb24oZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3Rlc3QtaGVhZGVyJywgJ1RFU1QhJyldKQorICAgIHJldHVybiBbYidzdWJzaW1wbGUnXQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL3NlY3VyZWQudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3Rlc3RzL3VybHBhcnNlcl9kYXRhL3NlY3VyZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyYjExYjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdGVzdHMvdXJscGFyc2VyX2RhdGEvc2VjdXJlZC50eHQKQEAgLTAsMCArMSBAQAorc2VjdXJlZApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3RveC5pbmkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvUGFzdGUvdG94LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWE5YzZmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1Bhc3RlL3RveC5pbmkKQEAgLTAsMCArMSw5IEBACitbdG94XQorZW52bGlzdCA9IHB5MjYscHkyNyxweTM0CisKK1t0ZXN0ZW52XQorZGVwcz0KKyAgICBub3NlCitjb21tYW5kcz0KKyAgICBub3NldGVzdHMKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iLy5naXRpZ25vcmUgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWMxODgyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iLy5naXRpZ25vcmUKQEAgLTAsMCArMSwzMCBAQAorKiRweS5jbGFzcworKixjb3ZlcgorKi5lZ2cKKyoucHljCisqLnB5bworKi5zd3AKKypfY292ZXJhZ2UvKioKKypfZml4dC5weQorKn4KKy4qLnN3cAorLmNvdmVyYWdlCisuY292ZXJhZ2UuKgorLnRveC8KK1Nlc3Npb24udmltCitURVNUKgorV2ViT2IuZWdnLWluZm8KK19fcHljYWNoZV9fLworX3dlYnNpdGUvCitidWlsZC8KK2NvdmVyYWdlLSoueG1sCitjb3ZlcmFnZS54bWwKK2NvdmVyYWdlLnhtbAorZGlzdC8KK2RvY3MvX2J1aWxkLyoKK2VudiovCitnbG9iOl9jb3ZlcmFnZQorbm9zZXRlc3RzLSoueG1sCitub3NldGVzdHMueG1sCitub3NldGVzdHMueG1sCit0ZXN0ZW52CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvLnRyYXZpcy55bWwgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUyOWU3YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi8udHJhdmlzLnltbApAQCAtMCwwICsxLDIzIEBACisjIFdpcmUgdXAgdHJhdmlzCitsYW5ndWFnZTogcHl0aG9uCitzdWRvOiBmYWxzZQorCitlbnY6CisgIC0gVE9YRU5WPXB5MjYKKyAgLSBUT1hFTlY9cHkyNworICAtIFRPWEVOVj1weTMyCisgIC0gVE9YRU5WPXB5MzMKKyAgLSBUT1hFTlY9cHkzNAorICAtIFRPWEVOVj1weXB5CisgIC0gVE9YRU5WPXB5cHkzCisgIC0gVE9YRU5WPXB5Mi1jb3ZlcixweTMtY292ZXIsY292ZXJhZ2UKKworaW5zdGFsbDoKKyAgLSB0cmF2aXNfcmV0cnkgcGlwIGluc3RhbGwgdG94CisKK3NjcmlwdDoKKyAgLSB0cmF2aXNfcmV0cnkgdG94CisKK25vdGlmaWNhdGlvbnM6CisgIGVtYWlsOgorICAgIC0gcHlyYW1pZC1jaGVja2luc0BsaXN0cy5yZXBvemUub3JnCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvTUFOSUZFU1QuaW4gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvTUFOSUZFU1QuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZiNWQ4NwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9NQU5JRkVTVC5pbgpAQCAtMCwwICsxLDYgQEAKK3JlY3Vyc2l2ZS1pbmNsdWRlIHRlc3RzICoNCityZWN1cnNpdmUtZXhjbHVkZSB0ZXN0cyAqLnB5Yw0KK3JlY3Vyc2l2ZS1leGNsdWRlIHRlc3RzICoucHlvDQorcmVjdXJzaXZlLWluY2x1ZGUgZG9jcyAqDQorcmVjdXJzaXZlLWV4Y2x1ZGUgZG9jcyAqLnB5Yw0KK3JlY3Vyc2l2ZS1leGNsdWRlIGRvY3MgKi5weW8NCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvUEtHLUlORk8gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvUEtHLUlORk8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFhNGJlYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9QS0ctSU5GTwpAQCAtMCwwICsxLDQxIEBACitNZXRhZGF0YS1WZXJzaW9uOiAxLjEKK05hbWU6IFdlYk9iCitWZXJzaW9uOiAxLjUuMGEwCitTdW1tYXJ5OiBXU0dJIHJlcXVlc3QgYW5kIHJlc3BvbnNlIG9iamVjdAorSG9tZS1wYWdlOiBodHRwOi8vd2Vib2Iub3JnLworQXV0aG9yOiBQeWxvbnMgUHJvamVjdAorQXV0aG9yLWVtYWlsOiBpYW5iQGNvbG9yc3R1ZHkuY29tCitMaWNlbnNlOiBNSVQKK0Rlc2NyaXB0aW9uOiBXZWJPYiBwcm92aWRlcyB3cmFwcGVycyBhcm91bmQgdGhlIFdTR0kgcmVxdWVzdCBlbnZpcm9ubWVudCwgYW5kIGFuCisgICAgICAgIG9iamVjdCB0byBoZWxwIGNyZWF0ZSBXU0dJIHJlc3BvbnNlcy4KKyAgICAgICAgCisgICAgICAgIFRoZSBvYmplY3RzIG1hcCBtdWNoIG9mIHRoZSBzcGVjaWZpZWQgYmVoYXZpb3Igb2YgSFRUUCwgaW5jbHVkaW5nCisgICAgICAgIGhlYWRlciBwYXJzaW5nIGFuZCBhY2Nlc3NvcnMgZm9yIG90aGVyIHN0YW5kYXJkIHBhcnRzIG9mIHRoZQorICAgICAgICBlbnZpcm9ubWVudC4KKyAgICAgICAgCisgICAgICAgIFlvdSBtYXkgaW5zdGFsbCB0aGUgYGluLWRldmVsb3BtZW50IHZlcnNpb24gb2YgV2ViT2IKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvemlwYmFsbC9tYXN0ZXIjZWdnPVdlYk9iLWRldj5gXyB3aXRoCisgICAgICAgIGBgcGlwIGluc3RhbGwgV2ViT2I9PWRldmBgIChvciBgYGVhc3lfaW5zdGFsbCBXZWJPYj09ZGV2YGApLgorICAgICAgICAKKyAgICAgICAgKiBgV2ViT2IgcmVmZXJlbmNlIDxodHRwOi8vZG9jcy53ZWJvYi5vcmcvZW4vbGF0ZXN0L3JlZmVyZW5jZS5odG1sPmBfCisgICAgICAgICogYEJ1ZyB0cmFja2VyIDxodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL2lzc3Vlcz5gXworICAgICAgICAqIGBCcm93c2Ugc291cmNlIGNvZGUgPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2I+YF8KKyAgICAgICAgKiBgTWFpbGluZyBsaXN0IDxodHRwOi8vYml0Lmx5L3Bhc3RlLXVzZXJzPmBfCisgICAgICAgICogYFJlbGVhc2UgbmV3cyA8aHR0cDovL2RvY3Mud2Vib2Iub3JnL2VuL2xhdGVzdC9uZXdzLmh0bWw+YF8KKyAgICAgICAgKiBgRGV0YWlsZWQgY2hhbmdlbG9nIDxodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL2NvbW1pdHMvbWFzdGVyPmBfCisgICAgICAgIAorS2V5d29yZHM6IHdzZ2kgcmVxdWVzdCB3ZWIgaHR0cAorUGxhdGZvcm06IFVOS05PV04KK0NsYXNzaWZpZXI6IERldmVsb3BtZW50IFN0YXR1cyA6OiA2IC0gTWF0dXJlCitDbGFzc2lmaWVyOiBJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzCitDbGFzc2lmaWVyOiBMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZQorQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogV1NHSQorQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogV1NHSSA6OiBBcHBsaWNhdGlvbgorQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogV1NHSSA6OiBNaWRkbGV3YXJlCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42CitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43CitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4yCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4zCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy40CitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogQ1B5dGhvbgorQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IFB5UHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvUkVBRE1FLmNocm9taXVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxZmYzY2MKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvUkVBRE1FLmNocm9taXVtCkBAIC0wLDAgKzEsOCBAQAorTmFtZTogV2ViT2IKK1VSTDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9XZWJPYi8xLjUuMGEwCitWZXJzaW9uOiAxLjUuMGEwCitEYXRlOiAyMDE1LTA3LTI2CitSZXZpc2lvbjogTi9BCitMaWNlbnNlOiBNSVQKK0xpY2Vuc2UgRmlsZTogZG9jcy9saWNlbnNlLnR4dAorU2VjdXJpdHkgQ3JpdGljYWw6IG5vCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvUkVBRE1FLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9SRUFETUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4YzMwNjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvUkVBRE1FLnJzdApAQCAtMCwwICsxLDI0IEBACitgYHdlYm9iYGAgUkVBRE1FCis9PT09PT09PT09PT09PT09CisKKy4uIGltYWdlOjogaHR0cHM6Ly9weXBpcC5pbi92ZXJzaW9uL1dlYk9iL2JhZGdlLnN2Zz9zdHlsZT1mbGF0CisgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9XZWJPYi8KKyAgICA6YWx0OiBMYXRlc3QgVmVyc2lvbgorCisuLiBpbWFnZTo6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9QeWxvbnMvd2Vib2IucG5nP2JyYW5jaD1tYXN0ZXIKKyAgICAgICAgOnRhcmdldDogaHR0cHM6Ly90cmF2aXMtY2kub3JnL1B5bG9ucy93ZWJvYgorCisuLiBpbWFnZTo6IGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL3dlYm9iL2JhZGdlLz92ZXJzaW9uPWxhdGVzdAorICAgICAgICA6dGFyZ2V0OiBodHRwOi8vZG9jcy5weWxvbnNwcm9qZWN0Lm9yZy9wcm9qZWN0cy93ZWJvYi9lbi9sYXRlc3QvCisgICAgICAgIDphbHQ6IERvY3VtZW50YXRpb24gU3RhdHVzCisKK1dlYk9iIHByb3ZpZGVzIG9iamVjdHMgZm9yIEhUVFAgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4gIFNwZWNpZmljYWxseQoraXQgZG9lcyB0aGlzIGJ5IHdyYXBwaW5nIHRoZSBgV1NHSSA8aHR0cDovL3dzZ2kub3JnPmBfIHJlcXVlc3QKK2Vudmlyb25tZW50IGFuZCByZXNwb25zZSBzdGF0dXMvaGVhZGVycy9hcHBfaXRlcihib2R5KS4KKworVGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIG9iamVjdHMgcHJvdmlkZSBtYW55IGNvbnZlbmllbmNlcyBmb3IgcGFyc2luZworSFRUUCByZXF1ZXN0IGFuZCBmb3JtaW5nIEhUVFAgcmVzcG9uc2VzLiAgQm90aCBvYmplY3RzIGFyZSByZWFkL3dyaXRlOgorYXMgYSByZXN1bHQsIFdlYk9iIGlzIGFsc28gYSBuaWNlIHdheSB0byBjcmVhdGUgSFRUUCByZXF1ZXN0cyBhbmQKK3BhcnNlIEhUVFAgcmVzcG9uc2VzLgorCitQbGVhc2Ugc2VlIHRoZSBgZnVsbCBkb2N1bWVudGF0aW9uIDxodHRwOi8vd2Vib2IucnRmZC5vcmcvPmBfIGZvciBkZXRhaWxzLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvY29tbWVudC1leGFtcGxlLWNvZGUvZXhhbXBsZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2NvbW1lbnQtZXhhbXBsZS1jb2RlL2V4YW1wbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI1MDc1OQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2NvbW1lbnQtZXhhbXBsZS1jb2RlL2V4YW1wbGUucHkKQEAgLTAsMCArMSwxNDcgQEAKK2ltcG9ydCBvcworaW1wb3J0IHVybGxpYgoraW1wb3J0IHRpbWUKK2ltcG9ydCByZQorZnJvbSBjUGlja2xlIGltcG9ydCBsb2FkLCBkdW1wCitmcm9tIHdlYm9iIGltcG9ydCBSZXF1ZXN0LCBSZXNwb25zZSwgaHRtbF9lc2NhcGUKK2Zyb20gd2Vib2IgaW1wb3J0IGV4YworCitjbGFzcyBDb21tZW50ZXIob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHAsIHN0b3JhZ2VfZGlyKToKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5zdG9yYWdlX2RpciA9IHN0b3JhZ2VfZGlyCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzdG9yYWdlX2Rpcik6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhzdG9yYWdlX2RpcikKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHJlcSA9IFJlcXVlc3QoZW52aXJvbikKKyAgICAgICAgaWYgcmVxLnBhdGhfaW5mb19wZWVrKCkgPT0gJy5jb21tZW50cyc6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wcm9jZXNzX2NvbW1lbnQocmVxKShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgIyBUaGlzIGlzIHRoZSBiYXNlIHBhdGggb2YgKnRoaXMqIG1pZGRsZXdhcmU6CisgICAgICAgIGJhc2VfdXJsID0gcmVxLmFwcGxpY2F0aW9uX3VybAorICAgICAgICByZXNwID0gcmVxLmdldF9yZXNwb25zZShzZWxmLmFwcCkKKyAgICAgICAgaWYgcmVzcC5jb250ZW50X3R5cGUgIT0gJ3RleHQvaHRtbCcgb3IgcmVzcC5zdGF0dXNfY29kZSAhPSAyMDA6CisgICAgICAgICAgICAjIE5vdCBhbiBIVE1MIHJlc3BvbnNlLCB3ZSBkb24ndCB3YW50IHRvCisgICAgICAgICAgICAjIGRvIGFueXRoaW5nIHRvIGl0CisgICAgICAgICAgICByZXR1cm4gcmVzcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNvbnRlbnQgaXNuJ3QgZ3ppcHBlZDoKKyAgICAgICAgcmVzcC5kZWNvZGVfY29udGVudCgpCisgICAgICAgIGNvbW1lbnRzID0gc2VsZi5nZXRfZGF0YShyZXEudXJsKQorICAgICAgICBib2R5ID0gcmVzcC5ib2R5CisgICAgICAgIGJvZHkgPSBzZWxmLmFkZF90b19lbmQoYm9keSwgc2VsZi5mb3JtYXRfY29tbWVudHMoY29tbWVudHMpKQorICAgICAgICBib2R5ID0gc2VsZi5hZGRfdG9fZW5kKGJvZHksIHNlbGYuc3VibWl0X2Zvcm0oYmFzZV91cmwsIHJlcSkpCisgICAgICAgIHJlc3AuYm9keSA9IGJvZHkKKyAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgZ2V0X2RhdGEoc2VsZiwgdXJsKToKKyAgICAgICAgIyBEb3VibGUtcXVvdGluZyBtYWtlcyB0aGUgZmlsZW5hbWUgc2FmZQorICAgICAgICBmaWxlbmFtZSA9IHNlbGYudXJsX2ZpbGVuYW1lKHVybCkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICdyYicpCisgICAgICAgICAgICBkYXRhID0gbG9hZChmKQorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIHNhdmVfZGF0YShzZWxmLCB1cmwsIGRhdGEpOgorICAgICAgICBmaWxlbmFtZSA9IHNlbGYudXJsX2ZpbGVuYW1lKHVybCkKKyAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICd3YicpCisgICAgICAgIGR1bXAoZGF0YSwgZikKKyAgICAgICAgZi5jbG9zZSgpCisKKyAgICBkZWYgdXJsX2ZpbGVuYW1lKHNlbGYsIHVybCk6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5zdG9yYWdlX2RpciwgdXJsbGliLnF1b3RlKHVybCwgJycpKQorCisgICAgX2VuZF9ib2R5X3JlID0gcmUuY29tcGlsZShyJzwvYm9keS4qPz4nLCByZS5JfHJlLlMpCisKKyAgICBkZWYgYWRkX3RvX2VuZChzZWxmLCBodG1sLCBleHRyYV9odG1sKToKKyAgICAgICAgIiIiCisgICAgICAgIEFkZHMgZXh0cmFfaHRtbCB0byB0aGUgZW5kIG9mIHRoZSBodG1sIHBhZ2UgKGJlZm9yZSA8L2JvZHk+KQorICAgICAgICAiIiIKKyAgICAgICAgbWF0Y2ggPSBzZWxmLl9lbmRfYm9keV9yZS5zZWFyY2goaHRtbCkKKyAgICAgICAgaWYgbm90IG1hdGNoOgorICAgICAgICAgICAgcmV0dXJuIGh0bWwgKyBleHRyYV9odG1sCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gaHRtbFs6bWF0Y2guc3RhcnQoKV0gKyBleHRyYV9odG1sICsgaHRtbFttYXRjaC5zdGFydCgpOl0KKworICAgIGRlZiBmb3JtYXRfY29tbWVudHMoc2VsZiwgY29tbWVudHMpOgorICAgICAgICBpZiBub3QgY29tbWVudHM6CisgICAgICAgICAgICByZXR1cm4gJycKKyAgICAgICAgdGV4dCA9IFtdCisgICAgICAgIHRleHQuYXBwZW5kKCc8aHI+JykKKyAgICAgICAgdGV4dC5hcHBlbmQoJzxoMj48YSBuYW1lPSJjb21tZW50LWFyZWEiPjwvYT5Db21tZW50cyAoJXMpOjwvaDI+JyAlIGxlbihjb21tZW50cykpCisgICAgICAgIGZvciBjb21tZW50IGluIGNvbW1lbnRzOgorICAgICAgICAgICAgdGV4dC5hcHBlbmQoJzxoMz48YSBocmVmPSIlcyI+JXM8L2E+IGF0ICVzOjwvaDM+JyAlICgKKyAgICAgICAgICAgICAgICBodG1sX2VzY2FwZShjb21tZW50Wydob21lcGFnZSddKSwgaHRtbF9lc2NhcGUoY29tbWVudFsnbmFtZSddKSwKKyAgICAgICAgICAgICAgICB0aW1lLnN0cmZ0aW1lKCclYycsIGNvbW1lbnRbJ3RpbWUnXSkpKQorICAgICAgICAgICAgIyBTdXNjZXB0aWJsZSB0byBYU1MgYXR0YWNrcyE6CisgICAgICAgICAgICB0ZXh0LmFwcGVuZChjb21tZW50Wydjb21tZW50cyddKQorICAgICAgICByZXR1cm4gJycuam9pbih0ZXh0KQorCisgICAgZGVmIHN1Ym1pdF9mb3JtKHNlbGYsIGJhc2VfcGF0aCwgcmVxKToKKyAgICAgICAgcmV0dXJuICcnJzxoMj5MZWF2ZSBhIGNvbW1lbnQ6PC9oMj4KKyAgICAgICAgPGZvcm0gYWN0aW9uPSIlcy8uY29tbWVudHMiIG1ldGhvZD0iUE9TVCI+CisgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1cmwiIHZhbHVlPSIlcyI+CisgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUlIj4KKyAgICAgICAgICA8dHI+PHRkPk5hbWU6PC90ZD4KKyAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIiBzdHlsZT0id2lkdGg6IDEwMCUlIj48L3RkPjwvdHI+CisgICAgICAgICAgPHRyPjx0ZD5VUkw6PC90ZD4KKyAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJob21lcGFnZSIgc3R5bGU9IndpZHRoOiAxMDAlJSI+PC90ZD48L3RyPgorICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgIENvbW1lbnRzOjxicj4KKyAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJjb21tZW50cyIgcm93cz0xMCBzdHlsZT0id2lkdGg6IDEwMCUlIj48L3RleHRhcmVhPjxicj4KKyAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQgY29tbWVudCI+CisgICAgICAgIDwvZm9ybT4KKyAgICAgICAgJycnICUgKGJhc2VfcGF0aCwgaHRtbF9lc2NhcGUocmVxLnVybCkpCisKKyAgICBkZWYgcHJvY2Vzc19jb21tZW50KHNlbGYsIHJlcSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVybCA9IHJlcS5wYXJhbXNbJ3VybCddCisgICAgICAgICAgICBuYW1lID0gcmVxLnBhcmFtc1snbmFtZSddCisgICAgICAgICAgICBob21lcGFnZSA9IHJlcS5wYXJhbXNbJ2hvbWVwYWdlJ10KKyAgICAgICAgICAgIGNvbW1lbnRzID0gcmVxLnBhcmFtc1snY29tbWVudHMnXQorICAgICAgICBleGNlcHQgS2V5RXJyb3IsIGU6CisgICAgICAgICAgICByZXNwID0gZXhjLkhUVFBCYWRSZXF1ZXN0KCdNaXNzaW5nIHBhcmFtZXRlcjogJXMnICUgZSkKKyAgICAgICAgICAgIHJldHVybiByZXNwCisgICAgICAgIGRhdGEgPSBzZWxmLmdldF9kYXRhKHVybCkKKyAgICAgICAgZGF0YS5hcHBlbmQoZGljdCgKKyAgICAgICAgICAgIG5hbWU9bmFtZSwKKyAgICAgICAgICAgIGhvbWVwYWdlPWhvbWVwYWdlLAorICAgICAgICAgICAgY29tbWVudHM9Y29tbWVudHMsCisgICAgICAgICAgICB0aW1lPXRpbWUuZ210aW1lKCkpKQorICAgICAgICBzZWxmLnNhdmVfZGF0YSh1cmwsIGRhdGEpCisgICAgICAgIHJlc3AgPSBleGMuSFRUUFNlZU90aGVyKGxvY2F0aW9uPXVybCsnI2NvbW1lbnQtYXJlYScpCisgICAgICAgIHJldHVybiByZXNwCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgaW1wb3J0IG9wdHBhcnNlCisgICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKAorICAgICAgICB1c2FnZT0nJXByb2cgLS1wb3J0PVBPUlQgQkFTRV9ESVJFQ1RPUlknCisgICAgICAgICkKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy1wJywgJy0tcG9ydCcsCisgICAgICAgIGRlZmF1bHQ9JzgwODAnLAorICAgICAgICBkZXN0PSdwb3J0JywKKyAgICAgICAgdHlwZT0naW50JywKKyAgICAgICAgaGVscD0nUG9ydCB0byBzZXJ2ZSBvbiAoZGVmYXVsdCA4MDgwKScpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgICAgICctLWNvbW1lbnQtZGF0YScsCisgICAgICAgIGRlZmF1bHQ9Jy4vY29tbWVudHMnLAorICAgICAgICBkZXN0PSdjb21tZW50X2RhdGEnLAorICAgICAgICBoZWxwPSdQbGFjZSB0byBwdXQgY29tbWVudCBkYXRhIGludG8gKGRlZmF1bHQgLi9jb21tZW50cy8pJykKKyAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIGlmIG5vdCBhcmdzOgorICAgICAgICBwYXJzZXIuZXJyb3IoJ1lvdSBtdXN0IGdpdmUgYSBCQVNFX0RJUkVDVE9SWScpCisgICAgYmFzZV9kaXIgPSBhcmdzWzBdCisgICAgZnJvbSBwYXN0ZS51cmxwYXJzZXIgaW1wb3J0IFN0YXRpY1VSTFBhcnNlcgorICAgIGFwcCA9IFN0YXRpY1VSTFBhcnNlcihiYXNlX2RpcikKKyAgICBhcHAgPSBDb21tZW50ZXIoYXBwLCBvcHRpb25zLmNvbW1lbnRfZGF0YSkKKyAgICBmcm9tIHdzZ2lyZWYuc2ltcGxlX3NlcnZlciBpbXBvcnQgbWFrZV9zZXJ2ZXIKKyAgICBodHRwZCA9IG1ha2Vfc2VydmVyKCdsb2NhbGhvc3QnLCBvcHRpb25zLnBvcnQsIGFwcCkKKyAgICBwcmludCAnU2VydmluZyBvbiBodHRwOi8vbG9jYWxob3N0OiVzJyAlIG9wdGlvbnMucG9ydAorICAgIHRyeToKKyAgICAgICAgaHR0cGQuc2VydmVfZm9yZXZlcigpCisgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICBwcmludCAnXkMnCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9jb21tZW50LWV4YW1wbGUudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvY29tbWVudC1leGFtcGxlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTA4MzgyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvY29tbWVudC1leGFtcGxlLnR4dApAQCAtMCwwICsxLDQxNCBAQAorQ29tbWVudCBFeGFtcGxlCis9PT09PT09PT09PT09PT0KKworLi4gY29udGVudHM6OgorCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCitUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHdyaXRlIFdTR0kgbWlkZGxld2FyZSB3aXRoIFdlYk9iLiAgVGhlCitzcGVjaWZpYyBleGFtcGxlIGFkZHMgYSBzaW1wbGUgY29tbWVudCBmb3JtIHRvIEhUTUwgd2ViIHBhZ2VzOyBhbnkKK3BhZ2Ugc2VydmVkIHRocm91Z2ggdGhlIG1pZGRsZXdhcmUgdGhhdCBpcyBIVE1MIGdldHMgYSBjb21tZW50IGZvcm0KK2FkZGVkIHRvIGl0LCBhbmQgc2hvd3MgYW55IGV4aXN0aW5nIGNvbW1lbnRzLgorCitDb2RlCistLS0tCisKK1RoZSBmaW5pc2hlZCBjb2RlIGZvciB0aGlzIGlzIGF2YWlsYWJsZSBpbgorYGRvY3MvY29tbWVudC1leGFtcGxlLWNvZGUvZXhhbXBsZS5weQorPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvYmxvYi9tYXN0ZXIvZG9jcy9jb21tZW50LWV4YW1wbGUtY29kZS9leGFtcGxlLnB5PmBfCistLSB5b3UgY2FuIHJ1biB0aGF0IGZpbGUgYXMgYSBzY3JpcHQgdG8gdHJ5IGl0IG91dC4KKworSW5zdGFudGlhdGluZyBNaWRkbGV3YXJlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTWlkZGxld2FyZSBvZiBhbnkgY29tcGxleGl0eSBhdCBhbGwgaXMgdXN1YWxseSBiZXN0IGNyZWF0ZWQgYXMgYQorY2xhc3Mgd2l0aCBpdHMgY29uZmlndXJhdGlvbiBhcyBhcmd1bWVudHMgdG8gdGhhdCBjbGFzcy4KKworRXZlcnkgbWlkZGxld2FyZSBuZWVkcyBhbiBhcHBsaWNhdGlvbiAoYGBhcHBgYCkgdGhhdCBpdCB3cmFwcy4gIFRoaXMKK21pZGRsZXdhcmUgYWxzbyBuZWVkcyBhIGxvY2F0aW9uIHRvIHN0b3JlIHRoZSBjb21tZW50czsgd2UnbGwgcHV0IHRoZW0KK2FsbCBpbiBhIHNpbmdsZSBkaXJlY3RvcnkuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBvcworCisgICAgY2xhc3MgQ29tbWVudGVyKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHAsIHN0b3JhZ2VfZGlyKToKKyAgICAgICAgICAgIHNlbGYuYXBwID0gYXBwCisgICAgICAgICAgICBzZWxmLnN0b3JhZ2VfZGlyID0gc3RvcmFnZV9kaXIKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzdG9yYWdlX2Rpcik6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMoc3RvcmFnZV9kaXIpCisKK1doZW4geW91IHVzZSB0aGlzIG1pZGRsZXdhcmUsIHlvdSdsbCB1c2UgaXQgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgYXBwID0gLi4uIG1ha2UgdGhlIGFwcGxpY2F0aW9uIC4uLgorICAgIGFwcCA9IENvbW1lbnRlcihhcHAsIHN0b3JhZ2VfZGlyPScuL2NvbW1lbnRzJykKKworRm9yIG91ciBhcHBsaWNhdGlvbiB3ZSdsbCB1c2UgYSBzaW1wbGUgc3RhdGljIGZpbGUgc2VydmVyIHRoYXQgaXMKK2luY2x1ZGVkIHdpdGggYFBhc3RlIDxodHRwOi8vcHl0aG9ucGFzdGUub3JnPmBfICh1c2UgYGBlYXN5X2luc3RhbGwKK1Bhc3RlYGAgdG8gaW5zdGFsbCB0aGlzKS4gIFRoZSBzZXR1cCBpcyBhbGwgYXQgdGhlIGJvdHRvbSBvZgorYGBleGFtcGxlLnB5YGAsIGFuZCBsb29rcyBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIGltcG9ydCBvcHRwYXJzZQorICAgICAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCisgICAgICAgICAgICB1c2FnZT0nJXByb2cgLS1wb3J0PVBPUlQgQkFTRV9ESVJFQ1RPUlknCisgICAgICAgICAgICApCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAgICAgJy1wJywgJy0tcG9ydCcsCisgICAgICAgICAgICBkZWZhdWx0PSc4MDgwJywKKyAgICAgICAgICAgIGRlc3Q9J3BvcnQnLAorICAgICAgICAgICAgdHlwZT0naW50JywKKyAgICAgICAgICAgIGhlbHA9J1BvcnQgdG8gc2VydmUgb24gKGRlZmF1bHQgODA4MCknKQorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgICAgICctLWNvbW1lbnQtZGF0YScsCisgICAgICAgICAgICBkZWZhdWx0PScuL2NvbW1lbnRzJywKKyAgICAgICAgICAgIGRlc3Q9J2NvbW1lbnRfZGF0YScsCisgICAgICAgICAgICBoZWxwPSdQbGFjZSB0byBwdXQgY29tbWVudCBkYXRhIGludG8gKGRlZmF1bHQgLi9jb21tZW50cy8pJykKKyAgICAgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAgICAgICAgaWYgbm90IGFyZ3M6CisgICAgICAgICAgICBwYXJzZXIuZXJyb3IoJ1lvdSBtdXN0IGdpdmUgYSBCQVNFX0RJUkVDVE9SWScpCisgICAgICAgIGJhc2VfZGlyID0gYXJnc1swXQorICAgICAgICBmcm9tIHBhc3RlLnVybHBhcnNlciBpbXBvcnQgU3RhdGljVVJMUGFyc2VyCisgICAgICAgIGFwcCA9IFN0YXRpY1VSTFBhcnNlcihiYXNlX2RpcikKKyAgICAgICAgYXBwID0gQ29tbWVudGVyKGFwcCwgb3B0aW9ucy5jb21tZW50X2RhdGEpCisgICAgICAgIGZyb20gd3NnaXJlZi5zaW1wbGVfc2VydmVyIGltcG9ydCBtYWtlX3NlcnZlcgorICAgICAgICBodHRwZCA9IG1ha2Vfc2VydmVyKCdsb2NhbGhvc3QnLCBvcHRpb25zLnBvcnQsIGFwcCkKKyAgICAgICAgcHJpbnQgJ1NlcnZpbmcgb24gaHR0cDovL2xvY2FsaG9zdDolcycgJSBvcHRpb25zLnBvcnQKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaHR0cGQuc2VydmVfZm9yZXZlcigpCisgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIHByaW50ICdeQycKKworSSB3b24ndCBleHBsYWluIGl0IGhlcmUsIGJ1dCBiYXNpY2FsbHkgaXQgdGFrZXMgc29tZSBvcHRpb25zLCBjcmVhdGVzCithbiBhcHBsaWNhdGlvbiB0aGF0IHNlcnZlcyBzdGF0aWMgZmlsZXMKKyhgYFN0YXRpY1VSTFBhcnNlcihiYXNlX2RpcilgYCksIHdyYXBzIGl0IHdpdGggYGBDb21tZW50ZXIoYXBwLAorb3B0aW9ucy5jb21tZW50X2RhdGEpYGAgdGhlbiBzZXJ2ZXMgdGhhdC4KKworVGhlIE1pZGRsZXdhcmUKKy0tLS0tLS0tLS0tLS0tCisKK1doaWxlIHdlJ3ZlIGNyZWF0ZWQgdGhlIGNsYXNzIHN0cnVjdHVyZSBmb3IgdGhlIG1pZGRsZXdhcmUsIGl0IGRvZXNuJ3QKK2FjdHVhbGx5IGRvIGFueXRoaW5nLiAgSGVyZSdzIGEga2luZCBvZiBtaW5pbWFsIHZlcnNpb24gb2YgdGhlCittaWRkbGV3YXJlICh1c2luZyBXZWJPYik6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gd2Vib2IgaW1wb3J0IFJlcXVlc3QKKworICAgIGNsYXNzIENvbW1lbnRlcihvYmplY3QpOgorCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHAsIHN0b3JhZ2VfZGlyKToKKyAgICAgICAgICAgIHNlbGYuYXBwID0gYXBwCisgICAgICAgICAgICBzZWxmLnN0b3JhZ2VfZGlyID0gc3RvcmFnZV9kaXIKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzdG9yYWdlX2Rpcik6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMoc3RvcmFnZV9kaXIpCisKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgICAgIHJlcSA9IFJlcXVlc3QoZW52aXJvbikKKyAgICAgICAgICAgIHJlc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKHNlbGYuYXBwKQorICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK1RoaXMgZG9lc24ndCBtb2RpZnkgdGhlIHJlc3BvbnNlIGl0IGFueSB3YXkuICBZb3UgY291bGQgd3JpdGUgaXQgbGlrZQordGhpcyB3aXRob3V0IFdlYk9iOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBjbGFzcyBDb21tZW50ZXIob2JqZWN0KToKKyAgICAgICAgLi4uCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK0J1dCBpdCB3b24ndCBiZSBhcyBjb252ZW5pZW50IGxhdGVyLiAgRmlyc3QsIGxldHMgY3JlYXRlIGEgbGl0dGxlIGJpdAorb2YgaW5mcmFzdHJ1Y3R1cmUgZm9yIG91ciBtaWRkbGV3YXJlLiAgV2UgbmVlZCB0byBzYXZlIGFuZCBsb2FkCitwZXItdXJsIGRhdGEgKHRoZSBjb21tZW50cyB0aGVtc2VsdmVzKS4gIFdlJ2xsIGtlZXAgdGhlbSBpbiBwaWNrbGVzLAord2hlcmUgZWFjaCB1cmwgaGFzIGEgcGlja2xlIG5hbWVkIGFmdGVyIHRoZSB1cmwgKGJ1dCBkb3VibGUtcXVvdGVkLCBzbworYGBodHRwOi8vbG9jYWxob3N0OjgwODAvaW5kZXguaHRtbGBgIGJlY29tZXMKK2BgaHR0cCUzQSUyRiUyRmxvY2FsaG9zdCUzQTgwODAlMkZpbmRleC5odG1sYGApLgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBmcm9tIGNQaWNrbGUgaW1wb3J0IGxvYWQsIGR1bXAKKworICAgIGNsYXNzIENvbW1lbnRlcihvYmplY3QpOgorICAgICAgICAuLi4KKworICAgICAgICBkZWYgZ2V0X2RhdGEoc2VsZiwgdXJsKToKKyAgICAgICAgICAgIGZpbGVuYW1lID0gc2VsZi51cmxfZmlsZW5hbWUodXJsKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICdyYicpCisgICAgICAgICAgICAgICAgZGF0YSA9IGxvYWQoZikKKyAgICAgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGF0YQorCisgICAgICAgIGRlZiBzYXZlX2RhdGEoc2VsZiwgdXJsLCBkYXRhKToKKyAgICAgICAgICAgIGZpbGVuYW1lID0gc2VsZi51cmxfZmlsZW5hbWUodXJsKQorICAgICAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICd3YicpCisgICAgICAgICAgICBkdW1wKGRhdGEsIGYpCisgICAgICAgICAgICBmLmNsb3NlKCkKKworICAgICAgICBkZWYgdXJsX2ZpbGVuYW1lKHNlbGYsIHVybCk6CisgICAgICAgICAgICAjIERvdWJsZS1xdW90aW5nIG1ha2VzIHRoZSBmaWxlbmFtZSBzYWZlCisgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYuc3RvcmFnZV9kaXIsIHVybGxpYi5xdW90ZSh1cmwsICcnKSkKKworWW91IGNhbiBnZXQgdGhlIGZ1bGwgcmVxdWVzdCBVUkwgd2l0aCBgYHJlcS51cmxgYCwgc28gdG8gZ2V0IHRoZQorY29tbWVudCBkYXRhIHdpdGggdGhlc2UgbWV0aG9kcyB5b3UgZG8gYGBkYXRhID0KK3NlbGYuZ2V0X2RhdGEocmVxLnVybClgYC4KKworTm93IHdlJ2xsIHVwZGF0ZSB0aGUgYGBfX2NhbGxfX2BgIG1ldGhvZCB0byBmaWx0ZXIgKnNvbWUqIHJlc3BvbnNlcywKK2FuZCBnZXQgdGhlIGNvbW1lbnQgZGF0YSBmb3IgdGhvc2UuICBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSByZXNwb25zZXMKK3RoYXQgd2VyZSBlcnJvciByZXNwb25zZXMgKGFueXRoaW5nIGJ1dCBgYDIwMGBgKSwgbm9yIGRvIHdlIHdhbnQgdG8KK2ZpbHRlciByZXNwb25zZXMgdGhhdCBhcmVuJ3QgSFRNTC4gIFNvIHdlIGdldDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgY2xhc3MgQ29tbWVudGVyKG9iamVjdCk6CisgICAgICAgIC4uLgorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgICAgICAgICByZXNwID0gcmVxLmdldF9yZXNwb25zZShzZWxmLmFwcCkKKyAgICAgICAgICAgIGlmIHJlc3AuY29udGVudF90eXBlICE9ICd0ZXh0L2h0bWwnIG9yIHJlc3Auc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAgIHJldHVybiByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgZGF0YSA9IHNlbGYuZ2V0X2RhdGEocmVxLnVybCkKKyAgICAgICAgICAgIC4uLiBkbyBzdHVmZiB3aXRoIGRhdGEsIHVwZGF0ZSByZXNwIC4uLgorICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK1NvIGZhciB3ZSdyZSBwdW50aW5nIG9uIGFjdHVhbGx5IGFkZGluZyB0aGUgY29tbWVudHMgdG8gdGhlIHBhZ2UuICBXZQorYWxzbyBoYXZlbid0IGRlZmluZWQgd2hhdCBgYGRhdGFgYCB3aWxsIGhvbGQuICBMZXQncyBzYXkgaXQncyBhIGxpc3QKK29mIGRpY3Rpb25hcmllcywgd2hlcmUgZWFjaCBkaWN0aW9uYXJ5IGxvb2tzIGxpa2UgYGB7J25hbWUnOiAnSm9obgorRG9lJywgJ2hvbWVwYWdlJzogJ2h0dHA6Ly9ibG9nLmpvaG5kb2UuY29tJywgJ2NvbW1lbnRzJzogJ0dyZWF0CitzaXRlISd9YGAuCisKK1dlJ2xsIGFsc28gbmVlZCBhIHNpbXBsZSBtZXRob2QgdG8gYWRkIHN0dWZmIHRvIHRoZSBwYWdlLiAgV2UnbGwgdXNlIGEKK3JlZ3VsYXIgZXhwcmVzc2lvbiB0byBmaW5kIHRoZSBlbmQgb2YgdGhlIHBhZ2UgYW5kIHB1dCB0ZXh0IGluOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgcmUKKworICAgIGNsYXNzIENvbW1lbnRlcihvYmplY3QpOgorICAgICAgICAuLi4KKworICAgICAgICBfZW5kX2JvZHlfcmUgPSByZS5jb21waWxlKHInPC9ib2R5Lio/PicsIHJlLkl8cmUuUykKKworICAgICAgICBkZWYgYWRkX3RvX2VuZChzZWxmLCBodG1sLCBleHRyYV9odG1sKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgQWRkcyBleHRyYV9odG1sIHRvIHRoZSBlbmQgb2YgdGhlIGh0bWwgcGFnZSAoYmVmb3JlIDwvYm9keT4pCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIG1hdGNoID0gc2VsZi5fZW5kX2JvZHlfcmUuc2VhcmNoKGh0bWwpCisgICAgICAgICAgICBpZiBub3QgbWF0Y2g6CisgICAgICAgICAgICAgICAgcmV0dXJuIGh0bWwgKyBleHRyYV9odG1sCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBodG1sWzptYXRjaC5zdGFydCgpXSArIGV4dHJhX2h0bWwgKyBodG1sW21hdGNoLnN0YXJ0KCk6XQorCitBbmQgdGhlbiB3ZSdsbCB1c2UgaXQgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZGF0YSA9IHNlbGYuZ2V0X2RhdGEocmVxLnVybCkKKyAgICBib2R5ID0gcmVzcC5ib2R5CisgICAgYm9keSA9IHNlbGYuYWRkX3RvX2VuZChib2R5LCBzZWxmLmZvcm1hdF9jb21tZW50cyhkYXRhKSkKKyAgICByZXNwLmJvZHkgPSBib2R5CisgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK1dlIGdldCB0aGUgYm9keSwgdXBkYXRlIGl0LCBhbmQgcHV0IGl0IGJhY2sgaW4gdGhlIHJlc3BvbnNlLiAgVGhpcworYWxzbyB1cGRhdGVzIGBgQ29udGVudC1MZW5ndGhgYC4gIFRoZW4gd2UgZGVmaW5lOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBmcm9tIHdlYm9iIGltcG9ydCBodG1sX2VzY2FwZQorCisgICAgY2xhc3MgQ29tbWVudGVyKG9iamVjdCk6CisgICAgICAgIC4uLgorCisgICAgICAgIGRlZiBmb3JtYXRfY29tbWVudHMoc2VsZiwgY29tbWVudHMpOgorICAgICAgICAgICAgaWYgbm90IGNvbW1lbnRzOgorICAgICAgICAgICAgICAgIHJldHVybiAnJworICAgICAgICAgICAgdGV4dCA9IFtdCisgICAgICAgICAgICB0ZXh0LmFwcGVuZCgnPGhyPicpCisgICAgICAgICAgICB0ZXh0LmFwcGVuZCgnPGgyPjxhIG5hbWU9ImNvbW1lbnQtYXJlYSI+PC9hPkNvbW1lbnRzICglcyk6PC9oMj4nICUgbGVuKGNvbW1lbnRzKSkKKyAgICAgICAgICAgIGZvciBjb21tZW50IGluIGNvbW1lbnRzOgorICAgICAgICAgICAgICAgIHRleHQuYXBwZW5kKCc8aDM+PGEgaHJlZj0iJXMiPiVzPC9hPiBhdCAlczo8L2gzPicgJSAoCisgICAgICAgICAgICAgICAgICAgIGh0bWxfZXNjYXBlKGNvbW1lbnRbJ2hvbWVwYWdlJ10pLCBodG1sX2VzY2FwZShjb21tZW50WyduYW1lJ10pLAorICAgICAgICAgICAgICAgICAgICB0aW1lLnN0cmZ0aW1lKCclYycsIGNvbW1lbnRbJ3RpbWUnXSkpKQorICAgICAgICAgICAgICAgICMgU3VzY2VwdGlibGUgdG8gWFNTIGF0dGFja3MhOgorICAgICAgICAgICAgICAgIHRleHQuYXBwZW5kKGNvbW1lbnRbJ2NvbW1lbnRzJ10pCisgICAgICAgICAgICByZXR1cm4gJycuam9pbih0ZXh0KQorCitXZSBwdXQgaW4gYSBoZWFkZXIgKHdpdGggYW4gYW5jaG9yIHdlJ2xsIHVzZSBsYXRlciksIGFuZCBhIHNlY3Rpb24gZm9yCitlYWNoIGNvbW1lbnQuICBOb3RlIHRoYXQgYGBodG1sX2VzY2FwZWBgIGlzIHRoZSBzYW1lIGFzIGBgY2dpLmVzY2FwZWBgCithbmQganVzdCB0dXJucyBgYCZgYCBpbnRvIGBgJmFtcDtgYCwgZXRjLgorCitCZWNhdXNlIHdlIHB1dCBpbiBzb21lIHRleHQgd2l0aG91dCBxdW90aW5nIGl0IGlzIHN1c2NlcHRpYmxlIHRvIGEKK2BDcm9zcy1TaXRlIFNjcmlwdGluZworPGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ3Jvc3Mtc2l0ZV9zY3JpcHRpbmc+YF8gYXR0YWNrLiAgRml4aW5nCit0aGF0IGlzIGJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyB0dXRvcmlhbDsgeW91IGNvdWxkIHF1b3RlIGl0IG9yIGNsZWFuCitpdCB3aXRoIHNvbWV0aGluZyBsaWtlIGBseG1sLmh0bWwuY2xlYW4KKzxodHRwOi8vY29kZXNwZWFrLm5ldC9seG1sL2x4bWxodG1sLmh0bWwjY2xlYW5pbmctdXAtaHRtbD5gXy4KKworQWNjZXB0aW5nIENvbW1lbnRzCistLS0tLS0tLS0tLS0tLS0tLS0KKworQWxsIG9mIHRob3NlIHBpZWNlcyAqZGlzcGxheSogY29tbWVudHMsIGJ1dCBzdGlsbCBubyBvbmUgY2FuIGFjdHVhbGx5CittYWtlIGNvbW1lbnRzLiAgVG8gaGFuZGxlIHRoaXMgd2UnbGwgdGFrZSBhIGxpdHRsZSBwaWVjZSBvZiB0aGUgVVJMCitzcGFjZSBmb3Igb3VyIG93biwgZXZlcnl0aGluZyB1bmRlciBgYC8uY29tbWVudHNgYCwgc28gd2hlbiBzb21lb25lCitQT1NUcyB0aGVyZSBpdCB3aWxsIGFkZCBhIGNvbW1lbnQuCisKK1doZW4gdGhlIHJlcXVlc3QgY29tZXMgaW4gdGhlcmUgYXJlIHR3byBwYXJ0cyB0byB0aGUgcGF0aDoKK2BgU0NSSVBUX05BTUVgYCBhbmQgYGBQQVRIX0lORk9gYC4gIEV2ZXJ5dGhpbmcgaW4gYGBTQ1JJUFRfTkFNRWBgIGhhcworYWxyZWFkeSBiZWVuIHBhcnNlZCwgYW5kIGV2ZXJ5dGhpbmcgaW4gYGBQQVRIX0lORk9gYCBoYXMgeWV0IHRvIGJlCitwYXJzZWQuICBUaGF0IG1lYW5zIHRoYXQgdGhlIFVSTCAqd2l0aG91dCogYGBQQVRIX0lORk9gYCBpcyB0aGUgcGF0aAordG8gdGhlIG1pZGRsZXdhcmU7IHdlIGNhbiBpbnRlcmNlcHQgYW55dGhpbmcgZWxzZSBiZWxvdworYGBTQ1JJUFRfTkFNRWBgIGJ1dCBub3RoaW5nIGFib3ZlIGl0LiAgVGhlIG5hbWUgZm9yIHRoZSBVUkwgd2l0aG91dAorYGBQQVRIX0lORk9gYCBpcyBgYHJlcS5hcHBsaWNhdGlvbl91cmxgYC4gIFdlIGhhdmUgdG8gY2FwdHVyZSBpdCBlYXJseQordG8gbWFrZSBzdXJlIGl0IGRvZXNuJ3QgY2hhbmdlIChzaW5jZSB0aGUgV1NHSSBhcHBsaWNhdGlvbiB3ZSBhcmUKK3dyYXBwaW5nIG1heSB1cGRhdGUgYGBTQ1JJUFRfTkFNRWBgIGFuZCBgYFBBVEhfSU5GT2BgKS4KKworU28gaGVyZSdzIHdoYXQgdGhpcyBhbGwgbG9va3MgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgY2xhc3MgQ29tbWVudGVyKG9iamVjdCk6CisgICAgICAgIC4uLgorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgICAgICAgICBpZiByZXEucGF0aF9pbmZvX3BlZWsoKSA9PSAnLmNvbW1lbnRzJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wcm9jZXNzX2NvbW1lbnQocmVxKShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgICMgVGhpcyBpcyB0aGUgYmFzZSBwYXRoIG9mICp0aGlzKiBtaWRkbGV3YXJlOgorICAgICAgICAgICAgYmFzZV91cmwgPSByZXEuYXBwbGljYXRpb25fdXJsCisgICAgICAgICAgICByZXNwID0gcmVxLmdldF9yZXNwb25zZShzZWxmLmFwcCkKKyAgICAgICAgICAgIGlmIHJlc3AuY29udGVudF90eXBlICE9ICd0ZXh0L2h0bWwnIG9yIHJlc3Auc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAgICMgTm90IGFuIEhUTUwgcmVzcG9uc2UsIHdlIGRvbid0IHdhbnQgdG8KKyAgICAgICAgICAgICAgICAjIGRvIGFueXRoaW5nIHRvIGl0CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY29udGVudCBpc24ndCBnemlwcGVkOgorICAgICAgICAgICAgcmVzcC5kZWNvZGVfY29udGVudCgpCisgICAgICAgICAgICBjb21tZW50cyA9IHNlbGYuZ2V0X2RhdGEocmVxLnVybCkKKyAgICAgICAgICAgIGJvZHkgPSByZXNwLmJvZHkKKyAgICAgICAgICAgIGJvZHkgPSBzZWxmLmFkZF90b19lbmQoYm9keSwgc2VsZi5mb3JtYXRfY29tbWVudHMoY29tbWVudHMpKQorICAgICAgICAgICAgYm9keSA9IHNlbGYuYWRkX3RvX2VuZChib2R5LCBzZWxmLnN1Ym1pdF9mb3JtKGJhc2VfdXJsLCByZXEpKQorICAgICAgICAgICAgcmVzcC5ib2R5ID0gYm9keQorICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2BgYmFzZV91cmxgYCBpcyB0aGUgcGF0aCB3aGVyZSB0aGUgbWlkZGxld2FyZSBpcyBsb2NhdGVkIChpZiB5b3UgcnVuCit0aGUgZXhhbXBsZSBzZXJ2ZXIsIGl0IHdpbGwgYmUgYGBodHRwOi8vbG9jYWxob3N0OlBPUlQvYGApLiAgV2UgdXNlCitgYHJlcS5wYXRoX2luZm9fcGVlaygpYGAgdG8gbG9vayBhdCB0aGUgbmV4dCBzZWdtZW50IG9mIHRoZSBVUkwgLS0KK3doYXQgY29tZXMgYWZ0ZXIgYmFzZV91cmwuICBJZiBpdCBpcyBgYC5jb21tZW50c2BgIHRoZW4gd2UgaGFuZGxlIGl0CitpbnRlcm5hbGx5IGFuZCBkb24ndCBwYXNzIHRoZSByZXF1ZXN0IG9uLgorCitXZSBhbHNvIHB1dCBpbiBhIGxpdHRsZSBndWFyZCwgYGByZXNwLmRlY29kZV9jb250ZW50KClgYCBpbiBjYXNlIHRoZQorYXBwbGljYXRpb24gcmV0dXJucyBhIGd6aXBwZWQgcmVzcG9uc2UuCisKK1RoZW4gd2UgZ2V0IHRoZSBkYXRhLCBhZGQgdGhlIGNvbW1lbnRzLCBhZGQgdGhlICpmb3JtKiB0byBtYWtlIG5ldworY29tbWVudHMsIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4KKworc3VibWl0X2Zvcm0KK35+fn5+fn5+fn5+CisKK0hlcmUncyB3aGF0IHRoZSBmb3JtIGxvb2tzIGxpa2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGNsYXNzIENvbW1lbnRlcihvYmplY3QpOgorICAgICAgICAuLi4KKworICAgICAgICBkZWYgc3VibWl0X2Zvcm0oc2VsZiwgYmFzZV9wYXRoLCByZXEpOgorICAgICAgICAgICAgcmV0dXJuICcnJzxoMj5MZWF2ZSBhIGNvbW1lbnQ6PC9oMj4KKyAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJXMvLmNvbW1lbnRzIiBtZXRob2Q9IlBPU1QiPgorICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVybCIgdmFsdWU9IiVzIj4KKyAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUlIj4KKyAgICAgICAgICAgICAgPHRyPjx0ZD5OYW1lOjwvdGQ+CisgICAgICAgICAgICAgICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiIHN0eWxlPSJ3aWR0aDogMTAwJSUiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgPHRyPjx0ZD5VUkw6PC90ZD4KKyAgICAgICAgICAgICAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaG9tZXBhZ2UiIHN0eWxlPSJ3aWR0aDogMTAwJSUiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgIENvbW1lbnRzOjxicj4KKyAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iY29tbWVudHMiIHJvd3M9MTAgc3R5bGU9IndpZHRoOiAxMDAlJSI+PC90ZXh0YXJlYT48YnI+CisgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCBjb21tZW50Ij4KKyAgICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICcnJyAlIChiYXNlX3BhdGgsIGh0bWxfZXNjYXBlKHJlcS51cmwpKQorCitOb3RoaW5nIHRvbyBleGNpdGluZy4gIEl0IHN1Ym1pdHMgYSBmb3JtIHdpdGggdGhlIGtleXMgYGB1cmxgYCAodGhlCitVUkwgYmVpbmcgY29tbWVudGVkIG9uKSwgYGBuYW1lYGAsIGBgaG9tZXBhZ2VgYCwgYW5kIGBgY29tbWVudHNgYC4KKworcHJvY2Vzc19jb21tZW50Cit+fn5+fn5+fn5+fn5+fn4KKworSWYgeW91IGxvb2sgYXQgdGhlIG1ldGhvZCBjYWxsLCB3aGF0IHdlIGRvIGlzIGNhbGwgdGhlIG1ldGhvZCB0aGVuCit0cmVhdCB0aGUgcmVzdWx0IGFzIGEgV1NHSSBhcHBsaWNhdGlvbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgcmV0dXJuIHNlbGYucHJvY2Vzc19jb21tZW50KHJlcSkoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK1lvdSBjb3VsZCB3cml0ZSB0aGlzIGFzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICByZXNwb25zZSA9IHNlbGYucHJvY2Vzc19jb21tZW50KHJlcSkKKyAgICByZXR1cm4gcmVzcG9uc2UoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK0EgY29tbW9uIHBhdHRlcm4gaW4gV1NHSSBtaWRkbGV3YXJlIHRoYXQgKmRvZXNuJ3QqIHVzZSBXZWJPYiBpcyB0bworanVzdCBkbzoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgcmV0dXJuIHNlbGYucHJvY2Vzc19jb21tZW50KGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCitCdXQgdGhlIFdlYk9iIHN0eWxlIG1ha2VzIGl0IGVhc2llciB0byBtb2RpZnkgdGhlIHJlc3BvbnNlIGlmIHlvdSB3YW50Cit0bzsgbW9kaWZ5aW5nIGEgdHJhZGl0aW9uYWwgV1NHSSByZXNwb25zZS9hcHBsaWNhdGlvbiBvdXRwdXQgcmVxdWlyZXMKK2NoYW5naW5nIHlvdXIgbG9naWMgZmxvdyBjb25zaWRlcmFibHkuCisKK0hlcmUncyB0aGUgYWN0dWFsIHByb2Nlc3NpbmcgY29kZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZnJvbSB3ZWJvYiBpbXBvcnQgZXhjCisgICAgZnJvbSB3ZWJvYiBpbXBvcnQgUmVzcG9uc2UKKworICAgIGNsYXNzIENvbW1lbnRlcihvYmplY3QpOgorICAgICAgICAuLi4KKworICAgICAgICBkZWYgcHJvY2Vzc19jb21tZW50KHNlbGYsIHJlcSk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdXJsID0gcmVxLnBhcmFtc1sndXJsJ10KKyAgICAgICAgICAgICAgICBuYW1lID0gcmVxLnBhcmFtc1snbmFtZSddCisgICAgICAgICAgICAgICAgaG9tZXBhZ2UgPSByZXEucGFyYW1zWydob21lcGFnZSddCisgICAgICAgICAgICAgICAgY29tbWVudHMgPSByZXEucGFyYW1zWydjb21tZW50cyddCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3IsIGU6CisgICAgICAgICAgICAgICAgcmVzcCA9IGV4Yy5IVFRQQmFkUmVxdWVzdCgnTWlzc2luZyBwYXJhbWV0ZXI6ICVzJyAlIGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3AKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLmdldF9kYXRhKHVybCkKKyAgICAgICAgICAgIGRhdGEuYXBwZW5kKGRpY3QoCisgICAgICAgICAgICAgICAgbmFtZT1uYW1lLAorICAgICAgICAgICAgICAgIGhvbWVwYWdlPWhvbWVwYWdlLAorICAgICAgICAgICAgICAgIGNvbW1lbnRzPWNvbW1lbnRzLAorICAgICAgICAgICAgICAgIHRpbWU9dGltZS5nbXRpbWUoKSkpCisgICAgICAgICAgICBzZWxmLnNhdmVfZGF0YSh1cmwsIGRhdGEpCisgICAgICAgICAgICByZXNwID0gZXhjLkhUVFBTZWVPdGhlcihsb2NhdGlvbj11cmwrJyNjb21tZW50LWFyZWEnKQorICAgICAgICAgICAgcmV0dXJuIHJlc3AKKworV2UgZWl0aGVyIGdpdmUgYSBCYWQgUmVxdWVzdCByZXNwb25zZSAoaWYgdGhlIGZvcm0gc3VibWlzc2lvbiBpcworc29tZWhvdyBtYWxmb3JtZWQpLCBvciBhIHJlZGlyZWN0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBhZ2UuCisKK1RoZSBjbGFzc2VzIGluIGBgd2Vib2IuZXhjYGAgKGxpa2UgYGBIVFRQQmFkUmVxdWVzdGBgIGFuZAorYGBIVFRQU2VlT3RoZXJgYCkgYXJlIFJlc3BvbnNlIHN1YmNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBxdWlja2x5CitjcmVhdGUgcmVzcG9uc2VzIGZvciB0aGVzZSBub24tMjAwIGNhc2VzIHdoZXJlIHRoZSByZXNwb25zZSBib2R5Cit1c3VhbGx5IGRvZXNuJ3QgbWF0dGVyIG11Y2guCisKK0NvbmNsdXNpb24KKy0tLS0tLS0tLS0KKworVGhpcyBzaG93cyBob3cgdG8gbWFrZSByZXNwb25zZSBtb2RpZnlpbmcgbWlkZGxld2FyZSwgd2hpY2ggaXMKK3Byb2JhYmx5IHRoZSBtb3N0IGRpZmZpY3VsdCBraW5kIG9mIG1pZGRsZXdhcmUgdG8gd3JpdGUgd2l0aCBXU0dJIC0tCittb2RpZnlpbmcgdGhlIHJlcXVlc3QgaXMgcXVpdGUgc2ltcGxlIGluIGNvbXBhcmlzb24sIGFzIHlvdSBzaW1wbHkKK3VwZGF0ZSBgYGVudmlyb25gYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2NvbmYucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9jb25mLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmNDdhNDUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9jb25mLnB5CkBAIC0wLDAgKzEsMzcgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcGtnX3Jlc291cmNlcworCit2ZXJzaW9uID0gcmVsZWFzZSA9IHBrZ19yZXNvdXJjZXMuZ2V0X2Rpc3RyaWJ1dGlvbignd2Vib2InKS52ZXJzaW9uCisKK2V4dGVuc2lvbnMgPSBbJ3NwaGlueC5leHQuYXV0b2RvYyddCisKK3NvdXJjZV9zdWZmaXggPSAnLnR4dCcgIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCittYXN0ZXJfZG9jID0gJ2luZGV4JyAjIFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KKworcHJvamVjdCA9ICdXZWJPYicKK2NvcHlyaWdodCA9ICcyMDExLCBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzJworZXhjbHVkZV9wYXR0ZXJucyA9IFsnanNvbnJwYy1leGFtcGxlLWNvZGUvKiddCisKK21vZGluZGV4X2NvbW1vbl9wcmVmaXggPSBbJ3dlYm9iLiddCisKKyMgSWYgdHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpmdW5jOiBldGMuIGNyb3NzLXJlZmVyZW5jZSB0ZXh0LgorI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwgZGVzY3JpcHRpb24KKyMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVuY3Rpb246OikuCisjYWRkX21vZHVsZV9uYW1lcyA9IFRydWUKKworCisjIGh0bWxfZmF2aWNvbiA9IC4uLgoraHRtbF9hZGRfcGVybWFsaW5rcyA9ICJGYWxzZSIKKyNodG1sX3Nob3dfc291cmNlbGluayA9IFRydWUgIyA/c2V0IHRvIEZhbHNlPworCisjIENvbnRlbnQgdGVtcGxhdGUgZm9yIHRoZSBpbmRleCBwYWdlLgorI2h0bWxfaW5kZXggPSAnJworCisjIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywgbWFwcyBkb2N1bWVudCBuYW1lcyB0byB0ZW1wbGF0ZSBuYW1lcy4KKyNodG1sX3NpZGViYXJzID0ge30KKworIyBPdXRwdXQgZmlsZSBiYXNlIG5hbWUgZm9yIEhUTUwgaGVscCBidWlsZGVyLgoraHRtbGhlbHBfYmFzZW5hbWUgPSAnV2ViT2Jkb2MnCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2RpZmZlcmVuY2VzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2RpZmZlcmVuY2VzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGM2ODE3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvZGlmZmVyZW5jZXMudHh0CkBAIC0wLDAgKzEsNjk1IEBACitEaWZmZXJlbmNlcyBCZXR3ZWVuIFdlYk9iIGFuZCBPdGhlciBTeXN0ZW1zCisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKK1RoaXMgZG9jdW1lbnQgcG9pbnRzIG91dCBzb21lIG9mIHRoZSBBUEkgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUKK1JlcXVlc3QgYW5kIFJlc3BvbnNlIG9iamVjdCwgYW5kIHRoZSBvYmplY3RzIGluIG90aGVyIHN5c3RlbXMuCisKKy4uIGNvbnRlbnRzOjoKKworcGFzdGUud3NnaXdyYXBwZXJzIGFuZCBQeWxvbnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBQeWxvbnMgYGByZXF1ZXN0YGAgYW5kIGBgcmVzcG9uc2VgYCBvYmplY3QgYXJlIGJhc2VkIG9uCitgYHBhc3RlLndzZ2l3cmFwcGVycy5XU0dJUmVxdWVzdGBgIGFuZCBgYFdTR0lSZXNwb25zZWBgCisKK1RoZXJlIGlzIG5vIGNvbmNlcHQgb2YgYGBkZWZhdWx0c2BgIGluIFdlYk9iLiAgSW4gUGFzdGUvUHlsb25zIHRoZXNlCitzZXJ2ZSBhcyB0aHJlYWRsb2NhbCBzZXR0aW5ncyB0aGF0IGNvbnRyb2wgY2VydGFpbiBwb2xpY2llcyBvbiB0aGUKK3JlcXVlc3QgYW5kIHJlc3BvbnNlIG9iamVjdC4gIEluIFdlYk9iIHlvdSBzaG91bGQgbWFrZSB5b3VyIG93bgorc3ViY2xhc3NlcyB0byBjb250cm9sIHBvbGljeSAodGhvdWdoIGluIG1hbnkgd2F5cyBzaW1wbHkgYmVpbmcKK2V4cGxpY2l0IGVsc2V3aGVyZSByZW1vdmVzIHRoZSBuZWVkIGZvciB0aGlzIHBvbGljeSkuCisKK1JlcXVlc3QKKy0tLS0tLS0KKworYGBib2R5YGA6CisgICAgVGhpcyBpcyBhIGZpbGUtbGlrZSBvYmplY3QgaW4gV1NHSVJlcXVlc3QuICBJbiBXZWJPYiBpdCBpcyBhCisgICAgc3RyaW5nICh0byBtYXRjaCBSZXNwb25zZS5ib2R5KSBhbmQgdGhlIGZpbGUtbGlrZSBvYmplY3QgaXMKKyAgICBhdmFpbGFibGUgdGhyb3VnaCBgYHJlcS5ib2R5X2ZpbGVgYAorCitgYGxhbmd1YWdlcygpYGA6CisgICAgVGhpcyBpcyBhdmFpbGFibGUgdGhyb3VnaCBgYHJlcS5hY2NlcHRfbGFuZ3VhZ2VgYCwgcGFydGljdWxhcmx5CisgICAgYGByZXEuYWNjZXB0X2xhbmd1YWdlLmJlc3RfbWF0Y2goc3VwcG9ydGVkX2xhbmd1YWdlcylgYAorCitgYG1hdGNoX2FjY2VwdChtaW1ldHlwZXMpYGA6CisgICAgVGhpcyBpcyBhdmFpbGFibGUgdGhyb3VnaCBgYHJlcS5hY2NlcHQuZmlyc3RfbWF0Y2gobWltZXR5cGVzKWBgOworICAgIG9yIGlmIHlvdSB0cnVzdCB0aGUgY2xpZW50J3MgcXVhbGl0eSByYXRpbmdzLCB5b3UgY2FuIHVzZQorICAgIGBgcmVxLmFjY2VwdC5iZXN0X21hdGNoKG1pbWV0eXBlcylgYAorCitgYGVycm9yc2BgOgorICAgIFRoaXMgY29udHJvbHMgaG93IHVuaWNvZGUgZGVjb2RlIGVycm9ycyBhcmUgaGFuZGxlZDsgaXQgaXMgbm93CisgICAgbmFtZWQgYGB1bmljb2RlX2Vycm9yc2BgCisKK1RoZXJlIGFyZSBhbHNvIG1hbnkgZXh0cmEgbWV0aG9kcyBhbmQgYXR0cmlidXRlcyBvbiBXZWJPYiBSZXF1ZXN0CitvYmplY3RzLgorCitSZXNwb25zZQorLS0tLS0tLS0KKworYGBkZXRlcm1pbmVfY2hhcnNldCgpYGA6CisgICAgSXMgbm93IGF2YWlsYWJsZSBhcyBgYHJlcy5jaGFyc2V0YGAKKworYGBoYXNfaGVhZGVyKGhlYWRlcilgYDoKKyAgICBTaG91bGQgYmUgZG9uZSB3aXRoIGBgaGVhZGVyIGluIHJlcy5oZWFkZXJzYGAKKworYGBnZXRfY29udGVudCgpYGAgYW5kIGBgd3NnaV9yZXNwb25zZSgpYGA6CisgICAgVGhlc2UgYXJlIGdvbmU7IHlvdSBzaG91bGQgdXNlIGBgcmVzLmJvZHlgYCBvciBgYHJlcyhlbnZpcm9uLAorICAgIHN0YXJ0X3Jlc3BvbnNlKWBgCisKK2Bgd3JpdGUoY29udGVudClgYDoKKyAgICBBdmFpbGFibGUgaW4gYGByZXMuYm9keV9maWxlLndyaXRlKGNvbnRlbnQpYGAuCisKK2BgZmx1c2goKWBgIGFuZCBgYHRlbGwoKWBgOgorICAgIE5vdCBhdmFpbGFibGUuCisKK1RoZXJlIGFyZSBhbHNvIG1hbnkgZXh0cmEgbWV0aG9kcyBhbmQgYXR0cmlidXRlcyBvbiBXZWJPYiBSZXNwb25zZQorb2JqZWN0cy4KKworRGphbmdvCis9PT09PT0KKworVGhpcyBpcyBhIHF1aWNrIHN1bW1hcnkgZnJvbSByZWFkaW5nIGB0aGUgRGphbmdvIGRvY3VtZW50YXRpb24KKzxodHRwOi8vd3d3LmRqYW5nb3Byb2plY3QuY29tL2RvY3VtZW50YXRpb24vcmVxdWVzdF9yZXNwb25zZS8+YF8uCisKK1JlcXVlc3QKKy0tLS0tLS0KKworYGBlbmNvZGluZ2BgOgorICAgIElzIGBgcmVxLmNoYXJzZXRgYAorCitgYFJFUVVFU1RgYDoKKyAgICBJcyBgYHJlcS5wYXJhbXNgYAorCitgYEZJTEVTYGA6CisgICAgRmlsZSB1cGxvYWRzIGFyZSBgYGNnaS5GaWVsZFN0b3JhZ2VgYCBvYmplY3RzIGRpcmVjdGx5IGluCisgICAgYGByZXMuUE9TVGBgCisKK2BgTUVUQWBgOgorICAgIElzIGBgcmVxLmVudmlyb25gYAorCitgYHVzZXJgYDoKKyAgICBObyBlcXVpdmFsZW50ICh0b28gY29ubmVjdGVkIHRvIGFwcGxpY2F0aW9uIG1vZGVsIGZvciBXZWJPYikuCisgICAgVGhlcmUgaXMgYGByZXEucmVtb3RlX3VzZXJgYCwgd2hpY2ggaXMgb25seSBldmVyIGEgc3RyaW5nLgorCitgYHNlc3Npb25gYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgcmF3X3Bvc3RfZGF0YWBgOgorICAgIEF2YWlsYWJsZSB3aXRoIGBgcmVxLmJvZHlgYAorCitgYF9fZ2V0aXRlbV9fKGtleSlgYDoKKyAgICBZb3UgaGF2ZSB0byB1c2UgYGByZXEucGFyYW1zYGAKKworYGBpc19zZWN1cmUoKWBgOgorICAgIE5vIGVxdWl2YWxlbnQ7IHlvdSBjb3VsZCB1c2UgYGByZXEuc2NoZW1lID09ICdodHRwcydgYC4KKworUXVlcnlEaWN0CistLS0tLS0tLS0KKworUXVlcnlEaWN0IGlzIHRoZSB3YXkgRGphbmdvIHJlcHJlc2VudHMgdGhlIG11bHRpLWtleSBkaWN0aW9uYXJ5LWxpa2UKK29iamVjdHMgdGhhdCBhcmUgcmVxdWVzdCB2YXJpYWJsZXMgKHF1ZXJ5IHN0cmluZyBhbmQgUE9TVCBib2R5Cit2YXJpYWJsZXMpLiAgVGhlIGVxdWl2YWxlbnQgaW4gV2ViT2IgaXMgTXVsdGlEaWN0LgorCitNdXRhYmlsaXR5OgorICAgIFdlYk9iIGRpY3Rpb25hcmllcyBhcmUgc29tZXRpbWVzIG11dGFibGUgKHJlcS5HRVQgaXMsCisgICAgcmVxLnBhcmFtcyBpcyBub3QpCisKK09yZGVyaW5nOgorICAgIEkgYmVsaWV2ZSBEamFuZ28gZG9lcyBub3Qgb3JkZXIgdGhlIGtleXMgZnVsbHk7IE11bHRpRGljdCBpcyBhCisgICAgZnVsbCBvcmRlcmluZy4gIE1ldGhvZHMgdGhhdCBpdGVyYXRlIG92ZXIgdGhlIHBhcmFtZXRlcnMgaXRlcmF0ZQorICAgIG92ZXIga2V5cyBpbiB0aGVpciBvcmRlciBpbiB0aGUgb3JpZ2luYWwgcmVxdWVzdC4KKworYGBrZXlzKClgYCwgYGBpdGVtcygpYGAsIGBgdmFsdWVzKClgYCAocGx1cyBgYGl0ZXIqYGApOgorICAgIFRoZXNlIHJldHVybiBhbGwgdmFsdWVzIGluIE11bHRpRGljdCwgYnV0IG9ubHkgdGhlIGxhc3QgdmFsdWUgZm9yCisgICAgYSBRdWVyeURpY3QuICBUaGF0IGlzLCBnaXZlbiBgYGE9MSZhPTJgYCB3aXRoIE11bHRpRGljdAorICAgIGBgZC5pdGVtcygpYGAgcmV0dXJucyBgYFsoJ2EnLCAnMScpLCAoJ2EnLCAnMicpXWBgLCBidXQgUXVlcnlEaWN0CisgICAgcmV0dXJucyBgYFsoJ2EnLCAnMScpXWBgCisKK2BgZ2V0bGlzdChrZXkpYGA6CisgICAgQXZhaWxhYmxlIGFzIGBgZC5nZXRhbGwoa2V5KWBgCisKK2Bgc2V0bGlzdChrZXkpYGA6CisgICAgTm8gZGlyZWN0IGVxdWl2YWxlbnQKKworYGBhcHBlbmRsaXN0KGtleSwgdmFsdWUpYGA6CisgICAgQXZhaWxhYmxlIGFzIGBgZC5hZGQoa2V5LCB2YWx1ZSlgYAorCitgYHNldGxpc3RkZWZhdWx0KGtleSwgZGVmYXVsdF9saXN0KWBgOgorICAgIE5vIGRpcmVjdCBlcXVpdmFsZW50CisKK2BgbGlzdHMoKWBgOgorICAgIElzIGBgZC5kaWN0X29mX2xpc3RzKClgYAorCitUaGUgTXVsdGlEaWN0IG9iamVjdCBoYXMgYSBgYGQuZ2V0b25lKGtleSlgYCBtZXRob2QsIHRoYXQgcmFpc2VzCitLZXlFcnJvciBpZiB0aGVyZSBpcyBub3QgZXhhY3RseSBvbmUga2V5LiAgVGhlcmUgaXMgYSBtZXRob2QKK2BgZC5taXhlZCgpYGAgd2hpY2ggcmV0dXJucyBhIHZlcnNpb24gd2hlcmUgdmFsdWVzIGFyZSBsaXN0cyAqaWYqCit0aGVyZSBhcmUgbXVsdGlwbGUgdmFsdWVzIGZvciBhIGxpc3QuICBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IG1hbnkKK2NnaS1iYXNlZCByZXF1ZXN0IGZvcm1zIGFyZSByZXByZXNlbnRlZC4KKworUmVzcG9uc2UKKy0tLS0tLS0tCisKK0NvbnN0cnVjdG9yOgorICAgIFNvbWV3aGF0IGRpZmZlcmVudC4gIFdlYk9iIHRha2VzIGFueSBrZXl3b3JkIGFyZ3VtZW50cyBhcworICAgIGF0dHJpYnV0ZSBhc3NpZ25tZW50cy4gIERqYW5nbyBvbmx5IHRha2VzIGEgY291cGxlIGFyZ3VtZW50cy4gIFRoZQorICAgIGBgbWltZXR5cGVgYCBhcmd1bWVudCBpcyBgYGNvbnRlbnRfdHlwZWBgLCBhbmQgYGBjb250ZW50X3R5cGVgYCBpcworICAgIHRoZSBlbnRpcmUgYGBDb250ZW50LVR5cGVgYCBoZWFkZXIgKGluY2x1ZGluZyBjaGFyc2V0KS4KKworZGljdGlvbmFyeS1saWtlOgorICAgIFRoZSBEamFuZ28gcmVzcG9uc2Ugb2JqZWN0IGlzIHNvbWV3aGF0IGRpY3Rpb25hcnktbGlrZSwgc2V0dGluZworICAgIGhlYWRlcnMuICBUaGUgZXF1aXZhbGVudCBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0IGlzCisgICAgYGByZXMuaGVhZGVyc2BgLiAgSW4gV2ViT2IgdGhpcyBpcyBhIE11bHRpRGljdC4KKworYGBoYXNfaGVhZGVyKGhlYWRlcilgYDoKKyAgICBVc2UgYGBoZWFkZXIgaW4gcmVzLmhlYWRlcnNgYAorCitgYGZsdXNoKClgYCwgYGB0ZWxsKClgYDoKKyAgICBOb3QgYXZhaWxhYmxlCisKK2BgY29udGVudGBgOgorICAgIFVzZSBgYHJlcy5ib2R5YGAgZm9yIHRoZSBgYHN0cmBgIHZhbHVlLCBgYHJlcy50ZXh0YGAgZm9yCisgICAgdGhlIGBgdW5pY29kZWBgIHZhbHVlCisKK1Jlc3BvbnNlIFN1YmNsYXNzZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlc2UgYXJlIGdlbmVyYWxseSBsaWtlIGBgd2Vib2IuZXhjYGAgb2JqZWN0cy4KK2BgSHR0cFJlc3BvbnNlTm90TW9kaWZpZWRgYCBpcyBgYEhUVFBOb3RNb2RpZmllZGBgOyB0aGlzIG5hbWluZwordHJhbnNsYXRpb24gZ2VuZXJhbGx5IHdvcmtzLgorCitDaGVycnlQeS9UdXJib0dlYXJzCis9PT09PT09PT09PT09PT09PT09CisKK1RoZSBgQ2hlcnJ5UHkgcmVxdWVzdCBvYmplY3QKKzxodHRwOi8vd3d3LmNoZXJyeXB5Lm9yZy93aWtpL1JlcXVlc3RPYmplY3Q+YF8gaXMgYWxzbyB1c2VkIGJ5CitUdXJib0dlYXJzIDEueC4KKworUmVxdWVzdAorLS0tLS0tLQorCitgYGFwcGBgOgorICAgIE5vIGVxdWl2YWxlbnQKKworYGBiYXNlYGA6CisgICAgYGByZXEuYXBwbGljYXRpb25fdXJsYGAKKworYGBjbG9zZSgpYGA6CisgICAgTm8gZXF1aXZhbGVudAorCitgYGNsb3NlZGBgOgorICAgIE5vIGVxdWl2YWxlbnQKKworYGBjb25maWdgYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgY29va2llYGA6CisgICAgQSBgYFNpbXBsZUNvb2tpZWBgIG9iamVjdCBpbiBDaGVycnlQeTsgYSBkaWN0aW9uYXJ5IGluIFdlYk9iCisgICAgKGBgU2ltcGxlQ29va2llYGAgY2FuIHJlcHJlc2VudCBjb29raWUgcGFyYW1ldGVycywgYnV0IGNvb2tpZQorICAgIHBhcmFtZXRlcnMgYXJlIG9ubHkgc2VudCB3aXRoIHJlc3BvbnNlcyBub3QgcmVxdWVzdHMpCisKK2BgZGlzcGF0Y2hgYDoKKyAgICBObyBlcXVpdmFsZW50ICh0aGlzIGlzIHRoZSBvYmplY3QgZGlzcGF0Y2hlciBpbiBDaGVycnlQeSkuCisKK2BgZXJyb3JfcGFnZWBgLCBgYGVycm9yX3Jlc3BvbnNlYGAsIGBgaGFuZGxlX2Vycm9yYGA6CisgICAgTm8gZXF1aXZhbGVudAorCitgYGdldF9yZXNvdXJjZSgpYGA6CisgICAgU2ltaWxhciB0byBgYHJlcS5nZXRfcmVzcG9uc2UoYXBwKWBgCisKK2BgaGFuZGxlcmBgOgorICAgIE5vIGVxdWl2YWxlbnQKKworYGBoZWFkZXJzYGAsIGBgaGVhZGVyX2xpc3RgYDoKKyAgICBUaGUgV1NHSSBlbnZpcm9ubWVudCByZXByZXNlbnRzIGhlYWRlcnMgYXMgYSBkaWN0aW9uYXJ5LCBhdmFpbGFibGUKKyAgICB0aHJvdWdoIGBgcmVxLmhlYWRlcnNgYCAobm8gbGlzdCBmb3JtIGlzIGF2YWlsYWJsZSBpbiB0aGUgcmVxdWVzdCkuCisKK2BgaG9va3NgYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgbG9jYWxgYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgbWV0aG9kc193aXRoX2JvZGllc2BgOgorICAgIFRoaXMgcmVwcmVzZW50cyBtZXRob2RzIHdoZXJlIENoZXJyeVB5IHdpbGwgYXV0b21hdGljYWxseSB0cnkgdG8KKyAgICByZWFkIHRoZSByZXF1ZXN0IGJvZHkuICBXZWJPYiBsYXppbHkgcmVhZHMgUE9TVCByZXF1ZXN0cyB3aXRoIHRoZQorICAgIGNvcnJlY3QgY29udGVudCB0eXBlLCBhbmQgbm8gb3RoZXIgYm9kaWVzLgorCitgYG5hbWVzcGFjZXNgYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgcHJvdG9jb2xgYDoKKyAgICBBcyBgYHJlcS5lbnZpcm9uWydTRVJWRVJfUFJPVE9DT0wnXWBgCisKK2BgcXVlcnlfc3RyaW5nYGA6CisgICAgQXMgYGByZXEucXVlcnlfc3RyaW5nYGAKKworYGByZW1vdGVgYDoKKyAgICBgYHJlbW90ZS5pcGBgIGlzIGxpa2UgYGByZXEucmVtb3RlX2FkZHJgYC4gIGBgcmVtb3RlLnBvcnRgYCBpcyBub3QKKyAgICBhdmFpbGFibGUuICBgYHJlbW90ZS5uYW1lYGAgaXMgaW4KKyAgICBgYHJlcS5lbnZpcm9uLmdldCgnUkVNT1RFX0hPU1QnKWBgCisKK2BgcmVxdWVzdF9saW5lYGA6CisgICAgTm8gZXF1aXZhbGVudAorCitgYHJlc3BvbmQoKWBgOgorICAgIEEgbWV0aG9kIHRoYXQgaXMgc29tZXdoYXQgc2ltaWxhciB0byBgYHJlcS5nZXRfcmVzcG9uc2UoKWBgLgorCitgYHJmaWxlYGA6CisgICAgYGByZXEuYm9keV9maWxlYGAKKworYGBydW5gYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2Bgc2VydmVyX3Byb3RvY29sYGA6CisgICAgQXMgYGByZXEuZW52aXJvblsnU0VSVkVSX1BST1RPQ09MJ11gYAorCitgYHNob3dfdHJhY2ViYWNrc2BgOgorICAgIE5vIGVxdWl2YWxlbnQKKworYGB0aHJvd19lcnJvcnNgYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgdGhyb3dzYGA6CisgICAgTm8gZXF1aXZhbGVudAorCitgYHRvb2xtYXBzYGA6CisgICAgTm8gZXF1aXZhbGVudAorCitgYHdzZ2lfZW52aXJvbmBgOgorICAgIEFzIGBgcmVxLmVudmlyb25gYAorCitSZXNwb25zZQorLS0tLS0tLS0KKworRnJvbSBpbmZvcm1hdGlvbiBgZnJvbSB0aGUgd2lraQorPGh0dHA6Ly93d3cuY2hlcnJ5cHkub3JnL3dpa2kvUmVzcG9uc2VPYmplY3Q+YF8uCisKK2BgYm9keWBgOgorICAgIFRoaXMgaXMgYW4gaXRlcmFibGUgaW4gQ2hlcnJ5UHksIGEgc3RyaW5nIGluIFdlYk9iOworICAgIGBgcmVzLmFwcF9pdGVyYGAgZ2l2ZXMgYW4gaXRlcmFibGUgaW4gV2ViT2IuCisKK2BgY2hlY2tfdGltZW91dGBgOgorICAgIE5vIGVxdWl2YWxlbnQKKworYGBjb2xsYXBzZV9ib2R5KClgYDoKKyAgICBUaGlzIHR1cm5zIGEgc3RyZWFtL2l0ZXJhdG9yIGJvZHkgaW50byBhIHNpbmdsZSBzdHJpbmcuICBBY2Nlc3NpbmcKKyAgICBgYHJlcy5ib2R5YGAgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHkuCisKK2BgY29va2llYGA6CisgICAgQWNjZXNzaWJsZSB0aHJvdWdoIGBgcmVzLnNldF9jb29raWUoLi4uKWBgLCBgYHJlcy5kZWxldGVfY29va2llYGAsCisgICAgYGByZXMudW5zZXRfY29va2llKClgYAorCitgYGZpbmFsaXplKClgYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgaGVhZGVyX2xpc3RgYDoKKyAgICBJbiBgYHJlcy5oZWFkZXJsaXN0YGAKKworYGBzdHJlYW1gYDoKKyAgICBUaGlzIGNhbiBtYWtlIENoZXJyeVB5IHN0cmVhbSB0aGUgcmVzcG9uc2UgYm9keSBvdXQgZGlyZWN0b3J5LgorICAgIFRoZXJlIGlzIGRpcmVjdCBubyBlcXVpdmFsZW50OyB5b3UgY2FuIHVzZSBhIGR5bmFtaWNhbGx5IGdlbmVyYXRlZAorICAgIGl0ZXJhdG9yIHRvIGRvIHNvbWV0aGluZyBzaW1pbGFyLgorCitgYHRpbWVgYDoKKyAgICBObyBlcXVpdmFsZW50CisKK2BgdGltZWRfb3V0YGA6CisgICAgTm8gZXF1aXZhbGVudAorCitZYXJvCis9PT09CisKK2BZYXJvIDxodHRwOi8vbHVrZWFybm8uY29tL3Byb2plY3RzL3lhcm8vPmBfIGlzIGEgc21hbGwgd3JhcHBlciBhcm91bmQKK3RoZSBXU0dJIGVudmlyb25tZW50LCBtdWNoIGxpa2UgV2ViT2IgaW4gc2NvcGUuCisKK1RoZSBXZWJPYiBvYmplY3RzIGhhdmUgbWFueSBtb3JlIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMuICBUaGUgWWFybworUmVzcG9uc2Ugb2JqZWN0IGlzIGEgbXVjaCBzbWFsbGVyIHN1YnNldCBvZiBXZWJPYidzIFJlc3BvbnNlLgorCitSZXF1ZXN0CistLS0tLS0tCisKK2BgcXVlcnlgYDoKKyAgICBBcyBgYHJlcS5HRVRgYAorCitgYGZvcm1gYDoKKyAgICBBcyBgYHJlcS5QT1NUYGAKKworYGBjb29raWVgYDoKKyAgICBBIGBgU2ltcGxlQ29va2llYGAgb2JqZWN0IGluIFlhcm87IGEgZGljdGlvbmFyeSBpbiBXZWJPYgorICAgIChgYFNpbXBsZUNvb2tpZWBgIGNhbiByZXByZXNlbnQgY29va2llIHBhcmFtZXRlcnMsIGJ1dCBjb29raWUKKyAgICBwYXJhbWV0ZXJzIGFyZSBvbmx5IHNlbnQgd2l0aCByZXNwb25zZXMgbm90IHJlcXVlc3RzKQorCitgYHVyaWBgOgorICAgIFJldHVybnMgYSBVUkkgb2JqZWN0LCBubyBlcXVpdmFsZW50IChvbmx5IHN0cmluZyBVUklzIGF2YWlsYWJsZSkuCisKK2BgcmVkaXJlY3RgYDoKKyAgICBOb3QgYXZhaWxhYmxlIChyZXNwb25zZS1yZWxhdGVkKS4gIGBgd2Vib2IuZXhjLkhUVFBGb3VuZCgpYGAgY2FuCisgICAgYmUgdXNlZnVsIGhlcmUuCisKK2BgZm9yd2FyZCh5YXJvYXBwKWBgLCBgYHdzZ2lfZm9yd2FyZCh3c2dpYXBwKWBgOgorICAgIEF2YWlsYWJsZSB3aXRoIGBgcmVxLmdldF9yZXNwb25zZShhcHApYGAgYW5kCisgICAgYGByZXEuY2FsbF9hcHBsaWNhdGlvbihhcHApYGAuICBJbiBib3RoIGNhc2VzIGl0IGlzIGEgV1NHSQorICAgIGFwcGxpY2F0aW9uIGluIFdlYk9iLCB0aGVyZSBpcyBubyBzcGVjaWFsIGtpbmQgb2YgY29tbXVuaWNhdGlvbjsKKyAgICBgYHJlcS5jYWxsX2FwcGxpY2F0aW9uKClgYCBqdXN0IHJldHVybnMgYSBgYHdlYm9iLlJlc3BvbnNlYGAgb2JqZWN0LgorCitgYHJlc2BgOgorICAgIFRoZSByZXF1ZXN0IG9iamVjdCBpbiBXZWJPYiAqbWF5KiBoYXZlIGEgYGByZXEucmVzcG9uc2VgYAorICAgIGF0dHJpYnV0ZS4KKworV2Vya3pldWcKKz09PT09PT09CisKK0FuIG9mZnNob290IG9mIGBQb2NvbyA8aHR0cDovL3BvY29vLm9yZz5gXywKK3RoaXMgbGlicmFyeSBpcyBiYXNlZCBhcm91bmQgV1NHSSwgc2ltaWxhciB0byBQYXN0ZSBhbmQgWWFyby4KKworVGhpcyBpcyB0YWtlbiBmcm9tIHRoZSBgd3JhcHBlciBkb2N1bWVudGF0aW9uCis8aHR0cDovL3dlcmt6ZXVnLnBvY29vLm9yZy9kb2N1bWVudGF0aW9uL3dyYXBwZXJzPmBfLgorCitSZXF1ZXN0CistLS0tLS0tCisKK3BhdGg6CisgICAgQXMgYGByZXEucGF0aF9pbmZvYGAKK2FyZ3M6CisgICAgQXMgYGByZXEuR0VUYGAKK2Zvcm06CisgICAgQXMgYGByZXEuUE9TVGBgCit2YWx1ZXM6CisgICAgQXMgYGByZXEucGFyYW1zYGAKK2ZpbGVzOgorICAgIEluIGBgcmVxLlBPU1RgYCAoYXMgRmllbGRTdG9yYWdlIG9iamVjdHMpCitkYXRhOgorICAgIEluIGBgcmVxLmJvZHlfZmlsZWBgCisKK1Jlc3BvbnNlCistLS0tLS0tLQorCityZXNwb25zZToKKyAgICBJbiBgYHJlcy5ib2R5YGAgKHNldHRhYmxlIGFzIGBgcmVzLmJvZHlgYCBvciBgYHJlcy5hcHBfaXRlcmBgKQorc3RhdHVzOgorICAgIEluIGBgcmVzLnN0YXR1c19jb2RlYGAKK21pbWV0eXBlOgorICAgIEluIGBgcmVzLmNvbnRlbnRfdHlwZWBgCisKK1pvcGUgMworPT09PT09CisKK0Zyb20gdGhlIFpvcGUgMyBpbnRlcmZhY2VzIGZvciB0aGUgYFJlcXVlc3QKKzxodHRwOi8vYXBpZG9jLnpvcGUub3JnLysrYXBpZG9jKysvSW50ZXJmYWNlL3pvcGUucHVibGlzaGVyLmludGVyZmFjZXMuYnJvd3Nlci5JQnJvd3NlclJlcXVlc3QvaW5kZXguaHRtbD5gXworYW5kIGBSZXNwb25zZQorPGh0dHA6Ly9hcGlkb2Muem9wZS5vcmcvKythcGlkb2MrKy9JbnRlcmZhY2Uvem9wZS5wdWJsaXNoZXIuaW50ZXJmYWNlcy5odHRwLklIVFRQUmVzcG9uc2UvaW5kZXguaHRtbD5gXy4KKworUmVxdWVzdAorLS0tLS0tLQorCitgYGxvY2FsZWBgLCBgYHNldHVwTG9jYWxlKClgYDoKKyAgICBUaGlzIGlzIG5vdCBmdWxseSBjYWxjdWxhdGVkLCBidXQgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIGluCisgICAgYGByZXEuYWNjZXB0X2xhbmd1YWdlc2BgLgorCitgYHByaW5jaXBhbGBgLCBgYHNldFByaW5jaXBhbChwcmluY2lwYWwpYGA6CisgICAgYGByZXEucmVtb3RlX3VzZXJgYCBnaXZlcyB0aGUgdXNlcm5hbWUsIGJ1dCB0aGVyZSBpcyBubyBzdGFuZGFyZAorICAgIHBsYWNlIGZvciBhIHVzZXIgKm9iamVjdCouCisKK2BgcHVibGljYXRpb25gYCwgYGBzZXRQdWJsaWNhdGlvbigpYGAsCisgICAgVGhlc2UgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb2JqZWN0IHB1Ymxpc2hpbmcgc3lzdGVtIGluIFpvcGUuCisgICAgVGhpcyBraW5kIG9mIHB1Ymxpc2hpbmcgc3lzdGVtIGlzIG91dHNpZGUgdGhlIHNjb3BlIG9mIFdlYk9iLgorCitgYHRyYXZlcnNlKG9iamVjdClgYCwgYGBnZXRUcmF2ZXJzYWxTdGFjaygpYGAsIGBgc2V0VHJhdmVyc2FsU3RhY2soKWBgOgorICAgIFRoZXNlIGFsbCByZWxhdGUgdG8gdHJhdmVyc2FsLCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBwdWJsaXNoaW5nCisgICAgc3lzdGVtLgorCitgYHByb2Nlc3NJbnB1dHMoKWBgLCBgYHNldFBhdGhTdWZmaXgoc3RlcHMpYGA6CisgICAgQWxzbyBhc3NvY2lhdGVkIHdpdGggdHJhdmVyc2FsIGFuZCBwcmVwYXJpbmcgdGhlIHJlcXVlc3QuCisKK2BgZW52aXJvbm1lbnRgYDoKKyAgICBJbiBgYHJlcS5lbnZpcm9uYGAKKworYGBib2R5U3RyZWFtYGA6CisgICAgSW4gYGByZXEuYm9keV9maWxlYGAKKworYGBpbnRlcmFjdGlvbmBgOgorICAgIFRoaXMgaXMgdGhlIHNlY3VyaXR5IGNvbnRleHQgZm9yIHRoZSByZXF1ZXN0OyBhbGwgdGhlIHBvc3NpYmxlCisgICAgcGFydGljaXBhbnRzIG9yIHByaW5jaXBhbHMgaW4gdGhlIHJlcXVlc3QuICBUaGVyZSdzIG5vCisgICAgZXF1aXZhbGVudC4KKworYGBhbm5vdGF0aW9uc2BgOgorICAgIEV4dHJhIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVxdWVzdC4gIFRoaXMgd291bGQKKyAgICBnZW5lcmFsbHkgZ28gaW4gY3VzdG9tIGtleXMgb2YgYGByZXEuZW52aXJvbmBgLCBvciBpZiB5b3Ugc2V0CisgICAgYXR0cmlidXRlcyB0aG9zZSBhdHRyaWJ1dGVzIGFyZSBzdG9yZWQgaW4KKyAgICBgYHJlcS5lbnZpcm9uWyd3ZWJvYi5hZGhvY19hdHRycyddYGAuCisKK2BgZGVidWdgYDoKKyAgICBUaGVyZSBpcyBubyBzdGFuZGFyZCBkZWJ1ZyBmbGFnIGZvciBXZWJPYi4KKworYGBfX2dldGl0ZW1fXyhrZXkpYGAsIGBgZ2V0KGtleSlgYCwgZXRjOgorICAgIFRoZXNlIHRyZWF0IHRoZSByZXF1ZXN0IGxpa2UgYSBkaWN0aW9uYXJ5LCB3aGljaCBXZWJPYiBkb2VzIG5vdAorICAgIGRvLiAgVGhleSBzZWVtIHRvIHRha2UgdmFsdWVzIGZyb20gdGhlIGVudmlyb25tZW50LCBub3QKKyAgICBwYXJhbWV0ZXJzLiAgQWxzbyBvbiB0aGUgWm9wZSByZXF1ZXN0IG9iamVjdCBpcyBgYGl0ZW1zKClgYCwKKyAgICBgYF9fY29udGFpbnNfXyhrZXkpYGAsIGBgX19pdGVyX18oKWBgLCBgYGtleXMoKWBgLCBgYF9fbGVuX18oKWBgLAorICAgIGBgdmFsdWVzKClgYC4KKworYGBnZXRQb3NpdGlvbmFsQXJndW1lbnRzKClgYDoKKyAgICBJJ20gbm90IHN1cmUgd2hhdCB0aGUgZXF1aXZhbGVudCB3b3VsZCBiZSwgYXMgdGhlcmUgYXJlIG5vCisgICAgcG9zaXRpb25hbCBhcmd1bWVudHMgZHVyaW5nIGluc3RhbnRpYXRpb24gKGl0IGRvZXNuJ3QgZml0IGludG8KKyAgICBXU0dJKS4gIE1heWJlIGBgd3NnaW9yZy51cmx2YXJzYGA/CisKK2BgcmV0cnkoKWBgLCBgYHN1cHBvcnRzUmV0cnkoKWBgOgorICAgIENyZWF0ZXMgYSBuZXcgcmVxdWVzdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJldHJ5IGEgcmVxdWVzdC4KKyAgICBTaW1pbGFyIHRvIGBgcmVxLmNvcHkoKWBgLgorCitgYGNsb3NlKClgYCwgYGBob2xkKG9iailgYDoKKyAgICBUaGlzIGNsb3NlcyByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXF1ZXN0LCBpbmNsdWRpbmcgYW55CisgICAgImhlbGQiIG9iamVjdHMuICBUaGVyZSdzIG5vdGhpbmcgc2ltaWxhci4KKworUmVzcG9uc2UKKy0tLS0tLS0tCisKK2BgYXV0aFVzZXJgYDoKKyAgICBOb3Qgc3VyZSB3aGF0IHRoaXMgaXMgb3IgZG9lcy4KKworYGByZXNldCgpYGA6CisgICAgTm8gZGlyZWN0IGVxdWl2YWxlbnQ7IHlvdSdkIGhhdmUgdG8gZG8gYGByZXMuaGVhZGVycyA9IFtdOworICAgIHJlcy5ib2R5ID0gJyc7IHJlcy5zdGF0dXMgPSAyMDBgYAorCitgYHNldENvb2tpZShuYW1lLCB2YWx1ZSwgKiprdylgYDoKKyAgICBJcyBgYHJlcy5zZXRfY29va2llKC4uLilgYC4KKworYGBnZXRDb29raWUobmFtZSlgYDoKKyAgICBObyBlcXVpdmFsZW50LiAgSG0uCisKK2BgZXhwaXJlQ29va2llKG5hbWUpYGA6CisgICAgSXMgYGByZXMuZGVsZXRlX2Nvb2tpZShuYW1lKWBgLgorCitgYGFwcGVuZFRvQ29va2llKG5hbWUsIHZhbHVlKWBgOgorICAgIFRoaXMgYXBwZW5kcyB0aGUgdmFsdWUgdG8gYW55IGV4aXN0aW5nIGNvb2tpZSAoc2VwYXJhdGluZyB2YWx1ZXMKKyAgICB3aXRoIGEgY29sb24pLiAgV2ViT2IgZG9lcyBub3QgZG8gdGhpcy4KKworYGBzZXRTdGF0dXMoc3RhdHVzKWBgOgorICAgIEF2YWlsYmxlIGJ5IHNldHRpbmcgYGByZXMuc3RhdHVzYGAgKGNhbiBiZSBzZXQgdG8gYW4gaW50ZWdlciBvciBhCisgICAgc3RyaW5nIG9mICJjb2RlIHJlYXNvbiIpLgorCitgYGdldEhlYWRlcihuYW1lLCBkZWZhdWx0PU5vbmUpYGA6CisgICAgSXMgYGByZXMuaGVhZGVycy5nZXQobmFtZSlgYC4KKworYGBnZXRTdGF0dXMoKWBgOgorICAgIElzIGBgcmVzLnN0YXR1c19jb2RlYGAgKG9yIGBgcmVzLnN0YXR1c2BgIHRvIGluY2x1ZGUgcmVhc29uKQorCitgYGFkZEhlYWRlcihuYW1lLCB2YWx1ZSlgYDoKKyAgICBJcyBgYHJlcy5oZWFkZXJzLmFkZChuYW1lLCB2YWx1ZSlgYCAoaW4gWm9wZSBhbmQgV2ViT2IsIHRoaXMgZG9lcworICAgIG5vdCBjbG9iYmVyIGFueSBwcmV2aW91cyB2YWx1ZSkuCisKK2BgZ2V0SGVhZGVycygpYGA6CisgICAgSXMgYGByZXMuaGVhZGVybGlzdGBgLgorCitgYHNldEhlYWRlcihuYW1lLCB2YWx1ZSlgYDoKKyAgICBJcyBgYHJlcy5oZWFkZXJzW25hbWVdID0gdmFsdWVgYC4KKworYGBnZXRTdGF0dXNTdHJpbmcoKWBgOgorICAgIElzIGBgcmVzLnN0YXR1c2BgLgorCitgYGNvbnN1bWVCb2R5KClgYDoKKyAgICBUaGlzIGNvbnN1bWVzIGFueSBub24tc3RyaW5nIGJvZHkgdG8gdHVybiB0aGUgYm9keSBpbnRvIGEgc2luZ2xlCisgICAgc3RyaW5nLiAgQW55IGFjY2VzcyB0byBgYHJlcy5ib2R5YGAgd2lsbCBkbyB0aGlzIChlLmcuLCB3aGVuIHlvdQorICAgIGhhdmUgc2V0IHRoZSBgYHJlcy5hcHBfaXRlcmBgKS4KKworYGBpbnRlcm5hbEVycm9yKClgYDoKKyAgICBUaGlzIGlzIGF2YWlsYWJsZSB3aXRoIGBgd2Vib2IuZXhjLkhUVFAqKClgYC4KKworYGBoYW5kbGVFeGNlcHRpb24oZXhjX2luZm8pYGA6CisgICAgVGhpcyBpcyBwcm92aWRlZCB3aXRoIGEgdG9vbCBsaWtlIGBgcGFzdGUuZXhjZXB0aW9uc2BgLgorCitgYGNvbnN1bWVCb2R5SXRlcigpYGA6CisgICAgVGhpcyByZXR1cm5zIHRoZSBpdGVyYWJsZSBmb3IgdGhlIGJvZHksIGV2ZW4gaWYgdGhlIGJvZHkgd2FzIGEKKyAgICBzdHJpbmcuICBBbnl0aW1lIHlvdSBhY2Nlc3MgYGByZXMuYXBwX2l0ZXJgYCB5b3Ugd2lsbCBnZXQgYW4KKyAgICBpdGVyYWJsZS4gIGBgcmVzLmJvZHlgYCBhbmQgYGByZXMuYXBwX2l0ZXJgYCBjYW4gYmUgaW50ZXJjaGFuZ2VkCisgICAgYW5kIGFjY2Vzc2VkIGFzIG1hbnkgdGltZXMgYXMgeW91IHdhbnQsIHVubGlrZSB0aGUgWm9wZQorICAgIGVxdWl2YWxlbnRzLgorCitgYHNldFJlc3VsdChyZXN1bHQpYGA6CisgICAgWW91IGNhbiBhY2hpZXZlIHRoZSBzYW1lIHRoaW5nIHRocm91Z2ggYGByZXMuYm9keSA9IHJlc3VsdGBgLCBvcgorICAgIGBgcmVzLmFwcF9pdGVyID0gcmVzdWx0YGAuICBgYHJlcy5ib2R5YGAgYWNjZXB0cyBOb25lLCBhIHVuaWNvZGUKKyAgICBzdHJpbmcgKCppZiogeW91IGhhdmUgc2V0IGEgY2hhcnNldCkgb3IgYSBub3JtYWwgc3RyaW5nLgorICAgIGBgcmVzLmFwcF9pdGVyYGAgb25seSBhY2NlcHRzIE5vbmUgYW5kIGFuIGludGVyYWJsZS4gIFlvdSBjYW4ndAorICAgIHVwZGF0ZSBhbGwgb2YgYSByZXNwb25zZSB3aXRoIG9uZSBjYWxsLgorCisgICAgTGlrZSBpbiBab3BlLCBXZWJPYiB1cGRhdGVzIENvbnRlbnQtTGVuZ3RoLiAgVW5saWtlIFpvcGUsIGl0IGRvZXMKKyAgICBub3QgYXV0b21hdGljYWxseSBjYWxjdWxhdGUgYSBjaGFyc2V0LgorCisKK21vZF9weXRob24KKz09PT09PT09PT0KKworU29tZSBrZXkgYXR0cmlidXRlcyBmcm9tIHRoZSBgbW9kX3B5dGhvbgorPGh0dHA6Ly9tb2RweXRob24ub3JnL2xpdmUvY3VycmVudC9kb2MtaHRtbC9weWFwaS1tcHJlcXVlc3QtbWVtLmh0bWw+YF8KK3JlcXVlc3Qgb2JqZWN0LgorCitSZXF1ZXN0CistLS0tLS0tCisKK2BgcmVxLnVyaWBgOgorICAgIEluIGBgcmVxLnBhdGhgYC4KKworYGByZXEudXNlcmBgOgorICAgIEluIGBgcmVxLnJlbW90ZV91c2VyYGAuCisKK2BgcmVxLmdldF9yZW1vdGVfaG9zdCgpYGA6CisgICAgSW4gYGByZXEuZW52aXJvblsnUkVNT1RFX0FERFInXWBgIG9yIGBgcmVxLnJlbW90ZV9hZGRyYGAuCisKK2BgcmVxLmhlYWRlcnNfaW4uZ2V0KCdyZWZlcmVyJylgYDoKKyAgICBJbiBgYHJlcS5oZWFkZXJzLmdldCgncmVmZXJlcicpYGAgb3IgYGByZXEucmVmZXJlcmBgIChzYW1lIHBhdHRlcm4KKyAgICBmb3Igb3RoZXIgcmVxdWVzdCBoZWFkZXJzLCBwcmVzdW1hYmx5KS4KKworUmVzcG9uc2UKKy0tLS0tLS0tCisKK2BgdXRpbC5yZWRpcmVjdGBgIG9yIGBgcmVxLnN0YXR1cyA9IGFwYWNoZS5IVFRQX01PVkVEX1RFTVBPUkFSSUxZYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gd2Vib2IuZXhjIGltcG9ydCBIVFRQVGVtcG9yYXJ5UmVkaXJlY3QKKyAgICBleGMgPSBIVFRQVGVtcG9yYXJ5UmVkaXJlY3QobG9jYXRpb249dXJsKQorICAgIHJldHVybiBleGMoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2BgcmVxLmNvbnRlbnRfdHlwZSA9ICJhcHBsaWNhdGlvbi94LWNzdiJgYCBhbmQKK2BgcmVxLmhlYWRlcnNfb3V0LmFkZCgnQ29udGVudC1EaXNwb3NpdGlvbicsICdhdHRhY2htZW50O2ZpbGVuYW1lPXNvbWVmaWxlLmNzdicpYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIHJlcyA9IHJlcS5SZXNwb25zZUNsYXNzKCkKKyAgICByZXMuY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL3gtY3N2JworICAgIHJlcy5oZWFkZXJzLmFkZCgnQ29udGVudC1EaXNwb3NpdGlvbicsICdhdHRhY2htZW50O2ZpbGVuYW1lPXNvbWVmaWxlLmNzdicpCisgICAgcmV0dXJuIHJlcyhlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKword2ViYXBwIFJlc3BvbnNlCis9PT09PT09PT09PT09PT0KKworVGhlIEdvb2dsZSBBcHAgRW5naW5lIGB3ZWJhcHAKKzxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzL3B5dGhvbi90b29scy93ZWJhcHAvPmBfCitmcmFtZXdvcmsgdXNlcyB0aGUgV2ViT2IgUmVxdWVzdCBvYmplY3QsIGJ1dCBkb2VzIG5vdCB1c2UgaXRzIFJlc3BvbnNlCitvYmplY3QuCisKK1RoZSBjb25zdHJ1Y3RvciBmb3IgYGB3ZWJhcHAuUmVzcG9uc2VgYCBkb2VzIG5vdCB0YWtlIGFueSBhcmd1bWVudHMuCitUaGUgcmVzcG9uc2UgaXMgY3JlYXRlZCBieSB0aGUgZnJhbWV3b3JrLCBzbyB5b3UgZG9uJ3QgdXNlIGl0IGxpa2UKK2BgcmV0dXJuIFJlc3BvbnNlKC4uLilgYCwgaW5zdGVhZCB5b3UgdXNlIGBgc2VsZi5yZXNwb25zZWBgLiAgQWxzbyB0aGUKK3Jlc3BvbnNlIG9iamVjdCBhdXRvbWF0aWNhbGx5IGhhcyBgYENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlYGAgc2V0LAord2hpbGUgdGhlIFdlYk9iIHJlc3BvbnNlIGRvZXMgbm90IHNldCBhbnkgY2FjaGUgaGVhZGVycy4KKworYGByZXNwLnNldF9zdGF0dXMoY29kZSwgbWVzc2FnZT1Ob25lKWBgOgorICAgIFRoaXMgaXMgaGFuZGxlZCBieSBzZXR0aW5nIHRoZSBgYHJlc3Auc3RhdHVzYGAgYXR0cmlidXRlLgorCitgYHJlc3AuY2xlYXIoKWBgOgorICAgIFlvdSdkIGRvIGBgcmVzcC5ib2R5ID0gIiJgYAorCitgYHJlc3Aud3NnaV93cml0ZShzdGFydF9yZXNwb25zZSlgYDoKKyAgICBUaGlzIHdyaXRlcyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhlIGBgc3RhcnRfcmVzcG9uc2VgYCBjYWxsYmFjaywKKyAgICBhbmQgdXNpbmcgdGhlIGBgc3RhcnRfcmVzcG9uc2VgYCB3cml0ZXIuICBUaGUgV2ViT2IgcmVzcG9uc2UKKyAgICBvYmplY3QgaXMgY2FsbGVkIGFzIGEgV1NHSSBhcHAgKGBgcmVzcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSlgYCkKKyAgICB0byBkbyB0aGUgZXF1aXZhbGVudC4KKworYGByZXNwLm91dC53cml0ZSh0ZXh0KWBgOgorICAgIFRoaXMgd3JpdGVzIHRvIGFuIGludGVybmFsIGBgU3RyaW5nSU9gYCBpbnN0YW5jZSBvZiB0aGUgcmVzcG9uc2UuCisgICAgVGhpcyB1c2VzIHRoZSBhYmlsaXR5IG9mIHRoZSBzdGFuZGFyZCBTdHJpbmdJTyBvYmplY3QgdG8gaG9sZAorICAgIGVpdGhlciB1bmljb2RlIG9yIGBgc3RyYGAgdGV4dCwgYW5kIHNvIGxvbmcgYXMgeW91IGFyZSBhbHdheXMKKyAgICBjb25zaXN0ZW50IGl0IHdpbGwgZW5jb2RlIHlvdXIgY29udGVudCAoYnV0IGl0IGRvZXMgbm90IHJlc3BlY3QKKyAgICB5b3VyIHByZWZlcnJlZCBlbmNvZGluZywgaXQgYWx3YXlzIHVzZXMgVVRGLTgpLiAgVGhlIFdlYk9iIG1ldGhvZAorICAgIGBgcmVzcC53cml0ZSh0ZXh0KWBgIGlzIGJhc2ljYWxseSBlcXVpdmFsZW50LCBhbmQgYWxzbyBhY2NlcHRzCisgICAgdW5pY29kZSAodXNpbmcgYGByZXNwLmNoYXJzZXRgYCBmb3IgdGhlIGVuY29kaW5nKS4gIFlvdSBjYW4gYWxzbworICAgIHdyaXRlIHRvIGBgcmVzcC5ib2R5X2ZpbGVgYCwgYnV0IGl0IGRvZXMgbm90IGFsbG93IHVuaWNvZGUuCisKK0Jlc2lkZXMgZXhwb3NpbmcgYSBgYC5oZWFkZXJzYGAgYXR0cmlidXRlIChiYXNlZCBvbgorYHdzZ2lyZWYuaGVhZGVycy5IZWFkZXJzCis8aHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L3dzZ2lyZWYuaHRtbCN3c2dpcmVmLmhlYWRlcnMuSGVhZGVycz5gXykKK3RoZXJlIGlzIG5vIG90aGVyIEFQSSBmb3IgdGhlIHdlYmFwcCByZXNwb25zZSBvYmplY3QuICBUaGlzIG1lYW5zIHRoZQorcmVzcG9uc2UgbGFja3M6CisKKyogQSB1c2VmdWxseSByZWFkYWJsZSBib2R5IG9yIHN0YXR1cy4KKyogQSB1c2VmdWwgY29uc3RydWN0b3IgdGhhdCBtYWtlcyBpdCBlYXN5IHRvIHRyZWF0IHJlc3BvbnNlcyBsaWtlCisgIG9iamVjdHMuCisqIFByb3ZpZGluZyBhIG5vbi1zdHJpbmcgYGBhcHBfaXRlcmBgIGZvciB0aGUgYm9keSAobGlrZSBhIGdlbmVyYXRvcikuCisqIFBhcnNpbmcgb2YgdGhlIENvbnRlbnQtVHlwZSBjaGFyc2V0LgorKiBHZXR0ZXIvc2V0dGVycyBmb3IgcGFyc2VkIGZvcm1zIG9mIGhlYWRlcnMsIHNwZWNpZmljYWxseQorICBjYWNoZV9jb250cm9sIGFuZCBsYXN0X21vZGlmaWVkLgorKiBUaGUgYGBjYWNoZV9leHBpcmVzYGAgbWV0aG9kCisqIGBgc2V0X2Nvb2tpZWBgLCBgYGRlbGV0ZV9jb29raWVgYCwgYW5kIGBgdW5zZXRfY29va2llYGAuICBJbnN0ZWFkCisgIHlvdSBoYXZlIHRvIHNpbXBseSBtYW51YWxseSBzZXQgdGhlIFNldC1Db29raWUgaGVhZGVyLgorKiBgYGVuY29kZV9jb250ZW50YGAgYW5kIGBgZGVjb2RlX2NvbnRlbnRgYCBmb3IgaGFuZGxpbmcgZ3ppcCBlbmNvZGluZy4KKyogYGBtZDVfZXRhZygpYGAgZm9yIGdlbmVyYXRpbmcgYW4gZXRhZyBmcm9tIHRoZSBib2R5LgorKiBDb25kaXRpb25hbCByZXNwb25zZXMgdGhhdCB3aWxsIHJldHVybiAzMDQgYmFzZWQgb24gdGhlIHJlc3BvbnNlIGFuZAorICByZXF1ZXN0IGhlYWRlcnMuCisqIFRoZSBhYmlsaXR5IHRvIHNlcnZlIFJhbmdlIHJlcXVlc3QgYXV0b21hdGljYWxseS4KKworUEhQCis9PT0KKworUEhQIGRvZXMgbm90IGhhdmUgYW55dGhpbmcgcmVhbGx5IHJlc2VtYmxpbmcgYSByZXF1ZXN0IGFuZCByZXNwb25zZQorb2JqZWN0LiAgSW5zdGVhZCB0aGVzZSBhcmUgZW5jb2RlZCBpbiBhIHNldCBvZiBnbG9iYWwgb2JqZWN0cyBmb3IgdGhlCityZXF1ZXN0IGFuZCBmdW5jdGlvbnMgZm9yIHRoZSByZXNwb25zZS4KKworYGAkX1BPU1RgYCwgYGAkX0dFVGBgLCBgYCRfRklMRVNgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGVzZSByZXByZXNlbnQgYGByZXEuUE9TVGBgIGFuZCBgYHJlcS5HRVRgYC4KKworUEhQIHVzZXMgdGhlIHZhcmlhYmxlIG5hbWVzIHRvIHRlbGwgd2hldGhlciBhIHZhcmlhYmxlIGNhbiBob2xkCittdWx0aXBsZSB2YWx1ZXMuICBGb3IgaW5zdGFuY2UgYGAkX1BPU1RbJ25hbWVbXSddYGAsIHdoaWNoIHdpbGwgYmUgYW4KK2FycmF5LiAgSW4gV2ViT2IgYW55IHZhcmlhYmxlIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgYW5kIHlvdSBjYW4KK2dldCB0aGVzZSB0aHJvdWdoIGBgcmVxLlBPU1QuZ2V0YWxsKCduYW1lJylgYC4KKworVGhlIGZpbGVzIGluIGBgJF9GSUxFU2BgIGFyZSBzaW1wbHkgaW4gYGByZXEuUE9TVGBgIGluIFdlYk9iLCBhcworRmllbGRTdG9yYWdlIGluc3RhbmNlcy4KKworYGAkX0NPT0tJRVNgYAorLS0tLS0tLS0tLS0tLQorCitUaGlzIGlzIGluIGBgcmVxLmNvb2tpZXNgYC4KKworYGAkX1NFUlZFUmBgLCBgYCRfUkVRVUVTVGBgLCBgYCRfRU5WYGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXNlIGFyZSBhbGwgaW4gYGByZXEuZW52aXJvbmBgLiAgVGhlc2UgYXJlIG5vdCBzcGxpdCB1cCBsaWtlIHRoZXkKK2FyZSBpbiBQSFAsIGl0J3MgYWxsIGp1c3Qgb25lIGRpY3Rpb25hcnkuICBFdmVyeXRoaW5nIHRoYXQgd291bGQKK3R5cGljYWxseSBiZSBpbiBgYCRfRU5WYGAgaXMgdGVjaG5pY2FsbHkgb3B0aW9uYWwsIGFuZCBvdXRzaWRlIG9mIGEKK2NvdXBsZSBDR0ktc3RhbmRhcmQga2V5cyBpbiBgYCRfU0VSVkVSYGAgbW9zdCBvZiB0aG9zZSBhcmUgYWxzbworb3B0aW9uYWwsIGJ1dCBpdCBpcyBjb21tb24gZm9yIFdTR0kgc2VydmVycyB0byBwb3B1bGF0ZSB0aGUgcmVxdWVzdAord2l0aCBzaW1pbGFyIGluZm9ybWF0aW9uIGFzIFBIUC4KKworYGAkSFRUUF9SQVdfUE9TVF9EQVRBYGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgY29udGFpbnMgdGhlIHVucGFyc2VkIGRhdGEgaW4gdGhlIHJlcXVlc3QgYm9keS4gIFRoaXMgaXMgaW4KK2BgcmVxLmJvZHlgYC4KKworVGhlIHJlc3BvbnNlCistLS0tLS0tLS0tLS0KKworUmVzcG9uc2UgaGVhZGVycyBpbiBQSFAgYXJlIHNlbnQgd2l0aCBgYGhlYWRlcigiSGVhZGVyLU5hbWU6Cit2YWx1ZSIpYGAuICBJbiBXZWJPYiB0aGVyZSBpcyBhIGRpY3Rpb25hcnkgaW4gYGByZXNwLmhlYWRlcnNgYCB0aGF0CitjYW4gaGF2ZSB2YWx1ZXMgc2V0OyB0aGUgaGVhZGVycyBhcmVuJ3QgYWN0dWFsbHkgc2VudCB1bnRpbCB5b3Ugc2VuZAordGhlIHJlc3BvbnNlLiAgWW91IGNhbiBhZGQgaGVhZGVycyB3aXRob3V0IG92ZXJ3cml0aW5nICh0aGUgZXF1aXZhbGVudAorb2YgYGBoZWFkZXIoIi4uLiIsIGZhbHNlKWBgKSB3aXRoIGBgcmVzcC5oZWFkZXJzLmFkZCgnSGVhZGVyLU5hbWUnLAorJ3ZhbHVlJylgYC4KKworVGhlIHN0YXR1cyBpbiBQSFAgaXMgc2VudCB3aXRoIGBgaHR0cF9zZW5kX3N0YXR1cyhjb2RlKWBgLiAgSW4gV2ViT2IKK3RoaXMgaXMgYGByZXNwLnN0YXR1cyA9IGNvZGVgYC4KKworVGhlIGJvZHkgaW4gUEhQIGlzIHNlbnQgaW1wbGljaXRseSB0aHJvdWdoIHRoZSByZW5kZXJpbmcgb2YgdGhlIFBIUAorYm9keSAob3Igd2l0aCBgYGVjaG9gYCBvciBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgc2VuZCBvdXRwdXQpLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvZG8taXQteW91cnNlbGYudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvZG8taXQteW91cnNlbGYudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiN2M4ODIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9kby1pdC15b3Vyc2VsZi50eHQKQEAgLTAsMCArMSw1ODAgQEAKK0Fub3RoZXIgRG8tSXQtWW91cnNlbGYgRnJhbWV3b3JrCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBjb250ZW50czo6CisKK0ludHJvZHVjdGlvbiBhbmQgQXVkaWVuY2UKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSXQncyBiZWVuIG92ZXIgdHdvIHllYXJzIHNpbmNlIEkgd3JvdGUgdGhlIGBmaXJzdCB2ZXJzaW9uIG9mIHRoaXMgdHV0b3JpYWwgPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvZG8taXQteW91cnNlbGYtZnJhbWV3b3JrLmh0bWw+YF8uICBJIGRlY2lkZWQgdG8gZ2l2ZSBpdCBhbm90aGVyIHJ1biB3aXRoIHNvbWUgb2YgdGhlIHRvb2xzIHRoYXQgaGF2ZSBjb21lIGFib3V0IHNpbmNlIHRoZW4gKHBhcnRpY3VsYXJseSBgV2ViT2IgPGh0dHA6Ly93ZWJvYi5vcmcvPmBfKS4KKworU29tZXRpbWVzIFB5dGhvbiBpcyBhY2N1c2VkIG9mIGhhdmluZyB0b28gbWFueSB3ZWIgZnJhbWV3b3Jrcy4gIEFuZCBpdCdzIHRydWUsIHRoZXJlIGFyZSBhIGxvdC4gIFRoYXQgc2FpZCwgSSB0aGluayB3cml0aW5nIGEgZnJhbWV3b3JrIGlzIGEgdXNlZnVsIGV4ZXJjaXNlLiAgSXQgZG9lc24ndCBsZXQgeW91IHNraXAgb3ZlciB0b28gbXVjaCB3aXRob3V0IHVuZGVyc3RhbmRpbmcgaXQuICBJdCByZW1vdmVzIHRoZSBtYWdpYy4gIFNvIGV2ZW4gaWYgeW91IGdvIG9uIHRvIHVzZSBhbm90aGVyIGV4aXN0aW5nIGZyYW1ld29yayAod2hpY2ggSSdkIHByb2JhYmx5IGFkdmlzZSB5b3UgZG8pLCB5b3UnbGwgYmUgYWJsZSB0byB1bmRlcnN0YW5kIGl0IGJldHRlciBpZiB5b3UndmUgd3JpdHRlbiBzb21ldGhpbmcgbGlrZSBpdCBvbiB5b3VyIG93bi4KKworVGhpcyB0dXRvcmlhbCBzaG93cyB5b3UgaG93IHRvIGNyZWF0ZSBhIHdlYiBmcmFtZXdvcmsgb2YgeW91ciBvd24sIHVzaW5nIFdTR0kgYW5kIFdlYk9iLiAgTm8gb3RoZXIgbGlicmFyaWVzIHdpbGwgYmUgdXNlZC4KKworRm9yIHRoZSBsb25nZXIgc2VjdGlvbnMgSSB3aWxsIHRyeSB0byBleHBsYWluIGFueSB0cmlja3kgcGFydHMgb24gYSBsaW5lLWJ5IGxpbmUgYmFzaXMgZm9sbG93aW5nIHRoZSBleGFtcGxlLgorCitXaGF0IElzIFdTR0k/CistLS0tLS0tLS0tLS0tCisKK0F0IGl0cyBzaW1wbGVzdCBXU0dJIGlzIGFuIGludGVyZmFjZSBiZXR3ZWVuIHdlYiBzZXJ2ZXJzIGFuZCB3ZWIgYXBwbGljYXRpb25zLiAgV2UnbGwgZXhwbGFpbiB0aGUgbWVjaGFuaWNzIG9mIFdTR0kgYmVsb3csIGJ1dCBhIGhpZ2hlciBsZXZlbCB2aWV3IGlzIHRvIHNheSB0aGF0IFdTR0kgbGV0cyBjb2RlIHBhc3MgYXJvdW5kIHdlYiByZXF1ZXN0cyBpbiBhIGZhaXJseSBmb3JtYWwgd2F5LiAgVGhhdCdzIHRoZSBzaW1wbGVzdCBzdW1tYXJ5LCBidXQgdGhlcmUgaXMgbW9yZSAtLSBXU0dJIGxldHMgeW91IGFkZCBhbm5vdGF0aW9uIHRvIHRoZSByZXF1ZXN0LCBhbmQgYWRkcyBzb21lIG1vcmUgbWV0YWRhdGEgdG8gdGhlIHJlcXVlc3QuCisKK1dTR0kgbW9yZSBzcGVjaWZpY2FsbHkgaXMgbWFkZSB1cCBvZiBhbiAqYXBwbGljYXRpb24qIGFuZCBhICpzZXJ2ZXIqLiAgVGhlIGFwcGxpY2F0aW9uIGlzIGEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyB0aGUgcmVxdWVzdCBhbmQgcHJvZHVjZXMgdGhlIHJlc3BvbnNlLiAgVGhlIHNlcnZlciBpcyB0aGUgdGhpbmcgdGhhdCBjYWxscyB0aGUgYXBwbGljYXRpb24gZnVuY3Rpb24uCisKK0EgdmVyeSBzaW1wbGUgYXBwbGljYXRpb24gbG9va3MgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gZGVmIGFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAuLi4gICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LVR5cGUnLCAndGV4dC9odG1sJyldKQorICAgIC4uLiAgICAgcmV0dXJuIFsnSGVsbG8gV29ybGQhJ10KKworVGhlIGBgZW52aXJvbmBgIGFyZ3VtZW50IGlzIGEgZGljdGlvbmFyeSB3aXRoIHZhbHVlcyBsaWtlIHRoZSBlbnZpcm9ubWVudCBpbiBhIENHSSByZXF1ZXN0LiAgVGhlIGhlYWRlciBgYEhvc3Q6YGAsIGZvciBpbnN0YW5jZSwgZ29lcyBpbiBgYGVudmlyb25bJ0hUVFBfSE9TVCddYGAuICBUaGUgcGF0aCBpcyBpbiBgYGVudmlyb25bJ1NDUklQVF9OQU1FJ11gYCAod2hpY2ggaXMgdGhlIHBhdGggbGVhZGluZyAqdXAgdG8qIHRoZSBhcHBsaWNhdGlvbiksIGFuZCBgYGVudmlyb25bJ1BBVEhfSU5GTyddYGAgKHRoZSByZW1haW5pbmcgcGF0aCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgaW50ZXJwcmV0KS4KKworV2Ugd29uJ3QgZm9jdXMgbXVjaCBvbiB0aGUgc2VydmVyLCBidXQgd2Ugd2lsbCB1c2UgV2ViT2IgdG8gaGFuZGxlIHRoZSBhcHBsaWNhdGlvbi4gIFdlYk9iIGluIGEgd2F5IGhhcyBhIHNpbXBsZSBzZXJ2ZXIgaW50ZXJmYWNlLiAgVG8gdXNlIGl0IHlvdSBjcmVhdGUgYSBuZXcgcmVxdWVzdCB3aXRoIGBgcmVxID0gd2Vib2IuUmVxdWVzdC5ibGFuaygnaHR0cDovL2xvY2FsaG9zdC90ZXN0JylgYCwgYW5kIHRoZW4gY2FsbCB0aGUgYXBwbGljYXRpb24gd2l0aCBgYHJlc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcClgYC4gIEZvciBleGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gZnJvbSB3ZWJvYiBpbXBvcnQgUmVxdWVzdAorICAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCdodHRwOi8vbG9jYWxob3N0L3Rlc3QnKQorICAgID4+PiByZXNwID0gcmVxLmdldF9yZXNwb25zZShhcHBsaWNhdGlvbikKKyAgICA+Pj4gcHJpbnQgcmVzcAorICAgIDIwMCBPSworICAgIENvbnRlbnQtVHlwZTogdGV4dC9odG1sCisgICAgPEJMQU5LTElORT4KKyAgICBIZWxsbyBXb3JsZCEKKworVGhpcyBpcyBhbiBlYXN5IHdheSB0byB0ZXN0IGFwcGxpY2F0aW9ucywgYW5kIHdlJ2xsIHVzZSBpdCB0byB0ZXN0IHRoZSBmcmFtZXdvcmsgd2UncmUgY3JlYXRpbmcuCisKK0Fib3V0IFdlYk9iCistLS0tLS0tLS0tLQorCitXZWJPYiBpcyBhIGxpYnJhcnkgdG8gY3JlYXRlIGEgcmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0LiAgSXQncyBjZW50ZXJlZCBhcm91bmQgdGhlIFdTR0kgbW9kZWwuICBSZXF1ZXN0cyBhcmUgd3JhcHBlcnMgYXJvdW5kIHRoZSBlbnZpcm9ubWVudC4gIEZvciBleGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVxID0gUmVxdWVzdC5ibGFuaygnaHR0cDovL2xvY2FsaG9zdC90ZXN0JykKKyAgICA+Pj4gcmVxLmVudmlyb25bJ0hUVFBfSE9TVCddCisgICAgJ2xvY2FsaG9zdDo4MCcKKyAgICA+Pj4gcmVxLmhvc3QKKyAgICAnbG9jYWxob3N0OjgwJworICAgID4+PiByZXEucGF0aF9pbmZvCisgICAgJy90ZXN0JworCitSZXNwb25zZXMgYXJlIG9iamVjdHMgdGhhdCByZXByZXNlbnQgdGhlLi4uIHdlbGwsIHJlc3BvbnNlLiAgVGhlIHN0YXR1cywgaGVhZGVycywgYW5kIGJvZHk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBmcm9tIHdlYm9iIGltcG9ydCBSZXNwb25zZQorICAgID4+PiByZXNwID0gUmVzcG9uc2UoYm9keT0nSGVsbG8gV29ybGQhJykKKyAgICA+Pj4gcmVzcC5jb250ZW50X3R5cGUKKyAgICAndGV4dC9odG1sJworICAgID4+PiByZXNwLmNvbnRlbnRfdHlwZSA9ICd0ZXh0L3BsYWluJworICAgID4+PiBwcmludCByZXNwCisgICAgMjAwIE9LCisgICAgQ29udGVudC1MZW5ndGg6IDEyCisgICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CisgICAgPEJMQU5LTElORT4KKyAgICBIZWxsbyBXb3JsZCEKKworUmVzcG9uc2VzIGFsc28gaGFwcGVuIHRvIGJlIFdTR0kgYXBwbGljYXRpb25zLiAgVGhhdCBtZWFucyB5b3UgY2FuIGNhbGwgYGByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKWBgLiAgT2YgY291cnNlIGl0J3MgbXVjaCBsZXNzICpkeW5hbWljKiB0aGFuIGEgbm9ybWFsIFdTR0kgYXBwbGljYXRpb24uCisKK1RoZXNlIHR3byBwaWVjZXMgc29sdmUgYSBsb3Qgb2YgdGhlIG1vcmUgdGVkaW91cyBwYXJ0cyBvZiBtYWtpbmcgYSBmcmFtZXdvcmsuICBUaGV5IGRlYWwgd2l0aCBwYXJzaW5nIG1vc3QgSFRUUCBoZWFkZXJzLCBnZW5lcmF0aW5nIHZhbGlkIHJlc3BvbnNlcywgYW5kIGEgbnVtYmVyIG9mIHVuaWNvZGUgaXNzdWVzLgorCitTZXJ2aW5nIFlvdXIgQXBwbGljYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGlsZSB3ZSBjYW4gdGVzdCB0aGUgYXBwbGljYXRpb24gdXNpbmcgV2ViT2IsIHlvdSBtaWdodCB3YW50IHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbi4gIEhlcmUncyB0aGUgYmFzaWMgcmVjaXBlLCB1c2luZyB0aGUgYFBhc3RlIDxodHRwOi8vcHl0aG9ucGFzdGUub3JnPmBfIEhUVFAgc2VydmVyOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICAgICBmcm9tIHBhc3RlIGltcG9ydCBodHRwc2VydmVyCisgICAgICAgIGh0dHBzZXJ2ZXIuc2VydmUoYXBwLCBob3N0PScxMjcuMC4wLjEnLCBwb3J0PTgwODApCisKK3lvdSBjb3VsZCBhbHNvIHVzZSBgd3NnaXJlZiA8aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3dzZ2lyZWYuaHRtbCNtb2R1bGUtd3NnaXJlZi5zaW1wbGVfc2VydmVyPmBfIGZyb20gdGhlIHN0YW5kYXJkIGxpYnJhcnksIGJ1dCB0aGlzIGlzIG1vc3RseSBhcHByb3ByaWF0ZSBmb3IgdGVzdGluZyBhcyBpdCBpcyBzaW5nbGUtdGhyZWFkZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIGZyb20gd3NnaXJlZi5zaW1wbGVfc2VydmVyIGltcG9ydCBtYWtlX3NlcnZlcgorICAgICAgICBzZXJ2ZXIgPSBtYWtlX3NlcnZlcignMTI3LjAuMC4xJywgODA4MCwgYXBwKQorICAgICAgICBzZXJ2ZXIuc2VydmVfZm9yZXZlcigpCisKK01ha2luZyBBIEZyYW1ld29yaworLS0tLS0tLS0tLS0tLS0tLS0tCisKK1dlbGwsIG5vdyB3ZSBuZWVkIHRvIHN0YXJ0IHdvcmsgb24gb3VyIGZyYW1ld29yay4KKworSGVyZSdzIHRoZSBiYXNpYyBtb2RlbCB3ZSdsbCBiZSBjcmVhdGluZzoKKworKiBXZSdsbCBkZWZpbmUgcm91dGVzIHRoYXQgcG9pbnQgdG8gY29udHJvbGxlcnMKKworKiBXZSdsbCBjcmVhdGUgYSBzaW1wbGUgZnJhbWV3b3JrIGZvciBjcmVhdGluZyBjb250cm9sbGVycworCitSb3V0aW5nCistLS0tLS0tCisKK1dlJ2xsIHVzZSBleHBsaWNpdCByb3V0ZXMgdXNpbmcgVVJJIHRlbXBsYXRlcyAobWludXMgdGhlIGRvbWFpbnMpIHRvIG1hdGNoIHBhdGhzLiAgV2UnbGwgYWRkIGEgbGl0dGxlIGV4dGVuc2lvbiB0aGF0IHlvdSBjYW4gdXNlIGBge25hbWU6cmVndWxhciBleHByZXNzaW9ufWBgLCB3aGVyZSB0aGUgbmFtZWQgc2VnbWVudCBtdXN0IHRoZW4gbWF0Y2ggdGhhdCByZWd1bGFyIGV4cHJlc3Npb24uICBUaGUgbWF0Y2hlcyB3aWxsIGluY2x1ZGUgYSAiY29udHJvbGxlciIgdmFyaWFibGUsIHdoaWNoIHdpbGwgYmUgYSBzdHJpbmcgbGlrZSAibW9kdWxlX25hbWU6ZnVuY3Rpb25fbmFtZSIuICBGb3Igb3VyIGV4YW1wbGVzIHdlJ2xsIHVzZSBhIHNpbXBsZSBibG9nLgorCitTbyBoZXJlJ3Mgd2hhdCBhIHJvdXRlIHdvdWxkIGxvb2sgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgYXBwID0gUm91dGVyKCkKKyAgICBhcHAuYWRkX3JvdXRlKCcvJywgY29udHJvbGxlcj0nY29udHJvbGxlcnM6aW5kZXgnKQorICAgIGFwcC5hZGRfcm91dGUoJy97eWVhcjpcZFxkXGRcZH0vJywKKyAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXI9J2NvbnRyb2xsZXJzOmFyY2hpdmUnKQorICAgIGFwcC5hZGRfcm91dGUoJy97eWVhcjpcZFxkXGRcZH0ve21vbnRoOlxkXGR9LycsCisgICAgICAgICAgICAgICAgICBjb250cm9sbGVyPSdjb250cm9sbGVyczphcmNoaXZlJykKKyAgICBhcHAuYWRkX3JvdXRlKCcve3llYXI6XGRcZFxkXGR9L3ttb250aDpcZFxkfS97c2x1Z30nLAorICAgICAgICAgICAgICAgICAgY29udHJvbGxlcj0nY29udHJvbGxlcnM6dmlldycpCisgICAgYXBwLmFkZF9yb3V0ZSgnL3Bvc3QnLCBjb250cm9sbGVyPSdjb250cm9sbGVyczpwb3N0JykKKworVG8gZG8gdGhpcyB3ZSdsbCBuZWVkIGEgY291cGxlIHBpZWNlczoKKworKiBTb21ldGhpbmcgdG8gbWF0Y2ggdGhvc2UgVVJJIHRlbXBsYXRlIHRoaW5ncy4KKyogU29tZXRoaW5nIHRvIGxvYWQgdGhlIGNvbnRyb2xsZXIKKyogVGhlIG9iamVjdCB0byBwYXRjaCB0aGVtIHRvZ2V0aGVyIChgYFJvdXRlcmBgKQorCitSb3V0aW5nOiBUZW1wbGF0ZXMKK35+fn5+fn5+fn5+fn5+fn5+fgorCitUbyBkbyB0aGUgbWF0Y2hpbmcsIHdlJ2xsIGNvbXBpbGUgdGhvc2UgdGVtcGxhdGVzIHRvIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKyAgIDpsaW5lbm9zOgorCisgICAgPj4+IGltcG9ydCByZQorICAgID4+PiB2YXJfcmVnZXggPSByZS5jb21waWxlKHInJycKKyAgICAuLi4gICAgIFx7ICAgICAgICAgICMgVGhlIGV4YWN0IGNoYXJhY3RlciAieyIKKyAgICAuLi4gICAgIChcdyspICAgICAgICMgVGhlIHZhcmlhYmxlIG5hbWUgKHJlc3RyaWN0ZWQgdG8gYS16LCAwLTksIF8pCisgICAgLi4uICAgICAoPzo6KFtefV0rKSk/ICMgVGhlIG9wdGlvbmFsIDpyZWdleCBwYXJ0CisgICAgLi4uICAgICBcfSAgICAgICAgICAjIFRoZSBleGFjdCBjaGFyYWN0ZXIgIn0iCisgICAgLi4uICAgICAnJycsIHJlLlZFUkJPU0UpCisgICAgPj4+IGRlZiB0ZW1wbGF0ZV90b19yZWdleCh0ZW1wbGF0ZSk6CisgICAgLi4uICAgICByZWdleCA9ICcnCisgICAgLi4uICAgICBsYXN0X3BvcyA9IDAKKyAgICAuLi4gICAgIGZvciBtYXRjaCBpbiB2YXJfcmVnZXguZmluZGl0ZXIodGVtcGxhdGUpOgorICAgIC4uLiAgICAgICAgIHJlZ2V4ICs9IHJlLmVzY2FwZSh0ZW1wbGF0ZVtsYXN0X3BvczptYXRjaC5zdGFydCgpXSkKKyAgICAuLi4gICAgICAgICB2YXJfbmFtZSA9IG1hdGNoLmdyb3VwKDEpCisgICAgLi4uICAgICAgICAgZXhwciA9IG1hdGNoLmdyb3VwKDIpIG9yICdbXi9dKycKKyAgICAuLi4gICAgICAgICBleHByID0gJyg/UDwlcz4lcyknICUgKHZhcl9uYW1lLCBleHByKQorICAgIC4uLiAgICAgICAgIHJlZ2V4ICs9IGV4cHIKKyAgICAuLi4gICAgICAgICBsYXN0X3BvcyA9IG1hdGNoLmVuZCgpCisgICAgLi4uICAgICByZWdleCArPSByZS5lc2NhcGUodGVtcGxhdGVbbGFzdF9wb3M6XSkKKyAgICAuLi4gICAgIHJlZ2V4ID0gJ14lcyQnICUgcmVnZXgKKyAgICAuLi4gICAgIHJldHVybiByZWdleAorCisqKmxpbmUgMjoqKiBIZXJlIHdlIGNyZWF0ZSB0aGUgcmVndWxhciBleHByZXNzaW9uLiAgVGhlIGBgcmUuVkVSQk9TRWBgIGZsYWcgbWFrZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXJzZXIgaWdub3JlIHdoaXRlc3BhY2UgYW5kIGFsbG93IGNvbW1lbnRzLCBzbyB3ZSBjYW4gYXZvaWQgc29tZSBvZiB0aGUgZmVlbCBvZiBsaW5lLW5vaXNlLiAgVGhpcyBtYXRjaGVzIGFueSB2YXJpYWJsZXMsIGkuZS4sIGBge3ZhcjpyZWdleH1gYCAod2hlcmUgYGA6cmVnZXhgYCBpcyBvcHRpb25hbCkuICBOb3RlIHRoYXQgdGhlcmUgYXJlIHR3byBncm91cHMgd2UgY2FwdHVyZTogYGBtYXRjaC5ncm91cCgxKWBgIHdpbGwgYmUgdGhlIHZhcmlhYmxlIG5hbWUsIGFuZCBgYG1hdGNoLmdyb3VwKDIpYGAgd2lsbCBiZSB0aGUgcmVndWxhciBleHByZXNzaW9uIChvciBOb25lIHdoZW4gdGhlcmUgaXMgbm8gcmVndWxhciBleHByZXNzaW9uKS4gIE5vdGUgdGhhdCBgYCg/Oi4uLik/YGAgbWVhbnMgdGhhdCB0aGUgc2VjdGlvbiBpcyBvcHRpb25hbC4KKworKipsaW5lIDEwKio6IFRoaXMgdmFyaWFibGUgd2lsbCBob2xkIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCB3ZSBhcmUgY3JlYXRpbmcuCisKKyoqbGluZSAxMSoqOiBUaGlzIGNvbnRhaW5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgZW5kIG9mIHRoZSBsYXN0IG1hdGNoLgorCisqKmxpbmUgMTIqKjogVGhlIGBgZmluZGl0ZXJgYCBtZXRob2QgeWllbGRzIGFsbCB0aGUgbWF0Y2hlcy4KKworKipsaW5lIDEzKio6IFdlJ3JlIGdldHRpbmcgYWxsIHRoZSBub24tYGB7fWBgIHRleHQgZnJvbSBhZnRlciB0aGUgbGFzdCBtYXRjaCwgdXAgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGlzIG1hdGNoLiAgV2UgY2FsbCBgYHJlLmVzY2FwZWBgIG9uIHRoYXQgdGV4dCwgd2hpY2ggZXNjYXBlcyBhbnkgY2hhcmFjdGVycyB0aGF0IGhhdmUgc3BlY2lhbCBtZWFuaW5nLiAgU28gYGAuaHRtbGBgIHdpbGwgYmUgZXNjYXBlZCBhcyBgYFwuaHRtbGBgLgorCisqKmxpbmUgMTQqKjogVGhlIGZpcnN0IG1hdGNoIGlzIHRoZSB2YXJpYWJsZSBuYW1lLgorCisqKmxpbmUgMTUqKjogYGBleHByYGAgaXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB3ZSdsbCBtYXRjaCBhZ2FpbnN0LCB0aGUgb3B0aW9uYWwgc2Vjb25kIG1hdGNoLiAgVGhlIGRlZmF1bHQgaXMgYGBbXi9dK2BgLCB3aGljaCBtYXRjaGVzIGFueSBub24tZW1wdHksIG5vbi0vIHN0cmluZy4gIFdoaWNoIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIGRlZmF1bHQgdG8gbWUuCisKKyoqbGluZSAxNioqOiBIZXJlIHdlIGNyZWF0ZSB0aGUgYWN0dWFsIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIGBgKD9QPG5hbWU+Li4uKWBgIGlzIGEgZ3JvdXBlZCBleHByZXNzaW9uIHRoYXQgaXMgbmFtZWQuICBXaGVuIHlvdSBnZXQgYSBtYXRjaCwgeW91IGNhbiBsb29rIGF0IGBgbWF0Y2guZ3JvdXBkaWN0KClgYCBhbmQgZ2V0IHRoZSBuYW1lcyBhbmQgdmFsdWVzLgorCisqKmxpbmUgMTcsIDE4Kio6IFdlIGFkZCB0aGUgZXhwcmVzc2lvbiBvbiB0byB0aGUgY29tcGxldGUgcmVndWxhciBleHByZXNzaW9uIGFuZCBzYXZlIHRoZSBsYXN0IHBvc2l0aW9uLgorCisqKmxpbmUgMTkqKjogV2UgYWRkIHJlbWFpbmluZyBub24tdmFyaWFibGUgdGV4dCB0byB0aGUgcmVndWxhciBleHByZXNzaW9uLgorCisqKmxpbmUgMjAqKjogQW5kIHRoZW4gd2UgbWFrZSB0aGUgcmVndWxhciBleHByZXNzaW9uIG1hdGNoIHRoZSBjb21wbGV0ZSBzdHJpbmcgKGBgXmBgIHRvIGZvcmNlIGl0IHRvIG1hdGNoIGZyb20gdGhlIHN0YXJ0LCBgYCRgYCB0byBtYWtlIHN1cmUgaXQgbWF0Y2hlcyB1cCB0byB0aGUgZW5kKS4KKworVG8gdGVzdCBpdCB3ZSBjYW4gdHJ5IHNvbWUgdHJhbnNsYXRpb25zLiAgWW91IGNvdWxkIHB1dCB0aGVzZSBkaXJlY3RseSBpbiB0aGUgZG9jc3RyaW5nIG9mIHRoZSBgYHRlbXBsYXRlX3RvX3JlZ2V4YGAgZnVuY3Rpb24gYW5kIHVzZSBgZG9jdGVzdCA8aHR0cDovL3B5dGhvbi5vcmcvZG9jL2N1cnJlbnQvbGliL21vZHVsZS1kb2N0ZXN0Lmh0bWw+YF8gdG8gdGVzdCB0aGF0LiAgQnV0IEknbSB1c2luZyBkb2N0ZXN0IHRvIHRlc3QgKnRoaXMqIGRvY3VtZW50LCBzbyBJIGNhbid0IHB1dCBhIGRvY3N0cmluZyBkb2N0ZXN0IGluc2lkZSB0aGUgZG9jdGVzdCBpdHNlbGYuICBBbnl3YXksIGhlcmUncyB3aGF0IGEgdGVzdCBsb29rcyBsaWtlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcHJpbnQgdGVtcGxhdGVfdG9fcmVnZXgoJy9hL3N0YXRpYy9wYXRoJykKKyAgICBeXC9hXC9zdGF0aWNcL3BhdGgkCisgICAgPj4+IHByaW50IHRlbXBsYXRlX3RvX3JlZ2V4KCcve3llYXI6XGRcZFxkXGR9L3ttb250aDpcZFxkfS97c2x1Z30nKQorICAgIF5cLyg/UDx5ZWFyPlxkXGRcZFxkKVwvKD9QPG1vbnRoPlxkXGQpXC8oP1A8c2x1Zz5bXi9dKykkCisKK1JvdXRpbmc6IGNvbnRyb2xsZXIgbG9hZGluZworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK1RvIGxvYWQgY29udHJvbGxlcnMgd2UgaGF2ZSB0byBpbXBvcnQgdGhlIG1vZHVsZSwgdGhlbiBnZXQgdGhlIGZ1bmN0aW9uIG91dCBvZiBpdC4gIFdlJ2xsIHVzZSB0aGUgYGBfX2ltcG9ydF9fYGAgYnVpbHRpbiB0byBpbXBvcnQgdGhlIG1vZHVsZS4gIFRoZSByZXR1cm4gdmFsdWUgb2YgYGBfX2ltcG9ydF9fYGAgaXNuJ3QgdmVyeSB1c2VmdWwsIGJ1dCBpdCBwdXRzIHRoZSBtb2R1bGUgaW50byBgYHN5cy5tb2R1bGVzYGAsIGEgZGljdGlvbmFyeSBvZiBhbGwgdGhlIGxvYWRlZCBtb2R1bGVzLgorCitBbHNvLCBzb21lIHBlb3BsZSBkb24ndCBrbm93IGhvdyBleGFjdGx5IHRoZSBzdHJpbmcgbWV0aG9kIGBgc3BsaXRgYCB3b3Jrcy4gIEl0IHRha2VzIHR3byBhcmd1bWVudHMgLS0gdGhlIGZpcnN0IGlzIHRoZSBjaGFyYWN0ZXIgdG8gc3BsaXQgb24sIGFuZCB0aGUgc2Vjb25kIGlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzcGxpdHMgdG8gZG8uICBXZSB3YW50IHRvIHNwbGl0IG9uIGp1c3QgdGhlIGZpcnN0IGBgOmBgIGNoYXJhY3Rlciwgc28gd2UnbGwgdXNlIGEgbWF4aW11bSBudW1iZXIgb2Ygc3BsaXRzIG9mIDEuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBpbXBvcnQgc3lzCisgICAgPj4+IGRlZiBsb2FkX2NvbnRyb2xsZXIoc3RyaW5nKToKKyAgICAuLi4gICAgIG1vZHVsZV9uYW1lLCBmdW5jX25hbWUgPSBzdHJpbmcuc3BsaXQoJzonLCAxKQorICAgIC4uLiAgICAgX19pbXBvcnRfXyhtb2R1bGVfbmFtZSkKKyAgICAuLi4gICAgIG1vZHVsZSA9IHN5cy5tb2R1bGVzW21vZHVsZV9uYW1lXQorICAgIC4uLiAgICAgZnVuYyA9IGdldGF0dHIobW9kdWxlLCBmdW5jX25hbWUpCisgICAgLi4uICAgICByZXR1cm4gZnVuYworCitSb3V0aW5nOiBwdXR0aW5nIGl0IHRvZ2V0aGVyCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK05vdywgdGhlIGBgUm91dGVyYGAgY2xhc3MuICBUaGUgY2xhc3MgaGFzIHRoZSBgYGFkZF9yb3V0ZWBgIG1ldGhvZCwgYW5kIGFsc28gYSBgYF9fY2FsbF9fYGAgbWV0aG9kLiAgVGhhdCBgYF9fY2FsbF9fYGAgbWV0aG9kIG1ha2VzIHRoZSBSb3V0ZXIgb2JqZWN0IGl0c2VsZiBhIFdTR0kgYXBwbGljYXRpb24uICBTbyB3aGVuIGEgcmVxdWVzdCBjb21lcyBpbiwgaXQgbG9va3MgYXQgYGBQQVRIX0lORk9gYCAoYWxzbyBrbm93biBhcyBgYHJlcS5wYXRoX2luZm9gYCkgYW5kIGhhbmRzIG9mZiB0aGUgcmVxdWVzdCB0byB0aGUgY29udHJvbGxlciB0aGF0IG1hdGNoZXMgdGhhdCBwYXRoLgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisgICA6bGluZW5vczoKKworICAgID4+PiBmcm9tIHdlYm9iIGltcG9ydCBSZXF1ZXN0CisgICAgPj4+IGZyb20gd2Vib2IgaW1wb3J0IGV4YworICAgID4+PiBjbGFzcyBSb3V0ZXIob2JqZWN0KToKKyAgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLnJvdXRlcyA9IFtdCisgICAgLi4uCisgICAgLi4uICAgICBkZWYgYWRkX3JvdXRlKHNlbGYsIHRlbXBsYXRlLCBjb250cm9sbGVyLCAqKnZhcnMpOgorICAgIC4uLiAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29udHJvbGxlciwgYmFzZXN0cmluZyk6CisgICAgLi4uICAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBsb2FkX2NvbnRyb2xsZXIoY29udHJvbGxlcikKKyAgICAuLi4gICAgICAgICBzZWxmLnJvdXRlcy5hcHBlbmQoKHJlLmNvbXBpbGUodGVtcGxhdGVfdG9fcmVnZXgodGVtcGxhdGUpKSwKKyAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIsCisgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzKSkKKyAgICAuLi4KKyAgICAuLi4gICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgLi4uICAgICAgICAgcmVxID0gUmVxdWVzdChlbnZpcm9uKQorICAgIC4uLiAgICAgICAgIGZvciByZWdleCwgY29udHJvbGxlciwgdmFycyBpbiBzZWxmLnJvdXRlczoKKyAgICAuLi4gICAgICAgICAgICAgbWF0Y2ggPSByZWdleC5tYXRjaChyZXEucGF0aF9pbmZvKQorICAgIC4uLiAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAuLi4gICAgICAgICAgICAgICAgIHJlcS51cmx2YXJzID0gbWF0Y2guZ3JvdXBkaWN0KCkKKyAgICAuLi4gICAgICAgICAgICAgICAgIHJlcS51cmx2YXJzLnVwZGF0ZSh2YXJzKQorICAgIC4uLiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgLi4uICAgICAgICAgcmV0dXJuIGV4Yy5IVFRQTm90Rm91bmQoKShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworKipsaW5lIDUqKjogV2UgYXJlIGdvaW5nIHRvIGtlZXAgdGhlIHJvdXRlIG9wdGlvbnMgaW4gYW4gb3JkZXJlZCBsaXN0LiAgRWFjaCBpdGVtIHdpbGwgYmUgYGAocmVnZXgsIGNvbnRyb2xsZXIsIHZhcnMpYGA6IGBgcmVnZXhgYCBpcyB0aGUgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB0byBtYXRjaCBhZ2FpbnN0LCBgYGNvbnRyb2xsZXJgYCBpcyB0aGUgY29udHJvbGxlciB0byBydW4sIGFuZCBgYHZhcnNgYCBhcmUgYW55IGV4dHJhIChjb25zdGFudCkgdmFyaWFibGVzLgorCisqKmxpbmUgOCwgOSoqOiBXZSB3aWxsIGFsbG93IHlvdSB0byBjYWxsIGBgYWRkX3JvdXRlYGAgd2l0aCBhIHN0cmluZyAodGhhdCB3aWxsIGJlIGltcG9ydGVkKSBvciBhIGNvbnRyb2xsZXIgb2JqZWN0LiAgV2UgdGVzdCBmb3IgYSBzdHJpbmcgaGVyZSwgYW5kIHRoZW4gaW1wb3J0IGl0IGlmIG5lY2Vzc2FyeS4KKworKipsaW5lIDEzKio6IEhlcmUgd2UgYWRkIGEgYGBfX2NhbGxfX2BgIG1ldGhvZC4gIFRoaXMgaXMgdGhlIG1ldGhvZCB1c2VkIHdoZW4geW91IGNhbGwgYW4gb2JqZWN0IGxpa2UgYSBmdW5jdGlvbi4gIFlvdSBzaG91bGQgcmVjb2duaXplIHRoaXMgYXMgdGhlIFdTR0kgc2lnbmF0dXJlLgorCisqKmxpbmUgMTQqKjogV2UgY3JlYXRlIGEgcmVxdWVzdCBvYmplY3QuICBOb3RlIHdlJ2xsIG9ubHkgdXNlIHRoaXMgcmVxdWVzdCBvYmplY3QgaW4gdGhpcyBmdW5jdGlvbjsgaWYgdGhlIGNvbnRyb2xsZXIgd2FudHMgYSByZXF1ZXN0IG9iamVjdCBpdCdsbCBoYXZlIHRvIG1ha2Ugb24gb2YgaXRzIG93bi4KKworKipsaW5lIDE2Kio6IFdlIHRlc3QgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBhZ2FpbnN0IGBgcmVxLnBhdGhfaW5mb2BgLiAgVGhpcyBpcyB0aGUgc2FtZSBhcyBgYGVudmlyb25bJ1BBVEhfSU5GTyddYGAuICBUaGF0J3MgYWxsIHRoZSByZXF1ZXN0IHBhdGggbGVmdCB0byBiZSBwcm9jZXNzZWQuCisKKyoqbGluZSAxOCoqOiBXZSBzZXQgYGByZXEudXJsdmFyc2BgIHRvIHRoZSBkaWN0aW9uYXJ5IG9mIG1hdGNoZXMgaW4gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFRoaXMgdmFyaWFibGUgYWN0dWFsbHkgbWFwcyB0byBgYGVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ11gYC4gIEFueSBhdHRyaWJ1dGVzIHlvdSBzZXQgb24gYSByZXF1ZXN0IHdpbGwsIGluIG9uZSB3YXkgb3IgYW5vdGhlciwgbWFwIHRvIHRoZSBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5OiB0aGUgcmVxdWVzdCBob2xkcyBubyBzdGF0ZSBvZiBpdHMgb3duLgorCisqKmxpbmUgMTkqKjogV2UgYWxzbyBhZGQgaW4gYW55IGV4cGxpY2l0IHZhcmlhYmxlcyBwYXNzZWQgaW4gdGhyb3VnaCBgYGFkZF9yb3V0ZSgpYGAuCisKKyoqbGluZSAyMCoqOiBUaGVuIHdlIGNhbGwgdGhlIGNvbnRyb2xsZXIgYXMgYSBXU0dJIGFwcGxpY2F0aW9uIGl0c2VsZi4gIEFueSBmYW5jeSBmcmFtZXdvcmsgc3R1ZmYgdGhlIGNvbnRyb2xsZXIgd2FudHMgdG8gZG8sIGl0J2xsIGhhdmUgdG8gZG8gaXRzZWxmLgorCisqKmxpbmUgMjEqKjogSWYgbm90aGluZyBtYXRjaGVzLCB3ZSByZXR1cm4gYSA0MDQgTm90IEZvdW5kIHJlc3BvbnNlLiAgYGB3ZWJvYi5leGMuSFRUUE5vdEZvdW5kKClgYCBpcyBhIFdTR0kgYXBwbGljYXRpb24gdGhhdCByZXR1cm5zIDQwNCByZXNwb25zZXMuICBZb3UgY291bGQgYWRkIGEgbWVzc2FnZSB0b28sIGxpa2UgYGB3ZWJvYi5leGMuSFRUUE5vdEZvdW5kKCdObyByb3V0ZSBtYXRjaGVkJylgYC4gIFRoZW4sIG9mIGNvdXJzZSwgd2UgY2FsbCB0aGUgYXBwbGljYXRpb24uCisKK0NvbnRyb2xsZXJzCistLS0tLS0tLS0tLQorCitUaGUgcm91dGVyIGp1c3QgcGFzc2VzIHRoZSByZXF1ZXN0IG9uIHRvIHRoZSBjb250cm9sbGVyLCBzbyB0aGUgY29udHJvbGxlcnMgYXJlIHRoZW1zZWx2ZXMganVzdCBXU0dJIGFwcGxpY2F0aW9ucy4gIEJ1dCB3ZSdsbCB3YW50IHRvIHNldCB1cCBzb21ldGhpbmcgdG8gbWFrZSB0aG9zZSBhcHBsaWNhdGlvbnMgZnJpZW5kbGllciB0byB3cml0ZS4KKworVG8gZG8gdGhhdCB3ZSdsbCB3cml0ZSBhIGBkZWNvcmF0b3IgPGh0dHA6Ly93d3cuZGRqLmNvbS93ZWItZGV2ZWxvcG1lbnQvMTg0NDA2MDczPmBfLiAgQSBkZWNvcmF0b3IgaXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGFub3RoZXIgZnVuY3Rpb24uICBBZnRlciBkZWNvcmF0aW9uIHRoZSBmdW5jdGlvbiB3aWxsIGJlIGEgV1NHSSBhcHBsaWNhdGlvbiwgYnV0IGl0IHdpbGwgYmUgZGVjb3JhdGluZyBhIGZ1bmN0aW9uIHdpdGggYSBzaWduYXR1cmUgbGlrZSBgYGNvbnRyb2xsZXJfZnVuYyhyZXEsICoqdXJsdmFycylgYC4gIFRoZSBjb250cm9sbGVyIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgcmVzcG9uc2Ugb2JqZWN0ICh3aGljaCwgcmVtZW1iZXIsIGlzIGEgV1NHSSBhcHBsaWNhdGlvbiBvbiBpdHMgb3duKS4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorICAgOmxpbmVub3M6CisKKyAgICA+Pj4gZnJvbSB3ZWJvYiBpbXBvcnQgUmVxdWVzdCwgUmVzcG9uc2UKKyAgICA+Pj4gZnJvbSB3ZWJvYiBpbXBvcnQgZXhjCisgICAgPj4+IGRlZiBjb250cm9sbGVyKGZ1bmMpOgorICAgIC4uLiAgICAgZGVmIHJlcGxhY2VtZW50KGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAuLi4gICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgLi4uICAgICAgICAgdHJ5OgorICAgIC4uLiAgICAgICAgICAgICByZXNwID0gZnVuYyhyZXEsICoqcmVxLnVybHZhcnMpCisgICAgLi4uICAgICAgICAgZXhjZXB0IGV4Yy5IVFRQRXhjZXB0aW9uLCBlOgorICAgIC4uLiAgICAgICAgICAgICByZXNwID0gZQorICAgIC4uLiAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzcCwgYmFzZXN0cmluZyk6CisgICAgLi4uICAgICAgICAgICAgIHJlc3AgPSBSZXNwb25zZShib2R5PXJlc3ApCisgICAgLi4uICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgLi4uICAgICByZXR1cm4gcmVwbGFjZW1lbnQKKworKipsaW5lIDMqKjogVGhpcyBpcyB0aGUgdHlwaWNhbCBzaWduYXR1cmUgZm9yIGEgZGVjb3JhdG9yIC0tIGl0IHRha2VzIG9uZSBmdW5jdGlvbiBhcyBhbiBhcmd1bWVudCwgYW5kIHJldHVybnMgYSB3cmFwcGVkIGZ1bmN0aW9uLgorCisqKmxpbmUgNCoqOiBUaGlzIGlzIHRoZSByZXBsYWNlbWVudCBmdW5jdGlvbiB3ZSdsbCByZXR1cm4uICBUaGlzIGlzIGNhbGxlZCBhIGBjbG9zdXJlIDxodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Nsb3N1cmVfKGNvbXB1dGVyX3NjaWVuY2UpPmBfIC0tIHRoaXMgZnVuY3Rpb24gd2lsbCBoYXZlIGFjY2VzcyB0byBgYGZ1bmNgYCwgYW5kIGV2ZXJ5dGltZSB5b3UgZGVjb3JhdGUgYSBuZXcgZnVuY3Rpb24gdGhlcmUgd2lsbCBiZSBhIG5ldyBgYHJlcGxhY2VtZW50YGAgZnVuY3Rpb24gd2l0aCBpdHMgb3duIHZhbHVlIG9mIGBgZnVuY2BgLiAgQXMgeW91IGNhbiBzZWUsIHRoaXMgaXMgYSBXU0dJIGFwcGxpY2F0aW9uLgorCisqKmxpbmUgNSoqOiBXZSBjcmVhdGUgYSByZXF1ZXN0LgorCisqKmxpbmUgNioqOiBIZXJlIHdlIGNhdGNoIGFueSBgYHdlYm9iLmV4Yy5IVFRQRXhjZXB0aW9uYGAgZXhjZXB0aW9ucy4gIFRoaXMgaXMgc28geW91IGNhbiBkbyBgYHJhaXNlIHdlYm9iLmV4Yy5IVFRQTm90Rm91bmQoKWBgIGluIHlvdXIgZnVuY3Rpb24uICBUaGVzZSBleGNlcHRpb25zIGFyZSB0aGVtc2VsdmVzIFdTR0kgYXBwbGljYXRpb25zLgorCisqKmxpbmUgNyoqOiBXZSBjYWxsIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSByZXF1ZXN0IG9iamVjdCwgYW55IGFueSB2YXJpYWJsZXMgaW4gYGByZXEudXJsdmFyc2BgLiAgQW5kIHdlIGdldCBiYWNrIGEgcmVzcG9uc2UuCisKKyoqbGluZSAxMCoqOiBXZSdsbCBhbGxvdyB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIGEgZnVsbCByZXNwb25zZSBvYmplY3QsIG9yIGp1c3QgYSBzdHJpbmcuICBJZiB0aGV5IHJldHVybiBhIHN0cmluZywgd2UnbGwgY3JlYXRlIGEgYGBSZXNwb25zZWBgIG9iamVjdCB3aXRoIHRoYXQgKGFuZCB3aXRoIHRoZSBzdGFuZGFyZCBgYDIwMCBPS2BgIHN0YXR1cywgYGB0ZXh0L2h0bWxgYCBjb250ZW50IHR5cGUsIGFuZCBgYHV0ZjhgYCBjaGFyc2V0L2VuY29kaW5nKS4KKworKipsaW5lIDEyKio6IFdlIHBhc3MgdGhlIHJlcXVlc3Qgb24gdG8gdGhlIHJlc3BvbnNlLiAgV2hpY2ggKmFsc28qIGhhcHBlbnMgdG8gYmUgYSBXU0dJIGFwcGxpY2F0aW9uLiAgV1NHSSBhcHBsaWNhdGlvbnMgYXJlIGZhbGxpbmcgZnJvbSB0aGUgc2t5IQorCisqKmxpbmUgMTMqKjogV2UgcmV0dXJuIHRoZSBmdW5jdGlvbiBvYmplY3QgaXRzZWxmLCB3aGljaCB3aWxsIHRha2UgdGhlIHBsYWNlIG9mIHRoZSBmdW5jdGlvbi4KKworWW91IHVzZSB0aGlzIGNvbnRyb2xsZXIgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IEBjb250cm9sbGVyCisgICAgLi4uIGRlZiBpbmRleChyZXEpOgorICAgIC4uLiAgICAgcmV0dXJuICdUaGlzIGlzIHRoZSBpbmRleCcKKworUHV0dGluZyBJdCBUb2dldGhlcgorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitOb3cgd2UnbGwgc2hvdyBhIGJhc2ljIGFwcGxpY2F0aW9uLiAgSnVzdCBhIGhlbGxvIHdvcmxkIGFwcGxpY2F0aW9uIGZvciBub3cuICBOb3RlIHRoYXQgdGhpcyBkb2N1bWVudCBpcyB0aGUgbW9kdWxlIGBgX19tYWluX19gYC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IEBjb250cm9sbGVyCisgICAgLi4uIGRlZiBoZWxsbyhyZXEpOgorICAgIC4uLiAgICAgaWYgcmVxLm1ldGhvZCA9PSAnUE9TVCc6CisgICAgLi4uICAgICAgICAgcmV0dXJuICdIZWxsbyAlcyEnICUgcmVxLnBhcmFtc1snbmFtZSddCisgICAgLi4uICAgICBlbGlmIHJlcS5tZXRob2QgPT0gJ0dFVCc6CisgICAgLi4uICAgICAgICAgcmV0dXJuICcnJzxmb3JtIG1ldGhvZD0iUE9TVCI+CisgICAgLi4uICAgICAgICAgICAgIFlvdSdyZSBuYW1lOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmFtZSI+CisgICAgLi4uICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiPgorICAgIC4uLiAgICAgICAgICAgICA8L2Zvcm0+JycnCisgICAgPj4+IGhlbGxvX3dvcmxkID0gUm91dGVyKCkKKyAgICA+Pj4gaGVsbG9fd29ybGQuYWRkX3JvdXRlKCcvJywgY29udHJvbGxlcj1oZWxsbykKKworTm93IGxldCdzIHRlc3QgdGhhdCBhcHBsaWNhdGlvbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcSA9IFJlcXVlc3QuYmxhbmsoJy8nKQorICAgID4+PiByZXNwID0gcmVxLmdldF9yZXNwb25zZShoZWxsb193b3JsZCkKKyAgICA+Pj4gcHJpbnQgcmVzcAorICAgIDIwMCBPSworICAgIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04CisgICAgQ29udGVudC1MZW5ndGg6IDEzMQorICAgIDxCTEFOS0xJTkU+CisgICAgPGZvcm0gbWV0aG9kPSJQT1NUIj4KKyAgICAgICAgICAgICAgICBZb3UncmUgbmFtZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiPgorICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiPgorICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAgICA+Pj4gcmVxLm1ldGhvZCA9ICdQT1NUJworICAgID4+PiByZXEuYm9keSA9ICduYW1lPUlhbicKKyAgICA+Pj4gcmVzcCA9IHJlcS5nZXRfcmVzcG9uc2UoaGVsbG9fd29ybGQpCisgICAgPj4+IHByaW50IHJlc3AKKyAgICAyMDAgT0sKKyAgICBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOAorICAgIENvbnRlbnQtTGVuZ3RoOiAxMAorICAgIDxCTEFOS0xJTkU+CisgICAgSGVsbG8gSWFuIQorCisKK0Fub3RoZXIgQ29udHJvbGxlcgorLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlJ3MgYW5vdGhlciBwYXR0ZXJuIHRoYXQgbWlnaHQgYmUgaW50ZXJlc3RpbmcgdG8gdHJ5IGZvciBhIGNvbnRyb2xsZXIuICBJbnN0ZWFkIG9mIGEgZnVuY3Rpb24sIHdlIGNhbiBtYWtlIGEgY2xhc3Mgd2l0aCBtZXRob2RzIGxpa2UgYGBnZXRgYCwgYGBwb3N0YGAsIGV0Yy4gIFRoZSBgYHVybHZhcnNgYCB3aWxsIGJlIHVzZWQgdG8gaW5zdGFudGlhdGUgdGhlIGNsYXNzLgorCitXZSBjb3VsZCBkbyB0aGlzIGFzIGEgc3VwZXJjbGFzcywgYnV0IHRoZSBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIG1vcmUgZWxlZ2FudCBhcyBhIHdyYXBwZXIsIGxpa2UgdGhlIGRlY29yYXRvciBpcyBhIHdyYXBwZXIuICBQeXRob24gMy4wIHdpbGwgYWRkIGBjbGFzcyBkZWNvcmF0b3JzIDxodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTMxMjkvPmBfIHdoaWNoIHdpbGwgd29yayBsaWtlIHRoaXMuCisKK1dlJ2xsIGFsbG93IGFuIGV4dHJhIGBgYWN0aW9uYGAgdmFyaWFibGUsIHdoaWNoIHdpbGwgZGVmaW5lIHRoZSBtZXRob2QgKGFjdHVhbGx5IGBgYWN0aW9uX21ldGhvZGBgLCB3aGVyZSBgYF9tZXRob2RgYCBpcyB0aGUgcmVxdWVzdCBtZXRob2QpLiAgSWYgbm8gYWN0aW9uIGlzIGdpdmVuLCB3ZSdsbCB1c2UganVzdCB0aGUgbWV0aG9kIChpLmUuLCBgYGdldGBgLCBgYHBvc3RgYCwgZXRjKS4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorICAgOmxpbmVub3M6CisKKyAgICA+Pj4gZGVmIHJlc3RfY29udHJvbGxlcihjbHMpOgorICAgIC4uLiAgICAgZGVmIHJlcGxhY2VtZW50KGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAuLi4gICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgLi4uICAgICAgICAgdHJ5OgorICAgIC4uLiAgICAgICAgICAgICBpbnN0YW5jZSA9IGNscyhyZXEsICoqcmVxLnVybHZhcnMpCisgICAgLi4uICAgICAgICAgICAgIGFjdGlvbiA9IHJlcS51cmx2YXJzLmdldCgnYWN0aW9uJykKKyAgICAuLi4gICAgICAgICAgICAgaWYgYWN0aW9uOgorICAgIC4uLiAgICAgICAgICAgICAgICAgYWN0aW9uICs9ICdfJyArIHJlcS5tZXRob2QubG93ZXIoKQorICAgIC4uLiAgICAgICAgICAgICBlbHNlOgorICAgIC4uLiAgICAgICAgICAgICAgICAgYWN0aW9uID0gcmVxLm1ldGhvZC5sb3dlcigpCisgICAgLi4uICAgICAgICAgICAgIHRyeToKKyAgICAuLi4gICAgICAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoaW5zdGFuY2UsIGFjdGlvbikKKyAgICAuLi4gICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgIC4uLiAgICAgICAgICAgICAgICAgcmFpc2UgZXhjLkhUVFBOb3RGb3VuZCgiTm8gYWN0aW9uICVzIiAlIGFjdGlvbikKKyAgICAuLi4gICAgICAgICAgICAgcmVzcCA9IG1ldGhvZCgpCisgICAgLi4uICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzcCwgYmFzZXN0cmluZyk6CisgICAgLi4uICAgICAgICAgICAgICAgICByZXNwID0gUmVzcG9uc2UoYm9keT1yZXNwKQorICAgIC4uLiAgICAgICAgIGV4Y2VwdCBleGMuSFRUUEV4Y2VwdGlvbiwgZToKKyAgICAuLi4gICAgICAgICAgICAgcmVzcCA9IGUKKyAgICAuLi4gICAgICAgICByZXR1cm4gcmVzcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAuLi4gICAgIHJldHVybiByZXBsYWNlbWVudAorCisqKmxpbmUgMSoqOiBIZXJlIHdlJ3JlIGtpbmQgb2YgZGVjb3JhdGluZyBhIGNsYXNzLiAgQnV0IHJlYWxseSB3ZSdsbCBqdXN0IGNyZWF0ZSBhIFdTR0kgYXBwbGljYXRpb24gd3JhcHBlci4KKworKipsaW5lIDItNCoqOiBUaGUgcmVwbGFjZW1lbnQgV1NHSSBhcHBsaWNhdGlvbiwgYWxzbyBhIGNsb3N1cmUuICBBbmQgd2UgY3JlYXRlIGEgcmVxdWVzdCBhbmQgY2F0Y2ggZXhjZXB0aW9ucywganVzdCBsaWtlIGluIHRoZSBkZWNvcmF0b3IuCisKKyoqbGluZSA1Kio6IFdlIGluc3RhbnRpYXRlIHRoZSBjbGFzcyB3aXRoIGJvdGggdGhlIHJlcXVlc3QgYW5kIGBgcmVxLnVybHZhcnNgYCB0byBpbml0aWFsaXplIGl0LiAgVGhlIGluc3RhbmNlIHdpbGwgb25seSBiZSB1c2VkIGZvciBvbmUgcmVxdWVzdC4gIChOb3RlIHRoYXQgdGhlICppbnN0YW5jZSogdGhlbiBkb2Vzbid0IGhhdmUgdG8gYmUgdGhyZWFkIHNhZmUuKQorCisqKmxpbmUgNioqOiBXZSBnZXQgdGhlIGFjdGlvbiB2YXJpYWJsZSBvdXQsIGlmIHRoZXJlIGlzIG9uZS4KKworKipsaW5lIDcsIDgqKjogSWYgdGhlcmUgd2FzIG9uZSwgd2UnbGwgdXNlIHRoZSBtZXRob2QgbmFtZSBgYHthY3Rpb259X3ttZXRob2R9YGAuLi4KKworKipsaW5lIDgsIDkqKjogLi4uIG90aGVyd2lzZSB3ZSdsbCB1c2UganVzdCB0aGUgbWV0aG9kIGZvciB0aGUgbWV0aG9kIG5hbWUuCisKKyoqbGluZSAxMC0xMyoqOiBXZSdsbCBnZXQgdGhlIG1ldGhvZCBmcm9tIHRoZSBpbnN0YW5jZSwgb3IgcmVzcG9uZCB3aXRoIGEgNDA0IGVycm9yIGlmIHRoZXJlIGlzIG5vdCBzdWNoIG1ldGhvZC4KKworKipsaW5lIDE0Kio6IENhbGwgdGhlIG1ldGhvZCwgZ2V0IHRoZSByZXNwb25zZQorCisqKmxpbmUgMTUsIDE2Kio6IElmIHRoZSByZXNwb25zZSBpcyBqdXN0IGEgc3RyaW5nLCBjcmVhdGUgYSBmdWxsIHJlc3BvbnNlIG9iamVjdCBmcm9tIGl0LgorCisqKmxpbmUgMTkqKjogYW5kIHRoZW4gd2UgZm9yd2FyZCB0aGUgcmVxdWVzdC4uLgorCisqKmxpbmUgMjAqKjogLi4uIGFuZCByZXR1cm4gdGhlIHdyYXBwZXIgb2JqZWN0IHdlJ3ZlIGNyZWF0ZWQuCisKK0hlcmUncyB0aGUgaGVsbG8gd29ybGQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBjbGFzcyBIZWxsbyhvYmplY3QpOgorICAgIC4uLiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcSk6CisgICAgLi4uICAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxCisgICAgLi4uICAgICBkZWYgZ2V0KHNlbGYpOgorICAgIC4uLiAgICAgICAgIHJldHVybiAnJyc8Zm9ybSBtZXRob2Q9IlBPU1QiPgorICAgIC4uLiAgICAgICAgICAgICBZb3UncmUgbmFtZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiPgorICAgIC4uLiAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0Ij4KKyAgICAuLi4gICAgICAgICAgICAgPC9mb3JtPicnJworICAgIC4uLiAgICAgZGVmIHBvc3Qoc2VsZik6CisgICAgLi4uICAgICAgICAgcmV0dXJuICdIZWxsbyAlcyEnICUgc2VsZi5yZXF1ZXN0LnBhcmFtc1snbmFtZSddCisgICAgPj4+IGhlbGxvID0gcmVzdF9jb250cm9sbGVyKEhlbGxvKQorCitXZSdsbCBydW4gdGhlIHNhbWUgdGVzdCBhcyBiZWZvcmU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBoZWxsb193b3JsZCA9IFJvdXRlcigpCisgICAgPj4+IGhlbGxvX3dvcmxkLmFkZF9yb3V0ZSgnLycsIGNvbnRyb2xsZXI9aGVsbG8pCisgICAgPj4+IHJlcSA9IFJlcXVlc3QuYmxhbmsoJy8nKQorICAgID4+PiByZXNwID0gcmVxLmdldF9yZXNwb25zZShoZWxsb193b3JsZCkKKyAgICA+Pj4gcHJpbnQgcmVzcAorICAgIDIwMCBPSworICAgIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04CisgICAgQ29udGVudC1MZW5ndGg6IDEzMQorICAgIDxCTEFOS0xJTkU+CisgICAgPGZvcm0gbWV0aG9kPSJQT1NUIj4KKyAgICAgICAgICAgICAgICBZb3UncmUgbmFtZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiPgorICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiPgorICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAgICA+Pj4gcmVxLm1ldGhvZCA9ICdQT1NUJworICAgID4+PiByZXEuYm9keSA9ICduYW1lPUlhbicKKyAgICA+Pj4gcmVzcCA9IHJlcS5nZXRfcmVzcG9uc2UoaGVsbG9fd29ybGQpCisgICAgPj4+IHByaW50IHJlc3AKKyAgICAyMDAgT0sKKyAgICBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOAorICAgIENvbnRlbnQtTGVuZ3RoOiAxMAorICAgIDxCTEFOS0xJTkU+CisgICAgSGVsbG8gSWFuIQorCitVUkwgR2VuZXJhdGlvbiBhbmQgUmVxdWVzdCBBY2Nlc3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIHVzZSBoYXJkLWNvZGVkIGxpbmtzIGluIHlvdXIgSFRNTCwgYnV0IHRoaXMgY2FuIGhhdmUgcHJvYmxlbXMuICBSZWxhdGl2ZSBsaW5rcyBhcmUgaGFyZCB0byBtYW5hZ2UsIGFuZCBhYnNvbHV0ZSBsaW5rcyBwcmVzdW1lIHRoYXQgeW91ciBhcHBsaWNhdGlvbiBsaXZlcyBhdCBhIHBhcnRpY3VsYXIgbG9jYXRpb24uICBXU0dJIGdpdmVzIGEgdmFyaWFibGUgYGBTQ1JJUFRfTkFNRWBgLCB3aGljaCBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgcGF0aCB0aGF0IGxlZCB1cCB0byB0aGlzIGFwcGxpY2F0aW9uLiAgSWYgeW91IGFyZSB3cml0aW5nIGEgYmxvZyBhcHBsaWNhdGlvbiwgZm9yIGluc3RhbmNlLCBzb21lb25lIG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCBpdCBhdCBgYC9ibG9nL2BgLCBhbmQgdGhlbiBTQ1JJUFRfTkFNRSB3b3VsZCBiZSBgYCIvYmxvZyJgYC4gIFdlIHNob3VsZCBnZW5lcmF0ZSBsaW5rcyB3aXRoIHRoYXQgaW4gbWluZC4KKworVGhlIGJhc2UgVVJMIHVzaW5nIFNDUklQVF9OQU1FIGlzIGBgcmVxLmFwcGxpY2F0aW9uX3VybGBgLiAgU28sIGlmIHdlIGhhdmUgYWNjZXNzIHRvIHRoZSByZXF1ZXN0IHdlIGNhbiBtYWtlIGEgVVJMLiAgQnV0IHdoYXQgaWYgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3M/CisKK1dlIGNhbiB1c2UgdGhyZWFkLWxvY2FsIHZhcmlhYmxlcyB0byBtYWtlIGl0IGVhc3kgZm9yIGFueSBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIHRoZSBjdXJyZWN0IHJlcXVlc3QuICBBICJ0aHJlYWQtbG9jYWwiIHZhcmlhYmxlIGlzIGEgdmFyaWFibGUgd2hvc2UgdmFsdWUgaXMgdHJhY2tlZCBzZXBhcmF0ZWx5IGZvciBlYWNoIHRocmVhZCwgc28gaWYgdGhlcmUgYXJlIG11bHRpcGxlIHJlcXVlc3RzIGluIGRpZmZlcmVudCB0aHJlYWRzLCB0aGVpciByZXF1ZXN0cyB3b24ndCBjbG9iYmVyIGVhY2ggb3RoZXIuCisKK1RoZSBiYXNpYyBtZWFucyBvZiB1c2luZyBhIHRocmVhZC1sb2NhbCB2YXJpYWJsZSBpcyBgYHRocmVhZGluZy5sb2NhbCgpYGAuICBUaGlzIGNyZWF0ZXMgYSBibGFuayBvYmplY3QgdGhhdCBjYW4gaGF2ZSB0aHJlYWQtbG9jYWwgYXR0cmlidXRlcyBhc3NpZ25lZCB0byBpdC4gIEkgZmluZCB0aGUgYmVzdCB3YXkgdG8gZ2V0ICphdCogYSB0aHJlYWQtbG9jYWwgdmFsdWUgaXMgd2l0aCBhIGZ1bmN0aW9uLCBhcyB0aGlzIG1ha2VzIGl0IGNsZWFyIHRoYXQgeW91IGFyZSBmZXRjaGluZyB0aGUgb2JqZWN0LCBhcyBvcHBvc2VkIHRvIGdldHRpbmcgYXQgc29tZSBnbG9iYWwgb2JqZWN0LgorCitIZXJlJ3MgdGhlIGJhc2ljIHN0cnVjdHVyZSBmb3IgdGhlIGxvY2FsOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gaW1wb3J0IHRocmVhZGluZworICAgID4+PiBjbGFzcyBMb2NhbGl6ZWQob2JqZWN0KToKKyAgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLmxvY2FsID0gdGhyZWFkaW5nLmxvY2FsKCkKKyAgICAuLi4gICAgIGRlZiByZWdpc3RlcihzZWxmLCBvYmplY3QpOgorICAgIC4uLiAgICAgICAgIHNlbGYubG9jYWwub2JqZWN0ID0gb2JqZWN0CisgICAgLi4uICAgICBkZWYgdW5yZWdpc3RlcihzZWxmKToKKyAgICAuLi4gICAgICAgICBkZWwgc2VsZi5sb2NhbC5vYmplY3QKKyAgICAuLi4gICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAuLi4gICAgICAgICB0cnk6CisgICAgLi4uICAgICAgICAgICAgIHJldHVybiBzZWxmLmxvY2FsLm9iamVjdAorICAgIC4uLiAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAuLi4gICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJObyBvYmplY3QgaGFzIGJlZW4gcmVnaXN0ZXJlZCBmb3IgdGhpcyB0aHJlYWQiKQorICAgID4+PiBnZXRfcmVxdWVzdCA9IExvY2FsaXplZCgpCisKK05vdyB3ZSBuZWVkIHNvbWUgKm1pZGRsZXdhcmUqIHRvIHJlZ2lzdGVyIHRoZSByZXF1ZXN0IG9iamVjdC4gIE1pZGRsZXdhcmUgaXMgc29tZXRoaW5nIHRoYXQgd3JhcHMgYW4gYXBwbGljYXRpb24sIHBvc3NpYmx5IG1vZGlmeWluZyB0aGUgcmVxdWVzdCBvbiB0aGUgd2F5IGluIG9yIHRoZSB3YXkgb3V0LiAgSW4gYSBzZW5zZSB0aGUgYGBSb3V0ZXJgYCBvYmplY3Qgd2FzIG1pZGRsZXdhcmUsIHRob3VnaCBub3QgZXhhY3RseSBiZWNhdXNlIGl0IGRpZG4ndCB3cmFwIGEgc2luZ2xlIGFwcGxpY2F0aW9uLgorCitUaGlzIHJlZ2lzdHJhdGlvbiBtaWRkbGV3YXJlIGxvb2tzIGxpa2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBjbGFzcyBSZWdpc3RlclJlcXVlc3Qob2JqZWN0KToKKyAgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHApOgorICAgIC4uLiAgICAgICAgIHNlbGYuYXBwID0gYXBwCisgICAgLi4uICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgIC4uLiAgICAgICAgIHJlcSA9IFJlcXVlc3QoZW52aXJvbikKKyAgICAuLi4gICAgICAgICBnZXRfcmVxdWVzdC5yZWdpc3RlcihyZXEpCisgICAgLi4uICAgICAgICAgdHJ5OgorICAgIC4uLiAgICAgICAgICAgICByZXR1cm4gc2VsZi5hcHAoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgLi4uICAgICAgICAgZmluYWxseToKKyAgICAuLi4gICAgICAgICAgICAgZ2V0X3JlcXVlc3QudW5yZWdpc3RlcigpCisKK05vdyBpZiB3ZSBkbzoKKworICAgID4+PiBoZWxsb193b3JsZCA9IFJlZ2lzdGVyUmVxdWVzdChoZWxsb193b3JsZCkKKwordGhlbiB0aGUgcmVxdWVzdCB3aWxsIGJlIHJlZ2lzdGVyZWQgZWFjaCB0aW1lLiAgTm93LCBsZXRzIGNyZWF0ZSBhIFVSTCBnZW5lcmF0aW9uIGZ1bmN0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gaW1wb3J0IHVybGxpYgorICAgID4+PiBkZWYgdXJsKCpzZWdtZW50cywgKip2YXJzKToKKyAgICAuLi4gICAgIGJhc2VfdXJsID0gZ2V0X3JlcXVlc3QoKS5hcHBsaWNhdGlvbl91cmwKKyAgICAuLi4gICAgIHBhdGggPSAnLycuam9pbihzdHIocykgZm9yIHMgaW4gc2VnbWVudHMpCisgICAgLi4uICAgICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKCcvJyk6CisgICAgLi4uICAgICAgICAgcGF0aCA9ICcvJyArIHBhdGgKKyAgICAuLi4gICAgIGlmIHZhcnM6CisgICAgLi4uICAgICAgICAgcGF0aCArPSAnPycgKyB1cmxsaWIudXJsZW5jb2RlKHZhcnMpCisgICAgLi4uICAgICByZXR1cm4gYmFzZV91cmwgKyBwYXRoCisKK05vdywgdG8gdGVzdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IGdldF9yZXF1ZXN0LnJlZ2lzdGVyKFJlcXVlc3QuYmxhbmsoJ2h0dHA6Ly9sb2NhbGhvc3QvJykpCisgICAgPj4+IHVybCgnYXJ0aWNsZScsIDEpCisgICAgJ2h0dHA6Ly9sb2NhbGhvc3QvYXJ0aWNsZS8xJworICAgID4+PiB1cmwoJ3NlYXJjaCcsIHE9J3NvbWUgcXVlcnknKQorICAgICdodHRwOi8vbG9jYWxob3N0L3NlYXJjaD9xPXNvbWUrcXVlcnknCisKK1RlbXBsYXRpbmcKKy0tLS0tLS0tLS0KKworV2VsbCwgd2UgZG9uJ3QgKnJlYWxseSogbmVlZCB0byBmYWN0b3IgdGVtcGxhdGluZyBpbnRvIG91ciBmcmFtZXdvcmsuICBBZnRlciBhbGwsIHlvdSByZXR1cm4gYSBzdHJpbmcgZnJvbSB5b3VyIGNvbnRyb2xsZXIsIGFuZCB5b3UgY2FuIGZpZ3VyZSBvdXQgb24geW91ciBvd24gaG93IHRvIGdldCBhIHJlbmRlcmVkIHN0cmluZyBmcm9tIGEgdGVtcGxhdGUuCisKK0J1dCB3ZSdsbCBhZGQgYSBsaXR0bGUgaGVscGVyLCBiZWNhdXNlIEkgdGhpbmsgaXQgc2hvd3MgYSBjbGV2ZXIgdHJpY2suCisKK1dlJ2xsIHVzZSBgVGVtcGl0YSA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy90ZW1waXRhLz5gXyBmb3IgdGVtcGxhdGluZywgbW9zdGx5IGJlY2F1c2UgaXQncyB2ZXJ5IHNpbXBsaXN0aWMgYWJvdXQgaG93IGl0IGRvZXMgbG9hZGluZy4gIFRoZSBiYXNpYyBmb3JtIGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgdGVtcGl0YQorICAgIHRlbXBsYXRlID0gdGVtcGl0YS5IVE1MVGVtcGxhdGUuZnJvbV9maWxlbmFtZSgnc29tZS1maWxlLmh0bWwnKQorCitCdXQgd2UnbGwgYmUgaW1wbGVtZW50aW5nIGEgZnVuY3Rpb24gYGByZW5kZXIodGVtcGxhdGVfbmFtZSwgKip2YXJzKWBgIHRoYXQgd2lsbCByZW5kZXIgdGhlIG5hbWVkIHRlbXBsYXRlLCB0cmVhdGluZyBpdCBhcyBhIHBhdGggKnJlbGF0aXZlIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVuZGVyKCkgY2FsbCouICBUaGF0J3MgdGhlIHRyaWNrLgorCitUbyBkbyB0aGF0IHdlIHVzZSBgYHN5cy5fZ2V0ZnJhbWVgYCwgd2hpY2ggaXMgYSB3YXkgdG8gbG9vayBhdCBpbmZvcm1hdGlvbiBpbiB0aGUgY2FsbGluZyBzY29wZS4gIEdlbmVyYWxseSB0aGlzIGlzIGZyb3duZWQgdXBvbiwgYnV0IEkgdGhpbmsgdGhpcyBjYXNlIGlzIGp1c3RpZmlhYmxlLgorCitXZSdsbCBhbHNvIGxldCB5b3UgcGFzcyBhbiBpbnN0YW50aWF0ZWQgdGVtcGxhdGUgaW4gaW5zdGVhZCBvZiBhIHRlbXBsYXRlIG5hbWUsIHdoaWNoIHdpbGwgYmUgdXNlZnVsIGluIHBsYWNlcyBsaWtlIGEgZG9jdGVzdCB3aGVyZSB0aGVyZSBhcmVuJ3Qgb3RoZXIgZmlsZXMgZWFzaWx5IGFjY2Vzc2libGUuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBpbXBvcnQgb3MKKyAgICA+Pj4gaW1wb3J0IHRlbXBpdGEgI2RvY3Rlc3Q6ICtTS0lQCisgICAgPj4+IGRlZiByZW5kZXIodGVtcGxhdGUsICoqdmFycyk6CisgICAgLi4uICAgICBpZiBpc2luc3RhbmNlKHRlbXBsYXRlLCBiYXNlc3RyaW5nKToKKyAgICAuLi4gICAgICAgICBjYWxsZXJfbG9jYXRpb24gPSBzeXMuX2dldGZyYW1lKDEpLmZfZ2xvYmFsc1snX19maWxlX18nXQorICAgIC4uLiAgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShjYWxsZXJfbG9jYXRpb24pLCB0ZW1wbGF0ZSkKKyAgICAuLi4gICAgICAgICB0ZW1wbGF0ZSA9IHRlbXBpdGEuSFRNTFRlbXBsYXRlLmZyb21fZmlsZW5hbWUoZmlsZW5hbWUpCisgICAgLi4uICAgICB2YXJzLnNldGRlZmF1bHQoJ3JlcXVlc3QnLCBnZXRfcmVxdWVzdCgpKQorICAgIC4uLiAgICAgcmV0dXJuIHRlbXBsYXRlLnN1YnN0aXR1dGUodmFycykKKworQ29uY2x1c2lvbgorLS0tLS0tLS0tLQorCitXZWxsLCB0aGF0J3MgYSBmcmFtZXdvcmsuICBUYS1kYSEKKworT2YgY291cnNlLCB0aGlzIGRvZXNuJ3QgZGVhbCB3aXRoIHNvbWUgb3RoZXIgc3R1ZmYuICBJbiBwYXJ0aWN1bGFyOgorCisqIENvbmZpZ3VyYXRpb24KKyogTWFraW5nIHlvdXIgcm91dGVzIGRlYnVnZ2FibGUKKyogRXhjZXB0aW9uIGNhdGNoaW5nIGFuZCBvdGhlciBiYXNpYyBpbmZyYXN0cnVjdHVyZQorKiBEYXRhYmFzZSBjb25uZWN0aW9ucworKiBGb3JtIGhhbmRsaW5nCisqIEF1dGhlbnRpY2F0aW9uCisKK0J1dCwgZm9yIG5vdywgdGhhdCdzIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoaXMgZG9jdW1lbnQuCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2RvY3Rlc3RzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvZG9jdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFlY2IzMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2RvY3Rlc3RzLnB5CkBAIC0wLDAgKzEsMTcgQEAKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IGRvY3Rlc3QKKworZGVmIHRlc3Rfc3VpdGUoKToKKyAgICBmbGFncyA9IGRvY3Rlc3QuRUxMSVBTSVN8ZG9jdGVzdC5OT1JNQUxJWkVfV0hJVEVTUEFDRQorICAgIHJldHVybiB1bml0dGVzdC5UZXN0U3VpdGUoKAorICAgICAgICBkb2N0ZXN0LkRvY0ZpbGVTdWl0ZSgndGVzdF9yZXF1ZXN0LnR4dCcsIG9wdGlvbmZsYWdzPWZsYWdzKSwKKyAgICAgICAgZG9jdGVzdC5Eb2NGaWxlU3VpdGUoJ3Rlc3RfcmVzcG9uc2UudHh0Jywgb3B0aW9uZmxhZ3M9ZmxhZ3MpLAorICAgICAgICBkb2N0ZXN0LkRvY0ZpbGVTdWl0ZSgndGVzdF9kZWMudHh0Jywgb3B0aW9uZmxhZ3M9ZmxhZ3MpLAorICAgICAgICBkb2N0ZXN0LkRvY0ZpbGVTdWl0ZSgnZG8taXQteW91cnNlbGYudHh0Jywgb3B0aW9uZmxhZ3M9ZmxhZ3MpLAorICAgICAgICBkb2N0ZXN0LkRvY0ZpbGVTdWl0ZSgnZmlsZS1leGFtcGxlLnR4dCcsIG9wdGlvbmZsYWdzPWZsYWdzKSwKKyAgICAgICAgZG9jdGVzdC5Eb2NGaWxlU3VpdGUoJ2luZGV4LnR4dCcsIG9wdGlvbmZsYWdzPWZsYWdzKSwKKyAgICAgICAgZG9jdGVzdC5Eb2NGaWxlU3VpdGUoJ3JlZmVyZW5jZS50eHQnLCBvcHRpb25mbGFncz1mbGFncyksCisgICAgICAgICkpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbihkZWZhdWx0VGVzdD0ndGVzdF9zdWl0ZScpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9maWxlLWV4YW1wbGUudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvZmlsZS1leGFtcGxlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2ZiYjY1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvZmlsZS1leGFtcGxlLnR4dApAQCAtMCwwICsxLDIyNCBAQAorV2ViT2IgRmlsZS1TZXJ2aW5nIEV4YW1wbGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgZG9jdW1lbnQgc2hvd3MgaG93IHlvdSBjYW4gbWFrZSBhIHN0YXRpYy1maWxlLXNlcnZpbmcgYXBwbGljYXRpb24KK3VzaW5nIFdlYk9iLiAgV2UnbGwgcXVpY2tseSBidWlsZCB0aGlzIHVwIGZyb20gbWluaW1hbCBmdW5jdGlvbmFsaXR5Cit0byBhIGhpZ2gtcXVhbGl0eSBmaWxlIHNlcnZpbmcgYXBwbGljYXRpb24uCisKKy4uIG5vdGU6OiBTdGFydGluZyBmcm9tIDEuMmI0LCBXZWJPYiBzaGlwcyB3aXRoIGEgOm1vZDpgd2Vib2Iuc3RhdGljYCBtb2R1bGUKKyAgICB3aGljaCBpbXBsZW1lbnRzIGEgOmNsYXNzOmB3ZWJvYi5zdGF0aWMuRmlsZUFwcGAgV1NHSSBhcHBsaWNhdGlvbiBzaW1pbGFyIHRvIHRoZQorICAgIG9uZSBkZXNjcmliZWQgYmVsb3cuCisKKyAgICBUaGlzIGRvY3VtZW50IHN0YXlzIGFzIGEgZGlkYWN0aWMgZXhhbXBsZSBob3cgdG8gc2VydmUgZmlsZXMgd2l0aCBXZWJPYiwgYnV0CisgICAgeW91IHNob3VsZCBjb25zaWRlciB1c2luZyBhcHBsaWNhdGlvbnMgZnJvbSA6bW9kOmB3ZWJvYi5zdGF0aWNgIGluCisgICAgcHJvZHVjdGlvbi4KKworLi4gY29tbWVudDoKKworICAgPj4+IGltcG9ydCB3ZWJvYiwgb3MKKyAgID4+PiBiYXNlX2RpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUod2Vib2IuX19maWxlX18pKQorICAgPj4+IGRvY19kaXIgPSBvcy5wYXRoLmpvaW4oYmFzZV9kaXIsICdkb2NzJykKKyAgID4+PiBmcm9tIGRvY3Rlc3QgaW1wb3J0IEVMTElQU0lTCisKK0ZpcnN0IHdlJ2xsIHNldHVwIGEgcmVhbGx5IHNpbXBsZSBzaGltIGFyb3VuZCBvdXIgYXBwbGljYXRpb24sIHdoaWNoCit3ZSBjYW4gdXNlIGFzIHdlIGltcHJvdmUgb3VyIGFwcGxpY2F0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiBmcm9tIHdlYm9iIGltcG9ydCBSZXF1ZXN0LCBSZXNwb25zZQorICAgPj4+IGltcG9ydCBvcworICAgPj4+IGNsYXNzIEZpbGVBcHAob2JqZWN0KToKKyAgIC4uLiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lKToKKyAgIC4uLiAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQorICAgLi4uICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgLi4uICAgICAgICAgcmVzID0gbWFrZV9yZXNwb25zZShzZWxmLmZpbGVuYW1lKQorICAgLi4uICAgICAgICAgcmV0dXJuIHJlcyhlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgID4+PiBpbXBvcnQgbWltZXR5cGVzCisgICA+Pj4gZGVmIGdldF9taW1ldHlwZShmaWxlbmFtZSk6CisgICAuLi4gICAgIHR5cGUsIGVuY29kaW5nID0gbWltZXR5cGVzLmd1ZXNzX3R5cGUoZmlsZW5hbWUpCisgICAuLi4gICAgICMgV2UnbGwgaWdub3JlIGVuY29kaW5nLCBldmVuIHRob3VnaCB3ZSBzaG91bGRuJ3QgcmVhbGx5CisgICAuLi4gICAgIHJldHVybiB0eXBlIG9yICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nCisKK05vdyB3ZSBjYW4gbWFrZSBkaWZmZXJlbnQgZGVmaW5pdGlvbnMgb2YgYGBtYWtlX3Jlc3BvbnNlYGAuICBUaGUKK3NpbXBsZXN0IHZlcnNpb246CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgPj4+IGRlZiBtYWtlX3Jlc3BvbnNlKGZpbGVuYW1lKToKKyAgIC4uLiAgICAgcmVzID0gUmVzcG9uc2UoY29udGVudF90eXBlPWdldF9taW1ldHlwZShmaWxlbmFtZSkpCisgICAuLi4gICAgIHJlcy5ib2R5ID0gb3BlbihmaWxlbmFtZSwgJ3JiJykucmVhZCgpCisgICAuLi4gICAgIHJldHVybiByZXMKKworTGV0J3MgZ2l2ZSBpdCBhIGdvLiAgV2UnbGwgdGVzdCBpdCBvdXQgd2l0aCBhIGZpbGUgYGB0ZXN0LWZpbGUudHh0YGAKK2luIHRoZSBXZWJPYiBkb2MgZGlyZWN0b3J5OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiBmbiA9IG9zLnBhdGguam9pbihkb2NfZGlyLCAndGVzdC1maWxlLnR4dCcpCisgICA+Pj4gb3BlbihmbikucmVhZCgpCisgICAnVGhpcyBpcyBhIHRlc3QuICBIZWxsbyB0ZXN0IHBlb3BsZSEnCisgICA+Pj4gYXBwID0gRmlsZUFwcChmbikKKyAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgID4+PiBwcmludCByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgIDIwMCBPSworICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CisgICBDb250ZW50LUxlbmd0aDogMzUKKyAgIDxCTEFOS0xJTkU+CisgICBUaGlzIGlzIGEgdGVzdC4gIEhlbGxvIHRlc3QgcGVvcGxlIQorCitXZWxsLCB0aGF0IHdvcmtlZC4gIEJ1dCBpdCdzIG5vdCBhIHZlcnkgZmFuY3kgb2JqZWN0LiAgRmlyc3QsIGl0IHJlYWRzCitldmVyeXRoaW5nIGludG8gbWVtb3J5LCBhbmQgdGhhdCdzIGJhZC4gIFdlJ2xsIGNyZWF0ZSBhbiBpdGVyYXRvciBpbnN0ZWFkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiBjbGFzcyBGaWxlSXRlcmFibGUob2JqZWN0KToKKyAgIC4uLiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lKToKKyAgIC4uLiAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQorICAgLi4uICAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAuLi4gICAgICAgICByZXR1cm4gRmlsZUl0ZXJhdG9yKHNlbGYuZmlsZW5hbWUpCisgICA+Pj4gY2xhc3MgRmlsZUl0ZXJhdG9yKG9iamVjdCk6CisgICAuLi4gICAgIGNodW5rX3NpemUgPSA0MDk2CisgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSk6CisgICAuLi4gICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKyAgIC4uLiAgICAgICAgIHNlbGYuZmlsZW9iaiA9IG9wZW4oc2VsZi5maWxlbmFtZSwgJ3JiJykKKyAgIC4uLiAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuIHNlbGYKKyAgIC4uLiAgICAgZGVmIG5leHQoc2VsZik6CisgICAuLi4gICAgICAgICBjaHVuayA9IHNlbGYuZmlsZW9iai5yZWFkKHNlbGYuY2h1bmtfc2l6ZSkKKyAgIC4uLiAgICAgICAgIGlmIG5vdCBjaHVuazoKKyAgIC4uLiAgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisgICAuLi4gICAgICAgICByZXR1cm4gY2h1bmsKKyAgIC4uLiAgICAgX19uZXh0X18gPSBuZXh0ICMgcHkzIGNvbXBhdAorICAgPj4+IGRlZiBtYWtlX3Jlc3BvbnNlKGZpbGVuYW1lKToKKyAgIC4uLiAgICAgcmVzID0gUmVzcG9uc2UoY29udGVudF90eXBlPWdldF9taW1ldHlwZShmaWxlbmFtZSkpCisgICAuLi4gICAgIHJlcy5hcHBfaXRlciA9IEZpbGVJdGVyYWJsZShmaWxlbmFtZSkKKyAgIC4uLiAgICAgcmVzLmNvbnRlbnRfbGVuZ3RoID0gb3MucGF0aC5nZXRzaXplKGZpbGVuYW1lKQorICAgLi4uICAgICByZXR1cm4gcmVzCisKK0FuZCB0ZXN0aW5nOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgID4+PiBwcmludCByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgIDIwMCBPSworICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CisgICBDb250ZW50LUxlbmd0aDogMzUKKyAgIDxCTEFOS0xJTkU+CisgICBUaGlzIGlzIGEgdGVzdC4gIEhlbGxvIHRlc3QgcGVvcGxlIQorCitXZWxsLCB0aGF0IGRvZXNuJ3QgKmxvb2sqIGRpZmZlcmVudCwgYnV0IGxldHMgKmltYWdpbmUqIHRoYXQgaXQncworZGlmZmVyZW50IGJlY2F1c2Ugd2Uga25vdyB3ZSBjaGFuZ2VkIHNvbWUgY29kZS4gIE5vdyB0byBhZGQgc29tZSBiYXNpYworbWV0YWRhdGEgdG8gdGhlIHJlc3BvbnNlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiBkZWYgbWFrZV9yZXNwb25zZShmaWxlbmFtZSk6CisgICAuLi4gICAgIHJlcyA9IFJlc3BvbnNlKGNvbnRlbnRfdHlwZT1nZXRfbWltZXR5cGUoZmlsZW5hbWUpLAorICAgLi4uICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbF9yZXNwb25zZT1UcnVlKQorICAgLi4uICAgICByZXMuYXBwX2l0ZXIgPSBGaWxlSXRlcmFibGUoZmlsZW5hbWUpCisgICAuLi4gICAgIHJlcy5jb250ZW50X2xlbmd0aCA9IG9zLnBhdGguZ2V0c2l6ZShmaWxlbmFtZSkKKyAgIC4uLiAgICAgcmVzLmxhc3RfbW9kaWZpZWQgPSBvcy5wYXRoLmdldG10aW1lKGZpbGVuYW1lKQorICAgLi4uICAgICByZXMuZXRhZyA9ICclcy0lcy0lcycgJSAob3MucGF0aC5nZXRtdGltZShmaWxlbmFtZSksCisgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmdldHNpemUoZmlsZW5hbWUpLCBoYXNoKGZpbGVuYW1lKSkKKyAgIC4uLiAgICAgcmV0dXJuIHJlcworCitOb3csIHdpdGggYGBjb25kaXRpb25hbF9yZXNwb25zZWBgIG9uLCBhbmQgd2l0aCBgYGxhc3RfbW9kaWZpZWRgYCBhbmQKK2BgZXRhZ2BgIHNldCwgd2UgY2FuIGRvIGNvbmRpdGlvbmFsIHJlcXVlc3RzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgID4+PiByZXMgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgID4+PiBwcmludCByZXMKKyAgIDIwMCBPSworICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CisgICBDb250ZW50LUxlbmd0aDogMzUKKyAgIExhc3QtTW9kaWZpZWQ6IC4uLiBHTVQKKyAgIEVUYWc6IC4uLi0uLi4KKyAgIDxCTEFOS0xJTkU+CisgICBUaGlzIGlzIGEgdGVzdC4gIEhlbGxvIHRlc3QgcGVvcGxlIQorICAgPj4+IHJlcTIgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgID4+PiByZXEyLmlmX25vbmVfbWF0Y2ggPSByZXMuZXRhZworICAgPj4+IHJlcTIuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgIDxSZXNwb25zZSAuLi4gMzA0IE5vdCBNb2RpZmllZD4KKyAgID4+PiByZXEzID0gUmVxdWVzdC5ibGFuaygnLycpCisgICA+Pj4gcmVxMy5pZl9tb2RpZmllZF9zaW5jZSA9IHJlcy5sYXN0X21vZGlmaWVkCisgICA+Pj4gcmVxMy5nZXRfcmVzcG9uc2UoYXBwKQorICAgPFJlc3BvbnNlIC4uLiAzMDQgTm90IE1vZGlmaWVkPgorCitXZSBjYW4gZXZlbiBkbyBSYW5nZSByZXF1ZXN0cywgYnV0IGl0IHdpbGwgY3VycmVudGx5IGludm9sdmUgaXRlcmF0aW5nCit0aHJvdWdoIHRoZSBmaWxlIHVubmVjZXNzYXJpbHkuICBXaGVuIHRoZXJlJ3MgYSByYW5nZSByZXF1ZXN0IChhbmQgeW91CitzZXQgYGBjb25kaXRpb25hbF9yZXNwb25zZT1UcnVlYGApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHNhdGlzZnkgdGhhdAorcmVxdWVzdC4gIEJ1dCB3aXRoIGFuIGFyYml0cmFyeSBpdGVyYXRvciB0aGUgb25seSB3YXkgdG8gZG8gdGhhdCBpcyB0bworcnVuIHRocm91Z2ggdGhlIGJlZ2lubmluZyBvZiB0aGUgaXRlcmF0b3IgdW50aWwgeW91IGdldCB0byB0aGUgY2h1bmsKK3RoYXQgdGhlIGNsaWVudCBhc2tlZCBmb3IuICBXZSBjYW4gZG8gYmV0dGVyIGJlY2F1c2Ugd2UgY2FuIHVzZQorYGBmaWxlb2JqLnNlZWsocG9zKWBgIHRvIG1vdmUgYXJvdW5kIHRoZSBmaWxlIG11Y2ggbW9yZSBlZmZpY2llbnRseS4KKworU28gd2UnbGwgYWRkIGFuIGV4dHJhIG1ldGhvZCwgYGBhcHBfaXRlcl9yYW5nZWBgLCB0aGF0IGBgUmVzcG9uc2VgYAorbG9va3MgZm9yOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiBjbGFzcyBGaWxlSXRlcmFibGUob2JqZWN0KToKKyAgIC4uLiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBzdGFydD1Ob25lLCBzdG9wPU5vbmUpOgorICAgLi4uICAgICAgICAgc2VsZi5maWxlbmFtZSA9IGZpbGVuYW1lCisgICAuLi4gICAgICAgICBzZWxmLnN0YXJ0ID0gc3RhcnQKKyAgIC4uLiAgICAgICAgIHNlbGYuc3RvcCA9IHN0b3AKKyAgIC4uLiAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuIEZpbGVJdGVyYXRvcihzZWxmLmZpbGVuYW1lLCBzZWxmLnN0YXJ0LCBzZWxmLnN0b3ApCisgICAuLi4gICAgIGRlZiBhcHBfaXRlcl9yYW5nZShzZWxmLCBzdGFydCwgc3RvcCk6CisgICAuLi4gICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5maWxlbmFtZSwgc3RhcnQsIHN0b3ApCisgICA+Pj4gY2xhc3MgRmlsZUl0ZXJhdG9yKG9iamVjdCk6CisgICAuLi4gICAgIGNodW5rX3NpemUgPSA0MDk2CisgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgc3RhcnQsIHN0b3ApOgorICAgLi4uICAgICAgICAgc2VsZi5maWxlbmFtZSA9IGZpbGVuYW1lCisgICAuLi4gICAgICAgICBzZWxmLmZpbGVvYmogPSBvcGVuKHNlbGYuZmlsZW5hbWUsICdyYicpCisgICAuLi4gICAgICAgICBpZiBzdGFydDoKKyAgIC4uLiAgICAgICAgICAgICBzZWxmLmZpbGVvYmouc2VlayhzdGFydCkKKyAgIC4uLiAgICAgICAgIGlmIHN0b3AgaXMgbm90IE5vbmU6CisgICAuLi4gICAgICAgICAgICAgc2VsZi5sZW5ndGggPSBzdG9wIC0gc3RhcnQKKyAgIC4uLiAgICAgICAgIGVsc2U6CisgICAuLi4gICAgICAgICAgICAgc2VsZi5sZW5ndGggPSBOb25lCisgICAuLi4gICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgIC4uLiAgICAgICAgIHJldHVybiBzZWxmCisgICAuLi4gICAgIGRlZiBuZXh0KHNlbGYpOgorICAgLi4uICAgICAgICAgaWYgc2VsZi5sZW5ndGggaXMgbm90IE5vbmUgYW5kIHNlbGYubGVuZ3RoIDw9IDA6CisgICAuLi4gICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorICAgLi4uICAgICAgICAgY2h1bmsgPSBzZWxmLmZpbGVvYmoucmVhZChzZWxmLmNodW5rX3NpemUpCisgICAuLi4gICAgICAgICBpZiBub3QgY2h1bms6CisgICAuLi4gICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorICAgLi4uICAgICAgICAgaWYgc2VsZi5sZW5ndGggaXMgbm90IE5vbmU6CisgICAuLi4gICAgICAgICAgICAgc2VsZi5sZW5ndGggLT0gbGVuKGNodW5rKQorICAgLi4uICAgICAgICAgICAgIGlmIHNlbGYubGVuZ3RoIDwgMDoKKyAgIC4uLiAgICAgICAgICAgICAgICAgIyBDaG9wIG9mZiB0aGUgZXh0cmE6CisgICAuLi4gICAgICAgICAgICAgICAgIGNodW5rID0gY2h1bmtbOnNlbGYubGVuZ3RoXQorICAgLi4uICAgICAgICAgcmV0dXJuIGNodW5rCisgICAuLi4gICAgIF9fbmV4dF9fID0gbmV4dCAjIHB5MyBjb21wYXQKKworTm93IHdlJ2xsIHRlc3QgaXQgb3V0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgID4+PiByZXMgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgID4+PiByZXEyID0gUmVxdWVzdC5ibGFuaygnLycpCisgICA+Pj4gIyBSZS1mZXRjaCB0aGUgZmlyc3QgNSBieXRlczoKKyAgID4+PiByZXEyLnJhbmdlID0gKDAsIDUpCisgICA+Pj4gcmVzMiA9IHJlcTIuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgID4+PiByZXMyCisgICA8UmVzcG9uc2UgLi4uIDIwNiBQYXJ0aWFsIENvbnRlbnQ+CisgICA+Pj4gIyBMZXQncyBjaGVjayBpdCdzIG91ciBjdXN0b20gY2xhc3M6CisgICA+Pj4gcmVzMi5hcHBfaXRlcgorICAgPEZpbGVJdGVyYWJsZSBvYmplY3QgYXQgLi4uPgorICAgPj4+IHJlczIuYm9keQorICAgJ1RoaXMgJworICAgPj4+ICMgTm93LCBjb25kaXRpb25hbCByYW5nZSBzdXBwb3J0OgorICAgPj4+IHJlcTMgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgID4+PiByZXEzLmlmX3JhbmdlID0gcmVzLmV0YWcKKyAgID4+PiByZXEzLnJhbmdlID0gKDAsIDUpCisgICA+Pj4gcmVxMy5nZXRfcmVzcG9uc2UoYXBwKQorICAgPFJlc3BvbnNlIC4uLiAyMDYgUGFydGlhbCBDb250ZW50PgorICAgPj4+IHJlcTMuaWZfcmFuZ2UgPSAnaW52YWxpZC1ldGFnJworICAgPj4+IHJlcTMuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgIDxSZXNwb25zZSAuLi4gMjAwIE9LPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvaW5kZXgudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvaW5kZXgudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZmYzMGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9pbmRleC50eHQKQEAgLTAsMCArMSwzMzggQEAKK1dlYk9iCisrKysrKworCisuLiB0b2N0cmVlOjoKKworICAgcmVmZXJlbmNlCisgICBtb2R1bGVzL3dlYm9iCisgICBtb2R1bGVzL2RlYworICAgbW9kdWxlcy9zdGF0aWMKKyAgIG1vZHVsZXMvZXhjZXB0aW9ucworICAgbW9kdWxlcy9jbGllbnQKKyAgIGRpZmZlcmVuY2VzCisgICBmaWxlLWV4YW1wbGUKKyAgIHdpa2ktZXhhbXBsZQorICAgY29tbWVudC1leGFtcGxlCisgICBqc29ucnBjLWV4YW1wbGUKKyAgIGRvLWl0LXlvdXJzZWxmCisgICBuZXdzCisgICBsaWNlbnNlCisKKy4uIGNvbnRlbnRzOjoKKworLi4gY29tbWVudDoKKworICAgID4+PiBmcm9tIGRvY3Rlc3QgaW1wb3J0IEVMTElQU0lTCisKKworU3RhdHVzICYgTGljZW5zZQorPT09PT09PT09PT09PT09PQorCitXZWJPYiBpcyBhbiBleHRyYWN0aW9uIGFuZCByZWZpbmVtZW50IG9mIHBpZWNlcyBmcm9tIGBQYXN0ZQorPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvPmBfLiAgSXQgaXMgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50LgorRGlzY3Vzc2lvbiBzaG91bGQgaGFwcGVuIG9uIHRoZSBgUGFzdGUgbWFpbGluZyBsaXN0cworPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvY29tbXVuaXR5Lz5gXywgYW5kIGJ1Z3MgY2FuIGdvIG9uIHRoZSBgaXNzdWUgdHJhY2tlcgorPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvaXNzdWVzPmBfLiAgSXQgd2FzIG9yaWdpbmFsbHkKK3dyaXR0ZW4gYnkgYElhbiBCaWNraW5nIDxodHRwOi8vaWFuYmlja2luZy5vcmcvPmBfLCBhbmQgaXMgYmVpbmcgbWFpbnRhaW5lZAorYnkgdGhlIGBQeWxvbnMgUHJvamVjdCA8aHR0cDovL3d3dy5weWxvbnNwcm9qZWN0Lm9yZy8+YC4KKworV2ViT2IgaXMgcmVsZWFzZWQgdW5kZXIgYW4gYE1JVC1zdHlsZSBsaWNlbnNlIDxsaWNlbnNlLmh0bWw+YF8uCisKK1dlYk9iIGRldmVsb3BtZW50IGhhcHBlbnMgb24gYEdpdEh1YiA8aHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYj5gXy4KK0RldmVsb3BtZW50IHZlcnNpb24gaXMgaW5zdGFsbGFibGUgdmlhIGBlYXN5X2luc3RhbGwKK3dlYm9iPT1kZXYgPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvemlwYmFsbC9tYXN0ZXI+YF9fLiAgWW91CitjYW4gY2xvbmUgdGhlIHNvdXJjZSBjb2RlIHdpdGg6OgorCisgICAgJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi5naXQKKworSW50cm9kdWN0aW9uCis9PT09PT09PT09PT0KKworV2ViT2IgcHJvdmlkZXMgb2JqZWN0cyBmb3IgSFRUUCByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLiAgU3BlY2lmaWNhbGx5CitpdCBkb2VzIHRoaXMgYnkgd3JhcHBpbmcgdGhlIGBXU0dJIDxodHRwOi8vd3NnaS5vcmc+YF8gcmVxdWVzdAorZW52aXJvbm1lbnQgYW5kIHJlc3BvbnNlIHN0YXR1cy9oZWFkZXJzL2FwcF9pdGVyKGJvZHkpLgorCitUaGUgcmVxdWVzdCBhbmQgcmVzcG9uc2Ugb2JqZWN0cyBwcm92aWRlIG1hbnkgY29udmVuaWVuY2VzIGZvciBwYXJzaW5nCitIVFRQIHJlcXVlc3QgYW5kIGZvcm1pbmcgSFRUUCByZXNwb25zZXMuICBCb3RoIG9iamVjdHMgYXJlIHJlYWQvd3JpdGU6CithcyBhIHJlc3VsdCwgV2ViT2IgaXMgYWxzbyBhIG5pY2Ugd2F5IHRvIGNyZWF0ZSBIVFRQIHJlcXVlc3RzIGFuZAorcGFyc2UgSFRUUCByZXNwb25zZXM7IGhvd2V2ZXIsIHdlIHdvbid0IGNvdmVyIHRoYXQgdXNlIGNhc2UgaW4gdGhpcworZG9jdW1lbnQuICBUaGUgYHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIDxyZWZlcmVuY2UuaHRtbD5gXyBzaG93cyBtYW55CitleGFtcGxlcyBvZiBjcmVhdGluZyByZXF1ZXN0cy4KKworUmVxdWVzdAorPT09PT09PQorCitUaGUgcmVxdWVzdCBvYmplY3QgaXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgYFdTR0kgZW52aXJvbiBkaWN0aW9uYXJ5Cis8aHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzMzLyNlbnZpcm9uLXZhcmlhYmxlcz5gXy4gIFRoaXMKK2RpY3Rpb25hcnkgY29udGFpbnMga2V5cyBmb3IgZWFjaCBoZWFkZXIsIGtleXMgdGhhdCBkZXNjcmliZSB0aGUKK3JlcXVlc3QgKGluY2x1ZGluZyB0aGUgcGF0aCBhbmQgcXVlcnkgc3RyaW5nKSwgYSBmaWxlLWxpa2Ugb2JqZWN0IGZvcgordGhlIHJlcXVlc3QgYm9keSwgYW5kIGEgdmFyaWV0eSBvZiBjdXN0b20ga2V5cy4gIFlvdSBjYW4gYWx3YXlzIGFjY2VzcwordGhlIGVudmlyb24gd2l0aCBgYHJlcS5lbnZpcm9uYGAuCisKK1NvbWUgb2YgdGhlIG1vc3QgaW1wb3J0YW50L2ludGVyZXN0aW5nIGF0dHJpYnV0ZXMgb2YgYSByZXF1ZXN0CitvYmplY3Q6CisKK2BgcmVxLm1ldGhvZGBgOgorICAgIFRoZSByZXF1ZXN0IG1ldGhvZCwgZS5nLiwgYGAnR0VUJ2BgLCBgYCdQT1NUJ2BgCisKK2BgcmVxLkdFVGBgOgorICAgIEEgYGRpY3Rpb25hcnktbGlrZSBvYmplY3RgXyB3aXRoIGFsbCB0aGUgdmFyaWFibGVzIGluIHRoZSBxdWVyeQorICAgIHN0cmluZy4KKworYGByZXEuUE9TVGBgOgorICAgIEEgYGRpY3Rpb25hcnktbGlrZSBvYmplY3RgXyB3aXRoIGFsbCB0aGUgdmFyaWFibGVzIGluIHRoZSByZXF1ZXN0CisgICAgYm9keS4gIFRoaXMgb25seSBoYXMgdmFyaWFibGVzIGlmIHRoZSByZXF1ZXN0IHdhcyBhIGBgUE9TVGBgIGFuZAorICAgIGl0IGlzIGEgZm9ybSBzdWJtaXNzaW9uLgorCitgYHJlcS5wYXJhbXNgYDoKKyAgICBBIGBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0YF8gd2l0aCBhIGNvbWJpbmF0aW9uIG9mIGV2ZXJ5dGhpbmcgaW4KKyAgICBgYHJlcS5HRVRgYCBhbmQgYGByZXEuUE9TVGBgLgorCitgYHJlcS5ib2R5YGA6CisgICAgVGhlIGNvbnRlbnRzIG9mIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LiAgVGhpcyBjb250YWlucyB0aGUgZW50aXJlCisgICAgcmVxdWVzdCBib2R5IGFzIGEgc3RyaW5nLiAgVGhpcyBpcyB1c2VmdWwgd2hlbiB0aGUgcmVxdWVzdCBpcyBhCisgICAgYGBQT1NUYGAgdGhhdCBpcyAqbm90KiBhIGZvcm0gc3VibWlzc2lvbiwgb3IgYSByZXF1ZXN0IGxpa2UgYQorICAgIGBgUFVUYGAuICBZb3UgY2FuIGFsc28gZ2V0IGBgcmVxLmJvZHlfZmlsZWBgIGZvciBhIGZpbGUtbGlrZQorICAgIG9iamVjdC4KKworYGByZXEuY29va2llc2BgOgorICAgIEEgc2ltcGxlIGRpY3Rpb25hcnkgb2YgYWxsIHRoZSBjb29raWVzLgorCitgYHJlcS5oZWFkZXJzYGA6CisgICAgQSBkaWN0aW9uYXJ5IG9mIGFsbCB0aGUgaGVhZGVycy4gIFRoaXMgaXMgZGljdGlvbmFyeSBpcyBjYXNlLWluc2Vuc2l0aXZlLgorCitgYHJlcS51cmx2YXJzYGAgYW5kIGBgcmVxLnVybGFyZ3NgYDoKKyAgICBgYHJlcS51cmx2YXJzYGAgaXMgdGhlIGtleXdvcmQgcGFyYW1ldGVycyBhc3NvY2lhdGVkIHdpdGggdGhlCisgICAgcmVxdWVzdCBVUkwuICBgYHJlcS51cmxhcmdzYGAgYXJlIHRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMuCisgICAgVGhlc2UgYXJlIHNldCBieSBwcm9kdWN0cyBsaWtlIGBSb3V0ZXMKKyAgICA8aHR0cDovL3JvdXRlcy5ncm9vdmllLm9yZy8+YF8gYW5kIGBTZWxlY3RvcgorICAgIDxodHRwOi8vbHVrZWFybm8uY29tL3Byb2plY3RzL3NlbGVjdG9yLz5gXy4KKworLi4gX2BkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0YDogI211bHRpZGljdAorCitBbHNvLCBmb3Igc3RhbmRhcmQgSFRUUCByZXF1ZXN0IGhlYWRlcnMgdGhlcmUgYXJlIHVzdWFsbHkgYXR0cmlidXRlcywKK2ZvciBpbnN0YW5jZTogYGByZXEuYWNjZXB0X2xhbmd1YWdlYGAsIGBgcmVxLmNvbnRlbnRfbGVuZ3RoYGAsCitgYHJlcS51c2VyX2FnZW50YGAsIGFzIGFuIGV4YW1wbGUuICBUaGVzZSBwcm9wZXJ0aWVzIGV4cG9zZSB0aGUKKypwYXJzZWQqIGZvcm0gb2YgZWFjaCBoZWFkZXIsIGZvciB3aGF0ZXZlciBwYXJzaW5nIG1ha2VzIHNlbnNlLiAgRm9yCitpbnN0YW5jZSwgYGByZXEuaWZfbW9kaWZpZWRfc2luY2VgYCByZXR1cm5zIGEgYGRhdGV0aW1lCis8aHR0cDovL3B5dGhvbi5vcmcvZG9jL2N1cnJlbnQvbGliL2RhdGV0aW1lLWRhdGV0aW1lLmh0bWw+YF8gb2JqZWN0Cisob3IgTm9uZSBpZiB0aGUgaGVhZGVyIGlzIHdhcyBub3QgcHJvdmlkZWQpLiAgRGV0YWlscyBhcmUgaW4gdGhlCitgUmVxdWVzdCByZWZlcmVuY2UgPGNsYXNzLXdlYm9iLlJlcXVlc3QuaHRtbD5gXy4KKworVVJMcworLS0tLQorCitJbiBhZGRpdGlvbiB0byB0aGVzZSBhdHRyaWJ1dGVzLCB0aGVyZSBhcmUgc2V2ZXJhbCB3YXlzIHRvIGdldCB0aGUgVVJMCitvZiB0aGUgcmVxdWVzdC4gIEknbGwgc2hvdyB2YXJpb3VzIHZhbHVlcyBmb3IgYW4gZXhhbXBsZSBVUkwKK2BgaHR0cDovL2xvY2FsaG9zdC9hcHAtcm9vdC9kb2M/YXJ0aWNsZV9pZD0xMGBgLCB3aGVyZSB0aGUgYXBwbGljYXRpb24KK2lzIG1vdW50ZWQgYXQgYGBodHRwOi8vbG9jYWxob3N0L2FwcC1yb290YGAuCisKK2BgcmVxLnVybGBgOgorICAgIFRoZSBmdWxsIHJlcXVlc3QgVVJMLCB3aXRoIHF1ZXJ5IHN0cmluZywgZS5nLiwKKyAgICBgYCdodHRwOi8vbG9jYWxob3N0L2FwcC1yb290L2RvYz9hcnRpY2xlX2lkPTEwJ2BgCisKK2BgcmVxLmFwcGxpY2F0aW9uX3VybGBgOgorICAgIFRoZSBVUkwgb2YgdGhlIGFwcGxpY2F0aW9uIChqdXN0IHRoZSBTQ1JJUFRfTkFNRSBwb3J0aW9uIG9mIHRoZQorICAgIHBhdGgsIG5vdCBQQVRIX0lORk8pLiAgRS5nLiwgYGAnaHR0cDovL2xvY2FsaG9zdC9hcHAtcm9vdCdgYAorCitgYHJlcS5ob3N0X3VybGBgOgorICAgIFRoZSBVUkwgd2l0aCB0aGUgaG9zdCwgZS5nLiwgYGAnaHR0cDovL2xvY2FsaG9zdCdgYAorCitgYHJlcS5yZWxhdGl2ZV91cmwodXJsLCB0b19hcHBsaWNhdGlvbj1GYWxzZSlgYDoKKyAgICBHaXZlcyBhIFVSTCwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgVVJMLiAgSWYgYGB0b19hcHBsaWNhdGlvbmBgCisgICAgaXMgVHJ1ZSwgdGhlbiByZXNvbHZlcyBpdCByZWxhdGl2ZSB0byBgYHJlcS5hcHBsaWNhdGlvbl91cmxgYC4KKworTWV0aG9kcworLS0tLS0tLQorCitUaGVyZSBhcmUgc2V2ZXJhbCBtZXRob2RzIGluIDpjbGFzczpgd2Vib2IuUmVxdWVzdGAgYnV0IG9ubHkgYSBmZXcgeW91J2xsIHVzZQorb2Z0ZW46CisKK2BgUmVxdWVzdC5ibGFuayhiYXNlX3VybClgYDoKKyAgICBDcmVhdGVzIGEgbmV3IHJlcXVlc3Qgd2l0aCBibGFuayBpbmZvcm1hdGlvbiwgYmFzZWQgYXQgdGhlIGdpdmVuCisgICAgVVJMLiAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBzdWJyZXF1ZXN0cyBhbmQgYXJ0aWZpY2lhbCByZXF1ZXN0cy4KKyAgICBZb3UgY2FuIGFsc28gdXNlIGBgcmVxLmNvcHkoKWBgIHRvIGNvcHkgYW4gZXhpc3RpbmcgcmVxdWVzdCwgb3IKKyAgICBmb3Igc3VicmVxdWVzdHMgYGByZXEuY29weV9nZXQoKWBgIHdoaWNoIGNvcGllcyB0aGUgcmVxdWVzdCBidXQKKyAgICBhbHdheXMgdHVybnMgaXQgaW50byBhIEdFVCAod2hpY2ggaXMgc2FmZXIgdG8gc2hhcmUgZm9yCisgICAgc3VicmVxdWVzdHMpLgorCitgYHJlcS5nZXRfcmVzcG9uc2Uod3NnaV9hcHBsaWNhdGlvbilgYDoKKyAgICBUaGlzIG1ldGhvZCBjYWxscyB0aGUgZ2l2ZW4gV1NHSSBhcHBsaWNhdGlvbiB3aXRoIHRoaXMgcmVxdWVzdCwKKyAgICBhbmQgcmV0dXJucyBhIGBSZXNwb25zZWBfIG9iamVjdC4gIFlvdSBjYW4gYWxzbyB1c2UgdGhpcyBmb3IKKyAgICBzdWJyZXF1ZXN0cyBvciB0ZXN0aW5nLgorCitVbmljb2RlCistLS0tLS0tCisKK01hbnkgb2YgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHJlcXVlc3Qgb2JqZWN0IHdpbGwgcmV0dXJuIHVuaWNvZGUKK3ZhbHVlcyBpZiB0aGUgcmVxdWVzdCBlbmNvZGluZy9jaGFyc2V0IGlzIHByb3ZpZGVkLiAgVGhlIGNsaWVudCAqY2FuKgoraW5kaWNhdGUgdGhlIGNoYXJzZXQgd2l0aCBzb21ldGhpbmcgbGlrZSBgYENvbnRlbnQtVHlwZToKK2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD11dGY4YGAsIGJ1dCBicm93c2VycyBzZWxkb20KK3NldCB0aGlzLiAgWW91IGNhbiBzZXQgdGhlIGNoYXJzZXQgd2l0aCBgYHJlcS5jaGFyc2V0ID0gJ3V0ZjgnYGAsIG9yCitkdXJpbmcgaW5zdGFudGlhdGlvbiB3aXRoIGBgUmVxdWVzdChlbnZpcm9uLCBjaGFyc2V0PSd1dGY4JylgYC4gIElmCit5b3Ugc3ViY2xhc3MgYGBSZXF1ZXN0YGAgeW91IGNhbiBhbHNvIHNldCBgYGNoYXJzZXRgYCBhcyBhIGNsYXNzLWxldmVsCithdHRyaWJ1dGUuCisKK0lmIGl0IGlzIHNldCwgdGhlbiBgYHJlcS5QT1NUYGAsIGBgcmVxLkdFVGBgLCBgYHJlcS5wYXJhbXNgYCwgYW5kCitgYHJlcS5jb29raWVzYGAgd2lsbCBjb250YWluIHVuaWNvZGUgc3RyaW5ncy4gIEVhY2ggaGFzIGEKK2NvcnJlc3BvbmRpbmcgYGByZXEuc3RyXypgYCAobGlrZSBgYHJlcS5zdHJfUE9TVGBgKSB0aGF0IGlzIGFsd2F5cworYGBzdHJgYCBhbmQgbmV2ZXIgdW5pY29kZS4KKworUmVzcG9uc2UKKz09PT09PT09CisKK1RoZSByZXNwb25zZSBvYmplY3QgbG9va3MgYSBsb3QgbGlrZSB0aGUgcmVxdWVzdCBvYmplY3QsIHRob3VnaCB3aXRoCitzb21lIGRpZmZlcmVuY2VzLiAgVGhlIHJlcXVlc3Qgb2JqZWN0IHdyYXBzIGEgc2luZ2xlIGBgZW52aXJvbmBgCitvYmplY3Q7IHRoZSByZXNwb25zZSBvYmplY3QgaGFzIHRocmVlIGZ1bmRhbWVudGFsIHBhcnRzIChiYXNlZCBvbgorV1NHSSk6CisKK2BgcmVzcG9uc2Uuc3RhdHVzYGA6CisgICAgVGhlIHJlc3BvbnNlIGNvZGUgcGx1cyBtZXNzYWdlLCBsaWtlIGBgJzIwMCBPSydgYC4gIFRvIHNldCB0aGUKKyAgICBjb2RlIHdpdGhvdXQgdGhlIHJlYXNvbiwgdXNlIGBgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPSAyMDBgYC4KKworYGByZXNwb25zZS5oZWFkZXJsaXN0YGA6CisgICAgQSBsaXN0IG9mIGFsbCB0aGUgaGVhZGVycywgbGlrZSBgYFsoJ0NvbnRlbnQtVHlwZScsCisgICAgJ3RleHQvaHRtbCcpXWBgLiAgVGhlcmUncyBhIGNhc2UtaW5zZW5zaXRpdmUgYGRpY3Rpb25hcnktbGlrZQorICAgIG9iamVjdGBfIGluIGBgcmVzcG9uc2UuaGVhZGVyc2BgIHRoYXQgYWxzbyBhbGxvd3MgeW91IHRvIGFjY2VzcworICAgIHRoZXNlIHNhbWUgaGVhZGVycy4KKworYGByZXNwb25zZS5hcHBfaXRlcmBgOgorICAgIEFuIGl0ZXJhYmxlIChzdWNoIGFzIGEgbGlzdCBvciBnZW5lcmF0b3IpIHRoYXQgd2lsbCBwcm9kdWNlIHRoZQorICAgIGNvbnRlbnQgb2YgdGhlIHJlc3BvbnNlLiAgVGhpcyBpcyBhbHNvIGFjY2Vzc2libGUgYXMKKyAgICBgYHJlc3BvbnNlLmJvZHlgYCAoYSBzdHJpbmcpLCBgYHJlc3BvbnNlLnVuaWNvZGVfYm9keWBgIChhCisgICAgdW5pY29kZSBvYmplY3QsIGluZm9ybWVkIGJ5IGBgcmVzcG9uc2UuY2hhcnNldGBgKSwgYW5kCisgICAgYGByZXNwb25zZS5ib2R5X2ZpbGVgYCAoYSBmaWxlLWxpa2Ugb2JqZWN0OyB3cml0aW5nIHRvIGl0IGFwcGVuZHMKKyAgICB0byBgYGFwcF9pdGVyYGApLgorCitFdmVyeXRoaW5nIGVsc2UgaW4gdGhlIG9iamVjdCBkZXJpdmVzIGZyb20gdGhpcyB1bmRlcmx5aW5nIHN0YXRlLgorSGVyZSdzIHRoZSBoaWdobGlnaHRzOgorCitgYHJlc3BvbnNlLmNvbnRlbnRfdHlwZWBgOgorICAgIFRoZSBjb250ZW50IHR5cGUgKm5vdCogaW5jbHVkaW5nIHRoZSBgYGNoYXJzZXRgYCBwYXJhbWV0ZXIuCisgICAgVHlwaWNhbCB1c2U6IGBgcmVzcG9uc2UuY29udGVudF90eXBlID0gJ3RleHQvaHRtbCdgYC4gIFlvdSBjYW4KKyAgICBzdWJjbGFzcyBgYFJlc3BvbnNlYGAgYW5kIGFkZCBhIGNsYXNzLWxldmVsIGF0dHJpYnV0ZQorICAgIGBgZGVmYXVsdF9jb250ZW50X3R5cGVgYCB0byBzZXQgdGhpcyBhdXRvbWF0aWNhbGx5IG9uCisgICAgaW5zdGFudGlhdGlvbi4KKworYGByZXNwb25zZS5jaGFyc2V0YGA6CisgICAgVGhlIGBgY2hhcnNldGBgIHBhcmFtZXRlciBvZiB0aGUgY29udGVudC10eXBlLCBpdCBhbHNvIGluZm9ybXMKKyAgICBlbmNvZGluZyBpbiBgYHJlc3BvbnNlLnVuaWNvZGVfYm9keWBgLgorICAgIGBgcmVzcG9uc2UuY29udGVudF90eXBlX3BhcmFtc2BgIGlzIGEgZGljdGlvbmFyeSBvZiBhbGwgdGhlCisgICAgcGFyYW1ldGVycy4KKworYGByZXNwb25zZS5yZXF1ZXN0YGA6CisgICAgVGhpcyBvcHRpb25hbCBhdHRyaWJ1dGUgY2FuIHBvaW50IHRvIHRoZSByZXF1ZXN0IG9iamVjdCBhc3NvY2lhdGVkCisgICAgd2l0aCB0aGlzIHJlc3BvbnNlIG9iamVjdC4KKworYGByZXNwb25zZS5zZXRfY29va2llKGtleSwgdmFsdWUsIG1heF9hZ2U9Tm9uZSwgcGF0aD0nLycsIGRvbWFpbj1Ob25lLCBzZWN1cmU9Tm9uZSwgaHR0cG9ubHk9RmFsc2UsIHZlcnNpb249Tm9uZSwgY29tbWVudD1Ob25lKWBgOgorICAgIFNldCBhIGNvb2tpZS4gIFRoZSBrZXl3b3JkIGFyZ3VtZW50cyBjb250cm9sIHRoZSB2YXJpb3VzIGNvb2tpZQorICAgIHBhcmFtZXRlcnMuICBUaGUgYGBtYXhfYWdlYGAgYXJndW1lbnQgaXMgdGhlIGxlbmd0aCBmb3IgdGhlIGNvb2tpZQorICAgIHRvIGxpdmUgaW4gc2Vjb25kcyAoeW91IG1heSBhbHNvIHVzZSBhIHRpbWVkZWx0YSBvYmplY3QpLiAgVGhlCisgICAgYEV4cGlyZXNgYCBrZXkgd2lsbCBhbHNvIGJlIHNldCBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYGBtYXhfYWdlYGAuCisKK2BgcmVzcG9uc2UuZGVsZXRlX2Nvb2tpZShrZXksIHBhdGg9Jy8nLCBkb21haW49Tm9uZSlgYDoKKyAgICBEZWxldGUgYSBjb29raWUgZnJvbSB0aGUgY2xpZW50LiAgVGhpcyBzZXRzIGBgbWF4X2FnZWBgIHRvIDAgYW5kCisgICAgdGhlIGNvb2tpZSB2YWx1ZSB0byBgYCcnYGAuCisKK2BgcmVzcG9uc2UuY2FjaGVfZXhwaXJlcyhzZWNvbmRzPTApYGA6CisgICAgVGhpcyBtYWtlcyB0aGlzIHJlc3BvbnNlIGNhY2hhYmxlIGZvciB0aGUgZ2l2ZW4gbnVtYmVyIG9mIHNlY29uZHMsCisgICAgb3IgaWYgYGBzZWNvbmRzYGAgaXMgMCB0aGVuIHRoZSByZXNwb25zZSBpcyB1bmNhY2hlYWJsZSAodGhpcyBhbHNvCisgICAgc2V0cyB0aGUgYGBFeHBpcmVzYGAgaGVhZGVyKS4KKworYGByZXNwb25zZShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSlgYDogVGhlIHJlc3BvbnNlIG9iamVjdCBpcyBhIFdTR0kKKyAgICBhcHBsaWNhdGlvbi4gIEFzIGFuIGFwcGxpY2F0aW9uLCBpdCBhY3RzIGFjY29yZGluZyB0byBob3cgeW91CisgICAgY3JlYXRlIGl0LiAgSXQgKmNhbiogZG8gY29uZGl0aW9uYWwgcmVzcG9uc2VzIGlmIHlvdSBwYXNzCisgICAgYGBjb25kaXRpb25hbF9yZXNwb25zZT1UcnVlYGAgd2hlbiBpbnN0YW50aWF0aW5nIChvciBzZXQgdGhhdAorICAgIGF0dHJpYnV0ZSBsYXRlcikuICBJdCBjYW4gYWxzbyBkbyBIRUFEIGFuZCBSYW5nZSByZXF1ZXN0cy4KKworSGVhZGVycworLS0tLS0tLQorCitMaWtlIHRoZSByZXF1ZXN0LCBtb3N0IEhUVFAgcmVzcG9uc2UgaGVhZGVycyBhcmUgYXZhaWxhYmxlIGFzCitwcm9wZXJ0aWVzLiAgVGhlc2UgYXJlIHBhcnNlZCwgc28geW91IGNhbiBkbyB0aGluZ3MgbGlrZQorYGByZXNwb25zZS5sYXN0X21vZGlmaWVkID0gb3MucGF0aC5nZXRtdGltZShmaWxlbmFtZSlgYC4KKworVGhlIGRldGFpbHMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgYGV4dHJhY3RlZCBSZXNwb25zZSBkb2N1bWVudGF0aW9uCis8Y2xhc3Mtd2Vib2IuUmVzcG9uc2UuaHRtbD5gXy4KKworSW5zdGFudGlhdGluZyB0aGUgUmVzcG9uc2UKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09mIGNvdXJzZSBtb3N0IG9mIHRoZSB0aW1lIHlvdSBqdXN0IHdhbnQgdG8gKm1ha2UqIGEgcmVzcG9uc2UuCitHZW5lcmFsbHkgYW55IGF0dHJpYnV0ZSBvZiB0aGUgcmVzcG9uc2UgY2FuIGJlIHBhc3NlZCBpbiBhcyBhIGtleXdvcmQKK2FyZ3VtZW50IHRvIHRoZSBjbGFzczsgZS5nLjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgIHJlc3BvbnNlID0gUmVzcG9uc2UoYm9keT0naGVsbG8gd29ybGQhJywgY29udGVudF90eXBlPSd0ZXh0L3BsYWluJykKKworVGhlIHN0YXR1cyBkZWZhdWx0cyB0byBgYCcyMDAgT0snYGAuICBUaGUgY29udGVudF90eXBlIGRvZXMgbm90CitkZWZhdWx0IHRvIGFueXRoaW5nLCB0aG91Z2ggaWYgeW91IHN1YmNsYXNzIGBgUmVzcG9uc2VgYCBhbmQgc2V0CitgYGRlZmF1bHRfY29udGVudF90eXBlYGAgeW91IGNhbiBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLgorCitFeGNlcHRpb25zCis9PT09PT09PT09CisKK1RvIGZhY2lsaXRhdGUgZXJyb3IgcmVzcG9uc2VzIGxpa2UgNDA0IE5vdCBGb3VuZCwgdGhlIG1vZHVsZQorYGB3ZWJvYi5leGNgYCBjb250YWlucyBjbGFzc2VzIGZvciBlYWNoIGtpbmQgb2YgZXJyb3IgcmVzcG9uc2UuICBUaGVzZQoraW5jbHVkZSBib3JpbmcgYnV0IGFwcHJvcHJpYXRlIGVycm9yIGJvZGllcy4KKworRWFjaCBjbGFzcyBpcyBuYW1lZCBgYHdlYm9iLmV4Yy5IVFRQKmBgLCB3aGVyZSBgYCpgYCBpcyB0aGUgcmVhc29uIGZvcgordGhlIGVycm9yLiAgRm9yIGluc3RhbmNlLCBgYHdlYm9iLmV4Yy5IVFRQTm90Rm91bmRgYC4gIEl0IHN1YmNsYXNzZXMKK2BgUmVzcG9uc2VgYCwgc28geW91IGNhbiBtYW5pcHVsYXRlIHRoZSBpbnN0YW5jZXMgaW4gdGhlIHNhbWUgd2F5LiAgQQordHlwaWNhbCBleGFtcGxlIGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICByZXNwb25zZSA9IEhUVFBOb3RGb3VuZCgnVGhlcmUgaXMgbm8gc3VjaCByZXNvdXJjZScpCisgICAgIyBvcjoKKyAgICByZXNwb25zZSA9IEhUVFBNb3ZlZFBlcm1hbmVudGx5KGxvY2F0aW9uPW5ld191cmwpCisKK1lvdSBjYW4gdXNlIHRoaXMgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgdHJ5OgorICAgICAgICAuLi4gc3R1ZmYgLi4uCisgICAgICAgIHJhaXNlIEhUVFBOb3RGb3VuZCgnTm8gc3VjaCByZXNvdXJjZScpCisgICAgZXhjZXB0IEhUVFBFeGNlcHRpb24sIGU6CisgICAgICAgIHJldHVybiBlKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCitUaGUgZXhjZXB0aW9ucyBhcmUgc3RpbGwgV1NHSSBhcHBsaWNhdGlvbnMsIGJ1dCB5b3UgY2Fubm90IHNldAorYXR0cmlidXRlcyBsaWtlIGBgY29udGVudF90eXBlYGAsIGBgY2hhcnNldGBgLCBldGMuIG9uIHRoZXNlIGV4Y2VwdGlvbgorb2JqZWN0cy4KKworTXVsdGlkaWN0Cis9PT09PT09PT0KKworU2V2ZXJhbCBwYXJ0cyBvZiBXZWJPYiB1c2UgYSAibXVsdGlkaWN0IjsgdGhpcyBpcyBhIGRpY3Rpb25hcnkgd2hlcmUgYQora2V5IGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcy4gIFRoZSBxdWludGVzc2VudGlhbCBleGFtcGxlIGlzIGEgcXVlcnkKK3N0cmluZyBsaWtlIGBgP3ByZWY9cmVkJnByZWY9Ymx1ZWBgOyB0aGUgYGBwcmVmYGAgdmFyaWFibGUgaGFzIHR3bwordmFsdWVzOiBgYHJlZGBgIGFuZCBgYGJsdWVgYC4KKworSW4gYSBtdWx0aWRpY3QsIHdoZW4geW91IGRvIGBgcmVxdWVzdC5HRVRbJ3ByZWYnXWBgIHlvdSdsbCBnZXQgYmFjaworb25seSBgYCdibHVlJ2BgICh0aGUgbGFzdCB2YWx1ZSBvZiBgYHByZWZgYCkuICBTb21ldGltZXMgcmV0dXJuaW5nIGEKK3N0cmluZywgYW5kIHNvbWV0aW1lcyByZXR1cm5pbmcgYSBsaXN0LCBpcyB0aGUgY2F1c2Ugb2YgZnJlcXVlbnQKK2V4Y2VwdGlvbnMuICBJZiB5b3Ugd2FudCAqYWxsKiB0aGUgdmFsdWVzIGJhY2ssIHVzZQorYGByZXF1ZXN0LkdFVC5nZXRhbGwoJ3ByZWYnKWBgLiAgSWYgeW91IHdhbnQgdG8gYmUgc3VyZSB0aGVyZSBpcyAqb25lCithbmQgb25seSBvbmUqIHZhbHVlLCB1c2UgYGByZXF1ZXN0LkdFVC5nZXRvbmUoJ3ByZWYnKWBgLCB3aGljaCB3aWxsCityYWlzZSBhbiBleGNlcHRpb24gaWYgdGhlcmUgaXMgemVybyBvciBtb3JlIHRoYW4gb25lIHZhbHVlIGZvcgorYGBwcmVmYGAuCisKK1doZW4geW91IHVzZSBvcGVyYXRpb25zIGxpa2UgYGByZXF1ZXN0LkdFVC5pdGVtcygpYGAgeW91J2xsIGdldCBiYWNrCitzb21ldGhpbmcgbGlrZSBgYFsoJ3ByZWYnLCAncmVkJyksICgncHJlZicsICdibHVlJyldYGAuICBBbGwgdGhlCitrZXkvdmFsdWUgcGFpcnMgd2lsbCBzaG93IHVwLiAgU2ltaWxhcmx5IGBgcmVxdWVzdC5HRVQua2V5cygpYGAKK3JldHVybnMgYGBbJ3ByZWYnLCAncHJlZiddYGAuICBNdWx0aWRpY3QgaXMgYSB2aWV3IG9uIGEgbGlzdCBvZgordHVwbGVzOyBhbGwgdGhlIGtleXMgYXJlIG9yZGVyZWQsIGFuZCBhbGwgdGhlIHZhbHVlcyBhcmUgb3JkZXJlZC4KKworRXhhbXBsZQorPT09PT09PQorCitUaGUgYGZpbGUtc2VydmluZyBleGFtcGxlIDxmaWxlLWV4YW1wbGUuaHRtbD5gXyBzaG93cyBob3cgdG8gZG8gbW9yZQorYWR2YW5jZWQgSFRUUCB0ZWNobmlxdWVzLCB3aGlsZSB0aGUgYGNvbW1lbnQgbWlkZGxld2FyZSBleGFtcGxlCis8Y29tbWVudC1leGFtcGxlLmh0bWw+YF8gc2hvd3MgbWlkZGxld2FyZS4gIEZvciBhcHBsaWNhdGlvbnMgaXQncyBtb3JlCityZWFzb25hYmxlIHRvIHVzZSBXZWJPYiBpbiB0aGUgY29udGV4dCBvZiBhIGxhcmdlciBmcmFtZXdvcmsuICBgUHlsb25zCis8aHR0cDovL3B5bG9uc2hxLmNvbT5gXyB1c2VzIFdlYk9iIGluIDAuOS43Ky4KKworLi4gbWV0YTo6CisgICA6Z29vZ2xlLXNpdGUtdmVyaWZpY2F0aW9uOiAxb0RkNTlqWFBhQzB3emdQbjNnNmNGTUktUXZFSGpraDgtMnJsWmVYcXdjCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9qc29ucnBjLWV4YW1wbGUtY29kZS9qc29ucnBjLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvanNvbnJwYy1leGFtcGxlLWNvZGUvanNvbnJwYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDM4OTkyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvanNvbnJwYy1leGFtcGxlLWNvZGUvanNvbnJwYy5weQpAQCAtMCwwICsxLDE5MyBAQAorIyBBIHJlYWN0aW9uIHRvOiBodHRwOi8vYXNwbi5hY3RpdmVzdGF0ZS5jb20vQVNQTi9Db29rYm9vay9QeXRob24vUmVjaXBlLzU1Mjc1MQorZnJvbSB3ZWJvYiBpbXBvcnQgUmVxdWVzdCwgUmVzcG9uc2UKK2Zyb20gd2Vib2IgaW1wb3J0IGV4YworZnJvbSBzaW1wbGVqc29uIGltcG9ydCBsb2FkcywgZHVtcHMKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCBzeXMKKworY2xhc3MgSnNvblJwY0FwcChvYmplY3QpOgorICAgICIiIgorICAgIFNlcnZlIHRoZSBnaXZlbiBvYmplY3QgdmlhIGpzb24tcnBjIChodHRwOi8vanNvbi1ycGMub3JnLykKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvYmopOgorICAgICAgICBzZWxmLm9iaiA9IG9iagorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgcmVxID0gUmVxdWVzdChlbnZpcm9uKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXNwID0gc2VsZi5wcm9jZXNzKHJlcSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICByZXNwID0gZXhjLkhUVFBCYWRSZXF1ZXN0KHN0cihlKSkKKyAgICAgICAgZXhjZXB0IGV4Yy5IVFRQRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcmVzcCA9IGUKKyAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgcHJvY2VzcyhzZWxmLCByZXEpOgorICAgICAgICBpZiBub3QgcmVxLm1ldGhvZCA9PSAnUE9TVCc6CisgICAgICAgICAgICByYWlzZSBleGMuSFRUUE1ldGhvZE5vdEFsbG93ZWQoCisgICAgICAgICAgICAgICAgIk9ubHkgUE9TVCBhbGxvd2VkIiwKKyAgICAgICAgICAgICAgICBhbGxvd2VkPSdQT1NUJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAganNvbiA9IGxvYWRzKHJlcS5ib2R5KQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCBKU09OOiAlcycgJSBlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBtZXRob2QgPSBqc29uWydtZXRob2QnXQorICAgICAgICAgICAgcGFyYW1zID0ganNvblsncGFyYW1zJ10KKyAgICAgICAgICAgIGlkID0ganNvblsnaWQnXQorICAgICAgICBleGNlcHQgS2V5RXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJKU09OIGJvZHkgbWlzc2luZyBwYXJhbWV0ZXI6ICVzIiAlIGUpCisgICAgICAgIGlmIG1ldGhvZC5zdGFydHN3aXRoKCdfJyk6CisgICAgICAgICAgICByYWlzZSBleGMuSFRUUEZvcmJpZGRlbigKKyAgICAgICAgICAgICAgICAiQmFkIG1ldGhvZCBuYW1lICVzOiBtdXN0IG5vdCBzdGFydCB3aXRoIF8iICUgbWV0aG9kKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwYXJhbXMsIGxpc3QpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAiQmFkIHBhcmFtcyAlcjogbXVzdCBiZSBhIGxpc3QiICUgcGFyYW1zKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHNlbGYub2JqLCBtZXRob2QpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIk5vIHN1Y2ggbWV0aG9kICVzIiAlIG1ldGhvZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gbWV0aG9kKCpwYXJhbXMpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHRleHQgPSB0cmFjZWJhY2suZm9ybWF0X2V4YygpCisgICAgICAgICAgICBleGNfdmFsdWUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAgICAgICAgZXJyb3JfdmFsdWUgPSBkaWN0KAorICAgICAgICAgICAgICAgIG5hbWU9J0pTT05SUENFcnJvcicsCisgICAgICAgICAgICAgICAgY29kZT0xMDAsCisgICAgICAgICAgICAgICAgbWVzc2FnZT1zdHIoZXhjX3ZhbHVlKSwKKyAgICAgICAgICAgICAgICBlcnJvcj10ZXh0KQorICAgICAgICAgICAgcmV0dXJuIFJlc3BvbnNlKAorICAgICAgICAgICAgICAgIHN0YXR1cz01MDAsCisgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdhcHBsaWNhdGlvbi9qc29uJywKKyAgICAgICAgICAgICAgICBib2R5PWR1bXBzKGRpY3QocmVzdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPWVycm9yX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1pZCkpKQorICAgICAgICByZXR1cm4gUmVzcG9uc2UoCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nLAorICAgICAgICAgICAgYm9keT1kdW1wcyhkaWN0KHJlc3VsdD1yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1pZCkpKQorCisKK2NsYXNzIFNlcnZlclByb3h5KG9iamVjdCk6CisgICAgIiIiCisgICAgSlNPTiBwcm94eSB0byBhIHJlbW90ZSBzZXJ2aWNlLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybCwgcHJveHk9Tm9uZSk6CisgICAgICAgIHNlbGYuX3VybCA9IHVybAorICAgICAgICBpZiBwcm94eSBpcyBOb25lOgorICAgICAgICAgICAgZnJvbSB3c2dpcHJveHkuZXhhY3Rwcm94eSBpbXBvcnQgcHJveHlfZXhhY3RfcmVxdWVzdAorICAgICAgICAgICAgcHJveHkgPSBwcm94eV9leGFjdF9yZXF1ZXN0CisgICAgICAgIHNlbGYucHJveHkgPSBwcm94eQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoJ18nKToKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCisgICAgICAgIHJldHVybiBfTWV0aG9kKHNlbGYsIG5hbWUpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzIGZvciAlcz4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuX3VybCkKKworY2xhc3MgX01ldGhvZChvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbmFtZSk6CisgICAgICAgIHNlbGYucGFyZW50ID0gcGFyZW50CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIGpzb24gPSBkaWN0KG1ldGhvZD1zZWxmLm5hbWUsCisgICAgICAgICAgICAgICAgICAgIGlkPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIHBhcmFtcz1saXN0KGFyZ3MpKQorICAgICAgICByZXEgPSBSZXF1ZXN0LmJsYW5rKHNlbGYucGFyZW50Ll91cmwpCisgICAgICAgIHJlcS5tZXRob2QgPSAnUE9TVCcKKyAgICAgICAgcmVxLmNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uJworICAgICAgICByZXEuYm9keSA9IGR1bXBzKGpzb24pCisgICAgICAgIHJlc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKHNlbGYucGFyZW50LnByb3h5KQorICAgICAgICBpZiByZXNwLnN0YXR1c19jb2RlICE9IDIwMCBhbmQgbm90ICgKKyAgICAgICAgICAgIHJlc3Auc3RhdHVzX2NvZGUgPT0gNTAwCisgICAgICAgICAgICBhbmQgcmVzcC5jb250ZW50X3R5cGUgPT0gJ2FwcGxpY2F0aW9uL2pzb24nKToKKyAgICAgICAgICAgIHJhaXNlIFByb3h5RXJyb3IoCisgICAgICAgICAgICAgICAgIkVycm9yIGZyb20gSlNPTi1SUEMgY2xpZW50ICVzOiAlcyIKKyAgICAgICAgICAgICAgICAlIChzZWxmLnBhcmVudC5fdXJsLCByZXNwLnN0YXR1cyksCisgICAgICAgICAgICAgICAgcmVzcCkKKyAgICAgICAganNvbiA9IGxvYWRzKHJlc3AuYm9keSkKKyAgICAgICAgaWYganNvbi5nZXQoJ2Vycm9yJykgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBlID0gRmF1bHQoCisgICAgICAgICAgICAgICAganNvblsnZXJyb3InXS5nZXQoJ21lc3NhZ2UnKSwKKyAgICAgICAgICAgICAgICBqc29uWydlcnJvciddLmdldCgnY29kZScpLAorICAgICAgICAgICAgICAgIGpzb25bJ2Vycm9yJ10uZ2V0KCdlcnJvcicpLAorICAgICAgICAgICAgICAgIHJlc3ApCisgICAgICAgICAgICByYWlzZSBlCisgICAgICAgIHJldHVybiBqc29uWydyZXN1bHQnXQorCitjbGFzcyBQcm94eUVycm9yKEV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgUmFpc2VkIHdoZW4gYSByZXF1ZXN0IHZpYSBTZXJ2ZXJQcm94eSBicmVha3MKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgcmVzcG9uc2UpOgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwgbWVzc2FnZSkKKyAgICAgICAgc2VsZi5yZXNwb25zZSA9IHJlc3BvbnNlCisKK2NsYXNzIEZhdWx0KEV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgUmFpc2VkIHdoZW4gdGhlcmUgaXMgYSByZW1vdGUgZXJyb3IKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgY29kZSwgZXJyb3IsIHJlc3BvbnNlKToKKyAgICAgICAgRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpCisgICAgICAgIHNlbGYuY29kZSA9IGNvZGUKKyAgICAgICAgc2VsZi5lcnJvciA9IGVycm9yCisgICAgICAgIHNlbGYucmVzcG9uc2UgPSByZXNwb25zZQorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJ01ldGhvZCBlcnJvciBjYWxsaW5nICVzOiAlc1xuJXMnICUgKAorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5yZXF1ZXN0LnVybCwKKyAgICAgICAgICAgIHNlbGYuYXJnc1swXSwKKyAgICAgICAgICAgIHNlbGYuZXJyb3IpCisKK2NsYXNzIERlbW9PYmplY3Qob2JqZWN0KToKKyAgICAiIiIKKyAgICBTb21ldGhpbmcgaW50ZXJlc3RpbmcgdG8gYXR0YWNoIHRvCisgICAgIiIiCisgICAgZGVmIGFkZChzZWxmLCAqYXJncyk6CisgICAgICAgIHJldHVybiBzdW0oYXJncykKKyAgICBkZWYgYXZlcmFnZShzZWxmLCAqYXJncyk6CisgICAgICAgIHJldHVybiBzdW0oYXJncykgLyBmbG9hdChsZW4oYXJncykpCisgICAgZGVmIGRpdmlkZShzZWxmLCBhLCBiKToKKyAgICAgICAgcmV0dXJuIGEgLyBiCisKK2RlZiBtYWtlX2FwcChleHByKToKKyAgICBtb2R1bGUsIGV4cHJlc3Npb24gPSBleHByLnNwbGl0KCc6JywgMSkKKyAgICBfX2ltcG9ydF9fKG1vZHVsZSkKKyAgICBtb2R1bGUgPSBzeXMubW9kdWxlc1ttb2R1bGVdCisgICAgb2JqID0gZXZhbChleHByZXNzaW9uLCBtb2R1bGUuX19kaWN0X18pCisgICAgcmV0dXJuIEpzb25ScGNBcHAob2JqKQorCitkZWYgbWFpbihhcmdzPU5vbmUpOgorICAgIGltcG9ydCBvcHRwYXJzZQorICAgIGZyb20gd3NnaXJlZiBpbXBvcnQgc2ltcGxlX3NlcnZlcgorICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigKKyAgICAgICAgdXNhZ2U9JyVwcm9nIFtPUFRJT05TXSBNT0RVTEU6RVhQUkVTU0lPTicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgICAgICctcCcsICctLXBvcnQnLCBkZWZhdWx0PSc4MDgwJywKKyAgICAgICAgaGVscD0nUG9ydCB0byBzZXJ2ZSBvbiAoZGVmYXVsdCA4MDgwKScpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgICAgICctSCcsICctLWhvc3QnLCBkZWZhdWx0PScxMjcuMC4wLjEnLAorICAgICAgICBoZWxwPSdIb3N0IHRvIHNlcnZlIG9uIChkZWZhdWx0IGxvY2FsaG9zdDsgMC4wLjAuMCB0byBtYWtlIHB1YmxpYyknKQorICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgaWYgbm90IGFyZ3Mgb3IgbGVuKGFyZ3MpID4gMToKKyAgICAgICAgcHJpbnQgJ1lvdSBtdXN0IGdpdmUgYSBzaW5nbGUgb2JqZWN0IHJlZmVyZW5jZScKKyAgICAgICAgcGFyc2VyLnByaW50X2hlbHAoKQorICAgICAgICBzeXMuZXhpdCgyKQorICAgIGFwcCA9IG1ha2VfYXBwKGFyZ3NbMF0pCisgICAgc2VydmVyID0gc2ltcGxlX3NlcnZlci5tYWtlX3NlcnZlcihvcHRpb25zLmhvc3QsIGludChvcHRpb25zLnBvcnQpLCBhcHApCisgICAgcHJpbnQgJ1NlcnZpbmcgb24gaHR0cDovLyVzOiVzJyAlIChvcHRpb25zLmhvc3QsIG9wdGlvbnMucG9ydCkKKyAgICBzZXJ2ZXIuc2VydmVfZm9yZXZlcigpCisgICAgIyBUcnkgcHl0aG9uIGpzb25ycGMucHkgJ2pzb25ycGM6RGVtb09iamVjdCgpJworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvanNvbnJwYy1leGFtcGxlLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2pzb25ycGMtZXhhbXBsZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAzN2M3MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2pzb25ycGMtZXhhbXBsZS50eHQKQEAgLTAsMCArMSw2NTMgQEAKK0pTT04tUlBDIEV4YW1wbGUKKz09PT09PT09PT09PT09PT0KKworLi4gY29udGVudHM6OgorCis6YXV0aG9yOiBJYW4gQmlja2luZworCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCitUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHdyaXRlIGEgd2ViIHNlcnZpY2UgdXNpbmcgV2ViT2IuICBUaGUKK2V4YW1wbGUgc2hvd3MgaG93IHRvIGNyZWF0ZSBhIGBKU09OLVJQQyA8aHR0cDovL2pzb24tcnBjLm9yZy8+YF8KK2VuZHBvaW50IHVzaW5nIFdlYk9iIGFuZCB0aGUgYHNpbXBsZWpzb24KKzxodHRwOi8vd3d3LnVuZGVmaW5lZC5vcmcvcHl0aG9uLyNzaW1wbGVqc29uPmBfIEpTT04gbGlicmFyeS4gIFRoaXMKK2Fsc28gc2hvd3MgaG93IHRvIHVzZSBXZWJPYiBhcyBhIGNsaWVudCBsaWJyYXJ5IHVzaW5nIGBXU0dJUHJveHkKKzxodHRwOi8vcHl0aG9ucGFzdGUub3JnL3dzZ2lwcm94eS8+YF8uCisKK1doaWxlIHRoaXMgZXhhbXBsZSBwcmVzZW50cyBKU09OLVJQQywgdGhpcyBpcyBub3QgYW4gZW5kb3JzZW1lbnQgb2YKK0pTT04tUlBDLiAgSW4gZmFjdCBJIGRvbid0IGxpa2UgSlNPTi1SUEMuICBJdCdzIHVubmVjZXNzYXJpbHkKK3VuLVJFU1RmdWwsIGFuZCBtb2RlbGxlZCB0b28gY2xvc2VseSBvbiBgWE1MLVJQQworPGh0dHA6Ly93d3cueG1scnBjLmNvbS8+YF8uCisKK0NvZGUKKy0tLS0KKworVGhlIGZpbmlzaGVkIGNvZGUgZm9yIHRoaXMgaXMgYXZhaWxhYmxlIGluCitgZG9jcy9qc29uLWV4YW1wbGUtY29kZS9qc29ucnBjLnB5Cis8aHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi90cmVlL21hc3Rlci9kb2NzL2pzb25ycGMtZXhhbXBsZS1jb2RlL2pzb25ycGMucHk+YF8KKy0tIHlvdSBjYW4gcnVuIHRoYXQgZmlsZSBhcyBhIHNjcmlwdCB0byB0cnkgaXQgb3V0LCBvciBpbXBvcnQgaXQuCisKK0NvbmNlcHRzCistLS0tLS0tLQorCitKU09OLVJQQyB3cmFwcyBhbiBvYmplY3QsIGFsbG93aW5nIHlvdSB0byBjYWxsIG1ldGhvZHMgb24gdGhhdCBvYmplY3QKK2FuZCBnZXQgdGhlIHJldHVybiB2YWx1ZXMuICBJdCBhbHNvIHByb3ZpZGVzIGEgd2F5IHRvIGdldCBlcnJvcgorcmVzcG9uc2VzLgorCitUaGUgYHNwZWNpZmljYXRpb24KKzxodHRwOi8vanNvbi1ycGMub3JnL3dkL0pTT04tUlBDLTEtMS1XRC0yMDA2MDgwNy5odG1sPmBfIGdvZXMgaW50byB0aGUKK2RldGFpbHMgKHRob3VnaCBpbiBhIHZhZ3VlIHNvcnQgb2Ygd2F5KS4gIEhlcmUncyB0aGUgYmFzaWNzOgorCisqIEFsbCBhY2Nlc3MgZ29lcyB0aHJvdWdoIGEgUE9TVCB0byBhIHNpbmdsZSBVUkwuCisKKyogVGhlIFBPU1QgY29udGFpbnMgYSBKU09OIGJvZHkgdGhhdCBsb29rcyBsaWtlOjoKKworICAgeyJtZXRob2QiOiAibWV0aG9kTmFtZSIsCisgICAgImlkIjogImFyYml0cmFyeS1zb21ldGhpbmciLAorICAgICJwYXJhbXMiOiBbYXJnMSwgYXJnMiwgLi4uXX0KKworKiBUaGUgYGBpZGBgIHBhcmFtZXRlciBpcyBqdXN0IGEgY29udmVuaWVuY2UgZm9yIHRoZSBjbGllbnQgdG8ga2VlcAorICB0cmFjayBvZiB3aGljaCByZXNwb25zZSBnb2VzIHdpdGggd2hpY2ggcmVxdWVzdC4gIFRoaXMgbWFrZXMKKyAgYXN5bmNocm9ub3VzIGNhbGxzIChsaWtlIGFuIFhNTEh0dHBSZXF1ZXN0KSBlYXNpZXIuICBXZSBqdXN0IHNlbmQKKyAgdGhlIGV4YWN0IHNhbWUgaWQgYmFjayBhcyB3ZSBnZXQsIHdlIG5ldmVyIGxvb2sgYXQgaXQuCisKKyogVGhlIHJlc3BvbnNlIGlzIEpTT04uICBBIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgbG9va3MgbGlrZTo6CisKKyAgICB7InJlc3VsdCI6IHRoZV9yZXN1bHQsCisgICAgICJlcnJvciI6IG51bGwsCisgICAgICJpZCI6ICJhcmJpdHJhcnktc29tZXRoaW5nIn0KKworKiBUaGUgZXJyb3IgcmVzcG9uc2UgbG9va3MgbGlrZTo6CisKKyAgICB7InJlc3VsdCI6IG51bGwsCisgICAgICJlcnJvciI6IHsibmFtZSI6ICJKU09OUlBDRXJyb3IiLAorICAgICAgICAgICAgICAgImNvZGUiOiAobnVtYmVyIDEwMC05OTkpLAorICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiU29tZSBFcnJvciBPY2N1cnJlZCIsCisgICAgICAgICAgICAgICAiZXJyb3IiOiAid2hhdGV2ZXIgeW91IHdhbnRcbihhIHRyYWNlYmFjaz8pIn0sCisgICAgICJpZCI6ICJhcmJpdHJhcnktc29tZXRoaW5nIn0KKworKiBJdCBkb2Vzbid0IHNlZW0gdG8gaW5kaWNhdGUgaWYgYW4gZXJyb3IgcmVzcG9uc2Ugc2hvdWxkIGhhdmUgYSAyMDAKKyAgcmVzcG9uc2Ugb3IgYSA1MDAgcmVzcG9uc2UuICBTbyBhcyBub3QgdG8gYmUgY29tcGxldGVseSBzdHVwaWQgYWJvdXQKKyAgSFRUUCwgd2UgY2hvb3NlIGEgNTAwIHJlc29uc2UsIGFzIGdpdmluZyBhbiBlcnJvciB3aXRoIGEgMjAwCisgIHJlc3BvbnNlIGlzIGlycmVzcG9uc2libGUuCisKK0luZnJhc3RydWN0dXJlCistLS0tLS0tLS0tLS0tLQorCitUbyBtYWtlIHRoaXMgZWFzaWVyIHRvIHRlc3QsIHdlJ2xsIHNldCB1cCBhIGJpdCBvZiBpbmZyYXN0cnVjdHVyZS4KK1RoaXMgd2lsbCBvcGVuIHVwIGEgc2VydmVyICh1c2luZyBgd3NnaXJlZgorPGh0dHA6Ly9weXRob24ub3JnL2RvYy9jdXJyZW50L2xpYi9tb2R1bGUtd3NnaXJlZi5zaW1wbGVzZXJ2ZXIuaHRtbD5gXykKK2FuZCBzZXJ2ZSB1cCBvdXIgYXBwbGljYXRpb24gKG5vdGUgdGhhdCAqY3JlYXRpbmcqIHRoZSBhcHBsaWNhdGlvbiBpcworbGVmdCBvdXQgdG8gc3RhcnQgd2l0aCk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBzeXMKKworICAgIGRlZiBtYWluKGFyZ3M9Tm9uZSk6CisgICAgICAgIGltcG9ydCBvcHRwYXJzZQorICAgICAgICBmcm9tIHdzZ2lyZWYgaW1wb3J0IHNpbXBsZV9zZXJ2ZXIKKyAgICAgICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKAorICAgICAgICAgICAgdXNhZ2U9IiVwcm9nIFtPUFRJT05TXSBNT0RVTEU6RVhQUkVTU0lPTiIpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAgICAgJy1wJywgJy0tcG9ydCcsIGRlZmF1bHQ9JzgwODAnLAorICAgICAgICAgICAgaGVscD0nUG9ydCB0byBzZXJ2ZSBvbiAoZGVmYXVsdCA4MDgwKScpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAgICAgJy1IJywgJy0taG9zdCcsIGRlZmF1bHQ9JzEyNy4wLjAuMScsCisgICAgICAgICAgICBoZWxwPSdIb3N0IHRvIHNlcnZlIG9uIChkZWZhdWx0IGxvY2FsaG9zdDsgMC4wLjAuMCB0byBtYWtlIHB1YmxpYyknKQorICAgICAgICBpZiBhcmdzIGlzIE5vbmU6CisgICAgICAgICAgICBhcmdzID0gc3lzLmFyZ3ZbMTpdCisgICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgICAgIGlmIG5vdCBhcmdzIG9yIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICBwcmludCAnWW91IG11c3QgZ2l2ZSBhIHNpbmdsZSBvYmplY3QgcmVmZXJlbmNlJworICAgICAgICAgICAgcGFyc2VyLnByaW50X2hlbHAoKQorICAgICAgICAgICAgc3lzLmV4aXQoMikKKyAgICAgICAgYXBwID0gbWFrZV9hcHAoYXJnc1swXSkKKyAgICAgICAgc2VydmVyID0gc2ltcGxlX3NlcnZlci5tYWtlX3NlcnZlcigKKyAgICAgICAgICAgIG9wdGlvbnMuaG9zdCwgaW50KG9wdGlvbnMucG9ydCksCisgICAgICAgICAgICBhcHApCisgICAgICAgIHByaW50ICdTZXJ2aW5nIG9uIGh0dHA6Ly8lczolcycgJSAob3B0aW9ucy5ob3N0LCBvcHRpb25zLnBvcnQpCisgICAgICAgIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIG1haW4oKQorCitJIHdvbid0IGRlc2NyaWJlIHRoaXMgbXVjaC4gIEl0IHN0YXJ0cyBhIHNlcnZlciwgc2VydmluZyB1cCBqdXN0IHRoZQorYXBwIGNyZWF0ZWQgYnkgYGBtYWtlX2FwcChhcmdzWzBdKWBgLiAgYGBtYWtlX2FwcGBgIHdpbGwgaGF2ZSB0byBsb2FkCit1cCB0aGUgb2JqZWN0IGFuZCB3cmFwIGl0IGluIG91ciBXU0dJL1dlYk9iIHdyYXBwZXIuICBXZSdsbCBiZSBjYWxsaW5nCit0aGF0IHdyYXBwZXIgYGBKU09OUlBDKG9iailgYCwgc28gaGVyZSdzIGhvdyBpdCdsbCBnbzoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZGVmIG1ha2VfYXBwKGV4cHIpOgorICAgICAgICBtb2R1bGUsIGV4cHJlc3Npb24gPSBleHByLnNwbGl0KCc6JywgMSkKKyAgICAgICAgX19pbXBvcnRfXyhtb2R1bGUpCisgICAgICAgIG1vZHVsZSA9IHN5cy5tb2R1bGVzW21vZHVsZV0KKyAgICAgICAgb2JqID0gZXZhbChleHByZXNzaW9uLCBtb2R1bGUuX19kaWN0X18pCisgICAgICAgIHJldHVybiBKc29uUnBjQXBwKG9iaikKKworV2UgdXNlIGBgX19pbXBvcnRfXyhtb2R1bGUpYGAgdG8gaW1wb3J0IHRoZSBtb2R1bGUsIGJ1dCBpdHMgcmV0dXJuCit2YWx1ZSBpcyB3b25reS4gIFdlIGNhbiBmaW5kIHRoZSB0aGluZyBpdCBpbXBvcnRlZCBpbiBgYHN5cy5tb2R1bGVzYGAKKyhhIGRpY3Rpb25hcnkgb2YgYWxsIHRoZSBsb2FkZWQgbW9kdWxlcykuICBUaGVuIHdlIGV2YWx1YXRlIHRoZSBzZWNvbmQKK3BhcnQgb2YgdGhlIGV4cHJlc3Npb24gaW4gdGhlIG5hbWVzcGFjZSBvZiB0aGUgbW9kdWxlLiAgVGhpcyBsZXRzIHlvdQorZG8gc29tZXRoaW5nIGxpa2UgYGBzbXRwbGliOlNNVFAoJ2xvY2FsaG9zdCcpYGAgdG8gZ2V0IGEgZnVsbHkKK2luc3RhbnRpYXRlZCBTTVRQIG9iamVjdC4KKworVGhhdCdzIGFsbCB0aGUgaW5mcmFzdHJ1Y3R1cmUgd2UnbGwgbmVlZCBmb3IgdGhlIHNlcnZlciBzaWRlLiAgTm93IHdlCitqdXN0IGhhdmUgdG8gaW1wbGVtZW50IGBgSnNvblJwY0FwcGBgLgorCitUaGUgQXBwbGljYXRpb24gV3JhcHBlcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTm90ZSB0aGF0IEknbSBjYWxsaW5nIHRoaXMgYW4gImFwcGxpY2F0aW9uIiBiZWNhdXNlIHRoYXQncyB0aGUKK3Rlcm1pbm9sb2d5IFdTR0kgdXNlcy4gIEV2ZXJ5dGhpbmcgdGhhdCBnZXRzICpjYWxsZWQqIGlzIGFuCisiYXBwbGljYXRpb24iLCBhbmQgYW55dGhpbmcgdGhhdCBjYWxscyBhbiBhcHBsaWNhdGlvbiBpcyBjYWxsZWQgYQorInNlcnZlciIuCisKK1RoZSBpbnN0YW50aWF0aW9uIG9mIHRoZSBzZXJ2ZXIgaXMgYWxyZWFkeSBmaWd1cmVkIG91dDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgY2xhc3MgSnNvblJwY0FwcChvYmplY3QpOgorCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvYmopOgorICAgICAgICAgICAgc2VsZi5vYmogPSBvYmoKKworICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgLi4uIHRoZSBXU0dJIGludGVyZmFjZSAuLi4KKworU28gdGhlIHNlcnZlciBpcyBhbiBpbnN0YW5jZSBib3VuZCB0byB0aGUgcGFydGljdWxhciBvYmplY3QgYmVpbmcKK2V4cG9zZWQsIGFuZCBgYF9fY2FsbF9fYGAgaW1wbGVtZW50cyB0aGUgV1NHSSBpbnRlcmZhY2UuCisKK1dlJ2xsIHN0YXJ0IHdpdGggYSBzaW1wbGUgb3V0bGluZSBvZiB0aGUgV1NHSSBpbnRlcmZhY2UsIHVzaW5nIGEga2luZAorb2Ygc3RhbmRhcmQgV2ViT2Igc2V0dXA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gd2Vib2IgaW1wb3J0IFJlcXVlc3QsIFJlc3BvbnNlCisgICAgZnJvbSB3ZWJvYiBpbXBvcnQgZXhjCisKKyAgICBjbGFzcyBKc29uUnBjQXBwKG9iamVjdCk6CisgICAgICAgIC4uLgorICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgcmVxID0gUmVxdWVzdChlbnZpcm9uKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJlc3AgPSBzZWxmLnByb2Nlc3MocmVxKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgcmVzcCA9IGV4Yy5IVFRQQmFkUmVxdWVzdChzdHIoZSkpCisgICAgICAgICAgICBleGNlcHQgZXhjLkhUVFBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgcmVzcCA9IGUKKyAgICAgICAgICAgIHJldHVybiByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCitXZSBmaXJzdCBjcmVhdGUgYSByZXF1ZXN0IG9iamVjdC4gIFRoZSByZXF1ZXN0IG9iamVjdCBqdXN0IHdyYXBzIHRoZQorV1NHSSBlbnZpcm9ubWVudC4gIFRoZW4gd2UgY3JlYXRlIHRoZSByZXNwb25zZSBvYmplY3QgaW4gdGhlCitgYHByb2Nlc3NgYCBtZXRob2QgKHdoaWNoIHdlIHN0aWxsIGhhdmUgdG8gd3JpdGUpLiAgV2UgYWxzbyBkbyBzb21lCitleGNlcHRpb24gY2F0Y2hpbmcuICBXZSdsbCB0dXJuIGFueSBgYFZhbHVlRXJyb3JgYCBpbnRvIGEgYGA0MDAgQmFkCitSZXF1ZXN0YGAgcmVzcG9uc2UuICBXZSdsbCBhbHNvIGxldCBgYHByb2Nlc3NgYCByYWlzZSBhbnkKK2Bgd2ViLmV4Yy5IVFRQRXhjZXB0aW9uYGAgZXhjZXB0aW9uLiAgVGhlcmUncyBhbiBleGNlcHRpb24gZGVmaW5lZCBpbgordGhhdCBtb2R1bGUgZm9yIGFsbCB0aGUgSFRUUCBlcnJvciByZXNwb25zZXMsIGxpa2UgYGA0MDUgTWV0aG9kIE5vdAorQWxsb3dlZGBgLiAgVGhlc2UgZXhjZXB0aW9ucyBhcmUgdGhlbXNlbHZlcyBXU0dJIGFwcGxpY2F0aW9ucyAoYXMgaXMKK2Bgd2Vib2IuUmVzcG9uc2VgYCksIGFuZCBzbyB3ZSBjYWxsIHRoZW0gbGlrZSBXU0dJIGFwcGxpY2F0aW9ucyBhbmQKK3JldHVybiB0aGUgcmVzdWx0LgorCitUaGUgYGBwcm9jZXNzYGAgbWV0aG9kCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBgYHByb2Nlc3NgYCBtZXRob2Qgb2YgY291cnNlIGlzIHdoZXJlIGFsbCB0aGUgZmFuY3kgc3R1ZmYKK2hhcHBlbnMuICBXZSdsbCBzdGFydCB3aXRoIGp1c3QgdGhlIG1vc3QgbWluaW1hbCBpbXBsZW1lbnRhdGlvbiwgd2l0aAorbm8gZXJyb3IgY2hlY2tpbmcgb3IgaGFuZGxpbmc6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gc2ltcGxlanNvbiBpbXBvcnQgbG9hZHMsIGR1bXBzCisKKyAgICBjbGFzcyBKc29uUnBjQXBwKG9iamVjdCk6CisgICAgICAgIC4uLgorICAgICAgICBkZWYgcHJvY2VzcyhzZWxmLCByZXEpOgorICAgICAgICAgICAganNvbiA9IGxvYWRzKHJlcS5ib2R5KQorICAgICAgICAgICAgbWV0aG9kID0ganNvblsnbWV0aG9kJ10KKyAgICAgICAgICAgIHBhcmFtcyA9IGpzb25bJ3BhcmFtcyddCisgICAgICAgICAgICBpZCA9IGpzb25bJ2lkJ10KKyAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoc2VsZi5vYmosIG1ldGhvZCkKKyAgICAgICAgICAgIHJlc3VsdCA9IG1ldGhvZCgqcGFyYW1zKQorICAgICAgICAgICAgcmVzcCA9IFJlc3BvbnNlKAorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vanNvbicsCisgICAgICAgICAgICAgICAgYm9keT1kdW1wcyhkaWN0KHJlc3VsdD1yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPWlkKSkpCisgICAgICAgICAgICByZXR1cm4gcmVzcAorCitBcyBsb25nIGFzIHRoZSByZXF1ZXN0IGlzIHByb3Blcmx5IGZvcm1lZCBhbmQgdGhlIG1ldGhvZCBkb2Vzbid0IHJhaXNlCithbnkgZXhjZXB0aW9ucywgeW91IGFyZSBwcmV0dHkgbXVjaCBzZXQuICBCdXQgb2YgY291cnNlIHRoYXQncyBub3QgYQorcmVhc29uYWJsZSBleHBlY3RhdGlvbi4gIFRoZXJlJ3MgYSB3aG9sZSBidW5jaCBvZiB0aGluZ3MgdGhhdCBjYW4gZ28KK3dyb25nLiAgRm9yIGluc3RhbmNlLCBpdCBoYXMgdG8gYmUgYSBQT1NUIG1ldGhvZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaWYgbm90IHJlcS5tZXRob2QgPT0gJ1BPU1QnOgorICAgICAgICByYWlzZSBleGMuSFRUUE1ldGhvZE5vdEFsbG93ZWQoCisgICAgICAgICAgICAiT25seSBQT1NUIGFsbG93ZWQiLAorICAgICAgICAgICAgYWxsb3dlZD0nUE9TVCcpCisKK0FuZCBtYXliZSB0aGUgcmVxdWVzdCBib2R5IGRvZXNuJ3QgY29udGFpbiB2YWxpZCBKU09OOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICB0cnk6CisgICAgICAgIGpzb24gPSBsb2FkcyhyZXEuYm9keSkKKyAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIEpTT046ICVzJyAlIGUpCisKK0FuZCBtYXliZSBhbGwgdGhlIGtleXMgYXJlbid0IGluIHRoZSBkaWN0aW9uYXJ5OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICB0cnk6CisgICAgICAgIG1ldGhvZCA9IGpzb25bJ21ldGhvZCddCisgICAgICAgIHBhcmFtcyA9IGpzb25bJ3BhcmFtcyddCisgICAgICAgIGlkID0ganNvblsnaWQnXQorICAgIGV4Y2VwdCBLZXlFcnJvciwgZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICJKU09OIGJvZHkgbWlzc2luZyBwYXJhbWV0ZXI6ICVzIiAlIGUpCisKK0FuZCBtYXliZSBpdCdzIHRyeWluZyB0byBhY2NlcyBhIHByaXZhdGUgbWV0aG9kIChhIG1ldGhvZCB0aGF0IHN0YXJ0cword2l0aCBgYF9gYCkgLS0gdGhhdCdzIG5vdCBqdXN0IGEgYmFkIHJlcXVlc3QsIHdlJ2xsIGNhbGwgdGhhdCBjYXNlCitgYDQwMyBGb3JiaWRkZW5gYC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaWYgbWV0aG9kLnN0YXJ0c3dpdGgoJ18nKToKKyAgICAgICAgcmFpc2UgZXhjLkhUVFBGb3JiaWRkZW4oCisgICAgICAgICAgICAiQmFkIG1ldGhvZCBuYW1lICVzOiBtdXN0IG5vdCBzdGFydCB3aXRoIF8iICUgbWV0aG9kKQorCitBbmQgbWF5YmUgYGBqc29uWydwYXJhbXMnXWBgIGlzbid0IGEgbGlzdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaWYgbm90IGlzaW5zdGFuY2UocGFyYW1zLCBsaXN0KToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICJCYWQgcGFyYW1zICVyOiBtdXN0IGJlIGEgbGlzdCIgJSBwYXJhbXMpCisKK0FuZCBtYXliZSB0aGUgbWV0aG9kIGRvZXNuJ3QgZXhpc3Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIHRyeToKKyAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihzZWxmLm9iaiwgbWV0aG9kKQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICJObyBzdWNoIG1ldGhvZCAlcyIgJSBtZXRob2QpCisKK1RoZSBsYXN0IGNhc2UgaXMgdGhlIGVycm9yIHdlIGFjdHVhbGx5IGNhbiBleHBlY3Q6IHRoYXQgdGhlIG1ldGhvZAorcmFpc2VzIHNvbWUgZXhjZXB0aW9uLgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICB0cnk6CisgICAgICAgIHJlc3VsdCA9IG1ldGhvZCgqcGFyYW1zKQorICAgIGV4Y2VwdDoKKyAgICAgICAgdGIgPSB0cmFjZWJhY2suZm9ybWF0X2V4YygpCisgICAgICAgIGV4Y192YWx1ZSA9IHN5cy5leGNfaW5mbygpWzFdCisgICAgICAgIGVycm9yX3ZhbHVlID0gZGljdCgKKyAgICAgICAgICAgIG5hbWU9J0pTT05SUENFcnJvcicsCisgICAgICAgICAgICBjb2RlPTEwMCwKKyAgICAgICAgICAgIG1lc3NhZ2U9c3RyKGV4Y192YWx1ZSksCisgICAgICAgICAgICBlcnJvcj10YikKKyAgICAgICAgcmV0dXJuIFJlc3BvbnNlKAorICAgICAgICAgICAgc3RhdHVzPTUwMCwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vanNvbicsCisgICAgICAgICAgICBib2R5PWR1bXBzKGRpY3QocmVzdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9ZXJyb3JfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9aWQpKSkKKworVGhhdCdzIGEgY29tcGxldGUgc2VydmVyLgorCitUaGUgQ29tcGxldGUgQ29kZQorLS0tLS0tLS0tLS0tLS0tLS0KKworU2luY2Ugd2Ugc2hvd2VkIGFsbCB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gcGllY2VzLCBoZXJlJ3MgdGhlIGNvbXBsZXRlCitjb2RlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBmcm9tIHdlYm9iIGltcG9ydCBSZXF1ZXN0LCBSZXNwb25zZQorICAgIGZyb20gd2Vib2IgaW1wb3J0IGV4YworICAgIGZyb20gc2ltcGxlanNvbiBpbXBvcnQgbG9hZHMsIGR1bXBzCisgICAgaW1wb3J0IHRyYWNlYmFjaworICAgIGltcG9ydCBzeXMKKworICAgIGNsYXNzIEpzb25ScGNBcHAob2JqZWN0KToKKyAgICAgICAgIiIiCisgICAgICAgIFNlcnZlIHRoZSBnaXZlbiBvYmplY3QgdmlhIGpzb24tcnBjIChodHRwOi8vanNvbi1ycGMub3JnLykKKyAgICAgICAgIiIiCisKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9iaik6CisgICAgICAgICAgICBzZWxmLm9iaiA9IG9iagorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmVzcCA9IHNlbGYucHJvY2VzcyhyZXEpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAgICAgICByZXNwID0gZXhjLkhUVFBCYWRSZXF1ZXN0KHN0cihlKSkKKyAgICAgICAgICAgIGV4Y2VwdCBleGMuSFRUUEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICByZXNwID0gZQorICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICAgICAgZGVmIHByb2Nlc3Moc2VsZiwgcmVxKToKKyAgICAgICAgICAgIGlmIG5vdCByZXEubWV0aG9kID09ICdQT1NUJzoKKyAgICAgICAgICAgICAgICByYWlzZSBleGMuSFRUUE1ldGhvZE5vdEFsbG93ZWQoCisgICAgICAgICAgICAgICAgICAgICJPbmx5IFBPU1QgYWxsb3dlZCIsCisgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQ9J1BPU1QnKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGpzb24gPSBsb2FkcyhyZXEuYm9keSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCBKU09OOiAlcycgJSBlKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG1ldGhvZCA9IGpzb25bJ21ldGhvZCddCisgICAgICAgICAgICAgICAgcGFyYW1zID0ganNvblsncGFyYW1zJ10KKyAgICAgICAgICAgICAgICBpZCA9IGpzb25bJ2lkJ10KKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvciwgZToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiSlNPTiBib2R5IG1pc3NpbmcgcGFyYW1ldGVyOiAlcyIgJSBlKQorICAgICAgICAgICAgaWYgbWV0aG9kLnN0YXJ0c3dpdGgoJ18nKToKKyAgICAgICAgICAgICAgICByYWlzZSBleGMuSFRUUEZvcmJpZGRlbigKKyAgICAgICAgICAgICAgICAgICAgIkJhZCBtZXRob2QgbmFtZSAlczogbXVzdCBub3Qgc3RhcnQgd2l0aCBfIiAlIG1ldGhvZCkKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHBhcmFtcywgbGlzdCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkJhZCBwYXJhbXMgJXI6IG11c3QgYmUgYSBsaXN0IiAlIHBhcmFtcykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHNlbGYub2JqLCBtZXRob2QpCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIk5vIHN1Y2ggbWV0aG9kICVzIiAlIG1ldGhvZCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtZXRob2QoKnBhcmFtcykKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICB0ZXh0ID0gdHJhY2ViYWNrLmZvcm1hdF9leGMoKQorICAgICAgICAgICAgICAgIGV4Y192YWx1ZSA9IHN5cy5leGNfaW5mbygpWzFdCisgICAgICAgICAgICAgICAgZXJyb3JfdmFsdWUgPSBkaWN0KAorICAgICAgICAgICAgICAgICAgICBuYW1lPSdKU09OUlBDRXJyb3InLAorICAgICAgICAgICAgICAgICAgICBjb2RlPTEwMCwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1zdHIoZXhjX3ZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3I9dGV4dCkKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz01MDAsCisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vanNvbicsCisgICAgICAgICAgICAgICAgICAgIGJvZHk9ZHVtcHMoZGljdChyZXN1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPWVycm9yX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9aWQpKSkKKyAgICAgICAgICAgIHJldHVybiBSZXNwb25zZSgKKyAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nLAorICAgICAgICAgICAgICAgIGJvZHk9ZHVtcHMoZGljdChyZXN1bHQ9cmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1pZCkpKQorCitUaGUgQ2xpZW50CistLS0tLS0tLS0tCisKK0l0IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSBhIGNsaWVudCB0byB0ZXN0IG91dCBvdXIgc2VydmVyLiAgVXNpbmcKK2BXU0dJUHJveHlgXyB3ZSBjYW4gdXNlIFdlYk9iCitSZXF1ZXN0IGFuZCBSZXNwb25zZSB0byBkbyBhY3R1YWwgSFRUUCBjb25uZWN0aW9ucy4KKworVGhlIGJhc2ljIGlkZWEgaXMgdGhhdCB5b3UgY2FuIGNyZWF0ZSBhIGJsYW5rIFJlcXVlc3Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBmcm9tIHdlYm9iIGltcG9ydCBSZXF1ZXN0CisgICAgPj4+IHJlcSA9IFJlcXVlc3QuYmxhbmsoJ2h0dHA6Ly9weXRob24ub3JnJykKKworVGhlbiB5b3UgY2FuIHNlbmQgdGhhdCByZXF1ZXN0IHRvIGFuIGFwcGxpY2F0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gZnJvbSB3c2dpcHJveHkuZXhhY3Rwcm94eSBpbXBvcnQgcHJveHlfZXhhY3RfcmVxdWVzdAorICAgID4+PiByZXNwID0gcmVxLmdldF9yZXNwb25zZShwcm94eV9leGFjdF9yZXF1ZXN0KQorCitUaGlzIHBhcnRpY3VsYXIgYXBwbGljYXRpb24gKGBgcHJveHlfZXhhY3RfcmVxdWVzdGBgKSBzZW5kcyB0aGUKK3JlcXVlc3Qgb3ZlciBIVFRQOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVzcC5jb250ZW50X3R5cGUKKyAgICAndGV4dC9odG1sJworICAgID4+PiByZXNwLmJvZHlbOjEwXQorICAgICc8IURPQ1RZUEUgJworCitTbyB3ZSdyZSBnb2luZyB0byBjcmVhdGUgYSBwcm94eSBvYmplY3QgdGhhdCBjb25zdHJ1Y3RzIFdlYk9iLWJhc2VkCitqc29ucnBjIHJlcXVlc3RzLCBhbmQgc2VuZHMgdGhvc2UgdXNpbmcgYGBwcm94eV9leGFjdF9yZXF1ZXN0YGAuCisKK1RoZSBQcm94eSBDbGllbnQKKy0tLS0tLS0tLS0tLS0tLS0KKworVGhlIHByb3h5IGNsaWVudCBpcyBpbnN0YW50aWF0ZWQgd2l0aCBpdHMgYmFzZSBVUkwuICBXZSdsbCBhbHNvIGxldAoreW91IHBhc3MgaW4gYSBwcm94eSBhcHBsaWNhdGlvbiwgaW4gY2FzZSB5b3Ugd2FudCB0byBkbyBsb2NhbCByZXF1ZXN0cworKGUuZy4sIHRvIGRvIGRpcmVjdCB0ZXN0cyBhZ2FpbnN0IGEgYGBKc29uUnBjQXBwYGAgaW5zdGFuY2UpOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBjbGFzcyBTZXJ2ZXJQcm94eShvYmplY3QpOgorCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwsIHByb3h5PU5vbmUpOgorICAgICAgICAgICAgc2VsZi5fdXJsID0gdXJsCisgICAgICAgICAgICBpZiBwcm94eSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGZyb20gd3NnaXByb3h5LmV4YWN0cHJveHkgaW1wb3J0IHByb3h5X2V4YWN0X3JlcXVlc3QKKyAgICAgICAgICAgICAgICBwcm94eSA9IHByb3h5X2V4YWN0X3JlcXVlc3QKKyAgICAgICAgICAgIHNlbGYucHJveHkgPSBwcm94eQorCitUaGlzIFNlcnZlclByb3h5IG9iamVjdCBpdHNlbGYgZG9lc24ndCBkbyBtdWNoLCBidXQgeW91IGNhbiBjYWxsIG1ldGhvZHMgb24KK2l0LiAgV2UgY2FuIGludGVyY2VwdCBhbnkgYWNjZXNzIGBgU2VydmVyUHJveHkoLi4uKS5tZXRob2RgYCB3aXRoIHRoZQorbWFnaWMgZnVuY3Rpb24gYGBfX2dldGF0dHJfX2BgLiAgV2hlbmV2ZXIgeW91IGdldCBhbiBhdHRyaWJ1dGUgdGhhdAorZG9lc24ndCBleGlzdCBpbiBhbiBpbnN0YW5jZSwgUHl0aG9uIHdpbGwgY2FsbAorYGBpbnN0Ll9fZ2V0YXR0cl9fKGF0dHJfbmFtZSlgYCBhbmQgcmV0dXJuIHRoYXQuICBXaGVuIHlvdSAqY2FsbCogYQorbWV0aG9kLCB5b3UgYXJlIGNhbGxpbmcgdGhlIG9iamVjdCB0aGF0IGBgLm1ldGhvZGBgIHJldHVybnMuICBTbyB3ZSdsbAorY3JlYXRlIGEgaGVscGVyIG9iamVjdCB0aGF0IGlzIGNhbGxhYmxlLCBhbmQgb3VyIGBgX19nZXRhdHRyX19gYCB3aWxsCitqdXN0IHJldHVybiB0aGF0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBjbGFzcyBTZXJ2ZXJQcm94eShvYmplY3QpOgorICAgICAgICAuLi4KKyAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgIyBOb3RlLCBldmVuIGF0dHJpYnV0ZXMgbGlrZSBfX2NvbnRhaW5zX18gY2FuIGdldCByb3V0ZWQKKyAgICAgICAgICAgICMgdGhyb3VnaCBfX2dldGF0dHJfXworICAgICAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKCdfJyk6CisgICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAgICAgIHJldHVybiBfTWV0aG9kKHNlbGYsIG5hbWUpCisKKyAgICBjbGFzcyBfTWV0aG9kKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIG5hbWUpOgorICAgICAgICAgICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKKyAgICAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworTm93IHdoZW4gd2UgY2FsbCB0aGUgbWV0aG9kIHdlJ2xsIGJlIGNhbGxpbmcgYGBfTWV0aG9kLl9fY2FsbF9fYGAsIGFuZAordGhlIEhUVFAgZW5kcG9pbnQgd2lsbCBiZSBgYHNlbGYucGFyZW50Ll91cmxgYCwgYW5kIHRoZSBtZXRob2QgbmFtZQord2lsbCBiZSBgYHNlbGYubmFtZWBgLgorCitIZXJlJ3MgdGhlIGNvZGUgdG8gZG8gdGhlIGNhbGw6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGNsYXNzIF9NZXRob2Qob2JqZWN0KToKKyAgICAgICAgLi4uCisKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgICAgIGpzb24gPSBkaWN0KG1ldGhvZD1zZWxmLm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBpZD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zPWxpc3QoYXJncykpCisgICAgICAgICAgICByZXEgPSBSZXF1ZXN0LmJsYW5rKHNlbGYucGFyZW50Ll91cmwpCisgICAgICAgICAgICByZXEubWV0aG9kID0gJ1BPU1QnCisgICAgICAgICAgICByZXEuY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL2pzb24nCisgICAgICAgICAgICByZXEuYm9keSA9IGR1bXBzKGpzb24pCisgICAgICAgICAgICByZXNwID0gcmVxLmdldF9yZXNwb25zZShzZWxmLnBhcmVudC5wcm94eSkKKyAgICAgICAgICAgIGlmIHJlc3Auc3RhdHVzX2NvZGUgIT0gMjAwIGFuZCBub3QgKAorICAgICAgICAgICAgICAgIHJlc3Auc3RhdHVzX2NvZGUgPT0gNTAwCisgICAgICAgICAgICAgICAgYW5kIHJlc3AuY29udGVudF90eXBlID09ICdhcHBsaWNhdGlvbi9qc29uJyk6CisgICAgICAgICAgICAgICAgcmFpc2UgUHJveHlFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkVycm9yIGZyb20gSlNPTi1SUEMgY2xpZW50ICVzOiAlcyIKKyAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5fdXJsLCByZXNwLnN0YXR1cyksCisgICAgICAgICAgICAgICAgICAgIHJlc3ApCisgICAgICAgICAgICBqc29uID0gbG9hZHMocmVzcC5ib2R5KQorICAgICAgICAgICAgaWYganNvbi5nZXQoJ2Vycm9yJykgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZSA9IEZhdWx0KAorICAgICAgICAgICAgICAgICAgICBqc29uWydlcnJvciddLmdldCgnbWVzc2FnZScpLAorICAgICAgICAgICAgICAgICAgICBqc29uWydlcnJvciddLmdldCgnY29kZScpLAorICAgICAgICAgICAgICAgICAgICBqc29uWydlcnJvciddLmdldCgnZXJyb3InKSwKKyAgICAgICAgICAgICAgICAgICAgcmVzcCkKKyAgICAgICAgICAgICAgICByYWlzZSBlCisgICAgICAgICAgICByZXR1cm4ganNvblsncmVzdWx0J10KKworV2UgcmFpc2UgdHdvIGtpbmRzIG9mIGV4Y2VwdGlvbnMgaGVyZS4gIGBgUHJveHlFcnJvcmBgIGlzIHdoZW4KK3NvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbnMsIGxpa2UgYSBgYDQwNCBOb3QgRm91bmRgYC4gIGBgRmF1bHRgYCBpcword2hlbiBhIG1vcmUgZXhwZWN0ZWQgZXhjZXB0aW9uIG9jY3VycywgaS5lLiwgdGhlIHVuZGVybHlpbmcgbWV0aG9kCityYWlzZWQgYW4gZXhjZXB0aW9uLgorCitJbiBib3RoIGNhc2VzIHdlJ2xsIGtlZXAgdGhlIHJlc3BvbnNlIG9iamVjdCBhcm91bmQsIGFzIHRoYXQgY2FuIGJlCitpbnRlcmVzdGluZy4gIE5vdGUgdGhhdCB5b3UgY2FuIG1ha2UgZXhjZXB0aW9ucyBoYXZlIGFueSBtZXRob2RzIG9yCitzaWduYXR1cmUgeW91IHdhbnQsIHdoaWNoIHdlJ2xsIGRvOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBjbGFzcyBQcm94eUVycm9yKEV4Y2VwdGlvbik6CisgICAgICAgICIiIgorICAgICAgICBSYWlzZWQgd2hlbiBhIHJlcXVlc3QgdmlhIFNlcnZlclByb3h5IGJyZWFrcworICAgICAgICAiIiIKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UsIHJlc3BvbnNlKToKKyAgICAgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtZXNzYWdlKQorICAgICAgICAgICAgc2VsZi5yZXNwb25zZSA9IHJlc3BvbnNlCisKKyAgICBjbGFzcyBGYXVsdChFeGNlcHRpb24pOgorICAgICAgICAiIiIKKyAgICAgICAgUmFpc2VkIHdoZW4gdGhlcmUgaXMgYSByZW1vdGUgZXJyb3IKKyAgICAgICAgIiIiCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlLCBjb2RlLCBlcnJvciwgcmVzcG9uc2UpOgorICAgICAgICAgICAgRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpCisgICAgICAgICAgICBzZWxmLmNvZGUgPSBjb2RlCisgICAgICAgICAgICBzZWxmLmVycm9yID0gZXJyb3IKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2UgPSByZXNwb25zZQorICAgICAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgICAgIHJldHVybiAnTWV0aG9kIGVycm9yIGNhbGxpbmcgJXM6ICVzXG4lcycgJSAoCisgICAgICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5yZXF1ZXN0LnVybCwKKyAgICAgICAgICAgICAgICBzZWxmLmFyZ3NbMF0sCisgICAgICAgICAgICAgICAgc2VsZi5lcnJvcikKKworVXNpbmcgVGhlbSBUb2dldGhlcgorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitHb29kIHByb2dyYW1tZXJzIHN0YXJ0IHdpdGggdGVzdHMuICBCdXQgYXQgbGVhc3Qgd2UnbGwgZW5kIHdpdGggYQordGVzdC4gIFdlJ2xsIHVzZSBgZG9jdGVzdAorPGh0dHA6Ly9weXRob24ub3JnL2RvYy9jdXJyZW50L2xpYi9tb2R1bGUtZG9jdGVzdC5odG1sPmBfIGZvciBvdXIKK3Rlc3RzLiAgVGhlIHRlc3QgaXMgaW4gYGRvY3MvanNvbi1leGFtcGxlLWNvZGUvdGVzdF9qc29ucnBjLnR4dAorPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvdHJlZS9tYXN0ZXIvZG9jcy9qc29ucnBjLWV4YW1wbGUtY29kZS90ZXN0X2pzb25ycGMudHh0PmBfCithbmQgeW91IGNhbiBydW4gaXQgd2l0aCBgZG9jcy9qc29uLWV4YW1wbGUtY29kZS90ZXN0X2pzb25ycGMucHkKKzxodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL3RyZWUvbWFzdGVyL2RvY3MvanNvbnJwYy1leGFtcGxlLWNvZGUvdGVzdF9qc29ucnBjLnB5PmBfLAord2hpY2ggbG9va3MgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgaW1wb3J0IGRvY3Rlc3QKKyAgICAgICAgZG9jdGVzdC50ZXN0ZmlsZSgndGVzdF9qc29ucnBjLnR4dCcpCisKK0FzIHlvdSBjYW4gc2VlLCBpdCdzIGp1c3QgYSBzdHViIHRvIHJ1biB0aGUgZG9jdGVzdC4gIFdlJ2xsIG5lZWQgYQorc2ltcGxlIG9iamVjdCB0byBleHBvc2UuICBXZSdsbCBtYWtlIGl0IHJlYWwgc2ltcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gY2xhc3MgRGl2aWRlcihvYmplY3QpOgorICAgIC4uLiAgICAgZGVmIGRpdmlkZShzZWxmLCBhLCBiKToKKyAgICAuLi4gICAgICAgIHJldHVybiBhIC8gYgorCitUaGVuIHdlJ2xsIGdldCB0aGUgYXBwIHNldHVwOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gZnJvbSBqc29ucnBjIGltcG9ydCAqCisgICAgPj4+IGFwcCA9IEpzb25ScGNBcHAoRGl2aWRlcigpKQorCitBbmQgYXR0YWNoIHRoZSBjbGllbnQgKmRpcmVjdGx5KiB0byBpdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHByb3h5ID0gU2VydmVyUHJveHkoJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MCcsIHByb3h5PWFwcCkKKworQmVjYXVzZSB3ZSBnYXZlIHRoZSBhcHAgaXRzZWxmIGFzIHRoZSBwcm94eSwgdGhlIFVSTCBkb2Vzbid0IGFjdHVhbGx5CittYXR0ZXIuCisKK05vdywgaWYgeW91IGFyZSB1c2VkIHRvIHRlc3RpbmcgeW91IG1pZ2h0IGFzazogaXMgdGhpcyBrb3NoZXI/ICBUaGF0Citpcywgd2UgYXJlIHNob3J0Y2lyY3VpdGluZyBIVFRQIGVudGlyZWx5LiAgSXMgdGhpcyBhIHJlYWxpc3RpYyB0ZXN0PworCitPbmUgdGhpbmcgeW91IG1pZ2h0IGJlIHdvcnJpZWQgYWJvdXQgaW4gdGhpcyBjYXNlIGlzIHRoYXQgdGhlcmUgYXJlCittb3JlIHNoYXJlZCBvYmplY3RzIHRoYW4geW91J2QgaGF2ZSB3aXRoIEhUVFAuICBUaGF0IGlzLCBldmVyeXRoaW5nCitvdmVyIEhUVFAgaXMgc2VyaWFsaXplZCB0byBoZWFkZXJzIGFuZCBib2RpZXMuICBXaXRob3V0IEhUVFAsIHdlIGNhbgorc2VuZCBzdHVmZiBhcm91bmQgdGhhdCBjYW4ndCBnbyBvdmVyIEhUVFAuICBUaGlzICpjb3VsZCogaGFwcGVuLCBidXQKK3dlJ3JlIG1vc3RseSBwcm90ZWN0ZWQgYmVjYXVzZSB0aGUgb25seSB0aGluZyB0aGUgYXBwbGljYXRpb24ncyBzaGFyZQoraXMgdGhlIFdTR0kgYGBlbnZpcm9uYGAuICBFdmVuIHRob3VnaCB3ZSB1c2UgYSBgYHdlYm9iLlJlcXVlc3RgYAorb2JqZWN0IG9uIGJvdGggc2lkZSwgaXQncyBub3QgdGhlICpzYW1lKiByZXF1ZXN0IG9iamVjdCwgYW5kIGFsbCB0aGUKK3N0YXRlIGlzIHN0dWRpb3VzbHkga2VwdCBpbiB0aGUgZW52aXJvbm1lbnQuICBXZSAqY291bGQqIHNoYXJlIHRoaW5ncworaW4gdGhlIGVudmlyb25tZW50IHRoYXQgY291bGRuJ3QgZ28gb3ZlciBIVFRQLiAgRm9yIGluc3RhbmNlLCB3ZSBjb3VsZAorc2V0IGBgZW52aXJvblsnanNvbnJwYy5yZXF1ZXN0X3ZhbHVlJ10gPSBkaWN0KC4uLilgYCwgYW5kIGF2b2lkCitgYHNpbXBsZWpzb24uZHVtcHNgYCBhbmQgYGBzaW1wbGVqc29uLmxvYWRzYGAuICBXZSAqY291bGQqIGRvIHRoYXQsCithbmQgaWYgd2UgZGlkIHRoZW4gaXQgaXMgcG9zc2libGUgb3VyIHRlc3Qgd291bGQgd29yayBldmVuIHRob3VnaCB0aGUKK2xpYnJhcmllcyB3ZXJlIGJyb2tlbiBvdmVyIEhUVFAuICBCdXQgb2YgY291cnNlIGluc3BlY3Rpb24gc2hvd3Mgd2UKKypkb24ndCogZG8gdGhhdC4gIEEgbGl0dGxlIGRpc2NpcGxpbmUgaXMgcmVxdWlyZWQgdG8gcmVzaXN0IHBsYXlpbmcgY2xldmVyCit0cmlja3MgKG9yIGVsc2UgeW91IGNhbiBwbGF5IHRob3NlIHRyaWNrcyBhbmQgZG8gbW9yZSB0ZXN0aW5nKS4KK0dlbmVyYWxseSBpdCB3b3JrcyB3ZWxsLgorCitTbywgbm93IHdlIGhhdmUgYSBwcm94eSwgbGV0cyB1c2UgaXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBwcm94eS5kaXZpZGUoMTAsIDQpCisgICAgMgorICAgID4+PiBwcm94eS5kaXZpZGUoMTAsIDQuMCkKKyAgICAyLjUKKworTGFzdGx5LCB3ZSdsbCB0ZXN0IGEgY291cGxlIGVycm9yIGNvbmRpdGlvbnMuICBGaXJzdCBhIG1ldGhvZCBlcnJvcjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHByb3h5LmRpdmlkZSgxMCwgMCkgIyBkb2N0ZXN0OiArRUxMSVBTSVMKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgLi4uCisgICAgRmF1bHQ6IE1ldGhvZCBlcnJvciBjYWxsaW5nIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MDogaW50ZWdlciBkaXZpc2lvbiBvciBtb2R1bG8gYnkgemVybworICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIEZpbGUgLi4uCisgICAgICAgIHJlc3VsdCA9IG1ldGhvZCgqcGFyYW1zKQorICAgICAgRmlsZSAuLi4KKyAgICAgICAgcmV0dXJuIGEgLyBiCisgICAgWmVyb0RpdmlzaW9uRXJyb3I6IGludGVnZXIgZGl2aXNpb24gb3IgbW9kdWxvIGJ5IHplcm8KKyAgICA8QkxBTktMSU5FPgorCitJdCdzIGhhcmQgdG8gYWN0dWFsbHkgcHJlZGljdCB0aGlzIGV4Y2VwdGlvbiwgYmVjYXVzZSB0aGUgdGVzdCBvZiB0aGUKK2V4Y2VwdGlvbiBpdHNlbGYgY29udGFpbnMgdGhlIHRyYWNlYmFjayBmcm9tIHRoZSB1bmRlcmx5aW5nIGNhbGwsIHdpdGgKK2ZpbGVuYW1lcyBhbmQgbGluZSBudW1iZXJzIHRoYXQgYXJlbid0IHN0YWJsZS4gIFdlIHVzZSBgYCMgZG9jdGVzdDoKKytFTExJUFNJU2BgIHNvIHRoYXQgd2UgY2FuIHJlcGxhY2UgdGV4dCB3ZSBkb24ndCBjYXJlIGFib3V0IHdpdGgKK2BgLi4uYGAuICBUaGlzIGlzIGFjdHVhbGx5IGZpZ3VyZWQgb3V0IHRocm91Z2ggY29weS1hbmQtcGFzdGUsIGFuZAordmlzdWFsIGluc3BlY3Rpb24gdG8gbWFrZSBzdXJlIGl0IGxvb2tzIHNlbnNpYmxlLgorCitUaGUgb3RoZXIgZXhjZXB0aW9uIGNhbiBiZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHByb3h5LmFkZCgxLCAxKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAgUHJveHlFcnJvcjogRXJyb3IgZnJvbSBKU09OLVJQQyBjbGllbnQgaHR0cDovL2xvY2FsaG9zdDo4MDgwOiA0MDAgQmFkIFJlcXVlc3QKKworSGVyZSB0aGUgZXhjZXB0aW9uIGlzbid0IGEgSlNPTi1SUEMgbWV0aG9kIGV4Y2VwdGlvbiwgYnV0IGEgbW9yZSBiYXNpYworUHJveHlFcnJvciBleGNlcHRpb24uCisKK0NvbmNsdXNpb24KKy0tLS0tLS0tLS0KKworSG9wZWZ1bGx5IHRoaXMgd2lsbCBnaXZlIHlvdSBpZGVhcyBhYm91dCBob3cgdG8gaW1wbGVtZW50IHdlYiBzZXJ2aWNlcworb2YgZGlmZmVyZW50IGtpbmRzIHVzaW5nIFdlYk9iLiAgSSBob3BlIHlvdSBhbHNvIGNhbiBhcHByZWNpYXRlIHRoZQorZWxlZ2FuY2Ugb2YgdGhlIHN5bW1ldHJ5IG9mIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3RzLCBhbmQgdGhlCitjbGllbnQgYW5kIHNlcnZlciBmb3IgdGhlIHByb3RvY29sLgorCitNYW55IG9mIHRoZXNlIHRlY2huaXF1ZXMgd291bGQgYmUgYmV0dGVyIHVzZWQgd2l0aCBhIGBSRVNUZnVsCis8aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SZXByZXNlbnRhdGlvbmFsX1N0YXRlX1RyYW5zZmVyPmBfCitzZXJ2aWNlLCBzbyBkbyB0aGluayBhYm91dCB0aGF0IGRpcmVjdGlvbiBpZiB5b3UgYXJlIGltcGxlbWVudGluZyB5b3VyCitvd24gcHJvdG9jb2wuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9saWNlbnNlLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL2xpY2Vuc2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzNjk3OTEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9saWNlbnNlLnR4dApAQCAtMCwwICsxLDIzIEBACitMaWNlbnNlCis9PT09PT09CisKK0NvcHlyaWdodCAoYykgMjAwNyBJYW4gQmlja2luZyBhbmQgQ29udHJpYnV0b3JzCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZworYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCit3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCitkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KK3Blcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwordGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQoraW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCitNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRQorTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTgorT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCitXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL21vZHVsZXMvY2xpZW50LnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL21vZHVsZXMvY2xpZW50LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWQ1OWUzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvbW9kdWxlcy9jbGllbnQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKzptb2Q6YHdlYm9iLmNsaWVudGAgLS0gU2VuZCBXU0dJIHJlcXVlc3RzIG92ZXIgSFRUUAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiB3ZWJvYi5jbGllbnQKKworQ2xpZW50CistLS0tLS0KKworLi4gYXV0b2NsYXNzOjogU2VuZFJlcXVlc3QKKyAgIDptZW1iZXJzOgorCisuLiBhdXRvY2xhc3M6OiBzZW5kX3JlcXVlc3RfYXBwCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9tb2R1bGVzL2RlYy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9tb2R1bGVzL2RlYy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5ZTdhMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL21vZHVsZXMvZGVjLnR4dApAQCAtMCwwICsxLDEwIEBACis6bW9kOmB3ZWJvYi5kZWNgIC0tIFdTR0lmeSBkZWNvcmF0b3IKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogd2Vib2IuZGVjCisKK0RlY29yYXRvcgorLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IHdzZ2lmeQorICAgOm1lbWJlcnM6CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9tb2R1bGVzL2V4Y2VwdGlvbnMudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvbW9kdWxlcy9leGNlcHRpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGJhYzYwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvbW9kdWxlcy9leGNlcHRpb25zLnR4dApAQCAtMCwwICsxLDY0IEBACis6bW9kOmB3ZWJvYi5leGNgIC0tIFdlYk9iIEV4Y2VwdGlvbnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogd2Vib2IuZXhjCisKK0hUVFAgRXhjZXB0aW9ucworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQRXhjZXB0aW9uCisuLiBhdXRvZXhjZXB0aW9uOjogV1NHSUhUVFBFeGNlcHRpb24KKy4uIGF1dG9leGNlcHRpb246OiBIVFRQRXJyb3IKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQUmVkaXJlY3Rpb24KKy4uIGF1dG9leGNlcHRpb246OiBIVFRQT2sKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQQ3JlYXRlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBBY2NlcHRlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb24KKy4uIGF1dG9leGNlcHRpb246OiBIVFRQTm9Db250ZW50CisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFJlc2V0Q29udGVudAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBQYXJ0aWFsQ29udGVudAorLi4gYXV0b2V4Y2VwdGlvbjo6IF9IVFRQTW92ZQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBNdWx0aXBsZUNob2ljZXMKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQTW92ZWRQZXJtYW5lbnRseQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBGb3VuZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBTZWVPdGhlcgorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBOb3RNb2RpZmllZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBVc2VQcm94eQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBUZW1wb3JhcnlSZWRpcmVjdAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBDbGllbnRFcnJvcgorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBCYWRSZXF1ZXN0CisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFVuYXV0aG9yaXplZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBQYXltZW50UmVxdWlyZWQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQRm9yYmlkZGVuCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUE5vdEZvdW5kCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUE1ldGhvZE5vdEFsbG93ZWQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQTm90QWNjZXB0YWJsZQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQUmVxdWVzdFRpbWVvdXQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQQ29uZmxpY3QKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQR29uZQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBMZW5ndGhSZXF1aXJlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBQcmVjb25kaXRpb25GYWlsZWQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQUmVxdWVzdEVudGl0eVRvb0xhcmdlCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFJlcXVlc3RVUklUb29Mb25nCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFVuc3VwcG9ydGVkTWVkaWFUeXBlCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFJlcXVlc3RSYW5nZU5vdFNhdGlzZmlhYmxlCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUEV4cGVjdGF0aW9uRmFpbGVkCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFVucHJvY2Vzc2FibGVFbnRpdHkKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQTG9ja2VkCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUEZhaWxlZERlcGVuZGVuY3kKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQUHJlY29uZGl0aW9uUmVxdWlyZWQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQVG9vTWFueVJlcXVlc3RzCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29ucworLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBTZXJ2ZXJFcnJvcgorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBJbnRlcm5hbFNlcnZlckVycm9yCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUE5vdEltcGxlbWVudGVkCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUEJhZEdhdGV3YXkKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQU2VydmljZVVuYXZhaWxhYmxlCisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUEdhdGV3YXlUaW1lb3V0CisuLiBhdXRvZXhjZXB0aW9uOjogSFRUUFZlcnNpb25Ob3RTdXBwb3J0ZWQKKy4uIGF1dG9leGNlcHRpb246OiBIVFRQSW5zdWZmaWNpZW50U3RvcmFnZQorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZAorLi4gYXV0b2V4Y2VwdGlvbjo6IEhUVFBFeGNlcHRpb25NaWRkbGV3YXJlCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL21vZHVsZXMvc3RhdGljLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL21vZHVsZXMvc3RhdGljLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTA4ZDBjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvbW9kdWxlcy9zdGF0aWMudHh0CkBAIC0wLDAgKzEsMTIgQEAKKzptb2Q6YHdlYm9iLnN0YXRpY2AgLS0gU2VydmluZyBzdGF0aWMgZmlsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gYXV0b21vZHVsZTo6IHdlYm9iLnN0YXRpYworCisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5zdGF0aWMuRmlsZUFwcAorICAgOm1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IHdlYm9iLnN0YXRpYy5EaXJlY3RvcnlBcHAKKyAgIDptZW1iZXJzOgorCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL21vZHVsZXMvd2Vib2IudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvbW9kdWxlcy93ZWJvYi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA1ZGM2ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL21vZHVsZXMvd2Vib2IudHh0CkBAIC0wLDAgKzEsMTA0IEBACis6bW9kOmB3ZWJvYmAgLS0gUmVxdWVzdC9SZXNwb25zZSBvYmplY3RzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1JlcXVlc3QKKy0tLS0tLS0KKworLi4gYXV0b2NsYXNzOjogd2Vib2IucmVxdWVzdC5CYXNlUmVxdWVzdAorICAgOm1lbWJlcnM6CisKK1Jlc3BvbnNlCistLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5yZXNwb25zZS5SZXNwb25zZQorICAgOm1lbWJlcnM6CisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5yZXNwb25zZS5BcHBJdGVyUmFuZ2UKKyAgIDptZW1iZXJzOgorCisKK0hlYWRlcnMKKy0tLS0tLS0KKworQWNjZXB0LSoKK35+fn5+fn5+CisKKy4uIGF1dG9tb2R1bGU6OiB3ZWJvYi5hY2NlcHRwYXJzZQorLi4gYXV0b2NsYXNzOjogQWNjZXB0CisgICA6bWVtYmVyczoKKy4uIGF1dG9jbGFzczo6IE1JTUVBY2NlcHQKKyAgIDptZW1iZXJzOgorCitDYWNoZS1Db250cm9sCit+fn5+fn5+fn5+fn5+CisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5jYWNoZWNvbnRyb2wuQ2FjaGVDb250cm9sCisgICA6bWVtYmVyczoKKworUmFuZ2UgYW5kIHJlbGF0ZWQgaGVhZGVycworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorLi4gYXV0b2NsYXNzOjogd2Vib2IuYnl0ZXJhbmdlLlJhbmdlCisgICA6bWVtYmVyczoKKy4uIGF1dG9jbGFzczo6IHdlYm9iLmJ5dGVyYW5nZS5Db250ZW50UmFuZ2UKKyAgIDptZW1iZXJzOgorLi4gYXV0b2NsYXNzOjogd2Vib2IuZXRhZy5JZlJhbmdlCisgICA6bWVtYmVyczoKKworRVRhZworfn5+fgorLi4gYXV0b2NsYXNzOjogd2Vib2IuZXRhZy5FVGFnTWF0Y2hlcgorICAgOm1lbWJlcnM6CisKKworQ29va2llcworfn5+fn5+fgorCisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5jb29raWVzLkNvb2tpZVByb2ZpbGUKKyAgIDptZW1iZXJzOgorLi4gYXV0b2NsYXNzOjogd2Vib2IuY29va2llcy5TaWduZWRDb29raWVQcm9maWxlCisgICA6bWVtYmVyczoKKy4uIGF1dG9jbGFzczo6IHdlYm9iLmNvb2tpZXMuU2lnbmVkU2VyaWFsaXplcgorICAgOm1lbWJlcnM6CisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5jb29raWVzLkpTT05TZXJpYWxpemVyCisgICA6bWVtYmVyczoKKy4uIGF1dG9mdW5jdGlvbjo6IHdlYm9iLmNvb2tpZXMubWFrZV9jb29raWUKKworCitNaXNjIEZ1bmN0aW9ucyBhbmQgSW50ZXJuYWxzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9mdW5jdGlvbjo6IHdlYm9iLmh0bWxfZXNjYXBlCisKKy4uIGNvbW1lbnQ6CisgICBub3Qgc3VyZSB3aGF0IHRvIGRvIHdpdGggdGhlc2UgY29uc3RhbnRzOyBub3QgYXV0b2NsYXNzCisgICAuLiBhdXRvY2xhc3M6OiB3ZWJvYi5kYXkKKyAgIC4uIGF1dG9jbGFzczo6IHdlYm9iLndlZWsKKyAgIC4uIGF1dG9jbGFzczo6IHdlYm9iLmhvdXIKKyAgIC4uIGF1dG9jbGFzczo6IHdlYm9iLm1pbnV0ZQorICAgLi4gYXV0b2NsYXNzOjogd2Vib2Iuc2Vjb25kCisgICAuLiBhdXRvY2xhc3M6OiB3ZWJvYi5tb250aAorICAgLi4gYXV0b2NsYXNzOjogd2Vib2IueWVhcgorCisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5oZWFkZXJzLlJlc3BvbnNlSGVhZGVycworICAgOm1lbWJlcnM6CisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5oZWFkZXJzLkVudmlyb25IZWFkZXJzCisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdlYm9iLm11bHRpZGljdAorLi4gYXV0b2NsYXNzOjogTXVsdGlEaWN0CisgICA6bWVtYmVyczoKKy4uIGF1dG9jbGFzczo6IE5lc3RlZE11bHRpRGljdAorICAgOm1lbWJlcnM6CisuLiBhdXRvY2xhc3M6OiBOb1ZhcnMKKyAgIDptZW1iZXJzOgorCisuLiBhdXRvY2xhc3M6OiB3ZWJvYi5jYWNoZWNvbnRyb2wuVXBkYXRlRGljdAorICAgOm1lbWJlcnM6CisKKworLi4gY29tbWVudDoKKyAgIERlc2NyaXB0b3JzCisgICAtLS0tLS0tLS0tLQorCisgICAuLiBhdXRvY2xhc3M6OiB3ZWJvYi5kZXNjcmlwdG9ycy5lbnZpcm9uX2dldHRlcgorICAgLi4gYXV0b2NsYXNzOjogd2Vib2IuZGVzY3JpcHRvcnMuaGVhZGVyX2dldHRlcgorICAgLi4gYXV0b2NsYXNzOjogd2Vib2IuZGVzY3JpcHRvcnMuY29udmVydGVyCisgICAuLiBhdXRvY2xhc3M6OiB3ZWJvYi5kZXNjcmlwdG9ycy5kZXByZWNhdGVkX3Byb3BlcnR5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9uZXdzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL25ld3MudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZTc1MTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9uZXdzLnR4dApAQCAtMCwwICsxLDExODMgQEAKK05ld3MKKz09PT0KKworMS41LjBhMCAoMjAxNS0wNy0yNSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0JhY2t3YXJkcyBJbmNvbXBhdGliaWxpdGllcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy0gYGBNb3JzZWxgYCB3aWxsIG5vIGxvbmdlciBhY2NlcHQgYSBjb29raWUgdmFsdWUgdGhhdCBkb2VzIG5vdCBtZWV0IFJGQzYyNjUncworICBjb29raWUtb2N0ZXQgc3BlY2lmaWNhdGlvbi4gVXBvbiBjYWxsaW5nIGBgTW9yc2VsLnNlcmlhbGl6ZWBgIGEgd2FybmluZyB3aWxsCisgIGJlIGlzc3VlZCwgaW4gdGhlIGZ1dHVyZSB0aGlzIHdpbGwgcmFpc2UgYSBgYFZhbHVlRXJyb3JgYCwgcGxlYXNlIHVwZGF0ZSB5b3VyCisgIGNvb2tpZSBoYW5kbGluZyBjb2RlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9wdWxsLzE3MgorCisgIFRoZSBjb29raWUtb2N0ZXQgc3BlY2lmaWNhdGlvbiBpbiBSRkM2MjY1IHN0YXRlcyB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgYXJlCisgIHZhbGlkIGluIGEgY29va2llIHZhbHVlOgorIAorICA9PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICBIZXggUmFuZ2UgICAgICAgIEFjdHVhbCBDaGFyYWN0ZXJzCisgID09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIGBgWzB4MjEgICAgIF1gYCAgYGAhYGAKKyAgYGBbMHgyNS0weDJCXWBgICBgYCMkJSYnKCkqK2BgCisgIGBgWzB4MkQtMHgzQV1gYCAgYGAtLi8wMTIzNDU2Nzg5OmBgCisgIGBgWzB4M0MtMHg1Ql1gYCAgYGA8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW2BgCisgIGBgWzB4NUQtMHg3RV1gYCAgYGBdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+YGAKKyAgPT09PT09PT09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICBSRkM2MjY1IHN1Z2dlc3RzIHVzaW5nIGJhc2UgNjQgdG8gc2VyaWFsaXplIGRhdGEgYmVmb3JlIHN0b3JpbmcgZGF0YSBpbiBhCisgIGNvb2tpZS4KKworLSBgYHJlc3BvbnNlLnNldF9jb29raWVgYCBub3cgdXNlcyB0aGUgaW50ZXJuYWwgYGBtYWtlX2Nvb2tpZWBgIEFQSSwgd2hpY2ggd2lsbAorICBpc3N1ZSB3YXJuaW5ncyBpZiBjb29raWVzIGFyZSBzZXQgd2l0aCBpbnZhbGlkIGJ5dGVzLiBTZWUKKyAgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9wdWxsLzE3MgorCitGZWF0dXJlcworfn5+fn5+fn4KKworLSBBZGQgc3VwcG9ydCBmb3Igc29tZSBuZXcgY2FjaGluZyBoZWFkZXJzLCBzdGFsZS13aGlsZS1yZXZhbGlkYXRlIGFuZAorICBzdGFsZS1pZi1lcnJvciB0aGF0IGNhbiBiZSB1c2VkIGJ5IHJldmVyc2UgcHJveGllcyB0byBjYWNoZSBzdGFsZSByZXNwb25zZXMKKyAgdGVtcG9yYXJpbHkgaWYgdGhlIGJhY2tlbmQgZGlzYXBwZWFycy4gRnJvbSBSRkM1ODYxLiBTZWUKKyAgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9wdWxsLzE4OQorCitCdWcgRml4ZXMKK35+fn5+fn5+fgorCistIFJlc3BvbnNlLnN0YXR1cyBub3cgdXNlcyBkdWNrLXR5cGluZyBmb3IgaW50ZWdlcnMsIGFuZCBoYXMgYWxzbyBsZWFybmVkIHRvCisgIHJhaXNlIGEgVmFsdWVFcnJvciBpZiB0aGUgc3RhdHVzIGlzbid0IGFuIGludGVnZXIgZm9sbG93ZWQgYnkgYSBzcGFjZSwgYW5kCisgIHRoZW4gdGhlIHJlYXNvbi4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvcHVsbC8xOTEKKworLSBGaXhlZCBhIGJ1ZyBpbiBgYHdlYm9iLm11bHRpZGljdC5HZXREaWN0YGAgd2hpY2ggcmVzdWx0ZWQgaW4gdGhlCisgIFFVRVJZX1NUUklORyBub3QgYmVpbmcgdXBkYXRlZCB3aGVuIGNoYW5nZXMgd2VyZSBtYWRlIHRvIHF1ZXJ5CisgIHBhcmFtcyB1c2luZyBgYFJlcXVlc3QuR0VULmV4dGVuZCgpYGAuCisKKy0gUmVhZCB0aGUgYm9keSBvZiBhIHJlcXVlc3QgaWYgd2UgdGhpbmsgaXQgbWlnaHQgaGF2ZSBhIGJvZHkuIFRoaXMgZml4ZXMgUEFUQ0gKKyAgdG8gc3VwcG9ydCBib2RpZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL3B1bGwvMTg0CisKKy0gUmVzcG9uc2UuZnJvbV9maWxlIHJldHVybnMgSFRUUCBoZWFkZXJzIGFzIGxhdGluMSByYXRoZXIgdGhhbiBVVEYtOCwgdGhpcworICBmaXhlcyB0aGUgdXNhZ2Ugb24gR29vZ2xlIEFwcEVuZ2luZS4gU2VlCisgIGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvaXNzdWVzLzk5IGFuZAorICBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL3B1bGwvMTUwCisKKy0gRml4IGEgYnVnIGluIHBhcnNpbmcgdGhlIGF1dGggcGFyYW1ldGVycyB0aGF0IGNvbnRhaW5lZCBiYWQgd2hpdGUgc3BhY2UuIFRoaXMKKyAgbWFrZXMgdGhlIHBhcnNpbmcgZmFsbCBpbiBsaW5lIHdpdGggd2hhdCdzIHJlcXVpcmVkIGluIFJGQzcyMzUuIFNlZQorICBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL2lzc3Vlcy8xNTgKKworLSBVc2UgJ1xyXG4nIGxpbmUgZW5kaW5ncyBpbiBgYFJlc3BvbnNlLl9fc3RyX19gYC4gU2VlOgorICBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL3B1bGwvMTQ2CisKK0RvY3VtZW50YXRpb24gQ2hhbmdlcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy0gYGByZXNwb25zZS5zZXRfY29va2llYGAgbm93IGhhcyBwcm9wZXIgZG9jdW1lbnRhdGlvbiBmb3IgYGBtYXhfYWdlYGAgYW5kCisgIGBgZXhwaXJlc2BgLiBUaGUgY29kZSBoYXMgYWxzbyBiZWVuIHJlZmFjdG9yZWQgdG8gdXNlIGBgY29va2llcy5tYWtlX2Nvb2tpZWBgCisgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGNvZGUuIFRoaXMgZml4ZXMKKyAgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9pc3N1ZXMvMTY2IGFuZAorICBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL2lzc3Vlcy8xNzEKKworLSBEb2N1bWVudGF0aW9uIGRpZG4ndCBtYXRjaCB0aGUgYWN0dWFsIGNvZGUgZm9yIHRoZSB3c2dpZnkgZnVuY3Rpb24gc2lnbmF0dXJlLgorICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9wdWxsLzE2NworCistIFJlbW92ZSB0aGUgV2ViREFWIG9ubHkgZnJvbSBjZXJ0YWluIEhUVFAgRXhjZXB0aW9ucywgdGhlc2UgZXhjZXB0aW9ucyBtYXkKKyAgYWxzbyBiZSB1c2VkIGJ5IFJFU1Qgc2VydmljZXMgZm9yIGV4YW1wbGUuCisKKzEuNCAoMjAxNC0wNS0xNCkKKy0tLS0tLS0tLS0tLS0tLS0KKworRmVhdHVyZXMKK35+fn5+fn5+CisKKy0gUmVtb3ZlIGBgd2Vib2IuX192ZXJzaW9uX19gYCwgdGhlIHZlcnNpb24gbnVtYmVyIGhhZCBub3QgYmVlbiBrZXB0IGluIHN5bmMKKyAgd2l0aCB0aGUgb2ZmaWNpYWwgcGtnIHZlcnNpb24uICBUbyBvYnRhaW4gdGhlIFdlYk9iIHZlcnNpb24gbnVtYmVyLCB1c2UKKyAgYGBwa2dfcmVzb3VyY2VzLmdldF9kaXN0cmlidXRpb24oJ3dlYm9iJykudmVyc2lvbmBgIGluc3RlYWQuCisKK0J1ZyBGaXhlcworfn5+fn5+fn5+CisKKy0gRml4IGEgYnVnIGluIGBgRW1wdHlSZXNwb25zZWBgIHRoYXQgcHJldmVudHMgaXQgZnJvbSBzZXR0aW5nIHNlbGYuY2xvc2UgYXMKKyAgYXBwcm9wcmlhdGUgZHVlIHRvIHRlc3RpbmcgdHJ1dGhpbmVzcyBvZiBvYmplY3QgcmF0aGVyIHRoYW4gaWYgaXQgaXMKKyAgc29tZXRoaW5nIG90aGVyIHRoYW4gYGBOb25lYGAuCisKKy0gRml4IGEgYnVnIGluIGBgU2lnbmVkU2VyaWFsaXplcmBgIHByZXZlbnRpbmcgc2VjcmV0cyBmcm9tIGNvbnRhaW5pbmcKKyAgaGlnaGVyLW9yZGVyIGNoYXJhY3RlcnMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL2lzc3Vlcy8xMzYKKworLSBVc2UgdGhlIGBgaG1hYy5jb21wYXJlX2RpZ2VzdGBgIG1ldGhvZCB3aGVuIGF2YWlsYWJsZSBmb3IgY29uc3RhbnQtdGltZQorICBjb21wYXJpc29ucy4KKworMS4zLjEgKDIwMTMtMTItMTMpCistLS0tLS0tLS0tLS0tLS0tLS0KKworQnVnIEZpeGVzCit+fn5+fn5+fn4KKworLSBGaXggYSBidWcgaW4gYGBTaWduZWRDb29raWVQcm9maWxlYGAgd2hlcmVieSB3ZSBkaWRuJ3Qga2VlcCB0aGUgb3JpZ2luYWwKKyAgc2VyaWFsaXplciBhcm91bmQsIHRoaXMgd291bGQgY2F1c2UgdXMgdG8gaGF2ZSBgYFNpZ25lZFNlcmlhbGl6ZXJgYCBiZSBhZGRlZCBvbgorICB0b3Agb2YgYSBgYFNpZ25lZFNlcmlhbGl6ZXJgYCB3aGljaCB3b3VsZCBjYXVzZSBpdCB0byBiZSBydW4gdHdpY2Ugd2hlbgorICBhdHRlbXB0aW5nIHRvIHZlcmlmeSBhIGNvb2tpZS4gIFNlZSBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL3B1bGwvMTI3CisKK0JhY2t3YXJkcyBJbmNvbXBhdGliaWxpdGllcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy0gV2hlbiBgYENvb2tpZVByb2ZpbGUuZ2V0X3ZhbHVlYGAgYW5kIGBgU2lnbmVkQ29va2llUHJvZmlsZS5nZXRfdmFsdWVgYCBmYWlscworICB0byBkZXNlcmlhbGl6ZSBhIGJhZGx5IGVuY29kZWQgdmFsdWUsIHdlIG5vdyByZXR1cm4gYGBOb25lYGAgYXMgaWYgdGhlIGNvb2tpZQorICB3YXMgbmV2ZXIgc2V0IGluIHRoZSBmaXJzdCBwbGFjZSBpbnN0ZWFkIG9mIGFsbG93aW5nIGEgYGBWYWx1ZUVycm9yYGAgdG8gYmUKKyAgcmFpc2VkIHRvIHRoZSBjYWxsaW5nIGNvZGUuICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9wdWxsLzEyNgorCisxLjMgKDIwMTMtMTItMTApCistLS0tLS0tLS0tLS0tLS0tCisKK0ZlYXR1cmVzCit+fn5+fn5+fgorCistIEFkZGVkIGEgcmVhZC1vbmx5IGBgZG9tYWluYGAgcHJvcGVydHkgdG8gYGBCYXNlUmVxdWVzdGBgLiAgVGhpcyBwcm9wZXJ0eQorICByZXR1cm5zIHRoZSBkb21haW4gcG9ydGlvbiBvZiB0aGUgaG9zdCB2YWx1ZS4gIEZvciBleGFtcGxlLCBpZiB0aGUKKyAgZW52aXJvbm1lbnQgY29udGFpbnMgYW4gYGBIVFRQX0hPU1RgYCB2YWx1ZSBvZiBgYGZvby5leGFtcGxlLmNvbTo4MDAwYGAsCisgIGBgcmVxdWVzdC5kb21haW5gYCB3aWxsIHJldHVybiBgYGZvby5leGFtcGxlLmNvbWBgLgorCistIEFkZGVkIGZpdmUgbmV3IEFQSXM6IGBgd2Vib2IuY29va2llcy5Db29raWVQcm9maWxlYGAsCisgIGBgd2Vib2IuY29va2llcy5TaWduZWRDb29raWVQcm9maWxlYGAsIGBgd2Vib2IuY29va2llcy5KU09OU2VyaWFsaXplcmBgIGFuZAorICBgYHdlYm9iLmNvb2tpZXMuU2lnbmVkU2VyaWFsaXplcmBgLCBhbmQgYGB3ZWJvYi5jb29raWVzLm1ha2VfY29va2llYGAuICBUaGVzZQorICBBUElzIGFyZSBjb252ZW5pZW5jZSBBUElzIGZvciBnZW5lcmF0aW5nIGFuZCBwYXJzaW5nIGNvb2tpZSBoZWFkZXJzIGFzIHdlbGwKKyAgYXMgZGVhbGluZyB3aXRoIHNpZ25pbmcgY29va2llcy4KKworLSBDb29raWVzIGdlbmVyYXRlZCB2aWEgd2Vib2IuY29va2llcyBxdW90ZWQgY2hhcmFjdGVycyBpbiBjb29raWUgdmFsdWVzIHRoYXQKKyAgZGlkIG5vdCBuZWVkIHRvIGJlIHF1b3RlZCBwZXIgUkZDIDYyNjUuICBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgYXJlIG5vCisgIGxvbmdlciBxdW90ZWQgaW4gY29va2llIHZhbHVlczogYGB+Lz08PigpW117fT9AYGAgLiAgVGhlIGZ1bGwgc2V0IG9mCisgIG5vbi1sZXR0ZXItb3ItZGlnaXQgdW5xdW90ZWQgY29va2llIHZhbHVlIGNoYXJhY3RlcnMgaXMgbm93CisgIGBgISMkJSYnKistLl5fYHx+LzogPTw+KClbXXt9P0BgYC4gIFNlZQorICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjEgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKy0gQ29va2llIG5hbWVzIGFyZSBub3cgcmVzdHJpY3RlZCB0byB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgZXhwZWN0ZWQgYnkgUkZDCisgIDYyNjUuICBQcmV2aW91c2x5IHRoZXkgY291bGQgY29udGFpbiB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzIHN1Y2ggYXMgYGAvYGAuCisKKy0gT2xkZXIgdmVyc2lvbnMgb2YgV2Vib2IgZXNjYXBlZCB0aGUgZG91YmxlcXVvdGUgdG8gYGBcImBgIGFuZCB0aGUgYmFja3NsYXNoCisgIHRvIGBgXFxgYCB3aGVuIHF1b3RpbmcgY29va2llIHZhbHVlcy4gIE5vdywgaW5zdGVhZCwgY29va2llIHNlcmlhbGl6YXRpb24KKyAgZ2VuZXJhdGVzIGBgXDA0MmBgIGZvciB0aGUgZG91YmxlcXVvdGUgYW5kIGBgXDEzNGBgIGZvciB0aGUgYmFja3NsYXNoLiBUaGlzCisgIGlzIHdoYXQgaXMgZXhwZWN0ZWQgYXMgcGVyIFJGQyA2MjY1LiAgTm90ZSB0aGF0IG9sZCBjb29raWUgdmFsdWVzIHRoYXQgZG8KKyAgaGF2ZSB0aGUgb2xkZXIgc3R5bGUgcXVvdGluZyBpbiB0aGVtIHdpbGwgc3RpbGwgYmUgdW5xdW90ZWQgY29ycmVjdGx5LAorICBob3dldmVyLgorCistIEFkZGVkIHN1cHBvcnQgZm9yIGRyYWZ0IHN0YXR1cyBjb2RlIDQ1MSAoIlVuYXZhaWxhYmxlIGZvciBMZWdhbCBSZWFzb25zIikuCisgIFNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC10YnJheS1odHRwLWxlZ2FsbHktcmVzdHJpY3RlZC1zdGF0dXMtMDAKKworLSBBZGRlZCBzdGF0dXMgY29kZXMgNDI4LCA0MjksIDQzMSBhbmQgNTExIHRvIGBgdXRpbC5zdGF0dXNfcmVhc29uc2BgICh0aGV5CisgIHdlcmUgYWxyZWFkeSBwcmVzZW50IGluIGEgcHJldmlvdXMgcmVsZWFzZSBhcyBgYHdlYm9iLmV4Y2BgIGV4Y2VwdGlvbnMpLgorCitCdWcgRml4ZXMKK35+fn5+fn5+fgorCistIE1JTUVBY2NlcHQgaGFwcGlseSBwYXJzZWQgbWFsZm9ybWVkIHdpbGRjYXJkIHN0cmluZ3MgbGlrZSAiaW1hZ2UvcG4qIiBhdAorICBwYXJzZSB0aW1lLCBidXQgdGhlbiB0aHJldyBhbiBBc3NlcnRpb25FcnJvciBkdXJpbmcgbWF0Y2hpbmcuICBTZWUKKyAgaHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9wdWxsLzgzIC4KKworLSBQcmVzZXJ2ZSBkb2N1bWVudCBvcmRlcmluZyBvZiBHRVQgYW5kIFBPU1QgcmVxdWVzdCBkYXRhIHdoZW4gUE9TVCBkYXRhIHBhc3NlZAorICB0byBSZXF1ZXN0LmJsYW5rIGlzIGEgTXVsdGlEaWN0LiAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvcHVsbC85NgorCistIEFsbG93IHF1ZXJ5IHN0cmluZ3MgYXR0YWNoZWQgdG8gUEFUQ0ggcmVxdWVzdHMgdG8gcG9wdWxhdGUgcmVxdWVzdC5wYXJhbXMuCisgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vUHlsb25zL3dlYm9iL3B1bGwvMTA2CisKKy0gQWRkZWQgUHl0aG9uIDMuMyB0cm92ZSBjbGFzc2lmaWVyLgorCisxLjIuMworLS0tLS0tLS0tLS0tCisKKyogTWFpbnRhaW5lcnNoaXAgdHJhbnNmZXJyZWQgdG8gYFB5bG9ucyBQcm9qZWN0IDxodHRwOi8vd3d3LnB5bG9uc3Byb2plY3Qub3JnLz5gCisKKyogRml4IHBhcnNpbmcgb2YgZm9ybSBzdWJtaXNzaW9ucyB3aGVyZSBmaWVsZHMgaGF2ZQorICB0cmFuc2Zlci1jb250ZW50LWVuY29kaW5nIGhlYWRlcnMuCisKKzEuMi4yCistLS0tLS0tLS0tLS0KKworKiBGaXggbXVsdGlwbGUgY2FsbHMgdG8gYGBjYWNoZV9leHBpcmVzKClgYCBub3QgZnVsbHkgb3ZlcnJpZGluZyB0aGUKKyAgcHJldmlvdXNseSBzZXQgaGVhZGVycy4KKworKiBGaXggcGFyc2luZyBvZiBmb3JtIHN1Ym1pc3Npb25zIHdoZXJlIGZpZWxkcyBoYXZlIGRpZmZlcmVudCBlbmNvZGluZ3MuCisKKworMS4yLjEKKy0tLS0tLS0tLS0tLQorCisqIEFkZCBpbmRleCBwYWdlIChlLmcuLCBgYGluZGV4Lmh0bWxgYCkgc3VwcG9ydCBmb3IKKyAgOmNsYXNzOmB3ZWJvYi5zdGF0aWMuRGlyZWN0b3J5QXBwYC4KKworKiBEZXRlY3QgbWltZS10eXBlIHdoZW4gY3JlYXRpbmcgYSB0ZXN0IHJlcXVlc3Qgd2l0aCBmaWxlIHVwbG9hZHMKKyAgKGBgUmVxdWVzdC5ibGFuaygiLyIsIFBPU1Q9ZGljdChmaWxlMT0oImZvby5qcGciLCAieHh4IikpKWBgKQorCisqIFJlbGF4IHBhcnNpbmcgb2YgYGBBY2NlcHRgYCBhbmQgYGBSYW5nZWBgIGhlYWRlcnMgdG8gYWxsb3cKKyAgdXBwZXJjYXNlIGFuZCBleHRyYSB3aGl0ZXNwYWNlLgorCisqIEZpeCBkb2NzIHJlZmVyZW5jZXMgdG8gc29tZSBkZXByZWNhdGVkIGNsYXNzZXMuCisKKworMS4yCistLS0tLS0tLS0tLS0KKworKiBGaXggOm1vZDpgd2Vib2IuY2xpZW50YCBoYW5kbGluZyAgb2YgY29ubmVjdGlvbi1yZWZ1c2VkIG9uIFdpbmRvd3MuCisKKyogVXNlIGBgc2ltcGxlanNvbmBgIGluIDptb2Q6YHdlYm9iLnJlcXVlc3RgIGlmIHByZXNlbnQuCisKKyogRml4IGBgcmVzcC5yZXRyeV9hZnRlciA9IDxsb25nPmBgIGludGVycHJldGluZyB2YWx1ZSBhcyBhIFVOSVggdGltZXN0YW1wCisgIChzaG91bGQgaW50ZXJwcmV0IGFzIHRpbWUgZGVsdGEgaW4gc2Vjb25kcykuCisKKworMS4ycmMxCistLS0tLS0tLS0tLS0KKworKiBBZGQgYGBSZXNwb25zZS5qc29uYGAgYW5kIGBgUmVxdWVzdC5qc29uYGAgd2hpY2ggcmVhZHMgYW5kIHNldHMgdGhlCisgIGJvZHkgdXNpbmcgYSBKU09OIGVuY29kaW5nIChwcmV2aW91c2x5IG9ubHkgdGhlIHJlYWRhYmxlIGF0dHJpYnV0ZQorICBgYFJlcXVlc3QuanNvbl9ib2R5YGAgZXhpc3RlZCkuICBgYFJlcXVlc3QuanNvbl9ib2R5YGAgaXMgc3RpbGwKKyAgYXZhaWxhYmxlIGFzIGFuIGFsaWFzLgorCisqIFJlbmFtZSBgYFJlc3BvbnNlLnN0YXR1c19pbnRgYCB0byBgYFJlc3BvbnNlLnN0YXR1c19jb2RlYGAgKHRoZQorICBgYC5zdGF0dXNfaW50YGAgbmFtZSBpcyBzdGlsbCBhdmFpbGFibGUgYW5kIHdpbGwgYmUgc3VwcG9ydGVkCisgIGluZGVmaW5pdGVseSkuCisKKyogQWRkIGBgUmVxdWVzdC50ZXh0YGAsIHRoZSB1bmljb2RlIHZlcnNpb24gb2YgdGhlIHJlcXVlc3QgYm9keQorICAoc2ltaWxhciB0byBgYFJlc3BvbnNlLnRleHRgYCkuCisKKyogQWRkIDptb2Q6YHdlYm9iLmNsaWVudGAgd2hpY2ggY29udGFpbnMgdGhlIFdTR0kgYXBwbGljYXRpb24KKyAgYGBzZW5kX3JlcXVlc3RfYXBwYGAgYW5kIGBgU2VuZFJlcXVlc3RgYC4gIEFsbCByZXF1ZXN0cyBzZW50IHRvIHRoaXMKKyAgYXBwbGljYXRpb24gYXJlIHR1cm5lZCBpbnRvIEhUVFAgcmVxdWVzdHMuCisKKyogUmVuYW1lZCBgYFJlcXVlc3QuZ2V0X3Jlc3BvbnNlKGFwcClgYCB0byBgYFJlcXVlc3Quc2VuZChhcHApYGAuICBUaGUKKyAgYGAuZ2V0X3Jlc3BvbnNlKClgYCBuYW1lIGlzIHN0aWxsIGF2YWlsYWJsZS4KKworKiBVc2UgYGBzZW5kX3JlcXVlc3RfYXBwYGAgYXMgdGhlIGRlZmF1bHQgYXBwbGljYXRpb24gZm9yCisgIGBgUmVxdWVzdC5zZW5kKClgYCwgc28geW91IGNhbiBkbzoKKworICAgIGBgcmVzcCA9IFJlcXVlc3QuYmxhbmsoImh0dHA6Ly9weXRob24ub3JnIikuc2VuZCgpYGAKKworKiBBZGQgOm1vZDpgd2Vib2Iuc3RhdGljYCB3aGljaCBjb250YWlucyB0d28gbmV3IFdTR0kgYXBwbGljYXRpb25zLAorICA6Y2xhc3M6YEZpbGVBcHBgIHNlcnZlIG9uZSBzdGF0aWMgZmlsZSBhbmQgOmNsYXNzOmBEaXJlY3RvcnlBcHBgwqB0byBzZXJ2ZQorICB0aGUgY29udGVudCBvZiBhIGRpcmVjdG9yeS4gVGhleSBzaG91bGQgcHJvdmlkZSBhIHJldXNhYmxlIGltcGxlbWVudGF0aW9uCisgIG9mIDpkb2M6YGZpbGUtZXhhbXBsZWAuICBJdCBhbHNvIGNvbWVzIHdpdGggc3VwcG9ydCBmb3IgYGB3c2dpLmZpbGVfd3JhcHBlcmBgLgorCisgIFRoZSBpbXBsZW1lbnRhdGlvbiBoYXMgYmVlbiBpbXBvcnRlZCBhbmQgc2ltcGxpZmllZCBmcm9tCisgIDptb2Q6YFBhc3RlT2IuZmlsZWFwcGAuCisKKyogQWRkIGBgZGV2YGAgYW5kIGBgZG9jc2BgIHNldHVwLnB5IGFsaWFzZXMgKHRvIGluc3RhbGwgZGV2ZWxvcG1lbnQgYW5kIGRvY3MKKyAgZGVwZW5kZW5jaWVzIHJlc3BlY3RpdmVseSwgZS5nLiAicHl0aG9uIHNldHVwLnB5IGRldiIpLgorCisKKzEuMmIzCistLS0tLS0tLS0tLS0KKworKiBBZGRlZCBgYHJlcXVlc3QuaG9zdF9wb3J0YGAgQVBJIChyZXR1cm5zIHBvcnQgbnVtYmVyIGltcGxpZWQgYnkgSFRUUF9IT1NULAorICBmYWxsaW5nIGJhY2sgdG8gU0VSVkVSX1BPUlQpLgorCisqIEFkZGVkIGBgcmVxdWVzdC5jbGllbnRfYWRkcmBgIEFQSSAocmV0dXJucyBJUCBhZGRyZXNzIGltcGxpZWQgYnkKKyAgSFRUUF9YX0ZPUldBUkRFRF9GT1IsIGZhbGxpbmcgYmFjayB0byBSRU1PVEVfQUREUikuCisKKyogRml4IGNvcm5lci1jYXNlIGBgcmVzcG9uc2Uuc3RhdHVzX2ludGBgIGFuZCBgYHJlc3BvbnNlLnN0YXR1c2BgIG11dGF0aW9uCisgIGJ1ZyBvbiBweTMgKHVzZSBleHBsaWNpdCBmbG9vciBkaXZpc2lvbikuCisKKyogQmFja3dhcmRzIGluY29tcGF0aWJpbGl0eTogUmVxdWVzdCBhbmQgQmFzZVJlcXVlc3Qgb2JqZWN0cyBub3cgcmV0dXJuCisgIFVuaWNvZGUgZm9yIGBgcmVxdWVzdC5wYXRoX2luZm9gYCBhbmQgYGByZXF1ZXN0LnNjcmlwdF9uYW1lYGAgdW5kZXIgUHl0aG9uCisgIDIuICBSYXRpb25hbGU6IHRoZSBsZWdhY3kgYmVoYXZpb3Igb2YgcmV0dXJuaW5nIHRoZSByZXNwZWN0aXZlIHJhdyBlbnZpcm9uCisgIHZhbHVlcyB3YXMgbm9uc2Vuc2ljYWwgb24gUHl0aG9uIDMuICBXb3JraW5nIHdpdGggbm9uLWFzY2lpIGVuY29kZWQgZW52aXJvbgorICB2YXJpYWJsZXMgYXMgcmF3IFdTR0kgdmFsdWVzIHVuZGVyIFB5dGhvbiAzIG1ha2VzIG5vIHNlbnNlLCBhcyBQRVAgMzMzMworICBzcGVjaWZpZXMgdGhhdCBlbnZpcm9uIHZhcmlhYmxlcyBhcmUgYnl0ZXMtdHVubmVsZWQtYXMtbGF0aW4tMSBzdHJpbmdzLgorCisgIElmIHlvdSBkb24ndCBjYXJlIGFib3V0IFB5dGhvbiAzLCBhbmQgeW91IG5lZWQgc3RyaWN0IGJhY2t3YXJkcworICBjb21wYXRpYmlsaXR5LCB0byBnZXQgbGVnYWN5IGJlaGF2aW9yIG9mIHJldHVybmluZyBieXRlcyBvbiBQeXRob24gMiBmb3IKKyAgdGhlc2UgYXR0cmlidXRlcywgdXNlIGBgd2Vib2IuTGVnYWN5UmVxdWVzdGBgIGluc3RlYWQgb2YgYGB3ZWJvYi5SZXF1ZXN0YGAuCisgIEFsdGhvdWdoIGl0J3MgcG9zc2libGUgdG8gdXNlIGBgd2Vib2IuTGVnYWN5UmVxdWVzdGBgIHVuZGVyIFB5dGhvbiAzLCBpdAorICBtYWtlcyBubyBzZW5zZSwgYW5kIGl0IHNob3VsZCBub3QgYmUgdXNlZCB0aGVyZS4KKworKiBUaGUgYWJvdmUgYmFja3dhcmRzIGluY29tcGF0aWJpbGl0eSBmaXhlZCBub25zZW5zaWNhbCBiZWhhdmlvciBvZgorICBgYHJlcXVlc3QuaG9zdF91cmxgYCwgYGByZXF1ZXN0LmFwcGxpY2F0aW9uX3VybGBgLCBgYHJlcXVlc3QucGF0aF91cmxgYCwKKyAgYGByZXF1ZXN0LnBhdGhgYCwgYGByZXF1ZXN0LnBhdGhfcXNgYCwgYGByZXF1ZXN0LnVybGBgLAorICBgYHJlcXVlc3QucmVsYXRpdmVfdXJsYGAsIGBgcmVxdWVzdC5wYXRoX2luZm9fcGVla2BgLAorICBgYHJlcXVlc3QucGF0aF9pbmZvX3BvcGBgIHVuZGVyIFB5dGhvbiAzLiAgVGhlc2UgbWV0aG9kcyBwcmV2aW91c2x5IGRlYWx0CisgIHdpdGggcmF3IFNDUklQVF9OQU1FIGFuZCBQQVRIX0lORk8gdmFsdWVzLCB3aGljaCBjYXVzZWQgbm9uc2Vuc2ljYWwKKyAgcmVzdWx0cy4KKworKiBUaGUgV2ViT2IgUmVxdWVzdCBvYmplY3Qgbm93IHJlc3BlY3RzIGFuIGFkZGl0aW9uYWwgV1NHSSBlbnZpcm9ubWVudAorICB2YXJpYWJsZTogYGB3ZWJvYi51cmxfZW5jb2RpbmdgYC4gIGBgd2Vib2IudXJsX2VuY29kaW5nYGAgd2lsbCBiZSB1c2VkIHRvCisgIGRlY29kZSB0aGUgcmF3IFdTR0kgUEFUSF9JTkZPIGFuZCBTQ1JJUFRfTkFNRSB2YXJpYWJsZXMgd2hlbiB0aGUKKyAgYGByZXF1ZXN0LnBhdGhfaW5mb2BgIGFuZCBgYHJlcXVlc3Quc2NyaXB0X25hbWVgYCBBUElzIGFyZSB1c2VkLgorCisqIFJlcXVlc3Qgb2JqZWN0cyBub3cgYWNjZXB0IGFuIGFkZGl0aW9uYWwgY29uc3RydWN0b3IgcGFyYW1ldGVyOgorICBgYHVybF9lbmNvZGluZ2BgLiAgYGB1cmxfZW5jb2RpbmdgYCB3aWxsIGJlIHVzZWQgdG8gZGVjb2RlIFBBVEhfSU5GTyBhbmQKKyAgU0NSSVBUX05BTUUgZnJvbSBpdHMgV1NHSS1lbmNvZGVkIHZhbHVlcy4gSWYgYGB3ZWJvYi51cmxfZW5jb2RpbmdgYCBpcyBub3QKKyAgc2V0IGluIHRoZSBlbnZpcm9uIGFuZCBgYHVybF9lbmNvZGluZ2BgIGlzIG5vdCBwYXNzZWQgdG8gdGhlIFJlcXVlc3QKKyAgY29uc3RydWN0b3IsIHRoZSBkZWZhdWx0IHZhbHVlIGBgdXRmLThgYCB3aWxsIGJlIHVzZWQgdG8gZGVjb2RlIHRoZQorICBQQVRIX0lORk8gYW5kIFNDUklQVF9OQU1FLgorCisgIE5vdGUgdGhhdCBwYXNzaW5nIGBgdXJsX2VuY29kaW5nYGAgd2lsbCBjYXVzZSB0aGUgV1NHSSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICBgYHdlYm9iLnVybF9lbmNvZGluZ2BgIHRvIGJlIHNldC4KKworKiBGaXggYGB3ZWJvYi5yZXNwb25zZS5fcmVxdWVzdF91cmlgYCBpbnRlcm5hbCBmdW5jdGlvbiB0byBnZW5lcmF0ZSBzZW5zaWJsZQorICByZXF1ZXN0IFVSSSB1bmRlciBQeXRob24gMy4gIFRoaXMgZml4ZWQgYSBwcm9ibGVtIHVuZGVyIFB5dGhvbiAzIGlmIHlvdQorICB3ZXJlIHVzaW5nIG5vbi1hYnNvbHV0ZSBMb2NhdGlvbiBoZWFkZXJzIGluIHJlc3BvbnNlcy4KKworMS4yYjIKKy0tLS0tLQorCisqIEZpeCBgYHJlcXVlc3QuY29va2llcy5nZXQoJ25hbWUnLCAnZGVmYXVsdCcpYGAuICBQcmV2aW91c2x5IGBgZGVmYXVsdGBgIHdhcworICBpZ25vcmVkLgorCisxLjJiMQorLS0tLS0tLS0tCisKKyogTXV0YXRpbmcgdGhlIGBgcmVxdWVzdC5jb29raWVzYGAgcHJvcGVydHkgbm93IHJlZmxlY3RzIHRoZSBtdXRhdGlvbnMgaW50bworICB0aGUgYGBIVFRQX0NPT0tJRVNgYCBlbnZpcm9uIGhlYWRlci4KKworKiBgYFJlc3BvbnNlLmV0YWcgPSAodGFnLCBGYWxzZSlgYCBzZXRzIHdlYWsgZXRhZy4KKworKiBgYFJhbmdlYGAgb25seSBwYXJzZXMgc2luZ2xlIHJhbmdlIG5vdy4KKworKiBgYFJhbmdlLnNhdGlzZmlhYmxlKC4uKWBgIGlzIGdvbmUuCisKKyogYGBBY2NlcHQuYmVzdF9tYXRjaGVzKClgYCBpcyBnb25lOyB1c2UgYGBsaXN0KHJlcXVlc3QuYWNjZXB0KWBgIG9yCisgIGBgcmVxdWVzdC5hY2NlcHQuYmVzdF9tYXRjaCguLilgYCBpbnN0ZWFkIChhcHBsaWVzIHRvIGFsbCBBY2NlcHQtKgorICBoZWFkZXJzKSBvciBzaW1pbGFyIHdpdGggYGByZXF1ZXN0LmFjY2VwdF9sYW5ndWFnZWBgLgorCisqIGBgUmVzcG9uc2UucmVxdWVzdGBgIGFuZCBgYFJlc3BvbnNlLmVudmlyb25gYCBhdHRycyBhcmUgdW5kZXByZWNhdGVkIGFuZCBubworICBsb25nZXIgcmFpc2UgZXhjZXB0aW9ucyB3aGVuIHVzZWQuICBUaGVzZSBjYW4gYWxzbyBiZSBwYXNzZWQgdG8gdGhlCisgIFJlc3BvbnNlIGNvbnN0cnVjdG9yLiAgVGhpcyBpcyB0byBzdXBwb3J0IGNvZGViYXNlcyB0aGF0IHBhc3MgdGhlbSB0byB0aGUKKyAgY29uc3RydWN0b3Igb3IgYXNzaWduIHRoZW0gdG8gYSByZXNwb25zZSBpbnN0YW5jZS4gIEhvd2V2ZXIsIHNvbWUgYmVoYXZpb3IKKyAgZGlmZmVyZW5jZXMgZnJvbSAxLjEgZXhpc3QuICBJbiBwYXJ0aWN1bGFyLCBzeW5jaHJvbml6YXRpb24gaXMgbm8gbG9uZ2VyCisgIGRvbmUgYmV0d2VlbiBlbnZpcm9uIGFuZCByZXF1ZXN0IGF0dHJpYnV0ZSBwcm9wZXJ0aWVzIG9mIFJlc3BvbnNlOyB5b3UgbWF5CisgIHBhc3MgZWl0aGVyIHRvIHRoZSBjb25zdHJ1Y3RvciAob3IgYm90aCkgb3IgYXNzaWduIG9uZSBvciB0aGUgb3RoZXIgb3IKKyAgYm90aCwgYnV0IHRoZXkgd29udCBiZSBtYW5hZ2VkIHNwZWNpYWxseSBhbmQgd2lsbCByZW1haW4gdGhlIHNhbWUgb3ZlciB0aGUKKyAgbGlmZXRpbWUgb2YgdGhlIHJlc3BvbnNlIGp1c3QgYXMgeW91IHBhc3NlZCB0aGVtLiAgRGVmYXVsdCB2YWx1ZXMgZm9yIGJvdGgKKyAgYGByZXF1ZXN0YGAgYW5kIGBgZW52aXJvbmBgIG9uIGFueSBnaXZlbiByZXNwb25zZSBhcmUgYGBOb25lYGAgbm93LgorCisqIFVuZGVwcmVjYXRlZCBgYHVzY3JpcHRfbmFtZWBgIGFuZCBgYHVwYXRoX2luZm9gYC4KKworKiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHVycG9zZXMsIHN3aXRjaCBgYHJlcS5zY3JpcHRfbmFtZWBgIGFuZAorICBgYHBhdGhfaW5mb2BgIGJhY2sgYWdhaW4gdG8gY29udGFpbiAicmF3IiB1bmRlY29kZWQgbmF0aXZlIHN0cmluZ3MgcmF0aGVyCisgIHRoYW4gdGV4dC4gIFVzZSBgYHVzY3JpcHRfbmFtZWBgIGFuZCBgYHVwYXRoX2luZm9gYCB0byBnZXQgdGhlIHRleHQgdmVyc2lvbgorICBvZiBTQ1JJUFRfTkFNRSBhbmQgUEFUSF9JTkZPLgorCisqIERvbid0IHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiBgYHVuaWNvZGVfZXJyb3JzYGAgb3IgYGBkZWNvZGVfcGFyYW1fbmFtZXNgYCBpcworICBwYXNzZWQgdG8gdGhlIFJlcXVlc3QgY29uc3RydWN0b3IuICBJbnN0ZWFkLCBlbWl0IGEgd2FybmluZy4gIEZvciBiZW5lZml0CisgIG9mIFB5bG9ucyAxLlgsIHdoaWNoIHBhc3NlcyBib3RoLgorCisqIERvbid0IHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiBIVFRQRXhjZXB0aW9uLmV4Y2VwdGlvbiBpcyB1c2VkOyBpbnN0ZWFkIGVtaXQgYQorICB3YXJuaW5nLiAgRm9yIGJlbmVmaXQgb2YgUHlsb25zIDEuWCwgd2hpY2ggdXNlcyBpdC4KKworMS4yYTIKKy0tLS0tLS0tLQorCisqIGBgcmVxLnNjcmlwdF9uYW1lYGAgYW5kIGBgcGF0aF9pbmZvYGAgbm93IGNvbnRhaW4gdGV4dCwgbm90IGJ5dGVzLgorCisqIERlcHJlY2F0ZWQgYGB1c2NyaXB0X25hbWVgYCBhbmQgYGB1cGF0aF9pbmZvYGAuCisKKyogYGBjaGFyc2V0YGAgYXJndW1lbnQgdG8gYGBSZXF1ZXN0YGAgYXMgd2VsbCBhcyB0aGUgYXR0cmlidXRlIGNhbiBvbmx5CisgIGJlIHNldCB0byBVVEYtOCBvciB0aGUgdmFsdWUgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBgYENvbnRlbnQtVHlwZWBgIGhlYWRlci4KKworKiBgYHVuaWNvZGVfZXJyb3JzYGAgYXR0cmlidXRlIG9mIGBgUmVxdWVzdGBgIGFuZCByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgaXMgZ29uZS4KKworKiBUbyBwcm9jZXNzIHJlcXVlc3RzIHRoYXQgY29tZSBpbiBhbiBlbmNvZGluZyBkaWZmZXJlbnQgZnJvbSBVVEYtOCwgdGhlIHJlcXVlc3QKKyAgbmVlZHMgdG8gYmUgdHJhbnNjb2RlZCBsaWtlIHRoaXM6IGBgcmVxID0gcmVxLmRlY29kZSgnd2luZG93cy0xMjUxJylgYAorCisqIEFkZGVkIHN1cHBvcnQgZm9yIHdlYWsgRVRhZyBtYXRjaGluZyBpbiBjb25kaXRpb25hbCByZXNwb25zZXMuCisKKyogTW9zdCBvZiBldGFnLXJlbGF0ZWQgZnVuY3Rpb25hbGl0eSB3YXMgcmVmYWN0b3JlZC4KKworCisxLjJhMQorLS0tLS0tLS0tCisKKyogUHl0aG9uIDMuMiBjb21wYXRpYmlsaXR5LgorCisqIE5vIGxvbmdlciBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIuNSAob25seSAyLjYsIDIuNywgYW5kIDMuMiBhcmUgc3VwcG9ydGVkKS4KKworKiBTd2l0Y2hlZCBWQ1MgZnJvbSBNZXJjdXJpYWwgdG8gR2l0CisKKyogTW92ZWQgZGV2ZWxvcG1lbnQgdG8gYEdpdEh1YiA8aHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYj5gXworCisqIEFkZGVkIGZ1bGwgaGlzdG9yeSBmcm9tIFB5Q29uIDIwMTEgc3ByaW50IHRvIHRoZSByZXBvc2l0b3J5CisKKyogQ2hhbmdlIGBgTGltaXRlZExlbmd0aEZpbGVgYCBhbmQgYGBGYWtlQ0dJQm9keWBgIHRvIGluaGVyaXQgZnJvbQorICBgYGlvLlJhd0lPQmFzZWBgIGFuZCBiZW5lZml0IGZyb20gYGBpby5CdWZmZXJlZFJlYWRlcmBgLgorCisqIERvIG5vdCBzZXQgYGByZXNwLnJlcXVlc3RgYCBpbiBgYHJlcS5nZXRfcmVzcG9uc2UoYXBwKWBgCisKKyogYGBSZXNwb25zZS5yZXF1ZXN0YGAgYW5kIGBgLmVudmlyb25gYCBhdHRycyBhcmUgZGVwcmVjYXRlZCBhbmQgcmFpc2UgZXhjZXB0aW9ucworICB3aGVuIHVzZWQuCisKKyogRGVwcmVjYXRlZCByZXF1ZXN0IGF0dHJpYnV0ZXMgYGBzdHJfR0VUYGAsIGBgc3RyX1BPU1RgYCwgYGBzdHJfY29va2llc2BgIGFuZAorICBgYHN0cl9wYXJhbXNgYCBub3cgcmFpc2UgZXhjZXB0aW9ucyB3aGVuIHRvdWNoZWQuCisKKyogUmVtb3ZlIHRlc3RpbmcgZGVwZW5kZW5jeSBvbiBXZWJUZXN0LgorCisqIFJlbW92ZSBVbmljb2RlTXVsdGlEaWN0IGNsYXNzOyB0aGUgcmVzdWx0IG9mIGBgUmVxdWVzdC5HRVRgYCBhbmQKKyAgYGBSZXF1ZXN0LlBPU1RgYCBpcyBub3cganVzdCBhIHBsYWluIGBgTXVsdGlEaWN0YGAuCisKKyogVGhlIGBgZGVjb2RlX3BhcmFtX25hbWVzYGAgUmVxdWVzdCBjb25zdHJ1Y3RvciBhcmd1bWVudCBoYXMgYmVlbiByZW1vdmVkLAorICBhbG9uZyB3aXRoIHRoZSBgYFJlcXVlc3QuZGVjb2RlX3BhcmFtX25hbWVzYGAgYXR0cmlidXRlLgorCisqIFRoZSBgYFJlcXVlc3QuYXNfc3RyaW5nKClgYCBtZXRob2QgaXMgbm93IGJldHRlciBrbm93biBhcworICBgYFJlcXVlc3QuYXNfYnl0ZXMoKWBgLgorCisqIFRoZSBgYFJlcXVlc3QuZnJvbV9zdHJpbmcoKWBgIG1ldGhvZCBpcyBub3cgYmV0dGVyIGtub3duIGFzCisgIGBgUmVxdWVzdC5mcm9tX2J5dGVzKClgYC4KKworKiBBIG5ldyBtZXRob2QgbmFtZWQgYGBSZXF1ZXN0LmFzX3RleHQoKWBgIG5vdyBleGlzdHMuCisKKyogQSBuZXcgbWV0aG9kIG5hbWVkIGBgUmVxdWVzdC5mcm9tX3RleHQoKWBgIG5vdyBleGlzdHMuCisKKyogVGhlIGBgd2Vib2IuZGVjLndzZ2lmeWBgIHJlcHIoKSBpcyBub3cgbXVjaCBsZXNzIGluZm9ybWF0aXZlLCBidXQgYSBsb3QKKyAgZWFzaWVyIHRvIHRlc3QgYW5kIG1haW50YWluLgorCisKKzEuMS4xCistLS0tLS0tLS0KKworKiBGaXggZGlzY29ubmVjdCBkZXRlY3Rpb24gYmVpbmcgaW5jb3JyZWN0IGluIHNvbWUgY2FzZXMgKGBpc3N1ZSAyMQorICA8aHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvd2Vib2IvaXNzdWUvMjE+YF8pLgorCisqIEZpeCBleGNlcHRpb24gd2hlbiBjYWxsaW5nIGBgLmFjY2VwdC5iZXN0X21hdGNoKC4uKWBgIG9uIGEgaGVhZGVyIGNvbnRhaW5pbmcKKyAgYGAnKidgYCAoaW5zdGVhZCBvZiBgYCcqLyonYGApLgorCisqIEV4dHJhY3Qgc29tZSBvZiB0aGUgYGBBY2NlcHRgYCBjb2RlIGludG8gc3ViY2xhc3NlcyAoYGBBY2NlcHRDaGFyc2V0YGAsCisgIGBgQWNjZXB0TGFuZ3VhZ2VgYCkuCisKKyogSW1wcm92ZSBsYW5ndWFnZSBtYXRjaGluZyBzbyB0aGF0IHRoZSBhcHAgY2FuIG5vdyBvZmZlciBhIGdlbmVyaWMKKyAgbGFuZ3VhZ2UgY29kZSBhbmQgaXQgd2lsbCBtYXRjaCBhbnkgb2YgdGhlIGFjY2VwdGVkIGRpYWxlY3RzCisgIChgYCdlbicgaW4gQWNjZXB0TGFuZ3VhZ2UoJ2VuLWdiJylgYCkuCisKKyogTm9ybWFsaXplIGxvY2FsZSBuYW1lcyB3aGVuIG1hdGNoaW5nCisgIChgYCdlbl9HQicgaW4gQWNjZXB0TGFuZ3VhZ2UoJ2VuLWdiJylgYCkuCisKKyogRGVwcmVjYXRlIGBgZXRhZy53ZWFrX21hdGNoKC4uKWBgLgorCisqIERlcHJlY2F0ZSBgYFJlc3BvbnNlLnJlcXVlc3RgYCBhbmQgYGBSZXNwb25zZS5lbnZpcm9uYGAgYXR0cnMuCisKKworMS4xCistLS0tLS0tLS0KKworKiBSZW1vdmUgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9yIGBgdW5pY29kZV9ib2R5YGAgYW5kIGBgdWJvZHlgYC4KKworCisxLjFyYzEKKy0tLS0tLS0tLQorCisqIERlcHJlY2F0ZSBgYFJlc3BvbnNlLnVib2R5YGAgLyBgYC51bmljb2RlX2JvZHlgYCBpbiBmYXZvciBvZiBuZXcgYGAudGV4dGBgIGF0dHJpYnV0ZQorICAodGhlIG9sZCBuYW1lcyB3aWxsIGJlIHJlbW92ZWQgaW4gMS4zIG9yIGV2ZW4gbGF0ZXIpLgorCisqIE1ha2UgYGBSZXNwb25zZS53cml0ZWBgIG11Y2ggbW9yZSBlZmZpY2llbnQgKGBpc3N1ZSAxOAorICA8aHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvd2Vib2IvaXNzdWUvMTg+YF8pLgorCisqIE1ha2Ugc3VyZSBjb3B5aW5nIHJlc3BvbnNlcyBkb2VzIG5vdCByZXNldCBDb250ZW50LUxlbmd0aCBvciBDb250ZW50LU1ENSBvZiB0aGUKKyAgb3JpZ2luYWwgKGFuZCB0aGF0IG9mIGZ1dHVyZSBjb3BpZXMpLgorCisqIENoYW5nZSBgYGRlbCByZXMuYm9keWBgIHNlbWFudGljcyBzbyB0aGF0IGl0IGRvZXNuJ3QgbWFrZSB0aGUgcmVzcG9uc2UgaW52YWxpZCwKKyAgYnV0IG9ubHkgcmVtb3ZlcyB0aGUgcmVzcG9uc2UgYm9keS4KKworKiBSZW1vdmUgYGBSZXNwb25zZS5fYm9keWBgIHNvIHRoZSBgYF9hcHBfaXRlcmBgIGlzIHRoZSBvbmx5IHJlcHJlc2VudGF0aW9uLgorCisKKzEuMWIyCistLS0tLS0tLS0KKworKiBBZGQgZGV0ZWN0aW9uIGZvciBicm93c2VyIC8gdXNlci1hZ2VudCBkaXNjb25uZWN0cy4gSWYgdGhlIGNsaWVudCBkaXNjb25uZWN0ZWQKKyAgYmVmb3JlIHNlbmRpbmcgdGhlIGVudGlyZSByZXF1ZXN0IGJvZHkgKFBPU1QgLyBQVVQpLCBgYHJlcS5QT1NUYGAsIGBgcmVxLmJvZHlgYAorICBhbmQgb3RoZXIgcmVsYXRlZCBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIHdpbGwgcmFpc2UgYW4gZXhjZXB0aW9uLgorICBQcmV2aW91c2x5IHRoaXMgY2F1c2VkIHRoZSBhcHBsaWNhdGlvbiBnZXQgYSB0cnVuY2F0ZWQgcmVxdWVzdCB3aXRoIG5vIGluZGljYXRpb24gdGhhdCBpdAorICBpcyBpbmNvbXBsZXRlLgorCisqIE1ha2UgYGBSZXNwb25zZS5ib2R5X2ZpbGVgYCBzZXR0YWJsZS4gVGhpcyBpcyBub3cgdmFsaWQ6CisgIGBgUmVzcG9uc2UoYm9keV9maWxlPW9wZW4oJ2Zvby5iaW4nKSwgY29udGVudF90eXBlPS4uLilgYAorCisqIFJldmVydCB0aGUgcmVzdHJpY3Rpb24gb24gcmVxLmJvZHkgbm90IGJlaW5nIHNldHRhYmxlIGZvciBHRVQgYW5kIHNvbWUKKyAgb3RoZXIgcmVxdWVzdHMuIFN1Y2ggcmVxdWVzdHMgYWN0dWFsbHkgY2FuIGhhdmUgYSBib2R5IGFjY29yZGluZyB0byBIVFRQIEJJUworICAoc2VlIGFsc28gYGNvbW1pdCBtZXNzYWdlIDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi93ZWJvYi9jaGFuZ2VzZXQvYjNlZjM0YzU3OTM2PmBfKQorCisqIEFkZCBzdXBwb3J0IGZvciBmaWxlIHVwbG9hZCB0ZXN0aW5nIHZpYSBgYFJlcXVlc3QuYmxhbmsoUE9TVD0uLilgYC4gUGF0Y2ggY29udHJpYnV0ZWQgYnkKKyAgVGltIFBlcmV2ZXplbnRzZXYuIFNlZSBhbHNvOgorICBgdGlja2V0IDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi93ZWJvYi9pc3N1ZS8xNT5gXywKKyAgYGNoYW5nZXNldCA8aHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvd2Vib2IvY2hhbmdlc2V0LzRiYTlhYjBjM2Y5OT5gXy4KKworKiBEZXByZWNhdGUgYGByZXEuc3RyX0dFVGBgLCBgYHN0cl9QT1NUYGAsIGBgc3RyX3BhcmFtc2BgIGFuZCBgYHN0cl9jb29raWVzYGAgKHdhcm5pbmcpLgorCisKKyogRGVwcmVjYXRlIGBgcmVxLmRlY29kZV9wYXJhbV9uYW1lc2BgICh3YXJuaW5nKS4KKworKiBDaGFuZ2UgYGByZXEuZGVjb2RlX3BhcmFtX25hbWVzYGAgZGVmYXVsdCB0byBgYFRydWVgYC4gVGhpcyBtZWFucyB0aGF0IGBgLlBPU1RgYCwgYGAuR0VUYGAsCisgIGBgLnBhcmFtc2BgIGFuZCBgYC5jb29raWVzYGAga2V5cyBhcmUgbm93IHVuaWNvZGUuIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBXZWJPYiB0byBiZWhhdmUKKyAgYXMgY2xvc2UgYXMgcG9zc2libGUgb24gUHl0aG9uIDIgYW5kIFB5dGhvbiAzLgorCisKKzEuMWIxCistLS0tLS0tLS0KKworKiBXZSBoYXZlIGFjcXVpcmVkIHRoZSB3ZWJvYi5vcmcgZG9tYWluLCBkb2NzIGFyZSBub3cgaG9zdGVkIGF0IGBkb2NzLndlYm9iLm9yZworICA8aHR0cDovL2RvY3Mud2Vib2Iub3JnLz5gXworCisqIE1ha2UgYGBhY2NlcHQucXVhbGl0eSguLilgYCByZXR1cm4gYmVzdCBtYXRjaCBxdWFsaXR5LCBub3QgZmlyc3QgbWF0Y2ggcXVhbGl0eS4KKworKiBGaXggYGBSYW5nZS5zYXRpc2ZpYWJsZSguLilgYCBlZGdlIGNhc2VzLgorCisqIE1ha2Ugc3VyZSBgYFdTR0lIVFRQRXhjZXB0aW9uYGAgaW5zdGFuY2VzIHJldHVybiB0aGUgc2FtZSBoZWFkZXJzIGZvciBgYEhFQURgYAorICBhbmQgYGBHRVRgYCByZXF1ZXN0cy4KKworKiBEcm9wIFB5dGhvbiAyLjQgc3VwcG9ydAorCisqIERlcHJlY2F0ZSBgYEhUVFBFeGNlcHRpb24uZXhjZXB0aW9uYGAgKHdhcm5pbmcgb24gdXNlKS4KKworKiBEZXByZWNhdGUgYGBhY2NlcHQuZmlyc3RfbWF0Y2goLi4pYGAgKHdhcm5pbmcgb24gdXNlKS4KKyAgVXNlIGBgLmJlc3RfbWF0Y2goLi4pYGAgaW5zdGVhZC4KKworKiBDb21wbGV0ZSBkZXByZWNhdGlvbiBvZiBgYHJlcS5bc3RyX117cG9zdHxxdWVyeX12YXJzYGAgcHJvcGVydGllcworICAoZXhjZXB0aW9uIG9uIHVzZSkuCisKKyogUmVtb3ZlIGBgRmFrZUNHSUJvZHkuc2Vla2BgIGhhY2sgKG5vIGxvbmdlciBuZWNlc3NhcnkpLgorCisKKzEuMC44CistLS0tLS0KKworKiBFc2NhcGUgY29tbWFzIGluIGNvb2tpZSB2YWx1ZXMgKHNlZSBhbHNvOgorICBgc3RkbGliIENvb2tpZSBidWcgPGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWU5ODI0PmBfKQorCisqIENoYW5nZSBjb29raWUgc2VyaWFsaXphdGlvbiB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggaG93IGNvb2tpZXMgdXN1YWxseQorICBhcmUgc2VyaWFsaXplZCAodW5xdW90ZWQgZXhwaXJlcywgc2VtaWNvbG9uIHNlcGFyYXRvcnMgZXZlbiBiZXR3ZWVuIG1vcnNlbHMpCisKKyogRml4IHNvbWUgcmFyZSBjYXNlcyBpbiBjb29raWUgcGFyc2luZworCisqIEVuaGFuY2UgdGhlIHJlcS5pc19ib2R5X3JlYWRhYmxlIHRvIGFsd2F5cyBndWVzcyBHRVQsIEhFQUQsIERFTEVURSBhbmQgVFJBQ0UKKyAgYXMgdW5yZWFkYWJsZSBhbmQgUFVUIGFuZCBQT1NUIGFzIHJlYWRhYmxlCisgIChgaXNzdWUgMTIgPGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3dlYm9iL2lzc3VlLzEyPmBfKQorCisqIERlbnkgc2V0dGluZyByZXEuYm9keSBvciByZXEuYm9keV9maWxlIHRvIG5vbi1lbXB0eSB2YWx1ZXMgZm9yIEdFVCwgSEVBRCBhbmQKKyAgb3RoZXIgYm9kaWxlc3MgcmVxdWVzdHMKKworKiBGaXggcnVubmluZyBub3NldGVzdHMgd2l0aCBhcmd1bWVudHMgb24gVU5JWCBzeXN0ZW1zCisgIChgaXNzdWUgMTEgPGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3dlYm9iL2lzc3VlLzExPmBfKQorCisKKzEuMC43CistLS0tLS0KKworKiBGaXggYGBBY2NlcHRgYCBoZWFkZXIgbWF0Y2hpbmcgZm9yIGl0ZW1zIHdpdGggemVyby1xdWFsaXR5CisgIChgaXNzdWUgMTAgPGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3dlYm9iL2lzc3VlLzEwPmBfKQorCisqIEhpZGUgcGFzc3dvcmQgdmFsdWVzIGluIGBgTXVsdGlEaWN0Ll9fcmVwcl9fYGAKKworMS4wLjYKKy0tLS0tLQorCisqIFVzZSBgYGVudmlyb25bJ3dzZ2kuaW5wdXQnXS5yZWFkKClgYCBpbnN0ZWFkIG9mIGBgLnJlYWQoLTEpYGAgYmVjYXVzZSB0aGUgZm9ybWVyCisgIGlzIGV4cGxpY2l0bHkgbWVudGlvbmVkIGluIFBFUC0zMzMzIGFuZCBDaGVycnlQeSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgbGF0dGVyLgorCisqIEFkZCBuZXcgYGBlbnZpcm9uWyd3ZWJvYi5pc19ib2R5X3JlYWRhYmxlJ11gYCBmbGFnIHdoaWNoIHNwZWNpZmllcyBpZiB0aGUKKyAgaW5wdXQgc3RyZWFtIGlzIHJlYWRhYmxlIGV2ZW4gaWYgdGhlIGBgQ09OVEVOVF9MRU5HVEhgYCBpcyBub3Qgc2V0LgorICBXZWJPYiBub3cgb25seSBldmVyIHJlYWRzIHRoZSBpbnB1dCBzdHJlYW0gaWYgdGhlIGNvbnRlbnQtbGVuZ3RoIGlzIGtub3duCisgIG9yIHRoaXMgZmxhZyBpcyBzZXQuCisKKyogVGhlIHR3byBjaGFuZ2VzIGFib3ZlIGZpeCBhIGhhbmd1cCB3aXRoIENoZXJyeVB5IGFuZCB3c2dpcmVmIHNlcnZlcnMKKyAgKGBpc3N1ZSA2IDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi93ZWJvYi9pc3N1ZS82PmBfKQorCisqIGBgcmVxLmJvZHlfZmlsZWBgIGlzIG5vdyBzYWZlciB0byByZWFkIGRpcmVjdGx5LiBGb3IgYGBHRVRgYCBhbmQgb3RoZXIgc2ltaWxhciByZXF1ZXN0cworICBpdCByZXR1cm5zIGFuIGVtcHR5IGBgU3RyaW5nSU9gYCBvciBgYEJ5dGVzSU9gYCBvYmplY3QgZXZlbiBpZiB0aGUgc2VydmVyIHBhc3NlZCBpbgorICBzb21ldGhpbmcgZWxzZS4KKworKiBTZXR0aW5nIGBgcmVxLmJvZHlfZmlsZWBgIHRvIGEgc3RyaW5nIG5vdyBwcm9kdWNlcyBhIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcuCisgIEl0IHdpbGwgcHJvZHVjZSBEZXByZWNhdGlvbldhcm5pbmcgaW4gMS4xIGFuZCByYWlzZSBhbiBlcnJvciBpbiAxLjIuIEVpdGhlcgorICBzZXQgYGByZXEuYm9keV9maWxlYGAgdG8gYSBmaWxlLWxpa2Ugb2JqZWN0IG9yIHNldCBgYHJlcS5ib2R5YGAgdG8gYSBzdHJpbmcgdmFsdWUuCisKKyogRml4IGBgLnBvcCgpYGAgYW5kIGBgLnNldGRlZmF1bHQoLi4pYGAgbWV0aG9kcyBvZiBgYHJlcS9yZXNwLmNhY2hlX2NvbnRyb2xgYAorCisqIFRoYW5rcyB0byB0aGUgcGFydGljaXBhbnRzIG9mIGBQeXJhbWlkIHNwcmludCBhdCB0aGUgUHlDb24gVVMgMjAxMQorICA8aHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvd2Vib2IvY2hhbmdlc2V0LzdiN2RjM2VjNjE1OT5gXyBXZWJPYiBub3cgaGFzCisgIDEwMCUgdGVzdCBjb3ZlcmFnZS4KKworMS4wLjUKKy0tLS0tLQorKiBSZXN0b3JlIFB5dGhvbiAyLjQgY29tcGF0aWJpbGl0eS4KKworMS4wLjQKKy0tLS0tLQorCisqIFRoZSBmaWVsZCBuYW1lcyBlc2NhcGluZyBidWcgc2VtaS1maXhlZCBpbiAxLjAuMyBhbmQgb3JpZ2luYWxseSBibGFtZWQgb24gY2dpIG1vZHVsZQorICB3YXMgaW4gZmFjdCBhIGBgd2Vib2IucmVxdWVzdC5fZW5jb2RlX211bHRpcGFydGBgIGJ1ZyAoYWxzbyBpbiBHb29nbGUgQ2hyb21lKSBhbmQgd2FzCisgIGx1cmtpbmcgaW4gd2Vib2IgY29kZSBmb3IgcXVpdGUgc29tZSB0aW1lIC0tIDEuMC4yIGp1c3QgbWFkZSBpdCB0cmlnZ2VyIG1vcmUgb2Z0ZW4uCisgIE5vdyBpdCBpcyBmaXhlZCBwcm9wZXJseS4KKworKiBNYWtlIHN1cmUgdGhhdCByZXEudXJsIGFuZCByZWxhdGVkIHByb3BlcnRpZXMgZG8gbm90IHVubmVjZXNzYXJpbHkgZXNjYXBlIHNvbWUgY2hhcnMKKyAgKGBgOkAmKyRgYCkgaW4gdGhlIFVSSSBwYXRoIChgaXNzdWUgNSA8aHR0cHM6Ly9iaXRidWNrZXQub3JnL2lhbmIvd2Vib2IvaXNzdWUvNT5gXykKKworKiBSZXZlcnQgc29tZSBjaGFuZ2VzIGZyb20gMS4wLjMgdGhhdCBoYXZlIGJyb2tlbiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Igc29tZSBhcHBzLgorICBHZXR0aW5nIGBgcmVxLmJvZHlfZmlsZWBgIGRvZXMgbm90IG1ha2UgaW5wdXQgc3RyZWFtIHNlZWthYmxlLCBidXQgdGhlcmUncyBhIG5ldyBwcm9wZXJ0eQorICBgYHJlcS5ib2R5X2ZpbGVfc2Vla2FibGVgYCB0aGF0IGRvZXMuCisKKyogYGBSZXF1ZXN0LmdldF9yZXNwb25zZWBgIGFuZCBgYFJlcXVlc3QuY2FsbF9hcHBsaWNhdGlvbmBgIHNlZWsgdGhlIGlucHV0IGJvZHkgdG8gc3RhcnQKKyAgYmVmb3JlIGNhbGxpbmcgdGhlIGFwcCAoaWYgcG9zc2libGUpLgorCisqIEFjY2Vzc2luZyBgYHJlcS5ib2R5YGAgJ3Jld2luZHMnIHRoZSBpbnB1dCBzdHJlYW0gYmFjayB0byBwb3MgMCBhcyB3ZWxsLgorCisqIFdoZW4gYWNjZXNzaW5nIGBgcmVxLlBPU1RgYCB3ZSBub3cgYXZvaWQgbWFraW5nIHRoZSBib2R5IHNlZWthYmxlIGFzIHRoZSBpbnB1dCBzdHJlYW0gZGF0YQorICBhcmUgcHJlc2VydmVkIGluIGBgRmFrZUNHSUJvZHlgYCBhbnl3YXkuCisKKyogQWRkIG5ldyBtZXRob2QgYGBSZXF1ZXN0LmZyb21fc3RyaW5nYGAuCisKKyogTWFrZSBzdXJlIGBgUmVxdWVzdC5hc19zdHJpbmcoKWBgIHVzZXMgQ1JMRiB0byBzZXBhcmF0ZSBoZWFkZXJzLgorCisqIEltcHJvdmUgcGFyaXR5IGJldHdlZW4gYGBSZXF1ZXN0LmFzX3N0cmluZygpYGAgYW5kIGBgLmZyb21fZmlsZWBgL2BgLmZyb21fc3RyaW5nYGAKKyAgbWV0aG9kcywgc28gdGhhdCB0aGUgbGF0dGVyIGNhbiBwYXJzZSBvdXRwdXQgb2YgdGhlIGZvcm1lciBhbmQgY3JlYXRlIGEgc2ltaWxhcgorICByZXF1ZXN0IG9iamVjdCB3aGljaCB3YXNuJ3QgYWx3YXlzIHRoZSBjYXNlIHByZXZpb3VzbHkuCisKKzEuMC4zCistLS0tLS0KKworKiBDb3JyZWN0IGEgY2FjaGluZyBpc3N1ZSBpbnRyb2R1Y2VkIGluIFdlYk9iIDEuMC4yIHRoYXQgd2FzIGNhdXNpbmcgdW5uZWNlc3NhcnkgcmVwYXJzaW5nCisgIG9mIFBPU1QgcmVxdWVzdHMuCisKKyogRml4IGEgYnVnIHJlZ2FyZGluZyBmaWVsZCBuYW1lcyBlc2NhcGluZyBmb3IgZm9ybXMgc3VibWl0dGVkIGFzIGBgbXVsdGlwYXJ0L2Zvcm0tZGF0YWBgLgorICBGb3IgbW9yZSBpbmZyb21hdGlvbiBzZWUgYHRoZSBidWcgcmVwb3J0IGFuZCBkaXNjdXNzaW9uCisgIDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi93ZWJvYi9pc3N1ZS8yPmBfIGFuZCAxLjAuNCBub3RlcyBmb3IgZnVydGhlciBmaXguCisKKyogQWRkIGBgcmVxLmh0dHBfdmVyc2lvbmBgIGF0dHJpYnV0ZS4KKworMS4wLjIKKy0tLS0tLQorCisqIFByaW1hcnkgbWFpbnRhaW5lciBpcyBub3cgYFNlcmdleSBTY2hldGluaW4gPGh0dHA6Ly9zZWxmLm1hbHVrZS5jb20vPmBfLgorCisqIElzc3VlIHRyYWNrZXIgbW92ZWQgZnJvbSBgVHJhYyA8aHR0cDovL2JpdC5seS93ZWJvYi10aWNrZXRzPmBfIHRvIGJpdGJ1Y2tldCdzIGBpc3N1ZQorICB0cmFja2VyIDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaWFuYi93ZWJvYi9pc3N1ZXM+YF8KKworKiBXZWJPYiAxLjAuMSBjaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiBgYE11bHRpRGljdC51cGRhdGVgYCB0byBiZSBtb3JlIGluIGxpbmUgd2l0aAorICBvdGhlciBkaWN0LWxpa2Ugb2JqZWN0cy4gV2Ugbm93IGFsc28gaXNzdWUgYSB3YXJuaW5nIHdoZW4gd2UgZGV0ZWN0IHRoYXQgdGhlCisgIGNsaWVudCBjb2RlIHNlZW1zIHRvIGV4cGVjdCB0aGUgb2xkLCBleHRlbmRpbmcgc2VtYW50aWNzLgorCisqIE1ha2UgYGBSZXNwb25zZS5zZXRfY29va2llKGtleSwgTm9uZSlgYCBzZXQgdGhlICdkZWxldGUtY29va2llJyAoc2FtZSBhcyBgYC5kZWxldGVfY29va2llKGtleSlgYCkKKworKiBNYWtlIGBgcmVxLnVwYXRoX2luZm9gYCBhbmQgYGByZXEudXNjcmlwdF9uYW1lYGAgc2V0dGFibGUKKworKiBBZGQgOm1ldGg6YGBSZXF1ZXN0LmFzX3N0cmluZygpYGAgbWV0aG9kCisKKyogQWRkIGEgYGByZXEuaXNfYm9keV9zZWVrYWJsZWBgIHByb3BlcnR5CisKKyogU3VwcG9ydCBmb3IgdGhlIGBgZGVmbGF0ZWBgIG1ldGhvZCB3aXRoIGBgcmVzcC5kZWNvZGVfY29udGVudCgpYGAKKworKiBUbyBiZXR0ZXIgY29uZm9ybSB0byBXU0dJIHNwZWMgd2Ugbm8gbG9uZ2VyIGF0dGVtcHQgdG8gdXNlIHNlZWsgb24gYGB3c2dpLmlucHV0YGAgZmlsZQorICBpbnN0ZWFkIHdlIGFzc3VtZSBpdCBpcyBub3Qgc2Vla2FibGUgdW5sZXNzIGBgZW52Wyd3ZWJvYi5pc19ib2R5X3NlZWthYmxlJ11gYCBpcyBzZXQuCisgIFdoZW4gbWFraW5nIHRoZSBib2R5IHNlZWthYmxlIHdlIHNldCB0aGF0IGZsYWcuCisKKyogQSBjYWxsIHRvIGBgcmVxLm1ha2VfYm9keV9zZWVrYWJsZSgpYGAgbm93IGd1YXJhbnRlZXMgdGhhdCB0aGUgYm9keSBpcyBzZWVrYWJsZSwgaXMgYXQgMCBwb3NpdGlvbgorICBhbmQgdGhhdCBhIGNvcnJlY3QgYGByZXEuY29udGVudF9sZW5ndGhgYCBpcyBwcmVzZW50LgorCisqIGBgcmVxLmJvZHlfZmlsZWBgIGlzIGFsd2F5cyBzZWVrYWJsZS4gVG8gYWNjZXNzIGBgZW52Wyd3c2dpLmlucHV0J11gYCB3aXRob3V0IGFueSBwcm9jZXNzaW5nLAorICB1c2UgYGByZXEuYm9keV9maWxlX3Jhd2BgLiAoUGFydGlhbGx5IHJldmVydGVkIGluIDEuMC40KQorCisqIEZpeCByZXNwb25zZXMgdG8gSEVBRCByZXF1ZXN0cyB3aXRoIFJhbmdlLgorCisqIEZpeCBgYGRlbCByZXNwLmNvbnRlbnRfdHlwZWBgLCBgYGRlbCByZXEuYm9keWBgLCBgYGRlbCByZXEuY2FjaGVfY29udHJvbGBgCisKKyogRml4IGBgcmVzcC5tZXJnZV9jb29raWVzKClgYCB3aGVuIGNhbGxlZCB3aXRoIGFuIGFyZ3VtZW50IHRoYXQgaXMgbm90IGEgUmVzcG9uc2UgaW5zdGFuY2UuCisKKyogRml4IGBgcmVzcC5jb250ZW50X2JvZHkgPSBOb25lYGAgKHdhcyByZW1vdmluZyBDYWNoZS1Db250cm9sIGluc3RlYWQpCisKKyogRml4IGBgcmVxLmJvZHlfZmlsZSA9IGZgYCBzZXR0aW5nIGBgQ09OVEVOVF9MRU5HVEhgYCB0byBgYC0xYGAgKG5vdyByZW1vdmVzIGZyb20gZW52aXJvbikKKworKiBGaXg6IG1ha2Ugc3VyZSByZXEuY29weSgpIGxlYXZlcyB0aGUgb3JpZ2luYWwgd2l0aCBzZWVrYWJsZSBib2R5CisKKyogRml4IGhhbmRsaW5nIG9mIFdTR0kgZW52aXJvbnMgd2l0aCBtaXNzaW5nIGBgU0NSSVBUX05BTUVgYAorCisqIEEgbG90IG9mIHRlc3RzIHdlcmUgYWRkZWQgYnkgTWFyaWFubyBNYXJhIGFuZCBEYW5ueSBOYXZhcnJvLgorCisKKworMS4wLjEKKy0tLS0tCisKKyogQXMgV2ViT2IgcmVxdWlyZXMgUHl0aG9uIDIuNCBvciBsYXRlciwgZHJvcCBzb21lIGNvbXBhdGliaWxpdHkgbW9kdWxlcworICBhbmQgdXBkYXRlIHRoZSBjb2RlIHRvIHVzZSB0aGUgZGVjb3JhdG9yIHN5bnRheC4KKworKiBJbXBsZW1lbnQgb3B0aW9uYWwgb24tdGhlLWZseSByZXNwb25zZSBjb21wcmVzc2lvbiAoYGByZXNwLmVuY29kZV9jb250ZW50KGxhenk9VHJ1ZSlgYCkKKworKiBEcm9wIGBgdXRpbC5zYWZlemlwYGAgbW9kdWxlIGFuZCBtYWtlIGBgdXRpbGBgIGEgbW9kdWxlIGluc3RlYWQgb2YgYSBzdWJwYWNrYWdlLgorICBNZXJnZSBgYHN0YXR1c3JlYXNvbnNgYCBpbnRvIGl0LgorCisqIEluc3RlYWQgb2YgdXNpbmcgc3RkbGliIGBgQ29va2llYGAgd2l0aCBtb25rZXlwYXRjaGluZywgYWRkIGEgZGVyaXZlZAorICBidXQgdGhvcm91Z2hseSByZXdyaXR0ZW4sIGNsZWFuZXIsIHNhZmVyIGFuZCBmYXN0ZXIgYGB3ZWJvYi5jb29raWVzYGAgbW9kdWxlLgorCisqIEZpeDogYGBSZXNwb25zZS5tZXJnZV9jb29raWVzYGAgbm93IGNvcGllcyB0aGUgaGVhZGVycyBiZWZvcmUgbW9kaWZpY2F0aW9uIGluc3RlYWQgb2YKKyAgZG9pbmcgaXQgaW4tcGxhY2UuCisKKyogRml4OiBzZXR0aW5nIHJlcXVlc3QgaGVhZGVyIGF0dHJpYnV0ZSB0byBgYE5vbmVgYCBkZWxldGVzIHRoYXQgaGVhZGVyLgorICAoQnVnIG9ubHkgYWZmZWN0ZWQgdGhlIDEuMCByZWxlYXNlKS4KKworKiBVc2UgYGBpby5CeXRlc0lPYGAgZm9yIHRoZSByZXF1ZXN0IGJvZHkgZmlsZSBvbiBQeXRob24gMi43IGFuZCBuZXdlci4KKworKiBJZiBhIFVuaWNvZGVNdWx0aURpY3Qgd2FzIHVzZWQgYXMgdGhlIGBgbXVsdGlgYCBhcmd1bWVudCBvZiBhbm90aGVyCisgIFVuaWNvZGVNdWx0aURpY3QsIGFuZCBhIGBgY2dpLkZpZWxkU3RvcmFnZWBgIHdpdGggYSBgYGZpbGVuYW1lYGAKKyAgd2l0aCBoaWdoLW9yZGVyIGNoYXJhY3RlcnMgd2FzIHByZXNlbnQgaW4gdGhlIHVuZGVybHlpbmcKKyAgVW5pY29kZU11bHRpRGljdCwgYSBgYFVuaWNvZGVFbmNvZGVFcnJvcmBgIHdvdWxkIGJlIHJhaXNlZCB3aGVuIGFueQorICBoZWxwZXIgbWV0aG9kIGNhdXNlZCB0aGUgYGBfZGVjb2RlX3ZhbHVlYGAgbWV0aG9kIHRvIGJlIGNhbGxlZCwKKyAgYmVjYXVzZSB0aGUgbWV0aG9kIHdvdWxkIHRyeSB0byBkZWNvZGUgYW4gYWxyZWFkeSBkZWNvZGVkIHN0cmluZy4KKworKiBGaXggdGVzdHMgdG8gcGFzcyB1bmRlciBQeXRob24gMi40LgorCisqIEFkZCBkZXNjcmlwdGl2ZSBkb2NzdHJpbmdzIHRvIGVhY2ggZXhjZXB0aW9uIGluIGBgd2Vib2IuZXhjYGAuCisKKyogQ2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgYGBNdWx0aURpY3QudXBkYXRlYGAgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIGhlYWRlcgorICB2YWx1ZXMgaW5zdGVhZCBvZiBhZGRpbmcgbmV3IGhlYWRlcnMuIFRoZSBleHRlbmRpbmcgc2VtYW50aWNzIGFyZSBub3cgYXZhaWxhYmxlCisgIHZpYSB0aGUgYGBleHRlbmRgYCBtZXRob2QuCisKKyogRml4IGEgYnVnIGluIGBgd2Vib2IuZXhjLldTR0lIVFRQRXhjZXB0aW9uLl9faW5pdF9fYGAuICBJZiBhIGxpc3Qgb2YKKyAgYGBoZWFkZXJzYGAgd2FzIHBhc3NlZCBhcyBhIHNlcXVlbmNlIHdoaWNoIGNvbnRhaW5lZCBkdXBsaWNhdGUga2V5cyAoZm9yCisgIGV4YW1wbGUsIG11bHRpcGxlIGBgU2V0LUNvb2tpZWBgIGhlYWRlcnMpLCBhbGwgYnV0IG9uZSBvZiB0aG9zZSBoZWFkZXJzCisgIHdvdWxkIGJlIGxvc3QsIGJlY2F1c2UgdGhlIGxpc3Qgd2FzIGVmZmVjdGl2ZWx5IGZsYXR0ZW5lZCBpbnRvIGEgZGljdGlvbmFyeQorICBhcyB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgYGBzZWxmLmhlYWRlcnMudXBkYXRlYGAuICBGaXhlZCB2aWEgY2FsbGluZworICBgYHNlbGYuaGVhZGVycy5leHRlbmRgYCBpbnN0ZWFkLgorCisxLjAKKy0tLQorCisqIDEuMCwgeWF5IQorCisqIFB1bGwgaW4gd2Vya3pldWcgQ29va2llIGZpeCBmb3IgbWFsZm9ybWVkIGNvb2tpZSBidWcuCisKKyogSW1wbGVtZW50IDptZXRoOmBSZXF1ZXN0LmZyb21fZmlsZWAgYW5kCisgIDptZXRoOmBSZXNwb25zZS5mcm9tX2ZpbGVgIHdoaWNoIGFyZSBraW5kIG9mIHRoZSBpbnZlcnNpb24gb2YKKyAgYGBzdHIocmVxKWBgIGFuZCBgYHN0cihyZXNwKWBgCisKKyogQWRkIG9wdGlvbmFsIGBgcGF0dGVybmBgIGFyZ3VtZW50IHRvIDptZXRoOmBSZXF1ZXN0LnBhdGhfaW5mb19wb3BgIHRoYXQgcmVxdWlyZXMKKyAgdGhlIGBgcGF0aF9pbmZvYGAgc2VnbWVudCB0byBtYXRjaCB0aGUgcGFzc2VkIHJlZ2V4cCB0byBnZXQgcG9wcGVkIGFuZCByZXR1cm5lZC4KKworKiBSZXdyaXRlIG1vc3Qgb2YgZGVzY3JpcHRvciBpbXBsZW1lbnRhdGlvbnMgZm9yIHNwZWVkLgorCisqIFJlb3JkZXIgZGVzY3JpcHRvciBkZWNsYXJhdGlvbnMgdG8gZ3JvdXAgdGhlbSBieSB0aGVpciBzZW1hbnRpY3MuCisKKyogTW92ZSBjb2RlIGFyb3VuZCBzbyB0aGF0IHRoZXJlIGFyZSBmZXdlciBjb21wYXQgbW9kdWxlcy4KKworKiBDaGFuZ2UgOm1ldGg6YGBIVFRQRXJyb3IuX19zdHJfX2BgIHRvIGJldHRlciBjb25mb3JtIHRvIFBFUCAzNTIuCisKKyogTWFrZSA6YXR0cjpgUmVxdWVzdC5jYWNoZV9jb250cm9sYCBhIHZpZXcgb24gdGhlIGhlYWRlcnMuCisKKyogQ29ycmVjdCBBY2NlcHQtTGFuZ3VhZ2UgYW5kIEFjY2VwdC1DaGFyc2V0IG1hdGNoaW5nIHRvIGZ1bGx5IGNvbmZvcm0gdG8gdGhlIEhUVFAgc3BlYy4KKworKiBFeHBvc2UgcGFydHMgb2YgOm1ldGg6YFJlcXVlc3QuYmxhbmtgIGFzIDpmdW5jOmBlbnZpcm9uX2Zyb21fdXJsYAorICBhbmQgOmZ1bmM6YGVudmlyb25fYWRkX1BPU1RgCisKKyogRml4IEF1dGhvcml6YXRpb24gaGVhZGVyIHBhcnNpbmcgZm9yIHNvbWUgY29ybmVyIGNhc2VzLgorCisqIEZpeCBhbiBlcnJvciBnZW5lcmF0ZWQgaWYgdGhlIHVzZXItYWdlbnQgc2VuZHMgYSAnQ29udGVudF9MZW5ndGgnIGhlYWRlcgorICAobm90ZSB0aGUgdW5kZXJzY29yZSkuCisKKyogS2lsbCA6YXR0cjpgUmVxdWVzdC5kZWZhdWx0X2NoYXJzZXRgLiBSZXF1ZXN0IGNoYXJzZXQgZGVmYXVsdHMgdG8gVVRGLTguCisgIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCB2YWx1ZXMgaW4gYGByZXEuR0VUYGAsIGBgcmVxLlBPU1RgYCBhbmQgYGByZXEucGFyYW1zYGAKKyAgYXJlIGFsd2F5cyB1bmljb2RlLgorCisqIEZpeCB0aGUgYGBoZWFkZXJsaXN0YGAgYW5kIGBgY29udGVudF90eXBlYGAgY29uc3RydWN0b3IgYXJndW1lbnRzIHByaW9yaXRpZXMKKyAgZm9yIDpjbGFzczpgSFRUUEVycm9yYCBhbmQgc3ViY2xhc3Nlcy4KKworKiBBZGQgc3VwcG9ydCBmb3Igd2VhayBldGFncyB0byBjb25kaXRpb25hbCBSZXNwb25zZSBvYmplY3RzLgorCisqIEZpeCBsb2NhbGUtZGVwZW5kZW5jZSBmb3Igc29tZSBjb29raWUgZGF0ZXMgc3RyaW5ncy4KKworKiBJbXByb3ZlIG92ZXJhbGwgdGVzdCBjb3ZlcmFnZS4KKworKiBSZW5hbWUgY2xhc3MgYGB3ZWJvYi5kYXRhc3RydWN0LkVudmlyb25IZWFkZXJzYGAgdG8gYGB3ZWJvYi5oZWFkZXJzLkVudmlyb25IZWFkZXJzYGAKKworKiBSZW5hbWUgY2xhc3MgYGB3ZWJvYi5oZWFkZXJkaWN0LkhlYWRlckRpY3RgYCB0byBgYHdlYm9iLmhlYWRlcnMuUmVzcG9uc2VIZWFkZXJzYGAKKworKiBSZW5hbWUgY2xhc3MgYGB3ZWJvYi51cGRhdGVkaWN0LlVwZGF0ZURpY3RgYCB0byBgYHdlYm9iLmNhY2hlY29udHJvbC5VcGRhdGVEaWN0YGAKKworMC45LjgKKy0tLS0tCisKKyogRml4IGlzc3VlIHdpdGggV1NHSUhUVFBFeGNlcHRpb24gaW5hZHZlcnRlbnRseSBnZW5lcmF0aW5nIHVuaWNvZGUgYm9keQorICBhbmQgZmFpbGluZyB0byBlbmNvZGUgaXQKKworKiBXV1ctQXV0aGVudGljYXRlIHJlc3BvbnNlIGhlYWRlciBpcyBhY2Nlc3NpYmxlIGFzCisgIGBgcmVzcG9uc2Uud3d3X2F1dGhlbnRpY2F0ZWBgCisKKyogYGByZXNwb25zZS53d3dfYXV0aGVudGljYXRlYGAgYW5kIGBgcmVxdWVzdC5hdXRob3JpemF0aW9uYGAgaG9sZCBOb25lCisgIG9yIHR1cGxlIGBgKGF1dGhfbWV0aG9kLCBwYXJhbXMpYGAgd2hlcmUgYGBwYXJhbXNgYCBpcyBhIGRpY3Rpb25hcnkKKyAgKG9yIGEgc3RyaW5nIHdoZW4gYGBhdXRoX21ldGhvZGBgIGlzIG5vdCBvbmUgb2Yga25vd24gYXV0aCBzY2hlbWVzCisgIGFuZCBmb3IgQXV0aGVudGljYXRlOiBCYXNpYyAuLi4pCisKKyogRG9uJ3Qgc2hhcmUgcmVzcG9uc2UgaGVhZGVycyB3aGVuIGdldHRpbmcgYSByZXNwb25zZSBsaWtlIGBgcmVzcCA9CisgIHJlcS5nZXRfcmVzcG9uc2Uoc29tZV9hcHApYGA7IHRoaXMgY2FuIGF2b2lkIHNvbWUgZnVubnkgZXJyb3JzIHdpdGgKKyAgbW9kaWZ5aW5nIGhlYWRlcnMgYW5kIHJldXNpbmcgUmVzcG9uc2Ugb2JqZWN0cy4KKworKiBBZGQgYG92ZXJ3cml0ZWAgYXJndW1lbnQgdG8gOm1ldGg6YFJlc3BvbnNlLnNldF9jb29raWVgIHRoYXQgbWFrZSB0aGUKKyAgbmV3IHZhbHVlIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXNseSBzZXQuIGBGYWxzZWAgYnkgZGVmYXVsdC4KKworKiBBZGQgYHN0cmljdGAgYXJndW1lbnQgdG8gOm1ldGg6YFJlc3BvbnNlLnVuc2V0X2Nvb2tpZWAgdGhhdCBjb250cm9scworICBpZiBhbiBleGNlcHRpb24gc2hvdWxkIGJlIHJhaXNlZCBpbiBjYXNlIHRoZXJlIGFyZSBubyBjb29raWVzIHRvIHVuc2V0LgorICBgVHJ1ZWAgYnkgZGVmYXVsdC4KKworKiBGaXggYGByZXEuR0VULmNvcHkoKWBgCisKKyogTWFrZSBzdXJlIHRoYXQgMzA0IE5vdCBNb2RpZmllZCByZXNwb25zZXMgZ2VuZXJhdGVkIGJ5CisgIDptZXRoOmBSZXNwb25zZS5jb25kaXRpb25hbF9yZXNwb25zZV9hcHBgIGV4Y2x1ZGUgQ29udGVudC17TGVuZ3RoL1R5cGV9CisgIGhlYWRlcnMKKworKiBGaXggYGBSZXNwb25zZS5jb3B5KClgYCBub3QgYmVpbmcgYW4gaW5kZXBlbmRlbnQgY29weQorCisqIFdoZW4gdGhlIHJlcXVlc3RlZCByYW5nZSBpcyBub3Qgc2F0aXNmaWFibGUsIHJldHVybiBhIDQxNiBlcnJvcgorICAod2FzIHJldHVybmluZyBlbnRpcmUgYm9keSkKKworKiBUcnVuY2F0ZSByZXNwb25zZSBmb3IgcmFuZ2UgcmVxdWVzdHMgdGhhdCBnbyBiZXlvbmQgdGhlIGVuZCBvZiBib2R5CisgICh3YXMgdHJlYXRpbmcgYXMgaW52YWxpZCkuCisKKzAuOS43LjEKKy0tLS0tLS0KKworKiBGaXggYW4gaW1wb3J0IHByb2JsZW0gd2l0aCBQeWxvbnMKKworMC45LjcKKy0tLS0tCisKKyogTW92ZWQgcmVwb3NpdG9yeSBmcm9tIHN2biBsb2NhdGlvbiB0bworICBodHRwOi8vYml0YnVja2V0Lm9yZy9pYW5iL3dlYm9iLworCisqIEFyZ3VtZW50cyB0byA6bWV0aDpgQWNjZXB0LmJlc3RfbWF0Y2hgIG11c3QgYmUgc3BlY2lmaWMgdHlwZXMsCisgIG5vdCB3aWxkY2FyZHMuIFRoZSBzZXJ2ZXIgc2hvdWxkIGtub3cgYSBsaXN0IG9mIHNwZWNpYyB0eXBlcyBpdCBjYW4KKyAgb2ZmZXIgYW5kIHVzZSBgYGJlc3RfbWF0Y2hgYCB0byBzZWxlY3QgYSBzcGVjaWZpYyBvbmUuCisKKyogV2l0aCBgYHJlcS5hY2NlcHQuYmVzdF9tYXRjaChbdHlwZXNdKWBgIHByZWZlciB0aGUgZmlyc3QgdHlwZSBpbiB0aGUKKyAgbGlzdCAocHJldmlvdXNseSBpdCBwcmVmZXJyZWQgbGF0ZXIgdHlwZXMpLgorCisqIEFsc28sIG1ha2Ugc3VyZSB0aGF0IGlmIHRoZSB1c2VyLWFnZW50IGFjY2VwdHMgbXVsdGlwbGUgdHlwZXMgYW5kCisgIHRoZXJlIGFyZSBtdWx0aXBsZSBtYXRjaGVzIHRvIHRoZSB0eXBlcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBvZmZlcnMsCisgIGBgcmVxLmFjY2VwdC5iZXN0X21hdGNoKFsuLl0pYGAgcmV0dXJucyB0aGUgbW9zdCBzcGVjaWZpYyBtYXRjaC4KKyAgU28gaWYgdGhlIHNlcnZlciBjYW4gc2F0aXNmeSBlaXRoZXIgYGBpbWFnZS8qYGAgb3IgYGB0ZXh0L3BsYWluYGAKKyAgdHlwZXMsIHRoZSBsYXR0ZXIgd2lsbCBiZSBwaWNrZWQgaW5kZXBlbmRlbnQgZnJvbSB0aGUgb3JkZXIgdGhlIGFjY2VwdGVkCisgIG9yIG9mZmVyZWQgdHlwZXMgYXJlIGxpc3RlZCAoZ2l2ZW4gdGhleSBoYXZlIHRoZSBzYW1lIHF1YWxpdHkgcmF0aW5nKS4KKworKiBGaXggUmFuZ2UsIENvbnRlbnQtUmFuZ2UgYW5kIEFwcEl0ZXIgc3VwcG9ydCBhbGwgb2Ygd2hpY2ggd2VyZSBicm9rZW4KKyAgaW4gbWFueSB3YXlzLCBpbmNvcnJlY3RseSBwYXJzaW5nIHJhbmdlcywgcmVwb3J0aW5nIGluY29ycmVjdAorICBjb250ZW50LXJhbmdlcywgZmFpbGluZyB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBib2R5IHRvIHNhdGlzZnkgdGhlIHJhbmdlCisgIGZyb20gYGBhcHBfaXRlcmBgIGV0Yy4KKworKiBGaXggYXNzdW1wdGlvbiB0aGF0IHByZXNlbnNlIG9mIGEgYGBzZWVrYGAgbWV0aG9kIG1lYW5zIHRoYXQgdGhlIHN0cmVhbQorICBpcyBzZWVrYWJsZS4KKworKiBBZGQgYGB1Ym9keWBgIGFsaWFzIGZvciBgYFJlc3BvbnNlLnVuaWNvZGVfYm9keWBgCisKKyogQWRkIFVuaWNvZGUgdmVyc2lvbnMgb2YgYGBSZXF1ZXN0LnNjcmlwdF9uYW1lYGAgYW5kIGBgcGF0aF9pbmZvYGA6CisgIGBgdXNjcmlwdF9uYW1lYGAgYW5kIGBgdXBhdGhfaW5mb2BgLgorCisqIFNwbGl0IF9faW5pdF9fLnB5IGludG8gZm91ciBtb2R1bGVzOiByZXF1ZXN0LCByZXNwb25zZSwgZGVzY3JpcHRvcnMgYW5kCisgIGRhdGV0aW1lX3V0aWxzLgorCisqIEZpeCBgYFJlc3BvbnNlLmJvZHlgYCBhY2Nlc3MgcmVzZXR0aW5nIENvbnRlbnQtTGVuZ3RoIHRvIHplcm8KKyAgZm9yIEhFQUQgcmVzcG9uc2VzLgorCisqIFN1cHBvcnQgcGFzc2luZyBVbmljb2RlIGJvZGllcyB0byA6Y2xhc3M6YFdTR0lIVFRQRXhjZXB0aW9uYAorICBjb25zdHJ1Y3RvcnMuCisKKyogTWFrZSBgYGJvb2wocmVxLmFjY2VwdClgYCByZXR1cm4gYGBGYWxzZWBgIGZvciByZXF1ZXN0cyB3aXRoIG1pc3NpbmcKKyAgQWNjZXB0IGhlYWRlci4KKworKiBBZGQgSFRUUCB2ZXJzaW9uIHRvIDptZXRoOmBSZXF1ZXN0Ll9fc3RyX19gIG91dHB1dC4KKworKiBSZXNvbHZlIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGZvciBwYXJzZV9xc2wgb24gUHl0aG9uIDIuNiBhbmQgbmV3ZXIuCisKKyogRml4IDptZXRoOmBSZXNwb25zZS5tZDVfZXRhZ2Agc2V0dGluZyBDb250ZW50LU1ENSBpbiBpbmNvcnJlY3QKKyAgZm9ybWF0LgorCisqIEFkZCBgYFJlcXVlc3QuYXV0aG9yaXphdGlvbmBgIHByb3BlcnR5IGZvciBBdXRob3JpemF0aW9uIGhlYWRlci4KKworKiBNYWtlIHN1cmUgRVRhZyB2YWx1ZSBpcyBhbHdheXMgcXVvdGVkIChyZXF1aXJlZCBieSBSRkMpCisKKyogTW92ZWQgbW9zdCBgYFJlcXVlc3RgYCBiZWhhdmlvciBpbnRvIGEgbmV3IGNsYXNzIG5hbWVkCisgIGBgQmFzZVJlcXVlc3RgYC4gIFRoZSBgYFJlcXVlc3RgYCBjbGFzcyBpcyBub3cgYSBzdXBlcmNsYXNzIGZvcgorICBgYEJhc2VSZXF1ZXN0YGAgYW5kIGEgc2ltcGxlIG1peGluIHdoaWNoIG1hbmFnZXMKKyAgYGBlbnZpcm9uWyd3ZWJvYi5hZGhvY19hdHRycyddYGAgd2hlbiBgYF9fc2V0aXRlbV9fYGAsCisgIGBgX19kZWxpdGVtX19gYCBhbmQgYGBfX2dldGl0ZW1fX2BgIGFyZSBjYWxsZWQuICBUaGlzIGFsbG93cworICBmcmFtZXdvcmsgZGV2ZWxvcGVycyB3aG8gZG8gbm90IHdhbnQgdGhlCisgIGBgZW52aXJvblsnd2Vib2IuYWRob2NfYXR0cnMnXWBgIG11dGF0aW9uIGJlaGF2aW9yIGZyb20KKyAgYGBfX3NldGF0dHJfX2BgLiAgKGNocmlzbSkKKworKiBBZGRlZCByZXNwb25zZSBhdHRyaWJ1dGUgYGByZXNwb25zZS5jb250ZW50X2Rpc3Bvc2l0aW9uYGAgZm9yIGl0cworICBhc3NvY2lhdGVkIGhlYWRlci4KKworKiBDaGFuZ2VkIGhvdyBgYGNoYXJzZXRgYCBpcyBkZXRlcm1pbmVkIG9uIDpjbGFzczpgd2Vib2IuUmVxdWVzdGAKKyAgb2JqZWN0cy4gIE5vdyB0aGUgYGBjaGFyc2V0YGAgcGFyYW1ldGVyIGlzIHJlYWQgb24gdGhlIENvbnRlbnQtVHlwZQorICBoZWFkZXIsIGlmIGl0IGlzIHByZXNlbnQuICBPdGhlcndpc2UgYSBgYGRlZmF1bHRfY2hhcnNldGBgIHBhcmFtZXRlcgorICBpcyByZWFkLCBvciB0aGUgYGBjaGFyc2V0YGAgYXJndW1lbnQgdG8gdGhlIFJlcXVlc3QgY29uc3RydWN0b3IuCisgIFRoaXMgaXMgbW9yZSBzaW1pbGFyIHRvIGhvdyA6Y2xhc3M6YHdlYm9iLlJlc3BvbnNlYCBoYW5kbGVzIHRoZQorICBjaGFyc2V0LgorCisqIE1hZGUgdGhlIGNhc2Ugb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgY29uc2lzdGVudCAobm90ZTogdGhpcworICBtaWdodCBicmVhayBzb21lIGRvY3Rlc3RzKS4KKworKiBNYWtlIGBgcmVxLkdFVGBgIHNldHRhYmxlLCBzdWNoIHRoYXQgYGByZXEuZW52aXJvblsnUVVFUllfU1RSSU5HJ11gYAorICBpcyB1cGRhdGVkLgorCisqIEZpeCBwcm9ibGVtIHdpdGggYGByZXEuUE9TVGBgIGNhdXNpbmcgYSByZS1wYXJzZSBvZiB0aGUgYm9keSB3aGVuCisgIHlvdSBpbnN0YW50aWF0ZSBtdWx0aXBsZSBgYFJlcXVlc3RgYCBvYmplY3RzIG92ZXIgdGhlIHNhbWUgZW52aXJvbgorICAoZS5nLiwgd2hlbiB1c2luZyBtaWRkbGV3YXJlIHRoYXQgbG9va3MgYXQgYGByZXEuUE9TVGBgKS4KKworKiBSZWNyZWF0ZSB0aGUgcmVxdWVzdCBib2R5IHByb3Blcmx5IHdoZW4gYSBgYFBPU1RgYCBpbmNsdWRlcyBmaWxlCisgIHVwbG9hZHMuCisKKyogV2hlbiBgYHJlcS5QT1NUYGAgaXMgdXBkYXRlZCwgdGhlIGdlbmVyYXRlZCBib2R5IHdpbGwgaW5jbHVkZSB0aGUKKyAgbmV3IHZhbHVlcy4KKworKiBBZGRlZCBhIGBgUE9TVGBgIHBhcmFtZXRlciB0byA6bWV0aDpgd2Vib2IuUmVxdWVzdC5ibGFua2A7IHdoZW4KKyAgZ2l2ZW4gdGhpcyB3aWxsIGNyZWF0ZSBhIHJlcXVlc3QgYm9keSBmb3IgdGhlIFBPU1QgcGFyYW1ldGVycyAobGlzdAorICBvZiB0d28tdHVwbGVzIG9yIGRpY3Rpb25hcnktbGlrZSBvYmplY3QpLiAgTm90ZTogdGhpcyBkb2VzIG5vdAorICBoYW5kbGUgdW5pY29kZSBvciBmaWxlIHVwbG9hZHMuCisKKyogQWRkZWQgbWV0aG9kIDptZXRoOmB3ZWJvYi5SZXNwb25zZS5tZXJnZV9jb29raWVzYCwgd2hpY2ggdGFrZXMgdGhlCisgIGBgU2V0LUNvb2tpZWBgIGhlYWRlcnMgZnJvbSBhIFJlc3BvbnNlLCBhbmQgbWVyZ2VzIHRoZW0gd2l0aCBhbm90aGVyCisgIHJlc3BvbnNlIG9yIFdTR0kgYXBwbGljYXRpb24uICAoVGhpcyBpcyB1c2VmdWwgZm9yIGZsYXNoIG1lc3NhZ2VzLikKKworKiBGaXggYSBwcm9ibGVtIHdpdGggY3JlYXRpbmcgZXhjZXB0aW9ucyBsaWtlCisgIGBgd2Vib2IuZXhjLkhUVFBOb3RGb3VuZChib2R5PSc8bm90Zm91bmQvPicsCisgIGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24veG1sJylgYCAoaS5lLiwgbm9uLUhUTUwgZXhjZXB0aW9ucykuCisKKyogV2hlbiBhIExvY2F0aW9uIGhlYWRlciBpcyBub3QgYWJzb2x1dGUgaW4gYSBSZXNwb25zZSwgaXQgd2lsbCBiZQorICBtYWRlIGFic29sdXRlIHdoZW4gdGhlIFJlc3BvbnNlIGlzIGNhbGxlZCBhcyBhIFdTR0kgYXBwbGljYXRpb24uCisgIFRoaXMgbWFrZXMgdGhlIHJlc3BvbnNlIGxlc3MgYm91bmQgdG8gYSBzcGVjaWZpYyByZXF1ZXN0LgorCisqIEFkZGVkIDptb2Q6YHdlYm9iLmRlY2AsIGEgZGVjb3JhdG9yIGZvciBtYWtpbmcgV1NHSSBhcHBsaWNhdGlvbnMKKyAgZnJvbSBmdW5jdGlvbnMgd2l0aCB0aGUgc2lnbmF0dXJlIGBgcmVzcCA9IGFwcChyZXEpYGAuCisKKzAuOS42LjEKKy0tLS0tLS0KKworKiBGaXhlZCA6bWV0aDpgUmVzcG9uc2UuX19pbml0X19gLCB3aGljaCBmb3Igc29tZSBjb250ZW50IHR5cGVzIHdvdWxkCisgIHJhaXNlIGFuIGV4Y2VwdGlvbi4KKworKiBUaGUgYGByZXEuYm9keWBgIHByb3BlcnR5IHdpbGwgbm90IHJlY3JlYXRlIGEgU3RyaW5nSU8gb2JqZWN0CisgIHVubmVjZXNzYXJpbHkgd2hlbiByZXJlYWRpbmcgdGhlIGJvZHkuCisKKzAuOS42CistLS0tLQorCisqIFJlbW92ZWQgYGVudmlyb25fZ2V0dGVyYCBmcm9tIDpjbGFzczpgd2Vib2IuUmVxdWVzdGAuICBUaGlzCisgIGxhcmdlbHktdW51c2VkIG9wdGlvbiBhbGxvd2VkIGEgUmVxdWVzdCBvYmplY3QgdG8gYmUgaW5zdGFudGlhdGVkCisgIHdpdGggYSBkeW5hbWljIHVuZGVybHlpbmcgZW52aXJvbi4gIFNpbmNlIGl0IHdhc24ndCB1c2VkIG11Y2gsIGFuZAorICBtaWdodCBoYXZlIGJlZW4gaWxsLWFkdmlzZWQgZnJvbSB0aGUgYmVnaW5uaW5nLCBhbmQgYWZmZWN0ZWQKKyAgcGVyZm9ybWFuY2UsIGl0IGhhcyBiZWVuIHJlbW92ZWQgKGZyb20gQ2hyaXMgTWNEb25vdWdoKS4KKworKiBTcGVlZCB1cHMgZm9yIDptZXRoOmB3ZWJvYi5SZXNwb25zZS5fX2luaXRfX2AgYW5kCisgIDptZXRoOmB3ZWJvYi5SZXF1ZXN0Ll9faW5pdF9fYAorCisqIEZpeCBkZWZhdWx0aW5nIG9mIGBgQ09OVEVOVF9UWVBFYGAgaW5zdGVhZCBvZiBgYENPTlRFTlRfTEVOR1RIYGAgdG8KKyAgMCBpbiBgYFJlcXVlc3Quc3RyX1BPU1RgYC4KKworKiBBZGRlZCA6bWV0aDpgd2Vib2IuUmVzcG9uc2UuY29weWAKKworMC45LjUKKy0tLS0tCisKKyogRml4IGBgUmVxdWVzdC5ibGFuaygnLycpLmNvcHkoKWBgIHJhaXNpbmcgYW4gZXhjZXB0aW9uLgorCisqIEZpeCBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayB3aXRoIEhFQUQgcmVxdWVzdHMgYW5kIDMwNCByZXNwb25zZXMuCisKKyogTWFrZSA6ZnVuYzpgd2Vib2IuaHRtbF9lc2NhcGVgIHJlc3BlY3QgdGhlIGBgLl9faHRtbF9fKClgYCBtYWdpYworICBtZXRob2QsIHdoaWNoIGFsbG93cyB5b3UgdG8gdXNlIEhUTUwgaW4KKyAgOmNsYXNzOmB3ZWJvYi5leGMuSFRUUEV4Y2VwdGlvbmAgaW5zdGFuY2VzLgorCisqIEhhbmRsZSB1bmljb2RlIHZhbHVlcyBmb3IgYGByZXNwLmxvY2F0aW9uYGAuCisKKyogQWxsb3cgYXJiaXRyYXJ5IGtleXdvcmQgYXJndW1lbnRzIHRvIGBgZXhjLkhUVFAqYGAgKHRoZSBzYW1lCisgIGtleXdvcmRzIHlvdSBjYW4gc2VuZCB0byA6Y2xhc3M6YHdlYm9iLlJlc3BvbnNlYCkuCisKKyogQWxsb3cgc2V0dGluZyA6bWV0aDpgd2Vib2IuUmVzcG9uc2UuY2FjaGVfZXhwaXJlc2AgKHVzdWFsbHkgaXQgaXMKKyAgY2FsbGVkIGFzIGEgbWV0aG9kKS4gIFRoaXMgaXMgcHJpbWFyaWx5IHRvIGFsbG93CisgIGBgUmVzcG9uc2UoY2FjaGVfZXhwaXJlcz1UcnVlKWBgLgorCiswLjkuNAorLS0tLS0KKworKiBRdWlldCBQeXRob24gMi42IGRlcHJlY2F0aW9uIHdhcm5pbmdzLgorCisqIEFkZGVkIGFuIGF0dHJpYnV0ZSBgYHVuaWNvZGVfZXJyb3JzYGAgdG8gOmNsYXNzOmB3ZWJvYi5SZXNwb25zZWAgLS0KKyAgaWYgc2V0IHRvIHNvbWV0aGluZyBsaWtlIGBgdW5pY29kZV9lcnJvcnM9J3JlcGxhY2UnYGAgaXQgd2lsbCBkZWNvZGUKKyAgYGByZXNwLmJvZHlgYCBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgaXMgYGBzdHJpY3RgYCAod2hpY2ggd2FzCisgIHRoZSBmb3JtZXIgdW4tb3ZlcnJpZGFibGUgYmVoYXZpb3IpLgorCiswLjkuMworLS0tLS0KKworKiBNYWtlIHN1cmUgdGhhdCBpZiBjaGFuZ2luZyB0aGUgYm9keSB0aGUgQ29udGVudC1NRDUgaGVhZGVyIGlzCisgIHJlbW92ZWQuIChPdGhlcndpc2UgYSBsb3Qgb2YgbWlkZGxld2FyZSB3b3VsZCBhY2NpZGVudGFsbHkKKyAgY29ycnVwdCByZXNwb25zZXMpLgorCisqIEZpeGVkIGBgUmVzcG9uc2UuZW5jb2RlX2NvbnRlbnQoJ2lkZW50aXR5JylgYCBjYXNlICh3YXMgYSBuby1vcCBldmVuCisgIGZvciBlbmNvZGVkIGJvZGllcykuCisKKyogRml4ZWQgOm1ldGg6YFJlcXVlc3QucmVtb3ZlX2NvbmRpdGlvbmFsX2hlYWRlcnNgIHRoYXQgd2FzIHJlbW92aW5nCisgIElmLU1hdGNoIGhlYWRlciBpbnN0ZWFkIG9mIElmLU5vbmUtTWF0Y2guCisKKyogRml4ZWQgYGByZXNwLnNldF9jb29raWUobWF4X2FnZT10aW1lZGVsdGEoLi4uKSlgYAorCisqIGBgcmVxdWVzdC5QT1NUYGAgbm93IHN1cHBvcnRzIFBVVCByZXF1ZXN0cyB3aXRoIHRoZSBhcHByb3ByaWF0ZQorICBDb250ZW50LVR5cGUuCisKKzAuOS4yCistLS0tLQorCisqIEFkZCBtb3JlIGFyZ3VtZW50cyB0byA6bWV0aDpgUmVxdWVzdC5yZW1vdmVfY29uZGl0aW9uYWxfaGVhZGVyc2AKKyAgZm9yIG1vcmUgZmluZS1ncmFpbmVkIGNvbnRyb2w6IGByZW1vdmVfZW5jb2RpbmdgLCBgcmVtb3ZlX3JhbmdlYCwKKyAgYHJlbW92ZV9tYXRjaGAsIGByZW1vdmVfbW9kaWZpZWRgLiBBbGwgb2YgdGhlbSBhcmUgYFRydWVgIGJ5IGRlZmF1bHQuCisKKyogQWRkIGFuIGBzZXRfY29udGVudF9tZDVgIGFyZ3VtZW50IHRvIDptZXRoOmBSZXNwb25zZS5tZDVfZXRhZ2AKKyAgdGhhdCBjYWxjdWxhdGVzIGFuZCBzZXRzIENvbnRlbnQtTUQ1IHJlcG9uc2UgaGVhZGVyIGZyb20gY3VycmVudAorICBib2R5LgorCisqIENoYW5nZSBmb3JtYXR0aW5nIG9mIGNvb2tpZSBleHBpcmVzLCB0byB1c2UgdGhlIG1vcmUgdHJhZGl0aW9uYWwKKyAgZm9ybWF0IGBgV2VkLCA1LU1heS0yMDAxIDE1OjM0OjEwIEdNVGBgIChkYXNoZXMgaW5zdGVhZCBvZiBzcGFjZXMpLgorICBCcm93c2VycyBzaG91bGQgZGVhbCB3aXRoIGVpdGhlciBmb3JtYXQsIGJ1dCBzb21lIG90aGVyIGNvZGUgZXhwZWN0cworICBkYXNoZXMuCisKKyogQWRkZWQgaW4gYGBzb3J0ZWRgYCBmdW5jdGlvbiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIFB5dGhvbgorICAyLjMuCisKKyogQWxsb3cga2V5d29yZCBhcmd1bWVudHMgdG8gOmNsYXNzOmB3ZWJvYi5SZXF1ZXN0YCwgd2hpY2ggYXNzaWduCisgIGF0dHJpYnV0ZXMgKHBvc3NpYmx5IG92ZXJ3cml0aW5nIHZhbHVlcyBpbiB0aGUgZW52aXJvbm1lbnQpLgorCisqIEFkZGVkIG1ldGhvZHMgOm1ldGg6YHdlYm9iLlJlcXVlc3QubWFrZV9ib2R5X3NlZWthYmxlYCBhbmQKKyAgOm1ldGg6YHdlYm9iLlJlcXVlc3QuY29weV9ib2R5YCwgd2hpY2ggbWFrZSBpdCBlYXNpZXIgdG8gc2hhcmUgYQorICByZXF1ZXN0IGJvZHkgYW1vbmcgZGlmZmVyZW50IGNvbnN1bWluZyBhcHBsaWNhdGlvbnMsIGRvaW5nIHNvbWV0aGluZworICBsaWtlIGByZXEubWFrZV9ib2R5X3NlZWthYmxlKCk7IHJlcS5ib2R5X2ZpbGUuc2VlaygwKWAKKworMC45LjEKKy0tLS0tCisKKyogYGByZXF1ZXN0LnBhcmFtcy5jb3B5KClgYCBub3cgcmV0dXJucyBhIHdyaXRhYmxlIE11bHRpRGljdCAoYmVmb3JlCisgIGl0IHJldHVybmVkIGFuIHVud3JpdGFibGUgb2JqZWN0KS4KKworKiBUaGVyZSB3ZXJlIHNldmVyYWwgdGhpbmdzIGJyb2tlbiB3aXRoIGBgVW5pY29kZU11bHRpRGljdGBgIHdoZW4KKyAgYGBkZWNvZGVfcGFyYW1fbmFtZXNgYCBpcyB0dXJuZWQgb24gKHdoZW4gdGhlIGRpY3Rpb25hcnkga2V5cyBhcmUKKyAgdW5pY29kZSkuCisKKyogWW91IGNhbiBwYXNzIGtleXdvcmQgYXJndW1lbnRzIHRvIGBgUmVxdWVzdC5ibGFuaygpYGAgdGhhdCB3aWxsIGJlCisgIHVzZWQgdG8gY29uc3RydWN0IGBgUmVxdWVzdGBgIChlLmcuLCBgYFJlcXVlc3QuYmxhbmsoJy8nLAorICBkZWNvZGVfcGFyYW1fbmFtZXM9VHJ1ZSlgYCkuCisKKyogSWYgeW91IHNldCBoZWFkZXJzIGxpa2UgYGByZXNwb25zZS5ldGFnYGAgdG8gYSB1bmljb2RlIHZhbHVlLCB0aGV5CisgIHdpbGwgYmUgZW5jb2RlZCBhcyBJU08tODg1OS0xIChob3dldmVyLCB0aGV5IHdpbGwgcmVtYWluIGVuY29kZWQsCisgIGFuZCBgYHJlc3BvbnNlLmV0YWdgYCB3aWxsIG5vdCBiZSBhIHVuaWNvZGUgdmFsdWUpLgorCisqIFdoZW4gcGFyc2luZywgaW50ZXJwcmV0IHRpbWVzIHdpdGggbm8gdGltZXpvbmUgYXMgVVRDIChwcmV2aW91c2x5CisgIHRoZXkgd291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgbG9jYWwgdGltZSkuCisKKyogU2V0IHRoZSBFeHBpcmVzIHByb3BlcnR5IG9uIGNvb2tpZXMgd2hlbiB1c2luZworICBgYHJlc3BvbnNlLnNldF9jb29raWUoKWBgLiAgVGhpcyBpcyBpbmhlcml0ZWQgZnJvbSBgYG1heF9hZ2VgYC4KKworKiBTdXBwb3J0IFVuaWNvZGUgY29va2llIHZhbHVlcworCiswLjkKKy0tLQorCisqIEFkZGVkIGBgcmVxLnVybGFyZ2BgLCB3aGljaCByZXByZXNlbnRzIHBvc2l0aW9uYWwgYXJndW1lbnRzIGluCisgIGBgZW52aXJvblsnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnXWBgLgorCisqIEZvciBQeXRob24gMi40LCBhZGRlZCBhdHRyaWJ1dGUgZ2V0L3NldCBwcm94aWVzIG9uIGV4Y2VwdGlvbiBvYmplY3RzCisgIGZyb20sIGZvciBleGFtcGxlLCBgYHdlYm9iLmV4Yy5IVFRQTm90Rm91bmQoKS5leGNlcHRpb25gYCwgc28gdGhhdAorICB0aGV5IGFjdCBtb3JlIGxpa2Ugbm9ybWFsIHJlc3BvbnNlIG9iamVjdHMgKGRlc3BpdGUgbm90IGJlaW5nCisgIG5ldy1zdHlsZSBjbGFzc2VzIG9yIGBgd2Vib2IuUmVzcG9uc2VgYCBvYmplY3RzKS4gIEluIFB5dGhvbiAyLjUgdGhlCisgIGV4Y2VwdGlvbnMgYXJlIGBgd2Vib2IuUmVzcG9uc2VgYCBvYmplY3RzLgorCitCYWNrd2FyZCBJbmNvbXBhdGlibGUgQ2hhbmdlcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworKiBUaGUgYGBSZXNwb25zZWBgIGNvbnN0cnVjdG9yIGhhcyBjaGFuZ2VkOiBpdCBpcyBub3cgYGBSZXNwb25zZShbYm9keV0sCisgIFtzdGF0dXNdLCAuLi4pYGAgKGJlZm9yZSBpdCB3YXMgYGBSZXNwb25zZShbc3RhdHVzXSwgW2JvZHldLCAuLi4pYGApLgorICBCb2R5IG1heSBiZSBzdHIgb3IgdW5pY29kZS4KKworKiBUaGUgYGBSZXNwb25zZWBgIGNsYXNzIGRlZmF1bHRzIHRvIGBgdGV4dC9odG1sYGAgZm9yIHRoZQorICBDb250ZW50LVR5cGUsIGFuZCBgYHV0ZjhgYCBmb3IgdGhlIGNoYXJzZXQgKGNoYXJzZXQgaXMgb25seSBzZXQgb24KKyAgYGB0ZXh0LypgYCBhbmQgYGBhcHBsaWNhdGlvbi8qK3htbGBgIHJlc3BvbnNlcykuCisKK0J1Z2ZpeGVzIGFuZCBTbWFsbCBDaGFuZ2VzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisqIFVzZSBgYEJhc2VDb29raWVgYCBpbnN0ZWFkIG9mIGBgU2ltcGxlQ29va2llYGAgZm9yIHBhcnNpbmcgY29va2llcy4KKworKiBBZGRlZCBgYHJlc3Aud3JpdGUodGV4dClgYCBtZXRob2QsIHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8KKyAgYGByZXNwLmJvZHkgKz0gdGV4dGBgIG9yIGBgcmVzcC51bmljb2RlX2JvZHkgKz0gdGV4dGBgLCBkZXBlbmRpbmcgb24KKyAgdGhlIHR5cGUgb2YgYGB0ZXh0YGAuCisKKyogVGhlIGBgZGVjb2RlX3BhcmFtX25hbWVzYGAgYXJndW1lbnQgKHVzZWQgbGlrZQorICBgYFJlcXVlc3QoZGVjb2RlX3BhcmFtX25hbWVzPVRydWUpYGApIHdhcyBiZWluZyBpZ25vcmVkLgorCisqIFVuaWNvZGUgZGVjb2Rpbmcgb2YgZmlsZSB1cGxvYWRzIGFuZCBmaWxlIHVwbG9hZCBmaWxlbmFtZXMgd2VyZQorICBjYXVzaW5nIGVycm9ycyB3aGVuIGRlY29kaW5nIG5vbi1maWxlLXVwbG9hZCBmaWVsZHMgKGJvdGggZml4ZXMgZnJvbQorICBSeWFuIEJhcnJldHQpLgorCiswLjguNQorLS0tLS0KKworKiBBZGRlZCByZXNwb25zZSBtZXRob2RzIGBgcmVzcC5lbmNvZGVfY29udGVudCgpYGAgYW5kCisgIGBgcmVzcC5kZWNvZGVfY29udGVudCgpYGAgdG8gZ3ppcCBvciB1bmd6aXAgY29udGVudC4KKworKiBgYFJlc3BvbnNlKHN0YXR1cz00MDQpYGAgbm93IHdvcmtzIChiZWZvcmUgeW91IHdvdWxkIGhhdmUgdG8gdXNlCisgIGBgc3RhdHVzPSI0MDQgTm90IEZvdW5kImBgKS4KKworKiBCdWdmaXggKHR5cG8pIHdpdGggcmV1c2luZyBQT1NUIGJvZHkuCisKKyogQWRkZWQgYGAyMjYgSU0gVXNlZGBgIHJlc3BvbnNlIHN0YXR1cy4KKworKiBCYWNrcG9ydCBvZiBgYHN0cmluZy5UZW1wbGF0ZWBgIGluY2x1ZGVkIGZvciBQeXRob24gMi4zCisgIGNvbXBhdGliaWxpdHkuCisKKzAuOC40CistLS0tLQorCisqIGBgX19zZXRhdHRyX19gYCB3b3VsZCBrZWVwIGBgUmVxdWVzdGBgIHN1YmNsYXNzZXMgZnJvbSBoYXZpbmcKKyAgcHJvcGVybHkgc2V0dGFibGUgZW52aXJvbiBwcm94aWVzIChsaWtlIGBgcmVxLnBhdGhfaW5mb2BgKS4KKworMC44LjMKKy0tLS0tCisKKyogYGByZXF1ZXN0LlBPU1RgYCB3YXMgZ2l2aW5nIEZpZWxkU3RvcmFnZSBvYmplY3RzIGZvciAqZXZlcnkqCisgIGF0dHJpYnV0ZSwgbm90IGp1c3QgZmlsZSB1cGxvYWRzLiAgVGhpcyBpcyBmaXhlZCBub3cuCisKKworKiBBZGRlZCByZXF1ZXN0IGF0dHJpYnV0ZXMgYGByZXEuc2VydmVyX25hbWVgYCBhbmQgYGByZXEuc2VydmVyX3BvcnRgYAorICBmb3IgdGhlIGVudmlyb24ga2V5cyBgYFNFUlZFUl9OQU1FYGAgYW5kIGBgU0VSVkVSX1BPUlRgYC4KKworKiBBdm9pZCBleGNlcHRpb25zIGluIGBgcmVxLmNvbnRlbnRfbGVuZ3RoYGAsIGV2ZW4gaWYKKyAgYGBlbnZpcm9uWydDT05URU5UX0xFTkdUSCddYGAgaXMgc29tZWhvdyBpbnZhbGlkLgorCiswLjguMgorLS0tLS0KKworKiBQeXRob24gMi4zIGNvbXBhdGliaWxpdHk6IGJhY2twb3J0IG9mIGBgcmV2ZXJzZWQoc2VxKWBgCisKKyogTWFkZSBzZXBhcmF0ZSBgYC5leGNlcHRpb25gYCBhdHRyaWJ1dGUgb24gYGB3ZWJvYi5leGNgYCBvYmplY3RzLAorICBzaW5jZSBuZXctc3R5bGUgY2xhc3NlcyBjYW4ndCBiZSByYWlzZWQgYXMgZXhjZXB0aW9ucy4KKworKiBEZXByZWNhdGUgYGByZXEucG9zdHZhcnNgYCBhbmQgYGByZXEucXVlcnl2YXJzYGAsIGluc3RlYWQgdXNpbmcgdGhlCisgIHNvbGUgbmFtZXMgYGByZXEuR0VUYGAgYW5kIGBgcmVxLlBPU1RgYCAoYWxzbyBgYHJlcS5zdHJfR0VUYGAgYW5kCisgIGBgcmVxLnN0cl9QT1NUYGApLiAgVGhlIG9sZCBuYW1lcyBnaXZlIGEgd2FybmluZzsgd2lsbCBnaXZlIGFuIGVycm9yCisgIGluIG5leHQgcmVsZWFzZSwgYW5kIGJlIGNvbXBsZXRlbHkgZ29uZSBpbiB0aGUgZm9sbG93aW5nIHJlbGVhc2UuCisKKyogYGByZXEudXNlcl9hZ2VudGBgIGlzIG5vdyBqdXN0IGEgc2ltcGxlIHN0cmluZyAocGFyc2luZyB0aGUKKyAgVXNlci1BZ2VudCBoZWFkZXIgd2FzIGp1c3QgdG9vIHZvbGF0aWxlLCBhbmQgcmVxdWlyZWQgdG9vIG11Y2gKKyAga25vd2xlZGdlIGFib3V0IGN1cnJlbnQgYnJvd3NlcnMpLiAgU2ltaWxhcmx5LAorICBgYHJlcS5yZWZlcmVyX3NlYXJjaF9xdWVyeSgpYGAgaXMgZ29uZS4KKworKiBBZGRlZCBwYXJhbWV0ZXJzIGBgdmVyc2lvbmBgIGFuZCBgYGNvbW1lbnRgYCB0bworICBgYFJlc3BvbnNlLnNldF9jb29raWUoKWBgLCBwZXIgV2lsbGlhbSBEb2RlJ3Mgc3VnZ2VzdGlvbi4KKworKiBXYXMgYWNjaWRlbnRhbGx5IGNvbnN1bWluZyBmaWxlIHVwbG9hZHMsIGluc3RlYWQgb2YgcHV0dGluZyB0aGUKKyAgYGBGaWVsZFN0b3JhZ2VgYCBvYmplY3QgZGlyZWN0bHkgaW4gdGhlIHBhcmFtZXRlcnMuCisKKzAuOC4xCistLS0tLQorCisqIEFkZGVkIGBgcmVzLnNldF9jb29raWUoLi4uLCBodHRwb25seT1UcnVlKWBgIHRvIHNldCB0aGUgYGBIdHRwT25seWBgCisgIGF0dHJpYnV0ZSBvbiB0aGUgY29va2llLCB3aGljaCBrZWVwcyBKYXZhc2NyaXB0IGZyb20gcmVhZGluZyB0aGUKKyAgY29va2llLgorCisqIEFkZGVkIHNvbWUgV2ViREFWLXJlbGF0ZWQgcmVzcG9uc2VzIHRvIGBgd2Vib2IuZXhjYGAKKworKiBTZXQgZGVmYXVsdCBgYExhc3QtTW9kaWZpZWRgYCB3aGVuIHVzaW5nIGBgcmVzcG9uc2UuY2FjaGVfZXhwaXJlKClgYAorICAoZml4ZXMgaXNzdWUgd2l0aCBPcGVyYSkKKworKiBHZW5lcmFsbHkgZml4IGBgLmNhY2hlX2NvbnRyb2xgYAorCiswLjgKKy0tLQorCitGaXJzdCByZWxlYXNlLiAgTm90aGluZyBpcyBuZXcsIG9yIGV2ZXJ5dGhpbmcgaXMgbmV3LCBkZXBlbmRpbmcgb24gaG93Cit5b3UgdGhpbmsgYWJvdXQgaXQuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9weWNvbjIwMTEvcHljb24tcHkzay1zcHJpbnQudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvcHljb24yMDExL3B5Y29uLXB5M2stc3ByaW50LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU3MTgyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvcHljb24yMDExL3B5Y29uLXB5M2stc3ByaW50LnR4dApAQCAtMCwwICsxLDc1IEBACitQeXRob24gMyBTcHJpbnQgT3V0Y29tZXMKKz09PT09PT09PT09PT09PT09PT09PT09PQorCitXZSBwcm92aWRlZCBXZWJPYiB3aXRoIDEwMCUgc3RhdGVtZW50IGNvdmVyYWdlIGF0IHRoZSAyMDExIFB5Q29uIFB5cmFtaWQKK3NwcmludCBpbiBBdGxhbnRhIEdBLgorCitQYXJ0aWNpcGF0ZWQ6CisKK0FsZXhhbmRyZSBDb25yYWQsIFBhdHJpY2lvIFBhZXosIFdoaXQgTW9ycmlzcywgUm9iIE1pbGxlciwgUmVlZCBPJ0JyaWVuLAorQ2hyaXMgU2hlbnRvbiwgSm9lIERhbGxhZ28sIFRyZXMgU2VhdmVyLCBDYXNleSBEdW5jYW4sIEthaSBHcm9uZXIsIENocmlzCitNY0Rvbm91Z2guCisKK0luIGRvaW5nIHNvLCB3ZSBhZGRlZCByb3VnaGx5IDcwMC04MDAgdW5pdCB0ZXN0cywgYW5kIGRpc3VzZWQgZXhpc3RpbmcKK2RvY3Rlc3RzIGFzIGNvdmVyYWdlICh0aGV5IGFyZSBzdGlsbCBydW5uYWJsZSwgYnV0IGRvbid0IGdldCBydW4gZHVyaW5nCitgYHNldHVwLnB5IHRlc3RgYCkuCisKK1dlIG5ldmVyIGRpZCBnZXQgYXJvdW5kIHRvIGFjdHVhbGx5IGRvaW5nIGFueSBwb3J0aW5nIHRvIFB5dGhvbiAzLiAgQWRkaW5nCitjb21wcmVoZW5zaXZlIHRlc3QgY292ZXJhZ2UgcHJvdmVkIHRvIGJlIGVub3VnaCB3b3JrIHRvIGZpbGwgdGhlIHNwcmludCBkYXlzLgorCitUaGUgYml0YnVja2V0IGZvcmsgb24gd2hpY2ggdGhpcyB3b3JrIHdhcyBkb25lIGlzIGF0CitodHRwczovL2JpdGJ1Y2tldC5vcmcvY2hyaXNtL3dlYm9iLXB5M2suICBJJ3ZlIG1hZGUgYSB0YWcgaW4gdGhhdCByZXBvc2l0b3J5CituYW1lZCAic3ByaW50LWNvdmVyYWdlIiB3aGljaCByZXByZXNlbnRzIGEgcmVhc29uYWJsZSBwbGFjZSB0byBwdWxsIGZyb20gZm9yCitpbnRlZ3JhdGlvbiBpbnRvIG1haW5saW5lLgorCitUZXN0aW5nIE5vcm1hbGx5CistLS0tLS0tLS0tLS0tLS0tCisKKyAkIHB5dGhvbjIueCBzZXR1cC5weSB0ZXN0CisKK1Rlc3RpbmcgQ292ZXJhZ2UKKy0tLS0tLS0tLS0tLS0tLS0KKworICQgcHl0aG9uMi5YIHNldHVwLnB5IG5vc2V0ZXN0cyAtLXdpdGgtY292ZXJhZ2UKKworVGVzdGluZyBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRG9jdGVzdHMgZG9uJ3QgcnVuIHdoZW4geW91IHJ1biAic2V0dXAucHkgdGVzdCIgYW55bW9yZS4gIFRvIHJ1biB0aGVtCittYW51YWxseSwgZG86CisKKyAgJCBjZCB3ZWJvYgorICAkICRNWVZFTlYvYmluL3B5dGhvbiBzZXR1cC5weSBkZXZlbG9wCisgICQgY2QgZG9jcworICAkICRNWVZFTlYvYmluL3B5dGhvbiBkb2N0ZXN0cy5weQorCitCbGFtZWxpc3QKKy0tLS0tLS0tLQorCistIHdlYm9iLmFjY2VwdHBhcnNlIChhY29ucmFkKQorCistIHdlYm9iLmJ5dGVyYW5nZSAocHBhZXopCisKKy0gd2Vib2IuY2FjaGVjb250cm9sICh3aGl0KQorCistIHdlYm9iLmRlYyAocmFmcm9tYnJjKQorCistIHdlYm9iLmRlc2NyaXB0b3JzIChyZWVkb2JyaWVuKQorCistIHdlYm9iLmV0YWcgKHNoZW50b25mcmV1ZGUpCisKKy0gd2Vib2IubXVsdGlkaWN0IChqb2UpCisKKy0gd2Vib2IucmVxdWVzdCAodHNlYXZlcikKKworLSB3ZWJvYi5yZXNwb25zZSAoY2FzZW1hbi9tY2RvbmMpCisKKy0gd2Vib2IuZXhjIChqb2UpCisKK0RvY3Rlc3QtdG8tVW5pdCBUZXN0IENvbnZlcnNpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSB0ZXN0cy90ZXN0X3JlcXVlc3QudHh0IChhY29ucmFkKQorCistIHRlc3RzL3Rlc3RfcmVzcG9uc2UudHh0IChncm9uZXIpCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL3B5Y29uMjAxMS9yZXF1ZXN0X3RhYmxlLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL3B5Y29uMjAxMS9yZXF1ZXN0X3RhYmxlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjdmMDMxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvcHljb24yMDExL3JlcXVlc3RfdGFibGUucnN0CkBAIC0wLDAgKzEsMTQ1IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PQorIFJlcXVlc3QgQ29tcGFyaXNvbiBUYWJsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworYj1XZWJCb2IKK3o9V2Vya3pldWcKK3g9Ym90aAorCisKK1dFQk9CIE5BTUUgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUgIHJlYWQgIFdFUktaRVVHIE5BTUUgICAgICAgICAgICAgICAgICAgICAgTk9URVMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgPT09PT0gID09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitSZWFkLVdyaXRlIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkLVdyaXRlIFByb3BlcnRpZXMKKysrKysrKysrKysrKysrKysrKysrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsrKysrKysrKysrKysrKysrKysrKworCitjb250ZW50X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGUgICAgICAgICAgICAgICAgICAgICAgIENvbW1vblJlcXVlc3REZXNjcmlwdG9yTWl4aW4KK2NoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgInV0Zi04IgoraGVhZGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyBjYWNoZWRfcHJvcGVydHkKK3VybHZhcnMKK3VybGFyZ3MKK2hvc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QgY2FjaGVkX3Byb3BlcnR5Citib2R5Cit1bmljb2RlX2Vycm9ycyAnc3RyaWN0JyAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZ19lcnJvcnMgJ2lnbm9yZScKK2RlY29kZV9wYXJhbV9uYW1lcyBGCityZXF1ZXN0X2JvZHlfdGVtcGZpbGVfbGltaXQgMTAqMTAyNCAgICAgICAgICAgICBtYXhfY29udGVudF9sZW5ndGggTm9uZSAgICAgICAgICAgIE5vdCBzdXJlIGlmIHRoZXNlIGFyZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfYmVoaW5kX3Byb3h5IEYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9mb3JtX21lbW9yeV9zaXplIE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcl9zdG9yYWdlX2NsYXNzICAgICAgICAgICAgSW1tdXRhYmxlTXVsdGlEaWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0X3N0b3JhZ2VfY2xhc3MgICAgICAgICAgICAgICAgIEltbXV0YWJsZUxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rfc3RvcmFnZV9jbGFzcyAgICAgICAgICAgICAgICAgSW1tdXRhYmxlVHlwZUNvbnZlcnNpb25EaWN0CitlbnZpcm9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZV9yZXF1ZXN0IFQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsb3cgRgorCisKK0Vudmlyb24gR2V0dGVyIFByb3BlcnRpZXMKKysrKysrKysrKysrKysrKysrKysrKysrKysKKworYm9keV9maWxlX3Jhdworc2NoZW1lCittZXRob2QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QKK2h0dHBfdmVyc2lvbgorc2NyaXB0X25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0X3Jvb3QgY2FjaGVkX3Byb3BlcnR5CitwYXRoX2luZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pz9wYXRoIGNhY2hlZF9wcm9wZXJ0eQorY29udGVudF9sZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlICAgICAgICAgICAgICAgICAgICAgICBDb21tb25SZXF1ZXN0RGVzY3JpcHRvck1peGluCityZW1vdGVfdXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVfdXNlcgorcmVtb3RlX2FkZHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlX2FkZHIKK3F1ZXJ5X3N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X3N0cmluZworc2VydmVyX25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdCAod2l0aCBwb3J0KQorc2VydmVyX3BvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdCAod2l0aCBuYW1lKQordXNjcmlwdF9uYW1lCit1cGF0aF9pbmZvCitpc19ib2R5X3NlZWthYmxlCithdXRob3JpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemF0aW9uIGNhY2hlZF9wcm9wZXJ0eQorcHJhZ21hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJhZ21hIGNhY2hlZF9wcm9wZXJ0eQorZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tb25SZXF1ZXN0RGVzY3JpcHRvck1peGluCittYXhfZm9yd2FyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfZm9yd2FyZHMgICAgICAgICAgICAgICAgICAgICAgIENvbW1vblJlcXVlc3REZXNjcmlwdG9yTWl4aW4KK3JhbmdlCitpZl9yYW5nZQorcmVmZXJlci9yZWZlcnJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXIgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tb25SZXF1ZXN0RGVzY3JpcHRvck1peGluCit1c2VyX2FnZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2FnZW50IGNhY2hlZF9wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfc3RyZWFtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1ldHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1vblJlcXVlc3REZXNjcmlwdG9yTWl4aW4KKworCitSZWFkLU9ubHkgUHJvcGVydGllcworKysrKysrKysrKysrKysrKysrKysKKworaG9zdF91cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF91cmwgY2FjaGVkX3Byb3BlcnR5CithcHBsaWNhdGlvbl91cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX3VybCBjYWNoZWRfcHJvcGVydHkgICAgICAgIE5vdCBzdXJlIGlmIHNhbWUKK3BhdGhfdXJsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8/P3BhdGggY2FjaGVkX3Byb3BlcnR5CitwYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pz9wYXRoIGNhY2hlZF9wcm9wZXJ0eQorcGF0aF9xcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz8/cGF0aCBjYWNoZWRfcHJvcGVydHkKK3VybCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCBjYWNoZWRfcHJvcGVydHkKK2lzX3hociAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3hocgorc3RyX1BPU1QKK1BPU1QKK3N0cl9HRVQKK0dFVAorc3RyX3BhcmFtcworcGFyYW1zCitzdHJfY29va2llcworY29va2llcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2llcyBjYWNoZWRfcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9jaGFyc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0gY2FjaGVkX3Byb3BlcnR5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzIGNhY2hlZF9wcm9wZXJ0eSAgICAgICAgICAgIE1heWJlIG1hcHMgdG8gcGFyYW1zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhIGNhY2hlZF9wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybSBjYWNoZWRfcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyBjYWNoZWRfcHJvcGVydHkgICAgICAgICAgTWF5YmUgbWFwcyB0byBwYXJhbXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzICBjYWNoZWRfcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9yb290IGNhY2hlZF9wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzX3JvdXRlIGNhY2hlZF9wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2VjdXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19tdWx0aXRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbXVsdGlwcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19ydW5fb25jZQorCisKK0FjY2VwdCBQcm9wZXJ0aWVzCisrKysrKysrKysrKysrKysrKworCithY2NlcHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRfbWltZXR5cGVzCithY2NlcHRfY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRfY2hhcnNldHMKK2FjY2VwdF9lbmNvZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdF9lbmNvZGluZ3MKK2FjY2VwdF9sYW5ndWFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdF9sYW5ndWFnZXMKKworRXRhZyBQcm9wZXJ0aWVzCisrKysrKysrKysrKysrKysKKworY2FjaGVfY29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfY29udHJvbCBjYWNoZWRfcHJvcGVydHkKK2lmX21hdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmX21hdGNoIGNhY2hlZF9wcm9wZXJ0eQoraWZfbm9uZV9tYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZfbm9uZV9tYXRjaCBjYWNoZWRfcHJvcGVydHkKK2lmX21vZGlmaWVkX3NpbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmX21vZGlmaWVkX3NpbmNlIGNhY2hlZF9wcm9wZXJ0eQoraWZfdW5tb2RpZmllZF9zaW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZfdW5tb2RpZmllZF9zaW5jZSBjYWNoZWRfcHJvcGVydHkKKworTWV0aG9kcworKysrKysrCisKK3JlbGF0aXZlX3VybAorcGF0aF9pbmZvX3BvcAorcGF0aF9pbmZvX3BlZWsKK2NvcHkKK2NvcHlfZ2V0CittYWtlX2JvZHlfc2Vla2FibGUKK2NvcHlfYm9keQorbWFrZV90ZW1wZmlsZQorcmVtb3ZlX2NvbmRpdGlvbmFsX2hlYWRlcnMKK2FzX3N0cmluZyAoX19zdHJfXykKK2NhbGxfYXBwbGljYXRpb24KK2dldF9yZXNwb25zZQorCitDbGFzc21ldGhvZHMKKysrKysrKysrKysrKworCitmcm9tX3N0cmluZyAoY2xhc3NtZXRob2QpCitmcm9tX2ZpbGUKK2JsYW5rCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tX3ZhbHVlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24KKworTm90ZXMKKy0tLS0tCisKKyA8bWl0c3VoaWtvPiBtY2RvbmM6IHNjcmlwdF9yb290IGFuZCBwYXRoIGluIHdlcmt6ZXVnIGFyZSBub3QgcXVpdGUgc2NyaXB0X25hbWUgYW5kIHBhdGhfaW5mbyBpbiB3ZWJvYgorWzE3OjUxXSA8bWl0c3VoaWtvPiB0aGUgYmVoYXZpb3IgcmVnYXJkaW5nIHNsYXNoZXMgaXMgZGlmZmVyZW50IGZvciBlYXNpZXIgdXJsIGpvaW5pbmcKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL3B5Y29uMjAxMS9yZXNwb25zZV90YWJsZS5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9weWNvbjIwMTEvcmVzcG9uc2VfdGFibGUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkZmNlMGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9weWNvbjIwMTEvcmVzcG9uc2VfdGFibGUucnN0CkBAIC0wLDAgKzEsNjggQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorIFJlc3BvbnNlIENvbXBhcmlzb24gVGFibGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitiPVdlYkJvYgorej1XZXJremV1ZworeD1ib3RoCisgPW5laXRoZXIKKworV0VCT0IgTkFNRSAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSAgcmVhZCAgV0VSS1pFVUcgTkFNRSAgICAgICAgICAgICAgICAgICAgICBOT1RFUworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICA9PT09PSAgPT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitkZWZhdWx0X2NvbnRlbnRfdHlwZSAgICAgICAgICAgICAgICAgeCAgICAgIHggICBkZWZhdWx0X21pbWV0eXBlICAgICAgICAgICAgICAgICAgIHdiIGRlZmF1bHQ6ICJ0ZXh0L2h0bWwiLCB3ejogInRleHQvcGxhaW4iCitkZWZhdWx0X2NoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgYiAgICAgIGIgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd6IHVzZXMgY2xhc3MgdmFyIGRlZmF1bHQgZm9yIGNoYXJzZXQKK2NoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgeCAgIGNoYXJzZXQKK3VuaWNvZGVfZXJyb3JzICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgYgorZGVmYXVsdF9jb25kaXRpb25hbF9yZXNwb25zZSAgICAgICAgIGIgICAgICBiCitmcm9tX2ZpbGUoKSAoY2xhc3NtZXRob2QpICAgICAgICAgICAgYiAgICAgIGIKK2NvcHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgYgorc3RhdHVzIChzdHJpbmcpICAgICAgICAgICAgICAgICAgICAgIHggICAgICB4ICAgc3RhdHVzCitzdGF0dXNfY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgIHggICBzdGF0dXNfY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ICAgZGVmYXVsdF9zdGF0dXMKK2hlYWRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgYgorYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgICAgICBiCit1bmljb2RlX2JvZHkgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgIHggICBkYXRhCitib2R5X2ZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUtbGlrZSBvYmogcmV0dXJuZWQgaXMgd3JpdGVhYmxlCithcHBfaXRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgIHggICBnZXRfYXBwX2l0ZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ICAgaXRlcl9lbmNvZGVkKCkKK2FsbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgeCAgIGFsbG93Cit2YXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgIHggICB2YXJ5Citjb250ZW50X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgIHggICBjb250ZW50X3R5cGUKK2NvbnRlbnRfdHlwZV9wYXJhbXMgICAgICAgICAgICAgICAgICB4ICAgICAgeCAgIG1pbWVfdHlwZV9wYXJhbXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ICAgICAgeiAgIG1pbWVfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlIHN0ciB3byBwYXJhbWV0ZXJzCitjb250ZW50X2xlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgIHggICBjb250ZW50X2xlbmd0aAorY29udGVudF9lbmNvZGluZyAgICAgICAgICAgICAgICAgICAgIHggICAgICB4ICAgY29udGVudF9lbmNvZGluZworY29udGVudF9sYW5ndWFnZSAgICAgICAgICAgICAgICAgICAgIGIgICAgICB4ICAgY29udGVudF9sYW5ndWFnZQorY29udGVudF9sb2NhdGlvbiAgICAgICAgICAgICAgICAgICAgIHggICAgICB4ICAgY29udGVudF9sb2NhdGlvbgorY29udGVudF9tZDUgICAgICAgICAgICAgICAgICAgICAgICAgIHggICAgICB4ICAgY29udGVudF9tZDUKK2NvbnRlbnRfZGlzcG9zaXRpb24gICAgICAgICAgICAgICAgICBiICAgICAgYgorYWNjZXB0X3JhbmdlcyAgICAgICAgICAgICAgICAgICAgICAgIGIgICAgICBiCitjb250ZW50X3JhbmdlICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgIGIKK2RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgeCAgIGRhdGUKK2V4cGlyZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgeCAgIGV4cGlyZXMKK2xhc3RfbW9kaWZpZWQgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgeCAgIGxhc3RfbW9kaWZpZWQKK2NhY2hlX2NvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgeiAgIGNhY2hlX2NvbnRyb2wKK2NhY2hlX2V4cGlyZXMgKGR3aW0pICAgICAgICAgICAgICAgICBiICAgICAgYgorY29uZGl0aW9uYWxfcmVzcG9uc2UgKGJvb2wpICAgICAgICAgIGIgICAgICB4ICAgbWFrZV9jb25kaXRpb25hbCgpCitldGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgIHggICBhZGRfZXRhZygpCitldGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgIHggICBnZXRfZXRhZygpCitldGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgIHggICBzZXRfZXRhZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHogICBmcmVlemUoKQorbG9jYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggICAgICB4ICAgbG9jYXRpb24KK3ByYWdtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgYgorYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggICAgICB4ICAgYWdlCityZXRyeV9hZnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgIHggICByZXRyeV9hZnRlcgorc2VydmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgICAgICBiCit3d3dfYXV0aGVudGljYXRlICAgICAgICAgICAgICAgICAgICAgYiAgICAgIHogICB3d3dfYXV0aGVudGljYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgIHggICBkYXRlCityZXRyeV9hZnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgIHggICByZXRyeV9hZnRlcgorc2V0X2Nvb2tpZSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2Nvb2tpZSgpCitkZWxldGVfY29va2llKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVfY29va2llKCkKK3Vuc2V0X2Nvb2tpZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHogICBpc19zdHJlYW1lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ICAgaXNfc2VxdWVuY2UKK2JvZHlfZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgIHN0cmVhbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3dzZ2lfaGVhZGVycygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfd3NnaV9yZXNwb25zZSgpCitfX2NhbGxfXygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NhbGxfXygpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy9yZWZlcmVuY2UudHh0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvcmVmZXJlbmNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmZkNDI2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3MvcmVmZXJlbmNlLnR4dApAQCAtMCwwICsxLDEwMTEgQEAKK1dlYk9iIFJlZmVyZW5jZQorKysrKysrKysrKysrKysrCisKKy4uIGNvbnRlbnRzOjoKKworLi4gY29tbWVudDoKKworICAgID4+PiBmcm9tIGRvY3Rlc3QgaW1wb3J0IEVMTElQU0lTCisKK0ludHJvZHVjdGlvbgorPT09PT09PT09PT09CisKK1RoaXMgZG9jdW1lbnQgY292ZXJzIGFsbCB0aGUgZGV0YWlscyBvZiB0aGUgUmVxdWVzdCBhbmQgUmVzcG9uc2UKK29iamVjdHMuICBJdCBpcyB3cml0dGVuIHRvIGJlIHRlc3RhYmxlIHdpdGggYGRvY3Rlc3QKKzxodHRwOi8vcHl0aG9uLm9yZy9kb2MvY3VycmVudC9saWIvbW9kdWxlLWRvY3Rlc3QuaHRtbD5gXyAtLSB0aGlzCithZmZlY3RzIHRoZSBmbGF2b3Igb2YgdGhlIGRvY3VtZW50YXRpb24sIHBlcmhhcHMgdG8gaXRzIGRldHJpbWVudC4KK0J1dCBpdCBhbHNvIG1lYW5zIHlvdSBjYW4gZmVlbCBjb25maWRlbnQgdGhhdCB0aGUgZG9jdW1lbnRhdGlvbiBpcworY29ycmVjdC4KKworVGhpcyBpcyBhIHNvbWV3aGF0IGRpZmZlcmVudCBhcHByb2FjaCB0byByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbgorY29tcGFyZWQgdG8gdGhlIGV4dHJhY3RlZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgYHJlcXVlc3QKKzxjbGFzcy13ZWJvYi5SZXF1ZXN0Lmh0bWw+YF8gYW5kIGByZXNwb25zZQorPGNsYXNzLXdlYm9iLlJlc3BvbnNlLmh0bWw+YF8uCisKK1JlcXVlc3QKKz09PT09PT0KKworVGhlIHByaW1hcnkgb2JqZWN0IGluIFdlYk9iIGlzIGBgd2Vib2IuUmVxdWVzdGBgLCBhIHdyYXBwZXIgYXJvdW5kIGEKK2BXU0dJIGVudmlyb25tZW50IDxodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzMzMvPmBfLgorCitUaGUgYmFzaWMgd2F5IHlvdSBjcmVhdGUgYSByZXF1ZXN0IG9iamVjdCBpcyBzaW1wbGUgZW5vdWdoOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgID4+PiBmcm9tIHdlYm9iIGltcG9ydCBSZXF1ZXN0CisgICA+Pj4gZW52aXJvbiA9IHsnd3NnaS51cmxfc2NoZW1lJzogJ2h0dHAnLCAuLi59ICAjZG9jdGVzdDogK1NLSVAKKyAgID4+PiByZXEgPSBSZXF1ZXN0KGVudmlyb24pICAgICAgICAgICAgICAgICAgICAgICNkb2N0ZXN0OiArU0tJUAorCisoTm90ZSB0aGF0IHRoZSBXU0dJIGVudmlyb25tZW50IGlzIGEgZGljdGlvbmFyeSB3aXRoIGEgZG96ZW4gcmVxdWlyZWQKK2tleXMsIHNvIGl0J3MgYSBiaXQgbGVuZ3RobHkgdG8gc2hvdyBhIGNvbXBsZXRlIGV4YW1wbGUgb2Ygd2hhdCBpdAord291bGQgbG9vayBsaWtlIC0tIHVzdWFsbHkgeW91ciBXU0dJIHNlcnZlciB3aWxsIGNyZWF0ZSBpdC4pCisKK1RoZSByZXF1ZXN0IG9iamVjdCAqd3JhcHMqIHRoZSBlbnZpcm9ubWVudDsgaXQgaGFzIHZlcnkgbGl0dGxlCitpbnRlcm5hbCBzdGF0ZSBvZiBpdHMgb3duLiAgSW5zdGVhZCBhdHRyaWJ1dGVzIHlvdSBhY2Nlc3MgcmVhZCBhbmQKK3dyaXRlIHRvIHRoZSBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5LgorCitZb3UgZG9uJ3QgaGF2ZSB0byB1bmRlcnN0YW5kIHRoZSBkZXRhaWxzIG9mIFdTR0kgdG8gdXNlIHRoaXMgbGlicmFyeTsKK3RoaXMgbGlicmFyeSBoYW5kbGVzIHRob3NlIGRldGFpbHMgZm9yIHlvdS4gIFlvdSBhbHNvIGRvbid0IGhhdmUgdG8KK3VzZSB0aGlzIGV4Y2x1c2l2ZWx5IG9mIG90aGVyIGxpYnJhcmllcy4gIElmIHRob3NlIG90aGVyIGxpYnJhcmllcworYWxzbyBrZWVwIHRoZWlyIHN0YXRlIGluIHRoZSBlbnZpcm9ubWVudCwgbXVsdGlwbGUgd3JhcHBlcnMgY2FuCitjb2V4aXN0LiAgRXhhbXBsZXMgb2YgbGlicmFyaWVzIHRoYXQgY2FuIGNvZXhpc3QgaW5jbHVkZQorYHBhc3RlLndzZ2l3cmFwcGVycy5SZXF1ZXN0Cis8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy9jbGFzcy1wYXN0ZS53c2dpd3JhcHBlcnMuV1NHSVJlcXVlc3QuaHRtbD5gXworKHVzZWQgYnkgUHlsb25zKSBhbmQgYHlhcm8uUmVxdWVzdAorPGh0dHA6Ly9sdWtlYXJuby5jb20vcHJvamVjdHMveWFyby8+YF8uCisKK1RoZSBXU0dJIGVudmlyb25tZW50IGhhcyBhIG51bWJlciBvZiByZXF1aXJlZCB2YXJpYWJsZXMuICBUbyBtYWtlIGl0CitlYXNpZXIgdG8gdGVzdCBhbmQgcGxheSBhcm91bmQgd2l0aCwgdGhlIGBgUmVxdWVzdGBgIGNsYXNzIGhhcyBhCitjb25zdHJ1Y3RvciB0aGF0IHdpbGwgZmlsbCBpbiBhIG1pbmltYWwgZW52aXJvbm1lbnQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgPj4+IHJlcSA9IFJlcXVlc3QuYmxhbmsoJy9hcnRpY2xlP2lkPTEnKQorICAgPj4+IGZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKKyAgID4+PiBwcHJpbnQocmVxLmVudmlyb24pCisgICB7J0hUVFBfSE9TVCc6ICdsb2NhbGhvc3Q6ODAnLAorICAgICdQQVRIX0lORk8nOiAnL2FydGljbGUnLAorICAgICdRVUVSWV9TVFJJTkcnOiAnaWQ9MScsCisgICAgJ1JFUVVFU1RfTUVUSE9EJzogJ0dFVCcsCisgICAgJ1NDUklQVF9OQU1FJzogJycsCisgICAgJ1NFUlZFUl9OQU1FJzogJ2xvY2FsaG9zdCcsCisgICAgJ1NFUlZFUl9QT1JUJzogJzgwJywKKyAgICAnU0VSVkVSX1BST1RPQ09MJzogJ0hUVFAvMS4wJywKKyAgICAnd3NnaS5lcnJvcnMnOiA8b3BlbiBmaWxlICc8c3RkZXJyPicsIG1vZGUgJ3cnIGF0IC4uLj4sCisgICAgJ3dzZ2kuaW5wdXQnOiA8Li4uSU8uLi4gb2JqZWN0IGF0IC4uLj4sCisgICAgJ3dzZ2kubXVsdGlwcm9jZXNzJzogRmFsc2UsCisgICAgJ3dzZ2kubXVsdGl0aHJlYWQnOiBGYWxzZSwKKyAgICAnd3NnaS5ydW5fb25jZSc6IEZhbHNlLAorICAgICd3c2dpLnVybF9zY2hlbWUnOiAnaHR0cCcsCisgICAgJ3dzZ2kudmVyc2lvbic6ICgxLCAwKX0KKworUmVxdWVzdCBCb2R5CistLS0tLS0tLS0tLS0KKworYGByZXEuYm9keWBgIGlzIGEgZmlsZS1saWtlIG9iamVjdCB0aGF0IGdpdmVzIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0CisoZS5nLiwgYSBQT1NUIGZvcm0sIHRoZSBib2R5IG9mIGEgUFVULCBldGMpLiAgSXQncyBraW5kIG9mIGJvcmluZyB0bworc3RhcnQsIGJ1dCB5b3UgY2FuIHNldCBpdCB0byBhIHN0cmluZyBhbmQgdGhhdCB3aWxsIGJlIHR1cm5lZCBpbnRvIGEKK2ZpbGUtbGlrZSBvYmplY3QuICBZb3UgY2FuIHJlYWQgdGhlIGVudGlyZSBib2R5IHdpdGgKK2BgcmVxLmJvZHlgYC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IGhhc2F0dHIocmVxLmJvZHlfZmlsZSwgJ3JlYWQnKQorICAgIFRydWUKKyAgICA+Pj4gcmVxLmJvZHkKKyAgICAnJworICAgID4+PiByZXEubWV0aG9kID0gJ1BVVCcKKyAgICA+Pj4gcmVxLmJvZHkgPSAndGVzdCcKKyAgICA+Pj4gaGFzYXR0cihyZXEuYm9keV9maWxlLCAncmVhZCcpCisgICAgVHJ1ZQorICAgID4+PiByZXEuYm9keQorICAgICd0ZXN0JworCitNZXRob2QgJiBVUkwKKy0tLS0tLS0tLS0tLQorCitBbGwgdGhlIG5vcm1hbCBwYXJ0cyBvZiBhIHJlcXVlc3QgYXJlIGFsc28gYWNjZXNzaWJsZSB0aHJvdWdoIHRoZQorcmVxdWVzdCBvYmplY3Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiByZXEubWV0aG9kCisgICAgJ1BVVCcKKyAgICA+Pj4gcmVxLnNjaGVtZQorICAgICdodHRwJworICAgID4+PiByZXEuc2NyaXB0X25hbWUgICMgVGhlIGJhc2Ugb2YgdGhlIFVSTAorICAgICcnCisgICAgPj4+IHJlcS5zY3JpcHRfbmFtZSA9ICcvYmxvZycgIyBtYWtlIGl0IG1vcmUgaW50ZXJlc3RpbmcKKyAgICA+Pj4gcmVxLnBhdGhfaW5mbyAgICAjIFRoZSB5ZXQtdG8tYmUtY29uc3VtZWQgcGFydCBvZiB0aGUgVVJMCisgICAgJy9hcnRpY2xlJworICAgID4+PiByZXEuY29udGVudF90eXBlICMgQ29udGVudC1UeXBlIG9mIHRoZSByZXF1ZXN0IGJvZHkKKyAgICAnJworICAgID4+PiBwcmludCByZXEucmVtb3RlX3VzZXIgICMgVGhlIGF1dGhlbnRpY2F0ZWQgdXNlciAodGhlcmUgaXMgbm9uZSBzZXQpCisgICAgTm9uZQorICAgID4+PiBwcmludCByZXEucmVtb3RlX2FkZHIgICMgVGhlIHJlbW90ZSBJUAorICAgIE5vbmUKKyAgICA+Pj4gcmVxLmhvc3QKKyAgICAnbG9jYWxob3N0OjgwJworICAgID4+PiByZXEuaG9zdF91cmwKKyAgICAnaHR0cDovL2xvY2FsaG9zdCcKKyAgICA+Pj4gcmVxLmFwcGxpY2F0aW9uX3VybAorICAgICdodHRwOi8vbG9jYWxob3N0L2Jsb2cnCisgICAgPj4+IHJlcS5wYXRoX3VybAorICAgICdodHRwOi8vbG9jYWxob3N0L2Jsb2cvYXJ0aWNsZScKKyAgICA+Pj4gcmVxLnVybAorICAgICdodHRwOi8vbG9jYWxob3N0L2Jsb2cvYXJ0aWNsZT9pZD0xJworICAgID4+PiByZXEucGF0aAorICAgICcvYmxvZy9hcnRpY2xlJworICAgID4+PiByZXEucGF0aF9xcworICAgICcvYmxvZy9hcnRpY2xlP2lkPTEnCisgICAgPj4+IHJlcS5xdWVyeV9zdHJpbmcKKyAgICAnaWQ9MScKKworWW91IGNhbiBtYWtlIG5ldyBVUkxzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVxLnJlbGF0aXZlX3VybCgnYXJjaGl2ZScpCisgICAgJ2h0dHA6Ly9sb2NhbGhvc3QvYmxvZy9hcmNoaXZlJworCitGb3IgcGFyc2luZyB0aGUgVVJMcywgaXQgaXMgb2Z0ZW4gdXNlZnVsIHRvIGRlYWwgd2l0aCBqdXN0IHRoZSBuZXh0CitwYXRoIHNlZ21lbnQgb24gUEFUSF9JTkZPOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVxLnBhdGhfaW5mb19wZWVrKCkgIyBEb2Vzbid0IGNoYW5nZSByZXF1ZXN0CisgICAgJ2FydGljbGUnCisgICAgPj4+IHJlcS5wYXRoX2luZm9fcG9wKCkgICMgRG9lcyBjaGFuZ2UgcmVxdWVzdCEKKyAgICAnYXJ0aWNsZScKKyAgICA+Pj4gcmVxLnNjcmlwdF9uYW1lCisgICAgJy9ibG9nL2FydGljbGUnCisgICAgPj4+IHJlcS5wYXRoX2luZm8KKyAgICAnJworCitIZWFkZXJzCistLS0tLS0tCisKK0FsbCByZXF1ZXN0IGhlYWRlcnMgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIGEgZGljdGlvbmFyeS1saWtlIG9iamVjdAorYGByZXEuaGVhZGVyc2BgLiAgS2V5cyBhcmUgY2FzZS1pbnNlbnNpdGl2ZS4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi94LXd3dy11cmxlbmNvZGVkJworICAgID4+PiBzb3J0ZWQocmVxLmhlYWRlcnMuaXRlbXMoKSkKKyAgICBbKCdDb250ZW50LUxlbmd0aCcsICc0JyksICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LXVybGVuY29kZWQnKSwgKCdIb3N0JywgJ2xvY2FsaG9zdDo4MCcpXQorICAgID4+PiByZXEuZW52aXJvblsnQ09OVEVOVF9UWVBFJ10KKyAgICAnYXBwbGljYXRpb24veC13d3ctdXJsZW5jb2RlZCcKKworUXVlcnkgJiBQT1NUIHZhcmlhYmxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZXF1ZXN0cyBjYW4gaGF2ZSB2YXJpYWJsZXMgaW4gb25lIG9mIHR3byBsb2NhdGlvbnM6IHRoZSBxdWVyeSBzdHJpbmcKKyhgYD9pZD0xYGApLCBvciBpbiB0aGUgYm9keSBvZiB0aGUgcmVxdWVzdCAoZ2VuZXJhbGx5IGEgUE9TVCBmb3JtKS4KK05vdGUgdGhhdCBldmVuIFBPU1QgcmVxdWVzdHMgY2FuIGhhdmUgYSBxdWVyeSBzdHJpbmcsIHNvIGJvdGgga2luZHMgb2YKK3ZhcmlhYmxlcyBjYW4gZXhpc3QgYXQgdGhlIHNhbWUgdGltZS4gIEFsc28sIGEgdmFyaWFibGUgY2FuIHNob3cgdXAKK21vcmUgdGhhbiBvbmNlLCBhcyBpbiBgYD9jaGVjaz1hJmNoZWNrPWJgYC4KKworRm9yIHRoZXNlIHZhcmlhYmxlcyBXZWJPYiB1c2VzIGEgYE11bHRpRGljdAorPGNsYXNzLXdlYm9iLm11bHRpZGljdC5NdWx0aURpY3QuaHRtbD5gXywgd2hpY2ggaXMgYmFzaWNhbGx5IGEKK2RpY3Rpb25hcnkgd3JhcHBlciBvbiBhIGxpc3Qgb2Yga2V5L3ZhbHVlIHBhaXJzLiAgSXQgbG9va3MgbGlrZSBhCitzaW5nbGUtdmFsdWVkIGRpY3Rpb25hcnksIGJ1dCB5b3UgY2FuIGFjY2VzcyBhbGwgdGhlIHZhbHVlcyBvZiBhIGtleQord2l0aCBgYC5nZXRhbGwoa2V5KWBgICh3aGljaCBhbHdheXMgcmV0dXJucyBhIGxpc3QsIHBvc3NpYmx5IGFuIGVtcHR5CitsaXN0KS4gIFlvdSBhbHNvIGdldCBhbGwga2V5L3ZhbHVlIHBhaXJzIHdoZW4gdXNpbmcgYGAuaXRlbXMoKWBgIGFuZAorYWxsIHZhbHVlcyB3aXRoIGBgLnZhbHVlcygpYGAuCisKK1NvbWUgZXhhbXBsZXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvdGVzdD9jaGVjaz1hJmNoZWNrPWImbmFtZT1Cb2InKQorICAgID4+PiByZXEuR0VUCisgICAgTXVsdGlEaWN0KFsodSdjaGVjaycsIHUnYScpLCAodSdjaGVjaycsIHUnYicpLCAodSduYW1lJywgdSdCb2InKV0pCisgICAgPj4+IHJlcS5HRVRbJ2NoZWNrJ10KKyAgICB1J2InCisgICAgPj4+IHJlcS5HRVQuZ2V0YWxsKCdjaGVjaycpCisgICAgW3UnYScsIHUnYiddCisgICAgPj4+IHJlcS5HRVQuaXRlbXMoKQorICAgIFsodSdjaGVjaycsIHUnYScpLCAodSdjaGVjaycsIHUnYicpLCAodSduYW1lJywgdSdCb2InKV0KKworV2UnbGwgaGF2ZSB0byBjcmVhdGUgYSByZXF1ZXN0IGJvZHkgYW5kIGNoYW5nZSB0aGUgbWV0aG9kIHRvIGdldAorUE9TVC4gIFVudGlsIHdlIGRvIHRoYXQsIHRoZSB2YXJpYWJsZXMgYXJlIGJvcmluZzoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5QT1NUCisgICAgPE5vVmFyczogTm90IGEgZm9ybSByZXF1ZXN0PgorICAgID4+PiByZXEuUE9TVC5pdGVtcygpICAjIE5vVmFycyBjYW4gYmUgcmVhZCBsaWtlIGEgZGljdCwgYnV0IG5vdCB3cml0dGVuCisgICAgW10KKyAgICA+Pj4gcmVxLm1ldGhvZCA9ICdQT1NUJworICAgID4+PiByZXEuYm9keSA9ICduYW1lPUpvZSZlbWFpbD1qb2VAZXhhbXBsZS5jb20nCisgICAgPj4+IHJlcS5QT1NUCisgICAgTXVsdGlEaWN0KFsodSduYW1lJywgdSdKb2UnKSwgKHUnZW1haWwnLCB1J2pvZUBleGFtcGxlLmNvbScpXSkKKyAgICA+Pj4gcmVxLlBPU1RbJ25hbWUnXQorICAgIHUnSm9lJworCitPZnRlbiB5b3Ugd29uJ3QgY2FyZSB3aGVyZSB0aGUgdmFyaWFibGVzIGNvbWUgZnJvbS4gIChFdmVuIGlmIHlvdSBjYXJlCithYm91dCB0aGUgbWV0aG9kLCB0aGUgbG9jYXRpb24gb2YgdGhlIHZhcmlhYmxlcyBtaWdodCBub3QgYmUKK2ltcG9ydGFudC4pICBUaGVyZSBpcyBhIGRpY3Rpb25hcnkgY2FsbGVkIGBgcmVxLnBhcmFtc2BgIHRoYXQKK2NvbnRhaW5zIHZhcmlhYmxlcyBmcm9tIGJvdGggc291cmNlczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5wYXJhbXMKKyAgICBOZXN0ZWRNdWx0aURpY3QoWyh1J2NoZWNrJywgdSdhJyksICh1J2NoZWNrJywgdSdiJyksICh1J25hbWUnLCB1J0JvYicpLCAodSduYW1lJywgdSdKb2UnKSwgKHUnZW1haWwnLCB1J2pvZUBleGFtcGxlLmNvbScpXSkKKyAgICA+Pj4gcmVxLnBhcmFtc1snbmFtZSddCisgICAgdSdCb2InCisgICAgPj4+IHJlcS5wYXJhbXMuZ2V0YWxsKCduYW1lJykKKyAgICBbdSdCb2InLCB1J0pvZSddCisgICAgPj4+IGZvciBuYW1lLCB2YWx1ZSBpbiByZXEucGFyYW1zLml0ZW1zKCk6CisgICAgLi4uICAgICBwcmludCAnJXM6ICVyJyAlIChuYW1lLCB2YWx1ZSkKKyAgICBjaGVjazogdSdhJworICAgIGNoZWNrOiB1J2InCisgICAgbmFtZTogdSdCb2InCisgICAgbmFtZTogdSdKb2UnCisgICAgZW1haWw6IHUnam9lQGV4YW1wbGUuY29tJworCitUaGUgYGBQT1NUYGAgYW5kIGBgR0VUYGAgbm9tZW5jbGF0dXJlIGlzIGhpc3RvcmljYWwgLS0gYGByZXEuR0VUYGAgY2FuCitiZSB1c2VkIGZvciBub24tR0VUIHJlcXVlc3RzIHRvIGFjY2VzcyBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQKK2BgcmVxLlBPU1RgYCBjYW4gYWxzbyBiZSB1c2VkIGZvciBQVVQgcmVxdWVzdHMgd2l0aCB0aGUgYXBwcm9wcmlhdGUKK0NvbnRlbnQtVHlwZS4KKworICAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvdGVzdD9jaGVjaz1hJmNoZWNrPWImbmFtZT1Cb2InKQorICAgID4+PiByZXEubWV0aG9kID0gJ1BVVCcKKyAgICA+Pj4gcmVxLmJvZHkgPSBib2R5ID0gJ3ZhcjE9dmFsdWUxJnZhcjI9dmFsdWUyJnJlcD0xJnJlcD0yJworICAgID4+PiByZXEuZW52aXJvblsnQ09OVEVOVF9MRU5HVEgnXSA9IHN0cihsZW4ocmVxLmJvZHkpKQorICAgID4+PiByZXEuZW52aXJvblsnQ09OVEVOVF9UWVBFJ10gPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJworICAgID4+PiByZXEuR0VUCisgICAgTXVsdGlEaWN0KFsodSdjaGVjaycsIHUnYScpLCAodSdjaGVjaycsIHUnYicpLCAodSduYW1lJywgdSdCb2InKV0pCisgICAgPj4+IHJlcS5QT1NUCisgICAgTXVsdGlEaWN0KFsodSd2YXIxJywgdSd2YWx1ZTEnKSwgKHUndmFyMicsIHUndmFsdWUyJyksICh1J3JlcCcsIHUnMScpLCAodSdyZXAnLCB1JzInKV0pCisKK1VuaWNvZGUgVmFyaWFibGVzCit+fn5+fn5+fn5+fn5+fn5+fgorCitTdWJtaXNzaW9ucyBhcmUgbm9uLXVuaWNvZGUgKGBgc3RyYGApIHN0cmluZ3MsIHVubGVzcyBzb21lIGNoYXJhY3Rlcgorc2V0IGlzIGluZGljYXRlZC4gIEEgY2xpZW50IGNhbiBpbmRpY2F0ZSB0aGUgY2hhcmFjdGVyIHNldCB3aXRoCitgYENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PXV0ZjhgYCwgYnV0Cit2ZXJ5IGZldyBjbGllbnRzIGFjdHVhbGx5IGRvIHRoaXMgKHNvbWV0aW1lcyBYTUxIdHRwUmVxdWVzdCByZXF1ZXN0cword2lsbCBkbyB0aGlzLCBhcyBKU09OIGlzIGFsd2F5cyBVVEY4IGV2ZW4gd2hlbiBhIHBhZ2UgaXMgc2VydmVkIHdpdGggYQorZGlmZmVyZW50IGNoYXJhY3RlciBzZXQpLiAgWW91IGNhbiBmb3JjZSBhIGNoYXJzZXQsIHdoaWNoIHdpbGwgYWZmZWN0CithbGwgdGhlIHZhcmlhYmxlczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5jaGFyc2V0ID0gJ3V0ZjgnCisgICAgPj4+IHJlcS5HRVQKKyAgICBNdWx0aURpY3QoWyh1J2NoZWNrJywgdSdhJyksICh1J2NoZWNrJywgdSdiJyksICh1J25hbWUnLCB1J0JvYicpXSkKKworQ29va2llcworLS0tLS0tLQorCitDb29raWVzIGFyZSBwcmVzZW50ZWQgaW4gYSBzaW1wbGUgZGljdGlvbmFyeS4gIExpa2Ugb3RoZXIgdmFyaWFibGVzLAordGhleSB3aWxsIGJlIGRlY29kZWQgaW50byBVbmljb2RlIHN0cmluZ3MgaWYgeW91IHNldCB0aGUgY2hhcnNldC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5oZWFkZXJzWydDb29raWUnXSA9ICd0ZXN0PXZhbHVlJworICAgID4+PiByZXEuY29va2llcworICAgIE11bHRpRGljdChbKHUndGVzdCcsIHUndmFsdWUnKV0pCisKK01vZGlmeWluZyB0aGUgcmVxdWVzdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBoZWFkZXJzIGFyZSBhbGwgbW9kaWZpYWJsZSwgYXMgYXJlIG90aGVyIGVudmlyb25tZW50YWwgdmFyaWFibGVzCisobGlrZSBgYHJlcS5yZW1vdGVfdXNlcmBgLCB3aGljaCBtYXBzIHRvCitgYHJlcXVlc3QuZW52aXJvblsnUkVNT1RFX1VTRVInXWBgKS4KKworSWYgeW91IHdhbnQgdG8gY29weSB0aGUgcmVxdWVzdCB5b3UgY2FuIHVzZSBgYHJlcS5jb3B5KClgYDsgdGhpcworY29waWVzIHRoZSBgYGVudmlyb25gYCBkaWN0aW9uYXJ5LCBhbmQgdGhlIHJlcXVlc3QgYm9keSBmcm9tCitgYGVudmlyb25bJ3dzZ2kuaW5wdXQnXWBgLgorCitUaGUgbWV0aG9kIGBgcmVxLnJlbW92ZV9jb25kaXRpb25hbF9oZWFkZXJzKHJlbW92ZV9lbmNvZGluZz1UcnVlKWBgCitjYW4gYmUgdXNlZCB0byByZW1vdmUgaGVhZGVycyB0aGF0IG1pZ2h0IHJlc3VsdCBpbiBhIGBgMzA0IE5vdAorTW9kaWZpZWRgYCByZXNwb25zZS4gIElmIHlvdSBhcmUgd3JpdGluZyBzb21lIGludGVybWVkaWFyeSBpdCBjYW4gYmUKK3VzZWZ1bCB0byBhdm9pZCB0aGVzZSBoZWFkZXJzLiAgQWxzbyBpZiBgYHJlbW92ZV9lbmNvZGluZ2BgIGlzIHRydWUKKyh0aGUgZGVmYXVsdCkgdGhlbiBhbnkgYGBBY2NlcHQtRW5jb2RpbmdgYCBoZWFkZXIgd2lsbCBiZSByZW1vdmVkLAord2hpY2ggY2FuIHJlc3VsdCBpbiBnemlwcGVkIHJlc3BvbnNlcy4KKworSGVhZGVyIEdldHRlcnMKKy0tLS0tLS0tLS0tLS0tCisKK0luIGFkZGl0aW9uIHRvIGBgcmVxLmhlYWRlcnNgYCwgdGhlcmUgYXJlIGF0dHJpYnV0ZXMgZm9yIG1vc3Qgb2YgdGhlCityZXF1ZXN0IGhlYWRlcnMgZGVmaW5lZCBieSB0aGUgSFRUUCAxLjEgc3BlY2lmaWNhdGlvbi4gIFRoZXNlCithdHRyaWJ1dGVzIG9mdGVuIHJldHVybiBwYXJzZWQgZm9ybXMgb2YgdGhlIGhlYWRlcnMuCisKK0FjY2VwdC0qIGhlYWRlcnMKK35+fn5+fn5+fn5+fn5+fn4KKworVGhlcmUgYXJlIHNldmVyYWwgcmVxdWVzdCBoZWFkZXJzIHRoYXQgdGVsbCB0aGUgc2VydmVyIHdoYXQgdGhlIGNsaWVudAorYWNjZXB0cy4gIFRoZXNlIGFyZSBgYGFjY2VwdGBgICh0aGUgQ29udGVudC1UeXBlIHRoYXQgaXMgYWNjZXB0ZWQpLAorYGBhY2NlcHRfY2hhcnNldGBgICh0aGUgY2hhcnNldCBhY2NlcHRlZCksIGBgYWNjZXB0X2VuY29kaW5nYGAKKyh0aGUgQ29udGVudC1FbmNvZGluZywgbGlrZSBnemlwLCB0aGF0IGlzIGFjY2VwdGVkKSwgYW5kCitgYGFjY2VwdF9sYW5ndWFnZWBgIChnZW5lcmFsbHkgdGhlIHByZWZlcnJlZCBsYW5ndWFnZSBvZiB0aGUgY2xpZW50KS4KKworVGhlIG9iamVjdHMgcmV0dXJuZWQgc3VwcG9ydCBjb250YWlubWVudCB0byB0ZXN0IGZvciBhY2NlcHRhYmlsaXR5LgorRS5nLjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+ICd0ZXh0L2h0bWwnIGluIHJlcS5hY2NlcHQKKyAgICBUcnVlCisKK0JlY2F1c2Ugbm8gaGVhZGVyIG1lYW5zIGFueXRoaW5nIGlzIHBvdGVudGlhbGx5IGFjY2VwdGFibGUsIHRoaXMgaXMKK3JldHVybmluZyBUcnVlLiAgV2UgY2FuIHNldCBpdCB0byBzZWUgbW9yZSBpbnRlcmVzdGluZyBiZWhhdmlvciAodGhlCitleGFtcGxlIG1lYW5zIHRoYXQgYGB0ZXh0L2h0bWxgYCBpcyBva2F5LCBidXQKK2BgYXBwbGljYXRpb24veGh0bWwreG1sYGAgaXMgcHJlZmVycmVkKToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5hY2NlcHQgPSAndGV4dC9odG1sO3E9MC41LCBhcHBsaWNhdGlvbi94aHRtbCt4bWw7cT0xJworICAgID4+PiByZXEuYWNjZXB0CisgICAgPE1JTUVBY2NlcHQoJ3RleHQvaHRtbDtxPTAuNSwgYXBwbGljYXRpb24veGh0bWwreG1sJyk+CisgICAgPj4+ICd0ZXh0L2h0bWwnIGluIHJlcS5hY2NlcHQKKyAgICBUcnVlCisKK1RoZXJlIGFyZSBhIGZldyBtZXRob2RzIGZvciBkaWZmZXJlbnQgc3RyYXRlZ2llcyBvZiBmaW5kaW5nIGEgbWF0Y2guCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiByZXEuYWNjZXB0LmJlc3RfbWF0Y2goWyd0ZXh0L2h0bWwnLCAnYXBwbGljYXRpb24veGh0bWwreG1sJ10pCisgICAgJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcKKworSWYgd2UganVzdCB3YW50IHRvIGtub3cgZXZlcnl0aGluZyB0aGUgY2xpZW50IHByZWZlcnMsIGluIHRoZSBvcmRlciBpdAoraXMgcHJlZmVycmVkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gbGlzdChyZXEuYWNjZXB0KQorICAgIFsnYXBwbGljYXRpb24veGh0bWwreG1sJywgJ3RleHQvaHRtbCddCisKK0ZvciBsYW5ndWFnZXMgeW91J2xsIG9mdGVuIGhhdmUgYSAiZmFsbGJhY2siIGxhbmd1YWdlLiAgRS5nLiwgaWYgdGhlcmUncworbm90aGluZyBiZXR0ZXIgdGhlbiB1c2UgYGBlbi1VU2BgIChhbmQgaWYgYGBlbi1VU2BgIGlzIG9rYXksIGlnbm9yZQorYW55IGxlc3MgcHJlZmVycmFibGUgbGFuZ3VhZ2VzKToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5hY2NlcHRfbGFuZ3VhZ2UgPSAnZXMsIHB0LUJSJworICAgID4+PiByZXEuYWNjZXB0X2xhbmd1YWdlLmJlc3RfbWF0Y2goWydlbi1HQicsICdlbi1VUyddLCBkZWZhdWx0X21hdGNoPSdlbi1VUycpCisgICAgJ2VuLVVTJworICAgID4+PiByZXEuYWNjZXB0X2xhbmd1YWdlLmJlc3RfbWF0Y2goWydlcycsICdlbi1VUyddLCBkZWZhdWx0X21hdGNoPSdlbi1VUycpCisgICAgJ2VzJworCitZb3VyIGZhbGxiYWNrIGxhbmd1YWdlIG11c3QgYXBwZWFyIGJvdGggaW4gdGhlIGBgb2ZmZXJzYGAgYW5kIGFzIHRoZQorYGBkZWZhdWx0X21hdGNoYGAgdG8gaW5zdXJlIHRoYXQgaXQgaXMgcmV0dXJuZWQgYXMgYSBiZXN0IG1hdGNoIGlmIHRoZQorY2xpZW50IHNwZWNpZmllZCBhIHByZWZlcmVuY2UgZm9yIGl0LgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVxLmFjY2VwdF9sYW5ndWFnZSA9ICdlbi1VUztxPTAuNSwgZW4tR0I7cT0wLjInCisgICAgPj4+IHJlcS5hY2NlcHRfbGFuZ3VhZ2UuYmVzdF9tYXRjaChbJ2VuLUdCJ10sIGRlZmF1bHRfbWF0Y2g9J2VuLVVTJykKKyAgICAnZW4tR0InCisgICAgPj4+IHJlcS5hY2NlcHRfbGFuZ3VhZ2UuYmVzdF9tYXRjaChbJ2VuLUdCJywgJ2VuLVVTJ10sIGRlZmF1bHRfbWF0Y2g9J2VuLVVTJykKKyAgICAnZW4tVVMnCisKK0NvbmRpdGlvbmFsIFJlcXVlc3RzCit+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitUaGVyZSBhIG51bWJlciBvZiB3YXlzIHRvIG1ha2UgYSBjb25kaXRpb25hbCByZXF1ZXN0LiAgQSBjb25kaXRpb25hbAorcmVxdWVzdCBpcyBtYWRlIHdoZW4gdGhlIGNsaWVudCBoYXMgYSBkb2N1bWVudCwgYnV0IGl0IGlzIG5vdCBzdXJlIGlmCit0aGUgZG9jdW1lbnQgaXMgdXAgdG8gZGF0ZS4gIElmIGl0IGlzIG5vdCwgaXQgd2FudHMgYSBuZXcgdmVyc2lvbi4gIElmCit0aGUgZG9jdW1lbnQgaXMgdXAgdG8gZGF0ZSB0aGVuIGl0IGRvZXNuJ3Qgd2FudCB0byB3YXN0ZSB0aGUKK2JhbmR3aWR0aCwgYW5kIGV4cGVjdHMgYSBgYDMwNCBOb3QgTW9kaWZpZWRgYCByZXNwb25zZS4KKworRVRhZ3MgYXJlIGdlbmVyYWxseSB0aGUgYmVzdCB0ZWNobmlxdWUgZm9yIHRoZXNlIGtpbmRzIG9mIHJlcXVlc3RzOwordGhpcyBpcyBhbiBvcGFxdWUgc3RyaW5nIHRoYXQgaW5kaWNhdGVzIHRoZSBpZGVudGl0eSBvZiB0aGUgb2JqZWN0LgorRm9yIGluc3RhbmNlLCBpdCdzIGNvbW1vbiB0byB1c2UgdGhlIG10aW1lIChsYXN0IG1vZGlmaWVkKSBvZiB0aGUgZmlsZSwKK3BsdXMgdGhlIG51bWJlciBvZiBieXRlcywgYW5kIG1heWJlIGEgaGFzaCBvZiB0aGUgZmlsZW5hbWUgKGlmIHRoZXJlJ3MKK2EgcG9zc2liaWxpdHkgdGhhdCB0aGUgc2FtZSBVUkwgY291bGQgcG9pbnQgdG8gdHdvIGRpZmZlcmVudAorc2VydmVyLXNpZGUgZmlsZW5hbWVzIGJhc2VkIG9uIG90aGVyIHZhcmlhYmxlcykuICBUbyB0ZXN0IGlmIGEgMzA0CityZXNwb25zZSBpcyBhcHByb3ByaWF0ZSwgeW91IGNhbiB1c2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBzZXJ2ZXJfdG9rZW4gPSAnb3BhcXVlLXRva2VuJworICAgID4+PiBzZXJ2ZXJfdG9rZW4gaW4gcmVxLmlmX25vbmVfbWF0Y2ggIyBZb3Ugc2hvdWxkbid0IHJldHVybiAzMDQKKyAgICBGYWxzZQorICAgID4+PiByZXEuaWZfbm9uZV9tYXRjaCA9IHNlcnZlcl90b2tlbgorICAgID4+PiByZXEuaWZfbm9uZV9tYXRjaAorICAgIDxFVGFnIG9wYXF1ZS10b2tlbj4KKyAgICA+Pj4gc2VydmVyX3Rva2VuIGluIHJlcS5pZl9ub25lX21hdGNoICMgWW91ICpzaG91bGQqIHJldHVybiAzMDQKKyAgICBUcnVlCisKK0ZvciBkYXRlLWJhc2VkIGNvbXBhcmlzb25zIElmLU1vZGlmaWVkLVNpbmNlIGlzIHVzZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBmcm9tIHdlYm9iIGltcG9ydCBVVEMKKyAgICA+Pj4gZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKKyAgICA+Pj4gcmVxLmlmX21vZGlmaWVkX3NpbmNlID0gZGF0ZXRpbWUoMjAwNiwgMSwgMSwgMTIsIDAsIHR6aW5mbz1VVEMpCisgICAgPj4+IHJlcS5oZWFkZXJzWydJZi1Nb2RpZmllZC1TaW5jZSddCisgICAgJ1N1biwgMDEgSmFuIDIwMDYgMTI6MDA6MDAgR01UJworICAgID4+PiBzZXJ2ZXJfbW9kaWZpZWQgPSBkYXRldGltZSgyMDA1LCAxLCAxLCAxMiwgMCwgdHppbmZvPVVUQykKKyAgICA+Pj4gcmVxLmlmX21vZGlmaWVkX3NpbmNlIGFuZCByZXEuaWZfbW9kaWZpZWRfc2luY2UgPj0gc2VydmVyX21vZGlmaWVkCisgICAgVHJ1ZQorCitGb3IgcmFuZ2UgcmVxdWVzdHMgdGhlcmUgYXJlIHR3byBpbXBvcnRhbnQgaGVhZGVycywgSWYtUmFuZ2UgKHdoaWNoIGlzCitmb3JtIG9mIGNvbmRpdGlvbmFsIHJlcXVlc3QpIGFuZCBSYW5nZSAod2hpY2ggcmVxdWVzdHMgYSByYW5nZSkuICBJZgordGhlIElmLVJhbmdlIGhlYWRlciBmYWlscyB0byBtYXRjaCB0aGVuIHRoZSBmdWxsIHJlc3BvbnNlIChub3QgYQorcmFuZ2UpIHNob3VsZCBiZSByZXR1cm5lZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5pZl9yYW5nZQorICAgIDxFbXB0eSBJZi1SYW5nZT4KKyAgICA+Pj4gcmVxLmlmX3JhbmdlLm1hdGNoKGV0YWc9J3NvbWUtZXRhZycsIGxhc3RfbW9kaWZpZWQ9ZGF0ZXRpbWUoMjAwNSwgMSwgMSwgMTIsIDApKQorICAgIFRydWUKKyAgICA+Pj4gcmVxLmlmX3JhbmdlID0gJ29wYXF1ZS1ldGFnJworICAgID4+PiByZXEuaWZfcmFuZ2UubWF0Y2goZXRhZz0nb3RoZXItZXRhZycpCisgICAgRmFsc2UKKyAgICA+Pj4gcmVxLmlmX3JhbmdlLm1hdGNoKGV0YWc9J29wYXF1ZS1ldGFnJykKKyAgICBUcnVlCisKK1lvdSBjYW4gYWxzbyBwYXNzIGluIGEgcmVzcG9uc2Ugb2JqZWN0IHdpdGg6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBmcm9tIHdlYm9iIGltcG9ydCBSZXNwb25zZQorICAgID4+PiByZXMgPSBSZXNwb25zZShldGFnPSdvcGFxdWUtZXRhZycpCisgICAgPj4+IHJlcS5pZl9yYW5nZS5tYXRjaF9yZXNwb25zZShyZXMpCisgICAgVHJ1ZQorCitUbyBnZXQgdGhlIHJhbmdlIGluZm9ybWF0aW9uOgorCisgICAgPj4+IHJlcS5yYW5nZSA9ICdieXRlcz0wLTEwMCcKKyAgICA+Pj4gcmVxLnJhbmdlCisgICAgPFJhbmdlIHJhbmdlcz0oMCwgMTAxKT4KKyAgICA+Pj4gY3IgPSByZXEucmFuZ2UuY29udGVudF9yYW5nZShsZW5ndGg9MTAwMCkKKyAgICA+Pj4gY3Iuc3RhcnQsIGNyLnN0b3AsIGNyLmxlbmd0aAorICAgICgwLCAxMDEsIDEwMDApCisKK05vdGUgdGhhdCB0aGUgcmFuZ2UgaGVhZGVycyB1c2UgKmluY2x1c2l2ZSogcmFuZ2VzICh0aGUgbGFzdCBieXRlCitpbmRleGVkIGlzIGluY2x1ZGVkKSwgd2hlcmUgUHl0aG9uIGFsd2F5cyB1c2VzIGEgcmFuZ2Ugd2hlcmUgdGhlIGxhc3QKK2luZGV4IGlzIGV4Y2x1ZGVkIGZyb20gdGhlIHJhbmdlLiAgVGhlIGBgLnN0b3BgYCBpbmRleCBpcyBpbiB0aGUKK1B5dGhvbiBmb3JtLgorCitBbm90aGVyIGtpbmQgb2YgY29uZGl0aW9uYWwgcmVxdWVzdCBpcyBhIHJlcXVlc3QgKHR5cGljYWxseSBQVVQpIHRoYXQKK2luY2x1ZGVzIElmLU1hdGNoIG9yIElmLVVubW9kaWZpZWQtU2luY2UuICBJbiB0aGlzIGNhc2UgeW91IGFyZSBzYXlpbmcKKyJoZXJlIGlzIGFuIHVwZGF0ZSB0byBhIHJlc291cmNlLCBidXQgZG9uJ3QgYXBwbHkgaXQgaWYgc29tZW9uZSBlbHNlCitoYXMgZG9uZSBzb21ldGhpbmcgc2luY2UgSSBsYXN0IGdvdCB0aGUgcmVzb3VyY2UiLiAgSWYtTWF0Y2ggbWVhbnMgImRvCit0aGlzIGlmIHRoZSBjdXJyZW50IEVUYWcgbWF0Y2hlcyB0aGUgRVRhZyBJJ20gZ2l2aW5nIi4KK0lmLVVubW9kaWZpZWQtU2luY2UgbWVhbnMgImRvIHRoaXMgaWYgdGhlIHJlc291cmNlIGhhcyByZW1haW5lZAordW5jaGFuZ2VkIi4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHNlcnZlcl90b2tlbiBpbiByZXEuaWZfbWF0Y2ggIyBObyBJZi1NYXRjaCBtZWFucyBldmVyeXRoaW5nIGlzIG9rCisgICAgVHJ1ZQorICAgID4+PiByZXEuaWZfbWF0Y2ggPSBzZXJ2ZXJfdG9rZW4KKyAgICA+Pj4gc2VydmVyX3Rva2VuIGluIHJlcS5pZl9tYXRjaCAjIFN0aWxsIE9LCisgICAgVHJ1ZQorICAgID4+PiByZXEuaWZfbWF0Y2ggPSAnb3RoZXItdG9rZW4nCisgICAgPj4+ICMgTm90IE9LLCBzaG91bGQgcmV0dXJuIDQxMiBQcmVjb25kaXRpb24gRmFpbGVkOgorICAgID4+PiBzZXJ2ZXJfdG9rZW4gaW4gcmVxLmlmX21hdGNoCisgICAgRmFsc2UKKworRm9yIG1vcmUgb24gdGhpcyBraW5kIG9mIGNvbmRpdGlvbmFsIHJlcXVlc3QsIHNlZSBgRGV0ZWN0aW5nIHRoZSBMb3N0CitVcGRhdGUgUHJvYmxlbSBVc2luZyBVbnJlc2VydmVkIENoZWNrb3V0Cis8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wNC9FZGl0aW5nLz5gXy4KKworQ2FsbGluZyBXU0dJIEFwcGxpY2F0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgcmVxdWVzdCBvYmplY3QgY2FuIGJlIHVzZWQgdG8gbWFrZSBoYW5keSBzdWJyZXF1ZXN0cyBvciB0ZXN0CityZXF1ZXN0cyBhZ2FpbnN0IFdTR0kgYXBwbGljYXRpb25zLiAgSWYgeW91IHdhbnQgdG8gbWFrZSBzdWJyZXF1ZXN0cywKK3lvdSBzaG91bGQgY29weSB0aGUgcmVxdWVzdCAod2l0aCBgYHJlcS5jb3B5KClgYCkgYmVmb3JlIHNlbmRpbmcgaXQgdG8KK211bHRpcGxlIGFwcGxpY2F0aW9ucywgc2luY2UgYXBwbGljYXRpb25zIG1pZ2h0IG1vZGlmeSB0aGUgcmVxdWVzdAord2hlbiB0aGV5IGFyZSBydW4uCisKK1RoZXJlJ3MgdHdvIGZvcm1zIG9mIHRoZSBzdWJyZXF1ZXN0LiAgVGhlIG1vcmUgcHJpbWl0aXZlIGZvcm0gaXMKK3RoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgICA+Pj4gZGVmIHdzZ2lfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAuLi4gICAgIHN0YXJ0X3Jlc3BvbnNlKCcyMDAgT0snLCBbKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpXSkKKyAgICAuLi4gICAgIHJldHVybiBbJ0hpISddCisgICAgPj4+IHJlcS5jYWxsX2FwcGxpY2F0aW9uKHdzZ2lfYXBwKQorICAgICgnMjAwIE9LJywgWygnQ29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKV0sIFsnSGkhJ10pCisKK05vdGUgaXQgcmV0dXJucyBgYChzdGF0dXNfc3RyaW5nLCBoZWFkZXJfbGlzdCwgYXBwX2l0ZXIpYGAuICBJZgorYGBhcHBfaXRlci5jbG9zZSgpYGAgZXhpc3RzLCBpdCBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIGNhbGwgaXQuCisKK0EgaGFuZGllciByZXNwb25zZSBjYW4gYmUgaGFkIHdpdGg6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiByZXMgPSByZXEuZ2V0X3Jlc3BvbnNlKHdzZ2lfYXBwKQorICAgID4+PiByZXMKKyAgICA8UmVzcG9uc2UgLi4uIDIwMCBPSz4KKyAgICA+Pj4gcmVzLnN0YXR1cworICAgICcyMDAgT0snCisgICAgPj4+IHJlcy5oZWFkZXJzCisgICAgUmVzcG9uc2VIZWFkZXJzKFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L3BsYWluJyldKQorICAgID4+PiByZXMuYm9keQorICAgICdIaSEnCisKK1lvdSBjYW4gbGVhcm4gbW9yZSBhYm91dCB0aGlzIHJlc3BvbnNlIG9iamVjdCBpbiB0aGUgUmVzcG9uc2VfIHNlY3Rpb24uCisKK0FkLUhvYyBBdHRyaWJ1dGVzCistLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGFzc2lnbiBhdHRyaWJ1dGVzIHRvIHlvdXIgcmVxdWVzdCBvYmplY3RzLiAgVGhleSB3aWxsIGFsbCBnbworaW4gYGBlbnZpcm9uWyd3ZWJvYi5hZGhvY19hdHRycyddYGAgKGEgZGljdGlvbmFyeSkuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgICA+Pj4gcmVxLnNvbWVfYXR0ciA9ICdibGFoIGJsYWggYmxhaCcKKyAgICA+Pj4gbmV3X3JlcSA9IFJlcXVlc3QocmVxLmVudmlyb24pCisgICAgPj4+IG5ld19yZXEuc29tZV9hdHRyCisgICAgJ2JsYWggYmxhaCBibGFoJworICAgID4+PiByZXEuZW52aXJvblsnd2Vib2IuYWRob2NfYXR0cnMnXQorICAgIHsnc29tZV9hdHRyJzogJ2JsYWggYmxhaCBibGFoJ30KKworUmVzcG9uc2UKKz09PT09PT09CisKK1RoZSBgYHdlYm9iLlJlc3BvbnNlYGAgb2JqZWN0IGNvbnRhaW5zIGV2ZXJ5dGhpbmcgbmVjZXNzYXJ5IHRvIG1ha2UgYQorV1NHSSByZXNwb25zZS4gIEluc3RhbmNlcyBvZiBpdCBhcmUgaW4gZmFjdCBXU0dJIGFwcGxpY2F0aW9ucywgYnV0IGl0CitjYW4gYWxzbyByZXByZXNlbnQgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIGEgV1NHSSBhcHBsaWNhdGlvbiAoYXMgbm90ZWQKK2luIGBDYWxsaW5nIFdTR0kgQXBwbGljYXRpb25zYF8pLiAgSXQgY2FuIGFsc28gYmUgYSB3YXkgb2YKK2FjY3VtdWxhdGluZyBhIHJlc3BvbnNlIGluIHlvdXIgV1NHSSBhcHBsaWNhdGlvbi4KKworQSBXU0dJIHJlc3BvbnNlIGlzIG1hZGUgdXAgb2YgYSBzdGF0dXMgKGxpa2UgYGAyMDAgT0tgYCksIGEgbGlzdCBvZgoraGVhZGVycywgYW5kIGEgYm9keSAob3IgaXRlcmF0b3IgdGhhdCB3aWxsIHByb2R1Y2UgYSBib2R5KS4KKworQ29yZSBBdHRyaWJ1dGVzCistLS0tLS0tLS0tLS0tLS0KKworVGhlIGNvcmUgYXR0cmlidXRlcyBhcmUgdW5zdXJwcmlzaW5nOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gZnJvbSB3ZWJvYiBpbXBvcnQgUmVzcG9uc2UKKyAgICA+Pj4gcmVzID0gUmVzcG9uc2UoKQorICAgID4+PiByZXMuc3RhdHVzCisgICAgJzIwMCBPSycKKyAgICA+Pj4gcmVzLmhlYWRlcmxpc3QKKyAgICBbKCdDb250ZW50LVR5cGUnLCAndGV4dC9odG1sOyBjaGFyc2V0PVVURi04JyksICgnQ29udGVudC1MZW5ndGgnLCAnMCcpXQorICAgID4+PiByZXMuYm9keQorICAgICcnCisKK1lvdSBjYW4gc2V0IGFueSBvZiB0aGVzZSBhdHRyaWJ1dGVzLCBlLmcuOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVzLnN0YXR1cyA9IDQwNAorICAgID4+PiByZXMuc3RhdHVzCisgICAgJzQwNCBOb3QgRm91bmQnCisgICAgPj4+IHJlcy5zdGF0dXNfY29kZQorICAgIDQwNAorICAgID4+PiByZXMuaGVhZGVybGlzdCA9IFsoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKV0KKyAgICA+Pj4gcmVzLmJvZHkgPSAndGVzdCcKKyAgICA+Pj4gcHJpbnQgcmVzCisgICAgNDA0IE5vdCBGb3VuZAorICAgIENvbnRlbnQtdHlwZTogdGV4dC9odG1sCisgICAgQ29udGVudC1MZW5ndGg6IDQKKyAgICA8QkxBTktMSU5FPgorICAgIHRlc3QKKyAgICA+Pj4gcmVzLmJvZHkgPSB1InRlc3QiCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBUeXBlRXJyb3I6IFlvdSBjYW5ub3Qgc2V0IFJlc3BvbnNlLmJvZHkgdG8gYSB1bmljb2RlIG9iamVjdCAodXNlIFJlc3BvbnNlLnRleHQpCisgICAgPj4+IHJlcy50ZXh0ID0gdSJ0ZXN0IgorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAgQXR0cmlidXRlRXJyb3I6IFlvdSBjYW5ub3QgYWNjZXNzIFJlc3BvbnNlLnRleHQgdW5sZXNzIGNoYXJzZXQgaXMgc2V0CisgICAgPj4+IHJlcy5jaGFyc2V0ID0gJ3V0ZjgnCisgICAgPj4+IHJlcy50ZXh0ID0gdSJ0ZXN0IgorICAgID4+PiByZXMuYm9keQorICAgICd0ZXN0JworCitZb3UgY2FuIHNldCBhbnkgYXR0cmlidXRlIHdpdGggdGhlIGNvbnN0cnVjdG9yLCBsaWtlCitgYFJlc3BvbnNlKGNoYXJzZXQ9J3V0ZjgnKWBgCisKK0hlYWRlcnMKKy0tLS0tLS0KKworSW4gYWRkaXRpb24gdG8gYGByZXMuaGVhZGVybGlzdGBgLCB0aGVyZSBpcyBkaWN0aW9uYXJ5LWxpa2UgdmlldyBvbgordGhlIGxpc3QgaW4gYGByZXMuaGVhZGVyc2BgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVzLmhlYWRlcnMKKyAgICBSZXNwb25zZUhlYWRlcnMoWygnQ29udGVudC1UeXBlJywgJ3RleHQvaHRtbDsgY2hhcnNldD11dGY4JyksICgnQ29udGVudC1MZW5ndGgnLCAnNCcpXSkKKworVGhpcyBpcyBjYXNlLWluc2Vuc2l0aXZlLiAgSXQgY2FuIHN1cHBvcnQgbXVsdGlwbGUgdmFsdWVzIGZvciBhIGtleSwKK3Rob3VnaCBvbmx5IGlmIHlvdSB1c2UgYGByZXMuaGVhZGVycy5hZGQoa2V5LCB2YWx1ZSlgYCBvciByZWFkIHRoZW0KK3dpdGggYGByZXMuaGVhZGVycy5nZXRhbGwoa2V5KWBgLgorCitCb2R5ICYgYXBwX2l0ZXIKKy0tLS0tLS0tLS0tLS0tLQorCitUaGUgYGByZXMuYm9keWBgIGF0dHJpYnV0ZSByZXByZXNlbnRzIHRoZSBlbnRpcmUgYm9keSBvZiB0aGUgcmVxdWVzdAorYXMgYSBzaW5nbGUgc3RyaW5nIChub3QgdW5pY29kZSwgdGhvdWdoIHlvdSBjYW4gc2V0IGl0IHRvIHVuaWNvZGUgaWYKK3lvdSBoYXZlIGEgY2hhcnNldCBkZWZpbmVkKS4gIFRoZXJlIGlzIGFsc28gYSBgYHJlcy5hcHBfaXRlcmBgCithdHRyaWJ1dGUgdGhhdCByZXByc2VudHMgdGhlIGJvZHkgYXMgYW4gaXRlcmF0b3IuICBXU0dJIGFwcGxpY2F0aW9ucworcmV0dXJuIHRoZXNlIGBgYXBwX2l0ZXJgYCBpdGVyYXRvcnMgaW5zdGVhZCBvZiBzdHJpbmdzLCBhbmQgc29tZXRpbWVzCitpdCBjYW4gYmUgcHJvYmxlbWF0aWMgdG8gbG9hZCB0aGUgZW50aXJlIGl0ZXJhdG9yIGF0IG9uY2UgKGZvcgoraW5zdGFuY2UsIGlmIGl0IHJldHVybnMgdGhlIGNvbnRlbnRzIG9mIGEgdmVyeSBsYXJnZSBmaWxlKS4gIEdlbmVyYWxseQoraXQgaXMgbm90IGEgcHJvYmxlbSwgYW5kIG9mdGVuIHRoZSBpdGVyYXRvciBpcyBzb21ldGhpbmcgc2ltcGxlIGxpa2UgYQorb25lLWl0ZW0gbGlzdCBjb250YWluaW5nIGEgc3RyaW5nIHdpdGggdGhlIGVudGlyZSBib2R5LgorCitJZiB5b3Ugc2V0IHRoZSBib2R5IHRoZW4gQ29udGVudC1MZW5ndGggd2lsbCBhbHNvIGJlIHNldCwgYW5kIGFuCitgYHJlcy5hcHBfaXRlcmBgIHdpbGwgYmUgY3JlYXRlZCBmb3IgeW91LiAgSWYgeW91IHNldCBgYHJlcy5hcHBfaXRlcmBgCit0aGVuIENvbnRlbnQtTGVuZ3RoIHdpbGwgYmUgY2xlYXJlZCwgYnV0IGl0IHdvbid0IGJlIHNldCBmb3IgeW91LgorCitUaGVyZSBpcyBhbHNvIGEgZmlsZS1saWtlIG9iamVjdCB5b3UgY2FuIGFjY2Vzcywgd2hpY2ggd2lsbCB1cGRhdGUgdGhlCithcHBfaXRlciBpbi1wbGFjZSAodHVybmluZyB0aGUgYXBwX2l0ZXIgaW50byBhIGxpc3QgaWYgbmVjZXNzYXJ5KToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcyA9IFJlc3BvbnNlKGNvbnRlbnRfdHlwZT0ndGV4dC9wbGFpbicsIGNoYXJzZXQ9Tm9uZSkKKyAgICA+Pj4gZiA9IHJlcy5ib2R5X2ZpbGUKKyAgICA+Pj4gZi53cml0ZSgnaGV5JykKKyAgICA+Pj4gZi53cml0ZSh1J3Rlc3QnKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4gLiAuCisgICAgVHlwZUVycm9yOiBZb3UgY2FuIG9ubHkgd3JpdGUgdW5pY29kZSB0byBSZXNwb25zZSBpZiBjaGFyc2V0IGhhcyBiZWVuIHNldAorICAgID4+PiBmLmVuY29kaW5nCisgICAgPj4+IHJlcy5jaGFyc2V0ID0gJ3V0ZjgnCisgICAgPj4+IGYuZW5jb2RpbmcKKyAgICAndXRmOCcKKyAgICA+Pj4gZi53cml0ZSh1J3Rlc3QnKQorICAgID4+PiByZXMuYXBwX2l0ZXIKKyAgICBbJycsICdoZXknLCAndGVzdCddCisgICAgPj4+IHJlcy5ib2R5CisgICAgJ2hleXRlc3QnCisKK0hlYWRlciBHZXR0ZXJzCistLS0tLS0tLS0tLS0tLQorCitMaWtlIFJlcXVlc3QsIEhUVFAgcmVzcG9uc2UgaGVhZGVycyBhcmUgYWxzbyBhdmFpbGFibGUgYXMgaW5kaXZpZHVhbAorcHJvcGVydGllcy4gIFRoZXNlIHJlcHJlc2VudCBwYXJzZWQgZm9ybXMgb2YgdGhlIGhlYWRlcnMuCisKK0NvbnRlbnQtVHlwZSBpcyBhIHNwZWNpYWwgY2FzZSwgYXMgdGhlIHR5cGUgYW5kIHRoZSBjaGFyc2V0IGFyZQoraGFuZGxlZCB0aHJvdWdoIHR3byBzZXBhcmF0ZSBwcm9wZXJ0aWVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gcmVzID0gUmVzcG9uc2UoKQorICAgID4+PiByZXMuY29udGVudF90eXBlID0gJ3RleHQvaHRtbCcKKyAgICA+Pj4gcmVzLmNoYXJzZXQgPSAndXRmOCcKKyAgICA+Pj4gcmVzLmNvbnRlbnRfdHlwZQorICAgICd0ZXh0L2h0bWwnCisgICAgPj4+IHJlcy5oZWFkZXJzWydjb250ZW50LXR5cGUnXQorICAgICd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmOCcKKyAgICA+Pj4gcmVzLmNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9hdG9tK3htbCcKKyAgICA+Pj4gcmVzLmNvbnRlbnRfdHlwZV9wYXJhbXMKKyAgICB7J2NoYXJzZXQnOiAndXRmOCd9CisgICAgPj4+IHJlcy5jb250ZW50X3R5cGVfcGFyYW1zID0geyd0eXBlJzogJ2VudHJ5JywgJ2NoYXJzZXQnOiAndXRmOCd9CisgICAgPj4+IHJlcy5oZWFkZXJzWydjb250ZW50LXR5cGUnXQorICAgICdhcHBsaWNhdGlvbi9hdG9tK3htbDsgY2hhcnNldD11dGY4OyB0eXBlPWVudHJ5JworCitPdGhlciBoZWFkZXJzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gIyBVc2VkIHdpdGggYSByZWRpcmVjdDoKKyAgICA+Pj4gcmVzLmxvY2F0aW9uID0gJ2h0dHA6Ly9sb2NhbGhvc3QvZm9vJworCisgICAgPj4+ICMgSW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciBhY2NlcHRzIFJhbmdlIHJlcXVlc3RzOgorICAgID4+PiByZXMuYWNjZXB0X3JhbmdlcyA9ICdieXRlcycKKworICAgID4+PiAjIFVzZWQgYnkgY2FjaGluZyBwcm94aWVzIHRvIHRlbGwgdGhlIGNsaWVudCBob3cgb2xkIHRoZQorICAgID4+PiAjIHJlc3BvbnNlIGlzOgorICAgID4+PiByZXMuYWdlID0gMTIwCisKKyAgICA+Pj4gIyBTaG93IHdoYXQgbWV0aG9kcyB0aGUgY2xpZW50IGNhbiBkbzsgdHlwaWNhbGx5IHVzZWQgaW4KKyAgICA+Pj4gIyBhIDQwNSBNZXRob2QgTm90IEFsbG93ZWQgcmVzcG9uc2U6CisgICAgPj4+IHJlcy5hbGxvdyA9IFsnR0VUJywgJ1BVVCddCisKKyAgICA+Pj4gIyBTZXQgdGhlIGNhY2hlLWNvbnRyb2wgaGVhZGVyOgorICAgID4+PiByZXMuY2FjaGVfY29udHJvbC5tYXhfYWdlID0gMzYwCisgICAgPj4+IHJlcy5jYWNoZV9jb250cm9sLm5vX3RyYW5zZm9ybSA9IFRydWUKKworICAgID4+PiAjIFRlbGwgdGhlIGJyb3dzZXIgdG8gdHJlYXQgdGhlIHJlc3BvbnNlIGFzIGFuIGF0dGFjaG1lbnQ6CisgICAgPj4+IHJlcy5jb250ZW50X2Rpc3Bvc2l0aW9uID0gJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPWZvby54bWwnCisKKyAgICA+Pj4gIyBVc2VkIGlmIHlvdSBoYWQgZ3ppcHBlZCB0aGUgYm9keToKKyAgICA+Pj4gcmVzLmNvbnRlbnRfZW5jb2RpbmcgPSAnZ3ppcCcKKworICAgID4+PiAjIFdoYXQgbGFuZ3VhZ2UocykgYXJlIGluIHRoZSBjb250ZW50OgorICAgID4+PiByZXMuY29udGVudF9sYW5ndWFnZSA9IFsnZW4nXQorCisgICAgPj4+ICMgU2VsZG9tIHVzZWQgaGVhZGVyIHRoYXQgdGVsbHMgdGhlIGNsaWVudCB3aGVyZSB0aGUgY29udGVudAorICAgID4+PiAjIGlzIGZyb206CisgICAgPj4+IHJlcy5jb250ZW50X2xvY2F0aW9uID0gJ2h0dHA6Ly9sb2NhbGhvc3QvZm9vJworCisgICAgPj4+ICMgU2VsZG9tIHVzZWQgaGVhZGVyIHRoYXQgZ2l2ZXMgYSBoYXNoIG9mIHRoZSBib2R5OgorICAgID4+PiByZXMuY29udGVudF9tZDUgPSAnYmlnLWhhc2gnCisKKyAgICA+Pj4gIyBNZWFucyB3ZSBhcmUgc2VydmluZyBieXRlcyAwLTUwMCBpbmNsdXNpdmUsIG91dCBvZiAxMDAwIGJ5dGVzIHRvdGFsOgorICAgID4+PiAjIHlvdSBjYW4gYWxzbyB1c2UgdGhlIHJhbmdlIHNldHRlciBzaG93biBlYXJsaWVyCisgICAgPj4+IHJlcy5jb250ZW50X3JhbmdlID0gKDAsIDUwMSwgMTAwMCkKKworICAgID4+PiAjIFRoZSBsZW5ndGggb2YgdGhlIGNvbnRlbnQ7IHNldCBhdXRvbWF0aWNhbGx5IGlmIHlvdSBzZXQKKyAgICA+Pj4gIyByZXMuYm9keToKKyAgICA+Pj4gcmVzLmNvbnRlbnRfbGVuZ3RoID0gNAorCisgICAgPj4+ICMgVXNlZCB0byBpbmRpY2F0ZSB0aGUgY3VycmVudCBkYXRlIGFzIHRoZSBzZXJ2ZXIgdW5kZXJzdGFuZHMKKyAgICA+Pj4gIyBpdDoKKyAgICA+Pj4gcmVzLmRhdGUgPSBkYXRldGltZS5ub3coKQorCisgICAgPj4+ICMgVGhlIGV0YWc6CisgICAgPj4+IHJlcy5ldGFnID0gJ29wYXF1ZS10b2tlbicKKyAgICA+Pj4gIyBZb3UgY2FuIGdlbmVyYXRlIGl0IGZyb20gdGhlIGJvZHkgdG9vOgorICAgID4+PiByZXMubWQ1X2V0YWcoKQorICAgID4+PiByZXMuZXRhZworICAgICcxQjJNMlk4QXNnVHBnQW1ZN1BoQ2ZnJworCisgICAgPj4+ICMgV2hlbiB0aGlzIHBhZ2Ugc2hvdWxkIGV4cGlyZSBmcm9tIGEgY2FjaGUgKENhY2hlLUNvbnRyb2wKKyAgICA+Pj4gIyBvZnRlbiB3b3JrcyBiZXR0ZXIpOgorICAgID4+PiBpbXBvcnQgdGltZQorICAgID4+PiByZXMuZXhwaXJlcyA9IHRpbWUudGltZSgpICsgNjAqNjAgIyAxIGhvdXIKKworICAgID4+PiAjIFdoZW4gdGhpcyB3YXMgbGFzdCBtb2RpZmllZCwgb2YgY291cnNlOgorICAgID4+PiByZXMubGFzdF9tb2RpZmllZCA9IGRhdGV0aW1lKDIwMDcsIDEsIDEsIDEyLCAwLCB0emluZm89VVRDKQorCisgICAgPj4+ICMgVXNlZCB3aXRoIDUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxlIHRvIGhpbnQgdGhlIGNsaWVudCB3aGVuIHRvCisgICAgPj4+ICMgdHJ5IGFnYWluOgorICAgID4+PiByZXMucmV0cnlfYWZ0ZXIgPSAxNjAKKworICAgID4+PiAjIEluZGljYXRlIHRoZSBzZXJ2ZXIgc29mdHdhcmU6CisgICAgPj4+IHJlcy5zZXJ2ZXIgPSAnV2ViT2IvMS4wJworCisgICAgPj4+ICMgR2l2ZSBhIGxpc3Qgb2YgaGVhZGVycyB0aGF0IHRoZSBjYWNoZSBzaG91bGQgdmFyeSBvbjoKKyAgICA+Pj4gcmVzLnZhcnkgPSBbJ0Nvb2tpZSddCisKK05vdGUgaW4gZWFjaCBjYXNlIHlvdSBjYW4gZ2VuZXJhbCBzZXQgdGhlIGhlYWRlciB0byBhIHN0cmluZyB0byBhdm9pZAorYW55IHBhcnNpbmcsIGFuZCBzZXQgaXQgdG8gTm9uZSB0byByZW1vdmUgdGhlIGhlYWRlciAob3IgZG8gc29tZXRoaW5nCitsaWtlIGBgZGVsIHJlcy52YXJ5YGApLgorCitJbiB0aGUgY2FzZSBvZiBkYXRlLXJlbGF0ZWQgaGVhZGVycyB5b3UgY2FuIHNldCB0aGUgdmFsdWUgdG8gYQorYGBkYXRldGltZWBgIGluc3RhbmNlIChpZGVhbGx5IHdpdGggYSBVVEMgdGltZXpvbmUpLCBhIHRpbWUgdHVwbGUsIGFuCitpbnRlZ2VyIHRpbWVzdGFtcCwgb3IgYSBwcm9wZXJseS1mb3JtYXR0ZWQgc3RyaW5nLgorCitBZnRlciBzZXR0aW5nIGFsbCB0aGVzZSBoZWFkZXJzLCBoZXJlJ3MgdGhlIHJlc3VsdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IGZvciBuYW1lLCB2YWx1ZSBpbiByZXMuaGVhZGVybGlzdDoKKyAgICAuLi4gICAgIHByaW50ICclczogJXMnICUgKG5hbWUsIHZhbHVlKQorICAgIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vYXRvbSt4bWw7IGNoYXJzZXQ9dXRmODsgdHlwZT1lbnRyeQorICAgIExvY2F0aW9uOiBodHRwOi8vbG9jYWxob3N0L2ZvbworICAgIEFjY2VwdC1SYW5nZXM6IGJ5dGVzCisgICAgQWdlOiAxMjAKKyAgICBBbGxvdzogR0VULCBQVVQKKyAgICBDYWNoZS1Db250cm9sOiBtYXgtYWdlPTM2MCwgbm8tdHJhbnNmb3JtCisgICAgQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Zm9vLnhtbAorICAgIENvbnRlbnQtRW5jb2Rpbmc6IGd6aXAKKyAgICBDb250ZW50LUxhbmd1YWdlOiBlbgorICAgIENvbnRlbnQtTG9jYXRpb246IGh0dHA6Ly9sb2NhbGhvc3QvZm9vCisgICAgQ29udGVudC1NRDU6IGJpZy1oYXNoCisgICAgQ29udGVudC1SYW5nZTogYnl0ZXMgMC01MDAvMTAwMAorICAgIENvbnRlbnQtTGVuZ3RoOiA0CisgICAgRGF0ZTogLi4uIEdNVAorICAgIEVUYWc6IC4uLgorICAgIEV4cGlyZXM6IC4uLiBHTVQKKyAgICBMYXN0LU1vZGlmaWVkOiBNb24sIDAxIEphbiAyMDA3IDEyOjAwOjAwIEdNVAorICAgIFJldHJ5LUFmdGVyOiAxNjAKKyAgICBTZXJ2ZXI6IFdlYk9iLzEuMAorICAgIFZhcnk6IENvb2tpZQorCitZb3UgY2FuIGFsc28gc2V0IENhY2hlLUNvbnRyb2wgcmVsYXRlZCBhdHRyaWJ1dGVzIHdpdGgKK2BgcmVxLmNhY2hlX2V4cGlyZXMoc2Vjb25kcywgKiphdHRycylgYCwgbGlrZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcyA9IFJlc3BvbnNlKCkKKyAgICA+Pj4gcmVzLmNhY2hlX2V4cGlyZXMoMTApCisgICAgPj4+IHJlcy5oZWFkZXJzWydDYWNoZS1Db250cm9sJ10KKyAgICAnbWF4LWFnZT0xMCcKKyAgICA+Pj4gcmVzLmNhY2hlX2V4cGlyZXMoMCkKKyAgICA+Pj4gcmVzLmhlYWRlcnNbJ0NhY2hlLUNvbnRyb2wnXQorICAgICdtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZSwgbm8tY2FjaGUsIG5vLXN0b3JlJworICAgID4+PiByZXMuaGVhZGVyc1snRXhwaXJlcyddCisgICAgJy4uLiBHTVQnCisKK1lvdSBjYW4gYWxzbyB1c2UgdGhlIGB0aW1lZGVsdGEKKzxodHRwOi8vcHl0aG9uLm9yZy9kb2MvY3VycmVudC9saWIvZGF0ZXRpbWUtdGltZWRlbHRhLmh0bWw+YF8KK2NvbnN0YW50cyBkZWZpbmVkLCBlLmcuOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gZnJvbSB3ZWJvYiBpbXBvcnQgKgorICAgID4+PiByZXMgPSBSZXNwb25zZSgpCisgICAgPj4+IHJlcy5jYWNoZV9leHBpcmVzKDIqZGF5KzQqaG91cikKKyAgICA+Pj4gcmVzLmhlYWRlcnNbJ0NhY2hlLUNvbnRyb2wnXQorICAgICdtYXgtYWdlPTE4NzIwMCcKKworQ29va2llcworLS0tLS0tLQorCitDb29raWVzIChhbmQgdGhlIFNldC1Db29raWUgaGVhZGVyKSBhcmUgaGFuZGxlZCB3aXRoIGEgY291cGxlCittZXRob2RzLiAgTW9zdCBpbXBvcnRhbnRseToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcy5zZXRfY29va2llKCdrZXknLCAndmFsdWUnLCBtYXhfYWdlPTM2MCwgcGF0aD0nLycsCisgICAgLi4uICAgICAgICAgICAgICAgIGRvbWFpbj0nZXhhbXBsZS5vcmcnLCBzZWN1cmU9VHJ1ZSkKKyAgICA+Pj4gcmVzLmhlYWRlcnNbJ1NldC1Db29raWUnXQorICAgICdrZXk9dmFsdWU7IERvbWFpbj1leGFtcGxlLm9yZzsgTWF4LUFnZT0zNjA7IFBhdGg9LzsgZXhwaXJlcz0uLi4gR01UOyBzZWN1cmUnCisgICAgPj4+ICMgVG8gZGVsZXRlIGEgY29va2llIHByZXZpb3VzbHkgc2V0IGluIHRoZSBjbGllbnQ6CisgICAgPj4+IHJlcy5kZWxldGVfY29va2llKCdiYWRfY29va2llJykKKyAgICA+Pj4gcmVzLmhlYWRlcnNbJ1NldC1Db29raWUnXQorICAgICdiYWRfY29va2llPTsgTWF4LUFnZT0wOyBQYXRoPS87IGV4cGlyZXM9Li4uIEdNVCcKKworVGhlIG9ubHkgb3RoZXIgcmVhbCBtZXRob2Qgb2Ygbm90ZSAobm90ZSB0aGF0IHRoaXMgZG9lcyAqbm90KiBkZWxldGUKK3RoZSBjb29raWUgZnJvbSBjbGllbnRzLCBvbmx5IGZyb20gdGhlIHJlc3BvbnNlIG9iamVjdCk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiByZXMudW5zZXRfY29va2llKCdrZXknKQorICAgID4+PiByZXMudW5zZXRfY29va2llKCdiYWRfY29va2llJykKKyAgICA+Pj4gcHJpbnQgcmVzLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICBOb25lCisKK0JpbmRpbmcgYSBSZXF1ZXN0CistLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGJpbmQgYSByZXF1ZXN0IChvciByZXF1ZXN0IFdTR0kgZW52aXJvbikgdG8gdGhlIHJlc3BvbnNlCitvYmplY3QuICBUaGlzIGlzIGF2YWlsYWJsZSB0aHJvdWdoIGBgcmVzLnJlcXVlc3RgYCBvcgorYGByZXMuZW52aXJvbmBgLiAgVGhpcyBpcyBjdXJyZW50bHkgb25seSB1c2VkIGluIHNldHRpbmcKK2BgcmVzLmxvY2F0aW9uYGAsIHRvIG1ha2UgdGhlIGxvY2F0aW9uIGFic29sdXRlIGlmIG5lY2Vzc2FyeS4KKworUmVzcG9uc2UgYXMgYSBXU0dJIGFwcGxpY2F0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQSByZXNwb25zZSBpcyBhIFdTR0kgYXBwbGljYXRpb24sIGluIHRoYXQgeW91IGNhbiBkbzoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcSA9IFJlcXVlc3QuYmxhbmsoJy8nKQorICAgID4+PiBzdGF0dXMsIGhlYWRlcnMsIGFwcF9pdGVyID0gcmVxLmNhbGxfYXBwbGljYXRpb24ocmVzKQorCitBIHBvc3NpYmxlIHBhdHRlcm4gZm9yIHlvdXIgYXBwbGljYXRpb24gbWlnaHQgYmU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgID4+PiBkZWYgbXlfYXBwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAuLi4gICAgIHJlcSA9IFJlcXVlc3QoZW52aXJvbikKKyAgICAuLi4gICAgIHJlcyA9IFJlc3BvbnNlKCkKKyAgICAuLi4gICAgIHJlcy5jb250ZW50X3R5cGUgPSAndGV4dC9wbGFpbicKKyAgICAuLi4gICAgIHBhcnRzID0gW10KKyAgICAuLi4gICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzb3J0ZWQocmVxLmVudmlyb24uaXRlbXMoKSk6CisgICAgLi4uICAgICAgICAgcGFydHMuYXBwZW5kKCclczogJXInICUgKG5hbWUsIHZhbHVlKSkKKyAgICAuLi4gICAgIHJlcy5ib2R5ID0gJ1xuJy5qb2luKHBhcnRzKQorICAgIC4uLiAgICAgcmV0dXJuIHJlcyhlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICA+Pj4gcmVxID0gUmVxdWVzdC5ibGFuaygnLycpCisgICAgPj4+IHJlcyA9IHJlcS5nZXRfcmVzcG9uc2UobXlfYXBwKQorICAgID4+PiBwcmludCByZXMKKyAgICAyMDAgT0sKKyAgICBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKKyAgICBDb250ZW50LUxlbmd0aDogLi4uCisgICAgPEJMQU5LTElORT4KKyAgICBIVFRQX0hPU1Q6ICdsb2NhbGhvc3Q6ODAnCisgICAgUEFUSF9JTkZPOiAnLycKKyAgICBRVUVSWV9TVFJJTkc6ICcnCisgICAgUkVRVUVTVF9NRVRIT0Q6ICdHRVQnCisgICAgU0NSSVBUX05BTUU6ICcnCisgICAgU0VSVkVSX05BTUU6ICdsb2NhbGhvc3QnCisgICAgU0VSVkVSX1BPUlQ6ICc4MCcKKyAgICBTRVJWRVJfUFJPVE9DT0w6ICdIVFRQLzEuMCcKKyAgICB3c2dpLmVycm9yczogPG9wZW4gZmlsZSAnPHN0ZGVycj4nLCBtb2RlICd3JyBhdCAuLi4+CisgICAgd3NnaS5pbnB1dDogPC4uLklPLi4uIG9iamVjdCBhdCAuLi4+CisgICAgd3NnaS5tdWx0aXByb2Nlc3M6IEZhbHNlCisgICAgd3NnaS5tdWx0aXRocmVhZDogRmFsc2UKKyAgICB3c2dpLnJ1bl9vbmNlOiBGYWxzZQorICAgIHdzZ2kudXJsX3NjaGVtZTogJ2h0dHAnCisgICAgd3NnaS52ZXJzaW9uOiAoMSwgMCkKKworRXhjZXB0aW9ucworPT09PT09PT09PQorCitJbiBhZGRpdGlvbiB0byBSZXF1ZXN0IGFuZCBSZXNwb25zZSBvYmplY3RzLCB0aGVyZSBhcmUgYSBzZXQgb2YgUHl0aG9uCitleGNlcHRpb25zIGZvciBkaWZmZXJlbnQgSFRUUCByZXNwb25zZXMgKDN4eCwgNHh4LCA1eHggY29kZXMpLgorCitUaGVzZSBwcm92aWRlIGEgc2ltcGxlIHdheSB0byBwcm92aWRlIHRoZXNlIG5vbi0yMDAgcmVzcG9uc2UuICBBIHZlcnkKK3NpbXBsZSBib2R5IGlzIHByb3ZpZGVkLgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gZnJvbSB3ZWJvYi5leGMgaW1wb3J0ICoKKyAgICA+Pj4gZXhjID0gSFRUUFRlbXBvcmFyeVJlZGlyZWN0KGxvY2F0aW9uPSdmb28nKQorICAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvcGF0aC90by9zb21ldGhpbmcnKQorICAgID4+PiBwcmludCBzdHIocmVxLmdldF9yZXNwb25zZShleGMpKS5zdHJpcCgpCisgICAgMzA3IFRlbXBvcmFyeSBSZWRpcmVjdAorICAgIExvY2F0aW9uOiBodHRwOi8vbG9jYWxob3N0L3BhdGgvdG8vZm9vCisgICAgQ29udGVudC1MZW5ndGg6IDEyNgorICAgIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorICAgIDxCTEFOS0xJTkU+CisgICAgMzA3IFRlbXBvcmFyeSBSZWRpcmVjdAorICAgIDxCTEFOS0xJTkU+CisgICAgVGhlIHJlc291cmNlIGhhcyBiZWVuIG1vdmVkIHRvIGh0dHA6Ly9sb2NhbGhvc3QvcGF0aC90by9mb287IHlvdSBzaG91bGQgYmUgcmVkaXJlY3RlZCBhdXRvbWF0aWNhbGx5LgorCitOb3RlIHRoYXQgb25seSBpZiB0aGVyZSdzIGFuIGBgQWNjZXB0OiB0ZXh0L2h0bWxgYCBoZWFkZXIgaW4gdGhlCityZXF1ZXN0IHdpbGwgYW4gSFRNTCByZXNwb25zZSBiZSBnaXZlbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IHJlcS5hY2NlcHQgKz0gJ3RleHQvaHRtbCcKKyAgICA+Pj4gcHJpbnQgc3RyKHJlcS5nZXRfcmVzcG9uc2UoZXhjKSkuc3RyaXAoKQorICAgIDMwNyBUZW1wb3JhcnkgUmVkaXJlY3QKKyAgICBMb2NhdGlvbjogaHR0cDovL2xvY2FsaG9zdC9wYXRoL3RvL2ZvbworICAgIENvbnRlbnQtTGVuZ3RoOiAyNzAKKyAgICBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOAorICAgIDxCTEFOS0xJTkU+CisgICAgPGh0bWw+CisgICAgIDxoZWFkPgorICAgICAgPHRpdGxlPjMwNyBUZW1wb3JhcnkgUmVkaXJlY3Q8L3RpdGxlPgorICAgICA8L2hlYWQ+CisgICAgIDxib2R5PgorICAgICAgPGgxPjMwNyBUZW1wb3JhcnkgUmVkaXJlY3Q8L2gxPgorICAgICAgVGhlIHJlc291cmNlIGhhcyBiZWVuIG1vdmVkIHRvIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3QvcGF0aC90by9mb28iPmh0dHA6Ly9sb2NhbGhvc3QvcGF0aC90by9mb288L2E+OworICAgIHlvdSBzaG91bGQgYmUgcmVkaXJlY3RlZCBhdXRvbWF0aWNhbGx5LgorICAgIDxCTEFOS0xJTkU+CisgICAgPEJMQU5LTElORT4KKyAgICAgPC9ib2R5PgorICAgIDwvaHRtbD4KKworCitUaGlzIGlzIHRha2VuIGZyb20gYHBhc3RlLmh0dHBleGNlcHRpb25zCis8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy9tb2R1bGVzL2h0dHBleGNlcHRpb25zLmh0bWwjbW9kdWxlLXBhc3RlLmh0dHBleGNlcHRpb25zPmBfLCBhbmQgaWYKK3lvdSBoYXZlIFBhc3RlIGluc3RhbGxlZCB0aGVuIHRoZXNlIGV4Y2VwdGlvbnMgd2lsbCBiZSBzdWJjbGFzc2VzIG9mCit0aGUgUGFzdGUgZXhjZXB0aW9ucy4KKworCitDb25kaXRpb25hbCBXU0dJIEFwcGxpY2F0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBSZXNwb25zZSBvYmplY3QgY2FuIGhhbmRsZSB5b3VyIGNvbmRpdGlvbmFsIHJlc3BvbnNlcyBmb3IgeW91LAorY2hlY2tpbmcgSWYtTm9uZS1NYXRjaCwgSWYtTW9kaWZpZWQtU2luY2UsIGFuZCBSYW5nZS9JZi1SYW5nZS4KKworVG8gZW5hYmxlIHRoaXMgeW91IG11c3QgY3JlYXRlIHRoZSByZXNwb25zZSBsaWtlCitgYFJlc3BvbnNlKGNvbmRpdGlvbmFsX3Jlc3BvbnNlPVRydWUpYGAsIG9yIG1ha2UgYSBzdWJjbGFzcyBsaWtlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICA+Pj4gY2xhc3MgQXBwUmVzcG9uc2UoUmVzcG9uc2UpOgorICAgIC4uLiAgICAgZGVmYXVsdF9jb250ZW50X3R5cGUgPSAndGV4dC9odG1sJworICAgIC4uLiAgICAgZGVmYXVsdF9jb25kaXRpb25hbF9yZXNwb25zZSA9IFRydWUKKyAgICA+Pj4gcmVzID0gQXBwUmVzcG9uc2UoYm9keT0nMDEyMzQ1Njc4OScsCisgICAgLi4uICAgICAgICAgICAgICAgICAgIGxhc3RfbW9kaWZpZWQ9ZGF0ZXRpbWUoMjAwNSwgMSwgMSwgMTIsIDAsIHR6aW5mbz1VVEMpKQorICAgID4+PiByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgICA+Pj4gcmVxLmlmX21vZGlmaWVkX3NpbmNlID0gZGF0ZXRpbWUoMjAwNiwgMSwgMSwgMTIsIDAsIHR6aW5mbz1VVEMpCisgICAgPj4+IHJlcS5nZXRfcmVzcG9uc2UocmVzKQorICAgIDxSZXNwb25zZSAuLi4gMzA0IE5vdCBNb2RpZmllZD4KKyAgICA+Pj4gZGVsIHJlcS5pZl9tb2RpZmllZF9zaW5jZQorICAgID4+PiByZXMuZXRhZyA9ICdvcGFxdWUtdGFnJworICAgID4+PiByZXEuaWZfbm9uZV9tYXRjaCA9ICdvcGFxdWUtdGFnJworICAgID4+PiByZXEuZ2V0X3Jlc3BvbnNlKHJlcykKKyAgICA8UmVzcG9uc2UgLi4uIDMwNCBOb3QgTW9kaWZpZWQ+CisKKyAgICA+Pj4gcmVxLmlmX25vbmVfbWF0Y2ggPSAnKicKKyAgICA+Pj4gJ3gnIGluIHJlcS5pZl9ub25lX21hdGNoCisgICAgVHJ1ZQorICAgID4+PiByZXEuaWZfbm9uZV9tYXRjaCA9IHJlcS5pZl9ub25lX21hdGNoCisgICAgPj4+ICd4JyBpbiByZXEuaWZfbm9uZV9tYXRjaAorICAgIFRydWUKKyAgICA+Pj4gcmVxLmlmX25vbmVfbWF0Y2ggPSBOb25lCisgICAgPj4+ICd4JyBpbiByZXEuaWZfbm9uZV9tYXRjaAorICAgIEZhbHNlCisgICAgPj4+IHJlcS5pZl9tYXRjaCA9IE5vbmUKKyAgICA+Pj4gJ3gnIGluIHJlcS5pZl9tYXRjaAorICAgIFRydWUKKyAgICA+Pj4gcmVxLmlmX21hdGNoID0gcmVxLmlmX21hdGNoCisgICAgPj4+ICd4JyBpbiByZXEuaWZfbWF0Y2gKKyAgICBUcnVlCisgICAgPj4+IHJlcS5oZWFkZXJzLmdldCgnSWYtTWF0Y2gnKQorICAgICcqJworCisgICAgPj4+IGRlbCByZXEuaWZfbm9uZV9tYXRjaAorCisgICAgPj4+IHJlcS5yYW5nZSA9ICgxLCA1KQorICAgID4+PiByZXN1bHQgPSByZXEuZ2V0X3Jlc3BvbnNlKHJlcykKKyAgICA+Pj4gcmVzdWx0LmhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXQorICAgICdieXRlcyAxLTQvMTAnCisgICAgPj4+IHJlc3VsdC5ib2R5CisgICAgJzEyMzQnCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy90b2RvLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL3RvZG8udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYzdlZjMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy90b2RvLnR4dApAQCAtMCwwICsxLDcgQEAKKy0gaGVhZGVyX2dldHRlcgorCistIGdldCByaWQgb2YgZW52aXJvbl9kZWNvZGVyIChwdXNoIGl0IGludG8gZW52aXJvbl9nZXR0ZXIpCisKKy0gU2V0dGluZyBhIHZhbHVlIHZpYSByZXF1ZXN0LmhlYWRlcnNbJ0ZvbyddID0gJ2Jhcicgd2lsbCBub3cgcmFpc2UgYW4KKyAgZW5jb2RpbmcgZXJyb3IgaWYgdGhlIHZhbHVlIGlzIFVuaWNvZGUgYW5kIG5vdCBhc2NpaS1jb21wYXRpYmxlLgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy93aWtpLWV4YW1wbGUtY29kZS9leGFtcGxlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3Mvd2lraS1leGFtcGxlLWNvZGUvZXhhbXBsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDQ1MmM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL2RvY3Mvd2lraS1leGFtcGxlLWNvZGUvZXhhbXBsZS5weQpAQCAtMCwwICsxLDIwMCBAQAoraW1wb3J0IG9zCitpbXBvcnQgcmUKK2Zyb20gd2Vib2IgaW1wb3J0IFJlcXVlc3QsIFJlc3BvbnNlCitmcm9tIHdlYm9iIGltcG9ydCBleGMKK2Zyb20gdGVtcGl0YSBpbXBvcnQgSFRNTFRlbXBsYXRlCisKK1ZJRVdfVEVNUExBVEUgPSBIVE1MVGVtcGxhdGUoIiIiXAorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT57e3BhZ2UudGl0bGV9fTwvdGl0bGU+CisgPC9oZWFkPgorIDxib2R5PgorPGgxPnt7cGFnZS50aXRsZX19PC9oMT4KK3t7aWYgbWVzc2FnZX19Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjOTlmIj57e21lc3NhZ2V9fTwvZGl2Pgore3tlbmRpZn19CisKKzxkaXY+e3twYWdlLmNvbnRlbnR8aHRtbH19PC9kaXY+CisKKzxocj4KKzxhIGhyZWY9Int7cmVxLnVybH19P2FjdGlvbj1lZGl0Ij5FZGl0PC9hPgorIDwvYm9keT4KKzwvaHRtbD4KKyIiIikKKworRURJVF9URU1QTEFURSA9IEhUTUxUZW1wbGF0ZSgiIiJcCis8aHRtbD4KKyA8aGVhZD4KKyAgPHRpdGxlPkVkaXQ6IHt7cGFnZS50aXRsZX19PC90aXRsZT4KKyA8L2hlYWQ+CisgPGJvZHk+Cit7e2lmIHBhZ2UuZXhpc3RzfX0KKzxoMT5FZGl0OiB7e3BhZ2UudGl0bGV9fTwvaDE+Cit7e2Vsc2V9fQorPGgxPkNyZWF0ZToge3twYWdlLnRpdGxlfX08L2gxPgore3tlbmRpZn19CisKKzxmb3JtIGFjdGlvbj0ie3tyZXEucGF0aF91cmx9fSIgbWV0aG9kPSJQT1NUIj4KKyA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtdGltZSIgdmFsdWU9Int7cGFnZS5tdGltZX19Ij4KKyBUaXRsZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InRpdGxlIiBzdHlsZT0id2lkdGg6IDcwJSIgdmFsdWU9Int7cGFnZS50aXRsZX19Ij48YnI+CisgQ29udGVudDogPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNhdmUiPgorIDxhIGhyZWY9Int7cmVxLnBhdGhfdXJsfX0iPkNhbmNlbDwvYT4KKyAgIDxicj4KKyA8dGV4dGFyZWEgbmFtZT0iY29udGVudCIgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDc1JSIgcm93cz0iNDAiPnt7cGFnZS5jb250ZW50fX08L3RleHRhcmVhPgorICAgPGJyPgorIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTYXZlIj4KKyA8YSBocmVmPSJ7e3JlcS5wYXRoX3VybH19Ij5DYW5jZWw8L2E+Cis8L2Zvcm0+Cis8L2JvZHk+PC9odG1sPgorIiIiKQorCitjbGFzcyBXaWtpQXBwKG9iamVjdCk6CisKKyAgICB2aWV3X3RlbXBsYXRlID0gVklFV19URU1QTEFURQorICAgIGVkaXRfdGVtcGxhdGUgPSBFRElUX1RFTVBMQVRFCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RvcmFnZV9kaXIpOgorICAgICAgICBzZWxmLnN0b3JhZ2VfZGlyID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGgubm9ybXBhdGgoc3RvcmFnZV9kaXIpKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgcmVxID0gUmVxdWVzdChlbnZpcm9uKQorICAgICAgICBhY3Rpb24gPSByZXEucGFyYW1zLmdldCgnYWN0aW9uJywgJ3ZpZXcnKQorICAgICAgICBwYWdlID0gc2VsZi5nZXRfcGFnZShyZXEucGF0aF9pbmZvKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbWV0aCA9IGdldGF0dHIoc2VsZiwgJ2FjdGlvbl8lc18lcycgJSAoYWN0aW9uLCByZXEubWV0aG9kKSkKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBleGMuSFRUUEJhZFJlcXVlc3QoJ05vIHN1Y2ggYWN0aW9uICVyJyAlIGFjdGlvbikKKyAgICAgICAgICAgIHJlc3AgPSBtZXRoKHJlcSwgcGFnZSkKKyAgICAgICAgZXhjZXB0IGV4Yy5IVFRQRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcmVzcCA9IGUKKyAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKKyAgICBkZWYgZ2V0X3BhZ2Uoc2VsZiwgcGF0aCk6CisgICAgICAgIHBhdGggPSBwYXRoLmxzdHJpcCgnLycpCisgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgcGF0aCA9ICdpbmRleCcKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLnN0b3JhZ2VfZGlyLCBwYXRoKQorICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtcGF0aChwYXRoKQorICAgICAgICBpZiBwYXRoLmVuZHN3aXRoKCcvJyk6CisgICAgICAgICAgICBwYXRoICs9ICdpbmRleCcKKyAgICAgICAgaWYgbm90IHBhdGguc3RhcnRzd2l0aChzZWxmLnN0b3JhZ2VfZGlyKToKKyAgICAgICAgICAgIHJhaXNlIGV4Yy5IVFRQQmFkUmVxdWVzdCgiQmFkIHBhdGgiKQorICAgICAgICBwYXRoICs9ICcuaHRtbCcKKyAgICAgICAgcmV0dXJuIFBhZ2UocGF0aCkKKworICAgIGRlZiBhY3Rpb25fdmlld19HRVQoc2VsZiwgcmVxLCBwYWdlKToKKyAgICAgICAgaWYgbm90IHBhZ2UuZXhpc3RzOgorICAgICAgICAgICAgcmV0dXJuIGV4Yy5IVFRQVGVtcG9yYXJ5UmVkaXJlY3QoCisgICAgICAgICAgICAgICAgbG9jYXRpb249cmVxLnVybCArICc/YWN0aW9uPWVkaXQnKQorICAgICAgICBpZiByZXEuY29va2llcy5nZXQoJ21lc3NhZ2UnKToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSByZXEuY29va2llc1snbWVzc2FnZSddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtZXNzYWdlID0gTm9uZQorICAgICAgICB0ZXh0ID0gc2VsZi52aWV3X3RlbXBsYXRlLnN1YnN0aXR1dGUoCisgICAgICAgICAgICBwYWdlPXBhZ2UsIHJlcT1yZXEsIG1lc3NhZ2U9bWVzc2FnZSkKKyAgICAgICAgcmVzcCA9IFJlc3BvbnNlKHRleHQpCisgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICByZXNwLmRlbGV0ZV9jb29raWUoJ21lc3NhZ2UnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzcC5sYXN0X21vZGlmaWVkID0gcGFnZS5tdGltZQorICAgICAgICAgICAgcmVzcC5jb25kaXRpb25hbF9yZXNwb25zZSA9IFRydWUKKyAgICAgICAgcmV0dXJuIHJlc3AKKworICAgIGRlZiBhY3Rpb25fdmlld19QT1NUKHNlbGYsIHJlcSwgcGFnZSk6CisgICAgICAgIHN1Ym1pdF9tdGltZSA9IGludChyZXEucGFyYW1zLmdldCgnbXRpbWUnKSBvciAnMCcpIG9yIE5vbmUKKyAgICAgICAgaWYgcGFnZS5tdGltZSAhPSBzdWJtaXRfbXRpbWU6CisgICAgICAgICAgICByZXR1cm4gZXhjLkhUVFBQcmVjb25kaXRpb25GYWlsZWQoCisgICAgICAgICAgICAgICAgIlRoZSBwYWdlIGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgeW91IHN0YXJ0ZWQgZWRpdGluZyBpdCIpCisgICAgICAgIHBhZ2Uuc2V0KAorICAgICAgICAgICAgdGl0bGU9cmVxLnBhcmFtc1sndGl0bGUnXSwKKyAgICAgICAgICAgIGNvbnRlbnQ9cmVxLnBhcmFtc1snY29udGVudCddKQorICAgICAgICByZXNwID0gZXhjLkhUVFBTZWVPdGhlcigKKyAgICAgICAgICAgIGxvY2F0aW9uPXJlcS5wYXRoX3VybCkKKyAgICAgICAgcmVzcC5zZXRfY29va2llKCdtZXNzYWdlJywgJ1BhZ2UgdXBkYXRlZCcpCisgICAgICAgIHJldHVybiByZXNwCisKKyAgICBkZWYgYWN0aW9uX2VkaXRfR0VUKHNlbGYsIHJlcSwgcGFnZSk6CisgICAgICAgIHRleHQgPSBzZWxmLmVkaXRfdGVtcGxhdGUuc3Vic3RpdHV0ZSgKKyAgICAgICAgICAgIHBhZ2U9cGFnZSwgcmVxPXJlcSkKKyAgICAgICAgcmV0dXJuIFJlc3BvbnNlKHRleHQpCisKK2NsYXNzIFBhZ2Uob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUpOgorICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleGlzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmV4aXN0cyhzZWxmLmZpbGVuYW1lKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRpdGxlKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5leGlzdHM6CisgICAgICAgICAgICAjIHdlIG5lZWQgdG8gZ3Vlc3MgdGhlIHRpdGxlCisgICAgICAgICAgICBiYXNlbmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5iYXNlbmFtZShzZWxmLmZpbGVuYW1lKSlbMF0KKyAgICAgICAgICAgIGJhc2VuYW1lID0gcmUuc3ViKHInW18tXScsICcgJywgYmFzZW5hbWUpCisgICAgICAgICAgICByZXR1cm4gYmFzZW5hbWUuY2FwaXRhbGl6ZSgpCisgICAgICAgIGNvbnRlbnQgPSBzZWxmLmZ1bGxfY29udGVudAorICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChyJzx0aXRsZT4oLio/KTwvdGl0bGU+JywgY29udGVudCwgcmUuSXxyZS5TKQorICAgICAgICByZXR1cm4gbWF0Y2guZ3JvdXAoMSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmdWxsX2NvbnRlbnQoc2VsZik6CisgICAgICAgIGYgPSBvcGVuKHNlbGYuZmlsZW5hbWUsICdyYicpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBmLnJlYWQoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY29udGVudChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuZXhpc3RzOgorICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAgIGNvbnRlbnQgPSBzZWxmLmZ1bGxfY29udGVudAorICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChyJzxib2R5W14+XSo+KC4qPyk8L2JvZHk+JywgY29udGVudCwgcmUuSXxyZS5TKQorICAgICAgICByZXR1cm4gbWF0Y2guZ3JvdXAoMSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtdGltZShzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuZXhpc3RzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBpbnQob3Muc3RhdChzZWxmLmZpbGVuYW1lKS5zdF9tdGltZSkKKworICAgIGRlZiBzZXQoc2VsZiwgdGl0bGUsIGNvbnRlbnQpOgorICAgICAgICBkaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi5maWxlbmFtZSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcik6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXIpCisgICAgICAgIG5ld19jb250ZW50ID0gIiIiPGh0bWw+PGhlYWQ+PHRpdGxlPiVzPC90aXRsZT48L2hlYWQ+PGJvZHk+JXM8L2JvZHk+PC9odG1sPiIiIiAlICgKKyAgICAgICAgICAgIHRpdGxlLCBjb250ZW50KQorICAgICAgICBmID0gb3BlbihzZWxmLmZpbGVuYW1lLCAnd2InKQorICAgICAgICBmLndyaXRlKG5ld19jb250ZW50KQorICAgICAgICBmLmNsb3NlKCkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgb3B0cGFyc2UKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCisgICAgICAgIHVzYWdlPSclcHJvZyAtLXBvcnQ9UE9SVCcKKyAgICAgICAgKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLXAnLCAnLS1wb3J0JywKKyAgICAgICAgZGVmYXVsdD0nODA4MCcsCisgICAgICAgIGRlc3Q9J3BvcnQnLAorICAgICAgICB0eXBlPSdpbnQnLAorICAgICAgICBoZWxwPSdQb3J0IHRvIHNlcnZlIG9uIChkZWZhdWx0IDgwODApJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy0td2lraS1kYXRhJywKKyAgICAgICAgZGVmYXVsdD0nLi93aWtpJywKKyAgICAgICAgZGVzdD0nd2lraV9kYXRhJywKKyAgICAgICAgaGVscD0nUGxhY2UgdG8gcHV0IHdpa2kgZGF0YSBpbnRvIChkZWZhdWx0IC4vd2lraS8pJykKKyAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIHByaW50ICdXcml0aW5nIHdpa2kgcGFnZXMgdG8gJXMnICUgb3B0aW9ucy53aWtpX2RhdGEKKyAgICBhcHAgPSBXaWtpQXBwKG9wdGlvbnMud2lraV9kYXRhKQorICAgIGZyb20gd3NnaXJlZi5zaW1wbGVfc2VydmVyIGltcG9ydCBtYWtlX3NlcnZlcgorICAgIGh0dHBkID0gbWFrZV9zZXJ2ZXIoJ2xvY2FsaG9zdCcsIG9wdGlvbnMucG9ydCwgYXBwKQorICAgIHByaW50ICdTZXJ2aW5nIG9uIGh0dHA6Ly9sb2NhbGhvc3Q6JXMnICUgb3B0aW9ucy5wb3J0CisgICAgdHJ5OgorICAgICAgICBodHRwZC5zZXJ2ZV9mb3JldmVyKCkKKyAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgIHByaW50ICdeQycKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9kb2NzL3dpa2ktZXhhbXBsZS50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy93aWtpLWV4YW1wbGUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0OTU2ZTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvZG9jcy93aWtpLWV4YW1wbGUudHh0CkBAIC0wLDAgKzEsNjg3IEBACitXaWtpIEV4YW1wbGUKKz09PT09PT09PT09PQorCis6YXV0aG9yOiBJYW4gQmlja2luZyA8aWFuYkBjb2xvcnN0dWR5LmNvbT4KKworLi4gY29udGVudHM6OgorCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCitUaGlzIGlzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHdyaXRlIGEgV1NHSSBhcHBsaWNhdGlvbiB1c2luZyBXZWJPYi4KK1dlYk9iIGlzbid0IGl0c2VsZiBpbnRlbmRlZCB0byB3cml0ZSBhcHBsaWNhdGlvbnMgLS0gaXQgaXMgbm90IGEgd2ViCitmcmFtZXdvcmsgb24gaXRzIG93biAtLSBidXQgaXQgaXMgKnBvc3NpYmxlKiB0byB3cml0ZSBhcHBsaWNhdGlvbnMKK3VzaW5nIGp1c3QgV2ViT2IuCisKK1RoZSBgZmlsZSBzZXJ2aW5nIGV4YW1wbGUgPGZpbGUtZXhhbXBsZS5odG1sPmBfIGlzIGEgYmV0dGVyIGV4YW1wbGUgb2YKK2FkdmFuY2VkIEhUVFAgdXNhZ2UuICBUaGUgYGNvbW1lbnQgbWlkZGxld2FyZSBleGFtcGxlCis8Y29tbWVudC1leGFtcGxlLmh0bWw+YF8gaXMgYSBiZXR0ZXIgZXhhbXBsZSBvZiB1c2luZyBtaWRkbGV3YXJlLgorVGhpcyBleGFtcGxlIHByb3ZpZGVzIHNvbWUgY29tcGxldGVuZXNzIGJ5IHNob3dpbmcgYW4KK2FwcGxpY2F0aW9uLWZvY3VzZWQgZW5kIHBvaW50LgorCitUaGlzIGV4YW1wbGUgaW1wbGVtZW50cyBhIHZlcnkgc2ltcGxlIHdpa2kuCisKK0NvZGUKKy0tLS0KKworVGhlIGZpbmlzaGVkIGNvZGUgZm9yIHRoaXMgaXMgYXZhaWxhYmxlIGluCitgZG9jcy93aWtpLWV4YW1wbGUtY29kZS9leGFtcGxlLnB5Cis8aHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi90cmVlL21hc3Rlci9kb2NzL3dpa2ktZXhhbXBsZS1jb2RlL2V4YW1wbGUucHk+YF8KKy0tIHlvdSBjYW4gcnVuIHRoYXQgZmlsZSBhcyBhIHNjcmlwdCB0byB0cnkgaXQgb3V0LgorCitDcmVhdGluZyBhbiBBcHBsaWNhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQSBjb21tb24gcGF0dGVybiBmb3IgY3JlYXRpbmcgc21hbGwgV1NHSSBhcHBsaWNhdGlvbnMgaXMgdG8gaGF2ZSBhCitjbGFzcyB3aGljaCBpcyBpbnN0YW50aWF0ZWQgd2l0aCB0aGUgY29uZmlndXJhdGlvbi4gIEZvciBvdXIKK2FwcGxpY2F0aW9uIHdlJ2xsIGJlIHN0b3JpbmcgdGhlIHBhZ2VzIHVuZGVyIGEgZGlyZWN0b3J5LgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBjbGFzcyBXaWtpQXBwKG9iamVjdCk6CisKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0b3JhZ2VfZGlyKToKKyAgICAgICAgICAgIHNlbGYuc3RvcmFnZV9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5ub3JtcGF0aChzdG9yYWdlX2RpcikpCisKK1dTR0kgYXBwbGljYXRpb25zIGFyZSBjYWxsYWJsZXMgbGlrZSBgYHdzZ2lfYXBwKGVudmlyb24sCitzdGFydF9yZXNwb25zZSlgYC4gICpJbnN0YW5jZXMqIG9mIGBXaWtpQXBwYCBhcmUgV1NHSSBhcHBsaWNhdGlvbnMsIHNvCit3ZSdsbCBpbXBsZW1lbnQgYSBgYF9fY2FsbF9fYGAgbWV0aG9kOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBjbGFzcyBXaWtpQXBwKG9iamVjdCk6CisgICAgICAgIC4uLgorICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAgICAgIyB3aGF0IHdlJ2xsIGZpbGwgaW4KKworVG8gbWFrZSB0aGUgc2NyaXB0IHJ1bm5hYmxlIHdlJ2xsIGNyZWF0ZSBhIHNpbXBsZSBjb21tYW5kLWxpbmUKK2ludGVyZmFjZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgaW1wb3J0IG9wdHBhcnNlCisgICAgICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigKKyAgICAgICAgICAgIHVzYWdlPSclcHJvZyAtLXBvcnQ9UE9SVCcKKyAgICAgICAgICAgICkKKyAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgICAgICAgICAnLXAnLCAnLS1wb3J0JywKKyAgICAgICAgICAgIGRlZmF1bHQ9JzgwODAnLAorICAgICAgICAgICAgZGVzdD0ncG9ydCcsCisgICAgICAgICAgICB0eXBlPSdpbnQnLAorICAgICAgICAgICAgaGVscD0nUG9ydCB0byBzZXJ2ZSBvbiAoZGVmYXVsdCA4MDgwKScpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAgICAgJy0td2lraS1kYXRhJywKKyAgICAgICAgICAgIGRlZmF1bHQ9Jy4vd2lraScsCisgICAgICAgICAgICBkZXN0PSd3aWtpX2RhdGEnLAorICAgICAgICAgICAgaGVscD0nUGxhY2UgdG8gcHV0IHdpa2kgZGF0YSBpbnRvIChkZWZhdWx0IC4vd2lraS8pJykKKyAgICAgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAgICAgICAgcHJpbnQgJ1dyaXRpbmcgd2lraSBwYWdlcyB0byAlcycgJSBvcHRpb25zLndpa2lfZGF0YQorICAgICAgICBhcHAgPSBXaWtpQXBwKG9wdGlvbnMud2lraV9kYXRhKQorICAgICAgICBmcm9tIHdzZ2lyZWYuc2ltcGxlX3NlcnZlciBpbXBvcnQgbWFrZV9zZXJ2ZXIKKyAgICAgICAgaHR0cGQgPSBtYWtlX3NlcnZlcignbG9jYWxob3N0Jywgb3B0aW9ucy5wb3J0LCBhcHApCisgICAgICAgIHByaW50ICdTZXJ2aW5nIG9uIGh0dHA6Ly9sb2NhbGhvc3Q6JXMnICUgb3B0aW9ucy5wb3J0CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGh0dHBkLnNlcnZlX2ZvcmV2ZXIoKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICBwcmludCAnXkMnCisKK1RoZXJlJ3Mgbm90IG11Y2ggdG8gdGFsayBhYm91dCBpbiB0aGlzIGNvZGUgYmxvY2suICBUaGUgYXBwbGljYXRpb24gaXMKK2luc3RhbnRpYXRlZCBhbmQgc2VydmVkIHdpdGggdGhlIGJ1aWx0LWluIG1vZHVsZQorYHdzZ2lyZWYuc2ltcGxlX3NlcnZlcgorPGh0dHA6Ly93d3cucHl0aG9uLm9yZy9kb2MvY3VycmVudC9saWIvbW9kdWxlLXdzZ2lyZWYuc2ltcGxlX3NlcnZlci5odG1sPmBfLgorCitUaGUgV1NHSSBBcHBsaWNhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworT2YgY291cnNlIGFsbCB0aGUgaW50ZXJlc3Rpbmcgc3R1ZmYgaXMgaW4gdGhhdCBgYF9fY2FsbF9fYGAgbWV0aG9kLgorV2ViT2IgbGV0cyB5b3UgaWdub3JlIHNvbWUgb2YgdGhlIGRldGFpbHMgb2YgV1NHSSwgbGlrZSB3aGF0CitgYHN0YXJ0X3Jlc3BvbnNlYGAgcmVhbGx5IGlzLiAgYGBlbnZpcm9uYGAgaXMgYSBDR0ktbGlrZSBkaWN0aW9uYXJ5LAorYnV0IGBgd2Vib2IuUmVxdWVzdGBgIGdpdmVzIGFuIG9iamVjdCBpbnRlcmZhY2UgdG8gaXQuCitgYHdlYm9iLlJlc3BvbnNlYGAgcmVwcmVzZW50cyBhIHJlc3BvbnNlLCBhbmQgaXMgaXRzZWxmIGEgV1NHSQorYXBwbGljYXRpb24uICBIZXJlJ3Mga2luZCBvZiB0aGUgaGVsbG8gd29ybGQgb2YgV1NHSSBhcHBsaWNhdGlvbnMKK3VzaW5nIHRoZXNlIG9iamVjdHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gd2Vib2IgaW1wb3J0IFJlcXVlc3QsIFJlc3BvbnNlCisKKyAgICBjbGFzcyBXaWtpQXBwKG9iamVjdCk6CisgICAgICAgIC4uLgorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgICAgICAgICByZXNwID0gUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgJ0hlbGxvICVzIScgJSByZXEucGFyYW1zLmdldCgnbmFtZScsICdXb3JsZCcpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK2BgcmVxLnBhcmFtcy5nZXQoJ25hbWUnLCAnV29ybGQnKWBgIGdldHMgYW55IHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXIKKyhsaWtlIGBgP25hbWU9Qm9iYGApLCBvciBpZiBpdCdzIGEgUE9TVCBmb3JtIHJlcXVlc3QgaXQgd2lsbCBsb29rIGZvcgorYSBmb3JtIHBhcmFtZXRlciBgYG5hbWVgYC4gIFdlIGluc3RhbnRpYXRlIHRoZSByZXNwb25zZSB3aXRoIHRoZSBib2R5CitvZiB0aGUgcmVzcG9uc2UuICBZb3UgY291bGQgYWxzbyBnaXZlIGtleXdvcmQgYXJndW1lbnRzIGxpa2UKK2BgY29udGVudF90eXBlPSd0ZXh0L3BsYWluJ2BgIChgYHRleHQvaHRtbGBgIGlzIHRoZSBkZWZhdWx0IGNvbnRlbnQKK3R5cGUgYW5kIGBgMjAwIE9LYGAgaXMgdGhlIGRlZmF1bHQgc3RhdHVzKS4KKworRm9yIHRoZSB3aWtpIGFwcGxpY2F0aW9uIHdlJ2xsIHN1cHBvcnQgYSBjb3VwbGUgZGlmZmVyZW50IGtpbmRzIG9mCitzY3JlZW5zLCBhbmQgd2UnbGwgbWFrZSBvdXIgYGBfX2NhbGxfX2BgIG1ldGhvZCBkaXNwYXRjaCB0byBkaWZmZXJlbnQKK21ldGhvZHMgZGVwZW5kaW5nIG9uIHRoZSByZXF1ZXN0LiAgV2UnbGwgc3VwcG9ydCBhbiBgYGFjdGlvbmBgCitwYXJhbWV0ZXIgbGlrZSBgYD9hY3Rpb249ZWRpdGBgLCBhbmQgYWxzbyBkaXNwYXRjaCBvbiB0aGUgbWV0aG9kIChHRVQsCitQT1NULCBldGMsIGluIGBgcmVxLm1ldGhvZGBgKS4gIFdlJ2xsIHBhc3MgaW4gdGhlIHJlcXVlc3QgYW5kIGV4cGVjdCBhCityZXNwb25zZSBvYmplY3QgYmFjay4KKworQWxzbywgV2ViT2IgaGFzIGEgc2VyaWVzIG9mIGV4Y2VwdGlvbnMgaW4gYGB3ZWJvYi5leGNgYCwgbGlrZQorYGB3ZWJvYi5leGMuSFRUUE5vdEZvdW5kYGAsIGBgd2Vib2IuZXhjLkhUVFBUZW1wb3JhcnlSZWRpcmVjdGBgLCBldGMuCitXZSdsbCBhbHNvIGxldCB0aGUgbWV0aG9kIHJhaXNlIG9uZSBvZiB0aGVzZSBleGNlcHRpb25zIGFuZCB0dXJuIGl0CitpbnRvIGEgcmVzcG9uc2UuCisKK09uZSBsYXN0IHRoaW5nIHdlJ2xsIGRvIGluIG91ciBgYF9fY2FsbF9fYGAgbWV0aG9kIGlzIGNyZWF0ZSBvdXIKK2BgUGFnZWBgIG9iamVjdCwgd2hpY2ggcmVwcmVzZW50cyBhIHdpa2kgcGFnZS4KKworQWxsIHRoaXMgdG9nZXRoZXIgbWFrZXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gd2Vib2IgaW1wb3J0IFJlcXVlc3QsIFJlc3BvbnNlCisgICAgZnJvbSB3ZWJvYiBpbXBvcnQgZXhjCisKKyAgICBjbGFzcyBXaWtpQXBwKG9iamVjdCk6CisgICAgICAgIC4uLgorCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICByZXEgPSBSZXF1ZXN0KGVudmlyb24pCisgICAgICAgICAgICBhY3Rpb24gPSByZXEucGFyYW1zLmdldCgnYWN0aW9uJywgJ3ZpZXcnKQorICAgICAgICAgICAgIyBIZXJlJ3Mgd2hlcmUgd2UgZ2V0IHRoZSBQYWdlIGRvbWFpbiBvYmplY3Q6CisgICAgICAgICAgICBwYWdlID0gc2VsZi5nZXRfcGFnZShyZXEucGF0aF9pbmZvKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgbWV0aG9kIG5hbWUgaXMgYWN0aW9uX3thY3Rpb25fcGFyYW19X3tyZXF1ZXN0X21ldGhvZH06CisgICAgICAgICAgICAgICAgICAgIG1ldGggPSBnZXRhdHRyKHNlbGYsICdhY3Rpb25fJXNfJXMnICUgKGFjdGlvbiwgcmVxLm1ldGhvZCkpCisgICAgICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICAjIElmIHRoZSBtZXRob2Qgd2Fzbid0IGZvdW5kIHRoZXJlIG11c3QgYmUKKyAgICAgICAgICAgICAgICAgICAgIyBzb21ldGhpbmcgd3Jvbmcgd2l0aCB0aGUgcmVxdWVzdDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXhjLkhUVFBCYWRSZXF1ZXN0KCdObyBzdWNoIGFjdGlvbiAlcicgJSBhY3Rpb24pCisgICAgICAgICAgICAgICAgcmVzcCA9IG1ldGgocmVxLCBwYWdlKQorICAgICAgICAgICAgZXhjZXB0IGV4Yy5IVFRQRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgICMgVGhlIGV4Y2VwdGlvbiBvYmplY3QgaXRzZWxmIGlzIGEgV1NHSSBhcHBsaWNhdGlvbi9yZXNwb25zZToKKyAgICAgICAgICAgICAgICByZXNwID0gZQorICAgICAgICAgICAgcmV0dXJuIHJlc3AoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisKK1RoZSBEb21haW4gT2JqZWN0CistLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgYGBQYWdlYGAgZG9tYWluIG9iamVjdCBpc24ndCByZWFsbHkgcmVsYXRlZCB0byB0aGUgd2ViLCBidXQgaXQgaXMKK2ltcG9ydGFudCB0byBpbXBsZW1lbnRpbmcgdGhpcy4gIEVhY2ggYGBQYWdlYGAgaXMganVzdCBhIGZpbGUgb24gdGhlCitmaWxlc3lzdGVtLiAgT3VyIGBgZ2V0X3BhZ2VgYCBtZXRob2QgZmlndXJlcyBvdXQgdGhlIGZpbGVuYW1lIGdpdmVuCit0aGUgcGF0aCAodGhlIHBhdGggaXMgaW4gYGByZXEucGF0aF9pbmZvYGAsIHdoaWNoIGlzIGFsbCB0aGUgcGF0aAorYWZ0ZXIgdGhlIGJhc2UgcGF0aCkuICBUaGUgYGBQYWdlYGAgY2xhc3MgaGFuZGxlcyBnZXR0aW5nIGFuZCBzZXR0aW5nCit0aGUgdGl0bGUgYW5kIGNvbnRlbnQuCisKK0hlcmUncyB0aGUgbWV0aG9kIHRvIGZpZ3VyZSBvdXQgdGhlIGZpbGVuYW1lOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgb3MKKworICAgIGNsYXNzIFdpa2lBcHAob2JqZWN0KToKKyAgICAgICAgLi4uCisKKyAgICAgICAgZGVmIGdldF9wYWdlKHNlbGYsIHBhdGgpOgorICAgICAgICAgICAgcGF0aCA9IHBhdGgubHN0cmlwKCcvJykKKyAgICAgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgICAgICMgVGhlIHBhdGggd2FzICcvJywgdGhlIGhvbWUgcGFnZQorICAgICAgICAgICAgICAgIHBhdGggPSAnaW5kZXgnCisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNlbGYuc3RvcmFnZV9kaXIpCisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtcGF0aChwYXRoKQorICAgICAgICAgICAgaWYgcGF0aC5lbmRzd2l0aCgnLycpOgorICAgICAgICAgICAgICAgIHBhdGggKz0gJ2luZGV4JworICAgICAgICAgICAgaWYgbm90IHBhdGguc3RhcnRzd2l0aChzZWxmLnN0b3JhZ2VfZGlyKToKKyAgICAgICAgICAgICAgICByYWlzZSBleGMuSFRUUEJhZFJlcXVlc3QoIkJhZCBwYXRoIikKKyAgICAgICAgICAgIHBhdGggKz0gJy5odG1sJworICAgICAgICAgICAgcmV0dXJuIFBhZ2UocGF0aCkKKworTW9zdGx5IHRoaXMgaXMganVzdCB0aGUga2luZCBvZiBjYXJlZnVsIHBhdGggY29uc3RydWN0aW9uIHlvdSBoYXZlIHRvCitkbyB3aGVuIG1hcHBpbmcgYSBVUkwgdG8gYSBmaWxlbmFtZS4gIFdoaWxlIHRoZSBzZXJ2ZXIgKm1heSogbm9ybWFsaXplCit0aGUgcGF0aCAoc28gdGhhdCBhIHBhdGggbGlrZSBgYC8uLi8uLi9gYCBjYW4ndCBiZSByZXF1ZXN0ZWQpLCB5b3UgY2FuCituZXZlciByZWFsbHkgYmUgc3VyZS4gIEJ5IHVzaW5nIGBgb3MucGF0aC5ub3JtcGF0aGBgIHdlIGVsaW1pbmF0ZQordGhlc2UsIGFuZCB0aGVuIHdlIG1ha2UgYWJzb2x1dGVseSBzdXJlIHRoYXQgdGhlIHJlc3VsdGluZyBwYXRoIGlzCit1bmRlciBvdXIgYGBzZWxmLnN0b3JhZ2VfZGlyYGAgd2l0aCBgYGlmIG5vdAorcGF0aC5zdGFydHN3aXRoKHNlbGYuc3RvcmFnZV9kaXIpOiByYWlzZSBleGMuSFRUUEJhZFJlcXVlc3QoIkJhZAorcGF0aCIpYGAuCisKK0hlcmUncyB0aGUgYWN0dWFsIGRvbWFpbiBvYmplY3Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGNsYXNzIFBhZ2Uob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQorCisgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICBkZWYgZXhpc3RzKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKHNlbGYuZmlsZW5hbWUpCisKKyAgICAgICAgQHByb3BlcnR5CisgICAgICAgIGRlZiB0aXRsZShzZWxmKToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmV4aXN0czoKKyAgICAgICAgICAgICAgICAjIHdlIG5lZWQgdG8gZ3Vlc3MgdGhlIHRpdGxlCisgICAgICAgICAgICAgICAgYmFzZW5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoc2VsZi5maWxlbmFtZSkpWzBdCisgICAgICAgICAgICAgICAgYmFzZW5hbWUgPSByZS5zdWIocidbXy1dJywgJyAnLCBiYXNlbmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZW5hbWUuY2FwaXRhbGl6ZSgpCisgICAgICAgICAgICBjb250ZW50ID0gc2VsZi5mdWxsX2NvbnRlbnQKKyAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHInPHRpdGxlPiguKj8pPC90aXRsZT4nLCBjb250ZW50LCByZS5JfHJlLlMpCisgICAgICAgICAgICByZXR1cm4gbWF0Y2guZ3JvdXAoMSkKKworICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgZGVmIGZ1bGxfY29udGVudChzZWxmKToKKyAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYuZmlsZW5hbWUsICdyYicpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGYuY2xvc2UoKQorCisgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICBkZWYgY29udGVudChzZWxmKToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmV4aXN0czoKKyAgICAgICAgICAgICAgICByZXR1cm4gJycKKyAgICAgICAgICAgIGNvbnRlbnQgPSBzZWxmLmZ1bGxfY29udGVudAorICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2gocic8Ym9keVtePl0qPiguKj8pPC9ib2R5PicsIGNvbnRlbnQsIHJlLkl8cmUuUykKKyAgICAgICAgICAgIHJldHVybiBtYXRjaC5ncm91cCgxKQorCisgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICBkZWYgbXRpbWUoc2VsZik6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5leGlzdHM6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludChvcy5zdGF0KHNlbGYuZmlsZW5hbWUpLnN0X210aW1lKQorCisgICAgICAgIGRlZiBzZXQoc2VsZiwgdGl0bGUsIGNvbnRlbnQpOgorICAgICAgICAgICAgZGlyID0gb3MucGF0aC5kaXJuYW1lKHNlbGYuZmlsZW5hbWUpCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGlyKToKKyAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXIpCisgICAgICAgICAgICBuZXdfY29udGVudCA9ICIiIjxodG1sPjxoZWFkPjx0aXRsZT4lczwvdGl0bGU+PC9oZWFkPjxib2R5PiVzPC9ib2R5PjwvaHRtbD4iIiIgJSAoCisgICAgICAgICAgICAgICAgdGl0bGUsIGNvbnRlbnQpCisgICAgICAgICAgICBmID0gb3BlbihzZWxmLmZpbGVuYW1lLCAnd2InKQorICAgICAgICAgICAgZi53cml0ZShuZXdfY29udGVudCkKKyAgICAgICAgICAgIGYuY2xvc2UoKQorCitCYXNpY2FsbHkgaXQgcHJvdmlkZXMgYSBgYC50aXRsZWBgIGF0dHJpYnV0ZSwgYSBgYC5jb250ZW50YGAKK2F0dHJpYnV0ZSwgdGhlIGBgLm10aW1lYGAgKGxhc3QgbW9kaWZpZWQgdGltZSksIGFuZCB0aGUgcGFnZSBjYW4gZXhpc3QKK29yIG5vdCAoZ2l2aW5nIGFwcHJvcHJpYXRlIGd1ZXNzZXMgZm9yIHRpdGxlIGFuZCBjb250ZW50IHdoZW4gdGhlIHBhZ2UKK2RvZXMgbm90IGV4aXN0KS4gIEl0IGVuY29kZXMgdGhlc2Ugb24gdGhlIGZpbGVzeXN0ZW0gYXMgYSBzaW1wbGUgSFRNTAorcGFnZSB0aGF0IGlzIHBhcnNlZCBieSBzb21lIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisKK05vbmUgb2YgdGhpcyByZWFsbHkgYXBwbGllcyBtdWNoIHRvIHRoZSB3ZWIgb3IgV2ViT2IsIHNvIEknbGwgbGVhdmUgaXQKK3RvIHlvdSB0byBmaWd1cmUgb3V0IHRoZSBkZXRhaWxzIG9mIHRoaXMuCisKK1VSTHMsIFBBVEhfSU5GTywgYW5kIFNDUklQVF9OQU1FCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGlzIGlzIGFuIGFzaWRlIGZvciB0aGUgdHV0b3JpYWwsIGJ1dCBhbiBpbXBvcnRhbnQgY29uY2VwdC4gIEluIFdTR0ksCithbmQgYWNjb3JkaW5nbHkgd2l0aCBXZWJPYiwgdGhlIFVSTCBpcyBzcGxpdCB1cCBpbnRvIHNldmVyYWwgcGllY2VzLgorU29tZSBvZiB0aGVzZSBhcmUgb2J2aW91cyBhbmQgc29tZSBub3QuCisKK0FuIGV4YW1wbGU6OgorCisgIGh0dHA6Ly9leGFtcGxlLmNvbTo4MDgwL3dpa2kvYXJ0aWNsZS8xMj92ZXJzaW9uPTEwCisKK1RoZXJlIGFyZSBzZXZlcmFsIGNvbXBvbmVudHMgaGVyZToKKworKiByZXEuc2NoZW1lOiBgYGh0dHBgYAorKiByZXEuaG9zdDogYGBleGFtcGxlLmNvbTo4MDgwYGAKKyogcmVxLnNlcnZlcl9uYW1lOiBgYGV4YW1wbGUuY29tYGAKKyogcmVxLnNlcnZlcl9wb3J0OiA4MDgwCisqIHJlcS5zY3JpcHRfbmFtZTogYGAvd2lraWBgCisqIHJlcS5wYXRoX2luZm86IGBgL2FydGljbGUvMTJgYAorKiByZXEucXVlcnlfc3RyaW5nOiBgYHZlcnNpb249MTBgYAorCitPbmUgbm9uLW9idmlvdXMgcGFydCBpcyBgYHJlcS5zY3JpcHRfbmFtZWBgIGFuZCBgYHJlcS5wYXRoX2luZm9gYC4KK1RoZXNlIGNvcnJlc3BvbmQgdG8gdGhlIENHSSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcyBgYFNDUklQVF9OQU1FYGAKK2FuZCBgYFBBVEhfSU5GT2BgLiAgYGByZXEuc2NyaXB0X25hbWVgYCBwb2ludHMgdG8gdGhlICphcHBsaWNhdGlvbiouCitZb3UgbWlnaHQgaGF2ZSBzZXZlcmFsIGFwcGxpY2F0aW9ucyBpbiB5b3VyIHNpdGUgYXQgZGlmZmVyZW50IHBhdGhzOgorb25lIGF0IGBgL3dpa2lgYCwgb25lIGF0IGBgL2Jsb2dgYCwgb25lIGF0IGBgL2BgLiAgRWFjaCBhcHBsaWNhdGlvbgorZG9lc24ndCBuZWNlc3NhcmlseSBrbm93IGFib3V0IHRoZSBvdGhlcnMsIGJ1dCBpdCBoYXMgdG8gY29uc3RydWN0IGl0cworVVJMcyBwcm9wZXJseSAtLSBzbyBhbnkgaW50ZXJuYWwgbGlua3MgdG8gdGhlIHdpa2kgYXBwbGljYXRpb24gc2hvdWxkCitzdGFydCB3aXRoIGBgL3dpa2lgYC4KKworSnVzdCBhcyB0aGVyZSBhcmUgcGllY2VzIHRvIHRoZSBVUkwsIHRoZXJlIGFyZSBzZXZlcmFsIHByb3BlcnRpZXMgaW4KK1dlYk9iIHRvIGNvbnN0cnVjdCBVUkxzIGJhc2VkIG9uIHRoZXNlOgorCisqIHJlcS5ob3N0X3VybDogYGBodHRwOi8vZXhhbXBsZS5jb206ODA4MGBgCisqIHJlcS5hcHBsaWNhdGlvbl91cmw6IGBgaHR0cDovL2V4YW1wbGUuY29tOjgwODAvd2lraWBgCisqIHJlcS5wYXRoX3VybDogYGBodHRwOi8vZXhhbXBsZS5jb206ODA4MC93aWtpL2FydGljbGUvMTJgYAorKiByZXEucGF0aDogYGAvd2lraS9hcnRpY2xlLzEyYGAKKyogcmVxLnBhdGhfcXM6IGBgL3dpa2kvYXJ0aWNsZS8xMj92ZXJzaW9uPTEwYGAKKyogcmVxLnVybDogYGBodHRwOi8vZXhhbXBsZS5jb206ODA4MC93aWtpL2FydGljbGUvMTI/dmVyc2lvbjEwYGAKKworWW91IGNhbiBhbHNvIGNyZWF0ZSBVUkxzIHdpdGgKK2BgcmVxLnJlbGF0aXZlX3VybCgnc29tZS9vdGhlci9wYWdlJylgYC4gIEluIHRoaXMgZXhhbXBsZSB0aGF0IHdvdWxkCityZXNvbHZlIHRvIGBgaHR0cDovL2V4YW1wbGUuY29tOjgwODAvd2lraS9hcnRpY2xlL3NvbWUvb3RoZXIvcGFnZWBgLgorWW91IGNhbiBhbHNvIGNyZWF0ZSBhIHJlbGF0aXZlIFVSTCB0byB0aGUgYXBwbGljYXRpb24gVVJMCisoU0NSSVBUX05BTUUpIGxpa2UgYGByZXEucmVsYXRpdmVfdXJsKCdzb21lL290aGVyL3BhZ2UnLCBUcnVlKWBgIHdoaWNoCit3b3VsZCBiZSBgYGh0dHA6Ly9leGFtcGxlLmNvbTo4MDgwL3dpa2kvc29tZS9vdGhlci9wYWdlYGAuCisKK0JhY2sgdG8gdGhlIEFwcGxpY2F0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXZSBoYXZlIGEgZGlzcGF0Y2hpbmcgZnVuY3Rpb24gd2l0aCBgYF9fY2FsbF9fYGAgYW5kIHdlIGhhdmUgYSBkb21haW4KK29iamVjdCB3aXRoIGBgUGFnZWBgLCBidXQgd2UgYXJlbid0IGFjdHVhbGx5IGRvaW5nIGFueXRoaW5nLgorCitUaGUgZGlzcGF0Y2hpbmcgZ29lcyB0byBgYGFjdGlvbl9BQ1RJT05fTUVUSE9EYGAsIHdoZXJlIEFDVElPTgorZGVmYXVsdHMgdG8gYGB2aWV3YGAuICBTbyBhIHNpbXBsZSBwYWdlIHZpZXcgd2lsbCBiZQorYGBhY3Rpb25fdmlld19HRVRgYC4gIExldCdzIGltcGxlbWVudCB0aGF0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBjbGFzcyBXaWtpQXBwKG9iamVjdCk6CisgICAgICAgIC4uLgorCisgICAgICAgIGRlZiBhY3Rpb25fdmlld19HRVQoc2VsZiwgcmVxLCBwYWdlKToKKyAgICAgICAgICAgIGlmIG5vdCBwYWdlLmV4aXN0czoKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhjLkhUVFBUZW1wb3JhcnlSZWRpcmVjdCgKKyAgICAgICAgICAgICAgICAgICAgbG9jYXRpb249cmVxLnVybCArICc/YWN0aW9uPWVkaXQnKQorICAgICAgICAgICAgdGV4dCA9IHNlbGYudmlld190ZW1wbGF0ZS5zdWJzdGl0dXRlKAorICAgICAgICAgICAgICAgIHBhZ2U9cGFnZSwgcmVxPXJlcSkKKyAgICAgICAgICAgIHJlc3AgPSBSZXNwb25zZSh0ZXh0KQorICAgICAgICAgICAgcmVzcC5sYXN0X21vZGlmaWVkID0gcGFnZS5tdGltZQorICAgICAgICAgICAgcmVzcC5jb25kaXRpb25hbF9yZXNwb25zZSA9IFRydWUKKyAgICAgICAgICAgIHJldHVybiByZXNwCisKK1RoZSBmaXJzdCB0aGluZyB3ZSBkbyBpcyByZWRpcmVjdCB0aGUgdXNlciB0byB0aGUgZWRpdCBzY3JlZW4gaWYgdGhlCitwYWdlIGRvZXNuJ3QgZXhpc3QuICBgYGV4Yy5IVFRQVGVtcG9yYXJ5UmVkaXJlY3RgYCBpcyBhIHJlc3BvbnNlIHRoYXQKK2dpdmVzIGEgYGAzMDcgVGVtcG9yYXJ5IFJlZGlyZWN0YGAgcmVzcG9uc2Ugd2l0aCB0aGUgZ2l2ZW4gbG9jYXRpb24uCisKK090aGVyd2lzZSB3ZSBmaWxsIGluIGEgdGVtcGxhdGUuICBUaGUgdGVtcGxhdGUgbGFuZ3VhZ2Ugd2UncmUgZ29pbmcgdG8KK3VzZSBpbiB0aGlzIGV4YW1wbGUgaXMgYFRlbXBpdGEgPGh0dHA6Ly9weXRob25wYXN0ZS5vcmcvdGVtcGl0YS8+YF8sIGEKK3Zlcnkgc2ltcGxlIHRlbXBsYXRlIGxhbmd1YWdlIHdpdGggYSBzaW1pbGFyIGludGVyZmFjZSB0bworYHN0cmluZy5UZW1wbGF0ZSA8aHR0cDovL3B5dGhvbi5vcmcvZG9jL2N1cnJlbnQvbGliL25vZGU0MC5odG1sPmBfLgorCitUaGUgdGVtcGxhdGUgYWN0dWFsbHkgbG9va3MgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBmcm9tIHRlbXBpdGEgaW1wb3J0IEhUTUxUZW1wbGF0ZQorCisgICAgVklFV19URU1QTEFURSA9IEhUTUxUZW1wbGF0ZSgiIiJcCisgICAgPGh0bWw+CisgICAgIDxoZWFkPgorICAgICAgPHRpdGxlPnt7cGFnZS50aXRsZX19PC90aXRsZT4KKyAgICAgPC9oZWFkPgorICAgICA8Ym9keT4KKyAgICA8aDE+e3twYWdlLnRpdGxlfX08L2gxPgorCisgICAgPGRpdj57e3BhZ2UuY29udGVudHxodG1sfX08L2Rpdj4KKworICAgIDxocj4KKyAgICA8YSBocmVmPSJ7e3JlcS51cmx9fT9hY3Rpb249ZWRpdCI+RWRpdDwvYT4KKyAgICAgPC9ib2R5PgorICAgIDwvaHRtbD4KKyAgICAiIiIpCisKKyAgICBjbGFzcyBXaWtpQXBwKG9iamVjdCk6CisgICAgICAgIHZpZXdfdGVtcGxhdGUgPSBWSUVXX1RFTVBMQVRFCisgICAgICAgIC4uLgorCitBcyB5b3UgY2FuIHNlZSBpdCdzIGEgc2ltcGxlIHRlbXBsYXRlIHVzaW5nIHRoZSB0aXRsZSBhbmQgdGhlIGJvZHksCithbmQgYSBsaW5rIHRvIHRoZSBlZGl0IHNjcmVlbi4gIFdlIGNvcHkgdGhlIHRlbXBsYXRlIG9iamVjdCBpbnRvIGEKK2NsYXNzIG1ldGhvZCAoYGB2aWV3X3RlbXBsYXRlID0gVklFV19URU1QTEFURWBgKSBzbyB0aGF0IHBvdGVudGlhbGx5IGEKK3N1YmNsYXNzIGNvdWxkIG92ZXJyaWRlIHRoZXNlIHRlbXBsYXRlcy4KKworYGB0ZW1waXRhLkhUTUxUZW1wbGF0ZWBgIGlzIGEgdGVtcGxhdGUgdGhhdCBkb2VzIGF1dG9tYXRpYyBIVE1MCitlc2NhcGluZy4gIE91ciB3aWtpIHdpbGwganVzdCBiZSB3cml0dGVuIGluIHBsYWluIEhUTUwsIHNvIHdlIGRpc2FibGUKK2VzY2FwaW5nIG9mIHRoZSBjb250ZW50IHdpdGggYGB7e3BhZ2UuY29udGVudHxodG1sfX1gYC4KKworU28gbGV0J3MgbG9vayBhdCB0aGUgYGBhY3Rpb25fdmlld19HRVRgYCBtZXRob2QgYWdhaW46CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBkZWYgYWN0aW9uX3ZpZXdfR0VUKHNlbGYsIHJlcSwgcGFnZSk6CisgICAgICAgICAgICBpZiBub3QgcGFnZS5leGlzdHM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4Yy5IVFRQVGVtcG9yYXJ5UmVkaXJlY3QoCisgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uPXJlcS51cmwgKyAnP2FjdGlvbj1lZGl0JykKKyAgICAgICAgICAgIHRleHQgPSBzZWxmLnZpZXdfdGVtcGxhdGUuc3Vic3RpdHV0ZSgKKyAgICAgICAgICAgICAgICBwYWdlPXBhZ2UsIHJlcT1yZXEpCisgICAgICAgICAgICByZXNwID0gUmVzcG9uc2UodGV4dCkKKyAgICAgICAgICAgIHJlc3AubGFzdF9tb2RpZmllZCA9IHBhZ2UubXRpbWUKKyAgICAgICAgICAgIHJlc3AuY29uZGl0aW9uYWxfcmVzcG9uc2UgPSBUcnVlCisgICAgICAgICAgICByZXR1cm4gcmVzcAorCitUaGUgdGVtcGxhdGUgc2hvdWxkIGJlIHByZXR0eSBvYnZpb3VzIG5vdy4gIFdlIGNyZWF0ZSBhIHJlc3BvbnNlIHdpdGgKK2BgUmVzcG9uc2UodGV4dClgYCwgd2hpY2ggYWxyZWFkeSBoYXMgYSBkZWZhdWx0IENvbnRlbnQtVHlwZSBvZgorYGB0ZXh0L2h0bWxgYC4KKworVG8gYWxsb3cgY29uZGl0aW9uYWwgcmVzcG9uc2VzIHdlIHNldCBgYHJlc3AubGFzdF9tb2RpZmllZGBgLiAgWW91IGNhbgorc2V0IHRoaXMgYXR0cmlidXRlIHRvIGEgZGF0ZSwgTm9uZSAoZWZmZWN0aXZlbHkgcmVtb3ZpbmcgdGhlIGhlYWRlciksCithIHRpbWUgdHVwbGUgKGxpa2UgcHJvZHVjZWQgYnkgYGB0aW1lLmxvY2FsdGltZSgpYGApLCBvciBhcyBpbiB0aGlzCitjYXNlIHRvIGFuIGludGVnZXIgdGltZXN0YW1wLiAgSWYgeW91IGdldCB0aGUgdmFsdWUgYmFjayBpdCB3aWxsCithbHdheXMgYmUgYSBgZGF0ZXRpbWUKKzxodHRwOi8vcHl0aG9uLm9yZy9kb2MvY3VycmVudC9saWIvZGF0ZXRpbWUtZGF0ZXRpbWUuaHRtbD5gXyBvYmplY3QKKyhvciBOb25lKS4gIFdpdGggdGhpcyBoZWFkZXIgd2UgY2FuIHByb2Nlc3MgcmVxdWVzdHMgd2l0aAorSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVycywgYW5kIHJldHVybiBgYDMwNCBOb3QgTW9kaWZpZWRgYCBpZgorYXBwcm9wcmlhdGUuICBJdCB3b24ndCBhY3R1YWxseSBkbyB0aGF0IHVubGVzcyB5b3Ugc2V0CitgYHJlc3AuY29uZGl0aW9uYWxfcmVzcG9uc2VgYCB0byBUcnVlLgorCisuLiBub3RlOjoKKworICAgIElmIHlvdSBzdWJjbGFzcyBgYHdlYm9iLlJlc3BvbnNlYGAgeW91IGNhbiBzZXQgdGhlIGNsYXNzIGF0dHJpYnV0ZQorICAgIGBgZGVmYXVsdF9jb25kaXRpb25hbF9yZXNwb25zZSA9IFRydWVgYCBhbmQgdGhpcyBzZXR0aW5nIHdpbGwgYmUKKyAgICBvbiBieSBkZWZhdWx0LiAgWW91IGNhbiBhbHNvIHNldCBvdGhlciBkZWZhdWx0cywgbGlrZSB0aGUKKyAgICBgYGRlZmF1bHRfY2hhcnNldGBgIChgYCJ1dGY4ImBgKSwgb3IgYGBkZWZhdWx0X2NvbnRlbnRfdHlwZWBgCisgICAgKGBgInRleHQvaHRtbCJgYCkuCisKK1RoZSBFZGl0IFNjcmVlbgorLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBlZGl0IHNjcmVlbiB3aWxsIGJlIGltcGxlbWVudGVkIGluIHRoZSBtZXRob2QKK2BgYWN0aW9uX2VkaXRfR0VUYGAuICBUaGVyZSdzIGEgdGVtcGxhdGUgYW5kIGEgdmVyeSBzaW1wbGUgbWV0aG9kOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBFRElUX1RFTVBMQVRFID0gSFRNTFRlbXBsYXRlKCIiIlwKKyAgICA8aHRtbD4KKyAgICAgPGhlYWQ+CisgICAgICA8dGl0bGU+RWRpdDoge3twYWdlLnRpdGxlfX08L3RpdGxlPgorICAgICA8L2hlYWQ+CisgICAgIDxib2R5PgorICAgIHt7aWYgcGFnZS5leGlzdHN9fQorICAgIDxoMT5FZGl0OiB7e3BhZ2UudGl0bGV9fTwvaDE+CisgICAge3tlbHNlfX0KKyAgICA8aDE+Q3JlYXRlOiB7e3BhZ2UudGl0bGV9fTwvaDE+CisgICAge3tlbmRpZn19CisKKyAgICA8Zm9ybSBhY3Rpb249Int7cmVxLnBhdGhfdXJsfX0iIG1ldGhvZD0iUE9TVCI+CisgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im10aW1lIiB2YWx1ZT0ie3twYWdlLm10aW1lfX0iPgorICAgICBUaXRsZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InRpdGxlIiBzdHlsZT0id2lkdGg6IDcwJSIgdmFsdWU9Int7cGFnZS50aXRsZX19Ij48YnI+CisgICAgIENvbnRlbnQ6IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTYXZlIj4KKyAgICAgPGEgaHJlZj0ie3tyZXEucGF0aF91cmx9fSI+Q2FuY2VsPC9hPgorICAgICAgIDxicj4KKyAgICAgPHRleHRhcmVhIG5hbWU9ImNvbnRlbnQiIHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA3NSUiIHJvd3M9IjQwIj57e3BhZ2UuY29udGVudH19PC90ZXh0YXJlYT4KKyAgICAgICA8YnI+CisgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTYXZlIj4KKyAgICAgPGEgaHJlZj0ie3tyZXEucGF0aF91cmx9fSI+Q2FuY2VsPC9hPgorICAgIDwvZm9ybT4KKyAgICA8L2JvZHk+PC9odG1sPgorICAgICIiIikKKworICAgIGNsYXNzIFdpa2lBcHAob2JqZWN0KToKKyAgICAgICAgLi4uCisKKyAgICAgICAgZWRpdF90ZW1wbGF0ZSA9IEVESVRfVEVNUExBVEUKKworICAgICAgICBkZWYgYWN0aW9uX2VkaXRfR0VUKHNlbGYsIHJlcSwgcGFnZSk6CisgICAgICAgICAgICB0ZXh0ID0gc2VsZi5lZGl0X3RlbXBsYXRlLnN1YnN0aXR1dGUoCisgICAgICAgICAgICAgICAgcGFnZT1wYWdlLCByZXE9cmVxKQorICAgICAgICAgICAgcmV0dXJuIFJlc3BvbnNlKHRleHQpCisKK0FzIHlvdSBjYW4gc2VlLCBhbGwgdGhlIGFjdGlvbiBoZXJlIGlzIGluIHRoZSB0ZW1wbGF0ZS4KKworSW4gYGA8Zm9ybSBhY3Rpb249Int7cmVxLnBhdGhfdXJsfX0iIG1ldGhvZD0iUE9TVCI+YGAgd2Ugc3VibWl0IHRvCitgYHJlcS5wYXRoX3VybGBgOyB0aGF0J3MgZXZlcnl0aGluZyAqYnV0KiBgYD9hY3Rpb249ZWRpdGBgLiAgU28gd2UgYXJlCitQT1NUaW5nIHJpZ2h0IG92ZXIgdGhlIHZpZXcgcGFnZS4gIFRoaXMgaGFzIHRoZSBuaWNlIHNpZGUgZWZmZWN0IG9mCithdXRvbWF0aWNhbGx5IGludmFsaWRhdGluZyBhbnkgY2FjaGVzIG9mIHRoZSBvcmlnaW5hbCBwYWdlLiAgSXQgYWxzbworaXMgdmFndWVseSBgUkVTVGZ1bAorPGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmVwcmVzZW50YXRpb25hbF9TdGF0ZV9UcmFuc2Zlcj5gXy4KKworV2Ugc2F2ZSB0aGUgbGFzdCBtb2RpZmllZCB0aW1lIGluIGEgaGlkZGVuIGBgbXRpbWVgYCBmaWVsZC4gIFRoaXMgd2F5Cit3ZSBjYW4gZGV0ZWN0IGNvbmN1cnJlbnQgdXBkYXRlcy4gIElmIHN0YXJ0IGVkaXRpbmcgdGhlIHBhZ2Ugd2hvJ3MKK210aW1lIGlzIDEwMDAwMCwgYW5kIHNvbWVvbmUgZWxzZSBlZGl0cyBhbmQgc2F2ZXMgYSByZXZpc2lvbiBjaGFuZ2luZwordGhlIG10aW1lIHRvIDEwMDAxMCwgd2UgY2FuIHVzZSB0aGlzIGhpZGRlbiBmaWVsZCB0byBkZXRlY3QgdGhhdAorY29uZmxpY3QuICBBY3R1YWxseSByZXNvbHZpbmcgdGhlIGNvbmZsaWN0IGlzIGEgbGl0dGxlIHRyaWNreSBhbmQKK291dHNpZGUgdGhlIHNjb3BlIG9mIHRoaXMgcGFydGljdWxhciB0dXRvcmlhbCwgd2UnbGwganVzdCBub3RlIHRoZQorY29uZmxpY3QgdG8gdGhlIHVzZXIgaW4gYW4gZXJyb3IuCisKK0Zyb20gdGhlcmUgd2UganVzdCBoYXZlIGEgdmVyeSBzdHJhaWdodC1mb3J3YXJkIEhUTUwgZm9ybS4gIE5vdGUgdGhhdAord2UgZG9uJ3QgcXVvdGUgdGhlIHZhbHVlcyBiZWNhdXNlIHRoYXQgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IGJ5CitgYEhUTUxUZW1wbGF0ZWBgOyBpZiB5b3UgYXJlIHVzaW5nIHNvbWV0aGluZyBsaWtlIGBgc3RyaW5nLlRlbXBsYXRlYGAKK29yIGEgdGVtcGxhdGluZyBsYW5ndWFnZSB0aGF0IGRvZXNuJ3QgZG8gYXV0b21hdGljIHF1b3RpbmcsIHlvdSBoYXZlCit0byBiZSBjYXJlZnVsIHRvIHF1b3RlIGFsbCB0aGUgZmllbGQgdmFsdWVzLgorCitXZSBkb24ndCBoYXZlIGFueSBlcnJvciBjb25kaXRpb25zIGluIG91ciBhcHBsaWNhdGlvbiwgYnV0IGlmIHRoZXJlCit3ZXJlIGVycm9yIGNvbmRpdGlvbnMgd2UgbWlnaHQgaGF2ZSB0byByZS1kaXNwbGF5IHRoaXMgZm9ybSB3aXRoIHRoZQoraW5wdXQgdmFsdWVzIHRoZSB1c2VyIGFscmVhZHkgZ2F2ZS4gIEluIHRoYXQgY2FzZSB3ZSdkIGRvIHNvbWV0aGluZworbGlrZTo6CisKKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idGl0bGUiCisgICAgIHZhbHVlPSJ7e3JlcS5wYXJhbXMuZ2V0KCd0aXRsZScsIHBhZ2UudGl0bGUpfX0iPgorCitUaGlzIHdheSB3ZSB1c2UgdGhlIHZhbHVlIGluIHRoZSByZXF1ZXN0IChgYHJlcS5wYXJhbXNgYCBpcyBib3RoIHRoZQorcXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMgYW5kIGFueSB2YXJpYWJsZXMgaW4gYSBQT1NUIHJlc3BvbnNlKSwgYnV0IGlmCit0aGVyZSBpcyBubyB2YWx1ZSAoZS5nLiwgZmlyc3QgcmVxdWVzdCkgdGhlbiB3ZSB1c2UgdGhlIHBhZ2UgdmFsdWVzLgorCitQcm9jZXNzaW5nIHRoZSBGb3JtCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBmb3JtIHN1Ym1pdHMgdG8gYGBhY3Rpb25fdmlld19QT1NUYGAgKGBgdmlld2BgIGlzIHRoZSBkZWZhdWx0CithY3Rpb24pLiAgU28gd2UgaGF2ZSB0byBpbXBsZW1lbnQgdGhhdCBtZXRob2Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGNsYXNzIFdpa2lBcHAob2JqZWN0KToKKyAgICAgICAgLi4uCisKKyAgICAgICAgZGVmIGFjdGlvbl92aWV3X1BPU1Qoc2VsZiwgcmVxLCBwYWdlKToKKyAgICAgICAgICAgIHN1Ym1pdF9tdGltZSA9IGludChyZXEucGFyYW1zLmdldCgnbXRpbWUnKSBvciAnMCcpIG9yIE5vbmUKKyAgICAgICAgICAgIGlmIHBhZ2UubXRpbWUgIT0gc3VibWl0X210aW1lOgorICAgICAgICAgICAgICAgIHJldHVybiBleGMuSFRUUFByZWNvbmRpdGlvbkZhaWxlZCgKKyAgICAgICAgICAgICAgICAgICAgIlRoZSBwYWdlIGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgeW91IHN0YXJ0ZWQgZWRpdGluZyBpdCIpCisgICAgICAgICAgICBwYWdlLnNldCgKKyAgICAgICAgICAgICAgICB0aXRsZT1yZXEucGFyYW1zWyd0aXRsZSddLAorICAgICAgICAgICAgICAgIGNvbnRlbnQ9cmVxLnBhcmFtc1snY29udGVudCddKQorICAgICAgICAgICAgcmVzcCA9IGV4Yy5IVFRQU2VlT3RoZXIoCisgICAgICAgICAgICAgICAgbG9jYXRpb249cmVxLnBhdGhfdXJsKQorICAgICAgICAgICAgcmV0dXJuIHJlc3AKKworVGhlIGZpcnN0IHRoaW5nIHdlIGRvIGlzIGNoZWNrIHRoZSBtdGltZSB2YWx1ZS4gIEl0IGNhbiBiZSBhbiBlbXB0eQorc3RyaW5nICh3aGVuIHRoZXJlJ3Mgbm8gbXRpbWUsIGxpa2Ugd2hlbiB5b3UgYXJlIGNyZWF0aW5nIGEgcGFnZSkgb3IKK2FuIGludGVnZXIuICBgYGludChyZXEucGFyYW1zLmdldCgndGltZScpIG9yICcwJykgb3IgTm9uZWBgIGJhc2ljYWxseQorbWFrZXMgc3VyZSB3ZSBkb24ndCBwYXNzIGBgIiJgYCB0byBgYGludCgpYGAgKHdoaWNoIGlzIGFuIGVycm9yKSB0aGVuCit0dXJucyAwIGludG8gTm9uZSAoYGAwIG9yIE5vbmVgYCB3aWxsIGV2YWx1YXRlIHRvIE5vbmUgaW4gUHl0aG9uIC0tCitgYGZhbHNlX3ZhbHVlIG9yIG90aGVyX3ZhbHVlYGAgaW4gUHl0aG9uIHJlc29sdmVzIHRvIGBgb3RoZXJfdmFsdWVgYCkuCitJZiBpdCBmYWlscyB3ZSBqdXN0IGdpdmUgYSBub3QtdmVyeS1oZWxwZnVsIGVycm9yIG1lc3NhZ2UsIHVzaW5nIGBgNDEyCitQcmVjb25kaXRpb24gRmFpbGVkYGAgKHR5cGljYWxseSBwcmVjb25kaXRpb25zIGFyZSBIVFRQIGhlYWRlcnMgbGlrZQorYGBJZi1Vbm1vZGlmaWVkLVNpbmNlYGAsIGJ1dCB3ZSBjYW4ndCByZWFsbHkgZ2V0IHRoZSBicm93c2VyIHRvIHNlbmQKK3JlcXVlc3RzIGxpa2UgdGhhdCwgc28gd2UgdXNlIHRoZSBoaWRkZW4gZmllbGQgaW5zdGVhZCkuCisKKy4uIG5vdGU6OgorCisgICAgRXJyb3Igc3RhdHVzZXMgaW4gSFRUUCBhcmUgb2Z0ZW4gdW5kZXItdXNlZCBiZWNhdXNlIHBlb3BsZSB0aGluaworICAgIHRoZXkgbmVlZCB0byBlaXRoZXIgcmV0dXJuIGFuIGVycm9yICh1c2VmdWwgZm9yIG1hY2hpbmVzKSBvciBhbgorICAgIGVycm9yIG1lc3NhZ2Ugb3IgaW50ZXJmYWNlICh1c2VmdWwgZm9yIGh1bWFucykuICBJbiBmYWN0IHlvdSBjYW4KKyAgICBkbyBib3RoOiB5b3UgY2FuIGdpdmUgYW55IGh1bWFuIHJlYWRhYmxlIGVycm9yIG1lc3NhZ2Ugd2l0aCB5b3VyCisgICAgZXJyb3IgcmVzcG9uc2UuCisKKyAgICBPbmUgcHJvYmxlbSBpcyB0aGF0IEludGVybmV0IEV4cGxvcmVyIHdpbGwgcmVwbGFjZSBlcnJvciBtZXNzYWdlcworICAgIHdpdGggaXRzIG93biBpbmNyZWRpYmx5IHVuaGVscGZ1bCBlcnJvciBtZXNzYWdlcy4gIEhvd2V2ZXIsIGl0CisgICAgd2lsbCBvbmx5IGRvIHRoaXMgaWYgdGhlIGVycm9yIG1lc3NhZ2UgaXMgc2hvcnQuICBJZiBpdCdzIGZhaXJseQorICAgIGxhcmdlICg0S2IgaXMgbGFyZ2UgZW5vdWdoKSBpdCB3aWxsIHNob3cgdGhlIGVycm9yIG1lc3NhZ2UgaXQgd2FzCisgICAgZ2l2ZW4uICBZb3UgY2FuIGxvYWQgeW91ciBlcnJvciB3aXRoIGEgYmlnIEhUTUwgY29tbWVudCB0bworICAgIGFjY29tcGxpc2ggdGhpcywgbGlrZSBgYCI8IS0tICVzIC0tPiIgJSAoJ3gnKjQwMDApYGAuCisKKyAgICBZb3UgY2FuIGNoYW5nZSB0aGUgc3RhdHVzIG9mIGFueSByZXNwb25zZSB3aXRoIGBgcmVzcC5zdGF0dXNfaW50ID0KKyAgICA0MTJgYCwgb3IgeW91IGNhbiBjaGFuZ2UgdGhlIGJvZHkgb2YgYW4gYGBleGMuSFRUUFNvbWV0aGluZ2BgIHdpdGgKKyAgICBgYHJlc3AuYm9keSA9IG5ld19ib2R5YGAuICBUaGUgcHJpbWFyeSBhZHZhbnRhZ2Ugb2YgdXNpbmcgdGhlCisgICAgY2xhc3NlcyBpbiBgYHdlYm9iLmV4Y2BgIGlzIGdpdmluZyB0aGUgcmVzcG9uc2UgYSBjbGVhciBuYW1lIGFuZCBhCisgICAgYm9pbGVycGxhdGUgZXJyb3IgbWVzc2FnZS4KKworQWZ0ZXIgd2UgY2hlY2sgdGhlIG10aW1lIHdlIGdldCB0aGUgZm9ybSBwYXJhbWV0ZXJzIGZyb20KK2BgcmVxLnBhcmFtc2BgIGFuZCBpc3N1ZSBhIHJlZGlyZWN0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZpZXcgcGFnZS4KK2BgMzAzIFNlZSBPdGhlcmBgIGlzIGEgZ29vZCByZXNwb25zZSB0byBnaXZlIGFmdGVyIGFjY2VwdGluZyBhIFBPU1QKK2Zvcm0gc3VibWlzc2lvbiwgYXMgaXQgZ2V0cyByaWQgb2YgdGhlIFBPU1QgKG5vIHdhcm5pbmcgbWVzc2FnZXMgZm9yIHRoZQordXNlciBpZiB0aGV5IHRyeSB0byBnbyBiYWNrKS4KKworSW4gdGhpcyBleGFtcGxlIHdlJ3ZlIHVzZWQgYGByZXEucGFyYW1zYGAgZm9yIGFsbCB0aGUgZm9ybSB2YWx1ZXMuICBJZgord2Ugd2FudGVkIHRvIGJlIHNwZWNpZmljIGFib3V0IHdoZXJlIHdlIGdldCB0aGUgdmFsdWVzIGZyb20sIHRoZXkKK2NvdWxkIGNvbWUgZnJvbSBgYHJlcS5HRVRgYCAodGhlIHF1ZXJ5IHN0cmluZywgYSBtaXNub21lciBzaW5jZSB0aGUKK3F1ZXJ5IHN0cmluZyBpcyBwcmVzZW50IGV2ZW4gaW4gUE9TVCByZXF1ZXN0cykgb3IgYGByZXEuUE9TVGBgIChhIFBPU1QKK2Zvcm0gYm9keSkuICBXaGlsZSBzb21ldGltZXMgaXQncyBuaWNlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlc2UKK3R3byBsb2NhdGlvbnMsIGZvciB0aGUgbW9zdCBwYXJ0IGl0IGRvZXNuJ3QgbWF0dGVyLiAgSWYgeW91IHdhbnQgdG8KK2NoZWNrIHRoZSByZXF1ZXN0IG1ldGhvZCAoZS5nLiwgbWFrZSBzdXJlIHlvdSBjYW4ndCBjaGFuZ2UgYSBwYWdlIHdpdGgKK2EgR0VUIHJlcXVlc3QpIHRoZXJlJ3Mgbm8gcmVhc29uIHRvIGRvIGl0IGJ5IGFjY2Vzc2luZyB0aGVzZQorbWV0aG9kLXNwZWNpZmljIGdldHRlcnMuICBJdCdzIGJldHRlciB0byBqdXN0IGhhbmRsZSB0aGUgbWV0aG9kCitzcGVjaWZpY2FsbHkuICBXZSBkbyBpdCBoZXJlIGJ5IGluY2x1ZGluZyB0aGUgcmVxdWVzdCBtZXRob2QgaW4gb3VyCitkaXNwYXRjaGVyIChkaXNwYXRjaGluZyB0byBgYGFjdGlvbl92aWV3X0dFVGBgIG9yCitgYGFjdGlvbl92aWV3X1BPU1RgYCkuCisKKworQ29va2llcworLS0tLS0tLQorCitPbmUgbGFzdCBsaXR0bGUgaW1wcm92ZW1lbnQgd2UgY2FuIGRvIGlzIHNob3cgdGhlIHVzZXIgYSBtZXNzYWdlIHdoZW4KK3RoZXkgdXBkYXRlIHRoZSBwYWdlLCBzbyBpdCdzIG5vdCBxdWl0ZSBzbyBteXN0ZXJpb3VzbHkganVzdCBhbm90aGVyCitwYWdlIHZpZXcuCisKK0Egc2ltcGxlIHdheSB0byBkbyB0aGlzIGlzIHRvIHNldCBhIGNvb2tpZSBhZnRlciB0aGUgc2F2ZSwgdGhlbgorZGlzcGxheSBpdCBpbiB0aGUgcGFnZSB2aWV3LiAgVG8gc2V0IGl0IG9uIHNhdmUsIHdlIGFkZCBhIGxpdHRsZSB0bworYGBhY3Rpb25fdmlld19QT1NUYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiBhY3Rpb25fdmlld19QT1NUKHNlbGYsIHJlcSwgcGFnZSk6CisgICAgICAgIC4uLgorICAgICAgICByZXNwID0gZXhjLkhUVFBTZWVPdGhlcigKKyAgICAgICAgICAgIGxvY2F0aW9uPXJlcS5wYXRoX3VybCkKKyAgICAgICAgcmVzcC5zZXRfY29va2llKCdtZXNzYWdlJywgJ1BhZ2UgdXBkYXRlZCcpCisgICAgICAgIHJldHVybiByZXNwCisKK0FuZCB0aGVuIGluIGBgYWN0aW9uX3ZpZXdfR0VUYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworCisgICAgVklFV19URU1QTEFURSA9IEhUTUxUZW1wbGF0ZSgiIiJcCisgICAgLi4uCisgICAge3tpZiBtZXNzYWdlfX0KKyAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjOTlmIj57e21lc3NhZ2V9fTwvZGl2PgorICAgIHt7ZW5kaWZ9fQorICAgIC4uLiIiIikKKworICAgIGNsYXNzIFdpa2lBcHAob2JqZWN0KToKKyAgICAgICAgLi4uCisKKyAgICAgICAgZGVmIGFjdGlvbl92aWV3X0dFVChzZWxmLCByZXEsIHBhZ2UpOgorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICBpZiByZXEuY29va2llcy5nZXQoJ21lc3NhZ2UnKToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmVxLmNvb2tpZXNbJ21lc3NhZ2UnXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gTm9uZQorICAgICAgICAgICAgdGV4dCA9IHNlbGYudmlld190ZW1wbGF0ZS5zdWJzdGl0dXRlKAorICAgICAgICAgICAgICAgIHBhZ2U9cGFnZSwgcmVxPXJlcSwgbWVzc2FnZT1tZXNzYWdlKQorICAgICAgICAgICAgcmVzcCA9IFJlc3BvbnNlKHRleHQpCisgICAgICAgICAgICBpZiBtZXNzYWdlOgorICAgICAgICAgICAgICAgIHJlc3AuZGVsZXRlX2Nvb2tpZSgnbWVzc2FnZScpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3AubGFzdF9tb2RpZmllZCA9IHBhZ2UubXRpbWUKKyAgICAgICAgICAgICAgICByZXNwLmNvbmRpdGlvbmFsX3Jlc3BvbnNlID0gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIHJlc3AKKworYGByZXEuY29va2llc2BgIGlzIGp1c3QgYSBkaWN0aW9uYXJ5LCBhbmQgd2UgYWxzbyBkZWxldGUgdGhlIGNvb2tpZSBpZgoraXQgaXMgcHJlc2VudCAoc28gdGhlIG1lc3NhZ2UgZG9lc24ndCBrZWVwIGdldHRpbmcgc2V0KS4gIFRoZQorY29uZGl0aW9uYWwgcmVzcG9uc2Ugc3R1ZmYgb25seSBhcHBsaWVzIHdoZW4gdGhlcmUgaXNuJ3QgYW55CittZXNzYWdlLCBhcyBtZXNzYWdlcyBhcmUgcHJpdmF0ZS4gIEFub3RoZXIgYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8KK2Rpc3BsYXkgdGhlIG1lc3NhZ2Ugd2l0aCBKYXZhc2NyaXB0LCBsaWtlOjoKKworICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiByZWFkQ29va2llKG5hbWUpIHsKKyAgICAgICAgdmFyIG5hbWVFUSA9IG5hbWUgKyAiPSI7CisgICAgICAgIHZhciBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpOworICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBjYS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGMgPSBjYVtpXTsKKyAgICAgICAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PSAnICcpIGMgPSBjLnN1YnN0cmluZygxLGMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChjLmluZGV4T2YobmFtZUVRKSA9PSAwKSByZXR1cm4gYy5zdWJzdHJpbmcobmFtZUVRLmxlbmd0aCxjLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgZnVuY3Rpb24gY3JlYXRlQ29va2llKG5hbWUsIHZhbHVlLCBkYXlzKSB7CisgICAgICAgIGlmIChkYXlzKSB7CisgICAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkrKGRheXMqMjQqNjAqNjAqMTAwMCkpOworICAgICAgICAgICAgdmFyIGV4cGlyZXMgPSAiOyBleHBpcmVzPSIrZGF0ZS50b0dNVFN0cmluZygpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFyIGV4cGlyZXMgPSAiIjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lKyI9Iit2YWx1ZStleHBpcmVzKyI7IHBhdGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gZXJhc2VDb29raWUobmFtZSkgeworICAgICAgICBjcmVhdGVDb29raWUobmFtZSwgIiIsIC0xKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzaG93TWVzc2FnZSgpIHsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSByZWFkQ29va2llKCdtZXNzYWdlJyk7CisgICAgICAgIGlmIChtZXNzYWdlKSB7CisgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZScpOworICAgICAgICAgICAgZWwuaW5uZXJIVE1MID0gbWVzc2FnZTsKKyAgICAgICAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgICAgICAgIGVyYXNlQ29va2llKCdtZXNzYWdlJyk7CisgICAgICAgIH0KKyAgICB9CisgICAgPC9zY3JpcHQ+CisKK1RoZW4gcHV0IGBgPGRpdiBpZD0ibWVzc2FhZ2UiIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L2Rpdj5gYCBpbiB0aGUKK3BhZ2Ugc29tZXdoZXJlLiAgVGhpcyBoYXMgdGhlIGFkdmFudGFnZSBvZiBiZWluZyB2ZXJ5IGNhY2hlYWJsZSBhbmQKK3NpbXBsZSBvbiB0aGUgc2VydmVyIHNpZGUuCisKK0NvbmNsdXNpb24KKy0tLS0tLS0tLS0KKworV2UncmUgZG9uZSwgaHVycmFoIQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3NldHVwLmNmZyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9zZXR1cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc1Y2VjMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9zZXR1cC5jZmcKQEAgLTAsMCArMSwxOSBAQAorW2FsaWFzZXNdCitkaXN0cmlidXRlID0gcmVnaXN0ZXIgc2Rpc3QgYmRpc3Rfd2hlZWwgdXBsb2FkCitkZXYgPSBkZXZlbG9wIGVhc3lfaW5zdGFsbCB3ZWJvYlt0ZXN0aW5nXQorZG9jcyA9IGRldmVsb3AgZWFzeV9pbnN0YWxsIHdlYm9iW2RvY3NdCisKK1tub3NldGVzdHNdCitkZXRhaWxlZC1lcnJvcnMgPSBUcnVlCitjb3Zlci1lcmFzZSA9IFRydWUKK2NvdmVyLXBhY2thZ2UgPSB3ZWJvYgorbm9jYXB0dXJlID0gVHJ1ZQorCitbd2hlZWxdCit1bml2ZXJzYWwgPSAxCisKK1tlZ2dfaW5mb10KK3RhZ19idWlsZCA9IAordGFnX3N2bl9yZXZpc2lvbiA9IDAKK3RhZ19kYXRlID0gMAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivc2V0dXAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivc2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5ZTljZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi9zZXR1cC5weQpAQCAtMCwwICsxLDYxIEBACitmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCisKK3ZlcnNpb24gPSAnMS41LjBhMCcKKwordGVzdGluZ19leHRyYXMgPSBbJ25vc2UnLCAnY292ZXJhZ2UnXQorCitkb2NzX2V4dHJhcyA9IFsnU3BoaW54J10KKworc2V0dXAoCisgICAgbmFtZT0nV2ViT2InLAorICAgIHZlcnNpb249dmVyc2lvbiwKKyAgICBkZXNjcmlwdGlvbj0iV1NHSSByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3QiLAorICAgIGxvbmdfZGVzY3JpcHRpb249IiIiXAorV2ViT2IgcHJvdmlkZXMgd3JhcHBlcnMgYXJvdW5kIHRoZSBXU0dJIHJlcXVlc3QgZW52aXJvbm1lbnQsIGFuZCBhbgorb2JqZWN0IHRvIGhlbHAgY3JlYXRlIFdTR0kgcmVzcG9uc2VzLgorCitUaGUgb2JqZWN0cyBtYXAgbXVjaCBvZiB0aGUgc3BlY2lmaWVkIGJlaGF2aW9yIG9mIEhUVFAsIGluY2x1ZGluZworaGVhZGVyIHBhcnNpbmcgYW5kIGFjY2Vzc29ycyBmb3Igb3RoZXIgc3RhbmRhcmQgcGFydHMgb2YgdGhlCitlbnZpcm9ubWVudC4KKworWW91IG1heSBpbnN0YWxsIHRoZSBgaW4tZGV2ZWxvcG1lbnQgdmVyc2lvbiBvZiBXZWJPYgorPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvemlwYmFsbC9tYXN0ZXIjZWdnPVdlYk9iLWRldj5gXyB3aXRoCitgYHBpcCBpbnN0YWxsIFdlYk9iPT1kZXZgYCAob3IgYGBlYXN5X2luc3RhbGwgV2ViT2I9PWRldmBgKS4KKworKiBgV2ViT2IgcmVmZXJlbmNlIDxodHRwOi8vZG9jcy53ZWJvYi5vcmcvZW4vbGF0ZXN0L3JlZmVyZW5jZS5odG1sPmBfCisqIGBCdWcgdHJhY2tlciA8aHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYi9pc3N1ZXM+YF8KKyogYEJyb3dzZSBzb3VyY2UgY29kZSA8aHR0cHM6Ly9naXRodWIuY29tL1B5bG9ucy93ZWJvYj5gXworKiBgTWFpbGluZyBsaXN0IDxodHRwOi8vYml0Lmx5L3Bhc3RlLXVzZXJzPmBfCisqIGBSZWxlYXNlIG5ld3MgPGh0dHA6Ly9kb2NzLndlYm9iLm9yZy9lbi9sYXRlc3QvbmV3cy5odG1sPmBfCisqIGBEZXRhaWxlZCBjaGFuZ2Vsb2cgPGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvY29tbWl0cy9tYXN0ZXI+YF8KKyIiIiwKKyAgICBjbGFzc2lmaWVycz1bCisgICAgICAgICJEZXZlbG9wbWVudCBTdGF0dXMgOjogNiAtIE1hdHVyZSIsCisgICAgICAgICJJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzIiwKKyAgICAgICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlIiwKKyAgICAgICAgIlRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IFdTR0kiLAorICAgICAgICAiVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogV1NHSSA6OiBBcHBsaWNhdGlvbiIsCisgICAgICAgICJUb3BpYyA6OiBJbnRlcm5ldCA6OiBXV1cvSFRUUCA6OiBXU0dJIDo6IE1pZGRsZXdhcmUiLAorICAgICAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNiIsCisgICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43IiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjIiLAorICAgICAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMyIsCisgICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy40IiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBDUHl0aG9uIiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBQeVB5IiwKKyAgICBdLAorICAgIGtleXdvcmRzPSd3c2dpIHJlcXVlc3Qgd2ViIGh0dHAnLAorICAgIGF1dGhvcj0nSWFuIEJpY2tpbmcnLAorICAgIGF1dGhvcl9lbWFpbD0naWFuYkBjb2xvcnN0dWR5LmNvbScsCisgICAgbWFpbnRhaW5lcj0nUHlsb25zIFByb2plY3QnLAorICAgIHVybD0naHR0cDovL3dlYm9iLm9yZy8nLAorICAgIGxpY2Vuc2U9J01JVCcsCisgICAgcGFja2FnZXM9Wyd3ZWJvYiddLAorICAgIHppcF9zYWZlPVRydWUsCisgICAgdGVzdF9zdWl0ZT0nbm9zZS5jb2xsZWN0b3InLAorICAgIHRlc3RzX3JlcXVpcmU9Wydub3NlJ10sCisgICAgZXh0cmFzX3JlcXVpcmUgPSB7CisgICAgICAgICd0ZXN0aW5nJzp0ZXN0aW5nX2V4dHJhcywKKyAgICAgICAgJ2RvY3MnOmRvY3NfZXh0cmFzLAorICAgICAgICB9LAorKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3RveC5pbmkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2IvdG94LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTc4N2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3RveC5pbmkKQEAgLTAsMCArMSw1MSBAQAorW3RveF0KK2Vudmxpc3QgPQorICAgIHB5MjYscHkyNyxweTMyLHB5MzMscHkzNCxweXB5LHB5cHkzLAorICAgIHtweTIscHkzfS1jb3Zlcixjb3ZlcmFnZQorCitbdGVzdGVudl0KKyMgTW9zdCBvZiB0aGVzZSBhcmUgZGVmYXVsdHMgYnV0IGlmIHlvdSBzcGVjaWZ5IGFueSB5b3UgY2FuJ3QgZmFsbCBiYWNrCisjIHRvIGRlZmF1bHRzIGZvciBvdGhlcnMuCitiYXNlcHl0aG9uID0KKyAgICBweTI2OiBweXRob24yLjYKKyAgICBweTI3OiBweXRob24yLjcKKyAgICBweTMyOiBweXRob24zLjIKKyAgICBweTMzOiBweXRob24zLjMKKyAgICBweTM0OiBweXRob24zLjQKKyAgICBweXB5OiBweXB5CisgICAgcHlweTM6IHB5cHkzCisgICAgcHkyOiBweXRob24yLjcKKyAgICBweTM6IHB5dGhvbjMuNAorCitjb21tYW5kcyA9CisgICAgcGlwIGluc3RhbGwgd2Vib2JbdGVzdGluZ10KKyAgICBub3NldGVzdHMgLS13aXRoLXh1bml0IC0teHVuaXQtZmlsZT1ub3NldGVzdHMte2Vudm5hbWV9LnhtbCB7cG9zYXJnczp9CisKK1t0ZXN0ZW52OnB5Mi1jb3Zlcl0KK2NvbW1hbmRzID0KKyAgICBwaXAgaW5zdGFsbCB3ZWJvYlt0ZXN0aW5nXQorICAgIGNvdmVyYWdlIHJ1biAtLXNvdXJjZT13ZWJvYiB7ZW52YmluZGlyfS9ub3NldGVzdHMKKyAgICBjb3ZlcmFnZSB4bWwgLW8gY292ZXJhZ2UtcHkyLnhtbAorc2V0ZW52ID0KKyAgICBDT1ZFUkFHRV9GSUxFPS5jb3ZlcmFnZS5weTIKKworW3Rlc3RlbnY6cHkzLWNvdmVyXQorY29tbWFuZHMgPQorICAgIHBpcCBpbnN0YWxsIHdlYm9iW3Rlc3RpbmddCisgICAgY292ZXJhZ2UgcnVuIC0tc291cmNlPXdlYm9iIHtlbnZiaW5kaXJ9L25vc2V0ZXN0cworICAgIGNvdmVyYWdlIHhtbCAtbyBjb3ZlcmFnZS1weTMueG1sCitzZXRlbnYgPQorICAgIENPVkVSQUdFX0ZJTEU9LmNvdmVyYWdlLnB5MworCitbdGVzdGVudjpjb3ZlcmFnZV0KK2Jhc2VweXRob24gPSBweXRob24zLjQKK2NvbW1hbmRzID0gCisgICAgY292ZXJhZ2UgZXJhc2UKKyAgICBjb3ZlcmFnZSBjb21iaW5lCisgICAgY292ZXJhZ2UgeG1sCisgICAgY292ZXJhZ2UgcmVwb3J0IC0tc2hvdy1taXNzaW5nIC0tZmFpbC11bmRlcj0xMDAKK2RlcHMgPQorICAgIGNvdmVyYWdlCitzZXRlbnYgPQorICAgIENPVkVSQUdFX0ZJTEU9LmNvdmVyYWdlCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi90b3hmYXN0LmluaSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi90b3hmYXN0LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzM2NmNhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3RveGZhc3QuaW5pCkBAIC0wLDAgKzEsMTAgQEAKK1t0b3hdCitlbnZsaXN0ID0KKyAgICBweTI2LHB5MzIKKworW3Rlc3RlbnZdCitjb21tYW5kcyA9CisgICAgcHl0aG9uIHNldHVwLnB5IGRldgorICAgIHB5dGhvbiBzZXR1cC5weSBub3NldGVzdHMKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcxMzIxMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9fX2luaXRfXy5weQpAQCAtMCwwICsxLDExIEBACitmcm9tIHdlYm9iLmRhdGV0aW1lX3V0aWxzIGltcG9ydCAqCitmcm9tIHdlYm9iLnJlcXVlc3QgaW1wb3J0ICoKK2Zyb20gd2Vib2IucmVzcG9uc2UgaW1wb3J0ICoKK2Zyb20gd2Vib2IudXRpbCBpbXBvcnQgaHRtbF9lc2NhcGUKKworX19hbGxfXyA9IFsKKyAgICAnUmVxdWVzdCcsICdMZWdhY3lSZXF1ZXN0JywgJ1Jlc3BvbnNlJywgJ1VUQycsICdkYXknLCAnd2VlaycsICdob3VyJywKKyAgICAnbWludXRlJywgJ3NlY29uZCcsICdtb250aCcsICd5ZWFyJywgJ2h0bWxfZXNjYXBlJworXQorCitCYXNlUmVxdWVzdC5SZXNwb25zZUNsYXNzID0gUmVzcG9uc2UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9hY2NlcHRwYXJzZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9hY2NlcHRwYXJzZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmYyNjQzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2FjY2VwdHBhcnNlLnB5CkBAIC0wLDAgKzEsMzQzIEBACisiIiIKK1BhcnNlcyBhIHZhcmlldHkgb2YgYGBBY2NlcHQtKmBgIGhlYWRlcnMuCisKK1RoZXNlIGhlYWRlcnMgZ2VuZXJhbGx5IHRha2UgdGhlIGZvcm0gb2Y6OgorCisgICAgdmFsdWUxOyBxPTAuNSwgdmFsdWUyOyBxPTAKKworV2hlcmUgdGhlIGBgcWBgIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gIEluIHRoZW9yeSBvdGhlciBwYXJhbWV0ZXJzCitleGlzdHMsIGJ1dCB0aGlzIGlnbm9yZXMgdGhlbS4KKyIiIgorCitpbXBvcnQgcmUKKworZnJvbSB3ZWJvYi5oZWFkZXJzIGltcG9ydCBfdHJhbnNfbmFtZSBhcyBoZWFkZXJfdG9fa2V5Citmcm9tIHdlYm9iLnV0aWwgaW1wb3J0ICgKKyAgICBoZWFkZXJfZG9jc3RyaW5nLAorICAgIHdhcm5fZGVwcmVjYXRpb24sCisgICAgKQorCitwYXJ0X3JlID0gcmUuY29tcGlsZSgKKyAgICByJyxccyooW15cczssXG5dKykoPzpbXixdKj87XHMqcT0oWzAtOS5dKikpPycpCisKKworCisKK2RlZiBfd2Fybl9maXJzdF9tYXRjaCgpOgorICAgICMgVE9ETzogcmVtb3ZlIC5maXJzdF9tYXRjaCBpbiB2ZXJzaW9uIDEuMworICAgIHdhcm5fZGVwcmVjYXRpb24oIlVzZSBiZXN0X21hdGNoIGluc3RlYWQiLCAnMS4yJywgMykKKworY2xhc3MgQWNjZXB0KG9iamVjdCk6CisgICAgIiIiCisgICAgUmVwcmVzZW50cyBhIGdlbmVyaWMgYGBBY2NlcHQtKmBgIHN0eWxlIGhlYWRlci4KKworICAgIFRoaXMgb2JqZWN0IHNob3VsZCBub3QgYmUgbW9kaWZpZWQuICBUbyBhZGQgaXRlbXMgeW91IGNhbiB1c2UKKyAgICBgYGFjY2VwdF9vYmogKyAnYWNjZXB0X3RoaW5nJ2BgIHRvIGdldCBhIG5ldyBvYmplY3QKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBoZWFkZXJfdmFsdWUpOgorICAgICAgICBzZWxmLmhlYWRlcl92YWx1ZSA9IGhlYWRlcl92YWx1ZQorICAgICAgICBzZWxmLl9wYXJzZWQgPSBsaXN0KHNlbGYucGFyc2UoaGVhZGVyX3ZhbHVlKSkKKyAgICAgICAgc2VsZi5fcGFyc2VkX25vbnplcm8gPSBbKG0scSkgZm9yIChtLHEpIGluIHNlbGYuX3BhcnNlZCBpZiBxXQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBwYXJzZSh2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBQYXJzZSBgYEFjY2VwdC0qYGAgc3R5bGUgaGVhZGVyLgorCisgICAgICAgIFJldHVybiBpdGVyYXRvciBvZiBgYCh2YWx1ZSwgcXVhbGl0eSlgYCBwYWlycy4KKyAgICAgICAgYGBxdWFsaXR5YGAgZGVmYXVsdHMgdG8gMS4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciBtYXRjaCBpbiBwYXJ0X3JlLmZpbmRpdGVyKCcsJyt2YWx1ZSk6CisgICAgICAgICAgICBuYW1lID0gbWF0Y2guZ3JvdXAoMSkKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gJ3EnOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBxdWFsaXR5ID0gbWF0Y2guZ3JvdXAoMikgb3IgJycKKyAgICAgICAgICAgIGlmIHF1YWxpdHk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBxdWFsaXR5ID0gbWF4KG1pbihmbG9hdChxdWFsaXR5KSwgMSksIDApCisgICAgICAgICAgICAgICAgICAgIHlpZWxkIChuYW1lLCBxdWFsaXR5KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB5aWVsZCAobmFtZSwgMSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMoJXIpPicgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHN0cihzZWxmKSkKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgZm9yIG0scSBpbiBzb3J0ZWQoCisgICAgICAgICAgICBzZWxmLl9wYXJzZWRfbm9uemVybywKKyAgICAgICAgICAgIGtleT1sYW1iZGEgaTogaVsxXSwKKyAgICAgICAgICAgIHJldmVyc2U9VHJ1ZQorICAgICAgICApOgorICAgICAgICAgICAgeWllbGQgbQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGZvciBtYXNrLCBxdWFsaXR5IGluIHNlbGYuX3BhcnNlZDoKKyAgICAgICAgICAgIGlmIHF1YWxpdHkgIT0gMToKKyAgICAgICAgICAgICAgICBtYXNrID0gJyVzO3E9JTAuKmYnICUgKAorICAgICAgICAgICAgICAgICAgICBtYXNrLCBtaW4obGVuKHN0cihxdWFsaXR5KS5zcGxpdCgnLicpWzFdKSwgMyksIHF1YWxpdHkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1hc2spCisgICAgICAgIHJldHVybiAnLCAnLmpvaW4ocmVzdWx0KQorCisgICAgZGVmIF9fYWRkX18oc2VsZiwgb3RoZXIsIHJldmVyc2VkPUZhbHNlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgQWNjZXB0KToKKyAgICAgICAgICAgIG90aGVyID0gb3RoZXIuaGVhZGVyX3ZhbHVlCisgICAgICAgIGlmIGhhc2F0dHIob3RoZXIsICdpdGVtcycpOgorICAgICAgICAgICAgb3RoZXIgPSBzb3J0ZWQob3RoZXIuaXRlbXMoKSwga2V5PWxhbWJkYSBpdGVtOiAtaXRlbVsxXSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgKGxpc3QsIHR1cGxlKSk6CisgICAgICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gb3RoZXI6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwgcXVhbGl0eSA9IGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnJXM7IHE9JXMnICUgKG5hbWUsIHF1YWxpdHkpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXRlbSkKKyAgICAgICAgICAgIG90aGVyID0gJywgJy5qb2luKHJlc3VsdCkKKyAgICAgICAgb3RoZXIgPSBzdHIob3RoZXIpCisgICAgICAgIG15X3ZhbHVlID0gc2VsZi5oZWFkZXJfdmFsdWUKKyAgICAgICAgaWYgcmV2ZXJzZWQ6CisgICAgICAgICAgICBvdGhlciwgbXlfdmFsdWUgPSBteV92YWx1ZSwgb3RoZXIKKyAgICAgICAgaWYgbm90IG90aGVyOgorICAgICAgICAgICAgbmV3X3ZhbHVlID0gbXlfdmFsdWUKKyAgICAgICAgZWxpZiBub3QgbXlfdmFsdWU6CisgICAgICAgICAgICBuZXdfdmFsdWUgPSBvdGhlcgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmV3X3ZhbHVlID0gbXlfdmFsdWUgKyAnLCAnICsgb3RoZXIKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKG5ld192YWx1ZSkKKworICAgIGRlZiBfX3JhZGRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fYWRkX18ob3RoZXIsIFRydWUpCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIG9mZmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGxpc3RlZCBpbiB0aGUgYWNjZXB0ZWQKKyAgICAgICAgdHlwZXMuCisgICAgICAgICIiIgorICAgICAgICBmb3IgbWFzaywgcXVhbGl0eSBpbiBzZWxmLl9wYXJzZWRfbm9uemVybzoKKyAgICAgICAgICAgIGlmIHNlbGYuX21hdGNoKG1hc2ssIG9mZmVyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHF1YWxpdHkoc2VsZiwgb2ZmZXIsIG1vZGlmaWVyPTEpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHRoZSBxdWFsaXR5IG9mIHRoZSBnaXZlbiBvZmZlci4gIFJldHVybnMgTm9uZSBpZiB0aGVyZQorICAgICAgICBpcyBubyBtYXRjaCAobm90IDApLgorICAgICAgICAiIiIKKyAgICAgICAgYmVzdHEgPSAwCisgICAgICAgIGZvciBtYXNrLCBxIGluIHNlbGYuX3BhcnNlZDoKKyAgICAgICAgICAgIGlmIHNlbGYuX21hdGNoKG1hc2ssIG9mZmVyKToKKyAgICAgICAgICAgICAgICBiZXN0cSA9IG1heChiZXN0cSwgcSAqIG1vZGlmaWVyKQorICAgICAgICByZXR1cm4gYmVzdHEgb3IgTm9uZQorCisgICAgZGVmIGZpcnN0X21hdGNoKHNlbGYsIG9mZmVycyk6CisgICAgICAgICIiIgorICAgICAgICBERVBSRUNBVEVECisgICAgICAgIFJldHVybnMgdGhlIGZpcnN0IGFsbG93ZWQgb2ZmZXJlZCB0eXBlLiBJZ25vcmVzIHF1YWxpdHkuCisgICAgICAgIFJldHVybnMgdGhlIGZpcnN0IG9mZmVyZWQgdHlwZSBpZiBub3RoaW5nIGVsc2UgbWF0Y2hlczsgb3IgaWYgeW91IGluY2x1ZGUgTm9uZQorICAgICAgICBhdCB0aGUgZW5kIG9mIHRoZSBtYXRjaCBsaXN0IHRoZW4gdGhhdCB3aWxsIGJlIHJldHVybmVkLgorICAgICAgICAiIiIKKyAgICAgICAgX3dhcm5fZmlyc3RfbWF0Y2goKQorCisgICAgZGVmIGJlc3RfbWF0Y2goc2VsZiwgb2ZmZXJzLCBkZWZhdWx0X21hdGNoPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgYmVzdCBtYXRjaCBpbiB0aGUgc2VxdWVuY2Ugb2Ygb2ZmZXJlZCB0eXBlcy4KKworICAgICAgICBUaGUgc2VxdWVuY2UgY2FuIGJlIGEgc2ltcGxlIHNlcXVlbmNlLCBvciB5b3UgY2FuIGhhdmUKKyAgICAgICAgYGAobWF0Y2gsIHNlcnZlcl9xdWFsaXR5KWBgIGl0ZW1zIGluIHRoZSBzZXF1ZW5jZS4gIElmIHlvdQorICAgICAgICBoYXZlIHRoZXNlIHR1cGxlcyB0aGVuIHRoZSBjbGllbnQgcXVhbGl0eSBpcyBtdWx0aXBsaWVkIGJ5IHRoZQorICAgICAgICBzZXJ2ZXJfcXVhbGl0eSB0byBnZXQgYSB0b3RhbC4gIElmIHR3byBtYXRjaGVzIGhhdmUgZXF1YWwKKyAgICAgICAgd2VpZ2h0LCB0aGVuIHRoZSBvbmUgdGhhdCBzaG93cyB1cCBmaXJzdCBpbiB0aGUgYG9mZmVyc2AgbGlzdAorICAgICAgICB3aWxsIGJlIHJldHVybmVkLgorCisgICAgICAgIEJ1dCBhbW9uZyBtYXRjaGVzIHdpdGggdGhlIHNhbWUgcXVhbGl0eSB0aGUgbWF0Y2ggdG8gYSBtb3JlIHNwZWNpZmljCisgICAgICAgIHJlcXVlc3RlZCB0eXBlIHdpbGwgYmUgY2hvc2VuLiBGb3IgZXhhbXBsZSBhIG1hdGNoIHRvIHRleHQvKiB0cnVtcHMgKi8qLgorCisgICAgICAgIGRlZmF1bHRfbWF0Y2ggKGRlZmF1bHQgTm9uZSkgaXMgcmV0dXJuZWQgaWYgdGhlcmUgaXMgbm8gaW50ZXJzZWN0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgYmVzdF9xdWFsaXR5ID0gLTEKKyAgICAgICAgYmVzdF9vZmZlciA9IGRlZmF1bHRfbWF0Y2gKKyAgICAgICAgbWF0Y2hlZF9ieSA9ICcqLyonCisgICAgICAgIGZvciBvZmZlciBpbiBvZmZlcnM6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG9mZmVyLCAodHVwbGUsIGxpc3QpKToKKyAgICAgICAgICAgICAgICBvZmZlciwgc2VydmVyX3F1YWxpdHkgPSBvZmZlcgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfcXVhbGl0eSA9IDEKKyAgICAgICAgICAgIGZvciBtYXNrLCBxdWFsaXR5IGluIHNlbGYuX3BhcnNlZF9ub256ZXJvOgorICAgICAgICAgICAgICAgIHBvc3NpYmxlX3F1YWxpdHkgPSBzZXJ2ZXJfcXVhbGl0eSAqIHF1YWxpdHkKKyAgICAgICAgICAgICAgICBpZiBwb3NzaWJsZV9xdWFsaXR5IDwgYmVzdF9xdWFsaXR5OgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGVsaWYgcG9zc2libGVfcXVhbGl0eSA9PSBiZXN0X3F1YWxpdHk6CisgICAgICAgICAgICAgICAgICAgICMgJ3RleHQvcGxhaW4nIG92ZXJyaWRlcyAnbWVzc2FnZS8qJyBvdmVycmlkZXMgJyovKicKKyAgICAgICAgICAgICAgICAgICAgIyAoaWYgYWxsIG1hdGNoIHcvIHRoZSBzYW1lIHE9KQorICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaGVkX2J5LmNvdW50KCcqJykgPD0gbWFzay5jb3VudCgnKicpOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9tYXRjaChtYXNrLCBvZmZlcik6CisgICAgICAgICAgICAgICAgICAgIGJlc3RfcXVhbGl0eSA9IHBvc3NpYmxlX3F1YWxpdHkKKyAgICAgICAgICAgICAgICAgICAgYmVzdF9vZmZlciA9IG9mZmVyCisgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfYnkgPSBtYXNrCisgICAgICAgIHJldHVybiBiZXN0X29mZmVyCisKKyAgICBkZWYgX21hdGNoKHNlbGYsIG1hc2ssIG9mZmVyKToKKyAgICAgICAgX2NoZWNrX29mZmVyKG9mZmVyKQorICAgICAgICByZXR1cm4gbWFzayA9PSAnKicgb3Igb2ZmZXIubG93ZXIoKSA9PSBtYXNrLmxvd2VyKCkKKworCisKK2NsYXNzIE5pbEFjY2VwdChvYmplY3QpOgorICAgIE1hc3RlckNsYXNzID0gQWNjZXB0CisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzOiAlcz4nICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLk1hc3RlckNsYXNzKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAnJworCisgICAgZGVmIF9fbm9uemVyb19fKHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBfX2Jvb2xfXyA9IF9fbm9uemVyb19fICMgcHl0aG9uIDMKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGl0ZXIoKCkpCisKKyAgICBkZWYgX19hZGRfXyhzZWxmLCBpdGVtKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLCBzZWxmLk1hc3RlckNsYXNzKToKKyAgICAgICAgICAgIHJldHVybiBpdGVtCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5NYXN0ZXJDbGFzcygnJykgKyBpdGVtCisKKyAgICBkZWYgX19yYWRkX18oc2VsZiwgaXRlbSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgc2VsZi5NYXN0ZXJDbGFzcyk6CisgICAgICAgICAgICByZXR1cm4gaXRlbQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGl0ZW0gKyBzZWxmLk1hc3RlckNsYXNzKCcnKQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBpdGVtKToKKyAgICAgICAgX2NoZWNrX29mZmVyKGl0ZW0pCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgcXVhbGl0eShzZWxmLCBvZmZlciwgZGVmYXVsdF9xdWFsaXR5PTEpOgorICAgICAgICByZXR1cm4gMAorCisgICAgZGVmIGZpcnN0X21hdGNoKHNlbGYsIG9mZmVycyk6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICBfd2Fybl9maXJzdF9tYXRjaCgpCisKKyAgICBkZWYgYmVzdF9tYXRjaChzZWxmLCBvZmZlcnMsIGRlZmF1bHRfbWF0Y2g9Tm9uZSk6CisgICAgICAgIGJlc3RfcXVhbGl0eSA9IC0xCisgICAgICAgIGJlc3Rfb2ZmZXIgPSBkZWZhdWx0X21hdGNoCisgICAgICAgIGZvciBvZmZlciBpbiBvZmZlcnM6CisgICAgICAgICAgICBfY2hlY2tfb2ZmZXIob2ZmZXIpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG9mZmVyLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgICAgICBvZmZlciwgcXVhbGl0eSA9IG9mZmVyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHF1YWxpdHkgPSAxCisgICAgICAgICAgICBpZiBxdWFsaXR5ID4gYmVzdF9xdWFsaXR5OgorICAgICAgICAgICAgICAgIGJlc3Rfb2ZmZXIgPSBvZmZlcgorICAgICAgICAgICAgICAgIGJlc3RfcXVhbGl0eSA9IHF1YWxpdHkKKyAgICAgICAgcmV0dXJuIGJlc3Rfb2ZmZXIKKworY2xhc3MgTm9BY2NlcHQoTmlsQWNjZXB0KToKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGl0ZW0pOgorICAgICAgICByZXR1cm4gRmFsc2UKKworY2xhc3MgQWNjZXB0Q2hhcnNldChBY2NlcHQpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcGFyc2UodmFsdWUpOgorICAgICAgICBsYXRpbjFfZm91bmQgPSBGYWxzZQorICAgICAgICBmb3IgbSwgcSBpbiBBY2NlcHQucGFyc2UodmFsdWUpOgorICAgICAgICAgICAgX20gPSBtLmxvd2VyKCkKKyAgICAgICAgICAgIGlmIF9tID09ICcqJyBvciBfbSA9PSAnaXNvLTg4NTktMSc6CisgICAgICAgICAgICAgICAgbGF0aW4xX2ZvdW5kID0gVHJ1ZQorICAgICAgICAgICAgeWllbGQgX20sIHEKKyAgICAgICAgaWYgbm90IGxhdGluMV9mb3VuZDoKKyAgICAgICAgICAgIHlpZWxkICgnaXNvLTg4NTktMScsIDEpCisKK2NsYXNzIEFjY2VwdExhbmd1YWdlKEFjY2VwdCk6CisgICAgZGVmIF9tYXRjaChzZWxmLCBtYXNrLCBpdGVtKToKKyAgICAgICAgaXRlbSA9IGl0ZW0ucmVwbGFjZSgnXycsICctJykubG93ZXIoKQorICAgICAgICBtYXNrID0gbWFzay5sb3dlcigpCisgICAgICAgIHJldHVybiAobWFzayA9PSAnKicKKyAgICAgICAgICAgIG9yIGl0ZW0gPT0gbWFzaworICAgICAgICAgICAgb3IgaXRlbS5zcGxpdCgnLScpWzBdID09IG1hc2sKKyAgICAgICAgICAgIG9yIGl0ZW0gPT0gbWFzay5zcGxpdCgnLScpWzBdCisgICAgICAgICkKKworCitjbGFzcyBNSU1FQWNjZXB0KEFjY2VwdCk6CisgICAgIiIiCisgICAgICAgIFJlcHJlc2VudHMgdGhlIGBgQWNjZXB0YGAgaGVhZGVyLCB3aGljaCBpcyBhIGxpc3Qgb2YgbWltZXR5cGVzLgorCisgICAgICAgIFRoaXMgY2xhc3Mga25vd3MgYWJvdXQgbWltZSB3aWxkY2FyZHMsIGxpa2UgYGBpbWFnZS8qYGAKKyAgICAiIiIKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBhcnNlKHZhbHVlKToKKyAgICAgICAgZm9yIG1hc2ssIHEgaW4gQWNjZXB0LnBhcnNlKHZhbHVlKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtYXNrX21ham9yLCBtYXNrX21pbm9yID0gbWFwKGxhbWJkYSB4OiB4Lmxvd2VyKCksIG1hc2suc3BsaXQoJy8nKSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBtYXNrX21ham9yID09ICcqJyBhbmQgbWFza19taW5vciAhPSAnKic6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIG1hc2tfbWFqb3IgIT0gIioiIGFuZCAiKiIgaW4gbWFza19tYWpvcjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgbWFza19taW5vciAhPSAiKiIgYW5kICIqIiBpbiBtYXNrX21pbm9yOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB5aWVsZCAoIiVzLyVzIiAlIChtYXNrX21ham9yLCBtYXNrX21pbm9yKSwgcSkKKworICAgIGRlZiBhY2NlcHRfaHRtbChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiBhbnkgSFRNTC1saWtlIHR5cGUgaXMgYWNjZXB0ZWQKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiAoJ3RleHQvaHRtbCcgaW4gc2VsZgorICAgICAgICAgICAgICAgIG9yICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnIGluIHNlbGYKKyAgICAgICAgICAgICAgICBvciAnYXBwbGljYXRpb24veG1sJyBpbiBzZWxmCisgICAgICAgICAgICAgICAgb3IgJ3RleHQveG1sJyBpbiBzZWxmKQorCisgICAgYWNjZXB0c19odG1sID0gcHJvcGVydHkoYWNjZXB0X2h0bWwpICMgbm90ZSB0aGUgcGx1cmFsCisKKyAgICBkZWYgX21hdGNoKHNlbGYsIG1hc2ssIG9mZmVyKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBDaGVjayBpZiB0aGUgb2ZmZXIgaXMgY292ZXJlZCBieSB0aGUgbWFzaworICAgICAgICAiIiIKKyAgICAgICAgX2NoZWNrX29mZmVyKG9mZmVyKQorICAgICAgICBpZiAnKicgbm90IGluIG1hc2s6CisgICAgICAgICAgICByZXR1cm4gb2ZmZXIubG93ZXIoKSA9PSBtYXNrLmxvd2VyKCkKKyAgICAgICAgZWxpZiBtYXNrID09ICcqLyonOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBtYXNrLmVuZHN3aXRoKCcvKicpCisgICAgICAgICAgICBtYXNrX21ham9yID0gbWFza1s6LTJdLmxvd2VyKCkKKyAgICAgICAgICAgIG9mZmVyX21ham9yID0gb2ZmZXIuc3BsaXQoJy8nLCAxKVswXS5sb3dlcigpCisgICAgICAgICAgICByZXR1cm4gb2ZmZXJfbWFqb3IgPT0gbWFza19tYWpvcgorCisKK2NsYXNzIE1JTUVOaWxBY2NlcHQoTmlsQWNjZXB0KToKKyAgICBNYXN0ZXJDbGFzcyA9IE1JTUVBY2NlcHQKKworZGVmIF9jaGVja19vZmZlcihvZmZlcik6CisgICAgaWYgJyonIGluIG9mZmVyOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUaGUgYXBwbGljYXRpb24gc2hvdWxkIG9mZmVyIHNwZWNpZmljIHR5cGVzLCBnb3QgJXIiICUgb2ZmZXIpCisKKworCitkZWYgYWNjZXB0X3Byb3BlcnR5KGhlYWRlciwgcmZjX3NlY3Rpb24sCisgICAgQWNjZXB0Q2xhc3M9QWNjZXB0LCBOaWxDbGFzcz1OaWxBY2NlcHQKKyk6CisgICAga2V5ID0gaGVhZGVyX3RvX2tleShoZWFkZXIpCisgICAgZG9jID0gaGVhZGVyX2RvY3N0cmluZyhoZWFkZXIsIHJmY19zZWN0aW9uKQorICAgICNkb2MgKz0gIiAgQ29udmVydHMgaXQgYXMgYSAlcy4iICUgY29udmVydF9uYW1lCisgICAgZGVmIGZnZXQocmVxKToKKyAgICAgICAgdmFsdWUgPSByZXEuZW52aXJvbi5nZXQoa2V5KQorICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICByZXR1cm4gTmlsQ2xhc3MoKQorICAgICAgICByZXR1cm4gQWNjZXB0Q2xhc3ModmFsdWUpCisgICAgZGVmIGZzZXQocmVxLCB2YWwpOgorICAgICAgICBpZiB2YWw6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgKGxpc3QsIHR1cGxlLCBkaWN0KSk6CisgICAgICAgICAgICAgICAgdmFsID0gQWNjZXB0Q2xhc3MoJycpICsgdmFsCisgICAgICAgICAgICB2YWwgPSBzdHIodmFsKQorICAgICAgICByZXEuZW52aXJvbltrZXldID0gdmFsIG9yIE5vbmUKKyAgICBkZWYgZmRlbChyZXEpOgorICAgICAgICBkZWwgcmVxLmVudmlyb25ba2V5XQorICAgIHJldHVybiBwcm9wZXJ0eShmZ2V0LCBmc2V0LCBmZGVsLCBkb2MpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvYnl0ZXJhbmdlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2J5dGVyYW5nZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjdkZjdlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2J5dGVyYW5nZS5weQpAQCAtMCwwICsxLDE2MCBAQAoraW1wb3J0IHJlCisKK19fYWxsX18gPSBbJ1JhbmdlJywgJ0NvbnRlbnRSYW5nZSddCisKK19yeF9yYW5nZSA9IHJlLmNvbXBpbGUoJ2J5dGVzICo9ICooXGQqKSAqLSAqKFxkKiknLCBmbGFncz1yZS5JKQorX3J4X2NvbnRlbnRfcmFuZ2UgPSByZS5jb21waWxlKHInYnl0ZXMgKD86KFxkKyktKFxkKyl8WypdKS8oPzooXGQrKXxbKl0pJykKKworY2xhc3MgUmFuZ2Uob2JqZWN0KToKKyAgICAiIiIKKyAgICAgICAgUmVwcmVzZW50cyB0aGUgUmFuZ2UgaGVhZGVyLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXJ0LCBlbmQpOgorICAgICAgICBhc3NlcnQgZW5kIGlzIE5vbmUgb3IgZW5kID49IDAsICJCYWQgcmFuZ2UgZW5kOiAlciIgJSBlbmQKKyAgICAgICAgc2VsZi5zdGFydCA9IHN0YXJ0CisgICAgICAgIHNlbGYuZW5kID0gZW5kICMgbm9uLWluY2x1c2l2ZQorCisgICAgZGVmIHJhbmdlX2Zvcl9sZW5ndGgoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICAqSWYqIHRoZXJlIGlzIG9ubHkgb25lIHJhbmdlLCBhbmQgKmlmKiBpdCBpcyBzYXRpc2ZpYWJsZSBieQorICAgICAgICAgICAgdGhlIGdpdmVuIGxlbmd0aCwgdGhlbiByZXR1cm4gYSAoc3RhcnQsIGVuZCkgbm9uLWluY2x1c2l2ZSByYW5nZQorICAgICAgICAgICAgb2YgYnl0ZXMgdG8gc2VydmUuICBPdGhlcndpc2UgcmV0dXJuIE5vbmUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGxlbmd0aCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgc3RhcnQsIGVuZCA9IHNlbGYuc3RhcnQsIHNlbGYuZW5kCisgICAgICAgIGlmIGVuZCBpcyBOb25lOgorICAgICAgICAgICAgZW5kID0gbGVuZ3RoCisgICAgICAgICAgICBpZiBzdGFydCA8IDA6CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gbGVuZ3RoCisgICAgICAgIGlmIF9pc19jb250ZW50X3JhbmdlX3ZhbGlkKHN0YXJ0LCBlbmQsIGxlbmd0aCk6CisgICAgICAgICAgICBzdG9wID0gbWluKGVuZCwgbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIChzdGFydCwgc3RvcCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgY29udGVudF9yYW5nZShzZWxmLCBsZW5ndGgpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIFdvcmtzIGxpa2UgcmFuZ2VfZm9yX2xlbmd0aDsgcmV0dXJucyBOb25lIG9yIGEgQ29udGVudFJhbmdlIG9iamVjdAorCisgICAgICAgICAgICBZb3UgY2FuIHVzZSBpdCBsaWtlOjoKKworICAgICAgICAgICAgICAgIHJlc3BvbnNlLmNvbnRlbnRfcmFuZ2UgPSByZXEucmFuZ2UuY29udGVudF9yYW5nZShyZXNwb25zZS5jb250ZW50X2xlbmd0aCkKKworICAgICAgICAgICAgVGhvdWdoIGl0J3Mgc3RpbGwgdXAgdG8geW91IHRvIGFjdHVhbGx5IHNlcnZlIHRoYXQgY29udGVudCByYW5nZSEKKyAgICAgICAgIiIiCisgICAgICAgIHJhbmdlID0gc2VsZi5yYW5nZV9mb3JfbGVuZ3RoKGxlbmd0aCkKKyAgICAgICAgaWYgcmFuZ2UgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBDb250ZW50UmFuZ2UocmFuZ2VbMF0sIHJhbmdlWzFdLCBsZW5ndGgpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcyxlID0gc2VsZi5zdGFydCwgc2VsZi5lbmQKKyAgICAgICAgaWYgZSBpcyBOb25lOgorICAgICAgICAgICAgciA9ICdieXRlcz0lcycgJSBzCisgICAgICAgICAgICBpZiBzID49IDA6CisgICAgICAgICAgICAgICAgciArPSAnLScKKyAgICAgICAgICAgIHJldHVybiByCisgICAgICAgIHJldHVybiAnYnl0ZXM9JXMtJXMnICUgKHMsIGUtMSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICclcyglciwgJXIpJyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgc2VsZi5zdGFydCwgc2VsZi5lbmQpCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBpdGVyKChzZWxmLnN0YXJ0LCBzZWxmLmVuZCkpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcGFyc2UoY2xzLCBoZWFkZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIFBhcnNlIHRoZSBoZWFkZXI7IG1heSByZXR1cm4gTm9uZSBpZiBoZWFkZXIgaXMgaW52YWxpZAorICAgICAgICAiIiIKKyAgICAgICAgbSA9IF9yeF9yYW5nZS5tYXRjaChoZWFkZXIgb3IgJycpCisgICAgICAgIGlmIG5vdCBtOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgc3RhcnQsIGVuZCA9IG0uZ3JvdXBzKCkKKyAgICAgICAgaWYgbm90IHN0YXJ0OgorICAgICAgICAgICAgcmV0dXJuIGNscygtaW50KGVuZCksIE5vbmUpCisgICAgICAgIHN0YXJ0ID0gaW50KHN0YXJ0KQorICAgICAgICBpZiBub3QgZW5kOgorICAgICAgICAgICAgcmV0dXJuIGNscyhzdGFydCwgTm9uZSkKKyAgICAgICAgZW5kID0gaW50KGVuZCkgKyAxICMgcmV0dXJuIHZhbCBpcyBub24taW5jbHVzaXZlCisgICAgICAgIGlmIHN0YXJ0ID49IGVuZDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBjbHMoc3RhcnQsIGVuZCkKKworCitjbGFzcyBDb250ZW50UmFuZ2Uob2JqZWN0KToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgdGhlIENvbnRlbnQtUmFuZ2UgaGVhZGVyCisKKyAgICBUaGlzIGhlYWRlciBpcyBgYHN0YXJ0LXN0b3AvbGVuZ3RoYGAsIHdoZXJlIHN0YXJ0LXN0b3AgYW5kIGxlbmd0aAorICAgIGNhbiBiZSBgYCpgYCAocmVwcmVzZW50ZWQgYXMgTm9uZSBpbiB0aGUgYXR0cmlidXRlcykuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhcnQsIHN0b3AsIGxlbmd0aCk6CisgICAgICAgIGlmIG5vdCBfaXNfY29udGVudF9yYW5nZV92YWxpZChzdGFydCwgc3RvcCwgbGVuZ3RoKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIkJhZCBzdGFydDpzdG9wL2xlbmd0aDogJXItJXIvJXIiICUgKHN0YXJ0LCBzdG9wLCBsZW5ndGgpKQorICAgICAgICBzZWxmLnN0YXJ0ID0gc3RhcnQKKyAgICAgICAgc2VsZi5zdG9wID0gc3RvcCAjIHRoaXMgaXMgcHl0aG9uLXN0eWxlIHJhbmdlIGVuZCAobm9uLWluY2x1c2l2ZSkKKyAgICAgICAgc2VsZi5sZW5ndGggPSBsZW5ndGgKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgJXM+JyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2VsZikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBpZiBzZWxmLmxlbmd0aCBpcyBOb25lOgorICAgICAgICAgICAgbGVuZ3RoID0gJyonCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsZW5ndGggPSBzZWxmLmxlbmd0aAorICAgICAgICBpZiBzZWxmLnN0YXJ0IGlzIE5vbmU6CisgICAgICAgICAgICBhc3NlcnQgc2VsZi5zdG9wIGlzIE5vbmUKKyAgICAgICAgICAgIHJldHVybiAnYnl0ZXMgKi8lcycgJSBsZW5ndGgKKyAgICAgICAgc3RvcCA9IHNlbGYuc3RvcCAtIDEgIyBmcm9tIG5vbi1pbmNsdXNpdmUgdG8gSFRUUC1zdHlsZQorICAgICAgICByZXR1cm4gJ2J5dGVzICVzLSVzLyVzJyAlIChzZWxmLnN0YXJ0LCBzdG9wLCBsZW5ndGgpCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICAgICAgTW9zdGx5IHNvIHlvdSBjYW4gdW5wYWNrIHRoaXMsIGxpa2U6CisKKyAgICAgICAgICAgICAgICBzdGFydCwgc3RvcCwgbGVuZ3RoID0gcmVzLmNvbnRlbnRfcmFuZ2UKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBpdGVyKFtzZWxmLnN0YXJ0LCBzZWxmLnN0b3AsIHNlbGYubGVuZ3RoXSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJzZShjbHMsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBQYXJzZSB0aGUgaGVhZGVyLiAgTWF5IHJldHVybiBOb25lIGlmIGl0IGNhbm5vdCBwYXJzZS4KKyAgICAgICAgIiIiCisgICAgICAgIG0gPSBfcnhfY29udGVudF9yYW5nZS5tYXRjaCh2YWx1ZSBvciAnJykKKyAgICAgICAgaWYgbm90IG06CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBzLCBlLCBsID0gbS5ncm91cHMoKQorICAgICAgICBpZiBzOgorICAgICAgICAgICAgcyA9IGludChzKQorICAgICAgICAgICAgZSA9IGludChlKSArIDEKKyAgICAgICAgbCA9IGwgYW5kIGludChsKQorICAgICAgICBpZiBub3QgX2lzX2NvbnRlbnRfcmFuZ2VfdmFsaWQocywgZSwgbCwgcmVzcG9uc2U9VHJ1ZSk6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gY2xzKHMsIGUsIGwpCisKKworZGVmIF9pc19jb250ZW50X3JhbmdlX3ZhbGlkKHN0YXJ0LCBzdG9wLCBsZW5ndGgsIHJlc3BvbnNlPUZhbHNlKToKKyAgICBpZiAoc3RhcnQgaXMgTm9uZSkgIT0gKHN0b3AgaXMgTm9uZSk6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGVsaWYgc3RhcnQgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIGxlbmd0aCBpcyBOb25lIG9yIGxlbmd0aCA+PSAwCisgICAgZWxpZiBsZW5ndGggaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIDAgPD0gc3RhcnQgPCBzdG9wCisgICAgZWxpZiBzdGFydCA+PSBzdG9wOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBlbGlmIHJlc3BvbnNlIGFuZCBzdG9wID4gbGVuZ3RoOgorICAgICAgICAjICJjb250ZW50LXJhbmdlOiBieXRlcyAwLTUwLzEwIiBpcyBpbnZhbGlkIGZvciBhIHJlc3BvbnNlCisgICAgICAgICMgInJhbmdlOiBieXRlcyAwLTUwIiBpcyB2YWxpZCBmb3IgYSByZXF1ZXN0IHRvIGEgMTAtYnl0ZXMgZW50aXR5CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiAwIDw9IHN0YXJ0IDwgbGVuZ3RoCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvY2FjaGVjb250cm9sLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2NhY2hlY29udHJvbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTc2ZWM5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2NhY2hlY29udHJvbC5weQpAQCAtMCwwICsxLDIzMSBAQAorIiIiCitSZXByZXNlbnRzIHRoZSBDYWNoZS1Db250cm9sIGhlYWRlcgorIiIiCitpbXBvcnQgcmUKKworY2xhc3MgVXBkYXRlRGljdChkaWN0KToKKyAgICAiIiIKKyAgICBEaWN0IHRoYXQgaGFzIGEgY2FsbGJhY2sgb24gYWxsIHVwZGF0ZXMKKyAgICAiIiIKKyAgICAjIHRoZXNlIGFyZSBkZWNsYXJlZCBhcyBjbGFzcyBhdHRyaWJ1dGVzIHNvIHRoYXQKKyAgICAjIHdlIGRvbid0IG5lZWQgdG8gb3ZlcnJpZGUgY29uc3RydWN0b3IganVzdCB0bworICAgICMgc2V0IHNvbWUgZGVmYXVsdHMKKyAgICB1cGRhdGVkID0gTm9uZQorICAgIHVwZGF0ZWRfYXJncyA9IE5vbmUKKworICAgIGRlZiBfdXBkYXRlZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEFzc2lnbiB0byBuZXdfZGljdC51cGRhdGVkIHRvIHRyYWNrIHVwZGF0ZXMKKyAgICAgICAgIiIiCisgICAgICAgIHVwZGF0ZWQgPSBzZWxmLnVwZGF0ZWQKKyAgICAgICAgaWYgdXBkYXRlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFyZ3MgPSBzZWxmLnVwZGF0ZWRfYXJncworICAgICAgICAgICAgaWYgYXJncyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGFyZ3MgPSAoc2VsZiwpCisgICAgICAgICAgICB1cGRhdGVkKCphcmdzKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgaXRlbSk6CisgICAgICAgIGRpY3QuX19zZXRpdGVtX18oc2VsZiwga2V5LCBpdGVtKQorICAgICAgICBzZWxmLl91cGRhdGVkKCkKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBkaWN0Ll9fZGVsaXRlbV9fKHNlbGYsIGtleSkKKyAgICAgICAgc2VsZi5fdXBkYXRlZCgpCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIGRpY3QuY2xlYXIoc2VsZikKKyAgICAgICAgc2VsZi5fdXBkYXRlZCgpCisKKyAgICBkZWYgdXBkYXRlKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgZGljdC51cGRhdGUoc2VsZiwgKmFyZ3MsICoqa3cpCisgICAgICAgIHNlbGYuX3VwZGF0ZWQoKQorCisgICAgZGVmIHNldGRlZmF1bHQoc2VsZiwga2V5LCB2YWx1ZT1Ob25lKToKKyAgICAgICAgdmFsID0gZGljdC5zZXRkZWZhdWx0KHNlbGYsIGtleSwgdmFsdWUpCisgICAgICAgIGlmIHZhbCBpcyB2YWx1ZToKKyAgICAgICAgICAgIHNlbGYuX3VwZGF0ZWQoKQorICAgICAgICByZXR1cm4gdmFsCisKKyAgICBkZWYgcG9wKHNlbGYsICphcmdzKToKKyAgICAgICAgdiA9IGRpY3QucG9wKHNlbGYsICphcmdzKQorICAgICAgICBzZWxmLl91cGRhdGVkKCkKKyAgICAgICAgcmV0dXJuIHYKKworICAgIGRlZiBwb3BpdGVtKHNlbGYpOgorICAgICAgICB2ID0gZGljdC5wb3BpdGVtKHNlbGYpCisgICAgICAgIHNlbGYuX3VwZGF0ZWQoKQorICAgICAgICByZXR1cm4gdgorCisKK3Rva2VuX3JlID0gcmUuY29tcGlsZSgKKyAgICByJyhbYS16QS1aXVthLXpBLVpfLV0qKVxzKig/Oj0oPzoiKFteIl0qKSJ8KFteIFx0Iiw7XSopKSk/JykKK25lZWRfcXVvdGVfcmUgPSByZS5jb21waWxlKHInW15hLXpBLVowLTkuXy1dJykKKworCitjbGFzcyBleGlzdHNfcHJvcGVydHkob2JqZWN0KToKKyAgICAiIiIKKyAgICBSZXByZXNlbnRzIGEgcHJvcGVydHkgdGhhdCBlaXRoZXIgaXMgbGlzdGVkIGluIHRoZSBDYWNoZS1Db250cm9sCisgICAgaGVhZGVyLCBvciBpcyBub3QgbGlzdGVkIChoYXMgbm8gdmFsdWUpCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3AsIHR5cGU9Tm9uZSk6CisgICAgICAgIHNlbGYucHJvcCA9IHByb3AKKyAgICAgICAgc2VsZi50eXBlID0gdHlwZQorCisgICAgZGVmIF9fZ2V0X18oc2VsZiwgb2JqLCB0eXBlPU5vbmUpOgorICAgICAgICBpZiBvYmogaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgIHJldHVybiBzZWxmLnByb3AgaW4gb2JqLnByb3BlcnRpZXMKKworICAgIGRlZiBfX3NldF9fKHNlbGYsIG9iaiwgdmFsdWUpOgorICAgICAgICBpZiAoc2VsZi50eXBlIGlzIG5vdCBOb25lCisgICAgICAgICAgICBhbmQgc2VsZi50eXBlICE9IG9iai50eXBlKToKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKAorICAgICAgICAgICAgICAgICJUaGUgcHJvcGVydHkgJXMgb25seSBhcHBsaWVzIHRvICVzIENhY2hlLUNvbnRyb2wiICUgKAorICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3AsIHNlbGYudHlwZSkpCisKKyAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICBvYmoucHJvcGVydGllc1tzZWxmLnByb3BdID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2VsZi5wcm9wIGluIG9iai5wcm9wZXJ0aWVzOgorICAgICAgICAgICAgICAgIGRlbCBvYmoucHJvcGVydGllc1tzZWxmLnByb3BdCisKKyAgICBkZWYgX19kZWxldGVfXyhzZWxmLCBvYmopOgorICAgICAgICBzZWxmLl9fc2V0X18ob2JqLCBGYWxzZSkKKworCitjbGFzcyB2YWx1ZV9wcm9wZXJ0eShvYmplY3QpOgorICAgICIiIgorICAgIFJlcHJlc2VudHMgYSBwcm9wZXJ0eSB0aGF0IGhhcyBhIHZhbHVlIGluIHRoZSBDYWNoZS1Db250cm9sIGhlYWRlci4KKworICAgIFdoZW4gbm8gdmFsdWUgaXMgYWN0dWFsbHkgZ2l2ZW4sIHRoZSB2YWx1ZSBvZiBzZWxmLm5vbmUgaXMgcmV0dXJuZWQuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3AsIGRlZmF1bHQ9Tm9uZSwgbm9uZT1Ob25lLCB0eXBlPU5vbmUpOgorICAgICAgICBzZWxmLnByb3AgPSBwcm9wCisgICAgICAgIHNlbGYuZGVmYXVsdCA9IGRlZmF1bHQKKyAgICAgICAgc2VsZi5ub25lID0gbm9uZQorICAgICAgICBzZWxmLnR5cGUgPSB0eXBlCisKKyAgICBkZWYgX19nZXRfXyhzZWxmLCBvYmosIHR5cGU9Tm9uZSk6CisgICAgICAgIGlmIG9iaiBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgaWYgc2VsZi5wcm9wIGluIG9iai5wcm9wZXJ0aWVzOgorICAgICAgICAgICAgdmFsdWUgPSBvYmoucHJvcGVydGllc1tzZWxmLnByb3BdCisgICAgICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5kZWZhdWx0CisKKyAgICBkZWYgX19zZXRfXyhzZWxmLCBvYmosIHZhbHVlKToKKyAgICAgICAgaWYgKHNlbGYudHlwZSBpcyBub3QgTm9uZQorICAgICAgICAgICAgYW5kIHNlbGYudHlwZSAhPSBvYmoudHlwZSk6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKKyAgICAgICAgICAgICAgICAiVGhlIHByb3BlcnR5ICVzIG9ubHkgYXBwbGllcyB0byAlcyBDYWNoZS1Db250cm9sIiAlICgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm9wLCBzZWxmLnR5cGUpKQorICAgICAgICBpZiB2YWx1ZSA9PSBzZWxmLmRlZmF1bHQ6CisgICAgICAgICAgICBpZiBzZWxmLnByb3AgaW4gb2JqLnByb3BlcnRpZXM6CisgICAgICAgICAgICAgICAgZGVsIG9iai5wcm9wZXJ0aWVzW3NlbGYucHJvcF0KKyAgICAgICAgZWxpZiB2YWx1ZSBpcyBUcnVlOgorICAgICAgICAgICAgb2JqLnByb3BlcnRpZXNbc2VsZi5wcm9wXSA9IE5vbmUgIyBFbXB0eSB2YWx1ZSwgYnV0IHByZXNlbnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9iai5wcm9wZXJ0aWVzW3NlbGYucHJvcF0gPSB2YWx1ZQorCisgICAgZGVmIF9fZGVsZXRlX18oc2VsZiwgb2JqKToKKyAgICAgICAgaWYgc2VsZi5wcm9wIGluIG9iai5wcm9wZXJ0aWVzOgorICAgICAgICAgICAgZGVsIG9iai5wcm9wZXJ0aWVzW3NlbGYucHJvcF0KKworCitjbGFzcyBDYWNoZUNvbnRyb2wob2JqZWN0KToKKworICAgICIiIgorICAgIFJlcHJlc2VudHMgdGhlIENhY2hlLUNvbnRyb2wgaGVhZGVyLgorCisgICAgQnkgZ2l2aW5nIGEgdHlwZSBvZiBgYCdyZXF1ZXN0J2BgIG9yIGBgJ3Jlc3BvbnNlJ2BgIHlvdSBjYW4KKyAgICBjb250cm9sIHdoYXQgYXR0cmlidXRlcyBhcmUgYWxsb3dlZCAoc29tZSBDYWNoZS1Db250cm9sIHZhbHVlcworICAgIG9ubHkgYXBwbHkgdG8gcmVxdWVzdHMgb3IgcmVzcG9uc2VzKS4KKyAgICAiIiIKKworICAgIHVwZGF0ZV9kaWN0ID0gVXBkYXRlRGljdAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3BlcnRpZXMsIHR5cGUpOgorICAgICAgICBzZWxmLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzCisgICAgICAgIHNlbGYudHlwZSA9IHR5cGUKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJzZShjbHMsIGhlYWRlciwgdXBkYXRlc190bz1Ob25lLCB0eXBlPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUGFyc2UgdGhlIGhlYWRlciwgcmV0dXJuaW5nIGEgQ2FjaGVDb250cm9sIG9iamVjdC4KKworICAgICAgICBUaGUgb2JqZWN0IGlzIGJvdW5kIHRvIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlIG9iamVjdAorICAgICAgICBgYHVwZGF0ZXNfdG9gYCwgaWYgdGhhdCBpcyBnaXZlbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHVwZGF0ZXNfdG86CisgICAgICAgICAgICBwcm9wcyA9IGNscy51cGRhdGVfZGljdCgpCisgICAgICAgICAgICBwcm9wcy51cGRhdGVkID0gdXBkYXRlc190bworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJvcHMgPSB7fQorICAgICAgICBmb3IgbWF0Y2ggaW4gdG9rZW5fcmUuZmluZGl0ZXIoaGVhZGVyKToKKyAgICAgICAgICAgIG5hbWUgPSBtYXRjaC5ncm91cCgxKQorICAgICAgICAgICAgdmFsdWUgPSBtYXRjaC5ncm91cCgyKSBvciBtYXRjaC5ncm91cCgzKSBvciBOb25lCisgICAgICAgICAgICBpZiB2YWx1ZToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW50KHZhbHVlKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBwcm9wc1tuYW1lXSA9IHZhbHVlCisgICAgICAgIG9iaiA9IGNscyhwcm9wcywgdHlwZT10eXBlKQorICAgICAgICBpZiB1cGRhdGVzX3RvOgorICAgICAgICAgICAgcHJvcHMudXBkYXRlZF9hcmdzID0gKG9iaiwpCisgICAgICAgIHJldHVybiBvYmoKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8Q2FjaGVDb250cm9sICVyPicgJSBzdHIoc2VsZikKKworICAgICMgUmVxdWVzdCB2YWx1ZXM6CisgICAgIyBuby1jYWNoZSBzaGFyZWQgKGJlbG93KQorICAgICMgbm8tc3RvcmUgc2hhcmVkIChiZWxvdykKKyAgICAjIG1heC1hZ2Ugc2hhcmVkICAoYmVsb3cpCisgICAgbWF4X3N0YWxlID0gdmFsdWVfcHJvcGVydHkoJ21heC1zdGFsZScsIG5vbmU9JyonLCB0eXBlPSdyZXF1ZXN0JykKKyAgICBtaW5fZnJlc2ggPSB2YWx1ZV9wcm9wZXJ0eSgnbWluLWZyZXNoJywgdHlwZT0ncmVxdWVzdCcpCisgICAgIyBuby10cmFuc2Zvcm0gc2hhcmVkIChiZWxvdykKKyAgICBvbmx5X2lmX2NhY2hlZCA9IGV4aXN0c19wcm9wZXJ0eSgnb25seS1pZi1jYWNoZWQnLCB0eXBlPSdyZXF1ZXN0JykKKworICAgICMgUmVzcG9uc2UgdmFsdWVzOgorICAgIHB1YmxpYyA9IGV4aXN0c19wcm9wZXJ0eSgncHVibGljJywgdHlwZT0ncmVzcG9uc2UnKQorICAgIHByaXZhdGUgPSB2YWx1ZV9wcm9wZXJ0eSgncHJpdmF0ZScsIG5vbmU9JyonLCB0eXBlPSdyZXNwb25zZScpCisgICAgbm9fY2FjaGUgPSB2YWx1ZV9wcm9wZXJ0eSgnbm8tY2FjaGUnLCBub25lPScqJykKKyAgICBub19zdG9yZSA9IGV4aXN0c19wcm9wZXJ0eSgnbm8tc3RvcmUnKQorICAgIG5vX3RyYW5zZm9ybSA9IGV4aXN0c19wcm9wZXJ0eSgnbm8tdHJhbnNmb3JtJykKKyAgICBtdXN0X3JldmFsaWRhdGUgPSBleGlzdHNfcHJvcGVydHkoJ211c3QtcmV2YWxpZGF0ZScsIHR5cGU9J3Jlc3BvbnNlJykKKyAgICBwcm94eV9yZXZhbGlkYXRlID0gZXhpc3RzX3Byb3BlcnR5KCdwcm94eS1yZXZhbGlkYXRlJywgdHlwZT0ncmVzcG9uc2UnKQorICAgIG1heF9hZ2UgPSB2YWx1ZV9wcm9wZXJ0eSgnbWF4LWFnZScsIG5vbmU9LTEpCisgICAgc19tYXhhZ2UgPSB2YWx1ZV9wcm9wZXJ0eSgncy1tYXhhZ2UnLCB0eXBlPSdyZXNwb25zZScpCisgICAgc19tYXhfYWdlID0gc19tYXhhZ2UKKyAgICBzdGFsZV93aGlsZV9yZXZhbGlkYXRlID0gdmFsdWVfcHJvcGVydHkoCisgICAgICAgICdzdGFsZS13aGlsZS1yZXZhbGlkYXRlJywgdHlwZT0ncmVzcG9uc2UnKQorICAgIHN0YWxlX2lmX2Vycm9yID0gdmFsdWVfcHJvcGVydHkoJ3N0YWxlLWlmLWVycm9yJywgdHlwZT0ncmVzcG9uc2UnKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZXJpYWxpemVfY2FjaGVfY29udHJvbChzZWxmLnByb3BlcnRpZXMpCisKKyAgICBkZWYgY29weShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBjb3B5IG9mIHRoaXMgb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYucHJvcGVydGllcy5jb3B5KCksIHR5cGU9c2VsZi50eXBlKQorCisKK2RlZiBzZXJpYWxpemVfY2FjaGVfY29udHJvbChwcm9wZXJ0aWVzKToKKyAgICBpZiBpc2luc3RhbmNlKHByb3BlcnRpZXMsIENhY2hlQ29udHJvbCk6CisgICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLnByb3BlcnRpZXMKKyAgICBwYXJ0cyA9IFtdCisgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNvcnRlZChwcm9wZXJ0aWVzLml0ZW1zKCkpOgorICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKG5hbWUpCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKyAgICAgICAgaWYgbmVlZF9xdW90ZV9yZS5zZWFyY2godmFsdWUpOgorICAgICAgICAgICAgdmFsdWUgPSAnIiVzIicgJSB2YWx1ZQorICAgICAgICBwYXJ0cy5hcHBlbmQoJyVzPSVzJyAlIChuYW1lLCB2YWx1ZSkpCisgICAgcmV0dXJuICcsICcuam9pbihwYXJ0cykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9jbGllbnQucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvY2xpZW50LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZGNhZjYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvY2xpZW50LnB5CkBAIC0wLDAgKzEsMTgxIEBACitpbXBvcnQgZXJybm8KK2ltcG9ydCBzeXMKK2ltcG9ydCByZQordHJ5OgorICAgIGltcG9ydCBodHRwbGliCitleGNlcHQgSW1wb3J0RXJyb3I6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGltcG9ydCBodHRwLmNsaWVudCBhcyBodHRwbGliCitmcm9tIHdlYm9iLmNvbXBhdCBpbXBvcnQgdXJsX3F1b3RlCitpbXBvcnQgc29ja2V0Citmcm9tIHdlYm9iIGltcG9ydCBleGMKK2Zyb20gd2Vib2IuY29tcGF0IGltcG9ydCBQWTMKKworCitfX2FsbF9fID0gWydzZW5kX3JlcXVlc3RfYXBwJywgJ1NlbmRSZXF1ZXN0J10KKworY2xhc3MgU2VuZFJlcXVlc3Q6CisgICAgIiIiCisgICAgU2VuZHMgdGhlIHJlcXVlc3QsIGFzIGRlc2NyaWJlZCBieSB0aGUgZW52aXJvbiwgb3ZlciBhY3R1YWwgSFRUUC4KKyAgICBBbGwgY29udHJvbHMgYWJvdXQgaG93IGl0IGlzIHNlbnQgYXJlIGNvbnRhaW5lZCBpbiB0aGUgcmVxdWVzdAorICAgIGVudmlyb24gaXRzZWxmLgorCisgICAgVGhpcyBjb25uZWN0cyB0byB0aGUgc2VydmVyIGdpdmVuIGluIFNFUlZFUl9OQU1FOlNFUlZFUl9QT1JULCBhbmQKKyAgICBzZW5kcyB0aGUgSG9zdCBoZWFkZXIgaW4gSFRUUF9IT1NUIC0tIHRoZXkgZG8gbm90IGhhdmUgdG8gbWF0Y2guCisgICAgWW91IGNhbiBzZW5kIHJlcXVlc3RzIHRvIHNlcnZlcnMgZGVzcGl0ZSB3aGF0IEROUyBzYXlzLgorCisgICAgU2V0IGBgZW52aXJvblsnd2Vib2IuY2xpZW50LnRpbWVvdXQnXSA9IDEwYGAgdG8gc2V0IHRoZSB0aW1lb3V0IG9uCisgICAgdGhlIHJlcXVlc3QgKHRvLCBmb3IgZXhhbXBsZSwgMTAgc2Vjb25kcykuCisKKyAgICBEb2VzIG5vdCBhZGQgWC1Gb3J3YXJkZWQtRm9yIG9yIG90aGVyIHN0YW5kYXJkIGhlYWRlcnMKKworICAgIElmIHlvdSB1c2UgYGBzZW5kX3JlcXVlc3RfYXBwYGAgdGhlbiBzaW1wbGUgYGBodHRwbGliYGAKKyAgICBjb25uZWN0aW9ucyB3aWxsIGJlIHVzZWQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgSFRUUENvbm5lY3Rpb249aHR0cGxpYi5IVFRQQ29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgSFRUUFNDb25uZWN0aW9uPWh0dHBsaWIuSFRUUFNDb25uZWN0aW9uKToKKyAgICAgICAgc2VsZi5IVFRQQ29ubmVjdGlvbiA9IEhUVFBDb25uZWN0aW9uCisgICAgICAgIHNlbGYuSFRUUFNDb25uZWN0aW9uID0gSFRUUFNDb25uZWN0aW9uCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICBzY2hlbWUgPSBlbnZpcm9uWyd3c2dpLnVybF9zY2hlbWUnXQorICAgICAgICBpZiBzY2hlbWUgPT0gJ2h0dHAnOgorICAgICAgICAgICAgQ29ubkNsYXNzID0gc2VsZi5IVFRQQ29ubmVjdGlvbgorICAgICAgICBlbGlmIHNjaGVtZSA9PSAnaHR0cHMnOgorICAgICAgICAgICAgQ29ubkNsYXNzID0gc2VsZi5IVFRQU0Nvbm5lY3Rpb24KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIlVua25vd24gc2NoZW1lOiAlciIgJSBzY2hlbWUpCisgICAgICAgIGlmICdTRVJWRVJfTkFNRScgbm90IGluIGVudmlyb246CisgICAgICAgICAgICBob3N0ID0gZW52aXJvbi5nZXQoJ0hUVFBfSE9TVCcpCisgICAgICAgICAgICBpZiBub3QgaG9zdDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiZW52aXJvbiBjb250YWlucyBuZWl0aGVyIFNFUlZFUl9OQU1FIG5vciBIVFRQX0hPU1QiKQorICAgICAgICAgICAgaWYgJzonIGluIGhvc3Q6CisgICAgICAgICAgICAgICAgaG9zdCwgcG9ydCA9IGhvc3Quc3BsaXQoJzonLCAxKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzY2hlbWUgPT0gJ2h0dHAnOgorICAgICAgICAgICAgICAgICAgICBwb3J0ID0gJzgwJworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBvcnQgPSAnNDQzJworICAgICAgICAgICAgZW52aXJvblsnU0VSVkVSX05BTUUnXSA9IGhvc3QKKyAgICAgICAgICAgIGVudmlyb25bJ1NFUlZFUl9QT1JUJ10gPSBwb3J0CisgICAgICAgIGt3ID0ge30KKyAgICAgICAgaWYgKCd3ZWJvYi5jbGllbnQudGltZW91dCcgaW4gZW52aXJvbiBhbmQKKyAgICAgICAgICAgIHNlbGYuX3RpbWVvdXRfc3VwcG9ydGVkKENvbm5DbGFzcykgKToKKyAgICAgICAgICAgIGt3Wyd0aW1lb3V0J10gPSBlbnZpcm9uWyd3ZWJvYi5jbGllbnQudGltZW91dCddCisgICAgICAgIGNvbm4gPSBDb25uQ2xhc3MoJyUoU0VSVkVSX05BTUUpczolKFNFUlZFUl9QT1JUKXMnICUgZW52aXJvbiwgKiprdykKKyAgICAgICAgaGVhZGVycyA9IHt9CisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGVudmlyb24uaXRlbXMoKToKKyAgICAgICAgICAgIGlmIGtleS5zdGFydHN3aXRoKCdIVFRQXycpOgorICAgICAgICAgICAgICAgIGtleSA9IGtleVs1Ol0ucmVwbGFjZSgnXycsICctJykudGl0bGUoKQorICAgICAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IHZhbHVlCisgICAgICAgIHBhdGggPSAodXJsX3F1b3RlKGVudmlyb24uZ2V0KCdTQ1JJUFRfTkFNRScsICcnKSkKKyAgICAgICAgICAgICAgICArIHVybF9xdW90ZShlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpKSkKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ1FVRVJZX1NUUklORycpOgorICAgICAgICAgICAgcGF0aCArPSAnPycgKyBlbnZpcm9uWydRVUVSWV9TVFJJTkcnXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb250ZW50X2xlbmd0aCA9IGludChlbnZpcm9uLmdldCgnQ09OVEVOVF9MRU5HVEgnLCAnMCcpKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIGNvbnRlbnRfbGVuZ3RoID0gMAorICAgICAgICAjIyBGSVhNRTogdGhlcmUgaXMgbm8gc3RyZWFtaW5nIG9mIHRoZSBib2R5LCBhbmQgdGhhdCBtaWdodCBiZSB1c2VmdWwKKyAgICAgICAgIyMgaW4gc29tZSBjYXNlcworICAgICAgICBpZiBjb250ZW50X2xlbmd0aDoKKyAgICAgICAgICAgIGJvZHkgPSBlbnZpcm9uWyd3c2dpLmlucHV0J10ucmVhZChjb250ZW50X2xlbmd0aCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJvZHkgPSAnJworICAgICAgICBoZWFkZXJzWydDb250ZW50LUxlbmd0aCddID0gY29udGVudF9sZW5ndGgKKyAgICAgICAgaWYgZW52aXJvbi5nZXQoJ0NPTlRFTlRfVFlQRScpOgorICAgICAgICAgICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSBlbnZpcm9uWydDT05URU5UX1RZUEUnXQorICAgICAgICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKCIvIik6CisgICAgICAgICAgICBwYXRoID0gIi8iICsgcGF0aAorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb25uLnJlcXVlc3QoZW52aXJvblsnUkVRVUVTVF9NRVRIT0QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBib2R5LCBoZWFkZXJzKQorICAgICAgICAgICAgcmVzID0gY29ubi5nZXRyZXNwb25zZSgpCisgICAgICAgIGV4Y2VwdCBzb2NrZXQudGltZW91dDoKKyAgICAgICAgICAgIHJlc3AgPSBleGMuSFRUUEdhdGV3YXlUaW1lb3V0KCkKKyAgICAgICAgICAgIHJldHVybiByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgc29ja2V0LmdhaWVycm9yKSBhcyBlOgorICAgICAgICAgICAgaWYgKChpc2luc3RhbmNlKGUsIHNvY2tldC5lcnJvcikgYW5kIGUuYXJnc1swXSA9PSAtMikgb3IKKyAgICAgICAgICAgICAgICAoaXNpbnN0YW5jZShlLCBzb2NrZXQuZ2FpZXJyb3IpIGFuZCBlLmFyZ3NbMF0gPT0gOCkpOgorICAgICAgICAgICAgICAgICMgTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93bgorICAgICAgICAgICAgICAgIHJlc3AgPSBleGMuSFRUUEJhZEdhdGV3YXkoCisgICAgICAgICAgICAgICAgICAgICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIChiYWQgZG9tYWluIG5hbWU6ICVzKSIKKyAgICAgICAgICAgICAgICAgICAgJSBlbnZpcm9uWydTRVJWRVJfTkFNRSddKQorICAgICAgICAgICAgICAgIHJldHVybiByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgZWxpZiBlLmFyZ3NbMF0gaW4gX2VfcmVmdXNlZDogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgIyBDb25uZWN0aW9uIHJlZnVzZWQKKyAgICAgICAgICAgICAgICByZXNwID0gZXhjLkhUVFBCYWRHYXRld2F5KCJDb25uZWN0aW9uIHJlZnVzZWQiKQorICAgICAgICAgICAgICAgIHJldHVybiByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgaGVhZGVyc19vdXQgPSBzZWxmLnBhcnNlX2hlYWRlcnMocmVzLm1zZykKKyAgICAgICAgc3RhdHVzID0gJyVzICVzJyAlIChyZXMuc3RhdHVzLCByZXMucmVhc29uKQorICAgICAgICBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnNfb3V0KQorICAgICAgICBsZW5ndGggPSByZXMuZ2V0aGVhZGVyKCdjb250ZW50LWxlbmd0aCcpCisgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkbid0IHJlYWxseSByZWFkIGluIGFsbCB0aGUgY29udGVudCBhdCBvbmNlCisgICAgICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHkgPSByZXMucmVhZChpbnQobGVuZ3RoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJvZHkgPSByZXMucmVhZCgpCisgICAgICAgIGNvbm4uY2xvc2UoKQorICAgICAgICByZXR1cm4gW2JvZHldCisKKyAgICAjIFJlbW92ZSB0aGVzZSBoZWFkZXJzIGZyb20gcmVzcG9uc2UgKHNwZWNpZnkgbG93ZXIgY2FzZSBoZWFkZXIKKyAgICAjIG5hbWVzKToKKyAgICBmaWx0ZXJlZF9oZWFkZXJzID0gKAorICAgICAgICAndHJhbnNmZXItZW5jb2RpbmcnLAorICAgICkKKworICAgIE1VTFRJTElORV9SRSA9IHJlLmNvbXBpbGUocidccj9cblxzKicpCisKKyAgICBkZWYgcGFyc2VfaGVhZGVycyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgIiIiCisgICAgICAgIFR1cm4gYSBNZXNzYWdlIG9iamVjdCBpbnRvIGEgbGlzdCBvZiBXU0dJLXN0eWxlIGhlYWRlcnMuCisgICAgICAgICIiIgorICAgICAgICBoZWFkZXJzX291dCA9IFtdCisgICAgICAgIGlmIFBZMzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgaGVhZGVycyA9IG1lc3NhZ2UuX2hlYWRlcnMKKyAgICAgICAgZWxzZTogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgaGVhZGVycyA9IG1lc3NhZ2UuaGVhZGVycworICAgICAgICBmb3IgZnVsbF9oZWFkZXIgaW4gaGVhZGVyczoKKyAgICAgICAgICAgIGlmIG5vdCBmdWxsX2hlYWRlcjogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgIyBTaG91bGRuJ3QgaGFwcGVuLCBidXQgd2UnbGwganVzdCBpZ25vcmUKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgZnVsbF9oZWFkZXJbMF0uaXNzcGFjZSgpOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgIyBDb250aW51YXRpb24gbGluZSwgYWRkIHRvIHRoZSBsYXN0IGhlYWRlcgorICAgICAgICAgICAgICAgIGlmIG5vdCBoZWFkZXJzX291dDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICJGaXJzdCBoZWFkZXIgc3RhcnRzIHdpdGggYSBzcGFjZSAoJXIpIiAlIGZ1bGxfaGVhZGVyKQorICAgICAgICAgICAgICAgIGxhc3RfaGVhZGVyLCBsYXN0X3ZhbHVlID0gaGVhZGVyc19vdXQucG9wKCkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxhc3RfdmFsdWUgKyAnLCAnICsgZnVsbF9oZWFkZXIuc3RyaXAoKQorICAgICAgICAgICAgICAgIGhlYWRlcnNfb3V0LmFwcGVuZCgobGFzdF9oZWFkZXIsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShmdWxsX2hlYWRlciwgdHVwbGUpOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgaGVhZGVyLCB2YWx1ZSA9IGZ1bGxfaGVhZGVyCisgICAgICAgICAgICBlbHNlOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBoZWFkZXIsIHZhbHVlID0gZnVsbF9oZWFkZXIuc3BsaXQoJzonLCAxKQorICAgICAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBoZWFkZXI6ICVyIiAlIChmdWxsX2hlYWRlciwpKQorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zdHJpcCgpCisgICAgICAgICAgICBpZiAnXG4nIGluIHZhbHVlIG9yICdcclxuJyBpbiB2YWx1ZTogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgICAgICMgUHl0aG9uIDMgaGFzIG11bHRpbGluZSB2YWx1ZXMgZm9yIGNvbnRpbnVhdGlvbnMsIFB5dGhvbiAyCisgICAgICAgICAgICAgICAgIyBoYXMgdHdvIGl0ZW1zIGluIGhlYWRlcnMKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuTVVMVElMSU5FX1JFLnN1YignLCAnLCB2YWx1ZSkKKyAgICAgICAgICAgIGlmIGhlYWRlci5sb3dlcigpIG5vdCBpbiBzZWxmLmZpbHRlcmVkX2hlYWRlcnM6CisgICAgICAgICAgICAgICAgaGVhZGVyc19vdXQuYXBwZW5kKChoZWFkZXIsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGhlYWRlcnNfb3V0CisKKyAgICBkZWYgX3RpbWVvdXRfc3VwcG9ydGVkKHNlbGYsIENvbm5DbGFzcyk6CisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMiwgNykgYW5kIENvbm5DbGFzcyBpbiAoCisgICAgICAgICAgICBodHRwbGliLkhUVFBDb25uZWN0aW9uLCBodHRwbGliLkhUVFBTQ29ubmVjdGlvbik6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKworc2VuZF9yZXF1ZXN0X2FwcCA9IFNlbmRSZXF1ZXN0KCkKKworX2VfcmVmdXNlZCA9IChlcnJuby5FQ09OTlJFRlVTRUQsKQoraWYgaGFzYXR0cihlcnJubywgJ0VOT0RBVEEnKTogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgX2VfcmVmdXNlZCArPSAoZXJybm8uRU5PREFUQSwpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvY29tcGF0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2NvbXBhdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDBlZTYzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2NvbXBhdC5weQpAQCAtMCwwICsxLDE5NCBAQAorIyBjb2RlIHN0b2xlbiBmcm9tICJzaXgiCisKK2ltcG9ydCBzeXMKK2ltcG9ydCB0eXBlcworCisjIFRydWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24gUHl0aG9uIDMuCitQWTMgPSBzeXMudmVyc2lvbl9pbmZvWzBdID09IDMKKworaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBzdHJpbmdfdHlwZXMgPSBzdHIsCisgICAgaW50ZWdlcl90eXBlcyA9IGludCwKKyAgICBjbGFzc190eXBlcyA9IHR5cGUsCisgICAgdGV4dF90eXBlID0gc3RyCisgICAgbG9uZyA9IGludAorZWxzZToKKyAgICBzdHJpbmdfdHlwZXMgPSBiYXNlc3RyaW5nLAorICAgIGludGVnZXJfdHlwZXMgPSAoaW50LCBsb25nKQorICAgIGNsYXNzX3R5cGVzID0gKHR5cGUsIHR5cGVzLkNsYXNzVHlwZSkKKyAgICB0ZXh0X3R5cGUgPSB1bmljb2RlCisgICAgbG9uZyA9IGxvbmcKKworIyBUT0RPIGNoZWNrIGlmIGVycm9ycyBpcyBldmVyIHVzZWQKKworZGVmIHRleHRfKHMsIGVuY29kaW5nPSdsYXRpbi0xJywgZXJyb3JzPSdzdHJpY3QnKToKKyAgICBpZiBpc2luc3RhbmNlKHMsIGJ5dGVzKToKKyAgICAgICAgcmV0dXJuIHMuZGVjb2RlKGVuY29kaW5nLCBlcnJvcnMpCisgICAgcmV0dXJuIHMKKworZGVmIGJ5dGVzXyhzLCBlbmNvZGluZz0nbGF0aW4tMScsIGVycm9ycz0nc3RyaWN0Jyk6CisgICAgaWYgaXNpbnN0YW5jZShzLCB0ZXh0X3R5cGUpOgorICAgICAgICByZXR1cm4gcy5lbmNvZGUoZW5jb2RpbmcsIGVycm9ycykKKyAgICByZXR1cm4gcworCitpZiBQWTM6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGRlZiBuYXRpdmVfKHMsIGVuY29kaW5nPSdsYXRpbi0xJywgZXJyb3JzPSdzdHJpY3QnKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgcmV0dXJuIHMKKyAgICAgICAgcmV0dXJuIHN0cihzLCBlbmNvZGluZywgZXJyb3JzKQorZWxzZToKKyAgICBkZWYgbmF0aXZlXyhzLCBlbmNvZGluZz0nbGF0aW4tMScsIGVycm9ycz0nc3RyaWN0Jyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UocywgdGV4dF90eXBlKToKKyAgICAgICAgICAgIHJldHVybiBzLmVuY29kZShlbmNvZGluZywgZXJyb3JzKQorICAgICAgICByZXR1cm4gc3RyKHMpCisKK3RyeToKKyAgICBmcm9tIHF1ZXVlIGltcG9ydCBRdWV1ZSwgRW1wdHkKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIFF1ZXVlIGltcG9ydCBRdWV1ZSwgRW1wdHkKKworaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgcGFyc2UKKyAgICB1cmxwYXJzZSA9IHBhcnNlCisgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHF1b3RlIGFzIHVybF9xdW90ZQorICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUgYXMgdXJsX2VuY29kZSwgcXVvdGVfcGx1cworICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4gYXMgdXJsX29wZW4KK2Vsc2U6CisgICAgaW1wb3J0IHVybHBhcnNlCisgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHF1b3RlX3BsdXMKKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgcXVvdGUgYXMgdXJsX3F1b3RlCisgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVucXVvdGUgYXMgdXJsX3VucXVvdGUKKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsZW5jb2RlIGFzIHVybF9lbmNvZGUKKyAgICBmcm9tIHVybGxpYjIgaW1wb3J0IHVybG9wZW4gYXMgdXJsX29wZW4KKworaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBkZWYgcmVyYWlzZShleGNfaW5mbyk6CisgICAgICAgIGV0eXBlLCBleGMsIHRiID0gZXhjX2luZm8KKyAgICAgICAgaWYgZXhjLl9fdHJhY2ViYWNrX18gaXMgbm90IHRiOgorICAgICAgICAgICAgcmFpc2UgZXhjLndpdGhfdHJhY2ViYWNrKHRiKQorICAgICAgICByYWlzZSBleGMKK2Vsc2U6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGV4ZWMoImRlZiByZXJhaXNlKGV4Yyk6IHJhaXNlIGV4Y1swXSwgZXhjWzFdLCBleGNbMl0iKQorCisKK2lmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgZGVmIGl0ZXJpdGVtc18oZCk6CisgICAgICAgIHJldHVybiBkLml0ZW1zKCkKKyAgICBkZWYgaXRlcnZhbHVlc18oZCk6CisgICAgICAgIHJldHVybiBkLnZhbHVlcygpCitlbHNlOgorICAgIGRlZiBpdGVyaXRlbXNfKGQpOgorICAgICAgICByZXR1cm4gZC5pdGVyaXRlbXMoKQorICAgIGRlZiBpdGVydmFsdWVzXyhkKToKKyAgICAgICAgcmV0dXJuIGQuaXRlcnZhbHVlcygpCisKKworaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBkZWYgdW5xdW90ZShzdHJpbmcpOgorICAgICAgICBpZiBub3Qgc3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIGInJworICAgICAgICByZXMgPSBzdHJpbmcuc3BsaXQoYiclJykKKyAgICAgICAgaWYgbGVuKHJlcykgIT0gMToKKyAgICAgICAgICAgIHN0cmluZyA9IHJlc1swXQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcmVzWzE6XToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHN0cmluZyArPSBieXRlcyhbaW50KGl0ZW1bOjJdLCAxNildKSArIGl0ZW1bMjpdCisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHN0cmluZyArPSBiJyUnICsgaXRlbQorICAgICAgICByZXR1cm4gc3RyaW5nCisKKyAgICBkZWYgdXJsX3VucXVvdGUocyk6CisgICAgICAgIHJldHVybiB1bnF1b3RlKHMuZW5jb2RlKCdhc2NpaScpKS5kZWNvZGUoJ2xhdGluLTEnKQorCisgICAgZGVmIHBhcnNlX3FzbF90ZXh0KHFzLCBlbmNvZGluZz0ndXRmLTgnKToKKyAgICAgICAgcXMgPSBxcy5lbmNvZGUoJ2xhdGluLTEnKQorICAgICAgICBxcyA9IHFzLnJlcGxhY2UoYicrJywgYicgJykKKyAgICAgICAgcGFpcnMgPSBbczIgZm9yIHMxIGluIHFzLnNwbGl0KGInJicpIGZvciBzMiBpbiBzMS5zcGxpdChiJzsnKSBpZiBzMl0KKyAgICAgICAgZm9yIG5hbWVfdmFsdWUgaW4gcGFpcnM6CisgICAgICAgICAgICBudiA9IG5hbWVfdmFsdWUuc3BsaXQoYic9JywgMSkKKyAgICAgICAgICAgIGlmIGxlbihudikgIT0gMjoKKyAgICAgICAgICAgICAgICBudi5hcHBlbmQoJycpCisgICAgICAgICAgICBuYW1lID0gdW5xdW90ZShudlswXSkKKyAgICAgICAgICAgIHZhbHVlID0gdW5xdW90ZShudlsxXSkKKyAgICAgICAgICAgIHlpZWxkIChuYW1lLmRlY29kZShlbmNvZGluZyksIHZhbHVlLmRlY29kZShlbmNvZGluZykpCisKK2Vsc2U6CisgICAgZnJvbSB1cmxwYXJzZSBpbXBvcnQgcGFyc2VfcXNsCisKKyAgICBkZWYgcGFyc2VfcXNsX3RleHQocXMsIGVuY29kaW5nPSd1dGYtOCcpOgorICAgICAgICBxc2wgPSBwYXJzZV9xc2woCisgICAgICAgICAgICBxcywKKyAgICAgICAgICAgIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUsCisgICAgICAgICAgICBzdHJpY3RfcGFyc2luZz1GYWxzZQorICAgICAgICApCisgICAgICAgIGZvciAoeCwgeSkgaW4gcXNsOgorICAgICAgICAgICAgeWllbGQgKHguZGVjb2RlKGVuY29kaW5nKSwgeS5kZWNvZGUoZW5jb2RpbmcpKQorCisKK2lmIFBZMzogIyBwcmFnbWEgbm8gY292ZXIKKyAgICBmcm9tIGh0bWwgaW1wb3J0IGVzY2FwZQorZWxzZToKKyAgICBmcm9tIGNnaSBpbXBvcnQgZXNjYXBlCisKKworIyBXZSBvbmx5IG5lZWQgdGhpcyBvbiBQeXRob24zIGJ1dCB0aGUgaXNzdWUgd2FzIGZpeGVkIGluIFB5dG9obiAzLjQuNCBhbmQgMy41LgoraWYgUFkzIGFuZCBzeXMudmVyc2lvbl9pbmZvWzozXSA8ICgzLCA0LCA0KTogICMgcHJhZ21hIG5vIGNvdmVyCisgICAgIyBXb3JrIGFyb3VuZCBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjM4MDEKKyAgICBpbXBvcnQgY2dpCisgICAgZnJvbSBjZ2kgaW1wb3J0IEZpZWxkU3RvcmFnZSBhcyBfY2dpX0ZpZWxkU3RvcmFnZQorCisgICAgY2xhc3MgY2dpX0ZpZWxkU3RvcmFnZShfY2dpX0ZpZWxkU3RvcmFnZSk6CisgICAgICAgICMgVGhpcyBpcyB0YWtlbiBleGFjdGx5IGZyb20gUHl0aG9uIDMuNSdzIGNnaS5weSBtb2R1bGUsIGFuZCBwYXRjaGVkCisgICAgICAgICMgd2l0aCB0aGUgcGF0Y2ggZnJvbSBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjM4MDEuCisgICAgICAgIGRlZiByZWFkX211bHRpKHNlbGYsIGVudmlyb24sIGtlZXBfYmxhbmtfdmFsdWVzLCBzdHJpY3RfcGFyc2luZyk6CisgICAgICAgICAgICAiIiJJbnRlcm5hbDogcmVhZCBhIHBhcnQgdGhhdCBpcyBpdHNlbGYgbXVsdGlwYXJ0LiIiIgorICAgICAgICAgICAgaWIgPSBzZWxmLmlubmVyYm91bmRhcnkKKyAgICAgICAgICAgIGlmIG5vdCBjZ2kudmFsaWRfYm91bmRhcnkoaWIpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIGJvdW5kYXJ5IGluIG11bHRpcGFydCBmb3JtOiAlcicgJSAoaWIsKSkKKyAgICAgICAgICAgIHNlbGYubGlzdCA9IFtdCisgICAgICAgICAgICBpZiBzZWxmLnFzX29uX3Bvc3Q6CisgICAgICAgICAgICAgICAgcXVlcnkgPSBjZ2kudXJsbGliLnBhcnNlLnBhcnNlX3FzbCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5xc19vbl9wb3N0LCBzZWxmLmtlZXBfYmxhbmtfdmFsdWVzLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnN0cmljdF9wYXJzaW5nLAorICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz1zZWxmLmVuY29kaW5nLCBlcnJvcnM9c2VsZi5lcnJvcnMpCisgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gcXVlcnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubGlzdC5hcHBlbmQoY2dpLk1pbmlGaWVsZFN0b3JhZ2Uoa2V5LCB2YWx1ZSkpCisKKyAgICAgICAgICAgIGtsYXNzID0gc2VsZi5GaWVsZFN0b3JhZ2VDbGFzcyBvciBzZWxmLl9fY2xhc3NfXworICAgICAgICAgICAgZmlyc3RfbGluZSA9IHNlbGYuZnAucmVhZGxpbmUoKSAgIyBieXRlcworICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZmlyc3RfbGluZSwgYnl0ZXMpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIiVzIHNob3VsZCByZXR1cm4gYnl0ZXMsIGdvdCAlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHNlbGYuZnAsIHR5cGUoZmlyc3RfbGluZSkuX19uYW1lX18pKQorICAgICAgICAgICAgc2VsZi5ieXRlc19yZWFkICs9IGxlbihmaXJzdF9saW5lKQorCisgICAgICAgICAgICAjIEVuc3VyZSB0aGF0IHdlIGNvbnN1bWUgdGhlIGZpbGUgdW50aWwgd2UndmUgaGl0IG91ciBpbm5lcmJvdW5kYXJ5CisgICAgICAgICAgICB3aGlsZSAoZmlyc3RfbGluZS5zdHJpcCgpICE9IChiIi0tIiArIHNlbGYuaW5uZXJib3VuZGFyeSkgYW5kCisgICAgICAgICAgICAgICAgICAgIGZpcnN0X2xpbmUpOgorICAgICAgICAgICAgICAgIGZpcnN0X2xpbmUgPSBzZWxmLmZwLnJlYWRsaW5lKCkKKyAgICAgICAgICAgICAgICBzZWxmLmJ5dGVzX3JlYWQgKz0gbGVuKGZpcnN0X2xpbmUpCisKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgcGFyc2VyID0gY2dpLkZlZWRQYXJzZXIoKQorICAgICAgICAgICAgICAgIGhkcl90ZXh0ID0gYiIiCisgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuZnAucmVhZGxpbmUoKQorICAgICAgICAgICAgICAgICAgICBoZHJfdGV4dCArPSBkYXRhCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBkYXRhLnN0cmlwKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGlmIG5vdCBoZHJfdGV4dDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAjIHBhcnNlciB0YWtlcyBzdHJpbmdzLCBub3QgYnl0ZXMKKyAgICAgICAgICAgICAgICBzZWxmLmJ5dGVzX3JlYWQgKz0gbGVuKGhkcl90ZXh0KQorICAgICAgICAgICAgICAgIHBhcnNlci5mZWVkKGhkcl90ZXh0LmRlY29kZShzZWxmLmVuY29kaW5nLCBzZWxmLmVycm9ycykpCisgICAgICAgICAgICAgICAgaGVhZGVycyA9IHBhcnNlci5jbG9zZSgpCisgICAgICAgICAgICAgICAgcGFydCA9IGtsYXNzKHNlbGYuZnAsIGhlYWRlcnMsIGliLCBlbnZpcm9uLCBrZWVwX2JsYW5rX3ZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaWN0X3BhcnNpbmcsIHNlbGYubGltaXQtc2VsZi5ieXRlc19yZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmVuY29kaW5nLCBzZWxmLmVycm9ycykKKyAgICAgICAgICAgICAgICBzZWxmLmJ5dGVzX3JlYWQgKz0gcGFydC5ieXRlc19yZWFkCisgICAgICAgICAgICAgICAgc2VsZi5saXN0LmFwcGVuZChwYXJ0KQorICAgICAgICAgICAgICAgIGlmIHBhcnQuZG9uZSBvciBzZWxmLmJ5dGVzX3JlYWQgPj0gc2VsZi5sZW5ndGggPiAwOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgc2VsZi5za2lwX2xpbmVzKCkKK2Vsc2U6CisgICAgZnJvbSBjZ2kgaW1wb3J0IEZpZWxkU3RvcmFnZSBhcyBjZ2lfRmllbGRTdG9yYWdlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvY29va2llcy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9jb29raWVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyZTY3YzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvY29va2llcy5weQpAQCAtMCwwICsxLDkxMCBAQAoraW1wb3J0IGNvbGxlY3Rpb25zCisKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCBiaW5hc2NpaQoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBobWFjCitpbXBvcnQganNvbgorZnJvbSBkYXRldGltZSBpbXBvcnQgKAorICAgIGRhdGUsCisgICAgZGF0ZXRpbWUsCisgICAgdGltZWRlbHRhLAorICAgICkKK2ltcG9ydCByZQoraW1wb3J0IHN0cmluZworaW1wb3J0IHRpbWUKK2ltcG9ydCB3YXJuaW5ncworCitmcm9tIHdlYm9iLmNvbXBhdCBpbXBvcnQgKAorICAgIFBZMywKKyAgICB0ZXh0X3R5cGUsCisgICAgYnl0ZXNfLAorICAgIHRleHRfLAorICAgIG5hdGl2ZV8sCisgICAgc3RyaW5nX3R5cGVzLAorICAgICkKKworZnJvbSB3ZWJvYi51dGlsIGltcG9ydCBzdHJpbmdzX2RpZmZlcgorCitfX2FsbF9fID0gWydDb29raWUnLCAnQ29va2llUHJvZmlsZScsICdTaWduZWRDb29raWVQcm9maWxlJywgJ1NpZ25lZFNlcmlhbGl6ZXInLAorICAgICAgICAgICAnSlNPTlNlcmlhbGl6ZXInLCAnQmFzZTY0U2VyaWFsaXplcicsICdtYWtlX2Nvb2tpZSddCisKK19tYXJrZXIgPSBvYmplY3QoKQorCitjbGFzcyBSZXF1ZXN0Q29va2llcyhjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGluZyk6CisKKyAgICBfY2FjaGVfa2V5ID0gJ3dlYm9iLl9wYXJzZWRfY29va2llcycKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbnZpcm9uKToKKyAgICAgICAgc2VsZi5fZW52aXJvbiA9IGVudmlyb24KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfY2FjaGUoc2VsZik6CisgICAgICAgIGVudiA9IHNlbGYuX2Vudmlyb24KKyAgICAgICAgaGVhZGVyID0gZW52LmdldCgnSFRUUF9DT09LSUUnLCAnJykKKyAgICAgICAgY2FjaGUsIGNhY2hlX2hlYWRlciA9IGVudi5nZXQoc2VsZi5fY2FjaGVfa2V5LCAoe30sIE5vbmUpKQorICAgICAgICBpZiBjYWNoZV9oZWFkZXIgPT0gaGVhZGVyOgorICAgICAgICAgICAgcmV0dXJuIGNhY2hlCisgICAgICAgIGQgPSBsYW1iZGEgYjogYi5kZWNvZGUoJ3V0ZjgnKQorICAgICAgICBjYWNoZSA9IGRpY3QoKGQoayksIGQodikpIGZvciBrLHYgaW4gcGFyc2VfY29va2llKGhlYWRlcikpCisgICAgICAgIGVudltzZWxmLl9jYWNoZV9rZXldID0gKGNhY2hlLCBoZWFkZXIpCisgICAgICAgIHJldHVybiBjYWNoZQorCisgICAgZGVmIF9tdXRhdGVfaGVhZGVyKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgaGVhZGVyID0gc2VsZi5fZW52aXJvbi5nZXQoJ0hUVFBfQ09PS0lFJykKKyAgICAgICAgaGFkX2hlYWRlciA9IGhlYWRlciBpcyBub3QgTm9uZQorICAgICAgICBoZWFkZXIgPSBoZWFkZXIgb3IgJycKKyAgICAgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICAgICBoZWFkZXIgPSBoZWFkZXIuZW5jb2RlKCdsYXRpbi0xJykKKyAgICAgICAgYnl0ZXNfbmFtZSA9IGJ5dGVzXyhuYW1lLCAnYXNjaWknKQorICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBieXRlc192YWwgPSBfdmFsdWVfcXVvdGUoYnl0ZXNfKHZhbHVlLCAndXRmLTgnKSkKKyAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gYnl0ZXNfbmFtZSArIGInPScgKyBieXRlc192YWwKKyAgICAgICAgbWF0Y2hlcyA9IF9yeF9jb29raWUuZmluZGl0ZXIoaGVhZGVyKQorICAgICAgICBmb3VuZCA9IEZhbHNlCisgICAgICAgIGZvciBtYXRjaCBpbiBtYXRjaGVzOgorICAgICAgICAgICAgc3RhcnQsIGVuZCA9IG1hdGNoLnNwYW4oKQorICAgICAgICAgICAgbWF0Y2hfbmFtZSA9IG1hdGNoLmdyb3VwKDEpCisgICAgICAgICAgICBpZiBtYXRjaF9uYW1lID09IGJ5dGVzX25hbWU6CisgICAgICAgICAgICAgICAgZm91bmQgPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgcmVwbGFjZW1lbnQgaXMgTm9uZTogIyByZW1vdmUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gaGVhZGVyWzpzdGFydF0ucnN0cmlwKGInIDsnKSArIGhlYWRlcltlbmQ6XQorICAgICAgICAgICAgICAgIGVsc2U6ICMgcmVwbGFjZSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICBoZWFkZXIgPSBoZWFkZXJbOnN0YXJ0XSArIHJlcGxhY2VtZW50ICsgaGVhZGVyW2VuZDpdCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHJlcGxhY2VtZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGlmIGhlYWRlcjoKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVyICs9IGInOyAnICsgcmVwbGFjZW1lbnQKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBoZWFkZXIgPSByZXBsYWNlbWVudAorCisgICAgICAgIGlmIGhlYWRlcjoKKyAgICAgICAgICAgIHNlbGYuX2Vudmlyb25bJ0hUVFBfQ09PS0lFJ10gPSBuYXRpdmVfKGhlYWRlciwgJ2xhdGluLTEnKQorICAgICAgICBlbGlmIGhhZF9oZWFkZXI6CisgICAgICAgICAgICBzZWxmLl9lbnZpcm9uWydIVFRQX0NPT0tJRSddID0gJycKKworICAgICAgICByZXR1cm4gZm91bmQKKworICAgIGRlZiBfdmFsaWRfY29va2llX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsIHN0cmluZ190eXBlcyk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobmFtZSwgJ2Nvb2tpZSBuYW1lIG11c3QgYmUgYSBzdHJpbmcnKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShuYW1lLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgbmFtZSA9IHRleHRfKG5hbWUsICd1dGYtOCcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGJ5dGVzX2Nvb2tpZV9uYW1lID0gYnl0ZXNfKG5hbWUsICdhc2NpaScpCisgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2Nvb2tpZSBuYW1lIG11c3QgYmUgZW5jb2RhYmxlIHRvIGFzY2lpJykKKyAgICAgICAgaWYgbm90IF92YWxpZF9jb29raWVfbmFtZShieXRlc19jb29raWVfbmFtZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2Nvb2tpZSBuYW1lIG11c3QgYmUgdmFsaWQgYWNjb3JkaW5nIHRvIFJGQyA2MjY1JykKKyAgICAgICAgcmV0dXJuIG5hbWUKKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIG5hbWUgPSBzZWxmLl92YWxpZF9jb29raWVfbmFtZShuYW1lKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IodmFsdWUsICdjb29raWUgdmFsdWUgbXVzdCBiZSBhIHN0cmluZycpCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHZhbHVlID0gdGV4dF8odmFsdWUsICd1dGYtOCcpCisgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgIHZhbHVlLCAnY29va2llIHZhbHVlIG11c3QgYmUgdXRmLTggYmluYXJ5IG9yIHVuaWNvZGUnKQorICAgICAgICBzZWxmLl9tdXRhdGVfaGVhZGVyKG5hbWUsIHZhbHVlKQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVbbmFtZV0KKworICAgIGRlZiBnZXQoc2VsZiwgbmFtZSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlLmdldChuYW1lLCBkZWZhdWx0KQorCisgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIG5hbWUpOgorICAgICAgICBuYW1lID0gc2VsZi5fdmFsaWRfY29va2llX25hbWUobmFtZSkKKyAgICAgICAgZm91bmQgPSBzZWxmLl9tdXRhdGVfaGVhZGVyKG5hbWUsIE5vbmUpCisgICAgICAgIGlmIG5vdCBmb3VuZDoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKG5hbWUpCisKKyAgICBkZWYga2V5cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlLmtleXMoKQorCisgICAgZGVmIHZhbHVlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlLnZhbHVlcygpCisKKyAgICBkZWYgaXRlbXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jYWNoZS5pdGVtcygpCisKKyAgICBpZiBub3QgUFkzOgorICAgICAgICBkZWYgaXRlcmtleXMoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGUuaXRlcmtleXMoKQorCisgICAgICAgIGRlZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlLml0ZXJ2YWx1ZXMoKQorCisgICAgICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGUuaXRlcml0ZW1zKCkKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBuYW1lIGluIHNlbGYuX2NhY2hlCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jYWNoZS5fX2l0ZXJfXygpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9jYWNoZSkKKworICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgc2VsZi5fZW52aXJvblsnSFRUUF9DT09LSUUnXSA9ICcnCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPFJlcXVlc3RDb29raWVzIChkaWN0LWxpa2UpIHdpdGggdmFsdWVzICVyPicgJSAoc2VsZi5fY2FjaGUsKQorCisKK2NsYXNzIENvb2tpZShkaWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaW5wdXQ9Tm9uZSk6CisgICAgICAgIGlmIGlucHV0OgorICAgICAgICAgICAgc2VsZi5sb2FkKGlucHV0KQorCisgICAgZGVmIGxvYWQoc2VsZiwgZGF0YSk6CisgICAgICAgIG1vcnNlbCA9IHt9CisgICAgICAgIGZvciBrZXksIHZhbCBpbiBfcGFyc2VfY29va2llKGRhdGEpOgorICAgICAgICAgICAgaWYga2V5Lmxvd2VyKCkgaW4gX2Nfa2V5czoKKyAgICAgICAgICAgICAgICBtb3JzZWxba2V5XSA9IHZhbAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtb3JzZWwgPSBzZWxmLmFkZChrZXksIHZhbCkKKworICAgIGRlZiBhZGQoc2VsZiwga2V5LCB2YWwpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShrZXksIGJ5dGVzKToKKyAgICAgICAgICAga2V5ID0ga2V5LmVuY29kZSgnYXNjaWknLCAncmVwbGFjZScpCisgICAgICAgIGlmIG5vdCBfdmFsaWRfY29va2llX25hbWUoa2V5KToKKyAgICAgICAgICAgIHJldHVybiB7fQorICAgICAgICByID0gTW9yc2VsKGtleSwgdmFsKQorICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNlbGYsIGtleSwgcikKKyAgICAgICAgcmV0dXJuIHIKKyAgICBfX3NldGl0ZW1fXyA9IGFkZAorCisgICAgZGVmIHNlcmlhbGl6ZShzZWxmLCBmdWxsPVRydWUpOgorICAgICAgICByZXR1cm4gJzsgJy5qb2luKG0uc2VyaWFsaXplKGZ1bGwpIGZvciBtIGluIHNlbGYudmFsdWVzKCkpCisKKyAgICBkZWYgdmFsdWVzKHNlbGYpOgorICAgICAgICByZXR1cm4gW20gZm9yIF8sIG0gaW4gc29ydGVkKHNlbGYuaXRlbXMoKSldCisKKyAgICBfX3N0cl9fID0gc2VyaWFsaXplCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzOiBbJXNdPicgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKG1hcChyZXByLCBzZWxmLnZhbHVlcygpKSkpCisKKworZGVmIF9wYXJzZV9jb29raWUoZGF0YSk6CisgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgZGF0YSA9IGRhdGEuZW5jb2RlKCdsYXRpbi0xJykKKyAgICBmb3Iga2V5LCB2YWwgaW4gX3J4X2Nvb2tpZS5maW5kYWxsKGRhdGEpOgorICAgICAgICB5aWVsZCBrZXksIF91bnF1b3RlKHZhbCkKKworZGVmIHBhcnNlX2Nvb2tpZShkYXRhKToKKyAgICAiIiIKKyAgICBQYXJzZSBjb29raWVzIGlnbm9yaW5nIGFueXRoaW5nIGV4Y2VwdCBuYW1lcyBhbmQgdmFsdWVzCisgICAgIiIiCisgICAgcmV0dXJuICgoayx2KSBmb3Igayx2IGluIF9wYXJzZV9jb29raWUoZGF0YSkgaWYgX3ZhbGlkX2Nvb2tpZV9uYW1lKGspKQorCisKK2RlZiBjb29raWVfcHJvcGVydHkoa2V5LCBzZXJpYWxpemU9bGFtYmRhIHY6IHYpOgorICAgIGRlZiBmc2V0KHNlbGYsIHYpOgorICAgICAgICBzZWxmW2tleV0gPSBzZXJpYWxpemUodikKKyAgICByZXR1cm4gcHJvcGVydHkobGFtYmRhIHNlbGY6IHNlbGZba2V5XSwgZnNldCkKKworZGVmIHNlcmlhbGl6ZV9tYXhfYWdlKHYpOgorICAgIGlmIGlzaW5zdGFuY2UodiwgdGltZWRlbHRhKToKKyAgICAgICAgdiA9IHN0cih2LnNlY29uZHMgKyB2LmRheXMqMjQqNjAqNjApCisgICAgZWxpZiBpc2luc3RhbmNlKHYsIGludCk6CisgICAgICAgIHYgPSBzdHIodikKKyAgICByZXR1cm4gYnl0ZXNfKHYpCisKK2RlZiBzZXJpYWxpemVfY29va2llX2RhdGUodik6CisgICAgaWYgdiBpcyBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBieXRlcyk6CisgICAgICAgIHJldHVybiB2CisgICAgZWxpZiBpc2luc3RhbmNlKHYsIHRleHRfdHlwZSk6CisgICAgICAgIHJldHVybiB2LmVuY29kZSgnYXNjaWknKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBpbnQpOgorICAgICAgICB2ID0gdGltZWRlbHRhKHNlY29uZHM9dikKKyAgICBpZiBpc2luc3RhbmNlKHYsIHRpbWVkZWx0YSk6CisgICAgICAgIHYgPSBkYXRldGltZS51dGNub3coKSArIHYKKyAgICBpZiBpc2luc3RhbmNlKHYsIChkYXRldGltZSwgZGF0ZSkpOgorICAgICAgICB2ID0gdi50aW1ldHVwbGUoKQorICAgIHIgPSB0aW1lLnN0cmZ0aW1lKCclJXMsICVkLSUlcy0lWSAlSDolTTolUyBHTVQnLCB2KQorICAgIHJldHVybiBieXRlc18ociAlICh3ZWVrZGF5c1t2WzZdXSwgbW9udGhzW3ZbMV1dKSwgJ2FzY2lpJykKKworY2xhc3MgTW9yc2VsKGRpY3QpOgorICAgIF9fc2xvdHNfXyA9ICgnbmFtZScsICd2YWx1ZScpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgc2VsZi5uYW1lID0gYnl0ZXNfKG5hbWUsIGVuY29kaW5nPSdhc2NpaScpCisgICAgICAgIHNlbGYudmFsdWUgPSBieXRlc18odmFsdWUsIGVuY29kaW5nPSdhc2NpaScpCisgICAgICAgIGFzc2VydCBfdmFsaWRfY29va2llX25hbWUoc2VsZi5uYW1lKQorICAgICAgICBzZWxmLnVwZGF0ZShkaWN0LmZyb21rZXlzKF9jX2tleXMsIE5vbmUpKQorCisgICAgcGF0aCA9IGNvb2tpZV9wcm9wZXJ0eShiJ3BhdGgnKQorICAgIGRvbWFpbiA9IGNvb2tpZV9wcm9wZXJ0eShiJ2RvbWFpbicpCisgICAgY29tbWVudCA9IGNvb2tpZV9wcm9wZXJ0eShiJ2NvbW1lbnQnKQorICAgIGV4cGlyZXMgPSBjb29raWVfcHJvcGVydHkoYidleHBpcmVzJywgc2VyaWFsaXplX2Nvb2tpZV9kYXRlKQorICAgIG1heF9hZ2UgPSBjb29raWVfcHJvcGVydHkoYidtYXgtYWdlJywgc2VyaWFsaXplX21heF9hZ2UpCisgICAgaHR0cG9ubHkgPSBjb29raWVfcHJvcGVydHkoYidodHRwb25seScsIGJvb2wpCisgICAgc2VjdXJlID0gY29va2llX3Byb3BlcnR5KGInc2VjdXJlJywgYm9vbCkKKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrLCB2KToKKyAgICAgICAgayA9IGJ5dGVzXyhrLmxvd2VyKCksICdhc2NpaScpCisgICAgICAgIGlmIGsgaW4gX2Nfa2V5czoKKyAgICAgICAgICAgIGRpY3QuX19zZXRpdGVtX18oc2VsZiwgaywgdikKKworICAgIGRlZiBzZXJpYWxpemUoc2VsZiwgZnVsbD1UcnVlKToKKyAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgYWRkID0gcmVzdWx0LmFwcGVuZAorICAgICAgICBhZGQoc2VsZi5uYW1lICsgYic9JyArIF92YWx1ZV9xdW90ZShzZWxmLnZhbHVlKSkKKyAgICAgICAgaWYgZnVsbDoKKyAgICAgICAgICAgIGZvciBrIGluIF9jX3ZhbGtleXM6CisgICAgICAgICAgICAgICAgdiA9IHNlbGZba10KKyAgICAgICAgICAgICAgICBpZiB2OgorICAgICAgICAgICAgICAgICAgICBpbmZvID0gX2NfcmVuYW1lc1trXQorICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5mb1snbmFtZSddCisgICAgICAgICAgICAgICAgICAgIHF1b3RlciA9IGluZm9bJ3F1b3RlciddCisgICAgICAgICAgICAgICAgICAgIGFkZChuYW1lICsgYic9JyArIHF1b3Rlcih2KSkKKyAgICAgICAgICAgIGV4cGlyZXMgPSBzZWxmW2InZXhwaXJlcyddCisgICAgICAgICAgICBpZiBleHBpcmVzOgorICAgICAgICAgICAgICAgIGFkZChiJ2V4cGlyZXM9JyArIGV4cGlyZXMpCisgICAgICAgICAgICBpZiBzZWxmLnNlY3VyZToKKyAgICAgICAgICAgICAgICBhZGQoYidzZWN1cmUnKQorICAgICAgICAgICAgaWYgc2VsZi5odHRwb25seToKKyAgICAgICAgICAgICAgICBhZGQoYidIdHRwT25seScpCisgICAgICAgIHJldHVybiBuYXRpdmVfKGInOyAnLmpvaW4ocmVzdWx0KSwgJ2FzY2lpJykKKworICAgIF9fc3RyX18gPSBzZXJpYWxpemUKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXM6ICVzPSVyPicgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBuYXRpdmVfKHNlbGYubmFtZSksCisgICAgICAgICAgICBuYXRpdmVfKHNlbGYudmFsdWUpCisgICAgICAgICkKKworIworIyBwYXJzaW5nCisjCisKKworX3JlX3F1b3RlZCA9IHInIig/OlxcInwuKSo/IicgIyBhbnkgZG91YmxlcXVvdGVkIHN0cmluZworX2xlZ2FsX3NwZWNpYWxfY2hhcnMgPSAifiFAIyQlXiYqKClfKz0tYC4/fDovKCl7fTw+JyIKK19yZV9sZWdhbF9jaGFyICA9IHIiW1x3XGQlc10iICUgcmUuZXNjYXBlKF9sZWdhbF9zcGVjaWFsX2NoYXJzKQorX3JlX2V4cGlyZXNfdmFsID0gciJcd3szfSxcc1tcd1xkLV17OSwxMX1cc1tcZDpdezh9XHNHTVQiCitfcmVfY29va2llX3N0cl9rZXkgPSByIiglcys/KSIgJSBfcmVfbGVnYWxfY2hhcgorX3JlX2Nvb2tpZV9zdHJfZXF1YWwgPSByIlxzKj1ccyoiCitfcmVfdW5xdW90ZWRfdmFsID0gciIoPzolc3xcXCg/OlswLTNdWzAtN11bMC03XXwuKSkqIiAlIF9yZV9sZWdhbF9jaGFyCitfcmVfY29va2llX3N0cl92YWwgPSByIiglc3wlc3wlcykiICUgKF9yZV9xdW90ZWQsIF9yZV9leHBpcmVzX3ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9yZV91bnF1b3RlZF92YWwpCitfcmVfY29va2llX3N0ciA9IF9yZV9jb29raWVfc3RyX2tleSArIF9yZV9jb29raWVfc3RyX2VxdWFsICsgX3JlX2Nvb2tpZV9zdHJfdmFsCisKK19yeF9jb29raWUgPSByZS5jb21waWxlKGJ5dGVzXyhfcmVfY29va2llX3N0ciwgJ2FzY2lpJykpCitfcnhfdW5xdW90ZSA9IHJlLmNvbXBpbGUoYnl0ZXNfKHInXFwoWzAtM11bMC03XVswLTddfC4pJywgJ2FzY2lpJykpCisKK19iY2hyID0gKGxhbWJkYSBpOiBieXRlcyhbaV0pKSBpZiBQWTMgZWxzZSBjaHIKK19jaF91bnF1b3RlX21hcCA9IGRpY3QoKGJ5dGVzXygnJTAzbycgJSBpKSwgX2JjaHIoaSkpCisgICAgZm9yIGkgaW4gcmFuZ2UoMjU2KQorKQorX2NoX3VucXVvdGVfbWFwLnVwZGF0ZSgodiwgdikgZm9yIHYgaW4gbGlzdChfY2hfdW5xdW90ZV9tYXAudmFsdWVzKCkpKQorCitfYl9kb2xsYXJfc2lnbiA9IG9yZCgnJCcpIGlmIFBZMyBlbHNlICckJworX2JfcXVvdGVfbWFyayA9IG9yZCgnIicpIGlmIFBZMyBlbHNlICciJworCitkZWYgX3VucXVvdGUodik6CisgICAgI2Fzc2VydCBpc2luc3RhbmNlKHYsIGJ5dGVzKQorICAgIGlmIHYgYW5kIHZbMF0gPT0gdlstMV0gPT0gX2JfcXVvdGVfbWFyazoKKyAgICAgICAgdiA9IHZbMTotMV0KKyAgICByZXR1cm4gX3J4X3VucXVvdGUuc3ViKF9jaF91bnF1b3RlLCB2KQorCitkZWYgX2NoX3VucXVvdGUobSk6CisgICAgcmV0dXJuIF9jaF91bnF1b3RlX21hcFttLmdyb3VwKDEpXQorCisKKyMKKyMgc2VyaWFsaXppbmcKKyMKKworIyB0aGVzZSBjaGFycyBjYW4gYmUgaW4gY29va2llIHZhbHVlIHNlZQorIyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjEgYW5kCisjIGh0dHBzOi8vZ2l0aHViLmNvbS9QeWxvbnMvd2Vib2IvcHVsbC8xMDQjaXNzdWVjb21tZW50LTI4MDQ0MzE0CisjCisjICEgKDB4MjEpLCAiIyQlJicoKSorIiAoMHgyNS0weDJCKSwgIi0uLzAxMjM0NTY3ODk6IiAoMHgyRC0weDNBKSwKKyMgIjw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbIiAoMHgzQy0weDVCKSwKKyMgIl1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX4iICgweDVELTB4N0UpCisKK19hbGxvd2VkX3NwZWNpYWxfY2hhcnMgPSAiISMkJSYnKCkqKy0uLzo8PT4/QFtdXl9ge3x9fiIKK19hbGxvd2VkX2Nvb2tpZV9jaGFycyA9IChzdHJpbmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5kaWdpdHMgKworICAgICAgICAgICAgICAgICAgICBfYWxsb3dlZF9zcGVjaWFsX2NoYXJzKQorX2FsbG93ZWRfY29va2llX2J5dGVzID0gYnl0ZXNfKF9hbGxvd2VkX2Nvb2tpZV9jaGFycykKKworIyB0aGVzZSBhcmUgdGhlIGNoYXJhY3RlcnMgYWNjZXB0ZWQgaW4gY29va2llICpuYW1lcyoKKyMgRnJvbSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNjE2I3NlY3Rpb24tMi4yOgorIyB0b2tlbiAgICAgICAgICA9IDEqPGFueSBDSEFSIGV4Y2VwdCBDVExzIG9yIHNlcGFyYXRvcnM+CisjIHNlcGFyYXRvcnMgICAgID0gIigiIHwgIikiIHwgIjwiIHwgIj4iIHwgIkAiCisjICAgICAgICAgICAgICAgIHwgIiwiIHwgIjsiIHwgIjoiIHwgIlwiIHwgPCI+CisjICAgICAgICAgICAgICAgIHwgIi8iIHwgIlsiIHwgIl0iIHwgIj8iIHwgIj0iCisjICAgICAgICAgICAgICAgIHwgInsiIHwgIn0iIHwgU1AgfCBIVAorIworIyBDVEwgICAgICAgICAgICA9IDxhbnkgVVMtQVNDSUkgY29udHJvbCBjaGFyYWN0ZXIKKyMgICAgICAgICAgICAgICAgICAgICAgICAgKG9jdGV0cyAwIC0gMzEpIGFuZCBERUwgKDEyNyk+CisjCitfdmFsaWRfdG9rZW5fY2hhcnMgPSBzdHJpbmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5kaWdpdHMgKyAiISMkJSYnKistLl5fYHx+IgorX3ZhbGlkX3Rva2VuX2J5dGVzID0gYnl0ZXNfKF92YWxpZF90b2tlbl9jaGFycykKKworIyB0aGlzIGlzIGEgbWFwIHVzZWQgdG8gZXNjYXBlIHRoZSB2YWx1ZXMKKworX2VzY2FwZV9ub29wX2NoYXJzID0gX2FsbG93ZWRfY29va2llX2NoYXJzICsgJyAnCitfZXNjYXBlX21hcCA9IGRpY3QoKGNocihpKSwgJ1xcJTAzbycgJSBpKSBmb3IgaSBpbiByYW5nZSgyNTYpKQorX2VzY2FwZV9tYXAudXBkYXRlKHppcChfZXNjYXBlX25vb3BfY2hhcnMsIF9lc2NhcGVfbm9vcF9jaGFycykpCitpZiBQWTM6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICMgY29udmVydCB0byB7aW50IC0+IGJ5dGVzfQorICAgIF9lc2NhcGVfbWFwID0gZGljdCgKKyAgICAgICAgKG9yZChrKSwgYnl0ZXNfKHYsICdhc2NpaScpKSBmb3IgaywgdiBpbiBfZXNjYXBlX21hcC5pdGVtcygpCisgICAgICAgICkKK19lc2NhcGVfY2hhciA9IF9lc2NhcGVfbWFwLl9fZ2V0aXRlbV9fCisKK3dlZWtkYXlzID0gKCdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nKQorbW9udGhzID0gKE5vbmUsICdKYW4nLCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5JywgJ0p1bicsICdKdWwnLCAnQXVnJywgJ1NlcCcsCisgICAgICAgICAgJ09jdCcsICdOb3YnLCAnRGVjJykKKworCisjIFRoaXMgaXMgdGVtcG9yYXJ5LCB1bnRpbCB3ZSBjYW4gcmVtb3ZlIHRoaXMgZnJvbSBfdmFsdWVfcXVvdGUKK19zaG91bGRfcmFpc2UgPSBOb25lCisKK2RlZiBfX3dhcm5fb3JfcmFpc2UodGV4dCwgd2Fybl9jbGFzcywgdG9fcmFpc2UsIHJhaXNlX3JlYXNvbik6CisgICAgaWYgX3Nob3VsZF9yYWlzZToKKyAgICAgICAgcmFpc2UgdG9fcmFpc2UocmFpc2VfcmVhc29uKQorCisgICAgZWxzZToKKyAgICAgICAgd2FybmluZ3Mud2Fybih0ZXh0LCB3YXJuX2NsYXNzLCBzdGFja2xldmVsPTIpCisKKworZGVmIF92YWx1ZV9xdW90ZSh2KToKKyAgICAjIFRoaXMgbG9va3Mgc2NhcnksIGJ1dCBpcyBzaW1wbGUuIFdlIHJlbW92ZSBhbGwgdmFsaWQgY2hhcmFjdGVycyBmcm9tIHRoZQorICAgICMgc3RyaW5nLCBpZiB3ZSBlbmQgdXAgd2l0aCBsZWZ0b3ZlcnMgKHN0cmluZyBpcyBsb25nZXIgdGhhbiAwLCB3ZSBoYXZlCisgICAgIyBpbnZhbGlkIGNoYXJhY3RlcnMgaW4gb3VyIHZhbHVlKQorCisgICAgbGVmdG92ZXJzID0gdi50cmFuc2xhdGUoTm9uZSwgX2FsbG93ZWRfY29va2llX2J5dGVzKQorICAgIGlmIGxlZnRvdmVyczoKKyAgICAgICAgX193YXJuX29yX3JhaXNlKAorICAgICAgICAgICAgICAgICJDb29raWUgdmFsdWUgY29udGFpbnMgaW52YWxpZCBieXRlczogKCVzKS4gRnV0dXJlIHZlcnNpb25zICIKKyAgICAgICAgICAgICAgICAid2lsbCByYWlzZSBWYWx1ZUVycm9yIHVwb24gZW5jb3VudGVyaW5nIGludmFsaWQgYnl0ZXMuIiAlCisgICAgICAgICAgICAgICAgKGxlZnRvdmVycywpLAorICAgICAgICAgICAgICAgIFJ1bnRpbWVXYXJuaW5nLCBWYWx1ZUVycm9yLCAnSW52YWxpZCBjaGFyYWN0ZXJzIGluIGNvb2tpZSB2YWx1ZScKKyAgICAgICAgICAgICAgICApCisgICAgICAgICNyYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYXJhY3RlcnMgaW4gY29va2llIHZhbHVlJykKKyAgICAgICAgcmV0dXJuIGInIicgKyBiJycuam9pbihtYXAoX2VzY2FwZV9jaGFyLCB2KSkgKyBiJyInCisKKyAgICByZXR1cm4gdgorCitkZWYgX3ZhbGlkX2Nvb2tpZV9uYW1lKGtleSk6CisgICAgcmV0dXJuIGlzaW5zdGFuY2Uoa2V5LCBieXRlcykgYW5kIG5vdCAoCisgICAgICAgIGtleS50cmFuc2xhdGUoTm9uZSwgX3ZhbGlkX3Rva2VuX2J5dGVzKQorICAgICAgICAjIE5vdCBleHBsaWNpdGx5IHJlcXVpcmVkIGJ5IFJGQzYyNjUsIG1heSBjb25zaWRlciByZW1vdmluZyBsYXRlcjoKKyAgICAgICAgb3Iga2V5WzBdID09IF9iX2RvbGxhcl9zaWduCisgICAgICAgIG9yIGtleS5sb3dlcigpIGluIF9jX2tleXMKKyAgICApCisKK2RlZiBfcGF0aF9xdW90ZSh2KToKKyAgICByZXR1cm4gYicnLmpvaW4obWFwKF9lc2NhcGVfY2hhciwgdikpCisKK19kb21haW5fcXVvdGUgPSBfcGF0aF9xdW90ZQorX21heF9hZ2VfcXVvdGUgPSBfcGF0aF9xdW90ZQorCitfY19yZW5hbWVzID0geworICAgIGIicGF0aCIgOiB7J25hbWUnOmIiUGF0aCIsICdxdW90ZXInOl9wYXRoX3F1b3RlfSwKKyAgICBiImNvbW1lbnQiIDogeyduYW1lJzpiIkNvbW1lbnQiLCAncXVvdGVyJzpfdmFsdWVfcXVvdGV9LAorICAgIGIiZG9tYWluIiA6IHsnbmFtZSc6YiJEb21haW4iLCAncXVvdGVyJzpfZG9tYWluX3F1b3RlfSwKKyAgICBiIm1heC1hZ2UiIDogeyduYW1lJzpiIk1heC1BZ2UiLCAncXVvdGVyJzpfbWF4X2FnZV9xdW90ZX0sCisgICAgfQorX2NfdmFsa2V5cyA9IHNvcnRlZChfY19yZW5hbWVzKQorX2Nfa2V5cyA9IHNldChfY19yZW5hbWVzKQorX2Nfa2V5cy51cGRhdGUoW2InZXhwaXJlcycsIGInc2VjdXJlJywgYidodHRwb25seSddKQorCisKK2RlZiBtYWtlX2Nvb2tpZShuYW1lLCB2YWx1ZSwgbWF4X2FnZT1Ob25lLCBwYXRoPScvJywgZG9tYWluPU5vbmUsCisgICAgICAgICAgICAgICAgc2VjdXJlPUZhbHNlLCBodHRwb25seT1GYWxzZSwgY29tbWVudD1Ob25lKToKKyAgICAiIiIgR2VuZXJhdGUgYSBjb29raWUgdmFsdWUuICBJZiBgYHZhbHVlYGAgaXMgTm9uZSwgZ2VuZXJhdGUgYSBjb29raWUgdmFsdWUKKyAgICB3aXRoIGFuIGV4cGlyYXRpb24gZGF0ZSBpbiB0aGUgcGFzdCIiIgorCisgICAgIyBXZSBhcmUgZGVsZXRpbmcgdGhlIGNvb2tpZSwgb3ZlcnJpZGUgbWF4X2FnZSBhbmQgZXhwaXJlcworICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgIHZhbHVlID0gYicnCisgICAgICAgICMgTm90ZSB0aGF0IHRoZSBtYXgtYWdlIHZhbHVlIG9mIHplcm8gaXMgdGVjaG5pY2FsbHkgY29udHJhc3BlYzsKKyAgICAgICAgIyBSRkM2MjY1IHNheXMgdGhhdCBtYXgtYWdlIGNhbm5vdCBiZSB6ZXJvLiAgSG93ZXZlciwgYWxsIGJyb3dzZXJzCisgICAgICAgICMgYXBwZWFyIHRvIHN1cHBvcnQgdGhpcyB0byBtZWFuICJkZWxldGUgaW1tZWRpYXRlbHkiLgorICAgICAgICAjIGh0dHA6Ly93d3cudGltd2lsc29uLmlkLmF1L25ld3MtdGhyZWUtY3JpdGljYWwtcHJvYmxlbXMtd2l0aC1yZmM2MjY1Lmh0bWwKKyAgICAgICAgbWF4X2FnZSA9IDAKKyAgICAgICAgZXhwaXJlcyA9ICdXZWQsIDMxLURlYy05NyAyMzo1OTo1OSBHTVQnCisKKyAgICAjIENvbnZlcnQgbWF4X2FnZSB0byBzZWNvbmRzCisgICAgZWxpZiBpc2luc3RhbmNlKG1heF9hZ2UsIHRpbWVkZWx0YSk6CisgICAgICAgIG1heF9hZ2UgPSAobWF4X2FnZS5kYXlzICogNjAgKiA2MCAqIDI0KSArIG1heF9hZ2Uuc2Vjb25kcworICAgICAgICBleHBpcmVzID0gbWF4X2FnZQorICAgIGVsc2U6CisgICAgICAgIGV4cGlyZXMgPSBtYXhfYWdlCisKKyAgICBtb3JzZWwgPSBNb3JzZWwobmFtZSwgdmFsdWUpCisKKyAgICBpZiBkb21haW4gaXMgbm90IE5vbmU6CisgICAgICAgIG1vcnNlbC5kb21haW4gPSBieXRlc18oZG9tYWluKQorICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAgICAgIG1vcnNlbC5wYXRoID0gYnl0ZXNfKHBhdGgpCisgICAgaWYgaHR0cG9ubHk6CisgICAgICAgIG1vcnNlbC5odHRwb25seSA9IFRydWUKKyAgICBpZiBzZWN1cmU6CisgICAgICAgIG1vcnNlbC5zZWN1cmUgPSBUcnVlCisgICAgaWYgbWF4X2FnZSBpcyBub3QgTm9uZToKKyAgICAgICAgbW9yc2VsLm1heF9hZ2UgPSBtYXhfYWdlCisgICAgaWYgZXhwaXJlcyBpcyBub3QgTm9uZToKKyAgICAgICAgbW9yc2VsLmV4cGlyZXMgPSBleHBpcmVzCisgICAgaWYgY29tbWVudCBpcyBub3QgTm9uZToKKyAgICAgICAgbW9yc2VsLmNvbW1lbnQgPSBieXRlc18oY29tbWVudCkKKyAgICByZXR1cm4gbW9yc2VsLnNlcmlhbGl6ZSgpCisKK2NsYXNzIEpTT05TZXJpYWxpemVyKG9iamVjdCk6CisgICAgIiIiIEEgc2VyaWFsaXplciB3aGljaCB1c2VzIGBqc29uLmR1bXBzYGAgYW5kIGBganNvbi5sb2Fkc2BgIiIiCisgICAgZGVmIGR1bXBzKHNlbGYsIGFwcHN0cnVjdCk6CisgICAgICAgIHJldHVybiBieXRlc18oanNvbi5kdW1wcyhhcHBzdHJ1Y3QpLCBlbmNvZGluZz0ndXRmLTgnKQorCisgICAgZGVmIGxvYWRzKHNlbGYsIGJzdHJ1Y3QpOgorICAgICAgICAjIE5COiBqc29uLmxvYWRzIHJhaXNlcyBWYWx1ZUVycm9yIGlmIG5vIGpzb24gb2JqZWN0IGNhbiBiZSBkZWNvZGVkCisgICAgICAgICMgc28gd2UgZG9uJ3QgaGF2ZSB0byBkbyBpdCBleHBsaWNpdGx5IGhlcmUuCisgICAgICAgIHJldHVybiBqc29uLmxvYWRzKHRleHRfKGJzdHJ1Y3QsIGVuY29kaW5nPSd1dGYtOCcpKQorCitjbGFzcyBCYXNlNjRTZXJpYWxpemVyKG9iamVjdCk6CisgICAgIiIiIEEgc2VyaWFsaXplciB3aGljaCB1c2VzIGJhc2U2NCB0byBlbmNvZGUvZGVjb2RlIGRhdGEiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXJpYWxpemVyPU5vbmUpOgorICAgICAgICBpZiBzZXJpYWxpemVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZXJpYWxpemVyID0gSlNPTlNlcmlhbGl6ZXIoKQorCisgICAgICAgIHNlbGYuc2VyaWFsaXplciA9IHNlcmlhbGl6ZXIKKworICAgIGRlZiBkdW1wcyhzZWxmLCBhcHBzdHJ1Y3QpOgorICAgICAgICAiIiIKKyAgICAgICAgR2l2ZW4gYW4gYGBhcHBzdHJ1Y3RgYCwgc2VyaWFsaXplIGFuZCBzaWduIHRoZSBkYXRhLgorCisgICAgICAgIFJldHVybnMgYSBieXRlc3RyaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgY3N0cnVjdCA9IHNlbGYuc2VyaWFsaXplci5kdW1wcyhhcHBzdHJ1Y3QpICMgd2lsbCBiZSBieXRlcworICAgICAgICByZXR1cm4gYmFzZTY0LnVybHNhZmVfYjY0ZW5jb2RlKGNzdHJ1Y3QpCisKKyAgICBkZWYgbG9hZHMoc2VsZiwgYnN0cnVjdCk6CisgICAgICAgICIiIgorICAgICAgICBHaXZlbiBhIGBgYnN0cnVjdGBgIChhIGJ5dGVzdHJpbmcpLCB2ZXJpZnkgdGhlIHNpZ25hdHVyZSBhbmQgdGhlbgorICAgICAgICBkZXNlcmlhbGl6ZSBhbmQgcmV0dXJuIHRoZSBkZXNlcmlhbGl6ZWQgdmFsdWUuCisKKyAgICAgICAgQSBgYFZhbHVlRXJyb3JgYCB3aWxsIGJlIHJhaXNlZCBpZiB0aGUgc2lnbmF0dXJlIGZhaWxzIHRvIHZhbGlkYXRlLgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY3N0cnVjdCA9IGJhc2U2NC51cmxzYWZlX2I2NGRlY29kZShieXRlc18oYnN0cnVjdCkpCisgICAgICAgIGV4Y2VwdCAoYmluYXNjaWkuRXJyb3IsIFR5cGVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZGx5IGZvcm1lZCBiYXNlNjQgZGF0YTogJXMnICUgZSkKKworICAgICAgICByZXR1cm4gc2VsZi5zZXJpYWxpemVyLmxvYWRzKGNzdHJ1Y3QpCisKK2NsYXNzIFNpZ25lZFNlcmlhbGl6ZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBBIGhlbHBlciB0byBjcnlwdG9ncmFwaGljYWxseSBzaWduIGFyYml0cmFyeSBjb250ZW50IHVzaW5nIEhNQUMuCisKKyAgICBUaGUgc2VyaWFsaXplciBhY2NlcHRzIGFyYml0cmFyeSBmdW5jdGlvbnMgZm9yIHBlcmZvcm1pbmcgdGhlIGFjdHVhbAorICAgIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4KKworICAgIGBgc2VjcmV0YGAKKyAgICAgIEEgc3RyaW5nIHdoaWNoIGlzIHVzZWQgdG8gc2lnbiB0aGUgY29va2llLiBUaGUgc2VjcmV0IHNob3VsZCBiZSBhdAorICAgICAgbGVhc3QgYXMgbG9uZyBhcyB0aGUgYmxvY2sgc2l6ZSBvZiB0aGUgc2VsZWN0ZWQgaGFzaCBhbGdvcml0aG0uIEZvcgorICAgICAgYGBzaGE1MTJgYCB0aGlzIHdvdWxkIG1lYW4gYSAxMjggYml0ICg2NCBjaGFyYWN0ZXIpIHNlY3JldC4KKworICAgIGBgc2FsdGBgCisgICAgICBBIG5hbWVzcGFjZSB0byBhdm9pZCBjb2xsaXNpb25zIGJldHdlZW4gZGlmZmVyZW50IHVzZXMgb2YgYSBzaGFyZWQKKyAgICAgIHNlY3JldC4KKworICAgIGBgaGFzaGFsZ2BgCisgICAgICBUaGUgSE1BQyBkaWdlc3QgYWxnb3JpdGhtIHRvIHVzZSBmb3Igc2lnbmluZy4gVGhlIGFsZ29yaXRobSBtdXN0IGJlCisgICAgICBzdXBwb3J0ZWQgYnkgdGhlIDptb2Q6YGhhc2hsaWJgIGxpYnJhcnkuIERlZmF1bHQ6IGBgJ3NoYTUxMidgYC4KKworICAgIGBgc2VyaWFsaXplcmBgCisgICAgICBBbiBvYmplY3Qgd2l0aCB0d28gbWV0aG9kczogYGxvYWRzYGAgYW5kIGBgZHVtcHNgYC4gIFRoZSBgYGxvYWRzYGAgbWV0aG9kCisgICAgICBzaG91bGQgYWNjZXB0IGJ5dGVzIGFuZCByZXR1cm4gYSBQeXRob24gb2JqZWN0LiAgVGhlIGBgZHVtcHNgYCBtZXRob2QKKyAgICAgIHNob3VsZCBhY2NlcHQgYSBQeXRob24gb2JqZWN0IGFuZCByZXR1cm4gYnl0ZXMuICBBIGBgVmFsdWVFcnJvcmBgIHNob3VsZAorICAgICAgYmUgcmFpc2VkIGZvciBtYWxmb3JtZWQgaW5wdXRzLiAgRGVmYXVsdDogYGBOb25lYCwgd2hpY2ggd2lsbCB1c2UgYQorICAgICAgZGVyaXZhdGlvbiBvZiA6ZnVuYzpganNvbi5kdW1wc2AgYW5kIGBganNvbi5sb2Fkc2BgLgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgc2VjcmV0LAorICAgICAgICAgICAgICAgICBzYWx0LAorICAgICAgICAgICAgICAgICBoYXNoYWxnPSdzaGE1MTInLAorICAgICAgICAgICAgICAgICBzZXJpYWxpemVyPU5vbmUsCisgICAgICAgICAgICAgICAgICk6CisgICAgICAgIHNlbGYuc2FsdCA9IHNhbHQKKyAgICAgICAgc2VsZi5zZWNyZXQgPSBzZWNyZXQKKyAgICAgICAgc2VsZi5oYXNoYWxnID0gaGFzaGFsZworCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgYndjb21wYXQgd2l0aCB3ZWJvYiA8PSAxLjMuMSwgbGVhdmUgbGF0aW4tMSBhcyB0aGUgZGVmYXVsdAorICAgICAgICAgICAgc2VsZi5zYWx0ZWRfc2VjcmV0ID0gYnl0ZXNfKHNhbHQgb3IgJycpICsgYnl0ZXNfKHNlY3JldCkKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuc2FsdGVkX3NlY3JldCA9ICgKKyAgICAgICAgICAgICAgICBieXRlc18oc2FsdCBvciAnJywgJ3V0Zi04JykgKyBieXRlc18oc2VjcmV0LCAndXRmLTgnKSkKKworICAgICAgICBzZWxmLmRpZ2VzdG1vZCA9IGxhbWJkYSBzdHJpbmc9YicnOiBoYXNobGliLm5ldyhzZWxmLmhhc2hhbGcsIHN0cmluZykKKyAgICAgICAgc2VsZi5kaWdlc3Rfc2l6ZSA9IHNlbGYuZGlnZXN0bW9kKCkuZGlnZXN0X3NpemUKKworICAgICAgICBpZiBzZXJpYWxpemVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZXJpYWxpemVyID0gSlNPTlNlcmlhbGl6ZXIoKQorCisgICAgICAgIHNlbGYuc2VyaWFsaXplciA9IHNlcmlhbGl6ZXIKKworICAgIGRlZiBkdW1wcyhzZWxmLCBhcHBzdHJ1Y3QpOgorICAgICAgICAiIiIKKyAgICAgICAgR2l2ZW4gYW4gYGBhcHBzdHJ1Y3RgYCwgc2VyaWFsaXplIGFuZCBzaWduIHRoZSBkYXRhLgorCisgICAgICAgIFJldHVybnMgYSBieXRlc3RyaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgY3N0cnVjdCA9IHNlbGYuc2VyaWFsaXplci5kdW1wcyhhcHBzdHJ1Y3QpICMgd2lsbCBiZSBieXRlcworICAgICAgICBzaWcgPSBobWFjLm5ldyhzZWxmLnNhbHRlZF9zZWNyZXQsIGNzdHJ1Y3QsIHNlbGYuZGlnZXN0bW9kKS5kaWdlc3QoKQorICAgICAgICByZXR1cm4gYmFzZTY0LnVybHNhZmVfYjY0ZW5jb2RlKHNpZyArIGNzdHJ1Y3QpLnJzdHJpcChiJz0nKQorCisgICAgZGVmIGxvYWRzKHNlbGYsIGJzdHJ1Y3QpOgorICAgICAgICAiIiIKKyAgICAgICAgR2l2ZW4gYSBgYGJzdHJ1Y3RgYCAoYSBieXRlc3RyaW5nKSwgdmVyaWZ5IHRoZSBzaWduYXR1cmUgYW5kIHRoZW4KKyAgICAgICAgZGVzZXJpYWxpemUgYW5kIHJldHVybiB0aGUgZGVzZXJpYWxpemVkIHZhbHVlLgorCisgICAgICAgIEEgYGBWYWx1ZUVycm9yYGAgd2lsbCBiZSByYWlzZWQgaWYgdGhlIHNpZ25hdHVyZSBmYWlscyB0byB2YWxpZGF0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGI2NHBhZGRpbmcgPSBiJz0nICogKC1sZW4oYnN0cnVjdCkgJSA0KQorICAgICAgICAgICAgZnN0cnVjdCA9IGJhc2U2NC51cmxzYWZlX2I2NGRlY29kZShieXRlc18oYnN0cnVjdCkgKyBiNjRwYWRkaW5nKQorICAgICAgICBleGNlcHQgKGJpbmFzY2lpLkVycm9yLCBUeXBlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWRseSBmb3JtZWQgYmFzZTY0IGRhdGE6ICVzJyAlIGUpCisKKyAgICAgICAgY3N0cnVjdCA9IGZzdHJ1Y3Rbc2VsZi5kaWdlc3Rfc2l6ZTpdCisgICAgICAgIGV4cGVjdGVkX3NpZyA9IGZzdHJ1Y3RbOnNlbGYuZGlnZXN0X3NpemVdCisKKyAgICAgICAgc2lnID0gaG1hYy5uZXcoCisgICAgICAgICAgICBzZWxmLnNhbHRlZF9zZWNyZXQsIGJ5dGVzXyhjc3RydWN0KSwgc2VsZi5kaWdlc3Rtb2QpLmRpZ2VzdCgpCisKKyAgICAgICAgaWYgc3RyaW5nc19kaWZmZXIoc2lnLCBleHBlY3RlZF9zaWcpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBzaWduYXR1cmUnKQorCisgICAgICAgIHJldHVybiBzZWxmLnNlcmlhbGl6ZXIubG9hZHMoY3N0cnVjdCkKKworCitfZGVmYXVsdCA9IG9iamVjdCgpCisKK2NsYXNzIENvb2tpZVByb2ZpbGUob2JqZWN0KToKKyAgICAiIiIKKyAgICBBIGhlbHBlciBjbGFzcyB0aGF0IGhlbHBzIGJyaW5nIHNvbWUgc2FuaXR5IHRvIHRoZSBpbnNhbml0eSB0aGF0IGlzIGNvb2tpZQorICAgIGhhbmRsaW5nLgorCisgICAgVGhlIGhlbHBlciBpcyBjYXBhYmxlIG9mIGdlbmVyYXRpbmcgbXVsdGlwbGUgY29va2llcyBpZiBuZWNlc3NhcnkgdG8KKyAgICBzdXBwb3J0IHN1YmRvbWFpbnMgYW5kIHBhcmVudCBkb21haW5zLgorCisgICAgYGBjb29raWVfbmFtZWBgCisgICAgICBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgZm9yIHNlc3Npb25pbmcuIERlZmF1bHQ6IGBgJ3Nlc3Npb24nYGAuCisKKyAgICBgYG1heF9hZ2VgYAorICAgICAgVGhlIG1heGltdW0gYWdlIG9mIHRoZSBjb29raWUgdXNlZCBmb3Igc2Vzc2lvbmluZyAoaW4gc2Vjb25kcykuCisgICAgICBEZWZhdWx0OiBgYE5vbmVgYCAoYnJvd3NlciBzY29wZSkuCisKKyAgICBgYHNlY3VyZWBgCisgICAgICBUaGUgJ3NlY3VyZScgZmxhZyBvZiB0aGUgc2Vzc2lvbiBjb29raWUuIERlZmF1bHQ6IGBgRmFsc2VgYC4KKworICAgIGBgaHR0cG9ubHlgYAorICAgICAgSGlkZSB0aGUgY29va2llIGZyb20gSmF2YXNjcmlwdCBieSBzZXR0aW5nIHRoZSAnSHR0cE9ubHknIGZsYWcgb2YgdGhlCisgICAgICBzZXNzaW9uIGNvb2tpZS4gRGVmYXVsdDogYGBGYWxzZWBgLgorCisgICAgYGBwYXRoYGAKKyAgICAgIFRoZSBwYXRoIHVzZWQgZm9yIHRoZSBzZXNzaW9uIGNvb2tpZS4gRGVmYXVsdDogYGAnLydgYC4KKworICAgIGBgZG9tYWluc2BgCisgICAgICBUaGUgZG9tYWluKHMpIHVzZWQgZm9yIHRoZSBzZXNzaW9uIGNvb2tpZS4gRGVmYXVsdDogYGBOb25lYGAgKG5vIGRvbWFpbikuCisgICAgICBDYW4gYmUgcGFzc2VkIGFuIGl0ZXJhYmxlIGNvbnRhaW5pbmcgbXVsdGlwbGUgZG9tYWlucywgdGhpcyB3aWxsIHNldAorICAgICAgbXVsdGlwbGUgY29va2llcyBvbmUgZm9yIGVhY2ggZG9tYWluLgorCisgICAgYGBzZXJpYWxpemVyYGAKKyAgICAgIEFuIG9iamVjdCB3aXRoIHR3byBtZXRob2RzOiBgYGxvYWRzYGAgYW5kIGBgZHVtcHNgYC4gIFRoZSBgYGxvYWRzYGAgbWV0aG9kCisgICAgICBzaG91bGQgYWNjZXB0IGEgYnl0ZXN0cmluZyBhbmQgcmV0dXJuIGEgUHl0aG9uIG9iamVjdC4gIFRoZSBgYGR1bXBzYGAKKyAgICAgIG1ldGhvZCBzaG91bGQgYWNjZXB0IGEgUHl0aG9uIG9iamVjdCBhbmQgcmV0dXJuIGJ5dGVzLiAgQSBgYFZhbHVlRXJyb3JgYAorICAgICAgc2hvdWxkIGJlIHJhaXNlZCBmb3IgbWFsZm9ybWVkIGlucHV0cy4gIERlZmF1bHQ6IGBgTm9uZWBgLCB3aGljaCB3aWxsIHVzZQorICAgICAgYSBkZXJpdmF0aW9uIG9mIDpmdW5jOmBqc29uLmR1bXBzYCBhbmQgOmZ1bmM6YGpzb24ubG9hZHNgLgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgY29va2llX25hbWUsCisgICAgICAgICAgICAgICAgIHNlY3VyZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgbWF4X2FnZT1Ob25lLAorICAgICAgICAgICAgICAgICBodHRwb25seT1Ob25lLAorICAgICAgICAgICAgICAgICBwYXRoPScvJywKKyAgICAgICAgICAgICAgICAgZG9tYWlucz1Ob25lLAorICAgICAgICAgICAgICAgICBzZXJpYWxpemVyPU5vbmUKKyAgICAgICAgICAgICAgICAgKToKKyAgICAgICAgc2VsZi5jb29raWVfbmFtZSA9IGNvb2tpZV9uYW1lCisgICAgICAgIHNlbGYuc2VjdXJlID0gc2VjdXJlCisgICAgICAgIHNlbGYubWF4X2FnZSA9IG1heF9hZ2UKKyAgICAgICAgc2VsZi5odHRwb25seSA9IGh0dHBvbmx5CisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi5kb21haW5zID0gZG9tYWlucworCisgICAgICAgIGlmIHNlcmlhbGl6ZXIgaXMgTm9uZToKKyAgICAgICAgICAgIHNlcmlhbGl6ZXIgPSBCYXNlNjRTZXJpYWxpemVyKCkKKworICAgICAgICBzZWxmLnNlcmlhbGl6ZXIgPSBzZXJpYWxpemVyCisgICAgICAgIHNlbGYucmVxdWVzdCA9IE5vbmUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiIEJpbmQgYSByZXF1ZXN0IHRvIGEgY29weSBvZiB0aGlzIGluc3RhbmNlIGFuZCByZXR1cm4gaXQiIiIKKworICAgICAgICByZXR1cm4gc2VsZi5iaW5kKHJlcXVlc3QpCisKKyAgICBkZWYgYmluZChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiIEJpbmQgYSByZXF1ZXN0IHRvIGEgY29weSBvZiB0aGlzIGluc3RhbmNlIGFuZCByZXR1cm4gaXQiIiIKKworICAgICAgICBzZWxmaXNoID0gQ29va2llUHJvZmlsZSgKKyAgICAgICAgICAgIHNlbGYuY29va2llX25hbWUsCisgICAgICAgICAgICBzZWxmLnNlY3VyZSwKKyAgICAgICAgICAgIHNlbGYubWF4X2FnZSwKKyAgICAgICAgICAgIHNlbGYuaHR0cG9ubHksCisgICAgICAgICAgICBzZWxmLnBhdGgsCisgICAgICAgICAgICBzZWxmLmRvbWFpbnMsCisgICAgICAgICAgICBzZWxmLnNlcmlhbGl6ZXIsCisgICAgICAgICAgICApCisgICAgICAgIHNlbGZpc2gucmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgcmV0dXJuIHNlbGZpc2gKKworICAgIGRlZiBnZXRfdmFsdWUoc2VsZik6CisgICAgICAgICIiIiBMb29rcyBmb3IgYSBjb29raWUgYnkgbmFtZSBpbiB0aGUgY3VycmVudGx5IGJvdW5kIHJlcXVlc3QsIGFuZAorICAgICAgICByZXR1cm5zIGl0cyB2YWx1ZS4gIElmIHRoZSBjb29raWUgcHJvZmlsZSBpcyBub3QgYm91bmQgdG8gYSByZXF1ZXN0LAorICAgICAgICB0aGlzIG1ldGhvZCB3aWxsIHJhaXNlIGEgOmV4YzpgVmFsdWVFcnJvcmAuCisKKyAgICAgICAgTG9va3MgZm9yIHRoZSBjb29raWUgaW4gdGhlIGNvb2tpZXMgamFyLCBhbmQgaWYgaXQgY2FuIGZpbmQgaXQgaXQgd2lsbAorICAgICAgICBhdHRlbXB0IHRvIGRlc2VyaWFsaXplIGl0LiAgUmV0dXJucyBgYE5vbmVgYCBpZiB0aGVyZSBpcyBubyBjb29raWUgb3IKKyAgICAgICAgaWYgdGhlIHZhbHVlIGluIHRoZSBjb29raWUgY2Fubm90IGJlIHN1Y2Nlc3NmdWxseSBkZXNlcmlhbGl6ZWQuCisgICAgICAgICIiIgorCisgICAgICAgIGlmIG5vdCBzZWxmLnJlcXVlc3Q6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyByZXF1ZXN0IGJvdW5kIHRvIGNvb2tpZSBwcm9maWxlJykKKworICAgICAgICBjb29raWUgPSBzZWxmLnJlcXVlc3QuY29va2llcy5nZXQoc2VsZi5jb29raWVfbmFtZSkKKworICAgICAgICBpZiBjb29raWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2VyaWFsaXplci5sb2FkcyhieXRlc18oY29va2llKSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgc2V0X2Nvb2tpZXMoc2VsZiwgcmVzcG9uc2UsIHZhbHVlLCBkb21haW5zPV9kZWZhdWx0LCBtYXhfYWdlPV9kZWZhdWx0LAorICAgICAgICAgICAgICAgICAgICBwYXRoPV9kZWZhdWx0LCBzZWN1cmU9X2RlZmF1bHQsIGh0dHBvbmx5PV9kZWZhdWx0KToKKyAgICAgICAgIiIiIFNldCB0aGUgY29va2llcyBvbiBhIHJlc3BvbnNlLiIiIgorICAgICAgICBjb29raWVzID0gc2VsZi5nZXRfaGVhZGVycygKKyAgICAgICAgICAgIHZhbHVlLAorICAgICAgICAgICAgZG9tYWlucz1kb21haW5zLAorICAgICAgICAgICAgbWF4X2FnZT1tYXhfYWdlLAorICAgICAgICAgICAgcGF0aD1wYXRoLAorICAgICAgICAgICAgc2VjdXJlPXNlY3VyZSwKKyAgICAgICAgICAgIGh0dHBvbmx5PWh0dHBvbmx5CisgICAgICAgICAgICApCisgICAgICAgIHJlc3BvbnNlLmhlYWRlcmxpc3QuZXh0ZW5kKGNvb2tpZXMpCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIGdldF9oZWFkZXJzKHNlbGYsIHZhbHVlLCBkb21haW5zPV9kZWZhdWx0LCBtYXhfYWdlPV9kZWZhdWx0LAorICAgICAgICAgICAgICAgICAgICBwYXRoPV9kZWZhdWx0LCBzZWN1cmU9X2RlZmF1bHQsIGh0dHBvbmx5PV9kZWZhdWx0KToKKyAgICAgICAgIiIiIFJldHJpZXZlIHJhdyBoZWFkZXJzIGZvciBzZXR0aW5nIGNvb2tpZXMuCisKKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgaGVhZGVycyB0aGF0IHNob3VsZCBiZSBzZXQgZm9yIHRoZSBjb29raWVzIHRvCisgICAgICAgIGJlIGNvcnJlY3RseSB0cmFja2VkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgIG1heF9hZ2UgPSAwCisgICAgICAgICAgICBic3RydWN0ID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnN0cnVjdCA9IHNlbGYuc2VyaWFsaXplci5kdW1wcyh2YWx1ZSkKKworICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X2Nvb2tpZXMoCisgICAgICAgICAgICBic3RydWN0LAorICAgICAgICAgICAgZG9tYWlucz1kb21haW5zLAorICAgICAgICAgICAgbWF4X2FnZT1tYXhfYWdlLAorICAgICAgICAgICAgcGF0aD1wYXRoLAorICAgICAgICAgICAgc2VjdXJlPXNlY3VyZSwKKyAgICAgICAgICAgIGh0dHBvbmx5PWh0dHBvbmx5CisgICAgICAgICAgICApCisKKyAgICBkZWYgX2dldF9jb29raWVzKHNlbGYsIHZhbHVlLCBkb21haW5zLCBtYXhfYWdlLCBwYXRoLCBzZWN1cmUsIGh0dHBvbmx5KToKKyAgICAgICAgIiIiSW50ZXJuYWwgZnVuY3Rpb24KKworICAgICAgICBUaGlzIHJldHVybnMgYSBsaXN0IG9mIGNvb2tpZXMgdGhhdCBhcmUgdmFsaWQgSFRUUCBIZWFkZXJzLgorCisgICAgICAgIDplbnZpcm9uOiBUaGUgcmVxdWVzdCBlbnZpcm9ubWVudAorICAgICAgICA6dmFsdWU6IFRoZSB2YWx1ZSB0byBzdG9yZSBpbiB0aGUgY29va2llCisgICAgICAgIDpkb21haW5zOiBUaGUgZG9tYWlucywgb3ZlcnJpZGVzIGFueSBzZXQgaW4gdGhlIENvb2tpZVByb2ZpbGUKKyAgICAgICAgOm1heF9hZ2U6IFRoZSBtYXhfYWdlLCBvdmVycmlkZXMgYW55IHNldCBpbiB0aGUgQ29va2llUHJvZmlsZQorICAgICAgICA6cGF0aDogVGhlIHBhdGgsIG92ZXJyaWRlcyBhbnkgc2V0IGluIHRoZSBDb29raWVQcm9maWxlCisgICAgICAgIDpzZWN1cmU6IFNldCB0aGlzIGNvb2tpZSB0byBzZWN1cmUsIG92ZXJyaWRlcyBhbnkgc2V0IGluIENvb2tpZVByb2ZpbGUKKyAgICAgICAgOmh0dHBvbmx5OiBTZXQgdGhpcyBjb29raWUgdG8gSHR0cE9ubHksIG92ZXJyaWRlcyBhbnkgc2V0IGluIENvb2tpZVByb2ZpbGUKKworICAgICAgICAiIiIKKworICAgICAgICAjIElmIHRoZSB1c2VyIGRvZXNuJ3QgcHJvdmlkZSB2YWx1ZXMsIGdyYWIgdGhlIGRlZmF1bHRzCisgICAgICAgIGlmIGRvbWFpbnMgaXMgX2RlZmF1bHQ6CisgICAgICAgICAgICBkb21haW5zID0gc2VsZi5kb21haW5zCisKKyAgICAgICAgaWYgbWF4X2FnZSBpcyBfZGVmYXVsdDoKKyAgICAgICAgICAgIG1heF9hZ2UgPSBzZWxmLm1heF9hZ2UKKworICAgICAgICBpZiBwYXRoIGlzIF9kZWZhdWx0OgorICAgICAgICAgICAgcGF0aCA9IHNlbGYucGF0aAorCisgICAgICAgIGlmIHNlY3VyZSBpcyBfZGVmYXVsdDoKKyAgICAgICAgICAgIHNlY3VyZSA9IHNlbGYuc2VjdXJlCisKKyAgICAgICAgaWYgaHR0cG9ubHkgaXMgX2RlZmF1bHQ6CisgICAgICAgICAgICBodHRwb25seSA9IHNlbGYuaHR0cG9ubHkKKworICAgICAgICAjIExlbmd0aCBzZWxlY3RlZCBiYXNlZCB1cG9uIGh0dHA6Ly9icm93c2VyY29va2llbGltaXRzLng2NC5tZQorICAgICAgICBpZiB2YWx1ZSBpcyBub3QgTm9uZSBhbmQgbGVuKHZhbHVlKSA+IDQwOTM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICdDb29raWUgdmFsdWUgaXMgdG9vIGxvbmcgdG8gc3RvcmUgKCVzIGJ5dGVzKScgJQorICAgICAgICAgICAgICAgIGxlbih2YWx1ZSkKKyAgICAgICAgICAgICkKKworICAgICAgICBjb29raWVzID0gW10KKworICAgICAgICBpZiBub3QgZG9tYWluczoKKyAgICAgICAgICAgIGNvb2tpZXZhbHVlID0gbWFrZV9jb29raWUoCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY29va2llX25hbWUsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICBwYXRoPXBhdGgsCisgICAgICAgICAgICAgICAgICAgIG1heF9hZ2U9bWF4X2FnZSwKKyAgICAgICAgICAgICAgICAgICAgaHR0cG9ubHk9aHR0cG9ubHksCisgICAgICAgICAgICAgICAgICAgIHNlY3VyZT1zZWN1cmUKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGNvb2tpZXMuYXBwZW5kKCgnU2V0LUNvb2tpZScsIGNvb2tpZXZhbHVlKSkKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGRvbWFpbiBpbiBkb21haW5zOgorICAgICAgICAgICAgICAgIGNvb2tpZXZhbHVlID0gbWFrZV9jb29raWUoCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY29va2llX25hbWUsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICBwYXRoPXBhdGgsCisgICAgICAgICAgICAgICAgICAgIGRvbWFpbj1kb21haW4sCisgICAgICAgICAgICAgICAgICAgIG1heF9hZ2U9bWF4X2FnZSwKKyAgICAgICAgICAgICAgICAgICAgaHR0cG9ubHk9aHR0cG9ubHksCisgICAgICAgICAgICAgICAgICAgIHNlY3VyZT1zZWN1cmUsCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGNvb2tpZXMuYXBwZW5kKCgnU2V0LUNvb2tpZScsIGNvb2tpZXZhbHVlKSkKKworICAgICAgICByZXR1cm4gY29va2llcworCisKK2NsYXNzIFNpZ25lZENvb2tpZVByb2ZpbGUoQ29va2llUHJvZmlsZSk6CisgICAgIiIiCisgICAgQSBoZWxwZXIgZm9yIGdlbmVyYXRpbmcgY29va2llcyB0aGF0IGFyZSBzaWduZWQgdG8gcHJldmVudCB0YW1wZXJpbmcuCisKKyAgICBCeSBkZWZhdWx0IHRoaXMgd2lsbCBjcmVhdGUgYSBzaW5nbGUgY29va2llLCBnaXZlbiBhIHZhbHVlIGl0IHdpbGwKKyAgICBzZXJpYWxpemUgaXQsIHRoZW4gdXNlIEhNQUMgdG8gY3J5cHRvZ3JhcGhpY2FsbHkgc2lnbiB0aGUgZGF0YS4gRmluYWxseQorICAgIHRoZSByZXN1bHQgaXMgYmFzZTY0LWVuY29kZWQgZm9yIHRyYW5zcG9ydC4gVGhpcyB3YXkgYSByZW1vdGUgdXNlciBjYW4KKyAgICBub3QgdGFtcGVyIHdpdGggdGhlIHZhbHVlIHdpdGhvdXQgdW5jb3ZlcmluZyB0aGUgc2VjcmV0L3NhbHQgdXNlZC4KKworICAgIGBgc2VjcmV0YGAKKyAgICAgIEEgc3RyaW5nIHdoaWNoIGlzIHVzZWQgdG8gc2lnbiB0aGUgY29va2llLiBUaGUgc2VjcmV0IHNob3VsZCBiZSBhdAorICAgICAgbGVhc3QgYXMgbG9uZyBhcyB0aGUgYmxvY2sgc2l6ZSBvZiB0aGUgc2VsZWN0ZWQgaGFzaCBhbGdvcml0aG0uIEZvcgorICAgICAgYGBzaGE1MTJgYCB0aGlzIHdvdWxkIG1lYW4gYSAxMjggYml0ICg2NCBjaGFyYWN0ZXIpIHNlY3JldC4KKworICAgIGBgc2FsdGBgCisgICAgICBBIG5hbWVzcGFjZSB0byBhdm9pZCBjb2xsaXNpb25zIGJldHdlZW4gZGlmZmVyZW50IHVzZXMgb2YgYSBzaGFyZWQKKyAgICAgIHNlY3JldC4KKworICAgIGBgaGFzaGFsZ2BgCisgICAgICBUaGUgSE1BQyBkaWdlc3QgYWxnb3JpdGhtIHRvIHVzZSBmb3Igc2lnbmluZy4gVGhlIGFsZ29yaXRobSBtdXN0IGJlCisgICAgICBzdXBwb3J0ZWQgYnkgdGhlIDptb2Q6YGhhc2hsaWJgIGxpYnJhcnkuIERlZmF1bHQ6IGBgJ3NoYTUxMidgYC4KKworICAgIGBgY29va2llX25hbWVgYAorICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB1c2VkIGZvciBzZXNzaW9uaW5nLiBEZWZhdWx0OiBgYCdzZXNzaW9uJ2BgLgorCisgICAgYGBtYXhfYWdlYGAKKyAgICAgIFRoZSBtYXhpbXVtIGFnZSBvZiB0aGUgY29va2llIHVzZWQgZm9yIHNlc3Npb25pbmcgKGluIHNlY29uZHMpLgorICAgICAgRGVmYXVsdDogYGBOb25lYGAgKGJyb3dzZXIgc2NvcGUpLgorCisgICAgYGBzZWN1cmVgYAorICAgICAgVGhlICdzZWN1cmUnIGZsYWcgb2YgdGhlIHNlc3Npb24gY29va2llLiBEZWZhdWx0OiBgYEZhbHNlYGAuCisKKyAgICBgYGh0dHBvbmx5YGAKKyAgICAgIEhpZGUgdGhlIGNvb2tpZSBmcm9tIEphdmFzY3JpcHQgYnkgc2V0dGluZyB0aGUgJ0h0dHBPbmx5JyBmbGFnIG9mIHRoZQorICAgICAgc2Vzc2lvbiBjb29raWUuIERlZmF1bHQ6IGBgRmFsc2VgYC4KKworICAgIGBgcGF0aGBgCisgICAgICBUaGUgcGF0aCB1c2VkIGZvciB0aGUgc2Vzc2lvbiBjb29raWUuIERlZmF1bHQ6IGBgJy8nYGAuCisKKyAgICBgYGRvbWFpbnNgYAorICAgICAgVGhlIGRvbWFpbihzKSB1c2VkIGZvciB0aGUgc2Vzc2lvbiBjb29raWUuIERlZmF1bHQ6IGBgTm9uZWBgIChubyBkb21haW4pLgorICAgICAgQ2FuIGJlIHBhc3NlZCBhbiBpdGVyYWJsZSBjb250YWluaW5nIG11bHRpcGxlIGRvbWFpbnMsIHRoaXMgd2lsbCBzZXQKKyAgICAgIG11bHRpcGxlIGNvb2tpZXMgb25lIGZvciBlYWNoIGRvbWFpbi4KKworICAgIGBgc2VyaWFsaXplcmBgCisgICAgICBBbiBvYmplY3Qgd2l0aCB0d28gbWV0aG9kczogYGxvYWRzYGAgYW5kIGBgZHVtcHNgYC4gIFRoZSBgYGxvYWRzYGAgbWV0aG9kCisgICAgICBzaG91bGQgYWNjZXB0IGJ5dGVzIGFuZCByZXR1cm4gYSBQeXRob24gb2JqZWN0LiAgVGhlIGBgZHVtcHNgYCBtZXRob2QKKyAgICAgIHNob3VsZCBhY2NlcHQgYSBQeXRob24gb2JqZWN0IGFuZCByZXR1cm4gYnl0ZXMuICBBIGBgVmFsdWVFcnJvcmBgIHNob3VsZAorICAgICAgYmUgcmFpc2VkIGZvciBtYWxmb3JtZWQgaW5wdXRzLiAgRGVmYXVsdDogYGBOb25lYCwgd2hpY2ggd2lsbCB1c2UgYQorICAgICAgZGVyaXZhdGlvbiBvZiA6ZnVuYzpganNvbi5kdW1wc2AgYW5kIGBganNvbi5sb2Fkc2BgLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICBzZWNyZXQsCisgICAgICAgICAgICAgICAgIHNhbHQsCisgICAgICAgICAgICAgICAgIGNvb2tpZV9uYW1lLAorICAgICAgICAgICAgICAgICBzZWN1cmU9RmFsc2UsCisgICAgICAgICAgICAgICAgIG1heF9hZ2U9Tm9uZSwKKyAgICAgICAgICAgICAgICAgaHR0cG9ubHk9RmFsc2UsCisgICAgICAgICAgICAgICAgIHBhdGg9Ii8iLAorICAgICAgICAgICAgICAgICBkb21haW5zPU5vbmUsCisgICAgICAgICAgICAgICAgIGhhc2hhbGc9J3NoYTUxMicsCisgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgKToKKyAgICAgICAgc2VsZi5zZWNyZXQgPSBzZWNyZXQKKyAgICAgICAgc2VsZi5zYWx0ID0gc2FsdAorICAgICAgICBzZWxmLmhhc2hhbGcgPSBoYXNoYWxnCisgICAgICAgIHNlbGYub3JpZ2luYWxfc2VyaWFsaXplciA9IHNlcmlhbGl6ZXIKKworICAgICAgICBzaWduZWRfc2VyaWFsaXplciA9IFNpZ25lZFNlcmlhbGl6ZXIoCisgICAgICAgICAgICBzZWNyZXQsCisgICAgICAgICAgICBzYWx0LAorICAgICAgICAgICAgaGFzaGFsZywKKyAgICAgICAgICAgIHNlcmlhbGl6ZXI9c2VsZi5vcmlnaW5hbF9zZXJpYWxpemVyLAorICAgICAgICAgICAgKQorICAgICAgICBDb29raWVQcm9maWxlLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwKKyAgICAgICAgICAgIGNvb2tpZV9uYW1lLAorICAgICAgICAgICAgc2VjdXJlPXNlY3VyZSwKKyAgICAgICAgICAgIG1heF9hZ2U9bWF4X2FnZSwKKyAgICAgICAgICAgIGh0dHBvbmx5PWh0dHBvbmx5LAorICAgICAgICAgICAgcGF0aD1wYXRoLAorICAgICAgICAgICAgZG9tYWlucz1kb21haW5zLAorICAgICAgICAgICAgc2VyaWFsaXplcj1zaWduZWRfc2VyaWFsaXplciwKKyAgICAgICAgICAgICkKKworICAgIGRlZiBiaW5kKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiIgQmluZCBhIHJlcXVlc3QgdG8gYSBjb3B5IG9mIHRoaXMgaW5zdGFuY2UgYW5kIHJldHVybiBpdCIiIgorCisgICAgICAgIHNlbGZpc2ggPSBTaWduZWRDb29raWVQcm9maWxlKAorICAgICAgICAgICAgc2VsZi5zZWNyZXQsCisgICAgICAgICAgICBzZWxmLnNhbHQsCisgICAgICAgICAgICBzZWxmLmNvb2tpZV9uYW1lLAorICAgICAgICAgICAgc2VsZi5zZWN1cmUsCisgICAgICAgICAgICBzZWxmLm1heF9hZ2UsCisgICAgICAgICAgICBzZWxmLmh0dHBvbmx5LAorICAgICAgICAgICAgc2VsZi5wYXRoLAorICAgICAgICAgICAgc2VsZi5kb21haW5zLAorICAgICAgICAgICAgc2VsZi5oYXNoYWxnLAorICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9zZXJpYWxpemVyLAorICAgICAgICAgICAgKQorICAgICAgICBzZWxmaXNoLnJlcXVlc3QgPSByZXF1ZXN0CisgICAgICAgIHJldHVybiBzZWxmaXNoCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9kYXRldGltZV91dGlscy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9kYXRldGltZV91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTc1YzhkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2RhdGV0aW1lX3V0aWxzLnB5CkBAIC0wLDAgKzEsMTE2IEBACitpbXBvcnQgY2FsZW5kYXIKKworZnJvbSBkYXRldGltZSBpbXBvcnQgKAorICAgIGRhdGUsCisgICAgZGF0ZXRpbWUsCisgICAgdGltZWRlbHRhLAorICAgIHR6aW5mbywKKyAgICApCisKK2Zyb20gZW1haWwudXRpbHMgaW1wb3J0ICgKKyAgICBmb3JtYXRkYXRlLAorICAgIG1rdGltZV90eiwKKyAgICBwYXJzZWRhdGVfdHosCisgICAgKQorCitpbXBvcnQgdGltZQorCitmcm9tIHdlYm9iLmNvbXBhdCBpbXBvcnQgKAorICAgIGludGVnZXJfdHlwZXMsCisgICAgbG9uZywKKyAgICBuYXRpdmVfLAorICAgIHRleHRfdHlwZSwKKyAgICApCisKK19fYWxsX18gPSBbCisgICAgJ1VUQycsICd0aW1lZGVsdGFfdG9fc2Vjb25kcycsCisgICAgJ3llYXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywKKyAgICAncGFyc2VfZGF0ZScsICdzZXJpYWxpemVfZGF0ZScsCisgICAgJ3BhcnNlX2RhdGVfZGVsdGEnLCAnc2VyaWFsaXplX2RhdGVfZGVsdGEnLAorXQorCitfbm93ID0gZGF0ZXRpbWUubm93ICMgaG9vayBwb2ludCBmb3IgdW5pdCB0ZXN0cworCitjbGFzcyBfVVRDKHR6aW5mbyk6CisgICAgZGVmIGRzdChzZWxmLCBkdCk6CisgICAgICAgIHJldHVybiB0aW1lZGVsdGEoMCkKKyAgICBkZWYgdXRjb2Zmc2V0KHNlbGYsIGR0KToKKyAgICAgICAgcmV0dXJuIHRpbWVkZWx0YSgwKQorICAgIGRlZiB0em5hbWUoc2VsZiwgZHQpOgorICAgICAgICByZXR1cm4gJ1VUQycKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnVVRDJworCitVVEMgPSBfVVRDKCkKKworCisKK2RlZiB0aW1lZGVsdGFfdG9fc2Vjb25kcyh0ZCk6CisgICAgIiIiCisgICAgQ29udmVydHMgYSB0aW1lZGVsdGEgaW5zdGFuY2UgdG8gc2Vjb25kcy4KKyAgICAiIiIKKyAgICByZXR1cm4gdGQuc2Vjb25kcyArICh0ZC5kYXlzKjI0KjYwKjYwKQorCitkYXkgPSB0aW1lZGVsdGEoZGF5cz0xKQord2VlayA9IHRpbWVkZWx0YSh3ZWVrcz0xKQoraG91ciA9IHRpbWVkZWx0YShob3Vycz0xKQorbWludXRlID0gdGltZWRlbHRhKG1pbnV0ZXM9MSkKK3NlY29uZCA9IHRpbWVkZWx0YShzZWNvbmRzPTEpCisjIEVzdGltYXRlLCBJIGtub3c7IGdvb2QgZW5vdWdoIGZvciBleHBpcmF0aW9ucworbW9udGggPSB0aW1lZGVsdGEoZGF5cz0zMCkKK3llYXIgPSB0aW1lZGVsdGEoZGF5cz0zNjUpCisKKworZGVmIHBhcnNlX2RhdGUodmFsdWUpOgorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICB0cnk6CisgICAgICAgIHZhbHVlID0gbmF0aXZlXyh2YWx1ZSkKKyAgICBleGNlcHQ6CisgICAgICAgIHJldHVybiBOb25lCisgICAgdCA9IHBhcnNlZGF0ZV90eih2YWx1ZSkKKyAgICBpZiB0IGlzIE5vbmU6CisgICAgICAgICMgQ291bGQgbm90IHBhcnNlCisgICAgICAgIHJldHVybiBOb25lCisgICAgaWYgdFstMV0gaXMgTm9uZToKKyAgICAgICAgIyBObyB0aW1lem9uZSBnaXZlbi4gIE5vbmUgd291bGQgbWVhbiBsb2NhbCB0aW1lLCBidXQgd2UnbGwgZm9yY2UgVVRDCisgICAgICAgIHQgPSB0Wzo5XSArICgwLCkKKyAgICB0ID0gbWt0aW1lX3R6KHQpCisgICAgcmV0dXJuIGRhdGV0aW1lLmZyb210aW1lc3RhbXAodCwgVVRDKQorCitkZWYgc2VyaWFsaXplX2RhdGUoZHQpOgorICAgIGlmIGlzaW5zdGFuY2UoZHQsIChieXRlcywgdGV4dF90eXBlKSk6CisgICAgICAgIHJldHVybiBuYXRpdmVfKGR0KQorICAgIGlmIGlzaW5zdGFuY2UoZHQsIHRpbWVkZWx0YSk6CisgICAgICAgIGR0ID0gX25vdygpICsgZHQKKyAgICBpZiBpc2luc3RhbmNlKGR0LCAoZGF0ZXRpbWUsIGRhdGUpKToKKyAgICAgICAgZHQgPSBkdC50aW1ldHVwbGUoKQorICAgIGlmIGlzaW5zdGFuY2UoZHQsICh0dXBsZSwgdGltZS5zdHJ1Y3RfdGltZSkpOgorICAgICAgICBkdCA9IGNhbGVuZGFyLnRpbWVnbShkdCkKKyAgICBpZiBub3QgKGlzaW5zdGFuY2UoZHQsIGZsb2F0KSBvciBpc2luc3RhbmNlKGR0LCBpbnRlZ2VyX3R5cGVzKSk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAiWW91IG11c3QgcGFzcyBpbiBhIGRhdGV0aW1lLCBkYXRlLCB0aW1lIHR1cGxlLCBvciBpbnRlZ2VyIG9iamVjdCwgIgorICAgICAgICAgICAgIm5vdCAlciIgJSBkdCkKKyAgICByZXR1cm4gZm9ybWF0ZGF0ZShkdCwgdXNlZ210PVRydWUpCisKKworCitkZWYgcGFyc2VfZGF0ZV9kZWx0YSh2YWx1ZSk6CisgICAgIiIiCisgICAgbGlrZSBwYXJzZV9kYXRlLCBidXQgYWxzbyBoYW5kbGUgZGVsdGEgc2Vjb25kcworICAgICIiIgorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICB0cnk6CisgICAgICAgIHZhbHVlID0gaW50KHZhbHVlKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICByZXR1cm4gcGFyc2VfZGF0ZSh2YWx1ZSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gX25vdygpICsgdGltZWRlbHRhKHNlY29uZHM9dmFsdWUpCisKKworZGVmIHNlcmlhbGl6ZV9kYXRlX2RlbHRhKHZhbHVlKToKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCAoZmxvYXQsIGludCwgbG9uZykpOgorICAgICAgICByZXR1cm4gc3RyKGludCh2YWx1ZSkpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZV9kYXRlKHZhbHVlKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2RlYy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9kZWMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM3OWI2NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9kZWMucHkKQEAgLTAsMCArMSwyOTkgQEAKKyIiIgorRGVjb3JhdG9ycyB0byB3cmFwIGZ1bmN0aW9ucyB0byBtYWtlIHRoZW0gV1NHSSBhcHBsaWNhdGlvbnMuCisKK1RoZSBtYWluIGRlY29yYXRvciA6Y2xhc3M6YHdzZ2lmeWAgdHVybnMgYSBmdW5jdGlvbiBpbnRvIGEgV1NHSQorYXBwbGljYXRpb24gKHdoaWxlIGFsc28gYWxsb3dpbmcgbm9ybWFsIGNhbGxpbmcgb2YgdGhlIG1ldGhvZCB3aXRoIGFuCitpbnN0YW50aWF0ZWQgcmVxdWVzdCkuCisiIiIKKworZnJvbSB3ZWJvYi5jb21wYXQgaW1wb3J0ICgKKyAgICBieXRlc18sCisgICAgdGV4dF90eXBlLAorICAgICkKKworZnJvbSB3ZWJvYi5yZXF1ZXN0IGltcG9ydCBSZXF1ZXN0Citmcm9tIHdlYm9iLmV4YyBpbXBvcnQgSFRUUEV4Y2VwdGlvbgorCitfX2FsbF9fID0gWyd3c2dpZnknXQorCitjbGFzcyB3c2dpZnkob2JqZWN0KToKKyAgICAiIiJUdXJucyBhIHJlcXVlc3QtdGFraW5nLCByZXNwb25zZS1yZXR1cm5pbmcgZnVuY3Rpb24gaW50byBhIFdTR0kKKyAgICBhcHAKKworICAgIFlvdSBjYW4gdXNlIHRoaXMgbGlrZTo6CisKKyAgICAgICAgQHdzZ2lmeQorICAgICAgICBkZWYgbXlmdW5jKHJlcSk6CisgICAgICAgICAgICByZXR1cm4gd2Vib2IuUmVzcG9uc2UoJ2hleSB0aGVyZScpCisKKyAgICBXaXRoIHRoYXQgYGBteWZ1bmNgYCB3aWxsIGJlIGEgV1NHSSBhcHBsaWNhdGlvbiwgY2FsbGFibGUgbGlrZQorICAgIGBgYXBwX2l0ZXIgPSBteWZ1bmMoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpYGAuICBZb3UgY2FuIGFsc28gY2FsbAorICAgIGl0IGxpa2Ugbm9ybWFsLCBlLmcuLCBgYHJlc3AgPSBteWZ1bmMocmVxKWBgLiAgKFlvdSBjYW4gYWxzbyB3cmFwCisgICAgbWV0aG9kcywgbGlrZSBgYGRlZiBteWZ1bmMoc2VsZiwgcmVxKWBgLikKKworICAgIElmIHlvdSByYWlzZSBleGNlcHRpb25zIGZyb20gOm1vZDpgd2Vib2IuZXhjYCB0aGV5IHdpbGwgYmUgdHVybmVkCisgICAgaW50byBXU0dJIHJlc3BvbnNlcy4KKworICAgIFRoZXJlIGFyZSBhbHNvIHNldmVyYWwgcGFyYW1ldGVycyB5b3UgY2FuIHVzZSB0byBjdXN0b21pemUgdGhlCisgICAgZGVjb3JhdG9yLiAgTW9zdCBub3RhYmx5LCB5b3UgY2FuIHVzZSBhIDpjbGFzczpgd2Vib2IuUmVxdWVzdGAKKyAgICBzdWJjbGFzcywgbGlrZTo6CisKKyAgICAgICAgY2xhc3MgTXlSZXF1ZXN0KHdlYm9iLlJlcXVlc3QpOgorICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYgaXNfbG9jYWwoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVtb3RlX2FkZHIgPT0gJzEyNy4wLjAuMScKKyAgICAgICAgQHdzZ2lmeShSZXF1ZXN0Q2xhc3M9TXlSZXF1ZXN0KQorICAgICAgICBkZWYgbXlmdW5jKHJlcSk6CisgICAgICAgICAgICBpZiByZXEuaXNfbG9jYWw6CisgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3BvbnNlKCdoaSEnKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSB3ZWJvYi5leGMuSFRUUEZvcmJpZGRlbgorCisgICAgQW5vdGhlciBjdXN0b21pemF0aW9uIHlvdSBjYW4gYWRkIGlzIHRvIGFkZCBgYXJnc2AgKHBvc2l0aW9uYWwKKyAgICBhcmd1bWVudHMpIG9yIGBrd2FyZ3NgIChvZiBjb3Vyc2UsIGtleXdvcmQgYXJndW1lbnRzKS4gIFdoaWxlCisgICAgZ2VuZXJhbGx5IG5vdCB0aGF0IHVzZWZ1bCwgeW91IGNhbiB1c2UgdGhpcyB0byBjcmVhdGUgbXVsdGlwbGUKKyAgICBXU0dJIGFwcHMgZnJvbSBvbmUgZnVuY3Rpb24sIGxpa2U6OgorCisgICAgICAgIGltcG9ydCBzaW1wbGVqc29uCisgICAgICAgIGRlZiBzZXJ2ZV9qc29uKHJlcSwganNvbl9vYmopOgorICAgICAgICAgICAgcmV0dXJuIFJlc3BvbnNlKGpzb24uZHVtcHMoanNvbl9vYmopLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vanNvbicpCisKKyAgICAgICAgc2VydmVfb2IxID0gd3NnaWZ5KHNlcnZlX2pzb24sIGFyZ3M9KG9iMSwpKQorICAgICAgICBzZXJ2ZV9vYjIgPSB3c2dpZnkoc2VydmVfanNvbiwgYXJncz0ob2IyLCkpCisKKyAgICBZb3UgY2FuIHJldHVybiBzZXZlcmFsIHRoaW5ncyBmcm9tIGEgZnVuY3Rpb246CisKKyAgICAqIEEgOmNsYXNzOmB3ZWJvYi5SZXNwb25zZWAgb2JqZWN0IChvciBzdWJjbGFzcykKKyAgICAqICpBbnkqIFdTR0kgYXBwbGljYXRpb24KKyAgICAqIE5vbmUsIGFuZCB0aGVuIGBgcmVxLnJlc3BvbnNlYGAgd2lsbCBiZSB1c2VkIChhIHByZS1pbnN0YW50aWF0ZWQKKyAgICAgIFJlc3BvbnNlIG9iamVjdCkKKyAgICAqIEEgc3RyaW5nLCB3aGljaCB3aWxsIGJlIHdyaXR0ZW4gdG8gYGByZXEucmVzcG9uc2VgYCBhbmQgdGhlbiB0aGF0CisgICAgICByZXNwb25zZSB3aWxsIGJlIHVzZWQuCisgICAgKiBSYWlzZSBhbiBleGNlcHRpb24gZnJvbSA6bW9kOmB3ZWJvYi5leGNgCisKKyAgICBBbHNvIHNlZSA6ZnVuYzpgd3NnaWZ5Lm1pZGRsZXdhcmVgIGZvciBhIHdheSB0byBtYWtlIG1pZGRsZXdhcmUuCisKKyAgICBZb3UgY2FuIGFsc28gc3ViY2xhc3MgdGhpcyBkZWNvcmF0b3I7IHRoZSBtb3N0IHVzZWZ1bCB0aGluZ3MgdG8gZG8KKyAgICBpbiBhIHN1YmNsYXNzIHdvdWxkIGJlIHRvIGNoYW5nZSBgUmVxdWVzdENsYXNzYCBvciBvdmVycmlkZQorICAgIGBjYWxsX2Z1bmNgIChlLmcuLCB0byBhZGQgYGByZXEudXJsdmFyc2BgIGFzIGtleXdvcmQgYXJndW1lbnRzIHRvCisgICAgdGhlIGZ1bmN0aW9uKS4KKyAgICAiIiIKKworICAgIFJlcXVlc3RDbGFzcyA9IFJlcXVlc3QKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jPU5vbmUsIFJlcXVlc3RDbGFzcz1Ob25lLAorICAgICAgICAgICAgICAgICBhcmdzPSgpLCBrd2FyZ3M9Tm9uZSwgbWlkZGxld2FyZV93cmFwcz1Ob25lKToKKyAgICAgICAgc2VsZi5mdW5jID0gZnVuYworICAgICAgICBpZiAoUmVxdWVzdENsYXNzIGlzIG5vdCBOb25lCisgICAgICAgICAgICBhbmQgUmVxdWVzdENsYXNzIGlzIG5vdCBzZWxmLlJlcXVlc3RDbGFzcyk6CisgICAgICAgICAgICBzZWxmLlJlcXVlc3RDbGFzcyA9IFJlcXVlc3RDbGFzcworICAgICAgICBzZWxmLmFyZ3MgPSB0dXBsZShhcmdzKQorICAgICAgICBpZiBrd2FyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJncyA9IHt9CisgICAgICAgIHNlbGYua3dhcmdzID0ga3dhcmdzCisgICAgICAgIHNlbGYubWlkZGxld2FyZV93cmFwcyA9IG1pZGRsZXdhcmVfd3JhcHMKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8JXMgYXQgJXMgd3JhcHBpbmcgJXI+JyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZChzZWxmKSwgc2VsZi5mdW5jKQorCisgICAgZGVmIF9fZ2V0X18oc2VsZiwgb2JqLCB0eXBlPU5vbmUpOgorICAgICAgICAjIFRoaXMgaGFuZGxlcyB3cmFwcGluZyBtZXRob2RzCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5mdW5jLCAnX19nZXRfXycpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2xvbmUoc2VsZi5mdW5jLl9fZ2V0X18ob2JqLCB0eXBlKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcmVxLCAqYXJncywgKiprdyk6CisgICAgICAgICIiIkNhbGwgdGhpcyBhcyBhIFdTR0kgYXBwbGljYXRpb24gb3Igd2l0aCBhIHJlcXVlc3QiIiIKKyAgICAgICAgZnVuYyA9IHNlbGYuZnVuYworICAgICAgICBpZiBmdW5jIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBhcmdzIG9yIGt3OgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIlVuYm91bmQgJXMgY2FuIG9ubHkgYmUgY2FsbGVkIHdpdGggdGhlIGZ1bmN0aW9uIGl0ICIKKyAgICAgICAgICAgICAgICAgICAgIndpbGwgd3JhcCIgJSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXykKKyAgICAgICAgICAgIGZ1bmMgPSByZXEKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNsb25lKGZ1bmMpCisgICAgICAgIGlmIGlzaW5zdGFuY2UocmVxLCBkaWN0KToKKyAgICAgICAgICAgIGlmIGxlbihhcmdzKSAhPSAxIG9yIGt3OgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkNhbGxpbmcgJXIgYXMgYSBXU0dJIGFwcCB3aXRoIHRoZSB3cm9uZyBzaWduYXR1cmUiKQorICAgICAgICAgICAgZW52aXJvbiA9IHJlcQorICAgICAgICAgICAgc3RhcnRfcmVzcG9uc2UgPSBhcmdzWzBdCisgICAgICAgICAgICByZXEgPSBzZWxmLlJlcXVlc3RDbGFzcyhlbnZpcm9uKQorICAgICAgICAgICAgcmVxLnJlc3BvbnNlID0gcmVxLlJlc3BvbnNlQ2xhc3MoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGFyZ3MgPSBzZWxmLmFyZ3MKKyAgICAgICAgICAgICAgICBpZiBzZWxmLm1pZGRsZXdhcmVfd3JhcHM6CisgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSAoc2VsZi5taWRkbGV3YXJlX3dyYXBzLCkgKyBhcmdzCisgICAgICAgICAgICAgICAgcmVzcCA9IHNlbGYuY2FsbF9mdW5jKHJlcSwgKmFyZ3MsICoqc2VsZi5rd2FyZ3MpCisgICAgICAgICAgICBleGNlcHQgSFRUUEV4Y2VwdGlvbiBhcyBleGM6CisgICAgICAgICAgICAgICAgcmVzcCA9IGV4YworICAgICAgICAgICAgaWYgcmVzcCBpcyBOb25lOgorICAgICAgICAgICAgICAgICMjIEZJWE1FOiBJJ20gbm90IHN1cmUgd2hhdCB0aGlzIHNob3VsZCBiZT8KKyAgICAgICAgICAgICAgICByZXNwID0gcmVxLnJlc3BvbnNlCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJlc3AsIHRleHRfdHlwZSk6CisgICAgICAgICAgICAgICAgcmVzcCA9IGJ5dGVzXyhyZXNwLCByZXEuY2hhcnNldCkKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzcCwgYnl0ZXMpOgorICAgICAgICAgICAgICAgIGJvZHkgPSByZXNwCisgICAgICAgICAgICAgICAgcmVzcCA9IHJlcS5yZXNwb25zZQorICAgICAgICAgICAgICAgIHJlc3Aud3JpdGUoYm9keSkKKyAgICAgICAgICAgIGlmIHJlc3AgaXMgbm90IHJlcS5yZXNwb25zZToKKyAgICAgICAgICAgICAgICByZXNwID0gcmVxLnJlc3BvbnNlLm1lcmdlX2Nvb2tpZXMocmVzcCkKKyAgICAgICAgICAgIHJldHVybiByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2VsZi5taWRkbGV3YXJlX3dyYXBzOgorICAgICAgICAgICAgICAgIGFyZ3MgPSAoc2VsZi5taWRkbGV3YXJlX3dyYXBzLCkgKyBhcmdzCisgICAgICAgICAgICByZXR1cm4gc2VsZi5mdW5jKHJlcSwgKmFyZ3MsICoqa3cpCisKKyAgICBkZWYgZ2V0KHNlbGYsIHVybCwgKiprdyk6CisgICAgICAgICIiIlJ1biBhIEdFVCByZXF1ZXN0IG9uIHRoaXMgYXBwbGljYXRpb24sIHJldHVybmluZyBhIFJlc3BvbnNlLgorCisgICAgICAgIFRoaXMgY3JlYXRlcyBhIHJlcXVlc3Qgb2JqZWN0IHVzaW5nIHRoZSBnaXZlbiBVUkwsIGFuZCBhbnkKKyAgICAgICAgb3RoZXIga2V5d29yZCBhcmd1bWVudHMgYXJlIHNldCBvbiB0aGUgcmVxdWVzdCBvYmplY3QgKGUuZy4sCisgICAgICAgIGBgbGFzdF9tb2RpZmllZD1kYXRldGltZS5ub3coKWBgKS4KKworICAgICAgICA6OgorCisgICAgICAgICAgICByZXNwID0gbXlhcHAuZ2V0KCcvYXJ0aWNsZT9pZD0xMCcpCisgICAgICAgICIiIgorICAgICAgICBrdy5zZXRkZWZhdWx0KCdtZXRob2QnLCAnR0VUJykKKyAgICAgICAgcmVxID0gc2VsZi5SZXF1ZXN0Q2xhc3MuYmxhbmsodXJsLCAqKmt3KQorICAgICAgICByZXR1cm4gc2VsZihyZXEpCisKKyAgICBkZWYgcG9zdChzZWxmLCB1cmwsIFBPU1Q9Tm9uZSwgKiprdyk6CisgICAgICAgICIiIlJ1biBhIFBPU1QgcmVxdWVzdCBvbiB0aGlzIGFwcGxpY2F0aW9uLCByZXR1cm5pbmcgYSBSZXNwb25zZS4KKworICAgICAgICBUaGUgc2Vjb25kIGFyZ3VtZW50IChgUE9TVGApIGNhbiBiZSB0aGUgcmVxdWVzdCBib2R5IChhCisgICAgICAgIHN0cmluZyksIG9yIGEgZGljdGlvbmFyeSBvciBsaXN0IG9mIHR3by10dXBsZXMsIHRoYXQgZ2l2ZSB0aGUKKyAgICAgICAgUE9TVCBib2R5LgorCisgICAgICAgIDo6CisKKyAgICAgICAgICAgIHJlc3AgPSBteWFwcC5wb3N0KCcvYXJ0aWNsZS9uZXcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdCh0aXRsZT0nTXkgRGF5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD0nSSBhdGUgYSBzYW5kd2ljaCcpKQorICAgICAgICAiIiIKKyAgICAgICAga3cuc2V0ZGVmYXVsdCgnbWV0aG9kJywgJ1BPU1QnKQorICAgICAgICByZXEgPSBzZWxmLlJlcXVlc3RDbGFzcy5ibGFuayh1cmwsIFBPU1Q9UE9TVCwgKiprdykKKyAgICAgICAgcmV0dXJuIHNlbGYocmVxKQorCisgICAgZGVmIHJlcXVlc3Qoc2VsZiwgdXJsLCAqKmt3KToKKyAgICAgICAgIiIiUnVuIGEgcmVxdWVzdCBvbiB0aGlzIGFwcGxpY2F0aW9uLCByZXR1cm5pbmcgYSBSZXNwb25zZS4KKworICAgICAgICBUaGlzIGNhbiBiZSB1c2VkIGZvciBERUxFVEUsIFBVVCwgZXRjIHJlcXVlc3RzLiAgRS5nLjo6CisKKyAgICAgICAgICAgIHJlc3AgPSBteWFwcC5yZXF1ZXN0KCcvYXJ0aWNsZS8xJywgbWV0aG9kPSdQVVQnLCBib2R5PSdOZXcgYXJ0aWNsZScpCisgICAgICAgICIiIgorICAgICAgICByZXEgPSBzZWxmLlJlcXVlc3RDbGFzcy5ibGFuayh1cmwsICoqa3cpCisgICAgICAgIHJldHVybiBzZWxmKHJlcSkKKworICAgIGRlZiBjYWxsX2Z1bmMoc2VsZiwgcmVxLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJDYWxsIHRoZSB3cmFwcGVkIGZ1bmN0aW9uOyBvdmVycmlkZSB0aGlzIGluIGEgc3ViY2xhc3MgdG8KKyAgICAgICAgY2hhbmdlIGhvdyB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5mdW5jKHJlcSwgKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIGNsb25lKHNlbGYsIGZ1bmM9Tm9uZSwgKiprdyk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBjb3B5L2Nsb25lIG9mIHRoaXMgb2JqZWN0LCBidXQgd2l0aCBzb21lCisgICAgICAgIHBhcmFtZXRlcnMgcmVib3VuZAorICAgICAgICAiIiIKKyAgICAgICAga3dhcmdzID0ge30KKyAgICAgICAgaWYgZnVuYyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1snZnVuYyddID0gZnVuYworICAgICAgICBpZiBzZWxmLlJlcXVlc3RDbGFzcyBpcyBub3Qgc2VsZi5fX2NsYXNzX18uUmVxdWVzdENsYXNzOgorICAgICAgICAgICAga3dhcmdzWydSZXF1ZXN0Q2xhc3MnXSA9IHNlbGYuUmVxdWVzdENsYXNzCisgICAgICAgIGlmIHNlbGYuYXJnczoKKyAgICAgICAgICAgIGt3YXJnc1snYXJncyddID0gc2VsZi5hcmdzCisgICAgICAgIGlmIHNlbGYua3dhcmdzOgorICAgICAgICAgICAga3dhcmdzWydrd2FyZ3MnXSA9IHNlbGYua3dhcmdzCisgICAgICAgIGt3YXJncy51cGRhdGUoa3cpCisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXygqKmt3YXJncykKKworICAgICMgVG8gbWF0Y2ggQGRlY29yYXRvcjoKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdW5kZWNvcmF0ZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmZ1bmMKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBtaWRkbGV3YXJlKGNscywgbWlkZGxlX2Z1bmM9Tm9uZSwgYXBwPU5vbmUsICoqa3cpOgorICAgICAgICAiIiJDcmVhdGVzIG1pZGRsZXdhcmUKKworICAgICAgICBVc2UgdGhpcyBsaWtlOjoKKworICAgICAgICAgICAgQHdzZ2lmeS5taWRkbGV3YXJlCisgICAgICAgICAgICBkZWYgcmVzdHJpY3RfaXAocmVxLCBhcHAsIGlwcyk6CisgICAgICAgICAgICAgICAgaWYgcmVxLnJlbW90ZV9hZGRyIG5vdCBpbiBpcHM6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHdlYm9iLmV4Yy5IVFRQRm9yYmlkZGVuKCdCYWQgSVA6ICVzJyAlIHJlcS5yZW1vdGVfYWRkcikKKyAgICAgICAgICAgICAgICByZXR1cm4gYXBwCisKKyAgICAgICAgICAgIEB3c2dpZnkKKyAgICAgICAgICAgIGRlZiBhcHAocmVxKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2hpJworCisgICAgICAgICAgICB3cmFwcGVkID0gcmVzdHJpY3RfaXAoYXBwLCBpcHM9WycxMjcuMC4wLjEnXSkKKworICAgICAgICBPciBpZiB5b3Ugd2FudCB0byB3cml0ZSBvdXRwdXQtcmV3cml0aW5nIG1pZGRsZXdhcmU6OgorCisgICAgICAgICAgICBAd3NnaWZ5Lm1pZGRsZXdhcmUKKyAgICAgICAgICAgIGRlZiBhbGxfY2FwcyhyZXEsIGFwcCk6CisgICAgICAgICAgICAgICAgcmVzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICAgICAgICAgIHJlc3AuYm9keSA9IHJlc3AuYm9keS51cHBlcigpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3AKKworICAgICAgICAgICAgd3JhcHBlZCA9IGFsbF9jYXBzKGFwcCkKKworICAgICAgICBOb3RlIHRoYXQgeW91IG11c3QgY2FsbCBgYHJlcS5nZXRfcmVzcG9uc2UoYXBwKWBgIHRvIGdldCBhIFdlYk9iCisgICAgICAgIHJlc3BvbnNlIG9iamVjdC4gIElmIHlvdSBhcmUgbm90IG1vZGlmeWluZyB0aGUgb3V0cHV0LCB5b3UgY2FuIGp1c3QKKyAgICAgICAgcmV0dXJuIHRoZSBhcHAuCisKKyAgICAgICAgQXMgeW91IGNhbiBzZWUsIHRoaXMgbWV0aG9kIGRvZXNuJ3QgYWN0dWFsbHkgY3JlYXRlIGFuIGFwcGxpY2F0aW9uLCBidXQKKyAgICAgICAgY3JlYXRlcyAibWlkZGxld2FyZSIgdGhhdCBjYW4gYmUgYm91bmQgdG8gYW4gYXBwbGljYXRpb24sIGFsb25nIHdpdGgKKyAgICAgICAgImNvbmZpZ3VyYXRpb24iICh0aGF0IGlzLCBhbnkgb3RoZXIga2V5d29yZCBhcmd1bWVudHMgeW91IHBhc3Mgd2hlbgorICAgICAgICBiaW5kaW5nIHRoZSBhcHBsaWNhdGlvbikuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG1pZGRsZV9mdW5jIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gX1VuYm91bmRNaWRkbGV3YXJlKGNscywgYXBwLCBrdykKKyAgICAgICAgaWYgYXBwIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gX01pZGRsZXdhcmVGYWN0b3J5KGNscywgbWlkZGxlX2Z1bmMsIGt3KQorICAgICAgICByZXR1cm4gY2xzKG1pZGRsZV9mdW5jLCBtaWRkbGV3YXJlX3dyYXBzPWFwcCwga3dhcmdzPWt3KQorCitjbGFzcyBfVW5ib3VuZE1pZGRsZXdhcmUob2JqZWN0KToKKyAgICAiIiJBIGB3c2dpZnkubWlkZGxld2FyZWAgaW52b2NhdGlvbiB0aGF0IGhhcyBub3QgeWV0IHdyYXBwZWQgYQorICAgIG1pZGRsZXdhcmUgZnVuY3Rpb247IHRoZSBpbnRlcm1lZGlhdGUgb2JqZWN0IHdoZW4geW91IGRvCisgICAgc29tZXRoaW5nIGxpa2UgYGBAd3NnaWZ5Lm1pZGRsZXdhcmUoUmVxdWVzdENsYXNzPUZvbylgYAorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHdyYXBwZXJfY2xhc3MsIGFwcCwga3cpOgorICAgICAgICBzZWxmLndyYXBwZXJfY2xhc3MgPSB3cmFwcGVyX2NsYXNzCisgICAgICAgIHNlbGYuYXBwID0gYXBwCisgICAgICAgIHNlbGYua3cgPSBrdworCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzwlcyBhdCAlcyB3cmFwcGluZyAlcj4nICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkKHNlbGYpLCBzZWxmLmFwcCkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBmdW5jLCBhcHA9Tm9uZSk6CisgICAgICAgIGlmIGFwcCBpcyBOb25lOgorICAgICAgICAgICAgYXBwID0gc2VsZi5hcHAKKyAgICAgICAgcmV0dXJuIHNlbGYud3JhcHBlcl9jbGFzcy5taWRkbGV3YXJlKGZ1bmMsIGFwcD1hcHAsICoqc2VsZi5rdykKKworY2xhc3MgX01pZGRsZXdhcmVGYWN0b3J5KG9iamVjdCk6CisgICAgIiIiQSBtaWRkbGV3YXJlIHRoYXQgaGFzIG5vdCB5ZXQgYmVlbiBib3VuZCB0byBhbiBhcHBsaWNhdGlvbiBvcgorICAgIGNvbmZpZ3VyZWQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgd3JhcHBlcl9jbGFzcywgbWlkZGxld2FyZSwga3cpOgorICAgICAgICBzZWxmLndyYXBwZXJfY2xhc3MgPSB3cmFwcGVyX2NsYXNzCisgICAgICAgIHNlbGYubWlkZGxld2FyZSA9IG1pZGRsZXdhcmUKKyAgICAgICAgc2VsZi5rdyA9IGt3CisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzIGF0ICVzIHdyYXBwaW5nICVyPicgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIGlkKHNlbGYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWlkZGxld2FyZSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBhcHAsICoqY29uZmlnKToKKyAgICAgICAga3cgPSBzZWxmLmt3LmNvcHkoKQorICAgICAgICBrdy51cGRhdGUoY29uZmlnKQorICAgICAgICByZXR1cm4gc2VsZi53cmFwcGVyX2NsYXNzLm1pZGRsZXdhcmUoc2VsZi5taWRkbGV3YXJlLCBhcHAsICoqa3cpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvZGVzY3JpcHRvcnMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvZGVzY3JpcHRvcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA1YTJiNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9kZXNjcmlwdG9ycy5weQpAQCAtMCwwICsxLDMzOCBAQAorZnJvbSBkYXRldGltZSBpbXBvcnQgKAorICAgIGRhdGUsCisgICAgZGF0ZXRpbWUsCisgICAgKQorCitpbXBvcnQgcmUKKworZnJvbSB3ZWJvYi5ieXRlcmFuZ2UgaW1wb3J0ICgKKyAgICBDb250ZW50UmFuZ2UsCisgICAgUmFuZ2UsCisgICAgKQorCitmcm9tIHdlYm9iLmNvbXBhdCBpbXBvcnQgKAorICAgIFBZMywKKyAgICB0ZXh0X3R5cGUsCisgICAgKQorCitmcm9tIHdlYm9iLmRhdGV0aW1lX3V0aWxzIGltcG9ydCAoCisgICAgcGFyc2VfZGF0ZSwKKyAgICBzZXJpYWxpemVfZGF0ZSwKKyAgICApCisKK2Zyb20gd2Vib2IudXRpbCBpbXBvcnQgKAorICAgIGhlYWRlcl9kb2NzdHJpbmcsCisgICAgd2Fybl9kZXByZWNhdGlvbiwKKyAgICApCisKKworQ0hBUlNFVF9SRSA9IHJlLmNvbXBpbGUocic7XHMqY2hhcnNldD0oW147XSopJywgcmUuSSkKK1NDSEVNRV9SRSA9IHJlLmNvbXBpbGUocideW2Etel0rOicsIHJlLkkpCisKKworX25vdF9naXZlbiA9IG9iamVjdCgpCisKK2RlZiBlbnZpcm9uX2dldHRlcihrZXksIGRlZmF1bHQ9X25vdF9naXZlbiwgcmZjX3NlY3Rpb249Tm9uZSk6CisgICAgaWYgcmZjX3NlY3Rpb246CisgICAgICAgIGRvYyA9IGhlYWRlcl9kb2NzdHJpbmcoa2V5LCByZmNfc2VjdGlvbikKKyAgICBlbHNlOgorICAgICAgICBkb2MgPSAiR2V0cyBhbmQgc2V0cyB0aGUgYGAlc2BgIGtleSBpbiB0aGUgZW52aXJvbm1lbnQuIiAlIGtleQorICAgIGlmIGRlZmF1bHQgaXMgX25vdF9naXZlbjoKKyAgICAgICAgZGVmIGZnZXQocmVxKToKKyAgICAgICAgICAgIHJldHVybiByZXEuZW52aXJvbltrZXldCisgICAgICAgIGRlZiBmc2V0KHJlcSwgdmFsKToKKyAgICAgICAgICAgIHJlcS5lbnZpcm9uW2tleV0gPSB2YWwKKyAgICAgICAgZmRlbCA9IE5vbmUKKyAgICBlbHNlOgorICAgICAgICBkZWYgZmdldChyZXEpOgorICAgICAgICAgICAgcmV0dXJuIHJlcS5lbnZpcm9uLmdldChrZXksIGRlZmF1bHQpCisgICAgICAgIGRlZiBmc2V0KHJlcSwgdmFsKToKKyAgICAgICAgICAgIGlmIHZhbCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiByZXEuZW52aXJvbjoKKyAgICAgICAgICAgICAgICAgICAgZGVsIHJlcS5lbnZpcm9uW2tleV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVxLmVudmlyb25ba2V5XSA9IHZhbAorICAgICAgICBkZWYgZmRlbChyZXEpOgorICAgICAgICAgICAgZGVsIHJlcS5lbnZpcm9uW2tleV0KKyAgICByZXR1cm4gcHJvcGVydHkoZmdldCwgZnNldCwgZmRlbCwgZG9jPWRvYykKKworCitkZWYgZW52aXJvbl9kZWNvZGVyKGtleSwgZGVmYXVsdD1fbm90X2dpdmVuLCByZmNfc2VjdGlvbj1Ob25lLAorICAgICAgICAgICAgICAgICAgICBlbmNhdHRyPU5vbmUpOgorICAgIGlmIHJmY19zZWN0aW9uOgorICAgICAgICBkb2MgPSBoZWFkZXJfZG9jc3RyaW5nKGtleSwgcmZjX3NlY3Rpb24pCisgICAgZWxzZToKKyAgICAgICAgZG9jID0gIkdldHMgYW5kIHNldHMgdGhlIGBgJXNgYCBrZXkgaW4gdGhlIGVudmlyb25tZW50LiIgJSBrZXkKKyAgICBpZiBkZWZhdWx0IGlzIF9ub3RfZ2l2ZW46CisgICAgICAgIGRlZiBmZ2V0KHJlcSk6CisgICAgICAgICAgICByZXR1cm4gcmVxLmVuY2dldChrZXksIGVuY2F0dHI9ZW5jYXR0cikKKyAgICAgICAgZGVmIGZzZXQocmVxLCB2YWwpOgorICAgICAgICAgICAgcmV0dXJuIHJlcS5lbmNzZXQoa2V5LCB2YWwsIGVuY2F0dHI9ZW5jYXR0cikKKyAgICAgICAgZmRlbCA9IE5vbmUKKyAgICBlbHNlOgorICAgICAgICBkZWYgZmdldChyZXEpOgorICAgICAgICAgICAgcmV0dXJuIHJlcS5lbmNnZXQoa2V5LCBkZWZhdWx0LCBlbmNhdHRyPWVuY2F0dHIpCisgICAgICAgIGRlZiBmc2V0KHJlcSwgdmFsKToKKyAgICAgICAgICAgIGlmIHZhbCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiByZXEuZW52aXJvbjoKKyAgICAgICAgICAgICAgICAgICAgZGVsIHJlcS5lbnZpcm9uW2tleV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcS5lbmNzZXQoa2V5LCB2YWwsIGVuY2F0dHI9ZW5jYXR0cikKKyAgICAgICAgZGVmIGZkZWwocmVxKToKKyAgICAgICAgICAgIGRlbCByZXEuZW52aXJvbltrZXldCisgICAgcmV0dXJuIHByb3BlcnR5KGZnZXQsIGZzZXQsIGZkZWwsIGRvYz1kb2MpCisKK2RlZiB1cGF0aF9wcm9wZXJ0eShrZXkpOgorICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIGRlZiBmZ2V0KHJlcSk6CisgICAgICAgICAgICBlbmNvZGluZyA9IHJlcS51cmxfZW5jb2RpbmcKKyAgICAgICAgICAgIHJldHVybiByZXEuZW52aXJvbi5nZXQoa2V5LCAnJykuZW5jb2RlKCdsYXRpbi0xJykuZGVjb2RlKGVuY29kaW5nKQorICAgICAgICBkZWYgZnNldChyZXEsIHZhbCk6CisgICAgICAgICAgICBlbmNvZGluZyA9IHJlcS51cmxfZW5jb2RpbmcKKyAgICAgICAgICAgIHJlcS5lbnZpcm9uW2tleV0gPSB2YWwuZW5jb2RlKGVuY29kaW5nKS5kZWNvZGUoJ2xhdGluLTEnKQorICAgIGVsc2U6CisgICAgICAgIGRlZiBmZ2V0KHJlcSk6CisgICAgICAgICAgICBlbmNvZGluZyA9IHJlcS51cmxfZW5jb2RpbmcKKyAgICAgICAgICAgIHJldHVybiByZXEuZW52aXJvbi5nZXQoa2V5LCAnJykuZGVjb2RlKGVuY29kaW5nKQorICAgICAgICBkZWYgZnNldChyZXEsIHZhbCk6CisgICAgICAgICAgICBlbmNvZGluZyA9IHJlcS51cmxfZW5jb2RpbmcKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5lbmNvZGUoZW5jb2RpbmcpCisgICAgICAgICAgICByZXEuZW52aXJvbltrZXldID0gdmFsCisgICAgcmV0dXJuIHByb3BlcnR5KGZnZXQsIGZzZXQsIGRvYz0ndXBhdGhfcHJvcGVydHkoJXIpJyAlIGtleSkKKworCitkZWYgZGVwcmVjYXRlZF9wcm9wZXJ0eShhdHRyLCBuYW1lLCB0ZXh0LCB2ZXJzaW9uKTogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgIiIiCisgICAgV3JhcHMgYSBkZXNjcmlwdG9yLCB3aXRoIGEgZGVwcmVjYXRpb24gd2FybmluZyBvciBlcnJvcgorICAgICIiIgorICAgIGRlZiB3YXJuKCk6CisgICAgICAgIHdhcm5fZGVwcmVjYXRpb24oJ1RoZSBhdHRyaWJ1dGUgJXMgaXMgZGVwcmVjYXRlZDogJXMnCisgICAgICAgICAgICAlIChuYW1lLCB0ZXh0KSwKKyAgICAgICAgICAgIHZlcnNpb24sCisgICAgICAgICAgICAzCisgICAgICAgICkKKyAgICBkZWYgZmdldChzZWxmKToKKyAgICAgICAgd2FybigpCisgICAgICAgIHJldHVybiBhdHRyLl9fZ2V0X18oc2VsZiwgdHlwZShzZWxmKSkKKyAgICBkZWYgZnNldChzZWxmLCB2YWwpOgorICAgICAgICB3YXJuKCkKKyAgICAgICAgYXR0ci5fX3NldF9fKHNlbGYsIHZhbCkKKyAgICBkZWYgZmRlbChzZWxmKToKKyAgICAgICAgd2FybigpCisgICAgICAgIGF0dHIuX19kZWxldGVfXyhzZWxmKQorICAgIHJldHVybiBwcm9wZXJ0eShmZ2V0LCBmc2V0LCBmZGVsLAorICAgICAgICAnPERlcHJlY2F0ZWQgYXR0cmlidXRlICVzPicgJSBuYW1lCisgICAgKQorCisKK2RlZiBoZWFkZXJfZ2V0dGVyKGhlYWRlciwgcmZjX3NlY3Rpb24pOgorICAgIGRvYyA9IGhlYWRlcl9kb2NzdHJpbmcoaGVhZGVyLCByZmNfc2VjdGlvbikKKyAgICBrZXkgPSBoZWFkZXIubG93ZXIoKQorCisgICAgZGVmIGZnZXQocik6CisgICAgICAgIGZvciBrLCB2IGluIHIuX2hlYWRlcmxpc3Q6CisgICAgICAgICAgICBpZiBrLmxvd2VyKCkgPT0ga2V5OgorICAgICAgICAgICAgICAgIHJldHVybiB2CisKKyAgICBkZWYgZnNldChyLCB2YWx1ZSk6CisgICAgICAgIGZkZWwocikKKyAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpIGFuZCBub3QgUFkzOgorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZW5jb2RlKCdsYXRpbi0xJykKKyAgICAgICAgICAgIHIuX2hlYWRlcmxpc3QuYXBwZW5kKChoZWFkZXIsIHZhbHVlKSkKKworICAgIGRlZiBmZGVsKHIpOgorICAgICAgICBpdGVtcyA9IHIuX2hlYWRlcmxpc3QKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGl0ZW1zKS0xLCAtMSwgLTEpOgorICAgICAgICAgICAgaWYgaXRlbXNbaV1bMF0ubG93ZXIoKSA9PSBrZXk6CisgICAgICAgICAgICAgICAgZGVsIGl0ZW1zW2ldCisKKyAgICByZXR1cm4gcHJvcGVydHkoZmdldCwgZnNldCwgZmRlbCwgZG9jKQorCisKKworCitkZWYgY29udmVydGVyKHByb3AsIHBhcnNlLCBzZXJpYWxpemUsIGNvbnZlcnRfbmFtZT1Ob25lKToKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShwcm9wLCBwcm9wZXJ0eSkKKyAgICBjb252ZXJ0X25hbWUgPSBjb252ZXJ0X25hbWUgb3IgImBgJXNgYCBhbmQgYGAlc2BgIiAlIChwYXJzZS5fX25hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplLl9fbmFtZV9fKQorICAgIGRvYyA9IHByb3AuX19kb2NfXyBvciAnJworICAgIGRvYyArPSAiICBDb252ZXJ0cyBpdCB1c2luZyAlcy4iICUgY29udmVydF9uYW1lCisgICAgaGdldCwgaHNldCA9IHByb3AuZmdldCwgcHJvcC5mc2V0CisgICAgZGVmIGZnZXQocik6CisgICAgICAgIHJldHVybiBwYXJzZShoZ2V0KHIpKQorICAgIGRlZiBmc2V0KHIsIHZhbCk6CisgICAgICAgIGlmIHZhbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHZhbCA9IHNlcmlhbGl6ZSh2YWwpCisgICAgICAgIGhzZXQociwgdmFsKQorICAgIHJldHVybiBwcm9wZXJ0eShmZ2V0LCBmc2V0LCBwcm9wLmZkZWwsIGRvYykKKworCisKK2RlZiBsaXN0X2hlYWRlcihoZWFkZXIsIHJmY19zZWN0aW9uKToKKyAgICBwcm9wID0gaGVhZGVyX2dldHRlcihoZWFkZXIsIHJmY19zZWN0aW9uKQorICAgIHJldHVybiBjb252ZXJ0ZXIocHJvcCwgcGFyc2VfbGlzdCwgc2VyaWFsaXplX2xpc3QsICdsaXN0JykKKworZGVmIHBhcnNlX2xpc3QodmFsdWUpOgorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4gdHVwbGUoZmlsdGVyKE5vbmUsIFt2LnN0cmlwKCkgZm9yIHYgaW4gdmFsdWUuc3BsaXQoJywnKV0pKQorCitkZWYgc2VyaWFsaXplX2xpc3QodmFsdWUpOgorICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsICh0ZXh0X3R5cGUsIGJ5dGVzKSk6CisgICAgICAgIHJldHVybiBzdHIodmFsdWUpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICcsICcuam9pbihtYXAoc3RyLCB2YWx1ZSkpCisKKworCisKK2RlZiBjb252ZXJ0ZXJfZGF0ZShwcm9wKToKKyAgICByZXR1cm4gY29udmVydGVyKHByb3AsIHBhcnNlX2RhdGUsIHNlcmlhbGl6ZV9kYXRlLCAnSFRUUCBkYXRlJykKKworZGVmIGRhdGVfaGVhZGVyKGhlYWRlciwgcmZjX3NlY3Rpb24pOgorICAgIHJldHVybiBjb252ZXJ0ZXJfZGF0ZShoZWFkZXJfZ2V0dGVyKGhlYWRlciwgcmZjX3NlY3Rpb24pKQorCisKKworCisKKworCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyBDb252ZXJ0ZXIgZnVuY3Rpb25zCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCitfcnhfZXRhZyA9IHJlLmNvbXBpbGUocicoPzpefFxzKShXLyk/IigoPzpcXCJ8LikqPykiJykKKworZGVmIHBhcnNlX2V0YWdfcmVzcG9uc2UodmFsdWUsIHN0cm9uZz1GYWxzZSk6CisgICAgIiIiCisgICAgUGFyc2UgYSByZXNwb25zZSBFVGFnLgorICAgIFNlZToKKyAgICAgICAgKiBodHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzE0Lmh0bWwjc2VjMTQuMTkKKyAgICAgICAgKiBodHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzMuaHRtbCNzZWMzLjExCisgICAgIiIiCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIG0gPSBfcnhfZXRhZy5tYXRjaCh2YWx1ZSkKKyAgICBpZiBub3QgbToKKyAgICAgICAgIyB0aGlzIGV0YWcgaXMgaW52YWxpZCwgYnV0IHdlJ2xsIGp1c3QgcmV0dXJuIGl0IGFueXdheQorICAgICAgICByZXR1cm4gdmFsdWUKKyAgICBlbGlmIHN0cm9uZyBhbmQgbS5ncm91cCgxKToKKyAgICAgICAgIyB0aGlzIGlzIGEgd2VhayBldGFnIGFuZCB3ZSB3YW50IG9ubHkgc3Ryb25nIG9uZXMKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gbS5ncm91cCgyKS5yZXBsYWNlKCdcXCInLCAnIicpCisKK2RlZiBzZXJpYWxpemVfZXRhZ19yZXNwb25zZSh2YWx1ZSk6ICNyZXR1cm4gJyIlcyInICUgdmFsdWUucmVwbGFjZSgnIicsICdcXCInKQorICAgIHN0cm9uZyA9IFRydWUKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB0dXBsZSk6CisgICAgICAgIHZhbHVlLCBzdHJvbmcgPSB2YWx1ZQorICAgIGVsaWYgX3J4X2V0YWcubWF0Y2godmFsdWUpOgorICAgICAgICAjIHRoaXMgaXMgYSB2YWxpZCBldGFnIGFscmVhZHkKKyAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgIyBsZXQncyBxdW90ZSB0aGUgdmFsdWUKKyAgICByID0gJyIlcyInICUgdmFsdWUucmVwbGFjZSgnIicsICdcXCInKQorICAgIGlmIG5vdCBzdHJvbmc6CisgICAgICAgIHIgPSAnVy8nICsgcgorICAgIHJldHVybiByCisKK2RlZiBzZXJpYWxpemVfaWZfcmFuZ2UodmFsdWUpOgorICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIChkYXRldGltZSwgZGF0ZSkpOgorICAgICAgICByZXR1cm4gc2VyaWFsaXplX2RhdGUodmFsdWUpCisgICAgdmFsdWUgPSBzdHIodmFsdWUpCisgICAgcmV0dXJuIHZhbHVlIG9yIE5vbmUKKworZGVmIHBhcnNlX3JhbmdlKHZhbHVlKToKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIHJldHVybiBOb25lCisgICAgIyBNaWdodCByZXR1cm4gTm9uZSB0b286CisgICAgcmV0dXJuIFJhbmdlLnBhcnNlKHZhbHVlKQorCitkZWYgc2VyaWFsaXplX3JhbmdlKHZhbHVlKToKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIHJldHVybiBOb25lCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgcmV0dXJuIHN0cihSYW5nZSgqdmFsdWUpKQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlLCBzdHIpCisgICAgICAgIHJldHVybiB2YWx1ZQorCitkZWYgcGFyc2VfaW50KHZhbHVlKToKKyAgICBpZiB2YWx1ZSBpcyBOb25lIG9yIHZhbHVlID09ICcnOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiBpbnQodmFsdWUpCisKK2RlZiBwYXJzZV9pbnRfc2FmZSh2YWx1ZSk6CisgICAgaWYgdmFsdWUgaXMgTm9uZSBvciB2YWx1ZSA9PSAnJzoKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBpbnQodmFsdWUpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIHJldHVybiBOb25lCisKK3NlcmlhbGl6ZV9pbnQgPSBzdHIKKworZGVmIHBhcnNlX2NvbnRlbnRfcmFuZ2UodmFsdWUpOgorICAgIGlmIG5vdCB2YWx1ZSBvciBub3QgdmFsdWUuc3RyaXAoKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAjIE1heSBzdGlsbCByZXR1cm4gTm9uZQorICAgIHJldHVybiBDb250ZW50UmFuZ2UucGFyc2UodmFsdWUpCisKK2RlZiBzZXJpYWxpemVfY29udGVudF9yYW5nZSh2YWx1ZSk6CisgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKHR1cGxlLCBsaXN0KSk6CisgICAgICAgIGlmIGxlbih2YWx1ZSkgbm90IGluICgyLCAzKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIldoZW4gc2V0dGluZyBjb250ZW50X3JhbmdlIHRvIGEgbGlzdC90dXBsZSwgaXQgbXVzdCAiCisgICAgICAgICAgICAgICAgImJlIGxlbmd0aCAyIG9yIDMgKG5vdCAlcikiICUgdmFsdWUpCisgICAgICAgIGlmIGxlbih2YWx1ZSkgPT0gMjoKKyAgICAgICAgICAgIGJlZ2luLCBlbmQgPSB2YWx1ZQorICAgICAgICAgICAgbGVuZ3RoID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYmVnaW4sIGVuZCwgbGVuZ3RoID0gdmFsdWUKKyAgICAgICAgdmFsdWUgPSBDb250ZW50UmFuZ2UoYmVnaW4sIGVuZCwgbGVuZ3RoKQorICAgIHZhbHVlID0gc3RyKHZhbHVlKS5zdHJpcCgpCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiB2YWx1ZQorCisKKworCitfcnhfYXV0aF9wYXJhbSA9IHJlLmNvbXBpbGUocicoW2Etel0rKVsgXHRdKj1bIFx0XSooIi4qPyJ8W14sXSo/KVsgXHRdKig/OlxafCwgKiknKQorCitkZWYgcGFyc2VfYXV0aF9wYXJhbXMocGFyYW1zKToKKyAgICByID0ge30KKyAgICBmb3IgaywgdiBpbiBfcnhfYXV0aF9wYXJhbS5maW5kYWxsKHBhcmFtcyk6CisgICAgICAgIHJba10gPSB2LnN0cmlwKCciJykKKyAgICByZXR1cm4gcgorCisjIHNlZSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy9pZXRmLWh0dHAtd2cvMjAwOU9jdERlYy8wMjk3Lmh0bWwKK2tub3duX2F1dGhfc2NoZW1lcyA9IFsnQmFzaWMnLCAnRGlnZXN0JywgJ1dTU0UnLCAnSE1BQ0RpZ2VzdCcsICdHb29nbGVMb2dpbicsCisgICAgICAgICAgICAgICAgICAgICAgJ0Nvb2tpZScsICdPcGVuSUQnXQora25vd25fYXV0aF9zY2hlbWVzID0gZGljdC5mcm9ta2V5cyhrbm93bl9hdXRoX3NjaGVtZXMsIE5vbmUpCisKK2RlZiBwYXJzZV9hdXRoKHZhbCk6CisgICAgaWYgdmFsIGlzIG5vdCBOb25lOgorICAgICAgICBhdXRodHlwZSwgcGFyYW1zID0gdmFsLnNwbGl0KCcgJywgMSkKKyAgICAgICAgaWYgYXV0aHR5cGUgaW4ga25vd25fYXV0aF9zY2hlbWVzOgorICAgICAgICAgICAgaWYgYXV0aHR5cGUgPT0gJ0Jhc2ljJyBhbmQgJyInIG5vdCBpbiBwYXJhbXM6CisgICAgICAgICAgICAgICAgIyB0aGlzIGlzIHRoZSAiQXV0aGVudGljYXRpb246IEJhc2ljIFhYWFhYPT0iIGNhc2UKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcnNlX2F1dGhfcGFyYW1zKHBhcmFtcykKKyAgICAgICAgcmV0dXJuIGF1dGh0eXBlLCBwYXJhbXMKKyAgICByZXR1cm4gdmFsCisKK2RlZiBzZXJpYWxpemVfYXV0aCh2YWwpOgorICAgIGlmIGlzaW5zdGFuY2UodmFsLCAodHVwbGUsIGxpc3QpKToKKyAgICAgICAgYXV0aHR5cGUsIHBhcmFtcyA9IHZhbAorICAgICAgICBpZiBpc2luc3RhbmNlKHBhcmFtcywgZGljdCk6CisgICAgICAgICAgICBwYXJhbXMgPSAnLCAnLmpvaW4obWFwKCclcz0iJXMiJy5fX21vZF9fLCBwYXJhbXMuaXRlbXMoKSkpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHBhcmFtcywgc3RyKQorICAgICAgICByZXR1cm4gJyVzICVzJyAlIChhdXRodHlwZSwgcGFyYW1zKQorICAgIHJldHVybiB2YWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9ldGFnLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2V0YWcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZkZjU2ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9ldGFnLnB5CkBAIC0wLDAgKzEsMTg5IEBACisiIiIKK0RvZXMgcGFyc2luZyBvZiBFVGFnLXJlbGF0ZWQgaGVhZGVyczogSWYtTm9uZS1NYXRjaGVzLCBJZi1NYXRjaGVzCisKK0Fsc28gSWYtUmFuZ2UgcGFyc2luZworIiIiCisKK2Zyb20gd2Vib2IuZGF0ZXRpbWVfdXRpbHMgaW1wb3J0ICgKKyAgICBwYXJzZV9kYXRlLAorICAgIHNlcmlhbGl6ZV9kYXRlLAorICAgICkKK2Zyb20gd2Vib2IuZGVzY3JpcHRvcnMgaW1wb3J0IF9yeF9ldGFnCisKK2Zyb20gd2Vib2IudXRpbCBpbXBvcnQgKAorICAgIGhlYWRlcl9kb2NzdHJpbmcsCisgICAgd2Fybl9kZXByZWNhdGlvbiwKKyAgICApCisKK19fYWxsX18gPSBbJ0FueUVUYWcnLCAnTm9FVGFnJywgJ0VUYWdNYXRjaGVyJywgJ0lmUmFuZ2UnLCAnZXRhZ19wcm9wZXJ0eSddCisKK2RlZiBldGFnX3Byb3BlcnR5KGtleSwgZGVmYXVsdCwgcmZjX3NlY3Rpb24sIHN0cm9uZz1UcnVlKToKKyAgICBkb2MgPSBoZWFkZXJfZG9jc3RyaW5nKGtleSwgcmZjX3NlY3Rpb24pCisgICAgZG9jICs9ICIgIENvbnZlcnRzIGl0IGFzIGEgRXRhZy4iCisgICAgZGVmIGZnZXQocmVxKToKKyAgICAgICAgdmFsdWUgPSByZXEuZW52aXJvbi5nZXQoa2V5KQorICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEVUYWdNYXRjaGVyLnBhcnNlKHZhbHVlLCBzdHJvbmc9c3Ryb25nKQorICAgIGRlZiBmc2V0KHJlcSwgdmFsKToKKyAgICAgICAgaWYgdmFsIGlzIE5vbmU6CisgICAgICAgICAgICByZXEuZW52aXJvbltrZXldID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVxLmVudmlyb25ba2V5XSA9IHN0cih2YWwpCisgICAgZGVmIGZkZWwocmVxKToKKyAgICAgICAgZGVsIHJlcS5lbnZpcm9uW2tleV0KKyAgICByZXR1cm4gcHJvcGVydHkoZmdldCwgZnNldCwgZmRlbCwgZG9jPWRvYykKKworZGVmIF93YXJuX3dlYWtfbWF0Y2hfZGVwcmVjYXRlZCgpOgorICAgIHdhcm5fZGVwcmVjYXRpb24oIndlYWtfbWF0Y2ggaXMgZGVwcmVjYXRlZCIsICcxLjInLCAzKQorCitkZWYgX3dhcm5faWZfcmFuZ2VfbWF0Y2hfZGVwcmVjYXRlZCgqYXJncywgKiprdyk6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIHJhaXNlIERlcHJlY2F0aW9uV2FybmluZygiSWZSYW5nZS5tYXRjaFtfcmVzcG9uc2VdIEFQSSBpcyBkZXByZWNhdGVkIikKKworCitjbGFzcyBfQW55RVRhZyhvYmplY3QpOgorICAgICIiIgorICAgIFJlcHJlc2VudHMgYW4gRVRhZyBvZiAqLCBvciBhIG1pc3NpbmcgRVRhZyB3aGVuIG1hdGNoaW5nIGlzICdzYWZlJworICAgICIiIgorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzxFVGFnICo+JworCisgICAgZGVmIF9fbm9uemVyb19fKHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIF9fYm9vbF9fID0gX19ub256ZXJvX18gIyBweXRob24gMworCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgd2Vha19tYXRjaChzZWxmLCBvdGhlcik6CisgICAgICAgIF93YXJuX3dlYWtfbWF0Y2hfZGVwcmVjYXRlZCgpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICcqJworCitBbnlFVGFnID0gX0FueUVUYWcoKQorCitjbGFzcyBfTm9FVGFnKG9iamVjdCk6CisgICAgIiIiCisgICAgUmVwcmVzZW50cyBhIG1pc3NpbmcgRVRhZyB3aGVuIG1hdGNoaW5nIGlzIHVuc2FmZQorICAgICIiIgorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzxObyBFVGFnPicKKworICAgIGRlZiBfX25vbnplcm9fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBfX2Jvb2xfXyA9IF9fbm9uemVyb19fICMgcHl0aG9uIDMKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiB3ZWFrX21hdGNoKHNlbGYsIG90aGVyKTogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIF93YXJuX3dlYWtfbWF0Y2hfZGVwcmVjYXRlZCgpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICcnCisKK05vRVRhZyA9IF9Ob0VUYWcoKQorCisKKyMgVE9ETzogY29udmVydCBpbnRvIGEgc2ltcGxlIHR1cGxlCisKK2NsYXNzIEVUYWdNYXRjaGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV0YWdzKToKKyAgICAgICAgc2VsZi5ldGFncyA9IGV0YWdzCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG90aGVyIGluIHNlbGYuZXRhZ3MKKworICAgIGRlZiB3ZWFrX21hdGNoKHNlbGYsIG90aGVyKTogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIF93YXJuX3dlYWtfbWF0Y2hfZGVwcmVjYXRlZCgpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPEVUYWcgJXM+JyAlICgnIG9yICcuam9pbihzZWxmLmV0YWdzKSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJzZShjbHMsIHZhbHVlLCBzdHJvbmc9VHJ1ZSk6CisgICAgICAgICIiIgorICAgICAgICBQYXJzZSB0aGlzIGZyb20gYSBoZWFkZXIgdmFsdWUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHZhbHVlID09ICcqJzoKKyAgICAgICAgICAgIHJldHVybiBBbnlFVGFnCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIHJldHVybiBjbHMoW10pCisgICAgICAgIG1hdGNoZXMgPSBfcnhfZXRhZy5maW5kYWxsKHZhbHVlKQorICAgICAgICBpZiBub3QgbWF0Y2hlczoKKyAgICAgICAgICAgIHJldHVybiBjbHMoW3ZhbHVlXSkKKyAgICAgICAgZWxpZiBzdHJvbmc6CisgICAgICAgICAgICByZXR1cm4gY2xzKFt0IGZvciB3LHQgaW4gbWF0Y2hlcyBpZiBub3Qgd10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gY2xzKFt0IGZvciB3LHQgaW4gbWF0Y2hlc10pCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICcsICcuam9pbihtYXAoJyIlcyInLl9fbW9kX18sIHNlbGYuZXRhZ3MpKQorCisKK2NsYXNzIElmUmFuZ2Uob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXRhZyk6CisgICAgICAgIHNlbGYuZXRhZyA9IGV0YWcKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJzZShjbHMsIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIFBhcnNlIHRoaXMgZnJvbSBhIGhlYWRlciB2YWx1ZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIHJldHVybiBjbHMoQW55RVRhZykKKyAgICAgICAgZWxpZiB2YWx1ZS5lbmRzd2l0aCgnIEdNVCcpOgorICAgICAgICAgICAgIyBNdXN0IGJlIGEgZGF0ZQorICAgICAgICAgICAgcmV0dXJuIElmUmFuZ2VEYXRlKHBhcnNlX2RhdGUodmFsdWUpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGNscyhFVGFnTWF0Y2hlci5wYXJzZSh2YWx1ZSkpCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIHJlc3ApOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIFRydWUgaWYgdGhlIElmLVJhbmdlIGhlYWRlciBtYXRjaGVzIHRoZSBnaXZlbiBldGFnIG9yIGxhc3RfbW9kaWZpZWQKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiByZXNwLmV0YWdfc3Ryb25nIGluIHNlbGYuZXRhZworCisgICAgZGVmIF9fbm9uemVyb19fKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9vbChzZWxmLmV0YWcpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnJXMoJXIpJyAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgc2VsZi5ldGFnCisgICAgICAgICkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc3RyKHNlbGYuZXRhZykgaWYgc2VsZi5ldGFnIGVsc2UgJycKKworICAgIG1hdGNoID0gbWF0Y2hfcmVzcG9uc2UgPSBfd2Fybl9pZl9yYW5nZV9tYXRjaF9kZXByZWNhdGVkCisKKyAgICBfX2Jvb2xfXyA9IF9fbm9uemVyb19fICMgcHl0aG9uIDMKKworY2xhc3MgSWZSYW5nZURhdGUob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGF0ZSk6CisgICAgICAgIHNlbGYuZGF0ZSA9IGRhdGUKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgcmVzcCk6CisgICAgICAgIGxhc3RfbW9kaWZpZWQgPSByZXNwLmxhc3RfbW9kaWZpZWQKKyAgICAgICAgI2lmIGlzaW5zdGFuY2UobGFzdF9tb2RpZmllZCwgc3RyKToKKyAgICAgICAgIyAgICBsYXN0X21vZGlmaWVkID0gcGFyc2VfZGF0ZShsYXN0X21vZGlmaWVkKQorICAgICAgICByZXR1cm4gbGFzdF9tb2RpZmllZCBhbmQgKGxhc3RfbW9kaWZpZWQgPD0gc2VsZi5kYXRlKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJyVzKCVyKScgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgIHNlbGYuZGF0ZQorICAgICAgICAgICAgI3NlcmlhbGl6ZV9kYXRlKHNlbGYuZGF0ZSkKKyAgICAgICAgKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZXJpYWxpemVfZGF0ZShzZWxmLmRhdGUpCisKKyAgICBtYXRjaCA9IG1hdGNoX3Jlc3BvbnNlID0gX3dhcm5faWZfcmFuZ2VfbWF0Y2hfZGVwcmVjYXRlZApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2V4Yy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9leGMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVhNWYyYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9leGMucHkKQEAgLTAsMCArMSwxMTUxIEBACisiIiIKK1RoaXMgbW9kdWxlIHByb2Nlc3NlcyBQeXRob24gZXhjZXB0aW9ucyB0aGF0IHJlbGF0ZSB0byBIVFRQIGV4Y2VwdGlvbnMKK2J5IGRlZmluaW5nIGEgc2V0IG9mIGV4Y2VwdGlvbnMsIGFsbCBzdWJjbGFzc2VzIG9mIEhUVFBFeGNlcHRpb24uCitFYWNoIGV4Y2VwdGlvbiwgaW4gYWRkaXRpb24gdG8gYmVpbmcgYSBQeXRob24gZXhjZXB0aW9uIHRoYXQgY2FuIGJlCityYWlzZWQgYW5kIGNhdWdodCwgaXMgYWxzbyBhIFdTR0kgYXBwbGljYXRpb24gYW5kIGBgd2Vib2IuUmVzcG9uc2VgYAorb2JqZWN0LgorCitUaGlzIG1vZHVsZSBkZWZpbmVzIGV4Y2VwdGlvbnMgYWNjb3JkaW5nIHRvIFJGQyAyMDY4IFsxXV8gOiBjb2RlcyB3aXRoCisxMDAtMzAwIGFyZSBub3QgcmVhbGx5IGVycm9yczsgNDAwJ3MgYXJlIGNsaWVudCBlcnJvcnMsIGFuZCA1MDAncyBhcmUKK3NlcnZlciBlcnJvcnMuICBBY2NvcmRpbmcgdG8gdGhlIFdTR0kgc3BlY2lmaWNhdGlvbiBbMl1fICwgdGhlIGFwcGxpY2F0aW9uCitjYW4gY2FsbCBgYHN0YXJ0X3Jlc3BvbnNlYGAgbW9yZSB0aGVuIG9uY2Ugb25seSB1bmRlciB0d28gY29uZGl0aW9uczoKKyhhKSB0aGUgcmVzcG9uc2UgaGFzIG5vdCB5ZXQgYmVlbiBzZW50LCBvciAoYikgaWYgdGhlIHNlY29uZCBhbmQKK3N1YnNlcXVlbnQgaW52b2NhdGlvbnMgb2YgYGBzdGFydF9yZXNwb25zZWBgIGhhdmUgYSB2YWxpZCBgYGV4Y19pbmZvYGAKK2FyZ3VtZW50IG9idGFpbmVkIGZyb20gYGBzeXMuZXhjX2luZm8oKWBgLiAgVGhlIFdTR0kgc3BlY2lmaWNhdGlvbiB0aGVuCityZXF1aXJlcyB0aGUgc2VydmVyIG9yIGdhdGV3YXkgdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIGNvbnRlbnQgaGFzIGJlZW4KK3NlbnQgYW5kIHRoZW4gYW4gZXhjZXB0aW9uIHdhcyBlbmNvdW50ZXJlZC4KKworRXhjZXB0aW9uCisgIEhUVFBFeGNlcHRpb24KKyAgICBIVFRQT2sKKyAgICAgICogMjAwIC0gOmNsYXNzOmBIVFRQT2tgCisgICAgICAqIDIwMSAtIDpjbGFzczpgSFRUUENyZWF0ZWRgCisgICAgICAqIDIwMiAtIDpjbGFzczpgSFRUUEFjY2VwdGVkYAorICAgICAgKiAyMDMgLSA6Y2xhc3M6YEhUVFBOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb25gCisgICAgICAqIDIwNCAtIDpjbGFzczpgSFRUUE5vQ29udGVudGAKKyAgICAgICogMjA1IC0gOmNsYXNzOmBIVFRQUmVzZXRDb250ZW50YAorICAgICAgKiAyMDYgLSA6Y2xhc3M6YEhUVFBQYXJ0aWFsQ29udGVudGAKKyAgICBIVFRQUmVkaXJlY3Rpb24KKyAgICAgICogMzAwIC0gOmNsYXNzOmBIVFRQTXVsdGlwbGVDaG9pY2VzYAorICAgICAgKiAzMDEgLSA6Y2xhc3M6YEhUVFBNb3ZlZFBlcm1hbmVudGx5YAorICAgICAgKiAzMDIgLSA6Y2xhc3M6YEhUVFBGb3VuZGAKKyAgICAgICogMzAzIC0gOmNsYXNzOmBIVFRQU2VlT3RoZXJgCisgICAgICAqIDMwNCAtIDpjbGFzczpgSFRUUE5vdE1vZGlmaWVkYAorICAgICAgKiAzMDUgLSA6Y2xhc3M6YEhUVFBVc2VQcm94eWAKKyAgICAgICogMzA3IC0gOmNsYXNzOmBIVFRQVGVtcG9yYXJ5UmVkaXJlY3RgCisgICAgSFRUUEVycm9yCisgICAgICBIVFRQQ2xpZW50RXJyb3IKKyAgICAgICAgKiA0MDAgLSA6Y2xhc3M6YEhUVFBCYWRSZXF1ZXN0YAorICAgICAgICAqIDQwMSAtIDpjbGFzczpgSFRUUFVuYXV0aG9yaXplZGAKKyAgICAgICAgKiA0MDIgLSA6Y2xhc3M6YEhUVFBQYXltZW50UmVxdWlyZWRgCisgICAgICAgICogNDAzIC0gOmNsYXNzOmBIVFRQRm9yYmlkZGVuYAorICAgICAgICAqIDQwNCAtIDpjbGFzczpgSFRUUE5vdEZvdW5kYAorICAgICAgICAqIDQwNSAtIDpjbGFzczpgSFRUUE1ldGhvZE5vdEFsbG93ZWRgCisgICAgICAgICogNDA2IC0gOmNsYXNzOmBIVFRQTm90QWNjZXB0YWJsZWAKKyAgICAgICAgKiA0MDcgLSA6Y2xhc3M6YEhUVFBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWRgCisgICAgICAgICogNDA4IC0gOmNsYXNzOmBIVFRQUmVxdWVzdFRpbWVvdXRgCisgICAgICAgICogNDA5IC0gOmNsYXNzOmBIVFRQQ29uZmxpY3RgCisgICAgICAgICogNDEwIC0gOmNsYXNzOmBIVFRQR29uZWAKKyAgICAgICAgKiA0MTEgLSA6Y2xhc3M6YEhUVFBMZW5ndGhSZXF1aXJlZGAKKyAgICAgICAgKiA0MTIgLSA6Y2xhc3M6YEhUVFBQcmVjb25kaXRpb25GYWlsZWRgCisgICAgICAgICogNDEzIC0gOmNsYXNzOmBIVFRQUmVxdWVzdEVudGl0eVRvb0xhcmdlYAorICAgICAgICAqIDQxNCAtIDpjbGFzczpgSFRUUFJlcXVlc3RVUklUb29Mb25nYAorICAgICAgICAqIDQxNSAtIDpjbGFzczpgSFRUUFVuc3VwcG9ydGVkTWVkaWFUeXBlYAorICAgICAgICAqIDQxNiAtIDpjbGFzczpgSFRUUFJlcXVlc3RSYW5nZU5vdFNhdGlzZmlhYmxlYAorICAgICAgICAqIDQxNyAtIDpjbGFzczpgSFRUUEV4cGVjdGF0aW9uRmFpbGVkYAorICAgICAgICAqIDQyMiAtIDpjbGFzczpgSFRUUFVucHJvY2Vzc2FibGVFbnRpdHlgCisgICAgICAgICogNDIzIC0gOmNsYXNzOmBIVFRQTG9ja2VkYAorICAgICAgICAqIDQyNCAtIDpjbGFzczpgSFRUUEZhaWxlZERlcGVuZGVuY3lgCisgICAgICAgICogNDI4IC0gOmNsYXNzOmBIVFRQUHJlY29uZGl0aW9uUmVxdWlyZWRgCisgICAgICAgICogNDI5IC0gOmNsYXNzOmBIVFRQVG9vTWFueVJlcXVlc3RzYAorICAgICAgICAqIDQzMSAtIDpjbGFzczpgSFRUUFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZWAKKyAgICAgICAgKiA0NTEgLSA6Y2xhc3M6YEhUVFBVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uc2AKKyAgICAgIEhUVFBTZXJ2ZXJFcnJvcgorICAgICAgICAqIDUwMCAtIDpjbGFzczpgSFRUUEludGVybmFsU2VydmVyRXJyb3JgCisgICAgICAgICogNTAxIC0gOmNsYXNzOmBIVFRQTm90SW1wbGVtZW50ZWRgCisgICAgICAgICogNTAyIC0gOmNsYXNzOmBIVFRQQmFkR2F0ZXdheWAKKyAgICAgICAgKiA1MDMgLSA6Y2xhc3M6YEhUVFBTZXJ2aWNlVW5hdmFpbGFibGVgCisgICAgICAgICogNTA0IC0gOmNsYXNzOmBIVFRQR2F0ZXdheVRpbWVvdXRgCisgICAgICAgICogNTA1IC0gOmNsYXNzOmBIVFRQVmVyc2lvbk5vdFN1cHBvcnRlZGAKKyAgICAgICAgKiA1MTEgLSA6Y2xhc3M6YEhUVFBOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZGAKKworVXNhZ2Ugbm90ZXMKKy0tLS0tLS0tLS0tCisKK1RoZSBIVFRQRXhjZXB0aW9uIGNsYXNzIGlzIGNvbXBsaWNhdGVkIGJ5IDQgZmFjdG9yczoKKworICAxLiBUaGUgY29udGVudCBnaXZlbiB0byB0aGUgZXhjZXB0aW9uIG1heSBlaXRoZXIgYmUgcGxhaW4tdGV4dCBvcgorICAgICBhcyBodG1sLXRleHQuCisKKyAgMi4gVGhlIHRlbXBsYXRlIG1heSB3YW50IHRvIGhhdmUgc3RyaW5nLXN1YnN0aXR1dGlvbnMgdGFrZW4gZnJvbQorICAgICB0aGUgY3VycmVudCBgYGVudmlyb25gYCBvciB2YWx1ZXMgZnJvbSBpbmNvbWluZyBoZWFkZXJzLiBUaGlzCisgICAgIGlzIGVzcGVjaWFsbHkgdHJvdWJsZXNvbWUgZHVlIHRvIGNhc2Ugc2Vuc2l0aXZpdHkuCisKKyAgMy4gVGhlIGZpbmFsIG91dHB1dCBtYXkgZWl0aGVyIGJlIHRleHQvcGxhaW4gb3IgdGV4dC9odG1sCisgICAgIG1pbWUtdHlwZSBhcyByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCBhcHBsaWNhdGlvbi4KKworICA0LiBFYWNoIGV4Y2VwdGlvbiBoYXMgYSBkZWZhdWx0IGV4cGxhbmF0aW9uLCBidXQgdGhvc2Ugd2hvCisgICAgIHJhaXNlIGV4Y2VwdGlvbnMgbWF5IHdhbnQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbC4KKworU3ViY2xhc3MgYXR0cmlidXRlcyBhbmQgY2FsbCBwYXJhbWV0ZXJzIGFyZSBkZXNpZ25lZCB0byBwcm92aWRlIGFuIGVhc2llciBwYXRoCit0aHJvdWdoIHRoZSBjb21wbGljYXRpb25zLgorCitBdHRyaWJ1dGVzOgorCisgICBgYGNvZGVgYAorICAgICAgIHRoZSBIVFRQIHN0YXR1cyBjb2RlIGZvciB0aGUgZXhjZXB0aW9uCisKKyAgIGBgdGl0bGVgYAorICAgICAgIHJlbWFpbmRlciBvZiB0aGUgc3RhdHVzIGxpbmUgKHN0dWZmIGFmdGVyIHRoZSBjb2RlKQorCisgICBgYGV4cGxhbmF0aW9uYGAKKyAgICAgICBhIHBsYWluLXRleHQgZXhwbGFuYXRpb24gb2YgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBpcworICAgICAgIG5vdCBzdWJqZWN0IHRvIGVudmlyb25tZW50IG9yIGhlYWRlciBzdWJzdGl0dXRpb25zOworICAgICAgIGl0IGlzIGFjY2Vzc2libGUgaW4gdGhlIHRlbXBsYXRlIHZpYSAlKGV4cGxhbmF0aW9uKXMKKworICAgYGBkZXRhaWxgYAorICAgICAgIGEgcGxhaW4tdGV4dCBtZXNzYWdlIGN1c3RvbWl6YXRpb24gdGhhdCBpcyBub3Qgc3ViamVjdAorICAgICAgIHRvIGVudmlyb25tZW50IG9yIGhlYWRlciBzdWJzdGl0dXRpb25zOyBhY2Nlc3NpYmxlIGluCisgICAgICAgdGhlIHRlbXBsYXRlIHZpYSAlKGRldGFpbClzCisKKyAgIGBgYm9keV90ZW1wbGF0ZWBgCisgICAgICAgYSBjb250ZW50IGZyYWdtZW50IChpbiBIVE1MKSB1c2VkIGZvciBlbnZpcm9ubWVudCBhbmQKKyAgICAgICBoZWFkZXIgc3Vic3RpdHV0aW9uOyB0aGUgZGVmYXVsdCB0ZW1wbGF0ZSBpbmNsdWRlcyBib3RoCisgICAgICAgdGhlIGV4cGxhbmF0aW9uIGFuZCBmdXJ0aGVyIGRldGFpbCBwcm92aWRlZCBpbiB0aGUKKyAgICAgICBtZXNzYWdlCisKK1BhcmFtZXRlcnM6CisKKyAgIGBgZGV0YWlsYGAKKyAgICAgYSBwbGFpbi10ZXh0IG92ZXJyaWRlIG9mIHRoZSBkZWZhdWx0IGBgZGV0YWlsYGAKKworICAgYGBoZWFkZXJzYGAKKyAgICAgYSBsaXN0IG9mIChrLHYpIGhlYWRlciBwYWlycworCisgICBgYGNvbW1lbnRgYAorICAgICBhIHBsYWluLXRleHQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB3aGljaCBpcworICAgICB1c3VhbGx5IHN0cmlwcGVkL2hpZGRlbiBmb3IgZW5kLXVzZXJzCisKKyAgIGBgYm9keV90ZW1wbGF0ZWBgCisgICAgIGEgc3RyaW5nLlRlbXBsYXRlIG9iamVjdCBjb250YWluaW5nIGEgY29udGVudCBmcmFnbWVudCBpbiBIVE1MCisgICAgIHRoYXQgZnJhbWVzIHRoZSBleHBsYW5hdGlvbiBhbmQgZnVydGhlciBkZXRhaWwKKworVG8gb3ZlcnJpZGUgdGhlIHRlbXBsYXRlICh3aGljaCBpcyBIVE1MIGNvbnRlbnQpIG9yIHRoZSBwbGFpbi10ZXh0CitleHBsYW5hdGlvbiwgb25lIG11c3Qgc3ViY2xhc3MgdGhlIGdpdmVuIGV4Y2VwdGlvbjsgb3IgY3VzdG9taXplIGl0CithZnRlciBpdCBoYXMgYmVlbiBjcmVhdGVkLiAgVGhpcyBwYXJ0aWN1bGFyIGJyZWFrZG93biBvZiBhIG1lc3NhZ2UKK2ludG8gZXhwbGFuYXRpb24sIGRldGFpbCBhbmQgdGVtcGxhdGUgYWxsb3dzIGJvdGggdGhlIGNyZWF0aW9uIG9mCitwbGFpbi10ZXh0IGFuZCBodG1sIG1lc3NhZ2VzIGZvciB2YXJpb3VzIGNsaWVudHMgYXMgd2VsbCBhcworZXJyb3ItZnJlZSBzdWJzdGl0dXRpb24gb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBoZWFkZXJzLgorCisKK1RoZSBzdWJjbGFzc2VzIG9mIDpjbGFzczpgfl9IVFRQTW92ZWAKKyg6Y2xhc3M6YH5IVFRQTXVsdGlwbGVDaG9pY2VzYCwgOmNsYXNzOmB+SFRUUE1vdmVkUGVybWFuZW50bHlgLAorOmNsYXNzOmB+SFRUUEZvdW5kYCwgOmNsYXNzOmB+SFRUUFNlZU90aGVyYCwgOmNsYXNzOmB+SFRUUFVzZVByb3h5YCBhbmQKKzpjbGFzczpgfkhUVFBUZW1wb3JhcnlSZWRpcmVjdGApIGFyZSByZWRpcmVjdGlvbnMgdGhhdCByZXF1aXJlIGEgYGBMb2NhdGlvbmBgCitmaWVsZC4gUmVmbGVjdGluZyB0aGlzLCB0aGVzZSBzdWJjbGFzc2VzIGhhdmUgdHdvIGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudHM6CitgYGxvY2F0aW9uYGAgYW5kIGBgYWRkX3NsYXNoYGAuCisKK1BhcmFtZXRlcnM6CisKKyAgICBgYGxvY2F0aW9uYGAKKyAgICAgIHRvIHNldCB0aGUgbG9jYXRpb24gaW1tZWRpYXRlbHkKKworICAgIGBgYWRkX3NsYXNoYGAKKyAgICAgIHNldCB0byBUcnVlIHRvIHJlZGlyZWN0IHRvIHRoZSBzYW1lIFVSTCBhcyB0aGUgcmVxdWVzdCwgZXhjZXB0IHdpdGggYQorICAgICAgYGAvYGAgYXBwZW5kZWQKKworUmVsYXRpdmUgVVJMcyBpbiB0aGUgbG9jYXRpb24gd2lsbCBiZSByZXNvbHZlZCB0byBhYnNvbHV0ZS4KKworUmVmZXJlbmNlczoKKworLi4gWzFdIGh0dHA6Ly93d3cucHl0aG9uLm9yZy9wZXBzL3BlcC0wMzMzLmh0bWwjZXJyb3ItaGFuZGxpbmcKKy4uIFsyXSBodHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzEwLmh0bWwjc2VjMTAuNQorCisKKyIiIgorCitmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKK2ltcG9ydCByZQoraW1wb3J0IHN5cworCitmcm9tIHdlYm9iLmNvbXBhdCBpbXBvcnQgKAorICAgIGNsYXNzX3R5cGVzLAorICAgIHRleHRfLAorICAgIHRleHRfdHlwZSwKKyAgICB1cmxwYXJzZSwKKyAgICApCitmcm9tIHdlYm9iLnJlcXVlc3QgaW1wb3J0IFJlcXVlc3QKK2Zyb20gd2Vib2IucmVzcG9uc2UgaW1wb3J0IFJlc3BvbnNlCitmcm9tIHdlYm9iLnV0aWwgaW1wb3J0ICgKKyAgICBodG1sX2VzY2FwZSwKKyAgICB3YXJuX2RlcHJlY2F0aW9uLAorICAgICkKKwordGFnX3JlID0gcmUuY29tcGlsZShyJzwuKj8+JywgcmUuUykKK2JyX3JlID0gcmUuY29tcGlsZShyJzxici4qPz4nLCByZS5JfHJlLlMpCitjb21tZW50X3JlID0gcmUuY29tcGlsZShyJzwhLS18LS0+JykKKworZGVmIG5vX2VzY2FwZSh2YWx1ZSk6CisgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSk6CisgICAgICAgIGlmIGhhc2F0dHIodmFsdWUsICdfX3VuaWNvZGVfXycpOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5fX3VuaWNvZGVfXygpCisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGJ5dGVzKToKKyAgICAgICAgICAgIHZhbHVlID0gdGV4dF8odmFsdWUsICd1dGYtOCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB2YWx1ZSA9IHRleHRfdHlwZSh2YWx1ZSkKKyAgICByZXR1cm4gdmFsdWUKKworZGVmIHN0cmlwX3RhZ3ModmFsdWUpOgorICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnXG4nLCAnICcpCisgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCdccicsICcnKQorICAgIHZhbHVlID0gYnJfcmUuc3ViKCdcbicsIHZhbHVlKQorICAgIHZhbHVlID0gY29tbWVudF9yZS5zdWIoJycsIHZhbHVlKQorICAgIHZhbHVlID0gdGFnX3JlLnN1YignJywgdmFsdWUpCisgICAgcmV0dXJuIHZhbHVlCisKK2NsYXNzIEhUVFBFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgd3NnaV9yZXNwb25zZSk6CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtZXNzYWdlKQorICAgICAgICBzZWxmLndzZ2lfcmVzcG9uc2UgPSB3c2dpX3Jlc3BvbnNlCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICByZXR1cm4gc2VsZi53c2dpX3Jlc3BvbnNlKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCitjbGFzcyBXU0dJSFRUUEV4Y2VwdGlvbihSZXNwb25zZSwgSFRUUEV4Y2VwdGlvbik6CisKKyAgICAjIyBZb3Ugc2hvdWxkIHNldCBpbiBzdWJjbGFzc2VzOgorICAgICMgY29kZSA9IDIwMAorICAgICMgdGl0bGUgPSAnT0snCisgICAgIyBleHBsYW5hdGlvbiA9ICd3aHkgdGhpcyBoYXBwZW5zJworICAgICMgYm9keV90ZW1wbGF0ZV9vYmogPSBUZW1wbGF0ZSgncmVzcG9uc2UgdGVtcGxhdGUnKQorICAgIGNvZGUgPSA1MDAKKyAgICB0aXRsZSA9ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InCisgICAgZXhwbGFuYXRpb24gPSAnJworICAgIGJvZHlfdGVtcGxhdGVfb2JqID0gVGVtcGxhdGUoJycnXAorJHtleHBsYW5hdGlvbn08YnIgLz48YnIgLz4KKyR7ZGV0YWlsfQorJHtodG1sX2NvbW1lbnR9CisnJycpCisKKyAgICBwbGFpbl90ZW1wbGF0ZV9vYmogPSBUZW1wbGF0ZSgnJydcCiske3N0YXR1c30KKworJHtib2R5fScnJykKKworICAgIGh0bWxfdGVtcGxhdGVfb2JqID0gVGVtcGxhdGUoJycnXAorPGh0bWw+CisgPGhlYWQ+CisgIDx0aXRsZT4ke3N0YXR1c308L3RpdGxlPgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGgxPiR7c3RhdHVzfTwvaDE+CisgICR7Ym9keX0KKyA8L2JvZHk+Cis8L2h0bWw+JycnKQorCisgICAgIyMgU2V0IHRoaXMgdG8gVHJ1ZSBmb3IgcmVzcG9uc2VzIHRoYXQgc2hvdWxkIGhhdmUgbm8gcmVxdWVzdCBib2R5CisgICAgZW1wdHlfYm9keSA9IEZhbHNlCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGV0YWlsPU5vbmUsIGhlYWRlcnM9Tm9uZSwgY29tbWVudD1Ob25lLAorICAgICAgICAgICAgICAgICBib2R5X3RlbXBsYXRlPU5vbmUsICoqa3cpOgorICAgICAgICBSZXNwb25zZS5fX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9JyVzICVzJyAlIChzZWxmLmNvZGUsIHNlbGYudGl0bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3KQorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwgZGV0YWlsKQorICAgICAgICBpZiBoZWFkZXJzOgorICAgICAgICAgICAgc2VsZi5oZWFkZXJzLmV4dGVuZChoZWFkZXJzKQorICAgICAgICBzZWxmLmRldGFpbCA9IGRldGFpbAorICAgICAgICBzZWxmLmNvbW1lbnQgPSBjb21tZW50CisgICAgICAgIGlmIGJvZHlfdGVtcGxhdGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmJvZHlfdGVtcGxhdGUgPSBib2R5X3RlbXBsYXRlCisgICAgICAgICAgICBzZWxmLmJvZHlfdGVtcGxhdGVfb2JqID0gVGVtcGxhdGUoYm9keV90ZW1wbGF0ZSkKKyAgICAgICAgaWYgc2VsZi5lbXB0eV9ib2R5OgorICAgICAgICAgICAgZGVsIHNlbGYuY29udGVudF90eXBlCisgICAgICAgICAgICBkZWwgc2VsZi5jb250ZW50X2xlbmd0aAorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmRldGFpbCBvciBzZWxmLmV4cGxhbmF0aW9uCisKKyAgICBkZWYgX21ha2VfYm9keShzZWxmLCBlbnZpcm9uLCBlc2NhcGUpOgorICAgICAgICBhcmdzID0geworICAgICAgICAgICAgJ2V4cGxhbmF0aW9uJzogZXNjYXBlKHNlbGYuZXhwbGFuYXRpb24pLAorICAgICAgICAgICAgJ2RldGFpbCc6IGVzY2FwZShzZWxmLmRldGFpbCBvciAnJyksCisgICAgICAgICAgICAnY29tbWVudCc6IGVzY2FwZShzZWxmLmNvbW1lbnQgb3IgJycpLAorICAgICAgICAgICAgfQorICAgICAgICBpZiBzZWxmLmNvbW1lbnQ6CisgICAgICAgICAgICBhcmdzWydodG1sX2NvbW1lbnQnXSA9ICc8IS0tICVzIC0tPicgJSBlc2NhcGUoc2VsZi5jb21tZW50KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXJnc1snaHRtbF9jb21tZW50J10gPSAnJworICAgICAgICBpZiBXU0dJSFRUUEV4Y2VwdGlvbi5ib2R5X3RlbXBsYXRlX29iaiBpcyBub3Qgc2VsZi5ib2R5X3RlbXBsYXRlX29iajoKKyAgICAgICAgICAgICMgQ3VzdG9tIHRlbXBsYXRlOyBhZGQgaGVhZGVycyB0byBhcmdzCisgICAgICAgICAgICBmb3IgaywgdiBpbiBlbnZpcm9uLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgYXJnc1trXSA9IGVzY2FwZSh2KQorICAgICAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5oZWFkZXJzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgYXJnc1trLmxvd2VyKCldID0gZXNjYXBlKHYpCisgICAgICAgIHRfb2JqID0gc2VsZi5ib2R5X3RlbXBsYXRlX29iagorICAgICAgICByZXR1cm4gdF9vYmouc3Vic3RpdHV0ZShhcmdzKQorCisgICAgZGVmIHBsYWluX2JvZHkoc2VsZiwgZW52aXJvbik6CisgICAgICAgIGJvZHkgPSBzZWxmLl9tYWtlX2JvZHkoZW52aXJvbiwgbm9fZXNjYXBlKQorICAgICAgICBib2R5ID0gc3RyaXBfdGFncyhib2R5KQorICAgICAgICByZXR1cm4gc2VsZi5wbGFpbl90ZW1wbGF0ZV9vYmouc3Vic3RpdHV0ZShzdGF0dXM9c2VsZi5zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXNlbGYudGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk9Ym9keSkKKworICAgIGRlZiBodG1sX2JvZHkoc2VsZiwgZW52aXJvbik6CisgICAgICAgIGJvZHkgPSBzZWxmLl9tYWtlX2JvZHkoZW52aXJvbiwgaHRtbF9lc2NhcGUpCisgICAgICAgIHJldHVybiBzZWxmLmh0bWxfdGVtcGxhdGVfb2JqLnN1YnN0aXR1dGUoc3RhdHVzPXNlbGYuc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk9Ym9keSkKKworICAgIGRlZiBnZW5lcmF0ZV9yZXNwb25zZShzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIGlmIHNlbGYuY29udGVudF9sZW5ndGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBkZWwgc2VsZi5jb250ZW50X2xlbmd0aAorICAgICAgICBoZWFkZXJsaXN0ID0gbGlzdChzZWxmLmhlYWRlcmxpc3QpCisgICAgICAgIGFjY2VwdCA9IGVudmlyb24uZ2V0KCdIVFRQX0FDQ0VQVCcsICcnKQorICAgICAgICBpZiBhY2NlcHQgYW5kICdodG1sJyBpbiBhY2NlcHQgb3IgJyovKicgaW4gYWNjZXB0OgorICAgICAgICAgICAgY29udGVudF90eXBlID0gJ3RleHQvaHRtbCcKKyAgICAgICAgICAgIGJvZHkgPSBzZWxmLmh0bWxfYm9keShlbnZpcm9uKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29udGVudF90eXBlID0gJ3RleHQvcGxhaW4nCisgICAgICAgICAgICBib2R5ID0gc2VsZi5wbGFpbl9ib2R5KGVudmlyb24pCisgICAgICAgIGV4dHJhX2t3ID0ge30KKyAgICAgICAgaWYgaXNpbnN0YW5jZShib2R5LCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgZXh0cmFfa3cudXBkYXRlKGNoYXJzZXQ9J3V0Zi04JykKKyAgICAgICAgcmVzcCA9IFJlc3BvbnNlKGJvZHksCisgICAgICAgICAgICBzdGF0dXM9c2VsZi5zdGF0dXMsCisgICAgICAgICAgICBoZWFkZXJsaXN0PWhlYWRlcmxpc3QsCisgICAgICAgICAgICBjb250ZW50X3R5cGU9Y29udGVudF90eXBlLAorICAgICAgICAgICAgKipleHRyYV9rdworICAgICAgICApCisgICAgICAgIHJlc3AuY29udGVudF90eXBlID0gY29udGVudF90eXBlCisgICAgICAgIHJldHVybiByZXNwKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgaXNfaGVhZCA9IGVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10gPT0gJ0hFQUQnCisgICAgICAgIGlmIHNlbGYuYm9keSBvciBzZWxmLmVtcHR5X2JvZHkgb3IgaXNfaGVhZDoKKyAgICAgICAgICAgIGFwcF9pdGVyID0gUmVzcG9uc2UuX19jYWxsX18oc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcHBfaXRlciA9IHNlbGYuZ2VuZXJhdGVfcmVzcG9uc2UoZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpCisgICAgICAgIGlmIGlzX2hlYWQ6CisgICAgICAgICAgICBhcHBfaXRlciA9IFtdCisgICAgICAgIHJldHVybiBhcHBfaXRlcgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHdzZ2lfcmVzcG9uc2Uoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKworCitjbGFzcyBIVFRQRXJyb3IoV1NHSUhUVFBFeGNlcHRpb24pOgorICAgICIiIgorICAgIGJhc2UgY2xhc3MgZm9yIHN0YXR1cyBjb2RlcyBpbiB0aGUgNDAwJ3MgYW5kIDUwMCdzCisKKyAgICBUaGlzIGlzIGFuIGV4Y2VwdGlvbiB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlcnJvciBoYXMgb2NjdXJyZWQsCisgICAgYW5kIHRoYXQgYW55IHdvcmsgaW4gcHJvZ3Jlc3Mgc2hvdWxkIG5vdCBiZSBjb21taXR0ZWQuICBUaGVzZSBhcmUKKyAgICB0eXBpY2FsbHkgcmVzdWx0cyBpbiB0aGUgNDAwJ3MgYW5kIDUwMCdzLgorICAgICIiIgorCitjbGFzcyBIVFRQUmVkaXJlY3Rpb24oV1NHSUhUVFBFeGNlcHRpb24pOgorICAgICIiIgorICAgIGJhc2UgY2xhc3MgZm9yIDMwMCdzIHN0YXR1cyBjb2RlIChyZWRpcmVjdGlvbnMpCisKKyAgICBUaGlzIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIDN4eCByZWRpcmVjdGlvbi4gIEl0IGluZGljYXRlcworICAgIHRoYXQgZnVydGhlciBhY3Rpb24gbmVlZHMgdG8gYmUgdGFrZW4gYnkgdGhlIHVzZXIgYWdlbnQgaW4gb3JkZXIKKyAgICB0byBmdWxmaWxsIHRoZSByZXF1ZXN0LiAgSXQgZG9lcyBub3QgbmVjZXNzYXJseSBzaWduYWwgYW4gZXJyb3IKKyAgICBjb25kaXRpb24uCisgICAgIiIiCisKK2NsYXNzIEhUVFBPayhXU0dJSFRUUEV4Y2VwdGlvbik6CisgICAgIiIiCisgICAgQmFzZSBjbGFzcyBmb3IgdGhlIDIwMCdzIHN0YXR1cyBjb2RlIChzdWNjZXNzZnVsIHJlc3BvbnNlcykKKworICAgIGNvZGU6IDIwMCwgdGl0bGU6IE9LCisgICAgIiIiCisgICAgY29kZSA9IDIwMAorICAgIHRpdGxlID0gJ09LJworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIDJ4eCBzdWNjZXNzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY2xhc3MgSFRUUENyZWF0ZWQoSFRUUE9rKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQT2tgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHJlcXVlc3QgaGFzIGJlZW4gZnVsZmlsbGVkIGFuZCByZXN1bHRlZCBpbiBhIG5ldworICAgIHJlc291cmNlIGJlaW5nIGNyZWF0ZWQuCisKKyAgICBjb2RlOiAyMDEsIHRpdGxlOiBDcmVhdGVkCisgICAgIiIiCisgICAgY29kZSA9IDIwMQorICAgIHRpdGxlID0gJ0NyZWF0ZWQnCisKK2NsYXNzIEhUVFBBY2NlcHRlZChIVFRQT2spOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBPa2AKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3QgaGFzIGJlZW4gYWNjZXB0ZWQgZm9yIHByb2Nlc3NpbmcsIGJ1dCB0aGUKKyAgICBwcm9jZXNzaW5nIGhhcyBub3QgYmVlbiBjb21wbGV0ZWQuCisKKyAgICBjb2RlOiAyMDIsIHRpdGxlOiBBY2NlcHRlZAorICAgICIiIgorICAgIGNvZGUgPSAyMDIKKyAgICB0aXRsZSA9ICdBY2NlcHRlZCcKKyAgICBleHBsYW5hdGlvbiA9ICdUaGUgcmVxdWVzdCBpcyBhY2NlcHRlZCBmb3IgcHJvY2Vzc2luZy4nCisKK2NsYXNzIEhUVFBOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb24oSFRUUE9rKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQT2tgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSByZXR1cm5lZCBtZXRhaW5mb3JtYXRpb24gaW4gdGhlIGVudGl0eS1oZWFkZXIgaXMKKyAgICBub3QgdGhlIGRlZmluaXRpdmUgc2V0IGFzIGF2YWlsYWJsZSBmcm9tIHRoZSBvcmlnaW4gc2VydmVyLCBidXQgaXMKKyAgICBnYXRoZXJlZCBmcm9tIGEgbG9jYWwgb3IgYSB0aGlyZC1wYXJ0eSBjb3B5LgorCisgICAgY29kZTogMjAzLCB0aXRsZTogTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24KKyAgICAiIiIKKyAgICBjb2RlID0gMjAzCisgICAgdGl0bGUgPSAnTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24nCisKK2NsYXNzIEhUVFBOb0NvbnRlbnQoSFRUUE9rKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQT2tgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBzZXJ2ZXIgaGFzIGZ1bGZpbGxlZCB0aGUgcmVxdWVzdCBidXQgZG9lcworICAgIG5vdCBuZWVkIHRvIHJldHVybiBhbiBlbnRpdHktYm9keSwgYW5kIG1pZ2h0IHdhbnQgdG8gcmV0dXJuIHVwZGF0ZWQKKyAgICBtZXRhaW5mb3JtYXRpb24uCisKKyAgICBjb2RlOiAyMDQsIHRpdGxlOiBObyBDb250ZW50CisgICAgIiIiCisgICAgY29kZSA9IDIwNAorICAgIHRpdGxlID0gJ05vIENvbnRlbnQnCisgICAgZW1wdHlfYm9keSA9IFRydWUKKworY2xhc3MgSFRUUFJlc2V0Q29udGVudChIVFRQT2spOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBPa2AKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHRoZSBzZXJ2ZXIgaGFzIGZ1bGZpbGxlZCB0aGUgcmVxdWVzdCBhbmQKKyAgICB0aGUgdXNlciBhZ2VudCBTSE9VTEQgcmVzZXQgdGhlIGRvY3VtZW50IHZpZXcgd2hpY2ggY2F1c2VkIHRoZQorICAgIHJlcXVlc3QgdG8gYmUgc2VudC4KKworICAgIGNvZGU6IDIwNSwgdGl0bGU6IFJlc2V0IENvbnRlbnQKKyAgICAiIiIKKyAgICBjb2RlID0gMjA1CisgICAgdGl0bGUgPSAnUmVzZXQgQ29udGVudCcKKyAgICBlbXB0eV9ib2R5ID0gVHJ1ZQorCitjbGFzcyBIVFRQUGFydGlhbENvbnRlbnQoSFRUUE9rKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQT2tgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBzZXJ2ZXIgaGFzIGZ1bGZpbGxlZCB0aGUgcGFydGlhbCBHRVQKKyAgICByZXF1ZXN0IGZvciB0aGUgcmVzb3VyY2UuCisKKyAgICBjb2RlOiAyMDYsIHRpdGxlOiBQYXJ0aWFsIENvbnRlbnQKKyAgICAiIiIKKyAgICBjb2RlID0gMjA2CisgICAgdGl0bGUgPSAnUGFydGlhbCBDb250ZW50JworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIDN4eCByZWRpcmVjdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2NsYXNzIF9IVFRQTW92ZShIVFRQUmVkaXJlY3Rpb24pOgorICAgICIiIgorICAgIHJlZGlyZWN0aW9ucyB3aGljaCByZXF1aXJlIGEgTG9jYXRpb24gZmllbGQKKworICAgIFNpbmNlIGEgJ0xvY2F0aW9uJyBoZWFkZXIgaXMgYSByZXF1aXJlZCBhdHRyaWJ1dGUgb2YgMzAxLCAzMDIsIDMwMywKKyAgICAzMDUgYW5kIDMwNyAoYnV0IG5vdCAzMDQpLCB0aGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgdGhlIG1lY2hhbmljcyB0bworICAgIG1ha2UgdGhpcyBlYXN5LgorCisgICAgWW91IGNhbiBwcm92aWRlIGEgbG9jYXRpb24ga2V5d29yZCBhcmd1bWVudCB0byBzZXQgdGhlIGxvY2F0aW9uCisgICAgaW1tZWRpYXRlbHkuICBZb3UgbWF5IGFsc28gZ2l2ZSBgYGFkZF9zbGFzaD1UcnVlYGAgaWYgeW91IHdhbnQgdG8KKyAgICByZWRpcmVjdCB0byB0aGUgc2FtZSBVUkwgYXMgdGhlIHJlcXVlc3QsIGV4Y2VwdCB3aXRoIGEgYGAvYGAgYWRkZWQKKyAgICB0byB0aGUgZW5kLgorCisgICAgUmVsYXRpdmUgVVJMcyBpbiB0aGUgbG9jYXRpb24gd2lsbCBiZSByZXNvbHZlZCB0byBhYnNvbHV0ZS4KKyAgICAiIiIKKyAgICBleHBsYW5hdGlvbiA9ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gbW92ZWQgdG8nCisgICAgYm9keV90ZW1wbGF0ZV9vYmogPSBUZW1wbGF0ZSgnJydcCiske2V4cGxhbmF0aW9ufSA8YSBocmVmPSIke2xvY2F0aW9ufSI+JHtsb2NhdGlvbn08L2E+OworeW91IHNob3VsZCBiZSByZWRpcmVjdGVkIGF1dG9tYXRpY2FsbHkuCiske2RldGFpbH0KKyR7aHRtbF9jb21tZW50fScnJykKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZXRhaWw9Tm9uZSwgaGVhZGVycz1Ob25lLCBjb21tZW50PU5vbmUsCisgICAgICAgICAgICAgICAgIGJvZHlfdGVtcGxhdGU9Tm9uZSwgbG9jYXRpb249Tm9uZSwgYWRkX3NsYXNoPUZhbHNlKToKKyAgICAgICAgc3VwZXIoX0hUVFBNb3ZlLCBzZWxmKS5fX2luaXRfXygKKyAgICAgICAgICAgIGRldGFpbD1kZXRhaWwsIGhlYWRlcnM9aGVhZGVycywgY29tbWVudD1jb21tZW50LAorICAgICAgICAgICAgYm9keV90ZW1wbGF0ZT1ib2R5X3RlbXBsYXRlKQorICAgICAgICBpZiBsb2NhdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYubG9jYXRpb24gPSBsb2NhdGlvbgorICAgICAgICAgICAgaWYgYWRkX3NsYXNoOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIllvdSBjYW4gb25seSBwcm92aWRlIG9uZSBvZiB0aGUgYXJndW1lbnRzIGxvY2F0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgImFuZCBhZGRfc2xhc2giKQorICAgICAgICBzZWxmLmFkZF9zbGFzaCA9IGFkZF9zbGFzaAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgcmVxID0gUmVxdWVzdChlbnZpcm9uKQorICAgICAgICBpZiBzZWxmLmFkZF9zbGFzaDoKKyAgICAgICAgICAgIHVybCA9IHJlcS5wYXRoX3VybAorICAgICAgICAgICAgdXJsICs9ICcvJworICAgICAgICAgICAgaWYgcmVxLmVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnKToKKyAgICAgICAgICAgICAgICB1cmwgKz0gJz8nICsgcmVxLmVudmlyb25bJ1FVRVJZX1NUUklORyddCisgICAgICAgICAgICBzZWxmLmxvY2F0aW9uID0gdXJsCisgICAgICAgIHNlbGYubG9jYXRpb24gPSB1cmxwYXJzZS51cmxqb2luKHJlcS5wYXRoX3VybCwgc2VsZi5sb2NhdGlvbikKKyAgICAgICAgcmV0dXJuIHN1cGVyKF9IVFRQTW92ZSwgc2VsZikuX19jYWxsX18oCisgICAgICAgICAgICBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKworY2xhc3MgSFRUUE11bHRpcGxlQ2hvaWNlcyhfSFRUUE1vdmUpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfl9IVFRQTW92ZWAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBjb3JyZXNwb25kcyB0byBhbnkgb25lCisgICAgb2YgYSBzZXQgb2YgcmVwcmVzZW50YXRpb25zLCBlYWNoIHdpdGggaXRzIG93biBzcGVjaWZpYyBsb2NhdGlvbiwKKyAgICBhbmQgYWdlbnQtZHJpdmVuIG5lZ290aWF0aW9uIGluZm9ybWF0aW9uIGlzIGJlaW5nIHByb3ZpZGVkIHNvIHRoYXQKKyAgICB0aGUgdXNlciBjYW4gc2VsZWN0IGEgcHJlZmVycmVkIHJlcHJlc2VudGF0aW9uIGFuZCByZWRpcmVjdCBpdHMKKyAgICByZXF1ZXN0IHRvIHRoYXQgbG9jYXRpb24uCisKKyAgICBjb2RlOiAzMDAsIHRpdGxlOiBNdWx0aXBsZSBDaG9pY2VzCisgICAgIiIiCisgICAgY29kZSA9IDMwMAorICAgIHRpdGxlID0gJ011bHRpcGxlIENob2ljZXMnCisKK2NsYXNzIEhUVFBNb3ZlZFBlcm1hbmVudGx5KF9IVFRQTW92ZSk6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+X0hUVFBNb3ZlYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdGVkIHJlc291cmNlIGhhcyBiZWVuIGFzc2lnbmVkIGEgbmV3CisgICAgcGVybWFuZW50IFVSSSBhbmQgYW55IGZ1dHVyZSByZWZlcmVuY2VzIHRvIHRoaXMgcmVzb3VyY2UgU0hPVUxEIHVzZQorICAgIG9uZSBvZiB0aGUgcmV0dXJuZWQgVVJJcy4KKworICAgIGNvZGU6IDMwMSwgdGl0bGU6IE1vdmVkIFBlcm1hbmVudGx5CisgICAgIiIiCisgICAgY29kZSA9IDMwMQorICAgIHRpdGxlID0gJ01vdmVkIFBlcm1hbmVudGx5JworCitjbGFzcyBIVFRQRm91bmQoX0hUVFBNb3ZlKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5fSFRUUE1vdmVgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgcmVzaWRlcyB0ZW1wb3JhcmlseSB1bmRlcgorICAgIGEgZGlmZmVyZW50IFVSSS4KKworICAgIGNvZGU6IDMwMiwgdGl0bGU6IEZvdW5kCisgICAgIiIiCisgICAgY29kZSA9IDMwMgorICAgIHRpdGxlID0gJ0ZvdW5kJworICAgIGV4cGxhbmF0aW9uID0gJ1RoZSByZXNvdXJjZSB3YXMgZm91bmQgYXQnCisKKyMgVGhpcyBvbmUgaXMgc2FmZSBhZnRlciBhIFBPU1QgKHRoZSByZWRpcmVjdGVkIGxvY2F0aW9uIHdpbGwgYmUKKyMgcmV0cmlldmVkIHdpdGggR0VUKToKK2NsYXNzIEhUVFBTZWVPdGhlcihfSFRUUE1vdmUpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfl9IVFRQTW92ZWAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHJlc3BvbnNlIHRvIHRoZSByZXF1ZXN0IGNhbiBiZSBmb3VuZCB1bmRlcgorICAgIGEgZGlmZmVyZW50IFVSSSBhbmQgU0hPVUxEIGJlIHJldHJpZXZlZCB1c2luZyBhIEdFVCBtZXRob2Qgb24gdGhhdAorICAgIHJlc291cmNlLgorCisgICAgY29kZTogMzAzLCB0aXRsZTogU2VlIE90aGVyCisgICAgIiIiCisgICAgY29kZSA9IDMwMworICAgIHRpdGxlID0gJ1NlZSBPdGhlcicKKworY2xhc3MgSFRUUE5vdE1vZGlmaWVkKEhUVFBSZWRpcmVjdGlvbik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUFJlZGlyZWN0aW9uYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCBpZiB0aGUgY2xpZW50IGhhcyBwZXJmb3JtZWQgYSBjb25kaXRpb25hbCBHRVQKKyAgICByZXF1ZXN0IGFuZCBhY2Nlc3MgaXMgYWxsb3dlZCwgYnV0IHRoZSBkb2N1bWVudCBoYXMgbm90IGJlZW4KKyAgICBtb2RpZmllZCwgdGhlIHNlcnZlciBTSE9VTEQgcmVzcG9uZCB3aXRoIHRoaXMgc3RhdHVzIGNvZGUuCisKKyAgICBjb2RlOiAzMDQsIHRpdGxlOiBOb3QgTW9kaWZpZWQKKyAgICAiIiIKKyAgICAjIFRPRE86IHRoaXMgc2hvdWxkIGluY2x1ZGUgYSBkYXRlIG9yIGV0YWcgaGVhZGVyCisgICAgY29kZSA9IDMwNAorICAgIHRpdGxlID0gJ05vdCBNb2RpZmllZCcKKyAgICBlbXB0eV9ib2R5ID0gVHJ1ZQorCitjbGFzcyBIVFRQVXNlUHJveHkoX0hUVFBNb3ZlKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5fSFRUUE1vdmVgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgTVVTVCBiZSBhY2Nlc3NlZCB0aHJvdWdoCisgICAgdGhlIHByb3h5IGdpdmVuIGJ5IHRoZSBMb2NhdGlvbiBmaWVsZC4KKworICAgIGNvZGU6IDMwNSwgdGl0bGU6IFVzZSBQcm94eQorICAgICIiIgorICAgICMgTm90IGEgbW92ZSwgYnV0IGxvb2tzIGEgbGl0dGxlIGxpa2Ugb25lCisgICAgY29kZSA9IDMwNQorICAgIHRpdGxlID0gJ1VzZSBQcm94eScKKyAgICBleHBsYW5hdGlvbiA9ICgKKyAgICAgICAgJ1RoZSByZXNvdXJjZSBtdXN0IGJlIGFjY2Vzc2VkIHRocm91Z2ggYSBwcm94eSBsb2NhdGVkIGF0JykKKworY2xhc3MgSFRUUFRlbXBvcmFyeVJlZGlyZWN0KF9IVFRQTW92ZSk6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+X0hUVFBNb3ZlYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdGVkIHJlc291cmNlIHJlc2lkZXMgdGVtcG9yYXJpbHkKKyAgICB1bmRlciBhIGRpZmZlcmVudCBVUkkuCisKKyAgICBjb2RlOiAzMDcsIHRpdGxlOiBUZW1wb3JhcnkgUmVkaXJlY3QKKyAgICAiIiIKKyAgICBjb2RlID0gMzA3CisgICAgdGl0bGUgPSAnVGVtcG9yYXJ5IFJlZGlyZWN0JworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIDR4eCBjbGllbnQgZXJyb3IKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitjbGFzcyBIVFRQQ2xpZW50RXJyb3IoSFRUUEVycm9yKToKKyAgICAiIiIKKyAgICBiYXNlIGNsYXNzIGZvciB0aGUgNDAwJ3MsIHdoZXJlIHRoZSBjbGllbnQgaXMgaW4gZXJyb3IKKworICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uIGluIHdoaWNoIHRoZSBjbGllbnQgaXMgcHJlc3VtZWQgdG8gYmUKKyAgICBpbi1lcnJvci4gIFRoaXMgaXMgYW4gZXhwZWN0ZWQgcHJvYmxlbSwgYW5kIHRodXMgaXMgbm90IGNvbnNpZGVyZWQKKyAgICBhIGJ1Zy4gIEEgc2VydmVyLXNpZGUgdHJhY2ViYWNrIGlzIG5vdCB3YXJyYW50ZWQuICBVbmxlc3Mgc3BlY2lhbGl6ZWQsCisgICAgdGhpcyBpcyBhICc0MDAgQmFkIFJlcXVlc3QnCisKKyAgICBjb2RlOiA0MDAsIHRpdGxlOiBCYWQgUmVxdWVzdAorICAgICIiIgorICAgIGNvZGUgPSA0MDAKKyAgICB0aXRsZSA9ICdCYWQgUmVxdWVzdCcKKyAgICBleHBsYW5hdGlvbiA9ICgnVGhlIHNlcnZlciBjb3VsZCBub3QgY29tcGx5IHdpdGggdGhlIHJlcXVlc3Qgc2luY2VcclxuJworICAgICAgICAgICAgICAgICAgICdpdCBpcyBlaXRoZXIgbWFsZm9ybWVkIG9yIG90aGVyd2lzZSBpbmNvcnJlY3QuXHJcbicpCisKK2NsYXNzIEhUVFBCYWRSZXF1ZXN0KEhUVFBDbGllbnRFcnJvcik6CisgICAgcGFzcworCitjbGFzcyBIVFRQVW5hdXRob3JpemVkKEhUVFBDbGllbnRFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUENsaWVudEVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdCByZXF1aXJlcyB1c2VyIGF1dGhlbnRpY2F0aW9uLgorCisgICAgY29kZTogNDAxLCB0aXRsZTogVW5hdXRob3JpemVkCisgICAgIiIiCisgICAgY29kZSA9IDQwMQorICAgIHRpdGxlID0gJ1VuYXV0aG9yaXplZCcKKyAgICBleHBsYW5hdGlvbiA9ICgKKyAgICAgICAgJ1RoaXMgc2VydmVyIGNvdWxkIG5vdCB2ZXJpZnkgdGhhdCB5b3UgYXJlIGF1dGhvcml6ZWQgdG9cclxuJworICAgICAgICAnYWNjZXNzIHRoZSBkb2N1bWVudCB5b3UgcmVxdWVzdGVkLiAgRWl0aGVyIHlvdSBzdXBwbGllZCB0aGVcclxuJworICAgICAgICAnd3JvbmcgY3JlZGVudGlhbHMgKGUuZy4sIGJhZCBwYXNzd29yZCksIG9yIHlvdXIgYnJvd3NlclxyXG4nCisgICAgICAgICdkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBzdXBwbHkgdGhlIGNyZWRlbnRpYWxzIHJlcXVpcmVkLlxyXG4nKQorCitjbGFzcyBIVFRQUGF5bWVudFJlcXVpcmVkKEhUVFBDbGllbnRFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUENsaWVudEVycm9yYAorCisgICAgY29kZTogNDAyLCB0aXRsZTogUGF5bWVudCBSZXF1aXJlZAorICAgICIiIgorICAgIGNvZGUgPSA0MDIKKyAgICB0aXRsZSA9ICdQYXltZW50IFJlcXVpcmVkJworICAgIGV4cGxhbmF0aW9uID0gKCdBY2Nlc3Mgd2FzIGRlbmllZCBmb3IgZmluYW5jaWFsIHJlYXNvbnMuJykKKworY2xhc3MgSFRUUEZvcmJpZGRlbihIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciB1bmRlcnN0b29kIHRoZSByZXF1ZXN0LCBidXQgaXMKKyAgICByZWZ1c2luZyB0byBmdWxmaWxsIGl0LgorCisgICAgY29kZTogNDAzLCB0aXRsZTogRm9yYmlkZGVuCisgICAgIiIiCisgICAgY29kZSA9IDQwMworICAgIHRpdGxlID0gJ0ZvcmJpZGRlbicKKyAgICBleHBsYW5hdGlvbiA9ICgnQWNjZXNzIHdhcyBkZW5pZWQgdG8gdGhpcyByZXNvdXJjZS4nKQorCitjbGFzcyBIVFRQTm90Rm91bmQoSFRUUENsaWVudEVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQQ2xpZW50RXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBzZXJ2ZXIgZGlkIG5vdCBmaW5kIGFueXRoaW5nIG1hdGNoaW5nIHRoZQorICAgIFJlcXVlc3QtVVJJLgorCisgICAgY29kZTogNDA0LCB0aXRsZTogTm90IEZvdW5kCisgICAgIiIiCisgICAgY29kZSA9IDQwNAorICAgIHRpdGxlID0gJ05vdCBGb3VuZCcKKyAgICBleHBsYW5hdGlvbiA9ICgnVGhlIHJlc291cmNlIGNvdWxkIG5vdCBiZSBmb3VuZC4nKQorCitjbGFzcyBIVFRQTWV0aG9kTm90QWxsb3dlZChIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIG1ldGhvZCBzcGVjaWZpZWQgaW4gdGhlIFJlcXVlc3QtTGluZSBpcworICAgIG5vdCBhbGxvd2VkIGZvciB0aGUgcmVzb3VyY2UgaWRlbnRpZmllZCBieSB0aGUgUmVxdWVzdC1VUkkuCisKKyAgICBjb2RlOiA0MDUsIHRpdGxlOiBNZXRob2QgTm90IEFsbG93ZWQKKyAgICAiIiIKKyAgICBjb2RlID0gNDA1CisgICAgdGl0bGUgPSAnTWV0aG9kIE5vdCBBbGxvd2VkJworICAgICMgb3ZlcnJpZGUgdGVtcGxhdGUgc2luY2Ugd2UgbmVlZCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgIGJvZHlfdGVtcGxhdGVfb2JqID0gVGVtcGxhdGUoJycnXAorVGhlIG1ldGhvZCAke1JFUVVFU1RfTUVUSE9EfSBpcyBub3QgYWxsb3dlZCBmb3IgdGhpcyByZXNvdXJjZS4gPGJyIC8+PGJyIC8+Ciske2RldGFpbH0nJycpCisKK2NsYXNzIEhUVFBOb3RBY2NlcHRhYmxlKEhUVFBDbGllbnRFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUENsaWVudEVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhlIHJlc291cmNlIGlkZW50aWZpZWQgYnkgdGhlIHJlcXVlc3QgaXMgb25seQorICAgIGNhcGFibGUgb2YgZ2VuZXJhdGluZyByZXNwb25zZSBlbnRpdGllcyB3aGljaCBoYXZlIGNvbnRlbnQKKyAgICBjaGFyYWN0ZXJpc3RpY3Mgbm90IGFjY2VwdGFibGUgYWNjb3JkaW5nIHRvIHRoZSBhY2NlcHQgaGVhZGVycworICAgIHNlbnQgaW4gdGhlIHJlcXVlc3QuCisKKyAgICBjb2RlOiA0MDYsIHRpdGxlOiBOb3QgQWNjZXB0YWJsZQorICAgICIiIgorICAgIGNvZGUgPSA0MDYKKyAgICB0aXRsZSA9ICdOb3QgQWNjZXB0YWJsZScKKyAgICAjIG92ZXJyaWRlIHRlbXBsYXRlIHNpbmNlIHdlIG5lZWQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlKCcnJ1wKK1RoZSByZXNvdXJjZSBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkIHRoYXQgd2FzIGFjY2VwdGFibGUgdG8geW91ciBicm93c2VyCisoY29udGVudCBvZiB0eXBlICR7SFRUUF9BQ0NFUFR9LiA8YnIgLz48YnIgLz4KKyR7ZGV0YWlsfScnJykKKworY2xhc3MgSFRUUFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZChIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaXMgc2ltaWxhciB0byA0MDEsIGJ1dCBpbmRpY2F0ZXMgdGhhdCB0aGUgY2xpZW50IG11c3QgZmlyc3QKKyAgICBhdXRoZW50aWNhdGUgaXRzZWxmIHdpdGggdGhlIHByb3h5LgorCisgICAgY29kZTogNDA3LCB0aXRsZTogUHJveHkgQXV0aGVudGljYXRpb24gUmVxdWlyZWQKKyAgICAiIiIKKyAgICBjb2RlID0gNDA3CisgICAgdGl0bGUgPSAnUHJveHkgQXV0aGVudGljYXRpb24gUmVxdWlyZWQnCisgICAgZXhwbGFuYXRpb24gPSAoJ0F1dGhlbnRpY2F0aW9uIHdpdGggYSBsb2NhbCBwcm94eSBpcyBuZWVkZWQuJykKKworY2xhc3MgSFRUUFJlcXVlc3RUaW1lb3V0KEhUVFBDbGllbnRFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUENsaWVudEVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgY2xpZW50IGRpZCBub3QgcHJvZHVjZSBhIHJlcXVlc3Qgd2l0aGluCisgICAgdGhlIHRpbWUgdGhhdCB0aGUgc2VydmVyIHdhcyBwcmVwYXJlZCB0byB3YWl0LgorCisgICAgY29kZTogNDA4LCB0aXRsZTogUmVxdWVzdCBUaW1lb3V0CisgICAgIiIiCisgICAgY29kZSA9IDQwOAorICAgIHRpdGxlID0gJ1JlcXVlc3QgVGltZW91dCcKKyAgICBleHBsYW5hdGlvbiA9ICgnVGhlIHNlcnZlciBoYXMgd2FpdGVkIHRvbyBsb25nIGZvciB0aGUgcmVxdWVzdCB0byAnCisgICAgICAgICAgICAgICAgICAgJ2JlIHNlbnQgYnkgdGhlIGNsaWVudC4nKQorCitjbGFzcyBIVFRQQ29uZmxpY3QoSFRUUENsaWVudEVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQQ2xpZW50RXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQgZHVlIHRvIGEKKyAgICBjb25mbGljdCB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSByZXNvdXJjZS4KKworICAgIGNvZGU6IDQwOSwgdGl0bGU6IENvbmZsaWN0CisgICAgIiIiCisgICAgY29kZSA9IDQwOQorICAgIHRpdGxlID0gJ0NvbmZsaWN0JworICAgIGV4cGxhbmF0aW9uID0gKCdUaGVyZSB3YXMgYSBjb25mbGljdCB3aGVuIHRyeWluZyB0byBjb21wbGV0ZSAnCisgICAgICAgICAgICAgICAgICAgJ3lvdXIgcmVxdWVzdC4nKQorCitjbGFzcyBIVFRQR29uZShIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlCisgICAgYXQgdGhlIHNlcnZlciBhbmQgbm8gZm9yd2FyZGluZyBhZGRyZXNzIGlzIGtub3duLgorCisgICAgY29kZTogNDEwLCB0aXRsZTogR29uZQorICAgICIiIgorICAgIGNvZGUgPSA0MTAKKyAgICB0aXRsZSA9ICdHb25lJworICAgIGV4cGxhbmF0aW9uID0gKCdUaGlzIHJlc291cmNlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuICBObyBmb3J3YXJkaW5nICcKKyAgICAgICAgICAgICAgICAgICAnYWRkcmVzcyBpcyBnaXZlbi4nKQorCitjbGFzcyBIVFRQTGVuZ3RoUmVxdWlyZWQoSFRUUENsaWVudEVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQQ2xpZW50RXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSB0aGUgc2VydmVyIHJlZnVzZXMgdG8gYWNjZXB0IHRoZSByZXF1ZXN0CisgICAgd2l0aG91dCBhIGRlZmluZWQgQ29udGVudC1MZW5ndGguCisKKyAgICBjb2RlOiA0MTEsIHRpdGxlOiBMZW5ndGggUmVxdWlyZWQKKyAgICAiIiIKKyAgICBjb2RlID0gNDExCisgICAgdGl0bGUgPSAnTGVuZ3RoIFJlcXVpcmVkJworICAgIGV4cGxhbmF0aW9uID0gKCdDb250ZW50LUxlbmd0aCBoZWFkZXIgcmVxdWlyZWQuJykKKworY2xhc3MgSFRUUFByZWNvbmRpdGlvbkZhaWxlZChIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHByZWNvbmRpdGlvbiBnaXZlbiBpbiBvbmUgb3IgbW9yZSBvZiB0aGUKKyAgICByZXF1ZXN0LWhlYWRlciBmaWVsZHMgZXZhbHVhdGVkIHRvIGZhbHNlIHdoZW4gaXQgd2FzIHRlc3RlZCBvbiB0aGUKKyAgICBzZXJ2ZXIuCisKKyAgICBjb2RlOiA0MTIsIHRpdGxlOiBQcmVjb25kaXRpb24gRmFpbGVkCisgICAgIiIiCisgICAgY29kZSA9IDQxMgorICAgIHRpdGxlID0gJ1ByZWNvbmRpdGlvbiBGYWlsZWQnCisgICAgZXhwbGFuYXRpb24gPSAoJ1JlcXVlc3QgcHJlY29uZGl0aW9uIGZhaWxlZC4nKQorCitjbGFzcyBIVFRQUmVxdWVzdEVudGl0eVRvb0xhcmdlKEhUVFBDbGllbnRFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUENsaWVudEVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgc2VydmVyIGlzIHJlZnVzaW5nIHRvIHByb2Nlc3MgYSByZXF1ZXN0CisgICAgYmVjYXVzZSB0aGUgcmVxdWVzdCBlbnRpdHkgaXMgbGFyZ2VyIHRoYW4gdGhlIHNlcnZlciBpcyB3aWxsaW5nIG9yCisgICAgYWJsZSB0byBwcm9jZXNzLgorCisgICAgY29kZTogNDEzLCB0aXRsZTogUmVxdWVzdCBFbnRpdHkgVG9vIExhcmdlCisgICAgIiIiCisgICAgY29kZSA9IDQxMworICAgIHRpdGxlID0gJ1JlcXVlc3QgRW50aXR5IFRvbyBMYXJnZScKKyAgICBleHBsYW5hdGlvbiA9ICgnVGhlIGJvZHkgb2YgeW91ciByZXF1ZXN0IHdhcyB0b28gbGFyZ2UgZm9yIHRoaXMgc2VydmVyLicpCisKK2NsYXNzIEhUVFBSZXF1ZXN0VVJJVG9vTG9uZyhIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciBpcyByZWZ1c2luZyB0byBzZXJ2aWNlIHRoZSByZXF1ZXN0CisgICAgYmVjYXVzZSB0aGUgUmVxdWVzdC1VUkkgaXMgbG9uZ2VyIHRoYW4gdGhlIHNlcnZlciBpcyB3aWxsaW5nIHRvCisgICAgaW50ZXJwcmV0LgorCisgICAgY29kZTogNDE0LCB0aXRsZTogUmVxdWVzdC1VUkkgVG9vIExvbmcKKyAgICAiIiIKKyAgICBjb2RlID0gNDE0CisgICAgdGl0bGUgPSAnUmVxdWVzdC1VUkkgVG9vIExvbmcnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSByZXF1ZXN0IFVSSSB3YXMgdG9vIGxvbmcgZm9yIHRoaXMgc2VydmVyLicpCisKK2NsYXNzIEhUVFBVbnN1cHBvcnRlZE1lZGlhVHlwZShIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciBpcyByZWZ1c2luZyB0byBzZXJ2aWNlIHRoZSByZXF1ZXN0CisgICAgYmVjYXVzZSB0aGUgZW50aXR5IG9mIHRoZSByZXF1ZXN0IGlzIGluIGEgZm9ybWF0IG5vdCBzdXBwb3J0ZWQgYnkKKyAgICB0aGUgcmVxdWVzdGVkIHJlc291cmNlIGZvciB0aGUgcmVxdWVzdGVkIG1ldGhvZC4KKworICAgIGNvZGU6IDQxNSwgdGl0bGU6IFVuc3VwcG9ydGVkIE1lZGlhIFR5cGUKKyAgICAiIiIKKyAgICBjb2RlID0gNDE1CisgICAgdGl0bGUgPSAnVW5zdXBwb3J0ZWQgTWVkaWEgVHlwZScKKyAgICAjIG92ZXJyaWRlIHRlbXBsYXRlIHNpbmNlIHdlIG5lZWQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICB0ZW1wbGF0ZV9vYmogPSBUZW1wbGF0ZSgnJydcCitUaGUgcmVxdWVzdCBtZWRpYSB0eXBlICR7Q09OVEVOVF9UWVBFfSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgc2VydmVyLgorPGJyIC8+PGJyIC8+Ciske2RldGFpbH0nJycpCisKK2NsYXNzIEhUVFBSZXF1ZXN0UmFuZ2VOb3RTYXRpc2ZpYWJsZShIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoZSBzZXJ2ZXIgU0hPVUxEIHJldHVybiBhIHJlc3BvbnNlIHdpdGggdGhpcyBzdGF0dXMgY29kZSBpZiBhCisgICAgcmVxdWVzdCBpbmNsdWRlZCBhIFJhbmdlIHJlcXVlc3QtaGVhZGVyIGZpZWxkLCBhbmQgbm9uZSBvZiB0aGUKKyAgICByYW5nZS1zcGVjaWZpZXIgdmFsdWVzIGluIHRoaXMgZmllbGQgb3ZlcmxhcCB0aGUgY3VycmVudCBleHRlbnQKKyAgICBvZiB0aGUgc2VsZWN0ZWQgcmVzb3VyY2UsIGFuZCB0aGUgcmVxdWVzdCBkaWQgbm90IGluY2x1ZGUgYW4KKyAgICBJZi1SYW5nZSByZXF1ZXN0LWhlYWRlciBmaWVsZC4KKworICAgIGNvZGU6IDQxNiwgdGl0bGU6IFJlcXVlc3QgUmFuZ2UgTm90IFNhdGlzZmlhYmxlCisgICAgIiIiCisgICAgY29kZSA9IDQxNgorICAgIHRpdGxlID0gJ1JlcXVlc3QgUmFuZ2UgTm90IFNhdGlzZmlhYmxlJworICAgIGV4cGxhbmF0aW9uID0gKCdUaGUgUmFuZ2UgcmVxdWVzdGVkIGlzIG5vdCBhdmFpbGFibGUuJykKKworY2xhc3MgSFRUUEV4cGVjdGF0aW9uRmFpbGVkKEhUVFBDbGllbnRFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUENsaWVudEVycm9yYAorCisgICAgVGhpcyBpbmRpZGNhdGVzIHRoYXQgdGhlIGV4cGVjdGF0aW9uIGdpdmVuIGluIGFuIEV4cGVjdAorICAgIHJlcXVlc3QtaGVhZGVyIGZpZWxkIGNvdWxkIG5vdCBiZSBtZXQgYnkgdGhpcyBzZXJ2ZXIuCisKKyAgICBjb2RlOiA0MTcsIHRpdGxlOiBFeHBlY3RhdGlvbiBGYWlsZWQKKyAgICAiIiIKKyAgICBjb2RlID0gNDE3CisgICAgdGl0bGUgPSAnRXhwZWN0YXRpb24gRmFpbGVkJworICAgIGV4cGxhbmF0aW9uID0gKCdFeHBlY3RhdGlvbiBmYWlsZWQuJykKKworY2xhc3MgSFRUUFVucHJvY2Vzc2FibGVFbnRpdHkoSFRUUENsaWVudEVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQQ2xpZW50RXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBzZXJ2ZXIgaXMgdW5hYmxlIHRvIHByb2Nlc3MgdGhlIGNvbnRhaW5lZAorICAgIGluc3RydWN0aW9ucy4KKworICAgIGNvZGU6IDQyMiwgdGl0bGU6IFVucHJvY2Vzc2FibGUgRW50aXR5CisgICAgIiIiCisgICAgIyMgTm90ZTogZnJvbSBXZWJEQVYKKyAgICBjb2RlID0gNDIyCisgICAgdGl0bGUgPSAnVW5wcm9jZXNzYWJsZSBFbnRpdHknCisgICAgZXhwbGFuYXRpb24gPSAnVW5hYmxlIHRvIHByb2Nlc3MgdGhlIGNvbnRhaW5lZCBpbnN0cnVjdGlvbnMnCisKK2NsYXNzIEhUVFBMb2NrZWQoSFRUUENsaWVudEVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQQ2xpZW50RXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSByZXNvdXJjZSBpcyBsb2NrZWQuCisKKyAgICBjb2RlOiA0MjMsIHRpdGxlOiBMb2NrZWQKKyAgICAiIiIKKyAgICAjIyBOb3RlOiBmcm9tIFdlYkRBVgorICAgIGNvZGUgPSA0MjMKKyAgICB0aXRsZSA9ICdMb2NrZWQnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSByZXNvdXJjZSBpcyBsb2NrZWQnKQorCitjbGFzcyBIVFRQRmFpbGVkRGVwZW5kZW5jeShIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIG1ldGhvZCBjb3VsZCBub3QgYmUgcGVyZm9ybWVkIGJlY2F1c2UgdGhlCisgICAgcmVxdWVzdGVkIGFjdGlvbiBkZXBlbmRlZCBvbiBhbm90aGVyIGFjdGlvbiBhbmQgdGhhdCBhY3Rpb24gZmFpbGVkLgorCisgICAgY29kZTogNDI0LCB0aXRsZTogRmFpbGVkIERlcGVuZGVuY3kKKyAgICAiIiIKKyAgICAjIyBOb3RlOiBmcm9tIFdlYkRBVgorICAgIGNvZGUgPSA0MjQKKyAgICB0aXRsZSA9ICdGYWlsZWQgRGVwZW5kZW5jeScKKyAgICBleHBsYW5hdGlvbiA9ICgKKyAgICAgICAgJ1RoZSBtZXRob2QgY291bGQgbm90IGJlIHBlcmZvcm1lZCBiZWNhdXNlIHRoZSByZXF1ZXN0ZWQgJworICAgICAgICAnYWN0aW9uIGRlcGVuZGVuZGVkIG9uIGFub3RoZXIgYWN0aW9uIGFuZCB0aGF0IGFjdGlvbiBmYWlsZWQnKQorCitjbGFzcyBIVFRQUHJlY29uZGl0aW9uUmVxdWlyZWQoSFRUUENsaWVudEVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQQ2xpZW50RXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBvcmlnaW4gc2VydmVyIHJlcXVpcmVzIHRoZSByZXF1ZXN0IHRvIGJlCisgICAgY29uZGl0aW9uYWwuICBGcm9tIFJGQyA2NTg1LCAiQWRkaXRpb25hbCBIVFRQIFN0YXR1cyBDb2RlcyIuCisKKyAgICBjb2RlOiA0MjgsIHRpdGxlOiBQcmVjb25kaXRpb24gUmVxdWlyZWQKKyAgICAiIiIKKyAgICBjb2RlID0gNDI4CisgICAgdGl0bGUgPSAnUHJlY29uZGl0aW9uIFJlcXVpcmVkJworICAgIGV4cGxhbmF0aW9uID0gKCdUaGlzIHJlcXVlc3QgaXMgcmVxdWlyZWQgdG8gYmUgY29uZGl0aW9uYWwnKQorCitjbGFzcyBIVFRQVG9vTWFueVJlcXVlc3RzKEhUVFBDbGllbnRFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUENsaWVudEVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgY2xpZW50IGhhcyBzZW50IHRvbyBtYW55IHJlcXVlc3RzIGluIGEKKyAgICBnaXZlbiBhbW91bnQgb2YgdGltZS4gIFVzZWZ1bCBmb3IgcmF0ZSBsaW1pdGluZy4KKworICAgIEZyb20gUkZDIDY1ODUsICJBZGRpdGlvbmFsIEhUVFAgU3RhdHVzIENvZGVzIi4KKworICAgIGNvZGU6IDQyOSwgdGl0bGU6IFRvbyBNYW55IFJlcXVlc3RzCisgICAgIiIiCisgICAgY29kZSA9IDQyOQorICAgIHRpdGxlID0gJ1RvbyBNYW55IFJlcXVlc3RzJworICAgIGV4cGxhbmF0aW9uID0gKAorICAgICAgICAnVGhlIGNsaWVudCBoYXMgc2VudCB0b28gbWFueSByZXF1ZXN0cyBpbiBhIGdpdmVuIGFtb3VudCBvZiB0aW1lJykKKworY2xhc3MgSFRUUFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZShIVFRQQ2xpZW50RXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBDbGllbnRFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciBpcyB1bndpbGxpbmcgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdAorICAgIGJlY2F1c2UgaXRzIGhlYWRlciBmaWVsZHMgYXJlIHRvbyBsYXJnZS4gVGhlIHJlcXVlc3QgbWF5IGJlIHJlc3VibWl0dGVkCisgICAgYWZ0ZXIgcmVkdWNpbmcgdGhlIHNpemUgb2YgdGhlIHJlcXVlc3QgaGVhZGVyIGZpZWxkcy4KKworICAgIEZyb20gUkZDIDY1ODUsICJBZGRpdGlvbmFsIEhUVFAgU3RhdHVzIENvZGVzIi4KKworICAgIGNvZGU6IDQzMSwgdGl0bGU6IFJlcXVlc3QgSGVhZGVyIEZpZWxkcyBUb28gTGFyZ2UKKyAgICAiIiIKKyAgICBjb2RlID0gNDMxCisgICAgdGl0bGUgPSAnUmVxdWVzdCBIZWFkZXIgRmllbGRzIFRvbyBMYXJnZScKKyAgICBleHBsYW5hdGlvbiA9ICgKKyAgICAgICAgJ1RoZSByZXF1ZXN0IGhlYWRlciBmaWVsZHMgd2VyZSB0b28gbGFyZ2UnKQorCitjbGFzcyBIVFRQVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnMoSFRUUENsaWVudEVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQQ2xpZW50RXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBzZXJ2ZXIgaXMgdW5hYmxlIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QKKyAgICBiZWNhdXNlIG9mIGxlZ2FsIHJlYXNvbnMsIGUuZy4gY2Vuc29yc2hpcCBvciBnb3Zlcm5tZW50LW1hbmRhdGVkCisgICAgYmxvY2tlZCBhY2Nlc3MuCisKKyAgICBGcm9tIHRoZSBkcmFmdCAiQSBOZXcgSFRUUCBTdGF0dXMgQ29kZSBmb3IgTGVnYWxseS1yZXN0cmljdGVkIFJlc291cmNlcyIKKyAgICBieSBUaW0gQnJheToKKworICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXRicmF5LWh0dHAtbGVnYWxseS1yZXN0cmljdGVkLXN0YXR1cy0wMAorCisgICAgY29kZTogNDUxLCB0aXRsZTogVW5hdmFpbGFibGUgRm9yIExlZ2FsIFJlYXNvbnMKKyAgICAiIiIKKyAgICBjb2RlID0gNDUxCisgICAgdGl0bGUgPSAnVW5hdmFpbGFibGUgRm9yIExlZ2FsIFJlYXNvbnMnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSByZXNvdXJjZSBpcyBub3QgYXZhaWxhYmxlIGR1ZSB0byBsZWdhbCByZWFzb25zLicpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgNXh4IFNlcnZlciBFcnJvcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICBSZXNwb25zZSBzdGF0dXMgY29kZXMgYmVnaW5uaW5nIHdpdGggdGhlIGRpZ2l0ICI1IiBpbmRpY2F0ZSBjYXNlcyBpbgorIyAgd2hpY2ggdGhlIHNlcnZlciBpcyBhd2FyZSB0aGF0IGl0IGhhcyBlcnJlZCBvciBpcyBpbmNhcGFibGUgb2YKKyMgIHBlcmZvcm1pbmcgdGhlIHJlcXVlc3QuIEV4Y2VwdCB3aGVuIHJlc3BvbmRpbmcgdG8gYSBIRUFEIHJlcXVlc3QsIHRoZQorIyAgc2VydmVyIFNIT1VMRCBpbmNsdWRlIGFuIGVudGl0eSBjb250YWluaW5nIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBlcnJvcgorIyAgc2l0dWF0aW9uLCBhbmQgd2hldGhlciBpdCBpcyBhIHRlbXBvcmFyeSBvciBwZXJtYW5lbnQgY29uZGl0aW9uLiBVc2VyCisjICBhZ2VudHMgU0hPVUxEIGRpc3BsYXkgYW55IGluY2x1ZGVkIGVudGl0eSB0byB0aGUgdXNlci4gVGhlc2UgcmVzcG9uc2UKKyMgIGNvZGVzIGFyZSBhcHBsaWNhYmxlIHRvIGFueSByZXF1ZXN0IG1ldGhvZC4KKworY2xhc3MgSFRUUFNlcnZlckVycm9yKEhUVFBFcnJvcik6CisgICAgIiIiCisgICAgYmFzZSBjbGFzcyBmb3IgdGhlIDUwMCdzLCB3aGVyZSB0aGUgc2VydmVyIGlzIGluLWVycm9yCisKKyAgICBUaGlzIGlzIGFuIGVycm9yIGNvbmRpdGlvbiBpbiB3aGljaCB0aGUgc2VydmVyIGlzIHByZXN1bWVkIHRvIGJlCisgICAgaW4tZXJyb3IuICBUaGlzIGlzIHVzdWFsbHkgdW5leHBlY3RlZCwgYW5kIHRodXMgcmVxdWlyZXMgYSB0cmFjZWJhY2s7CisgICAgaWRlYWxseSwgb3BlbmluZyBhIHN1cHBvcnQgdGlja2V0IGZvciB0aGUgY3VzdG9tZXIuIFVubGVzcyBzcGVjaWFsaXplZCwKKyAgICB0aGlzIGlzIGEgJzUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InCisgICAgIiIiCisgICAgY29kZSA9IDUwMAorICAgIHRpdGxlID0gJ0ludGVybmFsIFNlcnZlciBFcnJvcicKKyAgICBleHBsYW5hdGlvbiA9ICgKKyAgICAgICdUaGUgc2VydmVyIGhhcyBlaXRoZXIgZXJyZWQgb3IgaXMgaW5jYXBhYmxlIG9mIHBlcmZvcm1pbmdcclxuJworICAgICAgJ3RoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uLlxyXG4nKQorCitjbGFzcyBIVFRQSW50ZXJuYWxTZXJ2ZXJFcnJvcihIVFRQU2VydmVyRXJyb3IpOgorICAgIHBhc3MKKworY2xhc3MgSFRUUE5vdEltcGxlbWVudGVkKEhUVFBTZXJ2ZXJFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUFNlcnZlckVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIGZ1bmN0aW9uYWxpdHkKKyAgICByZXF1aXJlZCB0byBmdWxmaWxsIHRoZSByZXF1ZXN0LgorCisgICAgY29kZTogNTAxLCB0aXRsZTogTm90IEltcGxlbWVudGVkCisgICAgIiIiCisgICAgY29kZSA9IDUwMQorICAgIHRpdGxlID0gJ05vdCBJbXBsZW1lbnRlZCcKKyAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlKCcnJworVGhlIHJlcXVlc3QgbWV0aG9kICR7UkVRVUVTVF9NRVRIT0R9IGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBzZXJ2ZXIuIDxiciAvPjxiciAvPgorJHtkZXRhaWx9JycnKQorCitjbGFzcyBIVFRQQmFkR2F0ZXdheShIVFRQU2VydmVyRXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBTZXJ2ZXJFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciwgd2hpbGUgYWN0aW5nIGFzIGEgZ2F0ZXdheSBvciBwcm94eSwKKyAgICByZWNlaXZlZCBhbiBpbnZhbGlkIHJlc3BvbnNlIGZyb20gdGhlIHVwc3RyZWFtIHNlcnZlciBpdCBhY2Nlc3NlZAorICAgIGluIGF0dGVtcHRpbmcgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC4KKworICAgIGNvZGU6IDUwMiwgdGl0bGU6IEJhZCBHYXRld2F5CisgICAgIiIiCisgICAgY29kZSA9IDUwMgorICAgIHRpdGxlID0gJ0JhZCBHYXRld2F5JworICAgIGV4cGxhbmF0aW9uID0gKCdCYWQgZ2F0ZXdheS4nKQorCitjbGFzcyBIVFRQU2VydmljZVVuYXZhaWxhYmxlKEhUVFBTZXJ2ZXJFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUFNlcnZlckVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgc2VydmVyIGlzIGN1cnJlbnRseSB1bmFibGUgdG8gaGFuZGxlIHRoZQorICAgIHJlcXVlc3QgZHVlIHRvIGEgdGVtcG9yYXJ5IG92ZXJsb2FkaW5nIG9yIG1haW50ZW5hbmNlIG9mIHRoZSBzZXJ2ZXIuCisKKyAgICBjb2RlOiA1MDMsIHRpdGxlOiBTZXJ2aWNlIFVuYXZhaWxhYmxlCisgICAgIiIiCisgICAgY29kZSA9IDUwMworICAgIHRpdGxlID0gJ1NlcnZpY2UgVW5hdmFpbGFibGUnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlLiAnCisgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSB0cnkgYWdhaW4gYXQgYSBsYXRlciB0aW1lLicpCisKK2NsYXNzIEhUVFBHYXRld2F5VGltZW91dChIVFRQU2VydmVyRXJyb3IpOgorICAgICIiIgorICAgIHN1YmNsYXNzIG9mIDpjbGFzczpgfkhUVFBTZXJ2ZXJFcnJvcmAKKworICAgIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciwgd2hpbGUgYWN0aW5nIGFzIGEgZ2F0ZXdheSBvciBwcm94eSwKKyAgICBkaWQgbm90IHJlY2VpdmUgYSB0aW1lbHkgcmVzcG9uc2UgZnJvbSB0aGUgdXBzdHJlYW0gc2VydmVyIHNwZWNpZmllZAorICAgIGJ5IHRoZSBVUkkgKGUuZy4gSFRUUCwgRlRQLCBMREFQKSBvciBzb21lIG90aGVyIGF1eGlsaWFyeSBzZXJ2ZXIKKyAgICAoZS5nLiBETlMpIGl0IG5lZWRlZCB0byBhY2Nlc3MgaW4gYXR0ZW1wdGluZyB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4KKworICAgIGNvZGU6IDUwNCwgdGl0bGU6IEdhdGV3YXkgVGltZW91dAorICAgICIiIgorICAgIGNvZGUgPSA1MDQKKyAgICB0aXRsZSA9ICdHYXRld2F5IFRpbWVvdXQnCisgICAgZXhwbGFuYXRpb24gPSAoJ1RoZSBnYXRld2F5IGhhcyB0aW1lZCBvdXQuJykKKworY2xhc3MgSFRUUFZlcnNpb25Ob3RTdXBwb3J0ZWQoSFRUUFNlcnZlckVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQU2VydmVyRXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCwgb3IgcmVmdXNlcyB0bworICAgIHN1cHBvcnQsIHRoZSBIVFRQIHByb3RvY29sIHZlcnNpb24gdGhhdCB3YXMgdXNlZCBpbiB0aGUgcmVxdWVzdAorICAgIG1lc3NhZ2UuCisKKyAgICBjb2RlOiA1MDUsIHRpdGxlOiBIVFRQIFZlcnNpb24gTm90IFN1cHBvcnRlZAorICAgICIiIgorICAgIGNvZGUgPSA1MDUKKyAgICB0aXRsZSA9ICdIVFRQIFZlcnNpb24gTm90IFN1cHBvcnRlZCcKKyAgICBleHBsYW5hdGlvbiA9ICgnVGhlIEhUVFAgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkLicpCisKK2NsYXNzIEhUVFBJbnN1ZmZpY2llbnRTdG9yYWdlKEhUVFBTZXJ2ZXJFcnJvcik6CisgICAgIiIiCisgICAgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+SFRUUFNlcnZlckVycm9yYAorCisgICAgVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgc2VydmVyIGRvZXMgbm90IGhhdmUgZW5vdWdoIHNwYWNlIHRvIHNhdmUKKyAgICB0aGUgcmVzb3VyY2UuCisKKyAgICBjb2RlOiA1MDcsIHRpdGxlOiBJbnN1ZmZpY2llbnQgU3RvcmFnZQorICAgICIiIgorICAgIGNvZGUgPSA1MDcKKyAgICB0aXRsZSA9ICdJbnN1ZmZpY2llbnQgU3RvcmFnZScKKyAgICBleHBsYW5hdGlvbiA9ICgnVGhlcmUgd2FzIG5vdCBlbm91Z2ggc3BhY2UgdG8gc2F2ZSB0aGUgcmVzb3VyY2UnKQorCitjbGFzcyBIVFRQTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQoSFRUUFNlcnZlckVycm9yKToKKyAgICAiIiIKKyAgICBzdWJjbGFzcyBvZiA6Y2xhc3M6YH5IVFRQU2VydmVyRXJyb3JgCisKKyAgICBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgbmVlZHMgdG8gYXV0aGVudGljYXRlIHRvIGdhaW4KKyAgICBuZXR3b3JrIGFjY2Vzcy4gIEZyb20gUkZDIDY1ODUsICJBZGRpdGlvbmFsIEhUVFAgU3RhdHVzIENvZGVzIi4KKworICAgIGNvZGU6IDUxMSwgdGl0bGU6IE5ldHdvcmsgQXV0aGVudGljYXRpb24gUmVxdWlyZWQKKyAgICAiIiIKKyAgICBjb2RlID0gNTExCisgICAgdGl0bGUgPSAnTmV0d29yayBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCcKKyAgICBleHBsYW5hdGlvbiA9ICgnTmV0d29yayBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZCcpCisKK2NsYXNzIEhUVFBFeGNlcHRpb25NaWRkbGV3YXJlKG9iamVjdCk6CisgICAgIiIiCisgICAgTWlkZGxld2FyZSB0aGF0IGNhdGNoZXMgZXhjZXB0aW9ucyBpbiB0aGUgc3ViLWFwcGxpY2F0aW9uLiAgVGhpcworICAgIGRvZXMgbm90IGNhdGNoIGV4Y2VwdGlvbnMgaW4gdGhlIGFwcF9pdGVyOyBvbmx5IGR1cmluZyB0aGUgaW5pdGlhbAorICAgIGNhbGxpbmcgb2YgdGhlIGFwcGxpY2F0aW9uLgorCisgICAgVGhpcyBzaG91bGQgYmUgcHV0ICp2ZXJ5IGNsb3NlKiB0byBhcHBsaWNhdGlvbnMgdGhhdCBtaWdodCByYWlzZQorICAgIHRoZXNlIGV4Y2VwdGlvbnMuICBUaGlzIHNob3VsZCBub3QgYmUgYXBwbGllZCBnbG9iYWxseTsgbGV0dGluZworICAgICpleHBlY3RlZCogZXhjZXB0aW9ucyByYWlzZSB0aHJvdWdoIHRoZSBXU0dJIHN0YWNrIGlzIGRhbmdlcm91cy4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBsaWNhdGlvbik6CisgICAgICAgIHNlbGYuYXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbgorICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmFwcGxpY2F0aW9uKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorICAgICAgICBleGNlcHQgSFRUUEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhcmVudF9leGNfaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBkZWYgcmVwbF9zdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgICAgIGlmIGV4Y19pbmZvIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGV4Y19pbmZvID0gcGFyZW50X2V4Y19pbmZvCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycywgZXhjX2luZm8pCisgICAgICAgICAgICByZXR1cm4gcGFyZW50X2V4Y19pbmZvWzFdKGVudmlyb24sIHJlcGxfc3RhcnRfcmVzcG9uc2UpCisKK3RyeToKKyAgICBmcm9tIHBhc3RlIGltcG9ydCBodHRwZXhjZXB0aW9ucworZXhjZXB0IEltcG9ydEVycm9yOiAgICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICMgV2l0aG91dCBQYXN0ZSB3ZSBkb24ndCBuZWVkIHRvIGRvIHRoaXMgZml4dXAKKyAgICBwYXNzCitlbHNlOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBmb3IgbmFtZSBpbiBkaXIoaHR0cGV4Y2VwdGlvbnMpOgorICAgICAgICBvYmogPSBnbG9iYWxzKCkuZ2V0KG5hbWUpCisgICAgICAgIGlmIChvYmogYW5kIGlzaW5zdGFuY2Uob2JqLCB0eXBlKSBhbmQgaXNzdWJjbGFzcyhvYmosIEhUVFBFeGNlcHRpb24pCisgICAgICAgICAgICBhbmQgb2JqIGlzIG5vdCBIVFRQRXhjZXB0aW9uCisgICAgICAgICAgICBhbmQgb2JqIGlzIG5vdCBXU0dJSFRUUEV4Y2VwdGlvbik6CisgICAgICAgICAgICBvYmouX19iYXNlc19fID0gb2JqLl9fYmFzZXNfXyArIChnZXRhdHRyKGh0dHBleGNlcHRpb25zLCBuYW1lKSwpCisgICAgZGVsIG5hbWUsIG9iaiwgaHR0cGV4Y2VwdGlvbnMKKworX19hbGxfXyA9IFsnSFRUUEV4Y2VwdGlvbk1pZGRsZXdhcmUnLCAnc3RhdHVzX21hcCddCitzdGF0dXNfbWFwPXt9Citmb3IgbmFtZSwgdmFsdWUgaW4gbGlzdChnbG9iYWxzKCkuaXRlbXMoKSk6CisgICAgaWYgKGlzaW5zdGFuY2UodmFsdWUsICh0eXBlLCBjbGFzc190eXBlcykpIGFuZAorICAgICAgICBpc3N1YmNsYXNzKHZhbHVlLCBIVFRQRXhjZXB0aW9uKQorICAgICAgICBhbmQgbm90IG5hbWUuc3RhcnRzd2l0aCgnXycpKToKKyAgICAgICAgX19hbGxfXy5hcHBlbmQobmFtZSkKKyAgICAgICAgaWYgZ2V0YXR0cih2YWx1ZSwgJ2NvZGUnLCBOb25lKToKKyAgICAgICAgICAgIHN0YXR1c19tYXBbdmFsdWUuY29kZV09dmFsdWUKKyAgICAgICAgaWYgaGFzYXR0cih2YWx1ZSwgJ2V4cGxhbmF0aW9uJyk6CisgICAgICAgICAgICB2YWx1ZS5leHBsYW5hdGlvbiA9ICcgJy5qb2luKHZhbHVlLmV4cGxhbmF0aW9uLnN0cmlwKCkuc3BsaXQoKSkKK2RlbCBuYW1lLCB2YWx1ZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2hlYWRlcnMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvaGVhZGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmY1ZTM0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL2hlYWRlcnMucHkKQEAgLTAsMCArMSwxNTggQEAKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBwaW5nCitmcm9tIHdlYm9iLmNvbXBhdCBpbXBvcnQgKAorICAgIGl0ZXJpdGVtc18sCisgICAgc3RyaW5nX3R5cGVzLAorICAgICkKK2Zyb20gd2Vib2IubXVsdGlkaWN0IGltcG9ydCBNdWx0aURpY3QKKworX19hbGxfXyA9IFsnUmVzcG9uc2VIZWFkZXJzJywgJ0Vudmlyb25IZWFkZXJzJ10KKworY2xhc3MgUmVzcG9uc2VIZWFkZXJzKE11bHRpRGljdCk6CisgICAgIiIiCisgICAgICAgIERpY3Rpb25hcnkgdmlldyBvbiB0aGUgcmVzcG9uc2UgaGVhZGVybGlzdC4KKyAgICAgICAgS2V5cyBhcmUgbm9ybWFsaXplZCBmb3IgY2FzZSBhbmQgd2hpdGVzcGFjZS4KKyAgICAiIiIKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0ga2V5Lmxvd2VyKCkKKyAgICAgICAgZm9yIGssIHYgaW4gcmV2ZXJzZWQoc2VsZi5faXRlbXMpOgorICAgICAgICAgICAgaWYgay5sb3dlcigpID09IGtleToKKyAgICAgICAgICAgICAgICByZXR1cm4gdgorICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCisKKyAgICBkZWYgZ2V0YWxsKHNlbGYsIGtleSk6CisgICAgICAgIGtleSA9IGtleS5sb3dlcigpCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2l0ZW1zOgorICAgICAgICAgICAgaWYgay5sb3dlcigpID09IGtleToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHYpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBtaXhlZChzZWxmKToKKyAgICAgICAgciA9IHNlbGYuZGljdF9vZl9saXN0cygpCisgICAgICAgIGZvciBrZXksIHZhbCBpbiBpdGVyaXRlbXNfKHIpOgorICAgICAgICAgICAgaWYgbGVuKHZhbCkgPT0gMToKKyAgICAgICAgICAgICAgICByW2tleV0gPSB2YWxbMF0KKyAgICAgICAgcmV0dXJuIHIKKworICAgIGRlZiBkaWN0X29mX2xpc3RzKHNlbGYpOgorICAgICAgICByID0ge30KKyAgICAgICAgZm9yIGtleSwgdmFsIGluIGl0ZXJpdGVtc18oc2VsZik6CisgICAgICAgICAgICByLnNldGRlZmF1bHQoa2V5Lmxvd2VyKCksIFtdKS5hcHBlbmQodmFsKQorICAgICAgICByZXR1cm4gcgorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICBub3JtX2tleSA9IGtleS5sb3dlcigpCisgICAgICAgIGl0ZW1zID0gc2VsZi5faXRlbXMKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGl0ZW1zKS0xLCAtMSwgLTEpOgorICAgICAgICAgICAgaWYgaXRlbXNbaV1bMF0ubG93ZXIoKSA9PSBub3JtX2tleToKKyAgICAgICAgICAgICAgICBkZWwgaXRlbXNbaV0KKyAgICAgICAgc2VsZi5faXRlbXMuYXBwZW5kKChrZXksIHZhbHVlKSkKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBrZXkgPSBrZXkubG93ZXIoKQorICAgICAgICBpdGVtcyA9IHNlbGYuX2l0ZW1zCisgICAgICAgIGZvdW5kID0gRmFsc2UKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGl0ZW1zKS0xLCAtMSwgLTEpOgorICAgICAgICAgICAgaWYgaXRlbXNbaV1bMF0ubG93ZXIoKSA9PSBrZXk6CisgICAgICAgICAgICAgICAgZGVsIGl0ZW1zW2ldCisgICAgICAgICAgICAgICAgZm91bmQgPSBUcnVlCisgICAgICAgIGlmIG5vdCBmb3VuZDoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKGtleSkKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0ga2V5Lmxvd2VyKCkKKyAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5faXRlbXM6CisgICAgICAgICAgICBpZiBrLmxvd2VyKCkgPT0ga2V5OgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgaGFzX2tleSA9IF9fY29udGFpbnNfXworCisgICAgZGVmIHNldGRlZmF1bHQoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUpOgorICAgICAgICBjX2tleSA9IGtleS5sb3dlcigpCisgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2l0ZW1zOgorICAgICAgICAgICAgaWYgay5sb3dlcigpID09IGNfa2V5OgorICAgICAgICAgICAgICAgIHJldHVybiB2CisgICAgICAgIHNlbGYuX2l0ZW1zLmFwcGVuZCgoa2V5LCBkZWZhdWx0KSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworICAgIGRlZiBwb3Aoc2VsZiwga2V5LCAqYXJncyk6CisgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInBvcCBleHBlY3RlZCBhdCBtb3N0IDIgYXJndW1lbnRzLCBnb3QgJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIHJlcHIoMSArIGxlbihhcmdzKSkpCisgICAgICAgIGtleSA9IGtleS5sb3dlcigpCisgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihzZWxmLl9pdGVtcykpOgorICAgICAgICAgICAgaWYgc2VsZi5faXRlbXNbaV1bMF0ubG93ZXIoKSA9PSBrZXk6CisgICAgICAgICAgICAgICAgdiA9IHNlbGYuX2l0ZW1zW2ldWzFdCisgICAgICAgICAgICAgICAgZGVsIHNlbGYuX2l0ZW1zW2ldCisgICAgICAgICAgICAgICAgcmV0dXJuIHYKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIHJldHVybiBhcmdzWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCisKKworCisKKworCitrZXkyaGVhZGVyID0geworICAgICdDT05URU5UX1RZUEUnOiAnQ29udGVudC1UeXBlJywKKyAgICAnQ09OVEVOVF9MRU5HVEgnOiAnQ29udGVudC1MZW5ndGgnLAorICAgICdIVFRQX0NPTlRFTlRfVFlQRSc6ICdDb250ZW50X1R5cGUnLAorICAgICdIVFRQX0NPTlRFTlRfTEVOR1RIJzogJ0NvbnRlbnRfTGVuZ3RoJywKK30KKworaGVhZGVyMmtleSA9IGRpY3QoWyh2LnVwcGVyKCksaykgZm9yIChrLHYpIGluIGtleTJoZWFkZXIuaXRlbXMoKV0pCisKK2RlZiBfdHJhbnNfa2V5KGtleSk6CisgICAgaWYgbm90IGlzaW5zdGFuY2Uoa2V5LCBzdHJpbmdfdHlwZXMpOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIGVsaWYga2V5IGluIGtleTJoZWFkZXI6CisgICAgICAgIHJldHVybiBrZXkyaGVhZGVyW2tleV0KKyAgICBlbGlmIGtleS5zdGFydHN3aXRoKCdIVFRQXycpOgorICAgICAgICByZXR1cm4ga2V5WzU6XS5yZXBsYWNlKCdfJywgJy0nKS50aXRsZSgpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworZGVmIF90cmFuc19uYW1lKG5hbWUpOgorICAgIG5hbWUgPSBuYW1lLnVwcGVyKCkKKyAgICBpZiBuYW1lIGluIGhlYWRlcjJrZXk6CisgICAgICAgIHJldHVybiBoZWFkZXIya2V5W25hbWVdCisgICAgcmV0dXJuICdIVFRQXycrbmFtZS5yZXBsYWNlKCctJywgJ18nKQorCitjbGFzcyBFbnZpcm9uSGVhZGVycyhNdXRhYmxlTWFwcGluZyk6CisgICAgIiIiQW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgaGVhZGVycyBhcyBwcmVzZW50IGluIGEKKyAgICBXU0dJIGVudmlyb25tZW50LgorCisgICAgVGhpcyBvYmplY3QgaXMgYSB3cmFwcGVyICh3aXRoIG5vIGludGVybmFsIHN0YXRlKSBmb3IgYSBXU0dJCisgICAgcmVxdWVzdCBvYmplY3QsIHJlcHJlc2VudGluZyB0aGUgQ0dJLXN0eWxlIEhUVFBfKiBrZXlzIGFzIGEKKyAgICBkaWN0aW9uYXJ5LiAgQmVjYXVzZSBhIENHSSBlbnZpcm9ubWVudCBjYW4gb25seSBob2xkIG9uZSB2YWx1ZSBmb3IKKyAgICBlYWNoIGtleSwgdGhpcyBkaWN0aW9uYXJ5IGlzIHNpbmdsZS12YWx1ZWQgKHVubGlrZSBvdXRnb2luZworICAgIGhlYWRlcnMpLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb24pOgorICAgICAgICBzZWxmLmVudmlyb24gPSBlbnZpcm9uCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgaG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uW190cmFuc19uYW1lKGhuYW1lKV0KKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBobmFtZSwgdmFsdWUpOgorICAgICAgICBzZWxmLmVudmlyb25bX3RyYW5zX25hbWUoaG5hbWUpXSA9IHZhbHVlCisKKyAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwgaG5hbWUpOgorICAgICAgICBkZWwgc2VsZi5lbnZpcm9uW190cmFuc19uYW1lKGhuYW1lKV0KKworICAgIGRlZiBrZXlzKHNlbGYpOgorICAgICAgICByZXR1cm4gZmlsdGVyKE5vbmUsIG1hcChfdHJhbnNfa2V5LCBzZWxmLmVudmlyb24pKQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBobmFtZSk6CisgICAgICAgIHJldHVybiBfdHJhbnNfbmFtZShobmFtZSkgaW4gc2VsZi5lbnZpcm9uCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlbihsaXN0KHNlbGYua2V5cygpKSkKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgZm9yIGsgaW4gc2VsZi5rZXlzKCk6CisgICAgICAgICAgICB5aWVsZCBrCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvbXVsdGlkaWN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL211bHRpZGljdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjcwMzc1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL211bHRpZGljdC5weQpAQCAtMCwwICsxLDUwNyBAQAorIyAoYykgMjAwNSBJYW4gQmlja2luZyBhbmQgY29udHJpYnV0b3JzOyB3cml0dGVuIGZvciBQYXN0ZQorIyAoaHR0cDovL3B5dGhvbnBhc3RlLm9yZykgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOgorIyBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAorIiIiCitHaXZlcyBhIG11bHRpLXZhbHVlIGRpY3Rpb25hcnkgb2JqZWN0IChNdWx0aURpY3QpIHBsdXMgc2V2ZXJhbCB3cmFwcGVycworIiIiCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlTWFwcGluZworCitpbXBvcnQgYmluYXNjaWkKK2ltcG9ydCB3YXJuaW5ncworCitmcm9tIHdlYm9iLmNvbXBhdCBpbXBvcnQgKAorICAgIFBZMywKKyAgICBpdGVyaXRlbXNfLAorICAgIGl0ZXJ2YWx1ZXNfLAorICAgIHVybF9lbmNvZGUsCisgICAgKQorCitfX2FsbF9fID0gWydNdWx0aURpY3QnLCAnTmVzdGVkTXVsdGlEaWN0JywgJ05vVmFycycsICdHZXREaWN0J10KKworY2xhc3MgTXVsdGlEaWN0KE11dGFibGVNYXBwaW5nKToKKyAgICAiIiIKKyAgICAgICAgQW4gb3JkZXJlZCBkaWN0aW9uYXJ5IHRoYXQgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzIGZvciBlYWNoIGtleS4KKyAgICAgICAgQWRkcyB0aGUgbWV0aG9kcyBnZXRhbGwsIGdldG9uZSwgbWl4ZWQgYW5kIGV4dGVuZCBhbmQgYWRkIHRvIHRoZSBub3JtYWwKKyAgICAgICAgZGljdGlvbmFyeSBpbnRlcmZhY2UuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBpZiBsZW4oYXJncykgPiAxOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJNdWx0aURpY3QgY2FuIG9ubHkgYmUgY2FsbGVkIHdpdGggb25lIHBvc2l0aW9uYWwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCIpCisgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICBpZiBoYXNhdHRyKGFyZ3NbMF0sICdpdGVyaXRlbXMnKToKKyAgICAgICAgICAgICAgICBpdGVtcyA9IGxpc3QoYXJnc1swXS5pdGVyaXRlbXMoKSkKKyAgICAgICAgICAgIGVsaWYgaGFzYXR0cihhcmdzWzBdLCAnaXRlbXMnKToKKyAgICAgICAgICAgICAgICBpdGVtcyA9IGxpc3QoYXJnc1swXS5pdGVtcygpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpdGVtcyA9IGxpc3QoYXJnc1swXSkKKyAgICAgICAgICAgIHNlbGYuX2l0ZW1zID0gaXRlbXMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2l0ZW1zID0gW10KKyAgICAgICAgaWYga3c6CisgICAgICAgICAgICBzZWxmLl9pdGVtcy5leHRlbmQoa3cuaXRlbXMoKSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB2aWV3X2xpc3QoY2xzLCBsc3QpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIGEgZGljdCB0aGF0IGlzIGEgdmlldyBvbiB0aGUgZ2l2ZW4gbGlzdAorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobHN0LCBsaXN0KToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAiJXMudmlld19saXN0KG9iaikgdGFrZXMgb25seSBhY3R1YWwgbGlzdCBvYmplY3RzLCBub3QgJXIiCisgICAgICAgICAgICAgICAgJSAoY2xzLl9fbmFtZV9fLCBsc3QpKQorICAgICAgICBvYmogPSBjbHMoKQorICAgICAgICBvYmouX2l0ZW1zID0gbHN0CisgICAgICAgIHJldHVybiBvYmoKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2ZpZWxkc3RvcmFnZShjbHMsIGZzKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZSBhIGRpY3QgZnJvbSBhIGNnaS5GaWVsZFN0b3JhZ2UgaW5zdGFuY2UKKyAgICAgICAgIiIiCisgICAgICAgIG9iaiA9IGNscygpCisgICAgICAgICMgZnMubGlzdCBjYW4gYmUgTm9uZSB3aGVuIHRoZXJlJ3Mgbm90aGluZyB0byBwYXJzZQorICAgICAgICBmb3IgZmllbGQgaW4gZnMubGlzdCBvciAoKToKKyAgICAgICAgICAgIGNoYXJzZXQgPSBmaWVsZC50eXBlX29wdGlvbnMuZ2V0KCdjaGFyc2V0JywgJ3V0ZjgnKQorICAgICAgICAgICAgdHJhbnNmZXJfZW5jb2RpbmcgPSBmaWVsZC5oZWFkZXJzLmdldCgnQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZycsIE5vbmUpCisgICAgICAgICAgICBzdXBwb3J0ZWRfdHJhbnNmZXJfZW5jb2RpbmcgPSB7CisgICAgICAgICAgICAgICAgJ2Jhc2U2NCcgOiBiaW5hc2NpaS5hMmJfYmFzZTY0LAorICAgICAgICAgICAgICAgICdxdW90ZWQtcHJpbnRhYmxlJyA6IGJpbmFzY2lpLmEyYl9xcAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgaWYgY2hhcnNldCA9PSAndXRmOCc6CisgICAgICAgICAgICAgICAgICAgIGRlY29kZSA9IGxhbWJkYSBiOiBiCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZGVjb2RlID0gbGFtYmRhIGI6IGIuZW5jb2RlKCd1dGY4JykuZGVjb2RlKGNoYXJzZXQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRlY29kZSA9IGxhbWJkYSBiOiBiLmRlY29kZShjaGFyc2V0KQorICAgICAgICAgICAgaWYgZmllbGQuZmlsZW5hbWU6CisgICAgICAgICAgICAgICAgZmllbGQuZmlsZW5hbWUgPSBkZWNvZGUoZmllbGQuZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgb2JqLmFkZChmaWVsZC5uYW1lLCBmaWVsZCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC52YWx1ZQorICAgICAgICAgICAgICAgIGlmIHRyYW5zZmVyX2VuY29kaW5nIGluIHN1cHBvcnRlZF90cmFuc2Zlcl9lbmNvZGluZzoKKyAgICAgICAgICAgICAgICAgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgYmluYXNjaWkgYWNjZXB0cyBieXRlcworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHN1cHBvcnRlZF90cmFuc2Zlcl9lbmNvZGluZ1t0cmFuc2Zlcl9lbmNvZGluZ10odmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgICAgICAgICAjIGJpbmFzY2lpIHJldHVybnMgYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZGVjb2RlKCd1dGY4JykKKyAgICAgICAgICAgICAgICBvYmouYWRkKGZpZWxkLm5hbWUsIGRlY29kZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiBvYmoKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBmb3IgaywgdiBpbiByZXZlcnNlZChzZWxmLl9pdGVtcyk6CisgICAgICAgICAgICBpZiBrID09IGtleToKKyAgICAgICAgICAgICAgICByZXR1cm4gdgorICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlbCBzZWxmW2tleV0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLl9pdGVtcy5hcHBlbmQoKGtleSwgdmFsdWUpKQorCisgICAgZGVmIGFkZChzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAgIiIiCisgICAgICAgIEFkZCB0aGUga2V5IGFuZCB2YWx1ZSwgbm90IG92ZXJ3cml0aW5nIGFueSBwcmV2aW91cyB2YWx1ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2l0ZW1zLmFwcGVuZCgoa2V5LCB2YWx1ZSkpCisKKyAgICBkZWYgZ2V0YWxsKHNlbGYsIGtleSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIGFsbCB2YWx1ZXMgbWF0Y2hpbmcgdGhlIGtleSAobWF5IGJlIGFuIGVtcHR5IGxpc3QpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gW3YgZm9yIGssIHYgaW4gc2VsZi5faXRlbXMgaWYgayA9PSBrZXldCisKKyAgICBkZWYgZ2V0b25lKHNlbGYsIGtleSk6CisgICAgICAgICIiIgorICAgICAgICBHZXQgb25lIHZhbHVlIG1hdGNoaW5nIHRoZSBrZXksIHJhaXNpbmcgYSBLZXlFcnJvciBpZiBtdWx0aXBsZQorICAgICAgICB2YWx1ZXMgd2VyZSBmb3VuZC4KKyAgICAgICAgIiIiCisgICAgICAgIHYgPSBzZWxmLmdldGFsbChrZXkpCisgICAgICAgIGlmIG5vdCB2OgorICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ0tleSBub3QgZm91bmQ6ICVyJyAlIGtleSkKKyAgICAgICAgaWYgbGVuKHYpID4gMToKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdNdWx0aXBsZSB2YWx1ZXMgbWF0Y2ggJXI6ICVyJyAlIChrZXksIHYpKQorICAgICAgICByZXR1cm4gdlswXQorCisgICAgZGVmIG1peGVkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhIGRpY3Rpb25hcnkgd2hlcmUgdGhlIHZhbHVlcyBhcmUgZWl0aGVyIHNpbmdsZQorICAgICAgICB2YWx1ZXMsIG9yIGEgbGlzdCBvZiB2YWx1ZXMgd2hlbiBhIGtleS92YWx1ZSBhcHBlYXJzIG1vcmUgdGhhbgorICAgICAgICBvbmNlIGluIHRoaXMgZGljdGlvbmFyeS4gIFRoaXMgaXMgc2ltaWxhciB0byB0aGUga2luZCBvZgorICAgICAgICBkaWN0aW9uYXJ5IG9mdGVuIHVzZWQgdG8gcmVwcmVzZW50IHRoZSB2YXJpYWJsZXMgaW4gYSB3ZWIKKyAgICAgICAgcmVxdWVzdC4KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IHt9CisgICAgICAgIG11bHRpID0ge30KKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2VsZi5pdGVtcygpOgorICAgICAgICAgICAgaWYga2V5IGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAjIFdlIGRvIHRoaXMgdG8gbm90IGNsb2JiZXIgYW55IGxpc3RzIHRoYXQgYXJlCisgICAgICAgICAgICAgICAgIyAqYWN0dWFsKiB2YWx1ZXMgaW4gdGhpcyBkaWN0aW9uYXJ5OgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiBtdWx0aToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0uYXBwZW5kKHZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gW3Jlc3VsdFtrZXldLCB2YWx1ZV0KKyAgICAgICAgICAgICAgICAgICAgbXVsdGlba2V5XSA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgZGljdF9vZl9saXN0cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBkaWN0aW9uYXJ5IHdoZXJlIGVhY2gga2V5IGlzIGFzc29jaWF0ZWQgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzLgorICAgICAgICAiIiIKKyAgICAgICAgciA9IHt9CisgICAgICAgIGZvciBrZXksIHZhbCBpbiBzZWxmLml0ZW1zKCk6CisgICAgICAgICAgICByLnNldGRlZmF1bHQoa2V5LCBbXSkuYXBwZW5kKHZhbCkKKyAgICAgICAgcmV0dXJuIHIKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBpdGVtcyA9IHNlbGYuX2l0ZW1zCisgICAgICAgIGZvdW5kID0gRmFsc2UKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGl0ZW1zKS0xLCAtMSwgLTEpOgorICAgICAgICAgICAgaWYgaXRlbXNbaV1bMF0gPT0ga2V5OgorICAgICAgICAgICAgICAgIGRlbCBpdGVtc1tpXQorICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQorICAgICAgICBpZiBub3QgZm91bmQ6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CisgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2l0ZW1zOgorICAgICAgICAgICAgaWYgayA9PSBrZXk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBoYXNfa2V5ID0gX19jb250YWluc19fCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIGRlbCBzZWxmLl9pdGVtc1s6XQorCisgICAgZGVmIGNvcHkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmKQorCisgICAgZGVmIHNldGRlZmF1bHQoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUpOgorICAgICAgICBmb3IgaywgdiBpbiBzZWxmLl9pdGVtczoKKyAgICAgICAgICAgIGlmIGtleSA9PSBrOgorICAgICAgICAgICAgICAgIHJldHVybiB2CisgICAgICAgIHNlbGYuX2l0ZW1zLmFwcGVuZCgoa2V5LCBkZWZhdWx0KSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworICAgIGRlZiBwb3Aoc2VsZiwga2V5LCAqYXJncyk6CisgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInBvcCBleHBlY3RlZCBhdCBtb3N0IDIgYXJndW1lbnRzLCBnb3QgJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgcmVwcigxICsgbGVuKGFyZ3MpKSkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHNlbGYuX2l0ZW1zKSk6CisgICAgICAgICAgICBpZiBzZWxmLl9pdGVtc1tpXVswXSA9PSBrZXk6CisgICAgICAgICAgICAgICAgdiA9IHNlbGYuX2l0ZW1zW2ldWzFdCisgICAgICAgICAgICAgICAgZGVsIHNlbGYuX2l0ZW1zW2ldCisgICAgICAgICAgICAgICAgcmV0dXJuIHYKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIHJldHVybiBhcmdzWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCisKKyAgICBkZWYgcG9waXRlbShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2l0ZW1zLnBvcCgpCisKKyAgICBkZWYgdXBkYXRlKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIGxzdCA9IGFyZ3NbMF0KKyAgICAgICAgICAgIGlmIGxlbihsc3QpICE9IGxlbihkaWN0KGxzdCkpOgorICAgICAgICAgICAgICAgICMgdGhpcyBkb2VzIG5vdCBjYXRjaCB0aGUgY2FzZXMgd2hlcmUgd2Ugb3ZlcndyaXRlIGV4aXN0aW5nCisgICAgICAgICAgICAgICAgIyBrZXlzLCBidXQgdGhvc2Ugd291bGQgcHJvZHVjZSB0b28gbWFueSB3YXJuaW5nCisgICAgICAgICAgICAgICAgbXNnID0gKCJCZWhhdmlvciBvZiBNdWx0aURpY3QudXBkYXRlKCkgaGFzIGNoYW5nZWQgIgorICAgICAgICAgICAgICAgICAgICAiYW5kIG92ZXJ3cml0ZXMgZHVwbGljYXRlIGtleXMuIENvbnNpZGVyIHVzaW5nIC5leHRlbmQoKSIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgd2FybmluZ3Mud2Fybihtc2csIFVzZXJXYXJuaW5nLCBzdGFja2xldmVsPTIpCisgICAgICAgIE11dGFibGVNYXBwaW5nLnVwZGF0ZShzZWxmLCAqYXJncywgKiprdykKKworICAgIGRlZiBleHRlbmQoc2VsZiwgb3RoZXI9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBpZiBvdGhlciBpcyBOb25lOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGhhc2F0dHIob3RoZXIsICdpdGVtcycpOgorICAgICAgICAgICAgc2VsZi5faXRlbXMuZXh0ZW5kKG90aGVyLml0ZW1zKCkpCisgICAgICAgIGVsaWYgaGFzYXR0cihvdGhlciwgJ2tleXMnKToKKyAgICAgICAgICAgIGZvciBrIGluIG90aGVyLmtleXMoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9pdGVtcy5hcHBlbmQoKGssIG90aGVyW2tdKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZvciBrLCB2IGluIG90aGVyOgorICAgICAgICAgICAgICAgIHNlbGYuX2l0ZW1zLmFwcGVuZCgoaywgdikpCisgICAgICAgIGlmIGt3YXJnczoKKyAgICAgICAgICAgIHNlbGYudXBkYXRlKGt3YXJncykKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgaXRlbXMgPSBtYXAoJyglciwgJXIpJy5fX21vZF9fLCBfaGlkZV9wYXNzd2Qoc2VsZi5pdGVtcygpKSkKKyAgICAgICAgcmV0dXJuICclcyhbJXNdKScgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sICcsICcuam9pbihpdGVtcykpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9pdGVtcykKKworICAgICMjCisgICAgIyMgQWxsIHRoZSBpdGVyYXRpb246CisgICAgIyMKKworICAgIGRlZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5faXRlbXM6CisgICAgICAgICAgICB5aWVsZCBrCisgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAga2V5cyA9IGl0ZXJrZXlzCisgICAgZWxzZToKKyAgICAgICAgZGVmIGtleXMoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gW2sgZm9yIGssIHYgaW4gc2VsZi5faXRlbXNdCisKKyAgICBfX2l0ZXJfXyA9IGl0ZXJrZXlzCisKKyAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgorICAgICAgICByZXR1cm4gaXRlcihzZWxmLl9pdGVtcykKKworICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIGl0ZW1zID0gaXRlcml0ZW1zCisgICAgZWxzZToKKyAgICAgICAgZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2l0ZW1zWzpdCisKKyAgICBkZWYgaXRlcnZhbHVlcyhzZWxmKToKKyAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5faXRlbXM6CisgICAgICAgICAgICB5aWVsZCB2CisKKyAgICBpZiBQWTM6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICB2YWx1ZXMgPSBpdGVydmFsdWVzCisgICAgZWxzZToKKyAgICAgICAgZGVmIHZhbHVlcyhzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBbdiBmb3IgaywgdiBpbiBzZWxmLl9pdGVtc10KKworX2R1bW15ID0gb2JqZWN0KCkKKworY2xhc3MgR2V0RGljdChNdWx0aURpY3QpOgorIyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEsIHRyYWNrZXIsIGVuY29kaW5nLCBlcnJvcnMpOgorIyAgICAgICAgIGQgPSBsYW1iZGEgYjogYi5kZWNvZGUoZW5jb2RpbmcsIGVycm9ycykKKyMgICAgICAgICBkYXRhID0gWyhkKGspLCBkKHYpKSBmb3Igayx2IGluIGRhdGFdCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEsIGVudik6CisgICAgICAgIHNlbGYuZW52ID0gZW52CisgICAgICAgIE11bHRpRGljdC5fX2luaXRfXyhzZWxmLCBkYXRhKQorICAgIGRlZiBvbl9jaGFuZ2Uoc2VsZik6CisgICAgICAgIGUgPSBsYW1iZGEgdDogdC5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICBkYXRhID0gWyhlKGspLCBlKHYpKSBmb3Igayx2IGluIHNlbGYuaXRlbXMoKV0KKyAgICAgICAgcXMgPSB1cmxfZW5jb2RlKGRhdGEpCisgICAgICAgIHNlbGYuZW52WydRVUVSWV9TVFJJTkcnXSA9IHFzCisgICAgICAgIHNlbGYuZW52Wyd3ZWJvYi5fcGFyc2VkX3F1ZXJ5X3ZhcnMnXSA9IChzZWxmLCBxcykKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgIE11bHRpRGljdC5fX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKQorICAgICAgICBzZWxmLm9uX2NoYW5nZSgpCisgICAgZGVmIGFkZChzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAgTXVsdGlEaWN0LmFkZChzZWxmLCBrZXksIHZhbHVlKQorICAgICAgICBzZWxmLm9uX2NoYW5nZSgpCisgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIE11bHRpRGljdC5fX2RlbGl0ZW1fXyhzZWxmLCBrZXkpCisgICAgICAgIHNlbGYub25fY2hhbmdlKCkKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIE11bHRpRGljdC5jbGVhcihzZWxmKQorICAgICAgICBzZWxmLm9uX2NoYW5nZSgpCisgICAgZGVmIHNldGRlZmF1bHQoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUpOgorICAgICAgICByZXN1bHQgPSBNdWx0aURpY3Quc2V0ZGVmYXVsdChzZWxmLCBrZXksIGRlZmF1bHQpCisgICAgICAgIHNlbGYub25fY2hhbmdlKCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGRlZiBwb3Aoc2VsZiwga2V5LCAqYXJncyk6CisgICAgICAgIHJlc3VsdCA9IE11bHRpRGljdC5wb3Aoc2VsZiwga2V5LCAqYXJncykKKyAgICAgICAgc2VsZi5vbl9jaGFuZ2UoKQorICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgZGVmIHBvcGl0ZW0oc2VsZik6CisgICAgICAgIHJlc3VsdCA9IE11bHRpRGljdC5wb3BpdGVtKHNlbGYpCisgICAgICAgIHNlbGYub25fY2hhbmdlKCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGRlZiB1cGRhdGUoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgTXVsdGlEaWN0LnVwZGF0ZShzZWxmLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYub25fY2hhbmdlKCkKKyAgICBkZWYgZXh0ZW5kKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIE11bHRpRGljdC5leHRlbmQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLm9uX2NoYW5nZSgpCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBpdGVtcyA9IG1hcCgnKCVyLCAlciknLl9fbW9kX18sIF9oaWRlX3Bhc3N3ZChzZWxmLml0ZW1zKCkpKQorICAgICAgICAjIFRPRE86IEdFVCAtPiBHZXREaWN0CisgICAgICAgIHJldHVybiAnR0VUKFslc10pJyAlICgnLCAnLmpvaW4oaXRlbXMpKQorICAgIGRlZiBjb3B5KHNlbGYpOgorICAgICAgICAjIENvcGllcyBzaG91bGRuJ3QgYmUgdHJhY2tlZAorICAgICAgICByZXR1cm4gTXVsdGlEaWN0KHNlbGYpCisKK2NsYXNzIE5lc3RlZE11bHRpRGljdChNdWx0aURpY3QpOgorICAgICIiIgorICAgIFdyYXBzIHNldmVyYWwgTXVsdGlEaWN0IG9iamVjdHMsIHRyZWF0aW5nIGl0IGFzIG9uZSBsYXJnZSBNdWx0aURpY3QKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqZGljdHMpOgorICAgICAgICBzZWxmLmRpY3RzID0gZGljdHMKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBmb3IgZCBpbiBzZWxmLmRpY3RzOgorICAgICAgICAgICAgdmFsdWUgPSBkLmdldChrZXksIF9kdW1teSkKKyAgICAgICAgICAgIGlmIHZhbHVlIGlzIG5vdCBfZHVtbXk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIHJhaXNlIEtleUVycm9yKGtleSkKKworICAgIGRlZiBfcmVhZG9ubHkoc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICByYWlzZSBLZXlFcnJvcigiTmVzdGVkTXVsdGlEaWN0IG9iamVjdHMgYXJlIHJlYWQtb25seSIpCisgICAgX19zZXRpdGVtX18gPSBfcmVhZG9ubHkKKyAgICBhZGQgPSBfcmVhZG9ubHkKKyAgICBfX2RlbGl0ZW1fXyA9IF9yZWFkb25seQorICAgIGNsZWFyID0gX3JlYWRvbmx5CisgICAgc2V0ZGVmYXVsdCA9IF9yZWFkb25seQorICAgIHBvcCA9IF9yZWFkb25seQorICAgIHBvcGl0ZW0gPSBfcmVhZG9ubHkKKyAgICB1cGRhdGUgPSBfcmVhZG9ubHkKKworICAgIGRlZiBnZXRhbGwoc2VsZiwga2V5KToKKyAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgZm9yIGQgaW4gc2VsZi5kaWN0czoKKyAgICAgICAgICAgIHJlc3VsdC5leHRlbmQoZC5nZXRhbGwoa2V5KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgIyBJbmhlcml0ZWQ6CisgICAgIyBnZXRvbmUKKyAgICAjIG1peGVkCisgICAgIyBkaWN0X29mX2xpc3RzCisKKyAgICBkZWYgY29weShzZWxmKToKKyAgICAgICAgcmV0dXJuIE11bHRpRGljdChzZWxmKQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgorICAgICAgICBmb3IgZCBpbiBzZWxmLmRpY3RzOgorICAgICAgICAgICAgaWYga2V5IGluIGQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBoYXNfa2V5ID0gX19jb250YWluc19fCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgdiA9IDAKKyAgICAgICAgZm9yIGQgaW4gc2VsZi5kaWN0czoKKyAgICAgICAgICAgIHYgKz0gbGVuKGQpCisgICAgICAgIHJldHVybiB2CisKKyAgICBkZWYgX19ub256ZXJvX18oc2VsZik6CisgICAgICAgIGZvciBkIGluIHNlbGYuZGljdHM6CisgICAgICAgICAgICBpZiBkOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKKyAgICAgICAgZm9yIGQgaW4gc2VsZi5kaWN0czoKKyAgICAgICAgICAgIGZvciBpdGVtIGluIGl0ZXJpdGVtc18oZCk6CisgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIGl0ZW1zID0gaXRlcml0ZW1zCisgICAgZWxzZToKKyAgICAgICAgZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVyaXRlbXMoKSkKKworICAgIGRlZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICBmb3IgZCBpbiBzZWxmLmRpY3RzOgorICAgICAgICAgICAgZm9yIHZhbHVlIGluIGl0ZXJ2YWx1ZXNfKGQpOgorICAgICAgICAgICAgICAgIHlpZWxkIHZhbHVlCisgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgdmFsdWVzID0gaXRlcnZhbHVlcworICAgIGVsc2U6CisgICAgICAgIGRlZiB2YWx1ZXMoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gbGlzdChzZWxmLml0ZXJ2YWx1ZXMoKSkKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgZm9yIGQgaW4gc2VsZi5kaWN0czoKKyAgICAgICAgICAgIGZvciBrZXkgaW4gZDoKKyAgICAgICAgICAgICAgICB5aWVsZCBrZXkKKworICAgIGl0ZXJrZXlzID0gX19pdGVyX18KKworICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIGtleXMgPSBpdGVya2V5cworICAgIGVsc2U6CisgICAgICAgIGRlZiBrZXlzKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVya2V5cygpKQorCitjbGFzcyBOb1ZhcnMob2JqZWN0KToKKyAgICAiIiIKKyAgICBSZXByZXNlbnRzIG5vIHZhcmlhYmxlczsgdXNlZCB3aGVuIG5vIHZhcmlhYmxlcworICAgIGFyZSBhcHBsaWNhYmxlLgorCisgICAgVGhpcyBpcyByZWFkLW9ubHkKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZWFzb249Tm9uZSk6CisgICAgICAgIHNlbGYucmVhc29uID0gcmVhc29uIG9yICdOL0EnCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAgcmFpc2UgS2V5RXJyb3IoIk5vIGtleSAlcjogJXMiICUgKGtleSwgc2VsZi5yZWFzb24pKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgcmFpc2UgS2V5RXJyb3IoIkNhbm5vdCBhZGQgdmFyaWFibGVzOiAlcyIgJSBzZWxmLnJlYXNvbikKKworICAgIGFkZCA9IF9fc2V0aXRlbV9fCisgICAgc2V0ZGVmYXVsdCA9IF9fc2V0aXRlbV9fCisgICAgdXBkYXRlID0gX19zZXRpdGVtX18KKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHJhaXNlIEtleUVycm9yKCJObyBrZXlzIHRvIGRlbGV0ZTogJXMiICUgc2VsZi5yZWFzb24pCisgICAgY2xlYXIgPSBfX2RlbGl0ZW1fXworICAgIHBvcCA9IF9fZGVsaXRlbV9fCisgICAgcG9waXRlbSA9IF9fZGVsaXRlbV9fCisKKyAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworICAgIGRlZiBnZXRhbGwoc2VsZiwga2V5KToKKyAgICAgICAgcmV0dXJuIFtdCisKKyAgICBkZWYgZ2V0b25lKHNlbGYsIGtleSk6CisgICAgICAgIHJldHVybiBzZWxmW2tleV0KKworICAgIGRlZiBtaXhlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHt9CisgICAgZGljdF9vZl9saXN0cyA9IG1peGVkCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGhhc19rZXkgPSBfX2NvbnRhaW5zX18KKworICAgIGRlZiBjb3B5KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzwlczogJXM+JyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWFzb24pCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIGNtcCh7fSwgb3RoZXIpCisKKyAgICBkZWYgaXRlcmtleXMoc2VsZik6CisgICAgICAgIHJldHVybiBpdGVyKFtdKQorCisgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAga2V5cyA9IGl0ZXJrZXlzCisgICAgICAgIGl0ZW1zID0gaXRlcmtleXMKKyAgICAgICAgdmFsdWVzID0gaXRlcmtleXMKKyAgICBlbHNlOgorICAgICAgICBkZWYga2V5cyhzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBpdGVtcyA9IGtleXMKKyAgICAgICAgdmFsdWVzID0ga2V5cworICAgICAgICBpdGVydmFsdWVzID0gaXRlcmtleXMKKyAgICAgICAgaXRlcml0ZW1zID0gaXRlcmtleXMKKworICAgIF9faXRlcl9fID0gaXRlcmtleXMKKworZGVmIF9oaWRlX3Bhc3N3ZChpdGVtcyk6CisgICAgZm9yIGssIHYgaW4gaXRlbXM6CisgICAgICAgIGlmICgncGFzc3dvcmQnIGluIGsKKyAgICAgICAgICAgIG9yICdwYXNzd2QnIGluIGsKKyAgICAgICAgICAgIG9yICdwd2QnIGluIGsKKyAgICAgICAgKToKKyAgICAgICAgICAgIHlpZWxkIGssICcqKioqKionCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB5aWVsZCBrLCB2CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvcmVxdWVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9yZXF1ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyNjlhYzUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvcmVxdWVzdC5weQpAQCAtMCwwICsxLDE3NDEgQEAKK2ltcG9ydCBiaW5hc2NpaQoraW1wb3J0IGlvCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgbWltZXR5cGVzCit0cnk6CisgICAgaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBqc29uCitpbXBvcnQgd2FybmluZ3MKKworZnJvbSB3ZWJvYi5hY2NlcHRwYXJzZSBpbXBvcnQgKAorICAgIEFjY2VwdExhbmd1YWdlLAorICAgIEFjY2VwdENoYXJzZXQsCisgICAgTUlNRUFjY2VwdCwKKyAgICBNSU1FTmlsQWNjZXB0LAorICAgIE5vQWNjZXB0LAorICAgIGFjY2VwdF9wcm9wZXJ0eSwKKyAgICApCisKK2Zyb20gd2Vib2IuY2FjaGVjb250cm9sIGltcG9ydCAoCisgICAgQ2FjaGVDb250cm9sLAorICAgIHNlcmlhbGl6ZV9jYWNoZV9jb250cm9sLAorICAgICkKKworZnJvbSB3ZWJvYi5jb21wYXQgaW1wb3J0ICgKKyAgICBQWTMsCisgICAgYnl0ZXNfLAorICAgIGludGVnZXJfdHlwZXMsCisgICAgbmF0aXZlXywKKyAgICBwYXJzZV9xc2xfdGV4dCwKKyAgICByZXJhaXNlLAorICAgIHRleHRfdHlwZSwKKyAgICB1cmxfZW5jb2RlLAorICAgIHVybF9xdW90ZSwKKyAgICB1cmxfdW5xdW90ZSwKKyAgICBxdW90ZV9wbHVzLAorICAgIHVybHBhcnNlLAorICAgIGNnaV9GaWVsZFN0b3JhZ2UKKyAgICApCisKK2Zyb20gd2Vib2IuY29va2llcyBpbXBvcnQgUmVxdWVzdENvb2tpZXMKKworZnJvbSB3ZWJvYi5kZXNjcmlwdG9ycyBpbXBvcnQgKAorICAgIENIQVJTRVRfUkUsCisgICAgU0NIRU1FX1JFLAorICAgIGNvbnZlcnRlciwKKyAgICBjb252ZXJ0ZXJfZGF0ZSwKKyAgICBlbnZpcm9uX2dldHRlciwKKyAgICBlbnZpcm9uX2RlY29kZXIsCisgICAgcGFyc2VfYXV0aCwKKyAgICBwYXJzZV9pbnQsCisgICAgcGFyc2VfaW50X3NhZmUsCisgICAgcGFyc2VfcmFuZ2UsCisgICAgc2VyaWFsaXplX2F1dGgsCisgICAgc2VyaWFsaXplX2lmX3JhbmdlLAorICAgIHNlcmlhbGl6ZV9pbnQsCisgICAgc2VyaWFsaXplX3JhbmdlLAorICAgIHVwYXRoX3Byb3BlcnR5LAorICAgIGRlcHJlY2F0ZWRfcHJvcGVydHksCisgICAgKQorCitmcm9tIHdlYm9iLmV0YWcgaW1wb3J0ICgKKyAgICBJZlJhbmdlLAorICAgIEFueUVUYWcsCisgICAgTm9FVGFnLAorICAgIGV0YWdfcHJvcGVydHksCisgICAgKQorCitmcm9tIHdlYm9iLmhlYWRlcnMgaW1wb3J0IEVudmlyb25IZWFkZXJzCisKK2Zyb20gd2Vib2IubXVsdGlkaWN0IGltcG9ydCAoCisgICAgTmVzdGVkTXVsdGlEaWN0LAorICAgIE11bHRpRGljdCwKKyAgICBOb1ZhcnMsCisgICAgR2V0RGljdCwKKyAgICApCisKK2Zyb20gd2Vib2IudXRpbCBpbXBvcnQgd2Fybl9kZXByZWNhdGlvbgorCitfX2FsbF9fID0gWydCYXNlUmVxdWVzdCcsICdSZXF1ZXN0JywgJ0xlZ2FjeVJlcXVlc3QnXQorCitjbGFzcyBfTm9EZWZhdWx0OgorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICcoTm8gRGVmYXVsdCknCitOb0RlZmF1bHQgPSBfTm9EZWZhdWx0KCkKKworUEFUSF9TQUZFID0gJy86QCYrJCwnCisKK2h0dHBfbWV0aG9kX3Byb2JhYmx5X2hhc19ib2R5ID0gZGljdC5mcm9ta2V5cygKKyAgICAoJ0dFVCcsICdIRUFEJywgJ0RFTEVURScsICdUUkFDRScpLCBGYWxzZSkKK2h0dHBfbWV0aG9kX3Byb2JhYmx5X2hhc19ib2R5LnVwZGF0ZSgKKyAgICBkaWN0LmZyb21rZXlzKCgnUE9TVCcsICdQVVQnLCAnUEFUQ0gnKSwgVHJ1ZSkpCisKK19MQVRJTl9FTkNPRElOR1MgPSAoCisgICAgJ2FzY2lpJywgJ2xhdGluLTEnLCAnbGF0aW4nLCAnbGF0aW5fMScsICdsMScsICdsYXRpbjEnLAorICAgICdpc28tODg1OS0xJywgJ2lzbzg4NTlfMScsICdpc29fODg1OV8xJywgJ2lzbzg4NTknLCAnODg1OScsCisgICAgKQorCitjbGFzcyBCYXNlUmVxdWVzdChvYmplY3QpOgorICAgICMjIFRoZSBsaW1pdCBhZnRlciB3aGljaCByZXF1ZXN0IGJvZGllcyBzaG91bGQgYmUgc3RvcmVkIG9uIGRpc2sKKyAgICAjIyBpZiB0aGV5IGFyZSByZWFkIGluICh1bmRlciB0aGlzLCBhbmQgdGhlIHJlcXVlc3QgYm9keSBpcyBzdG9yZWQKKyAgICAjIyBpbiBtZW1vcnkpOgorICAgIHJlcXVlc3RfYm9keV90ZW1wZmlsZV9saW1pdCA9IDEwKjEwMjQKKworICAgIF9jaGFyc2V0ID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb24sIGNoYXJzZXQ9Tm9uZSwgdW5pY29kZV9lcnJvcnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZGVjb2RlX3BhcmFtX25hbWVzPU5vbmUsICoqa3cpOgorCisgICAgICAgIGlmIHR5cGUoZW52aXJvbikgaXMgbm90IGRpY3Q6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIldTR0kgZW52aXJvbiBtdXN0IGJlIGEgZGljdDsgeW91IHBhc3NlZCAlciIgJSAoZW52aXJvbiwpKQorICAgICAgICBpZiB1bmljb2RlX2Vycm9ycyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgIllvdSB1bmljb2RlX2Vycm9ycz0lciB0byB0aGUgUmVxdWVzdCBjb25zdHJ1Y3Rvci4gIFBhc3NpbmcgYSAiCisgICAgICAgICAgICAgICAgImBgdW5pY29kZV9lcnJvcnNgYCB2YWx1ZSB0byB0aGUgUmVxdWVzdCBpcyBubyBsb25nZXIgIgorICAgICAgICAgICAgICAgICJzdXBwb3J0ZWQgaW4gV2ViT2IgMS4yKy4gIFRoaXMgdmFsdWUgaGFzIGJlZW4gaWdub3JlZCAiICUgKAorICAgICAgICAgICAgICAgICAgICB1bmljb2RlX2Vycm9ycywpLAorICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZworICAgICAgICAgICAgICAgICkKKyAgICAgICAgaWYgZGVjb2RlX3BhcmFtX25hbWVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICAiWW91IHBhc3NlZCBkZWNvZGVfcGFyYW1fbmFtZXM9JXIgdG8gdGhlIFJlcXVlc3QgY29uc3RydWN0b3IuICIKKyAgICAgICAgICAgICAgICAiUGFzc2luZyBhIGBgZGVjb2RlX3BhcmFtX25hbWVzYGAgdmFsdWUgdG8gdGhlIFJlcXVlc3QgIgorICAgICAgICAgICAgICAgICJpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIFdlYk9iIDEuMisuICBUaGlzIHZhbHVlIGhhcyAiCisgICAgICAgICAgICAgICAgImJlZW4gaWdub3JlZCAiICUgKGRlY29kZV9wYXJhbV9uYW1lcywpLAorICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZworICAgICAgICAgICAgICAgICkKKyAgICAgICAgaWYgbm90IF9pc191dGY4KGNoYXJzZXQpOgorICAgICAgICAgICAgcmFpc2UgRGVwcmVjYXRpb25XYXJuaW5nKAorICAgICAgICAgICAgICAgICJZb3UgcGFzc2VkIGNoYXJzZXQ9JXIgdG8gdGhlIFJlcXVlc3QgY29uc3RydWN0b3IuIEFzIG9mICIKKyAgICAgICAgICAgICAgICAiV2ViT2IgMS4yLCBpZiB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzIGEgbm9uLVVURi04IHJlcXVlc3QgIgorICAgICAgICAgICAgICAgICJjaGFyc2V0LCBwbGVhc2UgY29uc3RydWN0IHRoZSByZXF1ZXN0IHdpdGhvdXQgYSBjaGFyc2V0IG9yICIKKyAgICAgICAgICAgICAgICAid2l0aCBhIGNoYXJzZXQgb2YgJ05vbmUnLCAgdGhlbiB1c2UgYGByZXEgPSAiCisgICAgICAgICAgICAgICAgInJlcS5kZWNvZGUoY2hhcnNldClgYCIgJSBjaGFyc2V0CisKKyAgICAgICAgICAgICkKKyAgICAgICAgZCA9IHNlbGYuX19kaWN0X18KKyAgICAgICAgZFsnZW52aXJvbiddID0gZW52aXJvbgorICAgICAgICBpZiBrdzoKKyAgICAgICAgICAgIGNscyA9IHNlbGYuX19jbGFzc19fCisgICAgICAgICAgICBpZiAnbWV0aG9kJyBpbiBrdzoKKyAgICAgICAgICAgICAgICAjIHNldCBtZXRob2QgZmlyc3QsIGJlY2F1c2UgLmJvZHkgc2V0dGVycworICAgICAgICAgICAgICAgICMgZGVwZW5kIG9uIGl0IGZvciBjaGVja3MKKyAgICAgICAgICAgICAgICBzZWxmLm1ldGhvZCA9IGt3LnBvcCgnbWV0aG9kJykKKyAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdy5pdGVtcygpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGNscywgbmFtZSk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICJVbmV4cGVjdGVkIGtleXdvcmQ6ICVzPSVyIiAlIChuYW1lLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCB2YWx1ZSkKKworICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIGRlZiBlbmNnZXQoc2VsZiwga2V5LCBkZWZhdWx0PU5vRGVmYXVsdCwgZW5jYXR0cj1Ob25lKToKKyAgICAgICAgICAgIHZhbCA9IHNlbGYuZW52aXJvbi5nZXQoa2V5LCBkZWZhdWx0KQorICAgICAgICAgICAgaWYgdmFsIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCisgICAgICAgICAgICBpZiB2YWwgaXMgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICAgICAgaWYgbm90IGVuY2F0dHI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbAorICAgICAgICAgICAgZW5jb2RpbmcgPSBnZXRhdHRyKHNlbGYsIGVuY2F0dHIpCisgICAgICAgICAgICBpZiBlbmNvZGluZyBpbiBfTEFUSU5fRU5DT0RJTkdTOiAjIHNob3J0Y3V0CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbAorICAgICAgICAgICAgcmV0dXJuIGJ5dGVzXyh2YWwsICdsYXRpbi0xJykuZGVjb2RlKGVuY29kaW5nKQorICAgIGVsc2U6CisgICAgICAgIGRlZiBlbmNnZXQoc2VsZiwga2V5LCBkZWZhdWx0PU5vRGVmYXVsdCwgZW5jYXR0cj1Ob25lKToKKyAgICAgICAgICAgIHZhbCA9IHNlbGYuZW52aXJvbi5nZXQoa2V5LCBkZWZhdWx0KQorICAgICAgICAgICAgaWYgdmFsIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCisgICAgICAgICAgICBpZiB2YWwgaXMgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICAgICAgaWYgZW5jYXR0ciBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiB2YWwKKyAgICAgICAgICAgIGVuY29kaW5nID0gZ2V0YXR0cihzZWxmLCBlbmNhdHRyKQorICAgICAgICAgICAgcmV0dXJuIHZhbC5kZWNvZGUoZW5jb2RpbmcpCisKKyAgICBkZWYgZW5jc2V0KHNlbGYsIGtleSwgdmFsLCBlbmNhdHRyPU5vbmUpOgorICAgICAgICBpZiBlbmNhdHRyOgorICAgICAgICAgICAgZW5jb2RpbmcgPSBnZXRhdHRyKHNlbGYsIGVuY2F0dHIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbmNvZGluZyA9ICdhc2NpaScKKyAgICAgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgIHNlbGYuZW52aXJvbltrZXldID0gYnl0ZXNfKHZhbCwgZW5jb2RpbmcpLmRlY29kZSgnbGF0aW4tMScpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmVudmlyb25ba2V5XSA9IGJ5dGVzXyh2YWwsIGVuY29kaW5nKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNoYXJzZXQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2NoYXJzZXQgaXMgTm9uZToKKyAgICAgICAgICAgIGNoYXJzZXQgPSBkZXRlY3RfY2hhcnNldChzZWxmLl9jb250ZW50X3R5cGVfcmF3KQorICAgICAgICAgICAgaWYgX2lzX3V0ZjgoY2hhcnNldCk6CisgICAgICAgICAgICAgICAgY2hhcnNldCA9ICdVVEYtOCcKKyAgICAgICAgICAgIHNlbGYuX2NoYXJzZXQgPSBjaGFyc2V0CisgICAgICAgIHJldHVybiBzZWxmLl9jaGFyc2V0CisKKyAgICBAY2hhcnNldC5zZXR0ZXIKKyAgICBkZWYgY2hhcnNldChzZWxmLCBjaGFyc2V0KToKKyAgICAgICAgaWYgX2lzX3V0ZjgoY2hhcnNldCk6CisgICAgICAgICAgICBjaGFyc2V0ID0gJ1VURi04JworICAgICAgICBpZiBjaGFyc2V0ICE9IHNlbGYuY2hhcnNldDoKKyAgICAgICAgICAgIHJhaXNlIERlcHJlY2F0aW9uV2FybmluZygiVXNlIHJlcSA9IHJlcS5kZWNvZGUoJXIpIiAlIGNoYXJzZXQpCisKKyAgICBkZWYgZGVjb2RlKHNlbGYsIGNoYXJzZXQ9Tm9uZSwgZXJyb3JzPSdzdHJpY3QnKToKKyAgICAgICAgY2hhcnNldCA9IGNoYXJzZXQgb3Igc2VsZi5jaGFyc2V0CisgICAgICAgIGlmIGNoYXJzZXQgPT0gJ1VURi04JzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICMgY29va2llcyBhbmQgcGF0aCBhcmUgYWx3YXlzIHV0Zi04CisgICAgICAgIHQgPSBUcmFuc2NvZGVyKGNoYXJzZXQsIGVycm9ycykKKworICAgICAgICBuZXdfY29udGVudF90eXBlID0gQ0hBUlNFVF9SRS5zdWIoJzsgY2hhcnNldD0iVVRGLTgiJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRlbnRfdHlwZV9yYXcpCisgICAgICAgIGNvbnRlbnRfdHlwZSA9IHNlbGYuY29udGVudF90eXBlCisgICAgICAgIHIgPSBzZWxmLl9fY2xhc3NfXygKKyAgICAgICAgICAgIHNlbGYuZW52aXJvbi5jb3B5KCksCisgICAgICAgICAgICBxdWVyeV9zdHJpbmc9dC50cmFuc2NvZGVfcXVlcnkoc2VsZi5xdWVyeV9zdHJpbmcpLAorICAgICAgICAgICAgY29udGVudF90eXBlPW5ld19jb250ZW50X3R5cGUsCisgICAgICAgICkKKworICAgICAgICBpZiBjb250ZW50X3R5cGUgPT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6CisgICAgICAgICAgICByLmJvZHkgPSBieXRlc18odC50cmFuc2NvZGVfcXVlcnkobmF0aXZlXyhyLmJvZHkpKSkKKyAgICAgICAgICAgIHJldHVybiByCisgICAgICAgIGVsaWYgY29udGVudF90eXBlICE9ICdtdWx0aXBhcnQvZm9ybS1kYXRhJzoKKyAgICAgICAgICAgIHJldHVybiByCisKKyAgICAgICAgZnNfZW52aXJvbiA9IHNlbGYuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgZnNfZW52aXJvbi5zZXRkZWZhdWx0KCdDT05URU5UX0xFTkdUSCcsICcwJykKKyAgICAgICAgZnNfZW52aXJvblsnUVVFUllfU1RSSU5HJ10gPSAnJworICAgICAgICBpZiBQWTM6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgZnMgPSBjZ2lfRmllbGRTdG9yYWdlKGZwPXNlbGYuYm9keV9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb249ZnNfZW52aXJvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwX2JsYW5rX3ZhbHVlcz1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPWNoYXJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzPWVycm9ycykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZzID0gY2dpX0ZpZWxkU3RvcmFnZShmcD1zZWxmLmJvZHlfZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uPWZzX2Vudmlyb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkKKworCisgICAgICAgIGZvdXQgPSB0LnRyYW5zY29kZV9mcyhmcywgci5fY29udGVudF90eXBlX3JhdykKKworICAgICAgICAjIHRoaXMgb3JkZXIgaXMgaW1wb3J0YW50LCBiZWNhdXNlIHNldHRpbmcgYm9keV9maWxlCisgICAgICAgICMgcmVzZXRzIGNvbnRlbnRfbGVuZ3RoCisgICAgICAgIHIuYm9keV9maWxlID0gZm91dAorICAgICAgICByLmNvbnRlbnRfbGVuZ3RoID0gZm91dC50ZWxsKCkKKyAgICAgICAgZm91dC5zZWVrKDApCisgICAgICAgIHJldHVybiByCisKKworICAgICMgdGhpcyBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3Qgd2FybmluZ3MgZGVwdGggZm9yIGJvdGgKKyAgICAjIEJhc2VSZXF1ZXN0IGFuZCBSZXF1ZXN0IChkdWUgdG8gQWRob2NBdHRyTWl4aW4uX19zZXRhdHRyX18pCisgICAgX3NldGF0dHJfc3RhY2tsZXZlbCA9IDIKKworICAgIGRlZiBfYm9keV9maWxlX19nZXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICAgICAgSW5wdXQgc3RyZWFtIG9mIHRoZSByZXF1ZXN0ICh3c2dpLmlucHV0KS4KKyAgICAgICAgICAgIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSByZXNldHMgdGhlIGNvbnRlbnRfbGVuZ3RoIGFuZCBzZWVrYWJsZSBmbGFnCisgICAgICAgICAgICAodW5saWtlIHNldHRpbmcgcmVxLmJvZHlfZmlsZV9yYXcpLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuaXNfYm9keV9yZWFkYWJsZToKKyAgICAgICAgICAgIHJldHVybiBpby5CeXRlc0lPKCkKKyAgICAgICAgciA9IHNlbGYuYm9keV9maWxlX3JhdworICAgICAgICBjbGVuID0gc2VsZi5jb250ZW50X2xlbmd0aAorICAgICAgICBpZiBub3Qgc2VsZi5pc19ib2R5X3NlZWthYmxlIGFuZCBjbGVuIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyB3ZSBuZWVkIHRvIHdyYXAgaW5wdXQgaW4gTGltaXRlZExlbmd0aEZpbGUKKyAgICAgICAgICAgICMgYnV0IHdlIGhhdmUgdG8gY2FjaGUgdGhlIGluc3RhbmNlIGFzIHdlbGwKKyAgICAgICAgICAgICMgb3RoZXJ3aXNlIHRoaXMgd291bGQgc3RvcCB3b3JraW5nCisgICAgICAgICAgICAjICgucmVtYWluaW5nIGNvdW50ZXIgd291bGQgcmVzZXQgYmV0d2VlbiBjYWxscyk6CisgICAgICAgICAgICAjICAgcmVxLmJvZHlfZmlsZS5yZWFkKDEwMCkKKyAgICAgICAgICAgICMgICByZXEuYm9keV9maWxlLnJlYWQoMTAwKQorICAgICAgICAgICAgZW52ID0gc2VsZi5lbnZpcm9uCisgICAgICAgICAgICB3cmFwcGVkLCByYXcgPSBlbnYuZ2V0KCd3ZWJvYi5fYm9keV9maWxlJywgKDAsMCkpCisgICAgICAgICAgICBpZiByYXcgaXMgbm90IHI6CisgICAgICAgICAgICAgICAgd3JhcHBlZCA9IExpbWl0ZWRMZW5ndGhGaWxlKHIsIGNsZW4pCisgICAgICAgICAgICAgICAgd3JhcHBlZCA9IGlvLkJ1ZmZlcmVkUmVhZGVyKHdyYXBwZWQpCisgICAgICAgICAgICAgICAgZW52Wyd3ZWJvYi5fYm9keV9maWxlJ10gPSB3cmFwcGVkLCByCisgICAgICAgICAgICByID0gd3JhcHBlZAorICAgICAgICByZXR1cm4gcgorCisgICAgZGVmIF9ib2R5X2ZpbGVfX3NldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGJ5dGVzKToKKyAgICAgICAgICAgIHdhcm5fZGVwcmVjYXRpb24oCisgICAgICAgICAgICAgICAgIlBsZWFzZSB1c2UgcmVxLmJvZHkgPSBiJ2J5dGVzJyBvciByZXEuYm9keV9maWxlID0gZmlsZW9iaiIsCisgICAgICAgICAgICAgICAgJzEuMicsCisgICAgICAgICAgICAgICAgc2VsZi5fc2V0YXR0cl9zdGFja2xldmVsCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYuY29udGVudF9sZW5ndGggPSBOb25lCisgICAgICAgIHNlbGYuYm9keV9maWxlX3JhdyA9IHZhbHVlCisgICAgICAgIHNlbGYuaXNfYm9keV9zZWVrYWJsZSA9IEZhbHNlCisgICAgICAgIHNlbGYuaXNfYm9keV9yZWFkYWJsZSA9IFRydWUKKyAgICBkZWYgX2JvZHlfZmlsZV9fZGVsKHNlbGYpOgorICAgICAgICBzZWxmLmJvZHkgPSBiJycKKyAgICBib2R5X2ZpbGUgPSBwcm9wZXJ0eShfYm9keV9maWxlX19nZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgX2JvZHlfZmlsZV9fc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgIF9ib2R5X2ZpbGVfX2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkb2M9X2JvZHlfZmlsZV9fZ2V0Ll9fZG9jX18pCisgICAgYm9keV9maWxlX3JhdyA9IGVudmlyb25fZ2V0dGVyKCd3c2dpLmlucHV0JykKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYm9keV9maWxlX3NlZWthYmxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIEdldCB0aGUgYm9keSBvZiB0aGUgcmVxdWVzdCAod3NnaS5pbnB1dCkgYXMgYSBzZWVrYWJsZSBmaWxlLWxpa2UKKyAgICAgICAgICAgIG9iamVjdC4gTWlkZGxld2FyZSBhbmQgcm91dGluZyBhcHBsaWNhdGlvbnMgc2hvdWxkIHVzZSB0aGlzCisgICAgICAgICAgICBhdHRyaWJ1dGUgb3ZlciAuYm9keV9maWxlLgorCisgICAgICAgICAgICBJZiB5b3UgYWNjZXNzIHRoaXMgdmFsdWUsIENPTlRFTlRfTEVOR1RIIHdpbGwgYWxzbyBiZSB1cGRhdGVkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuaXNfYm9keV9zZWVrYWJsZToKKyAgICAgICAgICAgIHNlbGYubWFrZV9ib2R5X3NlZWthYmxlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuYm9keV9maWxlX3JhdworCisgICAgdXJsX2VuY29kaW5nID0gZW52aXJvbl9nZXR0ZXIoJ3dlYm9iLnVybF9lbmNvZGluZycsICdVVEYtOCcpCisgICAgc2NoZW1lID0gZW52aXJvbl9nZXR0ZXIoJ3dzZ2kudXJsX3NjaGVtZScpCisgICAgbWV0aG9kID0gZW52aXJvbl9nZXR0ZXIoJ1JFUVVFU1RfTUVUSE9EJywgJ0dFVCcpCisgICAgaHR0cF92ZXJzaW9uID0gZW52aXJvbl9nZXR0ZXIoJ1NFUlZFUl9QUk9UT0NPTCcpCisgICAgY29udGVudF9sZW5ndGggPSBjb252ZXJ0ZXIoCisgICAgICAgIGVudmlyb25fZ2V0dGVyKCdDT05URU5UX0xFTkdUSCcsIE5vbmUsICcxNC4xMycpLAorICAgICAgICBwYXJzZV9pbnRfc2FmZSwgc2VyaWFsaXplX2ludCwgJ2ludCcpCisgICAgcmVtb3RlX3VzZXIgPSBlbnZpcm9uX2dldHRlcignUkVNT1RFX1VTRVInLCBOb25lKQorICAgIHJlbW90ZV9hZGRyID0gZW52aXJvbl9nZXR0ZXIoJ1JFTU9URV9BRERSJywgTm9uZSkKKyAgICBxdWVyeV9zdHJpbmcgPSBlbnZpcm9uX2dldHRlcignUVVFUllfU1RSSU5HJywgJycpCisgICAgc2VydmVyX25hbWUgPSBlbnZpcm9uX2dldHRlcignU0VSVkVSX05BTUUnKQorICAgIHNlcnZlcl9wb3J0ID0gY29udmVydGVyKAorICAgICAgICBlbnZpcm9uX2dldHRlcignU0VSVkVSX1BPUlQnKSwKKyAgICAgICAgcGFyc2VfaW50LCBzZXJpYWxpemVfaW50LCAnaW50JykKKworICAgIHNjcmlwdF9uYW1lID0gZW52aXJvbl9kZWNvZGVyKCdTQ1JJUFRfTkFNRScsICcnLCBlbmNhdHRyPSd1cmxfZW5jb2RpbmcnKQorICAgIHBhdGhfaW5mbyA9IGVudmlyb25fZGVjb2RlcignUEFUSF9JTkZPJywgZW5jYXR0cj0ndXJsX2VuY29kaW5nJykKKworICAgICMgYncgY29tcGF0CisgICAgdXNjcmlwdF9uYW1lID0gc2NyaXB0X25hbWUKKyAgICB1cGF0aF9pbmZvID0gcGF0aF9pbmZvCisKKyAgICBfY29udGVudF90eXBlX3JhdyA9IGVudmlyb25fZ2V0dGVyKCdDT05URU5UX1RZUEUnLCAnJykKKworICAgIGRlZiBfY29udGVudF90eXBlX19nZXQoc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgY29udGVudCB0eXBlLCBidXQgbGVhdmluZyBvZmYgYW55IHBhcmFtZXRlcnMgKGxpa2UKKyAgICAgICAgY2hhcnNldCwgYnV0IGFsc28gdGhpbmdzIGxpa2UgdGhlIHR5cGUgaW4gYGBhcHBsaWNhdGlvbi9hdG9tK3htbDsKKyAgICAgICAgdHlwZT1lbnRyeWBgKQorCisgICAgICAgIElmIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSwgeW91IGNhbiBpbmNsdWRlIHBhcmFtZXRlcnMsIG9yIGlmCisgICAgICAgIHlvdSBkb24ndCBpbmNsdWRlIGFueSBwYXJhbWV0ZXJzIGluIHRoZSB2YWx1ZSB0aGVuIGV4aXN0aW5nCisgICAgICAgIHBhcmFtZXRlcnMgd2lsbCBiZSBwcmVzZXJ2ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fY29udGVudF90eXBlX3Jhdy5zcGxpdCgnOycsIDEpWzBdCisgICAgZGVmIF9jb250ZW50X3R5cGVfX3NldChzZWxmLCB2YWx1ZT1Ob25lKToKKyAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKyAgICAgICAgICAgIGlmICc7JyBub3QgaW4gdmFsdWU6CisgICAgICAgICAgICAgICAgY29udGVudF90eXBlID0gc2VsZi5fY29udGVudF90eXBlX3JhdworICAgICAgICAgICAgICAgIGlmICc7JyBpbiBjb250ZW50X3R5cGU6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9ICc7JyArIGNvbnRlbnRfdHlwZS5zcGxpdCgnOycsIDEpWzFdCisgICAgICAgIHNlbGYuX2NvbnRlbnRfdHlwZV9yYXcgPSB2YWx1ZQorCisgICAgY29udGVudF90eXBlID0gcHJvcGVydHkoX2NvbnRlbnRfdHlwZV9fZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZW50X3R5cGVfX3NldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY29udGVudF90eXBlX19zZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NvbnRlbnRfdHlwZV9fZ2V0Ll9fZG9jX18pCisKKyAgICBfaGVhZGVycyA9IE5vbmUKKworICAgIGRlZiBfaGVhZGVyc19fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQWxsIHRoZSByZXF1ZXN0IGhlYWRlcnMgYXMgYSBjYXNlLWluc2Vuc2l0aXZlIGRpY3Rpb25hcnktbGlrZQorICAgICAgICBvYmplY3QuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9oZWFkZXJzIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9oZWFkZXJzID0gRW52aXJvbkhlYWRlcnMoc2VsZi5lbnZpcm9uKQorICAgICAgICByZXR1cm4gc2VsZi5faGVhZGVycworCisgICAgZGVmIF9oZWFkZXJzX19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLmhlYWRlcnMuY2xlYXIoKQorICAgICAgICBzZWxmLmhlYWRlcnMudXBkYXRlKHZhbHVlKQorCisgICAgaGVhZGVycyA9IHByb3BlcnR5KF9oZWFkZXJzX19nZXQsIF9oZWFkZXJzX19zZXQsIGRvYz1faGVhZGVyc19fZ2V0Ll9fZG9jX18pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY2xpZW50X2FkZHIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUaGUgZWZmZWN0aXZlIGNsaWVudCBJUCBhZGRyZXNzIGFzIGEgc3RyaW5nLiAgSWYgdGhlCisgICAgICAgIGBgSFRUUF9YX0ZPUldBUkRFRF9GT1JgYCBoZWFkZXIgZXhpc3RzIGluIHRoZSBXU0dJIGVudmlyb24sIHRoaXMKKyAgICAgICAgYXR0cmlidXRlIHJldHVybnMgdGhlIGNsaWVudCBJUCBhZGRyZXNzIHByZXNlbnQgaW4gdGhhdCBoZWFkZXIKKyAgICAgICAgKGUuZy4gaWYgdGhlIGhlYWRlciB2YWx1ZSBpcyBgYDE5Mi4xNjguMS4xLCAxOTIuMTY4LjEuMmBgLCB0aGUgdmFsdWUKKyAgICAgICAgd2lsbCBiZSBgYDE5Mi4xNjguMS4xYGApLiBJZiBubyBgYEhUVFBfWF9GT1JXQVJERURfRk9SYGAgaGVhZGVyIGlzCisgICAgICAgIHByZXNlbnQgaW4gdGhlIGVudmlyb24gYXQgYWxsLCB0aGlzIGF0dHJpYnV0ZSB3aWxsIHJldHVybiB0aGUgdmFsdWUKKyAgICAgICAgb2YgdGhlIGBgUkVNT1RFX0FERFJgYCBoZWFkZXIuICBJZiB0aGUgYGBSRU1PVEVfQUREUmBgIGhlYWRlciBpcworICAgICAgICB1bnNldCwgdGhpcyBhdHRyaWJ1dGUgd2lsbCByZXR1cm4gdGhlIHZhbHVlIGBgTm9uZWBgLgorCisgICAgICAgIC4uIHdhcm5pbmc6OgorCisgICAgICAgICAgIEl0IGlzIHBvc3NpYmxlIGZvciB1c2VyIGFnZW50cyB0byBwdXQgc29tZW9uZSBlbHNlJ3MgSVAgb3IganVzdAorICAgICAgICAgICBhbnkgc3RyaW5nIGluIGBgSFRUUF9YX0ZPUldBUkRFRF9GT1JgYCBhcyBpdCBpcyBhIG5vcm1hbCBIVFRQCisgICAgICAgICAgIGhlYWRlci4gRm9yd2FyZCBwcm94aWVzIGNhbiBhbHNvIHByb3ZpZGUgaW5jb3JyZWN0IHZhbHVlcyAocHJpdmF0ZQorICAgICAgICAgICBJUCBhZGRyZXNzZXMgZXRjKS4gIFlvdSBjYW5ub3QgImJsaW5kbHkiIHRydXN0IHRoZSByZXN1bHQgb2YgdGhpcworICAgICAgICAgICBtZXRob2QgdG8gcHJvdmlkZSB5b3Ugd2l0aCB2YWxpZCBkYXRhIHVubGVzcyB5b3UncmUgY2VydGFpbiB0aGF0CisgICAgICAgICAgIGBgSFRUUF9YX0ZPUldBUkRFRF9GT1JgYCBoYXMgdGhlIGNvcnJlY3QgdmFsdWVzLiAgVGhlIFdTR0kgc2VydmVyCisgICAgICAgICAgIG11c3QgYmUgYmVoaW5kIGEgdHJ1c3RlZCBwcm94eSBmb3IgdGhpcyB0byBiZSB0cnVlLgorICAgICAgICAiIiIKKyAgICAgICAgZSA9IHNlbGYuZW52aXJvbgorICAgICAgICB4ZmYgPSBlLmdldCgnSFRUUF9YX0ZPUldBUkRFRF9GT1InKQorICAgICAgICBpZiB4ZmYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhZGRyID0geGZmLnNwbGl0KCcsJylbMF0uc3RyaXAoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYWRkciA9IGUuZ2V0KCdSRU1PVEVfQUREUicpCisgICAgICAgIHJldHVybiBhZGRyCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaG9zdF9wb3J0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIGVmZmVjdGl2ZSBzZXJ2ZXIgcG9ydCBudW1iZXIgYXMgYSBzdHJpbmcuICBJZiB0aGUgYGBIVFRQX0hPU1RgYAorICAgICAgICBoZWFkZXIgZXhpc3RzIGluIHRoZSBXU0dJIGVudmlyb24sIHRoaXMgYXR0cmlidXRlIHJldHVybnMgdGhlIHBvcnQKKyAgICAgICAgbnVtYmVyIHByZXNlbnQgaW4gdGhhdCBoZWFkZXIuIElmIHRoZSBgYEhUVFBfSE9TVGBgIGhlYWRlciBleGlzdHMgYnV0CisgICAgICAgIGNvbnRhaW5zIG5vIGV4cGxpY2l0IHBvcnQgbnVtYmVyOiBpZiB0aGUgV1NHSSB1cmwgc2NoZW1lIGlzICJodHRwcyIgLAorICAgICAgICB0aGlzIGF0dHJpYnV0ZSByZXR1cm5zICI0NDMiLCBpZiB0aGUgV1NHSSB1cmwgc2NoZW1lIGlzICJodHRwIiwgdGhpcworICAgICAgICBhdHRyaWJ1dGUgcmV0dXJucyAiODAiIC4gIElmIG5vIGBgSFRUUF9IT1NUYGAgaGVhZGVyIGlzIHByZXNlbnQgaW4KKyAgICAgICAgdGhlIGVudmlyb24gYXQgYWxsLCB0aGlzIGF0dHJpYnV0ZSB3aWxsIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgIGBgU0VSVkVSX1BPUlRgYCBoZWFkZXIgKHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gYmUgcHJlc2VudCkuCisgICAgICAgICIiIgorICAgICAgICBlID0gc2VsZi5lbnZpcm9uCisgICAgICAgIGhvc3QgPSBlLmdldCgnSFRUUF9IT1NUJykKKyAgICAgICAgaWYgaG9zdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmICc6JyBpbiBob3N0OgorICAgICAgICAgICAgICAgIGhvc3QsIHBvcnQgPSBob3N0LnNwbGl0KCc6JywgMSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdXJsX3NjaGVtZSA9IGVbJ3dzZ2kudXJsX3NjaGVtZSddCisgICAgICAgICAgICAgICAgaWYgdXJsX3NjaGVtZSA9PSAnaHR0cHMnOgorICAgICAgICAgICAgICAgICAgICBwb3J0ID0gJzQ0MycKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwb3J0ID0gJzgwJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcG9ydCA9IGVbJ1NFUlZFUl9QT1JUJ10KKyAgICAgICAgcmV0dXJuIHBvcnQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBob3N0X3VybChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSBVUkwgdGhyb3VnaCB0aGUgaG9zdCAobm8gcGF0aCkKKyAgICAgICAgIiIiCisgICAgICAgIGUgPSBzZWxmLmVudmlyb24KKyAgICAgICAgc2NoZW1lID0gZS5nZXQoJ3dzZ2kudXJsX3NjaGVtZScpCisgICAgICAgIHVybCA9IHNjaGVtZSArICc6Ly8nCisgICAgICAgIGhvc3QgPSBlLmdldCgnSFRUUF9IT1NUJykKKyAgICAgICAgaWYgaG9zdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmICc6JyBpbiBob3N0OgorICAgICAgICAgICAgICAgIGhvc3QsIHBvcnQgPSBob3N0LnNwbGl0KCc6JywgMSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcG9ydCA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGhvc3QgPSBlLmdldCgnU0VSVkVSX05BTUUnKQorICAgICAgICAgICAgcG9ydCA9IGUuZ2V0KCdTRVJWRVJfUE9SVCcpCisgICAgICAgIGlmIHNjaGVtZSA9PSAnaHR0cHMnOgorICAgICAgICAgICAgaWYgcG9ydCA9PSAnNDQzJzoKKyAgICAgICAgICAgICAgICBwb3J0ID0gTm9uZQorICAgICAgICBlbGlmIHNjaGVtZSA9PSAnaHR0cCc6CisgICAgICAgICAgICBpZiBwb3J0ID09ICc4MCc6CisgICAgICAgICAgICAgICAgcG9ydCA9IE5vbmUKKyAgICAgICAgdXJsICs9IGhvc3QKKyAgICAgICAgaWYgcG9ydDoKKyAgICAgICAgICAgIHVybCArPSAnOiVzJyAlIHBvcnQKKyAgICAgICAgcmV0dXJuIHVybAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFwcGxpY2F0aW9uX3VybChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSBVUkwgaW5jbHVkaW5nIFNDUklQVF9OQU1FIChubyBQQVRIX0lORk8gb3IgcXVlcnkgc3RyaW5nKQorICAgICAgICAiIiIKKyAgICAgICAgYnNjcmlwdF9uYW1lID0gYnl0ZXNfKHNlbGYuc2NyaXB0X25hbWUsIHNlbGYudXJsX2VuY29kaW5nKQorICAgICAgICByZXR1cm4gc2VsZi5ob3N0X3VybCArIHVybF9xdW90ZShic2NyaXB0X25hbWUsIFBBVEhfU0FGRSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXRoX3VybChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSBVUkwgaW5jbHVkaW5nIFNDUklQVF9OQU1FIGFuZCBQQVRIX0lORk8sIGJ1dCBub3QgUVVFUllfU1RSSU5HCisgICAgICAgICIiIgorICAgICAgICBicGF0aF9pbmZvID0gYnl0ZXNfKHNlbGYucGF0aF9pbmZvLCBzZWxmLnVybF9lbmNvZGluZykKKyAgICAgICAgcmV0dXJuIHNlbGYuYXBwbGljYXRpb25fdXJsICsgdXJsX3F1b3RlKGJwYXRoX2luZm8sIFBBVEhfU0FGRSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXRoKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIHBhdGggb2YgdGhlIHJlcXVlc3QsIHdpdGhvdXQgaG9zdCBvciBxdWVyeSBzdHJpbmcKKyAgICAgICAgIiIiCisgICAgICAgIGJzY3JpcHQgPSBieXRlc18oc2VsZi5zY3JpcHRfbmFtZSwgc2VsZi51cmxfZW5jb2RpbmcpCisgICAgICAgIGJwYXRoID0gYnl0ZXNfKHNlbGYucGF0aF9pbmZvLCBzZWxmLnVybF9lbmNvZGluZykKKyAgICAgICAgcmV0dXJuIHVybF9xdW90ZShic2NyaXB0LCBQQVRIX1NBRkUpICsgdXJsX3F1b3RlKGJwYXRoLCBQQVRIX1NBRkUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGF0aF9xcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSBwYXRoIG9mIHRoZSByZXF1ZXN0LCB3aXRob3V0IGhvc3QgYnV0IHdpdGggcXVlcnkgc3RyaW5nCisgICAgICAgICIiIgorICAgICAgICBwYXRoID0gc2VsZi5wYXRoCisgICAgICAgIHFzID0gc2VsZi5lbnZpcm9uLmdldCgnUVVFUllfU1RSSU5HJykKKyAgICAgICAgaWYgcXM6CisgICAgICAgICAgICBwYXRoICs9ICc/JyArIHFzCisgICAgICAgIHJldHVybiBwYXRoCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdXJsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIGZ1bGwgcmVxdWVzdCBVUkwsIGluY2x1ZGluZyBRVUVSWV9TVFJJTkcKKyAgICAgICAgIiIiCisgICAgICAgIHVybCA9IHNlbGYucGF0aF91cmwKKyAgICAgICAgcXMgPSBzZWxmLmVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnKQorICAgICAgICBpZiBxczoKKyAgICAgICAgICAgIHVybCArPSAnPycgKyBxcworICAgICAgICByZXR1cm4gdXJsCisKKyAgICBkZWYgcmVsYXRpdmVfdXJsKHNlbGYsIG90aGVyX3VybCwgdG9fYXBwbGljYXRpb249RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVzb2x2ZSBvdGhlcl91cmwgcmVsYXRpdmUgdG8gdGhlIHJlcXVlc3QgVVJMLgorCisgICAgICAgIElmIGBgdG9fYXBwbGljYXRpb25gYCBpcyBUcnVlLCB0aGVuIHJlc29sdmUgaXQgcmVsYXRpdmUgdG8gdGhlCisgICAgICAgIFVSTCB3aXRoIG9ubHkgU0NSSVBUX05BTUUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHRvX2FwcGxpY2F0aW9uOgorICAgICAgICAgICAgdXJsID0gc2VsZi5hcHBsaWNhdGlvbl91cmwKKyAgICAgICAgICAgIGlmIG5vdCB1cmwuZW5kc3dpdGgoJy8nKToKKyAgICAgICAgICAgICAgICB1cmwgKz0gJy8nCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB1cmwgPSBzZWxmLnBhdGhfdXJsCisgICAgICAgIHJldHVybiB1cmxwYXJzZS51cmxqb2luKHVybCwgb3RoZXJfdXJsKQorCisgICAgZGVmIHBhdGhfaW5mb19wb3Aoc2VsZiwgcGF0dGVybj1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgICdQb3BzJyBvZmYgdGhlIG5leHQgc2VnbWVudCBvZiBQQVRIX0lORk8sIHB1c2hpbmcgaXQgb250bworICAgICAgICBTQ1JJUFRfTkFNRSwgYW5kIHJldHVybmluZyB0aGUgcG9wcGVkIHNlZ21lbnQuICBSZXR1cm5zIE5vbmUgaWYKKyAgICAgICAgdGhlcmUgaXMgbm90aGluZyBsZWZ0IG9uIFBBVEhfSU5GTy4KKworICAgICAgICBEb2VzIG5vdCByZXR1cm4gYGAnJ2BgIHdoZW4gdGhlcmUncyBhbiBlbXB0eSBzZWdtZW50IChsaWtlCisgICAgICAgIGBgL3BhdGgvL3BhdGhgYCk7IHRoZXNlIHNlZ21lbnRzIGFyZSBqdXN0IGlnbm9yZWQuCisKKyAgICAgICAgT3B0aW9uYWwgYGBwYXR0ZXJuYGAgYXJndW1lbnQgaXMgYSByZWdleHAgdG8gbWF0Y2ggdGhlIHJldHVybiB2YWx1ZQorICAgICAgICBiZWZvcmUgcmV0dXJuaW5nLiBJZiB0aGVyZSBpcyBubyBtYXRjaCwgbm8gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUKKyAgICAgICAgcmVxdWVzdCBhbmQgTm9uZSBpcyByZXR1cm5lZC4KKyAgICAgICAgIiIiCisgICAgICAgIHBhdGggPSBzZWxmLnBhdGhfaW5mbworICAgICAgICBpZiBub3QgcGF0aDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHNsYXNoZXMgPSAnJworICAgICAgICB3aGlsZSBwYXRoLnN0YXJ0c3dpdGgoJy8nKToKKyAgICAgICAgICAgIHNsYXNoZXMgKz0gJy8nCisgICAgICAgICAgICBwYXRoID0gcGF0aFsxOl0KKyAgICAgICAgaWR4ID0gcGF0aC5maW5kKCcvJykKKyAgICAgICAgaWYgaWR4ID09IC0xOgorICAgICAgICAgICAgaWR4ID0gbGVuKHBhdGgpCisgICAgICAgIHIgPSBwYXRoWzppZHhdCisgICAgICAgIGlmIHBhdHRlcm4gaXMgTm9uZSBvciByZS5tYXRjaChwYXR0ZXJuLCByKToKKyAgICAgICAgICAgIHNlbGYuc2NyaXB0X25hbWUgKz0gc2xhc2hlcyArIHIKKyAgICAgICAgICAgIHNlbGYucGF0aF9pbmZvID0gcGF0aFtpZHg6XQorICAgICAgICAgICAgcmV0dXJuIHIKKworICAgIGRlZiBwYXRoX2luZm9fcGVlayhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIG5leHQgc2VnbWVudCBvbiBQQVRIX0lORk8sIG9yIE5vbmUgaWYgdGhlcmUgaXMgbm8KKyAgICAgICAgbmV4dCBzZWdtZW50LiAgRG9lc24ndCBtb2RpZnkgdGhlIGVudmlyb25tZW50LgorICAgICAgICAiIiIKKyAgICAgICAgcGF0aCA9IHNlbGYucGF0aF9pbmZvCisgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcGF0aCA9IHBhdGgubHN0cmlwKCcvJykKKyAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoJy8nLCAxKVswXQorCisgICAgZGVmIF91cmx2YXJzX19nZXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYW55ICpuYW1lZCogdmFyaWFibGVzIG1hdGNoZWQgaW4gdGhlIFVSTC4KKworICAgICAgICBUYWtlcyB2YWx1ZXMgZnJvbSBgYGVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ11gYC4KKyAgICAgICAgU3lzdGVtcyBsaWtlIGBgcm91dGVzYGAgc2V0IHRoaXMgdmFsdWUuCisgICAgICAgICIiIgorICAgICAgICBpZiAncGFzdGUudXJsdmFycycgaW4gc2VsZi5lbnZpcm9uOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW52aXJvblsncGFzdGUudXJsdmFycyddCisgICAgICAgIGVsaWYgJ3dzZ2lvcmcucm91dGluZ19hcmdzJyBpbiBzZWxmLmVudmlyb246CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uWyd3c2dpb3JnLnJvdXRpbmdfYXJncyddWzFdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQgPSB7fQorICAgICAgICAgICAgc2VsZi5lbnZpcm9uWyd3c2dpb3JnLnJvdXRpbmdfYXJncyddID0gKCgpLCByZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgX3VybHZhcnNfX3NldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIGVudmlyb24gPSBzZWxmLmVudmlyb24KKyAgICAgICAgaWYgJ3dzZ2lvcmcucm91dGluZ19hcmdzJyBpbiBlbnZpcm9uOgorICAgICAgICAgICAgZW52aXJvblsnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnXSA9ICgKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvblsnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnXVswXSwgdmFsdWUpCisgICAgICAgICAgICBpZiAncGFzdGUudXJsdmFycycgaW4gZW52aXJvbjoKKyAgICAgICAgICAgICAgICBkZWwgZW52aXJvblsncGFzdGUudXJsdmFycyddCisgICAgICAgIGVsaWYgJ3Bhc3RlLnVybHZhcnMnIGluIGVudmlyb246CisgICAgICAgICAgICBlbnZpcm9uWydwYXN0ZS51cmx2YXJzJ10gPSB2YWx1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW52aXJvblsnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnXSA9ICgoKSwgdmFsdWUpCisKKyAgICBkZWYgX3VybHZhcnNfX2RlbChzZWxmKToKKyAgICAgICAgaWYgJ3Bhc3RlLnVybHZhcnMnIGluIHNlbGYuZW52aXJvbjoKKyAgICAgICAgICAgIGRlbCBzZWxmLmVudmlyb25bJ3Bhc3RlLnVybHZhcnMnXQorICAgICAgICBpZiAnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnIGluIHNlbGYuZW52aXJvbjoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ11bMF06CisgICAgICAgICAgICAgICAgZGVsIHNlbGYuZW52aXJvblsnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ10gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ11bMF0sIHt9KQorCisgICAgdXJsdmFycyA9IHByb3BlcnR5KF91cmx2YXJzX19nZXQsCisgICAgICAgICAgICAgICAgICAgICAgIF91cmx2YXJzX19zZXQsCisgICAgICAgICAgICAgICAgICAgICAgIF91cmx2YXJzX19kZWwsCisgICAgICAgICAgICAgICAgICAgICAgIGRvYz1fdXJsdmFyc19fZ2V0Ll9fZG9jX18pCisKKyAgICBkZWYgX3VybGFyZ3NfX2dldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhbnkgKnBvc2l0aW9uYWwqIHZhcmlhYmxlcyBtYXRjaGVkIGluIHRoZSBVUkwuCisKKyAgICAgICAgVGFrZXMgdmFsdWVzIGZyb20gYGBlbnZpcm9uWyd3c2dpb3JnLnJvdXRpbmdfYXJncyddYGAuCisgICAgICAgIFN5c3RlbXMgbGlrZSBgYHJvdXRlc2BgIHNldCB0aGlzIHZhbHVlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgJ3dzZ2lvcmcucm91dGluZ19hcmdzJyBpbiBzZWxmLmVudmlyb246CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uWyd3c2dpb3JnLnJvdXRpbmdfYXJncyddWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFNpbmNlIHlvdSBjYW4ndCB1cGRhdGUgdGhpcyB2YWx1ZSBpbi1wbGFjZSwgd2UgZG9uJ3QgbmVlZAorICAgICAgICAgICAgIyB0byBzZXQgdGhlIGtleSBpbiB0aGUgZW52aXJvbm1lbnQKKyAgICAgICAgICAgIHJldHVybiAoKQorCisgICAgZGVmIF91cmxhcmdzX19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBlbnZpcm9uID0gc2VsZi5lbnZpcm9uCisgICAgICAgIGlmICdwYXN0ZS51cmx2YXJzJyBpbiBlbnZpcm9uOgorICAgICAgICAgICAgIyBTb21lIG92ZXJsYXAgYmV0d2VlbiB0aGlzIGFuZCB3c2dpb3JnLnJvdXRpbmdfYXJnczsgd2UgbmVlZAorICAgICAgICAgICAgIyB3c2dpb3JnLnJvdXRpbmdfYXJncyB0byBtYWtlIHRoaXMgd29yaworICAgICAgICAgICAgcm91dGluZ19hcmdzID0gKHZhbHVlLCBlbnZpcm9uLnBvcCgncGFzdGUudXJsdmFycycpKQorICAgICAgICBlbGlmICd3c2dpb3JnLnJvdXRpbmdfYXJncycgaW4gZW52aXJvbjoKKyAgICAgICAgICAgIHJvdXRpbmdfYXJncyA9ICh2YWx1ZSwgZW52aXJvblsnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnXVsxXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJvdXRpbmdfYXJncyA9ICh2YWx1ZSwge30pCisgICAgICAgIGVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ10gPSByb3V0aW5nX2FyZ3MKKworICAgIGRlZiBfdXJsYXJnc19fZGVsKHNlbGYpOgorICAgICAgICBpZiAnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnIGluIHNlbGYuZW52aXJvbjoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ11bMV06CisgICAgICAgICAgICAgICAgZGVsIHNlbGYuZW52aXJvblsnd3NnaW9yZy5yb3V0aW5nX2FyZ3MnXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmVudmlyb25bJ3dzZ2lvcmcucm91dGluZ19hcmdzJ10gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAoKSwgc2VsZi5lbnZpcm9uWyd3c2dpb3JnLnJvdXRpbmdfYXJncyddWzFdKQorCisgICAgdXJsYXJncyA9IHByb3BlcnR5KF91cmxhcmdzX19nZXQsCisgICAgICAgICAgICAgICAgICAgICAgIF91cmxhcmdzX19zZXQsCisgICAgICAgICAgICAgICAgICAgICAgIF91cmxhcmdzX19kZWwsCisgICAgICAgICAgICAgICAgICAgICAgIF91cmxhcmdzX19nZXQuX19kb2NfXykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc194aHIoc2VsZik6CisgICAgICAgICIiIklzIFgtUmVxdWVzdGVkLVdpdGggaGVhZGVyIHByZXNlbnQgYW5kIGVxdWFsIHRvIGBgWE1MSHR0cFJlcXVlc3RgYD8KKworICAgICAgICBOb3RlOiB0aGlzIGlzbid0IHNldCBieSBldmVyeSBYTUxIdHRwUmVxdWVzdCByZXF1ZXN0LCBpdCBpcworICAgICAgICBvbmx5IHNldCBpZiB5b3UgYXJlIHVzaW5nIGEgSmF2YXNjcmlwdCBsaWJyYXJ5IHRoYXQgc2V0cyBpdAorICAgICAgICAob3IgeW91IHNldCB0aGUgaGVhZGVyIHlvdXJzZWxmIG1hbnVhbGx5KS4gIEN1cnJlbnRseQorICAgICAgICBQcm90b3R5cGUgYW5kIGpRdWVyeSBhcmUga25vd24gdG8gc2V0IHRoaXMgaGVhZGVyLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uLmdldCgnSFRUUF9YX1JFUVVFU1RFRF9XSVRIJywgJycpID09ICdYTUxIdHRwUmVxdWVzdCcKKworICAgIGRlZiBfaG9zdF9fZ2V0KHNlbGYpOgorICAgICAgICAiIiJIb3N0IG5hbWUgcHJvdmlkZWQgaW4gSFRUUF9IT1NULCB3aXRoIGZhbGwtYmFjayB0byBTRVJWRVJfTkFNRSIiIgorICAgICAgICBpZiAnSFRUUF9IT1NUJyBpbiBzZWxmLmVudmlyb246CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uWydIVFRQX0hPU1QnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICclKFNFUlZFUl9OQU1FKXM6JShTRVJWRVJfUE9SVClzJyAlIHNlbGYuZW52aXJvbgorICAgIGRlZiBfaG9zdF9fc2V0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5lbnZpcm9uWydIVFRQX0hPU1QnXSA9IHZhbHVlCisgICAgZGVmIF9ob3N0X19kZWwoc2VsZik6CisgICAgICAgIGlmICdIVFRQX0hPU1QnIGluIHNlbGYuZW52aXJvbjoKKyAgICAgICAgICAgIGRlbCBzZWxmLmVudmlyb25bJ0hUVFBfSE9TVCddCisgICAgaG9zdCA9IHByb3BlcnR5KF9ob3N0X19nZXQsIF9ob3N0X19zZXQsIF9ob3N0X19kZWwsIGRvYz1faG9zdF9fZ2V0Ll9fZG9jX18pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZG9tYWluKHNlbGYpOgorICAgICAgICAiIiIgUmV0dXJucyB0aGUgZG9tYWluIHBvcnRpb24gb2YgdGhlIGhvc3QgdmFsdWUuICBFcXVpdmFsZW50IHRvOgorCisgICAgICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICAgICBkb21haW4gPSByZXF1ZXN0Lmhvc3QKKyAgICAgICAgICAgaWYgJzonIGluIGRvbWFpbjoKKyAgICAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5zcGxpdCgnOicsIDEpWzBdCisKKyAgICAgICAgVGhpcyB3aWxsIGJlIGVxdWl2YWxlbnQgdG8gdGhlIGRvbWFpbiBwb3J0aW9uIG9mIHRoZSBgYEhUVFBfSE9TVGBgCisgICAgICAgIHZhbHVlIGluIHRoZSBlbnZpcm9ubWVudCBpZiBpdCBleGlzdHMsIG9yIHRoZSBgYFNFUlZFUl9OQU1FYGAgdmFsdWUgaW4KKyAgICAgICAgdGhlIGVudmlyb25tZW50IGlmIGl0IGRvZXNuJ3QuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGVudmlyb25tZW50CisgICAgICAgIGNvbnRhaW5zIGFuIGBgSFRUUF9IT1NUYGAgdmFsdWUgb2YgYGBmb28uZXhhbXBsZS5jb206ODAwMGBgLAorICAgICAgICBgYHJlcXVlc3QuZG9tYWluYGAgd2lsbCByZXR1cm4gYGBmb28uZXhhbXBsZS5jb21gYC4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyB2YWx1ZSBjYW5ub3QgYmUgKnNldCogb24gdGhlIHJlcXVlc3QuICBUbyBzZXQgdGhlIGhvc3QKKyAgICAgICAgdmFsdWUgdXNlIDptZXRoOmB3ZWJvYi5yZXF1ZXN0LlJlcXVlc3QuaG9zdGAgaW5zdGVhZC4KKyAgICAgICAgIiIiCisgICAgICAgIGRvbWFpbiA9IHNlbGYuaG9zdAorICAgICAgICBpZiAnOicgaW4gZG9tYWluOgorICAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5zcGxpdCgnOicsIDEpWzBdCisgICAgICAgIHJldHVybiBkb21haW4KKworICAgIGRlZiBfYm9keV9fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHRoZSBjb250ZW50IG9mIHRoZSByZXF1ZXN0IGJvZHkuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgc2VsZi5pc19ib2R5X3JlYWRhYmxlOgorICAgICAgICAgICAgcmV0dXJuIGInJworICAgICAgICBzZWxmLm1ha2VfYm9keV9zZWVrYWJsZSgpICMgd2UgbmVlZCB0aGlzIHRvIGhhdmUgY29udGVudF9sZW5ndGgKKyAgICAgICAgciA9IHNlbGYuYm9keV9maWxlLnJlYWQoc2VsZi5jb250ZW50X2xlbmd0aCkKKyAgICAgICAgc2VsZi5ib2R5X2ZpbGVfcmF3LnNlZWsoMCkKKyAgICAgICAgcmV0dXJuIHIKKyAgICBkZWYgX2JvZHlfX3NldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICB2YWx1ZSA9IGInJworICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgYnl0ZXMpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJZb3UgY2FuIG9ubHkgc2V0IFJlcXVlc3QuYm9keSB0byBieXRlcyAobm90ICVyKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSB0eXBlKHZhbHVlKSkKKyAgICAgICAgaWYgbm90IGh0dHBfbWV0aG9kX3Byb2JhYmx5X2hhc19ib2R5LmdldChzZWxmLm1ldGhvZCwgVHJ1ZSk6CisgICAgICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxmLmJvZHlfZmlsZV9yYXcgPSBpby5CeXRlc0lPKCkKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCA9IGxlbih2YWx1ZSkKKyAgICAgICAgc2VsZi5ib2R5X2ZpbGVfcmF3ID0gaW8uQnl0ZXNJTyh2YWx1ZSkKKyAgICAgICAgc2VsZi5pc19ib2R5X3NlZWthYmxlID0gVHJ1ZQorICAgIGRlZiBfYm9keV9fZGVsKHNlbGYpOgorICAgICAgICBzZWxmLmJvZHkgPSBiJycKKyAgICBib2R5ID0gcHJvcGVydHkoX2JvZHlfX2dldCwgX2JvZHlfX3NldCwgX2JvZHlfX2RlbCwgZG9jPV9ib2R5X19nZXQuX19kb2NfXykKKworICAgIGRlZiBfanNvbl9ib2R5X19nZXQoc2VsZik6CisgICAgICAgICIiIkFjY2VzcyB0aGUgYm9keSBvZiB0aGUgcmVxdWVzdCBhcyBKU09OIiIiCisgICAgICAgIHJldHVybiBqc29uLmxvYWRzKHNlbGYuYm9keS5kZWNvZGUoc2VsZi5jaGFyc2V0KSkKKworICAgIGRlZiBfanNvbl9ib2R5X19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLmJvZHkgPSBqc29uLmR1bXBzKHZhbHVlLCBzZXBhcmF0b3JzPSgnLCcsICc6JykpLmVuY29kZShzZWxmLmNoYXJzZXQpCisKKyAgICBkZWYgX2pzb25fYm9keV9fZGVsKHNlbGYpOgorICAgICAgICBkZWwgc2VsZi5ib2R5CisKKyAgICBqc29uID0ganNvbl9ib2R5ID0gcHJvcGVydHkoX2pzb25fYm9keV9fZ2V0LCBfanNvbl9ib2R5X19zZXQsIF9qc29uX2JvZHlfX2RlbCkKKworICAgIGRlZiBfdGV4dF9fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0L3NldCB0aGUgdGV4dCB2YWx1ZSBvZiB0aGUgYm9keQorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuY2hhcnNldDoKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKAorICAgICAgICAgICAgICAgICJZb3UgY2Fubm90IGFjY2VzcyBSZXF1ZXN0LnRleHQgdW5sZXNzIGNoYXJzZXQgaXMgc2V0IikKKyAgICAgICAgYm9keSA9IHNlbGYuYm9keQorICAgICAgICByZXR1cm4gYm9keS5kZWNvZGUoc2VsZi5jaGFyc2V0KQorCisgICAgZGVmIF90ZXh0X19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiBub3Qgc2VsZi5jaGFyc2V0OgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoCisgICAgICAgICAgICAgICAgIllvdSBjYW5ub3QgYWNjZXNzIFJlc3BvbnNlLnRleHQgdW5sZXNzIGNoYXJzZXQgaXMgc2V0IikKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIllvdSBjYW4gb25seSBzZXQgUmVxdWVzdC50ZXh0IHRvIGEgdW5pY29kZSBzdHJpbmcgIgorICAgICAgICAgICAgICAgICIobm90ICVzKSIgJSB0eXBlKHZhbHVlKSkKKyAgICAgICAgc2VsZi5ib2R5ID0gdmFsdWUuZW5jb2RlKHNlbGYuY2hhcnNldCkKKworICAgIGRlZiBfdGV4dF9fZGVsKHNlbGYpOgorICAgICAgICBkZWwgc2VsZi5ib2R5CisKKyAgICB0ZXh0ID0gcHJvcGVydHkoX3RleHRfX2dldCwgX3RleHRfX3NldCwgX3RleHRfX2RlbCwgZG9jPV90ZXh0X19nZXQuX19kb2NfXykKKworCisgICAgQHByb3BlcnR5CisgICAgZGVmIFBPU1Qoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSBNdWx0aURpY3QgY29udGFpbmluZyBhbGwgdGhlIHZhcmlhYmxlcyBmcm9tIGEgZm9ybQorICAgICAgICByZXF1ZXN0LiBSZXR1cm5zIGFuIGVtcHR5IGRpY3QtbGlrZSBvYmplY3QgZm9yIG5vbi1mb3JtIHJlcXVlc3RzLgorCisgICAgICAgIEZvcm0gcmVxdWVzdHMgYXJlIHR5cGljYWxseSBQT1NUIHJlcXVlc3RzLCBob3dldmVyIFBVVCAmIFBBVENIIHJlcXVlc3RzCisgICAgICAgIHdpdGggYW4gYXBwcm9wcmlhdGUgQ29udGVudC1UeXBlIGFyZSBhbHNvIHN1cHBvcnRlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGVudiA9IHNlbGYuZW52aXJvbgorICAgICAgICBpZiBzZWxmLm1ldGhvZCBub3QgaW4gKCdQT1NUJywgJ1BVVCcsICdQQVRDSCcpOgorICAgICAgICAgICAgcmV0dXJuIE5vVmFycygnTm90IGEgZm9ybSByZXF1ZXN0JykKKyAgICAgICAgaWYgJ3dlYm9iLl9wYXJzZWRfcG9zdF92YXJzJyBpbiBlbnY6CisgICAgICAgICAgICB2YXJzLCBib2R5X2ZpbGUgPSBlbnZbJ3dlYm9iLl9wYXJzZWRfcG9zdF92YXJzJ10KKyAgICAgICAgICAgIGlmIGJvZHlfZmlsZSBpcyBzZWxmLmJvZHlfZmlsZV9yYXc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcnMKKyAgICAgICAgY29udGVudF90eXBlID0gc2VsZi5jb250ZW50X3R5cGUKKyAgICAgICAgaWYgKChzZWxmLm1ldGhvZCA9PSAnUFVUJyBhbmQgbm90IGNvbnRlbnRfdHlwZSkKKyAgICAgICAgICAgIG9yIGNvbnRlbnRfdHlwZSBub3QgaW4KKyAgICAgICAgICAgICAgICAoJycsCisgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLAorICAgICAgICAgICAgICAgICAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpCisgICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAjIE5vdCBhbiBIVE1MIGZvcm0gc3VibWlzc2lvbgorICAgICAgICAgICAgcmV0dXJuIE5vVmFycygnTm90IGFuIEhUTUwgZm9ybSBzdWJtaXNzaW9uIChDb250ZW50LVR5cGU6ICVzKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJSBjb250ZW50X3R5cGUpCisgICAgICAgIHNlbGYuX2NoZWNrX2NoYXJzZXQoKQorCisgICAgICAgIHNlbGYubWFrZV9ib2R5X3NlZWthYmxlKCkKKyAgICAgICAgc2VsZi5ib2R5X2ZpbGVfcmF3LnNlZWsoMCkKKworICAgICAgICBmc19lbnZpcm9uID0gZW52LmNvcHkoKQorICAgICAgICAjIEZpZWxkU3RvcmFnZSBhc3N1bWVzIGEgbWlzc2luZyBDT05URU5UX0xFTkdUSCwgYnV0IGEKKyAgICAgICAgIyBkZWZhdWx0IG9mIDAgaXMgYmV0dGVyOgorICAgICAgICBmc19lbnZpcm9uLnNldGRlZmF1bHQoJ0NPTlRFTlRfTEVOR1RIJywgJzAnKQorICAgICAgICBmc19lbnZpcm9uWydRVUVSWV9TVFJJTkcnXSA9ICcnCisgICAgICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICBmcyA9IGNnaV9GaWVsZFN0b3JhZ2UoCisgICAgICAgICAgICAgICAgZnA9c2VsZi5ib2R5X2ZpbGUsCisgICAgICAgICAgICAgICAgZW52aXJvbj1mc19lbnZpcm9uLAorICAgICAgICAgICAgICAgIGtlZXBfYmxhbmtfdmFsdWVzPVRydWUsCisgICAgICAgICAgICAgICAgZW5jb2Rpbmc9J3V0ZjgnKQorICAgICAgICAgICAgdmFycyA9IE11bHRpRGljdC5mcm9tX2ZpZWxkc3RvcmFnZShmcykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZzID0gY2dpX0ZpZWxkU3RvcmFnZSgKKyAgICAgICAgICAgICAgICBmcD1zZWxmLmJvZHlfZmlsZSwKKyAgICAgICAgICAgICAgICBlbnZpcm9uPWZzX2Vudmlyb24sCisgICAgICAgICAgICAgICAga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkKKyAgICAgICAgICAgIHZhcnMgPSBNdWx0aURpY3QuZnJvbV9maWVsZHN0b3JhZ2UoZnMpCisKKyAgICAgICAgZW52Wyd3ZWJvYi5fcGFyc2VkX3Bvc3RfdmFycyddID0gKHZhcnMsIHNlbGYuYm9keV9maWxlX3JhdykKKyAgICAgICAgcmV0dXJuIHZhcnMKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBHRVQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSBNdWx0aURpY3QgY29udGFpbmluZyBhbGwgdGhlIHZhcmlhYmxlcyBmcm9tIHRoZQorICAgICAgICBRVUVSWV9TVFJJTkcuCisgICAgICAgICIiIgorICAgICAgICBlbnYgPSBzZWxmLmVudmlyb24KKyAgICAgICAgc291cmNlID0gZW52LmdldCgnUVVFUllfU1RSSU5HJywgJycpCisgICAgICAgIGlmICd3ZWJvYi5fcGFyc2VkX3F1ZXJ5X3ZhcnMnIGluIGVudjoKKyAgICAgICAgICAgIHZhcnMsIHFzID0gZW52Wyd3ZWJvYi5fcGFyc2VkX3F1ZXJ5X3ZhcnMnXQorICAgICAgICAgICAgaWYgcXMgPT0gc291cmNlOgorICAgICAgICAgICAgICAgIHJldHVybiB2YXJzCisKKyAgICAgICAgZGF0YSA9IFtdCisgICAgICAgIGlmIHNvdXJjZToKKyAgICAgICAgICAgICMgdGhpcyBpcyBkaXNhYmxlZCBiZWNhdXNlIHdlIHdhbnQgdG8gYWNjZXNzIHJlcS5HRVQKKyAgICAgICAgICAgICMgZm9yIHRleHQvcGxhaW47IGNoYXJzZXQ9YXNjaWkgdXBsb2FkcyBmb3IgZXhhbXBsZQorICAgICAgICAgICAgI3NlbGYuX2NoZWNrX2NoYXJzZXQoKQorICAgICAgICAgICAgZGF0YSA9IHBhcnNlX3FzbF90ZXh0KHNvdXJjZSkKKyAgICAgICAgICAgICNkID0gbGFtYmRhIGI6IGIuZGVjb2RlKCd1dGY4JykKKyAgICAgICAgICAgICNkYXRhID0gWyhkKGspLCBkKHYpKSBmb3Igayx2IGluIGRhdGFdCisgICAgICAgIHZhcnMgPSBHZXREaWN0KGRhdGEsIGVudikKKyAgICAgICAgZW52Wyd3ZWJvYi5fcGFyc2VkX3F1ZXJ5X3ZhcnMnXSA9ICh2YXJzLCBzb3VyY2UpCisgICAgICAgIHJldHVybiB2YXJzCisKKyAgICBkZWYgX2NoZWNrX2NoYXJzZXQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY2hhcnNldCAhPSAnVVRGLTgnOgorICAgICAgICAgICAgcmFpc2UgRGVwcmVjYXRpb25XYXJuaW5nKAorICAgICAgICAgICAgICAgICJSZXF1ZXN0cyBhcmUgZXhwZWN0ZWQgdG8gYmUgc3VibWl0dGVkIGluIFVURi04LCBub3QgJXMuICIKKyAgICAgICAgICAgICAgICAiWW91IGNhbiBmaXggdGhpcyBieSBkb2luZyByZXEgPSByZXEuZGVjb2RlKCclcycpIiAlICgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGFyc2V0LCBzZWxmLmNoYXJzZXQpCisgICAgICAgICAgICApCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFyYW1zKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQSBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0IGNvbnRhaW5pbmcgYm90aCB0aGUgcGFyYW1ldGVycyBmcm9tCisgICAgICAgIHRoZSBxdWVyeSBzdHJpbmcgYW5kIHJlcXVlc3QgYm9keS4KKyAgICAgICAgIiIiCisgICAgICAgIHBhcmFtcyA9IE5lc3RlZE11bHRpRGljdChzZWxmLkdFVCwgc2VsZi5QT1NUKQorICAgICAgICByZXR1cm4gcGFyYW1zCisKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjb29raWVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIGEgZGljdGlvbmFyeSBvZiBjb29raWVzIGFzIGZvdW5kIGluIHRoZSByZXF1ZXN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIFJlcXVlc3RDb29raWVzKHNlbGYuZW52aXJvbikKKworICAgIEBjb29raWVzLnNldHRlcgorICAgIGRlZiBjb29raWVzKHNlbGYsIHZhbCk6CisgICAgICAgIHNlbGYuZW52aXJvbi5wb3AoJ0hUVFBfQ09PS0lFJywgTm9uZSkKKyAgICAgICAgciA9IFJlcXVlc3RDb29raWVzKHNlbGYuZW52aXJvbikKKyAgICAgICAgci51cGRhdGUodmFsKQorCisgICAgZGVmIGNvcHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDb3B5IHRoZSByZXF1ZXN0IGFuZCBlbnZpcm9ubWVudCBvYmplY3QuCisKKyAgICAgICAgVGhpcyBvbmx5IGRvZXMgYSBzaGFsbG93IGNvcHksIGV4Y2VwdCBvZiB3c2dpLmlucHV0CisgICAgICAgICIiIgorICAgICAgICBzZWxmLm1ha2VfYm9keV9zZWVrYWJsZSgpCisgICAgICAgIGVudiA9IHNlbGYuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgbmV3X3JlcSA9IHNlbGYuX19jbGFzc19fKGVudikKKyAgICAgICAgbmV3X3JlcS5jb3B5X2JvZHkoKQorICAgICAgICByZXR1cm4gbmV3X3JlcQorCisgICAgZGVmIGNvcHlfZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ29waWVzIHRoZSByZXF1ZXN0IGFuZCBlbnZpcm9ubWVudCBvYmplY3QsIGJ1dCB0dXJuaW5nIHRoaXMgcmVxdWVzdAorICAgICAgICBpbnRvIGEgR0VUIGFsb25nIHRoZSB3YXkuICBJZiB0aGlzIHdhcyBhIFBPU1QgcmVxdWVzdCAob3IgYW55IG90aGVyCisgICAgICAgIHZlcmIpIHRoZW4gaXQgYmVjb21lcyBHRVQsIGFuZCB0aGUgcmVxdWVzdCBib2R5IGlzIHRocm93biBhd2F5LgorICAgICAgICAiIiIKKyAgICAgICAgZW52ID0gc2VsZi5lbnZpcm9uLmNvcHkoKQorICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oZW52LCBtZXRob2Q9J0dFVCcsIGNvbnRlbnRfdHlwZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keT1iJycpCisKKyAgICAjIHdlYm9iLmlzX2JvZHlfc2Vla2FibGUgbWFya3MgaW5wdXQgc3RyZWFtcyB0aGF0IGFyZSBzZWVrYWJsZQorICAgICMgdGhpcyB3YXkgd2UgY2FuIGhhdmUgc2Vla2FibGUgaW5wdXQgd2l0aG91dCB0ZXN0aW5nIHRoZSAuc2VlaygpIG1ldGhvZAorICAgIGlzX2JvZHlfc2Vla2FibGUgPSBlbnZpcm9uX2dldHRlcignd2Vib2IuaXNfYm9keV9zZWVrYWJsZScsIEZhbHNlKQorCisgICAgI2lzX2JvZHlfcmVhZGFibGUgPSBlbnZpcm9uX2dldHRlcignd2Vib2IuaXNfYm9keV9yZWFkYWJsZScsIEZhbHNlKQorCisgICAgZGVmIF9pc19ib2R5X3JlYWRhYmxlX19nZXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICAgICAgd2Vib2IuaXNfYm9keV9yZWFkYWJsZSBpcyBhIGZsYWcgdGhhdCB0ZWxscyB1cworICAgICAgICAgICAgdGhhdCB3ZSBjYW4gcmVhZCB0aGUgaW5wdXQgc3RyZWFtIGV2ZW4gdGhvdWdoCisgICAgICAgICAgICBDT05URU5UX0xFTkdUSCBpcyBtaXNzaW5nLiBUaGlzIGFsbG93cyBGYWtlQ0dJQm9keQorICAgICAgICAgICAgdG8gd29yayBhbmQgY2FuIGJlIHVzZWQgYnkgc2VydmVycyB0byBzdXBwb3J0CisgICAgICAgICAgICBjaHVua2VkIGVuY29kaW5nIGluIHJlcXVlc3RzLgorICAgICAgICAgICAgRm9yIGJhY2tncm91bmQgc2VlIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9pYW5iL3dlYm9iL2lzc3VlLzYKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGh0dHBfbWV0aG9kX3Byb2JhYmx5X2hhc19ib2R5LmdldChzZWxmLm1ldGhvZCk6CisgICAgICAgICAgICAjIGtub3duIEhUVFAgbWV0aG9kIHdpdGggYm9keQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfbGVuZ3RoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyB1bmtub3duIEhUVFAgbWV0aG9kLCBidXQgdGhlIENvbnRlbnQtTGVuZ3RoCisgICAgICAgICAgICAjIGhlYWRlciBpcyBwcmVzZW50CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBsYXN0IHJlc29ydCAtLSByZWx5IG9uIHRoZSBzcGVjaWFsIGZsYWcKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVudmlyb24uZ2V0KCd3ZWJvYi5pc19ib2R5X3JlYWRhYmxlJywgRmFsc2UpCisKKyAgICBkZWYgX2lzX2JvZHlfcmVhZGFibGVfX3NldChzZWxmLCBmbGFnKToKKyAgICAgICAgc2VsZi5lbnZpcm9uWyd3ZWJvYi5pc19ib2R5X3JlYWRhYmxlJ10gPSBib29sKGZsYWcpCisKKyAgICBpc19ib2R5X3JlYWRhYmxlID0gcHJvcGVydHkoX2lzX2JvZHlfcmVhZGFibGVfX2dldCwgX2lzX2JvZHlfcmVhZGFibGVfX3NldCwKKyAgICAgICAgZG9jPV9pc19ib2R5X3JlYWRhYmxlX19nZXQuX19kb2NfXworICAgICkKKworCisKKyAgICBkZWYgbWFrZV9ib2R5X3NlZWthYmxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmb3JjZXMgYGBlbnZpcm9uWyd3c2dpLmlucHV0J11gYCB0byBiZSBzZWVrYWJsZS4KKyAgICAgICAgVGhhdCBtZWFucyB0aGF0LCB0aGUgY29udGVudCBpcyBjb3BpZWQgaW50byBhIEJ5dGVzSU8gb3IgdGVtcG9yYXJ5CisgICAgICAgIGZpbGUgYW5kIGZsYWdnZWQgYXMgc2Vla2FibGUsIHNvIHRoYXQgaXQgd2lsbCBub3QgYmUgdW5uZWNlc3NhcmlseQorICAgICAgICBjb3BpZWQgYWdhaW4uCisKKyAgICAgICAgQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCB0aGUgLmJvZHlfZmlsZSBpcyBhbHdheXMgc2Vla2VkIHRvIHRoZQorICAgICAgICBzdGFydCBvZiBmaWxlIGFuZCAuY29udGVudF9sZW5ndGggaXMgbm90IE5vbmUuCisKKyAgICAgICAgVGhlIGNob2ljZSB0byBjb3B5IHRvIEJ5dGVzSU8gaXMgbWFkZSBmcm9tCisgICAgICAgIGBgc2VsZi5yZXF1ZXN0X2JvZHlfdGVtcGZpbGVfbGltaXRgYAorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5pc19ib2R5X3NlZWthYmxlOgorICAgICAgICAgICAgc2VsZi5ib2R5X2ZpbGVfcmF3LnNlZWsoMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY29weV9ib2R5KCkKKworCisgICAgZGVmIGNvcHlfYm9keShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIENvcGllcyB0aGUgYm9keSwgaW4gY2FzZXMgd2hlcmUgaXQgbWlnaHQgYmUgc2hhcmVkIHdpdGgKKyAgICAgICAgYW5vdGhlciByZXF1ZXN0IG9iamVjdCBhbmQgdGhhdCBpcyBub3QgZGVzaXJlZC4KKworICAgICAgICBUaGlzIGNvcGllcyB0aGUgYm9keSBpbi1wbGFjZSwgZWl0aGVyIGludG8gYSBCeXRlc0lPIG9iamVjdAorICAgICAgICBvciBhIHRlbXBvcmFyeSBmaWxlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuaXNfYm9keV9yZWFkYWJsZToKKyAgICAgICAgICAgICMgdGhlcmUncyBubyBib2R5IHRvIGNvcHkKKyAgICAgICAgICAgIHNlbGYuYm9keSA9IGInJworICAgICAgICBlbGlmIHNlbGYuY29udGVudF9sZW5ndGggaXMgTm9uZToKKyAgICAgICAgICAgICMgY2h1bmtlZCBib2R5IG9yIEZha2VDR0lCb2R5CisgICAgICAgICAgICBzZWxmLmJvZHkgPSBzZWxmLmJvZHlfZmlsZV9yYXcucmVhZCgpCisgICAgICAgICAgICBzZWxmLl9jb3B5X2JvZHlfdGVtcGZpbGUoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyB0cnkgdG8gcmVhZCBib2R5IGludG8gdGVtcGZpbGUKKyAgICAgICAgICAgIGRpZF9jb3B5ID0gc2VsZi5fY29weV9ib2R5X3RlbXBmaWxlKCkKKyAgICAgICAgICAgIGlmIG5vdCBkaWRfY29weToKKyAgICAgICAgICAgICAgICAjIGl0IHdhc24ndCBuZWNlc3NhcnksIHNvIGp1c3QgcmVhZCBpdCBpbnRvIG1lbW9yeQorICAgICAgICAgICAgICAgIHNlbGYuYm9keSA9IHNlbGYuYm9keV9maWxlLnJlYWQoc2VsZi5jb250ZW50X2xlbmd0aCkKKworICAgIGRlZiBfY29weV9ib2R5X3RlbXBmaWxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIENvcHkgd3NnaS5pbnB1dCB0byB0ZW1wZmlsZSBpZiBuZWNlc3NhcnkuIFJldHVybnMgVHJ1ZSBpZiBpdCBkaWQuCisgICAgICAgICIiIgorICAgICAgICB0ZW1wZmlsZV9saW1pdCA9IHNlbGYucmVxdWVzdF9ib2R5X3RlbXBmaWxlX2xpbWl0CisgICAgICAgIHRvZG8gPSBzZWxmLmNvbnRlbnRfbGVuZ3RoCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHRvZG8sIGludGVnZXJfdHlwZXMpLCB0b2RvCisgICAgICAgIGlmIG5vdCB0ZW1wZmlsZV9saW1pdCBvciB0b2RvIDw9IHRlbXBmaWxlX2xpbWl0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGZpbGVvYmogPSBzZWxmLm1ha2VfdGVtcGZpbGUoKQorICAgICAgICBpbnB1dCA9IHNlbGYuYm9keV9maWxlCisgICAgICAgIHdoaWxlIHRvZG8gPiAwOgorICAgICAgICAgICAgZGF0YSA9IGlucHV0LnJlYWQobWluKHRvZG8sIDY1NTM2KSkKKyAgICAgICAgICAgIGlmIG5vdCBkYXRhOgorICAgICAgICAgICAgICAgICMgTm9ybWFsbHkgdGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYmVjYXVzZSBMaW1pdGVkTGVuZ3RoRmlsZQorICAgICAgICAgICAgICAgICMgc2hvdWxkIGhhdmUgcmFpc2VkIGFuIGV4Y2VwdGlvbiBieSBub3cuCisgICAgICAgICAgICAgICAgIyBJdCBjYW4gaGFwcGVuIGlmIHRoZSBpc19ib2R5X3NlZWthYmxlIGZsYWcgaXMgaW5jb3JyZWN0LgorICAgICAgICAgICAgICAgIHJhaXNlIERpc2Nvbm5lY3Rpb25FcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkNsaWVudCBkaXNjb25uZWN0ZWQgKCVzIG1vcmUgYnl0ZXMgd2VyZSBleHBlY3RlZCkiCisgICAgICAgICAgICAgICAgICAgICUgdG9kbworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGZpbGVvYmoud3JpdGUoZGF0YSkKKyAgICAgICAgICAgIHRvZG8gLT0gbGVuKGRhdGEpCisgICAgICAgIGZpbGVvYmouc2VlaygwKQorICAgICAgICBzZWxmLmJvZHlfZmlsZV9yYXcgPSBmaWxlb2JqCisgICAgICAgIHNlbGYuaXNfYm9keV9zZWVrYWJsZSA9IFRydWUKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBtYWtlX3RlbXBmaWxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIENyZWF0ZSBhIHRlbXBmaWxlIHRvIHN0b3JlIGJpZyByZXF1ZXN0IGJvZHkuCisgICAgICAgICAgICBUaGlzIEFQSSBpcyBub3Qgc3RhYmxlIHlldC4gQSAnc2l6ZScgYXJndW1lbnQgbWlnaHQgYmUgYWRkZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgpCisKKworICAgIGRlZiByZW1vdmVfY29uZGl0aW9uYWxfaGVhZGVycyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfZW5jb2Rpbmc9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX3JhbmdlPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9tYXRjaD1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfbW9kaWZpZWQ9VHJ1ZSk6CisgICAgICAgICIiIgorICAgICAgICBSZW1vdmUgaGVhZGVycyB0aGF0IG1ha2UgdGhlIHJlcXVlc3QgY29uZGl0aW9uYWwuCisKKyAgICAgICAgVGhlc2UgaGVhZGVycyBjYW4gY2F1c2UgdGhlIHJlc3BvbnNlIHRvIGJlIDMwNCBOb3QgTW9kaWZpZWQsCisgICAgICAgIHdoaWNoIGluIHNvbWUgY2FzZXMgeW91IG1heSBub3Qgd2FudCB0byBiZSBwb3NzaWJsZS4KKworICAgICAgICBUaGlzIGRvZXMgbm90IHJlbW92ZSBoZWFkZXJzIGxpa2UgSWYtTWF0Y2gsIHdoaWNoIGFyZSB1c2VkIGZvcgorICAgICAgICBjb25mbGljdCBkZXRlY3Rpb24uCisgICAgICAgICIiIgorICAgICAgICBjaGVja19rZXlzID0gW10KKyAgICAgICAgaWYgcmVtb3ZlX3JhbmdlOgorICAgICAgICAgICAgY2hlY2tfa2V5cyArPSBbJ0hUVFBfSUZfUkFOR0UnLCAnSFRUUF9SQU5HRSddCisgICAgICAgIGlmIHJlbW92ZV9tYXRjaDoKKyAgICAgICAgICAgIGNoZWNrX2tleXMuYXBwZW5kKCdIVFRQX0lGX05PTkVfTUFUQ0gnKQorICAgICAgICBpZiByZW1vdmVfbW9kaWZpZWQ6CisgICAgICAgICAgICBjaGVja19rZXlzLmFwcGVuZCgnSFRUUF9JRl9NT0RJRklFRF9TSU5DRScpCisgICAgICAgIGlmIHJlbW92ZV9lbmNvZGluZzoKKyAgICAgICAgICAgIGNoZWNrX2tleXMuYXBwZW5kKCdIVFRQX0FDQ0VQVF9FTkNPRElORycpCisKKyAgICAgICAgZm9yIGtleSBpbiBjaGVja19rZXlzOgorICAgICAgICAgICAgaWYga2V5IGluIHNlbGYuZW52aXJvbjoKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5lbnZpcm9uW2tleV0KKworCisgICAgYWNjZXB0ID0gYWNjZXB0X3Byb3BlcnR5KCdBY2NlcHQnLCAnMTQuMScsIE1JTUVBY2NlcHQsIE1JTUVOaWxBY2NlcHQpCisgICAgYWNjZXB0X2NoYXJzZXQgPSBhY2NlcHRfcHJvcGVydHkoJ0FjY2VwdC1DaGFyc2V0JywgJzE0LjInLCBBY2NlcHRDaGFyc2V0KQorICAgIGFjY2VwdF9lbmNvZGluZyA9IGFjY2VwdF9wcm9wZXJ0eSgnQWNjZXB0LUVuY29kaW5nJywgJzE0LjMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOaWxDbGFzcz1Ob0FjY2VwdCkKKyAgICBhY2NlcHRfbGFuZ3VhZ2UgPSBhY2NlcHRfcHJvcGVydHkoJ0FjY2VwdC1MYW5ndWFnZScsICcxNC40JywgQWNjZXB0TGFuZ3VhZ2UpCisKKyAgICBhdXRob3JpemF0aW9uID0gY29udmVydGVyKAorICAgICAgICBlbnZpcm9uX2dldHRlcignSFRUUF9BVVRIT1JJWkFUSU9OJywgTm9uZSwgJzE0LjgnKSwKKyAgICAgICAgcGFyc2VfYXV0aCwgc2VyaWFsaXplX2F1dGgsCisgICAgKQorCisKKyAgICBkZWYgX2NhY2hlX2NvbnRyb2xfX2dldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldC9zZXQvbW9kaWZ5IHRoZSBDYWNoZS1Db250cm9sIGhlYWRlciAoYEhUVFAgc3BlYyBzZWN0aW9uIDE0LjkKKyAgICAgICAgPGh0dHA6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMTQuaHRtbCNzZWMxNC45PmBfKQorICAgICAgICAiIiIKKyAgICAgICAgZW52ID0gc2VsZi5lbnZpcm9uCisgICAgICAgIHZhbHVlID0gZW52LmdldCgnSFRUUF9DQUNIRV9DT05UUk9MJywgJycpCisgICAgICAgIGNhY2hlX2hlYWRlciwgY2FjaGVfb2JqID0gZW52LmdldCgnd2Vib2IuX2NhY2hlX2NvbnRyb2wnLCAoTm9uZSwgTm9uZSkpCisgICAgICAgIGlmIGNhY2hlX29iaiBpcyBub3QgTm9uZSBhbmQgY2FjaGVfaGVhZGVyID09IHZhbHVlOgorICAgICAgICAgICAgcmV0dXJuIGNhY2hlX29iagorICAgICAgICBjYWNoZV9vYmogPSBDYWNoZUNvbnRyb2wucGFyc2UodmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzX3RvPXNlbGYuX3VwZGF0ZV9jYWNoZV9jb250cm9sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ncmVxdWVzdCcpCisgICAgICAgIGVudlsnd2Vib2IuX2NhY2hlX2NvbnRyb2wnXSA9ICh2YWx1ZSwgY2FjaGVfb2JqKQorICAgICAgICByZXR1cm4gY2FjaGVfb2JqCisKKyAgICBkZWYgX2NhY2hlX2NvbnRyb2xfX3NldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIGVudiA9IHNlbGYuZW52aXJvbgorICAgICAgICB2YWx1ZSA9IHZhbHVlIG9yICcnCisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpOgorICAgICAgICAgICAgdmFsdWUgPSBDYWNoZUNvbnRyb2wodmFsdWUsIHR5cGU9J3JlcXVlc3QnKQorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBDYWNoZUNvbnRyb2wpOgorICAgICAgICAgICAgc3RyX3ZhbHVlID0gc3RyKHZhbHVlKQorICAgICAgICAgICAgZW52WydIVFRQX0NBQ0hFX0NPTlRST0wnXSA9IHN0cl92YWx1ZQorICAgICAgICAgICAgZW52Wyd3ZWJvYi5fY2FjaGVfY29udHJvbCddID0gKHN0cl92YWx1ZSwgdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbnZbJ0hUVFBfQ0FDSEVfQ09OVFJPTCddID0gc3RyKHZhbHVlKQorICAgICAgICAgICAgZW52Wyd3ZWJvYi5fY2FjaGVfY29udHJvbCddID0gKE5vbmUsIE5vbmUpCisKKyAgICBkZWYgX2NhY2hlX2NvbnRyb2xfX2RlbChzZWxmKToKKyAgICAgICAgZW52ID0gc2VsZi5lbnZpcm9uCisgICAgICAgIGlmICdIVFRQX0NBQ0hFX0NPTlRST0wnIGluIGVudjoKKyAgICAgICAgICAgIGRlbCBlbnZbJ0hUVFBfQ0FDSEVfQ09OVFJPTCddCisgICAgICAgIGlmICd3ZWJvYi5fY2FjaGVfY29udHJvbCcgaW4gZW52OgorICAgICAgICAgICAgZGVsIGVudlsnd2Vib2IuX2NhY2hlX2NvbnRyb2wnXQorCisgICAgZGVmIF91cGRhdGVfY2FjaGVfY29udHJvbChzZWxmLCBwcm9wX2RpY3QpOgorICAgICAgICBzZWxmLmVudmlyb25bJ0hUVFBfQ0FDSEVfQ09OVFJPTCddID0gc2VyaWFsaXplX2NhY2hlX2NvbnRyb2wocHJvcF9kaWN0KQorCisgICAgY2FjaGVfY29udHJvbCA9IHByb3BlcnR5KF9jYWNoZV9jb250cm9sX19nZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jYWNoZV9jb250cm9sX19zZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jYWNoZV9jb250cm9sX19kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvYz1fY2FjaGVfY29udHJvbF9fZ2V0Ll9fZG9jX18pCisKKworICAgIGlmX21hdGNoID0gZXRhZ19wcm9wZXJ0eSgnSFRUUF9JRl9NQVRDSCcsIEFueUVUYWcsICcxNC4yNCcpCisgICAgaWZfbm9uZV9tYXRjaCA9IGV0YWdfcHJvcGVydHkoJ0hUVFBfSUZfTk9ORV9NQVRDSCcsIE5vRVRhZywgJzE0LjI2JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJvbmc9RmFsc2UpCisKKyAgICBkYXRlID0gY29udmVydGVyX2RhdGUoZW52aXJvbl9nZXR0ZXIoJ0hUVFBfREFURScsIE5vbmUsICcxNC44JykpCisgICAgaWZfbW9kaWZpZWRfc2luY2UgPSBjb252ZXJ0ZXJfZGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgZW52aXJvbl9nZXR0ZXIoJ0hUVFBfSUZfTU9ESUZJRURfU0lOQ0UnLCBOb25lLCAnMTQuMjUnKSkKKyAgICBpZl91bm1vZGlmaWVkX3NpbmNlID0gY29udmVydGVyX2RhdGUoCisgICAgICAgICAgICAgICAgICAgIGVudmlyb25fZ2V0dGVyKCdIVFRQX0lGX1VOTU9ESUZJRURfU0lOQ0UnLCBOb25lLCAnMTQuMjgnKSkKKyAgICBpZl9yYW5nZSA9IGNvbnZlcnRlcigKKyAgICAgICAgZW52aXJvbl9nZXR0ZXIoJ0hUVFBfSUZfUkFOR0UnLCBOb25lLCAnMTQuMjcnKSwKKyAgICAgICAgSWZSYW5nZS5wYXJzZSwgc2VyaWFsaXplX2lmX3JhbmdlLCAnSWZSYW5nZSBvYmplY3QnKQorCisKKyAgICBtYXhfZm9yd2FyZHMgPSBjb252ZXJ0ZXIoCisgICAgICAgIGVudmlyb25fZ2V0dGVyKCdIVFRQX01BWF9GT1JXQVJEUycsIE5vbmUsICcxNC4zMScpLAorICAgICAgICBwYXJzZV9pbnQsIHNlcmlhbGl6ZV9pbnQsICdpbnQnKQorCisgICAgcHJhZ21hID0gZW52aXJvbl9nZXR0ZXIoJ0hUVFBfUFJBR01BJywgTm9uZSwgJzE0LjMyJykKKworICAgIHJhbmdlID0gY29udmVydGVyKAorICAgICAgICBlbnZpcm9uX2dldHRlcignSFRUUF9SQU5HRScsIE5vbmUsICcxNC4zNScpLAorICAgICAgICBwYXJzZV9yYW5nZSwgc2VyaWFsaXplX3JhbmdlLCAnUmFuZ2Ugb2JqZWN0JykKKworICAgIHJlZmVyZXIgPSBlbnZpcm9uX2dldHRlcignSFRUUF9SRUZFUkVSJywgTm9uZSwgJzE0LjM2JykKKyAgICByZWZlcnJlciA9IHJlZmVyZXIKKworICAgIHVzZXJfYWdlbnQgPSBlbnZpcm9uX2dldHRlcignSFRUUF9VU0VSX0FHRU5UJywgTm9uZSwgJzE0LjQzJykKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmFtZSA9ICclcyAlcycgJSAoc2VsZi5tZXRob2QsIHNlbGYudXJsKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBuYW1lID0gJyhpbnZhbGlkIFdTR0kgZW52aXJvbiknCisgICAgICAgIG1zZyA9ICc8JXMgYXQgMHgleCAlcz4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBhYnMoaWQoc2VsZikpLCBuYW1lKQorICAgICAgICByZXR1cm4gbXNnCisKKyAgICBkZWYgYXNfYnl0ZXMoc2VsZiwgc2tpcF9ib2R5PUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBSZXR1cm4gSFRUUCBieXRlcyByZXByZXNlbnRpbmcgdGhpcyByZXF1ZXN0LgorICAgICAgICAgICAgSWYgc2tpcF9ib2R5IGlzIFRydWUsIGV4Y2x1ZGUgdGhlIGJvZHkuCisgICAgICAgICAgICBJZiBza2lwX2JvZHkgaXMgYW4gaW50ZWdlciBsYXJnZXIgdGhhbiBvbmUsIHNraXAgYm9keQorICAgICAgICAgICAgb25seSBpZiBpdHMgbGVuZ3RoIGlzIGJpZ2dlciB0aGFuIHRoYXQgbnVtYmVyLgorICAgICAgICAiIiIKKyAgICAgICAgdXJsID0gc2VsZi51cmwKKyAgICAgICAgaG9zdCA9IHNlbGYuaG9zdF91cmwKKyAgICAgICAgYXNzZXJ0IHVybC5zdGFydHN3aXRoKGhvc3QpCisgICAgICAgIHVybCA9IHVybFtsZW4oaG9zdCk6XQorICAgICAgICBwYXJ0cyA9IFtieXRlc18oJyVzICVzICVzJyAlIChzZWxmLm1ldGhvZCwgdXJsLCBzZWxmLmh0dHBfdmVyc2lvbikpXQorICAgICAgICAjc2VsZi5oZWFkZXJzLnNldGRlZmF1bHQoJ0hvc3QnLCBzZWxmLmhvc3QpCisKKyAgICAgICAgIyBhY3F1aXJlIGJvZHkgYmVmb3JlIHdlIGhhbmRsZSBoZWFkZXJzIHNvIHRoYXQKKyAgICAgICAgIyBjb250ZW50LWxlbmd0aCB3aWxsIGJlIHNldAorICAgICAgICBib2R5ID0gTm9uZQorICAgICAgICBpZiBodHRwX21ldGhvZF9wcm9iYWJseV9oYXNfYm9keS5nZXQoc2VsZi5tZXRob2QpOgorICAgICAgICAgICAgaWYgc2tpcF9ib2R5ID4gMToKKyAgICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5ib2R5KSA+IHNraXBfYm9keToKKyAgICAgICAgICAgICAgICAgICAgYm9keSA9IGJ5dGVzXygnPGJvZHkgc2tpcHBlZCAobGVuPSVzKT4nICUgbGVuKHNlbGYuYm9keSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2tpcF9ib2R5ID0gRmFsc2UKKyAgICAgICAgICAgIGlmIG5vdCBza2lwX2JvZHk6CisgICAgICAgICAgICAgICAgYm9keSA9IHNlbGYuYm9keQorCisgICAgICAgIGZvciBrLCB2IGluIHNvcnRlZChzZWxmLmhlYWRlcnMuaXRlbXMoKSk6CisgICAgICAgICAgICBoZWFkZXIgPSBieXRlc18oJyVzOiAlcycgICUgKGssIHYpKQorICAgICAgICAgICAgcGFydHMuYXBwZW5kKGhlYWRlcikKKworICAgICAgICBpZiBib2R5OgorICAgICAgICAgICAgcGFydHMuZXh0ZW5kKFtiJycsIGJvZHldKQorICAgICAgICAjIEhUVFAgY2xlYXJseSBzcGVjaWZpZXMgQ1JMRgorICAgICAgICByZXR1cm4gYidcclxuJy5qb2luKHBhcnRzKQorCisgICAgZGVmIGFzX3N0cmluZyhzZWxmLCBza2lwX2JvZHk9RmFsc2UpOgorICAgICAgICAjIFRPRE86IFJlbW92ZSBpbiAxLjQKKyAgICAgICAgd2Fybl9kZXByZWNhdGlvbigKKyAgICAgICAgICAgICJQbGVhc2UgdXNlIHJlcS5hc19ieXRlcyIsCisgICAgICAgICAgICAnMS4zJywKKyAgICAgICAgICAgIHNlbGYuX3NldGF0dHJfc3RhY2tsZXZlbAorICAgICAgICAgICAgKQorCisgICAgZGVmIGFzX3RleHQoc2VsZik6CisgICAgICAgIGJ5dGVzID0gc2VsZi5hc19ieXRlcygpCisgICAgICAgIHJldHVybiBieXRlcy5kZWNvZGUoc2VsZi5jaGFyc2V0KQorCisgICAgX19zdHJfXyA9IGFzX3RleHQKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2J5dGVzKGNscywgYik6CisgICAgICAgICIiIgorICAgICAgICAgICAgQ3JlYXRlIGEgcmVxdWVzdCBmcm9tIEhUVFAgYnl0ZXMgZGF0YS4gSWYgdGhlIGJ5dGVzIGNvbnRhaW4KKyAgICAgICAgICAgIGV4dHJhIGRhdGEgYWZ0ZXIgdGhlIHJlcXVlc3QsIHJhaXNlIGEgVmFsdWVFcnJvci4KKyAgICAgICAgIiIiCisgICAgICAgIGYgPSBpby5CeXRlc0lPKGIpCisgICAgICAgIHIgPSBjbHMuZnJvbV9maWxlKGYpCisgICAgICAgIGlmIGYudGVsbCgpICE9IGxlbihiKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRoZSBzdHJpbmcgY29udGFpbnMgbW9yZSBkYXRhIHRoYW4gZXhwZWN0ZWQiKQorICAgICAgICByZXR1cm4gcgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fc3RyaW5nKGNscywgYik6CisgICAgICAgICMgVE9ETzogUmVtb3ZlIGluIDEuNAorICAgICAgICB3YXJuX2RlcHJlY2F0aW9uKAorICAgICAgICAgICAgIlBsZWFzZSB1c2UgcmVxLmZyb21fYnl0ZXMiLAorICAgICAgICAgICAgJzEuMycsCisgICAgICAgICAgICBjbHMuX3NldGF0dHJfc3RhY2tsZXZlbAorICAgICAgICAgICAgKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fdGV4dChjbHMsIHMpOgorICAgICAgICBiID0gYnl0ZXNfKHMsICd1dGYtOCcpCisgICAgICAgIHJldHVybiBjbHMuZnJvbV9ieXRlcyhiKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fZmlsZShjbHMsIGZwKToKKyAgICAgICAgIiIiUmVhZCBhIHJlcXVlc3QgZnJvbSBhIGZpbGUtbGlrZSBvYmplY3QgKGl0IG11c3QgaW1wbGVtZW50CisgICAgICAgIGBgLnJlYWQoc2l6ZSlgYCBhbmQgYGAucmVhZGxpbmUoKWBgKS4KKworICAgICAgICBJdCB3aWxsIHJlYWQgdXAgdG8gdGhlIGVuZCBvZiB0aGUgcmVxdWVzdCwgbm90IHRoZSBlbmQgb2YgdGhlCisgICAgICAgIGZpbGUgKHVubGVzcyB0aGUgcmVxdWVzdCBpcyBhIFBPU1Qgb3IgUFVUIGFuZCBoYXMgbm8KKyAgICAgICAgQ29udGVudC1MZW5ndGgsIGluIHRoYXQgY2FzZSwgdGhlIGVudGlyZSBmaWxlIGlzIHJlYWQpLgorCisgICAgICAgIFRoaXMgcmVhZHMgdGhlIHJlcXVlc3QgYXMgcmVwcmVzZW50ZWQgYnkgYGBzdHIocmVxKWBgOyBpdCBtYXkKKyAgICAgICAgbm90IHJlYWQgZXZlcnkgdmFsaWQgSFRUUCByZXF1ZXN0IHByb3Blcmx5LgorICAgICAgICAiIiIKKyAgICAgICAgc3RhcnRfbGluZSA9IGZwLnJlYWRsaW5lKCkKKyAgICAgICAgaXNfdGV4dCA9IGlzaW5zdGFuY2Uoc3RhcnRfbGluZSwgdGV4dF90eXBlKQorICAgICAgICBpZiBpc190ZXh0OgorICAgICAgICAgICAgY3JsZiA9ICdcclxuJworICAgICAgICAgICAgY29sb24gPSAnOicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNybGYgPSBiJ1xyXG4nCisgICAgICAgICAgICBjb2xvbiA9IGInOicKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaGVhZGVyID0gc3RhcnRfbGluZS5yc3RyaXAoY3JsZikKKyAgICAgICAgICAgIG1ldGhvZCwgcmVzb3VyY2UsIGh0dHBfdmVyc2lvbiA9IGhlYWRlci5zcGxpdChOb25lLCAyKQorICAgICAgICAgICAgbWV0aG9kID0gbmF0aXZlXyhtZXRob2QsICd1dGYtOCcpCisgICAgICAgICAgICByZXNvdXJjZSA9IG5hdGl2ZV8ocmVzb3VyY2UsICd1dGYtOCcpCisgICAgICAgICAgICBodHRwX3ZlcnNpb24gPSBuYXRpdmVfKGh0dHBfdmVyc2lvbiwgJ3V0Zi04JykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgSFRUUCByZXF1ZXN0IGxpbmU6ICVyJyAlIHN0YXJ0X2xpbmUpCisgICAgICAgIHIgPSBjbHMoZW52aXJvbl9mcm9tX3VybChyZXNvdXJjZSksCisgICAgICAgICAgICAgICAgaHR0cF92ZXJzaW9uPWh0dHBfdmVyc2lvbiwKKyAgICAgICAgICAgICAgICBtZXRob2Q9bWV0aG9kLnVwcGVyKCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGRlbCByLmVudmlyb25bJ0hUVFBfSE9TVCddCisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBsaW5lID0gZnAucmVhZGxpbmUoKQorICAgICAgICAgICAgaWYgbm90IGxpbmUuc3RyaXAoKToKKyAgICAgICAgICAgICAgICAjIGVuZCBvZiBoZWFkZXJzCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGhuYW1lLCBodmFsID0gbGluZS5zcGxpdChjb2xvbiwgMSkKKyAgICAgICAgICAgIGhuYW1lID0gbmF0aXZlXyhobmFtZSwgJ3V0Zi04JykKKyAgICAgICAgICAgIGh2YWwgPSBuYXRpdmVfKGh2YWwsICd1dGYtOCcpLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIGhuYW1lIGluIHIuaGVhZGVyczoKKyAgICAgICAgICAgICAgICBodmFsID0gci5oZWFkZXJzW2huYW1lXSArICcsICcgKyBodmFsCisgICAgICAgICAgICByLmhlYWRlcnNbaG5hbWVdID0gaHZhbAorICAgICAgICBpZiBodHRwX21ldGhvZF9wcm9iYWJseV9oYXNfYm9keS5nZXQoci5tZXRob2QpOgorICAgICAgICAgICAgY2xlbiA9IHIuY29udGVudF9sZW5ndGgKKyAgICAgICAgICAgIGlmIGNsZW4gaXMgTm9uZToKKyAgICAgICAgICAgICAgICBib2R5ID0gZnAucmVhZCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGJvZHkgPSBmcC5yZWFkKGNsZW4pCisgICAgICAgICAgICBpZiBpc190ZXh0OgorICAgICAgICAgICAgICAgIGJvZHkgPSBieXRlc18oYm9keSwgJ3V0Zi04JykKKyAgICAgICAgICAgIHIuYm9keSA9IGJvZHkKKyAgICAgICAgcmV0dXJuIHIKKworICAgIGRlZiBjYWxsX2FwcGxpY2F0aW9uKHNlbGYsIGFwcGxpY2F0aW9uLCBjYXRjaF9leGNfaW5mbz1GYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBDYWxsIHRoZSBnaXZlbiBXU0dJIGFwcGxpY2F0aW9uLCByZXR1cm5pbmcgYGAoc3RhdHVzX3N0cmluZywKKyAgICAgICAgaGVhZGVybGlzdCwgYXBwX2l0ZXIpYGAKKworICAgICAgICBCZSBzdXJlIHRvIGNhbGwgYGBhcHBfaXRlci5jbG9zZSgpYGAgaWYgaXQncyB0aGVyZS4KKworICAgICAgICBJZiBjYXRjaF9leGNfaW5mbyBpcyB0cnVlLCB0aGVuIHJldHVybnMgYGAoc3RhdHVzX3N0cmluZywKKyAgICAgICAgaGVhZGVybGlzdCwgYXBwX2l0ZXIsIGV4Y19pbmZvKWBgLCB3aGVyZSB0aGUgZm91cnRoIGl0ZW0gbWF5CisgICAgICAgIGJlIE5vbmUsIGJ1dCB3b24ndCBiZSBpZiB0aGVyZSB3YXMgYW4gZXhjZXB0aW9uLiAgSWYgeW91IGRvbid0CisgICAgICAgIGRvIHRoaXMgYW5kIHRoZXJlIHdhcyBhbiBleGNlcHRpb24sIHRoZSBleGNlcHRpb24gd2lsbCBiZQorICAgICAgICByYWlzZWQgZGlyZWN0bHkuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLmlzX2JvZHlfc2Vla2FibGU6CisgICAgICAgICAgICBzZWxmLmJvZHlfZmlsZV9yYXcuc2VlaygwKQorICAgICAgICBjYXB0dXJlZCA9IFtdCisgICAgICAgIG91dHB1dCA9IFtdCisgICAgICAgIGRlZiBzdGFydF9yZXNwb25zZShzdGF0dXMsIGhlYWRlcnMsIGV4Y19pbmZvPU5vbmUpOgorICAgICAgICAgICAgaWYgZXhjX2luZm8gaXMgbm90IE5vbmUgYW5kIG5vdCBjYXRjaF9leGNfaW5mbzoKKyAgICAgICAgICAgICAgICByZXJhaXNlKGV4Y19pbmZvKQorICAgICAgICAgICAgY2FwdHVyZWRbOl0gPSBbc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mb10KKyAgICAgICAgICAgIHJldHVybiBvdXRwdXQuYXBwZW5kCisgICAgICAgIGFwcF9pdGVyID0gYXBwbGljYXRpb24oc2VsZi5lbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaWYgb3V0cHV0IG9yIG5vdCBjYXB0dXJlZDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvdXRwdXQuZXh0ZW5kKGFwcF9pdGVyKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGFwcF9pdGVyLCAnY2xvc2UnKToKKyAgICAgICAgICAgICAgICAgICAgYXBwX2l0ZXIuY2xvc2UoKQorICAgICAgICAgICAgYXBwX2l0ZXIgPSBvdXRwdXQKKyAgICAgICAgaWYgY2F0Y2hfZXhjX2luZm86CisgICAgICAgICAgICByZXR1cm4gKGNhcHR1cmVkWzBdLCBjYXB0dXJlZFsxXSwgYXBwX2l0ZXIsIGNhcHR1cmVkWzJdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIChjYXB0dXJlZFswXSwgY2FwdHVyZWRbMV0sIGFwcF9pdGVyKQorCisgICAgIyBXaWxsIGJlIGZpbGxlZCBpbiBsYXRlcjoKKyAgICBSZXNwb25zZUNsYXNzID0gTm9uZQorCisgICAgZGVmIHNlbmQoc2VsZiwgYXBwbGljYXRpb249Tm9uZSwgY2F0Y2hfZXhjX2luZm89RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlrZSBgYC5jYWxsX2FwcGxpY2F0aW9uKGFwcGxpY2F0aW9uKWBgLCBleGNlcHQgcmV0dXJucyBhCisgICAgICAgIHJlc3BvbnNlIG9iamVjdCB3aXRoIGBgLnN0YXR1c2BgLCBgYC5oZWFkZXJzYGAsIGFuZCBgYC5ib2R5YGAKKyAgICAgICAgYXR0cmlidXRlcy4KKworICAgICAgICBUaGlzIHdpbGwgdXNlIGBgc2VsZi5SZXNwb25zZUNsYXNzYGAgdG8gZmlndXJlIG91dCB0aGUgY2xhc3MKKyAgICAgICAgb2YgdGhlIHJlc3BvbnNlIG9iamVjdCB0byByZXR1cm4uCisKKyAgICAgICAgSWYgYGBhcHBsaWNhdGlvbmBgIGlzIG5vdCBnaXZlbiwgdGhpcyB3aWxsIHNlbmQgdGhlIHJlcXVlc3QgdG8KKyAgICAgICAgYGBzZWxmLm1ha2VfZGVmYXVsdF9zZW5kX2FwcCgpYGAKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGFwcGxpY2F0aW9uIGlzIE5vbmU6CisgICAgICAgICAgICBhcHBsaWNhdGlvbiA9IHNlbGYubWFrZV9kZWZhdWx0X3NlbmRfYXBwKCkKKyAgICAgICAgaWYgY2F0Y2hfZXhjX2luZm86CisgICAgICAgICAgICBzdGF0dXMsIGhlYWRlcnMsIGFwcF9pdGVyLCBleGNfaW5mbyA9IHNlbGYuY2FsbF9hcHBsaWNhdGlvbigKKyAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiwgY2F0Y2hfZXhjX2luZm89VHJ1ZSkKKyAgICAgICAgICAgIGRlbCBleGNfaW5mbworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3RhdHVzLCBoZWFkZXJzLCBhcHBfaXRlciA9IHNlbGYuY2FsbF9hcHBsaWNhdGlvbigKKyAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiwgY2F0Y2hfZXhjX2luZm89RmFsc2UpCisgICAgICAgIHJldHVybiBzZWxmLlJlc3BvbnNlQ2xhc3MoCisgICAgICAgICAgICBzdGF0dXM9c3RhdHVzLCBoZWFkZXJsaXN0PWxpc3QoaGVhZGVycyksIGFwcF9pdGVyPWFwcF9pdGVyKQorCisgICAgZ2V0X3Jlc3BvbnNlID0gc2VuZAorCisgICAgZGVmIG1ha2VfZGVmYXVsdF9zZW5kX2FwcChzZWxmKToKKyAgICAgICAgZ2xvYmFsIF9jbGllbnQKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2xpZW50ID0gX2NsaWVudAorICAgICAgICBleGNlcHQgTmFtZUVycm9yOgorICAgICAgICAgICAgZnJvbSB3ZWJvYiBpbXBvcnQgY2xpZW50CisgICAgICAgICAgICBfY2xpZW50ID0gY2xpZW50CisgICAgICAgIHJldHVybiBjbGllbnQuc2VuZF9yZXF1ZXN0X2FwcAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGJsYW5rKGNscywgcGF0aCwgZW52aXJvbj1Ob25lLCBiYXNlX3VybD1Ob25lLAorICAgICAgICAgICAgICBoZWFkZXJzPU5vbmUsIFBPU1Q9Tm9uZSwgKiprdyk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgYSBibGFuayByZXF1ZXN0IGVudmlyb24gKGFuZCBSZXF1ZXN0IHdyYXBwZXIpIHdpdGggdGhlCisgICAgICAgIGdpdmVuIHBhdGggKHBhdGggc2hvdWxkIGJlIHVybGVuY29kZWQpLCBhbmQgYW55IGtleXMgZnJvbQorICAgICAgICBlbnZpcm9uLgorCisgICAgICAgIFRoZSBwYXRoIHdpbGwgYmVjb21lIHBhdGhfaW5mbywgd2l0aCBhbnkgcXVlcnkgc3RyaW5nIHNwbGl0CisgICAgICAgIG9mZiBhbmQgdXNlZC4KKworICAgICAgICBBbGwgbmVjZXNzYXJ5IGtleXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgZW52aXJvbiwgYnV0IHRoZQorICAgICAgICB2YWx1ZXMgeW91IHBhc3MgaW4gd2lsbCB0YWtlIHByZWNlZGVuY2UuICBJZiB5b3UgcGFzcyBpbgorICAgICAgICBiYXNlX3VybCB0aGVuIHdzZ2kudXJsX3NjaGVtZSwgSFRUUF9IT1NULCBhbmQgU0NSSVBUX05BTUUgd2lsbAorICAgICAgICBiZSBmaWxsZWQgaW4gZnJvbSB0aGF0IHZhbHVlLgorCisgICAgICAgIEFueSBleHRyYSBrZXl3b3JkIHdpbGwgYmUgcGFzc2VkIHRvIGBgX19pbml0X19gYC4KKyAgICAgICAgIiIiCisgICAgICAgIGVudiA9IGVudmlyb25fZnJvbV91cmwocGF0aCkKKyAgICAgICAgaWYgYmFzZV91cmw6CisgICAgICAgICAgICBzY2hlbWUsIG5ldGxvYywgcGF0aCwgcXVlcnksIGZyYWdtZW50ID0gdXJscGFyc2UudXJsc3BsaXQoYmFzZV91cmwpCisgICAgICAgICAgICBpZiBxdWVyeSBvciBmcmFnbWVudDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiYmFzZV91cmwgKCVyKSBjYW5ub3QgaGF2ZSBhIHF1ZXJ5IG9yIGZyYWdtZW50IgorICAgICAgICAgICAgICAgICAgICAlIGJhc2VfdXJsKQorICAgICAgICAgICAgaWYgc2NoZW1lOgorICAgICAgICAgICAgICAgIGVudlsnd3NnaS51cmxfc2NoZW1lJ10gPSBzY2hlbWUKKyAgICAgICAgICAgIGlmIG5ldGxvYzoKKyAgICAgICAgICAgICAgICBpZiAnOicgbm90IGluIG5ldGxvYzoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2NoZW1lID09ICdodHRwJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldGxvYyArPSAnOjgwJworICAgICAgICAgICAgICAgICAgICBlbGlmIHNjaGVtZSA9PSAnaHR0cHMnOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV0bG9jICs9ICc6NDQzJworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biBzY2hlbWU6ICVyIiAlIHNjaGVtZSkKKyAgICAgICAgICAgICAgICBob3N0LCBwb3J0ID0gbmV0bG9jLnNwbGl0KCc6JywgMSkKKyAgICAgICAgICAgICAgICBlbnZbJ1NFUlZFUl9QT1JUJ10gPSBwb3J0CisgICAgICAgICAgICAgICAgZW52WydTRVJWRVJfTkFNRSddID0gaG9zdAorICAgICAgICAgICAgICAgIGVudlsnSFRUUF9IT1NUJ10gPSBuZXRsb2MKKyAgICAgICAgICAgIGlmIHBhdGg6CisgICAgICAgICAgICAgICAgZW52WydTQ1JJUFRfTkFNRSddID0gdXJsX3VucXVvdGUocGF0aCkKKyAgICAgICAgaWYgZW52aXJvbjoKKyAgICAgICAgICAgIGVudi51cGRhdGUoZW52aXJvbikKKyAgICAgICAgY29udGVudF90eXBlID0ga3cuZ2V0KCdjb250ZW50X3R5cGUnLCBlbnYuZ2V0KCdDT05URU5UX1RZUEUnKSkKKyAgICAgICAgaWYgaGVhZGVycyBhbmQgJ0NvbnRlbnQtVHlwZScgaW4gaGVhZGVyczoKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9IGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddCisgICAgICAgIGlmIGNvbnRlbnRfdHlwZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGt3Wydjb250ZW50X3R5cGUnXSA9IGNvbnRlbnRfdHlwZQorICAgICAgICBlbnZpcm9uX2FkZF9QT1NUKGVudiwgUE9TVCwgY29udGVudF90eXBlPWNvbnRlbnRfdHlwZSkKKyAgICAgICAgb2JqID0gY2xzKGVudiwgKiprdykKKyAgICAgICAgaWYgaGVhZGVycyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIG9iai5oZWFkZXJzLnVwZGF0ZShoZWFkZXJzKQorICAgICAgICByZXR1cm4gb2JqCisKK2NsYXNzIExlZ2FjeVJlcXVlc3QoQmFzZVJlcXVlc3QpOgorICAgIHVzY3JpcHRfbmFtZSA9IHVwYXRoX3Byb3BlcnR5KCdTQ1JJUFRfTkFNRScpCisgICAgdXBhdGhfaW5mbyA9IHVwYXRoX3Byb3BlcnR5KCdQQVRIX0lORk8nKQorCisgICAgZGVmIGVuY2dldChzZWxmLCBrZXksIGRlZmF1bHQ9Tm9EZWZhdWx0LCBlbmNhdHRyPU5vbmUpOgorICAgICAgICB2YWwgPSBzZWxmLmVudmlyb24uZ2V0KGtleSwgZGVmYXVsdCkKKyAgICAgICAgaWYgdmFsIGlzIE5vRGVmYXVsdDoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKGtleSkKKyAgICAgICAgaWYgdmFsIGlzIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICByZXR1cm4gdmFsCisKK2NsYXNzIEFkaG9jQXR0ck1peGluKG9iamVjdCk6CisgICAgX3NldGF0dHJfc3RhY2tsZXZlbCA9IDMKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBhdHRyLCB2YWx1ZSwgREVGQVVMVD1vYmplY3QoKSk6CisgICAgICAgIGlmIChnZXRhdHRyKHNlbGYuX19jbGFzc19fLCBhdHRyLCBERUZBVUxUKSBpcyBub3QgREVGQVVMVCBvcgorICAgICAgICAgICAgICAgICAgICBhdHRyLnN0YXJ0c3dpdGgoJ18nKSk6CisgICAgICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgYXR0ciwgdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmVudmlyb24uc2V0ZGVmYXVsdCgnd2Vib2IuYWRob2NfYXR0cnMnLCB7fSlbYXR0cl0gPSB2YWx1ZQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIsIERFRkFVTFQ9b2JqZWN0KCkpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9uWyd3ZWJvYi5hZGhvY19hdHRycyddW2F0dHJdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKGF0dHIpCisKKyAgICBkZWYgX19kZWxhdHRyX18oc2VsZiwgYXR0ciwgREVGQVVMVD1vYmplY3QoKSk6CisgICAgICAgIGlmIGdldGF0dHIoc2VsZi5fX2NsYXNzX18sIGF0dHIsIERFRkFVTFQpIGlzIG5vdCBERUZBVUxUOgorICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX2RlbGF0dHJfXyhzZWxmLCBhdHRyKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWwgc2VsZi5lbnZpcm9uWyd3ZWJvYi5hZGhvY19hdHRycyddW2F0dHJdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKGF0dHIpCisKK2NsYXNzIFJlcXVlc3QoQWRob2NBdHRyTWl4aW4sIEJhc2VSZXF1ZXN0KToKKyAgICAiIiIgVGhlIGRlZmF1bHQgcmVxdWVzdCBpbXBsZW1lbnRhdGlvbiAiIiIKKworZGVmIGVudmlyb25fZnJvbV91cmwocGF0aCk6CisgICAgaWYgU0NIRU1FX1JFLnNlYXJjaChwYXRoKToKKyAgICAgICAgc2NoZW1lLCBuZXRsb2MsIHBhdGgsIHFzLCBmcmFnbWVudCA9IHVybHBhcnNlLnVybHNwbGl0KHBhdGgpCisgICAgICAgIGlmIGZyYWdtZW50OgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJQYXRoIGNhbm5vdCBjb250YWluIGEgZnJhZ21lbnQgKCVyKSIgJSBmcmFnbWVudCkKKyAgICAgICAgaWYgcXM6CisgICAgICAgICAgICBwYXRoICs9ICc/JyArIHFzCisgICAgICAgIGlmICc6JyBub3QgaW4gbmV0bG9jOgorICAgICAgICAgICAgaWYgc2NoZW1lID09ICdodHRwJzoKKyAgICAgICAgICAgICAgICBuZXRsb2MgKz0gJzo4MCcKKyAgICAgICAgICAgIGVsaWYgc2NoZW1lID09ICdodHRwcyc6CisgICAgICAgICAgICAgICAgbmV0bG9jICs9ICc6NDQzJworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlVua25vd24gc2NoZW1lOiAlciIgJSBzY2hlbWUpCisgICAgZWxzZToKKyAgICAgICAgc2NoZW1lID0gJ2h0dHAnCisgICAgICAgIG5ldGxvYyA9ICdsb2NhbGhvc3Q6ODAnCisgICAgaWYgcGF0aCBhbmQgJz8nIGluIHBhdGg6CisgICAgICAgIHBhdGhfaW5mbywgcXVlcnlfc3RyaW5nID0gcGF0aC5zcGxpdCgnPycsIDEpCisgICAgICAgIHBhdGhfaW5mbyA9IHVybF91bnF1b3RlKHBhdGhfaW5mbykKKyAgICBlbHNlOgorICAgICAgICBwYXRoX2luZm8gPSB1cmxfdW5xdW90ZShwYXRoKQorICAgICAgICBxdWVyeV9zdHJpbmcgPSAnJworICAgIGVudiA9IHsKKyAgICAgICAgJ1JFUVVFU1RfTUVUSE9EJzogJ0dFVCcsCisgICAgICAgICdTQ1JJUFRfTkFNRSc6ICcnLAorICAgICAgICAnUEFUSF9JTkZPJzogcGF0aF9pbmZvIG9yICcnLAorICAgICAgICAnUVVFUllfU1RSSU5HJzogcXVlcnlfc3RyaW5nLAorICAgICAgICAnU0VSVkVSX05BTUUnOiBuZXRsb2Muc3BsaXQoJzonKVswXSwKKyAgICAgICAgJ1NFUlZFUl9QT1JUJzogbmV0bG9jLnNwbGl0KCc6JylbMV0sCisgICAgICAgICdIVFRQX0hPU1QnOiBuZXRsb2MsCisgICAgICAgICdTRVJWRVJfUFJPVE9DT0wnOiAnSFRUUC8xLjAnLAorICAgICAgICAnd3NnaS52ZXJzaW9uJzogKDEsIDApLAorICAgICAgICAnd3NnaS51cmxfc2NoZW1lJzogc2NoZW1lLAorICAgICAgICAnd3NnaS5pbnB1dCc6IGlvLkJ5dGVzSU8oKSwKKyAgICAgICAgJ3dzZ2kuZXJyb3JzJzogc3lzLnN0ZGVyciwKKyAgICAgICAgJ3dzZ2kubXVsdGl0aHJlYWQnOiBGYWxzZSwKKyAgICAgICAgJ3dzZ2kubXVsdGlwcm9jZXNzJzogRmFsc2UsCisgICAgICAgICd3c2dpLnJ1bl9vbmNlJzogRmFsc2UsCisgICAgICAgICMnd2Vib2IuaXNfYm9keV9zZWVrYWJsZSc6IFRydWUsCisgICAgfQorICAgIHJldHVybiBlbnYKKworCitkZWYgZW52aXJvbl9hZGRfUE9TVChlbnYsIGRhdGEsIGNvbnRlbnRfdHlwZT1Ob25lKToKKyAgICBpZiBkYXRhIGlzIE5vbmU6CisgICAgICAgIHJldHVybgorICAgIGVsaWYgaXNpbnN0YW5jZShkYXRhLCB0ZXh0X3R5cGUpOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgZGF0YSA9IGRhdGEuZW5jb2RlKCdhc2NpaScpCisgICAgaWYgZW52WydSRVFVRVNUX01FVEhPRCddIG5vdCBpbiAoJ1BPU1QnLCAnUFVUJyk6CisgICAgICAgIGVudlsnUkVRVUVTVF9NRVRIT0QnXSA9ICdQT1NUJworICAgIGhhc19maWxlcyA9IEZhbHNlCisgICAgaWYgaGFzYXR0cihkYXRhLCAnaXRlbXMnKToKKyAgICAgICAgZGF0YSA9IGxpc3QoZGF0YS5pdGVtcygpKQorICAgICAgICBmb3IgaywgdiBpbiBkYXRhOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2LCAodHVwbGUsIGxpc3QpKToKKyAgICAgICAgICAgICAgICBoYXNfZmlsZXMgPSBUcnVlCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICBpZiBjb250ZW50X3R5cGUgaXMgTm9uZToKKyAgICAgICAgaWYgaGFzX2ZpbGVzOgorICAgICAgICAgICAgY29udGVudF90eXBlID0gJ211bHRpcGFydC9mb3JtLWRhdGEnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb250ZW50X3R5cGUgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJworICAgIGlmIGNvbnRlbnRfdHlwZS5zdGFydHN3aXRoKCdtdWx0aXBhcnQvZm9ybS1kYXRhJyk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIGJ5dGVzKToKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZSwgZGF0YSA9IF9lbmNvZGVfbXVsdGlwYXJ0KGRhdGEsIGNvbnRlbnRfdHlwZSkKKyAgICBlbGlmIGNvbnRlbnRfdHlwZS5zdGFydHN3aXRoKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKToKKyAgICAgICAgaWYgaGFzX2ZpbGVzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignU3VibWl0aW5nIGZpbGVzIGlzIG5vdCBhbGxvd2VkIGZvcicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBjb250ZW50IHR5cGUgYCVzYCcgJSBjb250ZW50X3R5cGUpCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIGJ5dGVzKToKKyAgICAgICAgICAgIGRhdGEgPSB1cmxfZW5jb2RlKGRhdGEpCisgICAgZWxzZToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZGF0YSwgYnl0ZXMpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGxlYXNlIHByb3ZpZGUgYFBPU1RgIGRhdGEgYXMgc3RyaW5nJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIGZvciBjb250ZW50IHR5cGUgYCVzYCcgJSBjb250ZW50X3R5cGUpCisgICAgZGF0YSA9IGJ5dGVzXyhkYXRhLCAndXRmOCcpCisgICAgZW52Wyd3c2dpLmlucHV0J10gPSBpby5CeXRlc0lPKGRhdGEpCisgICAgZW52Wyd3ZWJvYi5pc19ib2R5X3NlZWthYmxlJ10gPSBUcnVlCisgICAgZW52WydDT05URU5UX0xFTkdUSCddID0gc3RyKGxlbihkYXRhKSkKKyAgICBlbnZbJ0NPTlRFTlRfVFlQRSddID0gY29udGVudF90eXBlCisKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyBIZWxwZXIgY2xhc3NlcyBhbmQgbW9ua2V5cGF0Y2hpbmcKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY2xhc3MgRGlzY29ubmVjdGlvbkVycm9yKElPRXJyb3IpOgorICAgIHBhc3MKKworCitjbGFzcyBMaW1pdGVkTGVuZ3RoRmlsZShpby5SYXdJT0Jhc2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlLCBtYXhsZW4pOgorICAgICAgICBzZWxmLmZpbGUgPSBmaWxlCisgICAgICAgIHNlbGYubWF4bGVuID0gbWF4bGVuCisgICAgICAgIHNlbGYucmVtYWluaW5nID0gbWF4bGVuCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzKCVyLCBtYXhsZW49JXMpPicgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgIHNlbGYuZmlsZSwKKyAgICAgICAgICAgIHNlbGYubWF4bGVuCisgICAgICAgICkKKworICAgIGRlZiBmaWxlbm8oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmZpbGUuZmlsZW5vKCkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcmVhZGFibGUoKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiByZWFkaW50byhzZWxmLCBidWZmKToKKyAgICAgICAgaWYgbm90IHNlbGYucmVtYWluaW5nOgorICAgICAgICAgICAgcmV0dXJuIDAKKyAgICAgICAgc3owID0gbWluKGxlbihidWZmKSwgc2VsZi5yZW1haW5pbmcpCisgICAgICAgIGRhdGEgPSBzZWxmLmZpbGUucmVhZChzejApCisgICAgICAgIHN6ID0gbGVuKGRhdGEpCisgICAgICAgIHNlbGYucmVtYWluaW5nIC09IHN6CisgICAgICAgICNpZiBub3QgZGF0YToKKyAgICAgICAgaWYgc3ogPCBzejAgYW5kIHNlbGYucmVtYWluaW5nOgorICAgICAgICAgICAgcmFpc2UgRGlzY29ubmVjdGlvbkVycm9yKAorICAgICAgICAgICAgICAgICJUaGUgY2xpZW50IGRpc2Nvbm5lY3RlZCB3aGlsZSBzZW5kaW5nIHRoZSBQT1NUL1BVVCBib2R5ICIKKyAgICAgICAgICAgICAgICArICIoJWQgbW9yZSBieXRlcyB3ZXJlIGV4cGVjdGVkKSIgJSBzZWxmLnJlbWFpbmluZworICAgICAgICAgICAgKQorICAgICAgICBidWZmWzpzel0gPSBkYXRhCisgICAgICAgIHJldHVybiBzegorCisKK2RlZiBfY2dpX0ZpZWxkU3RvcmFnZV9fcmVwcl9fcGF0Y2goc2VsZik6CisgICAgIiIiIG1vbmtleSBwYXRjaCBmb3IgRmllbGRTdG9yYWdlLl9fcmVwcl9fCisKKyAgICBVbmJlbGlldmFibHksIHRoZSBkZWZhdWx0IF9fcmVwcl9fIG9uIEZpZWxkU3RvcmFnZSByZWFkcworICAgIHRoZSBlbnRpcmUgZmlsZSBjb250ZW50IGluc3RlYWQgb2YgYmVpbmcgc2FuZSBhYm91dCBpdC4KKyAgICBUaGlzIGlzIGEgc2ltcGxlIHJlcGxhY2VtZW50IHRoYXQgZG9lc24ndCBkbyB0aGF0CisgICAgIiIiCisgICAgaWYgc2VsZi5maWxlOgorICAgICAgICByZXR1cm4gIkZpZWxkU3RvcmFnZSglciwgJXIpIiAlIChzZWxmLm5hbWUsIHNlbGYuZmlsZW5hbWUpCisgICAgcmV0dXJuICJGaWVsZFN0b3JhZ2UoJXIsICVyLCAlcikiICUgKHNlbGYubmFtZSwgc2VsZi5maWxlbmFtZSwgc2VsZi52YWx1ZSkKKworY2dpX0ZpZWxkU3RvcmFnZS5fX3JlcHJfXyA9IF9jZ2lfRmllbGRTdG9yYWdlX19yZXByX19wYXRjaAorCitjbGFzcyBGYWtlQ0dJQm9keShpby5SYXdJT0Jhc2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YXJzLCBjb250ZW50X3R5cGUpOgorICAgICAgICBpZiBjb250ZW50X3R5cGUuc3RhcnRzd2l0aCgnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpOgorICAgICAgICAgICAgaWYgbm90IF9nZXRfbXVsdGlwYXJ0X2JvdW5kYXJ5KGNvbnRlbnRfdHlwZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ29udGVudC10eXBlOiAlciBkb2VzIG5vdCBjb250YWluIGJvdW5kYXJ5JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgY29udGVudF90eXBlKQorICAgICAgICBzZWxmLnZhcnMgPSB2YXJzCisgICAgICAgIHNlbGYuY29udGVudF90eXBlID0gY29udGVudF90eXBlCisgICAgICAgIHNlbGYuZmlsZSA9IE5vbmUKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgaW5uZXIgPSByZXByKHNlbGYudmFycykKKyAgICAgICAgaWYgbGVuKGlubmVyKSA+IDIwOgorICAgICAgICAgICAgaW5uZXIgPSBpbm5lcls6MTVdICsgJy4uLicgKyBpbm5lclstNTpdCisgICAgICAgIHJldHVybiAnPCVzIGF0IDB4JXggdmlld2luZyAlcz4nICUgKAorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICBhYnMoaWQoc2VsZikpLCBpbm5lcikKKworICAgIGRlZiBmaWxlbm8oc2VsZik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHJlYWRhYmxlKCk6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgcmVhZGludG8oc2VsZiwgYnVmZik6CisgICAgICAgIGlmIHNlbGYuZmlsZSBpcyBOb25lOgorICAgICAgICAgICAgaWYgc2VsZi5jb250ZW50X3R5cGUuc3RhcnRzd2l0aCgKKyAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk6CisgICAgICAgICAgICAgICAgZGF0YSA9ICcmJy5qb2luKAorICAgICAgICAgICAgICAgICAgICAnJXM9JXMnICUgKHF1b3RlX3BsdXMoYnl0ZXNfKGssICd1dGY4JykpLCBxdW90ZV9wbHVzKGJ5dGVzXyh2LCAndXRmOCcpKSkKKyAgICAgICAgICAgICAgICAgICAgZm9yIGssdiBpbiBzZWxmLnZhcnMuaXRlbXMoKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGUgPSBpby5CeXRlc0lPKGJ5dGVzXyhkYXRhKSkKKyAgICAgICAgICAgIGVsaWYgc2VsZi5jb250ZW50X3R5cGUuc3RhcnRzd2l0aCgnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpOgorICAgICAgICAgICAgICAgIHNlbGYuZmlsZSA9IF9lbmNvZGVfbXVsdGlwYXJ0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnZhcnMuaXRlbXMoKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250ZW50X3R5cGUsCisgICAgICAgICAgICAgICAgICAgIGZvdXQ9aW8uQnl0ZXNJTygpCisgICAgICAgICAgICAgICAgKVsxXQorICAgICAgICAgICAgICAgIHNlbGYuZmlsZS5zZWVrKDApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFzc2VydCAwLCAoJ0JhZCBjb250ZW50IHR5cGU6ICVyJyAlIHNlbGYuY29udGVudF90eXBlKQorICAgICAgICByZXR1cm4gc2VsZi5maWxlLnJlYWRpbnRvKGJ1ZmYpCisKKworZGVmIF9nZXRfbXVsdGlwYXJ0X2JvdW5kYXJ5KGN0eXBlKToKKyAgICBtID0gcmUuc2VhcmNoKHInYm91bmRhcnk9KFteIF0rKScsIGN0eXBlLCByZS5JKQorICAgIGlmIG06CisgICAgICAgIHJldHVybiBuYXRpdmVfKG0uZ3JvdXAoMSkuc3RyaXAoJyInKSkKKworCitkZWYgX2VuY29kZV9tdWx0aXBhcnQodmFycywgY29udGVudF90eXBlLCBmb3V0PU5vbmUpOgorICAgICIiIkVuY29kZSBhIG11bHRpcGFydCByZXF1ZXN0IGJvZHkgaW50byBhIHN0cmluZyIiIgorICAgIGYgPSBmb3V0IG9yIGlvLkJ5dGVzSU8oKQorICAgIHcgPSBmLndyaXRlCisgICAgd3QgPSBsYW1iZGEgdDogZi53cml0ZSh0LmVuY29kZSgndXRmOCcpKQorICAgIENSTEYgPSBiJ1xyXG4nCisgICAgYm91bmRhcnkgPSBfZ2V0X211bHRpcGFydF9ib3VuZGFyeShjb250ZW50X3R5cGUpCisgICAgaWYgbm90IGJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IG5hdGl2ZV8oYmluYXNjaWkuaGV4bGlmeShvcy51cmFuZG9tKDEwKSkpCisgICAgICAgIGNvbnRlbnRfdHlwZSArPSAoJzsgYm91bmRhcnk9JXMnICUgYm91bmRhcnkpCisgICAgZm9yIG5hbWUsIHZhbHVlIGluIHZhcnM6CisgICAgICAgIHcoYictLScpCisgICAgICAgIHd0KGJvdW5kYXJ5KQorICAgICAgICB3KENSTEYpCisgICAgICAgIGFzc2VydCBuYW1lIGlzIG5vdCBOb25lLCAnVmFsdWUgYXNzb2NpYXRlZCB3aXRoIG5vIG5hbWU6ICVyJyAlIHZhbHVlCisgICAgICAgIHd0KCdDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9IiVzIicgJSBuYW1lKQorICAgICAgICBmaWxlbmFtZSA9IE5vbmUKKyAgICAgICAgaWYgZ2V0YXR0cih2YWx1ZSwgJ2ZpbGVuYW1lJywgTm9uZSk6CisgICAgICAgICAgICBmaWxlbmFtZSA9IHZhbHVlLmZpbGVuYW1lCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKGxpc3QsIHR1cGxlKSk6CisgICAgICAgICAgICBmaWxlbmFtZSwgdmFsdWUgPSB2YWx1ZQorICAgICAgICAgICAgaWYgaGFzYXR0cih2YWx1ZSwgJ3JlYWQnKToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlYWQoKQorCisgICAgICAgIGlmIGZpbGVuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd3QoJzsgZmlsZW5hbWU9IiVzIicgJSBmaWxlbmFtZSkKKyAgICAgICAgICAgIG1pbWVfdHlwZSA9IG1pbWV0eXBlcy5ndWVzc190eXBlKGZpbGVuYW1lKVswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWltZV90eXBlID0gTm9uZQorCisgICAgICAgIHcoQ1JMRikKKworICAgICAgICAjIFRPRE86IHNob3VsZCBoYW5kbGUgdmFsdWUuZGlzcG9zaXRpb25fb3B0aW9ucworICAgICAgICBpZiBnZXRhdHRyKHZhbHVlLCAndHlwZScsIE5vbmUpOgorICAgICAgICAgICAgd3QoJ0NvbnRlbnQtdHlwZTogJXMnICUgdmFsdWUudHlwZSkKKyAgICAgICAgICAgIGlmIHZhbHVlLnR5cGVfb3B0aW9uczoKKyAgICAgICAgICAgICAgICBmb3IgY3RfbmFtZSwgY3RfdmFsdWUgaW4gc29ydGVkKHZhbHVlLnR5cGVfb3B0aW9ucy5pdGVtcygpKToKKyAgICAgICAgICAgICAgICAgICAgd3QoJzsgJXM9IiVzIicgJSAoY3RfbmFtZSwgY3RfdmFsdWUpKQorICAgICAgICAgICAgdyhDUkxGKQorICAgICAgICBlbGlmIG1pbWVfdHlwZToKKyAgICAgICAgICAgIHd0KCdDb250ZW50LXR5cGU6ICVzJyAlIG1pbWVfdHlwZSkKKyAgICAgICAgICAgIHcoQ1JMRikKKyAgICAgICAgdyhDUkxGKQorICAgICAgICBpZiBoYXNhdHRyKHZhbHVlLCAndmFsdWUnKToKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudmFsdWUKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgYnl0ZXMpOgorICAgICAgICAgICAgdyh2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHd0KHZhbHVlKQorICAgICAgICB3KENSTEYpCisgICAgd3QoJy0tJXMtLScgJSBib3VuZGFyeSkKKyAgICBpZiBmb3V0OgorICAgICAgICByZXR1cm4gY29udGVudF90eXBlLCBmb3V0CisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRfdHlwZSwgZi5nZXR2YWx1ZSgpCisKK2RlZiBkZXRlY3RfY2hhcnNldChjdHlwZSk6CisgICAgbSA9IENIQVJTRVRfUkUuc2VhcmNoKGN0eXBlKQorICAgIGlmIG06CisgICAgICAgIHJldHVybiBtLmdyb3VwKDEpLnN0cmlwKCciJykuc3RyaXAoKQorCitkZWYgX2lzX3V0ZjgoY2hhcnNldCk6CisgICAgaWYgbm90IGNoYXJzZXQ6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGNoYXJzZXQubG93ZXIoKS5yZXBsYWNlKCctJywgJycpID09ICd1dGY4JworCisKK2NsYXNzIFRyYW5zY29kZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhcnNldCwgZXJyb3JzPSdzdHJpY3QnKToKKyAgICAgICAgc2VsZi5jaGFyc2V0ID0gY2hhcnNldCAjIHNvdXJjZSBjaGFyc2V0CisgICAgICAgIHNlbGYuZXJyb3JzID0gZXJyb3JzICMgdW5pY29kZSBlcnJvcnMKKyAgICAgICAgc2VsZi5fdHJhbnMgPSBsYW1iZGEgYjogYi5kZWNvZGUoY2hhcnNldCwgZXJyb3JzKS5lbmNvZGUoJ3V0ZjgnKQorCisgICAgZGVmIHRyYW5zY29kZV9xdWVyeShzZWxmLCBxKToKKyAgICAgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgIHFfb3JpZyA9IHEKKyAgICAgICAgICAgIGlmICc9JyBub3QgaW4gcToKKyAgICAgICAgICAgICAgICAjIHRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBmb3JtIHN1Ym1pc3Npb24KKyAgICAgICAgICAgICAgICByZXR1cm4gcV9vcmlnCisgICAgICAgICAgICBxID0gbGlzdChwYXJzZV9xc2xfdGV4dChxLCBzZWxmLmNoYXJzZXQpKQorICAgICAgICAgICAgcmV0dXJuIHVybF9lbmNvZGUocSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHFfb3JpZyA9IHEKKyAgICAgICAgICAgIGlmICc9JyBub3QgaW4gcToKKyAgICAgICAgICAgICAgICAjIHRoaXMgZG9lc24ndCBsb29rIGxpa2UgYSBmb3JtIHN1Ym1pc3Npb24KKyAgICAgICAgICAgICAgICByZXR1cm4gcV9vcmlnCisgICAgICAgICAgICBxID0gdXJscGFyc2UucGFyc2VfcXNsKHEsIHNlbGYuY2hhcnNldCkKKyAgICAgICAgICAgIHQgPSBzZWxmLl90cmFucworICAgICAgICAgICAgcSA9IFsodChrKSwgdCh2KSkgZm9yIGssdiBpbiBxXQorICAgICAgICAgICAgcmV0dXJuIHVybF9lbmNvZGUocSkKKworICAgIGRlZiB0cmFuc2NvZGVfZnMoc2VsZiwgZnMsIGNvbnRlbnRfdHlwZSk6CisgICAgICAgICMgdHJhbnNjb2RlIEZpZWxkU3RvcmFnZQorICAgICAgICBpZiBQWTM6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgZGVjb2RlID0gbGFtYmRhIGI6IGIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRlY29kZSA9IGxhbWJkYSBiOiBiLmRlY29kZShzZWxmLmNoYXJzZXQsIHNlbGYuZXJyb3JzKQorICAgICAgICBkYXRhID0gW10KKyAgICAgICAgZm9yIGZpZWxkIGluIGZzLmxpc3Qgb3IgKCk6CisgICAgICAgICAgICBmaWVsZC5uYW1lID0gZGVjb2RlKGZpZWxkLm5hbWUpCisgICAgICAgICAgICBpZiBmaWVsZC5maWxlbmFtZToKKyAgICAgICAgICAgICAgICBmaWVsZC5maWxlbmFtZSA9IGRlY29kZShmaWVsZC5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICBkYXRhLmFwcGVuZCgoZmllbGQubmFtZSwgZmllbGQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkYXRhLmFwcGVuZCgoZmllbGQubmFtZSwgZGVjb2RlKGZpZWxkLnZhbHVlKSkpCisKKyAgICAgICAgIyBUT0RPOiB0cmFuc2NvZGUgYmlnIHJlcXVlc3RzIHRvIHRlbXAgZmlsZQorICAgICAgICBjb250ZW50X3R5cGUsIGZvdXQgPSBfZW5jb2RlX211bHRpcGFydCgKKyAgICAgICAgICAgIGRhdGEsCisgICAgICAgICAgICBjb250ZW50X3R5cGUsCisgICAgICAgICAgICBmb3V0PWlvLkJ5dGVzSU8oKQorICAgICAgICApCisgICAgICAgIHJldHVybiBmb3V0CisKKyMgVE9ETzogcmVtb3ZlIGluIDEuNAorZm9yIF9uYW1lIGluICdHRVQgUE9TVCBwYXJhbXMgY29va2llcycuc3BsaXQoKToKKyAgICBfc3RyX25hbWUgPSAnc3RyXycrX25hbWUKKyAgICBfcHJvcCA9IGRlcHJlY2F0ZWRfcHJvcGVydHkoCisgICAgICAgIE5vbmUsIF9zdHJfbmFtZSwKKyAgICAgICAgImRpc2FibGVkIHN0YXJ0aW5nIFdlYk9iIDEuMiwgdXNlICVzIGluc3RlYWQiICUgX25hbWUsICcxLjInKQorICAgIHNldGF0dHIoQmFzZVJlcXVlc3QsIF9zdHJfbmFtZSwgX3Byb3ApCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvcmVzcG9uc2UucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvcmVzcG9uc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE2NDkzOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi9yZXNwb25zZS5weQpAQCAtMCwwICsxLDEzMDAgQEAKK2Zyb20gYmFzZTY0IGltcG9ydCBiNjRlbmNvZGUKK2Zyb20gZGF0ZXRpbWUgaW1wb3J0ICgKKyAgICBkYXRldGltZSwKKyAgICB0aW1lZGVsdGEsCisgICAgKQorZnJvbSBoYXNobGliIGltcG9ydCBtZDUKK2ltcG9ydCByZQoraW1wb3J0IHN0cnVjdAoraW1wb3J0IHpsaWIKK3RyeToKKyAgICBpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IGpzb24KKworZnJvbSB3ZWJvYi5ieXRlcmFuZ2UgaW1wb3J0IENvbnRlbnRSYW5nZQorCitmcm9tIHdlYm9iLmNhY2hlY29udHJvbCBpbXBvcnQgKAorICAgIENhY2hlQ29udHJvbCwKKyAgICBzZXJpYWxpemVfY2FjaGVfY29udHJvbCwKKyAgICApCisKK2Zyb20gd2Vib2IuY29tcGF0IGltcG9ydCAoCisgICAgUFkzLAorICAgIGJ5dGVzXywKKyAgICBuYXRpdmVfLAorICAgIHRleHRfdHlwZSwKKyAgICB1cmxfcXVvdGUsCisgICAgdXJscGFyc2UsCisgICAgKQorCitmcm9tIHdlYm9iLmNvb2tpZXMgaW1wb3J0ICgKKyAgICBDb29raWUsCisgICAgbWFrZV9jb29raWUsCisgICAgKQorCitmcm9tIHdlYm9iLmRhdGV0aW1lX3V0aWxzIGltcG9ydCAoCisgICAgcGFyc2VfZGF0ZV9kZWx0YSwKKyAgICBzZXJpYWxpemVfZGF0ZV9kZWx0YSwKKyAgICB0aW1lZGVsdGFfdG9fc2Vjb25kcywKKyAgICApCisKK2Zyb20gd2Vib2IuZGVzY3JpcHRvcnMgaW1wb3J0ICgKKyAgICBDSEFSU0VUX1JFLAorICAgIFNDSEVNRV9SRSwKKyAgICBjb252ZXJ0ZXIsCisgICAgZGF0ZV9oZWFkZXIsCisgICAgaGVhZGVyX2dldHRlciwKKyAgICBsaXN0X2hlYWRlciwKKyAgICBwYXJzZV9hdXRoLAorICAgIHBhcnNlX2NvbnRlbnRfcmFuZ2UsCisgICAgcGFyc2VfZXRhZ19yZXNwb25zZSwKKyAgICBwYXJzZV9pbnQsCisgICAgcGFyc2VfaW50X3NhZmUsCisgICAgc2VyaWFsaXplX2F1dGgsCisgICAgc2VyaWFsaXplX2NvbnRlbnRfcmFuZ2UsCisgICAgc2VyaWFsaXplX2V0YWdfcmVzcG9uc2UsCisgICAgc2VyaWFsaXplX2ludCwKKyAgICApCisKK2Zyb20gd2Vib2IuaGVhZGVycyBpbXBvcnQgUmVzcG9uc2VIZWFkZXJzCitmcm9tIHdlYm9iLnJlcXVlc3QgaW1wb3J0IEJhc2VSZXF1ZXN0Citmcm9tIHdlYm9iLnV0aWwgaW1wb3J0IHN0YXR1c19yZWFzb25zLCBzdGF0dXNfZ2VuZXJpY19yZWFzb25zCisKK19fYWxsX18gPSBbJ1Jlc3BvbnNlJ10KKworX1BBUkFNX1JFID0gcmUuY29tcGlsZShyJyhbYS16MC05XSspPSg/OiIoW14iXSopInwoW2EtejAtOV8uLV0qKSknLCByZS5JKQorX09LX1BBUkFNX1JFID0gcmUuY29tcGlsZShyJ15bYS16MC05Xy4tXSskJywgcmUuSSkKKworX2d6aXBfaGVhZGVyID0gYidceDFmXHg4Ylx4MDhceDAwXHgwMFx4MDBceDAwXHgwMFx4MDJceGZmJworCitjbGFzcyBSZXNwb25zZShvYmplY3QpOgorICAgICIiIgorICAgICAgICBSZXByZXNlbnRzIGEgV1NHSSByZXNwb25zZQorICAgICIiIgorCisgICAgZGVmYXVsdF9jb250ZW50X3R5cGUgPSAndGV4dC9odG1sJworICAgIGRlZmF1bHRfY2hhcnNldCA9ICdVVEYtOCcgIyBUT0RPOiBkZXByZWNhdGUKKyAgICB1bmljb2RlX2Vycm9ycyA9ICdzdHJpY3QnICMgVE9ETzogZGVwcmVjYXRlICh3aHkgd291bGQgcmVzcG9uc2UgYm9keSBoYXZlIGVycm9ycz8pCisgICAgZGVmYXVsdF9jb25kaXRpb25hbF9yZXNwb25zZSA9IEZhbHNlCisgICAgcmVxdWVzdCA9IE5vbmUKKyAgICBlbnZpcm9uID0gTm9uZQorCisgICAgIworICAgICMgX19pbml0X18sIGZyb21fZmlsZSwgY29weQorICAgICMKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBib2R5PU5vbmUsIHN0YXR1cz1Ob25lLCBoZWFkZXJsaXN0PU5vbmUsIGFwcF9pdGVyPU5vbmUsCisgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT1Ob25lLCBjb25kaXRpb25hbF9yZXNwb25zZT1Ob25lLAorICAgICAgICAgICAgICAgICAqKmt3KToKKyAgICAgICAgaWYgYXBwX2l0ZXIgaXMgTm9uZSBhbmQgYm9keSBpcyBOb25lIGFuZCAoJ2pzb25fYm9keScgaW4ga3cgb3IgJ2pzb24nIGluIGt3KToKKyAgICAgICAgICAgIGlmICdqc29uX2JvZHknIGluIGt3OgorICAgICAgICAgICAgICAgIGpzb25fYm9keSA9IGt3LnBvcCgnanNvbl9ib2R5JykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAganNvbl9ib2R5ID0ga3cucG9wKCdqc29uJykKKyAgICAgICAgICAgIGJvZHkgPSBqc29uLmR1bXBzKGpzb25fYm9keSwgc2VwYXJhdG9ycz0oJywnLCAnOicpKQorICAgICAgICAgICAgaWYgY29udGVudF90eXBlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL2pzb24nCisgICAgICAgIGlmIGFwcF9pdGVyIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBib2R5IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYm9keSA9IGInJworICAgICAgICBlbGlmIGJvZHkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIllvdSBtYXkgb25seSBnaXZlIG9uZSBvZiB0aGUgYm9keSBhbmQgYXBwX2l0ZXIgYXJndW1lbnRzIikKKyAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9zdGF0dXMgPSAnMjAwIE9LJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKKyAgICAgICAgaWYgaGVhZGVybGlzdCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5faGVhZGVybGlzdCA9IFtdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9oZWFkZXJsaXN0ID0gaGVhZGVybGlzdAorICAgICAgICBzZWxmLl9oZWFkZXJzID0gTm9uZQorICAgICAgICBpZiBjb250ZW50X3R5cGUgaXMgTm9uZToKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9IHNlbGYuZGVmYXVsdF9jb250ZW50X3R5cGUKKyAgICAgICAgY2hhcnNldCA9IE5vbmUKKyAgICAgICAgaWYgJ2NoYXJzZXQnIGluIGt3OgorICAgICAgICAgICAgY2hhcnNldCA9IGt3LnBvcCgnY2hhcnNldCcpCisgICAgICAgIGVsaWYgc2VsZi5kZWZhdWx0X2NoYXJzZXQ6CisgICAgICAgICAgICBpZiAoY29udGVudF90eXBlCisgICAgICAgICAgICAgICAgYW5kICdjaGFyc2V0PScgbm90IGluIGNvbnRlbnRfdHlwZQorICAgICAgICAgICAgICAgIGFuZCAoY29udGVudF90eXBlID09ICd0ZXh0L2h0bWwnCisgICAgICAgICAgICAgICAgICAgIG9yIGNvbnRlbnRfdHlwZS5zdGFydHN3aXRoKCd0ZXh0LycpCisgICAgICAgICAgICAgICAgICAgIG9yIGNvbnRlbnRfdHlwZS5zdGFydHN3aXRoKCdhcHBsaWNhdGlvbi94bWwnKQorICAgICAgICAgICAgICAgICAgICBvciBjb250ZW50X3R5cGUuc3RhcnRzd2l0aCgnYXBwbGljYXRpb24vanNvbicpCisgICAgICAgICAgICAgICAgICAgIG9yIChjb250ZW50X3R5cGUuc3RhcnRzd2l0aCgnYXBwbGljYXRpb24vJykKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgKGNvbnRlbnRfdHlwZS5lbmRzd2l0aCgnK3htbCcpIG9yIGNvbnRlbnRfdHlwZS5lbmRzd2l0aCgnK2pzb24nKSkpKSk6CisgICAgICAgICAgICAgICAgY2hhcnNldCA9IHNlbGYuZGVmYXVsdF9jaGFyc2V0CisgICAgICAgIGlmIGNvbnRlbnRfdHlwZSBhbmQgY2hhcnNldDoKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZSArPSAnOyBjaGFyc2V0PScgKyBjaGFyc2V0CisgICAgICAgIGVsaWYgc2VsZi5faGVhZGVybGlzdCBhbmQgY2hhcnNldDoKKyAgICAgICAgICAgIHNlbGYuY2hhcnNldCA9IGNoYXJzZXQKKyAgICAgICAgaWYgbm90IHNlbGYuX2hlYWRlcmxpc3QgYW5kIGNvbnRlbnRfdHlwZToKKyAgICAgICAgICAgIHNlbGYuX2hlYWRlcmxpc3QuYXBwZW5kKCgnQ29udGVudC1UeXBlJywgY29udGVudF90eXBlKSkKKyAgICAgICAgaWYgY29uZGl0aW9uYWxfcmVzcG9uc2UgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY29uZGl0aW9uYWxfcmVzcG9uc2UgPSBzZWxmLmRlZmF1bHRfY29uZGl0aW9uYWxfcmVzcG9uc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY29uZGl0aW9uYWxfcmVzcG9uc2UgPSBib29sKGNvbmRpdGlvbmFsX3Jlc3BvbnNlKQorICAgICAgICBpZiBhcHBfaXRlciBpcyBOb25lOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShib2R5LCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgICAgIGlmIGNoYXJzZXQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgIllvdSBjYW5ub3Qgc2V0IHRoZSBib2R5IHRvIGEgdGV4dCB2YWx1ZSB3aXRob3V0IGEgIgorICAgICAgICAgICAgICAgICAgICAgICAgImNoYXJzZXQiKQorICAgICAgICAgICAgICAgIGJvZHkgPSBib2R5LmVuY29kZShjaGFyc2V0KQorICAgICAgICAgICAgYXBwX2l0ZXIgPSBbYm9keV0KKyAgICAgICAgICAgIGlmIGhlYWRlcmxpc3QgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLl9oZWFkZXJsaXN0LmFwcGVuZCgoJ0NvbnRlbnQtTGVuZ3RoJywgc3RyKGxlbihib2R5KSkpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10gPSBzdHIobGVuKGJvZHkpKQorICAgICAgICBzZWxmLl9hcHBfaXRlciA9IGFwcF9pdGVyCisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdy5pdGVtcygpOgorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi5fX2NsYXNzX18sIG5hbWUpOgorICAgICAgICAgICAgICAgICMgTm90IGEgYmFzaWMgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiVW5leHBlY3RlZCBrZXl3b3JkOiAlcz0lciIgJSAobmFtZSwgdmFsdWUpKQorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCB2YWx1ZSkKKworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fZmlsZShjbHMsIGZwKToKKyAgICAgICAgIiIiUmVhZHMgYSByZXNwb25zZSBmcm9tIGEgZmlsZS1saWtlIG9iamVjdCAoaXQgbXVzdCBpbXBsZW1lbnQKKyAgICAgICAgYGAucmVhZChzaXplKWBgIGFuZCBgYC5yZWFkbGluZSgpYGApLgorCisgICAgICAgIEl0IHdpbGwgcmVhZCB1cCB0byB0aGUgZW5kIG9mIHRoZSByZXNwb25zZSwgbm90IHRoZSBlbmQgb2YgdGhlCisgICAgICAgIGZpbGUuCisKKyAgICAgICAgVGhpcyByZWFkcyB0aGUgcmVzcG9uc2UgYXMgcmVwcmVzZW50ZWQgYnkgYGBzdHIocmVzcClgYDsgaXQKKyAgICAgICAgbWF5IG5vdCByZWFkIGV2ZXJ5IHZhbGlkIEhUVFAgcmVzcG9uc2UgcHJvcGVybHkuICBSZXNwb25zZXMKKyAgICAgICAgbXVzdCBoYXZlIGEgYGBDb250ZW50LUxlbmd0aGBgIiIiCisgICAgICAgIGhlYWRlcmxpc3QgPSBbXQorICAgICAgICBzdGF0dXMgPSBmcC5yZWFkbGluZSgpLnN0cmlwKCkKKyAgICAgICAgaXNfdGV4dCA9IGlzaW5zdGFuY2Uoc3RhdHVzLCB0ZXh0X3R5cGUpCisgICAgICAgIGlmIGlzX3RleHQ6CisgICAgICAgICAgICBfY29sb24gPSAnOicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIF9jb2xvbiA9IGInOicKKyAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIGxpbmUgPSBmcC5yZWFkbGluZSgpLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIG5vdCBsaW5lOgorICAgICAgICAgICAgICAgICMgZW5kIG9mIGhlYWRlcnMKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGhlYWRlcl9uYW1lLCB2YWx1ZSA9IGxpbmUuc3BsaXQoX2NvbG9uLCAxKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIGhlYWRlciBsaW5lOiAlcicgJSBsaW5lKQorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zdHJpcCgpCisgICAgICAgICAgICBoZWFkZXJsaXN0LmFwcGVuZCgoCisgICAgICAgICAgICAgICAgbmF0aXZlXyhoZWFkZXJfbmFtZSwgJ2xhdGluLTEnKSwKKyAgICAgICAgICAgICAgICBuYXRpdmVfKHZhbHVlLCAnbGF0aW4tMScpCisgICAgICAgICAgICApKQorICAgICAgICByID0gY2xzKAorICAgICAgICAgICAgc3RhdHVzPXN0YXR1cywKKyAgICAgICAgICAgIGhlYWRlcmxpc3Q9aGVhZGVybGlzdCwKKyAgICAgICAgICAgIGFwcF9pdGVyPSgpLAorICAgICAgICApCisgICAgICAgIGJvZHkgPSBmcC5yZWFkKHIuY29udGVudF9sZW5ndGggb3IgMCkKKyAgICAgICAgaWYgaXNfdGV4dDoKKyAgICAgICAgICAgIHIudGV4dCA9IGJvZHkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHIuYm9keSA9IGJvZHkKKyAgICAgICAgcmV0dXJuIHIKKworICAgIGRlZiBjb3B5KHNlbGYpOgorICAgICAgICAiIiJNYWtlcyBhIGNvcHkgb2YgdGhlIHJlc3BvbnNlIiIiCisgICAgICAgICMgd2UgbmVlZCB0byBkbyB0aGlzIGZvciBhcHBfaXRlciB0byBiZSByZXVzYWJsZQorICAgICAgICBhcHBfaXRlciA9IGxpc3Qoc2VsZi5fYXBwX2l0ZXIpCisgICAgICAgIGl0ZXJfY2xvc2Uoc2VsZi5fYXBwX2l0ZXIpCisgICAgICAgICMgYW5kIHRoaXMgdG8gbWFrZSBzdXJlIGFwcF9pdGVyIGluc3RhbmNlcyBhcmUgZGlmZmVyZW50CisgICAgICAgIHNlbGYuX2FwcF9pdGVyID0gbGlzdChhcHBfaXRlcikKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKAorICAgICAgICAgICAgY29udGVudF90eXBlPUZhbHNlLAorICAgICAgICAgICAgc3RhdHVzPXNlbGYuX3N0YXR1cywKKyAgICAgICAgICAgIGhlYWRlcmxpc3Q9c2VsZi5faGVhZGVybGlzdFs6XSwKKyAgICAgICAgICAgIGFwcF9pdGVyPWFwcF9pdGVyLAorICAgICAgICAgICAgY29uZGl0aW9uYWxfcmVzcG9uc2U9c2VsZi5jb25kaXRpb25hbF9yZXNwb25zZSkKKworCisgICAgIworICAgICMgX19yZXByX18sIF9fc3RyX18KKyAgICAjCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPCVzIGF0IDB4JXggJXM+JyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgYWJzKGlkKHNlbGYpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdHVzKQorCisgICAgZGVmIF9fc3RyX18oc2VsZiwgc2tpcF9ib2R5PUZhbHNlKToKKyAgICAgICAgcGFydHMgPSBbc2VsZi5zdGF0dXNdCisgICAgICAgIGlmIG5vdCBza2lwX2JvZHk6CisgICAgICAgICAgICAjIEZvcmNlIGVudW1lcmF0aW9uIG9mIHRoZSBib2R5ICh0byBzZXQgY29udGVudC1sZW5ndGgpCisgICAgICAgICAgICBzZWxmLmJvZHkKKyAgICAgICAgcGFydHMgKz0gbWFwKCclczogJXMnLl9fbW9kX18sIHNlbGYuaGVhZGVybGlzdCkKKyAgICAgICAgaWYgbm90IHNraXBfYm9keSBhbmQgc2VsZi5ib2R5OgorICAgICAgICAgICAgcGFydHMgKz0gWycnLCBzZWxmLnRleHQgaWYgUFkzIGVsc2Ugc2VsZi5ib2R5XQorICAgICAgICByZXR1cm4gJ1xyXG4nLmpvaW4ocGFydHMpCisKKyAgICAjCisgICAgIyBzdGF0dXMsIHN0YXR1c19jb2RlL3N0YXR1c19pbnQKKyAgICAjCisKKyAgICBkZWYgX3N0YXR1c19fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIHN0YXR1cyBzdHJpbmcKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9zdGF0dXMKKworICAgIGRlZiBfc3RhdHVzX19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb2RlID0gaW50KHZhbHVlKQorICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnN0YXR1c19jb2RlID0gY29kZQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIFBZMzogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBieXRlcyk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5kZWNvZGUoJ2FzY2lpJykKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5lbmNvZGUoJ2FzY2lpJykKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIllvdSBtdXN0IHNldCBzdGF0dXMgdG8gYSBzdHJpbmcgb3IgaW50ZWdlciAobm90ICVzKSIKKyAgICAgICAgICAgICAgICAlIHR5cGUodmFsdWUpKQorCisgICAgICAgICMgQXR0ZW1wdCB0byBnZXQgdGhlIHN0YXR1cyBjb2RlIGl0c2VsZiwgaWYgdGhpcyBmYWlscyB3ZSBzaG91bGQgZmFpbAorICAgICAgICBzdGF0dXNfY29kZSA9IGludCh2YWx1ZS5zcGxpdCgpWzBdKQorICAgICAgICBzZWxmLl9zdGF0dXMgPSB2YWx1ZQorCisgICAgc3RhdHVzID0gcHJvcGVydHkoX3N0YXR1c19fZ2V0LCBfc3RhdHVzX19zZXQsIGRvYz1fc3RhdHVzX19nZXQuX19kb2NfXykKKworICAgIGRlZiBfc3RhdHVzX2NvZGVfX2dldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSBzdGF0dXMgYXMgYW4gaW50ZWdlcgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGludChzZWxmLl9zdGF0dXMuc3BsaXQoKVswXSkKKworICAgIGRlZiBfc3RhdHVzX2NvZGVfX3NldChzZWxmLCBjb2RlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fc3RhdHVzID0gJyVkICVzJyAlIChjb2RlLCBzdGF0dXNfcmVhc29uc1tjb2RlXSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgc2VsZi5fc3RhdHVzID0gJyVkICVzJyAlIChjb2RlLCBzdGF0dXNfZ2VuZXJpY19yZWFzb25zW2NvZGUgLy8gMTAwXSkKKworICAgIHN0YXR1c19jb2RlID0gc3RhdHVzX2ludCA9IHByb3BlcnR5KF9zdGF0dXNfY29kZV9fZ2V0LCBfc3RhdHVzX2NvZGVfX3NldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvYz1fc3RhdHVzX2NvZGVfX2dldC5fX2RvY19fKQorCisKKyAgICAjCisgICAgIyBoZWFkZXJzbGlzdCwgaGVhZGVycworICAgICMKKworICAgIGRlZiBfaGVhZGVybGlzdF9fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIGxpc3Qgb2YgcmVzcG9uc2UgaGVhZGVycworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hlYWRlcmxpc3QKKworICAgIGRlZiBfaGVhZGVybGlzdF9fc2V0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5faGVhZGVycyA9IE5vbmUKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgorICAgICAgICAgICAgaWYgaGFzYXR0cih2YWx1ZSwgJ2l0ZW1zJyk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5pdGVtcygpCisgICAgICAgICAgICB2YWx1ZSA9IGxpc3QodmFsdWUpCisgICAgICAgIHNlbGYuX2hlYWRlcmxpc3QgPSB2YWx1ZQorCisgICAgZGVmIF9oZWFkZXJsaXN0X19kZWwoc2VsZik6CisgICAgICAgIHNlbGYuaGVhZGVybGlzdCA9IFtdCisKKyAgICBoZWFkZXJsaXN0ID0gcHJvcGVydHkoX2hlYWRlcmxpc3RfX2dldCwgX2hlYWRlcmxpc3RfX3NldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgX2hlYWRlcmxpc3RfX2RlbCwgZG9jPV9oZWFkZXJsaXN0X19nZXQuX19kb2NfXykKKworICAgIGRlZiBfaGVhZGVyc19fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIGhlYWRlcnMgaW4gYSBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9oZWFkZXJzIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9oZWFkZXJzID0gUmVzcG9uc2VIZWFkZXJzLnZpZXdfbGlzdChzZWxmLmhlYWRlcmxpc3QpCisgICAgICAgIHJldHVybiBzZWxmLl9oZWFkZXJzCisKKyAgICBkZWYgX2hlYWRlcnNfX3NldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIGhhc2F0dHIodmFsdWUsICdpdGVtcycpOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5pdGVtcygpCisgICAgICAgIHNlbGYuaGVhZGVybGlzdCA9IHZhbHVlCisgICAgICAgIHNlbGYuX2hlYWRlcnMgPSBOb25lCisKKyAgICBoZWFkZXJzID0gcHJvcGVydHkoX2hlYWRlcnNfX2dldCwgX2hlYWRlcnNfX3NldCwgZG9jPV9oZWFkZXJzX19nZXQuX19kb2NfXykKKworCisgICAgIworICAgICMgYm9keQorICAgICMKKworICAgIGRlZiBfYm9keV9fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlLCBhcyBhIGBgc3RyYGAuICBUaGlzIHdpbGwgcmVhZCBpbiB0aGUKKyAgICAgICAgZW50aXJlIGFwcF9pdGVyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgIiIiCisgICAgICAgIGFwcF9pdGVyID0gc2VsZi5fYXBwX2l0ZXIKKyMgICAgICAgICB0cnk6CisjICAgICAgICAgICAgIGlmIGxlbihhcHBfaXRlcikgPT0gMToKKyMgICAgICAgICAgICAgICAgIHJldHVybiBhcHBfaXRlclswXQorIyAgICAgICAgIGV4Y2VwdDoKKyMgICAgICAgICAgICAgcGFzcworICAgICAgICBpZiBpc2luc3RhbmNlKGFwcF9pdGVyLCBsaXN0KSBhbmQgbGVuKGFwcF9pdGVyKSA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIGFwcF9pdGVyWzBdCisgICAgICAgIGlmIGFwcF9pdGVyIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiTm8gYm9keSBoYXMgYmVlbiBzZXQiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBib2R5ID0gYicnLmpvaW4oYXBwX2l0ZXIpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBpdGVyX2Nsb3NlKGFwcF9pdGVyKQorICAgICAgICBpZiBpc2luc3RhbmNlKGJvZHksIHRleHRfdHlwZSk6CisgICAgICAgICAgICByYWlzZSBfZXJyb3JfdW5pY29kZV9pbl9hcHBfaXRlcihhcHBfaXRlciwgYm9keSkKKyAgICAgICAgc2VsZi5fYXBwX2l0ZXIgPSBbYm9keV0KKyAgICAgICAgaWYgbGVuKGJvZHkpID09IDA6CisgICAgICAgICAgICAjIGlmIGJvZHktbGVuZ3RoIGlzIHplcm8sIHdlIGFzc3VtZSBpdCdzIGEgSEVBRCByZXNwb25zZSBhbmQKKyAgICAgICAgICAgICMgbGVhdmUgY29udGVudF9sZW5ndGggYWxvbmUKKyAgICAgICAgICAgIHBhc3MgIyBwcmFnbWE6IG5vIGNvdmVyIChubyBpZGVhIHdoeSBuZWNlc3NhcnksIGl0J3MgaGl0KQorICAgICAgICBlbGlmIHNlbGYuY29udGVudF9sZW5ndGggaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuY29udGVudF9sZW5ndGggPSBsZW4oYm9keSkKKyAgICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfbGVuZ3RoICE9IGxlbihib2R5KToKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAorICAgICAgICAgICAgICAgICJDb250ZW50LUxlbmd0aCBpcyBkaWZmZXJlbnQgZnJvbSBhY3R1YWwgYXBwX2l0ZXIgbGVuZ3RoICIKKyAgICAgICAgICAgICAgICAiKCVyIT0lcikiCisgICAgICAgICAgICAgICAgJSAoc2VsZi5jb250ZW50X2xlbmd0aCwgbGVuKGJvZHkpKQorICAgICAgICAgICAgKQorICAgICAgICByZXR1cm4gYm9keQorCisgICAgZGVmIF9ib2R5X19zZXQoc2VsZiwgdmFsdWU9YicnKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIGJ5dGVzKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHRleHRfdHlwZSk6CisgICAgICAgICAgICAgICAgbXNnID0gKCJZb3UgY2Fubm90IHNldCBSZXNwb25zZS5ib2R5IHRvIGEgdGV4dCBvYmplY3QgIgorICAgICAgICAgICAgICAgICAgICAgICAiKHVzZSBSZXNwb25zZS50ZXh0KSIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1zZyA9ICgiWW91IGNhbiBvbmx5IHNldCB0aGUgYm9keSB0byBhIGJpbmFyeSB0eXBlIChub3QgJXMpIiAlCisgICAgICAgICAgICAgICAgICAgICAgIHR5cGUodmFsdWUpKQorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZykKKyAgICAgICAgaWYgc2VsZi5fYXBwX2l0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmNvbnRlbnRfbWQ1ID0gTm9uZQorICAgICAgICBzZWxmLl9hcHBfaXRlciA9IFt2YWx1ZV0KKyAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCA9IGxlbih2YWx1ZSkKKworIyAgICAgZGVmIF9ib2R5X19kZWwoc2VsZik6CisjICAgICAgICAgc2VsZi5ib2R5ID0gJycKKyMgICAgICAgICAjc2VsZi5jb250ZW50X2xlbmd0aCA9IE5vbmUKKworICAgIGJvZHkgPSBwcm9wZXJ0eShfYm9keV9fZ2V0LCBfYm9keV9fc2V0LCBfYm9keV9fc2V0KQorCisgICAgZGVmIF9qc29uX2JvZHlfX2dldChzZWxmKToKKyAgICAgICAgIiIiQWNjZXNzIHRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBhcyBKU09OIiIiCisgICAgICAgICMgTm90ZTogVVRGLTggaXMgYSBjb250ZW50LXR5cGUgc3BlY2lmaWMgZGVmYXVsdCBmb3IgSlNPTjoKKyAgICAgICAgcmV0dXJuIGpzb24ubG9hZHMoc2VsZi5ib2R5LmRlY29kZShzZWxmLmNoYXJzZXQgb3IgJ1VURi04JykpCisKKyAgICBkZWYgX2pzb25fYm9keV9fc2V0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5ib2R5ID0ganNvbi5kdW1wcyh2YWx1ZSwgc2VwYXJhdG9ycz0oJywnLCAnOicpKS5lbmNvZGUoc2VsZi5jaGFyc2V0IG9yICdVVEYtOCcpCisKKyAgICBkZWYgX2pzb25fYm9keV9fZGVsKHNlbGYpOgorICAgICAgICBkZWwgc2VsZi5ib2R5CisKKyAgICBqc29uID0ganNvbl9ib2R5ID0gcHJvcGVydHkoX2pzb25fYm9keV9fZ2V0LCBfanNvbl9ib2R5X19zZXQsIF9qc29uX2JvZHlfX2RlbCkKKworCisgICAgIworICAgICMgdGV4dCwgdW5pY29kZV9ib2R5LCB1Ym9keQorICAgICMKKworICAgIGRlZiBfdGV4dF9fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0L3NldCB0aGUgdGV4dCB2YWx1ZSBvZiB0aGUgYm9keSAodXNpbmcgdGhlIGNoYXJzZXQgb2YgdGhlCisgICAgICAgIENvbnRlbnQtVHlwZSkKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmNoYXJzZXQ6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IGNhbm5vdCBhY2Nlc3MgUmVzcG9uc2UudGV4dCB1bmxlc3MgY2hhcnNldCBpcyBzZXQiKQorICAgICAgICBib2R5ID0gc2VsZi5ib2R5CisgICAgICAgIHJldHVybiBib2R5LmRlY29kZShzZWxmLmNoYXJzZXQsIHNlbGYudW5pY29kZV9lcnJvcnMpCisKKyAgICBkZWYgX3RleHRfX3NldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIG5vdCBzZWxmLmNoYXJzZXQ6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IGNhbm5vdCBhY2Nlc3MgUmVzcG9uc2UudGV4dCB1bmxlc3MgY2hhcnNldCBpcyBzZXQiKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgdGV4dF90eXBlKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAiWW91IGNhbiBvbmx5IHNldCBSZXNwb25zZS50ZXh0IHRvIGEgdW5pY29kZSBzdHJpbmcgIgorICAgICAgICAgICAgICAgICIobm90ICVzKSIgJSB0eXBlKHZhbHVlKSkKKyAgICAgICAgc2VsZi5ib2R5ID0gdmFsdWUuZW5jb2RlKHNlbGYuY2hhcnNldCkKKworICAgIGRlZiBfdGV4dF9fZGVsKHNlbGYpOgorICAgICAgICBkZWwgc2VsZi5ib2R5CisKKyAgICB0ZXh0ID0gcHJvcGVydHkoX3RleHRfX2dldCwgX3RleHRfX3NldCwgX3RleHRfX2RlbCwgZG9jPV90ZXh0X19nZXQuX19kb2NfXykKKworICAgIHVuaWNvZGVfYm9keSA9IHVib2R5ID0gcHJvcGVydHkoX3RleHRfX2dldCwgX3RleHRfX3NldCwgX3RleHRfX2RlbCwKKyAgICAgICAgIkRlcHJlY2F0ZWQgYWxpYXMgZm9yIC50ZXh0IikKKworICAgICMKKyAgICAjIGJvZHlfZmlsZSwgd3JpdGUodGV4dCkKKyAgICAjCisKKyAgICBkZWYgX2JvZHlfZmlsZV9fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQSBmaWxlLWxpa2Ugb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gd3JpdGUgdG8gdGhlCisgICAgICAgIGJvZHkuICBJZiB5b3UgcGFzc2VkIGluIGEgbGlzdCBhcHBfaXRlciwgdGhhdCBhcHBfaXRlciB3aWxsIGJlCisgICAgICAgIG1vZGlmaWVkIGJ5IHdyaXRlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBSZXNwb25zZUJvZHlGaWxlKHNlbGYpCisKKyAgICBkZWYgX2JvZHlfZmlsZV9fc2V0KHNlbGYsIGZpbGUpOgorICAgICAgICBzZWxmLmFwcF9pdGVyID0gaXRlcl9maWxlKGZpbGUpCisKKyAgICBkZWYgX2JvZHlfZmlsZV9fZGVsKHNlbGYpOgorICAgICAgICBkZWwgc2VsZi5ib2R5CisKKyAgICBib2R5X2ZpbGUgPSBwcm9wZXJ0eShfYm9keV9maWxlX19nZXQsIF9ib2R5X2ZpbGVfX3NldCwgX2JvZHlfZmlsZV9fZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRvYz1fYm9keV9maWxlX19nZXQuX19kb2NfXykKKworICAgIGRlZiB3cml0ZShzZWxmLCB0ZXh0KToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodGV4dCwgYnl0ZXMpOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodGV4dCwgdGV4dF90eXBlKToKKyAgICAgICAgICAgICAgICBtc2cgPSAiWW91IGNhbiBvbmx5IHdyaXRlIHN0ciB0byBhIFJlc3BvbnNlLmJvZHlfZmlsZSwgbm90ICVzIgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cgJSB0eXBlKHRleHQpKQorICAgICAgICAgICAgaWYgbm90IHNlbGYuY2hhcnNldDoKKyAgICAgICAgICAgICAgICBtc2cgPSAoIllvdSBjYW4gb25seSB3cml0ZSB0ZXh0IHRvIFJlc3BvbnNlIGlmIGNoYXJzZXQgaGFzICIKKyAgICAgICAgICAgICAgICAgICAgICAgImJlZW4gc2V0IikKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorICAgICAgICAgICAgdGV4dCA9IHRleHQuZW5jb2RlKHNlbGYuY2hhcnNldCkKKyAgICAgICAgYXBwX2l0ZXIgPSBzZWxmLl9hcHBfaXRlcgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhcHBfaXRlciwgbGlzdCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbmV3X2FwcF9pdGVyID0gc2VsZi5fYXBwX2l0ZXIgPSBsaXN0KGFwcF9pdGVyKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBpdGVyX2Nsb3NlKGFwcF9pdGVyKQorICAgICAgICAgICAgYXBwX2l0ZXIgPSBuZXdfYXBwX2l0ZXIKKyAgICAgICAgICAgIHNlbGYuY29udGVudF9sZW5ndGggPSBzdW0obGVuKGNodW5rKSBmb3IgY2h1bmsgaW4gYXBwX2l0ZXIpCisgICAgICAgIGFwcF9pdGVyLmFwcGVuZCh0ZXh0KQorICAgICAgICBpZiBzZWxmLmNvbnRlbnRfbGVuZ3RoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCArPSBsZW4odGV4dCkKKworCisKKyAgICAjCisgICAgIyBhcHBfaXRlcgorICAgICMKKworICAgIGRlZiBfYXBwX2l0ZXJfX2dldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIGFwcF9pdGVyIG9mIHRoZSByZXNwb25zZS4KKworICAgICAgICBJZiBib2R5IHdhcyBzZXQsIHRoaXMgd2lsbCBjcmVhdGUgYW4gYXBwX2l0ZXIgZnJvbSB0aGF0IGJvZHkKKyAgICAgICAgKGEgc2luZ2xlLWl0ZW0gbGlzdCkKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBfaXRlcgorCisgICAgZGVmIF9hcHBfaXRlcl9fc2V0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgaWYgc2VsZi5fYXBwX2l0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIFVuZG8gdGhlIGF1dG9tYXRpY2FsbHktc2V0IGNvbnRlbnQtbGVuZ3RoCisgICAgICAgICAgICBzZWxmLmNvbnRlbnRfbGVuZ3RoID0gTm9uZQorICAgICAgICAgICAgc2VsZi5jb250ZW50X21kNSA9IE5vbmUKKyAgICAgICAgc2VsZi5fYXBwX2l0ZXIgPSB2YWx1ZQorCisgICAgZGVmIF9hcHBfaXRlcl9fZGVsKHNlbGYpOgorICAgICAgICBzZWxmLl9hcHBfaXRlciA9IFtdCisgICAgICAgIHNlbGYuY29udGVudF9sZW5ndGggPSBOb25lCisKKyAgICBhcHBfaXRlciA9IHByb3BlcnR5KF9hcHBfaXRlcl9fZ2V0LCBfYXBwX2l0ZXJfX3NldCwgX2FwcF9pdGVyX19kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICBkb2M9X2FwcF9pdGVyX19nZXQuX19kb2NfXykKKworCisKKyAgICAjCisgICAgIyBoZWFkZXJzIGF0dHJzCisgICAgIworCisgICAgYWxsb3cgPSBsaXN0X2hlYWRlcignQWxsb3cnLCAnMTQuNycpCisgICAgIyBUT0RPOiAobWF5YmUpIHN1cHBvcnQgcmVzcG9uc2UudmFyeSArPSAnc29tZXRoaW5nJworICAgICMgVE9ETzogc2FtZSB0aGluZyBmb3IgYWxsIGxpc3R5IGhlYWRlcnMKKyAgICB2YXJ5ID0gbGlzdF9oZWFkZXIoJ1ZhcnknLCAnMTQuNDQnKQorCisgICAgY29udGVudF9sZW5ndGggPSBjb252ZXJ0ZXIoCisgICAgICAgIGhlYWRlcl9nZXR0ZXIoJ0NvbnRlbnQtTGVuZ3RoJywgJzE0LjE3JyksCisgICAgICAgIHBhcnNlX2ludCwgc2VyaWFsaXplX2ludCwgJ2ludCcpCisKKyAgICBjb250ZW50X2VuY29kaW5nID0gaGVhZGVyX2dldHRlcignQ29udGVudC1FbmNvZGluZycsICcxNC4xMScpCisgICAgY29udGVudF9sYW5ndWFnZSA9IGxpc3RfaGVhZGVyKCdDb250ZW50LUxhbmd1YWdlJywgJzE0LjEyJykKKyAgICBjb250ZW50X2xvY2F0aW9uID0gaGVhZGVyX2dldHRlcignQ29udGVudC1Mb2NhdGlvbicsICcxNC4xNCcpCisgICAgY29udGVudF9tZDUgPSBoZWFkZXJfZ2V0dGVyKCdDb250ZW50LU1ENScsICcxNC4xNCcpCisgICAgY29udGVudF9kaXNwb3NpdGlvbiA9IGhlYWRlcl9nZXR0ZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb24nLCAnMTkuNS4xJykKKworICAgIGFjY2VwdF9yYW5nZXMgPSBoZWFkZXJfZ2V0dGVyKCdBY2NlcHQtUmFuZ2VzJywgJzE0LjUnKQorICAgIGNvbnRlbnRfcmFuZ2UgPSBjb252ZXJ0ZXIoCisgICAgICAgIGhlYWRlcl9nZXR0ZXIoJ0NvbnRlbnQtUmFuZ2UnLCAnMTQuMTYnKSwKKyAgICAgICAgcGFyc2VfY29udGVudF9yYW5nZSwgc2VyaWFsaXplX2NvbnRlbnRfcmFuZ2UsICdDb250ZW50UmFuZ2Ugb2JqZWN0JykKKworICAgIGRhdGUgPSBkYXRlX2hlYWRlcignRGF0ZScsICcxNC4xOCcpCisgICAgZXhwaXJlcyA9IGRhdGVfaGVhZGVyKCdFeHBpcmVzJywgJzE0LjIxJykKKyAgICBsYXN0X21vZGlmaWVkID0gZGF0ZV9oZWFkZXIoJ0xhc3QtTW9kaWZpZWQnLCAnMTQuMjknKQorCisgICAgX2V0YWdfcmF3ID0gaGVhZGVyX2dldHRlcignRVRhZycsICcxNC4xOScpCisgICAgZXRhZyA9IGNvbnZlcnRlcihfZXRhZ19yYXcsCisgICAgICAgIHBhcnNlX2V0YWdfcmVzcG9uc2UsIHNlcmlhbGl6ZV9ldGFnX3Jlc3BvbnNlLAorICAgICAgICAnRW50aXR5IHRhZycKKyAgICApCisgICAgQHByb3BlcnR5CisgICAgZGVmIGV0YWdfc3Ryb25nKHNlbGYpOgorICAgICAgICByZXR1cm4gcGFyc2VfZXRhZ19yZXNwb25zZShzZWxmLl9ldGFnX3Jhdywgc3Ryb25nPVRydWUpCisKKyAgICBsb2NhdGlvbiA9IGhlYWRlcl9nZXR0ZXIoJ0xvY2F0aW9uJywgJzE0LjMwJykKKyAgICBwcmFnbWEgPSBoZWFkZXJfZ2V0dGVyKCdQcmFnbWEnLCAnMTQuMzInKQorICAgIGFnZSA9IGNvbnZlcnRlcigKKyAgICAgICAgaGVhZGVyX2dldHRlcignQWdlJywgJzE0LjYnKSwKKyAgICAgICAgcGFyc2VfaW50X3NhZmUsIHNlcmlhbGl6ZV9pbnQsICdpbnQnKQorCisgICAgcmV0cnlfYWZ0ZXIgPSBjb252ZXJ0ZXIoCisgICAgICAgIGhlYWRlcl9nZXR0ZXIoJ1JldHJ5LUFmdGVyJywgJzE0LjM3JyksCisgICAgICAgIHBhcnNlX2RhdGVfZGVsdGEsIHNlcmlhbGl6ZV9kYXRlX2RlbHRhLCAnSFRUUCBkYXRlIG9yIGRlbHRhIHNlY29uZHMnKQorCisgICAgc2VydmVyID0gaGVhZGVyX2dldHRlcignU2VydmVyJywgJzE0LjM4JykKKworICAgICMgVE9ETzogdGhlIHN0YW5kYXJkIGFsbG93cyB0aGlzIHRvIGJlIGEgbGlzdCBvZiBjaGFsbGVuZ2VzCisgICAgd3d3X2F1dGhlbnRpY2F0ZSA9IGNvbnZlcnRlcigKKyAgICAgICAgaGVhZGVyX2dldHRlcignV1dXLUF1dGhlbnRpY2F0ZScsICcxNC40NycpLAorICAgICAgICBwYXJzZV9hdXRoLCBzZXJpYWxpemVfYXV0aCwKKyAgICApCisKKworICAgICMKKyAgICAjIGNoYXJzZXQKKyAgICAjCisKKyAgICBkZWYgX2NoYXJzZXRfX2dldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldC9zZXQgdGhlIGNoYXJzZXQgKGluIHRoZSBDb250ZW50LVR5cGUpCisgICAgICAgICIiIgorICAgICAgICBoZWFkZXIgPSBzZWxmLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKQorICAgICAgICBpZiBub3QgaGVhZGVyOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgbWF0Y2ggPSBDSEFSU0VUX1JFLnNlYXJjaChoZWFkZXIpCisgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgcmV0dXJuIG1hdGNoLmdyb3VwKDEpCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgX2NoYXJzZXRfX3NldChzZWxmLCBjaGFyc2V0KToKKyAgICAgICAgaWYgY2hhcnNldCBpcyBOb25lOgorICAgICAgICAgICAgZGVsIHNlbGYuY2hhcnNldAorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGhlYWRlciA9IHNlbGYuaGVhZGVycy5wb3AoJ0NvbnRlbnQtVHlwZScsIE5vbmUpCisgICAgICAgIGlmIGhlYWRlciBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIllvdSBjYW5ub3Qgc2V0IHRoZSBjaGFyc2V0IHdoZW4gbm8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRlbnQtdHlwZSBpcyBkZWZpbmVkIikKKyAgICAgICAgbWF0Y2ggPSBDSEFSU0VUX1JFLnNlYXJjaChoZWFkZXIpCisgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgaGVhZGVyID0gaGVhZGVyWzptYXRjaC5zdGFydCgpXSArIGhlYWRlclttYXRjaC5lbmQoKTpdCisgICAgICAgIGhlYWRlciArPSAnOyBjaGFyc2V0PSVzJyAlIGNoYXJzZXQKKyAgICAgICAgc2VsZi5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IGhlYWRlcgorCisgICAgZGVmIF9jaGFyc2V0X19kZWwoc2VsZik6CisgICAgICAgIGhlYWRlciA9IHNlbGYuaGVhZGVycy5wb3AoJ0NvbnRlbnQtVHlwZScsIE5vbmUpCisgICAgICAgIGlmIGhlYWRlciBpcyBOb25lOgorICAgICAgICAgICAgIyBEb24ndCBuZWVkIHRvIHJlbW92ZSBhbnl0aGluZworICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG1hdGNoID0gQ0hBUlNFVF9SRS5zZWFyY2goaGVhZGVyKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIGhlYWRlciA9IGhlYWRlcls6bWF0Y2guc3RhcnQoKV0gKyBoZWFkZXJbbWF0Y2guZW5kKCk6XQorICAgICAgICBzZWxmLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gaGVhZGVyCisKKyAgICBjaGFyc2V0ID0gcHJvcGVydHkoX2NoYXJzZXRfX2dldCwgX2NoYXJzZXRfX3NldCwgX2NoYXJzZXRfX2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgZG9jPV9jaGFyc2V0X19nZXQuX19kb2NfXykKKworCisgICAgIworICAgICMgY29udGVudF90eXBlCisgICAgIworCisgICAgZGVmIF9jb250ZW50X3R5cGVfX2dldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldC9zZXQgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgKG9yIE5vbmUpLCAqd2l0aG91dCogdGhlCisgICAgICAgIGNoYXJzZXQgb3IgYW55IHBhcmFtZXRlcnMuCisKKyAgICAgICAgSWYgeW91IGluY2x1ZGUgcGFyYW1ldGVycyAob3IgYGA7YGAgYXQgYWxsKSB3aGVuIHNldHRpbmcgdGhlCisgICAgICAgIGNvbnRlbnRfdHlwZSwgYW55IGV4aXN0aW5nIHBhcmFtZXRlcnMgd2lsbCBiZSBkZWxldGVkOworICAgICAgICBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHByZXNlcnZlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGhlYWRlciA9IHNlbGYuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpCisgICAgICAgIGlmIG5vdCBoZWFkZXI6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gaGVhZGVyLnNwbGl0KCc7JywgMSlbMF0KKworICAgIGRlZiBfY29udGVudF90eXBlX19zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICBzZWxmLl9jb250ZW50X3R5cGVfX2RlbCgpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgJzsnIG5vdCBpbiB2YWx1ZToKKyAgICAgICAgICAgIGhlYWRlciA9IHNlbGYuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScsICcnKQorICAgICAgICAgICAgaWYgJzsnIGluIGhlYWRlcjoKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSBoZWFkZXIuc3BsaXQoJzsnLCAxKVsxXQorICAgICAgICAgICAgICAgIHZhbHVlICs9ICc7JyArIHBhcmFtcworICAgICAgICBzZWxmLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gdmFsdWUKKworICAgIGRlZiBfY29udGVudF90eXBlX19kZWwoc2VsZik6CisgICAgICAgIHNlbGYuaGVhZGVycy5wb3AoJ0NvbnRlbnQtVHlwZScsIE5vbmUpCisKKyAgICBjb250ZW50X3R5cGUgPSBwcm9wZXJ0eShfY29udGVudF90eXBlX19nZXQsIF9jb250ZW50X3R5cGVfX3NldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY29udGVudF90eXBlX19kZWwsIGRvYz1fY29udGVudF90eXBlX19nZXQuX19kb2NfXykKKworCisgICAgIworICAgICMgY29udGVudF90eXBlX3BhcmFtcworICAgICMKKworICAgIGRlZiBfY29udGVudF90eXBlX3BhcmFtc19fZ2V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQSBkaWN0aW9uYXJ5IG9mIGFsbCB0aGUgcGFyYW1ldGVycyBpbiB0aGUgY29udGVudCB0eXBlLgorCisgICAgICAgIChUaGlzIGlzIG5vdCBhIHZpZXcsIHNldCB0byBjaGFuZ2UsIG1vZGlmaWNhdGlvbnMgb2YgdGhlIGRpY3Qgd291bGQgbm90CisgICAgICAgIGJlIGFwcGxpZWQgb3RoZXJ3aXNlKQorICAgICAgICAiIiIKKyAgICAgICAgcGFyYW1zID0gc2VsZi5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJywgJycpCisgICAgICAgIGlmICc7JyBub3QgaW4gcGFyYW1zOgorICAgICAgICAgICAgcmV0dXJuIHt9CisgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zcGxpdCgnOycsIDEpWzFdCisgICAgICAgIHJlc3VsdCA9IHt9CisgICAgICAgIGZvciBtYXRjaCBpbiBfUEFSQU1fUkUuZmluZGl0ZXIocGFyYW1zKToKKyAgICAgICAgICAgIHJlc3VsdFttYXRjaC5ncm91cCgxKV0gPSBtYXRjaC5ncm91cCgyKSBvciBtYXRjaC5ncm91cCgzKSBvciAnJworICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgX2NvbnRlbnRfdHlwZV9wYXJhbXNfX3NldChzZWxmLCB2YWx1ZV9kaWN0KToKKyAgICAgICAgaWYgbm90IHZhbHVlX2RpY3Q6CisgICAgICAgICAgICBkZWwgc2VsZi5jb250ZW50X3R5cGVfcGFyYW1zCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcGFyYW1zID0gW10KKyAgICAgICAgZm9yIGssIHYgaW4gc29ydGVkKHZhbHVlX2RpY3QuaXRlbXMoKSk6CisgICAgICAgICAgICBpZiBub3QgX09LX1BBUkFNX1JFLnNlYXJjaCh2KToKKyAgICAgICAgICAgICAgICB2ID0gJyIlcyInICUgdi5yZXBsYWNlKCciJywgJ1xcIicpCisgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCc7ICVzPSVzJyAlIChrLCB2KSkKKyAgICAgICAgY3QgPSBzZWxmLmhlYWRlcnMucG9wKCdDb250ZW50LVR5cGUnLCAnJykuc3BsaXQoJzsnLCAxKVswXQorICAgICAgICBjdCArPSAnJy5qb2luKHBhcmFtcykKKyAgICAgICAgc2VsZi5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IGN0CisKKyAgICBkZWYgX2NvbnRlbnRfdHlwZV9wYXJhbXNfX2RlbChzZWxmKToKKyAgICAgICAgc2VsZi5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IHNlbGYuaGVhZGVycy5nZXQoCisgICAgICAgICAgICAnQ29udGVudC1UeXBlJywgJycpLnNwbGl0KCc7JywgMSlbMF0KKworICAgIGNvbnRlbnRfdHlwZV9wYXJhbXMgPSBwcm9wZXJ0eSgKKyAgICAgICAgX2NvbnRlbnRfdHlwZV9wYXJhbXNfX2dldCwKKyAgICAgICAgX2NvbnRlbnRfdHlwZV9wYXJhbXNfX3NldCwKKyAgICAgICAgX2NvbnRlbnRfdHlwZV9wYXJhbXNfX2RlbCwKKyAgICAgICAgX2NvbnRlbnRfdHlwZV9wYXJhbXNfX2dldC5fX2RvY19fCisgICAgKQorCisKKworCisgICAgIworICAgICMgc2V0X2Nvb2tpZSwgdW5zZXRfY29va2llLCBkZWxldGVfY29va2llLCBtZXJnZV9jb29raWVzCisgICAgIworCisgICAgZGVmIHNldF9jb29raWUoc2VsZiwgbmFtZSwgdmFsdWU9JycsIG1heF9hZ2U9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICBwYXRoPScvJywgZG9tYWluPU5vbmUsIHNlY3VyZT1GYWxzZSwgaHR0cG9ubHk9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgY29tbWVudD1Ob25lLCBleHBpcmVzPU5vbmUsIG92ZXJ3cml0ZT1GYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXQgKGFkZCkgYSBjb29raWUgZm9yIHRoZSByZXNwb25zZS4KKworICAgICAgICBBcmd1bWVudHMgYXJlOgorCisgICAgICAgIGBgbmFtZWBgCisKKyAgICAgICAgICAgVGhlIGNvb2tpZSBuYW1lLgorCisgICAgICAgIGBgdmFsdWVgYAorCisgICAgICAgICAgIFRoZSBjb29raWUgdmFsdWUsIHdoaWNoIHNob3VsZCBiZSBhIHN0cmluZyBvciBgYE5vbmVgYC4gIElmCisgICAgICAgICAgIGBgdmFsdWVgYCBpcyBgYE5vbmVgYCwgaXQncyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgdGhlCisgICAgICAgICAgIDptZXRoOmB3ZWJvYi5yZXNwb25zZS5SZXNwb25zZS51bnNldF9jb29raWVgIG1ldGhvZCBmb3IgdGhpcworICAgICAgICAgICBjb29raWUga2V5IChpdCBlZmZlY3RpdmVseSBkZWxldGVzIHRoZSBjb29raWUgb24gdGhlIGNsaWVudCkuCisKKyAgICAgICAgYGBtYXhfYWdlYGAKKworICAgICAgICAgICBBbiBpbnRlZ2VyIHJlcHJlc2VudGluZyBhIG51bWJlciBvZiBzZWNvbmRzLCBgYGRhdGV0aW1lLnRpbWVkZWx0YWBgLAorICAgICAgICAgICBvciBgYE5vbmVgYC4gVGhpcyB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBgYE1heC1BZ2VgYCBvZiB0aGUgZ2VuZXJhdGVkCisgICAgICAgICAgIGNvb2tpZS4gIElmIGBgZXhwaXJlc2BgIGlzIG5vdCBwYXNzZWQgYW5kIHRoaXMgdmFsdWUgaXMgbm90CisgICAgICAgICAgIGBgTm9uZWBgLCB0aGUgYGBtYXhfYWdlYGAgdmFsdWUgd2lsbCBhbHNvIGluZmx1ZW5jZSB0aGUgYGBFeHBpcmVzYGAKKyAgICAgICAgICAgdmFsdWUgb2YgdGhlIGNvb2tpZSAoYGBFeHBpcmVzYGAgd2lsbCBiZSBzZXQgdG8gbm93ICsgbWF4X2FnZSkuICBJZgorICAgICAgICAgICB0aGlzIHZhbHVlIGlzIGBgTm9uZWBgLCB0aGUgY29va2llIHdpbGwgbm90IGhhdmUgYSBgYE1heC1BZ2VgYCB2YWx1ZQorICAgICAgICAgICAodW5sZXNzIGBgZXhwaXJlc2BgIGlzIHNldCkuIElmIGJvdGggYGBtYXhfYWdlYGAgYW5kIGBgZXhwaXJlc2BgIGFyZQorICAgICAgICAgICBzZXQsIHRoaXMgdmFsdWUgdGFrZXMgcHJlY2VkZW5jZS4KKworICAgICAgICBgYHBhdGhgYAorCisgICAgICAgICAgIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29va2llIGBgUGF0aGBgIHZhbHVlLiAgSXQgZGVmYXVsdHMgdG8KKyAgICAgICAgICAgYGAvYGAuCisKKyAgICAgICAgYGBkb21haW5gYAorCisgICAgICAgICAgIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29va2llIGBgRG9tYWluYGAsIG9yIGBgTm9uZWBgLiAgSWYKKyAgICAgICAgICAgZG9tYWluIGlzIGBgTm9uZWBgLCBubyBgYERvbWFpbmBgIHZhbHVlIHdpbGwgYmUgc2VudCBpbiB0aGUKKyAgICAgICAgICAgY29va2llLgorCisgICAgICAgIGBgc2VjdXJlYGAKKworICAgICAgICAgICBBIGJvb2xlYW4uICBJZiBpdCdzIGBgVHJ1ZWBgLCB0aGUgYGBzZWN1cmVgYCBmbGFnIHdpbGwgYmUgc2VudCBpbgorICAgICAgICAgICB0aGUgY29va2llLCBpZiBpdCdzIGBgRmFsc2VgYCwgdGhlIGBgc2VjdXJlYGAgZmxhZyB3aWxsIG5vdCBiZQorICAgICAgICAgICBzZW50IGluIHRoZSBjb29raWUuCisKKyAgICAgICAgYGBodHRwb25seWBgCisKKyAgICAgICAgICAgQSBib29sZWFuLiAgSWYgaXQncyBgYFRydWVgYCwgdGhlIGBgSHR0cE9ubHlgYCBmbGFnIHdpbGwgYmUgc2VudAorICAgICAgICAgICBpbiB0aGUgY29va2llLCBpZiBpdCdzIGBgRmFsc2VgYCwgdGhlIGBgSHR0cE9ubHlgYCBmbGFnIHdpbGwgbm90CisgICAgICAgICAgIGJlIHNlbnQgaW4gdGhlIGNvb2tpZS4KKworICAgICAgICBgYGNvbW1lbnRgYAorCisgICAgICAgICAgIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29va2llIGBgQ29tbWVudGBgIHZhbHVlLCBvciBgYE5vbmVgYC4KKyAgICAgICAgICAgSWYgYGBjb21tZW50YGAgaXMgYGBOb25lYGAsIG5vIGBgQ29tbWVudGBgIHZhbHVlIHdpbGwgYmUgc2VudCBpbgorICAgICAgICAgICB0aGUgY29va2llLgorCisgICAgICAgIGBgZXhwaXJlc2BgCisKKyAgICAgICAgICAgQSBgYGRhdGV0aW1lLnRpbWVkZWx0YWBgIG9iamVjdCByZXByZXNlbnRpbmcgYW4gYW1vdW50IG9mIHRpbWUsCisgICAgICAgICAgIGBgZGF0ZXRpbWUuZGF0ZXRpbWVgYCBvciBgYE5vbmVgYC4gQSBub24tYGBOb25lYGAgdmFsdWUgaXMgdXNlZCB0bworICAgICAgICAgICBnZW5lcmF0ZSB0aGUgYGBFeHBpcmVzYGAgdmFsdWUgb2YgdGhlIGdlbmVyYXRlZCBjb29raWUuIElmCisgICAgICAgICAgIGBgbWF4X2FnZWBgIGlzIG5vdCBwYXNzZWQsIGJ1dCB0aGlzIHZhbHVlIGlzIG5vdCBgYE5vbmVgYCwgaXQgd2lsbAorICAgICAgICAgICBpbmZsdWVuY2UgdGhlIGBgTWF4LUFnZWBgIGhlYWRlci4gSWYgdGhpcyB2YWx1ZSBpcyBgYE5vbmVgYCwgdGhlCisgICAgICAgICAgIGBgRXhwaXJlc2BgIGNvb2tpZSB2YWx1ZSB3aWxsIGJlIHVuc2V0ICh1bmxlc3MgYGBtYXhfYWdlYGAgaXMgc2V0KS4KKyAgICAgICAgICAgSWYgYGBtYXhfYWdlYGAgaXMgc2V0LCBpdCB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBgZXhwaXJlc2BgCisgICAgICAgICAgIGFuZCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisKKyAgICAgICAgYGBvdmVyd3JpdGVgYAorCisgICAgICAgICAgIElmIHRoaXMga2V5IGlzIGBgVHJ1ZWBgLCBiZWZvcmUgc2V0dGluZyB0aGUgY29va2llLCB1bnNldCBhbnkKKyAgICAgICAgICAgZXhpc3RpbmcgY29va2llLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBvdmVyd3JpdGU6CisgICAgICAgICAgICBzZWxmLnVuc2V0X2Nvb2tpZShuYW1lLCBzdHJpY3Q9RmFsc2UpCisKKyAgICAgICAgIyBJZiBleHBpcmVzIGlzIHNldCwgYnV0IG5vdCBtYXhfYWdlIHdlIHNldCBtYXhfYWdlIHRvIGV4cGlyZXMKKyAgICAgICAgaWYgbm90IG1heF9hZ2UgYW5kIGlzaW5zdGFuY2UoZXhwaXJlcywgdGltZWRlbHRhKToKKyAgICAgICAgICAgIG1heF9hZ2UgPSBleHBpcmVzCisKKyAgICAgICAgIyBleHBpcmVzIGNhbiBhbHNvIGJlIGEgZGF0ZXRpbWUKKyAgICAgICAgaWYgbm90IG1heF9hZ2UgYW5kIGlzaW5zdGFuY2UoZXhwaXJlcywgZGF0ZXRpbWUpOgorICAgICAgICAgICAgbWF4X2FnZSA9IGV4cGlyZXMgLSBkYXRldGltZS51dGNub3coKQorCisgICAgICAgIHZhbHVlID0gYnl0ZXNfKHZhbHVlLCAndXRmLTgnKQorCisgICAgICAgIGNvb2tpZSA9IG1ha2VfY29va2llKG5hbWUsIHZhbHVlLCBtYXhfYWdlPW1heF9hZ2UsIHBhdGg9cGF0aCwKKyAgICAgICAgICAgICAgICBkb21haW49ZG9tYWluLCBzZWN1cmU9c2VjdXJlLCBodHRwb25seT1odHRwb25seSwKKyAgICAgICAgICAgICAgICBjb21tZW50PWNvbW1lbnQpCisKKyAgICAgICAgc2VsZi5oZWFkZXJsaXN0LmFwcGVuZCgoJ1NldC1Db29raWUnLCBjb29raWUpKQorCisgICAgZGVmIGRlbGV0ZV9jb29raWUoc2VsZiwgbmFtZSwgcGF0aD0nLycsIGRvbWFpbj1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIERlbGV0ZSBhIGNvb2tpZSBmcm9tIHRoZSBjbGllbnQuICBOb3RlIHRoYXQgcGF0aCBhbmQgZG9tYWluIG11c3QgbWF0Y2gKKyAgICAgICAgaG93IHRoZSBjb29raWUgd2FzIG9yaWdpbmFsbHkgc2V0LgorCisgICAgICAgIFRoaXMgc2V0cyB0aGUgY29va2llIHRvIHRoZSBlbXB0eSBzdHJpbmcsIGFuZCBtYXhfYWdlPTAgc28KKyAgICAgICAgdGhhdCBpdCBzaG91bGQgZXhwaXJlIGltbWVkaWF0ZWx5LgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5zZXRfY29va2llKG5hbWUsIE5vbmUsIHBhdGg9cGF0aCwgZG9tYWluPWRvbWFpbikKKworICAgIGRlZiB1bnNldF9jb29raWUoc2VsZiwgbmFtZSwgc3RyaWN0PVRydWUpOgorICAgICAgICAiIiIKKyAgICAgICAgVW5zZXQgYSBjb29raWUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAocmVtb3ZlIGl0IGZyb20gdGhlCisgICAgICAgIHJlc3BvbnNlKS4KKyAgICAgICAgIiIiCisgICAgICAgIGV4aXN0aW5nID0gc2VsZi5oZWFkZXJzLmdldGFsbCgnU2V0LUNvb2tpZScpCisgICAgICAgIGlmIG5vdCBleGlzdGluZyBhbmQgbm90IHN0cmljdDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBjb29raWVzID0gQ29va2llKCkKKyAgICAgICAgZm9yIGhlYWRlciBpbiBleGlzdGluZzoKKyAgICAgICAgICAgIGNvb2tpZXMubG9hZChoZWFkZXIpCisgICAgICAgIGlmIGlzaW5zdGFuY2UobmFtZSwgdGV4dF90eXBlKToKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lLmVuY29kZSgndXRmOCcpCisgICAgICAgIGlmIG5hbWUgaW4gY29va2llczoKKyAgICAgICAgICAgIGRlbCBjb29raWVzW25hbWVdCisgICAgICAgICAgICBkZWwgc2VsZi5oZWFkZXJzWydTZXQtQ29va2llJ10KKyAgICAgICAgICAgIGZvciBtIGluIGNvb2tpZXMudmFsdWVzKCk6CisgICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJsaXN0LmFwcGVuZCgoJ1NldC1Db29raWUnLCBtLnNlcmlhbGl6ZSgpKSkKKyAgICAgICAgZWxpZiBzdHJpY3Q6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcigiTm8gY29va2llIGhhcyBiZWVuIHNldCB3aXRoIHRoZSBuYW1lICVyIiAlIG5hbWUpCisKKworICAgIGRlZiBtZXJnZV9jb29raWVzKHNlbGYsIHJlc3ApOgorICAgICAgICAiIiJNZXJnZSB0aGUgY29va2llcyB0aGF0IHdlcmUgc2V0IG9uIHRoaXMgcmVzcG9uc2Ugd2l0aCB0aGUKKyAgICAgICAgZ2l2ZW4gYHJlc3BgIG9iamVjdCAod2hpY2ggY2FuIGJlIGFueSBXU0dJIGFwcGxpY2F0aW9uKS4KKworICAgICAgICBJZiB0aGUgYHJlc3BgIGlzIGEgOmNsYXNzOmB3ZWJvYi5SZXNwb25zZWAgb2JqZWN0LCB0aGVuIHRoZQorICAgICAgICBvdGhlciBvYmplY3Qgd2lsbCBiZSBtb2RpZmllZCBpbi1wbGFjZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJyk6CisgICAgICAgICAgICByZXR1cm4gcmVzcAorICAgICAgICBpZiBpc2luc3RhbmNlKHJlc3AsIFJlc3BvbnNlKToKKyAgICAgICAgICAgIGZvciBoZWFkZXIgaW4gc2VsZi5oZWFkZXJzLmdldGFsbCgnU2V0LUNvb2tpZScpOgorICAgICAgICAgICAgICAgIHJlc3AuaGVhZGVycy5hZGQoJ1NldC1Db29raWUnLCBoZWFkZXIpCisgICAgICAgICAgICByZXR1cm4gcmVzcAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY19oZWFkZXJzID0gW2ggZm9yIGggaW4gc2VsZi5oZWFkZXJsaXN0IGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgaFswXS5sb3dlcigpID09ICdzZXQtY29va2llJ10KKyAgICAgICAgICAgIGRlZiByZXBsX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICAgICAgICAgZGVmIHJlcGxfc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzLCBleGNfaW5mbz1Ob25lKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0X3Jlc3BvbnNlKHN0YXR1cywgaGVhZGVycytjX2hlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNfaW5mbz1leGNfaW5mbykKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzcChlbnZpcm9uLCByZXBsX3N0YXJ0X3Jlc3BvbnNlKQorICAgICAgICAgICAgcmV0dXJuIHJlcGxfYXBwCisKKworICAgICMKKyAgICAjIGNhY2hlX2NvbnRyb2wKKyAgICAjCisKKyAgICBfY2FjaGVfY29udHJvbF9vYmogPSBOb25lCisKKyAgICBkZWYgX2NhY2hlX2NvbnRyb2xfX2dldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldC9zZXQvbW9kaWZ5IHRoZSBDYWNoZS1Db250cm9sIGhlYWRlciAoYEhUVFAgc3BlYyBzZWN0aW9uIDE0LjkKKyAgICAgICAgPGh0dHA6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMTQuaHRtbCNzZWMxNC45PmBfKQorICAgICAgICAiIiIKKyAgICAgICAgdmFsdWUgPSBzZWxmLmhlYWRlcnMuZ2V0KCdjYWNoZS1jb250cm9sJywgJycpCisgICAgICAgIGlmIHNlbGYuX2NhY2hlX2NvbnRyb2xfb2JqIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9jYWNoZV9jb250cm9sX29iaiA9IENhY2hlQ29udHJvbC5wYXJzZSgKKyAgICAgICAgICAgICAgICB2YWx1ZSwgdXBkYXRlc190bz1zZWxmLl91cGRhdGVfY2FjaGVfY29udHJvbCwgdHlwZT0ncmVzcG9uc2UnKQorICAgICAgICAgICAgc2VsZi5fY2FjaGVfY29udHJvbF9vYmouaGVhZGVyX3ZhbHVlID0gdmFsdWUKKyAgICAgICAgaWYgc2VsZi5fY2FjaGVfY29udHJvbF9vYmouaGVhZGVyX3ZhbHVlICE9IHZhbHVlOgorICAgICAgICAgICAgbmV3X29iaiA9IENhY2hlQ29udHJvbC5wYXJzZSh2YWx1ZSwgdHlwZT0ncmVzcG9uc2UnKQorICAgICAgICAgICAgc2VsZi5fY2FjaGVfY29udHJvbF9vYmoucHJvcGVydGllcy5jbGVhcigpCisgICAgICAgICAgICBzZWxmLl9jYWNoZV9jb250cm9sX29iai5wcm9wZXJ0aWVzLnVwZGF0ZShuZXdfb2JqLnByb3BlcnRpZXMpCisgICAgICAgICAgICBzZWxmLl9jYWNoZV9jb250cm9sX29iai5oZWFkZXJfdmFsdWUgPSB2YWx1ZQorICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVfY29udHJvbF9vYmoKKworICAgIGRlZiBfY2FjaGVfY29udHJvbF9fc2V0KHNlbGYsIHZhbHVlKToKKyAgICAgICAgIyBUaGlzIGFjdHVhbGx5IGJlY29tZXMgYSBjb3B5CisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIHZhbHVlID0gIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCk6CisgICAgICAgICAgICB2YWx1ZSA9IENhY2hlQ29udHJvbCh2YWx1ZSwgJ3Jlc3BvbnNlJykKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgdGV4dF90eXBlKToKKyAgICAgICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICAgICAgaWYgc2VsZi5fY2FjaGVfY29udHJvbF9vYmogaXMgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnNbJ0NhY2hlLUNvbnRyb2wnXSA9IHZhbHVlCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICB2YWx1ZSA9IENhY2hlQ29udHJvbC5wYXJzZSh2YWx1ZSwgJ3Jlc3BvbnNlJykKKyAgICAgICAgY2FjaGUgPSBzZWxmLmNhY2hlX2NvbnRyb2wKKyAgICAgICAgY2FjaGUucHJvcGVydGllcy5jbGVhcigpCisgICAgICAgIGNhY2hlLnByb3BlcnRpZXMudXBkYXRlKHZhbHVlLnByb3BlcnRpZXMpCisKKyAgICBkZWYgX2NhY2hlX2NvbnRyb2xfX2RlbChzZWxmKToKKyAgICAgICAgc2VsZi5jYWNoZV9jb250cm9sID0ge30KKworICAgIGRlZiBfdXBkYXRlX2NhY2hlX2NvbnRyb2woc2VsZiwgcHJvcF9kaWN0KToKKyAgICAgICAgdmFsdWUgPSBzZXJpYWxpemVfY2FjaGVfY29udHJvbChwcm9wX2RpY3QpCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIGlmICdDYWNoZS1Db250cm9sJyBpbiBzZWxmLmhlYWRlcnM6CisgICAgICAgICAgICAgICAgZGVsIHNlbGYuaGVhZGVyc1snQ2FjaGUtQ29udHJvbCddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmhlYWRlcnNbJ0NhY2hlLUNvbnRyb2wnXSA9IHZhbHVlCisKKyAgICBjYWNoZV9jb250cm9sID0gcHJvcGVydHkoCisgICAgICAgIF9jYWNoZV9jb250cm9sX19nZXQsIF9jYWNoZV9jb250cm9sX19zZXQsCisgICAgICAgIF9jYWNoZV9jb250cm9sX19kZWwsIGRvYz1fY2FjaGVfY29udHJvbF9fZ2V0Ll9fZG9jX18pCisKKworICAgICMKKyAgICAjIGNhY2hlX2V4cGlyZXMKKyAgICAjCisKKyAgICBkZWYgX2NhY2hlX2V4cGlyZXMoc2VsZiwgc2Vjb25kcz0wLCAqKmt3KToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBTZXQgZXhwaXJhdGlvbiBvbiB0aGlzIHJlcXVlc3QuICBUaGlzIHNldHMgdGhlIHJlc3BvbnNlIHRvCisgICAgICAgICAgICBleHBpcmUgaW4gdGhlIGdpdmVuIHNlY29uZHMsIGFuZCBhbnkgb3RoZXIgYXR0cmlidXRlcyBhcmUgdXNlZAorICAgICAgICAgICAgZm9yIGNhY2hlX2NvbnRyb2wgKGUuZy4sIHByaXZhdGU9VHJ1ZSwgZXRjKS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlY29uZHMgaXMgVHJ1ZToKKyAgICAgICAgICAgIHNlY29uZHMgPSAwCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzZWNvbmRzLCB0aW1lZGVsdGEpOgorICAgICAgICAgICAgc2Vjb25kcyA9IHRpbWVkZWx0YV90b19zZWNvbmRzKHNlY29uZHMpCisgICAgICAgIGNhY2hlX2NvbnRyb2wgPSBzZWxmLmNhY2hlX2NvbnRyb2wKKyAgICAgICAgaWYgc2Vjb25kcyBpcyBOb25lOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIG5vdCBzZWNvbmRzOgorICAgICAgICAgICAgIyBUbyByZWFsbHkgZXhwaXJlIHNvbWV0aGluZywgeW91IGhhdmUgdG8gZm9yY2UgYQorICAgICAgICAgICAgIyBidW5jaCBvZiB0aGVzZSBjYWNoZSBjb250cm9sIGF0dHJpYnV0ZXMsIGFuZCBJRSBtYXkKKyAgICAgICAgICAgICMgbm90IHBheSBhdHRlbnRpb24gdG8gdGhvc2Ugc3RpbGwgc28gd2UgYWxzbyBzZXQKKyAgICAgICAgICAgICMgRXhwaXJlcy4KKyAgICAgICAgICAgIGNhY2hlX2NvbnRyb2wubm9fc3RvcmUgPSBUcnVlCisgICAgICAgICAgICBjYWNoZV9jb250cm9sLm5vX2NhY2hlID0gVHJ1ZQorICAgICAgICAgICAgY2FjaGVfY29udHJvbC5tdXN0X3JldmFsaWRhdGUgPSBUcnVlCisgICAgICAgICAgICBjYWNoZV9jb250cm9sLm1heF9hZ2UgPSAwCisgICAgICAgICAgICBjYWNoZV9jb250cm9sLnBvc3RfY2hlY2sgPSAwCisgICAgICAgICAgICBjYWNoZV9jb250cm9sLnByZV9jaGVjayA9IDAKKyAgICAgICAgICAgIHNlbGYuZXhwaXJlcyA9IGRhdGV0aW1lLnV0Y25vdygpCisgICAgICAgICAgICBpZiAnbGFzdC1tb2RpZmllZCcgbm90IGluIHNlbGYuaGVhZGVyczoKKyAgICAgICAgICAgICAgICBzZWxmLmxhc3RfbW9kaWZpZWQgPSBkYXRldGltZS51dGNub3coKQorICAgICAgICAgICAgc2VsZi5wcmFnbWEgPSAnbm8tY2FjaGUnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYWNoZV9jb250cm9sLnByb3BlcnRpZXMuY2xlYXIoKQorICAgICAgICAgICAgY2FjaGVfY29udHJvbC5tYXhfYWdlID0gc2Vjb25kcworICAgICAgICAgICAgc2VsZi5leHBpcmVzID0gZGF0ZXRpbWUudXRjbm93KCkgKyB0aW1lZGVsdGEoc2Vjb25kcz1zZWNvbmRzKQorICAgICAgICAgICAgc2VsZi5wcmFnbWEgPSBOb25lCisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdy5pdGVtcygpOgorICAgICAgICAgICAgc2V0YXR0cihjYWNoZV9jb250cm9sLCBuYW1lLCB2YWx1ZSkKKworICAgIGNhY2hlX2V4cGlyZXMgPSBwcm9wZXJ0eShsYW1iZGEgc2VsZjogc2VsZi5fY2FjaGVfZXhwaXJlcywgX2NhY2hlX2V4cGlyZXMpCisKKworCisgICAgIworICAgICMgZW5jb2RlX2NvbnRlbnQsIGRlY29kZV9jb250ZW50LCBtZDVfZXRhZworICAgICMKKworICAgIGRlZiBlbmNvZGVfY29udGVudChzZWxmLCBlbmNvZGluZz0nZ3ppcCcsIGxhenk9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgRW5jb2RlIHRoZSBjb250ZW50IHdpdGggdGhlIGdpdmVuIGVuY29kaW5nIChvbmx5IGd6aXAgYW5kCisgICAgICAgIGlkZW50aXR5IGFyZSBzdXBwb3J0ZWQpLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IGVuY29kaW5nIGluICgnaWRlbnRpdHknLCAnZ3ppcCcpLCBcCisgICAgICAgICAgICAgICAiVW5rbm93biBlbmNvZGluZzogJXIiICUgZW5jb2RpbmcKKyAgICAgICAgaWYgZW5jb2RpbmcgPT0gJ2lkZW50aXR5JzoKKyAgICAgICAgICAgIHNlbGYuZGVjb2RlX2NvbnRlbnQoKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIHNlbGYuY29udGVudF9lbmNvZGluZyA9PSAnZ3ppcCc6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgbGF6eToKKyAgICAgICAgICAgIHNlbGYuYXBwX2l0ZXIgPSBnemlwX2FwcF9pdGVyKHNlbGYuX2FwcF9pdGVyKQorICAgICAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXBwX2l0ZXIgPSBsaXN0KGd6aXBfYXBwX2l0ZXIoc2VsZi5fYXBwX2l0ZXIpKQorICAgICAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCA9IHN1bShtYXAobGVuLCBzZWxmLl9hcHBfaXRlcikpCisgICAgICAgIHNlbGYuY29udGVudF9lbmNvZGluZyA9ICdnemlwJworCisgICAgZGVmIGRlY29kZV9jb250ZW50KHNlbGYpOgorICAgICAgICBjb250ZW50X2VuY29kaW5nID0gc2VsZi5jb250ZW50X2VuY29kaW5nIG9yICdpZGVudGl0eScKKyAgICAgICAgaWYgY29udGVudF9lbmNvZGluZyA9PSAnaWRlbnRpdHknOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIGNvbnRlbnRfZW5jb2Rpbmcgbm90IGluICgnZ3ppcCcsICdkZWZsYXRlJyk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJJIGRvbid0IGtub3cgaG93IHRvIGRlY29kZSB0aGUgY29udGVudCAlcyIgJSBjb250ZW50X2VuY29kaW5nKQorICAgICAgICBpZiBjb250ZW50X2VuY29kaW5nID09ICdnemlwJzoKKyAgICAgICAgICAgIGZyb20gZ3ppcCBpbXBvcnQgR3ppcEZpbGUKKyAgICAgICAgICAgIGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KKyAgICAgICAgICAgIGd6aXBfZiA9IEd6aXBGaWxlKGZpbGVuYW1lPScnLCBtb2RlPSdyJywgZmlsZW9iaj1CeXRlc0lPKHNlbGYuYm9keSkpCisgICAgICAgICAgICBzZWxmLmJvZHkgPSBnemlwX2YucmVhZCgpCisgICAgICAgICAgICBzZWxmLmNvbnRlbnRfZW5jb2RpbmcgPSBOb25lCisgICAgICAgICAgICBnemlwX2YuY2xvc2UoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBXZWlyZCBmZWF0dXJlOiBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlNTc4NAorICAgICAgICAgICAgc2VsZi5ib2R5ID0gemxpYi5kZWNvbXByZXNzKHNlbGYuYm9keSwgLTE1KQorICAgICAgICAgICAgc2VsZi5jb250ZW50X2VuY29kaW5nID0gTm9uZQorCisgICAgZGVmIG1kNV9ldGFnKHNlbGYsIGJvZHk9Tm9uZSwgc2V0X2NvbnRlbnRfbWQ1PUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRlIGFuIGV0YWcgZm9yIHRoZSByZXNwb25zZSBvYmplY3QgdXNpbmcgYW4gTUQ1IGhhc2ggb2YKKyAgICAgICAgdGhlIGJvZHkgKHRoZSBib2R5IHBhcmFtZXRlciwgb3IgYGBzZWxmLmJvZHlgYCBpZiBub3QgZ2l2ZW4pCisKKyAgICAgICAgU2V0cyBgYHNlbGYuZXRhZ2BgCisgICAgICAgIElmIGBgc2V0X2NvbnRlbnRfbWQ1YGAgaXMgVHJ1ZSBzZXRzIGBgc2VsZi5jb250ZW50X21kNWBgIGFzIHdlbGwKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGJvZHkgaXMgTm9uZToKKyAgICAgICAgICAgIGJvZHkgPSBzZWxmLmJvZHkKKyAgICAgICAgbWQ1X2RpZ2VzdCA9IG1kNShib2R5KS5kaWdlc3QoKQorICAgICAgICBtZDVfZGlnZXN0ID0gYjY0ZW5jb2RlKG1kNV9kaWdlc3QpCisgICAgICAgIG1kNV9kaWdlc3QgPSBtZDVfZGlnZXN0LnJlcGxhY2UoYidcbicsIGInJykKKyAgICAgICAgbWQ1X2RpZ2VzdCA9IG5hdGl2ZV8obWQ1X2RpZ2VzdCkKKyAgICAgICAgc2VsZi5ldGFnID0gbWQ1X2RpZ2VzdC5zdHJpcCgnPScpCisgICAgICAgIGlmIHNldF9jb250ZW50X21kNToKKyAgICAgICAgICAgIHNlbGYuY29udGVudF9tZDUgPSBtZDVfZGlnZXN0CisKKworCisgICAgIworICAgICMgX19jYWxsX18sIGNvbmRpdGlvbmFsX3Jlc3BvbnNlX2FwcAorICAgICMKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICIiIgorICAgICAgICBXU0dJIGFwcGxpY2F0aW9uIGludGVyZmFjZQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5jb25kaXRpb25hbF9yZXNwb25zZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbmRpdGlvbmFsX3Jlc3BvbnNlX2FwcChlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgaGVhZGVybGlzdCA9IHNlbGYuX2Fic19oZWFkZXJsaXN0KGVudmlyb24pCisgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKHNlbGYuc3RhdHVzLCBoZWFkZXJsaXN0KQorICAgICAgICBpZiBlbnZpcm9uWydSRVFVRVNUX01FVEhPRCddID09ICdIRUFEJzoKKyAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIGhlcmUuLi4KKyAgICAgICAgICAgIHJldHVybiBFbXB0eVJlc3BvbnNlKHNlbGYuX2FwcF9pdGVyKQorICAgICAgICByZXR1cm4gc2VsZi5fYXBwX2l0ZXIKKworICAgIGRlZiBfYWJzX2hlYWRlcmxpc3Qoc2VsZiwgZW52aXJvbik6CisgICAgICAgICIiIlJldHVybnMgYSBoZWFkZXJsaXN0LCB3aXRoIHRoZSBMb2NhdGlvbiBoZWFkZXIgcG9zc2libHkKKyAgICAgICAgbWFkZSBhYnNvbHV0ZSBnaXZlbiB0aGUgcmVxdWVzdCBlbnZpcm9uLgorICAgICAgICAiIiIKKyAgICAgICAgaGVhZGVybGlzdCA9IGxpc3Qoc2VsZi5oZWFkZXJsaXN0KQorICAgICAgICBmb3IgaSwgKG5hbWUsIHZhbHVlKSBpbiBlbnVtZXJhdGUoaGVhZGVybGlzdCk6CisgICAgICAgICAgICBpZiBuYW1lLmxvd2VyKCkgPT0gJ2xvY2F0aW9uJzoKKyAgICAgICAgICAgICAgICBpZiBTQ0hFTUVfUkUuc2VhcmNoKHZhbHVlKToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBuZXdfbG9jYXRpb24gPSB1cmxwYXJzZS51cmxqb2luKF9yZXF1ZXN0X3VyaShlbnZpcm9uKSwgdmFsdWUpCisgICAgICAgICAgICAgICAgaGVhZGVybGlzdFtpXSA9IChuYW1lLCBuZXdfbG9jYXRpb24pCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcmV0dXJuIGhlYWRlcmxpc3QKKworICAgIF9zYWZlX21ldGhvZHMgPSAoJ0dFVCcsICdIRUFEJykKKworICAgIGRlZiBjb25kaXRpb25hbF9yZXNwb25zZV9hcHAoc2VsZiwgZW52aXJvbiwgc3RhcnRfcmVzcG9uc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlrZSB0aGUgbm9ybWFsIF9fY2FsbF9fIGludGVyZmFjZSwgYnV0IGNoZWNrcyBjb25kaXRpb25hbCBoZWFkZXJzOgorCisgICAgICAgICogSWYtTW9kaWZpZWQtU2luY2UgICAoMzA0IE5vdCBNb2RpZmllZDsgb25seSBvbiBHRVQsIEhFQUQpCisgICAgICAgICogSWYtTm9uZS1NYXRjaCAgICAgICAoMzA0IE5vdCBNb2RpZmllZDsgb25seSBvbiBHRVQsIEhFQUQpCisgICAgICAgICogUmFuZ2UgICAgICAgICAgICAgICAoNDA2IFBhcnRpYWwgQ29udGVudDsgb25seSBvbiBHRVQsIEhFQUQpCisgICAgICAgICIiIgorICAgICAgICByZXEgPSBCYXNlUmVxdWVzdChlbnZpcm9uKQorICAgICAgICBoZWFkZXJsaXN0ID0gc2VsZi5fYWJzX2hlYWRlcmxpc3QoZW52aXJvbikKKyAgICAgICAgbWV0aG9kID0gZW52aXJvbi5nZXQoJ1JFUVVFU1RfTUVUSE9EJywgJ0dFVCcpCisgICAgICAgIGlmIG1ldGhvZCBpbiBzZWxmLl9zYWZlX21ldGhvZHM6CisgICAgICAgICAgICBzdGF0dXMzMDQgPSBGYWxzZQorICAgICAgICAgICAgaWYgcmVxLmlmX25vbmVfbWF0Y2ggYW5kIHNlbGYuZXRhZzoKKyAgICAgICAgICAgICAgICBzdGF0dXMzMDQgPSBzZWxmLmV0YWcgaW4gcmVxLmlmX25vbmVfbWF0Y2gKKyAgICAgICAgICAgIGVsaWYgcmVxLmlmX21vZGlmaWVkX3NpbmNlIGFuZCBzZWxmLmxhc3RfbW9kaWZpZWQ6CisgICAgICAgICAgICAgICAgc3RhdHVzMzA0ID0gc2VsZi5sYXN0X21vZGlmaWVkIDw9IHJlcS5pZl9tb2RpZmllZF9zaW5jZQorICAgICAgICAgICAgaWYgc3RhdHVzMzA0OgorICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCczMDQgTm90IE1vZGlmaWVkJywgZmlsdGVyX2hlYWRlcnMoaGVhZGVybGlzdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEVtcHR5UmVzcG9uc2Uoc2VsZi5fYXBwX2l0ZXIpCisgICAgICAgIGlmIChyZXEucmFuZ2UgYW5kIHNlbGYgaW4gcmVxLmlmX3JhbmdlCisgICAgICAgICAgICBhbmQgc2VsZi5jb250ZW50X3JhbmdlIGlzIE5vbmUKKyAgICAgICAgICAgIGFuZCBtZXRob2QgaW4gKCdIRUFEJywgJ0dFVCcpCisgICAgICAgICAgICBhbmQgc2VsZi5zdGF0dXNfY29kZSA9PSAyMDAKKyAgICAgICAgICAgIGFuZCBzZWxmLmNvbnRlbnRfbGVuZ3RoIGlzIG5vdCBOb25lCisgICAgICAgICk6CisgICAgICAgICAgICBjb250ZW50X3JhbmdlID0gcmVxLnJhbmdlLmNvbnRlbnRfcmFuZ2Uoc2VsZi5jb250ZW50X2xlbmd0aCkKKyAgICAgICAgICAgIGlmIGNvbnRlbnRfcmFuZ2UgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpdGVyX2Nsb3NlKHNlbGYuX2FwcF9pdGVyKQorICAgICAgICAgICAgICAgIGJvZHkgPSBieXRlc18oIlJlcXVlc3RlZCByYW5nZSBub3Qgc2F0aXNmaWFibGU6ICVzIiAlIHJlcS5yYW5nZSkKKyAgICAgICAgICAgICAgICBoZWFkZXJsaXN0ID0gWworICAgICAgICAgICAgICAgICAgICAoJ0NvbnRlbnQtTGVuZ3RoJywgc3RyKGxlbihib2R5KSkpLAorICAgICAgICAgICAgICAgICAgICAoJ0NvbnRlbnQtUmFuZ2UnLCBzdHIoQ29udGVudFJhbmdlKE5vbmUsIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250ZW50X2xlbmd0aCkpKSwKKyAgICAgICAgICAgICAgICAgICAgKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpLAorICAgICAgICAgICAgICAgIF0gKyBmaWx0ZXJfaGVhZGVycyhoZWFkZXJsaXN0KQorICAgICAgICAgICAgICAgIHN0YXJ0X3Jlc3BvbnNlKCc0MTYgUmVxdWVzdGVkIFJhbmdlIE5vdCBTYXRpc2ZpYWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVybGlzdCkKKyAgICAgICAgICAgICAgICBpZiBtZXRob2QgPT0gJ0hFQUQnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gW2JvZHldCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFwcF9pdGVyID0gc2VsZi5hcHBfaXRlcl9yYW5nZShjb250ZW50X3JhbmdlLnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3JhbmdlLnN0b3ApCisgICAgICAgICAgICAgICAgaWYgYXBwX2l0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICMgdGhlIGZvbGxvd2luZyBzaG91bGQgYmUgZ3VhcmFudGVlZCBieQorICAgICAgICAgICAgICAgICAgICAjIFJhbmdlLnJhbmdlX2Zvcl9sZW5ndGgobGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgY29udGVudF9yYW5nZS5zdGFydCBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgICAgICBoZWFkZXJsaXN0ID0gWworICAgICAgICAgICAgICAgICAgICAgICAgKCdDb250ZW50LUxlbmd0aCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGNvbnRlbnRfcmFuZ2Uuc3RvcCAtIGNvbnRlbnRfcmFuZ2Uuc3RhcnQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgnQ29udGVudC1SYW5nZScsIHN0cihjb250ZW50X3JhbmdlKSksCisgICAgICAgICAgICAgICAgICAgIF0gKyBmaWx0ZXJfaGVhZGVycyhoZWFkZXJsaXN0LCAoJ2NvbnRlbnQtbGVuZ3RoJywpKQorICAgICAgICAgICAgICAgICAgICBzdGFydF9yZXNwb25zZSgnMjA2IFBhcnRpYWwgQ29udGVudCcsIGhlYWRlcmxpc3QpCisgICAgICAgICAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAnSEVBRCc6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRW1wdHlSZXNwb25zZShhcHBfaXRlcikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcF9pdGVyCisKKyAgICAgICAgc3RhcnRfcmVzcG9uc2Uoc2VsZi5zdGF0dXMsIGhlYWRlcmxpc3QpCisgICAgICAgIGlmIG1ldGhvZCAgPT0gJ0hFQUQnOgorICAgICAgICAgICAgcmV0dXJuIEVtcHR5UmVzcG9uc2Uoc2VsZi5fYXBwX2l0ZXIpCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBfaXRlcgorCisgICAgZGVmIGFwcF9pdGVyX3JhbmdlKHNlbGYsIHN0YXJ0LCBzdG9wKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhIG5ldyBhcHBfaXRlciBidWlsdCBmcm9tIHRoZSByZXNwb25zZSBhcHBfaXRlciwgdGhhdAorICAgICAgICBzZXJ2ZXMgdXAgb25seSB0aGUgZ2l2ZW4gYGBzdGFydDpzdG9wYGAgcmFuZ2UuCisgICAgICAgICIiIgorICAgICAgICBhcHBfaXRlciA9IHNlbGYuX2FwcF9pdGVyCisgICAgICAgIGlmIGhhc2F0dHIoYXBwX2l0ZXIsICdhcHBfaXRlcl9yYW5nZScpOgorICAgICAgICAgICAgcmV0dXJuIGFwcF9pdGVyLmFwcF9pdGVyX3JhbmdlKHN0YXJ0LCBzdG9wKQorICAgICAgICByZXR1cm4gQXBwSXRlclJhbmdlKGFwcF9pdGVyLCBzdGFydCwgc3RvcCkKKworCitkZWYgZmlsdGVyX2hlYWRlcnMoaGxpc3QsIHJlbW92ZV9oZWFkZXJzPSgnY29udGVudC1sZW5ndGgnLCAnY29udGVudC10eXBlJykpOgorICAgIHJldHVybiBbaCBmb3IgaCBpbiBobGlzdCBpZiAoaFswXS5sb3dlcigpIG5vdCBpbiByZW1vdmVfaGVhZGVycyldCisKKworZGVmIGl0ZXJfZmlsZShmaWxlLCBibG9ja19zaXplPTE8PDE4KTogIyAyNTZLYgorICAgIHdoaWxlIFRydWU6CisgICAgICAgIGRhdGEgPSBmaWxlLnJlYWQoYmxvY2tfc2l6ZSkKKyAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICBicmVhaworICAgICAgICB5aWVsZCBkYXRhCisKK2NsYXNzIFJlc3BvbnNlQm9keUZpbGUob2JqZWN0KToKKyAgICBtb2RlID0gJ3diJworICAgIGNsb3NlZCA9IEZhbHNlCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVzcG9uc2UpOgorICAgICAgICBzZWxmLnJlc3BvbnNlID0gcmVzcG9uc2UKKyAgICAgICAgc2VsZi53cml0ZSA9IHJlc3BvbnNlLndyaXRlCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPGJvZHlfZmlsZSBmb3IgJXI+JyAlIHNlbGYucmVzcG9uc2UKKworICAgIGVuY29kaW5nID0gcHJvcGVydHkoCisgICAgICAgIGxhbWJkYSBzZWxmOiBzZWxmLnJlc3BvbnNlLmNoYXJzZXQsCisgICAgICAgIGRvYz0iVGhlIGVuY29kaW5nIG9mIHRoZSBmaWxlIChpbmhlcml0ZWQgZnJvbSByZXNwb25zZS5jaGFyc2V0KSIKKyAgICApCisKKyAgICBkZWYgd3JpdGVsaW5lcyhzZWxmLCBzZXEpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZXE6CisgICAgICAgICAgICBzZWxmLndyaXRlKGl0ZW0pCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoIlJlc3BvbnNlIGJvZGllcyBjYW5ub3QgYmUgY2xvc2VkIikKKworICAgIGRlZiBmbHVzaChzZWxmKToKKyAgICAgICAgcGFzcworCisKKworY2xhc3MgQXBwSXRlclJhbmdlKG9iamVjdCk6CisgICAgIiIiCisgICAgV3JhcHMgYW4gYXBwX2l0ZXIsIHJldHVybmluZyBqdXN0IGEgcmFuZ2Ugb2YgYnl0ZXMKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHBfaXRlciwgc3RhcnQsIHN0b3ApOgorICAgICAgICBhc3NlcnQgc3RhcnQgPj0gMCwgIkJhZCBzdGFydDogJXIiICUgc3RhcnQKKyAgICAgICAgYXNzZXJ0IHN0b3AgaXMgTm9uZSBvciAoc3RvcCA+PSAwIGFuZCBzdG9wID49IHN0YXJ0KSwgKAorICAgICAgICAgICAgIkJhZCBzdG9wOiAlciIgJSBzdG9wKQorICAgICAgICBzZWxmLmFwcF9pdGVyID0gaXRlcihhcHBfaXRlcikKKyAgICAgICAgc2VsZi5fcG9zID0gMCAjIHBvc2l0aW9uIGluIGFwcF9pdGVyCisgICAgICAgIHNlbGYuc3RhcnQgPSBzdGFydAorICAgICAgICBzZWxmLnN0b3AgPSBzdG9wCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX3NraXBfc3RhcnQoc2VsZik6CisgICAgICAgIHN0YXJ0LCBzdG9wID0gc2VsZi5zdGFydCwgc2VsZi5zdG9wCisgICAgICAgIGZvciBjaHVuayBpbiBzZWxmLmFwcF9pdGVyOgorICAgICAgICAgICAgc2VsZi5fcG9zICs9IGxlbihjaHVuaykKKyAgICAgICAgICAgIGlmIHNlbGYuX3BvcyA8IHN0YXJ0OgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbGlmIHNlbGYuX3BvcyA9PSBzdGFydDoKKyAgICAgICAgICAgICAgICByZXR1cm4gYicnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNodW5rID0gY2h1bmtbc3RhcnQtc2VsZi5fcG9zOl0KKyAgICAgICAgICAgICAgICBpZiBzdG9wIGlzIG5vdCBOb25lIGFuZCBzZWxmLl9wb3MgPiBzdG9wOgorICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rWzpzdG9wLXNlbGYuX3Bvc10KKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihjaHVuaykgPT0gc3RvcCAtIHN0YXJ0CisgICAgICAgICAgICAgICAgcmV0dXJuIGNodW5rCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uKCkKKworCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX3BvcyA8IHNlbGYuc3RhcnQ6CisgICAgICAgICAgICAjIG5lZWQgdG8gc2tpcCBzb21lIGxlYWRpbmcgYnl0ZXMKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9za2lwX3N0YXJ0KCkKKyAgICAgICAgc3RvcCA9IHNlbGYuc3RvcAorICAgICAgICBpZiBzdG9wIGlzIG5vdCBOb25lIGFuZCBzZWxmLl9wb3MgPj0gc3RvcDoKKyAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KKworICAgICAgICBjaHVuayA9IG5leHQoc2VsZi5hcHBfaXRlcikKKyAgICAgICAgc2VsZi5fcG9zICs9IGxlbihjaHVuaykKKworICAgICAgICBpZiBzdG9wIGlzIE5vbmUgb3Igc2VsZi5fcG9zIDw9IHN0b3A6CisgICAgICAgICAgICByZXR1cm4gY2h1bmsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBjaHVua1s6c3RvcC1zZWxmLl9wb3NdCisKKyAgICBfX25leHRfXyA9IG5leHQgIyBweTMKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgaXRlcl9jbG9zZShzZWxmLmFwcF9pdGVyKQorCisKK2NsYXNzIEVtcHR5UmVzcG9uc2Uob2JqZWN0KToKKyAgICAiIiJBbiBlbXB0eSBXU0dJIHJlc3BvbnNlLgorCisgICAgQW4gaXRlcmF0b3IgdGhhdCBpbW1lZGlhdGVseSBzdG9wcy4gT3B0aW9uYWxseSBwcm92aWRlcyBhIGNsb3NlCisgICAgbWV0aG9kIHRvIGNsb3NlIGFuIHVuZGVybHlpbmcgYXBwX2l0ZXIgaXQgcmVwbGFjZXMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwX2l0ZXI9Tm9uZSk6CisgICAgICAgIGlmIGFwcF9pdGVyIGlzIG5vdCBOb25lIGFuZCBoYXNhdHRyKGFwcF9pdGVyLCAnY2xvc2UnKToKKyAgICAgICAgICAgIHNlbGYuY2xvc2UgPSBhcHBfaXRlci5jbG9zZQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiAwCisKKyAgICBkZWYgbmV4dChzZWxmKToKKyAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbigpCisKKyAgICBfX25leHRfXyA9IG5leHQgIyBweTMKKworZGVmIF9yZXF1ZXN0X3VyaShlbnZpcm9uKToKKyAgICAiIiJMaWtlIHdzZ2lyZWYudXJsLnJlcXVlc3RfdXJpLCBleGNlcHQgZWxpbWluYXRlcyA6ODAgcG9ydHMKKworICAgIFJldHVybiB0aGUgZnVsbCByZXF1ZXN0IFVSSSIiIgorICAgIHVybCA9IGVudmlyb25bJ3dzZ2kudXJsX3NjaGVtZSddKyc6Ly8nCisKKyAgICBpZiBlbnZpcm9uLmdldCgnSFRUUF9IT1NUJyk6CisgICAgICAgIHVybCArPSBlbnZpcm9uWydIVFRQX0hPU1QnXQorICAgIGVsc2U6CisgICAgICAgIHVybCArPSBlbnZpcm9uWydTRVJWRVJfTkFNRSddICsgJzonICsgZW52aXJvblsnU0VSVkVSX1BPUlQnXQorICAgIGlmIHVybC5lbmRzd2l0aCgnOjgwJykgYW5kIGVudmlyb25bJ3dzZ2kudXJsX3NjaGVtZSddID09ICdodHRwJzoKKyAgICAgICAgdXJsID0gdXJsWzotM10KKyAgICBlbGlmIHVybC5lbmRzd2l0aCgnOjQ0MycpIGFuZCBlbnZpcm9uWyd3c2dpLnVybF9zY2hlbWUnXSA9PSAnaHR0cHMnOgorICAgICAgICB1cmwgPSB1cmxbOi00XQorCisgICAgaWYgUFkzOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgc2NyaXB0X25hbWUgPSBieXRlc18oZW52aXJvbi5nZXQoJ1NDUklQVF9OQU1FJywgJy8nKSwgJ2xhdGluLTEnKQorICAgICAgICBwYXRoX2luZm8gPSBieXRlc18oZW52aXJvbi5nZXQoJ1BBVEhfSU5GTycsICcnKSwgJ2xhdGluLTEnKQorICAgIGVsc2U6CisgICAgICAgIHNjcmlwdF9uYW1lID0gZW52aXJvbi5nZXQoJ1NDUklQVF9OQU1FJywgJy8nKQorICAgICAgICBwYXRoX2luZm8gPSBlbnZpcm9uLmdldCgnUEFUSF9JTkZPJywgJycpCisKKyAgICB1cmwgKz0gdXJsX3F1b3RlKHNjcmlwdF9uYW1lKQorICAgIHFwYXRoX2luZm8gPSB1cmxfcXVvdGUocGF0aF9pbmZvKQorICAgIGlmIG5vdCAnU0NSSVBUX05BTUUnIGluIGVudmlyb246CisgICAgICAgIHVybCArPSBxcGF0aF9pbmZvWzE6XQorICAgIGVsc2U6CisgICAgICAgIHVybCArPSBxcGF0aF9pbmZvCisgICAgcmV0dXJuIHVybAorCisKK2RlZiBpdGVyX2Nsb3NlKGl0ZXIpOgorICAgIGlmIGhhc2F0dHIoaXRlciwgJ2Nsb3NlJyk6CisgICAgICAgIGl0ZXIuY2xvc2UoKQorCitkZWYgZ3ppcF9hcHBfaXRlcihhcHBfaXRlcik6CisgICAgc2l6ZSA9IDAKKyAgICBjcmMgPSB6bGliLmNyYzMyKGIiIikgJiAweGZmZmZmZmZmCisgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKDksIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemxpYi5ERUZfTUVNX0xFVkVMLCAwKQorCisgICAgeWllbGQgX2d6aXBfaGVhZGVyCisgICAgZm9yIGl0ZW0gaW4gYXBwX2l0ZXI6CisgICAgICAgIHNpemUgKz0gbGVuKGl0ZW0pCisgICAgICAgIGNyYyA9IHpsaWIuY3JjMzIoaXRlbSwgY3JjKSAmIDB4ZmZmZmZmZmYKKworICAgICAgICAjIFRoZSBjb21wcmVzcyBmdW5jdGlvbiBtYXkgcmV0dXJuIHplcm8gbGVuZ3RoIGJ5dGVzIGlmIHRoZSBpbnB1dCBpcworICAgICAgICAjIHNtYWxsIGVub3VnaDsgaXQgYnVmZmVycyB0aGUgaW5wdXQgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbiBvciBmb3IgYQorICAgICAgICAjIGZsdXNoLgorICAgICAgICByZXN1bHQgPSBjb21wcmVzcy5jb21wcmVzcyhpdGVtKQorICAgICAgICBpZiByZXN1bHQ6CisgICAgICAgICAgICB5aWVsZCByZXN1bHQKKworICAgICMgU2ltaWxhcmx5LCBmbHVzaCBtYXkgYWxzbyBub3QgeWllbGQgYSB2YWx1ZS4KKyAgICByZXN1bHQgPSBjb21wcmVzcy5mbHVzaCgpCisgICAgaWYgcmVzdWx0OgorICAgICAgICB5aWVsZCByZXN1bHQKKyAgICB5aWVsZCBzdHJ1Y3QucGFjaygiPDJMIiwgY3JjLCBzaXplICYgMHhmZmZmZmZmZikKKworZGVmIF9lcnJvcl91bmljb2RlX2luX2FwcF9pdGVyKGFwcF9pdGVyLCBib2R5KToKKyAgICBhcHBfaXRlcl9yZXByID0gcmVwcihhcHBfaXRlcikKKyAgICBpZiBsZW4oYXBwX2l0ZXJfcmVwcikgPiA1MDoKKyAgICAgICAgYXBwX2l0ZXJfcmVwciA9ICgKKyAgICAgICAgICAgIGFwcF9pdGVyX3JlcHJbOjMwXSArICcuLi4nICsgYXBwX2l0ZXJfcmVwclstMTA6XSkKKyAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICdBbiBpdGVtIG9mIHRoZSBhcHBfaXRlciAoJXMpIHdhcyB0ZXh0LCBjYXVzaW5nIGEgJworICAgICAgICAndGV4dCBib2R5OiAlcicgJSAoYXBwX2l0ZXJfcmVwciwgYm9keSkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2Ivc3RhdGljLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL3N0YXRpYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTk2MTUzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L1dlYk9iL3dlYm9iL3N0YXRpYy5weQpAQCAtMCwwICsxLDE2OCBAQAoraW1wb3J0IG1pbWV0eXBlcworaW1wb3J0IG9zCisKK2Zyb20gd2Vib2IgaW1wb3J0IGV4YworZnJvbSB3ZWJvYi5kZWMgaW1wb3J0IHdzZ2lmeQorZnJvbSB3ZWJvYi5yZXNwb25zZSBpbXBvcnQgUmVzcG9uc2UKKworX19hbGxfXyA9IFsKKyAgICAnRmlsZUFwcCcsICdEaXJlY3RvcnlBcHAnLAorXQorCittaW1ldHlwZXMuX3dpbnJlZyA9IE5vbmUgIyBkbyBub3QgbG9hZCBtaW1ldHlwZXMgZnJvbSB3aW5kb3dzIHJlZ2lzdHJ5CittaW1ldHlwZXMuYWRkX3R5cGUoJ3RleHQvamF2YXNjcmlwdCcsICcuanMnKSAjIHN0ZGxpYiBkZWZhdWx0IGlzIGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdAorbWltZXR5cGVzLmFkZF90eXBlKCdpbWFnZS94LWljb24nLCAnLmljbycpICMgbm90IGFtb25nIGRlZmF1bHRzCisKK0JMT0NLX1NJWkUgPSAxPDwxNgorCisKK2NsYXNzIEZpbGVBcHAob2JqZWN0KToKKyAgICAiIiJBbiBhcHBsaWNhdGlvbiB0aGF0IHdpbGwgc2VuZCB0aGUgZmlsZSBhdCB0aGUgZ2l2ZW4gZmlsZW5hbWUuCisKKyAgICBBZGRzIGEgbWltZSB0eXBlIGJhc2VkIG9uIGBtaW1ldHlwZXMuZ3Vlc3NfdHlwZSgpYC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgKiprdyk6CisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQorICAgICAgICBjb250ZW50X3R5cGUsIGNvbnRlbnRfZW5jb2RpbmcgPSBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShmaWxlbmFtZSkKKyAgICAgICAga3cuc2V0ZGVmYXVsdCgnY29udGVudF90eXBlJywgY29udGVudF90eXBlKQorICAgICAgICBrdy5zZXRkZWZhdWx0KCdjb250ZW50X2VuY29kaW5nJywgY29udGVudF9lbmNvZGluZykKKyAgICAgICAga3cuc2V0ZGVmYXVsdCgnYWNjZXB0X3JhbmdlcycsICdieXRlcycpCisgICAgICAgIHNlbGYua3cgPSBrdworICAgICAgICAjIFVzZWQgZm9yIHRlc3RpbmcgcHVycG9zZQorICAgICAgICBzZWxmLl9vcGVuID0gb3BlbgorCisgICAgQHdzZ2lmeQorICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXEpOgorICAgICAgICBpZiByZXEubWV0aG9kIG5vdCBpbiAoJ0dFVCcsICdIRUFEJyk6CisgICAgICAgICAgICByZXR1cm4gZXhjLkhUVFBNZXRob2ROb3RBbGxvd2VkKCJZb3UgY2Fubm90ICVzIGEgZmlsZSIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEubWV0aG9kKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzdGF0ID0gb3Muc3RhdChzZWxmLmZpbGVuYW1lKQorICAgICAgICBleGNlcHQgKElPRXJyb3IsIE9TRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBtc2cgPSAiQ2FuJ3Qgb3BlbiAlcjogJXMiICUgKHNlbGYuZmlsZW5hbWUsIGUpCisgICAgICAgICAgICByZXR1cm4gZXhjLkhUVFBOb3RGb3VuZChjb21tZW50PW1zZykKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBmaWxlID0gc2VsZi5fb3BlbihzZWxmLmZpbGVuYW1lLCAncmInKQorICAgICAgICBleGNlcHQgKElPRXJyb3IsIE9TRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBtc2cgPSAiWW91IGFyZSBub3QgcGVybWl0dGVkIHRvIHZpZXcgdGhpcyBmaWxlICglcykiICUgZQorICAgICAgICAgICAgcmV0dXJuIGV4Yy5IVFRQRm9yYmlkZGVuKG1zZykKKworICAgICAgICBpZiAnd3NnaS5maWxlX3dyYXBwZXInIGluIHJlcS5lbnZpcm9uOgorICAgICAgICAgICAgYXBwX2l0ZXIgPSByZXEuZW52aXJvblsnd3NnaS5maWxlX3dyYXBwZXInXShmaWxlLCBCTE9DS19TSVpFKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXBwX2l0ZXIgPSBGaWxlSXRlcihmaWxlKQorCisgICAgICAgIHJldHVybiBSZXNwb25zZSgKKyAgICAgICAgICAgIGFwcF9pdGVyID0gYXBwX2l0ZXIsCisgICAgICAgICAgICBjb250ZW50X2xlbmd0aCA9IHN0YXQuc3Rfc2l6ZSwKKyAgICAgICAgICAgIGxhc3RfbW9kaWZpZWQgPSBzdGF0LnN0X210aW1lLAorICAgICAgICAgICAgI0BAIGV0YWcKKyAgICAgICAgICAgICoqc2VsZi5rdworICAgICAgICApLmNvbmRpdGlvbmFsX3Jlc3BvbnNlX2FwcAorCisKK2NsYXNzIEZpbGVJdGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGUpOgorICAgICAgICBzZWxmLmZpbGUgPSBmaWxlCisKKyAgICBkZWYgYXBwX2l0ZXJfcmFuZ2Uoc2VsZiwgc2Vlaz1Ob25lLCBsaW1pdD1Ob25lLCBibG9ja19zaXplPU5vbmUpOgorICAgICAgICAiIiJJdGVyIG92ZXIgdGhlIGNvbnRlbnQgb2YgdGhlIGZpbGUuCisKKyAgICAgICAgWW91IGNhbiBzZXQgdGhlIGBzZWVrYCBwYXJhbWV0ZXIgdG8gcmVhZCB0aGUgZmlsZSBzdGFydGluZyBmcm9tIGEKKyAgICAgICAgc3BlY2lmaWMgcG9zaXRpb24uCisKKyAgICAgICAgWW91IGNhbiBzZXQgdGhlIGBsaW1pdGAgcGFyYW1ldGVyIHRvIHJlYWQgdGhlIGZpbGUgdXAgdG8gc3BlY2lmaWMKKyAgICAgICAgcG9zaXRpb24uCisKKyAgICAgICAgRmluYWxseSwgeW91IGNhbiBjaGFuZ2UgdGhlIG51bWJlciBvZiBieXRlcyByZWFkIGF0IG9uY2UgYnkgc2V0dGluZyB0aGUKKyAgICAgICAgYGJsb2NrX3NpemVgIHBhcmFtZXRlci4KKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgYmxvY2tfc2l6ZSBpcyBOb25lOgorICAgICAgICAgICAgYmxvY2tfc2l6ZSA9IEJMT0NLX1NJWkUKKworICAgICAgICBpZiBzZWVrOgorICAgICAgICAgICAgc2VsZi5maWxlLnNlZWsoc2VlaykKKyAgICAgICAgICAgIGlmIGxpbWl0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGxpbWl0IC09IHNlZWsKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5maWxlLnJlYWQobWluKGJsb2NrX3NpemUsIGxpbWl0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsaW1pdCBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGJsb2NrX3NpemUpCisgICAgICAgICAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHlpZWxkIGRhdGEKKyAgICAgICAgICAgICAgICBpZiBsaW1pdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgbGltaXQgLT0gbGVuKGRhdGEpCisgICAgICAgICAgICAgICAgICAgIGlmIGxpbWl0IDw9IDA6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuZmlsZS5jbG9zZSgpCisKKyAgICBfX2l0ZXJfXyA9IGFwcF9pdGVyX3JhbmdlCisKKworY2xhc3MgRGlyZWN0b3J5QXBwKG9iamVjdCk6CisgICAgIiIiQW4gYXBwbGljYXRpb24gdGhhdCBzZXJ2ZXMgdXAgdGhlIGZpbGVzIGluIGEgZ2l2ZW4gZGlyZWN0b3J5LgorCisgICAgVGhpcyB3aWxsIHNlcnZlIGluZGV4IGZpbGVzIChieSBkZWZhdWx0IGBgaW5kZXguaHRtbGBgKSwgb3Igc2V0CisgICAgYGBpbmRleF9wYWdlPU5vbmVgYCB0byBkaXNhYmxlIHRoaXMuICBJZiB5b3Ugc2V0CisgICAgYGBoaWRlX2luZGV4X3dpdGhfcmVkaXJlY3Q9VHJ1ZWBgIChpdCBkZWZhdWx0cyB0byBGYWxzZSkgdGhlbgorICAgIHJlcXVlc3RzIHRvLCBlLmcuLCBgYC9pbmRleC5odG1sYGAgd2lsbCBiZSByZWRpcmVjdGVkIHRvIGBgL2BgLgorCisgICAgVG8gY3VzdG9taXplIGBGaWxlQXBwYCBpbnN0YW5jZXMgY3JlYXRpb24gKHdoaWNoIGlzIHdoYXQgYWN0dWFsbHkKKyAgICBzZXJ2ZXMgdGhlIHJlc3BvbnNlcyksIG92ZXJyaWRlIHRoZSBgbWFrZV9maWxlYXBwYCBtZXRob2QuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwgaW5kZXhfcGFnZT0naW5kZXguaHRtbCcsIGhpZGVfaW5kZXhfd2l0aF9yZWRpcmVjdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgKiprdyk6CisgICAgICAgIHNlbGYucGF0aCA9IG9zLnBhdGguYWJzcGF0aChwYXRoKQorICAgICAgICBpZiBub3Qgc2VsZi5wYXRoLmVuZHN3aXRoKG9zLnBhdGguc2VwKToKKyAgICAgICAgICAgIHNlbGYucGF0aCArPSBvcy5wYXRoLnNlcAorICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihzZWxmLnBhdGgpOgorICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKKyAgICAgICAgICAgICAgICAiUGF0aCBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgZGlyZWN0b3J5OiAlciIgJSBzZWxmLnBhdGgpCisgICAgICAgIHNlbGYuaW5kZXhfcGFnZSA9IGluZGV4X3BhZ2UKKyAgICAgICAgc2VsZi5oaWRlX2luZGV4X3dpdGhfcmVkaXJlY3QgPSBoaWRlX2luZGV4X3dpdGhfcmVkaXJlY3QKKyAgICAgICAgc2VsZi5maWxlYXBwX2t3ID0ga3cKKworICAgIGRlZiBtYWtlX2ZpbGVhcHAoc2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVybiBGaWxlQXBwKHBhdGgsICoqc2VsZi5maWxlYXBwX2t3KQorCisgICAgQHdzZ2lmeQorICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXEpOgorICAgICAgICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihzZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5wYXRoX2luZm8ubHN0cmlwKCcvJykpKQorICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKHBhdGgpIGFuZCBzZWxmLmluZGV4X3BhZ2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5pbmRleChyZXEsIHBhdGgpCisgICAgICAgIGlmIChzZWxmLmluZGV4X3BhZ2UgYW5kIHNlbGYuaGlkZV9pbmRleF93aXRoX3JlZGlyZWN0CisgICAgICAgICAgICBhbmQgcGF0aC5lbmRzd2l0aChvcy5wYXRoLnNlcCArIHNlbGYuaW5kZXhfcGFnZSkpOgorICAgICAgICAgICAgbmV3X3VybCA9IHJlcS5wYXRoX3VybC5yc3BsaXQoJy8nLCAxKVswXQorICAgICAgICAgICAgbmV3X3VybCArPSAnLycKKyAgICAgICAgICAgIGlmIHJlcS5xdWVyeV9zdHJpbmc6CisgICAgICAgICAgICAgICAgbmV3X3VybCArPSAnPycgKyByZXEucXVlcnlfc3RyaW5nCisgICAgICAgICAgICByZXR1cm4gUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3RhdHVzPTMwMSwKKyAgICAgICAgICAgICAgICBsb2NhdGlvbj1uZXdfdXJsKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUocGF0aCk6CisgICAgICAgICAgICByZXR1cm4gZXhjLkhUVFBOb3RGb3VuZChjb21tZW50PXBhdGgpCisgICAgICAgIGVsaWYgbm90IHBhdGguc3RhcnRzd2l0aChzZWxmLnBhdGgpOgorICAgICAgICAgICAgcmV0dXJuIGV4Yy5IVFRQRm9yYmlkZGVuKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm1ha2VfZmlsZWFwcChwYXRoKQorCisgICAgZGVmIGluZGV4KHNlbGYsIHJlcSwgcGF0aCk6CisgICAgICAgIGluZGV4X3BhdGggPSBvcy5wYXRoLmpvaW4ocGF0aCwgc2VsZi5pbmRleF9wYWdlKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoaW5kZXhfcGF0aCk6CisgICAgICAgICAgICByZXR1cm4gZXhjLkhUVFBOb3RGb3VuZChjb21tZW50PWluZGV4X3BhdGgpCisgICAgICAgIGlmIG5vdCByZXEucGF0aF9pbmZvLmVuZHN3aXRoKCcvJyk6CisgICAgICAgICAgICB1cmwgPSByZXEucGF0aF91cmwgKyAnLycKKyAgICAgICAgICAgIGlmIHJlcS5xdWVyeV9zdHJpbmc6CisgICAgICAgICAgICAgICAgdXJsICs9ICc/JyArIHJlcS5xdWVyeV9zdHJpbmcKKyAgICAgICAgICAgIHJldHVybiBSZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdGF0dXM9MzAxLAorICAgICAgICAgICAgICAgIGxvY2F0aW9uPXVybCkKKyAgICAgICAgcmV0dXJuIHNlbGYubWFrZV9maWxlYXBwKGluZGV4X3BhdGgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvdXRpbC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9XZWJPYi93ZWJvYi91dGlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMDlkNTMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvV2ViT2Ivd2Vib2IvdXRpbC5weQpAQCAtMCwwICsxLDE2OSBAQAoraW1wb3J0IHdhcm5pbmdzCisKK2Zyb20gd2Vib2IuY29tcGF0IGltcG9ydCAoCisgICAgZXNjYXBlLAorICAgIHN0cmluZ190eXBlcywKKyAgICB0ZXh0XywKKyAgICB0ZXh0X3R5cGUsCisgICAgKQorCitmcm9tIHdlYm9iLmhlYWRlcnMgaW1wb3J0IF90cmFuc19rZXkKKworZGVmIGh0bWxfZXNjYXBlKHMpOgorICAgICIiIkhUTUwtZXNjYXBlIGEgc3RyaW5nIG9yIG9iamVjdAorCisgICAgVGhpcyBjb252ZXJ0cyBhbnkgbm9uLXN0cmluZyBvYmplY3RzIHBhc3NlZCBpbnRvIGl0IHRvIHN0cmluZ3MKKyAgICAoYWN0dWFsbHksIHVzaW5nIGBgdW5pY29kZSgpYGApLiAgQWxsIHZhbHVlcyByZXR1cm5lZCBhcmUKKyAgICBub24tdW5pY29kZSBzdHJpbmdzICh1c2luZyBgYCYjbnVtO2BgIGVudGl0aWVzIGZvciBhbGwgbm9uLUFTQ0lJCisgICAgY2hhcmFjdGVycykuCisKKyAgICBOb25lIGlzIHRyZWF0ZWQgc3BlY2lhbGx5LCBhbmQgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLgorICAgICIiIgorICAgIGlmIHMgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgX19odG1sX18gPSBnZXRhdHRyKHMsICdfX2h0bWxfXycsIE5vbmUpCisgICAgaWYgX19odG1sX18gaXMgbm90IE5vbmUgYW5kIGNhbGxhYmxlKF9faHRtbF9fKToKKyAgICAgICAgcmV0dXJuIHMuX19odG1sX18oKQorICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIHN0cmluZ190eXBlcyk6CisgICAgICAgIF9fdW5pY29kZV9fID0gZ2V0YXR0cihzLCAnX191bmljb2RlX18nLCBOb25lKQorICAgICAgICBpZiBfX3VuaWNvZGVfXyBpcyBub3QgTm9uZSBhbmQgY2FsbGFibGUoX191bmljb2RlX18pOgorICAgICAgICAgICAgcyA9IHMuX191bmljb2RlX18oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcyA9IHN0cihzKQorICAgIHMgPSBlc2NhcGUocywgVHJ1ZSkKKyAgICBpZiBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSk6CisgICAgICAgIHMgPSBzLmVuY29kZSgnYXNjaWknLCAneG1sY2hhcnJlZnJlcGxhY2UnKQorICAgIHJldHVybiB0ZXh0XyhzKQorCitkZWYgaGVhZGVyX2RvY3N0cmluZyhoZWFkZXIsIHJmY19zZWN0aW9uKToKKyAgICBpZiBoZWFkZXIuaXN1cHBlcigpOgorICAgICAgICBoZWFkZXIgPSBfdHJhbnNfa2V5KGhlYWRlcikKKyAgICBtYWpvcl9zZWN0aW9uID0gcmZjX3NlY3Rpb24uc3BsaXQoJy4nKVswXQorICAgIGxpbmsgPSAnaHR0cDovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMlcy5odG1sI3NlYyVzJyAlICgKKyAgICAgICAgbWFqb3Jfc2VjdGlvbiwgcmZjX3NlY3Rpb24pCisgICAgcmV0dXJuICJHZXRzIGFuZCBzZXRzIHRoZSBgYCVzYGAgaGVhZGVyIChgSFRUUCBzcGVjIHNlY3Rpb24gJXMgPCVzPmBfKS4iICUgKAorICAgICAgICBoZWFkZXIsIHJmY19zZWN0aW9uLCBsaW5rKQorCisKK2RlZiB3YXJuX2RlcHJlY2F0aW9uKHRleHQsIHZlcnNpb24sIHN0YWNrbGV2ZWwpOgorICAgICMgdmVyc2lvbiBzcGVjaWZpZXMgd2hlbiB0byBzdGFydCByYWlzaW5nIGV4Y2VwdGlvbnMgaW5zdGVhZCBvZiB3YXJuaW5ncworICAgIGlmIHZlcnNpb24gaW4gKCcxLjInLCAnMS4zJywgJzEuNCcpOgorICAgICAgICByYWlzZSBEZXByZWNhdGlvbldhcm5pbmcodGV4dCkKKyAgICBlbHNlOgorICAgICAgICBjbHMgPSBEZXByZWNhdGlvbldhcm5pbmcKKyAgICB3YXJuaW5ncy53YXJuKHRleHQsIGNscywgc3RhY2tsZXZlbD1zdGFja2xldmVsKzEpCisKK3N0YXR1c19yZWFzb25zID0geworICAgICMgU3RhdHVzIENvZGVzCisgICAgIyBJbmZvcm1hdGlvbmFsCisgICAgMTAwOiAnQ29udGludWUnLAorICAgIDEwMTogJ1N3aXRjaGluZyBQcm90b2NvbHMnLAorICAgIDEwMjogJ1Byb2Nlc3NpbmcnLAorCisgICAgIyBTdWNjZXNzZnVsCisgICAgMjAwOiAnT0snLAorICAgIDIwMTogJ0NyZWF0ZWQnLAorICAgIDIwMjogJ0FjY2VwdGVkJywKKyAgICAyMDM6ICdOb24tQXV0aG9yaXRhdGl2ZSBJbmZvcm1hdGlvbicsCisgICAgMjA0OiAnTm8gQ29udGVudCcsCisgICAgMjA1OiAnUmVzZXQgQ29udGVudCcsCisgICAgMjA2OiAnUGFydGlhbCBDb250ZW50JywKKyAgICAyMDc6ICdNdWx0aSBTdGF0dXMnLAorICAgIDIyNjogJ0lNIFVzZWQnLAorCisgICAgIyBSZWRpcmVjdGlvbgorICAgIDMwMDogJ011bHRpcGxlIENob2ljZXMnLAorICAgIDMwMTogJ01vdmVkIFBlcm1hbmVudGx5JywKKyAgICAzMDI6ICdGb3VuZCcsCisgICAgMzAzOiAnU2VlIE90aGVyJywKKyAgICAzMDQ6ICdOb3QgTW9kaWZpZWQnLAorICAgIDMwNTogJ1VzZSBQcm94eScsCisgICAgMzA3OiAnVGVtcG9yYXJ5IFJlZGlyZWN0JywKKworICAgICMgQ2xpZW50IEVycm9yCisgICAgNDAwOiAnQmFkIFJlcXVlc3QnLAorICAgIDQwMTogJ1VuYXV0aG9yaXplZCcsCisgICAgNDAyOiAnUGF5bWVudCBSZXF1aXJlZCcsCisgICAgNDAzOiAnRm9yYmlkZGVuJywKKyAgICA0MDQ6ICdOb3QgRm91bmQnLAorICAgIDQwNTogJ01ldGhvZCBOb3QgQWxsb3dlZCcsCisgICAgNDA2OiAnTm90IEFjY2VwdGFibGUnLAorICAgIDQwNzogJ1Byb3h5IEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkJywKKyAgICA0MDg6ICdSZXF1ZXN0IFRpbWVvdXQnLAorICAgIDQwOTogJ0NvbmZsaWN0JywKKyAgICA0MTA6ICdHb25lJywKKyAgICA0MTE6ICdMZW5ndGggUmVxdWlyZWQnLAorICAgIDQxMjogJ1ByZWNvbmRpdGlvbiBGYWlsZWQnLAorICAgIDQxMzogJ1JlcXVlc3QgRW50aXR5IFRvbyBMYXJnZScsCisgICAgNDE0OiAnUmVxdWVzdCBVUkkgVG9vIExvbmcnLAorICAgIDQxNTogJ1Vuc3VwcG9ydGVkIE1lZGlhIFR5cGUnLAorICAgIDQxNjogJ1JlcXVlc3RlZCBSYW5nZSBOb3QgU2F0aXNmaWFibGUnLAorICAgIDQxNzogJ0V4cGVjdGF0aW9uIEZhaWxlZCcsCisgICAgNDE4OiAiSSdtIGEgdGVhcG90IiwKKyAgICA0MjI6ICdVbnByb2Nlc3NhYmxlIEVudGl0eScsCisgICAgNDIzOiAnTG9ja2VkJywKKyAgICA0MjQ6ICdGYWlsZWQgRGVwZW5kZW5jeScsCisgICAgNDI2OiAnVXBncmFkZSBSZXF1aXJlZCcsCisgICAgNDI4OiAnUHJlY29uZGl0aW9uIFJlcXVpcmVkJywKKyAgICA0Mjk6ICdUb28gTWFueSBSZXF1ZXN0cycsCisgICAgNDUxOiAnVW5hdmFpbGFibGUgZm9yIExlZ2FsIFJlYXNvbnMnLAorICAgIDQzMTogJ1JlcXVlc3QgSGVhZGVyIEZpZWxkcyBUb28gTGFyZ2UnLAorCisgICAgIyBTZXJ2ZXIgRXJyb3IKKyAgICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLAorICAgIDUwMTogJ05vdCBJbXBsZW1lbnRlZCcsCisgICAgNTAyOiAnQmFkIEdhdGV3YXknLAorICAgIDUwMzogJ1NlcnZpY2UgVW5hdmFpbGFibGUnLAorICAgIDUwNDogJ0dhdGV3YXkgVGltZW91dCcsCisgICAgNTA1OiAnSFRUUCBWZXJzaW9uIE5vdCBTdXBwb3J0ZWQnLAorICAgIDUwNzogJ0luc3VmZmljaWVudCBTdG9yYWdlJywKKyAgICA1MTA6ICdOb3QgRXh0ZW5kZWQnLAorICAgIDUxMTogJ05ldHdvcmsgQXV0aGVudGljYXRpb24gUmVxdWlyZWQnLAorfQorCisjIGdlbmVyaWMgY2xhc3MgcmVzcG9uc2VzIGFzIHBlciBSRkMyNjE2CitzdGF0dXNfZ2VuZXJpY19yZWFzb25zID0geworICAgIDE6ICdDb250aW51ZScsCisgICAgMjogJ1N1Y2Nlc3MnLAorICAgIDM6ICdNdWx0aXBsZSBDaG9pY2VzJywKKyAgICA0OiAnVW5rbm93biBDbGllbnQgRXJyb3InLAorICAgIDU6ICdVbmtub3duIFNlcnZlciBFcnJvcicsCit9CisKK3RyeToKKyAgICAjIHB5My4zKyBoYXZlIG5hdGl2ZSBjb21wYXJpc29uIHN1cHBvcnQKKyAgICBmcm9tIGhtYWMgaW1wb3J0IGNvbXBhcmVfZGlnZXN0CitleGNlcHQgSW1wb3J0RXJyb3I6ICMgcHJhZ21hOiBub2NvdmVyIChQeXRob24gMi43LjcgYmFja3BvcnRlZCB0aGlzKQorICAgIGNvbXBhcmVfZGlnZXN0ID0gTm9uZQorCitkZWYgc3RyaW5nc19kaWZmZXIoc3RyaW5nMSwgc3RyaW5nMiwgY29tcGFyZV9kaWdlc3Q9Y29tcGFyZV9kaWdlc3QpOgorICAgICIiIkNoZWNrIHdoZXRoZXIgdHdvIHN0cmluZ3MgZGlmZmVyIHdoaWxlIGF2b2lkaW5nIHRpbWluZyBhdHRhY2tzLgorCisgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIFRydWUgaWYgdGhlIGdpdmVuIHN0cmluZ3MgZGlmZmVyIGFuZCBGYWxzZQorICAgIGlmIHRoZXkgYXJlIGVxdWFsLiAgSXQncyBjYXJlZnVsIG5vdCB0byBsZWFrIGluZm9ybWF0aW9uIGFib3V0ICp3aGVyZSoKKyAgICB0aGV5IGRpZmZlciBhcyBhIHJlc3VsdCBvZiBpdHMgcnVubmluZyB0aW1lLCB3aGljaCBjYW4gYmUgdmVyeSBpbXBvcnRhbnQKKyAgICB0byBhdm9pZCBjZXJ0YWluIHRpbWluZy1yZWxhdGVkIGNyeXB0byBhdHRhY2tzOgorCisgICAgICAgIGh0dHA6Ly9zZWIuZGJ6dGVhbS5vcmcvY3J5cHRvL3B5dGhvbi1vYXV0aC10aW1pbmctaG1hYy5wZGYKKworICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMS41CisgICAgICAgU3VwcG9ydCA6ZnVuYzpgaG1hYy5jb21wYXJlX2RpZ2VzdGAgaWYgaXQgaXMgYXZhaWxhYmxlIChQeXRob24gMi43LjcrCisgICAgICAgYW5kIFB5dGhvbiAzLjMrKS4KKworICAgICIiIgorICAgIGxlbl9lcSA9IGxlbihzdHJpbmcxKSA9PSBsZW4oc3RyaW5nMikKKyAgICBpZiBsZW5fZXE6CisgICAgICAgIGludmFsaWRfYml0cyA9IDAKKyAgICAgICAgbGVmdCA9IHN0cmluZzEKKyAgICBlbHNlOgorICAgICAgICBpbnZhbGlkX2JpdHMgPSAxCisgICAgICAgIGxlZnQgPSBzdHJpbmcyCisgICAgcmlnaHQgPSBzdHJpbmcyCisKKyAgICBpZiBjb21wYXJlX2RpZ2VzdCBpcyBub3QgTm9uZToKKyAgICAgICAgaW52YWxpZF9iaXRzICs9IG5vdCBjb21wYXJlX2RpZ2VzdChsZWZ0LCByaWdodCkKKyAgICBlbHNlOgorICAgICAgICBmb3IgYSwgYiBpbiB6aXAobGVmdCwgcmlnaHQpOgorICAgICAgICAgICAgaW52YWxpZF9iaXRzICs9IGEgIT0gYgorICAgIHJldHVybiBpbnZhbGlkX2JpdHMgIT0gMAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4Ly5naXRpZ25vcmUgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4Ly5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZWMwNmQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0ucnZtcmMKLQotLkRTX1N0b3JlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L0dlbWZpbGUgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L0dlbWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhM2M2MTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9HZW1maWxlCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotc291cmNlIDpnZW1jdXR0ZXIKLQotIyBjb3JlIHJ1YnkKLWdlbSAncmFrZScKLQotIyBodHRwczovL2dpdGh1Yi5jb20vcGl2b3RhbC9qYXNtaW5lLWdlbQotZ2VtICdqYXNtaW5lJwotCi0jIGh0dHBzOi8vZ2l0aHViLmNvbS9zc3RlcGhlbnNvbi9zcHJvY2tldHMKLWdlbSAnc3Byb2NrZXRzJwotCi0jIGh0dHBzOi8vZ2l0aHViLmNvbS9sYXV0aXMvdWdsaWZpZXIKLWdlbSAndWdsaWZpZXInCi0KLSMgZm9yIGphc21pbmU6Y2kgdGFzawotZ2VtICdqc29uJwotCi0jIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvdGhvciAtIGZvciByZWxlYXNlIGRlYnVnCi1nZW0gJ3Rob3InCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L0dlbWZpbGUubG9jayBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvR2VtZmlsZS5sb2NrCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWU3NzE0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvR2VtZmlsZS5sb2NrCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotR0VNCi0gIHJlbW90ZTogaHR0cDovL3J1YnlnZW1zLm9yZy8KLSAgc3BlY3M6Ci0gICAgY2hpbGRwcm9jZXNzICgwLjMuNykKLSAgICAgIGZmaSAofj4gMS4wLCA+PSAxLjAuNikKLSAgICBkaWZmLWxjcyAoMS4xLjMpCi0gICAgZXhlY2pzICgxLjQuMCkKLSAgICAgIG11bHRpX2pzb24gKH4+IDEuMCkKLSAgICBmZmkgKDEuMy4xKQotICAgIGhpa2UgKDEuMi4xKQotICAgIGphc21pbmUgKDEuMi4xKQotICAgICAgamFzbWluZS1jb3JlICg+PSAxLjIuMCkKLSAgICAgIHJhY2sgKH4+IDEuMCkKLSAgICAgIHJzcGVjICg+PSAxLjMuMSkKLSAgICAgIHNlbGVuaXVtLXdlYmRyaXZlciAoPj0gMC4xLjMpCi0gICAgamFzbWluZS1jb3JlICgxLjIuMCkKLSAgICBqc29uICgxLjcuNCkKLSAgICBtdWx0aV9qc29uICgxLjUuMCkKLSAgICByYWNrICgxLjQuMSkKLSAgICByYWtlICgwLjkuMi4yKQotICAgIHJzcGVjICgyLjExLjApCi0gICAgICByc3BlYy1jb3JlICh+PiAyLjExLjApCi0gICAgICByc3BlYy1leHBlY3RhdGlvbnMgKH4+IDIuMTEuMCkKLSAgICAgIHJzcGVjLW1vY2tzICh+PiAyLjExLjApCi0gICAgcnNwZWMtY29yZSAoMi4xMS4xKQotICAgIHJzcGVjLWV4cGVjdGF0aW9ucyAoMi4xMS4yKQotICAgICAgZGlmZi1sY3MgKH4+IDEuMS4zKQotICAgIHJzcGVjLW1vY2tzICgyLjExLjIpCi0gICAgcnVieXppcCAoMC45LjkpCi0gICAgc2VsZW5pdW0td2ViZHJpdmVyICgyLjI5LjApCi0gICAgICBjaGlsZHByb2Nlc3MgKD49IDAuMi41KQotICAgICAgbXVsdGlfanNvbiAofj4gMS4wKQotICAgICAgcnVieXppcAotICAgICAgd2Vic29ja2V0ICh+PiAxLjAuNCkKLSAgICBzcHJvY2tldHMgKDIuNC41KQotICAgICAgaGlrZSAofj4gMS4yKQotICAgICAgbXVsdGlfanNvbiAofj4gMS4wKQotICAgICAgcmFjayAofj4gMS4wKQotICAgICAgdGlsdCAofj4gMS4xLCAhPSAxLjMuMCkKLSAgICB0aG9yICgwLjE0LjYpCi0gICAgdGlsdCAoMS4zLjMpCi0gICAgdWdsaWZpZXIgKDEuMi43KQotICAgICAgZXhlY2pzICg+PSAwLjMuMCkKLSAgICAgIG11bHRpX2pzb24gKH4+IDEuMykKLSAgICB3ZWJzb2NrZXQgKDEuMC43KQotCi1QTEFURk9STVMKLSAgcnVieQotCi1ERVBFTkRFTkNJRVMKLSAgamFzbWluZQotICBqc29uCi0gIHJha2UKLSAgc3Byb2NrZXRzCi0gIHRob3IKLSAgdWdsaWZpZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvTElDRU5TRS5tZCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvTElDRU5TRS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzljZGEzOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L0xJQ0VOU0UubWQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1Db3B5cmlnaHQgKGMpIDIwMTMgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWCi0KLVRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCi13YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKLWFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCi0KLVBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAotaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAotZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgotCi0gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLSAgICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQotICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQotICAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi0KLSAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdAotICAgIGJlIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KLQotIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1JFQURNRS5jaHJvbWl1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ExM2VhMS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1JFQURNRS5jaHJvbWl1bQorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLU5hbWU6IGdsLW1hdHJpeAotU2hvcnQgTmFtZTogZ2wtbWF0cml4Ci1VUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS90b2ppL2dsLW1hdHJpeAotVmVyc2lvbjogMAotUmV2aXNpb246IDY5ZjY2NjVjYjJlNWRlNDBmMjdiMGVlZjg4NWI0YjRhYjMyMTM2ZDQKLURhdGU6IFR1ZSBGZWIgMTIgMTQ6MjE6MTQgMjAxMyAtMDgwMAotTGljZW5zZTogQlNECi1MaWNlbnNlIEZpbGU6IE5PVF9TSElQUEVECi1TZWN1cml0eSBDcml0aWNhbDogbm8KLQotRGVzY3JpcHRpb246Ci1NYXRyaXggbWF0aCBpbiBqYXZhc2NyaXB0Ci0KLUxvY2FsIE1vZGlmaWNhdGlvbnM6Ci1Ob25lLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9SRUFETUUubWQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1JFQURNRS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzdjZmNiNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1JFQURNRS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWdsTWF0cml4Ci09PT09PT09PT09PT09PT09PT09PT09PQotCi1KYXZhc2NyaXB0IGhhcyBldm9sdmVkIGludG8gYSBsYW5ndWFnZSBjYXBhYmxlIG9mIGhhbmRsaW5nIHJlYWx0aW1lIDNEIGdyYXBoaWNzLCAKLXZpYSBXZWJHTCwgYW5kIGNvbXB1dGF0aW9uYWxseSBpbnRlbnNpdmUgdGFza3Mgc3VjaCBhcyBwaHlzaWNzIHNpbXVsYXRpb25zLgotVGhlc2UgdHlwZXMgb2YgYXBwbGljYXRpb25zIGRlbWFuZCBoaWdoIHBlcmZvcm1hbmNlIHZlY3RvciBhbmQgbWF0cml4IG1hdGgsCi13aGljaCBpcyBzb21ldGhpbmcgdGhhdCBKYXZhc2NyaXB0IGRvZXNuJ3QgcHJvdmlkZSBieSBkZWZhdWx0LgotZ2xNYXRyaXggdG8gdGhlIHJlc2N1ZSEKLQotZ2xNYXRyaXggaXMgZGVzaWduZWQgdG8gcGVyZm9ybSB2ZWN0b3IgYW5kIG1hdHJpeCBvcGVyYXRpb25zIHN0dXBpZGx5IGZhc3QhIEJ5Ci1oYW5kLXR1bmluZyBlYWNoIGZ1bmN0aW9uIGZvciBtYXhpbXVtIHBlcmZvcm1hbmNlIGFuZCBlbmNvdXJhZ2luZyBlZmZpY2llbnQKLXVzYWdlIHBhdHRlcm5zIHRocm91Z2ggQVBJIGNvbnZlbnRpb25zLCBnbE1hdHJpeCB3aWxsIGhlbHAgeW91IGdldCB0aGUgbW9zdCBvdXQKLW9mIHlvdXIgYnJvd3NlcnMgSmF2YXNjcmlwdCBlbmdpbmUuCi0KLUxlYXJuIE1vcmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUZvciBkb2N1bWVudGF0aW9uLCBuZXdzLCB0dXRvcmlhbHMsIGFuZCBtb3JlIHZpc2l0IHRoZSBbZ2xNYXRyaXggSG9tZXBhZ2VdKGh0dHA6Ly9nbG1hdHJpeC5uZXQvKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvUmFrZWZpbGUgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1Jha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODY3YWMwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvUmFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1iZWdpbgotICByZXF1aXJlICdidW5kbGVyL3NldHVwJwotcmVzY3VlIExvYWRFcnJvcgotICBwdXRzICJDb3VsZG4ndCBmaW5kIEJ1bmRsZXIhIgotICBwdXRzCi0gIHB1dHMgIlBsZWFzZSBydW46IgotICBwdXRzICIgICBnZW0gaW5zdGFsbCBidW5kbGVyIgotICBwdXRzCi0gIHB1dHMgIi4uLmFuZCB0aGVuIHRyeSBhZ2Fpbi4iCi0gIHB1dHMKLSAgZXhpdAotZW5kCi0KLSMgZGVwZW5kZW5jaWVzCi1yZXF1aXJlICdqc29uJwotcmVxdWlyZSAncnNwZWMvY29yZS9yYWtlX3Rhc2snCi1yZXF1aXJlICd1Z2xpZmllcicKLQotIyBoZWxwZXIgbW9kdWxlCi1yZXF1aXJlIEZpbGUuZXhwYW5kX3BhdGgoJy4vdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgnLCBGaWxlLmRpcm5hbWUoX19GSUxFX18pKQotaW5jbHVkZSBHTE1hdHJpeAotCi1EaXJbYmFzZV9wYXRoLmpvaW4gJy4vdGFza3MvKiovKi5yYWtlJ10uZWFjaCBkbyB8ZnwKLSAgbG9hZCBmCi1lbmQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvVEVTVElORy5tZCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvVEVTVElORy5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDkxMjY0NS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1RFU1RJTkcubWQKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1SdW5uaW5nIHRoZSB0ZXN0IHN1aXRlCi09PT09PT09PT09PT09PT09PT09PT09PQotCi1UaGUgdW5pdCB0ZXN0cyBhcmUgYnVpbHQgdXBvbiB0aGUgZm9sbG93aW5nIHRvb2xzOgotCi0qIEphc21pbmUgLS0gdGhlIHVuZGVybHlpbmcgdGVzdCBzdWl0ZSB3aGljaCBleGVjdXRlcyB0aGUgdGVzdCBhbmQgcmVwb3J0cyBmZWVkYmFjawotKiBub2RlLmpzIC0tIHVzZWQgZm9yIHRlc3RpbmcgYXQgdGhlIGNvbW1hbmQgbGluZSwgdmlhIHRoZSBgamFzbWluZS1ub2RlYCBwYWNrYWdlCi0qIHNlbGVuaXVtIC0tIHVzZWQgZm9yIGF1dG9tYXRlZCBpbi1icm93c2VyIHRlc3RpbmcgdmlhIFJ1YnkKLQotSWYgUnVieSBpcyBpbnN0YWxsZWQsIHlvdSBjYW4gc2V0IHVwIHdpdGg6Ci0KLSAgICBnZW0gaW5zdGFsbCBidW5kbGVyCi0gICAgYnVuZGxlIGluc3RhbGwKLQotLi4uYW5kIHRoZW4gdGVzdCB3aXRoOgotCi0gICAgcmFrZQotICAgIAotSGludDogYWxzbyBsb29rIGF0Ci0KLSAgICByYWtlIC0tdGFza3MKLQotSWYgUnVieSBpcyBub3QgaW5zdGFsbGVkLCB5b3UgbXVzdCB0ZXN0IHdpdGggYGphc21pbmUtbm9kZWAgZGlyZWN0bHk6Ci0KLSAgICBOT0RFX1BBVEg9JE5PREVfUEFUSDouICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBub2RlX21vZHVsZXMvamFzbWluZS1ub2RlL2Jpbi9qYXNtaW5lLW5vZGUgXAotICAgICAgc3BlYy9oZWxwZXJzL25vZGVfaGVscGVyLmpzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9WRVJTSU9OIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9WRVJTSU9OCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGFlYTBlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvVkVSU0lPTgorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTIuMS4wClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC1taW4uanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2Rpc3QvZ2wtbWF0cml4LW1pbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc0OGZhMS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2Rpc3QvZ2wtbWF0cml4LW1pbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qKgotICogQGZpbGVvdmVydmlldyBnbC1tYXRyaXggLSBIaWdoIHBlcmZvcm1hbmNlIG1hdHJpeCBhbmQgdmVjdG9yIG9wZXJhdGlvbnMKLSAqIEBhdXRob3IgQnJhbmRvbiBKb25lcwotICogQGF1dGhvciBDb2xpbiBNYWNLZW56aWUgSVYKLSAqIEB2ZXJzaW9uIDIuMS4wCi0gKi8KLS8qIENvcHlyaWdodCAoYykgMjAxMywgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gCi0gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAqLwotKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXt9O3R5cGVvZiBleHBvcnRzPT0idW5kZWZpbmVkIj90eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZ0eXBlb2YgZGVmaW5lLmFtZD09Im9iamVjdCImJmRlZmluZS5hbWQ/KGUuZXhwb3J0cz17fSxkZWZpbmUoZnVuY3Rpb24oKXtyZXR1cm4gZS5leHBvcnRzfSkpOmUuZXhwb3J0cz13aW5kb3c6ZS5leHBvcnRzPWV4cG9ydHMsZnVuY3Rpb24oZSl7aWYoIXQpdmFyIHQ9MWUtNjtpZighbil2YXIgbj10eXBlb2YgRmxvYXQzMkFycmF5IT0idW5kZWZpbmVkIj9GbG9hdDMyQXJyYXk6QXJyYXk7dmFyIHI9e307ci5zZXRNYXRyaXhBcnJheVR5cGU9ZnVuY3Rpb24oZSl7bj1lfSx0eXBlb2YgZSE9InVuZGVmaW5lZCImJihlLmdsTWF0cml4PXIpO3ZhciBpPXt9O2kuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4oMik7cmV0dXJuIGVbMF09MCxlWzFdPTAsZX0saS5jbG9uZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbigyKTtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0fSxpLmZyb21WYWx1ZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgbigyKTtyZXR1cm4gclswXT1lLHJbMV09dCxyfSxpLmNvcHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlfSxpLnNldD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dCxlWzFdPW4sZX0saS5hZGQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0rblswXSxlWzFdPXRbMV0rblsxXSxlfSxpLnN1YnRyYWN0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdLW5bMF0sZVsxXT10WzFdLW5bMV0sZX0saS5zdWI9aS5zdWJ0cmFjdCxpLm11bHRpcGx5PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdKm5bMF0sZVsxXT10WzFdKm5bMV0sZX0saS5tdWw9aS5tdWx0aXBseSxpLmRpdmlkZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXS9uWzBdLGVbMV09dFsxXS9uWzFdLGV9LGkuZGl2PWkuZGl2aWRlLGkubWluPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT1NYXRoLm1pbih0WzBdLG5bMF0pLGVbMV09TWF0aC5taW4odFsxXSxuWzFdKSxlfSxpLm1heD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09TWF0aC5tYXgodFswXSxuWzBdKSxlWzFdPU1hdGgubWF4KHRbMV0sblsxXSksZX0saS5zY2FsZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXSpuLGVbMV09dFsxXSpuLGV9LGkuZGlzdGFuY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLWVbMF0scj10WzFdLWVbMV07cmV0dXJuIE1hdGguc3FydChuKm4rcipyKX0saS5kaXN0PWkuZGlzdGFuY2UsaS5zcXVhcmVkRGlzdGFuY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLWVbMF0scj10WzFdLWVbMV07cmV0dXJuIG4qbityKnJ9LGkuc3FyRGlzdD1pLnNxdWFyZWREaXN0YW5jZSxpLmxlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1lWzBdLG49ZVsxXTtyZXR1cm4gTWF0aC5zcXJ0KHQqdCtuKm4pfSxpLmxlbj1pLmxlbmd0aCxpLnNxdWFyZWRMZW5ndGg9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxuPWVbMV07cmV0dXJuIHQqdCtuKm59LGkuc3FyTGVuPWkuc3F1YXJlZExlbmd0aCxpLm5lZ2F0ZT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPS10WzBdLGVbMV09LXRbMV0sZX0saS5ub3JtYWxpemU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPW4qbityKnI7cmV0dXJuIGk+MCYmKGk9MS9NYXRoLnNxcnQoaSksZVswXT10WzBdKmksZVsxXT10WzFdKmkpLGV9LGkuZG90PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF0qdFswXStlWzFdKnRbMV19LGkuY3Jvc3M9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0qblsxXS10WzFdKm5bMF07cmV0dXJuIGVbMF09ZVsxXT0wLGVbMl09cixlfSxpLmxlcnA9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dFswXSxzPXRbMV07cmV0dXJuIGVbMF09aStyKihuWzBdLWkpLGVbMV09cytyKihuWzFdLXMpLGV9LGkudHJhbnNmb3JtTWF0Mj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV07cmV0dXJuIGVbMF09blswXSpyK25bMl0qaSxlWzFdPW5bMV0qcituWzNdKmksZX0saS50cmFuc2Zvcm1NYXQyZD1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV07cmV0dXJuIGVbMF09blswXSpyK25bMl0qaStuWzRdLGVbMV09blsxXSpyK25bM10qaStuWzVdLGV9LGkudHJhbnNmb3JtTWF0Mz1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV07cmV0dXJuIGVbMF09blswXSpyK25bM10qaStuWzZdLGVbMV09blsxXSpyK25bNF0qaStuWzddLGV9LGkudHJhbnNmb3JtTWF0ND1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV07cmV0dXJuIGVbMF09blswXSpyK25bNF0qaStuWzEyXSxlWzFdPW5bMV0qcituWzVdKmkrblsxM10sZX0saS5mb3JFYWNoPWZ1bmN0aW9uKCl7dmFyIGU9aS5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24odCxuLHIsaSxzLG8pe3ZhciB1LGE7bnx8KG49Mikscnx8KHI9MCksaT9hPU1hdGgubWluKGkqbityLHQubGVuZ3RoKTphPXQubGVuZ3RoO2Zvcih1PXI7dTxhO3UrPW4pZVswXT10W3VdLGVbMV09dFt1KzFdLHMoZSxlLG8pLHRbdV09ZVswXSx0W3UrMV09ZVsxXTtyZXR1cm4gdH19KCksaS5zdHI9ZnVuY3Rpb24oZSl7cmV0dXJuInZlYzIoIitlWzBdKyIsICIrZVsxXSsiKSJ9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUudmVjMj1pKTt2YXIgcz17fTtzLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuKDMpO3JldHVybiBlWzBdPTAsZVsxXT0wLGVbMl09MCxlfSxzLmNsb25lPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuKDMpO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0fSxzLmZyb21WYWx1ZXM9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPW5ldyBuKDMpO3JldHVybiBpWzBdPWUsaVsxXT10LGlbMl09cixpfSxzLmNvcHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZX0scy5zZXQ9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGVbMF09dCxlWzFdPW4sZVsyXT1yLGV9LHMuYWRkPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdK25bMF0sZVsxXT10WzFdK25bMV0sZVsyXT10WzJdK25bMl0sZX0scy5zdWJ0cmFjdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXS1uWzBdLGVbMV09dFsxXS1uWzFdLGVbMl09dFsyXS1uWzJdLGV9LHMuc3ViPXMuc3VidHJhY3Qscy5tdWx0aXBseT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXSpuWzBdLGVbMV09dFsxXSpuWzFdLGVbMl09dFsyXSpuWzJdLGV9LHMubXVsPXMubXVsdGlwbHkscy5kaXZpZGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0vblswXSxlWzFdPXRbMV0vblsxXSxlWzJdPXRbMl0vblsyXSxlfSxzLmRpdj1zLmRpdmlkZSxzLm1pbj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09TWF0aC5taW4odFswXSxuWzBdKSxlWzFdPU1hdGgubWluKHRbMV0sblsxXSksZVsyXT1NYXRoLm1pbih0WzJdLG5bMl0pLGV9LHMubWF4PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT1NYXRoLm1heCh0WzBdLG5bMF0pLGVbMV09TWF0aC5tYXgodFsxXSxuWzFdKSxlWzJdPU1hdGgubWF4KHRbMl0sblsyXSksZX0scy5zY2FsZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXSpuLGVbMV09dFsxXSpuLGVbMl09dFsyXSpuLGV9LHMuZGlzdGFuY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLWVbMF0scj10WzFdLWVbMV0saT10WzJdLWVbMl07cmV0dXJuIE1hdGguc3FydChuKm4rcipyK2kqaSl9LHMuZGlzdD1zLmRpc3RhbmNlLHMuc3F1YXJlZERpc3RhbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXS1lWzBdLHI9dFsxXS1lWzFdLGk9dFsyXS1lWzJdO3JldHVybiBuKm4rcipyK2kqaX0scy5zcXJEaXN0PXMuc3F1YXJlZERpc3RhbmNlLHMubGVuZ3RoPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sbj1lWzFdLHI9ZVsyXTtyZXR1cm4gTWF0aC5zcXJ0KHQqdCtuKm4rcipyKX0scy5sZW49cy5sZW5ndGgscy5zcXVhcmVkTGVuZ3RoPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sbj1lWzFdLHI9ZVsyXTtyZXR1cm4gdCp0K24qbityKnJ9LHMuc3FyTGVuPXMuc3F1YXJlZExlbmd0aCxzLm5lZ2F0ZT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPS10WzBdLGVbMV09LXRbMV0sZVsyXT0tdFsyXSxlfSxzLm5vcm1hbGl6ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxzPW4qbityKnIraSppO3JldHVybiBzPjAmJihzPTEvTWF0aC5zcXJ0KHMpLGVbMF09dFswXSpzLGVbMV09dFsxXSpzLGVbMl09dFsyXSpzKSxlfSxzLmRvdD1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdKnRbMF0rZVsxXSp0WzFdK2VbMl0qdFsyXX0scy5jcm9zcz1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89blswXSx1PW5bMV0sYT1uWzJdO3JldHVybiBlWzBdPWkqYS1zKnUsZVsxXT1zKm8tciphLGVbMl09cip1LWkqbyxlfSxzLmxlcnA9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dFswXSxzPXRbMV0sbz10WzJdO3JldHVybiBlWzBdPWkrciooblswXS1pKSxlWzFdPXMrciooblsxXS1zKSxlWzJdPW8rciooblsyXS1vKSxlfSxzLnRyYW5zZm9ybU1hdDQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXTtyZXR1cm4gZVswXT1uWzBdKnIrbls0XSppK25bOF0qcytuWzEyXSxlWzFdPW5bMV0qcituWzVdKmkrbls5XSpzK25bMTNdLGVbMl09blsyXSpyK25bNl0qaStuWzEwXSpzK25bMTRdLGV9LHMudHJhbnNmb3JtUXVhdD1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89blswXSx1PW5bMV0sYT1uWzJdLGY9blszXSxsPWYqcit1KnMtYSppLGM9ZippK2Eqci1vKnMsaD1mKnMrbyppLXUqcixwPS1vKnItdSppLWEqcztyZXR1cm4gZVswXT1sKmYrcCotbytjKi1hLWgqLXUsZVsxXT1jKmYrcCotdStoKi1vLWwqLWEsZVsyXT1oKmYrcCotYStsKi11LWMqLW8sZX0scy5mb3JFYWNoPWZ1bmN0aW9uKCl7dmFyIGU9cy5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24odCxuLHIsaSxzLG8pe3ZhciB1LGE7bnx8KG49Mykscnx8KHI9MCksaT9hPU1hdGgubWluKGkqbityLHQubGVuZ3RoKTphPXQubGVuZ3RoO2Zvcih1PXI7dTxhO3UrPW4pZVswXT10W3VdLGVbMV09dFt1KzFdLGVbMl09dFt1KzJdLHMoZSxlLG8pLHRbdV09ZVswXSx0W3UrMV09ZVsxXSx0W3UrMl09ZVsyXTtyZXR1cm4gdH19KCkscy5zdHI9ZnVuY3Rpb24oZSl7cmV0dXJuInZlYzMoIitlWzBdKyIsICIrZVsxXSsiLCAiK2VbMl0rIikifSx0eXBlb2YgZSE9InVuZGVmaW5lZCImJihlLnZlYzM9cyk7dmFyIG89e307by5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbig0KTtyZXR1cm4gZVswXT0wLGVbMV09MCxlWzJdPTAsZVszXT0wLGV9LG8uY2xvbmU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4oNCk7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0fSxvLmZyb21WYWx1ZXM9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIHM9bmV3IG4oNCk7cmV0dXJuIHNbMF09ZSxzWzFdPXQsc1syXT1yLHNbM109aSxzfSxvLmNvcHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGV9LG8uc2V0PWZ1bmN0aW9uKGUsdCxuLHIsaSl7cmV0dXJuIGVbMF09dCxlWzFdPW4sZVsyXT1yLGVbM109aSxlfSxvLmFkZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXStuWzBdLGVbMV09dFsxXStuWzFdLGVbMl09dFsyXStuWzJdLGVbM109dFszXStuWzNdLGV9LG8uc3VidHJhY3Q9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0tblswXSxlWzFdPXRbMV0tblsxXSxlWzJdPXRbMl0tblsyXSxlWzNdPXRbM10tblszXSxlfSxvLnN1Yj1vLnN1YnRyYWN0LG8ubXVsdGlwbHk9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPXRbMF0qblswXSxlWzFdPXRbMV0qblsxXSxlWzJdPXRbMl0qblsyXSxlWzNdPXRbM10qblszXSxlfSxvLm11bD1vLm11bHRpcGx5LG8uZGl2aWRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVswXT10WzBdL25bMF0sZVsxXT10WzFdL25bMV0sZVsyXT10WzJdL25bMl0sZVszXT10WzNdL25bM10sZX0sby5kaXY9by5kaXZpZGUsby5taW49ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPU1hdGgubWluKHRbMF0sblswXSksZVsxXT1NYXRoLm1pbih0WzFdLG5bMV0pLGVbMl09TWF0aC5taW4odFsyXSxuWzJdKSxlWzNdPU1hdGgubWluKHRbM10sblszXSksZX0sby5tYXg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlWzBdPU1hdGgubWF4KHRbMF0sblswXSksZVsxXT1NYXRoLm1heCh0WzFdLG5bMV0pLGVbMl09TWF0aC5tYXgodFsyXSxuWzJdKSxlWzNdPU1hdGgubWF4KHRbM10sblszXSksZX0sby5zY2FsZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXSpuLGVbMV09dFsxXSpuLGVbMl09dFsyXSpuLGVbM109dFszXSpuLGV9LG8uZGlzdGFuY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLWVbMF0scj10WzFdLWVbMV0saT10WzJdLWVbMl0scz10WzNdLWVbM107cmV0dXJuIE1hdGguc3FydChuKm4rcipyK2kqaStzKnMpfSxvLmRpc3Q9by5kaXN0YW5jZSxvLnNxdWFyZWREaXN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0tZVswXSxyPXRbMV0tZVsxXSxpPXRbMl0tZVsyXSxzPXRbM10tZVszXTtyZXR1cm4gbipuK3IqcitpKmkrcypzfSxvLnNxckRpc3Q9by5zcXVhcmVkRGlzdGFuY2Usby5sZW5ndGg9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxuPWVbMV0scj1lWzJdLGk9ZVszXTtyZXR1cm4gTWF0aC5zcXJ0KHQqdCtuKm4rcipyK2kqaSl9LG8ubGVuPW8ubGVuZ3RoLG8uc3F1YXJlZExlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1lWzBdLG49ZVsxXSxyPWVbMl0saT1lWzNdO3JldHVybiB0KnQrbipuK3IqcitpKml9LG8uc3FyTGVuPW8uc3F1YXJlZExlbmd0aCxvLm5lZ2F0ZT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPS10WzBdLGVbMV09LXRbMV0sZVsyXT0tdFsyXSxlWzNdPS10WzNdLGV9LG8ubm9ybWFsaXplPWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9dFszXSxvPW4qbityKnIraSppK3MqcztyZXR1cm4gbz4wJiYobz0xL01hdGguc3FydChvKSxlWzBdPXRbMF0qbyxlWzFdPXRbMV0qbyxlWzJdPXRbMl0qbyxlWzNdPXRbM10qbyksZX0sby5kb3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXSp0WzBdK2VbMV0qdFsxXStlWzJdKnRbMl0rZVszXSp0WzNdfSxvLmxlcnA9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dFswXSxzPXRbMV0sbz10WzJdLHU9dFszXTtyZXR1cm4gZVswXT1pK3IqKG5bMF0taSksZVsxXT1zK3IqKG5bMV0tcyksZVsyXT1vK3IqKG5bMl0tbyksZVszXT11K3IqKG5bM10tdSksZX0sby50cmFuc2Zvcm1NYXQ0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdO3JldHVybiBlWzBdPW5bMF0qcituWzRdKmkrbls4XSpzK25bMTJdKm8sZVsxXT1uWzFdKnIrbls1XSppK25bOV0qcytuWzEzXSpvLGVbMl09blsyXSpyK25bNl0qaStuWzEwXSpzK25bMTRdKm8sZVszXT1uWzNdKnIrbls3XSppK25bMTFdKnMrblsxNV0qbyxlfSxvLnRyYW5zZm9ybVF1YXQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPW5bMF0sdT1uWzFdLGE9blsyXSxmPW5bM10sbD1mKnIrdSpzLWEqaSxjPWYqaSthKnItbypzLGg9ZipzK28qaS11KnIscD0tbypyLXUqaS1hKnM7cmV0dXJuIGVbMF09bCpmK3AqLW8rYyotYS1oKi11LGVbMV09YypmK3AqLXUraCotby1sKi1hLGVbMl09aCpmK3AqLWErbCotdS1jKi1vLGV9LG8uZm9yRWFjaD1mdW5jdGlvbigpe3ZhciBlPW8uY3JlYXRlKCk7cmV0dXJuIGZ1bmN0aW9uKHQsbixyLGkscyxvKXt2YXIgdSxhO258fChuPTQpLHJ8fChyPTApLGk/YT1NYXRoLm1pbihpKm4rcix0Lmxlbmd0aCk6YT10Lmxlbmd0aDtmb3IodT1yO3U8YTt1Kz1uKWVbMF09dFt1XSxlWzFdPXRbdSsxXSxlWzJdPXRbdSsyXSxlWzNdPXRbdSszXSxzKGUsZSxvKSx0W3VdPWVbMF0sdFt1KzFdPWVbMV0sdFt1KzJdPWVbMl0sdFt1KzNdPWVbM107cmV0dXJuIHR9fSgpLG8uc3RyPWZ1bmN0aW9uKGUpe3JldHVybiJ2ZWM0KCIrZVswXSsiLCAiK2VbMV0rIiwgIitlWzJdKyIsICIrZVszXSsiKSJ9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUudmVjND1vKTt2YXIgdT17fTt1LmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuKDQpO3JldHVybiBlWzBdPTEsZVsxXT0wLGVbMl09MCxlWzNdPTEsZX0sdS5jbG9uZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbig0KTtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHR9LHUuY29weT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZX0sdS5pZGVudGl0eT1mdW5jdGlvbihlKXtyZXR1cm4gZVswXT0xLGVbMV09MCxlWzJdPTAsZVszXT0xLGV9LHUudHJhbnNwb3NlPWZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpe3ZhciBuPXRbMV07ZVsxXT10WzJdLGVbMl09bn1lbHNlIGVbMF09dFswXSxlWzFdPXRbMl0sZVsyXT10WzFdLGVbM109dFszXTtyZXR1cm4gZX0sdS5pbnZlcnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLG89bipzLWkqcjtyZXR1cm4gbz8obz0xL28sZVswXT1zKm8sZVsxXT0tcipvLGVbMl09LWkqbyxlWzNdPW4qbyxlKTpudWxsfSx1LmFkam9pbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdO3JldHVybiBlWzBdPXRbM10sZVsxXT0tdFsxXSxlWzJdPS10WzJdLGVbM109bixlfSx1LmRldGVybWluYW50PWZ1bmN0aW9uKGUpe3JldHVybiBlWzBdKmVbM10tZVsyXSplWzFdfSx1Lm11bHRpcGx5PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9blswXSxhPW5bMV0sZj1uWzJdLGw9blszXTtyZXR1cm4gZVswXT1yKnUraSpmLGVbMV09ciphK2kqbCxlWzJdPXMqdStvKmYsZVszXT1zKmErbypsLGV9LHUubXVsPXUubXVsdGlwbHksdS5yb3RhdGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT1NYXRoLnNpbihuKSxhPU1hdGguY29zKG4pO3JldHVybiBlWzBdPXIqYStpKnUsZVsxXT1yKi11K2kqYSxlWzJdPXMqYStvKnUsZVszXT1zKi11K28qYSxlfSx1LnNjYWxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9blswXSxhPW5bMV07cmV0dXJuIGVbMF09cip1LGVbMV09aSphLGVbMl09cyp1LGVbM109byphLGV9LHUuc3RyPWZ1bmN0aW9uKGUpe3JldHVybiJtYXQyKCIrZVswXSsiLCAiK2VbMV0rIiwgIitlWzJdKyIsICIrZVszXSsiKSJ9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUubWF0Mj11KTt2YXIgYT17fTthLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuKDYpO3JldHVybiBlWzBdPTEsZVsxXT0wLGVbMl09MCxlWzNdPTEsZVs0XT0wLGVbNV09MCxlfSxhLmNsb25lPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuKDYpO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFs0XT1lWzRdLHRbNV09ZVs1XSx0fSxhLmNvcHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZX0sYS5pZGVudGl0eT1mdW5jdGlvbihlKXtyZXR1cm4gZVswXT0xLGVbMV09MCxlWzJdPTAsZVszXT0xLGVbNF09MCxlWzVdPTAsZX0sYS5pbnZlcnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLG89dFs0XSx1PXRbNV0sYT1uKnMtcippO3JldHVybiBhPyhhPTEvYSxlWzBdPXMqYSxlWzFdPS1yKmEsZVsyXT0taSphLGVbM109biphLGVbNF09KGkqdS1zKm8pKmEsZVs1XT0ocipvLW4qdSkqYSxlKTpudWxsfSxhLmRldGVybWluYW50PWZ1bmN0aW9uKGUpe3JldHVybiBlWzBdKmVbM10tZVsxXSplWzJdfSxhLm11bHRpcGx5PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9dFs0XSxhPXRbNV0sZj1uWzBdLGw9blsxXSxjPW5bMl0saD1uWzNdLHA9bls0XSxkPW5bNV07cmV0dXJuIGVbMF09cipmK2kqYyxlWzFdPXIqbCtpKmgsZVsyXT1zKmYrbypjLGVbM109cypsK28qaCxlWzRdPWYqdStjKmErcCxlWzVdPWwqdStoKmErZCxlfSxhLm11bD1hLm11bHRpcGx5LGEucm90YXRlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9dFs0XSxhPXRbNV0sZj1NYXRoLnNpbihuKSxsPU1hdGguY29zKG4pO3JldHVybiBlWzBdPXIqbCtpKmYsZVsxXT0tcipmK2kqbCxlWzJdPXMqbCtvKmYsZVszXT0tcypmK2wqbyxlWzRdPWwqdStmKmEsZVs1XT1sKmEtZip1LGV9LGEuc2NhbGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW5bMF0saT1uWzFdO3JldHVybiBlWzBdPXRbMF0qcixlWzFdPXRbMV0qaSxlWzJdPXRbMl0qcixlWzNdPXRbM10qaSxlWzRdPXRbNF0qcixlWzVdPXRbNV0qaSxlfSxhLnRyYW5zbGF0ZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0rblswXSxlWzVdPXRbNV0rblsxXSxlfSxhLnN0cj1mdW5jdGlvbihlKXtyZXR1cm4ibWF0MmQoIitlWzBdKyIsICIrZVsxXSsiLCAiK2VbMl0rIiwgIitlWzNdKyIsICIrZVs0XSsiLCAiK2VbNV0rIikifSx0eXBlb2YgZSE9InVuZGVmaW5lZCImJihlLm1hdDJkPWEpO3ZhciBmPXt9O2YuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4oOSk7cmV0dXJuIGVbMF09MSxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPTEsZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT0xLGV9LGYuZnJvbU1hdDQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzRdLGVbNF09dFs1XSxlWzVdPXRbNl0sZVs2XT10WzhdLGVbN109dFs5XSxlWzhdPXRbMTBdLGV9LGYuY2xvbmU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4oOSk7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFs4XT1lWzhdLHR9LGYuY29weT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlfSxmLmlkZW50aXR5PWZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPTEsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0xLGVbNV09MCxlWzZdPTAsZVs3XT0wLGVbOF09MSxlfSxmLnRyYW5zcG9zZT1mdW5jdGlvbihlLHQpe2lmKGU9PT10KXt2YXIgbj10WzFdLHI9dFsyXSxpPXRbNV07ZVsxXT10WzNdLGVbMl09dFs2XSxlWzNdPW4sZVs1XT10WzddLGVbNl09cixlWzddPWl9ZWxzZSBlWzBdPXRbMF0sZVsxXT10WzNdLGVbMl09dFs2XSxlWzNdPXRbMV0sZVs0XT10WzRdLGVbNV09dFs3XSxlWzZdPXRbMl0sZVs3XT10WzVdLGVbOF09dFs4XTtyZXR1cm4gZX0sZi5pbnZlcnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLG89dFs0XSx1PXRbNV0sYT10WzZdLGY9dFs3XSxsPXRbOF0sYz1sKm8tdSpmLGg9LWwqcyt1KmEscD1mKnMtbyphLGQ9bipjK3IqaCtpKnA7cmV0dXJuIGQ/KGQ9MS9kLGVbMF09YypkLGVbMV09KC1sKnIraSpmKSpkLGVbMl09KHUqci1pKm8pKmQsZVszXT1oKmQsZVs0XT0obCpuLWkqYSkqZCxlWzVdPSgtdSpuK2kqcykqZCxlWzZdPXAqZCxlWzddPSgtZipuK3IqYSkqZCxlWzhdPShvKm4tcipzKSpkLGUpOm51bGx9LGYuYWRqb2ludD1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbM10sbz10WzRdLHU9dFs1XSxhPXRbNl0sZj10WzddLGw9dFs4XTtyZXR1cm4gZVswXT1vKmwtdSpmLGVbMV09aSpmLXIqbCxlWzJdPXIqdS1pKm8sZVszXT11KmEtcypsLGVbNF09bipsLWkqYSxlWzVdPWkqcy1uKnUsZVs2XT1zKmYtbyphLGVbN109ciphLW4qZixlWzhdPW4qby1yKnMsZX0sZi5kZXRlcm1pbmFudD1mdW5jdGlvbihlKXt2YXIgdD1lWzBdLG49ZVsxXSxyPWVbMl0saT1lWzNdLHM9ZVs0XSxvPWVbNV0sdT1lWzZdLGE9ZVs3XSxmPWVbOF07cmV0dXJuIHQqKGYqcy1vKmEpK24qKC1mKmkrbyp1KStyKihhKmktcyp1KX0sZi5tdWx0aXBseT1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89dFszXSx1PXRbNF0sYT10WzVdLGY9dFs2XSxsPXRbN10sYz10WzhdLGg9blswXSxwPW5bMV0sZD1uWzJdLHY9blszXSxtPW5bNF0sZz1uWzVdLHk9bls2XSxiPW5bN10sdz1uWzhdO3JldHVybiBlWzBdPWgqcitwKm8rZCpmLGVbMV09aCppK3AqdStkKmwsZVsyXT1oKnMrcCphK2QqYyxlWzNdPXYqcittKm8rZypmLGVbNF09dippK20qdStnKmwsZVs1XT12KnMrbSphK2cqYyxlWzZdPXkqcitiKm8rdypmLGVbN109eSppK2IqdSt3KmwsZVs4XT15KnMrYiphK3cqYyxlfSxmLm11bD1mLm11bHRpcGx5LGYudHJhbnNsYXRlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9dFs0XSxhPXRbNV0sZj10WzZdLGw9dFs3XSxjPXRbOF0saD1uWzBdLHA9blsxXTtyZXR1cm4gZVswXT1yLGVbMV09aSxlWzJdPXMsZVszXT1vLGVbNF09dSxlWzVdPWEsZVs2XT1oKnIrcCpvK2YsZVs3XT1oKmkrcCp1K2wsZVs4XT1oKnMrcCphK2MsZX0sZi5yb3RhdGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT10WzRdLGE9dFs1XSxmPXRbNl0sbD10WzddLGM9dFs4XSxoPU1hdGguc2luKG4pLHA9TWF0aC5jb3Mobik7cmV0dXJuIGVbMF09cCpyK2gqbyxlWzFdPXAqaStoKnUsZVsyXT1wKnMraCphLGVbM109cCpvLWgqcixlWzRdPXAqdS1oKmksZVs1XT1wKmEtaCpzLGVbNl09ZixlWzddPWwsZVs4XT1jLGV9LGYuc2NhbGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW5bMF0saT1uWzJdO3JldHVybiBlWzBdPXIqdFswXSxlWzFdPXIqdFsxXSxlWzJdPXIqdFsyXSxlWzNdPWkqdFszXSxlWzRdPWkqdFs0XSxlWzVdPWkqdFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlfSxmLmZyb21NYXQyZD1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09MCxlWzNdPXRbMl0sZVs0XT10WzNdLGVbNV09MCxlWzZdPXRbNF0sZVs3XT10WzVdLGVbOF09MSxlfSxmLmZyb21RdWF0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9dFszXSxvPW4rbix1PXIrcixhPWkraSxmPW4qbyxsPW4qdSxjPW4qYSxoPXIqdSxwPXIqYSxkPWkqYSx2PXMqbyxtPXMqdSxnPXMqYTtyZXR1cm4gZVswXT0xLShoK2QpLGVbMV09bCtnLGVbMl09Yy1tLGVbM109bC1nLGVbNF09MS0oZitkKSxlWzVdPXArdixlWzZdPWMrbSxlWzddPXAtdixlWzhdPTEtKGYraCksZX0sZi5zdHI9ZnVuY3Rpb24oZSl7cmV0dXJuIm1hdDMoIitlWzBdKyIsICIrZVsxXSsiLCAiK2VbMl0rIiwgIitlWzNdKyIsICIrZVs0XSsiLCAiK2VbNV0rIiwgIitlWzZdKyIsICIrZVs3XSsiLCAiK2VbOF0rIikifSx0eXBlb2YgZSE9InVuZGVmaW5lZCImJihlLm1hdDM9Zik7dmFyIGw9e307bC5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbigxNik7cmV0dXJuIGVbMF09MSxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPTAsZVs1XT0xLGVbNl09MCxlWzddPTAsZVs4XT0wLGVbOV09MCxlWzEwXT0xLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSxlfSxsLmNsb25lPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuKDE2KTtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHRbNF09ZVs0XSx0WzVdPWVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdLHR9LGwuY29weT1mdW5jdGlvbihlLHQpe3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlWzldPXRbOV0sZVsxMF09dFsxMF0sZVsxMV09dFsxMV0sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZX0sbC5pZGVudGl0eT1mdW5jdGlvbihlKXtyZXR1cm4gZVswXT0xLGVbMV09MCxlWzJdPTAsZVszXT0wLGVbNF09MCxlWzVdPTEsZVs2XT0wLGVbN109MCxlWzhdPTAsZVs5XT0wLGVbMTBdPTEsZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLGV9LGwudHJhbnNwb3NlPWZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpe3ZhciBuPXRbMV0scj10WzJdLGk9dFszXSxzPXRbNl0sbz10WzddLHU9dFsxMV07ZVsxXT10WzRdLGVbMl09dFs4XSxlWzNdPXRbMTJdLGVbNF09bixlWzZdPXRbOV0sZVs3XT10WzEzXSxlWzhdPXIsZVs5XT1zLGVbMTFdPXRbMTRdLGVbMTJdPWksZVsxM109byxlWzE0XT11fWVsc2UgZVswXT10WzBdLGVbMV09dFs0XSxlWzJdPXRbOF0sZVszXT10WzEyXSxlWzRdPXRbMV0sZVs1XT10WzVdLGVbNl09dFs5XSxlWzddPXRbMTNdLGVbOF09dFsyXSxlWzldPXRbNl0sZVsxMF09dFsxMF0sZVsxMV09dFsxNF0sZVsxMl09dFszXSxlWzEzXT10WzddLGVbMTRdPXRbMTFdLGVbMTVdPXRbMTVdO3JldHVybiBlfSxsLmludmVydD1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbM10sbz10WzRdLHU9dFs1XSxhPXRbNl0sZj10WzddLGw9dFs4XSxjPXRbOV0saD10WzEwXSxwPXRbMTFdLGQ9dFsxMl0sdj10WzEzXSxtPXRbMTRdLGc9dFsxNV0seT1uKnUtcipvLGI9biphLWkqbyx3PW4qZi1zKm8sRT1yKmEtaSp1LFM9cipmLXMqdSx4PWkqZi1zKmEsVD1sKnYtYypkLE49bCptLWgqZCxDPWwqZy1wKmQsaz1jKm0taCp2LEw9YypnLXAqdixBPWgqZy1wKm0sTz15KkEtYipMK3cqaytFKkMtUypOK3gqVDtyZXR1cm4gTz8oTz0xL08sZVswXT0odSpBLWEqTCtmKmspKk8sZVsxXT0oaSpMLXIqQS1zKmspKk8sZVsyXT0odip4LW0qUytnKkUpKk8sZVszXT0oaCpTLWMqeC1wKkUpKk8sZVs0XT0oYSpDLW8qQS1mKk4pKk8sZVs1XT0obipBLWkqQytzKk4pKk8sZVs2XT0obSp3LWQqeC1nKmIpKk8sZVs3XT0obCp4LWgqdytwKmIpKk8sZVs4XT0obypMLXUqQytmKlQpKk8sZVs5XT0ocipDLW4qTC1zKlQpKk8sZVsxMF09KGQqUy12KncrZyp5KSpPLGVbMTFdPShjKnctbCpTLXAqeSkqTyxlWzEyXT0odSpOLW8qay1hKlQpKk8sZVsxM109KG4qay1yKk4raSpUKSpPLGVbMTRdPSh2KmItZCpFLW0qeSkqTyxlWzE1XT0obCpFLWMqYitoKnkpKk8sZSk6bnVsbH0sbC5hZGpvaW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9dFszXSxvPXRbNF0sdT10WzVdLGE9dFs2XSxmPXRbN10sbD10WzhdLGM9dFs5XSxoPXRbMTBdLHA9dFsxMV0sZD10WzEyXSx2PXRbMTNdLG09dFsxNF0sZz10WzE1XTtyZXR1cm4gZVswXT11KihoKmctcCptKS1jKihhKmctZiptKSt2KihhKnAtZipoKSxlWzFdPS0ociooaCpnLXAqbSktYyooaSpnLXMqbSkrdiooaSpwLXMqaCkpLGVbMl09ciooYSpnLWYqbSktdSooaSpnLXMqbSkrdiooaSpmLXMqYSksZVszXT0tKHIqKGEqcC1mKmgpLXUqKGkqcC1zKmgpK2MqKGkqZi1zKmEpKSxlWzRdPS0obyooaCpnLXAqbSktbCooYSpnLWYqbSkrZCooYSpwLWYqaCkpLGVbNV09biooaCpnLXAqbSktbCooaSpnLXMqbSkrZCooaSpwLXMqaCksZVs2XT0tKG4qKGEqZy1mKm0pLW8qKGkqZy1zKm0pK2QqKGkqZi1zKmEpKSxlWzddPW4qKGEqcC1mKmgpLW8qKGkqcC1zKmgpK2wqKGkqZi1zKmEpLGVbOF09byooYypnLXAqdiktbCoodSpnLWYqdikrZCoodSpwLWYqYyksZVs5XT0tKG4qKGMqZy1wKnYpLWwqKHIqZy1zKnYpK2QqKHIqcC1zKmMpKSxlWzEwXT1uKih1KmctZip2KS1vKihyKmctcyp2KStkKihyKmYtcyp1KSxlWzExXT0tKG4qKHUqcC1mKmMpLW8qKHIqcC1zKmMpK2wqKHIqZi1zKnUpKSxlWzEyXT0tKG8qKGMqbS1oKnYpLWwqKHUqbS1hKnYpK2QqKHUqaC1hKmMpKSxlWzEzXT1uKihjKm0taCp2KS1sKihyKm0taSp2KStkKihyKmgtaSpjKSxlWzE0XT0tKG4qKHUqbS1hKnYpLW8qKHIqbS1pKnYpK2QqKHIqYS1pKnUpKSxlWzE1XT1uKih1KmgtYSpjKS1vKihyKmgtaSpjKStsKihyKmEtaSp1KSxlfSxsLmRldGVybWluYW50PWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0sbj1lWzFdLHI9ZVsyXSxpPWVbM10scz1lWzRdLG89ZVs1XSx1PWVbNl0sYT1lWzddLGY9ZVs4XSxsPWVbOV0sYz1lWzEwXSxoPWVbMTFdLHA9ZVsxMl0sZD1lWzEzXSx2PWVbMTRdLG09ZVsxNV0sZz10Km8tbipzLHk9dCp1LXIqcyxiPXQqYS1pKnMsdz1uKnUtcipvLEU9biphLWkqbyxTPXIqYS1pKnUseD1mKmQtbCpwLFQ9Zip2LWMqcCxOPWYqbS1oKnAsQz1sKnYtYypkLGs9bCptLWgqZCxMPWMqbS1oKnY7cmV0dXJuIGcqTC15KmsrYipDK3cqTi1FKlQrUyp4fSxsLm11bHRpcGx5PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9dFs0XSxhPXRbNV0sZj10WzZdLGw9dFs3XSxjPXRbOF0saD10WzldLHA9dFsxMF0sZD10WzExXSx2PXRbMTJdLG09dFsxM10sZz10WzE0XSx5PXRbMTVdLGI9blswXSx3PW5bMV0sRT1uWzJdLFM9blszXTtyZXR1cm4gZVswXT1iKnIrdyp1K0UqYytTKnYsZVsxXT1iKmkrdyphK0UqaCtTKm0sZVsyXT1iKnMrdypmK0UqcCtTKmcsZVszXT1iKm8rdypsK0UqZCtTKnksYj1uWzRdLHc9bls1XSxFPW5bNl0sUz1uWzddLGVbNF09YipyK3cqdStFKmMrUyp2LGVbNV09YippK3cqYStFKmgrUyptLGVbNl09YipzK3cqZitFKnArUypnLGVbN109YipvK3cqbCtFKmQrUyp5LGI9bls4XSx3PW5bOV0sRT1uWzEwXSxTPW5bMTFdLGVbOF09YipyK3cqdStFKmMrUyp2LGVbOV09YippK3cqYStFKmgrUyptLGVbMTBdPWIqcyt3KmYrRSpwK1MqZyxlWzExXT1iKm8rdypsK0UqZCtTKnksYj1uWzEyXSx3PW5bMTNdLEU9blsxNF0sUz1uWzE1XSxlWzEyXT1iKnIrdyp1K0UqYytTKnYsZVsxM109YippK3cqYStFKmgrUyptLGVbMTRdPWIqcyt3KmYrRSpwK1MqZyxlWzE1XT1iKm8rdypsK0UqZCtTKnksZX0sbC5tdWw9bC5tdWx0aXBseSxsLnRyYW5zbGF0ZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9blswXSxpPW5bMV0scz1uWzJdLG8sdSxhLGYsbCxjLGgscCxkLHYsbSxnO3JldHVybiB0PT09ZT8oZVsxMl09dFswXSpyK3RbNF0qaSt0WzhdKnMrdFsxMl0sZVsxM109dFsxXSpyK3RbNV0qaSt0WzldKnMrdFsxM10sZVsxNF09dFsyXSpyK3RbNl0qaSt0WzEwXSpzK3RbMTRdLGVbMTVdPXRbM10qcit0WzddKmkrdFsxMV0qcyt0WzE1XSk6KG89dFswXSx1PXRbMV0sYT10WzJdLGY9dFszXSxsPXRbNF0sYz10WzVdLGg9dFs2XSxwPXRbN10sZD10WzhdLHY9dFs5XSxtPXRbMTBdLGc9dFsxMV0sZVswXT1vLGVbMV09dSxlWzJdPWEsZVszXT1mLGVbNF09bCxlWzVdPWMsZVs2XT1oLGVbN109cCxlWzhdPWQsZVs5XT12LGVbMTBdPW0sZVsxMV09ZyxlWzEyXT1vKnIrbCppK2Qqcyt0WzEyXSxlWzEzXT11KnIrYyppK3Yqcyt0WzEzXSxlWzE0XT1hKnIraCppK20qcyt0WzE0XSxlWzE1XT1mKnIrcCppK2cqcyt0WzE1XSksZX0sbC5zY2FsZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9blswXSxpPW5bMV0scz1uWzJdO3JldHVybiBlWzBdPXRbMF0qcixlWzFdPXRbMV0qcixlWzJdPXRbMl0qcixlWzNdPXRbM10qcixlWzRdPXRbNF0qaSxlWzVdPXRbNV0qaSxlWzZdPXRbNl0qaSxlWzddPXRbN10qaSxlWzhdPXRbOF0qcyxlWzldPXRbOV0qcyxlWzEwXT10WzEwXSpzLGVbMTFdPXRbMTFdKnMsZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZX0sbC5yb3RhdGU9ZnVuY3Rpb24oZSxuLHIsaSl7dmFyIHM9aVswXSxvPWlbMV0sdT1pWzJdLGE9TWF0aC5zcXJ0KHMqcytvKm8rdSp1KSxmLGwsYyxoLHAsZCx2LG0sZyx5LGIsdyxFLFMseCxULE4sQyxrLEwsQSxPLE0sXztyZXR1cm4gTWF0aC5hYnMoYSk8dD9udWxsOihhPTEvYSxzKj1hLG8qPWEsdSo9YSxmPU1hdGguc2luKHIpLGw9TWF0aC5jb3MociksYz0xLWwsaD1uWzBdLHA9blsxXSxkPW5bMl0sdj1uWzNdLG09bls0XSxnPW5bNV0seT1uWzZdLGI9bls3XSx3PW5bOF0sRT1uWzldLFM9blsxMF0seD1uWzExXSxUPXMqcypjK2wsTj1vKnMqYyt1KmYsQz11KnMqYy1vKmYsaz1zKm8qYy11KmYsTD1vKm8qYytsLEE9dSpvKmMrcypmLE89cyp1KmMrbypmLE09byp1KmMtcypmLF89dSp1KmMrbCxlWzBdPWgqVCttKk4rdypDLGVbMV09cCpUK2cqTitFKkMsZVsyXT1kKlQreSpOK1MqQyxlWzNdPXYqVCtiKk4reCpDLGVbNF09aCprK20qTCt3KkEsZVs1XT1wKmsrZypMK0UqQSxlWzZdPWQqayt5KkwrUypBLGVbN109diprK2IqTCt4KkEsZVs4XT1oKk8rbSpNK3cqXyxlWzldPXAqTytnKk0rRSpfLGVbMTBdPWQqTyt5Kk0rUypfLGVbMTFdPXYqTytiKk0reCpfLG4hPT1lJiYoZVsxMl09blsxMl0sZVsxM109blsxM10sZVsxNF09blsxNF0sZVsxNV09blsxNV0pLGUpfSxsLnJvdGF0ZVg9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPU1hdGguc2luKG4pLGk9TWF0aC5jb3Mobikscz10WzRdLG89dFs1XSx1PXRbNl0sYT10WzddLGY9dFs4XSxsPXRbOV0sYz10WzEwXSxoPXRbMTFdO3JldHVybiB0IT09ZSYmKGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzEyXT10WzEyXSxlWzEzXT10WzEzXSxlWzE0XT10WzE0XSxlWzE1XT10WzE1XSksZVs0XT1zKmkrZipyLGVbNV09byppK2wqcixlWzZdPXUqaStjKnIsZVs3XT1hKmkraCpyLGVbOF09ZippLXMqcixlWzldPWwqaS1vKnIsZVsxMF09YyppLXUqcixlWzExXT1oKmktYSpyLGV9LGwucm90YXRlWT1mdW5jdGlvbihlLHQsbil7dmFyIHI9TWF0aC5zaW4obiksaT1NYXRoLmNvcyhuKSxzPXRbMF0sbz10WzFdLHU9dFsyXSxhPXRbM10sZj10WzhdLGw9dFs5XSxjPXRbMTBdLGg9dFsxMV07cmV0dXJuIHQhPT1lJiYoZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdKSxlWzBdPXMqaS1mKnIsZVsxXT1vKmktbCpyLGVbMl09dSppLWMqcixlWzNdPWEqaS1oKnIsZVs4XT1zKnIrZippLGVbOV09bypyK2wqaSxlWzEwXT11KnIrYyppLGVbMTFdPWEqcitoKmksZX0sbC5yb3RhdGVaPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1NYXRoLnNpbihuKSxpPU1hdGguY29zKG4pLHM9dFswXSxvPXRbMV0sdT10WzJdLGE9dFszXSxmPXRbNF0sbD10WzVdLGM9dFs2XSxoPXRbN107cmV0dXJuIHQhPT1lJiYoZVs4XT10WzhdLGVbOV09dFs5XSxlWzEwXT10WzEwXSxlWzExXT10WzExXSxlWzEyXT10WzEyXSxlWzEzXT10WzEzXSxlWzE0XT10WzE0XSxlWzE1XT10WzE1XSksZVswXT1zKmkrZipyLGVbMV09byppK2wqcixlWzJdPXUqaStjKnIsZVszXT1hKmkraCpyLGVbNF09ZippLXMqcixlWzVdPWwqaS1vKnIsZVs2XT1jKmktdSpyLGVbN109aCppLWEqcixlfSxsLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9cityLGE9aStpLGY9cytzLGw9cip1LGM9ciphLGg9cipmLHA9aSphLGQ9aSpmLHY9cypmLG09byp1LGc9byphLHk9bypmO3JldHVybiBlWzBdPTEtKHArdiksZVsxXT1jK3ksZVsyXT1oLWcsZVszXT0wLGVbNF09Yy15LGVbNV09MS0obCt2KSxlWzZdPWQrbSxlWzddPTAsZVs4XT1oK2csZVs5XT1kLW0sZVsxMF09MS0obCtwKSxlWzExXT0wLGVbMTJdPW5bMF0sZVsxM109blsxXSxlWzE0XT1uWzJdLGVbMTVdPTEsZX0sbC5mcm9tUXVhdD1mdW5jdGlvbihlLHQpe3ZhciBuPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbM10sbz1uK24sdT1yK3IsYT1pK2ksZj1uKm8sbD1uKnUsYz1uKmEsaD1yKnUscD1yKmEsZD1pKmEsdj1zKm8sbT1zKnUsZz1zKmE7cmV0dXJuIGVbMF09MS0oaCtkKSxlWzFdPWwrZyxlWzJdPWMtbSxlWzNdPTAsZVs0XT1sLWcsZVs1XT0xLShmK2QpLGVbNl09cCt2LGVbN109MCxlWzhdPWMrbSxlWzldPXAtdixlWzEwXT0xLShmK2gpLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSxlfSxsLmZydXN0dW09ZnVuY3Rpb24oZSx0LG4scixpLHMsbyl7dmFyIHU9MS8obi10KSxhPTEvKGktciksZj0xLyhzLW8pO3JldHVybiBlWzBdPXMqMip1LGVbMV09MCxlWzJdPTAsZVszXT0wLGVbNF09MCxlWzVdPXMqMiphLGVbNl09MCxlWzddPTAsZVs4XT0obit0KSp1LGVbOV09KGkrcikqYSxlWzEwXT0obytzKSpmLGVbMTFdPS0xLGVbMTJdPTAsZVsxM109MCxlWzE0XT1vKnMqMipmLGVbMTVdPTAsZX0sbC5wZXJzcGVjdGl2ZT1mdW5jdGlvbihlLHQsbixyLGkpe3ZhciBzPTEvTWF0aC50YW4odC8yKSxvPTEvKHItaSk7cmV0dXJuIGVbMF09cy9uLGVbMV09MCxlWzJdPTAsZVszXT0wLGVbNF09MCxlWzVdPXMsZVs2XT0wLGVbN109MCxlWzhdPTAsZVs5XT0wLGVbMTBdPShpK3IpKm8sZVsxMV09LTEsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTIqaSpyKm8sZVsxNV09MCxlfSxsLm9ydGhvPWZ1bmN0aW9uKGUsdCxuLHIsaSxzLG8pe3ZhciB1PTEvKHQtbiksYT0xLyhyLWkpLGY9MS8ocy1vKTtyZXR1cm4gZVswXT0tMip1LGVbMV09MCxlWzJdPTAsZVszXT0wLGVbNF09MCxlWzVdPS0yKmEsZVs2XT0wLGVbN109MCxlWzhdPTAsZVs5XT0wLGVbMTBdPTIqZixlWzExXT0wLGVbMTJdPSh0K24pKnUsZVsxM109KGkrcikqYSxlWzE0XT0obytzKSpmLGVbMTVdPTEsZX0sbC5sb29rQXQ9ZnVuY3Rpb24oZSxuLHIsaSl7dmFyIHMsbyx1LGEsZixjLGgscCxkLHYsbT1uWzBdLGc9blsxXSx5PW5bMl0sYj1pWzBdLHc9aVsxXSxFPWlbMl0sUz1yWzBdLHg9clsxXSxUPXJbMl07cmV0dXJuIE1hdGguYWJzKG0tUyk8dCYmTWF0aC5hYnMoZy14KTx0JiZNYXRoLmFicyh5LVQpPHQ/bC5pZGVudGl0eShlKTooaD1tLVMscD1nLXgsZD15LVQsdj0xL01hdGguc3FydChoKmgrcCpwK2QqZCksaCo9dixwKj12LGQqPXYscz13KmQtRSpwLG89RSpoLWIqZCx1PWIqcC13Kmgsdj1NYXRoLnNxcnQocypzK28qbyt1KnUpLHY/KHY9MS92LHMqPXYsbyo9dix1Kj12KToocz0wLG89MCx1PTApLGE9cCp1LWQqbyxmPWQqcy1oKnUsYz1oKm8tcCpzLHY9TWF0aC5zcXJ0KGEqYStmKmYrYypjKSx2Pyh2PTEvdixhKj12LGYqPXYsYyo9dik6KGE9MCxmPTAsYz0wKSxlWzBdPXMsZVsxXT1hLGVbMl09aCxlWzNdPTAsZVs0XT1vLGVbNV09ZixlWzZdPXAsZVs3XT0wLGVbOF09dSxlWzldPWMsZVsxMF09ZCxlWzExXT0wLGVbMTJdPS0ocyptK28qZyt1KnkpLGVbMTNdPS0oYSptK2YqZytjKnkpLGVbMTRdPS0oaCptK3AqZytkKnkpLGVbMTVdPTEsZSl9LGwuc3RyPWZ1bmN0aW9uKGUpe3JldHVybiJtYXQ0KCIrZVswXSsiLCAiK2VbMV0rIiwgIitlWzJdKyIsICIrZVszXSsiLCAiK2VbNF0rIiwgIitlWzVdKyIsICIrZVs2XSsiLCAiK2VbN10rIiwgIitlWzhdKyIsICIrZVs5XSsiLCAiK2VbMTBdKyIsICIrZVsxMV0rIiwgIitlWzEyXSsiLCAiK2VbMTNdKyIsICIrZVsxNF0rIiwgIitlWzE1XSsiKSJ9LHR5cGVvZiBlIT0idW5kZWZpbmVkIiYmKGUubWF0ND1sKTt2YXIgYz17fTtjLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuKDQpO3JldHVybiBlWzBdPTAsZVsxXT0wLGVbMl09MCxlWzNdPTEsZX0sYy5jbG9uZT1vLmNsb25lLGMuZnJvbVZhbHVlcz1vLmZyb21WYWx1ZXMsYy5jb3B5PW8uY29weSxjLnNldD1vLnNldCxjLmlkZW50aXR5PWZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPTAsZVsxXT0wLGVbMl09MCxlWzNdPTEsZX0sYy5zZXRBeGlzQW5nbGU9ZnVuY3Rpb24oZSx0LG4pe24qPS41O3ZhciByPU1hdGguc2luKG4pO3JldHVybiBlWzBdPXIqdFswXSxlWzFdPXIqdFsxXSxlWzJdPXIqdFsyXSxlWzNdPU1hdGguY29zKG4pLGV9LGMuYWRkPW8uYWRkLGMubXVsdGlwbHk9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT1uWzBdLGE9blsxXSxmPW5bMl0sbD1uWzNdO3JldHVybiBlWzBdPXIqbCtvKnUraSpmLXMqYSxlWzFdPWkqbCtvKmErcyp1LXIqZixlWzJdPXMqbCtvKmYrciphLWkqdSxlWzNdPW8qbC1yKnUtaSphLXMqZixlfSxjLm11bD1jLm11bHRpcGx5LGMuc2NhbGU9by5zY2FsZSxjLnJvdGF0ZVg9ZnVuY3Rpb24oZSx0LG4pe24qPS41O3ZhciByPXRbMF0saT10WzFdLHM9dFsyXSxvPXRbM10sdT1NYXRoLnNpbihuKSxhPU1hdGguY29zKG4pO3JldHVybiBlWzBdPXIqYStvKnUsZVsxXT1pKmErcyp1LGVbMl09cyphLWkqdSxlWzNdPW8qYS1yKnUsZX0sYy5yb3RhdGVZPWZ1bmN0aW9uKGUsdCxuKXtuKj0uNTt2YXIgcj10WzBdLGk9dFsxXSxzPXRbMl0sbz10WzNdLHU9TWF0aC5zaW4obiksYT1NYXRoLmNvcyhuKTtyZXR1cm4gZVswXT1yKmEtcyp1LGVbMV09aSphK28qdSxlWzJdPXMqYStyKnUsZVszXT1vKmEtaSp1LGV9LGMucm90YXRlWj1mdW5jdGlvbihlLHQsbil7bio9LjU7dmFyIHI9dFswXSxpPXRbMV0scz10WzJdLG89dFszXSx1PU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIGVbMF09ciphK2kqdSxlWzFdPWkqYS1yKnUsZVsyXT1zKmErbyp1LGVbM109byphLXMqdSxlfSxjLmNhbGN1bGF0ZVc9ZnVuY3Rpb24oZSx0KXt2YXIgbj10WzBdLHI9dFsxXSxpPXRbMl07cmV0dXJuIGVbMF09bixlWzFdPXIsZVsyXT1pLGVbM109LU1hdGguc3FydChNYXRoLmFicygxLW4qbi1yKnItaSppKSksZX0sYy5kb3Q9by5kb3QsYy5sZXJwPW8ubGVycCxjLnNsZXJwPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPXRbMF0scz10WzFdLG89dFsyXSx1PXRbM10sYT1uWzBdLGY9blsxXSxsPW5bMl0sYz1uWzNdLGg9aSphK3MqZitvKmwrdSpjLHAsZCx2LG07cmV0dXJuIE1hdGguYWJzKGgpPj0xPyhlIT09dCYmKGVbMF09aSxlWzFdPXMsZVsyXT1vLGVbM109dSksZSk6KHA9TWF0aC5hY29zKGgpLGQ9TWF0aC5zcXJ0KDEtaCpoKSxNYXRoLmFicyhkKTwuMDAxPyhlWzBdPWkqLjUrYSouNSxlWzFdPXMqLjUrZiouNSxlWzJdPW8qLjUrbCouNSxlWzNdPXUqLjUrYyouNSxlKToodj1NYXRoLnNpbigoMS1yKSpwKS9kLG09TWF0aC5zaW4ocipwKS9kLGVbMF09aSp2K2EqbSxlWzFdPXMqditmKm0sZVsyXT1vKnYrbCptLGVbM109dSp2K2MqbSxlKSl9LGMuaW52ZXJ0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dFswXSxyPXRbMV0saT10WzJdLHM9dFszXSxvPW4qbityKnIraSppK3Mqcyx1PW8/MS9vOjA7cmV0dXJuIGVbMF09LW4qdSxlWzFdPS1yKnUsZVsyXT0taSp1LGVbM109cyp1LGV9LGMuY29uanVnYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbMF09LXRbMF0sZVsxXT0tdFsxXSxlWzJdPS10WzJdLGVbM109dFszXSxlfSxjLmxlbmd0aD1vLmxlbmd0aCxjLmxlbj1jLmxlbmd0aCxjLnNxdWFyZWRMZW5ndGg9by5zcXVhcmVkTGVuZ3RoLGMuc3FyTGVuPWMuc3F1YXJlZExlbmd0aCxjLm5vcm1hbGl6ZT1vLm5vcm1hbGl6ZSxjLmZyb21NYXQzPWZ1bmN0aW9uKCl7dmFyIGU9WzEsMiwwXTtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdK25bNF0rbls4XSxpO2lmKHI+MClpPU1hdGguc3FydChyKzEpLHRbM109LjUqaSxpPS41L2ksdFswXT0obls3XS1uWzVdKSppLHRbMV09KG5bMl0tbls2XSkqaSx0WzJdPShuWzNdLW5bMV0pKmk7ZWxzZXt2YXIgcz0wO25bNF0+blswXSYmKHM9MSksbls4XT5uW3MqMytzXSYmKHM9Mik7dmFyIG89ZVtzXSx1PWVbb107aT1NYXRoLnNxcnQobltzKjMrc10tbltvKjMrb10tblt1KjMrdV0rMSksdFtzXT0uNSppLGk9LjUvaSx0WzNdPShuW3UqMytvXS1uW28qMyt1XSkqaSx0W29dPShuW28qMytzXStuW3MqMytvXSkqaSx0W3VdPShuW3UqMytzXStuW3MqMyt1XSkqaX1yZXR1cm4gdH19KCksYy5zdHI9ZnVuY3Rpb24oZSl7cmV0dXJuInF1YXQoIitlWzBdKyIsICIrZVsxXSsiLCAiK2VbMl0rIiwgIitlWzNdKyIpIn0sdHlwZW9mIGUhPSJ1bmRlZmluZWQiJiYoZS5xdWF0PWMpfShlLmV4cG9ydHMpfSkoKTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvZGlzdC9nbC1tYXRyaXguanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2Rpc3QvZ2wtbWF0cml4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTNkNmI2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvZGlzdC9nbC1tYXRyaXguanMKKysrIC9kZXYvbnVsbApAQCAtMSwzODY1ICswLDAgQEAKLS8qKgotICogQGZpbGVvdmVydmlldyBnbC1tYXRyaXggLSBIaWdoIHBlcmZvcm1hbmNlIG1hdHJpeCBhbmQgdmVjdG9yIG9wZXJhdGlvbnMKLSAqIEBhdXRob3IgQnJhbmRvbiBKb25lcwotICogQGF1dGhvciBDb2xpbiBNYWNLZW56aWUgSVYKLSAqIEB2ZXJzaW9uIDIuMS4wCi0gKi8KLQotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLQotKGZ1bmN0aW9uKCkgewotICAidXNlIHN0cmljdCI7Ci0KLSAgdmFyIHNoaW0gPSB7fTsKLSAgaWYgKHR5cGVvZihleHBvcnRzKSA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBpZih0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkgewotICAgICAgc2hpbS5leHBvcnRzID0ge307Ci0gICAgICBkZWZpbmUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiBzaGltLmV4cG9ydHM7Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgewotICAgICAgLy8gZ2wtbWF0cml4IGxpdmVzIGluIGEgYnJvd3NlciwgZGVmaW5lIGl0cyBuYW1lc3BhY2VzIGluIGdsb2JhbAotICAgICAgc2hpbS5leHBvcnRzID0gd2luZG93OwotICAgIH0gICAgCi0gIH0KLSAgZWxzZSB7Ci0gICAgLy8gZ2wtbWF0cml4IGxpdmVzIGluIGNvbW1vbmpzLCBkZWZpbmUgaXRzIG5hbWVzcGFjZXMgaW4gZXhwb3J0cwotICAgIHNoaW0uZXhwb3J0cyA9IGV4cG9ydHM7Ci0gIH0KLQotICAoZnVuY3Rpb24oZXhwb3J0cykgewotICAgIC8qIENvcHlyaWdodCAoYykgMjAxMywgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gCi0gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAqLwotCi0KLWlmKCFHTE1BVF9FUFNJTE9OKSB7Ci0gICAgdmFyIEdMTUFUX0VQU0lMT04gPSAwLjAwMDAwMTsKLX0KLQotaWYoIUdMTUFUX0FSUkFZX1RZUEUpIHsKLSAgICB2YXIgR0xNQVRfQVJSQVlfVFlQRSA9ICh0eXBlb2YgRmxvYXQzMkFycmF5ICE9PSAndW5kZWZpbmVkJykgPyBGbG9hdDMyQXJyYXkgOiBBcnJheTsKLX0KLQotLyoqCi0gKiBAY2xhc3MgQ29tbW9uIHV0aWxpdGllcwotICogQG5hbWUgZ2xNYXRyaXgKLSAqLwotdmFyIGdsTWF0cml4ID0ge307Ci0KLS8qKgotICogU2V0cyB0aGUgdHlwZSBvZiBhcnJheSB1c2VkIHdoZW4gY3JlYXRpbmcgbmV3IHZlY3RvcnMgYW5kIG1hdHJpY2llcwotICoKLSAqIEBwYXJhbSB7VHlwZX0gdHlwZSBBcnJheSB0eXBlLCBzdWNoIGFzIEZsb2F0MzJBcnJheSBvciBBcnJheQotICovCi1nbE1hdHJpeC5zZXRNYXRyaXhBcnJheVR5cGUgPSBmdW5jdGlvbih0eXBlKSB7Ci0gICAgR0xNQVRfQVJSQVlfVFlQRSA9IHR5cGU7Ci19Ci0KLWlmKHR5cGVvZihleHBvcnRzKSAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBleHBvcnRzLmdsTWF0cml4ID0gZ2xNYXRyaXg7Ci19Ci07Ci0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotLyoqCi0gKiBAY2xhc3MgMiBEaW1lbnNpb25hbCBWZWN0b3IKLSAqIEBuYW1lIHZlYzIKLSAqLwotCi12YXIgdmVjMiA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHZlYzIKLSAqCi0gKiBAcmV0dXJucyB7dmVjMn0gYSBuZXcgMkQgdmVjdG9yCi0gKi8KLXZlYzIuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDIpOwotICAgIG91dFswXSA9IDA7Ci0gICAgb3V0WzFdID0gMDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IHZlYzIgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3IKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIGNsb25lCi0gKiBAcmV0dXJucyB7dmVjMn0gYSBuZXcgMkQgdmVjdG9yCi0gKi8KLXZlYzIuY2xvbmUgPSBmdW5jdGlvbihhKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDIpOwotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IHZlYzIgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4gdmFsdWVzCi0gKgotICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50Ci0gKiBAcmV0dXJucyB7dmVjMn0gYSBuZXcgMkQgdmVjdG9yCi0gKi8KLXZlYzIuZnJvbVZhbHVlcyA9IGZ1bmN0aW9uKHgsIHkpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoMik7Ci0gICAgb3V0WzBdID0geDsKLSAgICBvdXRbMV0gPSB5OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSB2ZWMyIHRvIGFub3RoZXIKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBzb3VyY2UgdmVjdG9yCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWMyIHRvIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50Ci0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIuc2V0ID0gZnVuY3Rpb24ob3V0LCB4LCB5KSB7Ci0gICAgb3V0WzBdID0geDsKLSAgICBvdXRbMV0gPSB5OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFkZHMgdHdvIHZlYzIncwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICsgYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdICsgYlsxXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTdWJ0cmFjdHMgdHdvIHZlYzIncwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5zdWJ0cmFjdCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gLSBiWzBdOwotICAgIG91dFsxXSA9IGFbMV0gLSBiWzFdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5zdWJ0cmFjdH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMyLnN1YiA9IHZlYzIuc3VidHJhY3Q7Ci0KLS8qKgotICogTXVsdGlwbGllcyB0d28gdmVjMidzCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAqIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAqIGJbMV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLm11bHRpcGx5fQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzIubXVsID0gdmVjMi5tdWx0aXBseTsKLQotLyoqCi0gKiBEaXZpZGVzIHR3byB2ZWMyJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIuZGl2aWRlID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAvIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAvIGJbMV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLmRpdmlkZX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMyLmRpdiA9IHZlYzIuZGl2aWRlOwotCi0vKioKLSAqIFJldHVybnMgdGhlIG1pbmltdW0gb2YgdHdvIHZlYzIncwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5taW4gPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBNYXRoLm1pbihhWzBdLCBiWzBdKTsKLSAgICBvdXRbMV0gPSBNYXRoLm1pbihhWzFdLCBiWzFdKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG9mIHR3byB2ZWMyJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIubWF4ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gTWF0aC5tYXgoYVswXSwgYlswXSk7Ci0gICAgb3V0WzFdID0gTWF0aC5tYXgoYVsxXSwgYlsxXSk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2NhbGVzIGEgdmVjMiBieSBhIHNjYWxhciBudW1iZXIKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSB2ZWN0b3IgdG8gc2NhbGUKLSAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5Ci0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICogYjsKLSAgICBvdXRbMV0gPSBhWzFdICogYjsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBldWNsaWRpYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjMidzCi0gKgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKLSAqLwotdmVjMi5kaXN0YW5jZSA9IGZ1bmN0aW9uKGEsIGIpIHsKLSAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAotICAgICAgICB5ID0gYlsxXSAtIGFbMV07Ci0gICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkpOwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIuZGlzdGFuY2V9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMi5kaXN0ID0gdmVjMi5kaXN0YW5jZTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWMyJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgZGlzdGFuY2UgYmV0d2VlbiBhIGFuZCBiCi0gKi8KLXZlYzIuc3F1YXJlZERpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgewotICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCi0gICAgICAgIHkgPSBiWzFdIC0gYVsxXTsKLSAgICByZXR1cm4geCp4ICsgeSp5OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIuc3F1YXJlZERpc3RhbmNlfQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzIuc3FyRGlzdCA9IHZlYzIuc3F1YXJlZERpc3RhbmNlOwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGxlbmd0aCBvZiBhIHZlYzIKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIGNhbGN1bGF0ZSBsZW5ndGggb2YKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGxlbmd0aCBvZiBhCi0gKi8KLXZlYzIubGVuZ3RoID0gZnVuY3Rpb24gKGEpIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdOwotICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5KTsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLmxlbmd0aH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMyLmxlbiA9IHZlYzIubGVuZ3RoOwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgdmVjMgotICoKLSAqIEBwYXJhbSB7dmVjMn0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIHNxdWFyZWQgbGVuZ3RoIG9mCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGxlbmd0aCBvZiBhCi0gKi8KLXZlYzIuc3F1YXJlZExlbmd0aCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgdmFyIHggPSBhWzBdLAotICAgICAgICB5ID0gYVsxXTsKLSAgICByZXR1cm4geCp4ICsgeSp5OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIuc3F1YXJlZExlbmd0aH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMyLnNxckxlbiA9IHZlYzIuc3F1YXJlZExlbmd0aDsKLQotLyoqCi0gKiBOZWdhdGVzIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjMgotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIG5lZ2F0ZQotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLm5lZ2F0ZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IC1hWzBdOwotICAgIG91dFsxXSA9IC1hWzFdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIE5vcm1hbGl6ZSBhIHZlYzIKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHZlY3RvciB0byBub3JtYWxpemUKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5ub3JtYWxpemUgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdOwotICAgIHZhciBsZW4gPSB4KnggKyB5Knk7Ci0gICAgaWYgKGxlbiA+IDApIHsKLSAgICAgICAgLy9UT0RPOiBldmFsdWF0ZSB1c2Ugb2YgZ2xtX2ludnNxcnQgaGVyZT8KLSAgICAgICAgbGVuID0gMSAvIE1hdGguc3FydChsZW4pOwotICAgICAgICBvdXRbMF0gPSBhWzBdICogbGVuOwotICAgICAgICBvdXRbMV0gPSBhWzFdICogbGVuOwotICAgIH0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBkb3QgcHJvZHVjdCBvZiB0d28gdmVjMidzCi0gKgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBkb3QgcHJvZHVjdCBvZiBhIGFuZCBiCi0gKi8KLXZlYzIuZG90ID0gZnVuY3Rpb24gKGEsIGIpIHsKLSAgICByZXR1cm4gYVswXSAqIGJbMF0gKyBhWzFdICogYlsxXTsKLX07Ci0KLS8qKgotICogQ29tcHV0ZXMgdGhlIGNyb3NzIHByb2R1Y3Qgb2YgdHdvIHZlYzIncwotICogTm90ZSB0aGF0IHRoZSBjcm9zcyBwcm9kdWN0IG11c3QgYnkgZGVmaW5pdGlvbiBwcm9kdWNlIGEgM0QgdmVjdG9yCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMyLmNyb3NzID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgdmFyIHogPSBhWzBdICogYlsxXSAtIGFbMV0gKiBiWzBdOwotICAgIG91dFswXSA9IG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gejsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBQZXJmb3JtcyBhIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHZlYzIncwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEBwYXJhbSB7TnVtYmVyfSB0IGludGVycG9sYXRpb24gYW1vdW50IGJldHdlZW4gdGhlIHR3byBpbnB1dHMKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5sZXJwID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgdCkgewotICAgIHZhciBheCA9IGFbMF0sCi0gICAgICAgIGF5ID0gYVsxXTsKLSAgICBvdXRbMF0gPSBheCArIHQgKiAoYlswXSAtIGF4KTsKLSAgICBvdXRbMV0gPSBheSArIHQgKiAoYlsxXSAtIGF5KTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBUcmFuc2Zvcm1zIHRoZSB2ZWMyIHdpdGggYSBtYXQyCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHttYXQyfSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLnRyYW5zZm9ybU1hdDIgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdOwotICAgIG91dFswXSA9IG1bMF0gKiB4ICsgbVsyXSAqIHk7Ci0gICAgb3V0WzFdID0gbVsxXSAqIHggKyBtWzNdICogeTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBUcmFuc2Zvcm1zIHRoZSB2ZWMyIHdpdGggYSBtYXQyZAotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KLSAqIEBwYXJhbSB7bWF0MmR9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIudHJhbnNmb3JtTWF0MmQgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdOwotICAgIG91dFswXSA9IG1bMF0gKiB4ICsgbVsyXSAqIHkgKyBtWzRdOwotICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVszXSAqIHkgKyBtWzVdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zZm9ybXMgdGhlIHZlYzIgd2l0aCBhIG1hdDMKLSAqIDNyZCB2ZWN0b3IgY29tcG9uZW50IGlzIGltcGxpY2l0bHkgJzEnCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHttYXQzfSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLnRyYW5zZm9ybU1hdDMgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdOwotICAgIG91dFswXSA9IG1bMF0gKiB4ICsgbVszXSAqIHkgKyBtWzZdOwotICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVs0XSAqIHkgKyBtWzddOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zZm9ybXMgdGhlIHZlYzIgd2l0aCBhIG1hdDQKLSAqIDNyZCB2ZWN0b3IgY29tcG9uZW50IGlzIGltcGxpY2l0bHkgJzAnCi0gKiA0dGggdmVjdG9yIGNvbXBvbmVudCBpcyBpbXBsaWNpdGx5ICcxJwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KLSAqIEBwYXJhbSB7bWF0NH0gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGgKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi50cmFuc2Zvcm1NYXQ0ID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7Ci0gICAgdmFyIHggPSBhWzBdLCAKLSAgICAgICAgeSA9IGFbMV07Ci0gICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzRdICogeSArIG1bMTJdOwotICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVs1XSAqIHkgKyBtWzEzXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBQZXJmb3JtIHNvbWUgb3BlcmF0aW9uIG92ZXIgYW4gYXJyYXkgb2YgdmVjMnMuCi0gKgotICogQHBhcmFtIHtBcnJheX0gYSB0aGUgYXJyYXkgb2YgdmVjdG9ycyB0byBpdGVyYXRlIG92ZXIKLSAqIEBwYXJhbSB7TnVtYmVyfSBzdHJpZGUgTnVtYmVyIG9mIGVsZW1lbnRzIGJldHdlZW4gdGhlIHN0YXJ0IG9mIGVhY2ggdmVjMi4gSWYgMCBhc3N1bWVzIHRpZ2h0bHkgcGFja2VkCi0gKiBAcGFyYW0ge051bWJlcn0gb2Zmc2V0IE51bWJlciBvZiBlbGVtZW50cyB0byBza2lwIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5Ci0gKiBAcGFyYW0ge051bWJlcn0gY291bnQgTnVtYmVyIG9mIHZlYzJzIHRvIGl0ZXJhdGUgb3Zlci4gSWYgMCBpdGVyYXRlcyBvdmVyIGVudGlyZSBhcnJheQotICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gRnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCB2ZWN0b3IgaW4gdGhlIGFycmF5Ci0gKiBAcGFyYW0ge09iamVjdH0gW2FyZ10gYWRkaXRpb25hbCBhcmd1bWVudCB0byBwYXNzIHRvIGZuCi0gKiBAcmV0dXJucyB7QXJyYXl9IGEKLSAqIEBmdW5jdGlvbgotICovCi12ZWMyLmZvckVhY2ggPSAoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZlYyA9IHZlYzIuY3JlYXRlKCk7Ci0KLSAgICByZXR1cm4gZnVuY3Rpb24oYSwgc3RyaWRlLCBvZmZzZXQsIGNvdW50LCBmbiwgYXJnKSB7Ci0gICAgICAgIHZhciBpLCBsOwotICAgICAgICBpZighc3RyaWRlKSB7Ci0gICAgICAgICAgICBzdHJpZGUgPSAyOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYoIW9mZnNldCkgewotICAgICAgICAgICAgb2Zmc2V0ID0gMDsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYoY291bnQpIHsKLSAgICAgICAgICAgIGwgPSBNYXRoLm1pbigoY291bnQgKiBzdHJpZGUpICsgb2Zmc2V0LCBhLmxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsID0gYS5sZW5ndGg7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IoaSA9IG9mZnNldDsgaSA8IGw7IGkgKz0gc3RyaWRlKSB7Ci0gICAgICAgICAgICB2ZWNbMF0gPSBhW2ldOyB2ZWNbMV0gPSBhW2krMV07Ci0gICAgICAgICAgICBmbih2ZWMsIHZlYywgYXJnKTsKLSAgICAgICAgICAgIGFbaV0gPSB2ZWNbMF07IGFbaSsxXSA9IHZlY1sxXTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIGE7Ci0gICAgfTsKLX0pKCk7Ci0KLS8qKgotICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHZlY3RvcgotICoKLSAqIEBwYXJhbSB7dmVjMn0gdmVjIHZlY3RvciB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKLSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmVjdG9yCi0gKi8KLXZlYzIuc3RyID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gJ3ZlYzIoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcpJzsKLX07Ci0KLWlmKHR5cGVvZihleHBvcnRzKSAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBleHBvcnRzLnZlYzIgPSB2ZWMyOwotfQotOwotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIDMgRGltZW5zaW9uYWwgVmVjdG9yCi0gKiBAbmFtZSB2ZWMzCi0gKi8KLQotdmFyIHZlYzMgPSB7fTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3LCBlbXB0eSB2ZWMzCi0gKgotICogQHJldHVybnMge3ZlYzN9IGEgbmV3IDNEIHZlY3RvcgotICovCi12ZWMzLmNyZWF0ZSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSgzKTsKLSAgICBvdXRbMF0gPSAwOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IHZlYzMgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3IKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdmVjdG9yIHRvIGNsb25lCi0gKiBAcmV0dXJucyB7dmVjM30gYSBuZXcgM0QgdmVjdG9yCi0gKi8KLXZlYzMuY2xvbmUgPSBmdW5jdGlvbihhKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDMpOwotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICBvdXRbMl0gPSBhWzJdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgdmVjMyBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50Ci0gKiBAcmV0dXJucyB7dmVjM30gYSBuZXcgM0QgdmVjdG9yCi0gKi8KLXZlYzMuZnJvbVZhbHVlcyA9IGZ1bmN0aW9uKHgsIHksIHopIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoMyk7Ci0gICAgb3V0WzBdID0geDsKLSAgICBvdXRbMV0gPSB5OwotICAgIG91dFsyXSA9IHo7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHZlYzMgdG8gYW5vdGhlcgotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIHNvdXJjZSB2ZWN0b3IKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2V0IHRoZSBjb21wb25lbnRzIG9mIGEgdmVjMyB0byB0aGUgZ2l2ZW4gdmFsdWVzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHksIHopIHsKLSAgICBvdXRbMF0gPSB4OwotICAgIG91dFsxXSA9IHk7Ci0gICAgb3V0WzJdID0gejsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBZGRzIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMuYWRkID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSArIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSArIGJbMV07Ci0gICAgb3V0WzJdID0gYVsyXSArIGJbMl07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU3VidHJhY3RzIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMuc3VidHJhY3QgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdIC0gYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdIC0gYlsxXTsKLSAgICBvdXRbMl0gPSBhWzJdIC0gYlsyXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMuc3VidHJhY3R9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMy5zdWIgPSB2ZWMzLnN1YnRyYWN0OwotCi0vKioKLSAqIE11bHRpcGxpZXMgdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5tdWx0aXBseSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gKiBiWzBdOwotICAgIG91dFsxXSA9IGFbMV0gKiBiWzFdOwotICAgIG91dFsyXSA9IGFbMl0gKiBiWzJdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5tdWx0aXBseX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMzLm11bCA9IHZlYzMubXVsdGlwbHk7Ci0KLS8qKgotICogRGl2aWRlcyB0d28gdmVjMydzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLmRpdmlkZSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gLyBiWzBdOwotICAgIG91dFsxXSA9IGFbMV0gLyBiWzFdOwotICAgIG91dFsyXSA9IGFbMl0gLyBiWzJdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5kaXZpZGV9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMy5kaXYgPSB2ZWMzLmRpdmlkZTsKLQotLyoqCi0gKiBSZXR1cm5zIHRoZSBtaW5pbXVtIG9mIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMubWluID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gTWF0aC5taW4oYVswXSwgYlswXSk7Ci0gICAgb3V0WzFdID0gTWF0aC5taW4oYVsxXSwgYlsxXSk7Ci0gICAgb3V0WzJdID0gTWF0aC5taW4oYVsyXSwgYlsyXSk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUmV0dXJucyB0aGUgbWF4aW11bSBvZiB0d28gdmVjMydzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLm1heCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IE1hdGgubWF4KGFbMF0sIGJbMF0pOwotICAgIG91dFsxXSA9IE1hdGgubWF4KGFbMV0sIGJbMV0pOwotICAgIG91dFsyXSA9IE1hdGgubWF4KGFbMl0sIGJbMl0pOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNjYWxlcyBhIHZlYzMgYnkgYSBzY2FsYXIgbnVtYmVyCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgdmVjdG9yIHRvIHNjYWxlCi0gKiBAcGFyYW0ge051bWJlcn0gYiBhbW91bnQgdG8gc2NhbGUgdGhlIHZlY3RvciBieQotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAqIGI7Ci0gICAgb3V0WzFdID0gYVsxXSAqIGI7Ci0gICAgb3V0WzJdID0gYVsyXSAqIGI7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge051bWJlcn0gZGlzdGFuY2UgYmV0d2VlbiBhIGFuZCBiCi0gKi8KLXZlYzMuZGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7Ci0gICAgdmFyIHggPSBiWzBdIC0gYVswXSwKLSAgICAgICAgeSA9IGJbMV0gLSBhWzFdLAotICAgICAgICB6ID0gYlsyXSAtIGFbMl07Ci0gICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkgKyB6KnopOwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMuZGlzdGFuY2V9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMy5kaXN0ID0gdmVjMy5kaXN0YW5jZTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgZGlzdGFuY2UgYmV0d2VlbiBhIGFuZCBiCi0gKi8KLXZlYzMuc3F1YXJlZERpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgewotICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCi0gICAgICAgIHkgPSBiWzFdIC0gYVsxXSwKLSAgICAgICAgeiA9IGJbMl0gLSBhWzJdOwotICAgIHJldHVybiB4KnggKyB5KnkgKyB6Kno7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5zcXVhcmVkRGlzdGFuY2V9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMy5zcXJEaXN0ID0gdmVjMy5zcXVhcmVkRGlzdGFuY2U7Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgbGVuZ3RoIG9mIGEgdmVjMwotICoKLSAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIGxlbmd0aCBvZgotICogQHJldHVybnMge051bWJlcn0gbGVuZ3RoIG9mIGEKLSAqLwotdmVjMy5sZW5ndGggPSBmdW5jdGlvbiAoYSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV0sCi0gICAgICAgIHogPSBhWzJdOwotICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5ICsgeip6KTsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLmxlbmd0aH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMzLmxlbiA9IHZlYzMubGVuZ3RoOwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgdmVjMwotICoKLSAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIHNxdWFyZWQgbGVuZ3RoIG9mCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGxlbmd0aCBvZiBhCi0gKi8KLXZlYzMuc3F1YXJlZExlbmd0aCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgdmFyIHggPSBhWzBdLAotICAgICAgICB5ID0gYVsxXSwKLSAgICAgICAgeiA9IGFbMl07Ci0gICAgcmV0dXJuIHgqeCArIHkqeSArIHoqejsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLnNxdWFyZWRMZW5ndGh9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMy5zcXJMZW4gPSB2ZWMzLnNxdWFyZWRMZW5ndGg7Ci0KLS8qKgotICogTmVnYXRlcyB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzMKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBuZWdhdGUKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5uZWdhdGUgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSAtYVswXTsKLSAgICBvdXRbMV0gPSAtYVsxXTsKLSAgICBvdXRbMl0gPSAtYVsyXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBOb3JtYWxpemUgYSB2ZWMzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gbm9ybWFsaXplCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMubm9ybWFsaXplID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgdmFyIHggPSBhWzBdLAotICAgICAgICB5ID0gYVsxXSwKLSAgICAgICAgeiA9IGFbMl07Ci0gICAgdmFyIGxlbiA9IHgqeCArIHkqeSArIHoqejsKLSAgICBpZiAobGVuID4gMCkgewotICAgICAgICAvL1RPRE86IGV2YWx1YXRlIHVzZSBvZiBnbG1faW52c3FydCBoZXJlPwotICAgICAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KGxlbik7Ci0gICAgICAgIG91dFswXSA9IGFbMF0gKiBsZW47Ci0gICAgICAgIG91dFsxXSA9IGFbMV0gKiBsZW47Ci0gICAgICAgIG91dFsyXSA9IGFbMl0gKiBsZW47Ci0gICAgfQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGIKLSAqLwotdmVjMy5kb3QgPSBmdW5jdGlvbiAoYSwgYikgewotICAgIHJldHVybiBhWzBdICogYlswXSArIGFbMV0gKiBiWzFdICsgYVsyXSAqIGJbMl07Ci19OwotCi0vKioKLSAqIENvbXB1dGVzIHRoZSBjcm9zcyBwcm9kdWN0IG9mIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMuY3Jvc3MgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICB2YXIgYXggPSBhWzBdLCBheSA9IGFbMV0sIGF6ID0gYVsyXSwKLSAgICAgICAgYnggPSBiWzBdLCBieSA9IGJbMV0sIGJ6ID0gYlsyXTsKLQotICAgIG91dFswXSA9IGF5ICogYnogLSBheiAqIGJ5OwotICAgIG91dFsxXSA9IGF6ICogYnggLSBheCAqIGJ6OwotICAgIG91dFsyXSA9IGF4ICogYnkgLSBheSAqIGJ4OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gdmVjMydzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cwotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLmxlcnAgPSBmdW5jdGlvbiAob3V0LCBhLCBiLCB0KSB7Ci0gICAgdmFyIGF4ID0gYVswXSwKLSAgICAgICAgYXkgPSBhWzFdLAotICAgICAgICBheiA9IGFbMl07Ci0gICAgb3V0WzBdID0gYXggKyB0ICogKGJbMF0gLSBheCk7Ci0gICAgb3V0WzFdID0gYXkgKyB0ICogKGJbMV0gLSBheSk7Ci0gICAgb3V0WzJdID0gYXogKyB0ICogKGJbMl0gLSBheik7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNmb3JtcyB0aGUgdmVjMyB3aXRoIGEgbWF0NC4KLSAqIDR0aCB2ZWN0b3IgY29tcG9uZW50IGlzIGltcGxpY2l0bHkgJzEnCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHttYXQ0fSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLnRyYW5zZm9ybU1hdDQgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKLSAgICB2YXIgeCA9IGFbMF0sIHkgPSBhWzFdLCB6ID0gYVsyXTsKLSAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bNF0gKiB5ICsgbVs4XSAqIHogKyBtWzEyXTsKLSAgICBvdXRbMV0gPSBtWzFdICogeCArIG1bNV0gKiB5ICsgbVs5XSAqIHogKyBtWzEzXTsKLSAgICBvdXRbMl0gPSBtWzJdICogeCArIG1bNl0gKiB5ICsgbVsxMF0gKiB6ICsgbVsxNF07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNmb3JtcyB0aGUgdmVjMyB3aXRoIGEgcXVhdAotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KLSAqIEBwYXJhbSB7cXVhdH0gcSBxdWF0ZXJuaW9uIHRvIHRyYW5zZm9ybSB3aXRoCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMudHJhbnNmb3JtUXVhdCA9IGZ1bmN0aW9uKG91dCwgYSwgcSkgewotICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdLAotICAgICAgICBxeCA9IHFbMF0sIHF5ID0gcVsxXSwgcXogPSBxWzJdLCBxdyA9IHFbM10sCi0KLSAgICAgICAgLy8gY2FsY3VsYXRlIHF1YXQgKiB2ZWMKLSAgICAgICAgaXggPSBxdyAqIHggKyBxeSAqIHogLSBxeiAqIHksCi0gICAgICAgIGl5ID0gcXcgKiB5ICsgcXogKiB4IC0gcXggKiB6LAotICAgICAgICBpeiA9IHF3ICogeiArIHF4ICogeSAtIHF5ICogeCwKLSAgICAgICAgaXcgPSAtcXggKiB4IC0gcXkgKiB5IC0gcXogKiB6OwotCi0gICAgLy8gY2FsY3VsYXRlIHJlc3VsdCAqIGludmVyc2UgcXVhdAotICAgIG91dFswXSA9IGl4ICogcXcgKyBpdyAqIC1xeCArIGl5ICogLXF6IC0gaXogKiAtcXk7Ci0gICAgb3V0WzFdID0gaXkgKiBxdyArIGl3ICogLXF5ICsgaXogKiAtcXggLSBpeCAqIC1xejsKLSAgICBvdXRbMl0gPSBpeiAqIHF3ICsgaXcgKiAtcXogKyBpeCAqIC1xeSAtIGl5ICogLXF4OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFBlcmZvcm0gc29tZSBvcGVyYXRpb24gb3ZlciBhbiBhcnJheSBvZiB2ZWMzcy4KLSAqCi0gKiBAcGFyYW0ge0FycmF5fSBhIHRoZSBhcnJheSBvZiB2ZWN0b3JzIHRvIGl0ZXJhdGUgb3ZlcgotICogQHBhcmFtIHtOdW1iZXJ9IHN0cmlkZSBOdW1iZXIgb2YgZWxlbWVudHMgYmV0d2VlbiB0aGUgc3RhcnQgb2YgZWFjaCB2ZWMzLiBJZiAwIGFzc3VtZXMgdGlnaHRseSBwYWNrZWQKLSAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNraXAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkKLSAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudCBOdW1iZXIgb2YgdmVjM3MgdG8gaXRlcmF0ZSBvdmVyLiBJZiAwIGl0ZXJhdGVzIG92ZXIgZW50aXJlIGFycmF5Ci0gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBGdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIHZlY3RvciBpbiB0aGUgYXJyYXkKLSAqIEBwYXJhbSB7T2JqZWN0fSBbYXJnXSBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIHBhc3MgdG8gZm4KLSAqIEByZXR1cm5zIHtBcnJheX0gYQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzMuZm9yRWFjaCA9IChmdW5jdGlvbigpIHsKLSAgICB2YXIgdmVjID0gdmVjMy5jcmVhdGUoKTsKLQotICAgIHJldHVybiBmdW5jdGlvbihhLCBzdHJpZGUsIG9mZnNldCwgY291bnQsIGZuLCBhcmcpIHsKLSAgICAgICAgdmFyIGksIGw7Ci0gICAgICAgIGlmKCFzdHJpZGUpIHsKLSAgICAgICAgICAgIHN0cmlkZSA9IDM7Ci0gICAgICAgIH0KLQotICAgICAgICBpZighb2Zmc2V0KSB7Ci0gICAgICAgICAgICBvZmZzZXQgPSAwOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZihjb3VudCkgewotICAgICAgICAgICAgbCA9IE1hdGgubWluKChjb3VudCAqIHN0cmlkZSkgKyBvZmZzZXQsIGEubGVuZ3RoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGwgPSBhLmxlbmd0aDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcihpID0gb2Zmc2V0OyBpIDwgbDsgaSArPSBzdHJpZGUpIHsKLSAgICAgICAgICAgIHZlY1swXSA9IGFbaV07IHZlY1sxXSA9IGFbaSsxXTsgdmVjWzJdID0gYVtpKzJdOwotICAgICAgICAgICAgZm4odmVjLCB2ZWMsIGFyZyk7Ci0gICAgICAgICAgICBhW2ldID0gdmVjWzBdOyBhW2krMV0gPSB2ZWNbMV07IGFbaSsyXSA9IHZlY1syXTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIGE7Ci0gICAgfTsKLX0pKCk7Ci0KLS8qKgotICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHZlY3RvcgotICoKLSAqIEBwYXJhbSB7dmVjM30gdmVjIHZlY3RvciB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKLSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmVjdG9yCi0gKi8KLXZlYzMuc3RyID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gJ3ZlYzMoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJyknOwotfTsKLQotaWYodHlwZW9mKGV4cG9ydHMpICE9PSAndW5kZWZpbmVkJykgewotICAgIGV4cG9ydHMudmVjMyA9IHZlYzM7Ci19Ci07Ci0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotLyoqCi0gKiBAY2xhc3MgNCBEaW1lbnNpb25hbCBWZWN0b3IKLSAqIEBuYW1lIHZlYzQKLSAqLwotCi12YXIgdmVjNCA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHZlYzQKLSAqCi0gKiBAcmV0dXJucyB7dmVjNH0gYSBuZXcgNEQgdmVjdG9yCi0gKi8KLXZlYzQuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDQpOwotICAgIG91dFswXSA9IDA7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDA7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldyB2ZWM0IGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgdmVjdG9yCi0gKgotICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBjbG9uZQotICogQHJldHVybnMge3ZlYzR9IGEgbmV3IDREIHZlY3RvcgotICovCi12ZWM0LmNsb25lID0gZnVuY3Rpb24oYSkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSg0KTsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgdmVjNCBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0gdyBXIGNvbXBvbmVudAotICogQHJldHVybnMge3ZlYzR9IGEgbmV3IDREIHZlY3RvcgotICovCi12ZWM0LmZyb21WYWx1ZXMgPSBmdW5jdGlvbih4LCB5LCB6LCB3KSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDQpOwotICAgIG91dFswXSA9IHg7Ci0gICAgb3V0WzFdID0geTsKLSAgICBvdXRbMl0gPSB6OwotICAgIG91dFszXSA9IHc7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHZlYzQgdG8gYW5vdGhlcgotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIHNvdXJjZSB2ZWN0b3IKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWM0IHRvIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0geiBaIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHcgVyBjb21wb25lbnQKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHksIHosIHcpIHsKLSAgICBvdXRbMF0gPSB4OwotICAgIG91dFsxXSA9IHk7Ci0gICAgb3V0WzJdID0gejsKLSAgICBvdXRbM10gPSB3OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFkZHMgdHdvIHZlYzQncwotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICsgYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdICsgYlsxXTsKLSAgICBvdXRbMl0gPSBhWzJdICsgYlsyXTsKLSAgICBvdXRbM10gPSBhWzNdICsgYlszXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTdWJ0cmFjdHMgdHdvIHZlYzQncwotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5zdWJ0cmFjdCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gLSBiWzBdOwotICAgIG91dFsxXSA9IGFbMV0gLSBiWzFdOwotICAgIG91dFsyXSA9IGFbMl0gLSBiWzJdOwotICAgIG91dFszXSA9IGFbM10gLSBiWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjNC5zdWJ0cmFjdH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWM0LnN1YiA9IHZlYzQuc3VidHJhY3Q7Ci0KLS8qKgotICogTXVsdGlwbGllcyB0d28gdmVjNCdzCi0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0Lm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAqIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAqIGJbMV07Ci0gICAgb3V0WzJdID0gYVsyXSAqIGJbMl07Ci0gICAgb3V0WzNdID0gYVszXSAqIGJbM107Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWM0Lm11bHRpcGx5fQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzQubXVsID0gdmVjNC5tdWx0aXBseTsKLQotLyoqCi0gKiBEaXZpZGVzIHR3byB2ZWM0J3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQuZGl2aWRlID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAvIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAvIGJbMV07Ci0gICAgb3V0WzJdID0gYVsyXSAvIGJbMl07Ci0gICAgb3V0WzNdID0gYVszXSAvIGJbM107Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LmRpdmlkZX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWM0LmRpdiA9IHZlYzQuZGl2aWRlOwotCi0vKioKLSAqIFJldHVybnMgdGhlIG1pbmltdW0gb2YgdHdvIHZlYzQncwotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5taW4gPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBNYXRoLm1pbihhWzBdLCBiWzBdKTsKLSAgICBvdXRbMV0gPSBNYXRoLm1pbihhWzFdLCBiWzFdKTsKLSAgICBvdXRbMl0gPSBNYXRoLm1pbihhWzJdLCBiWzJdKTsKLSAgICBvdXRbM10gPSBNYXRoLm1pbihhWzNdLCBiWzNdKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG9mIHR3byB2ZWM0J3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQubWF4ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gTWF0aC5tYXgoYVswXSwgYlswXSk7Ci0gICAgb3V0WzFdID0gTWF0aC5tYXgoYVsxXSwgYlsxXSk7Ci0gICAgb3V0WzJdID0gTWF0aC5tYXgoYVsyXSwgYlsyXSk7Ci0gICAgb3V0WzNdID0gTWF0aC5tYXgoYVszXSwgYlszXSk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2NhbGVzIGEgdmVjNCBieSBhIHNjYWxhciBudW1iZXIKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSB2ZWN0b3IgdG8gc2NhbGUKLSAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5Ci0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICogYjsKLSAgICBvdXRbMV0gPSBhWzFdICogYjsKLSAgICBvdXRbMl0gPSBhWzJdICogYjsKLSAgICBvdXRbM10gPSBhWzNdICogYjsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBldWNsaWRpYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjNCdzCi0gKgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKLSAqLwotdmVjNC5kaXN0YW5jZSA9IGZ1bmN0aW9uKGEsIGIpIHsKLSAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAotICAgICAgICB5ID0gYlsxXSAtIGFbMV0sCi0gICAgICAgIHogPSBiWzJdIC0gYVsyXSwKLSAgICAgICAgdyA9IGJbM10gLSBhWzNdOwotICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5ICsgeip6ICsgdyp3KTsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LmRpc3RhbmNlfQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzQuZGlzdCA9IHZlYzQuZGlzdGFuY2U7Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBldWNsaWRpYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjNCdzCi0gKgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgotICovCi12ZWM0LnNxdWFyZWREaXN0YW5jZSA9IGZ1bmN0aW9uKGEsIGIpIHsKLSAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAotICAgICAgICB5ID0gYlsxXSAtIGFbMV0sCi0gICAgICAgIHogPSBiWzJdIC0gYVsyXSwKLSAgICAgICAgdyA9IGJbM10gLSBhWzNdOwotICAgIHJldHVybiB4KnggKyB5KnkgKyB6KnogKyB3Knc7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjNC5zcXVhcmVkRGlzdGFuY2V9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjNC5zcXJEaXN0ID0gdmVjNC5zcXVhcmVkRGlzdGFuY2U7Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgbGVuZ3RoIG9mIGEgdmVjNAotICoKLSAqIEBwYXJhbSB7dmVjNH0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIGxlbmd0aCBvZgotICogQHJldHVybnMge051bWJlcn0gbGVuZ3RoIG9mIGEKLSAqLwotdmVjNC5sZW5ndGggPSBmdW5jdGlvbiAoYSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV0sCi0gICAgICAgIHogPSBhWzJdLAotICAgICAgICB3ID0gYVszXTsKLSAgICByZXR1cm4gTWF0aC5zcXJ0KHgqeCArIHkqeSArIHoqeiArIHcqdyk7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjNC5sZW5ndGh9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjNC5sZW4gPSB2ZWM0Lmxlbmd0aDsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGxlbmd0aCBvZiBhIHZlYzQKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIGNhbGN1bGF0ZSBzcXVhcmVkIGxlbmd0aCBvZgotICogQHJldHVybnMge051bWJlcn0gc3F1YXJlZCBsZW5ndGggb2YgYQotICovCi12ZWM0LnNxdWFyZWRMZW5ndGggPSBmdW5jdGlvbiAoYSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV0sCi0gICAgICAgIHogPSBhWzJdLAotICAgICAgICB3ID0gYVszXTsKLSAgICByZXR1cm4geCp4ICsgeSp5ICsgeip6ICsgdyp3OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQuc3F1YXJlZExlbmd0aH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWM0LnNxckxlbiA9IHZlYzQuc3F1YXJlZExlbmd0aDsKLQotLyoqCi0gKiBOZWdhdGVzIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjNAotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIG5lZ2F0ZQotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0Lm5lZ2F0ZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IC1hWzBdOwotICAgIG91dFsxXSA9IC1hWzFdOwotICAgIG91dFsyXSA9IC1hWzJdOwotICAgIG91dFszXSA9IC1hWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIE5vcm1hbGl6ZSBhIHZlYzQKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBub3JtYWxpemUKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5ub3JtYWxpemUgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdLAotICAgICAgICB6ID0gYVsyXSwKLSAgICAgICAgdyA9IGFbM107Ci0gICAgdmFyIGxlbiA9IHgqeCArIHkqeSArIHoqeiArIHcqdzsKLSAgICBpZiAobGVuID4gMCkgewotICAgICAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KGxlbik7Ci0gICAgICAgIG91dFswXSA9IGFbMF0gKiBsZW47Ci0gICAgICAgIG91dFsxXSA9IGFbMV0gKiBsZW47Ci0gICAgICAgIG91dFsyXSA9IGFbMl0gKiBsZW47Ci0gICAgICAgIG91dFszXSA9IGFbM10gKiBsZW47Ci0gICAgfQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWM0J3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGIKLSAqLwotdmVjNC5kb3QgPSBmdW5jdGlvbiAoYSwgYikgewotICAgIHJldHVybiBhWzBdICogYlswXSArIGFbMV0gKiBiWzFdICsgYVsyXSAqIGJbMl0gKyBhWzNdICogYlszXTsKLX07Ci0KLS8qKgotICogUGVyZm9ybXMgYSBsaW5lYXIgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHR3byB2ZWM0J3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCi0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQubGVycCA9IGZ1bmN0aW9uIChvdXQsIGEsIGIsIHQpIHsKLSAgICB2YXIgYXggPSBhWzBdLAotICAgICAgICBheSA9IGFbMV0sCi0gICAgICAgIGF6ID0gYVsyXSwKLSAgICAgICAgYXcgPSBhWzNdOwotICAgIG91dFswXSA9IGF4ICsgdCAqIChiWzBdIC0gYXgpOwotICAgIG91dFsxXSA9IGF5ICsgdCAqIChiWzFdIC0gYXkpOwotICAgIG91dFsyXSA9IGF6ICsgdCAqIChiWzJdIC0gYXopOwotICAgIG91dFszXSA9IGF3ICsgdCAqIChiWzNdIC0gYXcpOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zZm9ybXMgdGhlIHZlYzQgd2l0aCBhIG1hdDQuCi0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHttYXQ0fSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0LnRyYW5zZm9ybU1hdDQgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKLSAgICB2YXIgeCA9IGFbMF0sIHkgPSBhWzFdLCB6ID0gYVsyXSwgdyA9IGFbM107Ci0gICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzRdICogeSArIG1bOF0gKiB6ICsgbVsxMl0gKiB3OwotICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVs1XSAqIHkgKyBtWzldICogeiArIG1bMTNdICogdzsKLSAgICBvdXRbMl0gPSBtWzJdICogeCArIG1bNl0gKiB5ICsgbVsxMF0gKiB6ICsgbVsxNF0gKiB3OwotICAgIG91dFszXSA9IG1bM10gKiB4ICsgbVs3XSAqIHkgKyBtWzExXSAqIHogKyBtWzE1XSAqIHc7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNmb3JtcyB0aGUgdmVjNCB3aXRoIGEgcXVhdAotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KLSAqIEBwYXJhbSB7cXVhdH0gcSBxdWF0ZXJuaW9uIHRvIHRyYW5zZm9ybSB3aXRoCi0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQudHJhbnNmb3JtUXVhdCA9IGZ1bmN0aW9uKG91dCwgYSwgcSkgewotICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdLAotICAgICAgICBxeCA9IHFbMF0sIHF5ID0gcVsxXSwgcXogPSBxWzJdLCBxdyA9IHFbM10sCi0KLSAgICAgICAgLy8gY2FsY3VsYXRlIHF1YXQgKiB2ZWMKLSAgICAgICAgaXggPSBxdyAqIHggKyBxeSAqIHogLSBxeiAqIHksCi0gICAgICAgIGl5ID0gcXcgKiB5ICsgcXogKiB4IC0gcXggKiB6LAotICAgICAgICBpeiA9IHF3ICogeiArIHF4ICogeSAtIHF5ICogeCwKLSAgICAgICAgaXcgPSAtcXggKiB4IC0gcXkgKiB5IC0gcXogKiB6OwotCi0gICAgLy8gY2FsY3VsYXRlIHJlc3VsdCAqIGludmVyc2UgcXVhdAotICAgIG91dFswXSA9IGl4ICogcXcgKyBpdyAqIC1xeCArIGl5ICogLXF6IC0gaXogKiAtcXk7Ci0gICAgb3V0WzFdID0gaXkgKiBxdyArIGl3ICogLXF5ICsgaXogKiAtcXggLSBpeCAqIC1xejsKLSAgICBvdXRbMl0gPSBpeiAqIHF3ICsgaXcgKiAtcXogKyBpeCAqIC1xeSAtIGl5ICogLXF4OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFBlcmZvcm0gc29tZSBvcGVyYXRpb24gb3ZlciBhbiBhcnJheSBvZiB2ZWM0cy4KLSAqCi0gKiBAcGFyYW0ge0FycmF5fSBhIHRoZSBhcnJheSBvZiB2ZWN0b3JzIHRvIGl0ZXJhdGUgb3ZlcgotICogQHBhcmFtIHtOdW1iZXJ9IHN0cmlkZSBOdW1iZXIgb2YgZWxlbWVudHMgYmV0d2VlbiB0aGUgc3RhcnQgb2YgZWFjaCB2ZWM0LiBJZiAwIGFzc3VtZXMgdGlnaHRseSBwYWNrZWQKLSAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNraXAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkKLSAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudCBOdW1iZXIgb2YgdmVjMnMgdG8gaXRlcmF0ZSBvdmVyLiBJZiAwIGl0ZXJhdGVzIG92ZXIgZW50aXJlIGFycmF5Ci0gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBGdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIHZlY3RvciBpbiB0aGUgYXJyYXkKLSAqIEBwYXJhbSB7T2JqZWN0fSBbYXJnXSBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIHBhc3MgdG8gZm4KLSAqIEByZXR1cm5zIHtBcnJheX0gYQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzQuZm9yRWFjaCA9IChmdW5jdGlvbigpIHsKLSAgICB2YXIgdmVjID0gdmVjNC5jcmVhdGUoKTsKLQotICAgIHJldHVybiBmdW5jdGlvbihhLCBzdHJpZGUsIG9mZnNldCwgY291bnQsIGZuLCBhcmcpIHsKLSAgICAgICAgdmFyIGksIGw7Ci0gICAgICAgIGlmKCFzdHJpZGUpIHsKLSAgICAgICAgICAgIHN0cmlkZSA9IDQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZighb2Zmc2V0KSB7Ci0gICAgICAgICAgICBvZmZzZXQgPSAwOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZihjb3VudCkgewotICAgICAgICAgICAgbCA9IE1hdGgubWluKChjb3VudCAqIHN0cmlkZSkgKyBvZmZzZXQsIGEubGVuZ3RoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGwgPSBhLmxlbmd0aDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcihpID0gb2Zmc2V0OyBpIDwgbDsgaSArPSBzdHJpZGUpIHsKLSAgICAgICAgICAgIHZlY1swXSA9IGFbaV07IHZlY1sxXSA9IGFbaSsxXTsgdmVjWzJdID0gYVtpKzJdOyB2ZWNbM10gPSBhW2krM107Ci0gICAgICAgICAgICBmbih2ZWMsIHZlYywgYXJnKTsKLSAgICAgICAgICAgIGFbaV0gPSB2ZWNbMF07IGFbaSsxXSA9IHZlY1sxXTsgYVtpKzJdID0gdmVjWzJdOyBhW2krM10gPSB2ZWNbM107Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiBhOwotICAgIH07Ci19KSgpOwotCi0vKioKLSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB2ZWN0b3IKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IHZlYyB2ZWN0b3IgdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCi0gKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZlY3RvcgotICovCi12ZWM0LnN0ciA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgcmV0dXJuICd2ZWM0KCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyBhWzNdICsgJyknOwotfTsKLQotaWYodHlwZW9mKGV4cG9ydHMpICE9PSAndW5kZWZpbmVkJykgewotICAgIGV4cG9ydHMudmVjNCA9IHZlYzQ7Ci19Ci07Ci0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotLyoqCi0gKiBAY2xhc3MgMngyIE1hdHJpeAotICogQG5hbWUgbWF0MgotICovCi0KLXZhciBtYXQyID0ge307Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldyBpZGVudGl0eSBtYXQyCi0gKgotICogQHJldHVybnMge21hdDJ9IGEgbmV3IDJ4MiBtYXRyaXgKLSAqLwotbWF0Mi5jcmVhdGUgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoNCk7Ci0gICAgb3V0WzBdID0gMTsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IG1hdDIgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKLSAqCi0gKiBAcGFyYW0ge21hdDJ9IGEgbWF0cml4IHRvIGNsb25lCi0gKiBAcmV0dXJucyB7bWF0Mn0gYSBuZXcgMngyIG1hdHJpeAotICovCi1tYXQyLmNsb25lID0gZnVuY3Rpb24oYSkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSg0KTsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSBtYXQyIHRvIGFub3RoZXIKLSAqCi0gKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyfSBhIHRoZSBzb3VyY2UgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0Mn0gb3V0Ci0gKi8KLW1hdDIuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICBvdXRbMl0gPSBhWzJdOwotICAgIG91dFszXSA9IGFbM107Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2V0IGEgbWF0MiB0byB0aGUgaWRlbnRpdHkgbWF0cml4Ci0gKgotICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQyfSBvdXQKLSAqLwotbWF0Mi5pZGVudGl0eSA9IGZ1bmN0aW9uKG91dCkgewotICAgIG91dFswXSA9IDE7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDE7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNwb3NlIHRoZSB2YWx1ZXMgb2YgYSBtYXQyCi0gKgotICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDJ9IG91dAotICovCi1tYXQyLnRyYW5zcG9zZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIC8vIElmIHdlIGFyZSB0cmFuc3Bvc2luZyBvdXJzZWx2ZXMgd2UgY2FuIHNraXAgYSBmZXcgc3RlcHMgYnV0IGhhdmUgdG8gY2FjaGUgc29tZSB2YWx1ZXMKLSAgICBpZiAob3V0ID09PSBhKSB7Ci0gICAgICAgIHZhciBhMSA9IGFbMV07Ci0gICAgICAgIG91dFsxXSA9IGFbMl07Ci0gICAgICAgIG91dFsyXSA9IGExOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG91dFswXSA9IGFbMF07Ci0gICAgICAgIG91dFsxXSA9IGFbMl07Ci0gICAgICAgIG91dFsyXSA9IGFbMV07Ci0gICAgICAgIG91dFszXSA9IGFbM107Ci0gICAgfQotICAgIAotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEludmVydHMgYSBtYXQyCi0gKgotICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDJ9IG91dAotICovCi1tYXQyLmludmVydCA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sCi0KLSAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkZXRlcm1pbmFudAotICAgICAgICBkZXQgPSBhMCAqIGEzIC0gYTIgKiBhMTsKLQotICAgIGlmICghZGV0KSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLSAgICBkZXQgPSAxLjAgLyBkZXQ7Ci0gICAgCi0gICAgb3V0WzBdID0gIGEzICogZGV0OwotICAgIG91dFsxXSA9IC1hMSAqIGRldDsKLSAgICBvdXRbMl0gPSAtYTIgKiBkZXQ7Ci0gICAgb3V0WzNdID0gIGEwICogZGV0OwotCi0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgYWRqdWdhdGUgb2YgYSBtYXQyCi0gKgotICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDJ9IG91dAotICovCi1tYXQyLmFkam9pbnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICAvLyBDYWNoaW5nIHRoaXMgdmFsdWUgaXMgbmVzc2VjYXJ5IGlmIG91dCA9PSBhCi0gICAgdmFyIGEwID0gYVswXTsKLSAgICBvdXRbMF0gPSAgYVszXTsKLSAgICBvdXRbMV0gPSAtYVsxXTsKLSAgICBvdXRbMl0gPSAtYVsyXTsKLSAgICBvdXRbM10gPSAgYTA7Ci0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBkZXRlcm1pbmFudCBvZiBhIG1hdDIKLSAqCi0gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRldGVybWluYW50IG9mIGEKLSAqLwotbWF0Mi5kZXRlcm1pbmFudCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgcmV0dXJuIGFbMF0gKiBhWzNdIC0gYVsyXSAqIGFbMV07Ci19OwotCi0vKioKLSAqIE11bHRpcGxpZXMgdHdvIG1hdDIncwotICoKLSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7bWF0Mn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHttYXQyfSBvdXQKLSAqLwotbWF0Mi5tdWx0aXBseSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIpIHsKLSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdOwotICAgIHZhciBiMCA9IGJbMF0sIGIxID0gYlsxXSwgYjIgPSBiWzJdLCBiMyA9IGJbM107Ci0gICAgb3V0WzBdID0gYTAgKiBiMCArIGExICogYjI7Ci0gICAgb3V0WzFdID0gYTAgKiBiMSArIGExICogYjM7Ci0gICAgb3V0WzJdID0gYTIgKiBiMCArIGEzICogYjI7Ci0gICAgb3V0WzNdID0gYTIgKiBiMSArIGEzICogYjM7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayBtYXQyLm11bHRpcGx5fQotICogQGZ1bmN0aW9uCi0gKi8KLW1hdDIubXVsID0gbWF0Mi5tdWx0aXBseTsKLQotLyoqCi0gKiBSb3RhdGVzIGEgbWF0MiBieSB0aGUgZ2l2ZW4gYW5nbGUKLSAqCi0gKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCi0gKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQotICogQHJldHVybnMge21hdDJ9IG91dAotICovCi1tYXQyLnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgewotICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sCi0gICAgICAgIHMgPSBNYXRoLnNpbihyYWQpLAotICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKLSAgICBvdXRbMF0gPSBhMCAqICBjICsgYTEgKiBzOwotICAgIG91dFsxXSA9IGEwICogLXMgKyBhMSAqIGM7Ci0gICAgb3V0WzJdID0gYTIgKiAgYyArIGEzICogczsKLSAgICBvdXRbM10gPSBhMiAqIC1zICsgYTMgKiBjOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNjYWxlcyB0aGUgbWF0MiBieSB0aGUgZGltZW5zaW9ucyBpbiB0aGUgZ2l2ZW4gdmVjMgotICoKLSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKLSAqIEBwYXJhbSB7dmVjMn0gdiB0aGUgdmVjMiB0byBzY2FsZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0Mn0gb3V0Ci0gKiovCi1tYXQyLnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7Ci0gICAgdmFyIGEwID0gYVswXSwgYTEgPSBhWzFdLCBhMiA9IGFbMl0sIGEzID0gYVszXSwKLSAgICAgICAgdjAgPSB2WzBdLCB2MSA9IHZbMV07Ci0gICAgb3V0WzBdID0gYTAgKiB2MDsKLSAgICBvdXRbMV0gPSBhMSAqIHYxOwotICAgIG91dFsyXSA9IGEyICogdjA7Ci0gICAgb3V0WzNdID0gYTMgKiB2MTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgbWF0MgotICoKLSAqIEBwYXJhbSB7bWF0Mn0gbWF0IG1hdHJpeCB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKLSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4Ci0gKi8KLW1hdDIuc3RyID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gJ21hdDIoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJywgJyArIGFbM10gKyAnKSc7Ci19OwotCi1pZih0eXBlb2YoZXhwb3J0cykgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgZXhwb3J0cy5tYXQyID0gbWF0MjsKLX0KLTsKLS8qIENvcHlyaWdodCAoYykgMjAxMywgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gCi0gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAqLwotCi0vKioKLSAqIEBjbGFzcyAyeDMgTWF0cml4Ci0gKiBAbmFtZSBtYXQyZAotICogCi0gKiBAZGVzY3JpcHRpb24gCi0gKiBBIG1hdDJkIGNvbnRhaW5zIHNpeCBlbGVtZW50cyBkZWZpbmVkIGFzOgotICogPHByZT4KLSAqIFthLCBiLAotICogIGMsIGQsCi0gKiAgdHgsdHldCi0gKiA8L3ByZT4KLSAqIFRoaXMgaXMgYSBzaG9ydCBmb3JtIGZvciB0aGUgM3gzIG1hdHJpeDoKLSAqIDxwcmU+Ci0gKiBbYSwgYiwgMAotICogIGMsIGQsIDAKLSAqICB0eCx0eSwxXQotICogPC9wcmU+Ci0gKiBUaGUgbGFzdCBjb2x1bW4gaXMgaWdub3JlZCBzbyB0aGUgYXJyYXkgaXMgc2hvcnRlciBhbmQgb3BlcmF0aW9ucyBhcmUgZmFzdGVyLgotICovCi0KLXZhciBtYXQyZCA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgbWF0MmQKLSAqCi0gKiBAcmV0dXJucyB7bWF0MmR9IGEgbmV3IDJ4MyBtYXRyaXgKLSAqLwotbWF0MmQuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDYpOwotICAgIG91dFswXSA9IDE7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDE7Ci0gICAgb3V0WzRdID0gMDsKLSAgICBvdXRbNV0gPSAwOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgbWF0MmQgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBhIG1hdHJpeCB0byBjbG9uZQotICogQHJldHVybnMge21hdDJkfSBhIG5ldyAyeDMgbWF0cml4Ci0gKi8KLW1hdDJkLmNsb25lID0gZnVuY3Rpb24oYSkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSg2KTsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIG91dFs0XSA9IGFbNF07Ci0gICAgb3V0WzVdID0gYVs1XTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MmQgdG8gYW5vdGhlcgotICoKLSAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyZH0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDJkfSBvdXQKLSAqLwotbWF0MmQuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICBvdXRbMl0gPSBhWzJdOwotICAgIG91dFszXSA9IGFbM107Ci0gICAgb3V0WzRdID0gYVs0XTsKLSAgICBvdXRbNV0gPSBhWzVdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNldCBhIG1hdDJkIHRvIHRoZSBpZGVudGl0eSBtYXRyaXgKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQyZH0gb3V0Ci0gKi8KLW1hdDJkLmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7Ci0gICAgb3V0WzBdID0gMTsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMTsKLSAgICBvdXRbNF0gPSAwOwotICAgIG91dFs1XSA9IDA7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogSW52ZXJ0cyBhIG1hdDJkCi0gKgotICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBzb3VyY2UgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0MmR9IG91dAotICovCi1tYXQyZC5pbnZlcnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgYWEgPSBhWzBdLCBhYiA9IGFbMV0sIGFjID0gYVsyXSwgYWQgPSBhWzNdLAotICAgICAgICBhdHggPSBhWzRdLCBhdHkgPSBhWzVdOwotCi0gICAgdmFyIGRldCA9IGFhICogYWQgLSBhYiAqIGFjOwotICAgIGlmKCFkZXQpewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0gICAgZGV0ID0gMS4wIC8gZGV0OwotCi0gICAgb3V0WzBdID0gYWQgKiBkZXQ7Ci0gICAgb3V0WzFdID0gLWFiICogZGV0OwotICAgIG91dFsyXSA9IC1hYyAqIGRldDsKLSAgICBvdXRbM10gPSBhYSAqIGRldDsKLSAgICBvdXRbNF0gPSAoYWMgKiBhdHkgLSBhZCAqIGF0eCkgKiBkZXQ7Ci0gICAgb3V0WzVdID0gKGFiICogYXR4IC0gYWEgKiBhdHkpICogZGV0OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGRldGVybWluYW50IG9mIGEgbWF0MmQKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBzb3VyY2UgbWF0cml4Ci0gKiBAcmV0dXJucyB7TnVtYmVyfSBkZXRlcm1pbmFudCBvZiBhCi0gKi8KLW1hdDJkLmRldGVybWluYW50ID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gYVswXSAqIGFbM10gLSBhWzFdICogYVsyXTsKLX07Ci0KLS8qKgotICogTXVsdGlwbGllcyB0d28gbWF0MmQncwotICoKLSAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyZH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHttYXQyZH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHttYXQyZH0gb3V0Ci0gKi8KLW1hdDJkLm11bHRpcGx5ID0gZnVuY3Rpb24gKG91dCwgYSwgYikgewotICAgIHZhciBhYSA9IGFbMF0sIGFiID0gYVsxXSwgYWMgPSBhWzJdLCBhZCA9IGFbM10sCi0gICAgICAgIGF0eCA9IGFbNF0sIGF0eSA9IGFbNV0sCi0gICAgICAgIGJhID0gYlswXSwgYmIgPSBiWzFdLCBiYyA9IGJbMl0sIGJkID0gYlszXSwKLSAgICAgICAgYnR4ID0gYls0XSwgYnR5ID0gYls1XTsKLQotICAgIG91dFswXSA9IGFhKmJhICsgYWIqYmM7Ci0gICAgb3V0WzFdID0gYWEqYmIgKyBhYipiZDsKLSAgICBvdXRbMl0gPSBhYypiYSArIGFkKmJjOwotICAgIG91dFszXSA9IGFjKmJiICsgYWQqYmQ7Ci0gICAgb3V0WzRdID0gYmEqYXR4ICsgYmMqYXR5ICsgYnR4OwotICAgIG91dFs1XSA9IGJiKmF0eCArIGJkKmF0eSArIGJ0eTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIG1hdDJkLm11bHRpcGx5fQotICogQGZ1bmN0aW9uCi0gKi8KLW1hdDJkLm11bCA9IG1hdDJkLm11bHRpcGx5OwotCi0KLS8qKgotICogUm90YXRlcyBhIG1hdDJkIGJ5IHRoZSBnaXZlbiBhbmdsZQotICoKLSAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyZH0gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQyZH0gb3V0Ci0gKi8KLW1hdDJkLnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgewotICAgIHZhciBhYSA9IGFbMF0sCi0gICAgICAgIGFiID0gYVsxXSwKLSAgICAgICAgYWMgPSBhWzJdLAotICAgICAgICBhZCA9IGFbM10sCi0gICAgICAgIGF0eCA9IGFbNF0sCi0gICAgICAgIGF0eSA9IGFbNV0sCi0gICAgICAgIHN0ID0gTWF0aC5zaW4ocmFkKSwKLSAgICAgICAgY3QgPSBNYXRoLmNvcyhyYWQpOwotCi0gICAgb3V0WzBdID0gYWEqY3QgKyBhYipzdDsKLSAgICBvdXRbMV0gPSAtYWEqc3QgKyBhYipjdDsKLSAgICBvdXRbMl0gPSBhYypjdCArIGFkKnN0OwotICAgIG91dFszXSA9IC1hYypzdCArIGN0KmFkOwotICAgIG91dFs0XSA9IGN0KmF0eCArIHN0KmF0eTsKLSAgICBvdXRbNV0gPSBjdCphdHkgLSBzdCphdHg7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2NhbGVzIHRoZSBtYXQyZCBieSB0aGUgZGltZW5zaW9ucyBpbiB0aGUgZ2l2ZW4gdmVjMgotICoKLSAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyZH0gYSB0aGUgbWF0cml4IHRvIHRyYW5zbGF0ZQotICogQHBhcmFtIHttYXQyZH0gdiB0aGUgdmVjMiB0byBzY2FsZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0MmR9IG91dAotICoqLwotbWF0MmQuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIHYpIHsKLSAgICB2YXIgdnggPSB2WzBdLCB2eSA9IHZbMV07Ci0gICAgb3V0WzBdID0gYVswXSAqIHZ4OwotICAgIG91dFsxXSA9IGFbMV0gKiB2eTsKLSAgICBvdXRbMl0gPSBhWzJdICogdng7Ci0gICAgb3V0WzNdID0gYVszXSAqIHZ5OwotICAgIG91dFs0XSA9IGFbNF0gKiB2eDsKLSAgICBvdXRbNV0gPSBhWzVdICogdnk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNsYXRlcyB0aGUgbWF0MmQgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzIKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIG1hdHJpeCB0byB0cmFuc2xhdGUKLSAqIEBwYXJhbSB7bWF0MmR9IHYgdGhlIHZlYzIgdG8gdHJhbnNsYXRlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQyZH0gb3V0Ci0gKiovCi1tYXQyZC50cmFuc2xhdGUgPSBmdW5jdGlvbihvdXQsIGEsIHYpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIG91dFs0XSA9IGFbNF0gKyB2WzBdOwotICAgIG91dFs1XSA9IGFbNV0gKyB2WzFdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBtYXQyZAotICoKLSAqIEBwYXJhbSB7bWF0MmR9IGEgbWF0cml4IHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZwotICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgKLSAqLwotbWF0MmQuc3RyID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gJ21hdDJkKCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyAKLSAgICAgICAgICAgICAgICAgICAgYVszXSArICcsICcgKyBhWzRdICsgJywgJyArIGFbNV0gKyAnKSc7Ci19OwotCi1pZih0eXBlb2YoZXhwb3J0cykgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgZXhwb3J0cy5tYXQyZCA9IG1hdDJkOwotfQotOwotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIDN4MyBNYXRyaXgKLSAqIEBuYW1lIG1hdDMKLSAqLwotCi12YXIgbWF0MyA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgbWF0MwotICoKLSAqIEByZXR1cm5zIHttYXQzfSBhIG5ldyAzeDMgbWF0cml4Ci0gKi8KLW1hdDMuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDkpOwotICAgIG91dFswXSA9IDE7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDA7Ci0gICAgb3V0WzRdID0gMTsKLSAgICBvdXRbNV0gPSAwOwotICAgIG91dFs2XSA9IDA7Ci0gICAgb3V0WzddID0gMDsKLSAgICBvdXRbOF0gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENvcGllcyB0aGUgdXBwZXItbGVmdCAzeDMgdmFsdWVzIGludG8gdGhlIGdpdmVuIG1hdDMuCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyAzeDMgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgICB0aGUgc291cmNlIDR4NCBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqLwotbWF0My5mcm9tTWF0NCA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICBvdXRbMl0gPSBhWzJdOwotICAgIG91dFszXSA9IGFbNF07Ci0gICAgb3V0WzRdID0gYVs1XTsKLSAgICBvdXRbNV0gPSBhWzZdOwotICAgIG91dFs2XSA9IGFbOF07Ci0gICAgb3V0WzddID0gYVs5XTsKLSAgICBvdXRbOF0gPSBhWzEwXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IG1hdDMgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKLSAqCi0gKiBAcGFyYW0ge21hdDN9IGEgbWF0cml4IHRvIGNsb25lCi0gKiBAcmV0dXJucyB7bWF0M30gYSBuZXcgM3gzIG1hdHJpeAotICovCi1tYXQzLmNsb25lID0gZnVuY3Rpb24oYSkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSg5KTsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIG91dFs0XSA9IGFbNF07Ci0gICAgb3V0WzVdID0gYVs1XTsKLSAgICBvdXRbNl0gPSBhWzZdOwotICAgIG91dFs3XSA9IGFbN107Ci0gICAgb3V0WzhdID0gYVs4XTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MyB0byBhbm90aGVyCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIG91dFs0XSA9IGFbNF07Ci0gICAgb3V0WzVdID0gYVs1XTsKLSAgICBvdXRbNl0gPSBhWzZdOwotICAgIG91dFs3XSA9IGFbN107Ci0gICAgb3V0WzhdID0gYVs4XTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTZXQgYSBtYXQzIHRvIHRoZSBpZGVudGl0eSBtYXRyaXgKLSAqCi0gKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7Ci0gICAgb3V0WzBdID0gMTsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMDsKLSAgICBvdXRbNF0gPSAxOwotICAgIG91dFs1XSA9IDA7Ci0gICAgb3V0WzZdID0gMDsKLSAgICBvdXRbN10gPSAwOwotICAgIG91dFs4XSA9IDE7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNwb3NlIHRoZSB2YWx1ZXMgb2YgYSBtYXQzCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLnRyYW5zcG9zZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIC8vIElmIHdlIGFyZSB0cmFuc3Bvc2luZyBvdXJzZWx2ZXMgd2UgY2FuIHNraXAgYSBmZXcgc3RlcHMgYnV0IGhhdmUgdG8gY2FjaGUgc29tZSB2YWx1ZXMKLSAgICBpZiAob3V0ID09PSBhKSB7Ci0gICAgICAgIHZhciBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMTIgPSBhWzVdOwotICAgICAgICBvdXRbMV0gPSBhWzNdOwotICAgICAgICBvdXRbMl0gPSBhWzZdOwotICAgICAgICBvdXRbM10gPSBhMDE7Ci0gICAgICAgIG91dFs1XSA9IGFbN107Ci0gICAgICAgIG91dFs2XSA9IGEwMjsKLSAgICAgICAgb3V0WzddID0gYTEyOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG91dFswXSA9IGFbMF07Ci0gICAgICAgIG91dFsxXSA9IGFbM107Ci0gICAgICAgIG91dFsyXSA9IGFbNl07Ci0gICAgICAgIG91dFszXSA9IGFbMV07Ci0gICAgICAgIG91dFs0XSA9IGFbNF07Ci0gICAgICAgIG91dFs1XSA9IGFbN107Ci0gICAgICAgIG91dFs2XSA9IGFbMl07Ci0gICAgICAgIG91dFs3XSA9IGFbNV07Ci0gICAgICAgIG91dFs4XSA9IGFbOF07Ci0gICAgfQotICAgIAotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEludmVydHMgYSBtYXQzCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLmludmVydCA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAotICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAotICAgICAgICBhMjAgPSBhWzZdLCBhMjEgPSBhWzddLCBhMjIgPSBhWzhdLAotCi0gICAgICAgIGIwMSA9IGEyMiAqIGExMSAtIGExMiAqIGEyMSwKLSAgICAgICAgYjExID0gLWEyMiAqIGExMCArIGExMiAqIGEyMCwKLSAgICAgICAgYjIxID0gYTIxICogYTEwIC0gYTExICogYTIwLAotCi0gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKLSAgICAgICAgZGV0ID0gYTAwICogYjAxICsgYTAxICogYjExICsgYTAyICogYjIxOwotCi0gICAgaWYgKCFkZXQpIHsgCi0gICAgICAgIHJldHVybiBudWxsOyAKLSAgICB9Ci0gICAgZGV0ID0gMS4wIC8gZGV0OwotCi0gICAgb3V0WzBdID0gYjAxICogZGV0OwotICAgIG91dFsxXSA9ICgtYTIyICogYTAxICsgYTAyICogYTIxKSAqIGRldDsKLSAgICBvdXRbMl0gPSAoYTEyICogYTAxIC0gYTAyICogYTExKSAqIGRldDsKLSAgICBvdXRbM10gPSBiMTEgKiBkZXQ7Ci0gICAgb3V0WzRdID0gKGEyMiAqIGEwMCAtIGEwMiAqIGEyMCkgKiBkZXQ7Ci0gICAgb3V0WzVdID0gKC1hMTIgKiBhMDAgKyBhMDIgKiBhMTApICogZGV0OwotICAgIG91dFs2XSA9IGIyMSAqIGRldDsKLSAgICBvdXRbN10gPSAoLWEyMSAqIGEwMCArIGEwMSAqIGEyMCkgKiBkZXQ7Ci0gICAgb3V0WzhdID0gKGExMSAqIGEwMCAtIGEwMSAqIGExMCkgKiBkZXQ7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgYWRqdWdhdGUgb2YgYSBtYXQzCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLmFkam9pbnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwKLSAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKLSAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XTsKLQotICAgIG91dFswXSA9IChhMTEgKiBhMjIgLSBhMTIgKiBhMjEpOwotICAgIG91dFsxXSA9IChhMDIgKiBhMjEgLSBhMDEgKiBhMjIpOwotICAgIG91dFsyXSA9IChhMDEgKiBhMTIgLSBhMDIgKiBhMTEpOwotICAgIG91dFszXSA9IChhMTIgKiBhMjAgLSBhMTAgKiBhMjIpOwotICAgIG91dFs0XSA9IChhMDAgKiBhMjIgLSBhMDIgKiBhMjApOwotICAgIG91dFs1XSA9IChhMDIgKiBhMTAgLSBhMDAgKiBhMTIpOwotICAgIG91dFs2XSA9IChhMTAgKiBhMjEgLSBhMTEgKiBhMjApOwotICAgIG91dFs3XSA9IChhMDEgKiBhMjAgLSBhMDAgKiBhMjEpOwotICAgIG91dFs4XSA9IChhMDAgKiBhMTEgLSBhMDEgKiBhMTApOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGRldGVybWluYW50IG9mIGEgbWF0MwotICoKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge051bWJlcn0gZGV0ZXJtaW5hbnQgb2YgYQotICovCi1tYXQzLmRldGVybWluYW50ID0gZnVuY3Rpb24gKGEpIHsKLSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwKLSAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKLSAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XTsKLQotICAgIHJldHVybiBhMDAgKiAoYTIyICogYTExIC0gYTEyICogYTIxKSArIGEwMSAqICgtYTIyICogYTEwICsgYTEyICogYTIwKSArIGEwMiAqIChhMjEgKiBhMTAgLSBhMTEgKiBhMjApOwotfTsKLQotLyoqCi0gKiBNdWx0aXBsaWVzIHR3byBtYXQzJ3MKLSAqCi0gKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge21hdDN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7bWF0M30gb3V0Ci0gKi8KLW1hdDMubXVsdGlwbHkgPSBmdW5jdGlvbiAob3V0LCBhLCBiKSB7Ci0gICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCi0gICAgICAgIGExMCA9IGFbM10sIGExMSA9IGFbNF0sIGExMiA9IGFbNV0sCi0gICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF0sCi0KLSAgICAgICAgYjAwID0gYlswXSwgYjAxID0gYlsxXSwgYjAyID0gYlsyXSwKLSAgICAgICAgYjEwID0gYlszXSwgYjExID0gYls0XSwgYjEyID0gYls1XSwKLSAgICAgICAgYjIwID0gYls2XSwgYjIxID0gYls3XSwgYjIyID0gYls4XTsKLQotICAgIG91dFswXSA9IGIwMCAqIGEwMCArIGIwMSAqIGExMCArIGIwMiAqIGEyMDsKLSAgICBvdXRbMV0gPSBiMDAgKiBhMDEgKyBiMDEgKiBhMTEgKyBiMDIgKiBhMjE7Ci0gICAgb3V0WzJdID0gYjAwICogYTAyICsgYjAxICogYTEyICsgYjAyICogYTIyOwotCi0gICAgb3V0WzNdID0gYjEwICogYTAwICsgYjExICogYTEwICsgYjEyICogYTIwOwotICAgIG91dFs0XSA9IGIxMCAqIGEwMSArIGIxMSAqIGExMSArIGIxMiAqIGEyMTsKLSAgICBvdXRbNV0gPSBiMTAgKiBhMDIgKyBiMTEgKiBhMTIgKyBiMTIgKiBhMjI7Ci0KLSAgICBvdXRbNl0gPSBiMjAgKiBhMDAgKyBiMjEgKiBhMTAgKyBiMjIgKiBhMjA7Ci0gICAgb3V0WzddID0gYjIwICogYTAxICsgYjIxICogYTExICsgYjIyICogYTIxOwotICAgIG91dFs4XSA9IGIyMCAqIGEwMiArIGIyMSAqIGExMiArIGIyMiAqIGEyMjsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIG1hdDMubXVsdGlwbHl9Ci0gKiBAZnVuY3Rpb24KLSAqLwotbWF0My5tdWwgPSBtYXQzLm11bHRpcGx5OwotCi0vKioKLSAqIFRyYW5zbGF0ZSBhIG1hdDMgYnkgdGhlIGdpdmVuIHZlY3RvcgotICoKLSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDN9IGEgdGhlIG1hdHJpeCB0byB0cmFuc2xhdGUKLSAqIEBwYXJhbSB7dmVjMn0gdiB2ZWN0b3IgdG8gdHJhbnNsYXRlIGJ5Ci0gKiBAcmV0dXJucyB7bWF0M30gb3V0Ci0gKi8KLW1hdDMudHJhbnNsYXRlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7Ci0gICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCi0gICAgICAgIGExMCA9IGFbM10sIGExMSA9IGFbNF0sIGExMiA9IGFbNV0sCi0gICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF0sCi0gICAgICAgIHggPSB2WzBdLCB5ID0gdlsxXTsKLQotICAgIG91dFswXSA9IGEwMDsKLSAgICBvdXRbMV0gPSBhMDE7Ci0gICAgb3V0WzJdID0gYTAyOwotCi0gICAgb3V0WzNdID0gYTEwOwotICAgIG91dFs0XSA9IGExMTsKLSAgICBvdXRbNV0gPSBhMTI7Ci0KLSAgICBvdXRbNl0gPSB4ICogYTAwICsgeSAqIGExMCArIGEyMDsKLSAgICBvdXRbN10gPSB4ICogYTAxICsgeSAqIGExMSArIGEyMTsKLSAgICBvdXRbOF0gPSB4ICogYTAyICsgeSAqIGExMiArIGEyMjsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSb3RhdGVzIGEgbWF0MyBieSB0aGUgZ2l2ZW4gYW5nbGUKLSAqCi0gKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCi0gKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgewotICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAotICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAotICAgICAgICBhMjAgPSBhWzZdLCBhMjEgPSBhWzddLCBhMjIgPSBhWzhdLAotCi0gICAgICAgIHMgPSBNYXRoLnNpbihyYWQpLAotICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKLQotICAgIG91dFswXSA9IGMgKiBhMDAgKyBzICogYTEwOwotICAgIG91dFsxXSA9IGMgKiBhMDEgKyBzICogYTExOwotICAgIG91dFsyXSA9IGMgKiBhMDIgKyBzICogYTEyOwotCi0gICAgb3V0WzNdID0gYyAqIGExMCAtIHMgKiBhMDA7Ci0gICAgb3V0WzRdID0gYyAqIGExMSAtIHMgKiBhMDE7Ci0gICAgb3V0WzVdID0gYyAqIGExMiAtIHMgKiBhMDI7Ci0KLSAgICBvdXRbNl0gPSBhMjA7Ci0gICAgb3V0WzddID0gYTIxOwotICAgIG91dFs4XSA9IGEyMjsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTY2FsZXMgdGhlIG1hdDMgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzIKLSAqCi0gKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCi0gKiBAcGFyYW0ge3ZlYzJ9IHYgdGhlIHZlYzIgdG8gc2NhbGUgdGhlIG1hdHJpeCBieQotICogQHJldHVybnMge21hdDN9IG91dAotICoqLwotbWF0My5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgdikgewotICAgIHZhciB4ID0gdlswXSwgeSA9IHZbMl07Ci0KLSAgICBvdXRbMF0gPSB4ICogYVswXTsKLSAgICBvdXRbMV0gPSB4ICogYVsxXTsKLSAgICBvdXRbMl0gPSB4ICogYVsyXTsKLQotICAgIG91dFszXSA9IHkgKiBhWzNdOwotICAgIG91dFs0XSA9IHkgKiBhWzRdOwotICAgIG91dFs1XSA9IHkgKiBhWzVdOwotCi0gICAgb3V0WzZdID0gYVs2XTsKLSAgICBvdXRbN10gPSBhWzddOwotICAgIG91dFs4XSA9IGFbOF07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ29waWVzIHRoZSB2YWx1ZXMgZnJvbSBhIG1hdDJkIGludG8gYSBtYXQzCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHt2ZWMyfSB2IHRoZSB2ZWMyIHRvIHNjYWxlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqKi8KLW1hdDMuZnJvbU1hdDJkID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IDA7Ci0KLSAgICBvdXRbM10gPSBhWzJdOwotICAgIG91dFs0XSA9IGFbM107Ci0gICAgb3V0WzVdID0gMDsKLQotICAgIG91dFs2XSA9IGFbNF07Ci0gICAgb3V0WzddID0gYVs1XTsKLSAgICBvdXRbOF0gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSogQ2FsY3VsYXRlcyBhIDN4MyBtYXRyaXggZnJvbSB0aGUgZ2l2ZW4gcXVhdGVybmlvbgotKgotKiBAcGFyYW0ge21hdDN9IG91dCBtYXQzIHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0Ci0qIEBwYXJhbSB7cXVhdH0gcSBRdWF0ZXJuaW9uIHRvIGNyZWF0ZSBtYXRyaXggZnJvbQotKgotKiBAcmV0dXJucyB7bWF0M30gb3V0Ci0qLwotbWF0My5mcm9tUXVhdCA9IGZ1bmN0aW9uIChvdXQsIHEpIHsKLSAgICB2YXIgeCA9IHFbMF0sIHkgPSBxWzFdLCB6ID0gcVsyXSwgdyA9IHFbM10sCi0gICAgICAgIHgyID0geCArIHgsCi0gICAgICAgIHkyID0geSArIHksCi0gICAgICAgIHoyID0geiArIHosCi0KLSAgICAgICAgeHggPSB4ICogeDIsCi0gICAgICAgIHh5ID0geCAqIHkyLAotICAgICAgICB4eiA9IHggKiB6MiwKLSAgICAgICAgeXkgPSB5ICogeTIsCi0gICAgICAgIHl6ID0geSAqIHoyLAotICAgICAgICB6eiA9IHogKiB6MiwKLSAgICAgICAgd3ggPSB3ICogeDIsCi0gICAgICAgIHd5ID0gdyAqIHkyLAotICAgICAgICB3eiA9IHcgKiB6MjsKLQotICAgIG91dFswXSA9IDEgLSAoeXkgKyB6eik7Ci0gICAgb3V0WzFdID0geHkgKyB3ejsKLSAgICBvdXRbMl0gPSB4eiAtIHd5OwotCi0gICAgb3V0WzNdID0geHkgLSB3ejsKLSAgICBvdXRbNF0gPSAxIC0gKHh4ICsgenopOwotICAgIG91dFs1XSA9IHl6ICsgd3g7Ci0KLSAgICBvdXRbNl0gPSB4eiArIHd5OwotICAgIG91dFs3XSA9IHl6IC0gd3g7Ci0gICAgb3V0WzhdID0gMSAtICh4eCArIHl5KTsKLQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBtYXQzCi0gKgotICogQHBhcmFtIHttYXQzfSBtYXQgbWF0cml4IHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZwotICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgKLSAqLwotbWF0My5zdHIgPSBmdW5jdGlvbiAoYSkgewotICAgIHJldHVybiAnbWF0MygnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgCi0gICAgICAgICAgICAgICAgICAgIGFbM10gKyAnLCAnICsgYVs0XSArICcsICcgKyBhWzVdICsgJywgJyArIAotICAgICAgICAgICAgICAgICAgICBhWzZdICsgJywgJyArIGFbN10gKyAnLCAnICsgYVs4XSArICcpJzsKLX07Ci0KLWlmKHR5cGVvZihleHBvcnRzKSAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBleHBvcnRzLm1hdDMgPSBtYXQzOwotfQotOwotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIDR4NCBNYXRyaXgKLSAqIEBuYW1lIG1hdDQKLSAqLwotCi12YXIgbWF0NCA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgbWF0NAotICoKLSAqIEByZXR1cm5zIHttYXQ0fSBhIG5ldyA0eDQgbWF0cml4Ci0gKi8KLW1hdDQuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDE2KTsKLSAgICBvdXRbMF0gPSAxOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAwOwotICAgIG91dFs0XSA9IDA7Ci0gICAgb3V0WzVdID0gMTsKLSAgICBvdXRbNl0gPSAwOwotICAgIG91dFs3XSA9IDA7Ci0gICAgb3V0WzhdID0gMDsKLSAgICBvdXRbOV0gPSAwOwotICAgIG91dFsxMF0gPSAxOwotICAgIG91dFsxMV0gPSAwOwotICAgIG91dFsxMl0gPSAwOwotICAgIG91dFsxM10gPSAwOwotICAgIG91dFsxNF0gPSAwOwotICAgIG91dFsxNV0gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgbWF0NCBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIG1hdHJpeAotICoKLSAqIEBwYXJhbSB7bWF0NH0gYSBtYXRyaXggdG8gY2xvbmUKLSAqIEByZXR1cm5zIHttYXQ0fSBhIG5ldyA0eDQgbWF0cml4Ci0gKi8KLW1hdDQuY2xvbmUgPSBmdW5jdGlvbihhKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDE2KTsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIG91dFs0XSA9IGFbNF07Ci0gICAgb3V0WzVdID0gYVs1XTsKLSAgICBvdXRbNl0gPSBhWzZdOwotICAgIG91dFs3XSA9IGFbN107Ci0gICAgb3V0WzhdID0gYVs4XTsKLSAgICBvdXRbOV0gPSBhWzldOwotICAgIG91dFsxMF0gPSBhWzEwXTsKLSAgICBvdXRbMTFdID0gYVsxMV07Ci0gICAgb3V0WzEyXSA9IGFbMTJdOwotICAgIG91dFsxM10gPSBhWzEzXTsKLSAgICBvdXRbMTRdID0gYVsxNF07Ci0gICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSBtYXQ0IHRvIGFub3RoZXIKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQ0fSBhIHRoZSBzb3VyY2UgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICBvdXRbMl0gPSBhWzJdOwotICAgIG91dFszXSA9IGFbM107Ci0gICAgb3V0WzRdID0gYVs0XTsKLSAgICBvdXRbNV0gPSBhWzVdOwotICAgIG91dFs2XSA9IGFbNl07Ci0gICAgb3V0WzddID0gYVs3XTsKLSAgICBvdXRbOF0gPSBhWzhdOwotICAgIG91dFs5XSA9IGFbOV07Ci0gICAgb3V0WzEwXSA9IGFbMTBdOwotICAgIG91dFsxMV0gPSBhWzExXTsKLSAgICBvdXRbMTJdID0gYVsxMl07Ci0gICAgb3V0WzEzXSA9IGFbMTNdOwotICAgIG91dFsxNF0gPSBhWzE0XTsKLSAgICBvdXRbMTVdID0gYVsxNV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2V0IGEgbWF0NCB0byB0aGUgaWRlbnRpdHkgbWF0cml4Ci0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5pZGVudGl0eSA9IGZ1bmN0aW9uKG91dCkgewotICAgIG91dFswXSA9IDE7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDA7Ci0gICAgb3V0WzRdID0gMDsKLSAgICBvdXRbNV0gPSAxOwotICAgIG91dFs2XSA9IDA7Ci0gICAgb3V0WzddID0gMDsKLSAgICBvdXRbOF0gPSAwOwotICAgIG91dFs5XSA9IDA7Ci0gICAgb3V0WzEwXSA9IDE7Ci0gICAgb3V0WzExXSA9IDA7Ci0gICAgb3V0WzEyXSA9IDA7Ci0gICAgb3V0WzEzXSA9IDA7Ci0gICAgb3V0WzE0XSA9IDA7Ci0gICAgb3V0WzE1XSA9IDE7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNwb3NlIHRoZSB2YWx1ZXMgb2YgYSBtYXQ0Ci0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LnRyYW5zcG9zZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIC8vIElmIHdlIGFyZSB0cmFuc3Bvc2luZyBvdXJzZWx2ZXMgd2UgY2FuIHNraXAgYSBmZXcgc3RlcHMgYnV0IGhhdmUgdG8gY2FjaGUgc29tZSB2YWx1ZXMKLSAgICBpZiAob3V0ID09PSBhKSB7Ci0gICAgICAgIHZhciBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMDMgPSBhWzNdLAotICAgICAgICAgICAgYTEyID0gYVs2XSwgYTEzID0gYVs3XSwKLSAgICAgICAgICAgIGEyMyA9IGFbMTFdOwotCi0gICAgICAgIG91dFsxXSA9IGFbNF07Ci0gICAgICAgIG91dFsyXSA9IGFbOF07Ci0gICAgICAgIG91dFszXSA9IGFbMTJdOwotICAgICAgICBvdXRbNF0gPSBhMDE7Ci0gICAgICAgIG91dFs2XSA9IGFbOV07Ci0gICAgICAgIG91dFs3XSA9IGFbMTNdOwotICAgICAgICBvdXRbOF0gPSBhMDI7Ci0gICAgICAgIG91dFs5XSA9IGExMjsKLSAgICAgICAgb3V0WzExXSA9IGFbMTRdOwotICAgICAgICBvdXRbMTJdID0gYTAzOwotICAgICAgICBvdXRbMTNdID0gYTEzOwotICAgICAgICBvdXRbMTRdID0gYTIzOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG91dFswXSA9IGFbMF07Ci0gICAgICAgIG91dFsxXSA9IGFbNF07Ci0gICAgICAgIG91dFsyXSA9IGFbOF07Ci0gICAgICAgIG91dFszXSA9IGFbMTJdOwotICAgICAgICBvdXRbNF0gPSBhWzFdOwotICAgICAgICBvdXRbNV0gPSBhWzVdOwotICAgICAgICBvdXRbNl0gPSBhWzldOwotICAgICAgICBvdXRbN10gPSBhWzEzXTsKLSAgICAgICAgb3V0WzhdID0gYVsyXTsKLSAgICAgICAgb3V0WzldID0gYVs2XTsKLSAgICAgICAgb3V0WzEwXSA9IGFbMTBdOwotICAgICAgICBvdXRbMTFdID0gYVsxNF07Ci0gICAgICAgIG91dFsxMl0gPSBhWzNdOwotICAgICAgICBvdXRbMTNdID0gYVs3XTsKLSAgICAgICAgb3V0WzE0XSA9IGFbMTFdOwotICAgICAgICBvdXRbMTVdID0gYVsxNV07Ci0gICAgfQotICAgIAotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEludmVydHMgYSBtYXQ0Ci0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LmludmVydCA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMDMgPSBhWzNdLAotICAgICAgICBhMTAgPSBhWzRdLCBhMTEgPSBhWzVdLCBhMTIgPSBhWzZdLCBhMTMgPSBhWzddLAotICAgICAgICBhMjAgPSBhWzhdLCBhMjEgPSBhWzldLCBhMjIgPSBhWzEwXSwgYTIzID0gYVsxMV0sCi0gICAgICAgIGEzMCA9IGFbMTJdLCBhMzEgPSBhWzEzXSwgYTMyID0gYVsxNF0sIGEzMyA9IGFbMTVdLAotCi0gICAgICAgIGIwMCA9IGEwMCAqIGExMSAtIGEwMSAqIGExMCwKLSAgICAgICAgYjAxID0gYTAwICogYTEyIC0gYTAyICogYTEwLAotICAgICAgICBiMDIgPSBhMDAgKiBhMTMgLSBhMDMgKiBhMTAsCi0gICAgICAgIGIwMyA9IGEwMSAqIGExMiAtIGEwMiAqIGExMSwKLSAgICAgICAgYjA0ID0gYTAxICogYTEzIC0gYTAzICogYTExLAotICAgICAgICBiMDUgPSBhMDIgKiBhMTMgLSBhMDMgKiBhMTIsCi0gICAgICAgIGIwNiA9IGEyMCAqIGEzMSAtIGEyMSAqIGEzMCwKLSAgICAgICAgYjA3ID0gYTIwICogYTMyIC0gYTIyICogYTMwLAotICAgICAgICBiMDggPSBhMjAgKiBhMzMgLSBhMjMgKiBhMzAsCi0gICAgICAgIGIwOSA9IGEyMSAqIGEzMiAtIGEyMiAqIGEzMSwKLSAgICAgICAgYjEwID0gYTIxICogYTMzIC0gYTIzICogYTMxLAotICAgICAgICBiMTEgPSBhMjIgKiBhMzMgLSBhMjMgKiBhMzIsCi0KLSAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkZXRlcm1pbmFudAotICAgICAgICBkZXQgPSBiMDAgKiBiMTEgLSBiMDEgKiBiMTAgKyBiMDIgKiBiMDkgKyBiMDMgKiBiMDggLSBiMDQgKiBiMDcgKyBiMDUgKiBiMDY7Ci0KLSAgICBpZiAoIWRldCkgeyAKLSAgICAgICAgcmV0dXJuIG51bGw7IAotICAgIH0KLSAgICBkZXQgPSAxLjAgLyBkZXQ7Ci0KLSAgICBvdXRbMF0gPSAoYTExICogYjExIC0gYTEyICogYjEwICsgYTEzICogYjA5KSAqIGRldDsKLSAgICBvdXRbMV0gPSAoYTAyICogYjEwIC0gYTAxICogYjExIC0gYTAzICogYjA5KSAqIGRldDsKLSAgICBvdXRbMl0gPSAoYTMxICogYjA1IC0gYTMyICogYjA0ICsgYTMzICogYjAzKSAqIGRldDsKLSAgICBvdXRbM10gPSAoYTIyICogYjA0IC0gYTIxICogYjA1IC0gYTIzICogYjAzKSAqIGRldDsKLSAgICBvdXRbNF0gPSAoYTEyICogYjA4IC0gYTEwICogYjExIC0gYTEzICogYjA3KSAqIGRldDsKLSAgICBvdXRbNV0gPSAoYTAwICogYjExIC0gYTAyICogYjA4ICsgYTAzICogYjA3KSAqIGRldDsKLSAgICBvdXRbNl0gPSAoYTMyICogYjAyIC0gYTMwICogYjA1IC0gYTMzICogYjAxKSAqIGRldDsKLSAgICBvdXRbN10gPSAoYTIwICogYjA1IC0gYTIyICogYjAyICsgYTIzICogYjAxKSAqIGRldDsKLSAgICBvdXRbOF0gPSAoYTEwICogYjEwIC0gYTExICogYjA4ICsgYTEzICogYjA2KSAqIGRldDsKLSAgICBvdXRbOV0gPSAoYTAxICogYjA4IC0gYTAwICogYjEwIC0gYTAzICogYjA2KSAqIGRldDsKLSAgICBvdXRbMTBdID0gKGEzMCAqIGIwNCAtIGEzMSAqIGIwMiArIGEzMyAqIGIwMCkgKiBkZXQ7Ci0gICAgb3V0WzExXSA9IChhMjEgKiBiMDIgLSBhMjAgKiBiMDQgLSBhMjMgKiBiMDApICogZGV0OwotICAgIG91dFsxMl0gPSAoYTExICogYjA3IC0gYTEwICogYjA5IC0gYTEyICogYjA2KSAqIGRldDsKLSAgICBvdXRbMTNdID0gKGEwMCAqIGIwOSAtIGEwMSAqIGIwNyArIGEwMiAqIGIwNikgKiBkZXQ7Ci0gICAgb3V0WzE0XSA9IChhMzEgKiBiMDEgLSBhMzAgKiBiMDMgLSBhMzIgKiBiMDApICogZGV0OwotICAgIG91dFsxNV0gPSAoYTIwICogYjAzIC0gYTIxICogYjAxICsgYTIyICogYjAwKSAqIGRldDsKLQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGFkanVnYXRlIG9mIGEgbWF0NAotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5hZGpvaW50ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sIGEwMyA9IGFbM10sCi0gICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCi0gICAgICAgIGEyMCA9IGFbOF0sIGEyMSA9IGFbOV0sIGEyMiA9IGFbMTBdLCBhMjMgPSBhWzExXSwKLSAgICAgICAgYTMwID0gYVsxMl0sIGEzMSA9IGFbMTNdLCBhMzIgPSBhWzE0XSwgYTMzID0gYVsxNV07Ci0KLSAgICBvdXRbMF0gID0gIChhMTEgKiAoYTIyICogYTMzIC0gYTIzICogYTMyKSAtIGEyMSAqIChhMTIgKiBhMzMgLSBhMTMgKiBhMzIpICsgYTMxICogKGExMiAqIGEyMyAtIGExMyAqIGEyMikpOwotICAgIG91dFsxXSAgPSAtKGEwMSAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIxICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzEgKiAoYTAyICogYTIzIC0gYTAzICogYTIyKSk7Ci0gICAgb3V0WzJdICA9ICAoYTAxICogKGExMiAqIGEzMyAtIGExMyAqIGEzMikgLSBhMTEgKiAoYTAyICogYTMzIC0gYTAzICogYTMyKSArIGEzMSAqIChhMDIgKiBhMTMgLSBhMDMgKiBhMTIpKTsKLSAgICBvdXRbM10gID0gLShhMDEgKiAoYTEyICogYTIzIC0gYTEzICogYTIyKSAtIGExMSAqIChhMDIgKiBhMjMgLSBhMDMgKiBhMjIpICsgYTIxICogKGEwMiAqIGExMyAtIGEwMyAqIGExMikpOwotICAgIG91dFs0XSAgPSAtKGExMCAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIwICogKGExMiAqIGEzMyAtIGExMyAqIGEzMikgKyBhMzAgKiAoYTEyICogYTIzIC0gYTEzICogYTIyKSk7Ci0gICAgb3V0WzVdICA9ICAoYTAwICogKGEyMiAqIGEzMyAtIGEyMyAqIGEzMikgLSBhMjAgKiAoYTAyICogYTMzIC0gYTAzICogYTMyKSArIGEzMCAqIChhMDIgKiBhMjMgLSBhMDMgKiBhMjIpKTsKLSAgICBvdXRbNl0gID0gLShhMDAgKiAoYTEyICogYTMzIC0gYTEzICogYTMyKSAtIGExMCAqIChhMDIgKiBhMzMgLSBhMDMgKiBhMzIpICsgYTMwICogKGEwMiAqIGExMyAtIGEwMyAqIGExMikpOwotICAgIG91dFs3XSAgPSAgKGEwMCAqIChhMTIgKiBhMjMgLSBhMTMgKiBhMjIpIC0gYTEwICogKGEwMiAqIGEyMyAtIGEwMyAqIGEyMikgKyBhMjAgKiAoYTAyICogYTEzIC0gYTAzICogYTEyKSk7Ci0gICAgb3V0WzhdICA9ICAoYTEwICogKGEyMSAqIGEzMyAtIGEyMyAqIGEzMSkgLSBhMjAgKiAoYTExICogYTMzIC0gYTEzICogYTMxKSArIGEzMCAqIChhMTEgKiBhMjMgLSBhMTMgKiBhMjEpKTsKLSAgICBvdXRbOV0gID0gLShhMDAgKiAoYTIxICogYTMzIC0gYTIzICogYTMxKSAtIGEyMCAqIChhMDEgKiBhMzMgLSBhMDMgKiBhMzEpICsgYTMwICogKGEwMSAqIGEyMyAtIGEwMyAqIGEyMSkpOwotICAgIG91dFsxMF0gPSAgKGEwMCAqIChhMTEgKiBhMzMgLSBhMTMgKiBhMzEpIC0gYTEwICogKGEwMSAqIGEzMyAtIGEwMyAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTEzIC0gYTAzICogYTExKSk7Ci0gICAgb3V0WzExXSA9IC0oYTAwICogKGExMSAqIGEyMyAtIGExMyAqIGEyMSkgLSBhMTAgKiAoYTAxICogYTIzIC0gYTAzICogYTIxKSArIGEyMCAqIChhMDEgKiBhMTMgLSBhMDMgKiBhMTEpKTsKLSAgICBvdXRbMTJdID0gLShhMTAgKiAoYTIxICogYTMyIC0gYTIyICogYTMxKSAtIGEyMCAqIChhMTEgKiBhMzIgLSBhMTIgKiBhMzEpICsgYTMwICogKGExMSAqIGEyMiAtIGExMiAqIGEyMSkpOwotICAgIG91dFsxM10gPSAgKGEwMCAqIChhMjEgKiBhMzIgLSBhMjIgKiBhMzEpIC0gYTIwICogKGEwMSAqIGEzMiAtIGEwMiAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTIyIC0gYTAyICogYTIxKSk7Ci0gICAgb3V0WzE0XSA9IC0oYTAwICogKGExMSAqIGEzMiAtIGExMiAqIGEzMSkgLSBhMTAgKiAoYTAxICogYTMyIC0gYTAyICogYTMxKSArIGEzMCAqIChhMDEgKiBhMTIgLSBhMDIgKiBhMTEpKTsKLSAgICBvdXRbMTVdID0gIChhMDAgKiAoYTExICogYTIyIC0gYTEyICogYTIxKSAtIGExMCAqIChhMDEgKiBhMjIgLSBhMDIgKiBhMjEpICsgYTIwICogKGEwMSAqIGExMiAtIGEwMiAqIGExMSkpOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGRldGVybWluYW50IG9mIGEgbWF0NAotICoKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge051bWJlcn0gZGV0ZXJtaW5hbnQgb2YgYQotICovCi1tYXQ0LmRldGVybWluYW50ID0gZnVuY3Rpb24gKGEpIHsKLSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKLSAgICAgICAgYTEwID0gYVs0XSwgYTExID0gYVs1XSwgYTEyID0gYVs2XSwgYTEzID0gYVs3XSwKLSAgICAgICAgYTIwID0gYVs4XSwgYTIxID0gYVs5XSwgYTIyID0gYVsxMF0sIGEyMyA9IGFbMTFdLAotICAgICAgICBhMzAgPSBhWzEyXSwgYTMxID0gYVsxM10sIGEzMiA9IGFbMTRdLCBhMzMgPSBhWzE1XSwKLQotICAgICAgICBiMDAgPSBhMDAgKiBhMTEgLSBhMDEgKiBhMTAsCi0gICAgICAgIGIwMSA9IGEwMCAqIGExMiAtIGEwMiAqIGExMCwKLSAgICAgICAgYjAyID0gYTAwICogYTEzIC0gYTAzICogYTEwLAotICAgICAgICBiMDMgPSBhMDEgKiBhMTIgLSBhMDIgKiBhMTEsCi0gICAgICAgIGIwNCA9IGEwMSAqIGExMyAtIGEwMyAqIGExMSwKLSAgICAgICAgYjA1ID0gYTAyICogYTEzIC0gYTAzICogYTEyLAotICAgICAgICBiMDYgPSBhMjAgKiBhMzEgLSBhMjEgKiBhMzAsCi0gICAgICAgIGIwNyA9IGEyMCAqIGEzMiAtIGEyMiAqIGEzMCwKLSAgICAgICAgYjA4ID0gYTIwICogYTMzIC0gYTIzICogYTMwLAotICAgICAgICBiMDkgPSBhMjEgKiBhMzIgLSBhMjIgKiBhMzEsCi0gICAgICAgIGIxMCA9IGEyMSAqIGEzMyAtIGEyMyAqIGEzMSwKLSAgICAgICAgYjExID0gYTIyICogYTMzIC0gYTIzICogYTMyOwotCi0gICAgLy8gQ2FsY3VsYXRlIHRoZSBkZXRlcm1pbmFudAotICAgIHJldHVybiBiMDAgKiBiMTEgLSBiMDEgKiBiMTAgKyBiMDIgKiBiMDkgKyBiMDMgKiBiMDggLSBiMDQgKiBiMDcgKyBiMDUgKiBiMDY7Ci19OwotCi0vKioKLSAqIE11bHRpcGxpZXMgdHdvIG1hdDQncwotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7bWF0NH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5tdWx0aXBseSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIpIHsKLSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKLSAgICAgICAgYTEwID0gYVs0XSwgYTExID0gYVs1XSwgYTEyID0gYVs2XSwgYTEzID0gYVs3XSwKLSAgICAgICAgYTIwID0gYVs4XSwgYTIxID0gYVs5XSwgYTIyID0gYVsxMF0sIGEyMyA9IGFbMTFdLAotICAgICAgICBhMzAgPSBhWzEyXSwgYTMxID0gYVsxM10sIGEzMiA9IGFbMTRdLCBhMzMgPSBhWzE1XTsKLQotICAgIC8vIENhY2hlIG9ubHkgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgc2Vjb25kIG1hdHJpeAotICAgIHZhciBiMCAgPSBiWzBdLCBiMSA9IGJbMV0sIGIyID0gYlsyXSwgYjMgPSBiWzNdOyAgCi0gICAgb3V0WzBdID0gYjAqYTAwICsgYjEqYTEwICsgYjIqYTIwICsgYjMqYTMwOwotICAgIG91dFsxXSA9IGIwKmEwMSArIGIxKmExMSArIGIyKmEyMSArIGIzKmEzMTsKLSAgICBvdXRbMl0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7Ci0gICAgb3V0WzNdID0gYjAqYTAzICsgYjEqYTEzICsgYjIqYTIzICsgYjMqYTMzOwotCi0gICAgYjAgPSBiWzRdOyBiMSA9IGJbNV07IGIyID0gYls2XTsgYjMgPSBiWzddOwotICAgIG91dFs0XSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKLSAgICBvdXRbNV0gPSBiMCphMDEgKyBiMSphMTEgKyBiMiphMjEgKyBiMyphMzE7Ci0gICAgb3V0WzZdID0gYjAqYTAyICsgYjEqYTEyICsgYjIqYTIyICsgYjMqYTMyOwotICAgIG91dFs3XSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKLQotICAgIGIwID0gYls4XTsgYjEgPSBiWzldOyBiMiA9IGJbMTBdOyBiMyA9IGJbMTFdOwotICAgIG91dFs4XSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKLSAgICBvdXRbOV0gPSBiMCphMDEgKyBiMSphMTEgKyBiMiphMjEgKyBiMyphMzE7Ci0gICAgb3V0WzEwXSA9IGIwKmEwMiArIGIxKmExMiArIGIyKmEyMiArIGIzKmEzMjsKLSAgICBvdXRbMTFdID0gYjAqYTAzICsgYjEqYTEzICsgYjIqYTIzICsgYjMqYTMzOwotCi0gICAgYjAgPSBiWzEyXTsgYjEgPSBiWzEzXTsgYjIgPSBiWzE0XTsgYjMgPSBiWzE1XTsKLSAgICBvdXRbMTJdID0gYjAqYTAwICsgYjEqYTEwICsgYjIqYTIwICsgYjMqYTMwOwotICAgIG91dFsxM10gPSBiMCphMDEgKyBiMSphMTEgKyBiMiphMjEgKyBiMyphMzE7Ci0gICAgb3V0WzE0XSA9IGIwKmEwMiArIGIxKmExMiArIGIyKmEyMiArIGIzKmEzMjsKLSAgICBvdXRbMTVdID0gYjAqYTAzICsgYjEqYTEzICsgYjIqYTIzICsgYjMqYTMzOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgbWF0NC5tdWx0aXBseX0KLSAqIEBmdW5jdGlvbgotICovCi1tYXQ0Lm11bCA9IG1hdDQubXVsdGlwbHk7Ci0KLS8qKgotICogVHJhbnNsYXRlIGEgbWF0NCBieSB0aGUgZ2l2ZW4gdmVjdG9yCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgbWF0cml4IHRvIHRyYW5zbGF0ZQotICogQHBhcmFtIHt2ZWMzfSB2IHZlY3RvciB0byB0cmFuc2xhdGUgYnkKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC50cmFuc2xhdGUgPSBmdW5jdGlvbiAob3V0LCBhLCB2KSB7Ci0gICAgdmFyIHggPSB2WzBdLCB5ID0gdlsxXSwgeiA9IHZbMl0sCi0gICAgICAgIGEwMCwgYTAxLCBhMDIsIGEwMywKLSAgICAgICAgYTEwLCBhMTEsIGExMiwgYTEzLAotICAgICAgICBhMjAsIGEyMSwgYTIyLCBhMjM7Ci0KLSAgICBpZiAoYSA9PT0gb3V0KSB7Ci0gICAgICAgIG91dFsxMl0gPSBhWzBdICogeCArIGFbNF0gKiB5ICsgYVs4XSAqIHogKyBhWzEyXTsKLSAgICAgICAgb3V0WzEzXSA9IGFbMV0gKiB4ICsgYVs1XSAqIHkgKyBhWzldICogeiArIGFbMTNdOwotICAgICAgICBvdXRbMTRdID0gYVsyXSAqIHggKyBhWzZdICogeSArIGFbMTBdICogeiArIGFbMTRdOwotICAgICAgICBvdXRbMTVdID0gYVszXSAqIHggKyBhWzddICogeSArIGFbMTFdICogeiArIGFbMTVdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGEwMCA9IGFbMF07IGEwMSA9IGFbMV07IGEwMiA9IGFbMl07IGEwMyA9IGFbM107Ci0gICAgICAgIGExMCA9IGFbNF07IGExMSA9IGFbNV07IGExMiA9IGFbNl07IGExMyA9IGFbN107Ci0gICAgICAgIGEyMCA9IGFbOF07IGEyMSA9IGFbOV07IGEyMiA9IGFbMTBdOyBhMjMgPSBhWzExXTsKLQotICAgICAgICBvdXRbMF0gPSBhMDA7IG91dFsxXSA9IGEwMTsgb3V0WzJdID0gYTAyOyBvdXRbM10gPSBhMDM7Ci0gICAgICAgIG91dFs0XSA9IGExMDsgb3V0WzVdID0gYTExOyBvdXRbNl0gPSBhMTI7IG91dFs3XSA9IGExMzsKLSAgICAgICAgb3V0WzhdID0gYTIwOyBvdXRbOV0gPSBhMjE7IG91dFsxMF0gPSBhMjI7IG91dFsxMV0gPSBhMjM7Ci0KLSAgICAgICAgb3V0WzEyXSA9IGEwMCAqIHggKyBhMTAgKiB5ICsgYTIwICogeiArIGFbMTJdOwotICAgICAgICBvdXRbMTNdID0gYTAxICogeCArIGExMSAqIHkgKyBhMjEgKiB6ICsgYVsxM107Ci0gICAgICAgIG91dFsxNF0gPSBhMDIgKiB4ICsgYTEyICogeSArIGEyMiAqIHogKyBhWzE0XTsKLSAgICAgICAgb3V0WzE1XSA9IGEwMyAqIHggKyBhMTMgKiB5ICsgYTIzICogeiArIGFbMTVdOwotICAgIH0KLQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNjYWxlcyB0aGUgbWF0NCBieSB0aGUgZGltZW5zaW9ucyBpbiB0aGUgZ2l2ZW4gdmVjMwotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byBzY2FsZQotICogQHBhcmFtIHt2ZWMzfSB2IHRoZSB2ZWMzIHRvIHNjYWxlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqKi8KLW1hdDQuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIHYpIHsKLSAgICB2YXIgeCA9IHZbMF0sIHkgPSB2WzFdLCB6ID0gdlsyXTsKLQotICAgIG91dFswXSA9IGFbMF0gKiB4OwotICAgIG91dFsxXSA9IGFbMV0gKiB4OwotICAgIG91dFsyXSA9IGFbMl0gKiB4OwotICAgIG91dFszXSA9IGFbM10gKiB4OwotICAgIG91dFs0XSA9IGFbNF0gKiB5OwotICAgIG91dFs1XSA9IGFbNV0gKiB5OwotICAgIG91dFs2XSA9IGFbNl0gKiB5OwotICAgIG91dFs3XSA9IGFbN10gKiB5OwotICAgIG91dFs4XSA9IGFbOF0gKiB6OwotICAgIG91dFs5XSA9IGFbOV0gKiB6OwotICAgIG91dFsxMF0gPSBhWzEwXSAqIHo7Ci0gICAgb3V0WzExXSA9IGFbMTFdICogejsKLSAgICBvdXRbMTJdID0gYVsxMl07Ci0gICAgb3V0WzEzXSA9IGFbMTNdOwotICAgIG91dFsxNF0gPSBhWzE0XTsKLSAgICBvdXRbMTVdID0gYVsxNV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUm90YXRlcyBhIG1hdDQgYnkgdGhlIGdpdmVuIGFuZ2xlCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKLSAqIEBwYXJhbSB7dmVjM30gYXhpcyB0aGUgYXhpcyB0byByb3RhdGUgYXJvdW5kCi0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQucm90YXRlID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkLCBheGlzKSB7Ci0gICAgdmFyIHggPSBheGlzWzBdLCB5ID0gYXhpc1sxXSwgeiA9IGF4aXNbMl0sCi0gICAgICAgIGxlbiA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5ICsgeiAqIHopLAotICAgICAgICBzLCBjLCB0LAotICAgICAgICBhMDAsIGEwMSwgYTAyLCBhMDMsCi0gICAgICAgIGExMCwgYTExLCBhMTIsIGExMywKLSAgICAgICAgYTIwLCBhMjEsIGEyMiwgYTIzLAotICAgICAgICBiMDAsIGIwMSwgYjAyLAotICAgICAgICBiMTAsIGIxMSwgYjEyLAotICAgICAgICBiMjAsIGIyMSwgYjIyOwotCi0gICAgaWYgKE1hdGguYWJzKGxlbikgPCBHTE1BVF9FUFNJTE9OKSB7IHJldHVybiBudWxsOyB9Ci0gICAgCi0gICAgbGVuID0gMSAvIGxlbjsKLSAgICB4ICo9IGxlbjsKLSAgICB5ICo9IGxlbjsKLSAgICB6ICo9IGxlbjsKLQotICAgIHMgPSBNYXRoLnNpbihyYWQpOwotICAgIGMgPSBNYXRoLmNvcyhyYWQpOwotICAgIHQgPSAxIC0gYzsKLQotICAgIGEwMCA9IGFbMF07IGEwMSA9IGFbMV07IGEwMiA9IGFbMl07IGEwMyA9IGFbM107Ci0gICAgYTEwID0gYVs0XTsgYTExID0gYVs1XTsgYTEyID0gYVs2XTsgYTEzID0gYVs3XTsKLSAgICBhMjAgPSBhWzhdOyBhMjEgPSBhWzldOyBhMjIgPSBhWzEwXTsgYTIzID0gYVsxMV07Ci0KLSAgICAvLyBDb25zdHJ1Y3QgdGhlIGVsZW1lbnRzIG9mIHRoZSByb3RhdGlvbiBtYXRyaXgKLSAgICBiMDAgPSB4ICogeCAqIHQgKyBjOyBiMDEgPSB5ICogeCAqIHQgKyB6ICogczsgYjAyID0geiAqIHggKiB0IC0geSAqIHM7Ci0gICAgYjEwID0geCAqIHkgKiB0IC0geiAqIHM7IGIxMSA9IHkgKiB5ICogdCArIGM7IGIxMiA9IHogKiB5ICogdCArIHggKiBzOwotICAgIGIyMCA9IHggKiB6ICogdCArIHkgKiBzOyBiMjEgPSB5ICogeiAqIHQgLSB4ICogczsgYjIyID0geiAqIHogKiB0ICsgYzsKLQotICAgIC8vIFBlcmZvcm0gcm90YXRpb24tc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCi0gICAgb3V0WzBdID0gYTAwICogYjAwICsgYTEwICogYjAxICsgYTIwICogYjAyOwotICAgIG91dFsxXSA9IGEwMSAqIGIwMCArIGExMSAqIGIwMSArIGEyMSAqIGIwMjsKLSAgICBvdXRbMl0gPSBhMDIgKiBiMDAgKyBhMTIgKiBiMDEgKyBhMjIgKiBiMDI7Ci0gICAgb3V0WzNdID0gYTAzICogYjAwICsgYTEzICogYjAxICsgYTIzICogYjAyOwotICAgIG91dFs0XSA9IGEwMCAqIGIxMCArIGExMCAqIGIxMSArIGEyMCAqIGIxMjsKLSAgICBvdXRbNV0gPSBhMDEgKiBiMTAgKyBhMTEgKiBiMTEgKyBhMjEgKiBiMTI7Ci0gICAgb3V0WzZdID0gYTAyICogYjEwICsgYTEyICogYjExICsgYTIyICogYjEyOwotICAgIG91dFs3XSA9IGEwMyAqIGIxMCArIGExMyAqIGIxMSArIGEyMyAqIGIxMjsKLSAgICBvdXRbOF0gPSBhMDAgKiBiMjAgKyBhMTAgKiBiMjEgKyBhMjAgKiBiMjI7Ci0gICAgb3V0WzldID0gYTAxICogYjIwICsgYTExICogYjIxICsgYTIxICogYjIyOwotICAgIG91dFsxMF0gPSBhMDIgKiBiMjAgKyBhMTIgKiBiMjEgKyBhMjIgKiBiMjI7Ci0gICAgb3V0WzExXSA9IGEwMyAqIGIyMCArIGExMyAqIGIyMSArIGEyMyAqIGIyMjsKLQotICAgIGlmIChhICE9PSBvdXQpIHsgLy8gSWYgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZGlmZmVyLCBjb3B5IHRoZSB1bmNoYW5nZWQgbGFzdCByb3cKLSAgICAgICAgb3V0WzEyXSA9IGFbMTJdOwotICAgICAgICBvdXRbMTNdID0gYVsxM107Ci0gICAgICAgIG91dFsxNF0gPSBhWzE0XTsKLSAgICAgICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIH0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSb3RhdGVzIGEgbWF0cml4IGJ5IHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIFggYXhpcwotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKLSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQucm90YXRlWCA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgewotICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKSwKLSAgICAgICAgYyA9IE1hdGguY29zKHJhZCksCi0gICAgICAgIGExMCA9IGFbNF0sCi0gICAgICAgIGExMSA9IGFbNV0sCi0gICAgICAgIGExMiA9IGFbNl0sCi0gICAgICAgIGExMyA9IGFbN10sCi0gICAgICAgIGEyMCA9IGFbOF0sCi0gICAgICAgIGEyMSA9IGFbOV0sCi0gICAgICAgIGEyMiA9IGFbMTBdLAotICAgICAgICBhMjMgPSBhWzExXTsKLQotICAgIGlmIChhICE9PSBvdXQpIHsgLy8gSWYgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZGlmZmVyLCBjb3B5IHRoZSB1bmNoYW5nZWQgcm93cwotICAgICAgICBvdXRbMF0gID0gYVswXTsKLSAgICAgICAgb3V0WzFdICA9IGFbMV07Ci0gICAgICAgIG91dFsyXSAgPSBhWzJdOwotICAgICAgICBvdXRbM10gID0gYVszXTsKLSAgICAgICAgb3V0WzEyXSA9IGFbMTJdOwotICAgICAgICBvdXRbMTNdID0gYVsxM107Ci0gICAgICAgIG91dFsxNF0gPSBhWzE0XTsKLSAgICAgICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIH0KLQotICAgIC8vIFBlcmZvcm0gYXhpcy1zcGVjaWZpYyBtYXRyaXggbXVsdGlwbGljYXRpb24KLSAgICBvdXRbNF0gPSBhMTAgKiBjICsgYTIwICogczsKLSAgICBvdXRbNV0gPSBhMTEgKiBjICsgYTIxICogczsKLSAgICBvdXRbNl0gPSBhMTIgKiBjICsgYTIyICogczsKLSAgICBvdXRbN10gPSBhMTMgKiBjICsgYTIzICogczsKLSAgICBvdXRbOF0gPSBhMjAgKiBjIC0gYTEwICogczsKLSAgICBvdXRbOV0gPSBhMjEgKiBjIC0gYTExICogczsKLSAgICBvdXRbMTBdID0gYTIyICogYyAtIGExMiAqIHM7Ci0gICAgb3V0WzExXSA9IGEyMyAqIGMgLSBhMTMgKiBzOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJvdGF0ZXMgYSBtYXRyaXggYnkgdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWSBheGlzCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5yb3RhdGVZID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7Ci0gICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAotICAgICAgICBjID0gTWF0aC5jb3MocmFkKSwKLSAgICAgICAgYTAwID0gYVswXSwKLSAgICAgICAgYTAxID0gYVsxXSwKLSAgICAgICAgYTAyID0gYVsyXSwKLSAgICAgICAgYTAzID0gYVszXSwKLSAgICAgICAgYTIwID0gYVs4XSwKLSAgICAgICAgYTIxID0gYVs5XSwKLSAgICAgICAgYTIyID0gYVsxMF0sCi0gICAgICAgIGEyMyA9IGFbMTFdOwotCi0gICAgaWYgKGEgIT09IG91dCkgeyAvLyBJZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBkaWZmZXIsIGNvcHkgdGhlIHVuY2hhbmdlZCByb3dzCi0gICAgICAgIG91dFs0XSAgPSBhWzRdOwotICAgICAgICBvdXRbNV0gID0gYVs1XTsKLSAgICAgICAgb3V0WzZdICA9IGFbNl07Ci0gICAgICAgIG91dFs3XSAgPSBhWzddOwotICAgICAgICBvdXRbMTJdID0gYVsxMl07Ci0gICAgICAgIG91dFsxM10gPSBhWzEzXTsKLSAgICAgICAgb3V0WzE0XSA9IGFbMTRdOwotICAgICAgICBvdXRbMTVdID0gYVsxNV07Ci0gICAgfQotCi0gICAgLy8gUGVyZm9ybSBheGlzLXNwZWNpZmljIG1hdHJpeCBtdWx0aXBsaWNhdGlvbgotICAgIG91dFswXSA9IGEwMCAqIGMgLSBhMjAgKiBzOwotICAgIG91dFsxXSA9IGEwMSAqIGMgLSBhMjEgKiBzOwotICAgIG91dFsyXSA9IGEwMiAqIGMgLSBhMjIgKiBzOwotICAgIG91dFszXSA9IGEwMyAqIGMgLSBhMjMgKiBzOwotICAgIG91dFs4XSA9IGEwMCAqIHMgKyBhMjAgKiBjOwotICAgIG91dFs5XSA9IGEwMSAqIHMgKyBhMjEgKiBjOwotICAgIG91dFsxMF0gPSBhMDIgKiBzICsgYTIyICogYzsKLSAgICBvdXRbMTFdID0gYTAzICogcyArIGEyMyAqIGM7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUm90YXRlcyBhIG1hdHJpeCBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBaIGF4aXMKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCi0gKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LnJvdGF0ZVogPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKLSAgICB2YXIgcyA9IE1hdGguc2luKHJhZCksCi0gICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpLAotICAgICAgICBhMDAgPSBhWzBdLAotICAgICAgICBhMDEgPSBhWzFdLAotICAgICAgICBhMDIgPSBhWzJdLAotICAgICAgICBhMDMgPSBhWzNdLAotICAgICAgICBhMTAgPSBhWzRdLAotICAgICAgICBhMTEgPSBhWzVdLAotICAgICAgICBhMTIgPSBhWzZdLAotICAgICAgICBhMTMgPSBhWzddOwotCi0gICAgaWYgKGEgIT09IG91dCkgeyAvLyBJZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBkaWZmZXIsIGNvcHkgdGhlIHVuY2hhbmdlZCBsYXN0IHJvdwotICAgICAgICBvdXRbOF0gID0gYVs4XTsKLSAgICAgICAgb3V0WzldICA9IGFbOV07Ci0gICAgICAgIG91dFsxMF0gPSBhWzEwXTsKLSAgICAgICAgb3V0WzExXSA9IGFbMTFdOwotICAgICAgICBvdXRbMTJdID0gYVsxMl07Ci0gICAgICAgIG91dFsxM10gPSBhWzEzXTsKLSAgICAgICAgb3V0WzE0XSA9IGFbMTRdOwotICAgICAgICBvdXRbMTVdID0gYVsxNV07Ci0gICAgfQotCi0gICAgLy8gUGVyZm9ybSBheGlzLXNwZWNpZmljIG1hdHJpeCBtdWx0aXBsaWNhdGlvbgotICAgIG91dFswXSA9IGEwMCAqIGMgKyBhMTAgKiBzOwotICAgIG91dFsxXSA9IGEwMSAqIGMgKyBhMTEgKiBzOwotICAgIG91dFsyXSA9IGEwMiAqIGMgKyBhMTIgKiBzOwotICAgIG91dFszXSA9IGEwMyAqIGMgKyBhMTMgKiBzOwotICAgIG91dFs0XSA9IGExMCAqIGMgLSBhMDAgKiBzOwotICAgIG91dFs1XSA9IGExMSAqIGMgLSBhMDEgKiBzOwotICAgIG91dFs2XSA9IGExMiAqIGMgLSBhMDIgKiBzOwotICAgIG91dFs3XSA9IGExMyAqIGMgLSBhMDMgKiBzOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHF1YXRlcm5pb24gcm90YXRpb24gYW5kIHZlY3RvciB0cmFuc2xhdGlvbgotICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6Ci0gKgotICogICAgIG1hdDQuaWRlbnRpdHkoZGVzdCk7Ci0gKiAgICAgbWF0NC50cmFuc2xhdGUoZGVzdCwgdmVjKTsKLSAqICAgICB2YXIgcXVhdE1hdCA9IG1hdDQuY3JlYXRlKCk7Ci0gKiAgICAgcXVhdDQudG9NYXQ0KHF1YXQsIHF1YXRNYXQpOwotICogICAgIG1hdDQubXVsdGlwbHkoZGVzdCwgcXVhdE1hdCk7Ci0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAotICogQHBhcmFtIHtxdWF0NH0gcSBSb3RhdGlvbiBxdWF0ZXJuaW9uCi0gKiBAcGFyYW0ge3ZlYzN9IHYgVHJhbnNsYXRpb24gdmVjdG9yCi0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24gPSBmdW5jdGlvbiAob3V0LCBxLCB2KSB7Ci0gICAgLy8gUXVhdGVybmlvbiBtYXRoCi0gICAgdmFyIHggPSBxWzBdLCB5ID0gcVsxXSwgeiA9IHFbMl0sIHcgPSBxWzNdLAotICAgICAgICB4MiA9IHggKyB4LAotICAgICAgICB5MiA9IHkgKyB5LAotICAgICAgICB6MiA9IHogKyB6LAotCi0gICAgICAgIHh4ID0geCAqIHgyLAotICAgICAgICB4eSA9IHggKiB5MiwKLSAgICAgICAgeHogPSB4ICogejIsCi0gICAgICAgIHl5ID0geSAqIHkyLAotICAgICAgICB5eiA9IHkgKiB6MiwKLSAgICAgICAgenogPSB6ICogejIsCi0gICAgICAgIHd4ID0gdyAqIHgyLAotICAgICAgICB3eSA9IHcgKiB5MiwKLSAgICAgICAgd3ogPSB3ICogejI7Ci0KLSAgICBvdXRbMF0gPSAxIC0gKHl5ICsgenopOwotICAgIG91dFsxXSA9IHh5ICsgd3o7Ci0gICAgb3V0WzJdID0geHogLSB3eTsKLSAgICBvdXRbM10gPSAwOwotICAgIG91dFs0XSA9IHh5IC0gd3o7Ci0gICAgb3V0WzVdID0gMSAtICh4eCArIHp6KTsKLSAgICBvdXRbNl0gPSB5eiArIHd4OwotICAgIG91dFs3XSA9IDA7Ci0gICAgb3V0WzhdID0geHogKyB3eTsKLSAgICBvdXRbOV0gPSB5eiAtIHd4OwotICAgIG91dFsxMF0gPSAxIC0gKHh4ICsgeXkpOwotICAgIG91dFsxMV0gPSAwOwotICAgIG91dFsxMl0gPSB2WzBdOwotICAgIG91dFsxM10gPSB2WzFdOwotICAgIG91dFsxNF0gPSB2WzJdOwotICAgIG91dFsxNV0gPSAxOwotICAgIAotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSogQ2FsY3VsYXRlcyBhIDR4NCBtYXRyaXggZnJvbSB0aGUgZ2l2ZW4gcXVhdGVybmlvbgotKgotKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0Ci0qIEBwYXJhbSB7cXVhdH0gcSBRdWF0ZXJuaW9uIHRvIGNyZWF0ZSBtYXRyaXggZnJvbQotKgotKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0qLwotbWF0NC5mcm9tUXVhdCA9IGZ1bmN0aW9uIChvdXQsIHEpIHsKLSAgICB2YXIgeCA9IHFbMF0sIHkgPSBxWzFdLCB6ID0gcVsyXSwgdyA9IHFbM10sCi0gICAgICAgIHgyID0geCArIHgsCi0gICAgICAgIHkyID0geSArIHksCi0gICAgICAgIHoyID0geiArIHosCi0KLSAgICAgICAgeHggPSB4ICogeDIsCi0gICAgICAgIHh5ID0geCAqIHkyLAotICAgICAgICB4eiA9IHggKiB6MiwKLSAgICAgICAgeXkgPSB5ICogeTIsCi0gICAgICAgIHl6ID0geSAqIHoyLAotICAgICAgICB6eiA9IHogKiB6MiwKLSAgICAgICAgd3ggPSB3ICogeDIsCi0gICAgICAgIHd5ID0gdyAqIHkyLAotICAgICAgICB3eiA9IHcgKiB6MjsKLQotICAgIG91dFswXSA9IDEgLSAoeXkgKyB6eik7Ci0gICAgb3V0WzFdID0geHkgKyB3ejsKLSAgICBvdXRbMl0gPSB4eiAtIHd5OwotICAgIG91dFszXSA9IDA7Ci0KLSAgICBvdXRbNF0gPSB4eSAtIHd6OwotICAgIG91dFs1XSA9IDEgLSAoeHggKyB6eik7Ci0gICAgb3V0WzZdID0geXogKyB3eDsKLSAgICBvdXRbN10gPSAwOwotCi0gICAgb3V0WzhdID0geHogKyB3eTsKLSAgICBvdXRbOV0gPSB5eiAtIHd4OwotICAgIG91dFsxMF0gPSAxIC0gKHh4ICsgeXkpOwotICAgIG91dFsxMV0gPSAwOwotCi0gICAgb3V0WzEyXSA9IDA7Ci0gICAgb3V0WzEzXSA9IDA7Ci0gICAgb3V0WzE0XSA9IDA7Ci0gICAgb3V0WzE1XSA9IDE7Ci0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBHZW5lcmF0ZXMgYSBmcnVzdHVtIG1hdHJpeCB3aXRoIHRoZSBnaXZlbiBib3VuZHMKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCi0gKiBAcGFyYW0ge051bWJlcn0gbGVmdCBMZWZ0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcGFyYW0ge051bWJlcn0gcmlnaHQgUmlnaHQgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEBwYXJhbSB7TnVtYmVyfSBib3R0b20gQm90dG9tIGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcGFyYW0ge051bWJlcn0gdG9wIFRvcCBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtOdW1iZXJ9IG5lYXIgTmVhciBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtOdW1iZXJ9IGZhciBGYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5mcnVzdHVtID0gZnVuY3Rpb24gKG91dCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBuZWFyLCBmYXIpIHsKLSAgICB2YXIgcmwgPSAxIC8gKHJpZ2h0IC0gbGVmdCksCi0gICAgICAgIHRiID0gMSAvICh0b3AgLSBib3R0b20pLAotICAgICAgICBuZiA9IDEgLyAobmVhciAtIGZhcik7Ci0gICAgb3V0WzBdID0gKG5lYXIgKiAyKSAqIHJsOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAwOwotICAgIG91dFs0XSA9IDA7Ci0gICAgb3V0WzVdID0gKG5lYXIgKiAyKSAqIHRiOwotICAgIG91dFs2XSA9IDA7Ci0gICAgb3V0WzddID0gMDsKLSAgICBvdXRbOF0gPSAocmlnaHQgKyBsZWZ0KSAqIHJsOwotICAgIG91dFs5XSA9ICh0b3AgKyBib3R0b20pICogdGI7Ci0gICAgb3V0WzEwXSA9IChmYXIgKyBuZWFyKSAqIG5mOwotICAgIG91dFsxMV0gPSAtMTsKLSAgICBvdXRbMTJdID0gMDsKLSAgICBvdXRbMTNdID0gMDsKLSAgICBvdXRbMTRdID0gKGZhciAqIG5lYXIgKiAyKSAqIG5mOwotICAgIG91dFsxNV0gPSAwOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEdlbmVyYXRlcyBhIHBlcnNwZWN0aXZlIHByb2plY3Rpb24gbWF0cml4IHdpdGggdGhlIGdpdmVuIGJvdW5kcwotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgZnJ1c3R1bSBtYXRyaXggd2lsbCBiZSB3cml0dGVuIGludG8KLSAqIEBwYXJhbSB7bnVtYmVyfSBmb3Z5IFZlcnRpY2FsIGZpZWxkIG9mIHZpZXcgaW4gcmFkaWFucwotICogQHBhcmFtIHtudW1iZXJ9IGFzcGVjdCBBc3BlY3QgcmF0aW8uIHR5cGljYWxseSB2aWV3cG9ydCB3aWR0aC9oZWlnaHQKLSAqIEBwYXJhbSB7bnVtYmVyfSBuZWFyIE5lYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEBwYXJhbSB7bnVtYmVyfSBmYXIgRmFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQucGVyc3BlY3RpdmUgPSBmdW5jdGlvbiAob3V0LCBmb3Z5LCBhc3BlY3QsIG5lYXIsIGZhcikgewotICAgIHZhciBmID0gMS4wIC8gTWF0aC50YW4oZm92eSAvIDIpLAotICAgICAgICBuZiA9IDEgLyAobmVhciAtIGZhcik7Ci0gICAgb3V0WzBdID0gZiAvIGFzcGVjdDsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMDsKLSAgICBvdXRbNF0gPSAwOwotICAgIG91dFs1XSA9IGY7Ci0gICAgb3V0WzZdID0gMDsKLSAgICBvdXRbN10gPSAwOwotICAgIG91dFs4XSA9IDA7Ci0gICAgb3V0WzldID0gMDsKLSAgICBvdXRbMTBdID0gKGZhciArIG5lYXIpICogbmY7Ci0gICAgb3V0WzExXSA9IC0xOwotICAgIG91dFsxMl0gPSAwOwotICAgIG91dFsxM10gPSAwOwotICAgIG91dFsxNF0gPSAoMiAqIGZhciAqIG5lYXIpICogbmY7Ci0gICAgb3V0WzE1XSA9IDA7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogR2VuZXJhdGVzIGEgb3J0aG9nb25hbCBwcm9qZWN0aW9uIG1hdHJpeCB3aXRoIHRoZSBnaXZlbiBib3VuZHMKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCi0gKiBAcGFyYW0ge251bWJlcn0gbGVmdCBMZWZ0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcGFyYW0ge251bWJlcn0gcmlnaHQgUmlnaHQgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEBwYXJhbSB7bnVtYmVyfSBib3R0b20gQm90dG9tIGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcGFyYW0ge251bWJlcn0gdG9wIFRvcCBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtudW1iZXJ9IG5lYXIgTmVhciBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtudW1iZXJ9IGZhciBGYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5vcnRobyA9IGZ1bmN0aW9uIChvdXQsIGxlZnQsIHJpZ2h0LCBib3R0b20sIHRvcCwgbmVhciwgZmFyKSB7Ci0gICAgdmFyIGxyID0gMSAvIChsZWZ0IC0gcmlnaHQpLAotICAgICAgICBidCA9IDEgLyAoYm90dG9tIC0gdG9wKSwKLSAgICAgICAgbmYgPSAxIC8gKG5lYXIgLSBmYXIpOwotICAgIG91dFswXSA9IC0yICogbHI7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDA7Ci0gICAgb3V0WzRdID0gMDsKLSAgICBvdXRbNV0gPSAtMiAqIGJ0OwotICAgIG91dFs2XSA9IDA7Ci0gICAgb3V0WzddID0gMDsKLSAgICBvdXRbOF0gPSAwOwotICAgIG91dFs5XSA9IDA7Ci0gICAgb3V0WzEwXSA9IDIgKiBuZjsKLSAgICBvdXRbMTFdID0gMDsKLSAgICBvdXRbMTJdID0gKGxlZnQgKyByaWdodCkgKiBscjsKLSAgICBvdXRbMTNdID0gKHRvcCArIGJvdHRvbSkgKiBidDsKLSAgICBvdXRbMTRdID0gKGZhciArIG5lYXIpICogbmY7Ci0gICAgb3V0WzE1XSA9IDE7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogR2VuZXJhdGVzIGEgbG9vay1hdCBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gZXllIHBvc2l0aW9uLCBmb2NhbCBwb2ludCwgYW5kIHVwIGF4aXMKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCi0gKiBAcGFyYW0ge3ZlYzN9IGV5ZSBQb3NpdGlvbiBvZiB0aGUgdmlld2VyCi0gKiBAcGFyYW0ge3ZlYzN9IGNlbnRlciBQb2ludCB0aGUgdmlld2VyIGlzIGxvb2tpbmcgYXQKLSAqIEBwYXJhbSB7dmVjM30gdXAgdmVjMyBwb2ludGluZyB1cAotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0Lmxvb2tBdCA9IGZ1bmN0aW9uIChvdXQsIGV5ZSwgY2VudGVyLCB1cCkgewotICAgIHZhciB4MCwgeDEsIHgyLCB5MCwgeTEsIHkyLCB6MCwgejEsIHoyLCBsZW4sCi0gICAgICAgIGV5ZXggPSBleWVbMF0sCi0gICAgICAgIGV5ZXkgPSBleWVbMV0sCi0gICAgICAgIGV5ZXogPSBleWVbMl0sCi0gICAgICAgIHVweCA9IHVwWzBdLAotICAgICAgICB1cHkgPSB1cFsxXSwKLSAgICAgICAgdXB6ID0gdXBbMl0sCi0gICAgICAgIGNlbnRlcnggPSBjZW50ZXJbMF0sCi0gICAgICAgIGNlbnRlcnkgPSBjZW50ZXJbMV0sCi0gICAgICAgIGNlbnRlcnogPSBjZW50ZXJbMl07Ci0KLSAgICBpZiAoTWF0aC5hYnMoZXlleCAtIGNlbnRlcngpIDwgR0xNQVRfRVBTSUxPTiAmJgotICAgICAgICBNYXRoLmFicyhleWV5IC0gY2VudGVyeSkgPCBHTE1BVF9FUFNJTE9OICYmCi0gICAgICAgIE1hdGguYWJzKGV5ZXogLSBjZW50ZXJ6KSA8IEdMTUFUX0VQU0lMT04pIHsKLSAgICAgICAgcmV0dXJuIG1hdDQuaWRlbnRpdHkob3V0KTsKLSAgICB9Ci0KLSAgICB6MCA9IGV5ZXggLSBjZW50ZXJ4OwotICAgIHoxID0gZXlleSAtIGNlbnRlcnk7Ci0gICAgejIgPSBleWV6IC0gY2VudGVyejsKLQotICAgIGxlbiA9IDEgLyBNYXRoLnNxcnQoejAgKiB6MCArIHoxICogejEgKyB6MiAqIHoyKTsKLSAgICB6MCAqPSBsZW47Ci0gICAgejEgKj0gbGVuOwotICAgIHoyICo9IGxlbjsKLQotICAgIHgwID0gdXB5ICogejIgLSB1cHogKiB6MTsKLSAgICB4MSA9IHVweiAqIHowIC0gdXB4ICogejI7Ci0gICAgeDIgPSB1cHggKiB6MSAtIHVweSAqIHowOwotICAgIGxlbiA9IE1hdGguc3FydCh4MCAqIHgwICsgeDEgKiB4MSArIHgyICogeDIpOwotICAgIGlmICghbGVuKSB7Ci0gICAgICAgIHgwID0gMDsKLSAgICAgICAgeDEgPSAwOwotICAgICAgICB4MiA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbGVuID0gMSAvIGxlbjsKLSAgICAgICAgeDAgKj0gbGVuOwotICAgICAgICB4MSAqPSBsZW47Ci0gICAgICAgIHgyICo9IGxlbjsKLSAgICB9Ci0KLSAgICB5MCA9IHoxICogeDIgLSB6MiAqIHgxOwotICAgIHkxID0gejIgKiB4MCAtIHowICogeDI7Ci0gICAgeTIgPSB6MCAqIHgxIC0gejEgKiB4MDsKLQotICAgIGxlbiA9IE1hdGguc3FydCh5MCAqIHkwICsgeTEgKiB5MSArIHkyICogeTIpOwotICAgIGlmICghbGVuKSB7Ci0gICAgICAgIHkwID0gMDsKLSAgICAgICAgeTEgPSAwOwotICAgICAgICB5MiA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbGVuID0gMSAvIGxlbjsKLSAgICAgICAgeTAgKj0gbGVuOwotICAgICAgICB5MSAqPSBsZW47Ci0gICAgICAgIHkyICo9IGxlbjsKLSAgICB9Ci0KLSAgICBvdXRbMF0gPSB4MDsKLSAgICBvdXRbMV0gPSB5MDsKLSAgICBvdXRbMl0gPSB6MDsKLSAgICBvdXRbM10gPSAwOwotICAgIG91dFs0XSA9IHgxOwotICAgIG91dFs1XSA9IHkxOwotICAgIG91dFs2XSA9IHoxOwotICAgIG91dFs3XSA9IDA7Ci0gICAgb3V0WzhdID0geDI7Ci0gICAgb3V0WzldID0geTI7Ci0gICAgb3V0WzEwXSA9IHoyOwotICAgIG91dFsxMV0gPSAwOwotICAgIG91dFsxMl0gPSAtKHgwICogZXlleCArIHgxICogZXlleSArIHgyICogZXlleik7Ci0gICAgb3V0WzEzXSA9IC0oeTAgKiBleWV4ICsgeTEgKiBleWV5ICsgeTIgKiBleWV6KTsKLSAgICBvdXRbMTRdID0gLSh6MCAqIGV5ZXggKyB6MSAqIGV5ZXkgKyB6MiAqIGV5ZXopOwotICAgIG91dFsxNV0gPSAxOwotCi0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIG1hdDQKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG1hdCBtYXRyaXggdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCi0gKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJpeAotICovCi1tYXQ0LnN0ciA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgcmV0dXJuICdtYXQ0KCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyBhWzNdICsgJywgJyArCi0gICAgICAgICAgICAgICAgICAgIGFbNF0gKyAnLCAnICsgYVs1XSArICcsICcgKyBhWzZdICsgJywgJyArIGFbN10gKyAnLCAnICsKLSAgICAgICAgICAgICAgICAgICAgYVs4XSArICcsICcgKyBhWzldICsgJywgJyArIGFbMTBdICsgJywgJyArIGFbMTFdICsgJywgJyArIAotICAgICAgICAgICAgICAgICAgICBhWzEyXSArICcsICcgKyBhWzEzXSArICcsICcgKyBhWzE0XSArICcsICcgKyBhWzE1XSArICcpJzsKLX07Ci0KLWlmKHR5cGVvZihleHBvcnRzKSAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBleHBvcnRzLm1hdDQgPSBtYXQ0OwotfQotOwotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIFF1YXRlcm5pb24KLSAqIEBuYW1lIHF1YXQKLSAqLwotCi12YXIgcXVhdCA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgcXVhdAotICoKLSAqIEByZXR1cm5zIHtxdWF0fSBhIG5ldyBxdWF0ZXJuaW9uCi0gKi8KLXF1YXQuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDQpOwotICAgIG91dFswXSA9IDA7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDE7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldyBxdWF0IGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgcXVhdGVybmlvbgotICoKLSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0ZXJuaW9uIHRvIGNsb25lCi0gKiBAcmV0dXJucyB7cXVhdH0gYSBuZXcgcXVhdGVybmlvbgotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQuY2xvbmUgPSB2ZWM0LmNsb25lOwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgcXVhdCBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0gdyBXIGNvbXBvbmVudAotICogQHJldHVybnMge3F1YXR9IGEgbmV3IHF1YXRlcm5pb24KLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmZyb21WYWx1ZXMgPSB2ZWM0LmZyb21WYWx1ZXM7Ci0KLS8qKgotICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHF1YXQgdG8gYW5vdGhlcgotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHRoZSBzb3VyY2UgcXVhdGVybmlvbgotICogQHJldHVybnMge3F1YXR9IG91dAotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQuY29weSA9IHZlYzQuY29weTsKLQotLyoqCi0gKiBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSBxdWF0IHRvIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB3IFcgY29tcG9uZW50Ci0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5zZXQgPSB2ZWM0LnNldDsKLQotLyoqCi0gKiBTZXQgYSBxdWF0IHRvIHRoZSBpZGVudGl0eSBxdWF0ZXJuaW9uCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKi8KLXF1YXQuaWRlbnRpdHkgPSBmdW5jdGlvbihvdXQpIHsKLSAgICBvdXRbMF0gPSAwOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNldHMgYSBxdWF0IGZyb20gdGhlIGdpdmVuIGFuZ2xlIGFuZCByb3RhdGlvbiBheGlzLAotICogdGhlbiByZXR1cm5zIGl0LgotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHt2ZWMzfSBheGlzIHRoZSBheGlzIGFyb3VuZCB3aGljaCB0byByb3RhdGUKLSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIGluIHJhZGlhbnMKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqKi8KLXF1YXQuc2V0QXhpc0FuZ2xlID0gZnVuY3Rpb24ob3V0LCBheGlzLCByYWQpIHsKLSAgICByYWQgPSByYWQgKiAwLjU7Ci0gICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpOwotICAgIG91dFswXSA9IHMgKiBheGlzWzBdOwotICAgIG91dFsxXSA9IHMgKiBheGlzWzFdOwotICAgIG91dFsyXSA9IHMgKiBheGlzWzJdOwotICAgIG91dFszXSA9IE1hdGguY29zKHJhZCk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWRkcyB0d28gcXVhdCdzCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCi0gKiBAcGFyYW0ge3F1YXR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7cXVhdH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmFkZCA9IHZlYzQuYWRkOwotCi0vKioKLSAqIE11bHRpcGxpZXMgdHdvIHF1YXQncwotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKi8KLXF1YXQubXVsdGlwbHkgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICB2YXIgYXggPSBhWzBdLCBheSA9IGFbMV0sIGF6ID0gYVsyXSwgYXcgPSBhWzNdLAotICAgICAgICBieCA9IGJbMF0sIGJ5ID0gYlsxXSwgYnogPSBiWzJdLCBidyA9IGJbM107Ci0KLSAgICBvdXRbMF0gPSBheCAqIGJ3ICsgYXcgKiBieCArIGF5ICogYnogLSBheiAqIGJ5OwotICAgIG91dFsxXSA9IGF5ICogYncgKyBhdyAqIGJ5ICsgYXogKiBieCAtIGF4ICogYno7Ci0gICAgb3V0WzJdID0gYXogKiBidyArIGF3ICogYnogKyBheCAqIGJ5IC0gYXkgKiBieDsKLSAgICBvdXRbM10gPSBhdyAqIGJ3IC0gYXggKiBieCAtIGF5ICogYnkgLSBheiAqIGJ6OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgcXVhdC5tdWx0aXBseX0KLSAqIEBmdW5jdGlvbgotICovCi1xdWF0Lm11bCA9IHF1YXQubXVsdGlwbHk7Ci0KLS8qKgotICogU2NhbGVzIGEgcXVhdCBieSBhIHNjYWxhciBudW1iZXIKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHtxdWF0fSBhIHRoZSB2ZWN0b3IgdG8gc2NhbGUKLSAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5Ci0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5zY2FsZSA9IHZlYzQuc2NhbGU7Ci0KLS8qKgotICogUm90YXRlcyBhIHF1YXRlcm5pb24gYnkgdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWCBheGlzCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgcXVhdCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAotICogQHBhcmFtIHtxdWF0fSBhIHF1YXQgdG8gcm90YXRlCi0gKiBAcGFyYW0ge251bWJlcn0gcmFkIGFuZ2xlIChpbiByYWRpYW5zKSB0byByb3RhdGUKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqLwotcXVhdC5yb3RhdGVYID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7Ci0gICAgcmFkICo9IDAuNTsgCi0KLSAgICB2YXIgYXggPSBhWzBdLCBheSA9IGFbMV0sIGF6ID0gYVsyXSwgYXcgPSBhWzNdLAotICAgICAgICBieCA9IE1hdGguc2luKHJhZCksIGJ3ID0gTWF0aC5jb3MocmFkKTsKLQotICAgIG91dFswXSA9IGF4ICogYncgKyBhdyAqIGJ4OwotICAgIG91dFsxXSA9IGF5ICogYncgKyBheiAqIGJ4OwotICAgIG91dFsyXSA9IGF6ICogYncgLSBheSAqIGJ4OwotICAgIG91dFszXSA9IGF3ICogYncgLSBheCAqIGJ4OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJvdGF0ZXMgYSBxdWF0ZXJuaW9uIGJ5IHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIFkgYXhpcwotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHF1YXQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKLSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQotICogQHBhcmFtIHtudW1iZXJ9IHJhZCBhbmdsZSAoaW4gcmFkaWFucykgdG8gcm90YXRlCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKi8KLXF1YXQucm90YXRlWSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgewotICAgIHJhZCAqPSAwLjU7IAotCi0gICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKLSAgICAgICAgYnkgPSBNYXRoLnNpbihyYWQpLCBidyA9IE1hdGguY29zKHJhZCk7Ci0KLSAgICBvdXRbMF0gPSBheCAqIGJ3IC0gYXogKiBieTsKLSAgICBvdXRbMV0gPSBheSAqIGJ3ICsgYXcgKiBieTsKLSAgICBvdXRbMl0gPSBheiAqIGJ3ICsgYXggKiBieTsKLSAgICBvdXRbM10gPSBhdyAqIGJ3IC0gYXkgKiBieTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBaIGF4aXMKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCBxdWF0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0Ci0gKiBAcGFyYW0ge3F1YXR9IGEgcXVhdCB0byByb3RhdGUKLSAqIEBwYXJhbSB7bnVtYmVyfSByYWQgYW5nbGUgKGluIHJhZGlhbnMpIHRvIHJvdGF0ZQotICogQHJldHVybnMge3F1YXR9IG91dAotICovCi1xdWF0LnJvdGF0ZVogPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKLSAgICByYWQgKj0gMC41OyAKLQotICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLCBhdyA9IGFbM10sCi0gICAgICAgIGJ6ID0gTWF0aC5zaW4ocmFkKSwgYncgPSBNYXRoLmNvcyhyYWQpOwotCi0gICAgb3V0WzBdID0gYXggKiBidyArIGF5ICogYno7Ci0gICAgb3V0WzFdID0gYXkgKiBidyAtIGF4ICogYno7Ci0gICAgb3V0WzJdID0gYXogKiBidyArIGF3ICogYno7Ci0gICAgb3V0WzNdID0gYXcgKiBidyAtIGF6ICogYno7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgVyBjb21wb25lbnQgb2YgYSBxdWF0IGZyb20gdGhlIFgsIFksIGFuZCBaIGNvbXBvbmVudHMuCi0gKiBBc3N1bWVzIHRoYXQgcXVhdGVybmlvbiBpcyAxIHVuaXQgaW4gbGVuZ3RoLgotICogQW55IGV4aXN0aW5nIFcgY29tcG9uZW50IHdpbGwgYmUgaWdub3JlZC4KLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIGNhbGN1bGF0ZSBXIGNvbXBvbmVudCBvZgotICogQHJldHVybnMge3F1YXR9IG91dAotICovCi1xdWF0LmNhbGN1bGF0ZVcgPSBmdW5jdGlvbiAob3V0LCBhKSB7Ci0gICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl07Ci0KLSAgICBvdXRbMF0gPSB4OwotICAgIG91dFsxXSA9IHk7Ci0gICAgb3V0WzJdID0gejsKLSAgICBvdXRbM10gPSAtTWF0aC5zcXJ0KE1hdGguYWJzKDEuMCAtIHggKiB4IC0geSAqIHkgLSB6ICogeikpOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byBxdWF0J3MKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7cXVhdH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGIKLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmRvdCA9IHZlYzQuZG90OwotCi0vKioKLSAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gcXVhdCdzCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCi0gKiBAcGFyYW0ge3F1YXR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7cXVhdH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEBwYXJhbSB7TnVtYmVyfSB0IGludGVycG9sYXRpb24gYW1vdW50IGJldHdlZW4gdGhlIHR3byBpbnB1dHMKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmxlcnAgPSB2ZWM0LmxlcnA7Ci0KLS8qKgotICogUGVyZm9ybXMgYSBzcGhlcmljYWwgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gcXVhdAotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKi8KLXF1YXQuc2xlcnAgPSBmdW5jdGlvbiAob3V0LCBhLCBiLCB0KSB7Ci0gICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKLSAgICAgICAgYnggPSBiWzBdLCBieSA9IGJbMV0sIGJ6ID0gYlsyXSwgYncgPSBiWzNdOwotCi0gICAgdmFyIGNvc0hhbGZUaGV0YSA9IGF4ICogYnggKyBheSAqIGJ5ICsgYXogKiBieiArIGF3ICogYncsCi0gICAgICAgIGhhbGZUaGV0YSwKLSAgICAgICAgc2luSGFsZlRoZXRhLAotICAgICAgICByYXRpb0EsCi0gICAgICAgIHJhdGlvQjsKLQotICAgIGlmIChNYXRoLmFicyhjb3NIYWxmVGhldGEpID49IDEuMCkgewotICAgICAgICBpZiAob3V0ICE9PSBhKSB7Ci0gICAgICAgICAgICBvdXRbMF0gPSBheDsKLSAgICAgICAgICAgIG91dFsxXSA9IGF5OwotICAgICAgICAgICAgb3V0WzJdID0gYXo7Ci0gICAgICAgICAgICBvdXRbM10gPSBhdzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gb3V0OwotICAgIH0KLQotICAgIGhhbGZUaGV0YSA9IE1hdGguYWNvcyhjb3NIYWxmVGhldGEpOwotICAgIHNpbkhhbGZUaGV0YSA9IE1hdGguc3FydCgxLjAgLSBjb3NIYWxmVGhldGEgKiBjb3NIYWxmVGhldGEpOwotCi0gICAgaWYgKE1hdGguYWJzKHNpbkhhbGZUaGV0YSkgPCAwLjAwMSkgewotICAgICAgICBvdXRbMF0gPSAoYXggKiAwLjUgKyBieCAqIDAuNSk7Ci0gICAgICAgIG91dFsxXSA9IChheSAqIDAuNSArIGJ5ICogMC41KTsKLSAgICAgICAgb3V0WzJdID0gKGF6ICogMC41ICsgYnogKiAwLjUpOwotICAgICAgICBvdXRbM10gPSAoYXcgKiAwLjUgKyBidyAqIDAuNSk7Ci0gICAgICAgIHJldHVybiBvdXQ7Ci0gICAgfQotCi0gICAgcmF0aW9BID0gTWF0aC5zaW4oKDEgLSB0KSAqIGhhbGZUaGV0YSkgLyBzaW5IYWxmVGhldGE7Ci0gICAgcmF0aW9CID0gTWF0aC5zaW4odCAqIGhhbGZUaGV0YSkgLyBzaW5IYWxmVGhldGE7Ci0KLSAgICBvdXRbMF0gPSAoYXggKiByYXRpb0EgKyBieCAqIHJhdGlvQik7Ci0gICAgb3V0WzFdID0gKGF5ICogcmF0aW9BICsgYnkgKiByYXRpb0IpOwotICAgIG91dFsyXSA9IChheiAqIHJhdGlvQSArIGJ6ICogcmF0aW9CKTsKLSAgICBvdXRbM10gPSAoYXcgKiByYXRpb0EgKyBidyAqIHJhdGlvQik7Ci0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBpbnZlcnNlIG9mIGEgcXVhdAotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHF1YXQgdG8gY2FsY3VsYXRlIGludmVyc2Ugb2YKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqLwotcXVhdC5pbnZlcnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLAotICAgICAgICBkb3QgPSBhMCphMCArIGExKmExICsgYTIqYTIgKyBhMyphMywKLSAgICAgICAgaW52RG90ID0gZG90ID8gMS4wL2RvdCA6IDA7Ci0gICAgCi0gICAgLy8gVE9ETzogV291bGQgYmUgZmFzdGVyIHRvIHJldHVybiBbMCwwLDAsMF0gaW1tZWRpYXRlbHkgaWYgZG90ID09IDAKLQotICAgIG91dFswXSA9IC1hMCppbnZEb3Q7Ci0gICAgb3V0WzFdID0gLWExKmludkRvdDsKLSAgICBvdXRbMl0gPSAtYTIqaW52RG90OwotICAgIG91dFszXSA9IGEzKmludkRvdDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBjb25qdWdhdGUgb2YgYSBxdWF0Ci0gKiBJZiB0aGUgcXVhdGVybmlvbiBpcyBub3JtYWxpemVkLCB0aGlzIGZ1bmN0aW9uIGlzIGZhc3RlciB0aGFuIHF1YXQuaW52ZXJzZSBhbmQgcHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0LgotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHF1YXQgdG8gY2FsY3VsYXRlIGNvbmp1Z2F0ZSBvZgotICogQHJldHVybnMge3F1YXR9IG91dAotICovCi1xdWF0LmNvbmp1Z2F0ZSA9IGZ1bmN0aW9uIChvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSAtYVswXTsKLSAgICBvdXRbMV0gPSAtYVsxXTsKLSAgICBvdXRbMl0gPSAtYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGxlbmd0aCBvZiBhIHF1YXQKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IGEgdmVjdG9yIHRvIGNhbGN1bGF0ZSBsZW5ndGggb2YKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGxlbmd0aCBvZiBhCi0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5sZW5ndGggPSB2ZWM0Lmxlbmd0aDsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHF1YXQubGVuZ3RofQotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQubGVuID0gcXVhdC5sZW5ndGg7Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBsZW5ndGggb2YgYSBxdWF0Ci0gKgotICogQHBhcmFtIHtxdWF0fSBhIHZlY3RvciB0byBjYWxjdWxhdGUgc3F1YXJlZCBsZW5ndGggb2YKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgbGVuZ3RoIG9mIGEKLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LnNxdWFyZWRMZW5ndGggPSB2ZWM0LnNxdWFyZWRMZW5ndGg7Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayBxdWF0LnNxdWFyZWRMZW5ndGh9Ci0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5zcXJMZW4gPSBxdWF0LnNxdWFyZWRMZW5ndGg7Ci0KLS8qKgotICogTm9ybWFsaXplIGEgcXVhdAotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHF1YXRlcm5pb24gdG8gbm9ybWFsaXplCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5ub3JtYWxpemUgPSB2ZWM0Lm5vcm1hbGl6ZTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgcXVhdGVybmlvbiBmcm9tIHRoZSBnaXZlbiAzeDMgcm90YXRpb24gbWF0cml4LgotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHttYXQzfSBtIHJvdGF0aW9uIG1hdHJpeAotICogQHJldHVybnMge3F1YXR9IG91dAotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQuZnJvbU1hdDMgPSAoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNfaU5leHQgPSBbMSwyLDBdOwotICAgIHJldHVybiBmdW5jdGlvbihvdXQsIG0pIHsKLSAgICAgICAgLy8gQWxnb3JpdGhtIGluIEtlbiBTaG9lbWFrZSdzIGFydGljbGUgaW4gMTk4NyBTSUdHUkFQSCBjb3Vyc2Ugbm90ZXMKLSAgICAgICAgLy8gYXJ0aWNsZSAiUXVhdGVybmlvbiBDYWxjdWx1cyBhbmQgRmFzdCBBbmltYXRpb24iLgotICAgICAgICB2YXIgZlRyYWNlID0gbVswXSArIG1bNF0gKyBtWzhdOwotICAgICAgICB2YXIgZlJvb3Q7Ci0KLSAgICAgICAgaWYgKCBmVHJhY2UgPiAwLjAgKSB7Ci0gICAgICAgICAgICAvLyB8d3wgPiAxLzIsIG1heSBhcyB3ZWxsIGNob29zZSB3ID4gMS8yCi0gICAgICAgICAgICBmUm9vdCA9IE1hdGguc3FydChmVHJhY2UgKyAxLjApOyAgLy8gMncKLSAgICAgICAgICAgIG91dFszXSA9IDAuNSAqIGZSb290OwotICAgICAgICAgICAgZlJvb3QgPSAwLjUvZlJvb3Q7ICAvLyAxLyg0dykKLSAgICAgICAgICAgIG91dFswXSA9IChtWzddLW1bNV0pKmZSb290OwotICAgICAgICAgICAgb3V0WzFdID0gKG1bMl0tbVs2XSkqZlJvb3Q7Ci0gICAgICAgICAgICBvdXRbMl0gPSAobVszXS1tWzFdKSpmUm9vdDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIHx3fCA8PSAxLzIKLSAgICAgICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgICAgIGlmICggbVs0XSA+IG1bMF0gKQotICAgICAgICAgICAgICBpID0gMTsKLSAgICAgICAgICAgIGlmICggbVs4XSA+IG1baSozK2ldICkKLSAgICAgICAgICAgICAgaSA9IDI7Ci0gICAgICAgICAgICB2YXIgaiA9IHNfaU5leHRbaV07Ci0gICAgICAgICAgICB2YXIgayA9IHNfaU5leHRbal07Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZSb290ID0gTWF0aC5zcXJ0KG1baSozK2ldLW1baiozK2pdLW1bayozK2tdICsgMS4wKTsKLSAgICAgICAgICAgIG91dFtpXSA9IDAuNSAqIGZSb290OwotICAgICAgICAgICAgZlJvb3QgPSAwLjUgLyBmUm9vdDsKLSAgICAgICAgICAgIG91dFszXSA9IChtW2sqMytqXSAtIG1baiozK2tdKSAqIGZSb290OwotICAgICAgICAgICAgb3V0W2pdID0gKG1baiozK2ldICsgbVtpKjMral0pICogZlJvb3Q7Ci0gICAgICAgICAgICBvdXRba10gPSAobVtrKjMraV0gKyBtW2kqMytrXSkgKiBmUm9vdDsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIG91dDsKLSAgICB9OwotfSkoKTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgcXVhdGVuaW9uCi0gKgotICogQHBhcmFtIHtxdWF0fSB2ZWMgdmVjdG9yIHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZwotICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IKLSAqLwotcXVhdC5zdHIgPSBmdW5jdGlvbiAoYSkgewotICAgIHJldHVybiAncXVhdCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgYVszXSArICcpJzsKLX07Ci0KLWlmKHR5cGVvZihleHBvcnRzKSAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBleHBvcnRzLnF1YXQgPSBxdWF0OwotfQotOwotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0gIH0pKHNoaW0uZXhwb3J0cyk7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9pbmRleC50bXBsIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9pbmRleC50bXBsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjI5NGI2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvaW5kZXgudG1wbAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCi0gICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLQk8aGVhZD4KLQkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9eytJTy5lbmNvZGluZyt9IiAvPgotCQkKLQkJPHRpdGxlPmdsTWF0cml4IC0gSW5kZXg8L3RpdGxlPgotCQk8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkpzRG9jIFRvb2xraXQiIC8+Ci0JCQotCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotCQl7K2luY2x1ZGUoInN0YXRpYy9kZWZhdWx0LmNzcyIpK30KLQkJPC9zdHlsZT4KLQk8L2hlYWQ+Ci0JCi0JPGJvZHk+Ci0JCXsraW5jbHVkZSgic3RhdGljL2hlYWRlci5odG1sIikrfQotCi0JCTxkaXYgY2xhc3M9IndyYXBwZXIiPgotCQkKLQkJCTxoZWFkZXIgaWQ9ImluZGV4Ij4KLQkJCQl7K3B1Ymxpc2guY2xhc3Nlc0luZGV4K30KLQkJCTwvaGVhZGVyPgotCQkJCi0JCQk8c2VjdGlvbiBpZD0iY29udGVudCI+Ci0JCQkJPGgxIGNsYXNzPSJjbGFzc1RpdGxlIj5DbGFzcyBJbmRleDwvaDE+Ci0JCQkJCi0JCQkJPGZvciBlYWNoPSJ0aGlzQ2xhc3MiIGluPSJkYXRhIj4KLQkJCQkJPGlmIHRlc3Q9InRoaXNDbGFzcy5hbGlhcyAhPSAnX2dsb2JhbF8nIj4KLQkJCQkJCTxkaXY+Ci0JCQkJCQkJPGgyPnsrKG5ldyBMaW5rKCkudG9TeW1ib2wodGhpc0NsYXNzLmFsaWFzKSkrfTwvaDI+Ci0JCQkJCQkJeytyZXNvbHZlTGlua3Moc3VtbWFyaXplKHRoaXNDbGFzcy5jbGFzc0Rlc2MpKSt9Ci0JCQkJCQk8L2Rpdj4KLQkJCQkJCTxociAvPgotCQkJCQk8L2lmPgotCQkJCTwvZm9yPgotCQkJCQotCQkJPC9zZWN0aW9uPgotCi0JCQk8Zm9vdGVyPgotCQkJCTxzbWFsbD4KLQkJCQkJPGlmIHRlc3Q9IkpTRE9DLm9wdC5ELmNvcHlyaWdodCI+JmNvcHk7eytKU0RPQy5vcHQuRC5jb3B5cmlnaHQrfTxiciAvPjwvaWY+Ci0JCQkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2RvYy10b29sa2l0LyIgdGFyZ2V0PSJfYmxhbmsiPkpzRG9jIFRvb2xraXQ8L2E+IHsrSlNET0MuVkVSU0lPTit9IG9uIHsrbmV3IERhdGUoKSt9Ci0JCQkJCTxici8+PGJyLz4KLQkJCQkJVGhlbWUgYmFzZWQgb24gR2l0aHViIFBhZ2VzIHRlbXBsYXRlIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcmRlcmVkbGlzdCI+b3JkZXJlZGxpc3Q8L2E+Ci0JCQkJPC9zbWFsbD4KLQkJCTwvZm9vdGVyPgotCi0JCTwvZGl2PgotCTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9oZWFkZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvc3RhdGljL2hlYWRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjgxOTA0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvc3RhdGljL2hlYWRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi08ZGl2IGlkPSJoZWFkZXIiPgotPC9kaXY+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9pbmRleC5odG1sIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9zdGF0aWMvaW5kZXguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRhYTNiNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9pbmRleC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIgotICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtZnJhbWVzZXQuZHRkIj4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KLTxoZWFkPgotCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotCTx0aXRsZT5nbE1hdHJpeCBEb2N1bWVudGF0aW9uPC90aXRsZT4KLTwvaGVhZD4KLTxmcmFtZXNldCBjb2xzPSIyMCUsODAlIj4KLQk8ZnJhbWUgc3JjPSJhbGxjbGFzc2VzLWZyYW1lLmh0bWwiIG5hbWU9InBhY2thZ2VGcmFtZSIgLz4KLQk8ZnJhbWUgc3JjPSJzcGxhc2guaHRtbCIgbmFtZT0iY2xhc3NGcmFtZSIgLz4KLQk8bm9mcmFtZXM+Ci0JCTxib2R5PgotCQk8cD4KLQkJVGhpcyBkb2N1bWVudCBpcyBkZXNpZ25lZCB0byBiZSB2aWV3ZWQgdXNpbmcgdGhlIGZyYW1lcyBmZWF0dXJlLiBJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSwgeW91IGFyZSB1c2luZyBhIG5vbi1mcmFtZS1jYXBhYmxlIHdlYiBjbGllbnQuCi0JCTwvcD4KLQkJPC9ib2R5PgotCTwvbm9mcmFtZXM+Ci08L2ZyYW1lc2V0PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9wYWNrYWdlLmpzb24gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3BhY2thZ2UuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA5NDA0OS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3BhY2thZ2UuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLXsKLSAgIm5hbWUiOiAiZ2wtbWF0cml4IiwKLSAgImRlc2NyaXB0aW9uIjogIkphdmFzY3JpcHQgTWF0cml4IGFuZCBWZWN0b3IgbGlicmFyeSBmb3IgSGlnaCBQZXJmb3JtYW5jZSBXZWJHTCBhcHBzIiwKLSAgInZlcnNpb24iOiAiMi4xLjAiLAotICAibWFpbiI6ICJkaXN0L2dsLW1hdHJpeC5qcyIsCi0gICJob21lcGFnZSI6ICJodHRwOi8vZ2xtYXRyaXgubmV0IiwKLSAgImJ1Z3MiOiB7Ci0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9qaS9nbC1tYXRyaXgvaXNzdWVzIgotICB9LAotICAicmVwb3NpdG9yeSI6IHsKLSAgICAidHlwZSI6ICJnaXQiLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvamkvZ2wtbWF0cml4LmdpdCIKLSAgfSwKLSAgImNvbnRyaWJ1dG9ycyI6IFsKLSAgICB7Ci0gICAgICAibmFtZSI6ICJCcmFuZG9uIEpvbmVzIiwKLSAgICAgICJlbWFpbCI6ICJ0b2ppcm9AZ21haWwuY29tIgotICAgIH0sCi0gICAgewotICAgICAgIm5hbWUiOiAiQ29saW4gTWFjS2VuemllIElWIiwKLSAgICAgICJlbWFpbCI6ICJzaW5pc3RlcmNoaXBtdW5rQGdtYWlsLmNvbSIKLSAgICB9Ci0gIF0sCi0gICJsaWNlbnNlIjogIkJTRCIKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvbWF0Mi1zcGVjLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQyLXNwZWMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4YzM1MTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQyLXNwZWMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOTAgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLWRlc2NyaWJlKCJtYXQyIiwgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCwgbWF0QSwgbWF0QiwgaWRlbnRpdHksIHJlc3VsdDsKLQotICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7Ci0gICAgICAgIG1hdEEgPSBbMSwgMiwKLSAgICAgICAgICAgICAgICAzLCA0XTsKLQotICAgICAgICBtYXRCID0gWzUsIDYsCi0gICAgICAgICAgICAgICAgNywgOF07Ci0KLSAgICAgICAgb3V0ID0gIFswLCAwLAotICAgICAgICAgICAgICAgIDAsIDBdOwotCi0gICAgICAgIGlkZW50aXR5ID0gWzEsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDFdOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNyZWF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLmNyZWF0ZSgpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSA0IGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gYSAyeDIgaWRlbnRpdHkgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChpZGVudGl0eSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNsb25lIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuY2xvbmUobWF0QSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDQgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byB0aGUgdmFsdWVzIGluIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKG1hdEEpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjb3B5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuY29weShvdXQsIG1hdEEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKG1hdEEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiaWRlbnRpdHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5pZGVudGl0eShvdXQpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKGlkZW50aXR5KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInRyYW5zcG9zZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIudHJhbnNwb3NlKG91dCwgbWF0QSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDMsIDIsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIudHJhbnNwb3NlKG1hdEEsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDMsIDIsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJpbnZlcnQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLmludmVydChvdXQsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFstMiwgMSwgMS41LCAtMC41XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLmludmVydChtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFstMiwgMSwgMS41LCAtMC41XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiYWRqb2ludCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuYWRqb2ludChvdXQsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFs0LCAtMiwgLTMsIDFdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuYWRqb2ludChtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFs0LCAtMiwgLTMsIDFdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkZXRlcm1pbmFudCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLmRldGVybWluYW50KG1hdEEpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkZXRlcm1pbmFudCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKC0yKTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibXVsdGlwbHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnbXVsJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0Mi5tdWwpLnRvRXF1YWwobWF0Mi5tdWx0aXBseSk7IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5tdWx0aXBseShvdXQsIG1hdEEsIG1hdEIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxOSwgMjIsIDQzLCA1MF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIubXVsdGlwbHkobWF0QSwgbWF0QSwgbWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMTksIDIyLCA0MywgNTBdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QiBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5tdWx0aXBseShtYXRCLCBtYXRBLCBtYXRCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFsxOSwgMjIsIDQzLCA1MF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJyb3RhdGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLnJvdGF0ZShvdXQsIG1hdEEsIE1hdGguUEkgKiAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCAtMSwgNCwgLTNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIucm90YXRlKG1hdEEsIG1hdEEsIE1hdGguUEkgKiAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzIsIC0xLCA0LCAtM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNjYWxlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB2ZWNBOwotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzIsIDNdOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuc2NhbGUob3V0LCBtYXRBLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMiwgNiwgNiwgMTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuc2NhbGUobWF0QSwgbWF0QSwgdmVjQSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMiwgNiwgNiwgMTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzdHIiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5zdHIobWF0QSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJpeCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKCJtYXQyKDEsIDIsIDMsIDQpIik7IH0pOwotICAgIH0pOwotfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQyZC1zcGVjLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQyZC1zcGVjLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzdlYTdhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvbWF0MmQtc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4OCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotZGVzY3JpYmUoIm1hdDJkIiwgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCwgbWF0QSwgbWF0QiwgaWRlbnRpdHksIHJlc3VsdDsKLQotICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7Ci0gICAgICAgIG1hdEEgPSBbMSwgMiwKLSAgICAgICAgICAgICAgICAzLCA0LAotICAgICAgICAgICAgICAgIDUsIDZdOwotCi0gICAgICAgIG9sZEEgPSBbMSwgMiwKLSAgICAgICAgICAgICAgICAzLCA0LAotICAgICAgICAgICAgICAgIDUsIDZdOwotCi0gICAgICAgIG1hdEIgPSBbNywgOCwKLSAgICAgICAgICAgICAgICA5LCAxMCwKLSAgICAgICAgICAgICAgICAxMSwgMTJdOwotCi0gICAgICAgIG9sZEIgPSBbNywgOCwKLSAgICAgICAgICAgICAgICA5LCAxMCwKLSAgICAgICAgICAgICAgICAxMSwgMTJdOwotCi0gICAgICAgIG91dCA9ICBbMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAwLAotICAgICAgICAgICAgICAgIDAsIDBdOwotCi0gICAgICAgIGlkZW50aXR5ID0gWzEsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsCi0gICAgICAgICAgICAgICAgICAgIDAsIDBdOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNyZWF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5jcmVhdGUoKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIGEgMngzIGlkZW50aXR5IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goaWRlbnRpdHkpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjbG9uZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5jbG9uZShtYXRBKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgaW4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNvcHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuY29weShvdXQsIG1hdEEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKG1hdEEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiaWRlbnRpdHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuaWRlbnRpdHkob3V0KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChpZGVudGl0eSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJpbnZlcnQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5pbnZlcnQob3V0LCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbIC0yLCAxLCAxLjUsIC0wLjUsIDEsIC0yIF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChvbGRBKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLmludmVydChtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsgLTIsIDEsIDEuNSwgLTAuNSwgMSwgLTIgXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiZGV0ZXJtaW5hbnQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuZGV0ZXJtaW5hbnQobWF0QSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRldGVybWluYW50IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoLTIpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJtdWx0aXBseSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdtdWwnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXQyZC5tdWwpLnRvRXF1YWwobWF0MmQubXVsdGlwbHkpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLm11bHRpcGx5KG91dCwgbWF0QSwgbWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzI1LCAyOCwgNTcsIDY0LCAxMDAsIDExMl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChvbGRBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKG9sZEIpOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQubXVsdGlwbHkobWF0QSwgbWF0QSwgbWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMjUsIDI4LCA1NywgNjQsIDEwMCwgMTEyXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRCKS50b0JlRXF1YWxpc2gob2xkQik7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRCIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5tdWx0aXBseShtYXRCLCBtYXRBLCBtYXRCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFsyNSwgMjgsIDU3LCA2NCwgMTAwLCAxMTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0Qik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChvbGRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInJvdGF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLnJvdGF0ZShvdXQsIG1hdEEsIE1hdGguUEkgKiAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCAtMSwgNCwgLTMsIDYsIC01XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKG9sZEEpOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQucm90YXRlKG1hdEEsIG1hdEEsIE1hdGguUEkgKiAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzIsIC0xLCA0LCAtMywgNiwgLTVdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzY2FsZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgdmVjQTsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsyLCAzXTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5zY2FsZShvdXQsIG1hdEEsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCA2LCA2LCAxMiwgMTAsIDE4XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKG9sZEEpOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuc2NhbGUobWF0QSwgbWF0QSwgdmVjQSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMiwgNiwgNiwgMTIsIDEwLCAxOF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInRyYW5zbGF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgdmVjQTsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsyLCAzXTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC50cmFuc2xhdGUob3V0LCBtYXRBLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNCwgNywgOV0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChvbGRBKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLnRyYW5zbGF0ZShtYXRBLCBtYXRBLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0LCA3LCA5XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgic3RyIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLnN0cihtYXRBKTsgfSk7Ci0gICAgICAgIAotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoIm1hdDJkKDEsIDIsIDMsIDQsIDUsIDYpIik7IH0pOwotICAgIH0pOwotfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQzLXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDMtc3BlYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmZjODI1ZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDMtc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI2OSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotZGVzY3JpYmUoIm1hdDMiLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0LCBtYXRBLCBtYXRCLCBpZGVudGl0eSwgcmVzdWx0OwotCi0gICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKLSAgICAgICAgbWF0QSA9IFsxLCAwLCAwLAotICAgICAgICAgICAgICAgIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgMSwgMiwgMV07Ci0KLSAgICAgICAgbWF0QiA9IFsxLCAwLCAwLAotICAgICAgICAgICAgICAgIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgMywgNCwgMV07Ci0KLSAgICAgICAgb3V0ID0gIFswLCAwLCAwLAotICAgICAgICAgICAgICAgIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgMCwgMCwgMF07Ci0KLSAgICAgICAgaWRlbnRpdHkgPSBbMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMV07Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiZnJvbU1hdDQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IG1hdDMuZnJvbU1hdDQob3V0LCBbIDEsIDIsIDMsIDQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA2LCA3LCA4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOSwxMCwxMSwxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsMTQsMTUsMTZdKTsgfSk7Ci0KLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0KLSAgICAgICAgaXQoInNob3VsZCBjYWxjdWxhdGUgcHJvcGVyIG1hdDMiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbIDEsIDIsIDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA2LCA3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOSwxMCwxMV0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjcmVhdGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5jcmVhdGUoKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgOSBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIGEgM3gzIGlkZW50aXR5IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goaWRlbnRpdHkpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjbG9uZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLmNsb25lKG1hdEEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSA5IGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlcyBpbiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChtYXRBKTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiY29weSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLmNvcHkob3V0LCBtYXRBKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChtYXRBKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImlkZW50aXR5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMuaWRlbnRpdHkob3V0KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChpZGVudGl0eSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJ0cmFuc3Bvc2UiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLnRyYW5zcG9zZShvdXQsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMSwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLnRyYW5zcG9zZShtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMSwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiaW52ZXJ0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5pbnZlcnQob3V0LCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIC0xLCAtMiwgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMuaW52ZXJ0KG1hdEEsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAtMSwgLTIsIDEKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImFkam9pbnQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLmFkam9pbnQob3V0LCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIC0xLCAtMiwgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMuYWRqb2ludChtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgLTEsIC0yLCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkZXRlcm1pbmFudCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLmRldGVybWluYW50KG1hdEEpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkZXRlcm1pbmFudCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDEpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJtdWx0aXBseSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdtdWwnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXQzLm11bCkudG9FcXVhbChtYXQzLm11bHRpcGx5KTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLm11bHRpcGx5KG91dCwgbWF0QSwgbWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICA0LCA2LCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRCKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAzLCA0LCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5tdWx0aXBseShtYXRBLCBtYXRBLCBtYXRCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICA0LCA2LCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRCKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAzLCA0LCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QiBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5tdWx0aXBseShtYXRCLCBtYXRBLCBtYXRCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QiIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgNCwgNiwgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEIpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgic3RyIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMuc3RyKG1hdEEpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgibWF0MygxLCAwLCAwLCAwLCAxLCAwLCAxLCAyLCAxKSIpOyB9KTsKLSAgICB9KTsKLX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvbWF0NC1zcGVjLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQ0LXNwZWMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkODdiYzAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQ0LXNwZWMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NjYgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLWRlc2NyaWJlKCJtYXQ0IiwgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCwgbWF0QSwgbWF0QiwgaWRlbnRpdHksIHJlc3VsdDsKLQotICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIEF0dGVtcHRpbmcgdG8gcG9ydHJheSBhIHNlbWktcmVhbGlzdGljIHRyYW5zZm9ybSBtYXRyaXgKLSAgICAgICAgbWF0QSA9IFsxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAxLCAyLCAzLCAxXTsKLQotICAgICAgICBtYXRCID0gWzEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgIDQsIDUsIDYsIDFdOwotCi0gICAgICAgIG91dCA9ICBbMCwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgMCwgMCwgMCwgMF07Ci0KLSAgICAgICAgaWRlbnRpdHkgPSBbMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMV07Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiY3JlYXRlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuY3JlYXRlKCk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDE2IGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gYSA0eDQgaWRlbnRpdHkgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChpZGVudGl0eSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNsb25lIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuY2xvbmUobWF0QSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDE2IGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlcyBpbiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChtYXRBKTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiY29weSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmNvcHkob3V0LCBtYXRBKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChtYXRBKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImlkZW50aXR5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuaWRlbnRpdHkob3V0KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChpZGVudGl0eSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJ0cmFuc3Bvc2UiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnRyYW5zcG9zZShvdXQsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMSwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMiwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMywKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnRyYW5zcG9zZShtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMSwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMiwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMywKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiaW52ZXJ0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5pbnZlcnQob3V0LCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIC0xLCAtMiwgLTMsIDEKLSAgICAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmludmVydChtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgLTEsIC0yLCAtMywgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiYWRqb2ludCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuYWRqb2ludChvdXQsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgLTEsIC0yLCAtMywgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuYWRqb2ludChtYXRBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgLTEsIC0yLCAtMywgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiZGV0ZXJtaW5hbnQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5kZXRlcm1pbmFudChtYXRBKTsgfSk7Ci0gICAgICAgIAotICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgZGV0ZXJtaW5hbnQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgxKTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibXVsdGlwbHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnbXVsJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0NC5tdWwpLnRvRXF1YWwobWF0NC5tdWx0aXBseSk7IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5tdWx0aXBseShvdXQsIG1hdEEsIG1hdEIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgNSwgNywgOSwgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgNCwgNSwgNiwgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQubXVsdGlwbHkobWF0QSwgbWF0QSwgbWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgNSwgNywgOSwgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgNCwgNSwgNiwgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEIgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQubXVsdGlwbHkobWF0QiwgbWF0QSwgbWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEIiLCBmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIDUsIDcsIDksIDEKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInRyYW5zbGF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQudHJhbnNsYXRlKG91dCwgbWF0QSwgWzQsIDUsIDZdKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIDUsIDcsIDksIDEKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC50cmFuc2xhdGUobWF0QSwgbWF0QSwgWzQsIDUsIDZdKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICA1LCA3LCA5LCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNjYWxlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5zY2FsZShvdXQsIG1hdEEsIFs0LCA1LCA2XSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICA0LCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCA1LCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCA2LCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuc2NhbGUobWF0QSwgbWF0QSwgWzQsIDUsIDZdKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICA0LCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCA1LCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCA2LCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotICAgIAotICAgIGRlc2NyaWJlKCJyb3RhdGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHJhZCA9IE1hdGguUEkgKiAwLjU7Ci0gICAgICAgIHZhciBheGlzID0gWzEsIDAsIDBdOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5yb3RhdGUob3V0LCBtYXRBLCByYWQsIGF4aXMpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCBNYXRoLmNvcyhyYWQpLCBNYXRoLnNpbihyYWQpLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAtTWF0aC5zaW4ocmFkKSwgTWF0aC5jb3MocmFkKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKLSAgICAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnJvdGF0ZShtYXRBLCBtYXRBLCByYWQsIGF4aXMpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIE1hdGguY29zKHJhZCksIE1hdGguc2luKHJhZCksIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIC1NYXRoLnNpbihyYWQpLCBNYXRoLmNvcyhyYWQpLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInJvdGF0ZVgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHJhZCA9IE1hdGguUEkgKiAwLjU7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnJvdGF0ZVgob3V0LCBtYXRBLCByYWQpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCBNYXRoLmNvcyhyYWQpLCBNYXRoLnNpbihyYWQpLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAtTWF0aC5zaW4ocmFkKSwgTWF0aC5jb3MocmFkKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKLSAgICAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnJvdGF0ZVgobWF0QSwgbWF0QSwgcmFkKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCBNYXRoLmNvcyhyYWQpLCBNYXRoLnNpbihyYWQpLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAtTWF0aC5zaW4ocmFkKSwgTWF0aC5jb3MocmFkKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJyb3RhdGVZIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciByYWQgPSBNYXRoLlBJICogMC41OwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5yb3RhdGVZKG91dCwgbWF0QSwgcmFkKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgTWF0aC5jb3MocmFkKSwgMCwgLU1hdGguc2luKHJhZCksIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIE1hdGguc2luKHJhZCksIDAsIE1hdGguY29zKHJhZCksIDAsCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKLSAgICAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5yb3RhdGVZKG1hdEEsIG1hdEEsIHJhZCk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgTWF0aC5jb3MocmFkKSwgMCwgLU1hdGguc2luKHJhZCksIDAsCi0gICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIE1hdGguc2luKHJhZCksIDAsIE1hdGguY29zKHJhZCksIDAsCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKLSAgICAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgicm90YXRlWiIsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcmFkID0gTWF0aC5QSSAqIDAuNTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQucm90YXRlWihvdXQsIG1hdEEsIHJhZCk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIE1hdGguY29zKHJhZCksIE1hdGguc2luKHJhZCksIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIC1NYXRoLnNpbihyYWQpLCBNYXRoLmNvcyhyYWQpLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQotICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQucm90YXRlWihtYXRBLCBtYXRBLCByYWQpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIE1hdGguY29zKHJhZCksIE1hdGguc2luKHJhZCksIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgIC1NYXRoLnNpbihyYWQpLCBNYXRoLmNvcyhyYWQpLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgLy8gVE9ETzogZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24KLQotICAgIGRlc2NyaWJlKCJmcnVzdHVtIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuZnJ1c3R1bShvdXQsIC0xLCAxLCAtMSwgMSwgLTEsIDEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAtMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAtMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAwLCAwLCAtMSwKLSAgICAgICAgICAgICAgICAwLCAwLCAxLCAwCi0gICAgICAgICAgICBdKTsgCi0gICAgICAgIH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJwZXJzcGVjdGl2ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgZm92eSA9IE1hdGguUEkgKiAwLjU7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQucGVyc3BlY3RpdmUob3V0LCBmb3Z5LCAxLCAwLCAxKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAotICAgICAgICAgICAgICAgIDAsIDAsIC0xLCAtMSwKLSAgICAgICAgICAgICAgICAwLCAwLCAwLCAwCi0gICAgICAgICAgICBdKTsgCi0gICAgICAgIH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJvcnRobyIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0Lm9ydGhvKG91dCwgLTEsIDEsIC0xLCAxLCAtMSwgMSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAwLCAtMSwgMCwKLSAgICAgICAgICAgICAgICAwLCAwLCAwLCAxCi0gICAgICAgICAgICBdKTsgCi0gICAgICAgIH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJsb29rQXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGV5ZSA9IFswLCAwLCAxXTsKLSAgICAgICAgdmFyIGNlbnRlciA9IFswLCAwLCAtMV07Ci0gICAgICAgIHZhciB1cCA9IFswLCAxLCAwXTsKLQotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0Lmxvb2tBdChvdXQsIGV5ZSwgY2VudGVyLCB1cCk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKLSAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAotICAgICAgICAgICAgICAgIDAsIDAsIC0xLCAxCi0gICAgICAgICAgICBdKTsgCi0gICAgICAgIH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzdHIiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5zdHIobWF0QSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJpeCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKCJtYXQ0KDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDAsIDEsIDIsIDMsIDEpIik7IH0pOwotICAgIH0pOwotfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9xdWF0LXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3F1YXQtc3BlYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI4M2NlMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3F1YXQtc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI3MCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotZGVzY3JpYmUoInF1YXQiLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0LCBxdWF0QSwgcXVhdEIsIHJlc3VsdDsKLQotICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHF1YXRBID0gWzEsIDIsIDMsIDRdOyBxdWF0QiA9IFs1LCA2LCA3LCA4XTsgb3V0ID0gWzAsIDAsIDAsIDBdOyB9KTsKLQotICAgIGRlc2NyaWJlKCJjcmVhdGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5jcmVhdGUoKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNCBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIGFuIGlkZW50aXR5IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLCAwLCAwLCAxXSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNsb25lIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuY2xvbmUocXVhdEEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSA0IGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlcyBpbiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2gocXVhdEEpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJmcm9tVmFsdWVzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuZnJvbVZhbHVlcygxLCAyLCAzLCA0KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNCBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgcGFzc2VkIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjb3B5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuY29weShvdXQsIHF1YXRBKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgic2V0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuc2V0KG91dCwgMSwgMiwgMywgNCk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImlkZW50aXR5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuaWRlbnRpdHkob3V0KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMCwgMCwgMCwgMV0pOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgic2V0QXhpc0FuZ2xlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuc2V0QXhpc0FuZ2xlKG91dCwgWzEsIDAsIDBdLCBNYXRoLlBJICogMC41KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMC43MDcxMDYsIDAsIDAsIDAuNzA3MTA2XSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLSAgICAKLSAgICBkZXNjcmliZSgiYWRkIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuYWRkKG91dCwgcXVhdEEsIHF1YXRCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbNiwgOCwgMTAsIDEyXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5hZGQocXVhdEEsIHF1YXRBLCBxdWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFs2LCA4LCAxMCwgMTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRCIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5hZGQocXVhdEIsIHF1YXRBLCBxdWF0Qik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFs2LCA4LCAxMCwgMTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoIm11bHRpcGx5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ211bCciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXQubXVsKS50b0VxdWFsKHF1YXQubXVsdGlwbHkpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0Lm11bHRpcGx5KG91dCwgcXVhdEEsIHF1YXRCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMjQsIDQ4LCA0OCwgLTZdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEIpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gcXVhdEEgaXMgdGhlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0Lm11bHRpcGx5KHF1YXRBLCBxdWF0QSwgcXVhdEIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMjQsIDQ4LCA0OCwgLTZdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRCIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5tdWx0aXBseShxdWF0QiwgcXVhdEEsIHF1YXRCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzI0LCA0OCwgNDgsIC02XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0Qik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzY2FsZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LnNjYWxlKG91dCwgcXVhdEEsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCA0LCA2LCA4XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5zY2FsZShxdWF0QSwgcXVhdEEsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMiwgNCwgNiwgOF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUocXVhdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibGVuZ3RoIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2xlbiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXQubGVuKS50b0VxdWFsKHF1YXQubGVuZ3RoKTsgfSk7Ci0KLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5sZW5ndGgocXVhdEEpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBsZW5ndGgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUNsb3NlVG8oNS40NzcyMjUpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzcXVhcmVkTGVuZ3RoIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ3NxckxlbiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXQuc3FyTGVuKS50b0VxdWFsKHF1YXQuc3F1YXJlZExlbmd0aCk7IH0pOwotCi0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuc3F1YXJlZExlbmd0aChxdWF0QSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIHNxdWFyZWQgbGVuZ3RoIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMzApOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJub3JtYWxpemUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcXVhdEEgPSBbNSwgMCwgMCwgMF07IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQubm9ybWFsaXplKG91dCwgcXVhdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAwLCAwLCAwXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzUsIDAsIDAsIDBdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5ub3JtYWxpemUocXVhdEEsIHF1YXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDAsIDAsIDBdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImxlcnAiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5sZXJwKG91dCwgcXVhdEEsIHF1YXRCLCAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5sZXJwKHF1YXRBLCBxdWF0QSwgcXVhdEIsIDAuNSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFszLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0QSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QiBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQubGVycChxdWF0QiwgcXVhdEEsIHF1YXRCLCAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEIpLnRvQmVFcXVhbGlzaChbMywgNCwgNSwgNl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUocXVhdEIpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICAvKmRlc2NyaWJlKCJzbGVycCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LnNsZXJwKG91dCwgcXVhdEEsIHF1YXRCLCAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5zbGVycChxdWF0QSwgcXVhdEEsIHF1YXRCLCAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMywgNCwgNSwgNl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUocXVhdEEpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEIpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gcXVhdEIgaXMgdGhlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LnNsZXJwKHF1YXRCLCBxdWF0QSwgcXVhdEIsIDAuNSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFszLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0Qik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsqLwotCi0gICAgLy8gVE9ETzogc2xlcnAsIGNhbGN1YXRlVywgcm90YXRlWCwgcm90YXRlWSwgcm90YXRlWgotCi0gICAgZGVzY3JpYmUoImludmVydCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmludmVydChvdXQsIHF1YXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTAuMDMzMzMzLCAtMC4wNjY2NjYsIC0wLjEsIDAuMTMzMzMzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5pbnZlcnQocXVhdEEsIHF1YXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWy0wLjAzMzMzMywgLTAuMDY2NjY2LCAtMC4xLCAwLjEzMzMzM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUocXVhdEEpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiY29uanVnYXRlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuY29uanVnYXRlKG91dCwgcXVhdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFstMSwgLTIsIC0zLCA0XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5jb25qdWdhdGUocXVhdEEsIHF1YXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWy0xLCAtMiwgLTMsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInN0ciIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LnN0cihxdWF0QSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgicXVhdCgxLCAyLCAzLCA0KSIpOyB9KTsKLSAgICB9KTsKLX0pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC92ZWMyLXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzItc3BlYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NkOTU4Yi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzItc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDUwNiArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotZGVzY3JpYmUoInZlYzIiLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0LCB2ZWNBLCB2ZWNCLCByZXN1bHQ7Ci0KLSAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzEsIDJdOyB2ZWNCID0gWzMsIDRdOyBvdXQgPSBbMCwgMF07IH0pOwotCi0gICAgZGVzY3JpYmUoImNyZWF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmNyZWF0ZSgpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSAyIGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gMHMiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLCAwXSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNsb25lIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuY2xvbmUodmVjQSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDIgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byB0aGUgdmFsdWVzIGluIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKHZlY0EpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJmcm9tVmFsdWVzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuZnJvbVZhbHVlcygxLCAyKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgMiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgcGFzc2VkIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjb3B5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuY29weShvdXQsIHZlY0EpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzZXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zZXQob3V0LCAxLCAyKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgfSk7Ci0gICAgCi0gICAgZGVzY3JpYmUoImFkZCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuYWRkKG91dCwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzQsIDZdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmFkZCh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs0LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuYWRkKHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDZdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgCi0gICAgZGVzY3JpYmUoInN1YnRyYWN0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ3N1YiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzIuc3ViKS50b0VxdWFsKHZlYzIuc3VidHJhY3QpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuc3VidHJhY3Qob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTIsIC0yXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zdWJ0cmFjdCh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFstMiwgLTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zdWJ0cmFjdCh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFstMiwgLTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibXVsdGlwbHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnbXVsJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5tdWwpLnRvRXF1YWwodmVjMi5tdWx0aXBseSk7IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5tdWx0aXBseShvdXQsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCA4XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5tdWx0aXBseSh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFszLCA4XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubXVsdGlwbHkodmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgOF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkaXZpZGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnZGl2JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5kaXYpLnRvRXF1YWwodmVjMi5kaXZpZGUpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuZGl2aWRlKG91dCwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzAuMzMzMzMzMywgMC41XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5kaXZpZGUodmVjQSwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMC4zMzMzMzMzLCAwLjVdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5kaXZpZGUodmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMC4zMzMzMzMzLCAwLjVdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibWluIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMSwgNF07IHZlY0IgPSBbMywgMl07IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5taW4ob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgNF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDJdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubWluKHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5taW4odmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCA0XSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJtYXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsxLCA0XTsgdmVjQiA9IFszLCAyXTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm1heChvdXQsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCA0XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5tYXgodmVjQSwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAyXSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm1heCh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNjYWxlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zY2FsZShvdXQsIHZlY0EsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCA0XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnNjYWxlKHZlY0EsIHZlY0EsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzIsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdkaXN0JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5kaXN0KS50b0VxdWFsKHZlYzIuZGlzdGFuY2UpOyB9KTsKLQotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmRpc3RhbmNlKHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbygyLjgyODQyNyk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNxdWFyZWREaXN0YW5jZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdzcXJEaXN0JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5zcXJEaXN0KS50b0VxdWFsKHZlYzIuc3F1YXJlZERpc3RhbmNlKTsgfSk7Ci0KLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zcXVhcmVkRGlzdGFuY2UodmVjQSwgdmVjQik7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIHNxdWFyZWQgZGlzdGFuY2UiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCg4KTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibGVuZ3RoIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2xlbiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzIubGVuKS50b0VxdWFsKHZlYzIubGVuZ3RoKTsgfSk7Ci0KLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5sZW5ndGgodmVjQSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbygyLjIzNjA2Nyk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNxdWFyZWRMZW5ndGgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnc3FyTGVuJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5zcXJMZW4pLnRvRXF1YWwodmVjMi5zcXVhcmVkTGVuZ3RoKTsgfSk7Ci0KLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zcXVhcmVkTGVuZ3RoKHZlY0EpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBzcXVhcmVkIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDUpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJuZWdhdGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm5lZ2F0ZShvdXQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFstMSwgLTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubmVnYXRlKHZlY0EsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWy0xLCAtMl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoIm5vcm1hbGl6ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzUsIDBdOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubm9ybWFsaXplKG91dCwgdmVjQSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDBdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzUsIDBdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubm9ybWFsaXplKHZlY0EsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDBdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkb3QiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5kb3QodmVjQSwgdmVjQik7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRvdCBwcm9kdWN0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMTEpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjcm9zcyIsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgb3V0MzsKLQotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgb3V0MyA9IFswLCAwLCAwXTsKLSAgICAgICAgICAgIHJlc3VsdCA9IHZlYzIuY3Jvc3Mob3V0MywgdmVjQSwgdmVjQik7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQzKS50b0JlRXF1YWxpc2goWzAsIDAsIC0yXSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQzKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibGVycCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubGVycChvdXQsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzIsIDNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmxlcnAodmVjQSwgdmVjQSwgdmVjQiwgMC41KTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsyLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubGVycCh2ZWNCLCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzIsIDNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgidHJhbnNmb3JtTWF0MiIsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgbWF0QTsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgbWF0QSA9IFsxLCAyLCAzLCA0XTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnRyYW5zZm9ybU1hdDIob3V0LCB2ZWNBLCBtYXRBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbNywgMTBdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnRyYW5zZm9ybU1hdDIodmVjQSwgdmVjQSwgbWF0QSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbNywgMTBdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgidHJhbnNmb3JtTWF0MmQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIG1hdEE7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IG1hdEEgPSBbMSwgMiwgMywgNCwgNSwgNl07IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi50cmFuc2Zvcm1NYXQyZChvdXQsIHZlY0EsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxMiwgMTZdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnRyYW5zZm9ybU1hdDJkKHZlY0EsIHZlY0EsIG1hdEEpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEyLCAxNl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJmb3JFYWNoIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB2ZWNBcnJheTsKLQotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmVjQXJyYXkgPSBbCi0gICAgICAgICAgICAgICAgMSwgMiwKLSAgICAgICAgICAgICAgICAzLCA0LAotICAgICAgICAgICAgICAgIDAsIDAKLSAgICAgICAgICAgIF07Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHBlcmZvcm1pbmcgb3BlcmF0aW9ucyB0aGF0IHRha2Ugbm8gZXh0cmEgYXJndW1lbnRzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmZvckVhY2godmVjQXJyYXksIDAsIDAsIDAsIHZlYzIubm9ybWFsaXplKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMiLCBmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAwLjQ0NzIxNCwgMC44OTQ0MjcsCi0gICAgICAgICAgICAgICAgICAgIDAuNiwgMC44LAotICAgICAgICAgICAgICAgICAgICAwLCAwCi0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHBlcmZvcm1pbmcgb3BlcmF0aW9ucyB0aGF0IHRha2VzIG9uZSBleHRyYSBhcmd1bWVudHMiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMCwgdmVjMi5hZGQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMiwgNCwKLSAgICAgICAgICAgICAgICAgICAgNCwgNiwKLSAgICAgICAgICAgICAgICAgICAgMSwgMgotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gc3BlY2lmeWluZyBhbiBvZmZzZXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMiwgMCwgdmVjMi5hZGQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGZpcnN0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwKLSAgICAgICAgICAgICAgICAgICAgNCwgNiwKLSAgICAgICAgICAgICAgICAgICAgMSwgMgotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gc3BlY2lmeWluZyBhIGNvdW50IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmZvckVhY2godmVjQXJyYXksIDAsIDAsIDIsIHZlYzIuYWRkLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBsYXN0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMiwgNCwKLSAgICAgICAgICAgICAgICAgICAgNCwgNiwKLSAgICAgICAgICAgICAgICAgICAgMCwgMAotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gc3BlY2lmeWluZyBhIHN0cmlkZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5mb3JFYWNoKHZlY0FycmF5LCA0LCAwLCAwLCB2ZWMyLmFkZCwgdmVjQSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbGwgdmFsdWVzIGV4Y2VwdCB0aGUgc2Vjb25kIHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMiwgNCwKLSAgICAgICAgICAgICAgICAgICAgMywgNCwKLSAgICAgICAgICAgICAgICAgICAgMSwgMgotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gY2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBvdXQgdmFyaWFibGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzIuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMCwgZnVuY3Rpb24ob3V0LCB2ZWMpIHt9KTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInZhbHVlcyBzaG91bGQgcmVtYWluIHVuY2hhbmdlZCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwKLSAgICAgICAgICAgICAgICAgICAgMywgNCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgic3RyIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuc3RyKHZlY0EpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgidmVjMigxLCAyKSIpOyB9KTsKLSAgICB9KTsKLX0pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC92ZWMzLXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzMtc3BlYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTUxYzY2Yy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzMtc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ3NSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotZGVzY3JpYmUoInZlYzMiLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0LCB2ZWNBLCB2ZWNCLCByZXN1bHQ7Ci0KLSAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzEsIDIsIDNdOyB2ZWNCID0gWzQsIDUsIDZdOyBvdXQgPSBbMCwgMCwgMF07IH0pOwotCi0gICAgZGVzY3JpYmUoImNyZWF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmNyZWF0ZSgpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSAzIGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gMHMiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLCAwLCAwXSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNsb25lIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuY2xvbmUodmVjQSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDMgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byB0aGUgdmFsdWVzIGluIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKHZlY0EpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJmcm9tVmFsdWVzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZnJvbVZhbHVlcygxLCAyLCAzKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgMyBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgcGFzc2VkIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjb3B5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuY29weShvdXQsIHZlY0EpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzZXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5zZXQob3V0LCAxLCAyLCAzKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgfSk7Ci0gICAgCi0gICAgZGVzY3JpYmUoImFkZCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuYWRkKG91dCwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzUsIDcsIDldKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmFkZCh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs1LCA3LCA5XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuYWRkKHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDcsIDldKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgCi0gICAgZGVzY3JpYmUoInN1YnRyYWN0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ3N1YiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzMuc3ViKS50b0VxdWFsKHZlYzMuc3VidHJhY3QpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuc3VidHJhY3Qob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTMsIC0zLCAtM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuc3VidHJhY3QodmVjQSwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbLTMsIC0zLCAtM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnN1YnRyYWN0KHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWy0zLCAtMywgLTNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibXVsdGlwbHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnbXVsJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMy5tdWwpLnRvRXF1YWwodmVjMy5tdWx0aXBseSk7IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5tdWx0aXBseShvdXQsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFs0LCAxMCwgMThdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLm11bHRpcGx5KHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzQsIDEwLCAxOF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLm11bHRpcGx5KHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDEwLCAxOF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkaXZpZGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnZGl2JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMy5kaXYpLnRvRXF1YWwodmVjMy5kaXZpZGUpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZGl2aWRlKG91dCwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzAuMjUsIDAuNCwgMC41XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5kaXZpZGUodmVjQSwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMC4yNSwgMC40LCAwLjVdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5kaXZpZGUodmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMC4yNSwgMC40LCAwLjVdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibWluIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMSwgMywgMV07IHZlY0IgPSBbMywgMSwgM107IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5taW4ob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMSwgMV0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMywgMV0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDEsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubWluKHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDEsIDFdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMSwgM10pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5taW4odmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMSwgMSwgMV0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAzLCAxXSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJtYXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsxLCAzLCAxXTsgdmVjQiA9IFszLCAxLCAzXTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLm1heChvdXQsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCAzLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAzLCAxXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMSwgM10pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5tYXgodmVjQSwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMywgMywgM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAxLCAzXSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLm1heCh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAzLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDMsIDFdKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNjYWxlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5zY2FsZShvdXQsIHZlY0EsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCA0LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnNjYWxlKHZlY0EsIHZlY0EsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzIsIDQsIDZdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdkaXN0JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMy5kaXN0KS50b0VxdWFsKHZlYzMuZGlzdGFuY2UpOyB9KTsKLQotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmRpc3RhbmNlKHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbyg1LjE5NjE1Mik7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNxdWFyZWREaXN0YW5jZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdzcXJEaXN0JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMy5zcXJEaXN0KS50b0VxdWFsKHZlYzMuc3F1YXJlZERpc3RhbmNlKTsgfSk7Ci0KLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5zcXVhcmVkRGlzdGFuY2UodmVjQSwgdmVjQik7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIHNxdWFyZWQgZGlzdGFuY2UiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgyNyk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImxlbmd0aCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdsZW4nIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMzLmxlbikudG9FcXVhbCh2ZWMzLmxlbmd0aCk7IH0pOwotCi0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubGVuZ3RoKHZlY0EpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBsZW5ndGgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUNsb3NlVG8oMy43NDE2NTcpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzcXVhcmVkTGVuZ3RoIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ3NxckxlbiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzMuc3FyTGVuKS50b0VxdWFsKHZlYzMuc3F1YXJlZExlbmd0aCk7IH0pOwotCi0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuc3F1YXJlZExlbmd0aCh2ZWNBKTsgfSk7Ci0gICAgICAgIAotICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgc3F1YXJlZCBsZW5ndGgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgxNCk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoIm5lZ2F0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubmVnYXRlKG91dCwgdmVjQSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWy0xLCAtMiwgLTNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubmVnYXRlKHZlY0EsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWy0xLCAtMiwgLTNdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJub3JtYWxpemUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFs1LCAwLCAwXTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLm5vcm1hbGl6ZShvdXQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAwLCAwXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs1LCAwLCAwXSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLm5vcm1hbGl6ZSh2ZWNBLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAwLCAwXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiZG90IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZG90KHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkb3QgcHJvZHVjdCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDMyKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgiY3Jvc3MiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmNyb3NzKG91dCwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWy0zLCA2LCAtM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuY3Jvc3ModmVjQSwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbLTMsIDYsIC0zXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuY3Jvc3ModmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbLTMsIDYsIC0zXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImxlcnAiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmxlcnAob3V0LCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLjUsIDMuNSwgNC41XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5sZXJwKHZlY0EsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMi41LCAzLjUsIDQuNV0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmxlcnAodmVjQiwgdmVjQSwgdmVjQiwgMC41KTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFsyLjUsIDMuNSwgNC41XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImZvckVhY2giLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHZlY0FycmF5OwotCi0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB2ZWNBcnJheSA9IFsKLSAgICAgICAgICAgICAgICAxLCAyLCAzLAotICAgICAgICAgICAgICAgIDQsIDUsIDYsCi0gICAgICAgICAgICAgICAgMCwgMCwgMAotICAgICAgICAgICAgXTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgdGFrZSBubyBleHRyYSBhcmd1bWVudHMiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMCwgdmVjMy5ub3JtYWxpemUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDAuMjY3MjYxLCAwLjUzNDUyMiwgMC44MDE3ODMsIAotICAgICAgICAgICAgICAgICAgICAwLjQ1NTg0MiwgMC41Njk4MDIsIDAuNjgzNzYzLCAKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMAotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBwZXJmb3JtaW5nIG9wZXJhdGlvbnMgdGhhdCB0YWtlcyBvbmUgZXh0cmEgYXJndW1lbnRzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmZvckVhY2godmVjQXJyYXksIDAsIDAsIDAsIHZlYzMuYWRkLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDIsIDQsIDYsCi0gICAgICAgICAgICAgICAgICAgIDUsIDcsIDksCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHNwZWNpZnlpbmcgYW4gb2Zmc2V0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmZvckVhY2godmVjQXJyYXksIDAsIDMsIDAsIHZlYzMuYWRkLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBmaXJzdCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsCi0gICAgICAgICAgICAgICAgICAgIDUsIDcsIDksCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHNwZWNpZnlpbmcgYSBjb3VudCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5mb3JFYWNoKHZlY0FycmF5LCAwLCAwLCAyLCB2ZWMzLmFkZCwgdmVjQSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbGwgdmFsdWVzIGV4Y2VwdCB0aGUgbGFzdCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDIsIDQsIDYsCi0gICAgICAgICAgICAgICAgICAgIDUsIDcsIDksCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDAKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHNwZWNpZnlpbmcgYSBzdHJpZGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZm9yRWFjaCh2ZWNBcnJheSwgNiwgMCwgMCwgdmVjMy5hZGQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyBleGNlcHQgdGhlIHNlY29uZCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDIsIDQsIDYsCi0gICAgICAgICAgICAgICAgICAgIDQsIDUsIDYsCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIGNhbGxpbmcgYSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgb3V0IHZhcmlhYmxlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICByZXN1bHQgPSB2ZWMzLmZvckVhY2godmVjQXJyYXksIDAsIDAsIDAsIGZ1bmN0aW9uKG91dCwgdmVjKSB7fSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJ2YWx1ZXMgc2hvdWxkIHJlbWFpbiB1bmNoYW5nZWQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsCi0gICAgICAgICAgICAgICAgICAgIDQsIDUsIDYsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDAKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgic3RyIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuc3RyKHZlY0EpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgidmVjMygxLCAyLCAzKSIpOyB9KTsKLSAgICB9KTsKLX0pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC92ZWM0LXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzQtc3BlYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NjNWJiOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzQtc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ0OCArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotZGVzY3JpYmUoInZlYzQiLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0LCB2ZWNBLCB2ZWNCLCByZXN1bHQ7Ci0KLSAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzEsIDIsIDMsIDRdOyB2ZWNCID0gWzUsIDYsIDcsIDhdOyBvdXQgPSBbMCwgMCwgMCwgMF07IH0pOwotCi0gICAgZGVzY3JpYmUoImNyZWF0ZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmNyZWF0ZSgpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSA0IGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gMHMiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLCAwLCAwLCAwXSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImNsb25lIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuY2xvbmUodmVjQSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDQgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byB0aGUgdmFsdWVzIGluIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKHZlY0EpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJmcm9tVmFsdWVzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZnJvbVZhbHVlcygxLCAyLCAzLCA0KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNCBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgcGFzc2VkIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJjb3B5IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuY29weShvdXQsIHZlY0EpOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzZXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5zZXQob3V0LCAxLCAyLCAzLCA0KTsgfSk7Ci0gICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgfSk7Ci0gICAgCi0gICAgZGVzY3JpYmUoImFkZCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuYWRkKG91dCwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzYsIDgsIDEwLCAxMl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuYWRkKHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzYsIDgsIDEwLCAxMl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmFkZCh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs2LCA4LCAxMCwgMTJdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgCi0gICAgZGVzY3JpYmUoInN1YnRyYWN0IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ3N1YiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzQuc3ViKS50b0VxdWFsKHZlYzQuc3VidHJhY3QpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuc3VidHJhY3Qob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTQsIC00LCAtNCwgLTRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnN1YnRyYWN0KHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWy00LCAtNCwgLTQsIC00XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuc3VidHJhY3QodmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbLTQsIC00LCAtNCwgLTRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibXVsdGlwbHkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnbXVsJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjNC5tdWwpLnRvRXF1YWwodmVjNC5tdWx0aXBseSk7IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5tdWx0aXBseShvdXQsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFs1LCAxMiwgMjEsIDMyXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5tdWx0aXBseSh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs1LCAxMiwgMjEsIDMyXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubXVsdGlwbHkodmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNSwgMTIsIDIxLCAzMl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkaXZpZGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnZGl2JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjNC5kaXYpLnRvRXF1YWwodmVjNC5kaXZpZGUpOyB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZGl2aWRlKG91dCwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzAuMiwgMC4zMzMzMzMsIDAuNDI4NTcxLCAwLjVdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmRpdmlkZSh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFswLjIsIDAuMzMzMzMzLCAwLjQyODU3MSwgMC41XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZGl2aWRlKHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzAuMiwgMC4zMzMzMzMsIDAuNDI4NTcxLCAwLjVdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibWluIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMSwgMywgMSwgM107IHZlY0IgPSBbMywgMSwgMywgMV07IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5taW4ob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMSwgMSwgMV0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMywgMSwgM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDEsIDMsIDFdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubWluKHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDEsIDEsIDFdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMSwgMywgMV0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5taW4odmVjQiwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMSwgMSwgMSwgMV0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAzLCAxLCAzXSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJtYXgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsxLCAzLCAxLCAzXTsgdmVjQiA9IFszLCAxLCAzLCAxXTsgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lm1heChvdXQsIHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCAzLCAzLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAzLCAxLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMSwgMywgMV0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5tYXgodmVjQSwgdmVjQSwgdmVjQik7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMywgMywgMywgM10pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAxLCAzLCAxXSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lm1heCh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAzLCAzLCAzXSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDMsIDEsIDNdKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNjYWxlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5zY2FsZShvdXQsIHZlY0EsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCA0LCA2LCA4XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnNjYWxlKHZlY0EsIHZlY0EsIDIpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzIsIDQsIDYsIDhdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdkaXN0JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjNC5kaXN0KS50b0VxdWFsKHZlYzQuZGlzdGFuY2UpOyB9KTsKLQotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmRpc3RhbmNlKHZlY0EsIHZlY0IpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbyg4KTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgic3F1YXJlZERpc3RhbmNlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ3NxckRpc3QnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWM0LnNxckRpc3QpLnRvRXF1YWwodmVjNC5zcXVhcmVkRGlzdGFuY2UpOyB9KTsKLQotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnNxdWFyZWREaXN0YW5jZSh2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgIAotICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgc3F1YXJlZCBkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDY0KTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibGVuZ3RoIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2xlbiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzQubGVuKS50b0VxdWFsKHZlYzQubGVuZ3RoKTsgfSk7Ci0KLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5sZW5ndGgodmVjQSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbyg1LjQ3NzIyNSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoInNxdWFyZWRMZW5ndGgiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnc3FyTGVuJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjNC5zcXJMZW4pLnRvRXF1YWwodmVjNC5zcXVhcmVkTGVuZ3RoKTsgfSk7Ci0KLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5zcXVhcmVkTGVuZ3RoKHZlY0EpOyB9KTsKLSAgICAgICAgCi0gICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBzcXVhcmVkIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDMwKTsgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibmVnYXRlIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5uZWdhdGUob3V0LCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTEsIC0yLCAtMywgLTRdKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubmVnYXRlKHZlY0EsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWy0xLCAtMiwgLTMsIC00XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgibm9ybWFsaXplIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbNSwgMCwgMCwgMF07IH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5ub3JtYWxpemUob3V0LCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMCwgMCwgMF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbNSwgMCwgMCwgMF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5ub3JtYWxpemUodmVjQSwgdmVjQSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMCwgMCwgMF0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImRvdCIsIGZ1bmN0aW9uKCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmRvdCh2ZWNBLCB2ZWNCKTsgfSk7Ci0gICAgICAgIAotICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgZG90IHByb2R1Y3QiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCg3MCk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImxlcnAiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmxlcnAob3V0LCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5sZXJwKHZlY0EsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMywgNCwgNSwgNl0pOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmxlcnAodmVjQiwgdmVjQSwgdmVjQiwgMC41KTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0LCA1LCA2XSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoImZvckVhY2giLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHZlY0FycmF5OwotCi0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB2ZWNBcnJheSA9IFsKLSAgICAgICAgICAgICAgICAxLCAyLCAzLCA0LAotICAgICAgICAgICAgICAgIDUsIDYsIDcsIDgsCi0gICAgICAgICAgICAgICAgMCwgMCwgMCwgMAotICAgICAgICAgICAgXTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgdGFrZSBubyBleHRyYSBhcmd1bWVudHMiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMCwgdmVjNC5ub3JtYWxpemUpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyIsIGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDAuMTgyNTc0LCAwLjM2NTE0OCwgMC41NDc3MjIsIDAuNzMwMjk2LAotICAgICAgICAgICAgICAgICAgICAwLjM3OTA0OSwgMC40NTQ4NTgsIDAuNTMwNjY4LCAwLjYwNjQ3OCwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMAotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBwZXJmb3JtaW5nIG9wZXJhdGlvbnMgdGhhdCB0YWtlcyBvbmUgZXh0cmEgYXJndW1lbnRzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmZvckVhY2godmVjQXJyYXksIDAsIDAsIDAsIHZlYzQuYWRkLCB2ZWNBKTsgfSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDIsIDQsIDYsIDgsCi0gICAgICAgICAgICAgICAgICAgIDYsIDgsIDEwLCAxMiwKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgNAotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoIndoZW4gc3BlY2lmeWluZyBhbiBvZmZzZXQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZm9yRWFjaCh2ZWNBcnJheSwgMCwgNCwgMCwgdmVjNC5hZGQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGZpcnN0IHZlY3RvciIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKLSAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgNCwKLSAgICAgICAgICAgICAgICAgICAgNiwgOCwgMTAsIDEyLAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCA0Ci0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGEgY291bnQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMiwgdmVjNC5hZGQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGxhc3QgdmVjdG9yIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAyLCA0LCA2LCA4LAotICAgICAgICAgICAgICAgICAgICA2LCA4LCAxMCwgMTIsCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAKLSAgICAgICAgICAgICAgICBdKTsgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKLSAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHNwZWNpZnlpbmcgYSBzdHJpZGUiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZm9yRWFjaCh2ZWNBcnJheSwgOCwgMCwgMCwgdmVjNC5hZGQsIHZlY0EpOyB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyBleGNlcHQgdGhlIHNlY29uZCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCi0gICAgICAgICAgICAgICAgICAgIDIsIDQsIDYsIDgsCi0gICAgICAgICAgICAgICAgICAgIDUsIDYsIDcsIDgsIAotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCA0Ci0gICAgICAgICAgICAgICAgXSk7IAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7Ci0gICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgid2hlbiBjYWxsaW5nIGEgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIG91dCB2YXJpYWJsZSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdmVjMy5mb3JFYWNoKHZlY0FycmF5LCAwLCAwLCAwLCBmdW5jdGlvbihvdXQsIHZlYykge30pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpdCgidmFsdWVzIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWwotICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCA0LAotICAgICAgICAgICAgICAgICAgICA1LCA2LCA3LCA4LCAKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMAotICAgICAgICAgICAgICAgIF0pOyAKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCJzdHIiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5zdHIodmVjQSk7IH0pOwotICAgICAgICAKLSAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZlY3RvciIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKCJ2ZWM0KDEsIDIsIDMsIDQpIik7IH0pOwotICAgIH0pOwotfSk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvaGVscGVycy9ub2RlLWhlbHBlci5qcyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9oZWxwZXJzL25vZGUtaGVscGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGM5YWFjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9oZWxwZXJzL25vZGUtaGVscGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1pZiAodHlwZW9mKGV4cG9ydHMpICE9PSAndW5kZWZpbmVkJykgewotICB2YXIgZ2xtID0gcmVxdWlyZSgiLi4vLi4vZGlzdC9nbC1tYXRyaXgiKTsKLSAgZm9yICh2YXIgbnMgaW4gZ2xtKSB7Ci0gICAgZ2xvYmFsW25zXSA9IGdsbVtuc107Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9qYXNtaW5lLnltbCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9qYXNtaW5lLnltbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjUyM2E3ZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvamFzbWluZS55bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0jIHNyY19maWxlcwotIwotIyBSZXR1cm4gYW4gYXJyYXkgb2YgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNyY19kaXIgdG8gaW5jbHVkZSBiZWZvcmUgamFzbWluZSBzcGVjcy4KLSMgRGVmYXVsdDogW10KLSMKLSMgRVhBTVBMRToKLSMKLSMgc3JjX2ZpbGVzOgotIyAgIC0gbGliL3NvdXJjZTEuanMKLSMgICAtIGxpYi9zb3VyY2UyLmpzCi0jICAgLSBkaXN0LyoqLyouanMKLSMKLXNyY19maWxlczoKLSAgICAtIGRpc3QvZ2wtbWF0cml4LmpzCi0KLSMgc3R5bGVzaGVldHMKLSMKLSMgUmV0dXJuIGFuIGFycmF5IG9mIHN0eWxlc2hlZXQgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNyY19kaXIgdG8gaW5jbHVkZSBiZWZvcmUgamFzbWluZSBzcGVjcy4KLSMgRGVmYXVsdDogW10KLSMKLSMgRVhBTVBMRToKLSMKLSMgc3R5bGVzaGVldHM6Ci0jICAgLSBjc3Mvc3R5bGUuY3NzCi0jICAgLSBzdHlsZXNoZWV0cy8qLmNzcwotIwotc3R5bGVzaGVldHM6Ci0KLSMgaGVscGVycwotIwotIyBSZXR1cm4gYW4gYXJyYXkgb2YgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNwZWNfZGlyIHRvIGluY2x1ZGUgYmVmb3JlIGphc21pbmUgc3BlY3MuCi0jIERlZmF1bHQ6IFsiaGVscGVycy8qKi8qLmpzIl0KLSMKLSMgRVhBTVBMRToKLSMKLSMgaGVscGVyczoKLSMgICAtIGhlbHBlcnMvKiovKi5qcwotIwotaGVscGVyczoKLQotIyBzcGVjX2ZpbGVzCi0jCi0jICBSZXR1cm4gYW4gYXJyYXkgb2YgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNwZWNfZGlyIHRvIGluY2x1ZGUuCi0jIERlZmF1bHQ6IFsiKiovKltzU11wZWMuanMiXQotIwotIyBFWEFNUExFOgotIwotIyBzcGVjX2ZpbGVzOgotIyAgIC0gKiovKltzU11wZWMuanMKLSMKLXNwZWNfZmlsZXM6Ci0KLSMgc3JjX2RpcgotIwotIyBTb3VyY2UgZGlyZWN0b3J5IHBhdGguIFlvdXIgc3JjX2ZpbGVzIG11c3QgYmUgcmV0dXJuZWQgcmVsYXRpdmUgdG8gdGhpcyBwYXRoLiBXaWxsIHVzZSByb290IGlmIGxlZnQgYmxhbmsuCi0jIERlZmF1bHQ6IHByb2plY3Qgcm9vdAotIwotIyBFWEFNUExFOgotIwotIyBzcmNfZGlyOiBwdWJsaWMKLSMKLXNyY19kaXI6Ci0KLSMgc3BlY19kaXIKLSMKLSMgU3BlYyBkaXJlY3RvcnkgcGF0aC4gWW91ciBzcGVjX2ZpbGVzIG11c3QgYmUgcmV0dXJuZWQgcmVsYXRpdmUgdG8gdGhpcyBwYXRoLgotIyBEZWZhdWx0OiBzcGVjL2phdmFzY3JpcHRzCi0jCi0jIEVYQU1QTEU6Ci0jCi0jIHNwZWNfZGlyOiBzcGVjL2phdmFzY3JpcHRzCi0jCi1zcGVjX2Rpcjogc3BlYwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4LW1hbmlmZXN0LmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4LW1hbmlmZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjA2OTY2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC1tYW5pZmVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS8vPSByZXF1aXJlICdnbC1tYXRyaXgvY29tbW9uLmpzJwotCi0vLz0gcmVxdWlyZSAnZ2wtbWF0cml4L3ZlYzIuanMnCi0vLz0gcmVxdWlyZSAnZ2wtbWF0cml4L3ZlYzMuanMnCi0vLz0gcmVxdWlyZSAnZ2wtbWF0cml4L3ZlYzQuanMnCi0KLS8vPSByZXF1aXJlICdnbC1tYXRyaXgvbWF0Mi5qcycKLS8vPSByZXF1aXJlICdnbC1tYXRyaXgvbWF0MmQuanMnCi0vLz0gcmVxdWlyZSAnZ2wtbWF0cml4L21hdDMuanMnCi0vLz0gcmVxdWlyZSAnZ2wtbWF0cml4L21hdDQuanMnCi0KLS8vPSByZXF1aXJlICdnbC1tYXRyaXgvcXVhdC5qcycKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC5qcy5lcmIgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXguanMuZXJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmZmMDhmLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC5qcy5lcmIKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgZ2wtbWF0cml4IC0gSGlnaCBwZXJmb3JtYW5jZSBtYXRyaXggYW5kIHZlY3RvciBvcGVyYXRpb25zCi0gKiBAYXV0aG9yIEJyYW5kb24gSm9uZXMKLSAqIEBhdXRob3IgQ29saW4gTWFjS2VuemllIElWCi0gKiBAdmVyc2lvbiAyLjEuMAotICovCi0KLS8qIENvcHlyaWdodCAoYykgMjAxMywgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gCi0gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAqLwotCi0oZnVuY3Rpb24oKSB7Ci0gICJ1c2Ugc3RyaWN0IjsKLQotICB2YXIgc2hpbSA9IHt9OwotICBpZiAodHlwZW9mKGV4cG9ydHMpID09PSAndW5kZWZpbmVkJykgewotICAgIGlmKHR5cGVvZiBkZWZpbmUgPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PSAnb2JqZWN0JyAmJiBkZWZpbmUuYW1kKSB7Ci0gICAgICBzaGltLmV4cG9ydHMgPSB7fTsKLSAgICAgIGRlZmluZShmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIHNoaW0uZXhwb3J0czsKLSAgICAgIH0pOwotICAgIH0gZWxzZSB7Ci0gICAgICAvLyBnbC1tYXRyaXggbGl2ZXMgaW4gYSBicm93c2VyLCBkZWZpbmUgaXRzIG5hbWVzcGFjZXMgaW4gZ2xvYmFsCi0gICAgICBzaGltLmV4cG9ydHMgPSB3aW5kb3c7Ci0gICAgfSAgICAKLSAgfQotICBlbHNlIHsKLSAgICAvLyBnbC1tYXRyaXggbGl2ZXMgaW4gY29tbW9uanMsIGRlZmluZSBpdHMgbmFtZXNwYWNlcyBpbiBleHBvcnRzCi0gICAgc2hpbS5leHBvcnRzID0gZXhwb3J0czsKLSAgfQotCi0gIChmdW5jdGlvbihleHBvcnRzKSB7Ci0gICAgPCU9IEdMTWF0cml4LnNwcm9ja2V0c1snZ2wtbWF0cml4LW1hbmlmZXN0LmpzJ10gJT4KLSAgfSkoc2hpbS5leHBvcnRzKTsKLX0pKCk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvY29tbW9uLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L2NvbW1vbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFiMjFjNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvY29tbW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLWlmKCFHTE1BVF9FUFNJTE9OKSB7Ci0gICAgdmFyIEdMTUFUX0VQU0lMT04gPSAwLjAwMDAwMTsKLX0KLQotaWYoIUdMTUFUX0FSUkFZX1RZUEUpIHsKLSAgICB2YXIgR0xNQVRfQVJSQVlfVFlQRSA9ICh0eXBlb2YgRmxvYXQzMkFycmF5ICE9PSAndW5kZWZpbmVkJykgPyBGbG9hdDMyQXJyYXkgOiBBcnJheTsKLX0KLQotLyoqCi0gKiBAY2xhc3MgQ29tbW9uIHV0aWxpdGllcwotICogQG5hbWUgZ2xNYXRyaXgKLSAqLwotdmFyIGdsTWF0cml4ID0ge307Ci0KLS8qKgotICogU2V0cyB0aGUgdHlwZSBvZiBhcnJheSB1c2VkIHdoZW4gY3JlYXRpbmcgbmV3IHZlY3RvcnMgYW5kIG1hdHJpY2llcwotICoKLSAqIEBwYXJhbSB7VHlwZX0gdHlwZSBBcnJheSB0eXBlLCBzdWNoIGFzIEZsb2F0MzJBcnJheSBvciBBcnJheQotICovCi1nbE1hdHJpeC5zZXRNYXRyaXhBcnJheVR5cGUgPSBmdW5jdGlvbih0eXBlKSB7Ci0gICAgR0xNQVRfQVJSQVlfVFlQRSA9IHR5cGU7Ci19Ci0KLWlmKHR5cGVvZihleHBvcnRzKSAhPT0gJ3VuZGVmaW5lZCcpIHsKLSAgICBleHBvcnRzLmdsTWF0cml4ID0gZ2xNYXRyaXg7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDIuanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0Mi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjIwOGIxMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0Mi5qcworKysgL2Rldi9udWxsCkBAIC0xLDIzNyArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKLWFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIAotICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSAKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gKi8KLQotLyoqCi0gKiBAY2xhc3MgMngyIE1hdHJpeAotICogQG5hbWUgbWF0MgotICovCi12YXIgbWF0MiA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgbWF0MgotICoKLSAqIEByZXR1cm5zIHttYXQyfSBhIG5ldyAyeDIgbWF0cml4Ci0gKi8KLW1hdDIuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDQpOwotICAgIG91dFswXSA9IDE7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDE7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldyBtYXQyIGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgbWF0cml4Ci0gKgotICogQHBhcmFtIHttYXQyfSBhIG1hdHJpeCB0byBjbG9uZQotICogQHJldHVybnMge21hdDJ9IGEgbmV3IDJ4MiBtYXRyaXgKLSAqLwotbWF0Mi5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoNCk7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MiB0byBhbm90aGVyCi0gKgotICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDJ9IG91dAotICovCi1tYXQyLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNldCBhIG1hdDIgdG8gdGhlIGlkZW50aXR5IG1hdHJpeAotICoKLSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0Mn0gb3V0Ci0gKi8KLW1hdDIuaWRlbnRpdHkgPSBmdW5jdGlvbihvdXQpIHsKLSAgICBvdXRbMF0gPSAxOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zcG9zZSB0aGUgdmFsdWVzIG9mIGEgbWF0MgotICoKLSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQyfSBvdXQKLSAqLwotbWF0Mi50cmFuc3Bvc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICAvLyBJZiB3ZSBhcmUgdHJhbnNwb3Npbmcgb3Vyc2VsdmVzIHdlIGNhbiBza2lwIGEgZmV3IHN0ZXBzIGJ1dCBoYXZlIHRvIGNhY2hlIHNvbWUgdmFsdWVzCi0gICAgaWYgKG91dCA9PT0gYSkgewotICAgICAgICB2YXIgYTEgPSBhWzFdOwotICAgICAgICBvdXRbMV0gPSBhWzJdOwotICAgICAgICBvdXRbMl0gPSBhMTsKLSAgICB9IGVsc2UgewotICAgICAgICBvdXRbMF0gPSBhWzBdOwotICAgICAgICBvdXRbMV0gPSBhWzJdOwotICAgICAgICBvdXRbMl0gPSBhWzFdOwotICAgICAgICBvdXRbM10gPSBhWzNdOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBJbnZlcnRzIGEgbWF0MgotICoKLSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQyfSBvdXQKLSAqLwotbWF0Mi5pbnZlcnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLAotCi0gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKLSAgICAgICAgZGV0ID0gYTAgKiBhMyAtIGEyICogYTE7Ci0KLSAgICBpZiAoIWRldCkgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0gICAgZGV0ID0gMS4wIC8gZGV0OwotICAgIAotICAgIG91dFswXSA9ICBhMyAqIGRldDsKLSAgICBvdXRbMV0gPSAtYTEgKiBkZXQ7Ci0gICAgb3V0WzJdID0gLWEyICogZGV0OwotICAgIG91dFszXSA9ICBhMCAqIGRldDsKLQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGFkanVnYXRlIG9mIGEgbWF0MgotICoKLSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQyfSBvdXQKLSAqLwotbWF0Mi5hZGpvaW50ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgLy8gQ2FjaGluZyB0aGlzIHZhbHVlIGlzIG5lc3NlY2FyeSBpZiBvdXQgPT0gYQotICAgIHZhciBhMCA9IGFbMF07Ci0gICAgb3V0WzBdID0gIGFbM107Ci0gICAgb3V0WzFdID0gLWFbMV07Ci0gICAgb3V0WzJdID0gLWFbMl07Ci0gICAgb3V0WzNdID0gIGEwOwotCi0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgZGV0ZXJtaW5hbnQgb2YgYSBtYXQyCi0gKgotICogQHBhcmFtIHttYXQyfSBhIHRoZSBzb3VyY2UgbWF0cml4Ci0gKiBAcmV0dXJucyB7TnVtYmVyfSBkZXRlcm1pbmFudCBvZiBhCi0gKi8KLW1hdDIuZGV0ZXJtaW5hbnQgPSBmdW5jdGlvbiAoYSkgewotICAgIHJldHVybiBhWzBdICogYVszXSAtIGFbMl0gKiBhWzFdOwotfTsKLQotLyoqCi0gKiBNdWx0aXBsaWVzIHR3byBtYXQyJ3MKLSAqCi0gKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge21hdDJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7bWF0Mn0gb3V0Ci0gKi8KLW1hdDIubXVsdGlwbHkgPSBmdW5jdGlvbiAob3V0LCBhLCBiKSB7Ci0gICAgdmFyIGEwID0gYVswXSwgYTEgPSBhWzFdLCBhMiA9IGFbMl0sIGEzID0gYVszXTsKLSAgICB2YXIgYjAgPSBiWzBdLCBiMSA9IGJbMV0sIGIyID0gYlsyXSwgYjMgPSBiWzNdOwotICAgIG91dFswXSA9IGEwICogYjAgKyBhMSAqIGIyOwotICAgIG91dFsxXSA9IGEwICogYjEgKyBhMSAqIGIzOwotICAgIG91dFsyXSA9IGEyICogYjAgKyBhMyAqIGIyOwotICAgIG91dFszXSA9IGEyICogYjEgKyBhMyAqIGIzOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgbWF0Mi5tdWx0aXBseX0KLSAqIEBmdW5jdGlvbgotICovCi1tYXQyLm11bCA9IG1hdDIubXVsdGlwbHk7Ci0KLS8qKgotICogUm90YXRlcyBhIG1hdDIgYnkgdGhlIGdpdmVuIGFuZ2xlCi0gKgotICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQyfSBvdXQKLSAqLwotbWF0Mi5yb3RhdGUgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKLSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLAotICAgICAgICBzID0gTWF0aC5zaW4ocmFkKSwKLSAgICAgICAgYyA9IE1hdGguY29zKHJhZCk7Ci0gICAgb3V0WzBdID0gYTAgKiAgYyArIGExICogczsKLSAgICBvdXRbMV0gPSBhMCAqIC1zICsgYTEgKiBjOwotICAgIG91dFsyXSA9IGEyICogIGMgKyBhMyAqIHM7Ci0gICAgb3V0WzNdID0gYTIgKiAtcyArIGEzICogYzsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTY2FsZXMgdGhlIG1hdDIgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzIKLSAqCi0gKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCi0gKiBAcGFyYW0ge3ZlYzJ9IHYgdGhlIHZlYzIgdG8gc2NhbGUgdGhlIG1hdHJpeCBieQotICogQHJldHVybnMge21hdDJ9IG91dAotICoqLwotbWF0Mi5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgdikgewotICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sCi0gICAgICAgIHYwID0gdlswXSwgdjEgPSB2WzFdOwotICAgIG91dFswXSA9IGEwICogdjA7Ci0gICAgb3V0WzFdID0gYTEgKiB2MTsKLSAgICBvdXRbMl0gPSBhMiAqIHYwOwotICAgIG91dFszXSA9IGEzICogdjE7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIG1hdDIKLSAqCi0gKiBAcGFyYW0ge21hdDJ9IG1hdCBtYXRyaXggdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCi0gKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJpeAotICovCi1tYXQyLnN0ciA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgcmV0dXJuICdtYXQyKCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyBhWzNdICsgJyknOwotfTsKLQotaWYodHlwZW9mKGV4cG9ydHMpICE9PSAndW5kZWZpbmVkJykgewotICAgIGV4cG9ydHMubWF0MiA9IG1hdDI7Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0MmQuanMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0MmQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0ODY5NzIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDJkLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjUzICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMywgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gCi0gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAqLwotCi0vKioKLSAqIEBjbGFzcyAyeDMgTWF0cml4Ci0gKiBAbmFtZSBtYXQyZAotICogCi0gKiBAZGVzY3JpcHRpb24gCi0gKiBBIG1hdDJkIGNvbnRhaW5zIHNpeCBlbGVtZW50cyBkZWZpbmVkIGFzOgotICogPHByZT4KLSAqIFthLCBiLAotICogIGMsIGQsCi0gKiAgdHgsdHldCi0gKiA8L3ByZT4KLSAqIFRoaXMgaXMgYSBzaG9ydCBmb3JtIGZvciB0aGUgM3gzIG1hdHJpeDoKLSAqIDxwcmU+Ci0gKiBbYSwgYiwgMAotICogIGMsIGQsIDAKLSAqICB0eCx0eSwxXQotICogPC9wcmU+Ci0gKiBUaGUgbGFzdCBjb2x1bW4gaXMgaWdub3JlZCBzbyB0aGUgYXJyYXkgaXMgc2hvcnRlciBhbmQgb3BlcmF0aW9ucyBhcmUgZmFzdGVyLgotICovCi12YXIgbWF0MmQgPSB7fTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IG1hdDJkCi0gKgotICogQHJldHVybnMge21hdDJkfSBhIG5ldyAyeDMgbWF0cml4Ci0gKi8KLW1hdDJkLmNyZWF0ZSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSg2KTsKLSAgICBvdXRbMF0gPSAxOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAxOwotICAgIG91dFs0XSA9IDA7Ci0gICAgb3V0WzVdID0gMDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IG1hdDJkIGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgbWF0cml4Ci0gKgotICogQHBhcmFtIHttYXQyZH0gYSBtYXRyaXggdG8gY2xvbmUKLSAqIEByZXR1cm5zIHttYXQyZH0gYSBuZXcgMngzIG1hdHJpeAotICovCi1tYXQyZC5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoNik7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICBvdXRbNF0gPSBhWzRdOwotICAgIG91dFs1XSA9IGFbNV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIG1hdDJkIHRvIGFub3RoZXIKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQyZH0gb3V0Ci0gKi8KLW1hdDJkLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIG91dFs0XSA9IGFbNF07Ci0gICAgb3V0WzVdID0gYVs1XTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTZXQgYSBtYXQyZCB0byB0aGUgaWRlbnRpdHkgbWF0cml4Ci0gKgotICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0MmR9IG91dAotICovCi1tYXQyZC5pZGVudGl0eSA9IGZ1bmN0aW9uKG91dCkgewotICAgIG91dFswXSA9IDE7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDE7Ci0gICAgb3V0WzRdID0gMDsKLSAgICBvdXRbNV0gPSAwOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEludmVydHMgYSBtYXQyZAotICoKLSAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQyZH0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDJkfSBvdXQKLSAqLwotbWF0MmQuaW52ZXJ0ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgdmFyIGFhID0gYVswXSwgYWIgPSBhWzFdLCBhYyA9IGFbMl0sIGFkID0gYVszXSwKLSAgICAgICAgYXR4ID0gYVs0XSwgYXR5ID0gYVs1XTsKLQotICAgIHZhciBkZXQgPSBhYSAqIGFkIC0gYWIgKiBhYzsKLSAgICBpZighZGV0KXsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotICAgIGRldCA9IDEuMCAvIGRldDsKLQotICAgIG91dFswXSA9IGFkICogZGV0OwotICAgIG91dFsxXSA9IC1hYiAqIGRldDsKLSAgICBvdXRbMl0gPSAtYWMgKiBkZXQ7Ci0gICAgb3V0WzNdID0gYWEgKiBkZXQ7Ci0gICAgb3V0WzRdID0gKGFjICogYXR5IC0gYWQgKiBhdHgpICogZGV0OwotICAgIG91dFs1XSA9IChhYiAqIGF0eCAtIGFhICogYXR5KSAqIGRldDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBkZXRlcm1pbmFudCBvZiBhIG1hdDJkCi0gKgotICogQHBhcmFtIHttYXQyZH0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge051bWJlcn0gZGV0ZXJtaW5hbnQgb2YgYQotICovCi1tYXQyZC5kZXRlcm1pbmFudCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgcmV0dXJuIGFbMF0gKiBhWzNdIC0gYVsxXSAqIGFbMl07Ci19OwotCi0vKioKLSAqIE11bHRpcGxpZXMgdHdvIG1hdDJkJ3MKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7bWF0MmR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7bWF0MmR9IG91dAotICovCi1tYXQyZC5tdWx0aXBseSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIpIHsKLSAgICB2YXIgYWEgPSBhWzBdLCBhYiA9IGFbMV0sIGFjID0gYVsyXSwgYWQgPSBhWzNdLAotICAgICAgICBhdHggPSBhWzRdLCBhdHkgPSBhWzVdLAotICAgICAgICBiYSA9IGJbMF0sIGJiID0gYlsxXSwgYmMgPSBiWzJdLCBiZCA9IGJbM10sCi0gICAgICAgIGJ0eCA9IGJbNF0sIGJ0eSA9IGJbNV07Ci0KLSAgICBvdXRbMF0gPSBhYSpiYSArIGFiKmJjOwotICAgIG91dFsxXSA9IGFhKmJiICsgYWIqYmQ7Ci0gICAgb3V0WzJdID0gYWMqYmEgKyBhZCpiYzsKLSAgICBvdXRbM10gPSBhYypiYiArIGFkKmJkOwotICAgIG91dFs0XSA9IGJhKmF0eCArIGJjKmF0eSArIGJ0eDsKLSAgICBvdXRbNV0gPSBiYiphdHggKyBiZCphdHkgKyBidHk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayBtYXQyZC5tdWx0aXBseX0KLSAqIEBmdW5jdGlvbgotICovCi1tYXQyZC5tdWwgPSBtYXQyZC5tdWx0aXBseTsKLQotCi0vKioKLSAqIFJvdGF0ZXMgYSBtYXQyZCBieSB0aGUgZ2l2ZW4gYW5nbGUKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKLSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0MmR9IG91dAotICovCi1tYXQyZC5yb3RhdGUgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKLSAgICB2YXIgYWEgPSBhWzBdLAotICAgICAgICBhYiA9IGFbMV0sCi0gICAgICAgIGFjID0gYVsyXSwKLSAgICAgICAgYWQgPSBhWzNdLAotICAgICAgICBhdHggPSBhWzRdLAotICAgICAgICBhdHkgPSBhWzVdLAotICAgICAgICBzdCA9IE1hdGguc2luKHJhZCksCi0gICAgICAgIGN0ID0gTWF0aC5jb3MocmFkKTsKLQotICAgIG91dFswXSA9IGFhKmN0ICsgYWIqc3Q7Ci0gICAgb3V0WzFdID0gLWFhKnN0ICsgYWIqY3Q7Ci0gICAgb3V0WzJdID0gYWMqY3QgKyBhZCpzdDsKLSAgICBvdXRbM10gPSAtYWMqc3QgKyBjdCphZDsKLSAgICBvdXRbNF0gPSBjdCphdHggKyBzdCphdHk7Ci0gICAgb3V0WzVdID0gY3QqYXR5IC0gc3QqYXR4OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNjYWxlcyB0aGUgbWF0MmQgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzIKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIG1hdHJpeCB0byB0cmFuc2xhdGUKLSAqIEBwYXJhbSB7bWF0MmR9IHYgdGhlIHZlYzIgdG8gc2NhbGUgdGhlIG1hdHJpeCBieQotICogQHJldHVybnMge21hdDJkfSBvdXQKLSAqKi8KLW1hdDJkLnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7Ci0gICAgdmFyIHZ4ID0gdlswXSwgdnkgPSB2WzFdOwotICAgIG91dFswXSA9IGFbMF0gKiB2eDsKLSAgICBvdXRbMV0gPSBhWzFdICogdnk7Ci0gICAgb3V0WzJdID0gYVsyXSAqIHZ4OwotICAgIG91dFszXSA9IGFbM10gKiB2eTsKLSAgICBvdXRbNF0gPSBhWzRdICogdng7Ci0gICAgb3V0WzVdID0gYVs1XSAqIHZ5OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zbGF0ZXMgdGhlIG1hdDJkIGJ5IHRoZSBkaW1lbnNpb25zIGluIHRoZSBnaXZlbiB2ZWMyCi0gKgotICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBtYXRyaXggdG8gdHJhbnNsYXRlCi0gKiBAcGFyYW0ge21hdDJkfSB2IHRoZSB2ZWMyIHRvIHRyYW5zbGF0ZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0MmR9IG91dAotICoqLwotbWF0MmQudHJhbnNsYXRlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICBvdXRbNF0gPSBhWzRdICsgdlswXTsKLSAgICBvdXRbNV0gPSBhWzVdICsgdlsxXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgbWF0MmQKLSAqCi0gKiBAcGFyYW0ge21hdDJkfSBhIG1hdHJpeCB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKLSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4Ci0gKi8KLW1hdDJkLnN0ciA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgcmV0dXJuICdtYXQyZCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgCi0gICAgICAgICAgICAgICAgICAgIGFbM10gKyAnLCAnICsgYVs0XSArICcsICcgKyBhWzVdICsgJyknOwotfTsKLQotaWYodHlwZW9mKGV4cG9ydHMpICE9PSAndW5kZWZpbmVkJykgewotICAgIGV4cG9ydHMubWF0MmQgPSBtYXQyZDsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC9tYXQzLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1MDRmNmUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MjkgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIDN4MyBNYXRyaXgKLSAqIEBuYW1lIG1hdDMKLSAqLwotdmFyIG1hdDMgPSB7fTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IG1hdDMKLSAqCi0gKiBAcmV0dXJucyB7bWF0M30gYSBuZXcgM3gzIG1hdHJpeAotICovCi1tYXQzLmNyZWF0ZSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSg5KTsKLSAgICBvdXRbMF0gPSAxOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAwOwotICAgIG91dFs0XSA9IDE7Ci0gICAgb3V0WzVdID0gMDsKLSAgICBvdXRbNl0gPSAwOwotICAgIG91dFs3XSA9IDA7Ci0gICAgb3V0WzhdID0gMTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDb3BpZXMgdGhlIHVwcGVyLWxlZnQgM3gzIHZhbHVlcyBpbnRvIHRoZSBnaXZlbiBtYXQzLgotICoKLSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgM3gzIG1hdHJpeAotICogQHBhcmFtIHttYXQ0fSBhICAgdGhlIHNvdXJjZSA0eDQgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0M30gb3V0Ci0gKi8KLW1hdDMuZnJvbU1hdDQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzRdOwotICAgIG91dFs0XSA9IGFbNV07Ci0gICAgb3V0WzVdID0gYVs2XTsKLSAgICBvdXRbNl0gPSBhWzhdOwotICAgIG91dFs3XSA9IGFbOV07Ci0gICAgb3V0WzhdID0gYVsxMF07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldyBtYXQzIGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgbWF0cml4Ci0gKgotICogQHBhcmFtIHttYXQzfSBhIG1hdHJpeCB0byBjbG9uZQotICogQHJldHVybnMge21hdDN9IGEgbmV3IDN4MyBtYXRyaXgKLSAqLwotbWF0My5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoOSk7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICBvdXRbNF0gPSBhWzRdOwotICAgIG91dFs1XSA9IGFbNV07Ci0gICAgb3V0WzZdID0gYVs2XTsKLSAgICBvdXRbN10gPSBhWzddOwotICAgIG91dFs4XSA9IGFbOF07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIG1hdDMgdG8gYW5vdGhlcgotICoKLSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDN9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqLwotbWF0My5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICBvdXRbNF0gPSBhWzRdOwotICAgIG91dFs1XSA9IGFbNV07Ci0gICAgb3V0WzZdID0gYVs2XTsKLSAgICBvdXRbN10gPSBhWzddOwotICAgIG91dFs4XSA9IGFbOF07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2V0IGEgbWF0MyB0byB0aGUgaWRlbnRpdHkgbWF0cml4Ci0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqLwotbWF0My5pZGVudGl0eSA9IGZ1bmN0aW9uKG91dCkgewotICAgIG91dFswXSA9IDE7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDA7Ci0gICAgb3V0WzRdID0gMTsKLSAgICBvdXRbNV0gPSAwOwotICAgIG91dFs2XSA9IDA7Ci0gICAgb3V0WzddID0gMDsKLSAgICBvdXRbOF0gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zcG9zZSB0aGUgdmFsdWVzIG9mIGEgbWF0MwotICoKLSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDN9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqLwotbWF0My50cmFuc3Bvc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICAvLyBJZiB3ZSBhcmUgdHJhbnNwb3Npbmcgb3Vyc2VsdmVzIHdlIGNhbiBza2lwIGEgZmV3IHN0ZXBzIGJ1dCBoYXZlIHRvIGNhY2hlIHNvbWUgdmFsdWVzCi0gICAgaWYgKG91dCA9PT0gYSkgewotICAgICAgICB2YXIgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTEyID0gYVs1XTsKLSAgICAgICAgb3V0WzFdID0gYVszXTsKLSAgICAgICAgb3V0WzJdID0gYVs2XTsKLSAgICAgICAgb3V0WzNdID0gYTAxOwotICAgICAgICBvdXRbNV0gPSBhWzddOwotICAgICAgICBvdXRbNl0gPSBhMDI7Ci0gICAgICAgIG91dFs3XSA9IGExMjsKLSAgICB9IGVsc2UgewotICAgICAgICBvdXRbMF0gPSBhWzBdOwotICAgICAgICBvdXRbMV0gPSBhWzNdOwotICAgICAgICBvdXRbMl0gPSBhWzZdOwotICAgICAgICBvdXRbM10gPSBhWzFdOwotICAgICAgICBvdXRbNF0gPSBhWzRdOwotICAgICAgICBvdXRbNV0gPSBhWzddOwotICAgICAgICBvdXRbNl0gPSBhWzJdOwotICAgICAgICBvdXRbN10gPSBhWzVdOwotICAgICAgICBvdXRbOF0gPSBhWzhdOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBJbnZlcnRzIGEgbWF0MwotICoKLSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDN9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqLwotbWF0My5pbnZlcnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwKLSAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKLSAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XSwKLQotICAgICAgICBiMDEgPSBhMjIgKiBhMTEgLSBhMTIgKiBhMjEsCi0gICAgICAgIGIxMSA9IC1hMjIgKiBhMTAgKyBhMTIgKiBhMjAsCi0gICAgICAgIGIyMSA9IGEyMSAqIGExMCAtIGExMSAqIGEyMCwKLQotICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGRldGVybWluYW50Ci0gICAgICAgIGRldCA9IGEwMCAqIGIwMSArIGEwMSAqIGIxMSArIGEwMiAqIGIyMTsKLQotICAgIGlmICghZGV0KSB7IAotICAgICAgICByZXR1cm4gbnVsbDsgCi0gICAgfQotICAgIGRldCA9IDEuMCAvIGRldDsKLQotICAgIG91dFswXSA9IGIwMSAqIGRldDsKLSAgICBvdXRbMV0gPSAoLWEyMiAqIGEwMSArIGEwMiAqIGEyMSkgKiBkZXQ7Ci0gICAgb3V0WzJdID0gKGExMiAqIGEwMSAtIGEwMiAqIGExMSkgKiBkZXQ7Ci0gICAgb3V0WzNdID0gYjExICogZGV0OwotICAgIG91dFs0XSA9IChhMjIgKiBhMDAgLSBhMDIgKiBhMjApICogZGV0OwotICAgIG91dFs1XSA9ICgtYTEyICogYTAwICsgYTAyICogYTEwKSAqIGRldDsKLSAgICBvdXRbNl0gPSBiMjEgKiBkZXQ7Ci0gICAgb3V0WzddID0gKC1hMjEgKiBhMDAgKyBhMDEgKiBhMjApICogZGV0OwotICAgIG91dFs4XSA9IChhMTEgKiBhMDAgLSBhMDEgKiBhMTApICogZGV0OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGFkanVnYXRlIG9mIGEgbWF0MwotICoKLSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDN9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqLwotbWF0My5hZGpvaW50ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCi0gICAgICAgIGExMCA9IGFbM10sIGExMSA9IGFbNF0sIGExMiA9IGFbNV0sCi0gICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF07Ci0KLSAgICBvdXRbMF0gPSAoYTExICogYTIyIC0gYTEyICogYTIxKTsKLSAgICBvdXRbMV0gPSAoYTAyICogYTIxIC0gYTAxICogYTIyKTsKLSAgICBvdXRbMl0gPSAoYTAxICogYTEyIC0gYTAyICogYTExKTsKLSAgICBvdXRbM10gPSAoYTEyICogYTIwIC0gYTEwICogYTIyKTsKLSAgICBvdXRbNF0gPSAoYTAwICogYTIyIC0gYTAyICogYTIwKTsKLSAgICBvdXRbNV0gPSAoYTAyICogYTEwIC0gYTAwICogYTEyKTsKLSAgICBvdXRbNl0gPSAoYTEwICogYTIxIC0gYTExICogYTIwKTsKLSAgICBvdXRbN10gPSAoYTAxICogYTIwIC0gYTAwICogYTIxKTsKLSAgICBvdXRbOF0gPSAoYTAwICogYTExIC0gYTAxICogYTEwKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBkZXRlcm1pbmFudCBvZiBhIG1hdDMKLSAqCi0gKiBAcGFyYW0ge21hdDN9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRldGVybWluYW50IG9mIGEKLSAqLwotbWF0My5kZXRlcm1pbmFudCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCi0gICAgICAgIGExMCA9IGFbM10sIGExMSA9IGFbNF0sIGExMiA9IGFbNV0sCi0gICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF07Ci0KLSAgICByZXR1cm4gYTAwICogKGEyMiAqIGExMSAtIGExMiAqIGEyMSkgKyBhMDEgKiAoLWEyMiAqIGExMCArIGExMiAqIGEyMCkgKyBhMDIgKiAoYTIxICogYTEwIC0gYTExICogYTIwKTsKLX07Ci0KLS8qKgotICogTXVsdGlwbGllcyB0d28gbWF0MydzCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHttYXQzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLm11bHRpcGx5ID0gZnVuY3Rpb24gKG91dCwgYSwgYikgewotICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAotICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAotICAgICAgICBhMjAgPSBhWzZdLCBhMjEgPSBhWzddLCBhMjIgPSBhWzhdLAotCi0gICAgICAgIGIwMCA9IGJbMF0sIGIwMSA9IGJbMV0sIGIwMiA9IGJbMl0sCi0gICAgICAgIGIxMCA9IGJbM10sIGIxMSA9IGJbNF0sIGIxMiA9IGJbNV0sCi0gICAgICAgIGIyMCA9IGJbNl0sIGIyMSA9IGJbN10sIGIyMiA9IGJbOF07Ci0KLSAgICBvdXRbMF0gPSBiMDAgKiBhMDAgKyBiMDEgKiBhMTAgKyBiMDIgKiBhMjA7Ci0gICAgb3V0WzFdID0gYjAwICogYTAxICsgYjAxICogYTExICsgYjAyICogYTIxOwotICAgIG91dFsyXSA9IGIwMCAqIGEwMiArIGIwMSAqIGExMiArIGIwMiAqIGEyMjsKLQotICAgIG91dFszXSA9IGIxMCAqIGEwMCArIGIxMSAqIGExMCArIGIxMiAqIGEyMDsKLSAgICBvdXRbNF0gPSBiMTAgKiBhMDEgKyBiMTEgKiBhMTEgKyBiMTIgKiBhMjE7Ci0gICAgb3V0WzVdID0gYjEwICogYTAyICsgYjExICogYTEyICsgYjEyICogYTIyOwotCi0gICAgb3V0WzZdID0gYjIwICogYTAwICsgYjIxICogYTEwICsgYjIyICogYTIwOwotICAgIG91dFs3XSA9IGIyMCAqIGEwMSArIGIyMSAqIGExMSArIGIyMiAqIGEyMTsKLSAgICBvdXRbOF0gPSBiMjAgKiBhMDIgKyBiMjEgKiBhMTIgKyBiMjIgKiBhMjI7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayBtYXQzLm11bHRpcGx5fQotICogQGZ1bmN0aW9uCi0gKi8KLW1hdDMubXVsID0gbWF0My5tdWx0aXBseTsKLQotLyoqCi0gKiBUcmFuc2xhdGUgYSBtYXQzIGJ5IHRoZSBnaXZlbiB2ZWN0b3IKLSAqCi0gKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gdHJhbnNsYXRlCi0gKiBAcGFyYW0ge3ZlYzJ9IHYgdmVjdG9yIHRvIHRyYW5zbGF0ZSBieQotICogQHJldHVybnMge21hdDN9IG91dAotICovCi1tYXQzLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uKG91dCwgYSwgdikgewotICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAotICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAotICAgICAgICBhMjAgPSBhWzZdLCBhMjEgPSBhWzddLCBhMjIgPSBhWzhdLAotICAgICAgICB4ID0gdlswXSwgeSA9IHZbMV07Ci0KLSAgICBvdXRbMF0gPSBhMDA7Ci0gICAgb3V0WzFdID0gYTAxOwotICAgIG91dFsyXSA9IGEwMjsKLQotICAgIG91dFszXSA9IGExMDsKLSAgICBvdXRbNF0gPSBhMTE7Ci0gICAgb3V0WzVdID0gYTEyOwotCi0gICAgb3V0WzZdID0geCAqIGEwMCArIHkgKiBhMTAgKyBhMjA7Ci0gICAgb3V0WzddID0geCAqIGEwMSArIHkgKiBhMTEgKyBhMjE7Ci0gICAgb3V0WzhdID0geCAqIGEwMiArIHkgKiBhMTIgKyBhMjI7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUm90YXRlcyBhIG1hdDMgYnkgdGhlIGdpdmVuIGFuZ2xlCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqLwotbWF0My5yb3RhdGUgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKLSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwKLSAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKLSAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XSwKLQotICAgICAgICBzID0gTWF0aC5zaW4ocmFkKSwKLSAgICAgICAgYyA9IE1hdGguY29zKHJhZCk7Ci0KLSAgICBvdXRbMF0gPSBjICogYTAwICsgcyAqIGExMDsKLSAgICBvdXRbMV0gPSBjICogYTAxICsgcyAqIGExMTsKLSAgICBvdXRbMl0gPSBjICogYTAyICsgcyAqIGExMjsKLQotICAgIG91dFszXSA9IGMgKiBhMTAgLSBzICogYTAwOwotICAgIG91dFs0XSA9IGMgKiBhMTEgLSBzICogYTAxOwotICAgIG91dFs1XSA9IGMgKiBhMTIgLSBzICogYTAyOwotCi0gICAgb3V0WzZdID0gYTIwOwotICAgIG91dFs3XSA9IGEyMTsKLSAgICBvdXRbOF0gPSBhMjI7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2NhbGVzIHRoZSBtYXQzIGJ5IHRoZSBkaW1lbnNpb25zIGluIHRoZSBnaXZlbiB2ZWMyCi0gKgotICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHt2ZWMyfSB2IHRoZSB2ZWMyIHRvIHNjYWxlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQzfSBvdXQKLSAqKi8KLW1hdDMuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIHYpIHsKLSAgICB2YXIgeCA9IHZbMF0sIHkgPSB2WzJdOwotCi0gICAgb3V0WzBdID0geCAqIGFbMF07Ci0gICAgb3V0WzFdID0geCAqIGFbMV07Ci0gICAgb3V0WzJdID0geCAqIGFbMl07Ci0KLSAgICBvdXRbM10gPSB5ICogYVszXTsKLSAgICBvdXRbNF0gPSB5ICogYVs0XTsKLSAgICBvdXRbNV0gPSB5ICogYVs1XTsKLQotICAgIG91dFs2XSA9IGFbNl07Ci0gICAgb3V0WzddID0gYVs3XTsKLSAgICBvdXRbOF0gPSBhWzhdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENvcGllcyB0aGUgdmFsdWVzIGZyb20gYSBtYXQyZCBpbnRvIGEgbWF0MwotICoKLSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDN9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKLSAqIEBwYXJhbSB7dmVjMn0gdiB0aGUgdmVjMiB0byBzY2FsZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0M30gb3V0Ci0gKiovCi1tYXQzLmZyb21NYXQyZCA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICBvdXRbMl0gPSAwOwotCi0gICAgb3V0WzNdID0gYVsyXTsKLSAgICBvdXRbNF0gPSBhWzNdOwotICAgIG91dFs1XSA9IDA7Ci0KLSAgICBvdXRbNl0gPSBhWzRdOwotICAgIG91dFs3XSA9IGFbNV07Ci0gICAgb3V0WzhdID0gMTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0qIENhbGN1bGF0ZXMgYSAzeDMgbWF0cml4IGZyb20gdGhlIGdpdmVuIHF1YXRlcm5pb24KLSoKLSogQHBhcmFtIHttYXQzfSBvdXQgbWF0MyByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAotKiBAcGFyYW0ge3F1YXR9IHEgUXVhdGVybmlvbiB0byBjcmVhdGUgbWF0cml4IGZyb20KLSoKLSogQHJldHVybnMge21hdDN9IG91dAotKi8KLW1hdDMuZnJvbVF1YXQgPSBmdW5jdGlvbiAob3V0LCBxKSB7Ci0gICAgdmFyIHggPSBxWzBdLCB5ID0gcVsxXSwgeiA9IHFbMl0sIHcgPSBxWzNdLAotICAgICAgICB4MiA9IHggKyB4LAotICAgICAgICB5MiA9IHkgKyB5LAotICAgICAgICB6MiA9IHogKyB6LAotCi0gICAgICAgIHh4ID0geCAqIHgyLAotICAgICAgICB4eSA9IHggKiB5MiwKLSAgICAgICAgeHogPSB4ICogejIsCi0gICAgICAgIHl5ID0geSAqIHkyLAotICAgICAgICB5eiA9IHkgKiB6MiwKLSAgICAgICAgenogPSB6ICogejIsCi0gICAgICAgIHd4ID0gdyAqIHgyLAotICAgICAgICB3eSA9IHcgKiB5MiwKLSAgICAgICAgd3ogPSB3ICogejI7Ci0KLSAgICBvdXRbMF0gPSAxIC0gKHl5ICsgenopOwotICAgIG91dFsxXSA9IHh5ICsgd3o7Ci0gICAgb3V0WzJdID0geHogLSB3eTsKLQotICAgIG91dFszXSA9IHh5IC0gd3o7Ci0gICAgb3V0WzRdID0gMSAtICh4eCArIHp6KTsKLSAgICBvdXRbNV0gPSB5eiArIHd4OwotCi0gICAgb3V0WzZdID0geHogKyB3eTsKLSAgICBvdXRbN10gPSB5eiAtIHd4OwotICAgIG91dFs4XSA9IDEgLSAoeHggKyB5eSk7Ci0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgbWF0MwotICoKLSAqIEBwYXJhbSB7bWF0M30gbWF0IG1hdHJpeCB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKLSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4Ci0gKi8KLW1hdDMuc3RyID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gJ21hdDMoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJywgJyArIAotICAgICAgICAgICAgICAgICAgICBhWzNdICsgJywgJyArIGFbNF0gKyAnLCAnICsgYVs1XSArICcsICcgKyAKLSAgICAgICAgICAgICAgICAgICAgYVs2XSArICcsICcgKyBhWzddICsgJywgJyArIGFbOF0gKyAnKSc7Ci19OwotCi1pZih0eXBlb2YoZXhwb3J0cykgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgZXhwb3J0cy5tYXQzID0gbWF0MzsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC9tYXQ0LmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0MDE5MTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5MDcgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIDR4NCBNYXRyaXgKLSAqIEBuYW1lIG1hdDQKLSAqLwotdmFyIG1hdDQgPSB7fTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IG1hdDQKLSAqCi0gKiBAcmV0dXJucyB7bWF0NH0gYSBuZXcgNHg0IG1hdHJpeAotICovCi1tYXQ0LmNyZWF0ZSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSgxNik7Ci0gICAgb3V0WzBdID0gMTsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMDsKLSAgICBvdXRbNF0gPSAwOwotICAgIG91dFs1XSA9IDE7Ci0gICAgb3V0WzZdID0gMDsKLSAgICBvdXRbN10gPSAwOwotICAgIG91dFs4XSA9IDA7Ci0gICAgb3V0WzldID0gMDsKLSAgICBvdXRbMTBdID0gMTsKLSAgICBvdXRbMTFdID0gMDsKLSAgICBvdXRbMTJdID0gMDsKLSAgICBvdXRbMTNdID0gMDsKLSAgICBvdXRbMTRdID0gMDsKLSAgICBvdXRbMTVdID0gMTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IG1hdDQgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKLSAqCi0gKiBAcGFyYW0ge21hdDR9IGEgbWF0cml4IHRvIGNsb25lCi0gKiBAcmV0dXJucyB7bWF0NH0gYSBuZXcgNHg0IG1hdHJpeAotICovCi1tYXQ0LmNsb25lID0gZnVuY3Rpb24oYSkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSgxNik7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICBvdXRbNF0gPSBhWzRdOwotICAgIG91dFs1XSA9IGFbNV07Ci0gICAgb3V0WzZdID0gYVs2XTsKLSAgICBvdXRbN10gPSBhWzddOwotICAgIG91dFs4XSA9IGFbOF07Ci0gICAgb3V0WzldID0gYVs5XTsKLSAgICBvdXRbMTBdID0gYVsxMF07Ci0gICAgb3V0WzExXSA9IGFbMTFdOwotICAgIG91dFsxMl0gPSBhWzEyXTsKLSAgICBvdXRbMTNdID0gYVsxM107Ci0gICAgb3V0WzE0XSA9IGFbMTRdOwotICAgIG91dFsxNV0gPSBhWzE1XTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0NCB0byBhbm90aGVyCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgc291cmNlIG1hdHJpeAotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIG91dFs0XSA9IGFbNF07Ci0gICAgb3V0WzVdID0gYVs1XTsKLSAgICBvdXRbNl0gPSBhWzZdOwotICAgIG91dFs3XSA9IGFbN107Ci0gICAgb3V0WzhdID0gYVs4XTsKLSAgICBvdXRbOV0gPSBhWzldOwotICAgIG91dFsxMF0gPSBhWzEwXTsKLSAgICBvdXRbMTFdID0gYVsxMV07Ci0gICAgb3V0WzEyXSA9IGFbMTJdOwotICAgIG91dFsxM10gPSBhWzEzXTsKLSAgICBvdXRbMTRdID0gYVsxNF07Ci0gICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNldCBhIG1hdDQgdG8gdGhlIGlkZW50aXR5IG1hdHJpeAotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQuaWRlbnRpdHkgPSBmdW5jdGlvbihvdXQpIHsKLSAgICBvdXRbMF0gPSAxOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAwOwotICAgIG91dFs0XSA9IDA7Ci0gICAgb3V0WzVdID0gMTsKLSAgICBvdXRbNl0gPSAwOwotICAgIG91dFs3XSA9IDA7Ci0gICAgb3V0WzhdID0gMDsKLSAgICBvdXRbOV0gPSAwOwotICAgIG91dFsxMF0gPSAxOwotICAgIG91dFsxMV0gPSAwOwotICAgIG91dFsxMl0gPSAwOwotICAgIG91dFsxM10gPSAwOwotICAgIG91dFsxNF0gPSAwOwotICAgIG91dFsxNV0gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zcG9zZSB0aGUgdmFsdWVzIG9mIGEgbWF0NAotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC50cmFuc3Bvc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICAvLyBJZiB3ZSBhcmUgdHJhbnNwb3Npbmcgb3Vyc2VsdmVzIHdlIGNhbiBza2lwIGEgZmV3IHN0ZXBzIGJ1dCBoYXZlIHRvIGNhY2hlIHNvbWUgdmFsdWVzCi0gICAgaWYgKG91dCA9PT0gYSkgewotICAgICAgICB2YXIgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKLSAgICAgICAgICAgIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCi0gICAgICAgICAgICBhMjMgPSBhWzExXTsKLQotICAgICAgICBvdXRbMV0gPSBhWzRdOwotICAgICAgICBvdXRbMl0gPSBhWzhdOwotICAgICAgICBvdXRbM10gPSBhWzEyXTsKLSAgICAgICAgb3V0WzRdID0gYTAxOwotICAgICAgICBvdXRbNl0gPSBhWzldOwotICAgICAgICBvdXRbN10gPSBhWzEzXTsKLSAgICAgICAgb3V0WzhdID0gYTAyOwotICAgICAgICBvdXRbOV0gPSBhMTI7Ci0gICAgICAgIG91dFsxMV0gPSBhWzE0XTsKLSAgICAgICAgb3V0WzEyXSA9IGEwMzsKLSAgICAgICAgb3V0WzEzXSA9IGExMzsKLSAgICAgICAgb3V0WzE0XSA9IGEyMzsKLSAgICB9IGVsc2UgewotICAgICAgICBvdXRbMF0gPSBhWzBdOwotICAgICAgICBvdXRbMV0gPSBhWzRdOwotICAgICAgICBvdXRbMl0gPSBhWzhdOwotICAgICAgICBvdXRbM10gPSBhWzEyXTsKLSAgICAgICAgb3V0WzRdID0gYVsxXTsKLSAgICAgICAgb3V0WzVdID0gYVs1XTsKLSAgICAgICAgb3V0WzZdID0gYVs5XTsKLSAgICAgICAgb3V0WzddID0gYVsxM107Ci0gICAgICAgIG91dFs4XSA9IGFbMl07Ci0gICAgICAgIG91dFs5XSA9IGFbNl07Ci0gICAgICAgIG91dFsxMF0gPSBhWzEwXTsKLSAgICAgICAgb3V0WzExXSA9IGFbMTRdOwotICAgICAgICBvdXRbMTJdID0gYVszXTsKLSAgICAgICAgb3V0WzEzXSA9IGFbN107Ci0gICAgICAgIG91dFsxNF0gPSBhWzExXTsKLSAgICAgICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBJbnZlcnRzIGEgbWF0NAotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5pbnZlcnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKLSAgICAgICAgYTEwID0gYVs0XSwgYTExID0gYVs1XSwgYTEyID0gYVs2XSwgYTEzID0gYVs3XSwKLSAgICAgICAgYTIwID0gYVs4XSwgYTIxID0gYVs5XSwgYTIyID0gYVsxMF0sIGEyMyA9IGFbMTFdLAotICAgICAgICBhMzAgPSBhWzEyXSwgYTMxID0gYVsxM10sIGEzMiA9IGFbMTRdLCBhMzMgPSBhWzE1XSwKLQotICAgICAgICBiMDAgPSBhMDAgKiBhMTEgLSBhMDEgKiBhMTAsCi0gICAgICAgIGIwMSA9IGEwMCAqIGExMiAtIGEwMiAqIGExMCwKLSAgICAgICAgYjAyID0gYTAwICogYTEzIC0gYTAzICogYTEwLAotICAgICAgICBiMDMgPSBhMDEgKiBhMTIgLSBhMDIgKiBhMTEsCi0gICAgICAgIGIwNCA9IGEwMSAqIGExMyAtIGEwMyAqIGExMSwKLSAgICAgICAgYjA1ID0gYTAyICogYTEzIC0gYTAzICogYTEyLAotICAgICAgICBiMDYgPSBhMjAgKiBhMzEgLSBhMjEgKiBhMzAsCi0gICAgICAgIGIwNyA9IGEyMCAqIGEzMiAtIGEyMiAqIGEzMCwKLSAgICAgICAgYjA4ID0gYTIwICogYTMzIC0gYTIzICogYTMwLAotICAgICAgICBiMDkgPSBhMjEgKiBhMzIgLSBhMjIgKiBhMzEsCi0gICAgICAgIGIxMCA9IGEyMSAqIGEzMyAtIGEyMyAqIGEzMSwKLSAgICAgICAgYjExID0gYTIyICogYTMzIC0gYTIzICogYTMyLAotCi0gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKLSAgICAgICAgZGV0ID0gYjAwICogYjExIC0gYjAxICogYjEwICsgYjAyICogYjA5ICsgYjAzICogYjA4IC0gYjA0ICogYjA3ICsgYjA1ICogYjA2OwotCi0gICAgaWYgKCFkZXQpIHsgCi0gICAgICAgIHJldHVybiBudWxsOyAKLSAgICB9Ci0gICAgZGV0ID0gMS4wIC8gZGV0OwotCi0gICAgb3V0WzBdID0gKGExMSAqIGIxMSAtIGExMiAqIGIxMCArIGExMyAqIGIwOSkgKiBkZXQ7Ci0gICAgb3V0WzFdID0gKGEwMiAqIGIxMCAtIGEwMSAqIGIxMSAtIGEwMyAqIGIwOSkgKiBkZXQ7Ci0gICAgb3V0WzJdID0gKGEzMSAqIGIwNSAtIGEzMiAqIGIwNCArIGEzMyAqIGIwMykgKiBkZXQ7Ci0gICAgb3V0WzNdID0gKGEyMiAqIGIwNCAtIGEyMSAqIGIwNSAtIGEyMyAqIGIwMykgKiBkZXQ7Ci0gICAgb3V0WzRdID0gKGExMiAqIGIwOCAtIGExMCAqIGIxMSAtIGExMyAqIGIwNykgKiBkZXQ7Ci0gICAgb3V0WzVdID0gKGEwMCAqIGIxMSAtIGEwMiAqIGIwOCArIGEwMyAqIGIwNykgKiBkZXQ7Ci0gICAgb3V0WzZdID0gKGEzMiAqIGIwMiAtIGEzMCAqIGIwNSAtIGEzMyAqIGIwMSkgKiBkZXQ7Ci0gICAgb3V0WzddID0gKGEyMCAqIGIwNSAtIGEyMiAqIGIwMiArIGEyMyAqIGIwMSkgKiBkZXQ7Ci0gICAgb3V0WzhdID0gKGExMCAqIGIxMCAtIGExMSAqIGIwOCArIGExMyAqIGIwNikgKiBkZXQ7Ci0gICAgb3V0WzldID0gKGEwMSAqIGIwOCAtIGEwMCAqIGIxMCAtIGEwMyAqIGIwNikgKiBkZXQ7Ci0gICAgb3V0WzEwXSA9IChhMzAgKiBiMDQgLSBhMzEgKiBiMDIgKyBhMzMgKiBiMDApICogZGV0OwotICAgIG91dFsxMV0gPSAoYTIxICogYjAyIC0gYTIwICogYjA0IC0gYTIzICogYjAwKSAqIGRldDsKLSAgICBvdXRbMTJdID0gKGExMSAqIGIwNyAtIGExMCAqIGIwOSAtIGExMiAqIGIwNikgKiBkZXQ7Ci0gICAgb3V0WzEzXSA9IChhMDAgKiBiMDkgLSBhMDEgKiBiMDcgKyBhMDIgKiBiMDYpICogZGV0OwotICAgIG91dFsxNF0gPSAoYTMxICogYjAxIC0gYTMwICogYjAzIC0gYTMyICogYjAwKSAqIGRldDsKLSAgICBvdXRbMTVdID0gKGEyMCAqIGIwMyAtIGEyMSAqIGIwMSArIGEyMiAqIGIwMCkgKiBkZXQ7Ci0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBhZGp1Z2F0ZSBvZiBhIG1hdDQKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQ0fSBhIHRoZSBzb3VyY2UgbWF0cml4Ci0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQuYWRqb2ludCA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMDMgPSBhWzNdLAotICAgICAgICBhMTAgPSBhWzRdLCBhMTEgPSBhWzVdLCBhMTIgPSBhWzZdLCBhMTMgPSBhWzddLAotICAgICAgICBhMjAgPSBhWzhdLCBhMjEgPSBhWzldLCBhMjIgPSBhWzEwXSwgYTIzID0gYVsxMV0sCi0gICAgICAgIGEzMCA9IGFbMTJdLCBhMzEgPSBhWzEzXSwgYTMyID0gYVsxNF0sIGEzMyA9IGFbMTVdOwotCi0gICAgb3V0WzBdICA9ICAoYTExICogKGEyMiAqIGEzMyAtIGEyMyAqIGEzMikgLSBhMjEgKiAoYTEyICogYTMzIC0gYTEzICogYTMyKSArIGEzMSAqIChhMTIgKiBhMjMgLSBhMTMgKiBhMjIpKTsKLSAgICBvdXRbMV0gID0gLShhMDEgKiAoYTIyICogYTMzIC0gYTIzICogYTMyKSAtIGEyMSAqIChhMDIgKiBhMzMgLSBhMDMgKiBhMzIpICsgYTMxICogKGEwMiAqIGEyMyAtIGEwMyAqIGEyMikpOwotICAgIG91dFsyXSAgPSAgKGEwMSAqIChhMTIgKiBhMzMgLSBhMTMgKiBhMzIpIC0gYTExICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzEgKiAoYTAyICogYTEzIC0gYTAzICogYTEyKSk7Ci0gICAgb3V0WzNdICA9IC0oYTAxICogKGExMiAqIGEyMyAtIGExMyAqIGEyMikgLSBhMTEgKiAoYTAyICogYTIzIC0gYTAzICogYTIyKSArIGEyMSAqIChhMDIgKiBhMTMgLSBhMDMgKiBhMTIpKTsKLSAgICBvdXRbNF0gID0gLShhMTAgKiAoYTIyICogYTMzIC0gYTIzICogYTMyKSAtIGEyMCAqIChhMTIgKiBhMzMgLSBhMTMgKiBhMzIpICsgYTMwICogKGExMiAqIGEyMyAtIGExMyAqIGEyMikpOwotICAgIG91dFs1XSAgPSAgKGEwMCAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIwICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzAgKiAoYTAyICogYTIzIC0gYTAzICogYTIyKSk7Ci0gICAgb3V0WzZdICA9IC0oYTAwICogKGExMiAqIGEzMyAtIGExMyAqIGEzMikgLSBhMTAgKiAoYTAyICogYTMzIC0gYTAzICogYTMyKSArIGEzMCAqIChhMDIgKiBhMTMgLSBhMDMgKiBhMTIpKTsKLSAgICBvdXRbN10gID0gIChhMDAgKiAoYTEyICogYTIzIC0gYTEzICogYTIyKSAtIGExMCAqIChhMDIgKiBhMjMgLSBhMDMgKiBhMjIpICsgYTIwICogKGEwMiAqIGExMyAtIGEwMyAqIGExMikpOwotICAgIG91dFs4XSAgPSAgKGExMCAqIChhMjEgKiBhMzMgLSBhMjMgKiBhMzEpIC0gYTIwICogKGExMSAqIGEzMyAtIGExMyAqIGEzMSkgKyBhMzAgKiAoYTExICogYTIzIC0gYTEzICogYTIxKSk7Ci0gICAgb3V0WzldICA9IC0oYTAwICogKGEyMSAqIGEzMyAtIGEyMyAqIGEzMSkgLSBhMjAgKiAoYTAxICogYTMzIC0gYTAzICogYTMxKSArIGEzMCAqIChhMDEgKiBhMjMgLSBhMDMgKiBhMjEpKTsKLSAgICBvdXRbMTBdID0gIChhMDAgKiAoYTExICogYTMzIC0gYTEzICogYTMxKSAtIGExMCAqIChhMDEgKiBhMzMgLSBhMDMgKiBhMzEpICsgYTMwICogKGEwMSAqIGExMyAtIGEwMyAqIGExMSkpOwotICAgIG91dFsxMV0gPSAtKGEwMCAqIChhMTEgKiBhMjMgLSBhMTMgKiBhMjEpIC0gYTEwICogKGEwMSAqIGEyMyAtIGEwMyAqIGEyMSkgKyBhMjAgKiAoYTAxICogYTEzIC0gYTAzICogYTExKSk7Ci0gICAgb3V0WzEyXSA9IC0oYTEwICogKGEyMSAqIGEzMiAtIGEyMiAqIGEzMSkgLSBhMjAgKiAoYTExICogYTMyIC0gYTEyICogYTMxKSArIGEzMCAqIChhMTEgKiBhMjIgLSBhMTIgKiBhMjEpKTsKLSAgICBvdXRbMTNdID0gIChhMDAgKiAoYTIxICogYTMyIC0gYTIyICogYTMxKSAtIGEyMCAqIChhMDEgKiBhMzIgLSBhMDIgKiBhMzEpICsgYTMwICogKGEwMSAqIGEyMiAtIGEwMiAqIGEyMSkpOwotICAgIG91dFsxNF0gPSAtKGEwMCAqIChhMTEgKiBhMzIgLSBhMTIgKiBhMzEpIC0gYTEwICogKGEwMSAqIGEzMiAtIGEwMiAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTEyIC0gYTAyICogYTExKSk7Ci0gICAgb3V0WzE1XSA9ICAoYTAwICogKGExMSAqIGEyMiAtIGExMiAqIGEyMSkgLSBhMTAgKiAoYTAxICogYTIyIC0gYTAyICogYTIxKSArIGEyMCAqIChhMDEgKiBhMTIgLSBhMDIgKiBhMTEpKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBkZXRlcm1pbmFudCBvZiBhIG1hdDQKLSAqCi0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRldGVybWluYW50IG9mIGEKLSAqLwotbWF0NC5kZXRlcm1pbmFudCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sIGEwMyA9IGFbM10sCi0gICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCi0gICAgICAgIGEyMCA9IGFbOF0sIGEyMSA9IGFbOV0sIGEyMiA9IGFbMTBdLCBhMjMgPSBhWzExXSwKLSAgICAgICAgYTMwID0gYVsxMl0sIGEzMSA9IGFbMTNdLCBhMzIgPSBhWzE0XSwgYTMzID0gYVsxNV0sCi0KLSAgICAgICAgYjAwID0gYTAwICogYTExIC0gYTAxICogYTEwLAotICAgICAgICBiMDEgPSBhMDAgKiBhMTIgLSBhMDIgKiBhMTAsCi0gICAgICAgIGIwMiA9IGEwMCAqIGExMyAtIGEwMyAqIGExMCwKLSAgICAgICAgYjAzID0gYTAxICogYTEyIC0gYTAyICogYTExLAotICAgICAgICBiMDQgPSBhMDEgKiBhMTMgLSBhMDMgKiBhMTEsCi0gICAgICAgIGIwNSA9IGEwMiAqIGExMyAtIGEwMyAqIGExMiwKLSAgICAgICAgYjA2ID0gYTIwICogYTMxIC0gYTIxICogYTMwLAotICAgICAgICBiMDcgPSBhMjAgKiBhMzIgLSBhMjIgKiBhMzAsCi0gICAgICAgIGIwOCA9IGEyMCAqIGEzMyAtIGEyMyAqIGEzMCwKLSAgICAgICAgYjA5ID0gYTIxICogYTMyIC0gYTIyICogYTMxLAotICAgICAgICBiMTAgPSBhMjEgKiBhMzMgLSBhMjMgKiBhMzEsCi0gICAgICAgIGIxMSA9IGEyMiAqIGEzMyAtIGEyMyAqIGEzMjsKLQotICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKLSAgICByZXR1cm4gYjAwICogYjExIC0gYjAxICogYjEwICsgYjAyICogYjA5ICsgYjAzICogYjA4IC0gYjA0ICogYjA3ICsgYjA1ICogYjA2OwotfTsKLQotLyoqCi0gKiBNdWx0aXBsaWVzIHR3byBtYXQ0J3MKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQ0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge21hdDR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQubXVsdGlwbHkgPSBmdW5jdGlvbiAob3V0LCBhLCBiKSB7Ci0gICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sIGEwMyA9IGFbM10sCi0gICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCi0gICAgICAgIGEyMCA9IGFbOF0sIGEyMSA9IGFbOV0sIGEyMiA9IGFbMTBdLCBhMjMgPSBhWzExXSwKLSAgICAgICAgYTMwID0gYVsxMl0sIGEzMSA9IGFbMTNdLCBhMzIgPSBhWzE0XSwgYTMzID0gYVsxNV07Ci0KLSAgICAvLyBDYWNoZSBvbmx5IHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIHNlY29uZCBtYXRyaXgKLSAgICB2YXIgYjAgID0gYlswXSwgYjEgPSBiWzFdLCBiMiA9IGJbMl0sIGIzID0gYlszXTsgIAotICAgIG91dFswXSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKLSAgICBvdXRbMV0gPSBiMCphMDEgKyBiMSphMTEgKyBiMiphMjEgKyBiMyphMzE7Ci0gICAgb3V0WzJdID0gYjAqYTAyICsgYjEqYTEyICsgYjIqYTIyICsgYjMqYTMyOwotICAgIG91dFszXSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKLQotICAgIGIwID0gYls0XTsgYjEgPSBiWzVdOyBiMiA9IGJbNl07IGIzID0gYls3XTsKLSAgICBvdXRbNF0gPSBiMCphMDAgKyBiMSphMTAgKyBiMiphMjAgKyBiMyphMzA7Ci0gICAgb3V0WzVdID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOwotICAgIG91dFs2XSA9IGIwKmEwMiArIGIxKmExMiArIGIyKmEyMiArIGIzKmEzMjsKLSAgICBvdXRbN10gPSBiMCphMDMgKyBiMSphMTMgKyBiMiphMjMgKyBiMyphMzM7Ci0KLSAgICBiMCA9IGJbOF07IGIxID0gYls5XTsgYjIgPSBiWzEwXTsgYjMgPSBiWzExXTsKLSAgICBvdXRbOF0gPSBiMCphMDAgKyBiMSphMTAgKyBiMiphMjAgKyBiMyphMzA7Ci0gICAgb3V0WzldID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOwotICAgIG91dFsxMF0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7Ci0gICAgb3V0WzExXSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKLQotICAgIGIwID0gYlsxMl07IGIxID0gYlsxM107IGIyID0gYlsxNF07IGIzID0gYlsxNV07Ci0gICAgb3V0WzEyXSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKLSAgICBvdXRbMTNdID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOwotICAgIG91dFsxNF0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7Ci0gICAgb3V0WzE1XSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIG1hdDQubXVsdGlwbHl9Ci0gKiBAZnVuY3Rpb24KLSAqLwotbWF0NC5tdWwgPSBtYXQ0Lm11bHRpcGx5OwotCi0vKioKLSAqIFRyYW5zbGF0ZSBhIG1hdDQgYnkgdGhlIGdpdmVuIHZlY3RvcgotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byB0cmFuc2xhdGUKLSAqIEBwYXJhbSB7dmVjM30gdiB2ZWN0b3IgdG8gdHJhbnNsYXRlIGJ5Ci0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQudHJhbnNsYXRlID0gZnVuY3Rpb24gKG91dCwgYSwgdikgewotICAgIHZhciB4ID0gdlswXSwgeSA9IHZbMV0sIHogPSB2WzJdLAotICAgICAgICBhMDAsIGEwMSwgYTAyLCBhMDMsCi0gICAgICAgIGExMCwgYTExLCBhMTIsIGExMywKLSAgICAgICAgYTIwLCBhMjEsIGEyMiwgYTIzOwotCi0gICAgaWYgKGEgPT09IG91dCkgewotICAgICAgICBvdXRbMTJdID0gYVswXSAqIHggKyBhWzRdICogeSArIGFbOF0gKiB6ICsgYVsxMl07Ci0gICAgICAgIG91dFsxM10gPSBhWzFdICogeCArIGFbNV0gKiB5ICsgYVs5XSAqIHogKyBhWzEzXTsKLSAgICAgICAgb3V0WzE0XSA9IGFbMl0gKiB4ICsgYVs2XSAqIHkgKyBhWzEwXSAqIHogKyBhWzE0XTsKLSAgICAgICAgb3V0WzE1XSA9IGFbM10gKiB4ICsgYVs3XSAqIHkgKyBhWzExXSAqIHogKyBhWzE1XTsKLSAgICB9IGVsc2UgewotICAgICAgICBhMDAgPSBhWzBdOyBhMDEgPSBhWzFdOyBhMDIgPSBhWzJdOyBhMDMgPSBhWzNdOwotICAgICAgICBhMTAgPSBhWzRdOyBhMTEgPSBhWzVdOyBhMTIgPSBhWzZdOyBhMTMgPSBhWzddOwotICAgICAgICBhMjAgPSBhWzhdOyBhMjEgPSBhWzldOyBhMjIgPSBhWzEwXTsgYTIzID0gYVsxMV07Ci0KLSAgICAgICAgb3V0WzBdID0gYTAwOyBvdXRbMV0gPSBhMDE7IG91dFsyXSA9IGEwMjsgb3V0WzNdID0gYTAzOwotICAgICAgICBvdXRbNF0gPSBhMTA7IG91dFs1XSA9IGExMTsgb3V0WzZdID0gYTEyOyBvdXRbN10gPSBhMTM7Ci0gICAgICAgIG91dFs4XSA9IGEyMDsgb3V0WzldID0gYTIxOyBvdXRbMTBdID0gYTIyOyBvdXRbMTFdID0gYTIzOwotCi0gICAgICAgIG91dFsxMl0gPSBhMDAgKiB4ICsgYTEwICogeSArIGEyMCAqIHogKyBhWzEyXTsKLSAgICAgICAgb3V0WzEzXSA9IGEwMSAqIHggKyBhMTEgKiB5ICsgYTIxICogeiArIGFbMTNdOwotICAgICAgICBvdXRbMTRdID0gYTAyICogeCArIGExMiAqIHkgKyBhMjIgKiB6ICsgYVsxNF07Ci0gICAgICAgIG91dFsxNV0gPSBhMDMgKiB4ICsgYTEzICogeSArIGEyMyAqIHogKyBhWzE1XTsKLSAgICB9Ci0KLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTY2FsZXMgdGhlIG1hdDQgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzMKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gc2NhbGUKLSAqIEBwYXJhbSB7dmVjM30gdiB0aGUgdmVjMyB0byBzY2FsZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKiovCi1tYXQ0LnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7Ci0gICAgdmFyIHggPSB2WzBdLCB5ID0gdlsxXSwgeiA9IHZbMl07Ci0KLSAgICBvdXRbMF0gPSBhWzBdICogeDsKLSAgICBvdXRbMV0gPSBhWzFdICogeDsKLSAgICBvdXRbMl0gPSBhWzJdICogeDsKLSAgICBvdXRbM10gPSBhWzNdICogeDsKLSAgICBvdXRbNF0gPSBhWzRdICogeTsKLSAgICBvdXRbNV0gPSBhWzVdICogeTsKLSAgICBvdXRbNl0gPSBhWzZdICogeTsKLSAgICBvdXRbN10gPSBhWzddICogeTsKLSAgICBvdXRbOF0gPSBhWzhdICogejsKLSAgICBvdXRbOV0gPSBhWzldICogejsKLSAgICBvdXRbMTBdID0gYVsxMF0gKiB6OwotICAgIG91dFsxMV0gPSBhWzExXSAqIHo7Ci0gICAgb3V0WzEyXSA9IGFbMTJdOwotICAgIG91dFsxM10gPSBhWzEzXTsKLSAgICBvdXRbMTRdID0gYVsxNF07Ci0gICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJvdGF0ZXMgYSBtYXQ0IGJ5IHRoZSBnaXZlbiBhbmdsZQotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKLSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcGFyYW0ge3ZlYzN9IGF4aXMgdGhlIGF4aXMgdG8gcm90YXRlIGFyb3VuZAotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCwgYXhpcykgewotICAgIHZhciB4ID0gYXhpc1swXSwgeSA9IGF4aXNbMV0sIHogPSBheGlzWzJdLAotICAgICAgICBsZW4gPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSArIHogKiB6KSwKLSAgICAgICAgcywgYywgdCwKLSAgICAgICAgYTAwLCBhMDEsIGEwMiwgYTAzLAotICAgICAgICBhMTAsIGExMSwgYTEyLCBhMTMsCi0gICAgICAgIGEyMCwgYTIxLCBhMjIsIGEyMywKLSAgICAgICAgYjAwLCBiMDEsIGIwMiwKLSAgICAgICAgYjEwLCBiMTEsIGIxMiwKLSAgICAgICAgYjIwLCBiMjEsIGIyMjsKLQotICAgIGlmIChNYXRoLmFicyhsZW4pIDwgR0xNQVRfRVBTSUxPTikgeyByZXR1cm4gbnVsbDsgfQotICAgIAotICAgIGxlbiA9IDEgLyBsZW47Ci0gICAgeCAqPSBsZW47Ci0gICAgeSAqPSBsZW47Ci0gICAgeiAqPSBsZW47Ci0KLSAgICBzID0gTWF0aC5zaW4ocmFkKTsKLSAgICBjID0gTWF0aC5jb3MocmFkKTsKLSAgICB0ID0gMSAtIGM7Ci0KLSAgICBhMDAgPSBhWzBdOyBhMDEgPSBhWzFdOyBhMDIgPSBhWzJdOyBhMDMgPSBhWzNdOwotICAgIGExMCA9IGFbNF07IGExMSA9IGFbNV07IGExMiA9IGFbNl07IGExMyA9IGFbN107Ci0gICAgYTIwID0gYVs4XTsgYTIxID0gYVs5XTsgYTIyID0gYVsxMF07IGEyMyA9IGFbMTFdOwotCi0gICAgLy8gQ29uc3RydWN0IHRoZSBlbGVtZW50cyBvZiB0aGUgcm90YXRpb24gbWF0cml4Ci0gICAgYjAwID0geCAqIHggKiB0ICsgYzsgYjAxID0geSAqIHggKiB0ICsgeiAqIHM7IGIwMiA9IHogKiB4ICogdCAtIHkgKiBzOwotICAgIGIxMCA9IHggKiB5ICogdCAtIHogKiBzOyBiMTEgPSB5ICogeSAqIHQgKyBjOyBiMTIgPSB6ICogeSAqIHQgKyB4ICogczsKLSAgICBiMjAgPSB4ICogeiAqIHQgKyB5ICogczsgYjIxID0geSAqIHogKiB0IC0geCAqIHM7IGIyMiA9IHogKiB6ICogdCArIGM7Ci0KLSAgICAvLyBQZXJmb3JtIHJvdGF0aW9uLXNwZWNpZmljIG1hdHJpeCBtdWx0aXBsaWNhdGlvbgotICAgIG91dFswXSA9IGEwMCAqIGIwMCArIGExMCAqIGIwMSArIGEyMCAqIGIwMjsKLSAgICBvdXRbMV0gPSBhMDEgKiBiMDAgKyBhMTEgKiBiMDEgKyBhMjEgKiBiMDI7Ci0gICAgb3V0WzJdID0gYTAyICogYjAwICsgYTEyICogYjAxICsgYTIyICogYjAyOwotICAgIG91dFszXSA9IGEwMyAqIGIwMCArIGExMyAqIGIwMSArIGEyMyAqIGIwMjsKLSAgICBvdXRbNF0gPSBhMDAgKiBiMTAgKyBhMTAgKiBiMTEgKyBhMjAgKiBiMTI7Ci0gICAgb3V0WzVdID0gYTAxICogYjEwICsgYTExICogYjExICsgYTIxICogYjEyOwotICAgIG91dFs2XSA9IGEwMiAqIGIxMCArIGExMiAqIGIxMSArIGEyMiAqIGIxMjsKLSAgICBvdXRbN10gPSBhMDMgKiBiMTAgKyBhMTMgKiBiMTEgKyBhMjMgKiBiMTI7Ci0gICAgb3V0WzhdID0gYTAwICogYjIwICsgYTEwICogYjIxICsgYTIwICogYjIyOwotICAgIG91dFs5XSA9IGEwMSAqIGIyMCArIGExMSAqIGIyMSArIGEyMSAqIGIyMjsKLSAgICBvdXRbMTBdID0gYTAyICogYjIwICsgYTEyICogYjIxICsgYTIyICogYjIyOwotICAgIG91dFsxMV0gPSBhMDMgKiBiMjAgKyBhMTMgKiBiMjEgKyBhMjMgKiBiMjI7Ci0KLSAgICBpZiAoYSAhPT0gb3V0KSB7IC8vIElmIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRpZmZlciwgY29weSB0aGUgdW5jaGFuZ2VkIGxhc3Qgcm93Ci0gICAgICAgIG91dFsxMl0gPSBhWzEyXTsKLSAgICAgICAgb3V0WzEzXSA9IGFbMTNdOwotICAgICAgICBvdXRbMTRdID0gYVsxNF07Ci0gICAgICAgIG91dFsxNV0gPSBhWzE1XTsKLSAgICB9Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUm90YXRlcyBhIG1hdHJpeCBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBYIGF4aXMKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAotICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCi0gKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LnJvdGF0ZVggPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKLSAgICB2YXIgcyA9IE1hdGguc2luKHJhZCksCi0gICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpLAotICAgICAgICBhMTAgPSBhWzRdLAotICAgICAgICBhMTEgPSBhWzVdLAotICAgICAgICBhMTIgPSBhWzZdLAotICAgICAgICBhMTMgPSBhWzddLAotICAgICAgICBhMjAgPSBhWzhdLAotICAgICAgICBhMjEgPSBhWzldLAotICAgICAgICBhMjIgPSBhWzEwXSwKLSAgICAgICAgYTIzID0gYVsxMV07Ci0KLSAgICBpZiAoYSAhPT0gb3V0KSB7IC8vIElmIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRpZmZlciwgY29weSB0aGUgdW5jaGFuZ2VkIHJvd3MKLSAgICAgICAgb3V0WzBdICA9IGFbMF07Ci0gICAgICAgIG91dFsxXSAgPSBhWzFdOwotICAgICAgICBvdXRbMl0gID0gYVsyXTsKLSAgICAgICAgb3V0WzNdICA9IGFbM107Ci0gICAgICAgIG91dFsxMl0gPSBhWzEyXTsKLSAgICAgICAgb3V0WzEzXSA9IGFbMTNdOwotICAgICAgICBvdXRbMTRdID0gYVsxNF07Ci0gICAgICAgIG91dFsxNV0gPSBhWzE1XTsKLSAgICB9Ci0KLSAgICAvLyBQZXJmb3JtIGF4aXMtc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCi0gICAgb3V0WzRdID0gYTEwICogYyArIGEyMCAqIHM7Ci0gICAgb3V0WzVdID0gYTExICogYyArIGEyMSAqIHM7Ci0gICAgb3V0WzZdID0gYTEyICogYyArIGEyMiAqIHM7Ci0gICAgb3V0WzddID0gYTEzICogYyArIGEyMyAqIHM7Ci0gICAgb3V0WzhdID0gYTIwICogYyAtIGExMCAqIHM7Ci0gICAgb3V0WzldID0gYTIxICogYyAtIGExMSAqIHM7Ci0gICAgb3V0WzEwXSA9IGEyMiAqIGMgLSBhMTIgKiBzOwotICAgIG91dFsxMV0gPSBhMjMgKiBjIC0gYTEzICogczsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSb3RhdGVzIGEgbWF0cml4IGJ5IHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIFkgYXhpcwotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4Ci0gKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKLSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5Ci0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQucm90YXRlWSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgewotICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKSwKLSAgICAgICAgYyA9IE1hdGguY29zKHJhZCksCi0gICAgICAgIGEwMCA9IGFbMF0sCi0gICAgICAgIGEwMSA9IGFbMV0sCi0gICAgICAgIGEwMiA9IGFbMl0sCi0gICAgICAgIGEwMyA9IGFbM10sCi0gICAgICAgIGEyMCA9IGFbOF0sCi0gICAgICAgIGEyMSA9IGFbOV0sCi0gICAgICAgIGEyMiA9IGFbMTBdLAotICAgICAgICBhMjMgPSBhWzExXTsKLQotICAgIGlmIChhICE9PSBvdXQpIHsgLy8gSWYgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZGlmZmVyLCBjb3B5IHRoZSB1bmNoYW5nZWQgcm93cwotICAgICAgICBvdXRbNF0gID0gYVs0XTsKLSAgICAgICAgb3V0WzVdICA9IGFbNV07Ci0gICAgICAgIG91dFs2XSAgPSBhWzZdOwotICAgICAgICBvdXRbN10gID0gYVs3XTsKLSAgICAgICAgb3V0WzEyXSA9IGFbMTJdOwotICAgICAgICBvdXRbMTNdID0gYVsxM107Ci0gICAgICAgIG91dFsxNF0gPSBhWzE0XTsKLSAgICAgICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIH0KLQotICAgIC8vIFBlcmZvcm0gYXhpcy1zcGVjaWZpYyBtYXRyaXggbXVsdGlwbGljYXRpb24KLSAgICBvdXRbMF0gPSBhMDAgKiBjIC0gYTIwICogczsKLSAgICBvdXRbMV0gPSBhMDEgKiBjIC0gYTIxICogczsKLSAgICBvdXRbMl0gPSBhMDIgKiBjIC0gYTIyICogczsKLSAgICBvdXRbM10gPSBhMDMgKiBjIC0gYTIzICogczsKLSAgICBvdXRbOF0gPSBhMDAgKiBzICsgYTIwICogYzsKLSAgICBvdXRbOV0gPSBhMDEgKiBzICsgYTIxICogYzsKLSAgICBvdXRbMTBdID0gYTAyICogcyArIGEyMiAqIGM7Ci0gICAgb3V0WzExXSA9IGEwMyAqIHMgKyBhMjMgKiBjOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJvdGF0ZXMgYSBtYXRyaXggYnkgdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWiBheGlzCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKLSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQotICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5yb3RhdGVaID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7Ci0gICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAotICAgICAgICBjID0gTWF0aC5jb3MocmFkKSwKLSAgICAgICAgYTAwID0gYVswXSwKLSAgICAgICAgYTAxID0gYVsxXSwKLSAgICAgICAgYTAyID0gYVsyXSwKLSAgICAgICAgYTAzID0gYVszXSwKLSAgICAgICAgYTEwID0gYVs0XSwKLSAgICAgICAgYTExID0gYVs1XSwKLSAgICAgICAgYTEyID0gYVs2XSwKLSAgICAgICAgYTEzID0gYVs3XTsKLQotICAgIGlmIChhICE9PSBvdXQpIHsgLy8gSWYgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZGlmZmVyLCBjb3B5IHRoZSB1bmNoYW5nZWQgbGFzdCByb3cKLSAgICAgICAgb3V0WzhdICA9IGFbOF07Ci0gICAgICAgIG91dFs5XSAgPSBhWzldOwotICAgICAgICBvdXRbMTBdID0gYVsxMF07Ci0gICAgICAgIG91dFsxMV0gPSBhWzExXTsKLSAgICAgICAgb3V0WzEyXSA9IGFbMTJdOwotICAgICAgICBvdXRbMTNdID0gYVsxM107Ci0gICAgICAgIG91dFsxNF0gPSBhWzE0XTsKLSAgICAgICAgb3V0WzE1XSA9IGFbMTVdOwotICAgIH0KLQotICAgIC8vIFBlcmZvcm0gYXhpcy1zcGVjaWZpYyBtYXRyaXggbXVsdGlwbGljYXRpb24KLSAgICBvdXRbMF0gPSBhMDAgKiBjICsgYTEwICogczsKLSAgICBvdXRbMV0gPSBhMDEgKiBjICsgYTExICogczsKLSAgICBvdXRbMl0gPSBhMDIgKiBjICsgYTEyICogczsKLSAgICBvdXRbM10gPSBhMDMgKiBjICsgYTEzICogczsKLSAgICBvdXRbNF0gPSBhMTAgKiBjIC0gYTAwICogczsKLSAgICBvdXRbNV0gPSBhMTEgKiBjIC0gYTAxICogczsKLSAgICBvdXRbNl0gPSBhMTIgKiBjIC0gYTAyICogczsKLSAgICBvdXRbN10gPSBhMTMgKiBjIC0gYTAzICogczsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSBxdWF0ZXJuaW9uIHJvdGF0aW9uIGFuZCB2ZWN0b3IgdHJhbnNsYXRpb24KLSAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byAoYnV0IG11Y2ggZmFzdGVyIHRoYW4pOgotICoKLSAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOwotICogICAgIG1hdDQudHJhbnNsYXRlKGRlc3QsIHZlYyk7Ci0gKiAgICAgdmFyIHF1YXRNYXQgPSBtYXQ0LmNyZWF0ZSgpOwotICogICAgIHF1YXQ0LnRvTWF0NChxdWF0LCBxdWF0TWF0KTsKLSAqICAgICBtYXQ0Lm11bHRpcGx5KGRlc3QsIHF1YXRNYXQpOwotICoKLSAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKLSAqIEBwYXJhbSB7cXVhdDR9IHEgUm90YXRpb24gcXVhdGVybmlvbgotICogQHBhcmFtIHt2ZWMzfSB2IFRyYW5zbGF0aW9uIHZlY3RvcgotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uID0gZnVuY3Rpb24gKG91dCwgcSwgdikgewotICAgIC8vIFF1YXRlcm5pb24gbWF0aAotICAgIHZhciB4ID0gcVswXSwgeSA9IHFbMV0sIHogPSBxWzJdLCB3ID0gcVszXSwKLSAgICAgICAgeDIgPSB4ICsgeCwKLSAgICAgICAgeTIgPSB5ICsgeSwKLSAgICAgICAgejIgPSB6ICsgeiwKLQotICAgICAgICB4eCA9IHggKiB4MiwKLSAgICAgICAgeHkgPSB4ICogeTIsCi0gICAgICAgIHh6ID0geCAqIHoyLAotICAgICAgICB5eSA9IHkgKiB5MiwKLSAgICAgICAgeXogPSB5ICogejIsCi0gICAgICAgIHp6ID0geiAqIHoyLAotICAgICAgICB3eCA9IHcgKiB4MiwKLSAgICAgICAgd3kgPSB3ICogeTIsCi0gICAgICAgIHd6ID0gdyAqIHoyOwotCi0gICAgb3V0WzBdID0gMSAtICh5eSArIHp6KTsKLSAgICBvdXRbMV0gPSB4eSArIHd6OwotICAgIG91dFsyXSA9IHh6IC0gd3k7Ci0gICAgb3V0WzNdID0gMDsKLSAgICBvdXRbNF0gPSB4eSAtIHd6OwotICAgIG91dFs1XSA9IDEgLSAoeHggKyB6eik7Ci0gICAgb3V0WzZdID0geXogKyB3eDsKLSAgICBvdXRbN10gPSAwOwotICAgIG91dFs4XSA9IHh6ICsgd3k7Ci0gICAgb3V0WzldID0geXogLSB3eDsKLSAgICBvdXRbMTBdID0gMSAtICh4eCArIHl5KTsKLSAgICBvdXRbMTFdID0gMDsKLSAgICBvdXRbMTJdID0gdlswXTsKLSAgICBvdXRbMTNdID0gdlsxXTsKLSAgICBvdXRbMTRdID0gdlsyXTsKLSAgICBvdXRbMTVdID0gMTsKLSAgICAKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0qIENhbGN1bGF0ZXMgYSA0eDQgbWF0cml4IGZyb20gdGhlIGdpdmVuIHF1YXRlcm5pb24KLSoKLSogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAotKiBAcGFyYW0ge3F1YXR9IHEgUXVhdGVybmlvbiB0byBjcmVhdGUgbWF0cml4IGZyb20KLSoKLSogQHJldHVybnMge21hdDR9IG91dAotKi8KLW1hdDQuZnJvbVF1YXQgPSBmdW5jdGlvbiAob3V0LCBxKSB7Ci0gICAgdmFyIHggPSBxWzBdLCB5ID0gcVsxXSwgeiA9IHFbMl0sIHcgPSBxWzNdLAotICAgICAgICB4MiA9IHggKyB4LAotICAgICAgICB5MiA9IHkgKyB5LAotICAgICAgICB6MiA9IHogKyB6LAotCi0gICAgICAgIHh4ID0geCAqIHgyLAotICAgICAgICB4eSA9IHggKiB5MiwKLSAgICAgICAgeHogPSB4ICogejIsCi0gICAgICAgIHl5ID0geSAqIHkyLAotICAgICAgICB5eiA9IHkgKiB6MiwKLSAgICAgICAgenogPSB6ICogejIsCi0gICAgICAgIHd4ID0gdyAqIHgyLAotICAgICAgICB3eSA9IHcgKiB5MiwKLSAgICAgICAgd3ogPSB3ICogejI7Ci0KLSAgICBvdXRbMF0gPSAxIC0gKHl5ICsgenopOwotICAgIG91dFsxXSA9IHh5ICsgd3o7Ci0gICAgb3V0WzJdID0geHogLSB3eTsKLSAgICBvdXRbM10gPSAwOwotCi0gICAgb3V0WzRdID0geHkgLSB3ejsKLSAgICBvdXRbNV0gPSAxIC0gKHh4ICsgenopOwotICAgIG91dFs2XSA9IHl6ICsgd3g7Ci0gICAgb3V0WzddID0gMDsKLQotICAgIG91dFs4XSA9IHh6ICsgd3k7Ci0gICAgb3V0WzldID0geXogLSB3eDsKLSAgICBvdXRbMTBdID0gMSAtICh4eCArIHl5KTsKLSAgICBvdXRbMTFdID0gMDsKLQotICAgIG91dFsxMl0gPSAwOwotICAgIG91dFsxM10gPSAwOwotICAgIG91dFsxNF0gPSAwOwotICAgIG91dFsxNV0gPSAxOwotCi0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogR2VuZXJhdGVzIGEgZnJ1c3R1bSBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gYm91bmRzCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCBmcnVzdHVtIG1hdHJpeCB3aWxsIGJlIHdyaXR0ZW4gaW50bwotICogQHBhcmFtIHtOdW1iZXJ9IGxlZnQgTGVmdCBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtOdW1iZXJ9IHJpZ2h0IFJpZ2h0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcGFyYW0ge051bWJlcn0gYm90dG9tIEJvdHRvbSBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtOdW1iZXJ9IHRvcCBUb3AgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEBwYXJhbSB7TnVtYmVyfSBuZWFyIE5lYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEBwYXJhbSB7TnVtYmVyfSBmYXIgRmFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQuZnJ1c3R1bSA9IGZ1bmN0aW9uIChvdXQsIGxlZnQsIHJpZ2h0LCBib3R0b20sIHRvcCwgbmVhciwgZmFyKSB7Ci0gICAgdmFyIHJsID0gMSAvIChyaWdodCAtIGxlZnQpLAotICAgICAgICB0YiA9IDEgLyAodG9wIC0gYm90dG9tKSwKLSAgICAgICAgbmYgPSAxIC8gKG5lYXIgLSBmYXIpOwotICAgIG91dFswXSA9IChuZWFyICogMikgKiBybDsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMDsKLSAgICBvdXRbNF0gPSAwOwotICAgIG91dFs1XSA9IChuZWFyICogMikgKiB0YjsKLSAgICBvdXRbNl0gPSAwOwotICAgIG91dFs3XSA9IDA7Ci0gICAgb3V0WzhdID0gKHJpZ2h0ICsgbGVmdCkgKiBybDsKLSAgICBvdXRbOV0gPSAodG9wICsgYm90dG9tKSAqIHRiOwotICAgIG91dFsxMF0gPSAoZmFyICsgbmVhcikgKiBuZjsKLSAgICBvdXRbMTFdID0gLTE7Ci0gICAgb3V0WzEyXSA9IDA7Ci0gICAgb3V0WzEzXSA9IDA7Ci0gICAgb3V0WzE0XSA9IChmYXIgKiBuZWFyICogMikgKiBuZjsKLSAgICBvdXRbMTVdID0gMDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBHZW5lcmF0ZXMgYSBwZXJzcGVjdGl2ZSBwcm9qZWN0aW9uIG1hdHJpeCB3aXRoIHRoZSBnaXZlbiBib3VuZHMKLSAqCi0gKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCi0gKiBAcGFyYW0ge251bWJlcn0gZm92eSBWZXJ0aWNhbCBmaWVsZCBvZiB2aWV3IGluIHJhZGlhbnMKLSAqIEBwYXJhbSB7bnVtYmVyfSBhc3BlY3QgQXNwZWN0IHJhdGlvLiB0eXBpY2FsbHkgdmlld3BvcnQgd2lkdGgvaGVpZ2h0Ci0gKiBAcGFyYW0ge251bWJlcn0gbmVhciBOZWFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcGFyYW0ge251bWJlcn0gZmFyIEZhciBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHJldHVybnMge21hdDR9IG91dAotICovCi1tYXQ0LnBlcnNwZWN0aXZlID0gZnVuY3Rpb24gKG91dCwgZm92eSwgYXNwZWN0LCBuZWFyLCBmYXIpIHsKLSAgICB2YXIgZiA9IDEuMCAvIE1hdGgudGFuKGZvdnkgLyAyKSwKLSAgICAgICAgbmYgPSAxIC8gKG5lYXIgLSBmYXIpOwotICAgIG91dFswXSA9IGYgLyBhc3BlY3Q7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIG91dFszXSA9IDA7Ci0gICAgb3V0WzRdID0gMDsKLSAgICBvdXRbNV0gPSBmOwotICAgIG91dFs2XSA9IDA7Ci0gICAgb3V0WzddID0gMDsKLSAgICBvdXRbOF0gPSAwOwotICAgIG91dFs5XSA9IDA7Ci0gICAgb3V0WzEwXSA9IChmYXIgKyBuZWFyKSAqIG5mOwotICAgIG91dFsxMV0gPSAtMTsKLSAgICBvdXRbMTJdID0gMDsKLSAgICBvdXRbMTNdID0gMDsKLSAgICBvdXRbMTRdID0gKDIgKiBmYXIgKiBuZWFyKSAqIG5mOwotICAgIG91dFsxNV0gPSAwOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEdlbmVyYXRlcyBhIG9ydGhvZ29uYWwgcHJvamVjdGlvbiBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gYm91bmRzCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCBmcnVzdHVtIG1hdHJpeCB3aWxsIGJlIHdyaXR0ZW4gaW50bwotICogQHBhcmFtIHtudW1iZXJ9IGxlZnQgTGVmdCBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtudW1iZXJ9IHJpZ2h0IFJpZ2h0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcGFyYW0ge251bWJlcn0gYm90dG9tIEJvdHRvbSBib3VuZCBvZiB0aGUgZnJ1c3R1bQotICogQHBhcmFtIHtudW1iZXJ9IHRvcCBUb3AgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEBwYXJhbSB7bnVtYmVyfSBuZWFyIE5lYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KLSAqIEBwYXJhbSB7bnVtYmVyfSBmYXIgRmFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCi0gKiBAcmV0dXJucyB7bWF0NH0gb3V0Ci0gKi8KLW1hdDQub3J0aG8gPSBmdW5jdGlvbiAob3V0LCBsZWZ0LCByaWdodCwgYm90dG9tLCB0b3AsIG5lYXIsIGZhcikgewotICAgIHZhciBsciA9IDEgLyAobGVmdCAtIHJpZ2h0KSwKLSAgICAgICAgYnQgPSAxIC8gKGJvdHRvbSAtIHRvcCksCi0gICAgICAgIG5mID0gMSAvIChuZWFyIC0gZmFyKTsKLSAgICBvdXRbMF0gPSAtMiAqIGxyOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAwOwotICAgIG91dFs0XSA9IDA7Ci0gICAgb3V0WzVdID0gLTIgKiBidDsKLSAgICBvdXRbNl0gPSAwOwotICAgIG91dFs3XSA9IDA7Ci0gICAgb3V0WzhdID0gMDsKLSAgICBvdXRbOV0gPSAwOwotICAgIG91dFsxMF0gPSAyICogbmY7Ci0gICAgb3V0WzExXSA9IDA7Ci0gICAgb3V0WzEyXSA9IChsZWZ0ICsgcmlnaHQpICogbHI7Ci0gICAgb3V0WzEzXSA9ICh0b3AgKyBib3R0b20pICogYnQ7Ci0gICAgb3V0WzE0XSA9IChmYXIgKyBuZWFyKSAqIG5mOwotICAgIG91dFsxNV0gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEdlbmVyYXRlcyBhIGxvb2stYXQgbWF0cml4IHdpdGggdGhlIGdpdmVuIGV5ZSBwb3NpdGlvbiwgZm9jYWwgcG9pbnQsIGFuZCB1cCBheGlzCi0gKgotICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCBmcnVzdHVtIG1hdHJpeCB3aWxsIGJlIHdyaXR0ZW4gaW50bwotICogQHBhcmFtIHt2ZWMzfSBleWUgUG9zaXRpb24gb2YgdGhlIHZpZXdlcgotICogQHBhcmFtIHt2ZWMzfSBjZW50ZXIgUG9pbnQgdGhlIHZpZXdlciBpcyBsb29raW5nIGF0Ci0gKiBAcGFyYW0ge3ZlYzN9IHVwIHZlYzMgcG9pbnRpbmcgdXAKLSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKLSAqLwotbWF0NC5sb29rQXQgPSBmdW5jdGlvbiAob3V0LCBleWUsIGNlbnRlciwgdXApIHsKLSAgICB2YXIgeDAsIHgxLCB4MiwgeTAsIHkxLCB5MiwgejAsIHoxLCB6MiwgbGVuLAotICAgICAgICBleWV4ID0gZXllWzBdLAotICAgICAgICBleWV5ID0gZXllWzFdLAotICAgICAgICBleWV6ID0gZXllWzJdLAotICAgICAgICB1cHggPSB1cFswXSwKLSAgICAgICAgdXB5ID0gdXBbMV0sCi0gICAgICAgIHVweiA9IHVwWzJdLAotICAgICAgICBjZW50ZXJ4ID0gY2VudGVyWzBdLAotICAgICAgICBjZW50ZXJ5ID0gY2VudGVyWzFdLAotICAgICAgICBjZW50ZXJ6ID0gY2VudGVyWzJdOwotCi0gICAgaWYgKE1hdGguYWJzKGV5ZXggLSBjZW50ZXJ4KSA8IEdMTUFUX0VQU0lMT04gJiYKLSAgICAgICAgTWF0aC5hYnMoZXlleSAtIGNlbnRlcnkpIDwgR0xNQVRfRVBTSUxPTiAmJgotICAgICAgICBNYXRoLmFicyhleWV6IC0gY2VudGVyeikgPCBHTE1BVF9FUFNJTE9OKSB7Ci0gICAgICAgIHJldHVybiBtYXQ0LmlkZW50aXR5KG91dCk7Ci0gICAgfQotCi0gICAgejAgPSBleWV4IC0gY2VudGVyeDsKLSAgICB6MSA9IGV5ZXkgLSBjZW50ZXJ5OwotICAgIHoyID0gZXlleiAtIGNlbnRlcno7Ci0KLSAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KHowICogejAgKyB6MSAqIHoxICsgejIgKiB6Mik7Ci0gICAgejAgKj0gbGVuOwotICAgIHoxICo9IGxlbjsKLSAgICB6MiAqPSBsZW47Ci0KLSAgICB4MCA9IHVweSAqIHoyIC0gdXB6ICogejE7Ci0gICAgeDEgPSB1cHogKiB6MCAtIHVweCAqIHoyOwotICAgIHgyID0gdXB4ICogejEgLSB1cHkgKiB6MDsKLSAgICBsZW4gPSBNYXRoLnNxcnQoeDAgKiB4MCArIHgxICogeDEgKyB4MiAqIHgyKTsKLSAgICBpZiAoIWxlbikgewotICAgICAgICB4MCA9IDA7Ci0gICAgICAgIHgxID0gMDsKLSAgICAgICAgeDIgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGxlbiA9IDEgLyBsZW47Ci0gICAgICAgIHgwICo9IGxlbjsKLSAgICAgICAgeDEgKj0gbGVuOwotICAgICAgICB4MiAqPSBsZW47Ci0gICAgfQotCi0gICAgeTAgPSB6MSAqIHgyIC0gejIgKiB4MTsKLSAgICB5MSA9IHoyICogeDAgLSB6MCAqIHgyOwotICAgIHkyID0gejAgKiB4MSAtIHoxICogeDA7Ci0KLSAgICBsZW4gPSBNYXRoLnNxcnQoeTAgKiB5MCArIHkxICogeTEgKyB5MiAqIHkyKTsKLSAgICBpZiAoIWxlbikgewotICAgICAgICB5MCA9IDA7Ci0gICAgICAgIHkxID0gMDsKLSAgICAgICAgeTIgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGxlbiA9IDEgLyBsZW47Ci0gICAgICAgIHkwICo9IGxlbjsKLSAgICAgICAgeTEgKj0gbGVuOwotICAgICAgICB5MiAqPSBsZW47Ci0gICAgfQotCi0gICAgb3V0WzBdID0geDA7Ci0gICAgb3V0WzFdID0geTA7Ci0gICAgb3V0WzJdID0gejA7Ci0gICAgb3V0WzNdID0gMDsKLSAgICBvdXRbNF0gPSB4MTsKLSAgICBvdXRbNV0gPSB5MTsKLSAgICBvdXRbNl0gPSB6MTsKLSAgICBvdXRbN10gPSAwOwotICAgIG91dFs4XSA9IHgyOwotICAgIG91dFs5XSA9IHkyOwotICAgIG91dFsxMF0gPSB6MjsKLSAgICBvdXRbMTFdID0gMDsKLSAgICBvdXRbMTJdID0gLSh4MCAqIGV5ZXggKyB4MSAqIGV5ZXkgKyB4MiAqIGV5ZXopOwotICAgIG91dFsxM10gPSAtKHkwICogZXlleCArIHkxICogZXlleSArIHkyICogZXlleik7Ci0gICAgb3V0WzE0XSA9IC0oejAgKiBleWV4ICsgejEgKiBleWV5ICsgejIgKiBleWV6KTsKLSAgICBvdXRbMTVdID0gMTsKLQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBtYXQ0Ci0gKgotICogQHBhcmFtIHttYXQ0fSBtYXQgbWF0cml4IHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZwotICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgKLSAqLwotbWF0NC5zdHIgPSBmdW5jdGlvbiAoYSkgewotICAgIHJldHVybiAnbWF0NCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgYVszXSArICcsICcgKwotICAgICAgICAgICAgICAgICAgICBhWzRdICsgJywgJyArIGFbNV0gKyAnLCAnICsgYVs2XSArICcsICcgKyBhWzddICsgJywgJyArCi0gICAgICAgICAgICAgICAgICAgIGFbOF0gKyAnLCAnICsgYVs5XSArICcsICcgKyBhWzEwXSArICcsICcgKyBhWzExXSArICcsICcgKyAKLSAgICAgICAgICAgICAgICAgICAgYVsxMl0gKyAnLCAnICsgYVsxM10gKyAnLCAnICsgYVsxNF0gKyAnLCAnICsgYVsxNV0gKyAnKSc7Ci19OwotCi1pZih0eXBlb2YoZXhwb3J0cykgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgZXhwb3J0cy5tYXQ0ID0gbWF0NDsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC9xdWF0LmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3F1YXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMjkwZDMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3F1YXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0NTcgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIFF1YXRlcm5pb24KLSAqIEBuYW1lIHF1YXQKLSAqLwotdmFyIHF1YXQgPSB7fTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IHF1YXQKLSAqCi0gKiBAcmV0dXJucyB7cXVhdH0gYSBuZXcgcXVhdGVybmlvbgotICovCi1xdWF0LmNyZWF0ZSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSg0KTsKLSAgICBvdXRbMF0gPSAwOwotICAgIG91dFsxXSA9IDA7Ci0gICAgb3V0WzJdID0gMDsKLSAgICBvdXRbM10gPSAxOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgcXVhdCBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIHF1YXRlcm5pb24KLSAqCi0gKiBAcGFyYW0ge3F1YXR9IGEgcXVhdGVybmlvbiB0byBjbG9uZQotICogQHJldHVybnMge3F1YXR9IGEgbmV3IHF1YXRlcm5pb24KLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmNsb25lID0gdmVjNC5jbG9uZTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IHF1YXQgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4gdmFsdWVzCi0gKgotICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0geiBaIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHcgVyBjb21wb25lbnQKLSAqIEByZXR1cm5zIHtxdWF0fSBhIG5ldyBxdWF0ZXJuaW9uCi0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5mcm9tVmFsdWVzID0gdmVjNC5mcm9tVmFsdWVzOwotCi0vKioKLSAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSBxdWF0IHRvIGFub3RoZXIKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgc291cmNlIHF1YXRlcm5pb24KLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmNvcHkgPSB2ZWM0LmNvcHk7Ci0KLS8qKgotICogU2V0IHRoZSBjb21wb25lbnRzIG9mIGEgcXVhdCB0byB0aGUgZ2l2ZW4gdmFsdWVzCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCi0gKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0gdyBXIGNvbXBvbmVudAotICogQHJldHVybnMge3F1YXR9IG91dAotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQuc2V0ID0gdmVjNC5zZXQ7Ci0KLS8qKgotICogU2V0IGEgcXVhdCB0byB0aGUgaWRlbnRpdHkgcXVhdGVybmlvbgotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHJldHVybnMge3F1YXR9IG91dAotICovCi1xdWF0LmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7Ci0gICAgb3V0WzBdID0gMDsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTZXRzIGEgcXVhdCBmcm9tIHRoZSBnaXZlbiBhbmdsZSBhbmQgcm90YXRpb24gYXhpcywKLSAqIHRoZW4gcmV0dXJucyBpdC4KLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7dmVjM30gYXhpcyB0aGUgYXhpcyBhcm91bmQgd2hpY2ggdG8gcm90YXRlCi0gKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSBpbiByYWRpYW5zCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKiovCi1xdWF0LnNldEF4aXNBbmdsZSA9IGZ1bmN0aW9uKG91dCwgYXhpcywgcmFkKSB7Ci0gICAgcmFkID0gcmFkICogMC41OwotICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKTsKLSAgICBvdXRbMF0gPSBzICogYXhpc1swXTsKLSAgICBvdXRbMV0gPSBzICogYXhpc1sxXTsKLSAgICBvdXRbMl0gPSBzICogYXhpc1syXTsKLSAgICBvdXRbM10gPSBNYXRoLmNvcyhyYWQpOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFkZHMgdHdvIHF1YXQncwotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5hZGQgPSB2ZWM0LmFkZDsKLQotLyoqCi0gKiBNdWx0aXBsaWVzIHR3byBxdWF0J3MKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHtxdWF0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3F1YXR9IG91dAotICovCi1xdWF0Lm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKLSAgICAgICAgYnggPSBiWzBdLCBieSA9IGJbMV0sIGJ6ID0gYlsyXSwgYncgPSBiWzNdOwotCi0gICAgb3V0WzBdID0gYXggKiBidyArIGF3ICogYnggKyBheSAqIGJ6IC0gYXogKiBieTsKLSAgICBvdXRbMV0gPSBheSAqIGJ3ICsgYXcgKiBieSArIGF6ICogYnggLSBheCAqIGJ6OwotICAgIG91dFsyXSA9IGF6ICogYncgKyBhdyAqIGJ6ICsgYXggKiBieSAtIGF5ICogYng7Ci0gICAgb3V0WzNdID0gYXcgKiBidyAtIGF4ICogYnggLSBheSAqIGJ5IC0gYXogKiBiejsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHF1YXQubXVsdGlwbHl9Ci0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5tdWwgPSBxdWF0Lm11bHRpcGx5OwotCi0vKioKLSAqIFNjYWxlcyBhIHF1YXQgYnkgYSBzY2FsYXIgbnVtYmVyCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgdmVjdG9yIHRvIHNjYWxlCi0gKiBAcGFyYW0ge051bWJlcn0gYiBhbW91bnQgdG8gc2NhbGUgdGhlIHZlY3RvciBieQotICogQHJldHVybnMge3F1YXR9IG91dAotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQuc2NhbGUgPSB2ZWM0LnNjYWxlOwotCi0vKioKLSAqIFJvdGF0ZXMgYSBxdWF0ZXJuaW9uIGJ5IHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIFggYXhpcwotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHF1YXQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKLSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQotICogQHBhcmFtIHtudW1iZXJ9IHJhZCBhbmdsZSAoaW4gcmFkaWFucykgdG8gcm90YXRlCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKi8KLXF1YXQucm90YXRlWCA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgewotICAgIHJhZCAqPSAwLjU7IAotCi0gICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKLSAgICAgICAgYnggPSBNYXRoLnNpbihyYWQpLCBidyA9IE1hdGguY29zKHJhZCk7Ci0KLSAgICBvdXRbMF0gPSBheCAqIGJ3ICsgYXcgKiBieDsKLSAgICBvdXRbMV0gPSBheSAqIGJ3ICsgYXogKiBieDsKLSAgICBvdXRbMl0gPSBheiAqIGJ3IC0gYXkgKiBieDsKLSAgICBvdXRbM10gPSBhdyAqIGJ3IC0gYXggKiBieDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBZIGF4aXMKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCBxdWF0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0Ci0gKiBAcGFyYW0ge3F1YXR9IGEgcXVhdCB0byByb3RhdGUKLSAqIEBwYXJhbSB7bnVtYmVyfSByYWQgYW5nbGUgKGluIHJhZGlhbnMpIHRvIHJvdGF0ZQotICogQHJldHVybnMge3F1YXR9IG91dAotICovCi1xdWF0LnJvdGF0ZVkgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKLSAgICByYWQgKj0gMC41OyAKLQotICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLCBhdyA9IGFbM10sCi0gICAgICAgIGJ5ID0gTWF0aC5zaW4ocmFkKSwgYncgPSBNYXRoLmNvcyhyYWQpOwotCi0gICAgb3V0WzBdID0gYXggKiBidyAtIGF6ICogYnk7Ci0gICAgb3V0WzFdID0gYXkgKiBidyArIGF3ICogYnk7Ci0gICAgb3V0WzJdID0gYXogKiBidyArIGF4ICogYnk7Ci0gICAgb3V0WzNdID0gYXcgKiBidyAtIGF5ICogYnk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUm90YXRlcyBhIHF1YXRlcm5pb24gYnkgdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWiBheGlzCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgcXVhdCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAotICogQHBhcmFtIHtxdWF0fSBhIHF1YXQgdG8gcm90YXRlCi0gKiBAcGFyYW0ge251bWJlcn0gcmFkIGFuZ2xlIChpbiByYWRpYW5zKSB0byByb3RhdGUKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqLwotcXVhdC5yb3RhdGVaID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7Ci0gICAgcmFkICo9IDAuNTsgCi0KLSAgICB2YXIgYXggPSBhWzBdLCBheSA9IGFbMV0sIGF6ID0gYVsyXSwgYXcgPSBhWzNdLAotICAgICAgICBieiA9IE1hdGguc2luKHJhZCksIGJ3ID0gTWF0aC5jb3MocmFkKTsKLQotICAgIG91dFswXSA9IGF4ICogYncgKyBheSAqIGJ6OwotICAgIG91dFsxXSA9IGF5ICogYncgLSBheCAqIGJ6OwotICAgIG91dFsyXSA9IGF6ICogYncgKyBhdyAqIGJ6OwotICAgIG91dFszXSA9IGF3ICogYncgLSBheiAqIGJ6OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIFcgY29tcG9uZW50IG9mIGEgcXVhdCBmcm9tIHRoZSBYLCBZLCBhbmQgWiBjb21wb25lbnRzLgotICogQXNzdW1lcyB0aGF0IHF1YXRlcm5pb24gaXMgMSB1bml0IGluIGxlbmd0aC4KLSAqIEFueSBleGlzdGluZyBXIGNvbXBvbmVudCB3aWxsIGJlIGlnbm9yZWQuCi0gKgotICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCi0gKiBAcGFyYW0ge3F1YXR9IGEgcXVhdCB0byBjYWxjdWxhdGUgVyBjb21wb25lbnQgb2YKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqLwotcXVhdC5jYWxjdWxhdGVXID0gZnVuY3Rpb24gKG91dCwgYSkgewotICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdOwotCi0gICAgb3V0WzBdID0geDsKLSAgICBvdXRbMV0gPSB5OwotICAgIG91dFsyXSA9IHo7Ci0gICAgb3V0WzNdID0gLU1hdGguc3FydChNYXRoLmFicygxLjAgLSB4ICogeCAtIHkgKiB5IC0geiAqIHopKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBkb3QgcHJvZHVjdCBvZiB0d28gcXVhdCdzCi0gKgotICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBkb3QgcHJvZHVjdCBvZiBhIGFuZCBiCi0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5kb3QgPSB2ZWM0LmRvdDsKLQotLyoqCi0gKiBQZXJmb3JtcyBhIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHF1YXQncwotICoKLSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgotICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5sZXJwID0gdmVjNC5sZXJwOwotCi0vKioKLSAqIFBlcmZvcm1zIGEgc3BoZXJpY2FsIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHF1YXQKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHtxdWF0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cwotICogQHJldHVybnMge3F1YXR9IG91dAotICovCi1xdWF0LnNsZXJwID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgdCkgewotICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLCBhdyA9IGFbM10sCi0gICAgICAgIGJ4ID0gYlswXSwgYnkgPSBiWzFdLCBieiA9IGJbMl0sIGJ3ID0gYlszXTsKLQotICAgIHZhciBjb3NIYWxmVGhldGEgPSBheCAqIGJ4ICsgYXkgKiBieSArIGF6ICogYnogKyBhdyAqIGJ3LAotICAgICAgICBoYWxmVGhldGEsCi0gICAgICAgIHNpbkhhbGZUaGV0YSwKLSAgICAgICAgcmF0aW9BLAotICAgICAgICByYXRpb0I7Ci0KLSAgICBpZiAoTWF0aC5hYnMoY29zSGFsZlRoZXRhKSA+PSAxLjApIHsKLSAgICAgICAgaWYgKG91dCAhPT0gYSkgewotICAgICAgICAgICAgb3V0WzBdID0gYXg7Ci0gICAgICAgICAgICBvdXRbMV0gPSBheTsKLSAgICAgICAgICAgIG91dFsyXSA9IGF6OwotICAgICAgICAgICAgb3V0WzNdID0gYXc7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG91dDsKLSAgICB9Ci0KLSAgICBoYWxmVGhldGEgPSBNYXRoLmFjb3MoY29zSGFsZlRoZXRhKTsKLSAgICBzaW5IYWxmVGhldGEgPSBNYXRoLnNxcnQoMS4wIC0gY29zSGFsZlRoZXRhICogY29zSGFsZlRoZXRhKTsKLQotICAgIGlmIChNYXRoLmFicyhzaW5IYWxmVGhldGEpIDwgMC4wMDEpIHsKLSAgICAgICAgb3V0WzBdID0gKGF4ICogMC41ICsgYnggKiAwLjUpOwotICAgICAgICBvdXRbMV0gPSAoYXkgKiAwLjUgKyBieSAqIDAuNSk7Ci0gICAgICAgIG91dFsyXSA9IChheiAqIDAuNSArIGJ6ICogMC41KTsKLSAgICAgICAgb3V0WzNdID0gKGF3ICogMC41ICsgYncgKiAwLjUpOwotICAgICAgICByZXR1cm4gb3V0OwotICAgIH0KLQotICAgIHJhdGlvQSA9IE1hdGguc2luKCgxIC0gdCkgKiBoYWxmVGhldGEpIC8gc2luSGFsZlRoZXRhOwotICAgIHJhdGlvQiA9IE1hdGguc2luKHQgKiBoYWxmVGhldGEpIC8gc2luSGFsZlRoZXRhOwotCi0gICAgb3V0WzBdID0gKGF4ICogcmF0aW9BICsgYnggKiByYXRpb0IpOwotICAgIG91dFsxXSA9IChheSAqIHJhdGlvQSArIGJ5ICogcmF0aW9CKTsKLSAgICBvdXRbMl0gPSAoYXogKiByYXRpb0EgKyBieiAqIHJhdGlvQik7Ci0gICAgb3V0WzNdID0gKGF3ICogcmF0aW9BICsgYncgKiByYXRpb0IpOwotCi0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgaW52ZXJzZSBvZiBhIHF1YXQKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIGNhbGN1bGF0ZSBpbnZlcnNlIG9mCi0gKiBAcmV0dXJucyB7cXVhdH0gb3V0Ci0gKi8KLXF1YXQuaW52ZXJ0ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgdmFyIGEwID0gYVswXSwgYTEgPSBhWzFdLCBhMiA9IGFbMl0sIGEzID0gYVszXSwKLSAgICAgICAgZG90ID0gYTAqYTAgKyBhMSphMSArIGEyKmEyICsgYTMqYTMsCi0gICAgICAgIGludkRvdCA9IGRvdCA/IDEuMC9kb3QgOiAwOwotICAgIAotICAgIC8vIFRPRE86IFdvdWxkIGJlIGZhc3RlciB0byByZXR1cm4gWzAsMCwwLDBdIGltbWVkaWF0ZWx5IGlmIGRvdCA9PSAwCi0KLSAgICBvdXRbMF0gPSAtYTAqaW52RG90OwotICAgIG91dFsxXSA9IC1hMSppbnZEb3Q7Ci0gICAgb3V0WzJdID0gLWEyKmludkRvdDsKLSAgICBvdXRbM10gPSBhMyppbnZEb3Q7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgY29uanVnYXRlIG9mIGEgcXVhdAotICogSWYgdGhlIHF1YXRlcm5pb24gaXMgbm9ybWFsaXplZCwgdGhpcyBmdW5jdGlvbiBpcyBmYXN0ZXIgdGhhbiBxdWF0LmludmVyc2UgYW5kIHByb2R1Y2VzIHRoZSBzYW1lIHJlc3VsdC4KLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIGNhbGN1bGF0ZSBjb25qdWdhdGUgb2YKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqLwotcXVhdC5jb25qdWdhdGUgPSBmdW5jdGlvbiAob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gLWFbMF07Ci0gICAgb3V0WzFdID0gLWFbMV07Ci0gICAgb3V0WzJdID0gLWFbMl07Ci0gICAgb3V0WzNdID0gYVszXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSBxdWF0Ci0gKgotICogQHBhcmFtIHtxdWF0fSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBsZW5ndGggb2YgYQotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQubGVuZ3RoID0gdmVjNC5sZW5ndGg7Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayBxdWF0Lmxlbmd0aH0KLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmxlbiA9IHF1YXQubGVuZ3RoOwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgcXVhdAotICoKLSAqIEBwYXJhbSB7cXVhdH0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIHNxdWFyZWQgbGVuZ3RoIG9mCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGxlbmd0aCBvZiBhCi0gKiBAZnVuY3Rpb24KLSAqLwotcXVhdC5zcXVhcmVkTGVuZ3RoID0gdmVjNC5zcXVhcmVkTGVuZ3RoOwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgcXVhdC5zcXVhcmVkTGVuZ3RofQotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQuc3FyTGVuID0gcXVhdC5zcXVhcmVkTGVuZ3RoOwotCi0vKioKLSAqIE5vcm1hbGl6ZSBhIHF1YXQKLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0ZXJuaW9uIHRvIG5vcm1hbGl6ZQotICogQHJldHVybnMge3F1YXR9IG91dAotICogQGZ1bmN0aW9uCi0gKi8KLXF1YXQubm9ybWFsaXplID0gdmVjNC5ub3JtYWxpemU7Ci0KLS8qKgotICogQ3JlYXRlcyBhIHF1YXRlcm5pb24gZnJvbSB0aGUgZ2l2ZW4gM3gzIHJvdGF0aW9uIG1hdHJpeC4KLSAqCi0gKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KLSAqIEBwYXJhbSB7bWF0M30gbSByb3RhdGlvbiBtYXRyaXgKLSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKLSAqIEBmdW5jdGlvbgotICovCi1xdWF0LmZyb21NYXQzID0gKGZ1bmN0aW9uKCkgewotICAgIHZhciBzX2lOZXh0ID0gWzEsMiwwXTsKLSAgICByZXR1cm4gZnVuY3Rpb24ob3V0LCBtKSB7Ci0gICAgICAgIC8vIEFsZ29yaXRobSBpbiBLZW4gU2hvZW1ha2UncyBhcnRpY2xlIGluIDE5ODcgU0lHR1JBUEggY291cnNlIG5vdGVzCi0gICAgICAgIC8vIGFydGljbGUgIlF1YXRlcm5pb24gQ2FsY3VsdXMgYW5kIEZhc3QgQW5pbWF0aW9uIi4KLSAgICAgICAgdmFyIGZUcmFjZSA9IG1bMF0gKyBtWzRdICsgbVs4XTsKLSAgICAgICAgdmFyIGZSb290OwotCi0gICAgICAgIGlmICggZlRyYWNlID4gMC4wICkgewotICAgICAgICAgICAgLy8gfHd8ID4gMS8yLCBtYXkgYXMgd2VsbCBjaG9vc2UgdyA+IDEvMgotICAgICAgICAgICAgZlJvb3QgPSBNYXRoLnNxcnQoZlRyYWNlICsgMS4wKTsgIC8vIDJ3Ci0gICAgICAgICAgICBvdXRbM10gPSAwLjUgKiBmUm9vdDsKLSAgICAgICAgICAgIGZSb290ID0gMC41L2ZSb290OyAgLy8gMS8oNHcpCi0gICAgICAgICAgICBvdXRbMF0gPSAobVs3XS1tWzVdKSpmUm9vdDsKLSAgICAgICAgICAgIG91dFsxXSA9IChtWzJdLW1bNl0pKmZSb290OwotICAgICAgICAgICAgb3V0WzJdID0gKG1bM10tbVsxXSkqZlJvb3Q7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyB8d3wgPD0gMS8yCi0gICAgICAgICAgICB2YXIgaSA9IDA7Ci0gICAgICAgICAgICBpZiAoIG1bNF0gPiBtWzBdICkKLSAgICAgICAgICAgICAgaSA9IDE7Ci0gICAgICAgICAgICBpZiAoIG1bOF0gPiBtW2kqMytpXSApCi0gICAgICAgICAgICAgIGkgPSAyOwotICAgICAgICAgICAgdmFyIGogPSBzX2lOZXh0W2ldOwotICAgICAgICAgICAgdmFyIGsgPSBzX2lOZXh0W2pdOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBmUm9vdCA9IE1hdGguc3FydChtW2kqMytpXS1tW2oqMytqXS1tW2sqMytrXSArIDEuMCk7Ci0gICAgICAgICAgICBvdXRbaV0gPSAwLjUgKiBmUm9vdDsKLSAgICAgICAgICAgIGZSb290ID0gMC41IC8gZlJvb3Q7Ci0gICAgICAgICAgICBvdXRbM10gPSAobVtrKjMral0gLSBtW2oqMytrXSkgKiBmUm9vdDsKLSAgICAgICAgICAgIG91dFtqXSA9IChtW2oqMytpXSArIG1baSozK2pdKSAqIGZSb290OwotICAgICAgICAgICAgb3V0W2tdID0gKG1bayozK2ldICsgbVtpKjMra10pICogZlJvb3Q7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiBvdXQ7Ci0gICAgfTsKLX0pKCk7Ci0KLS8qKgotICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHF1YXRlbmlvbgotICoKLSAqIEBwYXJhbSB7cXVhdH0gdmVjIHZlY3RvciB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKLSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmVjdG9yCi0gKi8KLXF1YXQuc3RyID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gJ3F1YXQoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJywgJyArIGFbM10gKyAnKSc7Ci19OwotCi1pZih0eXBlb2YoZXhwb3J0cykgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgZXhwb3J0cy5xdWF0ID0gcXVhdDsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWMyLmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3ZlYzIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1YTI5YTguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3ZlYzIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0ODIgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIDIgRGltZW5zaW9uYWwgVmVjdG9yCi0gKiBAbmFtZSB2ZWMyCi0gKi8KLXZhciB2ZWMyID0ge307Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldywgZW1wdHkgdmVjMgotICoKLSAqIEByZXR1cm5zIHt2ZWMyfSBhIG5ldyAyRCB2ZWN0b3IKLSAqLwotdmVjMi5jcmVhdGUgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoMik7Ci0gICAgb3V0WzBdID0gMDsKLSAgICBvdXRbMV0gPSAwOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgdmVjMiBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIHZlY3RvcgotICoKLSAqIEBwYXJhbSB7dmVjMn0gYSB2ZWN0b3IgdG8gY2xvbmUKLSAqIEByZXR1cm5zIHt2ZWMyfSBhIG5ldyAyRCB2ZWN0b3IKLSAqLwotdmVjMi5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoMik7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgdmVjMiBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKLSAqIEByZXR1cm5zIHt2ZWMyfSBhIG5ldyAyRCB2ZWN0b3IKLSAqLwotdmVjMi5mcm9tVmFsdWVzID0gZnVuY3Rpb24oeCwgeSkgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSgyKTsKLSAgICBvdXRbMF0gPSB4OwotICAgIG91dFsxXSA9IHk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHZlYzIgdG8gYW5vdGhlcgotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHNvdXJjZSB2ZWN0b3IKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNldCB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzIgdG8gdGhlIGdpdmVuIHZhbHVlcwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHkpIHsKLSAgICBvdXRbMF0gPSB4OwotICAgIG91dFsxXSA9IHk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWRkcyB0d28gdmVjMidzCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLmFkZCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gKyBiWzBdOwotICAgIG91dFsxXSA9IGFbMV0gKyBiWzFdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFN1YnRyYWN0cyB0d28gdmVjMidzCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLnN1YnRyYWN0ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAtIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAtIGJbMV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLnN1YnRyYWN0fQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzIuc3ViID0gdmVjMi5zdWJ0cmFjdDsKLQotLyoqCi0gKiBNdWx0aXBsaWVzIHR3byB2ZWMyJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIubXVsdGlwbHkgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICogYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdICogYlsxXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIubXVsdGlwbHl9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMi5tdWwgPSB2ZWMyLm11bHRpcGx5OwotCi0vKioKLSAqIERpdmlkZXMgdHdvIHZlYzIncwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5kaXZpZGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdIC8gYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdIC8gYlsxXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIuZGl2aWRlfQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzIuZGl2ID0gdmVjMi5kaXZpZGU7Ci0KLS8qKgotICogUmV0dXJucyB0aGUgbWluaW11bSBvZiB0d28gdmVjMidzCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLm1pbiA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IE1hdGgubWluKGFbMF0sIGJbMF0pOwotICAgIG91dFsxXSA9IE1hdGgubWluKGFbMV0sIGJbMV0pOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJldHVybnMgdGhlIG1heGltdW0gb2YgdHdvIHZlYzIncwotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5tYXggPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBNYXRoLm1heChhWzBdLCBiWzBdKTsKLSAgICBvdXRbMV0gPSBNYXRoLm1heChhWzFdLCBiWzFdKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTY2FsZXMgYSB2ZWMyIGJ5IGEgc2NhbGFyIG51bWJlcgotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byBzY2FsZQotICogQHBhcmFtIHtOdW1iZXJ9IGIgYW1vdW50IHRvIHNjYWxlIHRoZSB2ZWN0b3IgYnkKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gKiBiOwotICAgIG91dFsxXSA9IGFbMV0gKiBiOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWMyJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgotICovCi12ZWMyLmRpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgewotICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCi0gICAgICAgIHkgPSBiWzFdIC0gYVsxXTsKLSAgICByZXR1cm4gTWF0aC5zcXJ0KHgqeCArIHkqeSk7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5kaXN0YW5jZX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMyLmRpc3QgPSB2ZWMyLmRpc3RhbmNlOwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzIncwotICoKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge051bWJlcn0gc3F1YXJlZCBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKLSAqLwotdmVjMi5zcXVhcmVkRGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7Ci0gICAgdmFyIHggPSBiWzBdIC0gYVswXSwKLSAgICAgICAgeSA9IGJbMV0gLSBhWzFdOwotICAgIHJldHVybiB4KnggKyB5Knk7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5zcXVhcmVkRGlzdGFuY2V9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMi5zcXJEaXN0ID0gdmVjMi5zcXVhcmVkRGlzdGFuY2U7Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgbGVuZ3RoIG9mIGEgdmVjMgotICoKLSAqIEBwYXJhbSB7dmVjMn0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIGxlbmd0aCBvZgotICogQHJldHVybnMge051bWJlcn0gbGVuZ3RoIG9mIGEKLSAqLwotdmVjMi5sZW5ndGggPSBmdW5jdGlvbiAoYSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV07Ci0gICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkpOwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIubGVuZ3RofQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzIubGVuID0gdmVjMi5sZW5ndGg7Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBsZW5ndGggb2YgYSB2ZWMyCi0gKgotICogQHBhcmFtIHt2ZWMyfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgc3F1YXJlZCBsZW5ndGggb2YKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgbGVuZ3RoIG9mIGEKLSAqLwotdmVjMi5zcXVhcmVkTGVuZ3RoID0gZnVuY3Rpb24gKGEpIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdOwotICAgIHJldHVybiB4KnggKyB5Knk7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5zcXVhcmVkTGVuZ3RofQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzIuc3FyTGVuID0gdmVjMi5zcXVhcmVkTGVuZ3RoOwotCi0vKioKLSAqIE5lZ2F0ZXMgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWMyCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB2ZWN0b3IgdG8gbmVnYXRlCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIubmVnYXRlID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gLWFbMF07Ci0gICAgb3V0WzFdID0gLWFbMV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogTm9ybWFsaXplIGEgdmVjMgotICoKLSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIG5vcm1hbGl6ZQotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV07Ci0gICAgdmFyIGxlbiA9IHgqeCArIHkqeTsKLSAgICBpZiAobGVuID4gMCkgewotICAgICAgICAvL1RPRE86IGV2YWx1YXRlIHVzZSBvZiBnbG1faW52c3FydCBoZXJlPwotICAgICAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KGxlbik7Ci0gICAgICAgIG91dFswXSA9IGFbMF0gKiBsZW47Ci0gICAgICAgIG91dFsxXSA9IGFbMV0gKiBsZW47Ci0gICAgfQotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWMyJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGIKLSAqLwotdmVjMi5kb3QgPSBmdW5jdGlvbiAoYSwgYikgewotICAgIHJldHVybiBhWzBdICogYlswXSArIGFbMV0gKiBiWzFdOwotfTsKLQotLyoqCi0gKiBDb21wdXRlcyB0aGUgY3Jvc3MgcHJvZHVjdCBvZiB0d28gdmVjMidzCi0gKiBOb3RlIHRoYXQgdGhlIGNyb3NzIHByb2R1Y3QgbXVzdCBieSBkZWZpbml0aW9uIHByb2R1Y2UgYSAzRCB2ZWN0b3IKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzIuY3Jvc3MgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICB2YXIgeiA9IGFbMF0gKiBiWzFdIC0gYVsxXSAqIGJbMF07Ci0gICAgb3V0WzBdID0gb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSB6OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gdmVjMidzCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cwotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLmxlcnAgPSBmdW5jdGlvbiAob3V0LCBhLCBiLCB0KSB7Ci0gICAgdmFyIGF4ID0gYVswXSwKLSAgICAgICAgYXkgPSBhWzFdOwotICAgIG91dFswXSA9IGF4ICsgdCAqIChiWzBdIC0gYXgpOwotICAgIG91dFsxXSA9IGF5ICsgdCAqIChiWzFdIC0gYXkpOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zZm9ybXMgdGhlIHZlYzIgd2l0aCBhIG1hdDIKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCi0gKiBAcGFyYW0ge21hdDJ9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIudHJhbnNmb3JtTWF0MiA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV07Ci0gICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzJdICogeTsKLSAgICBvdXRbMV0gPSBtWzFdICogeCArIG1bM10gKiB5OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFRyYW5zZm9ybXMgdGhlIHZlYzIgd2l0aCBhIG1hdDJkCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHttYXQyZH0gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGgKLSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKLSAqLwotdmVjMi50cmFuc2Zvcm1NYXQyZCA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV07Ci0gICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzJdICogeSArIG1bNF07Ci0gICAgb3V0WzFdID0gbVsxXSAqIHggKyBtWzNdICogeSArIG1bNV07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNmb3JtcyB0aGUgdmVjMiB3aXRoIGEgbWF0MwotICogM3JkIHZlY3RvciBjb21wb25lbnQgaXMgaW1wbGljaXRseSAnMScKLSAqCi0gKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMyfSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCi0gKiBAcGFyYW0ge21hdDN9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCi0gKiBAcmV0dXJucyB7dmVjMn0gb3V0Ci0gKi8KLXZlYzIudHJhbnNmb3JtTWF0MyA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV07Ci0gICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzNdICogeSArIG1bNl07Ci0gICAgb3V0WzFdID0gbVsxXSAqIHggKyBtWzRdICogeSArIG1bN107Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNmb3JtcyB0aGUgdmVjMiB3aXRoIGEgbWF0NAotICogM3JkIHZlY3RvciBjb21wb25lbnQgaXMgaW1wbGljaXRseSAnMCcKLSAqIDR0aCB2ZWN0b3IgY29tcG9uZW50IGlzIGltcGxpY2l0bHkgJzEnCi0gKgotICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHttYXQ0fSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAotICogQHJldHVybnMge3ZlYzJ9IG91dAotICovCi12ZWMyLnRyYW5zZm9ybU1hdDQgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKLSAgICB2YXIgeCA9IGFbMF0sIAotICAgICAgICB5ID0gYVsxXTsKLSAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bNF0gKiB5ICsgbVsxMl07Ci0gICAgb3V0WzFdID0gbVsxXSAqIHggKyBtWzVdICogeSArIG1bMTNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFBlcmZvcm0gc29tZSBvcGVyYXRpb24gb3ZlciBhbiBhcnJheSBvZiB2ZWMycy4KLSAqCi0gKiBAcGFyYW0ge0FycmF5fSBhIHRoZSBhcnJheSBvZiB2ZWN0b3JzIHRvIGl0ZXJhdGUgb3ZlcgotICogQHBhcmFtIHtOdW1iZXJ9IHN0cmlkZSBOdW1iZXIgb2YgZWxlbWVudHMgYmV0d2VlbiB0aGUgc3RhcnQgb2YgZWFjaCB2ZWMyLiBJZiAwIGFzc3VtZXMgdGlnaHRseSBwYWNrZWQKLSAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNraXAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkKLSAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudCBOdW1iZXIgb2YgdmVjMnMgdG8gaXRlcmF0ZSBvdmVyLiBJZiAwIGl0ZXJhdGVzIG92ZXIgZW50aXJlIGFycmF5Ci0gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBGdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIHZlY3RvciBpbiB0aGUgYXJyYXkKLSAqIEBwYXJhbSB7T2JqZWN0fSBbYXJnXSBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIHBhc3MgdG8gZm4KLSAqIEByZXR1cm5zIHtBcnJheX0gYQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzIuZm9yRWFjaCA9IChmdW5jdGlvbigpIHsKLSAgICB2YXIgdmVjID0gdmVjMi5jcmVhdGUoKTsKLQotICAgIHJldHVybiBmdW5jdGlvbihhLCBzdHJpZGUsIG9mZnNldCwgY291bnQsIGZuLCBhcmcpIHsKLSAgICAgICAgdmFyIGksIGw7Ci0gICAgICAgIGlmKCFzdHJpZGUpIHsKLSAgICAgICAgICAgIHN0cmlkZSA9IDI7Ci0gICAgICAgIH0KLQotICAgICAgICBpZighb2Zmc2V0KSB7Ci0gICAgICAgICAgICBvZmZzZXQgPSAwOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZihjb3VudCkgewotICAgICAgICAgICAgbCA9IE1hdGgubWluKChjb3VudCAqIHN0cmlkZSkgKyBvZmZzZXQsIGEubGVuZ3RoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGwgPSBhLmxlbmd0aDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcihpID0gb2Zmc2V0OyBpIDwgbDsgaSArPSBzdHJpZGUpIHsKLSAgICAgICAgICAgIHZlY1swXSA9IGFbaV07IHZlY1sxXSA9IGFbaSsxXTsKLSAgICAgICAgICAgIGZuKHZlYywgdmVjLCBhcmcpOwotICAgICAgICAgICAgYVtpXSA9IHZlY1swXTsgYVtpKzFdID0gdmVjWzFdOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gYTsKLSAgICB9OwotfSkoKTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdmVjdG9yCi0gKgotICogQHBhcmFtIHt2ZWMyfSB2ZWMgdmVjdG9yIHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZwotICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IKLSAqLwotdmVjMi5zdHIgPSBmdW5jdGlvbiAoYSkgewotICAgIHJldHVybiAndmVjMignICsgYVswXSArICcsICcgKyBhWzFdICsgJyknOwotfTsKLQotaWYodHlwZW9mKGV4cG9ydHMpICE9PSAndW5kZWZpbmVkJykgewotICAgIGV4cG9ydHMudmVjMiA9IHZlYzI7Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvdmVjMy5qcyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWMzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODZmMmIzLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWMzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDgyICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMywgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gCi0gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIAotRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAqLwotCi0vKioKLSAqIEBjbGFzcyAzIERpbWVuc2lvbmFsIFZlY3RvcgotICogQG5hbWUgdmVjMwotICovCi12YXIgdmVjMyA9IHt9OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHZlYzMKLSAqCi0gKiBAcmV0dXJucyB7dmVjM30gYSBuZXcgM0QgdmVjdG9yCi0gKi8KLXZlYzMuY3JlYXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDMpOwotICAgIG91dFswXSA9IDA7Ci0gICAgb3V0WzFdID0gMDsKLSAgICBvdXRbMl0gPSAwOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENyZWF0ZXMgYSBuZXcgdmVjMyBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIHZlY3RvcgotICoKLSAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gY2xvbmUKLSAqIEByZXR1cm5zIHt2ZWMzfSBhIG5ldyAzRCB2ZWN0b3IKLSAqLwotdmVjMy5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoMyk7Ci0gICAgb3V0WzBdID0gYVswXTsKLSAgICBvdXRbMV0gPSBhWzFdOwotICAgIG91dFsyXSA9IGFbMl07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldyB2ZWMzIGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHZhbHVlcwotICoKLSAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKLSAqIEByZXR1cm5zIHt2ZWMzfSBhIG5ldyAzRCB2ZWN0b3IKLSAqLwotdmVjMy5mcm9tVmFsdWVzID0gZnVuY3Rpb24oeCwgeSwgeikgewotICAgIHZhciBvdXQgPSBuZXcgR0xNQVRfQVJSQVlfVFlQRSgzKTsKLSAgICBvdXRbMF0gPSB4OwotICAgIG91dFsxXSA9IHk7Ci0gICAgb3V0WzJdID0gejsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgdmVjMyB0byBhbm90aGVyCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgc291cmNlIHZlY3RvcgotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWMzIHRvIHRoZSBnaXZlbiB2YWx1ZXMKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0geiBaIGNvbXBvbmVudAotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLnNldCA9IGZ1bmN0aW9uKG91dCwgeCwgeSwgeikgewotICAgIG91dFswXSA9IHg7Ci0gICAgb3V0WzFdID0geTsKLSAgICBvdXRbMl0gPSB6OwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFkZHMgdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICsgYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdICsgYlsxXTsKLSAgICBvdXRbMl0gPSBhWzJdICsgYlsyXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTdWJ0cmFjdHMgdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5zdWJ0cmFjdCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gLSBiWzBdOwotICAgIG91dFsxXSA9IGFbMV0gLSBiWzFdOwotICAgIG91dFsyXSA9IGFbMl0gLSBiWzJdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5zdWJ0cmFjdH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMzLnN1YiA9IHZlYzMuc3VidHJhY3Q7Ci0KLS8qKgotICogTXVsdGlwbGllcyB0d28gdmVjMydzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAqIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAqIGJbMV07Ci0gICAgb3V0WzJdID0gYVsyXSAqIGJbMl07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLm11bHRpcGx5fQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzMubXVsID0gdmVjMy5tdWx0aXBseTsKLQotLyoqCi0gKiBEaXZpZGVzIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMuZGl2aWRlID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAvIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAvIGJbMV07Ci0gICAgb3V0WzJdID0gYVsyXSAvIGJbMl07Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLmRpdmlkZX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMzLmRpdiA9IHZlYzMuZGl2aWRlOwotCi0vKioKLSAqIFJldHVybnMgdGhlIG1pbmltdW0gb2YgdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5taW4gPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBNYXRoLm1pbihhWzBdLCBiWzBdKTsKLSAgICBvdXRbMV0gPSBNYXRoLm1pbihhWzFdLCBiWzFdKTsKLSAgICBvdXRbMl0gPSBNYXRoLm1pbihhWzJdLCBiWzJdKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG9mIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMubWF4ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gTWF0aC5tYXgoYVswXSwgYlswXSk7Ci0gICAgb3V0WzFdID0gTWF0aC5tYXgoYVsxXSwgYlsxXSk7Ci0gICAgb3V0WzJdID0gTWF0aC5tYXgoYVsyXSwgYlsyXSk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogU2NhbGVzIGEgdmVjMyBieSBhIHNjYWxhciBudW1iZXIKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSB2ZWN0b3IgdG8gc2NhbGUKLSAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5Ci0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICogYjsKLSAgICBvdXRbMV0gPSBhWzFdICogYjsKLSAgICBvdXRbMl0gPSBhWzJdICogYjsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBldWNsaWRpYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjMydzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKLSAqLwotdmVjMy5kaXN0YW5jZSA9IGZ1bmN0aW9uKGEsIGIpIHsKLSAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAotICAgICAgICB5ID0gYlsxXSAtIGFbMV0sCi0gICAgICAgIHogPSBiWzJdIC0gYVsyXTsKLSAgICByZXR1cm4gTWF0aC5zcXJ0KHgqeCArIHkqeSArIHoqeik7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5kaXN0YW5jZX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMzLmRpc3QgPSB2ZWMzLmRpc3RhbmNlOwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge051bWJlcn0gc3F1YXJlZCBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKLSAqLwotdmVjMy5zcXVhcmVkRGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7Ci0gICAgdmFyIHggPSBiWzBdIC0gYVswXSwKLSAgICAgICAgeSA9IGJbMV0gLSBhWzFdLAotICAgICAgICB6ID0gYlsyXSAtIGFbMl07Ci0gICAgcmV0dXJuIHgqeCArIHkqeSArIHoqejsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLnNxdWFyZWREaXN0YW5jZX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMzLnNxckRpc3QgPSB2ZWMzLnNxdWFyZWREaXN0YW5jZTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSB2ZWMzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBsZW5ndGggb2YgYQotICovCi12ZWMzLmxlbmd0aCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgdmFyIHggPSBhWzBdLAotICAgICAgICB5ID0gYVsxXSwKLSAgICAgICAgeiA9IGFbMl07Ci0gICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkgKyB6KnopOwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMubGVuZ3RofQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzMubGVuID0gdmVjMy5sZW5ndGg7Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBsZW5ndGggb2YgYSB2ZWMzCi0gKgotICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgc3F1YXJlZCBsZW5ndGggb2YKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgbGVuZ3RoIG9mIGEKLSAqLwotdmVjMy5zcXVhcmVkTGVuZ3RoID0gZnVuY3Rpb24gKGEpIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdLAotICAgICAgICB6ID0gYVsyXTsKLSAgICByZXR1cm4geCp4ICsgeSp5ICsgeip6OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMuc3F1YXJlZExlbmd0aH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWMzLnNxckxlbiA9IHZlYzMuc3F1YXJlZExlbmd0aDsKLQotLyoqCi0gKiBOZWdhdGVzIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjMwotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdmVjdG9yIHRvIG5lZ2F0ZQotICogQHJldHVybnMge3ZlYzN9IG91dAotICovCi12ZWMzLm5lZ2F0ZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IC1hWzBdOwotICAgIG91dFsxXSA9IC1hWzFdOwotICAgIG91dFsyXSA9IC1hWzJdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIE5vcm1hbGl6ZSBhIHZlYzMKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBub3JtYWxpemUKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5ub3JtYWxpemUgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICB2YXIgeCA9IGFbMF0sCi0gICAgICAgIHkgPSBhWzFdLAotICAgICAgICB6ID0gYVsyXTsKLSAgICB2YXIgbGVuID0geCp4ICsgeSp5ICsgeip6OwotICAgIGlmIChsZW4gPiAwKSB7Ci0gICAgICAgIC8vVE9ETzogZXZhbHVhdGUgdXNlIG9mIGdsbV9pbnZzcXJ0IGhlcmU/Ci0gICAgICAgIGxlbiA9IDEgLyBNYXRoLnNxcnQobGVuKTsKLSAgICAgICAgb3V0WzBdID0gYVswXSAqIGxlbjsKLSAgICAgICAgb3V0WzFdID0gYVsxXSAqIGxlbjsKLSAgICAgICAgb3V0WzJdID0gYVsyXSAqIGxlbjsKLSAgICB9Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgZG90IHByb2R1Y3Qgb2YgdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge051bWJlcn0gZG90IHByb2R1Y3Qgb2YgYSBhbmQgYgotICovCi12ZWMzLmRvdCA9IGZ1bmN0aW9uIChhLCBiKSB7Ci0gICAgcmV0dXJuIGFbMF0gKiBiWzBdICsgYVsxXSAqIGJbMV0gKyBhWzJdICogYlsyXTsKLX07Ci0KLS8qKgotICogQ29tcHV0ZXMgdGhlIGNyb3NzIHByb2R1Y3Qgb2YgdHdvIHZlYzMncwotICoKLSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy5jcm9zcyA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLAotICAgICAgICBieCA9IGJbMF0sIGJ5ID0gYlsxXSwgYnogPSBiWzJdOwotCi0gICAgb3V0WzBdID0gYXkgKiBieiAtIGF6ICogYnk7Ci0gICAgb3V0WzFdID0gYXogKiBieCAtIGF4ICogYno7Ci0gICAgb3V0WzJdID0gYXggKiBieSAtIGF5ICogYng7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUGVyZm9ybXMgYSBsaW5lYXIgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHR3byB2ZWMzJ3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMubGVycCA9IGZ1bmN0aW9uIChvdXQsIGEsIGIsIHQpIHsKLSAgICB2YXIgYXggPSBhWzBdLAotICAgICAgICBheSA9IGFbMV0sCi0gICAgICAgIGF6ID0gYVsyXTsKLSAgICBvdXRbMF0gPSBheCArIHQgKiAoYlswXSAtIGF4KTsKLSAgICBvdXRbMV0gPSBheSArIHQgKiAoYlsxXSAtIGF5KTsKLSAgICBvdXRbMl0gPSBheiArIHQgKiAoYlsyXSAtIGF6KTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBUcmFuc2Zvcm1zIHRoZSB2ZWMzIHdpdGggYSBtYXQ0LgotICogNHRoIHZlY3RvciBjb21wb25lbnQgaXMgaW1wbGljaXRseSAnMScKLSAqCi0gKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWMzfSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCi0gKiBAcGFyYW0ge21hdDR9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCi0gKiBAcmV0dXJucyB7dmVjM30gb3V0Ci0gKi8KLXZlYzMudHJhbnNmb3JtTWF0NCA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgewotICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdOwotICAgIG91dFswXSA9IG1bMF0gKiB4ICsgbVs0XSAqIHkgKyBtWzhdICogeiArIG1bMTJdOwotICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVs1XSAqIHkgKyBtWzldICogeiArIG1bMTNdOwotICAgIG91dFsyXSA9IG1bMl0gKiB4ICsgbVs2XSAqIHkgKyBtWzEwXSAqIHogKyBtWzE0XTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBUcmFuc2Zvcm1zIHRoZSB2ZWMzIHdpdGggYSBxdWF0Ci0gKgotICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHtxdWF0fSBxIHF1YXRlcm5pb24gdG8gdHJhbnNmb3JtIHdpdGgKLSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKLSAqLwotdmVjMy50cmFuc2Zvcm1RdWF0ID0gZnVuY3Rpb24ob3V0LCBhLCBxKSB7Ci0gICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl0sCi0gICAgICAgIHF4ID0gcVswXSwgcXkgPSBxWzFdLCBxeiA9IHFbMl0sIHF3ID0gcVszXSwKLQotICAgICAgICAvLyBjYWxjdWxhdGUgcXVhdCAqIHZlYwotICAgICAgICBpeCA9IHF3ICogeCArIHF5ICogeiAtIHF6ICogeSwKLSAgICAgICAgaXkgPSBxdyAqIHkgKyBxeiAqIHggLSBxeCAqIHosCi0gICAgICAgIGl6ID0gcXcgKiB6ICsgcXggKiB5IC0gcXkgKiB4LAotICAgICAgICBpdyA9IC1xeCAqIHggLSBxeSAqIHkgLSBxeiAqIHo7Ci0KLSAgICAvLyBjYWxjdWxhdGUgcmVzdWx0ICogaW52ZXJzZSBxdWF0Ci0gICAgb3V0WzBdID0gaXggKiBxdyArIGl3ICogLXF4ICsgaXkgKiAtcXogLSBpeiAqIC1xeTsKLSAgICBvdXRbMV0gPSBpeSAqIHF3ICsgaXcgKiAtcXkgKyBpeiAqIC1xeCAtIGl4ICogLXF6OwotICAgIG91dFsyXSA9IGl6ICogcXcgKyBpdyAqIC1xeiArIGl4ICogLXF5IC0gaXkgKiAtcXg7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUGVyZm9ybSBzb21lIG9wZXJhdGlvbiBvdmVyIGFuIGFycmF5IG9mIHZlYzNzLgotICoKLSAqIEBwYXJhbSB7QXJyYXl9IGEgdGhlIGFycmF5IG9mIHZlY3RvcnMgdG8gaXRlcmF0ZSBvdmVyCi0gKiBAcGFyYW0ge051bWJlcn0gc3RyaWRlIE51bWJlciBvZiBlbGVtZW50cyBiZXR3ZWVuIHRoZSBzdGFydCBvZiBlYWNoIHZlYzMuIElmIDAgYXNzdW1lcyB0aWdodGx5IHBhY2tlZAotICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2YgZWxlbWVudHMgdG8gc2tpcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheQotICogQHBhcmFtIHtOdW1iZXJ9IGNvdW50IE51bWJlciBvZiB2ZWMzcyB0byBpdGVyYXRlIG92ZXIuIElmIDAgaXRlcmF0ZXMgb3ZlciBlbnRpcmUgYXJyYXkKLSAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIEZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggdmVjdG9yIGluIHRoZSBhcnJheQotICogQHBhcmFtIHtPYmplY3R9IFthcmddIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyB0byBmbgotICogQHJldHVybnMge0FycmF5fSBhCi0gKiBAZnVuY3Rpb24KLSAqLwotdmVjMy5mb3JFYWNoID0gKGZ1bmN0aW9uKCkgewotICAgIHZhciB2ZWMgPSB2ZWMzLmNyZWF0ZSgpOwotCi0gICAgcmV0dXJuIGZ1bmN0aW9uKGEsIHN0cmlkZSwgb2Zmc2V0LCBjb3VudCwgZm4sIGFyZykgewotICAgICAgICB2YXIgaSwgbDsKLSAgICAgICAgaWYoIXN0cmlkZSkgewotICAgICAgICAgICAgc3RyaWRlID0gMzsKLSAgICAgICAgfQotCi0gICAgICAgIGlmKCFvZmZzZXQpIHsKLSAgICAgICAgICAgIG9mZnNldCA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmKGNvdW50KSB7Ci0gICAgICAgICAgICBsID0gTWF0aC5taW4oKGNvdW50ICogc3RyaWRlKSArIG9mZnNldCwgYS5sZW5ndGgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbCA9IGEubGVuZ3RoOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yKGkgPSBvZmZzZXQ7IGkgPCBsOyBpICs9IHN0cmlkZSkgewotICAgICAgICAgICAgdmVjWzBdID0gYVtpXTsgdmVjWzFdID0gYVtpKzFdOyB2ZWNbMl0gPSBhW2krMl07Ci0gICAgICAgICAgICBmbih2ZWMsIHZlYywgYXJnKTsKLSAgICAgICAgICAgIGFbaV0gPSB2ZWNbMF07IGFbaSsxXSA9IHZlY1sxXTsgYVtpKzJdID0gdmVjWzJdOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gYTsKLSAgICB9OwotfSkoKTsKLQotLyoqCi0gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdmVjdG9yCi0gKgotICogQHBhcmFtIHt2ZWMzfSB2ZWMgdmVjdG9yIHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZwotICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IKLSAqLwotdmVjMy5zdHIgPSBmdW5jdGlvbiAoYSkgewotICAgIHJldHVybiAndmVjMygnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnKSc7Ci19OwotCi1pZih0eXBlb2YoZXhwb3J0cykgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgZXhwb3J0cy52ZWMzID0gdmVjMzsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWM0LmpzIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3ZlYzQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0NjM1Y2MuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3ZlYzQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0ODYgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzLCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCi1hcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKLSAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci1MT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLUFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCi0KLS8qKgotICogQGNsYXNzIDQgRGltZW5zaW9uYWwgVmVjdG9yCi0gKiBAbmFtZSB2ZWM0Ci0gKi8KLXZhciB2ZWM0ID0ge307Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldywgZW1wdHkgdmVjNAotICoKLSAqIEByZXR1cm5zIHt2ZWM0fSBhIG5ldyA0RCB2ZWN0b3IKLSAqLwotdmVjNC5jcmVhdGUgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoNCk7Ci0gICAgb3V0WzBdID0gMDsKLSAgICBvdXRbMV0gPSAwOwotICAgIG91dFsyXSA9IDA7Ci0gICAgb3V0WzNdID0gMDsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDcmVhdGVzIGEgbmV3IHZlYzQgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3IKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIGNsb25lCi0gKiBAcmV0dXJucyB7dmVjNH0gYSBuZXcgNEQgdmVjdG9yCi0gKi8KLXZlYzQuY2xvbmUgPSBmdW5jdGlvbihhKSB7Ci0gICAgdmFyIG91dCA9IG5ldyBHTE1BVF9BUlJBWV9UWVBFKDQpOwotICAgIG91dFswXSA9IGFbMF07Ci0gICAgb3V0WzFdID0gYVsxXTsKLSAgICBvdXRbMl0gPSBhWzJdOwotICAgIG91dFszXSA9IGFbM107Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIG5ldyB2ZWM0IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHZhbHVlcwotICoKLSAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB3IFcgY29tcG9uZW50Ci0gKiBAcmV0dXJucyB7dmVjNH0gYSBuZXcgNEQgdmVjdG9yCi0gKi8KLXZlYzQuZnJvbVZhbHVlcyA9IGZ1bmN0aW9uKHgsIHksIHosIHcpIHsKLSAgICB2YXIgb3V0ID0gbmV3IEdMTUFUX0FSUkFZX1RZUEUoNCk7Ci0gICAgb3V0WzBdID0geDsKLSAgICBvdXRbMV0gPSB5OwotICAgIG91dFsyXSA9IHo7Ci0gICAgb3V0WzNdID0gdzsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgdmVjNCB0byBhbm90aGVyCi0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgc291cmNlIHZlY3RvcgotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0LmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKLSAgICBvdXRbMF0gPSBhWzBdOwotICAgIG91dFsxXSA9IGFbMV07Ci0gICAgb3V0WzJdID0gYVsyXTsKLSAgICBvdXRbM10gPSBhWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFNldCB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzQgdG8gdGhlIGdpdmVuIHZhbHVlcwotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAotICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKLSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50Ci0gKiBAcGFyYW0ge051bWJlcn0gdyBXIGNvbXBvbmVudAotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0LnNldCA9IGZ1bmN0aW9uKG91dCwgeCwgeSwgeiwgdykgewotICAgIG91dFswXSA9IHg7Ci0gICAgb3V0WzFdID0geTsKLSAgICBvdXRbMl0gPSB6OwotICAgIG91dFszXSA9IHc7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWRkcyB0d28gdmVjNCdzCi0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0LmFkZCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gKyBiWzBdOwotICAgIG91dFsxXSA9IGFbMV0gKyBiWzFdOwotICAgIG91dFsyXSA9IGFbMl0gKyBiWzJdOwotICAgIG91dFszXSA9IGFbM10gKyBiWzNdOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFN1YnRyYWN0cyB0d28gdmVjNCdzCi0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0LnN1YnRyYWN0ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7Ci0gICAgb3V0WzBdID0gYVswXSAtIGJbMF07Ci0gICAgb3V0WzFdID0gYVsxXSAtIGJbMV07Ci0gICAgb3V0WzJdID0gYVsyXSAtIGJbMl07Ci0gICAgb3V0WzNdID0gYVszXSAtIGJbM107Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LnN1YnRyYWN0fQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzQuc3ViID0gdmVjNC5zdWJ0cmFjdDsKLQotLyoqCi0gKiBNdWx0aXBsaWVzIHR3byB2ZWM0J3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCi0gKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCi0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQubXVsdGlwbHkgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdICogYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdICogYlsxXTsKLSAgICBvdXRbMl0gPSBhWzJdICogYlsyXTsKLSAgICBvdXRbM10gPSBhWzNdICogYlszXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQubXVsdGlwbHl9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjNC5tdWwgPSB2ZWM0Lm11bHRpcGx5OwotCi0vKioKLSAqIERpdmlkZXMgdHdvIHZlYzQncwotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5kaXZpZGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBhWzBdIC8gYlswXTsKLSAgICBvdXRbMV0gPSBhWzFdIC8gYlsxXTsKLSAgICBvdXRbMl0gPSBhWzJdIC8gYlsyXTsKLSAgICBvdXRbM10gPSBhWzNdIC8gYlszXTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQuZGl2aWRlfQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzQuZGl2ID0gdmVjNC5kaXZpZGU7Ci0KLS8qKgotICogUmV0dXJucyB0aGUgbWluaW11bSBvZiB0d28gdmVjNCdzCi0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0Lm1pbiA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IE1hdGgubWluKGFbMF0sIGJbMF0pOwotICAgIG91dFsxXSA9IE1hdGgubWluKGFbMV0sIGJbMV0pOwotICAgIG91dFsyXSA9IE1hdGgubWluKGFbMl0sIGJbMl0pOwotICAgIG91dFszXSA9IE1hdGgubWluKGFbM10sIGJbM10pOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIFJldHVybnMgdGhlIG1heGltdW0gb2YgdHdvIHZlYzQncwotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5tYXggPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKLSAgICBvdXRbMF0gPSBNYXRoLm1heChhWzBdLCBiWzBdKTsKLSAgICBvdXRbMV0gPSBNYXRoLm1heChhWzFdLCBiWzFdKTsKLSAgICBvdXRbMl0gPSBNYXRoLm1heChhWzJdLCBiWzJdKTsKLSAgICBvdXRbM10gPSBNYXRoLm1heChhWzNdLCBiWzNdKTsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBTY2FsZXMgYSB2ZWM0IGJ5IGEgc2NhbGFyIG51bWJlcgotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIHZlY3RvciB0byBzY2FsZQotICogQHBhcmFtIHtOdW1iZXJ9IGIgYW1vdW50IHRvIHNjYWxlIHRoZSB2ZWN0b3IgYnkKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgewotICAgIG91dFswXSA9IGFbMF0gKiBiOwotICAgIG91dFsxXSA9IGFbMV0gKiBiOwotICAgIG91dFsyXSA9IGFbMl0gKiBiOwotICAgIG91dFszXSA9IGFbM10gKiBiOwotICAgIHJldHVybiBvdXQ7Ci19OwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWM0J3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgotICovCi12ZWM0LmRpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgewotICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCi0gICAgICAgIHkgPSBiWzFdIC0gYVsxXSwKLSAgICAgICAgeiA9IGJbMl0gLSBhWzJdLAotICAgICAgICB3ID0gYlszXSAtIGFbM107Ci0gICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkgKyB6KnogKyB3KncpOwotfTsKLQotLyoqCi0gKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQuZGlzdGFuY2V9Ci0gKiBAZnVuY3Rpb24KLSAqLwotdmVjNC5kaXN0ID0gdmVjNC5kaXN0YW5jZTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWM0J3MKLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgZGlzdGFuY2UgYmV0d2VlbiBhIGFuZCBiCi0gKi8KLXZlYzQuc3F1YXJlZERpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgewotICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCi0gICAgICAgIHkgPSBiWzFdIC0gYVsxXSwKLSAgICAgICAgeiA9IGJbMl0gLSBhWzJdLAotICAgICAgICB3ID0gYlszXSAtIGFbM107Ci0gICAgcmV0dXJuIHgqeCArIHkqeSArIHoqeiArIHcqdzsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LnNxdWFyZWREaXN0YW5jZX0KLSAqIEBmdW5jdGlvbgotICovCi12ZWM0LnNxckRpc3QgPSB2ZWM0LnNxdWFyZWREaXN0YW5jZTsKLQotLyoqCi0gKiBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSB2ZWM0Ci0gKgotICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBsZW5ndGggb2YgYQotICovCi12ZWM0Lmxlbmd0aCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgdmFyIHggPSBhWzBdLAotICAgICAgICB5ID0gYVsxXSwKLSAgICAgICAgeiA9IGFbMl0sCi0gICAgICAgIHcgPSBhWzNdOwotICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5ICsgeip6ICsgdyp3KTsKLX07Ci0KLS8qKgotICogQWxpYXMgZm9yIHtAbGluayB2ZWM0Lmxlbmd0aH0KLSAqIEBmdW5jdGlvbgotICovCi12ZWM0LmxlbiA9IHZlYzQubGVuZ3RoOwotCi0vKioKLSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgdmVjNAotICoKLSAqIEBwYXJhbSB7dmVjNH0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIHNxdWFyZWQgbGVuZ3RoIG9mCi0gKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGxlbmd0aCBvZiBhCi0gKi8KLXZlYzQuc3F1YXJlZExlbmd0aCA9IGZ1bmN0aW9uIChhKSB7Ci0gICAgdmFyIHggPSBhWzBdLAotICAgICAgICB5ID0gYVsxXSwKLSAgICAgICAgeiA9IGFbMl0sCi0gICAgICAgIHcgPSBhWzNdOwotICAgIHJldHVybiB4KnggKyB5KnkgKyB6KnogKyB3Knc7Ci19OwotCi0vKioKLSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjNC5zcXVhcmVkTGVuZ3RofQotICogQGZ1bmN0aW9uCi0gKi8KLXZlYzQuc3FyTGVuID0gdmVjNC5zcXVhcmVkTGVuZ3RoOwotCi0vKioKLSAqIE5lZ2F0ZXMgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWM0Ci0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB2ZWN0b3IgdG8gbmVnYXRlCi0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQubmVnYXRlID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgb3V0WzBdID0gLWFbMF07Ci0gICAgb3V0WzFdID0gLWFbMV07Ci0gICAgb3V0WzJdID0gLWFbMl07Ci0gICAgb3V0WzNdID0gLWFbM107Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogTm9ybWFsaXplIGEgdmVjNAotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIG5vcm1hbGl6ZQotICogQHJldHVybnMge3ZlYzR9IG91dAotICovCi12ZWM0Lm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIHZhciB4ID0gYVswXSwKLSAgICAgICAgeSA9IGFbMV0sCi0gICAgICAgIHogPSBhWzJdLAotICAgICAgICB3ID0gYVszXTsKLSAgICB2YXIgbGVuID0geCp4ICsgeSp5ICsgeip6ICsgdyp3OwotICAgIGlmIChsZW4gPiAwKSB7Ci0gICAgICAgIGxlbiA9IDEgLyBNYXRoLnNxcnQobGVuKTsKLSAgICAgICAgb3V0WzBdID0gYVswXSAqIGxlbjsKLSAgICAgICAgb3V0WzFdID0gYVsxXSAqIGxlbjsKLSAgICAgICAgb3V0WzJdID0gYVsyXSAqIGxlbjsKLSAgICAgICAgb3V0WzNdID0gYVszXSAqIGxlbjsKLSAgICB9Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogQ2FsY3VsYXRlcyB0aGUgZG90IHByb2R1Y3Qgb2YgdHdvIHZlYzQncwotICoKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAotICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAotICogQHJldHVybnMge051bWJlcn0gZG90IHByb2R1Y3Qgb2YgYSBhbmQgYgotICovCi12ZWM0LmRvdCA9IGZ1bmN0aW9uIChhLCBiKSB7Ci0gICAgcmV0dXJuIGFbMF0gKiBiWzBdICsgYVsxXSAqIGJbMV0gKyBhWzJdICogYlsyXSArIGFbM10gKiBiWzNdOwotfTsKLQotLyoqCi0gKiBQZXJmb3JtcyBhIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHZlYzQncwotICoKLSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCi0gKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKLSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKLSAqIEBwYXJhbSB7TnVtYmVyfSB0IGludGVycG9sYXRpb24gYW1vdW50IGJldHdlZW4gdGhlIHR3byBpbnB1dHMKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC5sZXJwID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgdCkgewotICAgIHZhciBheCA9IGFbMF0sCi0gICAgICAgIGF5ID0gYVsxXSwKLSAgICAgICAgYXogPSBhWzJdLAotICAgICAgICBhdyA9IGFbM107Ci0gICAgb3V0WzBdID0gYXggKyB0ICogKGJbMF0gLSBheCk7Ci0gICAgb3V0WzFdID0gYXkgKyB0ICogKGJbMV0gLSBheSk7Ci0gICAgb3V0WzJdID0gYXogKyB0ICogKGJbMl0gLSBheik7Ci0gICAgb3V0WzNdID0gYXcgKyB0ICogKGJbM10gLSBhdyk7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogVHJhbnNmb3JtcyB0aGUgdmVjNCB3aXRoIGEgbWF0NC4KLSAqCi0gKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgotICogQHBhcmFtIHt2ZWM0fSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCi0gKiBAcGFyYW0ge21hdDR9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCi0gKiBAcmV0dXJucyB7dmVjNH0gb3V0Ci0gKi8KLXZlYzQudHJhbnNmb3JtTWF0NCA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgewotICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdLCB3ID0gYVszXTsKLSAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bNF0gKiB5ICsgbVs4XSAqIHogKyBtWzEyXSAqIHc7Ci0gICAgb3V0WzFdID0gbVsxXSAqIHggKyBtWzVdICogeSArIG1bOV0gKiB6ICsgbVsxM10gKiB3OwotICAgIG91dFsyXSA9IG1bMl0gKiB4ICsgbVs2XSAqIHkgKyBtWzEwXSAqIHogKyBtWzE0XSAqIHc7Ci0gICAgb3V0WzNdID0gbVszXSAqIHggKyBtWzddICogeSArIG1bMTFdICogeiArIG1bMTVdICogdzsKLSAgICByZXR1cm4gb3V0OwotfTsKLQotLyoqCi0gKiBUcmFuc2Zvcm1zIHRoZSB2ZWM0IHdpdGggYSBxdWF0Ci0gKgotICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKLSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQotICogQHBhcmFtIHtxdWF0fSBxIHF1YXRlcm5pb24gdG8gdHJhbnNmb3JtIHdpdGgKLSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKLSAqLwotdmVjNC50cmFuc2Zvcm1RdWF0ID0gZnVuY3Rpb24ob3V0LCBhLCBxKSB7Ci0gICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl0sCi0gICAgICAgIHF4ID0gcVswXSwgcXkgPSBxWzFdLCBxeiA9IHFbMl0sIHF3ID0gcVszXSwKLQotICAgICAgICAvLyBjYWxjdWxhdGUgcXVhdCAqIHZlYwotICAgICAgICBpeCA9IHF3ICogeCArIHF5ICogeiAtIHF6ICogeSwKLSAgICAgICAgaXkgPSBxdyAqIHkgKyBxeiAqIHggLSBxeCAqIHosCi0gICAgICAgIGl6ID0gcXcgKiB6ICsgcXggKiB5IC0gcXkgKiB4LAotICAgICAgICBpdyA9IC1xeCAqIHggLSBxeSAqIHkgLSBxeiAqIHo7Ci0KLSAgICAvLyBjYWxjdWxhdGUgcmVzdWx0ICogaW52ZXJzZSBxdWF0Ci0gICAgb3V0WzBdID0gaXggKiBxdyArIGl3ICogLXF4ICsgaXkgKiAtcXogLSBpeiAqIC1xeTsKLSAgICBvdXRbMV0gPSBpeSAqIHF3ICsgaXcgKiAtcXkgKyBpeiAqIC1xeCAtIGl4ICogLXF6OwotICAgIG91dFsyXSA9IGl6ICogcXcgKyBpdyAqIC1xeiArIGl4ICogLXF5IC0gaXkgKiAtcXg7Ci0gICAgcmV0dXJuIG91dDsKLX07Ci0KLS8qKgotICogUGVyZm9ybSBzb21lIG9wZXJhdGlvbiBvdmVyIGFuIGFycmF5IG9mIHZlYzRzLgotICoKLSAqIEBwYXJhbSB7QXJyYXl9IGEgdGhlIGFycmF5IG9mIHZlY3RvcnMgdG8gaXRlcmF0ZSBvdmVyCi0gKiBAcGFyYW0ge051bWJlcn0gc3RyaWRlIE51bWJlciBvZiBlbGVtZW50cyBiZXR3ZWVuIHRoZSBzdGFydCBvZiBlYWNoIHZlYzQuIElmIDAgYXNzdW1lcyB0aWdodGx5IHBhY2tlZAotICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2YgZWxlbWVudHMgdG8gc2tpcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheQotICogQHBhcmFtIHtOdW1iZXJ9IGNvdW50IE51bWJlciBvZiB2ZWMycyB0byBpdGVyYXRlIG92ZXIuIElmIDAgaXRlcmF0ZXMgb3ZlciBlbnRpcmUgYXJyYXkKLSAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIEZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggdmVjdG9yIGluIHRoZSBhcnJheQotICogQHBhcmFtIHtPYmplY3R9IFthcmddIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyB0byBmbgotICogQHJldHVybnMge0FycmF5fSBhCi0gKiBAZnVuY3Rpb24KLSAqLwotdmVjNC5mb3JFYWNoID0gKGZ1bmN0aW9uKCkgewotICAgIHZhciB2ZWMgPSB2ZWM0LmNyZWF0ZSgpOwotCi0gICAgcmV0dXJuIGZ1bmN0aW9uKGEsIHN0cmlkZSwgb2Zmc2V0LCBjb3VudCwgZm4sIGFyZykgewotICAgICAgICB2YXIgaSwgbDsKLSAgICAgICAgaWYoIXN0cmlkZSkgewotICAgICAgICAgICAgc3RyaWRlID0gNDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmKCFvZmZzZXQpIHsKLSAgICAgICAgICAgIG9mZnNldCA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmKGNvdW50KSB7Ci0gICAgICAgICAgICBsID0gTWF0aC5taW4oKGNvdW50ICogc3RyaWRlKSArIG9mZnNldCwgYS5sZW5ndGgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbCA9IGEubGVuZ3RoOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yKGkgPSBvZmZzZXQ7IGkgPCBsOyBpICs9IHN0cmlkZSkgewotICAgICAgICAgICAgdmVjWzBdID0gYVtpXTsgdmVjWzFdID0gYVtpKzFdOyB2ZWNbMl0gPSBhW2krMl07IHZlY1szXSA9IGFbaSszXTsKLSAgICAgICAgICAgIGZuKHZlYywgdmVjLCBhcmcpOwotICAgICAgICAgICAgYVtpXSA9IHZlY1swXTsgYVtpKzFdID0gdmVjWzFdOyBhW2krMl0gPSB2ZWNbMl07IGFbaSszXSA9IHZlY1szXTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIGE7Ci0gICAgfTsKLX0pKCk7Ci0KLS8qKgotICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHZlY3RvcgotICoKLSAqIEBwYXJhbSB7dmVjNH0gdmVjIHZlY3RvciB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKLSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmVjdG9yCi0gKi8KLXZlYzQuc3RyID0gZnVuY3Rpb24gKGEpIHsKLSAgICByZXR1cm4gJ3ZlYzQoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJywgJyArIGFbM10gKyAnKSc7Ci19OwotCi1pZih0eXBlb2YoZXhwb3J0cykgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgZXhwb3J0cy52ZWM0ID0gdmVjNDsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgucmIgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3N1cHBvcnQvZ2wtbWF0cml4LnJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjJhN2ZmLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgucmIKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi1Db3B5cmlnaHQgKGMpIDIwMTMgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWCi0KLVRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCi13YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKLWFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCi0KLVBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAotaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAotZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgotCi0gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLSAgICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQotICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQotICAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi0KLSAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdAotICAgIGJlIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KLQotIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCi0KLSQ6LnVuc2hpZnQgRmlsZS5leHBhbmRfcGF0aCgnLicsIEZpbGUuZGlybmFtZShfX0ZJTEVfXykpCi1yZXF1aXJlICdzcHJvY2tldHMnCi1yZXF1aXJlICdqYXNtaW5lJwotCi1jbGFzcyBKYXNtaW5lOjpDb25maWcKLSAgZGVmIHNpbXBsZV9jb25maWdfZmlsZQotICAgIEZpbGUuZXhwYW5kX3BhdGggR0xNYXRyaXguYmFzZV9wYXRoLmpvaW4oJ3NwZWMvamFzbWluZS55bWwnKQotICBlbmQKLWVuZAotCi1jbGFzcyBSYWNrOjpKYXNtaW5lOjpSdW5uZXIKLSAgYWxpYXNfbWV0aG9kIDpqYXNtaW5lX2NhbGwsIDpjYWxsCi0gIGRlZiBjYWxsKGVudikKLSAgICBHTE1hdHJpeC5jb21waWxlCi0gICAgamFzbWluZV9jYWxsIGVudgotICBlbmQKLWVuZAotCi1tb2R1bGUgR0xNYXRyaXgKLSAgYXV0b2xvYWQgOlJlbGVhc2VIZWxwZXIsICdnbC1tYXRyaXgvcmVsZWFzZV9oZWxwZXInCi0gIGF1dG9sb2FkIDpWZXJzaW9uLCAgICAgICAnZ2wtbWF0cml4L3ZlcnNpb24nCi0gIGF1dG9sb2FkIDpWRVJTSU9OLCAgICAgICAnZ2wtbWF0cml4L3ZlcnNpb24nCi0KLSAgbW9kdWxlX2Z1bmN0aW9uCi0KLSAgZGVmIHJlbGVhc2UoJmJsb2NrKQotICAgIEdMTWF0cml4OjpSZWxlYXNlSGVscGVyLnJlbGVhc2UgJmJsb2NrCi0gIGVuZAotCi0gIGRlZiBzcHJvY2tldHMKLSAgICBlbnYgPSBTcHJvY2tldHM6OkVudmlyb25tZW50Lm5ldyBiYXNlX3BhdGgKLSAgICBlbnYuYXBwZW5kX3BhdGggYmFzZV9wYXRoLmpvaW4oJ3NyYycpCi0gICAgZW52Ci0gIGVuZAotCi0gIGRlZiBiYXNlX3BhdGgKLSAgICBQYXRobmFtZS5uZXcgRmlsZS5leHBhbmRfcGF0aCgnLi4vLi4nLCBGaWxlLmRpcm5hbWUoX19GSUxFX18pKQotICBlbmQKLQotICAjIENvbXBpbGVzIHRoZSBzb3VyY2UgZmlsZSB0byB0aGUgZGVzdCBmaWxlLiBJZiBhIGJsb2NrCi0gICMgaXMgZ2l2ZW4sIHRoZSBzb3VyY2UgZmlsZSBpcyB5aWVsZGVkIGFuZCByZXBsYWNlZCB3aXRoCi0gICMgdGhlIHJlc3VsdC4gUmV0dXJucyB0aGUgZGVzdGluYXRpb24gYXMgYSBQYXRobmFtZS4KLSAgZGVmIGNvbXBpbGUoc291cmNlID0gJ2dsLW1hdHJpeC5qcycsIGRlc3QgPSAnZGlzdC9nbC1tYXRyaXguanMnKQotICAgIGRlc3QgPSBiYXNlX3BhdGguam9pbiBkZXN0Ci0gICAganMgPSBzcHJvY2tldHNbc291cmNlXQotICAgIGpzID0geWllbGQganMgaWYgYmxvY2tfZ2l2ZW4/Ci0KLSAgICBGaWxlLm9wZW4gZGVzdCwgInciIGRvIHxmfAotICAgICAgZi5wdXRzIGpzCi0gICAgZW5kCi0KLSAgICBwdXRzICJjb21waWxlZCAje3NvdXJjZX0gdG8gI3tkZXN0LnJlbGF0aXZlX3BhdGhfZnJvbSBiYXNlX3BhdGh9IgotICAgIGRlc3QKLSAgZW5kCi0KLSAgZGVmIG1pbmlmeShzb3VyY2UgPSAnZ2wtbWF0cml4LmpzJywgZGVzdCA9ICdkaXN0L2dsLW1hdHJpeC1taW4uanMnKQotICAgIGRlc3QgPSBjb21waWxlIHNvdXJjZSwgZGVzdCBkbyB8anN8Ci0gICAgICBVZ2xpZmllci5jb21waWxlIGpzCi0gICAgZW5kCi0KLSAgICBwdXRzICJtaW5pZmllZCAje3NvdXJjZX0gdG8gI3tkZXN0LnJlbGF0aXZlX3BhdGhfZnJvbSBiYXNlX3BhdGh9IgotICBlbmQKLQotZW5kCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L0NIQU5HRVMgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L0NIQU5HRVMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI5NDI1ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvQ0hBTkdFUwpAQCAtMCwwICsxLDI1NCBAQAorQ2hhbmdlbG9nIGZvciBzaXgKKz09PT09PT09PT09PT09PT09CisKK1RoaXMgZmlsZSBsaXN0cyB0aGUgY2hhbmdlcyBpbiBlYWNoIHNpeCB2ZXJzaW9uLgorCisxLjkuMAorLS0tLS0KKworLSBJc3N1ZSAjMTA2OiBTdXBwb3J0IHRoZSBgZmx1c2hgIHBhcmFtZXRlciB0byBgc2l4LnByaW50X2AuCisKKy0gUHVsbCByZXF1ZXN0ICM0OCBhbmQgaXNzdWUgIzE1OiBBZGQgdGhlIGBweXRob25fMl91bmljb2RlX2NvbXBhdGlibGVgCisgIGRlY29yYXRvci4KKworLSBQdWxsIHJlcXVlc3QgIzU3IGFuZCBpc3N1ZSAjNTA6IEFkZCBzZXZlcmFsIGNvbXBhdGliaWxpdHkgbWV0aG9kcyBmb3IgdW5pdHRlc3QKKyAgYXNzZXJ0aW9ucyB0aGF0IHdlcmUgcmVuYW1lZCBiZXR3ZWVuIFB5dGhvbiAyIGFuZCAzLgorCistIElzc3VlICMxMDUgYW5kIHB1bGwgcmVxdWVzdCAjNTg6IEVuc3VyZSBgc2l4LndyYXBzYCByZXNwZWN0cyB0aGUgKnVwZGF0ZWQqIGFuZAorICAqYXNzaWduZWQqIGFyZ3VtZW50cy4KKworLSBJc3N1ZSAjMTAyOiBBZGQgYHJhaXNlX2Zyb21gIHRvIGFic3RyYWN0IG91dCBQeXRob24gMydzIHJhaXNlIGZyb20gc3ludGF4LgorCistIElzc3VlICM5NzogT3B0aW1pemUgYHNpeC5pdGVyYnl0ZXNgIG9uIFB5dGhvbiAyLgorCistIElzc3VlICM5ODogRml4IGBzaXgubW92ZXNgIHJhY2UgY29uZGl0aW9uIGluIG11bHRpLXRocmVhZGVkIGNvZGUuCisKKy0gUHVsbCByZXF1ZXN0ICM1MTogQWRkIGBzaXgudmlldyhrZXlzfHZhbHVlc3xpdG1lcylgLCB3aGljaCBwcm92aWRlIGRpY3Rpb25hcnkKKyAgdmlld3Mgb24gUHl0aG9uIDIuNysuCisKKzEuOC4wCistLS0tLQorCistIElzc3VlICM5MDogQWRkIGBzaXgubW92ZXMuc2hsZXhfcXVvdGVgLgorCistIElzc3VlICM1OTogQWRkIGBzaXgubW92ZXMuaW50ZXJuYC4KKworLSBBZGQgYHNpeC51cmxsaWIucGFyc2UudXNlc18oZnJhZ21lbnR8bmV0bG9jfHBhcmFtc3xxdWVyeXxyZWxhdGl2ZSlgLgorCistIElzc3VlICM4ODogRml4IGFkZF9tZXRhY2xhc3Mgd2hlbiB0aGUgY2xhc3MgaGFzIGBfX3Nsb3RzX19gIGNvbnRhaW5pbmcKKyAgYF9fd2Vha3JlZl9fYCBvciBgX19kaWN0X19gLgorCistIElzc3VlICM4OTogTWFrZSBzaXggdXNlIGFic29sdXRlIGltcG9ydHMuCisKKy0gSXNzdWUgIzg1OiBBbHdheXMgYWNjZXB0ICp1cGRhdGVkKiBhbmQgKmFzc2lnbmVkKiBhcmd1bWVudHMgZm9yIGB3cmFwcygpYC4KKworLSBJc3N1ZSAjODY6IEluIGByZXJhaXNlKClgLCBpbnN0YW50aWF0ZSB0aGUgZXhjZXB0aW9uIGlmIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMKKyAgYE5vbmVgLgorCistIFB1bGwgcmVxdWVzdCAjNDU6IEFkZCBgc2l4Lm1vdmVzLmVtYWlsX21pbWVfbm9ubXVsdGlwYXJ0YC4KKworLSBJc3N1ZSAjODE6IEFkZCBgc2l4LnVybGxpYi5yZXF1ZXN0LnNwbGl0dGFnYCBtYXBwaW5nLgorCistIElzc3VlICM4MDogQWRkIGBzaXgudXJsbGliLnJlcXVlc3Quc3BsaXR1c2VyYCBtYXBwaW5nLgorCisxLjcuMworLS0tLS0KKworLSBJc3N1ZSAjNzc6IEZpeCBpbXBvcnQgc2l4IG9uIFB5dGhvbiAzLjQgd2l0aCBhIGN1c3RvbSBsb2FkZXIuCisKKy0gSXNzdWUgIzc0OiBgc2l4Lm1vdmVzLnhtbHJwY19zZXJ2ZXJgIHNob3VsZCBtYXAgdG8gYFNpbXBsZVhNTFJQQ1NlcnZlcmAgb24gUHl0aG9uCisgIDIgYXMgZG9jdW1lbnRlZCBub3QgYHhtbHJwY2xpYmAuCisKKzEuNy4yCistLS0tLQorCistIElzc3VlICM3MjogRml4IGluc3RhbGxpbmcgb24gUHl0aG9uIDIuCisKKzEuNy4xCistLS0tLQorCistIElzc3VlICM3MTogTWFrZSB0aGUgc2l4Lm1vdmVzIG1ldGEgcGF0aCBpbXBvcnRlciBoYW5kbGUgcmVsb2FkaW5nIG9mIHRoZSBzaXgKKyAgbW9kdWxlIGdyYWNlZnVsbHkuCisKKzEuNy4wCistLS0tLQorCistIFB1bGwgcmVxdWVzdCAjMzA6IEltcGxlbWVudCBzaXgubW92ZXMgd2l0aCBhIFBFUCAzMDIgbWV0YSBwYXRoIGhvb2suCisKKy0gUHVsbCByZXF1ZXN0ICMzMjogQWRkIHNpeC53cmFwcywgd2hpY2ggaXMgbGlrZSBmdW5jdG9vbHMud3JhcHMgYnV0IGFsd2F5cyBzZXRzCisgIHRoZSBfX3dyYXBwZWRfXyBhdHRyaWJ1dGUuCisKKy0gUHVsbCByZXF1ZXN0ICMzNTogSW1wcm92ZSBhZGRfbWV0YWNsYXNzLCBzbyB0aGF0IGl0IGRvZXNuJ3QgZW5kIHVwIGluc2VydGluZworICBhbm90aGVyIGNsYXNzIGludG8gdGhlIGhpZXJhcmNoeS4KKworLSBQdWxsIHJlcXVlc3QgIzM0OiBBZGQgaW1wb3J0IG1hcHBpbmdzIGZvciBkdW1teV90aHJlYWQuCisKKy0gUHVsbCByZXF1ZXN0ICMzMzogQWRkIGltcG9ydCBtYXBwaW5ncyBmb3IgVXNlckRpY3QgYW5kIFVzZXJMaXN0LgorCistIFB1bGwgcmVxdWVzdCAjMzE6IFNlbGVjdCB0aGUgaW1wbGVtZW50YXRpb25zIG9mIGRpY3Rpb25hcnkgaXRlcmF0b3Igcm91dGluZXMKKyAgYXQgaW1wb3J0IHRpbWUgZm9yIGEgMjAlIHNwZWVkIGJvb3N0LgorCisxLjYuMQorLS0tLS0KKworLSBSYWlzZSBhbiBBdHRyaWJ1dGVFcnJvciBmb3Igc2l4Lm1vdmVzLlggd2hlbiBYIGlzIGEgbW9kdWxlIG5vdCBhdmFpbGFibGUgaW4KKyAgdGhlIGN1cnJlbnQgaW50ZXJwcmV0ZXIuCisKKzEuNi4wCistLS0tLQorCistIFJhaXNlIGFuIEF0dHJpYnV0ZUVycm9yIGZvciBldmVyeSBhdHRyaWJ1dGUgb2YgdW5pbXBvcnRhYmxlIG1vZHVsZXMuCisKKy0gSXNzdWUgIzU2OiBNYWtlIHRoZSBmYWtlIG1vZHVsZXMgc2l4Lm1vdmVzIHB1dHMgaW50byBzeXMubW9kdWxlcyBhcHBlYXIgbm90IHRvCisgIGhhdmUgYSBfX3BhdGhfXyB1bmxlc3MgdGhleSBhcmUgbG9hZGVkLgorCistIFB1bGwgcmVxdWVzdCAjMjg6IEFkZCBzdXBwb3J0IGZvciBTcGxpdFJlc3VsdC4KKworLSBJc3N1ZSAjNTU6IEFkZCBtb3ZlIG1hcHBpbmcgZm9yIHhtbHJwYy5zZXJ2ZXIuCisKKy0gUHVsbCByZXF1ZXN0ICMyOTogQWRkIG1vdmUgZm9yIHVybGxpYi5wYXJzZS5zcGxpdHF1ZXJ5LgorCisxLjUuMgorLS0tLS0KKworLSBJc3N1ZSAjNTM6IE1ha2UgdGhlIGZha2UgbW9kdWxlcyBzaXgubW92ZXMgcHV0cyBpbnRvIHN5cy5tb2R1bGVzIGFwcGVhciBub3QgdG8KKyAgaGF2ZSBhIF9fbmFtZV9fIHVubGVzcyB0aGV5IGFyZSBsb2FkZWQuCisKKzEuNS4xCistLS0tLQorCistIElzc3VlICM1MTogSGFjayBhcm91bmQgdGhlIERqYW5nbyBhdXRvcmVsb2FkZXIgYWZ0ZXIgcmVjZW50IHNpeC5tb3ZlcyBjaGFuZ2VzLgorCisxLjUuMAorLS0tLS0KKworLSBSZW1vdmVkIHN1cHBvcnQgZm9yIFB5dGhvbiAyLjQuIFRoaXMgaXMgYmVjYXVzZSBweS50ZXN0IG5vIGxvbmdlciBzdXBwb3J0cworICAyLjQuCisKKy0gRml4IHZhcmlvdXMgaW1wb3J0IHByb2JsZW1zIGluY2x1ZGluZyBpc3N1ZXMgIzE5IGFuZCAjNDEuIHNpeC5tb3ZlcyBtb2R1bGVzCisgIGFyZSBub3cgbGF6eSB3cmFwcGVycyBvdmVyIHRoZSB1bmRlcmx5aW5nIG1vZHVsZXMgaW5zdGVhZCBvZiB0aGUgYWN0dWFsCisgIG1vZHVsZXMgdGhlbXNlbHZlcy4KKworLSBJc3N1ZSAjNDk6IEFkZCBzaXgubW92ZXMgbWFwcGluZyBmb3IgdGtpbnRlci50dGsuCisKKy0gUHVsbCByZXF1ZXN0ICMyNDogQWRkIF9fZGlyX18gc3BlY2lhbCBtZXRob2QgdG8gc2l4Lm1vdmVzIG1vZHVsZXMuCisKKy0gSXNzdWUgIzQ3OiBGaXggYWRkX21ldGFjbGFzcyBvbiBjbGFzc2VzIHdpdGggYSBzdHJpbmcgZm9yIHRoZSBfX3Nsb3RzX18KKyAgdmFyaWFibGUuCisKKy0gSXNzdWUgIzQ0OiBGaXggaW50ZXJwcmV0YXRpb24gb2YgYmFja3NsYXNoZXMgb24gUHl0aG9uIDIgaW4gdGhlIHUoKSBmdW5jdGlvbi4KKworLSBQdWxsIHJlcXVlc3QgIzIxOiBBZGQgaW1wb3J0IG1hcHBpbmcgZm9yIHVybGxpYidzIHByb3h5X2J5cGFzcyBmdW5jdGlvbi4KKworLSBJc3N1ZSAjNDM6IEFkZCBpbXBvcnQgbWFwcGluZyBmb3IgdGhlIFB5dGhvbiAyIHhtbHJwY2xpYiBtb2R1bGUuCisKKy0gSXNzdWUgIzM5OiBBZGQgaW1wb3J0IG1hcHBpbmcgZm9yIHRoZSBQeXRob24gMiB0aHJlYWQgbW9kdWxlLgorCistIElzc3VlICM0MDogQWRkIGltcG9ydCBtYXBwaW5nIGZvciB0aGUgUHl0aG9uIDIgZ2RibSBtb2R1bGUuCisKKy0gSXNzdWUgIzM1OiBPbiBQeXRob24gdmVyc2lvbnMgbGVzcyB0aGFuIDIuNywgcHJpbnRfIG5vdyBlbmNvZGVzIHVuaWNvZGUKKyAgc3RyaW5ncyB3aGVuIG91dHB1dGluZyB0byBzdGFuZGFyZCBzdHJlYW1zLiAoUHl0aG9uIDIuNyBoYW5kbGVzIHRoaXMKKyAgYXV0b21hdGljYWxseS4pCisKKzEuNC4xCistLS0tLQorCistIElzc3VlICMzMjogdXJsbGliIG1vZHVsZSB3cmFwcGluZ3MgZG9uJ3Qgd29yayB3aGVuIHNpeCBpcyBub3QgYSB0b3BsZXZlbCBmaWxlLgorCisxLjQuMAorLS0tLS0KKworLSBJc3N1ZSAjMzE6IEFkZCBzaXgubW92ZXMgbWFwcGluZyBmb3IgVXNlclN0cmluZy4KKworLSBQdWxsIHJlcXVlc3QgIzEyOiBBZGQgc2l4LmFkZF9tZXRhY2xhc3MsIGEgZGVjb3JhdG9yIGZvciBhZGRpbmcgYSBtZXRhY2xhc3MgdG8KKyAgYSBjbGFzcy4KKworLSBBZGQgc2l4Lm1vdmVzLnppcF9sb25nZXN0IGFuZCBzaXgubW92ZXMuZmlsdGVyZmFsc2UsIHdoaWNoIGNvcnJlc3BvbmQKKyAgcmVzcGVjdGl2ZWx5IHRvIGl0ZXJ0b29scy5pemlwX2xvbmdlc3QgYW5kIGl0ZXJ0b29scy5pZmlsdGVyZmFsc2Ugb24gUHl0aG9uIDIKKyAgYW5kIGl0ZXJ0b29scy56aXBfbG9uZ2VzdCBhbmQgaXRlcnRvb2xzLmZpbHRlcmZhbHNlIG9uIFB5dGhvbiAzLgorCistIElzc3VlICMyNTogQWRkIHRoZSB1bmljaHIgZnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgZm9yIGEgVW5pY29kZQorICBjb2RlcG9pbnQuCisKKy0gSXNzdWUgIzI2OiBBZGQgYnl0ZTJpbnQgZnVuY3Rpb24sIHdoaWNoIGNvbXBsZW1lbnRzIGludDJieXRlLgorCistIEFkZCBhIFBZMiBjb25zdGFudCB3aXRoIG9idmlvdXMgc2VtYW50aWNzLgorCistIEFkZCBoZWxwZXJzIGZvciBpbmRleGluZyBhbmQgaXRlcmF0aW5nIG92ZXIgYnl0ZXM6IGl0ZXJieXRlcyBhbmQgaW5kZXhieXRlcy4KKworLSBBZGQgY3JlYXRlX2JvdW5kX21ldGhvZCgpIHdyYXBwZXIuCisKKy0gSXNzdWUgIzIzOiBBbGxvdyBtdWx0aXBsZSBiYXNlIGNsYXNzZXMgdG8gYmUgcGFzc2VkIHRvIHdpdGhfbWV0YWNsYXNzLgorCistIElzc3VlICMyNDogQWRkIHNpeC5tb3Zlcy5yYW5nZSBhbGlhcy4gVGhpcyBleGFjdGx5IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50CisgIHhyYW5nZSBhbGlhcy4KKworLSBQdWxsIHJlcXVlc3QgIzU6IENyZWF0ZSBzaXgubW92ZXMudXJsbGliLCB3aGljaCBjb250YWlucyBhYnN0cmFjdGlvbnMgZm9yIGEKKyAgYnVuY2ggb2YgdGhpbmdzIHdoaWNoIGFyZSBpbiB1cmxsaWIgaW4gUHl0aG9uIDMgYW5kIHNwcmVhZCBvdXQgYWNyb3NzIHVybGxpYiwKKyAgdXJsbGliMiwgYW5kIHVybHBhcnNlIGluIFB5dGhvbiAyLgorCisxLjMuMAorLS0tLS0KKworLSBJc3N1ZSAjMjE6IEFkZCBtZXRob2RzIHRvIGFjY2VzcyB0aGUgY2xvc3VyZSBhbmQgZ2xvYmFscyBvZiBhIGZ1bmN0aW9uLgorCistIEluIHNpeC5pdGVyKGl0ZW1zL2tleXMvdmFsdWVzL2xpc3RzKSwgcGFzc2VkIGtleXdvcmQgYXJndW1lbnRzIHRocm91Z2ggdG8gdGhlCisgIHVuZGVybHlpbmcgbWV0aG9kLgorCistIEFkZCBzaXguaXRlcmxpc3RzKCkuCisKKy0gSXNzdWUgIzIwOiBGaXggdGVzdHMgaWYgdGtpbnRlciBpcyBub3QgYXZhaWxhYmxlLgorCistIElzc3VlICMxNzogRGVmaW5lIGNhbGxhYmxlIHRvIGJlIGJ1aWx0aW4gY2FsbGFibGUgd2hlbiBpdCBpcyBhdmFpbGFibGUgYWdhaW4KKyAgaW4gUHl0aG9uIDMuMisuCisKKy0gSXNzdWUgIzE2OiBSZW5hbWUgUHl0aG9uIDIgZXhlY18ncyBhcmd1bWVudHMsIHNvIGNhc3VhbGx5IGNhbGxpbmcgZXhlY18gd2l0aAorICBrZXl3b3JkIGFyZ3VtZW50cyB3aWxsIHJhaXNlLgorCistIElzc3VlICMxNDogUHV0IHRoZSBzaXgubW92ZXMgcGFja2FnZSBpbiBzeXMubW9kdWxlcyBiYXNlZCBvbiB0aGUgbmFtZSBzaXggaXMKKyAgaW1wb3J0ZWQgdW5kZXIuCisKKy0gRml4IEp5dGhvbiBkZXRlY3Rpb24uCisKKy0gUHVsbCByZXF1ZXN0ICM0OiBBZGQgZW1haWxfbWltZV9tdWx0aXBhcnQsIGVtYWlsX21pbWVfdGV4dCwgYW5kCisgIGVtYWlsX21pbWVfYmFzZSB0byBzaXgubW92ZXMuCisKKzEuMi4wCistLS0tLQorCistIElzc3VlICMxMzogTWFrZSBpdGVya2V5cy9pdGVydmFsdWVzL2l0ZXJpdGVtcyByZXR1cm4gaXRlcmF0b3JzIG9uIFB5dGhvbiAzCisgIGluc3RlYWQgb2YgaXRlcmFibGVzLgorCistIElzc3VlICMxMTogRml4IG1heHNpemUgc3VwcG9ydCBvbiBKeXRob24uCisKKy0gQWRkIHNpeC5uZXh0KCkgYXMgYW4gYWxpYXMgZm9yIHNpeC5hZHZhbmNlX2l0ZXJhdG9yKCkuCisKKy0gVXNlIHRoZSBidWlsdGluIG5leHQoKSBmdW5jdGlvbiBmb3IgYWR2YW5jZV9pdGVyYXRvcigpIHdoZXJlIGlzIGF2YWlsYWJsZQorICAoMi42KyksIG5vdCBqdXN0IFB5dGhvbiAzLgorCistIEFkZCB0aGUgSXRlcmF0b3IgY2xhc3MgZm9yIHdyaXRpbmcgcG9ydGFibGUgaXRlcmF0b3JzLgorCisxLjEuMAorLS0tLS0KKworLSBBZGQgdGhlIGludDJieXRlIGZ1bmN0aW9uLgorCistIEFkZCBjb21wYXRpYmlsaXR5IG1hcHBpbmdzIGZvciBpdGVyYXRvcnMgb3ZlciB0aGUga2V5cywgdmFsdWVzLCBhbmQgaXRlbXMgb2YgYQorICBkaWN0aW9uYXJ5LgorCistIEZpeCBzaXguTUFYU0laRSBvbiBwbGF0Zm9ybXMgd2hlcmUgc2l6ZW9mKGxvbmcpICE9IHNpemVvZihQeV9zc2l6ZV90KS4KKworLSBJc3N1ZSAjMzogQWRkIHNpeC5tb3ZlcyBtYXBwaW5ncyBmb3IgZmlsdGVyLCBtYXAsIGFuZCB6aXAuCisKKzEuMC4wCistLS0tLQorCistIElzc3VlICMyOiB1KCkgb24gUHl0aG9uIDIueCBub3cgcmVzb2x2ZXMgdW5pY29kZSBlc2NhcGVzLgorCistIEV4cG9zZSBhbiBBUEkgZm9yIGFkZGluZyBtYXBwaW5ncyB0byBzaXgubW92ZXMuCisKKzEuMCBiZXRhIDEKKy0tLS0tLS0tLS0KKworLSBSZXdvcmtlZCBzaXggaW50byBvbmUgLnB5IGZpbGUuICBUaGlzIGJyZWFrcyBpbXBvcnRzLiAgUGxlYXNlIHRlbGwgbWUgaWYgeW91CisgIGFyZSBpbnRlcmVzdGVkIGluIGFuIGltcG9ydCBjb21wYXRpYmlsaXR5IGxheWVyLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9MSUNFTlNFIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NThmOWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L0xJQ0VOU0UKQEAgLTAsMCArMSwxOCBAQAorQ29weXJpZ2h0IChjKSAyMDEwLTIwMTUgQmVuamFtaW4gUGV0ZXJzb24KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgordGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KK3RoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KK3VzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCit0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sCitzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCitjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MKK0ZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUgorQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSCitJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvTUFOSUZFU1QuaW4gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L01BTklGRVNULmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MjRlMDYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L01BTklGRVNULmluCkBAIC0wLDAgKzEsNiBAQAoraW5jbHVkZSBDSEFOR0VTCitpbmNsdWRlIExJQ0VOU0UKK2luY2x1ZGUgdGVzdF9zaXgucHkKKworcmVjdXJzaXZlLWluY2x1ZGUgZG9jdW1lbnRhdGlvbiAqCitwcnVuZSBkb2N1bWVudGF0aW9uL19idWlsZApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9QS0ctSU5GTyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvUEtHLUlORk8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZkZGY4NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvUEtHLUlORk8KQEAgLTAsMCArMSwzMiBAQAorTWV0YWRhdGEtVmVyc2lvbjogMS4xCitOYW1lOiBzaXgKK1ZlcnNpb246IDEuOS4wCitTdW1tYXJ5OiBQeXRob24gMiBhbmQgMyBjb21wYXRpYmlsaXR5IHV0aWxpdGllcworSG9tZS1wYWdlOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2l4LworQXV0aG9yOiBCZW5qYW1pbiBQZXRlcnNvbgorQXV0aG9yLWVtYWlsOiBiZW5qYW1pbkBweXRob24ub3JnCitMaWNlbnNlOiBNSVQKK0Rlc2NyaXB0aW9uOiBTaXggaXMgYSBQeXRob24gMiBhbmQgMyBjb21wYXRpYmlsaXR5IGxpYnJhcnkuICBJdCBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucworICAgICAgICBmb3Igc21vb3RoaW5nIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIFB5dGhvbiB2ZXJzaW9ucyB3aXRoIHRoZSBnb2FsIG9mCisgICAgICAgIHdyaXRpbmcgUHl0aG9uIGNvZGUgdGhhdCBpcyBjb21wYXRpYmxlIG9uIGJvdGggUHl0aG9uIHZlcnNpb25zLiAgU2VlIHRoZQorICAgICAgICBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHdoYXQgaXMgcHJvdmlkZWQuCisgICAgICAgIAorICAgICAgICBTaXggc3VwcG9ydHMgZXZlcnkgUHl0aG9uIHZlcnNpb24gc2luY2UgMi41LiAgSXQgaXMgY29udGFpbmVkIGluIG9ubHkgb25lIFB5dGhvbgorICAgICAgICBmaWxlLCBzbyBpdCBjYW4gYmUgZWFzaWx5IGNvcGllZCBpbnRvIHlvdXIgcHJvamVjdC4gKFRoZSBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UKKyAgICAgICAgbm90aWNlIG11c3QgYmUgcmV0YWluZWQuKQorICAgICAgICAKKyAgICAgICAgT25saW5lIGRvY3VtZW50YXRpb24gaXMgYXQgaHR0cDovL3B5dGhvbmhvc3RlZC5vcmcvc2l4Ly4KKyAgICAgICAgCisgICAgICAgIEJ1Z3MgY2FuIGJlIHJlcG9ydGVkIHRvIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9ndXR3b3J0aC9zaXguICBUaGUgY29kZSBjYW4gYWxzbworICAgICAgICBiZSBmb3VuZCB0aGVyZS4KKyAgICAgICAgCisgICAgICAgIEZvciBxdWVzdGlvbnMgYWJvdXQgc2l4IG9yIHBvcnRpbmcgaW4gZ2VuZXJhbCwgZW1haWwgdGhlIHB5dGhvbi1wb3J0aW5nIG1haWxpbmcKKyAgICAgICAgbGlzdDogaHR0cDovL21haWwucHl0aG9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3B5dGhvbi1wb3J0aW5nCisgICAgICAgIAorUGxhdGZvcm06IFVOS05PV04KK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMworQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworQ2xhc3NpZmllcjogTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UKK0NsYXNzaWZpZXI6IFRvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcworQ2xhc3NpZmllcjogVG9waWMgOjogVXRpbGl0aWVzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L1JFQURNRSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyYmFiN2MKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L1JFQURNRQpAQCAtMCwwICsxLDE2IEBACitTaXggaXMgYSBQeXRob24gMiBhbmQgMyBjb21wYXRpYmlsaXR5IGxpYnJhcnkuICBJdCBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucworZm9yIHNtb290aGluZyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBQeXRob24gdmVyc2lvbnMgd2l0aCB0aGUgZ29hbCBvZgord3JpdGluZyBQeXRob24gY29kZSB0aGF0IGlzIGNvbXBhdGlibGUgb24gYm90aCBQeXRob24gdmVyc2lvbnMuICBTZWUgdGhlCitkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHdoYXQgaXMgcHJvdmlkZWQuCisKK1NpeCBzdXBwb3J0cyBldmVyeSBQeXRob24gdmVyc2lvbiBzaW5jZSAyLjUuICBJdCBpcyBjb250YWluZWQgaW4gb25seSBvbmUgUHl0aG9uCitmaWxlLCBzbyBpdCBjYW4gYmUgZWFzaWx5IGNvcGllZCBpbnRvIHlvdXIgcHJvamVjdC4gKFRoZSBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UKK25vdGljZSBtdXN0IGJlIHJldGFpbmVkLikKKworT25saW5lIGRvY3VtZW50YXRpb24gaXMgYXQgaHR0cDovL3B5dGhvbmhvc3RlZC5vcmcvc2l4Ly4KKworQnVncyBjYW4gYmUgcmVwb3J0ZWQgdG8gaHR0cHM6Ly9iaXRidWNrZXQub3JnL2d1dHdvcnRoL3NpeC4gIFRoZSBjb2RlIGNhbiBhbHNvCitiZSBmb3VuZCB0aGVyZS4KKworRm9yIHF1ZXN0aW9ucyBhYm91dCBzaXggb3IgcG9ydGluZyBpbiBnZW5lcmFsLCBlbWFpbCB0aGUgcHl0aG9uLXBvcnRpbmcgbWFpbGluZworbGlzdDogaHR0cDovL21haWwucHl0aG9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3B5dGhvbi1wb3J0aW5nCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvUkVBRE1FLmNocm9taXVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNTRkNWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L1JFQURNRS5jaHJvbWl1bQpAQCAtMCwwICsxLDggQEAKK05hbWU6IHNpeAorVVJMOiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NpeAorVmVyc2lvbjogMS45LjAKK0RhdGU6IDIwMTUtMDEtMDIKK1JldmlzaW9uOiBOL0EKK0xpY2Vuc2U6IE1JVAorTGljZW5zZSBGaWxlOiBMSUNFTlNFCitTZWN1cml0eSBDcml0aWNhbDogbm8KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi9NYWtlZmlsZSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWJhZmNkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9uL01ha2VmaWxlCkBAIC0wLDAgKzEsMTMwIEBACisjIE1ha2VmaWxlIGZvciBTcGhpbnggZG9jdW1lbnRhdGlvbgorIworCisjIFlvdSBjYW4gc2V0IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCitTUEhJTlhPUFRTICAgID0KK1NQSElOWEJVSUxEICAgPSBzcGhpbngtYnVpbGQKK1BBUEVSICAgICAgICAgPQorQlVJTERESVIgICAgICA9IF9idWlsZAorCisjIEludGVybmFsIHZhcmlhYmxlcy4KK1BBUEVST1BUX2E0ICAgICA9IC1EIGxhdGV4X3BhcGVyX3NpemU9YTQKK1BBUEVST1BUX2xldHRlciA9IC1EIGxhdGV4X3BhcGVyX3NpemU9bGV0dGVyCitBTExTUEhJTlhPUFRTICAgPSAtZCAkKEJVSUxERElSKS9kb2N0cmVlcyAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQSElOWE9QVFMpIC4KKworLlBIT05ZOiBoZWxwIGNsZWFuIGh0bWwgZGlyaHRtbCBzaW5nbGVodG1sIHBpY2tsZSBqc29uIGh0bWxoZWxwIHF0aGVscCBkZXZoZWxwIGVwdWIgbGF0ZXggbGF0ZXhwZGYgdGV4dCBtYW4gY2hhbmdlcyBsaW5rY2hlY2sgZG9jdGVzdAorCitoZWxwOgorCUBlY2hvICJQbGVhc2UgdXNlIFxgbWFrZSA8dGFyZ2V0Picgd2hlcmUgPHRhcmdldD4gaXMgb25lIG9mIgorCUBlY2hvICIgIGh0bWwgICAgICAgdG8gbWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMiCisJQGVjaG8gIiAgZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3RvcmllcyIKKwlAZWNobyAiICBzaW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBmaWxlIgorCUBlY2hvICIgIHBpY2tsZSAgICAgdG8gbWFrZSBwaWNrbGUgZmlsZXMiCisJQGVjaG8gIiAganNvbiAgICAgICB0byBtYWtlIEpTT04gZmlsZXMiCisJQGVjaG8gIiAgaHRtbGhlbHAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgcXRoZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgcXRoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZGV2aGVscCAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVscCBwcm9qZWN0IgorCUBlY2hvICIgIGVwdWIgICAgICAgdG8gbWFrZSBhbiBlcHViIgorCUBlY2hvICIgIGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQgb3IgUEFQRVI9bGV0dGVyIgorCUBlY2hvICIgIGxhdGV4cGRmICAgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBwZGZsYXRleCIKKwlAZWNobyAiICB0ZXh0ICAgICAgIHRvIG1ha2UgdGV4dCBmaWxlcyIKKwlAZWNobyAiICBtYW4gICAgICAgIHRvIG1ha2UgbWFudWFsIHBhZ2VzIgorCUBlY2hvICIgIGNoYW5nZXMgICAgdG8gbWFrZSBhbiBvdmVydmlldyBvZiBhbGwgY2hhbmdlZC9hZGRlZC9kZXByZWNhdGVkIGl0ZW1zIgorCUBlY2hvICIgIGxpbmtjaGVjayAgdG8gY2hlY2sgYWxsIGV4dGVybmFsIGxpbmtzIGZvciBpbnRlZ3JpdHkiCisJQGVjaG8gIiAgZG9jdGVzdCAgICB0byBydW4gYWxsIGRvY3Rlc3RzIGVtYmVkZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChpZiBlbmFibGVkKSIKKworY2xlYW46CisJLXJtIC1yZiAkKEJVSUxERElSKS8qCisKK2h0bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2h0bWwuIgorCitkaXJodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIGRpcmh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kaXJodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9kaXJodG1sLiIKKworc2luZ2xlaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBzaW5nbGVodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvc2luZ2xlaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlIGlzIGluICQoQlVJTERESVIpL3NpbmdsZWh0bWwuIgorCitwaWNrbGU6CisJJChTUEhJTlhCVUlMRCkgLWIgcGlja2xlICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcGlja2xlCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBpY2tsZSBmaWxlcy4iCisKK2pzb246CisJJChTUEhJTlhCVUlMRCkgLWIganNvbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2pzb24KKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBmaWxlcy4iCisKK2h0bWxoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIGh0bWxoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbGhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuIEhUTUwgSGVscCBXb3Jrc2hvcCB3aXRoIHRoZSIgXAorCSAgICAgICIuaGhwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9odG1saGVscC4iCisKK3F0aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBxdGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9xdGhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlvbmdlbmVyYXRvciIgd2l0aCB0aGUiIFwKKwkgICAgICAiLnFoY3AgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL3F0aGVscCwgbGlrZSB0aGlzOiIKKwlAZWNobyAiIyBxY29sbGVjdGlvbmdlbmVyYXRvciAkKEJVSUxERElSKS9xdGhlbHAvc2l4LnFoY3AiCisJQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgYXNzaXN0YW50IC1jb2xsZWN0aW9uRmlsZSAkKEJVSUxERElSKS9xdGhlbHAvc2l4LnFoYyIKKworZGV2aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkZXZoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGV2aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlAZWNobyAiIyBta2RpciAtcCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvc2l4IgorCUBlY2hvICIjIGxuIC1zICQoQlVJTERESVIpL2RldmhlbHAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL3NpeCIKKwlAZWNobyAiIyBkZXZoZWxwIgorCitlcHViOgorCSQoU1BISU5YQlVJTEQpIC1iIGVwdWIgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9lcHViCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlMRERJUikvZXB1Yi4iCisKK2xhdGV4OgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisJQGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgiIFwKKwkgICAgICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5KS4iCisKK2xhdGV4cGRmOgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJvdWdoIHBkZmxhdGV4Li4uIgorCW1ha2UgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgorCUBlY2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgorCit0ZXh0OgorCSQoU1BISU5YQlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS90ZXh0CisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSB0ZXh0IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXh0LiIKKworbWFuOgorCSQoU1BISU5YQlVJTEQpIC1iIG1hbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL21hbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9tYW4uIgorCitjaGFuZ2VzOgorCSQoU1BISU5YQlVJTEQpIC1iIGNoYW5nZXMgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9jaGFuZ2VzCisJQGVjaG8KKwlAZWNobyAiVGhlIG92ZXJ2aWV3IGZpbGUgaXMgaW4gJChCVUlMRERJUikvY2hhbmdlcy4iCisKK2xpbmtjaGVjazoKKwkkKFNQSElOWEJVSUxEKSAtYiBsaW5rY2hlY2sgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9saW5rY2hlY2sKKwlAZWNobworCUBlY2hvICJMaW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3JzIGluIHRoZSBhYm92ZSBvdXRwdXQgIiBcCisJICAgICAgIm9yIGluICQoQlVJTERESVIpL2xpbmtjaGVjay9vdXRwdXQudHh0LiIKKworZG9jdGVzdDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkb2N0ZXN0ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZG9jdGVzdAorCUBlY2hvICJUZXN0aW5nIG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSAiIFwKKwkgICAgICAicmVzdWx0cyBpbiAkKEJVSUxERElSKS9kb2N0ZXN0L291dHB1dC50eHQuIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9uL2NvbmYucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L2RvY3VtZW50YXRpb24vY29uZi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjE1YmRkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9uL2NvbmYucHkKQEAgLTAsMCArMSwyMTcgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisjCisjIHNpeCBkb2N1bWVudGF0aW9uIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZmlsZQorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworIyBJZiBleHRlbnNpb25zIChvciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LAorIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBhdGggaGVyZS4gSWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9jdW1lbnRhdGlvbiByb290LCB1c2Ugb3MucGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ugc2hvd24gaGVyZS4KKyNzeXMucGF0aC5hcHBlbmQob3MucGF0aC5hYnNwYXRoKCcuJykpCisKKyMgLS0gR2VuZXJhbCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRzIGEgbWluaW1hbCBTcGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KK25lZWRzX3NwaGlueCA9ICIxLjAiCisKKyMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVsZSBuYW1lcyBoZXJlLCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZSBleHRlbnNpb25zCisjIGNvbWluZyB3aXRoIFNwaGlueCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tIG9uZXMuCitleHRlbnNpb25zID0gWyJzcGhpbnguZXh0LmludGVyc3BoaW54Il0KKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCit0ZW1wbGF0ZXNfcGF0aCA9IFsiX3RlbXBsYXRlcyJdCisKKyMgVGhlIHN1ZmZpeCBvZiBzb3VyY2UgZmlsZW5hbWVzLgorc291cmNlX3N1ZmZpeCA9ICIucnN0IgorCisjIFRoZSBlbmNvZGluZyBvZiBzb3VyY2UgZmlsZXMuCisjc291cmNlX2VuY29kaW5nID0gInV0Zi04LXNpZyIKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCittYXN0ZXJfZG9jID0gImluZGV4IgorCisjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3QuCitwcm9qZWN0ID0gdSJzaXgiCitjb3B5cmlnaHQgPSB1IjIwMTAtMjAxNSwgQmVuamFtaW4gUGV0ZXJzb24iCisKK3N5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKCIuIiwgIi4uIikpKQorZnJvbSBzaXggaW1wb3J0IF9fdmVyc2lvbl9fIGFzIHNpeF92ZXJzaW9uCitzeXMucGF0aC5wb3AoKQorCisjIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQorIyBidWlsdCBkb2N1bWVudHMuCisjCisjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KK3ZlcnNpb24gPSBzaXhfdmVyc2lvbls6LTJdCisjIFRoZSBmdWxsIHZlcnNpb24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCityZWxlYXNlID0gc2l4X3ZlcnNpb24KKworIyBUaGUgbGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBieSBTcGhpbnguIFJlZmVyIHRvIGRvY3VtZW50YXRpb24KKyMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLgorI2xhbmd1YWdlID0gTm9uZQorCisjIFRoZXJlIGFyZSB0d28gb3B0aW9ucyBmb3IgcmVwbGFjaW5nIHx0b2RheXw6IGVpdGhlciwgeW91IHNldCB0b2RheSB0byBzb21lCisjIG5vbi1mYWxzZSB2YWx1ZSwgdGhlbiBpdCBpcyB1c2VkOgorI3RvZGF5ID0gJycKKyMgRWxzZSwgdG9kYXlfZm10IGlzIHVzZWQgYXMgdGhlIGZvcm1hdCBmb3IgYSBzdHJmdGltZSBjYWxsLgorI3RvZGF5X2ZtdCA9ICclQiAlZCwgJVknCisKKyMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8gc291cmNlIGRpcmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKKyMgZGlyZWN0b3JpZXMgdG8gaWdub3JlIHdoZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVzLgorZXhjbHVkZV9wYXR0ZXJucyA9IFsiX2J1aWxkIl0KKworIyBUaGUgcmVTVCBkZWZhdWx0IHJvbGUgKHVzZWQgZm9yIHRoaXMgbWFya3VwOiBgdGV4dGApIHRvIHVzZSBmb3IgYWxsIGRvY3VtZW50cy4KKyNkZWZhdWx0X3JvbGUgPSBOb25lCisKKyMgSWYgdHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpmdW5jOiBldGMuIGNyb3NzLXJlZmVyZW5jZSB0ZXh0LgorI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwgZGVzY3JpcHRpb24KKyMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVuY3Rpb246OikuCisjYWRkX21vZHVsZV9uYW1lcyA9IFRydWUKKworIyBJZiB0cnVlLCBzZWN0aW9uYXV0aG9yIGFuZCBtb2R1bGVhdXRob3IgZGlyZWN0aXZlcyB3aWxsIGJlIHNob3duIGluIHRoZQorIyBvdXRwdXQuIFRoZXkgYXJlIGlnbm9yZWQgYnkgZGVmYXVsdC4KKyNzaG93X2F1dGhvcnMgPSBGYWxzZQorCisjIFRoZSBuYW1lIG9mIHRoZSBQeWdtZW50cyAoc3ludGF4IGhpZ2hsaWdodGluZykgc3R5bGUgdG8gdXNlLgorcHlnbWVudHNfc3R5bGUgPSAic3BoaW54IgorCisjIEEgbGlzdCBvZiBpZ25vcmVkIHByZWZpeGVzIGZvciBtb2R1bGUgaW5kZXggc29ydGluZy4KKyNtb2RpbmRleF9jb21tb25fcHJlZml4ID0gW10KKworCisjIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRoZSB0aGVtZSB0byB1c2UgZm9yIEhUTUwgYW5kIEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKKyMgYSBsaXN0IG9mIGJ1aWx0aW4gdGhlbWVzLgoraHRtbF90aGVtZSA9ICJkZWZhdWx0IgorCisjIFRoZW1lIG9wdGlvbnMgYXJlIHRoZW1lLXNwZWNpZmljIGFuZCBjdXN0b21pemUgdGhlIGxvb2sgYW5kIGZlZWwgb2YgYSB0aGVtZQorIyBmdXJ0aGVyLiAgRm9yIGEgbGlzdCBvZiBvcHRpb25zIGF2YWlsYWJsZSBmb3IgZWFjaCB0aGVtZSwgc2VlIHRoZQorIyBkb2N1bWVudGF0aW9uLgorI2h0bWxfdGhlbWVfb3B0aW9ucyA9IHt9CisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KKyNodG1sX3RoZW1lX3BhdGggPSBbXQorCisjIFRoZSBuYW1lIGZvciB0aGlzIHNldCBvZiBTcGhpbnggZG9jdW1lbnRzLiAgSWYgTm9uZSwgaXQgZGVmYXVsdHMgdG8KKyMgIjxwcm9qZWN0PiB2PHJlbGVhc2U+IGRvY3VtZW50YXRpb24iLgorI2h0bWxfdGl0bGUgPSBOb25lCisKKyMgQSBzaG9ydGVyIHRpdGxlIGZvciB0aGUgbmF2aWdhdGlvbiBiYXIuICBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIGh0bWxfdGl0bGUuCisjaHRtbF9zaG9ydF90aXRsZSA9IE5vbmUKKworIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcAorIyBvZiB0aGUgc2lkZWJhci4KKyNodG1sX2xvZ28gPSBOb25lCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAod2l0aGluIHRoZSBzdGF0aWMgcGF0aCkgdG8gdXNlIGFzIGZhdmljb24gb2YgdGhlCisjIGRvY3MuICBUaGlzIGZpbGUgc2hvdWxkIGJlIGEgV2luZG93cyBpY29uIGZpbGUgKC5pY28pIGJlaW5nIDE2eDE2IG9yIDMyeDMyCisjIHBpeGVscyBsYXJnZS4KKyNodG1sX2Zhdmljb24gPSBOb25lCisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRpYyBmaWxlcyAoc3VjaCBhcyBzdHlsZSBzaGVldHMpIGhlcmUsCisjIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LiBUaGV5IGFyZSBjb3BpZWQgYWZ0ZXIgdGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVzLAorIyBzbyBhIGZpbGUgbmFtZWQgImRlZmF1bHQuY3NzIiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVpbHRpbiAiZGVmYXVsdC5jc3MiLgoraHRtbF9zdGF0aWNfcGF0aCA9IFsiX3N0YXRpYyJdCisKKyMgSWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246JyB0aW1lc3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZlcnkgcGFnZSBib3R0b20sCisjIHVzaW5nIHRoZSBnaXZlbiBzdHJmdGltZSBmb3JtYXQuCisjaHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVkLCAlWScKKworIyBJZiB0cnVlLCBTbWFydHlQYW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBxdW90ZXMgYW5kIGRhc2hlcyB0bworIyB0eXBvZ3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4KKyNodG1sX3VzZV9zbWFydHlwYW50cyA9IFRydWUKKworIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMsIG1hcHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9zaWRlYmFycyA9IHt9CisKKyMgQWRkaXRpb25hbCB0ZW1wbGF0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgdG8gcGFnZXMsIG1hcHMgcGFnZSBuYW1lcyB0bworIyB0ZW1wbGF0ZSBuYW1lcy4KKyNodG1sX2FkZGl0aW9uYWxfcGFnZXMgPSB7fQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2h0bWxfZG9tYWluX2luZGljZXMgPSBUcnVlCisKKyMgSWYgZmFsc2UsIG5vIGluZGV4IGlzIGdlbmVyYXRlZC4KKyNodG1sX3VzZV9pbmRleCA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlkdWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4KKyNodG1sX3NwbGl0X2luZGV4ID0gRmFsc2UKKworIyBJZiB0cnVlLCBsaW5rcyB0byB0aGUgcmVTVCBzb3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgcGFnZXMuCisjaHRtbF9zaG93X3NvdXJjZWxpbmsgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgIkNyZWF0ZWQgdXNpbmcgU3BoaW54IiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KKyNodG1sX3Nob3dfc3BoaW54ID0gVHJ1ZQorCisjIElmIHRydWUsICIoQykgQ29weXJpZ2h0IC4uLiIgaXMgc2hvd24gaW4gdGhlIEhUTUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRydWUuCisjaHRtbF9zaG93X2NvcHlyaWdodCA9IFRydWUKKworIyBJZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2NyaXB0aW9uIGZpbGUgd2lsbCBiZSBvdXRwdXQsIGFuZCBhbGwgcGFnZXMgd2lsbAorIyBjb250YWluIGEgPGxpbms+IHRhZyByZWZlcnJpbmcgdG8gaXQuICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gbXVzdCBiZSB0aGUKKyMgYmFzZSBVUkwgZnJvbSB3aGljaCB0aGUgZmluaXNoZWQgSFRNTCBpcyBzZXJ2ZWQuCisjaHRtbF91c2Vfb3BlbnNlYXJjaCA9ICcnCisKKyMgSWYgbm9uZW1wdHksIHRoaXMgaXMgdGhlIGZpbGUgbmFtZSBzdWZmaXggZm9yIEhUTUwgZmlsZXMgKGUuZy4gIi54aHRtbCIpLgorI2h0bWxfZmlsZV9zdWZmaXggPSAnJworCisjIE91dHB1dCBmaWxlIGJhc2UgbmFtZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCitodG1saGVscF9iYXNlbmFtZSA9ICdzaXhkb2MnCisKKworIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgcGFwZXIgc2l6ZSAoJ2xldHRlcicgb3IgJ2E0JykuCisjbGF0ZXhfcGFwZXJfc2l6ZSA9ICdsZXR0ZXInCisKKyMgVGhlIGZvbnQgc2l6ZSAoJzEwcHQnLCAnMTFwdCcgb3IgJzEycHQnKS4KKyNsYXRleF9mb250X3NpemUgPSAnMTBwdCcKKworIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIExhVGVYIGZpbGVzLiBMaXN0IG9mIHR1cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRsZSwgYXV0aG9yLCBkb2N1bWVudGNsYXNzIFtob3d0by9tYW51YWxdKS4KK2xhdGV4X2RvY3VtZW50cyA9IFsKKyAgKCJpbmRleCIsICJzaXgudGV4IiwgdSJzaXggRG9jdW1lbnRhdGlvbiIsCisgICB1IkJlbmphbWluIFBldGVyc29uIiwgIm1hbnVhbCIpLAorXQorCisjIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBhdCB0aGUgdG9wIG9mCisjIHRoZSB0aXRsZSBwYWdlLgorI2xhdGV4X2xvZ28gPSBOb25lCisKKyMgRm9yICJtYW51YWwiIGRvY3VtZW50cywgaWYgdGhpcyBpcyB0cnVlLCB0aGVuIHRvcGxldmVsIGhlYWRpbmdzIGFyZSBwYXJ0cywKKyMgbm90IGNoYXB0ZXJzLgorI2xhdGV4X3VzZV9wYXJ0cyA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgc2hvdyBwYWdlIHJlZmVyZW5jZXMgYWZ0ZXIgaW50ZXJuYWwgbGlua3MuCisjbGF0ZXhfc2hvd19wYWdlcmVmcyA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgc2hvdyBVUkwgYWRkcmVzc2VzIGFmdGVyIGV4dGVybmFsIGxpbmtzLgorI2xhdGV4X3Nob3dfdXJscyA9IEZhbHNlCisKKyMgQWRkaXRpb25hbCBzdHVmZiBmb3IgdGhlIExhVGVYIHByZWFtYmxlLgorI2xhdGV4X3ByZWFtYmxlID0gJycKKworIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgorI2xhdGV4X2FwcGVuZGljZXMgPSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2xhdGV4X2RvbWFpbl9pbmRpY2VzID0gVHJ1ZQorCisKKyMgLS0gT3B0aW9ucyBmb3IgbWFudWFsIHBhZ2Ugb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT25lIGVudHJ5IHBlciBtYW51YWwgcGFnZS4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlwdGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2VzID0gWworICAgICgiaW5kZXgiLCAic2l4IiwgdSJzaXggRG9jdW1lbnRhdGlvbiIsCisgICAgIFt1IkJlbmphbWluIFBldGVyc29uIl0sIDEpCitdCisKKyMgLS0gSW50ZXJzcGhpbnggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2ludGVyc3BoaW54X21hcHBpbmcgPSB7InB5MiIgOiAoImh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvIiwgTm9uZSksCisgICAgICAgICAgICAgICAgICAgICAgICJweTMiIDogKCJodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLyIsIE5vbmUpfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYyNzQwMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi9pbmRleC5yc3QKQEAgLTAsMCArMSw4MjggQEAKK1NpeDogUHl0aG9uIDIgYW5kIDMgQ29tcGF0aWJpbGl0eSBMaWJyYXJ5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBtb2R1bGU6OiBzaXgKKyAgIDpzeW5vcHNpczogUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eQorCisuLiBtb2R1bGVhdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNvbiA8YmVuamFtaW5AcHl0aG9uLm9yZz4KKy4uIHNlY3Rpb25hdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNvbiA8YmVuamFtaW5AcHl0aG9uLm9yZz4KKworCitTaXggcHJvdmlkZXMgc2ltcGxlIHV0aWxpdGllcyBmb3Igd3JhcHBpbmcgb3ZlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIFB5dGhvbiAyIGFuZAorUHl0aG9uIDMuICBJdCBpcyBpbnRlbmRlZCB0byBzdXBwb3J0IGNvZGViYXNlcyB0aGF0IHdvcmsgb24gYm90aCBQeXRob24gMiBhbmQgMword2l0aG91dCBtb2RpZmljYXRpb24uICBzaXggY29uc2lzdHMgb2Ygb25seSBvbmUgUHl0aG9uIGZpbGUsIHNvIGl0IGlzIHBhaW5sZXNzCit0byBjb3B5IGludG8gYSBwcm9qZWN0LgorCitTaXggY2FuIGJlIGRvd25sb2FkZWQgb24gYFB5UGkgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zaXgvPmBfLiAgSXRzIGJ1ZwordHJhY2tlciBhbmQgY29kZSBob3N0aW5nIGlzIG9uIGBCaXRCdWNrZXQgPGh0dHA6Ly9iaXRidWNrZXQub3JnL2d1dHdvcnRoL3NpeD5gXy4KKworVGhlIG5hbWUsICJzaXgiLCBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgMiozIGVxdWFscyA2LiAgV2h5IG5vdCBhZGRpdGlvbj8KK011bHRpcGxpY2F0aW9uIGlzIG1vcmUgcG93ZXJmdWwsIGFuZCwgYW55d2F5LCAiZml2ZSIgaGFzIGFscmVhZHkgYmVlbiBzbmF0Y2hlZAorYXdheSBieSB0aGUgKGFkbWl0dGVkbHkgbm93IG1vcmlidW5kKSBab3BlIEZpdmUgcHJvamVjdC4KKworCitJbmRpY2VzIGFuZCB0YWJsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLQorCisqIDpyZWY6YGdlbmluZGV4YAorKiA6cmVmOmBzZWFyY2hgCisKKworUGFja2FnZSBjb250ZW50cworLS0tLS0tLS0tLS0tLS0tLQorCisuLiBkYXRhOjogUFkyCisKKyAgIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBjb2RlIGlzIHJ1bm5pbmcgb24gUHl0aG9uIDIuCisKKy4uIGRhdGE6OiBQWTMKKworICAgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGNvZGUgaXMgcnVubmluZyBvbiBQeXRob24gMy4KKworCitDb25zdGFudHMKKz4+Pj4+Pj4+PgorCitTaXggcHJvdmlkZXMgY29uc3RhbnRzIHRoYXQgbWF5IGRpZmZlciBiZXR3ZWVuIFB5dGhvbiB2ZXJzaW9ucy4gIE9uZXMgZW5kaW5nCitgYF90eXBlc2BgIGFyZSBtb3N0bHkgdXNlZnVsIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYGBpc2luc3RhbmNlYGAgb3IKK2BgaXNzdWJjbGFzc2BgLgorCisKKy4uIGRhdGE6OiBjbGFzc190eXBlcworCisgICBQb3NzaWJsZSBjbGFzcyB0eXBlcy4gIEluIFB5dGhvbiAyLCB0aGlzIGVuY29tcGFzc2VzIG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxlCisgICBjbGFzc2VzLiAgSW4gUHl0aG9uIDMsIHRoaXMgaXMganVzdCBuZXctc3R5bGVzLgorCisKKy4uIGRhdGE6OiBpbnRlZ2VyX3R5cGVzCisKKyAgIFBvc3NpYmxlIGludGVnZXIgdHlwZXMuICBJbiBQeXRob24gMiwgdGhpcyBpcyA6ZnVuYzpgcHkyOmxvbmdgIGFuZAorICAgOmZ1bmM6YHB5MjppbnRgLCBhbmQgaW4gUHl0aG9uIDMsIGp1c3QgOmZ1bmM6YHB5MzppbnRgLgorCisKKy4uIGRhdGE6OiBzdHJpbmdfdHlwZXMKKworICAgUG9zc2libGUgdHlwZXMgZm9yIHRleHQgZGF0YS4gIFRoaXMgaXMgOmZ1bmM6YHB5MjpiYXNlc3RyaW5nYCBpbiBQeXRob24gMiBhbmQKKyAgIDpmdW5jOmBweTM6c3RyYCBpbiBQeXRob24gMy4KKworCisuLiBkYXRhOjogdGV4dF90eXBlCisKKyAgIFR5cGUgZm9yIHJlcHJlc2VudGluZyAoVW5pY29kZSkgdGV4dHVhbCBkYXRhLiAgVGhpcyBpcyA6ZnVuYzpgcHkyOnVuaWNvZGVgIGluCisgICBQeXRob24gMiBhbmQgOmZ1bmM6YHB5MzpzdHJgIGluIFB5dGhvbiAzLgorCisKKy4uIGRhdGE6OiBiaW5hcnlfdHlwZQorCisgICBUeXBlIGZvciByZXByZXNlbnRpbmcgYmluYXJ5IGRhdGEuICBUaGlzIGlzIDpmdW5jOmBweTI6c3RyYCBpbiBQeXRob24gMiBhbmQKKyAgIDpmdW5jOmBweTM6Ynl0ZXNgIGluIFB5dGhvbiAzLgorCisKKy4uIGRhdGE6OiBNQVhTSVpFCisKKyAgIFRoZSBtYXhpbXVtICBzaXplIG9mIGEgIGNvbnRhaW5lciBsaWtlIDpmdW5jOmBweTM6bGlzdGAgIG9yIDpmdW5jOmBweTM6ZGljdGAuCisgICBUaGlzICBpcyAgZXF1aXZhbGVudCAgdG8gIDpkYXRhOmBweTM6c3lzLm1heHNpemVgIGluICBQeXRob24gIDIuNiAgYW5kICBsYXRlcgorICAgKGluY2x1ZGluZyAzLngpLiAgIE5vdGUsIHRoaXMgaXMgdGVtcHRpbmdseSAgc2ltaWxhciB0bywgYnV0IG5vdCAgdGhlIHNhbWUgYXMKKyAgIDpkYXRhOmBweTI6c3lzLm1heGludGAgIGluICBQeXRob24gIDIuICAgVGhlcmUgaXMgIG5vICBkaXJlY3QgIGVxdWl2YWxlbnQgIHRvCisgICA6ZGF0YTpgcHkyOnN5cy5tYXhpbnRgIGluICBQeXRob24gMyAgYmVjYXVzZSBpdHMgaW50ZWdlciAgdHlwZSBoYXMgIG5vIGxpbWl0cworICAgYXNpZGUgZnJvbSBtZW1vcnkuCisKKworSGVyZSdzIGV4YW1wbGUgdXNhZ2Ugb2YgdGhlIG1vZHVsZTo6CisKKyAgIGltcG9ydCBzaXgKKworICAgZGVmIGRpc3BhdGNoX3R5cGVzKHZhbHVlKToKKyAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzaXguaW50ZWdlcl90eXBlcyk6CisgICAgICAgICAgIGhhbmRsZV9pbnRlZ2VyKHZhbHVlKQorICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LmNsYXNzX3R5cGVzKToKKyAgICAgICAgICAgaGFuZGxlX2NsYXNzKHZhbHVlKQorICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgICAgIGhhbmRsZV9zdHJpbmcodmFsdWUpCisKKworT2JqZWN0IG1vZGVsIGNvbXBhdGliaWxpdHkKKz4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+CisKK1B5dGhvbiAzIHJlbmFtZWQgdGhlIGF0dHJpYnV0ZXMgb2Ygc2V2ZXJhbCBpbnRlcHJldGVyIGRhdGEgc3RydWN0dXJlcy4gIFRoZQorZm9sbG93aW5nIGFjY2Vzc29ycyBhcmUgYXZhaWxhYmxlLiAgTm90ZSB0aGF0IHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zcGVjdAorZnVuY3Rpb25zIGFuZCBtZXRob2RzIGlzIHRoZSBzdGRsaWIgOm1vZDpgcHkzOmluc3BlY3RgIG1vZHVsZS4KKworCisuLiBmdW5jdGlvbjo6IGdldF91bmJvdW5kX2Z1bmN0aW9uKG1ldGgpCisKKyAgIEdldCB0aGUgZnVuY3Rpb24gb3V0IG9mIHVuYm91bmQgbWV0aG9kICptZXRoKi4gIEluIFB5dGhvbiAzLCB1bmJvdW5kIG1ldGhvZHMKKyAgIGRvbid0IGV4aXN0LCBzbyB0aGlzIGZ1bmN0aW9uIGp1c3QgcmV0dXJucyAqbWV0aCogdW5jaGFuZ2VkLiAgRXhhbXBsZQorICAgdXNhZ2U6OgorCisgICAgICBmcm9tIHNpeCBpbXBvcnQgZ2V0X3VuYm91bmRfZnVuY3Rpb24KKworICAgICAgY2xhc3MgWChvYmplY3QpOgorICAgICAgICAgIGRlZiBtZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgIHBhc3MKKyAgICAgIG1ldGhvZF9mdW5jdGlvbiA9IGdldF91bmJvdW5kX2Z1bmN0aW9uKFgubWV0aG9kKQorCisKKy4uIGZ1bmN0aW9uOjogZ2V0X21ldGhvZF9mdW5jdGlvbihtZXRoKQorCisgICBHZXQgdGhlIGZ1bmN0aW9uIG91dCBvZiBtZXRob2Qgb2JqZWN0ICptZXRoKi4KKworCisuLiBmdW5jdGlvbjo6IGdldF9tZXRob2Rfc2VsZihtZXRoKQorCisgICBHZXQgdGhlIGBgc2VsZmBgIG9mIGJvdW5kIG1ldGhvZCAqbWV0aCouCisKKworLi4gZnVuY3Rpb246OiBnZXRfZnVuY3Rpb25fY2xvc3VyZShmdW5jKQorCisgICBHZXQgdGhlIGNsb3N1cmUgKGxpc3Qgb2YgY2VsbHMpIGFzc29jaWF0ZWQgd2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQKKyAgIHRvIGBgZnVuYy5fX2Nsb3N1cmVfX2BgIG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVuY19jbG9zdXJlYGAgb24gUHl0aG9uCisgICAyLjUuCisKKworLi4gZnVuY3Rpb246OiBnZXRfZnVuY3Rpb25fY29kZShmdW5jKQorCisgICBHZXQgdGhlIGNvZGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgIGBgZnVuYy5fX2NvZGVfX2BgIG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVuY19jb2RlYGAgb24gUHl0aG9uIDIuNS4KKworCisuLiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9kZWZhdWx0cyhmdW5jKQorCisgICBHZXQgdGhlIGRlZmF1bHRzIHR1cGxlIGFzc29jaWF0ZWQgd2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgIGBgZnVuYy5fX2RlZmF1bHRzX19gYCBvbiBQeXRob24gMi42KyBhbmQgYGBmdW5jLmZ1bmNfZGVmYXVsdHNgYCBvbiBQeXRob24KKyAgIDIuNS4KKworCisuLiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9nbG9iYWxzKGZ1bmMpCisKKyAgIEdldCB0aGUgZ2xvYmFscyBvZiAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYGBmdW5jLl9fZ2xvYmFsc19fYGAgb24KKyAgIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVuY19nbG9iYWxzYGAgb24gUHl0aG9uIDIuNS4KKworCisuLiBmdW5jdGlvbjo6IG5leHQoaXQpCisgICAgICAgICAgICAgIGFkdmFuY2VfaXRlcmF0b3IoaXQpCisKKyAgIEdldCB0aGUgbmV4dCBpdGVtIG9mIGl0ZXJhdG9yICppdCouICA6ZXhjOmBweTM6U3RvcEl0ZXJhdGlvbmAgaXMgcmFpc2VkIGlmCisgICB0aGUgaXRlcmF0b3IgaXMgZXhoYXVzdGVkLiAgVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciBjYWxsaW5nIGBgaXQubmV4dCgpYGAKKyAgIGluIFB5dGhvbiAyIGFuZCBgYG5leHQoaXQpYGAgaW4gUHl0aG9uIDMuCisKKworLi4gZnVuY3Rpb246OiBjYWxsYWJsZShvYmopCisKKyAgIENoZWNrIGlmICpvYmoqIGNhbiBiZSBjYWxsZWQuICBOb3RlIGBgY2FsbGFibGVgYCBoYXMgcmV0dXJuZWQgaW4gUHl0aG9uIDMuMiwKKyAgIHNvIHVzaW5nIHNpeCdzIHZlcnNpb24gaXMgb25seSBuZWNlc3Nhcnkgd2hlbiBzdXBwb3J0aW5nIFB5dGhvbiAzLjAgb3IgMy4xLgorCisKKy4uIGZ1bmN0aW9uOjogaXRlcmtleXMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCisKKyAgIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3Mga2V5cy4gVGhpcyByZXBsYWNlcworICAgYGBkaWN0aW9uYXJ5Lml0ZXJrZXlzKClgYCBvbiBQeXRob24gMiBhbmQgYGBkaWN0aW9uYXJ5LmtleXMoKWBgIG9uCisgICBQeXRob24gMy4gICprd2FyZ3MqIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCisKKworLi4gZnVuY3Rpb246OiBpdGVydmFsdWVzKGRpY3Rpb25hcnksICoqa3dhcmdzKQorCisgICBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIgKmRpY3Rpb25hcnkqXCdzIHZhbHVlcy4gVGhpcyByZXBsYWNlcworICAgYGBkaWN0aW9uYXJ5Lml0ZXJ2YWx1ZXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkudmFsdWVzKClgYCBvbgorICAgUHl0aG9uIDMuICAqa3dhcmdzKiBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVybHlpbmcgbWV0aG9kLgorCisKKy4uIGZ1bmN0aW9uOjogaXRlcml0ZW1zKGRpY3Rpb25hcnksICoqa3dhcmdzKQorCisgICBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIgKmRpY3Rpb25hcnkqXCdzIGl0ZW1zLiBUaGlzIHJlcGxhY2VzCisgICBgYGRpY3Rpb25hcnkuaXRlcml0ZW1zKClgYCBvbiBQeXRob24gMiBhbmQgYGBkaWN0aW9uYXJ5Lml0ZW1zKClgYCBvbgorICAgUHl0aG9uIDMuICAqa3dhcmdzKiBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVybHlpbmcgbWV0aG9kLgorCisKKy4uIGZ1bmN0aW9uOjogaXRlcmxpc3RzKGRpY3Rpb25hcnksICoqa3dhcmdzKQorCisgICBDYWxscyBgYGRpY3Rpb25hcnkuaXRlcmxpc3RzKClgYCBvbiBQeXRob24gMiBhbmQgYGBkaWN0aW9uYXJ5Lmxpc3RzKClgYCBvbgorICAgUHl0aG9uIDMuICBObyBidWlsdGluIFB5dGhvbiBtYXBwaW5nIHR5cGUgaGFzIHN1Y2ggYSBtZXRob2Q7IHRoaXMgbWV0aG9kIGlzCisgICBpbnRlbmRlZCBmb3IgdXNlIHdpdGggbXVsdGktdmFsdWVkIGRpY3Rpb25hcmllcyBsaWtlIGBXZXJremV1ZydzCisgICA8aHR0cDovL3dlcmt6ZXVnLnBvY29vLm9yZy9kb2NzL2RhdGFzdHJ1Y3R1cmVzLyN3ZXJremV1Zy5kYXRhc3RydWN0dXJlcy5NdWx0aURpY3Q+YF8uCisgICAqa3dhcmdzKiBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVybHlpbmcgbWV0aG9kLgorCisKKy4uIGZ1bmN0aW9uOjogdmlld2tleXMoZGljdGlvbmFyeSkKKworICAgUmV0dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5KlwncyBrZXlzLiBUaGlzIHJlcGxhY2VzCisgICA6bWV0aDpgcHkyOmRpY3Qudmlld2tleXNgIG9uIFB5dGhvbiAyLjcgYW5kIDptZXRoOmBweTM6ZGljdC5rZXlzYCBvbgorICAgUHl0aG9uIDMuCisKKworLi4gZnVuY3Rpb246OiB2aWV3dmFsdWVzKGRpY3Rpb25hcnkpCisKKyAgIFJldHVybiBhIHZpZXcgb3ZlciAqZGljdGlvbmFyeSpcJ3MgdmFsdWVzLiBUaGlzIHJlcGxhY2VzCisgICA6bWV0aDpgcHkyOmRpY3Qudmlld3ZhbHVlc2Agb24gUHl0aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0LnZhbHVlc2Agb24KKyAgIFB5dGhvbiAzLgorCisKKy4uIGZ1bmN0aW9uOjogdmlld2l0ZW1zKGRpY3Rpb25hcnkpCisKKyAgIFJldHVybiBhIHZpZXcgb3ZlciAqZGljdGlvbmFyeSpcJ3MgaXRlbXMuIFRoaXMgcmVwbGFjZXMKKyAgIDptZXRoOmBweTI6ZGljdC52aWV3aXRlbXNgIG9uIFB5dGhvbiAyLjcgYW5kIDptZXRoOmBweTM6ZGljdC5pdGVtc2Agb24KKyAgIFB5dGhvbiAzLgorCisKKy4uIGZ1bmN0aW9uOjogY3JlYXRlX2JvdW5kX21ldGhvZChmdW5jLCBvYmopCisKKyAgIFJldHVybiBhIG1ldGhvZCBvYmplY3Qgd3JhcHBpbmcgKmZ1bmMqIGFuZCBib3VuZCB0byAqb2JqKi4gIE9uIGJvdGggUHl0aG9uIDIKKyAgIGFuZCAzLCB0aGlzIHdpbGwgcmV0dXJuIGEgOmZ1bmM6YHB5Mzp0eXBlcy5NZXRob2RUeXBlYCBvYmplY3QuICBUaGUgcmVhc29uCisgICB0aGlzIHdyYXBwZXIgZXhpc3RzIGlzIHRoYXQgb24gUHl0aG9uIDIsIHRoZSBgYE1ldGhvZFR5cGVgYCBjb25zdHJ1Y3RvcgorICAgcmVxdWlyZXMgdGhlICpvYmoqJ3MgY2xhc3MgdG8gYmUgcGFzc2VkLgorCisKKy4uIGNsYXNzOjogSXRlcmF0b3IKKworICAgQSBjbGFzcyBmb3IgbWFraW5nIHBvcnRhYmxlIGl0ZXJhdG9ycy4gVGhlIGludGVudGlvbiBpcyB0aGF0IGl0IGJlIHN1YmNsYXNzZWQKKyAgIGFuZCBzdWJjbGFzc2VzIHByb3ZpZGUgYSBgYF9fbmV4dF9fYGAgbWV0aG9kLiBJbiBQeXRob24gMiwgOmNsYXNzOmBJdGVyYXRvcmAKKyAgIGhhcyBvbmUgbWV0aG9kOiBgYG5leHRgYC4gSXQgc2ltcGx5IGRlbGVnYXRlcyB0byBgYF9fbmV4dF9fYGAuIEFuIGFsdGVybmF0ZQorICAgd2F5IHRvIGRvIHRoaXMgd291bGQgYmUgdG8gc2ltcGx5IGFsaWFzIGBgbmV4dGBgIHRvIGBgX19uZXh0X19gYC4gSG93ZXZlciwKKyAgIHRoaXMgaW50ZXJhY3RzIGJhZGx5IHdpdGggc3ViY2xhc3NlcyB0aGF0IG92ZXJyaWRlCisgICBgYF9fbmV4dF9fYGAuIDpjbGFzczpgSXRlcmF0b3JgIGlzIGVtcHR5IG9uIFB5dGhvbiAzLiAoSW4gZmFjdCwgaXQgaXMganVzdAorICAgYWxpYXNlZCB0byA6Y2xhc3M6YHB5MzpvYmplY3RgLikKKworCisuLiBkZWNvcmF0b3I6OiB3cmFwcyh3cmFwcGVkLCBhc3NpZ25lZD1mdW5jdG9vbHMuV1JBUFBFUl9BU1NJR05NRU5UUywgdXBkYXRlZD1mdW5jdG9vbHMuV1JBUFBFUl9VUERBVEVTKQorCisgICBUaGlzIGlzIGV4YWN0bHkgdGhlIDpmdW5jOmBweTM6ZnVuY3Rvb2xzLndyYXBzYCBkZWNvcmF0b3IsIGJ1dCBpdCBzZXRzIHRoZQorICAgYGBfX3dyYXBwZWRfX2BgIGF0dHJpYnV0ZSBvbiB3aGF0IGl0IGRlY29yYXRlcyBhcyA6ZnVuYzpgcHkzOmZ1bmN0b29scy53cmFwc2AKKyAgIGRvZXMgb24gUHl0aG9uIHZlcnNpb25zIGFmdGVyIDMuMi4KKworCitTeW50YXggY29tcGF0aWJpbGl0eQorPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KKworVGhlc2UgZnVuY3Rpb25zIHNtb290aCBvdmVyIG9wZXJhdGlvbnMgd2hpY2ggaGF2ZSBkaWZmZXJlbnQgc3ludGF4ZXMgYmV0d2VlbgorUHl0aG9uIDIgYW5kIDMuCisKKworLi4gZnVuY3Rpb246OiBleGVjXyhjb2RlLCBnbG9iYWxzPU5vbmUsIGxvY2Fscz1Ob25lKQorCisgICBFeGVjdXRlICpjb2RlKiBpbiB0aGUgc2NvcGUgb2YgKmdsb2JhbHMqIGFuZCAqbG9jYWxzKi4gICpjb2RlKiBjYW4gYmUgYQorICAgc3RyaW5nIG9yIGEgY29kZSBvYmplY3QuICBJZiAqZ2xvYmFscyogb3IgKmxvY2FscyogYXJlIG5vdCBnaXZlbiwgdGhleSB3aWxsCisgICBkZWZhdWx0IHRvIHRoZSBzY29wZSBvZiB0aGUgY2FsbGVyLiAgSWYganVzdCAqZ2xvYmFscyogaXMgZ2l2ZW4sIGl0IHdpbGwgYWxzbworICAgYmUgdXNlZCBhcyAqbG9jYWxzKi4KKworICAgLi4gbm90ZTo6CisKKyAgICAgIFB5dGhvbiAzJ3MgOmZ1bmM6YHB5MzpleGVjYCBkb2Vzbid0IHRha2Uga2V5d29yZCBhcmd1bWVudHMsIHNvIGNhbGxpbmcKKyAgICAgIDpmdW5jOmBleGVjYCB3aXRoIHRoZW0gc2hvdWxkIGJlIGF2b2lkZWQuCisKKworLi4gZnVuY3Rpb246OiBwcmludF8oKmFyZ3MsICosIGZpbGU9c3lzLnN0ZG91dCwgZW5kPSJcXG4iLCBzZXA9IiAiLCBmbHVzaD1GYWxzZSkKKworICAgUHJpbnQgKmFyZ3MqIGludG8gKmZpbGUqLiAgRWFjaCBhcmd1bWVudCB3aWxsIGJlIHNlcGFyYXRlZCB3aXRoICpzZXAqIGFuZAorICAgKmVuZCogd2lsbCBiZSB3cml0dGVuIHRvIHRoZSBmaWxlIGFmdGVyIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHByaW50ZWQuICBJZgorICAgKmZsdXNoKiBpcyB0cnVlLCBgYGZpbGUuZmx1c2goKWBgIHdpbGwgYmUgY2FsbGVkIGFmdGVyIGFsbCBkYXRhIGlzIHdyaXR0ZW4uCisKKyAgIC4uIG5vdGU6OgorCisgICAgICBJbiBQeXRob24gMiwgdGhpcyBmdW5jdGlvbiBpbWl0YXRlcyBQeXRob24gMydzIDpmdW5jOmBweTM6cHJpbnRgIGJ5IG5vdAorICAgICAgaGF2aW5nIHNvZnRzcGFjZSBzdXBwb3J0LiAgSWYgeW91IGRvbid0IGtub3cgd2hhdCB0aGF0IGlzLCB5b3UncmUgcHJvYmFibHkKKyAgICAgIG9rLiA6KQorCisKKy4uIGZ1bmN0aW9uOjogcmFpc2VfZnJvbShleGNfdmFsdWUsIGV4Y192YWx1ZV9mcm9tKQorCisgICBSYWlzZSBhbiBleGNlcHRpb24gZnJvbSBhIGNvbnRleHQuICBPbiBQeXRob24gMywgdGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICBgYHJhaXNlIGV4Y192YWx1ZSBmcm9tIGV4Y192YWx1ZV9mcm9tYGAuICBPbiBQeXRob24gMiwgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydAorICAgZXhjZXB0aW9uIGNoYWluaW5nLCBpdCBpcyBlcXVpdmFsZW50IHRvIGBgcmFpc2UgZXhjX3ZhbHVlYGAuCisKKworLi4gZnVuY3Rpb246OiByZXJhaXNlKGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190cmFjZWJhY2s9Tm9uZSkKKworICAgUmVyYWlzZSBhbiBleGNlcHRpb24sIHBvc3NpYmx5IHdpdGggYSBkaWZmZXJlbnQgdHJhY2ViYWNrLiAgSW4gdGhlIHNpbXBsZQorICAgY2FzZSwgYGByZXJhaXNlKCpzeXMuZXhjX2luZm8oKSlgYCB3aXRoIGFuIGFjdGl2ZSBleGNlcHRpb24gKGluIGFuIGV4Y2VwdAorICAgYmxvY2spIHJlcmFpc2VzIHRoZSBjdXJyZW50IGV4Y2VwdGlvbiB3aXRoIHRoZSBsYXN0IHRyYWNlYmFjay4gIEEgZGlmZmVyZW50CisgICB0cmFjZWJhY2sgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHRoZSAqZXhjX3RyYWNlYmFjayogcGFyYW1ldGVyLiAgTm90ZSB0aGF0CisgICBzaW5jZSB0aGUgZXhjZXB0aW9uIHJlcmFpc2luZyBpcyBkb25lIHdpdGhpbiB0aGUgOmZ1bmM6YHJlcmFpc2VgIGZ1bmN0aW9uLAorICAgUHl0aG9uIHdpbGwgYXR0YWNoIHRoZSBjYWxsIGZyYW1lIG9mIDpmdW5jOmByZXJhaXNlYCB0byB3aGF0ZXZlciB0cmFjZWJhY2sgaXMKKyAgIHJhaXNlZC4KKworCisuLiBmdW5jdGlvbjo6IHdpdGhfbWV0YWNsYXNzKG1ldGFjbGFzcywgKmJhc2VzKQorCisgICBDcmVhdGUgYSBuZXcgY2xhc3Mgd2l0aCBiYXNlIGNsYXNzZXMgKmJhc2VzKiBhbmQgbWV0YWNsYXNzICptZXRhY2xhc3MqLiAgVGhpcworICAgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBpbiBjbGFzcyBkZWNsYXJhdGlvbnMgbGlrZSB0aGlzOiA6OgorCisgICAgICBmcm9tIHNpeCBpbXBvcnQgd2l0aF9tZXRhY2xhc3MKKworICAgICAgY2xhc3MgTWV0YSh0eXBlKToKKyAgICAgICAgICBwYXNzCisKKyAgICAgIGNsYXNzIEJhc2Uob2JqZWN0KToKKyAgICAgICAgICBwYXNzCisKKyAgICAgIGNsYXNzIE15Q2xhc3Mod2l0aF9tZXRhY2xhc3MoTWV0YSwgQmFzZSkpOgorICAgICAgICAgIHBhc3MKKworICAgQW5vdGhlciB3YXkgdG8gc2V0IGEgbWV0YWNsYXNzIG9uIGEgY2xhc3MgaXMgd2l0aCB0aGUgOmZ1bmM6YGFkZF9tZXRhY2xhc3NgCisgICBkZWNvcmF0b3IuCisKKworLi4gZGVjb3JhdG9yOjogYWRkX21ldGFjbGFzcyhtZXRhY2xhc3MpCisKKyAgIENsYXNzIGRlY29yYXRvciB0aGF0IHJlcGxhY2VzIGEgbm9ybWFsbHktY29uc3RydWN0ZWQgY2xhc3Mgd2l0aCBhCisgICBtZXRhY2xhc3MtY29uc3RydWN0ZWQgb25lLiAgRXhhbXBsZSB1c2FnZTogOjoKKworICAgICAgIEBhZGRfbWV0YWNsYXNzKE1ldGEpCisgICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgorICAgICAgICAgICBwYXNzCisKKyAgIFRoYXQgY29kZSBwcm9kdWNlcyBhIGNsYXNzIGVxdWl2YWxlbnQgdG8gOjoKKworICAgICAgIGNsYXNzIE15Q2xhc3Mob2JqZWN0LCBtZXRhY2xhc3M9TWV0YSk6CisgICAgICAgICAgIHBhc3MKKworICAgb24gUHl0aG9uIDMgb3IgOjoKKworICAgICAgIGNsYXNzIE15Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgX19tZXRhY2xhc3NfXyA9IE15TWV0YQorCisgICBvbiBQeXRob24gMi4KKworICAgTm90ZSB0aGF0IGNsYXNzIGRlY29yYXRvcnMgcmVxdWlyZSBQeXRob24gMi42LiBIb3dldmVyLCB0aGUgZWZmZWN0IG9mIHRoZQorICAgZGVjb3JhdG9yIGNhbiBiZSBlbXVsYXRlZCBvbiBQeXRob24gMi41IGxpa2Ugc286OgorCisgICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgorICAgICAgICAgICBwYXNzCisgICAgICAgTXlDbGFzcyA9IGFkZF9tZXRhY2xhc3MoTWV0YSkoTXlDbGFzcykKKworCitCaW5hcnkgYW5kIHRleHQgZGF0YQorPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KKworUHl0aG9uIDMgZW5mb3JjZXMgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gYnl0ZSBzdHJpbmdzIGFuZCB0ZXh0IHN0cmluZ3MgZmFyIG1vcmUKK3JpZ29yaW91c2x5IHRoYW4gUHl0aG9uIDIgZG9lczsgYmluYXJ5IGRhdGEgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29lcmNlZCB0bworb3IgZnJvbSB0ZXh0IGRhdGEuICBzaXggcHJvdmlkZXMgc2V2ZXJhbCBmdW5jdGlvbnMgdG8gYXNzaXN0IGluIGNsYXNzaWZ5aW5nCitzdHJpbmcgZGF0YSBpbiBhbGwgUHl0aG9uIHZlcnNpb25zLgorCisKKy4uIGZ1bmN0aW9uOjogYihkYXRhKQorCisgICBBICJmYWtlIiBieXRlcyBsaXRlcmFsLiAgKmRhdGEqIHNob3VsZCBhbHdheXMgYmUgYSBub3JtYWwgc3RyaW5nIGxpdGVyYWwuICBJbgorICAgUHl0aG9uIDIsIDpmdW5jOmBiYCByZXR1cm5zIGEgOC1iaXQgc3RyaW5nLiAgSW4gUHl0aG9uIDMsICpkYXRhKiBpcyBlbmNvZGVkCisgICB3aXRoIHRoZSBsYXRpbi0xIGVuY29kaW5nIHRvIGJ5dGVzLgorCisKKyAgIC4uIG5vdGU6OgorCisgICAgICBTaW5jZSBhbGwgUHl0aG9uIHZlcnNpb25zIDIuNiBhbmQgYWZ0ZXIgc3VwcG9ydCB0aGUgYGBiYGAgcHJlZml4LAorICAgICAgOmZ1bmM6YGJgLCBjb2RlIHdpdGhvdXQgMi41IHN1cHBvcnQgZG9lc24ndCBuZWVkIDpmdW5jOmBiYC4KKworCisuLiBmdW5jdGlvbjo6IHUodGV4dCkKKworICAgQSAiZmFrZSIgdW5pY29kZSBsaXRlcmFsLiAgKnRleHQqIHNob3VsZCBhbHdheXMgYmUgYSBub3JtYWwgc3RyaW5nIGxpdGVyYWwuCisgICBJbiBQeXRob24gMiwgOmZ1bmM6YHVgIHJldHVybnMgdW5pY29kZSwgYW5kIGluIFB5dGhvbiAzLCBhIHN0cmluZy4gIEFsc28sIGluCisgICBQeXRob24gMiwgdGhlIHN0cmluZyBpcyBkZWNvZGVkIHdpdGggdGhlIGBgdW5pY29kZS1lc2NhcGVgYCBjb2RlYywgd2hpY2gKKyAgIGFsbG93cyB1bmljb2RlIGVzY2FwZXMgdG8gYmUgdXNlZCBpbiBpdC4KKworCisgICAuLiBub3RlOjoKKworICAgICAgSW4gUHl0aG9uIDMuMywgdGhlIGBgdWBgIHByZWZpeCBoYXMgYmVlbiByZWludHJvZHVjZWQuIENvZGUgdGhhdCBvbmx5CisgICAgICBzdXBwb3J0cyBQeXRob24gMyB2ZXJzaW9ucyBncmVhdGVyIHRoYW4gMy4zIHRodXMgZG9lcyBub3QgbmVlZAorICAgICAgOmZ1bmM6YHVgLgorCisgICAuLiBub3RlOjoKKworICAgICAgT24gUHl0aG9uIDIsIDpmdW5jOmB1YCBkb2Vzbid0IGtub3cgd2hhdCB0aGUgZW5jb2Rpbmcgb2YgdGhlIGxpdGVyYWwKKyAgICAgIGlzLiBFYWNoIGJ5dGUgaXMgY29udmVydGVkIGRpcmVjdGx5IHRvIHRoZSB1bmljb2RlIGNvZGVwb2ludCBvZiB0aGUgc2FtZQorICAgICAgdmFsdWUuIEJlY2F1c2Ugb2YgdGhpcywgaXQncyBvbmx5IHNhZmUgdG8gdXNlIDpmdW5jOmB1YCB3aXRoIHN0cmluZ3Mgb2YKKyAgICAgIEFTQ0lJIGRhdGEuCisKKworLi4gZnVuY3Rpb246OiB1bmljaHIoYykKKworICAgUmV0dXJuIHRoZSAoVW5pY29kZSkgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29kZXBvaW50ICpjKi4gIFRoaXMgaXMKKyAgIGVxdWl2YWxlbnQgdG8gOmZ1bmM6YHB5Mjp1bmljaHJgIG9uIFB5dGhvbiAyIGFuZCA6ZnVuYzpgcHkzOmNocmAgb24gUHl0aG9uIDMuCisKKworLi4gZnVuY3Rpb246OiBpbnQyYnl0ZShpKQorCisgICBDb252ZXJ0cyAqaSogdG8gYSBieXRlLiAgKmkqIG11c3QgYmUgaW4gYGByYW5nZSgwLCAyNTYpYGAuICBUaGlzIGlzCisgICBlcXVpdmFsZW50IHRvIDpmdW5jOmBweTI6Y2hyYCBpbiBQeXRob24gMiBhbmQgYGBieXRlcygoaSwpKWBgIGluIFB5dGhvbiAzLgorCisKKy4uIGZ1bmN0aW9uOjogYnl0ZTJpbnQoYnMpCisKKyAgIENvbnZlcnRzIHRoZSBmaXJzdCBieXRlIG9mICpicyogdG8gYW4gaW50ZWdlci4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgYGBvcmQoYnNbMF0pYGAgb24gUHl0aG9uIDIgYW5kIGBgYnNbMF1gYCBvbiBQeXRob24gMy4KKworCisuLiBmdW5jdGlvbjo6IGluZGV4Ynl0ZXMoYnVmLCBpKQorCisgICBSZXR1cm4gdGhlIGJ5dGUgYXQgaW5kZXggKmkqIG9mICpidWYqIGFzIGFuIGludGVnZXIuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgIGluZGV4aW5nIGEgYnl0ZXMgb2JqZWN0IGluIFB5dGhvbiAzLgorCisKKy4uIGZ1bmN0aW9uOjogaXRlcmJ5dGVzKGJ1ZikKKworICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgYnl0ZXMgaW4gKmJ1ZiogYXMgaW50ZWdlcnMuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgIGEgYnl0ZXMgb2JqZWN0IGl0ZXJhdG9yIGluIFB5dGhvbiAzLgorCisKKy4uIGRhdGE6OiBTdHJpbmdJTworCisgICBUaGlzIGlzIGFuIGZha2UgZmlsZSBvYmplY3QgZm9yIHRleHR1YWwgZGF0YS4gIEl0J3MgYW4gYWxpYXMgZm9yCisgICA6Y2xhc3M6YHB5MjpTdHJpbmdJTy5TdHJpbmdJT2AgaW4gUHl0aG9uIDIgYW5kIDpjbGFzczpgcHkzOmlvLlN0cmluZ0lPYCBpbgorICAgUHl0aG9uIDMuCisKKworLi4gZGF0YTo6IEJ5dGVzSU8KKworICAgVGhpcyBpcyBhIGZha2UgZmlsZSBvYmplY3QgZm9yIGJpbmFyeSBkYXRhLiAgSW4gUHl0aG9uIDIsIGl0J3MgYW4gYWxpYXMgZm9yCisgICA6Y2xhc3M6YHB5MjpTdHJpbmdJTy5TdHJpbmdJT2AsIGJ1dCBpbiBQeXRob24gMywgaXQncyBhbiBhbGlhcyBmb3IKKyAgIDpjbGFzczpgcHkzOmlvLkJ5dGVzSU9gLgorCisKKy4uIGRlY29yYXRvcjo6IHB5dGhvbl8yX3VuaWNvZGVfY29tcGF0aWJsZQorCisgICBBIGNsYXNzIGRlY29yYXRvciB0aGF0IHRha2VzIGEgY2xhc3MgZGVmaW5pbmcgYSBgYF9fc3RyX19gYCBtZXRob2QuICBPbgorICAgUHl0aG9uIDMsIHRoZSBkZWNvcmF0b3IgZG9lcyBub3RoaW5nLiAgT24gUHl0aG9uIDIsIGl0IGFsaWFzZXMgdGhlCisgICBgYF9fc3RyX19gYCBtZXRob2QgdG8gYGBfX3VuaWNvZGVfX2BgIGFuZCBjcmVhdGVzIGEgbmV3IGBgX19zdHJfX2BgIG1ldGhvZAorICAgdGhhdCByZXR1cm5zIHRoZSByZXN1bHQgb2YgYGBfX3VuaWNvZGVfXygpYGAgZW5jb2RlZCB3aXRoIFVURi04LgorCisKK3VuaXR0ZXN0IGFzc2VydGlvbnMKKz4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KKworU2l4IGNvbnRhaW5zIGNvbXBhdGliaWxpdHkgc2hpbXMgZm9yIHVuaXR0ZXN0IGFzc2VydGlvbnMgdGhhdCBoYXZlIGJlZW4gcmVuYW1lZC4KK1RoZSBwYXJhbWV0ZXJzIGFyZSB0aGUgc2FtZSBhcyB0aGVpciBhbGlhc2VzLCBidXQgeW91IG11c3QgcGFzcyB0aGUgdGVzdCBtZXRob2QKK2FzIHRoZSBmaXJzdCBhcmd1bWVudC4gRm9yIGV4YW1wbGU6OgorCisgICAgaW1wb3J0IHNpeAorICAgIGltcG9ydCB1bml0dGVzdAorCisgICAgY2xhc3MgVGVzdEFzc2VydENvdW50RXF1YWwodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICBkZWYgdGVzdChzZWxmKToKKyAgICAgICAgICAgIHNpeC5hc3NlcnRDb3VudEVxdWFsKHNlbGYsICgxLCAyKSwgWzIsIDFdKQorCitOb3RlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgb25seSBhdmFpbGFibGUgb24gUHl0aG9uIDIuNyBvciBsYXRlci4KKworLi4gZnVuY3Rpb246OiBhc3NlcnRDb3VudEVxdWFsKCkKKworICAgQWxpYXMgZm9yIDptZXRoOmB+cHkzOnVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydENvdW50RXF1YWxgIG9uIFB5dGhvbiAzIGFuZAorICAgOm1ldGg6YH5weTI6dW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0SXRlbXNFcXVhbGAgb24gUHl0aG9uIDIuCisKKworLi4gZnVuY3Rpb246OiBhc3NlcnRSYWlzZXNSZWdleCgpCisKKyAgIEFsaWFzIGZvciA6bWV0aDpgfnB5Mzp1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRSYWlzZXNSZWdleGAgb24gUHl0aG9uIDMgYW5kCisgICA6bWV0aDpgfnB5Mjp1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRSYWlzZXNSZWdleHBgIG9uIFB5dGhvbiAyLgorCisKKy4uIGZ1bmN0aW9uOjogYXNzZXJ0UmVnZXgoKQorCisgICBBbGlhcyBmb3IgOm1ldGg6YH5weTM6dW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0UmVnZXhgIG9uIFB5dGhvbiAzIGFuZAorICAgOm1ldGg6YH5weTI6dW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0UmVnZXhwTWF0Y2hlc2Agb24gUHl0aG9uIDIuCisKKworUmVuYW1lZCBtb2R1bGVzIGFuZCBhdHRyaWJ1dGVzIGNvbXBhdGliaWxpdHkKKz4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+CisKKy4uIG1vZHVsZTo6IHNpeC5tb3ZlcworICAgOnN5bm9wc2lzOiBSZW5hbWVkIG1vZHVsZXMgYW5kIGF0dHJpYnV0ZXMgY29tcGF0aWJpbGl0eQorCitQeXRob24gMyByZW9yZ2FuaXplZCB0aGUgc3RhbmRhcmQgbGlicmFyeSBhbmQgbW92ZWQgc2V2ZXJhbCBmdW5jdGlvbnMgdG8KK2RpZmZlcmVudCBtb2R1bGVzLiAgU2l4IHByb3ZpZGVzIGEgY29uc2lzdGVudCBpbnRlcmZhY2UgdG8gdGhlbSB0aHJvdWdoIHRoZSBmYWtlCis6bW9kOmBzaXgubW92ZXNgIG1vZHVsZS4gIEZvciBleGFtcGxlLCB0byBsb2FkIHRoZSBtb2R1bGUgZm9yIHBhcnNpbmcgSFRNTCBvbgorUHl0aG9uIDIgb3IgMywgd3JpdGU6OgorCisgICBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgaHRtbF9wYXJzZXIKKworU2ltaWxhcmx5LCB0byBnZXQgdGhlIGZ1bmN0aW9uIHRvIHJlbG9hZCBtb2R1bGVzLCB3aGljaCB3YXMgbW92ZWQgZnJvbSB0aGUKK2J1aWx0aW4gbW9kdWxlIHRvIHRoZSBgYGltcGBgIG1vZHVsZSwgdXNlOjoKKworICAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJlbG9hZF9tb2R1bGUKKworRm9yIHRoZSBtb3N0IHBhcnQsIDptb2Q6YHNpeC5tb3Zlc2AgYWxpYXNlcyBhcmUgdGhlIG5hbWVzIG9mIHRoZSBtb2R1bGVzIGluCitQeXRob24gMy4gIFdoZW4gdGhlIG5ldyBQeXRob24gMyBuYW1lIGlzIGEgcGFja2FnZSwgdGhlIGNvbXBvbmVudHMgb2YgdGhlIG5hbWUKK2FyZSBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZXMuICBGb3IgZXhhbXBsZSwgYGBodG1sLnBhcnNlcmBgIGJlY29tZXMKK2BgaHRtbF9wYXJzZXJgYC4gIEluIHNvbWUgY2FzZXMgd2hlcmUgc2V2ZXJhbCBtb2R1bGVzIGhhdmUgYmVlbiBjb21iaW5lZCwgdGhlCitQeXRob24gMiBuYW1lIGlzIHJldGFpbmVkLiAgVGhpcyBpcyBzbyB0aGUgYXBwcm9waWF0ZSBtb2R1bGVzIGNhbiBiZSBmb3VuZCB3aGVuCitydW5uaW5nIG9uIFB5dGhvbiAyLiAgRm9yIGV4YW1wbGUsIGBgQmFzZUhUVFBTZXJ2ZXJgYCB3aGljaCBpcyBpbgorYGBodHRwLnNlcnZlcmBgIGluIFB5dGhvbiAzIGlzIGFsaWFzZWQgYXMgYGBCYXNlSFRUUFNlcnZlcmBgLgorCitTb21lIG1vZHVsZXMgd2hpY2ggaGFkIHR3byBpbXBsZW1lbnRhdGlvbnMgaGF2ZSBiZWVuIG1lcmdlZCBpbiBQeXRob24gMy4gIEZvcgorZXhhbXBsZSwgYGBjUGlja2xlYGAgbm8gbG9uZ2VyIGV4aXN0cyBpbiBQeXRob24gMzsgaXQgd2FzIG1lcmdlZCB3aXRoCitgYHBpY2tsZWBgLiAgSW4gdGhlc2UgY2FzZXMsIGZldGNoaW5nIHRoZSBmYXN0IHZlcnNpb24gd2lsbCBsb2FkIHRoZSBmYXN0IG9uZSBvbgorUHl0aG9uIDIgYW5kIHRoZSBtZXJnZWQgbW9kdWxlIGluIFB5dGhvbiAzLgorCitUaGUgOm1vZDpgcHkyOnVybGxpYmAsIDptb2Q6YHB5Mjp1cmxsaWIyYCwgYW5kIDptb2Q6YHB5Mjp1cmxwYXJzZWAgbW9kdWxlcyBoYXZlCitiZWVuIGNvbWJpbmVkIGluIHRoZSA6bW9kOmBweTM6dXJsbGliYCBwYWNrYWdlIGluIFB5dGhvbiAzLiAgVGhlCis6bW9kOmBzaXgubW92ZXMudXJsbGliYCBwYWNrYWdlIGlzIGEgdmVyc2lvbi1pbmRlcGVuZGVudCBsb2NhdGlvbiBmb3IgdGhpcworZnVuY3Rpb25hbGl0eTsgaXRzIHN0cnVjdHVyZSBtaW1pY3MgdGhlIHN0cnVjdHVyZSBvZiB0aGUgUHl0aG9uIDMKKzptb2Q6YHB5Mzp1cmxsaWJgIHBhY2thZ2UuCisKKy4uIG5vdGU6OgorCisgICBJbiBvcmRlciB0byBtYWtlIGltcG9ydHMgb2YgdGhlIGZvcm06OgorCisgICAgIGZyb20gc2l4Lm1vdmVzLmNQaWNrbGUgaW1wb3J0IGxvYWRzCisKKyAgIHdvcmssIHNpeCBwbGFjZXMgc3BlY2lhbCBwcm94eSBvYmplY3RzIGluIGluIDpkYXRhOmBweTM6c3lzLm1vZHVsZXNgLiBUaGVzZQorICAgcHJveGllcyBsYXppbHkgbG9hZCB0aGUgdW5kZXJseWluZyBtb2R1bGUgd2hlbiBhbiBhdHRyaWJ1dGUgaXMgZmV0Y2hlZC4gVGhpcworICAgd2lsbCBmYWlsIGlmIHRoZSB1bmRlcmx5aW5nIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBQeXRob24KKyAgIGludGVycHJldGVyLiBGb3IgZXhhbXBsZSwgYGBzeXMubW9kdWxlc1sic2l4Lm1vdmVzLndpbnJlZyJdLkxvYWRLZXlgYCB3b3VsZAorICAgZmFpbCBvbiBhbnkgbm9uLVdpbmRvd3MgcGxhdGZvcm0uIFVuZm9ydHVuYXRlbHksIHNvbWUgYXBwbGljYXRpb25zIHRyeSB0bworICAgbG9hZCBhdHRyaWJ1dGVzIG9uIGV2ZXJ5IG1vZHVsZSBpbiA6ZGF0YTpgcHkzOnN5cy5tb2R1bGVzYC4gc2l4IG1pdGlnYXRlcworICAgdGhpcyBwcm9ibGVtIGZvciBzb21lIGFwcGxpY2F0aW9ucyBieSBwcmV0ZW5kaW5nIGF0dHJpYnV0ZXMgb24gdW5pbXBvcnRhYmxlCisgICBtb2R1bGVzIGRvbid0IGV4aXN0LiBUaGlzIGhhY2sgZG9lc24ndCB3b3JrIGluIGV2ZXJ5IGNhc2UsIHRob3VnaC4gSWYgeW91IGFyZQorICAgZW5jb3VudGVyaW5nIHByb2JsZW1zIHdpdGggdGhlIGxhenkgbW9kdWxlcyBhbmQgZG9uJ3QgdXNlIGFueSBmcm9tIGltcG9ydHMKKyAgIGRpcmVjdGx5IGZyb20gYGBzaXgubW92ZXNgYCBtb2R1bGVzLCB5b3UgY2FuIHdvcmthcm91bmQgdGhlIGlzc3VlIGJ5IHJlbW92aW5nCisgICB0aGUgc2l4IHByb3h5IG1vZHVsZXM6OgorCisgICAgIGQgPSBbbmFtZSBmb3IgbmFtZSBpbiBzeXMubW9kdWxlcyBpZiBuYW1lLnN0YXJ0c3dpdGgoInNpeC5tb3Zlcy4iKV0KKyAgICAgZm9yIG5hbWUgaW4gZDoKKyAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tuYW1lXQorCitTdXBwb3J0ZWQgcmVuYW1lczoKKworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gMiBuYW1lICAgICAgICAgICAgICAgICAgICAgICB8IFB5dGhvbiAzIG5hbWUgICAgICAgICAgICAgICAgICAgICAgIHwKKys9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KworfCBgYGJ1aWx0aW5zYGAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOl9fYnVpbHRpbl9fYCAgICAgICAgICAgICAgfCA6bW9kOmBweTM6YnVpbHRpbnNgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBjb25maWdwYXJzZXJgYCAgICAgICAgICAgICB8IDptb2Q6YHB5MjpDb25maWdQYXJzZXJgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOmNvbmZpZ3BhcnNlcmAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgY29weXJlZ2BgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6Y29weV9yZWdgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzpjb3B5cmVnYCAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYGNQaWNrbGVgYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOmNQaWNrbGVgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6cGlja2xlYCAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBjU3RyaW5nSU9gYCAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6Y1N0cmluZ0lPLlN0cmluZ0lPYCAgICAgIHwgOmNsYXNzOmBweTM6aW8uU3RyaW5nSU9gICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgZGJtX2dudWBgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOmdkYm1gICAgICAgICAgICAgICAgICAgICB8IDpjbGFzczpgcHkzOmRibS5nbnVgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYF9kdW1teV90aHJlYWRgYCAgICAgICAgICAgIHwgOm1vZDpgcHkyOmR1bW15X3RocmVhZGAgICAgICAgICAgICAgfCA6bW9kOmBweTM6X2R1bW15X3RocmVhZGAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBlbWFpbF9taW1lX211bHRpcGFydGBgICAgICB8IDptb2Q6YHB5MjplbWFpbC5NSU1FTXVsdGlwYXJ0YCAgICAgIHwgOm1vZDpgcHkzOmVtYWlsLm1pbWUubXVsdGlwYXJ0YCAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgZW1haWxfbWltZV9ub25tdWx0aXBhcnRgYCAgfCA6bW9kOmBweTI6ZW1haWwuTUlNRU5vbk11bHRpcGFydGAgICB8IDptb2Q6YHB5MzplbWFpbC5taW1lLm5vbm11bHRpcGFydGAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYGVtYWlsX21pbWVfdGV4dGBgICAgICAgICAgIHwgOm1vZDpgcHkyOmVtYWlsLk1JTUVUZXh0YCAgICAgICAgICAgfCA6bW9kOmBweTM6ZW1haWwubWltZS50ZXh0YCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBlbWFpbF9taW1lX2Jhc2VgYCAgICAgICAgICB8IDptb2Q6YHB5MjplbWFpbC5NSU1FQmFzZWAgICAgICAgICAgIHwgOm1vZDpgcHkzOmVtYWlsLm1pbWUuYmFzZWAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgZmlsdGVyYGAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOml0ZXJ0b29scy5pZmlsdGVyYCAgICAgICB8IDpmdW5jOmBweTM6ZmlsdGVyYCAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYGZpbHRlcmZhbHNlYGAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaWZpbHRlcmZhbHNlYCAgfCA6ZnVuYzpgcHkzOml0ZXJ0b29scy5maWx0ZXJmYWxzZWAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBodHRwX2Nvb2tpZWphcmBgICAgICAgICAgICB8IDptb2Q6YHB5Mjpjb29raWVsaWJgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuY29va2llamFyYCAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgaHR0cF9jb29raWVzYGAgICAgICAgICAgICAgfCA6bW9kOmBweTI6Q29va2llYCAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpodHRwLmNvb2tpZXNgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYGh0bWxfZW50aXRpZXNgYCAgICAgICAgICAgIHwgOm1vZDpgcHkyOmh0bWxlbnRpdHlkZWZzYCAgICAgICAgICAgfCA6bW9kOmBweTM6aHRtbC5lbnRpdGllc2AgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBodG1sX3BhcnNlcmBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpIVE1MUGFyc2VyYCAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0bWwucGFyc2VyYCAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgaHR0cF9jbGllbnRgYCAgICAgICAgICAgICAgfCA6bW9kOmBweTI6aHR0cGxpYmAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpodHRwLmNsaWVudGAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYEJhc2VIVFRQU2VydmVyYGAgICAgICAgICAgIHwgOm1vZDpgcHkyOkJhc2VIVFRQU2VydmVyYCAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5zZXJ2ZXJgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBDR0lIVFRQU2VydmVyYGAgICAgICAgICAgICB8IDptb2Q6YHB5MjpDR0lIVFRQU2VydmVyYCAgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuc2VydmVyYCAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgU2ltcGxlSFRUUFNlcnZlcmBgICAgICAgICAgfCA6bW9kOmBweTI6U2ltcGxlSFRUUFNlcnZlcmAgICAgICAgICB8IDptb2Q6YHB5MzpodHRwLnNlcnZlcmAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYGlucHV0YGAgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjpyYXdfaW5wdXRgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOmlucHV0YCAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBpbnRlcm5gYCAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6aW50ZXJuYCAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MzpzeXMuaW50ZXJuYCAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgbWFwYGAgICAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOml0ZXJ0b29scy5pbWFwYCAgICAgICAgICB8IDpmdW5jOmBweTM6bWFwYCAgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHF1ZXVlYGAgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOlF1ZXVlYCAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6cXVldWVgICAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGByYW5nZWBgICAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6eHJhbmdlYCAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MzpyYW5nZWAgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgcmVkdWNlYGAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOnJlZHVjZWAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6ZnVuY3Rvb2xzLnJlZHVjZWAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHJlbG9hZF9tb2R1bGVgYCAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjpyZWxvYWRgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOmltcC5yZWxvYWRgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGByZXBybGliYGAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpyZXByYCAgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnJlcHJsaWJgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgc2hsZXhfcXVvdGVgYCAgICAgICAgICAgICAgfCA6bW9kOmBweTI6cGlwZXMucXVvdGVgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpzaGxleC5xdW90ZWAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHNvY2tldHNlcnZlcmBgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOlNvY2tldFNlcnZlcmAgICAgICAgICAgICAgfCA6bW9kOmBweTM6c29ja2V0c2VydmVyYCAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBfdGhyZWFkYGAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mjp0aHJlYWRgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOl90aHJlYWRgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgdGtpbnRlcmBgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6VGtpbnRlcmAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyYCAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHRraW50ZXJfZGlhbG9nYGAgICAgICAgICAgIHwgOm1vZDpgcHkyOkRpYWxvZ2AgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5kaWFsb2dgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB0a2ludGVyX2ZpbGVkaWFsb2dgYCAgICAgICB8IDptb2Q6YHB5MjpGaWxlRGlhbG9nYCAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuRmlsZURpYWxvZ2AgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgdGtpbnRlcl9zY3JvbGxlZHRleHRgYCAgICAgfCA6bW9kOmBweTI6U2Nyb2xsZWRUZXh0YCAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLnNjcm9sbGVkdGV4dGAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHRraW50ZXJfc2ltcGxlZGlhbG9nYGAgICAgIHwgOm1vZDpgcHkyOlNpbXBsZURpYWxvZ2AgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5zaW1wbGVkaWFsb2dgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB0a2ludGVyX3R0a2BgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mjp0dGtgICAgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIudHRrYCAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgdGtpbnRlcl90aXhgYCAgICAgICAgICAgICAgfCA6bW9kOmBweTI6VGl4YCAgICAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLnRpeGAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHRraW50ZXJfY29uc3RhbnRzYGAgICAgICAgIHwgOm1vZDpgcHkyOlRrY29uc3RhbnRzYCAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5jb25zdGFudHNgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB0a2ludGVyX2RuZGBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpUa2RuZGAgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuZG5kYCAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgdGtpbnRlcl9jb2xvcmNob29zZXJgYCAgICAgfCA6bW9kOmBweTI6dGtDb2xvckNob29zZXJgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLmNvbG9yY2hvb3NlcmAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHRraW50ZXJfY29tbW9uZGlhbG9nYGAgICAgIHwgOm1vZDpgcHkyOnRrQ29tbW9uRGlhbG9nYCAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5jb21tb25kaWFsb2dgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB0a2ludGVyX3RrZmlsZWRpYWxvZ2BgICAgICB8IDptb2Q6YHB5Mjp0a0ZpbGVEaWFsb2dgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuZmlsZWRpYWxvZ2AgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgdGtpbnRlcl9mb250YGAgICAgICAgICAgICAgfCA6bW9kOmBweTI6dGtGb250YCAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLmZvbnRgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHRraW50ZXJfbWVzc2FnZWJveGBgICAgICAgIHwgOm1vZDpgcHkyOnRrTWVzc2FnZUJveGAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5tZXNzYWdlYm94YCAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB0a2ludGVyX3Rrc2ltcGxlZGlhbG9nYGAgICB8IDptb2Q6YHB5Mjp0a1NpbXBsZURpYWxvZ2AgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuc2ltcGxlZGlhbG9nYCAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgdXJsbGliLnBhcnNlYGAgICAgICAgICAgICAgfCBTZWUgOm1vZDpgc2l4Lm1vdmVzLnVybGxpYi5wYXJzZWAgICB8IDptb2Q6YHB5Mzp1cmxsaWIucGFyc2VgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHVybGxpYi5lcnJvcmBgICAgICAgICAgICAgIHwgU2VlIDptb2Q6YHNpeC5tb3Zlcy51cmxsaWIuZXJyb3JgICAgfCA6bW9kOmBweTM6dXJsbGliLmVycm9yYCAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB1cmxsaWIucmVxdWVzdGBgICAgICAgICAgICB8IFNlZSA6bW9kOmBzaXgubW92ZXMudXJsbGliLnJlcXVlc3RgIHwgOm1vZDpgcHkzOnVybGxpYi5yZXF1ZXN0YCAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgdXJsbGliLnJlc3BvbnNlYGAgICAgICAgICAgfCBTZWUgOm1vZDpgc2l4Lm1vdmVzLnVybGxpYi5yZXNwb25zZWB8IDptb2Q6YHB5Mzp1cmxsaWIucmVzcG9uc2VgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHVybGxpYi5yb2JvdHBhcnNlcmBgICAgICAgIHwgOm1vZDpgcHkyOnJvYm90cGFyc2VyYCAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dXJsbGliLnJvYm90cGFyc2VyYCAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB1cmxsaWJfcm9ib3RwYXJzZXJgYCAgICAgICB8IDptb2Q6YHB5Mjpyb2JvdHBhcnNlcmAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnVybGxpYi5yb2JvdHBhcnNlcmAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgVXNlckRpY3RgYCAgICAgICAgICAgICAgICAgfCA6Y2xhc3M6YHB5MjpVc2VyRGljdC5Vc2VyRGljdGAgICAgICB8IDpjbGFzczpgcHkzOmNvbGxlY3Rpb25zLlVzZXJEaWN0YCAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYFVzZXJMaXN0YGAgICAgICAgICAgICAgICAgIHwgOmNsYXNzOmBweTI6VXNlckxpc3QuVXNlckxpc3RgICAgICAgfCA6Y2xhc3M6YHB5Mzpjb2xsZWN0aW9ucy5Vc2VyTGlzdGAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBVc2VyU3RyaW5nYGAgICAgICAgICAgICAgICB8IDpjbGFzczpgcHkyOlVzZXJTdHJpbmcuVXNlclN0cmluZ2AgIHwgOmNsYXNzOmBweTM6Y29sbGVjdGlvbnMuVXNlclN0cmluZ2AgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgd2lucmVnYGAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6X3dpbnJlZ2AgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp3aW5yZWdgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHhtbHJwY19jbGllbnRgYCAgICAgICAgICAgIHwgOm1vZDpgcHkyOnhtbHJwY2xpYmAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6eG1scnBjLmNsaWVudGAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB4bWxycGNfc2VydmVyYGAgICAgICAgICAgICB8IDptb2Q6YHB5MjpTaW1wbGVYTUxSUENTZXJ2ZXJgICAgICAgIHwgOm1vZDpgcHkzOnhtbHJwYy5zZXJ2ZXJgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgeHJhbmdlYGAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOnhyYW5nZWAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6cmFuZ2VgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYHppcGBgICAgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaXppcGAgICAgICAgICAgfCA6ZnVuYzpgcHkzOnppcGAgICAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGB6aXBfbG9uZ2VzdGBgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLml6aXBfbG9uZ2VzdGAgIHwgOmZ1bmM6YHB5MzppdGVydG9vbHMuemlwX2xvbmdlc3RgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKK3VybGxpYiBwYXJzZQorPDw8PDw8PDw8PDw8CisKKy4uIG1vZHVsZTo6IHNpeC5tb3Zlcy51cmxsaWIucGFyc2UKKyAgIDpzeW5vcHNpczogU3R1ZmYgZnJvbSA6bW9kOmBweTI6dXJscGFyc2VgIGFuZCA6bW9kOmBweTI6dXJsbGliYCBpbiBQeXRob24gMiBhbmQgOm1vZDpgcHkzOnVybGxpYi5wYXJzZWAgaW4gUHl0aG9uIDMKKworQ29udGFpbnMgZnVuY3Rpb25zIGZyb20gUHl0aG9uIDMncyA6bW9kOmBweTM6dXJsbGliLnBhcnNlYCBhbmQgUHl0aG9uIDInczoKKworOm1vZDpgcHkyOnVybHBhcnNlYDoKKworKiA6ZnVuYzpgcHkyOnVybHBhcnNlLlBhcnNlUmVzdWx0YAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLlNwbGl0UmVzdWx0YAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVybHBhcnNlYAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVybHVucGFyc2VgCisqIDpmdW5jOmBweTI6dXJscGFyc2UucGFyc2VfcXNgCisqIDpmdW5jOmBweTI6dXJscGFyc2UucGFyc2VfcXNsYAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVybGpvaW5gCisqIDpmdW5jOmBweTI6dXJscGFyc2UudXJsZGVmcmFnYAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVybHNwbGl0YAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVybHVuc3BsaXRgCisqIDpmdW5jOmBweTI6dXJscGFyc2Uuc3BsaXRxdWVyeWAKKyogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51c2VzX2ZyYWdtZW50YAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVzZXNfbmV0bG9jYAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVzZXNfcGFyYW1zYAorKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVzZXNfcXVlcnlgCisqIDpmdW5jOmBweTI6dXJscGFyc2UudXNlc19yZWxhdGl2ZWAKKworYW5kIDptb2Q6YHB5Mjp1cmxsaWJgOgorCisqIDpmdW5jOmBweTI6dXJsbGliLnF1b3RlYAorKiA6ZnVuYzpgcHkyOnVybGxpYi5xdW90ZV9wbHVzYAorKiA6ZnVuYzpgcHkyOnVybGxpYi5zcGxpdHRhZ2AKKyogOmZ1bmM6YHB5Mjp1cmxsaWIuc3BsaXR1c2VyYAorKiA6ZnVuYzpgcHkyOnVybGxpYi51bnF1b3RlYAorKiA6ZnVuYzpgcHkyOnVybGxpYi51bnF1b3RlX3BsdXNgCisqIDpmdW5jOmBweTI6dXJsbGliLnVybGVuY29kZWAKKworCit1cmxsaWIgZXJyb3IKKzw8PDw8PDw8PDw8PAorCisuLiBtb2R1bGU6OiBzaXgubW92ZXMudXJsbGliLmVycm9yCisgICA6c3lub3BzaXM6IFN0dWZmIGZyb20gOm1vZDpgcHkyOnVybGxpYmAgYW5kIDptb2Q6YHB5Mjp1cmxsaWIyYCBpbiBQeXRob24gMiBhbmQgOm1vZDpgcHkzOnVybGxpYi5lcnJvcmAgaW4gUHl0aG9uIDMKKworQ29udGFpbnMgZXhjZXB0aW9ucyBmcm9tIFB5dGhvbiAzJ3MgOm1vZDpgcHkzOnVybGxpYi5lcnJvcmAgYW5kIFB5dGhvbiAyJ3M6CisKKzptb2Q6YHB5Mjp1cmxsaWJgOgorCisqIDpleGM6YHB5Mjp1cmxsaWIuQ29udGVudFRvb1Nob3J0RXJyb3JgCisKK2FuZCA6bW9kOmBweTI6dXJsbGliMmA6CisKKyogOmV4YzpgcHkyOnVybGxpYjIuVVJMRXJyb3JgCisqIDpleGM6YHB5Mjp1cmxsaWIyLkhUVFBFcnJvcmAKKworCit1cmxsaWIgcmVxdWVzdAorPDw8PDw8PDw8PDw8PDwKKworLi4gbW9kdWxlOjogc2l4Lm1vdmVzLnVybGxpYi5yZXF1ZXN0CisgICA6c3lub3BzaXM6IFN0dWZmIGZyb20gOm1vZDpgcHkyOnVybGxpYmAgYW5kIDptb2Q6YHB5Mjp1cmxsaWIyYCBpbiBQeXRob24gMiBhbmQgOm1vZDpgcHkzOnVybGxpYi5yZXF1ZXN0YCBpbiBQeXRob24gMworCitDb250YWlucyBpdGVtcyBmcm9tIFB5dGhvbiAzJ3MgOm1vZDpgcHkzOnVybGxpYi5yZXF1ZXN0YCBhbmQgUHl0aG9uIDInczoKKworOm1vZDpgcHkyOnVybGxpYmA6CisKKyogOmZ1bmM6YHB5Mjp1cmxsaWIucGF0aG5hbWUydXJsYAorKiA6ZnVuYzpgcHkyOnVybGxpYi51cmwycGF0aG5hbWVgCisqIDpmdW5jOmBweTI6dXJsbGliLmdldHByb3hpZXNgCisqIDpmdW5jOmBweTI6dXJsbGliLnVybHJldHJpZXZlYAorKiA6ZnVuYzpgcHkyOnVybGxpYi51cmxjbGVhbnVwYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuVVJMb3BlbmVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuRmFuY3lVUkxvcGVuZXJgCisqIDpmdW5jOmBweTI6dXJsbGliLnByb3h5X2J5cGFzc2AKKworYW5kIDptb2Q6YHB5Mjp1cmxsaWIyYDoKKworKiA6ZnVuYzpgcHkyOnVybGxpYjIudXJsb3BlbmAKKyogOmZ1bmM6YHB5Mjp1cmxsaWIyLmluc3RhbGxfb3BlbmVyYAorKiA6ZnVuYzpgcHkyOnVybGxpYjIuYnVpbGRfb3BlbmVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLlJlcXVlc3RgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuT3BlbmVyRGlyZWN0b3JgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUERlZmF1bHRFcnJvckhhbmRsZXJgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUFJlZGlyZWN0SGFuZGxlcmAKKyogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQQ29va2llUHJvY2Vzc29yYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLlByb3h5SGFuZGxlcmAKKyogOmNsYXNzOmBweTI6dXJsbGliMi5CYXNlSGFuZGxlcmAKKyogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQUGFzc3dvcmRNZ3JgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUFBhc3N3b3JkTWdyV2l0aERlZmF1bHRSZWFsbWAKKyogOmNsYXNzOmBweTI6dXJsbGliMi5BYnN0cmFjdEJhc2ljQXV0aEhhbmRsZXJgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUEJhc2ljQXV0aEhhbmRsZXJgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuUHJveHlCYXNpY0F1dGhIYW5kbGVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkFic3RyYWN0RGlnZXN0QXV0aEhhbmRsZXJgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUERpZ2VzdEF1dGhIYW5kbGVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLlByb3h5RGlnZXN0QXV0aEhhbmRsZXJgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUEhhbmRsZXJgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUFNIYW5kbGVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkZpbGVIYW5kbGVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkZUUEhhbmRsZXJgCisqIDpjbGFzczpgcHkyOnVybGxpYjIuQ2FjaGVGVFBIYW5kbGVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLlVua25vd25IYW5kbGVyYAorKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBFcnJvclByb2Nlc3NvcmAKKworCit1cmxsaWIgcmVzcG9uc2UKKzw8PDw8PDw8PDw8PDw8PAorCisuLiBtb2R1bGU6OiBzaXgubW92ZXMudXJsbGliLnJlc3BvbnNlCisgICA6c3lub3BzaXM6IFN0dWZmIGZyb20gOm1vZDpgcHkyOnVybGxpYmAgaW4gUHl0aG9uIDIgYW5kIDptb2Q6YHB5Mzp1cmxsaWIucmVzcG9uc2VgIGluIFB5dGhvbiAzCisKK0NvbnRhaW5zIGNsYXNzZXMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1cmxsaWIucmVzcG9uc2VgIGFuZCBQeXRob24gMidzOgorCis6bW9kOmBweTI6dXJsbGliYDoKKworKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuYWRkYmFzZWAKKyogOmNsYXNzOmBweTI6dXJsbGliLmFkZGNsb3NlaG9va2AKKyogOmNsYXNzOmBweTI6dXJsbGliLmFkZGluZm9gCisqIDpjbGFzczpgcHkyOnVybGxpYi5hZGRpbmZvdXJsYAorCisKK0FkdmFuY2VkIC0gQ3VzdG9taXppbmcgcmVuYW1lcworPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBzaXgKKworSXQgaXMgcG9zc2libGUgdG8gYWRkIGFkZGl0aW9uYWwgbmFtZXMgdG8gdGhlIDptb2Q6YHNpeC5tb3Zlc2AgbmFtZXNwYWNlLgorCisKKy4uIGZ1bmN0aW9uOjogYWRkX21vdmUoaXRlbSkKKworICAgQWRkICppdGVtKiB0byB0aGUgOm1vZDpgc2l4Lm1vdmVzYCBtYXBwaW5nLiAgKml0ZW0qIHNob3VsZCBiZSBhCisgICA6Y2xhc3M6YE1vdmVkQXR0cmlidXRlYCBvciA6Y2xhc3M6YE1vdmVkTW9kdWxlYCBpbnN0YW5jZS4KKworCisuLiBmdW5jdGlvbjo6IHJlbW92ZV9tb3ZlKG5hbWUpCisKKyAgIFJlbW92ZSB0aGUgOm1vZDpgc2l4Lm1vdmVzYCBtYXBwaW5nIGNhbGxlZCAqbmFtZSouICAqbmFtZSogc2hvdWxkIGJlIGEKKyAgIHN0cmluZy4KKworCitJbnN0YW5jZXMgb2YgdGhlIGZvbGxvd2luZyBjbGFzc2VzIGNhbiBiZSBwYXNzZWQgdG8gOmZ1bmM6YGFkZF9tb3ZlYC4gIE5laXRoZXIKK2hhdmUgYW55IHB1YmxpYyBtZW1iZXJzLgorCisKKy4uIGNsYXNzOjogTW92ZWRNb2R1bGUobmFtZSwgb2xkX21vZCwgbmV3X21vZCkKKworICAgQ3JlYXRlIGEgbWFwcGluZyBmb3IgOm1vZDpgc2l4Lm1vdmVzYCBjYWxsZWQgKm5hbWUqIHRoYXQgcmVmZXJlbmNlcyBkaWZmZXJlbnQKKyAgIG1vZHVsZXMgaW4gUHl0aG9uIDIgYW5kIDMuICAqb2xkX21vZCogaXMgdGhlIG5hbWUgb2YgdGhlIFB5dGhvbiAyIG1vZHVsZS4KKyAgICpuZXdfbW9kKiBpcyB0aGUgbmFtZSBvZiB0aGUgUHl0aG9uIDMgbW9kdWxlLgorCisKKy4uIGNsYXNzOjogTW92ZWRBdHRyaWJ1dGUobmFtZSwgb2xkX21vZCwgbmV3X21vZCwgb2xkX2F0dHI9Tm9uZSwgbmV3X2F0dHI9Tm9uZSkKKworICAgQ3JlYXRlIGEgbWFwcGluZyBmb3IgOm1vZDpgc2l4Lm1vdmVzYCBjYWxsZWQgKm5hbWUqIHRoYXQgcmVmZXJlbmNlcyBkaWZmZXJlbnQKKyAgIGF0dHJpYnV0ZXMgaW4gUHl0aG9uIDIgYW5kIDMuICAqb2xkX21vZCogaXMgdGhlIG5hbWUgb2YgdGhlIFB5dGhvbiAyIG1vZHVsZS4KKyAgICpuZXdfbW9kKiBpcyB0aGUgbmFtZSBvZiB0aGUgUHl0aG9uIDMgbW9kdWxlLiAgSWYgKm5ld19hdHRyKiBpcyBub3QgZ2l2ZW4sIGl0CisgICBkZWZhdWx0cyB0byAqb2xkX2F0dHIqLiAgSWYgbmVpdGhlciBpcyBnaXZlbiwgdGhleSBib3RoIGRlZmF1bHQgdG8gKm5hbWUqLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zZXR1cC5jZmcgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NldHVwLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmIzY2EwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zZXR1cC5jZmcKQEAgLTAsMCArMSw4IEBACitbd2hlZWxdCit1bml2ZXJzYWwgPSAxCisKK1tlZ2dfaW5mb10KK3RhZ19idWlsZCA9IAordGFnX3N2bl9yZXZpc2lvbiA9IDAKK3RhZ19kYXRlID0gMAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NldHVwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zZXR1cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGNjYTUyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zZXR1cC5weQpAQCAtMCwwICsxLDMyIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CisKK3RyeToKKyAgICBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBvcnQgc2V0dXAKKworaW1wb3J0IHNpeAorCitzaXhfY2xhc3NpZmllcnMgPSBbCisgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyIiwKKyAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMiLAorICAgICJJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzIiwKKyAgICAiTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UiLAorICAgICJUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMiLAorICAgICJUb3BpYyA6OiBVdGlsaXRpZXMiLAorXQorCit3aXRoIG9wZW4oIlJFQURNRSIsICJyIikgYXMgZnA6CisgICAgc2l4X2xvbmdfZGVzY3JpcHRpb24gPSBmcC5yZWFkKCkKKworc2V0dXAobmFtZT0ic2l4IiwKKyAgICAgIHZlcnNpb249c2l4Ll9fdmVyc2lvbl9fLAorICAgICAgYXV0aG9yPSJCZW5qYW1pbiBQZXRlcnNvbiIsCisgICAgICBhdXRob3JfZW1haWw9ImJlbmphbWluQHB5dGhvbi5vcmciLAorICAgICAgdXJsPSJodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2l4LyIsCisgICAgICBweV9tb2R1bGVzPVsic2l4Il0sCisgICAgICBkZXNjcmlwdGlvbj0iUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eSB1dGlsaXRpZXMiLAorICAgICAgbG9uZ19kZXNjcmlwdGlvbj1zaXhfbG9uZ19kZXNjcmlwdGlvbiwKKyAgICAgIGxpY2Vuc2U9Ik1JVCIsCisgICAgICBjbGFzc2lmaWVycz1zaXhfY2xhc3NpZmllcnMKKyAgICAgICkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1BLRy1JTkZPIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vUEtHLUlORk8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZkZGY4NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1BLRy1JTkZPCkBAIC0wLDAgKzEsMzIgQEAKK01ldGFkYXRhLVZlcnNpb246IDEuMQorTmFtZTogc2l4CitWZXJzaW9uOiAxLjkuMAorU3VtbWFyeTogUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eSB1dGlsaXRpZXMKK0hvbWUtcGFnZTogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NpeC8KK0F1dGhvcjogQmVuamFtaW4gUGV0ZXJzb24KK0F1dGhvci1lbWFpbDogYmVuamFtaW5AcHl0aG9uLm9yZworTGljZW5zZTogTUlUCitEZXNjcmlwdGlvbjogU2l4IGlzIGEgUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eSBsaWJyYXJ5LiAgSXQgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMKKyAgICAgICAgZm9yIHNtb290aGluZyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBQeXRob24gdmVyc2lvbnMgd2l0aCB0aGUgZ29hbCBvZgorICAgICAgICB3cml0aW5nIFB5dGhvbiBjb2RlIHRoYXQgaXMgY29tcGF0aWJsZSBvbiBib3RoIFB5dGhvbiB2ZXJzaW9ucy4gIFNlZSB0aGUKKyAgICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGF0IGlzIHByb3ZpZGVkLgorICAgICAgICAKKyAgICAgICAgU2l4IHN1cHBvcnRzIGV2ZXJ5IFB5dGhvbiB2ZXJzaW9uIHNpbmNlIDIuNS4gIEl0IGlzIGNvbnRhaW5lZCBpbiBvbmx5IG9uZSBQeXRob24KKyAgICAgICAgZmlsZSwgc28gaXQgY2FuIGJlIGVhc2lseSBjb3BpZWQgaW50byB5b3VyIHByb2plY3QuIChUaGUgY29weXJpZ2h0IGFuZCBsaWNlbnNlCisgICAgICAgIG5vdGljZSBtdXN0IGJlIHJldGFpbmVkLikKKyAgICAgICAgCisgICAgICAgIE9ubGluZSBkb2N1bWVudGF0aW9uIGlzIGF0IGh0dHA6Ly9weXRob25ob3N0ZWQub3JnL3NpeC8uCisgICAgICAgIAorICAgICAgICBCdWdzIGNhbiBiZSByZXBvcnRlZCB0byBodHRwczovL2JpdGJ1Y2tldC5vcmcvZ3V0d29ydGgvc2l4LiAgVGhlIGNvZGUgY2FuIGFsc28KKyAgICAgICAgYmUgZm91bmQgdGhlcmUuCisgICAgICAgIAorICAgICAgICBGb3IgcXVlc3Rpb25zIGFib3V0IHNpeCBvciBwb3J0aW5nIGluIGdlbmVyYWwsIGVtYWlsIHRoZSBweXRob24tcG9ydGluZyBtYWlsaW5nCisgICAgICAgIGxpc3Q6IGh0dHA6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9weXRob24tcG9ydGluZworICAgICAgICAKK1BsYXRmb3JtOiBVTktOT1dOCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMgorQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMKK0NsYXNzaWZpZXI6IEludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMKK0NsYXNzaWZpZXI6IExpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlCitDbGFzc2lmaWVyOiBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMKK0NsYXNzaWZpZXI6IFRvcGljIDo6IFV0aWxpdGllcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vU09VUkNFUy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9TT1VSQ0VTLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWE3YzIwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vU09VUkNFUy50eHQKQEAgLTAsMCArMSwxNSBAQAorQ0hBTkdFUworTElDRU5TRQorTUFOSUZFU1QuaW4KK1JFQURNRQorc2V0dXAuY2ZnCitzZXR1cC5weQorc2l4LnB5Cit0ZXN0X3NpeC5weQorZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQorZG9jdW1lbnRhdGlvbi9jb25mLnB5Citkb2N1bWVudGF0aW9uL2luZGV4LnJzdAorc2l4LmVnZy1pbmZvL1BLRy1JTkZPCitzaXguZWdnLWluZm8vU09VUkNFUy50eHQKK3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAorc2l4LmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3RvcF9sZXZlbC50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZTJmY2UKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CkBAIC0wLDAgKzEgQEAKK3NpeApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zaXgucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3NpeC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmEzZmUxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC9zaXgucHkKQEAgLTAsMCArMSw4MzggQEAKKyIiIlV0aWxpdGllcyBmb3Igd3JpdGluZyBjb2RlIHRoYXQgcnVucyBvbiBQeXRob24gMiBhbmQgMyIiIgorCisjIENvcHlyaWdodCAoYykgMjAxMC0yMDE1IEJlbmphbWluIFBldGVyc29uCisjCisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKyMgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworIyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisjIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworIyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIworIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKKyMgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyMgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorIyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisjIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisjIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisjIFNPRlRXQVJFLgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitpbXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQgb3BlcmF0b3IKK2ltcG9ydCBzeXMKK2ltcG9ydCB0eXBlcworCitfX2F1dGhvcl9fID0gIkJlbmphbWluIFBldGVyc29uIDxiZW5qYW1pbkBweXRob24ub3JnPiIKK19fdmVyc2lvbl9fID0gIjEuOS4wIgorCisKKyMgVXNlZnVsIGZvciB2ZXJ5IGNvYXJzZSB2ZXJzaW9uIGRpZmZlcmVudGlhdGlvbi4KK1BZMiA9IHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMgorUFkzID0gc3lzLnZlcnNpb25faW5mb1swXSA9PSAzCisKK2lmIFBZMzoKKyAgICBzdHJpbmdfdHlwZXMgPSBzdHIsCisgICAgaW50ZWdlcl90eXBlcyA9IGludCwKKyAgICBjbGFzc190eXBlcyA9IHR5cGUsCisgICAgdGV4dF90eXBlID0gc3RyCisgICAgYmluYXJ5X3R5cGUgPSBieXRlcworCisgICAgTUFYU0laRSA9IHN5cy5tYXhzaXplCitlbHNlOgorICAgIHN0cmluZ190eXBlcyA9IGJhc2VzdHJpbmcsCisgICAgaW50ZWdlcl90eXBlcyA9IChpbnQsIGxvbmcpCisgICAgY2xhc3NfdHlwZXMgPSAodHlwZSwgdHlwZXMuQ2xhc3NUeXBlKQorICAgIHRleHRfdHlwZSA9IHVuaWNvZGUKKyAgICBiaW5hcnlfdHlwZSA9IHN0cgorCisgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImphdmEiKToKKyAgICAgICAgIyBKeXRob24gYWx3YXlzIHVzZXMgMzIgYml0cy4KKyAgICAgICAgTUFYU0laRSA9IGludCgoMSA8PCAzMSkgLSAxKQorICAgIGVsc2U6CisgICAgICAgICMgSXQncyBwb3NzaWJsZSB0byBoYXZlIHNpemVvZihsb25nKSAhPSBzaXplb2YoUHlfc3NpemVfdCkuCisgICAgICAgIGNsYXNzIFgob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAxIDw8IDMxCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGxlbihYKCkpCisgICAgICAgIGV4Y2VwdCBPdmVyZmxvd0Vycm9yOgorICAgICAgICAgICAgIyAzMi1iaXQKKyAgICAgICAgICAgIE1BWFNJWkUgPSBpbnQoKDEgPDwgMzEpIC0gMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgNjQtYml0CisgICAgICAgICAgICBNQVhTSVpFID0gaW50KCgxIDw8IDYzKSAtIDEpCisgICAgICAgIGRlbCBYCisKKworZGVmIF9hZGRfZG9jKGZ1bmMsIGRvYyk6CisgICAgIiIiQWRkIGRvY3VtZW50YXRpb24gdG8gYSBmdW5jdGlvbi4iIiIKKyAgICBmdW5jLl9fZG9jX18gPSBkb2MKKworCitkZWYgX2ltcG9ydF9tb2R1bGUobmFtZSk6CisgICAgIiIiSW1wb3J0IG1vZHVsZSwgcmV0dXJuaW5nIHRoZSBtb2R1bGUgYWZ0ZXIgdGhlIGxhc3QgZG90LiIiIgorICAgIF9faW1wb3J0X18obmFtZSkKKyAgICByZXR1cm4gc3lzLm1vZHVsZXNbbmFtZV0KKworCitjbGFzcyBfTGF6eURlc2NyKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgIGRlZiBfX2dldF9fKHNlbGYsIG9iaiwgdHApOgorICAgICAgICByZXN1bHQgPSBzZWxmLl9yZXNvbHZlKCkKKyAgICAgICAgc2V0YXR0cihvYmosIHNlbGYubmFtZSwgcmVzdWx0KSAjIEludm9rZXMgX19zZXRfXy4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgYml0IHVnbHksIGJ1dCBpdCBhdm9pZHMgcnVubmluZyB0aGlzIGFnYWluIGJ5CisgICAgICAgICAgICAjIHJlbW92aW5nIHRoaXMgZGVzY3JpcHRvci4KKyAgICAgICAgICAgIGRlbGF0dHIob2JqLl9fY2xhc3NfXywgc2VsZi5uYW1lKQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiByZXN1bHQKKworCitjbGFzcyBNb3ZlZE1vZHVsZShfTGF6eURlc2NyKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBvbGQsIG5ldz1Ob25lKToKKyAgICAgICAgc3VwZXIoTW92ZWRNb2R1bGUsIHNlbGYpLl9faW5pdF9fKG5hbWUpCisgICAgICAgIGlmIFBZMzoKKyAgICAgICAgICAgIGlmIG5ldyBpcyBOb25lOgorICAgICAgICAgICAgICAgIG5ldyA9IG5hbWUKKyAgICAgICAgICAgIHNlbGYubW9kID0gbmV3CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLm1vZCA9IG9sZAorCisgICAgZGVmIF9yZXNvbHZlKHNlbGYpOgorICAgICAgICByZXR1cm4gX2ltcG9ydF9tb2R1bGUoc2VsZi5tb2QpCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cik6CisgICAgICAgIF9tb2R1bGUgPSBzZWxmLl9yZXNvbHZlKCkKKyAgICAgICAgdmFsdWUgPSBnZXRhdHRyKF9tb2R1bGUsIGF0dHIpCisgICAgICAgIHNldGF0dHIoc2VsZiwgYXR0ciwgdmFsdWUpCisgICAgICAgIHJldHVybiB2YWx1ZQorCisKK2NsYXNzIF9MYXp5TW9kdWxlKHR5cGVzLk1vZHVsZVR5cGUpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUpOgorICAgICAgICBzdXBlcihfTGF6eU1vZHVsZSwgc2VsZikuX19pbml0X18obmFtZSkKKyAgICAgICAgc2VsZi5fX2RvY19fID0gc2VsZi5fX2NsYXNzX18uX19kb2NfXworCisgICAgZGVmIF9fZGlyX18oc2VsZik6CisgICAgICAgIGF0dHJzID0gWyJfX2RvY19fIiwgIl9fbmFtZV9fIl0KKyAgICAgICAgYXR0cnMgKz0gW2F0dHIubmFtZSBmb3IgYXR0ciBpbiBzZWxmLl9tb3ZlZF9hdHRyaWJ1dGVzXQorICAgICAgICByZXR1cm4gYXR0cnMKKworICAgICMgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcworICAgIF9tb3ZlZF9hdHRyaWJ1dGVzID0gW10KKworCitjbGFzcyBNb3ZlZEF0dHJpYnV0ZShfTGF6eURlc2NyKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBvbGRfbW9kLCBuZXdfbW9kLCBvbGRfYXR0cj1Ob25lLCBuZXdfYXR0cj1Ob25lKToKKyAgICAgICAgc3VwZXIoTW92ZWRBdHRyaWJ1dGUsIHNlbGYpLl9faW5pdF9fKG5hbWUpCisgICAgICAgIGlmIFBZMzoKKyAgICAgICAgICAgIGlmIG5ld19tb2QgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBuZXdfbW9kID0gbmFtZQorICAgICAgICAgICAgc2VsZi5tb2QgPSBuZXdfbW9kCisgICAgICAgICAgICBpZiBuZXdfYXR0ciBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIG9sZF9hdHRyIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIG5ld19hdHRyID0gbmFtZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG5ld19hdHRyID0gb2xkX2F0dHIKKyAgICAgICAgICAgIHNlbGYuYXR0ciA9IG5ld19hdHRyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLm1vZCA9IG9sZF9tb2QKKyAgICAgICAgICAgIGlmIG9sZF9hdHRyIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgb2xkX2F0dHIgPSBuYW1lCisgICAgICAgICAgICBzZWxmLmF0dHIgPSBvbGRfYXR0cgorCisgICAgZGVmIF9yZXNvbHZlKHNlbGYpOgorICAgICAgICBtb2R1bGUgPSBfaW1wb3J0X21vZHVsZShzZWxmLm1vZCkKKyAgICAgICAgcmV0dXJuIGdldGF0dHIobW9kdWxlLCBzZWxmLmF0dHIpCisKKworY2xhc3MgX1NpeE1ldGFQYXRoSW1wb3J0ZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBBIG1ldGEgcGF0aCBpbXBvcnRlciB0byBpbXBvcnQgc2l4Lm1vdmVzIGFuZCBpdHMgc3VibW9kdWxlcy4KKworICAgIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBhIFBFUDMwMiBmaW5kZXIgYW5kIGxvYWRlci4gSXQgc2hvdWxkIGJlIGNvbXBhdGlibGUKKyAgICB3aXRoIFB5dGhvbiAyLjUgYW5kIGFsbCBleGlzdGluZyB2ZXJzaW9ucyBvZiBQeXRob24zCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNpeF9tb2R1bGVfbmFtZSk6CisgICAgICAgIHNlbGYubmFtZSA9IHNpeF9tb2R1bGVfbmFtZQorICAgICAgICBzZWxmLmtub3duX21vZHVsZXMgPSB7fQorCisgICAgZGVmIF9hZGRfbW9kdWxlKHNlbGYsIG1vZCwgKmZ1bGxuYW1lcyk6CisgICAgICAgIGZvciBmdWxsbmFtZSBpbiBmdWxsbmFtZXM6CisgICAgICAgICAgICBzZWxmLmtub3duX21vZHVsZXNbc2VsZi5uYW1lICsgIi4iICsgZnVsbG5hbWVdID0gbW9kCisKKyAgICBkZWYgX2dldF9tb2R1bGUoc2VsZiwgZnVsbG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5rbm93bl9tb2R1bGVzW3NlbGYubmFtZSArICIuIiArIGZ1bGxuYW1lXQorCisgICAgZGVmIGZpbmRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lLCBwYXRoPU5vbmUpOgorICAgICAgICBpZiBmdWxsbmFtZSBpbiBzZWxmLmtub3duX21vZHVsZXM6CisgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9fZ2V0X21vZHVsZShzZWxmLCBmdWxsbmFtZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmtub3duX21vZHVsZXNbZnVsbG5hbWVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJUaGlzIGxvYWRlciBkb2VzIG5vdCBrbm93IG1vZHVsZSAiICsgZnVsbG5hbWUpCisKKyAgICBkZWYgbG9hZF9tb2R1bGUoc2VsZiwgZnVsbG5hbWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIGluIGNhc2Ugb2YgYSByZWxvYWQKKyAgICAgICAgICAgIHJldHVybiBzeXMubW9kdWxlc1tmdWxsbmFtZV0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtb2QgPSBzZWxmLl9fZ2V0X21vZHVsZShmdWxsbmFtZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShtb2QsIE1vdmVkTW9kdWxlKToKKyAgICAgICAgICAgIG1vZCA9IG1vZC5fcmVzb2x2ZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtb2QuX19sb2FkZXJfXyA9IHNlbGYKKyAgICAgICAgc3lzLm1vZHVsZXNbZnVsbG5hbWVdID0gbW9kCisgICAgICAgIHJldHVybiBtb2QKKworICAgIGRlZiBpc19wYWNrYWdlKHNlbGYsIGZ1bGxuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0cnVlLCBpZiB0aGUgbmFtZWQgbW9kdWxlIGlzIGEgcGFja2FnZS4KKworICAgICAgICBXZSBuZWVkIHRoaXMgbWV0aG9kIHRvIGdldCBjb3JyZWN0IHNwZWMgb2JqZWN0cyB3aXRoCisgICAgICAgIFB5dGhvbiAzLjQgKHNlZSBQRVA0NTEpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gaGFzYXR0cihzZWxmLl9fZ2V0X21vZHVsZShmdWxsbmFtZSksICJfX3BhdGhfXyIpCisKKyAgICBkZWYgZ2V0X2NvZGUoc2VsZiwgZnVsbG5hbWUpOgorICAgICAgICAiIiJSZXR1cm4gTm9uZQorCisgICAgICAgIFJlcXVpcmVkLCBpZiBpc19wYWNrYWdlIGlzIGltcGxlbWVudGVkIiIiCisgICAgICAgIHNlbGYuX19nZXRfbW9kdWxlKGZ1bGxuYW1lKSAgIyBldmVudHVhbGx5IHJhaXNlcyBJbXBvcnRFcnJvcgorICAgICAgICByZXR1cm4gTm9uZQorICAgIGdldF9zb3VyY2UgPSBnZXRfY29kZSAgIyBzYW1lIGFzIGdldF9jb2RlCisKK19pbXBvcnRlciA9IF9TaXhNZXRhUGF0aEltcG9ydGVyKF9fbmFtZV9fKQorCisKK2NsYXNzIF9Nb3ZlZEl0ZW1zKF9MYXp5TW9kdWxlKToKKyAgICAiIiJMYXp5IGxvYWRpbmcgb2YgbW92ZWQgb2JqZWN0cyIiIgorICAgIF9fcGF0aF9fID0gW10gICMgbWFyayBhcyBwYWNrYWdlCisKKworX21vdmVkX2F0dHJpYnV0ZXMgPSBbCisgICAgTW92ZWRBdHRyaWJ1dGUoImNTdHJpbmdJTyIsICJjU3RyaW5nSU8iLCAiaW8iLCAiU3RyaW5nSU8iKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiZmlsdGVyIiwgIml0ZXJ0b29scyIsICJidWlsdGlucyIsICJpZmlsdGVyIiwgImZpbHRlciIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJmaWx0ZXJmYWxzZSIsICJpdGVydG9vbHMiLCAiaXRlcnRvb2xzIiwgImlmaWx0ZXJmYWxzZSIsICJmaWx0ZXJmYWxzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJpbnB1dCIsICJfX2J1aWx0aW5fXyIsICJidWlsdGlucyIsICJyYXdfaW5wdXQiLCAiaW5wdXQiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiaW50ZXJuIiwgIl9fYnVpbHRpbl9fIiwgInN5cyIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJtYXAiLCAiaXRlcnRvb2xzIiwgImJ1aWx0aW5zIiwgImltYXAiLCAibWFwIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInJhbmdlIiwgIl9fYnVpbHRpbl9fIiwgImJ1aWx0aW5zIiwgInhyYW5nZSIsICJyYW5nZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJyZWxvYWRfbW9kdWxlIiwgIl9fYnVpbHRpbl9fIiwgImltcCIsICJyZWxvYWQiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgicmVkdWNlIiwgIl9fYnVpbHRpbl9fIiwgImZ1bmN0b29scyIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJzaGxleF9xdW90ZSIsICJwaXBlcyIsICJzaGxleCIsICJxdW90ZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJTdHJpbmdJTyIsICJTdHJpbmdJTyIsICJpbyIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJVc2VyRGljdCIsICJVc2VyRGljdCIsICJjb2xsZWN0aW9ucyIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJVc2VyTGlzdCIsICJVc2VyTGlzdCIsICJjb2xsZWN0aW9ucyIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJVc2VyU3RyaW5nIiwgIlVzZXJTdHJpbmciLCAiY29sbGVjdGlvbnMiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgieHJhbmdlIiwgIl9fYnVpbHRpbl9fIiwgImJ1aWx0aW5zIiwgInhyYW5nZSIsICJyYW5nZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJ6aXAiLCAiaXRlcnRvb2xzIiwgImJ1aWx0aW5zIiwgIml6aXAiLCAiemlwIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInppcF9sb25nZXN0IiwgIml0ZXJ0b29scyIsICJpdGVydG9vbHMiLCAiaXppcF9sb25nZXN0IiwgInppcF9sb25nZXN0IiksCisKKyAgICBNb3ZlZE1vZHVsZSgiYnVpbHRpbnMiLCAiX19idWlsdGluX18iKSwKKyAgICBNb3ZlZE1vZHVsZSgiY29uZmlncGFyc2VyIiwgIkNvbmZpZ1BhcnNlciIpLAorICAgIE1vdmVkTW9kdWxlKCJjb3B5cmVnIiwgImNvcHlfcmVnIiksCisgICAgTW92ZWRNb2R1bGUoImRibV9nbnUiLCAiZ2RibSIsICJkYm0uZ251IiksCisgICAgTW92ZWRNb2R1bGUoIl9kdW1teV90aHJlYWQiLCAiZHVtbXlfdGhyZWFkIiwgIl9kdW1teV90aHJlYWQiKSwKKyAgICBNb3ZlZE1vZHVsZSgiaHR0cF9jb29raWVqYXIiLCAiY29va2llbGliIiwgImh0dHAuY29va2llamFyIiksCisgICAgTW92ZWRNb2R1bGUoImh0dHBfY29va2llcyIsICJDb29raWUiLCAiaHR0cC5jb29raWVzIiksCisgICAgTW92ZWRNb2R1bGUoImh0bWxfZW50aXRpZXMiLCAiaHRtbGVudGl0eWRlZnMiLCAiaHRtbC5lbnRpdGllcyIpLAorICAgIE1vdmVkTW9kdWxlKCJodG1sX3BhcnNlciIsICJIVE1MUGFyc2VyIiwgImh0bWwucGFyc2VyIiksCisgICAgTW92ZWRNb2R1bGUoImh0dHBfY2xpZW50IiwgImh0dHBsaWIiLCAiaHR0cC5jbGllbnQiKSwKKyAgICBNb3ZlZE1vZHVsZSgiZW1haWxfbWltZV9tdWx0aXBhcnQiLCAiZW1haWwuTUlNRU11bHRpcGFydCIsICJlbWFpbC5taW1lLm11bHRpcGFydCIpLAorICAgIE1vdmVkTW9kdWxlKCJlbWFpbF9taW1lX25vbm11bHRpcGFydCIsICJlbWFpbC5NSU1FTm9uTXVsdGlwYXJ0IiwgImVtYWlsLm1pbWUubm9ubXVsdGlwYXJ0IiksCisgICAgTW92ZWRNb2R1bGUoImVtYWlsX21pbWVfdGV4dCIsICJlbWFpbC5NSU1FVGV4dCIsICJlbWFpbC5taW1lLnRleHQiKSwKKyAgICBNb3ZlZE1vZHVsZSgiZW1haWxfbWltZV9iYXNlIiwgImVtYWlsLk1JTUVCYXNlIiwgImVtYWlsLm1pbWUuYmFzZSIpLAorICAgIE1vdmVkTW9kdWxlKCJCYXNlSFRUUFNlcnZlciIsICJCYXNlSFRUUFNlcnZlciIsICJodHRwLnNlcnZlciIpLAorICAgIE1vdmVkTW9kdWxlKCJDR0lIVFRQU2VydmVyIiwgIkNHSUhUVFBTZXJ2ZXIiLCAiaHR0cC5zZXJ2ZXIiKSwKKyAgICBNb3ZlZE1vZHVsZSgiU2ltcGxlSFRUUFNlcnZlciIsICJTaW1wbGVIVFRQU2VydmVyIiwgImh0dHAuc2VydmVyIiksCisgICAgTW92ZWRNb2R1bGUoImNQaWNrbGUiLCAiY1BpY2tsZSIsICJwaWNrbGUiKSwKKyAgICBNb3ZlZE1vZHVsZSgicXVldWUiLCAiUXVldWUiKSwKKyAgICBNb3ZlZE1vZHVsZSgicmVwcmxpYiIsICJyZXByIiksCisgICAgTW92ZWRNb2R1bGUoInNvY2tldHNlcnZlciIsICJTb2NrZXRTZXJ2ZXIiKSwKKyAgICBNb3ZlZE1vZHVsZSgiX3RocmVhZCIsICJ0aHJlYWQiLCAiX3RocmVhZCIpLAorICAgIE1vdmVkTW9kdWxlKCJ0a2ludGVyIiwgIlRraW50ZXIiKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl9kaWFsb2ciLCAiRGlhbG9nIiwgInRraW50ZXIuZGlhbG9nIiksCisgICAgTW92ZWRNb2R1bGUoInRraW50ZXJfZmlsZWRpYWxvZyIsICJGaWxlRGlhbG9nIiwgInRraW50ZXIuZmlsZWRpYWxvZyIpLAorICAgIE1vdmVkTW9kdWxlKCJ0a2ludGVyX3Njcm9sbGVkdGV4dCIsICJTY3JvbGxlZFRleHQiLCAidGtpbnRlci5zY3JvbGxlZHRleHQiKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl9zaW1wbGVkaWFsb2ciLCAiU2ltcGxlRGlhbG9nIiwgInRraW50ZXIuc2ltcGxlZGlhbG9nIiksCisgICAgTW92ZWRNb2R1bGUoInRraW50ZXJfdGl4IiwgIlRpeCIsICJ0a2ludGVyLnRpeCIpLAorICAgIE1vdmVkTW9kdWxlKCJ0a2ludGVyX3R0ayIsICJ0dGsiLCAidGtpbnRlci50dGsiKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl9jb25zdGFudHMiLCAiVGtjb25zdGFudHMiLCAidGtpbnRlci5jb25zdGFudHMiKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl9kbmQiLCAiVGtkbmQiLCAidGtpbnRlci5kbmQiKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl9jb2xvcmNob29zZXIiLCAidGtDb2xvckNob29zZXIiLAorICAgICAgICAgICAgICAgICJ0a2ludGVyLmNvbG9yY2hvb3NlciIpLAorICAgIE1vdmVkTW9kdWxlKCJ0a2ludGVyX2NvbW1vbmRpYWxvZyIsICJ0a0NvbW1vbkRpYWxvZyIsCisgICAgICAgICAgICAgICAgInRraW50ZXIuY29tbW9uZGlhbG9nIiksCisgICAgTW92ZWRNb2R1bGUoInRraW50ZXJfdGtmaWxlZGlhbG9nIiwgInRrRmlsZURpYWxvZyIsICJ0a2ludGVyLmZpbGVkaWFsb2ciKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl9mb250IiwgInRrRm9udCIsICJ0a2ludGVyLmZvbnQiKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl9tZXNzYWdlYm94IiwgInRrTWVzc2FnZUJveCIsICJ0a2ludGVyLm1lc3NhZ2Vib3giKSwKKyAgICBNb3ZlZE1vZHVsZSgidGtpbnRlcl90a3NpbXBsZWRpYWxvZyIsICJ0a1NpbXBsZURpYWxvZyIsCisgICAgICAgICAgICAgICAgInRraW50ZXIuc2ltcGxlZGlhbG9nIiksCisgICAgTW92ZWRNb2R1bGUoInVybGxpYl9wYXJzZSIsIF9fbmFtZV9fICsgIi5tb3Zlcy51cmxsaWJfcGFyc2UiLCAidXJsbGliLnBhcnNlIiksCisgICAgTW92ZWRNb2R1bGUoInVybGxpYl9lcnJvciIsIF9fbmFtZV9fICsgIi5tb3Zlcy51cmxsaWJfZXJyb3IiLCAidXJsbGliLmVycm9yIiksCisgICAgTW92ZWRNb2R1bGUoInVybGxpYiIsIF9fbmFtZV9fICsgIi5tb3Zlcy51cmxsaWIiLCBfX25hbWVfXyArICIubW92ZXMudXJsbGliIiksCisgICAgTW92ZWRNb2R1bGUoInVybGxpYl9yb2JvdHBhcnNlciIsICJyb2JvdHBhcnNlciIsICJ1cmxsaWIucm9ib3RwYXJzZXIiKSwKKyAgICBNb3ZlZE1vZHVsZSgieG1scnBjX2NsaWVudCIsICJ4bWxycGNsaWIiLCAieG1scnBjLmNsaWVudCIpLAorICAgIE1vdmVkTW9kdWxlKCJ4bWxycGNfc2VydmVyIiwgIlNpbXBsZVhNTFJQQ1NlcnZlciIsICJ4bWxycGMuc2VydmVyIiksCisgICAgTW92ZWRNb2R1bGUoIndpbnJlZyIsICJfd2lucmVnIiksCitdCitmb3IgYXR0ciBpbiBfbW92ZWRfYXR0cmlidXRlczoKKyAgICBzZXRhdHRyKF9Nb3ZlZEl0ZW1zLCBhdHRyLm5hbWUsIGF0dHIpCisgICAgaWYgaXNpbnN0YW5jZShhdHRyLCBNb3ZlZE1vZHVsZSk6CisgICAgICAgIF9pbXBvcnRlci5fYWRkX21vZHVsZShhdHRyLCAibW92ZXMuIiArIGF0dHIubmFtZSkKK2RlbCBhdHRyCisKK19Nb3ZlZEl0ZW1zLl9tb3ZlZF9hdHRyaWJ1dGVzID0gX21vdmVkX2F0dHJpYnV0ZXMKKworbW92ZXMgPSBfTW92ZWRJdGVtcyhfX25hbWVfXyArICIubW92ZXMiKQorX2ltcG9ydGVyLl9hZGRfbW9kdWxlKG1vdmVzLCAibW92ZXMiKQorCisKK2NsYXNzIE1vZHVsZV9zaXhfbW92ZXNfdXJsbGliX3BhcnNlKF9MYXp5TW9kdWxlKToKKyAgICAiIiJMYXp5IGxvYWRpbmcgb2YgbW92ZWQgb2JqZWN0cyBpbiBzaXgubW92ZXMudXJsbGliX3BhcnNlIiIiCisKKworX3VybGxpYl9wYXJzZV9tb3ZlZF9hdHRyaWJ1dGVzID0gWworICAgIE1vdmVkQXR0cmlidXRlKCJQYXJzZVJlc3VsdCIsICJ1cmxwYXJzZSIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiU3BsaXRSZXN1bHQiLCAidXJscGFyc2UiLCAidXJsbGliLnBhcnNlIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInBhcnNlX3FzIiwgInVybHBhcnNlIiwgInVybGxpYi5wYXJzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJwYXJzZV9xc2wiLCAidXJscGFyc2UiLCAidXJsbGliLnBhcnNlIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInVybGRlZnJhZyIsICJ1cmxwYXJzZSIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgidXJsam9pbiIsICJ1cmxwYXJzZSIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgidXJscGFyc2UiLCAidXJscGFyc2UiLCAidXJsbGliLnBhcnNlIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInVybHNwbGl0IiwgInVybHBhcnNlIiwgInVybGxpYi5wYXJzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJ1cmx1bnBhcnNlIiwgInVybHBhcnNlIiwgInVybGxpYi5wYXJzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJ1cmx1bnNwbGl0IiwgInVybHBhcnNlIiwgInVybGxpYi5wYXJzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJxdW90ZSIsICJ1cmxsaWIiLCAidXJsbGliLnBhcnNlIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInF1b3RlX3BsdXMiLCAidXJsbGliIiwgInVybGxpYi5wYXJzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJ1bnF1b3RlIiwgInVybGxpYiIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgidW5xdW90ZV9wbHVzIiwgInVybGxpYiIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgidXJsZW5jb2RlIiwgInVybGxpYiIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgic3BsaXRxdWVyeSIsICJ1cmxsaWIiLCAidXJsbGliLnBhcnNlIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInNwbGl0dGFnIiwgInVybGxpYiIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgic3BsaXR1c2VyIiwgInVybGxpYiIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgidXNlc19mcmFnbWVudCIsICJ1cmxwYXJzZSIsICJ1cmxsaWIucGFyc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgidXNlc19uZXRsb2MiLCAidXJscGFyc2UiLCAidXJsbGliLnBhcnNlIiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInVzZXNfcGFyYW1zIiwgInVybHBhcnNlIiwgInVybGxpYi5wYXJzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJ1c2VzX3F1ZXJ5IiwgInVybHBhcnNlIiwgInVybGxpYi5wYXJzZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJ1c2VzX3JlbGF0aXZlIiwgInVybHBhcnNlIiwgInVybGxpYi5wYXJzZSIpLAorXQorZm9yIGF0dHIgaW4gX3VybGxpYl9wYXJzZV9tb3ZlZF9hdHRyaWJ1dGVzOgorICAgIHNldGF0dHIoTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcGFyc2UsIGF0dHIubmFtZSwgYXR0cikKK2RlbCBhdHRyCisKK01vZHVsZV9zaXhfbW92ZXNfdXJsbGliX3BhcnNlLl9tb3ZlZF9hdHRyaWJ1dGVzID0gX3VybGxpYl9wYXJzZV9tb3ZlZF9hdHRyaWJ1dGVzCisKK19pbXBvcnRlci5fYWRkX21vZHVsZShNb2R1bGVfc2l4X21vdmVzX3VybGxpYl9wYXJzZShfX25hbWVfXyArICIubW92ZXMudXJsbGliX3BhcnNlIiksCisgICAgICAgICAgICAgICAgICAgICAgIm1vdmVzLnVybGxpYl9wYXJzZSIsICJtb3Zlcy51cmxsaWIucGFyc2UiKQorCisKK2NsYXNzIE1vZHVsZV9zaXhfbW92ZXNfdXJsbGliX2Vycm9yKF9MYXp5TW9kdWxlKToKKyAgICAiIiJMYXp5IGxvYWRpbmcgb2YgbW92ZWQgb2JqZWN0cyBpbiBzaXgubW92ZXMudXJsbGliX2Vycm9yIiIiCisKKworX3VybGxpYl9lcnJvcl9tb3ZlZF9hdHRyaWJ1dGVzID0gWworICAgIE1vdmVkQXR0cmlidXRlKCJVUkxFcnJvciIsICJ1cmxsaWIyIiwgInVybGxpYi5lcnJvciIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJIVFRQRXJyb3IiLCAidXJsbGliMiIsICJ1cmxsaWIuZXJyb3IiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiQ29udGVudFRvb1Nob3J0RXJyb3IiLCAidXJsbGliIiwgInVybGxpYi5lcnJvciIpLAorXQorZm9yIGF0dHIgaW4gX3VybGxpYl9lcnJvcl9tb3ZlZF9hdHRyaWJ1dGVzOgorICAgIHNldGF0dHIoTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfZXJyb3IsIGF0dHIubmFtZSwgYXR0cikKK2RlbCBhdHRyCisKK01vZHVsZV9zaXhfbW92ZXNfdXJsbGliX2Vycm9yLl9tb3ZlZF9hdHRyaWJ1dGVzID0gX3VybGxpYl9lcnJvcl9tb3ZlZF9hdHRyaWJ1dGVzCisKK19pbXBvcnRlci5fYWRkX21vZHVsZShNb2R1bGVfc2l4X21vdmVzX3VybGxpYl9lcnJvcihfX25hbWVfXyArICIubW92ZXMudXJsbGliLmVycm9yIiksCisgICAgICAgICAgICAgICAgICAgICAgIm1vdmVzLnVybGxpYl9lcnJvciIsICJtb3Zlcy51cmxsaWIuZXJyb3IiKQorCisKK2NsYXNzIE1vZHVsZV9zaXhfbW92ZXNfdXJsbGliX3JlcXVlc3QoX0xhenlNb2R1bGUpOgorICAgICIiIkxhenkgbG9hZGluZyBvZiBtb3ZlZCBvYmplY3RzIGluIHNpeC5tb3Zlcy51cmxsaWJfcmVxdWVzdCIiIgorCisKK191cmxsaWJfcmVxdWVzdF9tb3ZlZF9hdHRyaWJ1dGVzID0gWworICAgIE1vdmVkQXR0cmlidXRlKCJ1cmxvcGVuIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiaW5zdGFsbF9vcGVuZXIiLCAidXJsbGliMiIsICJ1cmxsaWIucmVxdWVzdCIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJidWlsZF9vcGVuZXIiLCAidXJsbGliMiIsICJ1cmxsaWIucmVxdWVzdCIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJwYXRobmFtZTJ1cmwiLCAidXJsbGliIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInVybDJwYXRobmFtZSIsICJ1cmxsaWIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiZ2V0cHJveGllcyIsICJ1cmxsaWIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiUmVxdWVzdCIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIk9wZW5lckRpcmVjdG9yIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiSFRUUERlZmF1bHRFcnJvckhhbmRsZXIiLCAidXJsbGliMiIsICJ1cmxsaWIucmVxdWVzdCIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJIVFRQUmVkaXJlY3RIYW5kbGVyIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiSFRUUENvb2tpZVByb2Nlc3NvciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIlByb3h5SGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIkJhc2VIYW5kbGVyIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiSFRUUFBhc3N3b3JkTWdyIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiSFRUUFBhc3N3b3JkTWdyV2l0aERlZmF1bHRSZWFsbSIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIkFic3RyYWN0QmFzaWNBdXRoSGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIkhUVFBCYXNpY0F1dGhIYW5kbGVyIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiUHJveHlCYXNpY0F1dGhIYW5kbGVyIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiQWJzdHJhY3REaWdlc3RBdXRoSGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIkhUVFBEaWdlc3RBdXRoSGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIlByb3h5RGlnZXN0QXV0aEhhbmRsZXIiLCAidXJsbGliMiIsICJ1cmxsaWIucmVxdWVzdCIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJIVFRQSGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIkhUVFBTSGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIkZpbGVIYW5kbGVyIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiRlRQSGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIkNhY2hlRlRQSGFuZGxlciIsICJ1cmxsaWIyIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIlVua25vd25IYW5kbGVyIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiSFRUUEVycm9yUHJvY2Vzc29yIiwgInVybGxpYjIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgidXJscmV0cmlldmUiLCAidXJsbGliIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInVybGNsZWFudXAiLCAidXJsbGliIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoIlVSTG9wZW5lciIsICJ1cmxsaWIiLCAidXJsbGliLnJlcXVlc3QiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiRmFuY3lVUkxvcGVuZXIiLCAidXJsbGliIiwgInVybGxpYi5yZXF1ZXN0IiksCisgICAgTW92ZWRBdHRyaWJ1dGUoInByb3h5X2J5cGFzcyIsICJ1cmxsaWIiLCAidXJsbGliLnJlcXVlc3QiKSwKK10KK2ZvciBhdHRyIGluIF91cmxsaWJfcmVxdWVzdF9tb3ZlZF9hdHRyaWJ1dGVzOgorICAgIHNldGF0dHIoTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcmVxdWVzdCwgYXR0ci5uYW1lLCBhdHRyKQorZGVsIGF0dHIKKworTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcmVxdWVzdC5fbW92ZWRfYXR0cmlidXRlcyA9IF91cmxsaWJfcmVxdWVzdF9tb3ZlZF9hdHRyaWJ1dGVzCisKK19pbXBvcnRlci5fYWRkX21vZHVsZShNb2R1bGVfc2l4X21vdmVzX3VybGxpYl9yZXF1ZXN0KF9fbmFtZV9fICsgIi5tb3Zlcy51cmxsaWIucmVxdWVzdCIpLAorICAgICAgICAgICAgICAgICAgICAgICJtb3Zlcy51cmxsaWJfcmVxdWVzdCIsICJtb3Zlcy51cmxsaWIucmVxdWVzdCIpCisKKworY2xhc3MgTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcmVzcG9uc2UoX0xhenlNb2R1bGUpOgorICAgICIiIkxhenkgbG9hZGluZyBvZiBtb3ZlZCBvYmplY3RzIGluIHNpeC5tb3Zlcy51cmxsaWJfcmVzcG9uc2UiIiIKKworCitfdXJsbGliX3Jlc3BvbnNlX21vdmVkX2F0dHJpYnV0ZXMgPSBbCisgICAgTW92ZWRBdHRyaWJ1dGUoImFkZGJhc2UiLCAidXJsbGliIiwgInVybGxpYi5yZXNwb25zZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJhZGRjbG9zZWhvb2siLCAidXJsbGliIiwgInVybGxpYi5yZXNwb25zZSIpLAorICAgIE1vdmVkQXR0cmlidXRlKCJhZGRpbmZvIiwgInVybGxpYiIsICJ1cmxsaWIucmVzcG9uc2UiKSwKKyAgICBNb3ZlZEF0dHJpYnV0ZSgiYWRkaW5mb3VybCIsICJ1cmxsaWIiLCAidXJsbGliLnJlc3BvbnNlIiksCitdCitmb3IgYXR0ciBpbiBfdXJsbGliX3Jlc3BvbnNlX21vdmVkX2F0dHJpYnV0ZXM6CisgICAgc2V0YXR0cihNb2R1bGVfc2l4X21vdmVzX3VybGxpYl9yZXNwb25zZSwgYXR0ci5uYW1lLCBhdHRyKQorZGVsIGF0dHIKKworTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcmVzcG9uc2UuX21vdmVkX2F0dHJpYnV0ZXMgPSBfdXJsbGliX3Jlc3BvbnNlX21vdmVkX2F0dHJpYnV0ZXMKKworX2ltcG9ydGVyLl9hZGRfbW9kdWxlKE1vZHVsZV9zaXhfbW92ZXNfdXJsbGliX3Jlc3BvbnNlKF9fbmFtZV9fICsgIi5tb3Zlcy51cmxsaWIucmVzcG9uc2UiKSwKKyAgICAgICAgICAgICAgICAgICAgICAibW92ZXMudXJsbGliX3Jlc3BvbnNlIiwgIm1vdmVzLnVybGxpYi5yZXNwb25zZSIpCisKKworY2xhc3MgTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcm9ib3RwYXJzZXIoX0xhenlNb2R1bGUpOgorICAgICIiIkxhenkgbG9hZGluZyBvZiBtb3ZlZCBvYmplY3RzIGluIHNpeC5tb3Zlcy51cmxsaWJfcm9ib3RwYXJzZXIiIiIKKworCitfdXJsbGliX3JvYm90cGFyc2VyX21vdmVkX2F0dHJpYnV0ZXMgPSBbCisgICAgTW92ZWRBdHRyaWJ1dGUoIlJvYm90RmlsZVBhcnNlciIsICJyb2JvdHBhcnNlciIsICJ1cmxsaWIucm9ib3RwYXJzZXIiKSwKK10KK2ZvciBhdHRyIGluIF91cmxsaWJfcm9ib3RwYXJzZXJfbW92ZWRfYXR0cmlidXRlczoKKyAgICBzZXRhdHRyKE1vZHVsZV9zaXhfbW92ZXNfdXJsbGliX3JvYm90cGFyc2VyLCBhdHRyLm5hbWUsIGF0dHIpCitkZWwgYXR0cgorCitNb2R1bGVfc2l4X21vdmVzX3VybGxpYl9yb2JvdHBhcnNlci5fbW92ZWRfYXR0cmlidXRlcyA9IF91cmxsaWJfcm9ib3RwYXJzZXJfbW92ZWRfYXR0cmlidXRlcworCitfaW1wb3J0ZXIuX2FkZF9tb2R1bGUoTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcm9ib3RwYXJzZXIoX19uYW1lX18gKyAiLm1vdmVzLnVybGxpYi5yb2JvdHBhcnNlciIpLAorICAgICAgICAgICAgICAgICAgICAgICJtb3Zlcy51cmxsaWJfcm9ib3RwYXJzZXIiLCAibW92ZXMudXJsbGliLnJvYm90cGFyc2VyIikKKworCitjbGFzcyBNb2R1bGVfc2l4X21vdmVzX3VybGxpYih0eXBlcy5Nb2R1bGVUeXBlKToKKyAgICAiIiJDcmVhdGUgYSBzaXgubW92ZXMudXJsbGliIG5hbWVzcGFjZSB0aGF0IHJlc2VtYmxlcyB0aGUgUHl0aG9uIDMgbmFtZXNwYWNlIiIiCisgICAgX19wYXRoX18gPSBbXSAgIyBtYXJrIGFzIHBhY2thZ2UKKyAgICBwYXJzZSA9IF9pbXBvcnRlci5fZ2V0X21vZHVsZSgibW92ZXMudXJsbGliX3BhcnNlIikKKyAgICBlcnJvciA9IF9pbXBvcnRlci5fZ2V0X21vZHVsZSgibW92ZXMudXJsbGliX2Vycm9yIikKKyAgICByZXF1ZXN0ID0gX2ltcG9ydGVyLl9nZXRfbW9kdWxlKCJtb3Zlcy51cmxsaWJfcmVxdWVzdCIpCisgICAgcmVzcG9uc2UgPSBfaW1wb3J0ZXIuX2dldF9tb2R1bGUoIm1vdmVzLnVybGxpYl9yZXNwb25zZSIpCisgICAgcm9ib3RwYXJzZXIgPSBfaW1wb3J0ZXIuX2dldF9tb2R1bGUoIm1vdmVzLnVybGxpYl9yb2JvdHBhcnNlciIpCisKKyAgICBkZWYgX19kaXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFsncGFyc2UnLCAnZXJyb3InLCAncmVxdWVzdCcsICdyZXNwb25zZScsICdyb2JvdHBhcnNlciddCisKK19pbXBvcnRlci5fYWRkX21vZHVsZShNb2R1bGVfc2l4X21vdmVzX3VybGxpYihfX25hbWVfXyArICIubW92ZXMudXJsbGliIiksCisgICAgICAgICAgICAgICAgICAgICAgIm1vdmVzLnVybGxpYiIpCisKKworZGVmIGFkZF9tb3ZlKG1vdmUpOgorICAgICIiIkFkZCBhbiBpdGVtIHRvIHNpeC5tb3Zlcy4iIiIKKyAgICBzZXRhdHRyKF9Nb3ZlZEl0ZW1zLCBtb3ZlLm5hbWUsIG1vdmUpCisKKworZGVmIHJlbW92ZV9tb3ZlKG5hbWUpOgorICAgICIiIlJlbW92ZSBpdGVtIGZyb20gc2l4Lm1vdmVzLiIiIgorICAgIHRyeToKKyAgICAgICAgZGVsYXR0cihfTW92ZWRJdGVtcywgbmFtZSkKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlbCBtb3Zlcy5fX2RpY3RfX1tuYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigibm8gc3VjaCBtb3ZlLCAlciIgJSAobmFtZSwpKQorCisKK2lmIFBZMzoKKyAgICBfbWV0aF9mdW5jID0gIl9fZnVuY19fIgorICAgIF9tZXRoX3NlbGYgPSAiX19zZWxmX18iCisKKyAgICBfZnVuY19jbG9zdXJlID0gIl9fY2xvc3VyZV9fIgorICAgIF9mdW5jX2NvZGUgPSAiX19jb2RlX18iCisgICAgX2Z1bmNfZGVmYXVsdHMgPSAiX19kZWZhdWx0c19fIgorICAgIF9mdW5jX2dsb2JhbHMgPSAiX19nbG9iYWxzX18iCitlbHNlOgorICAgIF9tZXRoX2Z1bmMgPSAiaW1fZnVuYyIKKyAgICBfbWV0aF9zZWxmID0gImltX3NlbGYiCisKKyAgICBfZnVuY19jbG9zdXJlID0gImZ1bmNfY2xvc3VyZSIKKyAgICBfZnVuY19jb2RlID0gImZ1bmNfY29kZSIKKyAgICBfZnVuY19kZWZhdWx0cyA9ICJmdW5jX2RlZmF1bHRzIgorICAgIF9mdW5jX2dsb2JhbHMgPSAiZnVuY19nbG9iYWxzIgorCisKK3RyeToKKyAgICBhZHZhbmNlX2l0ZXJhdG9yID0gbmV4dAorZXhjZXB0IE5hbWVFcnJvcjoKKyAgICBkZWYgYWR2YW5jZV9pdGVyYXRvcihpdCk6CisgICAgICAgIHJldHVybiBpdC5uZXh0KCkKK25leHQgPSBhZHZhbmNlX2l0ZXJhdG9yCisKKwordHJ5OgorICAgIGNhbGxhYmxlID0gY2FsbGFibGUKK2V4Y2VwdCBOYW1lRXJyb3I6CisgICAgZGVmIGNhbGxhYmxlKG9iaik6CisgICAgICAgIHJldHVybiBhbnkoIl9fY2FsbF9fIiBpbiBrbGFzcy5fX2RpY3RfXyBmb3Iga2xhc3MgaW4gdHlwZShvYmopLl9fbXJvX18pCisKKworaWYgUFkzOgorICAgIGRlZiBnZXRfdW5ib3VuZF9mdW5jdGlvbih1bmJvdW5kKToKKyAgICAgICAgcmV0dXJuIHVuYm91bmQKKworICAgIGNyZWF0ZV9ib3VuZF9tZXRob2QgPSB0eXBlcy5NZXRob2RUeXBlCisKKyAgICBJdGVyYXRvciA9IG9iamVjdAorZWxzZToKKyAgICBkZWYgZ2V0X3VuYm91bmRfZnVuY3Rpb24odW5ib3VuZCk6CisgICAgICAgIHJldHVybiB1bmJvdW5kLmltX2Z1bmMKKworICAgIGRlZiBjcmVhdGVfYm91bmRfbWV0aG9kKGZ1bmMsIG9iaik6CisgICAgICAgIHJldHVybiB0eXBlcy5NZXRob2RUeXBlKGZ1bmMsIG9iaiwgb2JqLl9fY2xhc3NfXykKKworICAgIGNsYXNzIEl0ZXJhdG9yKG9iamVjdCk6CisKKyAgICAgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gdHlwZShzZWxmKS5fX25leHRfXyhzZWxmKQorCisgICAgY2FsbGFibGUgPSBjYWxsYWJsZQorX2FkZF9kb2MoZ2V0X3VuYm91bmRfZnVuY3Rpb24sCisgICAgICAgICAiIiJHZXQgdGhlIGZ1bmN0aW9uIG91dCBvZiBhIHBvc3NpYmx5IHVuYm91bmQgZnVuY3Rpb24iIiIpCisKKworZ2V0X21ldGhvZF9mdW5jdGlvbiA9IG9wZXJhdG9yLmF0dHJnZXR0ZXIoX21ldGhfZnVuYykKK2dldF9tZXRob2Rfc2VsZiA9IG9wZXJhdG9yLmF0dHJnZXR0ZXIoX21ldGhfc2VsZikKK2dldF9mdW5jdGlvbl9jbG9zdXJlID0gb3BlcmF0b3IuYXR0cmdldHRlcihfZnVuY19jbG9zdXJlKQorZ2V0X2Z1bmN0aW9uX2NvZGUgPSBvcGVyYXRvci5hdHRyZ2V0dGVyKF9mdW5jX2NvZGUpCitnZXRfZnVuY3Rpb25fZGVmYXVsdHMgPSBvcGVyYXRvci5hdHRyZ2V0dGVyKF9mdW5jX2RlZmF1bHRzKQorZ2V0X2Z1bmN0aW9uX2dsb2JhbHMgPSBvcGVyYXRvci5hdHRyZ2V0dGVyKF9mdW5jX2dsb2JhbHMpCisKKworaWYgUFkzOgorICAgIGRlZiBpdGVya2V5cyhkLCAqKmt3KToKKyAgICAgICAgcmV0dXJuIGl0ZXIoZC5rZXlzKCoqa3cpKQorCisgICAgZGVmIGl0ZXJ2YWx1ZXMoZCwgKiprdyk6CisgICAgICAgIHJldHVybiBpdGVyKGQudmFsdWVzKCoqa3cpKQorCisgICAgZGVmIGl0ZXJpdGVtcyhkLCAqKmt3KToKKyAgICAgICAgcmV0dXJuIGl0ZXIoZC5pdGVtcygqKmt3KSkKKworICAgIGRlZiBpdGVybGlzdHMoZCwgKiprdyk6CisgICAgICAgIHJldHVybiBpdGVyKGQubGlzdHMoKiprdykpCisKKyAgICB2aWV3a2V5cyA9IG9wZXJhdG9yLm1ldGhvZGNhbGxlcigia2V5cyIpCisKKyAgICB2aWV3dmFsdWVzID0gb3BlcmF0b3IubWV0aG9kY2FsbGVyKCJ2YWx1ZXMiKQorCisgICAgdmlld2l0ZW1zID0gb3BlcmF0b3IubWV0aG9kY2FsbGVyKCJpdGVtcyIpCitlbHNlOgorICAgIGRlZiBpdGVya2V5cyhkLCAqKmt3KToKKyAgICAgICAgcmV0dXJuIGl0ZXIoZC5pdGVya2V5cygqKmt3KSkKKworICAgIGRlZiBpdGVydmFsdWVzKGQsICoqa3cpOgorICAgICAgICByZXR1cm4gaXRlcihkLml0ZXJ2YWx1ZXMoKiprdykpCisKKyAgICBkZWYgaXRlcml0ZW1zKGQsICoqa3cpOgorICAgICAgICByZXR1cm4gaXRlcihkLml0ZXJpdGVtcygqKmt3KSkKKworICAgIGRlZiBpdGVybGlzdHMoZCwgKiprdyk6CisgICAgICAgIHJldHVybiBpdGVyKGQuaXRlcmxpc3RzKCoqa3cpKQorCisgICAgdmlld2tleXMgPSBvcGVyYXRvci5tZXRob2RjYWxsZXIoInZpZXdrZXlzIikKKworICAgIHZpZXd2YWx1ZXMgPSBvcGVyYXRvci5tZXRob2RjYWxsZXIoInZpZXd2YWx1ZXMiKQorCisgICAgdmlld2l0ZW1zID0gb3BlcmF0b3IubWV0aG9kY2FsbGVyKCJ2aWV3aXRlbXMiKQorCitfYWRkX2RvYyhpdGVya2V5cywgIlJldHVybiBhbiBpdGVyYXRvciBvdmVyIHRoZSBrZXlzIG9mIGEgZGljdGlvbmFyeS4iKQorX2FkZF9kb2MoaXRlcnZhbHVlcywgIlJldHVybiBhbiBpdGVyYXRvciBvdmVyIHRoZSB2YWx1ZXMgb2YgYSBkaWN0aW9uYXJ5LiIpCitfYWRkX2RvYyhpdGVyaXRlbXMsCisgICAgICAgICAiUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIChrZXksIHZhbHVlKSBwYWlycyBvZiBhIGRpY3Rpb25hcnkuIikKK19hZGRfZG9jKGl0ZXJsaXN0cywKKyAgICAgICAgICJSZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciB0aGUgKGtleSwgW3ZhbHVlc10pIHBhaXJzIG9mIGEgZGljdGlvbmFyeS4iKQorCisKK2lmIFBZMzoKKyAgICBkZWYgYihzKToKKyAgICAgICAgcmV0dXJuIHMuZW5jb2RlKCJsYXRpbi0xIikKKyAgICBkZWYgdShzKToKKyAgICAgICAgcmV0dXJuIHMKKyAgICB1bmljaHIgPSBjaHIKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzFdIDw9IDE6CisgICAgICAgIGRlZiBpbnQyYnl0ZShpKToKKyAgICAgICAgICAgIHJldHVybiBieXRlcygoaSwpKQorICAgIGVsc2U6CisgICAgICAgICMgVGhpcyBpcyBhYm91dCAyeCBmYXN0ZXIgdGhhbiB0aGUgaW1wbGVtZW50YXRpb24gYWJvdmUgb24gMy4yKworICAgICAgICBpbnQyYnl0ZSA9IG9wZXJhdG9yLm1ldGhvZGNhbGxlcigidG9fYnl0ZXMiLCAxLCAiYmlnIikKKyAgICBieXRlMmludCA9IG9wZXJhdG9yLml0ZW1nZXR0ZXIoMCkKKyAgICBpbmRleGJ5dGVzID0gb3BlcmF0b3IuZ2V0aXRlbQorICAgIGl0ZXJieXRlcyA9IGl0ZXIKKyAgICBpbXBvcnQgaW8KKyAgICBTdHJpbmdJTyA9IGlvLlN0cmluZ0lPCisgICAgQnl0ZXNJTyA9IGlvLkJ5dGVzSU8KKyAgICBfYXNzZXJ0Q291bnRFcXVhbCA9ICJhc3NlcnRDb3VudEVxdWFsIgorICAgIF9hc3NlcnRSYWlzZXNSZWdleCA9ICJhc3NlcnRSYWlzZXNSZWdleCIKKyAgICBfYXNzZXJ0UmVnZXggPSAiYXNzZXJ0UmVnZXgiCitlbHNlOgorICAgIGRlZiBiKHMpOgorICAgICAgICByZXR1cm4gcworICAgICMgV29ya2Fyb3VuZCBmb3Igc3RhbmRhbG9uZSBiYWNrc2xhc2gKKyAgICBkZWYgdShzKToKKyAgICAgICAgcmV0dXJuIHVuaWNvZGUocy5yZXBsYWNlKHInXFwnLCByJ1xcXFwnKSwgInVuaWNvZGVfZXNjYXBlIikKKyAgICB1bmljaHIgPSB1bmljaHIKKyAgICBpbnQyYnl0ZSA9IGNocgorICAgIGRlZiBieXRlMmludChicyk6CisgICAgICAgIHJldHVybiBvcmQoYnNbMF0pCisgICAgZGVmIGluZGV4Ynl0ZXMoYnVmLCBpKToKKyAgICAgICAgcmV0dXJuIG9yZChidWZbaV0pCisgICAgaXRlcmJ5dGVzID0gZnVuY3Rvb2xzLnBhcnRpYWwoaXRlcnRvb2xzLmltYXAsIG9yZCkKKyAgICBpbXBvcnQgU3RyaW5nSU8KKyAgICBTdHJpbmdJTyA9IEJ5dGVzSU8gPSBTdHJpbmdJTy5TdHJpbmdJTworICAgIF9hc3NlcnRDb3VudEVxdWFsID0gImFzc2VydEl0ZW1zRXF1YWwiCisgICAgX2Fzc2VydFJhaXNlc1JlZ2V4ID0gImFzc2VydFJhaXNlc1JlZ2V4cCIKKyAgICBfYXNzZXJ0UmVnZXggPSAiYXNzZXJ0UmVnZXhwTWF0Y2hlcyIKK19hZGRfZG9jKGIsICIiIkJ5dGUgbGl0ZXJhbCIiIikKK19hZGRfZG9jKHUsICIiIlRleHQgbGl0ZXJhbCIiIikKKworCitkZWYgYXNzZXJ0Q291bnRFcXVhbChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgIHJldHVybiBnZXRhdHRyKHNlbGYsIF9hc3NlcnRDb3VudEVxdWFsKSgqYXJncywgKiprd2FyZ3MpCisKKworZGVmIGFzc2VydFJhaXNlc1JlZ2V4KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgX2Fzc2VydFJhaXNlc1JlZ2V4KSgqYXJncywgKiprd2FyZ3MpCisKKworZGVmIGFzc2VydFJlZ2V4KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgX2Fzc2VydFJlZ2V4KSgqYXJncywgKiprd2FyZ3MpCisKKworaWYgUFkzOgorICAgIGV4ZWNfID0gZ2V0YXR0cihtb3Zlcy5idWlsdGlucywgImV4ZWMiKQorCisKKyAgICBkZWYgcmVyYWlzZSh0cCwgdmFsdWUsIHRiPU5vbmUpOgorICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICAgICAgdmFsdWUgPSB0cCgpCisgICAgICAgIGlmIHZhbHVlLl9fdHJhY2ViYWNrX18gaXMgbm90IHRiOgorICAgICAgICAgICAgcmFpc2UgdmFsdWUud2l0aF90cmFjZWJhY2sodGIpCisgICAgICAgIHJhaXNlIHZhbHVlCisKK2Vsc2U6CisgICAgZGVmIGV4ZWNfKF9jb2RlXywgX2dsb2JzXz1Ob25lLCBfbG9jc189Tm9uZSk6CisgICAgICAgICIiIkV4ZWN1dGUgY29kZSBpbiBhIG5hbWVzcGFjZS4iIiIKKyAgICAgICAgaWYgX2dsb2JzXyBpcyBOb25lOgorICAgICAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAgICAgICBfZ2xvYnNfID0gZnJhbWUuZl9nbG9iYWxzCisgICAgICAgICAgICBpZiBfbG9jc18gaXMgTm9uZToKKyAgICAgICAgICAgICAgICBfbG9jc18gPSBmcmFtZS5mX2xvY2FscworICAgICAgICAgICAgZGVsIGZyYW1lCisgICAgICAgIGVsaWYgX2xvY3NfIGlzIE5vbmU6CisgICAgICAgICAgICBfbG9jc18gPSBfZ2xvYnNfCisgICAgICAgIGV4ZWMoIiIiZXhlYyBfY29kZV8gaW4gX2dsb2JzXywgX2xvY3NfIiIiKQorCisKKyAgICBleGVjXygiIiJkZWYgcmVyYWlzZSh0cCwgdmFsdWUsIHRiPU5vbmUpOgorICAgIHJhaXNlIHRwLCB2YWx1ZSwgdGIKKyIiIikKKworCitpZiBzeXMudmVyc2lvbl9pbmZvWzoyXSA9PSAoMywgMik6CisgICAgZXhlY18oIiIiZGVmIHJhaXNlX2Zyb20odmFsdWUsIGZyb21fdmFsdWUpOgorICAgIGlmIGZyb21fdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgdmFsdWUKKyAgICByYWlzZSB2YWx1ZSBmcm9tIGZyb21fdmFsdWUKKyIiIikKK2VsaWYgc3lzLnZlcnNpb25faW5mb1s6Ml0gPiAoMywgMik6CisgICAgZXhlY18oIiIiZGVmIHJhaXNlX2Zyb20odmFsdWUsIGZyb21fdmFsdWUpOgorICAgIHJhaXNlIHZhbHVlIGZyb20gZnJvbV92YWx1ZQorIiIiKQorZWxzZToKKyAgICBkZWYgcmFpc2VfZnJvbSh2YWx1ZSwgZnJvbV92YWx1ZSk6CisgICAgICAgIHJhaXNlIHZhbHVlCisKKworcHJpbnRfID0gZ2V0YXR0cihtb3Zlcy5idWlsdGlucywgInByaW50IiwgTm9uZSkKK2lmIHByaW50XyBpcyBOb25lOgorICAgIGRlZiBwcmludF8oKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiVGhlIG5ldy1zdHlsZSBwcmludCBmdW5jdGlvbiBmb3IgUHl0aG9uIDIuNCBhbmQgMi41LiIiIgorICAgICAgICBmcCA9IGt3YXJncy5wb3AoImZpbGUiLCBzeXMuc3Rkb3V0KQorICAgICAgICBpZiBmcCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGRlZiB3cml0ZShkYXRhKToKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgICAgIGRhdGEgPSBzdHIoZGF0YSkKKyAgICAgICAgICAgICMgSWYgdGhlIGZpbGUgaGFzIGFuIGVuY29kaW5nLCBlbmNvZGUgdW5pY29kZSB3aXRoIGl0LgorICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoZnAsIGZpbGUpIGFuZAorICAgICAgICAgICAgICAgIGlzaW5zdGFuY2UoZGF0YSwgdW5pY29kZSkgYW5kCisgICAgICAgICAgICAgICAgZnAuZW5jb2RpbmcgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IGdldGF0dHIoZnAsICJlcnJvcnMiLCBOb25lKQorICAgICAgICAgICAgICAgIGlmIGVycm9ycyBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSAic3RyaWN0IgorICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmVuY29kZShmcC5lbmNvZGluZywgZXJyb3JzKQorICAgICAgICAgICAgZnAud3JpdGUoZGF0YSkKKyAgICAgICAgd2FudF91bmljb2RlID0gRmFsc2UKKyAgICAgICAgc2VwID0ga3dhcmdzLnBvcCgic2VwIiwgTm9uZSkKKyAgICAgICAgaWYgc2VwIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZXAsIHVuaWNvZGUpOgorICAgICAgICAgICAgICAgIHdhbnRfdW5pY29kZSA9IFRydWUKKyAgICAgICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uoc2VwLCBzdHIpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigic2VwIG11c3QgYmUgTm9uZSBvciBhIHN0cmluZyIpCisgICAgICAgIGVuZCA9IGt3YXJncy5wb3AoImVuZCIsIE5vbmUpCisgICAgICAgIGlmIGVuZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZW5kLCB1bmljb2RlKToKKyAgICAgICAgICAgICAgICB3YW50X3VuaWNvZGUgPSBUcnVlCisgICAgICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKGVuZCwgc3RyKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImVuZCBtdXN0IGJlIE5vbmUgb3IgYSBzdHJpbmciKQorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImludmFsaWQga2V5d29yZCBhcmd1bWVudHMgdG8gcHJpbnQoKSIpCisgICAgICAgIGlmIG5vdCB3YW50X3VuaWNvZGU6CisgICAgICAgICAgICBmb3IgYXJnIGluIGFyZ3M6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhcmcsIHVuaWNvZGUpOgorICAgICAgICAgICAgICAgICAgICB3YW50X3VuaWNvZGUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIHdhbnRfdW5pY29kZToKKyAgICAgICAgICAgIG5ld2xpbmUgPSB1bmljb2RlKCJcbiIpCisgICAgICAgICAgICBzcGFjZSA9IHVuaWNvZGUoIiAiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmV3bGluZSA9ICJcbiIKKyAgICAgICAgICAgIHNwYWNlID0gIiAiCisgICAgICAgIGlmIHNlcCBpcyBOb25lOgorICAgICAgICAgICAgc2VwID0gc3BhY2UKKyAgICAgICAgaWYgZW5kIGlzIE5vbmU6CisgICAgICAgICAgICBlbmQgPSBuZXdsaW5lCisgICAgICAgIGZvciBpLCBhcmcgaW4gZW51bWVyYXRlKGFyZ3MpOgorICAgICAgICAgICAgaWYgaToKKyAgICAgICAgICAgICAgICB3cml0ZShzZXApCisgICAgICAgICAgICB3cml0ZShhcmcpCisgICAgICAgIHdyaXRlKGVuZCkKK2lmIHN5cy52ZXJzaW9uX2luZm9bOjJdIDwgKDMsIDMpOgorICAgIF9wcmludCA9IHByaW50XworICAgIGRlZiBwcmludF8oKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgZnAgPSBrd2FyZ3MuZ2V0KCJmaWxlIiwgc3lzLnN0ZG91dCkKKyAgICAgICAgZmx1c2ggPSBrd2FyZ3MucG9wKCJmbHVzaCIsIEZhbHNlKQorICAgICAgICBfcHJpbnQoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBpZiBmbHVzaCBhbmQgZnAgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmcC5mbHVzaCgpCisKK19hZGRfZG9jKHJlcmFpc2UsICIiIlJlcmFpc2UgYW4gZXhjZXB0aW9uLiIiIikKKworaWYgc3lzLnZlcnNpb25faW5mb1swOjJdIDwgKDMsIDQpOgorICAgIGRlZiB3cmFwcyh3cmFwcGVkLCBhc3NpZ25lZD1mdW5jdG9vbHMuV1JBUFBFUl9BU1NJR05NRU5UUywKKyAgICAgICAgICAgICAgdXBkYXRlZD1mdW5jdG9vbHMuV1JBUFBFUl9VUERBVEVTKToKKyAgICAgICAgZGVmIHdyYXBwZXIoZik6CisgICAgICAgICAgICBmID0gZnVuY3Rvb2xzLndyYXBzKHdyYXBwZWQsIGFzc2lnbmVkLCB1cGRhdGVkKShmKQorICAgICAgICAgICAgZi5fX3dyYXBwZWRfXyA9IHdyYXBwZWQKKyAgICAgICAgICAgIHJldHVybiBmCisgICAgICAgIHJldHVybiB3cmFwcGVyCitlbHNlOgorICAgIHdyYXBzID0gZnVuY3Rvb2xzLndyYXBzCisKK2RlZiB3aXRoX21ldGFjbGFzcyhtZXRhLCAqYmFzZXMpOgorICAgICIiIkNyZWF0ZSBhIGJhc2UgY2xhc3Mgd2l0aCBhIG1ldGFjbGFzcy4iIiIKKyAgICAjIFRoaXMgcmVxdWlyZXMgYSBiaXQgb2YgZXhwbGFuYXRpb246IHRoZSBiYXNpYyBpZGVhIGlzIHRvIG1ha2UgYSBkdW1teQorICAgICMgbWV0YWNsYXNzIGZvciBvbmUgbGV2ZWwgb2YgY2xhc3MgaW5zdGFudGlhdGlvbiB0aGF0IHJlcGxhY2VzIGl0c2VsZiB3aXRoCisgICAgIyB0aGUgYWN0dWFsIG1ldGFjbGFzcy4KKyAgICBjbGFzcyBtZXRhY2xhc3MobWV0YSk6CisgICAgICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgdGhpc19iYXNlcywgZCk6CisgICAgICAgICAgICByZXR1cm4gbWV0YShuYW1lLCBiYXNlcywgZCkKKyAgICByZXR1cm4gdHlwZS5fX25ld19fKG1ldGFjbGFzcywgJ3RlbXBvcmFyeV9jbGFzcycsICgpLCB7fSkKKworCitkZWYgYWRkX21ldGFjbGFzcyhtZXRhY2xhc3MpOgorICAgICIiIkNsYXNzIGRlY29yYXRvciBmb3IgY3JlYXRpbmcgYSBjbGFzcyB3aXRoIGEgbWV0YWNsYXNzLiIiIgorICAgIGRlZiB3cmFwcGVyKGNscyk6CisgICAgICAgIG9yaWdfdmFycyA9IGNscy5fX2RpY3RfXy5jb3B5KCkKKyAgICAgICAgc2xvdHMgPSBvcmlnX3ZhcnMuZ2V0KCdfX3Nsb3RzX18nKQorICAgICAgICBpZiBzbG90cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2xvdHMsIHN0cik6CisgICAgICAgICAgICAgICAgc2xvdHMgPSBbc2xvdHNdCisgICAgICAgICAgICBmb3Igc2xvdHNfdmFyIGluIHNsb3RzOgorICAgICAgICAgICAgICAgIG9yaWdfdmFycy5wb3Aoc2xvdHNfdmFyKQorICAgICAgICBvcmlnX3ZhcnMucG9wKCdfX2RpY3RfXycsIE5vbmUpCisgICAgICAgIG9yaWdfdmFycy5wb3AoJ19fd2Vha3JlZl9fJywgTm9uZSkKKyAgICAgICAgcmV0dXJuIG1ldGFjbGFzcyhjbHMuX19uYW1lX18sIGNscy5fX2Jhc2VzX18sIG9yaWdfdmFycykKKyAgICByZXR1cm4gd3JhcHBlcgorCisKK2RlZiBweXRob25fMl91bmljb2RlX2NvbXBhdGlibGUoa2xhc3MpOgorICAgICIiIgorICAgIEEgZGVjb3JhdG9yIHRoYXQgZGVmaW5lcyBfX3VuaWNvZGVfXyBhbmQgX19zdHJfXyBtZXRob2RzIHVuZGVyIFB5dGhvbiAyLgorICAgIFVuZGVyIFB5dGhvbiAzIGl0IGRvZXMgbm90aGluZy4KKworICAgIFRvIHN1cHBvcnQgUHl0aG9uIDIgYW5kIDMgd2l0aCBhIHNpbmdsZSBjb2RlIGJhc2UsIGRlZmluZSBhIF9fc3RyX18gbWV0aG9kCisgICAgcmV0dXJuaW5nIHRleHQgYW5kIGFwcGx5IHRoaXMgZGVjb3JhdG9yIHRvIHRoZSBjbGFzcy4KKyAgICAiIiIKKyAgICBpZiBQWTI6CisgICAgICAgIGlmICdfX3N0cl9fJyBub3QgaW4ga2xhc3MuX19kaWN0X186CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJAcHl0aG9uXzJfdW5pY29kZV9jb21wYXRpYmxlIGNhbm5vdCBiZSBhcHBsaWVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvICVzIGJlY2F1c2UgaXQgZG9lc24ndCBkZWZpbmUgX19zdHJfXygpLiIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrbGFzcy5fX25hbWVfXykKKyAgICAgICAga2xhc3MuX191bmljb2RlX18gPSBrbGFzcy5fX3N0cl9fCisgICAgICAgIGtsYXNzLl9fc3RyX18gPSBsYW1iZGEgc2VsZjogc2VsZi5fX3VuaWNvZGVfXygpLmVuY29kZSgndXRmLTgnKQorICAgIHJldHVybiBrbGFzcworCisKKyMgQ29tcGxldGUgdGhlIG1vdmVzIGltcGxlbWVudGF0aW9uLgorIyBUaGlzIGNvZGUgaXMgYXQgdGhlIGVuZCBvZiB0aGlzIG1vZHVsZSB0byBzcGVlZCB1cCBtb2R1bGUgbG9hZGluZy4KKyMgVHVybiB0aGlzIG1vZHVsZSBpbnRvIGEgcGFja2FnZS4KK19fcGF0aF9fID0gW10gICMgcmVxdWlyZWQgZm9yIFBFUCAzMDIgYW5kIFBFUCA0NTEKK19fcGFja2FnZV9fID0gX19uYW1lX18gICMgc2VlIFBFUCAzNjYgQFJlc2VydmVkQXNzaWdubWVudAoraWYgZ2xvYmFscygpLmdldCgiX19zcGVjX18iKSBpcyBub3QgTm9uZToKKyAgICBfX3NwZWNfXy5zdWJtb2R1bGVfc2VhcmNoX2xvY2F0aW9ucyA9IFtdICAjIFBFUCA0NTEgQFVuZGVmaW5lZFZhcmlhYmxlCisjIFJlbW92ZSBvdGhlciBzaXggbWV0YSBwYXRoIGltcG9ydGVycywgc2luY2UgdGhleSBjYXVzZSBwcm9ibGVtcy4gVGhpcyBjYW4KKyMgaGFwcGVuIGlmIHNpeCBpcyByZW1vdmVkIGZyb20gc3lzLm1vZHVsZXMgYW5kIHRoZW4gcmVsb2FkZWQuIChTZXR1cHRvb2xzIGRvZXMKKyMgdGhpcyBmb3Igc29tZSByZWFzb24uKQoraWYgc3lzLm1ldGFfcGF0aDoKKyAgICBmb3IgaSwgaW1wb3J0ZXIgaW4gZW51bWVyYXRlKHN5cy5tZXRhX3BhdGgpOgorICAgICAgICAjIEhlcmUncyBzb21lIHJlYWwgbmFzdGluZXNzOiBBbm90aGVyICJpbnN0YW5jZSIgb2YgdGhlIHNpeCBtb2R1bGUgbWlnaHQKKyAgICAgICAgIyBiZSBmbG9hdGluZyBhcm91bmQuIFRoZXJlZm9yZSwgd2UgY2FuJ3QgdXNlIGlzaW5zdGFuY2UoKSB0byBjaGVjayBmb3IKKyAgICAgICAgIyB0aGUgc2l4IG1ldGEgcGF0aCBpbXBvcnRlciwgc2luY2UgdGhlIG90aGVyIHNpeCBpbnN0YW5jZSB3aWxsIGhhdmUKKyAgICAgICAgIyBpbnNlcnRlZCBhbiBpbXBvcnRlciB3aXRoIGRpZmZlcmVudCBjbGFzcy4KKyAgICAgICAgaWYgKHR5cGUoaW1wb3J0ZXIpLl9fbmFtZV9fID09ICJfU2l4TWV0YVBhdGhJbXBvcnRlciIgYW5kCisgICAgICAgICAgICBpbXBvcnRlci5uYW1lID09IF9fbmFtZV9fKToKKyAgICAgICAgICAgIGRlbCBzeXMubWV0YV9wYXRoW2ldCisgICAgICAgICAgICBicmVhaworICAgIGRlbCBpLCBpbXBvcnRlcgorIyBGaW5hbGx5LCBhZGQgdGhlIGltcG9ydGVyIHRvIHRoZSBtZXRhIHBhdGggaW1wb3J0IGhvb2suCitzeXMubWV0YV9wYXRoLmFwcGVuZChfaW1wb3J0ZXIpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvc2l4L3Rlc3Rfc2l4LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC90ZXN0X3NpeC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmE4Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3NpeC90ZXN0X3NpeC5weQpAQCAtMCwwICsxLDg1OCBAQAoraW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgc3lzCitpbXBvcnQgdHlwZXMKK2ltcG9ydCB1bml0dGVzdAorCitpbXBvcnQgcHkKKworaW1wb3J0IHNpeAorCisKK2RlZiB0ZXN0X2FkZF9kb2MoKToKKyAgICBkZWYgZigpOgorICAgICAgICAiIiJJY2t5IGRvYyIiIgorICAgICAgICBwYXNzCisgICAgc2l4Ll9hZGRfZG9jKGYsICIiIk5ldyBkb2MiIiIpCisgICAgYXNzZXJ0IGYuX19kb2NfXyA9PSAiTmV3IGRvYyIKKworCitkZWYgdGVzdF9pbXBvcnRfbW9kdWxlKCk6CisgICAgZnJvbSBsb2dnaW5nIGltcG9ydCBoYW5kbGVycworICAgIG0gPSBzaXguX2ltcG9ydF9tb2R1bGUoImxvZ2dpbmcuaGFuZGxlcnMiKQorICAgIGFzc2VydCBtIGlzIGhhbmRsZXJzCisKKworZGVmIHRlc3RfaW50ZWdlcl90eXBlcygpOgorICAgIGFzc2VydCBpc2luc3RhbmNlKDEsIHNpeC5pbnRlZ2VyX3R5cGVzKQorICAgIGFzc2VydCBpc2luc3RhbmNlKC0xLCBzaXguaW50ZWdlcl90eXBlcykKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShzaXguTUFYU0laRSArIDIzLCBzaXguaW50ZWdlcl90eXBlcykKKyAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2UoLjEsIHNpeC5pbnRlZ2VyX3R5cGVzKQorCisKK2RlZiB0ZXN0X3N0cmluZ190eXBlcygpOgorICAgIGFzc2VydCBpc2luc3RhbmNlKCJoaSIsIHNpeC5zdHJpbmdfdHlwZXMpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2l4LnUoImhpIiksIHNpeC5zdHJpbmdfdHlwZXMpCisgICAgYXNzZXJ0IGlzc3ViY2xhc3Moc2l4LnRleHRfdHlwZSwgc2l4LnN0cmluZ190eXBlcykKKworCitkZWYgdGVzdF9jbGFzc190eXBlcygpOgorICAgIGNsYXNzIFg6CisgICAgICAgIHBhc3MKKyAgICBjbGFzcyBZKG9iamVjdCk6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShYLCBzaXguY2xhc3NfdHlwZXMpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoWSwgc2l4LmNsYXNzX3R5cGVzKQorICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShYKCksIHNpeC5jbGFzc190eXBlcykKKworCitkZWYgdGVzdF90ZXh0X3R5cGUoKToKKyAgICBhc3NlcnQgdHlwZShzaXgudSgiaGkiKSkgaXMgc2l4LnRleHRfdHlwZQorCisKK2RlZiB0ZXN0X2JpbmFyeV90eXBlKCk6CisgICAgYXNzZXJ0IHR5cGUoc2l4LmIoImhpIikpIGlzIHNpeC5iaW5hcnlfdHlwZQorCisKK2RlZiB0ZXN0X01BWFNJWkUoKToKKyAgICB0cnk6CisgICAgICAgICMgVGhpcyBzaG91bGRuJ3QgcmFpc2UgYW4gb3ZlcmZsb3cgZXJyb3IuCisgICAgICAgIHNpeC5NQVhTSVpFLl9faW5kZXhfXygpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAjIEJlZm9yZSBQeXRob24gMi42LgorICAgICAgICBwYXNzCisgICAgcHkudGVzdC5yYWlzZXMoCisgICAgICAgIChWYWx1ZUVycm9yLCBPdmVyZmxvd0Vycm9yKSwKKyAgICAgICAgb3BlcmF0b3IubXVsLCBbTm9uZV0sIHNpeC5NQVhTSVpFICsgMSkKKworCitkZWYgdGVzdF9sYXp5KCk6CisgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgaHRtbF9uYW1lID0gImh0bWwucGFyc2VyIgorICAgIGVsc2U6CisgICAgICAgIGh0bWxfbmFtZSA9ICJIVE1MUGFyc2VyIgorICAgIGFzc2VydCBodG1sX25hbWUgbm90IGluIHN5cy5tb2R1bGVzCisgICAgbW9kID0gc2l4Lm1vdmVzLmh0bWxfcGFyc2VyCisgICAgYXNzZXJ0IHN5cy5tb2R1bGVzW2h0bWxfbmFtZV0gaXMgbW9kCisgICAgYXNzZXJ0ICJodG1scGFyc2VyIiBub3QgaW4gc2l4Ll9Nb3ZlZEl0ZW1zLl9fZGljdF9fCisKKwordHJ5OgorICAgIGltcG9ydCBfdGtpbnRlcgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGhhdmVfdGtpbnRlciA9IEZhbHNlCitlbHNlOgorICAgIGhhdmVfdGtpbnRlciA9IFRydWUKKworaGF2ZV9nZGJtID0gVHJ1ZQordHJ5OgorICAgIGltcG9ydCBnZGJtCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgZGJtLmdudQorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgaGF2ZV9nZGJtID0gRmFsc2UKKworQHB5LnRlc3QubWFyay5wYXJhbWV0cml6ZSgiaXRlbV9uYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW0ubmFtZSBmb3IgaXRlbSBpbiBzaXguX21vdmVkX2F0dHJpYnV0ZXNdKQorZGVmIHRlc3RfbW92ZV9pdGVtcyhpdGVtX25hbWUpOgorICAgICIiIkVuc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgbG9hZHMgY29ycmVjdGx5LiIiIgorICAgIHRyeToKKyAgICAgICAgaXRlbSA9IGdldGF0dHIoc2l4Lm1vdmVzLCBpdGVtX25hbWUpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgdHlwZXMuTW9kdWxlVHlwZSk6CisgICAgICAgICAgICBfX2ltcG9ydF9fKCJzaXgubW92ZXMuIiArIGl0ZW1fbmFtZSkKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgIGlmIGl0ZW1fbmFtZSA9PSAiemlwX2xvbmdlc3QiIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDIsIDYpOgorICAgICAgICAgICAgcHkudGVzdC5za2lwKCJ6aXBfbG9uZ2VzdCBvbmx5IGF2YWlsYWJsZSBvbiAyLjYrIikKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIGlmIGl0ZW1fbmFtZSA9PSAid2lucmVnIiBhbmQgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKToKKyAgICAgICAgICAgIHB5LnRlc3Quc2tpcCgiV2luZG93cyBvbmx5IG1vZHVsZSIpCisgICAgICAgIGlmIGl0ZW1fbmFtZS5zdGFydHN3aXRoKCJ0a2ludGVyIik6CisgICAgICAgICAgICBpZiBub3QgaGF2ZV90a2ludGVyOgorICAgICAgICAgICAgICAgIHB5LnRlc3Quc2tpcCgicmVxdWlyZXMgdGtpbnRlciIpCisgICAgICAgICAgICBpZiBpdGVtX25hbWUgPT0gInRraW50ZXJfdHRrIiBhbmQgc3lzLnZlcnNpb25faW5mb1s6Ml0gPD0gKDIsIDYpOgorICAgICAgICAgICAgICAgIHB5LnRlc3Quc2tpcCgidHRrIG9ubHkgYXZhaWxhYmxlIG9uIDIuNysiKQorICAgICAgICBpZiBpdGVtX25hbWUuc3RhcnRzd2l0aCgiZGJtX2dudSIpIGFuZCBub3QgaGF2ZV9nZGJtOgorICAgICAgICAgICAgcHkudGVzdC5za2lwKCJyZXF1aXJlcyBnZGJtIikKKyAgICAgICAgcmFpc2UKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMiwgNik6CisgICAgICAgIGFzc2VydCBpdGVtX25hbWUgaW4gZGlyKHNpeC5tb3ZlcykKKworCitAcHkudGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpdGVtX25hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbS5uYW1lIGZvciBpdGVtIGluIHNpeC5fdXJsbGliX3BhcnNlX21vdmVkX2F0dHJpYnV0ZXNdKQorZGVmIHRlc3RfbW92ZV9pdGVtc191cmxsaWJfcGFyc2UoaXRlbV9uYW1lKToKKyAgICAiIiJFbnN1cmUgdGhhdCBldmVyeXRoaW5nIGxvYWRzIGNvcnJlY3RseS4iIiIKKyAgICBpZiBpdGVtX25hbWUgPT0gIlBhcnNlUmVzdWx0IiBhbmQgc3lzLnZlcnNpb25faW5mbyA8ICgyLCA1KToKKyAgICAgICAgcHkudGVzdC5za2lwKCJQYXJzZVJlc3VsdCBpcyBvbmx5IGZvdW5kIG9uIDIuNSsiKQorICAgIGlmIGl0ZW1fbmFtZSBpbiAoInBhcnNlX3FzIiwgInBhcnNlX3FzbCIpIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDIsIDYpOgorICAgICAgICBweS50ZXN0LnNraXAoInBhcnNlX3FzW2xdIGlzIG5ldyBpbiAyLjYiKQorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bOjJdID49ICgyLCA2KToKKyAgICAgICAgYXNzZXJ0IGl0ZW1fbmFtZSBpbiBkaXIoc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSkKKyAgICBnZXRhdHRyKHNpeC5tb3Zlcy51cmxsaWIucGFyc2UsIGl0ZW1fbmFtZSkKKworCitAcHkudGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpdGVtX25hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbS5uYW1lIGZvciBpdGVtIGluIHNpeC5fdXJsbGliX2Vycm9yX21vdmVkX2F0dHJpYnV0ZXNdKQorZGVmIHRlc3RfbW92ZV9pdGVtc191cmxsaWJfZXJyb3IoaXRlbV9uYW1lKToKKyAgICAiIiJFbnN1cmUgdGhhdCBldmVyeXRoaW5nIGxvYWRzIGNvcnJlY3RseS4iIiIKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMiwgNik6CisgICAgICAgIGFzc2VydCBpdGVtX25hbWUgaW4gZGlyKHNpeC5tb3Zlcy51cmxsaWIuZXJyb3IpCisgICAgZ2V0YXR0cihzaXgubW92ZXMudXJsbGliLmVycm9yLCBpdGVtX25hbWUpCisKKworQHB5LnRlc3QubWFyay5wYXJhbWV0cml6ZSgiaXRlbV9uYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW0ubmFtZSBmb3IgaXRlbSBpbiBzaXguX3VybGxpYl9yZXF1ZXN0X21vdmVkX2F0dHJpYnV0ZXNdKQorZGVmIHRlc3RfbW92ZV9pdGVtc191cmxsaWJfcmVxdWVzdChpdGVtX25hbWUpOgorICAgICIiIkVuc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgbG9hZHMgY29ycmVjdGx5LiIiIgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bOjJdID49ICgyLCA2KToKKyAgICAgICAgYXNzZXJ0IGl0ZW1fbmFtZSBpbiBkaXIoc2l4Lm1vdmVzLnVybGxpYi5yZXF1ZXN0KQorICAgIGdldGF0dHIoc2l4Lm1vdmVzLnVybGxpYi5yZXF1ZXN0LCBpdGVtX25hbWUpCisKKworQHB5LnRlc3QubWFyay5wYXJhbWV0cml6ZSgiaXRlbV9uYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW0ubmFtZSBmb3IgaXRlbSBpbiBzaXguX3VybGxpYl9yZXNwb25zZV9tb3ZlZF9hdHRyaWJ1dGVzXSkKK2RlZiB0ZXN0X21vdmVfaXRlbXNfdXJsbGliX3Jlc3BvbnNlKGl0ZW1fbmFtZSk6CisgICAgIiIiRW5zdXJlIHRoYXQgZXZlcnl0aGluZyBsb2FkcyBjb3JyZWN0bHkuIiIiCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1s6Ml0gPj0gKDIsIDYpOgorICAgICAgICBhc3NlcnQgaXRlbV9uYW1lIGluIGRpcihzaXgubW92ZXMudXJsbGliLnJlc3BvbnNlKQorICAgIGdldGF0dHIoc2l4Lm1vdmVzLnVybGxpYi5yZXNwb25zZSwgaXRlbV9uYW1lKQorCisKK0BweS50ZXN0Lm1hcmsucGFyYW1ldHJpemUoIml0ZW1fbmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtLm5hbWUgZm9yIGl0ZW0gaW4gc2l4Ll91cmxsaWJfcm9ib3RwYXJzZXJfbW92ZWRfYXR0cmlidXRlc10pCitkZWYgdGVzdF9tb3ZlX2l0ZW1zX3VybGxpYl9yb2JvdHBhcnNlcihpdGVtX25hbWUpOgorICAgICIiIkVuc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgbG9hZHMgY29ycmVjdGx5LiIiIgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bOjJdID49ICgyLCA2KToKKyAgICAgICAgYXNzZXJ0IGl0ZW1fbmFtZSBpbiBkaXIoc2l4Lm1vdmVzLnVybGxpYi5yb2JvdHBhcnNlcikKKyAgICBnZXRhdHRyKHNpeC5tb3Zlcy51cmxsaWIucm9ib3RwYXJzZXIsIGl0ZW1fbmFtZSkKKworCitkZWYgdGVzdF9pbXBvcnRfbW92ZXNfZXJyb3JfMSgpOgorICAgIGZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgorICAgIGZyb20gc2l4IGltcG9ydCBtb3ZlcworICAgICMgSW4gMS40LjE6IEF0dHJpYnV0ZUVycm9yOiAnTW9kdWxlX3NpeF9tb3Zlc191cmxsaWJfcGFyc2UnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICd1cmxqb2luJworICAgIGFzc2VydCBtb3Zlcy51cmxsaWIucGFyc2UudXJsam9pbgorCisKK2RlZiB0ZXN0X2ltcG9ydF9tb3Zlc19lcnJvcl8yKCk6CisgICAgZnJvbSBzaXggaW1wb3J0IG1vdmVzCisgICAgYXNzZXJ0IG1vdmVzLnVybGxpYi5wYXJzZS51cmxqb2luCisgICAgIyBJbiAxLjQuMTogSW1wb3J0RXJyb3I6IGNhbm5vdCBpbXBvcnQgbmFtZSB1cmxqb2luCisgICAgZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCisKKworZGVmIHRlc3RfaW1wb3J0X21vdmVzX2Vycm9yXzMoKToKKyAgICBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KKyAgICAjIEluIDEuNC4xOiBJbXBvcnRFcnJvcjogY2Fubm90IGltcG9ydCBuYW1lIHVybGpvaW4KKyAgICBmcm9tIHNpeC5tb3Zlcy51cmxsaWJfcGFyc2UgaW1wb3J0IHVybGpvaW4KKworCitkZWYgdGVzdF9mcm9tX2ltcG9ydHMoKToKKyAgICBmcm9tIHNpeC5tb3Zlcy5xdWV1ZSBpbXBvcnQgUXVldWUKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShRdWV1ZSwgc2l4LmNsYXNzX3R5cGVzKQorICAgIGZyb20gc2l4Lm1vdmVzLmNvbmZpZ3BhcnNlciBpbXBvcnQgQ29uZmlnUGFyc2VyCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoQ29uZmlnUGFyc2VyLCBzaXguY2xhc3NfdHlwZXMpCisKKworZGVmIHRlc3RfZmlsdGVyKCk6CisgICAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IGZpbHRlcgorICAgIGYgPSBmaWx0ZXIobGFtYmRhIHg6IHggJSAyLCByYW5nZSgxMCkpCisgICAgYXNzZXJ0IHNpeC5hZHZhbmNlX2l0ZXJhdG9yKGYpID09IDEKKworCitkZWYgdGVzdF9maWx0ZXJfZmFsc2UoKToKKyAgICBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgZmlsdGVyZmFsc2UKKyAgICBmID0gZmlsdGVyZmFsc2UobGFtYmRhIHg6IHggJSAzLCByYW5nZSgxMCkpCisgICAgYXNzZXJ0IHNpeC5hZHZhbmNlX2l0ZXJhdG9yKGYpID09IDAKKyAgICBhc3NlcnQgc2l4LmFkdmFuY2VfaXRlcmF0b3IoZikgPT0gMworICAgIGFzc2VydCBzaXguYWR2YW5jZV9pdGVyYXRvcihmKSA9PSA2CisKK2RlZiB0ZXN0X21hcCgpOgorICAgIGZyb20gc2l4Lm1vdmVzIGltcG9ydCBtYXAKKyAgICBhc3NlcnQgc2l4LmFkdmFuY2VfaXRlcmF0b3IobWFwKGxhbWJkYSB4OiB4ICsgMSwgcmFuZ2UoMikpKSA9PSAxCisKKworZGVmIHRlc3RfemlwKCk6CisgICAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IHppcAorICAgIGFzc2VydCBzaXguYWR2YW5jZV9pdGVyYXRvcih6aXAocmFuZ2UoMiksIHJhbmdlKDIpKSkgPT0gKDAsIDApCisKKworQHB5LnRlc3QubWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2luZm8gPCAoMiwgNikiKQorZGVmIHRlc3RfemlwX2xvbmdlc3QoKToKKyAgICBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgemlwX2xvbmdlc3QKKyAgICBpdCA9IHppcF9sb25nZXN0KHJhbmdlKDIpLCByYW5nZSgxKSkKKworICAgIGFzc2VydCBzaXguYWR2YW5jZV9pdGVyYXRvcihpdCkgPT0gKDAsIDApCisgICAgYXNzZXJ0IHNpeC5hZHZhbmNlX2l0ZXJhdG9yKGl0KSA9PSAoMSwgTm9uZSkKKworCitjbGFzcyBUZXN0Q3VzdG9taXplZE1vdmVzOgorCisgICAgZGVmIHRlYXJkb3duX21ldGhvZChzZWxmLCBtZXRoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsIHNpeC5fTW92ZWRJdGVtcy5zcGFtCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsIHNpeC5tb3Zlcy5fX2RpY3RfX1sic3BhbSJdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKworCisgICAgZGVmIHRlc3RfbW92ZWRfYXR0cmlidXRlKHNlbGYpOgorICAgICAgICBhdHRyID0gc2l4Lk1vdmVkQXR0cmlidXRlKCJzcGFtIiwgImZvbyIsICJiYXIiKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgYXNzZXJ0IGF0dHIubW9kID09ICJiYXIiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgYXR0ci5tb2QgPT0gImZvbyIKKyAgICAgICAgYXNzZXJ0IGF0dHIuYXR0ciA9PSAic3BhbSIKKyAgICAgICAgYXR0ciA9IHNpeC5Nb3ZlZEF0dHJpYnV0ZSgic3BhbSIsICJmb28iLCAiYmFyIiwgImxlbW1hIikKKyAgICAgICAgYXNzZXJ0IGF0dHIuYXR0ciA9PSAibGVtbWEiCisgICAgICAgIGF0dHIgPSBzaXguTW92ZWRBdHRyaWJ1dGUoInNwYW0iLCAiZm9vIiwgImJhciIsICJsZW1tYSIsICJ0aGVvcm0iKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgYXNzZXJ0IGF0dHIuYXR0ciA9PSAidGhlb3JtIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGF0dHIuYXR0ciA9PSAibGVtbWEiCisKKworICAgIGRlZiB0ZXN0X21vdmVkX21vZHVsZShzZWxmKToKKyAgICAgICAgYXR0ciA9IHNpeC5Nb3ZlZE1vZHVsZSgic3BhbSIsICJmb28iKQorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgYXNzZXJ0IGF0dHIubW9kID09ICJzcGFtIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGF0dHIubW9kID09ICJmb28iCisgICAgICAgIGF0dHIgPSBzaXguTW92ZWRNb2R1bGUoInNwYW0iLCAiZm9vIiwgImJhciIpCisgICAgICAgIGlmIHNpeC5QWTM6CisgICAgICAgICAgICBhc3NlcnQgYXR0ci5tb2QgPT0gImJhciIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBhdHRyLm1vZCA9PSAiZm9vIgorCisKKyAgICBkZWYgdGVzdF9jdXN0b21fbW92ZV9tb2R1bGUoc2VsZik6CisgICAgICAgIGF0dHIgPSBzaXguTW92ZWRNb2R1bGUoInNwYW0iLCAic2l4IiwgInNpeCIpCisgICAgICAgIHNpeC5hZGRfbW92ZShhdHRyKQorICAgICAgICBzaXgucmVtb3ZlX21vdmUoInNwYW0iKQorICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2l4Lm1vdmVzLCAic3BhbSIpCisgICAgICAgIGF0dHIgPSBzaXguTW92ZWRNb2R1bGUoInNwYW0iLCAic2l4IiwgInNpeCIpCisgICAgICAgIHNpeC5hZGRfbW92ZShhdHRyKQorICAgICAgICBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgc3BhbQorICAgICAgICBhc3NlcnQgc3BhbSBpcyBzaXgKKyAgICAgICAgc2l4LnJlbW92ZV9tb3ZlKCJzcGFtIikKKyAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHNpeC5tb3ZlcywgInNwYW0iKQorCisKKyAgICBkZWYgdGVzdF9jdXN0b21fbW92ZV9hdHRyaWJ1dGUoc2VsZik6CisgICAgICAgIGF0dHIgPSBzaXguTW92ZWRBdHRyaWJ1dGUoInNwYW0iLCAic2l4IiwgInNpeCIsICJ1IiwgInUiKQorICAgICAgICBzaXguYWRkX21vdmUoYXR0cikKKyAgICAgICAgc2l4LnJlbW92ZV9tb3ZlKCJzcGFtIikKKyAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHNpeC5tb3ZlcywgInNwYW0iKQorICAgICAgICBhdHRyID0gc2l4Lk1vdmVkQXR0cmlidXRlKCJzcGFtIiwgInNpeCIsICJzaXgiLCAidSIsICJ1IikKKyAgICAgICAgc2l4LmFkZF9tb3ZlKGF0dHIpCisgICAgICAgIGZyb20gc2l4Lm1vdmVzIGltcG9ydCBzcGFtCisgICAgICAgIGFzc2VydCBzcGFtIGlzIHNpeC51CisgICAgICAgIHNpeC5yZW1vdmVfbW92ZSgic3BhbSIpCisgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihzaXgubW92ZXMsICJzcGFtIikKKworCisgICAgZGVmIHRlc3RfZW1wdHlfcmVtb3ZlKHNlbGYpOgorICAgICAgICBweS50ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2l4LnJlbW92ZV9tb3ZlLCAiZWdncyIpCisKKworZGVmIHRlc3RfZ2V0X3VuYm91bmRfZnVuY3Rpb24oKToKKyAgICBjbGFzcyBYKG9iamVjdCk6CisgICAgICAgIGRlZiBtKHNlbGYpOgorICAgICAgICAgICAgcGFzcworICAgIGFzc2VydCBzaXguZ2V0X3VuYm91bmRfZnVuY3Rpb24oWC5tKSBpcyBYLl9fZGljdF9fWyJtIl0KKworCitkZWYgdGVzdF9nZXRfbWV0aG9kX3NlbGYoKToKKyAgICBjbGFzcyBYKG9iamVjdCk6CisgICAgICAgIGRlZiBtKHNlbGYpOgorICAgICAgICAgICAgcGFzcworICAgIHggPSBYKCkKKyAgICBhc3NlcnQgc2l4LmdldF9tZXRob2Rfc2VsZih4Lm0pIGlzIHgKKyAgICBweS50ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2l4LmdldF9tZXRob2Rfc2VsZiwgNDIpCisKKworZGVmIHRlc3RfZ2V0X21ldGhvZF9mdW5jdGlvbigpOgorICAgIGNsYXNzIFgob2JqZWN0KToKKyAgICAgICAgZGVmIG0oc2VsZik6CisgICAgICAgICAgICBwYXNzCisgICAgeCA9IFgoKQorICAgIGFzc2VydCBzaXguZ2V0X21ldGhvZF9mdW5jdGlvbih4Lm0pIGlzIFguX19kaWN0X19bIm0iXQorICAgIHB5LnRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzaXguZ2V0X21ldGhvZF9mdW5jdGlvbiwgaGFzYXR0cikKKworCitkZWYgdGVzdF9nZXRfZnVuY3Rpb25fY2xvc3VyZSgpOgorICAgIGRlZiBmKCk6CisgICAgICAgIHggPSA0MgorICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgcmV0dXJuIHgKKyAgICAgICAgcmV0dXJuIGcKKyAgICBjZWxsID0gc2l4LmdldF9mdW5jdGlvbl9jbG9zdXJlKGYoKSlbMF0KKyAgICBhc3NlcnQgdHlwZShjZWxsKS5fX25hbWVfXyA9PSAiY2VsbCIKKworCitkZWYgdGVzdF9nZXRfZnVuY3Rpb25fY29kZSgpOgorICAgIGRlZiBmKCk6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShzaXguZ2V0X2Z1bmN0aW9uX2NvZGUoZiksIHR5cGVzLkNvZGVUeXBlKQorICAgIGlmIG5vdCBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIik6CisgICAgICAgIHB5LnRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzaXguZ2V0X2Z1bmN0aW9uX2NvZGUsIGhhc2F0dHIpCisKKworZGVmIHRlc3RfZ2V0X2Z1bmN0aW9uX2RlZmF1bHRzKCk6CisgICAgZGVmIGYoeCwgeT0zLCBiPTQpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IHNpeC5nZXRfZnVuY3Rpb25fZGVmYXVsdHMoZikgPT0gKDMsIDQpCisKKworZGVmIHRlc3RfZ2V0X2Z1bmN0aW9uX2dsb2JhbHMoKToKKyAgICBkZWYgZigpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IHNpeC5nZXRfZnVuY3Rpb25fZ2xvYmFscyhmKSBpcyBnbG9iYWxzKCkKKworCitkZWYgdGVzdF9kaWN0aW9uYXJ5X2l0ZXJhdG9ycyhtb25rZXlwYXRjaCk6CisgICAgZGVmIHN0b2NrX21ldGhvZF9uYW1lKGl0ZXJ3aGF0KToKKyAgICAgICAgIiIiR2l2ZW4gYSBtZXRob2Qgc3VmZml4IGxpa2UgImxpc3RzIiBvciAidmFsdWVzIiwgcmV0dXJuIHRoZSBuYW1lCisgICAgICAgIG9mIHRoZSBkaWN0IG1ldGhvZCB0aGF0IGRlbGl2ZXJzIHRob3NlIG9uIHRoZSB2ZXJzaW9uIG9mIFB5dGhvbgorICAgICAgICB3ZSdyZSBydW5uaW5nIGluLiIiIgorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgcmV0dXJuIGl0ZXJ3aGF0CisgICAgICAgIHJldHVybiAnaXRlcicgKyBpdGVyd2hhdAorCisgICAgY2xhc3MgTXlEaWN0KGRpY3QpOgorICAgICAgICBpZiBub3Qgc2l4LlBZMzoKKyAgICAgICAgICAgIGRlZiBsaXN0cyhzZWxmLCAqKmt3KToKKyAgICAgICAgICAgICAgICByZXR1cm4gWzEsIDIsIDNdCisgICAgICAgIGRlZiBpdGVybGlzdHMoc2VsZiwgKiprdyk6CisgICAgICAgICAgICByZXR1cm4gaXRlcihbMSwgMiwgM10pCisgICAgZiA9IE15RGljdC5pdGVybGlzdHMKKyAgICBkZWwgTXlEaWN0Lml0ZXJsaXN0cworICAgIHNldGF0dHIoTXlEaWN0LCBzdG9ja19tZXRob2RfbmFtZSgnbGlzdHMnKSwgZikKKworICAgIGQgPSBNeURpY3QoemlwKHJhbmdlKDEwKSwgcmV2ZXJzZWQocmFuZ2UoMTApKSkpCisgICAgZm9yIG5hbWUgaW4gImtleXMiLCAidmFsdWVzIiwgIml0ZW1zIiwgImxpc3RzIjoKKyAgICAgICAgbWV0aCA9IGdldGF0dHIoc2l4LCAiaXRlciIgKyBuYW1lKQorICAgICAgICBpdCA9IG1ldGgoZCkKKyAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKGl0LCBsaXN0KQorICAgICAgICBhc3NlcnQgbGlzdChpdCkgPT0gbGlzdChnZXRhdHRyKGQsIG5hbWUpKCkpCisgICAgICAgIHB5LnRlc3QucmFpc2VzKFN0b3BJdGVyYXRpb24sIHNpeC5hZHZhbmNlX2l0ZXJhdG9yLCBpdCkKKyAgICAgICAgcmVjb3JkID0gW10KKyAgICAgICAgZGVmIHdpdGhfa3coKmFyZ3MsICoqa3cpOgorICAgICAgICAgICAgcmVjb3JkLmFwcGVuZChrd1sia3ciXSkKKyAgICAgICAgICAgIHJldHVybiBvbGQoKmFyZ3MpCisgICAgICAgIG9sZCA9IGdldGF0dHIoTXlEaWN0LCBzdG9ja19tZXRob2RfbmFtZShuYW1lKSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihNeURpY3QsIHN0b2NrX21ldGhvZF9uYW1lKG5hbWUpLCB3aXRoX2t3KQorICAgICAgICBtZXRoKGQsIGt3PTQyKQorICAgICAgICBhc3NlcnQgcmVjb3JkID09IFs0Ml0KKyAgICAgICAgbW9ua2V5cGF0Y2gudW5kbygpCisKKworQHB5LnRlc3QubWFyay5za2lwaWYoc3lzLnZlcnNpb25faW5mb1s6Ml0gPCAoMiwgNyksCisgICAgICAgICAgICAgICAgcmVhc29uPSJ2aWV3IG1ldGhvZHMgb24gZGljdGlvbmFyaWVzIG9ubHkgYXZhaWxhYmxlIG9uIDIuNysiKQorZGVmIHRlc3RfZGljdGlvbmFyeV92aWV3cygpOgorICAgIGRlZiBzdG9ja19tZXRob2RfbmFtZSh2aWV3d2hhdCk6CisgICAgICAgICIiIkdpdmVuIGEgbWV0aG9kIHN1ZmZpeCBsaWtlICJrZXlzIiBvciAidmFsdWVzIiwgcmV0dXJuIHRoZSBuYW1lCisgICAgICAgIG9mIHRoZSBkaWN0IG1ldGhvZCB0aGF0IGRlbGl2ZXJzIHRob3NlIG9uIHRoZSB2ZXJzaW9uIG9mIFB5dGhvbgorICAgICAgICB3ZSdyZSBydW5uaW5nIGluLiIiIgorICAgICAgICBpZiBzaXguUFkzOgorICAgICAgICAgICAgcmV0dXJuIHZpZXd3aGF0CisgICAgICAgIHJldHVybiAndmlldycgKyB2aWV3d2hhdAorCisgICAgZCA9IGRpY3QoemlwKHJhbmdlKDEwKSwgKHJhbmdlKDExLCAyMCkpKSkKKyAgICBmb3IgbmFtZSBpbiAia2V5cyIsICJ2YWx1ZXMiLCAiaXRlbXMiOgorICAgICAgICBtZXRoID0gZ2V0YXR0cihzaXgsICJ2aWV3IiArIG5hbWUpCisgICAgICAgIHZpZXcgPSBtZXRoKGQpCisgICAgICAgIGFzc2VydCBzZXQodmlldykgPT0gc2V0KGdldGF0dHIoZCwgbmFtZSkoKSkKKworCitkZWYgdGVzdF9hZHZhbmNlX2l0ZXJhdG9yKCk6CisgICAgYXNzZXJ0IHNpeC5uZXh0IGlzIHNpeC5hZHZhbmNlX2l0ZXJhdG9yCisgICAgbCA9IFsxLCAyXQorICAgIGl0ID0gaXRlcihsKQorICAgIGFzc2VydCBzaXgubmV4dChpdCkgPT0gMQorICAgIGFzc2VydCBzaXgubmV4dChpdCkgPT0gMgorICAgIHB5LnRlc3QucmFpc2VzKFN0b3BJdGVyYXRpb24sIHNpeC5uZXh0LCBpdCkKKyAgICBweS50ZXN0LnJhaXNlcyhTdG9wSXRlcmF0aW9uLCBzaXgubmV4dCwgaXQpCisKKworZGVmIHRlc3RfaXRlcmF0b3IoKToKKyAgICBjbGFzcyBteWl0ZXIoc2l4Lkl0ZXJhdG9yKToKKyAgICAgICAgZGVmIF9fbmV4dF9fKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIDEzCisgICAgYXNzZXJ0IHNpeC5hZHZhbmNlX2l0ZXJhdG9yKG15aXRlcigpKSA9PSAxMworICAgIGNsYXNzIG15aXRlcnN1YihteWl0ZXIpOgorICAgICAgICBkZWYgX19uZXh0X18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gMTQKKyAgICBhc3NlcnQgc2l4LmFkdmFuY2VfaXRlcmF0b3IobXlpdGVyc3ViKCkpID09IDE0CisKKworZGVmIHRlc3RfY2FsbGFibGUoKToKKyAgICBjbGFzcyBYOgorICAgICAgICBkZWYgX19jYWxsX18oc2VsZik6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRlZiBtZXRob2Qoc2VsZik6CisgICAgICAgICAgICBwYXNzCisgICAgYXNzZXJ0IHNpeC5jYWxsYWJsZShYKQorICAgIGFzc2VydCBzaXguY2FsbGFibGUoWCgpKQorICAgIGFzc2VydCBzaXguY2FsbGFibGUodGVzdF9jYWxsYWJsZSkKKyAgICBhc3NlcnQgc2l4LmNhbGxhYmxlKGhhc2F0dHIpCisgICAgYXNzZXJ0IHNpeC5jYWxsYWJsZShYLm1ldGhvZCkKKyAgICBhc3NlcnQgc2l4LmNhbGxhYmxlKFgoKS5tZXRob2QpCisgICAgYXNzZXJ0IG5vdCBzaXguY2FsbGFibGUoNCkKKyAgICBhc3NlcnQgbm90IHNpeC5jYWxsYWJsZSgic3RyaW5nIikKKworCitkZWYgdGVzdF9jcmVhdGVfYm91bmRfbWV0aG9kKCk6CisgICAgY2xhc3MgWChvYmplY3QpOgorICAgICAgICBwYXNzCisgICAgZGVmIGYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisgICAgeCA9IFgoKQorICAgIGIgPSBzaXguY3JlYXRlX2JvdW5kX21ldGhvZChmLCB4KQorICAgIGFzc2VydCBpc2luc3RhbmNlKGIsIHR5cGVzLk1ldGhvZFR5cGUpCisgICAgYXNzZXJ0IGIoKSBpcyB4CisKKworaWYgc2l4LlBZMzoKKworICAgIGRlZiB0ZXN0X2IoKToKKyAgICAgICAgZGF0YSA9IHNpeC5iKCJceGZmIikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZGF0YSwgYnl0ZXMpCisgICAgICAgIGFzc2VydCBsZW4oZGF0YSkgPT0gMQorICAgICAgICBhc3NlcnQgZGF0YSA9PSBieXRlcyhbMjU1XSkKKworCisgICAgZGVmIHRlc3RfdSgpOgorICAgICAgICBzID0gc2l4LnUoImhpIFx1MDQzOSBcVTAwMDAwNDM5IFxcIFxcXFwgXG4iKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCBzdHIpCisgICAgICAgIGFzc2VydCBzID09ICJoaSBcdTA0MzkgXFUwMDAwMDQzOSBcXCBcXFxcIFxuIgorCitlbHNlOgorCisgICAgZGVmIHRlc3RfYigpOgorICAgICAgICBkYXRhID0gc2l4LmIoIlx4ZmYiKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShkYXRhLCBzdHIpCisgICAgICAgIGFzc2VydCBsZW4oZGF0YSkgPT0gMQorICAgICAgICBhc3NlcnQgZGF0YSA9PSAiXHhmZiIKKworCisgICAgZGVmIHRlc3RfdSgpOgorICAgICAgICBzID0gc2l4LnUoImhpIFx1MDQzOSBcVTAwMDAwNDM5IFxcIFxcXFwgXG4iKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCB1bmljb2RlKQorICAgICAgICBhc3NlcnQgcyA9PSAiaGkgXHhkMFx4YjkgXHhkMFx4YjkgXFwgXFxcXCBcbiIuZGVjb2RlKCJ1dGY4IikKKworCitkZWYgdGVzdF91X2VzY2FwZXMoKToKKyAgICBzID0gc2l4LnUoIlx1MTIzNCIpCisgICAgYXNzZXJ0IGxlbihzKSA9PSAxCisKKworZGVmIHRlc3RfdW5pY2hyKCk6CisgICAgYXNzZXJ0IHNpeC51KCJcdTEyMzQiKSA9PSBzaXgudW5pY2hyKDB4MTIzNCkKKyAgICBhc3NlcnQgdHlwZShzaXgudSgiXHUxMjM0IikpIGlzIHR5cGUoc2l4LnVuaWNocigweDEyMzQpKQorCisKK2RlZiB0ZXN0X2ludDJieXRlKCk6CisgICAgYXNzZXJ0IHNpeC5pbnQyYnl0ZSgzKSA9PSBzaXguYigiXHgwMyIpCisgICAgcHkudGVzdC5yYWlzZXMoKE92ZXJmbG93RXJyb3IsIFZhbHVlRXJyb3IpLCBzaXguaW50MmJ5dGUsIDI1NikKKworCitkZWYgdGVzdF9ieXRlMmludCgpOgorICAgIGFzc2VydCBzaXguYnl0ZTJpbnQoc2l4LmIoIlx4MDMiKSkgPT0gMworICAgIGFzc2VydCBzaXguYnl0ZTJpbnQoc2l4LmIoIlx4MDNceDA0IikpID09IDMKKyAgICBweS50ZXN0LnJhaXNlcyhJbmRleEVycm9yLCBzaXguYnl0ZTJpbnQsIHNpeC5iKCIiKSkKKworCitkZWYgdGVzdF9ieXRlc2luZGV4KCk6CisgICAgYXNzZXJ0IHNpeC5pbmRleGJ5dGVzKHNpeC5iKCJoZWxsbyIpLCAzKSA9PSBvcmQoImwiKQorCisKK2RlZiB0ZXN0X2J5dGVzaXRlcigpOgorICAgIGl0ID0gc2l4Lml0ZXJieXRlcyhzaXguYigiaGkiKSkKKyAgICBhc3NlcnQgc2l4Lm5leHQoaXQpID09IG9yZCgiaCIpCisgICAgYXNzZXJ0IHNpeC5uZXh0KGl0KSA9PSBvcmQoImkiKQorICAgIHB5LnRlc3QucmFpc2VzKFN0b3BJdGVyYXRpb24sIHNpeC5uZXh0LCBpdCkKKworCitkZWYgdGVzdF9TdHJpbmdJTygpOgorICAgIGZwID0gc2l4LlN0cmluZ0lPKCkKKyAgICBmcC53cml0ZShzaXgudSgiaGVsbG8iKSkKKyAgICBhc3NlcnQgZnAuZ2V0dmFsdWUoKSA9PSBzaXgudSgiaGVsbG8iKQorCisKK2RlZiB0ZXN0X0J5dGVzSU8oKToKKyAgICBmcCA9IHNpeC5CeXRlc0lPKCkKKyAgICBmcC53cml0ZShzaXguYigiaGVsbG8iKSkKKyAgICBhc3NlcnQgZnAuZ2V0dmFsdWUoKSA9PSBzaXguYigiaGVsbG8iKQorCisKK2RlZiB0ZXN0X2V4ZWNfKCk6CisgICAgZGVmIGYoKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIHNpeC5leGVjXygibC5hcHBlbmQoMSkiKQorICAgICAgICBhc3NlcnQgbCA9PSBbMV0KKyAgICBmKCkKKyAgICBucyA9IHt9CisgICAgc2l4LmV4ZWNfKCJ4ID0gNDIiLCBucykKKyAgICBhc3NlcnQgbnNbIngiXSA9PSA0MgorICAgIGdsb2IgPSB7fQorICAgIGxvYyA9IHt9CisgICAgc2l4LmV4ZWNfKCJnbG9iYWwgeTsgeSA9IDQyOyB4ID0gMTIiLCBnbG9iLCBsb2MpCisgICAgYXNzZXJ0IGdsb2JbInkiXSA9PSA0MgorICAgIGFzc2VydCAieCIgbm90IGluIGdsb2IKKyAgICBhc3NlcnQgbG9jWyJ4Il0gPT0gMTIKKyAgICBhc3NlcnQgInkiIG5vdCBpbiBsb2MKKworCitkZWYgdGVzdF9yZXJhaXNlKCk6CisgICAgZGVmIGdldF9uZXh0KHRiKToKKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHJldHVybiB0Yi50Yl9uZXh0LnRiX25leHQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiB0Yi50Yl9uZXh0CisgICAgZSA9IEV4Y2VwdGlvbigiYmxhaCIpCisgICAgdHJ5OgorICAgICAgICByYWlzZSBlCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHAsIHZhbCwgdGIgPSBzeXMuZXhjX2luZm8oKQorICAgIHRyeToKKyAgICAgICAgc2l4LnJlcmFpc2UodHAsIHZhbCwgdGIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHAyLCB2YWx1ZTIsIHRiMiA9IHN5cy5leGNfaW5mbygpCisgICAgICAgIGFzc2VydCB0cDIgaXMgRXhjZXB0aW9uCisgICAgICAgIGFzc2VydCB2YWx1ZTIgaXMgZQorICAgICAgICBhc3NlcnQgdGIgaXMgZ2V0X25leHQodGIyKQorICAgIHRyeToKKyAgICAgICAgc2l4LnJlcmFpc2UodHAsIHZhbCkKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cDIsIHZhbHVlMiwgdGIyID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgYXNzZXJ0IHRwMiBpcyBFeGNlcHRpb24KKyAgICAgICAgYXNzZXJ0IHZhbHVlMiBpcyBlCisgICAgICAgIGFzc2VydCB0YjIgaXMgbm90IHRiCisgICAgdHJ5OgorICAgICAgICBzaXgucmVyYWlzZSh0cCwgdmFsLCB0YjIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHAyLCB2YWx1ZTIsIHRiMyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgIGFzc2VydCB0cDIgaXMgRXhjZXB0aW9uCisgICAgICAgIGFzc2VydCB2YWx1ZTIgaXMgZQorICAgICAgICBhc3NlcnQgZ2V0X25leHQodGIzKSBpcyB0YjIKKyAgICB0cnk6CisgICAgICAgIHNpeC5yZXJhaXNlKHRwLCBOb25lLCB0YikKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cDIsIHZhbHVlMiwgdGIyID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgYXNzZXJ0IHRwMiBpcyBFeGNlcHRpb24KKyAgICAgICAgYXNzZXJ0IHZhbHVlMiBpcyBub3QgdmFsCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlMiwgRXhjZXB0aW9uKQorICAgICAgICBhc3NlcnQgdGIgaXMgZ2V0X25leHQodGIyKQorCisKK2RlZiB0ZXN0X3JhaXNlX2Zyb20oKToKKyAgICB0cnk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiYmxhaCIpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBjdHggPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAgICAgICAgZiA9IEV4Y2VwdGlvbigiZm9vIikKKyAgICAgICAgICAgIHNpeC5yYWlzZV9mcm9tKGYsIE5vbmUpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHAsIHZhbCwgdGIgPSBzeXMuZXhjX2luZm8oKQorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bOjJdID4gKDMsIDApOgorICAgICAgICAjIFdlIHNob3VsZCBoYXZlIGRvbmUgYSByYWlzZSBmIGZyb20gTm9uZSBlcXVpdmFsZW50LgorICAgICAgICBhc3NlcnQgdmFsLl9fY2F1c2VfXyBpcyBOb25lCisgICAgICAgIGFzc2VydCB2YWwuX19jb250ZXh0X18gaXMgY3R4CisgICAgaWYgc3lzLnZlcnNpb25faW5mb1s6Ml0gPj0gKDMsIDMpOgorICAgICAgICAjIEFuZCB0aGF0IHNob3VsZCBzdXBwcmVzcyB0aGUgY29udGV4dCBvbiB0aGUgZXhjZXB0aW9uLgorICAgICAgICBhc3NlcnQgdmFsLl9fc3VwcHJlc3NfY29udGV4dF9fCisgICAgIyBGb3IgYWxsIHZlcnNpb25zIHRoZSBvdXRlciBleGNlcHRpb24gc2hvdWxkIGhhdmUgcmFpc2VkIHN1Y2Nlc3NmdWxseS4KKyAgICBhc3NlcnQgc3RyKHZhbCkgPT0gImZvbyIKKworCitkZWYgdGVzdF9wcmludF8oKToKKyAgICBzYXZlID0gc3lzLnN0ZG91dAorICAgIG91dCA9IHN5cy5zdGRvdXQgPSBzaXgubW92ZXMuU3RyaW5nSU8oKQorICAgIHRyeToKKyAgICAgICAgc2l4LnByaW50XygiSGVsbG8sIiwgInBlcnNvbiEiKQorICAgIGZpbmFsbHk6CisgICAgICAgIHN5cy5zdGRvdXQgPSBzYXZlCisgICAgYXNzZXJ0IG91dC5nZXR2YWx1ZSgpID09ICJIZWxsbywgcGVyc29uIVxuIgorICAgIG91dCA9IHNpeC5TdHJpbmdJTygpCisgICAgc2l4LnByaW50XygiSGVsbG8sIiwgInBlcnNvbiEiLCBmaWxlPW91dCkKKyAgICBhc3NlcnQgb3V0LmdldHZhbHVlKCkgPT0gIkhlbGxvLCBwZXJzb24hXG4iCisgICAgb3V0ID0gc2l4LlN0cmluZ0lPKCkKKyAgICBzaXgucHJpbnRfKCJIZWxsbywiLCAicGVyc29uISIsIGZpbGU9b3V0LCBlbmQ9IiIpCisgICAgYXNzZXJ0IG91dC5nZXR2YWx1ZSgpID09ICJIZWxsbywgcGVyc29uISIKKyAgICBvdXQgPSBzaXguU3RyaW5nSU8oKQorICAgIHNpeC5wcmludF8oIkhlbGxvLCIsICJwZXJzb24hIiwgZmlsZT1vdXQsIHNlcD0iWCIpCisgICAgYXNzZXJ0IG91dC5nZXR2YWx1ZSgpID09ICJIZWxsbyxYcGVyc29uIVxuIgorICAgIG91dCA9IHNpeC5TdHJpbmdJTygpCisgICAgc2l4LnByaW50XyhzaXgudSgiSGVsbG8sIiksIHNpeC51KCJwZXJzb24hIiksIGZpbGU9b3V0KQorICAgIHJlc3VsdCA9IG91dC5nZXR2YWx1ZSgpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBzaXgudGV4dF90eXBlKQorICAgIGFzc2VydCByZXN1bHQgPT0gc2l4LnUoIkhlbGxvLCBwZXJzb24hXG4iKQorICAgIHNpeC5wcmludF8oIkhlbGxvIiwgZmlsZT1Ob25lKSAjIFRoaXMgd29ya3MuCisgICAgb3V0ID0gc2l4LlN0cmluZ0lPKCkKKyAgICBzaXgucHJpbnRfKE5vbmUsIGZpbGU9b3V0KQorICAgIGFzc2VydCBvdXQuZ2V0dmFsdWUoKSA9PSAiTm9uZVxuIgorICAgIGNsYXNzIEZsdXNoYWJsZVN0cmluZ0lPKHNpeC5TdHJpbmdJTyk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgIHNpeC5TdHJpbmdJTy5fX2luaXRfXyhzZWxmKQorICAgICAgICAgICAgc2VsZi5mbHVzaGVkID0gRmFsc2UKKyAgICAgICAgZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5mbHVzaGVkID0gVHJ1ZQorICAgIG91dCA9IEZsdXNoYWJsZVN0cmluZ0lPKCkKKyAgICBzaXgucHJpbnRfKCJIZWxsbyIsIGZpbGU9b3V0KQorICAgIGFzc2VydCBub3Qgb3V0LmZsdXNoZWQKKyAgICBzaXgucHJpbnRfKCJIZWxsbyIsIGZpbGU9b3V0LCBmbHVzaD1UcnVlKQorICAgIGFzc2VydCBvdXQuZmx1c2hlZAorCisKK0BweS50ZXN0Lm1hcmsuc2tpcGlmKCJzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMiwgNikiKQorZGVmIHRlc3RfcHJpbnRfZW5jb2RpbmcobW9ua2V5cGF0Y2gpOgorICAgICMgRm9vbCB0aGUgdHlwZSBjaGVja2luZyBpbiBwcmludF8uCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzaXgsICJmaWxlIiwgc2l4LkJ5dGVzSU8sIHJhaXNpbmc9RmFsc2UpCisgICAgb3V0ID0gc2l4LkJ5dGVzSU8oKQorICAgIG91dC5lbmNvZGluZyA9ICJ1dGYtOCIKKyAgICBvdXQuZXJyb3JzID0gTm9uZQorICAgIHNpeC5wcmludF8oc2l4LnUoIlx1MDUzYyIpLCBlbmQ9IiIsIGZpbGU9b3V0KQorICAgIGFzc2VydCBvdXQuZ2V0dmFsdWUoKSA9PSBzaXguYigiXHhkNFx4YmMiKQorICAgIG91dCA9IHNpeC5CeXRlc0lPKCkKKyAgICBvdXQuZW5jb2RpbmcgPSAiYXNjaWkiCisgICAgb3V0LmVycm9ycyA9ICJzdHJpY3QiCisgICAgcHkudGVzdC5yYWlzZXMoVW5pY29kZUVuY29kZUVycm9yLCBzaXgucHJpbnRfLCBzaXgudSgiXHUwNTNjIiksIGZpbGU9b3V0KQorICAgIG91dC5lcnJvcnMgPSAiYmFja3NsYXNocmVwbGFjZSIKKyAgICBzaXgucHJpbnRfKHNpeC51KCJcdTA1M2MiKSwgZW5kPSIiLCBmaWxlPW91dCkKKyAgICBhc3NlcnQgb3V0LmdldHZhbHVlKCkgPT0gc2l4LmIoIlxcdTA1M2MiKQorCisKK2RlZiB0ZXN0X3ByaW50X2V4Y2VwdGlvbnMoKToKKyAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIHNpeC5wcmludF8sIHg9MykKKyAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIHNpeC5wcmludF8sIGVuZD0zKQorICAgIHB5LnRlc3QucmFpc2VzKFR5cGVFcnJvciwgc2l4LnByaW50Xywgc2VwPTQyKQorCisKK2RlZiB0ZXN0X3dpdGhfbWV0YWNsYXNzKCk6CisgICAgY2xhc3MgTWV0YSh0eXBlKToKKyAgICAgICAgcGFzcworICAgIGNsYXNzIFgoc2l4LndpdGhfbWV0YWNsYXNzKE1ldGEpKToKKyAgICAgICAgcGFzcworICAgIGFzc2VydCB0eXBlKFgpIGlzIE1ldGEKKyAgICBhc3NlcnQgaXNzdWJjbGFzcyhYLCBvYmplY3QpCisgICAgY2xhc3MgQmFzZShvYmplY3QpOgorICAgICAgICBwYXNzCisgICAgY2xhc3MgWChzaXgud2l0aF9tZXRhY2xhc3MoTWV0YSwgQmFzZSkpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IHR5cGUoWCkgaXMgTWV0YQorICAgIGFzc2VydCBpc3N1YmNsYXNzKFgsIEJhc2UpCisgICAgY2xhc3MgQmFzZTIob2JqZWN0KToKKyAgICAgICAgcGFzcworICAgIGNsYXNzIFgoc2l4LndpdGhfbWV0YWNsYXNzKE1ldGEsIEJhc2UsIEJhc2UyKSk6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgdHlwZShYKSBpcyBNZXRhCisgICAgYXNzZXJ0IGlzc3ViY2xhc3MoWCwgQmFzZSkKKyAgICBhc3NlcnQgaXNzdWJjbGFzcyhYLCBCYXNlMikKKyAgICBhc3NlcnQgWC5fX21yb19fID09IChYLCBCYXNlLCBCYXNlMiwgb2JqZWN0KQorCisKK2RlZiB0ZXN0X3dyYXBzKCk6CisgICAgZGVmIGYoZyk6CisgICAgICAgIEBzaXgud3JhcHMoZykKKyAgICAgICAgZGVmIHcoKToKKyAgICAgICAgICAgIHJldHVybiA0MgorICAgICAgICByZXR1cm4gdworICAgIGRlZiBrKCk6CisgICAgICAgIHBhc3MKKyAgICBvcmlnaW5hbF9rID0gaworICAgIGsgPSBmKGYoaykpCisgICAgYXNzZXJ0IGhhc2F0dHIoaywgJ19fd3JhcHBlZF9fJykKKyAgICBrID0gay5fX3dyYXBwZWRfXworICAgIGFzc2VydCBoYXNhdHRyKGssICdfX3dyYXBwZWRfXycpCisgICAgayA9IGsuX193cmFwcGVkX18KKyAgICBhc3NlcnQgayBpcyBvcmlnaW5hbF9rCisgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGssICdfX3dyYXBwZWRfXycpCisKKyAgICBkZWYgZihnLCBhc3NpZ24sIHVwZGF0ZSk6CisgICAgICAgIGRlZiB3KCk6CisgICAgICAgICAgICByZXR1cm4gNDIKKyAgICAgICAgdy5nbHVlID0geyJmb28iIDogImJhciJ9CisgICAgICAgIHJldHVybiBzaXgud3JhcHMoZywgYXNzaWduLCB1cGRhdGUpKHcpCisgICAgay5nbHVlID0geyJtZWxvbiIgOiAiZWdnIn0KKyAgICBrLnR1cm5pcCA9IDQzCisgICAgayA9IGYoaywgWyJ0dXJuaXAiXSwgWyJnbHVlIl0pCisgICAgYXNzZXJ0IGsuX19uYW1lX18gPT0gInciCisgICAgYXNzZXJ0IGsudHVybmlwID09IDQzCisgICAgYXNzZXJ0IGsuZ2x1ZSA9PSB7Im1lbG9uIiA6ICJlZ2ciLCAiZm9vIiA6ICJiYXIifQorCisKK2RlZiB0ZXN0X2FkZF9tZXRhY2xhc3MoKToKKyAgICBjbGFzcyBNZXRhKHR5cGUpOgorICAgICAgICBwYXNzCisgICAgY2xhc3MgWDoKKyAgICAgICAgInN1Y2Nlc3MiCisgICAgWCA9IHNpeC5hZGRfbWV0YWNsYXNzKE1ldGEpKFgpCisgICAgYXNzZXJ0IHR5cGUoWCkgaXMgTWV0YQorICAgIGFzc2VydCBpc3N1YmNsYXNzKFgsIG9iamVjdCkKKyAgICBhc3NlcnQgWC5fX21vZHVsZV9fID09IF9fbmFtZV9fCisgICAgYXNzZXJ0IFguX19kb2NfXyA9PSAic3VjY2VzcyIKKyAgICBjbGFzcyBCYXNlKG9iamVjdCk6CisgICAgICAgIHBhc3MKKyAgICBjbGFzcyBYKEJhc2UpOgorICAgICAgICBwYXNzCisgICAgWCA9IHNpeC5hZGRfbWV0YWNsYXNzKE1ldGEpKFgpCisgICAgYXNzZXJ0IHR5cGUoWCkgaXMgTWV0YQorICAgIGFzc2VydCBpc3N1YmNsYXNzKFgsIEJhc2UpCisgICAgY2xhc3MgQmFzZTIob2JqZWN0KToKKyAgICAgICAgcGFzcworICAgIGNsYXNzIFgoQmFzZSwgQmFzZTIpOgorICAgICAgICBwYXNzCisgICAgWCA9IHNpeC5hZGRfbWV0YWNsYXNzKE1ldGEpKFgpCisgICAgYXNzZXJ0IHR5cGUoWCkgaXMgTWV0YQorICAgIGFzc2VydCBpc3N1YmNsYXNzKFgsIEJhc2UpCisgICAgYXNzZXJ0IGlzc3ViY2xhc3MoWCwgQmFzZTIpCisKKyAgICAjIFRlc3QgYSBzZWNvbmQtZ2VuZXJhdGlvbiBzdWJjbGFzcyBvZiBhIHR5cGUuCisgICAgY2xhc3MgTWV0YTEodHlwZSk6CisgICAgICAgIG0xID0gIm0xIgorICAgIGNsYXNzIE1ldGEyKE1ldGExKToKKyAgICAgICAgbTIgPSAibTIiCisgICAgY2xhc3MgQmFzZToKKyAgICAgICAgYiA9ICJiIgorICAgIEJhc2UgPSBzaXguYWRkX21ldGFjbGFzcyhNZXRhMSkoQmFzZSkKKyAgICBjbGFzcyBYKEJhc2UpOgorICAgICAgICB4ID0gIngiCisgICAgWCA9IHNpeC5hZGRfbWV0YWNsYXNzKE1ldGEyKShYKQorICAgIGFzc2VydCB0eXBlKFgpIGlzIE1ldGEyCisgICAgYXNzZXJ0IGlzc3ViY2xhc3MoWCwgQmFzZSkKKyAgICBhc3NlcnQgdHlwZShCYXNlKSBpcyBNZXRhMQorICAgIGFzc2VydCAiX19kaWN0X18iIG5vdCBpbiB2YXJzKFgpCisgICAgaW5zdGFuY2UgPSBYKCkKKyAgICBpbnN0YW5jZS5hdHRyID0gInRlc3QiCisgICAgYXNzZXJ0IHZhcnMoaW5zdGFuY2UpID09IHsiYXR0ciI6ICJ0ZXN0In0KKyAgICBhc3NlcnQgaW5zdGFuY2UuYiA9PSBCYXNlLmIKKyAgICBhc3NlcnQgaW5zdGFuY2UueCA9PSBYLngKKworICAgICMgVGVzdCBhIGNsYXNzIHdpdGggc2xvdHMuCisgICAgY2xhc3MgTXlTbG90cyhvYmplY3QpOgorICAgICAgICBfX3Nsb3RzX18gPSBbImEiLCAiYiJdCisgICAgTXlTbG90cyA9IHNpeC5hZGRfbWV0YWNsYXNzKE1ldGExKShNeVNsb3RzKQorCisgICAgYXNzZXJ0IE15U2xvdHMuX19zbG90c19fID09IFsiYSIsICJiIl0KKyAgICBpbnN0YW5jZSA9IE15U2xvdHMoKQorICAgIGluc3RhbmNlLmEgPSAiZm9vIgorICAgIHB5LnRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzZXRhdHRyLCBpbnN0YW5jZSwgImMiLCAiYmF6IikKKworICAgICMgVGVzdCBhIGNsYXNzIHdpdGggc3RyaW5nIGZvciBzbG90cy4KKyAgICBjbGFzcyBNeVN0cmluZ1Nsb3RzKG9iamVjdCk6CisgICAgICAgIF9fc2xvdHNfXyA9ICJhYiIKKyAgICBNeVN0cmluZ1Nsb3RzID0gc2l4LmFkZF9tZXRhY2xhc3MoTWV0YTEpKE15U3RyaW5nU2xvdHMpCisgICAgYXNzZXJ0IE15U3RyaW5nU2xvdHMuX19zbG90c19fID09ICJhYiIKKyAgICBpbnN0YW5jZSA9IE15U3RyaW5nU2xvdHMoKQorICAgIGluc3RhbmNlLmFiID0gImZvbyIKKyAgICBweS50ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgaW5zdGFuY2UsICJhIiwgImJheiIpCisgICAgcHkudGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IsIHNldGF0dHIsIGluc3RhbmNlLCAiYiIsICJiYXoiKQorCisgICAgY2xhc3MgTXlTbG90c1dlYWtyZWYob2JqZWN0KToKKyAgICAgICAgX19zbG90c19fID0gIl9fd2Vha3JlZl9fIiwKKyAgICBNeVNsb3RzV2Vha3JlZiA9IHNpeC5hZGRfbWV0YWNsYXNzKE1ldGEpKE15U2xvdHNXZWFrcmVmKQorICAgIGFzc2VydCB0eXBlKE15U2xvdHNXZWFrcmVmKSBpcyBNZXRhCisKKworQHB5LnRlc3QubWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2luZm9bOjJdIDwgKDIsIDcpIikKK2RlZiB0ZXN0X2Fzc2VydENvdW50RXF1YWwoKToKKyAgICBjbGFzcyBUZXN0QXNzZXJ0Q291bnRFcXVhbCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICAgICAgc2l4LmFzc2VydENvdW50RXF1YWwoc2VsZiwgKDEsIDIpLCBbMywgNCwgNV0pCisKKyAgICAgICAgICAgIHNpeC5hc3NlcnRDb3VudEVxdWFsKHNlbGYsICgxLCAyKSwgWzIsIDFdKQorCisgICAgVGVzdEFzc2VydENvdW50RXF1YWwoJ3Rlc3QnKS50ZXN0KCkKKworCitAcHkudGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mb1s6Ml0gPCAoMiwgNykiKQorZGVmIHRlc3RfYXNzZXJ0UmVnZXgoKToKKyAgICBjbGFzcyBUZXN0QXNzZXJ0UmVnZXgodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICBkZWYgdGVzdChzZWxmKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgICAgIHNpeC5hc3NlcnRSZWdleChzZWxmLCAndGVzdCcsIHInXmEnKQorCisgICAgICAgICAgICBzaXguYXNzZXJ0UmVnZXgoc2VsZiwgJ3Rlc3QnLCByJ150JykKKworICAgIFRlc3RBc3NlcnRSZWdleCgndGVzdCcpLnRlc3QoKQorCisKK0BweS50ZXN0Lm1hcmsuc2tpcGlmKCJzeXMudmVyc2lvbl9pbmZvWzoyXSA8ICgyLCA3KSIpCitkZWYgdGVzdF9hc3NlcnRSYWlzZXNSZWdleCgpOgorICAgIGNsYXNzIFRlc3RBc3NlcnRSYWlzZXNSZWdleCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICAgICAgd2l0aCBzaXguYXNzZXJ0UmFpc2VzUmVnZXgoc2VsZiwgQXNzZXJ0aW9uRXJyb3IsICdeRm9vJyk6CisgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ0ZvbycpCisKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgICAgIHdpdGggc2l4LmFzc2VydFJhaXNlc1JlZ2V4KHNlbGYsIEFzc2VydGlvbkVycm9yLCByJ15Gb28nKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ0JhcicpCisKKyAgICBUZXN0QXNzZXJ0UmFpc2VzUmVnZXgoJ3Rlc3QnKS50ZXN0KCkKKworCitkZWYgdGVzdF9weXRob25fMl91bmljb2RlX2NvbXBhdGlibGUoKToKKyAgICBAc2l4LnB5dGhvbl8yX3VuaWNvZGVfY29tcGF0aWJsZQorICAgIGNsYXNzIE15VGVzdChvYmplY3QpOgorICAgICAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBzaXgudSgnaGVsbG8nKQorCisgICAgICAgIGRlZiBfX2J5dGVzX18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2l4LmIoJ2hlbGxvJykKKworICAgIG15X3Rlc3QgPSBNeVRlc3QoKQorCisgICAgaWYgc2l4LlBZMjoKKyAgICAgICAgYXNzZXJ0IHN0cihteV90ZXN0KSA9PSBzaXguYigiaGVsbG8iKQorICAgICAgICBhc3NlcnQgdW5pY29kZShteV90ZXN0KSA9PSBzaXgudSgiaGVsbG8iKQorICAgIGVsaWYgc2l4LlBZMzoKKyAgICAgICAgYXNzZXJ0IGJ5dGVzKG15X3Rlc3QpID09IHNpeC5iKCJoZWxsbyIpCisgICAgICAgIGFzc2VydCBzdHIobXlfdGVzdCkgPT0gc2l4LnUoImhlbGxvIikKKworICAgIGFzc2VydCBnZXRhdHRyKHNpeC5tb3Zlcy5idWlsdGlucywgJ2J5dGVzJywgc3RyKShteV90ZXN0KSA9PSBzaXguYigiaGVsbG8iKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmOGFlMWEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0iIiJUcmFjZS12aWV3ZXIgY29tcG9uZW50IG1vZGVsLgotCi1UaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRyYWNlLXZpZXdlcidzIGNvbXBvbmVudCBtb2RlbC4KLQotIiIiCi0KLWZyb20gdHZjbS5nZW5lcmF0ZSBpbXBvcnQgKgotZnJvbSB0dmNtLmRldl9zZXJ2ZXIgaW1wb3J0IERldlNlcnZlcgotZnJvbSB0dmNtLnByb2plY3QgaW1wb3J0IFByb2plY3QKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZGV2X3NlcnZlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZGV2X3NlcnZlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQwYjU0ZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Rldl9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGpzb24KLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IG9zCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGltZQotaW1wb3J0IHRyYWNlYmFjawotCi1mcm9tIHR2Y20gaW1wb3J0IHByb2plY3QgYXMgcHJvamVjdF9tb2R1bGUKLWZyb20gdHZjbSBpbXBvcnQgZ2VuZXJhdGUKLWZyb20gdHZjbSBpbXBvcnQgcmVzb3VyY2VfbG9hZGVyCi0KLWltcG9ydCBTb2NrZXRTZXJ2ZXIKLWltcG9ydCBTaW1wbGVIVFRQU2VydmVyCi1pbXBvcnQgU3RyaW5nSU8KLWltcG9ydCBCYXNlSFRUUFNlcnZlcgotCi1URVNUX0RBVEFfUFJFRklYID0gJy90ZXN0X2RhdGEnCi0KLWNsYXNzIERldlNlcnZlckhhbmRsZXIoU2ltcGxlSFRUUFNlcnZlci5TaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXIpOgotICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICBTaW1wbGVIVFRQU2VydmVyLlNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlci5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCi0KLSAgZGVmIHNlbmRfcmVzcG9uc2Uoc2VsZiwgY29kZSwgbWVzc2FnZT1Ob25lKToKLSAgICBTaW1wbGVIVFRQU2VydmVyLlNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlci5zZW5kX3Jlc3BvbnNlKHNlbGYsIGNvZGUsIG1lc3NhZ2UpCi0gICAgaWYgY29kZSA9PSAyMDA6Ci0gICAgICBzZWxmLnNlbmRfaGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlJykKLQotICBkZWYgZG9fR0VUKHNlbGYpOgotICAgIGlmIHNlbGYuZG9fcGF0aF9oYW5kbGVyKCdHRVQnKToKLSAgICAgIHJldHVybgotCi0gICAgcmV0dXJuIFNpbXBsZUhUVFBTZXJ2ZXIuU2ltcGxlSFRUUFJlcXVlc3RIYW5kbGVyLmRvX0dFVChzZWxmKQotCi0gIGRlZiBkb19QT1NUKHNlbGYpOgotICAgIGlmIHNlbGYuZG9fcGF0aF9oYW5kbGVyKCdQT1NUJyk6Ci0gICAgICByZXR1cm4KLSAgICByZXR1cm4gU2ltcGxlSFRUUFNlcnZlci5TaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXIuZG9fUE9TVChzZWxmKQotCi0KLSAgZGVmIGRvX3BhdGhfaGFuZGxlcihzZWxmLCBtZXRob2QpOgotICAgIGhhbmRsZXIgPSBzZWxmLnNlcnZlci5HZXRQYXRoSGFuZGxlcihzZWxmLnBhdGgsIG1ldGhvZCkKLSAgICBpZiBoYW5kbGVyOgotICAgICAgdHJ5OgotICAgICAgICBoYW5kbGVyKHNlbGYpCi0gICAgICBleGNlcHQgRXhjZXB0aW9uLCBleDoKLSAgICAgICAgc2VuZF81MDAoc2VsZiwgIldoaWxlIHBhcnNpbmcgJXMiICUgc2VsZi5wYXRoLCBleCwgcGF0aD1zZWxmLnBhdGgpCi0gICAgICByZXR1cm4gVHJ1ZQotICAgIHJldHVybiBGYWxzZQotCi0gIGRlZiBzZW5kX2hlYWQoc2VsZik6Ci0gICAgcmV0dXJuIFNpbXBsZUhUVFBTZXJ2ZXIuU2ltcGxlSFRUUFJlcXVlc3RIYW5kbGVyLnNlbmRfaGVhZChzZWxmKQotCi0gIGRlZiB0cmFuc2xhdGVfcGF0aChzZWxmLCBwYXRoKToKLSAgICBwYXRoID0gcGF0aC5zcGxpdCgnPycsMSlbMF0KLSAgICBwYXRoID0gcGF0aC5zcGxpdCgnIycsMSlbMF0KLQotICAgIGlmIHBhdGguc3RhcnRzd2l0aChURVNUX0RBVEFfUFJFRklYKToKLSAgICAgIHBhdGggPSBwYXRoW2xlbihURVNUX0RBVEFfUFJFRklYKTpdCi0KLSAgICBmb3IgbWFwcGVkX3BhdGggaW4gc2VsZi5zZXJ2ZXIucHJvamVjdC5zb3VyY2VfcGF0aHM6Ci0gICAgICByZWwgPSBvcy5wYXRoLnJlbHBhdGgocGF0aCwgJy8nKQotICAgICAgY2FuZGlkYXRlID0gb3MucGF0aC5qb2luKG1hcHBlZF9wYXRoLCByZWwpCi0gICAgICBpZiBvcy5wYXRoLmV4aXN0cyhjYW5kaWRhdGUpOgotICAgICAgICByZXR1cm4gY2FuZGlkYXRlCi0gICAgcmV0dXJuICcnCi0KLSAgZGVmIGxvZ19lcnJvcihzZWxmLCBmb3JtYXQsICphcmdzKToKLSAgICBpZiBzZWxmLnNlcnZlci5fcXVpZXQ6Ci0gICAgICByZXR1cm4KLSAgICBpZiBzZWxmLnBhdGggPT0gJy9mYXZpY29uLmljbyc6Ci0gICAgICByZXR1cm4KLSAgICBzZWxmLmxvZ19tZXNzYWdlKCJXaGlsZSBwcm9jZXNzaW5nICVzOiAiLCBzZWxmLnBhdGgpCi0gICAgU2ltcGxlSFRUUFNlcnZlci5TaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXIubG9nX2Vycm9yKHNlbGYsIGZvcm1hdCwgKmFyZ3MpCi0KLSAgZGVmIGxvZ19yZXF1ZXN0KHNlbGYsIGNvZGU9Jy0nLCBzaXplPSctJyk6Ci0gICAgIyBEb250IHNwYW0gdGhlIGNvbnNvbGUgdW5sZXNzIGl0IGlzIGltcG9ydGFudC4KLSAgICBwYXNzCi0KLSAgZGVmIGZpbmlzaChzZWxmKToKLSAgICB0cnk6Ci0gICAgICBTaW1wbGVIVFRQU2VydmVyLlNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlci5maW5pc2goc2VsZikKLSAgICBleGNlcHQgc29ja2V0LmVycm9yOgotICAgICAgICAjIEFuIGZpbmFsIHNvY2tldCBlcnJvciBtYXkgaGF2ZSBvY2N1cnJlZCBoZXJlLCBzdWNoIGFzCi0gICAgICAgICMgdGhlIGxvY2FsIGVycm9yIEVDT05OQUJPUlRFRC4KLSAgICAgICAgcGFzcwotCi1kZWYgc2VuZF81MDAoc2VsZiwgbXNnLCBleCwgbG9nX2Vycm9yPVRydWUsIHBhdGg9Tm9uZSk6Ci0gIGlmIHBhdGggPT0gTm9uZToKLSAgICBpc19odG1sX291dHB1dCA9IEZhbHNlCi0gIGVsc2U6Ci0gICAgcGF0aCA9IHBhdGguc3BsaXQoJz8nLDEpWzBdCi0gICAgcGF0aCA9IHBhdGguc3BsaXQoJyMnLDEpWzBdCi0gICAgaXNfaHRtbF9vdXRwdXQgPSBwYXRoLmVuZHN3aXRoKCcuaHRtbCcpCi0KLQotICBpZiBpc19odG1sX291dHB1dDoKLSAgICBtc2cgPSAiIiI8IURPQ1RZUEUgaHRtbD4KLSAgICA8aHRtbD4KLSAgICA8Ym9keT4KLSAgICA8aDE+T01HIHNvbWV0aGluZyBpcyB3cm9uZzwvaDE+Ci0gICAgPGI+PHByZT48Y29kZSBpZD0ibWVzc2FnZSI+PC9jb2RlPjwvcHJlPjwvYj48L3A+Ci0gICAgPHByZT48Y29kZSBpZD0iZGV0YWlscyI+PC9jb2RlPjwvcHJlPgotICAgIDxzY3JpcHQ+Ci0gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewotICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2RldGFpbHMnKS50ZXh0Q29udGVudCA9ICVzOwotICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21lc3NhZ2UnKS50ZXh0Q29udGVudCA9ICVzOwotICAgICAgfSk7Ci0gICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotICAgIDwvaHRtbD4KLSIiIiAlIChqc29uLmR1bXBzKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpLCBqc29uLmR1bXBzKGV4Lm1lc3NhZ2UpKQotICAgIGN0eXBlID0gJ3RleHQvaHRtbCcKLSAgZWxzZToKLSAgICBtc2cgPSBqc29uLmR1bXBzKHsiZGV0YWlscyI6IHRyYWNlYmFjay5mb3JtYXRfZXhjKCksCi0gICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiBleC5tZXNzYWdlfSk7Ci0gICAgY3R5cGUgPSAnYXBwbGljYXRpb24vanNvbicKLQotICBpZiBsb2dfZXJyb3I6Ci0gICAgc2VsZi5sb2dfZXJyb3IoJyVzOiAlcycsIG1zZywgZXgubWVzc2FnZSkKLSAgc2VsZi5zZW5kX3Jlc3BvbnNlKDUwMCkKLSAgc2VsZi5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgY3R5cGUpCi0gIHNlbGYuc2VuZF9oZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUnKQotICBzZWxmLnNlbmRfaGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbihtc2cpKQotICBzZWxmLmVuZF9oZWFkZXJzKCkKLSAgc2VsZi53ZmlsZS53cml0ZShtc2cpCi0gIHJldHVybgotCi1jbGFzcyBQYXRoSGFuZGxlcihvYmplY3QpOgotICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwgaGFuZGxlciwgc3VwcG9ydHNfZ2V0LCBzdXBwb3J0c19wb3N0KToKLSAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgotICAgIHNlbGYuc3VwcG9ydHNfZ2V0ID0gc3VwcG9ydHNfZ2V0Ci0gICAgc2VsZi5zdXBwb3J0c19wb3N0ID0gc3VwcG9ydHNfcG9zdAotCi0gIGRlZiBDYW5IYW5kbGUoc2VsZiwgcGF0aCwgbWV0aG9kKToKLSAgICBpZiBwYXRoICE9IHNlbGYucGF0aDoKLSAgICAgIHJldHVybiBGYWxzZQotICAgIGlmIG1ldGhvZCA9PSAnR0VUJyBhbmQgc2VsZi5zdXBwb3J0c19nZXQ6Ci0gICAgICByZXR1cm4gVHJ1ZQotICAgIGlmIG1ldGhvZCA9PSAnUE9TVCcgYW5kIHNlbGYuc3VwcG9ydHNfcG9zdDoKLSAgICAgIHJldHVybiBUcnVlCi0gICAgcmV0dXJuIEZhbHNlCi0KLWRlZiBkb19HRVRfcm9vdChyZXF1ZXN0KToKLSAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDMwMSkKLSAgcmVxdWVzdC5zZW5kX2hlYWRlcigiTG9jYXRpb24iLCByZXF1ZXN0LnNlcnZlci5kZWZhdWx0X3BhdGgpCi0gIHJlcXVlc3QuZW5kX2hlYWRlcnMoKQotCi1jbGFzcyBEZXZTZXJ2ZXIoU29ja2V0U2VydmVyLlRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHF1aWV0PUZhbHNlLCBwcm9qZWN0PU5vbmUpOgotICAgIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIuX19pbml0X18oCi0gICAgICAgIHNlbGYsICgnbG9jYWxob3N0JywgcG9ydCksIERldlNlcnZlckhhbmRsZXIpCi0gICAgc2VsZi5fc2h1dGRvd25fcmVxdWVzdCA9IE5vbmUKLSAgICBzZWxmLl9xdWlldCA9IHF1aWV0Ci0gICAgaWYgcG9ydCA9PSAwOgotICAgICAgcG9ydCA9IHNlbGYuc2VydmVyX2FkZHJlc3NbMV0KLSAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgIHNlbGYuX3BhdGhfaGFuZGxlcnMgPSBbXQotICAgIHNlbGYuX3Rlc3RfbGlua3MgPSBbXQotICAgIGlmIHByb2plY3Q6Ci0gICAgICBzZWxmLl9wcm9qZWN0ID0gcHJvamVjdAotICAgIGVsc2U6Ci0gICAgICBzZWxmLl9wcm9qZWN0ID0gcHJvamVjdF9tb2R1bGUuUHJvamVjdChbXSkKLQotICAgIHNlbGYuQWRkUGF0aEhhbmRsZXIoJy8nLCBkb19HRVRfcm9vdCkKLSAgICBzZWxmLkFkZFBhdGhIYW5kbGVyKCcnLCBkb19HRVRfcm9vdCkKLSAgICBzZWxmLmRlZmF1bHRfcGF0aCA9ICcvYmFzZS90ZXN0cy5odG1sJwotICAgICMgUmVkaXJlY3Qgb2xkIHRlc3RzLmh0bWwgcGxhY2VzIHRvIHRoZSBuZXcgbG9jYXRpb24gdW50aWwgZm9sa3MgaGF2ZSBnb3R0ZW4gdXNlZCB0byBpdHMgbmV3Ci0gICAgIyBsb2NhdGlvbi4KLSAgICBzZWxmLkFkZFBhdGhIYW5kbGVyKCcvdHZjbS90ZXN0cy5odG1sJywgZG9fR0VUX3Jvb3QpCi0gICAgc2VsZi5BZGRQYXRoSGFuZGxlcignL3Rlc3RzLmh0bWwnLCBkb19HRVRfcm9vdCkKLQotCi0gIGRlZiBBZGRQYXRoSGFuZGxlcihzZWxmLCBwYXRoLCBoYW5kbGVyLCBzdXBwb3J0c19nZXQ9VHJ1ZSwgc3VwcG9ydHNfcG9zdD1GYWxzZSk6Ci0gICAgc2VsZi5fcGF0aF9oYW5kbGVycy5hcHBlbmQoUGF0aEhhbmRsZXIocGF0aCwgaGFuZGxlciwgc3VwcG9ydHNfZ2V0LCBzdXBwb3J0c19wb3N0KSkKLQotICBkZWYgR2V0UGF0aEhhbmRsZXIoc2VsZiwgcGF0aCwgbWV0aG9kKToKLSAgICBmb3IgaCBpbiBzZWxmLl9wYXRoX2hhbmRsZXJzOgotICAgICAgaWYgaC5DYW5IYW5kbGUocGF0aCwgbWV0aG9kKToKLSAgICAgICAgcmV0dXJuIGguaGFuZGxlcgotICAgIHJldHVybiBOb25lCi0KLSAgZGVmIEFkZFNvdXJjZVBhdGhNYXBwaW5nKHNlbGYsIGZpbGVfc3lzdGVtX3BhdGgpOgotICAgIHNlbGYuX3Byb2plY3QuQWRkU291cmNlUGF0aChmaWxlX3N5c3RlbV9wYXRoKQotCi0gIGRlZiBBZGRUZXN0TGluayhzZWxmLCBwYXRoLCB0aXRsZSk6Ci0gICAgc2VsZi5fdGVzdF9saW5rcy5hcHBlbmQoeydwYXRoJzogcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJzogdGl0bGV9KQotCi0gIGRlZiBSZXF1ZXN0U2h1dGRvd24oc2VsZiwgZXhpdF9jb2RlKToKLSAgICBzZWxmLl9zaHV0ZG93bl9yZXF1ZXN0ID0gZXhpdF9jb2RlCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiB0ZXN0X2xpbmtzKHNlbGYpOgotICAgIHJldHVybiBzZWxmLl90ZXN0X2xpbmtzCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBwcm9qZWN0KHNlbGYpOgotICAgIHJldHVybiBzZWxmLl9wcm9qZWN0Ci0KLSAgQHByb3BlcnR5Ci0gIGRlZiBsb2FkZXIoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYuX3Byb2plY3QubG9hZGVyCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBwb3J0KHNlbGYpOgotICAgIHJldHVybiBzZWxmLl9wb3J0Ci0KLSAgQHByb3BlcnR5Ci0gIGRlZiBkYXRhX2RpcihzZWxmKToKLSAgICByZXR1cm4gc2VsZi5fZGF0YV9kaXIKLQotICBkZWYgc2VydmVfZm9yZXZlcihzZWxmKToKLSAgICBpZiBub3Qgc2VsZi5fcXVpZXQ6Ci0gICAgICBzeXMuc3RkZXJyLndyaXRlKCJOb3cgcnVubmluZyBvbiBodHRwOi8vbG9jYWxob3N0OiVpXG4iICUgc2VsZi5fcG9ydCkKLSAgICB0cnk6Ci0gICAgICBzZWxmLnRpbWVvdXQgPSAwLjUKLSAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIuaGFuZGxlX3JlcXVlc3Qoc2VsZikKLSAgICAgICAgaWYgc2VsZi5fc2h1dGRvd25fcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICBzeXMuZXhpdChzZWxmLl9zaHV0ZG93bl9yZXF1ZXN0KQotICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgIHN5cy5leGl0KDApCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Rldl9zZXJ2ZXJfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Rldl9zZXJ2ZXJfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjMWE4NjAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9kZXZfc2VydmVyX3VuaXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHNvY2tldAotaW1wb3J0IGh0dHBsaWIKLWltcG9ydCBvcwotaW1wb3J0IGpzb24KLQotZnJvbSB0dmNtIGltcG9ydCBwcm9qZWN0IGFzIHByb2plY3RfbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHRlbXBvcmFyeV9kZXZfc2VydmVyCi0KLWNsYXNzIERldlNlcnZlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgZGVmIHNldFVwKHNlbGYpOgotICAgIHNlbGYuc2VydmVyID0gdGVtcG9yYXJ5X2Rldl9zZXJ2ZXIuVGVtcG9yYXJ5RGV2U2VydmVyKCkKLQotICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgc2VsZi5zZXJ2ZXIuQ2xvc2UoKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZmFrZV9mcy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZmFrZV9mcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM4Y2NmOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Zha2VfZnMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotaW1wb3J0IGNvZGVjcwotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgY29sbGVjdGlvbnMKLWltcG9ydCBTdHJpbmdJTwotCi1jbGFzcyBXaXRoYWJsZVN0cmluZ0lPKFN0cmluZ0lPLlN0cmluZ0lPKToKLSAgZGVmIF9fZW50ZXJfXyhzZWxmLCAqYXJncyk6Ci0gICAgcmV0dXJuIHNlbGYKLQotICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MpOgotICAgIHBhc3MKLQotY2xhc3MgRmFrZUZTKG9iamVjdCk6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCBpbml0aWFsX2ZpbGVuYW1lc19hbmRfY29udGVudHM9Tm9uZSk6Ci0gICAgc2VsZi5fZmlsZV9jb250ZW50cyA9IHt9Ci0gICAgaWYgaW5pdGlhbF9maWxlbmFtZXNfYW5kX2NvbnRlbnRzOgotICAgICAgZm9yIGssdiBpbiBpbml0aWFsX2ZpbGVuYW1lc19hbmRfY29udGVudHMuaXRlcml0ZW1zKCk6Ci0gICAgICAgIHNlbGYuX2ZpbGVfY29udGVudHNba10gPSB2Ci0KLSAgICBzZWxmLl9ib3VuZCA9IEZhbHNlCi0gICAgc2VsZi5fcmVhbF9jb2RlY3Nfb3BlbiA9IGNvZGVjcy5vcGVuCi0gICAgc2VsZi5fcmVhbF9vcGVuID0gc3lzLm1vZHVsZXNbJ19fYnVpbHRpbl9fJ10ub3BlbgotICAgIHNlbGYuX3JlYWxfZXhpc3RzID0gb3MucGF0aC5leGlzdHMKLSAgICBzZWxmLl9yZWFsX3dhbGsgPSBvcy53YWxrCi0gICAgc2VsZi5fcmVhbF9saXN0ZGlyID0gb3MubGlzdGRpcgotCi0gIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgc2VsZi5CaW5kKCkKLSAgICByZXR1cm4gc2VsZgotCi0gIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6Ci0gICAgc2VsZi5VbmJpbmQoKQotCi0gIGRlZiBCaW5kKHNlbGYpOgotICAgIGFzc2VydCBub3Qgc2VsZi5fYm91bmQKLSAgICBjb2RlY3Mub3BlbiA9IHNlbGYuX0Zha2VDb2RlY3NPcGVuCi0gICAgc3lzLm1vZHVsZXNbJ19fYnVpbHRpbl9fJ10ub3BlbiA9IHNlbGYuX0Zha2VPcGVuCi0gICAgb3MucGF0aC5leGlzdHMgPSBzZWxmLl9GYWtlRXhpc3RzCi0gICAgb3Mud2FsayA9IHNlbGYuX0Zha2VXYWxrCi0gICAgb3MubGlzdGRpciA9IHNlbGYuX0Zha2VMaXN0RGlyCi0gICAgc2VsZi5fYm91bmQgPSBUcnVlCi0KLSAgZGVmIFVuYmluZChzZWxmKToKLSAgICBhc3NlcnQgc2VsZi5fYm91bmQKLSAgICBjb2RlY3Mub3BlbiA9IHNlbGYuX3JlYWxfY29kZWNzX29wZW4KLSAgICBzeXMubW9kdWxlc1snX19idWlsdGluX18nXS5vcGVuID0gc2VsZi5fcmVhbF9vcGVuCi0gICAgb3MucGF0aC5leGlzdHMgPSBzZWxmLl9yZWFsX2V4aXN0cwotICAgIG9zLndhbGsgPSBzZWxmLl9yZWFsX3dhbGsKLSAgICBvcy5saXN0ZGlyID0gc2VsZi5fcmVhbF9saXN0ZGlyCi0gICAgc2VsZi5fYm91bmQgPSBGYWxzZQotCi0gIGRlZiBBZGRGaWxlKHNlbGYsIHBhdGgsIGNvbnRlbnRzKToKLSAgICBhc3NlcnQgcGF0aCBub3QgaW4gc2VsZi5fZmlsZV9jb250ZW50cwotICAgIHNlbGYuX2ZpbGVfY29udGVudHNbcGF0aF0gPSBjb250ZW50cwotCi0gIGRlZiBfRmFrZU9wZW4oc2VsZiwgcGF0aCwgbW9kZT1Ob25lKToKLSAgICBpZiBtb2RlID09IE5vbmU6Ci0gICAgICBtb2RlID0gJ3InCi0gICAgaWYgbW9kZSA9PSAncicgb3IgbW9kZSA9PSAnclUnIG9yIG1vZGUgPT0gJ3JiJzoKLSAgICAgIGlmIHBhdGggbm90IGluIHNlbGYuX2ZpbGVfY29udGVudHM6Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZWFsX29wZW4ocGF0aCwgbW9kZSkKLSAgICAgIHJldHVybiBXaXRoYWJsZVN0cmluZ0lPKHNlbGYuX2ZpbGVfY29udGVudHNbcGF0aF0pCi0KLSAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKLQotICBkZWYgX0Zha2VDb2RlY3NPcGVuKHNlbGYsIHBhdGgsIG1vZGU9Tm9uZSwgZW5jb2Rpbmc9Tm9uZSk6Ci0gICAgaWYgbW9kZSA9PSBOb25lOgotICAgICAgbW9kZSA9ICdyJwotICAgIGlmIG1vZGUgPT0gJ3InIG9yIG1vZGUgPT0gJ3JVJyBvciBtb2RlID09ICdyYic6Ci0gICAgICBpZiBwYXRoIG5vdCBpbiBzZWxmLl9maWxlX2NvbnRlbnRzOgotICAgICAgICByZXR1cm4gc2VsZi5fcmVhbF9vcGVuKHBhdGgsIG1vZGUpCi0gICAgICByZXR1cm4gV2l0aGFibGVTdHJpbmdJTyhzZWxmLl9maWxlX2NvbnRlbnRzW3BhdGhdKQotCi0gICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCi0KLSAgZGVmIF9GYWtlRXhpc3RzKHNlbGYsIHBhdGgpOgotICAgIGlmIHBhdGggaW4gc2VsZi5fZmlsZV9jb250ZW50czoKLSAgICAgIHJldHVybiBUcnVlCi0gICAgcmV0dXJuIHNlbGYuX3JlYWxfZXhpc3RzKHBhdGgpCi0KLSAgZGVmIF9GYWtlV2FsayhzZWxmLCB0b3ApOgotICAgIGFzc2VydCBvcy5wYXRoLmlzYWJzKHRvcCkKLSAgICBhbGxfZmlsZW5hbWVzID0gc2VsZi5fZmlsZV9jb250ZW50cy5rZXlzKCkKLSAgICBwZW5kaW5nX3ByZWZpeGVzID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgIHBlbmRpbmdfcHJlZml4ZXMuYXBwZW5kKHRvcCkKLSAgICB2aXNpdGVkX3ByZWZpeGVzID0gc2V0KCkKLSAgICB3aGlsZSBsZW4ocGVuZGluZ19wcmVmaXhlcyk6Ci0gICAgICBwcmVmaXggPSBwZW5kaW5nX3ByZWZpeGVzLnBvcGxlZnQoKQotICAgICAgaWYgcHJlZml4IGluIHZpc2l0ZWRfcHJlZml4ZXM6Ci0gICAgICAgIGNvbnRpbnVlCi0gICAgICB2aXNpdGVkX3ByZWZpeGVzLmFkZChwcmVmaXgpCi0gICAgICBpZiBwcmVmaXguZW5kc3dpdGgoJy8nKToKLSAgICAgICAgcHJlZml4X3dpdGhfdHJhaWxpbmdfc2VwID0gcHJlZml4Ci0gICAgICBlbHNlOgotICAgICAgICBwcmVmaXhfd2l0aF90cmFpbGluZ19zZXAgPSBwcmVmaXggKyAnLycKLQotICAgICAgZGlycyA9IHNldCgpCi0gICAgICBmaWxlcyA9IFtdCi0gICAgICBmb3IgZmlsZW5hbWUgaW4gYWxsX2ZpbGVuYW1lczoKLSAgICAgICAgaWYgbm90IGZpbGVuYW1lLnN0YXJ0c3dpdGgocHJlZml4X3dpdGhfdHJhaWxpbmdfc2VwKToKLSAgICAgICAgICBjb250aW51ZQotICAgICAgICByZWxhdGl2ZV90b19wcmVmaXggPSBvcy5wYXRoLnJlbHBhdGgoZmlsZW5hbWUsIHByZWZpeCkKLQotICAgICAgICBkaXJwYXJ0ID0gb3MucGF0aC5kaXJuYW1lKHJlbGF0aXZlX3RvX3ByZWZpeCkKLSAgICAgICAgaWYgbGVuKGRpcnBhcnQpID09IDA6Ci0gICAgICAgICAgZmlsZXMuYXBwZW5kKHJlbGF0aXZlX3RvX3ByZWZpeCkKLSAgICAgICAgICBjb250aW51ZQotICAgICAgICBwYXJ0cyA9IGRpcnBhcnQuc3BsaXQoJy8nKQotICAgICAgICBpZiBsZW4ocGFydHMpID09IDA6Ci0gICAgICAgICAgZGlycy5hZGQoZGlycGFydCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICBpZiBwcmVmaXguZW5kc3dpdGgoJy8nKToKLSAgICAgICAgICAgIHBlbmRpbmcgPSBwcmVmaXggKyBwYXJ0c1swXQotICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwZW5kaW5nID0gcHJlZml4ICsgJy8nICsgcGFydHNbMF0KLSAgICAgICAgICBkaXJzLmFkZChwYXJ0c1swXSkKLSAgICAgICAgICBwZW5kaW5nX3ByZWZpeGVzLmFwcGVuZGxlZnQocGVuZGluZykKLQotICAgICAgZGlycyA9IGxpc3QoZGlycykKLSAgICAgIGRpcnMuc29ydCgpCi0gICAgICB5aWVsZCBwcmVmaXgsIGRpcnMsIGZpbGVzCi0KLSAgZGVmIF9GYWtlTGlzdERpcihzZWxmLCBkaXJuYW1lKToKLSAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZmFrZV9mc191bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZmFrZV9mc191bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdmNzZiMC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Zha2VfZnNfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBvcwotCi1mcm9tIHR2Y20gaW1wb3J0IGZha2VfZnMKLQotY2xhc3MgRmFrZUZTVW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICBkZWYgdGVzdEJhc2ljKHNlbGYpOgotICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQotICAgIGZzLkFkZEZpbGUoJy9ibGFoL3gnLCAnZm9vYmFyJykKLSAgICB3aXRoIGZzOgotICAgICAgYXNzZXJ0IG9zLnBhdGguZXhpc3RzKCcvYmxhaC94JykKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAotICAgICAgICAgICdmb29iYXInLAotICAgICAgICAgIG9wZW4oJy9ibGFoL3gnLCAncicpLnJlYWQoKSkKLQotCi0gIGRlZiB0ZXN0V2l0aGFibGVPcGVuKHNlbGYpOgotICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQotICAgIGZzLkFkZEZpbGUoJy9ibGFoL3gnLCAnZm9vYmFyJykKLSAgICB3aXRoIGZzOgotICAgICAgd2l0aCBvcGVuKCcvYmxhaC94JywgJ3InKSBhcyBmOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnZm9vYmFyJywgZi5yZWFkKCkpCi0KLSAgZGVmIHRlc3RXYWxrKHNlbGYpOgotICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQotICAgIGZzLkFkZEZpbGUoJy94L3cyL3czL3ozLnR4dCcsICcnKQotICAgIGZzLkFkZEZpbGUoJy94L3cvei50eHQnLCAnJykKLSAgICBmcy5BZGRGaWxlKCcveC95LnR4dCcsICcnKQotICAgIGZzLkFkZEZpbGUoJy9hLnR4dCcsICdmb29iYXInKQotICAgIHdpdGggZnM6Ci0gICAgICBnZW4gPSBvcy53YWxrKCcvJykKLSAgICAgIHIgPSBnZW4ubmV4dCgpCi0gICAgICBzZWxmLmFzc2VydEVxdWFscygoJy8nLCBbJ3gnXSwgWydhLnR4dCddKSwgcikKLQotICAgICAgciA9IGdlbi5uZXh0KCkKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCgnL3gnLCBbJ3cnLCAndzInXSwgWyd5LnR4dCddKSwgcikKLQotICAgICAgciA9IGdlbi5uZXh0KCkKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCgnL3gvdycsIFtdLCBbJ3oudHh0J10pLCByKQotCi0gICAgICByID0gZ2VuLm5leHQoKQotICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKCcveC93MicsIFsndzMnXSwgW10pLCByKQotCi0gICAgICByID0gZ2VuLm5leHQoKQotICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKCcveC93Mi93MycsIFtdLCBbJ3ozLnR4dCddKSwgcikKLQotICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogZ2VuLm5leHQoKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2dlbmVyYXRlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjRkMjQ3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMDEgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGNvZGVjcwotaW1wb3J0IGh0dHBsaWIKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IGpzb24KLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdXJsbGliCi1pbXBvcnQgU3RyaW5nSU8KLQotZnJvbSB0dmNtIGltcG9ydCBqc191dGlscwotZnJvbSB0dmNtIGltcG9ydCBtb2R1bGUgYXMgbW9kdWxlX21vZHVsZQotZnJvbSB0dmNtIGltcG9ydCBodG1sX2dlbmVyYXRpb25fY29udHJvbGxlcgotCi0KLXNyY2RpciA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4uIiwgIi4uIiwgIi4uIiwgInNyYyIpKQotCi1odG1sX3dhcm5pbmdfbWVzc2FnZSA9ICIiIgotCi0KLTwhLS0KLVdBUk5JTkc6IFRoaXMgZmlsZSBpcyBhdXRvIGdlbmVyYXRlZC4KLQotICAgICAgICAgRG8gbm90IGVkaXQgZGlyZWN0bHkuCi0tLT4KLSIiIgotCi1qc193YXJuaW5nX21lc3NhZ2UgPSAiIiIKLS8vIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8qIFdBUk5JTkc6IFRoaXMgZmlsZSBpcyBhdXRvIGdlbmVyYXRlZC4KLSAqCi0gKiBEbyBub3QgZWRpdCBkaXJlY3RseS4KLSAqLwotIiIiCi0KLWNzc193YXJuaW5nX21lc3NhZ2UgPSAiIiIKLS8qIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuICovCi0KLS8qIFdBUk5JTkc6IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4KLSAqCi0gKiBEbyBub3QgZWRpdCBkaXJlY3RseS4KLSAqLwotIiIiCi0KLWRlZiBfQXNzZXJ0SXNVVEY4KGYpOgotICBpZiBpc2luc3RhbmNlKGYsIFN0cmluZ0lPLlN0cmluZ0lPKToKLSAgICByZXR1cm4KLSAgYXNzZXJ0IGYuZW5jb2RpbmcgPT0gJ3V0Zi04JwotCi0KLWRlZiBfTWluaWZ5SlMoaW5wdXRfanMpOgotICB0dmNtX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJykpCi0gIHJqc21pbl9wYXRoID0gb3MucGF0aC5hYnNwYXRoKAotICAgICAgb3MucGF0aC5qb2luKHR2Y21fcGF0aCwgJ3RoaXJkX3BhcnR5JywgJ3Jqc21pbicsICdyanNtaW4ucHknKSkKLQotICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSgpIGFzIGY6Ci0gICAgYXJncyA9IFsKLSAgICAgICdweXRob24nLAotICAgICAgcmpzbWluX3BhdGgKLSAgICBdCi0gICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQotICAgIHJlcyA9IHAuY29tbXVuaWNhdGUoaW5wdXQ9aW5wdXRfanMpCi0gICAgZXJyb3Jjb2RlID0gcC53YWl0KCkKLSAgICBpZiBlcnJvcmNvZGUgIT0gMDoKLSAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ3JKU21pbiBleGl0ZWQgd2l0aCBlcnJvciBjb2RlICVkJyAlIGVycm9yY29kZSkKLSAgICAgIHN5cy5zdGRlcnIud3JpdGUocmVzWzFdKQotICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gbWluaWZ5LCBvbWdhaCcpCi0gICAgcmV0dXJuIHJlc1swXQotCi0KLWRlZiBHZW5lcmF0ZUpTKGxvYWRfc2VxdWVuY2UsCi0gICAgICAgICAgICAgICB1c2VfaW5jbHVkZV90YWdzX2Zvcl9zY3JpcHRzPUZhbHNlLAotICAgICAgICAgICAgICAgZGlyX2Zvcl9pbmNsdWRlX3RhZ19yb290PU5vbmUsCi0gICAgICAgICAgICAgICBtaW5pZnk9RmFsc2UsCi0gICAgICAgICAgICAgICByZXBvcnRfc2l6ZXM9RmFsc2UpOgotICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICBHZW5lcmF0ZUpTVG9GaWxlKGYsCi0gICAgICAgICAgICAgICAgICAgbG9hZF9zZXF1ZW5jZSwKLSAgICAgICAgICAgICAgICAgICB1c2VfaW5jbHVkZV90YWdzX2Zvcl9zY3JpcHRzLAotICAgICAgICAgICAgICAgICAgIGRpcl9mb3JfaW5jbHVkZV90YWdfcm9vdCwKLSAgICAgICAgICAgICAgICAgICBtaW5pZnk9bWluaWZ5LAotICAgICAgICAgICAgICAgICAgIHJlcG9ydF9zaXplcz1yZXBvcnRfc2l6ZXMpCi0KLSAgcmV0dXJuIGYuZ2V0dmFsdWUoKQotCi1kZWYgcHRfcGFydHMoc2VsZik6Ci0gIHNsID0gWyd1bmljb2RlIGFuZCA4LWJpdCBzdHJpbmcgcGFydHMgb2YgYWJvdmUgcGFnZSB0ZW1wbGF0ZSddCi0gIGZvciB4IGluIHNlbGYuYnVmbGlzdDoKLSAgICAgIGlmIHR5cGUoeCkgPT0gdHlwZSgnJyk6Ci0gICAgICAgICAgbWF4Y29kZSA9IDAKLSAgICAgICAgICBmb3IgYyBpbiB4OgotICAgICAgICAgICAgICBtYXhjb2RlID0gbWF4KG9yZChjKSwgbWF4Y29kZSkKLSAgICAgICMgc2hvdyBvbmx5IHVuaWNvZGUgb2JqZWN0cyBhbmQgbm9uLWFzY2lpIHN0cmluZ3MKLSAgICAgIGlmIHR5cGUoeCkgPT0gdHlwZSgnJykgYW5kIG1heGNvZGUgPiAxMjc6Ci0gICAgICAgICAgdCA9ICcqKioqTm9uQXNjaWlTdHI6ICcKLSAgICAgIGVsaWYgdHlwZSh4KSA9PSB0eXBlKHUnJyk6Ci0gICAgICAgICAgdCA9ICcqKioqKlVuaWNvZGVTdHI6ICcKLSAgICAgIGVsc2U6Ci0gICAgICAgICAgdCA9IE5vbmUKLSAgICAgIGlmIHQ6Ci0gICAgICAgICAgc2wuYXBwZW5kKHQgKyByZXByKHgpKQotICBzID0gJ1xuJy5qb2luKHNsKQotICByZXR1cm4gcwotCi0KLWRlZiBHZW5lcmF0ZUpTVG9GaWxlKGYsCi0gICAgICAgICAgICAgICAgICAgICBsb2FkX3NlcXVlbmNlLAotICAgICAgICAgICAgICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIGRpcl9mb3JfaW5jbHVkZV90YWdfcm9vdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgbWluaWZ5PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X3NpemVzPUZhbHNlKToKLSAgX0Fzc2VydElzVVRGOChmKQotICBpZiB1c2VfaW5jbHVkZV90YWdzX2Zvcl9zY3JpcHRzIGFuZCBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QgPT0gTm9uZToKLSAgICByYWlzZSBFeGNlcHRpb24oJ011c3QgcHJvdmlkZSBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QnKQotCi0gIGYud3JpdGUoanNfd2FybmluZ19tZXNzYWdlKQotICBmLndyaXRlKCdcbicpCi0KLSAgbG9hZGVyID0gbG9hZF9zZXF1ZW5jZVswXS5sb2FkZXIKLQotICBwb2x5bWVyX3NjcmlwdCA9IGxvYWRlci5Mb2FkUmF3U2NyaXB0KCdjb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5taW4uanMnKQotICBmLndyaXRlKHBvbHltZXJfc2NyaXB0LmNvbnRlbnRzKQotCi0gIGYud3JpdGUoJ1xuJykKLSAgZi53cml0ZSgid2luZG93Ll9UVl9JU19DT01QSUxFRCA9IHRydWU7XG4iKQotCi0gIGlmIG5vdCBtaW5pZnk6Ci0gICAgZmxhdHRlbl90b19maWxlID0gZgotICBlbHNlOgotICAgIGZsYXR0ZW5fdG9fZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKLQotICBmb3IgbW9kdWxlIGluIGxvYWRfc2VxdWVuY2U6Ci0gICAgbW9kdWxlLkFwcGVuZEpTQ29udGVudHNUb0ZpbGUoZmxhdHRlbl90b19maWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyX2Zvcl9pbmNsdWRlX3RhZ19yb290KQotICBpZiBtaW5pZnk6Ci0gICAganMgPSBmbGF0dGVuX3RvX2ZpbGUuZ2V0dmFsdWUoKQotICAgIG1pbmlmaWVkX2pzID0gX01pbmlmeUpTKGpzKQotICAgIGYud3JpdGUobWluaWZpZWRfanMpCi0gICAgZi53cml0ZSgnXG4nKQotCi0gIGlmIHJlcG9ydF9zaXplczoKLSAgICBmb3IgbW9kdWxlIGluIGxvYWRfc2VxdWVuY2U6Ci0gICAgICBzID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgICAgbW9kdWxlLkFwcGVuZEpTQ29udGVudHNUb0ZpbGUocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QpCi0KLSAgICAgICMgQWRkIG1pbmlmaWVkIHNpemUgaW5mby4KLSAgICAgIGpzID0gcy5nZXR2YWx1ZSgpCi0gICAgICBtaW5fanNfc2l6ZSA9IHN0cihsZW4oX01pbmlmeUpTKGpzKSkpCi0KLSAgICAgICMgUHJpbnQgbmFtZXMgZm9yIHRoaXMgbW9kdWxlLiBTb21lIGRvbWFpbi1zcGVjaWZpYyBzaW1wbGlmY2lhdGlvbnMKLSAgICAgICMgYXJlIGluY2x1ZGVkIHRvIG1ha2UgcGl2b3RpbmcgbW9yZSBvYnZpb3VzLgotICAgICAgcGFydHMgPSBtb2R1bGUubmFtZS5zcGxpdCgnLicpCi0gICAgICBpZiBwYXJ0c1s6Ml0gPT0gWydiYXNlJywgJ3VpJ106Ci0gICAgICAgIHBhcnRzID0gWydiYXNlX3VpJ10gKyBwYXJ0c1syOl0KLSAgICAgIGlmIHBhcnRzWzoyXSA9PSBbJ3RyYWNpbmcnLCAnaW1wb3J0ZXInXToKLSAgICAgICAgcGFydHMgPSBbJ2ltcG9ydGVyJ10gKyBwYXJ0c1syOl0KLSAgICAgIHRsbiA9IHBhcnRzWzBdCi0gICAgICBzbG4gPSAnLicuam9pbihwYXJ0c1s6Ml0pCi0KLSAgICAgICMgT3VwdHV0Ci0gICAgICBwcmludCAnJWlcdCVzXHQlc1x0JXNcdCVzJyAlIChsZW4oanMpLCBtaW5fanNfc2l6ZSwgbW9kdWxlLm5hbWUsIHRsbiwgc2xuKQotICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0KLQotY2xhc3MgRXh0cmFTY3JpcHQob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHNjcmlwdF9pZD1Ob25lLCB0ZXh0X2NvbnRlbnQ9Tm9uZSwgY29udGVudF90eXBlPU5vbmUpOgotICAgIGlmIHNjcmlwdF9pZCAhPSBOb25lOgotICAgICAgYXNzZXJ0IHNjcmlwdF9pZFswXSAhPSAnIycKLSAgICBzZWxmLnNjcmlwdF9pZCA9IHNjcmlwdF9pZAotICAgIHNlbGYudGV4dF9jb250ZW50ID0gdGV4dF9jb250ZW50Ci0gICAgc2VsZi5jb250ZW50X3R5cGUgPSBjb250ZW50X3R5cGUKLQotICBkZWYgV3JpdGVUb0ZpbGUoc2VsZiwgb3V0cHV0X2ZpbGUpOgotICAgIF9Bc3NlcnRJc1VURjgob3V0cHV0X2ZpbGUpCi0gICAgYXR0cnMgPSBbXQotICAgIGlmIHNlbGYuc2NyaXB0X2lkOgotICAgICAgYXR0cnMuYXBwZW5kKCdpZD0iJXMiJyAlIHNlbGYuc2NyaXB0X2lkKQotICAgIGlmIHNlbGYuY29udGVudF90eXBlOgotICAgICAgYXR0cnMuYXBwZW5kKCdjb250ZW50LXR5cGU9IiVzIicgJSBzZWxmLmNvbnRlbnRfdHlwZSkKLQotICAgIGlmIGxlbihhdHRycykgPiAwOgotICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoJzxzY3JpcHQgJXM+XG4nICUgJyAnLmpvaW4oYXR0cnMpKQotICAgIGVsc2U6Ci0gICAgICBvdXRwdXRfZmlsZS53cml0ZSgnPHNjcmlwdD5cbicpCi0gICAgaWYgc2VsZi50ZXh0X2NvbnRlbnQ6Ci0gICAgICBvdXRwdXRfZmlsZS53cml0ZShzZWxmLnRleHRfY29udGVudCkKLSAgICBvdXRwdXRfZmlsZS53cml0ZSgnPC9zY3JpcHQ+XG4nKQotCi0KLWRlZiBfTWluaWZ5Q1NTKGNzc190ZXh0KToKLSAgdHZjbV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbigKLSAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQotICByY3NzbWluX3BhdGggPSBvcy5wYXRoLmFic3BhdGgoCi0gICAgICBvcy5wYXRoLmpvaW4odHZjbV9wYXRoLCAndGhpcmRfcGFydHknLCAncmNzc21pbicsICdyY3NzbWluLnB5JykpCi0KLSAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoKSBhcyBmOgotICAgIHJjc3NtaW5fYXJncyA9IFsncHl0aG9uJywgcmNzc21pbl9wYXRoXQotICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKHJjc3NtaW5fYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQotICAgIHJlcyA9IHAuY29tbXVuaWNhdGUoaW5wdXQ9Y3NzX3RleHQpCi0gICAgZXJyb3Jjb2RlID0gcC53YWl0KCkKLSAgICBpZiBlcnJvcmNvZGUgIT0gMDoKLSAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ3JDU1NtaW4gZXhpdGVkIHdpdGggZXJyb3IgY29kZSAlZCcgJSBlcnJvcmNvZGUpCi0gICAgICBzeXMuc3RkZXJyLndyaXRlKHJlc1sxXSkKLSAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIGdlbmVyYXRlIGNzcyBmb3IgJXMuJyAlIGNzc190ZXh0KQotICAgIHJldHVybiByZXNbMF0KLQotCi1kZWYgR2VuZXJhdGVTdGFuZGFsb25lSFRNTEFzU3RyaW5nKCphcmdzLCAqKmt3YXJncyk6Ci0gIGYgPSBTdHJpbmdJTy5TdHJpbmdJTygpCi0gIEdlbmVyYXRlU3RhbmRhbG9uZUhUTUxUb0ZpbGUoZiwgKmFyZ3MsICoqa3dhcmdzKQotICByZXR1cm4gZi5nZXR2YWx1ZSgpCi0KLQotZGVmIEdlbmVyYXRlU3RhbmRhbG9uZUhUTUxUb0ZpbGUob3V0cHV0X2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkX3NlcXVlbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXR0ZW5lZF9qc191cmw9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhX3NjcmlwdHM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmlmeT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydF9zaXplcz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9odG1sX2hlYWRfYW5kX2JvZHk9VHJ1ZSk6Ci0gIF9Bc3NlcnRJc1VURjgob3V0cHV0X2ZpbGUpCi0gIGV4dHJhX3NjcmlwdHMgPSBleHRyYV9zY3JpcHRzIG9yIFtdCi0KLSAgaWYgb3V0cHV0X2h0bWxfaGVhZF9hbmRfYm9keToKLSAgICBvdXRwdXRfZmlsZS53cml0ZSgiIiI8IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotICA8aGVhZCBpMThuLXZhbHVlcz0iZGlyOnRleHRkaXJlY3Rpb247Ij4KLSAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotICAgICIiIikKLSAgICBpZiB0aXRsZToKLSAgICAgIG91dHB1dF9maWxlLndyaXRlKCIiIiAgPHRpdGxlPiVzPC90aXRsZT4KLSAgIiIiICUgdGl0bGUpCi0gIGVsc2U6Ci0gICAgYXNzZXJ0IHRpdGxlID09IE5vbmUKLQotICBsb2FkZXIgPSBsb2FkX3NlcXVlbmNlWzBdLmxvYWRlcgotCi0gIHdyaXR0ZW5fc3R5bGVfc2hlZXRzID0gc2V0KCkKLQotICBjbGFzcyBIVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIoaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIuSFRNTEdlbmVyYXRpb25Db250cm9sbGVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kdWxlKToKLSAgICAgIHNlbGYubW9kdWxlID0gbW9kdWxlCi0gICAgZGVmIEdldEhUTUxGb3JTdHlsZXNoZWV0SFJlZihzZWxmLCBocmVmKToKLSAgICAgIHJlc291cmNlID0gc2VsZi5tb2R1bGUuSFJlZlRvUmVzb3VyY2UoCi0gICAgICAgICAgaHJlZiwgJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iJXMiPicgJSBocmVmKQotICAgICAgc3R5bGVfc2hlZXQgPSBsb2FkZXIuTG9hZFN0eWxlU2hlZXQocmVzb3VyY2UubmFtZSkKLQotICAgICAgaWYgc3R5bGVfc2hlZXQgaW4gd3JpdHRlbl9zdHlsZV9zaGVldHM6Ci0gICAgICAgIHJldHVybiBOb25lCi0gICAgICB3cml0dGVuX3N0eWxlX3NoZWV0cy5hZGQoc3R5bGVfc2hlZXQpCi0KLSAgICAgIHRleHQgPSBzdHlsZV9zaGVldC5jb250ZW50c193aXRoX2lubGluZWRfaW1hZ2VzCi0gICAgICBpZiBtaW5pZnk6Ci0gICAgICAgIHRleHQgPSBfTWluaWZ5Q1NTKHRleHQpCi0gICAgICByZXR1cm4gIjxzdHlsZT5cbiVzXG48L3N0eWxlPiIgJSB0ZXh0Ci0KLSAgZm9yIG1vZHVsZSBpbiBsb2FkX3NlcXVlbmNlOgotICAgIGN0bCA9IEhUTUxHZW5lcmF0aW9uQ29udHJvbGxlcihtb2R1bGUpCi0gICAgbW9kdWxlLkFwcGVuZEhUTUxDb250ZW50c1RvRmlsZShvdXRwdXRfZmlsZSwgY3RsLCBtaW5pZnk9bWluaWZ5KQotCi0gIGlmIGZsYXR0ZW5lZF9qc191cmw6Ci0gICAgb3V0cHV0X2ZpbGUud3JpdGUoJzxzY3JpcHQgc3JjPSIlcyI+PC9zY3JpcHQ+XG4nICUgZmxhdHRlbmVkX2pzX3VybCkKLSAgZWxzZToKLSAgICBvdXRwdXRfZmlsZS53cml0ZSgnPHNjcmlwdD5cbicpCi0gICAgeCA9IEdlbmVyYXRlSlMobG9hZF9zZXF1ZW5jZSwgbWluaWZ5PW1pbmlmeSwgcmVwb3J0X3NpemVzPXJlcG9ydF9zaXplcykKLSAgICBvdXRwdXRfZmlsZS53cml0ZSh4KQotICAgIG91dHB1dF9maWxlLndyaXRlKCc8L3NjcmlwdD5cbicpCi0KLSAgZm9yIGV4dHJhX3NjcmlwdCBpbiBleHRyYV9zY3JpcHRzOgotICAgIGV4dHJhX3NjcmlwdC5Xcml0ZVRvRmlsZShvdXRwdXRfZmlsZSkKLQotICBpZiBvdXRwdXRfaHRtbF9oZWFkX2FuZF9ib2R5OgotICAgIG91dHB1dF9maWxlLndyaXRlKCIiIjwvaGVhZD4KLSAgPGJvZHk+Ci0gIDwvYm9keT4KLTwvaHRtbD4KLSIiIikKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGVfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2dlbmVyYXRlX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDA3ZmMyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGVfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgU3RyaW5nSU8KLQotZnJvbSB0dmNtIGltcG9ydCBnZW5lcmF0ZQotZnJvbSB0dmNtIGltcG9ydCBmYWtlX2ZzCi1mcm9tIHR2Y20gaW1wb3J0IHByb2plY3QgYXMgcHJvamVjdF9tb2R1bGUKLWZyb20gdHZjbSBpbXBvcnQgcmVzb3VyY2VfbG9hZGVyCi0KLWNsYXNzIEdlbmVyYXRlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgc2VsZi5mcyA9IGZha2VfZnMuRmFrZUZTKCkKLSAgICBzZWxmLmZzLkFkZEZpbGUoJy94L2Zvby9teV9tb2R1bGUuaHRtbCcsICIiIgotPCFET0NUWVBFIGh0bWw+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Zvby9vdGhlcl9tb2R1bGUuaHRtbCI+Ci0iIiIpCi0gICAgc2VsZi5mcy5BZGRGaWxlKCcveC9mb28vb3RoZXJfbW9kdWxlLmh0bWwnLCAiIiIKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii9mb28vcmF3L3Jhd19zY3JpcHQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgICAndXNlIHN0cmljdCc7Ci0gICAgSGVsbG9Xb3JsZCgpOwotPC9zY3JpcHQ+Ci0iIiIpCi0gICAgc2VsZi5mcy5BZGRGaWxlKCcveC9mb28vcmF3L3Jhd19zY3JpcHQuanMnLCAiIiIKLS8qIHJhdyBzY3JpcHQgKi8KLSIiIikKLSAgICBzZWxmLmZzLkFkZEZpbGUoJy94L2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLm1pbi5qcycsICIiIgotIiIiKQotCi0gICAgc2VsZi5wcm9qZWN0ID0gcHJvamVjdF9tb2R1bGUuUHJvamVjdCgKLSAgICAgICAgWycveCddKQotCi0gIGRlZiB0ZXN0SlNHZW5lcmF0aW9uKHNlbGYpOgotICAgIHdpdGggc2VsZi5mczoKLSAgICAgIGxvYWRfc2VxdWVuY2UgPSBzZWxmLnByb2plY3QuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZUZpbGVuYW1lcygKLSAgICAgICAgICBbJ2Zvby9teV9tb2R1bGUuaHRtbCddKQotICAgICAgcmVzID0gZ2VuZXJhdGUuR2VuZXJhdGVKUyhsb2FkX3NlcXVlbmNlKQotCi0gIGRlZiB0ZXN0SFRNTEdlbmVyYXRpb24oc2VsZik6Ci0gICAgd2l0aCBzZWxmLmZzOgotICAgICAgbG9hZF9zZXF1ZW5jZSA9IHNlbGYucHJvamVjdC5DYWxjTG9hZFNlcXVlbmNlRm9yTW9kdWxlRmlsZW5hbWVzKAotICAgICAgICAgIFsnZm9vL215X21vZHVsZS5odG1sJ10pCi0gICAgICByZXMgPSBnZW5lcmF0ZS5HZW5lcmF0ZVN0YW5kYWxvbmVIVE1MQXNTdHJpbmcobG9hZF9zZXF1ZW5jZSwgJ1RpdGxlJykKLSAgICAgIGFzc2VydCAnSGVsbG9Xb3JsZCgpOycgaW4gcmVzCi0KLQotICBkZWYgdGVzdEV4dHJhU2NyaXB0V2l0aFdyaXRlQ29udGVudHNGdW5jKHNlbGYpOgotICAgIHdpdGggc2VsZi5mczoKLSAgICAgIGxvYWRfc2VxdWVuY2UgPSBzZWxmLnByb2plY3QuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZUZpbGVuYW1lcygKLSAgICAgICAgICBbJ2Zvby9teV9tb2R1bGUuaHRtbCddKQotCi0gICAgICBjbGFzcyBFeHRyYVNjcmlwdChnZW5lcmF0ZS5FeHRyYVNjcmlwdCk6Ci0gICAgICAgIGRlZiBXcml0ZVRvRmlsZShzZWxmLCBmKToKLSAgICAgICAgICBmLndyaXRlKCc8c2NyaXB0PkV4dHJhU2NyaXB0ITwvc2NyaXB0PicpCi0KLSAgICAgIHJlcyA9IGdlbmVyYXRlLkdlbmVyYXRlU3RhbmRhbG9uZUhUTUxBc1N0cmluZygKLSAgICAgICAgICBsb2FkX3NlcXVlbmNlLCAnVGl0bGUnLCBleHRyYV9zY3JpcHRzPVtFeHRyYVNjcmlwdCgpXSkKLSAgICAgIGFzc2VydCAnRXh0cmFTY3JpcHQnIGluIHJlcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9odG1sX2dlbmVyYXRpb25fY29udHJvbGxlci5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNTQxZGIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9odG1sX2dlbmVyYXRpb25fY29udHJvbGxlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSIiIlRoaXMgbW9kdWxlIGNvbnRhaW5zIHRoZSBNb2R1bGUgY2xhc3MgYW5kIG90aGVyIGNsYXNzZXMgZm9yIHJlc291cmNlcy4KLQotVGhlIE1vZHVsZSBjbGFzcyByZXByZXNlbnRzIGEgbW9kdWxlIGluIHRoZSB0cmFjZSB2aWV3ZXIgc3lzdGVtLiBBIG1vZHVsZSBoYXMKLWEgbmFtZSwgYW5kIG1heSByZXF1aXJlIGEgdmFyaWV0eSBvZiBvdGhlciByZXNvdXJjZXMsIHN1Y2ggYXMgc3R5bGVzaGVldHMsCi10ZW1wbGF0ZSBvYmplY3RzLCByYXcgamF2YXNjcmlwdCwgb3Igb3RoZXIgbW9kdWxlcy4KLQotT3RoZXIgcmVzb3VyY2VzIGluY2x1ZGUgSFRNTCB0ZW1wbGF0ZXMsIHJhdyBqYXZhc2NyaXB0IGZpbGVzLCBhbmQgc3R5bGVzaGVldHMuCi0iIiIKLQotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWZyb20gdHZjbSBpbXBvcnQgc3R5bGVfc2hlZXQKLQotCi1jbGFzcyBIVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuY3VycmVudF9tb2R1bGUgPSBOb25lCi0KLSAgZGVmIEdldEhUTUxGb3JTdHlsZXNoZWV0SFJlZihzZWxmLCBocmVmKToKLSAgICByZXR1cm4gTm9uZQotCi0gIGRlZiBHZXRIVE1MRm9ySW5saW5lU3R5bGVzaGVldChzZWxmLCBjb250ZW50cyk6Ci0gICAgaWYgc2VsZi5jdXJyZW50X21vZHVsZSA9PSBOb25lOgotICAgICAgaWYgcmUuc2VhcmNoKCd1cmxcKC4rXCknLCBjb250ZW50cyk6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGVmYXVsdCBIVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIgY2Fubm90IGhhbmRsZSBpbmxpbmUgc3R5bGUgdXJscycpCi0gICAgICByZXR1cm4gY29udGVudHMKLQotICAgIG1vZHVsZV9kaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKHNlbGYuY3VycmVudF9tb2R1bGUucmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkKLSAgICBzcyA9IHN0eWxlX3NoZWV0LlBhcnNlZFN0eWxlU2hlZXQoCi0gICAgICAgIHNlbGYuY3VycmVudF9tb2R1bGUubG9hZGVyLCBtb2R1bGVfZGlybmFtZSwgY29udGVudHMpCi0gICAgcmV0dXJuIHNzLmNvbnRlbnRzX3dpdGhfaW5saW5lZF9pbWFnZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vaHRtbF9tb2R1bGUucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfbW9kdWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTBkYjIxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vaHRtbF9tb2R1bGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgb3MKLWltcG9ydCByZQotCi1mcm9tIHR2Y20gaW1wb3J0IG1vZHVsZQotZnJvbSB0dmNtIGltcG9ydCBqc191dGlscwotZnJvbSB0dmNtIGltcG9ydCBwYXJzZV9odG1sX2RlcHMKLWZyb20gdHZjbSBpbXBvcnQgc3R5bGVfc2hlZXQKLQotZGVmIElzSFRNTFJlc291cmNlVGhlTW9kdWxlR2l2ZW5Db25mbGljdGluZ1Jlc291cmNlTmFtZXMoCi0gICAganNfcmVzb3VyY2UsIGh0bWxfcmVzb3VyY2UpOgotICByZXR1cm4gJ3BvbHltZXItZWxlbWVudCcgaW4gaHRtbF9yZXNvdXJjZS5jb250ZW50cwotCi1jbGFzcyBIVE1MTW9kdWxlKG1vZHVsZS5Nb2R1bGUpOgotICBAcHJvcGVydHkKLSAgZGVmIF9tb2R1bGVfZGlyX25hbWUoc2VsZik6Ci0gICAgcmV0dXJuIG9zLnBhdGguZGlybmFtZShzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgpCi0KLSAgZGVmIFBhcnNlKHNlbGYpOgotICAgIHRyeToKLSAgICAgIHBhcnNlcl9yZXN1bHRzID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKS5QYXJzZShzZWxmLmNvbnRlbnRzKQotICAgIGV4Y2VwdCBFeGNlcHRpb24sIGV4OgotICAgICAgcmFpc2UgRXhjZXB0aW9uKCdXaGlsZSBwYXJzaW5nICVzOiAlcycgJSAoc2VsZi5uYW1lLCBzdHIoZXgpKSkKLQotICAgIHNlbGYuZGVwZW5kZW5jeV9tZXRhZGF0YSA9IFBhcnNlKHNlbGYubG9hZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmFtZSwgc2VsZi5fbW9kdWxlX2Rpcl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXNDb21wb25lbnQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXJfcmVzdWx0cykKLSAgICBzZWxmLl9wYXJzZXJfcmVzdWx0cyA9IHBhcnNlcl9yZXN1bHRzCi0KLSAgZGVmIExvYWQoc2VsZik6Ci0gICAgc3VwZXIoSFRNTE1vZHVsZSwgc2VsZikuTG9hZCgpCi0KLSAgICByZWFjaGFibGVfbmFtZXMgPSBzZXQoW20ubmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG0gaW4gc2VsZi5hbGxfZGVwZW5kZW50X21vZHVsZXNfcmVjdXJzaXZlXSkKLSAgICBpZiAndHIuZXhwb3J0VG8nIGluIHNlbGYuY29udGVudHM6Ci0gICAgICBpZiAnYmFzZS5iYXNlJyBub3QgaW4gcmVhY2hhYmxlX25hbWVzOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVzOiBEb2VzIG5vdCBoYXZlIGEgZGVwZW5kZW5jeSBvbiBiYXNlJyAlIG9zLnBhdGgucmVscGF0aChzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgpKQotCi0gICAgIiIiCi0gICAgaWYgJ3RyLnVuaXR0ZXN0LnRlc3RTdWl0ZScgaW4gc2VsZi5jb250ZW50czoKLSAgICAgIGlmICd0ci51bml0dGVzdCcgbm90IGluIHJlYWNoYWJsZV9uYW1lczoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCclczogRG9lcyBub3QgaGF2ZSBhIGRlcGVuZGVuY3kgb24gdHIudW5pdHRlc3QnICUgb3MucGF0aC5yZWxwYXRoKHNlbGYucmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkpCi0gICAgIiIiCi0KLSAgZGVmIEdldFRWQ01EZXBzTW9kdWxlVHlwZShzZWxmKToKLSAgICByZXR1cm4gJ3R2Y20uSFRNTF9NT0RVTEVfVFlQRScKLQotICBkZWYgQXBwZW5kSlNDb250ZW50c1RvRmlsZShzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfaW5jbHVkZV90YWdzX2Zvcl9zY3JpcHRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QpOgotICAgIHN1cGVyKEhUTUxNb2R1bGUsIHNlbGYpLkFwcGVuZEpTQ29udGVudHNUb0ZpbGUoZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QpCi0gICAgZm9yIGlubGluZV9zY3JpcHQgaW4gc2VsZi5fcGFyc2VyX3Jlc3VsdHMuaW5saW5lX3NjcmlwdHM6Ci0gICAgICBpZiBub3QgSGFzUG9seW1lckNhbGwoaW5saW5lX3NjcmlwdC5zdHJpcHBlZF9jb250ZW50cyk6Ci0gICAgICAgIGpzID0gaW5saW5lX3NjcmlwdC5jb250ZW50cwotICAgICAgZWxzZToKLSAgICAgICAganMgPSBHZXRJbmxpbmVTY3JpcHRDb250ZW50V2l0aFBvbHltZXJpemluZ0FwcGxpZWQoaW5saW5lX3NjcmlwdCkKLQotICAgICAganMgPSBqc191dGlscy5Fc2NhcGVKU0lmTmVlZGVkKGpzKQotCi0gICAgICBmLndyaXRlKGpzKQotICAgICAgZi53cml0ZSgiXG4iKQotCi0gIGRlZiBBcHBlbmRIVE1MQ29udGVudHNUb0ZpbGUoc2VsZiwgZiwgY3RsLCBtaW5pZnk9RmFsc2UpOgotICAgIHN1cGVyKEhUTUxNb2R1bGUsIHNlbGYpLkFwcGVuZEhUTUxDb250ZW50c1RvRmlsZShmLCBjdGwpCi0KLSAgICBjdGwuY3VycmVudF9tb2R1bGUgPSBzZWxmCi0gICAgdHJ5OgotICAgICAgZm9yIHBpZWNlIGluIHNlbGYuX3BhcnNlcl9yZXN1bHRzLllpZWxkSFRNTEluUGllY2VzKGN0bCwgbWluaWZ5PW1pbmlmeSk6Ci0gICAgICAgIGYud3JpdGUocGllY2UpCi0gICAgZmluYWxseToKLSAgICAgIGN0bC5jdXJyZW50X21vZHVsZSA9IE5vbmUKLQotICBkZWYgSFJlZlRvUmVzb3VyY2Uoc2VsZiwgaHJlZiwgdGFnX2Zvcl9lcnJfbXNnKToKLSAgICByZXR1cm4gX0hSZWZUb1Jlc291cmNlKHNlbGYubG9hZGVyLCBzZWxmLm5hbWUsIHNlbGYuX21vZHVsZV9kaXJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWYsIHRhZ19mb3JfZXJyX21zZykKLQotCi0gIGRlZiBBcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKAotICAgICAgc2VsZiwgZGVwZW5kZW50X2ZpbGVuYW1lcywgaW5jbHVkZV9yYXdfc2NyaXB0cz1UcnVlKToKLSAgICBzdXBlcihIVE1MTW9kdWxlLCBzZWxmKS5BcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKAotICAgICAgZGVwZW5kZW50X2ZpbGVuYW1lcywgaW5jbHVkZV9yYXdfc2NyaXB0cykKLSAgICBmb3IgY29udGVudHMgaW4gc2VsZi5fcGFyc2VyX3Jlc3VsdHMuaW5saW5lX3N0eWxlc2hlZXRzOgotICAgICAgbW9kdWxlX2Rpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKQotICAgICAgc3MgPSBzdHlsZV9zaGVldC5QYXJzZWRTdHlsZVNoZWV0KAotICAgICAgICAgIHNlbGYubG9hZGVyLCBtb2R1bGVfZGlybmFtZSwgY29udGVudHMpCi0gICAgICBzcy5BcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKGRlcGVuZGVudF9maWxlbmFtZXMpCi0KLQotZGVmIEdldElubGluZVNjcmlwdENvbnRlbnRXaXRoUG9seW1lcml6aW5nQXBwbGllZChpbmxpbmVfc2NyaXB0KToKLSAgcG9seW1lcl9lbGVtZW50X25hbWUgPSBHZXRQb2x5bWVyRWxlbWVudE5hbWVGcm9tT3BlblRhZ3MoCi0gICAgICBpbmxpbmVfc2NyaXB0Lm9wZW5fdGFncykKLSAgaWYgcG9seW1lcl9lbGVtZW50X25hbWUgPT0gTm9uZToKLSAgICByYWlzZSBtb2R1bGUuRGVwc0V4Y2VwdGlvbigKLSAgICAgICAgJ1RhZ2xlc3MgUG9seW1lcigpIGNhbGwgbXVzdCBiZSBtYWRlIGluc2lkZSBhIDxwb2x5bWVyLWVsZW1lbnQ+IHRhZycpCi0KLSAgcmV0dXJuIFVwZGF0ZVBvbHltZXJDYWxsc0dpdmVuRWxlbWVudE5hbWUoCi0gICAgaW5saW5lX3NjcmlwdC5zdHJpcHBlZF9jb250ZW50cywgcG9seW1lcl9lbGVtZW50X25hbWUpCi0KLWRlZiBHZXRQb2x5bWVyRWxlbWVudE5hbWVGcm9tT3BlblRhZ3Mob3Blbl90YWdzKToKLSAgZm91bmRfdGFnID0gTm9uZQotICBmb3IgdGFnIGluIHJldmVyc2VkKG9wZW5fdGFncyk6Ci0gICAgaWYgdGFnLnRhZyA9PSAncG9seW1lci1lbGVtZW50JzoKLSAgICAgIGZvdW5kX3RhZyA9IHRhZwotICAgICAgYnJlYWsKLQotICBpZiBub3QgZm91bmRfdGFnOgotICAgIHJldHVybiBOb25lCi0KLSAgZm9yIGF0dHIgaW4gZm91bmRfdGFnLmF0dHJzOgotICAgIGlmIGF0dHJbMF0gPT0gJ25hbWUnOgotICAgICAgcmV0dXJuIGF0dHJbMV0KLQotICByZXR1cm4gTm9uZQotCi1fUE9MWU1FUl9SRV8xID0gJ1BvbHltZXIoXHMqPylcKChccyo/KVx7JwotX1BPTFlNRVJfUkVfMiA9ICdQb2x5bWVyKFxzKj8pXCgoXHMqPylcKScKLQotZGVmIEhhc1BvbHltZXJDYWxsKGpzKToKLSAgaWYgcmUuc2VhcmNoKF9QT0xZTUVSX1JFXzEsIGpzKSAhPSBOb25lOgotICAgIHJldHVybiBUcnVlCi0gIGlmIHJlLnNlYXJjaChfUE9MWU1FUl9SRV8yLCBqcykgIT0gTm9uZToKLSAgICByZXR1cm4gVHJ1ZQotICByZXR1cm4gRmFsc2UKLQotZGVmIFVwZGF0ZVBvbHltZXJDYWxsc0dpdmVuRWxlbWVudE5hbWUoanMsIHBvbHltZXJfZWxlbWVudF9uYW1lKToKLSAgaWYgcmUuc2VhcmNoKF9QT0xZTUVSX1JFXzEsIGpzKSAhPSBOb25lOgotICAgIHJldHVybiByZS5zdWIoX1BPTFlNRVJfUkVfMSwKLSAgICAgICAgICAgICAgICAgICdQb2x5bWVyXGc8MT4oXGc8Mj5cJyVzXCcsIHsnICUgcG9seW1lcl9lbGVtZW50X25hbWUsCi0gICAgICAgICAgICAgICAgICBqcywgMCwgcmUuRE9UQUxMKQotICBpZiByZS5zZWFyY2goX1BPTFlNRVJfUkVfMiwganMpICE9IE5vbmU6Ci0gICAgcmV0dXJuIHJlLnN1YihfUE9MWU1FUl9SRV8yLAotICAgICAgICAgICAgICAgICAgJ1BvbHltZXJcZzwxPihcZzwyPlwnJXNcJyknICUgcG9seW1lcl9lbGVtZW50X25hbWUsCi0gICAgICAgICAgICAgICAgICBqcywgMCwgcmUuRE9UQUxMKQotICBhc3NlcnQgRmFsc2UsICdUaGlzIHNob3VsZCBuZXZlciBiZSByZWFjaGVkJwotCi1kZWYgX0hSZWZUb1Jlc291cmNlKGxvYWRlciwgbW9kdWxlX25hbWUsIG1vZHVsZV9kaXJfbmFtZSwgaHJlZiwgdGFnX2Zvcl9lcnJfbXNnKToKLSAgaWYgaHJlZlswXSA9PSAnLyc6Ci0gICAgcmVzb3VyY2UgPSBsb2FkZXIuRmluZFJlc291cmNlR2l2ZW5SZWxhdGl2ZVBhdGgoaHJlZlsxOl0pCi0gIGVsc2U6Ci0gICAgYWJzcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKAotICAgICAgICBtb2R1bGVfZGlyX25hbWUsIGhyZWYpKQotICAgIHJlc291cmNlID0gbG9hZGVyLkZpbmRSZXNvdXJjZUdpdmVuQWJzb2x1dGVQYXRoKGFic3BhdGgpCi0KLSAgaWYgbm90IHJlc291cmNlOgotICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKCdJbiAlcywgdGhlICVzIGNhbm5vdCBiZSBsb2FkZWQgYmVjYXVzZSAnIFwKLSAgICAgICAgICAgICAgICAgICAgJ2l0IGlzIG5vdCBpbiB0aGUgc2VhcmNoIHBhdGgnICUgKG1vZHVsZV9uYW1lLCB0YWdfZm9yX2Vycl9tc2cpKQotICB0cnk6Ci0gICAgcmVzb3VyY2VfY29udGVudHMgPSByZXNvdXJjZS5jb250ZW50cwotICBleGNlcHQ6Ci0gICAgcmFpc2UgbW9kdWxlLkRlcHNFeGNlcHRpb24oJ0luICVzLCAlcyBwb2ludHMgYXQgYSBub25leGlzdGFudCBmaWxlICcgJSAoCi0gICAgICBtb2R1bGVfbmFtZSwKLSAgICAgIHRhZ19mb3JfZXJyX21zZykpCi0gIHJldHVybiByZXNvdXJjZQotCi0KLWRlZiBQYXJzZShsb2FkZXIsIG1vZHVsZV9uYW1lLCBtb2R1bGVfZGlyX25hbWUsIGlzX2NvbXBvbmVudCwgcGFyc2VyX3Jlc3VsdHMpOgotICByZXMgPSBtb2R1bGUuTW9kdWxlRGVwZW5kZW5jeU1ldGFkYXRhKCkKLSAgaWYgaXNfY29tcG9uZW50OgotICAgIHJldHVybiByZXMKLQotICBpZiBwYXJzZXJfcmVzdWx0cy5oYXNfZGVjbCA9PSBGYWxzZToKLSAgICByYWlzZSBFeGNlcHRpb24oJyVzIG11c3QgaGF2ZSA8IURPQ1RZUEUgaHRtbD4nICUgbW9kdWxlX25hbWUpCi0KLSAgIyBFeHRlcm5hbCBzY3JpcHQgcmVmZXJlbmNlcy4uCi0gIGZvciBocmVmIGluIHBhcnNlcl9yZXN1bHRzLnNjcmlwdHNfZXh0ZXJuYWw6Ci0gICAgcmVzb3VyY2UgPSBfSFJlZlRvUmVzb3VyY2UobG9hZGVyLCBtb2R1bGVfbmFtZSwgbW9kdWxlX2Rpcl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnX2Zvcl9lcnJfbXNnPSc8c2NyaXB0IHNyYz0iJXMiPicgJSBocmVmKQotICAgIHJlcy5kZXBlbmRlbnRfcmF3X3NjcmlwdF9yZWxhdGl2ZV9wYXRocy5hcHBlbmQocmVzb3VyY2UudW5peF9zdHlsZV9yZWxhdGl2ZV9wYXRoKQotCi0gICMgRXh0ZXJuYWwgaW1wb3J0cy4gTW9zdGx5IHRoZSBzYW1lIGFzIDxzY3JpcHQ+LCBidXQgd2Uga25vdyBpdHMgYSBtb2R1bGUuCi0gIGZvciBocmVmIGluIHBhcnNlcl9yZXN1bHRzLmltcG9ydHM6Ci0gICAgaWYgbm90IGhyZWYuZW5kc3dpdGgoJy5odG1sJyk6Ci0gICAgICByYWlzZSBFeGNlcHRpb24oJ0luICVzLCB0aGUgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9IiVzIj4gbXVzdCBwb2ludCBhdCBhICcgXAotICAgICAgICAgICAgICAgICAgICAgICdmaWxlIHdpdGggYW4gaHRtbCBzdWZmaXgnICUgKG1vZHVsZV9uYW1lLCBocmVmKSkKLQotICAgIHJlc291cmNlID0gX0hSZWZUb1Jlc291cmNlKGxvYWRlciwgbW9kdWxlX25hbWUsIG1vZHVsZV9kaXJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ19mb3JfZXJyX21zZz0nPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9IiVzIj4nICUgaHJlZikKLSAgICByZXMuZGVwZW5kZW50X21vZHVsZV9uYW1lcy5hcHBlbmQocmVzb3VyY2UubmFtZSkKLQotICAjIFZhbGlkYXRlIHRoZSBpbmxpbmUgc2NyaXB0cy4KLSAgZm9yIGlubGluZV9zY3JpcHQgaW4gcGFyc2VyX3Jlc3VsdHMuaW5saW5lX3NjcmlwdHM6Ci0gICAgc3RyaXBwZWRfdGV4dCA9IGlubGluZV9zY3JpcHQuc3RyaXBwZWRfY29udGVudHMKLSAgICB0cnk6Ci0gICAgICBqc191dGlscy5WYWxpZGF0ZVVzZXNTdHJpY3RNb2RlKCdfJywgc3RyaXBwZWRfdGV4dCkKLSAgICBleGNlcHQ6Ci0gICAgICByYWlzZSBFeGNlcHRpb24oJyVzIGhhcyBhbiBpbmxpbmUgc2NyaXB0IHRhZyB0aGF0IGlzIG1pc3NpbmcgJyBcCi0gICAgICAgICAgICAgICAgICAgICAgJ2EgXCd1c2Ugc3RyaWN0XCcgZGlyZWN0aXZlLicgJSBtb2R1bGVfbmFtZSkKLQotICAjIFN0eWxlIHNoZWV0cwotICBmb3IgaHJlZiBpbiBwYXJzZXJfcmVzdWx0cy5zdHlsZXNoZWV0czoKLSAgICByZXNvdXJjZSA9IF9IUmVmVG9SZXNvdXJjZShsb2FkZXIsIG1vZHVsZV9uYW1lLCBtb2R1bGVfZGlyX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdfZm9yX2Vycl9tc2c9JzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iJXMiPicgJSBocmVmKQotICAgIHJlcy5zdHlsZV9zaGVldF9uYW1lcy5hcHBlbmQocmVzb3VyY2UubmFtZSkKLQotICByZXR1cm4gcmVzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfbW9kdWxlX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9odG1sX21vZHVsZV91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRhYmQwMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfbW9kdWxlX3VuaXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzYwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0IG9zCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBTdHJpbmdJTwotCi1mcm9tIHR2Y20gaW1wb3J0IGZha2VfZnMKLWZyb20gdHZjbSBpbXBvcnQgZ2VuZXJhdGUKLWZyb20gdHZjbSBpbXBvcnQgaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIKLWZyb20gdHZjbSBpbXBvcnQgaHRtbF9tb2R1bGUKLWZyb20gdHZjbSBpbXBvcnQgbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHBhcnNlX2h0bWxfZGVwcwotZnJvbSB0dmNtIGltcG9ydCBwcm9qZWN0IGFzIHByb2plY3RfbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlCi1mcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlX2xvYWRlciBhcyByZXNvdXJjZV9sb2FkZXIKLWZyb20gdHZjbSBpbXBvcnQgc3RyaXBfanNfY29tbWVudHMKLQotY2xhc3MgUmVzb3VyY2VXaXRoRmFrZUNvbnRlbnRzKHJlc291cmNlLlJlc291cmNlKToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRvcGxldmVsX2RpciwgYWJzb2x1dGVfcGF0aCwgZmFrZV9jb250ZW50cyk6Ci0gICAgIiIiQSByZXNvdXJjZSB3aXRoIGV4cGxpY2l0bHkgcHJvdmlkZWQgY29udGVudHMuCi0KLSAgICBJZiB0aGUgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QsIHRoZW4gcGFzcyBmYWtlX2NvbnRlbnRzPU5vbmUuIFRoaXMgd2lsbAotICAgIGNhdXNlIGFjY2Vzc2luZyB0aGUgcmVzb3VyY2UgY29udGVudHMgdG8gcmFpc2UgYW4gZXhjZXB0aW9uIG1pbWlja2luZyB0aGUKLSAgICBiZWhhdmlvciBvZiByZWd1bGFyIHJlc291cmNlcy4iIiIKLSAgICBzdXBlcihSZXNvdXJjZVdpdGhGYWtlQ29udGVudHMsIHNlbGYpLl9faW5pdF9fKHRvcGxldmVsX2RpciwgYWJzb2x1dGVfcGF0aCkKLSAgICBzZWxmLl9mYWtlX2NvbnRlbnRzID0gZmFrZV9jb250ZW50cwotCi0gIEBwcm9wZXJ0eQotICBkZWYgY29udGVudHMoc2VsZik6Ci0gICAgaWYgc2VsZi5fZmFrZV9jb250ZW50cyA9PSBOb25lOgotICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGaWxlIG5vdCBmb3VuZCcpCi0gICAgcmV0dXJuIHNlbGYuX2Zha2VfY29udGVudHMKLQotY2xhc3MgRmFrZUxvYWRlcihvYmplY3QpOgotICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX3BhdGhzLCBpbml0aWFsX2ZpbGVuYW1lc19hbmRfY29udGVudHM9Tm9uZSk6Ci0gICAgc2VsZi5fc291cmNlX3BhdGhzID0gc291cmNlX3BhdGhzCi0gICAgc2VsZi5fZmlsZV9jb250ZW50cyA9IHt9Ci0gICAgaWYgaW5pdGlhbF9maWxlbmFtZXNfYW5kX2NvbnRlbnRzOgotICAgICAgZm9yIGssdiBpbiBpbml0aWFsX2ZpbGVuYW1lc19hbmRfY29udGVudHMuaXRlcml0ZW1zKCk6Ci0gICAgICAgIHNlbGYuX2ZpbGVfY29udGVudHNba10gPSB2Ci0KLSAgZGVmIEZpbmRSZXNvdXJjZUdpdmVuQWJzb2x1dGVQYXRoKHNlbGYsIGFic29sdXRlX3BhdGgpOgotICAgIGNhbmRpZGF0ZV9wYXRocyA9IFtdCi0gICAgZm9yIHNvdXJjZV9wYXRoIGluIHNlbGYuX3NvdXJjZV9wYXRoczoKLSAgICAgIGlmIGFic29sdXRlX3BhdGguc3RhcnRzd2l0aChzb3VyY2VfcGF0aCk6Ci0gICAgICAgIGNhbmRpZGF0ZV9wYXRocy5hcHBlbmQoc291cmNlX3BhdGgpCi0gICAgaWYgbGVuKGNhbmRpZGF0ZV9wYXRocykgPT0gMDoKLSAgICAgIHJldHVybiBOb25lCi0KLSAgICAjIFNvcnQgYnkgbGVuZ3RoLiBMb25nZXN0IG1hdGNoIHdpbnMuCi0gICAgY2FuZGlkYXRlX3BhdGhzLnNvcnQobGFtYmRhIHgsIHk6IGxlbih4KSAtIGxlbih5KSkKLSAgICBsb25nZXN0X2NhbmRpZGF0ZSA9IGNhbmRpZGF0ZV9wYXRoc1stMV0KLQotICAgIHJldHVybiBSZXNvdXJjZVdpdGhGYWtlQ29udGVudHMobG9uZ2VzdF9jYW5kaWRhdGUsIGFic29sdXRlX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9maWxlX2NvbnRlbnRzLmdldChhYnNvbHV0ZV9wYXRoLCBOb25lKSkKLQotICBkZWYgRmluZFJlc291cmNlR2l2ZW5SZWxhdGl2ZVBhdGgoc2VsZiwgcmVsYXRpdmVfcGF0aCk6Ci0gICAgYWJzb2x1dGVfcGF0aCA9IE5vbmUKLSAgICBmb3Igc2NyaXB0X3BhdGggaW4gc2VsZi5fc291cmNlX3BhdGhzOgotICAgICAgYWJzb2x1dGVfcGF0aCA9IG9zLnBhdGguam9pbihzY3JpcHRfcGF0aCwgcmVsYXRpdmVfcGF0aCkKLSAgICAgIGlmIGFic29sdXRlX3BhdGggaW4gc2VsZi5fZmlsZV9jb250ZW50czoKLSAgICAgICAgcmV0dXJuIFJlc291cmNlV2l0aEZha2VDb250ZW50cyhzY3JpcHRfcGF0aCwgYWJzb2x1dGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9maWxlX2NvbnRlbnRzW2Fic29sdXRlX3BhdGhdKQotICAgIHJldHVybiBOb25lCi0KLQotY2xhc3MgUGFyc2VUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gIGRlZiB0ZXN0TWlzc2luZ0RvY1R5cGUoc2VsZik6Ci0gICAgcGFyc2VfcmVzdWx0cyA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyUmVzdWx0cygiIikKLQotICAgIGZpbGVfY29udGVudHMgPSB7fQotCi0gICAgZGVmIERvSXQoKToKLSAgICAgIGh0bWxfbW9kdWxlLlBhcnNlKEZha2VMb2FkZXIoWyIvdG1wIl0sIGZpbGVfY29udGVudHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgImEuYi5zdGFydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiL3RtcC9hL2IvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlcl9yZXN1bHRzPXBhcnNlX3Jlc3VsdHMpCi0gICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCBEb0l0KQotCi0gIGRlZiB0ZXN0VmFsaWRFeHRlcm5hbFNjcmlwdFJlZmVyZW5jZVRvUmF3U2NyaXB0KHNlbGYpOgotICAgIHBhcnNlX3Jlc3VsdHMgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMoIiIiPCFET0NUWVBFIGh0bWw+Ci0gICAgICA8c2NyaXB0IHNyYz0iLi4vZm9vLmpzIj4KLSAgICAgICIiIikKLQotICAgIGZpbGVfY29udGVudHMgPSB7fQotICAgIGZpbGVfY29udGVudHNbJy90bXAvYS9mb28uanMnXSA9ICIiIgotJ2kgYW0ganVzdCBzb21lIHJhdyBzY3JpcHQnOwotIiIiCi0KLSAgICBtZXRhZGF0YSA9IGh0bWxfbW9kdWxlLlBhcnNlKEZha2VMb2FkZXIoWyIvdG1wIl0sIGZpbGVfY29udGVudHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEuYi5zdGFydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3RtcC9hL2IvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlcl9yZXN1bHRzPXBhcnNlX3Jlc3VsdHMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1ldGFkYXRhLmRlcGVuZGVudF9tb2R1bGVfbmFtZXMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoWydhL2Zvby5qcyddLCBtZXRhZGF0YS5kZXBlbmRlbnRfcmF3X3NjcmlwdF9yZWxhdGl2ZV9wYXRocykKLQotCi0gIGRlZiB0ZXN0RXh0ZXJuYWxTY3JpcHRSZWZlcmVuY2VUb01vZHVsZU91dHNpZGVTY3JpcHRQYXRoKHNlbGYpOgotICAgIHBhcnNlX3Jlc3VsdHMgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMoIiIiPCFET0NUWVBFIGh0bWw+Ci0gICAgICA8c2NyaXB0IHNyYz0iL2Zvby5qcyI+Ci0gICAgICAiIiIpCi0KLSAgICBmaWxlX2NvbnRlbnRzID0ge30KLSAgICBmaWxlX2NvbnRlbnRzWycvZm9vLmpzJ10gPSAnJwotCi0gICAgZGVmIERvSXQoKToKLSAgICAgIGh0bWxfbW9kdWxlLlBhcnNlKEZha2VMb2FkZXIoWyIvdG1wIl0sIGZpbGVfY29udGVudHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgImEuYi5zdGFydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiL3RtcC9hL2IvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlcl9yZXN1bHRzPXBhcnNlX3Jlc3VsdHMpCi0gICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCBEb0l0KQotCi0gIGRlZiB0ZXN0RXh0ZXJuYWxTY3JpcHRSZWZlcmVuY2VUb0ZpbGVUaGF0RG9lc250RXhpc3Qoc2VsZik6Ci0gICAgcGFyc2VfcmVzdWx0cyA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyUmVzdWx0cygiIiI8IURPQ1RZUEUgaHRtbD4KLSAgICAgIDxzY3JpcHQgc3JjPSIvZm9vLmpzIj4KLSAgICAgICIiIikKLQotICAgIGZpbGVfY29udGVudHMgPSB7fQotCi0gICAgZGVmIERvSXQoKToKLSAgICAgIGh0bWxfbW9kdWxlLlBhcnNlKEZha2VMb2FkZXIoWyIvdG1wIl0sIGZpbGVfY29udGVudHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgImEuYi5zdGFydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiL3RtcC9hL2IvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlcl9yZXN1bHRzPXBhcnNlX3Jlc3VsdHMpCi0gICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCBEb0l0KQotCi0gIGRlZiB0ZXN0SW5saW5lU2NyaXB0V2l0aG91dFN0cmljdE5vdGUoc2VsZik6Ci0gICAgcGFyc2VfcmVzdWx0cyA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyUmVzdWx0cygiIiI8IURPQ1RZUEUgaHRtbD4KLSAgICAgIDxzY3JpcHQ+Ci1jb25zb2xlLmxvZygnTG9nZ2luZyB3aXRob3V0IHN0cmljdCBtb2RlIGlzIG5vIGZ1bi4nKTsKLSAgICAgIDwvc2NyaXB0PgotICAgICAgIiIiKQotCi0gICAgZmlsZV9jb250ZW50cyA9IHt9Ci0gICAgZGVmIERvSXQoKToKLSAgICAgIG1ldGFkYXRhID0gaHRtbF9tb2R1bGUuUGFyc2UoRmFrZUxvYWRlcihbIi90bXAiXSwgZmlsZV9jb250ZW50cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhLmIuc3RhcnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3RtcC9hL2IvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29tcG9uZW50PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXJfcmVzdWx0cz1wYXJzZV9yZXN1bHRzKQotICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbiwgRG9JdCkKLQotICBkZWYgdGVzdFZhbGlkSW1wb3J0T2ZNb2R1bGUoc2VsZik6Ci0gICAgcGFyc2VfcmVzdWx0cyA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyUmVzdWx0cygiIiI8IURPQ1RZUEUgaHRtbD4KLSAgICAgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIuLi9mb28uaHRtbCI+Ci0gICAgICAiIiIpCi0KLSAgICBmaWxlX2NvbnRlbnRzID0ge30KLSAgICBmaWxlX2NvbnRlbnRzWycvdG1wL2EvZm9vLmh0bWwnXSA9ICIiIgotIiIiCi0KLSAgICBtZXRhZGF0YSA9IGh0bWxfbW9kdWxlLlBhcnNlKEZha2VMb2FkZXIoWyIvdG1wIl0sIGZpbGVfY29udGVudHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEuYi5zdGFydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3RtcC9hL2IvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlcl9yZXN1bHRzPXBhcnNlX3Jlc3VsdHMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoWydhLmZvbyddLCBtZXRhZGF0YS5kZXBlbmRlbnRfbW9kdWxlX25hbWVzKQotCi0gIGRlZiB0ZXN0U3R5bGVTaGVldEltcG9ydChzZWxmKToKLSAgICBwYXJzZV9yZXN1bHRzID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXJSZXN1bHRzKCIiIjwhRE9DVFlQRSBodG1sPgotICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mb28uY3NzIj4KLSAgICAgICIiIikKLQotICAgIGZpbGVfY29udGVudHMgPSB7fQotICAgIGZpbGVfY29udGVudHNbJy90bXAvYS9mb28uY3NzJ10gPSAiIiIKLSIiIgotICAgIG1ldGFkYXRhID0gaHRtbF9tb2R1bGUuUGFyc2UoRmFrZUxvYWRlcihbIi90bXAiXSwgZmlsZV9jb250ZW50cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYS5iLnN0YXJ0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvdG1wL2EvYi8iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29tcG9uZW50PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyX3Jlc3VsdHM9cGFyc2VfcmVzdWx0cykKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbWV0YWRhdGEuZGVwZW5kZW50X21vZHVsZV9uYW1lcykKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbJ2EuZm9vJ10sIG1ldGFkYXRhLnN0eWxlX3NoZWV0X25hbWVzKQotCi0gIGRlZiB0ZXN0VXNpbmdBYnNvbHV0ZUhyZWYoc2VsZik6Ci0gICAgcGFyc2VfcmVzdWx0cyA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyUmVzdWx0cygiIiI8IURPQ1RZUEUgaHRtbD4KLSAgICAgIDxzY3JpcHQgc3JjPSIvZm9vLmpzIj4KLSAgICAgICIiIikKLQotICAgIGZpbGVfY29udGVudHMgPSB7fQotICAgIGZpbGVfY29udGVudHNbJy9zcmMvZm9vLmpzJ10gPSAnJwotCi0gICAgbWV0YWRhdGEgPSBodG1sX21vZHVsZS5QYXJzZShGYWtlTG9hZGVyKFsiL3RtcCIsICIvc3JjIl0sIGZpbGVfY29udGVudHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEuYi5zdGFydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3RtcC9hL2IvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlcl9yZXN1bHRzPXBhcnNlX3Jlc3VsdHMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoWydmb28uanMnXSwgbWV0YWRhdGEuZGVwZW5kZW50X3Jhd19zY3JpcHRfcmVsYXRpdmVfcGF0aHMpCi0KLQotY2xhc3MgSFRNTE1vZHVsZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgZGVmIHRlc3RCYXNpYyhzZWxmKToKLSAgICBmaWxlX2NvbnRlbnRzID0ge30KLSAgICBmaWxlX2NvbnRlbnRzWycvdG1wL2EvYi9zdGFydC5odG1sJ10gPSAiIiIKLTwhRE9DVFlQRSBodG1sPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii93aWRnZXQuaHRtbCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2NvbW1vbi5jc3MiPgotPHNjcmlwdCBzcmM9Ii9yYXdfc2NyaXB0LmpzIj48L3NjcmlwdD4KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ic3RhcnQiPgotICA8dGVtcGxhdGU+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICAgJ3VzZSBzdHJpY3QnOwotICAgIGNvbnNvbGUubG9nKCdpbmxpbmUgc2NyaXB0IGZvciBzdGFydC5odG1sIGdvdCB3cml0dGVuJyk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+Ci0iIiIKLSAgICBmaWxlX2NvbnRlbnRzWycvdHZjbS90dmNtLmh0bWwnXSA9ICIiIjwhRE9DVFlQRSBodG1sPgotIiIiCi0gICAgZmlsZV9jb250ZW50c1snL2NvbXBvbmVudHMvd2lkZ2V0Lmh0bWwnXSA9ICIiIgotPCFET0NUWVBFIGh0bWw+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3R2Y20uaHRtbCI+Ci08d2lkZ2V0IG5hbWU9IndpZGdldC5odG1sIj48L3dpZGdldD4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci1jb25zb2xlLmxvZygnaW5saW5lIHNjcmlwdCBmb3Igd2lkZ2V0Lmh0bWwnKTsKLTwvc2NyaXB0PgotIiIiCi0gICAgZmlsZV9jb250ZW50c1snL3RtcC9hL2NvbW1vbi5jc3MnXSA9ICIiIgotLyogL3RtcC9hL2NvbW1vbi5jc3Mgd2FzIHdyaXR0ZW4gKi8KLSIiIgotICAgIGZpbGVfY29udGVudHNbJy9yYXcvcmF3X3NjcmlwdC5qcyddID0gIiIiCi1jb25zb2xlLmxvZygnL3Jhdy9yYXdfc2NyaXB0LmpzIHdhcyB3cml0dGVuJyk7Ci0iIiIKLSAgICBmaWxlX2NvbnRlbnRzWycvcmF3L2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLm1pbi5qcyddID0gIiIiCi0iIiIKLQotICAgIHdpdGggZmFrZV9mcy5GYWtlRlMoZmlsZV9jb250ZW50cyk6Ci0gICAgICBwcm9qZWN0ID0gcHJvamVjdF9tb2R1bGUuUHJvamVjdChbJy90dmNtLycsICcvdG1wLycsICcvY29tcG9uZW50cy8nLCAnL3Jhdy8nXSkKLSAgICAgIGxvYWRlciA9IHJlc291cmNlX2xvYWRlci5SZXNvdXJjZUxvYWRlcihwcm9qZWN0KQotICAgICAgYV9iX3N0YXJ0X21vZHVsZSA9IGxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPSdhLmIuc3RhcnQnKQotICAgICAgbG9hZF9zZXF1ZW5jZSA9IHByb2plY3QuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZXMoW2FfYl9zdGFydF9tb2R1bGVdKQotCi0gICAgICAjIENoZWNrIGxvYWQgc2VxdWVuY2UgbmFtZXMuCi0gICAgICBsb2FkX3NlcXVlbmNlX25hbWVzID0gW3gubmFtZSBmb3IgeCBpbiBsb2FkX3NlcXVlbmNlXQotICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWyd0dmNtJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkZ2V0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnYS5iLnN0YXJ0J10sIGxvYWRfc2VxdWVuY2VfbmFtZXMpCi0KLQotICAgICAgIyBDaGVjayBtb2R1bGVfZGVwcyBvbiBhX2Jfc3RhcnRfbW9kdWxlCi0gICAgICBkZWYgSGFzRGVwZW5kZW50TW9kdWxlKG1vZHVsZSwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBtb2R1bGUuZGVwZW5kZW50X21vZHVsZXMKLSAgICAgICAgICAgICAgICBpZiB4Lm5hbWUgPT0gbmFtZV0KLSAgICAgIGFzc2VydCBIYXNEZXBlbmRlbnRNb2R1bGUoYV9iX3N0YXJ0X21vZHVsZSwgJ3dpZGdldCcpCi0KLSAgICAgICMgQ2hlY2sgSlMgZ2VuZXJhdGlvbi4KLSAgICAgIGpzID0gZ2VuZXJhdGUuR2VuZXJhdGVKUyhsb2FkX3NlcXVlbmNlKQotICAgICAgYXNzZXJ0ICdpbmxpbmUgc2NyaXB0IGZvciBzdGFydC5odG1sJyBpbiBqcwotICAgICAgYXNzZXJ0ICdpbmxpbmUgc2NyaXB0IGZvciB3aWRnZXQuaHRtbCcgaW4ganMKLSAgICAgIGFzc2VydCAnL3Jhdy9yYXdfc2NyaXB0LmpzJyBpbiBqcwotCi0gICAgICAjIENoZWNrIEhUTUwgZ2VuZXJhdGlvbi4KLSAgICAgIGh0bWwgPSBnZW5lcmF0ZS5HZW5lcmF0ZVN0YW5kYWxvbmVIVE1MQXNTdHJpbmcobG9hZF9zZXF1ZW5jZSwgdGl0bGU9JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXR0ZW5lZF9qc191cmw9Ii9ibGFoLmpzIikKLSAgICAgIGFzc2VydCAnPHBvbHltZXItZWxlbWVudCBuYW1lPSJzdGFydCI+JyBpbiBodG1sCi0gICAgICBhc3NlcnQgJ2lubGluZSBzY3JpcHQgZm9yIHdpZGdldC5odG1sJyBub3QgaW4gaHRtbAotICAgICAgYXNzZXJ0ICdjb21tb24uY3NzJyBpbiBodG1sCi0KLSAgZGVmIHRlc3RQb2x5bWVyQ29udmVyc2lvbihzZWxmKToKLSAgICBmaWxlX2NvbnRlbnRzID0ge30KLSAgICBmaWxlX2NvbnRlbnRzWycvdG1wL2EvYi9teV9jb21wb25lbnQuaHRtbCddID0gIiIiCi08IURPQ1RZUEUgaHRtbD4KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ibXktY29tcG9uZW50Ij4KLSAgPHRlbXBsYXRlPgotICA8L3RlbXBsYXRlPgotICA8c2NyaXB0PgotICAgICd1c2Ugc3RyaWN0JzsKLSAgICBQb2x5bWVyICggewotICAgIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgotIiIiCi0gICAgd2l0aCBmYWtlX2ZzLkZha2VGUyhmaWxlX2NvbnRlbnRzKToKLSAgICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsnL3R2Y20vJywgJy90bXAvJ10pCi0gICAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKLSAgICAgIG15X2NvbXBvbmVudCA9IGxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPSdhLmIubXlfY29tcG9uZW50JykKLQotICAgICAgZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKLSAgICAgIG15X2NvbXBvbmVudC5BcHBlbmRKU0NvbnRlbnRzVG9GaWxlKAotICAgICAgICAgIGYsCi0gICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cz1GYWxzZSwKLSAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3Q9Tm9uZSkKLSAgICAgIGpzID0gZi5nZXR2YWx1ZSgpLnJzdHJpcCgpCi0gICAgICBleHBlY3RlZF9qcyA9ICIiIgotICAgICd1c2Ugc3RyaWN0JzsKLSAgICBQb2x5bWVyICggJ215LWNvbXBvbmVudCcsIHsKLSAgICB9KTsKLSIiIi5yc3RyaXAoKQotICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfanMsIGpzKQotCi0gIGRlZiB0ZXN0UG9seW1lckNvbnZlcnNpb24yKHNlbGYpOgotICAgIGZpbGVfY29udGVudHMgPSB7fQotICAgIGZpbGVfY29udGVudHNbJy90bXAvYS9iL215X2NvbXBvbmVudC5odG1sJ10gPSAiIiIKLTwhRE9DVFlQRSBodG1sPgotPHBvbHltZXItZWxlbWVudCBuYW1lPSJteS1jb21wb25lbnQiPgotICA8dGVtcGxhdGU+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICAgJ3VzZSBzdHJpY3QnOwotICAgIFBvbHltZXIgKCApOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgotIiIiCi0gICAgd2l0aCBmYWtlX2ZzLkZha2VGUyhmaWxlX2NvbnRlbnRzKToKLSAgICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsnL3R2Y20vJywgJy90bXAvJ10pCi0gICAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKLSAgICAgIG15X2NvbXBvbmVudCA9IGxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPSdhLmIubXlfY29tcG9uZW50JykKLQotICAgICAgZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKLSAgICAgIG15X2NvbXBvbmVudC5BcHBlbmRKU0NvbnRlbnRzVG9GaWxlKAotICAgICAgICAgIGYsCi0gICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cz1GYWxzZSwKLSAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3Q9Tm9uZSkKLSAgICAgIGpzID0gZi5nZXR2YWx1ZSgpLnJzdHJpcCgpCi0gICAgICBleHBlY3RlZF9qcyA9ICIiIgotICAgICd1c2Ugc3RyaWN0JzsKLSAgICBQb2x5bWVyICggJ215LWNvbXBvbmVudCcpOwotIiIiLnJzdHJpcCgpCi0gICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9qcywganMpCi0KLQotICBkZWYgdGVzdElubGluZVN0eWxlc2hlZXRVUkxzKHNlbGYpOgotICAgIGZpbGVfY29udGVudHMgPSB7fQotICAgIGZpbGVfY29udGVudHNbJy90bXAvYS9iL215X2NvbXBvbmVudC5odG1sJ10gPSAiIiIKLTwhRE9DVFlQRSBodG1sPgotPHN0eWxlPgotLnNvbWUtcnVsZSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9zb21ldGhpbmcuanBnJyk7Ci19Ci08L3N0eWxlPgotIiIiCi0gICAgZmlsZV9jb250ZW50c1snL3RtcC9hL3NvbWV0aGluZy5qcGcnXSA9ICdqcGdkYXRhJwotICAgIHdpdGggZmFrZV9mcy5GYWtlRlMoZmlsZV9jb250ZW50cyk6Ci0gICAgICBwcm9qZWN0ID0gcHJvamVjdF9tb2R1bGUuUHJvamVjdChbJy90dmNtLycsICcvdG1wLyddKQotICAgICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCi0gICAgICBteV9jb21wb25lbnQgPSBsb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT0nYS5iLm15X2NvbXBvbmVudCcpCi0KLSAgICAgIGNvbXB1dGVkX2RlcHMgPSBbXQotICAgICAgbXlfY29tcG9uZW50LkFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oY29tcHV0ZWRfZGVwcykKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldChjb21wdXRlZF9kZXBzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldChbJy90bXAvYS9iL215X2NvbXBvbmVudC5odG1sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy90bXAvYS9zb21ldGhpbmcuanBnJ10pKQotCi0gICAgICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgICAgY3RsID0gaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIuSFRNTEdlbmVyYXRpb25Db250cm9sbGVyKCkKLSAgICAgIG15X2NvbXBvbmVudC5BcHBlbmRIVE1MQ29udGVudHNUb0ZpbGUoZiwgY3RsKQotICAgICAgaHRtbCA9IGYuZ2V0dmFsdWUoKS5yc3RyaXAoKQotICAgICAgZXhwZWN0ZWRfaHRtbCA9ICIiIgotLnNvbWUtcnVsZSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvanBnO2Jhc2U2NCxhbkJuWkdGMFlRPT0pOwotfQotIiIiLnJzdHJpcCgpCi0gICAgICBwcmludCBodG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2pzX3V0aWxzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9qc191dGlscy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVkZThjOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL2pzX3V0aWxzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1kZWYgRXNjYXBlSlNJZk5lZWRlZChqcyk6Ci0gIHJldHVybiBqcy5yZXBsYWNlKCI8L3NjcmlwdD4iLCAiPFwvc2NyaXB0PiIpCi0KLWRlZiBWYWxpZGF0ZVVzZXNTdHJpY3RNb2RlKG1vZHVsZV9uYW1lLCBzdHJpcHBlZF90ZXh0KToKLSAgIiIiQ2hlY2sgdGhhdCB0aGUgZmlyc3Qgbm9uLWVtcHR5IGxpbmUgaXMgJ3VzZSBzdHJpY3QnOy4KLQotICBBcmdzOgotICAgIHN0cmlwcGVkX3RleHQ6IEphdmFzY3JpcHQgc291cmNlIGNvZGUgd2l0aCBjb21tZW50cyBzdHJpcHBlZCBvdXQuCi0KLSAgUmFpc2VzOgotICAgIERlcHNFeGNlcHRpb246IFRoaXMgZmlsZSBkb2Vzbid0IHVzZSBzdHJpY3QgbW9kZS4KLSAgIiIiCi0gIGxpbmVzID0gc3RyaXBwZWRfdGV4dC5zcGxpdCgnXG4nKQotICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgaWYgbGVuKGxpbmUuc3RyaXAoKSkgPT0gMDoKLSAgICAgIGNvbnRpbnVlCi0gICAgaWYgIiIiJ3VzZSBzdHJpY3QnOyIiIiBpbiBsaW5lLnN0cmlwKCk6Ci0gICAgICBicmVhawotICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKCclcyBtdXN0IHVzZSBzdHJpY3QgbW9kZScgJSBtb2R1bGVfbmFtZSkKLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9qc191dGlsc191bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vanNfdXRpbHNfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlN2Q1NjcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9qc191dGlsc191bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCB1bml0dGVzdAotCi1mcm9tIHR2Y20gaW1wb3J0IHN0cmlwX2pzX2NvbW1lbnRzCi1mcm9tIHR2Y20gaW1wb3J0IGpzX3V0aWxzCi0KLWNsYXNzIFZhbGlkYXRlU3RyaWN0TW9kZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgIiIiVGVzdCBjYXNlIGZvciBWYWxpZGF0ZVVzZXNTdHJpY3RNb2RlLiIiIgotCi0gIGRlZiB0ZXN0X1ZhbGlkYXRlVXNlc1N0cmljdE1vZGVfcmV0dXJuc190cnVlKHNlbGYpOgotICAgIHRleHQgPSAiLy8gYmxhaGJsYWhibGFoXG5cbid1c2Ugc3RyaWN0JztcblxudHZjbS5yZXF1aXJlKCdkZXBlbmRlbmN5MScpOyIKLSAgICBzdHJpcHBlZF90ZXh0ID0gc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKHRleHQpCi0gICAgc2VsZi5hc3NlcnRJc05vbmUoanNfdXRpbHMuVmFsaWRhdGVVc2VzU3RyaWN0TW9kZSgnbW9kdWxlJywgc3RyaXBwZWRfdGV4dCkpCi0KLSAgZGVmIHRlc3RfVmFsaWRhdGVVc2VzU3RyaWN0TW9kZU9uZUxpbmVyKHNlbGYpOgotICAgIHRleHQgPSAiJ3VzZSBzdHJpY3QnOyB0dmNtLnJlcXVpcmUoJ2RlcGVuZGVuY3kxJyk7IgotICAgIHN0cmlwcGVkX3RleHQgPSBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHModGV4dCkKLSAgICBzZWxmLmFzc2VydElzTm9uZShqc191dGlscy5WYWxpZGF0ZVVzZXNTdHJpY3RNb2RlKCdtb2R1bGUnLCBzdHJpcHBlZF90ZXh0KSkKLQotICBkZWYgdGVzdF9WYWxpZGF0ZVVzZXNTdHJpY3RNb2RlX2NhdGNoZXNfbWlzc2luZ19zdHJpY3RfbW9kZShzZWxmKToKLSAgICB0ZXh0ID0gIi8vIGJsYWhibGFoYmxhaFxuXG50dmNtLnJlcXVpcmUoJ2RlcGVuZGVuY3kxJyk7IgotICAgIHN0cmlwcGVkX3RleHQgPSBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHModGV4dCkKLSAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgbGFtYmRhOiBqc191dGlscy5WYWxpZGF0ZVVzZXNTdHJpY3RNb2RlKCdtb2R1bGUnLCBzdHJpcHBlZF90ZXh0KSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vbW9kdWxlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9tb2R1bGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4MDI3YTAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9tb2R1bGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotIiIiVGhpcyBtb2R1bGUgY29udGFpbnMgdGhlIE1vZHVsZSBjbGFzcyBhbmQgb3RoZXIgY2xhc3NlcyBmb3IgcmVzb3VyY2VzLgotCi1UaGUgTW9kdWxlIGNsYXNzIHJlcHJlc2VudHMgYSBtb2R1bGUgaW4gdGhlIHRyYWNlIHZpZXdlciBzeXN0ZW0uIEEgbW9kdWxlIGhhcwotYSBuYW1lLCBhbmQgbWF5IHJlcXVpcmUgYSB2YXJpZXR5IG9mIG90aGVyIHJlc291cmNlcywgc3VjaCBhcyBzdHlsZXNoZWV0cywKLXRlbXBsYXRlIG9iamVjdHMsIHJhdyBqYXZhc2NyaXB0LCBvciBvdGhlciBtb2R1bGVzLgotCi1PdGhlciByZXNvdXJjZXMgaW5jbHVkZSBIVE1MIHRlbXBsYXRlcywgcmF3IGphdmFzY3JpcHQgZmlsZXMsIGFuZCBzdHlsZXNoZWV0cy4KLSIiIgotCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IGluc3BlY3QKLWltcG9ydCBjb2RlY3MKLQotZnJvbSB0dmNtIGltcG9ydCByZXNvdXJjZSBhcyByZXNvdXJjZV9tb2R1bGUKLWZyb20gdHZjbSBpbXBvcnQganNfdXRpbHMKLQotCi1jbGFzcyBEZXBzRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICIiIkV4Y2VwdGlvbnMgcmVsYXRlZCB0byBtb2R1bGUgZGVwZW5kZW5jeSByZXNvbHV0aW9uLiIiIgotICBkZWYgX19pbml0X18oc2VsZiwgZm10LCAqYXJncyk6Ci0gICAgaW1wb3J0IHN0eWxlX3NoZWV0IGFzIHN0eWxlX3NoZWV0X21vZHVsZQotICAgIGNvbnRleHQgPSBbXQotICAgIGZyYW1lID0gaW5zcGVjdC5jdXJyZW50ZnJhbWUoKQotICAgIHdoaWxlIGZyYW1lOgotICAgICAgbG9jYWxzID0gZnJhbWUuZl9sb2NhbHMKLQotICAgICAgbW9kdWxlX25hbWUgPSBOb25lCi0gICAgICBpZiAnc2VsZicgaW4gbG9jYWxzOgotICAgICAgICBzID0gbG9jYWxzWydzZWxmJ10KLSAgICAgICAgaWYgaXNpbnN0YW5jZShzLCBNb2R1bGUpOgotICAgICAgICAgIG1vZHVsZV9uYW1lID0gcy5uYW1lCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uocywgc3R5bGVfc2hlZXRfbW9kdWxlLlN0eWxlU2hlZXQpOgotICAgICAgICAgIG1vZHVsZV9uYW1lID0gcy5uYW1lICsgJy5jc3MnCi0gICAgICBpZiBub3QgbW9kdWxlX25hbWU6Ci0gICAgICAgIGlmICdtb2R1bGUnIGluIGxvY2FsczoKLSAgICAgICAgICBtb2R1bGUgPSBsb2NhbHNbJ21vZHVsZSddCi0gICAgICAgICAgaWYgaXNpbnN0YW5jZShzLCBNb2R1bGUpOgotICAgICAgICAgICAgbW9kdWxlX25hbWUgPSBtb2R1bGUubmFtZQotICAgICAgICBlbGlmICdtJyBpbiBsb2NhbHM6Ci0gICAgICAgICAgbW9kdWxlID0gbG9jYWxzWydtJ10KLSAgICAgICAgICBpZiBpc2luc3RhbmNlKHMsIE1vZHVsZSk6Ci0gICAgICAgICAgICBtb2R1bGVfbmFtZSA9IG1vZHVsZS5uYW1lCi0KLSAgICAgIGlmIG1vZHVsZV9uYW1lOgotICAgICAgICBpZiBsZW4oY29udGV4dCk6Ci0gICAgICAgICAgaWYgY29udGV4dFstMV0gIT0gbW9kdWxlX25hbWU6Ci0gICAgICAgICAgICBjb250ZXh0LmFwcGVuZChtb2R1bGVfbmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICBjb250ZXh0LmFwcGVuZChtb2R1bGVfbmFtZSkKLQotICAgICAgZnJhbWUgPSBmcmFtZS5mX2JhY2sKLQotICAgIGNvbnRleHQucmV2ZXJzZSgpCi0gICAgc2VsZi5jb250ZXh0ID0gY29udGV4dAotICAgIGNvbnRleHRfc3RyID0gJ1xuJy5qb2luKFsnICAlcycgJSB4IGZvciB4IGluIGNvbnRleHRdKQotICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCAnV2hpbGUgbG9hZGluZzpcbiVzXG5Hb3Q6ICVzJyAlIChjb250ZXh0X3N0ciwgKGZtdCAlIGFyZ3MpKSkKLQotCi1jbGFzcyBNb2R1bGVEZXBlbmRlbmN5TWV0YWRhdGEob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuZGVwZW5kZW50X21vZHVsZV9uYW1lcyA9IFtdCi0gICAgc2VsZi5kZXBlbmRlbnRfcmF3X3NjcmlwdF9yZWxhdGl2ZV9wYXRocyA9IFtdCi0gICAgc2VsZi5zdHlsZV9zaGVldF9uYW1lcyA9IFtdCi0KLSAgZGVmIEFwcGVuZE1ldGRhdGEoc2VsZiwgb3RoZXIpOgotICAgIHNlbGYuZGVwZW5kZW50X21vZHVsZV9uYW1lcyArPSBvdGhlci5kZXBlbmRlbnRfbW9kdWxlX25hbWVzCi0gICAgc2VsZi5kZXBlbmRlbnRfcmF3X3NjcmlwdF9yZWxhdGl2ZV9wYXRocyArPSBcCi0gICAgICAgIG90aGVyLmRlcGVuZGVudF9yYXdfc2NyaXB0X3JlbGF0aXZlX3BhdGhzCi0gICAgc2VsZi5zdHlsZV9zaGVldF9uYW1lcyArPSBvdGhlci5zdHlsZV9zaGVldF9uYW1lcwotCi0KLV9uZXh0X21vZHVsZV9pZCA9IDEKLQotY2xhc3MgTW9kdWxlKG9iamVjdCk6Ci0gICIiIlJlcHJlc2VudHMgYSBqYXZhc2NyaXB0IG1vZHVsZS4KLQotICBJbnRlcmVzdGluZyBwcm9wZXJ0aWVzIGluY2x1ZGU6Ci0gICAgbmFtZTogTW9kdWxlIG5hbWUsIG1heSBpbmNsdWRlIGEgbmFtZXNwYWNlLCBlLmcuICd0dmNtLmZvbycuCi0gICAgZmlsZW5hbWU6IFRoZSBmaWxlbmFtZSBvZiB0aGUgYWN0dWFsIG1vZHVsZS4KLSAgICBjb250ZW50czogVGhlIHRleHQgY29udGVudHMgb2YgdGhlIG1vZHVsZQotICAgIGRlcGVuZGVudF9tb2R1bGVzOiBPdGhlciBtb2R1bGVzIHRoYXQgdGhpcyBtb2R1bGUgZGVwZW5kcyBvbi4KLQotICBJbiBhZGRpdGlvbiB0byB0aGVzZSBwcm9wZXJ0aWVzLCBhIE1vZHVsZSBhbHNvIGNvbnRhaW5zIGxpc3RzIG9mIG90aGVyCi0gIHJlc291cmNlcyB0aGF0IGl0IGRlcGVuZHMgb24uCi0gICIiIgotICBkZWYgX19pbml0X18oc2VsZiwgbG9hZGVyLCBuYW1lLCByZXNvdXJjZSwgbG9hZF9yZXNvdXJjZT1UcnVlKToKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShuYW1lLCBiYXNlc3RyaW5nKSwgJ0dvdCAlcyBpbnN0ZWFkJyAlIHJlcHIobmFtZSkKLQotICAgIGdsb2JhbCBfbmV4dF9tb2R1bGVfaWQKLSAgICBzZWxmLl9pZCA9IF9uZXh0X21vZHVsZV9pZAotICAgIF9uZXh0X21vZHVsZV9pZCArPSAxCi0KLSAgICBzZWxmLmxvYWRlciA9IGxvYWRlcgotICAgIHNlbGYubmFtZSA9IG5hbWUKLSAgICBzZWxmLnJlc291cmNlID0gcmVzb3VyY2UKLQotICAgIGlmIGxvYWRfcmVzb3VyY2U6Ci0gICAgICBmID0gY29kZWNzLm9wZW4oc2VsZi5maWxlbmFtZSwgbW9kZT0ncicsIGVuY29kaW5nPSd1dGYtOCcpCi0gICAgICBzZWxmLmNvbnRlbnRzID0gZi5yZWFkKCkKLSAgICAgIGYuY2xvc2UoKQotICAgIGVsc2U6Ci0gICAgICBzZWxmLmNvbnRlbnRzID0gTm9uZQotCi0gICAgIyBEZXBlbmRlbmN5IG1ldGFkYXRhLCBzZXQgdXAgZHVyaW5nIFBhcnNlKCkuCi0gICAgc2VsZi5kZXBlbmRlbmN5X21ldGFkYXRhID0gTm9uZQotCi0gICAgIyBBY3R1YWwgZGVwZW5kZW5jaWVzLCBzZXQgdXAgZHVyaW5nIGxvYWQoKS4KLSAgICBzZWxmLmRlcGVuZGVudF9tb2R1bGVzID0gW10KLSAgICBzZWxmLmRlcGVuZGVudF9yYXdfc2NyaXB0cyA9IFtdCi0gICAgc2VsZi5zdHlsZV9zaGVldHMgPSBbXQotCi0gICAgIyBDYWNoZXMuCi0gICAgc2VsZi5fYWxsX2RlcGVuZGVudF9tb2R1bGVzX3JlY3Vyc2l2ZSA9IE5vbmUKLQotICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgcmV0dXJuICclcyglcyknICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLm5hbWUpCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBpZChzZWxmKToKLSAgICByZXR1cm4gc2VsZi5faWQKLQotICBAcHJvcGVydHkKLSAgZGVmIGZpbGVuYW1lKHNlbGYpOgotICAgIHJldHVybiBzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgKLQotICBkZWYgaXNDb21wb25lbnQoc2VsZik6Ci0gICAgcmVmID0gb3MucGF0aC5qb2luKCd0aGlyZF9wYXJ0eScsICdjb21wb25lbnRzJykKLSAgICByZXR1cm4gcmVmIGluIHNlbGYuZmlsZW5hbWUKLQotICBkZWYgUGFyc2Uoc2VsZik6Ci0gICAgIiIiUGFyc2VzIHNlbGYuY29udGVudHMgYW5kIGZpbGxzIGluIHRoZSBtb2R1bGUncyBkZXBlbmRlbmN5IG1ldGFkYXRhLiIiIgotICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQotCi0gIGRlZiBHZXRUVkNNRGVwc01vZHVsZVR5cGUoc2VsZik6Ci0gICAgIiIiUmV0dXJucyB0aGUgdHZjbS5zZXRNb2R1bGVJbmZvIHR5cGUgZm9yIHRoaXMgbW9kdWxlIiIiCi0gICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCi0KLSAgZGVmIEFwcGVuZEpTQ29udGVudHNUb0ZpbGUoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyX2Zvcl9pbmNsdWRlX3RhZ19yb290KToKLSAgICAiIiJBcHBlbmRzIHRoZSBqcyBmb3IgdGhpcyBtb2R1bGUgdG8gdGhlIHByb3ZpZGVkIGZpbGUuIiIiCi0gICAgZm9yIGRlcGVuZGVudF9yYXdfc2NyaXB0IGluIHNlbGYuZGVwZW5kZW50X3Jhd19zY3JpcHRzOgotICAgICAgaWYgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0czoKLSAgICAgICAgcmVsX2ZpbGVuYW1lID0gb3MucGF0aC5yZWxwYXRoKGRlcGVuZGVudF9yYXdfc2NyaXB0LmZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyX2Zvcl9pbmNsdWRlX3RhZ19yb290KQotICAgICAgICBmLndyaXRlKCIiIjxpbmNsdWRlIHNyYz0iJXMiPlxuIiIiICUgcmVsX2ZpbGVuYW1lKQotICAgICAgZWxzZToKLSAgICAgICAgZi53cml0ZShqc191dGlscy5Fc2NhcGVKU0lmTmVlZGVkKGRlcGVuZGVudF9yYXdfc2NyaXB0LmNvbnRlbnRzKSkKLSAgICAgICAgZi53cml0ZSgnXG4nKQotCi0gIGRlZiBBcHBlbmRIVE1MQ29udGVudHNUb0ZpbGUoc2VsZiwgZiwgY3RsLCBtaW5pZnk9RmFsc2UpOgotICAgICIiIkFwcGVuZHMgdGhlIGh0bWwgZm9yIHRoaXMgbW9kdWxlIFt3aXRob3V0IGxpbmtzXSB0byB0aGUgcHJvdmlkZWQgZmlsZS4iIiIKLSAgICBwYXNzCi0KLSAgZGVmIExvYWQoc2VsZik6Ci0gICAgIiIiTG9hZHMgdGhlIHN1Yi1yZXNvdXJjZXMgdGhhdCB0aGlzIG1vZHVsZSBkZXBlbmRzIG9uIGZyb20gaXRzIGRlcGVuZGVuY3kgbWV0YWRhdGEuCi0KLSAgICBSYWlzZXM6Ci0gICAgICBEZXBzRXhjZXB0aW9uOiBUaGVyZSB3YXMgYSBwcm9ibGVtIGZpbmRpbmcgb25lIG9mIHRoZSBkZXBlbmRlbmNpZXMuCi0gICAgICBFeGNlcHRpb246IFRoZXJlIHdhcyBhIHByb2JsZW0gcGFyc2luZyBhIG1vZHVsZSB0aGF0IHRoaXMgb25lIGRlcGVuZHMgb24uCi0gICAgIiIiCi0gICAgYXNzZXJ0IHNlbGYubmFtZSwgJ01vZHVsZSBuYW1lIG11c3QgYmUgc2V0IGJlZm9yZSBkZXAgcmVzb2x1dGlvbi4nCi0gICAgYXNzZXJ0IHNlbGYuZmlsZW5hbWUsICdNb2R1bGUgZmlsZW5hbWUgbXVzdCBiZSBzZXQgYmVmb3JlIGRlcCByZXNvbHV0aW9uLicKLSAgICBhc3NlcnQgc2VsZi5uYW1lIGluIHNlbGYubG9hZGVyLmxvYWRlZF9tb2R1bGVzLCAnTW9kdWxlIG11c3QgYmUgcmVnaXN0ZXJlZCBpbiByZXNvdXJjZSBsb2FkZXIgYmVmb3JlIGxvYWRpbmcuJwotCi0gICAgbWV0YWRhdGEgPSBzZWxmLmRlcGVuZGVuY3lfbWV0YWRhdGEKLSAgICBmb3IgbmFtZSBpbiBtZXRhZGF0YS5kZXBlbmRlbnRfbW9kdWxlX25hbWVzOgotICAgICAgbW9kdWxlID0gc2VsZi5sb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT1uYW1lKQotICAgICAgc2VsZi5kZXBlbmRlbnRfbW9kdWxlcy5hcHBlbmQobW9kdWxlKQotCi0gICAgZm9yIHJlbGF0aXZlX3Jhd19zY3JpcHRfcGF0aCBpbiBtZXRhZGF0YS5kZXBlbmRlbnRfcmF3X3NjcmlwdF9yZWxhdGl2ZV9wYXRoczoKLSAgICAgIHJhd19zY3JpcHQgPSBzZWxmLmxvYWRlci5Mb2FkUmF3U2NyaXB0KHJlbGF0aXZlX3Jhd19zY3JpcHRfcGF0aCkKLSAgICAgIHNlbGYuZGVwZW5kZW50X3Jhd19zY3JpcHRzLmFwcGVuZChyYXdfc2NyaXB0KQotCi0gICAgZm9yIG5hbWUgaW4gbWV0YWRhdGEuc3R5bGVfc2hlZXRfbmFtZXM6Ci0gICAgICBzdHlsZV9zaGVldCA9IHNlbGYubG9hZGVyLkxvYWRTdHlsZVNoZWV0KG5hbWUpCi0gICAgICBzZWxmLnN0eWxlX3NoZWV0cy5hcHBlbmQoc3R5bGVfc2hlZXQpCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBhbGxfZGVwZW5kZW50X21vZHVsZXNfcmVjdXJzaXZlKHNlbGYpOgotICAgIGlmIHNlbGYuX2FsbF9kZXBlbmRlbnRfbW9kdWxlc19yZWN1cnNpdmU6Ci0gICAgICByZXR1cm4gc2VsZi5fYWxsX2RlcGVuZGVudF9tb2R1bGVzX3JlY3Vyc2l2ZQotCi0gICAgc2VsZi5fYWxsX2RlcGVuZGVudF9tb2R1bGVzX3JlY3Vyc2l2ZSA9IHNldChzZWxmLmRlcGVuZGVudF9tb2R1bGVzKQotICAgIGZvciBkZXBlbmRlbnRfbW9kdWxlIGluIHNlbGYuZGVwZW5kZW50X21vZHVsZXM6Ci0gICAgICBzZWxmLl9hbGxfZGVwZW5kZW50X21vZHVsZXNfcmVjdXJzaXZlLnVwZGF0ZSgKLSAgICAgICAgICBkZXBlbmRlbnRfbW9kdWxlLmFsbF9kZXBlbmRlbnRfbW9kdWxlc19yZWN1cnNpdmUpCi0gICAgcmV0dXJuIHNlbGYuX2FsbF9kZXBlbmRlbnRfbW9kdWxlc19yZWN1cnNpdmUKLQotICBkZWYgQ29tcHV0ZUxvYWRTZXF1ZW5jZVJlY3Vyc2l2ZShzZWxmLCBsb2FkX3NlcXVlbmNlLCBhbHJlYWR5X2xvYWRlZF9zZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoPTApOgotICAgICIiIlJlY3Vyc2l2ZWx5IGJ1aWxkcyB1cCBhIGxvYWQgc2VxdWVuY2UgbGlzdC4KLQotICAgIEFyZ3M6Ci0gICAgICBsb2FkX3NlcXVlbmNlOiBBIGxpc3Qgd2hpY2ggd2lsbCBiZSBpbmNyZW1lbnRhbGx5IGJ1aWx0IHVwLgotICAgICAgYWxyZWFkeV9sb2FkZWRfc2V0OiBBIHNldCBvZiBtb2R1bGVzIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUKLSAgICAgICAgICBsb2FkIHNlcXVlbmNlIGxpc3QuCi0gICAgICBkZXB0aDogVGhlIGRlcHRoIG9mIHJlY3Vyc2lvbi4gSWYgaXQgdG9vIGRlZXAsIHRoYXQgaW5kaWNhdGVzIGEgbG9vcC4KLSAgICAiIiIKLSAgICBpZiBkZXB0aCA+IDMyOgotICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbmNsdWRlIGxvb3AgZGV0ZWN0ZWQgb24gJXMnLCBzZWxmLm5hbWUpCi0gICAgZm9yIGRlcGVuZGVudF9tb2R1bGUgaW4gc2VsZi5kZXBlbmRlbnRfbW9kdWxlczoKLSAgICAgIGlmIGRlcGVuZGVudF9tb2R1bGUubmFtZSBpbiBhbHJlYWR5X2xvYWRlZF9zZXQ6Ci0gICAgICAgIGNvbnRpbnVlCi0gICAgICBkZXBlbmRlbnRfbW9kdWxlLkNvbXB1dGVMb2FkU2VxdWVuY2VSZWN1cnNpdmUoCi0gICAgICAgICAgbG9hZF9zZXF1ZW5jZSwgYWxyZWFkeV9sb2FkZWRfc2V0LCBkZXB0aCsxKQotICAgIGlmIHNlbGYubmFtZSBub3QgaW4gYWxyZWFkeV9sb2FkZWRfc2V0OgotICAgICAgYWxyZWFkeV9sb2FkZWRfc2V0LmFkZChzZWxmLm5hbWUpCi0gICAgICBsb2FkX3NlcXVlbmNlLmFwcGVuZChzZWxmKQotCi0gIGRlZiBHZXRBbGxEZXBlbmRlbnRGaWxlbmFtZXNSZWN1cnNpdmUoc2VsZiwgaW5jbHVkZV9yYXdfc2NyaXB0cz1UcnVlKToKLSAgICBkZXBlbmRlbnRfZmlsZW5hbWVzID0gW10KLQotICAgIHZpc2l0ZWRfbW9kdWxlcyA9IHNldCgpCi0gICAgZGVmIEdldChtb2R1bGUpOgotICAgICAgbW9kdWxlLkFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oCi0gICAgICAgICAgZGVwZW5kZW50X2ZpbGVuYW1lcywgaW5jbHVkZV9yYXdfc2NyaXB0cykKLSAgICAgIHZpc2l0ZWRfbW9kdWxlcy5hZGQobW9kdWxlKQotICAgICAgZm9yIG0gaW4gbW9kdWxlLmRlcGVuZGVudF9tb2R1bGVzOgotICAgICAgICBpZiBtIGluIHZpc2l0ZWRfbW9kdWxlczoKLSAgICAgICAgICBjb250aW51ZQotICAgICAgICBHZXQobSkKLQotICAgIEdldChzZWxmKQotICAgIHJldHVybiBkZXBlbmRlbnRfZmlsZW5hbWVzCi0KLSAgZGVmIEFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oCi0gICAgICBzZWxmLCBkZXBlbmRlbnRfZmlsZW5hbWVzLCBpbmNsdWRlX3Jhd19zY3JpcHRzPVRydWUpOgotICAgIGRlcGVuZGVudF9maWxlbmFtZXMuYXBwZW5kKHNlbGYucmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkKLSAgICBpZiBpbmNsdWRlX3Jhd19zY3JpcHRzOgotICAgICAgZm9yIHJhd19zY3JpcHQgaW4gc2VsZi5kZXBlbmRlbnRfcmF3X3NjcmlwdHM6Ci0gICAgICAgIGRlcGVuZGVudF9maWxlbmFtZXMuYXBwZW5kKHJhd19zY3JpcHQucmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkKLSAgICBmb3Igc3R5bGVfc2hlZXQgaW4gc2VsZi5zdHlsZV9zaGVldHM6Ci0gICAgICBzdHlsZV9zaGVldC5BcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKGRlcGVuZGVudF9maWxlbmFtZXMpCi0KLWNsYXNzIFJhd1NjcmlwdChvYmplY3QpOgotICAiIiJSZXByZXNlbnRzIGEgcmF3IHNjcmlwdCByZXNvdXJjZSByZWZlcmVuY2VkIGJ5IGEgbW9kdWxlIHZpYSB0aGUKLSAgdHZjbS5yZXF1aXJlUmF3U2NyaXB0KHh4eCkgZGlyZWN0aXZlLiIiIgotICBkZWYgX19pbml0X18oc2VsZiwgcmVzb3VyY2UpOgotICAgIHNlbGYucmVzb3VyY2UgPSByZXNvdXJjZQotCi0gIEBwcm9wZXJ0eQotICBkZWYgZmlsZW5hbWUoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYucmVzb3VyY2UuYWJzb2x1dGVfcGF0aAotCi0gIEBwcm9wZXJ0eQotICBkZWYgY29udGVudHMoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYucmVzb3VyY2UuY29udGVudHMKLQotICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgcmV0dXJuICJSYXdTY3JpcHQoJXMpIiAlIHNlbGYuZmlsZW5hbWUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vbW9kdWxlX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9tb2R1bGVfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwMWIyY2QuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9tb2R1bGVfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0iIiJUZXN0cyBmb3IgdGhlIG1vZHVsZSBtb2R1bGUsIHdoaWNoIGNvbnRhaW5zIE1vZHVsZSBhbmQgcmVsYXRlZCBjbGFzc2VzLiIiIgotCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB0dmNtIGltcG9ydCBmYWtlX2ZzCi1mcm9tIHR2Y20gaW1wb3J0IG1vZHVsZQotZnJvbSB0dmNtIGltcG9ydCBzdHJpcF9qc19jb21tZW50cwotZnJvbSB0dmNtIGltcG9ydCByZXNvdXJjZV9sb2FkZXIKLWZyb20gdHZjbSBpbXBvcnQgcHJvamVjdCBhcyBwcm9qZWN0X21vZHVsZQotCi1jbGFzcyBNb2R1bGVJbnRlZ3JhdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgZGVmIHRlc3RfbW9kdWxlKHNlbGYpOgotICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQotICAgIGZzLkFkZEZpbGUoJy9zcmMveC5odG1sJywgIiIiCi08IURPQ1RZUEUgaHRtbD4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIveS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvei5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci08L3NjcmlwdD4KLSIiIikKLSAgICBmcy5BZGRGaWxlKCcvc3JjL3kuaHRtbCcsICIiIgotPCFET0NUWVBFIGh0bWw+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3ouaHRtbCI+Ci0iIiIpCi0gICAgZnMuQWRkRmlsZSgnL3NyYy96Lmh0bWwnLCAiIiIKLTwhRE9DVFlQRSBodG1sPgotIiIiKQotICAgIGZzLkFkZEZpbGUoJy9zcmMvdHZjbS5odG1sJywgJzwhRE9DVFlQRSBodG1sPicpCi0gICAgd2l0aCBmczoKLSAgICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsnL3NyYy8nXSkKLSAgICAgIGxvYWRlciA9IHJlc291cmNlX2xvYWRlci5SZXNvdXJjZUxvYWRlcihwcm9qZWN0KQotICAgICAgeF9tb2R1bGUgPSBsb2FkZXIuTG9hZE1vZHVsZSgneCcpCi0KLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtsb2FkZXIubG9hZGVkX21vZHVsZXNbJ3knXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXIubG9hZGVkX21vZHVsZXNbJ3onXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICB4X21vZHVsZS5kZXBlbmRlbnRfbW9kdWxlcykKLQotICAgICAgYWxyZWFkeV9sb2FkZWRfc2V0ID0gc2V0KCkKLSAgICAgIGxvYWRfc2VxdWVuY2UgPSBbXQotICAgICAgeF9tb2R1bGUuQ29tcHV0ZUxvYWRTZXF1ZW5jZVJlY3Vyc2l2ZShsb2FkX3NlcXVlbmNlLCBhbHJlYWR5X2xvYWRlZF9zZXQpCi0KLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtsb2FkZXIubG9hZGVkX21vZHVsZXNbJ3onXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXIubG9hZGVkX21vZHVsZXNbJ3knXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB4X21vZHVsZV0sCi0gICAgICAgICAgICAgICAgICAgICAgICBsb2FkX3NlcXVlbmNlKQotCi0gIGRlZiB0ZXN0QmFzaWMoc2VsZik6Ci0gICAgZnMgPSBmYWtlX2ZzLkZha2VGUygpCi0gICAgZnMuQWRkRmlsZSgnL3gvc3JjL215X21vZHVsZS5odG1sJywgIiIiCi08IURPQ1RZUEUgaHRtbD4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdHZjbS9mb28uaHRtbCI+Ci19KTsKLSIiIikKLSAgICBmcy5BZGRGaWxlKCcveC90dmNtL2Zvby5odG1sJywgIiIiCi08IURPQ1RZUEUgaHRtbD4KLX0pOwotIiIiKTsKLSAgICBwcm9qZWN0ID0gcHJvamVjdF9tb2R1bGUuUHJvamVjdChbJy94J10pCi0gICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCi0gICAgd2l0aCBmczoKLSAgICAgIG15X21vZHVsZSA9IGxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lID0gJ3NyYy5teV9tb2R1bGUnKQotICAgICAgZGVwX25hbWVzID0gW3gubmFtZSBmb3IgeCBpbiBteV9tb2R1bGUuZGVwZW5kZW50X21vZHVsZXNdCi0gICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ3R2Y20uZm9vJ10sIGRlcF9uYW1lcykKLQotICBkZWYgdGVzdERlcHNFeGNlcHRpb25Db250ZXh0KHNlbGYpOgotICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQotICAgIGZzLkFkZEZpbGUoJy94L3NyYy9teV9tb2R1bGUuaHRtbCcsICIiIgotPCFET0NUWVBFIGh0bWw+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3R2Y20vZm9vLmh0bWwiPgotIiIiKQotICAgIGZzLkFkZEZpbGUoJy94L3R2Y20vZm9vLmh0bWwnLCAiIiIKLTwhRE9DVFlQRSBodG1sPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Im1pc3NpbmcuaHRtbCI+Ci0iIiIpOwotICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsnL3gnXSkKLSAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKLSAgICB3aXRoIGZzOgotICAgICAgZXhjID0gTm9uZQotICAgICAgdHJ5OgotICAgICAgICBteV9tb2R1bGUgPSBsb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZSA9ICdzcmMubXlfbW9kdWxlJykKLSAgICAgICAgYXNzZXJ0RmFsc2UoJ0V4cGVjdGVkIGFuIGV4Y2VwdGlvbicpCi0gICAgICBleGNlcHQgbW9kdWxlLkRlcHNFeGNlcHRpb24sIGU6Ci0gICAgICAgIGV4YyA9IGUKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAotICAgICAgICBbJ3NyYy5teV9tb2R1bGUnLCAndHZjbS5mb28nXSwKLSAgICAgICAgZXhjLmNvbnRleHQpCi0KLQotCi0gIGRlZiB0ZXN0R2V0QWxsRGVwZW5kZW50RmlsZW5hbWVzUmVjdXJzaXZlKHNlbGYpOgotICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQotICAgIGZzLkFkZEZpbGUoJy94L3kvei9mb28uaHRtbCcsICIiIgotPCFET0NUWVBFIGh0bWw+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3ovZm9vMi5odG1sIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3ovZm9vLmNzcyI+Ci08c2NyaXB0IHNyYz0iL2Jhci5qcyI+PC9zY3JpcHQ+Ci0iIiIpCi0gICAgZnMuQWRkRmlsZSgnL3gveS96L2Zvby5jc3MnLCAiIiIKLS54IC55IHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZm9vLmpwZWcpOwotfQotIiIiKQotICAgIGZzLkFkZEZpbGUoJy94L3kvei9mb28uanBlZycsICcnKQotICAgIGZzLkFkZEZpbGUoJy94L3kvei9mb28yLmh0bWwnLCAiIiIKLTwhRE9DVFlQRSBodG1sPgotIiIiKTsKLSAgICBmcy5BZGRGaWxlKCcveC9yYXcvYmFyLmpzJywgJ2hlbGxvJyk7Ci0gICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoWycveC95JywgJy94L3Jhdy8nXSkKLSAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKLSAgICB3aXRoIGZzOgotICAgICAgbXlfbW9kdWxlID0gbG9hZGVyLkxvYWRNb2R1bGUobW9kdWxlX25hbWU9J3ouZm9vJykKLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihteV9tb2R1bGUuZGVwZW5kZW50X3Jhd19zY3JpcHRzKSkKLQotICAgICAgZGVwZW5kZW50X2ZpbGVuYW1lcyA9IG15X21vZHVsZS5HZXRBbGxEZXBlbmRlbnRGaWxlbmFtZXNSZWN1cnNpdmUoKQotICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWwotICAgICAgICAnL3gveS96L2Zvby5odG1sJywKLSAgICAgICAgJy94L3Jhdy9iYXIuanMnLAotICAgICAgICAnL3gveS96L2Zvby5jc3MnLAotICAgICAgICAnL3gveS96L2Zvby5qcGVnJywKLSAgICAgICAgJy94L3kvei9mb28yLmh0bWwnCi0gICAgICBdLCBkZXBlbmRlbnRfZmlsZW5hbWVzKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9wYXJzZV9odG1sX2RlcHMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3BhcnNlX2h0bWxfZGVwcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFjOWMyOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3BhcnNlX2h0bWxfZGVwcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgcmUKLWltcG9ydCBvcwotaW1wb3J0IHN5cwotZnJvbSBIVE1MUGFyc2VyIGltcG9ydCBIVE1MUGFyc2VyCi0KLWZyb20gdHZjbSBpbXBvcnQgbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHN0cmlwX2pzX2NvbW1lbnRzCi1mcm9tIHR2Y20gaW1wb3J0IGh0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyCi0KLWRlZiBfSW5pdEJlYXV0aWZ1bFNvdXAoKToKLSAgdHZjbV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKLSAgYnNfcGF0aCA9IG9zLnBhdGguam9pbih0dmNtX3BhdGgsICd0aGlyZF9wYXJ0eScsICdiZWF1dGlmdWxzb3VwJykKLSAgaWYgYnNfcGF0aCBpbiBzeXMucGF0aDoKLSAgICByZXR1cm4KLSAgc3lzLnBhdGguaW5zZXJ0KDAsIGJzX3BhdGgpCi1fSW5pdEJlYXV0aWZ1bFNvdXAoKQotaW1wb3J0IEJlYXV0aWZ1bFNvdXAKLWltcG9ydCBwb2x5bWVyX3NvdXAKLQotCi1jbGFzcyBJbmxpbmVTY3JpcHQob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXApOgotICAgIGlmIG5vdCBzb3VwOgotICAgICAgcmFpc2UgbW9kdWxlLkRlcHNFeGNlcHRpb24oJ0lubGluZVNjcmlwdCBjcmVhdGVkIHdpdGhvdXQgc291cCcpCi0gICAgc2VsZi5fc291cCA9IHNvdXAKLSAgICBzZWxmLl9zdHJpcHBlZF9jb250ZW50cyA9IE5vbmUKLSAgICBzZWxmLl9vcGVuX3RhZ3MgPSBOb25lCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBjb250ZW50cyhzZWxmKToKLSAgICAjVE9ETyhuZWRuZ3V5ZW4pOiBjaGFuZ2Ugb3RoZXIgcGxhY2VzIHRvIHVzZSB1bmljb2RlKCkgaW5zdGVhZCBvZiBzdHIoKS4KLSAgICByZXR1cm4gdW5pY29kZShzZWxmLl9zb3VwLnN0cmluZykKLQotICBAcHJvcGVydHkKLSAgZGVmIHN0cmlwcGVkX2NvbnRlbnRzKHNlbGYpOgotICAgIGlmIG5vdCBzZWxmLl9zdHJpcHBlZF9jb250ZW50czoKLSAgICAgIHNlbGYuX3N0cmlwcGVkX2NvbnRlbnRzID0gc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKAotICAgICAgICAgIHNlbGYuY29udGVudHMpCi0gICAgcmV0dXJuIHNlbGYuX3N0cmlwcGVkX2NvbnRlbnRzCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBvcGVuX3RhZ3Moc2VsZik6Ci0gICAgaWYgc2VsZi5fb3Blbl90YWdzOgotICAgICAgcmV0dXJuIHNlbGYuX29wZW5fdGFncwotICAgIG9wZW5fdGFncyA9IFtdCi0gICAgY3VyID0gc2VsZi5fc291cC5wYXJlbnQKLSAgICB3aGlsZSBjdXI6Ci0gICAgICBpZiBpc2luc3RhbmNlKGN1ciwgQmVhdXRpZnVsU291cC5CZWF1dGlmdWxTb3VwKToKLSAgICAgICAgYnJlYWsKLQotICAgICAgb3Blbl90YWdzLmFwcGVuZChfVGFnKGN1ci5uYW1lLCBjdXIuYXR0cnMpKQotICAgICAgY3VyID0gY3VyLnBhcmVudAotCi0gICAgb3Blbl90YWdzLnJldmVyc2UoKQotICAgIGFzc2VydCBvcGVuX3RhZ3NbLTFdLnRhZyA9PSAnc2NyaXB0JwotICAgIGRlbCBvcGVuX3RhZ3NbLTFdCi0KLSAgICBzZWxmLl9vcGVuX3RhZ3MgPSBvcGVuX3RhZ3MKLSAgICByZXR1cm4gc2VsZi5fb3Blbl90YWdzCi0KLQotZGVmIF9Jc0RvY3R5cGUoeCk6Ci0gIGlmIG5vdCBpc2luc3RhbmNlKHgsIEJlYXV0aWZ1bFNvdXAuRGVjbGFyYXRpb24pOgotICAgIHJldHVybiBGYWxzZQotICByZXR1cm4geCA9PSAnRE9DVFlQRSBodG1sJyBvciB4ID09ICdET0NUWVBFIEhUTUwnCi0KLWNsYXNzIEhUTUxNb2R1bGVQYXJzZXJSZXN1bHRzKG9iamVjdCk6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCBodG1sKToKLSAgICBzZWxmLl9zb3VwID0gcG9seW1lcl9zb3VwLlBvbHltZXJTb3VwKGh0bWwpCi0gICAgc2VsZi5faW5saW5lX3NjcmlwdHMgPSBOb25lCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBoYXNfZGVjbChzZWxmKToKLSAgICBkZWNscyA9IFt4IGZvciB4IGluIHNlbGYuX3NvdXAuY29udGVudHMKLSAgICAgICAgICAgICBpZiBfSXNEb2N0eXBlKHgpXQotICAgIHJldHVybiBsZW4oZGVjbHMpID09IDEKLQotICBAcHJvcGVydHkKLSAgZGVmIHNjcmlwdHNfZXh0ZXJuYWwoc2VsZik6Ci0gICAgdGFncyA9IHNlbGYuX3NvdXAuZmluZEFsbCgnc2NyaXB0Jywgc3JjPVRydWUpCi0gICAgcmV0dXJuIFt0WydzcmMnXSBmb3IgdCBpbiB0YWdzXQotCi0gIEBwcm9wZXJ0eQotICBkZWYgaW5saW5lX3NjcmlwdHMoc2VsZik6Ci0gICAgaWYgbm90IHNlbGYuX2lubGluZV9zY3JpcHRzOgotICAgICAgdGFncyA9IHNlbGYuX3NvdXAuZmluZEFsbCgnc2NyaXB0Jywgc3JjPU5vbmUpCi0gICAgICBzZWxmLl9pbmxpbmVfc2NyaXB0cyA9IFtJbmxpbmVTY3JpcHQodC5zdHJpbmcpIGZvciB0IGluIHRhZ3NdCi0gICAgcmV0dXJuIHNlbGYuX2lubGluZV9zY3JpcHRzCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBpbXBvcnRzKHNlbGYpOgotICAgIHRhZ3MgPSBzZWxmLl9zb3VwLmZpbmRBbGwoJ2xpbmsnLCByZWw9J2ltcG9ydCcpCi0gICAgcmV0dXJuIFt0WydocmVmJ10gZm9yIHQgaW4gdGFnc10KLQotICBAcHJvcGVydHkKLSAgZGVmIHN0eWxlc2hlZXRzKHNlbGYpOgotICAgIHRhZ3MgPSBzZWxmLl9zb3VwLmZpbmRBbGwoJ2xpbmsnLCByZWw9J3N0eWxlc2hlZXQnKQotICAgIHJldHVybiBbdFsnaHJlZiddIGZvciB0IGluIHRhZ3NdCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBpbmxpbmVfc3R5bGVzaGVldHMoc2VsZik6Ci0gICAgdGFncyA9IHNlbGYuX3NvdXAuZmluZEFsbCgnc3R5bGUnKQotICAgIHJldHVybiBbc3RyKHQuc3RyaW5nKSBmb3IgdCBpbiB0YWdzXQotCi0gIGRlZiBZaWVsZEhUTUxJblBpZWNlcyhzZWxmLCBjb250cm9sbGVyLCBtaW5pZnk9RmFsc2UpOgotICAgIHlpZWxkIHNlbGYuR2VuZXJhdGVIVE1MKGNvbnRyb2xsZXIsIG1pbmlmeSkKLQotICBkZWYgR2VuZXJhdGVIVE1MKHNlbGYsIGNvbnRyb2xsZXIsIG1pbmlmeT1GYWxzZSk6Ci0gICAgc291cCA9IHBvbHltZXJfc291cC5Qb2x5bWVyU291cChzdHIoc2VsZi5fc291cCkpCi0KLSAgICAjIFJlbW92ZSBkZWNsCi0gICAgZm9yIHggaW4gc291cC5jb250ZW50czoKLSAgICAgaWYgaXNpbnN0YW5jZSh4LCBCZWF1dGlmdWxTb3VwLkRlY2xhcmF0aW9uKToKLSAgICAgIGlmIF9Jc0RvY3R5cGUoeCk6Ci0gICAgICAgIHguZXh0cmFjdCgpCi0KLSAgICAjIFJlbW92ZSBhbGwgaW1wb3J0cwotICAgIGltcG9ydHMgPSBzb3VwLmZpbmRBbGwoJ2xpbmsnLCByZWw9J2ltcG9ydCcpCi0gICAgZm9yIGltcCBpbiBpbXBvcnRzOgotICAgICAgaW1wLmV4dHJhY3QoKQotCi0gICAgIyBSZW1vdmUgYWxsIHNjcmlwdCBsaW5rcwotICAgIHNjcmlwdHNfZXh0ZXJuYWwgPSBzb3VwLmZpbmRBbGwoJ3NjcmlwdCcsIHNyYz1UcnVlKQotICAgIGZvciBzY3JpcHQgaW4gc2NyaXB0c19leHRlcm5hbDoKLSAgICAgIHNjcmlwdC5leHRyYWN0KCkKLQotICAgICMgUmVtb3ZlIGFsbCBpbmxpbmUgc2NyaXB0Ci0gICAgc2NyaXB0c19leHRlcm5hbCA9IHNvdXAuZmluZEFsbCgnc2NyaXB0Jywgc3JjPU5vbmUpCi0gICAgZm9yIHNjcmlwdCBpbiBzY3JpcHRzX2V4dGVybmFsOgotICAgICAgc2NyaXB0LmV4dHJhY3QoKQotCi0gICAgIyBQcm9jZXNzIGFsbCBpbmxpbmUgc3R5bGVzCi0gICAgaW5saW5lX3N0eWxlcyA9IHNvdXAuZmluZEFsbCgnc3R5bGUnKQotICAgIGZvciBzdHlsZSBpbiBpbmxpbmVfc3R5bGVzOgotICAgICAgaHRtbCA9IGNvbnRyb2xsZXIuR2V0SFRNTEZvcklubGluZVN0eWxlc2hlZXQoc3RyKHN0eWxlLnN0cmluZykpCi0gICAgICBpZiBodG1sOgotICAgICAgICBucyA9IEJlYXV0aWZ1bFNvdXAuVGFnKHNvdXAsICdzdHlsZScpCi0gICAgICAgIG5zLmFwcGVuZChCZWF1dGlmdWxTb3VwLk5hdmlnYWJsZVN0cmluZyhodG1sKSkKLSAgICAgICAgc3R5bGUucmVwbGFjZVdpdGgobnMpCi0gICAgICBlbHNlOgotICAgICAgICBzdHlsZS5leHRyYWN0KCkKLQotICAgICMgUmV3cml0ZSBhbGwgZXh0ZXJuYWwgc3R5bGVzaGVldCBocmVmcyBvciByZW1vdmUsIGFzIG5lZWRlZAotICAgIHN0eWxlc2hlZXRfbGlua3MgPSBzb3VwLmZpbmRBbGwoJ2xpbmsnLCByZWw9J3N0eWxlc2hlZXQnKQotICAgIGZvciBzdHlsZXNoZWV0X2xpbmsgaW4gc3R5bGVzaGVldF9saW5rczoKLSAgICAgIGh0bWwgPSBjb250cm9sbGVyLkdldEhUTUxGb3JTdHlsZXNoZWV0SFJlZihzdHlsZXNoZWV0X2xpbmtbJ2hyZWYnXSkKLSAgICAgIGlmIGh0bWw6Ci0gICAgICAgIHRtcCA9IHBvbHltZXJfc291cC5Qb2x5bWVyU291cChodG1sKS5maW5kQ2hpbGRyZW4oKQotICAgICAgICBhc3NlcnQgbGVuKHRtcCkgPT0gMQotICAgICAgICBzdHlsZXNoZWV0X2xpbmsucmVwbGFjZVdpdGgodG1wWzBdKQotICAgICAgZWxzZToKLSAgICAgICAgc3R5bGVzaGVldF9saW5rLmV4dHJhY3QoKQotCi0gICAgIyBSZW1vdmUgY29tbWVudHMgaWYgbWluaWZ5aW5nLgotICAgIGlmIG1pbmlmeToKLSAgICAgIGNvbW1lbnRzID0gc291cC5maW5kQWxsKAotICAgICAgICAgIHRleHQ9bGFtYmRhIHRleHQ6aXNpbnN0YW5jZSh0ZXh0LCBCZWF1dGlmdWxTb3VwLkNvbW1lbnQpKQotICAgICAgZm9yIGNvbW1lbnQgaW4gY29tbWVudHM6Ci0gICAgICAgIGNvbW1lbnQuZXh0cmFjdCgpCi0KLSAgICAjIFdlIGFyZSBkb25lLgotICAgIHJldHVybiBzdHIoc291cCkuc3RyaXAoKQotCi0gIEBwcm9wZXJ0eQotICBkZWYgaHRtbF9jb250ZW50c193aXRob3V0X2xpbmtzX2FuZF9zY3JpcHQoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYuR2VuZXJhdGVIVE1MKGh0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLkhUTUxHZW5lcmF0aW9uQ29udHJvbGxlcigpKQotCi1jbGFzcyBfVGFnKG9iamVjdCk6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCB0YWcsIGF0dHJzKToKLSAgICBzZWxmLnRhZyA9IHRhZwotICAgIHNlbGYuYXR0cnMgPSBhdHRycwotCi0gIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICBhdHRyX3N0cmluZyA9ICcgJy5qb2luKFsnJXM9IiVzIicgJSAoeFswXSwgeFsxXSkgZm9yIHggaW4gc2VsZi5hdHRyc10pCi0gICAgcmV0dXJuICc8JXMgJXM+JyAlIChzZWxmLnRhZywgYXR0cl9zdHJpbmcpCi0KLWNsYXNzIEhUTUxNb2R1bGVQYXJzZXIoKToKLSAgZGVmIFBhcnNlKHNlbGYsIGh0bWwpOgotICAgIGlmIGh0bWwgaXMgTm9uZToKLSAgICAgIGh0bWwgPSAnJwotICAgIGVsc2U6Ci0gICAgICBpZiBodG1sLmZpbmQoJzwgL3NjcmlwdD4nKSAhPSAtMToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFc2NhcGUgc2NyaXB0IHRhZ3Mgd2l0aCA8XC9zY3JpcHQ+JykKLQotICAgIHJldHVybiBIVE1MTW9kdWxlUGFyc2VyUmVzdWx0cyhodG1sKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9wYXJzZV9odG1sX2RlcHNfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3BhcnNlX2h0bWxfZGVwc191bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZmFiMjY2NC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3BhcnNlX2h0bWxfZGVwc191bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2NSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBIVE1MUGFyc2VyCi0KLWZyb20gdHZjbSBpbXBvcnQgcGFyc2VfaHRtbF9kZXBzCi1mcm9tIHR2Y20gaW1wb3J0IG1vZHVsZSBhcyBtb2R1bGVfbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IGh0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyCi0KLQotY2xhc3MgUGFyc2VUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gIGRlZiB0ZXN0X3BhcnNlX2VtcHR5KHNlbGYpOgotICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKLSAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoIiIpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zY3JpcHRzX2V4dGVybmFsKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW5saW5lX3NjcmlwdHMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zdHlsZXNoZWV0cykKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmltcG9ydHMpCi0KLSAgZGVmIHRlc3RfcGFyc2Vfbm9uZShzZWxmKToKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKE5vbmUpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zY3JpcHRzX2V4dGVybmFsKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW5saW5lX3NjcmlwdHMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zdHlsZXNoZWV0cykKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmltcG9ydHMpCi0KLSAgZGVmIHRlc3RfcGFyc2Vfc2NyaXB0X3NyYyhzZWxmKToKLSAgICBodG1sID0gIiIiPCFET0NUWVBFIGh0bWw+Ci0gICAgICAgICAgICAgIDxodG1sPgotICAgICAgICAgICAgICAgIDxoZWFkPgotICAgICAgICAgICAgICAgICAgPHNjcmlwdCBzcmM9InBvbHltZXIubWluLmpzIj48L3NjcmlwdD4KLSAgICAgICAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJmb28uanMiPjwvc2NyaXB0PgotICAgICAgICAgICAgICAgIDwvaGVhZD4KLSAgICAgICAgICAgICAgICA8Ym9keT4KLSAgICAgICAgICAgICAgICA8L2JvZHk+Ci0gICAgICAgICAgICAgIDwvaHRtbD4iIiIKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwb2x5bWVyLm1pbi5qcycsICdmb28uanMnXSwgbW9kdWxlLnNjcmlwdHNfZXh0ZXJuYWwpOwotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW5saW5lX3NjcmlwdHMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zdHlsZXNoZWV0cykKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmltcG9ydHMpCi0gICAgc2VsZi5hc3NlcnRUcnVlKG1vZHVsZS5oYXNfZGVjbCkKLSAgICBzZWxmLmFzc2VydFRydWUoJ0RPQ1RZUEUgaHRtbCcgbm90IGluIG1vZHVsZS5odG1sX2NvbnRlbnRzX3dpdGhvdXRfbGlua3NfYW5kX3NjcmlwdCkKLQotCi0gIGRlZiB0ZXN0X3BhcnNlX2xpbmtfcmVsX2ltcG9ydChzZWxmKToKLSAgICBodG1sID0gIiIiPCFET0NUWVBFIGh0bWw+Ci0gICAgICAgICAgICAgIDxodG1sPgotICAgICAgICAgICAgICAgIDxoZWFkPgotICAgICAgICAgICAgICAgICAgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9IngtZm9vLmh0bWwiPgotICAgICAgICAgICAgICAgIDwvaGVhZD4KLSAgICAgICAgICAgICAgICA8Ym9keT4KLSAgICAgICAgICAgICAgICA8L2JvZHk+Ci0gICAgICAgICAgICAgIDwvaHRtbD4iIiIKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zY3JpcHRzX2V4dGVybmFsKTsKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmlubGluZV9zY3JpcHRzKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuc3R5bGVzaGVldHMpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoWyd4LWZvby5odG1sJ10sIG1vZHVsZS5pbXBvcnRzKQotICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2R1bGUuaGFzX2RlY2wpCi0KLQotICBkZWYgdGVzdF9wYXJzZV9zY3JpcHRfaW5saW5lKHNlbGYpOgotICAgIGh0bWwgPSAiIiI8cG9seW1lci1lbGVtZW50IG5hbWU9InRrLWVsZW1lbnQtcHJvdG8iPgotICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KLSAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgotICAgICAgICAgICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICAgICAgICB0dmNtLnJlcXVpcmUoImZvbyIpOwotICAgICAgICAgICAgICAgICAgdHZjbS5yZXF1aXJlKCdiYXInKTsKLSAgICAgICAgICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgICAgICAgPC9wb2x5bWVyLWVsZW1lbnQ+IiIiCi0KLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zY3JpcHRzX2V4dGVybmFsKTsKLSAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4obW9kdWxlLmlubGluZV9zY3JpcHRzKSkKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLnN0eWxlc2hlZXRzKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW1wb3J0cykKLSAgICBzZWxmLmFzc2VydEZhbHNlKG1vZHVsZS5oYXNfZGVjbCkKLQotICAgIHNjcmlwdDAgPSBtb2R1bGUuaW5saW5lX3NjcmlwdHNbMF0KLSAgICB2YWwgPSByZS5zdWIociJccysiLCAnJywgc2NyaXB0MC5jb250ZW50cykKLSAgICBpbm5lcl9zY3JpcHQgPSAiIiJ0dmNtLnJlcXVpcmUoImZvbyIpO3R2Y20ucmVxdWlyZSgnYmFyJyk7IiIiCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5uZXJfc2NyaXB0LCB2YWwpCi0KLSAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4oc2NyaXB0MC5vcGVuX3RhZ3MpKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwb2x5bWVyLWVsZW1lbnQnLCBzY3JpcHQwLm9wZW5fdGFnc1swXS50YWcpCi0KLSAgICBhc3NlcnQgJ3R2Y20ucmVxdWlyZSgiZm9vIik7JyBub3QgaW4gbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0Ci0KLSAgZGVmIHRlc3RfcGFyc2Vfc2NyaXB0X3NyY19zcmlwcGluZyhzZWxmKToKLSAgICBodG1sID0gIiIiCi08c2NyaXB0IHNyYz0iYmxhaC5qcyI+PC9zY3JpcHQ+Ci0iIiIKLSAgICBtb2R1bGUgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpLlBhcnNlKGh0bWwpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoJycsIG1vZHVsZS5odG1sX2NvbnRlbnRzX3dpdGhvdXRfbGlua3NfYW5kX3NjcmlwdCkKLQotCi0gIGRlZiB0ZXN0X3BhcnNlX2xpbmtfcmVsX3N0eWxlc2hlZXQoc2VsZik6Ci0gICAgaHRtbCA9ICIiIjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0iaGkiPgotICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KLSAgICAgICAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZnJhbWV3b3Jrc3R5bGVzLmNzcyI+Ci0gICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KLSAgICAgICAgICAgICAgPC9wb2x5bWVyLWVsZW1lbnQ+IiIiCi0gICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQotICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuc2NyaXB0c19leHRlcm5hbCk7Ci0gICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5pbmxpbmVfc2NyaXB0cykKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbJ2ZyYW1ld29ya3N0eWxlcy5jc3MnXSwgbW9kdWxlLnN0eWxlc2hlZXRzKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW1wb3J0cykKLSAgICBzZWxmLmFzc2VydEZhbHNlKG1vZHVsZS5oYXNfZGVjbCkKLQotICAgIGNsYXNzIEN0bChodG1sX2dlbmVyYXRpb25fY29udHJvbGxlci5IVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIpOgotICAgICAgZGVmIEdldEhUTUxGb3JTdHlsZXNoZWV0SFJlZihzZWxmLCBocmVmKToKLSAgICAgICAgaWYgaHJlZiA9PSAiZnJhbWV3b3Jrc3R5bGVzLmNzcyI6Ci0gICAgICAgICAgcmV0dXJuICI8c3R5bGU+RlJBTUVXT1JLPC9zdHlsZT4iCi0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBnZW5faHRtbCA9IG1vZHVsZS5HZW5lcmF0ZUhUTUwoQ3RsKCkpCi0gICAgZ2h0bSA9ICIiIjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0iaGkiPgotPHRlbXBsYXRlPgotPHN0eWxlPkZSQU1FV09SSzwvc3R5bGU+Ci08L3RlbXBsYXRlPgotPC9wb2x5bWVyLWVsZW1lbnQ+IiIiCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoZ2h0bSwgZ2VuX2h0bWwpCi0KLQotICBkZWYgdGVzdF9wYXJzZV9pbmxpbmVfc3R5bGUoc2VsZik6Ci0gICAgaHRtbCA9ICIiIjxzdHlsZT4KLSAgaGVsbG8KLTwvc3R5bGU+IiIiCi0gICAgbW9kdWxlID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKS5QYXJzZShodG1sKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGh0bWwsIG1vZHVsZS5odG1sX2NvbnRlbnRzX3dpdGhvdXRfbGlua3NfYW5kX3NjcmlwdCkKLQotICAgIGNsYXNzIEN0bChodG1sX2dlbmVyYXRpb25fY29udHJvbGxlci5IVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIpOgotICAgICAgZGVmIEdldEhUTUxGb3JJbmxpbmVTdHlsZXNoZWV0KHNlbGYsIGNvbnRlbnRzKToKLSAgICAgICAgaWYgY29udGVudHMgPT0gJ1xuICBoZWxsb1xuJzoKLSAgICAgICAgICByZXR1cm4gJ1xuICBIRUxMT1xuJwotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZ2VuX2h0bWwgPSBtb2R1bGUuR2VuZXJhdGVIVE1MKEN0bCgpKQotICAgIGdodG0gPSAiIiI8c3R5bGU+Ci0gIEhFTExPCi08L3N0eWxlPiIiIgotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGdodG0sIGdlbl9odG1sKQotCi0gIGRlZiB0ZXN0X3BhcnNlX3N0eWxlX2ltcG9ydChzZWxmKToKLSAgICBodG1sID0gIiIiPHBvbHltZXItZWxlbWVudCBuYW1lPSJ4LWJsaW5rIj4KLSAgICAgICAgICAgICAgICA8dGVtcGxhdGU+Ci0gICAgICAgICAgICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICAgICAgICAgIEBpbXBvcnQgdXJsKGF3ZXNvbWUuY3NzKTsKLSAgICAgICAgICAgICAgICAgIDwvc3R5bGU+Ci0gICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KLSAgICAgICAgICAgICAgPC9wb2x5bWVyLWVsZW1lbnQ+IiIiCi0gICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQotICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGxhbWJkYTogcGFyc2VyLlBhcnNlKGh0bWwpKQotCi0gIGRlZiB0ZXN0X2h0bWxfY29udGVudHNfYmFzaWMoc2VsZik6Ci0gICAgaHRtbCA9ICIiIjxhIGI9ImMiPmQ8L2E+IiIiCi0gICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQotICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGh0bWwsIG1vZHVsZS5odG1sX2NvbnRlbnRzX3dpdGhvdXRfbGlua3NfYW5kX3NjcmlwdCkKLQotICBkZWYgdGVzdF9odG1sX2NvbnRlbnRzX3dpdGhfZW50aXR5KHNlbGYpOgotICAgIGh0bWwgPSAiIiI8YT4mcmFycjs8L2E+IiIiCi0gICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQotICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGh0bWwsIG1vZHVsZS5odG1sX2NvbnRlbnRzX3dpdGhvdXRfbGlua3NfYW5kX3NjcmlwdCkKLQotICBkZWYgdGVzdF9odG1sX2NvbnRlbnRfd2l0aF9jaGFycmVmKHNlbGYpOgotICAgIGh0bWwgPSAiIiI8YT4mIzYyOzwvYT4iIiIKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoaHRtbCwgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KQotCi0gIGRlZiB0ZXN0X2h0bWxfY29udGVudF9zdGFydF9lbmRfYnIoc2VsZik6Ci0gICAgaHRtbCA9ICIiIjxhPjxiciAvPjwvYT4iIiIKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoaHRtbCwgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KQotCi0gIGRlZiB0ZXN0X2h0bWxfY29udGVudF9zdGFydF9lbmRfaW1nKHNlbGYpOgotICAgIGh0bWwgPSAiIiI8YT48aW1nIHNyYz0iZm9vLnBuZyIgaWQ9ImJhciIgLz48L2E+IiIiCi0gICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQotICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGh0bWwsIG1vZHVsZS5odG1sX2NvbnRlbnRzX3dpdGhvdXRfbGlua3NfYW5kX3NjcmlwdCkKLQotICBkZWYgdGVzdF9odG1sX2NvbnRlbnRzX3dpdGhfbGlua19zdHJpcHBpbmcoc2VsZik6Ci0gICAgaHRtbCA9ICIiIjxhIGI9ImMiPmQ8L2E+Ci0gICAgICAgICAgICAgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSJ4LWZvby5odG1sIj4iIiIKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoIiIiPGEgYj0iYyI+ZDwvYT4iIiIsCi0gICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0LnN0cmlwKCkpCi0KLSAgZGVmIHRlc3RfaHRtbF9jb250ZW50c193aXRoX3N0eWxlX2xpbmtfc3RyaXBwaW5nKHNlbGYpOgotICAgIGh0bWwgPSAiIiI8YSBiPSJjIj5kPC9hPgotICAgICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImZyYW1ld29ya3N0eWxlcy5jc3MiPiIiIgotICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKLSAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKLSAgICBzZWxmLmFzc2VydEVxdWFscygiIiI8YSBiPSJjIj5kPC9hPiIiIiwKLSAgICAgICAgICAgICAgICAgICAgICBtb2R1bGUuaHRtbF9jb250ZW50c193aXRob3V0X2xpbmtzX2FuZF9zY3JpcHQuc3RyaXAoKSkKLQotICBkZWYgdGVzdF9icl9kb2VzX25vdF9yYWlzZShzZWxmKToKLSAgICBodG1sID0gIiIiPGRpdj48YnIvPjwvZGl2PiIiIgotICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKLSAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKLQotICBkZWYgdGVzdF9wX2RvZXNfbm90X3JhaXNlcyhzZWxmKToKLSAgICBodG1sID0gIiIiPGRpdj48L3A+PC9kaXY+IiIiCi0gICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQotICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQotCi0gIGRlZiB0ZXN0X2xpbmtfZW5kbGlua19kb2VzX25vdF9yYWlzZShzZWxmKToKLSAgICBodG1sID0gIiIiPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJmb28uY3NzIj48L2xpbms+IiIiCi0gICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQotICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQotCi0gIGRlZiB0ZXN0X2xpbmtfc2NyaXB0X2RvZXNfbm90X3JhaXNlKHNlbGYpOgotICAgIGh0bWwgPSAiIiI8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImZvby5jc3MiPgotICAgICAgICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgICA8L3NjcmlwdD4iIiIKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCi0KLSAgZGVmIHRlc3Rfc2NyaXB0X3dpdGhfc2NyaXB0X2luc2lkZV9hc19qcyhzZWxmKToKLSAgICBodG1sID0gIiIiPHNjcmlwdD4KLSAgICAgICAgICAgICAgdmFyIGh0bWxfbGluZXMgPSBbCi0gICAgICAgICAgICAgICAgJzxzY3JpcHQ+JywKLSAgICAgICAgICAgICAgICAnPFwvc2NyaXB0PicsCi0gICAgICAgICAgICAgIF07Ci0gICAgICAgICAgICAgIDwvc2NyaXB0PiIiIgotICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKLSAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKLQotICBkZWYgdGVzdF9pbnZhbGlkX3NjcmlwdF9lc2NhcGluZ19yYWlzZXMoc2VsZik6Ci0gICAgaHRtbCA9ICIiIjxzY3JpcHQ+Ci0gICAgICAgICAgICAgIHZhciBodG1sX2xpbmVzID0gWwotICAgICAgICAgICAgICAgICc8c2NyaXB0PicsCi0gICAgICAgICAgICAgICAgJzwgL3NjcmlwdD4nLAotICAgICAgICAgICAgICBdOwotICAgICAgICAgICAgICA8L3NjcmlwdD4iIiIKLSAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCi0gICAgZGVmIERvSXQoKToKLSAgICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQotICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbiwgRG9JdCkKLQotICBkZWYgdGVzdF9zY3JpcHRfd2l0aF9jZGF0YShzZWxmKToKLSAgICBodG1sID0gIiIiPHNjcmlwdD48L2gyPjwvc2NyaXB0PiIiIgotICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKLSAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKLSAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4obW9kdWxlLmlubGluZV9zY3JpcHRzKSkKLSAgICBzZWxmLmFzc2VydEVxdWFscygnPC9oMj4nLCBtb2R1bGUuaW5saW5lX3NjcmlwdHNbMF0uY29udGVudHMpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Byb2plY3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Byb2plY3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmMmQyYTMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9wcm9qZWN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjU4ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IG9zCi1pbXBvcnQgY1N0cmluZ0lPCi0KLWZyb20gdHZjbSBpbXBvcnQgcmVzb3VyY2UgYXMgcmVzb3VyY2VfbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlX2xvYWRlcgotCi1kZWYgX0ZpbmRBbGxGaWxlc1JlY3Vyc2l2ZShzb3VyY2VfcGF0aHMpOgotICBhbGxfZmlsZW5hbWVzID0gc2V0KCkKLSAgZm9yIHNvdXJjZV9wYXRoIGluIHNvdXJjZV9wYXRoczoKLSAgICBmb3IgZGlycGF0aCwgZGlybmFtZXMsIGZpbGVuYW1lcyBpbiBvcy53YWxrKHNvdXJjZV9wYXRoKToKLSAgICAgIGZvciBmIGluIGZpbGVuYW1lczoKLSAgICAgICAgaWYgZi5zdGFydHN3aXRoKCcuJyk6Ci0gICAgICAgICAgY29udGludWUKLSAgICAgICAgeCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oZGlycGF0aCwgZikpCi0gICAgICAgIGFsbF9maWxlbmFtZXMuYWRkKHgpCi0gIHJldHVybiBhbGxfZmlsZW5hbWVzCi0KLWRlZiBfSXNGaWxlbmFtZUFNb2R1bGUobG9hZGVyLCB4KToKLSAgaWYgeC5lbmRzd2l0aCgnLmh0bWwnKToKLSAgICByZXR1cm4gVHJ1ZQotICBlbHNlOgotICAgIHJldHVybiBGYWxzZQotCi0KLWNsYXNzIEFic0ZpbGVuYW1lTGlzdChvYmplY3QpOgotICBkZWYgX19pbml0X18oc2VsZiwgd2lsbERpcnR5Q2FsbGJhY2spOgotICAgIHNlbGYuX3dpbGxEaXJ0eUNhbGxiYWNrID0gd2lsbERpcnR5Q2FsbGJhY2sKLSAgICBzZWxmLl9maWxlbmFtZXMgPSBbXQotICAgIHNlbGYuX2ZpbGVuYW1lc19zZXQgPSBzZXQoKQotCi0gIGRlZiBfV2lsbEJlY29tZURpcnR5KHNlbGYpOgotICAgIGlmIHNlbGYuX3dpbGxEaXJ0eUNhbGxiYWNrOgotICAgICAgc2VsZi5fd2lsbERpcnR5Q2FsbGJhY2soKQotCi0gIGRlZiBhcHBlbmQoc2VsZiwgZmlsZW5hbWUpOgotICAgIGFzc2VydCBvcy5wYXRoLmlzYWJzKGZpbGVuYW1lKQotICAgIHNlbGYuX1dpbGxCZWNvbWVEaXJ0eSgpCi0gICAgc2VsZi5fZmlsZW5hbWVzLmFwcGVuZChmaWxlbmFtZSkKLSAgICBzZWxmLl9maWxlbmFtZXNfc2V0LmFkZChmaWxlbmFtZSkKLQotICBkZWYgZXh0ZW5kKHNlbGYsIGl0ZXIpOgotICAgIHNlbGYuX1dpbGxCZWNvbWVEaXJ0eSgpCi0gICAgZm9yIGZpbGVuYW1lIGluIGl0ZXI6Ci0gICAgICBhc3NlcnQgb3MucGF0aC5pc2FicyhmaWxlbmFtZSkKLSAgICAgIHNlbGYuX2ZpbGVuYW1lcy5hcHBlbmQoZmlsZW5hbWUpCi0gICAgICBzZWxmLl9maWxlbmFtZXNfc2V0LmFkZChmaWxlbmFtZSkKLQotICBkZWYgYXBwZW5kUmVsKHNlbGYsIGJhc2VkaXIsIGZpbGVuYW1lKToKLSAgICBhc3NlcnQgb3MucGF0aC5pc2FicyhiYXNlZGlyKQotICAgIHNlbGYuX1dpbGxCZWNvbWVEaXJ0eSgpCi0gICAgbiA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oYmFzZWRpciwgZmlsZW5hbWUpKQotICAgIHNlbGYuX2ZpbGVuYW1lcy5hcHBlbmQobikKLSAgICBzZWxmLl9maWxlbmFtZXNfc2V0LmFkZChuKQotCi0gIGRlZiBleHRlbmRSZWwoc2VsZiwgYmFzZWRpciwgaXRlcik6Ci0gICAgc2VsZi5fV2lsbEJlY29tZURpcnR5KCkKLSAgICBhc3NlcnQgb3MucGF0aC5pc2FicyhiYXNlZGlyKQotICAgIGZvciBmaWxlbmFtZSBpbiBpdGVyOgotICAgICAgbiA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oYmFzZWRpciwgZmlsZW5hbWUpKQotICAgICAgc2VsZi5fZmlsZW5hbWVzLmFwcGVuZChuKQotICAgICAgc2VsZi5fZmlsZW5hbWVzX3NldC5hZGQobikKLQotICBkZWYgX19jb250YWluc19fKHNlbGYsIHgpOgotICAgIHJldHVybiB4IGluIHNlbGYuX2ZpbGVuYW1lc19zZXQKLQotICBkZWYgX19sZW5fXyhzZWxmKToKLSAgICByZXR1cm4gc2VsZi5fZmlsZW5hbWVzLl9fbGVuX18oKQotCi0gIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICByZXR1cm4gaXRlcihzZWxmLl9maWxlbmFtZXMpCi0KLSAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgIHJldHVybiByZXByKHNlbGYuX2ZpbGVuYW1lcykKLQotICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICByZXR1cm4gc3RyKHNlbGYuX2ZpbGVuYW1lcykKLQotCi1jbGFzcyBQcm9qZWN0KG9iamVjdCk6Ci0gIHR2Y21fcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKLQotICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX3BhdGhzPU5vbmUsIG5vbl9tb2R1bGVfaHRtbF9maWxlcz1Ob25lKToKLSAgICAiIiIKLSAgICBzb3VyY2VfcGF0aHM6IEEgbGlzdCBvZiB0b3AtbGV2ZWwgZGlyZWN0b3JpZXMgaW4gd2hpY2ggbW9kdWxlcyBhbmQgcmF3IHNjcmlwdHMgY2FuIGJlIGZvdW5kLgotICAgICAgICBNb2R1bGUgcGF0aHMgYXJlIHJlbGF0aXZlIHRvIHRoZXNlIGRpcmVjdG9yaWVzLgotICAgICIiIgotICAgIHNlbGYuX2xvYWRlciA9IE5vbmUKLSAgICBzZWxmLl9mcm96ZW4gPSBGYWxzZQotICAgIHNlbGYuc291cmNlX3BhdGhzID0gQWJzRmlsZW5hbWVMaXN0KHNlbGYuX1dpbGxQYXJ0T2ZQYXRoQ2hhbmdlKQotICAgIHNlbGYubm9uX21vZHVsZV9odG1sX2ZpbGVzID0gQWJzRmlsZW5hbWVMaXN0KHNlbGYuX1dpbGxQYXJ0T2ZQYXRoQ2hhbmdlKQotCi0gICAgaWYgc291cmNlX3BhdGhzICE9IE5vbmU6Ci0gICAgICBzZWxmLnNvdXJjZV9wYXRocy5leHRlbmQoc291cmNlX3BhdGhzKQotCi0gICAgaWYgbm9uX21vZHVsZV9odG1sX2ZpbGVzICE9IE5vbmU6Ci0gICAgICBzZWxmLm5vbl9tb2R1bGVfaHRtbF9maWxlcy5leHRlbmQobm9uX21vZHVsZV9odG1sX2ZpbGVzKQotCi0gIGRlZiBGcmVlemUoc2VsZik6Ci0gICAgc2VsZi5fZnJvemVuID0gVHJ1ZQotCi0gIGRlZiBfV2lsbFBhcnRPZlBhdGhDaGFuZ2Uoc2VsZik6Ci0gICAgaWYgc2VsZi5fZnJvemVuOgotICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgcHJvamVjdCBpcyBmcm96ZW4uIFlvdSBjYW5ub3QgZWRpdCBpdCBub3cnKQotICAgIHNlbGYuX2xvYWRlciA9IE5vbmUKLQotICBAc3RhdGljbWV0aG9kCi0gIGRlZiBGcm9tRGljdChkKToKLSAgICByZXR1cm4gUHJvamVjdChkWydzb3VyY2VfcGF0aHMnXSwKLSAgICAgICAgICAgICAgICAgICBub25fbW9kdWxlX2h0bWxfZmlsZXM9ZC5nZXQoJ25vbl9tb2R1bGVfaHRtbF9maWxlcycsIE5vbmUpKQotCi0gIGRlZiBBc0RpY3Qoc2VsZik6Ci0gICAgcmV0dXJuIHsKLSAgICAgICdzb3VyY2VfcGF0aHMnOiBsaXN0KHNlbGYuc291cmNlX3BhdGhzKSwKLSAgICAgICdub25fbW9kdWxlX2h0bWxfZmlsZXMnOiBsaXN0KHNlbGYubm9uX21vZHVsZV9odG1sX2ZpbGVzKQotICAgIH0KLQotICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgcmV0dXJuICJQcm9qZWN0KCVzKSIgJSByZXByKHNlbGYuc291cmNlX3BhdGhzKQotCi0gIGRlZiBBZGRTb3VyY2VQYXRoKHNlbGYsIHBhdGgpOgotICAgIHNlbGYuc291cmNlX3BhdGhzLmFwcGVuZChwYXRoKQotCi0gIEBwcm9wZXJ0eQotICBkZWYgbG9hZGVyKHNlbGYpOgotICAgIGlmIHNlbGYuX2xvYWRlciA9PSBOb25lOgotICAgICAgc2VsZi5fbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHNlbGYpCi0gICAgcmV0dXJuIHNlbGYuX2xvYWRlcgotCi0gIGRlZiBSZXNldExvYWRlcihzZWxmKToKLSAgICBzZWxmLl9sb2FkZXIgPSBOb25lCi0KLSAgZGVmIF9GaW5kQWxsTW9kdWxlRmlsZW5hbWVzKHNlbGYsIHNvdXJjZV9wYXRocyk6Ci0gICAgYWxsX2ZpbGVuYW1lcyA9IF9GaW5kQWxsRmlsZXNSZWN1cnNpdmUoc291cmNlX3BhdGhzKQotICAgIHJldHVybiBbeCBmb3IgeCBpbiBhbGxfZmlsZW5hbWVzIGlmCi0gICAgICAgICAgICB4IG5vdCBpbiBzZWxmLm5vbl9tb2R1bGVfaHRtbF9maWxlcyBhbmQKLSAgICAgICAgICAgIF9Jc0ZpbGVuYW1lQU1vZHVsZShzZWxmLmxvYWRlciwgeCldCi0KLSAgZGVmIEZpbmRBbGxNb2R1bGVGaWxlbmFtZXMoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYuX0ZpbmRBbGxNb2R1bGVGaWxlbmFtZXMoc2VsZi5zb3VyY2VfcGF0aHMpCi0KLSAgZGVmIENhbGNMb2FkU2VxdWVuY2VGb3JBbGxNb2R1bGVzKHNlbGYpOgotICAgIGZpbGVuYW1lcyA9IHNlbGYuRmluZEFsbE1vZHVsZUZpbGVuYW1lcygpCi0gICAgcmV0dXJuIHNlbGYuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZUZpbGVuYW1lcyhmaWxlbmFtZXMpCi0KLSAgZGVmIF9Mb2FkKHNlbGYsIGZpbGVuYW1lcyk6Ci0gICAgcmV0dXJuIFtzZWxmLmxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9maWxlbmFtZT1maWxlbmFtZSkgZm9yCi0gICAgICAgICAgICBmaWxlbmFtZSBpbiBmaWxlbmFtZXNdCi0KLSAgZGVmIENhbGNMb2FkU2VxdWVuY2VGb3JNb2R1bGVGaWxlbmFtZXMoc2VsZiwgZmlsZW5hbWVzKToKLSAgICBtb2R1bGVzID0gc2VsZi5fTG9hZChmaWxlbmFtZXMpCi0gICAgcmV0dXJuIHNlbGYuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZXMobW9kdWxlcykKLQotICBkZWYgQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZU5hbWVzKHNlbGYsIG1vZHVsZV9uYW1lcyk6Ci0gICAgbW9kdWxlcyA9IFtzZWxmLmxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPW5hbWUpIGZvcgotICAgICAgICAgICAgICAgbmFtZSBpbiBtb2R1bGVfbmFtZXNdCi0gICAgcmV0dXJuIHNlbGYuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZXMobW9kdWxlcykKLQotICBkZWYgQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZXMoc2VsZiwgbW9kdWxlcyk6Ci0gICAgYWxyZWFkeV9sb2FkZWRfc2V0ID0gc2V0KCkKLSAgICBsb2FkX3NlcXVlbmNlID0gW10KLSAgICBmb3IgbSBpbiBtb2R1bGVzOgotICAgICAgbS5Db21wdXRlTG9hZFNlcXVlbmNlUmVjdXJzaXZlKGxvYWRfc2VxdWVuY2UsIGFscmVhZHlfbG9hZGVkX3NldCkKLSAgICByZXR1cm4gbG9hZF9zZXF1ZW5jZQotCi0gIGRlZiBHZXREZXBzR3JhcGhGcm9tTW9kdWxlTmFtZXMoc2VsZiwgbW9kdWxlX25hbWVzKToKLSAgICBtb2R1bGVzID0gW3NlbGYubG9hZGVyLkxvYWRNb2R1bGUobW9kdWxlX25hbWU9bmFtZSkgZm9yCi0gICAgICAgICAgICAgICBuYW1lIGluIG1vZHVsZV9uYW1lc10KLSAgICByZXR1cm4gc2VsZi5HZXREZXBzR3JhcGhGcm9tTW9kdWxlcyhtb2R1bGVzKQotCi0gIGRlZiBHZXREZXBzR3JhcGhGcm9tTW9kdWxlcyhzZWxmLCBtb2R1bGVzKToKLSAgICBsb2FkX3NlcXVlbmNlID0gc2VsZi5DYWxjTG9hZFNlcXVlbmNlRm9yTW9kdWxlcyhtb2R1bGVzKQotICAgIGcgPSBfR3JhcGgoKQotICAgIGZvciBtIGluIGxvYWRfc2VxdWVuY2U6Ci0gICAgICBnLkFkZE1vZHVsZShtKQotCi0gICAgICBmb3IgZGVwIGluIG0uZGVwZW5kZW50X21vZHVsZXM6Ci0gICAgICAgIGcuQWRkRWRnZShtLCBkZXAuaWQpCi0KLQotICAgIHJldHVybiBfR2V0R3JhcGgobG9hZF9zZXF1ZW5jZSkKLQotICBkZWYgR2V0RG9taW5hdG9yR3JhcGhGb3JNb2R1bGVzTmFtZWQoc2VsZiwgbW9kdWxlX25hbWVzLCBsb2FkX3NlcXVlbmNlPU5vbmUpOgotICAgIG1vZHVsZXMgPSBbc2VsZi5sb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT1uYW1lKSBmb3IKLSAgICAgICAgICAgbmFtZSBpbiBtb2R1bGVfbmFtZXNdCi0gICAgcmV0dXJuIHNlbGYuR2V0RG9taW5hdG9yR3JhcGhGb3JNb2R1bGVzKG1vZHVsZXMsIGxvYWRfc2VxdWVuY2UpCi0KLSAgZGVmIEdldERvbWluYXRvckdyYXBoRm9yTW9kdWxlcyhzZWxmLCBzdGFydF9tb2R1bGVzLCBsb2FkX3NlcXVlbmNlPU5vbmUpOgotICAgICMgTG9hZCBhbGwgbW9kdWxlcwotICAgIGlmIGxvYWRfc2VxdWVuY2UgPT0gTm9uZToKLSAgICAgIGxvYWRfc2VxdWVuY2UgPSBzZWxmLkNhbGNMb2FkU2VxdWVuY2VGb3JBbGxNb2R1bGVzKCkKLQotICAgIG1vZHVsZXNfYnlfaWQgPSB7fQotICAgIGZvciBtIGluIGxvYWRfc2VxdWVuY2U6Ci0gICAgICBtb2R1bGVzX2J5X2lkW20uaWRdID0gbQotCi0gICAgIyBNb2R1bGUgcmVmZXJyZXJzIGdvZXMgbW9kdWxlCi0gICAgbW9kdWxlX3JlZmVycmVycyA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KGxpc3QpCi0gICAgZm9yIG0gaW4gbG9hZF9zZXF1ZW5jZToKLSAgICAgIGZvciBkZXAgaW4gbS5kZXBlbmRlbnRfbW9kdWxlczoKLSAgICAgICAgbW9kdWxlX3JlZmVycmVyc1tkZXBdLmFwcGVuZChtKQotCi0gICAgIyBOb3cgc3RhcnQgYXQgdGhlIHRvcCBtb2R1bGUgYW5kIHJldmVyc2UKLSAgICB2aXNpdGVkID0gc2V0KCkKLSAgICBnID0gX0dyYXBoKCkKLQotICAgIHBlbmRpbmcgPSBjb2xsZWN0aW9ucy5kZXF1ZSgpCi0gICAgcGVuZGluZy5leHRlbmQoc3RhcnRfbW9kdWxlcykKLSAgICB3aGlsZSBsZW4ocGVuZGluZyk6Ci0gICAgICBjdXIgPSBwZW5kaW5nLnBvcCgpCi0KLSAgICAgIGcuQWRkTW9kdWxlKGN1cikKLSAgICAgIHZpc2l0ZWQuYWRkKGN1cikKLQotICAgICAgZm9yIG91dF9kZXAgaW4gbW9kdWxlX3JlZmVycmVyc1tjdXJdOgotICAgICAgICBpZiBvdXRfZGVwIGluIHZpc2l0ZWQ6Ci0gICAgICAgICAgY29udGludWUKLSAgICAgICAgZy5BZGRFZGdlKG91dF9kZXAsIGN1cikKLSAgICAgICAgdmlzaXRlZC5hZGQob3V0X2RlcCkKLSAgICAgICAgcGVuZGluZy5hcHBlbmQob3V0X2RlcCkKLQotICAgICMgVmlzaXRlZCAtPiBEb3QKLSAgICByZXR1cm4gZy5HZXREb3QoKQotCi1jbGFzcyBfR3JhcGgob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYubm9kZXMgPSBbXQotICAgIHNlbGYuZWRnZXMgPSBbXQotCi0gIGRlZiBBZGRNb2R1bGUoc2VsZiwgbSk6Ci0gICAgZiA9IGNTdHJpbmdJTy5TdHJpbmdJTygpCi0gICAgbS5BcHBlbmRKU0NvbnRlbnRzVG9GaWxlKGYsIEZhbHNlLCBOb25lKQotCi0gICAgYXR0cnMgPSB7Ci0gICAgICAibGFiZWwiOiAiJXMgKCVpKSIgJSAobS5uYW1lLCBmLnRlbGwoKSkKLSAgICB9OwotCi0gICAgZi5jbG9zZSgpCi0KLSAgICBhdHRyX2l0ZW1zID0gWyclcz0iJXMiJyAlICh4LHkpIGZvciB4LHkgaW4gYXR0cnMuaXRlcml0ZW1zKCldCi0gICAgbm9kZSA9ICJNJWkgWyVzXTsiICUgKG0uaWQsICcsJy5qb2luKGF0dHJfaXRlbXMpKQotICAgIHNlbGYubm9kZXMuYXBwZW5kKG5vZGUpCi0KLSAgZGVmIEFkZEVkZ2Uoc2VsZiwgbUZyb20sIG1Ubyk6Ci0gICAgZWRnZSA9ICJNJWkgLT4gTSVpOyIgJSAobUZyb20uaWQsIG1Uby5pZCk7Ci0gICAgc2VsZi5lZGdlcy5hcHBlbmQoZWRnZSkKLQotICBkZWYgR2V0RG90KHNlbGYpOgotICAgIHJldHVybiAiIiJkaWdyYXBoIGRlcHMgewotJXMKLQotJXMKLX0KLSIiIiAlICgnXG4nLmpvaW4oc2VsZi5ub2RlcyksICdcbicuam9pbihzZWxmLmVkZ2VzKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2UucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Jlc291cmNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzRjNzBkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0jIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0iIiJBIFJlc291cmNlIGlzIGEgZmlsZSBhbmQgaXRzIHZhcmlvdXMgYXNzb2NpYXRlZCBjYW5vbmljYWwgbmFtZXMuIiIiCi0KLWltcG9ydCBjb2RlY3MKLWltcG9ydCBvcwotCi1jbGFzcyBSZXNvdXJjZShvYmplY3QpOgotICAiIiJSZXByZXNlbnRzIGEgZmlsZSBmb3VuZCB2aWEgYSBwYXRoIHNlYXJjaC4iIiIKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHRvcGxldmVsX2RpciwgYWJzb2x1dGVfcGF0aCwgYmluYXJ5PUZhbHNlKToKLSAgICBzZWxmLnRvcGxldmVsX2RpciA9IHRvcGxldmVsX2RpcgotICAgIHNlbGYuYWJzb2x1dGVfcGF0aCA9IGFic29sdXRlX3BhdGgKLSAgICBzZWxmLl9jb250ZW50cyA9IE5vbmUKLSAgICBzZWxmLl9iaW5hcnkgPSBiaW5hcnkKLQotICBAcHJvcGVydHkKLSAgZGVmIHJlbGF0aXZlX3BhdGgoc2VsZik6Ci0gICAgIiIiVGhlIHBhdGggdG8gdGhlIGZpbGUgZnJvbSB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSIiIgotICAgIHJldHVybiBvcy5wYXRoLnJlbHBhdGgoc2VsZi5hYnNvbHV0ZV9wYXRoLCBzZWxmLnRvcGxldmVsX2RpcikKLQotICBAcHJvcGVydHkKLSAgZGVmIHVuaXhfc3R5bGVfcmVsYXRpdmVfcGF0aChzZWxmKToKLSAgICByZXR1cm4gc2VsZi5yZWxhdGl2ZV9wYXRoLnJlcGxhY2Uob3Muc2VwLCAnLycpCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBuYW1lKHNlbGYpOgotICAgICIiIlRoZSBkb3R0ZWQgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBiYXNlZCBvbiBpdHMgcmVsYXRpdmUgcGF0aC4iIiIKLSAgICByZXR1cm4gc2VsZi5uYW1lX2Zyb21fcmVsYXRpdmVfcGF0aChzZWxmLnJlbGF0aXZlX3BhdGgpCi0KLSAgQHN0YXRpY21ldGhvZAotICBkZWYgbmFtZV9mcm9tX3JlbGF0aXZlX3BhdGgocmVsYXRpdmVfcGF0aCk6Ci0gICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShyZWxhdGl2ZV9wYXRoKQotICAgIGJhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShyZWxhdGl2ZV9wYXRoKQotICAgIG1vZG5hbWUgID0gb3MucGF0aC5zcGxpdGV4dChiYXNlbmFtZSlbMF0KLSAgICBpZiBsZW4oZGlybmFtZSk6Ci0gICAgICBuYW1lID0gZGlybmFtZS5yZXBsYWNlKG9zLnBhdGguc2VwLCAnLicpICsgJy4nICsgbW9kbmFtZQotICAgIGVsc2U6Ci0gICAgICBuYW1lID0gbW9kbmFtZQotICAgIHJldHVybiBuYW1lCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBjb250ZW50cyhzZWxmKToKLSAgICBpZiBzZWxmLl9jb250ZW50czoKLSAgICAgIHJldHVybiBzZWxmLl9jb250ZW50cwotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLmFic29sdXRlX3BhdGgpOgotICAgICAgcmFpc2UgRXhjZXB0aW9uKCclcyBub3QgZm91bmQuJyAlIHNlbGYuYWJzb2x1dGVfcGF0aCkKLSAgICBpZiBzZWxmLl9iaW5hcnk6Ci0gICAgICBmID0gb3BlbihzZWxmLmFic29sdXRlX3BhdGgsIG1vZGU9J3JiJykKLSAgICBlbHNlOgotICAgICAgZiA9IGNvZGVjcy5vcGVuKHNlbGYuYWJzb2x1dGVfcGF0aCwgbW9kZT0ncicsIGVuY29kaW5nPSd1dGYtOCcpCi0gICAgc2VsZi5fY29udGVudHMgPSBmLnJlYWQoKQotICAgIGYuY2xvc2UoKQotICAgIHJldHVybiBzZWxmLl9jb250ZW50cwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9yZXNvdXJjZV9sb2FkZXIucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Jlc291cmNlX2xvYWRlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZjNDk0ZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Jlc291cmNlX2xvYWRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDIxNSArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotIiIiUmVzb3VyY2VGaW5kZXIgaXMgYSBoZWxwZXIgY2xhc3MgZm9yIGZpbmRpbmcgcmVzb3VyY2VzIGdpdmVuIHRoZWlyIG5hbWUuIiIiCi0KLWltcG9ydCBvcwotZnJvbSB0dmNtIGltcG9ydCBtb2R1bGUKLWZyb20gdHZjbSBpbXBvcnQgc3R5bGVfc2hlZXQgYXMgc3R5bGVfc2hlZXRfbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlIGFzIHJlc291cmNlX21vZHVsZQotZnJvbSB0dmNtIGltcG9ydCBodG1sX21vZHVsZQotZnJvbSB0dmNtIGltcG9ydCBzdHJpcF9qc19jb21tZW50cwotCi1jbGFzcyBSZXNvdXJjZUxvYWRlcihvYmplY3QpOgotICAiIiJNYW5nZXMgbG9hZGluZyBtb2R1bGVzIGFuZCB0aGVpciBkZXBlbmRlbmNpZXMgZnJvbSBmaWxlcy4KLQotICBNb2R1bGVzIGhhbmRsZSBwYXJzaW5nIGFuZCB0aGUgY29uc3RydWN0aW9uIG9mIHRoZWlyIGluZGl2aWR1YWwgZGVwZW5kZW5jeQotICBwb2ludGVycy4gVGhlIGxvYWRlciBkZWFscyB3aXRoIGJvb2trZWVwaW5nIG9mIHdoYXQgaGFzIGJlZW4gbG9hZGVkLCBhbmQKLSAgbWFwcGluZyBuYW1lcyB0byBmaWxlIHJlc291cmNlcy4KLQotICAiIiIKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2plY3QpOgotICAgIHNlbGYucHJvamVjdCA9IHByb2plY3QKLSAgICBzZWxmLnN0cmlwcGVkX2pzX2J5X2ZpbGVuYW1lID0ge30KLSAgICBzZWxmLmxvYWRlZF9tb2R1bGVzID0ge30KLSAgICBzZWxmLmxvYWRlZF9yYXdfc2NyaXB0cyA9IHt9Ci0gICAgc2VsZi5sb2FkZWRfc3R5bGVfc2hlZXRzID0ge30KLSAgICBzZWxmLmxvYWRlZF9pbWFnZXMgPSB7fQotCi0gIEBwcm9wZXJ0eQotICBkZWYgc291cmNlX3BhdGhzKHNlbGYpOgotICAgICIiIkEgbGlzdCBvZiBiYXNlIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgbW9kdWxlcyB1bmRlci4iIiIKLSAgICByZXR1cm4gc2VsZi5wcm9qZWN0LnNvdXJjZV9wYXRocwotCi0gIGRlZiBGaW5kUmVzb3VyY2Uoc2VsZiwgc29tZV9wYXRoLCBiaW5hcnk9RmFsc2UpOgotICAgICIiIkZpbmRzIGEgUmVzb3VyY2UgZm9yIHRoZSBnaXZlbiBwYXRoLgotCi0gICAgQXJnczoKLSAgICAgIHNvbWVfcGF0aDogQSByZWxhdGl2ZSBvciBhYnNvbHV0ZSBwYXRoIHRvIGEgZmlsZS4KLQotICAgIFJldHVybnM6Ci0gICAgICBBIFJlc291cmNlIG9yIE5vbmUuCi0gICAgIiIiCi0gICAgaWYgb3MucGF0aC5pc2Ficyhzb21lX3BhdGgpOgotICAgICAgcmV0dXJuIHNlbGYuRmluZFJlc291cmNlR2l2ZW5BYnNvbHV0ZVBhdGgoc29tZV9wYXRoLCBiaW5hcnkpCi0gICAgZWxzZToKLSAgICAgIHJldHVybiBzZWxmLkZpbmRSZXNvdXJjZUdpdmVuUmVsYXRpdmVQYXRoKHNvbWVfcGF0aCwgYmluYXJ5KQotCi0gIGRlZiBGaW5kUmVzb3VyY2VHaXZlbkFic29sdXRlUGF0aChzZWxmLCBhYnNvbHV0ZV9wYXRoLCBiaW5hcnk9RmFsc2UpOgotICAgICIiIlJldHVybnMgYSBSZXNvdXJjZSBmb3IgdGhlIGdpdmVuIGFic29sdXRlIHBhdGguIiIiCi0gICAgY2FuZGlkYXRlX3BhdGhzID0gW10KLSAgICBmb3Igc291cmNlX3BhdGggaW4gc2VsZi5zb3VyY2VfcGF0aHM6Ci0gICAgICBpZiBhYnNvbHV0ZV9wYXRoLnN0YXJ0c3dpdGgoc291cmNlX3BhdGgpOgotICAgICAgICBjYW5kaWRhdGVfcGF0aHMuYXBwZW5kKHNvdXJjZV9wYXRoKQotICAgIGlmIGxlbihjYW5kaWRhdGVfcGF0aHMpID09IDA6Ci0gICAgICByZXR1cm4gTm9uZQotCi0gICAgIyBTb3J0IGJ5IGxlbmd0aC4gTG9uZ2VzdCBtYXRjaCB3aW5zLgotICAgIGNhbmRpZGF0ZV9wYXRocy5zb3J0KGxhbWJkYSB4LCB5OiBsZW4oeCkgLSBsZW4oeSkpCi0gICAgbG9uZ2VzdF9jYW5kaWRhdGUgPSBjYW5kaWRhdGVfcGF0aHNbLTFdCi0gICAgcmV0dXJuIHJlc291cmNlX21vZHVsZS5SZXNvdXJjZShsb25nZXN0X2NhbmRpZGF0ZSwgYWJzb2x1dGVfcGF0aCwgYmluYXJ5KQotCi0gIGRlZiBGaW5kUmVzb3VyY2VHaXZlblJlbGF0aXZlUGF0aChzZWxmLCByZWxhdGl2ZV9wYXRoLCBiaW5hcnk9RmFsc2UpOgotICAgICIiIlJldHVybnMgYSBSZXNvdXJjZSBmb3IgdGhlIGdpdmVuIHJlbGF0aXZlIHBhdGguIiIiCi0gICAgYWJzb2x1dGVfcGF0aCA9IE5vbmUKLSAgICBmb3Igc2NyaXB0X3BhdGggaW4gc2VsZi5zb3VyY2VfcGF0aHM6Ci0gICAgICBhYnNvbHV0ZV9wYXRoID0gb3MucGF0aC5qb2luKHNjcmlwdF9wYXRoLCByZWxhdGl2ZV9wYXRoKQotICAgICAgaWYgb3MucGF0aC5leGlzdHMoYWJzb2x1dGVfcGF0aCk6Ci0gICAgICAgIHJldHVybiByZXNvdXJjZV9tb2R1bGUuUmVzb3VyY2Uoc2NyaXB0X3BhdGgsIGFic29sdXRlX3BhdGgsIGJpbmFyeSkKLSAgICByZXR1cm4gTm9uZQotCi0KLSAgZGVmIF9GaW5kUmVzb3VyY2VHaXZlbk5hbWVBbmRTdWZmaXgoc2VsZiwgcmVxdWVzdGVkX25hbWUsIGV4dGVuc2lvbiwgcmV0dXJuX3Jlc291cmNlPUZhbHNlKToKLSAgICAiIiJTZWFyY2hlcyBmb3IgYSBmaWxlIGFuZCByZWFkcyBpdHMgY29udGVudHMuCi0KLSAgICBBcmdzOgotICAgICAgcmVxdWVzdGVkX25hbWU6IFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSB0aGF0IHdhcyByZXF1ZXN0ZWQuCi0gICAgICBleHRlbnNpb246IFRoZSBleHRlbnNpb24gZm9yIHRoaXMgcmVxdWVzdGVkIHJlc291cmNlLgotCi0gICAgUmV0dXJuczoKLSAgICAgIEEgKHBhdGgsIGNvbnRlbnRzKSBwYWlyLgotICAgICIiIgotICAgIHBhdGh5X25hbWUgPSByZXF1ZXN0ZWRfbmFtZS5yZXBsYWNlKCcuJywgb3Muc2VwKQotICAgIGZpbGVuYW1lID0gcGF0aHlfbmFtZSArIGV4dGVuc2lvbgotCi0gICAgcmVzb3VyY2UgPSBzZWxmLkZpbmRSZXNvdXJjZUdpdmVuUmVsYXRpdmVQYXRoKGZpbGVuYW1lKQotICAgIGlmIHJldHVybl9yZXNvdXJjZToKLSAgICAgIHJldHVybiByZXNvdXJjZQotICAgIGlmIG5vdCByZXNvdXJjZToKLSAgICAgIHJldHVybiBOb25lLCBOb25lCi0gICAgcmV0dXJuIF9yZWFkX2ZpbGUocmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkKLQotICBkZWYgRmluZE1vZHVsZVJlc291cmNlKHNlbGYsIHJlcXVlc3RlZF9tb2R1bGVfbmFtZSk6Ci0gICAgIiIiRmluZHMgYSBtb2R1bGUgamF2YXNjcmlwdCBmaWxlIGFuZCByZXR1cm5zIGEgUmVzb3VyY2UsIG9yIG5vbmUuIiIiCi0gICAganNfcmVzb3VyY2UgPSBzZWxmLl9GaW5kUmVzb3VyY2VHaXZlbk5hbWVBbmRTdWZmaXgocmVxdWVzdGVkX21vZHVsZV9uYW1lLCAnLmpzJywgcmV0dXJuX3Jlc291cmNlPVRydWUpCi0gICAgaHRtbF9yZXNvdXJjZSA9IHNlbGYuX0ZpbmRSZXNvdXJjZUdpdmVuTmFtZUFuZFN1ZmZpeChyZXF1ZXN0ZWRfbW9kdWxlX25hbWUsICcuaHRtbCcsIHJldHVybl9yZXNvdXJjZT1UcnVlKQotICAgIGlmIGpzX3Jlc291cmNlIGFuZCBodG1sX3Jlc291cmNlOgotICAgICAgaWYgaHRtbF9tb2R1bGUuSXNIVE1MUmVzb3VyY2VUaGVNb2R1bGVHaXZlbkNvbmZsaWN0aW5nUmVzb3VyY2VOYW1lcyhqc19yZXNvdXJjZSwgaHRtbF9yZXNvdXJjZSk6Ci0gICAgICAgIHJldHVybiBodG1sX3Jlc291cmNlCi0gICAgICByZXR1cm4ganNfcmVzb3VyY2UKLSAgICBlbGlmIGpzX3Jlc291cmNlOgotICAgICAgcmV0dXJuIGpzX3Jlc291cmNlCi0gICAgcmV0dXJuIGh0bWxfcmVzb3VyY2UKLQotICBkZWYgTG9hZE1vZHVsZShzZWxmLCBtb2R1bGVfbmFtZT1Ob25lLCBtb2R1bGVfZmlsZW5hbWU9Tm9uZSk6Ci0gICAgYXNzZXJ0IGJvb2wobW9kdWxlX25hbWUpIF4gYm9vbChtb2R1bGVfZmlsZW5hbWUpLCAnTXVzdCBwcm92aWRlIG1vZHVsZV9uYW1lIG9yIG1vZHVsZV9maWxlbmFtZS4nCi0gICAgaWYgbW9kdWxlX2ZpbGVuYW1lOgotICAgICAgcmVzb3VyY2UgPSBzZWxmLkZpbmRSZXNvdXJjZShtb2R1bGVfZmlsZW5hbWUpCi0gICAgICBpZiBub3QgcmVzb3VyY2U6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgJXMgaW4gJXMnICUgKAotICAgICAgICAgICAgbW9kdWxlX2ZpbGVuYW1lLCByZXByKHNlbGYuc291cmNlX3BhdGhzKSkpCi0gICAgICBtb2R1bGVfbmFtZSA9IHJlc291cmNlLm5hbWUKLSAgICBlbHNlOgotICAgICAgcmVzb3VyY2UgPSBOb25lICMgV2lsbCBiZSBzZXQgaWYgd2UgZW5kIHVwIG5lZWRpbmcgdG8gbG9hZC4KLQotICAgIGlmIG1vZHVsZV9uYW1lIGluIHNlbGYubG9hZGVkX21vZHVsZXM6Ci0gICAgICBhc3NlcnQgc2VsZi5sb2FkZWRfbW9kdWxlc1ttb2R1bGVfbmFtZV0uY29udGVudHMKLSAgICAgIHJldHVybiBzZWxmLmxvYWRlZF9tb2R1bGVzW21vZHVsZV9uYW1lXQotCi0gICAgaWYgbm90IHJlc291cmNlOiAjIGhhcHBlbnMgd2hlbiBtb2R1bGVfbmFtZSB3YXMgZ2l2ZW4KLSAgICAgIHJlc291cmNlID0gc2VsZi5GaW5kTW9kdWxlUmVzb3VyY2UobW9kdWxlX25hbWUpCi0gICAgICBpZiBub3QgcmVzb3VyY2U6Ci0gICAgICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKCdObyByZXNvdXJjZSBmb3IgbW9kdWxlICIlcyInICUgbW9kdWxlX25hbWUpCi0KLSAgICBtID0gaHRtbF9tb2R1bGUuSFRNTE1vZHVsZShzZWxmLCBtb2R1bGVfbmFtZSwgcmVzb3VyY2UpCi0gICAgc2VsZi5sb2FkZWRfbW9kdWxlc1ttb2R1bGVfbmFtZV0gPSBtCi0KLSAgICAjIEZha2UgaXQsIHRoaXMgaXMgcHJvYmFibHkgZWl0aGVyIHBvbHltZXIubWluLmpzIG9yIHBsYXRmb3JtLmpzIHdoaWNoIGFyZQotICAgICMgYWN0dWFsbHkgLmpzIGZpbGVzLi4uLgotICAgIGlmIHJlc291cmNlLmFic29sdXRlX3BhdGguZW5kc3dpdGgoJy5qcycpOgotICAgICAgcmV0dXJuIG0KLQotICAgIG0uUGFyc2UoKQotICAgIG0uTG9hZCgpCi0gICAgcmV0dXJuIG0KLQotICBkZWYgTG9hZFJhd1NjcmlwdChzZWxmLCByZWxhdGl2ZV9yYXdfc2NyaXB0X3BhdGgpOgotICAgIHJlc291cmNlID0gTm9uZQotICAgIGZvciBzb3VyY2VfcGF0aCBpbiBzZWxmLnNvdXJjZV9wYXRoczoKLSAgICAgIHBvc3NpYmxlX2Fic29sdXRlX3BhdGggPSBvcy5wYXRoLmpvaW4oc291cmNlX3BhdGgsIHJlbGF0aXZlX3Jhd19zY3JpcHRfcGF0aCkKLSAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHBvc3NpYmxlX2Fic29sdXRlX3BhdGgpOgotICAgICAgICByZXNvdXJjZSA9IHJlc291cmNlX21vZHVsZS5SZXNvdXJjZShzb3VyY2VfcGF0aCwgcG9zc2libGVfYWJzb2x1dGVfcGF0aCkKLSAgICAgICAgYnJlYWsKLSAgICBpZiBub3QgcmVzb3VyY2U6Ci0gICAgICByYWlzZSBtb2R1bGUuRGVwc0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYSBmaWxlIGZvciByYXcgc2NyaXB0ICVzIGluICVzJyAlICgKLSAgICAgICAgcmVsYXRpdmVfcmF3X3NjcmlwdF9wYXRoLCBzZWxmLnNvdXJjZV9wYXRocykpCi0gICAgYXNzZXJ0IHJlbGF0aXZlX3Jhd19zY3JpcHRfcGF0aCA9PSByZXNvdXJjZS51bml4X3N0eWxlX3JlbGF0aXZlX3BhdGgsIFwKLSAgICAgICAgJ0V4cGVjdGVkICVzID09ICVzJyAlIChyZWxhdGl2ZV9yYXdfc2NyaXB0X3BhdGgsIHJlc291cmNlLnVuaXhfc3R5bGVfcmVsYXRpdmVfcGF0aCkKLQotICAgIGlmIHJlc291cmNlLmFic29sdXRlX3BhdGggaW4gc2VsZi5sb2FkZWRfcmF3X3NjcmlwdHM6Ci0gICAgICByZXR1cm4gc2VsZi5sb2FkZWRfcmF3X3NjcmlwdHNbcmVzb3VyY2UuYWJzb2x1dGVfcGF0aF0KLQotICAgIHJhd19zY3JpcHQgPSBtb2R1bGUuUmF3U2NyaXB0KHJlc291cmNlKQotICAgIHNlbGYubG9hZGVkX3Jhd19zY3JpcHRzW3Jlc291cmNlLmFic29sdXRlX3BhdGhdID0gcmF3X3NjcmlwdAotICAgIHJldHVybiByYXdfc2NyaXB0Ci0KLSAgZGVmIExvYWRTdHlsZVNoZWV0KHNlbGYsIG5hbWUpOgotICAgIGlmIG5hbWUgaW4gc2VsZi5sb2FkZWRfc3R5bGVfc2hlZXRzOgotICAgICAgcmV0dXJuIHNlbGYubG9hZGVkX3N0eWxlX3NoZWV0c1tuYW1lXQotCi0gICAgcmVzb3VyY2UgPSBzZWxmLl9GaW5kUmVzb3VyY2VHaXZlbk5hbWVBbmRTdWZmaXgobmFtZSwgJy5jc3MnLCByZXR1cm5fcmVzb3VyY2U9VHJ1ZSkKLSAgICBpZiBub3QgcmVzb3VyY2U6Ci0gICAgICByYWlzZSBtb2R1bGUuRGVwc0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYSBmaWxlIGZvciBzdHlsZXNoZWV0ICVzJyAlIG5hbWUpCi0KLSAgICBzdHlsZV9zaGVldCA9IHN0eWxlX3NoZWV0X21vZHVsZS5TdHlsZVNoZWV0KHNlbGYsIG5hbWUsIHJlc291cmNlKQotICAgIHN0eWxlX3NoZWV0LmxvYWQoKQotICAgIHNlbGYubG9hZGVkX3N0eWxlX3NoZWV0c1tuYW1lXSA9IHN0eWxlX3NoZWV0Ci0gICAgcmV0dXJuIHN0eWxlX3NoZWV0Ci0KLSAgZGVmIExvYWRJbWFnZShzZWxmLCBhYnNfcGF0aCk6Ci0gICAgaWYgYWJzX3BhdGggaW4gc2VsZi5sb2FkZWRfaW1hZ2VzOgotICAgICAgcmV0dXJuIHNlbGYubG9hZGVkX2ltYWdlc1thYnNfcGF0aF0KLQotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhhYnNfcGF0aCk6Ci0gICAgICByYWlzZSBtb2R1bGUuRGVwc0V4Y2VwdGlvbigKLSAgICAgICAgIiIidXJsKCclcycpIGRpZCBub3QgZXhpc3QiIiIgJSBhYnNfcGF0aCkKLQotICAgIHJlcyA9ICBzZWxmLkZpbmRSZXNvdXJjZUdpdmVuQWJzb2x1dGVQYXRoKGFic19wYXRoLCBiaW5hcnk9VHJ1ZSkKLSAgICBpZiByZXMgPT0gTm9uZToKLSAgICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKAotICAgICAgICAgICIiInVybCgnJXMnKSB3YXMgbm90IGluIHNlYXJjaCBwYXRoIiIiICUgYWJzX3BhdGgpCi0KLSAgICBpbWFnZSA9IHN0eWxlX3NoZWV0X21vZHVsZS5JbWFnZShyZXMpCi0gICAgc2VsZi5sb2FkZWRfaW1hZ2VzW2Fic19wYXRoXSA9IGltYWdlCi0gICAgcmV0dXJuIGltYWdlCi0KLSAgZGVmIEdldFN0cmlwcGVkSlNGb3JGaWxlbmFtZShzZWxmLCBmaWxlbmFtZSwgZWFybHlfb3V0X2lmX25vX3R2Y20pOgotICAgIGlmIGZpbGVuYW1lIGluIHNlbGYuc3RyaXBwZWRfanNfYnlfZmlsZW5hbWU6Ci0gICAgICByZXR1cm4gc2VsZi5zdHJpcHBlZF9qc19ieV9maWxlbmFtZVtmaWxlbmFtZV0KLQotICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3InKSBhcyBmOgotICAgICAgY29udGVudHMgPSBmLnJlYWQoNDA5NikKLSAgICBpZiBlYXJseV9vdXRfaWZfbm9fdHZjbSBhbmQgKCd0dmNtJyBub3QgaW4gY29udGVudHMpOgotICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHMgPSBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHMoY29udGVudHMpCi0gICAgc2VsZi5zdHJpcHBlZF9qc19ieV9maWxlbmFtZVtmaWxlbmFtZV0gPSBzCi0gICAgcmV0dXJuIHMKLQotCi1kZWYgX3JlYWRfZmlsZShhYnNvbHV0ZV9wYXRoKToKLSAgIiIiUmVhZHMgYSBmaWxlIGFuZCByZXR1cm5zIGEgKHBhdGgsIGNvbnRlbnRzKSBwYWlyLgotCi0gIEFyZ3M6Ci0gICAgYWJzb2x1dGVfcGF0aDogQWJzb2x1dGUgcGF0aCB0byBhIGZpbGUuCi0KLSAgUmFpc2VzOgotICAgIEV4Y2VwdGlvbjogVGhlIGdpdmVuIGZpbGUgZG9lc24ndCBleGlzdC4KLSAgICBJT0Vycm9yOiBUaGVyZSB3YXMgYSBwcm9ibGVtIG9wZW5pbmcgb3IgcmVhZGluZyB0aGUgZmlsZS4KLSAgIiIiCi0gIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhhYnNvbHV0ZV9wYXRoKToKLSAgICByYWlzZSBFeGNlcHRpb24oJyVzIG5vdCBmb3VuZC4nICUgYWJzb2x1dGVfcGF0aCkKLSAgZiA9IGNvZGVjcy5vcGVuKGFic29sdXRlX3BhdGgsIG1vZGU9J3InLCBlbmNvZGluZz0ndXRmLTgnKQotICBjb250ZW50cyA9IGYucmVhZCgpCi0gIGYuY2xvc2UoKQotICByZXR1cm4gYWJzb2x1dGVfcGF0aCwgY29udGVudHMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2VfbG9hZGVyX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9yZXNvdXJjZV9sb2FkZXJfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMjI1MTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9yZXNvdXJjZV9sb2FkZXJfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSIiIlRlc3RzIGZvciByZXNvdXJjZV9sb2FkZXIuIiIiCi0KLWltcG9ydCBvcwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gdHZjbSBpbXBvcnQgbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlX2xvYWRlcgotZnJvbSB0dmNtIGltcG9ydCBwcm9qZWN0IGFzIHByb2plY3RfbW9kdWxlCi0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2VfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Jlc291cmNlX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzA4ZDQ2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2VfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB0dmNtIGltcG9ydCByZXNvdXJjZQotCi1jbGFzcyBSZXNvdXJjZVVuaXR0ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgZGVmIHRlc3RCYXNpYyhzZWxmKToKLSAgICByID0gcmVzb3VyY2UuUmVzb3VyY2UoIi9hIiwgIi9hL2IvYy5qcyIpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoImIuYyIsIHIubmFtZSkKLSAgICBzZWxmLmFzc2VydEVxdWFscygiYi9jLmpzIiwgci5yZWxhdGl2ZV9wYXRoKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCJiL2MuanMiLCByLnVuaXhfc3R5bGVfcmVsYXRpdmVfcGF0aCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3RyaXBfanNfY29tbWVudHMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0cmlwX2pzX2NvbW1lbnRzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYmEyMDBjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3RyaXBfanNfY29tbWVudHMucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0jIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0iIiJVdGlsaXR5IGZ1bmN0aW9uIGZvciBzdHJpcHBpbmcgY29tbWVudHMgb3V0IG9mIGphdmFzY3JpcHQgc291cmNlIGNvZGUuIiIiCi0KLWltcG9ydCByZQotCi1kZWYgX1Rva2VuaXplSlModGV4dCk6Ci0gICIiIlNwbGl0cyBzb3VyY2UgY29kZSB0ZXh0IGludG8gc2VnbWVudHMgaW4gcHJlcGFyYXRpb24gZm9yIGNvbW1lbnQgc3RyaXBwaW5nLgotCi0gIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgdG9rZW5pemUgZm9yIHBhcnNpbmcuIFRoZXJlIGlzIG5vIG5vdGlvbiBvZiBzdGF0ZW1lbnRzLAotICB2YXJpYWJsZXMsIGV0Yy4gVGhlIG9ubHkgdG9rZW5zIG9mIGludGVyZXN0IGFyZSBjb21tZW50LXJlbGF0ZWQgdG9rZW5zLgotCi0gIEFyZ3M6Ci0gICAgdGV4dDogVGhlIGNvbnRlbnRzIG9mIGEgamF2YXNjcmlwdCBmaWxlLgotCi0gIFlpZWxkczoKLSAgICBBIHN1Y2Nlc3Npb24gb2Ygc3RyaW5ncyBpbiB0aGUgZmlsZSwgaW5jbHVkaW5nIGFsbCBjb21tZW50LXJlbGF0ZWQgc3ltYm9scy4KLSAgIiIiCi0gIHJlc3QgPSB0ZXh0Ci0gIHRva2VucyA9IFsiLy8iLCAiLyoiLCAiKi8iLCAiXG4iXQotICBuZXh0X3RvayA9IHJlLmNvbXBpbGUoJ3wnLmpvaW4oW3JlLmVzY2FwZSh4KSBmb3IgeCBpbiB0b2tlbnNdKSkKLSAgd2hpbGUgbGVuKHJlc3QpOgotICAgIG0gPSBuZXh0X3Rvay5zZWFyY2gocmVzdCkKLSAgICBpZiBub3QgbToKLSAgICAgICMgZW5kIG9mIHN0cmluZwotICAgICAgeWllbGQgcmVzdAotICAgICAgcmV0dXJuCi0gICAgbWluX2luZGV4ID0gbS5zdGFydCgpCi0gICAgZW5kX2luZGV4ID0gbS5lbmQoKQotCi0gICAgaWYgbWluX2luZGV4ID4gMDoKLSAgICAgIHlpZWxkIHJlc3RbOm1pbl9pbmRleF0KLQotICAgIHlpZWxkIHJlc3RbbWluX2luZGV4OmVuZF9pbmRleF0KLSAgICByZXN0ID0gcmVzdFtlbmRfaW5kZXg6XQotCi0KLWRlZiBTdHJpcEpTQ29tbWVudHModGV4dCk6Ci0gICIiIlN0cmlwcyBjb21tZW50cyBvdXQgb2YgamF2YXNjcmlwdCBzb3VyY2UgY29kZS4KLQotICBBcmdzOgotICAgIHRleHQ6IEphdmFzY3JpcHQgc291cmNlIHRleHQuCi0KLSAgUmV0dXJuczoKLSAgICBKYXZhc2NyaXB0IHNvdXJjZSB0ZXh0IHdpdGggY29tbWVudHMgc3RyaXBwZWQgb3V0LgotICAiIiIKLSAgcmVzdWx0X3Rva2VucyA9IFtdCi0gIHRva2VuX3N0cmVhbSA9IF9Ub2tlbml6ZUpTKHRleHQpLl9faXRlcl9fKCkKLSAgd2hpbGUgVHJ1ZToKLSAgICB0cnk6Ci0gICAgICB0ID0gdG9rZW5fc3RyZWFtLm5leHQoKQotICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgYnJlYWsKLQotICAgIGlmIHQgPT0gIi8vIjoKLSAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICB0MiA9IHRva2VuX3N0cmVhbS5uZXh0KCkKLSAgICAgICAgICBpZiB0MiA9PSAiXG4iOgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgICAgYnJlYWsKLSAgICBlbGlmIHQgPT0gJy8qJzoKLSAgICAgIG5lc3RpbmcgPSAxCi0gICAgICB3aGlsZSBUcnVlOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgdDIgPSB0b2tlbl9zdHJlYW0ubmV4dCgpCi0gICAgICAgICAgaWYgdDIgPT0gIi8qIjoKLSAgICAgICAgICAgIG5lc3RpbmcgKz0gMQotICAgICAgICAgIGVsaWYgdDIgPT0gIiovIjoKLSAgICAgICAgICAgIG5lc3RpbmcgLT0gMQotICAgICAgICAgICAgaWYgbmVzdGluZyA9PSAwOgotICAgICAgICAgICAgICBicmVhawotICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKLSAgICAgICAgICBicmVhawotICAgIGVsc2U6Ci0gICAgICByZXN1bHRfdG9rZW5zLmFwcGVuZCh0KQotICByZXR1cm4gIiIuam9pbihyZXN1bHRfdG9rZW5zKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9zdHJpcF9qc19jb21tZW50c191bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3RyaXBfanNfY29tbWVudHNfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ZTM4MjUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9zdHJpcF9qc19jb21tZW50c191bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSIiIlRlc3RzIGZvciBzdHJpcF9qc19jb21tZW50cyBtb2R1bGUuIiIiCi0KLWltcG9ydCB1bml0dGVzdAotCi1mcm9tIHR2Y20gaW1wb3J0IHN0cmlwX2pzX2NvbW1lbnRzCi0KLSMgVGhpcyB0ZXN0IGNhc2UgdGVzdHMgYSBwcm90ZWN0ZWQgbWV0aG9kLgotIyBweWxpbnQ6IGRpc2FibGU9VzAyMTIKLWNsYXNzIEphdmFTY3JpcHRTdHJpcENvbW1lbnRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICIiIlRlc3QgY2FzZSBmb3IgX3N0cmlwX2pzX2NvbW1lbnRzIGFuZCBfVG9rZW5pemVKUy4iIiIKLQotICBkZWYgdGVzdF9zdHJpcF9jb21tZW50cyhzZWxmKToKLSAgICBzZWxmLmFzc2VydEVxdWFscygKLSAgICAgICAgJ0EgJywgc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKCdBIC8vIGZvbycpKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAotICAgICAgICAnQSBiYXInLCBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHMoJ0EgLy8gZm9vXG5iYXInKSkKLSAgICBzZWxmLmFzc2VydEVxdWFscygKLSAgICAgICAgJ0EgIGInLCBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHMoJ0EgLyogZm9vICovIGInKSkKLSAgICBzZWxmLmFzc2VydEVxdWFscygKLSAgICAgICAgJ0EgIGInLCBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHMoJ0EgLyogZm9vXG4gKi8gYicpKQotCi0gIGRlZiB0ZXN0X3Rva2VuaXplX2VtcHR5KHNlbGYpOgotICAgIHRva2VucyA9IGxpc3Qoc3RyaXBfanNfY29tbWVudHMuX1Rva2VuaXplSlMoJycpKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCB0b2tlbnMpCi0KLSAgZGVmIHRlc3RfdG9rZW5pemVfbmwoc2VsZik6Ci0gICAgdG9rZW5zID0gbGlzdChzdHJpcF9qc19jb21tZW50cy5fVG9rZW5pemVKUygnXG4nKSkKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbJ1xuJ10sIHRva2VucykKLQotICBkZWYgdGVzdF90b2tlbml6ZV9zbGFzaHNsYXNoX2NvbW1lbnQoc2VsZik6Ci0gICAgdG9rZW5zID0gbGlzdChzdHJpcF9qc19jb21tZW50cy5fVG9rZW5pemVKUygnQSAvLyBmb28nKSkKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbJ0EgJywgJy8vJywgJyBmb28nXSwgdG9rZW5zKQotCi0gIGRlZiB0ZXN0X3Rva2VuaXplX3NsYXNoc2xhc2hfY29tbWVudF90aGVuX25ld2xpbmUoc2VsZik6Ci0gICAgdG9rZW5zID0gbGlzdChzdHJpcF9qc19jb21tZW50cy5fVG9rZW5pemVKUygnQSAvLyBmb29cbmJhcicpKQotICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsnQSAnLCAnLy8nLCAnIGZvbycsICdcbicsICdiYXInXSwgdG9rZW5zKQotCi0gIGRlZiB0ZXN0X3Rva2VuaXplX2NzdHlsZV9jb21tZW50X29uZV9saW5lKHNlbGYpOgotICAgIHRva2VucyA9IGxpc3Qoc3RyaXBfanNfY29tbWVudHMuX1Rva2VuaXplSlMoJ0EgLyogZm9vICovJykpCi0gICAgc2VsZi5hc3NlcnRFcXVhbHMoWydBICcsICcvKicsICcgZm9vICcsICcqLyddLCB0b2tlbnMpCi0KLSAgZGVmIHRlc3RfdG9rZW5pemVfY3N0eWxlX2NvbW1lbnRfbXVsdGlfbGluZShzZWxmKToKLSAgICB0b2tlbnMgPSBsaXN0KHN0cmlwX2pzX2NvbW1lbnRzLl9Ub2tlbml6ZUpTKCdBIC8qIGZvb1xuKmJhclxuKi8nKSkKLSAgICBzZWxmLmFzc2VydEVxdWFscyhbJ0EgJywgJy8qJywgJyBmb28nLCAnXG4nLCAnKmJhcicsICdcbicsICcqLyddLCB0b2tlbnMpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0eWxlX3NoZWV0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9zdHlsZV9zaGVldC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZlMTk3MC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0eWxlX3NoZWV0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCBiYXNlNjQKLWltcG9ydCBvcwotaW1wb3J0IHJlCi0KLWNsYXNzIEltYWdlKG9iamVjdCk6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCByZXNvdXJjZSk6Ci0gICAgc2VsZi5yZXNvdXJjZSA9IHJlc291cmNlCi0gICAgc2VsZi5hbGlhc2VzID0gW10KLQotICBAcHJvcGVydHkKLSAgZGVmIHJlbGF0aXZlX3BhdGgoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYucmVzb3VyY2UucmVsYXRpdmVfcGF0aAotCi0gIEBwcm9wZXJ0eQotICBkZWYgYWJzb2x1dGVfcGF0aChzZWxmKToKLSAgICByZXR1cm4gc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBjb250ZW50cyhzZWxmKToKLSAgICByZXR1cm4gc2VsZi5yZXNvdXJjZS5jb250ZW50cwotCi0KLWNsYXNzIFBhcnNlZFN0eWxlU2hlZXQob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGxvYWRlciwgY29udGFpbmluZ19kaXJuYW1lLCBjb250ZW50cyk6Ci0gICAgc2VsZi5sb2FkZXIgPSBsb2FkZXIKLSAgICBzZWxmLmNvbnRlbnRzID0gY29udGVudHMKLSAgICBzZWxmLl9pbWFnZXMgPSBOb25lCi0gICAgc2VsZi5fTG9hZChjb250YWluaW5nX2Rpcm5hbWUpCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiBpbWFnZXMoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYuX2ltYWdlcwotCi0gIGRlZiBBcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKHNlbGYsIGRlcGVuZGVudF9maWxlbmFtZXMpOgotICAgIGZvciBpIGluIHNlbGYuaW1hZ2VzOgotICAgICAgZGVwZW5kZW50X2ZpbGVuYW1lcy5hcHBlbmQoaS5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKQotCi0gIEBwcm9wZXJ0eQotICBkZWYgY29udGVudHNfd2l0aF9pbmxpbmVkX2ltYWdlcyhzZWxmKToKLSAgICBpbWFnZXNfYnlfdXJsID0ge30KLSAgICBmb3IgaSBpbiBzZWxmLmltYWdlczoKLSAgICAgIGZvciBhIGluIGkuYWxpYXNlczoKLSAgICAgICAgaW1hZ2VzX2J5X3VybFthXSA9IGkKLQotICAgIGRlZiBJbmxpbmVVcmwobSk6Ci0gICAgICB1cmwgPSBtLmdyb3VwKCd1cmwnKQotICAgICAgaW1hZ2UgPSBpbWFnZXNfYnlfdXJsW3VybF0KLQotICAgICAgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChpbWFnZS5hYnNvbHV0ZV9wYXRoKVsxXQotICAgICAgZGF0YSA9IGJhc2U2NC5zdGFuZGFyZF9iNjRlbmNvZGUoaW1hZ2UuY29udGVudHMpCi0KLSAgICAgIHJldHVybiAidXJsKGRhdGE6aW1hZ2UvJXM7YmFzZTY0LCVzKSIgJSAoZXh0WzE6XSwgZGF0YSkKLQotICAgICMgSSdtIGFzc3VtaW5nIHdlIG9ubHkgaGF2ZSB1cmwoKSdzIGFzc29jaWF0ZWQgd2l0aCBpbWFnZXMKLSAgICByZXR1cm4gcmUuc3ViKCd1cmxcKCg/UDxxdW90ZT4ifFwnfCkoP1A8dXJsPlteIlwnKCldKikoP1A9cXVvdGUpXCknLAotICAgICAgICAgICAgICAgICAgbGFtYmRhIG06IElubGluZVVybChtKSwKLSAgICAgICAgICAgICAgICAgIHNlbGYuY29udGVudHMpCi0KLQotICBkZWYgQXBwZW5kRGlyZWN0bHlEZXBlbmRlbnRGaWxlbmFtZXNUbyhzZWxmLCBkZXBlbmRlbnRfZmlsZW5hbWVzKToKLSAgICBmb3IgaSBpbiBzZWxmLmltYWdlczoKLSAgICAgIGRlcGVuZGVudF9maWxlbmFtZXMuYXBwZW5kKGkucmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkKLQotCi0gIGRlZiBfTG9hZChzZWxmLCBjb250YWluaW5nX2Rpcm5hbWUpOgotICAgIGlmIHNlbGYuY29udGVudHMuZmluZCgnQGltcG9ydCcpICE9IC0xOgotICAgICAgcmFpc2UgRXhjZXB0aW9uKCdAaW1wb3J0cyBhcmUgbm90IHN1cHBvcnRlZCcpCi0KLSAgICBtYXRjaGVzID0gcmUuZmluZGFsbCgKLSAgICAgICd1cmxcKCg/OlsifFwnXT8pKFteIlwnKCldKikoPzpbInxcJ10/KVwpJywKLSAgICAgIHNlbGYuY29udGVudHMpCi0KLSAgICBkZWYgcmVzb2x2ZV91cmwodXJsKToKLSAgICAgIGlmIG9zLnBhdGguaXNhYnModXJsKToKLSAgICAgICAgcmFpc2UgbW9kdWxlLkRlcHNFeGNlcHRpb24oJ1VSTCByZWZlcmVuY2VzIG11c3QgYmUgcmVsYXRpdmUnKQotICAgICAgIyBVUkxTIGFyZSByZWxhdGl2ZSB0byB0aGlzIG1vZHVsZSdzIGRpcmVjdG9yeQotICAgICAgYWJzX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGNvbnRhaW5pbmdfZGlybmFtZSwgdXJsKSkKLSAgICAgIGltYWdlID0gc2VsZi5sb2FkZXIuTG9hZEltYWdlKGFic19wYXRoKQotICAgICAgaW1hZ2UuYWxpYXNlcy5hcHBlbmQodXJsKQotICAgICAgcmV0dXJuIGltYWdlCi0KLSAgICBzZWxmLl9pbWFnZXMgPSBbcmVzb2x2ZV91cmwoeCkgZm9yIHggaW4gbWF0Y2hlc10KLQotCi1jbGFzcyBTdHlsZVNoZWV0KG9iamVjdCk6Ci0gICIiIlJlcHJlc2VudHMgYSBzdHlsZXNoZWV0IHJlc291cmNlIHJlZmVyZW5jZWQgYnkgYSBtb2R1bGUgdmlhIHRoZQotICBiYXNlLnJlcXVpcmVTdHlsZXNoZWV0KHh4eCkgZGlyZWN0aXZlLiIiIgotICBkZWYgX19pbml0X18oc2VsZiwgbG9hZGVyLCBuYW1lLCByZXNvdXJjZSk6Ci0gICAgc2VsZi5sb2FkZXIgPSBsb2FkZXIKLSAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAgc2VsZi5yZXNvdXJjZSA9IHJlc291cmNlCi0gICAgc2VsZi5fcGFyc2VkX3N0eWxlX3NoZWV0ID0gTm9uZQotCi0gIEBwcm9wZXJ0eQotICBkZWYgZmlsZW5hbWUoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYucmVzb3VyY2UuYWJzb2x1dGVfcGF0aAotCi0gIEBwcm9wZXJ0eQotICBkZWYgY29udGVudHMoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYucmVzb3VyY2UuY29udGVudHMKLQotICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgcmV0dXJuICJTdHlsZVNoZWV0KCVzKSIgJSBzZWxmLm5hbWUKLQotICBAcHJvcGVydHkKLSAgZGVmIGltYWdlcyhzZWxmKToKLSAgICBzZWxmLl9Jbml0UGFyc2VkU3R5bGVTaGVldElmTmVlZGVkKCkKLSAgICByZXR1cm4gc2VsZi5fcGFyc2VkX3N0eWxlX3NoZWV0LmltYWdlcwotCi0gIGRlZiBBcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKHNlbGYsIGRlcGVuZGVudF9maWxlbmFtZXMpOgotICAgIHNlbGYuX0luaXRQYXJzZWRTdHlsZVNoZWV0SWZOZWVkZWQoKQotCi0gICAgZGVwZW5kZW50X2ZpbGVuYW1lcy5hcHBlbmQoc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKQotICAgIHNlbGYuX3BhcnNlZF9zdHlsZV9zaGVldC5BcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKAotICAgICAgICBkZXBlbmRlbnRfZmlsZW5hbWVzKQotCi0gIEBwcm9wZXJ0eQotICBkZWYgY29udGVudHNfd2l0aF9pbmxpbmVkX2ltYWdlcyhzZWxmKToKLSAgICBzZWxmLl9Jbml0UGFyc2VkU3R5bGVTaGVldElmTmVlZGVkKCkKLSAgICByZXR1cm4gc2VsZi5fcGFyc2VkX3N0eWxlX3NoZWV0LmNvbnRlbnRzX3dpdGhfaW5saW5lZF9pbWFnZXMKLQotICBkZWYgbG9hZChzZWxmKToKLSAgICBzZWxmLl9Jbml0UGFyc2VkU3R5bGVTaGVldElmTmVlZGVkKCkKLQotICBkZWYgX0luaXRQYXJzZWRTdHlsZVNoZWV0SWZOZWVkZWQoc2VsZik6Ci0gICAgaWYgc2VsZi5fcGFyc2VkX3N0eWxlX3NoZWV0OgotICAgICAgcmV0dXJuCi0gICAgbW9kdWxlX2Rpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKQotICAgIHNlbGYuX3BhcnNlZF9zdHlsZV9zaGVldCA9IFBhcnNlZFN0eWxlU2hlZXQoCi0gICAgICAgIHNlbGYubG9hZGVyLCBtb2R1bGVfZGlybmFtZSwgc2VsZi5jb250ZW50cykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3R5bGVfc2hlZXRfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0eWxlX3NoZWV0X3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTFlYTlkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3R5bGVfc2hlZXRfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB0dmNtIGltcG9ydCBzdHlsZV9zaGVldAotZnJvbSB0dmNtIGltcG9ydCBwcm9qZWN0IGFzIHByb2plY3RfbW9kdWxlCi1mcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlX2xvYWRlcgotZnJvbSB0dmNtIGltcG9ydCBmYWtlX2ZzCi1mcm9tIHR2Y20gaW1wb3J0IG1vZHVsZQotCi1jbGFzcyBTdHlsZVNoZWV0VW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICBkZWYgdGVzdEltYWdlcyhzZWxmKToKLSAgICBmcyA9IGZha2VfZnMuRmFrZUZTKCkKLSAgICBmcy5BZGRGaWxlKCcvc3JjL2Zvby94LmNzcycsICIiIgotLnggLnkgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYmFyLmpwZWcpOwotfQotIiIiKQotICAgIGZzLkFkZEZpbGUoJy9zcmMvaW1hZ2VzL2Jhci5qcGVnJywgJ2hlbGxvIHdvcmxkJykKLSAgICB3aXRoIGZzOgotICAgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoWycvc3JjLyddKQotICAgICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCi0KLSAgICAgIGZvb194ID0gbG9hZGVyLkxvYWRTdHlsZVNoZWV0KCdmb28ueCcpCi0gICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4oZm9vX3guaW1hZ2VzKSkKLQotICAgICAgcjAgPSBmb29feC5pbWFnZXNbMF0KLSAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCcvc3JjL2ltYWdlcy9iYXIuanBlZycsIHIwLmFic29sdXRlX3BhdGgpCi0KLSAgICAgIGlubGluZWQgPSBmb29feC5jb250ZW50c193aXRoX2lubGluZWRfaW1hZ2VzCi0gICAgICBzZWxmLmFzc2VydEVxdWFscygiIiIKLS54IC55IHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwlcyk7Ci19Ci0iIiIgJSBiYXNlNjQuc3RhbmRhcmRfYjY0ZW5jb2RlKCdoZWxsbyB3b3JsZCcpLCBpbmxpbmVkKQotCi0KLQotICBkZWYgdGVzdFVSTFJlc29sdmVGYWlscyhzZWxmKToKLSAgICBmcyA9IGZha2VfZnMuRmFrZUZTKCkKLSAgICBmcy5BZGRGaWxlKCcvc3JjL2Zvby94LmNzcycsICIiIgotLnggLnkgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvbWlzc2luZy5qcGVnKTsKLX0KLSIiIikKLSAgICB3aXRoIGZzOgotICAgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoWycvc3JjLyddKQotICAgICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCi0KLSAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1vZHVsZS5EZXBzRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBsb2FkZXIuTG9hZFN0eWxlU2hlZXQoJ2Zvby54JykpCi0KLSAgZGVmIHRlc3RJbXBvcnRzQ2F1c2VGYWlsdXJlKHNlbGYpOgotICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQotICAgIGZzLkFkZEZpbGUoJy9zcmMvZm9vL3guY3NzJywgIiIiCi1AaW1wb3J0IHVybChhd2Vzb21lLmNzcyk7Ci0iIiIpCi0gICAgd2l0aCBmczoKLSAgICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsnL3NyYy8nXSkKLSAgICAgIGxvYWRlciA9IHJlc291cmNlX2xvYWRlci5SZXNvdXJjZUxvYWRlcihwcm9qZWN0KQotCi0gICAgICBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGE6IGxvYWRlci5Mb2FkU3R5bGVTaGVldCgnZm9vLngnKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vdGVtcG9yYXJ5X2Rldl9zZXJ2ZXIucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3RlbXBvcmFyeV9kZXZfc2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzYyYjhiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vdGVtcG9yYXJ5X2Rldl9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCBodHRwbGliCi1pbXBvcnQgb3MKLWltcG9ydCBqc29uCi1pbXBvcnQgcmUKLWltcG9ydCBzb2NrZXQKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCi1pbXBvcnQgdXJscGFyc2UKLWltcG9ydCB0aW1lCi0KLWZyb20gdHZjbSBpbXBvcnQgZGV2X3NlcnZlcgotCi1kZWYgR2V0VW5yZXNlcnZlZEF2YWlsYWJsZUxvY2FsUG9ydCgpOgotICAiIiJSZXR1cm5zIGFuIGF2YWlsYWJsZSBwb3J0IG9uIHRoZSBzeXN0ZW0uCi0KLSAgV0FSTklORzogVGhpcyBtZXRob2QgZG9lcyBub3QgcmVzZXJ2ZSB0aGUgcG9ydCBpdCByZXR1cm5zLCBzbyBpdCBtYXkgYmUgdXNlZAotICBieSBzb21ldGhpbmcgZWxzZSBiZWZvcmUgeW91IGdldCB0byB1c2UgaXQuIFRoaXMgY2FuIGxlYWQgdG8gZmxha2UuCi0gICIiIgotICB0bXAgPSBzb2NrZXQuc29ja2V0KCkKLSAgdG1wLmJpbmQoKCcnLCAwKSkKLSAgcG9ydCA9IHRtcC5nZXRzb2NrbmFtZSgpWzFdCi0gIHRtcC5jbG9zZSgpCi0KLSAgcmV0dXJuIHBvcnQKLQotZGVmIFdhaXRGb3IoY29uZGl0aW9uLCB0aW1lb3V0KToKLSAgIiIiV2FpdHMgZm9yIHVwIHRvIHx0aW1lb3V0fCBzZWNzIGZvciB0aGUgZnVuY3Rpb24gfGNvbmRpdGlvbnwgdG8gcmV0dXJuIFRydWUuCi0KLSAgUG9sbGluZyBmcmVxdWVuY3kgaXMgKGVsYXBzZWRfdGltZSAvIDEwKSwgd2l0aCBhIG1pbiBvZiAuMXMgYW5kIG1heCBvZiA1cy4KLQotICBSZXR1cm5zOgotICAgIFJlc3VsdCBvZiB8Y29uZGl0aW9ufCBmdW5jdGlvbiAoaWYgcHJlc2VudCkuCi0gICIiIgotICBtaW5fcG9sbF9pbnRlcnZhbCA9ICAgMC4xCi0gIG1heF9wb2xsX2ludGVydmFsID0gICA1Ci0gIG91dHB1dF9pbnRlcnZhbCAgID0gMzAwCi0KLSAgZGVmIEdldENvbmRpdGlvblN0cmluZygpOgotICAgIGlmIGNvbmRpdGlvbi5fX25hbWVfXyA9PSAnPGxhbWJkYT4nOgotICAgICAgdHJ5OgotICAgICAgICByZXR1cm4gaW5zcGVjdC5nZXRzb3VyY2UoY29uZGl0aW9uKS5zdHJpcCgpCi0gICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgcGFzcwotICAgIHJldHVybiBjb25kaXRpb24uX19uYW1lX18KLQotICBzdGFydF90aW1lID0gdGltZS50aW1lKCkKLSAgbGFzdF9vdXRwdXRfdGltZSA9IHN0YXJ0X3RpbWUKLSAgd2hpbGUgVHJ1ZToKLSAgICByZXMgPSBjb25kaXRpb24oKQotICAgIGlmIHJlczoKLSAgICAgIHJldHVybiByZXMKLSAgICBub3cgPSB0aW1lLnRpbWUoKQotICAgIGVsYXBzZWRfdGltZSA9IG5vdyAtIHN0YXJ0X3RpbWUKLSAgICBsYXN0X291dHB1dF9lbGFwc2VkX3RpbWUgPSBub3cgLSBsYXN0X291dHB1dF90aW1lCi0gICAgaWYgZWxhcHNlZF90aW1lID4gdGltZW91dDoKLSAgICAgIHJhaXNlIFRpbWVvdXRFeGNlcHRpb24oJ1RpbWVkIG91dCB3aGlsZSB3YWl0aW5nICVkcyBmb3IgJXMuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aW1lb3V0LCBHZXRDb25kaXRpb25TdHJpbmcoKSkpCi0gICAgaWYgbGFzdF9vdXRwdXRfZWxhcHNlZF90aW1lID4gb3V0cHV0X2ludGVydmFsOgotICAgICAgbG9nZ2luZy5pbmZvKCdDb250aW51aW5nIHRvIHdhaXQgJWRzIGZvciAlcy4gRWxhcHNlZDogJWRzLicsCi0gICAgICAgICAgICAgICAgICAgdGltZW91dCwgR2V0Q29uZGl0aW9uU3RyaW5nKCksIGVsYXBzZWRfdGltZSkKLSAgICAgIGxhc3Rfb3V0cHV0X3RpbWUgPSB0aW1lLnRpbWUoKQotICAgIHBvbGxfaW50ZXJ2YWwgPSBtaW4obWF4KGVsYXBzZWRfdGltZSAvIDEwLiwgbWluX3BvbGxfaW50ZXJ2YWwpLAotICAgICAgICAgICAgICAgICAgICAgICAgbWF4X3BvbGxfaW50ZXJ2YWwpCi0gICAgdGltZS5zbGVlcChwb2xsX2ludGVydmFsKQotCi1jbGFzcyBUZW1wb3JhcnlEZXZTZXJ2ZXIob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuX3BvcnQgPSBOb25lCi0gICAgc2VsZi5fc2VydmVyID0gTm9uZQotCi0gICAgY21kID0gW3N5cy5leGVjdXRhYmxlLCAnLW0nLCBfX25hbWVfX10KLSAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotICAgIGVudlsnUFlUSE9OUEFUSCddID0gb3MucGF0aC5hYnNwYXRoKAotICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQotCi0gICAgc2VsZi5fc2VydmVyID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIGN3ZD1vcy5nZXRjd2QoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zeXMuc3RkZXJyKQotCi0gICAgcG9ydF9yZSA9IHJlLmNvbXBpbGUoCi0gICAgICAgICdUZW1wb3JhcnlEZXZTZXJ2ZXIgc3RhcnRlZCBvbiBwb3J0ICg/UDxwb3J0PlxkKyknKQotICAgIHdoaWxlIHNlbGYuX3NlcnZlci5wb2xsKCkgPT0gTm9uZToKLSAgICAgIGxpbmUgPSBzZWxmLl9zZXJ2ZXIuc3Rkb3V0LnJlYWRsaW5lKCkKLSAgICAgIG0gPSBwb3J0X3JlLm1hdGNoKGxpbmUpCi0gICAgICBpZiBtOgotICAgICAgICBzZWxmLl9wb3J0ID0gaW50KG0uZ3JvdXAoJ3BvcnQnKSkKLSAgICAgICAgYnJlYWsKLSAgICBpZiBub3Qgc2VsZi5fcG9ydDoKLSAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGRuXCd0IHN0YXJ0JykKLQotICAgIGRlZiBJc1NlcnZlclVwKCk6Ci0gICAgICByZXR1cm4gbm90IHNvY2tldC5zb2NrZXQoKS5jb25uZWN0X2V4KCgnbG9jYWxob3N0Jywgc2VsZi5fcG9ydCkpCi0gICAgV2FpdEZvcihJc1NlcnZlclVwLCAxMCkKLQotICBAcHJvcGVydHkKLSAgZGVmIHBvcnQoc2VsZik6Ci0gICAgcmV0dXJuIHNlbGYuX3BvcnQKLQotICBkZWYgX19kZWxfXyhzZWxmKToKLSAgICBzZWxmLkNsb3NlKCkKLQotICBkZWYgQ2xvc2Uoc2VsZik6Ci0gICAgaWYgc2VsZi5fc2VydmVyOgotICAgICAgIyBUT0RPKHRvbnlnKTogU2hvdWxkIHRoaXMgYmxvY2sgdW50aWwgaXQgZ29lcyBhd2F5PwotICAgICAgaWYgc2VsZi5fc2VydmVyLnBvbGwoKSA9PSBOb25lOgotICAgICAgICBzZWxmLl9zZXJ2ZXIua2lsbCgpCi0gICAgICBzZWxmLl9zZXJ2ZXIgPSBOb25lCi0KLSAgQHByb3BlcnR5Ci0gIGRlZiB1cmwoc2VsZik6Ci0gICAgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OiVpLycgJSBzZWxmLl9wb3J0Ci0KLSAgZGVmIEdldChzZWxmLCBwYXRoLCBleHBlY3RlZF9yZXNwb25zZV9jb2RlPTIwMCk6Ci0gICAgY29ubiA9IGh0dHBsaWIuSFRUUENvbm5lY3Rpb24oJ2xvY2FsaG9zdCcsIHNlbGYucG9ydCwgVHJ1ZSkKLSAgICBjb25uLmNvbm5lY3QoKQotICAgIGNvbm4ucmVxdWVzdCgnR0VUJywgcGF0aCkKLSAgICByZXNwID0gY29ubi5nZXRyZXNwb25zZSgpCi0gICAgcmVzcF9zdHIgPSByZXNwLnJlYWQocmVzcC5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpCi0gICAgaWYgcmVzcC5zdGF0dXMgIT0gZXhwZWN0ZWRfcmVzcG9uc2VfY29kZToKLSAgICAgIHRyeToKLSAgICAgICAgcmVzcF9kYXRhID0ganNvbi5sb2FkcyhyZXNwX3N0cikKLSAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICByZXNwX2RhdGEgPSB7fQotICAgICAgaWYgJ2RldGFpbHMnIGluIHJlc3BfZGF0YToKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZShyZXNwX2RhdGFbJ2RldGFpbHMnXSkKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnXG4nKQotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIHN0YXR1cyAlaSwgZ290ICVpJywgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSwgcmVzcC5zdGF0dXMpCi0gICAgICBlbHNlOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIHN0YXR1cyAlaSwgZ290ICVpOiAlcycsIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUsIHJlc3Auc3RhdHVzLCByZXNwX3N0cikKLSAgICByZXR1cm4gcmVzcF9zdHIKLQotICBkZWYgQ2FsbE9uU2VydmVyKHNlbGYsIG1ldGhvZF9uYW1lLCAqYXJncyk6Ci0gICAgYXJnX3N0cmluZyA9ICcsJy5qb2luKFtyZXByKGFyZykgZm9yIGFyZyBpbiBhcmdzXSkKLSAgICBkYXRhID0gJ3NlbGYuJXMoJXMpJyAlIChtZXRob2RfbmFtZSwgYXJnX3N0cmluZykKLQotICAgIGNvbm4gPSBodHRwbGliLkhUVFBDb25uZWN0aW9uKCdsb2NhbGhvc3QnLCBzZWxmLnBvcnQsIFRydWUpCi0gICAgY29ubi5jb25uZWN0KCkKLSAgICBjb25uLnJlcXVlc3QoJ1BPU1QnLCAnL3Rlc3QvY3VzdG9taXplJywgZGF0YSkKLSAgICByZXNwID0gY29ubi5nZXRyZXNwb25zZSgpCi0gICAgcmVzcF9zdHIgPSByZXNwLnJlYWQocmVzcC5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpCi0gICAgaWYgcmVzcC5zdGF0dXMgIT0gMjAwOgotICAgICAgcmVzcF9kYXRhID0ganNvbi5sb2FkcyhyZXNwX3N0cikKLSAgICAgIHN5cy5zdGRlcnIud3JpdGUocmVzcF9kYXRhWydkZXRhaWxzJ10pCi0gICAgICBzeXMuc3RkZXJyLndyaXRlKCdcbicpCi0gICAgICBhc3NlcnQgRmFsc2UKLSAgICByZXR1cm4gcmVzcF9zdHIKLQotCi1kZWYgX2RvX1BPU1RfY3VzdG9taXplKHJlcXVlc3QpOgotICBpZiAnQ29udGVudC1MZW5ndGgnIGluIHJlcXVlc3QuaGVhZGVyczoKLSAgICBjbCA9IGludChyZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10pCi0gICAgdGV4dCA9IHJlcXVlc3QucmZpbGUucmVhZChjbCkuZW5jb2RlKCd1dGY4JykKLQotICAgIGV2YWwodGV4dCwge30sIHsnc2VsZic6IHJlcXVlc3Quc2VydmVyfSkKLSAgICBkYXRhID0gJ29rJwotICAgIHJlcXVlc3Quc2VuZF9yZXNwb25zZSgyMDApCi0gICAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgJ3RleHQvcGxhaW4nKQotICAgIHJlcXVlc3Quc2VuZF9oZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgbGVuKGRhdGEpKQotICAgIHJlcXVlc3QuZW5kX2hlYWRlcnMoKQotICAgIHJlcXVlc3Qud2ZpbGUud3JpdGUoZGF0YSkKLQotZGVmIFN1YnByb2Nlc3NNYWluKGFyZ3MpOgotICBwb3J0PUdldFVucmVzZXJ2ZWRBdmFpbGFibGVMb2NhbFBvcnQoKQotICBzZXJ2ZXIgPSBkZXZfc2VydmVyLkRldlNlcnZlcihwb3J0PXBvcnQsIHF1aWV0PVRydWUpCi0KLSAgc2VydmVyLkFkZFBhdGhIYW5kbGVyKCcvdGVzdC9jdXN0b21pemUnLCBfZG9fUE9TVF9jdXN0b21pemUsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19nZXQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19wb3N0PVRydWUpCi0gIHN5cy5zdGRvdXQud3JpdGUoJ1RlbXBvcmFyeURldlNlcnZlciBzdGFydGVkIG9uIHBvcnQgJWlcbicgJSBwb3J0KQotICBzeXMuc3Rkb3V0LmZsdXNoKCkgIyBUaGlzIGlzIGtleSEgSXQga2lja3MgdGhlIHBvcnQgZGV0ZWN0b3IgYWJvdmUuCi0gIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgc3lzLmV4aXQoU3VicHJvY2Vzc01haW4oc3lzLmFyZ3ZbMTpdKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vdGVzdF9ydW5uZXIucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Rlc3RfcnVubmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWUzMzg0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3R2Y20vdGVzdF9ydW5uZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgaW5zcGVjdAotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWltcG9ydCBvcHRwYXJzZQotCi1fX2FsbF9fID0gW10KLQotZGVmIEZpbHRlclN1aXRlKHN1aXRlLCBwcmVkaWNhdGUpOgotICBuZXdfc3VpdGUgPSBzdWl0ZS5fX2NsYXNzX18oKQotCi0gIGZvciB4IGluIHN1aXRlOgotICAgIGlmIGlzaW5zdGFuY2UoeCwgdW5pdHRlc3QuVGVzdFN1aXRlKToKLSAgICAgIHN1YnN1aXRlID0gRmlsdGVyU3VpdGUoeCwgcHJlZGljYXRlKQotICAgICAgaWYgc3Vic3VpdGUuY291bnRUZXN0Q2FzZXMoKSA9PSAwOgotICAgICAgICBjb250aW51ZQotCi0gICAgICBuZXdfc3VpdGUuYWRkVGVzdChzdWJzdWl0ZSkKLSAgICAgIGNvbnRpbnVlCi0KLSAgICBhc3NlcnQgaXNpbnN0YW5jZSh4LCB1bml0dGVzdC5UZXN0Q2FzZSkKLSAgICBpZiBwcmVkaWNhdGUoeCk6Ci0gICAgICBuZXdfc3VpdGUuYWRkVGVzdCh4KQotCi0gIHJldHVybiBuZXdfc3VpdGUKLQotY2xhc3MgX1Rlc3RMb2FkZXIodW5pdHRlc3QuVGVzdExvYWRlcik6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6Ci0gICAgc3VwZXIoX1Rlc3RMb2FkZXIsIHNlbGYpLl9faW5pdF9fKCphcmdzKQotICAgIHNlbGYuZGlzY292ZXJfY2FsbHMgPSBbXQotCi0gIGRlZiBsb2FkVGVzdHNGcm9tTW9kdWxlKHNlbGYsIG1vZHVsZSwgdXNlX2xvYWRfdGVzdHM9VHJ1ZSk6Ci0gICAgaWYgbW9kdWxlLl9fZmlsZV9fICE9IF9fZmlsZV9fOgotICAgICAgcmV0dXJuIHN1cGVyKF9UZXN0TG9hZGVyLCBzZWxmKS5sb2FkVGVzdHNGcm9tTW9kdWxlKG1vZHVsZSwgdXNlX2xvYWRfdGVzdHMpCi0KLSAgICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZSgpCi0gICAgZm9yIGRpc2NvdmVyX2FyZ3MgaW4gc2VsZi5kaXNjb3Zlcl9jYWxsczoKLSAgICAgIHN1YnN1aXRlID0gc2VsZi5kaXNjb3ZlcigqZGlzY292ZXJfYXJncykKLSAgICAgIHN1aXRlLmFkZFRlc3Qoc3Vic3VpdGUpCi0gICAgcmV0dXJuIHN1aXRlCi0KLWNsYXNzIF9SdW5uZXJJbXBsKHVuaXR0ZXN0LlRleHRUZXN0UnVubmVyKToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbHRlcnMpOgotICAgIHN1cGVyKF9SdW5uZXJJbXBsLCBzZWxmKS5fX2luaXRfXyh2ZXJib3NpdHk9MikKLSAgICBzZWxmLmZpbHRlcnMgPSBmaWx0ZXJzCi0KLSAgZGVmIFNob3VsZFRlc3RSdW4oc2VsZiwgdGVzdCk6Ci0gICAgaWYgbGVuKHNlbGYuZmlsdGVycykgPT0gMDoKLSAgICAgIHJldHVybiBUcnVlCi0gICAgZm91bmQgPSBGYWxzZQotICAgIGZvciBuYW1lIGluIHNlbGYuZmlsdGVyczoKLSAgICAgIGlmIG5hbWUgaW4gdGVzdC5pZCgpOgotICAgICAgICBmb3VuZCA9IFRydWUKLSAgICByZXR1cm4gZm91bmQKLQotICBkZWYgcnVuKHNlbGYsIHN1aXRlKToKLSAgICBmaWx0ZXJlZF90ZXN0ID0gRmlsdGVyU3VpdGUoc3VpdGUsIHNlbGYuU2hvdWxkVGVzdFJ1bikKLSAgICByZXR1cm4gc3VwZXIoX1J1bm5lckltcGwsIHNlbGYpLnJ1bihmaWx0ZXJlZF90ZXN0KQotCi0KLWNsYXNzIFRlc3RSdW5uZXIob2JqZWN0KToKLSAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgIHNlbGYuX2xvYWRlciA9IF9UZXN0TG9hZGVyKCkKLQotICBkZWYgQWRkTW9kdWxlKHNlbGYsIG1vZHVsZSwgcGF0dGVybj0iKnVuaXR0ZXN0LnB5Iik6Ci0gICAgYXNzZXJ0IGluc3BlY3QuaXNtb2R1bGUobW9kdWxlKQotICAgIG1vZHVsZV9maWxlX2Jhc2VuYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKG1vZHVsZS5fX2ZpbGVfXykpWzBdCi0gICAgaWYgbW9kdWxlX2ZpbGVfYmFzZW5hbWUgIT0gJ19faW5pdF9fJzoKLSAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ01vZHVsZXMgdGhhdCBhcmUgb25lIGZpbGUgYXJlIG5vdCBzdXBwb3J0ZWQsIG9ubHkgZGlyZWN0b3JpZXMuJykKLQotICAgIGZpbGVfYmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguZGlybmFtZShtb2R1bGUuX19maWxlX18pKQotICAgIG1vZHVsZV9maXJzdF9kaXIgPSBtb2R1bGUuX19uYW1lX18uc3BsaXQoJy4nKVswXQotICAgIGFzc2VydCBmaWxlX2Jhc2VuYW1lID09IG1vZHVsZV9maXJzdF9kaXIsICdNb2R1bGUgbXVzdCBiZSB0b3BsZXZlbCcKLQotICAgIHN0YXJ0X2RpciA9IG9zLnBhdGguZGlybmFtZShtb2R1bGUuX19maWxlX18pCi0gICAgdG9wX2RpciA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShtb2R1bGUuX19maWxlX18pLCAnLi4nKSkKLSAgICBzZWxmLl9sb2FkZXIuZGlzY292ZXJfY2FsbHMuYXBwZW5kKChzdGFydF9kaXIsIHBhdHRlcm4sIHRvcF9kaXIpKQotCi0gIGRlZiBNYWluKHNlbGYsIGFyZ3Y9Tm9uZSk6Ci0gICAgaWYgYXJndiA9PSBOb25lOgotICAgICAgYXJndiA9IHN5cy5hcmd2Ci0KLSAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmd2WzE6XSkKLQotICAgIHJ1bm5lciA9IF9SdW5uZXJJbXBsKGZpbHRlcnM9YXJncykKLSAgICByZXR1cm4gdW5pdHRlc3QubWFpbihtb2R1bGU9X19uYW1lX18sIGFyZ3Y9W3N5cy5hcmd2WzBdXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0TG9hZGVyPXNlbGYuX2xvYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyPXJ1bm5lcikKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS92OC9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdjgvUkVBRE1FLmNocm9taXVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDQ5MzFjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS92OC9SRUFETUUuY2hyb21pdW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1OYW1lOiBDaHJvbWUgZDggZm9yIGV4ZWN1dGluZyBqYXZhc2NyaXB0Ci1TaG9ydCBOYW1lOiBkOAotVVJMOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS92OC8KLVZlcnNpb246IDQuMy42MQotTGljZW5zZTogQlNECi1MaWNlbnNlIEZpbGU6IExJQ0VOU0UsIExJQ0VOU0UudjgsIExJQ0VOU0Uuc3Ryb25ndGFsaywgTElDRU5TRS52YWxncmluZAotU2VjdXJpdHkgQ3JpdGljYWw6IG5vCi1EZXNjcmlwdGlvbjogZDggYmluYXJpZXMgaXMgdXNlZCBmb3IgZXhlY3V0aW5nIHRyYWNlLXZpZXdlcidzIHRyYWNlIGFuYWx5emluZwotY29kZS4KLUxvY2FsIG1vZGlmaWNhdGlvbnM6IFdlIGlnbm9yZSB0aGUgc291cmNlIGNvZGUgJiBvbmx5IGtlZXAgdGhlIGQ4IGJpbmFyaWVzLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvQVVUSE9SUyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL0FVVEhPUlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU2NGU2NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL0FVVEhPUlMKQEAgLTAsMCArMSwyOCBAQAord2ViYXBwMiBpcyBtYWludGFpbmVkIGJ5IFJvZHJpZ28gTW9yYWVzIDxyb2RyaWdvLm1vcmFlc0BnbWFpbC5jb20+LgorCitDb250cmlidXRvcnM6CisKKy0gWWVzdWRlZXAgTWFuZ2FsYXBpbGx5IDx5ZXN1ZGVlcEBnbWFpbC5jb20+CistIEt5bGUgRmlubGV5IDxreWxlZmlubGV5QGdtYWlsLmNvbT4KKword2ViYXBwMiBpbmNsdWRlcyBjb2RlIG9yIGlkZWFzIHBvcnRlZCBvciBhZGFwdGVkIGZyb20gdGhlIGZvbGxvd2luZyBwcm9qZWN0czoKKworLSBgR29vZ2xlIEFwcCBFbmdpbmUgU0RLIDxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS8+YF86CisgIC0gQ29weXJpZ2h0IChjKSAyMDA4IEdvb2dsZSBJbmMuCisgIC0gQXBhY2hlIDIuMCBMaWNlbnNlLgorCistIGBXZWJPYiA8aHR0cDovL3B5dGhvbnBhc3RlLm9yZy93ZWJvYi8+YF86CisgIC0gQ29weXJpZ2h0IChjKSAyMDA3IElhbiBCaWNraW5nIGFuZCBDb250cmlidXRvcnMuCisgIC0gTUlUIExpY2Vuc2UuCisKKy0gYFdlcmt6ZXVnIDxodHRwOi8vd2Vya3pldWcucG9jb28ub3JnLz5gXzoKKyAgLSBDb3B5cmlnaHQgKGMpIDIwMTEgV2Vya3pldWcgVGVhbS4KKyAgLSBCU0QgTGljZW5zZS4KKworLSBgVG9ybmFkbyA8aHR0cDovL3d3dy50b3JuYWRvd2ViLm9yZy8+YF86CisgIC0gQ29weXJpZ2h0IChjKSAyMDA5IEZhY2Vib29rLgorICAtIEFwYWNoZSAyLjAgTGljZW5zZS4KKworLSBgRmxhc2sgPGh0dHA6Ly9mbGFzay5wb2Nvby5vcmcvPmBfOgorICAtIENvcHlyaWdodCAoYykgMjAxMCBBcm1pbiBSb25hY2hlciBhbmQgQ29udHJpYnV0b3JzLgorICAtIEJTRCBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvQ0hBTkdFUyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL0NIQU5HRVMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGIwM2M5ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL0NIQU5HRVMKQEAgLTAsMCArMSw2MzEgQEAKK1ZlcnNpb24gMi41LjEgLSBGZWJydWFyeSAwNywgMjAxMgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistIEJ1ZyBmaXggcmVsZWFzZSByZWxhdGVkIHRvIHJlcXVlc3QgY2hhcnNldCBpbiBvbGQgdmVyc2lvbnMgb2YKKwlXZWJPYi4KKworVmVyc2lvbiAyLjUgLSBGZWJydWFyeSAwMSwgMjAxMgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitWZXJzaW9uIDIuNCAtIEphbnVhcnkgMjMsIDIwMTIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSBNYWludGVuYW5jZSByZWxlYXNlLiBGaXhlZCBvdXRzdGFuZGluZyBidWdzIHJlbGF0ZWQgdG8gQXBwIEVuZ2luZS4KKy0gUmVtb3ZlZCB3ZWJhcHAyX2V4dHJhcy9wcm90b3JwYywgYnJva2VuIHNpbmNlIHdlYmFwcDIgd2FzIGFkZGVkCisJdG8gQXBwIEVuZ2luZS4KKworCitWZXJzaW9uIDIuMyAtIEF1Z3VzdCAyNCwgMjAxMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0gd2ViYXBwMi5SZXNwb25zZS5vdXQgY3JlYXRlcyBhIHJlZmVyZW5jZSBsb29wIHRoYXQgaW1wZWRlcyBnYXJiYWdlCisJY29sbGVjdGlvbi4gQ2hhbmdpbmcgaXQgdG8gYSBwcm9wZXJ0eSBmaXhlZCB0aGlzIChJc3N1ZSAjMTUpLgorLSB3ZWJhcHAyX2V4dHJhcy5pMThuOgorCS0gV2hlbiBpbiBkZWJ1ZyBtb2RlLCB0cmFuc2xhdGlvbnMgYXJlIG5vdCBjYWNoZWQsIHNvIGNvbXBpbGluZyBuZXcKKwkJdHJhbnNsYXRpb25zIG1ha2UgdGhlbSByZWFkaWx5IGF2YWlsYWJsZSAoSXNzdWUgIzEzKS4KKy0gd2ViYXBwMl9leHRyYXMuYXV0aDoKKwktIEFUVEVOVElPTjogYXV0aF9pZCBpcyBubyBsb25nZXIgY29udmVydGVkIHRvIGxvd2VyIGNhc2UgdG8gcmV0cmlldmUKKwkJYSBrZXkgb3Igc2F2ZSBhIG5ldyB1c2VyIGluIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5hdXRoLm1vZGVscy5Vc2VyLgorCQlUaGlzIGlzIGEgbW9yZSBnZW5lcmFsIGFwcHJvYWNoLCBhcyBub3QgYWxsIHN5c3RlbXMgdXNlIGNhc2UtaW5zZW5zaXRpdmUKKwkJdXNlciBpZHMuIElmIHlvdSB3YW50IGNhc2UtaW5zZW5zaXRpdmUgYXV0aCBpZHMsIGNvbnZlcnQgdGhlbSB0byBsb3dlcgorCQljYXNlIGJlZm9yZSBwYXNzaW5nIGF1dGggaWRzIHRvIHRoZSBhdXRoIG1vZHVsZSAoSXNzdWUgIzE0KS4KKwktIElmIHVzZXIgZGF0YSBpcyBtaXNzaW5nIGF0dHJpYnV0ZXMsIGRvbid0IHJhaXNlIEFzc2VydGlvbkVycm9yLgorCQlTaW1wbHkgZG9uJ3Qgc2F2ZSBvciByZXR1cm4gYSB2YWxpZCBzZXNzaW9uLCBpbnN0ZWFkLgorCS0gY2FsbCB1c2VyX21vZGVsLmdldF9pZCgpIGluc3RlYWQgb2YgdGhlIG5kYi1zcGVjaWZpYyB1c2VyLmtleS5pZCgpLgorCS0gcmVtb3ZlZCBzZXRfcGFzc3dvcmRfdmFsaWRhdG9yKCkgYW5kIHNldF90b2tlbl92YWxpZGF0b3IoKS4KKwkJVGhleSBhZGQgY29tcGxleGl0eSB0byB0aGUgQVBJIHdpdGhvdXQgYSB1c2UgY2FzZSB0byBqdXN0aWZ5LgorCQlFeHRlbmQgQXV0aFN0b3JlIHRvIGFjaGlldmUgdGhlIHNhbWUgdGhpbmcuCisKKworVmVyc2lvbiAyLjIuMyAtIEF1Z3VzdCA2LCAyMDExCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0gVmVyc2lvbiAyLjIuMiBtaXNzZWQgdGhlIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZSBwYWNrYWdlLgorCistIGdldF9hcHAoKSBhbmQgZ2V0X3JlcXVlc3QoKSBub3cgdGVzdCB0aGF0IGFwcCBhbmQgcmVxdWVzdCBhcmUgc2V0LCB0byBhdm9pZAorCWhhcmQgdG8gZGVidWcgc3RhY2sgdHJhY2VzIHdoZW4gdGhleSBhcmUgbm90IGFuZCB0aGUgbG9jYWwgcHJveHkgaXMgdXNlZC4KKworCitWZXJzaW9uIDIuMi4yIC0gQXVndXN0IDUsIDIwMTEgKG1vcmUgMidzIHRoYW4gZXZlciEpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistIEEgZGVmYXVsdCBjaGFyc2V0IGlzIGFsd2F5cyBzZXQgaW4gdGhlIFJlcXVlc3Qgb2JqZWN0OiBpZiBpdCBpcyBub3QgZGVmaW5lZAorCWluIHRoZSBjb25zdHJ1Y3RvciwgZW52aXJvblsnQ09OVEVOVF9UWVBFJ10gaXMgY2hlY2tlZDsgYW5kIGlmIGl0IGlzIHN0aWxsCisJbm90IGRlZmluZWQgJ3V0Zi04JyBpcyB1c2VkLgorCistIEFkZGVkIHRva2VuX21vZGVsIGFzIGFuIGF0dHJpYnV0ZSBvZiB0aGUgVXNlciBtb2RlbDsgaXQgaXMgdXNlZCBpbnN0ZWFkIG9mCisJdGhlIGhhcmRjb2RlZCBjbGFzcy4KKworCitWZXJzaW9uIDIuMi4xIC0gQXVndXN0IDFzdCwgMjAxMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0gRml4ZWQgYSBidWcgaW4gV1NHSUFwcGxpY2F0aW9uLnJ1bigpIHdoZW4gcnVubmluZyBvdXRzaWRlIG9mIEFwcCBFbmdpbmU6CisJQ0dJSGFuZGxlcigpLnJ1bihhcHApIC0+IENHSUhhbmRsZXIoKS5ydW4oc2VsZikuIChpc3N1ZSA5KQorCisKK1ZlcnNpb24gMi4yIC0gSnVseSAzMCwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09CistIFJldmlzZWQgd2ViYXBwMl9leHRyYXMuYXV0aCBhbmQgc2ltcGxpZmllZCBVc2VyIG1vZGVsLCBieSBLeWxlIEZpbmxleS4KKwlUaGFua3MhCisKKworVmVyc2lvbiAyLjEgLSBKdWx5IDI5LCAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gQWRkZWQgd2ViYXBwMl9leHRyYXMuYXV0aDogaGlnaC1sZXZlbCB1dGlsaXRpZXMgZm9yIGF1dGhlbnRpY2F0aW9uIGFuZAorCWF1dGhvcml6YXRpb24uCisKKy0gQWRkZWQgd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLmF1dGgubW9kZWxzOiBkZWZhdWx0IG1vZGVsIGltcGxlbWVudGF0aW9ucworCWZvciB3ZWJhcHAyX2V4dHJhcy5hdXRoIChjYW4gYmUgb3ZlcnJpZGRlbikuCisKKy0gQWRkZWQgd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLm5kYi51bmlxdWVfbW9kZWw6IGEgbW9kZWwgdG8gc3RvcmUgdW5pcXVlCisJdmFsdWVzLiBUaGlzIHdhcyBhZGRlZCBtYWlubHkgc28gdGhhdCB0aGUgZGVmYXVsdCB1c2VyIG1vZGVsIGNhbiBoYXZlCisJbXVsdGlwbGUgdW5pcXVlIHByb3BlcnRpZXMuCisKKy0gaW1wb3J0X3N0cmluZygpIG5vdyBkaXNwbGF5cyB1c2VmdWwgZGVidWcgaW5mb3JtYXRpb24gd2hlbiBpdCBmYWlscy4KKworLSBUbyBtYWtlIHRoaW5ncyBjbGVhcmx5IHNlcGFyYXRlZCBzcGVjaWFsbHkgZm9yIHRob3NlIHVzaW5nIHdlYmFwcDIKKwlvdXRzaWRlIG9mIEFwcCBFbmdpbmUsIGZyb20gbm93IG9uIGFsbCBBcHAgRW5naW5lLXNwZWNpZmljIG1vZHVsZXMgd2lsbAorCWJlIHBsYWNlZCBpbiB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuIEFsc28gdGhyZWUgbW9kdWxlcyB3ZXJlIG1vdmVkIHRvCisJdGhlIG5ldyBwYWNrYWdlOgorCisJLSB3ZWJhcHAyX2V4dHJhcy5zZXNzaW9uc19tZW1jYWNoZQorCS0gd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnNfbmRiCisJLSB3ZWJhcHAyX2V4dHJhcy51c2VycworCisJVGhlIG9yaWdpbmFsIG1vZHVsZXMgd2VyZSBub3QgcmVtb3ZlZCwgdGhvdWdoOiB0aGV5IHdpbGwgYmUga2VwdCBpbiB0aGUgc2FtZQorCXBsYWNlIGZvciBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLCBqdXN0IGltcG9ydGluZyB0aGVpciBzdHVmZiBmcm9tIHRoZSBuZXcKKwlsb2NhdGlvbnMuCisKKy0gQ29uZmlnLmxvYWRfY29uZmlnKCkgbm93IG1ha2VzIGEgY29weSBvZiB0aGUgY29uZmlndXJhdGlvbiB3aGVuIHVzZXJfdmFsdWVzCisJYXJlIHBhc3NlZC4gVGhhdCBrZXl3b3JkIGlzIG1lYW50IHRvIG92ZXJyaWRlIGFwcCBjb25maWd1cmF0aW9uLCBzbyB0aGUKKwlwcmV2aW91cyBiZWhhdmlvciB3YXMgYWN0dWFsbHkgd3JvbmcuIFRoaXMgaXMgYSBzaWRlIGZlYXR1cmUgbm90IHVzZWQgaW5zaWRlCisJd2ViYXBwMiBvciBldmVuIHdlbGwgZG9jdW1lbnRlZCBzbyB0aGUgY2hhbmdlIHNob3VsZCBub3QgYWZmZWN0IGV4aXN0aW5nCisJYXBwcy4KKworCitWZXJzaW9uIDIuMC4yIC0gSnVseSAxOCwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gY2FjaGVkX3Byb3BlcnR5IG5vdyB1c2VzIHRocmVhZGluZy5STG9jayBmb3IgdGhyZWFkLXNhZmV0eS4KKworCitWZXJzaW9uIDIuMC4xIC0gSnVseSAxNywgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gTGl0dGxlIGZpeDogdXNlIGdvb2dsZS5hcHBlbmdpbmUuZXh0LndlYmFwcC51dGlsIGlmIGF2YWlsYWJsZSwgbGlrZSBiZWZvcmUuCisKKworVmVyc2lvbiAyLjAgLSBKdWx5IDE3LCAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gQWRkZWQgc3VwcG9ydCBmb3IgdGhlIChub3QgeWV0IHJlbGVhc2VkKSBBcHAgRW5naW5lIFB5dGhvbiAyLjcgU0RLLgorCistIERlcHJlY2F0ZWQgd2ViYXBwMl9leHRyYXMubG9jYWxfYXBwLiBXU0dJQXBwbGljYXRpb24gaXMgbm93IHRocmVhZC1zYWZlCisJYnkgZGVmYXVsdCB3aGVuIHdlYmFwcDJfZXh0cmFzLmxvY2FsIGlzIGF2YWlsYWJsZS4KKwl3ZWJhcHAyX2V4dHJhcy5sb2NhbF9hcHAuV1NHSUFwcGxpY2F0aW9uIGNhbiBzdGlsbCBiZSBpbXBvcnRlZCwgYnV0IGl0IGlzCisJanVzdCBhbiBhbGlhcyB0byB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbiAoYW5kIGEgZGVwcmVjYXRpb24gd2FybmluZyBpcworCWVtaXR0ZWQgd2hlbiBpdCBpcyBpbXBvcnRlZCkuCisKKy0gTGlrZSBEb21haW5Sb3V0ZSwgUGF0aFByZWZpeFJvdXRlIG5vdyBvbmx5IHRlc3RzIHRoZSBuZXN0ZWQgcm91dGVzIGlmIHRoZQorCXByZWZpeCBtYXRjaGVzLiBTbyBub3cgaXQgaXMgbm90IG9ubHkgY29udmVuaWVudCBidXQgbWF0Y2hlcyBzbWFydGx5IGFuZAorCWZhc3Rlci4gOykKKworLSBBZGRlZCB3ZWJhcHAyX2V4dHJhcy5zZWN1cml0eSwgd2l0aCBzZWN1cml0eSByZWxhdGVkIGhlbHBlcnMgc3VjaCBhcyBzZWN1cmUKKwlwYXNzd29yZCBoYXNoaW5nIHRvb2xzLgorCistIHdlYmFwcDJfZXh0cmFzLnNlc3Npb25zOgorCS0gTm93IHVzZXMgd2ViYXBwMl9leHRyYXMuc2VjdXJpdHkuY3JlYXRlX3Rva2VuKCkgdG8gZ2VuZXJhdGUgc2Vzc2lvbiBJRHMKKwkJaW5zdGVhZCBvZiB1dWlkLgorCS0gQWRkZWQgJ2JhY2tlbmRzJyBjb25maWd1cmF0aW9uOiBnZXRfc2Vzc2lvbigpIGNhbiBub3cgYmUgY2FsbGVkIHBhc3NpbmcKKwkJYSBtb3JlIGNvbnZlbmllbnQgJ2JhY2tlbmQnIGtleS4gRGVmYXVsdCBvbmVzIGFyZSAnc2VjdXJlY29va2llJywKKwkJJ2RhdGFzdG9yZScgYW5kICdtZW1jYWNoZScuCisKKy0gZ2V0X2J1aWxkX3JvdXRlcygpIG5vdyB5aWVsZHMgKG5hbWUsIHJvdXRlKSBpbnN0ZWFkIG9mIHNpbXBseSByb3V0ZS4gVGhpcworCXdpbGwgYWxsb3cgcm91dGVzIHdpdGggbmVzdGVkIHJvdXRlcyB0byBhY3QgYXMgYSBwcm94eSB0byBidWlsZCBVUklzLgorCistIHdlYmFwcDIudXJsdW5zcGxpdCgpIHdhcyByZW1vdmVkIGZyb20gdGhlIHB1YmxpYyBBUEkuCisKKy0gVmFyaWFibGVzIG5hbWVzIGluIHJvdXRlcyBtdXN0IG5vdyBsb29rIGxpa2UgcHl0aG9uIGlkZW50aWZpZXJzIC0KKwl0aGlzIG1lYW5zIHRoYXQgdGhleSBjYW4gbm8gbG9uZ2VyIHN0YXJ0IHdpdGggYSBudW1iZXIsIGxpa2UgYmVmb3JlLgorCistIFJlbW92ZWQgc3VwcG9ydCBmb3IgX2FuY2hvciBpbiB1cmlfZm9yKCkgLS0gdGhlIGRvY3VtZW50ZWQga2V5d29yZCBpcworCV9mcmFnbWVudC4KKworLSBSZW1vdmVkIHN1cHBvcnQgZm9yIGhhbmRsZXIgZnVuY3Rpb25zIHJlY2VpdmluZyAocmVxdWVzdCwgcmVzcG9uc2UpLiBUaGUKKwljb3JyZWN0IGFyZ3VtZW50cyBmb3IgZnVuY3Rpb24gaGFuZGxlcnMgYXJlIChyZXF1ZXN0LCAqYXJncywgKiprd2FyZ3MpLgorCistIHdlYmFwcDJfZXh0cmFzLmpzb246CisJLSBGaXhlZCBhbiBpc3N1ZSB3aXRoIGltcG9ydGluZyBqc29uIG9uIG5vbi1HQUUgZW52aXJvbm1lbnRzIChtaXNzaW5nCisJCWFic29sdXRlIGltcG9ydCkuCisJLSBOb3cgaW1wb3J0cyBzaW1wbGVqc29uIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNpbmcgdGhlIG9uZSBmcm9tIERqYW5nbywKKwkJc2luY2UgaXQgaXMgbm93IGluY2x1ZGVkIGluIHRoZSBBcHAgRW5naW5lIFNESyAoc2luY2UgdmVyc2lvbiAxLjQuMikuCisKKy0gQWRkZWQgV1NHSUFwcGxpY2F0aW9uLmNsZWFyX2dsb2JhbHMoKS4gSW5zdGVhZCBvZgorCWFwcC5zZXRfZ2xvYmFscyhhcHA9Tm9uZSwgcmVxdWVzdD1Ob25lKSwgdXNlIGFwcC5jbGVhcl9nbG9iYWxzKCkuCisKKworVmVyc2lvbiAxLjguMSAtIEp1bmUgMjksIDIwMTEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIEltcGxlbWVudGVkIGFuIGFkYXB0ZXIgbWVjaGFuaXNtIHRvIGRpc3BhdGNoIGRpZmZlcmVudCBraW5kIG9mIGhhbmRsZXJzOgorCXdlYmFwcC5SZXF1ZXN0SGFuZGxlciwgd2ViYXBwMi5SZXF1ZXN0SGFuZGxlciBhbmQgInZpZXcgZnVuY3Rpb25zIi4KKwlJbnN0ZWFkIG9mIG1vbmtleXBhdGNoaW5nIGhhbmRsZXJzIChhZGRpbmcgYSAnZmFjdG9yeScgYXR0cmlidXRlKSwKKwloYW5kbGVycyBhcmUgd3JhcHBlZCBieSBhZGFwdGVycyB0aGF0IGRvIHRoZSBhcHByb3ByaWF0ZSBkaXNwYXRjaC4KKwlIb3cgaGFuZGxlcnMgYXJlIGFkYXB0ZWQgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgdGhlIGNvbnZlbmllbmNlIG1ldGhvZAorCWBgc2V0X2FkYXB0ZXIoKWBgIGZyb20gdGhlIFJvdXRlciBjbGFzcywgYnV0IHRoZSBjb21tb24gY2FzZXMgYXJlIGNvdmVyZWQuCisKKy0gRnVuY3Rpb24gdmlld3Mgbm93IGNvbnZlbmllbnRseSByZWNlaXZlIChyZXF1ZXN0LCAqYXJncywgKiprd2FyZ3MpLCBsaWtlCisJaW4gRGphbmdvLiBUaGUgcHJldmlvdXMgYXJndW1lbnRzIHdpbGwgd29yaywgYnV0IHRoZXkgYXJlIG5vdyBkZXByZWNhdGVkCisJYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiB0aGUgZnV0dXJlLiBUaGlzIGlzIGEgbWFqb3IgaW5jb21wYXRpYmlsaXR5CisJd2l0aCBwcmV2aW91cyB2ZXJzaW9ucyBidXQgaXQgZmVlbHMgYSBsb3QgYmV0dGVyIHRoYW4gdGhlIHByZXZpb3VzCisJKHJlcXVlc3QsIHJlc3BvbnNlKSBiZWhhdmlvciwgYXMgYWRhcHRlcnMgbWFrZSBpdCBlYXN5IHRvIGhhdmUgY3VzdG9tCisJZGlzcGF0Y2ggYXJndW1lbnRzIHVzaW5nIGEgdW5pZmllZCBBUEkuCisJVGhlIHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIgY2xhc3MgcmVtYWluIHVuY2hhbmdlZCBhbmQgaXMgaW5zdGFudGlhdGVkIHdpdGgKKwkocmVxdWVzdCwgcmVzcG9uc2UpLgorCisKK1ZlcnNpb24gMS44IC0gSnVuZSAyNiwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09CistIHdlYmFwMl9leHRyYXMuaTE4bjogdGhlIGZ1bmN0aW9ucyBwYXNzZWQgdG8gSTE4blN0b3JlLnNldF9sb2NhbGVfc2VsZWN0b3IoKQorCWFuZCBJMThuU3RvcmUuc2V0X3RpbWV6b25lX3NlbGVjdG9yKCkgbm93IHJlY2VpdmUgKHN0b3JlLCByZXF1ZXN0KSBpbnN0ZWFkIG9mCisJKHJlcXVlc3QsIHN0b3JlKSwgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIHJvdXRlciBjdXN0b20gY2FsbGFibGVzLgorCistIHdlYmFwMl9leHRyYXMuanNvbjoKKwktIGpzb24gaXMgaW1wb3J0ZWQgZmlyc3QgdHJ5aW5nIGRpcmVjdCBzaW1wbGVqc29uLCB0aGVuIGJ1aWx0LWluIGpzb24KKwkJKGZvciBQeXRob24gPj0gMi42KSwgdGhlbiB0aGUgb25lIGZyb20gZGphbmdvLnV0aWxzIChmb3IgQXBwIEVuZ2luZSkuCisJLSBBbGwgY29udmVuaWVuY2UgZnVuY3Rpb25zIG5vdyByZWNlaXZlICphcmdzLCAqKmt3YXJncyB0byBiZSBwYXNzZWQgdG8KKwkJZW5jb2RlKCkvZGVjb2RlKCkuCisKKy0gQWRkZWQgd2ViYXBwMl9leHRyYXMubWFrby4KKworLSBBZGRlZCB3ZWJhcHAyLnJlZGlyZWN0X3RvLgorCistIEFkZGVkIFJlcXVlc3QuYmxhbmsoKSBwYXJhbWV0ZXJzIGNvbXBhdGlibGUgd2l0aCBXZWJPYiA+PSAxLjA6IFBPU1QgYW5kCisJKiprd2FyZ3MuCisKKy0gSW5jcmVhc2VkIGNvbXBhdGliaWxpdHkgd2l0aCB3c2dpcmVmLmhlYWRlcnMuSGVhZGVycywgdXNlZCBieQorCXdlYmFwcC5SZXNwb25zZS4KKworCitWZXJzaW9uIDEuNy41IC0gSnVuZSAyMCwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gSW1wbGVtZW50ZWQgbWV0aG9kcyBmcm9tIGBgd3NnaXJlZi5oZWFkZXJzLkhlYWRlcnNgYCwgdXNlZCBieQorCXdlYmFwcC5SZXNwb25zZS5oZWFkZXJzLgorCisKK1ZlcnNpb24gMS43LjQgLSBKdW5lIDE5LCAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLSBGaXhlZCBidWcgaW4gcmVzcG9uc2Uuc3RhdHVzX21lc3NhZ2UuCisKKworVmVyc2lvbiAxLjcuMyAtIEp1bmUgMTcsIDIwMTEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIFJvdXRlcyBjYW4gbm93IG9ubHkgbWF0Y2ggc3BlY2lmaWMgc2NoZW1lcywgZS5nLiwgJ2h0dHAnIG9yICdodHRwcycuCisKKy0gQWRkZWQgYSB0dXRvcmlhbCB0byB1c2Ugd2ViYXBwMiBvdXRzaWRlIG9mIEFwcCBFbmdpbmUuCisKKworVmVyc2lvbiAxLjcuMiAtIEp1bmUgMTYsIDIwMTEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIFJlc3BvbnNlIGlzIG5vdyBjb21wYXRpYmxlIHdpdGggbGF0ZXN0IFdlYk9iLgorCistIEluY3JlYXNlZCBSZXNwb25zZSBjb21wYXRpYmlsaXR5IHdpdGggd2ViYXBwLCBpbXBsZW1lbnRpbmcgd3NnaV93cml0ZSgpIGFuZAorCWhhc19lcnJvcigpLgorCistIENoYW5nZWQgc29tZSBzdGF0dXMgbWVzc2FnZXMgdG8gYmUgdGhlIHNhbWUgYXMgd2ViYXBwOgorCS0gMjAzOiAnTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24nCisJLSAzMDI6ICdNb3ZlZCBUZW1wb3JhcmlseScKKwktIDMwNjogJ1VudXNlZCcKKwktIDQwODogJ1JlcXVlc3QgVGltZS1vdXQnCisJLSA0MTQ6ICdSZXF1ZXN0LVVSSSBUb28gTGFyZ2UnCisJLSA1MDQ6ICdHYXRld2F5IFRpbWUtb3V0JworCS0gNTA1OiAnSFRUUCBWZXJzaW9uIG5vdCBzdXBwb3J0ZWQnCisKKy0gQ29waWVkIFJlcXVlc3QgZnJvbSB3ZWJhcHAsIHNvIHRoYXQgd2hlbiB1c2luZyB3ZWJhcHAyIG91dHNpZGUgb2YgdGhlIFNESworCXRoZXkgYXJlIHRoZSBzYW1lLgorCistIFJvdXRlcyBub3cgbWF0Y2ggdGhlIFJlcXVlc3QgcGF0aCB1bnF1b3RlZC4gU2VlIEFwcCBFbmdpbmUgaXNzdWUgIzI2MzYKKwlmb3IgYW4gZXhwbGFuYXRpb24uCisKKworVmVyc2lvbiAxLjcuMSAtIEp1bmUgMTQsIDIwMTEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIEFkZGVkIHN0YW5kYWxvbmUgcmVkaXJlY3QoKSBmdW5jdGlvbi4KKworLSBSZXF1ZXN0SGFuZGxlci5yZWRpcmVjdCBhbmQgcmVkaXJlY3RfdG8gbm93IHJldHVybiBhIHJlc3BvbnNlIG9iamVjdC4KKworLSBGaXhlZDogbXVsdGlwbGUgcm91dGVzIHRoYXQgZGVmaW5lIG1ldGhvZHMgYXJlIHRyaWVkIGJlZm9yZSBNZXRob2ROb3RBbGxvd2VkCisJaXMgcmFpc2VkLgorCistIFVwZGF0ZWQgd2ViYXBwMl9leHRyYXMucHJvdG9ycGMgdG8gd29yayB3aXRoIGxhdGVzdCBQcm90b1JQQy4KKworCitWZXJzaW9uIDEuNyAtIEp1bmUgNCwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gQWRkZWQgYSBzaW1wbGUgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIFdTR0lhcHBsaWNhdGlvbiwgYXZhaWxhYmxlIGluIHRoZQorCWNvbmZpZyBhdHRyaWJ1dGUuIEV4dHJhcyBtb2R1bGVzIHRoYXQgdXNlIGNvbmZpZ3VyYXRpb24gKGkxOG4sIGppbmphMiwKKwlzZXNzaW9ucykgZG9uJ3QgcmVxdWlyZSBhcHAuY29uZmlnIHRvIGJlIHNldCBtYW51YWxseSBhbnltb3JlLiBTdGlsbCwgdGhlCisJYHNlY3JldF9rZXlgIGtleSBjb25maWcgZm9yIHNlc3Npb25zLCBpZiBub3QgZGVmaW5lZCwgd2lsbCByZXN1bHQgaW4gYW4KKwlleGNlcHRpb24uCisKKy0gRGVwcmVjYXRlZCB3ZWJhcHAyX2V4dHJhcy5jb25maWcsIHJlcGxhY2VkIGJ5IHRoZSBzaW1wbGVyIGFwcCBkaWN0LgorCistIFJvdXRlciBubyBsb25nZXIgcmVjZWl2ZXMgYXBwIG9uIGNvbnN0cnVjdGlvbiwgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlCisJY29uZmlnIG9iamVjdC4gQXBwIGlzIHNldCBhcyBnbG9iYWwgYmVmb3JlIHJvdXRlciBpcyBpbml0aWFsaXplZC4KKworLSBGaXhlZCBhIGJ1ZyBpbiB3ZWJhcHAyX2V4dHJhcy5zZXNzaW9ucyB0aGF0IG1hZGUgaXQgbm90IHNhdmUgdGhlIHNlc3Npb24KKwl3aGVuIGl0IHdhcyBlbXB0eSAobGlrZSB3aGVuIGZsYXNoZXMgYXJlIHBvcHBlZCkuCisKKy0gQWRkZWQgc3RhbmRhbG9uZSB1cmlfZm9yIGZ1bmN0aW9uLCB0byBiZSB1c2VkIGluIHRlbXBsYXRlcy4KKworCitWZXJzaW9uIDEuNi4zIC0gSnVuZSAzLCAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIEFkZGVkIHdlYmFwMl9leHRyYXMubG9jYWxfYXBwLCB3aXRoIHRoZSBXU0dJQXBwbGljYXRpb24gcHJldmlvdXNseSBpbgorCXdlYmFwMl9leHRyYXMubG9jYWwuIFRoaXMgYWxsb3dzIHVzaW5nIExvY2FsUHJveHkgb24gQXBwIEVuZ2luZSwgd2l0aG91dAorCWFjdHVhbGx5IG1vbmtleXBhdGNoaW5nIHRoZSBXU0dJIGFwcCBmb3IgdGhyZWFkZWQgZW52aXJvbm1lbnRzLgorCistIFJvdXRlIG5vdyByYWlzZXMgZXhjLkhUVFBNZXRob2ROb3RBbGxvd2VkIGlmIG1ldGhvZHMgYXJlIHNldCBhbmQgdGhlIHJlcXVlc3QKKwltZXRob2QgZG9lc24ndCBtYXRjaC4KKworLSBSb3V0ZXIuZGVmYXVsdF9tYXRjaGVyKCkgbm93IHJhaXNlcyBleGMuSFRUUE5vdEZvdW5kIGlmIG5vIHJvdXRlIG1hdGNoZXMuCisKKworVmVyc2lvbiAxLjYuMiAtIE1heSAzMCwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLSBXU0dJQXBwbGljYXRpb24uX19jYWxsX18gY2hlY2tzIGlmIHRoZSBkaXNwYXRjaGVyIGRpZG4ndCByZXR1cm4gTm9uZSB0bworCWFjY2VwdCB0aGUgcmV0dXJuZWQgdmFsdWUgYXMgYSByZXNwb25zZS4gUHJldmlvdXNseSBpdCBjaGVja2VkIGlmIGl0IHdhcyBhbgorCWluc3RhbmNlIG9mIFJlc3BvbnNlLgorCistIFRvIHN1cHBvcnQgcmV0dXJuZWQgcmVzcG9uc2UsIFJlcXVlc3RIYW5kbGVyLmRpc3BhdGNoKCkgcmV0dXJucyB0aGUgcmVzdWx0IG9mCisJdGhlIGRpc3BhdGNoZWQgbWV0aG9kLgorCitWZXJzaW9uIDEuNi4xIC0gTWF5IDMwLCAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIEZpeGVkIGFuIGluZGVudGF0aW9uIGJ1ZyBpbiB3ZWJhcHAyX2V4dHJhcy51c2Vycy4KKworLSBBZGRlZCBiYWNrIF90b191dGY4KCkgdG8gY29udmVydCB2YWx1ZXMgZm9yIGltcG9ydF9zdHJpbmcoKSBhbmQgdXJsdW5zcGxpdCgpLgorCistIEFkZGVkIFdTR0lBcHBsaWNhdGlvbi5nZXRfcmVzcG9uc2UoKSwgYSBjb252ZW5pZW5jZSBmb3IgdW5pdCB0ZXN0cy4KKworCitWZXJzaW9uIDEuNiAtIE1heSAyOSwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gSGFuZGxlcnMgcmVnaXN0ZXJlZCBpbiBXU0dJQXBwbGljYXRpb24uZXJyb3JfaGFuZGxlcnMgY2FuIG5vdyBhbHNvIGJlIGEKKwlzdHJpbmcgdG8gYmUgbGF6aWx5IGltcG9ydGVkLgorCistIFRoZSByZXF1ZXN0IG9iamVjdCBub3cgaGFzIHRoZSBhY3RpdmUgcmVzcG9uc2UgYXZhaWxhYmxlIGFzIGFuIGF0dHJpYnV0ZToKKwlyZXF1ZXN0LnJlc3BvbnNlLgorCistIEFkZGVkIGEgZmFjdG9yeSBtZXRob2QgdG8gUmVxdWVzdEhhbmRsZXIsIHRvIGJldHRlciBkZWFsIHdpdGggbGlicmFyaWVzIHRoYXQKKwl1c2UgYSBjdXN0b20gd2ViYXBwLlJlcXVlc3RIYW5kbGVyIGNvbnN0cnVjdG9ycyAobGlrZSBQcm90b1JQQykuCisKKy0gQWRkZWQgc2V0X2Rpc3BhdGNoZXIoKSB0byBSb3V0ZXIsIHRvIHNldCBleHRlbmRlZCBkaXNwYXRjaGluZy4KKworLSBIYW5kbGVycyBhbmQgZXJyb3IgaGFuZGxlcnMgY2FuIG5vdyByZXR1cm4gYSByZXNwb25zZSBvYmplY3QsIHdoaWNoIHdpbGwgYmUKKwl1c2VkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgcmVzcG9uc2UgY3JlYXRlZCBieSB0aGUgV1NHSSBhcHAuIFRoaXMgYWxsb3dzCisJd2ViYXBwMiB0byBiZSB1c2VkIGZvbGxvd2luZyB0aGUgY29tbW9uIHBhdHRlcm4gb2YgaGFuZGxlcnMgdGhhdCByZXR1cm4gYQorCXJlc3BvbnNlLCBpbnN0ZWFkIG9mIHRoZSB3ZWJhcHAgd2F5IG9mIGEgaGFuZGxlciB0aGF0IHdyaXRlcyB0byBhbiBleGlzdGluZworCXJlc3BvbnNlLgorCistIFJlcXVlc3QuSGFuZGxlci5yZWRpcmVjdCgpIG5vdyBjYW4gcmVjZWl2ZSBhIGBjb2RlYCBwYXJhbWV0ZXIsIHRvIHNldCB0aGUKKwlzdGF0dXMgY29kZS4gVGhpcyBpcyBwcmVmZXJhYmxlIHRoYW4gdGhlIGBwZXJtYW5lbnRgIHBhcmFtZXRlciwga2VwdCBmb3IKKwljb21wYXRpYmlsaXR5IHdpdGggd2ViYXBwLgorCistIHdlYmFwcDIgaXMgbm93IGEgZmlsZSB3ZWJhcHAyLnB5LCBpbnN0ZWFkIG9mIGEgcGFja2FnZSB3aXRoIGEgX19pbml0X18ucHkKKwlmaWxlLgorCistIEFQSSBjbGVhbnVwOgorCS0gUmVtb3ZlZCBXU0dJQXBwbGljYXRpb24udXJsX2ZvcigpLCB0b191bmljb2RlKCksIHRvX3V0ZjgoKS4KKwktIFJlcXVlc3RIYW5kbGVyLnVybF9mb3Igd2FzIHJlbmFtZWQgdG8gdXJpX2Zvciwgd2l0aCB1cmxfZm9yIGtlcHQKKwkJYXMgYW4gYWxpYXMuCisJLSBSZW5hbWVkIHdlYmFwcDJfZXh0cmFzLnJvdXRlcy5JbXByb3ZlZFJvdXRlIHRvIFJlZGlyZWN0Um91dGUsIGFzIGl0CisJCWJhc2ljYWxseSBhZGRzIHJlZGlyZWN0IGNvbnZlbmllbmNlcy4KKwktIEZvciBjb25zaXN0ZW5jeSB3aXRoIHVyaSBidWlsZGluZyBwYXJhbWV0ZXJzLCBSZWRpcmVjdEhhbmRsZXIgcGFyYW1ldGVycworCQlhcmUgbm93IHByZWZpeGVkIHdpdGggYSB1bmRlcnNjb3JlOiBgdXJsYCBiZWNvbWVzIGBfdXJpYCBhbmQgYHBlcm1hbmVudGAKKwkJYmVjb21lcyBgX3Blcm1hbmVudGAuIEEgcGFyYW1ldGVyIGBfY29kZWAgd2FzIGFkZGVkIHRvIHNldCBzdGF0dXMgY29kZS4KKwktIFJvdXRlci5kb19tYXRjaCBhbmQgZG9fYnVpbGQgcmVuYW1lZCB0byBkZWZhdWx0X21hdGNoZXIgYW5kCisJCWRlZmF1bHRfZGlzcGF0Y2hlci4KKwktIFVSSSBidWlsZGluZyBhY2NlcHRzIGEgX2ZyYWdtZW50IGFyZ3VtZW50LCB3aXRoIF9hbmNob3IgYXMgZmFsbGJhY2suCisKKworVmVyc2lvbiAxLjUgLSBNYXkgMTYsIDIwMTEKKz09PT09PT09PT09PT09PT09PT09PT09PT09CistIEFkZGVkIHdlYmFwcDJfZXh0cmFzLmxvY2FsLCB3aXRoIGFuIGV4dGVuZGVkIFdTR0lBcHBsaWNhdGlvbiB0aGF0IHVzZXMKKwl0aHJlYWQtbG9jYWwgZm9yIGdsb2JhbHMgYW5kIHNvIGNhbiBiZSB1c2VkIG91dHNpZGUgb2YgQXBwIEVuZ2luZS4KKworLSBBZGRlZCB3ZWJhcHAyX2V4dHJhcy5wcm90b3JwYywgd2l0aCBzdXBwb3J0IGZvciBHb29nbGUgUHJvdG9SUEMuCisKKy0gQWRkZWQgc2V0X21hdGNoZXIoKSBhbmQgc2V0X2J1aWxkZXIoKSB0byBSb3V0ZXIsIHRvIHNldCBleHRlbmRlZCBtYXRjaGVyIGFuZAorCWJ1aWxkZXIuCisKKy0gUm91dGVzIG5vdyByZXR1cm4gdGhlIHJvdXRlIG9uIG1hdGNoKCkgb3Igcm91dGVzIHdpdGggbmVzdGVkIHJvdXRlcyBjYW5ub3QKKwl3b3JrLiBTbyBpbnN0ZWFkIG9mIHJldHVybmluZyAoYXJncywga3dhcmdzKSB0aGV5IHJldHVybgorCShyb3V0ZSwgYXJncywga3dhcmdzKS4KKworLSBOb3cgaGFuZGxlcnMgb25seSByZWNlaXZlICoqYXJncyBpZiBubyBuYW1lZCB2YXJpYWJsZXMgYXJlIHNldC4gT3RoZXJ3aXNlLAorCXRoZXkgb25seSByZWNlaXZlICoqa3dhcmdzLiBUaGlzIGFsbG93cyB1c2VycyB0byB1c2UgcmVnZXhlcyB0aGF0IGFyZSBub3QKKwlpbnRlbmRlZCB0byBiZSBjYXB0dXJlZCwgbWl4aW5nIG5hbWVkIGFuZCB1bm5hbWVkIHZhcmlhYmxlcy4KKworLSBEb21haW5Sb3V0ZSBub3cgdXNlcyB0aGUgc2FtZSBzeW50YXggdXNlZCBieSB3ZWJhcHAyLlJvdXRlLCBpbnN0ZWFkIG9mIGEKKwlyZWdleC4gVGhlIHJlc3VsdGluZyBrZXl3b3JkcyBhcmUgYWRkZWQgdG8gdGhlIG1hdGhlZCByb3V0ZSAqKmt3YXJncy4KKwlUaGlzIGdpdmVzIGNvbnRyb2wgb2Ygd2hhdCBpcyBwYXNzZWQgdG8gdGhlIGhhbmRsZXIgaWYgYSBkb21haW4vc3ViZG9tYWluCisJbWF0Y2hlcywgYW5kIGFsbG93cyB0byBub3QgcGFzcyBhbnl0aGluZyBpZiBubyByZWdleCBncm91cHMgYXJlIGRlZmluZWQuCisKKy0gU2V2ZXJhbCBzbWFsbCBidWdzIGZpeGVkIGFuZCBpbmNyZWFzZWQgdGVzdCBjb3ZlcmFnZSBpbiB3ZWJhcHAyX2V4dHJhcy4KKworCitWZXJzaW9uIDEuMyAtIE1heSA5LCAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09CistIEFkZGVkIHdlYmFwcDJfZXh0cmFzIG1vZHVsZXM6CisJLSB3ZWJhcHAyX2V4dHJhcy5pMThuOiBpbnRlcm5hdGlvbmFsaXphdGlvbiBzdXBwb3J0LgorCS0gd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnNfbWVtY2FjaGU6IG1lbWNhY2hlIGJhc2VkIHNlc3Npb25zLgorCS0gd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnNfbmRiOiBkYXRhc3RvcmUgYmFzZWQgc2Vzc2lvbnMuCistIFNldmVyYWwgYXBpIGltcHJvdmVtZW50cyBpbiB3ZWJhcHAyX2V4dHJhcy4KKworCitWZXJzaW9uIDEuMiAtIE1heSA2LCAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09CistIFJlbW92ZWQgQ29uZmlnIGZyb20gd2ViYXBwMiBjb3JlLiBJdCBpcyBub3cgcGFydCBvZiB0aGUgbmV3ICJ3ZWJhcHAyX2V4dHJhcyIKKwlwYWNrYWdlLgorLSBBZGRlZCB0aGUgcGFja2FnZSB3ZWJhcHAyX2V4dHJhcy4gVGhlc2UgYXJlIGFsbCBvcHRpb25hbCBtb2R1bGVzIHRoYXQKKwljb21wbGVtZW50IHdlYmFwcDIgd2l0aCBjb21tb24gZnVuY3Rpb25hbGl0aWVzLiBDdXJyZW50bHkgdGhleSBpbmNsdWRlOgorCS0gd2ViYXBwMl9leHRyYXMuY29uZmlnOiBDb25maWd1cmF0aW9uIG9iamVjdC4KKwktIHdlYmFwcDJfZXh0cmFzLmppbmphMjogU3VwcG9ydCBmb3IgSmluamEyIHRlbXBsYXRpbmcuCisJLSB3ZWJhcHAyX2V4dHJhcy5qc29uOiBKU09OIHV0aWxpdGllcy4KKwktIHdlYmFwcDJfZXh0cmFzLnJvdXRlczogRXh0ZW5kZWQgcm91dGUgY2xhc3Nlcy4KKwktIHdlYmFwcDJfZXh0cmFzLnNlY3VyZWNvb2tpZTogU2lnbmVkIGNvb2tpZSBzZXJpYWxpemVyLgorCS0gd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnM6IFNlc3Npb25zIHN1cHBvcnQuCisKKworVmVyc2lvbiAxLjEgLSBNYXkgNSwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PQorLSBTaW1wbGlmaWVkIHJvdXRpbmcgd2l0aCBhbiB1bmlmaWVkIGRpc3BhdGNoIG1ldGhvZCBmb3IgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLgorCisKK1ZlcnNpb24gMS4wIC0gTWF5IDFzdCwgMjAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09CitUaGlzIGlzIGEgbWFqb3IgcmVmYWN0b3Jpbmcgd2l0aCBzb21lIGluY29tcGF0aWJsZSBjaGFuZ2VzLCBtb3N0bHkgaW50ZXJuYWwKK3N0dWZmIHRoYXQgd29uJ3QgYmUgbm90aWNlZCBpbiBjb21tb24gdXNhZ2UuCisKKy0gQ2hhbmdlZCBzaWduYXR1cmUgb2YgUmVxdWVzdEhhbmRsZXIncyBjb25zdHJ1Y3RvcjogaXQgbm93IHJlY2VpdmVzIG9ubHkKKwkocmVxdWVzdCwgcmVzcG9uc2UpIGluc3RlYWQgb2YgKGFwcCwgcmVxdWVzdCwgcmVzcG9uc2UpLgorCistIEFkZGVkIFJlcXVlc3RDb250ZXh0IGNsYXNzLCB3aGljaCBzaG91bGQgaGVscCB0ZXN0aW5nLgorCistIEFkZGVkIC5hcHAgYXR0cmlidXRlIHRvIFJlcXVlc3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBhY3RpdmUgYXBwLgorCistIFJlZmFjdG9yZWQgcm91dGluZyBzY2hlbWU6CisJLSBOb3cgYWxzbyBzdXBwb3J0cyBmdW5jdGlvbiB2aWV3cyBiZXNpZGVzIGNsYXNzZXMuCisJLSBOb3cgYWxzbyBzdXBwb3J0cyBub3JtYWwgZnVuY3Rpb25zIGFzIGV4Y2VwdGlvbiBoYW5kbGVycywgYW5kIGV4Y2VwdGlvbgorCQloYW5kbGVycyBkb24ndCBuZWVkIHRvIGJlIGEgc3ViY2xhc3MgUmVxdWVzdEhhbmRsZXIgKGJ1dCBzdGlsbCBjYW4pLgorCS0gTm93IGFsc28gc3VwcG9ydHMgY3VzdG9tIGhhbmRsZXIgbWV0aG9kcyBiZXNpZGVzIHVzaW5nIHRoZSByZXF1ZXN0IG1ldGhvZC4KKworLSBSZW1vdmVkIFJlcXVlc3QuY29udGV4dDogd2FzIHJlZHVuZGFudCB3aXRoIFJlcXVlc3QucmVnaXN0cnkuCisKKy0gUmVuYW1lZCBXU0dJQXBwbGljYXRpb24ud3NnaV9hcHAgdG8gV1NHSUFwcGxpY2F0aW9uLmRpc3BhdGNoLgorCistIE1vdmVkIEFMTE9XRURfTUVUSE9EUyB0byBXU0dJQXBwbGljYXRpb24uYWxsb3dlZF9tZXRob2RzLgorCistIE1vdmVkIGdldF92YWxpZF9tZXRob2RzKCkgdG8gUmVxdWVzdEhhbmRsZXIuZ2V0X3ZhbGlkX21ldGhvZHMoKS4KKworCitWZXJzaW9uIDAuNyAtIFNlcHRlbWJlciAyNiwgMjAxMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gQWRkZWQgV1NHSUFwcGxpY2F0aW9uLmFwcCBhbmQgV1NHSUFwcGxpY2F0aW9uLnJlcXVlc3QsIGNsYXNzIGF0dHJpYnV0ZXMgc2V0CisJb24gZWFjaCByZXF1ZXN0IHRvIHJlZmVyZW5jZSBjdXJyZW50bHkgYWN0aXZlIGFwcCBhbmQgcmVxdWVzdC4KKwlXU0dJQXBwbGljYXRpb24uYXBwIGlzIGFuIGFsaWFzIHRvIFdTR0lBcHBsaWNhdGlvbi5hY3RpdmVfaW5zdGFuY2UuCisKKy0gRml4ZWQgZG91YmxlIGVzY2FwaW5nIG9mICsgaW4gdXJsdW5zcGxpdCgpLiBUaGFua3MsIGFsa2lzLgorCistIElNUFJPVkVEOiBjb25maWd1cmF0aW9uIG5vdyBiZWhhdmVzIGV4YWN0bHkgbGlrZSBhIGRpY3Rpb25hcnksIHN0aWxsCisJYXV0by1sb2FkaW5nIGNvbmZpZ3VyYXRpb24gdmFsdWVzIHdoZW4gbmVlZGVkIGFuZCBob25vcmluZyByZXF1aXJlZCBjb25maWdzLgorCUZvciBleGFtcGxlLCB3ZSBhbHdheXMgdXNlZCB0aGlzOjoKKworCQkJYmFyID0gc2VsZi5hcHAuZ2V0X2NvbmZpZygnZm9vJywgJ2JhcicpCisKKwlOb3cgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byB1c2UgZGlyZWN0IGFjY2VzcyBhbmQgZGljdCBtZXRob2RzOjoKKworCQkJYmFyID0gc2VsZi5hcHAuY29uZmlnWydmb28nXVsnYmFyJ10KKwkJCSMgb3IuLi4KKwkJCWJhciA9IHNlbGYuYXBwLmNvbmZpZ1snZm9vJ10uZ2V0KCdiYXInKQorCQkJIyBvci4uLgorCQkJYmFyID0gc2VsZi5hcHAuY29uZmlnLmdldCgnZm9vJykuZ2V0KCdiYXInKQorCisJVGhlIHByZXZpb3VzIGdldF9jb25maWcoKSBtZXRob2Qgd29ya3MgYXMgYWx3YXlzLgorCisKK1ZlcnNpb24gMC42IC0gQXVndXN0IDMxLCAyMDEwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLSBGaXg6IEFuY2hvcnMgaW4gZ2VuZXJhdGVkIFVSTHMgYXJlIHF1b3RlZCB1c2luZyB1cmxpYi5xdW90ZSwgaW5zdGVhZCBvZgorCXVybGliLnF1b3RlX3BsdXMuCisKKy0gSW4gUm91dGVyLmRpc3BhdGNoKCksIGlmIGFuIGV4Y2VwdGlvbiBvY2N1cnMgd2hpbGUgaGFuZGxpbmcgYW4gZXhjZXB0aW9uLAorCXJhaXNlIGl0IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGhhbmRsZSBpdCBhZ2Fpbi4KKworLSBGaXhlZCBidWcgd2hlbiB3cml0aW5nIGEgdW5pY29kZSBzdHJpbmcgdG8gUmVzcG9uc2UgYW5kIGNoYXJzZXQgaXMgbm90IHNldC4KKwlUaGFua3MgdG8gbWFydGluYyBmb3IgdGhlIHBhdGNoLgorCistIENoYW5nZWQ6IHRoZSBhcHAgd29uJ3QgZmFsbGJhY2sgYW55bW9yZSB0byB0aGUgZXhjZXB0aW9uIGhhbmRsZXIgc2V0IGZvcgorCXN0YXR1cyA1MDAgaWYgaGFuZGxlcnMgZm9yIG90aGVyIHN0YXR1cyBhcmUgbm90IHNldC4KKworLSBDaGFuZ2VkOiBleGNlcHRpb25zIGFyZSBvbmx5IGxvZ2dlZCB3aGVuIHVuaGFuZGxlZC4gSXQgaXMgdXAgdG8gZXhjZXB0aW9uCisJaGFuZGxlcnMgdG8gbG9nIHRoZW0gd2hlbiBhcHByb3ByaWF0ZS4KKworCitWZXJzaW9uIDAuNS4xIC0gQXVndXN0IDE3LCAyMDEwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIFdoZW4gYSBVUkwgbWF0Y2hlcywgc29tZSBhdHRyaWJ1dGVzIGFyZSBzZXQgaW4gdGhlIHJlcXVlc3Qgb2JqZWN0OgorCS0gcmVxdWVzdC5yb3V0ZTogdGhlIG1hdGNoZWQgcm91dGUKKwktIHJlcXVlc3Qucm91dGVfYXJnczogdGhlIG1hdGNoZWQgcG9zaXRpb25hbCBhcmd1bWVudHMsIGEgdHVwbGUKKwktIHJlcXVlc3Qucm91dGVfa3dhcmdzOiB0aGUgbWF0Y2hlZCBrZXl3b3JkIGFyZ3VtZW50cywgYSBkaWN0CisKKy0gV1NHSUFwcGxpY2F0aW9uLmhhbmRsZV9leGNlcHRpb24oKSBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgcmFpc2VzIHRoZSBleGNlcHRpb24KKwl3aGVuIGluIGRlYnVnIG1vZGU6IGl0IGlzIHVwIHRvIHRoZSBlcnJvciBoYW5kbGVyIHRvIHJhaXNlIGl0IGlmIGluIGRldjsgaXQKKwl3aWxsIGJlIHJhaXNlZCBpZiBubyBlcnJvciBoYW5kbGVyIGlzIGRlZmluZWQgdG8gaGFuZGxlIGl0IGFueXdheS4KKworLSBBZGRlZCBhdHRyaWJ1dGVzLCBXU0dJQXBwbGljYXRpb24ucmVnaXN0cnksIFJlcXVlc3QucmVnaXN0cnkgYW5kCisJUmVxdWVzdC5jb250ZXh0LCBkaWN0aW9uYXJpZXMgZm9yIG9iamVjdHMgaW4gdXNlIGR1cmluZyB0aGUgYXBwIG9yIHJlcXVlc3QKKwlsaWZldGltZXMuCisKKy0gQmVmb3JlIHBhc3NpbmcgdGhlIHJlcXVlc3QgbWV0aG9kIHRvIHRoZSBSZXF1ZXN0SGFuZGxlciwgJy0nIGlzIHJlcGxhY2VkCisJYnkgJ18nLCBzbyB0aGF0IGEgbWV0aG9kIGxpa2UgV2ViRGF2J3MgJ1ZFUlNJT04tQ09OVFJPTCcgY2FuIGJlIHN1cHBvcnRlZC4KKworLSBDb25maWcuZ2V0KCkgbm93IG9ubHkgcmV0dXJucyB0aGUgcGFzc2VkIGRlZmF1bHQgdmFsdWUgd2hlbiBrZXkgaXMgZGVmaW5lZC4KKwlUaGlzIGlzIHRoZSBpbnRlbmRlZCwgbW9yZSBwcmVkaWN0YWJsZSBiZWhhdmlvcjogZGVmYXVsdCBpcyBhIGRlZmF1bHQgZm9yCisJdGhlIGtleSwgbm90IHRoZSBtb2R1bGUuIEZvciBleGFtcGxlOjoKKworCQkJIyBJZiBjb25maWdbJ2ZvbyddWydiYXInXSBpcyBub3Qgc2V0LCByZXR1cm4gJ2JheicuCisJCQljb25maWcuZ2V0KCdmb28nLCAnYmFyJywgZGVmYXVsdD0nYmF6JykKKworCQkJIyBJZiBjb25maWdbJ2ZvbyddIGlzIG5vdCBzZXQsIHJldHVybiBOb25lLiBEZWZhdWx0IGlzIGlnbm9yZWQgaGVyZS4KKwkJCWNvbmZpZy5nZXQoJ2ZvbycsIGRlZmF1bHQ9J2JheicpCisKKy0gUm91dGVyIGluaXRpYWxpemF0aW9uIG5vdyByZWNlaXZlcyB0aGUgYXBwIGFzIHBhcmFtZXRlciwgc28gdGhhdCBleHRlbmRlZAorCXJvdXRlcyBjYW4gYWNjZXNzIGFwcCdzIGNvbmZpZy4KKworCitWZXJzaW9uIDAuNSAtIEF1Z3VzdCAxMywgMjAxMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gQmV0dGVyIGNvbXBhdGliaWxpdHkgd2l0aCB3ZWJhcHA6CisJLSB3ZWJhcHAyLldTR0lhcHBsaWNhdGlvbiBjYW4gYmUgdXNlZCB3aXRoIHdlYmFwcC5SZXF1ZXN0SGFuZGxlci4KKwktIHdlYmFwcC5XU0dJYXBwbGljYXRpb24gY2FuIGJlIHVzZWQgd2l0aCB3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyLgorCisJQWx0aG91Z2ggdGhlIGZ1bmN0aW9uYWxpdHkgYmVjb21lcyBsaW1pdGVkIGluIGJvdGggY2FzZXMsIHRoaXMgc2hvdWxkIGhlbHAKKwltaWdyYXRpb24uCisKKy0gUmV2aWV3IG9mIFJlc3BvbnNlIGJhc2VkIG9uIG9ic2VydmF0aW9ucyBmcm9tCisJaHR0cDovL3B5dGhvbnBhc3RlLm9yZy93ZWJvYi9kaWZmZXJlbmNlcy5odG1sI3dlYmFwcC1yZXNwb25zZToKKworCS0gUmVzcG9uc2Uub3V0IGlzIG5vdyBhIHJlZmVyZW5jZSB0byBzZWxmLCB0byB1c2Ugd2Vib2IuUmVzcG9uc2UncyBuZWF0CisJCS53cml0ZSgpIG1ldGhvZCB3aGljaCBjYW4gaGFuZGxlIGJvdGggc3RyaW5nIGFuZCB1bmljb2RlLgorCS0gUmVzcG9uc2UuY2xlYXIoKSBub3cgc2V0cyAuYm9keSA9ICcnIGluc3RlYWQgb2YgLmFwcF9pdGVyID0gW10uCisKKy0gQWRkZWQgUmVzcG9uc2Uud3JpdGUoKSwgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBTdHJpbmdJTyBiZWhhdmlvciBpbiB3ZWJhcHAKKwl3aGVuIGNhbGxpbmcgd3JpdGUoKSBwYXNzaW5nIG5vbi1iYXNlc3RyaW5nIHZhbHVlcyAoaXNzdWUgMikuCisKKy0gUmVtb3ZlZCB1cmxfZXNjYXBlKCkgYW5kIHVybF91bmVzY2FwZSgpLiBVbnVzZWQgb3IgYWxtb3N0IHVudXNlZC4KKworLSBFcnJvckhhbmRsZXJzIGNhbiBub3cgYmUgZGVmaW5lZCBhcyBzdHJpbmdzIHRvIGJlIGxhemlseSBsb2FkZWQsIGFzIHRoZXkKKwlub3cgdXNlIHRoZSBzYW1lIGRpc3BhdGNoIG1lY2hhbmlzbSBvZiBvdGhlciBoYW5kbGVycy4KKworQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2FybmluZworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSBUaGUgbWV0aG9kIGhhbmRsZV9leGNlcHRpb24oKSBpcyBjYWxsZWQgZnJvbSBhcHAtd2lkZSBlcnJvciBoYW5kbGVycy4KKwlQcmV2aW91c2x5LCBnZXQoKSB3YXMgY2FsbGVkLgorCisKK1ZlcnNpb24gMC40LjEgLSBBdWd1c3QgMDgsIDIwMTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gUmVtb3ZlZCByb3V0ZXIgcGFyYW1ldGVyIGZyb20gZ2V0X3JvdXRlcygpLCBnZXRfbWF0Y2hfcm91dGVzKCksCisJZ2V0X2J1aWxkX3JvdXRlcygpLiBUaGlzIHNpbXBsaWZpZXMgbXVsdGktcm91dGVzIHF1aXRlIGEgYml0LgorCisKK1ZlcnNpb24gMC40IC0gQXVndXN0IDA3LCAyMDEwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLSByZWRpcmVjdCgpIGFuZCByZWRpcmVjdF90bygpIG5vdyBhY2NlcHQgYSBrZXl3b3JkIGFyZ3VtZW50ICdhYm9ydCcgdG8gcmFpc2UKKwlhbiBleGNlcHRpb24gdG8gZG8gdGhlIHJlZGlyZWN0LgorCistICdfbmV0bG9jJyBjYW4gYmUgcGFzc2VkIHRvIHVybF9mb3IoKSBidWlsZCBVUkxzIGZvciBhIGdpdmVuIGRvbWFpbiBvcgorCXN1YmRvbWFpbi4KKworLSBBZGRlZCBCYXNlUm91dGUsIGFuIGludGVyZmFjZSBmb3IgY3VzdG9tIHJvdXRlcy4gU2V2ZXJhbCBpbXByb3ZlbWVudHMgbWFrZQorCXRoZSByb3V0aW5nIHN5c3RlbSBtb3JlIGV4dGVuc2libGUsIHdoaWxlIHRoZSBkZWZhdWx0IFJvdXRlIGNsYXNzIHN0aWNrcyB0bworCXRoZSBiYXNpY3MuCisKKy0gTmVzdGVkIHJvdXRlcyBhcmUgbm93IHBvc3NpYmxlLiBBcyBhbiBleGFtcGxlLCBgZXh0cmFzL3JvdXRlcy5weWAgaGFzIHNldmVyYWwKKwljbGFzc2VzIHRoYXQgYWNjZXB0IG5lc3RlZCByb3V0ZXMgb3IgZXh0ZW5kIHJvdXRpbmcgaW4gb3RoZXIgd2F5czoKKworCS0gUGF0aFByZWZpeFJvdXRlOiB0aGUgaWRlYSBvZiB0aGlzIHJvdXRlIGlzIHRvIHNldCBhIGJhc2UgcGF0aCBmb3Igb3RoZXIKKwkJcm91dGVzOjoKKworCQkJCWFwcCA9IFdTR0lBcHBsaWNhdGlvbihbCisJCQkJCQlQYXRoUHJlZml4Um91dGUoJy91c2Vycy88dXNlcjpcdys+JywgWworCQkJCQkJCQlSb3V0ZSgnLycsIFVzZXJPdmVydmlld0hhbmRsZXIsICd1c2VyLW92ZXJ2aWV3JyksCisJCQkJCQkJCVJvdXRlKCcvcHJvZmlsZScsIFVzZXJQcm9maWxlSGFuZGxlciwgJ3VzZXItcHJvZmlsZScpLAorCQkJCQkJCQlSb3V0ZSgnL3Byb2plY3RzJywgVXNlclByb2plY3RzSGFuZGxlciwgJ3VzZXItcHJvamVjdHMnKSwKKwkJCQkJCV0pLAorCQkJCV0pCisKKwkJVGhlIGV4YW1wbGUgYWJvdmUgaXMgdGhlIHNhbWUgYXMgc2V0dGluZyB0aGUgZm9sbG93aW5nIHJvdXRlcywganVzdCBtb3JlCisJCWNvbnZlbmllbnQgYXMgeW91IGNhbiByZXVzZSB0aGUgcGF0aCBwcmVmaXg6OgorCisJCQkJYXBwID0gV1NHSUFwcGxpY2F0aW9uKFsKKwkJCQkJCVJvdXRlKCcvdXNlcnMvPHVzZXI6XHcrPi8nLCBVc2VyT3ZlcnZpZXdIYW5kbGVyLCAndXNlci1vdmVydmlldycpLAorCQkJCQkJUm91dGUoJy91c2Vycy88dXNlcjpcdys+L3Byb2ZpbGUnLCBVc2VyUHJvZmlsZUhhbmRsZXIsICd1c2VyLXByb2ZpbGUnKSwKKwkJCQkJCVJvdXRlKCcvdXNlcnMvPHVzZXI6XHcrPi9wcm9qZWN0cycsIFVzZXJQcm9qZWN0c0hhbmRsZXIsICd1c2VyLXByb2plY3RzJyksCisJCQkJXSkKKworCS0gTmFtZVByZWZpeFJvdXRlOiBTYW1lIGFzIFBhdGhQcmVmaXhSb3V0ZSwgYnV0IHByZWZpeGVzIHRoZSBuYW1lcyBvZiByb3V0ZXMuCisKKwktIEhhbmRsZXJQcmVmaXhSb3V0ZTogU2FtZSBhcyBQYXRoUHJlZml4Um91dGUsIGJ1dCBwcmVmaXhlcyB0aGUgaGFuZGxlcnMgb2YKKwkJcm91dGVzLgorCisJLSBEb21haW5Sb3V0ZTogYSByb3V0ZSB1c2VkIHRvIHJlc3RyaWN0IHJvdXRlIG1hdGNoZXMgdG8gYSBnaXZlbiBkb21haW4gb3IKKwkJc3ViZG9tYWluLgorCisJCUZvciBleGFtcGxlLCB0byByZXN0cmljdCByb3V0ZXMgdG8gYSBzdWJkb21haW4gb2YgdGhlIGFwcHNwb3QgZG9tYWluOjoKKworCQkJCVNVQkRPTUFJTl9SRSA9ICdeKFteLl0rKVwuYXBwLWlkXC5hcHBzcG90XC5jb20kJworCisJCQkJYXBwID0gV1NHSUFwcGxpY2F0aW9uKFsKKwkJCQkJCURvbWFpblJvdXRlKFNVQkRPTUFJTl9SRSwgWworCQkJCQkJCQlSb3V0ZSgnL2ZvbycsICdGb29IYW5kbGVyJywgJ3N1YmRvbWFpbi10aGluZycpLAorCQkJCQkJXSksCisJCQkJCQlSb3V0ZSgnL2JhcicsICdCYXJIYW5kbGVyJywgJ25vcm1hbC10aGluZycpLAorCQkJCV0pCisKKwktIEltcHJvdmVkUm91dGU6IGEgcm91dGUgd2l0aCByZWRpcmVjdF90byBhbmQgc3RyaWN0X3NsYXNoLgorCisJCS0gYHJlZGlyZWN0X3RvYDogaWYgc2V0LCB0aGUgcm91dGUgaXMgdXNlZCB0byByZWRpcmVjdCB0byBhIFVSTC4gVGhlIHZhbHVlCisJCQkgY2FuIGJlIGEgVVJMIHN0cmluZyBvciBhIGNhbGxhYmxlIHRoYXQgcmV0dXJucyBhIFVSTC4gVGhlc2UgdHdvIGFyZQorCQkJIGVxdWl2YWxlbnQ6OgorCisJCQkJCXJvdXRlID0gUm91dGUoJy9mb28nLCBSZWRpcmVjdEhhbmRsZXIsIGRlZmF1bHRzPXsndXJsJzogJy9iYXInfSkKKwkJCQkJcm91dGUgPSBSb3V0ZSgnL2ZvbycsIHJlZGlyZWN0X3RvPScvYmFyJykKKworCQktIGBzdHJpY3Rfc2xhc2hgOiBpZiBUcnVlLCByZWRpcmVjdHMgYWNjZXNzIHRvIHRoZSBzYW1lIFVSTCB3aXRoIGRpZmZlcmVudAorCQkJdHJhaWxpbmcgc2xhc2ggdG8gdGhlIHN0cmljdCBwYXRoIGRlZmluZWQgaW4gdGhlIHJ1bGUuIEZvciBleGFtcGxlLCB0YWtlCisJCQl0aGVzZSBydWxlczo6CisKKwkJCQkJcm91dGUgPSBSb3V0ZSgnL2ZvbycsIEZvb0hhbmRsZXIsIHN0cmljdF9zbGFzaD1UcnVlKQorCQkJCQlyb3V0ZSA9IFJvdXRlKCcvYmFyLycsIEJhckhhbmRsZXIsIHN0cmljdF9zbGFzaD1UcnVlKQorCisJCQlCZWNhdXNlICoqc3RyaWN0X3NsYXNoKiogaXMgVHJ1ZSwgdGhpcyBpcyB3aGF0IHdpbGwgaGFwcGVuOgorCisJCQktIEFjY2VzcyB0byBgYC9mb29gYCB3aWxsIGV4ZWN1dGUgYGBGb29IYW5kbGVyYGAgbm9ybWFsbHkuCisJCQktIEFjY2VzcyB0byBgYC9iYXIvYGAgd2lsbCBleGVjdXRlIGBgQmFySGFuZGxlcmBgIG5vcm1hbGx5LgorCQkJLSBBY2Nlc3MgdG8gYGAvZm9vL2BgIHdpbGwgcmVkaXJlY3QgdG8gYGAvZm9vYGAuCisJCQktIEFjY2VzcyB0byBgYC9iYXJgYCB3aWxsIHJlZGlyZWN0IHRvIGBgL2Jhci9gYC4KKworCitWZXJzaW9uIDAuMyAtIEF1Z3VzdCAwNSwgMjAxMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gUm91dGVzIHN0b3JlIHRoZSBoYW5kbGVyLCBhcyB3ZSBoYWQgaW4gMC4xLiBUaGlzIGFsbG93cyBjdXN0b20gcm91dGVzIHRvCisJaGF2ZSBuZXN0ZWQgcm91dGVzLgorLSBNdWNoIGltcHJvdmVkIFVSTCBidWlsZGluZywgbm93IGRlbGVnYXRlZCB0byByb3V0ZXMuCistIGFkZGVkIHVybHVuc3BsaXQoKSBoZWxwZXIuCisKKworVmVyc2lvbiAwLjIgLSBBdWd1c3QgMDQsIDIwMTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIEZpeGVkIGEgYnVnIGluIFJvdXRlLm1hdGNoKCkgdGhhdCB3b3VsZCBtYWtlIGl0IHJldHVybiBwb3NpdGlvbmFsIGFyZ3VtZW50cworCXdpdGggd3Jvbmcgb3JkZXIuIERpY3Rpb25hcnkgaXMgY29ycmVjdGx5IHNvcnRlZCBub3cuCistIEFkZGVkIGJ1aWxkX29ubHkgb3B0aW9uIGZvciByb3V0ZXM6IHJvdXRlcyB0aGF0IGFyZSBvbmx5IHVzZWQgZm9yIHVybF9mb3IoKQorCWFuZCBuZXZlciBtYXRjaC4KKworCitWZXJzaW9uIDAuMSAtIEF1Z3VzdCAwMywgMjAxMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0gSW5pdGlhbCByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvTElDRU5TRSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFlNDdiYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL0xJQ0VOU0UKQEAgLTAsMCArMSwxNDQgQEAKK3dlYmFwcDIKKz09PT09PT0KK0NvcHlyaWdodCAyMDEwIFJvZHJpZ28gTW9yYWVzLgorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Cit5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCitZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCitVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCitkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCitTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCitsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworCitHT09HTEUgQVBQIEVOR0lORSBTREsKKz09PT09PT09PT09PT09PT09PT09PQorQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuCisKK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKK1dJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworV2ViT2IKKz09PT09CitDb3B5cmlnaHQgKGMpIDIwMDcgSWFuIEJpY2tpbmcgYW5kIENvbnRyaWJ1dG9ycworCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4KKworCitXZXJremV1ZworPT09PT09PT0KK0NvcHlyaWdodCAoYykgMjAxMSBieSB0aGUgV2Vya3pldWcgVGVhbSwgc2VlIEFVVEhPUlMgZm9yIG1vcmUgZGV0YWlscy4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCittZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAgICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworICAgICogVGhlIG5hbWVzIG9mIHRoZSBjb250cmlidXRvcnMgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IKKyAgICAgIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYworICAgICAgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCitBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCitTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKK0RBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK1Rvcm5hZG8KKz09PT09PT0KK0NvcHlyaWdodCAyMDA5IEZhY2Vib29rCisKK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5Citub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbgorYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgV0lUSE9VVAorV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlCitMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwordW5kZXIgdGhlIExpY2Vuc2UuCisKKworRmxhc2sKKz09PT09CitDb3B5cmlnaHQgKGMpIDIwMTAgYnkgQXJtaW4gUm9uYWNoZXIgYW5kIGNvbnRyaWJ1dG9ycy4gIFNlZSBBVVRIT1JTCitmb3IgbW9yZSBkZXRhaWxzLgorCitTb21lIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcyBvZiB0aGUgc29mdHdhcmUgYXMgd2VsbAorYXMgZG9jdW1lbnRhdGlvbiwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAordGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKworKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKyogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCisqIFRoZSBuYW1lcyBvZiB0aGUgY29udHJpYnV0b3JzIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yCisgIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYworICBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgQU5EIERPQ1VNRU5UQVRJT04gSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORAorQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQKK05PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKK0EgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSCitPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKK0VYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKK1BST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKK05FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworU09GVFdBUkUgQU5EIERPQ1VNRU5UQVRJT04sIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorREFNQUdFLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvTUFOSUZFU1QuaW4gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9NQU5JRkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjZhYjMzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSwxMyBAQAoraW5jbHVkZSBBVVRIT1JTCitpbmNsdWRlIENIQU5HRVMKK2luY2x1ZGUgTElDRU5TRQoraW5jbHVkZSBSRUFETUUKK2luY2x1ZGUgVE9ETworaW5jbHVkZSBNYWtlZmlsZQoraW5jbHVkZSBydW5fdGVzdHMucHkKK3JlY3Vyc2l2ZS1pbmNsdWRlIGRvY3MgKgorcmVjdXJzaXZlLWV4Y2x1ZGUgZG9jcyAqLnB5YworcmVjdXJzaXZlLWV4Y2x1ZGUgZG9jcy9fYnVpbGQgKgorcmVjdXJzaXZlLWluY2x1ZGUgdGVzdHMgKgorcmVjdXJzaXZlLWV4Y2x1ZGUgdGVzdHMgKi5weWMKK3JlY3Vyc2l2ZS1leGNsdWRlIHdlYmFwcDJfZXh0cmFzICoucHljCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9NYWtlZmlsZSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyOTdhNzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9NYWtlZmlsZQpAQCAtMCwwICsxLDMgQEAKK3Rlc3Q6CisJY292ZXJhZ2UgcnVuIHJ1bl90ZXN0cy5weQorCWNvdmVyYWdlIHJlcG9ydCAtbQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvUEtHLUlORk8gYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9QS0ctSU5GTwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTBjMjQwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvUEtHLUlORk8KQEAgLTAsMCArMSw1MSBAQAorTWV0YWRhdGEtVmVyc2lvbjogMS4wCitOYW1lOiB3ZWJhcHAyCitWZXJzaW9uOiAyLjUuMQorU3VtbWFyeTogVGFraW5nIEdvb2dsZSBBcHAgRW5naW5lJ3Mgd2ViYXBwIHRvIHRoZSBuZXh0IGxldmVsIQorSG9tZS1wYWdlOiBodHRwOi8vd2ViYXBwLWltcHJvdmVkLmFwcHNwb3QuY29tCitBdXRob3I6IFJvZHJpZ28gTW9yYWVzCitBdXRob3ItZW1haWw6IHJvZHJpZ28ubW9yYWVzQGdtYWlsLmNvbQorTGljZW5zZTogQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UKK0Rlc2NyaXB0aW9uOiAKKyAgICAgICAgd2ViYXBwMgorICAgICAgICA9PT09PT09CisgICAgICAgIGB3ZWJhcHAyYF8gaXMgYSBsaWdodHdlaWdodCBQeXRob24gd2ViIGZyYW1ld29yayBjb21wYXRpYmxlIHdpdGggR29vZ2xlIEFwcAorICAgICAgICBFbmdpbmUncyBgd2ViYXBwYF8uCisgICAgICAgIAorICAgICAgICB3ZWJhcHAyIGlzIGBzaW1wbGVgXy4gaXQgZm9sbG93cyB0aGUgc2ltcGxpY2l0eSBvZiB3ZWJhcHAsIGJ1dAorICAgICAgICBpbXByb3ZlcyBpdCBpbiBzb21lIHdheXM6IGl0IGFkZHMgYmV0dGVyIFVSSSByb3V0aW5nIGFuZCBleGNlcHRpb24gaGFuZGxpbmcsCisgICAgICAgIGEgZnVsbCBmZWF0dXJlZCByZXNwb25zZSBvYmplY3QgYW5kIGEgbW9yZSBmbGV4aWJsZSBkaXNwYXRjaGluZyBtZWNoYW5pc20uCisgICAgICAgIAorICAgICAgICB3ZWJhcHAyIGFsc28gb2ZmZXJzIHRoZSBwYWNrYWdlIGB3ZWJhcHAyX2V4dHJhc2BfIHdpdGggc2V2ZXJhbCBvcHRpb25hbAorICAgICAgICB1dGlsaXRpZXM6IHNlc3Npb25zLCBsb2NhbGl6YXRpb24sIGludGVybmF0aW9uYWxpemF0aW9uLCBkb21haW4gYW5kIHN1YmRvbWFpbgorICAgICAgICByb3V0aW5nLCBzZWN1cmUgY29va2llcyBhbmQgb3RoZXJzLgorICAgICAgICAKKyAgICAgICAgd2ViYXBwMiBjYW4gYWxzbyBiZSB1c2VkIG91dHNpZGUgb2YgR29vZ2xlIEFwcCBFbmdpbmUsIGluZGVwZW5kZW50bHkgb2YgdGhlCisgICAgICAgIEFwcCBFbmdpbmUgU0RLLgorICAgICAgICAKKyAgICAgICAgRm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgaG93IHdlYmFwcDIgaW1wcm92ZXMgd2ViYXBwLCBzZWUKKyAgICAgICAgYHdlYmFwcDIgZmVhdHVyZXNgXy4KKyAgICAgICAgCisgICAgICAgIFF1aWNrIGxpbmtzCisgICAgICAgIC0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAtIGBVc2VyIEd1aWRlIDxodHRwOi8vd2ViYXBwLWltcHJvdmVkLmFwcHNwb3QuY29tLz5gXworICAgICAgICAtIGBSZXBvc2l0b3J5IDxodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkLz5gXworICAgICAgICAtIGBEaXNjdXNzaW9uIEdyb3VwIDxodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2ZvcnVtLyMhZm9ydW0vd2ViYXBwMj5gXworICAgICAgICAtIGBAd2ViYXBwMiA8aHR0cHM6Ly90d2l0dGVyLmNvbS8jIS93ZWJhcHAyPmBfCisgICAgICAgIAorICAgICAgICAuLiBfd2ViYXBwOiBodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzL3B5dGhvbi90b29scy93ZWJhcHAvCisgICAgICAgIC4uIF93ZWJhcHAyOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkLworICAgICAgICAuLiBfc2ltcGxlOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkL3NvdXJjZS9icm93c2Uvd2ViYXBwMi5weQorICAgICAgICAuLiBfd2ViYXBwMl9leHRyYXM6IGh0dHA6Ly93ZWJhcHAtaW1wcm92ZWQuYXBwc3BvdC5jb20vI2FwaS1yZWZlcmVuY2Utd2ViYXBwMi1leHRyYXMKKyAgICAgICAgLi4gX3dlYmFwcDIgZmVhdHVyZXM6IGh0dHA6Ly93ZWJhcHAtaW1wcm92ZWQuYXBwc3BvdC5jb20vZmVhdHVyZXMuaHRtbAorICAgICAgICAKK1BsYXRmb3JtOiBhbnkKK0NsYXNzaWZpZXI6IERldmVsb3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlvbi9TdGFibGUKK0NsYXNzaWZpZXI6IEVudmlyb25tZW50IDo6IFdlYiBFbnZpcm9ubWVudAorQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworQ2xhc3NpZmllcjogTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UKK0NsYXNzaWZpZXI6IE9wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQKK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbgorQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogRHluYW1pYyBDb250ZW50CitDbGFzc2lmaWVyOiBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL1JFQURNRSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDcyY2M0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvUkVBRE1FCkBAIC0wLDAgKzEsNyBAQAord2ViYXBwMgorPT09PT09PQord2ViYXBwMiBpcyBhIGxpZ2h0d2VpZ2h0IFB5dGhvbiB3ZWIgZnJhbWV3b3JrIGNvbXBhdGlibGUgd2l0aCBHb29nbGUgQXBwCitFbmdpbmUncyB3ZWJhcHAuCisKKy0gUHJvamVjdCBwYWdlOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkLworLSBVc2VyIGd1aWRlOiBodHRwOi8vd2ViYXBwLWltcHJvdmVkLmFwcHNwb3QuY29tLwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvUkVBRE1FLmNocm9taXVtIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvUkVBRE1FLmNocm9taXVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZDdjYzUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9SRUFETUUuY2hyb21pdW0KQEAgLTAsMCArMSw4IEBACitOYW1lOiB3ZWJhcHAyCitVUkw6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvd2ViYXBwMgorVmVyc2lvbjogMi41LjIKK0RhdGU6IDIwMTItMDktMjgKK1JldmlzaW9uOiBOL0EKK0xpY2Vuc2U6IEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlCitMaWNlbnNlIEZpbGU6IExJQ0VOU0UKK1NlY3VyaXR5IENyaXRpY2FsOiBubwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvVE9ETyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL1RPRE8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJlZTliYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL1RPRE8KQEAgLTAsMCArMSw2NiBAQAorVE9ETworPT09PQord2ViYXBwMiBpcyBjb25zaWRlcmVkIGZlYXR1cmUgY29tcGxldGUgYW5kIHdlbGwgdGVzdGVkLCBidXQgaWYgeW91IHRoaW5rCitzb21ldGhpbmcgaXMgbWlzc2luZyBvciBpcyBub3Qgd29ya2luZyB3ZWxsLCBwbGVhc2UgZGVzY3JpYmUgaXQgaW4gb3VyIGlzc3VlCit0cmFja2VyOgorCisgICAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3dlYmFwcC1pbXByb3ZlZC9pc3N1ZXMvbGlzdAorCitXZSdkIGxvdmUgdG8ga25vdyBpZiB5b3UgZm91bmQgYSBidWcgb3IgaWYgc29tZXRoaW5nIGNhbiBiZSBpbXByb3ZlZC4gV2UgYXJlCithbHNvIGludGVyZXN0ZWQgaW4gaWRlYXMgZm9yIG5ldyB3ZWJhcHAyX2V4dHJhcyBtb2R1bGVzIGFuZCBtb3JlIHRlc3RzIGFuZAorZG9jdW1lbnRhdGlvbi4KKworVGhhbmtzIQorCitUaGUgcmVhbCBUT0RPCistLS0tLS0tLS0tLS0tCistIEFkZCBXU0dJIG1pZGRsZXdhcmU6CisgIC0gc2Vzc2lvbnMKKyAgLSBhdXRoCisKKworVGhlIHdlYmFwcCBUT0RPCistLS0tLS0tLS0tLS0tLS0KK0hlcmUgaXMgYSBsaXN0IG9mIHVwZGF0ZXMgZm9yIHdlYmFwcCB0aGF0IGNvdWxkIGJlIGdyYWR1YWxseSBpbXBsZW1lbnRlZCBpbgorZnV0dXJlIFNESyByZWxlYXNlcywgdG8gbWFrZSB3ZWJhcHAgbW9yZSBjbG9zZSB0byB3ZWJhcHAyOgorCistIEluY2x1ZGUgYSB1cGRhdGVkIHZlcnNpb24gb2Ygd2Vib2IgaW4gdGhlIFNESywgYXZhaWxhYmxlIHRocm91Z2gKKyAgdXNlX2xpYnJhcnkoKS4gQXMgb2YgSnVuZSAxNSwgMjAxMSB0aGUgbGF0ZXN0IHZlcnNpb24gaXMgMS4wLjcuCisgIElzc3VlczogIzI3ODgsICMxNzAgYW5kICM3MTkgKG5vIGFjY2VzcyB0byBwYXJzZWQgYm9keSBwYXJhbWV0ZXJzIHdpdGggUFVUCisgIHJlcXVlc3QgaW4gd2ViYXBwKQorCistIFVzZSB3ZWJvYi5SZXNwb25zZQorICBJc3N1ZXM6ICMyMDAsICM1MDMwCisKKy0gVXNlIHdlYm9iLmV4YyBmb3Igc3RhdHVzIGNvZGUgZXhjZXB0aW9ucy4KKyAgSXNzdWVzOgorCistIE1ha2UgUmVxdWVzdEhhbmRsZXIgZGlzcGF0Y2ggdGhlIHJlcXVlc3RlZCBtZXRob2QsIHVzaW5nIGEgY2xhc3MgbWV0aG9kLgorICBJc3N1ZXM6ICM0NjgKKworLSBCZXR0ZXIgVVJJIFJvdXRpbmcuCisgIElzc3VlczogIzQ0NCAocm91dGluZyBiYXNlZCBvbiBob3N0bmFtZXMpLCAjODQzIChsaW1pdGF0aW9ucyB0byBidWlsZCBVUklzKSwKKyAgIzIzOTggKHJvdXRpbmcgYmFzZWQgb24gdGhlIFVSTCBzY2hlbWUpLCAjMjYzNiBhbmQgIzUxMjggKHVucXVvdGUgVVJMIHBhdGhzCisgIGJlZm9yZSBtYXRjaGluZyB0aGVtKQorCitPdGhlciBpc3N1ZXM6CisKKy0gV2Vib2IgbW9kdWxlIGJ1bmRsZWQgaW4gQXBwIEVuZ2luZSBTREsgaWdub3JlcyBjaGFyc2V0IGFuZCB0cmFuc2ZlcgorICBlbmNvZGluZyBzZXR0aW5nIHNwZWNpZmllZCBpbiBhIGhlYWRlciBwYXJ0IG9mIGVhY2ggbXVsdGlwYXJ0IGZpZWxkLgorICBJc3N1ZXM6ICMyNzQ5CisKKy0gU2VuZGluZyBjb29raWVzIHVzaW5nIHdlYmFwcC4KKyAgSXNzdWVzOiAjNTAzMAorCistIFdoZW4gdGhlIGNvbnRlbnQtdHlwZSBpcyAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyBhbmQgUE9TVCBkYXRhCisgIGlzIGVtcHR5IHRoZSBjb250ZW50LXR5cGUgaXMgZHJvcHBlZCBieSBHb29nbGUgYXBwZW5naW5lLgorICBJc3N1ZXM6ICMzNDI2OyAqKndvcmtzIGluIHdlYmFwcC93ZWJhcHAyKioKKworLSBVbmFibGUgdG8gcmVhZCBQT1NUIHZhcmlhYmxlcyBPTkNFIHNlbGYucmVxdWVzdC5ib2R5IGlzIHJlYWQKKyAgSXNzdWVzOiAjNTExOCAqKmNhbid0IHJlcHJvZHVjZSBpbiB3ZWJhcHAsIHdvcmtzIGluIHdlYmFwcDIqKgorCisKK01vcmUgaXNzdWVzCistLS0tLS0tLS0tLQoraHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZWFwcGVuZ2luZS9pc3N1ZXMvbGlzdD9jYW49MiZxPXdlYm9iCitodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZ29vZ2xlYXBwZW5naW5lL2lzc3Vlcy9saXN0P2Nhbj0yJnE9Y29tcG9uZW50JTNERnJhbWV3b3JrcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9NYWtlZmlsZSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDcyNWRkOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvTWFrZWZpbGUKQEAgLTAsMCArMSwxMzAgQEAKKyMgTWFrZWZpbGUgZm9yIFNwaGlueCBkb2N1bWVudGF0aW9uCisjCisKKyMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KK1NQSElOWE9QVFMgICAgPQorU1BISU5YQlVJTEQgICA9IHNwaGlueC1idWlsZAorUEFQRVIgICAgICAgICA9CitCVUlMRERJUiAgICAgID0gX2J1aWxkCisKKyMgSW50ZXJuYWwgdmFyaWFibGVzLgorUEFQRVJPUFRfYTQgICAgID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1hNAorUEFQRVJPUFRfbGV0dGVyID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKK0FMTFNQSElOWE9QVFMgICA9IC1kICQoQlVJTERESVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgorCisuUEhPTlk6IGhlbHAgY2xlYW4gaHRtbCBkaXJodG1sIHNpbmdsZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAgcXRoZWxwIGRldmhlbHAgZXB1YiBsYXRleCBsYXRleHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtjaGVjayBkb2N0ZXN0CisKK2hlbHA6CisJQGVjaG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+JyB3aGVyZSA8dGFyZ2V0PiBpcyBvbmUgb2YiCisJQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5kYWxvbmUgSFRNTCBmaWxlcyIKKwlAZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGluIGRpcmVjdG9yaWVzIgorCUBlY2hvICIgIHNpbmdsZWh0bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUiCisJQGVjaG8gIiAgcGlja2xlICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcyIKKwlAZWNobyAiICBqc29uICAgICAgIHRvIG1ha2UgSlNPTiBmaWxlcyIKKwlAZWNobyAiICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVwdWIiCisJQGVjaG8gIiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVzLCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQQVBFUj1sZXR0ZXIiCisJQGVjaG8gIiAgbGF0ZXhwZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4IgorCUBlY2hvICIgIHRleHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzIgorCUBlY2hvICIgIG1hbiAgICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMiCisJQGVjaG8gIiAgY2hhbmdlcyAgICB0byBtYWtlIGFuIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VkL2FkZGVkL2RlcHJlY2F0ZWQgaXRlbXMiCisJQGVjaG8gIiAgbGlua2NoZWNrICB0byBjaGVjayBhbGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0eSIKKwlAZWNobyAiICBkb2N0ZXN0ICAgIHRvIHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gKGlmIGVuYWJsZWQpIgorCitjbGVhbjoKKwktcm0gLXJmICQoQlVJTERESVIpLyoKKworaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvaHRtbC4iCisKK2Rpcmh0bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgZGlyaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2Rpcmh0bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2Rpcmh0bWwuIgorCitzaW5nbGVodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9zaW5nbGVodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2UgaXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRtbC4iCisKK3BpY2tsZToKKwkkKFNQSElOWEJVSUxEKSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9waWNrbGUKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgcGlja2xlIGZpbGVzLiIKKworanNvbjoKKwkkKFNQSElOWEJVSUxEKSAtYiBqc29uICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvanNvbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLiIKKworaHRtbGhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1saGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIiBcCisJICAgICAgIi5oaHAgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL2h0bWxoZWxwLiIKKworcXRoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIHF0aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSIgXAorCSAgICAgICIucWhjcCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvcXRoZWxwLCBsaWtlIHRoaXM6IgorCUBlY2hvICIjIHFjb2xsZWN0aW9uZ2VuZXJhdG9yICQoQlVJTERESVIpL3F0aGVscC93ZWJhcHAyLnFoY3AiCisJQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgYXNzaXN0YW50IC1jb2xsZWN0aW9uRmlsZSAkKEJVSUxERElSKS9xdGhlbHAvd2ViYXBwMi5xaGMiCisKK2RldmhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RldmhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4iCisJQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgbWtkaXIgLXAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL3dlYmFwcDIiCisJQGVjaG8gIiMgbG4gLXMgJChCVUlMRERJUikvZGV2aGVscCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvd2ViYXBwMiIKKwlAZWNobyAiIyBkZXZoZWxwIgorCitlcHViOgorCSQoU1BISU5YQlVJTEQpIC1iIGVwdWIgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9lcHViCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlMRERJUikvZXB1Yi4iCisKK2xhdGV4OgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisJQGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgiIFwKKwkgICAgICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5KS4iCisKK2xhdGV4cGRmOgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJvdWdoIHBkZmxhdGV4Li4uIgorCW1ha2UgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgorCUBlY2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgorCit0ZXh0OgorCSQoU1BISU5YQlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS90ZXh0CisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSB0ZXh0IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXh0LiIKKworbWFuOgorCSQoU1BISU5YQlVJTEQpIC1iIG1hbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL21hbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9tYW4uIgorCitjaGFuZ2VzOgorCSQoU1BISU5YQlVJTEQpIC1iIGNoYW5nZXMgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9jaGFuZ2VzCisJQGVjaG8KKwlAZWNobyAiVGhlIG92ZXJ2aWV3IGZpbGUgaXMgaW4gJChCVUlMRERJUikvY2hhbmdlcy4iCisKK2xpbmtjaGVjazoKKwkkKFNQSElOWEJVSUxEKSAtYiBsaW5rY2hlY2sgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9saW5rY2hlY2sKKwlAZWNobworCUBlY2hvICJMaW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3JzIGluIHRoZSBhYm92ZSBvdXRwdXQgIiBcCisJICAgICAgIm9yIGluICQoQlVJTERESVIpL2xpbmtjaGVjay9vdXRwdXQudHh0LiIKKworZG9jdGVzdDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkb2N0ZXN0ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZG9jdGVzdAorCUBlY2hvICJUZXN0aW5nIG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSAiIFwKKwkgICAgICAicmVzdWx0cyBpbiAkKEJVSUxERElSKS9kb2N0ZXN0L291dHB1dC50eHQuIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fc3RhdGljL1JFQURNRSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3N0YXRpYy9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI4YTNhNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3N0YXRpYy9SRUFETUUKQEAgLTAsMCArMSBAQAorVGhpcyBpcyB0aGUgZGlyZWN0b3J5IHVzZWQgZm9yIGN1c3RvbSBzdGF0aWMgZmlsZXMuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL19zdGF0aWMvd2ViYXBwMl9ibHVlLnBuZyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3N0YXRpYy93ZWJhcHAyX2JsdWUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3MTliZWUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL19zdGF0aWMvd2ViYXBwMl9ibHVlLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL19zdGF0aWMvd2ViYXBwMl9ibHVlX3NtYWxsLnBuZyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3N0YXRpYy93ZWJhcHAyX2JsdWVfc21hbGwucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0NmEzZDgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL19zdGF0aWMvd2ViYXBwMl9ibHVlX3NtYWxsLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL19zdGF0aWMvd2ViYXBwMl9ibHVlX3RpbnkucG5nIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fc3RhdGljL3dlYmFwcDJfYmx1ZV90aW55LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDNjYzE2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fc3RhdGljL3dlYmFwcDJfYmx1ZV90aW55LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL190ZW1wbGF0ZXMvUkVBRE1FIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fdGVtcGxhdGVzL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjhhM2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fdGVtcGxhdGVzL1JFQURNRQpAQCAtMCwwICsxIEBACitUaGlzIGlzIHRoZSBkaXJlY3RvcnkgdXNlZCBmb3IgY3VzdG9tIHRlbXBsYXRlcy4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL2xheW91dC5odG1sIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fdGhlbWVzL3dlYmFwcDIvbGF5b3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdhZTU3ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL2xheW91dC5odG1sCkBAIC0wLDAgKzEsMjI0IEBACis8IURPQ1RZUEUgaHRtbD4KKworeyUtIHNldCByZW5kZXJfc2lkZWJhciA9IChub3QgZW1iZWRkZWQpIGFuZCAobm90IHRoZW1lX25vc2lkZWJhcnx0b2Jvb2wpIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgIChzaWRlYmFycyAhPSBbXSkgJX0KK3slLSBzZXQgdXJsX3Jvb3QgPSBwYXRodG8oJycsIDEpICV9Cit7JS0gaWYgdXJsX3Jvb3QgPT0gJyMnICV9eyUgc2V0IHVybF9yb290ID0gJycgJX17JSBlbmRpZiAlfQorCit7JS0gbWFjcm8gcmVsYmFyKGJvdHRvbT1GYWxzZSkgJX0KKyAgICA8ZGl2IGNsYXNzPSJyZWxhdGVkeyUgaWYgYm90dG9tICV9IHJlbGF0ZWQtYm90dG9teyUgZW5kaWYgJX0iPgorICAgICAgPGgzPnt7IF8oJ05hdmlnYXRpb24nKSB9fTwvaDM+CisgICAgICA8dWw+CisgICAgICAgIHslLSBibG9jayByb290cmVsbGluayAlfQorICAgICAgICA8bGk+PGEgaHJlZj0ie3sgcGF0aHRvKG1hc3Rlcl9kb2MpIH19Ij57eyBzaG9ydHRpdGxlfGUgfX08L2E+PC9saT4KKyAgICAgICAgeyUtIGVuZGJsb2NrICV9CisgICAgICAgIHslLSBmb3IgcmVsbGluayBpbiByZWxsaW5rcyAlfQorICAgICAgICA8bGk+CisgICAgICAgICAgPGEgaHJlZj0ie3sgcGF0aHRvKHJlbGxpbmtbMF0pIH19IiB0aXRsZT0ie3sgcmVsbGlua1sxXXxzdHJpcHRhZ3N8ZSB9fSIKKyAgICAgICAgICAgICB7eyBhY2Nlc3NrZXkocmVsbGlua1syXSkgfX0+e3sgcmVsbGlua1szXSB9fTwvYT4KKyAgICAgICAgICB7JS0gaWYgbm90IGxvb3AuZmlyc3QgJX17JSBlbmRpZiAlfQorICAgICAgICA8L2xpPgorICAgICAgICB7JS0gZW5kZm9yICV9CisgICAgICAgIHslLSBmb3IgcGFyZW50IGluIHBhcmVudHMgJX0KKyAgICAgICAgICA8bGk+PGEgaHJlZj0ie3sgcGFyZW50Lmxpbmt8ZSB9fSIgeyUgaWYgbG9vcC5sYXN0ICV9e3sgYWNjZXNza2V5KCJVIikgfX17JSBlbmRpZiAlfT57eyBwYXJlbnQudGl0bGUgfX08L2E+PC9saT4KKyAgICAgICAgeyUtIGVuZGZvciAlfQorICAgICAgICB7JS0gYmxvY2sgcmVsYmFyaXRlbXMgJX0geyUgZW5kYmxvY2sgJX0KKyAgICAgIDwvdWw+CisgICAgICA8ZGl2IGNsYXNzPSJwbHVzb25lIj48ZzpwbHVzb25lIGNvdW50PSJmYWxzZSIgc2l6ZT0ic21hbGwiPjwvZzpwbHVzb25lPjwvZGl2PgorICAgIDwvZGl2PgoreyUtIGVuZG1hY3JvICV9CisKK3slLSBtYWNybyBzaWRlYmFyKCkgJX0KKyAgICAgIHslLSBpZiByZW5kZXJfc2lkZWJhciAlfQorICAgICAgPGRpdiBjbGFzcz0ic3BoaW54c2lkZWJhciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNwaGlueHNpZGViYXJ3cmFwcGVyIj4KKyAgICAgICAgICB7JS0gaWYgc2lkZWJhcnMgIT0gTm9uZSAlfQorICAgICAgICAgICAgeyMtIG5ldyBzdHlsZSBzaWRlYmFyOiBleHBsaWNpdGx5IGluY2x1ZGUvZXhjbHVkZSB0ZW1wbGF0ZXMgI30KKyAgICAgICAgICAgIHslLSBmb3Igc2lkZWJhcnRlbXBsYXRlIGluIHNpZGViYXJzICV9CisgICAgICAgICAgICB7JS0gaW5jbHVkZSBzaWRlYmFydGVtcGxhdGUgJX0KKyAgICAgICAgICAgIHslLSBlbmRmb3IgJX0KKyAgICAgICAgICB7JS0gZWxzZSAlfQorICAgICAgICAgICAgeyMtIG9sZCBzdHlsZSBzaWRlYmFyczogdXNpbmcgYmxvY2tzIC0tIHNob3VsZCBiZSBkZXByZWNhdGVkICN9CisgICAgICAgICAgICB7JS0gYmxvY2sgc2lkZWJhcnRvYyAlfQorICAgICAgICAgICAgeyUtIGluY2x1ZGUgImxvY2FsdG9jLmh0bWwiICV9CisgICAgICAgICAgICB7JS0gZW5kYmxvY2sgJX0KKyAgICAgICAgICAgIHslLSBibG9jayBzaWRlYmFycmVsICV9CisgICAgICAgICAgICB7JS0gaW5jbHVkZSAicmVsYXRpb25zLmh0bWwiICV9CisgICAgICAgICAgICB7JS0gZW5kYmxvY2sgJX0KKyAgICAgICAgICAgIHslLSBibG9jayBzaWRlYmFyc291cmNlbGluayAlfQorICAgICAgICAgICAgeyUtIGluY2x1ZGUgInNvdXJjZWxpbmsuaHRtbCIgJX0KKyAgICAgICAgICAgIHslLSBlbmRibG9jayAlfQorICAgICAgICAgICAgeyUtIGlmIGN1c3RvbXNpZGViYXIgJX0KKyAgICAgICAgICAgIHslLSBpbmNsdWRlIGN1c3RvbXNpZGViYXIgJX0KKyAgICAgICAgICAgIHslLSBlbmRpZiAlfQorICAgICAgICAgIHslLSBlbmRpZiAlfQorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgICAgeyUtIGVuZGlmICV9Cit7JS0gZW5kbWFjcm8gLSV9CisKK3slLSBtYWNybyBzZWFjaGJveCgpICV9CisgIHslLSBpZiBwYWdlbmFtZSAhPSAic2VhcmNoIiAlfQorICAgIDxkaXYgaWQ9InNlYXJjaGJveCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgorICAgICAgICA8Zm9ybSBjbGFzcz0ic2VhcmNoIiBhY3Rpb249Int7IHBhdGh0bygnc2VhcmNoJykgfX0iIG1ldGhvZD0iZ2V0Ij4KKyAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icSIgc2l6ZT0iMTgiIHN0eWxlPSJ3aWR0aDozNDVweCIvPgorICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJ7eyBfKCdTZWFyY2gnKSB9fSIgLz4KKyAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjaGVja19rZXl3b3JkcyIgdmFsdWU9InllcyIgLz4KKyAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhcmVhIiB2YWx1ZT0iZGVmYXVsdCIgLz4KKyAgICAgICAgPC9mb3JtPgorICAgICAgICA8cCBjbGFzcz0ic2VhcmNodGlwIj4KKyAgICAgICAgZS5nLiAicmVxdWVzdCIgb3IgInJvdXRpbmciCisgICAgICAgIDwvcD4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JCgnI3NlYXJjaGJveCcpLnNob3coMCk7PC9zY3JpcHQ+CisgIHslLSBlbmRpZiAlfQoreyUtIGVuZG1hY3JvIC0lfQorCis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9e3sgZW5jb2RpbmcgfX0iIC8+CisgICAge3sgbWV0YXRhZ3MgfX0KKyAgICB7JS0gaWYgbm90IGVtYmVkZGVkIGFuZCBkb2NzdGl0bGUgJX0KKyAgICAgIHslLSBzZXQgdGl0bGVzdWZmaXggPSAiICZtZGFzaDsgInxzYWZlICsgZG9jc3RpdGxlfGUgJX0KKyAgICB7JS0gZWxzZSAlfQorICAgICAgeyUtIHNldCB0aXRsZXN1ZmZpeCA9ICIiICV9CisgICAgeyUtIGVuZGlmICV9CisgICAgeyUtIGJsb2NrIGh0bWx0aXRsZSAlfQorICAgIDx0aXRsZT57eyB0aXRsZXxzdHJpcHRhZ3N8ZSB9fXt7IHRpdGxlc3VmZml4IH19PC90aXRsZT4KKyAgICB7JS0gZW5kYmxvY2sgJX0KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Int7IHBhdGh0bygnX3N0YXRpYy8nICsgc3R5bGUsIDEpIH19IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Int7IHBhdGh0bygnX3N0YXRpYy9weWdtZW50cy5jc3MnLCAxKSB9fSIgdHlwZT0idGV4dC9jc3MiIC8+CisgICAgeyUtIGZvciBjc3NmaWxlIGluIGNzc19maWxlcyAlfQorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ie3sgcGF0aHRvKGNzc2ZpbGUsIDEpIH19IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKyAgICB7JS0gZW5kZm9yICV9CisgICAgeyUtIGlmIG5vdCBlbWJlZGRlZCAlfQorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIHZhciBET0NVTUVOVEFUSU9OX09QVElPTlMgPSB7CisgICAgICAgIFVSTF9ST09UOiAgICAne3sgdXJsX3Jvb3QgfX0nLAorICAgICAgICBWRVJTSU9OOiAgICAgJ3t7IHJlbGVhc2V8ZSB9fScsCisgICAgICAgIENPTExBUFNFX0lOREVYOiBmYWxzZSwKKyAgICAgICAgRklMRV9TVUZGSVg6ICd7eyAnJyBpZiBub19zZWFyY2hfc3VmZml4IGVsc2UgZmlsZV9zdWZmaXggfX0nLAorICAgICAgICBIQVNfU09VUkNFOiAge3sgaGFzX3NvdXJjZXxsb3dlciB9fQorICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKyAgICB7JS0gZm9yIHNjcmlwdGZpbGUgaW4gc2NyaXB0X2ZpbGVzICV9CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ie3sgcGF0aHRvKHNjcmlwdGZpbGUsIDEpIH19Ij48L3NjcmlwdD4KKyAgICB7JS0gZW5kZm9yICV9CisgICAgeyUtIGlmIHVzZV9vcGVuc2VhcmNoICV9CisgICAgPGxpbmsgcmVsPSJzZWFyY2giIHR5cGU9ImFwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwiCisgICAgICAgICAgdGl0bGU9InslIHRyYW5zIGRvY3N0aXRsZT1kb2NzdGl0bGV8ZSAlfVNlYXJjaCB3aXRoaW4ge3sgZG9jc3RpdGxlIH19eyUgZW5kdHJhbnMgJX0iCisgICAgICAgICAgaHJlZj0ie3sgcGF0aHRvKCdfc3RhdGljL29wZW5zZWFyY2gueG1sJywgMSkgfX0iLz4KKyAgICB7JS0gZW5kaWYgJX0KKyAgICB7JS0gaWYgZmF2aWNvbiAlfQorICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0ie3sgcGF0aHRvKCdfc3RhdGljLycgKyBmYXZpY29uLCAxKSB9fSIvPgorICAgIHslLSBlbmRpZiAlfQorICAgIHslLSBlbmRpZiAlfQoreyUtIGJsb2NrIGxpbmt0YWdzICV9CisgICAgeyUtIGlmIGhhc2RvYygnYWJvdXQnKSAlfQorICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0ie3sgXygnQWJvdXQgdGhlc2UgZG9jdW1lbnRzJykgfX0iIGhyZWY9Int7IHBhdGh0bygnYWJvdXQnKSB9fSIgLz4KKyAgICB7JS0gZW5kaWYgJX0KKyAgICB7JS0gaWYgaGFzZG9jKCdnZW5pbmRleCcpICV9CisgICAgPGxpbmsgcmVsPSJpbmRleCIgdGl0bGU9Int7IF8oJ0luZGV4JykgfX0iIGhyZWY9Int7IHBhdGh0bygnZ2VuaW5kZXgnKSB9fSIgLz4KKyAgICB7JS0gZW5kaWYgJX0KKyAgICB7JS0gaWYgaGFzZG9jKCdzZWFyY2gnKSAlfQorICAgIDxsaW5rIHJlbD0ic2VhcmNoIiB0aXRsZT0ie3sgXygnU2VhcmNoJykgfX0iIGhyZWY9Int7IHBhdGh0bygnc2VhcmNoJykgfX0iIC8+CisgICAgeyUtIGVuZGlmICV9CisgICAgeyUtIGlmIGhhc2RvYygnY29weXJpZ2h0JykgJX0KKyAgICA8bGluayByZWw9ImNvcHlyaWdodCIgdGl0bGU9Int7IF8oJ0NvcHlyaWdodCcpIH19IiBocmVmPSJ7eyBwYXRodG8oJ2NvcHlyaWdodCcpIH19IiAvPgorICAgIHslLSBlbmRpZiAlfQorICAgIDxsaW5rIHJlbD0idG9wIiB0aXRsZT0ie3sgZG9jc3RpdGxlfGUgfX0iIGhyZWY9Int7IHBhdGh0bygnaW5kZXgnKSB9fSIgLz4KKyAgICB7JS0gaWYgcGFyZW50cyAlfQorICAgIDxsaW5rIHJlbD0idXAiIHRpdGxlPSJ7eyBwYXJlbnRzWy0xXS50aXRsZXxzdHJpcHRhZ3N8ZSB9fSIgaHJlZj0ie3sgcGFyZW50c1stMV0ubGlua3xlIH19IiAvPgorICAgIHslLSBlbmRpZiAlfQorICAgIHslLSBpZiBuZXh0ICV9CisgICAgPGxpbmsgcmVsPSJuZXh0IiB0aXRsZT0ie3sgbmV4dC50aXRsZXxzdHJpcHRhZ3N8ZSB9fSIgaHJlZj0ie3sgbmV4dC5saW5rfGUgfX0iIC8+CisgICAgeyUtIGVuZGlmICV9CisgICAgeyUtIGlmIHByZXYgJX0KKyAgICA8bGluayByZWw9InByZXYiIHRpdGxlPSJ7eyBwcmV2LnRpdGxlfHN0cmlwdGFnc3xlIH19IiBocmVmPSJ7eyBwcmV2Lmxpbmt8ZSB9fSIgLz4KKyAgICB7JS0gZW5kaWYgJX0KK3slLSBlbmRibG9jayAlfQoreyUtIGJsb2NrIGV4dHJhaGVhZCAlfSB7JSBlbmRibG9jayAlfQorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2FwaXMuZ29vZ2xlLmNvbS9qcy9wbHVzb25lLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KK3slLSBibG9jayBoZWFkZXIgJX0KKyAgPGRpdiBpZD0iaGVhZGVyIj4KKyAgeyUtIGJsb2NrIGhlYWRlcmxvZ28gJX0KKyAgeyUtIGlmIGxvZ28gJX0KKyAgICA8cCBjbGFzcz0ibG9nbyI+PGEgaHJlZj0ie3sgcGF0aHRvKG1hc3Rlcl9kb2MpIH19Ij4KKyAgICAgIDxpbWcgY2xhc3M9ImxvZ28iIHNyYz0ie3sgcGF0aHRvKCdfc3RhdGljLycgKyBsb2dvLCAxKSB9fSJ7JSBpZiB0aGVtZV9sb2dvX3dpZHRoICV9IHdpZHRoPSJ7eyB0aGVtZV9sb2dvX3dpZHRoIH19InslIGVuZGlmICV9eyUgaWYgdGhlbWVfbG9nb19oZWlnaHQgJX0gaGVpZ2h0PSJ7eyB0aGVtZV9sb2dvX2hlaWdodCB9fSJ7JSBlbmRpZiAlfSBhbHQ9Int7IHByb2plY3R8ZSB9fSIgdGl0bGU9Int7IHByb2plY3R8ZSB9fSIgLz4KKyAgICA8L2E+PC9wPgorICB7JS0gZW5kaWYgJX0KKyAgeyUtIGVuZGJsb2NrICV9CisgIHt7IHNlYWNoYm94KCkgfX0KKyAgPC9kaXY+Cit7JSBlbmRibG9jayAlfQorCit7JS0gYmxvY2sgcmVsYmFyMSAlfXt7IHJlbGJhcigpIH19eyUgZW5kYmxvY2sgJX0KKworeyUtIGJsb2NrIGNvbnRlbnQgJX0KKyAgeyUtIGJsb2NrIHNpZGViYXIxICV9IHsjIHBvc3NpYmxlIGxvY2F0aW9uIGZvciBzaWRlYmFyICN9IHslIGVuZGJsb2NrICV9CisKKyAgICA8ZGl2IGNsYXNzPSJkb2N1bWVudCI+CisgIHslLSBibG9jayBkb2N1bWVudCAlfQorICAgICAgPGRpdiBjbGFzcz0iZG9jdW1lbnR3cmFwcGVyIj4KKyAgICAgIHslLSBpZiByZW5kZXJfc2lkZWJhciAlfQorICAgICAgICA8ZGl2IGNsYXNzPSJib2R5d3JhcHBlciI+CisgICAgICB7JS0gZW5kaWYgJX0KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Ij4KKyAgICAgICAgICAgIHslIGJsb2NrIGJvZHkgJX0geyUgZW5kYmxvY2sgJX0KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgIHslLSBpZiByZW5kZXJfc2lkZWJhciAlfQorICAgICAgICA8L2Rpdj4KKyAgICAgIHslLSBlbmRpZiAlfQorICAgICAgPC9kaXY+CisgIHslLSBlbmRibG9jayAlfQorCisgIHslLSBibG9jayBzaWRlYmFyMiAlfXt7IHNpZGViYXIoKSB9fXslIGVuZGJsb2NrICV9CisgICAgICA8ZGl2IGNsYXNzPSJjbGVhcmVyIj48L2Rpdj4KKyAgICA8L2Rpdj4KK3slLSBlbmRibG9jayAlfQorCit7JS0gYmxvY2sgcmVsYmFyMiAlfXt7IHJlbGJhcihib3R0b209VHJ1ZSkgfX17JSBlbmRibG9jayAlfQorCit7JS0gYmxvY2sgZm9vdGVyICV9CisgICAgPGRpdiBjbGFzcz0iZm9vdGVyIj4KKyAgICB7JS0gaWYgc2hvd19jb3B5cmlnaHQgJX0KKyAgICAgIHslLSBpZiBoYXNkb2MoJ2NvcHlyaWdodCcpICV9CisgICAgICAgIHslIHRyYW5zIHBhdGg9cGF0aHRvKCdjb3B5cmlnaHQnKSwgY29weXJpZ2h0PWNvcHlyaWdodHxlICV9JmNvcHk7IDxhIGhyZWY9Int7IHBhdGggfX0iPkNvcHlyaWdodDwvYT4ge3sgY29weXJpZ2h0IH19LnslIGVuZHRyYW5zICV9CisgICAgICB7JS0gZWxzZSAlfQorICAgICAgICB7JSB0cmFucyBjb3B5cmlnaHQ9Y29weXJpZ2h0fGUgJX0mY29weTsgQ29weXJpZ2h0IHt7IGNvcHlyaWdodCB9fS57JSBlbmR0cmFucyAlfQorICAgICAgeyUtIGVuZGlmICV9CisgICAgeyUtIGVuZGlmICV9CisgICAgeyUtIGlmIGxhc3RfdXBkYXRlZCAlfQorICAgICAgeyUgdHJhbnMgbGFzdF91cGRhdGVkPWxhc3RfdXBkYXRlZHxlICV9TGFzdCB1cGRhdGVkIG9uIHt7IGxhc3RfdXBkYXRlZCB9fS57JSBlbmR0cmFucyAlfQorICAgIHslLSBlbmRpZiAlfQorICAgIHslLSBpZiBzaG93X3NwaGlueCAlfQorICAgICAgeyUgdHJhbnMgc3BoaW54X3ZlcnNpb249c3BoaW54X3ZlcnNpb258ZSAlfUNyZWF0ZWQgdXNpbmcgPGEgaHJlZj0iaHR0cDovL3NwaGlueC5wb2Nvby5vcmcvIj5TcGhpbng8L2E+IHt7IHNwaGlueF92ZXJzaW9uIH19LnslIGVuZHRyYW5zICV9CisgICAgeyUtIGVuZGlmICV9CisgICAgPC9kaXY+Cit7JS0gZW5kYmxvY2sgJX0KK3slIGlmIHRoZW1lX2FuYWx5dGljc19jb2RlICV9Cis8IS0tIGFuYWx5dGljcyAtLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgdmFyIF9nYXEgPSBfZ2FxIHx8IFtdOworICBfZ2FxLnB1c2goWydfc2V0QWNjb3VudCcsICd7eyB0aGVtZV9hbmFseXRpY3NfY29kZSB9fSddKTsKKyAgX2dhcS5wdXNoKFsnX3RyYWNrUGFnZXZpZXcnXSk7CisKKyAgKGZ1bmN0aW9uKCkgeworICAgIHZhciBnYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyBnYS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IGdhLmFzeW5jID0gdHJ1ZTsKKyAgICBnYS5zcmMgPSAoJ2h0dHBzOicgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgPyAnaHR0cHM6Ly9zc2wnIDogJ2h0dHA6Ly93d3cnKSArICcuZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnOworICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOyBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGdhLCBzKTsKKyAgfSkoKTsKKzwvc2NyaXB0PgoreyUgZW5kaWYgJX0KKzwhLS0gcGx1c29uZSAtLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgKGZ1bmN0aW9uKCkgeworICAgIHZhciBwbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyBwby50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHBvLmFzeW5jID0gdHJ1ZTsKKyAgICBwby5zcmMgPSAnaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGx1c29uZS5qcyc7CisgICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocG8sIHMpOworICB9KSgpOworPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL3B5Z2FwcDIucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL190aGVtZXMvd2ViYXBwMi9weWdhcHAyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NWQzYTRlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fdGhlbWVzL3dlYmFwcDIvcHlnYXBwMi5weQpAQCAtMCwwICsxLDU3IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBweWdtZW50cy5zdHlsZSBpbXBvcnQgU3R5bGUKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0ICoKKworCitjbGFzcyBweWdhcHAyKFN0eWxlKToKKyAgICBiYWNrZ3JvdW5kX2NvbG9yID0gIiNGQUZBRkEiCisgICAgZGVmYXVsdF9zdHlsZSA9ICIiCisKKyAgICBzdHlsZXMgPSB7CisgICAgICAgIFdoaXRlc3BhY2U6ICAgICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgI0ZGRiIsCisgICAgICAgIENvbW1lbnQ6ICAgICAgICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzgwMCIsCisgICAgICAgIENvbW1lbnQuUHJlcHJvYzogICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzgwMCIsCisgICAgICAgIENvbW1lbnQuU3BlY2lhbDogICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgYmc6IzgwMCIsCisKKyAgICAgICAgS2V5d29yZDogICAgICAgICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDA4IiwKKyAgICAgICAgS2V5d29yZC5Qc2V1ZG86ICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDA4IiwKKyAgICAgICAgS2V5d29yZC5UeXBlOiAgICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjOTAyMDAwIiwKKworICAgICAgICBPcGVyYXRvcjogICAgICAgICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICM2NjAiLAorICAgICAgICBPcGVyYXRvci5Xb3JkOiAgICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICM2NjAiLAorCisgICAgICAgIE5hbWUuQnVpbHRpbjogICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwOCIsCisgICAgICAgIE5hbWUuRnVuY3Rpb246ICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuQ2xhc3M6ICAgICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzYwNiIsCisgICAgICAgIE5hbWUuTmFtZXNwYWNlOiAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuRXhjZXB0aW9uOiAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuVmFyaWFibGU6ICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuQ29uc3RhbnQ6ICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuTGFiZWw6ICAgICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuRW50aXR5OiAgICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuQXR0cmlidXRlOiAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuVGFnOiAgICAgICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisgICAgICAgIE5hbWUuRGVjb3JhdG9yOiAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgIzAwMCIsCisKKyAgICAgICAgU3RyaW5nOiAgICAgICAgICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDgwIiwKKyAgICAgICAgU3RyaW5nLkRvYzogICAgICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDgwIiwKKyAgICAgICAgU3RyaW5nLkludGVycG9sOiAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDgwIiwKKyAgICAgICAgU3RyaW5nLkVzY2FwZTogICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDgwIiwKKyAgICAgICAgU3RyaW5nLlJlZ2V4OiAgICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDgwIiwKKyAgICAgICAgU3RyaW5nLlN5bWJvbDogICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjNjYwIiwKKyAgICAgICAgU3RyaW5nLk90aGVyOiAgICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDgwIiwKKyAgICAgICAgTnVtYmVyOiAgICAgICAgICAgICAgICAgICAgIm5vYm9sZCBub2l0YWxpYyAjMDgwIiwKKworICAgICAgICBHZW5lcmljLkhlYWRpbmc6ICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLlN1YmhlYWRpbmc6ICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLkRlbGV0ZWQ6ICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLkluc2VydGVkOiAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLkVycm9yOiAgICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLkVtcGg6ICAgICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLlN0cm9uZzogICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLlByb21wdDogICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLk91dHB1dDogICAgICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorICAgICAgICBHZW5lcmljLlRyYWNlYmFjazogICAgICAgICAibm9ib2xkIG5vaXRhbGljICMwMDAiLAorCisgICAgICAgIEVycm9yOiAgICAgICAgICAgICAgICAgICAgICJub2JvbGQgbm9pdGFsaWMgYm9yZGVyOiNGRjAwMDAiCisgICAgfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fdGhlbWVzL3dlYmFwcDIvc3RhdGljL2djb2RlLmNzcyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL3N0YXRpYy9nY29kZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJlYmQyOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL3N0YXRpYy9nY29kZS5jc3MKQEAgLTAsMCArMSwxOTY1IEBACisuZy1kb2Mgeword2lkdGg6MTAwJTsKK3RleHQtYWxpZ246bGVmdDsKK30KKworOmZpcnN0LWNoaWxkK2h0bWwgLmctc2VjdGlvbiB7CitkaXNwbGF5OmJsb2NrOworfQorCisqIGh0bWwgLmctc2VjdGlvbiB7CitvdmVyZmxvdzpoaWRkZW47Cit9CisKKy5nLWRvYy0xMDI0IHsKK3dpZHRoOjcxLjMxM2VtOworbWluLXdpZHRoOjk1MHB4OwordGV4dC1hbGlnbjpsZWZ0OworbWFyZ2luOjAgYXV0bzsKK30KKworLmctZG9jLTgwMCB7Cit3aWR0aDo1Ni4zZW07CittaW4td2lkdGg6NzUwcHg7Cit0ZXh0LWFsaWduOmxlZnQ7CittYXJnaW46MCBhdXRvOworfQorCisuZy1zZWN0aW9uLC5nLXVuaXQgeworem9vbToxOworfQorCisuZy1zcGxpdCAuZy11bml0IHsKK3RleHQtYWxpZ246cmlnaHQ7Cit9CisKKy5nLXNwbGl0IC5nLWZpcnN0IHsKK3RleHQtYWxpZ246bGVmdDsKK30KKworLmctdHBsLTE2MCAuZy11bml0LC5nLXVuaXQgLmctdHBsLTE2MCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMTYwIC5nLXVuaXQgeword2lkdGg6YXV0bzsKK2Zsb2F0Om5vbmU7CittYXJnaW46MCAwIDAgMTYwcHg7Cit9CisKKy5nLXVuaXQgLmctdW5pdCAuZy10cGwtMTYwIC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTE2MCAuZy1maXJzdCwuZy10cGwtMTYwIC5nLWZpcnN0IHsKK3dpZHRoOjE2MHB4OworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCisuZy10cGwtMTYwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdHBsLTE2MC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTE2MC1hbHQgLmctdW5pdCB7Cit3aWR0aDphdXRvOworZmxvYXQ6bm9uZTsKK21hcmdpbjowIDE2MHB4IDAgMDsKK30KKworLmctdW5pdCAuZy11bml0IC5nLXRwbC0xNjAtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTE2MC1hbHQgLmctZmlyc3QsLmctdHBsLTE2MC1hbHQgLmctZmlyc3Qgeword2lkdGg6MTYwcHg7CitmbG9hdDpyaWdodDsKK21hcmdpbjowOworfQorCisuZy10cGwtMTgwIC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMTgwIC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0xODAgLmctdW5pdCB7Cit3aWR0aDphdXRvOworZmxvYXQ6bm9uZTsKK21hcmdpbjowIDAgMCAxODBweDsKK30KKworLmctdW5pdCAuZy11bml0IC5nLXRwbC0xODAgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMTgwIC5nLWZpcnN0LC5nLXRwbC0xODAgLmctZmlyc3Qgeword2lkdGg6MTgwcHg7CitmbG9hdDpsZWZ0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0xODAtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMTgwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMTgwLWFsdCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMTgwcHggMCAwOworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTE4MC1hbHQgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMTgwLWFsdCAuZy1maXJzdCwuZy10cGwtMTgwLWFsdCAuZy1maXJzdCB7Cit3aWR0aDoxODBweDsKK2Zsb2F0OnJpZ2h0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0yMDAgLmctdW5pdCwuZy11bml0IC5nLXRwbC0yMDAgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTIwMCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMCAwIDIwMHB4OworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTIwMCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0yMDAgLmctZmlyc3QsLmctdHBsLTIwMCAuZy1maXJzdCB7Cit3aWR0aDoyMDBweDsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTIyNSAuZy11bml0LC5nLXVuaXQgLmctdHBsLTIyNSAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjI1IC5nLXVuaXQgeword2lkdGg6YXV0bzsKK2Zsb2F0Om5vbmU7CittYXJnaW46MCAwIDAgMjI2cHg7Cit9CisKKy5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjI1IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTIyNSAuZy1maXJzdCwuZy10cGwtMjI1IC5nLWZpcnN0IHsKK3dpZHRoOjIyNnB4OworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCisuZy10cGwtMjUwIC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMjUwIC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0yNTAgLmctdW5pdCB7Cit3aWR0aDphdXRvOworZmxvYXQ6bm9uZTsKK21hcmdpbjowIDAgMCAyNTBweDsKK30KKworLmctdW5pdCAuZy11bml0IC5nLXRwbC0yNTAgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMjUwIC5nLWZpcnN0LC5nLXRwbC0yNTAgLmctZmlyc3Qgeword2lkdGg6MjUwcHg7CitmbG9hdDpsZWZ0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0yNTAtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMjUwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjUwLWFsdCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMjUwcHggMCAwOworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTI1MC1hbHQgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMjUwLWFsdCAuZy1maXJzdCwuZy10cGwtMjUwLWFsdCAuZy1maXJzdCB7Cit3aWR0aDoyNTBweDsKK2Zsb2F0OnJpZ2h0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0zMDAgLmctdW5pdCwuZy11bml0IC5nLXRwbC0zMDAgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTMwMCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMCAwIDMwMHB4OworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTMwMCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0zMDAgLmctZmlyc3QsLmctdHBsLTMwMCAuZy1maXJzdCB7Cit3aWR0aDozMDBweDsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTMwMC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXRwbC0zMDAtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0zMDAtYWx0IC5nLXVuaXQgeword2lkdGg6YXV0bzsKK2Zsb2F0Om5vbmU7CittYXJnaW46MCAzMDBweCAwIDA7Cit9CisKKy5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzAwLWFsdCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0zMDAtYWx0IC5nLWZpcnN0LC5nLXRwbC0zMDAtYWx0IC5nLWZpcnN0IHsKK3dpZHRoOjMwMHB4OworZmxvYXQ6cmlnaHQ7CittYXJnaW46MDsKK30KKworLmctdHBsLW5lc3Qgeword2lkdGg6YXV0bzsKK30KKworLmctdHBsLW5lc3QgLmctc2VjdGlvbiB7CitkaXNwbGF5OmlubGluZTsKK30KKworLmctdHBsLW5lc3QgLmctdW5pdCwuZy11bml0IC5nLXRwbC1uZXN0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC1uZXN0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLW5lc3QgLmctdW5pdCB7CitmbG9hdDpsZWZ0Oword2lkdGg6YXV0bzsKK21hcmdpbjowOworfQorCisuZy10cGwtbmVzdC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXRwbC1uZXN0LWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtbmVzdC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtbmVzdC1hbHQgLmctdW5pdCB7CitmbG9hdDpyaWdodDsKK3dpZHRoOmF1dG87CittYXJnaW46MDsKK30KKworLmF1dGhvcm5vdGUgeworZm9udC13ZWlnaHQ6NzAwOworY29sb3I6I0ZGNDUwMDsKK2ZvbnQtc3R5bGU6aXRhbGljOworfQorCisuZmNnLWZlYXR1cmUgLmZlZWRmbGFyZSB7CitkaXNwbGF5Om5vbmU7Cit9CisKKy5leHAtZmVhdCB7Citmb250LXNpemU6c21hbGxlcjsKK2ZvbnQtZmFtaWx5OmFyaWFsLHNhbnMtc2VyaWY7Citjb2xvcjojMDAwOworfQorCisubWVudURpdiB7CittYXJnaW4tdG9wOjJweDsKK3otaW5kZXg6MTAwMTsKK3dpZHRoOjE3NXB4OworYmFja2dyb3VuZDojZmZmOworb3ZlcmZsb3c6aGlkZGVuOworYm9yZGVyLWNvbG9yOiNjOWQ3ZjEgIzM2QyAjMzZDICNhMmJhZTc7Citib3JkZXItc3R5bGU6c29saWQ7Citib3JkZXItd2lkdGg6MXB4OworcGFkZGluZzowOworfQorCisubWVudURpdiAubWVudVRleHQgewordGV4dC1kZWNvcmF0aW9uOm5vbmU7CitiYWNrZ3JvdW5kOiNmZmY7CitwYWRkaW5nOjNweDsKK30KKworI21lbnVEaXYtbGFuZy1kcm9wZG93biB7Cit3aWR0aDoxMTVweCFpbXBvcnRhbnQ7Cit9CisKKyNtZW51SWNvbi1sYW5nLWRyb3Bkb3duIHsKK21hcmdpbi10b3A6MnB4OworfQorCisubWVudURpdiAubWVudUl0ZW0geworY29sb3I6IzAwQzsKK3RleHQtZGVjb3JhdGlvbjpub25lOworYmFja2dyb3VuZDojZmZmOworcGFkZGluZzozcHg7Cit9CisKKy5tZW51RGl2IC5tZW51SXRlbTpob3ZlciB7Citjb2xvcjojZmZmIWltcG9ydGFudDsKK2JhY2tncm91bmQ6IzM2QzsKK2N1cnNvcjpoYW5kOworfQorCisubWVudURpdiAuY2F0ZWdvcnlUaXRsZSB7CitwYWRkaW5nLWxlZnQ6MXB4OworfQorCisubWVudURpdiAubWVudUNhdGVnb3J5LC5tZW51RGl2IC5jYXRlZ29yeVRpdGxlIHsKK21hcmdpbi10b3A6NHB4OworfQorCisubWVudURpdiAubWVudVNlcGFyYXRvciB7Citib3JkZXI6MDsKK2JvcmRlci10b3A6MXB4IHNvbGlkICNjOWQ3ZjE7CittYXJnaW46MCAuNWVtOworfQorCisjZ2MtdHJhbnNsYXRlLWRpcmVjdGlvbiB7Citjb2xvcjojMDBDOworfQorCisjbGFuZy1kcm9wZG93biB7CitiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybCgvaW1hZ2VzL2dsb2JlMl9zbWFsbC5wbmcpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjsKK3BhZGRpbmctbGVmdDoxNHB4OworfQorCisjY3Mtc2VhcmNoYXJlYSBhLnVuc2VsZWN0YWJsZSB7CistbW96LXVzZXItc2VsZWN0Om5vbmU7CistdXNlci1zZWxlY3Q6bm9uZTsKK30KKworI2NzLXJlY29tbWVuZGVkIHsKK3RleHQtYWxpZ246bGVmdDsKK2JhY2tncm91bmQtY29sb3I6I2UzZWZmZTsKK2ZvbnQtc3R5bGU6aXRhbGljOworfQorCisjY3Mtc2VhcmNocmVzdWx0cyB7CittYXJnaW4tbGVmdDotLjNlbTsKK2JhY2tncm91bmQ6I2ZmZjsKK2xpbmUtaGVpZ2h0OjE0MCU7Citib3JkZXI6MXB4ICNjOWM5Yzkgc29saWQ7CitjdXJzb3I6cG9pbnRlcjsKK3Bvc2l0aW9uOmFic29sdXRlOworei1pbmRleDoyMDEwOworZGlzcGxheTpub25lOworfQorCisjY3Mtc2VhcmNocmVzdWx0cyBhIHsKK3RleHQtZGVjb3JhdGlvbjpub25lOworY29sb3I6IzAwMDsKK30KKworLmNzLXNlYXJjaHJlc3VsdCB7CitkaXNwbGF5OmJsb2NrOworcGFkZGluZzowOworfQorCitpbWcuY29sbGFwc2libGUtY29udHJvbCB7Cit3aWR0aDo5cHg7CitoZWlnaHQ6OXB4OworY3Vyc29yOnBvaW50ZXI7Cit2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CittYXJnaW46MXB4OworfQorCitpbWcuY29sbGFwc2libGUtY29udHJvbC5jb2xsYXBzaWJsZS1wbHVzIHsKK2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcGx1cy5naWYpOworfQorCitpbWcuY29sbGFwc2libGUtY29udHJvbC5jb2xsYXBzaWJsZS1wbHVzLmNvbGxhcHNpYmxlLWhvdmVyIHsKK2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcGx1c19ob3Zlci5naWYpOworfQorCitpbWcuY29sbGFwc2libGUtY29udHJvbC5jb2xsYXBzaWJsZS1taW51cyB7CitiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL21pbnVzLmdpZik7Cit9CisKK2ltZy5jb2xsYXBzaWJsZS1jb250cm9sLmNvbGxhcHNpYmxlLW1pbnVzLmNvbGxhcHNpYmxlLWhvdmVyIHsKK2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbWludXNfaG92ZXIuZ2lmKTsKK30KKworI2dvb2dsZWNvZGUtcHJvbW8geworYmFja2dyb3VuZDojZmZmOworYm9yZGVyOjFweCBzb2xpZCAjY2NjOworZm9udC1zaXplOjFlbTsKK3RleHQtYWxpZ246Y2VudGVyOworbWFyZ2luOi00NnB4IDJweCAyZW0gNjIwcHg7CitwYWRkaW5nOjVweCA4cHggOHB4OworfQorCisjZ29vZ2xlY29kZS1wcm9tbyBzdXAgeworY29sb3I6cmVkOworZm9udC13ZWlnaHQ6NDAwOworfQorCisuY29uZmlkZW50aWFsIHsKK2JhY2tncm91bmQtY29sb3I6I2Y2YmM1ZDsKK2ZvbnQtd2VpZ2h0OjcwMDsKK2ZvbnQtc2l6ZToxLjFlbTsKK3RleHQtYWxpZ246Y2VudGVyOworcGFkZGluZzouM2VtOworfQorCisjY29tbWVudFdpZGdldFRpdGxlIHsKK2JhY2tncm91bmQtY29sb3I6I2U1ZWNmOTsKK2JvcmRlci10b3A6MXB4IHNvbGlkICMzNmM7Cit9CisKKyNjb21tZW50d2lkZ2V0IHsKK21hcmdpbjoxZW0gMCAwOworfQorCisjY29tbWVudHdpZGdldCAuenpDb21tZW50VGhyZWFkR2FkZ2V0LCNjb21tZW50d2lkZ2V0IC56ekNvbW1lbnRMaXN0IHsKK2JhY2tncm91bmQ6bm9uZTsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCisjY29tbWVudHdpZGdldCAuY29tbWVudEhlYWRlciB7Citjb2xvcjojNjY2OworYm9yZGVyLXRvcDoxcHggc29saWQgI2M5ZDdmMTsKK21hcmdpbjozcHggMDsKK3BhZGRpbmc6MnB4OworfQorCisjY29tbWVudHdpZGdldCAuenpOdW1Vc2Vyc0ZvdW5kVGhpc0hlbHBmdWxBY3RpdmUgeworY29sb3I6IzAwMDsKK3BhZGRpbmc6MCAwIDAgMTNweDsKK30KKworI2NvbW1lbnR3aWRnZXQgLmNvbW1lbnRDb250ZW50IHsKK3doaXRlLXNwYWNlOnByZS13cmFwOworbWFyZ2luOjVweCAwOworcGFkZGluZzowOworfQorCisjY29tbWVudHdpZGdldCAuY29tbWVudEhlbHBmdWwsI2NvbW1lbnR3aWRnZXQgLmNvbW1lbnRTcGFtIHsKK2ZvbnQtc3R5bGU6aXRhbGljOworZm9udC1zaXplOjkwJTsKK21hcmdpbjowIDEzcHggMS4zZW0gMDsKK30KKworI2NvbW1lbnR3aWRnZXQgLmNvbW1lbnRIZWxwZnVsIHsKK2Zsb2F0OmxlZnQ7Cit9CisKKyNjb21tZW50d2lkZ2V0IC5jb21tZW50U3BhbSB7Citmb250LXdlaWdodDo3MDA7Cit9CisKKyNjb21tZW50d2lkZ2V0IC56elZvdGVBZmZpcm1hdGl2ZSwjY29tbWVudHdpZGdldCAuenpWb3RlTmVnYXRpdmUsI2NvbW1lbnR3aWRnZXQgLnp6UmVwb3J0U3BhbUxpbmsgeworY29sb3I6IzAwYzsKK2ZvbnQtc3R5bGU6bm9ybWFsOworY3Vyc29yOnBvaW50ZXI7Cit9CisKKyNjb21tZW50d2lkZ2V0IC56elZvdGVBZmZpcm1hdGl2ZTpob3ZlciwjY29tbWVudHdpZGdldCAuenpWb3RlTmVnYXRpdmU6aG92ZXIsI2NvbW1lbnR3aWRnZXQgLnp6UmVwb3J0U3BhbUxpbms6aG92ZXIgeworY29sb3I6IzAwMDsKK2ZvbnQtc3R5bGU6aXRhbGljOworfQorCisjY29tbWVudHdpZGdldCAuenpOaWNrbmFtZUdhZGdldE5vTGluaywjY29tbWVudHdpZGdldCAuenpUaXRsZUdhZGdldExpbmsgeworY29sb3I6IzAwMDsKK30KKworI2NvbW1lbnR3aWRnZXQgLnp6Tmlja25hbWVHYWRnZXROb0xpbmssI2NvbW1lbnR3aWRnZXQgLnp6Tmlja25hbWVHYWRnZXRMaW5rIHsKK2NvbG9yOiMwMDA7CitjdXJzb3I6bm9ybWFsOworZm9udC13ZWlnaHQ6NzAwOwordGV4dC1kZWNvcmF0aW9uOm5vbmU7Cit9CisKKyNjb21tZW50d2lkZ2V0IC56ekNvbW1lbnRUaHJlYWRTZXBhcmF0b3IsI2NvbW1lbnR3aWRnZXQgLnp6Q29kZUNvbW1lbnRUaHJlYWRTZXBhcmF0b3IgeworYm9yZGVyOm5vbmU7Cit9CisKKyNjb21tZW50d2lkZ2V0IC56elRleHRFZGl0b3IgeworaGVpZ2h0OjZlbTsKK3dpZHRoOjkwJTsKK3BhZGRpbmc6MXB4OworfQorCisuZy10cGwtMjUtNzUgLmctdW5pdCwuZy11bml0IC5nLXRwbC0yNS03NSAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjUtNzUgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjUtNzUgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjUtNzUtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjUtNzUtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTI1LTc1LWFsdCAuZy1maXJzdCwuZy10cGwtMjUtNzUtYWx0IC5nLWZpcnN0IHsKK3dpZHRoOjc1JTsKK2Zsb2F0OnJpZ2h0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0yNS03NS1hbHQgLmctdW5pdCwuZy11bml0IC5nLXRwbC0yNS03NS1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTI1LTc1LWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy11bml0IC5nLXRwbC0yNS03NS1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNzUtMjUgLmctZmlyc3QsLmctdW5pdCAuZy11bml0IC5nLXRwbC03NS0yNSAuZy1maXJzdCwuZy11bml0IC5nLXRwbC03NS0yNSAuZy1maXJzdCwuZy10cGwtMjUtNzUgLmctZmlyc3Qgeword2lkdGg6MjUlOworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCisuZy10cGwtNzUtMjUtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy10cGwtNzUtMjUtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC03NS0yNS1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNzUtMjUtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLTc1LTI1IC5nLWZpcnN0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNzUtMjUgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtNzUtMjUgLmctZmlyc3QsLmctdHBsLTc1LTI1IC5nLWZpcnN0IHsKK3dpZHRoOjc1JTsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTc1LTI1IC5nLXVuaXQsLmctdW5pdCAuZy10cGwtNzUtMjUgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTc1LTI1IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLTc1LTI1IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLTc1LTI1LWFsdCAuZy1maXJzdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTc1LTI1LWFsdCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC03NS0yNS1hbHQgLmctZmlyc3QsLmctdHBsLTc1LTI1LWFsdCAuZy1maXJzdCB7Cit3aWR0aDoyNSU7CitmbG9hdDpyaWdodDsKK21hcmdpbjowOworfQorCisuZy10cGwtMzMtNjcgLmctdW5pdCwuZy11bml0IC5nLXRwbC0zMy02NyAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzMtNjcgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzMtNjcgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzMtNjctYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzMtNjctYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTMzLTY3LWFsdCAuZy1maXJzdCwuZy10cGwtMzMtNjctYWx0IC5nLWZpcnN0IHsKK3dpZHRoOjY3JTsKK2Zsb2F0OnJpZ2h0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0zMy02Ny1hbHQgLmctdW5pdCwuZy11bml0IC5nLXRwbC0zMy02Ny1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTMzLTY3LWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy11bml0IC5nLXRwbC0zMy02Ny1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzMtNjcgLmctZmlyc3QsLmctdW5pdCAuZy11bml0IC5nLXRwbC0zMy02NyAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0zMy02NyAuZy1maXJzdCwuZy10cGwtMzMtNjcgLmctZmlyc3Qgeword2lkdGg6MzMlOworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCisuZy10cGwtNjctMzMtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy10cGwtNjctMzMtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC02Ny0zMy1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNjctMzMtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLTY3LTMzIC5nLWZpcnN0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNjctMzMgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtNjctMzMgLmctZmlyc3QsLmctdHBsLTY3LTMzIC5nLWZpcnN0IHsKK3dpZHRoOjY3JTsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTY3LTMzIC5nLXVuaXQsLmctdW5pdCAuZy10cGwtNjctMzMgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTY3LTMzIC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLTY3LTMzIC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLTY3LTMzLWFsdCAuZy1maXJzdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTY3LTMzLWFsdCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC02Ny0zMy1hbHQgLmctZmlyc3QsLmctdHBsLTY3LTMzLWFsdCAuZy1maXJzdCB7Cit3aWR0aDozMyU7CitmbG9hdDpyaWdodDsKK21hcmdpbjowOworfQorCisuZy10cGwtNTAtNTAgLmctdW5pdCwuZy11bml0IC5nLXRwbC01MC01MCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNTAtNTAgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNTAtNTAgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNTAtNTAtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNTAtNTAtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTUwLTUwLWFsdCAuZy1maXJzdCwuZy10cGwtNTAtNTAtYWx0IC5nLWZpcnN0IHsKK3dpZHRoOjUwJTsKK2Zsb2F0OnJpZ2h0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC01MC01MC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXRwbC01MC01MC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTUwLTUwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy11bml0IC5nLXRwbC01MC01MC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtNTAtNTAgLmctZmlyc3QsLmctdW5pdCAuZy11bml0IC5nLXRwbC01MC01MCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC01MC01MCAuZy1maXJzdCwuZy10cGwtNTAtNTAgLmctZmlyc3Qgeword2lkdGg6NTAlOworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCitAbWVkaWEgc2NyZWVuLHByb2plY3Rpb257CisuZy1zZWN0aW9uIHsKK3dpZHRoOjEwMCU7Cit2ZXJ0aWNhbC1hbGlnbjp0b3A7CitkaXNwbGF5OmlubGluZS1ibG9jazsKK30KKworLmctc2VjdGlvbjphZnRlciB7Citjb250ZW50OiIuIjsKK2Rpc3BsYXk6YmxvY2s7CitoZWlnaHQ6MDsKK2NsZWFyOmJvdGg7Cit2aXNpYmlsaXR5OmhpZGRlbjsKK30KK30KKworQG1lZGlhIHByaW50eworLmctc2VjdGlvbiB7Cit3aWR0aDoxMDAlOwordmVydGljYWwtYWxpZ246dG9wOworfQorCisuZy1zZWN0aW9uOmFmdGVyIHsKK2NvbnRlbnQ6Ii4iOworZGlzcGxheTpibG9jazsKK2hlaWdodDowOwordmlzaWJpbGl0eTpoaWRkZW47Cit9CisKK2JvZHkgeworZm9udC1zaXplOjlwdDsKK30KKworI2xvZ28geworcG9zaXRpb246c3RhdGljOworZGlzcGxheTpibG9jazsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCisuZ2JoIHsKK2Rpc3BsYXk6bm9uZTsKK2JvcmRlcjowOworfQorCisjZ2MtdG9wbmF2IHsKK2Rpc3BsYXk6YmxvY2s7CitjbGVhcjpib3RoOworfQorCisjZ2MtcGFnZWNvbnRlbnQgeword2lkdGg6Ni43NWluOworZmxvYXQ6bGVmdDsKK2JvcmRlcjpub25lOworbWFyZ2luOjA7CitwYWRkaW5nOjAgMCAwIDIwcHggIWltcG9ydGFudDsKK30KKworcHJlIHsKK292ZXJmbG93OnZpc2libGU7Cit0ZXh0LXdyYXA6dW5yZXN0cmljdGVkOword2hpdGUtc3BhY2U6cHJlLXdyYXA7Cit3b3JkLXdyYXA6YnJlYWstd29yZDsKK30KKworaDEsaDIsaDMsaDQsaDUsaDYgeworcGFnZS1icmVhay1hZnRlcjphdm9pZDsKK30KKwordGFibGUsaW1nIHsKK3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkOworfQorCisjZ2IsI2JyZWFkY3J1bWJzLCNnYy10b2MsI25hdnRvZ2dsZSwuaGlkZGVuLC5oaWRkZW4gKiwjc2tpcHRvLCNza2lwdG8gKiB7CitkaXNwbGF5Om5vbmU7Cit9CisKKyNzZWFyY2gsI2RvY3MsLmJhY2t0b3RvcCwjZGF0ZSwjdHJhaWwgewordmlzaWJpbGl0eTpoaWRkZW47Cit9Cit9CisKK0BtZWRpYSBzY3JlZW4scHJvamVjdGlvbixwcmludHsKK2h0bWwsYm9keSB7CitoZWlnaHQ6YXV0bzsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCitib2R5IHsKK2ZvbnQtZmFtaWx5OkhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOworZm9udC1zaXplOnNtYWxsOworY29sb3I6IzAwMDsKK2JhY2tncm91bmQtY29sb3I6I2ZmZjsKK21hcmdpbjozcHggOHB4OworfQorCithLGE6bGluayB7Citjb2xvcjojMDBjOworfQorCithOmFjdGl2ZSB7Citjb2xvcjpyZWQ7Cit9CisKK2E6dmlzaXRlZCB7Citjb2xvcjojNTUxYThiOworfQorCitwIHsKK2xpbmUtaGVpZ2h0OjEyNSU7CittYXJnaW46MDsKK3BhZGRpbmc6MWVtIDAgMDsKK30KKworYSBpbWcgeworYm9yZGVyOjFweCBzb2xpZDsKK3BhZGRpbmc6MXB4OworfQorCitjb2RlLHByZSB7Citmb250LWZhbWlseTptb25vc3BhY2U7Citjb2xvcjojMDA3MDAwOworfQorCitjb2RlIHsKK2ZvbnQtc2l6ZToxMHB0OworfQorCitwcmUgeworZm9udC1zaXplOjlwdDsKK2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTsKK2JvcmRlcjoxcHggc29saWQgI2JiYjsKK2xpbmUtaGVpZ2h0OjEyNSU7CitvdmVyZmxvdzphdXRvOword29yZC13cmFwOmJyZWFrLXdvcmQ7CittYXJnaW46MWVtIDAgMDsKK3BhZGRpbmc6Ljk5ZW07Cit9CisKK2Jsb2NrcXVvdGUgewordGV4dC1hbGlnbjpqdXN0aWZ5OworbWFyZ2luOjFlbSA5MHB4IDAgNzBweDsKK3BhZGRpbmc6MCAyMHB4OworfQorCitociB7Citib3JkZXI6MXB4IHNvbGlkOworYm9yZGVyLWNvbG9yOiNiYmI7CittYXJnaW46MWVtIDA7Cit9CisKK2gxLGgyLGgzLGg0IHsKK21hcmdpbi1ib3R0b206MDsKK30KKworaDEgeworZm9udC1zaXplOjE2MCU7Cit9CisKK2gyIHsKK2ZvbnQtc2l6ZToxNDAlOworfQorCitoMyB7Citmb250LXNpemU6MTIwJTsKK30KKworaDQgeworZm9udC1zaXplOjExMCU7Cit9CisKKyNnYy1wYWdlY29udGVudCBoMSB7Citmb250LXNpemU6MTMwJTsKK2ZvbnQtd2VpZ2h0OjcwMDsKK3Bvc2l0aW9uOnJlbGF0aXZlOworYm9yZGVyLXRvcDoxcHggc29saWQgIzM2QzsKK2JhY2tncm91bmQtY29sb3I6I2U1ZWNmOTsKK21hcmdpbjoyZW0gMCAwIC0xMHB4OworcGFkZGluZzoxcHggM3B4OworfQorCisjZ2MtcGFnZWNvbnRlbnQgaDIgeworZm9udC1zaXplOjEzMCU7Citmb250LXdlaWdodDo3MDA7CittYXJnaW46MS41ZW0gMCAwOworfQorCisjZ2MtcGFnZWNvbnRlbnQgaDMgeworZm9udC1zaXplOjExMCU7Citwb3NpdGlvbjpyZWxhdGl2ZTsKK3RvcDouNGVtOworbWFyZ2luOi43ZW0gMCAwOworfQorCisjZ2MtcGFnZWNvbnRlbnQgaDQgeworZm9udC1zaXplOjEwMCU7Citmb250LXdlaWdodDo3MDA7Citwb3NpdGlvbjpyZWxhdGl2ZTsKK3RvcDouNGVtOworei1pbmRleDo1OworbWFyZ2luOi42ZW0gMCAwOworfQorCisjZ2MtcGFnZWNvbnRlbnQgaDUgeworZm9udC1zaXplOjEwMCU7Citmb250LXdlaWdodDo0MDA7Citmb250LXN0eWxlOml0YWxpYzsKK3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Citwb3NpdGlvbjpyZWxhdGl2ZTsKK3RvcDouNGVtOworei1pbmRleDo1OworbWFyZ2luOi40ZW0gMCAwOworfQorCisjZ2MtcGFnZWNvbnRlbnQgaDEucGFnZV90aXRsZSwjZ2MtcGFnZWNvbnRlbnQgaDIucGFnZV90aXRsZSB7CitsaW5lLWhlaWdodDoxMzAlOworZm9udC1zaXplOjE3MCU7Citib3JkZXI6bm9uZTsKK2JhY2tncm91bmQ6bm9uZTsKK21hcmdpbjowIDAgMCAtMTBweDsKK3BhZGRpbmc6LjhlbSAwIDA7Cit9CisKK29sLHVsIHsKK2xpbmUtaGVpZ2h0OjEyNSU7CittYXJnaW46LjVlbSAwIDAgMTVweDsKK3BhZGRpbmc6MDsKK30KKworbGkgb2wsbGkgdWwgeworbWFyZ2luOjAgMCAwIDEwcHg7CitwYWRkaW5nOjA7Cit9CisKK2xpIHsKK21hcmdpbjouM2VtIDAgMCAxLjVlbTsKK3BhZGRpbmc6MDsKK30KKworZGwgeworbGluZS1oZWlnaHQ6MTI1JTsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCitkdCB7Citmb250LXdlaWdodDo3MDA7CittYXJnaW46Ljc1ZW0gMCAwOworcGFkZGluZzowOworfQorCitkZCB7Citmb250LXdlaWdodDo0MDA7CittYXJnaW46LjRlbSAwIDAgMmVtOworcGFkZGluZzowOworfQorCitsaSBwcmUgeworbWFyZ2luOi41ZW0gMCAuNmVtOworfQorCitsaSBwLGRkIHAgeworbWFyZ2luOjA7CitwYWRkaW5nOi41ZW0gMCAuNmVtOworfQorCitvbC5hbHBoYSB7CitsaXN0LXN0eWxlOmxvd2VyLWFscGhhOworfQorCitvbC5hbHBoYWNhcCB7CitsaXN0LXN0eWxlOnVwcGVyLWFscGhhOworfQorCitvbC5yb21hbiB7CitsaXN0LXN0eWxlOmxvd2VyLXJvbWFuOworfQorCitvbC5yb21hbmNhcCB7CitsaXN0LXN0eWxlOnVwcGVyLXJvbWFuOworfQorCitvbC50ZXJtc2xpc3QgeworbGlzdC1zdHlsZS10eXBlOmRlY2ltYWw7Cit9CisKK29sLnRlcm1zbGlzdD5saT5vbCB7CitsaXN0LXN0eWxlLXR5cGU6bG93ZXItYWxwaGE7Cit9CisKK29sLnRlcm1zbGlzdD5saT5vbD5saT5vbCB7CitsaXN0LXN0eWxlLXR5cGU6bG93ZXItcm9tYW47Cit9CisKKy50YWJsZWxpc3QgeworbWFyZ2luOjAgMCAxZW07Cit9CisKKy5saXN0aGVhZCBsaSAqLC5saXN0aGVhZCBsaSBsaSB7Citmb250LXdlaWdodDo0MDA7Cit9CisKKy5jb2RlIGxpIHsKK2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTsKK2ZvbnQtc2l6ZToxMHB0OworfQorCisuY29kZSBsaSBwLC5jb2RlIGxpIGxpIHsKK2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOworfQorCitsaSBwLm5vdGUsbGkgcC53YXJuaW5nLGxpIHAubGFic3dhcm5pbmcsbGkgcC5jYXV0aW9uIHsKK21hcmdpbjouOGVtIDAgMDsKK3BhZGRpbmc6LjJlbSAuNWVtIC4yZW0gLjllbTsKK30KKworb2wudG9jLGRpdi50b2Mgb2wgeworbGlzdC1zdHlsZTpub25lOworbWFyZ2luOjFlbSAwIDA7CitwYWRkaW5nOjA7Cit9CisKK29sLnRvYyBsaSxkaXYudG9jIG9sIGxpIHsKK2ZvbnQtd2VpZ2h0OjcwMDsKK21hcmdpbjouNWVtIDAgMCAxLjVlbTsKK3BhZGRpbmc6MDsKK30KKworb2wudG9jIGxpIG9sIGxpLGRpdi50b2Mgb2wgbGkgb2wgbGkgeworZm9udC13ZWlnaHQ6NDAwOworbGlzdC1zdHlsZTpub25lOworbWFyZ2luOi4xZW0gMCAwIDFlbTsKK3BhZGRpbmc6MDsKK30KKwordGFibGUgeworbGluZS1oZWlnaHQ6MTI1JTsKK2JvcmRlcjoxcHggc29saWQ7Citib3JkZXItc3BhY2luZzowOworYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOworY2xlYXI6cmlnaHQ7Citib3JkZXItY29sb3I6I2JiYjsKK21hcmdpbjoxZW0gMCAwIDFweDsKK30KKwordGgsdGQgewordGV4dC1hbGlnbjpsZWZ0OwordmVydGljYWwtYWxpZ246dG9wOworfQorCit0aCB7Citmb250LXdlaWdodDo3MDA7Cit0ZXh0LWFsaWduOmxlZnQ7Citib3JkZXI6MXB4IHNvbGlkICNiYmI7CitiYWNrZ3JvdW5kLWNvbG9yOiNlNWVjZjk7CitwYWRkaW5nOjZweCAxMnB4OworfQorCit0ZCB7Citib3JkZXI6MXB4IHNvbGlkICNiYmI7CitiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Cit0ZXh0LWFsaWduOmxlZnQ7Cit2ZXJ0aWNhbC1hbGlnbjp0b3A7CitwYWRkaW5nOjZweCAxMnB4OworfQorCit0ZCB1bCx0ZCBvbCB7CittYXJnaW46MCAwIDFlbSAxNXB4OworcGFkZGluZzowOworfQorCit0ZCBwLHRkIGRsIHsKK21hcmdpbjowIDAgMWVtOworcGFkZGluZzowOworfQorCit0ci5hbHQgdGQsdGQuYWx0IHsKK2JhY2tncm91bmQ6I2Y1ZjVmNTsKK30KKwordGFibGUuY29sdW1ucyB7Citib3JkZXI6bm9uZTsKK21hcmdpbjoxZW0gMCAwOworfQorCit0YWJsZS5jb2x1bW5zPnRyPnRkLHRhYmxlLmNvbHVtbnM+dGJvZHk+dHI+dGQgeworYm9yZGVyOm5vbmU7CitwYWRkaW5nOjAgM2VtIDAgMDsKK30KKworLmZ0ZHBhcnRuZXJzIHsKK2JvcmRlcjpub25lOworYm9yZGVyLXRvcDoxcHggc29saWQgI2M5ZDdmMTsKK21hcmdpbi10b3A6MmVtOworfQorCisuZnRkcGFydG5lcnMgdGQgewordGV4dC1hbGlnbjpjZW50ZXI7Citib3JkZXI6bm9uZTsKK3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKK3BhZGRpbmc6MDsKK30KKworLmZ0ZHBhcnRuZXJzIC5mdGRwYXJ0bmVycy1jb2wgeword2lkdGg6MzAlOwordGV4dC1hbGlnbjpsZWZ0OworfQorCisuZGVwcmVjYXRlZCwuZGVwcmVjYXRlZCAqLC5kZXByZWNhdGVkIGE6bGluaywuZGVwcmVjYXRlZCBhOmhvdmVyLC5kZXByZWNhdGVkIGE6dmlzaXRlZCB7Citjb2xvcjojOWI5YjliOworfQorCisuZ3JleSB7Citjb2xvcjojNjY2OworfQorCisuYmx1ZSB7Citjb2xvcjojMzZlOworfQorCisuaWNvbmxpc3QgbGkgeworbGlzdC1zdHlsZTpub25lOworbWFyZ2luOjAgMCAzMHB4OworcGFkZGluZzowIDAgMCA1MHB4OworfQorCisudG9wbWFyZ2luIHsKK21hcmdpbi10b3A6MWVtIWltcG9ydGFudDsKK30KKworLm5vbWFyZ2luIHsKK21hcmdpbjowIWltcG9ydGFudDsKK30KKworLm5vcGFkZGluZyB7CitwYWRkaW5nOjAhaW1wb3J0YW50OworfQorCisubm9ib3JkZXIgeworYm9yZGVyOm5vbmUhaW1wb3J0YW50OworfQorCisuYm9yZGVyIHsKK2JvcmRlcjoxcHggc29saWQgZ3JheTsKK3BhZGRpbmc6MXB4OworfQorCisubm9ybWFsc2l6ZSB7Citmb250LXNpemU6MTAwJSFpbXBvcnRhbnQ7Cit9CisKKy5ub2xpc3QgbGkgeworbWFyZ2luLWxlZnQ6MDsKK2xpc3Qtc3R5bGU6bm9uZTsKK30KKwordWwuZG91Ymxlc3BhY2Usb2wuZG91Ymxlc3BhY2UgeworbWFyZ2luLXRvcDowOworcGFkZGluZy10b3A6MDsKK30KKworLnRlcm1zLC50ZXJtc2JveCB7CitiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7CittYXJnaW46MWVtIDAgMDsKK3BhZGRpbmc6LjVlbTsKK30KKworLnRlcm1zIHRhYmxlLC50ZXJtc2JveCB0YWJsZSwudGVybXMgdGQsLnRlcm1zYm94IHRkIHsKK2JvcmRlcjpub25lOworYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsKK30KKworZGl2LnJvdyB7CitmbG9hdDpsZWZ0OworY2xlYXI6bGVmdDsKK3Bvc2l0aW9uOnJlbGF0aXZlOworbWFyZ2luOjFlbSAwIDA7CitwYWRkaW5nOjA7Cit9CisKKy5sZWZ0IHsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MCAxZW0gMCAwOworcGFkZGluZzowOworfQorCitkaXYuc3BlY2lhbCB7Citib3JkZXI6MXB4IHNvbGlkOworYmFja2dyb3VuZC1jb2xvcjojZTVlY2Y5OworYm9yZGVyLWNvbG9yOiMzNkM7CittYXJnaW46MWVtIDAgMDsKK3BhZGRpbmc6MCAuOWVtIC45ZW07Cit9CisKKy5sYWJzIGRpdi5zcGVjaWFsIHsKK2JhY2tncm91bmQtY29sb3I6I2RjZjZkYjsKK2JvcmRlcjoxcHggc29saWQgIzA5MDsKK30KKworcC5ub3RlLHAuY2F1dGlvbixwLndhcm5pbmcgeworYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmOworYm9yZGVyLXRvcDoxcHggc29saWQ7Citib3JkZXItYm90dG9tOjFweCBzb2xpZDsKK21hcmdpbjoxZW0gMCAwOworcGFkZGluZzouMmVtIC41ZW0gLjJlbSAuOWVtOworfQorCitwLmxhYnN3YXJuaW5nIHsKK2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGFicy0xMS5wbmcpIHRvcCBsZWZ0IG5vLXJlcGVhdDsKK2JhY2tncm91bmQtcG9zaXRpb246NHB4IDZweDsKK2JhY2tncm91bmQtY29sb3I6I2RjZjZkYjsKK2JvcmRlci10b3A6MXB4IHNvbGlkOworYm9yZGVyLWJvdHRvbToxcHggc29saWQ7Citib3JkZXItY29sb3I6IzA5MDsKK21hcmdpbjoxZW0gMCAwOworcGFkZGluZzouMmVtIC41ZW0gLjJlbSAyMHB4OworfQorCitwLm5vdGUgeworYm9yZGVyLWNvbG9yOiNiYmI7Cit9CisKK3AuY2F1dGlvbiB7Citib3JkZXItY29sb3I6I2ZjMzsKK30KKworcC53YXJuaW5nIHsKK2JvcmRlci1jb2xvcjojYTAzOworfQorCitwLndhcm5pbmcgYixwLndhcm5pbmcgZW0scC53YXJuaW5nIHN0cm9uZyB7Citjb2xvcjojYTAzOworZm9udC13ZWlnaHQ6NzAwOworfQorCitwLmNhcHRpb24geworbWFyZ2luOjA7CitwYWRkaW5nOjFweCAwIDA7Cit9CisKK2Rpdi5saW5rYm94IHsKK21hcmdpbjoxZW0gMjVweCAxZW0gMDsKK3BhZGRpbmc6LjVlbSAwOworfQorCitkaXYubGlua2JveCBhIHsKK2ZvbnQtc2l6ZToxMDAlOworZm9udC13ZWlnaHQ6NzAwOworYm9yZGVyOjFweCBzb2xpZDsKK2JhY2tncm91bmQtY29sb3I6I2U1ZWNmOTsKK2JvcmRlci1jb2xvcjojMzZDOworbWFyZ2luOjA7CitwYWRkaW5nOi41ZW07Cit9CisKKy5wcm9tbyB7Citib3JkZXI6MXB4IHNvbGlkICMzNkM7CittYXJnaW46MWVtIDFlbSAwIDA7CitwYWRkaW5nOjAgMWVtIDFlbTsKK30KKworLm5ldyB7Citmb250LXNpemU6NzglOworZm9udC13ZWlnaHQ6NzAwOworY29sb3I6cmVkOwordGV4dC1kZWNvcmF0aW9uOm5vbmU7Cit9CisKKy5zdWJzY3JpYmUgeworZmxvYXQ6cmlnaHQ7Cit9CisKKy5zdWJzY3JpYmUgYSwuc3Vic2NyaWJlIGE6dmlzaXRlZCB7Cit0ZXh0LWRlY29yYXRpb246bm9uZTsKK2NvbG9yOiNiYjQ5MDA7Cit9CisKKy5zdWJzY3JpYmUgYSAubGlua3RleHQgewordGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsKK30KKworLnN1YnNjcmliZSBpbWcgeword2lkdGg6MTVweDsKK2hlaWdodDoxNXB4OwordmVydGljYWwtYWxpZ246bWlkZGxlOworcGFkZGluZy1ib3R0b206MnB4OworfQorCitwI2RhdGUscC5kYXRlIHsKK3RleHQtYWxpZ246bGVmdDsKK2ZvbnQtc3R5bGU6aXRhbGljOworZm9udC1zaXplOngtc21hbGw7CittYXJnaW46MDsKK3BhZGRpbmc6MWVtOworfQorCitwLmJhY2t0b3RvcCB7CitmbG9hdDpyaWdodDsKK3Bvc2l0aW9uOnJlbGF0aXZlOworZm9udC1zaXplOngtc21hbGw7Cit6LWluZGV4Ojk5OworbWFyZ2luOi41ZW0gMCAwIDRlbTsKK3BhZGRpbmc6MDsKK30KKworZGl2LnNpZGVib3ggeword2lkdGg6MjJlbTsKK2JvcmRlci1sZWZ0OjFweCBkb3R0ZWQgc2lsdmVyOworZmxvYXQ6cmlnaHQ7CitjbGVhcjpyaWdodDsKK2JhY2tncm91bmQtY29sb3I6I2ZmZjsKK3Bvc2l0aW9uOnJlbGF0aXZlOworei1pbmRleDoxMDA7CittYXJnaW46MWVtIDAgMCAyMHB4OworcGFkZGluZzowIDAgMWVtIDFlbTsKK30KKworZGl2LnNpZGVib3ggaDIgeworZm9udC1zaXplOjExMCU7Citmb250LXdlaWdodDo3MDA7CitiYWNrZ3JvdW5kLWNvbG9yOiNlNWVjZjk7Citib3JkZXItY29sb3I6IzM2QzsKK21hcmdpbjowIDVweCAwIC01cHg7CitwYWRkaW5nOi4xZW0gM3B4IC4xZW0gNXB4OworfQorCisuaGlkZGVuLC5oaWRkZW4gKiwjc2tpcHRvLCNza2lwdG8gKiwjc2tpcHRvIGEsI3NraXB0byBhOmhvdmVyLCNza2lwdG8gYTp2aXNpdGVkIHsKK3Bvc2l0aW9uOnJlbGF0aXZlOwordG9wOi05OTk5cHg7CitsZWZ0Oi05OTk5cHg7CitoZWlnaHQ6MDsKK3dpZHRoOjA7CitvdmVyZmxvdzpoaWRkZW47Cit6LWluZGV4OjQ0NDQ7Cit9CisKKyNza2lwdG8sI3NraXB0byAqLCNza2lwdG8gYSwjc2tpcHRvIGE6aG92ZXIsI3NraXB0byBhOnZpc2l0ZWQgeworX3Bvc2l0aW9uOnJlbGF0aXZlOworfQorCisjc2tpcHRvIGE6Zm9jdXMgeworcG9zaXRpb246Zml4ZWQ7Cit0b3A6NXB4OworbGVmdDo1cHg7CitoZWlnaHQ6YXV0bzsKK3dpZHRoOmF1dG87CitiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Citib3JkZXI6MnB4IHNvbGlkICMwMEM7Citmb250LXdlaWdodDo3MDA7CitwYWRkaW5nOjVweDsKK30KKworI2djLWNvbnRhaW5lciB7CittYXgtd2lkdGg6MTE2MHB4OworbWFyZ2luOjA7CitwYWRkaW5nOjA7Cit9CisKKyNnYy1wYWdlY29udGVudCwjZ2MtaG9tZSB7Citwb3NpdGlvbjpyZWxhdGl2ZTsKK30KKworI2djLXBhZ2Vjb250ZW50IHsKK3BhZGRpbmctbGVmdDoyNHB4OworYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICNlNWVjZjk7Cit9CisKKyNkZXByZWNhdGV3YXJuIHsKK2JhY2tncm91bmQ6I2ZmODsKK21hcmdpbi1ib3R0b206LTIwcHg7Cit0ZXh0LWFsaWduOmNlbnRlcjsKK3BhZGRpbmc6M3B4IDFweDsKK30KKworI2diIHsKK3dpZHRoOjEwMCU7Cit0ZXh0LWFsaWduOnJpZ2h0OworcGFkZGluZzozcHggMCAwOworfQorCisjZ2IgYSB7Cit0ZXh0LWRlY29yYXRpb246bm9uZTsKK2NvbG9yOiMwMGM7Cit9CisKK2ltZy5nbG9iZWljb24geworYm9yZGVyOm1lZGl1bSBub25lOwordmVydGljYWwtYWxpZ246Ym90dG9tOworbWFyZ2luLXJpZ2h0OjFweDsKK21hcmdpbi10b3A6MnB4OworcGFkZGluZzowOworfQorCisuZ2JoIHsKK2JvcmRlci10b3A6MXB4IHNvbGlkICNjOWQ3ZjE7Citmb250LXNpemU6MXB4OworaGVpZ2h0OjA7Citwb3NpdGlvbjphYnNvbHV0ZTsKK3RvcDoyNHB4Oword2lkdGg6MTAwJTsKK30KKworI2xhbmd3YXJuIHsKK3RleHQtYWxpZ246cmlnaHQ7Citmb250LXNpemU6ODAlOworbWFyZ2luLWJvdHRvbTotMTNweDsKK2NvbG9yOiM2NjY7Cit9CisKKy5tb3JlcmlnaHQgewordGV4dC1hbGlnbjpyaWdodDsKK21hcmdpbjoycHggMDsKK30KKworI2djLWhlYWRlciB7CittYXJnaW46OXB4IDAgMTJweDsKK3BhZGRpbmc6N3B4IDAgMDsKK30KKworI2djLWhlYWRlciAjbG9nbyB7CitwYWRkaW5nLXRvcDo1cHg7Citwb3NpdGlvbjphYnNvbHV0ZTsKK21hcmdpbjowOworfQorCisjZ2MtaGVhZGVyICNnYy1sb2dvLWltZyB7CitiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3Nwcml0ZXMwODEzMjAwOC5wbmcpOworYmFja2dyb3VuZC1wb3NpdGlvbjotMjhweCAtMzZweDsKK3dpZHRoOjE1M3B4OworaGVpZ2h0OjU1cHg7CitjdXJzb3I6cG9pbnRlcjsKK30KKworI2NvZGVzaXRlQ29udGVudCB7CittYXJnaW4tdG9wOjNweDsKK3BhZGRpbmc6M3B4OworfQorCisjZ2MtdG9wbmF2IHsKK2ZvbnQtc2l6ZToxZW07Cit3aWR0aDoxMDAlOword2hpdGUtc3BhY2U6bm93cmFwOword29yZC13cmFwOm5vcm1hbDsKK2JhY2tncm91bmQtY29sb3I6I2U1ZWNmOTsKK2JvcmRlci10b3A6MXB4IHNvbGlkICMzNkM7CittYXJnaW46MDsKK3BhZGRpbmc6LjFlbSAwOworfQorCisjZ2MtdG9wbmF2IGgxIHsKK2ZvbnQtc2l6ZToxLjVlbTsKK2xpbmUtaGVpZ2h0OjEuM2VtOworZm9udC13ZWlnaHQ6NzAwOworYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsKK2JvcmRlcjowOworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworcGFkZGluZzowIDAgMCAyNnB4OworfQorCisjZ2MtdG9wbmF2IGgxLm1zaWUgeworcGFkZGluZy1sZWZ0OjA7Cit9CisKKyNnYy10b3BuYXYgaDEubW96aWxsYSB7CitwYWRkaW5nLWxlZnQ6MXB4OworfQorCisjZ2MtdG9wbmF2IGgxLmRlZmF1bHQgeworcGFkZGluZy1sZWZ0OjJweDsKK30KKworI2djLXRvcG5hdiBpbWcgeworZmxvYXQ6bGVmdDsKK2N1cnNvcjpwb2ludGVyOworcGFkZGluZzouM2VtIC4zZW0gLjNlbSAuNWVtOworfQorCisjZ2MtdG9wbmF2IHVsIHsKK2xpbmUtaGVpZ2h0OjFlbTsKK3RleHQtYWxpZ246cmlnaHQ7CitsaXN0LXN0eWxlOm5vbmU7CittYXJnaW46MDsKK3BhZGRpbmc6LjQ3ZW0gMDsKK30KKworI2djLXRvcG5hdiB1bCBsaSB7CitmbG9hdDpub25lOworZGlzcGxheTppbmxpbmU7CittYXJnaW46MDsKK3BhZGRpbmc6MDsKK30KKworI2djLXRvcG5hdiBsaSBhIHsKK3BhZGRpbmc6MCAuOGVtOworfQorCisuY3MtYnJlYWRjcnVtYnMgeworbGlzdC1zdHlsZTpub25lOworcG9zaXRpb246cmVsYXRpdmU7CittYXJnaW46MCAwIDAgLTIwcHg7CitwYWRkaW5nOi41ZW0gMCAwIDEwcHg7Cit9CisKKy5jcy1icmVhZGNydW1icyBsaSB7CitkaXNwbGF5OmlubGluZTsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCithLnNlbGVjdGVkLC5zZWxlY3RlZCBhLGEuc2VsZWN0ZWQ6dmlzaXRlZCwuc2VsZWN0ZWQgYTp2aXNpdGVkIHsKK2NvbG9yOiMwMDA7Cit0ZXh0LWRlY29yYXRpb246bm9uZTsKK30KKworI2djLXRvYyB7CitjbGVhcjpsZWZ0OworbWFyZ2luLWJvdHRvbToxZW07CitoZWlnaHQ6YXV0bzsKK3BhZGRpbmc6LjVlbSAwIDAhaW1wb3J0YW50OworfQorCisjZ2MtdG9jIHVsLCNnYy10b2Mgb2wgeworbGluZS1oZWlnaHQ6MTIwJTsKK21hcmdpbjowOworcGFkZGluZzouNmVtIDAgMDsKK30KKworI2djLXRvYyB1bCB1bCwjZ2MtdG9jIG9sIG9sIHsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCisjZ2MtdG9jIHVsICosI2djLXRvYyBvbCAqLC50cmVlbGlzdCAqIHsKK3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKK30KKworI2djLXRvYyBsaSBhIHsKK3BhZGRpbmctcmlnaHQ6NHB4OworX3BhZGRpbmctcmlnaHQ6MDsKK30KKworI2djLXRvYyB1bCBsaSwjZ2MtdG9jIG9sIGxpLCNnYy10b2MgLnRyZWVsaXN0IGxpIHsKK2xpc3Qtc3R5bGU6bm9uZTsKK21hcmdpbjowOworcGFkZGluZzouMmVtIDAgLjJlbSAycHg7Cit9CisKKyNnYy10b2MgdWwgbGkgbGksI2djLXRvYyBvbCBsaSBsaSwjZ2MtdG9jIC50cmVlbGlzdCBsaSBsaSB7CitwYWRkaW5nOi4yNWVtIDAgLjI1ZW0gMTVweDsKK30KKworI2djLXRvYyB1bCBoMSwjZ2MtdG9jIG9sIGgxLCNnYy10b2MgdWwgaDIsI2djLXRvYyBvbCBoMiB7Citmb250LXdlaWdodDo3MDA7Citmb250LXNpemU6MTAwJTsKK2JvcmRlcjpub25lOworYmFja2dyb3VuZDojZmZmOworbWFyZ2luOjA7CitwYWRkaW5nOi4yZW0gMDsKK30KKworI2djLXRvYyB1bCBoMywjZ2MtdG9jIG9sIGgzIHsKK2ZvbnQtd2VpZ2h0OjcwMDsKK2ZvbnQtc2l6ZTo5MCU7Citib3JkZXI6bm9uZTsKK2JhY2tncm91bmQ6I2ZmZjsKK21hcmdpbjowOworcGFkZGluZzouMmVtIDA7Cit9CisKKyNnYy10b2MgdWwgLnNlbGVjdGVkLCNnYy10b2Mgb2wgLnNlbGVjdGVkLC50cmVlbGlzdCAuc2VsZWN0ZWQgeworYmFja2dyb3VuZC1jb2xvcjojZTVlY2Y5OworY29sb3I6IzAwMDsKK3RleHQtZGVjb3JhdGlvbjpub25lOworei1pbmRleDoyOworcG9zaXRpb246cmVsYXRpdmU7Cit9CisKKyNnYy10b2MgdWwgZGl2LnRsdy10aXRsZSwjZ2MtdG9jIG9sIGRpdi50bHctdGl0bGUsI2djLXRvYyAudHJlZWxpc3QgZGl2LnRsdy10aXRsZSB7Citwb3NpdGlvbjpyZWxhdGl2ZTsKK21hcmdpbjowIDAgMCAtMTVweDsKK3BhZGRpbmc6LjJlbSAwIC4yZW0gMTVweDsKK30KKworLnRyZWVsaXN0IGRpdi50bHctdGl0bGUgeworcG9zaXRpb246cmVsYXRpdmU7CittYXJnaW4tbGVmdDotMTVweDsKK3BhZGRpbmctbGVmdDoxNXB4OworfQorCisudHJlZWxpc3QgZGl2LnRsdy10aXRsZSBhLnRsdy1jb250cm9sIHsKK292ZXJmbG93OmhpZGRlbjsKK2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7CittYXJnaW46MCAwIDAgLTEycHg7CitwYWRkaW5nOjA7Cit9CisKKyNnYy10b2MgdWwgZGl2LnRsdy10aXRsZSBpbWcudGx3LWNvbnRyb2wsI2djLXRvYyBvbCBkaXYudGx3LXRpdGxlIGltZy50bHctY29udHJvbCwudHJlZWxpc3QgZGl2LnRsdy10aXRsZSBpbWcudGx3LWNvbnRyb2wgeworcG9zaXRpb246cmVsYXRpdmU7CitoZWlnaHQ6aW5oZXJpdDsKK3dpZHRoOjlweDsKK2JvcmRlcjpub25lOworbWFyZ2luOjAgMCAzcHghaW1wb3J0YW50OworcGFkZGluZzowOworfQorCisjZ2MtdG9jIHVsIC50bHctcGx1cywjZ2MtdG9jIG9sIC50bHctcGx1cywudHJlZWxpc3QgLnRsdy1wbHVzIHsKK2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvc3ByaXRlczA4MTMyMDA4LnBuZyk7CitiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yOHB4IC0xNDZweDsKK3dpZHRoOjlweDsKK2hlaWdodDo5cHg7Cit9CisKKyNnYy10b2MgdWwgLnRsdy1taW51cywjZ2MtdG9jIG9sIC50bHctbWludXMsLnRyZWVsaXN0IC50bHctbWludXMgeworYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9zcHJpdGVzMDgxMzIwMDgucG5nKTsKK2JhY2tncm91bmQtcG9zaXRpb246LTI4cHggLTIxMHB4Oword2lkdGg6OXB4OworaGVpZ2h0OjlweDsKK30KKworI2djLXRvYyB1bCAudGx3LXBsdXM6aG92ZXIsI2djLXRvYyBvbCAudGx3LXBsdXM6aG92ZXIsLnRyZWVsaXN0IC50bHctcGx1czpob3ZlciB7CitiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3Nwcml0ZXMwODEzMjAwOC5wbmcpOworYmFja2dyb3VuZC1wb3NpdGlvbjotMjhweCAtMzQ0cHg7Cit3aWR0aDo5cHg7CitoZWlnaHQ6OXB4OworfQorCisjZ2MtdG9jIHVsIC50bHctbWludXM6aG92ZXIsI2djLXRvYyBvbCAudGx3LW1pbnVzOmhvdmVyLC50cmVlbGlzdCAudGx3LW1pbnVzOmhvdmVyIHsKK2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvc3ByaXRlczA4MTMyMDA4LnBuZyk7CitiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yOHB4IC00MDhweDsKK3dpZHRoOjlweDsKK2hlaWdodDo5cHg7Cit9CisKKyNnYy10b2MgaDEsI2djLXRvYyBoMiB7Citmb250LXdlaWdodDo3MDA7Citmb250LXNpemU6MTAwJTsKK2JvcmRlcjpub25lOworYmFja2dyb3VuZDojZmZmOworbWFyZ2luOjA7CitwYWRkaW5nOjA7Cit9CisKKyNnYy10b2MgZGl2LmxpbmUgeworYm9yZGVyLXRvcDp0aGluIGRvdHRlZCAjYmJiOworaGVpZ2h0OjFweDsKK21hcmdpbjoxLjNlbSAxZW0gMCAwOworcGFkZGluZzowOworfQorCisjZ2MtcGFnZWNvbnRlbnQuZXhwYW5kZWQgeworbWFyZ2luLWxlZnQ6MDsKK3dpZHRoOmF1dG87Cit9CisKKyNnYy1jb2xsYXBzaWJsZSB7Citwb3NpdGlvbjphYnNvbHV0ZTsKK2xlZnQ6LTVweDsKK3RvcDowOword2lkdGg6M3B4Oworb3ZlcmZsb3c6aGlkZGVuOworYm9yZGVyOjJweCBzb2xpZCAjZmZmOworYm9yZGVyLXRvcDpub25lOworYm9yZGVyLWJvdHRvbTpub25lOworYmFja2dyb3VuZDojZTVlY2Y5OworY3Vyc29yOnBvaW50ZXI7Cit9CisKKyNnYy1jb2xsYXBzaWJsZS5ob3ZlciB7Cit3aWR0aDo1cHg7Citib3JkZXItY29sb3I6I2QzZDllNTsKK2JvcmRlci13aWR0aDoxcHg7Cit9CisKKy5sYWJzICNnYy1jb2xsYXBzaWJsZS5ob3ZlciB7Citib3JkZXItY29sb3I6IzA5MDsKK30KKworLmRlcHIgI2djLWNvbGxhcHNpYmxlLmhvdmVyIHsKK2JvcmRlci1jb2xvcjojMzMzOworfQorCisjZ2MtY29sbGFwc2libGUtYXJyb3cgeword2lkdGg6NHB4OworaGVpZ2h0OjEycHg7CitiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2hpZGUtYXJyb3cuZ2lmKSB0b3AgbGVmdCBuby1yZXBlYXQ7Citwb3NpdGlvbjphYnNvbHV0ZTsKK21hcmdpbi1sZWZ0Oi0xNXB4OworZGlzcGxheTpub25lOworei1pbmRleDo1OworfQorCisjZ2MtY29sbGFwc2libGUtYXJyb3cuY29sbGFwc2VkIHsKK2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvdy1hcnJvdy5naWYpIHRvcCBsZWZ0IG5vLXJlcGVhdDsKK21hcmdpbi1sZWZ0OjE3cHg7Cit9CisKKyNuYXZ0b2dnbGUgeworcG9zaXRpb246YWJzb2x1dGU7Cit0b3A6MDsKK2xlZnQ6LThweDsKK30KKworI3RvZ2dsZWltZ2RpdiB7Cit3aWR0aDoxMHB4OworcG9zaXRpb246YWJzb2x1dGU7Cit0b3A6MDsKK2N1cnNvcjpwb2ludGVyOworZGlzcGxheTpibG9jazsKK3otaW5kZXg6OTk7Cit9CisKKyN0b2dnbGVpbWdkaXYgaW1nIHsKK3Bvc2l0aW9uOnJlbGF0aXZlOwordmlzaWJpbGl0eTpoaWRkZW47Cit0b3A6NTYlOworaGVpZ2h0OjEycHg7Cit3aWR0aDo0cHg7CittYXJnaW46OXB4IGF1dG87Cit9CisKKyN0b2dnbGVpbWdkaXYuaG92ZXIgeworYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZTVlY2Y5OworYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlNWVjZjk7Cit9CisKKyNuYXZ0b2dnbGUgYSB7Citwb3NpdGlvbjphYnNvbHV0ZTsKK30KKworLmctdHBsLTE5MCAjbmF2dG9nZ2xlIHsKK2xlZnQ6MTg1cHg7Cit9CisKKyNnYy1mb290ZXIgeworY2xlYXI6Ym90aDsKK2NvbG9yOiM2NjY7CittYXJnaW46MDsKK30KKworI2djLWZvb3RlciAudGV4dCB7Cit0ZXh0LWFsaWduOmNlbnRlcjsKK21hcmdpbjowOworcGFkZGluZzozMHB4IDAgMDsKK30KKworI2djLWZvb3RlciAubm90aWNlIHsKK3BhZGRpbmc6MCAwIDhweDsKK30KKworI3NlYXJjaCB7Cit3aWR0aDo0NTBweDsKK21hcmdpbjoxMnB4IDAgMCAxNzBweDsKK30KKworI3NlYXJjaCB0YWJsZSwjc2VhcmNoIHRhYmxlIHRkIHsKK2JvcmRlcjpub25lOworY2xlYXI6bm9uZTsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCisjc2VhcmNoIGZvcm0geworbWFyZ2luOjA7Cit9CisKKy5ncmV5dGV4dCB7Citjb2xvcjojYWFhOworZm9udC1zaXplOnNtYWxsOworaGVpZ2h0OjE0cHg7Cit9CisKKyNzZWFyY2hDb250cm9sIHsKK2Rpc3BsYXk6bm9uZTsKK21hcmdpbi10b3A6M3B4OworcGFkZGluZzozcHg7Cit9CisKKyNzZWFyY2hDb250cm9sIC5nc2MtY29udHJvbCB7Cit3aWR0aDoxMDAlOworfQorCisuZ3NjLXNlYXJjaC1idXR0b24geworbWFyZ2luLWxlZnQ6MXB4OworfQorCisuZ3NjLXRhYnNBcmVhIHsKK2JvcmRlci10b3A6MXB4IHNvbGlkICMzNkM7CitiYWNrZ3JvdW5kOiNlNWVjZjkgbm9uZSByZXBlYXQgc2Nyb2xsIDA7Cit3aWR0aDoxMDAlOworcGFkZGluZzo1cHggMXB4IDRweDsKK30KKworLmdzYy10YWJzQXJlYSAuZ3Mtc3BhY2VyIHsKK2ZvbnQtc2l6ZTowOworbWFyZ2luLXJpZ2h0OjA7CitvdmVyZmxvdzpoaWRkZW47Cit9CisKKy5nc2MtdGFic0FyZWEgLmdzLXNwYWNlci1vcGVyYSB7CittYXJnaW4tcmlnaHQ6MDsKK30KKworLmdzYy10YWJIZWFkZXIgeworZGlzcGxheTppbmxpbmU7CitjdXJzb3I6cG9pbnRlcjsKK3BhZGRpbmctbGVmdDowOworcGFkZGluZy1yaWdodDowOworbWFyZ2luLXJpZ2h0OjA7Citmb250LXdlaWdodDo3MDA7Cit9CisKKy5nc2MtdGFiSGVhZGVyLmdzYy10YWJoQWN0aXZlIHsKK3Bvc2l0aW9uOnJlbGF0aXZlOworZm9udC13ZWlnaHQ6NzAwOworY29sb3I6IzAwMDsKK2N1cnNvcjphdXRvOworcGFkZGluZzowIDEwcHggMCA1cHg7Cit9CisKKy5nc2MtdGFiSGVhZGVyLmdzYy10YWJoSW5hY3RpdmUgeworZm9udC13ZWlnaHQ6NDAwOwordGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsKK2NvbG9yOiMwMEM7CitwYWRkaW5nOjAgMTBweCAwIDVweDsKK30KKworLmdzYy1yZXN1bHRzYm94LXZpc2libGUgeword2lkdGg6NDJlbTsKK30KKworLmdzYy1yZXN1bHRzIHsKK2NsZWFyOmJvdGg7CitwYWRkaW5nLWJvdHRvbToycHg7CitwYWRkaW5nLXRvcDoxNXB4OworfQorCisuZ3NjLXJlc3VsdHMgdGFibGUsLmdzYy1yZXN1bHRzIHRkIHsKK2JvcmRlcjowOworfQorCisuZ3NjLXJlc3VsdCB7CittYXJnaW4tYm90dG9tOjEuMmVtOworfQorCisuZ3NjLXJlc3VsdCAuZ3MtdGl0bGUgeworaGVpZ2h0OjEuNGVtOworb3ZlcmZsb3c6aGlkZGVuOworZm9udC1zaXplOjExMCU7Cit9CisKKy5nc2MtcmVzdWx0cyAuZ3NjLWN1cnNvci1ib3ggLmdzYy10cmFpbGluZy1tb3JlLXJlc3VsdHMgeworbWFyZ2luLWJvdHRvbTowOworZGlzcGxheTppbmxpbmU7Cit9CisKKy5nc2MtcmVzdWx0cyAuZ3NjLWN1cnNvci1ib3ggLmdzYy1jdXJzb3ItcGFnZSB7CitjdXJzb3I6cG9pbnRlcjsKK2NvbG9yOiMwMDA7Cit0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOworbWFyZ2luLXJpZ2h0OjhweDsKK2Rpc3BsYXk6aW5saW5lOworfQorCisuZ3NjLXJlc3VsdHMgLmdzYy1jdXJzb3ItYm94IC5nc2MtY3Vyc29yLWN1cnJlbnQtcGFnZSB7Citjb2xvcjojYTkwYTA4OworZm9udC13ZWlnaHQ6NzAwOwordGV4dC1kZWNvcmF0aW9uOm5vbmU7Cit9CisKKy5ncy1kaXZpZGVyIHsKK3BhZGRpbmctYm90dG9tOjhweDsKK3RleHQtYWxpZ246Y2VudGVyOworY29sb3I6IzY3Njc2NzsKK30KKworLmdzLXJlc3VsdCBhLmdzLXZpc2libGVVcmwsLmdzLXJlc3VsdCAuZ3MtdmlzaWJsZVVybCB7Citjb2xvcjpncmVlbjsKK3RleHQtZGVjb3JhdGlvbjpub25lOworfQorCisuZ3Mtd2ViUmVzdWx0IGRpdi5ncy12aXNpYmxlVXJsLWxvbmcgeword2lkdGg6MTAwJTsKK292ZXJmbG93OmhpZGRlbjsKK2Rpc3BsYXk6YmxvY2s7Cit3aGl0ZS1zcGFjZTpub3dyYXA7Cit9CisKKy5jb20geworY29sb3I6IzgwMDsKK30KKworLmxpdCB7Citjb2xvcjojMDY2OworfQorCisucHVuIHsKK2NvbG9yOiM2NjA7Cit9CisKKy5wbG4geworY29sb3I6IzAwMDsKK30KKworI2djLWhvbWUgeworbWFyZ2luOi41ZW0gMWVtIDA7Cit9CisKKyNnYy1ob21lIC5nLWMtZ2MtaG9tZSB7CitvdmVyZmxvdzpoaWRkZW47CitwYWRkaW5nOjA7Cit9CisKKyNnYy1ob21lIC5nLWZpcnN0IC5nLWMtZ2MtaG9tZSB7CitwYWRkaW5nOjAgMCAwIDMwcHg7Cit9CisKKy5nLWMtZ2MtaG9tZSBoMiB7CitwYWRkaW5nLXRvcDoxZW07CittYXJnaW46MDsKK30KKworI2djLWNvZGV2aWRlbyB7CittaW4taGVpZ2h0OjEyMHB4OworfQorCisjZ2MtZ2FkZ2V0cyB7CittaW4taGVpZ2h0OjIzMHB4OworbWFyZ2luOjJlbSAwIDA7Cit9CisKKyNnYy1nYWRnZXRzIC5nLXVuaXQgLmctYyB7CittYXJnaW46MCAwIDAgMTBweDsKK30KKworI2djLWdhZGdldHMgLmctZmlyc3QgLmctYyB7CittYXJnaW46MCAxMHB4IDAgMDsKK30KKworLmctdHBsLTE3MCAuZy11bml0LC5nLXVuaXQgLmctdHBsLTE3MCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMTcwIC5nLXVuaXQgeword2lkdGg6YXV0bzsKK2Zsb2F0Om5vbmU7CittYXJnaW46MCAwIDAgMTcwcHg7Cit9CisKKy5nLXVuaXQgLmctdW5pdCAuZy10cGwtMTcwIC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTE3MCAuZy1maXJzdCwuZy10cGwtMTcwIC5nLWZpcnN0IHsKK3dpZHRoOjE3MHB4OworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCisuZy10cGwtMTcwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdHBsLTE3MC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTE3MC1hbHQgLmctdW5pdCB7Cit3aWR0aDphdXRvOworZmxvYXQ6bm9uZTsKK21hcmdpbjowIDE3MHB4IDAgMDsKK30KKworLmctdW5pdCAuZy11bml0IC5nLXRwbC0xNzAtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTE3MC1hbHQgLmctZmlyc3QsLmctdHBsLTE3MC1hbHQgLmctZmlyc3Qgeword2lkdGg6MTcwcHg7CitmbG9hdDpyaWdodDsKK21hcmdpbjowOworfQorCisuZy10cGwtMTkwIC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMTkwIC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0xOTAgLmctdW5pdCB7Cit3aWR0aDphdXRvOworZmxvYXQ6bm9uZTsKK21hcmdpbjowIDAgMCAxOTBweDsKK30KKworLmctdW5pdCAuZy11bml0IC5nLXRwbC0xOTAgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMTkwIC5nLWZpcnN0LC5nLXRwbC0xOTAgLmctZmlyc3Qgeword2lkdGg6MTkwcHg7CitmbG9hdDpsZWZ0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0xOTAtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMTkwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMTkwLWFsdCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMTkwcHggMCAwOworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTE5MC1hbHQgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMTkwLWFsdCAuZy1maXJzdCwuZy10cGwtMTkwLWFsdCAuZy1maXJzdCB7Cit3aWR0aDoxOTBweDsKK2Zsb2F0OnJpZ2h0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0yMTAgLmctdW5pdCwuZy11bml0IC5nLXRwbC0yMTAgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTIxMCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMCAwIDIxMHB4OworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTIxMCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0yMTAgLmctZmlyc3QsLmctdHBsLTIxMCAuZy1maXJzdCB7Cit3aWR0aDoyMTBweDsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTIxMC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXRwbC0yMTAtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0yMTAtYWx0IC5nLXVuaXQgeword2lkdGg6YXV0bzsKK2Zsb2F0Om5vbmU7CittYXJnaW46MCAyMTBweCAwIDA7Cit9CisKKy5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjEwLWFsdCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0yMTAtYWx0IC5nLWZpcnN0LC5nLXRwbC0yMTAtYWx0IC5nLWZpcnN0IHsKK3dpZHRoOjIxMHB4OworZmxvYXQ6cmlnaHQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTIzMCAuZy11bml0LC5nLXVuaXQgLmctdHBsLTIzMCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjMwIC5nLXVuaXQgeword2lkdGg6YXV0bzsKK2Zsb2F0Om5vbmU7CittYXJnaW46MCAwIDAgMjMwcHg7Cit9CisKKy5nLXVuaXQgLmctdW5pdCAuZy10cGwtMjMwIC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTIzMCAuZy1maXJzdCwuZy10cGwtMjMwIC5nLWZpcnN0IHsKK3dpZHRoOjIzMHB4OworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCisuZy10cGwtMjMwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdHBsLTIzMC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTIzMC1hbHQgLmctdW5pdCB7Cit3aWR0aDphdXRvOworZmxvYXQ6bm9uZTsKK21hcmdpbjowIDIzMHB4IDAgMDsKK30KKworLmctdW5pdCAuZy11bml0IC5nLXRwbC0yMzAtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTIzMC1hbHQgLmctZmlyc3QsLmctdHBsLTIzMC1hbHQgLmctZmlyc3Qgeword2lkdGg6MjMwcHg7CitmbG9hdDpyaWdodDsKK21hcmdpbjowOworfQorCisuZy10cGwtMzMwIC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMzMwIC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0zMzAgLmctdW5pdCB7Cit3aWR0aDphdXRvOworZmxvYXQ6bm9uZTsKK21hcmdpbjowIDAgMCAzMzBweDsKK30KKworLmctdW5pdCAuZy11bml0IC5nLXRwbC0zMzAgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMzMwIC5nLWZpcnN0LC5nLXRwbC0zMzAgLmctZmlyc3Qgeword2lkdGg6MzMwcHg7CitmbG9hdDpsZWZ0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0zMzAtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy10cGwtMzMwLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzMwLWFsdCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMzMwcHggMCAwOworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTMzMC1hbHQgLmctZmlyc3QsLmctdW5pdCAuZy10cGwtMzMwLWFsdCAuZy1maXJzdCwuZy10cGwtMzMwLWFsdCAuZy1maXJzdCB7Cit3aWR0aDozMzBweDsKK2Zsb2F0OnJpZ2h0OworbWFyZ2luOjA7Cit9CisKKy5nLXRwbC0zNzAgLmctdW5pdCwuZy11bml0IC5nLXRwbC0zNzAgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdHBsLTM3MCAuZy11bml0IHsKK3dpZHRoOmF1dG87CitmbG9hdDpub25lOworbWFyZ2luOjAgMCAwIDM3MHB4OworfQorCisuZy11bml0IC5nLXVuaXQgLmctdHBsLTM3MCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0zNzAgLmctZmlyc3QsLmctdHBsLTM3MCAuZy1maXJzdCB7Cit3aWR0aDozNzBweDsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTM3MC1hbHQgLmctdW5pdCwuZy11bml0IC5nLXRwbC0zNzAtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXRwbC0zNzAtYWx0IC5nLXVuaXQgeword2lkdGg6YXV0bzsKK2Zsb2F0Om5vbmU7CittYXJnaW46MCAzNzBweCAwIDA7Cit9CisKKy5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzcwLWFsdCAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0zNzAtYWx0IC5nLWZpcnN0LC5nLXRwbC0zNzAtYWx0IC5nLWZpcnN0IHsKK3dpZHRoOjM3MHB4OworZmxvYXQ6cmlnaHQ7CittYXJnaW46MDsKK30KKworLmctdHBsLTM0LTMzLTMzLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdHBsLTM0LTMzLTMzLWFsdCAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzQtMzMtMzMtYWx0IC5nLXVuaXQsLmctdW5pdCAuZy11bml0IC5nLXVuaXQgLmctdHBsLTM0LTMzLTMzLWFsdCAuZy11bml0IHsKK3dpZHRoOjMyLjk5OSU7CitmbG9hdDpyaWdodDsKK21hcmdpbjowOworfQorCisuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzQtMzMtMzMtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzQtMzMtMzMtYWx0IC5nLWZpcnN0LC5nLXVuaXQgLmctdHBsLTM0LTMzLTMzLWFsdCAuZy1maXJzdCwuZy10cGwtMzQtMzMtMzMtYWx0IC5nLWZpcnN0IHsKK3dpZHRoOjMzLjk5OSU7CitmbG9hdDpyaWdodDsKK21hcmdpbjowOworfQorCisuZy10cGwtMzQtMzMtMzMgLmctdW5pdCwuZy11bml0IC5nLXRwbC0zNC0zMy0zMyAuZy11bml0LC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzQtMzMtMzMgLmctdW5pdCwuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzQtMzMtMzMgLmctdW5pdCB7Cit3aWR0aDozMi45OTklOworZmxvYXQ6bGVmdDsKK21hcmdpbjowOworfQorCisuZy11bml0IC5nLXVuaXQgLmctdW5pdCAuZy10cGwtMzQtMzMtMzMgLmctZmlyc3QsLmctdW5pdCAuZy11bml0IC5nLXRwbC0zNC0zMy0zMyAuZy1maXJzdCwuZy11bml0IC5nLXRwbC0zNC0zMy0zMyAuZy1maXJzdCwuZy10cGwtMzQtMzMtMzMgLmctZmlyc3Qgeword2lkdGg6MzMuOTk5JTsKK2Zsb2F0OmxlZnQ7CittYXJnaW46MDsKK30KKworaW1nLCNnYy1oZWFkZXIgYSBpbWcgeworYm9yZGVyOm5vbmU7CittYXJnaW46MDsKK3BhZGRpbmc6MDsKK30KKworZm9ybSx0ZCAqK3AsdGFibGUuY29sdW1ucz50cj50ZD5wLHRhYmxlLmNvbHVtbnM+dGJvZHk+dHI+dGQ+cCB7CittYXJnaW46MWVtIDAgMDsKK3BhZGRpbmc6MDsKK30KKworLmxhYnMgI2djLXBhZ2Vjb250ZW50IGgxLC5sYWJzICNnYy10b3BuYXYgeworYmFja2dyb3VuZC1jb2xvcjojZGNmNmRiOworYm9yZGVyLXRvcDoxcHggc29saWQgIzA5MDsKK30KKworLmRlcHIgI2djLXBhZ2Vjb250ZW50IGgxLC5kZXByICNnYy10b3BuYXYgeworYmFja2dyb3VuZC1jb2xvcjojZGRkOworYm9yZGVyLXRvcDoxcHggc29saWQgIzMzMzsKK30KKworLmxpc3RoZWFkIGxpLC5saXN0aGVhZCBsaSAqIGIsLmxpc3RoZWFkIGxpICogc3Ryb25nLCNnYy10b3BuYXYgYS5zZWxlY3RlZCwjZ2MtdG9wbmF2IGEuc2VsZWN0ZWQ6dmlzaXRlZCB7Citmb250LXdlaWdodDo3MDA7Cit9CisKK29sLnRvYyBsaSBvbCxkaXYudG9jIG9sIGxpIG9sLC50ZXJtcyBmb3JtLC50ZXJtc2JveCBmb3JtIHsKK21hcmdpbjowOworcGFkZGluZzowOworfQorCit0YWJsZSBvbC50b2MsdGQgaDEsdGQgaDIsdGQgaDMsdGQgaDQsdGQgaDUsLmljb25saXN0LC5ub2luZGVudCB7CittYXJnaW4tbGVmdDowOworfQorCisubGFicyAjZ2MtcGFnZWNvbnRlbnQgdGgsLmxhYnMgI2djLXRvYyB1bCAuc2VsZWN0ZWQsLmxhYnMgI2djLXRvYyBvbCAuc2VsZWN0ZWQsLmxhYnMgLnRyZWVsaXN0IC5zZWxlY3RlZCwubGFicyAjZ2MtY29sbGFwc2libGUgeworYmFja2dyb3VuZC1jb2xvcjojZGNmNmRiOworfQorCisuZG91Ymxlc3BhY2UsLmRvdWJsZXNwYWNlPmxpLCNnYy1ob21lIGg0LCNnYy1ob21lIGltZyB7CittYXJnaW4tdG9wOjFlbTsKK30KKworI2djLXRvYyAqLCNnYy10b2MudmlzaWJsZSAqIHsKK3pvb206MTsKK30KKworLnRyZWVsaXN0IGxpIGgyLC5nc2MtcmVzdWx0cyAuZ3NjLWN1cnNvciB7CitkaXNwbGF5OmlubGluZTsKK30KKworLmRlcHIgI2djLXRvYyB1bCAuc2VsZWN0ZWQsLmRlcHIgI2djLXRvYyBvbCAuc2VsZWN0ZWQsLmRlcHIgLnRyZWVsaXN0IC5zZWxlY3RlZCwuZGVwciAjZ2MtY29sbGFwc2libGUgeworYmFja2dyb3VuZC1jb2xvcjojZGRkOworfQorCisudHJlZWxpc3QgLnRsdy1oaWRkZW4sI2djLXRvYy5oaWRkZW4sI25hdnNob3dhcnJvdywjbmF2dG9nZ2xlLnNob3cgI25hdmhpZGVhcnJvdywjc2VhcmNoQ29udHJvbCAuZ3NjLXNlYXJjaC1ib3gsI3NlYXJjaENvbnRyb2wgLmdzYy1hZC1ib3gsdGQuZ3NjLWNsZWFyLWJ1dHRvbiwuZ3NjLWJyYW5kaW5nLC5nc2MtdGFic0FyZWFJbnZpc2libGUsLmdzYy10YWJEYXRhLmdzYy10YWJkSW5hY3RpdmUsI3NlYXJjaENvbnRyb2wgLmdzLXB1Ymxpc2hlciwuZ3NjLXJlc3VsdCBkaXYuZ3Mtd2F0ZXJtYXJrLC5nc2MtcmVzdWx0c0hlYWRlciwuZ3NjLXdlYlJlc3VsdCBkaXYuZ3MtdmlzaWJsZVVybC1zaG9ydCB7CitkaXNwbGF5Om5vbmU7Cit9CisKKyNuYXZoaWRlYXJyb3csI25hdnRvZ2dsZS5zaG93ICNuYXZzaG93YXJyb3csLmdzYy10YWJEYXRhLmdzYy10YWJkQWN0aXZlIHsKK2Rpc3BsYXk6YmxvY2s7Cit9CisKKy5nc2MtcmVzdWx0cyAuZ3NjLXRyYWlsaW5nLW1vcmUtcmVzdWx0cywuZ3NjLXJlc3VsdHMgLmdzYy1jdXJzb3ItYm94IHsKK21hcmdpbi1ib3R0b206MTBweDsKK30KKworLmdzYy1yZXN1bHRzIC5nc2MtdHJhaWxpbmctbW9yZS1yZXN1bHRzLC5nc2MtcmVzdWx0cyAuZ3NjLXRyYWlsaW5nLW1vcmUtcmVzdWx0cyAqLC5ncy1yZXN1bHQgLmdzLXRpdGxlLC5ncy1yZXN1bHQgLmdzLXRpdGxlICogeworY29sb3I6IzAwYzsKK3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Cit9CisKKy5zdHIsLmF0diB7Citjb2xvcjojMDgwOworfQorCisua3dkLC50YWcgeworY29sb3I6IzAwODsKK30KKworLnR5cCwuYXRuLC5kZWMgeworY29sb3I6IzYwNjsKK30KK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL3N0YXRpYy93ZWJhcHAyLmNzcyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL3N0YXRpYy93ZWJhcHAyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2I1ZThlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9fdGhlbWVzL3dlYmFwcDIvc3RhdGljL3dlYmFwcDIuY3NzCkBAIC0wLDAgKzEsMjU4IEBACitAaW1wb3J0IHVybCgiLi9iYXNpYy5jc3MiKTsKK0BpbXBvcnQgdXJsKCIuL2djb2RlLmNzcyIpOworCisvKiBUaGlzIHN0eWxlc2hlZXQgaXMgc3RpbCBhIG1lc3MuIDopICovCisKK2h0bWwsYm9keXsKKyAgaGVpZ2h0OmF1dG87CisgIG1hcmdpbjowOworICBwYWRkaW5nOjA7Cit9Citib2R5eworICBmb250LWZhbWlseTpIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjsKKyAgZm9udC1zaXplOnNtYWxsOworICBjb2xvcjojMDAwOworICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7CisgIG1hcmdpbjowIDEwcHgKK30KK2EsYTpsaW5rLAorYSB0dC5saXRlcmFsIHNwYW4ucHJlLCBhOmxpbmsgdHQubGl0ZXJhbCBzcGFuLnByZSB7CisgIGNvbG9yOiMwMGM7CisgIGZvbnQtd2VpZ2h0Om5vcm1hbDsKK30KK2E6YWN0aXZlLAorYTphY3RpdmUgdHQubGl0ZXJhbCBzcGFuLnByZSB7CisgIGNvbG9yOnJlZAorfQorYTp2aXNpdGVkLAorYTp2aXNpdGVkIHR0LmxpdGVyYWwgc3Bhbi5wcmUgeworICBjb2xvcjojNTUxYThiCit9CitweworICBwYWRkaW5nOjFlbSAwIDAgMDsKKyAgbWFyZ2luOjA7CisgIGxpbmUtaGVpZ2h0OjEyNSUKK30KK2ltZ3sKKyAgYm9yZGVyOm5vbmU7CisgIHBhZGRpbmc6MDsKKyAgbWFyZ2luOjAKK30KK2EgaW1neworICBib3JkZXI6MXB4IHNvbGlkOworICBwYWRkaW5nOjFweAorfQorY29kZSxwcmV7CisgIGZvbnQtZmFtaWx5Om1vbm9zcGFjZTsKKyAgY29sb3I6IzAwNzAwMAorfQorY29kZXsKKyAgZm9udC1zaXplOjEwcHQKK30KK3ByZXsKKyAgZm9udC1zaXplOjlwdDsKKyAgYmFja2dyb3VuZC1jb2xvcjojZmFmYWZhOworICBib3JkZXI6MXB4IHNvbGlkICNiYmI7CisgIGxpbmUtaGVpZ2h0OjEyNSU7CisgIG1hcmdpbjoxZW0gMCAwIDA7CisgIHBhZGRpbmc6Ljk5ZW07CisgIG92ZXJmbG93OmF1dG87CisgIHdvcmQtd3JhcDpicmVhay13b3JkCit9CisuYm9keSBoMSB7CisgIGxpbmUtaGVpZ2h0OiAxMzAlOworICBmb250LXNpemU6IDE3MCU7CisgIG1hcmdpbjogMCAwIDAgLTEwcHg7CisgIHBhZGRpbmc6IC44ZW0gMCAwIDA7CisgIGJvcmRlcjogbm9uZTsKKyAgYmFja2dyb3VuZDogbm9uZTsKK30KKy5ib2R5IGgyLCAuYm9keSBoMywgLmJvZHkgaDQsIC5ib2R5IGg1LCAuYm9keSBoNiB7CisgIGZvbnQtc2l6ZTogMTMwJTsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIG1hcmdpbjogMmVtIDAgNXB4IC0xMHB4OworICBwYWRkaW5nOiAxcHggM3B4IDFweCAzcHg7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzNkM7CisgIGJhY2tncm91bmQtY29sb3I6ICNFNUVDRjk7Cit9CitlbSB7CisgIGZvbnQtc3R5bGU6IG5vcm1hbDsKK30KKy5zZWN0aW9uIHsKKyAgbWFyZ2luOiAwIDAgMCAwOworICBwYWRkaW5nOiAwIDAgMCAwOworfQorLndob2xlcGFnZSB7CisgIHBhZGRpbmc6IDAgMTBweDsKK30KKy5ib2R5IHsKKyAgcGFkZGluZzogMDsKKyAgbWFyZ2luOiAwIDAgMWVtIDA7CisgIG1hcmdpbi1sZWZ0OiAyMDNweDsKK30KKy5ib2R5IHsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworfQorY29kZSwgcHJlIHsKKyAgY29sb3I6ICMwMDA7Cit9CitzcGFuLnByZSB7CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgIGNvbG9yOiAjMDA3MDAwOworfQorZGl2LnJlbGF0ZWQgeworICBmbG9hdDogbm9uZTsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICBib3JkZXItdG9wOiAxcHggc29saWQgIzM2QzsKKyAgYmFja2dyb3VuZC1jb2xvcjogI0U1RUNGOTsKKyAgaGVpZ2h0OiAyLjBlbTsKKyAgbGluZS1oZWlnaHQ6IDFlbTsKKyAgd2lkdGg6IDEwMCU7CisgIGZvbnQtc2l6ZTogMTAwJTsKKyAgbWFyZ2luLXRvcDogMWVtOworfQorLnBsdXNvbmUgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIHRvcDogMC40ZW07CisgIHJpZ2h0OiAxMHB4OworfQorZGl2LnJlbGF0ZWQtYm90dG9tIHsKKyAgbWFyZ2luLXRvcDogMmVtOworfQorZGl2LnJlbGF0ZWQgdWwgeworICBmbG9hdDogbm9uZTsKKyAgcG9zaXRpb246IGFic29sdXRlOworICByaWdodDogNXB4OworICB0b3A6IDAuNGVtOworICBtYXJnaW4tcmlnaHQ6IDUycHg7Cit9CitkaXYucmVsYXRlZCBsaS5yaWdodCB7CisgIGZsb2F0OiBub25lOworICBtYXJnaW46IDA7Cit9Cit0aC5maWVsZC1uYW1lIHsKKyAgYmFja2dyb3VuZDogI0ZGRjsKK30KK2Rpdi50b3BpYyB7CisgIGJvcmRlcjogMDsKK30KK3AubG9nbyBhIGltZyB7CisgIGJvcmRlcjogbm9uZTsKK30KK2Rpdi5mb290ZXIgeworICBtYXJnaW46IDFlbSAwOworICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CitkaXYuYWRtb25pdGlvbiB7CisgIG1hcmdpbjogMWVtIDAgMCAwOworICBwYWRkaW5nOiAuMmVtIC41ZW0gLjJlbSAuOWVtOworICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUZFRkVGOworICBib3JkZXItdG9wOiAxcHggc29saWQgI0JCQjsKKyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCQkI7Cit9CitkaXYuYWRtb25pdGlvbiBwIHsKKyAgbWFyZ2luOiAwIDAgMWVtOworICBwYWRkaW5nOiAwOworfQorZGl2LmFkbW9uaXRpb24gcC5hZG1vbml0aW9uLXRpdGxlIHsKKyAgbWFyZ2luOiAwIDAgM3B4OworICBwYWRkaW5nOiAwOworfQorZGl2LmFkbW9uaXRpb24gcC5sYXN0IHsKKyAgbWFyZ2luOiAwIDAgMDsKK30KK2Rpdi5zcGhpbnhzaWRlYmFyIHsKKyAgZmxvYXQ6IHJpZ2h0OworICB3aWR0aDogMTcwcHg7CisgIG1hcmdpbi1yaWdodDogLTE3M3B4OworICBib3JkZXItcmlnaHQ6M3B4IHNvbGlkICNFNUVDRjk7CisgIHBhZGRpbmctYm90dG9tOiA1MHB4OworICBmb250LXNpemU6IDEzcHg7Cit9CitkaXYuc3BoaW54c2lkZWJhciBoMiwgZGl2LnNwaGlueHNpZGViYXIgaDMsIGRpdi5zcGhpbnhzaWRlYmFyIGg0LAorZGl2LnNwaGlueHNpZGViYXIgaDIgYSwgZGl2LnNwaGlueHNpZGViYXIgaDIgYTpsaW5rLCBkaXYuc3BoaW54c2lkZWJhciBoMiBhOmFjdGl2ZSwgZGl2LnNwaGlueHNpZGViYXIgaDIgYTp2aXNpdGVkLAorZGl2LnNwaGlueHNpZGViYXIgaDMgYSwgZGl2LnNwaGlueHNpZGViYXIgaDMgYTpsaW5rLCBkaXYuc3BoaW54c2lkZWJhciBoMyBhOmFjdGl2ZSwgZGl2LnNwaGlueHNpZGViYXIgaDMgYTp2aXNpdGVkLAorZGl2LnNwaGlueHNpZGViYXIgaDQgYSwgZGl2LnNwaGlueHNpZGViYXIgaDQgYTpsaW5rLCBkaXYuc3BoaW54c2lkZWJhciBoNCBhOmFjdGl2ZSwgZGl2LnNwaGlueHNpZGViYXIgaDQgYTp2aXNpdGVkIHsKKyAgZm9udC1zaXplOiAxM3B4OworICBmb250LXdlaWdodDogYm9sZDsKKyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICBjb2xvcjogIzAwMDsKKyAgbWFyZ2luOiAxZW0gMCAuNWVtOworICBwYWRkaW5nOiAwOworfQorZGl2LnNwaGlueHNpZGViYXIgcCwgZGl2LnNwaGlueHNpZGViYXIgcC50b3BsZXNzIHsKKyAgbWFyZ2luLXRvcDogMDsKKyAgcGFkZGluZy10b3A6IDA7Cit9CitkaXYuZG9jdW1lbnR3cmFwcGVyIHsKKyAgd2lkdGg6MTAwJTsKKyAgZmxvYXQ6cmlnaHQ7Cit9CitkaXYuc3BoaW54c2lkZWJhciB1bCwKK2Rpdi5zcGhpbnhzaWRlYmFyIHVsIHVsLAorZGl2LnNwaGlueHNpZGViYXIgdWwud2FudC1wb2ludHMsCitkaXYuc3BoaW54c2lkZWJhciB1bCBsaSB7CisgICAgbWFyZ2luLWxlZnQ6IDA7Cit9CitkaXYuc3BoaW54c2lkZWJhciB1bCB1bCBsaSB7CisgICAgbWFyZ2luLWxlZnQ6IDEuNWVtOworfQorI2hlYWRlciB7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgbWluLWhlaWdodDogNzlweDsKK30KKyNoZWFkZXIgI3NlYXJjaGJveCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAxNXB4OworICBsZWZ0OiAyNzJweDsKK30KKyNoZWFkZXIgI3NlYXJjaGJveCAuc2VhcmNodGlwIHsKKyAgY29sb3I6ICNBQUE7CisgIGZvbnQtc2l6ZTogc21hbGw7CisgIGhlaWdodDogMTRweDsKKyAgcGFkZGluZzogMDsKKyAgbWFyZ2luOiAwOworfQorYS5oZWFkZXJsaW5rIHsKKyAgY29sb3I6ICMwMDA7CisgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKy8qIEFQSSBkb2NzICovCitkbC5kb2N1dGlscyB7CisgIG1hcmdpbi10b3A6IDBlbTsKK30KK2RsLmNsYXNzLAorZGwuYXR0cmlidXRlLAorZGwubWV0aG9kLAorZGwuZnVuY3Rpb24geworICBtYXJnaW4tdG9wOiAxZW07CisgIHBhZGRpbmctdG9wOiAwLjhlbTsKKyAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjQjNCM0IzOworfQorZGwuY2xhc3MsIGRsLmRhdGEgeworICBtYXJnaW4tdG9wOiAyZW07CisgIHBhZGRpbmctdG9wOiAxLjhlbTsKKyAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5OTk7Cit9Cit0dCwgdHQuZGVzY25hbWUsIHR0LmRlc2NjbGFzc25hbWUsIGR0IGJpZywgZHQgZW0geworICBmb250LXNpemU6IDEzcHg7Cit9CitibG9ja3F1b3RlIHsKKyAgbWFyZ2luLWxlZnQ6IDFlbTsKK30KK3RhYmxlLmluZGV4dGFibGUsIHRhYmxlLmdlbmluZGV4dGFibGUsIHRhYmxlLm1vZGluZGV4dGFibGUgeworICBib3JkZXItd2lkdGg6IDAgIWltcG9ydGFudDsKKyAgYm9yZGVyLWNvbG9yOiAjRkZGICFpbXBvcnRhbnQ7Cit9Cit0YWJsZS5pbmRleHRhYmxlIGEsIHRhYmxlLmluZGV4dGFibGUgYTpsaW5rIHsKKyAgY29sb3I6ICMwMDA7CisgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KK3RhYmxlLmluZGV4dGFibGUgYTpob3ZlciwgdGFibGUuaW5kZXh0YWJsZSBhOmFjdGl2ZSB7CisgIGNvbG9yOiAjMDBjOworICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KK3RhYmxlLmluZGV4dGFibGUgYTp2aXNpdGVkIHsKKyAgY29sb3I6IzU1MWE4YjsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvX3RoZW1lcy93ZWJhcHAyL3RoZW1lLmNvbmYgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL190aGVtZXMvd2ViYXBwMi90aGVtZS5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMzkyYWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL190aGVtZXMvd2ViYXBwMi90aGVtZS5jb25mCkBAIC0wLDAgKzEsMTEgQEAKK1t0aGVtZV0KK2luaGVyaXQgPSBiYXNpYworc3R5bGVzaGVldCA9IHdlYmFwcDIuY3NzCitweWdtZW50c19zdHlsZSA9IHB5Z2FwcDIKKworW29wdGlvbnNdCitub3NpZGViYXIgPSBmYWxzZQorc2lkZWJhcndpZHRoID0gMjAwCitsb2dvX3dpZHRoID0KK2xvZ29faGVpZ2h0ID0KK2FuYWx5dGljc19jb2RlID0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5jb25maWcucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmNvbmZpZy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI3OWY2NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5jb25maWcucnN0CkBAIC0wLDAgKzEsMyBAQAorQ29uZmlndXJhdGlvbgorPT09PT09PT09PT09PQorVGhpcyBwYWdlIG1vdmVkIHRvIDpyZWY6YGFwaS53ZWJhcHAyX2V4dHJhcy5jb25maWdgLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmkxOG4ucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmkxOG4ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NzdhOTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuaTE4bi5yc3QKQEAgLTAsMCArMSwzIEBACitpMThuCis9PT09CitUaGlzIHBhZ2UgbW92ZWQgdG8gOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLmkxOG5gLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmppbmphMi5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuamluamEyLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTVmZDRiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmppbmphMi5yc3QKQEAgLTAsMCArMSwzIEBACitKaW5qYTIKKz09PT09PQorVGhpcyBwYWdlIG1vdmVkIHRvIDpyZWY6YGFwaS53ZWJhcHAyX2V4dHJhcy5qaW5qYTJgLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmpzb24ucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmpzb24ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzM1MDkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuanNvbi5yc3QKQEAgLTAsMCArMSwzIEBACitKU09OCis9PT09CitUaGlzIHBhZ2UgbW92ZWQgdG8gOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLmpzb25gLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmxvY2FsLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5sb2NhbC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ4MzhmYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5sb2NhbC5yc3QKQEAgLTAsMCArMSwzIEBACitMb2NhbAorPT09PT0KK1RoaXMgcGFnZSBtb3ZlZCB0byA6cmVmOmBhcGkud2ViYXBwMl9leHRyYXMubG9jYWxgLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmxvY2FsX2FwcC5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMubG9jYWxfYXBwLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTY1MGZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLmxvY2FsX2FwcC5yc3QKQEAgLTAsMCArMSwzIEBACitMb2NhbCBBcHAKKz09PT09PT09PQorVGhpcyBwYWdlIG1vdmVkIHRvIDpyZWY6YGFwaS53ZWJhcHAyX2V4dHJhcy5sb2NhbF9hcHBgLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLm1ha28ucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLm1ha28ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzODExMGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMubWFrby5yc3QKQEAgLTAsMCArMSwzIEBACitNYWtvCis9PT09CitUaGlzIHBhZ2UgbW92ZWQgdG8gOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLm1ha29gLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLnJvdXRlcy5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMucm91dGVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTM0MDc1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLnJvdXRlcy5yc3QKQEAgLTAsMCArMSwzIEBACitFeHRyYSByb3V0ZXMKKz09PT09PT09PT09PQorVGhpcyBwYWdlIG1vdmVkIHRvIDpyZWY6YGFwaS53ZWJhcHAyX2V4dHJhcy5yb3V0ZXNgLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLnNlY3VyZWNvb2tpZS5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2VjdXJlY29va2llLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGYwNDkzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLnNlY3VyZWNvb2tpZS5yc3QKQEAgLTAsMCArMSwzIEBACitTZWN1cmUgY29va2llcworPT09PT09PT09PT09PT0KK1RoaXMgcGFnZSBtb3ZlZCB0byA6cmVmOmBhcGkud2ViYXBwMl9leHRyYXMuc2VjdXJlY29va2llYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5zZWN1cml0eS5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2VjdXJpdHkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYzc4MjMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2VjdXJpdHkucnN0CkBAIC0wLDAgKzEsMyBAQAorU2VjdXJpdHkKKz09PT09PT09CitUaGlzIHBhZ2UgbW92ZWQgdG8gOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLnNlY3VyaXR5YC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5zZXNzaW9ucy5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMTBkMDMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnMucnN0CkBAIC0wLDAgKzEsMyBAQAorU2Vzc2lvbnMKKz09PT09PT09CitUaGlzIHBhZ2UgbW92ZWQgdG8gOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLnNlc3Npb25zYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5zZXNzaW9uc19tZW1jYWNoZS5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnNfbWVtY2FjaGUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNDc1OWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnNfbWVtY2FjaGUucnN0CkBAIC0wLDAgKzEsMyBAQAorTWVtY2FjaGUgc2Vzc2lvbnMKKz09PT09PT09PT09PT09PT09CitUaGlzIHBhZ2UgbW92ZWQgdG8gOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5zZXNzaW9uc19tZW1jYWNoZWAuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnNfbmRiLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy5zZXNzaW9uc19uZGIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NTQ2NTMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnNfbmRiLnJzdApAQCAtMCwwICsxLDMgQEAKK0RhdGFzdG9yZSBzZXNzaW9ucworPT09PT09PT09PT09PT09PT09CitUaGlzIHBhZ2UgbW92ZWQgdG8gOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5zZXNzaW9uc19uZGJgLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvZXh0cmFzLnVzZXJzLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy51c2Vycy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc2M2ZlZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2V4dHJhcy51c2Vycy5yc3QKQEAgLTAsMCArMSwzIEBACitVc2VycworPT09PT0KK1RoaXMgcGFnZSBtb3ZlZCB0byA6cmVmOmBhcGkud2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLnVzZXJzYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2luZGV4LnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmJkNjAzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvaW5kZXgucnN0CkBAIC0wLDAgKzEsMTAgQEAKKy4uIF9hcGkuaW5kZXg6CisKK0FQSQorPT09CisuLiB0b2N0cmVlOjoKKyAgIDpnbG9iOgorICAgOm1heGRlcHRoOiAzCisKKyAgIHdlYmFwcDIKKyAgIHdlYmFwcDJfZXh0cmFzKioKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDIucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRiMWQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDIucnN0CkBAIC0wLDAgKzEsMTUyIEBACisuLiBfYXBpLndlYmFwcDI6CisKK3dlYmFwcDIKKz09PT09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDIKKworLSBXU0dJIGFwcAorCisgIC0gOmNsYXNzOmBXU0dJQXBwbGljYXRpb25gCisgIC0gOmNsYXNzOmBSZXF1ZXN0Q29udGV4dGAKKworLSBVUkkgcm91dGluZworCisgIC0gOmNsYXNzOmBSb3V0ZXJgCisgIC0gOmNsYXNzOmBCYXNlUm91dGVgCisgIC0gOmNsYXNzOmBTaW1wbGVSb3V0ZWAKKyAgLSA6Y2xhc3M6YFJvdXRlYAorCistIENvbmZpZ3VyYXRpb24KKworICAtIDpjbGFzczpgQ29uZmlnYAorCistIFJlcXVlc3QgYW5kIFJlc3BvbnNlCisKKyAgLSA6Y2xhc3M6YFJlcXVlc3RgCisgIC0gOmNsYXNzOmBSZXNwb25zZWAKKworLSBSZXF1ZXN0IGhhbmRsZXJzCisKKyAgLSA6Y2xhc3M6YFJlcXVlc3RIYW5kbGVyYAorICAtIDpjbGFzczpgUmVkaXJlY3RIYW5kbGVyYAorCistIFV0aWxpdGllcworCisgIC0gOmNsYXNzOmBjYWNoZWRfcHJvcGVydHlgCisgIC0gOmZ1bmM6YGdldF9hcHBgCisgIC0gOmZ1bmM6YGdldF9yZXF1ZXN0YAorICAtIDpmdW5jOmByZWRpcmVjdGAKKyAgLSA6ZnVuYzpgcmVkaXJlY3RfdG9gCisgIC0gOmZ1bmM6YHVyaV9mb3JgCisgIC0gOmZ1bmM6YGFib3J0YAorICAtIDpmdW5jOmBpbXBvcnRfc3RyaW5nYAorICAtIDpmdW5jOmB1cmx1bnNwbGl0YAorCisKK1dTR0kgYXBwCistLS0tLS0tLQorLi4gc2VlYWxzbzo6CisgICA6cmVmOmBndWlkZS5hcHBgCisKKy4uIGF1dG9jbGFzczo6IFdTR0lBcHBsaWNhdGlvbgorICAgOm1lbWJlcnM6IHJlcXVlc3RfY2xhc3MsIHJlc3BvbnNlX2NsYXNzLCByZXF1ZXN0X2NvbnRleHRfY2xhc3MsCisgICAgICAgICAgICAgcm91dGVyX2NsYXNzLCBjb25maWdfY2xhc3MsCisgICAgICAgICAgICAgZGVidWcsIHJvdXRlciwgY29uZmlnLCByZWdpc3RyeSwgZXJyb3JfaGFuZGxlcnMsIGFwcCwgcmVxdWVzdCwKKyAgICAgICAgICAgICBhY3RpdmVfaW5zdGFuY2UsIGFsbG93ZWRfbWV0aG9kcywKKyAgICAgICAgICAgICBfX2luaXRfXywgX19jYWxsX18sIHNldF9nbG9iYWxzLCBjbGVhcl9nbG9iYWxzLAorICAgICAgICAgICAgIGhhbmRsZV9leGNlcHRpb24sIHJ1biwgZ2V0X3Jlc3BvbnNlCisKKy4uIGF1dG9jbGFzczo6IFJlcXVlc3RDb250ZXh0CisgICA6bWVtYmVyczogX19pbml0X18sIF9fZW50ZXJfXywgX19leGl0X18KKworCitVUkkgcm91dGluZworLS0tLS0tLS0tLS0KKy4uIHNlZWFsc286OgorICAgOnJlZjpgZ3VpZGUuYXBwLnJvdXRlcmAgYW5kIDpyZWY6YGd1aWRlLnJvdXRpbmdgCisKKy4uIGF1dG9jbGFzczo6IFJvdXRlcgorICAgOm1lbWJlcnM6IHJvdXRlX2NsYXNzLCBfX2luaXRfXywgYWRkLAorICAgICAgICAgICAgIG1hdGNoLCBidWlsZCwKKyAgICAgICAgICAgICBkaXNwYXRjaCwgYWRhcHQsCisgICAgICAgICAgICAgZGVmYXVsdF9tYXRjaGVyLCBkZWZhdWx0X2J1aWxkZXIsCisgICAgICAgICAgICAgZGVmYXVsdF9kaXNwYXRjaGVyLCBkZWZhdWx0X2FkYXB0ZXIsCisgICAgICAgICAgICAgc2V0X21hdGNoZXIsIHNldF9idWlsZGVyLAorICAgICAgICAgICAgIHNldF9kaXNwYXRjaGVyLCBzZXRfYWRhcHRlcgorCisuLiBhdXRvY2xhc3M6OiBCYXNlUm91dGUKKyAgIDptZW1iZXJzOiB0ZW1wbGF0ZSwgbmFtZSwgaGFuZGxlciwgaGFuZGxlcl9tZXRob2QsIGhhbmRsZXJfYWRhcHRlciwKKyAgICAgICAgICAgICBidWlsZF9vbmx5LCBtYXRjaCwgYnVpbGQsIGdldF9yb3V0ZXMsIGdldF9tYXRjaF9yb3V0ZXMsCisgICAgICAgICAgICAgZ2V0X2J1aWxkX3JvdXRlcworCisuLiBhdXRvY2xhc3M6OiBTaW1wbGVSb3V0ZQorICAgOm1lbWJlcnM6IF9faW5pdF9fLCBtYXRjaAorCisuLiBhdXRvY2xhc3M6OiBSb3V0ZQorICAgOm1lbWJlcnM6IF9faW5pdF9fLCBtYXRjaCwgYnVpbGQKKworCitDb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tCisuLiBzZWVhbHNvOjoKKyAgIDpyZWY6YGd1aWRlLmFwcC5jb25maWdgCisKKy4uIGF1dG9jbGFzczo6IENvbmZpZworICAgOm1lbWJlcnM6IF9faW5pdF9fLCBsb2FkX2NvbmZpZworCisKK1JlcXVlc3QgYW5kIFJlc3BvbnNlCistLS0tLS0tLS0tLS0tLS0tLS0tLQorLi4gc2VlYWxzbzo6CisgICA6cmVmOmBndWlkZS5yZXF1ZXN0YCBhbmQgOnJlZjpgZ3VpZGUucmVzcG9uc2VgCisKKy4uIGF1dG9jbGFzczo6IFJlcXVlc3QKKyAgIDptZW1iZXJzOiBhcHAsIHJlc3BvbnNlLCByb3V0ZSwgcm91dGVfYXJncywgcm91dGVfa3dhcmdzLCByZWdpc3RyeSwKKyAgICAgICAgICAgICBfX2luaXRfXywgZ2V0LCBnZXRfYWxsLCBhcmd1bWVudHMsIGdldF9yYW5nZQorCisKKy4uIGF1dG9jbGFzczo6IFJlc3BvbnNlCisgICA6bWVtYmVyczogX19pbml0X18sIHN0YXR1cywgc3RhdHVzX21lc3NhZ2UsIGhhc19lcnJvciwgY2xlYXIsIHdzZ2lfd3JpdGUsCisgICAgICAgICAgICAgaHR0cF9zdGF0dXNfbWVzc2FnZQorCisKK1JlcXVlc3QgaGFuZGxlcnMKKy0tLS0tLS0tLS0tLS0tLS0KKy4uIHNlZWFsc286OgorICAgOnJlZjpgZ3VpZGUuaGFuZGxlcnNgCisKKy4uIGF1dG9jbGFzczo6IFJlcXVlc3RIYW5kbGVyCisgICA6bWVtYmVyczogYXBwLCByZXF1ZXN0LCByZXNwb25zZSwgX19pbml0X18sIGluaXRpYWxpemUsIGRpc3BhdGNoLCBlcnJvciwKKyAgICAgICAgICAgICBhYm9ydCwgcmVkaXJlY3QsIHJlZGlyZWN0X3RvLCB1cmlfZm9yLCBoYW5kbGVfZXhjZXB0aW9uCisKKworLi4gYXV0b2NsYXNzOjogUmVkaXJlY3RIYW5kbGVyCisgICA6bWVtYmVyczogZ2V0CisKKworVXRpbGl0aWVzCistLS0tLS0tLS0KK1RoZXNlIGFyZSBzb21lIG90aGVyIHV0aWxpdGllcyBhbHNvIGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuCisKKy4uIGF1dG9jbGFzczo6IGNhY2hlZF9wcm9wZXJ0eQorCisuLiBhdXRvZnVuY3Rpb246OiBnZXRfYXBwCisKKy4uIGF1dG9mdW5jdGlvbjo6IGdldF9yZXF1ZXN0CisKKy4uIGF1dG9mdW5jdGlvbjo6IHJlZGlyZWN0CisKKy4uIGF1dG9mdW5jdGlvbjo6IHJlZGlyZWN0X3RvCisKKy4uIGF1dG9mdW5jdGlvbjo6IHVyaV9mb3IKKworLi4gYXV0b2Z1bmN0aW9uOjogYWJvcnQKKworLi4gYXV0b2Z1bmN0aW9uOjogaW1wb3J0X3N0cmluZworCisKKy4uIF9Bbm90aGVyIERvLUl0LVlvdXJzZWxmIEZyYW1ld29yazogaHR0cDovL2RvY3Mud2Vib2Iub3JnL2VuL2xhdGVzdC9kby1pdC15b3Vyc2VsZi5odG1sCisuLiBfRmxhc2s6IGh0dHA6Ly9mbGFzay5wb2Nvby5vcmcvCisuLiBfVG9ybmFkbzogaHR0cDovL3d3dy50b3JuYWRvd2ViLm9yZy8KKy4uIF9XZWJPYjogaHR0cDovL2RvY3Mud2Vib2Iub3JnLworLi4gX1dlcmt6ZXVnOiBodHRwOi8vd2Vya3pldWcucG9jb28ub3JnLwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL2F1dGgvbW9kZWxzLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9hdXRoL21vZGVscy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZiM2Y0NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9hdXRoL21vZGVscy5yc3QKQEAgLTAsMCArMSwyNSBAQAorLi4gX2FwaS53ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuYXV0aC5tb2RlbHM6CisKK1VzZXIgTW9kZWxzCis9PT09PT09PT09PQorLi4gbW9kdWxlOjogd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLmF1dGgubW9kZWxzCisKK0EgY29sbGVjdGlvbiBvZiB1c2VyIHJlbGF0ZWQgbW9kZWxzIGZvciA6cmVmOmBhcGkud2ViYXBwMl9leHRyYXMuYXV0aGAuCisKKy4uIHdhcm5pbmc6OgorICAgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgbW9kdWxlLiBUaGUgQVBJIGlzIHN1YmplY3QgdG8gY2hhbmdlcy4KKworLi4gYXV0b2NsYXNzOjogVXNlcgorICAgOm1lbWJlcnM6IGdldF9ieV9hdXRoX2lkLCBnZXRfYnlfYXV0aF90b2tlbiwgZ2V0X2J5X2F1dGhfcGFzc3dvcmQsCisgICAgICAgICAgICAgY3JlYXRlX3VzZXIsIHZhbGlkYXRlX3Rva2VuLAorICAgICAgICAgICAgIGNyZWF0ZV9hdXRoX3Rva2VuLCB2YWxpZGF0ZV9hdXRoX3Rva2VuLCBkZWxldGVfYXV0aF90b2tlbiwKKyAgICAgICAgICAgICBjcmVhdGVfc2lnbnVwX3Rva2VuLCB2YWxpZGF0ZV9zaWdudXBfdG9rZW4sIGRlbGV0ZV9zaWdudXBfdG9rZW4KKworLi4gYXV0b2NsYXNzOjogVXNlclRva2VuCisgICA6bWVtYmVyczogZ2V0X2tleSwgY3JlYXRlLCBnZXQKKworLi4gYXV0b2NsYXNzOjogVW5pcXVlCisgICA6bWVtYmVyczogY3JlYXRlLCBjcmVhdGVfbXVsdGksIGRlbGV0ZV9tdWx0aQorCisKKy4uIF9OREI6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9hcHBlbmdpbmUtbmRiLWV4cGVyaW1lbnQvCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvc2Vzc2lvbnNfbWVtY2FjaGUucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL3Nlc3Npb25zX21lbWNhY2hlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTMwYjdlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL3Nlc3Npb25zX21lbWNhY2hlLnJzdApAQCAtMCwwICsxLDcgQEAKKy4uIF9hcGkud2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLnNlc3Npb25zX21lbWNhY2hlOgorCitNZW1jYWNoZSBzZXNzaW9ucworPT09PT09PT09PT09PT09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5zZXNzaW9uc19tZW1jYWNoZQorCisuLiBhdXRvY2xhc3M6OiBNZW1jYWNoZVNlc3Npb25GYWN0b3J5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvc2Vzc2lvbnNfbmRiLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19uZGIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiMjNmZjYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvc2Vzc2lvbnNfbmRiLnJzdApAQCAtMCwwICsxLDEzIEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5zZXNzaW9uc19uZGI6CisKK0RhdGFzdG9yZSBzZXNzaW9ucworPT09PT09PT09PT09PT09PT09CisuLiBtb2R1bGU6OiB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuc2Vzc2lvbnNfbmRiCisKK1RoaXMgbW9kdWxlIHJlcXVpcmVzIHlvdSB0byBhZGQgdGhlIGBgbmRiYGAgcGFja2FnZSB0byB5b3VyIGFwcC4gU2VlIGBOREJgXy4KKworLi4gYXV0b2NsYXNzOjogRGF0YXN0b3JlU2Vzc2lvbkZhY3RvcnkKKyAgIDptZW1iZXJzOiBzZXNzaW9uX21vZGVsCisKKworLi4gX05EQjogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2FwcGVuZ2luZS1uZGItZXhwZXJpbWVudC8KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS91c2Vycy5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvdXNlcnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZWMxZjIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvdXNlcnMucnN0CkBAIC0wLDAgKzEsOSBAQAorLi4gX2FwaS53ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUudXNlcnM6CisKK1VzZXJzCis9PT09PQorLi4gbW9kdWxlOjogd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLnVzZXJzCisKKy4uIGF1dG9mdW5jdGlvbjo6IGxvZ2luX3JlcXVpcmVkCisKKy4uIGF1dG9mdW5jdGlvbjo6IGFkbWluX3JlcXVpcmVkCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hdXRoLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2F1dGgucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNmM5ZDUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hdXRoLnJzdApAQCAtMCwwICsxLDIyIEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLmF1dGg6CisKK0F1dGgKKz09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLmF1dGgKKworVXRpbGl0aWVzIGZvciBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbi4KKworLi4gYXV0b2RhdGE6OiBkZWZhdWx0X2NvbmZpZworCisuLiBhdXRvY2xhc3M6OiBBdXRoU3RvcmUKKyAgIDptZW1iZXJzOiBfX2luaXRfXworCisuLiBhdXRvY2xhc3M6OiBBdXRoCisgICA6bWVtYmVyczogX19pbml0X18sCisgICAgICAgICAgICAgZ2V0X3VzZXJfYnlfc2Vzc2lvbiwgZ2V0X3VzZXJfYnlfdG9rZW4sIGdldF91c2VyX2J5X3Bhc3N3b3JkLAorICAgICAgICAgICAgIHNldF9zZXNzaW9uLCB1bnNldF9zZXNzaW9uCisKKy4uIGF1dG9mdW5jdGlvbjo6IGdldF9zdG9yZQorLi4gYXV0b2Z1bmN0aW9uOjogc2V0X3N0b3JlCisuLiBhdXRvZnVuY3Rpb246OiBnZXRfYXV0aAorLi4gYXV0b2Z1bmN0aW9uOjogc2V0X2F1dGgKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2NvbmZpZy5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9jb25maWcucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMTc3NDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9jb25maWcucnN0CkBAIC0wLDAgKzEsMTcgQEAKKy4uIF9hcGkud2ViYXBwMl9leHRyYXMuY29uZmlnOgorCitDb25maWd1cmF0aW9uCis9PT09PT09PT09PT09CitUaGlzIG1vZHVsZSBpcyBkZXByZWNhdGVkLiA6Y2xhc3M6YHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uYCBub3cgaGFzIGEgc2ltcGxlCitjb25maWd1cmF0aW9uIGRpY3Rpb25hcnkgdXNlZCBieSBkZWZhdWx0LCBzdG9yZWQgaW4KKzpjbGFzczpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb24uY29uZmlnYC4gU2VlIGFsc28gOmNsYXNzOmB3ZWJhcHAyLkNvbmZpZ2AuCisKKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLmNvbmZpZworCisuLiBhdXRvZGF0YTo6IERFRkFVTFRfVkFMVUUKKworLi4gYXV0b2RhdGE6OiBSRVFVSVJFRF9WQUxVRQorCisuLiBhdXRvY2xhc3M6OiBDb25maWcKKyAgIDptZW1iZXJzOiBfX2luaXRfXywgX19nZXRpdGVtX18sIF9fc2V0aXRlbV9fLCBnZXQsIHNldGRlZmF1bHQsIHVwZGF0ZSwKKyAgICAgICAgICAgICBnZXRfY29uZmlnCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9pMThuLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2kxOG4ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1YmYxYmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9pMThuLnJzdApAQCAtMCwwICsxLDU5IEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLmkxOG46CisKK2kxOG4KKz09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLmkxOG4KKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgaW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIGxvY2FsaXphdGlvbiBzdXBwb3J0IGZvciB3ZWJhcHAyLgorCitUbyB1c2UgaXQsIHlvdSBtdXN0IGFkZCB0aGUgYGBiYWJlbGBgIGFuZCBgYHB5dHpgYCBwYWNrYWdlcyB0byB5b3VyCithcHBsaWNhdGlvbiBkaXJlY3RvcnkgKGZvciBBcHAgRW5naW5lKSBvciBpbnN0YWxsIGl0IGluIHlvdXIgdmlydHVhbAorZW52aXJvbm1lbnQgKGZvciBvdGhlciBzZXJ2ZXJzKS4KKworWW91IGNhbiBkb3dubG9hZCBgYGJhYmVsYGAgYW5kIGBgcHl0emBgIGZyb20gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CisKKyAgICBodHRwOi8vYmFiZWwuZWRnZXdhbGwub3JnLworICAgIGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9nYWVweXR6CisKKy4uIGF1dG9kYXRhOjogZGVmYXVsdF9jb25maWcKKworLi4gYXV0b2NsYXNzOjogSTE4blN0b3JlCisgICA6bWVtYmVyczogdHJhbnNsYXRpb25zLCB0cmFuc2xhdGlvbnNfcGF0aCwgZG9tYWlucywKKyAgICAgICAgICAgICBkZWZhdWx0X2xvY2FsZSwgZGVmYXVsdF90aW1lem9uZSwgZGF0ZV9mb3JtYXRzLCBsb2NhbGVfc2VsZWN0b3IsCisgICAgICAgICAgICAgdGltZXpvbmVfc2VsZWN0b3IsCisgICAgICAgICAgICAgX19pbml0X18sIHNldF9sb2NhbGVfc2VsZWN0b3IsIHNldF90aW1lem9uZV9zZWxlY3RvciwKKyAgICAgICAgICAgICBnZXRfdHJhbnNsYXRpb25zLCBsb2FkX3RyYW5zbGF0aW9ucworCisuLiBhdXRvY2xhc3M6OiBJMThuCisgICA6bWVtYmVyczogc3RvcmUsIGxvY2FsZSwgdHJhbnNsYXRpb25zLCB0aW1lem9uZSwgdHppbmZvLAorICAgICAgICAgICAgIF9faW5pdF9fLCBzZXRfbG9jYWxlLCBzZXRfdGltZXpvbmUsIGdldHRleHQsIG5nZXR0ZXh0LAorICAgICAgICAgICAgIHRvX2xvY2FsX3RpbWV6b25lLCB0b191dGMsIGZvcm1hdF9kYXRlLCBmb3JtYXRfZGF0ZXRpbWUsCisgICAgICAgICAgICAgZm9ybWF0X3RpbWUsIGZvcm1hdF90aW1lZGVsdGEsIGZvcm1hdF9udW1iZXIsIGZvcm1hdF9kZWNpbWFsLAorICAgICAgICAgICAgIGZvcm1hdF9jdXJyZW5jeSwgZm9ybWF0X3BlcmNlbnQsIGZvcm1hdF9zY2llbnRpZmljLCBwYXJzZV9kYXRlLAorICAgICAgICAgICAgIHBhcnNlX2RhdGV0aW1lLCBwYXJzZV90aW1lLCBwYXJzZV9udW1iZXIsIHBhcnNlX2RlY2ltYWwsCisgICAgICAgICAgICAgZ2V0X3RpbWV6b25lX2xvY2F0aW9uCisKKy4uIGF1dG9mdW5jdGlvbjo6IGdldF9zdG9yZQorLi4gYXV0b2Z1bmN0aW9uOjogc2V0X3N0b3JlCisuLiBhdXRvZnVuY3Rpb246OiBnZXRfaTE4bgorLi4gYXV0b2Z1bmN0aW9uOjogc2V0X2kxOG4KKy4uIGF1dG9mdW5jdGlvbjo6IGxhenlfZ2V0dGV4dAorLi4gYXV0b2Z1bmN0aW9uOjogZ2V0dGV4dAorLi4gYXV0b2Z1bmN0aW9uOjogbmdldHRleHQKKy4uIGF1dG9mdW5jdGlvbjo6IHRvX2xvY2FsX3RpbWV6b25lCisuLiBhdXRvZnVuY3Rpb246OiB0b191dGMKKy4uIGF1dG9mdW5jdGlvbjo6IGZvcm1hdF9kYXRlCisuLiBhdXRvZnVuY3Rpb246OiBmb3JtYXRfZGF0ZXRpbWUKKy4uIGF1dG9mdW5jdGlvbjo6IGZvcm1hdF90aW1lCisuLiBhdXRvZnVuY3Rpb246OiBmb3JtYXRfdGltZWRlbHRhCisuLiBhdXRvZnVuY3Rpb246OiBmb3JtYXRfbnVtYmVyCisuLiBhdXRvZnVuY3Rpb246OiBmb3JtYXRfZGVjaW1hbAorLi4gYXV0b2Z1bmN0aW9uOjogZm9ybWF0X2N1cnJlbmN5CisuLiBhdXRvZnVuY3Rpb246OiBmb3JtYXRfcGVyY2VudAorLi4gYXV0b2Z1bmN0aW9uOjogZm9ybWF0X3NjaWVudGlmaWMKKy4uIGF1dG9mdW5jdGlvbjo6IHBhcnNlX2RhdGUKKy4uIGF1dG9mdW5jdGlvbjo6IHBhcnNlX2RhdGV0aW1lCisuLiBhdXRvZnVuY3Rpb246OiBwYXJzZV90aW1lCisuLiBhdXRvZnVuY3Rpb246OiBwYXJzZV9udW1iZXIKKy4uIGF1dG9mdW5jdGlvbjo6IHBhcnNlX2RlY2ltYWwKKy4uIGF1dG9mdW5jdGlvbjo6IGdldF90aW1lem9uZV9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvamluamEyLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2ppbmphMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThhYWEyNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2ppbmphMi5yc3QKQEAgLTAsMCArMSwzMCBAQAorLi4gX2FwaS53ZWJhcHAyX2V4dHJhcy5qaW5qYTI6CisKK0ppbmphMgorPT09PT09CisuLiBtb2R1bGU6OiB3ZWJhcHAyX2V4dHJhcy5qaW5qYTIKKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgYEppbmphMmBfIHRlbXBsYXRlIHN1cHBvcnQgZm9yIHdlYmFwcDIuCisKK1RvIHVzZSBpdCwgeW91IG11c3QgYWRkIHRoZSBgYGppbmphMmBgIHBhY2thZ2UgdG8geW91ciBhcHBsaWNhdGlvbgorZGlyZWN0b3J5IChmb3IgQXBwIEVuZ2luZSkgb3IgaW5zdGFsbCBpdCBpbiB5b3VyIHZpcnR1YWwgZW52aXJvbm1lbnQKKyhmb3Igb3RoZXIgc2VydmVycykuCisKK1lvdSBjYW4gZG93bmxvYWQgYGBqaW5qYTJgYCBmcm9tIFB5UGk6CisKKyAgICBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvSmluamEyCisKK0xlYXJuIG1vcmUgYWJvdXQgSmluamEyOgorCisgICAgaHR0cDovL2ppbmphLnBvY29vLm9yZy8KKworLi4gYXV0b2RhdGE6OiBkZWZhdWx0X2NvbmZpZworCisuLiBhdXRvY2xhc3M6OiBKaW5qYTIKKyAgIDptZW1iZXJzOiBfX2luaXRfXywgcmVuZGVyX3RlbXBsYXRlLCBnZXRfdGVtcGxhdGVfYXR0cmlidXRlCisKKy4uIGF1dG9mdW5jdGlvbjo6IGdldF9qaW5qYTIKKy4uIGF1dG9mdW5jdGlvbjo6IHNldF9qaW5qYTIKKworCisuLiBfSmluamEyOiBodHRwOi8vamluamEucG9jb28ub3JnLwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvanNvbi5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9qc29uLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODJiZGJjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvanNvbi5yc3QKQEAgLTAsMCArMSwyNSBAQAorLi4gX2FwaS53ZWJhcHAyX2V4dHJhcy5qc29uOgorCitKU09OCis9PT09CisuLiBtb2R1bGU6OiB3ZWJhcHAyX2V4dHJhcy5qc29uCisKK1RoaXMgaXMgYSB3cmFwcGVyIGZvciB0aGUgOnB5Om1vZDpganNvbmAgbW9kdWxlOiBpdCB3aWxsIHVzZSBzaW1wbGVqc29uIGlmCithdmFpbGFibGUsIG9yIHRoZSBgYGpzb25gYCBtb2R1bGUgZnJvbSBQeXRob24gPj0gMi42IGlmIGF2YWlsYWJsZSwgYW5kIGFzIGEKK2xhc3QgcmVzb3VyY2UgdGhlIGBgZGphbmdvLnV0aWxzLnNpbXBsZWpzb25gYCBtb2R1bGUgb24gQXBwIEVuZ2luZS4KKworSXQgd2lsbCBhbHNvIGVzY2FwZSBmb3J3YXJkIHNsYXNoZXMgYW5kLCBieSBkZWZhdWx0LCBvdXRwdXQgdGhlIHNlcmlhbGl6ZWQKK0pTT04gaW4gYSBjb21wYWN0IGZvcm1hdCwgZWxpbWluYXRpbmcgd2hpdGUgc3BhY2VzLgorCitTb21lIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBhcmUgYWxzbyBhdmFpbGFibGUgdG8gZW5jb2RlIGFuZCBkZWNvZGUgdG8gYW5kIGZyb20KK2Jhc2U2NCBhbmQgdG8gcXVvdGUgb3IgdW5xdW90ZSB0aGUgdmFsdWVzLgorCisuLiBhdXRvZnVuY3Rpb246OiBlbmNvZGUKKy4uIGF1dG9mdW5jdGlvbjo6IGRlY29kZQorLi4gYXV0b2Z1bmN0aW9uOjogYjY0ZW5jb2RlCisuLiBhdXRvZnVuY3Rpb246OiBiNjRkZWNvZGUKKy4uIGF1dG9mdW5jdGlvbjo6IHF1b3RlCisuLiBhdXRvZnVuY3Rpb246OiB1bnF1b3RlCisKKworLi4gX1Rvcm5hZG86IGh0dHA6Ly93d3cudG9ybmFkb3dlYi5vcmcvCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9sb2NhbC5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9sb2NhbC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThiMWViNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2xvY2FsLnJzdApAQCAtMCwwICsxLDEwIEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLmxvY2FsOgorCitMb2NhbAorPT09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLmxvY2FsCisKK1RoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhyZWFkLWxvY2FsIHV0aWxpdGllcy4KKworLi4gYXV0b2NsYXNzOjogTG9jYWwKKy4uIGF1dG9jbGFzczo6IExvY2FsUHJveHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2xvY2FsX2FwcC5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9sb2NhbF9hcHAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3M2I1ZTMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9sb2NhbF9hcHAucnN0CkBAIC0wLDAgKzEsMTIgQEAKKy4uIF9hcGkud2ViYXBwMl9leHRyYXMubG9jYWxfYXBwOgorCitMb2NhbCBBcHAKKz09PT09PT09PQorLi4gbW9kdWxlOjogd2ViYXBwMl9leHRyYXMubG9jYWxfYXBwCisKKy4uIHdhcm5pbmc6OgorICAgVGhpcyBtb2R1bGUgaXMgZGVwcmVjYXRlZC4gVGhlIDpjbGFzczpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb25gIGNsYXNzIGlzIG5vdworICAgdGhyZWFkLXNhZmUgYnkgZGVmYXVsdCB3aGVuIDptb2Q6YHdlYmFwcDJfZXh0cmFzLmxvY2FsYCBpcyBhdmFpbGFibGUuCisKKy4uIGF1dG9jbGFzczo6IFdTR0lBcHBsaWNhdGlvbgorICAgOm1lbWJlcnM6IHNldF9nbG9iYWxzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9tYWtvLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL21ha28ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxY2E0NjIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9tYWtvLnJzdApAQCAtMCwwICsxLDMwIEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLm1ha286CisKK01ha28KKz09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLm1ha28KKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgYE1ha29gXyB0ZW1wbGF0ZSBzdXBwb3J0IGZvciB3ZWJhcHAyLgorCitUbyB1c2UgaXQsIHlvdSBtdXN0IGFkZCB0aGUgYGBtYWtvYGAgcGFja2FnZSB0byB5b3VyIGFwcGxpY2F0aW9uCitkaXJlY3RvcnkgKGZvciBBcHAgRW5naW5lKSBvciBpbnN0YWxsIGl0IGluIHlvdXIgdmlydHVhbCBlbnZpcm9ubWVudAorKGZvciBvdGhlciBzZXJ2ZXJzKS4KKworWW91IGNhbiBkb3dubG9hZCBgYG1ha29gYCBmcm9tIFB5UGk6CisKKyAgICBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvTWFrbworCitMZWFybiBtb3JlIGFib3V0IE1ha286CisKKyAgICBodHRwOi8vd3d3Lm1ha290ZW1wbGF0ZXMub3JnLworCisuLiBhdXRvZGF0YTo6IGRlZmF1bHRfY29uZmlnCisKKy4uIGF1dG9jbGFzczo6IE1ha28KKyAgIDptZW1iZXJzOiBfX2luaXRfXywgcmVuZGVyX3RlbXBsYXRlCisKKy4uIGF1dG9mdW5jdGlvbjo6IGdldF9tYWtvCisuLiBhdXRvZnVuY3Rpb246OiBzZXRfbWFrbworCisKKy4uIF9NYWtvOiBodHRwOi8vd3d3Lm1ha290ZW1wbGF0ZXMub3JnLwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvcm91dGVzLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL3JvdXRlcy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU0NTg2ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL3JvdXRlcy5yc3QKQEAgLTAsMCArMSwyNCBAQAorLi4gX2FwaS53ZWJhcHAyX2V4dHJhcy5yb3V0ZXM6CisKK0V4dHJhIHJvdXRlcworPT09PT09PT09PT09CisuLiBtb2R1bGU6OiB3ZWJhcHAyX2V4dHJhcy5yb3V0ZXMKKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgc2V2ZXJhbCBleHRyYSByb3V0ZSBjbGFzc2VzIGZvciBjb252ZW5pZW5jZToKK2RvbWFpbiBhbmQgc3ViZG9tYWluIHJvdXRpbmcsIHByZWZpeGVkIHJvdXRlcyBvciByb3V0ZXMgZm9yIGF1dG9tYXRpYworcmVkaXJlY3Rpb24uCisKKy4uIGF1dG9jbGFzczo6IERvbWFpblJvdXRlCisgICA6bWVtYmVyczogX19pbml0X18KKworLi4gYXV0b2NsYXNzOjogUmVkaXJlY3RSb3V0ZQorICAgOm1lbWJlcnM6IF9faW5pdF9fCisKKy4uIGF1dG9jbGFzczo6IFBhdGhQcmVmaXhSb3V0ZQorICAgOm1lbWJlcnM6IF9faW5pdF9fCisKKy4uIGF1dG9jbGFzczo6IE5hbWVQcmVmaXhSb3V0ZQorICAgOm1lbWJlcnM6IF9faW5pdF9fCisKKy4uIGF1dG9jbGFzczo6IEhhbmRsZXJQcmVmaXhSb3V0ZQorICAgOm1lbWJlcnM6IF9faW5pdF9fCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9zZWN1cmVjb29raWUucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvc2VjdXJlY29va2llLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODhhOGEyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvc2VjdXJlY29va2llLnJzdApAQCAtMCwwICsxLDEyIEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLnNlY3VyZWNvb2tpZToKKworU2VjdXJlIGNvb2tpZXMKKz09PT09PT09PT09PT09CisuLiBtb2R1bGU6OiB3ZWJhcHAyX2V4dHJhcy5zZWN1cmVjb29raWUKKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBzZXJpYWxpemVyIGFuZCBkZXNlcmlhbGl6ZXIgZm9yIHNpZ25lZCBjb29raWVzLgorCisuLiBhdXRvY2xhc3M6OiBTZWN1cmVDb29raWVTZXJpYWxpemVyCisgICA6bWVtYmVyczogX19pbml0X18sIHNlcmlhbGl6ZSwgZGVzZXJpYWxpemUKKworLi4gX1Rvcm5hZG86IGh0dHA6Ly93d3cudG9ybmFkb3dlYi5vcmcvCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9zZWN1cml0eS5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9zZWN1cml0eS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM5NTNlMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL3NlY3VyaXR5LnJzdApAQCAtMCwwICsxLDE3IEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLnNlY3VyaXR5OgorCitTZWN1cml0eQorPT09PT09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLnNlY3VyaXR5CisKK1RoaXMgbW9kdWxlIHByb3ZpZGVzIHNlY3VyaXR5IHJlbGF0ZWQgaGVscGVycyBzdWNoIGFzIHNlY3VyZSBwYXNzd29yZCBoYXNoaW5nCit0b29scyBhbmQgYSByYW5kb20gc3RyaW5nIGdlbmVyYXRvci4KKworLi4gYXV0b2Z1bmN0aW9uOjogZ2VuZXJhdGVfcmFuZG9tX3N0cmluZworLi4gYXV0b2Z1bmN0aW9uOjogZ2VuZXJhdGVfcGFzc3dvcmRfaGFzaAorLi4gYXV0b2Z1bmN0aW9uOjogY2hlY2tfcGFzc3dvcmRfaGFzaAorLi4gYXV0b2Z1bmN0aW9uOjogaGFzaF9wYXNzd29yZAorLi4gYXV0b2Z1bmN0aW9uOjogY29tcGFyZV9oYXNoZXMKKworCisuLiBfV2Vya3pldWc6IGh0dHA6Ly93ZXJremV1Zy5wb2Nvby5vcmcvCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9zZXNzaW9ucy5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9zZXNzaW9ucy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ0YmU1MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL3Nlc3Npb25zLnJzdApAQCAtMCwwICsxLDMwIEBACisuLiBfYXBpLndlYmFwcDJfZXh0cmFzLnNlc3Npb25zOgorCitTZXNzaW9ucworPT09PT09PT0KKy4uIG1vZHVsZTo6IHdlYmFwcDJfZXh0cmFzLnNlc3Npb25zCisKK1RoaXMgbW9kdWxlIHByb3ZpZGVzIGEgbGlnaHR3ZWlnaHQgYnV0IGZsZXhpYmxlIHNlc3Npb24gc3VwcG9ydCBmb3Igd2ViYXBwMi4KKworSXQgaGFzIHRocmVlIGJ1aWx0LWluIGJhY2tlbmRzOiBzZWN1cmUgY29va2llcywgbWVtY2FjaGUgYW5kIGRhdGFzdG9yZS4KK05ldyBiYWNrZW5kcyBjYW4gYmUgYWRkZWQgZXh0ZW5kaW5nIDpjbGFzczpgQ3VzdG9tQmFja2VuZFNlc3Npb25GYWN0b3J5YC4KKworVGhlIHNlc3Npb24gc3RvcmUgY2FuIHByb3ZpZGUgbXVsdGlwbGUgc2Vzc2lvbnMgdXNpbmcgZGlmZmVyZW50IGtleXMsCitldmVuIHVzaW5nIGRpZmZlcmVudCBiYWNrZW5kcyBpbiB0aGUgc2FtZSByZXF1ZXN0LCB0aHJvdWdoIHRoZSBtZXRob2QKKzptZXRoOmBTZXNzaW9uU3RvcmUuZ2V0X3Nlc3Npb25gLiBCeSBkZWZhdWx0IGl0IHJldHVybnMgYSBzZXNzaW9uIHVzaW5nIHRoZQorZGVmYXVsdCBrZXkgZnJvbSBjb25maWd1cmF0aW9uLgorCisuLiBhdXRvZGF0YTo6IGRlZmF1bHRfY29uZmlnCisKKy4uIGF1dG9jbGFzczo6IFNlc3Npb25TdG9yZQorICAgOm1lbWJlcnM6IF9faW5pdF9fLCBnZXRfYmFja2VuZCwgZ2V0X3Nlc3Npb24sIHNhdmVfc2Vzc2lvbnMKKworLi4gYXV0b2NsYXNzOjogU2Vzc2lvbkRpY3QKKyAgIDptZW1iZXJzOiBnZXRfZmxhc2hlcywgYWRkX2ZsYXNoCisKKy4uIGF1dG9jbGFzczo6IFNlY3VyZUNvb2tpZVNlc3Npb25GYWN0b3J5CisKKy4uIGF1dG9jbGFzczo6IEN1c3RvbUJhY2tlbmRTZXNzaW9uRmFjdG9yeQorCisuLiBhdXRvZnVuY3Rpb246OiBnZXRfc3RvcmUKKy4uIGF1dG9mdW5jdGlvbjo6IHNldF9zdG9yZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9jb25mLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9jb25mLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyMzFiMDUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2NvbmYucHkKQEAgLTAsMCArMSwyNTQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisjCisjIHdlYmFwcDIgZG9jdW1lbnRhdGlvbiBidWlsZCBjb25maWd1cmF0aW9uIGZpbGUsIGNyZWF0ZWQgYnkKKyMgc3BoaW54LXF1aWNrc3RhcnQgb24gU2F0IEp1bCAzMSAxMDo0MTozNyAyMDEwLgorIworIyBUaGlzIGZpbGUgaXMgZXhlY2ZpbGUoKWQgd2l0aCB0aGUgY3VycmVudCBkaXJlY3Rvcnkgc2V0IHRvIGl0cyBjb250YWluaW5nIGRpci4KKyMKKyMgTm90ZSB0aGF0IG5vdCBhbGwgcG9zc2libGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIHByZXNlbnQgaW4gdGhpcworIyBhdXRvZ2VuZXJhdGVkIGZpbGUuCisjCisjIEFsbCBjb25maWd1cmF0aW9uIHZhbHVlcyBoYXZlIGEgZGVmYXVsdDsgdmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBvdXQKKyMgc2VydmUgdG8gc2hvdyB0aGUgZGVmYXVsdC4KK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitvbl9ydGQgPSBvcy5lbnZpcm9uLmdldCgnUkVBRFRIRURPQ1MnLCBOb25lKSA9PSAnVHJ1ZScKKworIyBJZiBleHRlbnNpb25zIChvciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LAorIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBhdGggaGVyZS4gSWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9jdW1lbnRhdGlvbiByb290LCB1c2Ugb3MucGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ugc2hvd24gaGVyZS4KK2dhZV9wYXRoID0gJy91c3IvbG9jYWwvZ29vZ2xlX2FwcGVuZ2luZScKKworY3VycmVudF9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCitwYXRoID0gb3MucGF0aC5qb2luKGN1cnJlbnRfcGF0aCwgJy4uJykKK3RoZW1lX3BhdGggPSBvcy5wYXRoLmpvaW4oY3VycmVudF9wYXRoLCAnX3RoZW1lcycsICd3ZWJhcHAyJykKKworc3lzLnBhdGhbMDowXSA9IFsKKyAgICB0aGVtZV9wYXRoLAorICAgIGdhZV9wYXRoLAorICAgICMgQWxsIGxpYnMgdXNlZCBieSB3ZWJhcHAyIGFuZCBleHRyYXMuCisgICAgb3MucGF0aC5qb2luKHBhdGgsICdsaWInLCAnYmFiZWwnKSwKKyAgICBvcy5wYXRoLmpvaW4ocGF0aCwgJ2xpYicsICdKaW5qYTItMi42JyksCisgICAgb3MucGF0aC5qb2luKHBhdGgsICdsaWInLCAnTWFrby0wLjQuMScpLAorICAgIG9zLnBhdGguam9pbihwYXRoLCAnbGliJywgJ2dhZXB5dHotMjAxMWgnKSwKKyAgICBvcy5wYXRoLmpvaW4ocGF0aCwgJ2xpYicsICdXZWJPYi0xLjAuOCcpLAorICAgICMgU0RLIGxpYnMuCisgICAgb3MucGF0aC5qb2luKGdhZV9wYXRoLCAnbGliJywgJ2RqYW5nb18wXzk2JyksCisgICAgb3MucGF0aC5qb2luKGdhZV9wYXRoLCAnbGliJywgJ3lhbWwnLCAnbGliJyksCisgICAgb3MucGF0aC5qb2luKGdhZV9wYXRoLCAnbGliJywgJ3NpbXBsZWpzb24nKSwKKyAgICBwYXRoLAorXQorCit0cnk6CisgICAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmRpc3QgaW1wb3J0IHVzZV9saWJyYXJ5CisgICAgdXNlX2xpYnJhcnkoJ2RqYW5nbycsICcxLjInKQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHBhc3MKKworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB5b3VyIGRvY3VtZW50YXRpb24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBzdGF0ZSBpdCBoZXJlLgorI25lZWRzX3NwaGlueCA9ICcxLjAnCisKKyMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVsZSBuYW1lcyBoZXJlLCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZSBleHRlbnNpb25zCisjIGNvbWluZyB3aXRoIFNwaGlueCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tIG9uZXMuCitleHRlbnNpb25zID0gWydzcGhpbnguZXh0LmF1dG9kb2MnLCAnc3BoaW54LmV4dC5pbnRlcnNwaGlueCcsICdzcGhpbnguZXh0LnRvZG8nLCAnc3BoaW54LmV4dC5jb3ZlcmFnZScsICdzcGhpbnguZXh0LmlmY29uZmlnJywgJ3NwaGlueC5leHQudmlld2NvZGUnXQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KK3RlbXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KKworIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCitzb3VyY2Vfc3VmZml4ID0gJy5yc3QnCisKKyMgVGhlIGVuY29kaW5nIG9mIHNvdXJjZSBmaWxlcy4KKyNzb3VyY2VfZW5jb2RpbmcgPSAndXRmLTgtc2lnJworCisjIFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KK21hc3Rlcl9kb2MgPSAnaW5kZXgnCisKKyMgR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KK3Byb2plY3QgPSB1J3dlYmFwcDInCitjb3B5cmlnaHQgPSB1JzIwMTEsIFJvZHJpZ28gTW9yYWVzJworCisjIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQorIyBidWlsdCBkb2N1bWVudHMuCisjCisjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KK3ZlcnNpb24gPSAnMi41LjEnCisjIFRoZSBmdWxsIHZlcnNpb24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCityZWxlYXNlID0gJzIuNS4xJworCisjIFRoZSBsYW5ndWFnZSBmb3IgY29udGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRhdGlvbgorIyBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMuCisjbGFuZ3VhZ2UgPSBOb25lCisKKyMgVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciByZXBsYWNpbmcgfHRvZGF5fDogZWl0aGVyLCB5b3Ugc2V0IHRvZGF5IHRvIHNvbWUKKyMgbm9uLWZhbHNlIHZhbHVlLCB0aGVuIGl0IGlzIHVzZWQ6CisjdG9kYXkgPSAnJworIyBFbHNlLCB0b2RheV9mbXQgaXMgdXNlZCBhcyB0aGUgZm9ybWF0IGZvciBhIHN0cmZ0aW1lIGNhbGwuCisjdG9kYXlfZm10ID0gJyVCICVkLCAlWScKKworIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAorIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmlsZXMuCitleGNsdWRlX3BhdHRlcm5zID0gWydfYnVpbGQnXQorCisjIFRoZSByZVNUIGRlZmF1bHQgcm9sZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0ZXh0YCkgdG8gdXNlIGZvciBhbGwgZG9jdW1lbnRzLgorI2RlZmF1bHRfcm9sZSA9IE5vbmUKKworIyBJZiB0cnVlLCAnKCknIHdpbGwgYmUgYXBwZW5kZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVmZXJlbmNlIHRleHQuCisjYWRkX2Z1bmN0aW9uX3BhcmVudGhlc2VzID0gVHJ1ZQorCisjIElmIHRydWUsIHRoZSBjdXJyZW50IG1vZHVsZSBuYW1lIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNjcmlwdGlvbgorIyB1bml0IHRpdGxlcyAoc3VjaCBhcyAuLiBmdW5jdGlvbjo6KS4KKyNhZGRfbW9kdWxlX25hbWVzID0gVHJ1ZQorCisjIElmIHRydWUsIHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1dGhvciBkaXJlY3RpdmVzIHdpbGwgYmUgc2hvd24gaW4gdGhlCisjIG91dHB1dC4gVGhleSBhcmUgaWdub3JlZCBieSBkZWZhdWx0LgorI3Nob3dfYXV0aG9ycyA9IEZhbHNlCisKKyMgQSBsaXN0IG9mIGlnbm9yZWQgcHJlZml4ZXMgZm9yIG1vZHVsZSBpbmRleCBzb3J0aW5nLgorI21vZGluZGV4X2NvbW1vbl9wcmVmaXggPSBbXQorCisKKyMgLS0gT3B0aW9ucyBmb3IgSFRNTCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgVGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvcgorIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCitpZiBvbl9ydGQ6CisgICAgaHRtbF90aGVtZSA9ICdkZWZhdWx0JworZWxzZToKKyAgICBodG1sX3RoZW1lID0gJ3dlYmFwcDInCisgICAgIyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdobGlnaHRpbmcpIHN0eWxlIHRvIHVzZS4KKyAgICBweWdtZW50c19zdHlsZSA9ICdweWdhcHAyLnB5Z2FwcDInCisKKyMgVGhlbWUgb3B0aW9ucyBhcmUgdGhlbWUtc3BlY2lmaWMgYW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCisjIGZ1cnRoZXIuICBGb3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1lLCBzZWUgdGhlCisjIGRvY3VtZW50YXRpb24uCitodG1sX3RoZW1lX29wdGlvbnMgPSB7CisgICAgJ2xvZ29fd2lkdGgnOiAyNTIsCisgICAgJ2xvZ29faGVpZ2h0JzogNjAsCisgICAgJ2FuYWx5dGljc19jb2RlJzogJ1VBLTcxMzI5MzItNScsCit9CisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KK2h0bWxfdGhlbWVfcGF0aCA9IFsnX3RoZW1lcyddCisKKyMgVGhlIG5hbWUgZm9yIHRoaXMgc2V0IG9mIFNwaGlueCBkb2N1bWVudHMuICBJZiBOb25lLCBpdCBkZWZhdWx0cyB0bworIyAiPHByb2plY3Q+IHY8cmVsZWFzZT4gZG9jdW1lbnRhdGlvbiIuCisjaHRtbF90aXRsZSA9IE5vbmUKKworIyBBIHNob3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0aW9uIGJhci4gIERlZmF1bHQgaXMgdGhlIHNhbWUgYXMgaHRtbF90aXRsZS4KK2h0bWxfc2hvcnRfdGl0bGUgPSAnd2ViYXBwMicKKworIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcAorIyBvZiB0aGUgc2lkZWJhci4KK2h0bWxfbG9nbyA9ICdfc3RhdGljL3dlYmFwcDJfYmx1ZV9zbWFsbC5wbmcnCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAod2l0aGluIHRoZSBzdGF0aWMgcGF0aCkgdG8gdXNlIGFzIGZhdmljb24gb2YgdGhlCisjIGRvY3MuICBUaGlzIGZpbGUgc2hvdWxkIGJlIGEgV2luZG93cyBpY29uIGZpbGUgKC5pY28pIGJlaW5nIDE2eDE2IG9yIDMyeDMyCisjIHBpeGVscyBsYXJnZS4KKyNodG1sX2Zhdmljb24gPSBOb25lCisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRpYyBmaWxlcyAoc3VjaCBhcyBzdHlsZSBzaGVldHMpIGhlcmUsCisjIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LiBUaGV5IGFyZSBjb3BpZWQgYWZ0ZXIgdGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVzLAorIyBzbyBhIGZpbGUgbmFtZWQgImRlZmF1bHQuY3NzIiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVpbHRpbiAiZGVmYXVsdC5jc3MiLgoraHRtbF9zdGF0aWNfcGF0aCA9IFsnX3N0YXRpYyddCisKKyMgSWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246JyB0aW1lc3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZlcnkgcGFnZSBib3R0b20sCisjIHVzaW5nIHRoZSBnaXZlbiBzdHJmdGltZSBmb3JtYXQuCisjaHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVkLCAlWScKKworIyBJZiB0cnVlLCBTbWFydHlQYW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBxdW90ZXMgYW5kIGRhc2hlcyB0bworIyB0eXBvZ3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4KKyNodG1sX3VzZV9zbWFydHlwYW50cyA9IFRydWUKKworIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMsIG1hcHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9zaWRlYmFycyA9IHt9CisKKyMgQWRkaXRpb25hbCB0ZW1wbGF0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgdG8gcGFnZXMsIG1hcHMgcGFnZSBuYW1lcyB0bworIyB0ZW1wbGF0ZSBuYW1lcy4KKyNodG1sX2FkZGl0aW9uYWxfcGFnZXMgPSB7fQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2h0bWxfZG9tYWluX2luZGljZXMgPSBUcnVlCisKKyMgSWYgZmFsc2UsIG5vIGluZGV4IGlzIGdlbmVyYXRlZC4KKyNodG1sX3VzZV9pbmRleCA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlkdWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4KKyNodG1sX3NwbGl0X2luZGV4ID0gRmFsc2UKKworIyBJZiB0cnVlLCBsaW5rcyB0byB0aGUgcmVTVCBzb3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgcGFnZXMuCitodG1sX3Nob3dfc291cmNlbGluayA9IFRydWUKKworIyBJZiB0cnVlLCAiQ3JlYXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgorI2h0bWxfc2hvd19zcGhpbnggPSBUcnVlCisKKyMgSWYgdHJ1ZSwgIihDKSBDb3B5cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KKyNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQorCisjIElmIHRydWUsIGFuIE9wZW5TZWFyY2ggZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1dCwgYW5kIGFsbCBwYWdlcyB3aWxsCisjIGNvbnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0byBpdC4gIFRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiBtdXN0IGJlIHRoZQorIyBiYXNlIFVSTCBmcm9tIHdoaWNoIHRoZSBmaW5pc2hlZCBIVE1MIGlzIHNlcnZlZC4KKyNodG1sX3VzZV9vcGVuc2VhcmNoID0gJycKKworIyBUaGlzIGlzIHRoZSBmaWxlIG5hbWUgc3VmZml4IGZvciBIVE1MIGZpbGVzIChlLmcuICIueGh0bWwiKS4KKyNodG1sX2ZpbGVfc3VmZml4ID0gTm9uZQorCisjIE91dHB1dCBmaWxlIGJhc2UgbmFtZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCitodG1saGVscF9iYXNlbmFtZSA9ICd3ZWJhcHAyZG9jJworCisKKyMgLS0gT3B0aW9ucyBmb3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgVGhlIHBhcGVyIHNpemUgKCdsZXR0ZXInIG9yICdhNCcpLgorI2xhdGV4X3BhcGVyX3NpemUgPSAnbGV0dGVyJworCisjIFRoZSBmb250IHNpemUgKCcxMHB0JywgJzExcHQnIG9yICcxMnB0JykuCisjbGF0ZXhfZm9udF9zaXplID0gJzEwcHQnCisKKyMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwgZG9jdW1lbnRjbGFzcyBbaG93dG8vbWFudWFsXSkuCitsYXRleF9kb2N1bWVudHMgPSBbCisgICgnaW5kZXgnLCAnd2ViYXBwMi50ZXgnLCB1J3dlYmFwcDIgRG9jdW1lbnRhdGlvbicsCisgICB1J1JvZHJpZ28gTW9yYWVzJywgJ21hbnVhbCcpLAorXQorCisjIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBhdCB0aGUgdG9wIG9mCisjIHRoZSB0aXRsZSBwYWdlLgorI2xhdGV4X2xvZ28gPSBOb25lCisKKyMgRm9yICJtYW51YWwiIGRvY3VtZW50cywgaWYgdGhpcyBpcyB0cnVlLCB0aGVuIHRvcGxldmVsIGhlYWRpbmdzIGFyZSBwYXJ0cywKKyMgbm90IGNoYXB0ZXJzLgorI2xhdGV4X3VzZV9wYXJ0cyA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgc2hvdyBwYWdlIHJlZmVyZW5jZXMgYWZ0ZXIgaW50ZXJuYWwgbGlua3MuCisjbGF0ZXhfc2hvd19wYWdlcmVmcyA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgc2hvdyBVUkwgYWRkcmVzc2VzIGFmdGVyIGV4dGVybmFsIGxpbmtzLgorI2xhdGV4X3Nob3dfdXJscyA9IEZhbHNlCisKKyMgQWRkaXRpb25hbCBzdHVmZiBmb3IgdGhlIExhVGVYIHByZWFtYmxlLgorI2xhdGV4X3ByZWFtYmxlID0gJycKKworIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgorI2xhdGV4X2FwcGVuZGljZXMgPSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2xhdGV4X2RvbWFpbl9pbmRpY2VzID0gVHJ1ZQorCisKKyMgLS0gT3B0aW9ucyBmb3IgbWFudWFsIHBhZ2Ugb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT25lIGVudHJ5IHBlciBtYW51YWwgcGFnZS4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlwdGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2VzID0gWworICAgICgnaW5kZXgnLCAnd2ViYXBwMicsIHUnd2ViYXBwMiBEb2N1bWVudGF0aW9uJywKKyAgICAgW3UnUm9kcmlnbyBNb3JhZXMnXSwgMSkKK10KKworCisjIEV4YW1wbGUgY29uZmlndXJhdGlvbiBmb3IgaW50ZXJzcGhpbng6IHJlZmVyIHRvIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFyeS4KK2ludGVyc3BoaW54X21hcHBpbmcgPSB7J3B5dGhvbic6ICgnaHR0cDovL2RvY3MucHl0aG9uLm9yZy8yLjcnLCBOb25lKX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZmVhdHVyZXMucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9mZWF0dXJlcy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZmZTE1ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZmVhdHVyZXMucnN0CkBAIC0wLDAgKzEsMjg5IEBACisuLiBfZmVhdHVyZXM6CisKK3dlYmFwcDIgZmVhdHVyZXMKKz09PT09PT09PT09PT09PT0KK0hlcmUncyBhbiBvdmVydmlldyBvZiB0aGUgbWFpbiBpbXByb3ZlbWVudHMgb2Ygd2ViYXBwMiBjb21wYXJlZCB0byB3ZWJhcHAuCisKKy4uIGNvbnRlbnRzOjogVGFibGUgb2YgQ29udGVudHMKKyAgIDpkZXB0aDogMworICAgOmJhY2tsaW5rczogbm9uZQorCisKK0NvbXBhdGlibGUgd2l0aCB3ZWJhcHAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3dlYmFwcDIgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIGV4aXN0aW5nIHdlYmFwcCBhcHBzIHdpdGhvdXQgYW55IGNoYW5nZXMuCitTZWUgaG93IHRoaXMgbG9va3MgZmFtaWxpYXI6OgorCisgICAgaW1wb3J0IHdlYmFwcDIgYXMgd2ViYXBwCisgICAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC53ZWJhcHAudXRpbCBpbXBvcnQgcnVuX3dzZ2lfYXBwCisKKyAgICBjbGFzcyBIZWxsb1dvcmxkSGFuZGxlcih3ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ0hlbGxvLCBXb3JsZCEnKQorCisgICAgYXBwID0gd2ViYXBwLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICgnLycsIEhlbGxvV29ybGRIYW5kbGVyKSwKKyAgICBdLCBkZWJ1Zz1UcnVlKQorCisgICAgZGVmIG1haW4oKToKKyAgICAgICAgcnVuX3dzZ2lfYXBwKGFwcCkKKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIG1haW4oKQorCitFdmVyeWJvZHkgc3RhcnRpbmcgd2l0aCBBcHAgRW5naW5lIG11c3Qga25vdyBhIGJpdCBvZiB3ZWJhcHAuIEFuZCB5b3UgeW91IGNhbgordXNlIHdlYmFwcDIgZXhhY3RseSBsaWtlIHdlYmFwcCwgZm9sbG93aW5nIHRoZSBvZmZpY2lhbCB0dXRvcmlhbHMsIGFuZCBsZWFybgordGhlIG5ldyBmZWF0dXJlcyBsYXRlciwgYXMgeW91IGdvLiBUaGlzIG1ha2VzIHdlYmFwcDIgaW5zYW5lbHkgZWFzeSB0byBsZWFybi4KKworQWxzbywgdGhlIFNESyBsaWJyYXJpZXMgdGhhdCB1c2Ugd2ViYXBwIGNhbiBiZSB1c2VkIHdpdGggd2ViYXBwMiBhcyB0aGV5IGFyZQorb3Igd2l0aCBtaW5pbWFsIGFkYXB0YXRpb25zLgorCisKK0NvbXBhdGlibGUgd2l0aCBsYXRlc3QgV2ViT2IKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSBgYFdlYk9iYGAgdmVyc2lvbiBpbmNsdWRlZCBpbiB0aGUgQXBwIEVuZ2luZSBTREsgd2FzIHJlbGVhc2VkIGluIDIwMDguCitTaW5jZSB0aGVuIG1hbnkgYnVncyB3ZXJlIGZpeGVkIGFuZCB0aGUgc291cmNlIGNvZGUgYmVjYW1lIGNsZWFuZXIgYW5kIGJldHRlcgorZG9jdW1lbnRlZC4gd2ViYXBwMiBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGBgV2ViT2JgYCB2ZXJzaW9uIGluY2x1ZGVkIGluIHRoZQorU0RLLCBidXQgZm9yIHRob3NlIHRoYXQgcHJlZmVyIHRoZSBsYXRlc3QgdmVyc2lvbiBjYW4gYmUgdXNlZCBhcyB3ZWxsLgorVGhpcyBhdm9pZHMgdGhlIGJ1Z3MKK2AjMTcwIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZ29vZ2xlYXBwZW5naW5lL2lzc3Vlcy9kZXRhaWw/aWQ9MTcwPmBfLAorYCM3MTkgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGVhcHBlbmdpbmUvaXNzdWVzL2RldGFpbD9pZD03MTk+YF8gYW5kCitgIzI3ODggPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGVhcHBlbmdpbmUvaXNzdWVzL2RldGFpbD9pZD0yNzg4PmBfLAorYXQgbGVhc3QuCisKKworRnVsbC1mZWF0dXJlZCByZXNwb25zZSBvYmplY3QKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit3ZWJhcHAyIHVzZXMgYSBmdWxsLWZlYXR1cmVkIHJlc3BvbnNlIG9iamVjdCBmcm9tIGBgV2ViT2JgYC4gSWYgb2ZmZXJzIHNldmVyYWwKK2NvbnZlbmllbmNlcyB0byBzZXQgaGVhZGVycywgbGlrZSBlYXN5IGNvb2tpZXMgYW5kIG90aGVyIGdvb2RpZXM6OgorCisgICAgY2xhc3MgTXlIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5zZXRfY29va2llKCdrZXknLCAndmFsdWUnLCBtYXhfYWdlPTM2MCwgcGF0aD0nLycpCisKKworU3RhdHVzIGNvZGUgZXhjZXB0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYGBhYm9ydCgpYGAgKG9yIGBgc2VsZi5hYm9ydCgpYGAgaW5zaWRlIGhhbmRsZXJzKSByYWlzZXMgYSBwcm9wZXIKK2BgSFRUUEV4Y2VwdGlvbmBgIChmcm9tIGBgV2ViT2JgYCkgYW5kIHN0b3BzIHByb2Nlc3Npbmc6OgorCisgICAgIyBSYWlzZSBhICdOb3QgRm91bmQnIGV4Y2VwdGlvbiBhbmQgbGV0IHRoZSA0MDQgZXJyb3IgaGFuZGxlciBkbyBpdHMgam9iLgorICAgIGFib3J0KDQwNCkKKyAgICAjIFJhaXNlIGEgJ0ZvcmJpZGRlbicgZXhjZXB0aW9uIGFuZCBsZXQgdGhlIDQwMyBlcnJvciBoYW5kbGVyIGRvIGl0cyBqb2IuCisgICAgc2VsZi5hYm9ydCg0MDMpCisKKworSW1wcm92ZWQgZXhjZXB0aW9uIGhhbmRsaW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0hUVFAgZXhjZXB0aW9ucyBjYW4gYWxzbyBiZSBoYW5kbGVkIGJ5IHRoZSBXU0dJIGFwcGxpY2F0aW9uOjoKKworICAgICMgLi4uCisgICAgaW1wb3J0IGxvZ2dpbmcKKworICAgIGRlZiBoYW5kbGVfNDA0KHJlcXVlc3QsIHJlc3BvbnNlLCBleGNlcHRpb24pOgorICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihleGNlcHRpb24pCisgICAgICAgIHJlc3BvbnNlLndyaXRlKCdPb3BzISBJIGNvdWxkIHN3ZWFyIHRoaXMgcGFnZSB3YXMgaGVyZSEnKQorICAgICAgICByZXNwb25zZS5zZXRfc3RhdHVzKDQwNCkKKworICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgKCcvJywgTXlIYW5kbGVyKSwKKyAgICBdKQorICAgIGFwcC5lcnJvcl9oYW5kbGVyc1s0MDRdID0gaGFuZGxlXzQwNAorCisKK0xhenkgaGFuZGxlcnMKKy0tLS0tLS0tLS0tLS0KK0xhenkgaGFuZGxlcnMgY2FuIGJlIGRlZmluZWQgYXMgYSBzdHJpbmcgdG8gYmUgaW1wb3J0ZWQgb25seSB3aGVuIG5lZWRlZDo6CisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICgnLycsICdteS5tb2R1bGUuTXlIYW5kbGVyJyksCisgICAgXSkKKworCitLZXl3b3JkIGFyZ3VtZW50cyBmcm9tIFVSSQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2BgUmVxdWVzdEhhbmRsZXJgYCBtZXRob2RzIGNhbiBhbHNvIHJlY2VpdmUga2V5d29yZCBhcmd1bWVudHMsIHdoaWNoIGFyZSBlYXNpZXIKK3RvIG1haW50YWluIHRoYW4gcG9zaXRpb25hbCBvbmVzLiBTaW1wbHkgdXNlIHRoZSBgYFJvdXRlYGAgY2xhc3MgdG8gZGVmaW5lCitVUklzIChhbmQgeW91IGNhbiBhbHNvIGNyZWF0ZSBjdXN0b20gcm91dGUgY2xhc3NlcywgZXhhbXBsZXMKK2BoZXJlIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkL3NvdXJjZS9icm93c2Uvd2ViYXBwMl9leHRyYXMvcm91dGVzLnB5PmBfKTo6CisKKyAgICBjbGFzcyBCbG9nQXJjaGl2ZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZiwgeWVhcj1Ob25lLCBtb250aD1Ob25lKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCBrZXl3b3JkIGFyZ3VtZW50cyB3b3JsZCEnKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvPHllYXI6XGR7NH0+Lzxtb250aDpcZHsyfT4nLCBoYW5kbGVyPUJsb2dBcmNoaXZlSGFuZGxlciwgbmFtZT0nYmxvZy1hcmNoaXZlJyksCisgICAgXSkKKworCitQb3NpdGlvbmFsIGFyZ3VtZW50cyBmcm9tIFVSSQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Bvc2l0aW9uYWwgYXJndW1lbnRzIGFyZSBhbHNvIHN1cHBvcnRlZCwgYXMgVVJJIHJvdXRpbmcgaXMgZnVsbHkgY29tcGF0aWJsZQord2l0aCB3ZWJhcHA6OgorCisgICAgY2xhc3MgQmxvZ0FyY2hpdmVIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYsIHllYXIsIG1vbnRoKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCB3ZWJhcHAgcm91dGluZyB3b3JsZCEnKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAoJy8oXGR7NH0pLyhcZHsyfSknLCBCbG9nQXJjaGl2ZUhhbmRsZXIpLAorICAgIF0pCisKKworUmV0dXJuZWQgcmVzcG9uc2VzCistLS0tLS0tLS0tLS0tLS0tLS0KK1NldmVyYWwgUHl0aG9uIGZyYW1ld29ya3MgYWRvcHQgdGhlIHBhdHRlcm4gb24gcmV0dXJuaW5nIGEgcmVzcG9uc2Ugb2JqZWN0LAoraW5zdGVhZCBvZiB3cml0aW5nIHRvIGFuIGV4aXN0aW5nIHJlc3BvbnNlIG9iamVjdCBsaWtlIHdlYmFwcC4gRm9yIHRob3NlIHRoYXQKK3ByZWZlciwgd2ViYXBwMiBzdXBwb3J0cyB0aGlzOiBzaW1wbHkgcmV0dXJuIGEgcmVzcG9uc2Ugb2JqZWN0IGZyb20gYSBoYW5kbGVyCithbmQgaXQgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIG9uZSBjcmVhdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbjo6CisKKyAgICBjbGFzcyBCbG9nQXJjaGl2ZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gd2ViYXBwMi5SZXNwb25zZSgnSGVsbG8sIHJldHVybmVkIHJlc3BvbnNlIHdvcmxkIScpCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBoYW5kbGVyPUhvbWVIYW5kbGVyLCBuYW1lPSdob21lJyksCisgICAgXSkKKworCitDdXN0b20gaGFuZGxlciBtZXRob2RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit3ZWJhcHAyIHJvdXRpbmcgYW5kIGRpc3BhdGNoaW5nIHN5c3RlbSBjYW4gZG8gYSBsb3QgbW9yZSB0aGFuIHdlYmFwcC4KK0ZvciBleGFtcGxlLCBoYW5kbGVycyBjYW4gYWxzbyB1c2UgY3VzdG9tIG1ldGhvZHM6OgorCisgICAgY2xhc3MgTXlIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgbXlfY3VzdG9tX21ldGhvZChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCBjdXN0b20gbWV0aG9kIHdvcmxkIScpCisKKyAgICAgICAgZGVmIG15X290aGVyX21ldGhvZChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCBhbm90aGVyIGN1c3RvbSBtZXRob2Qgd29ybGQhJykKKworICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIGhhbmRsZXI9TXlIYW5kbGVyLCBuYW1lPSdjdXN0b20tMScsIGhhbmRsZXJfbWV0aG9kPSdteV9jdXN0b21fbWV0aG9kJyksCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy9vdGhlcicsIGhhbmRsZXI9TXlIYW5kbGVyLCBuYW1lPSdjdXN0b20tMicsIGhhbmRsZXJfbWV0aG9kPSdteV9vdGhlcl9tZXRob2QnKSwKKyAgICBdKQorCisKK1ZpZXcgZnVuY3Rpb25zCistLS0tLS0tLS0tLS0tLQorSW4gd2ViYXBwMiBoYW5kbGVycyBkb24ndCBuZWVkIG5lY2Vzc2FyaWx5IHRvIGJlIGNsYXNzZXMuIEZvciB0aG9zZSB0aGF0CitwcmVmZXIsIGZ1bmN0aW9ucyBjYW4gYmUgdXNlZCBhcyB3ZWxsOjoKKworICAgIGRlZiBteV9zd2VldF9mdW5jdGlvbihyZXF1ZXN0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gd2ViYXBwMi5SZXNwb25zZSgnSGVsbG8sIGZ1bmN0aW9uIHdvcmxkIScpCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBoYW5kbGVyPW15X3N3ZWV0X2Z1bmN0aW9uLCBuYW1lPSdob21lJyksCisgICAgXSkKKworCitNb3JlIGZsZXhpYmxlIGRpc3BhdGNoaW5nIG1lY2hhbmlzbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSBgYFdTR0lBcHBsaWNhdGlvbmBgIGluIHdlYmFwcCBpcyBoYXJkIHRvIG1vZGlmeS4gSXQgZGlzcGF0Y2hlcyB0aGUKK2hhbmRsZXIgZ2l2aW5nIGxpdHRsZSBjaGFuY2UgdG8gZGVmaW5lIGhvdyBpdCBpcyBkb25lLCBvciB0byBwcmUtcHJvY2VzcworcmVxdWVzdHMgYmVmb3JlIGEgaGFuZGxlciBtZXRob2QgaXMgYWN0dWFsbHkgY2FsbGVkLiBJbiB3ZWJhcHAyIHRoZSBoYW5kbGVycworZGlzcGF0Y2ggdGhlbXNlbHZlcywgbWFraW5nIGl0IGVhc3kgdG8gaW1wbGVtZW50IGJlZm9yZSBhbmQgYWZ0ZXIgZGlzcGF0Y2gKK2hvb2tzLgorCit3ZWJhcHAyIGlzIHRob3VnaHQgdG8gYmUgbGlnaHR3ZWlnaHQgYnV0IGZsZXhpYmxlLiBJdCBiYXNpY2FsbHkgcHJvdmlkZXMgYW4KK2Vhc3kgdG8gY3VzdG9taXplIFVSSSByb3V0aW5nIGFuZCBkaXNwYXRjaGluZyBtZWNoYW5pc21zOiB5b3UgY2FuIGV2ZW4gZXh0ZW5kCitob3cgVVJJcyBhcmUgbWF0Y2hlZCBvciBidWlsdCBvciBob3cgaGFuZGxlcnMgYXJlIGFkYXB0ZWQgb3IgZGlzcGF0Y2hlZAord2l0aG91dCBzdWJjbGFzc2luZy4KKworRm9yIGFuIGV4YW1wbGUgb2Ygd2ViYXBwMidzIGZsZXhpYmlsaXR5LAorc2VlIDpyZWY6YGd1aWRlLmhhbmRsZXJzLmEubWljcm8uZnJhbWV3b3JrLmJhc2VkLm9uLndlYmFwcDJgLgorCisKK0RvbWFpbiBhbmQgc3ViZG9tYWluIHJvdXRpbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3dlYmFwcDIgc3VwcG9ydHMgOnJlZjpgZG9tYWluIGFuZCBzdWJkb21haW4gcm91dGluZyA8Z3VpZGUucm91dGluZy5kb21haW4tYW5kLXN1YmRvbWFpbi1yb3V0aW5nPmAKK3RvIHJlc3RyaWN0IFVSSSBtYXRjaGVzIGJhc2VkIG9uIHRoZSBzZXJ2ZXIgbmFtZTo6CisKKyAgICByb3V0ZXMuRG9tYWluUm91dGUoJ3d3dy5teWRvbWFpbi5jb20nLCBbCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBoYW5kbGVyPUhvbWVIYW5kbGVyLCBuYW1lPSdob21lJyksCisgICAgXSkKKworCitNYXRjaCBIVFRQIG1ldGhvZHMgb3IgVVJJIHNjaGVtZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQord2ViYXBwMiByb3V0aW5nIHN5c3RlbSBhbGxvd3Mgcm91dGVzIHRvIGJlIHJlc3RyaWN0ZWQgdG8gdGhlCis6cmVmOmBIVFRQIG1ldGhvZCA8Z3VpZGUucm91dGluZy5yZXN0cmljdGluZy1odHRwLW1ldGhvZHM+YCBvciBhIHNwZWNpZmljCis6cmVmOmBVUkkgc2NoZW1lIDxndWlkZS5yb3V0aW5nLnJlc3RyaWN0aW5nLXVyaS1zY2hlbWVzPmAuIFlvdSBjYW4gc2V0IHJvdXRlcwordGhhdCB3aWxsIG9ubHkgbWF0Y2ggcmVxdWVzdHMgdXNpbmcgJ2h0dHBzJywgZm9yIGV4YW1wbGUuCisKKworVVJJIGJ1aWxkZXIKKy0tLS0tLS0tLS0tCitVUklzIGRlZmluZWQgaW4gdGhlIGFwbGljYXRpb24gY2FuIGJlIGJ1aWx0LiBUaGlzIGlzIG1vcmUgbWFpbnRhbmFibGUgdGhhbgoraGFyZGNvZGluZyB0aGVtIGluIHRoZSBjb2RlIG9yIHRlbXBsYXRlcy4gU2ltcGx5IHVzZSB0aGUgYGB1cmlfZm9yKClgYAorZnVuY3Rpb246OgorCisgICAgdXJpID0gdXJpX2ZvcignYmxvZy1hcmNoaXZlJywgeWVhcj0nMjAxMCcsIG1vbnRoPScwNycpCisKK0FuZCBhIGhhbmRsZXIgaGVscGVyIGZvciByZWRpcmVjdHMgYnVpbGRzIHRoZSBVUkkgdG8gcmVkaXJlY3QgdG8uCityZWRpcmVjdF90byA9IHJlZGlyZWN0ICsgdXJpX2Zvcjo6CisKKyAgICBzZWxmLnJlZGlyZWN0X3RvKCdibG9nLWFyY2hpdmUnLCB5ZWFyPScyMDEwJywgbW9udGg9JzA3JykKKworCitSZWRpcmVjdGlvbiBmb3IgbGVnYWN5IFVSSXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorT2xkIFVSSXMgY2FuIGJlIGNvbnZlbmllbnRseSByZWRpcmVjdGVkIHVzaW5nIGEgc2ltcGxlIHJvdXRlOjoKKworICAgIGRlZiBnZXRfcmVkaXJlY3RfdXJpKGhhbmRsZXIsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBoYW5kbGVyLnVyaV9mb3IoJ3ZpZXcnLCBpdGVtPWt3YXJncy5nZXQoJ2l0ZW0nKSkKKworICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL3ZpZXcvPGl0ZW0+JywgVmlld0hhbmRsZXIsICd2aWV3JyksCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy9vbGQtcGFnZScsIFJlZGlyZWN0SGFuZGxlciwgZGVmYXVsdHM9eyd1cmknOiAnL3ZpZXcvaS1jYW1lLWZyb20tYS1yZWRpcmVjdCd9KSwKKyAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL29sZC12aWV3LzxpdGVtPicsIFJlZGlyZWN0SGFuZGxlciwgZGVmYXVsdHM9eyd1cmknOiBnZXRfcmVkaXJlY3RfdXJpfSksCisgICAgXSkKKworCitTaW1wbGUsIHdlbGwtdGVzdGVkIGFuZCBkb2N1bWVudGVkCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit3ZWJhcHAyIGlzIGBzaW1wbGUgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJhcHAtaW1wcm92ZWQvc291cmNlL2Jyb3dzZS93ZWJhcHAyLnB5PmBfLAorZXh0ZW5zaXZlbHkgZG9jdW1lbnRlZCBhbmQgaGFzIGFsbW9zdCAxMDAlIHRlc3QgY292ZXJhZ2UuIFRoZSBzb3VyY2UgY29kZSBpcworZXhwbGljaXQsIG1hZ2ljLWZyZWUgYW5kIG1hZGUgdG8gYmUgZXh0ZW5kZWQuIFdlIGxpa2UgbGVzcy4KKworCitJbmRlcGVuZGVudCBvZiB0aGUgQXBwIEVuZ2luZSBTREsKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQord2ViYXBwMiBkb2Vzbid0IGRlcGVuZCBvbiB0aGUgR29vZ2xlIEFwcCBFbmdpbmUgU0RLIGFuZAorOnJlZjpgY2FuIGJlIHVzZWQgb3V0c2lkZSBvZiBBcHAgRW5naW5lIDx0dXRvcmlhbHMucXVpY2tzdGFydC5ub2dhZT5gLgorSWYgdGhlIFNESyBpcyBub3QgZm91bmQsIGl0IGhhcyBmYWxsYmFja3MgdG8gYmUgdXNlZCBpbiBhbnkgc2VydmVyIGFzIGEKK2dlbmVyYWwgcHVycG9zZSB3ZWIgZnJhbWV3b3JrLgorCisKK0Z1dHVyZSBwcm9vZgorLS0tLS0tLS0tLS0tCitCZWNhdXNlIGl0IHdvcmtzIG9uIHRocmVhZGVkIGVudmlyb25tZW50cywgd2ViYXBwMiBpcyByZWFkeSBmb3Igd2hlbgorQXBwIEVuZ2luZSBpbnRyb2R1Y2VzIHRocmVhZGluZyBzdXBwb3J0IGluIHRoZSBQeXRob24gMi43IHJ1bnRpbWUuCisKKworU2FtZSBwZXJmb3JtYW5jZQorLS0tLS0tLS0tLS0tLS0tLQorQmVzdCBvZiBhbGwgaXMgdGhhdCB3aXRoIGFsbCB0aGVzZSBmZWF0dXJlcywgdGhlcmUgaXMgbm8gbG9zcyBvZiBwZXJmb3JtYW5jZToKK2NvbGQgc3RhcnQgdGltZXMgYXJlIHRoZSBzYW1lIGFzIHdlYmFwcC4gSGVyZSBhcmUgc29tZSBsb2dzIG9mIGEgJ0hlbGxvIFdvcmxkJworY29sZCBzdGFydDoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgMTAwbXMgNzdjcHVfbXMKKyAgIDE0M21zIDU4Y3B1X21zCisgICAxNTVtcyA3N2NwdV9tcworICAgMTk3bXMgOTZjcHVfbXMKKyAgIDEwNm1zIDc3Y3B1X21zCisKKworRXh0cmFzCistLS0tLS0KK1RoZSBgd2ViYXBwMl9leHRyYXMgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJhcHAtaW1wcm92ZWQvc291cmNlL2Jyb3dzZS8jaGclMkZ3ZWJhcHAyX2V4dHJhcz5gXworcGFja2FnZSBwcm92aWRlcyBjb21tb24gdXRpbGl0aWVzIHRoYXQgaW50ZWdyYXRlIHdlbGwgd2l0aCB3ZWJhcHAyOgorCistIExvY2FsaXphdGlvbiBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydAorLSBTZXNzaW9ucyB1c2luZyBzZWN1cmUgY29va2llcywgbWVtY2FjaGUgb3IgZGF0YXN0b3JlCistIEV4dHJhIHJvdXRlIGNsYXNzZXMgLS0gdG8gbWF0Y2ggc3ViZG9tYWlucyBhbmQgb3RoZXIgY29udmVuaWVuY2VzCistIFN1cHBvcnQgZm9yIHRoaXJkIHBhcnR5IGxpYnJhcmllczogSmluamEyIGFuZCBNYWtvCistIFN1cHBvcnQgZm9yIHRocmVhZGVkIGVudmlyb25tZW50cywgc28gdGhhdCB5b3UgY2FuIHVzZSB3ZWJhcHAyIG91dHNpZGUgb2YKKyAgQXBwIEVuZ2luZSBvciBpbiB0aGUgdXBjb21pbmcgQXBwIEVuZ2luZSBQeXRob24gMi43IHJ1bnRpbWUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvYXBwLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvYXBwLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWU4OGQzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9ndWlkZS9hcHAucnN0CkBAIC0wLDAgKzEsMjc1IEBACisuLiBfZ3VpZGUuYXBwOgorCitUaGUgV1NHSSBhcHBsaWNhdGlvbgorPT09PT09PT09PT09PT09PT09PT0KK1RoZSBXU0dJIGFwcGxpY2F0aW9uIHJlY2VpdmVzIHJlcXVlc3RzIGFuZCBkaXNwYXRjaGVzIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVyLAorcmV0dXJuaW5nIGEgcmVzcG9uc2UgdG8gdGhlIGNsaWVudC4gSXQgc3RvcmVzIHRoZSBVUkkgcm91dGVzIHRoYXQgdGhlIGFwcCB3aWxsCithY2NlcHQsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGFuZCByZWdpc3RlcmVkIG9iamVjdHMgdGhhdCBjYW4gYmUgc2hhcmVkCitiZXR3ZWVuIHJlcXVlc3RzLiBUaGUgV1NHSSBhcHAgaXMgYWxzbyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdW5jYXVnaHQKK2V4Y2VwdGlvbnMsIGF2b2lkaW5nIHRoYXQgc3RhY2sgdHJhY2VzICJsZWFrIiB0byB0aGUgY2xpZW50IHdoZW4gaW4gcHJvZHVjdGlvbi4KK0xldCdzIHRha2UgYW4gaW4gZGVwdGggbG9vayBhdCBpdCBub3cuCisKKy4uIG5vdGU6OgorICAgSWYgdGhlIFdTR0kgd29yZCBsb29rcyB0b3RhbGx5IHVuZmFtaWxpYXIgdG8geW91LCByZWFkIHRoZQorICAgYEFub3RoZXIgRG8tSXQtWW91cnNlbGYgRnJhbWV3b3JrYF8gdHV0b3JpYWwgYnkgSWFuIEJpY2tpbmcuIEl0IGlzIGEgdmVyeQorICAgcmVjb21tZW5kZWQgaW50cm9kdWN0aW9uIHRvIFdTR0kgYW5kIHlvdSBzaG91bGQgYXQgbGVhc3QgdGFrZSBhIHF1aWNrIGxvb2sKKyAgIGF0IHRoZSBjb25jZXB0cywgYnV0IGZvbGxvd2luZyB0aGUgd2hvbGUgdHV0b3JpYWwgaXMgcmVhbGx5IHdvcnRoLgorCisgICBBIG1vcmUgYWR2YW5jZWQgcmVhZGluZyBpcyB0aGUgV1NHSSBzcGVjaWZpY2F0aW9uIGRlc2NyaWJlZCBpbiB0aGUKKyAgIGBQRVAgMzMzIDxodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzMzMvPmBfLgorCisKK0luaXRpYWxpemF0aW9uCistLS0tLS0tLS0tLS0tLQorVGhlIDpjbGFzczpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb25gIGNsYXNzIGlzIGluaXRpYWxpemVkIHdpdGggdGhyZWUgb3B0aW9uYWwKK2FyZ3VtZW50czoKKworLSBgYHJvdXRlc2BgOiBhIGxpc3Qgb2Ygcm91dGUgZGVmaW5pdGlvbnMgYXMgZGVzY3JpYmVkIGluIDpyZWY6YGd1aWRlLnJvdXRpbmdgLgorLSBgYGRlYnVnYGA6IGEgYm9vbGVhbiBmbGFnIHRoYXQgZW5hYmxlcyBkZWJ1ZyBtb2RlLgorLSBgYGNvbmZpZ2BgOiBhIGRpY3Rpb25hcnkgb2YgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi4KKworQ29tcGFyZWQgdG8gd2ViYXBwLCBvbmx5IGNvbmZpZyB3YXMgYWRkZWQ7IGl0IGlzIHVzZWQgYXMgYSBzdGFuZGFyZCB3YXkgdG8KK2NvbmZpZ3VyZSBleHRyYSBtb2R1bGVzIChzZXNzaW9ucywgaW50ZXJuYXRpb25hbGl6YXRpb24sIHRlbXBsYXRlcyBvciB5b3VyCitvd24gYXBwIGNvbmZpZ3VyYXRpb24gdmFsdWVzKS4KKworRXZlcnl0aGluZyBpcyBwcmV0dHkgc3RyYWlnaGZvcndhcmQ6OgorCisgICAgaW1wb3J0IHdlYmFwcDIKKworICAgIHJvdXRlcyA9IFsKKyAgICAgICAgKHInLycsICdoYW5kbGVycy5IZWxsb1dvcmxkSGFuZGxlcicpLAorICAgIF0KKworICAgIGNvbmZpZyA9IHt9CisgICAgY29uZmlnWyd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9ucyddID0geworICAgICAgICAnc2VjcmV0X2tleSc6ICdzb21ldGhpbmctdmVyeS12ZXJ5LXNlY3JldCcsCisgICAgfQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24ocm91dGVzPXJvdXRlcywgZGVidWc9VHJ1ZSwgY29uZmlnPWNvbmZpZykKKworCisuLiBfZ3VpZGUuYXBwLnJvdXRlcjoKKworUm91dGVyCistLS0tLS0KKzpyZWY6YGd1aWRlLnJvdXRpbmdgIGlzIGEgY2VudHJhbCBwaWVjZSBpbiB3ZWJhcHAyLCBhbmQgaXRzIG1haW4gY29tcG9uZW50IGlzCit0aGUgOmNsYXNzOmB3ZWJhcHAyLlJvdXRlcmAgb2JqZWN0LCBhdmFpbGFibGUgaW4gdGhlIGFwcGxpY2F0aW9uIGFzIHRoZQorOmF0dHI6YHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uLnJvdXRlcmAgYXR0cmlidXRlLgorCitUaGUgcm91dGVyIG9iamVjdCBpcyByZXNwb25zaWJsZSBmb3IgZXZlcnl0aGluZyByZWxhdGVkIHRvIG1hcHBpbmcgVVJJcyB0bworaGFuZGxlcnMuIFRoZSByb3V0ZXI6CisKKy0gU3RvcmVzIHJlZ2lzdGVyZWQgInJvdXRlcyIsIHdoaWNoIG1hcCBVUklzIHRvIHRoZSBhcHBsaWNhdGlvbiBoYW5kbGVycworICB0aGF0IHdpbGwgaGFuZGxlIHRob3NlIHJlcXVlc3RzLgorLSBNYXRjaGVzIHRoZSBjdXJyZW50IHJlcXVlc3QgYWdhaW5zdCB0aGUgcmVnaXN0ZXJlZCByb3V0ZXMgYW5kIHJldHVybnMgdGhlCisgIGhhbmRsZXIgdG8gYmUgdXNlZCBmb3IgdGhhdCByZXF1ZXN0IChvciByYWlzZXMgYSBgYEhUVFBOb3RGb3VuZGBgIGV4Y2VwdGlvbgorICBpZiBubyBoYW5kbGVyIHdhcyBmb3VuZCkuCistIERpc3BhdGNoZXMgdGhlIG1hdGNoZWQgaGFuZGxlciwgaS5lLiwgY2FsbGluZyBpdCBhbmQgcmV0dXJuaW5nIGEgcmVzcG9uc2UKKyAgdG8gdGhlIGBgV1NHSUFwcGxpY2F0aW9uYGAuCistIEJ1aWxkcyBVUklzIGZvciB0aGUgcmVnaXN0ZXJlZCByb3V0ZXMuCisKK1VzaW5nIHRoZSBgYHJvdXRlcmBgIGF0dHJpYnV0ZSB5b3UgY2FuLCBmb3IgZXhhbXBsZSwgYWRkIG5ldyByb3V0ZXMgdG8gdGhlCithcHBsaWNhdGlvbiBhZnRlciBpbml0aWFsaXphdGlvbiB1c2luZyB0aGUgYGBhZGQoKWBgIG1ldGhvZDo6CisKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oKQorICAgIGFwcC5yb3V0ZXIuYWRkKChyJy8nLCAnaGFuZGxlcnMuSGVsbG9Xb3JsZEhhbmRsZXInKSkKKworVGhlIHJvdXRlciBoYXMgc2V2ZXJhbCBtZXRob2RzIHRvIG92ZXJyaWRlIGhvdyBVUklzIGFyZSBtYXRjaGVkIG9yIGJ1aWx0IG9yIGhvdworaGFuZGxlcnMgYXJlIGFkYXB0ZWQgb3IgZGlzcGF0Y2hlZCB3aXRob3V0IGV2ZW4gcmVxdWlyaW5nIHN1YmNsYXNzaW5nLiBGb3IgYW4KK2V4YW1wbGUgb2YgZXh0ZW5kaW5nIHRoZSBkZWZhdWx0IGRpc3BhdGNoaW5nIG1lY2hhbmlzbSwgc2VlCis6cmVmOmBSZXF1ZXN0IGhhbmRsZXJzOiByZXR1cm5lZCB2YWx1ZXMgPGd1aWRlLmhhbmRsZXJzLnJldHVybmVkX3ZhbHVlcz5gLgorCitBbHNvIGNoZWNrIHRoZSA6Y2xhc3M6YFJvdXRlciBBUEkgZG9jdW1lbnRhdGlvbiA8d2ViYXBwMi5Sb3V0ZXI+YCBmb3IKK2EgZGVzY3JpcHRpb24gb2YgdGhlIG1ldGhvZHMgOm1ldGg6YHdlYmFwcDIuUm91dGVyLnNldF9tYXRjaGVyYCwKKzptZXRoOmB3ZWJhcHAyLlJvdXRlci5zZXRfZGlzcGF0Y2hlcmAsIDptZXRoOmB3ZWJhcHAyLlJvdXRlci5zZXRfYWRhcHRlcmAgYW5kCis6bWV0aDpgd2ViYXBwMi5Sb3V0ZXIuc2V0X2J1aWxkZXJgLgorCisKKy4uIF9ndWlkZS5hcHAuY29uZmlnOgorCitDb25maWcKKy0tLS0tLQorV2hlbiBpbnN0YW50aWF0aW5nIHRoZSBhcHAsIHlvdSBjYW4gcGFzcyBhIGNvbmZpZ3VyYXRpb24gZGljdGlvbmFyeSB3aGljaCBpcwordGhlbiBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIDphdHRyOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbi5jb25maWdgIGF0dHJpYnV0ZS4KK0EgY29udmVudGlvbiBpcyB0byBkZWZpbmUgY29uZmlndXJhdGlvbiBrZXlzIGZvciBlYWNoIG1vZHVsZSwgdG8gYXZvaWQgbmFtZQorY2xhc2hlcywgYnV0IHlvdSBjYW4gZGVmaW5lIHRoZW0gYXMgeW91IHdpc2gsIHJlYWxseSwgdW5sZXNzIHRoZSBtb2R1bGUKK3JlcXVpcmVzIGEgc3BlY2lmaWMgc2V0dXAuIEZpcnN0IHlvdSBkZWZpbmUgYSBjb25maWd1cmF0aW9uOjoKKworICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICBjb25maWcgPSB7J2Zvbyc6ICdiYXInfQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24ocm91dGVzPVsKKyAgICAgICAgKHInLycsICdoYW5kbGVycy5NeUhhbmRsZXInKSwKKyAgICBdLCBjb25maWc9Y29uZmlnKQorCitUaGVuIGFjY2VzcyBpdCBhcyB5b3UgbmVlZC4gSW5zaWRlIGEgYGBSZXF1ZXN0SGFuZGxlcmBgLCBmb3IgZXhhbXBsZTo6CisKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgY2xhc3MgTXlIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgZm9vID0gc2VsZi5hcHAuY29uZmlnLmdldCgnZm9vJykKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ2ZvbyB2YWx1ZSBpcyAlcycgJSBmb28pCisKKworLi4gX2d1aWRlLmFwcC5yZWdpc3RyeToKKworUmVnaXN0cnkKKy0tLS0tLS0tCitBIHNpbXBsZSBkaWN0aW9uYXJ5IGlzIGF2YWlsYWJsZSBpbiB0aGUgYXBwbGljYXRpb24gdG8gcmVnaXN0ZXIgaW5zdGFuY2VzIHRoYXQKK2FyZSBzaGFyZWQgYmV0d2VlbiByZXF1ZXN0czogaXQgaXMgdGhlIDphdHRyOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbi5yZWdpc3RyeWAKK2F0dHJpYnV0ZS4gSXQgY2FuIGJlIHVzZWQgYnkgYW55dGhpbmcgdGhhdCB5b3VyIGFwcCByZXF1aXJlcyBhbmQgdGhlIGludGVudGlvbgoraXMgdG8gYXZvaWQgZ2xvYmFsIHZhcmlhYmxlcyBpbiBtb2R1bGVzLCBzbyB0aGF0IHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBhcHAKK2luc3RhbmNlcyB1c2luZyBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnM6IGVhY2ggYXBwIGhhcyBpdHMgb3duIGV4dHJhIGluc3RhbmNlcworZm9yIGFueSBraW5kIG9mIG9iamVjdCB0aGF0IGlzIHNoYXJlZCBiZXR3ZWVuIHJlcXVlc3RzLiBBIHNpbXBsZSBleGFtcGxlIHRoYXQKK3JlZ2lzdGVycyBhIGZpY3RpdGlvdXMgYGBNeVBhcnNlcmBgIGluc3RhbmNlIGlmIGl0IGlzIG5vdCB5ZXQgcmVnaXN0ZXJlZDo6CisKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgZGVmIGdldF9wYXJzZXIoKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5nZXRfYXBwKCkKKyAgICAgICAgIyBDaGVjayBpZiB0aGUgaW5zdGFuY2UgaXMgYWxyZWFkeSByZWdpc3RlcmVkLgorICAgICAgICBteV9wYXJzZXIgPSBhcHAucmVnaXN0cnkuZ2V0KCdteV9wYXJzZXInKQorICAgICAgICBpZiBub3QgbXlfcGFyc2VyOgorICAgICAgICAgICAgIyBJbXBvcnQgdGhlIGNsYXNzIGxhemlseS4KKyAgICAgICAgICAgIGNscyA9IHdlYmFwcDIuaW1wb3J0X3N0cmluZygnbXkubW9kdWxlLk15UGFyc2VyJykKKyAgICAgICAgICAgICMgSW5zdGFudGlhdGUgdGhlIGltcG9ydGVkIGNsYXNzLgorICAgICAgICAgICAgbXlfcGFyc2VyID0gY2xzKCkKKyAgICAgICAgICAgICMgUmVnaXN0ZXIgdGhlIGluc3RhbmNlIGluIHRoZSByZWdpc3RyeS4KKyAgICAgICAgICAgIGFwcC5yZWdpc3RyeVsnbXlfcGFyc2VyJ10gPSBteV9wYXJzZXIKKworICAgICAgICByZXR1cm4gbXlfcGFyc2VyCisKK1RoZSByZWdpc3RyeSBjYW4gYmUgdXNlZCB0byBsYXppbHkgaW5zdGFudGlhdGUgb2JqZWN0cyB3aGVuIG5lZWRlZCwgYW5kIGtlZXAgYQorcmVmZXJlbmNlIGluIHRoZSBhcHBsaWNhdGlvbiB0byBiZSByZXVzZWQuCisKK0EgcmVnaXN0cnkgZGljdGlvbmFyeSBpcyBhbHNvIGF2YWlsYWJsZSBpbiB0aGUKKzpyZWY6YHJlcXVlc3Qgb2JqZWN0IDxndWlkZS5yZXF1ZXN0LnJlZ2lzdHJ5PmAsIHRvIHN0b3JlIHNoYXJlZCBvYmplY3RzCit1c2VkIGR1cmluZyBhIHNpbmdsZSByZXF1ZXN0LgorCisKK0Vycm9yIGhhbmRsZXJzCistLS0tLS0tLS0tLS0tLQorQXMgZGVzY3JpYmVkIGluIDpyZWY6YGd1aWRlLmV4Y2VwdGlvbnNgLCBhIGRpY3Rpb25hcnkgaXMgYXZhaWxhYmxlIGluIHRoZSBhcHAKK3RvIHJlZ2lzdGVyIGVycm9yIGhhbmRsZXJzIGFzIHRoZSA6YXR0cjpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb24uZXJyb3JfaGFuZGxlcnNgCithdHRyaWJ1dGUuIFRoZXkgd2lsbCBiZSB1c2VkIGFzIGEgbGFzdCByZXNvdXJjZSBpZiBleGNlcHRpb25zIGFyZSBub3QgY2F1Z2h0CitieSBoYW5kbGVycy4gSXQgaXMgYSBnb29kIGlkZWEgdG8gc2V0IGF0IGxlYXN0IGVycm9yIGhhbmRsZXJzIGZvciA0MDQgYW5kIDUwMAorc3RhdHVzIGNvZGVzOjoKKworICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgZGVmIGhhbmRsZV80MDQocmVxdWVzdCwgcmVzcG9uc2UsIGV4Y2VwdGlvbik6CisgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKGV4Y2VwdGlvbikKKyAgICAgICAgcmVzcG9uc2Uud3JpdGUoJ09vcHMhIEkgY291bGQgc3dlYXIgdGhpcyBwYWdlIHdhcyBoZXJlIScpCisgICAgICAgIHJlc3BvbnNlLnNldF9zdGF0dXMoNDA0KQorCisgICAgZGVmIGhhbmRsZV81MDAocmVxdWVzdCwgcmVzcG9uc2UsIGV4Y2VwdGlvbik6CisgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKGV4Y2VwdGlvbikKKyAgICAgICAgcmVzcG9uc2Uud3JpdGUoJ0Egc2VydmVyIGVycm9yIG9jY3VycmVkIScpCisgICAgICAgIHJlc3BvbnNlLnNldF9zdGF0dXMoNTAwKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICB3ZWJhcHAyLlJvdXRlKHInLycsIGhhbmRsZXI9J2hhbmRsZXJzLkhvbWVIYW5kbGVyJywgbmFtZT0naG9tZScpCisgICAgXSkKKyAgICBhcHAuZXJyb3JfaGFuZGxlcnNbNDA0XSA9IGhhbmRsZV80MDQKKyAgICBhcHAuZXJyb3JfaGFuZGxlcnNbNTAwXSA9IGhhbmRsZV81MDAKKworCitEZWJ1ZyBmbGFnCistLS0tLS0tLS0tCitBIGRlYnVnIGZsYWcgaXMgcGFzc2VkIHRvIHRoZSBXU0dJIGFwcGxpY2F0aW9uIG9uIGluc3RhbnRpYXRpb24gYW5kIGlzCithdmFpbGFibGUgYXMgdGhlIDphdHRyOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbi5kZWJ1Z2AgYXR0cmlidXRlLiBXaGVuIGluCitkZWJ1ZyBtb2RlLCBhbnkgZXhjZXB0aW9uIHRoYXQgaXMgbm93IGNhdWdodCBpcyByYWlzZWQgYW5kIHRoZSBzdGFjayB0cmFjZSBpcworZGlzcGxheWVkIHRvIHRoZSBjbGllbnQsIHdoaWNoIGhlbHBzIGRlYnVnZ2luZy4gV2hlbiBub3QgaW4gZGVidWcgbW9kZSwgYQorJzUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InIGlzIGRpc3BsYXllZCBpbnN0ZWFkLgorCitZb3UgY2FuIHVzZSB0aGF0IGZsYWcgdG8gc2V0IHNwZWNpYWwgYmVoYXZpb3JzIGZvciB0aGUgYXBwbGljYXRpb24gZHVyaW5nCitkZXZlbG9wbWVudC4KKworRm9yIEFwcCBFbmdpbmUsIGl0IGlzIHBvc3NpYmxlIHRvIGRldGVjdCBpZiB0aGUgY29kZSBpcyBydW5uaW5nIHVzaW5nIHRoZSBTREsKK29yIGluIHByb2R1Y3Rpb24gY2hlY2tpbmcgdGhlICdTRVJWRVJfU09GVFdBUkUnIGVudmlyb24gdmFyaWFibGU6OgorCisgICAgaW1wb3J0IG9zCisKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgZGVidWcgPSBvcy5lbnZpcm9uLmdldCgnU0VSVkVSX1NPRlRXQVJFJywgJycpLnN0YXJ0c3dpdGgoJ0RldicpCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihyb3V0ZXM9WworICAgICAgICAocicvJywgJ2hhbmRsZXJzLkhlbGxvV29ybGRIYW5kbGVyJyksCisgICAgXSwgZGVidWc9ZGVidWcpCisKKworVGhyZWFkLXNhZmUgYXBwbGljYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitCeSBkZWZhdWx0LCB3ZWJhcHAyIGlzIHRocmVhZC1zYWZlIHdoZW4gdGhlIG1vZHVsZQorOmNsYXNzOmB3ZWJhcHAyX2V4dHJhcy5sb2NhbGAgaXMgYXZhaWxhYmxlLiBUaGlzIG1lYW5zIHRoYXQgaXQgY2FuIGJlIHVzZWQKK291dHNpZGUgb2YgQXBwIEVuZ2luZSBvciBpbiB0aGUgdXBjb21pbmcgQXBwIEVuZ2luZSBQeXRob24gMi43IHJ1bnRpbWUuCitUaGlzIGFsc28gd29ya3MgaW4gbm9uLXRocmVhZGVkIGVudmlyb25tZW50cyBzdWNoIGFzIEFwcCBFbmdpbmUgUHl0aG9uIDIuNS4KKworU2VlIGluIHRoZSA6cmVmOmB0dXRvcmlhbHMucXVpY2tzdGFydC5ub2dhZWAgdHV0b3JpYWwgYW4gZXhwbGFuYXRpb24gb24gaG93Cit0byB1c2Ugd2ViYXBwMiBvdXRzaWRlIG9mIEFwcCBFbmdpbmUuCisKKworUnVubmluZyB0aGUgYXBwCistLS0tLS0tLS0tLS0tLS0KK1RoZSBhcHBsaWNhdGlvbiBpcyBleGVjdXRlZCBpbiBhIENHSSBlbnZpcm9ubWVudCB1c2luZyB0aGUgbWV0aG9kCis6bWV0aDpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb24ucnVuYC4gV2hlbiB1c2luZyBBcHAgRW5naW5lLCBpdCB1c2VzCit0aGUgZnVuY3Rpb25zIGBgcnVuX2JhcmVfd3NnaV9hcHBgYCBvciBgYHJ1bl93c2dpX2FwcGBgIGZyb20KK2BgZ29vZ2xlLmFwcGVuZ2luZS5leHQud2ViYXBwLnV0aWxgYC4gT3V0c2lkZSBvZiBBcHAgRW5naW5lLCBpdCB1c2VzIHRoZQorOnB5Om1vZDpgd3NnaXJlZi5oYW5kbGVyc2AgbW9kdWxlLiBIZXJlJ3MgdGhlIHNpbXBsZXN0IGV4YW1wbGU6OgorCisgICAgaW1wb3J0IHdlYmFwcDIKKworICAgIGNsYXNzIEhlbGxvV2ViYXBwMih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCB3ZWJhcHAyIScpCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICgnLycsIEhlbGxvV2ViYXBwMiksCisgICAgXSwgZGVidWc9VHJ1ZSkKKworICAgIGRlZiBtYWluKCk6CisgICAgICAgIGFwcC5ydW4oKQorCisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgbWFpbigpCisKKworVW5pdCB0ZXN0aW5nCistLS0tLS0tLS0tLS0KK0FzIGRlc2NyaWJlZCBpbiA6cmVmOmBndWlkZS50ZXN0aW5nYCwgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIGNvbnZlbmllbmNlIG1ldGhvZAordG8gdGVzdCBoYW5kbGVyczogOm1ldGg6YHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uLmdldF9yZXNwb25zZWAuIEl0CityZWNlaXZlcyB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIGBgUmVxdWVzdC5ibGFuaygpYGAgdG8gYnVpbGQgYSByZXF1ZXN0IGFuZCBjYWxsCit0aGUgYXBwbGljYXRpb24sIHJldHVybmluZyB0aGUgcmVzdWx0aW5nIHJlc3BvbnNlIGZyb20gYSBoYW5kbGVyOjoKKworICAgIGNsYXNzIEhlbGxvSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCB3b3JsZCEnKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJYXBwbGljYXRpb24oWygnLycsIEhlbGxvSGFuZGxlcildKQorCisgICAgIyBUZXN0IHRoZSBhcHAsIHBhc3NpbmcgcGFyYW1ldGVycyB0byBidWlsZCBhIHJlcXVlc3QuCisgICAgcmVzcG9uc2UgPSBhcHAuZ2V0X3Jlc3BvbnNlKCcvJykKKyAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzX2ludCA9PSAyMDAKKyAgICBhc3NlcnQgcmVzcG9uc2UuYm9keSA9PSAnSGVsbG8sIHdvcmxkIScKKworCitHZXR0aW5nIHRoZSBjdXJyZW50IGFwcAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSBhY3RpdmUgYGBXU0dJQXBwbGljYXRpb25gYCBpbnN0YW5jZSBjYW4gYmUgYWNjZXNzZWQgYXQgYW55IHBsYWNlIG9mIHlvdXIKK2FwcCB1c2luZyB0aGUgZnVuY3Rpb24gOmZ1bmM6YHdlYmFwcDIuZ2V0X2FwcGAuIFRoaXMgaXMgdXNlZnVsLCBmb3IgZXhhbXBsZSwgdG8KK2FjY2VzcyB0aGUgYXBwIHJlZ2lzdHJ5IG9yIGNvbmZpZ3VyYXRpb24gdmFsdWVzOjoKKworICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICBhcHAgPSB3ZWJhcHAyLmdldF9hcHAoKQorICAgIGNvbmZpZ192YWx1ZSA9IGFwcC5jb25maWcuZ2V0KCdteS1jb25maWcta2V5JykKKworCisuLiBfQW5vdGhlciBEby1JdC1Zb3Vyc2VsZiBGcmFtZXdvcms6IGh0dHA6Ly9kb2NzLndlYm9iLm9yZy9lbi9sYXRlc3QvZG8taXQteW91cnNlbGYuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9ndWlkZS9leGNlcHRpb25zLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvZXhjZXB0aW9ucy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0YmJjNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvZXhjZXB0aW9ucy5yc3QKQEAgLTAsMCArMSwxMzkgQEAKKy4uIF9ndWlkZS5leGNlcHRpb25zOgorCitFeGNlcHRpb24gaGFuZGxpbmcKKz09PT09PT09PT09PT09PT09PQorQSBnb29kIGFwcCBpcyBwcmVwYXJlZCBldmVuIHdoZW4gc29tZXRoaW5nIGdvZXMgd3Jvbmc6IGEgc2VydmljZSBpcyBkb3duLAordGhlIGFwcGxpY2F0aW9uIGRpZG4ndCBleHBlY3QgYSBnaXZlbiBpbnB1dCB0eXBlIG9yIG1hbnkgb3RoZXIgZXJyb3JzIHRoYXQKK2NhbiBoYXBwZW4gaW4gYSB3ZWIgYXBwbGljYXRpb24uIFRvIHJlYWN0IHRvIHRoZXNlIGNhc2VzLCB3ZSBuZWVkIGEgZ29vZAorZXhjZXB0aW9uIGhhbmRsaW5nIG1lY2hhbmlzbSBhbmQgcHJlcGFyZSB0aGUgYXBwIHRvIGhhbmRsZSB0aGUgdW5leHBlY3RlZAorc2NlbmFyaW9zLgorCisKK0hUVFAgZXhjZXB0aW9ucworLS0tLS0tLS0tLS0tLS0tCitXZWJPYiBwcm92aWRlcyBhIGNvbGxlY3Rpb24gb2YgZXhjZXB0aW9ucyB0aGF0IGNvcnJlc3BvbmQgdG8gSFRUUCBzdGF0dXMgY29kZXMuCitUaGV5IGFsbCBleHRlbmQgYSBiYXNlIGNsYXNzLCBgYHdlYm9iLmV4Yy5IVFRQRXhjZXB0aW9uYGAsIGFsc28gYXZhaWxhYmxlIGluCit3ZWJhcHAyIGFzIGBgd2ViYXBwMi5IVFRQRXhjZXB0aW9uYGAuCisKK0FuIGBgSFRUUEV4Y2VwdGlvbmBgIGlzIGFsc28gYSBXU0dJIGFwcGxpY2F0aW9uLCBtZWFuaW5nIHRoYXQgYW4gaW5zdGFuY2Ugb2YgaXQKK2NhbiBiZSByZXR1cm5lZCB0byBiZSB1c2VkIGFzIHJlc3BvbnNlLiBJZiBhbiBgYEhUVFBFeGNlcHRpb25gYCBpcyBub3QgaGFuZGxlZCwKK2l0IHdpbGwgYmUgdXNlZCBhcyBhIHN0YW5kYXJkIHJlc3BvbnNlLCBzZXR0aW5nIHRoZSBoZWFkZXIgc3RhdHVzIGNvZGUgYW5kCithIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSBpbiB0aGUgYm9keS4KKworCitFeGNlcHRpb25zIGluIGhhbmRsZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitIYW5kbGVycyBjYW4gY2F0Y2ggZXhjZXB0aW9ucyBpbXBsZW1lbnRpbmcgdGhlIG1ldGhvZAorOm1ldGg6YHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIuaGFuZGxlX2V4Y2VwdGlvbmAuIEl0IGlzIGEgZ29vZCBpZGVhIHRvIGRlZmluZQorYSBiYXNlIGNsYXNzIHRoYXQgY2F0Y2hlcyBnZW5lcmljIGV4Y2VwdGlvbnMsIGFuZCBpZiBuZWVkZWQgb3ZlcnJpZGUKK2BgaGFuZGxlX2V4Y2VwdGlvbigpYGAgaW4gZXh0ZW5kZWQgY2xhc3NlcyB0byBzZXQgbW9yZSBzcGVjaWZpYyByZXNwb25zZXMuCisKK0hlcmUgd2Ugd2lsbCBkZWZpbmUgYSBleGNlcHRpb24gaGFuZGxpbmcgZnVuY3Rpb24gaW4gYSBiYXNlIGNsYXNzLCBhbmQgdGhlIHJlYWwKK2FwcCBjbGFzc2VzIGV4dGVuZCBpdDo6CisKKyAgICBpbXBvcnQgbG9nZ2luZworCisgICAgaW1wb3J0IHdlYmFwcDIKKworICAgIGNsYXNzIEJhc2VIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgaGFuZGxlX2V4Y2VwdGlvbihzZWxmLCBleGNlcHRpb24sIGRlYnVnKToKKyAgICAgICAgICAgICMgTG9nIHRoZSBlcnJvci4KKyAgICAgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKGV4Y2VwdGlvbikKKworICAgICAgICAgICAgIyBTZXQgYSBjdXN0b20gbWVzc2FnZS4KKyAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlKCdBbiBlcnJvciBvY2N1cnJlZC4nKQorCisgICAgICAgICAgICAjIElmIHRoZSBleGNlcHRpb24gaXMgYSBIVFRQRXhjZXB0aW9uLCB1c2UgaXRzIGVycm9yIGNvZGUuCisgICAgICAgICAgICAjIE90aGVyd2lzZSB1c2UgYSBnZW5lcmljIDUwMCBlcnJvciBjb2RlLgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleGNlcHRpb24sIHdlYmFwcDIuSFRUUEV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0X3N0YXR1cyhleGNlcHRpb24uY29kZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0X3N0YXR1cyg1MDApCisKKyAgICBjbGFzcyBIb21lSGFuZGxlcihCYXNlSGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKCdUaGlzIGlzIHRoZSBIb21lSGFuZGxlci4nKQorCisgICAgY2xhc3MgUHJvZHVjdExpc3RIYW5kbGVyKEJhc2VIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ1RoaXMgaXMgdGhlIFByb2R1Y3RMaXN0SGFuZGxlci4nKQorCitJZiBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5zIGR1cmluZyB0aGUgYGBIb21lSGFuZGxlcmBgIG9yCitgYFByb2R1Y3RMaXN0SGFuZGxlcmBgIGxpZmV0aW1lLCBgYGhhbmRsZV9leGNlcHRpb24oKWBgIHdpbGwgY2F0Y2ggaXQgYmVjYXVzZQordGhleSBleHRlbmQgYSBjbGFzcyB0aGF0IGltcGxlbWVudHMgZXhjZXB0aW9uIGhhbmRsaW5nLgorCitZb3UgY2FuIHVzZSBleGNlcHRpb24gaGFuZGxpbmcgdG8gbG9nIGVycm9ycyBhbmQgZGlzcGxheSBjdXN0b20gbWVzc2FnZXMKK2luc3RlYWQgb2YgYSBnZW5lcmljIGVycm9yLiBZb3UgY291bGQgYWxzbyByZW5kZXIgYSB0ZW1wbGF0ZSB3aXRoIGEgZnJpZW5kbHkKK21lc3NhZ2UsIG9yIHJldHVybiBhIEpTT04gd2l0aCBhbiBlcnJvciBjb2RlLCBkZXBlbmRpbmcgb24geW91ciBhcHAuCisKKworRXhjZXB0aW9ucyBpbiB0aGUgV1NHSSBhcHAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitVbmNhdWdodCBleGNlcHRpb25zIGNhbiBhbHNvIGJlIGhhbmRsZWQgYnkgdGhlIFdTR0kgYXBwbGljYXRpb24uIFRoZSBXU0dJIGFwcAoraXMgYSBnb29kIHBsYWNlIHRvIGhhbmRsZSAnNDA0IE5vdCBGb3VuZCcgb3IgJzUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InCitlcnJvcnMsIHNpbmNlIGl0IHNlcnZlcyBhcyBhIGxhc3QgYXR0ZW1wdCB0byBoYW5kbGUgYWxsIHVuY2F1Z2h0IGV4Y2VwdGlvbnMsCitpbmNsdWRpbmcgbm9uLXJlZ2lzdGVyZWQgVVJJIHBhdGhzIG9yIHVuZXhwZWN0ZWQgYXBwbGljYXRpb24gYmVoYXZpb3IuCisKK1dlIGNhdGNoIGV4Y2VwdGlvbnMgaW4gdGhlIFdTR0kgYXBwIHVzaW5nIGVycm9yIGhhbmRsZXJzIHJlZ2lzdGVyZWQgaW4KKzphdHRyOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbi5lcnJvcl9oYW5kbGVyc2AuIFRoaXMgaXMgYSBkaWN0aW9uYXJ5IHRoYXQKK21hcHMgSFRUUCBzdGF0dXMgY29kZXMgdG8gY2FsbGFibGVzIHRoYXQgd2lsbCBoYW5kbGUgdGhlIGNvcnJlc3BvbmRpbmcgZXJyb3IKK2NvZGUuIElmIHRoZSBleGNlcHRpb24gaXMgbm90IGFuIGBgSFRUUEV4Y2VwdGlvbmBgLCB0aGUgc3RhdHVzIGNvZGUgNTAwIGlzCit1c2VkLgorCitIZXJlIHdlIHNldCBlcnJvciBoYW5kbGVycyB0byBoYW5kbGUgIjQwNCBOb3QgRm91bmQiIGFuZCAiNTAwIEludGVybmFsIFNlcnZlcgorRXJyb3IiOjoKKworICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgZGVmIGhhbmRsZV80MDQocmVxdWVzdCwgcmVzcG9uc2UsIGV4Y2VwdGlvbik6CisgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKGV4Y2VwdGlvbikKKyAgICAgICAgcmVzcG9uc2Uud3JpdGUoJ09vcHMhIEkgY291bGQgc3dlYXIgdGhpcyBwYWdlIHdhcyBoZXJlIScpCisgICAgICAgIHJlc3BvbnNlLnNldF9zdGF0dXMoNDA0KQorCisgICAgZGVmIGhhbmRsZV81MDAocmVxdWVzdCwgcmVzcG9uc2UsIGV4Y2VwdGlvbik6CisgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKGV4Y2VwdGlvbikKKyAgICAgICAgcmVzcG9uc2Uud3JpdGUoJ0Egc2VydmVyIGVycm9yIG9jY3VycmVkIScpCisgICAgICAgIHJlc3BvbnNlLnNldF9zdGF0dXMoNTAwKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvJywgaGFuZGxlcj0naGFuZGxlcnMuSG9tZUhhbmRsZXInLCBuYW1lPSdob21lJykKKyAgICBdKQorICAgIGFwcC5lcnJvcl9oYW5kbGVyc1s0MDRdID0gaGFuZGxlXzQwNAorICAgIGFwcC5lcnJvcl9oYW5kbGVyc1s1MDBdID0gaGFuZGxlXzUwMAorCitUaGUgZXJyb3IgaGFuZGxlciBjYW4gYmUgYSBzaW1wbGUgZnVuY3Rpb24gdGhhdCBhY2NlcHRzCitgYChyZXF1ZXN0LCByZXNwb25zZSwgZXhjZXB0aW9uKWBgIGFzIHBhcmFtZXRlcnMsIGFuZCBpcyByZXNwb25zaWJsZSBmb3IKK3NldHRpbmcgdGhlIHJlc3BvbnNlIHN0YXR1cyBjb2RlIGFuZCwgaWYgbmVlZGVkLCBsb2dnaW5nIHRoZSBleGNlcHRpb24uCisKKworYWJvcnQoKQorLS0tLS0tLQorVGhlIGZ1bmN0aW9uIDpmdW5jOmB3ZWJhcHAyLmFib3J0YCBpcyBhIHNob3J0Y3V0IHRvIHJhaXNlIG9uZSBvZiB0aGUgSFRUUAorZXhjZXB0aW9ucyBwcm92aWRlZCBieSBXZWJPYjogaXQgdGFrZXMgYW4gSFRUUCBzdGF0dXMgY29kZSAoNDAzLCA0MDQsIDUwMCBldGMpCithbmQgcmFpc2VzIHRoZSBjb3JyZXNwb25kaW5nIGV4Y2VwdGlvbi4KKworVXNlIGBgYWJvcnRgYCAob3IgOmZ1bmM6YHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIuYWJvcnRgIGluc2lkZSBoYW5kbGVycykKK3RvIHJhaXNlIGFuIGBgSFRUUEV4Y2VwdGlvbmBgIHRvIGJlIGhhbmRsZWQgYnkgYW4gZXhjZXB0aW9uIGhhbmRsZXIuCitGb3IgZXhhbXBsZSwgd2UgY291bGQgY2FsbCBgYGFib3J0KDQwNClgYCB3aGVuIGEgcmVxdWVzdGVkIGl0ZW0gaXMgbm90IGZvdW5kCitpbiB0aGUgZGF0YWJhc2UsIGFuZCBoYXZlIGFuIGV4Y2VwdGlvbiBoYW5kbGVyIHJlYWR5IHRvIGhhbmRsZSA0MDRzLgorCitCZXNpZGVzIHRoZSBzdGF0dXMgY29kZSwgc29tZSBleHRyYSBrZXl3b3JkIGFyZ3VtZW50cyBjYW4gYmUgcGFzc2VkIHRvCitgYGFib3J0KClgYDoKKworZGV0YWlsCisgIEFuIGV4cGxhbmF0aW9uIGFib3V0IHRoZSBlcnJvci4KK2NvbW1lbnQKKyAgQW4gbW9yZSBkZXRhaWxlZCBjb21tZW50IHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZSBib2R5LgoraGVhZGVycworICBFeHRyYSByZXNwb25zZSBoZWFkZXJzIHRvIGJlIHNldC4KK2JvZHlfdGVtcGxhdGUKKyAgQSBzdHJpbmcgdG8gYmUgdXNlZCBhcyB0ZW1wbGF0ZSBmb3IgdGhlIHJlc3BvbnNlIGJvZHkuIFRoZSBkZWZhdWx0IHRlbXBsYXRlCisgIGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdCwgd2l0aCB2YXJpYWJsZXMgcmVwbGFjZWQgYnkgYXJndW1lbnRzLCBpZiBkZWZpbmVkOgorCisuLiBjb2RlLWJsb2NrOjogaHRtbAorCisgICAke2V4cGxhbmF0aW9ufTxiciAvPjxiciAvPgorICAgJHtkZXRhaWx9CisgICAke2h0bWxfY29tbWVudH0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvZXh0cmFzLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvZXh0cmFzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTliOThhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9ndWlkZS9leHRyYXMucnN0CkBAIC0wLDAgKzEsNjQgQEAKK3dlYmFwcDJfZXh0cmFzCis9PT09PT09PT09PT09PQord2ViYXBwMl9leHRyYXMgaXMgYSBwYWNrYWdlIHdpdGggY29tbW9uIHV0aWxpdGllcyB0aGF0IHdvcmsgd2VsbCB3aXRoCit3ZWJhcHAyLiBJdCBpbmNsdWRlczoKKworLSBMb2NhbGl6YXRpb24gYW5kIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQKKy0gU2Vzc2lvbnMgdXNpbmcgc2VjdXJlIGNvb2tpZXMsIG1lbWNhY2hlIG9yIGRhdGFzdG9yZQorLSBFeHRyYSByb3V0ZSBjbGFzc2VzIC0tIHRvIG1hdGNoIHN1YmRvbWFpbnMgYW5kIG90aGVyIGNvbnZlbmllbmNlcworLSBTdXBwb3J0IGZvciB0aGlyZCBwYXJ0eSBsaWJyYXJpZXM6IEppbmphMiBhbmQgTWFrbworLSBTdXBwb3J0IGZvciB0aHJlYWRlZCBlbnZpcm9ubWVudHMsIHNvIHRoYXQgeW91IGNhbiB1c2Ugd2ViYXBwMiBvdXRzaWRlIG9mCisgIEFwcCBFbmdpbmUgb3IgaW4gdGhlIHVwY29taW5nIEFwcCBFbmdpbmUgUHl0aG9uIDIuNyBydW50aW1lCisKK1NvbWUgb2YgdGhlc2UgbW9kdWxlcyAoOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLmkxOG5gLCA6cmVmOmBhcGkud2ViYXBwMl9leHRyYXMuamluamEyYCwKKzpyZWY6YGFwaS53ZWJhcHAyX2V4dHJhcy5tYWtvYCBhbmQgOnJlZjpgYXBpLndlYmFwcDJfZXh0cmFzLnNlc3Npb25zYCkgdXNlIGNvbmZpZ3VyYXRpb24KK3ZhbHVlcyB0aGF0IGNhbiBiZSBzZXQgaW4gdGhlIFdTR0kgYXBwbGljYXRpb24uIFdoZW4gYSBjb25maWcga2V5IGlzIG5vdCBzZXQsCit0aGUgbW9kdWxlcyB3aWxsIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZXMgdGhleSBkZWZpbmUuCisKK0FsbCBjb25maWd1cmF0aW9uIGtleXMgYXJlIG9wdGlvbmFsLCBleGNlcHQgYGBzZWNyZXRfa2V5YGAgdGhhdCBtdXN0IGJlIHNldAorZm9yIDpyZWY6YGFwaS53ZWJhcHAyX2V4dHJhcy5zZXNzaW9uc2AuIEhlcmUgaXMgYW4gZXhhbXBsZSB0aGF0IHNldHMgdGhlIGBgc2VjcmV0X2tleWBgCitjb25maWd1cmF0aW9uIGFuZCB0ZXN0cyB0aGF0IHRoZSBzZXNzaW9uIGlzIHdvcmtpbmc6OgorCisgICAgaW1wb3J0IHdlYmFwcDIKKyAgICBmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBzZXNzaW9ucworCisgICAgY2xhc3MgQmFzZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBkaXNwYXRjaChzZWxmKToKKyAgICAgICAgICAgICMgR2V0IGEgc2Vzc2lvbiBzdG9yZSBmb3IgdGhpcyByZXF1ZXN0LgorICAgICAgICAgICAgc2VsZi5zZXNzaW9uX3N0b3JlID0gc2Vzc2lvbnMuZ2V0X3N0b3JlKHJlcXVlc3Q9c2VsZi5yZXF1ZXN0KQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBEaXNwYXRjaCB0aGUgcmVxdWVzdC4KKyAgICAgICAgICAgICAgICB3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyLmRpc3BhdGNoKHNlbGYpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICMgU2F2ZSBhbGwgc2Vzc2lvbnMuCisgICAgICAgICAgICAgICAgc2VsZi5zZXNzaW9uX3N0b3JlLnNhdmVfc2Vzc2lvbnMoc2VsZi5yZXNwb25zZSkKKworICAgICAgICBAd2ViYXBwMi5jYWNoZWRfcHJvcGVydHkKKyAgICAgICAgZGVmIHNlc3Npb24oc2VsZik6CisgICAgICAgICAgICAjIFJldHVybnMgYSBzZXNzaW9uIHVzaW5nIHRoZSBkZWZhdWx0IGNvb2tpZSBrZXkuCisgICAgICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uX3N0b3JlLmdldF9zZXNzaW9uKCkKKworICAgIGNsYXNzIEhvbWVIYW5kbGVyKEJhc2VIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHRlc3RfdmFsdWUgPSBzZWxmLnNlc3Npb24uZ2V0KCd0ZXN0LXZhbHVlJykKKyAgICAgICAgICAgIGlmIHRlc3RfdmFsdWU6CisgICAgICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgnU2Vzc2lvbiBoYXMgdGhpcyB2YWx1ZTogJXIuJyAlIHRlc3RfdmFsdWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuc2Vzc2lvblsndGVzdC12YWx1ZSddID0gJ0hlbGxvLCBzZXNzaW9uIHdvcmxkIScKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKCdTZXNzaW9uIGlzIGVtcHR5LicpCisKKyAgICBjb25maWcgPSB7fQorICAgIGNvbmZpZ1snd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnMnXSA9IHsKKyAgICAgICAgJ3NlY3JldF9rZXknOiAnc29tZS1zZWNyZXQta2V5JywKKyAgICB9CisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBwbGljYXRpb24oWworICAgICAgICAoJy8nLCBIb21lSGFuZGxlciksCisgICAgXSwgZGVidWc9VHJ1ZSwgY29uZmlnPWNvbmZpZykKKworICAgIGRlZiBtYWluKCk6CisgICAgICAgIGFwcC5ydW4oKQorCisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgbWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL2hhbmRsZXJzLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvaGFuZGxlcnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiODg5NjQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL2hhbmRsZXJzLnJzdApAQCAtMCwwICsxLDI4MyBAQAorLi4gX2d1aWRlLmhhbmRsZXJzOgorCitSZXF1ZXN0IGhhbmRsZXJzCis9PT09PT09PT09PT09PT09CitJbiB0aGUgd2ViYXBwMiB2b2NhYnVsYXJ5LCBgcmVxdWVzdCBoYW5kbGVyYCBvciBzaW1wbHkgYGhhbmRsZXJgIGlzIGEgY29tbW9uCit0ZXJtIHRoYXQgcmVmZXJzIHRvIHRoZSBjYWxsYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBhcHBsaWNhdGlvbiBsb2dpYyB0byBoYW5kbGUKK2EgcmVxdWVzdC4gVGhpcyBzb3VuZHMgYSBsb3QgYWJzdHJhY3QsIGJ1dCB3ZSB3aWxsIGV4cGxhaW4gZXZlcnl0aGluZyBpbgorZGV0YWlscyBpbiB0aGlzIHNlY3Rpb24uCisKKworSGFuZGxlcnMgMTAxCistLS0tLS0tLS0tLS0KK0EgaGFuZGxlciBpcyBlcXVpdmFsZW50IHRvIHRoZSBgQ29udHJvbGxlcmAgaW4gdGhlCitgTVZDIDxodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01vZGVsJUUyJTgwJTkzdmlldyVFMiU4MCU5M2NvbnRyb2xsZXI+YF8KK3Rlcm1pbm9sb2d5OiBpbiBhIHNpbXBsaWZpZWQgbWFubmVyLCBpdCBpcyB3aGVyZSB5b3UgcHJvY2VzcyB0aGUgcmVxdWVzdCwKK21hbmlwdWxhdGUgZGF0YSBhbmQgZGVmaW5lIGEgcmVzcG9uc2UgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIGNsaWVudDogSFRNTCwKK0pTT04sIFhNTCwgZmlsZXMgb3Igd2hhdGV2ZXIgdGhlIGFwcCByZXF1aXJlcy4KKworTm9ybWFsbHkgYSBoYW5kbGVyIGlzIGEgY2xhc3MgdGhhdCBleHRlbmRzIDpjbGFzczpgd2ViYXBwMi5SZXF1ZXN0SGFuZGxlcmAKK29yLCBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3NlcywgYGB3ZWJhcHAuUmVxdWVzdEhhbmRsZXJgYC4gSGVyZSBpcyBhIHNpbXBsZQorb25lOjoKKworICAgIGNsYXNzIFByb2R1Y3RIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYsIHByb2R1Y3RfaWQpOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgnWW91IHJlcXVlc3RlZCBwcm9kdWN0ICVyLicgJSBwcm9kdWN0X2lkKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAocicvcHJvZHVjdHMvKFxkKyknLCBQcm9kdWN0SGFuZGxlciksCisgICAgXSkKKworVGhpcyBjb2RlIGRlZmluZXMgb25lIHJlcXVlc3QgaGFuZGxlciwgYGBQcm9kdWN0SGFuZGxlcmBgLCBhbmQgYSBXU0dJCithcHBsaWNhdGlvbiB0aGF0IG1hcHMgdGhlIFVSSSBgYHInL3Byb2R1Y3RzLyhcZCspJ2BgIHRvIHRoYXQgaGFuZGxlci4KK1doZW4gdGhlIGFwcGxpY2F0aW9uIHJlY2VpdmVzIGFuIEhUVFAgcmVxdWVzdCB0byBhIHBhdGggdGhhdCBtYXRjaGVzIHRoaXMKK3JlZ3VsYXIgZXhwcmVzc2lvbiwgaXQgaW5zdGFudGlhdGVzIHRoZSBoYW5kbGVyIGFuZCBjYWxscyB0aGUgY29ycmVzcG9uZGluZworSFRUUCBtZXRob2QgZnJvbSBpdC4gVGhlIGhhbmRsZXIgYWJvdmUgY2FuIG9ubHkgaGFuZGxlIGBgR0VUYGAgSFRUUCByZXF1ZXN0cywKK2FzIGl0IG9ubHkgZGVmaW5lcyBhIGBgZ2V0KClgYCBtZXRob2QuIFRvIGhhbmRsZSBgYFBPU1RgYCByZXF1ZXN0cywKK2l0IHdvdWxkIG5lZWQgdG8gaW1wbGVtZW50IGEgYGBwb3N0KClgYCBtZXRob2QsIGFuZCBzbyBvbi4KKworVGhlIGhhbmRsZXIgbWV0aG9kIHJlY2VpdmVzIGEgYGBwcm9kdWN0X2lkYGAgZXh0cmFjdGVkIGZyb20gdGhlIFVSSSwgYW5kCitzZXRzIGEgc2ltcGxlIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgaWQgYXMgcmVzcG9uc2UuIE5vdCB2ZXJ5IHVzZWZ1bCwgYnV0IHRoaXMKK2lzIGp1c3QgdG8gc2hvdyBob3cgaXQgd29ya3MuIEluIGEgbW9yZSBjb21wbGV0ZSBleGFtcGxlLCB0aGUgaGFuZGxlciB3b3VsZAorZmV0Y2ggYSBjb3JyZXNwb25kaW5nIHJlY29yZCBmcm9tIGEgZGF0YWJhc2UgYW5kIHNldCBhbiBhcHByb3ByaWF0ZSByZXNwb25zZQorLS0gSFRNTCwgSlNPTiBvciBYTUwgd2l0aCBkZXRhaWxzIGFib3V0IHRoZSByZXF1ZXN0ZWQgcHJvZHVjdCwgZm9yIGV4YW1wbGUuCisKK0ZvciBtb3JlIGRldGFpbHMgYWJvdXQgaG93IFVSSSB2YXJpYWJsZXMgYXJlIGRlZmluZWQsIHNlZSA6cmVmOmBndWlkZS5yb3V0aW5nYC4KKworCitIVFRQIG1ldGhvZHMgdHJhbnNsYXRlZCB0byBjbGFzcyBtZXRob2RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgOmNsYXNzOmB3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyYCBpcyB0byBjYWxsIGEKK21ldGhvZCB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIEhUVFAgYWN0aW9uIG9mIHRoZSByZXF1ZXN0LCBzdWNoIGFzIHRoZQorYGBnZXQoKWBgIG1ldGhvZCBmb3IgYSBIVFRQIEdFVCByZXF1ZXN0LiBUaGUgbWV0aG9kIHByb2Nlc3NlcyB0aGUgcmVxdWVzdCBhbmQKK3ByZXBhcmVzIGEgcmVzcG9uc2UsIHRoZW4gcmV0dXJucy4gRmluYWxseSwgdGhlIGFwcGxpY2F0aW9uIHNlbmRzIHRoZSByZXNwb25zZQordG8gdGhlIGNsaWVudC4KKworVGhlIGZvbGxvd2luZyBleGFtcGxlIGRlZmluZXMgYSByZXF1ZXN0IGhhbmRsZXIgdGhhdCByZXNwb25kcyB0byBIVFRQIEdFVAorcmVxdWVzdHM6OgorCisgICAgY2xhc3MgQWRkVHdvTnVtYmVycyh3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBmaXJzdCA9IGludChzZWxmLnJlcXVlc3QuZ2V0KCdmaXJzdCcpKQorICAgICAgICAgICAgICAgIHNlY29uZCA9IGludChzZWxmLnJlcXVlc3QuZ2V0KCdzZWNvbmQnKSkKKworICAgICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoIjxodG1sPjxib2R5PjxwPiVkICsgJWQgPSAlZDwvcD48L2JvZHk+PC9odG1sPiIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaXJzdCwgc2Vjb25kLCBmaXJzdCArIHNlY29uZCkpCisgICAgICAgICAgICBleGNlcHQgKFR5cGVFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgiPGh0bWw+PGJvZHk+PHA+SW52YWxpZCBpbnB1dHM8L3A+PC9ib2R5PjwvaHRtbD4iKQorCitBIHJlcXVlc3QgaGFuZGxlciBjYW4gZGVmaW5lIGFueSBvZiB0aGUgZm9sbG93aW5nIG1ldGhvZHMgdG8gaGFuZGxlIHRoZQorY29ycmVzcG9uZGluZyBIVFRQIGFjdGlvbnM6CisKKy0gYGBnZXQoKWBgCistIGBgcG9zdCgpYGAKKy0gYGBoZWFkKClgYAorLSBgYG9wdGlvbnMoKWBgCistIGBgcHV0KClgYAorLSBgYGRlbGV0ZSgpYGAKKy0gYGB0cmFjZSgpYGAKKworCitWaWV3IGZ1bmN0aW9ucworLS0tLS0tLS0tLS0tLS0KK0luIHNvbWUgUHl0aG9uIGZyYW1ld29ya3MsIGhhbmRsZXJzIGFyZSBjYWxsZWQgYHZpZXcgZnVuY3Rpb25zYCBvciBzaW1wbHkKK2B2aWV3c2AuIEluIERqYW5nbywgZm9yIGV4YW1wbGUsIGB2aWV3c2AgYXJlIG5vcm1hbGx5IHNpbXBsZSBmdW5jdGlvbnMgdGhhdAoraGFuZGxlIGEgcmVxdWVzdC4gT3VyIGV4YW1wbGVzIHVzZSBtb3N0bHkgY2xhc3NlcywgYnV0IHdlYmFwcDIgaGFuZGxlcnMgY2FuCithbHNvIGJlIG5vcm1hbCBmdW5jdGlvbnMgZXF1aXZhbGVudCB0byBEamFuZ28ncyBgdmlld3NgLgorCitBIHdlYmFwcDIgaGFuZGxlciBjYW4sIHJlYWxseSwgYmUgKiphbnkqKiBjYWxsYWJsZS4gVGhlIHJvdXRpbmcgc3lzdGVtIGhhcworaG9va3MgdG8gYWRhcHQgaG93IGhhbmRsZXJzIGFyZSBjYWxsZWQsIGFuZCB0d28gZGVmYXVsdCBhZGFwdGVycyBhcmUgdXNlZAord2hldGhlciBpdCBpcyBhIGZ1bmN0aW9uIG9yIGEgY2xhc3MuIFNvLCBkaWZmZXJlbnRseSBmcm9tIHdlYmFwcCwgb3JkaW5hcnkKK2Z1bmN0aW9ucyBjYW4gZWFzaWx5IGJlIHVzZWQgdG8gaGFuZGxlIHJlcXVlc3RzIGluIHdlYmFwcDIsIGFuZCBub3Qgb25seQorY2xhc3Nlcy4gVGhlIGZvbGxvd2luZyBleGFtcGxlIGRlbW9uc3RyYXRlcyBpdDo6CisKKyAgICBkZWYgZGlzcGxheV9wcm9kdWN0KHJlcXVlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiB3ZWJhcHAyLlJlc3BvbnNlKCdZb3UgcmVxdWVzdGVkIHByb2R1Y3QgJXIuJyAlIGFyZ3NbMF0pCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgIChyJy9wcm9kdWN0cy8oXGQrKScsIGRpc3BsYXlfcHJvZHVjdCksCisgICAgXSkKKworSGVyZSwgb3VyIGhhbmRsZXIgaXMgYSBzaW1wbGUgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyB0aGUgcmVxdWVzdCBpbnN0YW5jZSwKK3Bvc2l0aW9uYWwgcm91dGUgdmFyaWFibGVzIGFzIGBgKmFyZ3NgYCBhbmQgbmFtZWQgdmFyaWFibGVzIGFzIGBgKiprd2FyZ3NgYCwKK2lmIHRoZXkgYXJlIGRlZmluZWQuCisKK0FwcHMgY2FuIGhhdmUgbWl4ZWQgaGFuZGxlciBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuIEFsc28gaXQgaXMgcG9zc2libGUgdG8KK2ltcGxlbWVudCBuZXcgaW50ZXJmYWNlcyB0byBkZWZpbmUgaG93IGhhbmRsZXJzIGFyZSBjYWxsZWQ6IHRoaXMgaXMgZG9uZQorc2V0dGluZyBuZXcgaGFuZGxlciBhZGFwdGVycyBpbiB0aGUgcm91dGluZyBzeXN0ZW0uCisKK0Z1bmN0aW9ucyBhcmUgYW4gYWx0ZXJuYXRpdmUgZm9yIHRob3NlIHRoYXQgcHJlZmVyIHRoZWlyIHNpbXBsaWNpdHkgb3IgdGhpbmsKK3RoYXQgaGFuZGxlcnMgZG9uJ3QgYmVuZWZpdCB0aGF0IG11Y2ggZnJvbSB0aGUgcG93ZXIgYW5kIGZsZXhpYmlsaXR5IHByb3ZpZGVkCitieSBjbGFzc2VzOiBpbmhlcml0YW5jZSwgYXR0cmlidXRlcywgZ3JvdXBlZCBtZXRob2RzLCBkZXNjcmlwdG9ycywgbWV0YWNsYXNzZXMsCitldGMuIEFuIGFwcCBjYW4gaGF2ZSBtaXhlZCBoYW5kbGVyIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy4KKworLi4gbm90ZTo6CisgICBXZSBhdm9pZCB1c2luZyB0aGUgdGVybSBgdmlld2AgYmVjYXVzZSBpdCBpcyBvZnRlbiBjb25mdXNlZCB3aXRoIHRoZSBgVmlld2AKKyAgIGRlZmluaXRpb24gZnJvbSB0aGUgY2xhc3NpYyBgTVZDYCBwYXR0ZXJuLiBEamFuZ28gcHJlZmVycyB0byBjYWxsIGl0cyBgTVZDYAorICAgaW1wbGVtZW50YXRpb24gYE1UVmAgKG1vZGVsLXRlbXBsYXRlLXZpZXcpLCBzbyBgdmlld2AgbWF5IG1ha2Ugc2Vuc2UgaW4KKyAgIHRoZWlyIHRlcm1pbm9sb2d5LiBTdGlsbCwgd2UgdGhpbmsgdGhhdCB0aGUgdGVybSBjYW4gY2F1c2UgdW5uZWNlc3NhcnkKKyAgIGNvbmZ1c2lvbiBhbmQgcHJlZmVyIHRvIHVzZSBgaGFuZGxlcmAgaW5zdGVhZCwgbGlrZSBpbiBvdGhlciBQeXRob24KKyAgIGZyYW1ld29ya3MgKHdlYmFwcCwgd2ViLnB5IG9yIFRvcm5hZG8sIGZvciBpbnN0YW5jZSkuIEluIGVzc2VuY2UsIHRob3VnaCwKKyAgIHRoZXkgYXJlIHN5bm9ueW1zLgorCisKKy4uIF9ndWlkZS5oYW5kbGVycy5yZXR1cm5lZF92YWx1ZXM6CisKK1JldHVybmVkIHZhbHVlcworLS0tLS0tLS0tLS0tLS0tCitBIGhhbmRsZXIgbWV0aG9kIGRvZXNuJ3QgbmVlZCB0byByZXR1cm4gYW55dGhpbmc6IGl0IGNhbiBzaW1wbHkgd3JpdGUgdG8gdGhlCityZXNwb25zZSBvYmplY3QgdXNpbmcgYGBzZWxmLnJlc3BvbnNlLndyaXRlKClgYC4KKworQnV0IGEgaGFuZGxlciAqKmNhbioqIHJldHVybiB2YWx1ZXMgdG8gYmUgdXNlZCBpbiB0aGUgcmVzcG9uc2UuIFVzaW5nIHRoZQorZGVmYXVsdCBkaXNwYXRjaGVyIGltcGxlbWVudGF0aW9uLCBpZiBhIGhhbmRsZXIgcmV0dXJucyBhbnl0aGluZyB0aGF0IGlzIG5vdAorYGBOb25lYGAgaXQgKiptdXN0KiogYmUgYSA6Y2xhc3M6YHdlYmFwcDIuUmVzcG9uc2VgIGluc3RhbmNlLiBJZiBpdCBkb2VzIHNvLAordGhhdCByZXNwb25zZSBvYmplY3QgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IG9uZS4KKworRm9yIGV4YW1wbGUsIGxldCdzIHJldHVybiBhIHJlc3BvbnNlIG9iamVjdCB3aXRoIGEgYEhlbGxvLCB3b3JsZGAgbWVzc2FnZTo6CisKKyAgICBjbGFzcyBIZWxsb0hhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gd2ViYXBwMi5SZXNwb25zZSgnSGVsbG8sIHdvcmxkIScpCisKK1RoaXMgaXMgdGhlIHNhbWUgYXM6OgorCisgICAgY2xhc3MgSGVsbG9IYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgnSGVsbG8sIHdvcmxkIScpCisKK1doYXQgaWYgeW91IHRoaW5rIHRoYXQgcmV0dXJuaW5nIGEgcmVzcG9uc2Ugb2JqZWN0IGlzIHZlcmJvc2UsIGFuZCB3YW50IHRvCityZXR1cm4gc2ltcGxlIHN0cmluZ3M/IEZvcnR1bmF0ZWx5IHdlYmFwcDIgaGFzIGFsbCB0aGUgbmVjZXNzYXJ5IGhvb2tzIHRvIG1ha2UKK3RoaXMgcG9zc2libGUuIFRvIGFjaGlldmUgaXQsIHdlIG5lZWQgdG8gZXh0ZW5kIHRoZSByb3V0ZXIgZGlzcGF0Y2hlciB0byBidWlsZAorYSBgYFJlc3BvbnNlYGAgb2JqZWN0IHVzaW5nIHRoZSByZXR1cm5lZCBzdHJpbmcuIFdlIGNhbiBnbyBldmVuIGZ1cnRoZXIgYW5kCithbHNvIGFjY2VwdCB0dXBsZXM6IGlmIGEgdHVwbGUgaXMgcmV0dXJuZWQsIHdlIHVzZSBpdHMgdmFsdWVzIGFzIHBvc2l0aW9uYWwKK2FyZ3VtZW50cyB0byBpbnN0YW50aWF0ZSB0aGUgYGBSZXNwb25zZWBgIG9iamVjdC4gU28gbGV0J3MgZGVmaW5lIG91ciBjdXN0b20KK2Rpc3BhdGNoZXIgYW5kIGEgaGFuZGxlciB0aGF0IHJldHVybnMgYSBzdHJpbmc6OgorCisgICAgZGVmIGN1c3RvbV9kaXNwYXRjaGVyKHJvdXRlciwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICBydiA9IHJvdXRlci5kZWZhdWx0X2Rpc3BhdGNoZXIocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgIGlmIGlzaW5zdGFuY2UocnYsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgcnYgPSB3ZWJhcHAyLlJlc3BvbnNlKHJ2KQorICAgICAgICBlbGlmIGlzaW5zdGFuY2UocnYsIHR1cGxlKToKKyAgICAgICAgICAgIHJ2ID0gd2ViYXBwMi5SZXNwb25zZSgqcnYpCisKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBjbGFzcyBIZWxsb0hhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiAnSGVsbG8sIHdvcmxkIScKKworICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgKHInLycsIEhlbGxvSGFuZGxlciksCisgICAgXSkKKyAgICBhcHAucm91dGVyLnNldF9kaXNwYXRjaGVyKGN1c3RvbV9kaXNwYXRjaGVyKQorCitBbmQgdGhhdCdzIGFsbC4gTm93IHdlIGhhdmUgYSBjdXN0b20gZGlzcGF0Y2hlciBzZXQgdXNpbmcgdGhlIHJvdXRlciBtZXRob2QKKzptZXRoOmB3ZWJhcHAyLlJvdXRlci5zZXRfZGlzcGF0Y2hlcmAuIE91ciBgYEhlbGxvSGFuZGxlcmBgIHJldHVybnMgYSBzdHJpbmcKKyhvciBpdCBjb3VsZCBiZSB0dXBsZSkgdGhhdCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGBgUmVzcG9uc2VgYCBvYmplY3QuCisKK091ciBjdXN0b20gZGlzcGF0Y2hlciBjb3VsZCBpbXBsZW1lbnQgaXRzIG93biBVUkkgbWF0Y2hpbmcgYW5kIGhhbmRsZXIKK2Rpc3BhdGNoaW5nIG1lY2hhbmlzbXMgZnJvbSBzY3JhdGNoLCBidXQgaW4gdGhpcyBjYXNlIGl0IGp1c3QgZXh0ZW5kcyB0aGUKK2RlZmF1bHQgZGlzcGF0Y2hlciBhIGxpdHRsZSBiaXQsIHdyYXBwaW5nIHRoZSByZXR1cm5lZCB2YWx1ZSB1bmRlciBjZXJ0YWluCitjb25kaXRpb25zLgorCisuLiBfZ3VpZGUuaGFuZGxlcnMuYS5taWNyby5mcmFtZXdvcmsuYmFzZWQub24ud2ViYXBwMjoKKworQSBtaWNyby1mcmFtZXdvcmsgYmFzZWQgb24gd2ViYXBwMgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRm9sbG93aW5nIHRoZSBwcmV2aW91cyBpZGVhIG9mIGEgY3VzdG9tIGRpc3BhdGNoZXIsIHdlIGNvdWxkIGdvIGEgbGl0dGxlCitmdXJ0aGVyIGFuZCBleHRlbmQgd2ViYXBwMiB0byBhY2NlcHQgcm91dGVzIHJlZ2lzdGVyZWQgdXNpbmcgYSBkZWNvcmF0b3IsCitsaWtlIGluIHRob3NlIFB5dGhvbiBtaWNyby1mcmFtZXdvcmtzLgorCitXaXRob3V0IG11Y2ggYWRvLCBsYWRpZXMgYW5kIGdlbnRsZW1lbiwgd2UgcHJlc2VudCBtaWNyby13ZWJhcHAyOjoKKworICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICBjbGFzcyBXU0dJQXBwbGljYXRpb24od2ViYXBwMi5XU0dJQXBwbGljYXRpb24pOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHN1cGVyKFdTR0lBcHBsaWNhdGlvbiwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgc2VsZi5yb3V0ZXIuc2V0X2Rpc3BhdGNoZXIoc2VsZi5fX2NsYXNzX18uY3VzdG9tX2Rpc3BhdGNoZXIpCisKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBkZWYgY3VzdG9tX2Rpc3BhdGNoZXIocm91dGVyLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgICAgICBydiA9IHJvdXRlci5kZWZhdWx0X2Rpc3BhdGNoZXIocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJ2LCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgICAgICBydiA9IHdlYmFwcDIuUmVzcG9uc2UocnYpCisgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocnYsIHR1cGxlKToKKyAgICAgICAgICAgICAgICBydiA9IHdlYmFwcDIuUmVzcG9uc2UoKnJ2KQorCisgICAgICAgICAgICByZXR1cm4gcnYKKworICAgICAgICBkZWYgcm91dGUoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGRlZiB3cmFwcGVyKGZ1bmMpOgorICAgICAgICAgICAgICAgIHNlbGYucm91dGVyLmFkZCh3ZWJhcHAyLlJvdXRlKGhhbmRsZXI9ZnVuYywgKmFyZ3MsICoqa3dhcmdzKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuYworCisgICAgICAgICAgICByZXR1cm4gd3JhcHBlcgorCitTYXZlIHRoZSBhYm92ZSBjb2RlIGFzIGBgbWljcm9fd2ViYXBwMi5weWBgLiBUaGVuIHlvdSBjYW4gaW1wb3J0IGl0IGluCitgYG1haW4ucHlgYCBhbmQgZGVmaW5lIHlvdXIgaGFuZGxlcnMgYW5kIHJvdXRlcyBsaWtlIHRoaXM6OgorCisgICAgaW1wb3J0IG1pY3JvX3dlYmFwcDIKKworICAgIGFwcCA9IG1pY3JvX3dlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKworICAgIEBhcHAucm91dGUoJy8nKQorICAgIGRlZiBoZWxsb19oYW5kbGVyKHJlcXVlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiAnSGVsbG8sIHdvcmxkIScKKworICAgIGRlZiBtYWluKCk6CisgICAgICAgIGFwcC5ydW4oKQorCisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgbWFpbigpCisKK1RoaXMgZXhhbXBsZSBqdXN0IGRlbW9uc3RyYXRlcyBzb21lIG9mIHRoZSBwb3dlciBhbmQgZmxleGliaWxpdHkgdGhhdCBsaWVzCitiZWhpbmQgd2ViYXBwMjsgZXhwbG9yZSB0aGUgOnJlZjpgd2ViYXBwMiBBUEkgPGFwaS53ZWJhcHAyPmAgdG8gZGlzY292ZXIgb3RoZXIKK3dheXMgdG8gbW9kaWZ5IG9yIGV4dGVuZCB0aGUgYXBwbGljYXRpb24gYmVoYXZpb3IuCisKKworT3ZlcnJpZGluZyBfX2luaXRfXygpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0lmIHlvdSB3YW50IHRvIG92ZXJyaWRlIHRoZSA6bWV0aDpgd2ViYXBwMi5SZXF1ZXN0SGFuZGxlci5fX2luaXRfX2AgbWV0aG9kLAoreW91IG11c3QgY2FsbCA6bWV0aDpgd2ViYXBwMi5SZXF1ZXN0SGFuZGxlci5pbml0aWFsaXplYCBhdCB0aGUgYmVnaW5uaW5nIG9mCit0aGUgbWV0aG9kLiBJdCdsbCBzZXQgdGhlIGN1cnJlbnQgcmVxdWVzdCwgcmVzcG9uc2UgYW5kIGFwcCBvYmplY3RzIGFzCithdHRyaWJ1dGVzIG9mIHRoZSBoYW5kbGVyLiBGb3IgZXhhbXBsZTo6CisKKyAgICBjbGFzcyBNeUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgICAgICAjIFNldCBzZWxmLnJlcXVlc3QsIHNlbGYucmVzcG9uc2UgYW5kIHNlbGYuYXBwLgorICAgICAgICAgICAgc2VsZi5pbml0aWFsaXplKHJlcXVlc3QsIHJlc3BvbnNlKQorCisgICAgICAgICAgICAjIC4uLiBhZGQgeW91ciBjdXN0b20gaW5pdGlhbGl6YXRpb25zIGhlcmUgLi4uCisgICAgICAgICAgICAjIC4uLgorCisKK092ZXJyaWRpbmcgZGlzcGF0Y2goKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitPbmUgb2YgdGhlIGFkdmFudGFkZ2VzIG9mIHdlYmFwcDIgb3ZlciB3ZWJhcHAgaXMgdGhhdCB5b3UgY2FuIHdyYXAgdGhlCitkaXNwYXRjaGluZyBwcm9jZXNzIG9mIDpjbGFzczpgd2ViYXBwMi5SZXF1ZXN0SGFuZGxlcmAgdG8gcGVyZm9ybSBhY3Rpb25zCitiZWZvcmUgYW5kL29yIGFmdGVyIHRoZSByZXF1ZXN0ZWQgbWV0aG9kIGlzIGRpc3BhdGNoZWQuIFlvdSBjYW4gZG8gdGhpcworb3ZlcnJpZGluZyB0aGUgOm1ldGg6YHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIuZGlzcGF0Y2hgIG1ldGhvZC4gVGhpcyBjYW4gYmUKK3VzZWZ1bCwgZm9yIGV4YW1wbGUsIHRvIHRlc3QgaWYgcmVxdWlyZW1lbnRzIHdlcmUgbWV0IGJlZm9yZSBhY3R1YWxseQorZGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3RlZCBtZXRob2QsIG9yIHRvIHBlcmZvcm0gYWN0aW9ucyBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0CithZnRlciB0aGUgbWV0aG9kIHdhcyBkaXNwYXRjaGVkLiBIZXJlJ3MgYW4gZXhhbXBsZTo6CisKKyAgICBjbGFzcyBNeUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBkaXNwYXRjaChzZWxmKToKKyAgICAgICAgICAgICMgLi4uIGNoZWNrIGlmIHJlcXVpcmVtZW50cyB3ZXJlIG1ldCAuLi4KKyAgICAgICAgICAgICMgLi4uCisKKyAgICAgICAgICAgIGlmIHJlcXVpcmVtZW50c193ZXJlX21ldDoKKyAgICAgICAgICAgICAgICAjIFBhcmVudCBjbGFzcyB3aWxsIGNhbGwgdGhlIG1ldGhvZCB0byBiZSBkaXNwYXRjaGVkCisgICAgICAgICAgICAgICAgIyAtLSBnZXQoKSBvciBwb3N0KCkgb3IgZXRjLgorICAgICAgICAgICAgICAgIHN1cGVyKE15SGFuZGxlciwgc2VsZikuZGlzcGF0Y2goKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFib3J0KDQwMykKKworSW4gdGhpcyBjYXNlLCBpZiB0aGUgcmVxdWlyZW1lbnRzIHdlcmUgbm90IG1ldCwgdGhlIG1ldGhvZCB3b24ndCBldmVyIGJlCitkaXNwYXRjaGVkIGFuZCBhICI0MDMgRm9yYmlkZGVuIiByZXNwb25zZSB3aWxsIGJlIHJldHVybmVkIGluc3RlYWQuCisKK1RoZXJlIGFyZSBzZXZlcmFsIHBvc3NpYmlsaXRpZXMgdG8gZXhwbG9yZSBvdmVycmlkaW5nIGBgZGlzcGF0Y2goKWBgLCBsaWtlCitwZXJmb3JtaW5nIGNvbW1vbiBjaGVja2luZ3MsIHNldHRpbmcgY29tbW9uIGF0dHJpYnV0ZXMgb3IgcG9zdC1wcm9jZXNzaW5nIHRoZQorcmVzcG9uc2UuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL2luZGV4LnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvaW5kZXgucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMWQ4MjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL2luZGV4LnJzdApAQCAtMCwwICsxLDkgQEAKKy4uIF9ndWlkZS5pbmRleDoKKword2ViYXBwMidzIEd1aWRlIHRvIHRoZSBHYWVsYXh5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy4uIHRvY3RyZWU6OgorICAgOmdsb2I6CisgICA6bWF4ZGVwdGg6IDMKKworICAgKioKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvcmVxdWVzdC5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL3JlcXVlc3QucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYmI0M2EKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL3JlcXVlc3QucnN0CkBAIC0wLDAgKzEsMjExIEBACisuLiBfZ3VpZGUucmVxdWVzdDoKKworUmVxdWVzdCBkYXRhCis9PT09PT09PT09PT0KK1RoZSByZXF1ZXN0IGhhbmRsZXIgaW5zdGFuY2UgY2FuIGFjY2VzcyB0aGUgcmVxdWVzdCBkYXRhIHVzaW5nIGl0cyBgYHJlcXVlc3RgYAorcHJvcGVydHkuIFRoaXMgaXMgaW5pdGlhbGl6ZWQgdG8gYSBwb3B1bGF0ZWQgYFdlYk9iYF8gYGBSZXF1ZXN0YGAgb2JqZWN0IGJ5Cit0aGUgYXBwbGljYXRpb24uCisKK1RoZSByZXF1ZXN0IG9iamVjdCBwcm92aWRlcyBhIGBgZ2V0KClgYCBtZXRob2QgdGhhdCByZXR1cm5zIHZhbHVlcyBmb3IKK2FyZ3VtZW50cyBwYXJzZWQgZnJvbSB0aGUgcXVlcnkgYW5kIGZyb20gUE9TVCBkYXRhLiBUaGUgbWV0aG9kIHRha2VzIHRoZQorYXJndW1lbnQgbmFtZSBhcyBpdHMgZmlyc3QgcGFyYW1ldGVyLiBGb3IgZXhhbXBsZTo6CisKKyAgICBjbGFzcyBNeUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBwb3N0KHNlbGYpOgorICAgICAgICAgICAgbmFtZSA9IHNlbGYucmVxdWVzdC5nZXQoJ25hbWUnKQorCitCeSBkZWZhdWx0LCBgYGdldCgpYGAgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nIChgYCcnYGApIGlmIHRoZSByZXF1ZXN0ZWQKK2FyZ3VtZW50IGlzIG5vdCBpbiB0aGUgcmVxdWVzdC4gSWYgdGhlIHBhcmFtZXRlciBgYGRlZmF1bHRfdmFsdWVgYCBpcworc3BlY2lmaWVkLCBgYGdldCgpYGAgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhhdCBwYXJhbWV0ZXIgaW5zdGVhZCBvZiB0aGUgZW1wdHkKK3N0cmluZyBpZiB0aGUgYXJndW1lbnQgaXMgbm90IHByZXNlbnQuCisKK0lmIHRoZSBhcmd1bWVudCBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlIGluIGEgcmVxdWVzdCwgYnkgZGVmYXVsdCBgYGdldCgpYGAKK3JldHVybnMgdGhlIGZpcnN0IG9jY3VycmVuY2UuIFRvIGdldCBhbGwgb2NjdXJyZW5jZXMgb2YgYW4gYXJndW1lbnQgdGhhdCBtaWdodAorYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGFzIGEgbGlzdCAocG9zc2libHkgZW1wdHkpLCBnaXZlIGBgZ2V0KClgYCB0aGUgYXJndW1lbnQKK2BgYWxsb3dfbXVsdGlwbGU9VHJ1ZWBgOjoKKworICAgICMgPGlucHV0IG5hbWU9Im5hbWUiIHR5cGU9InRleHQiIC8+CisgICAgbmFtZSA9IHNlbGYucmVxdWVzdC5nZXQoIm5hbWUiKQorCisgICAgIyA8aW5wdXQgbmFtZT0ic3Vic2NyaWJlIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9InllcyIgLz4KKyAgICBzdWJzY3JpYmVfdG9fbmV3c2xldHRlciA9IHNlbGYucmVxdWVzdC5nZXQoInN1YnNjcmliZSIsIGRlZmF1bHRfdmFsdWU9Im5vIikKKworICAgICMgPHNlbGVjdCBuYW1lPSJmYXZvcml0ZV9mb29kcyIgbXVsdGlwbGU9InRydWUiPi4uLjwvc2VsZWN0PgorICAgIGZhdm9yaXRlX2Zvb2RzID0gc2VsZi5yZXF1ZXN0LmdldCgiZmF2b3JpdGVfZm9vZHMiLCBhbGxvd19tdWx0aXBsZT1UcnVlKQorCisgICAgIyBmb3IgZm9vZCBpbiBmYXZvcml0ZV9mb29kczoKKyAgICAjIC4uLgorCitGb3IgcmVxdWVzdHMgd2l0aCBib2R5IGNvbnRlbnQgdGhhdCBpcyBub3QgYSBzZXQgb2YgQ0dJIHBhcmFtZXRlcnMsIHN1Y2ggYXMKK3RoZSBib2R5IG9mIGFuIEhUVFAgUFVUIHJlcXVlc3QsIHRoZSByZXF1ZXN0IG9iamVjdCBwcm92aWRlcyB0aGUgYXR0cmlidXRlcworYGBib2R5YGAgYW5kIGBgYm9keV9maWxlYGA6IGBgYm9keWBgIGlzIHRoZSBib2R5IGNvbnRlbnQgYXMgYSBieXRlIHN0cmluZyBhbmQKK2BgYm9keV9maWxlYGAgcHJvdmlkZXMgYSBmaWxlLWxpa2UgaW50ZXJmYWNlIHRvIHRoZSBzYW1lIGRhdGE6OgorCisgICAgdXBsb2FkZWRfZmlsZSA9IHNlbGYucmVxdWVzdC5ib2R5CisKKworR0VUIGRhdGEKKy0tLS0tLS0tCitRdWVyeSBzdHJpbmcgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgaW4gYGByZXF1ZXN0LkdFVGBgLgorCitgYC5HRVRgYCBpcyBhIGBNdWx0aURpY3RgXzogaXQgaXMgbGlrZSBhIGRpY3Rpb25hcnkgYnV0IHRoZSBzYW1lIGtleSBjYW4gaGF2ZQorbXVsdGlwbGUgdmFsdWVzLiBXaGVuIHlvdSBjYWxsIGBgLmdldChrZXkpYGAgZm9yIGEga2V5IHdpdGggbXVsdGlwbGUgdmFsdWVzLAordGhlIGxhc3QgdmFsdWUgaXMgcmV0dXJuZWQuIFRvIGdldCBhbGwgdmFsdWVzIGZvciBhIGtleSwgdXNlIGBgLmdldGFsbChrZXkpYGAuCitFeGFtcGxlczo6CisKKyAgICByZXF1ZXN0ID0gUmVxdWVzdC5ibGFuaygnL3Rlc3Q/Y2hlY2s9YSZjaGVjaz1iJm5hbWU9Qm9iJykKKworICAgICMgVGhlIHdob2xlIE11bHRpRGljdDoKKyAgICAjIEdFVChbKCdjaGVjaycsICdhJyksICgnY2hlY2snLCAnYicpLCAoJ25hbWUnLCAnQm9iJyldKQorICAgIGdldF92YWx1ZXMgPSByZXF1ZXN0LkdFVAorCisgICAgIyBUaGUgbGFzdCB2YWx1ZSBmb3IgYSBrZXk6ICdiJworICAgIGNoZWNrX3ZhbHVlID0gcmVxdWVzdC5HRVRbJ2NoZWNrJ10KKworICAgICMgQWxsIHZhbHVlcyBmb3IgYSBrZXk6IFsnYScsICdiJ10KKyAgICBjaGVja192YWx1ZXMgPSByZXF1ZXN0LkdFVC5nZXRhbGwoJ2NoZWNrJykKKworICAgICMgQW4gaXRlcmFibGUgd2l0aCBhbGxsIGl0ZW1zIGluIHRoZSBNdWx0aURpY3Q6CisgICAgIyBbKCdjaGVjaycsICdhJyksICgnY2hlY2snLCAnYicpLCAoJ25hbWUnLCAnQm9iJyldCisgICAgcmVxdWVzdC5HRVQuaXRlbXMoKQorCitUaGUgbmFtZSBgYEdFVGBgIGlzIGEgYml0IG1pc2xlYWRpbmcsIGJ1dCBoYXMgaGlzdG9yaWNhbCByZWFzb25zOgorYGByZXF1ZXN0LkdFVGBgIGlzIG5vdCBvbmx5IGF2YWlsYWJsZSB3aGVuIHRoZSBIVFRQIG1ldGhvZCBpcyBHRVQuIEl0IGlzCithdmFpbGFibGUgZm9yIGFueSByZXF1ZXN0IHdpdGggcXVlcnkgc3RyaW5ncyBpbiB0aGUgVVJJLCBmb3IgYW55IEhUVFAgbWV0aG9kOgorR0VULCBQT1NULCBQVVQgZXRjLgorCisKK1BPU1QgZGF0YQorLS0tLS0tLS0tCitWYXJpYWJsZXMgdXJsIGVuY29kZWQgaW4gdGhlIGJvZHkgb2YgYSByZXF1ZXN0IChnZW5lcmFsbHkgYSBQT1NUIGZvcm0gc3VibWl0dGVkCit1c2luZyB0aGUgYGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgYCBtZWRpYSB0eXBlKSBhcmUgYXZhaWxhYmxlIGluCitgYHJlcXVlc3QuUE9TVGBgLgorCitJdCBpcyBhbHNvIGEgYE11bHRpRGljdGBfIGFuZCBjYW4gYmUgYWNjZXNzZWQgaW4gdGhlIHNhbWUgd2F5IGFzIGBgLkdFVGBgLgorRXhhbXBsZXM6OgorCisgICAgcmVxdWVzdCA9IFJlcXVlc3QuYmxhbmsoJy8nKQorICAgIHJlcXVlc3QubWV0aG9kID0gJ1BPU1QnCisgICAgcmVxdWVzdC5ib2R5ID0gJ2NoZWNrPWEmY2hlY2s9YiZuYW1lPUJvYicKKworICAgICMgVGhlIHdob2xlIE11bHRpRGljdDoKKyAgICAjIFBPU1QoWygnY2hlY2snLCAnYScpLCAoJ2NoZWNrJywgJ2InKSwgKCduYW1lJywgJ0JvYicpXSkKKyAgICBwb3N0X3ZhbHVlcyA9IHJlcXVlc3QuUE9TVAorCisgICAgIyBUaGUgbGFzdCB2YWx1ZSBmb3IgYSBrZXk6ICdiJworICAgIGNoZWNrX3ZhbHVlID0gcmVxdWVzdC5QT1NUWydjaGVjayddCisKKyAgICAjIEFsbCB2YWx1ZXMgZm9yIGEga2V5OiBbJ2EnLCAnYiddCisgICAgY2hlY2tfdmFsdWVzID0gcmVxdWVzdC5QT1NULmdldGFsbCgnY2hlY2snKQorCisgICAgIyBBbiBpdGVyYWJsZSB3aXRoIGFsbGwgaXRlbXMgaW4gdGhlIE11bHRpRGljdDoKKyAgICAjIFsoJ2NoZWNrJywgJ2EnKSwgKCdjaGVjaycsICdiJyksICgnbmFtZScsICdCb2InKV0KKyAgICByZXF1ZXN0LlBPU1QuaXRlbXMoKQorCitMaWtlIGBgR0VUYGAsIHRoZSBuYW1lIGBgUE9TVGBgIGlzIGEgc29tZXdqYXQgbWlzbGVhZGluZywgYnV0IGhhcyBoaXN0b3JpY2FsCityZWFzb25zOiB0aGV5IGFyZSBhbHNvIGF2YWlsYWJsZSB3aGVuIHRoZSBIVFRQIG1ldGhvZCBpcyBQVVQsIGFuZCBub3Qgb25seQorUE9TVC4KKworCitHRVQgKyBQT1NUIGRhdGEKKy0tLS0tLS0tLS0tLS0tLQorYGByZXF1ZXN0LnBhcmFtc2BgIGNvbWJpbmVzIHRoZSB2YXJpYWJsZXMgZnJvbSBgYEdFVGBgIGFuZCBgYFBPU1RgYC4gSXQgY2FuIGJlCit1c2VkIHdoZW4geW91IGRvbid0IGNhcmUgd2hlcmUgdGhlIHZhcmlhYmxlIGNvbWVzIGZyb20uCisKKworRmlsZXMKKy0tLS0tCitVcGxvYWRlZCBmaWxlcyBhcmUgYXZhaWxhYmxlIGFzIGBgY2dpLkZpZWxkU3RvcmFnZWBgIChzZWUgdGhlIDpweTptb2Q6YGNnaWAKK21vZHVsZSkgaW5zdGFuY2VzIGRpcmVjdGx5IGluIGBgcmVxdWVzdC5QT1NUYGAuCisKKworLi4gX2d1aWRlLnJlcXVlc3QuY29va2llczoKKworQ29va2llcworLS0tLS0tLQorQ29va2llcyBjYW4gYmUgYWNjZXNzZWQgaW4gYGByZXF1ZXN0LmNvb2tpZXNgYC4gSXQgaXMgYSBzaW1wbGUgZGljdGlvbmFyeTo6CisKKyAgICByZXF1ZXN0ID0gUmVxdWVzdC5ibGFuaygnLycpCisgICAgcmVxdWVzdC5oZWFkZXJzWydDb29raWUnXSA9ICd0ZXN0PXZhbHVlJworCisgICAgIyBBIHZhbHVlOiAndmFsdWUnCisgICAgY29va2llX3ZhbHVlID0gcmVxdWVzdC5jb29raWVzLmdldCgndGVzdCcpCisKKy4uIHNlZWFsc286OgorICAgOnJlZjpgSG93IHRvIHNldCBjb29raWVzIHVzaW5nIHRoZSByZXNwb25zZSBvYmplY3QgPGd1aWRlLnJlc3BvbnNlLnNldHRpbmctY29va2llcz5gCisKKworQ29tbW9uIFJlcXVlc3QgYXR0cmlidXRlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYm9keQorICBBIGZpbGUtbGlrZSBvYmplY3QgdGhhdCBnaXZlcyB0aGUgYm9keSBvZiB0aGUgcmVxdWVzdC4KK2NvbnRlbnRfdHlwZQorICBDb250ZW50LXR5cGUgb2YgdGhlIHJlcXVlc3QgYm9keS4KK21ldGhvZAorICBUaGUgSFRUUCBtZXRob2QsIGUuZy4sICdHRVQnIG9yICdQT1NUJy4KK3VybAorICBGdWxsIFVSSSwgZS5nLiwgYGAnaHR0cDovL2xvY2FsaG9zdC9ibG9nL2FydGljbGU/aWQ9MSdgYC4KK3NjaGVtZQorICBVUkkgc2NoZW1lLCBlLmcuLCAnaHR0cCcgb3IgJ2h0dHBzJy4KK2hvc3QKKyAgVVJJIGhvc3QsIGUuZy4sIGBgJ2xvY2FsaG9zdDo4MCdgYC4KK2hvc3RfdXJsCisgIFVSSSBob3N0IGluY2x1ZGluZyBzY2hlbWUsIGUuZy4sIGBgJ2h0dHA6Ly9sb2NhbGhvc3QnYGAuCitwYXRoX3VybAorICBVUkkgaG9zdCBpbmNsdWRpbmcgc2NoZW1lIGFuZCBwYXRoLCBlLmcuLCBgYCdodHRwOi8vbG9jYWxob3N0L2Jsb2cvYXJ0aWNsZSdgYC4KK3BhdGgKKyAgVVJJIHBhdGgsIGUuZy4sIGBgJy9ibG9nL2FydGljbGUnYGAuCitwYXRoX3FzCisgIFVSSSBwYXRoIGluY2x1ZGluZyB0aGUgcXVlcnkgc3RyaW5nLCBlLmcuLCBgYCcvYmxvZy9hcnRpY2xlP2lkPTEnYGAuCitxdWVyeV9zdHJpbmcKKyAgUXVlcnkgc3RyaW5nLCBlLmcuLCBgYGlkPTFgYC4KK2hlYWRlcnMKKyAgQSBkaWN0aW9uYXJ5IGxpa2Ugb2JqZWN0IHdpdGggcmVxdWVzdCBoZWFkZXJzLiBLZXlzIGFyZSBjYXNlLWluc2Vuc2l0aXZlLgorR0VUCisgIEEgZGljdGlvbmFyeS1saWtlIG9iamVjdCB3aXRoIHZhcmlhYmxlcyBmcm9tIHRoZSBxdWVyeSBzdHJpbmcsIGFzIHVuaWNvZGUuCitQT1NUCisgIEEgZGljdGlvbmFyeS1saWtlIG9iamVjdCB3aXRoIHZhcmlhYmxlcyBmcm9tIGEgUE9TVCBmb3JtLCBhcyB1bmljb2RlLgorcGFyYW1zCisgIEEgZGljdGlvbmFyeS1saWtlIG9iamVjdCBjb21iaW5pbmcgdGhlIHZhcmlhYmxlcyBHRVQgYW5kIFBPU1QuCitjb29raWVzCisgIEEgZGljdGlvbmFyeS1saWtlIG9iamVjdCB3aXRoIGNvb2tpZSB2YWx1ZXMuCisKKworRXh0cmEgYXR0cmlidXRlcworLS0tLS0tLS0tLS0tLS0tLQorVGhlIHBhcmFtZXRlcnMgZnJvbSB0aGUgbWF0Y2hlZCA6Y2xhc3M6YHdlYmFwcDIuUm91dGVgIGFyZSBzZXQgYXMgYXR0cmlidXRlcworb2YgdGhlIHJlcXVlc3Qgb2JqZWN0LiBUaGV5IGFyZSBgYHJlcXVlc3Qucm91dGVfYXJnc2BgLCBmb3IgcG9zaXRpb25hbAorYXJndW1lbnRzLCBhbmQgYGByZXF1ZXN0LnJvdXRlX2t3YXJnc2BgLCBmb3Iga2V5d29yZCBhcmd1bWVudHMuIFRoZSBtYXRjaGVkCityb3V0ZSBvYmplY3QgaXMgYXZhaWxhYmxlIGFzIGBgcmVxdWVzdC5yb3V0ZWBgLgorCitBIHJlZmVyZW5jZSB0byB0aGUgYWN0aXZlIFdTR0kgYXBwbGljYXRpb24gaXMgYWxzbyBzZXQgYXMgYW4gYXR0cmlidXRlIG9mIHRoZQorcmVxdWVzdC4gWW91IGNhbiBhY2Nlc3MgaXQgaW4gYGByZXF1ZXN0LmFwcGBgLgorCisKK0dldHRpbmcgdGhlIGN1cnJlbnQgcmVxdWVzdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUaGUgYWN0aXZlIGBgUmVxdWVzdGBgIGluc3RhbmNlIGNhbiBiZSBhY2Nlc3NlZCBkdXJpbmcgYSByZXF1ZXN0IHVzaW5nIHRoZQorZnVuY3Rpb24gOmZ1bmM6YHdlYmFwcDIuZ2V0X3JlcXVlc3RgLgorCisKKy4uIF9ndWlkZS5yZXF1ZXN0LnJlZ2lzdHJ5OgorCitSZWdpc3RyeQorLS0tLS0tLS0KK0Egc2ltcGxlIGRpY3Rpb25hcnkgaXMgYXZhaWxhYmxlIGluIHRoZSByZXF1ZXN0IG9iamVjdCB0byByZWdpc3RlciBpbnN0YW5jZXMKK3RoYXQgYXJlIHNoYXJlZCBkdXJpbmcgYSByZXF1ZXN0OiBpdCBpcyB0aGUgOmF0dHI6YHdlYmFwcDIuUmVxdWVzdC5yZWdpc3RyeWAKK2F0dHJpYnV0ZS4KKworQSByZWdpc3RyeSBkaWN0aW9uYXJ5IGlzIGFsc28gYXZhaWxhYmxlIGluIHRoZQorOnJlZjpgV1NHSSBhcHBsaWNhdGlvbiBvYmplY3QgPGd1aWRlLmFwcC5yZWdpc3RyeT5gLCB0byBzdG9yZSBvYmplY3RzIHNoYXJlZAorYWNyb3NzIHJlcXVlc3RzLgorCisKK0xlYXJuIG1vcmUgYWJvdXQgV2ViT2IKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1dlYk9iIGlzIGFuIG9wZW4gc291cmNlIHRoaXJkLXBhcnR5IGxpYnJhcnkuIFNlZSB0aGUgYFdlYk9iYF8gZG9jdW1lbnRhdGlvbgorZm9yIGEgZGV0YWlsZWQgQVBJIHJlZmVyZW5jZSBhbmQgZXhhbXBsZXMuCisKKworLi4gX1dlYk9iOiBodHRwOi8vZG9jcy53ZWJvYi5vcmcvCisuLiBfTXVsdGlEaWN0OiBodHRwOi8vcHl0aG9ucGFzdGUub3JnL3dlYm9iL2NsYXNzLXdlYm9iLm11bHRpZGljdC5NdWx0aURpY3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9ndWlkZS9yZXNwb25zZS5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL3Jlc3BvbnNlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjY0MjZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9ndWlkZS9yZXNwb25zZS5yc3QKQEAgLTAsMCArMSwxMzIgQEAKKy4uIF9ndWlkZS5yZXNwb25zZToKKworQnVpbGRpbmcgYSBSZXNwb25zZQorPT09PT09PT09PT09PT09PT09PQorVGhlIHJlcXVlc3QgaGFuZGxlciBpbnN0YW5jZSBidWlsZHMgdGhlIHJlc3BvbnNlIHVzaW5nIGl0cyByZXNwb25zZSBwcm9wZXJ0eS4KK1RoaXMgaXMgaW5pdGlhbGl6ZWQgdG8gYW4gZW1wdHkgYFdlYk9iYF8gYGBSZXNwb25zZWBgIG9iamVjdCBieSB0aGUKK2FwcGxpY2F0aW9uLgorCitUaGUgcmVzcG9uc2Ugb2JqZWN0J3MgYWN0cyBhcyBhIGZpbGUtbGlrZSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBmb3IKK3dyaXRpbmcgdGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlOjoKKworICAgIGNsYXNzIE15SGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoIjxodG1sPjxib2R5PjxwPkhpIHRoZXJlITwvcD48L2JvZHk+PC9odG1sPiIpCisKK1RoZSByZXNwb25zZSBidWZmZXJzIGFsbCBvdXRwdXQgaW4gbWVtb3J5LCB0aGVuIHNlbmRzIHRoZSBmaW5hbCBvdXRwdXQgd2hlbgordGhlIGhhbmRsZXIgZXhpdHMuIHdlYmFwcDIgZG9lcyBub3Qgc3VwcG9ydCBzdHJlYW1pbmcgZGF0YSB0byB0aGUgY2xpZW50LgorCitUaGUgYGBjbGVhcigpYGAgbWV0aG9kIGVyYXNlcyB0aGUgY29udGVudHMgb2YgdGhlIG91dHB1dCBidWZmZXIsIGxlYXZpbmcgaXQKK2VtcHR5LgorCitJZiB0aGUgZGF0YSB3cml0dGVuIHRvIHRoZSBvdXRwdXQgc3RyZWFtIGlzIGEgVW5pY29kZSB2YWx1ZSwgb3IgaWYgdGhlCityZXNwb25zZSBpbmNsdWRlcyBhIGBgQ29udGVudC1UeXBlYGAgaGVhZGVyIHRoYXQgZW5kcyB3aXRoIGBgOyBjaGFyc2V0PXV0Zi04YGAsCit3ZWJhcHAyIGVuY29kZXMgdGhlIG91dHB1dCBhcyBVVEYtOC4gQnkgZGVmYXVsdCwgdGhlIGBgQ29udGVudC1UeXBlYGAgaGVhZGVyCitpcyBgYHRleHQvaHRtbDsgY2hhcnNldD11dGYtOGBgLCBpbmNsdWRpbmcgdGhlIGVuY29kaW5nIGJlaGF2aW9yLiBJZiB0aGUKK2BgQ29udGVudC1UeXBlYGAgaXMgY2hhbmdlZCB0byBoYXZlIGEgZGlmZmVyZW50IGNoYXJzZXQsIHdlYmFwcDIgYXNzdW1lcyB0aGUKK291dHB1dCBpcyBhIGJ5dGUgc3RyaW5nIHRvIGJlIHNlbnQgdmVyYmF0aW0uCisKKy4uIHdhcm5pbmc6CisgICBUaGUgYGBzdGF0dXNgYCBhdHRyaWJ1dGUgZnJvbSBhIHJlc3BvbnNlIGlzIHRoZSBzdGF0dXMgY29kZSBwbHVzIG1lc3NhZ2UsCisgICBlLmcuLCAnMjAwIE9LJy4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB3ZWJhcHAsIHdoaWNoIGhhcyB0aGUgc3RhdHVzIGNvZGUKKyAgIChhbiBpbnRlZ2VyKSBzdG9yZWQgaW4gYGBzdGF0dXNgYC4gSW4gd2ViYXBwMiwgdGhlIHN0YXR1cyBjb2RlIGlzIHN0b3JlZAorICAgaW4gdGhlIGBgc3RhdHVzX2ludGBgIGF0dHJpYnV0ZSwgYXMgaW4gV2ViT2IuCisKKworLi4gX2d1aWRlLnJlc3BvbnNlLnNldHRpbmctY29va2llczoKKworU2V0dGluZyBjb29raWVzCistLS0tLS0tLS0tLS0tLS0KK0Nvb2tpZXMgYXJlIHNldCBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LiBUaGUgbWV0aG9kcyB0byBoYW5kbGUgY29va2llcyBhcmU6CisKK3NldF9jb29raWUoa2V5LCB2YWx1ZT0nJywgbWF4X2FnZT1Ob25lLCBwYXRoPScvJywgZG9tYWluPU5vbmUsIHNlY3VyZT1Ob25lLCBodHRwb25seT1GYWxzZSwgY29tbWVudD1Ob25lLCBleHBpcmVzPU5vbmUsIG92ZXJ3cml0ZT1GYWxzZSkKKyAgU2V0cyBhIGNvb2tpZS4KKworZGVsZXRlX2Nvb2tpZShrZXksIHBhdGg9Jy8nLCBkb21haW49Tm9uZSkKKyAgRGVsZXRlcyBhIGNvb2tpZSBwcmV2aW91c2x5IHNldCBpbiB0aGUgY2xpZW50LgorCit1bnNldF9jb29raWUoa2V5KQorICBVbnNldHMgYSBjb29raWUgcHJldmlvdXNseSBzZXQgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC4gTm90ZSB0aGF0IHRoaXMKKyAgZG9lc24ndCBkZWxldGUgdGhlIGNvb2tpZSBmcm9tIGNsaWVudHMsIG9ubHkgZnJvbSB0aGUgcmVzcG9uc2UuCisKK0ZvciBleGFtcGxlOjoKKworICAgICMgU2F2ZXMgYSBjb29raWUgaW4gdGhlIGNsaWVudC4KKyAgICByZXNwb25zZS5zZXRfY29va2llKCdzb21lX2tleScsICd2YWx1ZScsIG1heF9hZ2U9MzYwLCBwYXRoPScvJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbj0nZXhhbXBsZS5vcmcnLCBzZWN1cmU9VHJ1ZSkKKworICAgICMgRGVsZXRlcyBhIGNvb2tpZSBwcmV2aW91c2x5IHNldCBpbiB0aGUgY2xpZW50LgorICAgIHJlc3BvbnNlLmRlbGV0ZV9jb29raWUoJ2JhZF9jb29raWUnKQorCisgICAgIyBDYW5jZWxzIGEgY29va2llIHByZXZpb3VzbHkgc2V0IGluIHRoZSByZXNwb25zZS4KKyAgICByZXNwb25zZS51bnNldF9jb29raWUoJ3NvbWVfa2V5JykKKworT25seSB0aGUgYGBrZXlgYCBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQuIFRoZSBwYXJhbWV0ZXJzIGFyZToKKwora2V5CisgIENvb2tpZSBuYW1lLgordmFsdWUKKyAgQ29va2llIHZhbHVlLgorZXhwaXJlcworICBBbiBleHBpcmF0aW9uIGRhdGUuIE11c3QgYmUgYSA6cHk6bW9kOmBkYXRldGltZWAuZGF0ZXRpbWUgb2JqZWN0LiBVc2UgdGhpcworICBpbnN0ZWFkIG9mIG1heF9hZ2Ugc2luY2UgdGhlIGZvcm1lciBpcyBub3Qgc3VwcG9ydGVkIGJ5IEludGVybmV0IEV4cGxvcmVyLgorbWF4X2FnZQorICBDb29raWUgbWF4IGFnZSBpbiBzZWNvbmRzLgorcGF0aAorICBVUkkgcGF0aCBpbiB3aGljaCB0aGUgY29va2llIGlzIHZhbGlkLgorZG9tYWluCisgIFVSSSBkb21haW4gaW4gd2hpY2ggdGhlIGNvb2tpZSBpcyB2YWxpZC4KK3NlY3VyZQorICBJZiBUcnVlLCB0aGUgY29va2llIGlzIG9ubHkgYXZhaWxhYmxlIHZpYSBIVFRQUy4KK2h0dHBvbmx5CisgIERpc2FsbG93IEphdmFTY3JpcHQgdG8gYWNjZXNzIHRoZSBjb29raWUuCitjb21tZW50CisgIERlZmluZXMgYSBjb29raWUgY29tbWVudC4KK292ZXJ3cml0ZQorICBJZiB0cnVlLCBvdmVyd3JpdGVzIHByZXZpb3VzbHkgc2V0IChhbmQgbm90IHlldCBzZW50IHRvIHRoZSBjbGllbnQpIGNvb2tpZXMKKyAgd2l0aCB0aGUgc2FtZSBuYW1lLgorCisuLiBzZWVhbHNvOjoKKyAgIDpyZWY6YEhvdyB0byByZWFkIGNvb2tpZXMgZnJvbSB0aGUgcmVxdWVzdCBvYmplY3QgPGd1aWRlLnJlcXVlc3QuY29va2llcz5gCisKK0NvbW1vbiBSZXNwb25zZSBhdHRyaWJ1dGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3RhdHVzCisgIFN0YXR1cyBjb2RlIHBsdXMgbWVzc2FnZSwgZS5nLiwgJzQwNCBOb3QgRm91bmQnLiBUaGUgc3RhdHVzIGNhbiBiZSBzZXQKKyAgcGFzc2luZyBhbiBgYGludGBgLCBlLmcuLCBgYHJlcXVlc3Quc3RhdHVzID0gNDA0YGAsIG9yIGluY2x1ZGluZyB0aGUgbWVzc2FnZSwKKyAgZS5nLiwgYGByZXF1ZXN0LnN0YXR1cyA9ICc0MDQgTm90IEZvdW5kJ2BgLgorc3RhdHVzX2ludAorICBTdGF0dXMgY29kZSBhcyBhbiBgYGludGBgLCBlLmcuLCA0MDQuCitzdGF0dXNfbWVzc2FnZQorICBTdGF0dXMgbWVzc2FnZSwgZS5nLiwgJ05vdCBGb3VuZCcuCitib2R5CisgIFRoZSBjb250ZW50cyBvZiB0aGUgcmVzcG9uc2UsIGFzIGEgc3RyaW5nLgordW5pY29kZV9ib2R5CisgIFRoZSBjb250ZW50cyBvZiB0aGUgcmVzcG9uc2UsIGFzIGEgdW5pY29kZS4KK2hlYWRlcnMKKyAgQSBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0IHdpdGggaGVhZGVycy4gS2V5cyBhcmUgY2FzZS1pbnNlbnNpdGl2ZS4gSXQgc3VwcG9ydHMKKyAgbXVsdGlwbGUgdmFsdWVzIGZvciBhIGtleSwgYnV0IHlvdSBtdXN0IHVzZQorICBgYHJlc3BvbnNlLmhlYWRlcnMuYWRkKGtleSwgdmFsdWUpYGAgdG8gYWRkIGtleXMuIFRvIGdldCBhbGwgdmFsdWVzLCB1c2UKKyAgYGByZXNwb25zZS5oZWFkZXJzLmdldGFsbChrZXkpYGAuCitoZWFkZXJsaXN0CisgIExpc3Qgb2YgaGVhZGVycywgYXMgYSBsaXN0IG9mIHR1cGxlcyBgYChoZWFkZXJfbmFtZSwgdmFsdWUpYGAuCitjaGFyc2V0CisgIENoYXJhY3RlciBlbmNvZGluZy4KK2NvbnRlbnRfdHlwZQorICAnQ29udGVudC1UeXBlJyB2YWx1ZSBmcm9tIHRoZSBoZWFkZXJzLCBlLmcuLCBgYCd0ZXh0L2h0bWwnYGAuCitjb250ZW50X3R5cGVfcGFyYW1zCisgIERpY3Rpb25hcnkgb2YgZXh0cmEgQ29udGVudC10eXBlIHBhcmFtZXRlcnMsIGUuZy4sIGBgeydjaGFyc2V0JzogJ3V0ZjgnfWBgLgorbG9jYXRpb24KKyAgJ0xvY2F0aW9uJyBoZWFkZXIgdmFyaWFibGUsIHVzZWQgZm9yIHJlZGlyZWN0cy4KK2V0YWcKKyAgJ0VUYWcnIGhlYWRlciB2YXJpYWJsZS4gWW91IGNhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGFuIGV0YWcgYmFzZWQgb24gdGhlCisgIHJlc3BvbnNlIGJvZHkgY2FsbGluZyBgYHJlc3BvbnNlLm1kNV9ldGFnKClgYC4KKworCitMZWFybiBtb3JlIGFib3V0IFdlYk9iCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitXZWJPYiBpcyBhbiBvcGVuIHNvdXJjZSB0aGlyZC1wYXJ0eSBsaWJyYXJ5LiBTZWUgdGhlIGBXZWJPYmBfIGRvY3VtZW50YXRpb24KK2ZvciBhIGRldGFpbGVkIEFQSSByZWZlcmVuY2UgYW5kIGV4YW1wbGVzLgorCisKKy4uIF9XZWJPYjogaHR0cDovL2RvY3Mud2Vib2Iub3JnLwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9ndWlkZS9yb3V0aW5nLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvcm91dGluZy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg5MTlmZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvcm91dGluZy5yc3QKQEAgLTAsMCArMSwzOTUgQEAKKy4uIF9ndWlkZS5yb3V0aW5nOgorCitVUkkgcm91dGluZworPT09PT09PT09PT0KK2BVUkkgcm91dGluZ2AgaXMgdGhlIHByb2Nlc3Mgb2YgdGFraW5nIHRoZSByZXF1ZXN0ZWQgVVJJIGFuZCBkZWNpZGluZyB3aGljaAorYXBwbGljYXRpb24gaGFuZGxlciB3aWxsIGhhbmRsZSB0aGUgY3VycmVudCByZXF1ZXN0LiBGb3IgdGhpcywgd2UgaW5pdGlhbGl6ZQordGhlIDpjbGFzczpgV1NHSUFwcGxpY2F0aW9uYCBkZWZpbmluZyBhIGxpc3Qgb2YgYHJvdXRlc2A6IGVhY2ggYHJvdXRlYAorYW5hbHlzZXMgdGhlIGN1cnJlbnQgcmVxdWVzdCBhbmQsIGlmIGl0IG1hdGNoZXMgY2VydGFpbiBjcml0ZXJpYXMsIHJldHVybnMKK3RoZSBoYW5kbGVyIGFuZCBvcHRpb25hbCB2YXJpYWJsZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSSS4KKword2ViYXBwMiBvZmZlcnMgYSBwb3dlcmZ1bCBhbmQgZXh0ZW5zaWJsZSBzeXN0ZW0gdG8gbWF0Y2ggYW5kIGJ1aWxkIFVSSXMsCit3aGljaCBpcyBleHBsYWluZWQgaW4gZGV0YWlscyBpbiB0aGlzIHNlY3Rpb24uCisKKworU2ltcGxlIHJvdXRlcworLS0tLS0tLS0tLS0tLQorVGhlIHNpbXBsZXN0IGZvcm0gb2YgVVJJIHJvdXRlIGluIHdlYmFwcDIgaXMgYSB0dXBsZSBgYChyZWdleCwgaGFuZGxlcilgYCwKK3doZXJlIGByZWdleGAgaXMgYSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggdGhlIHJlcXVlc3RlZCBVUkkgcGF0aCBhbmQKK2BoYW5kbGVyYCBpcyBhIGNhbGxhYmxlIHRvIGhhbmRsZSB0aGUgcmVxdWVzdC4gVGhpcyByb3V0aW5nIG1lY2hhbmlzbSBpcworZnVsbHkgY29tcGF0aWJsZSB3aXRoIEFwcCBFbmdpbmUncyB3ZWJhcHAgZnJhbWV3b3JrLgorCitUaGlzIGlzIGhvdyBpdCB3b3JrczogYSBsaXN0IG9mIHJvdXRlcyBpcyByZWdpc3RlcmVkIGluIHRoZQorOnJlZjpgV1NHSSBhcHBsaWNhdGlvbiA8Z3VpZGUuYXBwPmAuIFdoZW4gdGhlIGFwcGxpY2F0aW9uIHJlY2VpdmVzIGEgcmVxdWVzdCwKK2l0IHRyaWVzIHRvIG1hdGNoIGVhY2ggb25lIGluIG9yZGVyIHVudGlsIG9uZSBtYXRjaGVzLCBhbmQgdGhlbiBjYWxsIHRoZQorY29ycmVzcG9uZGluZyBoYW5kbGVyLiBIZXJlLCBmb3IgZXhhbXBsZSwgd2UgZGVmaW5lIHRocmVlIGhhbmRsZXJzIGFuZAorcmVnaXN0ZXIgdGhyZWUgcm91dGVzIHRoYXQgcG9pbnQgdG8gdGhvc2UgaGFuZGxlcnM6OgorCisgICAgY2xhc3MgSG9tZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKCdUaGlzIGlzIHRoZSBIb21lSGFuZGxlci4nKQorCisgICAgY2xhc3MgUHJvZHVjdExpc3RIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgnVGhpcyBpcyB0aGUgUHJvZHVjdExpc3RIYW5kbGVyLicpCisKKyAgICBjbGFzcyBQcm9kdWN0SGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmLCBwcm9kdWN0X2lkKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ1RoaXMgaXMgdGhlIFByb2R1Y3RIYW5kbGVyLiAnCisgICAgICAgICAgICAgICAgJ1RoZSBwcm9kdWN0IGlkIGlzICVzJyAlIHByb2R1Y3RfaWQpCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgIChyJy8nLCBIb21lSGFuZGxlciksCisgICAgICAgIChyJy9wcm9kdWN0cycsIFByb2R1Y3RMaXN0SGFuZGxlciksCisgICAgICAgIChyJy9wcm9kdWN0cy8oXGQrKScsIFByb2R1Y3RIYW5kbGVyKSwKKyAgICBdKQorCitXaGVuIGEgcmVxdWVzdCBjb21lcyBpbiwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgbWF0Y2ggdGhlIHJlcXVlc3QgcGF0aCB0byBmaW5kCit0aGUgY29ycmVzcG9uZGluZyBoYW5kbGVyLiBJZiBubyByb3V0ZSBtYXRjaGVzLCBhbiBgYEhUVFBFeGNlcHRpb25gYCBpcyByYWlzZWQKK3dpdGggc3RhdHVzIGNvZGUgNDA0LCBhbmQgdGhlIFdTR0kgYXBwbGljYXRpb24gY2FuIGhhbmRsZSBpdCBhY2NvcmRpbmdseSAoc2VlCis6cmVmOmBndWlkZS5leGNlcHRpb25zYCkuCisKK1RoZSBgcmVnZXhgIHBhcnQgaXMgYW4gb3JkaW5hcnkgcmVndWxhciBleHByZXNzaW9uIChzZWUgdGhlIDpweTptb2Q6YHJlYAorbW9kdWxlKSB0aGF0IGNhbiBkZWZpbmUgZ3JvdXBzIGluc2lkZSBwYXJlbnRoZXNlcy4gVGhlIG1hdGNoZWQgZ3JvdXAgdmFsdWVzIGFyZQorcGFzc2VkIHRvIHRoZSBoYW5kbGVyIGFzIHBvc2l0aW9uYWwgYXJndW1lbnRzLiBJbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIGxhc3QKK3JvdXRlIGRlZmluZXMgYSBncm91cCwgc28gdGhlIGhhbmRsZXIgd2lsbCByZWNlaXZlIHRoZSBtYXRjaGVkIHZhbHVlIHdoZW4gdGhlCityb3V0ZSBtYXRjaGVzIChvbmUgb3IgbW9yZSBkaWdpdHMgaW4gdGhpcyBjYXNlKS4KKworVGhlIGBoYW5kbGVyYCBwYXJ0IGlzIGEgY2FsbGFibGUgYXMgZXhwbGFpbmVkIGluIDpyZWY6YGd1aWRlLmhhbmRsZXJzYCwgYW5kCitjYW4gYWxzbyBiZSBhIHN0cmluZyBpbiBkb3R0ZWQgbm90YXRpb24gdG8gYmUgbGF6aWx5IGltcG9ydGVkIHdoZW4gbmVlZGVkCisoc2VlIGV4cGxhbmF0aW9uIGJlbG93IGluIDpyZWY6YExhenkgSGFuZGxlcnMgPGd1aWRlLnJvdXRpbmcubGF6eS1oYW5kbGVycz5gKS4KKworU2ltcGxlIHJvdXRlcyBhcmUgZWFzeSB0byB1c2UgYW5kIGVub3VnaCBmb3IgYSBsb3Qgb2YgY2FzZXMgYnV0IGRvbid0IHN1cHBvcnQKK2tleXdvcmQgYXJndW1lbnRzLCBVUkkgYnVpbGRpbmcsIGRvbWFpbiBhbmQgc3ViZG9tYWluIG1hdGNoaW5nLCBhdXRvbWF0aWMKK3JlZGlyZWN0aW9uIGFuZCBvdGhlciB1c2VmdWwgZmVhdHVyZXMuIEZvciB0aGlzLCB3ZWJhcHAyIG9mZmVycyB0aGUgZXh0ZW5kZWQKK3JvdXRpbmcgbWVjaGFuaXNtIHRoYXQgd2UnbGwgc2VlIG5leHQuCisKKworRXh0ZW5kZWQgcm91dGVzCistLS0tLS0tLS0tLS0tLS0KK3dlYmFwcDIgaW50cm9kdWNlcyBhIHJvdXRpbmcgbWVjaGFuaXNtIHRoYXQgZXh0ZW5kcyB0aGUgd2ViYXBwIG1vZGVsIHRvIHByb3ZpZGUKK2FkZGl0aW9uYWwgZmVhdHVyZXM6CisKKy0gKipVUkkgYnVpbGRpbmc6KiogdGhlIHJlZ2lzdGVyZWQgcm91dGVzIGNhbiBiZSBidWlsdCB3aGVuIG5lZWRlZCwgYXZvaWRpbmcKKyAgaGFyZGNvZGVkIFVSSXMgaW4gdGhlIGFwcCBjb2RlIGFuZCB0ZW1wbGF0ZXMuIElmIHlvdSBjaGFuZ2UgdGhlIHJvdXRlCisgIGRlZmluaXRpb24gaW4gYSBjb21wYXRpYmxlIHdheSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFsbCBwbGFjZXMgdGhhdCB1c2UgdGhhdAorICByb3V0ZSB3aWxsIGNvbnRpbnVlIHRvIHBvaW50IHRvIHRoZSBjb3JyZWN0IFVSSS4gVGhpcyBpcyBsZXNzIGVycm9yIHByb25lIGFuZAorICBlYXNpZXIgdG8gbWFpbnRhaW4uCistICoqS2V5d29yZCBhcmd1bWVudHM6KiogaGFuZGxlcnMgY2FuIHJlY2VpdmUga2V5d29yZCBhcmd1bWVudHMgZnJvbSB0aGUKKyAgbWF0Y2hlZCBVUklzLiBUaGlzIGlzIGVhc2llciB0byB1c2UgYW5kIGFsc28gbW9yZSBtYWludGFuYWJsZSB0aGFuIHBvc2l0aW9uYWwKKyAgYXJndW1lbnRzLgorLSAqKk5lc3RlZCByb3V0ZXM6Kiogcm91dGVzIGNhbiBiZSBleHRlbmRlZCB0byBtYXRjaCBtb3JlIHRoYW4gdGhlIHJlcXVlc3QKKyAgcGF0aC4gV2Ugd2lsbCBzZWUgYmVsb3cgYSByb3V0ZSBjbGFzcyB0aGF0IGNhbiBhbHNvIG1hdGNoIGRvbWFpbnMgYW5kCisgIHN1YmRvbWFpbnMuCisKK0FuZCBzZXZlcmFsIG90aGVyIGZlYXR1cmVzIGFuZCBiZW5lZml0cy4KKworVGhlIGNvbmNlcHQgaXMgc2ltaWxhciB0byB0aGUgc2ltcGxlIHJvdXRlcyB3ZSBzYXcgYmVmb3JlLCBidXQgaW5zdGVhZCBvZiBhCit0dXBsZSBgYChyZWdleCwgaGFuZGxlcilgYCwgd2UgZGVmaW5lIGVhY2ggcm91dGUgdXNpbmcgdGhlIGNsYXNzCis6Y2xhc3M6YHdlYmFwcDIuUm91dGVgLiBMZXQncyByZW1ha2Ugb3VyIHByZXZpb3VzIHJvdXRlcyB1c2luZyBpdDo6CisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgIHdlYmFwcDIuUm91dGUocicvJywgaGFuZGxlcj1Ib21lSGFuZGxlciwgbmFtZT0naG9tZScpLAorICAgICAgICB3ZWJhcHAyLlJvdXRlKHInL3Byb2R1Y3RzJywgaGFuZGxlcj1Qcm9kdWN0TGlzdEhhbmRsZXIsIG5hbWU9J3Byb2R1Y3QtbGlzdCcpLAorICAgICAgICB3ZWJhcHAyLlJvdXRlKHInL3Byb2R1Y3RzLzxwcm9kdWN0X2lkOlxkKz4nLCBoYW5kbGVyPVByb2R1Y3RIYW5kbGVyLCBuYW1lPSdwcm9kdWN0JyksCisgICAgXSkKKworVGhlIGZpcnN0IGFyZ3VtZW50IGluIHRoZSByb3V0ZXMgYWJvdmUgaXMgYQorOnJlZjpgVVJMIHRlbXBsYXRlIDxndWlkZS5yb3V0aW5nLnRoZS11cmwtdGVtcGxhdGU+YCwgdGhlIGBoYW5kbGVyYAorYXJndW1lbnQgaXMgdGhlIDpyZWY6YHJlcXVlc3QgaGFuZGxlciA8Z3VpZGUuaGFuZGxlcnM+YCB0byBiZSB1c2VkLCBhbmQgdGhlCitgbmFtZWAgYXJndW1lbnQgdGhpcmQgaXMgYSBuYW1lIHVzZWQgdG8KKzpyZWY6YGJ1aWxkIGEgVVJJIDxndWlkZS5yb3V0aW5nLmJ1aWxkaW5nLXVyaXM+YCBmb3IgdGhhdCByb3V0ZS4KKworQ2hlY2sgOm1ldGg6YHdlYmFwcDIuUm91dGUuX19pbml0X19gIGluIHRoZSBBUEkgcmVmZXJlbmNlIGZvciB0aGUgcGFyYW1ldGVycworYWNjZXB0ZWQgYnkgdGhlIGBgUm91dGVgYCBjb25zdHJ1Y3Rvci4gV2Ugd2lsbCBleHBsYWluIHNvbWUgb2YgdGhlbSBpbiBkZXRhaWxzCitiZWxvdy4KKworLi4gX2d1aWRlLnJvdXRpbmcudGhlLXVybC10ZW1wbGF0ZToKKworVGhlIFVSTCB0ZW1wbGF0ZQorfn5+fn5+fn5+fn5+fn5+fgorVGhlIFVSTCB0ZW1wbGF0ZSBkZWZpbmVzIHRoZSBVUkwgcGF0aCB0byBiZSBtYXRjaGVkLiBJdCBjYW4gaGF2ZSByZWd1bGFyCitleHByZXNzaW9ucyBmb3IgdmFyaWFibGVzIHVzaW5nIHRoZSBzeW50YXggYGA8bmFtZTpyZWdleD5gYDsgZXZlcnl0aGluZworb3V0c2lkZSBvZiBgYDw+YGAgaXMgbm90IGludGVycHJldGVkIGFzIGEgcmVndWxhciBleHByZXNzaW9uIHRvIGJlIG1hdGNoZWQuCitCb3RoIG5hbWUgYW5kIHJlZ2V4IGFyZSBvcHRpb25hbCwgbGlrZSBpbiB0aGUgZXhhbXBsZXMgYmVsb3c6CisKKz09PT09PT09PT09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitGb3JtYXQgICAgICAgICAgICAgRXhhbXBsZQorPT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2BgPG5hbWU+YGAgICAgICAgICBgYCcvYmxvZy88eWVhcj4vPG1vbnRoPidgYAorYGA8OnJlZ2V4PmBgICAgICAgIGBgJy9ibG9nLzw6XGR7NH0+Lzw6XGR7Mn0+J2BgCitgYDxuYW1lOnJlZ2V4PmBgICAgYGAnL2Jsb2cvPHllYXI6XGR7NH0+Lzxtb250aDpcZHsyfT4nYGAKKz09PT09PT09PT09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBzYW1lIHRlbXBsYXRlIGNhbiBtaXggcGFydHMgd2l0aCBuYW1lLCByZWd1bGFyIGV4cHJlc3Npb24gb3IgYm90aC4KKworVGhlIG5hbWUsIGlmIGRlZmluZWQsIGlzIHVzZWQgdG8gYnVpbGQgVVJMcyBmb3IgdGhlIHJvdXRlLiBXaGVuIGl0IGlzIHNldCwKK3RoZSB2YWx1ZSBvZiB0aGUgbWF0Y2hlZCByZWd1bGFyIGV4cHJlc3Npb24gaXMgcGFzc2VkIGFzIGtleXdvcmQgYXJndW1lbnQgdG8KK3RoZSBoYW5kbGVyLiBPdGhlcndpc2UgaXQgaXMgcGFzc2VkIGFzIHBvc2l0aW9uYWwgYXJndW1lbnQuCisKK0lmIG9ubHkgdGhlIG5hbWUgaXMgc2V0LCBpdCB3aWxsIG1hdGNoIGFueXRoaW5nIGV4Y2VwdCBhIHNsYXNoLiBTbyB0aGVzZQorcm91dGVzIGFyZSBlcXVpdmFsZW50OjoKKworICAgIFJvdXRlKCcvPHVzZXJfaWQ+L3NldHRpbmdzJywgaGFuZGxlcj1TZXR0aW5nc0hhbmRsZXIsIG5hbWU9J3VzZXItc2V0dGluZ3MnKQorICAgIFJvdXRlKCcvPHVzZXJfaWQ6W14vXSs+L3NldHRpbmdzJywgaGFuZGxlcj1TZXR0aW5nc0hhbmRsZXIsIG5hbWU9J3VzZXItc2V0dGluZ3MnKQorCisuLiBub3RlOjoKKyAgIFRoZSBoYW5kbGVyIG9ubHkgcmVjZWl2ZXMgYGAqYXJnc2BgIGlmIG5vIG5hbWVkIHZhcmlhYmxlcyBhcmUKKyAgIHNldC4gT3RoZXJ3aXNlLCB0aGUgaGFuZGxlciBvbmx5IHJlY2VpdmVzIGBgKiprd2FyZ3NgYC4gVGhpcworICAgYWxsb3dzIHlvdSB0byBzZXQgcmVndWxhciBleHByZXNzaW9ucyB0aGF0IGFyZSBub3QgY2FwdHVyZWQ6CisgICBqdXN0IG1peCBuYW1lZCBhbmQgdW5uYW1lZCB2YXJpYWJsZXMgYW5kIHRoZSBoYW5kbGVyIHdpbGwKKyAgIG9ubHkgcmVjZWl2ZSB0aGUgbmFtZWQgb25lcy4KKworLi4gX2d1aWRlLnJvdXRpbmcubGF6eS1oYW5kbGVyczoKKworTGF6eSBoYW5kbGVycworfn5+fn5+fn5+fn5+fgorT25lIGFkZGl0aW9uYWwgZmVhdHVyZSBjb21wYXJlZCB0byB3ZWJhcHAgaXMgdGhhdCB0aGUgaGFuZGxlciBjYW4gYWxzbyBiZQorZGVmaW5lZCBhcyBhIHN0cmluZyBpbiBkb3R0ZWQgbm90YXRpb24gdG8gYmUgbGF6aWx5IGltcG9ydGVkIHdoZW4gbmVlZGVkLgorCitUaGlzIGlzIHVzZWZ1bCB0byBhdm9pZCBsb2FkaW5nIGFsbCBtb2R1bGVzIHdoZW4gdGhlIGFwcCBpcyBpbml0aWFsaXplZDogd2UKK2NhbiBkZWZpbmUgaGFuZGxlcnMgaW4gZGlmZmVyZW50IG1vZHVsZXMgd2l0aG91dCBuZWVkaW5nIHRvIGltcG9ydCBhbGwgb2YgdGhlbQordG8gaW5pdGlhbGl6ZSB0aGUgYXBwLiBUaGlzIGlzIG5vdCBvbmx5IGNvbnZlbmllbnQgYnV0IGFsc28gc3BlZWRzIHVwIHRoZQorYXBwbGljYXRpb24gc3RhcnR1cC4KKworVGhlIHN0cmluZyBtdXN0IGNvbnRhaW4gdGhlIHBhY2thZ2Ugb3IgbW9kdWxlIG5hbWUgYW5kIHRoZSBuYW1lIG9mIHRoZSBoYW5kbGVyCisoYSBjbGFzcyBvciBmdW5jdGlvbiBuYW1lKS4gT3VyIHByZXZpb3VzIGV4YW1wbGUgY291bGQgYmUgcmV3cml0dGVuIHVzaW5nCitzdHJpbmdzIGluc3RlYWQgb2YgaGFuZGxlciBjbGFzc2VzIGFuZCBzcGxpdHRpbmcgb3VyIGhhbmRsZXJzIGluIHR3byBmaWxlcywKK2BgaGFuZGxlcnMucHlgYCBhbmQgYGBwcm9kdWN0cy5weWBgOjoKKworICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgKHInLycsICdoYW5kbGVycy5Ib21lSGFuZGxlcicpLAorICAgICAgICAocicvcHJvZHVjdHMnLCAncHJvZHVjdHMuUHJvZHVjdExpc3RIYW5kbGVyJyksCisgICAgICAgIChyJy9wcm9kdWN0cy8oXGQrKScsICdwcm9kdWN0cy5Qcm9kdWN0SGFuZGxlcicpLAorICAgIF0pCisKK0luIHRoZSBmaXJzdCB0aW1lIHRoYXQgb25lIG9mIHRoZXNlIHJvdXRlcyBtYXRjaGVzLCB0aGUgaGFuZGxlcnMgd2lsbCBiZQorYXV0b21hdGljYWxseSBpbXBvcnRlZCBieSB0aGUgcm91dGluZyBzeXN0ZW0uCisKKy4uIF9ndWlkZS5yb3V0aW5nLmN1c3RvbS1tZXRob2RzOgorCitDdXN0b20gbWV0aG9kcworfn5+fn5+fn5+fn5+fn4KK0EgcGFyYW1ldGVyIGBgaGFuZGxlcl9tZXRob2RgYCBjYW4gZGVmaW5lIHRoZSBtZXRob2Qgb2YgdGhlIGhhbmRsZXIgdGhhdCB3aWxsCitiZSBjYWxsZWQsIGlmIGhhbmRsZXIgaXMgYSBjbGFzcy4gSWYgbm90IGRlZmluZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvCit0cmFuc2xhdGUgdGhlIEhUVFAgbWV0aG9kIHRvIGEgaGFuZGxlciBtZXRob2QsIGFzIGV4cGxhaW5lZCBpbgorOnJlZjpgZ3VpZGUuaGFuZGxlcnNgLiBGb3IgZXhhbXBsZTo6CisKKyAgICB3ZWJhcHAyLlJvdXRlKHInL3Byb2R1Y3RzJywgaGFuZGxlcj0naGFuZGxlcnMuUHJvZHVjdHNIYW5kbGVyJywgbmFtZT0ncHJvZHVjdHMtbGlzdCcsIGhhbmRsZXJfbWV0aG9kPSdsaXN0X3Byb2R1Y3RzJykKKworQWx0ZXJuYXRpdmVseSwgdGhlIGhhbmRsZXIgbWV0aG9kIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBoYW5kbGVyIHN0cmluZywKK3NlcGFyYXRlZCBieSBhIGNvbG9uLiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHByZXZpb3VzIGV4YW1wbGU6OgorCisgICAgd2ViYXBwMi5Sb3V0ZShyJy9wcm9kdWN0cycsIGhhbmRsZXI9J2hhbmRsZXJzLlByb2R1Y3RzSGFuZGxlcjpsaXN0X3Byb2R1Y3RzJywgbmFtZT0ncHJvZHVjdHMtbGlzdCcpCisKKy4uIF9ndWlkZS5yb3V0aW5nLnJlc3RyaWN0aW5nLWh0dHAtbWV0aG9kczoKKworUmVzdHJpY3RpbmcgSFRUUCBtZXRob2RzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KK0lmIG5lZWRlZCwgdGhlIHJvdXRlIGNhbiBkZWZpbmUgYSBzZXF1ZW5jZSBvZiBhbGxvd2VkIEhUVFAgbWV0aG9kcy4gT25seSBpZiB0aGUKK3JlcXVlc3QgbWV0aG9kIGlzIGluIHRoYXQgbGlzdCBvciB0dXBsZSB0aGUgcm91dGUgd2lsbCBtYXRjaC4gSWYgdGhlIG1ldGhvZCBpcworbm90IGFsbG93ZWQsIGFuIGBgSFRUUE1ldGhvZE5vdEFsbG93ZWRgYCBleGNlcHRpb24gaXMgcmFpc2VkIHdpdGggc3RhdHVzIGNvZGUKKzQwNS4gRm9yIGV4YW1wbGU6OgorCisgICAgd2ViYXBwMi5Sb3V0ZShyJy9wcm9kdWN0cycsIGhhbmRsZXI9J2hhbmRsZXJzLlByb2R1Y3RzSGFuZGxlcicsIG5hbWU9J3Byb2R1Y3RzLWxpc3QnLCBtZXRob2RzPVsnR0VUJ10pCisKK1RoaXMgaXMgdXNlZnVsIHdoZW4gdXNpbmcgZnVuY3Rpb25zIGFzIGhhbmRsZXJzLCBvciBhbHRlcm5hdGl2ZSBoYW5kbGVycyB0aGF0Citkb24ndCB0cmFuc2xhdGUgdGhlIEhUVFAgbWV0aG9kIHRvIHRoZSBoYW5kbGVyIG1ldGhvZCBsaWtlIHRoZSBkZWZhdWx0Cis6Y2xhc3M6YHdlYmFwcDIuUmVxdWVzdEhhbmRsZXJgIGRvZXMuCisKKy4uIF9ndWlkZS5yb3V0aW5nLnJlc3RyaWN0aW5nLXVyaS1zY2hlbWVzOgorCitSZXN0cmljdGluZyBVUkkgc2NoZW1lcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KK0xpa2Ugd2l0aCBIVFRQIG1ldGhvZHMsIHlvdSBjYW4gc3BlY2lmeSB0aGUgVVJJIHNjaGVtZXMgYWxsb3dlZCBmb3IgYSByb3V0ZSwKK2lmIG5lZWRlZC4gVGhpcyBpcyB1c2VmdWwgaWYgc29tZSBVUklzIG11c3QgYmUgYWNjZXNzZWQgdXNpbmcgJ2h0dHAnIG9yICdodHRwcycKK29ubHkuIEZvciB0aGlzLCBzZXQgdGhlIGBgc2NoZW1lc2BgIHBhcmFtZXRlciB3aGVuIGRlZmluaW5nIGEgcm91dGU6OgorCisgICAgd2ViYXBwMi5Sb3V0ZShyJy9wcm9kdWN0cycsIGhhbmRsZXI9J2hhbmRsZXJzLlByb2R1Y3RzSGFuZGxlcicsIG5hbWU9J3Byb2R1Y3RzLWxpc3QnLCBzY2hlbWVzPVsnaHR0cHMnXSkKKworVGhlIGFib3ZlIHJvdXRlIHdpbGwgb25seSBtYXRjaCBpZiB0aGUgVVJJIHNjaGVtZSBpcyAnaHR0cHMnLgorCisKKy4uIF9ndWlkZS5yb3V0aW5nLmRvbWFpbi1hbmQtc3ViZG9tYWluLXJvdXRpbmc6CisKK0RvbWFpbiBhbmQgc3ViZG9tYWluIHJvdXRpbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSByb3V0aW5nIHN5c3RlbSBjYW4gYWxzbyBoYW5kbGUgZG9tYWluIGFuZCBzdWJkb21haW4gbWF0Y2hpbmcuIFRoaXMgaXMgZG9uZQordXNpbmcgYSBzcGVjaWFsIHJvdXRlIGNsYXNzIHByb3ZpZGVkIGluIHRoZSA6bW9kOmB3ZWJhcHAyX2V4dHJhcy5yb3V0ZXNgCittb2R1bGU6IHRoZSA6Y2xhc3M6YHdlYmFwcDJfZXh0cmFzLnJvdXRlcy5Eb21haW5Sb3V0ZWAuIEl0IGlzIGluaXRpYWxpemVkIHdpdGgKK2EgcGF0dGVybiB0byBtYXRjaCB0aGUgY3VycmVudCBzZXJ2ZXIgbmFtZSBhbmQgYSBsaXN0IG9mIG5lc3RlZAorOmNsYXNzOmB3ZWJhcHAyLlJvdXRlYCBpbnN0YW5jZXMgdGhhdCB3aWxsIG9ubHkgYmUgdGVzdGVkIGlmIHRoZSBkb21haW4gb3IKK3N1YmRvbWFpbiBtYXRjaGVzLgorCitGb3IgZXhhbXBsZSwgdG8gcmVzdHJpY3Qgcm91dGVzIHRvIGEgc3ViZG9tYWluIG9mIHRoZSBhcHBzcG90IGRvbWFpbjo6CisKKyAgICBpbXBvcnQgd2ViYXBwMgorICAgIGZyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHJvdXRlcworCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICByb3V0ZXMuRG9tYWluUm91dGUoJzxzdWJkb21haW4+LmFwcC1pZC5hcHBzcG90LmNvbScsIFsKKyAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBoYW5kbGVyPVN1YmRvbWFpbkhvbWVIYW5kbGVyLCBuYW1lPSdzdWJkb21haW4taG9tZScpLAorICAgICAgICBdKSwKKyAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIGhhbmRsZXI9SG9tZUhhbmRsZXIsIG5hbWU9J2hvbWUnKSwKKyAgICBdKQorCitJbiB0aGUgZXhhbXBsZSBhYm92ZSwgd2UgZGVmaW5lIGEgdGVtcGxhdGUgYGAnPHN1YmRvbWFpbj4uYXBwLWlkLmFwcHNwb3QuY29tJ2BgCitmb3IgdGhlIGRvbWFpbiBtYXRjaGluZy4gV2hlbiBhIHJlcXVlc3QgY29tZXMgaW4sIG9ubHkgaWYgdGhlIHJlcXVlc3Qgc2VydmVyCituYW1lIG1hdGNoZXMgdGhhdCBwYXR0ZXJuLCB0aGUgbmVzdGVkIHJvdXRlIHdpbGwgYmUgdGVzdGVkLiBPdGhlcndpc2UgdGhlCityb3V0aW5nIHN5c3RlbSB3aWxsIHRlc3QgdGhlIG5leHQgcm91dGUgdW50aWwgb25lIG1hdGNoZXMuIFNvIHRoZSBmaXJzdCByb3V0ZQord2l0aCBwYXRoIGBgL2BgIHdpbGwgb25seSBtYXRjaCB3aGVuIGEgc3ViZG9tYWluIG9mIHRoZSBgYGFwcC1pZC5hcHBzcG90LmNvbWBgCitkb21haW4gaXMgYWNjZXNzZWQuIE90aGVyd2lzZSB0aGUgc2Vjb25kIHJvdXRlIHdpdGggcGF0aCBgYC9gYCB3aWxsIGJlIHVzZWQuCisKK1RoZSB0ZW1wbGF0ZSBmb2xsb3dzIHRoZSBzYW1lIHN5bnRheCB1c2VkIGJ5IDpjbGFzczpgd2ViYXBwMi5Sb3V0ZWAgYW5kCittdXN0IGRlZmluZSBuYW1lZCBncm91cHMgaWYgYW55IHZhbHVlIG11c3QgYmUgYWRkZWQgdG8gdGhlIG1hdGNoIHJlc3VsdHMuCitJbiB0aGUgZXhhbXBsZSBhYm92ZSwgYW4gZXh0cmEgYHN1YmRvbWFpbmAga2V5d29yZCBpcyBwYXNzZWQgdG8gdGhlIGhhbmRsZXIsCitidXQgaWYgdGhlIHJlZ2V4IGRpZG4ndCBkZWZpbmUgYW55IG5hbWVkIGdyb3Vwcywgbm90aGluZyB3b3VsZCBiZSBhZGRlZC4KKworTWF0Y2hpbmcgb25seSB3d3csIG9yIGFueXRoaW5nIGV4Y2VwdCB3d3cKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CitBIGNvbW1vbiBuZWVkIGlzIHRvIHNldCBzb21lIHJvdXRlcyBmb3IgdGhlIG1haW4gc3ViZG9tYWluIChgYHd3d2BgKSBhbmQKK2RpZmZlcmVudCByb3V0ZXMgZm9yIG90aGVyIHN1Ym1haW5zLiBUaGUgd2ViYXBwMiByb3V0aW5nIHN5c3RlbSBjYW4gaGFuZGxlCit0aGlzIGVhc2lseS4KKworVG8gbWF0Y2ggb25seSB0aGUgYGB3d3dgYCBzdWJkb21haW4sIHNpbXBsZSBzZXQgdGhlIGRvbWFpbiB0ZW1wbGF0ZSB0byBhIGZpeGVkCit2YWx1ZTo6CisKKyAgICByb3V0ZXMuRG9tYWluUm91dGUoJ3d3dy5teWRvbWFpbi5jb20nLCBbCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBoYW5kbGVyPUhvbWVIYW5kbGVyLCBuYW1lPSdob21lJyksCisgICAgXSkKKworVG8gbWF0Y2ggYW55IHN1YmRvbWFpbiBleGNlcHQgdGhlIGBgd3d3YGAgc3ViZG9tYWluLCBzZXQgYSByZWd1bGFyIGV4cHJlc3Npb24KK3RoYXQgZXhjbHVkZXMgYGB3d3dgYDo6CisKKyAgICByb3V0ZXMuRG9tYWluUm91dGUocic8c3ViZG9tYWluOig/IXd3d1wuKVteLl0rPi5teWRvbWFpbi5jb20nLCBbCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBoYW5kbGVyPUhvbWVIYW5kbGVyLCBuYW1lPSdob21lJyksCisgICAgXSkKKworQW55IHN1YmRvbWFpbiB0aGF0IG1hdGNoZXMgYW5kIGlzIG5vdCBgYHd3d2BgIHdpbGwgYmUgcGFzc2VkIGFzIGEgcGFyYW1ldGVyCitgYHN1YmRvbWFpbmBgIHRvIHRoZSBoYW5kbGVyLgorCitTaW1pbGFybHksIHlvdSBjYW4gcmVzdHJpY3QgbWF0Y2hlcyB0byB0aGUgbWFpbiBgYGFwcHNwb3RgYCBkb21haW4gKipvcioqCithIGBgd3d3YGAgZG9tYWluIGZyb20gYSBjdXN0b20gZG9tYWluOjoKKworICAgIHJvdXRlcy5Eb21haW5Sb3V0ZShyJzw6KGFwcC1pZFwuYXBwc3BvdFwuY29tfHd3d1wubXlkb21haW5cLmNvbSk+JywgWworICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvJywgaGFuZGxlcj1Ib21lSGFuZGxlciwgbmFtZT0naG9tZScpLAorICAgIF0pCisKK0FuZCB0aGVuIGhhdmUgYSByb3V0ZSB0aGF0IG1hdGNoZXMgc3ViZG9tYWlucyBvZiB0aGUgbWFpbiBgYGFwcHNwb3RgYCBkb21haW4KKyoqb3IqKiBmcm9tIGEgY3VzdG9tIGRvbWFpbiwgZXhjZXB0IGBgd3d3YGA6OgorCisgICAgcm91dGVzLkRvbWFpblJvdXRlKHInPHN1YmRvbWFpbjooPyF3d3cpW14uXSs+Ljw6KGFwcC1pZFwuYXBwc3BvdFwuY29tfG15ZG9tYWluXC5jb20pPicsIFsKKyAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIGhhbmRsZXI9SG9tZUhhbmRsZXIsIG5hbWU9J2hvbWUnKSwKKyAgICBdKQorCisKKy4uIF9ndWlkZS5yb3V0aW5nLnBhdGgtcHJlZml4LXJvdXRlczoKKworUGF0aCBwcmVmaXggcm91dGVzCistLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSA6bW9kOmB3ZWJhcHAyX2V4dHJhcy5yb3V0ZXNgIHByb3ZpZGVzIGEgY2xhc3MgdG8gd3JhcCByb3V0ZXMgdGhhdCBzdGFydAord2l0aCBhIGNvbW1vbiBwYXRoOiB0aGUgOm1vZDpgd2ViYXBwMl9leHRyYXMucm91dGVzLlBhdGhQcmVmaXhSb3V0ZWAuCitUaGUgaW50ZW50aW9uIGlzIHRvIGF2b2lkIHJlcGV0aXRpb24gd2hlbiBkZWZpbmluZyByb3V0ZXMuCisKK0ZvciBleGFtcGxlLCBpbWFnaW5lIHdlIGhhdmUgdGhlc2Ugcm91dGVzOjoKKworICAgIGFwcCA9IFdTR0lBcHBsaWNhdGlvbihbCisgICAgICAgIFJvdXRlKCcvdXNlcnMvPHVzZXI6XHcrPi8nLCBVc2VyT3ZlcnZpZXdIYW5kbGVyLCAndXNlci1vdmVydmlldycpLAorICAgICAgICBSb3V0ZSgnL3VzZXJzLzx1c2VyOlx3Kz4vcHJvZmlsZScsIFVzZXJQcm9maWxlSGFuZGxlciwgJ3VzZXItcHJvZmlsZScpLAorICAgICAgICBSb3V0ZSgnL3VzZXJzLzx1c2VyOlx3Kz4vcHJvamVjdHMnLCBVc2VyUHJvamVjdHNIYW5kbGVyLCAndXNlci1wcm9qZWN0cycpLAorICAgIF0pCisKK1dlIGNvdWxkIHJlZmFjdG9yIHRoZW0gdG8gcmV1c2UgdGhlIGNvbW1vbiBwYXRoIHByZWZpeDo6CisKKyAgICBpbXBvcnQgd2ViYXBwMgorICAgIGZyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHJvdXRlcworCisgICAgYXBwID0gV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgcm91dGVzLlBhdGhQcmVmaXhSb3V0ZSgnL3VzZXJzLzx1c2VyOlx3Kz4nLCBbCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvJywgVXNlck92ZXJ2aWV3SGFuZGxlciwgJ3VzZXItb3ZlcnZpZXcnKSwKKyAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9wcm9maWxlJywgVXNlclByb2ZpbGVIYW5kbGVyLCAndXNlci1wcm9maWxlJyksCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvcHJvamVjdHMnLCBVc2VyUHJvamVjdHNIYW5kbGVyLCAndXNlci1wcm9qZWN0cycpLAorICAgICAgICBdKSwKKyAgICBdKQorCitUaGlzIGlzIG5vdCBvbmx5IGNvbnZlbmllbnQsIGJ1dCBhbHNvIHBlcmZvcm1zIGJldHRlcjogdGhlIG5lc3RlZCByb3V0ZXMKK3dpbGwgb25seSBiZSB0ZXN0ZWQgaWYgdGhlIHBhdGggcHJlZml4IG1hdGNoZXMuCisKKworLi4gX2d1aWRlLnJvdXRpbmcub3RoZXItcHJlZml4LXJvdXRlczoKKworT3RoZXIgcHJlZml4IHJvdXRlcworLS0tLS0tLS0tLS0tLS0tLS0tLQorVGhlIDptb2Q6YHdlYmFwcDJfZXh0cmFzLnJvdXRlc2AgaGFzIG90aGVyIGNvbnZlbmllbmNlIGNsYXNzZXMgdGhhdCBhY2NlcHQKK25lc3RlZCByb3V0ZXMgd2l0aCBhIGNvbW1vbiBhdHRyaWJ1dGUgcHJlZml4OgorCistIDptb2Q6YHdlYmFwcDJfZXh0cmFzLnJvdXRlcy5IYW5kbGVyUHJlZml4Um91dGVgOiByZWNlaXZlcyBhIGhhbmRsZXIgbW9kdWxlCisgIHByZWZpeCBpbiBkb3R0ZWQgbm90YXRpb24gYW5kIGEgbGlzdCBvZiByb3V0ZXMgdGhhdCB1c2UgdGhhdCBtb2R1bGUuCistIDptb2Q6YHdlYmFwcDJfZXh0cmFzLnJvdXRlcy5OYW1lUHJlZml4Um91dGVgOiByZWNlaXZlcyBhIGhhbmRsZXIgbmFtZQorICBwcmVmaXggYW5kIGEgbGlzdCBvZiByb3V0ZXMgdGhhdCBzdGFydCB3aXRoIHRoYXQgbmFtZS4KKworCisuLiBfZ3VpZGUucm91dGluZy5idWlsZGluZy11cmlzOgorCitCdWlsZGluZyBVUklzCistLS0tLS0tLS0tLS0tCitCZWNhdXNlIG91ciByb3V0ZXMgaGF2ZSBhIGBgbmFtZWBgLCB3ZSBjYW4gdXNlIHRoZSByb3V0aW5nIHN5c3RlbSB0byBidWlsZAorVVJJcyB3aGVuZXZlciB3ZSBuZWVkIHRvIHJlZmVyZW5jZSB0aG9zZSByZXNvdXJjZXMgaW5zaWRlIHRoZSBhcHBsaWNhdGlvbi4KK1RoaXMgaXMgZG9uZSB1c2luZyB0aGUgZnVuY3Rpb24gOmZ1bmM6YHdlYmFwcDIudXJpX2ZvcmAgb3IgdGhlIG1ldGhvZAorOm1ldGg6YHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIudXJpX2ZvcmAgaW5zaWRlIGEgaGFuZGxlciwgb3IgY2FsbGluZworOm1ldGg6YHdlYmFwcDIuUm91dGVyLmJ1aWxkYCBkaXJlY3RseSAoYSBgYFJvdXRlcmBgIGluc3RhbmNlIGlzIHNldCBhcyBhbgorYXR0cmlidXRlIGBgcm91dGVyYGAgaW4gdGhlIFdTR0kgYXBwbGljYXRpb24pLgorCitGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgdGhlc2Ugcm91dGVzIGRlZmluZWQgZm9yIHRoZSBhcHBsaWNhdGlvbjo6CisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBoYW5kbGVyPSdoYW5kbGVycy5Ib21lSGFuZGxlcicsIG5hbWU9J2hvbWUnKSwKKyAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL3dpa2knLCBoYW5kbGVyPVdpa2lIYW5kbGVyLCBuYW1lPSd3aWtpJyksCisgICAgICAgIHdlYmFwcDIuUm91dGUoJy93aWtpLzxwYWdlPicsIGhhbmRsZXI9V2lraUhhbmRsZXIsIG5hbWU9J3dpa2ktcGFnZScpLAorICAgIF0pCisKK0hlcmUgYXJlIHNvbWUgZXhhbXBsZXMgb2YgaG93IHRvIGdlbmVyYXRlIFVSSXMgZm9yIHRoZW06OgorCisgICAgIyAvCisgICAgdXJpID0gdXJpX2ZvcignaG9tZScpCisgICAgIyBodHRwOi8vbG9jYWxob3N0OjgwODAvCisgICAgdXJpID0gdXJpX2ZvcignaG9tZScsIF9mdWxsPVRydWUpCisgICAgIyAvd2lraQorICAgIHVyaSA9IHVyaV9mb3IoJ3dpa2knKQorICAgICMgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3dpa2kKKyAgICB1cmkgPSB1cmlfZm9yKCd3aWtpJywgX2Z1bGw9VHJ1ZSkKKyAgICAjIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC93aWtpI215LWhlYWRpbmcKKyAgICB1cmkgPSB1cmlfZm9yKCd3aWtpJywgX2Z1bGw9VHJ1ZSwgX2ZyYWdtZW50PSdteS1oZWFkaW5nJykKKyAgICAjIC93aWtpL215LWZpcnN0LXBhZ2UKKyAgICB1cmkgPSB1cmlfZm9yKCd3aWtpLXBhZ2UnLCBwYWdlPSdteS1maXJzdC1wYWdlJykKKyAgICAjIC93aWtpL215LWZpcnN0LXBhZ2U/Zm9ybWF0PWF0b20KKyAgICB1cmkgPSB1cmlfZm9yKCd3aWtpLXBhZ2UnLCBwYWdlPSdteS1maXJzdC1wYWdlJywgZm9ybWF0PSdhdG9tJykKKworVmFyaWFibGVzIGFyZSBwYXNzZWQgYXMgcG9zaXRpb25hbCBvciBrZXl3b3JkIGFyZ3VtZW50cyBhbmQgYXJlIHJlcXVpcmVkIGlmCit0aGUgcm91dGUgZGVmaW5lcyB0aGVtLiBLZXl3b3JkIGFyZ3VtZW50cyB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgcm91dGUKK2FyZSBhZGRlZCB0byB0aGUgVVJJIGFzIGEgcXVlcnkgc3RyaW5nLgorCitBbHNvLCB3aGVuIGNhbGxpbmcgYGB1cmlfZm9yKClgYCwgYSBmZXcga2V5d29yZHMgaGF2ZSBzcGVjaWFsIG1lYW5pbmc6CisKK19mdWxsCisgIElmIFRydWUsIGJ1aWxkcyBhbiBhYnNvbHV0ZSBVUkkuCitfc2NoZW1lCisgIFVSSSBzY2hlbWUsIGUuZy4sIGBodHRwYCBvciBgaHR0cHNgLiBJZiBkZWZpbmVkLCBhbiBhYnNvbHV0ZSBVUkkgaXMgYWx3YXlzCisgIHJldHVybmVkLgorX25ldGxvYworICBOZXR3b3JrIGxvY2F0aW9uLCBlLmcuLCBgd3d3Lmdvb2dsZS5jb21gLiBJZiBkZWZpbmVkLCBhbiBhYnNvbHV0ZSBVUkkgaXMKKyAgYWx3YXlzIHJldHVybmVkLgorX2ZyYWdtZW50CisgIElmIHNldCwgYXBwZW5kcyBhIGZyYWdtZW50IChvciAiYW5jaG9yIikgdG8gdGhlIGdlbmVyYXRlZCBVUkkuCisKK0NoZWNrIDptZXRoOmB3ZWJhcHAyLlJvdXRlci5idWlsZGAgaW4gdGhlIEFQSSByZWZlcmVuY2UgZm9yIGEgY29tcGxldGUKK2V4cGxhbmF0aW9uIG9mIHRoZSBwYXJhbWV0ZXJzIHVzZWQgdG8gYnVpbGQgVVJJcy4KKworCitSb3V0aW5nIGF0dHJpYnV0ZXMgaW4gdGhlIHJlcXVlc3Qgb2JqZWN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUaGUgcGFyYW1ldGVycyBmcm9tIHRoZSBtYXRjaGVkIHJvdXRlIGFyZSBzZXQgYXMgYXR0cmlidXRlcyBvZiB0aGUgcmVxdWVzdAorb2JqZWN0IHdoZW4gYSByb3V0ZSBtYXRjaGVzLiBUaGV5IGFyZSBgYHJlcXVlc3Qucm91dGVfYXJnc2BgLCBmb3IgcG9zaXRpb25hbAorYXJndW1lbnRzLCBhbmQgYGByZXF1ZXN0LnJvdXRlX2t3YXJnc2BgLCBmb3Iga2V5d29yZCBhcmd1bWVudHMuCisKK1RoZSBtYXRjaGVkIHJvdXRlIG9iamVjdCBpcyBhbHNvIGF2YWlsYWJsZSBhcyBgYHJlcXVlc3Qucm91dGVgYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvZ3VpZGUvdGVzdGluZy5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL3Rlc3RpbmcucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMjA2YWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2d1aWRlL3Rlc3RpbmcucnN0CkBAIC0wLDAgKzEsMTE4IEBACisuLiBfZ3VpZGUudGVzdGluZzoKKworVW5pdCB0ZXN0aW5nCis9PT09PT09PT09PT0KK1RoYW5rcyB0byBgV2ViT2JgXywgd2ViYXBwMiBpcyB2ZXJ5IHRlc3RhYmxlLiBUZXN0aW5nIGEgaGFuZGxlciBpcyBhIG1hdHRlcgorb2YgYnVpbGRpbmcgYSBjdXN0b20gYGBSZXF1ZXN0YGAgb2JqZWN0IGFuZCBjYWxsaW5nIGBgZ2V0X3Jlc3BvbnNlKClgYCBvbiBpdAorcGFzc2luZyB0aGUgV1NHSSBhcHBsaWNhdGlvbi4KKworTGV0J3Mgc2VlIGFuIGV4YW1wbGUuIEZpcnN0IGRlZmluZSBhIHNpbXBsZSAnSGVsbG8gd29ybGQnIGhhbmRsZXIgdG8gYmUKK3Rlc3RlZDo6CisKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgY2xhc3MgSGVsbG9IYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgnSGVsbG8sIHdvcmxkIScpCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lhcHBsaWNhdGlvbihbKCcvJywgSGVsbG9IYW5kbGVyKV0pCisKKyAgICBkZWYgbWFpbigpOgorICAgICAgICBhcHAucnVuKCkKKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIG1haW4oKQorCitUbyB0ZXN0IGlmIHRoaXMgaGFuZGxlciByZXR1cm5zIHRoZSBjb3JyZWN0IGBgJ0hlbGxvLCB3b3JsZCEnYGAgcmVzcG9uc2UsIHdlCitidWlsZCBhIHJlcXVlc3Qgb2JqZWN0IHVzaW5nIGBgUmVxdWVzdC5ibGFuaygpYGAgYW5kIGNhbGwgYGBnZXRfcmVzcG9uc2UoKWBgCitvbiBpdDo6CisKKyAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICBpbXBvcnQgd2ViYXBwMgorCisgICAgIyBmcm9tIHRoZSBhcHAgbWFpbi5weQorICAgIGltcG9ydCBtYWluCisKKyAgICBjbGFzcyBUZXN0SGFuZGxlcnModW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgorICAgICAgICAgICAjIEJ1aWxkIGEgcmVxdWVzdCBvYmplY3QgcGFzc2luZyB0aGUgVVJJIHBhdGggdG8gYmUgdGVzdGVkLgorICAgICAgICAgICAjIFlvdSBjYW4gYWxzbyBwYXNzIGhlYWRlcnMsIHF1ZXJ5IGFyZ3VtZW50cyBldGMuCisgICAgICAgICAgIHJlcXVlc3QgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICAgICAjIEdldCBhIHJlc3BvbnNlIGZvciB0aGF0IHJlcXVlc3QuCisgICAgICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdC5nZXRfcmVzcG9uc2UobWFpbi5hcHApCisKKyAgICAgICAgICAgIyBMZXQncyBjaGVjayBpZiB0aGUgcmVzcG9uc2UgaXMgY29ycmVjdC4KKyAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfaW50LCAyMDApCisgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2UuYm9keSwgJ0hlbGxvLCB3b3JsZCEnKQorCitUbyB0ZXN0IGRpZmZlcmVudCBIVFRQIG1ldGhvZHMsIGp1c3QgY2hhbmdlIHRoZSByZXF1ZXN0IG9iamVjdDo6CisKKyAgICByZXF1ZXN0ID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICByZXF1ZXN0Lm1ldGhvZCA9ICdQT1NUJworICAgIHJlc3BvbnNlID0gcmVxdWVzdC5nZXRfcmVzcG9uc2UobWFpbi5hcHApCisKKyAgICAjIE91ciBoYW5kbGVyIGRvZXNuJ3QgaW1wbGVtZW50IHBvc3QoKSwgc28gdGhpcyByZXNwb25zZSB3aWxsIGhhdmUgYQorICAgICMgc3RhdHVzIGNvZGUgNDA1LgorICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2ludCwgNDA1KQorCisKK1JlcXVlc3QuYmxhbmsoKQorLS0tLS0tLS0tLS0tLS0tCitgYFJlcXVlc3QuYmxhbmsocGF0aCwgZW52aXJvbj1Ob25lLCBiYXNlX3VybD1Ob25lLCBoZWFkZXJzPU5vbmUsIFBPU1Q9Tm9uZSwgKiprd2FyZ3MpYGAKK2lzIGEgY2xhc3MgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIG5ldyByZXF1ZXN0IG9iamVjdCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gSXQKK3JlY2VpdmVzIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKKworcGF0aAorICBBIFVSSSBwYXRoLCB1cmxlbmNvZGVkLiBUaGUgcGF0aCB3aWxsIGJlY29tZSBwYXRoX2luZm8sIHdpdGggYW55IHF1ZXJ5CisgIHN0cmluZyBzcGxpdCBvZmYgYW5kIHVzZWQuCitlbnZpcm9uCisgIEFuIGVudmlyb24gZGljdGlvbmFyeS4KK2Jhc2VfdXJsCisgIElmIGRlZmluZWQsIHdzZ2kudXJsX3NjaGVtZSwgSFRUUF9IT1NUIGFuZCBTQ1JJUFRfTkFNRSB3aWxsIGJlIGZpbGxlZCBpbgorICBmcm9tIHRoaXMgdmFsdWUuCitoZWFkZXJzCisgIEEgbGlzdCBvZiBgYChoZWFkZXJfbmFtZSwgdmFsdWUpYGAgdHVwbGVzIGZvciB0aGUgcmVxdWVzdCBoZWFkZXJzLgorUE9TVAorICBBIGRpY3Rpb25hcnkgb2YgUE9TVCBkYXRhIHRvIGJlIGVuY29kZWQsIG9yIGEgdXJsZW5jb2RlZCBzdHJpbmcuIFRoaXMgaXMgYQorICBzaG9ydGN1dCB0byBzZXQgUE9TVCBkYXRhIGluIHRoZSBlbnZpcm9uLiBXaGVuIHNldCwgdGhlIEhUVFAgbWV0aG9kIGlzIHNldAorICB0byAnUE9TVCcgYW5kIHRoZSBDT05URU5UX1RZUEUgaXMgc2V0IHRvICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLgora3dhcmdzCisgIEV4dHJhIGtleXdvcmQgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byBgYFJlcXVlc3QuX19pbml0X18oKWBgLgorCitBbGwgbmVjZXNzYXJ5IGtleXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgZW52aXJvbiwgYnV0IHRoZSB2YWx1ZXMgeW91IHBhc3MgaW4KK3dpbGwgdGFrZSBwcmVjZWRlbmNlLgorCisKK2FwcC5nZXRfcmVzcG9uc2UoKQorLS0tLS0tLS0tLS0tLS0tLS0tCitXZSBjYW4gYWxzbyBnZXQgYSByZXNwb25zZSBkaXJlY3RseSBmcm9tIHRoZSBXU0dJIGFwcGxpY2F0aW9uLCBjYWxsaW5nCitgYGFwcC5nZXRfcmVzcG9uc2UoKWBgLiBUaGlzIGlzIGEgY29udmVuaWVuY2UgdG8gdGVzdCB0aGUgYXBwLiBJdCByZWNlaXZlcwordGhlIHNhbWUgcGFyYW1ldGVycyBhcyBgYFJlcXVlc3QuYmxhbmsoKWBgIHRvIGJ1aWxkIGEgcmVxdWVzdCBhbmQgY2FsbCB0aGUKK2FwcGxpY2F0aW9uLCByZXR1cm5pbmcgdGhlIHJlc3VsdGluZyByZXNwb25zZTo6CisKKyAgICBjbGFzcyBIZWxsb0hhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKCdIZWxsbywgd29ybGQhJykKKworICAgIGFwcCA9IHdlYmFwcDIuV1NHSWFwcGxpY2F0aW9uKFsoJy8nLCBIZWxsb0hhbmRsZXIpXSkKKworICAgICMgVGVzdCB0aGUgYXBwLCBwYXNzaW5nIHBhcmFtZXRlcnMgdG8gYnVpbGQgYSByZXF1ZXN0LgorICAgIHJlc3BvbnNlID0gYXBwLmdldF9yZXNwb25zZSgnLycpCisgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19pbnQgPT0gMjAwCisgICAgYXNzZXJ0IHJlc3BvbnNlLmJvZHkgPT0gJ0hlbGxvLCB3b3JsZCEnCisKK1Rlc3RpbmcgaGFuZGxlcnMgY291bGQgbm90IGJlIGVhc2llci4gQ2hlY2sgdGhlIGBXZWJPYmBfIGRvY3VtZW50YXRpb24gZm9yIG1vcmUKK2luZm9ybWF0aW9uIGFib3V0IHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3RzLgorCisKK1Rlc3RpbmcgQXBwIEVuZ2luZSBzZXJ2aWNlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitJZiB5b3UncmUgdXNpbmcgQXBwIEVuZ2luZSBhbmQgbmVlZCB0byB0ZXN0IGFuIGFwcGxpY2F0aW9uIHRoYXQgdXNlcyBEYXRhc3RvcmUsCitNZW1jYWNoZSBvciBvdGhlciBBcHAgRW5naW5lIHNlcnZpY2VzLCByZWFkCitgTG9jYWwgVW5pdCBUZXN0aW5nIGZvciBQeXRob24gPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL3Rvb2xzL2xvY2FsdW5pdHRlc3RpbmcuaHRtbD5gXworaW4gdGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb24uIFRoZSBBcHAgRW5naW5lIFNESyBwcm92aWRlcyB0aGUgbW9kdWxlCitgYGdvb2dsZS5hcHBlbmdpbmUuZXh0LnRlc3RiZWRgYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldHVwIGFsbCB0aGUgbmVjZXNzYXJ5CitzZXJ2aWNlIHN0dWJzIGZvciB0ZXN0aW5nLgorCisKKy4uIF9XZWJPYjogaHR0cDovL2RvY3Mud2Vib2Iub3JnLwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9pbmRleC5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjkzZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9pbmRleC5yc3QKQEAgLTAsMCArMSwyMDggQEAKKy4uIF9pbmRleDoKKworLi4gd2ViYXBwMiBkb2N1bWVudGF0aW9uIG1hc3RlciBmaWxlLCBjcmVhdGVkIGJ5CisgICBzcGhpbngtcXVpY2tzdGFydCBvbiBTYXQgSnVsIDMxIDEwOjQxOjM3IDIwMTAuCisgICBZb3UgY2FuIGFkYXB0IHRoaXMgZmlsZSBjb21wbGV0ZWx5IHRvIHlvdXIgbGlraW5nLCBidXQgaXQgc2hvdWxkIGF0IGxlYXN0CisgICBjb250YWluIHRoZSByb290IGB0b2N0cmVlYCBkaXJlY3RpdmUuCisKK1dlbGNvbWUgdG8gd2ViYXBwMiEKKz09PT09PT09PT09PT09PT09PT0KK2B3ZWJhcHAyYF8gaXMgYSBsaWdodHdlaWdodCBQeXRob24gd2ViIGZyYW1ld29yayBjb21wYXRpYmxlIHdpdGggR29vZ2xlIEFwcAorRW5naW5lJ3MgYHdlYmFwcGBfLgorCit3ZWJhcHAyIGlzIGEgYHNpbXBsZWBfLiBpdCBmb2xsb3dzIHRoZSBzaW1wbGljaXR5IG9mIHdlYmFwcCwgYnV0IGltcHJvdmVzCitpdCBpbiBzb21lIHdheXM6IGl0IGFkZHMgYmV0dGVyIFVSSSByb3V0aW5nIGFuZCBleGNlcHRpb24gaGFuZGxpbmcsIGEgZnVsbAorZmVhdHVyZWQgcmVzcG9uc2Ugb2JqZWN0IGFuZCBhIG1vcmUgZmxleGlibGUgZGlzcGF0Y2hpbmcgbWVjaGFuaXNtLgorCit3ZWJhcHAyIGFsc28gb2ZmZXJzIHRoZSBwYWNrYWdlIDpyZWY6YHdlYmFwcDJfZXh0cmFzIDxpbmRleC5hcGktcmVmZXJlbmNlLXdlYmFwcDItZXh0cmFzPmAKK3dpdGggc2V2ZXJhbCBvcHRpb25hbCB1dGlsaXRpZXM6IHNlc3Npb25zLCBsb2NhbGl6YXRpb24sIGludGVybmF0aW9uYWxpemF0aW9uLAorZG9tYWluIGFuZCBzdWJkb21haW4gcm91dGluZywgc2VjdXJlIGNvb2tpZXMgYW5kIG90aGVycy4KKword2ViYXBwMiBjYW4gYWxzbyBiZSB1c2VkIG91dHNpZGUgb2YgR29vZ2xlIEFwcCBFbmdpbmUsIGluZGVwZW5kZW50bHkgb2YgdGhlCitBcHAgRW5naW5lIFNESy4KKworRm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgaG93IHdlYmFwcDIgaW1wcm92ZXMgd2ViYXBwLCBzZWUgOnJlZjpgZmVhdHVyZXNgLgorCisuLiBub3RlOjoKKyAgIHdlYmFwcDIgaXMgcGFydCBvZiB0aGUgUHl0aG9uIDIuNyBydW50aW1lIHNpbmNlIEFwcCBFbmdpbmUgU0RLIDEuNi4wLgorICAgVG8gaW5jbHVkZSBpdCBpbiB5b3VyIGFwcCBzZWUKKyAgIGBDb25maWd1cmluZyBMaWJyYXJpZXMgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL3B5dGhvbjI3L3VzaW5nMjcuaHRtbCNDb25maWd1cmluZ19MaWJyYXJpZXM+YF8uCisKKworUXVpY2sgbGlua3MKKy0tLS0tLS0tLS0tCistIGBEb3dubG9hZHMgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJhcHAtaW1wcm92ZWQvZG93bmxvYWRzL2xpc3Q+YF8KKy0gYEdvb2dsZSBDb2RlIFJlcG9zaXRvcnkgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJhcHAtaW1wcm92ZWQvPmBfCistIGBEaXNjdXNzaW9uIEdyb3VwIDxodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXAvd2ViYXBwMj5gXworLSBgQHdlYmFwcDIgPGh0dHBzOi8vdHdpdHRlci5jb20vIyEvd2ViYXBwMj5gXworCisuLiBgU2FtcGxlcyBmb3IgR29vZ2xlIEFwcCBFbmdpbmUgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtYXBwLWVuZ2luZS1zYW1wbGVzLz5gXzoKKyAgIHNldmVyYWwgbWluaS1hcHBzIGZvciB3ZWJhcHAgdGhhdCBzZXJ2ZSBhcyBleGFtcGxlcyAodGhleSBzaG91bGQgd29yayB3aXRoCisgICB3ZWJhcHAyIHRvbykuCisKKworVHV0b3JpYWxzCistLS0tLS0tLS0KKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRoOiAxCisKKyAgIHR1dG9yaWFscy9xdWlja3N0YXJ0LnJzdAorICAgdHV0b3JpYWxzL3F1aWNrc3RhcnQubm9nYWUucnN0CisgICB0dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvaW5kZXgucnN0CisgICB0dXRvcmlhbHMvaTE4bi5yc3QKKworCitHdWlkZQorLS0tLS0KKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRoOiAzCisKKyAgIGd1aWRlL2FwcC5yc3QKKyAgIGd1aWRlL3JvdXRpbmcucnN0CisgICBndWlkZS9oYW5kbGVycy5yc3QKKyAgIGd1aWRlL3JlcXVlc3QucnN0CisgICBndWlkZS9yZXNwb25zZS5yc3QKKyAgIGd1aWRlL2V4Y2VwdGlvbnMucnN0CisgICBndWlkZS90ZXN0aW5nLnJzdAorICAgZ3VpZGUvZXh0cmFzLnJzdAorCisKK0FQSSBSZWZlcmVuY2UgLSB3ZWJhcHAyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDIKKworICAgYXBpL3dlYmFwcDIucnN0CisKKworLi4gX2luZGV4LmFwaS1yZWZlcmVuY2Utd2ViYXBwMi1leHRyYXM6CisKK0FQSSBSZWZlcmVuY2UgLSB3ZWJhcHAyX2V4dHJhcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisuLiB0b2N0cmVlOjoKKyAgIDptYXhkZXB0aDogMQorCisgICBhcGkvd2ViYXBwMl9leHRyYXMvYXV0aC5yc3QKKyAgIGFwaS93ZWJhcHAyX2V4dHJhcy9pMThuLnJzdAorICAgYXBpL3dlYmFwcDJfZXh0cmFzL2ppbmphMi5yc3QKKyAgIGFwaS93ZWJhcHAyX2V4dHJhcy9qc29uLnJzdAorICAgYXBpL3dlYmFwcDJfZXh0cmFzL2xvY2FsLnJzdAorICAgYXBpL3dlYmFwcDJfZXh0cmFzL21ha28ucnN0CisgICBhcGkvd2ViYXBwMl9leHRyYXMvcm91dGVzLnJzdAorICAgYXBpL3dlYmFwcDJfZXh0cmFzL3NlY3VyZWNvb2tpZS5yc3QKKyAgIGFwaS93ZWJhcHAyX2V4dHJhcy9zZWN1cml0eS5yc3QKKyAgIGFwaS93ZWJhcHAyX2V4dHJhcy9zZXNzaW9ucy5yc3QKKworCitBUEkgUmVmZXJlbmNlIC0gd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitNb2R1bGVzIHRoYXQgdXNlIEFwcCBFbmdpbmUgbGlicmFyaWVzIGFuZCBzZXJ2aWNlcyBhcmUgcmVzdHJpY3RlZCB0bworYGB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmVgYC4KKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDEKKworICAgYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19tZW1jYWNoZS5yc3QKKyAgIGFwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvc2Vzc2lvbnNfbmRiLnJzdAorICAgYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9hdXRoL21vZGVscy5yc3QKKyAgIGFwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvdXNlcnMucnN0CisKKworTWlzY2VsYW5lb3VzCistLS0tLS0tLS0tLS0KKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRoOiAxCisKKyAgIGZlYXR1cmVzLnJzdAorCisKK0luZGljZXMgYW5kIHRhYmxlcworLS0tLS0tLS0tLS0tLS0tLS0tCisqIDpyZWY6YGdlbmluZGV4YAorKiA6cmVmOmBtb2RpbmRleGAKKyogOnJlZjpgc2VhcmNoYAorCisKKy4uIE9sZCBkb2NzIGxpbmtpbmcgdG8gbmV3IG9uZXMgb3IgcGFnZXMgd2UgZG9uJ3Qgd2FudCB0byBsaW5rLgorCisuLiB0b2N0cmVlOjoKKyAgIDpoaWRkZW46CisKKyAgIGFwaS9pbmRleC5yc3QKKyAgIGFwaS9leHRyYXMuY29uZmlnLnJzdAorICAgYXBpL2V4dHJhcy5pMThuLnJzdAorICAgYXBpL2V4dHJhcy5qaW5qYTIucnN0CisgICBhcGkvZXh0cmFzLmpzb24ucnN0CisgICBhcGkvZXh0cmFzLmxvY2FsLnJzdAorICAgYXBpL2V4dHJhcy5sb2NhbF9hcHAucnN0CisgICBhcGkvZXh0cmFzLm1ha28ucnN0CisgICBhcGkvZXh0cmFzLnJvdXRlcy5yc3QKKyAgIGFwaS9leHRyYXMuc2VjdXJlY29va2llLnJzdAorICAgYXBpL2V4dHJhcy5zZWN1cml0eS5yc3QKKyAgIGFwaS9leHRyYXMuc2Vzc2lvbnMucnN0CisgICBhcGkvZXh0cmFzLnNlc3Npb25zX21lbWNhY2hlLnJzdAorICAgYXBpL2V4dHJhcy5zZXNzaW9uc19uZGIucnN0CisgICBhcGkvZXh0cmFzLnVzZXJzLnJzdAorICAgZ3VpZGUvaW5kZXgucnN0CisgICB0dXRvcmlhbHMvaW5kZXgucnN0CisgICB0b2RvLnJzdAorCisKK1JlcXVpcmVtZW50cworLS0tLS0tLS0tLS0tCit3ZWJhcHAyIGlzIGNvbXBhdGlibGUgd2l0aCBQeXRob24gMi41IGFuZCBzdXBlcmlvci4gTm8gUHl0aG9uIDMgeWV0LgorCitgV2ViT2JgXyBpcyB0aGUgb25seSBsaWJyYXJ5IHJlcXVpcmVkIGZvciB0aGUgY29yZSBmdW5jdGlvbmFsaXR5LgorCitNb2R1bGVzIGZyb20gd2ViYXBwMl9leHRyYXMgbWF5IHJlcXVpcmUgYWRkaXRpb25hbCBsaWJyYXJpZXMsIGFzIGluZGljYXRlZCBpbgordGhlaXIgZG9jcy4KKworCitDcmVkaXRzCistLS0tLS0tCit3ZWJhcHAyIGlzIGEgc3VwZXJzZXQgb2YgYHdlYmFwcGBfLCBjcmVhdGVkIGJ5IHRoZSBBcHAgRW5naW5lIHRlYW0uCisKK0JlY2F1c2Ugd2ViYXBwMiBpcyBpbnRlbmRlZCB0byBiZSBjb21wYXRpYmxlIHdpdGggd2ViYXBwLCB0aGUgb2ZmaWNpYWwgd2ViYXBwCitkb2N1bWVudGF0aW9uIGlzIHZhbGlkIGZvciB3ZWJhcHAyIHRvby4gUGFydHMgb2YgdGhpcyBkb2N1bWVudGF0aW9uIHdlcmUgcG9ydGVkCitmcm9tIHRoZSBgQXBwIEVuZ2luZSBkb2N1bWVudGF0aW9uYF8sIHdyaXR0ZW4gYnkgdGhlIEFwcCBFbmdpbmUgdGVhbSBhbmQKK2xpY2Vuc2VkIHVuZGVyIHRoZSBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uIDMuMCBMaWNlbnNlLgorCit3ZWJhcHAyIGhhcyBjb2RlIHBvcnRlZCBmcm9tIGBXZXJremV1Z2BfIGFuZCBgVGlwZnlgXy4KKword2ViYXBwMl9leHRyYXMgaGFzIGNvZGUgcG9ydGVkIGZyb20gV2Vya3pldWcsIFRpcGZ5IGFuZCBgVG9ybmFkbyBXZWIgU2VydmVyYF8uCisKK1RoZSBgU3BoaW54YF8gdGhlbWUgbWltaWNzIHRoZSBBcHAgRW5naW5lIGRvY3VtZW50YXRpb24uCisKK1RoaXMgbGlicmFyeSB3YXMgbm90IGNyZWF0ZWQgYW5kIGlzIG5vdCBtYWludGFpbmVkIGJ5IEdvb2dsZS4KKworCitDb250cmlidXRlCistLS0tLS0tLS0tCit3ZWJhcHAyIGlzIGNvbnNpZGVyZWQgc3RhYmxlLCBmZWF0dXJlIGNvbXBsZXRlIGFuZCB3ZWxsIHRlc3RlZCwgYnV0IGlmIHlvdQordGhpbmsgc29tZXRoaW5nIGlzIG1pc3Npbmcgb3IgaXMgbm90IHdvcmtpbmcgd2VsbCwgcGxlYXNlIGRlc2NyaWJlIGl0IGluIG91cgoraXNzdWUgdHJhY2tlcjoKKworICAgIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJhcHAtaW1wcm92ZWQvaXNzdWVzL2xpc3QKKworTGV0IHVzIGtub3cgaWYgeW91IGZvdW5kIGEgYnVnIG9yIGlmIHNvbWV0aGluZyBjYW4gYmUgaW1wcm92ZWQuIE5ldyB0dXRvcmlhbHMKK2FuZCB3ZWJhcHAyX2V4dHJhcyBtb2R1bGVzIGFyZSBhbHNvIHdlbGNvbWUsIGFuZCB0ZXN0cyBvciBkb2N1bWVudGF0aW9uIGFyZQorbmV2ZXIgdG9vIG11Y2guCisKK1RoYW5rcyEKKworCitMaWNlbnNlCistLS0tLS0tCit3ZWJhcHAyIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBgQXBhY2hlIExpY2Vuc2UgMi4wYF8uCisKKworLi4gX3dlYmFwcDogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vdG9vbHMvd2ViYXBwLworLi4gX3dlYmFwcDI6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJhcHAtaW1wcm92ZWQvCisuLiBfc2ltcGxlOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkL3NvdXJjZS9icm93c2Uvd2ViYXBwMi5weQorLi4gX1dlYk9iOiBodHRwOi8vZG9jcy53ZWJvYi5vcmcvCisuLiBfV2Vya3pldWc6IGh0dHA6Ly93ZXJremV1Zy5wb2Nvby5vcmcvCisuLiBfVGlwZnk6IGh0dHA6Ly93d3cudGlwZnkub3JnLworLi4gX1Rvcm5hZG8gV2ViIFNlcnZlcjogaHR0cDovL3d3dy50b3JuYWRvd2ViLm9yZy8KKy4uIF9TcGhpbng6IGh0dHA6Ly9zcGhpbngucG9jb28ub3JnLworLi4gX0FwcCBFbmdpbmUgZG9jdW1lbnRhdGlvbjogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy8KKy4uIF9BcGFjaGUgTGljZW5zZSAyLjA6IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy9tYWtlLmJhdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvbWFrZS5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUwYmFlOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvbWFrZS5iYXQKQEAgLTAsMCArMSwxNTUgQEAKK0BFQ0hPIE9GRgorCitSRU0gQ29tbWFuZCBmaWxlIGZvciBTcGhpbnggZG9jdW1lbnRhdGlvbgorCitpZiAiJVNQSElOWEJVSUxEJSIgPT0gIiIgKAorCXNldCBTUEhJTlhCVUlMRD1zcGhpbngtYnVpbGQKKykKK3NldCBCVUlMRERJUj1fYnVpbGQKK3NldCBBTExTUEhJTlhPUFRTPS1kICVCVUlMRERJUiUvZG9jdHJlZXMgJVNQSElOWE9QVFMlIC4KK2lmIE5PVCAiJVBBUEVSJSIgPT0gIiIgKAorCXNldCBBTExTUEhJTlhPUFRTPS1EIGxhdGV4X3BhcGVyX3NpemU9JVBBUEVSJSAlQUxMU1BISU5YT1BUUyUKKykKKworaWYgIiUxIiA9PSAiIiBnb3RvIGhlbHAKKworaWYgIiUxIiA9PSAiaGVscCIgKAorCTpoZWxwCisJZWNoby5QbGVhc2UgdXNlIGBtYWtlIF48dGFyZ2V0Xj5gIHdoZXJlIF48dGFyZ2V0Xj4gaXMgb25lIG9mCisJZWNoby4gIGh0bWwgICAgICAgdG8gbWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMKKwllY2hvLiAgZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3RvcmllcworCWVjaG8uICBzaW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBmaWxlCisJZWNoby4gIHBpY2tsZSAgICAgdG8gbWFrZSBwaWNrbGUgZmlsZXMKKwllY2hvLiAganNvbiAgICAgICB0byBtYWtlIEpTT04gZmlsZXMKKwllY2hvLiAgaHRtbGhlbHAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBoZWxwIHByb2plY3QKKwllY2hvLiAgcXRoZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgcXRoZWxwIHByb2plY3QKKwllY2hvLiAgZGV2aGVscCAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVscCBwcm9qZWN0CisJZWNoby4gIGVwdWIgICAgICAgdG8gbWFrZSBhbiBlcHViCisJZWNoby4gIGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQgb3IgUEFQRVI9bGV0dGVyCisJZWNoby4gIHRleHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzCisJZWNoby4gIG1hbiAgICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMKKwllY2hvLiAgY2hhbmdlcyAgICB0byBtYWtlIGFuIG92ZXJ2aWV3IG92ZXIgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcworCWVjaG8uICBsaW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5CisJZWNoby4gIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBpZiBlbmFibGVkCisJZ290byBlbmQKKykKKworaWYgIiUxIiA9PSAiY2xlYW4iICgKKwlmb3IgL2QgJSVpIGluICglQlVJTERESVIlXCopIGRvIHJtZGlyIC9xIC9zICUlaQorCWRlbCAvcSAvcyAlQlVJTERESVIlXCoKKwlnb3RvIGVuZAorKQorCitpZiAiJTEiID09ICJodG1sIiAoCisJJVNQSElOWEJVSUxEJSAtYiBodG1sICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2h0bWwKKwllY2hvLgorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAlQlVJTERESVIlL2h0bWwuCisJZ290byBlbmQKKykKKworaWYgIiUxIiA9PSAiZGlyaHRtbCIgKAorCSVTUEhJTlhCVUlMRCUgLWIgZGlyaHRtbCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9kaXJodG1sCisJZWNoby4KKwllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9kaXJodG1sLgorCWdvdG8gZW5kCispCisKK2lmICIlMSIgPT0gInNpbmdsZWh0bWwiICgKKwklU1BISU5YQlVJTEQlIC1iIHNpbmdsZWh0bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvc2luZ2xlaHRtbAorCWVjaG8uCisJZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICVCVUlMRERJUiUvc2luZ2xlaHRtbC4KKwlnb3RvIGVuZAorKQorCitpZiAiJTEiID09ICJwaWNrbGUiICgKKwklU1BISU5YQlVJTEQlIC1iIHBpY2tsZSAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9waWNrbGUKKwllY2hvLgorCWVjaG8uQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBpY2tsZSBmaWxlcy4KKwlnb3RvIGVuZAorKQorCitpZiAiJTEiID09ICJqc29uIiAoCisJJVNQSElOWEJVSUxEJSAtYiBqc29uICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2pzb24KKwllY2hvLgorCWVjaG8uQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIEpTT04gZmlsZXMuCisJZ290byBlbmQKKykKKworaWYgIiUxIiA9PSAiaHRtbGhlbHAiICgKKwklU1BISU5YQlVJTEQlIC1iIGh0bWxoZWxwICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2h0bWxoZWxwCisJZWNoby4KKwllY2hvLkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIF4KKy5oaHAgcHJvamVjdCBmaWxlIGluICVCVUlMRERJUiUvaHRtbGhlbHAuCisJZ290byBlbmQKKykKKworaWYgIiUxIiA9PSAicXRoZWxwIiAoCisJJVNQSElOWEJVSUxEJSAtYiBxdGhlbHAgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvcXRoZWxwCisJZWNoby4KKwllY2hvLkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSBeCisucWhjcCBwcm9qZWN0IGZpbGUgaW4gJUJVSUxERElSJS9xdGhlbHAsIGxpa2UgdGhpczoKKwllY2hvLl4+IHFjb2xsZWN0aW9uZ2VuZXJhdG9yICVCVUlMRERJUiVccXRoZWxwXHdlYmFwcDIucWhjcAorCWVjaG8uVG8gdmlldyB0aGUgaGVscCBmaWxlOgorCWVjaG8uXj4gYXNzaXN0YW50IC1jb2xsZWN0aW9uRmlsZSAlQlVJTERESVIlXHF0aGVscFx3ZWJhcHAyLmdoYworCWdvdG8gZW5kCispCisKK2lmICIlMSIgPT0gImRldmhlbHAiICgKKwklU1BISU5YQlVJTEQlIC1iIGRldmhlbHAgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZGV2aGVscAorCWVjaG8uCisJZWNoby5CdWlsZCBmaW5pc2hlZC4KKwlnb3RvIGVuZAorKQorCitpZiAiJTEiID09ICJlcHViIiAoCisJJVNQSElOWEJVSUxEJSAtYiBlcHViICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2VwdWIKKwllY2hvLgorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJUJVSUxERElSJS9lcHViLgorCWdvdG8gZW5kCispCisKK2lmICIlMSIgPT0gImxhdGV4IiAoCisJJVNQSElOWEJVSUxEJSAtYiBsYXRleCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9sYXRleAorCWVjaG8uCisJZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL2xhdGV4LgorCWdvdG8gZW5kCispCisKK2lmICIlMSIgPT0gInRleHQiICgKKwklU1BISU5YQlVJTEQlIC1iIHRleHQgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvdGV4dAorCWVjaG8uCisJZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIHRleHQgZmlsZXMgYXJlIGluICVCVUlMRERJUiUvdGV4dC4KKwlnb3RvIGVuZAorKQorCitpZiAiJTEiID09ICJtYW4iICgKKwklU1BISU5YQlVJTEQlIC1iIG1hbiAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9tYW4KKwllY2hvLgorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51YWwgcGFnZXMgYXJlIGluICVCVUlMRERJUiUvbWFuLgorCWdvdG8gZW5kCispCisKK2lmICIlMSIgPT0gImNoYW5nZXMiICgKKwklU1BISU5YQlVJTEQlIC1iIGNoYW5nZXMgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvY2hhbmdlcworCWVjaG8uCisJZWNoby5UaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAlQlVJTERESVIlL2NoYW5nZXMuCisJZ290byBlbmQKKykKKworaWYgIiUxIiA9PSAibGlua2NoZWNrIiAoCisJJVNQSElOWEJVSUxEJSAtYiBsaW5rY2hlY2sgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvbGlua2NoZWNrCisJZWNoby4KKwllY2hvLkxpbmsgY2hlY2sgY29tcGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1dCBeCitvciBpbiAlQlVJTERESVIlL2xpbmtjaGVjay9vdXRwdXQudHh0LgorCWdvdG8gZW5kCispCisKK2lmICIlMSIgPT0gImRvY3Rlc3QiICgKKwklU1BISU5YQlVJTEQlIC1iIGRvY3Rlc3QgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZG9jdGVzdAorCWVjaG8uCisJZWNoby5UZXN0aW5nIG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSBeCityZXN1bHRzIGluICVCVUlMRERJUiUvZG9jdGVzdC9vdXRwdXQudHh0LgorCWdvdG8gZW5kCispCisKKzplbmQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdG9kby5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3RvZG8ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4NjdkMGIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3RvZG8ucnN0CkBAIC0wLDAgKzEsMTc4IEBACitUT0RPOiBkb2N1bWVudGF0aW9uCis9PT09PT09PT09PT09PT09PT09CitNaXNjZWxhbmVvdXMgbm90ZXMgYWJvdHUgdGhpbmdzIHRvIGJlIGRvY3VtZW50ZWQuCisKK1Vub3JkZXJlZCBsaXN0IG9mIHRvcGljcyB0byBiZSBkb2N1bWVudGVkCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSByb3V0aW5nCisKKyAgLSBjb21tb24gcmVndWxhciBleHByZXNzaW9ucyBleGFtcGxlcworCistIHNlc3Npb25zCisKKyAgLSBiYXNpYyB1c2FnZSAmIGNvbmZpZ3VyYXRpb24KKyAgLSB1c2luZyBtdWx0aXBsZSBzZXNzaW9ucyBpbiB0aGUgc2FtZSByZXF1ZXN0CisgIC0gdXNpbmcgZGlmZmVyZW50IGJhY2tlbmRzCisgIC0gdXNpbmcgZmxhc2hlcworICAtIHVwZGF0aW5nIHNlc3Npb24gYXJndW1lbnRzIChtYXhfYWdlIGV0YykKKyAgLSBwdXJnaW5nIGRiIHNlc3Npb25zCisKKy0gaTE4biAoaW5jcmVtZW50IGV4aXN0aW5nIHR1dG9yaWFsKQorCisgIC0gYmFzaWMgdXNhZ2UgJiBjb25maWd1cmF0aW9uCisgIC0gbG9hZGluZyBsb2NhbGUvdGltZXpvbmUgYXV0b21hdGljYWxseSBmb3IgZWFjaCByZXF1ZXN0CisgIC0gZm9ybWF0dGluZyBkYXRlL3RpbWUvZGF0ZXRpbWUKKyAgLSBmb3JtYXR0aW5nIGN1cnJlbmN5CisgIC0gdXNpbmcgaTE4biBpbiB0ZW1wbGF0ZXMKKworLSBqaW5qYTIgJiBtYWtvCisKKyAgLSBiYXNpYyB1c2FnZSAmIGNvbmZpZ3VyYXRpb24KKyAgLSBzZXR0aW5nIGdsb2JhbCBmaWx0ZXJzIGFuZCB2YXJpYWJsZXMgKHVzaW5nIGNvbmZpZyBvciBmYWN0b3J5KQorCistIGF1dGgKKworICAtIGJhc2ljIHVzYWdlICYgY29uZmlndXJhdGlvbgorICAtIHNldHRpbmcgdXAgJ293biBhdXRoJworICAtIG1ha2luZyB1c2VyIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5IG9uIGVhY2ggcmVxdWVzdAorICAtIHB1cmdpbmcgdG9rZW5zCisKKy0gY29uZmlnCisKKyAgLSBjb25maWd1cmF0aW9uIGNvbnZlbnRpb25zICgibmFtZXNwYWNlZCIgY29uZmlndXJhdGlvbiBmb3Igd2ViYXBwMl9leHRyYXMKKyAgICBtb2R1bGVzKQorCistIHRyaWNrcworCisgIC0gY29uZmlndXJhdGlvbiBpbiBhIHNlcGFyYXRlIGZpbGUKKyAgLSByb3V0ZXMgaW4gYSBzZXBhcmF0ZSBmaWxlCisgIC0gcmVkdWNlIHZlcmJvc2l0eSB3aGVuIGRlZmluaW5nIHJvdXRlcyAoUiA9IHdlYmFwcDIuUm91dGUpCisKK0NvbW1vbiBlcnJvcnMKKy0tLS0tLS0tLS0tLS0KKy0gIlR5cGVFcnJvcjogJ3VuaWNvZGUnIG9iamVjdCBpcyBub3QgY2FsbGFibGUiOiBvbmUgcG9zc2libGUgcmVhc29uIGlzIHRoYXQKKyAgdGhlIGBgUmVxdWVzdEhhbmRsZXJgYCByZXR1cm5lZCBhIHN0cmluZy4gSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBhbnl0aGluZywgaXQKKyAgKiptdXN0KiogYmUgYSA6Y2xhc3M6YHdlYmFwcDIuUmVzcG9uc2VgIG9iamVjdC4gT3IgaXQgbXVzdCBub3QgcmV0dXJuCisgIGFueXRoaW5nIGFuZCB3cml0ZSB0byB0aGUgcmVzcG9uc2UgaW5zdGVhZCB1c2luZyBgYHNlbGYucmVzcG9uc2Uud3JpdGUoKWBgLgorCitTZWNyZXQga2V5cworLS0tLS0tLS0tLS0KK0FkZCBhIG5vdGUgYWJvdXQgaG93IHRvIGdlbmVyYXRlIHN0cm9uZyBzZXNzaW9uIHNlY3JldCBrZXlzOjoKKworICAgICQgb3BlbnNzbCBnZW5yc2EgLW91dCAke1BXRH0vcHJpdmF0ZV9yc2Ffa2V5LnBlbSAyMDQ4CisKK0ppbmphMiBmYWN0b3J5CistLS0tLS0tLS0tLS0tLQorVG8gY3JlYXRlIEppbmphMiB3aXRoIGN1c3RvbSBmaWx0ZXJzIGFuZCBnbG9iYWwgdmFyaWFibGVzOjoKKworICAgIGZyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IGppbmphMgorCisgICAgZGVmIGppbmphMl9mYWN0b3J5KGFwcCk6CisgICAgICAgIGogPSBqaW5qYTIuSmluamEyKGFwcCkKKyAgICAgICAgai5lbnZpcm9ubWVudC5maWx0ZXJzLnVwZGF0ZSh7CisgICAgICAgICAgICAnbXlfZmlsdGVyJzogbXlfZmlsdGVyLAorICAgICAgICB9KQorICAgICAgICBqLmVudmlyb25tZW50Lmdsb2JhbHMudXBkYXRlKHsKKyAgICAgICAgICAgICdteV9nbG9iYWwnOiBteV9nbG9iYWwsCisgICAgICAgIH0pCisgICAgICAgIHJldHVybiBqCisKKyAgICAjIFdoZW4geW91IG5lZWQgamluamEsIGdldCBpdCBwYXNzaW5nIHRoZSBmYWN0b3J5LgorICAgIGogPSBqaW5qYTIuZ2V0X2ppbmphMihmYWN0b3J5PWppbmphMl9mYWN0b3J5KQorCitEZWJ1Z2dpbmcgSmluamEyCistLS0tLS0tLS0tLS0tLS0tCitodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMwODYwOTEvZGVidWctamluamEyLWluLWdvb2dsZS1hcHAtZW5naW5lLzM2OTQ0MzQjMzY5NDQzNAorCitDb25maWd1cmF0aW9uIG5vdGVzCistLS0tLS0tLS0tLS0tLS0tLS0tCitOb3RpY2UgdGhhdCBjb25maWd1cmF0aW9uIGlzIHNldCBwcmltYXJpbHkgaW4gdGhlIGFwcGxpY2F0aW9uLiBTZWU6CisKKyAgICBodHRwOi8vd2ViYXBwLWltcHJvdmVkLmFwcHNwb3QuY29tL2d1aWRlL2FwcC5odG1sI2NvbmZpZworCitCeSBjb252ZW50aW9uLCBtb2R1bGVzIHRoYXQgYXJlIGNvbmZpZ3VyYWJsZSBpbiB3ZWJhcHAyIHVzZSB0aGUgbW9kdWxlCituYW1lIGFzIGtleSwgdG8gYXZvaWQgbmFtZSBjbGFzaGVzLiBUaGVpciBjb25maWd1cmF0aW9uIGlzIHRoZW4gc2V0IGluCithIG5lc3RlZCBkaWN0LiBTbywgZS5nLiwgaTE4biwgamluamEyIGFuZCBzZXNzaW9ucyBhcmUgY29uZmlndXJlZCBsaWtlIHRoaXM6OgorCisgICAgY29uZmlnID0ge30KKyAgICBjb25maWdbJ3dlYmFwcDJfZXh0cmFzLmkxOG4nXSA9IHsKKyAgICAgICAgJ2RlZmF1bHRfbG9jYWxlJzogLi4uLAorICAgIH0KKyAgICBjb25maWdbJ3dlYmFwcDJfZXh0cmFzLmppbmphMiddID0geworICAgICAgICAndGVtcGxhdGVfcGF0aCc6IC4uLiwKKyAgICB9CisgICAgY29uZmlnWyd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9ucyddID0geworICAgICAgICAnc2VjcmV0X2tleSc6IC4uLiwKKyAgICB9CisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oLi4uLCBjb25maWc9Y29uZmlnKQorCitZb3Ugb25seSBuZWVkIHRvIHNldCB0aGUgY29uZmlndXJhdGlvbiBrZXlzIHRoYXQgZGlmZmVyIGZyb20gdGhlIGRlZmF1bHQKK29uZXMuIEZvciBjb252ZW5pZW5jZSwgY29uZmlndXJhYmxlIG1vZHVsZXMgaGF2ZSBhICdkZWZhdWx0X2NvbmZpZycKK3ZhcmlhYmxlIGp1c3QgZm9yIHRoZSBwdXJwb3NlIG9mIGRvY3VtZW50aW5nIHRoZSBkZWZhdWx0IHZhbHVlcywgZS5nLjoKKworICAgIGh0dHA6Ly93ZWJhcHAtaW1wcm92ZWQuYXBwc3BvdC5jb20vYXBpL2V4dHJhcy5pMThuLmh0bWwjd2ViYXBwMl9leHRyYXMuaTE4bi5kZWZhdWx0X2NvbmZpZworCitDb29raWVzLCBxdW90aW5nICYgdW5pY29kZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2h0dHA6Ly9ncm91cHMuZ29vZ2xlLmNvbS9ncm91cC93ZWJhcHAyL21zZy85ODUwOTIzNTEzNzhjNDNlCitodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzY4Mzk5MjIvdW5pY29kZWRlY29kZWVycm9yLWlzLXJhaXNlZC13aGVuLWdldHRpbmctYS1jb29raWUtaW4tZ29vZ2xlLWFwcC1lbmdpbmUKKworTWFya2V0cGxhY2UgaW50ZWdyYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGNvZGUtYmxvY2s6OiB4bWwKKworICAgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+CisgICA8QXBwbGljYXRpb25NYW5pZmVzdCB4bWxucz0iaHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9BcHBsaWNhdGlvbk1hbmlmZXN0LzIwMDkiPgorICAgICA8IS0tIE5hbWUgYW5kIGRlc2NyaXB0aW9uIHB1bGxlZCBmcm9tIG1lc3NhZ2UgYnVuZGxlcyAtLT4KKyAgICAgPE5hbWU+VGlwZnk8L05hbWU+CisgICAgIDxEZXNjcmlwdGlvbj5BIHNpbXBsZSBhcHBsaWNhdGlvbiBmb3IgdGVzdGluZyB0aGUgbWFya2V0cGxhY2UuPC9EZXNjcmlwdGlvbj4KKworICAgICA8IS0tIFN1cHBvcnQgaW5mbyB0byBzaG93IGluIHRoZSBtYXJrZXRwbGFjZSAmIGNvbnRyb2wgcGFuZWwgLS0+CisgICAgIDxTdXBwb3J0PgorICAgICAgIDwhLS0gVVJMIGZvciBhcHBsaWNhdGlvbiBzZXR1cCBhcyBhbiBvcHRpb25hbCByZWRpcmVjdCBkdXJpbmcgdGhlIGluc3RhbGwgLS0+CisgICAgICAgPExpbmsgcmVsPSJzZXR1cCIgaHJlZj0iaHR0cHM6Ly9hcHAtaWQuYXBwc3BvdC5jb20vYS8ke0RPTUFJTl9OQU1FfS9zZXR1cCIgLz4KKworICAgICAgIDwhLS0gVVJMIGZvciBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLCBhY2Nlc3NlZCBmcm9tIHRoZSBhcHAgc2V0dGluZ3MgcGFnZSBpbiB0aGUgY29udHJvbCBwYW5lbCAtLT4KKyAgICAgICA8TGluayByZWw9Im1hbmFnZSIgaHJlZj0iaHR0cHM6Ly9hcHAtaWQuYXBwc3BvdC5jb20vYS8ke0RPTUFJTl9OQU1FfS9tYW5hZ2UiIC8+CisKKyAgICAgICA8IS0tIFVSTCBleHBsYWluaW5nIGhvdyBjdXN0b21lcnMgZ2V0IHN1cHBvcnQuIC0tPgorICAgICAgIDxMaW5rIHJlbD0ic3VwcG9ydCIgaHJlZj0iaHR0cHM6Ly9hcHAtaWQuYXBwc3BvdC5jb20vYS8ke0RPTUFJTl9OQU1FfS9zdXBwb3J0IiAvPgorCisgICAgICAgPCEtLSBVUkwgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gYWRtaW5zIGR1cmluZyB0aGUgZGVsZXRpb24gcHJvY2VzcywgdG8gc3BlY2lmeSBwb2xpY2llcyBzdWNoIGFzIGRhdGEgcmV0ZW50aW9uLCBob3cgdG8gY2xhaW0gYWNjb3VudHMsIGV0Yy4gLS0+CisgICAgICAgPExpbmsgcmVsPSJkZWxldGlvbi1wb2xpY3kiIGhyZWY9Imh0dHBzOi8vYXBwLWlkLmFwcHNwb3QuY29tL2EvJHtET01BSU5fTkFNRX0vZGVsZXRpb24tcG9saWN5IiAvPgorICAgICA8L1N1cHBvcnQ+CisKKyAgICAgPCEtLSBTaG93IHRoaXMgbGluayBpbiBHb29nbGUncyB1bml2ZXJzYWwgbmF2aWdhdGlvbiBmb3IgYWxsIHVzZXJzIC0tPgorICAgICA8RXh0ZW5zaW9uIGlkPSJuYXZMaW5rIiB0eXBlPSJsaW5rIj4KKyAgICAgICA8TmFtZT5UaXBmeTwvTmFtZT4KKyAgICAgICA8VXJsPmh0dHBzOi8vYXBwLWlkLmFwcHNwb3QuY29tL2EvJHtET01BSU5fTkFNRX0vPC9Vcmw+CisgICAgICAgPCEtLSBUaGlzIGFwcCBhbHNvIHVzZXMgdGhlIENhbGVuZGFyIEFQSSAtLT4KKyAgICAgICA8U2NvcGUgcmVmPSJVc2VycyIvPgorICAgICAgIDwhLS0KKyAgICAgICA8U2NvcGUgcmVmPSJHcm91cHMiLz4KKyAgICAgICA8U2NvcGUgcmVmPSJOaWNrbmFtZXMiLz4KKyAgICAgICAtLT4KKyAgICAgPC9FeHRlbnNpb24+CisKKyAgICAgPCEtLSBEZWNsYXJlIG91ciBPcGVuSUQgcmVhbG0gc28gb3VyIGFwcCBpcyB3aGl0ZSBsaXN0ZWQgLS0+CisgICAgIDxFeHRlbnNpb24gaWQ9InJlYWxtIiB0eXBlPSJvcGVuSWRSZWFsbSI+CisgICAgICAgPFVybD5odHRwczovL2FwcC1pZC5hcHBzcG90LmNvbTwvVXJsPgorICAgICA8L0V4dGVuc2lvbj4KKworICAgICA8IS0tIFNwZWNpYWwgYWNjZXNzIHRvIEFQSXMgLS0+CisgICAgIDxTY29wZSBpZD0iVXNlcnMiPgorICAgICAgIDxVcmw+aHR0cHM6Ly9hcHBzLWFwaXMuZ29vZ2xlLmNvbS9hL2ZlZWRzL3VzZXIvI3JlYWRvbmx5PC9Vcmw+CisgICAgICAgPFJlYXNvbj5Vc2VycyBjYW4gYmUgc2VsZWN0ZWQgdG8gZ2FpbiBzcGVjaWFsIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBvciBtb2RpZnkgY29udGVudC48L1JlYXNvbj4KKyAgICAgPC9TY29wZT4KKyAgICAgPCEtLQorICAgICAgIDxTY29wZSBpZD0iR3JvdXBzIj4KKyAgICAgICA8VXJsPmh0dHBzOi8vYXBwcy1hcGlzLmdvb2dsZS5jb20vYS9mZWVkcy9ncm91cC8jcmVhZG9ubHk8L1VybD4KKyAgICAgICA8UmVhc29uPjwvUmVhc29uPgorICAgICA8L1Njb3BlPgorICAgICA8U2NvcGUgaWQ9Ik5pY2tuYW1lcyI+CisgICAgICAgPFVybD5odHRwczovL2FwcHMtYXBpcy5nb29nbGUuY29tL2EvZmVlZHMvbmlja25hbWUvI3JlYWRvbmx5PC9Vcmw+CisgICAgICAgPFJlYXNvbj48L1JlYXNvbj4KKyAgICAgPC9TY29wZT4KKyAgICAgLS0+CisgICA8L0FwcGxpY2F0aW9uTWFuaWZlc3Q+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9hdXRoLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2F1dGgucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlYjY5MGIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9hdXRoLnJzdApAQCAtMCwwICsxLDgxIEBACisuLiBfYXV0aC5pMThuOgorCitBdXRoZW50aWNhdGlvbiB3aXRoIHdlYmFwcDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitMb2dpbiB3aXRoIGZvcm1zCistLS0tLS0tLS0tLS0tLS0tCisKK0xvZ2luIHdpdGggc2Vzc2lvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworTG9naW4gd2l0aCB0b2tlbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKworQ3VzdG9tIFVzZXIgbW9kZWwKKy0tLS0tLS0tLS0tLS0tLS0tCis6bW9kOmB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuYXV0aC5tb2RlbHNgIHByb3ZpZGVzIGEgZGVmYXVsdCBgYFVzZXJgYCBtb2RlbAordG8gYmUgdXNlZCBvbiBBcHAgRW5naW5lLCBidXQgaXQgY2FuIGJlIHJlcGxhY2VkIGJ5IGFueSBjdXN0b20gbW9kZWwgdGhhdAoraW1wbGVtZW50cyB0aGUgcmVxdWlyZWQgaW50ZXJmYWNlLiBUaGlzIG1lYW5zIHRoYXQgOm1vZDpgd2ViYXBwMl9leHRyYXMuYXV0aGAKK2NhbiBiZSB1c2VkIHdpdGggYW55IG1vZGVsIHlvdSB3aXNoIC0tIGV2ZW4gbm9uLUFwcCBFbmdpbmUgbW9kZWxzIHdoaWNoIHVzZSwKK2xldCdzIHNheSwgYGBTUUxBbGNoZW15YGAgb3Igb3RoZXIgYWJzdHJhY3Rpb24gbGF5ZXJzLgorCitUaGUgcmVxdWlyZWQgaW50ZXJmYWNlIHRoYXQgYSBjdXN0b20gdXNlciBtb2RlbCBtdXN0IGltcGxlbWVudCBjb25zaXN0cyBvZgorb25seSBmaXZlIG1ldGhvZHM6OgorCisgICAgY2xhc3MgVXNlcihvYmplY3QpOgorCisgICAgICAgIGRlZiBnZXRfaWQoc2VsZik6CisgICAgICAgICAgICAiIiJSZXR1cm5zIHRoaXMgdXNlcidzIHVuaXF1ZSBJRCwgd2hpY2ggY2FuIGJlIGFuIGludGVnZXIgb3Igc3RyaW5nLiIiIgorCisgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICBkZWYgZ2V0X2J5X2F1dGhfdG9rZW4oY2xzLCB1c2VyX2lkLCB0b2tlbik6CisgICAgICAgICAgICAiIiJSZXR1cm5zIGEgdXNlciBvYmplY3QgYmFzZWQgb24gYSB1c2VyIElEIGFuZCB0b2tlbi4KKworICAgICAgICAgICAgOnBhcmFtIHVzZXJfaWQ6CisgICAgICAgICAgICAgICAgVGhlIHVzZXJfaWQgb2YgdGhlIHJlcXVlc3RpbmcgdXNlci4KKyAgICAgICAgICAgIDpwYXJhbSB0b2tlbjoKKyAgICAgICAgICAgICAgICBUaGUgdG9rZW4gc3RyaW5nIHRvIGJlIHZlcmlmaWVkLgorICAgICAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICAgICAgQSB0dXBsZSBgYChVc2VyLCB0aW1lc3RhbXApYGAsIHdpdGggYSB1c2VyIG9iamVjdCBhbmQKKyAgICAgICAgICAgICAgICB0aGUgdG9rZW4gdGltZXN0YW1wLCBvciBgYChOb25lLCBOb25lKWBgIGlmIGJvdGggd2VyZSBub3QgZm91bmQuCisgICAgICAgICAgICAiIiIKKworICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIGdldF9ieV9hdXRoX3Bhc3N3b3JkKGNscywgYXV0aF9pZCwgcGFzc3dvcmQpOgorICAgICAgICAgICAgIiIiUmV0dXJucyBhIHVzZXIgb2JqZWN0LCB2YWxpZGF0aW5nIHBhc3N3b3JkLgorCisgICAgICAgICAgICA6cGFyYW0gYXV0aF9pZDoKKyAgICAgICAgICAgICAgICBBdXRoZW50aWNhdGlvbiBpZC4KKyAgICAgICAgICAgIDpwYXJhbSBwYXNzd29yZDoKKyAgICAgICAgICAgICAgICBQYXNzd29yZCB0byBiZSBjaGVja2VkLgorICAgICAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICAgICAgQSB1c2VyIG9iamVjdCwgaWYgZm91bmQgYW5kIHBhc3N3b3JkIG1hdGNoZXMuCisgICAgICAgICAgICA6cmFpc2VzOgorICAgICAgICAgICAgICAgIGBgYXV0aC5JbnZhbGlkQXV0aElkRXJyb3JgYCBvciBgYGF1dGguSW52YWxpZFBhc3N3b3JkRXJyb3JgYC4KKyAgICAgICAgICAgICIiIgorCisgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICBkZWYgY3JlYXRlX2F1dGhfdG9rZW4oY2xzLCB1c2VyX2lkKToKKyAgICAgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgYXV0aG9yaXphdGlvbiB0b2tlbiBmb3IgYSBnaXZlbiB1c2VyIElELgorCisgICAgICAgICAgICA6cGFyYW0gdXNlcl9pZDoKKyAgICAgICAgICAgICAgICBVc2VyIHVuaXF1ZSBJRC4KKyAgICAgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgICAgIEEgc3RyaW5nIHdpdGggdGhlIGF1dGhvcml6YXRpb24gdG9rZW4uCisgICAgICAgICAgICAiIiIKKworICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIGRlbGV0ZV9hdXRoX3Rva2VuKGNscywgdXNlcl9pZCwgdG9rZW4pOgorICAgICAgICAgICAgIiIiRGVsZXRlcyBhIGdpdmVuIGF1dGhvcml6YXRpb24gdG9rZW4uCisKKyAgICAgICAgICAgIDpwYXJhbSB1c2VyX2lkOgorICAgICAgICAgICAgICAgIFVzZXIgdW5pcXVlIElELgorICAgICAgICAgICAgOnBhcmFtIHRva2VuOgorICAgICAgICAgICAgICAgIEEgc3RyaW5nIHdpdGggdGhlIGF1dGhvcml6YXRpb24gdG9rZW4uCisgICAgICAgICAgICAiIiIKKworQWRkaXRpb25hbGx5LCBhbGwgdmFsdWVzIGNvbmZpZ3VyZWQgZm9yIGBgdXNlcl9hdHRyaWJ1dGVzYGAsIGlmIGFueSwgbXVzdAorYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIgb2JqZWN0IGFzIGF0dHJpYnV0ZXMuIFRoZXNlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZQorc2Vzc2lvbiwgcHJvdmlkaW5nIGEgbmljZSB3YXkgdG8gY2FjaGUgY29tbW9ubHkgdXNlZCB1c2VyIGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvZGV2ZW52aXJvbm1lbnQucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvZGV2ZW52aXJvbm1lbnQucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjOGJkM2IKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9kZXZlbnZpcm9ubWVudC5yc3QKQEAgLTAsMCArMSw1MCBAQAorLi4gX3R1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC5kZXZlbnZpcm9ubWVudDoKKworVGhlIERldmVsb3BtZW50IEVudmlyb25tZW50Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1lvdSBkZXZlbG9wIGFuZCB1cGxvYWQgUHl0aG9uIGFwcGxpY2F0aW9ucyBmb3IgR29vZ2xlIEFwcCBFbmdpbmUgdXNpbmcgdGhlIEFwcAorRW5naW5lIFB5dGhvbiBzb2Z0d2FyZSBkZXZlbG9wbWVudCBraXQgKFNESykuCisKK1RoZSBQeXRob24gU0RLIGluY2x1ZGVzIGEgd2ViIHNlcnZlciBhcHBsaWNhdGlvbiB0aGF0IHNpbXVsYXRlcyB0aGUgQXBwIEVuZ2luZQorZW52aXJvbm1lbnQsIGluY2x1ZGluZyBhIGxvY2FsIHZlcnNpb24gb2YgdGhlIGRhdGFzdG9yZSwgR29vZ2xlIEFjY291bnRzLCBhbmQKK3RoZSBhYmlsaXR5IHRvIGZldGNoIFVSTHMgYW5kIHNlbmQgZW1haWwgZGlyZWN0bHkgZnJvbSB5b3VyIGNvbXB1dGVyIHVzaW5nIHRoZQorQXBwIEVuZ2luZSBBUElzLiBUaGUgUHl0aG9uIFNESyBydW5zIG9uIGFueSBjb21wdXRlciB3aXRoIFB5dGhvbiAyLjUsIGFuZAordmVyc2lvbnMgYXJlIGF2YWlsYWJsZSBmb3IgV2luZG93cywgTWFjIE9TIFggYW5kIExpbnV4LiBUaGUgUHl0aG9uIFNESyBpcworbm90IGNvbXBhdGlibGUgd2l0aCBQeXRob24gMy4KKworVGhlIFB5dGhvbiBTREsgZm9yIFdpbmRvd3MgYW5kIE1hYyBpbmNsdWRlcyBHb29nbGUgQXBwIEVuZ2luZSBMYXVuY2hlciwgYW4KK2FwcGxpY2F0aW9uIHRoYXQgcnVucyBvbiB5b3VyIGNvbXB1dGVyIGFuZCBwcm92aWRlcyBhIGdyYXBoaWNhbCBpbnRlcmZhY2UgdGhhdAorc2ltcGxpZmllcyBtYW55IGNvbW1vbiBBcHAgRW5naW5lIGRldmVsb3BtZW50IHRhc2tzLgorCitJZiBuZWNlc3NhcnksIGRvd25sb2FkIGFuZCBpbnN0YWxsIFB5dGhvbiAyLjUgZm9yIHlvdXIgcGxhdGZvcm0gZnJvbQorYHRoZSBQeXRob24gd2ViIHNpdGUgPGh0dHA6Ly93d3cucHl0aG9uLm9yZy8+YF8uIE1hYyBPUyBYIDEwLjUgTGVvcGFyZCB1c2VycworYWxyZWFkeSBoYXZlIFB5dGhvbiAyLjUgaW5zdGFsbGVkLgorCitgRG93bmxvYWQgdGhlIEFwcCBFbmdpbmUgU0RLIDxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb3dubG9hZHMuaHRtbD5gXy4KK0ZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBkb3dubG9hZCBwYWdlIHRvIGluc3RhbGwgdGhlIFNESyBvbiB5b3VyCitjb21wdXRlci4KKworRm9yIHRoaXMgdHV0b3JpYWwsIHlvdSB3aWxsIHVzZSB0d28gY29tbWFuZHMgZnJvbSB0aGUgU0RLOgorCistIGBkZXZfYXBwc2VydmVyLnB5IDxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzL3B5dGhvbi90b29scy9kZXZzZXJ2ZXIuaHRtbD5gXywgdGhlIGRldmVsb3BtZW50IHdlYiBzZXJ2ZXIKKy0gYGFwcGNmZy5weSA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vdG9vbHMvdXBsb2FkaW5nYW5hcHAuaHRtbD5gXywgZm9yIHVwbG9hZGluZyB5b3VyIGFwcCB0byBBcHAgRW5naW5lCisKK1dpbmRvd3MgYW5kIE1hYyB1c2VycyBjYW4gcnVuIEdvb2dsZSBBcHAgRW5naW5lIExhdW5jaGVyIGFuZCBzaW1wbHkgY2xpY2sgdGhlCitSdW4gYW5kIERlcGxveSBidXR0b25zIGluc3RlYWQgb2YgdXNpbmcgdGhlc2UgY29tbWFuZHMuCisKK0ZvciBXaW5kb3dzIHVzZXJzOiBUaGUgV2luZG93cyBpbnN0YWxsZXIgcHV0cyB0aGVzZSBjb21tYW5kcyBpbiB0aGUgY29tbWFuZAorcGF0aC4gQWZ0ZXIgaW5zdGFsbGF0aW9uLCB5b3UgY2FuIHJ1biB0aGVzZSBjb21tYW5kcyBmcm9tIGEgY29tbWFuZCBwcm9tcHQuCisKK0ZvciBNYWMgdXNlcnM6IFlvdSBjYW4gcHV0IHRoZXNlIGNvbW1hbmRzIGluIHRoZSBjb21tYW5kIHBhdGggYnkgc2VsZWN0aW5nCisiTWFrZSBTeW1saW5rcy4uLiIgZnJvbSB0aGUgIkdvb2dsZUFwcEVuZ2luZUxhdW5jaGVyIiBtZW51LgorCitJZiB5b3UgYXJlIHVzaW5nIHRoZSBaaXAgYXJjaGl2ZSB2ZXJzaW9uIG9mIHRoZSBTREssIHlvdSB3aWxsIGZpbmQgdGhlc2UKK2NvbW1hbmRzIGluIHRoZSBgYGdvb2dsZV9hcHBlbmdpbmVgYCBkaXJlY3RvcnkuCisKKworTmV4dC4uLgorLS0tLS0tLQorVGhlIGxvY2FsIGRldmVsb3BtZW50IGVudmlyb25tZW50IGxldHMgeW91IGRldmVsb3AgYW5kIHRlc3QgY29tcGxldGUgQXBwIEVuZ2luZQorYXBwbGljYXRpb25zIGJlZm9yZSBzaG93aW5nIHRoZW0gdG8gdGhlIHdvcmxkLiBMZXQncyB3cml0ZSBzb21lIGNvZGUuCisKK0NvbnRpbnVlIHRvIDpyZWY6YHR1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC5oZWxsb3dvcmxkYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL2hhbmRsaW5nZm9ybXMucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvaGFuZGxpbmdmb3Jtcy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWMzMzZjZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL2hhbmRsaW5nZm9ybXMucnN0CkBAIC0wLDAgKzEsODAgQEAKKy4uIF90dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQuaGFuZGxpbmdmb3JtczoKKworSGFuZGxpbmcgRm9ybXMgd2l0aCB3ZWJhcHAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0lmIHdlIHdhbnQgdXNlcnMgdG8gYmUgYWJsZSB0byBwb3N0IHRoZWlyIG93biBncmVldGluZ3MsIHdlIG5lZWQgYSB3YXkgdG8KK3Byb2Nlc3MgaW5mb3JtYXRpb24gc3VibWl0dGVkIGJ5IHRoZSB1c2VyIHdpdGggYSB3ZWIgZm9ybS4gVGhlIGBgd2ViYXBwMmBgCitmcmFtZXdvcmsgbWFrZXMgcHJvY2Vzc2luZyBmb3JtIGRhdGEgZWFzeS4KKworCitIYW5kbGluZyBXZWIgRm9ybXMgV2l0aCB3ZWJhcHAyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitSZXBsYWNlIHRoZSBjb250ZW50cyBvZiBgYGhlbGxvd29ybGQvaGVsbG93b3JsZC5weWBgIHdpdGggdGhlIGZvbGxvd2luZzo6CisKKyAgICBpbXBvcnQgY2dpCisKKyAgICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCB1c2VycworICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICBjbGFzcyBNYWluUGFnZSh3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCIiIgorICAgICAgICAgICAgICA8aHRtbD4KKyAgICAgICAgICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iL3NpZ24iIG1ldGhvZD0icG9zdCI+CisgICAgICAgICAgICAgICAgICAgIDxkaXY+PHRleHRhcmVhIG5hbWU9ImNvbnRlbnQiIHJvd3M9IjMiIGNvbHM9IjYwIj48L3RleHRhcmVhPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2PjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTaWduIEd1ZXN0Ym9vayI+PC9kaXY+CisgICAgICAgICAgICAgICAgICA8L2Zvcm0+CisgICAgICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICAgICAgICA8L2h0bWw+IiIiKQorCisgICAgY2xhc3MgR3Vlc3Rib29rKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgcG9zdChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCc8aHRtbD48Ym9keT5Zb3Ugd3JvdGU6PHByZT4nKQorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoY2dpLmVzY2FwZShzZWxmLnJlcXVlc3QuZ2V0KCdjb250ZW50JykpKQorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJzwvcHJlPjwvYm9keT48L2h0bWw+JykKKworICAgIGFwcGxpY2F0aW9uID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAoJy8nLCBNYWluUGFnZSksCisgICAgICAgICgnL3NpZ24nLCBHdWVzdGJvb2spCisgICAgXSwgZGVidWc9VHJ1ZSkKKworICAgIGRlZiBtYWluKCk6CisgICAgICAgIGFwcGxpY2F0aW9uLnJ1bigpCisKKyAgICBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgICAgICBtYWluKCkKKworUmVsb2FkIHRoZSBwYWdlIHRvIHNlZSB0aGUgZm9ybSwgdGhlbiB0cnkgc3VibWl0dGluZyBhIG1lc3NhZ2UuCisKK1RoaXMgdmVyc2lvbiBoYXMgdHdvIGhhbmRsZXJzOiBgYE1haW5QYWdlYGAsIG1hcHBlZCB0byB0aGUgVVJMIGBgL2BgLCBkaXNwbGF5cworYSB3ZWIgZm9ybS4gYGBHdWVzdGJvb2tgYCwgbWFwcGVkIHRvIHRoZSBVUkwgYGAvc2lnbmBgLCBkaXNwbGF5cyB0aGUgZGF0YQorc3VibWl0dGVkIGJ5IHRoZSB3ZWIgZm9ybS4KKworVGhlIGBgR3Vlc3Rib29rYGAgaGFuZGxlciBoYXMgYSBgYHBvc3QoKWBgIG1ldGhvZCBpbnN0ZWFkIG9mIGEgYGBnZXQoKWBgCittZXRob2QuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZm9ybSBkaXNwbGF5ZWQgYnkgYGBNYWluUGFnZWBgIHVzZXMgdGhlIEhUVFAgUE9TVAorbWV0aG9kIChgYG1ldGhvZD0icG9zdCJgYCkgdG8gc3VibWl0IHRoZSBmb3JtIGRhdGEuIElmIGZvciBzb21lIHJlYXNvbiB5b3UKK25lZWQgYSBzaW5nbGUgaGFuZGxlciB0byBoYW5kbGUgYm90aCBHRVQgYW5kIFBPU1QgYWN0aW9ucyB0byB0aGUgc2FtZSBVUkwsIHlvdQorY2FuIGRlZmluZSBhIG1ldGhvZCBmb3IgZWFjaCBhY3Rpb24gaW4gdGhlIHNhbWUgY2xhc3MuCisKK1RoZSBjb2RlIGZvciB0aGUgYGBwb3N0KClgYCBtZXRob2QgZ2V0cyB0aGUgZm9ybSBkYXRhIGZyb20gYGBzZWxmLnJlcXVlc3RgYC4KK0JlZm9yZSBkaXNwbGF5aW5nIGl0IGJhY2sgdG8gdGhlIHVzZXIsIGl0IHVzZXMgYGBjZ2kuZXNjYXBlKClgYCB0byBlc2NhcGUKK0hUTUwgc3BlY2lhbCBjaGFyYWN0ZXJzIHRvIHRoZWlyIGNoYXJhY3RlciBlbnRpdHkgZXF1aXZhbGVudHMuIGBgY2dpYGAgaXMgYQorbW9kdWxlIGluIHRoZSBzdGFuZGFyZCBQeXRob24gbGlicmFyeTsgc2VlIGB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgY2dpIDxodHRwOi8vd3d3LnB5dGhvbi5vcmcvZG9jLzIuNS4yL2xpYi9tb2R1bGUtY2dpLmh0bWw+YF8KK2ZvciBtb3JlIGluZm9ybWF0aW9uLgorCisuLiBub3RlOjoKKyAgIFRoZSBBcHAgRW5naW5lIGVudmlyb25tZW50IGluY2x1ZGVzIHRoZSBlbnRpcmUgUHl0aG9uIDIuNSBzdGFuZGFyZCBsaWJyYXJ5LgorICAgSG93ZXZlciwgbm90IGFsbCBhY3Rpb25zIGFyZSBhbGxvd2VkLiBBcHAgRW5naW5lIGFwcGxpY2F0aW9ucyBydW4gaW4gYQorICAgcmVzdHJpY3RlZCBlbnZpcm9ubWVudCB0aGF0IGFsbG93cyBBcHAgRW5naW5lIHRvIHNjYWxlIHRoZW0gc2FmZWx5LgorICAgRm9yIGV4YW1wbGUsIGxvdy1sZXZlbCBjYWxscyB0byB0aGUgb3BlcmF0aW5nIHN5c3RlbSwgbmV0d29ya2luZyBvcGVyYXRpb25zLAorICAgYW5kIHNvbWUgZmlsZXN5c3RlbSBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCwgYW5kIHdpbGwgcmFpc2UgYW4gZXJyb3IKKyAgIHdoZW4gYXR0ZW1wdGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGBUaGUgUHl0aG9uIFJ1bnRpbWUgRW52aXJvbm1lbnQgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uLz5gXy4KKworCitOZXh0Li4uCistLS0tLS0tCitOb3cgdGhhdCB3ZSBjYW4gY29sbGVjdCBpbmZvcm1hdGlvbiBmcm9tIHRoZSB1c2VyLCB3ZSBuZWVkIGEgcGxhY2UgdG8gcHV0IGl0CithbmQgYSB3YXkgdG8gZ2V0IGl0IGJhY2suCisKK0NvbnRpbnVlIHRvIDpyZWY6YHR1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC51c2luZ2RhdGFzdG9yZWAuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9oZWxsb3dvcmxkLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL2hlbGxvd29ybGQucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2NTdkMzEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9oZWxsb3dvcmxkLnJzdApAQCAtMCwwICsxLDEyOSBAQAorLi4gX3R1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC5oZWxsb3dvcmxkOgorCitIZWxsbywgV29ybGQhCis9PT09PT09PT09PT09CitQeXRob24gQXBwIEVuZ2luZSBhcHBsaWNhdGlvbnMgY29tbXVuaWNhdGUgd2l0aCB0aGUgd2ViIHNlcnZlciB1c2luZyB0aGUKK2BDR0kgPGh0dHA6Ly93d3cudzMub3JnL0NHSS8+YF8gc3RhbmRhcmQuIFdoZW4gdGhlIHNlcnZlciByZWNlaXZlcyBhIHJlcXVlc3QKK2ZvciB5b3VyIGFwcGxpY2F0aW9uLCBpdCBydW5zIHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSByZXF1ZXN0IGRhdGEgaW4KK2Vudmlyb25tZW50IHZhcmlhYmxlcyBhbmQgb24gdGhlIHN0YW5kYXJkIGlucHV0IHN0cmVhbSAoZm9yIFBPU1QgZGF0YSkuCitUbyByZXNwb25kLCB0aGUgYXBwbGljYXRpb24gd3JpdGVzIHRoZSByZXNwb25zZSB0byB0aGUgc3RhbmRhcmQgb3V0cHV0IHN0cmVhbSwKK2luY2x1ZGluZyBIVFRQIGhlYWRlcnMgYW5kIGNvbnRlbnQuCisKK0xldCdzIGJlZ2luIGJ5IGltcGxlbWVudGluZyBhIHRpbnkgYXBwbGljYXRpb24gdGhhdCBkaXNwbGF5cyBhIHNob3J0IG1lc3NhZ2UuCisKKworQ3JlYXRpbmcgYSBTaW1wbGUgUmVxdWVzdCBIYW5kbGVyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NyZWF0ZSBhIGRpcmVjdG9yeSBuYW1lZCBgYGhlbGxvd29ybGRgYC4gQWxsIGZpbGVzIGZvciB0aGlzIGFwcGxpY2F0aW9uIHJlc2lkZQoraW4gdGhpcyBkaXJlY3RvcnkuCisKK0luc2lkZSB0aGUgYGBoZWxsb3dvcmxkYGAgZGlyZWN0b3J5LCBjcmVhdGUgYSBmaWxlIG5hbWVkIGBgaGVsbG93b3JsZC5weWBgLAorYW5kIGdpdmUgaXQgdGhlIGZvbGxvd2luZyBjb250ZW50czo6CisKKyAgICBwcmludCAnQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluJworICAgIHByaW50ICcnCisgICAgcHJpbnQgJ0hlbGxvLCB3b3JsZCEnCisKK1RoaXMgUHl0aG9uIHNjcmlwdCByZXNwb25kcyB0byBhIHJlcXVlc3Qgd2l0aCBhbiBIVFRQIGhlYWRlciB0aGF0IGRlc2NyaWJlcwordGhlIGNvbnRlbnQsIGEgYmxhbmsgbGluZSwgYW5kIHRoZSBtZXNzYWdlIGBgSGVsbG8sIHdvcmxkIWBgLgorCisKK0NyZWF0aW5nIHRoZSBDb25maWd1cmF0aW9uIEZpbGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0FuIEFwcCBFbmdpbmUgYXBwbGljYXRpb24gaGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGNhbGxlZCBgYGFwcC55YW1sYGAuIEFtb25nCitvdGhlciB0aGluZ3MsIHRoaXMgZmlsZSBkZXNjcmliZXMgd2hpY2ggaGFuZGxlciBzY3JpcHRzIHNob3VsZCBiZSB1c2VkIGZvcgord2hpY2ggVVJMcy4KKworSW5zaWRlIHRoZSBgYGhlbGxvd29ybGRgYCBkaXJlY3RvcnksIGNyZWF0ZSBhIGZpbGUgbmFtZWQgYGBhcHAueWFtbGBgIHdpdGggdGhlCitmb2xsb3dpbmcgY29udGVudHM6CisKKy4uIGNvZGUtYmxvY2s6OiB5YW1sCisKKyAgIGFwcGxpY2F0aW9uOiBoZWxsb3dvcmxkCisgICB2ZXJzaW9uOiAxCisgICBydW50aW1lOiBweXRob24yNworICAgYXBpX3ZlcnNpb246IDEKKyAgIHRocmVhZHNhZmU6IHRydWUKKworICAgaGFuZGxlcnM6CisgICAtIHVybDogLy4qCisgICAgIHNjcmlwdDogaGVsbG93b3JsZC5weQorCitGcm9tIHRvcCB0byBib3R0b20sIHRoaXMgY29uZmlndXJhdGlvbiBmaWxlIHNheXMgdGhlIGZvbGxvd2luZyBhYm91dCB0aGlzCithcHBsaWNhdGlvbjoKKworLSBUaGUgYXBwbGljYXRpb24gaWRlbnRpZmllciBpcyBgYGhlbGxvd29ybGRgYC4gV2hlbiB5b3UgcmVnaXN0ZXIgeW91cgorICBhcHBsaWNhdGlvbiB3aXRoIEFwcCBFbmdpbmUgaW4gdGhlIGZpbmFsIHN0ZXAsIHlvdSB3aWxsIHNlbGVjdCBhIHVuaXF1ZQorICBpZGVudGlmaWVyLCBhbmQgdXBkYXRlIHRoaXMgdmFsdWUuIFRoaXMgdmFsdWUgY2FuIGJlIGFueXRoaW5nIGR1cmluZworICBkZXZlbG9wbWVudC4gRm9yIG5vdywgbGVhdmUgaXQgc2V0IHRvIGhlbGxvd29ybGQuCistIFRoaXMgaXMgdmVyc2lvbiBudW1iZXIgYGAxYGAgb2YgdGhpcyBhcHBsaWNhdGlvbidzIGNvZGUuIElmIHlvdSBhZGp1c3QgdGhpcworICBiZWZvcmUgdXBsb2FkaW5nIG5ldyB2ZXJzaW9ucyBvZiB5b3VyIGFwcGxpY2F0aW9uIHNvZnR3YXJlLCBBcHAgRW5naW5lIHdpbGwKKyAgcmV0YWluIHByZXZpb3VzIHZlcnNpb25zLCBhbmQgbGV0IHlvdSByb2xsIGJhY2sgdG8gYSBwcmV2aW91cyB2ZXJzaW9uIHVzaW5nCisgIHRoZSBhZG1pbmlzdHJhdGl2ZSBjb25zb2xlLgorLSBUaGlzIGNvZGUgcnVucyBpbiB0aGUgYGBweXRob25gYCBydW50aW1lIGVudmlyb25tZW50LCB2ZXJzaW9uICIxIi4KKyAgQWRkaXRpb25hbCBydW50aW1lIGVudmlyb25tZW50cyBhbmQgbGFuZ3VhZ2VzIG1heSBiZSBzdXBwb3J0ZWQgaW4gdGhlIGZ1dHVyZS4KKy0gRXZlcnkgcmVxdWVzdCB0byBhIFVSTCB3aG9zZSBwYXRoIG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBgYC8uKmBgCisgIChhbGwgVVJMcykgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGBgaGVsbG93b3JsZC5weWBgIHNjcmlwdC4KKworVGhlIHN5bnRheCBvZiB0aGlzIGZpbGUgaXMgYFlBTUwgPGh0dHA6Ly93d3cueWFtbC5vcmcvPmBfLiBGb3IgYSBjb21wbGV0ZSBsaXN0CitvZiBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHNlZQorYHRoZSBhcHAueWFtbCByZWZlcmVuY2UgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL2NvbmZpZy9hcHBjb25maWcuaHRtbD5gXy4KKworCitUZXN0aW5nIHRoZSBBcHBsaWNhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1dpdGggYSBoYW5kbGVyIHNjcmlwdCBhbmQgY29uZmlndXJhdGlvbiBmaWxlIG1hcHBpbmcgZXZlcnkgVVJMIHRvIHRoZSBoYW5kbGVyLAordGhlIGFwcGxpY2F0aW9uIGlzIGNvbXBsZXRlLiBZb3UgY2FuIG5vdyB0ZXN0IGl0IHdpdGggdGhlIHdlYiBzZXJ2ZXIgaW5jbHVkZWQKK3dpdGggdGhlIEFwcCBFbmdpbmUgU0RLLgorCitJZiB5b3UncmUgdXNpbmcgdGhlIEdvb2dsZSBBcHAgRW5naW5lIExhdW5jaGVyLCB5b3UgY2FuIHNldCB1cCB0aGUgYXBwbGljYXRpb24KK2J5IHNlbGVjdGluZyB0aGUgKipGaWxlKiogbWVudSwgKipBZGQgRXhpc3RpbmcgQXBwbGljYXRpb24uLi4qKiwgdGhlbiBzZWxlY3RpbmcKK3RoZSBgYGhlbGxvd29ybGRgYCBkaXJlY3RvcnkuIFNlbGVjdCB0aGUgYXBwbGljYXRpb24gaW4gdGhlIGFwcCBsaXN0LCBjbGljayB0aGUKK1J1biBidXR0b24gdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uLCB0aGVuIGNsaWNrIHRoZSBCcm93c2UgYnV0dG9uIHRvIHZpZXcgaXQuCitDbGlja2luZyBCcm93c2Ugc2ltcGx5IGxvYWRzIChvciByZWxvYWRzKQorYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8gPGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8+YF8gaW4geW91ciBkZWZhdWx0IHdlYiBicm93c2VyLgorCitJZiB5b3UncmUgbm90IHVzaW5nIEdvb2dsZSBBcHAgRW5naW5lIExhdW5jaGVyLCBzdGFydCB0aGUgd2ViIHNlcnZlciB3aXRoIHRoZQorZm9sbG93aW5nIGNvbW1hbmQsIGdpdmluZyBpdCB0aGUgcGF0aCB0byB0aGUgYGBoZWxsb3dvcmxkYGAgZGlyZWN0b3J5OgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICBnb29nbGVfYXBwZW5naW5lL2Rldl9hcHBzZXJ2ZXIucHkgaGVsbG93b3JsZC8KKworVGhlIHdlYiBzZXJ2ZXIgaXMgbm93IHJ1bm5pbmcsIGxpc3RlbmluZyBmb3IgcmVxdWVzdHMgb24gcG9ydCA4MDgwLiBZb3UgY2FuCit0ZXN0IHRoZSBhcHBsaWNhdGlvbiBieSB2aXNpdGluZyB0aGUgZm9sbG93aW5nIFVSTCBpbiB5b3VyIHdlYiBicm93c2VyOgorCisgICAgaHR0cDovL2xvY2FsaG9zdDo4MDgwLworCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBydW5uaW5nIHRoZSBkZXZlbG9wbWVudCB3ZWIgc2VydmVyLCBpbmNsdWRpbmcgaG93Cit0byBjaGFuZ2Ugd2hpY2ggcG9ydCBpdCB1c2VzLCBzZWUgYHRoZSBEZXYgV2ViIFNlcnZlciByZWZlcmVuY2UgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL3Rvb2xzL2RldnNlcnZlci5odG1sPmBfLAorb3IgcnVuIHRoZSBjb21tYW5kIHdpdGggdGhlIG9wdGlvbiBgYC0taGVscGBgLgorCisKK0l0ZXJhdGl2ZSBEZXZlbG9wbWVudAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitZb3UgY2FuIGxlYXZlIHRoZSB3ZWIgc2VydmVyIHJ1bm5pbmcgd2hpbGUgeW91IGRldmVsb3AgeW91ciBhcHBsaWNhdGlvbi4KK1RoZSB3ZWIgc2VydmVyIGtub3dzIHRvIHdhdGNoIGZvciBjaGFuZ2VzIGluIHlvdXIgc291cmNlIGZpbGVzIGFuZCByZWxvYWQKK3RoZW0gaWYgbmVjZXNzYXJ5LgorCitUcnkgaXQgbm93OiBMZWF2ZSB0aGUgd2ViIHNlcnZlciBydW5uaW5nLCB0aGVuIGVkaXQgYGBoZWxsb3dvcmxkLnB5YGAgdG8KK2NoYW5nZSBgYEhlbGxvLCB3b3JsZCFgYCB0byBzb21ldGhpbmcgZWxzZS4gUmVsb2FkCitgaHR0cDovL2xvY2FsaG9zdDo4MDgwLyA8aHR0cDovL2xvY2FsaG9zdDo4MDgwLz5gXyBvciBjbGljayBCcm93c2UgaW4gR29vZ2xlCitBcHAgRW5naW5lIExhdW5jaGVyIHRvIHNlZSB0aGUgY2hhbmdlLgorCitUbyBzaHV0IGRvd24gdGhlIHdlYiBzZXJ2ZXIsIG1ha2Ugc3VyZSB0aGUgdGVybWluYWwgd2luZG93IGlzIGFjdGl2ZSwgdGhlbgorcHJlc3MgQ29udHJvbC1DIChvciB0aGUgYXBwcm9wcmlhdGUgImJyZWFrIiBrZXkgZm9yIHlvdXIgY29uc29sZSksIG9yIGNsaWNrCitTdG9wIGluIEdvb2dsZSBBcHAgRW5naW5lIExhdW5jaGVyLgorCitZb3UgY2FuIGxlYXZlIHRoZSB3ZWIgc2VydmVyIHJ1bm5pbmcgZm9yIHRoZSByZXN0IG9mIHRoaXMgdHV0b3JpYWwuIElmIHlvdQorbmVlZCB0byBzdG9wIGl0LCB5b3UgY2FuIHJlc3RhcnQgaXQgYWdhaW4gYnkgcnVubmluZyB0aGUgY29tbWFuZCBhYm92ZS4KKworCitOZXh0Li4uCistLS0tLS0tCitZb3Ugbm93IGhhdmUgYSBjb21wbGV0ZSBBcHAgRW5naW5lIGFwcGxpY2F0aW9uISBZb3UgY291bGQgZGVwbG95IHRoaXMgc2ltcGxlCitncmVldGluZyByaWdodCBub3cgYW5kIHNoYXJlIGl0IHdpdGggdXNlcnMgd29ybGR3aWRlLiBCdXQgYmVmb3JlIHdlIGRlcGxveSBpdCwKK2xldCdzIGNvbnNpZGVyIHVzaW5nIGEgd2ViIGFwcGxpY2F0aW9uIGZyYW1ld29yayB0byBtYWtlIGl0IGVhc2llciB0byBhZGQKK2ZlYXR1cmVzLgorCitDb250aW51ZSB0byA6cmVmOmB0dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQudXNpbmd3ZWJhcHAyYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL2luZGV4LnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTJjOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvaW5kZXgucnN0CkBAIC0wLDAgKzEsMzAgQEAKKy4uIF90dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQuaW5kZXg6CisKK0dldHRpbmcgU3RhcnRlZCB3aXRoIEFwcCBFbmdpbmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1RoaXMgdHV0b3JpYWwgZGVzY3JpYmVzIGhvdyB0byBkZXZlbG9wIGFuZCBkZXBsb3kgYSBzaW1wbGUgUHl0aG9uIHByb2plY3Qgd2l0aAorR29vZ2xlIEFwcCBFbmdpbmUuIFRoZSBleGFtcGxlIHByb2plY3QsIGEgZ3Vlc3QgYm9vaywgZGVtb25zdHJhdGVzIGhvdyB0byBzZXR1cAordGhlIFB5dGhvbiBydW50aW1lIGVudmlyb25tZW50LCBob3cgdG8gdXNlIHdlYmFwcDIgYW5kIHNldmVyYWwgQXBwIEVuZ2luZQorc2VydmljZXMsIGluY2x1ZGluZyB0aGUgZGF0YXN0b3JlIGFuZCB0aGUgR29vZ2xlIHVzZXIgc2VydmljZS4KKworVGhpcyB0dXRvcmlhbCBoYXMgdGhlIGZvbGxvd2luZyBzZWN0aW9uczoKKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDEKKworICAgaW50cm9kdWN0aW9uLnJzdAorICAgZGV2ZW52aXJvbm1lbnQucnN0CisgICBoZWxsb3dvcmxkLnJzdAorICAgdXNpbmd3ZWJhcHAyLnJzdAorICAgdXNpbmd1c2Vycy5yc3QKKyAgIGhhbmRsaW5nZm9ybXMucnN0CisgICB1c2luZ2RhdGFzdG9yZS5yc3QKKyAgIHRlbXBsYXRlcy5yc3QKKyAgIHN0YXRpY2ZpbGVzLnJzdAorICAgdXBsb2FkaW5nLnJzdAorCisuLiBub3RlOjoKKyAgIFRoaXMgdHV0b3JpYWwgaXMgYSBwb3J0IGZyb20gdGhlIG9mZmljaWFsIFB5dGhvbgorICAgYEdldHRpbmcgU3RhcnRlZCA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vZ2V0dGluZ3N0YXJ0ZWQvPmBfCisgICBndWlkZSBmcm9tIEdvb2dsZSBBcHAgRW5naW5lLCBjcmVhdGVkIGJ5IHRoZSBBcHAgRW5naW5lIHRlYW0gYW5kIGxpY2Vuc2VkCisgICB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAzLjAgTGljZW5zZS4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL2ludHJvZHVjdGlvbi5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9pbnRyb2R1Y3Rpb24ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZjliMWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9pbnRyb2R1Y3Rpb24ucnN0CkBAIC0wLDAgKzEsMzMgQEAKKy4uIF90dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQuaW50cm9kdWN0aW9uOgorCitJbnRyb2R1Y3Rpb24KKz09PT09PT09PT09PQorV2VsY29tZSB0byB3ZWJhcHAyISBDcmVhdGluZyBhbiBBcHAgRW5naW5lIGFwcGxpY2F0aW9uIHdpdGggd2ViYXBwMiBpcyBlYXN5LAorYW5kIG9ubHkgdGFrZXMgYSBmZXcgbWludXRlcy4gQW5kIGl0J3MgZnJlZSB0byBzdGFydDogdXBsb2FkIHlvdXIgYXBwIGFuZAorc2hhcmUgaXQgd2l0aCB1c2VycyByaWdodCBhd2F5LCBhdCBubyBjaGFyZ2UgYW5kIHdpdGggbm8gY29tbWl0bWVudCByZXF1aXJlZC4KKworR29vZ2xlIEFwcCBFbmdpbmUgYXBwbGljYXRpb25zIGNhbiBiZSB3cml0dGVuIGluIGVpdGhlciB0aGUgSmF2YSBvciBQeXRob24KK3Byb2dyYW1taW5nIGxhbmd1YWdlcy4gVGhpcyB0dXRvcmlhbCBjb3ZlcnMgUHl0aG9uLCBhbmQgcHJlc2VudHMgYSBsaWdodHdlaWdodAorZnJhbWV3b3JrIHRoYXQgaXMgZmxleGlibGUgYW5kIGVhc3kgdG8gZXh0ZW5kOiB3ZWJhcHAyIGlzIGNvbXBhdGlibGUgd2l0aAordGhlIGRlZmF1bHQgQXBwIEVuZ2luZSB3ZWJhcHAgZnJhbWV3b3JrLCBidXQgb2ZmZXJzIGFuIGltcHJvdmVkIHJlc3BvbnNlCitvYmplY3QsIGJldHRlciBVUkkgcm91dGluZyBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nIGFuZCBtYW55IGV4dHJhIGZlYXR1cmVzLgorCitJbiB0aGlzIHR1dG9yaWFsLCB5b3Ugd2lsbCBsZWFybiBob3cgdG86CisKKy0gQnVpbGQgYW4gQXBwIEVuZ2luZSBhcHBsaWNhdGlvbiB1c2luZyBQeXRob24KKy0gVXNlIHRoZSAid2ViYXBwMiIgd2ViIGFwcGxpY2F0aW9uIGZyYW1ld29yaworLSBVc2UgdGhlIEFwcCBFbmdpbmUgZGF0YXN0b3JlIHdpdGggdGhlIFB5dGhvbiBtb2RlbGluZyBBUEkKKy0gSW50ZWdyYXRlIGFuIEFwcCBFbmdpbmUgYXBwbGljYXRpb24gd2l0aCBHb29nbGUgQWNjb3VudHMgZm9yIHVzZXIgYXV0aGVudGljYXRpb24KKy0gVXNlIERqYW5nbyB0ZW1wbGF0ZXMgd2l0aCB5b3VyIGFwcAorLSBVcGxvYWQgeW91ciBhcHAgdG8gQXBwIEVuZ2luZQorCitCeSB0aGUgZW5kIG9mIHRoZSB0dXRvcmlhbCwgeW91IHdpbGwgaGF2ZSBpbXBsZW1lbnRlZCBhIHdvcmtpbmcgYXBwbGljYXRpb24sCithIHNpbXBsZSBndWVzdCBib29rIHRoYXQgbGV0cyB1c2VycyBwb3N0IG1lc3NhZ2VzIHRvIGEgcHVibGljIG1lc3NhZ2UgYm9hcmQuCisKKworTmV4dC4uLgorLS0tLS0tLQorVG8gZ2V0IHN0YXJ0ZWQgZGV2ZWxvcGluZyBHb29nbGUgQXBwIEVuZ2luZSBhcHBsaWNhdGlvbnMsIHlvdSBkb3dubG9hZCBhbmQKK3NldCB1cCB0aGUgQXBwIEVuZ2luZSBzb2Z0d2FyZSBkZXZlbG9wbWVudCBraXQuCisKK0NvbnRpbnVlIHRvIDpyZWY6YHR1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC5kZXZlbnZpcm9ubWVudGAuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9zdGF0aWNmaWxlcy5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9zdGF0aWNmaWxlcy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0OTlhMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL3N0YXRpY2ZpbGVzLnJzdApAQCAtMCwwICsxLDgwIEBACisuLiBfdHV0b3JpYWxzLmdldHRpbmdzdGFydGVkLnN0YXRpY2ZpbGVzOgorCitVc2luZyBTdGF0aWMgRmlsZXMKKz09PT09PT09PT09PT09PT09PQorVW5saWtlIGEgdHJhZGl0aW9uYWwgd2ViIGhvc3RpbmcgZW52aXJvbm1lbnQsIEdvb2dsZSBBcHAgRW5naW5lIGRvZXMgbm90IHNlcnZlCitmaWxlcyBkaXJlY3RseSBvdXQgb2YgeW91ciBhcHBsaWNhdGlvbidzIHNvdXJjZSBkaXJlY3RvcnkgdW5sZXNzIGNvbmZpZ3VyZWQKK3RvIGRvIHNvLiBXZSBuYW1lZCBvdXIgdGVtcGxhdGUgZmlsZSBgYGluZGV4Lmh0bWxgYCwgYnV0IHRoaXMgZG9lcyBub3QKK2F1dG9tYXRpY2FsbHkgbWFrZSB0aGUgZmlsZSBhdmFpbGFibGUgYXQgdGhlIFVSTCBgYC9pbmRleC5odG1sYGAuCisKK0J1dCB0aGVyZSBhcmUgbWFueSBjYXNlcyB3aGVyZSB5b3Ugd2FudCB0byBzZXJ2ZSBzdGF0aWMgZmlsZXMgZGlyZWN0bHkgdG8gdGhlCit3ZWIgYnJvd3Nlci4gSW1hZ2VzLCBDU1Mgc3R5bGVzaGVldHMsIEphdmFTY3JpcHQgY29kZSwgbW92aWVzIGFuZCBGbGFzaAorYW5pbWF0aW9ucyBhcmUgYWxsIHR5cGljYWxseSBzdG9yZWQgd2l0aCBhIHdlYiBhcHBsaWNhdGlvbiBhbmQgc2VydmVkIGRpcmVjdGx5Cit0byB0aGUgYnJvd3Nlci4gWW91IGNhbiB0ZWxsIEFwcCBFbmdpbmUgdG8gc2VydmUgc3BlY2lmaWMgZmlsZXMgZGlyZWN0bHkKK3dpdGhvdXQgeW91ciBoYXZpbmcgdG8gY29kZSB5b3VyIG93biBoYW5kbGVyLgorCisKK1VzaW5nIFN0YXRpYyBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tCitFZGl0IGBgaGVsbG93b3JsZC9hcHAueWFtbGBgIGFuZCByZXBsYWNlIGl0cyBjb250ZW50cyB3aXRoIHRoZSBmb2xsb3dpbmc6CisKKy4uIGNvZGUtYmxvY2s6OiB5YW1sCisKKyAgIGFwcGxpY2F0aW9uOiBoZWxsb3dvcmxkCisgICB2ZXJzaW9uOiAxCisgICBydW50aW1lOiBweXRob24yNworICAgYXBpX3ZlcnNpb246IDEKKyAgIHRocmVhZHNhZmU6IHRydWUKKworICAgaGFuZGxlcnM6CisgICAtIHVybDogL3N0eWxlc2hlZXRzCisgICAgIHN0YXRpY19kaXI6IHN0eWxlc2hlZXRzCisKKyAgIC0gdXJsOiAvLioKKyAgICAgc2NyaXB0OiBoZWxsb3dvcmxkLmFwcAorCitUaGUgbmV3IGBgaGFuZGxlcnNgYCBzZWN0aW9uIGRlZmluZXMgdHdvIGhhbmRsZXJzIGZvciBVUkxzLiBXaGVuIEFwcCBFbmdpbmUKK3JlY2VpdmVzIGEgcmVxdWVzdCB3aXRoIGEgVVJMIGJlZ2lubmluZyB3aXRoIGBgL3N0eWxlc2hlZXRzYGAsIGl0IG1hcHMgdGhlCityZW1haW5kZXIgb2YgdGhlIHBhdGggdG8gZmlsZXMgaW4gdGhlIHN0eWxlc2hlZXRzIGRpcmVjdG9yeSBhbmQsIGlmIGFuCithcHByb3ByaWF0ZSBmaWxlIGlzIGZvdW5kLCB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUgYXJlIHJldHVybmVkIHRvIHRoZSBjbGllbnQuCitBbGwgb3RoZXIgVVJMcyBtYXRjaCB0aGUgYGAvYGAgcGF0aCwgYW5kIGFyZSBoYW5kbGVkIGJ5IHRoZSBgYGhlbGxvd29ybGQucHlgYAorc2NyaXB0LgorCitCeSBkZWZhdWx0LCBBcHAgRW5naW5lIHNlcnZlcyBzdGF0aWMgZmlsZXMgdXNpbmcgYSBNSU1FIHR5cGUgYmFzZWQgb24gdGhlCitmaWxlbmFtZSBleHRlbnNpb24uIEZvciBleGFtcGxlLCBhIGZpbGUgd2l0aCBhIG5hbWUgZW5kaW5nIGluIGBgLmNzc2BgIHdpbGwgYmUKK3NlcnZlZCB3aXRoIGEgTUlNRSB0eXBlIG9mIGBgdGV4dC9jc3NgYC4gWW91IGNhbiBjb25maWd1cmUgZXhwbGljaXQgTUlNRSB0eXBlcword2l0aCBhZGRpdGlvbmFsIG9wdGlvbnMuCisKK1VSTCBoYW5kbGVyIHBhdGggcGF0dGVybnMgYXJlIHRlc3RlZCBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIgaW4gYGBhcHAueWFtbGBgLAorZnJvbSB0b3AgdG8gYm90dG9tLiBJbiB0aGlzIGNhc2UsIHRoZSBgYC9zdHlsZXNoZWV0c2BgIHBhdHRlcm4gd2lsbCBtYXRjaAorYmVmb3JlIHRoZSBgYC8uKmBgIHBhdHRlcm4gd2lsbCBmb3IgdGhlIGFwcHJvcHJpYXRlIHBhdGhzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbgorb24gVVJMIG1hcHBpbmcgYW5kIG90aGVyIG9wdGlvbnMgeW91IGNhbiBzcGVjaWZ5IGluIGBgYXBwLnlhbWxgYCwgc2VlCitgdGhlIGFwcC55YW1sIHJlZmVyZW5jZSA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vY29uZmlnL2FwcGNvbmZpZy5odG1sPmBfLgorCitDcmVhdGUgdGhlIGRpcmVjdG9yeSBgYGhlbGxvd29ybGQvc3R5bGVzaGVldHNgYC4gSW4gdGhpcyBuZXcgZGlyZWN0b3J5LCBjcmVhdGUKK2EgbmV3IGZpbGUgbmFtZWQgYGBtYWluLmNzc2BgIHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50czoKKworLi4gY29kZS1ibG9jazo6IGNzcworCisgICBib2R5IHsKKyAgICAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKKyAgICAgYmFja2dyb3VuZC1jb2xvcjogI0RERERERDsKKyAgIH0KKworRmluYWxseSwgZWRpdCBgYGhlbGxvd29ybGQvaW5kZXguaHRtbGBgIGFuZCBpbnNlcnQgdGhlIGZvbGxvd2luZyBsaW5lcyBqdXN0CithZnRlciB0aGUgYGA8aHRtbD5gYCBsaW5lIGF0IHRoZSB0b3A6CisKKy4uIGNvZGUtYmxvY2s6OiBodG1sCisKKyAgIDxoZWFkPgorICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3R5bGVzaGVldHMvbWFpbi5jc3MiIC8+CisgICA8L2hlYWQ+CisKK1JlbG9hZCB0aGUgcGFnZSBpbiB5b3VyIGJyb3dzZXIuIFRoZSBuZXcgdmVyc2lvbiB1c2VzIHRoZSBzdHlsZXNoZWV0LgorCisKK05leHQuLi4KKy0tLS0tLS0KK1RoZSB0aW1lIGhhcyBjb21lIHRvIHJldmVhbCB5b3VyIGZpbmlzaGVkIGFwcGxpY2F0aW9uIHRvIHRoZSB3b3JsZC4KKworQ29udGludWUgdG8gOnJlZjpgdHV0b3JpYWxzLmdldHRpbmdzdGFydGVkLnVwbG9hZGluZ2AuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC90ZW1wbGF0ZXMucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvdGVtcGxhdGVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTBmZmZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvdGVtcGxhdGVzLnJzdApAQCAtMCwwICsxLDEwMSBAQAorLi4gX3R1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC50ZW1wbGF0ZXM6CisKK1VzaW5nIFRlbXBsYXRlcworPT09PT09PT09PT09PT09CitIVE1MIGVtYmVkZGVkIGluIGNvZGUgaXMgbWVzc3kgYW5kIGRpZmZpY3VsdCB0byBtYWludGFpbi4gSXQncyBiZXR0ZXIgdG8gdXNlIGEKK3RlbXBsYXRpbmcgc3lzdGVtLCB3aGVyZSB0aGUgSFRNTCBpcyBrZXB0IGluIGEgc2VwYXJhdGUgZmlsZSB3aXRoIHNwZWNpYWwKK3N5bnRheCB0byBpbmRpY2F0ZSB3aGVyZSB0aGUgZGF0YSBmcm9tIHRoZSBhcHBsaWNhdGlvbiBhcHBlYXJzLiBUaGVyZSBhcmUgbWFueQordGVtcGxhdGluZyBzeXN0ZW1zIGZvciBQeXRob246IEVaVCwgQ2hlZXRhaCwgQ2xlYXJTaWx2ZXIsIFF1aXhvdGUsIGFuZCBEamFuZ28KK2FyZSBqdXN0IGEgZmV3LiBZb3UgY2FuIHVzZSB5b3VyIHRlbXBsYXRlIGVuZ2luZSBvZiBjaG9pY2UgYnkgYnVuZGxpbmcgaXQgd2l0aAoreW91ciBhcHBsaWNhdGlvbiBjb2RlLgorCitGb3IgeW91ciBjb252ZW5pZW5jZSwgdGhlIGBgd2ViYXBwMmBgIG1vZHVsZSBpbmNsdWRlcyBEamFuZ28ncyB0ZW1wbGF0aW5nCitlbmdpbmUuIFZlcnNpb25zIDEuMiBhbmQgMC45NiBhcmUgaW5jbHVkZWQgd2l0aCB0aGUgU0RLIGFuZCBhcmUgcGFydCBvZiBBcHAKK0VuZ2luZSwgc28geW91IGRvIG5vdCBuZWVkIHRvIGJ1bmRsZSBEamFuZ28geW91cnNlbGYgdG8gdXNlIGl0LgorCitTZWUgdGhlIERqYW5nbyBzZWN0aW9uIG9mIGBUaGlyZC1wYXJ0eSBsaWJyYXJpZXMgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL3Rvb2xzL2xpYnJhcmllcy5odG1sI0RqYW5nbz5gXworZm9yIGluZm9ybWF0aW9uIG9uIHVzaW5nIHN1cHBvcnRlZCBEamFuZ28gdmVyc2lvbnMuCisKKworVXNpbmcgRGphbmdvIFRlbXBsYXRlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQWRkIHRoZSBmb2xsb3dpbmcgaW1wb3J0IHN0YXRlbWVudHMgYXQgdGhlIHRvcCBvZiBoZWxsb3dvcmxkL2hlbGxvd29ybGQucHk6OgorCisgICAgaW1wb3J0IG9zCisgICAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC53ZWJhcHAgaW1wb3J0IHRlbXBsYXRlCisKK1JlcGxhY2UgdGhlIGBgTWFpblBhZ2VgYCBoYW5kbGVyIHdpdGggY29kZSB0aGF0IHJlc2VtYmxlcyB0aGUgZm9sbG93aW5nOjoKKworICAgIGNsYXNzIE1haW5QYWdlKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgZ3Vlc3Rib29rX25hbWU9c2VsZi5yZXF1ZXN0LmdldCgnZ3Vlc3Rib29rX25hbWUnKQorICAgICAgICAgICAgZ3JlZXRpbmdzX3F1ZXJ5ID0gR3JlZXRpbmcuYWxsKCkuYW5jZXN0b3IoCisgICAgICAgICAgICAgICAgZ3Vlc3Rib29rX2tleShndWVzdGJvb2tfbmFtZSkpLm9yZGVyKCctZGF0ZScpCisgICAgICAgICAgICBncmVldGluZ3MgPSBncmVldGluZ3NfcXVlcnkuZmV0Y2goMTApCisKKyAgICAgICAgICAgIGlmIHVzZXJzLmdldF9jdXJyZW50X3VzZXIoKToKKyAgICAgICAgICAgICAgICB1cmwgPSB1c2Vycy5jcmVhdGVfbG9nb3V0X3VybChzZWxmLnJlcXVlc3QudXJpKQorICAgICAgICAgICAgICAgIHVybF9saW5rdGV4dCA9ICdMb2dvdXQnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHVybCA9IHVzZXJzLmNyZWF0ZV9sb2dpbl91cmwoc2VsZi5yZXF1ZXN0LnVyaSkKKyAgICAgICAgICAgICAgICB1cmxfbGlua3RleHQgPSAnTG9naW4nCisKKyAgICAgICAgICAgIHRlbXBsYXRlX3ZhbHVlcyA9IHsKKyAgICAgICAgICAgICAgICAnZ3JlZXRpbmdzJzogZ3JlZXRpbmdzLAorICAgICAgICAgICAgICAgICd1cmwnOiB1cmwsCisgICAgICAgICAgICAgICAgJ3VybF9saW5rdGV4dCc6IHVybF9saW5rdGV4dCwKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnaW5kZXguaHRtbCcpCisgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSh0ZW1wbGF0ZS5yZW5kZXIocGF0aCwgdGVtcGxhdGVfdmFsdWVzKSkKKworRmluYWxseSwgY3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlIGBgaGVsbG93b3JsZGBgIGRpcmVjdG9yeSBuYW1lZCBgYGluZGV4Lmh0bWxgYCwKK3dpdGggdGhlIGZvbGxvd2luZyBjb250ZW50czoKKworLi4gY29kZS1ibG9jazo6IGh0bWwrZGphbmdvCisKKyAgIDxodG1sPgorICAgICA8Ym9keT4KKyAgICAgICB7JSBmb3IgZ3JlZXRpbmcgaW4gZ3JlZXRpbmdzICV9CisgICAgICAgICB7JSBpZiBncmVldGluZy5hdXRob3IgJX0KKyAgICAgICAgICAgPGI+e3sgZ3JlZXRpbmcuYXV0aG9yLm5pY2tuYW1lIH19PC9iPiB3cm90ZToKKyAgICAgICAgIHslIGVsc2UgJX0KKyAgICAgICAgICAgQW4gYW5vbnltb3VzIHBlcnNvbiB3cm90ZToKKyAgICAgICAgIHslIGVuZGlmICV9CisgICAgICAgICA8YmxvY2txdW90ZT57eyBncmVldGluZy5jb250ZW50fGVzY2FwZSB9fTwvYmxvY2txdW90ZT4KKyAgICAgICB7JSBlbmRmb3IgJX0KKworICAgICAgIDxmb3JtIGFjdGlvbj0iL3NpZ24iIG1ldGhvZD0icG9zdCI+CisgICAgICAgICA8ZGl2Pjx0ZXh0YXJlYSBuYW1lPSJjb250ZW50IiByb3dzPSIzIiBjb2xzPSI2MCI+PC90ZXh0YXJlYT48L2Rpdj4KKyAgICAgICAgIDxkaXY+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNpZ24gR3Vlc3Rib29rIj48L2Rpdj4KKyAgICAgICA8L2Zvcm0+CisKKyAgICAgICA8YSBocmVmPSJ7eyB1cmwgfX0iPnt7IHVybF9saW5rdGV4dCB9fTwvYT4KKyAgICAgPC9ib2R5PgorICAgPC9odG1sPgorCitSZWxvYWQgdGhlIHBhZ2UsIGFuZCB0cnkgaXQgb3V0LgorCitgYHRlbXBsYXRlLnJlbmRlcihwYXRoLCB0ZW1wbGF0ZV92YWx1ZXMpYGAgdGFrZXMgYSBmaWxlIHBhdGggdG8gdGhlIHRlbXBsYXRlCitmaWxlIGFuZCBhIGRpY3Rpb25hcnkgb2YgdmFsdWVzLCBhbmQgcmV0dXJucyB0aGUgcmVuZGVyZWQgdGV4dC4gVGhlIHRlbXBsYXRlCit1c2VzIERqYW5nbyB0ZW1wbGF0aW5nIHN5bnRheCB0byBhY2Nlc3MgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgdmFsdWVzLCBhbmQgY2FuCityZWZlciB0byBwcm9wZXJ0aWVzIG9mIHRob3NlIHZhbHVlcy4gSW4gbWFueSBjYXNlcywgeW91IGNhbiBwYXNzIGRhdGFzdG9yZQorbW9kZWwgb2JqZWN0cyBkaXJlY3RseSBhcyB2YWx1ZXMsIGFuZCBhY2Nlc3MgdGhlaXIgcHJvcGVydGllcyBmcm9tIHRlbXBsYXRlcy4KKworLi4gbm90ZTo6CisgICBBbiBBcHAgRW5naW5lIGFwcGxpY2F0aW9uIGhhcyByZWFkLW9ubHkgYWNjZXNzIHRvIGFsbCBvZiB0aGUgZmlsZXMgdXBsb2FkZWQKKyAgIHdpdGggdGhlIHByb2plY3QsIHRoZSBsaWJyYXJ5IG1vZHVsZXMsIGFuZCBubyBvdGhlciBmaWxlcy4gVGhlIGN1cnJlbnQKKyAgIHdvcmtpbmcgZGlyZWN0b3J5IGlzIHRoZSBhcHBsaWNhdGlvbiByb290IGRpcmVjdG9yeSwgc28gdGhlIHBhdGggdG8KKyAgIGBgaW5kZXguaHRtbGBgIGlzIHNpbXBseSBgYCJpbmRleC5odG1sImBgLgorCisKK05leHQuLi4KKy0tLS0tLS0KK0V2ZXJ5IHdlYiBhcHBsaWNhdGlvbiByZXR1cm5zIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBIVE1MIGZyb20gdGhlIGFwcGxpY2F0aW9uCitjb2RlLCB2aWEgdGVtcGxhdGVzIG9yIHNvbWUgb3RoZXIgbWVjaGFuaXNtLiBNb3N0IHdlYiBhcHBsaWNhdGlvbnMgYWxzbyBuZWVkCit0byBzZXJ2ZSBzdGF0aWMgY29udGVudCwgc3VjaCBhcyBpbWFnZXMsIENTUyBzdHlsZXNoZWV0cywgb3IgSmF2YVNjcmlwdCBmaWxlcy4KK0ZvciBlZmZpY2llbmN5LCBBcHAgRW5naW5lIHRyZWF0cyBzdGF0aWMgZmlsZXMgZGlmZmVyZW50bHkgZnJvbSBhcHBsaWNhdGlvbgorc291cmNlIGFuZCBkYXRhIGZpbGVzLiBZb3UgY2FuIHVzZSBBcHAgRW5naW5lJ3Mgc3RhdGljIGZpbGVzIGZlYXR1cmUgdG8gc2VydmUKK2EgQ1NTIHN0eWxlc2hlZXQgZm9yIHRoaXMgYXBwbGljYXRpb24uCisKK0NvbnRpbnVlIHRvIDpyZWY6YHR1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC5zdGF0aWNmaWxlc2AuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC91cGxvYWRpbmcucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvdXBsb2FkaW5nLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2E3MmJhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvdXBsb2FkaW5nLnJzdApAQCAtMCwwICsxLDY5IEBACisuLiBfdHV0b3JpYWxzLmdldHRpbmdzdGFydGVkLnVwbG9hZGluZzoKKworVXBsb2FkaW5nIFlvdXIgQXBwbGljYXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09CitZb3UgY3JlYXRlIGFuZCBtYW5hZ2UgYXBwbGljYXRpb25zIGluIEFwcCBFbmdpbmUgdXNpbmcgdGhlIEFkbWluaXN0cmF0aW9uCitDb25zb2xlLiBPbmNlIHlvdSBoYXZlIHJlZ2lzdGVyZWQgYW4gYXBwbGljYXRpb24gSUQgZm9yIHlvdXIgYXBwbGljYXRpb24sIHlvdQordXBsb2FkIGl0IHRvIHlvdXIgd2Vic2l0ZSB1c2luZyBgYGFwcGNmZy5weWBgLCBhIGNvbW1hbmQtbGluZSB0b29sIHByb3ZpZGVkCitpbiB0aGUgU0RLLiBPciwgaWYgeW91J3JlIHVzaW5nIEdvb2dsZSBBcHAgRW5naW5lIExhdW5jaGVyLCB5b3UgY2FuIHVwbG9hZAoreW91ciBhcHBsaWNhdGlvbiBieSBjbGlja2luZyB0aGUgRGVwbG95IGJ1dHRvbi4KKworLi4gbm90ZTo6CisgICBPbmNlIHlvdSByZWdpc3RlciBhbiBhcHBsaWNhdGlvbiBJRCwgeW91IGNhbiBkZWxldGUgaXQsIGJ1dCB5b3UgY2FuJ3QKKyAgIHJlLXJlZ2lzdGVyIHRoYXQgc2FtZSBhcHBsaWNhdGlvbiBJRCBhZnRlciBpdCBoYXMgYmVlbiBkZWxldGVkLiBZb3UgY2FuCisgICBza2lwIHRoZXNlIG5leHQgc3RlcHMgaWYgeW91IGRvbid0IHdhbnQgdG8gcmVnaXN0ZXIgYW4gSUQgYXQgdGhpcyB0aW1lLgorCisKK1JlZ2lzdGVyaW5nIHRoZSBBcHBsaWNhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitZb3UgY3JlYXRlIGFuZCBtYW5hZ2UgQXBwIEVuZ2luZSB3ZWIgYXBwbGljYXRpb25zIGZyb20gdGhlIEFwcCBFbmdpbmUKK0FkbWluaXN0cmF0aW9uIENvbnNvbGUsIGF0IHRoZSBmb2xsb3dpbmcgVVJMOgorCistIGBodHRwczovL2FwcGVuZ2luZS5nb29nbGUuY29tLyA8aHR0cHM6Ly9hcHBlbmdpbmUuZ29vZ2xlLmNvbS8+YF8KKworR29vZ2xlIEFwcCBFbmdpbmUgTGF1bmNoZXIgdXNlcnMgY2FuIHJlYWNoIHRoaXMgVVJMIGJ5IGNsaWNraW5nIHRoZSBEYXNoYm9hcmQKK2J1dHRvbi4KKworU2lnbiBpbiB0byBBcHAgRW5naW5lIHVzaW5nIHlvdXIgR29vZ2xlIGFjY291bnQuIElmIHlvdSBkbyBub3QgaGF2ZSBhIEdvb2dsZQorYWNjb3VudCwgeW91IGNhbiBgY3JlYXRlIGEgR29vZ2xlIGFjY291bnQgPGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYWNjb3VudHMvPmBfCit3aXRoIGFuIGVtYWlsIGFkZHJlc3MgYW5kIHBhc3N3b3JkLgorCitUbyBjcmVhdGUgYSBuZXcgYXBwbGljYXRpb24sIGNsaWNrIHRoZSAiQ3JlYXRlIGFuIEFwcGxpY2F0aW9uIiBidXR0b24uIEZvbGxvdwordGhlIGluc3RydWN0aW9ucyB0byByZWdpc3RlciBhbiBhcHBsaWNhdGlvbiBJRCwgYSBuYW1lIHVuaXF1ZSB0byB0aGlzCithcHBsaWNhdGlvbi4gSWYgeW91IGVsZWN0IHRvIHVzZSB0aGUgZnJlZSBhcHBzcG90LmNvbSBkb21haW4gbmFtZSwgdGhlIGZ1bGwKK1VSTCBmb3IgdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUgYGBodHRwOi8vYXBwbGljYXRpb24taWQuYXBwc3BvdC5jb20vYGAuIFlvdSBjYW4KK2Fsc28gcHVyY2hhc2UgYSB0b3AtbGV2ZWwgZG9tYWluIG5hbWUgZm9yIHlvdXIgYXBwLCBvciB1c2Ugb25lIHRoYXQgeW91IGhhdmUKK2FscmVhZHkgcmVnaXN0ZXJlZC4KKworRWRpdCB0aGUgYGBhcHAueWFtbGBgIGZpbGUsIHRoZW4gY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGUgYGBhcHBsaWNhdGlvbjpgYAorc2V0dGluZyBmcm9tIGBgaGVsbG93b3JsZGBgIHRvIHlvdXIgcmVnaXN0ZXJlZCBhcHBsaWNhdGlvbiBJRC4KKworCitVcGxvYWRpbmcgdGhlIEFwcGxpY2F0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUbyB1cGxvYWQgeW91ciBmaW5pc2hlZCBhcHBsaWNhdGlvbiB0byBHb29nbGUgQXBwIEVuZ2luZSwgcnVuIHRoZSBmb2xsb3dpbmcKK2NvbW1hbmQ6OgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICBhcHBjZmcucHkgdXBkYXRlIGhlbGxvd29ybGQvCisKK09yIGNsaWNrIERlcGxveSBpbiBHb29nbGUgQXBwIEVuZ2luZSBMYXVuY2hlci4KKworRW50ZXIgeW91ciBHb29nbGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGF0IHRoZSBwcm9tcHRzLgorCitZb3UgY2FuIG5vdyBzZWUgeW91ciBhcHBsaWNhdGlvbiBydW5uaW5nIG9uIEFwcCBFbmdpbmUuIElmIHlvdSBzZXQgdXAgYSBmcmVlCithcHBzcG90LmNvbSBkb21haW4gbmFtZSwgdGhlIFVSTCBmb3IgeW91ciB3ZWJzaXRlIGJlZ2lucyB3aXRoIHlvdXIgYXBwbGljYXRpb24KK0lEOjoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgaHR0cDovL2FwcGxpY2F0aW9uLWlkLmFwcHNwb3QuY29tCisKKworQ29uZ3JhdHVsYXRpb25zIQorLS0tLS0tLS0tLS0tLS0tLQorWW91IGhhdmUgY29tcGxldGVkIHRoaXMgdHV0b3JpYWwuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBzdWJqZWN0cworY292ZXJlZCBoZXJlLCBzZWUgdGhlIHJlc3Qgb2YKK2B0aGUgQXBwIEVuZ2luZSBkb2N1bWVudGF0aW9uIDxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzLz5gXyBhbmQKK3RoZSA6cmVmOmBndWlkZS5pbmRleGAuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC91c2luZ2RhdGFzdG9yZS5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC91c2luZ2RhdGFzdG9yZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBhYTNlMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL3VzaW5nZGF0YXN0b3JlLnJzdApAQCAtMCwwICsxLDM0MSBAQAorLi4gX3R1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC51c2luZ2RhdGFzdG9yZToKKworVXNpbmcgdGhlIERhdGFzdG9yZQorPT09PT09PT09PT09PT09PT09PQorU3RvcmluZyBkYXRhIGluIGEgc2NhbGFibGUgd2ViIGFwcGxpY2F0aW9uIGNhbiBiZSB0cmlja3kuIEEgdXNlciBjb3VsZCBiZQoraW50ZXJhY3Rpbmcgd2l0aCBhbnkgb2YgZG96ZW5zIG9mIHdlYiBzZXJ2ZXJzIGF0IGEgZ2l2ZW4gdGltZSwgYW5kIHRoZSB1c2VyJ3MKK25leHQgcmVxdWVzdCBjb3VsZCBnbyB0byBhIGRpZmZlcmVudCB3ZWIgc2VydmVyIHRoYW4gdGhlIG9uZSB0aGF0IGhhbmRsZWQgdGhlCitwcmV2aW91cyByZXF1ZXN0LiBBbGwgd2ViIHNlcnZlcnMgbmVlZCB0byBiZSBpbnRlcmFjdGluZyB3aXRoIGRhdGEgdGhhdCBpcworYWxzbyBzcHJlYWQgb3V0IGFjcm9zcyBkb3plbnMgb2YgbWFjaGluZXMsIHBvc3NpYmx5IGluIGRpZmZlcmVudCBsb2NhdGlvbnMKK2Fyb3VuZCB0aGUgd29ybGQuCisKK1RoYW5rcyB0byBHb29nbGUgQXBwIEVuZ2luZSwgeW91IGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgYW55IG9mIHRoYXQuCitBcHAgRW5naW5lJ3MgaW5mcmFzdHJ1Y3R1cmUgdGFrZXMgY2FyZSBvZiBhbGwgb2YgdGhlIGRpc3RyaWJ1dGlvbiwgcmVwbGljYXRpb24KK2FuZCBsb2FkIGJhbGFuY2luZyBvZiBkYXRhIGJlaGluZCBhIHNpbXBsZSBBUEkgLS0gYW5kIHlvdSBnZXQgYSBwb3dlcmZ1bAorcXVlcnkgZW5naW5lIGFuZCB0cmFuc2FjdGlvbnMgYXMgd2VsbC4KKworVGhlIGRlZmF1bHQgZGF0YXN0b3JlIGZvciBhbiBhcHBsaWNhdGlvbiBpcyBub3cgdGhlIGBIaWdoIFJlcGxpY2F0aW9uIGRhdGFzdG9yZSA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vZGF0YXN0b3JlL2hyLz5gXy4KK1RoaXMgZGF0YXN0b3JlIHVzZXMgdGhlIGBQYXhvcyBhbGdvcml0aG0gPGh0dHA6Ly9sYWJzLmdvb2dsZS5jb20vcGFwZXJzL3BheG9zX21hZGVfbGl2ZS5odG1sPmBfCit0byByZXBsaWNhdGUgZGF0YSBhY3Jvc3MgZGF0YWNlbnRlcnMuIFRoZSBIaWdoIFJlcGxpY2F0aW9uIGRhdGFzdG9yZSBpcworZXh0cmVtZWx5IHJlc2lsaWVudCBpbiB0aGUgZmFjZSBvZiBjYXRhc3Ryb3BoaWMgZmFpbHVyZS4KKworT25lIG9mIHRoZSBjb25zZXF1ZW5jZXMgb2YgdGhpcyBpcyB0aGF0IHRoZSBjb25zaXN0ZW5jeSBndWFyYW50ZWUgZm9yIHRoZQorZGF0YXN0b3JlIG1heSBkaWZmZXIgZnJvbSB3aGF0IHlvdSBhcmUgZmFtaWxpYXIgd2l0aC4gSXQgYWxzbyBkaWZmZXJzIHNsaWdodGx5Citmcm9tIHRoZSBNYXN0ZXIvU2xhdmUgZGF0YXN0b3JlLCB0aGUgb3RoZXIgZGF0YXN0b3JlIG9wdGlvbiB0aGF0IEFwcCBFbmdpbmUKK29mZmVycy4gSW4gdGhlIGV4YW1wbGUgY29kZSBjb21tZW50cywgd2UgaGlnaGxpZ2h0IHNvbWUgd2F5cyB0aGlzIG1pZ2h0IGFmZmVjdAordGhlIGRlc2lnbiBvZiB5b3VyIGFwcC4gRm9yIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sCitzZWUgYFVzaW5nIHRoZSBIaWdoIFJlcGxpY2F0aW9uIERhdGFzdG9yZSA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vZGF0YXN0b3JlL2hyL292ZXJ2aWV3Lmh0bWw+YF8KKyhIUkQpLgorCitUaGUgZGF0YXN0b3JlIHdyaXRlcyBkYXRhIGluIG9iamVjdHMga25vd24gYXMgZW50aXRpZXMsIGFuZCBlYWNoIGVudGl0eSBoYXMgYQora2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZW50aXR5LiBFbnRpdGllcyBjYW4gYmVsb25nIHRvIHRoZSBzYW1lIGVudGl0eSBncm91cCwKK3doaWNoIGFsbG93cyB5b3UgdG8gcGVyZm9ybSBhIHNpbmdsZSB0cmFuc2FjdGlvbiB3aXRoIG11bHRpcGxlIGVudGl0aWVzLgorRW50aXR5IGdyb3VwcyBoYXZlIGEgcGFyZW50IGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGVudGlyZSBlbnRpdHkgZ3JvdXAuCisKK0luIHRoZSBIaWdoIFJlcGxpY2F0aW9uIERhdGFzdG9yZSwgZW50aXR5IGdyb3VwcyBhcmUgYWxzbyBhIHVuaXQgb2YKK2NvbnNpc3RlbmN5LiBRdWVyaWVzIG92ZXIgbXVsdGlwbGUgZW50aXR5IGdyb3VwcyBtYXkgcmV0dXJuIHN0YWxlLCBgZXZlbnR1YWxseSBjb25zaXN0ZW50IDxodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V2ZW50dWFsX2NvbnNpc3RlbmN5PmBfCityZXN1bHRzLiBRdWVyaWVzIG92ZXIgYSBzaW5nbGUgZW50aXR5IGdyb3VwIHJldHVybiB1cC10by1kYXRlLCBzdHJvbmdseQorY29uc2lzdGVudCwgcmVzdWx0cy4gUXVlcmllcyBvdmVyIGEgc2luZ2xlIGVudGl0eSBncm91cCBhcmUgY2FsbGVkIGFuY2VzdG9yCitxdWVyaWVzLiBBbmNlc3RvciBxdWVyaWVzIHVzZSB0aGUgcGFyZW50IGtleSAoaW5zdGVhZCBvZiBhIHNwZWNpZmljIGVudGl0eSdzCitrZXkpLgorCitUaGUgY29kZSBzYW1wbGVzIGluIHRoaXMgZ3VpZGUgb3JnYW5pemUgbGlrZSBlbnRpdGllcyBpbnRvIGVudGl0eSBncm91cHMsIGFuZAordXNlIGFuY2VzdG9yIHF1ZXJpZXMgb24gdGhvc2UgZW50aXR5IGdyb3VwcyB0byByZXR1cm4gc3Ryb25nbHkgY29uc2lzdGVudAorcmVzdWx0cy4gSW4gdGhlIGV4YW1wbGUgY29kZSBjb21tZW50cywgd2UgaGlnaGxpZ2h0IHNvbWUgd2F5cyB0aGlzIG1pZ2h0IGFmZmVjdAordGhlIGRlc2lnbiBvZiB5b3VyIGFwcC4gRm9yIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sCitzZWUgYFVzaW5nIHRoZSBIaWdoIFJlcGxpY2F0aW9uIERhdGFzdG9yZSA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vZGF0YXN0b3JlL2hyL292ZXJ2aWV3Lmh0bWw+YF8uCisKKworQSBDb21wbGV0ZSBFeGFtcGxlIFVzaW5nIHRoZSBEYXRhc3RvcmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitIZXJlIGlzIGEgbmV3IHZlcnNpb24gb2YgYGBoZWxsb3dvcmxkL2hlbGxvd29ybGQucHlgYCB0aGF0IHN0b3JlcyBncmVldGluZ3MKK2luIHRoZSBkYXRhc3RvcmUuIFRoZSByZXN0IG9mIHRoaXMgcGFnZSBkaXNjdXNzZXMgdGhlIG5ldyBwaWVjZXM6OgorCisgICAgaW1wb3J0IGNnaQorICAgIGltcG9ydCBkYXRldGltZQorICAgIGltcG9ydCB1cmxsaWIKKyAgICBpbXBvcnQgd3NnaXJlZi5oYW5kbGVycworCisgICAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgZGIKKyAgICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCB1c2VycworICAgIGltcG9ydCB3ZWJhcHAyCisKKworICAgIGNsYXNzIEdyZWV0aW5nKGRiLk1vZGVsKToKKyAgICAgICIiIk1vZGVscyBhbiBpbmRpdmlkdWFsIEd1ZXN0Ym9vayBlbnRyeSB3aXRoIGFuIGF1dGhvciwgY29udGVudCwgYW5kIGRhdGUuIiIiCisgICAgICBhdXRob3IgPSBkYi5Vc2VyUHJvcGVydHkoKQorICAgICAgY29udGVudCA9IGRiLlN0cmluZ1Byb3BlcnR5KG11bHRpbGluZT1UcnVlKQorICAgICAgZGF0ZSA9IGRiLkRhdGVUaW1lUHJvcGVydHkoYXV0b19ub3dfYWRkPVRydWUpCisKKworICAgIGRlZiBndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lPU5vbmUpOgorICAgICAgIiIiQ29uc3RydWN0cyBhIGRhdGFzdG9yZSBrZXkgZm9yIGEgR3Vlc3Rib29rIGVudGl0eSB3aXRoIGd1ZXN0Ym9va19uYW1lLiIiIgorICAgICAgcmV0dXJuIGRiLktleS5mcm9tX3BhdGgoJ0d1ZXN0Ym9vaycsIGd1ZXN0Ym9va19uYW1lIG9yICdkZWZhdWx0X2d1ZXN0Ym9vaycpCisKKworICAgIGNsYXNzIE1haW5QYWdlKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJzxodG1sPjxib2R5PicpCisgICAgICAgIGd1ZXN0Ym9va19uYW1lPXNlbGYucmVxdWVzdC5nZXQoJ2d1ZXN0Ym9va19uYW1lJykKKworICAgICAgICAjIEFuY2VzdG9yIFF1ZXJpZXMsIGFzIHNob3duIGhlcmUsIGFyZSBzdHJvbmdseSBjb25zaXN0ZW50IHdpdGggdGhlIEhpZ2gKKyAgICAgICAgIyBSZXBsaWNhdGlvbiBkYXRhc3RvcmUuIFF1ZXJpZXMgdGhhdCBzcGFuIGVudGl0eSBncm91cHMgYXJlIGV2ZW50dWFsbHkKKyAgICAgICAgIyBjb25zaXN0ZW50LiBJZiB3ZSBvbWl0dGVkIHRoZSBhbmNlc3RvciBmcm9tIHRoaXMgcXVlcnkgdGhlcmUgd291bGQgYmUgYQorICAgICAgICAjIHNsaWdodCBjaGFuY2UgdGhhdCBHcmVldGluZyB0aGF0IGhhZCBqdXN0IGJlZW4gd3JpdHRlbiB3b3VsZCBub3Qgc2hvdyB1cAorICAgICAgICAjIGluIGEgcXVlcnkuCisgICAgICAgIGdyZWV0aW5ncyA9IGRiLkdxbFF1ZXJ5KCJTRUxFQ1QgKiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIEdyZWV0aW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIEFOQ0VTVE9SIElTIDoxICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9SREVSIEJZIGRhdGUgREVTQyBMSU1JVCAxMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXN0Ym9va19rZXkoZ3Vlc3Rib29rX25hbWUpKQorCisgICAgICAgIGZvciBncmVldGluZyBpbiBncmVldGluZ3M6CisgICAgICAgICAgaWYgZ3JlZXRpbmcuYXV0aG9yOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoCisgICAgICAgICAgICAgICAgJzxiPiVzPC9iPiB3cm90ZTonICUgZ3JlZXRpbmcuYXV0aG9yLm5pY2tuYW1lKCkpCisgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdBbiBhbm9ueW1vdXMgcGVyc29uIHdyb3RlOicpCisgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJzxibG9ja3F1b3RlPiVzPC9ibG9ja3F1b3RlPicgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNnaS5lc2NhcGUoZ3JlZXRpbmcuY29udGVudCkpCisKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoIiIiCisgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iL3NpZ24/JXMiIG1ldGhvZD0icG9zdCI+CisgICAgICAgICAgICAgICAgPGRpdj48dGV4dGFyZWEgbmFtZT0iY29udGVudCIgcm93cz0iMyIgY29scz0iNjAiPjwvdGV4dGFyZWE+PC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2lnbiBHdWVzdGJvb2siPjwvZGl2PgorICAgICAgICAgICAgICA8L2Zvcm0+CisgICAgICAgICAgICAgIDxocj4KKyAgICAgICAgICAgICAgPGZvcm0+R3Vlc3Rib29rIG5hbWU6IDxpbnB1dCB2YWx1ZT0iJXMiIG5hbWU9Imd1ZXN0Ym9va19uYW1lIj4KKyAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InN3aXRjaCI+PC9mb3JtPgorICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICAgIDwvaHRtbD4iIiIgJSAodXJsbGliLnVybGVuY29kZSh7J2d1ZXN0Ym9va19uYW1lJzogZ3Vlc3Rib29rX25hbWV9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNnaS5lc2NhcGUoZ3Vlc3Rib29rX25hbWUpKSkKKworCisgICAgY2xhc3MgR3Vlc3Rib29rKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgZGVmIHBvc3Qoc2VsZik6CisgICAgICAgICMgV2Ugc2V0IHRoZSBzYW1lIHBhcmVudCBrZXkgb24gdGhlICdHcmVldGluZycgdG8gZW5zdXJlIGVhY2ggZ3JlZXRpbmcgaXMgaW4KKyAgICAgICAgIyB0aGUgc2FtZSBlbnRpdHkgZ3JvdXAuIFF1ZXJpZXMgYWNyb3NzIHRoZSBzaW5nbGUgZW50aXR5IGdyb3VwIHdpbGwgYmUKKyAgICAgICAgIyBjb25zaXN0ZW50LiBIb3dldmVyLCB0aGUgd3JpdGUgcmF0ZSB0byBhIHNpbmdsZSBlbnRpdHkgZ3JvdXAgc2hvdWxkCisgICAgICAgICMgYmUgbGltaXRlZCB0byB+MS9zZWNvbmQuCisgICAgICAgIGd1ZXN0Ym9va19uYW1lID0gc2VsZi5yZXF1ZXN0LmdldCgnZ3Vlc3Rib29rX25hbWUnKQorICAgICAgICBncmVldGluZyA9IEdyZWV0aW5nKHBhcmVudD1ndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lKSkKKworICAgICAgICBpZiB1c2Vycy5nZXRfY3VycmVudF91c2VyKCk6CisgICAgICAgICAgZ3JlZXRpbmcuYXV0aG9yID0gdXNlcnMuZ2V0X2N1cnJlbnRfdXNlcigpCisKKyAgICAgICAgZ3JlZXRpbmcuY29udGVudCA9IHNlbGYucmVxdWVzdC5nZXQoJ2NvbnRlbnQnKQorICAgICAgICBncmVldGluZy5wdXQoKQorICAgICAgICBzZWxmLnJlZGlyZWN0KCcvPycgKyB1cmxsaWIudXJsZW5jb2RlKHsnZ3Vlc3Rib29rX25hbWUnOiBndWVzdGJvb2tfbmFtZX0pKQorCisKKyAgICBhcHBsaWNhdGlvbiA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICgnLycsIE1haW5QYWdlKSwKKyAgICAgICgnL3NpZ24nLCBHdWVzdGJvb2spCisgICAgXSwgZGVidWc9VHJ1ZSkKKworCisgICAgZGVmIG1haW4oKToKKyAgICAgIGFwcGxpY2F0aW9uLlJVTigpCisKKworICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICBtYWluKCkKKworUmVwbGFjZSBgYGhlbGxvd29ybGQvaGVsbG93b3JsZC5weWBgIHdpdGggdGhpcywgdGhlbiByZWxvYWQKK2BodHRwOi8vbG9jYWxob3N0OjgwODAvIDxodHRwOi8vbG9jYWxob3N0OjgwODAvPmBfIGluIHlvdXIgYnJvd3Nlci4gUG9zdCBhCitmZXcgbWVzc2FnZXMgdG8gdmVyaWZ5IHRoYXQgbWVzc2FnZXMgZ2V0IHN0b3JlZCBhbmQgZGlzcGxheWVkIGNvcnJlY3RseS4KKworCitTdG9yaW5nIHRoZSBTdWJtaXR0ZWQgR3JlZXRpbmdzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitBcHAgRW5naW5lIGluY2x1ZGVzIGEgZGF0YSBtb2RlbGluZyBBUEkgZm9yIFB5dGhvbi4gSXQncyBzaW1pbGFyIHRvIERqYW5nbydzCitkYXRhIG1vZGVsaW5nIEFQSSwgYnV0IHVzZXMgQXBwIEVuZ2luZSdzIHNjYWxhYmxlIGRhdGFzdG9yZSBiZWhpbmQgdGhlIHNjZW5lcy4KKworRm9yIHRoZSBndWVzdGJvb2sgYXBwbGljYXRpb24sIHdlIHdhbnQgdG8gc3RvcmUgZ3JlZXRpbmdzIHBvc3RlZCBieSB1c2Vycy4KK0VhY2ggZ3JlZXRpbmcgaW5jbHVkZXMgdGhlIGF1dGhvcidzIG5hbWUsIHRoZSBtZXNzYWdlIGNvbnRlbnQsIGFuZCB0aGUgZGF0ZQorYW5kIHRpbWUgdGhlIG1lc3NhZ2Ugd2FzIHBvc3RlZCBzbyB3ZSBjYW4gZGlzcGxheSBtZXNzYWdlcyBpbiBjaHJvbm9sb2dpY2FsCitvcmRlci4KKworVG8gdXNlIHRoZSBkYXRhIG1vZGVsaW5nIEFQSSwgaW1wb3J0IHRoZSBgYGdvb2dsZS5hcHBlbmdpbmUuZXh0LmRiYGAgbW9kdWxlOjoKKworICAgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IGRiCisKK1RoZSBmb2xsb3dpbmcgZGVmaW5lcyBhIGRhdGEgbW9kZWwgZm9yIGEgZ3JlZXRpbmc6OgorCisgICAgY2xhc3MgR3JlZXRpbmcoZGIuTW9kZWwpOgorICAgICAgICBhdXRob3IgPSBkYi5Vc2VyUHJvcGVydHkoKQorICAgICAgICBjb250ZW50ID0gZGIuU3RyaW5nUHJvcGVydHkobXVsdGlsaW5lPVRydWUpCisgICAgICAgIGRhdGUgPSBkYi5EYXRlVGltZVByb3BlcnR5KGF1dG9fbm93X2FkZD1UcnVlKQorCitUaGlzIGRlZmluZXMgYSBgYEdyZWV0aW5nYGAgbW9kZWwgd2l0aCB0aHJlZSBwcm9wZXJ0aWVzOiBgYGF1dGhvcmBgIHdob3NlCit2YWx1ZSBpcyBhIGBgVXNlcmBgIG9iamVjdCwgY29udGVudCB3aG9zZSB2YWx1ZSBpcyBhIHN0cmluZywgYW5kIGBgZGF0ZWBgIHdob3NlCit2YWx1ZSBpcyBhIGBgZGF0ZXRpbWUuZGF0ZXRpbWVgYC4KKworU29tZSBwcm9wZXJ0eSBjb25zdHJ1Y3RvcnMgdGFrZSBwYXJhbWV0ZXJzIHRvIGZ1cnRoZXIgY29uZmlndXJlIHRoZWlyIGJlaGF2aW9yLgorR2l2aW5nIHRoZSBgYGRiLlN0cmluZ1Byb3BlcnR5YGAgY29uc3RydWN0b3IgdGhlIGBgbXVsdGlsaW5lPVRydWVgYCBwYXJhbWV0ZXIKK3NheXMgdGhhdCB2YWx1ZXMgZm9yIHRoaXMgcHJvcGVydHkgY2FuIGNvbnRhaW4gbmV3bGluZSBjaGFyYWN0ZXJzLiBHaXZpbmcgdGhlCitgYGRiLkRhdGVUaW1lUHJvcGVydHlgYCBjb25zdHJ1Y3RvciBhIGBgYXV0b19ub3dfYWRkPVRydWVgYCBwYXJhbWV0ZXIKK2NvbmZpZ3VyZXMgdGhlIG1vZGVsIHRvIGF1dG9tYXRpY2FsbHkgZ2l2ZSBuZXcgb2JqZWN0cyBhIGBgZGF0ZWBgIG9mIHRoZSB0aW1lCit0aGUgb2JqZWN0IGlzIGNyZWF0ZWQsIGlmIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IG90aGVyd2lzZSBwcm92aWRlIGEgdmFsdWUuCitGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHByb3BlcnR5IHR5cGVzIGFuZCB0aGVpciBvcHRpb25zLCBzZWUgYHRoZSBEYXRhc3RvcmUgcmVmZXJlbmNlIDxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzL3B5dGhvbi9kYXRhc3RvcmUvPmBfLgorCitOb3cgdGhhdCB3ZSBoYXZlIGEgZGF0YSBtb2RlbCBmb3IgZ3JlZXRpbmdzLCB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSB0aGUgbW9kZWwKK3RvIGNyZWF0ZSBuZXcgYGBHcmVldGluZ2BgIG9iamVjdHMgYW5kIHB1dCB0aGVtIGludG8gdGhlIGRhdGFzdG9yZS4gVGhlIGZvbGxvd2luZworbmV3IHZlcnNpb24gb2YgdGhlIGBgR3Vlc3Rib29rYGAgaGFuZGxlciBjcmVhdGVzIG5ldyBncmVldGluZ3MgYW5kIHNhdmVzIHRoZW0KK3RvIHRoZSBkYXRhc3RvcmU6OgorCisgICAgY2xhc3MgR3Vlc3Rib29rKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgcG9zdChzZWxmKToKKyAgICAgICAgICBndWVzdGJvb2tfbmFtZSA9IHNlbGYucmVxdWVzdC5nZXQoJ2d1ZXN0Ym9va19uYW1lJykKKyAgICAgICAgICBncmVldGluZyA9IEdyZWV0aW5nKHBhcmVudD1ndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lKSkKKworICAgICAgICAgIGlmIHVzZXJzLmdldF9jdXJyZW50X3VzZXIoKToKKyAgICAgICAgICAgIGdyZWV0aW5nLmF1dGhvciA9IHVzZXJzLmdldF9jdXJyZW50X3VzZXIoKQorCisgICAgICAgICAgZ3JlZXRpbmcuY29udGVudCA9IHNlbGYucmVxdWVzdC5nZXQoJ2NvbnRlbnQnKQorICAgICAgICAgIGdyZWV0aW5nLnB1dCgpCisgICAgICAgICAgc2VsZi5yZWRpcmVjdCgnLz8nICsgdXJsbGliLnVybGVuY29kZSh7J2d1ZXN0Ym9va19uYW1lJzogZ3Vlc3Rib29rX25hbWV9KSkKKworVGhpcyBuZXcgYGBHdWVzdGJvb2tgYCBoYW5kbGVyIGNyZWF0ZXMgYSBuZXcgYGBHcmVldGluZ2BgIG9iamVjdCwgdGhlbiBzZXRzIGl0cworYGBhdXRob3JgYCBhbmQgYGBjb250ZW50YGAgcHJvcGVydGllcyB3aXRoIHRoZSBkYXRhIHBvc3RlZCBieSB0aGUgdXNlci4KK1RoZSBwYXJlbnQgaGFzIGFuIGVudGl0eSBraW5kICJHdWVzdGJvb2siLiBUaGVyZSBpcyBubyBuZWVkIHRvIGNyZWF0ZSB0aGUKKyJHdWVzdGJvb2siIGVudGl0eSBiZWZvcmUgc2V0dGluZyBpdCB0byBiZSB0aGUgcGFyZW50IG9mIGFub3RoZXIgZW50aXR5LiBJbgordGhpcyBleGFtcGxlLCB0aGUgcGFyZW50IGlzIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgdHJhbnNhY3Rpb24gYW5kCitjb25zaXN0ZW5jeSBwdXJwb3Nlcy4gU2VlIGBFbnRpdHkgR3JvdXBzIGFuZCBBbmNlc3RvciBQYXRocyA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vZGF0YXN0b3JlL2VudGl0aWVzLmh0bWwjRW50aXR5X0dyb3Vwc19hbmRfQW5jZXN0b3JfUGF0aHM+YF8KK2ZvciBtb3JlIGluZm9ybWF0aW9uLiBPYmplY3RzIHRoYXQgc2hhcmUgYSBjb21tb24gYGFuY2VzdG9yIDxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzL3B5dGhvbi9kYXRhc3RvcmUvcXVlcnljbGFzcy5odG1sI1F1ZXJ5X2FuY2VzdG9yPmBfCitiZWxvbmcgdG8gdGhlIHNhbWUgZW50aXR5IGdyb3VwLiBJdCBkb2VzIG5vdCBzZXQgdGhlIGRhdGUgcHJvcGVydHksIHNvIGRhdGUgaXMKK2F1dG9tYXRpY2FsbHkgc2V0IHRvICJub3csIiBhcyB3ZSBjb25maWd1cmVkIHRoZSBtb2RlbCB0byBkby4KKworRmluYWxseSwgYGBncmVldGluZy5wdXQoKWBgIHNhdmVzIG91ciBuZXcgb2JqZWN0IHRvIHRoZSBkYXRhc3RvcmUuIElmIHdlIGhhZAorYWNxdWlyZWQgdGhpcyBvYmplY3QgZnJvbSBhIHF1ZXJ5LCBgYHB1dCgpYGAgd291bGQgaGF2ZSB1cGRhdGVkIHRoZSBleGlzdGluZworb2JqZWN0LiBTaW5jZSB3ZSBjcmVhdGVkIHRoaXMgb2JqZWN0IHdpdGggdGhlIG1vZGVsIGNvbnN0cnVjdG9yLCBgYHB1dCgpYGAgYWRkcwordGhlIG5ldyBvYmplY3QgdG8gdGhlIGRhdGFzdG9yZS4KKworQmVjYXVzZSBxdWVyeWluZyBpbiB0aGUgSGlnaCBSZXBsaWNhdGlvbiBkYXRhc3RvcmUgaXMgb25seSBzdHJvbmdseSBjb25zaXN0ZW50Cit3aXRoaW4gZW50aXR5IGdyb3Vwcywgd2UgYXNzaWduIGFsbCBHcmVldGluZ3MgdG8gdGhlIHNhbWUgZW50aXR5IGdyb3VwIGluIHRoaXMKK2V4YW1wbGUgYnkgc2V0dGluZyB0aGUgc2FtZSBwYXJlbnQgZm9yIGVhY2ggR3JlZXRpbmcuIFRoaXMgbWVhbnMgYSB1c2VyIHdpbGwKK2Fsd2F5cyBzZWUgYSBHcmVldGluZyBpbW1lZGlhdGVseSBhZnRlciBpdCB3YXMgd3JpdHRlbi4gSG93ZXZlciwgdGhlIHJhdGUgYXQKK3doaWNoIHlvdSBjYW4gd3JpdGUgdG8gdGhlIHNhbWUgZW50aXR5IGdyb3VwIGlzIGxpbWl0ZWQgdG8gMSB3cml0ZSB0byB0aGUKK2VudGl0eSBncm91cCBwZXIgc2Vjb25kLiBXaGVuIHlvdSBkZXNpZ24gYSByZWFsIGFwcGxpY2F0aW9uIHlvdSdsbCBuZWVkIHRvCitrZWVwIHRoaXMgZmFjdCBpbiBtaW5kLiBOb3RlIHRoYXQgYnkgdXNpbmcgc2VydmljZXMgc3VjaCBhcyBgTWVtY2FjaGUgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL21lbWNhY2hlLz5gXywKK3lvdSBjYW4gbWl0aWdhdGUgdGhlIGNoYW5jZSB0aGF0IGEgdXNlciB3b24ndCBzZWUgZnJlc2ggcmVzdWx0cyB3aGVuIHF1ZXJ5aW5nCithY3Jvc3MgZW50aXR5IGdyb3VwcyBpbW1lZGlhdGVseSBhZnRlciBhIHdyaXRlLgorCisKK1JldHJpZXZpbmcgdGhlIFN0b3JlZCBHcmVldGluZ3MgV2l0aCBHUUwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSBBcHAgRW5naW5lIGRhdGFzdG9yZSBoYXMgYSBzb3BoaXN0aWNhdGVkIHF1ZXJ5IGVuZ2luZSBmb3IgZGF0YSBtb2RlbHMuCitCZWNhdXNlIHRoZSBBcHAgRW5naW5lIGRhdGFzdG9yZSBpcyBub3QgYSB0cmFkaXRpb25hbCByZWxhdGlvbmFsIGRhdGFiYXNlLAorcXVlcmllcyBhcmUgbm90IHNwZWNpZmllZCB1c2luZyBTUUwuIEluc3RlYWQsIHlvdSBjYW4gcHJlcGFyZSBxdWVyaWVzIHVzaW5nIGEKK1NRTC1saWtlIHF1ZXJ5IGxhbmd1YWdlIHdlIGNhbGwgR1FMLiBHUUwgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBBcHAgRW5naW5lCitkYXRhc3RvcmUgcXVlcnkgZW5naW5lJ3MgZmVhdHVyZXMgdXNpbmcgYSBmYW1pbGlhciBzeW50YXguCisKK1RoZSBmb2xsb3dpbmcgbmV3IHZlcnNpb24gb2YgdGhlIGBgTWFpblBhZ2VgYCBoYW5kbGVyIHF1ZXJpZXMgdGhlIGRhdGFzdG9yZQorZm9yIGdyZWV0aW5nczo6CisKKyAgICBjbGFzcyBNYWluUGFnZSh3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCc8aHRtbD48Ym9keT4nKQorICAgICAgICAgICAgZ3Vlc3Rib29rX25hbWU9c2VsZi5yZXF1ZXN0LmdldCgnZ3Vlc3Rib29rX25hbWUnKQorCisgICAgICAgICAgICBncmVldGluZ3MgPSBkYi5HcWxRdWVyeSgiU0VMRUNUICogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZST00gR3JlZXRpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIEFOQ0VTVE9SIElTIDoxICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPUkRFUiBCWSBkYXRlIERFU0MgTElNSVQgMTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3Rib29rX2tleShndWVzdGJvb2tfbmFtZSkpCisKKworICAgICAgICAgICAgZm9yIGdyZWV0aW5nIGluIGdyZWV0aW5nczoKKyAgICAgICAgICAgICAgICBpZiBncmVldGluZy5hdXRob3I6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCc8Yj4lczwvYj4gd3JvdGU6JyAlIGdyZWV0aW5nLmF1dGhvci5uaWNrbmFtZSgpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdBbiBhbm9ueW1vdXMgcGVyc29uIHdyb3RlOicpCisgICAgICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJzxibG9ja3F1b3RlPiVzPC9ibG9ja3F1b3RlPicgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNnaS5lc2NhcGUoZ3JlZXRpbmcuY29udGVudCkpCisKKyAgICAgICAgICAgICMgV3JpdGUgdGhlIHN1Ym1pc3Npb24gZm9ybSBhbmQgdGhlIGZvb3RlciBvZiB0aGUgcGFnZQorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoIiIiCisgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249Ii9zaWduIiBtZXRob2Q9InBvc3QiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2Pjx0ZXh0YXJlYSBuYW1lPSJjb250ZW50IiByb3dzPSIzIiBjb2xzPSI2MCI+PC90ZXh0YXJlYT48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPGRpdj48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2lnbiBHdWVzdGJvb2siPjwvZGl2PgorICAgICAgICAgICAgICAgICAgPC9mb3JtPgorICAgICAgICAgICAgICAgIDwvYm9keT4KKyAgICAgICAgICAgICAgPC9odG1sPiIiIikKKworVGhlIHF1ZXJ5IGhhcHBlbnMgaGVyZTo6CisKKyAgICBncmVldGluZ3MgPSBkYi5HcWxRdWVyeSgiU0VMRUNUICogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIEdyZWV0aW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgQU5DRVNUT1IgSVMgOjEgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPUkRFUiBCWSBkYXRlIERFU0MgTElNSVQgMTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lKSkKKworQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjYWxsIHRoZSBgYGdxbCguLi4pYGAgbWV0aG9kIG9uIHRoZSBgYEdyZWV0aW5nYGAgY2xhc3MsCithbmQgb21pdCB0aGUgYGBTRUxFQ1QgKiBGUk9NIEdyZWV0aW5nYGAgZnJvbSB0aGUgcXVlcnk6OgorCisgICAgZ3JlZXRpbmdzID0gR3JlZXRpbmcuZ3FsKCJXSEVSRSBBTkNFU1RPUiBJUyA6MSBPUkRFUiBCWSBkYXRlIERFU0MgTElNSVQgMTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lKSkKKworQXMgd2l0aCBTUUwsIGtleXdvcmRzIChzdWNoIGFzIGBgU0VMRUNUYGApIGFyZSBjYXNlIGluc2Vuc2l0aXZlLiBOYW1lcywKK2hvd2V2ZXIsIGFyZSBjYXNlIHNlbnNpdGl2ZS4KKworQmVjYXVzZSB0aGUgcXVlcnkgcmV0dXJucyBmdWxsIGRhdGEgb2JqZWN0cywgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBzZWxlY3QKK3NwZWNpZmljIHByb3BlcnRpZXMgZnJvbSB0aGUgbW9kZWwuIEFsbCBHUUwgcXVlcmllcyBzdGFydCB3aXRoCitgYFNFTEVDVCAqIEZST00gbW9kZWxgYCAob3IgYXJlIHNvIGltcGxpZWQgYnkgdGhlIG1vZGVsJ3MgYGBncWwoLi4uKWBgIG1ldGhvZCkKK3NvIGFzIHRvIHJlc2VtYmxlIHRoZWlyIFNRTCBlcXVpdmFsZW50cy4KKworQSBHUUwgcXVlcnkgY2FuIGhhdmUgYSBgYFdIRVJFYGAgY2xhdXNlIHRoYXQgZmlsdGVycyB0aGUgcmVzdWx0IHNldCBieSBvbmUgb3IKK21vcmUgY29uZGl0aW9ucyBiYXNlZCBvbiBwcm9wZXJ0eSB2YWx1ZXMuIFVubGlrZSBTUUwsIEdRTCBxdWVyaWVzIG1heSBub3QKK2NvbnRhaW4gdmFsdWUgY29uc3RhbnRzOiBJbnN0ZWFkLCBHUUwgdXNlcyBwYXJhbWV0ZXIgYmluZGluZyBmb3IgYWxsIHZhbHVlcworaW4gcXVlcmllcy4gRm9yIGV4YW1wbGUsIHRvIGdldCBvbmx5IHRoZSBncmVldGluZ3MgcG9zdGVkIGJ5IHRoZSBjdXJyZW50IHVzZXI6OgorCisgICAgaWYgdXNlcnMuZ2V0X2N1cnJlbnRfdXNlcigpOgorICAgICAgICBncmVldGluZ3MgPSBHcmVldGluZy5ncWwoCisgICAgICAgICAgICAiV0hFUkUgQU5DRVNUT1IgSVMgOjEgQU5EIGF1dGhvciA9IDoyIE9SREVSIEJZIGRhdGUgREVTQyIsCisgICAgICAgICAgICBndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lKSwgdXNlcnMuZ2V0X2N1cnJlbnRfdXNlcigpKQorCitZb3UgY2FuIGFsc28gdXNlIG5hbWVkIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBwb3NpdGlvbmFsIHBhcmFtZXRlcnM6OgorCisgICAgZ3JlZXRpbmdzID0gR3JlZXRpbmcuZ3FsKCJXSEVSRSBBTkNFU1RPUiA9IDphbmNlc3RvciBBTkQgYXV0aG9yID0gOmF1dGhvciBPUkRFUiBCWSBkYXRlIERFU0MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvcj1ndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lKSwgYXV0aG9yPXVzZXJzLmdldF9jdXJyZW50X3VzZXIoKSkKKworSW4gYWRkaXRpb24gdG8gR1FMLCB0aGUgZGF0YXN0b3JlIEFQSSBwcm92aWRlcyBhbm90aGVyIG1lY2hhbmlzbSBmb3IgYnVpbGRpbmcKK3F1ZXJ5IG9iamVjdHMgdXNpbmcgbWV0aG9kcy4gVGhlIHF1ZXJ5IGFib3ZlIGNvdWxkIGFsc28gYmUgcHJlcGFyZWQgYXMgZm9sbG93czo6CisKKyAgICBncmVldGluZ3MgPSBHcmVldGluZy5hbGwoKQorICAgIGdyZWV0aW5ncy5hbmNlc3RvcihndWVzdGJvb2tfa2V5KGd1ZXN0Ym9va19uYW1lKSkKKyAgICBncmVldGluZ3MuZmlsdGVyKCJhdXRob3IgPSIsIHVzZXJzLmdldF9jdXJyZW50X3VzZXIoKSkKKyAgICBncmVldGluZ3Mub3JkZXIoIi1kYXRlIikKKworRm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgR1FMIGFuZCB0aGUgcXVlcnkgQVBJcywgc2VlIHRoZSBgRGF0YXN0b3JlIHJlZmVyZW5jZSA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vZGF0YXN0b3JlLz5gXy4KKworCitDbGVhcmluZyB0aGUgRGV2ZWxvcG1lbnQgU2VydmVyIERhdGFzdG9yZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSBkZXZlbG9wbWVudCB3ZWIgc2VydmVyIHVzZXMgYSBsb2NhbCB2ZXJzaW9uIG9mIHRoZSBkYXRhc3RvcmUgZm9yIHRlc3RpbmcKK3lvdXIgYXBwbGljYXRpb24sIHVzaW5nIHRlbXBvcmFyeSBmaWxlcy4gVGhlIGRhdGEgcGVyc2lzdHMgYXMgbG9uZyBhcyB0aGUKK3RlbXBvcmFyeSBmaWxlcyBleGlzdCwgYW5kIHRoZSB3ZWIgc2VydmVyIGRvZXMgbm90IHJlc2V0IHRoZXNlIGZpbGVzIHVubGVzcworeW91IGFzayBpdCB0byBkbyBzby4KKworSWYgeW91IHdhbnQgdGhlIGRldmVsb3BtZW50IHNlcnZlciB0byBlcmFzZSBpdHMgZGF0YXN0b3JlIHByaW9yIHRvIHN0YXJ0aW5nIHVwLAordXNlIHRoZSBgYC0tY2xlYXJfZGF0YXN0b3JlYGAgb3B0aW9uIHdoZW4gc3RhcnRpbmcgdGhlIHNlcnZlcjoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgZGV2X2FwcHNlcnZlci5weSAtLWNsZWFyX2RhdGFzdG9yZSBoZWxsb3dvcmxkLworCisKK05leHQuLi4KKy0tLS0tLS0KK1dlIG5vdyBoYXZlIGEgd29ya2luZyBndWVzdCBib29rIGFwcGxpY2F0aW9uIHRoYXQgYXV0aGVudGljYXRlcyB1c2VycyB1c2luZworR29vZ2xlIGFjY291bnRzLCBsZXRzIHRoZW0gc3VibWl0IG1lc3NhZ2VzLCBhbmQgZGlzcGxheXMgbWVzc2FnZXMgb3RoZXIgdXNlcnMKK2hhdmUgbGVmdC4gQmVjYXVzZSBBcHAgRW5naW5lIGhhbmRsZXMgc2NhbGluZyBhdXRvbWF0aWNhbGx5LCB3ZSB3aWxsIG5vdCBuZWVkCit0byByZXZpc2l0IHRoaXMgY29kZSBhcyBvdXIgYXBwbGljYXRpb24gZ2V0cyBwb3B1bGFyLgorCitUaGlzIGxhdGVzdCB2ZXJzaW9uIG1peGVzIEhUTUwgY29udGVudCB3aXRoIHRoZSBjb2RlIGZvciB0aGUgYGBNYWluUGFnZWBgCitoYW5kbGVyLiBUaGlzIHdpbGwgbWFrZSBpdCBkaWZmaWN1bHQgdG8gY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBhcHBsaWNhdGlvbiwKK2VzcGVjaWFsbHkgYXMgb3VyIGFwcGxpY2F0aW9uIGdldHMgYmlnZ2VyIGFuZCBtb3JlIGNvbXBsZXguIExldCdzIHVzZQordGVtcGxhdGVzIHRvIG1hbmFnZSB0aGUgYXBwZWFyYW5jZSwgYW5kIGludHJvZHVjZSBzdGF0aWMgZmlsZXMgZm9yIGEgQ1NTCitzdHlsZXNoZWV0LgorCitDb250aW51ZSB0byA6cmVmOmB0dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQudGVtcGxhdGVzYC4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL3VzaW5ndXNlcnMucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvdXNpbmd1c2Vycy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNmMjg4MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL3VzaW5ndXNlcnMucnN0CkBAIC0wLDAgKzEsODMgQEAKKy4uIF90dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQudXNpbmd1c2VyczoKKworVXNpbmcgdGhlIFVzZXJzIFNlcnZpY2UKKz09PT09PT09PT09PT09PT09PT09PT09CitHb29nbGUgQXBwIEVuZ2luZSBwcm92aWRlcyBzZXZlcmFsIHVzZWZ1bCBzZXJ2aWNlcyBiYXNlZCBvbiBHb29nbGUKK2luZnJhc3RydWN0dXJlLCBhY2Nlc3NpYmxlIGJ5IGFwcGxpY2F0aW9ucyB1c2luZyBsaWJyYXJpZXMgaW5jbHVkZWQgd2l0aCB0aGUKK1NESy4gT25lIHN1Y2ggc2VydmljZSBpcyB0aGUgVXNlcnMgc2VydmljZSwgd2hpY2ggbGV0cyB5b3VyIGFwcGxpY2F0aW9uCitpbnRlZ3JhdGUgd2l0aCBHb29nbGUgdXNlciBhY2NvdW50cy4gV2l0aCB0aGUgVXNlcnMgc2VydmljZSwgeW91ciB1c2VycyBjYW4KK3VzZSB0aGUgR29vZ2xlIGFjY291bnRzIHRoZXkgYWxyZWFkeSBoYXZlIHRvIHNpZ24gaW4gdG8geW91ciBhcHBsaWNhdGlvbi4KK0xldCdzIHVzZSB0aGUgVXNlcnMgc2VydmljZSB0byBwZXJzb25hbGl6ZSB0aGlzIGFwcGxpY2F0aW9uJ3MgZ3JlZXRpbmcuCisKKworVXNpbmcgVXNlcnMKKy0tLS0tLS0tLS0tCitFZGl0IGBgaGVsbG93b3JsZC9oZWxsb3dvcmxkLnB5YGAgYWdhaW4sIGFuZCByZXBsYWNlIGl0cyBjb250ZW50cyB3aXRoIHRoZQorZm9sbG93aW5nOjoKKworICAgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5hcGkgaW1wb3J0IHVzZXJzCisgICAgaW1wb3J0IHdlYmFwcDIKKworICAgIGNsYXNzIE1haW5QYWdlKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgdXNlciA9IHVzZXJzLmdldF9jdXJyZW50X3VzZXIoKQorCisgICAgICAgICAgICBpZiB1c2VyOgorICAgICAgICAgICAgICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFpbicKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnSGVsbG8sICcgKyB1c2VyLm5pY2tuYW1lKCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYucmVkaXJlY3QodXNlcnMuY3JlYXRlX2xvZ2luX3VybChzZWxmLnJlcXVlc3QudXJpKSkKKworICAgIGFwcGxpY2F0aW9uID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAoJy8nLCBNYWluUGFnZSkKKyAgICBdLCBkZWJ1Zz1UcnVlKQorCisgICAgZGVmIG1haW4oKToKKyAgICAgICAgYXBwbGljYXRpb24ucnVuKCkKKworICAgIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgICAgIG1haW4oKQorCitSZWxvYWQgdGhlIHBhZ2UgaW4geW91ciBicm93c2VyLiBZb3VyIGFwcGxpY2F0aW9uIHJlZGlyZWN0cyB5b3UgdG8gdGhlIGxvY2FsCit2ZXJzaW9uIG9mIHRoZSBHb29nbGUgc2lnbi1pbiBwYWdlIHN1aXRhYmxlIGZvciB0ZXN0aW5nIHlvdXIgYXBwbGljYXRpb24uCitZb3UgY2FuIGVudGVyIGFueSB1c2VybmFtZSB5b3UnZCBsaWtlIGluIHRoaXMgc2NyZWVuLCBhbmQgeW91ciBhcHBsaWNhdGlvbgord2lsbCBzZWUgYSBmYWtlIGBgVXNlcmBgIG9iamVjdCBiYXNlZCBvbiB0aGF0IHVzZXJuYW1lLgorCitXaGVuIHlvdXIgYXBwbGljYXRpb24gaXMgcnVubmluZyBvbiBBcHAgRW5naW5lLCB1c2VycyB3aWxsIGJlIGRpcmVjdGVkIHRvIHRoZQorR29vZ2xlIEFjY291bnRzIHNpZ24taW4gcGFnZSwgdGhlbiByZWRpcmVjdGVkIGJhY2sgdG8geW91ciBhcHBsaWNhdGlvbiBhZnRlcgorc3VjY2Vzc2Z1bGx5IHNpZ25pbmcgaW4gb3IgY3JlYXRpbmcgYW4gYWNjb3VudC4KKworCitUaGUgVXNlcnMgQVBJCistLS0tLS0tLS0tLS0tCitMZXQncyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIG5ldyBwaWVjZXMuCisKK0lmIHRoZSB1c2VyIGlzIGFscmVhZHkgc2lnbmVkIGluIHRvIHlvdXIgYXBwbGljYXRpb24sIGBgZ2V0X2N1cnJlbnRfdXNlcigpYGAKK3JldHVybnMgdGhlIGBgVXNlcmBgIG9iamVjdCBmb3IgdGhlIHVzZXIuIE90aGVyd2lzZSwgaXQgcmV0dXJucyBgYE5vbmVgYDo6CisKKyAgICB1c2VyID0gdXNlcnMuZ2V0X2N1cnJlbnRfdXNlcigpCisKK0lmIHRoZSB1c2VyIGhhcyBzaWduZWQgaW4sIGRpc3BsYXkgYSBwZXJzb25hbGl6ZWQgbWVzc2FnZSwgdXNpbmcgdGhlIG5pY2tuYW1lCithc3NvY2lhdGVkIHdpdGggdGhlIHVzZXIncyBhY2NvdW50OjoKKworICAgIGlmIHVzZXI6CisgICAgICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAndGV4dC9wbGFpbicKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ0hlbGxvLCAnICsgdXNlci5uaWNrbmFtZSgpKQorCitJZiB0aGUgdXNlciBoYXMgbm90IHNpZ25lZCBpbiwgdGVsbCBgYHdlYmFwcDJgYCB0byByZWRpcmVjdCB0aGUgdXNlcidzIGJyb3dzZXIKK3RvIHRoZSBHb29nbGUgYWNjb3VudCBzaWduLWluIHNjcmVlbi4gVGhlIHJlZGlyZWN0IGluY2x1ZGVzIHRoZSBVUkwgdG8gdGhpcworcGFnZSAoYGBzZWxmLnJlcXVlc3QudXJpYGApIHNvIHRoZSBHb29nbGUgYWNjb3VudCBzaWduLWluIG1lY2hhbmlzbSB3aWxsIHNlbmQKK3RoZSB1c2VyIGJhY2sgaGVyZSBhZnRlciB0aGUgdXNlciBoYXMgc2lnbmVkIGluIG9yIHJlZ2lzdGVyZWQgZm9yIGEgbmV3CithY2NvdW50OjoKKworICAgIHNlbGYucmVkaXJlY3QodXNlcnMuY3JlYXRlX2xvZ2luX3VybChzZWxmLnJlcXVlc3QudXJpKSkKKworRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFVzZXJzIEFQSSwgc2VlIHRoZSBgVXNlcnMgcmVmZXJlbmNlIDxodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzL3B5dGhvbi91c2Vycy8+YF8uCisKKworTmV4dC4uLgorLS0tLS0tLQorT3VyIGFwcGxpY2F0aW9uIGNhbiBub3cgZ3JlZXQgdmlzaXRpbmcgdXNlcnMgYnkgbmFtZS4gTGV0J3MgYWRkIGEgZmVhdHVyZSB0aGF0Cit3aWxsIGxldCB1c2VycyBncmVldCBlYWNoIG90aGVyLgorCitDb250aW51ZSB0byA6cmVmOmB0dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQuaGFuZGxpbmdmb3Jtc2AuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC91c2luZ3dlYmFwcDIucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvdXNpbmd3ZWJhcHAyLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWMzMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvdXNpbmd3ZWJhcHAyLnJzdApAQCAtMCwwICsxLDEwNSBAQAorLi4gX3R1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC51c2luZ3dlYmFwcDI6CisKK1VzaW5nIHRoZSB3ZWJhcHAyIEZyYW1ld29yaworPT09PT09PT09PT09PT09PT09PT09PT09PT09CitUaGUgQ0dJIHN0YW5kYXJkIGlzIHNpbXBsZSwgYnV0IGl0IHdvdWxkIGJlIGN1bWJlcnNvbWUgdG8gd3JpdGUgYWxsIG9mIHRoZQorY29kZSB0aGF0IHVzZXMgaXQgYnkgaGFuZC4gV2ViIGFwcGxpY2F0aW9uIGZyYW1ld29ya3MgaGFuZGxlIHRoZXNlIGRldGFpbHMKK2ZvciB5b3UsIHNvIHlvdSBjYW4gZm9jdXMgeW91ciBkZXZlbG9wbWVudCBlZmZvcnRzIG9uIHlvdXIgYXBwbGljYXRpb24ncworZmVhdHVyZXMuIEdvb2dsZSBBcHAgRW5naW5lIHN1cHBvcnRzIGFueSBmcmFtZXdvcmsgd3JpdHRlbiBpbiBwdXJlIFB5dGhvbgordGhhdCBzcGVha3MgQ0dJIChhbmQgYW55CitgV1NHSSA8aHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzMzLz5gXy1jb21wbGlhbnQgZnJhbWV3b3JrIHVzaW5nIGEKK0NHSSBhZGFwdG9yKS4gWW91IGNhbiBidW5kbGUgYSBmcmFtZXdvcmsgb2YgeW91ciBjaG9vc2luZyB3aXRoIHlvdXIgYXBwbGljYXRpb24KK2NvZGUgYnkgY29weWluZyBpdHMgY29kZSBpbnRvIHlvdXIgYXBwbGljYXRpb24gZGlyZWN0b3J5LgorCitBcHAgRW5naW5lIGluY2x1ZGVzIGEgc2ltcGxlIHdlYiBhcHBsaWNhdGlvbiBmcmFtZXdvcmsgb2YgaXRzIG93biwgY2FsbGVkCitgYHdlYmFwcGBgLiBUaGUgYGB3ZWJhcHBgYCBmcmFtZXdvcmsgaXMgYWxyZWFkeSBpbnN0YWxsZWQgaW4gdGhlIEFwcCBFbmdpbmUKK2Vudmlyb25tZW50IGFuZCBpbiB0aGUgU0RLLCBhbmQgYXMgYGB3ZWJhcHAyYGAgaXMgYmFzZWQgb24gaXQsIHlvdSBvbmx5IG5lZWQKK3RvIGJ1bmRsZSBhIHNpbmdsZSBmaWxlIHdpdGggeW91ciBhcHBsaWNhdGlvbiBjb2RlIHRvIHVzZSBpdC4gV2Ugd2lsbCB1c2UKK2Bgd2ViYXBwMmBgIGZvciB0aGUgcmVzdCBvZiB0aGlzIHR1dG9yaWFsLgorCitGb2xsb3cgdGhlc2Ugc3RlcHMgdG8gYnVuZGxlIHRoZSBgYHdlYmFwcDJgYCBmcmFtZXdvcmsgd2l0aCB5b3VyIGFwcGxpY2F0aW9uOgorCistIENyZWF0ZSBhIGZpbGUgYGB3ZWJhcHAyLnB5YGAgaW5zaWRlIHlvdXIgYXBwbGljYXRpb24gZGlyZWN0b3J5LiBQYXN0ZSB0aGUKKyAgY29udGVudHMgZnJvbSBgd2ViYXBwMi5weSA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3dlYmFwcC1pbXByb3ZlZC9zb3VyY2UvYnJvd3NlL3dlYmFwcDIucHk+YF8KKyAgaW5zaWRlIGl0LgorLSBUaGVyZSdzIG5vIHNlY29uZCBzdGVwLiBZb3UgY2FuIHN0YXJ0IHVzaW5nIHdlYmFwcDIgcmlnaHQgbm93LgorCisKK0hlbGxvLCB3ZWJhcHAyIQorLS0tLS0tLS0tLS0tLS0tCitBIGBgd2ViYXBwMmBgIGFwcGxpY2F0aW9uIGhhcyB0aHJlZSBwYXJ0czoKKworLSBPbmUgb3IgbW9yZSBgYFJlcXVlc3RIYW5kbGVyYGAgY2xhc3NlcyB0aGF0IHByb2Nlc3MgcmVxdWVzdHMgYW5kIGJ1aWxkCisgIHJlc3BvbnNlcy4KKy0gQSBgYFdTR0lBcHBsaWNhdGlvbmBgIGluc3RhbmNlIHRoYXQgcm91dGVzIGluY29taW5nIHJlcXVlc3RzIHRvIGhhbmRsZXJzCisgIGJhc2VkIG9uIHRoZSBVUkwuCistIEEgbWFpbiByb3V0aW5lIHRoYXQgcnVucyB0aGUgYGBXU0dJQXBwbGljYXRpb25gYCB1c2luZyBhIENHSSBhZGFwdG9yLgorCitMZXQncyByZXdyaXRlIG91ciBmcmllbmRseSBncmVldGluZyBhcyBhIGBgd2ViYXBwMmBgIGFwcGxpY2F0aW9uLiBFZGl0CitgYGhlbGxvd29ybGQvaGVsbG93b3JsZC5weWBgIGFuZCByZXBsYWNlIGl0cyBjb250ZW50cyB3aXRoIHRoZSBmb2xsb3dpbmc6OgorCisgICAgaW1wb3J0IHdlYmFwcDIKKworICAgIGNsYXNzIE1haW5QYWdlKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICd0ZXh0L3BsYWluJworICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ0hlbGxvLCB3ZWJhcHAyIFdvcmxkIScpCisKKyAgICBhcHBsaWNhdGlvbiA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgKCcvJywgTWFpblBhZ2UpCisgICAgXSwgZGVidWc9VHJ1ZSkKKworQWxzbyBlZGl0IGBgYXBwLnlhbWxgYCBhbmQgcmVwbGFjZSBpdHMgY29udGVudHMgd2l0aCB0aGUgZm9sbG93aW5nOgorCisuLiBjb2RlLWJsb2NrOjogeWFtbAorCisgICBhcHBsaWNhdGlvbjogaGVsbG93b3JsZAorICAgdmVyc2lvbjogMQorICAgcnVudGltZTogcHl0aG9uMjcKKyAgIGFwaV92ZXJzaW9uOiAxCisgICB0aHJlYWRzYWZlOiB0cnVlCisKKyAgIGhhbmRsZXJzOgorICAgLSB1cmw6IC8uKgorICAgICBzY3JpcHQ6IGhlbGxvd29ybGQuYXBwCisKK1JlbG9hZCBgaHR0cDovL2xvY2FsaG9zdDo4MDgwLyA8aHR0cDovL2xvY2FsaG9zdDo4MDgwLz5gXyBpbiB5b3VyIGJyb3dzZXIgdG8KK3NlZSB0aGUgbmV3IHZlcnNpb24gaW4gYWN0aW9uIChpZiB5b3Ugc3RvcHBlZCB5b3VyIHdlYiBzZXJ2ZXIsIHJlc3RhcnQgaXQgYnkKK3J1bm5pbmcgdGhlIGNvbW1hbmQgZGVzY3JpYmVkIGluICI6cmVmOmB0dXRvcmlhbHMuZ2V0dGluZ3N0YXJ0ZWQuaGVsbG93b3JsZGAiKS4KKworCitXaGF0IHdlYmFwcDIgRG9lcworLS0tLS0tLS0tLS0tLS0tLS0KK1RoaXMgY29kZSBkZWZpbmVzIG9uZSByZXF1ZXN0IGhhbmRsZXIsIGBgTWFpblBhZ2VgYCwgbWFwcGVkIHRvIHRoZSByb290IFVSTAorKGBgL2BgKS4gV2hlbiBgYHdlYmFwcDJgYCByZWNlaXZlcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBVUkwgYGAvYGAsIGl0CitpbnN0YW50aWF0ZXMgdGhlIGBgTWFpblBhZ2VgYCBjbGFzcyBhbmQgY2FsbHMgdGhlIGluc3RhbmNlJ3MgYGBnZXRgYCBtZXRob2QuCitJbnNpZGUgdGhlIG1ldGhvZCwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcXVlc3QgaXMgYXZhaWxhYmxlIHVzaW5nCitgYHNlbGYucmVxdWVzdGBgLiBUeXBpY2FsbHksIHRoZSBtZXRob2Qgc2V0cyBwcm9wZXJ0aWVzIG9uIGBgc2VsZi5yZXNwb25zZWBgCit0byBwcmVwYXJlIHRoZSByZXNwb25zZSwgdGhlbiBleGl0cy4gYGB3ZWJhcHAyYGAgc2VuZHMgYSByZXNwb25zZSBiYXNlZCBvbgordGhlIGZpbmFsIHN0YXRlIG9mIHRoZSBgYE1haW5QYWdlYGAgaW5zdGFuY2UuCisKK1RoZSBhcHBsaWNhdGlvbiBpdHNlbGYgaXMgcmVwcmVzZW50ZWQgYnkgYSBgYHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uYGAKK2luc3RhbmNlLiBUaGUgcGFyYW1ldGVyIGBgZGVidWc9dHJ1ZWBgIHBhc3NlZCB0byBpdHMgY29uc3RydWN0b3IgdGVsbHMKK2Bgd2ViYXBwMmBgIHRvIHByaW50IHN0YWNrIHRyYWNlcyB0byB0aGUgYnJvd3NlciBvdXRwdXQgaWYgYSBoYW5kbGVyCitlbmNvdW50ZXJzIGFuIGVycm9yIG9yIHJhaXNlcyBhbiB1bmNhdWdodCBleGNlcHRpb24uIFlvdSBtYXkgd2lzaCB0byByZW1vdmUKK3RoaXMgb3B0aW9uIGZyb20gdGhlIGZpbmFsIHZlcnNpb24gb2YgeW91ciBhcHBsaWNhdGlvbi4KKworVGhlIGNvZGUgYGBhcHBsaWNhdGlvbi5ydW4oKWBgIHJ1bnMgdGhlIGFwcGxpY2F0aW9uIGluIEFwcCBFbmdpbmUncyBDR0kKK2Vudmlyb25tZW50LiBJdCB1c2VzIGEgZnVuY3Rpb24gcHJvdmlkZWQgYnkgQXBwIEVuZ2luZSB0aGF0IGlzIHNpbWlsYXIgdG8gdGhlCitXU0dJLXRvLUNHSSBhZGFwdG9yIHByb3ZpZGVkIGJ5IHRoZSBgYHdzZ2lyZWZgYCBtb2R1bGUgaW4gdGhlIFB5dGhvbiBzdGFuZGFyZAorbGlicmFyeSwgYnV0IGluY2x1ZGVzIGEgZmV3IGFkZGl0aW9uYWwgZmVhdHVyZXMuIEZvciBleGFtcGxlLCBpdCBjYW4KK2F1dG9tYXRpY2FsbHkgZGV0ZWN0IHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgaW4gdGhlIGRldmVsb3BtZW50CitzZXJ2ZXIgb3Igb24gQXBwIEVuZ2luZSwgYW5kIGRpc3BsYXkgZXJyb3JzIGluIHRoZSBicm93c2VyIGlmIGl0IGlzIHJ1bm5pbmcKK29uIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIuCisKK1dlJ2xsIHVzZSBhIGZldyBtb3JlIGZlYXR1cmVzIG9mIGBgd2ViYXBwMmBgIGxhdGVyIGluIHRoaXMgdHV0b3JpYWwuIEZvciBtb3JlCitpbmZvcm1hdGlvbiBhYm91dCBgYHdlYmFwcDJgYCwgc2VlIHRoZSB3ZWJhcHAyIHJlZmVyZW5jZS4KKworCitOZXh0Li4uCistLS0tLS0tCitGcmFtZXdvcmtzIG1ha2Ugd2ViIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IGVhc2llciwgZmFzdGVyIGFuZCBsZXNzIGVycm9yCitwcm9uZS4gd2ViYXBwMiBpcyBqdXN0IG9uZSBvZiBtYW55IHN1Y2ggZnJhbWV3b3JrcyBhdmFpbGFibGUgZm9yIFB5dGhvbi4KK05vdyB0aGF0IHdlJ3JlIHVzaW5nIGEgZnJhbWV3b3JrLCBsZXQncyBhZGQgc29tZSBmZWF0dXJlcy4KKworQ29udGludWUgdG8gOnJlZjpgdHV0b3JpYWxzLmdldHRpbmdzdGFydGVkLnVzaW5ndXNlcnNgLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvaTE4bi5yc3QgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9pMThuLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmJkZWRjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvaTE4bi5yc3QKQEAgLTAsMCArMSwyMDUgQEAKKy4uIF90dXRvcmlhbHMuaTE4bjoKKworSW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIGxvY2FsaXphdGlvbiB3aXRoIHdlYmFwcDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitJbiB0aGlzIHR1dG9yaWFsIHdlIHdpbGwgbGVhcm4gaG93IHRvIGdldCBzdGFydGVkIHdpdGgKKzptb2Q6YHdlYmFwcDJfZXh0cmFzLmkxOG5gLiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGNvbXBsZXRlIGNvbGxlY3Rpb24gb2YKK3Rvb2xzIHRvIGxvY2FsaXplIGFuZCBpbnRlcm5hdGlvbmFsaXplIGFwcHMuIFVzaW5nIGl0IHlvdSBjYW4gY3JlYXRlCithcHBsaWNhdGlvbnMgYWRhcHRlZCBmb3IgZGlmZmVyZW50IGxvY2FsZXMgYW5kIHRpbWV6b25lcyBhbmQgd2l0aAoraW50ZXJuYXRpb25hbGl6ZWQgZGF0ZSwgdGltZSwgbnVtYmVycywgY3VycmVuY2llcyBhbmQgbW9yZS4KKworCitQcmVyZXF1aXNpdGVzCistLS0tLS0tLS0tLS0tCitJZiB5b3UgZG9uJ3QgaGF2ZSBhIHBhY2thZ2UgaW5zdGFsbGVyIGluIHlvdXIgc3lzdGVtIHlldCAobGlrZSBgYHBpcGBgIG9yCitgYGVhc3lfaW5zdGFsbGBgKSwgaW5zdGFsbCBvbmUuIFNlZSA6cmVmOmB0dXRvcmlhbHMuaW5zdGFsbGluZy5wYWNrYWdlc2AuCisKKworR2V0IEJhYmVsIGFuZCBQeXR6CistLS0tLS0tLS0tLS0tLS0tLS0KK1RoZSBpMThuIG1vZHVsZSBkZXBlbmRzIG9uIHR3byBsaWJyYXJpZXM6IGBgYmFiZWxgYCBhbmQgYGBweXR6YGAgKG9yCitgYGdhZXB5dHpgYCkuIFNvIGJlZm9yZSB3ZSBzdGFydCB5b3UgbXVzdCBhZGQgdGhlIGBgYmFiZWxgYCBhbmQgYGBweXR6YGAKK3BhY2thZ2VzIHRvIHlvdXIgYXBwbGljYXRpb24gZGlyZWN0b3J5IChmb3IgQXBwIEVuZ2luZSkgb3IgaW5zdGFsbCBpdCBpbiB5b3VyCit2aXJ0dWFsIGVudmlyb25tZW50IChmb3Igb3RoZXIgc2VydmVycykuCisKK0ZvciBBcHAgRW5naW5lLCBkb3dubG9hZCBgYGJhYmVsYGAgYW5kIGBgcHl0emBgIGFuZCBhZGQgdGhvc2UgbGlicmFyaWVzIHRvCit5b3VyIGFwcCBkaXJlY3Rvcnk6CisKKy0gQmFiZWw6IGh0dHA6Ly9iYWJlbC5lZGdld2FsbC5vcmcvCistIFB5dHo6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9nYWVweXR6CisKK0ZvciBvdGhlciBzZXJ2ZXJzLCBpbnN0YWxsIHRob3NlIGxpYnJhcmllcyBpbiB5b3VyIHN5c3RlbSB1c2luZyBgYHBpcGBgLgorQXBwIEVuZ2luZSB1c2VycyBhbHNvIG5lZWQgYmFiZWwgaW5zdGFsbGVkLCBhcyB3ZSB1c2UgdGhlIGNvbW1hbmQgbGluZQordXRpbGl0eSBwcm92aWRlZCBweSBpdCB0byBleHRyYWN0IGFuZCB1cGRhdGUgbWVzc2FnZSBjYXRhbG9ncy4KK1RoaXMgYXNzdW1lcyBhIGAqbml4YCBlbnZpcm9ubWVudDoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCBzdWRvIHBpcCBpbnN0YWxsIGJhYmVsCisgICAkIHN1ZG8gcGlwIGluc3RhbGwgZ2FlcHl0egorCitPciwgaWYgeW91IGRvbid0IGhhdmUgcGlwIGJ1dCBoYXZlIGBgZWFzeV9pbnN0YWxsYGA6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICQgc3VkbyBlYXN5X2luc3RhbGwgYmFiZWwKKyAgICQgc3VkbyBlYXN5X2luc3RhbGwgZ2FlcHl0egorCisKK0NyZWF0ZSBhIGRpcmVjdG9yeSBmb3IgdHJhbnNsYXRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorV2UgbmVlZCBhIGRpcmVjdG9yeSBpbnNpZGUgb3VyIGFwcCB0byBzdG9yZSBhIG1lc3NhZ2VzIGNhdGFsb2cgZXh0cmFjdGVkCitmcm9tIHRlbXBsYXRlcyBhbmQgUHl0aG9uIGZpbGVzLiBDcmVhdGUgYSBkaXJlY3RvcnkgbmFtZWQgYGBsb2NhbGVgYCBmb3IKK3RoaXMuCisKK0lmIHlvdSB3YW50LCBsYXRlciB5b3UgY2FuIHJlbmFtZSB0aGlzIGRpcmVjdG9yeSB0aGUgd2F5IHlvdSBwcmVmZXIgYW5kIGFkYXB0Cit0aGUgY29tbWFuZHMgd2UgZGVzY3JpYmUgYmVsb3cgYWNjb3JkaW5nbHkuIElmIHlvdSBkbyBzbywgeW91IG11c3QgY2hhbmdlIHRoZQorZGVmYXVsdCBpMThuIGNvbmZpZ3VyYXRpb24gdG8gcG9pbnQgdG8gdGhlIHJpZ2h0IGRpcmVjdG9yeS4gVGhlIGNvbmZpZ3VyYXRpb24KK2lzIHBhc3NlZCB3aGVuIHlvdSBjcmVhdGUgYW4gYXBwbGljYXRpb24sIGxpa2UgdGhpczo6CisKKyAgICBjb25maWcgPSB7fQorICAgIGNvbmZpZ1snd2ViYXBwMl9leHRyYXMuaTE4biddID0geworICAgICAgICAndHJhbnNsYXRpb25zX3BhdGgnOiAncGF0aC90by9teS9sb2NhbGUvZGlyZWN0b3J5JywKKyAgICB9CisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihjb25maWc9Y29uZmlnKQorCitJZiB5b3UgdXNlIHRoZSBkZWZhdWx0IGBgbG9jYWxlYGAgZGlyZWN0b3J5IG5hbWUsIG5vIGNvbmZpZ3VyYXRpb24gaXMgbmVlZGVkLgorCisKK0NyZWF0ZSBhIHNpbXBsZSBhcHAgdG8gYmUgdHJhbnNsYXRlZAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgdHV0b3JpYWwgd2Ugd2lsbCBjcmVhdGUgYSB2ZXJ5IHNpbXBsZSBhcHAgd2l0aCBhCitzaW5nbGUgbWVzc2FnZSB0byBiZSB0cmFuc2xhdGVkLiBTbyBjcmVhdGUgYSBuZXcgYXBwIGFuZCBzYXZlIHRoaXMgYXMKK2BgbWFpbi5weWBgOjoKKworICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICBmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBpMThuCisKKyAgICBjbGFzcyBIZWxsb1dvcmxkSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgICMgU2V0IHRoZSByZXF1ZXN0ZWQgbG9jYWxlLgorICAgICAgICAgICAgbG9jYWxlID0gc2VsZi5yZXF1ZXN0LkdFVC5nZXQoJ2xvY2FsZScsICdlbl9VUycpCisgICAgICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZShsb2NhbGUpCisKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBpMThuLmdldHRleHQoJ0hlbGxvLCB3b3JsZCEnKQorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZShtZXNzYWdlKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAoJy8nLCBIZWxsb1dvcmxkSGFuZGxlciksCisgICAgXSwgZGVidWc9VHJ1ZSkKKworICAgIGRlZiBtYWluKCk6CisgICAgICAgIGFwcC5ydW4oKQorCisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgbWFpbigpCisKK0FueSBzdHJpbmcgdGhhdCBzaG91bGQgYmUgbG9jYWxpemVkIGluIHlvdXIgY29kZSBhbmQgdGVtcGxhdGVzIG11c3QgYmUgd3JhcHBlZAorYnkgdGhlIGZ1bmN0aW9uIDpmdW5jOmB3ZWJhcHAyX2V4dHJhcy5pMThuLmdldHRleHRgIChvciB0aGUgc2hvcnRjdXQgYGBfKClgYCkuCisKK1RyYW5zbGF0ZWQgc3RyaW5ncyBkZWZpbmVkIGluIG1vZHVsZSBnbG9iYWxzIG9yIGNsYXNzIGRlZmluaXRpb25zIHNob3VsZCB1c2UKKzpmdW5jOmB3ZWJhcHAyX2V4dHJhcy5pMThuLmxhenlfZ2V0dGV4dGAgaW5zdGVhZCwgYmVjYXVzZSB3ZSB3YW50IHRyYW5zbGF0aW9ucwordG8gYmUgZHluYW1pYyAtLSBpZiB3ZSBjYWxsIGBgZ2V0dGV4dCgpYGAgd2hlbiB0aGUgbW9kdWxlIGlzIGltcG9ydGVkIHdlJ2xsCitzZXQgdGhlIHZhbHVlIHRvIGEgc3RhdGljIHRyYW5zbGF0aW9uIGZvciBhIGdpdmVuIGxvY2FsZSwgYW5kIHRoaXMgaXMgbm90Cit3aGF0IHdlIHdhbnQuIGBgbGF6eV9nZXR0ZXh0KClgYCBzb2x2ZXMgdGhpcyBtYWtpbmcgdGhlIHRyYW5zbGF0aW9uIHRvIGJlCitldmFsdWF0ZWQgbGF6aWx5LCBvbmx5IHdoZW4gdGhlIHN0cmluZyBpcyB1c2VkLgorCisKK0V4dHJhY3QgYW5kIGNvbXBpbGUgdHJhbnNsYXRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorV2UgdXNlIHRoZSBgYmFiZWwgY29tbWFuZCBsaW5lIGludGVyZmFjZSA8aHR0cDovL2JhYmVsLmVkZ2V3YWxsLm9yZy93aWtpL0RvY3VtZW50YXRpb24vY21kbGluZS5odG1sPmBfCit0byBleHRyYWN0LCBpbml0aWFsaXplLCBjb21waWxlIGFuZCB1cGRhdGUgdHJhbnNsYXRpb25zLiBSZWZlciB0byBCYWJlbCdzCittYW51YWwgZm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgdGhlIGNvbW1hbmQgb3B0aW9ucy4KKworVGhlIGV4dHJhY3QgY29tbWFuZCBjYW4gZXh0cmFjdCBub3Qgb25seSBtZXNzYWdlcyBmcm9tIHNldmVyYWwgdGVtcGxhdGUgZW5naW5lcworYnV0IGFsc28gYGBnZXR0ZXh0KClgYCAoZnJvbSA6cHk6bW9kOmBnZXR0ZXh0YCkgYW5kIGl0cyB2YXJpYW50cyBmcm9tIFB5dGhvbgorZmlsZXMuIEFjY2VzcyB5b3VyIHByb2plY3QgZGlyZWN0b3J5IHVzaW5nIHRoZSBjb21tYW5kIGxpbmUgYW5kIGZvbGxvdyB0aGlzCitxdWljayBob3ctdG86CisKKyoqMS4qKiBFeHRyYWN0IGFsbCB0cmFuc2xhdGlvbnMuIFdlIHBhc3MgdGhlIGN1cnJlbnQgYXBwIGRpcmVjdG9yeSB0byBiZQorc2Nhbm5lZC4gVGhpcyB3aWxsIGNyZWF0ZSBhIGBgbWVzc2FnZXMucG90YGAgZmlsZSBpbiB0aGUgYGBsb2NhbGVgYAorZGlyZWN0b3J5IHdpdGggYWxsIHRyYW5zbGF0YWJsZSBzdHJpbmdzIHRoYXQgd2VyZSBmb3VuZDoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCBweWJhYmVsIGV4dHJhY3QgLW8gLi9sb2NhbGUvbWVzc2FnZXMucG90IC4vCisKK1lvdSBjYW4gYWxzbyBwcm92aWRlIGEgYGV4dHJhY3Rpb24gbWFwcGluZyBmaWxlIDxodHRwOi8vYmFiZWwuZWRnZXdhbGwub3JnL3dpa2kvRG9jdW1lbnRhdGlvbi9tZXNzYWdlcy5odG1sI2V4dHJhY3Rpb24tbWV0aG9kLW1hcHBpbmctYW5kLWNvbmZpZ3VyYXRpb24+YF8KK3RoYXQgY29uZmlndXJlcyBob3cgbWVzc2FnZXMgYXJlIGV4dHJhY3RlZC4gSWYgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcworc2F2ZWQgYXMgYGBiYWJlbC5jZmdgYCwgd2UgcG9pbnQgdG8gaXQgd2hlbiBleHRyYWN0aW5nIHRoZSBtZXNzYWdlczoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCBweWJhYmVsIGV4dHJhY3QgLUYgLi9iYWJlbC5jZmcgLW8gLi9sb2NhbGUvbWVzc2FnZXMucG90IC4vCisKKyoqMi4qKiBJbml0aWFsaXplIHRoZSBkaXJlY3RvcnkgZm9yIGVhY2ggbG9jYWxlIHRoYXQgeW91ciBhcHAgd2lsbCBzdXBwb3J0LgorVGhpcyBpcyBkb25lIG9ubHkgb25jZSBwZXIgbG9jYWxlLiBJdCB3aWxsIHVzZSB0aGUgYGBtZXNzYWdlcy5wb3RgYCBmaWxlCitjcmVhdGVkIG9uIHN0ZXAgMS4gSGVyZSB3ZSBpbml0aWFsaXplIHRocmVlIHRyYW5zbGF0aW9ucywgYGBlbl9VU2BgLCBgYGVzX0VTYGAKK2FuZCBgYHB0X0JSYGA6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICQgcHliYWJlbCBpbml0IC1sIGVuX1VTIC1kIC4vbG9jYWxlIC1pIC4vbG9jYWxlL21lc3NhZ2VzLnBvdAorICAgJCBweWJhYmVsIGluaXQgLWwgZXNfRVMgLWQgLi9sb2NhbGUgLWkgLi9sb2NhbGUvbWVzc2FnZXMucG90CisgICAkIHB5YmFiZWwgaW5pdCAtbCBwdF9CUiAtZCAuL2xvY2FsZSAtaSAuL2xvY2FsZS9tZXNzYWdlcy5wb3QKKworKiozLioqIE5vdyB0aGUgdHJhbnNsYXRpb24gY2F0YWxvZ3MgYXJlIGNyZWF0ZWQgaW4gdGhlIGBgbG9jYWxlYGAgZGlyZWN0b3J5LgorT3BlbiBlYWNoIGBgLnBvYGAgZmlsZSBhbmQgdHJhbnNsYXRlIGl0LiBGb3IgdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGhhdmUgb25seQorb25lIG1lc3NhZ2UgdG8gdHJhbnNsYXRlOiBvdXIgYGBIZWxsbywgd29ybGQhYGAuCisKK09wZW4gYGAvbG9jYWxlL2VzX0VTL0xDX01FU1NBR0VTL21lc3NhZ2VzLnBvYGAgYW5kIHRyYW5zbGF0ZSBpdCB0bworYGDCoUhvbGEsIG11bmRvIWBgLgorCitPcGVuIGBgL2xvY2FsZS9wdF9CUi9MQ19NRVNTQUdFUy9tZXNzYWdlcy5wb2BgIGFuZCB0cmFuc2xhdGUgaXQgdG8KK2BgT2zDoSwgbXVuZG8hYGAuCisKKyoqNC4qKiBBZnRlciBhbGwgbG9jYWxlcyBhcmUgdHJhbnNsYXRlZCwgY29tcGlsZSB0aGVtIHdpdGggdGhpcyBjb21tYW5kOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAkIHB5YmFiZWwgY29tcGlsZSAtZiAtZCAuL2xvY2FsZQorCitUaGF0J3MgaXQuCisKKworVXBkYXRlIHRyYW5zbGF0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLQorV2hlbiB0cmFuc2xhdGlvbnMgY2hhbmdlLCBmaXJzdCByZXBlYXQgc3RlcCAxIGFib3ZlLiBJdCB3aWxsIGNyZWF0ZSBhIG5ldworYGAucG90YGAgZmlsZSB3aXRoIHVwZGF0ZWQgbWVzc2FnZXMuIFRoZW4gdXBkYXRlIGVhY2ggbG9jYWxlczoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCBweWJhYmVsIHVwZGF0ZSAtbCBlbl9VUyAtZCAuL2xvY2FsZS8gLWkgLi9sb2NhbGUvbWVzc2FnZXMucG90CisgICAkIHB5YmFiZWwgdXBkYXRlIC1sIGVzX0VTIC1kIC4vbG9jYWxlLyAtaSAuL2xvY2FsZS9tZXNzYWdlcy5wb3QKKyAgICQgcHliYWJlbCB1cGRhdGUgLWwgcHRfQlIgLWQgLi9sb2NhbGUvIC1pIC4vbG9jYWxlL21lc3NhZ2VzLnBvdAorCitBZnRlciB5b3UgdHJhbnNsYXRlIHRoZSBuZXcgc3RyaW5ncyB0byBlYWNoIGxhbmd1YWdlLCByZXBlYXQgc3RlcCA0LCBjb21waWxpbmcKK3RoZSB0cmFuc2xhdGlvbnMgYWdhaW4uCisKKworVGVzdCB5b3VyIGFwcAorLS0tLS0tLS0tLS0tLQorU3RhcnQgdGhlIGRldmVsb3BtZW50IHNlcnZlciBwb2ludGluZyB0byB0aGUgYXBwbGljYXRpb24geW91IGNyZWF0ZWQgZm9yIHRoaXMKK3R1dG9yaWFsIGFuZCBhY2Nlc3MgdGhlIGRlZmF1bHQgbGFuZ3VhZ2U6CisKKyAgICBodHRwOi8vbG9jYWxob3N0OjgwODAvCisKK1RoZW4gdHJ5IHRoZSBTcGFuaXNoIHZlcnNpb246CisKKyAgICBodHRwOi8vbG9jYWxob3N0OjgwODAvP2xvY2FsZT1lc19FUworCitBbmQgZmluYWxseSwgdHJ5IHRoZSBQb3J0dWd1ZXNlIHZlcnNpb246CisKKyAgICBodHRwOi8vbG9jYWxob3N0OjgwODAvP2xvY2FsZT1wdF9CUgorCitWb2lsw6AhIE91ciB0aW55IGFwcCBpcyBub3cgYXZhaWxhYmxlIGluIHRocmVlIGxhbmd1YWdlcy4KKworCitXaGF0IGVsc2UKKy0tLS0tLS0tLQorVGhlIDptb2Q6YHdlYmFwcDJfZXh0cmFzLmkxOG5gIG1vZHVsZSBwcm92aWRlcyBzZXZlcmFsIG90aGVyIGZ1bmN0aW9uYWxpdGllcworYmVzaWRlcyBsb2NhbGl6YXRpb24uIFlvdSBjYW4gdXNlIGl0IHRvIGludGVybmF0aW9uYWxpemUgZGF0ZXMsIGN1cnJlbmNpZXMKK2FuZCBudW1iZXJzLCBhbmQgdGhlcmUgYXJlIGhlbHBlcnMgdG8gc2V0IHRoZSBsb2NhbGUgb3IgdGltZXpvbmUgYXV0b21hdGljYWxseQorZm9yIGVhY2ggcmVxdWVzdC4gRXhwbG9yZSB0aGUgQVBJIGRvY3VtZW50YXRpb24gdG8gbGVhcm4gbW9yZS4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2luZGV4LnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDkxMjU4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvaW5kZXgucnN0CkBAIC0wLDAgKzEsMTAgQEAKKy4uIF90dXRvcmlhbHMuaW5kZXg6CisKK1R1dG9yaWFscworPT09PT09PT09CisuLiB0b2N0cmVlOjoKKyAgIDpnbG9iOgorICAgOm1heGRlcHRoOiAxCisKKyAgIGdldHRpbmdzdGFydGVkL2luZGV4CisgICAqCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9pbnN0YWxsaW5nLnBhY2thZ2VzLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL2luc3RhbGxpbmcucGFja2FnZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhNTEzMzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9pbnN0YWxsaW5nLnBhY2thZ2VzLnJzdApAQCAtMCwwICsxLDYyIEBACisuLiBfdHV0b3JpYWxzLmluc3RhbGxpbmcucGFja2FnZXM6CisKK0luc3RhbGxpbmcgcGFja2FnZXMKKz09PT09PT09PT09PT09PT09PT0KK1RvIHVzZSB3ZWJhcHAyIG91dHNpZGUgb2YgQXBwIEVuZ2luZSwgeW91IG5lZWQgYSBwYWNrYWdlIG1hbmFnZXIgdG8gaW5zdGFsbAorZGVwZW5kZW5jaWVzIGluIHlvdXIgc3lzdGVtIC0tIG1vc3RseSBXZWJPYiwgYW5kIG1heWJlIGxpYnJhcmllcyByZXF1aXJlZAorYnkgdGhlIHZhcmlvdXMgd2ViYXBwMl9leHRyYXMgbW9kdWxlcywgaWYgeW91IHdpbGwgdXNlIHRoZW0uCisKK0ZvciBBcHAgRW5naW5lLCBzb21lIHdlYmFwcDJfZXh0cmFzIG1vZHVsZXMgbWF5IHJlcXVpcmUgdGhhdCB5b3UgaW5zdGFsbAorZXh0ZXJuYWwgcGFja2FnZXMgdG8gYWNjZXNzIHNwZWNpZmljIGNvbW1hbmQgbGluZSB0b29scyAoaTE4biwgZm9yIGV4YW1wbGUsCit1c2VzIHB5YmFiZWwgdG8gZXh0cmFjdCBhbmQgY29tcGlsZSB0cmFuc2xhdGlvbiBjYXRhbG9ncykuCisKK0luIHRoaXMgdHV0b3JpYWwgd2UnbGwgc2hvdyBob3cgdG8gaW5zdGFsbCBhIHBhY2thZ2UgbWFuYWdlciBhbmQgaW5zdGFsbGVyLgorCisKK0luc3RhbGwgYSBkaXN0dXRpbHMgbGlicmFyeQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitJZiB5b3UgZG9uJ3QgaGF2ZSBhIGRpc3R1dGlscyBsaWJyYXJ5IChgZGlzdHJpYnV0ZSA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2Rpc3RyaWJ1dGU+YF8KK29yIGBzZXR1cHRvb2xzIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2V0dXB0b29scz5gXykgaW5zdGFsbGVkIG9uCit5b3Ugc3lzdGVtIHlldCwgeW91IG5lZWQgdG8gaW5zdGFsbCBvbmUuIERpc3RyaWJ1dGUgaXMgcmVjb21tZW5kZWQsIGJ1dAorc2V0dXB0b29scyB3aWxsIHNlcnZlIGFzIHdlbGwuCisKK0Rpc3RyaWJ1dGUgaXMgInRoZSBzdGFuZGFyZCBtZXRob2QgZm9yIHdvcmtpbmcgd2l0aCBQeXRob24gbW9kdWxlCitkaXN0cmlidXRpb25zIi4gSXQgd2lsbCBtYW5hZ2Ugb3VyIHBhY2thZ2UgZGVwZW5kZW5jaWVzIGFuZCB1cGdyYWRlcy4KK0lmIHlvdSBhbHJlYWR5IGhhdmUgb25lIG9mIHRoZW0sIGp1bXAgdG8gbmV4dCBzdGVwLiBJZiBub3QsIHRoZSBpbnN0YWxsYXRpb24KK2lzIHN0cmFpZ2hmb3J3YXJkOgorCisqKjEuKiogRG93bmxvYWQgdGhlIGluc3RhbGxlciBhbmQgc2F2ZSBpdCBhbnl3aGVyZS4gSXQgaXMgYSBzaW5nbGUgZmlsZToKKworICAgIGh0dHA6Ly9weXRob24tZGlzdHJpYnV0ZS5vcmcvZGlzdHJpYnV0ZV9zZXR1cC5weQorCisqKjIuKiogRXhlY3V0ZSBpdCBmcm9tIHRoZSBjb21tYW5kIGxpbmUgKHRoaXMgd2lsbCByZXF1aXJlIHN1ZG8gaWYgeW91IGFyZQordXNpbmcgTGludXggb3IgYSBNYWMpOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAkIHB5dGhvbiBkaXN0cmlidXRlX3NldHVwLnB5CisKK0lmIHlvdSBkb24ndCBzZWUgYW55IGVycm9yIG1lc3NhZ2VzLCB5YXksIGl0IGluc3RhbGxlZCBzdWNjZXNzZnVsbHkuIExldCdzCittb3ZlIGZvcndhcmQuIEZvciBXaW5kb3dzLCBjaGVjayB0aGUgZGlzdHJpYnV0ZSBvciBzZXR1cHRvb2xzIGRvY3VtZW50YXRpb24uCisKKworSW5zdGFsbCBhIHBhY2thZ2UgaW5zdGFsbGVyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1dlIG5lZWQgYSBwYWNrYWdlIGluc3RhbGxlciAoYGBwaXBgYCBvciBgYGVhc3lfaW5zdGFsbGBgKSB0byBpbnN0YWxsIGFuZAordXBkYXRlIFB5dGhvbiBwYWNrYWdlcy4gQW55IHdpbGwgd29yaywgYnV0IGlmIHlvdSBkb24ndCBoYXZlIG9uZSB5ZXQsIGBgcGlwYGAKK2lzIHJlY29tbWVuZGVkLiBIZXJlJ3MgaG93IHRvIGluc3RhbGwgaXQ6CisKKyoqMS4qKiBEb3dubG9hZCBgYHBpcGBgIGZyb20gUHlQaToKKworICAgIGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9waXAKKworKioyLioqIFVucGFjayBpdCBhbmQgYWNjZXNzIHRoZSB1bnBhY2tlZCBkaXJlY3RvcnkgdXNpbmcgdGhlIGNvbW1hbmQgbGluZS4KK1RoZW4gcnVuIGBgc2V0dXAucHkgaW5zdGFsbGBgIG9uIHRoYXQgZGlyZWN0b3J5ICh0aGlzIHdpbGwgcmVxdWlyZSBzdWRvIGlmIHlvdQorYXJlIHVzaW5nIExpbnV4IG9yIGEgTWFjKToKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCBweXRob24gc2V0dXAucHkgaW5zdGFsbAorCitUaGF0J3MgaXQuIElmIHlvdSBkb24ndCBzZWUgYW55IGVycm9yIG1lc3NhZ2VzLCB0aGUgYGBwaXBgYCBjb21tYW5kIHNob3VsZAorbm93IGJlIGF2YWlsYWJsZSBpbiB5b3VyIHN5c3RlbS4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL21hcmtldHBsYWNlLnNpbmdsZS5zaWdub24ucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvbWFya2V0cGxhY2Uuc2luZ2xlLnNpZ25vbi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZjOWE4MwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL21hcmtldHBsYWNlLnNpbmdsZS5zaWdub24ucnN0CkBAIC0wLDAgKzEsNiBAQAorLi4gX3R1dG9yaWFscy5tYXJrZXRwbGFjZS5zaW5nbGUuc2lnbm9uOgorCisod29yayBpbiBwcm9ncmVzcykKKworU2luZ2xlIHNpZ24gb24gd2l0aCB3ZWJhcHAyIGFuZCB0aGUgR29vZ2xlIEFwcHMgTWFya2V0cGxhY2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9xdWlja3N0YXJ0Lm5vZ2FlLnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL3F1aWNrc3RhcnQubm9nYWUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZDlhNzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy9xdWlja3N0YXJ0Lm5vZ2FlLnJzdApAQCAtMCwwICsxLDEwMSBAQAorLi4gX3R1dG9yaWFscy5xdWlja3N0YXJ0Lm5vZ2FlOgorCitRdWljayBzdGFydCAodG8gdXNlIHdlYmFwcDIgb3V0c2lkZSBvZiBBcHAgRW5naW5lKQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK3dlYmFwcDIgY2FuIGFsc28gYmUgdXNlZCBvdXRzaWRlIG9mIEFwcCBFbmdpbmUgYXMgYSBnZW5lcmFsIHB1cnBvc2Ugd2ViCitmcmFtZXdvcmssIGFzIGl0IGhhcyB0aGVzZSBmZWF0dXJlczoKKworLSBJdCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgQXBwIEVuZ2luZSBTREsuIElmIHRoZSBTREsgaXMgbm90IGZvdW5kLCBpdCBzZXRzCisgIGZhbGxiYWNrcyB0byBiZSB1c2VkIG91dHNpZGUgb2YgQXBwIEVuZ2luZS4KKy0gSXQgc3VwcG9ydHMgdGhyZWFkZWQgZW52aXJvbm1lbnRzIHRocm91Z2ggdGhlIG1vZHVsZSA6cmVmOmBhcGkud2ViYXBwMl9leHRyYXMubG9jYWxgLgorLSBBbGwgd2ViYXBwMl9leHRyYXMgbW9kdWxlcyBhcmUgZGVzaWduZWQgdG8gYmUgdGhyZWFkLXNhZmUuCistIEl0IGlzIGNvbXBhdGlibGUgd2l0aCBgYFdlYk9iYGAgMS4wIGFuZCBzdXBlcmlvciwgd2hpY2ggZml4ZXMgc2V2ZXJhbCBidWdzCisgIGZvdW5kIGluIHRoZSB2ZXJzaW9uIGJ1bmRsZWQgd2l0aCB0aGUgU0RLICh3aGljaCBpcyBvZiBjb3Vyc2Ugc3VwcG9ydGVkIGFzCisgIHdlbGwpLgorCitJdCB3b24ndCBzdXBwb3J0IEFwcCBFbmdpbmUgc2VydmljZXMsIGJ1dCBpZiB5b3UgbGlrZSB3ZWJhcHAsIHdoeSBub3QgdXNlIGl0CitpbiBvdGhlciBzZXJ2ZXJzIGFzIHdlbGw/IEhlcmUgd2UnbGwgZGVzY3JpYmUgaG93IHRvIGRvIHRoaXMuCisKKy4uIG5vdGU6OgorICAgSWYgeW91IHdhbnQgdG8gdXNlIHdlYmFwcDIgb24gQXBwIEVuZ2luZSwKKyAgIHJlYWQgdGhlIDpyZWY6YHR1dG9yaWFscy5xdWlja3N0YXJ0YCB0dXRvcmlhbCBpbnN0ZWFkLgorCisKK1ByZXJlcXVpc2l0ZXMKKy0tLS0tLS0tLS0tLS0KK0lmIHlvdSBkb24ndCBoYXZlIGEgcGFja2FnZSBpbnN0YWxsZXIgaW4geW91ciBzeXN0ZW0geWV0IChsaWtlIGBgcGlwYGAgb3IKK2BgZWFzeV9pbnN0YWxsYGApLCBpbnN0YWxsIG9uZS4gU2VlIDpyZWY6YHR1dG9yaWFscy5pbnN0YWxsaW5nLnBhY2thZ2VzYC4KKworSWYgeW91IGRvbid0IGhhdmUgYGB2aXJ0dWFsZW52YGAgaW5zdGFsbGVkIGluIHlvdXIgc3lzdGVtIHlldCwgaW5zdGFsbCBpdC4KK1NlZSA6cmVmOmB0dXRvcmlhbHMudmlydHVhbGVudmAuCisKKworQ3JlYXRlIGEgZGlyZWN0b3J5IGZvciB5b3VyIGFwcAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ3JlYXRlIGEgZGlyZWN0b3J5IGBgaGVsbG93ZWJhcHAyYGAgZm9yIHlvdXIgbmV3IGFwcC4gSXQgaXMgd2hlcmUgeW91IHdpbGwKK3NldHVwIHRoZSBlbnZpcm9ubWVudCBhbmQgY3JlYXRlIHlvdXIgYXBwbGljYXRpb24uCisKKworSW5zdGFsbCBXZWJPYiwgUGFzdGUgYW5kIHdlYmFwcDIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitXZSBuZWVkIHRocmVlIGxpYnJhcmllcyB0byB1c2Ugd2ViYXBwMjogYFdlYk9iIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvV2ViT2I+YF8sIGZvciBSZXF1ZXN0IGFuZCBSZXNwb25zZSBvYmplY3RzLAorYFBhc3RlIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvUGFzdGU+YF8sIGZvciB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyLAorYW5kIGB3ZWJhcHAyIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvd2ViYXBwMj5gXyBpdHNlbGYuCisKK1R5cGUgdGhpcyB0byBpbnN0YWxsIHRoZW0gdXNpbmcgdGhlICoqYWN0aXZlIHZpcnR1YWwgZW52aXJvbm1lbnQqKgorKHNlZSA6cmVmOmB0dXRvcmlhbHMudmlydHVhbGVudmApOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAkIHBpcCBpbnN0YWxsIFdlYk9iCisgICAkIHBpcCBpbnN0YWxsIFBhc3RlCisgICAkIHBpcCBpbnN0YWxsIHdlYmFwcDIKKworT3IsIHVzaW5nIGVhc3lfaW5zdGFsbDoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCBlYXN5X2luc3RhbGwgV2ViT2IKKyAgICQgZWFzeV9pbnN0YWxsIFBhc3RlCisgICAkIGVhc3lfaW5zdGFsbCB3ZWJhcHAyCisKK05vdyB0aGUgZW52aXJvbm1lbnQgaXMgcmVhZHkgZm9yIHlvdXIgZmlyc3QgYXBwLgorCisKK0hlbGxvLCB3ZWJhcHAyIQorLS0tLS0tLS0tLS0tLS0tCitDcmVhdGUgYSBmaWxlIGBgbWFpbi5weWBgIGluc2lkZSB5b3VyIGBgaGVsbG93ZWJhcHAyYGAgZGlyZWN0b3J5IGFuZCBkZWZpbmUKK2EgaGFuZGxlciB0byBkaXNwbGF5IGEgJ0hlbGxvLCB3ZWJhcHAyIScgbWVzc2FnZS4gVGhpcyB3aWxsIGJlIG91ciBib290c3RyYXAKK2ZpbGU6OgorCisgICAgaW1wb3J0IHdlYmFwcDIKKworICAgIGNsYXNzIEhlbGxvV2ViYXBwMih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCB3ZWJhcHAyIScpCisKKyAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICgnLycsIEhlbGxvV2ViYXBwMiksCisgICAgXSwgZGVidWc9VHJ1ZSkKKworICAgIGRlZiBtYWluKCk6CisgICAgICAgIGZyb20gcGFzdGUgaW1wb3J0IGh0dHBzZXJ2ZXIKKyAgICAgICAgaHR0cHNlcnZlci5zZXJ2ZShhcHAsIGhvc3Q9JzEyNy4wLjAuMScsIHBvcnQ9JzgwODAnKQorCisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgbWFpbigpCisKKworVGVzdCB5b3VyIGFwcAorLS0tLS0tLS0tLS0tLQorTm93IHN0YXJ0IHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgdXNpbmcgdGhlIFB5dGhvbiBleGVjdXRhYmxlIHByb3ZpZGVkIGJ5Cit2aXJ0dWFsZW52OgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAkIHB5dGhvbiBtYWluLnB5CisKK1RoZSB3ZWIgc2VydmVyIGlzIG5vdyBydW5uaW5nLCBsaXN0ZW5pbmcgZm9yIHJlcXVlc3RzIG9uIHBvcnQgODA4MC4gWW91IGNhbgordGVzdCB0aGUgYXBwbGljYXRpb24gYnkgdmlzaXRpbmcgdGhlIGZvbGxvd2luZyBVUkwgaW4geW91ciB3ZWIgYnJvd3NlcjoKKworICAgIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL3F1aWNrc3RhcnQucnN0IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvZG9jcy90dXRvcmlhbHMvcXVpY2tzdGFydC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhkMTlmNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL3F1aWNrc3RhcnQucnN0CkBAIC0wLDAgKzEsODEgQEAKKy4uIF90dXRvcmlhbHMucXVpY2tzdGFydDoKKworUXVpY2sgc3RhcnQKKz09PT09PT09PT09CitJZiB5b3UgYWxyZWFkeSBrbm93IGB3ZWJhcHAgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL3Rvb2xzL3dlYmFwcC8+YF8sCit3ZWJhcHAyIGlzIHZlcnkgZWFzeSB0byBnZXQgc3RhcnRlZC4gWW91IGNhbiB1c2Ugd2ViYXBwMiBleGFjdGx5IGxpa2Ugd2ViYXBwLAorYW5kIGxlYXJuIHRoZSBuZXcgZmVhdHVyZXMgYXMgeW91IGdvLgorCitJZiB5b3UgYXJlIG5ldyB0byBBcHAgRW5naW5lLCByZWFkIDpyZWY6YHR1dG9yaWFscy5nZXR0aW5nc3RhcnRlZC5pbmRleGAgZmlyc3QuCitZb3Ugd2lsbCBuZWVkIHRoZSBgQXBwIEVuZ2luZSBTREsgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL2dldHRpbmdzdGFydGVkL2RldmVudmlyb25tZW50Lmh0bWw+YF8KK2luc3RhbGxlZCBmb3IgdGhpcyBxdWljayBzdGFydC4KKworLi4gbm90ZTo6CisgICBJZiB5b3Ugd2FudCB0byB1c2Ugd2ViYXBwMiBvdXRzaWRlIG9mIEFwcCBFbmdpbmUsCisgICByZWFkIHRoZSA6cmVmOmB0dXRvcmlhbHMucXVpY2tzdGFydC5ub2dhZWAgdHV0b3JpYWwgaW5zdGVhZC4KKworCitDcmVhdGUgYW4gYXBwbGljYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ3JlYXRlIGEgZGlyZWN0b3J5IGBgaGVsbG93ZWJhcHAyYGAgZm9yIHlvdXIgbmV3IGFwcC4KK2BEb3dubG9hZCB3ZWJhcHAyIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkL2Rvd25sb2Fkcy9saXN0PmBfLAordW5wYWNrIGl0IGFuZCBhZGQgYGB3ZWJhcHAyLnB5YGAgdG8gdGhhdCBkaXJlY3RvcnkuIElmIHlvdSB3YW50IHRvIHVzZSBleHRyYQorZmVhdHVyZXMgc3VjaCBhcyBzZXNzaW9ucywgZXh0cmEgcm91dGVzLCBsb2NhbGl6YXRpb24sIGludGVybmF0aW9uYWxpemF0aW9uCithbmQgbW9yZSwgYWxzbyBhZGQgdGhlIGBgd2ViYXBwMl9leHRyYXNgYCBkaXJlY3RvcnkgdG8geW91ciBhcHAuCisKKy4uIG5vdGU6OgorICAgd2ViYXBwMiBpcyBwYXJ0IG9mIHRoZSBQeXRob24gMi43IHJ1bnRpbWUgc2luY2UgQXBwIEVuZ2luZSBTREsgMS42LjAsCisgICBzbyB5b3UgZG9uJ3QgbmVlZCB0byB1cGxvYWQgaXQgd2l0aCB5b3VyIGFwcCBhbnltb3JlLiBUbyBpbmNsdWRlIGl0IGluCisgICB5b3VyIGFwcCBzZWUKKyAgIGBDb25maWd1cmluZyBMaWJyYXJpZXMgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBwZW5naW5lL2RvY3MvcHl0aG9uL3B5dGhvbjI3L3VzaW5nMjcuaHRtbCNDb25maWd1cmluZ19MaWJyYXJpZXM+YF8uCisKK0hlbGxvLCB3ZWJhcHAyIQorLS0tLS0tLS0tLS0tLS0tCitDcmVhdGUgYW4gYGBhcHAueWFtbGBgIGZpbGUgaW4geW91ciBhcHAgZGlyZWN0b3J5IHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50czoKKworLi4gY29kZS1ibG9jazo6IHlhbWwKKworICAgYXBwbGljYXRpb246IGhlbGxvd29ybGQKKyAgIHZlcnNpb246IDEKKyAgIHJ1bnRpbWU6IHB5dGhvbjI3CisgICBhcGlfdmVyc2lvbjogMQorICAgdGhyZWFkc2FmZTogdHJ1ZQorCisgICBoYW5kbGVyczoKKyAgIC0gdXJsOiAvLioKKyAgICAgc2NyaXB0OiBtYWluLmFwcAorCitUaGVuIGNyZWF0ZSBhIGZpbGUgYGBtYWluLnB5YGAgYW5kIGRlZmluZSBhIGhhbmRsZXIgdG8gZGlzcGxheSBhCisnSGVsbG8sIHdlYmFwcDIhJyBtZXNzYWdlOjoKKworICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICBjbGFzcyBIZWxsb1dlYmFwcDIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKCdIZWxsbywgd2ViYXBwMiEnKQorCisgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAoJy8nLCBIZWxsb1dlYmFwcDIpLAorICAgIF0sIGRlYnVnPVRydWUpCisKKworVGVzdCB5b3VyIGFwcAorLS0tLS0tLS0tLS0tLQorSWYgeW91J3JlIHVzaW5nIHRoZSBHb29nbGUgQXBwIEVuZ2luZSBMYXVuY2hlciwgeW91IGNhbiBzZXQgdXAgdGhlIGFwcGxpY2F0aW9uCitieSBzZWxlY3RpbmcgdGhlICoqRmlsZSoqIG1lbnUsICoqQWRkIEV4aXN0aW5nIEFwcGxpY2F0aW9uLi4uKiosIHRoZW4gc2VsZWN0aW5nCit0aGUgYGBoZWxsb3dlYmFwcDJgYCBkaXJlY3RvcnkuIFNlbGVjdCB0aGUgYXBwbGljYXRpb24gaW4gdGhlIGFwcCBsaXN0LCBjbGljawordGhlIFJ1biBidXR0b24gdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uLCB0aGVuIGNsaWNrIHRoZSBCcm93c2UgYnV0dG9uIHRvIHZpZXcKK2l0LiBDbGlja2luZyBCcm93c2Ugc2ltcGx5IGxvYWRzIChvciByZWxvYWRzKQorYGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8gPGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8+YF8gaW4geW91ciBkZWZhdWx0IHdlYiBicm93c2VyLgorCitJZiB5b3UncmUgbm90IHVzaW5nIEdvb2dsZSBBcHAgRW5naW5lIExhdW5jaGVyLCBzdGFydCB0aGUgd2ViIHNlcnZlciB3aXRoIHRoZQorZm9sbG93aW5nIGNvbW1hbmQsIGdpdmluZyBpdCB0aGUgcGF0aCB0byB0aGUgYGBoZWxsb3dlYmFwcDJgYCBkaXJlY3Rvcnk6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgIGdvb2dsZV9hcHBlbmdpbmUvZGV2X2FwcHNlcnZlci5weSBoZWxsb3dvcmxkLworCitUaGUgd2ViIHNlcnZlciBpcyBub3cgcnVubmluZywgbGlzdGVuaW5nIGZvciByZXF1ZXN0cyBvbiBwb3J0IDgwODAuIFlvdSBjYW4KK3Rlc3QgdGhlIGFwcGxpY2F0aW9uIGJ5IHZpc2l0aW5nIHRoZSBmb2xsb3dpbmcgVVJMIGluIHlvdXIgd2ViIGJyb3dzZXI6CisKKyAgICBodHRwOi8vbG9jYWxob3N0OjgwODAvCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy92aXJ0dWFsZW52LnJzdCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL2RvY3MvdHV0b3JpYWxzL3ZpcnR1YWxlbnYucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4MzVmNGQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9kb2NzL3R1dG9yaWFscy92aXJ0dWFsZW52LnJzdApAQCAtMCwwICsxLDQ5IEBACisuLiBfdHV0b3JpYWxzLnZpcnR1YWxlbnY6CisKK0luc3RhbGxpbmcgdmlydHVhbGVudgorPT09PT09PT09PT09PT09PT09PT09CitgdmlydHVhbGVudiA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3ZpcnR1YWxlbnY+YF8sIHNldHMgYQorInZpcnR1YWwgZW52aXJvbm1lbnQiIHRoYXQgYWxsb3dzIHlvdSB0byBydW4gZGlmZmVyZW50IHByb2plY3RzIHdpdGggc2VwYXJhdGUKK2xpYnJhcmllcyBzaWRlIGJ5IHNpZGUuIFRoaXMgaXMgYSBnb29kIGlkZWEgYm90aCBmb3IgZGV2ZWxvcG1lbnQgYW5kCitwcm9kdWN0aW9uLCBhcyBpdCdsbCBhc3N1cmUgdGhhdCBlYWNoIHByb2plY3QgdXNlcyB0aGVpciBvd24gbGlicmFyeSB2ZXJzaW9ucworYW5kIGRvbid0IGFmZmVjdCBlYWNoIG90aGVyLgorCisuLiBub3RlOjoKKyAgIEZvciBBcHAgRW5naW5lIGRldmVsb3BtZW50LCB2aXJ0dWFsZW52IGlzIG5vdCBuZWNlc3NhcnkuIFRoZSBTREsgcHJvdmlkZXMKKyAgIGEgInNhbmRib3hlZCBlbnZpcm9ubWVudCIgdGhhdCBzZXJ2ZXMgYWxtb3N0IHRoZSBzYW1lIHB1cnBvc2VzLgorCitJZiB5b3UgZG9uJ3QgaGF2ZSBhIHBhY2thZ2UgaW5zdGFsbGVyIGluIHlvdXIgc3lzdGVtIHlldCAobGlrZSBgYHBpcGBgIG9yCitgYGVhc3lfaW5zdGFsbGBgKSwgaW5zdGFsbCBvbmUuIFNlZSA6cmVmOmB0dXRvcmlhbHMuaW5zdGFsbGluZy5wYWNrYWdlc2AuCisKK1RoZW4gZm9sbG93IHRoZXNlIHN0ZXBzIHRvIGluc3RhbGwgdmlydHVhbGVudjoKKworKioxLioqIFRvIGluc3RhbGwgaXQgb24gYSBMaW51eCBvciBNYWMgc3lzdGVtcywgdHlwZSBpbiB0aGUgY29tbWFuZCBsaW5lOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAkIHN1ZG8gcGlwIGluc3RhbGwgdmlydHVhbGVudgorCitPciwgdXNpbmcgZWFzeV9pbnN0YWxsOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAkIHN1ZG8gZWFzeV9pbnN0YWxsIHZpcnR1YWxlbnYKKworKioyLioqIFRoZW4gY3JlYXRlIGEgZGlyZWN0b3J5IGZvciB5b3VyIGFwcCwgYWNjZXNzIGl0IGFuZCBzZXR1cCBhIHZpcnR1YWwKK2Vudmlyb25tZW50IHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCB2aXJ0dWFsZW52IGVudgorCisqKjMuKiogQWN0aXZhdGUgdGhlIGVudmlyb25tZW50LiBPbiBMaW51eCBvZiBNYWMsIHVzZToKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCAuIGVudi9iaW4vYWN0aXZhdGUKKworT3Igb24gYSBXaW5kb3dzIHN5c3RlbToKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgJCBlbnZcc2NyaXB0c1xhY3RpdmF0ZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvcnVuX3Rlc3RzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvcnVuX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZWU0OWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi9ydW5fdGVzdHMucHkKQEAgLTAsMCArMSw1NCBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZ2FlX3BhdGggPSAnL3Vzci9sb2NhbC9nb29nbGVfYXBwZW5naW5lJworCitjdXJyZW50X3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3Rlc3RzX3BhdGggPSBvcy5wYXRoLmpvaW4oY3VycmVudF9wYXRoLCAndGVzdHMnKQorc3lzLnBhdGhbMDowXSA9IFsKKyAgICBjdXJyZW50X3BhdGgsCisgICAgdGVzdHNfcGF0aCwKKyAgICBnYWVfcGF0aCwKKyAgICAjIEFsbCBsaWJzIHVzZWQgYnkgd2ViYXBwMiBhbmQgZXh0cmFzLgorICAgIG9zLnBhdGguam9pbihjdXJyZW50X3BhdGgsICdsaWInLCAnYmFiZWwnKSwKKyAgICBvcy5wYXRoLmpvaW4oY3VycmVudF9wYXRoLCAnbGliJywgJ0ppbmphMi0yLjYnKSwKKyAgICBvcy5wYXRoLmpvaW4oY3VycmVudF9wYXRoLCAnbGliJywgJ01ha28tMC40LjEnKSwKKyAgICBvcy5wYXRoLmpvaW4oY3VycmVudF9wYXRoLCAnbGliJywgJ2dhZXB5dHotMjAxMWgnKSwKKyAgICBvcy5wYXRoLmpvaW4oY3VycmVudF9wYXRoLCAnbGliJywgJ1dlYk9iLTEuMC44JyksCisgICAgIyBTREsgbGlicy4KKyAgICBvcy5wYXRoLmpvaW4oZ2FlX3BhdGgsICdsaWInLCAnZGphbmdvXzBfOTYnKSwKKyAgICAjb3MucGF0aC5qb2luKGdhZV9wYXRoLCAnbGliJywgJ3dlYm9iJyksCisgICAgb3MucGF0aC5qb2luKGdhZV9wYXRoLCAnbGliJywgJ3lhbWwnLCAnbGliJyksCisgICAgb3MucGF0aC5qb2luKGdhZV9wYXRoLCAnbGliJywgJ3Byb3RvcnBjJyksCisgICAgb3MucGF0aC5qb2luKGdhZV9wYXRoLCAnbGliJywgJ3NpbXBsZWpzb24nKSwKK10KKworYWxsX3Rlc3RzID0gW2ZbOi04XSBmb3IgZiBpbiBvcy5saXN0ZGlyKHRlc3RzX3BhdGgpIGlmIGYuZW5kc3dpdGgoJ190ZXN0LnB5JyldCisKK2RlZiBnZXRfc3VpdGUodGVzdHMpOgorICAgIHRlc3RzID0gc29ydGVkKHRlc3RzKQorICAgIHN1aXRlID0gdW5pdHRlc3QuVGVzdFN1aXRlKCkKKyAgICBsb2FkZXIgPSB1bml0dGVzdC5UZXN0TG9hZGVyKCkKKyAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAgc3VpdGUuYWRkVGVzdChsb2FkZXIubG9hZFRlc3RzRnJvbU5hbWUodGVzdCkpCisgICAgcmV0dXJuIHN1aXRlCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgIiIiCisgICAgVG8gcnVuIGFsbCB0ZXN0czoKKyAgICAgICAgJCBweXRob24gcnVuX3Rlc3RzLnB5CisgICAgVG8gcnVuIGEgc2luZ2xlIHRlc3Q6CisgICAgICAgICQgcHl0aG9uIHJ1bl90ZXN0cy5weSBhcHAKKyAgICBUbyBydW4gYSBjb3VwbGUgb2YgdGVzdHM6CisgICAgICAgICQgcHl0aG9uIHJ1bl90ZXN0cy5weSBhcHAgY29uZmlnIHNlc3Npb25zCisgICAgVG8gcnVuIGNvZGUgY292ZXJhZ2U6CisgICAgICAgICQgY292ZXJhZ2UgcnVuIHJ1bl90ZXN0cy5weQorICAgICAgICAkIGNvdmVyYWdlIHJlcG9ydCAtbQorICAgICIiIgorICAgIHRlc3RzID0gc3lzLmFyZ3ZbMTpdCisgICAgaWYgbm90IHRlc3RzOgorICAgICAgICB0ZXN0cyA9IGFsbF90ZXN0cworICAgIHRlc3RzID0gWyclc190ZXN0JyAlIHQgZm9yIHQgaW4gdGVzdHNdCisgICAgc3VpdGUgPSBnZXRfc3VpdGUodGVzdHMpCisgICAgdW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIodmVyYm9zaXR5PTIpLnJ1bihzdWl0ZSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3NldHVwLmNmZyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3NldHVwLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjFhOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvc2V0dXAuY2ZnCkBAIC0wLDAgKzEsNSBAQAorW2VnZ19pbmZvXQordGFnX2J1aWxkID0gCit0YWdfZGF0ZSA9IDAKK3RhZ19zdm5fcmV2aXNpb24gPSAwCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3NldHVwLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvc2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzFkMDZlYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3NldHVwLnB5CkBAIC0wLDAgKzEsNjggQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiIKK3dlYmFwcDIKKz09PT09PT0KK2B3ZWJhcHAyYF8gaXMgYSBsaWdodHdlaWdodCBQeXRob24gd2ViIGZyYW1ld29yayBjb21wYXRpYmxlIHdpdGggR29vZ2xlIEFwcAorRW5naW5lJ3MgYHdlYmFwcGBfLgorCit3ZWJhcHAyIGlzIGBzaW1wbGVgXy4gaXQgZm9sbG93cyB0aGUgc2ltcGxpY2l0eSBvZiB3ZWJhcHAsIGJ1dAoraW1wcm92ZXMgaXQgaW4gc29tZSB3YXlzOiBpdCBhZGRzIGJldHRlciBVUkkgcm91dGluZyBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nLAorYSBmdWxsIGZlYXR1cmVkIHJlc3BvbnNlIG9iamVjdCBhbmQgYSBtb3JlIGZsZXhpYmxlIGRpc3BhdGNoaW5nIG1lY2hhbmlzbS4KKword2ViYXBwMiBhbHNvIG9mZmVycyB0aGUgcGFja2FnZSBgd2ViYXBwMl9leHRyYXNgXyB3aXRoIHNldmVyYWwgb3B0aW9uYWwKK3V0aWxpdGllczogc2Vzc2lvbnMsIGxvY2FsaXphdGlvbiwgaW50ZXJuYXRpb25hbGl6YXRpb24sIGRvbWFpbiBhbmQgc3ViZG9tYWluCityb3V0aW5nLCBzZWN1cmUgY29va2llcyBhbmQgb3RoZXJzLgorCit3ZWJhcHAyIGNhbiBhbHNvIGJlIHVzZWQgb3V0c2lkZSBvZiBHb29nbGUgQXBwIEVuZ2luZSwgaW5kZXBlbmRlbnRseSBvZiB0aGUKK0FwcCBFbmdpbmUgU0RLLgorCitGb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbiBvZiBob3cgd2ViYXBwMiBpbXByb3ZlcyB3ZWJhcHAsIHNlZQorYHdlYmFwcDIgZmVhdHVyZXNgXy4KKworUXVpY2sgbGlua3MKKy0tLS0tLS0tLS0tCisKKy0gYFVzZXIgR3VpZGUgPGh0dHA6Ly93ZWJhcHAtaW1wcm92ZWQuYXBwc3BvdC5jb20vPmBfCistIGBSZXBvc2l0b3J5IDxodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkLz5gXworLSBgRGlzY3Vzc2lvbiBHcm91cCA8aHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8jIWZvcnVtL3dlYmFwcDI+YF8KKy0gYEB3ZWJhcHAyIDxodHRwczovL3R3aXR0ZXIuY29tLyMhL3dlYmFwcDI+YF8KKworLi4gX3dlYmFwcDogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUvZG9jcy9weXRob24vdG9vbHMvd2ViYXBwLworLi4gX3dlYmFwcDI6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC93ZWJhcHAtaW1wcm92ZWQvCisuLiBfc2ltcGxlOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkL3NvdXJjZS9icm93c2Uvd2ViYXBwMi5weQorLi4gX3dlYmFwcDJfZXh0cmFzOiBodHRwOi8vd2ViYXBwLWltcHJvdmVkLmFwcHNwb3QuY29tLyNhcGktcmVmZXJlbmNlLXdlYmFwcDItZXh0cmFzCisuLiBfd2ViYXBwMiBmZWF0dXJlczogaHR0cDovL3dlYmFwcC1pbXByb3ZlZC5hcHBzcG90LmNvbS9mZWF0dXJlcy5odG1sCisiIiIKK2Zyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAKKworc2V0dXAoCisgICAgbmFtZSA9ICd3ZWJhcHAyJywKKyAgICB2ZXJzaW9uID0gJzIuNS4xJywKKyAgICBsaWNlbnNlID0gJ0FwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlJywKKyAgICB1cmwgPSAnaHR0cDovL3dlYmFwcC1pbXByb3ZlZC5hcHBzcG90LmNvbScsCisgICAgZGVzY3JpcHRpb24gPSAiVGFraW5nIEdvb2dsZSBBcHAgRW5naW5lJ3Mgd2ViYXBwIHRvIHRoZSBuZXh0IGxldmVsISIsCisgICAgbG9uZ19kZXNjcmlwdGlvbiA9IF9fZG9jX18sCisgICAgYXV0aG9yID0gJ1JvZHJpZ28gTW9yYWVzJywKKyAgICBhdXRob3JfZW1haWwgPSAncm9kcmlnby5tb3JhZXNAZ21haWwuY29tJywKKyAgICB6aXBfc2FmZSA9IEZhbHNlLAorICAgIHBsYXRmb3JtcyA9ICdhbnknLAorICAgIHB5X21vZHVsZXMgPSBbCisgICAgICAgICd3ZWJhcHAyJywKKyAgICBdLAorICAgIHBhY2thZ2VzID0gWworICAgICAgICAnd2ViYXBwMl9leHRyYXMnLAorICAgICAgICAnd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lJywKKyAgICAgICAgJ3dlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5hdXRoJywKKyAgICBdLAorICAgIGluY2x1ZGVfcGFja2FnZV9kYXRhPVRydWUsCisgICAgY2xhc3NpZmllcnMgPSBbCisgICAgICAgICdEZXZlbG9wbWVudCBTdGF0dXMgOjogNSAtIFByb2R1Y3Rpb24vU3RhYmxlJywKKyAgICAgICAgJ0Vudmlyb25tZW50IDo6IFdlYiBFbnZpcm9ubWVudCcsCisgICAgICAgICdJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKKyAgICAgICAgJ0xpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlJywKKyAgICAgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uJywKKyAgICAgICAgJ1RvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIDo6IER5bmFtaWMgQ29udGVudCcsCisgICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMnLAorICAgIF0KKykKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfYXBwZW5naW5lX2F1dGhfbW9kZWxzX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfYXBwZW5naW5lX2F1dGhfbW9kZWxzX3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ0M2M5ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19hcHBlbmdpbmVfYXV0aF9tb2RlbHNfdGVzdC5weQpAQCAtMCwwICsxLDIxNiBAQAorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgYXV0aAorZnJvbSB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuYXV0aCBpbXBvcnQgbW9kZWxzCisKK2Zyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQubmRiIGltcG9ydCBtb2RlbAorCitpbXBvcnQgdGVzdF9iYXNlCisKKworY2xhc3MgVW5pcXVlQ29uc3RyYWludFZpb2xhdGlvbihFeGNlcHRpb24pOgorICAgIHBhc3MKKworCitjbGFzcyBVc2VyKG1vZGVsLk1vZGVsKToKKyAgICB1c2VybmFtZSA9IG1vZGVsLlN0cmluZ1Byb3BlcnR5KHJlcXVpcmVkPVRydWUpCisgICAgYXV0aF9pZCA9IG1vZGVsLlN0cmluZ1Byb3BlcnR5KCkKKyAgICBlbWFpbCA9IG1vZGVsLlN0cmluZ1Byb3BlcnR5KCkKKworCitjbGFzcyBUZXN0QXV0aE1vZGVscyh0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdEF1dGhNb2RlbHMsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5yZWdpc3Rlcl9tb2RlbCgnVXNlcicsIG1vZGVscy5Vc2VyKQorICAgICAgICBzZWxmLnJlZ2lzdGVyX21vZGVsKCdVc2VyVG9rZW4nLCBtb2RlbHMuVXNlclRva2VuKQorICAgICAgICBzZWxmLnJlZ2lzdGVyX21vZGVsKCdVbmlxdWUnLCBtb2RlbHMuVW5pcXVlKQorCisgICAgZGVmIHRlc3RfZ2V0KHNlbGYpOgorICAgICAgICBtID0gbW9kZWxzLlVzZXIKKyAgICAgICAgc3VjY2VzcywgdXNlciA9IG0uY3JlYXRlX3VzZXIoYXV0aF9pZD0nYXV0aF9pZF8xJywgcGFzc3dvcmRfcmF3PSdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1Y2Nlc3MsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh1c2VyIGlzIG5vdCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUodXNlci5wYXNzd29yZCBpcyBub3QgTm9uZSkKKworICAgICAgICAjIHVzZXIua2V5LmlkKCkgaXMgcmVxdWlyZWQgdG8gcmV0cmlldmUgdGhlIGF1dGggdG9rZW4KKyAgICAgICAgdXNlcl9pZCA9IHVzZXIua2V5LmlkKCkKKworICAgICAgICB0b2tlbiA9IG0uY3JlYXRlX2F1dGhfdG9rZW4odXNlcl9pZCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uZ2V0X2J5X2F1dGhfaWQoJ2F1dGhfaWRfMScpLCB1c2VyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uZ2V0X2J5X2F1dGhfaWQoJ2F1dGhfaWRfMicpLCBOb25lKQorCisgICAgICAgIHUsIHRzID0gbS5nZXRfYnlfYXV0aF90b2tlbih1c2VyX2lkLCB0b2tlbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1LCB1c2VyKQorICAgICAgICB1LCB0cyA9IG0uZ2V0X2J5X2F1dGhfdG9rZW4oJ2Zha2VfdXNlcl9pZCcsIHRva2VuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUsIE5vbmUpCisKKyAgICAgICAgdSA9IG0uZ2V0X2J5X2F1dGhfcGFzc3dvcmQoJ2F1dGhfaWRfMScsICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUsIHVzZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGF1dGguSW52YWxpZFBhc3N3b3JkRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZ2V0X2J5X2F1dGhfcGFzc3dvcmQsICdhdXRoX2lkXzEnLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoYXV0aC5JbnZhbGlkQXV0aElkRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZ2V0X2J5X2F1dGhfcGFzc3dvcmQsICdhdXRoX2lkXzInLCAnZm9vJykKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV91c2VyKHNlbGYpOgorICAgICAgICBtID0gbW9kZWxzLlVzZXIKKyAgICAgICAgc3VjY2VzcywgaW5mbyA9IG0uY3JlYXRlX3VzZXIoYXV0aF9pZD0nYXV0aF9pZF8xJywgcGFzc3dvcmRfcmF3PSdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1Y2Nlc3MsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZvIGlzIG5vdCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5wYXNzd29yZCBpcyBub3QgTm9uZSkKKworICAgICAgICBzdWNjZXNzLCBpbmZvID0gbS5jcmVhdGVfdXNlcihhdXRoX2lkPSdhdXRoX2lkXzEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1Y2Nlc3MsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm8sIFsnYXV0aF9pZCddKQorCisgICAgICAgICMgMyBleHRyYXMgYW5kIHVuaXF1ZSBwcm9wZXJ0aWVzOyBwbHVzIDEgZXh0cmEgYW5kIG5vdCB1bmlxdWUuCisgICAgICAgIGV4dHJhcyA9IFsnZm9vJywgJ2JhcicsICdiYXonXQorICAgICAgICB2YWx1ZXMgPSBkaWN0KCh2LCB2ICsgJ192YWx1ZScpIGZvciB2IGluIGV4dHJhcykKKyAgICAgICAgdmFsdWVzWydkaW5nJ10gPSAnZGluZ192YWx1ZScKKyAgICAgICAgc3VjY2VzcywgaW5mbyA9IG0uY3JlYXRlX3VzZXIoYXV0aF9pZD0nYXV0aF9pZF8yJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlX3Byb3BlcnRpZXM9ZXh0cmFzLCAqKnZhbHVlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdWNjZXNzLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mbyBpcyBub3QgTm9uZSkKKyAgICAgICAgZm9yIHByb3AgaW4gZXh0cmFzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhdHRyKGluZm8sIHByb3ApLCBwcm9wICsgJ192YWx1ZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby5kaW5nLCAnZGluZ192YWx1ZScpCisKKyAgICAgICAgIyBMZXQncyBkbyBpdCBhZ2Fpbi4KKyAgICAgICAgc3VjY2VzcywgaW5mbyA9IG0uY3JlYXRlX3VzZXIoYXV0aF9pZD0nYXV0aF9pZF8zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlX3Byb3BlcnRpZXM9ZXh0cmFzLCAqKnZhbHVlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdWNjZXNzLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLCBleHRyYXMpCisKKyAgICBkZWYgdGVzdF9hZGRfYXV0aF9pZHMoc2VsZik6CisgICAgICAgIG0gPSBtb2RlbHMuVXNlcgorICAgICAgICBzdWNjZXNzLCBuZXdfdXNlciA9IG0uY3JlYXRlX3VzZXIoYXV0aF9pZD0nYXV0aF9pZF8xJywgcGFzc3dvcmRfcmF3PSdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1Y2Nlc3MsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuZXdfdXNlciBpcyBub3QgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5ld191c2VyLnBhc3N3b3JkIGlzIG5vdCBOb25lKQorCisgICAgICAgIHN1Y2Nlc3MsIG5ld191c2VyXzIgPSBtLmNyZWF0ZV91c2VyKGF1dGhfaWQ9J2F1dGhfaWRfMicsIHBhc3N3b3JkX3Jhdz0nZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdWNjZXNzLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobmV3X3VzZXIgaXMgbm90IE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuZXdfdXNlci5wYXNzd29yZCBpcyBub3QgTm9uZSkKKworICAgICAgICBzdWNjZXNzLCBpbmZvID0gbmV3X3VzZXIuYWRkX2F1dGhfaWQoJ2F1dGhfaWRfMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VjY2VzcywgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLmF1dGhfaWRzLCBbJ2F1dGhfaWRfMScsICdhdXRoX2lkXzMnXSkKKworICAgICAgICBzdWNjZXNzLCBpbmZvID0gbmV3X3VzZXIuYWRkX2F1dGhfaWQoJ2F1dGhfaWRfMicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VjY2VzcywgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mbywgWydhdXRoX2lkJ10pCisKKyAgICBkZWYgdGVzdF90b2tlbihzZWxmKToKKyAgICAgICAgbSA9IG1vZGVscy5Vc2VyVG9rZW4KKworICAgICAgICBhdXRoX2lkID0gJ2ZvbycKKyAgICAgICAgc3ViamVjdCA9ICdiYXInCisgICAgICAgIHRva2VuXzEgPSBtLmNyZWF0ZShhdXRoX2lkLCBzdWJqZWN0LCB0b2tlbj1Ob25lKQorICAgICAgICB0b2tlbiA9IHRva2VuXzEudG9rZW4KKworICAgICAgICB0b2tlbl8yID0gbS5nZXQodXNlcj1hdXRoX2lkLCBzdWJqZWN0PXN1YmplY3QsIHRva2VuPXRva2VuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRva2VuXzIsIHRva2VuXzEpCisKKyAgICAgICAgdG9rZW5fMyA9IG0uZ2V0KHN1YmplY3Q9c3ViamVjdCwgdG9rZW49dG9rZW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG9rZW5fMywgdG9rZW5fMSkKKworICAgICAgICBtLmdldF9rZXkoYXV0aF9pZCwgc3ViamVjdCwgdG9rZW4pLmRlbGV0ZSgpCisKKyAgICAgICAgdG9rZW5fMiA9IG0uZ2V0KHVzZXI9YXV0aF9pZCwgc3ViamVjdD1zdWJqZWN0LCB0b2tlbj10b2tlbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0b2tlbl8yLCBOb25lKQorCisgICAgICAgIHRva2VuXzMgPSBtLmdldChzdWJqZWN0PXN1YmplY3QsIHRva2VuPXRva2VuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRva2VuXzMsIE5vbmUpCisKKyAgICBkZWYgdGVzdF91c2VyX3Rva2VuKHNlbGYpOgorICAgICAgICBtID0gbW9kZWxzLlVzZXIKKyAgICAgICAgYXV0aF9pZCA9ICdmb28nCisKKyAgICAgICAgdG9rZW4gPSBtLmNyZWF0ZV9hdXRoX3Rva2VuKGF1dGhfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtLnZhbGlkYXRlX2F1dGhfdG9rZW4oYXV0aF9pZCwgdG9rZW4pKQorICAgICAgICBtLmRlbGV0ZV9hdXRoX3Rva2VuKGF1dGhfaWQsIHRva2VuKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG0udmFsaWRhdGVfYXV0aF90b2tlbihhdXRoX2lkLCB0b2tlbikpCisKKyAgICAgICAgdG9rZW4gPSBtLmNyZWF0ZV9zaWdudXBfdG9rZW4oYXV0aF9pZCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG0udmFsaWRhdGVfc2lnbnVwX3Rva2VuKGF1dGhfaWQsIHRva2VuKSkKKyAgICAgICAgbS5kZWxldGVfc2lnbnVwX3Rva2VuKGF1dGhfaWQsIHRva2VuKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG0udmFsaWRhdGVfc2lnbnVwX3Rva2VuKGF1dGhfaWQsIHRva2VuKSkKKworCitjbGFzcyBUZXN0VW5pcXVlTW9kZWwodGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihUZXN0VW5pcXVlTW9kZWwsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5yZWdpc3Rlcl9tb2RlbCgnVW5pcXVlJywgbW9kZWxzLlVuaXF1ZSkKKworICAgIGRlZiB0ZXN0X3NpbmdsZShzZWxmKToKKyAgICAgICAgZGVmIGNyZWF0ZV91c2VyKHVzZXJuYW1lKToKKyAgICAgICAgICAgICMgQXNzZW1ibGUgdGhlIHVuaXF1ZSBzY29wZS92YWx1ZSBjb21iaW5hdGlvbnMuCisgICAgICAgICAgICB1bmlxdWVfdXNlcm5hbWUgPSAnVXNlci51c2VybmFtZTolcycgJSB1c2VybmFtZQorCisgICAgICAgICAgICAjIENyZWF0ZSB0aGUgdW5pcXVlIHVzZXJuYW1lLCBhdXRoX2lkIGFuZCBlbWFpbC4KKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBtb2RlbHMuVW5pcXVlLmNyZWF0ZSh1bmlxdWVfdXNlcm5hbWUpCisKKyAgICAgICAgICAgIGlmIHN1Y2Nlc3M6CisgICAgICAgICAgICAgICAgdXNlciA9IFVzZXIodXNlcm5hbWU9dXNlcm5hbWUpCisgICAgICAgICAgICAgICAgdXNlci5wdXQoKQorICAgICAgICAgICAgICAgIHJldHVybiB1c2VyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFVuaXF1ZUNvbnN0cmFpbnRWaW9sYXRpb24oJ1VzZXJuYW1lICVzIGFscmVhZHkgJworICAgICAgICAgICAgICAgICAgICAnZXhpc3RzJyAlIHVzZXJuYW1lKQorCisgICAgICAgIHVzZXIgPSBjcmVhdGVfdXNlcigndXNlcm5hbWVfMScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaXF1ZUNvbnN0cmFpbnRWaW9sYXRpb24sIGNyZWF0ZV91c2VyLCAndXNlcm5hbWVfMScpCisKKyAgICAgICAgdXNlciA9IGNyZWF0ZV91c2VyKCd1c2VybmFtZV8yJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pcXVlQ29uc3RyYWludFZpb2xhdGlvbiwgY3JlYXRlX3VzZXIsICd1c2VybmFtZV8yJykKKworICAgIGRlZiB0ZXN0X211bHRpKHNlbGYpOgorICAgICAgICBkZWYgY3JlYXRlX3VzZXIodXNlcm5hbWUsIGF1dGhfaWQsIGVtYWlsKToKKyAgICAgICAgICAgICMgQXNzZW1ibGUgdGhlIHVuaXF1ZSBzY29wZS92YWx1ZSBjb21iaW5hdGlvbnMuCisgICAgICAgICAgICB1bmlxdWVfdXNlcm5hbWUgPSAnVXNlci51c2VybmFtZTolcycgJSB1c2VybmFtZQorICAgICAgICAgICAgdW5pcXVlX2F1dGhfaWQgPSAnVXNlci5hdXRoX2lkOiVzJyAlIGF1dGhfaWQKKyAgICAgICAgICAgIHVuaXF1ZV9lbWFpbCA9ICdVc2VyLmVtYWlsOiVzJyAlIGVtYWlsCisKKyAgICAgICAgICAgICMgQ3JlYXRlIHRoZSB1bmlxdWUgdXNlcm5hbWUsIGF1dGhfaWQgYW5kIGVtYWlsLgorICAgICAgICAgICAgdW5pcXVlcyA9IFt1bmlxdWVfdXNlcm5hbWUsIHVuaXF1ZV9hdXRoX2lkLCB1bmlxdWVfZW1haWxdCisgICAgICAgICAgICBzdWNjZXNzLCBleGlzdGluZyA9IG1vZGVscy5VbmlxdWUuY3JlYXRlX211bHRpKHVuaXF1ZXMpCisKKyAgICAgICAgICAgIGlmIHN1Y2Nlc3M6CisgICAgICAgICAgICAgICAgdXNlciA9IFVzZXIodXNlcm5hbWU9dXNlcm5hbWUsIGF1dGhfaWQ9YXV0aF9pZCwgZW1haWw9ZW1haWwpCisgICAgICAgICAgICAgICAgdXNlci5wdXQoKQorICAgICAgICAgICAgICAgIHJldHVybiB1c2VyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHVuaXF1ZV91c2VybmFtZSBpbiBleGlzdGluZzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVW5pcXVlQ29uc3RyYWludFZpb2xhdGlvbignVXNlcm5hbWUgJXMgYWxyZWFkeSAnCisgICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RzJyAlIHVzZXJuYW1lKQorICAgICAgICAgICAgICAgIGlmIHVuaXF1ZV9hdXRoX2lkIGluIGV4aXN0aW5nOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBVbmlxdWVDb25zdHJhaW50VmlvbGF0aW9uKCdBdXRoIGlkICVzIGFscmVhZHkgJworICAgICAgICAgICAgICAgICAgICAgICAgJ2V4aXN0cycgJSBhdXRoX2lkKQorICAgICAgICAgICAgICAgIGlmIHVuaXF1ZV9lbWFpbCBpbiBleGlzdGluZzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVW5pcXVlQ29uc3RyYWludFZpb2xhdGlvbignRW1haWwgJXMgYWxyZWFkeSAnCisgICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RzJyAlIGVtYWlsKQorCisgICAgICAgIHVzZXIgPSBjcmVhdGVfdXNlcigndXNlcm5hbWVfMScsICdhdXRoX2lkXzEnLCAnZW1haWxfMScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaXF1ZUNvbnN0cmFpbnRWaW9sYXRpb24sIGNyZWF0ZV91c2VyLCAndXNlcm5hbWVfMScsICdhdXRoX2lkXzInLCAnZW1haWxfMicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaXF1ZUNvbnN0cmFpbnRWaW9sYXRpb24sIGNyZWF0ZV91c2VyLCAndXNlcm5hbWVfMicsICdhdXRoX2lkXzEnLCAnZW1haWxfMicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaXF1ZUNvbnN0cmFpbnRWaW9sYXRpb24sIGNyZWF0ZV91c2VyLCAndXNlcm5hbWVfMicsICdhdXRoX2lkXzInLCAnZW1haWxfMScpCisKKyAgICAgICAgdXNlciA9IGNyZWF0ZV91c2VyKCd1c2VybmFtZV8yJywgJ2F1dGhfaWRfMicsICdlbWFpbF8yJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pcXVlQ29uc3RyYWludFZpb2xhdGlvbiwgY3JlYXRlX3VzZXIsICd1c2VybmFtZV8yJywgJ2F1dGhfaWRfMScsICdlbWFpbF8xJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pcXVlQ29uc3RyYWludFZpb2xhdGlvbiwgY3JlYXRlX3VzZXIsICd1c2VybmFtZV8xJywgJ2F1dGhfaWRfMicsICdlbWFpbF8xJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pcXVlQ29uc3RyYWludFZpb2xhdGlvbiwgY3JlYXRlX3VzZXIsICd1c2VybmFtZV8xJywgJ2F1dGhfaWRfMScsICdlbWFpbF8yJykKKworICAgIGRlZiB0ZXN0X2RlbGV0ZV9tdWx0aShzZWxmKToKKyAgICAgICAgcnYgPSBtb2RlbHMuVW5pcXVlLmNyZWF0ZV9tdWx0aSgoJ2ZvbycsICdiYXInLCAnYmF6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIChUcnVlLCBbXSkpCisgICAgICAgIHJ2ID0gbW9kZWxzLlVuaXF1ZS5jcmVhdGVfbXVsdGkoKCdmb28nLCAnYmFyJywgJ2JheicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2LCAoRmFsc2UsIFsnZm9vJywgJ2JhcicsICdiYXonXSkpCisKKyAgICAgICAgbW9kZWxzLlVuaXF1ZS5kZWxldGVfbXVsdGkoKCdmb28nLCAnYmFyJywgJ2JheicpKQorCisgICAgICAgIHJ2ID0gbW9kZWxzLlVuaXF1ZS5jcmVhdGVfbXVsdGkoKCdmb28nLCAnYmFyJywgJ2JheicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2LCAoVHJ1ZSwgW10pKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9iYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2FwcGVuZ2luZV9zZXNzaW9uc19tZW1jYWNoZV90ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2FwcGVuZ2luZV9zZXNzaW9uc19tZW1jYWNoZV90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNjBlZDUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfYXBwZW5naW5lX3Nlc3Npb25zX21lbWNhY2hlX3Rlc3QucHkKQEAgLTAsMCArMSwxMzYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgd2ViYXBwMgorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2Vzc2lvbnMKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHNlc3Npb25zX21lbWNhY2hlCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCithcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihjb25maWc9eworICAgICd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9ucyc6IHsKKyAgICAgICAgJ3NlY3JldF9rZXknOiAnbXktc3VwZXItc2VjcmV0JywKKyAgICB9LAorfSkKKworCitjbGFzcyBUZXN0TWVtY2FjaGVTZXNzaW9uKHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgICNmYWN0b3J5ID0gc2Vzc2lvbnNfbWVtY2FjaGUuTWVtY2FjaGVTZXNzaW9uRmFjdG9yeQorCisgICAgZGVmIHRlc3RfZ2V0X3NhdmVfc2Vzc2lvbihzZWxmKToKKworICAgICAgICAjIFJvdW5kIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihiYWNrZW5kPSdtZW1jYWNoZScpCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgICMgTm90aGluZyBjaGFuZ2VkLCB3ZSB3YW50IHRvIHRlc3QgYW55d2F5LgorICAgICAgICBzdG9yZS5zYXZlX3Nlc3Npb25zKHJzcCkKKworICAgICAgICBzZXNzaW9uWydhJ10gPSAnYicKKyAgICAgICAgc2Vzc2lvblsnYyddID0gJ2QnCisgICAgICAgIHNlc3Npb25bJ2UnXSA9ICdmJworCisgICAgICAgIHN0b3JlLnNhdmVfc2Vzc2lvbnMocnNwKQorCisgICAgICAgICMgUm91bmQgMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgY29va2llcyA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycsIGhlYWRlcnM9WygnQ29va2llJywgY29va2llcyldKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSkKKworICAgICAgICBzZXNzaW9uID0gc3RvcmUuZ2V0X3Nlc3Npb24oYmFja2VuZD0nbWVtY2FjaGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlc3Npb25bJ2EnXSwgJ2InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlc3Npb25bJ2MnXSwgJ2QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlc3Npb25bJ2UnXSwgJ2YnKQorCisgICAgICAgIHNlc3Npb25bJ2cnXSA9ICdoJworCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICBzdG9yZS5zYXZlX3Nlc3Npb25zKHJzcCkKKworICAgICAgICAjIFJvdW5kIDMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGNvb2tpZXMgPSByc3AuaGVhZGVycy5nZXQoJ1NldC1Db29raWUnKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZXMpXSkKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzdG9yZSA9IHNlc3Npb25zLlNlc3Npb25TdG9yZShyZXEpCisKKyAgICAgICAgc2Vzc2lvbiA9IHN0b3JlLmdldF9zZXNzaW9uKGJhY2tlbmQ9J21lbWNhY2hlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydhJ10sICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydjJ10sICdkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydlJ10sICdmJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydnJ10sICdoJykKKworICAgIGRlZiB0ZXN0X2ZsYXNoZXMoc2VsZik6CisKKyAgICAgICAgIyBSb3VuZCAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSkKKworICAgICAgICBzZXNzaW9uID0gc3RvcmUuZ2V0X3Nlc3Npb24oYmFja2VuZD0nbWVtY2FjaGUnKQorICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW10pCisgICAgICAgIHNlc3Npb24uYWRkX2ZsYXNoKCdmb28nKQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICBzdG9yZS5zYXZlX3Nlc3Npb25zKHJzcCkKKworICAgICAgICAjIFJvdW5kIDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGNvb2tpZXMgPSByc3AuaGVhZGVycy5nZXQoJ1NldC1Db29raWUnKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZXMpXSkKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzdG9yZSA9IHNlc3Npb25zLlNlc3Npb25TdG9yZShyZXEpCisKKyAgICAgICAgc2Vzc2lvbiA9IHN0b3JlLmdldF9zZXNzaW9uKGJhY2tlbmQ9J21lbWNhY2hlJykKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgWyh1J2ZvbycsIE5vbmUpXSkKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW10pCisKKyAgICAgICAgc2Vzc2lvbi5hZGRfZmxhc2goJ2JhcicpCisgICAgICAgIHNlc3Npb24uYWRkX2ZsYXNoKCdiYXonLCAnaW1wb3J0YW50JykKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgIyBSb3VuZCAzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjb29raWVzID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWVzKV0pCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihiYWNrZW5kPSdtZW1jYWNoZScpCisKKyAgICAgICAgZmxhc2hlcyA9IHNlc3Npb24uZ2V0X2ZsYXNoZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZsYXNoZXMsIFsodSdiYXInLCBOb25lKSwgKHUnYmF6JywgJ2ltcG9ydGFudCcpXSkKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW10pCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHN0b3JlLnNhdmVfc2Vzc2lvbnMocnNwKQorCisgICAgICAgICMgUm91bmQgNCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgY29va2llcyA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycsIGhlYWRlcnM9WygnQ29va2llJywgY29va2llcyldKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSkKKworICAgICAgICBzZXNzaW9uID0gc3RvcmUuZ2V0X3Nlc3Npb24oYmFja2VuZD0nbWVtY2FjaGUnKQorICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW10pCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9iYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2FwcGVuZ2luZV9zZXNzaW9uc19uZGJfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19hcHBlbmdpbmVfc2Vzc2lvbnNfbmRiX3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZjNTk2MwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19hcHBlbmdpbmVfc2Vzc2lvbnNfbmRiX3Rlc3QucHkKQEAgLTAsMCArMSwxNjkgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCBkYXRhc3RvcmVfZXJyb3JzCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCBtZW1jYWNoZQorCitpbXBvcnQgd2ViYXBwMgorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2Vzc2lvbnMKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHNlc3Npb25zX25kYgorCitpbXBvcnQgdGVzdF9iYXNlCisKKworYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oY29uZmlnPXsKKyAgICAnd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnMnOiB7CisgICAgICAgICdzZWNyZXRfa2V5JzogJ215LXN1cGVyLXNlY3JldCcsCisgICAgfSwKK30pCisKKworY2xhc3MgVGVzdE5kYlNlc3Npb24odGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgI2ZhY3RvcnkgPSBzZXNzaW9uc19uZGIuRGF0YXN0b3JlU2Vzc2lvbkZhY3RvcnkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdE5kYlNlc3Npb24sIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5yZWdpc3Rlcl9tb2RlbCgnU2Vzc2lvbicsIHNlc3Npb25zX25kYi5TZXNzaW9uKQorCisgICAgZGVmIHRlc3RfZ2V0X3NhdmVfc2Vzc2lvbihzZWxmKToKKworICAgICAgICAjIFJvdW5kIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihiYWNrZW5kPSdkYXRhc3RvcmUnKQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICAjIE5vdGhpbmcgY2hhbmdlZCwgd2Ugd2FudCB0byB0ZXN0IGFueXdheS4KKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgc2Vzc2lvblsnYSddID0gJ2InCisgICAgICAgIHNlc3Npb25bJ2MnXSA9ICdkJworICAgICAgICBzZXNzaW9uWydlJ10gPSAnZicKKworICAgICAgICBzdG9yZS5zYXZlX3Nlc3Npb25zKHJzcCkKKworICAgICAgICAjIFJvdW5kIDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGNvb2tpZXMgPSByc3AuaGVhZGVycy5nZXQoJ1NldC1Db29raWUnKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZXMpXSkKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzdG9yZSA9IHNlc3Npb25zLlNlc3Npb25TdG9yZShyZXEpCisKKyAgICAgICAgc2Vzc2lvbiA9IHN0b3JlLmdldF9zZXNzaW9uKGJhY2tlbmQ9J2RhdGFzdG9yZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvblsnYSddLCAnYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvblsnYyddLCAnZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvblsnZSddLCAnZicpCisKKyAgICAgICAgc2Vzc2lvblsnZyddID0gJ2gnCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHN0b3JlLnNhdmVfc2Vzc2lvbnMocnNwKQorCisgICAgICAgICMgUm91bmQgMyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgY29va2llcyA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycsIGhlYWRlcnM9WygnQ29va2llJywgY29va2llcyldKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSkKKworICAgICAgICBzZXNzaW9uID0gc3RvcmUuZ2V0X3Nlc3Npb24oYmFja2VuZD0nZGF0YXN0b3JlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydhJ10sICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydjJ10sICdkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydlJ10sICdmJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydnJ10sICdoJykKKworICAgICAgICAjIFJvdW5kIDQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgICMgRm9yIHRoaXMgYXR0ZW1wdCB3ZSBkb24ndCB3YW50IHRoZSBtZW1jYWNoZSBiYWNrdXAuCisgICAgICAgIHNpZCA9IHNlc3Npb24uY29udGFpbmVyLnNpZAorICAgICAgICBtZW1jYWNoZS5kZWxldGUoc2lkKQorCisgICAgICAgIGNvb2tpZXMgPSByc3AuaGVhZGVycy5nZXQoJ1NldC1Db29raWUnKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZXMpXSkKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzdG9yZSA9IHNlc3Npb25zLlNlc3Npb25TdG9yZShyZXEpCisKKyAgICAgICAgc2Vzc2lvbiA9IHN0b3JlLmdldF9zZXNzaW9uKGJhY2tlbmQ9J2RhdGFzdG9yZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvblsnYSddLCAnYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvblsnYyddLCAnZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvblsnZSddLCAnZicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvblsnZyddLCAnaCcpCisKKyAgICBkZWYgdGVzdF9mbGFzaGVzKHNlbGYpOgorCisgICAgICAgICMgUm91bmQgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzdG9yZSA9IHNlc3Npb25zLlNlc3Npb25TdG9yZShyZXEpCisKKyAgICAgICAgc2Vzc2lvbiA9IHN0b3JlLmdldF9zZXNzaW9uKGJhY2tlbmQ9J2RhdGFzdG9yZScpCisgICAgICAgIGZsYXNoZXMgPSBzZXNzaW9uLmdldF9mbGFzaGVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbGFzaGVzLCBbXSkKKyAgICAgICAgc2Vzc2lvbi5hZGRfZmxhc2goJ2ZvbycpCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHN0b3JlLnNhdmVfc2Vzc2lvbnMocnNwKQorCisgICAgICAgICMgUm91bmQgMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgY29va2llcyA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycsIGhlYWRlcnM9WygnQ29va2llJywgY29va2llcyldKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSkKKworICAgICAgICBzZXNzaW9uID0gc3RvcmUuZ2V0X3Nlc3Npb24oYmFja2VuZD0nZGF0YXN0b3JlJykKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgWyh1J2ZvbycsIE5vbmUpXSkKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW10pCisKKyAgICAgICAgc2Vzc2lvbi5hZGRfZmxhc2goJ2JhcicpCisgICAgICAgIHNlc3Npb24uYWRkX2ZsYXNoKCdiYXonLCAnaW1wb3J0YW50JykKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgIyBSb3VuZCAzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjb29raWVzID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWVzKV0pCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihiYWNrZW5kPSdkYXRhc3RvcmUnKQorCisgICAgICAgIGZsYXNoZXMgPSBzZXNzaW9uLmdldF9mbGFzaGVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbGFzaGVzLCBbKHUnYmFyJywgTm9uZSksICh1J2JheicsICdpbXBvcnRhbnQnKV0pCisKKyAgICAgICAgZmxhc2hlcyA9IHNlc3Npb24uZ2V0X2ZsYXNoZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZsYXNoZXMsIFtdKQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICBzdG9yZS5zYXZlX3Nlc3Npb25zKHJzcCkKKworICAgICAgICAjIFJvdW5kIDQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGNvb2tpZXMgPSByc3AuaGVhZGVycy5nZXQoJ1NldC1Db29raWUnKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZXMpXSkKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzdG9yZSA9IHNlc3Npb25zLlNlc3Npb25TdG9yZShyZXEpCisKKyAgICAgICAgc2Vzc2lvbiA9IHN0b3JlLmdldF9zZXNzaW9uKGJhY2tlbmQ9J2RhdGFzdG9yZScpCisgICAgICAgIGZsYXNoZXMgPSBzZXNzaW9uLmdldF9mbGFzaGVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbGFzaGVzLCBbXSkKKworICAgIGRlZiB0ZXN0X21pc2Moc2VsZik6CisKKyAgICAgICAgcyA9IHNlc3Npb25zX25kYi5TZXNzaW9uKGlkPSdmb28nKQorICAgICAgICBrZXkgPSBzLnB1dCgpCisKKyAgICAgICAgcyA9IGtleS5nZXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZGF0YSwgTm9uZSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19hcHBlbmdpbmVfdXNlcnNfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19hcHBlbmdpbmVfdXNlcnNfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjE0MWViCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2FwcGVuZ2luZV91c2Vyc190ZXN0LnB5CkBAIC0wLDAgKzEsOTggQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgb3MKKworaW1wb3J0IHdlYmFwcDIKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHVzZXJzCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCitkZWYgc2V0X2N1cnJlbnRfdXNlcihlbWFpbCwgdXNlcl9pZCwgaXNfYWRtaW49RmFsc2UpOgorICAgIG9zLmVudmlyb25bJ1VTRVJfRU1BSUwnXSA9IGVtYWlsIG9yICcnCisgICAgb3MuZW52aXJvblsnVVNFUl9JRCddID0gdXNlcl9pZCBvciAnJworICAgIG9zLmVudmlyb25bJ1VTRVJfSVNfQURNSU4nXSA9ICcxJyBpZiBpc19hZG1pbiBlbHNlICcwJworCisKK2NsYXNzIExvZ2luUmVxdWlyZWRIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgIEB1c2Vycy5sb2dpbl9yZXF1aXJlZAorICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ1lvdSBhcmUgbG9nZ2VkIGluLicpCisKKyAgICBAdXNlcnMubG9naW5fcmVxdWlyZWQKKyAgICBkZWYgcG9zdChzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgnWW91IGFyZSBsb2dnZWQgaW4uJykKKworCitjbGFzcyBBZG1pblJlcXVpcmVkSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICBAdXNlcnMuYWRtaW5fcmVxdWlyZWQKKyAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKCdZb3UgYXJlIGFkbWluLicpCisKKyAgICBAdXNlcnMuYWRtaW5fcmVxdWlyZWQKKyAgICBkZWYgcG9zdChzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZSgnWW91IGFyZSBhZG1pbi4nKQorCisKK2FwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAoJy9sb2dpbl9yZXF1aXJlZCcsIExvZ2luUmVxdWlyZWRIYW5kbGVyKSwKKyAgICAoJy9hZG1pbl9yZXF1aXJlZCcsIEFkbWluUmVxdWlyZWRIYW5kbGVyKSwKK10pCisKKworY2xhc3MgVGVzdFVzZXJzKHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2xvZ2luX3JlcXVpcmVkX2FsbG93ZWQoc2VsZik6CisgICAgICAgIHNldF9jdXJyZW50X3VzZXIoJ2Zvb0BiYXIuY29tJywgJ2Zvb0BiYXIuY29tJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvbG9naW5fcmVxdWlyZWQnKQorCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdZb3UgYXJlIGxvZ2dlZCBpbi4nKQorCisgICAgZGVmIHRlc3RfbG9naW5fcmVxdWlyZWRfMzAyKHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9sb2dpbl9yZXF1aXJlZCcpCisKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDMwMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVycy5nZXQoJ0xvY2F0aW9uJyksCisgICAgICAgICAgICAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hY2NvdW50cy9Mb2dpbj9jb250aW51ZT1odHRwJTNBLy9sb2NhbGhvc3QvbG9naW5fcmVxdWlyZWQnKQorCisgICAgZGVmIHRlc3RfbG9naW5fcmVxdWlyZWRfcG9zdChzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvbG9naW5fcmVxdWlyZWQnKQorICAgICAgICByZXEubWV0aG9kID0gJ1BPU1QnCisKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDQwMCkKKworICAgIGRlZiB0ZXN0X2FkbWluX3JlcXVpcmVkX2FsbG93ZWQoc2VsZik6CisgICAgICAgIHNldF9jdXJyZW50X3VzZXIoJ2Zvb0BiYXIuY29tJywgJ2Zvb0BiYXIuY29tJywgaXNfYWRtaW49VHJ1ZSkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvYWRtaW5fcmVxdWlyZWQnKQorCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdZb3UgYXJlIGFkbWluLicpCisKKyAgICBkZWYgdGVzdF9hZG1pbl9yZXF1aXJlZF9ub3RfYWRtaW4oc2VsZik6CisgICAgICAgIHNldF9jdXJyZW50X3VzZXIoJ2Zvb0BiYXIuY29tJywgJ2Zvb0BiYXIuY29tJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvYWRtaW5fcmVxdWlyZWQnKQorCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCA0MDMpCisKKyAgICBkZWYgdGVzdF9hZG1pbl9yZXF1aXJlZF8zMDIoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL2FkbWluX3JlcXVpcmVkJykKKworICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMzAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzLmdldCgnTG9jYXRpb24nKSwKKyAgICAgICAgICAgICdodHRwczovL3d3dy5nb29nbGUuY29tL2FjY291bnRzL0xvZ2luP2NvbnRpbnVlPWh0dHAlM0EvL2xvY2FsaG9zdC9hZG1pbl9yZXF1aXJlZCcpCisKKyAgICBkZWYgdGVzdF9hZG1pbl9yZXF1aXJlZF9wb3N0KHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9hZG1pbl9yZXF1aXJlZCcpCisgICAgICAgIHJlcS5tZXRob2QgPSAnUE9TVCcKKworICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgNDAwKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9iYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2F1dGhfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19hdXRoX3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjllYTYzZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19hdXRoX3Rlc3QucHkKQEAgLTAsMCArMSwyOTkgQEAKK2ltcG9ydCB3ZWJhcHAyCitmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBzZXNzaW9ucworCitmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBhdXRoCitmcm9tIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5hdXRoIGltcG9ydCBtb2RlbHMKKworZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC5uZGIgaW1wb3J0IG1vZGVsCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCitjbGFzcyBUZXN0QXV0aCh0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdEF1dGgsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5yZWdpc3Rlcl9tb2RlbCgnVXNlcicsIG1vZGVscy5Vc2VyKQorICAgICAgICBzZWxmLnJlZ2lzdGVyX21vZGVsKCdVc2VyVG9rZW4nLCBtb2RlbHMuVXNlclRva2VuKQorICAgICAgICBzZWxmLnJlZ2lzdGVyX21vZGVsKCdVbmlxdWUnLCBtb2RlbHMuVW5pcXVlKQorCisgICAgZGVmIF9jaGVja190b2tlbihzZWxmLCB1c2VyX2lkLCB0b2tlbiwgc3ViamVjdD0nYXV0aCcpOgorICAgICAgICBydiA9IG1vZGVscy5Vc2VyVG9rZW4uZ2V0KHVzZXI9dXNlcl9pZCwgc3ViamVjdD1zdWJqZWN0LCB0b2tlbj10b2tlbikKKyAgICAgICAgcmV0dXJuIHJ2IGlzIG5vdCBOb25lCisKKyAgICBkZWYgdGVzdF9nZXRfdXNlcl9ieV9zZXNzaW9uKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihjb25maWc9eworICAgICAgICAgICAgJ3dlYmFwcDJfZXh0cmFzLnNlc3Npb25zJzogeworICAgICAgICAgICAgICAgICdzZWNyZXRfa2V5JzogJ2ZvbycsCisgICAgICAgICAgICB9CisgICAgICAgIH0pCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHMgPSBhdXRoLmdldF9zdG9yZShhcHA9YXBwKQorICAgICAgICBhID0gYXV0aC5BdXRoKHJlcXVlc3Q9cmVxKQorICAgICAgICBzZXNzaW9uX3N0b3JlID0gc2Vzc2lvbnMuZ2V0X3N0b3JlKHJlcXVlc3Q9cmVxKQorCisgICAgICAgICMgVGhpcyB3b24ndCB3b3JrLgorICAgICAgICBhLnNldF9zZXNzaW9uX2RhdGEoe30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5zZXNzaW9uLmdldCgnX3VzZXInKSwgTm9uZSkKKworICAgICAgICAjIFRoaXMgd29uJ3Qgd29yay4KKyAgICAgICAgYS5zZXNzaW9uWydfdXNlciddID0ge30KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmdldF9zZXNzaW9uX2RhdGEoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLnNlc3Npb24uZ2V0KCdfdXNlcicpLCBOb25lKQorCisgICAgICAgICMgQ3JlYXRlIGEgdXNlci4KKyAgICAgICAgbSA9IG1vZGVscy5Vc2VyCisgICAgICAgIHN1Y2Nlc3MsIHVzZXIgPSBtLmNyZWF0ZV91c2VyKGF1dGhfaWQ9J2F1dGhfaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZF9yYXc9J3Bhc3N3b3JkJykKKworICAgICAgICB1c2VyX2lkID0gdXNlci5rZXkuaWQoKQorCisgICAgICAgICMgR2V0IHVzZXIgd2l0aCBzZXNzaW9uLiBBbiBhbm9ueW1vdXNfdXNlciBpcyByZXR1cm5lZC4KKyAgICAgICAgcnYgPSBhLmdldF91c2VyX2J5X3Nlc3Npb24oKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocnYgaXMgTm9uZSkKKworICAgICAgICAjIExvZ2luIHdpdGggcGFzc3dvcmQuIFVzZXIgZGljdCBpcyByZXR1cm5lZC4KKyAgICAgICAgcnYgPSBhLmdldF91c2VyX2J5X3Bhc3N3b3JkKCdhdXRoX2lkJywgJ3Bhc3N3b3JkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydlsndXNlcl9pZCddLCB1c2VyX2lkKQorCisgICAgICAgICMgU2F2ZSBzZXNzaW9ucy4KKyAgICAgICAgc2Vzc2lvbl9zdG9yZS5zYXZlX3Nlc3Npb25zKHJzcCkKKworICAgICAgICAjIEdldCB1c2VyIHdpdGggc2Vzc2lvbi4gVm9pbGEhCisgICAgICAgIGNvb2tpZXMgPSByc3AuaGVhZGVycy5nZXQoJ1NldC1Db29raWUnKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZXMpXSkKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgYSA9IGF1dGguQXV0aChyZXF1ZXN0PXJlcSkKKworICAgICAgICAjIG9ubHkgYXV0aF9pZCBpcyByZXR1cm5lZCB3aGVuIHRoZXJlJ3JlIG5vCisgICAgICAgICMgY3VzdG9tIHVzZXIgYXR0cmlidXRlcyBkZWZpbmVkLgorICAgICAgICBydiA9IGEuZ2V0X3VzZXJfYnlfc2Vzc2lvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnZbJ3VzZXJfaWQnXSwgdXNlcl9pZCkKKworICAgICAgICAjIElmIHdlIGNhbGwgZ2V0X3VzZXJfYnlfdG9rZW4oKSBub3csIHRoZSBzYW1lIHVzZXIgaXMgcmV0dXJuZWQuCisgICAgICAgIHJ2MiA9IGEuZ2V0X3VzZXJfYnlfdG9rZW4ocnZbJ3VzZXJfaWQnXSwgcnZbJ3Rva2VuJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShydiBpcyBydjIpCisKKyAgICAgICAgIyBMZXQncyBnZXQgaXQgYWdhaW4gYW5kIGNoZWNrIHRoYXQgdG9rZW4gaXMgdGhlIHNhbWUuCisgICAgICAgIHRva2VuID0gcnZbJ3Rva2VuJ10KKyAgICAgICAgYS5fdXNlciA9IE5vbmUKKyAgICAgICAgcnYgPSBhLmdldF91c2VyX2J5X3Nlc3Npb24oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2Wyd1c2VyX2lkJ10sIHVzZXJfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnZbJ3Rva2VuJ10sIHRva2VuKQorCisgICAgICAgICMgTm93IGxldCdzIGZvcmNlIHRva2VuIHRvIGJlIHJlbmV3ZWQgYW5kIGNoZWNrIHRoYXQgd2UgaGF2ZSBhIG5ldyBvbmUuCisgICAgICAgIHMuY29uZmlnWyd0b2tlbl9uZXdfYWdlJ10gPSAtMzAwCisgICAgICAgIGEuX3VzZXIgPSBOb25lCisgICAgICAgIHJ2ID0gYS5nZXRfdXNlcl9ieV9zZXNzaW9uKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydlsndXNlcl9pZCddLCB1c2VyX2lkKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJ2Wyd0b2tlbiddLCB0b2tlbikKKworICAgICAgICAjIE5vdyBsZXQncyBmb3JjZSB0b2tlbiB0byBiZSBpbnZhbGlkLgorICAgICAgICBzLmNvbmZpZ1sndG9rZW5fbWF4X2FnZSddID0gLTMwMAorICAgICAgICBhLl91c2VyID0gTm9uZQorICAgICAgICBydiA9IGEuZ2V0X3VzZXJfYnlfc2Vzc2lvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIE5vbmUpCisKKyAgICBkZWYgdGVzdF9nZXRfdXNlcl9ieV9wYXNzd29yZChzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oY29uZmlnPXsKKyAgICAgICAgICAgICd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9ucyc6IHsKKyAgICAgICAgICAgICAgICAnc2VjcmV0X2tleSc6ICdmb28nLAorICAgICAgICAgICAgfQorICAgICAgICB9KQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHMgPSBhdXRoLmdldF9zdG9yZShhcHA9YXBwKQorICAgICAgICBhID0gYXV0aC5nZXRfYXV0aChyZXF1ZXN0PXJlcSkKKyAgICAgICAgc2Vzc2lvbl9zdG9yZSA9IHNlc3Npb25zLmdldF9zdG9yZShyZXF1ZXN0PXJlcSkKKworICAgICAgICBtID0gbW9kZWxzLlVzZXIKKyAgICAgICAgc3VjY2VzcywgdXNlciA9IG0uY3JlYXRlX3VzZXIoYXV0aF9pZD0nYXV0aF9pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkX3Jhdz0ncGFzc3dvcmQnKQorCisgICAgICAgIHVzZXJfaWQgPSB1c2VyLmtleS5pZCgpCisgICAgICAgICMgTGV0cyB0ZXN0IHRoZSBjb29raWUgbWF4X2FnZSB3aGVuIHdlIHVzZSByZW1lbWJlcj1UcnVlIG9yIEZhbHNlLgorICAgICAgICBydiA9IGEuZ2V0X3VzZXJfYnlfcGFzc3dvcmQoJ2F1dGhfaWQnLCAncGFzc3dvcmQnLCByZW1lbWJlcj1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2Wyd1c2VyX2lkJ10sIHVzZXJfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vzc2lvbl9zdG9yZS5zZXNzaW9uc1snYXV0aCddLnNlc3Npb25fYXJnc1snbWF4X2FnZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgIDg2NDAwICogNyAqIDMpCisKKyAgICAgICAgIyBOb3cgcmVtZW1iZXI9RmFsc2UuCisgICAgICAgIHJ2ID0gYS5nZXRfdXNlcl9ieV9wYXNzd29yZCgnYXV0aF9pZCcsICdwYXNzd29yZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnZbJ3VzZXJfaWQnXSwgdXNlcl9pZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uX3N0b3JlLnNlc3Npb25zWydhdXRoJ10uc2Vzc2lvbl9hcmdzWydtYXhfYWdlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSkKKworICAgICAgICAjIFVzZXIgd2FzIHNldCBzbyBnZXR0aW5nIGl0IGZyb20gc2Vzc2lvbiB3aWxsIHJldHVybiB0aGUgc2FtZSBvbmUuCisgICAgICAgIHJ2ID0gYS5nZXRfdXNlcl9ieV9zZXNzaW9uKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydlsndXNlcl9pZCddLCB1c2VyX2lkKQorCisgICAgICAgICMgTm93IHRyeSBhIGZhaWxlZCBwYXNzd29yZCBzdWJtaXNzaW9uOiB1c2VyIHdpbGwgYmUgdW5zZXQuCisgICAgICAgIHJ2ID0gYS5nZXRfdXNlcl9ieV9wYXNzd29yZCgnYXV0aF9pZCcsICdwYXNzd29yZF8yJywgc2lsZW50PVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShydiBpcyBOb25lKQorCisgICAgICAgICMgQW5kIGdldHRpbmcgYnkgc2Vzc2lvbiB3aWxsIG5vIGxvbmdlciB3b3JrLgorICAgICAgICBydiA9IGEuZ2V0X3VzZXJfYnlfc2Vzc2lvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShydiBpcyBOb25lKQorCisgICAgZGVmIHRlc3RfdmFsaWRhdGVfcGFzc3dvcmQoc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzID0gYXV0aC5nZXRfc3RvcmUoYXBwPWFwcCkKKworICAgICAgICBtID0gbW9kZWxzLlVzZXIKKyAgICAgICAgc3VjY2VzcywgdXNlciA9IG0uY3JlYXRlX3VzZXIoYXV0aF9pZD0nYXV0aF9pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkX3Jhdz0nZm9vJykKKworICAgICAgICB1ID0gcy52YWxpZGF0ZV9wYXNzd29yZCgnYXV0aF9pZCcsICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUsIHMudXNlcl90b19kaWN0KHVzZXIpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhhdXRoLkludmFsaWRQYXNzd29yZEVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzLnZhbGlkYXRlX3Bhc3N3b3JkLCAnYXV0aF9pZCcsICdiYXInKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhhdXRoLkludmFsaWRBdXRoSWRFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcy52YWxpZGF0ZV9wYXNzd29yZCwgJ2F1dGhfaWRfMicsICdmb28nKQorCisgICAgZGVmIHRlc3RfdmFsaWRhdGVfdG9rZW4oc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzID0gYXV0aC5nZXRfc3RvcmUoYXBwPWFwcCkKKworICAgICAgICBydiA9IHMudmFsaWRhdGVfdG9rZW4oJ2F1dGhfaWQnLCAndG9rZW4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2LCAoTm9uZSwgTm9uZSkpCisKKyAgICAgICAgIyBFeHBpcmVkIHRpbWVzdGFtcC4KKyAgICAgICAgcnYgPSBzLnZhbGlkYXRlX3Rva2VuKCdhdXRoX2lkJywgJ3Rva2VuJywgLTMwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgKE5vbmUsIE5vbmUpKQorCisgICAgICAgIG0gPSBtb2RlbHMuVXNlcgorICAgICAgICBzdWNjZXNzLCB1c2VyID0gbS5jcmVhdGVfdXNlcihhdXRoX2lkPSdhdXRoX2lkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmRfcmF3PSdmb28nKQorCisgICAgICAgIHVzZXJfaWQgPSB1c2VyLmtleS5pZCgpCisgICAgICAgIHRva2VuID0gbS5jcmVhdGVfYXV0aF90b2tlbih1c2VyX2lkKQorICAgICAgICBydiA9IHMudmFsaWRhdGVfdG9rZW4odXNlcl9pZCwgdG9rZW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIChzLnVzZXJfdG9fZGljdCh1c2VyKSwgdG9rZW4pKQorICAgICAgICAjIFRva2VuIG11c3Qgc3RpbGwgYmUgdGhlcmUuCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLl9jaGVja190b2tlbih1c2VyX2lkLCB0b2tlbikpCisKKyAgICAgICAgIyBFeHBpcmVkIHRpbWVzdGFtcC4KKyAgICAgICAgdG9rZW4gPSBtLmNyZWF0ZV9hdXRoX3Rva2VuKHVzZXJfaWQpCisgICAgICAgIHJ2ID0gcy52YWxpZGF0ZV90b2tlbih1c2VyX2lkLCB0b2tlbiwgLTMwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgKE5vbmUsIE5vbmUpKQorICAgICAgICAjIFRva2VuIG11c3QgaGF2ZSBiZWVuIGRlbGV0ZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5fY2hlY2tfdG9rZW4odXNlcl9pZCwgdG9rZW4pKQorCisgICAgICAgICMgRm9yY2UgZXhwaXJhdGlvbi4KKyAgICAgICAgdG9rZW4gPSBtLmNyZWF0ZV9hdXRoX3Rva2VuKHVzZXJfaWQpCisgICAgICAgIHMuY29uZmlnWyd0b2tlbl9tYXhfYWdlJ10gPSAtMzAwCisgICAgICAgIHJ2ID0gcy52YWxpZGF0ZV90b2tlbih1c2VyX2lkLCB0b2tlbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgKE5vbmUsIE5vbmUpKQorICAgICAgICAjIFRva2VuIG11c3QgaGF2ZSBiZWVuIGRlbGV0ZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5fY2hlY2tfdG9rZW4odXNlcl9pZCwgdG9rZW4pKQorCisgICAgICAgICMgUmV2ZXJ0IGV4cGlyYXRpb24sIGZvcmNlIHJlbmV3YWwuCisgICAgICAgIHRva2VuID0gbS5jcmVhdGVfYXV0aF90b2tlbih1c2VyX2lkKQorICAgICAgICBzLmNvbmZpZ1sndG9rZW5fbWF4X2FnZSddID0gODY0MDAgKiA3ICogMworICAgICAgICBzLmNvbmZpZ1sndG9rZW5fbmV3X2FnZSddID0gLTMwMAorICAgICAgICBydiA9IHMudmFsaWRhdGVfdG9rZW4odXNlcl9pZCwgdG9rZW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIChzLnVzZXJfdG9fZGljdCh1c2VyKSwgTm9uZSkpCisgICAgICAgICMgVG9rZW4gbXVzdCBoYXZlIGJlZW4gZGVsZXRlZC4KKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLl9jaGVja190b2tlbih1c2VyX2lkLCB0b2tlbikpCisKKyAgICBkZWYgdGVzdF9zZXRfYXV0aF9zdG9yZShzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gYXV0aC5BdXRoU3RvcmUoYXBwKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFwcC5yZWdpc3RyeSksIDApCisgICAgICAgIGF1dGguc2V0X3N0b3JlKHN0b3JlLCBhcHA9YXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAucmVnaXN0cnkpLCAxKQorICAgICAgICBzID0gYXV0aC5nZXRfc3RvcmUoYXBwPWFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UocywgYXV0aC5BdXRoU3RvcmUpKQorCisgICAgZGVmIHRlc3RfZ2V0X2F1dGhfc3RvcmUoc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAucmVnaXN0cnkpLCAwKQorICAgICAgICBzID0gYXV0aC5nZXRfc3RvcmUoYXBwPWFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UocywgYXV0aC5BdXRoU3RvcmUpKQorCisgICAgZGVmIHRlc3Rfc2V0X2F1dGgoc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBhID0gYXV0aC5BdXRoKHJlcSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXEucmVnaXN0cnkpLCAwKQorICAgICAgICBhdXRoLnNldF9hdXRoKGEsIHJlcXVlc3Q9cmVxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXEucmVnaXN0cnkpLCAxKQorICAgICAgICBhID0gYXV0aC5nZXRfYXV0aChyZXF1ZXN0PXJlcSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoYSwgYXV0aC5BdXRoKSkKKworICAgIGRlZiB0ZXN0X2dldF9hdXRoKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbigpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVxLnJlZ2lzdHJ5KSwgMCkKKyAgICAgICAgYSA9IGF1dGguZ2V0X2F1dGgocmVxdWVzdD1yZXEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcS5yZWdpc3RyeSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGEsIGF1dGguQXV0aCkpCisKKyAgICAnJycKKyAgICBkZWYgdGVzdF9zZXRfY2FsbGFibGVzKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbigpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgcyA9IGF1dGguZ2V0X3N0b3JlKGFwcD1hcHApCisKKyAgICAgICAgZGVmIHZhbGlkYXRlX3Bhc3N3b3JkKHN0b3JlLCBhdXRoX2lkLCBwYXNzd29yZCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RvcmUgaXMgcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXV0aF9pZCwgJ2F1dGhfaWQnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXNzd29yZCwgJ3Bhc3N3b3JkJykKKyAgICAgICAgICAgIHJldHVybiAndmFsaWRhdGVfcGFzc3dvcmQnCisKKyAgICAgICAgZGVmIHZhbGlkYXRlX3Rva2VuKHN0b3JlLCBhdXRoX2lkLCB0b2tlbiwgdG9rZW5fdHM9Tm9uZSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RvcmUgaXMgcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXV0aF9pZCwgJ2F1dGhfaWQnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0b2tlbiwgJ3Rva2VuJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG9rZW5fdHMsICd0b2tlbl90cycpCisgICAgICAgICAgICByZXR1cm4gJ3ZhbGlkYXRlX3Rva2VuJworCisgICAgICAgIHMuc2V0X3Bhc3N3b3JkX3ZhbGlkYXRvcih2YWxpZGF0ZV9wYXNzd29yZCkKKyAgICAgICAgcnYgPSBzLnZhbGlkYXRlX3Bhc3N3b3JkKCdhdXRoX2lkJywgJ3Bhc3N3b3JkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgJ3ZhbGlkYXRlX3Bhc3N3b3JkJykKKworICAgICAgICBzLnNldF90b2tlbl92YWxpZGF0b3IodmFsaWRhdGVfdG9rZW4pCisgICAgICAgIHJ2ID0gcy52YWxpZGF0ZV90b2tlbignYXV0aF9pZCcsICd0b2tlbicsICd0b2tlbl90cycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsICd2YWxpZGF0ZV90b2tlbicpCisgICAgJycnCisKKyAgICBkZWYgdGVzdF9leHRlbmRlZF91c2VyKHNlbGYpOgorICAgICAgICBjbGFzcyBNeVVzZXIobW9kZWxzLlVzZXIpOgorICAgICAgICAgICAgbmV3c2xldHRlciA9IG1vZGVsLkJvb2xlYW5Qcm9wZXJ0eSgpCisgICAgICAgICAgICBhZ2UgPSBtb2RlbC5JbnRlZ2VyUHJvcGVydHkoKQorCisgICAgICAgIGF1dGhfaWQgPSAnb3duOnVzZXJuYW1lJworICAgICAgICBzdWNjZXNzLCBpbmZvID0gTXlVc2VyLmNyZWF0ZV91c2VyKGF1dGhfaWQsIG5ld3NsZXR0ZXI9VHJ1ZSwgYWdlPTIyKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc3VjY2VzcykKKworICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihjb25maWc9eworICAgICAgICAgICAgJ3dlYmFwcDJfZXh0cmFzLmF1dGgnOiB7CisgICAgICAgICAgICAgICAgJ3VzZXJfbW9kZWwnOiBNeVVzZXIsCisgICAgICAgICAgICB9CisgICAgICAgIH0pCisgICAgICAgIHMgPSBhdXRoLmdldF9zdG9yZShhcHA9YXBwKQorICAgICAgICB1c2VyID0gcy51c2VyX21vZGVsLmdldF9ieV9hdXRoX2lkKGF1dGhfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mbywgdXNlcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1c2VyLmFnZSwgMjIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh1c2VyLm5ld3NsZXR0ZXIgaXMgVHJ1ZSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19jb25maWdfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19jb25maWdfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmE5MzA0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2NvbmZpZ190ZXN0LnB5CkBAIC0wLDAgKzEsMzQ3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHdlYmFwcDIKKworZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgY29uZmlnIGFzIGFwcF9jb25maWcKKworaW1wb3J0IHRlc3RfYmFzZQorCisKK2NsYXNzIFRlc3RDb25maWcodGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVzdF9nZXQoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKHsnZm9vJzogeworICAgICAgICAgICAgJ2Jhcic6ICdiYXonLAorICAgICAgICAgICAgJ2Rvbyc6ICdkaW5nJywKKyAgICAgICAgfX0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0KCdmb28nKSwgeworICAgICAgICAgICAgJ2Jhcic6ICdiYXonLAorICAgICAgICAgICAgJ2Rvbyc6ICdkaW5nJywKKyAgICAgICAgfSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXQoJ2JhcicpLCB7fSkKKworICAgIGRlZiB0ZXN0X2dldF9leGlzdGluZ19rZXlzKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZyh7J2Zvbyc6IHsKKyAgICAgICAgICAgICdiYXInOiAnYmF6JywKKyAgICAgICAgICAgICdkb28nOiAnZGluZycsCisgICAgICAgIH19KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ2ZvbycsICdiYXInKSwgJ2JheicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ2ZvbycsICdkb28nKSwgJ2RpbmcnKQorCisgICAgZGVmIHRlc3RfZ2V0X2V4aXN0aW5nX2tleXNfZnJvbV9kZWZhdWx0KHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZyh7fSwgeydmb28nOiB7CisgICAgICAgICAgICAnYmFyJzogJ2JheicsCisgICAgICAgICAgICAnZG9vJzogJ2RpbmcnLAorICAgICAgICB9fSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnYmFyJyksICdiYXonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnZG9vJyksICdkaW5nJykKKworICAgIGRlZiB0ZXN0X2dldF9ub25fZXhpc3Rpbmdfa2V5cyhzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBjb25maWcuZ2V0X2NvbmZpZywgJ2ZvbycsICdiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X2RpY3RfZXhpc3Rpbmdfa2V5cyhzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoeydmb28nOiB7CisgICAgICAgICAgICAnYmFyJzogJ2JheicsCisgICAgICAgICAgICAnZG9vJzogJ2RpbmcnLAorICAgICAgICB9fSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nKSwgeworICAgICAgICAgICAgJ2Jhcic6ICdiYXonLAorICAgICAgICAgICAgJ2Rvbyc6ICdkaW5nJywKKyAgICAgICAgfSkKKworICAgIGRlZiB0ZXN0X2dldF9kaWN0X25vbl9leGlzdGluZ19rZXlzKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGNvbmZpZy5nZXRfY29uZmlnLCAnYmFyJykKKworICAgIGRlZiB0ZXN0X2dldF93aXRoX2RlZmF1bHQoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKCkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgY29uZmlnLmdldF9jb25maWcsICdmb28nLCAnYmFyJywgJ29vb3BzJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGNvbmZpZy5nZXRfY29uZmlnLCAnZm9vJywgJ2RvbycsICd3b29vJykKKworICAgIGRlZiB0ZXN0X2dldF93aXRoX2RlZmF1bHRfYW5kX25vbmUoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKHsnZm9vJzogeworICAgICAgICAgICAgJ2Jhcic6IE5vbmUsCisgICAgICAgIH19KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ2ZvbycsICdiYXInLCAnb29vcHMnKSwgTm9uZSkKKworICAgIGRlZiB0ZXN0X3VwZGF0ZShzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoeydmb28nOiB7CisgICAgICAgICAgICAnYmFyJzogJ2JheicsCisgICAgICAgICAgICAnZG9vJzogJ2RpbmcnLAorICAgICAgICB9fSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnYmFyJyksICdiYXonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnZG9vJyksICdkaW5nJykKKworICAgICAgICBjb25maWcudXBkYXRlKCdmb28nLCB7J2Jhcic6ICdvdGhlcid9KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ2ZvbycsICdiYXInKSwgJ290aGVyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygnZm9vJywgJ2RvbycpLCAnZGluZycpCisKKyAgICBkZWYgdGVzdF9zZXRkZWZhdWx0KHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGNvbmZpZy5nZXRfY29uZmlnLCAnZm9vJykKKworICAgICAgICBjb25maWcuc2V0ZGVmYXVsdCgnZm9vJywgeworICAgICAgICAgICAgJ2Jhcic6ICdiYXonLAorICAgICAgICAgICAgJ2Rvbyc6ICdkaW5nJywKKyAgICAgICAgfSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnYmFyJyksICdiYXonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnZG9vJyksICdkaW5nJykKKworICAgIGRlZiB0ZXN0X3NldGRlZmF1bHQyKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZyh7J2Zvbyc6IHsKKyAgICAgICAgICAgICdiYXInOiAnYmF6JywKKyAgICAgICAgfX0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygnZm9vJyksIHsKKyAgICAgICAgICAgICdiYXInOiAnYmF6JywKKyAgICAgICAgfSkKKworICAgICAgICBjb25maWcuc2V0ZGVmYXVsdCgnZm9vJywgeworICAgICAgICAgICAgJ2Jhcic6ICd3b29vJywKKyAgICAgICAgICAgICdkb28nOiAnZGluZycsCisgICAgICAgIH0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygnZm9vJywgJ2JhcicpLCAnYmF6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygnZm9vJywgJ2RvbycpLCAnZGluZycpCisKKyAgICBkZWYgdGVzdF9zZXRpdGVtKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisgICAgICAgIGNvbmZpZ1snZm9vJ10gPSB7J2Jhcic6ICdiYXonfQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLCB7J2Zvbyc6IHsnYmFyJzogJ2Jheid9fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWdbJ2ZvbyddLCB7J2Jhcic6ICdiYXonfSkKKworICAgIGRlZiB0ZXN0X2luaXRfbm9fZGljdF92YWx1ZXMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBhcHBfY29uZmlnLkNvbmZpZywgeydmb28nOiAnYmFyJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBhcHBfY29uZmlnLkNvbmZpZywgeydmb28nOiBOb25lfSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIGFwcF9jb25maWcuQ29uZmlnLCAnZm9vJykKKworICAgIGRlZiB0ZXN0X2luaXRfbm9fZGljdF9kZWZhdWx0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgYXBwX2NvbmZpZy5Db25maWcsIHt9LCB7J2Zvbyc6ICdiYXInfSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIGFwcF9jb25maWcuQ29uZmlnLCB7fSwgeydmb28nOiBOb25lfSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIGFwcF9jb25maWcuQ29uZmlnLCB7fSwgJ2ZvbycpCisKKyAgICBkZWYgdGVzdF91cGRhdGVfbm9fZGljdF92YWx1ZXMoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKCkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgY29uZmlnLnVwZGF0ZSwgeydmb28nOiAnYmFyJ30sICdiYXonKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgY29uZmlnLnVwZGF0ZSwgeydmb28nOiBOb25lfSwgJ2JheicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBjb25maWcudXBkYXRlLCAnZm9vJywgJ2JhcicpCisKKyAgICBkZWYgdGVzdF9zZXRkZWZhdWx0X25vX2RpY3RfdmFsdWVzKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIGNvbmZpZy5zZXRkZWZhdWx0LCAnZm9vJywgJ2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBjb25maWcuc2V0ZGVmYXVsdCwgJ2ZvbycsIE5vbmUpCisKKyAgICBkZWYgdGVzdF9zZXRpdGVtX25vX2RpY3RfdmFsdWVzKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisKKyAgICAgICAgZGVmIHNldGl0ZW0oa2V5LCB2YWx1ZSk6CisgICAgICAgICAgICBjb25maWdba2V5XSA9IHZhbHVlCisgICAgICAgICAgICByZXR1cm4gY29uZmlnCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNldGl0ZW0sICdmb28nLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNldGl0ZW0sICdmb28nLCBOb25lKQorCisKK2NsYXNzIFRlc3RMb2FkQ29uZmlnKHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWcoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKCkKKworICAgICAgICBmcm9tIHJlc291cmNlcy50ZW1wbGF0ZSBpbXBvcnQgZGVmYXVsdF9jb25maWcgYXMgdGVtcGxhdGVfY29uZmlnCisgICAgICAgIGZyb20gcmVzb3VyY2VzLmkxOG4gaW1wb3J0IGRlZmF1bHRfY29uZmlnIGFzIGkxOG5fY29uZmlnCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygncmVzb3VyY2VzLnRlbXBsYXRlJywgJ3RlbXBsYXRlc19kaXInKSwgdGVtcGxhdGVfY29uZmlnWyd0ZW1wbGF0ZXNfZGlyJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ3Jlc291cmNlcy5pMThuJywgJ2xvY2FsZScpLCBpMThuX2NvbmZpZ1snbG9jYWxlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ3Jlc291cmNlcy5pMThuJywgJ3RpbWV6b25lJyksIGkxOG5fY29uZmlnWyd0aW1lem9uZSddKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWdfd2l0aF9ub25fZXhpc3Rpbmdfa2V5KHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisKKyAgICAgICAgZnJvbSByZXNvdXJjZXMuaTE4biBpbXBvcnQgZGVmYXVsdF9jb25maWcgYXMgaTE4bl9jb25maWcKKworICAgICAgICAjIEluIHRoZSBmaXJzdCB0aW1lIHRoZSBtb2R1bGUgY29uZmlnIHdpbGwgYmUgbG9hZGVkIG5vcm1hbGx5LgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdyZXNvdXJjZXMuaTE4bicsICdsb2NhbGUnKSwgaTE4bl9jb25maWdbJ2xvY2FsZSddKQorCisgICAgICAgICMgSW4gdGhlIHNlY29uZCB0aW1lIGl0IHdvbid0IGJlIGxvYWRlZCwgYnV0IHdvbid0IGZpbmQgdGhlIHZhbHVlIGFuZCB0aGVuIHVzZSB0aGUgZGVmYXVsdC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygncmVzb3VyY2VzLmkxOG4nLCAnaV9kb250X2V4aXN0JywgJ2ZvbycpLCAnZm9vJykKKworICAgIGRlZiB0ZXN0X292ZXJyaWRlX2NvbmZpZyhzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoeworICAgICAgICAgICAgJ3Jlc291cmNlcy50ZW1wbGF0ZSc6IHsKKyAgICAgICAgICAgICAgICAndGVtcGxhdGVzX2Rpcic6ICdhcHBzL3RlbXBsYXRlcycKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncmVzb3VyY2VzLmkxOG4nOiB7CisgICAgICAgICAgICAgICAgJ2xvY2FsZSc6ICdwdF9CUicsCisgICAgICAgICAgICAgICAgJ3RpbWV6b25lJzogJ0FtZXJpY2EvU2FvX1BhdWxvJywKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygncmVzb3VyY2VzLnRlbXBsYXRlJywgJ3RlbXBsYXRlc19kaXInKSwgJ2FwcHMvdGVtcGxhdGVzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygncmVzb3VyY2VzLmkxOG4nLCAnbG9jYWxlJyksICdwdF9CUicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ3Jlc291cmNlcy5pMThuJywgJ3RpbWV6b25lJyksICdBbWVyaWNhL1Nhb19QYXVsbycpCisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9jb25maWcyKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZyh7CisgICAgICAgICAgICAncmVzb3VyY2VzLmkxOG4nOiB7CisgICAgICAgICAgICAgICAgJ3RpbWV6b25lJzogJ0FtZXJpY2EvU2FvX1BhdWxvJywKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygncmVzb3VyY2VzLmkxOG4nLCAnbG9jYWxlJyksICdlbl9VUycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ3Jlc291cmNlcy5pMThuJywgJ3RpbWV6b25lJyksICdBbWVyaWNhL1Nhb19QYXVsbycpCisKKyAgICBkZWYgdGVzdF9nZXQoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKHsnZm9vJzogeworICAgICAgICAgICAgJ2Jhcic6ICdiYXonLAorICAgICAgICB9fSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnYmFyJyksICdiYXonKQorCisgICAgZGVmIHRlc3RfZ2V0X3dpdGhfZGVmYXVsdChzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnLmdldF9jb25maWcoJ3Jlc291cmNlcy5pMThuJywgJ2JhcicsICdiYXonKSwgJ2JheicpCisKKyAgICBkZWYgdGVzdF9nZXRfd2l0aF9kZWZhdWx0X2FuZF9ub25lKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZyh7J2Zvbyc6IHsKKyAgICAgICAgICAgICdiYXInOiBOb25lLAorICAgICAgICB9fSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdmb28nLCAnYmFyJywgJ29vb3BzJyksIE5vbmUpCisKKyAgICBkZWYgdGVzdF9nZXRfd2l0aF9kZWZhdWx0X2FuZF9tb2R1bGVfbG9hZChzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZy5nZXRfY29uZmlnKCdyZXNvdXJjZXMuaTE4bicsICdsb2NhbGUnKSwgJ2VuX1VTJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWcuZ2V0X2NvbmZpZygncmVzb3VyY2VzLmkxOG4nLCAnbG9jYWxlJywgJ2ZvbycpLCAnZW5fVVMnKQorCisgICAgZGVmIHRlc3RfcmVxdWlyZWRfY29uZmlnKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBjb25maWcuZ2V0X2NvbmZpZywgJ3Jlc291cmNlcy5pMThuJywgJ2ZvbycpCisKKyAgICBkZWYgdGVzdF9taXNzaW5nX21vZHVsZShzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgY29uZmlnLmdldF9jb25maWcsICdpX2RvbnRfZXhpc3QnLCAnaV9kb250X2V4aXN0JykKKworICAgIGRlZiB0ZXN0X21pc3NpbmdfbW9kdWxlMihzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgY29uZmlnLmdldF9jb25maWcsICdpX2RvbnRfZXhpc3QnKQorCisgICAgZGVmIHRlc3RfbWlzc2luZ19rZXkoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGNvbmZpZy5nZXRfY29uZmlnLCAncmVzb3VyY2VzLmkxOG4nLCAnaV9kb250X2V4aXN0JykKKworICAgIGRlZiB0ZXN0X21pc3NpbmdfZGVmYXVsdF9jb25maWcoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGNvbmZpZy5nZXRfY29uZmlnLCAndGlwZnknLCAnZm9vJykKKworCitjbGFzcyBUZXN0TG9hZENvbmZpZ0dldEl0ZW0odGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVzdF9kZWZhdWx0X2NvbmZpZyhzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorCisgICAgICAgIGZyb20gcmVzb3VyY2VzLnRlbXBsYXRlIGltcG9ydCBkZWZhdWx0X2NvbmZpZyBhcyB0ZW1wbGF0ZV9jb25maWcKKyAgICAgICAgZnJvbSByZXNvdXJjZXMuaTE4biBpbXBvcnQgZGVmYXVsdF9jb25maWcgYXMgaTE4bl9jb25maWcKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZ1sncmVzb3VyY2VzLnRlbXBsYXRlJ11bJ3RlbXBsYXRlc19kaXInXSwgdGVtcGxhdGVfY29uZmlnWyd0ZW1wbGF0ZXNfZGlyJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnWydyZXNvdXJjZXMuaTE4biddWydsb2NhbGUnXSwgaTE4bl9jb25maWdbJ2xvY2FsZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZ1sncmVzb3VyY2VzLmkxOG4nXVsndGltZXpvbmUnXSwgaTE4bl9jb25maWdbJ3RpbWV6b25lJ10pCisKKyAgICBkZWYgdGVzdF9kZWZhdWx0X2NvbmZpZ193aXRoX25vbl9leGlzdGluZ19rZXkoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKCkKKworICAgICAgICBmcm9tIHJlc291cmNlcy5pMThuIGltcG9ydCBkZWZhdWx0X2NvbmZpZyBhcyBpMThuX2NvbmZpZworCisgICAgICAgICMgSW4gdGhlIGZpcnN0IHRpbWUgdGhlIG1vZHVsZSBjb25maWcgd2lsbCBiZSBsb2FkZWQgbm9ybWFsbHkuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnWydyZXNvdXJjZXMuaTE4biddWydsb2NhbGUnXSwgaTE4bl9jb25maWdbJ2xvY2FsZSddKQorCisgICAgICAgICMgSW4gdGhlIHNlY29uZCB0aW1lIGl0IHdvbid0IGJlIGxvYWRlZCwgYnV0IHdvbid0IGZpbmQgdGhlIHZhbHVlIGFuZCB0aGVuIHVzZSB0aGUgZGVmYXVsdC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWdbJ3Jlc291cmNlcy5pMThuJ10uZ2V0KCdpX2RvbnRfZXhpc3QnLCAnZm9vJyksICdmb28nKQorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfY29uZmlnKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZyh7CisgICAgICAgICAgICAncmVzb3VyY2VzLnRlbXBsYXRlJzogeworICAgICAgICAgICAgICAgICd0ZW1wbGF0ZXNfZGlyJzogJ2FwcHMvdGVtcGxhdGVzJworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZXNvdXJjZXMuaTE4bic6IHsKKyAgICAgICAgICAgICAgICAnbG9jYWxlJzogJ3B0X0JSJywKKyAgICAgICAgICAgICAgICAndGltZXpvbmUnOiAnQW1lcmljYS9TYW9fUGF1bG8nLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZ1sncmVzb3VyY2VzLnRlbXBsYXRlJ11bJ3RlbXBsYXRlc19kaXInXSwgJ2FwcHMvdGVtcGxhdGVzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWdbJ3Jlc291cmNlcy5pMThuJ11bJ2xvY2FsZSddLCAncHRfQlInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZ1sncmVzb3VyY2VzLmkxOG4nXVsndGltZXpvbmUnXSwgJ0FtZXJpY2EvU2FvX1BhdWxvJykKKworICAgIGRlZiB0ZXN0X292ZXJyaWRlX2NvbmZpZzIoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKHsKKyAgICAgICAgICAgICdyZXNvdXJjZXMuaTE4bic6IHsKKyAgICAgICAgICAgICAgICAndGltZXpvbmUnOiAnQW1lcmljYS9TYW9fUGF1bG8nLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZ1sncmVzb3VyY2VzLmkxOG4nXVsnbG9jYWxlJ10sICdlbl9VUycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnWydyZXNvdXJjZXMuaTE4biddWyd0aW1lem9uZSddLCAnQW1lcmljYS9TYW9fUGF1bG8nKQorCisgICAgZGVmIHRlc3RfZ2V0KHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZyh7J2Zvbyc6IHsKKyAgICAgICAgICAgICdiYXInOiAnYmF6JywKKyAgICAgICAgfX0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWdbJ2ZvbyddWydiYXInXSwgJ2JheicpCisKKyAgICBkZWYgdGVzdF9nZXRfd2l0aF9kZWZhdWx0KHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWdbJ3Jlc291cmNlcy5pMThuJ10uZ2V0KCdiYXInLCAnYmF6JyksICdiYXonKQorCisgICAgZGVmIHRlc3RfZ2V0X3dpdGhfZGVmYXVsdF9hbmRfbm9uZShzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoeydmb28nOiB7CisgICAgICAgICAgICAnYmFyJzogTm9uZSwKKyAgICAgICAgfX0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWdbJ2ZvbyddLmdldCgnYmFyJywgJ29vb3BzJyksIE5vbmUpCisKKyAgICBkZWYgdGVzdF9nZXRfd2l0aF9kZWZhdWx0X2FuZF9tb2R1bGVfbG9hZChzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZ1sncmVzb3VyY2VzLmkxOG4nXVsnbG9jYWxlJ10sICdlbl9VUycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmlnWydyZXNvdXJjZXMuaTE4biddLmdldCgnbG9jYWxlJywgJ2ZvbycpLCAnZW5fVVMnKQorCisgICAgZGVmIHRlc3RfcmVxdWlyZWRfY29uZmlnKHNlbGYpOgorICAgICAgICBjb25maWcgPSBhcHBfY29uZmlnLkNvbmZpZygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBjb25maWdbJ3Jlc291cmNlcy5pMThuJ10uX19nZXRpdGVtX18sICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgY29uZmlnWydyZXNvdXJjZXMuaTE4biddLl9fZ2V0aXRlbV9fLCAncmVxdWlyZWQnKQorCisgICAgZGVmIHRlc3RfbWlzc2luZ19tb2R1bGUoc2VsZik6CisgICAgICAgIGNvbmZpZyA9IGFwcF9jb25maWcuQ29uZmlnKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGNvbmZpZy5fX2dldGl0ZW1fXywgJ2lfZG9udF9leGlzdCcpCisKKyAgICBkZWYgdGVzdF9taXNzaW5nX2tleShzZWxmKToKKyAgICAgICAgY29uZmlnID0gYXBwX2NvbmZpZy5Db25maWcoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgY29uZmlnWydyZXNvdXJjZXMuaTE4biddLl9fZ2V0aXRlbV9fLCAnaV9kb250X2V4aXN0JykKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19pMThuX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfaTE4bl90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4Y2MwMWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfaTE4bl90ZXN0LnB5CkBAIC0wLDAgKzEsMzk5IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgZ2V0dGV4dCBhcyBnZXR0ZXh0X3N0ZGxpYgoraW1wb3J0IG9zCisKK2Zyb20gYmFiZWwubnVtYmVycyBpbXBvcnQgTnVtYmVyRm9ybWF0RXJyb3IKKworZnJvbSBweXR6LmdhZSBpbXBvcnQgcHl0egorCitpbXBvcnQgd2ViYXBwMgorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgaTE4bgorCitpbXBvcnQgdGVzdF9iYXNlCisKK2NsYXNzIEkxOG5UZXN0Q2FzZSh0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoSTE4blRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oKQorICAgICAgICByZXF1ZXN0ID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxdWVzdC5hcHAgPSBhcHAKKworICAgICAgICBhcHAuc2V0X2dsb2JhbHMoYXBwPWFwcCwgcmVxdWVzdD1yZXF1ZXN0KQorCisgICAgICAgIHNlbGYuYXBwID0gYXBwCisgICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKKworICAgICM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICMgXygpLCBnZXR0ZXh0KCksIG5nZXR0ZXh0KCksIGxhenlfZ2V0dGV4dCgpLCBsYXp5X25nZXR0ZXh0KCkKKyAgICAjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIGRlZiB0ZXN0X3RyYW5zbGF0aW9uc19ub3Rfc2V0KHNlbGYpOgorICAgICAgICAjIFdlIHJlbGVhc2UgaXQgaGVyZSBiZWNhdXNlIGl0IGlzIHNldCBvbiBzZXRVcCgpCisgICAgICAgIHNlbGYuYXBwLmNsZWFyX2dsb2JhbHMoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgaTE4bi5nZXR0ZXh0LCAnZm9vJykKKworICAgIGRlZiB0ZXN0X2dldHRleHQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5nZXR0ZXh0KCdmb28nKSwgdSdmb28nKQorCisgICAgZGVmIHRlc3RfZ2V0dGV4dF8oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5fKCdmb28nKSwgdSdmb28nKQorCisgICAgZGVmIHRlc3RfZ2V0dGV4dF93aXRoX3ZhcmlhYmxlcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmdldHRleHQoJ2ZvbyAlKGZvbylzJyksIHUnZm9vICUoZm9vKXMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZ2V0dGV4dCgnZm9vICUoZm9vKXMnKSAlIHsnZm9vJzogJ2Jhcid9LCB1J2ZvbyBiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZ2V0dGV4dCgnZm9vICUoZm9vKXMnLCBmb289J2JhcicpLCB1J2ZvbyBiYXInKQorCisgICAgZGVmIHRlc3RfbmdldHRleHQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5uZ2V0dGV4dCgnT25lIGZvbycsICdNYW55IGZvb3MnLCAxKSwgdSdPbmUgZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLm5nZXR0ZXh0KCdPbmUgZm9vJywgJ01hbnkgZm9vcycsIDIpLCB1J01hbnkgZm9vcycpCisKKyAgICBkZWYgdGVzdF9uZ2V0dGV4dF93aXRoX3ZhcmlhYmxlcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLm5nZXR0ZXh0KCdPbmUgZm9vICUoZm9vKXMnLCAnTWFueSBmb29zICUoZm9vKXMnLCAxKSwgdSdPbmUgZm9vICUoZm9vKXMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4ubmdldHRleHQoJ09uZSBmb28gJShmb28pcycsICdNYW55IGZvb3MgJShmb28pcycsIDIpLCB1J01hbnkgZm9vcyAlKGZvbylzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLm5nZXR0ZXh0KCdPbmUgZm9vICUoZm9vKXMnLCAnTWFueSBmb29zICUoZm9vKXMnLCAxLCBmb289J2JhcicpLCB1J09uZSBmb28gYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLm5nZXR0ZXh0KCdPbmUgZm9vICUoZm9vKXMnLCAnTWFueSBmb29zICUoZm9vKXMnLCAyLCBmb289J2JhcicpLCB1J01hbnkgZm9vcyBiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4ubmdldHRleHQoJ09uZSBmb28gJShmb28pcycsICdNYW55IGZvb3MgJShmb28pcycsIDEpICUgeydmb28nOiAnYmFyJ30sIHUnT25lIGZvbyBiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4ubmdldHRleHQoJ09uZSBmb28gJShmb28pcycsICdNYW55IGZvb3MgJShmb28pcycsIDIpICUgeydmb28nOiAnYmFyJ30sIHUnTWFueSBmb29zIGJhcicpCisKKyAgICBkZWYgdGVzdF9sYXp5X2dldHRleHQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5sYXp5X2dldHRleHQoJ2ZvbycpLCB1J2ZvbycpCisKKyAgICAjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAjIERhdGUgZm9ybWF0dGluZworICAgICM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgZGVmIHRlc3RfZm9ybWF0X2RhdGUoc2VsZik6CisgICAgICAgIHZhbHVlID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAwOSwgMTEsIDEwLCAxNiwgMzYsIDA1KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZSh2YWx1ZSwgZm9ybWF0PSdzaG9ydCcpLCB1JzExLzEwLzA5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9kYXRlKHZhbHVlLCBmb3JtYXQ9J21lZGl1bScpLCB1J05vdiAxMCwgMjAwOScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZSh2YWx1ZSwgZm9ybWF0PSdsb25nJyksIHUnTm92ZW1iZXIgMTAsIDIwMDknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGUodmFsdWUsIGZvcm1hdD0nZnVsbCcpLCB1J1R1ZXNkYXksIE5vdmVtYmVyIDEwLCAyMDA5JykKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9kYXRlX25vX2Zvcm1hdChzZWxmKToKKyAgICAgICAgdmFsdWUgPSBkYXRldGltZS5kYXRldGltZSgyMDA5LCAxMSwgMTAsIDE2LCAzNiwgMDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZSh2YWx1ZSksIHUnTm92IDEwLCAyMDA5JykKKworICAgICcnJworICAgIGRlZiB0ZXN0X2Zvcm1hdF9kYXRlX25vX2Zvcm1hdF9idXRfY29uZmlndXJlZChzZWxmKToKKyAgICAgICAgYXBwID0gQXBwKGNvbmZpZz17CisgICAgICAgICAgICAndGlwZnkuc2Vzc2lvbnMnOiB7CisgICAgICAgICAgICAgICAgJ3NlY3JldF9rZXknOiAnc2VjcmV0JywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGlwZnkuaTE4bic6IHsKKyAgICAgICAgICAgICAgICAndGltZXpvbmUnOiAnVVRDJywKKyAgICAgICAgICAgICAgICAnZGF0ZV9mb3JtYXRzJzogeworICAgICAgICAgICAgICAgICAgICAndGltZSc6ICAgICAgICAgICAgICdtZWRpdW0nLAorICAgICAgICAgICAgICAgICAgICAnZGF0ZSc6ICAgICAgICAgICAgICdtZWRpdW0nLAorICAgICAgICAgICAgICAgICAgICAnZGF0ZXRpbWUnOiAgICAgICAgICdtZWRpdW0nLAorICAgICAgICAgICAgICAgICAgICAndGltZS5zaG9ydCc6ICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICd0aW1lLm1lZGl1bSc6ICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgJ3RpbWUuZnVsbCc6ICAgICAgICBOb25lLAorICAgICAgICAgICAgICAgICAgICAndGltZS5sb25nJzogICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICdkYXRlLnNob3J0JzogICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGUubWVkaXVtJzogICAgICAnZnVsbCcsCisgICAgICAgICAgICAgICAgICAgICdkYXRlLmZ1bGwnOiAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGUubG9uZyc6ICAgICAgICBOb25lLAorICAgICAgICAgICAgICAgICAgICAnZGF0ZXRpbWUuc2hvcnQnOiAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICdkYXRldGltZS5tZWRpdW0nOiAgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGV0aW1lLmZ1bGwnOiAgICBOb25lLAorICAgICAgICAgICAgICAgICAgICAnZGF0ZXRpbWUubG9uZyc6ICAgIE5vbmUsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KQorICAgICAgICBsb2NhbC5yZXF1ZXN0ID0gcmVxdWVzdCA9IFJlcXVlc3QuZnJvbV92YWx1ZXMoJy8nKQorICAgICAgICByZXF1ZXN0LmFwcCA9IGFwcAorCisgICAgICAgIHZhbHVlID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAwOSwgMTEsIDEwLCAxNiwgMzYsIDA1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGUodmFsdWUpLCB1J1R1ZXNkYXksIE5vdmVtYmVyIDEwLCAyMDA5JykKKyAgICAnJycKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9kYXRlX3B0X0JSKHNlbGYpOgorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgncHRfQlInKQorICAgICAgICB2YWx1ZSA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMDksIDExLCAxMCwgMTYsIDM2LCAwNSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGUodmFsdWUsIGZvcm1hdD0nc2hvcnQnKSwgdScxMC8xMS8wOScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZSh2YWx1ZSwgZm9ybWF0PSdtZWRpdW0nKSwgdScxMC8xMS8yMDA5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9kYXRlKHZhbHVlLCBmb3JtYXQ9J2xvbmcnKSwgdScxMCBkZSBub3ZlbWJybyBkZSAyMDA5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9kYXRlKHZhbHVlLCBmb3JtYXQ9J2Z1bGwnKSwgdSd0ZXLDp2EtZmVpcmEsIDEwIGRlIG5vdmVtYnJvIGRlIDIwMDknKQorCisgICAgZGVmIHRlc3RfZm9ybWF0X2RhdGV0aW1lKHNlbGYpOgorICAgICAgICB2YWx1ZSA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMDksIDExLCAxMCwgMTYsIDM2LCAwNSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGV0aW1lKHZhbHVlLCBmb3JtYXQ9J3Nob3J0JyksIHUnMTEvMTAvMDkgNDozNiBQTScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUsIGZvcm1hdD0nbWVkaXVtJyksIHUnTm92IDEwLCAyMDA5IDQ6MzY6MDUgUE0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGV0aW1lKHZhbHVlLCBmb3JtYXQ9J2xvbmcnKSwgdSdOb3ZlbWJlciAxMCwgMjAwOSA0OjM2OjA1IFBNICswMDAwJykKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUsIGZvcm1hdD0nZnVsbCcpLCB1J1R1ZXNkYXksIE5vdmVtYmVyIDEwLCAyMDA5IDQ6MzY6MDUgUE0gV29ybGQgKEdNVCkgVGltZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUsIGZvcm1hdD0nZnVsbCcpLCB1J1R1ZXNkYXksIE5vdmVtYmVyIDEwLCAyMDA5IDQ6MzY6MDUgUE0gR01UKzAwOjAwJykKKworICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X3RpbWV6b25lKCdBbWVyaWNhL0NoaWNhZ28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGV0aW1lKHZhbHVlLCBmb3JtYXQ9J3Nob3J0JyksIHUnMTEvMTAvMDkgMTA6MzYgQU0nKQorCisgICAgZGVmIHRlc3RfZm9ybWF0X2RhdGV0aW1lX25vX2Zvcm1hdChzZWxmKToKKyAgICAgICAgdmFsdWUgPSBkYXRldGltZS5kYXRldGltZSgyMDA5LCAxMSwgMTAsIDE2LCAzNiwgMDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUpLCB1J05vdiAxMCwgMjAwOSA0OjM2OjA1IFBNJykKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9kYXRldGltZV9wdF9CUihzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ3B0X0JSJykKKyAgICAgICAgdmFsdWUgPSBkYXRldGltZS5kYXRldGltZSgyMDA5LCAxMSwgMTAsIDE2LCAzNiwgMDUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9kYXRldGltZSh2YWx1ZSwgZm9ybWF0PSdzaG9ydCcpLCB1JzEwLzExLzA5IDE2OjM2JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9kYXRldGltZSh2YWx1ZSwgZm9ybWF0PSdtZWRpdW0nKSwgdScxMC8xMS8yMDA5IDE2OjM2OjA1JykKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUsIGZvcm1hdD0nbG9uZycpLCB1JzEwIGRlIG5vdmVtYnJvIGRlIDIwMDkgMTY6MzY6MDUgKzAwMDAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGV0aW1lKHZhbHVlLCBmb3JtYXQ9J2xvbmcnKSwgdScxMCBkZSBub3ZlbWJybyBkZSAyMDA5IDE2aDM2bWluMDVzICswMDAwJykKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUsIGZvcm1hdD0nZnVsbCcpLCB1J3RlcsOnYS1mZWlyYSwgMTAgZGUgbm92ZW1icm8gZGUgMjAwOSAxNmgzNm1pbjA1cyBIb3LDoXJpbyBNdW5kbyAoR01UKScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUsIGZvcm1hdD0nZnVsbCcpLCB1J3Rlclx4ZTdhLWZlaXJhLCAxMCBkZSBub3ZlbWJybyBkZSAyMDA5IDE2aDM2bWluMDVzIEdNVCswMDowMCcpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfdGltZShzZWxmKToKKyAgICAgICAgdmFsdWUgPSBkYXRldGltZS5kYXRldGltZSgyMDA5LCAxMSwgMTAsIDE2LCAzNiwgMDUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF90aW1lKHZhbHVlLCBmb3JtYXQ9J3Nob3J0JyksIHUnNDozNiBQTScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZSh2YWx1ZSwgZm9ybWF0PSdtZWRpdW0nKSwgdSc0OjM2OjA1IFBNJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF90aW1lKHZhbHVlLCBmb3JtYXQ9J2xvbmcnKSwgdSc0OjM2OjA1IFBNICswMDAwJykKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZSh2YWx1ZSwgZm9ybWF0PSdmdWxsJyksIHUnNDozNjowNSBQTSBXb3JsZCAoR01UKSBUaW1lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF90aW1lKHZhbHVlLCBmb3JtYXQ9J2Z1bGwnKSwgdSc0OjM2OjA1IFBNIEdNVCswMDowMCcpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfdGltZV9ub19mb3JtYXQoc2VsZik6CisgICAgICAgIHZhbHVlID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAwOSwgMTEsIDEwLCAxNiwgMzYsIDA1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3RpbWUodmFsdWUpLCB1JzQ6MzY6MDUgUE0nKQorCisgICAgZGVmIHRlc3RfZm9ybWF0X3RpbWVfcHRfQlIoc2VsZik6CisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdwdF9CUicpCisgICAgICAgIHZhbHVlID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAwOSwgMTEsIDEwLCAxNiwgMzYsIDA1KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZSh2YWx1ZSwgZm9ybWF0PSdzaG9ydCcpLCB1JzE2OjM2JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF90aW1lKHZhbHVlLCBmb3JtYXQ9J21lZGl1bScpLCB1JzE2OjM2OjA1JykKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZSh2YWx1ZSwgZm9ybWF0PSdsb25nJyksIHUnMTY6MzY6MDUgKzAwMDAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3RpbWUodmFsdWUsIGZvcm1hdD0nbG9uZycpLCB1JzE2aDM2bWluMDVzICswMDAwJykKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZSh2YWx1ZSwgZm9ybWF0PSdmdWxsJyksIHUnMTZoMzZtaW4wNXMgSG9yw6FyaW8gTXVuZG8gKEdNVCknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3RpbWUodmFsdWUsIGZvcm1hdD0nZnVsbCcpLCB1JzE2aDM2bWluMDVzIEdNVCswMDowMCcpCisKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF90aW1lem9uZSgnQW1lcmljYS9DaGljYWdvJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF90aW1lKHZhbHVlLCBmb3JtYXQ9J3Nob3J0JyksIHUnMTA6MzYnKQorCisgICAgZGVmIHRlc3RfcGFyc2VfZGF0ZShzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2VuX1VTJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLnBhcnNlX2RhdGUoJzQvMS8wNCcpLCBkYXRldGltZS5kYXRlKDIwMDQsIDQsIDEpKQorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZGVfREUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4ucGFyc2VfZGF0ZSgnMDEuMDQuMjAwNCcpLCBkYXRldGltZS5kYXRlKDIwMDQsIDQsIDEpKQorCisgICAgZGVmIHRlc3RfcGFyc2VfZGF0ZXRpbWUoc2VsZik6CisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdlbl9VUycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIGkxOG4ucGFyc2VfZGF0ZXRpbWUsICc0LzEvMDQgMTY6MDg6MDknKQorCisgICAgZGVmIHRlc3RfcGFyc2VfdGltZShzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2VuX1VTJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLnBhcnNlX3RpbWUoJzE4OjA4OjA5JyksIGRhdGV0aW1lLnRpbWUoMTgsIDgsIDkpKQorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZGVfREUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4ucGFyc2VfdGltZSgnMTg6MDg6MDknKSwgZGF0ZXRpbWUudGltZSgxOCwgOCwgOSkpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfdGltZWRlbHRhKHNlbGYpOgorICAgICAgICAjIFRoaXMgaXMgb25seSBwcmVzZW50IGluIEJhYmVsIGRldiwgc28gc2tpcCBpZiBub3QgYXZhaWxhYmxlLgorICAgICAgICBpZiBub3QgZ2V0YXR0cihpMThuLCAnZm9ybWF0X3RpbWVkZWx0YScsIE5vbmUpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2VuX1VTJykKKyAgICAgICAgIyA/Pz8KKyAgICAgICAgIyBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3RpbWVkZWx0YShkYXRldGltZS50aW1lZGVsdGEod2Vla3M9MTIpKSwgdSczIG1vbnRocycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZWRlbHRhKGRhdGV0aW1lLnRpbWVkZWx0YSh3ZWVrcz0xMikpLCB1JzMgbXRocycpCisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdlcycpCisgICAgICAgICMgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF90aW1lZGVsdGEoZGF0ZXRpbWUudGltZWRlbHRhKHNlY29uZHM9MSkpLCB1JzEgc2VndW5kbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZWRlbHRhKGRhdGV0aW1lLnRpbWVkZWx0YShzZWNvbmRzPTEpKSwgdScxIHMnKQorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZW5fVVMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3RpbWVkZWx0YShkYXRldGltZS50aW1lZGVsdGEoaG91cnM9MyksIGdyYW51bGFyaXR5PSdkYXknKSwgdScxIGRheScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZWRlbHRhKGRhdGV0aW1lLnRpbWVkZWx0YShob3Vycz0yMyksIHRocmVzaG9sZD0wLjkpLCB1JzEgZGF5JykKKyAgICAgICAgIyBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3RpbWVkZWx0YShkYXRldGltZS50aW1lZGVsdGEoaG91cnM9MjMpLCB0aHJlc2hvbGQ9MS4xKSwgdScyMyBob3VycycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZWRlbHRhKGRhdGV0aW1lLnRpbWVkZWx0YShob3Vycz0yMyksIHRocmVzaG9sZD0xLjEpLCB1JzIzIGhycycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZWRlbHRhKGRhdGV0aW1lLmRhdGV0aW1lLm5vdygpIC0gZGF0ZXRpbWUudGltZWRlbHRhKGRheXM9NSkpLCB1JzUgZGF5cycpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfaXNvKHNlbGYpOgorICAgICAgICB2YWx1ZSA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMDksIDExLCAxMCwgMTYsIDM2LCAwNSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RhdGUodmFsdWUsIGZvcm1hdD0naXNvJyksIHUnMjAwOS0xMS0xMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfdGltZSh2YWx1ZSwgZm9ybWF0PSdpc28nKSwgdScxNjozNjowNScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGF0ZXRpbWUodmFsdWUsIGZvcm1hdD0naXNvJyksIHUnMjAwOS0xMS0xMFQxNjozNjowNSswMDAwJykKKworICAgICM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICMgVGltZXpvbmVzCisgICAgIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBkZWYgdGVzdF9zZXRfdGltZXpvbmUoc2VsZik6CisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfdGltZXpvbmUoJ1VUQycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5nZXRfaTE4bigpLnR6aW5mby56b25lLCAnVVRDJykKKworICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X3RpbWV6b25lKCdBbWVyaWNhL0NoaWNhZ28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZ2V0X2kxOG4oKS50emluZm8uem9uZSwgJ0FtZXJpY2EvQ2hpY2FnbycpCisKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF90aW1lem9uZSgnQW1lcmljYS9TYW9fUGF1bG8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZ2V0X2kxOG4oKS50emluZm8uem9uZSwgJ0FtZXJpY2EvU2FvX1BhdWxvJykKKworICAgIGRlZiB0ZXN0X3RvX2xvY2FsX3RpbWV6b25lKHNlbGYpOgorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X3RpbWV6b25lKCdVUy9FYXN0ZXJuJykKKworICAgICAgICBmb3JtYXQgPSAnJVktJW0tJWQgJUg6JU06JVMgJVoleicKKworICAgICAgICAjIFRlc3QgZGF0ZXRpbWUgd2l0aCB0aW1lem9uZSBzZXQKKyAgICAgICAgYmFzZSA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMDIsIDEwLCAyNywgNiwgMCwgMCwgdHppbmZvPXB5dHouVVRDKQorICAgICAgICBsb2NhbHRpbWUgPSBpMThuLnRvX2xvY2FsX3RpbWV6b25lKGJhc2UpCisgICAgICAgIHJlc3VsdCA9IGxvY2FsdGltZS5zdHJmdGltZShmb3JtYXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCAnMjAwMi0xMC0yNyAwMTowMDowMCBFU1QtMDUwMCcpCisKKyAgICAgICAgIyBUZXN0IG5haXZlIGRhdGV0aW1lIC0gbm8gdGltZXpvbmUgc2V0CisgICAgICAgIGJhc2UgPSBkYXRldGltZS5kYXRldGltZSgyMDAyLCAxMCwgMjcsIDYsIDAsIDApCisgICAgICAgIGxvY2FsdGltZSA9IGkxOG4udG9fbG9jYWxfdGltZXpvbmUoYmFzZSkKKyAgICAgICAgcmVzdWx0ID0gbG9jYWx0aW1lLnN0cmZ0aW1lKGZvcm1hdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsICcyMDAyLTEwLTI3IDAxOjAwOjAwIEVTVC0wNTAwJykKKworICAgIGRlZiB0ZXN0X3RvX3V0YyhzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF90aW1lem9uZSgnVVMvRWFzdGVybicpCisKKyAgICAgICAgZm9ybWF0ID0gJyVZLSVtLSVkICVIOiVNOiVTJworCisgICAgICAgICMgVGVzdCBkYXRldGltZSB3aXRoIHRpbWV6b25lIHNldAorICAgICAgICBiYXNlID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAwMiwgMTAsIDI3LCA2LCAwLCAwLCB0emluZm89cHl0ei5VVEMpCisgICAgICAgIGxvY2FsdGltZSA9IGkxOG4udG9fdXRjKGJhc2UpCisgICAgICAgIHJlc3VsdCA9IGxvY2FsdGltZS5zdHJmdGltZShmb3JtYXQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsICcyMDAyLTEwLTI3IDA2OjAwOjAwJykKKworICAgICAgICAjIFRlc3QgbmFpdmUgZGF0ZXRpbWUgLSBubyB0aW1lem9uZSBzZXQKKyAgICAgICAgYmFzZSA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMDIsIDEwLCAyNywgNiwgMCwgMCkKKyAgICAgICAgbG9jYWx0aW1lID0gaTE4bi50b191dGMoYmFzZSkKKyAgICAgICAgcmVzdWx0ID0gbG9jYWx0aW1lLnN0cmZ0aW1lKGZvcm1hdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsICcyMDAyLTEwLTI3IDExOjAwOjAwJykKKworICAgIGRlZiB0ZXN0X2dldF90aW1lem9uZV9sb2NhdGlvbihzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2RlX0RFJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmdldF90aW1lem9uZV9sb2NhdGlvbihweXR6LnRpbWV6b25lKCdBbWVyaWNhL1N0X0pvaG5zJykpLCB1J0thbmFkYSAoU3QuIEpvaG5cJ3MpJykKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2RlX0RFJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmdldF90aW1lem9uZV9sb2NhdGlvbihweXR6LnRpbWV6b25lKCdBbWVyaWNhL01leGljb19DaXR5JykpLCB1J01leGlrbyAoTWV4aWtvLVN0YWR0KScpCisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdkZV9ERScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5nZXRfdGltZXpvbmVfbG9jYXRpb24ocHl0ei50aW1lem9uZSgnRXVyb3BlL0JlcmxpbicpKSwgdSdEZXV0c2NobGFuZCcpCisKKyAgICAjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAjIE51bWJlciBmb3JtYXR0aW5nCisgICAgIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBkZWYgdGVzdF9mb3JtYXRfbnVtYmVyKHNlbGYpOgorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZW5fVVMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X251bWJlcigxMDk5KSwgdScxLDA5OScpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfZGVjaW1hbChzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2VuX1VTJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9kZWNpbWFsKDEuMjM0NSksIHUnMS4yMzQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RlY2ltYWwoMS4yMzQ2KSwgdScxLjIzNScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGVjaW1hbCgtMS4yMzQ2KSwgdSctMS4yMzUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RlY2ltYWwoMTIzNDUuNSksIHUnMTIsMzQ1LjUnKQorCisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdzdl9TRScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfZGVjaW1hbCgxLjIzNDUpLCB1JzEsMjM0JykKKworICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X2RlY2ltYWwoMTIzNDUpLCB1JzEyLjM0NScpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfY3VycmVuY3koc2VsZik6CisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdlbl9VUycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfY3VycmVuY3koMTA5OS45OCwgJ1VTRCcpLCB1JyQxLDA5OS45OCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfY3VycmVuY3koMTA5OS45OCwgJ0VVUicsIHUnXHhhNFx4YTQgIywjIzAuMDAnKSwgdSdFVVIgMSwwOTkuOTgnKQorCisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdlc19DTycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfY3VycmVuY3koMTA5OS45OCwgJ1VTRCcpLCB1J1VTJFx4YTAxLjA5OSw5OCcpCisKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2RlX0RFJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9jdXJyZW5jeSgxMDk5Ljk4LCAnRVVSJyksIHUnMS4wOTksOThceGEwXHUyMGFjJykKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9wZXJjZW50KHNlbGYpOgorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZW5fVVMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3BlcmNlbnQoMC4zNCksIHUnMzQlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9wZXJjZW50KDI1LjEyMzQpLCB1JzIsNTEyJScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaTE4bi5mb3JtYXRfcGVyY2VudCgyNS4xMjM0LCB1JyMsIyMwXHUyMDMwJyksIHUnMjUsMTIzXHUyMDMwJykKKworICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnc3ZfU0UnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3BlcmNlbnQoMjUuMTIzNCksIHUnMlx4YTA1MTJceGEwJScpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfc2NpZW50aWZpYyhzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2VuX1VTJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLmZvcm1hdF9zY2llbnRpZmljKDEwMDAwKSwgdScxRTQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4uZm9ybWF0X3NjaWVudGlmaWMoMTIzNDU2NywgdScjIzBFMDAnKSwgdScxLjIzRTA2JykKKworICAgIGRlZiB0ZXN0X3BhcnNlX251bWJlcihzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2VuX1VTJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLnBhcnNlX251bWJlcignMSwwOTknKSwgMTA5OUwpCisKKyAgICAgICAgaTE4bi5nZXRfaTE4bigpLnNldF9sb2NhbGUoJ2RlX0RFJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpMThuLnBhcnNlX251bWJlcignMS4wOTknKSwgMTA5OUwpCisKKyAgICBkZWYgdGVzdF9wYXJzZV9udW1iZXIyKHNlbGYpOgorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZGUnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOdW1iZXJGb3JtYXRFcnJvciwgaTE4bi5wYXJzZV9udW1iZXIsICcxLjA5OSw5OCcpCisKKyAgICBkZWYgdGVzdF9wYXJzZV9kZWNpbWFsKHNlbGYpOgorICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZW5fVVMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4ucGFyc2VfZGVjaW1hbCgnMSwwOTkuOTgnKSwgMTA5OS45OCkKKworICAgICAgICBpMThuLmdldF9pMThuKCkuc2V0X2xvY2FsZSgnZGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkxOG4ucGFyc2VfZGVjaW1hbCgnMS4wOTksOTgnKSwgMTA5OS45OCkKKworICAgIGRlZiB0ZXN0X3BhcnNlX2RlY2ltYWxfZXJyb3Ioc2VsZik6CisgICAgICAgIGkxOG4uZ2V0X2kxOG4oKS5zZXRfbG9jYWxlKCdkZScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE51bWJlckZvcm1hdEVycm9yLCBpMThuLnBhcnNlX2RlY2ltYWwsICcyLDEwOSw5OTgnKQorCisgICAgZGVmIHRlc3Rfc2V0X2kxOG5fc3RvcmUoc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzdG9yZSA9IGkxOG4uSTE4blN0b3JlKGFwcCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAucmVnaXN0cnkpLCAwKQorICAgICAgICBpMThuLnNldF9zdG9yZShzdG9yZSwgYXBwPWFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMSkKKyAgICAgICAgcyA9IGkxOG4uZ2V0X3N0b3JlKGFwcD1hcHApCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHMsIGkxOG4uSTE4blN0b3JlKSkKKworICAgIGRlZiB0ZXN0X2dldF9pMThuX3N0b3JlKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbigpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMCkKKyAgICAgICAgcyA9IGkxOG4uZ2V0X3N0b3JlKGFwcD1hcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFwcC5yZWdpc3RyeSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHMsIGkxOG4uSTE4blN0b3JlKSkKKworICAgIGRlZiB0ZXN0X3NldF9pMThuKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbigpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBpMThuLkkxOG4ocmVxKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFwcC5yZWdpc3RyeSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcS5yZWdpc3RyeSksIDApCisgICAgICAgIGkxOG4uc2V0X2kxOG4oc3RvcmUsIHJlcXVlc3Q9cmVxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAucmVnaXN0cnkpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXEucmVnaXN0cnkpLCAxKQorICAgICAgICBpID0gaTE4bi5nZXRfaTE4bihyZXF1ZXN0PXJlcSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoaSwgaTE4bi5JMThuKSkKKworICAgIGRlZiB0ZXN0X2dldF9pMThuKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbigpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVxLnJlZ2lzdHJ5KSwgMCkKKyAgICAgICAgaSA9IGkxOG4uZ2V0X2kxOG4ocmVxdWVzdD1yZXEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFwcC5yZWdpc3RyeSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcS5yZWdpc3RyeSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGksIGkxOG4uSTE4bikpCisKKyAgICBkZWYgdGVzdF9zZXRfbG9jYWxlX3NlbGVjdG9yKHNlbGYpOgorICAgICAgICBpMThuLmdldF9zdG9yZSgpLnNldF9sb2NhbGVfc2VsZWN0b3IoCisgICAgICAgICAgICAncmVzb3VyY2VzLmkxOG4ubG9jYWxlX3NlbGVjdG9yJykKKworICAgIGRlZiB0ZXN0X3NldF90aW1lem9uZV9zZWxlY3RvcihzZWxmKToKKyAgICAgICAgaTE4bi5nZXRfc3RvcmUoKS5zZXRfdGltZXpvbmVfc2VsZWN0b3IoCisgICAgICAgICAgICAncmVzb3VyY2VzLmkxOG4udGltZXpvbmVfc2VsZWN0b3InKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19qaW5qYTJfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19qaW5qYTJfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzI0YjIxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2ppbmphMl90ZXN0LnB5CkBAIC0wLDAgKzEsOTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgb3MKKworaW1wb3J0IHdlYmFwcDIKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IGppbmphMgorCitpbXBvcnQgdGVzdF9iYXNlCisKK2N1cnJlbnRfZGlyID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCit0ZW1wbGF0ZV9wYXRoID0gb3MucGF0aC5qb2luKGN1cnJlbnRfZGlyLCAncmVzb3VyY2VzJywgJ2ppbmphMl90ZW1wbGF0ZXMnKQorY29tcGlsZWRfcGF0aCA9IG9zLnBhdGguam9pbihjdXJyZW50X2RpciwgJ3Jlc291cmNlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqaW5qYTJfdGVtcGxhdGVzX2NvbXBpbGVkJykKKworY2xhc3MgVGVzdEppbmphMih0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZW5kZXJfdGVtcGxhdGVfd2l0aF9pMThuKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihjb25maWc9eworICAgICAgICAgICAgJ3dlYmFwcDJfZXh0cmFzLmppbmphMic6IHsKKyAgICAgICAgICAgICAgICAndGVtcGxhdGVfcGF0aCc6IHRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgJ2Vudmlyb25tZW50X2FyZ3MnOiB7CisgICAgICAgICAgICAgICAgICAgICdhdXRvZXNjYXBlJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ2V4dGVuc2lvbnMnOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAnamluamEyLmV4dC5hdXRvZXNjYXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdqaW5qYTIuZXh0LndpdGhfJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdqaW5qYTIuZXh0LmkxOG4nLAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorICAgICAgICB9KQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICBhcHAuc2V0X2dsb2JhbHMoYXBwPWFwcCwgcmVxdWVzdD1yZXEpCisgICAgICAgIGogPSBqaW5qYTIuSmluamEyKGFwcCkKKworICAgICAgICBtZXNzYWdlID0gJ0hlbGxvLCBpMThuIFdvcmxkIScKKyAgICAgICAgcmVzID0gai5yZW5kZXJfdGVtcGxhdGUoJ3RlbXBsYXRlMi5odG1sJywgbWVzc2FnZT1tZXNzYWdlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgbWVzc2FnZSkKKworICAgIGRlZiB0ZXN0X3JlbmRlcl90ZW1wbGF0ZV9nbG9iYWxzX2ZpbHRlcnMoc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKGNvbmZpZz17CisgICAgICAgICAgICAnd2ViYXBwMl9leHRyYXMuamluamEyJzogeworICAgICAgICAgICAgICAgICd0ZW1wbGF0ZV9wYXRoJzogdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAnZ2xvYmFscyc6IGRpY3QoZm9vPSdmb29nbG9iYWwnKSwKKyAgICAgICAgICAgICAgICAnZmlsdGVycyc6IGRpY3QoZm9vPWxhbWJkYSB4OiB4ICsgJy1mb29maWx0ZXInKSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0pCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIGFwcC5zZXRfZ2xvYmFscyhhcHA9YXBwLCByZXF1ZXN0PXJlcSkKKyAgICAgICAgaiA9IGppbmphMi5KaW5qYTIoYXBwKQorCisgICAgICAgIG1lc3NhZ2UgPSAnZm9vZ2xvYmFsLWZvb2ZpbHRlcicKKyAgICAgICAgcmVzID0gai5yZW5kZXJfdGVtcGxhdGUoJ3RlbXBsYXRlMy5odG1sJywgbWVzc2FnZT1tZXNzYWdlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgbWVzc2FnZSkKKworICAgIGRlZiB0ZXN0X3JlbmRlcl90ZW1wbGF0ZV9mb3JjZV9jb21waWxlZChzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oY29uZmlnPXsKKyAgICAgICAgICAgICd3ZWJhcHAyX2V4dHJhcy5qaW5qYTInOiB7CisgICAgICAgICAgICAgICAgJ3RlbXBsYXRlX3BhdGgnOiB0ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICdjb21waWxlZF9wYXRoJzogY29tcGlsZWRfcGF0aCwKKyAgICAgICAgICAgICAgICAnZm9yY2VfY29tcGlsZWQnOiBUcnVlLAorICAgICAgICAgICAgfQorICAgICAgICB9KQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICBhcHAuc2V0X2dsb2JhbHMoYXBwPWFwcCwgcmVxdWVzdD1yZXEpCisgICAgICAgIGogPSBqaW5qYTIuSmluamEyKGFwcCkKKworICAgICAgICBtZXNzYWdlID0gJ0hlbGxvLCBXb3JsZCEnCisgICAgICAgIHJlcyA9IGoucmVuZGVyX3RlbXBsYXRlKCd0ZW1wbGF0ZTEuaHRtbCcsIG1lc3NhZ2U9bWVzc2FnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIG1lc3NhZ2UpCisKKyAgICBkZWYgdGVzdF9nZXRfdGVtcGxhdGVfYXR0cmlidXRlKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihjb25maWc9eworICAgICAgICAgICAgJ3dlYmFwcDJfZXh0cmFzLmppbmphMic6IHsKKyAgICAgICAgICAgICAgICAndGVtcGxhdGVfcGF0aCc6IHRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICB9CisgICAgICAgIH0pCisgICAgICAgIGogPSBqaW5qYTIuSmluamEyKGFwcCkKKyAgICAgICAgaGVsbG8gPSBqLmdldF90ZW1wbGF0ZV9hdHRyaWJ1dGUoJ2hlbGxvLmh0bWwnLCAnaGVsbG8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvKCdXb3JsZCcpLCAnSGVsbG8sIFdvcmxkIScpCisKKyAgICBkZWYgdGVzdF9zZXRfamluamEyKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFwcC5yZWdpc3RyeSksIDApCisgICAgICAgIGppbmphMi5zZXRfamluamEyKGppbmphMi5KaW5qYTIoYXBwKSwgYXBwPWFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMSkKKyAgICAgICAgaiA9IGppbmphMi5nZXRfamluamEyKGFwcD1hcHApCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGosIGppbmphMi5KaW5qYTIpKQorCisgICAgZGVmIHRlc3RfZ2V0X2ppbmphMihzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAucmVnaXN0cnkpLCAwKQorICAgICAgICBqID0gamluamEyLmdldF9qaW5qYTIoYXBwPWFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoaiwgamluamEyLkppbmphMikpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X2Jhc2UubWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfanNvbl90ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2pzb25fdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTc4NDhhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2pzb25fdGVzdC5weQpAQCAtMCwwICsxLDM3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQganNvbgorCitpbXBvcnQgdGVzdF9iYXNlCisKKworY2xhc3MgVGVzdEpzb24odGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfZW5jb2RlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24uZW5jb2RlKAorICAgICAgICAgICAgJzxzY3JpcHQ+YWxlcnQoImhlbGxvIik8L3NjcmlwdD4nKSwKKyAgICAgICAgICAgICciPHNjcmlwdD5hbGVydChcXCJoZWxsb1xcIik8XFwvc2NyaXB0PiInKQorCisgICAgZGVmIHRlc3RfZGVjb2RlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24uZGVjb2RlKAorICAgICAgICAgICAgJyI8c2NyaXB0PmFsZXJ0KFxcImhlbGxvXFwiKTxcXC9zY3JpcHQ+IicpLAorICAgICAgICAgICAgJzxzY3JpcHQ+YWxlcnQoImhlbGxvIik8L3NjcmlwdD4nKQorCisgICAgZGVmIHRlc3RfYjY0ZW5jb2RlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24uYjY0ZW5jb2RlKAorICAgICAgICAgICAgJzxzY3JpcHQ+YWxlcnQoImhlbGxvIik8L3NjcmlwdD4nKSwKKyAgICAgICAgICAgICdJanh6WTNKcGNIUStZV3hsY25Rb1hDSm9aV3hzYjF3aUtUeGNMM05qY21sd2RENGknKQorCisgICAgZGVmIHRlc3RfYjY0ZGVjb2RlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24uYjY0ZGVjb2RlKAorICAgICAgICAgICAgJ0lqeHpZM0pwY0hRK1lXeGxjblFvWENKb1pXeHNiMXdpS1R4Y0wzTmpjbWx3ZEQ0aScpLAorICAgICAgICAgICAgJzxzY3JpcHQ+YWxlcnQoImhlbGxvIik8L3NjcmlwdD4nKQorCisgICAgZGVmIHRlc3RfcXVvdGUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbi5xdW90ZSgnPHNjcmlwdD5hbGVydCgiaGVsbG8iKTwvc2NyaXB0PicpLAorICAgICAgICAgICAgJyUyMiUzQ3NjcmlwdCUzRWFsZXJ0JTI4JTVDJTIyaGVsbG8lNUMlMjIlMjklM0MlNUMvc2NyaXB0JTNFJTIyJykKKworICAgIGRlZiB0ZXN0X3VucXVvdGUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbi51bnF1b3RlKCclMjIlM0NzY3JpcHQlM0VhbGVydCUyOCU1QyUyMmhlbGxvJTVDJTIyJTI5JTNDJTVDL3NjcmlwdCUzRSUyMicpLAorICAgICAgICAgICAgJzxzY3JpcHQ+YWxlcnQoImhlbGxvIik8L3NjcmlwdD4nKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19sb2NhbF9hcHBfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19sb2NhbF9hcHBfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTU4NTE0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX2xvY2FsX2FwcF90ZXN0LnB5CkBAIC0wLDAgKzEsMjAgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgd2ViYXBwMgorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgbG9jYWxfYXBwCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCitjbGFzcyBUZXN0TG9jYWxBcHAodGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfZGlzcGF0Y2goc2VsZik6CisgICAgICAgIGRlZiBoZWxsb19oYW5kbGVyKHJlcXVlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICByZXR1cm4gd2ViYXBwMi5SZXNwb25zZSgnSGVsbG8sIFdvcmxkIScpCisKKyAgICAgICAgYXBwID0gbG9jYWxfYXBwLldTR0lBcHBsaWNhdGlvbihbKCcvJywgaGVsbG9faGFuZGxlcildKQorICAgICAgICByc3AgPSBhcHAuZ2V0X3Jlc3BvbnNlKCcvJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnSGVsbG8sIFdvcmxkIScpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X2Jhc2UubWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfbWFrb190ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX21ha29fdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmU1NWU2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX21ha29fdGVzdC5weQpAQCAtMCwwICsxLDQ1IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IG9zCisKK2ltcG9ydCB3ZWJhcHAyCitmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBtYWtvCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworY3VycmVudF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3RlbXBsYXRlX3BhdGggPSBvcy5wYXRoLmpvaW4oY3VycmVudF9kaXIsICdyZXNvdXJjZXMnLCAnbWFrb190ZW1wbGF0ZXMnKQorCisKK2NsYXNzIFRlc3RNYWtvKHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3JlbmRlcl90ZW1wbGF0ZShzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oY29uZmlnPXsKKyAgICAgICAgICAgICd3ZWJhcHAyX2V4dHJhcy5tYWtvJzogeworICAgICAgICAgICAgICAgICd0ZW1wbGF0ZV9wYXRoJzogdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0pCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIGFwcC5zZXRfZ2xvYmFscyhhcHA9YXBwLCByZXF1ZXN0PXJlcSkKKyAgICAgICAgbSA9IG1ha28uTWFrbyhhcHApCisKKyAgICAgICAgbWVzc2FnZSA9ICdIZWxsbywgV29ybGQhJworICAgICAgICByZXMgPSBtLnJlbmRlcl90ZW1wbGF0ZSggJ3RlbXBsYXRlMS5odG1sJywgbWVzc2FnZT1tZXNzYWdlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgbWVzc2FnZSArICdcbicpCisKKyAgICBkZWYgdGVzdF9zZXRfbWFrbyhzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAucmVnaXN0cnkpLCAwKQorICAgICAgICBtYWtvLnNldF9tYWtvKG1ha28uTWFrbyhhcHApLCBhcHA9YXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAucmVnaXN0cnkpLCAxKQorICAgICAgICBqID0gbWFrby5nZXRfbWFrbyhhcHA9YXBwKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShqLCBtYWtvLk1ha28pKQorCisgICAgZGVmIHRlc3RfZ2V0X21ha28oc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMCkKKyAgICAgICAgaiA9IG1ha28uZ2V0X21ha28oYXBwPWFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXBwLnJlZ2lzdHJ5KSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoaiwgbWFrby5NYWtvKSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19yb3V0ZXNfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19yb3V0ZXNfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTU4MWU5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX3JvdXRlc190ZXN0LnB5CkBAIC0wLDAgKzEsMjg5IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHdlYmFwcDIKKworZnJvbSB3ZWJhcHAyX2V4dHJhcy5yb3V0ZXMgaW1wb3J0IChEb21haW5Sb3V0ZSwgSGFuZGxlclByZWZpeFJvdXRlLAorICAgIFJlZGlyZWN0Um91dGUsIE5hbWVQcmVmaXhSb3V0ZSwgUGF0aFByZWZpeFJvdXRlKQorCitpbXBvcnQgdGVzdF9iYXNlCisKKworY2xhc3MgSG9tZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdob21lIHN3ZWV0IGhvbWUnKQorCisKK2FwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAjUmVkaXJlY3RSb3V0ZSgnLycsIG5hbWU9J2hvbWUnLCBoYW5kbGVyPUhvbWVIYW5kbGVyKSwKKyAgICBSZWRpcmVjdFJvdXRlKCcvcmVkaXJlY3QtbWUtZWFzaWx5JywgcmVkaXJlY3RfdG89Jy9pLXdhcy1yZWRpcmVjdGVkLWVhc2lseScpLAorICAgIFJlZGlyZWN0Um91dGUoJy9yZWRpcmVjdC1tZS1lYXNpbHkyJywgcmVkaXJlY3RfdG89Jy9pLXdhcy1yZWRpcmVjdGVkLWVhc2lseScsIGRlZmF1bHRzPXsnX2NvZGUnOiAzMDJ9KSwKKyAgICBSZWRpcmVjdFJvdXRlKCcvcmVkaXJlY3QtbWUtZWFzaWx5MycsIHJlZGlyZWN0X3RvPScvaS13YXMtcmVkaXJlY3RlZC1lYXNpbHknLCBkZWZhdWx0cz17J19wZXJtYW5lbnQnOiBGYWxzZX0pLAorICAgIFJlZGlyZWN0Um91dGUoJy9zdHJpY3QtZm9vJywgSG9tZUhhbmRsZXIsICdmb28tc3RyaWN0Jywgc3RyaWN0X3NsYXNoPVRydWUpLAorICAgIFJlZGlyZWN0Um91dGUoJy9zdHJpY3QtYmFyLycsIEhvbWVIYW5kbGVyLCAnYmFyLXN0cmljdCcsIHN0cmljdF9zbGFzaD1UcnVlKSwKKyAgICBSZWRpcmVjdFJvdXRlKCcvcmVkaXJlY3QtdG8tbmFtZS1kZXN0aW5hdGlvbicsIG5hbWU9J3JlZGlyZWN0LXRvLW5hbWUtZGVzdGluYXRpb24nLCBoYW5kbGVyPUhvbWVIYW5kbGVyKSwKKyAgICBSZWRpcmVjdFJvdXRlKCcvcmVkaXJlY3QtdG8tbmFtZScsIHJlZGlyZWN0X3RvX25hbWU9J3JlZGlyZWN0LXRvLW5hbWUtZGVzdGluYXRpb24nKSwKK10pCisKKworY2xhc3MgVGVzdFJlZGlyZWN0Um91dGUodGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHRlc3Rfcm91dGVfcmVkaXJlY3RfdG8oc2VsZik6CisgICAgICAgIHJvdXRlID0gUmVkaXJlY3RSb3V0ZSgnL2ZvbycsIHJlZGlyZWN0X3RvPScvYmFyJykKKyAgICAgICAgcm91dGVyID0gd2ViYXBwMi5Sb3V0ZXIoW3JvdXRlXSkKKyAgICAgICAgcm91dGVfbWF0Y2gsIGFyZ3MsIGt3YXJncyA9IHJvdXRlci5tYXRjaCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9mb28nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZV9tYXRjaCwgcm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa3dhcmdzLCB7J191cmknOiAnL2Jhcid9KQorCisgICAgZGVmIHRlc3RfZWFzeV9yZWRpcmVjdF90byhzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvcmVkaXJlY3QtbWUtZWFzaWx5JykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDMwMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnNbJ0xvY2F0aW9uJ10sICdodHRwOi8vbG9jYWxob3N0L2ktd2FzLXJlZGlyZWN0ZWQtZWFzaWx5JykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9yZWRpcmVjdC1tZS1lYXNpbHkyJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDMwMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnNbJ0xvY2F0aW9uJ10sICdodHRwOi8vbG9jYWxob3N0L2ktd2FzLXJlZGlyZWN0ZWQtZWFzaWx5JykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9yZWRpcmVjdC1tZS1lYXNpbHkzJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDMwMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnNbJ0xvY2F0aW9uJ10sICdodHRwOi8vbG9jYWxob3N0L2ktd2FzLXJlZGlyZWN0ZWQtZWFzaWx5JykKKworICAgIGRlZiB0ZXN0X3JlZGlyZWN0X3RvX25hbWUoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3JlZGlyZWN0LXRvLW5hbWUnKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMzAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVyc1snTG9jYXRpb24nXSwgJ2h0dHA6Ly9sb2NhbGhvc3QvcmVkaXJlY3QtdG8tbmFtZS1kZXN0aW5hdGlvbicpCisKKyAgICBkZWYgdGVzdF9zdHJpY3Rfc2xhc2goc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3N0cmljdC1mb28nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnaG9tZSBzd2VldCBob21lJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9zdHJpY3QtYmFyLycpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdob21lIHN3ZWV0IGhvbWUnKQorCisgICAgICAgICMgTm93IHRoZSBub24tc3RyaWN0Li4uCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvc3RyaWN0LWZvby8nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMzAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVyc1snTG9jYXRpb24nXSwgJ2h0dHA6Ly9sb2NhbGhvc3Qvc3RyaWN0LWZvbycpCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvc3RyaWN0LWJhcicpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAzMDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzWydMb2NhdGlvbiddLCAnaHR0cDovL2xvY2FsaG9zdC9zdHJpY3QtYmFyLycpCisKKyAgICAgICAgIyBTdHJpY3Qgc2xhc2ggcm91dGVzIG11c3QgaGF2ZSBhIG5hbWUuCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUmVkaXJlY3RSb3V0ZSwgJy9zdHJpY3QtYmFyLycsIGhhbmRsZXI9SG9tZUhhbmRsZXIsIHN0cmljdF9zbGFzaD1UcnVlKQorCisgICAgZGVmIHRlc3RfYnVpbGRfb25seShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUmVkaXJlY3RSb3V0ZSwgJy8nLCBoYW5kbGVyPUhvbWVIYW5kbGVyLCBidWlsZF9vbmx5PVRydWUpCisKKworY2xhc3MgVGVzdFByZWZpeFJvdXRlcyh0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZik6CisgICAgICAgIHJvdXRlciA9IHdlYmFwcDIuUm91dGVyKFsKKyAgICAgICAgICAgIFBhdGhQcmVmaXhSb3V0ZSgnL2EnLCBbCisgICAgICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsICdhJywgJ25hbWUtYScpLAorICAgICAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9iJywgJ2EvYicsICduYW1lLWEvYicpLAorICAgICAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9jJywgJ2EvYycsICduYW1lLWEvYycpLAorICAgICAgICAgICAgICAgIFBhdGhQcmVmaXhSb3V0ZSgnL2QnLCBbCisgICAgICAgICAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCAnYS9kJywgJ25hbWUtYS9kJyksCisgICAgICAgICAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9iJywgJ2EvZC9iJywgJ25hbWUtYS9kL2InKSwKKyAgICAgICAgICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL2MnLCAnYS9kL2MnLCAnbmFtZS1hL2QvYycpLAorICAgICAgICAgICAgICAgIF0pLAorICAgICAgICAgICAgXSkKKyAgICAgICAgXSkKKworICAgICAgICBwYXRoID0gJy9hLycKKyAgICAgICAgbWF0Y2ggPSAoKCksIHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5tYXRjaCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsocGF0aCkpWzE6XSwgbWF0Y2gpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLmJ1aWxkKHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpLCAnbmFtZS1hJywgbWF0Y2hbMF0sIG1hdGNoWzFdKSwgcGF0aCkKKworICAgICAgICBwYXRoID0gJy9hL2InCisgICAgICAgIG1hdGNoID0gKCgpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHBhdGgpKVsxOl0sIG1hdGNoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5idWlsZCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKSwgJ25hbWUtYS9iJywgbWF0Y2hbMF0sIG1hdGNoWzFdKSwgcGF0aCkKKworICAgICAgICBwYXRoID0gJy9hL2MnCisgICAgICAgIG1hdGNoID0gKCgpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHBhdGgpKVsxOl0sIG1hdGNoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5idWlsZCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKSwgJ25hbWUtYS9jJywgbWF0Y2hbMF0sIG1hdGNoWzFdKSwgcGF0aCkKKworICAgICAgICBwYXRoID0gJy9hL2QvJworICAgICAgICBtYXRjaCA9ICgoKSwge30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLm1hdGNoKHdlYmFwcDIuUmVxdWVzdC5ibGFuayhwYXRoKSlbMTpdLCBtYXRjaCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIuYnVpbGQod2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJyksICduYW1lLWEvZCcsIG1hdGNoWzBdLCBtYXRjaFsxXSksIHBhdGgpCisKKyAgICAgICAgcGF0aCA9ICcvYS9kL2InCisgICAgICAgIG1hdGNoID0gKCgpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHBhdGgpKVsxOl0sIG1hdGNoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5idWlsZCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKSwgJ25hbWUtYS9kL2InLCBtYXRjaFswXSwgbWF0Y2hbMV0pLCBwYXRoKQorCisgICAgICAgIHBhdGggPSAnL2EvZC9jJworICAgICAgICBtYXRjaCA9ICgoKSwge30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLm1hdGNoKHdlYmFwcDIuUmVxdWVzdC5ibGFuayhwYXRoKSlbMTpdLCBtYXRjaCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIuYnVpbGQod2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJyksICduYW1lLWEvZC9jJywgbWF0Y2hbMF0sIG1hdGNoWzFdKSwgcGF0aCkKKworICAgIGRlZiB0ZXN0X3dpdGhfdmFyaWFibGVzX25hbWVfYW5kX2hhbmRsZXIoc2VsZik6CisgICAgICAgIHJvdXRlciA9IHdlYmFwcDIuUm91dGVyKFsKKyAgICAgICAgICAgIFBhdGhQcmVmaXhSb3V0ZSgnL3VzZXIvPHVzZXJuYW1lOlx3Kz4nLCBbCisgICAgICAgICAgICAgICAgSGFuZGxlclByZWZpeFJvdXRlKCdhcHBzLnVzZXJzLicsIFsKKyAgICAgICAgICAgICAgICAgICAgTmFtZVByZWZpeFJvdXRlKCd1c2VyLScsIFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCAnVXNlck92ZXJ2aWV3SGFuZGxlcicsICdvdmVydmlldycpLAorICAgICAgICAgICAgICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL3Byb2ZpbGUnLCAnVXNlclByb2ZpbGVIYW5kbGVyJywgJ3Byb2ZpbGUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9wcm9qZWN0cycsICdVc2VyUHJvamVjdHNIYW5kbGVyJywgJ3Byb2plY3RzJyksCisgICAgICAgICAgICAgICAgICAgIF0pLAorICAgICAgICAgICAgICAgIF0pLAorICAgICAgICAgICAgXSkKKyAgICAgICAgXSkKKworICAgICAgICBwYXRoID0gJy91c2VyL2NhbHZpbi8nCisgICAgICAgIG1hdGNoID0gKCgpLCB7J3VzZXJuYW1lJzogJ2NhbHZpbid9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5tYXRjaCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsocGF0aCkpWzE6XSwgbWF0Y2gpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLmJ1aWxkKHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpLCAndXNlci1vdmVydmlldycsIG1hdGNoWzBdLCBtYXRjaFsxXSksIHBhdGgpCisKKyAgICAgICAgcGF0aCA9ICcvdXNlci9jYWx2aW4vcHJvZmlsZScKKyAgICAgICAgbWF0Y2ggPSAoKCksIHsndXNlcm5hbWUnOiAnY2FsdmluJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLm1hdGNoKHdlYmFwcDIuUmVxdWVzdC5ibGFuayhwYXRoKSlbMTpdLCBtYXRjaCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIuYnVpbGQod2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJyksICd1c2VyLXByb2ZpbGUnLCBtYXRjaFswXSwgbWF0Y2hbMV0pLCBwYXRoKQorCisgICAgICAgIHBhdGggPSAnL3VzZXIvY2FsdmluL3Byb2plY3RzJworICAgICAgICBtYXRjaCA9ICgoKSwgeyd1c2VybmFtZSc6ICdjYWx2aW4nfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHBhdGgpKVsxOl0sIG1hdGNoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5idWlsZCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKSwgJ3VzZXItcHJvamVjdHMnLCBtYXRjaFswXSwgbWF0Y2hbMV0pLCBwYXRoKQorCisKK2NsYXNzIFRlc3REb21haW5Sb3V0ZSh0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZik6CisgICAgICAgIHJvdXRlciA9IHdlYmFwcDIuUm91dGVyKFsKKyAgICAgICAgICAgIERvbWFpblJvdXRlKCc8c3ViZG9tYWluPi48Oi4qPicsIFsKKyAgICAgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvZm9vJywgJ0Zvb0hhbmRsZXInLCAnc3ViZG9tYWluLXRoaW5naWUnKSwKKyAgICAgICAgICAgIF0pCisgICAgICAgIF0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE5vdEZvdW5kLCByb3V0ZXIubWF0Y2gsIHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL2ZvbycpKQorCisgICAgICAgIG1hdGNoID0gcm91dGVyLm1hdGNoKHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnaHR0cDovL215LXN1YmRvbWFpbi5hcHAtaWQuYXBwc3BvdC5jb20vZm9vJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWF0Y2hbMTpdLCAoKCksIHsnc3ViZG9tYWluJzogJ215LXN1YmRvbWFpbid9KSkKKworICAgICAgICBtYXRjaCA9IHJvdXRlci5tYXRjaCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJ2h0dHA6Ly9hbm90aGVyLXN1YmRvbWFpbi5hcHAtaWQuYXBwc3BvdC5jb20vZm9vJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWF0Y2hbMTpdLCAoKCksIHsnc3ViZG9tYWluJzogJ2Fub3RoZXItc3ViZG9tYWluJ30pKQorCisgICAgICAgIHVybCA9IHJvdXRlci5idWlsZCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKSwgJ3N1YmRvbWFpbi10aGluZ2llJywgKCksIHsnX25ldGxvYyc6ICdhbm90aGVyLXN1YmRvbWFpbi5hcHAtaWQuYXBwc3BvdC5jb20nfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICdodHRwOi8vYW5vdGhlci1zdWJkb21haW4uYXBwLWlkLmFwcHNwb3QuY29tL2ZvbycpCisKKyAgICBkZWYgdGVzdF93aXRoX3ZhcmlhYmxlc19uYW1lX2FuZF9oYW5kbGVyKHNlbGYpOgorICAgICAgICByb3V0ZXIgPSB3ZWJhcHAyLlJvdXRlcihbCisgICAgICAgICAgICBEb21haW5Sb3V0ZSgnPHN1YmRvbWFpbj4uPDouKj4nLCBbCisgICAgICAgICAgICAgICAgUGF0aFByZWZpeFJvdXRlKCcvdXNlci88dXNlcm5hbWU6XHcrPicsIFsKKyAgICAgICAgICAgICAgICAgICAgSGFuZGxlclByZWZpeFJvdXRlKCdhcHBzLnVzZXJzLicsIFsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWVQcmVmaXhSb3V0ZSgndXNlci0nLCBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsICdVc2VyT3ZlcnZpZXdIYW5kbGVyJywgJ292ZXJ2aWV3JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL3Byb2ZpbGUnLCAnVXNlclByb2ZpbGVIYW5kbGVyJywgJ3Byb2ZpbGUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvcHJvamVjdHMnLCAnVXNlclByb2plY3RzSGFuZGxlcicsICdwcm9qZWN0cycpLAorICAgICAgICAgICAgICAgICAgICAgICAgXSksCisgICAgICAgICAgICAgICAgICAgIF0pLAorICAgICAgICAgICAgICAgIF0pCisgICAgICAgICAgICBdKSwKKyAgICAgICAgXSkKKworICAgICAgICBwYXRoID0gJ2h0dHA6Ly9teS1zdWJkb21haW4uYXBwLWlkLmFwcHNwb3QuY29tL3VzZXIvY2FsdmluLycKKyAgICAgICAgbWF0Y2ggPSAoKCksIHsndXNlcm5hbWUnOiAnY2FsdmluJywgJ3N1YmRvbWFpbic6ICdteS1zdWJkb21haW4nfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHBhdGgpKVsxOl0sIG1hdGNoKQorICAgICAgICBtYXRjaFsxXS5wb3AoJ3N1YmRvbWFpbicpCisgICAgICAgIG1hdGNoWzFdWydfbmV0bG9jJ10gPSAnbXktc3ViZG9tYWluLmFwcC1pZC5hcHBzcG90LmNvbScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIuYnVpbGQod2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJyksICd1c2VyLW92ZXJ2aWV3JywgbWF0Y2hbMF0sIG1hdGNoWzFdKSwgcGF0aCkKKworICAgICAgICBwYXRoID0gJ2h0dHA6Ly9teS1zdWJkb21haW4uYXBwLWlkLmFwcHNwb3QuY29tL3VzZXIvY2FsdmluL3Byb2ZpbGUnCisgICAgICAgIG1hdGNoID0gKCgpLCB7J3VzZXJuYW1lJzogJ2NhbHZpbicsICdzdWJkb21haW4nOiAnbXktc3ViZG9tYWluJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLm1hdGNoKHdlYmFwcDIuUmVxdWVzdC5ibGFuayhwYXRoKSlbMTpdLCBtYXRjaCkKKyAgICAgICAgbWF0Y2hbMV0ucG9wKCdzdWJkb21haW4nKQorICAgICAgICBtYXRjaFsxXVsnX25ldGxvYyddID0gJ215LXN1YmRvbWFpbi5hcHAtaWQuYXBwc3BvdC5jb20nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLmJ1aWxkKHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpLCAndXNlci1wcm9maWxlJywgbWF0Y2hbMF0sIG1hdGNoWzFdKSwgcGF0aCkKKworICAgICAgICBwYXRoID0gJ2h0dHA6Ly9teS1zdWJkb21haW4uYXBwLWlkLmFwcHNwb3QuY29tL3VzZXIvY2FsdmluL3Byb2plY3RzJworICAgICAgICBtYXRjaCA9ICgoKSwgeyd1c2VybmFtZSc6ICdjYWx2aW4nLCAnc3ViZG9tYWluJzogJ215LXN1YmRvbWFpbid9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5tYXRjaCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsocGF0aCkpWzE6XSwgbWF0Y2gpCisgICAgICAgIG1hdGNoWzFdLnBvcCgnc3ViZG9tYWluJykKKyAgICAgICAgbWF0Y2hbMV1bJ19uZXRsb2MnXSA9ICdteS1zdWJkb21haW4uYXBwLWlkLmFwcHNwb3QuY29tJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlci5idWlsZCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKSwgJ3VzZXItcHJvamVjdHMnLCBtYXRjaFswXSwgbWF0Y2hbMV0pLCBwYXRoKQorCisgICAgZGVmIHRlc3RfZ3VpZGVfZXhhbXBsZXMoc2VsZik6CisgICAgICAgIHJvdXRlciA9IHdlYmFwcDIuUm91dGVyKFsKKyAgICAgICAgICAgIERvbWFpblJvdXRlKHInd3d3Lm15ZG9tYWluLmNvbScsIFsKKyAgICAgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvcGF0aDEnLCAnUGF0aDEnLCAncGF0aDEnKSwKKyAgICAgICAgICAgIF0pLAorICAgICAgICAgICAgRG9tYWluUm91dGUocic8c3ViZG9tYWluOig/IXd3d1wuKVteLl0rPi5teWRvbWFpbi5jb20nLCBbCisgICAgICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL3BhdGgyJywgJ1BhdGgyJywgJ3BhdGgyJyksCisgICAgICAgICAgICBdKSwKKyAgICAgICAgICAgIERvbWFpblJvdXRlKHInPDooYXBwLWlkXC5hcHBzcG90XC5jb218d3d3XC5teWRvbWFpblwuY29tKT4nLCBbCisgICAgICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL3BhdGgzJywgJ1BhdGgzJywgJ3BhdGgzJyksCisgICAgICAgICAgICBdKSwKKyAgICAgICAgICAgIERvbWFpblJvdXRlKHInPHN1YmRvbWFpbjooPyF3d3cpW14uXSs+Ljw6KGFwcC1pZFwuYXBwc3BvdFwuY29tfG15ZG9tYWluXC5jb20pPicsIFsKKyAgICAgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvcGF0aDQnLCAnUGF0aDQnLCAncGF0aDQnKSwKKyAgICAgICAgICAgIF0pLAorICAgICAgICBdKQorCisgICAgICAgIHVyaTFhID0gJ2h0dHA6Ly93d3cubXlkb21haW4uY29tL3BhdGgxJworICAgICAgICB1cmkxYiA9ICdodHRwOi8vc3ViLm15ZG9tYWluLmNvbS9wYXRoMScKKyAgICAgICAgdXJpMWMgPSAnaHR0cDovL3d3dy5teWRvbWFpbi5jb20vaW52YWxpZC1wYXRoJworCisgICAgICAgIHVyaTJhID0gJ2h0dHA6Ly9zdWIubXlkb21haW4uY29tL3BhdGgyJworICAgICAgICB1cmkyYiA9ICdodHRwOi8vd3d3Lm15ZG9tYWluLmNvbS9wYXRoMicKKyAgICAgICAgdXJpMmMgPSAnaHR0cDovL3N1Yi5teWRvbWFpbi5jb20vaW52YWxpZC1wYXRoJworICAgICAgICB1cmkyZCA9ICdodHRwOi8vd3d3Lm15ZG9tYWluLmNvbS9pbnZhbGlkLXBhdGgnCisKKyAgICAgICAgdXJpM2EgPSAnaHR0cDovL2FwcC1pZC5hcHBzcG90LmNvbS9wYXRoMycKKyAgICAgICAgdXJpM2IgPSAnaHR0cDovL3d3dy5teWRvbWFpbi5jb20vcGF0aDMnCisgICAgICAgIHVyaTNjID0gJ2h0dHA6Ly9zdWIuYXBwLWlkLmFwcHNwb3QuY29tL3BhdGgzJworICAgICAgICB1cmkzZCA9ICdodHRwOi8vc3ViLm15ZG9tYWluLmNvbS9wYXRoMycKKyAgICAgICAgdXJpM2UgPSAnaHR0cDovL2FwcC1pZC5hcHBzcG90LmNvbS9pbnZhbGlkLXBhdGgnCisgICAgICAgIHVyaTNmID0gJ2h0dHA6Ly93d3cubXlkb21haW4uY29tL2ludmFsaWQtcGF0aCcKKworICAgICAgICB1cmk0YSA9ICdodHRwOi8vc3ViLmFwcC1pZC5hcHBzcG90LmNvbS9wYXRoNCcKKyAgICAgICAgdXJpNGIgPSAnaHR0cDovL3N1Yi5teWRvbWFpbi5jb20vcGF0aDQnCisgICAgICAgIHVyaTRjID0gJ2h0dHA6Ly9hcHAtaWQuYXBwc3BvdC5jb20vcGF0aDQnCisgICAgICAgIHVyaTRkID0gJ2h0dHA6Ly93d3cuYXBwLWlkLmFwcHNwb3QuY29tL3BhdGg0JworICAgICAgICB1cmk0ZSA9ICdodHRwOi8vd3d3Lm15ZG9tYWluLmNvbS9wYXRoNCcKKyAgICAgICAgdXJpNGYgPSAnaHR0cDovL3N1Yi5hcHAtaWQuYXBwc3BvdC5jb20vaW52YWxpZC1wYXRoJworICAgICAgICB1cmk0ZyA9ICdodHRwOi8vc3ViLm15ZG9tYWluLmNvbS9pbnZhbGlkLXBhdGgnCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTFhKSlbMTpdLCAoKCksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE5vdEZvdW5kLCByb3V0ZXIubWF0Y2gsIHdlYmFwcDIuUmVxdWVzdC5ibGFuayh1cmkxYikpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYmFwcDIuZXhjLkhUVFBOb3RGb3VuZCwgcm91dGVyLm1hdGNoLCB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsodXJpMWMpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGVyLm1hdGNoKHdlYmFwcDIuUmVxdWVzdC5ibGFuayh1cmkyYSkpWzE6XSwgKCgpLCB7J3N1YmRvbWFpbic6ICdzdWInfSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYmFwcDIuZXhjLkhUVFBOb3RGb3VuZCwgcm91dGVyLm1hdGNoLCB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsodXJpMmIpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJhcHAyLmV4Yy5IVFRQTm90Rm91bmQsIHJvdXRlci5tYXRjaCwgd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTJjKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE5vdEZvdW5kLCByb3V0ZXIubWF0Y2gsIHdlYmFwcDIuUmVxdWVzdC5ibGFuayh1cmkyZCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTNhKSlbMTpdLCAoKCksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTNiKSlbMTpdLCAoKCksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE5vdEZvdW5kLCByb3V0ZXIubWF0Y2gsIHdlYmFwcDIuUmVxdWVzdC5ibGFuayh1cmkzYykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYmFwcDIuZXhjLkhUVFBOb3RGb3VuZCwgcm91dGVyLm1hdGNoLCB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsodXJpM2QpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJhcHAyLmV4Yy5IVFRQTm90Rm91bmQsIHJvdXRlci5tYXRjaCwgd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTNlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE5vdEZvdW5kLCByb3V0ZXIubWF0Y2gsIHdlYmFwcDIuUmVxdWVzdC5ibGFuayh1cmkzZikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTRhKSlbMTpdLCAoKCksIHsnc3ViZG9tYWluJzogJ3N1Yid9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTRiKSlbMTpdLCAoKCksIHsnc3ViZG9tYWluJzogJ3N1Yid9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE5vdEZvdW5kLCByb3V0ZXIubWF0Y2gsIHdlYmFwcDIuUmVxdWVzdC5ibGFuayh1cmk0YykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYmFwcDIuZXhjLkhUVFBOb3RGb3VuZCwgcm91dGVyLm1hdGNoLCB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsodXJpNGQpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJhcHAyLmV4Yy5IVFRQTm90Rm91bmQsIHJvdXRlci5tYXRjaCwgd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaTRlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE5vdEZvdW5kLCByb3V0ZXIubWF0Y2gsIHdlYmFwcDIuUmVxdWVzdC5ibGFuayh1cmk0ZikpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYmFwcDIuZXhjLkhUVFBOb3RGb3VuZCwgcm91dGVyLm1hdGNoLCB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsodXJpNGcpKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfc2VjdXJlY29va2llX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfc2VjdXJlY29va2llX3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk4OWMzYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19zZWN1cmVjb29raWVfdGVzdC5weQpAQCAtMCwwICsxLDQ2IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2VjdXJlY29va2llCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCitjbGFzcyBUZXN0U2VjdXJlQ29va2llKHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3NlY3VyZV9jb29raWVfc2VyaWFsaXplcihzZWxmKToKKyAgICAgICAgc2VyaWFsaXplciA9IHNlY3VyZWNvb2tpZS5TZWN1cmVDb29raWVTZXJpYWxpemVyKCdzZWNyZXQta2V5JykKKyAgICAgICAgc2VyaWFsaXplci5fZ2V0X3RpbWVzdGFtcCA9IGxhbWJkYTogMQorCisgICAgICAgIHZhbHVlID0gWydhJywgJ2InLCAnYyddCisgICAgICAgIHJlc3VsdCA9ICdXeUpoSWl3aVlpSXNJbU1pWFE9PXwxfDM4ODM3ZDZhZjhhYzFkZWQ5MjkyYjgzOTI0ZmM4NTIxY2U3NmY0N2UnCisKKyAgICAgICAgcnYgPSBzZXJpYWxpemVyLnNlcmlhbGl6ZSgnZm9vJywgdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIHJlc3VsdCkKKworICAgICAgICBydiA9IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoJ2ZvbycsIHJlc3VsdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgdmFsdWUpCisKKyAgICAgICAgIyBubyB2YWx1ZQorICAgICAgICBydiA9IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoJ2ZvbycsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIE5vbmUpCisKKyAgICAgICAgIyBub3QgMyBwYXJ0cworICAgICAgICBydiA9IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoJ2ZvbycsICdhfGInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2LCBOb25lKQorCisgICAgICAgICMgYmFkIHNpZ25hdHVyZQorICAgICAgICBydiA9IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoJ2ZvbycsIHJlc3VsdCArICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2LCBOb25lKQorCisgICAgICAgICMgdG9vIG9sZAorICAgICAgICBydiA9IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoJ2ZvbycsIHJlc3VsdCwgbWF4X2FnZT0tODY0MDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIE5vbmUpCisKKyAgICAgICAgIyBub3QgY29ycmVjdGx5IGVuY29kZWQKKyAgICAgICAgc2VyaWFsaXplcjIgPSBzZWN1cmVjb29raWUuU2VjdXJlQ29va2llU2VyaWFsaXplcignZm9vJykKKyAgICAgICAgc2VyaWFsaXplcjIuX2VuY29kZSA9IGxhbWJkYSB4OiAnZm9vJworICAgICAgICByZXN1bHQyID0gc2VyaWFsaXplcjIuc2VyaWFsaXplKCdmb28nLCB2YWx1ZSkKKyAgICAgICAgcnYyID0gc2VyaWFsaXplcjIuZGVzZXJpYWxpemUoJ2ZvbycsIHJlc3VsdDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYyLCBOb25lKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9iYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX3NlY3VyaXR5X3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9leHRyYXNfc2VjdXJpdHlfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDk2M2U2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX3NlY3VyaXR5X3Rlc3QucHkKQEAgLTAsMCArMSw2MSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCByZQorCitmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBzZWN1cml0eQorCitpbXBvcnQgdGVzdF9iYXNlCisKKworY2xhc3MgVGVzdFNlY3VyaXR5KHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2dlbmVyYXRlX3JhbmRvbV9zdHJpbmcoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlY3VyaXR5LmdlbmVyYXRlX3JhbmRvbV9zdHJpbmcsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlY3VyaXR5LmdlbmVyYXRlX3JhbmRvbV9zdHJpbmcsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlY3VyaXR5LmdlbmVyYXRlX3JhbmRvbV9zdHJpbmcsIC0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWN1cml0eS5nZW5lcmF0ZV9yYW5kb21fc3RyaW5nLCAxLCAxKQorCisgICAgICAgIHRva2VuID0gc2VjdXJpdHkuZ2VuZXJhdGVfcmFuZG9tX3N0cmluZygxNikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKHInXlx3ezE2fSQnLCB0b2tlbikgaXMgbm90IE5vbmUpCisKKyAgICAgICAgdG9rZW4gPSBzZWN1cml0eS5nZW5lcmF0ZV9yYW5kb21fc3RyaW5nKDMyKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2gocideXHd7MzJ9JCcsIHRva2VuKSBpcyBub3QgTm9uZSkKKworICAgICAgICB0b2tlbiA9IHNlY3VyaXR5LmdlbmVyYXRlX3JhbmRvbV9zdHJpbmcoNjQpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaChyJ15cd3s2NH0kJywgdG9rZW4pIGlzIG5vdCBOb25lKQorCisgICAgICAgIHRva2VuID0gc2VjdXJpdHkuZ2VuZXJhdGVfcmFuZG9tX3N0cmluZygxMjgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaChyJ15cd3sxMjh9JCcsIHRva2VuKSBpcyBub3QgTm9uZSkKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9jaGVja19wYXNzd29yZF9oYXNoKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlY3VyaXR5LmdlbmVyYXRlX3Bhc3N3b3JkX2hhc2gsICdmb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFyJykKKworICAgICAgICBwYXNzd29yZCA9ICdmb28nCisgICAgICAgIGhhc2h2YWwgPSBzZWN1cml0eS5nZW5lcmF0ZV9wYXNzd29yZF9oYXNoKHBhc3N3b3JkLCAnc2hhMScpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWN1cml0eS5jaGVja19wYXNzd29yZF9oYXNoKHBhc3N3b3JkLCBoYXNodmFsKSkKKworICAgICAgICBoYXNodmFsID0gc2VjdXJpdHkuZ2VuZXJhdGVfcGFzc3dvcmRfaGFzaChwYXNzd29yZCwgJ3NoYTEnLCBwZXBwZXI9J2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWN1cml0eS5jaGVja19wYXNzd29yZF9oYXNoKHBhc3N3b3JkLCBoYXNodmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXBwZXI9J2JhcicpKQorCisgICAgICAgIGhhc2h2YWwgPSBzZWN1cml0eS5nZW5lcmF0ZV9wYXNzd29yZF9oYXNoKHBhc3N3b3JkLCAnbWQ1JykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlY3VyaXR5LmNoZWNrX3Bhc3N3b3JkX2hhc2gocGFzc3dvcmQsIGhhc2h2YWwpKQorCisgICAgICAgIGhhc2h2YWwgPSBzZWN1cml0eS5nZW5lcmF0ZV9wYXNzd29yZF9oYXNoKHBhc3N3b3JkLCAncGxhaW4nKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VjdXJpdHkuY2hlY2tfcGFzc3dvcmRfaGFzaChwYXNzd29yZCwgaGFzaHZhbCkpCisKKyAgICAgICAgaGFzaHZhbCA9IHNlY3VyaXR5LmdlbmVyYXRlX3Bhc3N3b3JkX2hhc2gocGFzc3dvcmQsICdwbGFpbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VjdXJpdHkuY2hlY2tfcGFzc3dvcmRfaGFzaChwYXNzd29yZCwgJycpKQorCisgICAgICAgIGhhc2h2YWwxID0gc2VjdXJpdHkuaGFzaF9wYXNzd29yZCh1bmljb2RlKHBhc3N3b3JkKSwgJ3NoYTEnLCB1J2JhcicpCisgICAgICAgIGhhc2h2YWwyID0gc2VjdXJpdHkuaGFzaF9wYXNzd29yZCh1bmljb2RlKHBhc3N3b3JkKSwgJ3NoYTEnLCB1J2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNodmFsMSBpcyBub3QgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNodmFsMSwgaGFzaHZhbDIpCisKKyAgICAgICAgaGFzaHZhbDEgPSBzZWN1cml0eS5oYXNoX3Bhc3N3b3JkKHVuaWNvZGUocGFzc3dvcmQpLCAnbWQ1JywgTm9uZSkKKyAgICAgICAgaGFzaHZhbDIgPSBzZWN1cml0eS5oYXNoX3Bhc3N3b3JkKHVuaWNvZGUocGFzc3dvcmQpLCAnbWQ1JywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2h2YWwxIGlzIG5vdCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2h2YWwxLCBoYXNodmFsMikKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19zZXNzaW9uc190ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvZXh0cmFzX3Nlc3Npb25zX3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY3OGZiZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2V4dHJhc19zZXNzaW9uc190ZXN0LnB5CkBAIC0wLDAgKzEsMjE5IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHdlYmFwcDIKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHNlc3Npb25zCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oY29uZmlnPXsKKyAgICAnd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnMnOiB7CisgICAgICAgICdzZWNyZXRfa2V5JzogJ215LXN1cGVyLXNlY3JldCcsCisgICAgfSwKK30pCisKKworY2xhc3MgVGVzdFNlY3VyZUNvb2tpZVNlc3Npb24odGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZmFjdG9yeSA9IHNlc3Npb25zLlNlY3VyZUNvb2tpZVNlc3Npb25GYWN0b3J5CisKKyAgICBkZWYgdGVzdF9jb25maWcoc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKCkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24sIHNlc3Npb25zLlNlc3Npb25TdG9yZSwgcmVxKQorCisgICAgICAgICMgSnVzdCB0byBzZXQgYSBzcGVjaWFsIGNvbmZpZy4KKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSwgY29uZmlnPXsKKyAgICAgICAgICAgICdzZWNyZXRfa2V5JzogJ215LXN1cGVyLXNlY3JldCcsCisgICAgICAgICAgICAnY29va2llX25hbWUnOiAnZm9vJworICAgICAgICB9KQorICAgICAgICBzZXNzaW9uID0gc3RvcmUuZ2V0X3Nlc3Npb24oZmFjdG9yeT1zZWxmLmZhY3RvcnkpCisgICAgICAgIHNlc3Npb25bJ2JhciddID0gJ2JhcicKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHN0b3JlLnNhdmVfc2Vzc2lvbnMocnNwKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocnNwLmhlYWRlcnNbJ1NldC1Db29raWUnXS5zdGFydHN3aXRoKCdmb289JykpCisKKyAgICBkZWYgdGVzdF9nZXRfc2F2ZV9zZXNzaW9uKHNlbGYpOgorICAgICAgICAjIFJvdW5kIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihmYWN0b3J5PXNlbGYuZmFjdG9yeSkKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgIyBOb3RoaW5nIGNoYW5nZWQsIHdlIHdhbnQgdG8gdGVzdCBhbnl3YXkuCisgICAgICAgIHN0b3JlLnNhdmVfc2Vzc2lvbnMocnNwKQorCisgICAgICAgIHNlc3Npb25bJ2EnXSA9ICdiJworICAgICAgICBzZXNzaW9uWydjJ10gPSAnZCcKKyAgICAgICAgc2Vzc2lvblsnZSddID0gJ2YnCisKKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgIyBSb3VuZCAyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjb29raWVzID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWVzKV0pCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihmYWN0b3J5PXNlbGYuZmFjdG9yeSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydhJ10sICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydjJ10sICdkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydlJ10sICdmJykKKworICAgICAgICBzZXNzaW9uWydnJ10gPSAnaCcKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgIyBSb3VuZCAzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjb29raWVzID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWVzKV0pCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihmYWN0b3J5PXNlbGYuZmFjdG9yeSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydhJ10sICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydjJ10sICdkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydlJ10sICdmJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXNzaW9uWydnJ10sICdoJykKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2Vzc2lvbi5wb3AsICdmb28nKQorCisgICAgZGVmIHRlc3RfZmxhc2hlcyhzZWxmKToKKworICAgICAgICAjIFJvdW5kIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihmYWN0b3J5PXNlbGYuZmFjdG9yeSkKKyAgICAgICAgZmxhc2hlcyA9IHNlc3Npb24uZ2V0X2ZsYXNoZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZsYXNoZXMsIFtdKQorICAgICAgICBzZXNzaW9uLmFkZF9mbGFzaCgnZm9vJykKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgIyBSb3VuZCAyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjb29raWVzID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWVzKV0pCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihmYWN0b3J5PXNlbGYuZmFjdG9yeSkKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW1t1J2ZvbycsIE5vbmVdXSkKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW10pCisKKyAgICAgICAgc2Vzc2lvbi5hZGRfZmxhc2goJ2JhcicpCisgICAgICAgIHNlc3Npb24uYWRkX2ZsYXNoKCdiYXonLCAnaW1wb3J0YW50JykKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgIyBSb3VuZCAzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjb29raWVzID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWVzKV0pCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihmYWN0b3J5PXNlbGYuZmFjdG9yeSkKKworICAgICAgICBmbGFzaGVzID0gc2Vzc2lvbi5nZXRfZmxhc2hlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhc2hlcywgW1t1J2JhcicsIE5vbmVdLCBbdSdiYXonLCAnaW1wb3J0YW50J11dKQorCisgICAgICAgIGZsYXNoZXMgPSBzZXNzaW9uLmdldF9mbGFzaGVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbGFzaGVzLCBbXSkKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgc3RvcmUuc2F2ZV9zZXNzaW9ucyhyc3ApCisKKyAgICAgICAgIyBSb3VuZCA0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBjb29raWVzID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWVzKV0pCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlc3Npb24gPSBzdG9yZS5nZXRfc2Vzc2lvbihmYWN0b3J5PXNlbGYuZmFjdG9yeSkKKyAgICAgICAgZmxhc2hlcyA9IHNlc3Npb24uZ2V0X2ZsYXNoZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZsYXNoZXMsIFtdKQorCisgICAgZGVmIHRlc3Rfc2V0X3NlY3VyZV9jb29raWUoc2VsZik6CisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisKKyAgICAgICAgIyBSb3VuZCAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSkKKworICAgICAgICBzdG9yZS5zZXRfc2VjdXJlX2Nvb2tpZSgnZm9vJywgeydiYXInOiAnYmF6J30pCisgICAgICAgIHN0b3JlLnNhdmVfc2Vzc2lvbnMocnNwKQorCisgICAgICAgICMgUm91bmQgMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgY29va2llcyA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycsIGhlYWRlcnM9WygnQ29va2llJywgY29va2llcyldKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHN0b3JlID0gc2Vzc2lvbnMuU2Vzc2lvblN0b3JlKHJlcSkKKyAgICAgICAgcmVzID0gc3RvcmUuZ2V0X3NlY3VyZV9jb29raWUoJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCB7J2Jhcic6ICdiYXonfSkKKworICAgIGRlZiB0ZXN0X3NldF9zZXNzaW9uX3N0b3JlKHNlbGYpOgorICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihjb25maWc9eworICAgICAgICAgICAgJ3dlYmFwcDJfZXh0cmFzLnNlc3Npb25zJzogeworICAgICAgICAgICAgICAgICdzZWNyZXRfa2V5JzogJ215LXN1cGVyLXNlY3JldCcsCisgICAgICAgICAgICB9CisgICAgICAgIH0pCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcS5yZWdpc3RyeSksIDApCisgICAgICAgIHNlc3Npb25zLnNldF9zdG9yZShzdG9yZSwgcmVxdWVzdD1yZXEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcS5yZWdpc3RyeSksIDEpCisgICAgICAgIHMgPSBzZXNzaW9ucy5nZXRfc3RvcmUocmVxdWVzdD1yZXEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHMsIHNlc3Npb25zLlNlc3Npb25TdG9yZSkpCisKKyAgICBkZWYgdGVzdF9nZXRfc2Vzc2lvbl9zdG9yZShzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oY29uZmlnPXsKKyAgICAgICAgICAgICd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9ucyc6IHsKKyAgICAgICAgICAgICAgICAnc2VjcmV0X2tleSc6ICdteS1zdXBlci1zZWNyZXQnLAorICAgICAgICAgICAgfQorICAgICAgICB9KQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcS5yZWdpc3RyeSksIDApCisgICAgICAgIHMgPSBzZXNzaW9ucy5nZXRfc3RvcmUocmVxdWVzdD1yZXEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcS5yZWdpc3RyeSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHMsIHNlc3Npb25zLlNlc3Npb25TdG9yZSkpCisKKyAgICBkZWYgdGVzdF9ub3RfaW1wbGVtZW50ZWQoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5TZXNzaW9uU3RvcmUocmVxKQorCisgICAgICAgIGYgPSBzZXNzaW9ucy5CYXNlU2Vzc2lvbkZhY3RvcnkoJ2ZvbycsIHN0b3JlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBmLmdldF9zZXNzaW9uKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBmLnNhdmVfc2Vzc2lvbiwgTm9uZSkKKworICAgICAgICBmID0gc2Vzc2lvbnMuQ3VzdG9tQmFja2VuZFNlc3Npb25GYWN0b3J5KCdmb28nLCBzdG9yZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgZi5fZ2V0X2J5X3NpZCwgTm9uZSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2hhbmRsZXJfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL2hhbmRsZXJfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmI5ZmEyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvaGFuZGxlcl90ZXN0LnB5CkBAIC0wLDAgKzEsNjg0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCitUZXN0cyBmb3Igd2ViYXBwMiB3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyCisiIiIKK2ltcG9ydCBvcworaW1wb3J0IFN0cmluZ0lPCitpbXBvcnQgc3lzCitpbXBvcnQgdXJsbGliCisKK2ltcG9ydCB3ZWJhcHAyCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCitjbGFzcyBCYXJlSGFuZGxlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgIHNlbGYucmVzcG9uc2UgPSByZXNwb25zZQorICAgICAgICByZXNwb25zZS53cml0ZSgnSSBhbSBub3QgYSBSZXF1ZXN0SGFuZGxlciBidXQgSSB3b3JrLicpCisKKyAgICBkZWYgZGlzcGF0Y2goc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnJlc3BvbnNlCisKKworY2xhc3MgSG9tZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdob21lIHN3ZWV0IGhvbWUnKQorCisgICAgZGVmIHBvc3Qoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnaG9tZSBzd2VldCBob21lIC0gUE9TVCcpCisKKworY2xhc3MgTWV0aG9kc0hhbmRsZXIoSG9tZUhhbmRsZXIpOgorICAgIGRlZiBwdXQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnaG9tZSBzd2VldCBob21lIC0gUFVUJykKKworICAgIGRlZiBkZWxldGUoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnaG9tZSBzd2VldCBob21lIC0gREVMRVRFJykKKworICAgIGRlZiBoZWFkKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ2hvbWUgc3dlZXQgaG9tZSAtIEhFQUQnKQorCisgICAgZGVmIHRyYWNlKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ2hvbWUgc3dlZXQgaG9tZSAtIFRSQUNFJykKKworICAgIGRlZiBvcHRpb25zKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ2hvbWUgc3dlZXQgaG9tZSAtIE9QVElPTlMnKQorCisKK2NsYXNzIFJlZGlyZWN0VG9IYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgIGRlZiBnZXQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gc2VsZi5yZWRpcmVjdF90bygncm91dGUtdGVzdCcsIF9mcmFnbWVudD0nbXktYW5jaG9yJywgeWVhcj0nMjAxMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoPScwNycsIG5hbWU9J3Rlc3QnLCBmb289J2JhcicpCisKKworY2xhc3MgUmVkaXJlY3RBYm9ydEhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYucmVkaXJlY3QoJy9zb21ld2hlcmUnLCBhYm9ydD1UcnVlKQorCisKK2NsYXNzIEJyb2tlbkhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Jvb28hJykKKworCitjbGFzcyBCcm9rZW5CdXRGaXhlZEhhbmRsZXIoQnJva2VuSGFuZGxlcik6CisgICAgZGVmIGhhbmRsZV9leGNlcHRpb24oc2VsZiwgZXhjZXB0aW9uLCBkZWJ1Z19tb2RlKToKKyAgICAgICAgIyBMZXQncyBmaXggaXQuCisgICAgICAgIHNlbGYucmVzcG9uc2Uuc2V0X3N0YXR1cygyMDApCisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCd0aGF0IHdhcyBjbG9zZSEnKQorCisKK2RlZiBoYW5kbGVfNDA0KHJlcXVlc3QsIHJlc3BvbnNlLCBleGNlcHRpb24pOgorICAgIHJlc3BvbnNlLm91dC53cml0ZSgnNDA0IGN1c3RvbSBoYW5kbGVyJykKKyAgICByZXNwb25zZS5zZXRfc3RhdHVzKDQwNCkKKworCitkZWYgaGFuZGxlXzQwNShyZXF1ZXN0LCByZXNwb25zZSwgZXhjZXB0aW9uKToKKyAgICByZXNwb25zZS5vdXQud3JpdGUoJzQwNSBjdXN0b20gaGFuZGxlcicpCisgICAgcmVzcG9uc2Uuc2V0X3N0YXR1cyg0MDUsICdDdXN0b20gRXJyb3IgTWVzc2FnZScpCisgICAgcmVzcG9uc2UuaGVhZGVyc1snQWxsb3cnXSA9ICdHRVQnCisKKworZGVmIGhhbmRsZV81MDAocmVxdWVzdCwgcmVzcG9uc2UsIGV4Y2VwdGlvbik6CisgICAgcmVzcG9uc2Uub3V0LndyaXRlKCc1MDAgY3VzdG9tIGhhbmRsZXInKQorICAgIHJlc3BvbnNlLnNldF9zdGF0dXMoNTAwKQorCisKK2NsYXNzIFBvc2l0aW9uYWxIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgIGRlZiBnZXQoc2VsZiwgbW9udGgsIGRheSwgc2x1Zz1Ob25lKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJyVzOiVzOiVzJyAlIChtb250aCwgZGF5LCBzbHVnKSkKKworCitjbGFzcyBIYW5kbGVyV2l0aEVycm9yKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgIGRlZiBnZXQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnYmxhIGJsYSBibGEgYmxhIGJsYSBibGEnKQorICAgICAgICBzZWxmLmVycm9yKDQwMykKKworCitjbGFzcyBJbml0aWFsaXplSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdSZXF1ZXN0IG1ldGhvZDogJXMnICUgc2VsZi5yZXF1ZXN0Lm1ldGhvZCkKKworCitjbGFzcyBXZWJEYXZIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgIGRlZiB2ZXJzaW9uX2NvbnRyb2woc2VsZik6CisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdNZXRob2Q6IFZFUlNJT04tQ09OVFJPTCcpCisKKyAgICBkZWYgdW5sb2NrKHNlbGYpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnTWV0aG9kOiBVTkxPQ0snKQorCisgICAgZGVmIHByb3BmaW5kKHNlbGYpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnTWV0aG9kOiBQUk9QRklORCcpCisKKworY2xhc3MgQXV0aG9yaXphdGlvbkhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ25vdGhpbmcgaGVyZScpCisKK2NsYXNzIEhhbmRsZXJXaXRoRXNjYXBlZEFyZyh3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICBkZWYgZ2V0KHNlbGYsIG5hbWUpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSh1cmxsaWIudW5xdW90ZV9wbHVzKG5hbWUpKQorCitkZWYgZ2V0X3JlZGlyZWN0X3VybChoYW5kbGVyLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIGhhbmRsZXIudXJpX2ZvcignbWV0aG9kcycpCisKKworYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICgnL2JhcmUnLCBCYXJlSGFuZGxlciksCisgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIEhvbWVIYW5kbGVyLCBuYW1lPSdob21lJyksCisgICAgd2ViYXBwMi5Sb3V0ZSgnL21ldGhvZHMnLCBNZXRob2RzSGFuZGxlciwgbmFtZT0nbWV0aG9kcycpLAorICAgIHdlYmFwcDIuUm91dGUoJy9icm9rZW4nLCBCcm9rZW5IYW5kbGVyKSwKKyAgICB3ZWJhcHAyLlJvdXRlKCcvYnJva2VuLWJ1dC1maXhlZCcsIEJyb2tlbkJ1dEZpeGVkSGFuZGxlciksCisgICAgd2ViYXBwMi5Sb3V0ZSgnLzx5ZWFyOlxkezR9Pi88bW9udGg6XGR7MSwyfT4vPG5hbWU+JywgTm9uZSwgbmFtZT0ncm91dGUtdGVzdCcpLAorICAgIHdlYmFwcDIuUm91dGUoJy88OlxkXGQ+Lzw6XGR7Mn0+Lzw6XHcrPicsIFBvc2l0aW9uYWxIYW5kbGVyLCBuYW1lPSdwb3NpdGlvbmFsJyksCisgICAgd2ViYXBwMi5Sb3V0ZSgnL3JlZGlyZWN0LW1lJywgd2ViYXBwMi5SZWRpcmVjdEhhbmRsZXIsIGRlZmF1bHRzPXsnX3VyaSc6ICcvYnJva2VuJ30pLAorICAgIHdlYmFwcDIuUm91dGUoJy9yZWRpcmVjdC1tZTInLCB3ZWJhcHAyLlJlZGlyZWN0SGFuZGxlciwgZGVmYXVsdHM9eydfdXJpJzogZ2V0X3JlZGlyZWN0X3VybH0pLAorICAgIHdlYmFwcDIuUm91dGUoJy9yZWRpcmVjdC1tZTMnLCB3ZWJhcHAyLlJlZGlyZWN0SGFuZGxlciwgZGVmYXVsdHM9eydfdXJpJzogJy9icm9rZW4nLCAnX3Blcm1hbmVudCc6IEZhbHNlfSksCisgICAgd2ViYXBwMi5Sb3V0ZSgnL3JlZGlyZWN0LW1lNCcsIHdlYmFwcDIuUmVkaXJlY3RIYW5kbGVyLCBkZWZhdWx0cz17J191cmknOiBnZXRfcmVkaXJlY3RfdXJsLCAnX3Blcm1hbmVudCc6IEZhbHNlfSksCisgICAgd2ViYXBwMi5Sb3V0ZSgnL3JlZGlyZWN0LW1lNScsIFJlZGlyZWN0VG9IYW5kbGVyKSwKKyAgICB3ZWJhcHAyLlJvdXRlKCcvcmVkaXJlY3QtbWU2JywgUmVkaXJlY3RBYm9ydEhhbmRsZXIpLAorICAgIHdlYmFwcDIuUm91dGUoJy9sYXp5JywgJ3Jlc291cmNlcy5oYW5kbGVycy5MYXp5SGFuZGxlcicpLAorICAgIHdlYmFwcDIuUm91dGUoJy9lcnJvcicsIEhhbmRsZXJXaXRoRXJyb3IpLAorICAgIHdlYmFwcDIuUm91dGUoJy9pbml0aWFsaXplJywgSW5pdGlhbGl6ZUhhbmRsZXIpLAorICAgIHdlYmFwcDIuUm91dGUoJy93ZWJkYXYnLCBXZWJEYXZIYW5kbGVyKSwKKyAgICB3ZWJhcHAyLlJvdXRlKCcvYXV0aG9yaXphdGlvbicsIEF1dGhvcml6YXRpb25IYW5kbGVyKSwKKyAgICB3ZWJhcHAyLlJvdXRlKCcvZXNjYXBlLzxuYW1lOi4qPicsIEhhbmRsZXJXaXRoRXNjYXBlZEFyZywgJ2VzY2FwZScpLAorXSwgZGVidWc9RmFsc2UpCisKK0RFRkFVTFRfUkVTUE9OU0UgPSAiIiJTdGF0dXM6IDQwNCBOb3QgRm91bmQKK2NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0ZjgKK0NvbnRlbnQtTGVuZ3RoOiA1MgorCis0MDQgTm90IEZvdW5kCisKK1RoZSByZXNvdXJjZSBjb3VsZCBub3QgYmUgZm91bmQuCisKKyAgICIiIgorCitjbGFzcyBUZXN0SGFuZGxlcih0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RIYW5kbGVyLCBzZWxmKS50ZWFyRG93bigpCisgICAgICAgIGFwcC5lcnJvcl9oYW5kbGVycyA9IHt9CisKKyAgICBkZWYgdGVzdF8yMDAoc2VsZik6CisgICAgICAgIHJzcCA9IGFwcC5nZXRfcmVzcG9uc2UoJy8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdob21lIHN3ZWV0IGhvbWUnKQorCisgICAgZGVmIHRlc3RfNDA0KHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9ub3doZXJlJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDQwNCkKKworICAgIGRlZiB0ZXN0XzQwNShzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVxLm1ldGhvZCA9ICdQVVQnCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCA0MDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnMuZ2V0KCdBbGxvdycpLCAnR0VULCBQT1NUJykKKworICAgIGRlZiB0ZXN0XzUwMChzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvYnJva2VuJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDUwMCkKKworICAgIGRlZiB0ZXN0XzUwMF9idXRfZml4ZWQoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL2Jyb2tlbi1idXQtZml4ZWQnKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAndGhhdCB3YXMgY2xvc2UhJykKKworICAgIGRlZiB0ZXN0XzUwMShzZWxmKToKKyAgICAgICAgIyA1MDEgTm90IEltcGxlbWVudGVkCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL21ldGhvZHMnKQorICAgICAgICByZXEubWV0aG9kID0gJ0ZPT0JBUicKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDUwMSkKKworICAgIGRlZiB0ZXN0X2xhenlfaGFuZGxlcihzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvbGF6eScpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdJIGFtIGEgbGFhYXp5IHZpZXcuJykKKworICAgIGRlZiB0ZXN0X2hhbmRsZXJfd2l0aF9lcnJvcihzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvZXJyb3InKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgNDAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnJykKKworICAgIGRlZiB0ZXN0X2RlYnVnX21vZGUoc2VsZik6CisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9icm9rZW4nLCBCcm9rZW5IYW5kbGVyKSwKKyAgICAgICAgXSwgZGVidWc9VHJ1ZSkKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvYnJva2VuJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDUwMCkKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9lcnJvcl9oYW5kbGVycyhzZWxmKToKKyAgICAgICAgYXBwLmVycm9yX2hhbmRsZXJzID0geworICAgICAgICAgICAgNDA0OiBoYW5kbGVfNDA0LAorICAgICAgICAgICAgNDA1OiBoYW5kbGVfNDA1LAorICAgICAgICAgICAgNTAwOiBoYW5kbGVfNTAwLAorICAgICAgICB9CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL25vd2hlcmUnKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgNDA0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnNDA0IGN1c3RvbSBoYW5kbGVyJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEubWV0aG9kID0gJ1BVVCcKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1cywgJzQwNSBDdXN0b20gRXJyb3IgTWVzc2FnZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICc0MDUgY3VzdG9tIGhhbmRsZXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzLmdldCgnQWxsb3cnKSwgJ0dFVCcpCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvYnJva2VuJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDUwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJzUwMCBjdXN0b20gaGFuZGxlcicpCisKKyAgICBkZWYgdGVzdF9tZXRob2RzKHNlbGYpOgorICAgICAgICBhcHAuZGVidWcgPSBUcnVlCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL21ldGhvZHMnKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnaG9tZSBzd2VldCBob21lJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9tZXRob2RzJykKKyAgICAgICAgcmVxLm1ldGhvZCA9ICdQT1NUJworICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnaG9tZSBzd2VldCBob21lIC0gUE9TVCcpCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvbWV0aG9kcycpCisgICAgICAgIHJlcS5tZXRob2QgPSAnUFVUJworICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnaG9tZSBzd2VldCBob21lIC0gUFVUJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9tZXRob2RzJykKKyAgICAgICAgcmVxLm1ldGhvZCA9ICdERUxFVEUnCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdob21lIHN3ZWV0IGhvbWUgLSBERUxFVEUnKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL21ldGhvZHMnKQorICAgICAgICByZXEubWV0aG9kID0gJ0hFQUQnCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICcnKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL21ldGhvZHMnKQorICAgICAgICByZXEubWV0aG9kID0gJ09QVElPTlMnCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdob21lIHN3ZWV0IGhvbWUgLSBPUFRJT05TJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9tZXRob2RzJykKKyAgICAgICAgcmVxLm1ldGhvZCA9ICdUUkFDRScKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDIwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJ2hvbWUgc3dlZXQgaG9tZSAtIFRSQUNFJykKKyAgICAgICAgYXBwLmRlYnVnID0gRmFsc2UKKworICAgIGRlZiB0ZXN0X3Bvc2l0aW9uYWwoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLzA3LzMxL3Rlc3QnKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnMDc6MzE6dGVzdCcpCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvMTAvMTgvd29vb2hvb28nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnMTA6MTg6d29vb2hvb28nKQorCisgICAgZGVmIHRlc3RfcmVkaXJlY3Qoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3JlZGlyZWN0LW1lJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDMwMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnNbJ0xvY2F0aW9uJ10sICdodHRwOi8vbG9jYWxob3N0L2Jyb2tlbicpCisKKyAgICBkZWYgdGVzdF9yZWRpcmVjdF93aXRoX2NhbGxhYmxlKHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9yZWRpcmVjdC1tZTInKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMzAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVyc1snTG9jYXRpb24nXSwgJ2h0dHA6Ly9sb2NhbGhvc3QvbWV0aG9kcycpCisKKyAgICBkZWYgdGVzdF9yZWRpcmVjdF9ub3RfcGVybWFuZW50KHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9yZWRpcmVjdC1tZTMnKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMzAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVyc1snTG9jYXRpb24nXSwgJ2h0dHA6Ly9sb2NhbGhvc3QvYnJva2VuJykKKworICAgIGRlZiB0ZXN0X3JlZGlyZWN0X3dpdGhfY2FsbGFibGVfbm90X3Blcm1hbmVudChzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvcmVkaXJlY3QtbWU0JykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDMwMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnNbJ0xvY2F0aW9uJ10sICdodHRwOi8vbG9jYWxob3N0L21ldGhvZHMnKQorCisgICAgZGVmIHRlc3RfcmVkaXJlY3RfdG8oc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3JlZGlyZWN0LW1lNScpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAzMDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzWydMb2NhdGlvbiddLCAnaHR0cDovL2xvY2FsaG9zdC8yMDEwLzA3L3Rlc3Q/Zm9vPWJhciNteS1hbmNob3InKQorCisgICAgZGVmIHRlc3RfcmVkaXJlY3RfYWJvcnQoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3JlZGlyZWN0LW1lNicpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAzMDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICIiIjMwMiBNb3ZlZCBUZW1wb3JhcmlseQorCitUaGUgcmVzb3VyY2Ugd2FzIGZvdW5kIGF0IGh0dHA6Ly9sb2NhbGhvc3Qvc29tZXdoZXJlOyB5b3Ugc2hvdWxkIGJlIHJlZGlyZWN0ZWQgYXV0b21hdGljYWxseS4gICIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVyc1snTG9jYXRpb24nXSwgJ2h0dHA6Ly9sb2NhbGhvc3Qvc29tZXdoZXJlJykKKworICAgIGRlZiB0ZXN0X3J1bihzZWxmKToKKyAgICAgICAgb3MuZW52aXJvblsnUkVRVUVTVF9NRVRIT0QnXSA9ICdHRVQnCisKKyAgICAgICAgYXBwLnJ1bigpCisgICAgICAgICNzZWxmLmFzc2VydEVxdWFsKHN5cy5zdGRvdXQucmVhZCgpLCBERUZBVUxUX1JFU1BPTlNFKQorCisgICAgZGVmIHRlc3RfcnVuX2JhcmUoc2VsZik6CisgICAgICAgIG9zLmVudmlyb25bJ1JFUVVFU1RfTUVUSE9EJ10gPSAnR0VUJworICAgICAgICBhcHAucnVuKGJhcmU9VHJ1ZSkKKworICAgICAgICAjc2VsZi5hc3NlcnRFcXVhbChzeXMuc3Rkb3V0LnJlYWQoKSwgREVGQVVMVF9SRVNQT05TRSkKKworICAgIGRlZiB0ZXN0X3J1bl9kZWJ1ZyhzZWxmKToKKyAgICAgICAgZGVidWcgPSBhcHAuZGVidWcKKyAgICAgICAgYXBwLmRlYnVnID0gVHJ1ZQorICAgICAgICBvcy5lbnZpcm9uWydSRVFVRVNUX01FVEhPRCddID0gJ0dFVCcKKyAgICAgICAgb3MuZW52aXJvblsnUEFUSF9JTkZPJ10gPSAnLycKKworICAgICAgICByZXMgPSBhcHAucnVuKGJhcmU9VHJ1ZSkKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoc3lzLnN0ZG91dC5yZWFkKCksIERFRkFVTFRfUkVTUE9OU0UpCisKKyAgICAgICAgYXBwLmRlYnVnID0gZGVidWcKKworICAgICcnJworICAgIGRlZiB0ZXN0X2dldF92YWxpZF9tZXRob2RzKHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAvJykKKyAgICAgICAgcmVxLmFwcCA9IGFwcAorICAgICAgICBhcHAuc2V0X2dsb2JhbHMoYXBwPWFwcCwgcmVxdWVzdD1yZXEpCisKKyAgICAgICAgaGFuZGxlciA9IEJyb2tlbkhhbmRsZXIocmVxLCBOb25lKQorICAgICAgICBoYW5kbGVyLmFwcCA9IGFwcAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhbmRsZXIuZ2V0X3ZhbGlkX21ldGhvZHMoKS5zb3J0KCksIFsnR0VUJ10uc29ydCgpKQorCisgICAgICAgIGhhbmRsZXIgPSBIb21lSGFuZGxlcihyZXEsIE5vbmUpCisgICAgICAgIGhhbmRsZXIuYXBwID0gYXBwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFuZGxlci5nZXRfdmFsaWRfbWV0aG9kcygpLnNvcnQoKSwKKyAgICAgICAgICAgIFsnR0VUJywgJ1BPU1QnXS5zb3J0KCkpCisKKyAgICAgICAgaGFuZGxlciA9IE1ldGhvZHNIYW5kbGVyKHJlcSwgTm9uZSkKKyAgICAgICAgaGFuZGxlci5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYW5kbGVyLmdldF92YWxpZF9tZXRob2RzKCkuc29ydCgpLAorICAgICAgICAgICAgWydHRVQnLCAnUE9TVCcsICdIRUFEJywgJ09QVElPTlMnLCAnUFVUJywgJ0RFTEVURScsICdUUkFDRSddLnNvcnQoKSkKKyAgICAnJycKKworICAgIGRlZiB0ZXN0X3VyaV9mb3Ioc2VsZik6CisgICAgICAgIGNsYXNzIEhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgICAgICBkZWYgZ2V0KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnaHR0cDovL2xvY2FsaG9zdDo4MC8nKQorICAgICAgICByZXEucm91dGUgPSB3ZWJhcHAyLlJvdXRlKCcnKQorICAgICAgICByZXEucm91dGVfYXJncyA9IHR1cGxlKCkKKyAgICAgICAgcmVxLnJvdXRlX2t3YXJncyA9IHt9CisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgYXBwLnNldF9nbG9iYWxzKGFwcD1hcHAsIHJlcXVlc3Q9cmVxKQorICAgICAgICBoYW5kbGVyID0gSGFuZGxlcihyZXEsIHdlYmFwcDIuUmVzcG9uc2UoKSkKKyAgICAgICAgaGFuZGxlci5hcHAgPSBhcHAKKworICAgICAgICBmb3IgZnVuYyBpbiAoaGFuZGxlci51cmlfZm9yLCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ2hvbWUnKSwgJy8nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKCdob21lJywgZm9vPSdiYXInKSwgJy8/Zm9vPWJhcicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ2hvbWUnLCBfZnJhZ21lbnQ9J215LWFuY2hvcicsIGZvbz0nYmFyJyksICcvP2Zvbz1iYXIjbXktYW5jaG9yJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygnaG9tZScsIF9mcmFnbWVudD0nbXktYW5jaG9yJyksICcvI215LWFuY2hvcicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ2hvbWUnLCBfZnVsbD1UcnVlKSwgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAvJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygnaG9tZScsIF9mdWxsPVRydWUsIF9mcmFnbWVudD0nbXktYW5jaG9yJyksICdodHRwOi8vbG9jYWxob3N0OjgwLyNteS1hbmNob3InKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKCdob21lJywgX3NjaGVtZT0naHR0cHMnKSwgJ2h0dHBzOi8vbG9jYWxob3N0OjgwLycpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ2hvbWUnLCBfc2NoZW1lPSdodHRwcycsIF9mdWxsPUZhbHNlKSwgJ2h0dHBzOi8vbG9jYWxob3N0OjgwLycpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ2hvbWUnLCBfc2NoZW1lPSdodHRwcycsIF9mcmFnbWVudD0nbXktYW5jaG9yJyksICdodHRwczovL2xvY2FsaG9zdDo4MC8jbXktYW5jaG9yJykKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKCdtZXRob2RzJyksICcvbWV0aG9kcycpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ21ldGhvZHMnLCBmb289J2JhcicpLCAnL21ldGhvZHM/Zm9vPWJhcicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ21ldGhvZHMnLCBfZnJhZ21lbnQ9J215LWFuY2hvcicsIGZvbz0nYmFyJyksICcvbWV0aG9kcz9mb289YmFyI215LWFuY2hvcicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ21ldGhvZHMnLCBfZnJhZ21lbnQ9J215LWFuY2hvcicpLCAnL21ldGhvZHMjbXktYW5jaG9yJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygnbWV0aG9kcycsIF9mdWxsPVRydWUpLCAnaHR0cDovL2xvY2FsaG9zdDo4MC9tZXRob2RzJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygnbWV0aG9kcycsIF9mdWxsPVRydWUsIF9mcmFnbWVudD0nbXktYW5jaG9yJyksICdodHRwOi8vbG9jYWxob3N0OjgwL21ldGhvZHMjbXktYW5jaG9yJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygnbWV0aG9kcycsIF9zY2hlbWU9J2h0dHBzJyksICdodHRwczovL2xvY2FsaG9zdDo4MC9tZXRob2RzJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygnbWV0aG9kcycsIF9zY2hlbWU9J2h0dHBzJywgX2Z1bGw9RmFsc2UpLCAnaHR0cHM6Ly9sb2NhbGhvc3Q6ODAvbWV0aG9kcycpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ21ldGhvZHMnLCBfc2NoZW1lPSdodHRwcycsIF9mcmFnbWVudD0nbXktYW5jaG9yJyksICdodHRwczovL2xvY2FsaG9zdDo4MC9tZXRob2RzI215LWFuY2hvcicpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygncm91dGUtdGVzdCcsIHllYXI9JzIwMTAnLCBtb250aD0nMCcsIG5hbWU9J3Rlc3QnKSwgJy8yMDEwLzAvdGVzdCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ3JvdXRlLXRlc3QnLCB5ZWFyPScyMDEwJywgbW9udGg9JzA3JywgbmFtZT0ndGVzdCcpLCAnLzIwMTAvMDcvdGVzdCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ3JvdXRlLXRlc3QnLCB5ZWFyPScyMDEwJywgbW9udGg9JzA3JywgbmFtZT0ndGVzdCcsIGZvbz0nYmFyJyksICcvMjAxMC8wNy90ZXN0P2Zvbz1iYXInKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKCdyb3V0ZS10ZXN0JywgX2ZyYWdtZW50PSdteS1hbmNob3InLCB5ZWFyPScyMDEwJywgbW9udGg9JzA3JywgbmFtZT0ndGVzdCcsIGZvbz0nYmFyJyksICcvMjAxMC8wNy90ZXN0P2Zvbz1iYXIjbXktYW5jaG9yJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygncm91dGUtdGVzdCcsIF9mcmFnbWVudD0nbXktYW5jaG9yJywgeWVhcj0nMjAxMCcsIG1vbnRoPScwNycsIG5hbWU9J3Rlc3QnKSwgJy8yMDEwLzA3L3Rlc3QjbXktYW5jaG9yJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygncm91dGUtdGVzdCcsIF9mdWxsPVRydWUsIHllYXI9JzIwMTAnLCBtb250aD0nMDcnLCBuYW1lPSd0ZXN0JyksICdodHRwOi8vbG9jYWxob3N0OjgwLzIwMTAvMDcvdGVzdCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoJ3JvdXRlLXRlc3QnLCBfZnVsbD1UcnVlLCBfZnJhZ21lbnQ9J215LWFuY2hvcicsIHllYXI9JzIwMTAnLCBtb250aD0nMDcnLCBuYW1lPSd0ZXN0JyksICdodHRwOi8vbG9jYWxob3N0OjgwLzIwMTAvMDcvdGVzdCNteS1hbmNob3InKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKCdyb3V0ZS10ZXN0JywgX3NjaGVtZT0naHR0cHMnLCB5ZWFyPScyMDEwJywgbW9udGg9JzA3JywgbmFtZT0ndGVzdCcpLCAnaHR0cHM6Ly9sb2NhbGhvc3Q6ODAvMjAxMC8wNy90ZXN0JykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYygncm91dGUtdGVzdCcsIF9zY2hlbWU9J2h0dHBzJywgX2Z1bGw9RmFsc2UsIHllYXI9JzIwMTAnLCBtb250aD0nMDcnLCBuYW1lPSd0ZXN0JyksICdodHRwczovL2xvY2FsaG9zdDo4MC8yMDEwLzA3L3Rlc3QnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKCdyb3V0ZS10ZXN0JywgX3NjaGVtZT0naHR0cHMnLCBfZnJhZ21lbnQ9J215LWFuY2hvcicsIHllYXI9JzIwMTAnLCBtb250aD0nMDcnLCBuYW1lPSd0ZXN0JyksICdodHRwczovL2xvY2FsaG9zdDo4MC8yMDEwLzA3L3Rlc3QjbXktYW5jaG9yJykKKworICAgIGRlZiB0ZXN0X2V4dHJhX3JlcXVlc3RfbWV0aG9kcyhzZWxmKToKKyAgICAgICAgYWxsb3dlZF9tZXRob2RzX2JhY2t1cCA9IGFwcC5hbGxvd2VkX21ldGhvZHMKKyAgICAgICAgd2ViZGF2X21ldGhvZHMgPSAoJ1ZFUlNJT04tQ09OVFJPTCcsICdVTkxPQ0snLCAnUFJPUEZJTkQnKQorCisgICAgICAgIGZvciBtZXRob2QgaW4gd2ViZGF2X21ldGhvZHM6CisgICAgICAgICAgICAjIEl0IGlzIHN0aWxsIG5vdCBwb3NzaWJsZSB0byB1c2UgV2ViRGF2IG1ldGhvZHMuLi4KKyAgICAgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3dlYmRhdicpCisgICAgICAgICAgICByZXEubWV0aG9kID0gbWV0aG9kCisgICAgICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDUwMSkKKworICAgICAgICAjIExldCdzIGV4dGVuZCBBTExPV0VEX01FVEhPRFMgd2l0aCBzb21lIFdlYkRhdiBtZXRob2RzLgorICAgICAgICBhcHAuYWxsb3dlZF9tZXRob2RzID0gdHVwbGUoYXBwLmFsbG93ZWRfbWV0aG9kcykgKyB3ZWJkYXZfbWV0aG9kcworCisgICAgICAgICNzZWxmLmFzc2VydEVxdWFsKHNvcnRlZCh3ZWJhcHAyLmdldF92YWxpZF9tZXRob2RzKFdlYkRhdkhhbmRsZXIpKSwgc29ydGVkKGxpc3Qod2ViZGF2X21ldGhvZHMpKSkKKworICAgICAgICAjIE5vdyB3ZSBjYW4gdXNlIFdlYkRhdiBtZXRob2RzLi4uCisgICAgICAgIGZvciBtZXRob2QgaW4gd2ViZGF2X21ldGhvZHM6CisgICAgICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy93ZWJkYXYnKQorICAgICAgICAgICAgcmVxLm1ldGhvZCA9IG1ldGhvZAorICAgICAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnTWV0aG9kOiAlcycgJSBtZXRob2QpCisKKyAgICAgICAgIyBSZXN0b3JlIGluaXRpYWwgdmFsdWVzLgorICAgICAgICBhcHAuYWxsb3dlZF9tZXRob2RzID0gYWxsb3dlZF9tZXRob2RzX2JhY2t1cAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcHAuYWxsb3dlZF9tZXRob2RzKSwgNykKKworICAgIGRlZiB0ZXN0X2VzY2FwaW5nKHNlbGYpOgorICAgICAgICBkZWYgZ2V0X3JlcSh1cmkpOgorICAgICAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKHVyaSkKKyAgICAgICAgICAgIGFwcC5zZXRfZ2xvYmFscyhhcHA9YXBwLCByZXF1ZXN0PXJlcSkKKyAgICAgICAgICAgIGhhbmRsZXIgPSB3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKHJlcSwgTm9uZSkKKyAgICAgICAgICAgIGhhbmRsZXIuYXBwID0gcmVxLmFwcCA9IGFwcAorICAgICAgICAgICAgcmV0dXJuIHJlcSwgaGFuZGxlcgorCisgICAgICAgIHJlcSwgaGFuZGxlciA9IGdldF9yZXEoJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAvJykKKyAgICAgICAgdXJpID0gd2ViYXBwMi51cmlfZm9yKCdlc2NhcGUnLCBuYW1lPSd3aXRoIHNwYWNlJykKKyAgICAgICAgcmVxLCBoYW5kbGVyID0gZ2V0X3JlcSh1cmkpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICd3aXRoIHNwYWNlJykKKworICAgICAgICByZXEsIGhhbmRsZXIgPSBnZXRfcmVxKCdodHRwOi8vbG9jYWxob3N0OjgwLycpCisgICAgICAgIHVyaSA9IHdlYmFwcDIudXJpX2ZvcignZXNjYXBlJywgbmFtZT0nd2l0aCtwbHVzJykKKyAgICAgICAgcmVxLCBoYW5kbGVyID0gZ2V0X3JlcSh1cmkpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICd3aXRoIHBsdXMnKQorCisgICAgICAgIHJlcSwgaGFuZGxlciA9IGdldF9yZXEoJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAvJykKKyAgICAgICAgdXJpID0gd2ViYXBwMi51cmlfZm9yKCdlc2NhcGUnLCBuYW1lPSd3aXRoL3NsYXNoJykKKyAgICAgICAgcmVxLCBoYW5kbGVyID0gZ2V0X3JlcSh1cmkpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICd3aXRoL3NsYXNoJykKKworICAgIGRlZiB0ZXN0X2hhbmRsZV9leGNlcHRpb25fd2l0aF9lcnJvcihzZWxmKToKKyAgICAgICAgY2xhc3MgSG9tZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgICAgICAgICBkZWYgZ2V0KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoKQorCisgICAgICAgIGRlZiBoYW5kbGVfZXhjZXB0aW9uKHJlcXVlc3QsIHJlc3BvbnNlLCBleGNlcHRpb24pOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIEhvbWVIYW5kbGVyLCBuYW1lPSdob21lJyksCisgICAgICAgIF0sIGRlYnVnPUZhbHNlKQorICAgICAgICBhcHAuZXJyb3JfaGFuZGxlcnNbNTAwXSA9IGhhbmRsZV9leGNlcHRpb24KKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgNTAwKQorCisgICAgZGVmIHRlc3RfaGFuZGxlX2V4Y2VwdGlvbl93aXRoX2Vycm9yX2RlYnVnKHNlbGYpOgorICAgICAgICBjbGFzcyBIb21lSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgICAgIGRlZiBnZXQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigpCisKKyAgICAgICAgZGVmIGhhbmRsZV9leGNlcHRpb24ocmVxdWVzdCwgcmVzcG9uc2UsIGV4Y2VwdGlvbik6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKworICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvJywgSG9tZUhhbmRsZXIsIG5hbWU9J2hvbWUnKSwKKyAgICAgICAgXSwgZGVidWc9VHJ1ZSkKKyAgICAgICAgYXBwLmVycm9yX2hhbmRsZXJzWzUwMF0gPSBoYW5kbGVfZXhjZXB0aW9uCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDUwMCkKKworICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2hhbmRsZXIoc2VsZik6CisgICAgICAgIGRlZiBteV92aWV3KHJlcXVlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICByZXR1cm4gd2ViYXBwMi5SZXNwb25zZSgnSGVsbG8sIGZ1bmN0aW9uIHdvcmxkIScpCisKKyAgICAgICAgZGVmIG90aGVyX3ZpZXcocmVxdWVzdCwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiB3ZWJhcHAyLlJlc3BvbnNlKCdIZWxsbyBhZ2FpbiwgZnVuY3Rpb24gd29ybGQhJykKKworICAgICAgICAnJycKKyAgICAgICAgZGVmIG9uZV9tb3JlX3ZpZXcocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LnJvdXRlX2FyZ3MsICgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LnJvdXRlX2t3YXJncywgeydmb28nOiAnYmFyJ30pCisgICAgICAgICAgICByZXNwb25zZS53cml0ZSgnSGVsbG8geW91IHRvbywgZGVwcmVjYXRlZCBhcmd1bWVudHMgd29ybGQhJykKKyAgICAgICAgJycnCisgICAgICAgIGRlZiBvbmVfbW9yZV92aWV3KHJlcXVlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3MsICgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrd2FyZ3MsIHsnZm9vJzogJ2Jhcid9KQorICAgICAgICAgICAgcmV0dXJuIHdlYmFwcDIuUmVzcG9uc2UoJ0hlbGxvIHlvdSB0b28hJykKKworICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvJywgbXlfdmlldyksCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvb3RoZXInLCBvdGhlcl92aWV3KSwKKyAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9vbmUtbW9yZS88Zm9vPicsIG9uZV9tb3JlX3ZpZXcpLAorICAgICAgICAgICAgI3dlYmFwcDIuUm91dGUoJy9vbmUtbW9yZS88Zm9vPicsIG9uZV9tb3JlX3ZpZXcpLAorICAgICAgICBdKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdIZWxsbywgZnVuY3Rpb24gd29ybGQhJykKKworICAgICAgICAjIFR3aWNlIHRvIHRlc3QgZmFjdG9yeS4KKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDIwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJ0hlbGxvLCBmdW5jdGlvbiB3b3JsZCEnKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL290aGVyJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDIwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJ0hlbGxvIGFnYWluLCBmdW5jdGlvbiB3b3JsZCEnKQorCisgICAgICAgICMgVHdpY2UgdG8gdGVzdCBmYWN0b3J5LgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9vdGhlcicpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdIZWxsbyBhZ2FpbiwgZnVuY3Rpb24gd29ybGQhJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9vbmUtbW9yZS9iYXInKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnSGVsbG8geW91IHRvbyEnKQorCisgICAgZGVmIHRlc3RfY3VzdG9tX21ldGhvZChzZWxmKToKKyAgICAgICAgY2xhc3MgTXlIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICAgICAgZGVmIG15X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnSGVsbG8sIGN1c3RvbSBtZXRob2Qgd29ybGQhJykKKworICAgICAgICAgICAgZGVmIG15X290aGVyX21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnSGVsbG8gYWdhaW4sIGN1c3RvbSBtZXRob2Qgd29ybGQhJykKKworICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvJywgTXlIYW5kbGVyLCBoYW5kbGVyX21ldGhvZD0nbXlfbWV0aG9kJyksCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvb3RoZXInLCBNeUhhbmRsZXIsIGhhbmRsZXJfbWV0aG9kPSdteV9vdGhlcl9tZXRob2QnKSwKKyAgICAgICAgXSkKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnSGVsbG8sIGN1c3RvbSBtZXRob2Qgd29ybGQhJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy9vdGhlcicpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdIZWxsbyBhZ2FpbiwgY3VzdG9tIG1ldGhvZCB3b3JsZCEnKQorCisgICAgZGVmIHRlc3RfY3VzdG9tX21ldGhvZF93aXRoX3N0cmluZyhzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIGhhbmRsZXI9J3Jlc291cmNlcy5oYW5kbGVycy5DdXN0b21NZXRob2RIYW5kbGVyOmN1c3RvbV9tZXRob2QnKSwKKyAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy9ibGVoJywgaGFuZGxlcj0ncmVzb3VyY2VzLmhhbmRsZXJzLkN1c3RvbU1ldGhvZEhhbmRsZXI6Y3VzdG9tX21ldGhvZCcpLAorICAgICAgICBdKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdJIGFtIGEgY3VzdG9tIG1ldGhvZC4nKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL2JsZWgnKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnSSBhbSBhIGN1c3RvbSBtZXRob2QuJykKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB3ZWJhcHAyLlJvdXRlLCAnLycsIGhhbmRsZXI9J3Jlc291cmNlcy5oYW5kbGVycy5DdXN0b21NZXRob2RIYW5kbGVyOmN1c3RvbV9tZXRob2QnLCBoYW5kbGVyX21ldGhvZD0nY3VzdG9tX21ldGhvZCcpCisKKyAgICBkZWYgdGVzdF9mYWN0b3J5XzEoc2VsZik6CisgICAgICAgIGFwcC5kZWJ1ZyA9IFRydWUKKyAgICAgICAgcnNwID0gYXBwLmdldF9yZXNwb25zZSgnL2JhcmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdJIGFtIG5vdCBhIFJlcXVlc3RIYW5kbGVyIGJ1dCBJIHdvcmsuJykKKyAgICAgICAgYXBwLmRlYnVnID0gRmFsc2UKKworICAgIGRlZiB0ZXN0X2ZhY3RvcnlfMihzZWxmKToKKyAgICAgICAgIiIiVmVyeSBjcmF6eSBzdHVmZi4gUGxlYXNlIGlnbm9yZSBpdC4iIiIKKyAgICAgICAgY2xhc3MgTXlIYW5kbGVyKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAgICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlID0gcmVzcG9uc2UKKworICAgICAgICAgICAgZGVmIF9fbmV3X18oY2xzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIHJldHVybiBjbHMuY3JlYXRlX2luc3RhbmNlKCphcmdzLCAqKmt3YXJncykoKQorCisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBjcmVhdGVfaW5zdGFuY2UoY2xzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIG9iaiA9IG9iamVjdC5fX25ld19fKGNscykKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgY2xzKToKKyAgICAgICAgICAgICAgICAgICAgb2JqLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICAgICAgICAgIHJldHVybiBvYmoKKworICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgICAgIGRlZiBkaXNwYXRjaChzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKCdoZWxsbycpCisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIGhhbmRsZXI9TXlIYW5kbGVyKSwKKyAgICAgICAgXSkKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnaGVsbG8nKQorCisgICAgZGVmIHRlc3RfZW5jb2Rpbmcoc2VsZik6CisgICAgICAgIGNsYXNzIFBvc3RIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICAgICAgZGVmIHBvc3Qoc2VsZik6CisgICAgICAgICAgICAgICAgZm9vID0gc2VsZi5yZXF1ZXN0LlBPU1RbJ2ZvbyddCisgICAgICAgICAgICAgICAgaWYgbm90IGZvbzoKKyAgICAgICAgICAgICAgICAgICAgZm9vID0gJ2VtcHR5JworCisgICAgICAgICAgICAgICAgc2VsZi5yZXNwb25zZS53cml0ZShmb28pCisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIFBvc3RIYW5kbGVyKSwKKyAgICAgICAgXSwgZGVidWc9VHJ1ZSkKKworICAgICAgICAjIGZvbyB3aXRoIHVtbGF1dHMgaW4gdGhlIHZvd2Vscy4KKyAgICAgICAgdmFsdWUgPSAnZlx4YzNceGI2XHhjM1x4YjYnCisKKyAgICAgICAgcnNwID0gYXBwLmdldF9yZXNwb25zZSgnLycsIFBPU1Q9eydmb28nOiB2YWx1ZX0sCisgICAgICAgICAgICBoZWFkZXJzPVsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTgnKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdmw7bDticpCisKKyAgICAgICAgcnNwID0gYXBwLmdldF9yZXNwb25zZSgnLycsIFBPU1Q9eydmb28nOiB2YWx1ZX0sCisgICAgICAgICAgICBoZWFkZXJzPVsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdmw7bDticpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X2Jhc2UubWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9taXNjX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9taXNjX3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ0NjU1ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL21pc2NfdGVzdC5weQpAQCAtMCwwICsxLDEzMCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCB3ZWJvYgoraW1wb3J0IHdlYm9iLmV4YworCitpbXBvcnQgd2ViYXBwMgorCitpbXBvcnQgdGVzdF9iYXNlCisKKworY2xhc3MgVGVzdE1pc2NlbGxhbmVvdXModGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9hYm9ydChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBPaywgd2ViYXBwMi5hYm9ydCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUENyZWF0ZWQsIHdlYmFwcDIuYWJvcnQsIDIwMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBBY2NlcHRlZCwgd2ViYXBwMi5hYm9ydCwgMjAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbiwgd2ViYXBwMi5hYm9ydCwgMjAzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUE5vQ29udGVudCwgd2ViYXBwMi5hYm9ydCwgMjA0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUFJlc2V0Q29udGVudCwgd2ViYXBwMi5hYm9ydCwgMjA1KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUFBhcnRpYWxDb250ZW50LCB3ZWJhcHAyLmFib3J0LCAyMDYpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQTXVsdGlwbGVDaG9pY2VzLCB3ZWJhcHAyLmFib3J0LCAzMDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQTW92ZWRQZXJtYW5lbnRseSwgd2ViYXBwMi5hYm9ydCwgMzAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUEZvdW5kLCB3ZWJhcHAyLmFib3J0LCAzMDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQU2VlT3RoZXIsIHdlYmFwcDIuYWJvcnQsIDMwMykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBOb3RNb2RpZmllZCwgd2ViYXBwMi5hYm9ydCwgMzA0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUFVzZVByb3h5LCB3ZWJhcHAyLmFib3J0LCAzMDUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQVGVtcG9yYXJ5UmVkaXJlY3QsIHdlYmFwcDIuYWJvcnQsIDMwNykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBDbGllbnRFcnJvciwgd2ViYXBwMi5hYm9ydCwgNDAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUFVuYXV0aG9yaXplZCwgd2ViYXBwMi5hYm9ydCwgNDAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUFBheW1lbnRSZXF1aXJlZCwgd2ViYXBwMi5hYm9ydCwgNDAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUEZvcmJpZGRlbiwgd2ViYXBwMi5hYm9ydCwgNDAzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUE5vdEZvdW5kLCB3ZWJhcHAyLmFib3J0LCA0MDQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQTWV0aG9kTm90QWxsb3dlZCwgd2ViYXBwMi5hYm9ydCwgNDA1KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUE5vdEFjY2VwdGFibGUsIHdlYmFwcDIuYWJvcnQsIDQwNikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQsIHdlYmFwcDIuYWJvcnQsIDQwNykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBSZXF1ZXN0VGltZW91dCwgd2ViYXBwMi5hYm9ydCwgNDA4KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUENvbmZsaWN0LCB3ZWJhcHAyLmFib3J0LCA0MDkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQR29uZSwgd2ViYXBwMi5hYm9ydCwgNDEwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUExlbmd0aFJlcXVpcmVkLCB3ZWJhcHAyLmFib3J0LCA0MTEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQUHJlY29uZGl0aW9uRmFpbGVkLCB3ZWJhcHAyLmFib3J0LCA0MTIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQUmVxdWVzdEVudGl0eVRvb0xhcmdlLCB3ZWJhcHAyLmFib3J0LCA0MTMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQUmVxdWVzdFVSSVRvb0xvbmcsIHdlYmFwcDIuYWJvcnQsIDQxNCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBVbnN1cHBvcnRlZE1lZGlhVHlwZSwgd2ViYXBwMi5hYm9ydCwgNDE1KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJvYi5leGMuSFRUUFJlcXVlc3RSYW5nZU5vdFNhdGlzZmlhYmxlLCB3ZWJhcHAyLmFib3J0LCA0MTYpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQRXhwZWN0YXRpb25GYWlsZWQsIHdlYmFwcDIuYWJvcnQsIDQxNykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBJbnRlcm5hbFNlcnZlckVycm9yLCB3ZWJhcHAyLmFib3J0LCA1MDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQTm90SW1wbGVtZW50ZWQsIHdlYmFwcDIuYWJvcnQsIDUwMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBCYWRHYXRld2F5LCB3ZWJhcHAyLmFib3J0LCA1MDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQU2VydmljZVVuYXZhaWxhYmxlLCB3ZWJhcHAyLmFib3J0LCA1MDMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHdlYm9iLmV4Yy5IVFRQR2F0ZXdheVRpbWVvdXQsIHdlYmFwcDIuYWJvcnQsIDUwNCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2Vib2IuZXhjLkhUVFBWZXJzaW9uTm90U3VwcG9ydGVkLCB3ZWJhcHAyLmFib3J0LCA1MDUpCisKKyAgICAgICAgIyBJbnZhbGlkIHVzZSA1MDAgYXMgZGVmYXVsdC4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHdlYmFwcDIuYWJvcnQsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCB3ZWJhcHAyLmFib3J0LCA5OTk5OTkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCB3ZWJhcHAyLmFib3J0LCAnZm9vJykKKworICAgIGRlZiB0ZXN0X2ltcG9ydF9zdHJpbmcoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod2ViYXBwMi5pbXBvcnRfc3RyaW5nKCd3ZWJvYi5leGMnKSwgd2Vib2IuZXhjKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdlYmFwcDIuaW1wb3J0X3N0cmluZygnd2Vib2InKSwgd2Vib2IpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3ZWJhcHAyLmltcG9ydF9zdHJpbmcoJ2FzZGZnJywgc2lsZW50PVRydWUpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdlYmFwcDIuaW1wb3J0X3N0cmluZygnd2Vib2IuYXNkZmcnLCBzaWxlbnQ9VHJ1ZSksIE5vbmUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5JbXBvcnRTdHJpbmdFcnJvciwgd2ViYXBwMi5pbXBvcnRfc3RyaW5nLCAnYXNkZmcnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh3ZWJhcHAyLkltcG9ydFN0cmluZ0Vycm9yLCB3ZWJhcHAyLmltcG9ydF9zdHJpbmcsICd3ZWJvYi5hc2RmZycpCisKKyAgICBkZWYgdGVzdF90b191dGY4KHNlbGYpOgorICAgICAgICByZXMgPSB3ZWJhcHAyLl90b191dGY4KCfDoWJjZMOpZicuZGVjb2RlKCd1dGYtOCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlzaW5zdGFuY2UocmVzLCBzdHIpLCBUcnVlKQorCisgICAgICAgIHJlcyA9IHdlYmFwcDIuX3RvX3V0ZjgoJ2FiY2RlZicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXNpbnN0YW5jZShyZXMsIHN0ciksIFRydWUpCisKKyAgICAnJycKKyAgICAjIHJlbW92ZWQgdG8gc2ltcGxpZnkgdGhlIGNvZGViYXNlLgorICAgIGRlZiB0ZXN0X3RvX3VuaWNvZGUoc2VsZik6CisgICAgICAgIHJlcyA9IHdlYmFwcDIudG9fdW5pY29kZSh1bmljb2RlKCdmb28nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpc2luc3RhbmNlKHJlcywgdW5pY29kZSksIFRydWUpCisKKyAgICAgICAgcmVzID0gd2ViYXBwMi50b191bmljb2RlKCdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlzaW5zdGFuY2UocmVzLCB1bmljb2RlKSwgVHJ1ZSkKKyAgICAnJycKKworICAgIGRlZiB0ZXN0X2h0dHBfc3RhdHVzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod2ViYXBwMi5SZXNwb25zZS5odHRwX3N0YXR1c19tZXNzYWdlKDQwNCksICdOb3QgRm91bmQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdlYmFwcDIuUmVzcG9uc2UuaHR0cF9zdGF0dXNfbWVzc2FnZSg1MDApLCAnSW50ZXJuYWwgU2VydmVyIEVycm9yJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHdlYmFwcDIuUmVzcG9uc2UuaHR0cF9zdGF0dXNfbWVzc2FnZSwgOTk5OSkKKworICAgIGRlZiB0ZXN0X2NhY2hlZF9wcm9wZXJ0eShzZWxmKToKKyAgICAgICAgY291bnQgPSBbMF0KKworICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIEB3ZWJhcHAyLmNhY2hlZF9wcm9wZXJ0eQorICAgICAgICAgICAgZGVmIGJhcihzZWxmKToKKyAgICAgICAgICAgICAgICBjb3VudFswXSArPSAxCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50WzBdCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoRm9vLmJhciwgd2ViYXBwMi5jYWNoZWRfcHJvcGVydHkpKQorCisgICAgICAgIGZvbyA9IEZvbygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLmJhciwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uYmFyLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5iYXIsIDEpCisKKyAgICBkZWYgdGVzdF9yZWRpcmVjdChzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByZXEuYXBwID0gYXBwCisgICAgICAgIGFwcC5zZXRfZ2xvYmFscyhhcHA9YXBwLCByZXF1ZXN0PXJlcSkKKyAgICAgICAgcnNwID0gd2ViYXBwMi5yZWRpcmVjdCgnaHR0cDovL3d3dy5nb29nbGUuY29tLycsIGNvZGU9MzAxLCBib2R5PSdXZWVlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMzAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnV2VlZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpLCAnaHR0cDovL3d3dy5nb29nbGUuY29tLycpCisKKyAgICBkZWYgdGVzdF9yZWRpcmVjdF90byhzZWxmKToKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnL2hvbWUnLCBoYW5kbGVyPScnLCBuYW1lPSdob21lJyksCisgICAgICAgIF0pCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5hcHAgPSBhcHAKKyAgICAgICAgYXBwLnNldF9nbG9iYWxzKGFwcD1hcHAsIHJlcXVlc3Q9cmVxKQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIucmVkaXJlY3RfdG8oJ2hvbWUnLCBfY29kZT0zMDEsIF9ib2R5PSdXZWVlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMzAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnV2VlZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpLCAnaHR0cDovL2xvY2FsaG9zdC9ob21lJykKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3JlcXVlc3RfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3JlcXVlc3RfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWM0NWI4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVxdWVzdF90ZXN0LnB5CkBAIC0wLDAgKzEsMzEzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IFN0cmluZ0lPCisKK2ltcG9ydCB3ZWJhcHAyCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCitkZWYgX25vcm1fcmVxKHMpOgorICAgIHJldHVybiAnXHJcbicuam9pbihzLnN0cmlwKCkucmVwbGFjZSgnXHInLCcnKS5zcGxpdCgnXG4nKSkKKworX3Rlc3RfcmVxID0gIiIiCitQT1NUIC93ZWJvYi8gSFRUUC8xLjAKK0FjY2VwdDogKi8qCitDYWNoZS1Db250cm9sOiBtYXgtYWdlPTAKK0NvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWRlYjk1YjYzZTQyYQorSG9zdDogcHl0aG9ucGFzdGUub3JnCitVc2VyLUFnZW50OiBVc2VyQWdlbnQvMS4wIChpZGVudGlmaWVyLXZlcnNpb24pIGxpYnJhcnkvNy4wIG90aGVybGlicmFyeS8wLjgKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZGViOTViNjNlNDJhCitDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9ImZvbyIKKworZm9vCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1kZWI5NWI2M2U0MmEKK0NvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0iYmFyIjsgZmlsZW5hbWU9ImJhci50eHQiCitDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQorCit0aGVzZSBhcmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlICdiYXIudHh0JworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1kZWI5NWI2M2U0MmEtLQorIiIiCisKK190ZXN0X3JlcTIgPSAiIiIKK1BPU1QgLyBIVFRQLzEuMAorQ29udGVudC1MZW5ndGg6IDAKKworIiIiCisKK190ZXN0X3JlcSA9IF9ub3JtX3JlcShfdGVzdF9yZXEpCitfdGVzdF9yZXEyID0gX25vcm1fcmVxKF90ZXN0X3JlcTIpICsgJ1xyXG4nCisKKworY2xhc3MgVGVzdFJlcXVlc3QodGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfY2hhcnNldChzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgZW52aXJvbj17CisgICAgICAgICAgICAnQ09OVEVOVF9UWVBFJzogJ3RleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS00JywKKyAgICAgICAgfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEuY29udGVudF90eXBlLCAndGV4dC9odG1sJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEuY2hhcnNldCwgJ2lzby04ODU5LTQnKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycsIGVudmlyb249eworICAgICAgICAgICAgJ0NPTlRFTlRfVFlQRSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PSJJU08tODg1OS0xIicsCisgICAgICAgIH0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxLmNvbnRlbnRfdHlwZSwgJ2FwcGxpY2F0aW9uL2pzb24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcS5jaGFyc2V0LCAnaXNvLTg4NTktMScpCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgZW52aXJvbj17CisgICAgICAgICAgICAnQ09OVEVOVF9UWVBFJzogJ2FwcGxpY2F0aW9uL2pzb24nLAorICAgICAgICB9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcS5jb250ZW50X3R5cGUsICdhcHBsaWNhdGlvbi9qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEuY2hhcnNldC5sb3dlcigpLCAndXRmLTgnKQorCisgICAgICAgIG1hdGNoID0gd2ViYXBwMi5fY2hhcnNldF9yZS5zZWFyY2goJ3RleHQvaHRtbCcpCisgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgY2hhcnNldCA9IG1hdGNoLmdyb3VwKDEpLmxvd2VyKCkuc3RyaXAoKS5zdHJpcCgnIicpLnN0cmlwKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNoYXJzZXQgPSAndXRmLTgnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hhcnNldCwgJ3V0Zi04JykKKworICAgICAgICBtYXRjaCA9IHdlYmFwcDIuX2NoYXJzZXRfcmUuc2VhcmNoKCd0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktNCcpCisgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgY2hhcnNldCA9IG1hdGNoLmdyb3VwKDEpLmxvd2VyKCkuc3RyaXAoKS5zdHJpcCgnIicpLnN0cmlwKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNoYXJzZXQgPSAndXRmLTgnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hhcnNldCwgJ2lzby04ODU5LTQnKQorCisgICAgICAgIG1hdGNoID0gd2ViYXBwMi5fY2hhcnNldF9yZS5zZWFyY2goJ3RleHQvaHRtbDsgY2hhcnNldD0iSVNPLTg4NTktNCInKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIGNoYXJzZXQgPSBtYXRjaC5ncm91cCgxKS5sb3dlcigpLnN0cmlwKCkuc3RyaXAoJyInKS5zdHJpcCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjaGFyc2V0ID0gJ3V0Zi04JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoYXJzZXQsICdpc28tODg1OS00JykKKworICAgICAgICBtYXRjaCA9IHdlYmFwcDIuX2NoYXJzZXRfcmUuc2VhcmNoKCd0ZXh0L2h0bWw7IGNoYXJzZXQ9ICAiICBJU08tODg1OS00ICAiICAnKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIGNoYXJzZXQgPSBtYXRjaC5ncm91cCgxKS5sb3dlcigpLnN0cmlwKCkuc3RyaXAoJyInKS5zdHJpcCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjaGFyc2V0ID0gJ3V0Zi04JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoYXJzZXQsICdpc28tODg1OS00JykKKworICAgIGRlZiB0ZXN0X3VuaWNvZGUoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLz8xPTInLCBQT1NUPSczPTQnKQorCisgICAgICAgIHJlcyA9IHJlcS5HRVQuZ2V0KCcxJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsICcyJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UocmVzLCB1bmljb2RlKSkKKworICAgICAgICByZXMgPSByZXEuc3RyX0dFVC5nZXQoJzEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgJzInKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShyZXMsIHN0cikpCisKKyAgICAgICAgcmVzID0gcmVxLlBPU1QuZ2V0KCczJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsICc0JykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UocmVzLCB1bmljb2RlKSkKKworICAgICAgICByZXMgPSByZXEuc3RyX1BPU1QuZ2V0KCczJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsICc0JykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UocmVzLCBzdHIpKQorCisgICAgZGVmIHRlc3RfY29va2llX3VuaWNvZGUoc2VsZik6CisgICAgICAgIGltcG9ydCB1cmxsaWIKKyAgICAgICAgaW1wb3J0IGJhc2U2NAorCisgICAgICAgICMgV2l0aCBiYXNlNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgdmFsdWUgPSBiYXNlNjQuYjY0ZW5jb2RlKHUnw6EnLmVuY29kZSgndXRmLTgnKSkKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC5zZXRfY29va2llKCdmb28nLCB2YWx1ZSkKKworICAgICAgICBjb29raWUgPSByc3AuaGVhZGVycy5nZXQoJ1NldC1Db29raWUnKQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZSldKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxLmNvb2tpZXMuZ2V0KCdmb28nKSwgdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFzZTY0LmI2NGRlY29kZShyZXEuY29va2llcy5nZXQoJ2ZvbycpKS5kZWNvZGUoJ3V0Zi04JyksIHUnw6EnKQorCisgICAgICAgICMgV2l0aG91dCBxdW90ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgIyBNb3N0IHJlY2VudCBXZWJPYiB2ZXJzaW9ucyB0YWtlIGNhcmUgb2YgcXVvdGluZy4KKyAgICAgICAgIyAobm90IHRoZSB2ZXJzaW9uIGF2YWlsYWJsZSBvbiBBcHAgRW5naW5lIHRob3VnaCkKKworICAgICAgICB2YWx1ZSA9IHUnZsO2w7Y9YsOkcjsgZsO2bywgYsOkciwgYsOkej1kw69uZzsnCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICByc3Auc2V0X2Nvb2tpZSgnZm9vJywgdmFsdWUpCisKKyAgICAgICAgY29va2llID0gcnNwLmhlYWRlcnMuZ2V0KCdTZXQtQ29va2llJykKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWUpXSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcS5jb29raWVzLmdldCgnZm9vJyksIHZhbHVlKQorCisgICAgICAgICMgV2l0aCBxdW90ZSwgaGFyZCB3YXkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgIyBIZXJlIGlzIG91ciB0ZXN0IHZhbHVlLgorICAgICAgICB4ID0gdSdmw7bDticKKyAgICAgICAgIyBXZSBtdXN0IHN0b3JlIGNvb2tpZXMgcXVvdGVkLiBUbyBxdW90ZSB1bmljb2RlLCB3ZSBuZWVkIHRvIGVuY29kZSBpdC4KKyAgICAgICAgeSA9IHVybGxpYi5xdW90ZSh4LmVuY29kZSgndXRmOCcpKQorICAgICAgICAjIFRoZSBlbmNvZGVkLCBxdW90ZWQgc3RyaW5nIGxvb2tzIHVnbHkuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeSwgJ2YlQzMlQjYlQzMlQjYnKQorICAgICAgICAjIEJ1dCBpdCBpcyBlYXN5IHRvIGdldCBpdCBiYWNrIHRvIG91ciBpbml0aWFsIHZhbHVlLgorICAgICAgICB6ID0gdXJsbGliLnVucXVvdGUoeSkuZGVjb2RlKCd1dGY4JykKKyAgICAgICAgIyBBbmQgaXQgaXMgaW5kZWVkIHRoZSBzYW1lIHZhbHVlLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHosIHgpCisKKyAgICAgICAgIyBTZXQgYSBjb29raWUgdXNpbmcgdGhlIGVuY29kZWQvcXVvdGVkIHZhbHVlLgorICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgcnNwLnNldF9jb29raWUoJ2ZvbycsIHkpCisgICAgICAgIGNvb2tpZSA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29va2llLCAnZm9vPWYlQzMlQjYlQzMlQjY7IFBhdGg9LycpCisKKyAgICAgICAgIyBHZXQgdGhlIGNvb2tpZSBiYWNrLgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nLCBoZWFkZXJzPVsoJ0Nvb2tpZScsIGNvb2tpZSldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcS5jb29raWVzLmdldCgnZm9vJyksIHkpCisgICAgICAgICMgSGVyZSBpcyBvdXIgb3JpZ2luYWwgdmFsdWUsIGFnYWluLiBQcm9ibGVtOiB0aGUgdmFsdWUgaXMgZGVjb2RlZAorICAgICAgICAjIGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8gdW5xdW90ZSBpdC4KKyAgICAgICAgdyA9IHVybGxpYi51bnF1b3RlKHJlcS5jb29raWVzLmdldCgnZm9vJykuZW5jb2RlKCd1dGY4JykpLmRlY29kZSgndXRmOCcpCisgICAgICAgICMgQW5kIGl0IGlzIGluZGVlZCB0aGUgc2FtZSB2YWx1ZS4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCB4KQorCisgICAgICAgICMgV2l0aCBxdW90ZSwgZWFzeSB3YXkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgdmFsdWUgPSB1J2bDtsO2PWLDpHI7IGbDtm8sIGLDpHIsIGLDpHo9ZMOvbmc7JworICAgICAgICBxdW90ZWRfdmFsdWUgPSB1cmxsaWIucXVvdGUodmFsdWUuZW5jb2RlKCd1dGY4JykpCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICByc3Auc2V0X2Nvb2tpZSgnZm9vJywgcXVvdGVkX3ZhbHVlKQorCisgICAgICAgIGNvb2tpZSA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycsIGhlYWRlcnM9WygnQ29va2llJywgY29va2llKV0pCisKKyAgICAgICAgY29va2llX3ZhbHVlID0gcmVxLnN0cl9jb29raWVzLmdldCgnZm9vJykKKyAgICAgICAgdW5xdW90ZWRfY29va2llX3ZhbHVlID0gdXJsbGliLnVucXVvdGUoY29va2llX3ZhbHVlKS5kZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb29raWVfdmFsdWUsIHF1b3RlZF92YWx1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bnF1b3RlZF9jb29raWVfdmFsdWUsIHZhbHVlKQorCisgICAgZGVmIHRlc3RfZ2V0KHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8/MT0yJjE9MyYzPTQnLCBQT1NUPSc1PTYmNz04JykKKworICAgICAgICByZXMgPSByZXEuZ2V0KCcxJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsICcyJykKKworICAgICAgICByZXMgPSByZXEuZ2V0KCcxJywgYWxsb3dfbXVsdGlwbGU9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIFsnMicsICczJ10pCisKKyAgICAgICAgcmVzID0gcmVxLmdldCgnOCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAnJykKKworICAgICAgICByZXMgPSByZXEuZ2V0KCc4JywgYWxsb3dfbXVsdGlwbGU9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIFtdKQorCisgICAgICAgIHJlcyA9IHJlcS5nZXQoJzgnLCBkZWZhdWx0X3ZhbHVlPSc5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsICc5JykKKworICAgIGRlZiB0ZXN0X2dldF93aXRoX1BPU1Qoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLz8xPTImMT0zJjM9NCcsIFBPU1Q9ezU6IDYsIDc6IDh9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZV9lcnJvcnM9J2lnbm9yZScpCisKKyAgICAgICAgcmVzID0gcmVxLmdldCgnMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAnMicpCisKKyAgICAgICAgcmVzID0gcmVxLmdldCgnMScsIGFsbG93X211bHRpcGxlPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbJzInLCAnMyddKQorCisgICAgICAgIHJlcyA9IHJlcS5nZXQoJzgnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgJycpCisKKyAgICAgICAgcmVzID0gcmVxLmdldCgnOCcsIGFsbG93X211bHRpcGxlPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbXSkKKworICAgICAgICByZXMgPSByZXEuZ2V0KCc4JywgZGVmYXVsdF92YWx1ZT0nOScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAnOScpCisKKyAgICBkZWYgdGVzdF9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLz8xPTImMz00JywgUE9TVD0nNT02Jjc9OCcpCisKKyAgICAgICAgcmVzID0gcmVxLmFyZ3VtZW50cygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbJzEnLCAnMycsICc1JywgJzcnXSkKKworICAgIGRlZiB0ZXN0X2dldF9yYW5nZShzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcmVzID0gcmVxLmdldF9yYW5nZSgnMScsIG1pbl92YWx1ZT1Ob25lLCBtYXhfdmFsdWU9Tm9uZSwgZGVmYXVsdD1Ob25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgTm9uZSkKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8/MT0yJykKKyAgICAgICAgcmVzID0gcmVxLmdldF9yYW5nZSgnMScsIG1pbl92YWx1ZT1Ob25lLCBtYXhfdmFsdWU9Tm9uZSwgZGVmYXVsdD0wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgMikKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8/MT1mb28nKQorICAgICAgICByZXMgPSByZXEuZ2V0X3JhbmdlKCcxJywgbWluX3ZhbHVlPTEsIG1heF92YWx1ZT05OSwgZGVmYXVsdD0xMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCA5OSkKKworICAgIGRlZiB0ZXN0X2lzc3VlXzM0MjYoc2VsZik6CisgICAgICAgICIiIldoZW4gdGhlIGNvbnRlbnQtdHlwZSBpcyAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyBhbmQKKyAgICAgICAgUE9TVCBkYXRhIGlzIGVtcHR5IHRoZSBjb250ZW50LXR5cGUgaXMgZHJvcHBlZCBieSBHb29nbGUgYXBwZW5naW5lLgorICAgICAgICAiIiIKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJywgZW52aXJvbj17CisgICAgICAgICAgICAnUkVRVUVTVF9NRVRIT0QnOiAnR0VUJywKKyAgICAgICAgICAgICdDT05URU5UX1RZUEUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJywKKyAgICAgICAgfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEubWV0aG9kLCAnR0VUJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEuY29udGVudF90eXBlLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykKKworICAgICMgWFhYOiBUaGVzZSB0ZXN0cyBmYWlsIHdoZW4gcmVxdWVzdCBjaGFyc2V0IGlzIHNldCB0byB1dGYtOCBieSBkZWZhdWx0LgorICAgICMgT3RoZXJ3aXNlIHRoZXkgcGFzcy4KKyAgICAnJycKKyAgICBkZWYgdGVzdF9nZXRfd2l0aF9GaWVsZFN0b3JhZ2Uoc2VsZik6CisgICAgICAgIGlmIG5vdCB0ZXN0X2Jhc2UuY2hlY2tfd2Vib2JfdmVyc2lvbigxLjApOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMgQSB2YWxpZCByZXF1ZXN0IHdpdGhvdXQgYSBDb250ZW50LUxlbmd0aCBoZWFkZXIgc2hvdWxkIHN0aWxsIHJlYWQKKyAgICAgICAgIyB0aGUgZnVsbCBib2R5LgorICAgICAgICAjIEFsc28gdGVzdCBwYXJpdHkgYmV0d2VlbiBhc19zdHJpbmcgYW5kIGZyb21fc3RyaW5nIC8gZnJvbV9maWxlLgorICAgICAgICBpbXBvcnQgY2dpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5mcm9tX3N0cmluZyhfdGVzdF9yZXEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHJlcSwgd2ViYXBwMi5SZXF1ZXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCByZXByKHJlcSkuZW5kc3dpdGgoJyhpbnZhbGlkIFdTR0kgZW52aXJvbik+JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnXG4nIG5vdCBpbiByZXEuaHR0cF92ZXJzaW9uIG9yICdccicgaW4gcmVxLmh0dHBfdmVyc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCcsJyBub3QgaW4gcmVxLmhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXEuY29udGVudF9sZW5ndGggaXMgbm90IE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxLmNvbnRlbnRfbGVuZ3RoLCAzMzcpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnZm9vJyBpbiByZXEuYm9keSkKKyAgICAgICAgYmFyX2NvbnRlbnRzID0gInRoZXNlIGFyZSB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUgJ2Jhci50eHQnXHJcbiIKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJhcl9jb250ZW50cyBpbiByZXEuYm9keSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEucGFyYW1zWydmb28nXSwgJ2ZvbycpCisgICAgICAgIGJhciA9IHJlcS5wYXJhbXNbJ2JhciddCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGJhciwgY2dpLkZpZWxkU3RvcmFnZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFyLnR5cGUsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKQorICAgICAgICBiYXIuZmlsZS5zZWVrKDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFyLmZpbGUucmVhZCgpLCBiYXJfY29udGVudHMpCisKKyAgICAgICAgYmFyID0gcmVxLmdldF9hbGwoJ2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFyWzBdLCBiYXJfY29udGVudHMpCisKKyAgICAgICAgIyBvdXQgc2hvdWxkIGVxdWFsIGNvbnRlbnRzLCBleGNlcHQgZm9yIHRoZSBDb250ZW50LUxlbmd0aCBoZWFkZXIsCisgICAgICAgICMgc28gaW5zZXJ0IHRoYXQuCisgICAgICAgIF90ZXN0X3JlcV9jb3B5ID0gX3Rlc3RfcmVxLnJlcGxhY2UoJ0NvbnRlbnQtVHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoOiAzMzdcclxuQ29udGVudC1UeXBlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIocmVxKSwgX3Rlc3RfcmVxX2NvcHkpCisKKyAgICAgICAgcmVxMiA9IHdlYmFwcDIuUmVxdWVzdC5mcm9tX3N0cmluZyhfdGVzdF9yZXEyKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2hvc3QnIG5vdCBpbiByZXEyLmhlYWRlcnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHJlcTIpLCBfdGVzdF9yZXEyLnJzdHJpcCgpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJhcHAyLlJlcXVlc3QuZnJvbV9zdHJpbmcsIF90ZXN0X3JlcTIgKyAneHgnKQorCisgICAgZGVmIHRlc3RfaXNzdWVfNTExOChzZWxmKToKKyAgICAgICAgIiIiVW5hYmxlIHRvIHJlYWQgUE9TVCB2YXJpYWJsZXMgT05DRSBzZWxmLnJlcXVlc3QuYm9keSBpcyByZWFkLiIiIgorICAgICAgICBpZiBub3QgdGVzdF9iYXNlLmNoZWNrX3dlYm9iX3ZlcnNpb24oMS4wKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpbXBvcnQgY2dpCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5mcm9tX3N0cmluZyhfdGVzdF9yZXEpCisgICAgICAgIGZpZWxkU3RvcmFnZSA9IHJlcS5QT1NULmdldCgnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmllbGRTdG9yYWdlLCBjZ2kuRmllbGRTdG9yYWdlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWVsZFN0b3JhZ2UudHlwZSwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpCisgICAgICAgICMgRG91YmxlIHJlYWQuCisgICAgICAgIGZpZWxkU3RvcmFnZSA9IHJlcS5QT1NULmdldCgnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZmllbGRTdG9yYWdlLCBjZ2kuRmllbGRTdG9yYWdlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWVsZFN0b3JhZ2UudHlwZSwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpCisgICAgICAgICMgTm93IHJlYWQgdGhlIGJvZHkuCisgICAgICAgIHggPSByZXEuYm9keQorICAgICAgICBmaWVsZFN0b3JhZ2UgPSByZXEuUE9TVC5nZXQoJ2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGZpZWxkU3RvcmFnZSwgY2dpLkZpZWxkU3RvcmFnZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmllbGRTdG9yYWdlLnR5cGUsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKQorICAgICcnJworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfYmFzZS5tYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2hhbmRsZXJzLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2hhbmRsZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMzc5MjcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNvdXJjZXMvaGFuZGxlcnMucHkKQEAgLTAsMCArMSwxNSBAQAoraW1wb3J0IHdlYmFwcDIKKworCitjbGFzcyBMYXp5SGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICBkZWYgZ2V0KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ0kgYW0gYSBsYWFhenkgdmlldy4nKQorCisKK2NsYXNzIEN1c3RvbU1ldGhvZEhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGN1c3RvbV9tZXRob2Qoc2VsZik6CisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdJIGFtIGEgY3VzdG9tIG1ldGhvZC4nKQorCisKK2RlZiBoYW5kbGVfZXhjZXB0aW9uKHJlcXVlc3QsIHJlc3BvbnNlLCBleGNlcHRpb24pOgorICAgIHJldHVybiB3ZWJhcHAyLlJlc3BvbnNlKGJvZHk9J0hlbGxvLCBjdXN0b20gcmVzcG9uc2Ugd29ybGQhJykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9pMThuLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2kxOG4ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI5ZWRiZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9pMThuLnB5CkBAIC0wLDAgKzEsMTQgQEAKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IGNvbmZpZworZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgaTE4bgorCitkZWZhdWx0X2NvbmZpZyA9IHsKKyAgICAnbG9jYWxlJzogJ2VuX1VTJywKKyAgICAndGltZXpvbmUnOiAnQW1lcmljYS9DaGljYWdvJywKKyAgICAncmVxdWlyZWQnOiBjb25maWcuUkVRVUlSRURfVkFMVUUsCit9CisKK2RlZiBsb2NhbGVfc2VsZWN0b3Ioc3RvcmUsIHJlcXVlc3QpOgorICAgIHJldHVybiBpMThuLmdldF9zdG9yZSgpLmRlZmF1bHRfbG9jYWxlCisKK2RlZiB0aW1lem9uZV9zZWxlY3RvcihzdG9yZSwgcmVxdWVzdCk6CisgICAgcmV0dXJuIGkxOG4uZ2V0X3N0b3JlKCkuZGVmYXVsdF90aW1lem9uZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXMvaGVsbG8uaHRtbCBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9qaW5qYTJfdGVtcGxhdGVzL2hlbGxvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQyMmM2MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9qaW5qYTJfdGVtcGxhdGVzL2hlbGxvLmh0bWwKQEAgLTAsMCArMSBAQAoreyUgbWFjcm8gaGVsbG8obmFtZSkgJX1IZWxsbywge3sgbmFtZSB9fSF7JSBlbmRtYWNybyAlfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXMvdGVtcGxhdGUxLmh0bWwgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNvdXJjZXMvamluamEyX3RlbXBsYXRlcy90ZW1wbGF0ZTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTRjMTdmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXMvdGVtcGxhdGUxLmh0bWwKQEAgLTAsMCArMSBAQAore3sgbWVzc2FnZSB9fQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXMvdGVtcGxhdGUyLmh0bWwgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNvdXJjZXMvamluamEyX3RlbXBsYXRlcy90ZW1wbGF0ZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGNlM2MwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXMvdGVtcGxhdGUyLmh0bWwKQEAgLTAsMCArMSBAQAore3sgXygnSGVsbG8sIGkxOG4gV29ybGQhJykgfX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9qaW5qYTJfdGVtcGxhdGVzL3RlbXBsYXRlMy5odG1sIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXMvdGVtcGxhdGUzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAwNzQ1NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9qaW5qYTJfdGVtcGxhdGVzL3RlbXBsYXRlMy5odG1sCkBAIC0wLDAgKzEgQEAKK3t7IGZvb3xmb28gfX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9qaW5qYTJfdGVtcGxhdGVzX2NvbXBpbGVkL3RtcGxfM2E3OTg3M2IxYjQ5YmUyNDRmZDU0NDRiMTI1OGNlMzQ4YmUyNmRlOC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9qaW5qYTJfdGVtcGxhdGVzX2NvbXBpbGVkL3RtcGxfM2E3OTg3M2IxYjQ5YmUyNDRmZDU0NDRiMTI1OGNlMzQ4YmUyNmRlOC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2EzZDI4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXNfY29tcGlsZWQvdG1wbF8zYTc5ODczYjFiNDliZTI0NGZkNTQ0NGIxMjU4Y2UzNDhiZTI2ZGU4LnB5CkBAIC0wLDAgKzEsMTEgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gamluamEyLnJ1bnRpbWUgaW1wb3J0IExvb3BDb250ZXh0LCBUZW1wbGF0ZVJlZmVyZW5jZSwgTWFjcm8sIE1hcmt1cCwgVGVtcGxhdGVSdW50aW1lRXJyb3IsIG1pc3NpbmcsIGNvbmNhdCwgZXNjYXBlLCBtYXJrdXBfam9pbiwgdW5pY29kZV9qb2luLCB0b19zdHJpbmcsIFRlbXBsYXRlTm90Rm91bmQKK25hbWUgPSAndGVtcGxhdGUxLmh0bWwnCisKK2RlZiByb290KGNvbnRleHQpOgorICAgIGxfbWVzc2FnZSA9IGNvbnRleHQucmVzb2x2ZSgnbWVzc2FnZScpCisgICAgaWYgMDogeWllbGQgTm9uZQorICAgIHlpZWxkIHRvX3N0cmluZyhsX21lc3NhZ2UpCisKK2Jsb2NrcyA9IHt9CitkZWJ1Z19pbmZvID0gJzE9OCcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNvdXJjZXMvbWFrb190ZW1wbGF0ZXMvdGVtcGxhdGUxLmh0bWwgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNvdXJjZXMvbWFrb190ZW1wbGF0ZXMvdGVtcGxhdGUxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFlMjkzMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9tYWtvX3RlbXBsYXRlcy90ZW1wbGF0ZTEuaHRtbApAQCAtMCwwICsxIEBACiske21lc3NhZ2V9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNvdXJjZXMvcHJvdG9ycGNfc2VydmljZXMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNvdXJjZXMvcHJvdG9ycGNfc2VydmljZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk4MGM0YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy9wcm90b3JwY19zZXJ2aWNlcy5weQpAQCAtMCwwICsxLDI2IEBACitmcm9tIHByb3RvcnBjIGltcG9ydCBtZXNzYWdlcworZnJvbSBwcm90b3JwYyBpbXBvcnQgcmVtb3RlCisKK2NsYXNzIEJvbmpvdXJSZXF1ZXN0KG1lc3NhZ2VzLk1lc3NhZ2UpOgorICAgIG15X25hbWUgPSBtZXNzYWdlcy5TdHJpbmdGaWVsZCgxLCByZXF1aXJlZD1UcnVlKQorCitjbGFzcyBCb25qb3VyUmVzcG9uc2UobWVzc2FnZXMuTWVzc2FnZSk6CisgICAgaGVsbG8gPSBtZXNzYWdlcy5TdHJpbmdGaWVsZCgxLCByZXF1aXJlZD1UcnVlKQorCitjbGFzcyBCb25qb3VyU2VydmljZShyZW1vdGUuU2VydmljZSk6CisgICAgQHJlbW90ZS5tZXRob2QoQm9uam91clJlcXVlc3QsIEJvbmpvdXJSZXNwb25zZSkKKyAgICBkZWYgYm9uam91cihzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgcmV0dXJuIEJvbmpvdXJSZXNwb25zZShoZWxsbz0nQm9uam91ciwgJXMhJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5teV9uYW1lKQorCitjbGFzcyBDaWFvUmVxdWVzdChtZXNzYWdlcy5NZXNzYWdlKToKKyAgICBteV9uYW1lID0gbWVzc2FnZXMuU3RyaW5nRmllbGQoMSwgcmVxdWlyZWQ9VHJ1ZSkKKworY2xhc3MgQ2lhb1Jlc3BvbnNlKG1lc3NhZ2VzLk1lc3NhZ2UpOgorICAgIGhlbGxvID0gbWVzc2FnZXMuU3RyaW5nRmllbGQoMSwgcmVxdWlyZWQ9VHJ1ZSkKKworY2xhc3MgQ2lhb1NlcnZpY2UocmVtb3RlLlNlcnZpY2UpOgorICAgIEByZW1vdGUubWV0aG9kKENpYW9SZXF1ZXN0LCBDaWFvUmVzcG9uc2UpCisgICAgZGVmIGNpYW8oc2VsZiwgcmVxdWVzdCk6CisgICAgICAgIHJldHVybiBDaWFvUmVzcG9uc2UoaGVsbG89J0NpYW8sICVzIScgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QubXlfbmFtZSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy90ZW1wbGF0ZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc291cmNlcy90ZW1wbGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDRkYThmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvcmVzb3VyY2VzL3RlbXBsYXRlLnB5CkBAIC0wLDAgKzEsMyBAQAorZGVmYXVsdF9jb25maWcgPSB7CisgICAgJ3RlbXBsYXRlc19kaXInOiAndGVtcGxhdGVzJywKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3Jlc3BvbnNlX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNwb25zZV90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMzk4NDQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yZXNwb25zZV90ZXN0LnB5CkBAIC0wLDAgKzEsMzMxIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHdlYmFwcDIKKworaW1wb3J0IHRlc3RfYmFzZQorCisKK2NsYXNzIE5vU3RyaW5nT3JVbmljb2RlQ29udmVyc2lvbihvYmplY3QpOgorICAgIHBhc3MKKworCitjbGFzcyBTdHJpbmdDb252ZXJzaW9uKG9iamVjdCk6CisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAnZm9vJy5lbmNvZGUoJ3V0Zi04JykKKworCitjbGFzcyBVbmljb2RlQ29udmVyc2lvbihvYmplY3QpOgorICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICdiYXInLmRlY29kZSgndXRmLTgnKQorCisKK2NsYXNzIFRlc3RSZXNwb25zZSh0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF93cml0ZShzZWxmKToKKyAgICAgICAgdmFyXzEgPSBOb1N0cmluZ09yVW5pY29kZUNvbnZlcnNpb24oKQorICAgICAgICB2YXJfMiA9IFN0cmluZ0NvbnZlcnNpb24oKQorICAgICAgICB2YXJfMyA9IFVuaWNvZGVDb252ZXJzaW9uKCkKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgcnNwLndyaXRlKHZhcl8xKQorICAgICAgICByc3Aud3JpdGUodmFyXzIpCisgICAgICAgIHJzcC53cml0ZSh2YXJfMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJyVyZm9vYmFyJyAlIHZhcl8xKQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICByc3Aud3JpdGUodmFyXzEpCisgICAgICAgIHJzcC53cml0ZSh2YXJfMykKKyAgICAgICAgcnNwLndyaXRlKHZhcl8yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnJXJiYXJmb28nICUgdmFyXzEpCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC53cml0ZSh2YXJfMikKKyAgICAgICAgcnNwLndyaXRlKHZhcl8xKQorICAgICAgICByc3Aud3JpdGUodmFyXzMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdmb28lcmJhcicgJSB2YXJfMSkKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgcnNwLndyaXRlKHZhcl8yKQorICAgICAgICByc3Aud3JpdGUodmFyXzMpCisgICAgICAgIHJzcC53cml0ZSh2YXJfMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJ2Zvb2JhciVyJyAlIHZhcl8xKQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICByc3Aud3JpdGUodmFyXzMpCisgICAgICAgIHJzcC53cml0ZSh2YXJfMSkKKyAgICAgICAgcnNwLndyaXRlKHZhcl8yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnYmFyJXJmb28nICUgdmFyXzEpCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC53cml0ZSh2YXJfMykKKyAgICAgICAgcnNwLndyaXRlKHZhcl8yKQorICAgICAgICByc3Aud3JpdGUodmFyXzEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdiYXJmb28lcicgJSB2YXJfMSkKKworICAgIGRlZiB0ZXN0X3dyaXRlMihzZWxmKToKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC5jaGFyc2V0ID0gTm9uZQorICAgICAgICByc3Aud3JpdGUodSdmb28nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksIHUnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuY2hhcnNldCwgJ3V0Zi04JykKKworICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmKToKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzLCAnMjAwIE9LJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfbWVzc2FnZSwgJ09LJykKKworICAgICAgICByc3Auc3RhdHVzID0gdScyMDAgT0snCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1cywgJzIwMCBPSycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDIwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX21lc3NhZ2UsICdPSycpCisKKyAgICAgICAgcnNwLnN0YXR1c19tZXNzYWdlID0gJ1dlZWUnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1cywgJzIwMCBXZWVlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfbWVzc2FnZSwgJ1dlZWUnKQorCisgICAgICAgIHJzcC5zdGF0dXMgPSA0MDQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzLCAnNDA0IE5vdCBGb3VuZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDQwNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX21lc3NhZ2UsICdOb3QgRm91bmQnKQorCisgICAgICAgIHJzcC5zdGF0dXMgPSAnNDAzIFdvb28nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1cywgJzQwMyBXb29vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgNDAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfbWVzc2FnZSwgJ1dvb28nKQorCisgICAgICAgIHJzcC5zdGF0dXNfaW50ID0gNTAwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1cywgJzUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCA1MDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19tZXNzYWdlLCAnSW50ZXJuYWwgU2VydmVyIEVycm9yJykKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHJzcC5fc2V0X3N0YXR1cywgKCkpCisKKyAgICBkZWYgdGVzdF9oYXNfZXJyb3Ioc2VsZik6CisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJzcC5oYXNfZXJyb3IoKSkKKyAgICAgICAgcnNwLnN0YXR1cyA9IDQwMAorICAgICAgICBzZWxmLmFzc2VydFRydWUocnNwLmhhc19lcnJvcigpKQorICAgICAgICByc3Auc3RhdHVzID0gNDA0CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyc3AuaGFzX2Vycm9yKCkpCisgICAgICAgIHJzcC5zdGF0dXMgPSA1MDAKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJzcC5oYXNfZXJyb3IoKSkKKyAgICAgICAgcnNwLnN0YXR1cyA9IDIwMAorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJzcC5oYXNfZXJyb3IoKSkKKyAgICAgICAgcnNwLnN0YXR1cyA9IDMwMgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJzcC5oYXNfZXJyb3IoKSkKKworICAgIGRlZiB0ZXN0X3dzZ2lfd3JpdGUoc2VsZik6CisgICAgICAgIHJlcyA9IFtdCisKKyAgICAgICAgZGVmIHdyaXRlKHN0YXR1cywgaGVhZGVycywgYm9keSk6CisgICAgICAgICAgICByZXR1cm4gcmVzLmV4dGVuZChbc3RhdHVzLCBoZWFkZXJzLCBib2R5XSkKKworICAgICAgICBkZWYgc3RhcnRfcmVzcG9uc2Uoc3RhdHVzLCBoZWFkZXJzKToKKyAgICAgICAgICAgIHJldHVybiBsYW1iZGEgYm9keTogd3JpdGUoc3RhdHVzLCBoZWFkZXJzLCBib2R5KQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoYm9keT0nUGFnZSBub3QgZm91bmQhJywgc3RhdHVzPTQwNCkKKyAgICAgICAgcnNwLndzZ2lfd3JpdGUoc3RhcnRfcmVzcG9uc2UpCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZShzdGF0dXM9cmVzWzBdLCBib2R5PXJlc1syXSwgaGVhZGVycz1yZXNbMV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1cywgJzQwNCBOb3QgRm91bmQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnUGFnZSBub3QgZm91bmQhJykKKworICAgICAgICAnJycKKyAgICAgICAgIyB3ZWJvYiA+PSAxLjAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIFsKKyAgICAgICAgICAgICc0MDQgTm90IEZvdW5kJywKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnKSwKKyAgICAgICAgICAgICAgICAoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUnKSwKKyAgICAgICAgICAgICAgICAoJ0V4cGlyZXMnLCAnRnJpLCAwMSBKYW4gMTk5MCAwMDowMDowMCBHTVQnKSwKKyAgICAgICAgICAgICAgICAoJ0NvbnRlbnQtTGVuZ3RoJywgJzE1JykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnUGFnZSBub3QgZm91bmQhJworICAgICAgICBdKQorICAgICAgICAnJycKKworICAgIGRlZiB0ZXN0X2dldF9hbGwoc2VsZik6CisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICByc3AuaGVhZGVycy5hZGQoJ1NldC1Db29raWUnLCAnZm9vPWJhcjsnKQorICAgICAgICByc3AuaGVhZGVycy5hZGQoJ1NldC1Db29raWUnLCAnYmF6PWRpbmc7JykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzLmdldF9hbGwoJ3NldC1jb29raWUnKSwKKyAgICAgICAgICAgIFsnZm9vPWJhcjsnLCAnYmF6PWRpbmc7J10pCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC5oZWFkZXJzID0geydTZXQtQ29va2llJzogJ2Zvbz1iYXI7J30KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVycy5nZXRfYWxsKCdzZXQtY29va2llJyksIFsnZm9vPWJhcjsnXSkKKworICAgIGRlZiB0ZXN0X2FkZF9oZWFkZXIoc2VsZik6CisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICByc3AuaGVhZGVycy5hZGRfaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uJywgJ2F0dGFjaG1lbnQnLAorICAgICAgICAgICAgZmlsZW5hbWU9J2J1ZC5naWYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzLmdldCgnY29udGVudC1kaXNwb3NpdGlvbicpLAorICAgICAgICAgICAgJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPSJidWQuZ2lmIicpCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC5oZWFkZXJzLmFkZF9oZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb24nLCAnYXR0YWNobWVudCcsCisgICAgICAgICAgICBmaWxlbmFtZT1Ob25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzLmdldCgnY29udGVudC1kaXNwb3NpdGlvbicpLAorICAgICAgICAgICAgJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lJykKKworICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgcnNwLmhlYWRlcnMuYWRkX2hlYWRlcignU2V0LUNvb2tpZScsICcnLCBmb289JycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnMuZ2V0X2FsbCgnc2V0LWNvb2tpZScpLCBbJzsgZm9vJ10pCisKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC5oZWFkZXJzLmFkZF9oZWFkZXIoJ1NldC1Db29raWUnLCAnJywgZm9vPSc7JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuaGVhZGVycy5nZXRfYWxsKCdzZXQtY29va2llJyksIFsnOyBmb289IjsiJ10pCisKKyAgICAjIFRlc3RzIGZyb20gUHl0aG9uIHNvdXJjZTogd3NnaXJlZi5oZWFkZXJzLkhlYWRlcnMKKyAgICBkZWYgdGVzdF9oZWFkZXJzX01hcHBpbmdJbnRlcmZhY2Uoc2VsZik6CisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICB0ZXN0ID0gWygneCcsJ3knKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocnNwLmhlYWRlcnMpLCAzKQorICAgICAgICByc3AuaGVhZGVycyA9IHRlc3RbOl0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocnNwLmhlYWRlcnMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzLmtleXMoKSwgWyd4J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnMudmFsdWVzKCksIFsneSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5oZWFkZXJzLml0ZW1zKCksIHRlc3QpCisgICAgICAgIHJzcC5oZWFkZXJzID0gdGVzdAorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJzcC5oZWFkZXJzLml0ZW1zKCkgaXMgdGVzdCkgICMgbXVzdCBiZSBjb3B5IQorCisgICAgICAgIHJzcCA9IHdlYmFwcDIuUmVzcG9uc2UoKQorICAgICAgICBoID0gcnNwLmhlYWRlcnMKKyAgICAgICAgIyB0aGlzIGRvZXNuJ3QgcmFpc2UgYW4gZXJyb3IgaW4gd3NnaXJlZi5oZWFkZXJzLkhlYWRlcnMKKyAgICAgICAgIyBkZWwgaFsnZm9vJ10KKworICAgICAgICBoWydGb28nXSA9ICdiYXInCisgICAgICAgIGZvciBtIGluIGguaGFzX2tleSwgaC5fX2NvbnRhaW5zX18sIGguZ2V0LCBoLmdldF9hbGwsIGguX19nZXRpdGVtX186CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobSgnZm9vJykpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobSgnRm9vJykpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobSgnRk9PJykpCisgICAgICAgICAgICAjIHRoaXMgZG9lc24ndCByYWlzZSBhbiBlcnJvciBpbiB3c2dpcmVmLmhlYWRlcnMuSGVhZGVycworICAgICAgICAgICAgIyBzZWxmLmFzc2VydEZhbHNlKG0oJ2JhcicpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaFsnZm9vJ10sJ2JhcicpCisgICAgICAgIGhbJ2ZvbyddID0gJ2JheicKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoWydGT08nXSwnYmF6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmdldF9hbGwoJ2ZvbycpLFsnYmF6J10pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmdldCgiZm9vIiwid2hlZSIpLCAiYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmdldCgiem9vIiwid2hlZSIpLCAid2hlZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5zZXRkZWZhdWx0KCJmb28iLCJ3aGVlIiksICJiYXoiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguc2V0ZGVmYXVsdCgiem9vIiwid2hlZSIpLCAid2hlZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaFsiZm9vIl0sImJheiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaFsiem9vIl0sIndoZWUiKQorCisgICAgZGVmIHRlc3RfaGVhZGVyc19SZXF1aXJlTGlzdChzZWxmKToKKyAgICAgICAgZGVmIHNldF9oZWFkZXJzKCk6CisgICAgICAgICAgICByc3AgPSB3ZWJhcHAyLlJlc3BvbnNlKCkKKyAgICAgICAgICAgIHJzcC5oZWFkZXJzID0gJ2ZvbycKKyAgICAgICAgICAgIHJldHVybiByc3AuaGVhZGVycworCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0X2hlYWRlcnMpCisKKyAgICBkZWYgdGVzdF9oZWFkZXJzX0V4dHJhcyhzZWxmKToKKyAgICAgICAgcnNwID0gd2ViYXBwMi5SZXNwb25zZSgpCisgICAgICAgIHJzcC5oZWFkZXJzID0gW10KKyAgICAgICAgaCA9IHJzcC5oZWFkZXJzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGgpLCdcclxuJykKKworICAgICAgICBoLmFkZF9oZWFkZXIoJ2ZvbycsJ2JhcicsYmF6PSJzcGFtIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoWydmb28nXSwgJ2JhcjsgYmF6PSJzcGFtIicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGgpLCdmb286IGJhcjsgYmF6PSJzcGFtIlxyXG5cclxuJykKKworICAgICAgICBoLmFkZF9oZWFkZXIoJ0ZvbycsJ2JhcicsY2hlZXNlPU5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5nZXRfYWxsKCdmb28nKSwKKyAgICAgICAgICAgIFsnYmFyOyBiYXo9InNwYW0iJywgJ2JhcjsgY2hlZXNlJ10pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaCksCisgICAgICAgICAgICAnZm9vOiBiYXI7IGJhej0ic3BhbSJcclxuJworICAgICAgICAgICAgJ0ZvbzogYmFyOyBjaGVlc2VcclxuJworICAgICAgICAgICAgJ1xyXG4nCisgICAgICAgICkKKworCitjbGFzcyBUZXN0UmV0dXJuUmVzcG9uc2UodGVzdF9iYXNlLkJhc2VUZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfZnVuY3Rpb25fdGhhdF9yZXR1cm5zX3Jlc3BvbnNlKHNlbGYpOgorICAgICAgICBkZWYgbXlmdW5jdGlvbihyZXF1ZXN0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgcmV0dXJuIHdlYmFwcDIuUmVzcG9uc2UoJ0hlbGxvLCBjdXN0b20gcmVzcG9uc2Ugd29ybGQhJykKKworICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICAgICAoJy8nLCBteWZ1bmN0aW9uKSwKKyAgICAgICAgXSkKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnSGVsbG8sIGN1c3RvbSByZXNwb25zZSB3b3JsZCEnKQorCisgICAgZGVmIHRlc3RfZnVuY3Rpb25fdGhhdF9yZXR1cm5zX3N0cmluZyhzZWxmKToKKyAgICAgICAgZGVmIG15ZnVuY3Rpb24ocmVxdWVzdCwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiAnSGVsbG8sIGN1c3RvbSByZXNwb25zZSB3b3JsZCEnCisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgKCcvJywgbXlmdW5jdGlvbiksCisgICAgICAgIF0pCisKKyAgICAgICAgZGVmIGN1c3RvbV9kaXNwYXRjaGVyKHJvdXRlciwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAgICAgcmVzcG9uc2Vfc3RyID0gcm91dGVyLmRlZmF1bHRfZGlzcGF0Y2hlcihyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmFwcC5yZXNwb25zZV9jbGFzcyhyZXNwb25zZV9zdHIpCisKKyAgICAgICAgYXBwLnJvdXRlci5zZXRfZGlzcGF0Y2hlcihjdXN0b21fZGlzcGF0Y2hlcikKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnSGVsbG8sIGN1c3RvbSByZXNwb25zZSB3b3JsZCEnKQorCisgICAgZGVmIHRlc3RfZnVuY3Rpb25fdGhhdF9yZXR1cm5zX3R1cGxlKHNlbGYpOgorICAgICAgICBkZWYgbXlmdW5jdGlvbihyZXF1ZXN0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgcmV0dXJuICdIZWxsbywgY3VzdG9tIHJlc3BvbnNlIHdvcmxkIScsIDQwNAorCisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgICAgICgnLycsIG15ZnVuY3Rpb24pLAorICAgICAgICBdKQorCisgICAgICAgIGRlZiBjdXN0b21fZGlzcGF0Y2hlcihyb3V0ZXIsIHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgICAgIHJlc3BvbnNlX3R1cGxlID0gcm91dGVyLmRlZmF1bHRfZGlzcGF0Y2hlcihyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmFwcC5yZXNwb25zZV9jbGFzcygqcmVzcG9uc2VfdHVwbGUpCisKKyAgICAgICAgYXBwLnJvdXRlci5zZXRfZGlzcGF0Y2hlcihjdXN0b21fZGlzcGF0Y2hlcikKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgNDA0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnSGVsbG8sIGN1c3RvbSByZXNwb25zZSB3b3JsZCEnKQorCisgICAgZGVmIHRlc3RfaGFuZGxlX2V4Y2VwdGlvbl90aGF0X3JldHVybnNfcmVzcG9uc2Uoc2VsZik6CisgICAgICAgIGNsYXNzIEhvbWVIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICAgICAgZGVmIGdldChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCkKKworICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICAgICB3ZWJhcHAyLlJvdXRlKCcvJywgSG9tZUhhbmRsZXIsIG5hbWU9J2hvbWUnKSwKKyAgICAgICAgXSkKKyAgICAgICAgYXBwLmVycm9yX2hhbmRsZXJzWzUwMF0gPSAncmVzb3VyY2VzLmhhbmRsZXJzLmhhbmRsZV9leGNlcHRpb24nCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDIwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJ0hlbGxvLCBjdXN0b20gcmVzcG9uc2Ugd29ybGQhJykKKworICAgIGRlZiB0ZXN0X3JldHVybl9pc19ub3Rfd3NnaV9hcHAoc2VsZik6CisgICAgICAgIGNsYXNzIEhvbWVIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICAgICAgZGVmIGdldChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnCisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgd2ViYXBwMi5Sb3V0ZSgnLycsIEhvbWVIYW5kbGVyLCBuYW1lPSdob21lJyksCisgICAgICAgIF0sIGRlYnVnPUZhbHNlKQorCisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCA1MDApCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X2Jhc2UubWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yb3V0aW5nX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy9yb3V0aW5nX3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY4ZGU0YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3JvdXRpbmdfdGVzdC5weQpAQCAtMCwwICsxLDMxNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCByYW5kb20KKworaW1wb3J0IHdlYmFwcDIKK2Zyb20gd2ViYXBwMiBpbXBvcnQgQmFzZVJvdXRlLCBSZWRpcmVjdEhhbmRsZXIsIFJlcXVlc3QsIFJvdXRlLCBSb3V0ZXIKKworaW1wb3J0IHRlc3RfYmFzZQorCisKK2NsYXNzIFRlc3RSb3V0ZSh0ZXN0X2Jhc2UuQmFzZVRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9ub192YXJpYWJsZShzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy9oZWxsbycsIE5vbmUpCisgICAgICAgIHJvdXRlLCBhcmdzLCBrd2FyZ3MgPSByb3V0ZS5tYXRjaChSZXF1ZXN0LmJsYW5rKCcvaGVsbG8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrd2FyZ3MsIHt9KQorICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvaGVsbG8nKQorCisgICAgICAgIHJvdXRlID0gUm91dGUocicvaGVsbG8vd29ybGQvJywgTm9uZSkKKyAgICAgICAgcm91dGUsIGFyZ3MsIGt3YXJncyA9IHJvdXRlLm1hdGNoKFJlcXVlc3QuYmxhbmsoJy9oZWxsby93b3JsZC8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrd2FyZ3MsIHt9KQorICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvaGVsbG8vd29ybGQvJykKKworICAgIGRlZiB0ZXN0X3JlcGV0aXRpb25fb3BlcmF0b3Ioc2VsZik6CisgICAgICAgIHJvdXRlID0gUm91dGUocicvPDpcZD4nLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlLm1hdGNoKFJlcXVlc3QuYmxhbmsoJy8xJykpLCAocm91dGUsICgnMScsKSwge30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlLm1hdGNoKFJlcXVlc3QuYmxhbmsoJy8yJykpLCAocm91dGUsICgnMicsKSwge30pKQorCisgICAgICAgIHJvdXRlID0gUm91dGUocicvPDpcZHsyLDN9PicsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUubWF0Y2goUmVxdWVzdC5ibGFuaygnLzExJykpLCAocm91dGUsICgnMTEnLCksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZS5tYXRjaChSZXF1ZXN0LmJsYW5rKCcvMTExJykpLCAocm91dGUsICgnMTExJywpLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUubWF0Y2goUmVxdWVzdC5ibGFuaygnLzExMTEnKSksIE5vbmUpCisKKyAgICBkZWYgdGVzdF91bm5hbWVkX3ZhcmlhYmxlKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKHInLzw6XGR7NH0+JywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZS5tYXRjaChSZXF1ZXN0LmJsYW5rKCcvMjAxMCcpKSwgKHJvdXRlLCAoJzIwMTAnLCksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZS5tYXRjaChSZXF1ZXN0LmJsYW5rKCcvYWFhYScpKSwgTm9uZSkKKworICAgICAgICByb3V0ZSA9IFJvdXRlKHInLzw6XGR7Mn0+Ljw6XGR7Mn0+JywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZS5tYXRjaChSZXF1ZXN0LmJsYW5rKCcvOTguOTknKSksIChyb3V0ZSwgKCc5OCcsICc5OScpLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUubWF0Y2goUmVxdWVzdC5ibGFuaygnL2FhLmFhJykpLCBOb25lKQorCisgICAgICAgIHJvdXRlID0gUm91dGUocicvPDpcZHsyfT4uPDpcZHsyfT4vPGZvbz4nLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlLm1hdGNoKFJlcXVlc3QuYmxhbmsoJy85OC45OS90ZXN0JykpLCAocm91dGUsICgnOTgnLCAnOTknKSwgeydmb28nOiAndGVzdCd9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZS5tYXRjaChSZXF1ZXN0LmJsYW5rKCcvYWEuYWEvdGVzdCcpKSwgTm9uZSkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV92YXJpYWJsZShzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88Zm9vPicsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUubWF0Y2goUmVxdWVzdC5ibGFuaygnL2JhcicpKSwgKHJvdXRlLCAoKSwgeydmb28nOiAnYmFyJ30pKQorICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgpLCBkaWN0KGZvbz0nYmF6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXJsLCAnL2JheicpCisKKyAgICBkZWYgdGVzdF9leHByX3ZhcmlhYmxlKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKHInLzx5ZWFyOlxkezR9PicsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUubWF0Y2goUmVxdWVzdC5ibGFuaygnL2JhcicpKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZS5tYXRjaChSZXF1ZXN0LmJsYW5rKCcvMjAxMCcpKSwgKHJvdXRlLCAoKSwgeyd5ZWFyJzogJzIwMTAnfSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUubWF0Y2goUmVxdWVzdC5ibGFuaygnLzE5MDAnKSksIChyb3V0ZSwgKCksIHsneWVhcic6ICcxOTAwJ30pKQorICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgpLCBkaWN0KHllYXI9JzIwMTAnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvMjAxMCcpCisKKyAgICBkZWYgdGVzdF9leHByX3ZhcmlhYmxlMihzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88eWVhcjpcZHs0fT4vZm9vLycsIE5vbmUpCisgICAgICAgIHVybCA9IHJvdXRlLmJ1aWxkKFJlcXVlc3QuYmxhbmsoJy8nKSwgKCksIGRpY3QoeWVhcj0nMjAxMCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVybCwgJy8yMDEwL2Zvby8nKQorCisgICAgZGVmIHRlc3RfYnVpbGRfbWlzc2luZ19hcmd1bWVudChzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88OlxkezR9PicsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCByb3V0ZS5idWlsZCwgUmVxdWVzdC5ibGFuaygnLycpLCAoKSwge30pCisKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88OlxkezR9Pi88OlxkezJ9PicsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCByb3V0ZS5idWlsZCwgUmVxdWVzdC5ibGFuaygnLycpLCAoMjAxMCwpLCB7fSkKKworICAgIGRlZiB0ZXN0X2J1aWxkX2ludmFsaWRfYXJndW1lbnQoc2VsZik6CisgICAgICAgIHJvdXRlID0gUm91dGUocicvPDpcZHs0fT4nLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCByb3V0ZS5idWlsZCwgUmVxdWVzdC5ibGFuaygnLycpLCAoJzIwMTAwJywpLCB7fSkKKworICAgIGRlZiB0ZXN0X2J1aWxkX2ludmFsaWRfYXJndW1lbnQyKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKHInLzw6XGR7NH0+JywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcm91dGUuYnVpbGQsIFJlcXVlc3QuYmxhbmsoJy8nKSwgKCcyMDFhJywpLCB7fSkKKworICAgIGRlZiB0ZXN0X2J1aWxkX21pc3Npbmdfa2V5d29yZChzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88eWVhcjpcZHs0fT4nLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgcm91dGUuYnVpbGQsIFJlcXVlc3QuYmxhbmsoJy8nKSwgKCksIHt9KQorCisgICAgZGVmIHRlc3RfYnVpbGRfbWlzc2luZ19rZXl3b3JkMihzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88eWVhcjpcZHs0fT4vPG1vbnRoOlxkezJ9PicsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCByb3V0ZS5idWlsZCwgUmVxdWVzdC5ibGFuaygnLycpLCAoKSwgZGljdCh5ZWFyPScyMDEwJykpCisKKyAgICBkZWYgdGVzdF9idWlsZF9pbnZhbGlkX2tleXdvcmQoc2VsZik6CisgICAgICAgIHJvdXRlID0gUm91dGUocicvPHllYXI6XGR7NH0+JywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcm91dGUuYnVpbGQsIFJlcXVlc3QuYmxhbmsoJy8nKSwgKCksIGRpY3QoeWVhcj0nMjAxMDAnKSkKKworICAgIGRlZiB0ZXN0X2J1aWxkX2ludmFsaWRfa2V5d29yZDIoc2VsZik6CisgICAgICAgIHJvdXRlID0gUm91dGUocicvPHllYXI6XGR7NH0+JywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcm91dGUuYnVpbGQsIFJlcXVlc3QuYmxhbmsoJy8nKSwgKCksIGRpY3QoeWVhcj0nMjAxYScpKQorCisgICAgZGVmIHRlc3RfYnVpbGRfd2l0aF91bm5hbWVkX3ZhcmlhYmxlKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKHInLzw6XGR7NH0+Lzxtb250aDpcZHsyfT4nLCBOb25lKQorCisgICAgICAgIHVybCA9IHJvdXRlLmJ1aWxkKFJlcXVlc3QuYmxhbmsoJy8nKSwgKDIwMTAsKSwgZGljdChtb250aD0xMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXJsLCAnLzIwMTAvMTAnKQorCisgICAgICAgIHVybCA9IHJvdXRlLmJ1aWxkKFJlcXVlc3QuYmxhbmsoJy8nKSwgKCcxOTk5JywpLCBkaWN0KG1vbnRoPScwNycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVybCwgJy8xOTk5LzA3JykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2RlZmF1bHRfa2V5d29yZChzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88eWVhcjpcZHs0fT4vPG1vbnRoOlxkezJ9PicsIE5vbmUsCisgICAgICAgICAgICBkZWZhdWx0cz17J21vbnRoJzogMTB9KQorICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgpLCBkaWN0KHllYXI9JzIwMTAnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvMjAxMC8xMCcpCisKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy88eWVhcjpcZHs0fT4vPG1vbnRoOlxkezJ9PicsIE5vbmUsCisgICAgICAgICAgICBkZWZhdWx0cz17J3llYXInOiAxOTAwfSkKKyAgICAgICAgdXJsID0gcm91dGUuYnVpbGQoUmVxdWVzdC5ibGFuaygnLycpLCAoKSwgZGljdChtb250aD0nMDcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvMTkwMC8wNycpCisKKyAgICBkZWYgdGVzdF9idWlsZF9leHRyYV9rZXl3b3JkKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKHInLzx5ZWFyOlxkezR9PicsIE5vbmUpCisgICAgICAgIHVybCA9IHJvdXRlLmJ1aWxkKFJlcXVlc3QuYmxhbmsoJy8nKSwgKCksIGRpY3QoeWVhcj0nMjAxMCcsIGZvbz0nYmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXJsLCAnLzIwMTA/Zm9vPWJhcicpCisgICAgICAgICMgQXJndW1lbnRzIGFyZSBzb3J0ZWQuCisgICAgICAgIHVybCA9IHJvdXRlLmJ1aWxkKFJlcXVlc3QuYmxhbmsoJy8nKSwgKCksIGRpY3QoeWVhcj0nMjAxMCcsIGZvbz0nYmFyJywgYmF6PSdkaW5nJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXJsLCAnLzIwMTA/YmF6PWRpbmcmZm9vPWJhcicpCisKKyAgICBkZWYgdGVzdF9idWlsZF9leHRyYV9wb3NpdGlvbmFsX2tleXdvcmQoc2VsZik6CisgICAgICAgIHJvdXRlID0gUm91dGUocicvPHllYXI6XGR7NH0+Lzw6XGR7Mn0+JywgTm9uZSkKKworICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgnMDgnLCAnaS1zaG91bGQtYmUtaWdub3JlZCcsICdtZS10b28nKSwgZGljdCh5ZWFyPScyMDEwJywgZm9vPSdiYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvMjAxMC8wOD9mb289YmFyJykKKworICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgnMDgnLCAnaS1zaG91bGQtYmUtaWdub3JlZCcsICdtZS10b28nKSwgZGljdCh5ZWFyPScyMDEwJywgZm9vPSdiYXInLCBiYXo9J2RpbmcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvMjAxMC8wOD9iYXo9ZGluZyZmb289YmFyJykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2ludF9rZXl3b3JkKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKHInLzx5ZWFyOlxkezR9PicsIE5vbmUpCisgICAgICAgIHVybCA9IHJvdXRlLmJ1aWxkKFJlcXVlc3QuYmxhbmsoJy8nKSwgKCksIGRpY3QoeWVhcj0yMDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICcvMjAxMCcpCisKKyAgICBkZWYgdGVzdF9idWlsZF9pbnRfdmFyaWFibGUoc2VsZik6CisgICAgICAgIHJvdXRlID0gUm91dGUocicvPDpcZHs0fT4nLCBOb25lKQorICAgICAgICB1cmwgPSByb3V0ZS5idWlsZChSZXF1ZXN0LmJsYW5rKCcvJyksICgyMDEwLCksIHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVybCwgJy8yMDEwJykKKworICAgIGRlZiB0ZXN0X3JvdXRlcl9idWlsZF9lcnJvcihzZWxmKToKKyAgICAgICAgcm91dGVyID0gUm91dGVyKE5vbmUpCisgICAgICAgIHJvdXRlci5hZGQoUm91dGUoJy88eWVhcjpcZHs0fT4nLCBOb25lLCBuYW1lPSd5ZWFyLXBhZ2UnKSkKKworICAgICAgICB1cmwgPSByb3V0ZXIuYnVpbGQoUmVxdWVzdC5ibGFuaygnLycpLCAneWVhci1wYWdlJywgKCksIGRpY3QoeWVhcj0nMjAxMCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVybCwgJy8yMDEwJykKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgcm91dGVyLmJ1aWxkLCBSZXF1ZXN0LmJsYW5rKCcvJyksICdpLWRvbnQtZXhpc3QnLCAoKSwgZGljdCh5ZWFyPScyMDEwJykpCisKKyAgICBkZWYgdGVzdF9yZXZlcnNlX3RlbXBsYXRlKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKCcvZm9vJywgTm9uZSkKKyAgICAgICAgIyBBY2Nlc3Mgcm91dGUucmVnZXgganVzdCB0byBzZXQgdGhlIGxhenkgcHJvcGVydGllcy4KKyAgICAgICAgcmVnZXggPSByb3V0ZS5yZWdleAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlLnJldmVyc2VfdGVtcGxhdGUsICcvZm9vJykKKworICAgICAgICByb3V0ZSA9IFJvdXRlKCcvZm9vLzxiYXI+JywgTm9uZSkKKyAgICAgICAgIyBBY2Nlc3Mgcm91dGUucmVnZXgganVzdCB0byBzZXQgdGhlIGxhenkgcHJvcGVydGllcy4KKyAgICAgICAgcmVnZXggPSByb3V0ZS5yZWdleAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlLnJldmVyc2VfdGVtcGxhdGUsICcvZm9vLyUoYmFyKXMnKQorCisgICAgICAgIHJvdXRlID0gUm91dGUoJy9mb28vPGJhcj4vPGJhejpcZD4nLCBOb25lKQorICAgICAgICAjIEFjY2VzcyByb3V0ZS5yZWdleCBqdXN0IHRvIHNldCB0aGUgbGF6eSBwcm9wZXJ0aWVzLgorICAgICAgICByZWdleCA9IHJvdXRlLnJlZ2V4CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUucmV2ZXJzZV90ZW1wbGF0ZSwgJy9mb28vJShiYXIpcy8lKGJheilzJykKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfdGVtcGxhdGUoc2VsZik6CisgICAgICAgICMgVG8gYnJlYWsgaXQ6CisgICAgICAgICMgPD5mb286PjxiYXI8OmJhej4KKyAgICAgICAgcm91dGUgPSBSb3V0ZSgnLzxmb28vPDpiYXInLCBOb25lKQorICAgICAgICAjIEFjY2VzcyByb3V0ZS5yZWdleCBqdXN0IHRvIHNldCB0aGUgbGF6eSBwcm9wZXJ0aWVzLgorICAgICAgICByZWdleCA9IHJvdXRlLnJlZ2V4CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91dGUucmV2ZXJzZV90ZW1wbGF0ZSwgJy88Zm9vLzw6YmFyJykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2Z1bGxfd2l0aG91dF9yZXF1ZXN0KHNlbGYpOgorICAgICAgICByb3V0ZXIgPSBSb3V0ZXIoTm9uZSkKKyAgICAgICAgcm91dGVyLmFkZChSb3V0ZShyJy9oZWxsbycsIE5vbmUsIG5hbWU9J2hlbGxvJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCByb3V0ZXIuYnVpbGQsIE5vbmUsICdoZWxsbycsICgpLCBkaWN0KF9mdWxsPVRydWUpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgcm91dGVyLmJ1aWxkLCBOb25lLCAnaGVsbG8nLCAoKSwgZGljdChfc2NoZW1lPSdodHRwcycpKQorCisgICAgZGVmIHRlc3RfcG9zaXRpb25zKHNlbGYpOgorICAgICAgICB0ZW1wbGF0ZSA9ICcvPDpcZCs+JyAqIDk4CisgICAgICAgIGFyZ3MgPSB0dXBsZShzdHIoaSkgZm9yIGkgaW4gcmFuZ2UoOTgpKQorICAgICAgICB1cmxfcmVzID0gJy8nICsgJy8nLmpvaW4oYXJncykKKworICAgICAgICByb3V0ZSA9IFJvdXRlKHRlbXBsYXRlLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlLm1hdGNoKFJlcXVlc3QuYmxhbmsodXJsX3JlcykpLCAocm91dGUsIGFyZ3MsIHt9KSkKKyAgICAgICAgdXJsID0gcm91dGUuYnVpbGQoUmVxdWVzdC5ibGFuaygnLycpLCBhcmdzLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmxfcmVzLCB1cmwpCisKKyAgICAgICAgYXJncyA9IFtzdHIoaSkgZm9yIGkgaW4gcmFuZ2UoMTAwMCldCisgICAgICAgIHJhbmRvbS5zaHVmZmxlKGFyZ3MpCisgICAgICAgIGFyZ3MgPSB0dXBsZShhcmdzWzo5OF0pCisgICAgICAgIHVybF9yZXMgPSAnLycgKyAnLycuam9pbihhcmdzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdXRlLm1hdGNoKFJlcXVlc3QuYmxhbmsodXJsX3JlcykpLCAocm91dGUsIGFyZ3MsIHt9KSkKKyAgICAgICAgdXJsID0gcm91dGUuYnVpbGQoUmVxdWVzdC5ibGFuaygnLycpLCBhcmdzLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmxfcmVzLCB1cmwpCisKKyAgICBkZWYgdGVzdF9idWlsZF9vbmx5X3dpdGhvdXRfbmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUm91dGUsIHInLzxmb28+JywgTm9uZSwgYnVpbGRfb25seT1UcnVlKQorCisgICAgZGVmIHRlc3Rfcm91dGVfcmVwcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChSb3V0ZShyJy88Zm9vPicsIE5vbmUpLl9fcmVwcl9fKCksCisgICAgICAgICAgICAiPFJvdXRlKCcvPGZvbz4nLCBOb25lLCBuYW1lPU5vbmUsIGRlZmF1bHRzPXt9LCBidWlsZF9vbmx5PUZhbHNlKT4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFJvdXRlKHInLzxmb28+JywgTm9uZSwgbmFtZT0nYmFyJywgZGVmYXVsdHM9eydiYXonOiAnZGluZyd9LCBidWlsZF9vbmx5PVRydWUpLl9fcmVwcl9fKCksCisgICAgICAgICAgICAiPFJvdXRlKCcvPGZvbz4nLCBOb25lLCBuYW1lPSdiYXInLCBkZWZhdWx0cz17J2Jheic6ICdkaW5nJ30sIGJ1aWxkX29ubHk9VHJ1ZSk+IikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihSb3V0ZShyJy88Zm9vPicsIE5vbmUpKSwKKyAgICAgICAgICAgICI8Um91dGUoJy88Zm9vPicsIE5vbmUsIG5hbWU9Tm9uZSwgZGVmYXVsdHM9e30sIGJ1aWxkX29ubHk9RmFsc2UpPiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKFJvdXRlKHInLzxmb28+JywgTm9uZSwgbmFtZT0nYmFyJywgZGVmYXVsdHM9eydiYXonOiAnZGluZyd9LCBidWlsZF9vbmx5PVRydWUpKSwKKyAgICAgICAgICAgICI8Um91dGUoJy88Zm9vPicsIE5vbmUsIG5hbWU9J2JhcicsIGRlZmF1bHRzPXsnYmF6JzogJ2RpbmcnfSwgYnVpbGRfb25seT1UcnVlKT4iKQorCisgICAgZGVmIHRlc3Rfcm91dGVyX3JlcHIoc2VsZik6CisgICAgICAgIHJvdXRlciA9IFJvdXRlcihOb25lKQorICAgICAgICByb3V0ZXIuYWRkKFJvdXRlKHInL2hlbGxvJywgTm9uZSwgbmFtZT0naGVsbG8nLCBidWlsZF9vbmx5PVRydWUpKQorICAgICAgICByb3V0ZXIuYWRkKFJvdXRlKHInL3dvcmxkJywgTm9uZSkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3V0ZXIuX19yZXByX18oKSwgIjxSb3V0ZXIoWzxSb3V0ZSgnL3dvcmxkJywgTm9uZSwgbmFtZT1Ob25lLCBkZWZhdWx0cz17fSwgYnVpbGRfb25seT1GYWxzZSk+LCA8Um91dGUoJy9oZWxsbycsIE5vbmUsIG5hbWU9J2hlbGxvJywgZGVmYXVsdHM9e30sIGJ1aWxkX29ubHk9VHJ1ZSk+XSk+IikKKworICAgIGRlZiB0ZXN0X2Jhc2Vfcm91dGUoc2VsZik6CisgICAgICAgIHJvdXRlID0gQmFzZVJvdXRlKCdmb28nLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgcm91dGUubWF0Y2gsIE5vbmUpCisKKyAgICBkZWYgdGVzdF9zZXRfbWF0Y2hlcihzZWxmKToKKyAgICAgICAgcmVxID0gUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIGRlZiBjdXN0b21fbWF0Y2hlcihyb3V0ZXIsIHJlcXVlc3QpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LCByZXEpCisKKyAgICAgICAgcm91dGVyID0gUm91dGVyKE5vbmUpCisgICAgICAgIHJvdXRlci5zZXRfbWF0Y2hlcihjdXN0b21fbWF0Y2hlcikKKyAgICAgICAgcm91dGVyLm1hdGNoKHJlcSkKKworICAgIGRlZiB0ZXN0X3NldF9idWlsZGVyKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1ZXN0LmJsYW5rKCcvJykKKyAgICAgICAgZGVmIGN1c3RvbV9idWlsZGVyKHJvdXRlciwgcmVxdWVzdCwgbmFtZSwgYXJncywga3dhcmdzKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxdWVzdCwgcmVxKQorICAgICAgICAgICAgcmV0dXJuICdodHRwOi8vd3d3Lmdvb2dsZS5jb20nCisKKyAgICAgICAgcm91dGVyID0gUm91dGVyKE5vbmUpCisgICAgICAgIHJvdXRlci5zZXRfYnVpbGRlcihjdXN0b21fYnVpbGRlcikKKyAgICAgICAgcmVzID0gcm91dGVyLmJ1aWxkKHJlcSwgJycsICgpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsICdodHRwOi8vd3d3Lmdvb2dsZS5jb20nKQorCisgICAgZGVmIHRlc3Rfc2V0X2FkYXB0ZXIoc2VsZik6CisgICAgICAgIGRlZiBjdXN0b21fYWRhcHRlcihyb3V0ZXIsIGhhbmRsZXIpOgorICAgICAgICAgICAgY2xhc3MgTXlBZGFwdGVyKHdlYmFwcDIuQmFzZUhhbmRsZXJBZGFwdGVyKToKKyAgICAgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZS53cml0ZSgnaGVsbG8gbXkgYWRhcHRlcicpCisKKyAgICAgICAgICAgIHJldHVybiBNeUFkYXB0ZXIoaGFuZGxlcikKKworICAgICAgICBkZWYgbXloYW5kbGVyKHJlcXVlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICByZXR1cm4gd2ViYXBwMi5SZXNwb25zZSgnaGVsbG8nKQorCisgICAgICAgIGFwcCA9IHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uKFsoJy8nLCBteWhhbmRsZXIpXSkKKyAgICAgICAgYXBwLnJvdXRlci5zZXRfYWRhcHRlcihjdXN0b21fYWRhcHRlcikKKworICAgICAgICByc3AgPSBhcHAuZ2V0X3Jlc3BvbnNlKCcvJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnaGVsbG8gbXkgYWRhcHRlcicpCisKKyAgICBkZWYgdGVzdF9tZXRob2RzKHNlbGYpOgorICAgICAgICByb3V0ZSA9IFJvdXRlKHInLycsIG1ldGhvZHM9WydHRVQnLCAnUE9TVCddKQorICAgICAgICByb3V0ZXIgPSBSb3V0ZXIoW3JvdXRlXSkKKyAgICAgICAgcmVxID0gUmVxdWVzdC5ibGFuaygnLycpCisgICAgICAgIHJlcS5tZXRob2QgPSAnR0VUJworICAgICAgICBzZWxmLmFzc2VydFRydWUocm91dGVyLm1hdGNoKHJlcSkgaXMgbm90IE5vbmUpCisgICAgICAgIHJlcS5tZXRob2QgPSAnUE9TVCcKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJvdXRlci5tYXRjaChyZXEpIGlzIG5vdCBOb25lKQorICAgICAgICByZXEubWV0aG9kID0gJ1BVVCcKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMod2ViYXBwMi5leGMuSFRUUE1ldGhvZE5vdEFsbG93ZWQsIHJvdXRlci5tYXRjaCwgcmVxKQorCisgICAgZGVmIHRlc3Rfc2NoZW1lcyhzZWxmKToKKyAgICAgICAgcm91dGUgPSBSb3V0ZShyJy8nLCBzY2hlbWVzPVsnaHR0cCddKQorICAgICAgICByZXEgPSBSZXF1ZXN0LmJsYW5rKCdodHRwOi8vbXlkb21haW4uY29tLycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyb3V0ZS5tYXRjaChyZXEpIGlzIG5vdCBOb25lKQorICAgICAgICByZXEgPSBSZXF1ZXN0LmJsYW5rKCdodHRwczovL215ZG9tYWluLmNvbS8nKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocm91dGUubWF0Y2gocmVxKSBpcyBOb25lKQorCisgICAgICAgIHJvdXRlID0gUm91dGUocicvJywgc2NoZW1lcz1bJ2h0dHBzJ10pCisgICAgICAgIHJlcSA9IFJlcXVlc3QuYmxhbmsoJ2h0dHBzOi8vbXlkb21haW4uY29tLycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyb3V0ZS5tYXRjaChyZXEpIGlzIG5vdCBOb25lKQorICAgICAgICByZXEgPSBSZXF1ZXN0LmJsYW5rKCdodHRwOi8vbXlkb21haW4uY29tLycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyb3V0ZS5tYXRjaChyZXEpIGlzIE5vbmUpCisKKworY2xhc3MgVGVzdFNpbXBsZVJvdXRlKHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X25vX3ZhcmlhYmxlKHNlbGYpOgorICAgICAgICByb3V0ZXIgPSB3ZWJhcHAyLlJvdXRlcihbKHInLycsICdteV9oYW5kbGVyJyldKQorCisgICAgICAgIG1hdGNoZWRfcm91dGUsIGFyZ3MsIGt3YXJncyA9IHJvdXRlci5tYXRjaCh3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrd2FyZ3MsIHt9KQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX3ZhcmlhYmxlcyhzZWxmKToKKyAgICAgICAgcm91dGVyID0gd2ViYXBwMi5Sb3V0ZXIoWyhyJy8oXGR7NH0pLyhcZHsyfSknLCAnbXlfaGFuZGxlcicpXSkKKworICAgICAgICBtYXRjaGVkX3JvdXRlLCBhcmdzLCBrd2FyZ3MgPSByb3V0ZXIubWF0Y2god2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvMjAwNy8xMCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3MsICgnMjAwNycsICcxMCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGt3YXJncywge30pCisKKyAgICBkZWYgdGVzdF9idWlsZChzZWxmKToKKyAgICAgICAgcm91dGUgPSB3ZWJhcHAyLlNpbXBsZVJvdXRlKCcvJywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgcm91dGUuYnVpbGQsIE5vbmUsIE5vbmUsIE5vbmUpCisKKyAgICBkZWYgdGVzdF9yb3V0ZV9yZXByKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdlYmFwcDIuU2ltcGxlUm91dGUocicvPGZvbz4nLCBOb25lKS5fX3JlcHJfXygpLCAiPFNpbXBsZVJvdXRlKCcvPGZvbz4nLCBOb25lKT4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cih3ZWJhcHAyLlNpbXBsZVJvdXRlKHInLzxmb28+JywgTm9uZSkpLCAiPFNpbXBsZVJvdXRlKCcvPGZvbz4nLCBOb25lKT4iKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9iYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvdGVzdF9iYXNlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvdGVzdF9iYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YmQ5YWUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi90ZXN0cy90ZXN0X2Jhc2UucHkKQEAgLTAsMCArMSw4NiBAQAoraW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IHRlc3RiZWQKKworZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC5uZGIgaW1wb3J0IG1vZGVsCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0Lm5kYiBpbXBvcnQgdGFza2xldHMKKworaW1wb3J0IHdlYmFwcDIKKworCitkZWYgbWFpbigpOgorICAgIHVuaXR0ZXN0Lm1haW4oKQorCisKK2RlZiBjaGVja193ZWJvYl92ZXJzaW9uKG1pbmltdW1fdmVyc2lvbik6CisgICAgdHJ5OgorICAgICAgICAjIFdlYk9iIDwgMS4wIChBcHAgRW5naW5lIFNESykuCisgICAgICAgIGZyb20gd2Vib2Iuc3RhdHVzcmVhc29ucyBpbXBvcnQgc3RhdHVzX3JlYXNvbnMKKyAgICAgICAgZnJvbSB3ZWJvYi5oZWFkZXJkaWN0IGltcG9ydCBIZWFkZXJEaWN0CisgICAgICAgIHJldHVybiAwLjk2ID49IG1pbmltdW1fdmVyc2lvbgorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgIyBXZWJPYiA+PSAxLjAuCisgICAgICAgIGZyb20gd2Vib2IudXRpbCBpbXBvcnQgc3RhdHVzX3JlYXNvbnMKKyAgICAgICAgZnJvbSB3ZWJvYi5oZWFkZXJzIGltcG9ydCBSZXNwb25zZUhlYWRlcnMKKyAgICAgICAgcmV0dXJuIDEuMCA8PSBtaW5pbXVtX3ZlcnNpb24KKworCitjbGFzcyBCYXNlVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAiIiJTZXQgdXAgdGhlIHRlc3QgZnJhbWV3b3JrLgorCisgICAgICAgIFNlcnZpY2Ugc3R1YnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIGZvbGxvd2luZyBzZXJ2aWNlczoKKworICAgICAgICAtIERhdGFzdG9yZSAodXNlIGluaXRfZGF0YXN0b3JlX3YzX3N0dWIpCisgICAgICAgIC0gTWVtY2FjaGUgKHVzZSBpbml0X21lbWNhY2hlX3N0dWIpCisgICAgICAgIC0gVGFzayBRdWV1ZSAodXNlIGluaXRfdGFza3F1ZXVlX3N0dWIpCisgICAgICAgIC0gSW1hZ2VzIChvbmx5IGZvciBkZXZfYXBwc2VydmVyOyB1c2UgaW5pdF9pbWFnZXNfc3R1YikKKyAgICAgICAgLSBVUkwgZmV0Y2ggKHVzZSBpbml0X3VybGZldGNoX3N0dWIpCisgICAgICAgIC0gVXNlciBzZXJ2aWNlICh1c2UgaW5pdF91c2VyX3N0dWIpCisgICAgICAgIC0gWE1QUCAodXNlIGluaXRfeG1wcF9zdHViKQorICAgICAgICAiIiIKKyAgICAgICAgIyBGaXJzdCwgY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBUZXN0YmVkIGNsYXNzLgorICAgICAgICBzZWxmLnRlc3RiZWQgPSB0ZXN0YmVkLlRlc3RiZWQoKQorCisgICAgICAgICMgVGhlbiBhY3RpdmF0ZSB0aGUgdGVzdGJlZCwgd2hpY2ggcHJlcGFyZXMgdGhlIHNlcnZpY2Ugc3R1YnMgZm9yIHVzZS4KKyAgICAgICAgc2VsZi50ZXN0YmVkLmFjdGl2YXRlKCkKKworICAgICAgICAjIFRvIHNldCBjdXN0b20gZW52IHZhcnMsIHBhc3MgdGhlbSBhcyBrd2FyZ3MgKmFmdGVyKiBhY3RpdmF0ZSgpLgorICAgICAgICAjIHNlbGYuc2V0dXBfZW52KCkKKworICAgICAgICAjIE5leHQsIGRlY2xhcmUgd2hpY2ggc2VydmljZSBzdHVicyB5b3Ugd2FudCB0byB1c2UuCisgICAgICAgIHNlbGYudGVzdGJlZC5pbml0X2RhdGFzdG9yZV92M19zdHViKCkKKyAgICAgICAgc2VsZi50ZXN0YmVkLmluaXRfbWVtY2FjaGVfc3R1YigpCisgICAgICAgIHNlbGYudGVzdGJlZC5pbml0X3VzZXJfc3R1YigpCisKKyAgICAgICAgIyBPbmx5IHdoZW4gdGVzdGluZyBuZGIuCisgICAgICAgIHNlbGYucmVzZXRfa2luZF9tYXAoKQorICAgICAgICBzZWxmLnNldHVwX2NvbnRleHRfY2FjaGUoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIFRoaXMgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIHN0dWJzIHNvIHRoYXQgdGVzdHMgZG8gbm90IGludGVyZmVyZQorICAgICAgICAjIHdpdGggZWFjaCBvdGhlci4KKyAgICAgICAgc2VsZi50ZXN0YmVkLmRlYWN0aXZhdGUoKQorICAgICAgICAjIENsZWFyIHRocmVhZC1sb2NhbCB2YXJpYWJsZXMuCisgICAgICAgIHNlbGYuY2xlYXJfZ2xvYmFscygpCisKKyAgICBkZWYgcmVzZXRfa2luZF9tYXAoc2VsZik6CisgICAgICAgIG1vZGVsLk1vZGVsLl9yZXNldF9raW5kX21hcCgpCisKKyAgICBkZWYgc2V0dXBfY29udGV4dF9jYWNoZShzZWxmKToKKyAgICAgICAgIiIiU2V0IHVwIHRoZSBjb250ZXh0IGNhY2hlLgorCisgICAgICAgIFdlIG9ubHkgbmVlZCBjYWNoZSBhY3RpdmUgd2hlbiB0ZXN0aW5nIHRoZSBjYWNoZSwgc28gdGhlIGRlZmF1bHQKKyAgICAgICAgYmVoYXZpb3IgaXMgdG8gZGlzYWJsZSBpdCB0byBhdm9pZCBtaXNsZWFkaW5nIHRlc3QgcmVzdWx0cy4gT3ZlcnJpZGUKKyAgICAgICAgdGhpcyB3aGVuIG5lZWRlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGN0eCA9IHRhc2tsZXRzLmdldF9jb250ZXh0KCkKKyAgICAgICAgY3R4LnNldF9jYWNoZV9wb2xpY3koRmFsc2UpCisgICAgICAgIGN0eC5zZXRfbWVtY2FjaGVfcG9saWN5KEZhbHNlKQorCisgICAgZGVmIGNsZWFyX2dsb2JhbHMoc2VsZik6CisgICAgICAgIHdlYmFwcDIuX2xvY2FsLl9fcmVsZWFzZV9sb2NhbF9fKCkKKworICAgIGRlZiByZWdpc3Rlcl9tb2RlbChzZWxmLCBuYW1lLCBjbHMpOgorICAgICAgICBtb2RlbC5Nb2RlbC5fa2luZF9tYXBbbmFtZV0gPSBjbHMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3dlYmFwcDFfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3Rlc3RzL3dlYmFwcDFfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGZlMWU1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvdGVzdHMvd2ViYXBwMV90ZXN0LnB5CkBAIC0wLDAgKzEsMTI2IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgd2ViYXBwCisKK2ltcG9ydCB3ZWJhcHAyCisKK2ltcG9ydCB0ZXN0X2Jhc2UKKworCisjIE9sZCBXU0dJQXBwbGljYXRpb24sIG5ldyBSZXF1ZXN0SGFuZGxlci4KK2NsYXNzIE5ld1N0eWxlSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICBkZWYgZ2V0KHNlbGYsIHRleHQpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSh0ZXh0KQorCithcHAgPSB3ZWJhcHAuV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAocicvdGVzdC8oLiopJywgTmV3U3R5bGVIYW5kbGVyKSwKK10pCisKKyMgTmV3IFdTR0lBcHBsaWNhdGlvbiwgb2xkIFJlcXVlc3RIYW5kbGVyLgorY2xhc3MgT2xkU3R5bGVIYW5kbGVyKHdlYmFwcC5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmLCB0ZXh0KToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUodGV4dCkKKworY2xhc3MgT2xkU3R5bGVIYW5kbGVyMih3ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgorICAgIGRlZiBnZXQoc2VsZiwgdGV4dD1Ob25lKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUodGV4dCkKKworY2xhc3MgT2xkU3R5bGVIYW5kbGVyV2l0aEVycm9yKHdlYmFwcC5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmLCB0ZXh0KToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisKKyAgICBkZWYgaGFuZGxlX2V4Y2VwdGlvbihzZWxmLCBlLCBkZWJ1Zyk6CisgICAgICAgIHNlbGYucmVzcG9uc2Uuc2V0X3N0YXR1cyg1MDApCisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdWYWx1ZUVycm9yIScpCisKK2FwcDIgPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbihbCisgICAgKHInL3Rlc3QvZXJyb3InLCBPbGRTdHlsZUhhbmRsZXJXaXRoRXJyb3IpLAorICAgIChyJy90ZXN0LyguKiknLCBPbGRTdHlsZUhhbmRsZXIpLAorICAgIHdlYmFwcDIuUm91dGUocicvdGVzdDIvPHRleHQ+JywgT2xkU3R5bGVIYW5kbGVyMiksCitdKQorCisKK2NsYXNzIFRlc3RXZWJhcHAxKHRlc3RfYmFzZS5CYXNlVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X29sZF9hcHBfbmV3X2hhbmRsZXIoc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3Rlc3QvZm9vJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDIwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJ2ZvbycpCisKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvdGVzdC9iYXInKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnYmFyJykKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhPbGRTdHlsZUhhbmRsZXIsIHdlYmFwcC5SZXF1ZXN0SGFuZGxlcikpCisKKyAgICBkZWYgdGVzdF9uZXdfYXBwX29sZF9oYW5kbGVyKHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy90ZXN0L2ZvbycpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnZm9vJykKKworICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy90ZXN0L2JhcicpCisgICAgICAgIHJzcCA9IHJlcS5nZXRfcmVzcG9uc2UoYXBwMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3Auc3RhdHVzX2ludCwgMjAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5ib2R5LCAnYmFyJykKKworICAgIGRlZiB0ZXN0X25ld19hcHBfb2xkX2hhbmRsZXJfNDA1KHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy90ZXN0L2ZvbycpCisgICAgICAgIHJlcS5tZXRob2QgPSAnUE9TVCcKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCA0MDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmhlYWRlcnMuZ2V0KCdBbGxvdycpLCBOb25lKQorCisgICAgZGVmIHRlc3RfbmV3X2FwcF9vbGRfaGFuZGxlcl81MDEoc2VsZik6CisgICAgICAgIGFwcDIuYWxsb3dlZF9tZXRob2RzID0gbGlzdChhcHAyLmFsbG93ZWRfbWV0aG9kcykgKyBbJ05FV19NRVRIT0QnXQorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy90ZXN0L2ZvbycpCisgICAgICAgIHJlcS5tZXRob2QgPSAnTkVXX01FVEhPRCcKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCA1MDEpCisKKyAgICBkZWYgdGVzdF9uZXdfYXBwX29sZF9oYW5kbGVyXzUwMV8yKHNlbGYpOgorICAgICAgICByZXEgPSB3ZWJhcHAyLlJlcXVlc3QuYmxhbmsoJy90ZXN0L2ZvbycpCisgICAgICAgIHJlcS5tZXRob2QgPSAnV0hBVE1FVEhPRElTVEhJUycKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCA1MDEpCisKKyAgICBkZWYgdGVzdF9uZXdfYXBwX29sZF9oYW5kbGVyX3dpdGhfZXJyb3Ioc2VsZik6CisgICAgICAgIHJlcSA9IHdlYmFwcDIuUmVxdWVzdC5ibGFuaygnL3Rlc3QvZXJyb3InKQorICAgICAgICByc3AgPSByZXEuZ2V0X3Jlc3BvbnNlKGFwcDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLnN0YXR1c19pbnQsIDUwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc3AuYm9keSwgJ1ZhbHVlRXJyb3IhJykKKworICAgIGRlZiB0ZXN0X25ld19hcHBfb2xkX2t3YXJncyhzZWxmKToKKyAgICAgICAgcmVxID0gd2ViYXBwMi5SZXF1ZXN0LmJsYW5rKCcvdGVzdDIvZm9vJykKKyAgICAgICAgcnNwID0gcmVxLmdldF9yZXNwb25zZShhcHAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJzcC5zdGF0dXNfaW50LCAyMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNwLmJvZHksICdmb28nKQorCisgICAgZGVmIHRlc3RfdW5pY29kZV9jb29raWUoc2VsZik6CisgICAgICAgICMgc2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjgzOTkyMi91bmljb2RlZGVjb2RlZXJyb3ItaXMtcmFpc2VkLXdoZW4tZ2V0dGluZy1hLWNvb2tpZS1pbi1nb29nbGUtYXBwLWVuZ2luZQorICAgICAgICBpbXBvcnQgdXJsbGliCisKKyAgICAgICAgIyBUaGlzIGlzIHRoZSB2YWx1ZSB3ZSB3YW50IHRvIHNldC4KKyAgICAgICAgaW5pdGlhbF92YWx1ZSA9IHUnw6TDq8Ovw7bDvCcKKyAgICAgICAgIyBXZWJPYiB2ZXJzaW9uIHRoYXQgY29tZXMgd2l0aCBTREsgZG9lc24ndCBxdW90ZSBjb29raWUgdmFsdWVzLgorICAgICAgICAjIFNvIHdlIGhhdmUgdG8gZG8gaXQuCisgICAgICAgIHF1b3RlZF92YWx1ZSA9IHVybGxpYi5xdW90ZShpbml0aWFsX3ZhbHVlLmVuY29kZSgndXRmLTgnKSkKKworICAgICAgICByc3AgPSB3ZWJhcHAuUmVzcG9uc2UoKQorICAgICAgICByc3AuaGVhZGVyc1snU2V0LUNvb2tpZSddID0gJ2FwcD0lczsgUGF0aD0vJyAlIHF1b3RlZF92YWx1ZQorCisgICAgICAgIGNvb2tpZSA9IHJzcC5oZWFkZXJzLmdldCgnU2V0LUNvb2tpZScpCisgICAgICAgIHJlcSA9IHdlYmFwcC5SZXF1ZXN0LmJsYW5rKCcvJywgaGVhZGVycz1bKCdDb29raWUnLCBjb29raWUpXSkKKworICAgICAgICAjIFRoZSBzdG9yZWQgdmFsdWUgaXMgdGhlIHNhbWUgcXVvdGVkIHZhbHVlIGZyb20gYmVmb3JlLgorICAgICAgICAjIE5vdGljZSB0aGF0IGhlcmUgd2UgdXNlIC5zdHJfY29va2llcywgbm90IC5jb29raWVzLgorICAgICAgICBzdG9yZWRfdmFsdWUgPSByZXEuc3RyX2Nvb2tpZXMuZ2V0KCdhcHAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0b3JlZF92YWx1ZSwgcXVvdGVkX3ZhbHVlKQorCisgICAgICAgICMgQW5kIHdlIGNhbiBnZXQgdGhlIGluaXRpYWwgdmFsdWUgdW5xdW90aW5nIGFuZCBkZWNvZGluZy4KKyAgICAgICAgZmluYWxfdmFsdWUgPSB1cmxsaWIudW5xdW90ZShzdG9yZWRfdmFsdWUpLmRlY29kZSgndXRmLTgnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbmFsX3ZhbHVlLCBpbml0aWFsX3ZhbHVlKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9iYXNlLm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMi5lZ2ctaW5mby9QS0ctSU5GTyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDIuZWdnLWluZm8vUEtHLUlORk8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEwYzI0MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDIuZWdnLWluZm8vUEtHLUlORk8KQEAgLTAsMCArMSw1MSBAQAorTWV0YWRhdGEtVmVyc2lvbjogMS4wCitOYW1lOiB3ZWJhcHAyCitWZXJzaW9uOiAyLjUuMQorU3VtbWFyeTogVGFraW5nIEdvb2dsZSBBcHAgRW5naW5lJ3Mgd2ViYXBwIHRvIHRoZSBuZXh0IGxldmVsIQorSG9tZS1wYWdlOiBodHRwOi8vd2ViYXBwLWltcHJvdmVkLmFwcHNwb3QuY29tCitBdXRob3I6IFJvZHJpZ28gTW9yYWVzCitBdXRob3ItZW1haWw6IHJvZHJpZ28ubW9yYWVzQGdtYWlsLmNvbQorTGljZW5zZTogQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UKK0Rlc2NyaXB0aW9uOiAKKyAgICAgICAgd2ViYXBwMgorICAgICAgICA9PT09PT09CisgICAgICAgIGB3ZWJhcHAyYF8gaXMgYSBsaWdodHdlaWdodCBQeXRob24gd2ViIGZyYW1ld29yayBjb21wYXRpYmxlIHdpdGggR29vZ2xlIEFwcAorICAgICAgICBFbmdpbmUncyBgd2ViYXBwYF8uCisgICAgICAgIAorICAgICAgICB3ZWJhcHAyIGlzIGBzaW1wbGVgXy4gaXQgZm9sbG93cyB0aGUgc2ltcGxpY2l0eSBvZiB3ZWJhcHAsIGJ1dAorICAgICAgICBpbXByb3ZlcyBpdCBpbiBzb21lIHdheXM6IGl0IGFkZHMgYmV0dGVyIFVSSSByb3V0aW5nIGFuZCBleGNlcHRpb24gaGFuZGxpbmcsCisgICAgICAgIGEgZnVsbCBmZWF0dXJlZCByZXNwb25zZSBvYmplY3QgYW5kIGEgbW9yZSBmbGV4aWJsZSBkaXNwYXRjaGluZyBtZWNoYW5pc20uCisgICAgICAgIAorICAgICAgICB3ZWJhcHAyIGFsc28gb2ZmZXJzIHRoZSBwYWNrYWdlIGB3ZWJhcHAyX2V4dHJhc2BfIHdpdGggc2V2ZXJhbCBvcHRpb25hbAorICAgICAgICB1dGlsaXRpZXM6IHNlc3Npb25zLCBsb2NhbGl6YXRpb24sIGludGVybmF0aW9uYWxpemF0aW9uLCBkb21haW4gYW5kIHN1YmRvbWFpbgorICAgICAgICByb3V0aW5nLCBzZWN1cmUgY29va2llcyBhbmQgb3RoZXJzLgorICAgICAgICAKKyAgICAgICAgd2ViYXBwMiBjYW4gYWxzbyBiZSB1c2VkIG91dHNpZGUgb2YgR29vZ2xlIEFwcCBFbmdpbmUsIGluZGVwZW5kZW50bHkgb2YgdGhlCisgICAgICAgIEFwcCBFbmdpbmUgU0RLLgorICAgICAgICAKKyAgICAgICAgRm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgaG93IHdlYmFwcDIgaW1wcm92ZXMgd2ViYXBwLCBzZWUKKyAgICAgICAgYHdlYmFwcDIgZmVhdHVyZXNgXy4KKyAgICAgICAgCisgICAgICAgIFF1aWNrIGxpbmtzCisgICAgICAgIC0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAtIGBVc2VyIEd1aWRlIDxodHRwOi8vd2ViYXBwLWltcHJvdmVkLmFwcHNwb3QuY29tLz5gXworICAgICAgICAtIGBSZXBvc2l0b3J5IDxodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkLz5gXworICAgICAgICAtIGBEaXNjdXNzaW9uIEdyb3VwIDxodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2ZvcnVtLyMhZm9ydW0vd2ViYXBwMj5gXworICAgICAgICAtIGBAd2ViYXBwMiA8aHR0cHM6Ly90d2l0dGVyLmNvbS8jIS93ZWJhcHAyPmBfCisgICAgICAgIAorICAgICAgICAuLiBfd2ViYXBwOiBodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb2NzL3B5dGhvbi90b29scy93ZWJhcHAvCisgICAgICAgIC4uIF93ZWJhcHAyOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkLworICAgICAgICAuLiBfc2ltcGxlOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2ViYXBwLWltcHJvdmVkL3NvdXJjZS9icm93c2Uvd2ViYXBwMi5weQorICAgICAgICAuLiBfd2ViYXBwMl9leHRyYXM6IGh0dHA6Ly93ZWJhcHAtaW1wcm92ZWQuYXBwc3BvdC5jb20vI2FwaS1yZWZlcmVuY2Utd2ViYXBwMi1leHRyYXMKKyAgICAgICAgLi4gX3dlYmFwcDIgZmVhdHVyZXM6IGh0dHA6Ly93ZWJhcHAtaW1wcm92ZWQuYXBwc3BvdC5jb20vZmVhdHVyZXMuaHRtbAorICAgICAgICAKK1BsYXRmb3JtOiBhbnkKK0NsYXNzaWZpZXI6IERldmVsb3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlvbi9TdGFibGUKK0NsYXNzaWZpZXI6IEVudmlyb25tZW50IDo6IFdlYiBFbnZpcm9ubWVudAorQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworQ2xhc3NpZmllcjogTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UKK0NsYXNzaWZpZXI6IE9wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQKK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbgorQ2xhc3NpZmllcjogVG9waWMgOjogSW50ZXJuZXQgOjogV1dXL0hUVFAgOjogRHluYW1pYyBDb250ZW50CitDbGFzc2lmaWVyOiBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDIuZWdnLWluZm8vU09VUkNFUy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLmVnZy1pbmZvL1NPVVJDRVMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNDBjY2YKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLmVnZy1pbmZvL1NPVVJDRVMudHh0CkBAIC0wLDAgKzEsMTQ2IEBACitBVVRIT1JTCitDSEFOR0VTCitMSUNFTlNFCitNQU5JRkVTVC5pbgorTWFrZWZpbGUKK1JFQURNRQorVE9ETworcnVuX3Rlc3RzLnB5CitzZXR1cC5weQord2ViYXBwMi5weQorZG9jcy9NYWtlZmlsZQorZG9jcy9jb25mLnB5Citkb2NzL2ZlYXR1cmVzLnJzdAorZG9jcy9pbmRleC5yc3QKK2RvY3MvbWFrZS5iYXQKK2RvY3MvdG9kby5yc3QKK2RvY3MvX3N0YXRpYy9SRUFETUUKK2RvY3MvX3N0YXRpYy93ZWJhcHAyX2JsdWUucG5nCitkb2NzL19zdGF0aWMvd2ViYXBwMl9ibHVlX3NtYWxsLnBuZworZG9jcy9fc3RhdGljL3dlYmFwcDJfYmx1ZV90aW55LnBuZworZG9jcy9fdGVtcGxhdGVzL1JFQURNRQorZG9jcy9fdGhlbWVzL3dlYmFwcDIvbGF5b3V0Lmh0bWwKK2RvY3MvX3RoZW1lcy93ZWJhcHAyL3B5Z2FwcDIucHkKK2RvY3MvX3RoZW1lcy93ZWJhcHAyL3RoZW1lLmNvbmYKK2RvY3MvX3RoZW1lcy93ZWJhcHAyL3N0YXRpYy9nY29kZS5jc3MKK2RvY3MvX3RoZW1lcy93ZWJhcHAyL3N0YXRpYy93ZWJhcHAyLmNzcworZG9jcy9hcGkvZXh0cmFzLmNvbmZpZy5yc3QKK2RvY3MvYXBpL2V4dHJhcy5pMThuLnJzdAorZG9jcy9hcGkvZXh0cmFzLmppbmphMi5yc3QKK2RvY3MvYXBpL2V4dHJhcy5qc29uLnJzdAorZG9jcy9hcGkvZXh0cmFzLmxvY2FsLnJzdAorZG9jcy9hcGkvZXh0cmFzLmxvY2FsX2FwcC5yc3QKK2RvY3MvYXBpL2V4dHJhcy5tYWtvLnJzdAorZG9jcy9hcGkvZXh0cmFzLnJvdXRlcy5yc3QKK2RvY3MvYXBpL2V4dHJhcy5zZWN1cmVjb29raWUucnN0Citkb2NzL2FwaS9leHRyYXMuc2VjdXJpdHkucnN0Citkb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnMucnN0Citkb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnNfbWVtY2FjaGUucnN0Citkb2NzL2FwaS9leHRyYXMuc2Vzc2lvbnNfbmRiLnJzdAorZG9jcy9hcGkvZXh0cmFzLnVzZXJzLnJzdAorZG9jcy9hcGkvaW5kZXgucnN0Citkb2NzL2FwaS93ZWJhcHAyLnJzdAorZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvYXV0aC5yc3QKK2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2NvbmZpZy5yc3QKK2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2kxOG4ucnN0Citkb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9qaW5qYTIucnN0Citkb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9qc29uLnJzdAorZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvbG9jYWwucnN0Citkb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9sb2NhbF9hcHAucnN0Citkb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9tYWtvLnJzdAorZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvcm91dGVzLnJzdAorZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvc2VjdXJlY29va2llLnJzdAorZG9jcy9hcGkvd2ViYXBwMl9leHRyYXMvc2VjdXJpdHkucnN0Citkb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9zZXNzaW9ucy5yc3QKK2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19tZW1jYWNoZS5yc3QKK2RvY3MvYXBpL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19uZGIucnN0Citkb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvdXNlcnMucnN0Citkb2NzL2FwaS93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvYXV0aC9tb2RlbHMucnN0Citkb2NzL2d1aWRlL2FwcC5yc3QKK2RvY3MvZ3VpZGUvZXhjZXB0aW9ucy5yc3QKK2RvY3MvZ3VpZGUvZXh0cmFzLnJzdAorZG9jcy9ndWlkZS9oYW5kbGVycy5yc3QKK2RvY3MvZ3VpZGUvaW5kZXgucnN0Citkb2NzL2d1aWRlL3JlcXVlc3QucnN0Citkb2NzL2d1aWRlL3Jlc3BvbnNlLnJzdAorZG9jcy9ndWlkZS9yb3V0aW5nLnJzdAorZG9jcy9ndWlkZS90ZXN0aW5nLnJzdAorZG9jcy90dXRvcmlhbHMvYXV0aC5yc3QKK2RvY3MvdHV0b3JpYWxzL2kxOG4ucnN0Citkb2NzL3R1dG9yaWFscy9pbmRleC5yc3QKK2RvY3MvdHV0b3JpYWxzL2luc3RhbGxpbmcucGFja2FnZXMucnN0Citkb2NzL3R1dG9yaWFscy9tYXJrZXRwbGFjZS5zaW5nbGUuc2lnbm9uLnJzdAorZG9jcy90dXRvcmlhbHMvcXVpY2tzdGFydC5ub2dhZS5yc3QKK2RvY3MvdHV0b3JpYWxzL3F1aWNrc3RhcnQucnN0Citkb2NzL3R1dG9yaWFscy92aXJ0dWFsZW52LnJzdAorZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvZGV2ZW52aXJvbm1lbnQucnN0Citkb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC9oYW5kbGluZ2Zvcm1zLnJzdAorZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvaGVsbG93b3JsZC5yc3QKK2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL2luZGV4LnJzdAorZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvaW50cm9kdWN0aW9uLnJzdAorZG9jcy90dXRvcmlhbHMvZ2V0dGluZ3N0YXJ0ZWQvc3RhdGljZmlsZXMucnN0Citkb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC90ZW1wbGF0ZXMucnN0Citkb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC91cGxvYWRpbmcucnN0Citkb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC91c2luZ2RhdGFzdG9yZS5yc3QKK2RvY3MvdHV0b3JpYWxzL2dldHRpbmdzdGFydGVkL3VzaW5ndXNlcnMucnN0Citkb2NzL3R1dG9yaWFscy9nZXR0aW5nc3RhcnRlZC91c2luZ3dlYmFwcDIucnN0Cit0ZXN0cy9leHRyYXNfYXBwZW5naW5lX2F1dGhfbW9kZWxzX3Rlc3QucHkKK3Rlc3RzL2V4dHJhc19hcHBlbmdpbmVfc2Vzc2lvbnNfbWVtY2FjaGVfdGVzdC5weQordGVzdHMvZXh0cmFzX2FwcGVuZ2luZV9zZXNzaW9uc19uZGJfdGVzdC5weQordGVzdHMvZXh0cmFzX2FwcGVuZ2luZV91c2Vyc190ZXN0LnB5Cit0ZXN0cy9leHRyYXNfYXV0aF90ZXN0LnB5Cit0ZXN0cy9leHRyYXNfY29uZmlnX3Rlc3QucHkKK3Rlc3RzL2V4dHJhc19pMThuX3Rlc3QucHkKK3Rlc3RzL2V4dHJhc19qaW5qYTJfdGVzdC5weQordGVzdHMvZXh0cmFzX2pzb25fdGVzdC5weQordGVzdHMvZXh0cmFzX2xvY2FsX2FwcF90ZXN0LnB5Cit0ZXN0cy9leHRyYXNfbWFrb190ZXN0LnB5Cit0ZXN0cy9leHRyYXNfcm91dGVzX3Rlc3QucHkKK3Rlc3RzL2V4dHJhc19zZWN1cmVjb29raWVfdGVzdC5weQordGVzdHMvZXh0cmFzX3NlY3VyaXR5X3Rlc3QucHkKK3Rlc3RzL2V4dHJhc19zZXNzaW9uc190ZXN0LnB5Cit0ZXN0cy9oYW5kbGVyX3Rlc3QucHkKK3Rlc3RzL21pc2NfdGVzdC5weQordGVzdHMvcmVxdWVzdF90ZXN0LnB5Cit0ZXN0cy9yZXNwb25zZV90ZXN0LnB5Cit0ZXN0cy9yb3V0aW5nX3Rlc3QucHkKK3Rlc3RzL3Rlc3RfYmFzZS5weQordGVzdHMvd2ViYXBwMV90ZXN0LnB5Cit0ZXN0cy9yZXNvdXJjZXMvX19pbml0X18ucHkKK3Rlc3RzL3Jlc291cmNlcy9oYW5kbGVycy5weQordGVzdHMvcmVzb3VyY2VzL2kxOG4ucHkKK3Rlc3RzL3Jlc291cmNlcy9wcm90b3JwY19zZXJ2aWNlcy5weQordGVzdHMvcmVzb3VyY2VzL3RlbXBsYXRlLnB5Cit0ZXN0cy9yZXNvdXJjZXMvamluamEyX3RlbXBsYXRlcy9oZWxsby5odG1sCit0ZXN0cy9yZXNvdXJjZXMvamluamEyX3RlbXBsYXRlcy90ZW1wbGF0ZTEuaHRtbAordGVzdHMvcmVzb3VyY2VzL2ppbmphMl90ZW1wbGF0ZXMvdGVtcGxhdGUyLmh0bWwKK3Rlc3RzL3Jlc291cmNlcy9qaW5qYTJfdGVtcGxhdGVzL3RlbXBsYXRlMy5odG1sCit0ZXN0cy9yZXNvdXJjZXMvamluamEyX3RlbXBsYXRlc19jb21waWxlZC90bXBsXzNhNzk4NzNiMWI0OWJlMjQ0ZmQ1NDQ0YjEyNThjZTM0OGJlMjZkZTgucHkKK3Rlc3RzL3Jlc291cmNlcy9tYWtvX3RlbXBsYXRlcy90ZW1wbGF0ZTEuaHRtbAord2ViYXBwMi5lZ2ctaW5mby9QS0ctSU5GTword2ViYXBwMi5lZ2ctaW5mby9TT1VSQ0VTLnR4dAord2ViYXBwMi5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAord2ViYXBwMi5lZ2ctaW5mby9ub3QtemlwLXNhZmUKK3dlYmFwcDIuZWdnLWluZm8vdG9wX2xldmVsLnR4dAord2ViYXBwMl9leHRyYXMvX19pbml0X18ucHkKK3dlYmFwcDJfZXh0cmFzL2F1dGgucHkKK3dlYmFwcDJfZXh0cmFzL2NvbmZpZy5weQord2ViYXBwMl9leHRyYXMvaTE4bi5weQord2ViYXBwMl9leHRyYXMvamluamEyLnB5Cit3ZWJhcHAyX2V4dHJhcy9qc29uLnB5Cit3ZWJhcHAyX2V4dHJhcy9sb2NhbC5weQord2ViYXBwMl9leHRyYXMvbG9jYWxfYXBwLnB5Cit3ZWJhcHAyX2V4dHJhcy9tYWtvLnB5Cit3ZWJhcHAyX2V4dHJhcy9yb3V0ZXMucHkKK3dlYmFwcDJfZXh0cmFzL3NlY3VyZWNvb2tpZS5weQord2ViYXBwMl9leHRyYXMvc2VjdXJpdHkucHkKK3dlYmFwcDJfZXh0cmFzL3Nlc3Npb25zLnB5Cit3ZWJhcHAyX2V4dHJhcy9zZXNzaW9uc19tZW1jYWNoZS5weQord2ViYXBwMl9leHRyYXMvc2Vzc2lvbnNfbmRiLnB5Cit3ZWJhcHAyX2V4dHJhcy91c2Vycy5weQord2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL19faW5pdF9fLnB5Cit3ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvc2Vzc2lvbnNfbWVtY2FjaGUucHkKK3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19uZGIucHkKK3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS91c2Vycy5weQord2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL2F1dGgvX19pbml0X18ucHkKK3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9hdXRoL21vZGVscy5weQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDIuZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMi5lZ2ctaW5mby9ub3QtemlwLXNhZmUgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLmVnZy1pbmZvL25vdC16aXAtc2FmZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMi5lZ2ctaW5mby9ub3QtemlwLXNhZmUKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkxMmVlMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDIuZWdnLWluZm8vdG9wX2xldmVsLnR4dApAQCAtMCwwICsxLDIgQEAKK3dlYmFwcDIKK3dlYmFwcDJfZXh0cmFzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMi5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YmJkYjY0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMi5weQpAQCAtMCwwICsxLDE5ODcgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiIKKyAgICB3ZWJhcHAyCisgICAgPT09PT09PQorCisgICAgVGFraW5nIEdvb2dsZSBBcHAgRW5naW5lJ3Mgd2ViYXBwIHRvIHRoZSBuZXh0IGxldmVsIQorCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CisKK2ltcG9ydCBjZ2kKK2ltcG9ydCBpbnNwZWN0CitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKK2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCB1cmxsaWIKK2ltcG9ydCB1cmxwYXJzZQorZnJvbSB3c2dpcmVmIGltcG9ydCBoYW5kbGVycworCitpbXBvcnQgd2Vib2IKK2Zyb20gd2Vib2IgaW1wb3J0IGV4YworCitfd2ViYXBwID0gX3dlYmFwcF91dGlsID0gX2xvY2FsID0gTm9uZQorCit0cnk6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICMgV2ViT2IgPCAxLjAgKEFwcCBFbmdpbmUgUHl0aG9uIDIuNSkuCisgICAgZnJvbSB3ZWJvYi5zdGF0dXNyZWFzb25zIGltcG9ydCBzdGF0dXNfcmVhc29ucworICAgIGZyb20gd2Vib2IuaGVhZGVyZGljdCBpbXBvcnQgSGVhZGVyRGljdCBhcyBCYXNlUmVzcG9uc2VIZWFkZXJzCitleGNlcHQgSW1wb3J0RXJyb3I6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICMgV2ViT2IgPj0gMS4wLgorICAgIGZyb20gd2Vib2IudXRpbCBpbXBvcnQgc3RhdHVzX3JlYXNvbnMKKyAgICBmcm9tIHdlYm9iLmhlYWRlcnMgaW1wb3J0IFJlc3BvbnNlSGVhZGVycyBhcyBCYXNlUmVzcG9uc2VIZWFkZXJzCisKKyMgZ29vZ2xlLmFwcGVuZ2luZS5leHQud2ViYXBwIGltcG9ydHMgd2ViYXBwMiBpbiB0aGUKKyMgQXBwIEVuZ2luZSBQeXRob24gMi43IHJ1bnRpbWUuCitpZiBvcy5lbnZpcm9uLmdldCgnQVBQRU5HSU5FX1JVTlRJTUUnKSAhPSAncHl0aG9uMjcnOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICB0cnk6CisgICAgICAgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IHdlYmFwcCBhcyBfd2ViYXBwCisgICAgZXhjZXB0IEltcG9ydEVycm9yOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgIyBSdW5uaW5nIHdlYmFwcDIgb3V0c2lkZSBvZiBHQUUuCisgICAgICAgIHBhc3MKKwordHJ5OiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAjIFRocmVhZC1sb2NhbCB2YXJpYWJsZXMgY29udGFpbmVyLgorICAgIGZyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IGxvY2FsCisgICAgX2xvY2FsID0gbG9jYWwuTG9jYWwoKQorZXhjZXB0IEltcG9ydEVycm9yOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBsb2dnaW5nLndhcm5pbmcoIndlYmFwcDJfZXh0cmFzLmxvY2FsIGlzIG5vdCBhdmFpbGFibGUgIgorICAgICAgICAgICAgICAgICAgICAic28gd2ViYXBwMiB3b24ndCBiZSB0aHJlYWQtc2FmZSEiKQorCisKK19fdmVyc2lvbl9pbmZvX18gPSAoMiwgNSwgMSkKK19fdmVyc2lvbl9fID0gJy4nLmpvaW4oc3RyKG4pIGZvciBuIGluIF9fdmVyc2lvbl9pbmZvX18pCisKKyM6IEJhc2UgSFRUUCBleGNlcHRpb24sIHNldCBoZXJlIGFzIHB1YmxpYyBpbnRlcmZhY2UuCitIVFRQRXhjZXB0aW9uID0gZXhjLkhUVFBFeGNlcHRpb24KKworIzogUmVnZXggZm9yIHJvdXRlIGRlZmluaXRpb25zLgorX3JvdXRlX3JlID0gcmUuY29tcGlsZShyIiIiCisgICAgXDwgICAgICAgICAgICAgICAjIFRoZSBleGFjdCBjaGFyYWN0ZXIgIjwiCisgICAgKFthLXpBLVpfXVx3Kik/ICAjIFRoZSBvcHRpb25hbCB2YXJpYWJsZSBuYW1lCisgICAgKD86XDooW15cPl0qKSk/ICAjIFRoZSBvcHRpb25hbCA6cmVnZXggcGFydAorICAgIFw+ICAgICAgICAgICAgICAgIyBUaGUgZXhhY3QgY2hhcmFjdGVyICI+IgorICAgICIiIiwgcmUuVkVSQk9TRSkKKyM6IFJlZ2V4IGV4dHJhY3QgY2hhcnNldCBmcm9tIGVudmlyb24uCitfY2hhcnNldF9yZSA9IHJlLmNvbXBpbGUocic7XHMqY2hhcnNldD0oW147XSopJywgcmUuSSkKKworIzogVG8gc2hvdyBleGNlcHRpb25zIGluIGRlYnVnIG1vZGUuCitfZGVidWdfdGVtcGxhdGUgPSAiIiI8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPkludGVybmFsIFNlcnZlciBFcnJvcjwvdGl0bGU+CisgICAgPHN0eWxlPgorICAgICAgYm9keSB7CisgICAgICAgIHBhZGRpbmc6IDIwcHg7CisgICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjsKKyAgICAgICAgZm9udC1zaXplOiAxNHB4OworICAgICAgfQorICAgICAgcHJlIHsKKyAgICAgICAgYmFja2dyb3VuZDogI0YyRjJGMjsKKyAgICAgICAgcGFkZGluZzogMTBweDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5JbnRlcm5hbCBTZXJ2ZXIgRXJyb3I8L2gxPgorICAgIDxwPlRoZSBzZXJ2ZXIgaGFzIGVpdGhlciBlcnJlZCBvciBpcyBpbmNhcGFibGUgb2YgcGVyZm9ybWluZworICAgIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uLjwvcD4KKyAgICA8cHJlPiVzPC9wcmU+CisgIDwvYm9keT4KKzwvaHRtbD4iIiIKKworIyBTZXQgc2FtZSBkZWZhdWx0IG1lc3NhZ2VzIGZyb20gd2ViYXBwIHBsdXMgbWlzc2luZyBvbmVzLgorX3dlYmFwcF9zdGF0dXNfcmVhc29ucyA9IHsKKyAgICAyMDM6ICdOb24tQXV0aG9yaXRhdGl2ZSBJbmZvcm1hdGlvbicsCisgICAgMzAyOiAnTW92ZWQgVGVtcG9yYXJpbHknLAorICAgIDMwNjogJ1VudXNlZCcsCisgICAgNDA4OiAnUmVxdWVzdCBUaW1lLW91dCcsCisgICAgNDE0OiAnUmVxdWVzdC1VUkkgVG9vIExhcmdlJywKKyAgICA1MDQ6ICdHYXRld2F5IFRpbWUtb3V0JywKKyAgICA1MDU6ICdIVFRQIFZlcnNpb24gbm90IHN1cHBvcnRlZCcsCit9CitzdGF0dXNfcmVhc29ucy51cGRhdGUoX3dlYmFwcF9zdGF0dXNfcmVhc29ucykKK2ZvciBjb2RlLCBtZXNzYWdlIGluIF93ZWJhcHBfc3RhdHVzX3JlYXNvbnMuaXRlcml0ZW1zKCk6CisgICAgY2xzID0gZXhjLnN0YXR1c19tYXAuZ2V0KGNvZGUpCisgICAgaWYgY2xzOgorICAgICAgICBjbHMudGl0bGUgPSBtZXNzYWdlCisKKworY2xhc3MgUmVxdWVzdCh3ZWJvYi5SZXF1ZXN0KToKKyAgICAiIiJBYnN0cmFjdGlvbiBmb3IgYW4gSFRUUCByZXF1ZXN0LgorCisgICAgTW9zdCBleHRyYSBtZXRob2RzIGFuZCBhdHRyaWJ1dGVzIGFyZSBwb3J0ZWQgZnJvbSB3ZWJhcHAuIENoZWNrIHRoZQorICAgIGBXZWJPYiBkb2N1bWVudGF0aW9uIDxXZWJPYj5gXyBmb3IgdGhlIG9uZXMgbm90IGxpc3RlZCBoZXJlLgorICAgICIiIgorCisgICAgIzogQSByZWZlcmVuY2UgdG8gdGhlIGFjdGl2ZSA6Y2xhc3M6YFdTR0lBcHBsaWNhdGlvbmAgaW5zdGFuY2UuCisgICAgYXBwID0gTm9uZQorICAgICM6IEEgcmVmZXJlbmNlIHRvIHRoZSBhY3RpdmUgOmNsYXNzOmBSZXNwb25zZWAgaW5zdGFuY2UuCisgICAgcmVzcG9uc2UgPSBOb25lCisgICAgIzogQSByZWZlcmVuY2UgdG8gdGhlIG1hdGNoZWQgOmNsYXNzOmBSb3V0ZWAuCisgICAgcm91dGUgPSBOb25lCisgICAgIzogVGhlIG1hdGNoZWQgcm91dGUgcG9zaXRpb25hbCBhcmd1bWVudHMuCisgICAgcm91dGVfYXJncyA9IE5vbmUKKyAgICAjOiBUaGUgbWF0Y2hlZCByb3V0ZSBrZXl3b3JkIGFyZ3VtZW50cy4KKyAgICByb3V0ZV9rd2FyZ3MgPSBOb25lCisgICAgIzogQSBkaWN0aW9uYXJ5IHRvIHJlZ2lzdGVyIG9iamVjdHMgdXNlZCBkdXJpbmcgdGhlIHJlcXVlc3QgbGlmZXRpbWUuCisgICAgcmVnaXN0cnkgPSBOb25lCisgICAgIyBBdHRyaWJ1dGVzIGZyb20gd2ViYXBwLgorICAgIHJlcXVlc3RfYm9keV90ZW1wZmlsZV9saW1pdCA9IDAKKyAgICB1cmkgPSBwcm9wZXJ0eShsYW1iZGEgc2VsZjogc2VsZi51cmwpCisgICAgcXVlcnkgPSBwcm9wZXJ0eShsYW1iZGEgc2VsZjogc2VsZi5xdWVyeV9zdHJpbmcpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZW52aXJvbiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiQ29uc3RydWN0cyBhIFJlcXVlc3Qgb2JqZWN0IGZyb20gYSBXU0dJIGVudmlyb25tZW50LgorCisgICAgICAgIDpwYXJhbSBlbnZpcm9uOgorICAgICAgICAgICAgQSBXU0dJLWNvbXBsaWFudCBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5LgorICAgICAgICAiIiIKKyAgICAgICAgaWYga3dhcmdzLmdldCgnY2hhcnNldCcpIGlzIE5vbmUgYW5kIG5vdCBoYXNhdHRyKHdlYm9iLCAnX192ZXJzaW9uX18nKToKKyAgICAgICAgICAgICMgd2Vib2IgMC45IGRpZG4ndCBoYXZlIGEgX192ZXJzaW9uX18gYXR0cmlidXRlIGFuZCBhbHNvIGRlZmF1bHRlZAorICAgICAgICAgICAgIyB0byBOb25lIHJhdGhlciB0aGFuIFVURi04IGlmIG5vIGNoYXJzZXQgd2FzIHByb3ZpZGVkLiBQcm92aWRpbmcgYQorICAgICAgICAgICAgIyBkZWZhdWx0IGNoYXJzZXQgaXMgcmVxdWlyZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgorICAgICAgICAgICAgbWF0Y2ggPSBfY2hhcnNldF9yZS5zZWFyY2goZW52aXJvbi5nZXQoJ0NPTlRFTlRfVFlQRScsICcnKSkKKyAgICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBtYXRjaC5ncm91cCgxKS5sb3dlcigpLnN0cmlwKCkuc3RyaXAoJyInKS5zdHJpcCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNoYXJzZXQgPSAndXRmLTgnCisgICAgICAgICAgICBrd2FyZ3NbJ2NoYXJzZXQnXSA9IGNoYXJzZXQKKworICAgICAgICBzdXBlcihSZXF1ZXN0LCBzZWxmKS5fX2luaXRfXyhlbnZpcm9uLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYucmVnaXN0cnkgPSB7fQorCisgICAgZGVmIGdldChzZWxmLCBhcmd1bWVudF9uYW1lLCBkZWZhdWx0X3ZhbHVlPScnLCBhbGxvd19tdWx0aXBsZT1GYWxzZSk6CisgICAgICAgICIiIlJldHVybnMgdGhlIHF1ZXJ5IG9yIFBPU1QgYXJndW1lbnQgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KKworICAgICAgICBXZSBwYXJzZSB0aGUgcXVlcnkgc3RyaW5nIGFuZCBQT1NUIHBheWxvYWQgbGF6aWx5LCBzbyB0aGlzIHdpbGwgYmUgYQorICAgICAgICBzbG93ZXIgb3BlcmF0aW9uIG9uIHRoZSBmaXJzdCBjYWxsLgorCisgICAgICAgIDpwYXJhbSBhcmd1bWVudF9uYW1lOgorICAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIHF1ZXJ5IG9yIFBPU1QgYXJndW1lbnQuCisgICAgICAgIDpwYXJhbSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHJldHVybiBpZiB0aGUgZ2l2ZW4gYXJndW1lbnQgaXMgbm90IHByZXNlbnQuCisgICAgICAgIDpwYXJhbSBhbGxvd19tdWx0aXBsZToKKyAgICAgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgdmFsdWVzIHdpdGggdGhlIGdpdmVuIG5hbWUgKGRlcHJlY2F0ZWQpLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIElmIGFsbG93X211bHRpcGxlIGlzIEZhbHNlICh3aGljaCBpdCBpcyBieSBkZWZhdWx0KSwgd2UgcmV0dXJuCisgICAgICAgICAgICB0aGUgZmlyc3QgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBnaXZlbiBpbiB0aGUgcmVxdWVzdC4gSWYgaXQKKyAgICAgICAgICAgIGlzIFRydWUsIHdlIGFsd2F5cyByZXR1cm4gYSBsaXN0LgorICAgICAgICAiIiIKKyAgICAgICAgcGFyYW1fdmFsdWUgPSBzZWxmLmdldF9hbGwoYXJndW1lbnRfbmFtZSkKKyAgICAgICAgaWYgYWxsb3dfbXVsdGlwbGU6CisgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoJ2FsbG93X211bHRpcGxlIGlzIGEgZGVwcmVjYXRlZCBwYXJhbS4gJworICAgICAgICAgICAgICAgICdQbGVhc2UgdXNlIHRoZSBSZXF1ZXN0LmdldF9hbGwoKSBtZXRob2QgaW5zdGVhZC4nKQorCisgICAgICAgIGlmIGxlbihwYXJhbV92YWx1ZSkgPiAwOgorICAgICAgICAgICAgaWYgYWxsb3dfbXVsdGlwbGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtX3ZhbHVlCisKKyAgICAgICAgICAgIHJldHVybiBwYXJhbV92YWx1ZVswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgYWxsb3dfbXVsdGlwbGUgYW5kIG5vdCBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZQorCisgICAgZGVmIGdldF9hbGwoc2VsZiwgYXJndW1lbnRfbmFtZSwgZGVmYXVsdF92YWx1ZT1Ob25lKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgcXVlcnkgb3IgUE9TVCBhcmd1bWVudHMgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KKworICAgICAgICBXZSBwYXJzZSB0aGUgcXVlcnkgc3RyaW5nIGFuZCBQT1NUIHBheWxvYWQgbGF6aWx5LCBzbyB0aGlzIHdpbGwgYmUgYQorICAgICAgICBzbG93ZXIgb3BlcmF0aW9uIG9uIHRoZSBmaXJzdCBjYWxsLgorCisgICAgICAgIDpwYXJhbSBhcmd1bWVudF9uYW1lOgorICAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIHF1ZXJ5IG9yIFBPU1QgYXJndW1lbnQuCisgICAgICAgIDpwYXJhbSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHJldHVybiBpZiB0aGUgZ2l2ZW4gYXJndW1lbnQgaXMgbm90IHByZXNlbnQsCisgICAgICAgICAgICBOb25lIG1heSBub3QgYmUgdXNlZCBhcyBhIGRlZmF1bHQsIGlmIGl0IGlzIHRoZW4gYW4gZW1wdHkKKyAgICAgICAgICAgIGxpc3Qgd2lsbCBiZSByZXR1cm5lZCBpbnN0ZWFkLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgKHBvc3NpYmx5IGVtcHR5KSBsaXN0IG9mIHZhbHVlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuY2hhcnNldDoKKyAgICAgICAgICAgIGFyZ3VtZW50X25hbWUgPSBhcmd1bWVudF9uYW1lLmVuY29kZShzZWxmLmNoYXJzZXQpCisKKyAgICAgICAgaWYgZGVmYXVsdF92YWx1ZSBpcyBOb25lOgorICAgICAgICAgICAgZGVmYXVsdF92YWx1ZSA9IFtdCisKKyAgICAgICAgcGFyYW1fdmFsdWUgPSBzZWxmLnBhcmFtcy5nZXRhbGwoYXJndW1lbnRfbmFtZSkKKworICAgICAgICBpZiBwYXJhbV92YWx1ZSBpcyBOb25lIG9yIGxlbihwYXJhbV92YWx1ZSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlCisKKyAgICAgICAgZm9yIGkgaW4geHJhbmdlKGxlbihwYXJhbV92YWx1ZSkpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwYXJhbV92YWx1ZVtpXSwgY2dpLkZpZWxkU3RvcmFnZSk6CisgICAgICAgICAgICAgICAgcGFyYW1fdmFsdWVbaV0gPSBwYXJhbV92YWx1ZVtpXS52YWx1ZQorCisgICAgICAgIHJldHVybiBwYXJhbV92YWx1ZQorCisgICAgZGVmIGFyZ3VtZW50cyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgdGhlIGFyZ3VtZW50cyBwcm92aWRlZCBpbiB0aGUgcXVlcnkgYW5kL29yIFBPU1QuCisKKyAgICAgICAgVGhlIHJldHVybiB2YWx1ZSBpcyBhIGxpc3Qgb2Ygc3RyaW5ncy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBsaXN0KHNldChzZWxmLnBhcmFtcy5rZXlzKCkpKQorCisgICAgZGVmIGdldF9yYW5nZShzZWxmLCBuYW1lLCBtaW5fdmFsdWU9Tm9uZSwgbWF4X3ZhbHVlPU5vbmUsIGRlZmF1bHQ9MCk6CisgICAgICAgICIiIlBhcnNlcyB0aGUgZ2l2ZW4gaW50IGFyZ3VtZW50LCBsaW1pdGluZyBpdCB0byB0aGUgZ2l2ZW4gcmFuZ2UuCisKKyAgICAgICAgOnBhcmFtIG5hbWU6CisgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgYXJndW1lbnQuCisgICAgICAgIDpwYXJhbSBtaW5fdmFsdWU6CisgICAgICAgICAgICBUaGUgbWluaW11bSBpbnQgdmFsdWUgb2YgdGhlIGFyZ3VtZW50IChpZiBhbnkpLgorICAgICAgICA6cGFyYW0gbWF4X3ZhbHVlOgorICAgICAgICAgICAgVGhlIG1heGltdW0gaW50IHZhbHVlIG9mIHRoZSBhcmd1bWVudCAoaWYgYW55KS4KKyAgICAgICAgOnBhcmFtIGRlZmF1bHQ6CisgICAgICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgYXJndW1lbnQgaWYgaXQgaXMgbm90IGdpdmVuLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEFuIGludCB3aXRoaW4gdGhlIGdpdmVuIHJhbmdlIGZvciB0aGUgYXJndW1lbnQuCisgICAgICAgICIiIgorICAgICAgICB2YWx1ZSA9IHNlbGYuZ2V0KG5hbWUsIGRlZmF1bHQpCisgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUKKworICAgICAgICB0cnk6CisgICAgICAgICAgICB2YWx1ZSA9IGludCh2YWx1ZSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHQKKyAgICAgICAgICAgIGlmIHZhbHVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGlmIG1heF92YWx1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBtaW4odmFsdWUsIG1heF92YWx1ZSkKKworICAgICAgICAgICAgICAgIGlmIG1pbl92YWx1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBtYXgodmFsdWUsIG1pbl92YWx1ZSkKKworICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBibGFuayhjbHMsIHBhdGgsIGVudmlyb249Tm9uZSwgYmFzZV91cmw9Tm9uZSwKKyAgICAgICAgICAgICAgaGVhZGVycz1Ob25lLCAqKmt3YXJncyk6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAiIiJBZGRzIHBhcmFtZXRlcnMgY29tcGF0aWJsZSB3aXRoIFdlYk9iID49IDEuMDogUE9TVCBhbmQgKiprd2FyZ3MuIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzdXBlcihSZXF1ZXN0LCBjbHMpLmJsYW5rKHBhdGgsIGVudmlyb249ZW52aXJvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfdXJsPWJhc2VfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1oZWFkZXJzLCAqKmt3YXJncykKKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgIGlmIG5vdCBrd2FyZ3M6CisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICBkYXRhID0ga3dhcmdzLnBvcCgnUE9TVCcsIE5vbmUpCisgICAgICAgIGlmIGRhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KKyAgICAgICAgICAgIGVudmlyb24gPSBlbnZpcm9uIG9yIHt9CisgICAgICAgICAgICBlbnZpcm9uWydSRVFVRVNUX01FVEhPRCddID0gJ1BPU1QnCisgICAgICAgICAgICBpZiBoYXNhdHRyKGRhdGEsICdpdGVtcycpOgorICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLml0ZW1zKCkKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIHN0cik6CisgICAgICAgICAgICAgICAgZGF0YSA9IHVybGxpYi51cmxlbmNvZGUoZGF0YSkKKyAgICAgICAgICAgIGVudmlyb25bJ3dzZ2kuaW5wdXQnXSA9IFN0cmluZ0lPKGRhdGEpCisgICAgICAgICAgICBlbnZpcm9uWyd3ZWJvYi5pc19ib2R5X3NlZWthYmxlJ10gPSBUcnVlCisgICAgICAgICAgICBlbnZpcm9uWydDT05URU5UX0xFTkdUSCddID0gc3RyKGxlbihkYXRhKSkKKyAgICAgICAgICAgIGVudmlyb25bJ0NPTlRFTlRfVFlQRSddID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcKKworICAgICAgICBiYXNlID0gc3VwZXIoUmVxdWVzdCwgY2xzKS5ibGFuayhwYXRoLCBlbnZpcm9uPWVudmlyb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfdXJsPWJhc2VfdXJsLCBoZWFkZXJzPWhlYWRlcnMpCisgICAgICAgIGlmIGt3YXJnczoKKyAgICAgICAgICAgIG9iaiA9IGNscyhiYXNlLmVudmlyb24sICoqa3dhcmdzKQorICAgICAgICAgICAgb2JqLmhlYWRlcnMudXBkYXRlKGJhc2UuaGVhZGVycykKKyAgICAgICAgICAgIHJldHVybiBvYmoKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBiYXNlCisKKworY2xhc3MgUmVzcG9uc2VIZWFkZXJzKEJhc2VSZXNwb25zZUhlYWRlcnMpOgorICAgICIiIkltcGxlbWVudHMgbWV0aG9kcyBmcm9tIGBgd3NnaXJlZi5oZWFkZXJzLkhlYWRlcnNgYCwgdXNlZCBieSB3ZWJhcHAuIiIiCisKKyAgICBnZXRfYWxsID0gQmFzZVJlc3BvbnNlSGVhZGVycy5nZXRhbGwKKworICAgIGRlZiBhZGRfaGVhZGVyKHNlbGYsIF9uYW1lLCBfdmFsdWUsICoqX3BhcmFtcyk6CisgICAgICAgICIiIkV4dGVuZGVkIGhlYWRlciBzZXR0aW5nLgorCisgICAgICAgIF9uYW1lIGlzIHRoZSBoZWFkZXIgZmllbGQgdG8gYWRkLiAga2V5d29yZCBhcmd1bWVudHMgY2FuIGJlIHVzZWQgdG8gc2V0CisgICAgICAgIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIGhlYWRlciBmaWVsZCwgd2l0aCB1bmRlcnNjb3JlcyBjb252ZXJ0ZWQKKyAgICAgICAgdG8gZGFzaGVzLiAgTm9ybWFsbHkgdGhlIHBhcmFtZXRlciB3aWxsIGJlIGFkZGVkIGFzIGtleT0idmFsdWUiIHVubGVzcworICAgICAgICB2YWx1ZSBpcyBOb25lLCBpbiB3aGljaCBjYXNlIG9ubHkgdGhlIGtleSB3aWxsIGJlIGFkZGVkLgorCisgICAgICAgIEV4YW1wbGU6OgorCisgICAgICAgICAgICBoLmFkZF9oZWFkZXIoJ2NvbnRlbnQtZGlzcG9zaXRpb24nLCAnYXR0YWNobWVudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU9J2J1ZC5naWYnKQorCisgICAgICAgIE5vdGUgdGhhdCB1bmxpa2UgdGhlIGNvcnJlc3BvbmRpbmcgJ2VtYWlsLm1lc3NhZ2UnIG1ldGhvZCwgdGhpcyBkb2VzCisgICAgICAgICpub3QqIGhhbmRsZSAnKGNoYXJzZXQsIGxhbmd1YWdlLCB2YWx1ZSknIHR1cGxlczogYWxsIHZhbHVlcyBtdXN0IGJlCisgICAgICAgIHN0cmluZ3Mgb3IgTm9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIHBhcnRzID0gW10KKyAgICAgICAgaWYgX3ZhbHVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKF92YWx1ZSkKKworICAgICAgICBmb3IgaywgdiBpbiBfcGFyYW1zLml0ZW1zKCk6CisgICAgICAgICAgICBrID0gay5yZXBsYWNlKCdfJywgJy0nKQorICAgICAgICAgICAgaWYgdiBpcyBub3QgTm9uZSBhbmQgbGVuKHYpID4gMDoKKyAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKCdcXCcsICdcXFxcJykucmVwbGFjZSgnIicsIHInXCInKQorICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgnJXM9IiVzIicgJSAoaywgdikpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChrKQorCisgICAgICAgIHNlbGYuYWRkKF9uYW1lLCAnOyAnLmpvaW4ocGFydHMpKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGZvcm1hdHRlZCBoZWFkZXJzIHJlYWR5IGZvciBIVFRQIHRyYW5zbWlzc2lvbi4iIiIKKyAgICAgICAgcmV0dXJuICdcclxuJy5qb2luKFsnJXM6ICVzJyAlIHYgZm9yIHYgaW4gc2VsZi5pdGVtcygpXSArIFsnJywgJyddKQorCisKK2NsYXNzIFJlc3BvbnNlKHdlYm9iLlJlc3BvbnNlKToKKyAgICAiIiJBYnN0cmFjdGlvbiBmb3IgYW4gSFRUUCByZXNwb25zZS4KKworICAgIE1vc3QgZXh0cmEgbWV0aG9kcyBhbmQgYXR0cmlidXRlcyBhcmUgcG9ydGVkIGZyb20gd2ViYXBwLiBDaGVjayB0aGUKKyAgICBgV2ViT2IgZG9jdW1lbnRhdGlvbiA8V2ViT2I+YF8gZm9yIHRoZSBvbmVzIG5vdCBsaXN0ZWQgaGVyZS4KKworICAgIERpZmZlcmVuY2VzIGZyb20gd2ViYXBwLlJlc3BvbnNlOgorCisgICAgLSBgYG91dGBgIGlzIG5vdCBhIGBgU3RyaW5nSU8uU3RyaW5nSU9gYCBpbnN0YW5jZS4gSW5zdGVhZCBpdCBpcyB0aGUKKyAgICAgIHJlc3BvbnNlIGl0c2VsZiwgYXMgaXQgaGFzIHRoZSBtZXRob2QgYGB3cml0ZSgpYGAuCisgICAgLSBBcyBpbiBXZWJPYiwgYGBzdGF0dXNgYCBpcyB0aGUgY29kZSBwbHVzIG1lc3NhZ2UsIGUuZy4sICcyMDAgT0snLCB3aGlsZQorICAgICAgaW4gd2ViYXBwIGl0IGlzIHRoZSBpbnRlZ2VyIGNvZGUuIFRoZSBzdGF0dXMgY29kZSBhcyBhbiBpbnRlZ2VyIGlzCisgICAgICBhdmFpbGFibGUgaW4gYGBzdGF0dXNfaW50YGAsIGFuZCB0aGUgc3RhdHVzIG1lc3NhZ2UgaXMgYXZhaWxhYmxlIGluCisgICAgICBgYHN0YXR1c19tZXNzYWdlYGAuCisgICAgLSBgYHJlc3BvbnNlLmhlYWRlcnNgYCByYWlzZXMgYW4gZXhjZXB0aW9uIHdoZW4gYSBrZXkgdGhhdCBkb2Vzbid0IGV4aXN0CisgICAgICBpcyBhY2Nlc3NlZCBvciBkZWxldGVkLCBkaWZmZXJlbnRseSBmcm9tIGBgd3NnaXJlZi5oZWFkZXJzLkhlYWRlcnNgYC4KKyAgICAiIiIKKworICAgICM6IERlZmF1bHQgY2hhcnNldCBhcyBpbiB3ZWJhcHAuCisgICAgZGVmYXVsdF9jaGFyc2V0ID0gJ3V0Zi04JworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIkNvbnN0cnVjdHMgYSByZXNwb25zZSB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLiIiIgorICAgICAgICBzdXBlcihSZXNwb25zZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmhlYWRlcnNbJ0NhY2hlLUNvbnRyb2wnXSA9ICduby1jYWNoZScKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBvdXQoc2VsZik6CisgICAgICAgICIiIkEgcmVmZXJlbmNlIHRvIHRoZSBSZXNwb25zZSBpbnN0YW5jZSBpdHNlbGYsIGZvciBjb21wYXRpYmlsaXR5IHdpdGgKKyAgICAgICAgd2ViYXBwIG9ubHk6IHdlYmFwcCB1c2VzIGBSZXNwb25zZS5vdXQud3JpdGUoKWAsIHNvIHdlIHBvaW50IGBvdXRgIHRvCisgICAgICAgIGBzZWxmYCBhbmQgaXQgd2lsbCB1c2UgYFJlc3BvbnNlLndyaXRlKClgLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiB3cml0ZShzZWxmLCB0ZXh0KToKKyAgICAgICAgIiIiQXBwZW5kcyBhIHRleHQgdG8gdGhlIHJlc3BvbnNlIGJvZHkuIiIiCisgICAgICAgICMgd2ViYXBwIHVzZXMgU3RyaW5nSU8gYXMgUmVzcG9uc2Uub3V0LCBzbyB3ZSBuZWVkIHRvIGNvbnZlcnQgYW55dGhpbmcKKyAgICAgICAgIyB0aGF0IGlzIG5vdCBzdHIgb3IgdW5pY29kZSB0byBzdHJpbmcgdG8ga2VlcCBzYW1lIGJlaGF2aW9yLgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh0ZXh0LCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgIHRleHQgPSB1bmljb2RlKHRleHQpCisKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh0ZXh0LCB1bmljb2RlKSBhbmQgbm90IHNlbGYuY2hhcnNldDoKKyAgICAgICAgICAgIHNlbGYuY2hhcnNldCA9IHNlbGYuZGVmYXVsdF9jaGFyc2V0CisKKyAgICAgICAgc3VwZXIoUmVzcG9uc2UsIHNlbGYpLndyaXRlKHRleHQpCisKKyAgICBkZWYgX3NldF9zdGF0dXMoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiJUaGUgc3RhdHVzIHN0cmluZywgaW5jbHVkaW5nIGNvZGUgYW5kIG1lc3NhZ2UuIiIiCisgICAgICAgIG1lc3NhZ2UgPSBOb25lCisgICAgICAgICMgQWNjZXB0IGxvbmcgYmVjYXVzZSB1cmxmZXRjaCBpbiBBcHAgRW5naW5lIHJldHVybnMgY29kZXMgYXMgbG9uZ3MuCisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIChpbnQsIGxvbmcpKToKKyAgICAgICAgICAgIGNvZGUgPSBpbnQodmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB1bmljb2RlKToKKyAgICAgICAgICAgICAgICAjIFN0YXR1cyBtZXNzYWdlcyBoYXZlIHRvIGJlIEFTQ0lJIHNhZmUsIHNvIHRoaXMgaXMgT0suCisgICAgICAgICAgICAgICAgdmFsdWUgPSBzdHIodmFsdWUpCisKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJ1lvdSBtdXN0IHNldCBzdGF0dXMgdG8gYSBzdHJpbmcgb3IgaW50ZWdlciAobm90ICVzKScgJQorICAgICAgICAgICAgICAgICAgICB0eXBlKHZhbHVlKSkKKworICAgICAgICAgICAgcGFydHMgPSB2YWx1ZS5zcGxpdCgnICcsIDEpCisgICAgICAgICAgICBjb2RlID0gaW50KHBhcnRzWzBdKQorICAgICAgICAgICAgaWYgbGVuKHBhcnRzKSA9PSAyOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBwYXJ0c1sxXQorCisgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlIG9yIFJlc3BvbnNlLmh0dHBfc3RhdHVzX21lc3NhZ2UoY29kZSkKKyAgICAgICAgc2VsZi5fc3RhdHVzID0gJyVkICVzJyAlIChjb2RlLCBtZXNzYWdlKQorCisgICAgZGVmIF9nZXRfc3RhdHVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fc3RhdHVzCisKKyAgICBzdGF0dXMgPSBwcm9wZXJ0eShfZ2V0X3N0YXR1cywgX3NldF9zdGF0dXMsIGRvYz1fc2V0X3N0YXR1cy5fX2RvY19fKQorCisgICAgZGVmIHNldF9zdGF0dXMoc2VsZiwgY29kZSwgbWVzc2FnZT1Ob25lKToKKyAgICAgICAgIiIiU2V0cyB0aGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGlzIHJlc3BvbnNlLgorCisgICAgICAgIDpwYXJhbSBjb2RlOgorICAgICAgICAgICAgVGhlIEhUVFAgc3RhdHVzIHN0cmluZyB0byB1c2UKKyAgICAgICAgOnBhcmFtIG1lc3NhZ2U6CisgICAgICAgICAgICBBIHN0YXR1cyBzdHJpbmcuIElmIG5vbmUgaXMgZ2l2ZW4sIHVzZXMgdGhlIGRlZmF1bHQgZnJvbSB0aGUKKyAgICAgICAgICAgIEhUVFAvMS4xIHNwZWNpZmljYXRpb24uCisgICAgICAgICIiIgorICAgICAgICBpZiBtZXNzYWdlOgorICAgICAgICAgICAgc2VsZi5zdGF0dXMgPSAnJWQgJXMnICUgKGNvZGUsIG1lc3NhZ2UpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnN0YXR1cyA9IGNvZGUKKworICAgIGRlZiBfZ2V0X3N0YXR1c19tZXNzYWdlKHNlbGYpOgorICAgICAgICAiIiJUaGUgcmVzcG9uc2Ugc3RhdHVzIG1lc3NhZ2UsIGFzIGEgc3RyaW5nLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5zdGF0dXMuc3BsaXQoJyAnLCAxKVsxXQorCisgICAgZGVmIF9zZXRfc3RhdHVzX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CisgICAgICAgIHNlbGYuc3RhdHVzID0gJyVkICVzJyAlIChzZWxmLnN0YXR1c19pbnQsIG1lc3NhZ2UpCisKKyAgICBzdGF0dXNfbWVzc2FnZSA9IHByb3BlcnR5KF9nZXRfc3RhdHVzX21lc3NhZ2UsIF9zZXRfc3RhdHVzX21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2M9X2dldF9zdGF0dXNfbWVzc2FnZS5fX2RvY19fKQorCisgICAgZGVmIF9nZXRfaGVhZGVycyhzZWxmKToKKyAgICAgICAgIiIiVGhlIGhlYWRlcnMgYXMgYSBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0LiIiIgorICAgICAgICBpZiBzZWxmLl9oZWFkZXJzIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9oZWFkZXJzID0gUmVzcG9uc2VIZWFkZXJzLnZpZXdfbGlzdChzZWxmLmhlYWRlcmxpc3QpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hlYWRlcnMKKworICAgIGRlZiBfc2V0X2hlYWRlcnMoc2VsZiwgdmFsdWUpOgorICAgICAgICBpZiBoYXNhdHRyKHZhbHVlLCAnaXRlbXMnKToKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuaXRlbXMoKQorICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignUmVzcG9uc2UgaGVhZGVycyBtdXN0IGJlIGEgbGlzdCBvciBkaWN0aW9uYXJ5LicpCisKKyAgICAgICAgc2VsZi5oZWFkZXJsaXN0ID0gdmFsdWUKKyAgICAgICAgc2VsZi5faGVhZGVycyA9IE5vbmUKKworICAgIGhlYWRlcnMgPSBwcm9wZXJ0eShfZ2V0X2hlYWRlcnMsIF9zZXRfaGVhZGVycywgZG9jPV9nZXRfaGVhZGVycy5fX2RvY19fKQorCisgICAgZGVmIGhhc19lcnJvcihzZWxmKToKKyAgICAgICAgIiIiSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJlc3BvbnNlIHdhcyBhbiBlcnJvciByZXNwb25zZS4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RhdHVzX2ludCA+PSA0MDAKKworICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgIiIiQ2xlYXJzIGFsbCBkYXRhIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBzdHJlYW0gc28gdGhhdCBpdCBpcyBlbXB0eS4iIiIKKyAgICAgICAgc2VsZi5ib2R5ID0gJycKKworICAgIGRlZiB3c2dpX3dyaXRlKHNlbGYsIHN0YXJ0X3Jlc3BvbnNlKToKKyAgICAgICAgIiIiV3JpdGVzIHRoaXMgcmVzcG9uc2UgdXNpbmcgdXNpbmcgdGhlIGdpdmVuIFdTR0kgZnVuY3Rpb24uCisKKyAgICAgICAgVGhpcyBpcyBvbmx5IGhlcmUgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBgYHdlYmFwcC5XU0dJQXBwbGljYXRpb25gYC4KKworICAgICAgICA6cGFyYW0gc3RhcnRfcmVzcG9uc2U6CisgICAgICAgICAgICBUaGUgV1NHSS1jb21wYXRpYmxlIHN0YXJ0X3Jlc3BvbnNlIGZ1bmN0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgKHNlbGYuaGVhZGVycy5nZXQoJ0NhY2hlLUNvbnRyb2wnKSA9PSAnbm8tY2FjaGUnIGFuZAorICAgICAgICAgICAgbm90IHNlbGYuaGVhZGVycy5nZXQoJ0V4cGlyZXMnKSk6CisgICAgICAgICAgICBzZWxmLmhlYWRlcnNbJ0V4cGlyZXMnXSA9ICdGcmksIDAxIEphbiAxOTkwIDAwOjAwOjAwIEdNVCcKKyAgICAgICAgICAgIHNlbGYuaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSA9IHN0cihsZW4oc2VsZi5ib2R5KSkKKworICAgICAgICB3cml0ZSA9IHN0YXJ0X3Jlc3BvbnNlKHNlbGYuc3RhdHVzLCBzZWxmLmhlYWRlcmxpc3QpCisgICAgICAgIHdyaXRlKHNlbGYuYm9keSkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgaHR0cF9zdGF0dXNfbWVzc2FnZShjb2RlKToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgZGVmYXVsdCBIVFRQIHN0YXR1cyBtZXNzYWdlIGZvciB0aGUgZ2l2ZW4gY29kZS4KKworICAgICAgICA6cGFyYW0gY29kZToKKyAgICAgICAgICAgIFRoZSBIVFRQIGNvZGUgZm9yIHdoaWNoIHdlIHdhbnQgYSBtZXNzYWdlLgorICAgICAgICAiIiIKKyAgICAgICAgbWVzc2FnZSA9IHN0YXR1c19yZWFzb25zLmdldChjb2RlKQorICAgICAgICBpZiBub3QgbWVzc2FnZToKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdJbnZhbGlkIEhUVFAgc3RhdHVzIGNvZGU6ICVkJyAlIGNvZGUpCisKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2UKKworCitjbGFzcyBSZXF1ZXN0SGFuZGxlcihvYmplY3QpOgorICAgICIiIkJhc2UgSFRUUCByZXF1ZXN0IGhhbmRsZXIuCisKKyAgICBJbXBsZW1lbnRzIG1vc3Qgb2YgYGB3ZWJhcHAuUmVxdWVzdEhhbmRsZXJgYCBpbnRlcmZhY2UuCisgICAgIiIiCisKKyAgICAjOiBBIDpjbGFzczpgUmVxdWVzdGAgaW5zdGFuY2UuCisgICAgcmVxdWVzdCA9IE5vbmUKKyAgICAjOiBBIDpjbGFzczpgUmVzcG9uc2VgIGluc3RhbmNlLgorICAgIHJlc3BvbnNlID0gTm9uZQorICAgICM6IEEgOmNsYXNzOmBXU0dJQXBwbGljYXRpb25gIGluc3RhbmNlLgorICAgIGFwcCA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0PU5vbmUsIHJlc3BvbnNlPU5vbmUpOgorICAgICAgICAiIiJJbml0aWFsaXplcyB0aGlzIHJlcXVlc3QgaGFuZGxlciB3aXRoIHRoZSBnaXZlbiBXU0dJIGFwcGxpY2F0aW9uLAorICAgICAgICBSZXF1ZXN0IGFuZCBSZXNwb25zZS4KKworICAgICAgICBXaGVuIGluc3RhbnRpYXRlZCBieSBgYHdlYmFwcC5XU0dJQXBwbGljYXRpb25gYCwgcmVxdWVzdCBhbmQgcmVzcG9uc2UKKyAgICAgICAgYXJlIG5vdCBzZXQgb24gaW5zdGFudGlhdGlvbi4gSW5zdGVhZCwgaW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCByaWdodAorICAgICAgICBhZnRlciB0aGUgaGFuZGxlciBpcyBjcmVhdGVkIHRvIHNldCB0aGVtLgorCisgICAgICAgIEFsc28gaW4gd2ViYXBwIGRpc3BhdGNoaW5nIGlzIGRvbmUgYnkgdGhlIFdTR0kgYXBwLCB3aGlsZSB3ZWJhcHAyCisgICAgICAgIGRvZXMgaXQgaGVyZSB0byBhbGxvdyBtb3JlIGZsZXhpYmlsaXR5IGluIGV4dGVuZGVkIGNsYXNzZXM6IGhhbmRsZXJzCisgICAgICAgIGNhbiB3cmFwIDptZXRoOmBkaXNwYXRjaGAgdG8gY2hlY2sgZm9yIGNvbmRpdGlvbnMgYmVmb3JlIGV4ZWN1dGluZyB0aGUKKyAgICAgICAgcmVxdWVzdGVkIG1ldGhvZCBhbmQvb3IgcG9zdC1wcm9jZXNzIHRoZSByZXNwb25zZS4KKworICAgICAgICAuLiBub3RlOjoKKyAgICAgICAgICAgUGFyYW1ldGVycyBhcmUgb3B0aW9uYWwgb25seSB0byBzdXBwb3J0IHdlYmFwcCdzIGNvbnN0cnVjdG9yIHdoaWNoCisgICAgICAgICAgIGRvZXNuJ3QgdGFrZSBhbnkgYXJndW1lbnRzLiBDb25zaWRlciB0aGVtIGFzIHJlcXVpcmVkLgorCisgICAgICAgIDpwYXJhbSByZXF1ZXN0OgorICAgICAgICAgICAgQSA6Y2xhc3M6YFJlcXVlc3RgIGluc3RhbmNlLgorICAgICAgICA6cGFyYW0gcmVzcG9uc2U6CisgICAgICAgICAgICBBIDpjbGFzczpgUmVzcG9uc2VgIGluc3RhbmNlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5pbml0aWFsaXplKHJlcXVlc3QsIHJlc3BvbnNlKQorCisgICAgZGVmIGluaXRpYWxpemUoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAiIiJJbml0aWFsaXplcyB0aGlzIHJlcXVlc3QgaGFuZGxlciB3aXRoIHRoZSBnaXZlbiBXU0dJIGFwcGxpY2F0aW9uLAorICAgICAgICBSZXF1ZXN0IGFuZCBSZXNwb25zZS4KKworICAgICAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgICAgIEEgOmNsYXNzOmBSZXF1ZXN0YCBpbnN0YW5jZS4KKyAgICAgICAgOnBhcmFtIHJlc3BvbnNlOgorICAgICAgICAgICAgQSA6Y2xhc3M6YFJlc3BvbnNlYCBpbnN0YW5jZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgc2VsZi5yZXNwb25zZSA9IHJlc3BvbnNlCisgICAgICAgIHNlbGYuYXBwID0gV1NHSUFwcGxpY2F0aW9uLmFjdGl2ZV9pbnN0YW5jZQorCisgICAgZGVmIGRpc3BhdGNoKHNlbGYpOgorICAgICAgICAiIiJEaXNwYXRjaGVzIHRoZSByZXF1ZXN0LgorCisgICAgICAgIFRoaXMgd2lsbCBmaXJzdCBjaGVjayBpZiB0aGVyZSdzIGEgaGFuZGxlcl9tZXRob2QgZGVmaW5lZCBpbiB0aGUKKyAgICAgICAgbWF0Y2hlZCByb3V0ZSwgYW5kIGlmIG5vdCBpdCdsbCB1c2UgdGhlIG1ldGhvZCBjb3JyZXNwb25kZW50IHRvIHRoZQorICAgICAgICByZXF1ZXN0IG1ldGhvZCAoYGBnZXQoKWBgLCBgYHBvc3QoKWBgIGV0YykuCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0ID0gc2VsZi5yZXF1ZXN0CisgICAgICAgIG1ldGhvZF9uYW1lID0gcmVxdWVzdC5yb3V0ZS5oYW5kbGVyX21ldGhvZAorICAgICAgICBpZiBub3QgbWV0aG9kX25hbWU6CisgICAgICAgICAgICBtZXRob2RfbmFtZSA9IF9ub3JtYWxpemVfaGFuZGxlcl9tZXRob2QocmVxdWVzdC5tZXRob2QpCisKKyAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihzZWxmLCBtZXRob2RfbmFtZSwgTm9uZSkKKyAgICAgICAgaWYgbWV0aG9kIGlzIE5vbmU6CisgICAgICAgICAgICAjIDQwNSBNZXRob2QgTm90IEFsbG93ZWQuCisgICAgICAgICAgICAjIFRoZSByZXNwb25zZSBNVVNUIGluY2x1ZGUgYW4gQWxsb3cgaGVhZGVyIGNvbnRhaW5pbmcgYQorICAgICAgICAgICAgIyBsaXN0IG9mIHZhbGlkIG1ldGhvZHMgZm9yIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuCisgICAgICAgICAgICAjIGh0dHA6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMTAuaHRtbCNzZWMxMC40LjYKKyAgICAgICAgICAgIHZhbGlkID0gJywgJy5qb2luKF9nZXRfaGFuZGxlcl9tZXRob2RzKHNlbGYpKQorICAgICAgICAgICAgc2VsZi5hYm9ydCg0MDUsIGhlYWRlcnM9WygnQWxsb3cnLCB2YWxpZCldKQorCisgICAgICAgICMgVGhlIGhhbmRsZXIgb25seSByZWNlaXZlcyAqYXJncyBpZiBubyBuYW1lZCB2YXJpYWJsZXMgYXJlIHNldC4KKyAgICAgICAgYXJncywga3dhcmdzID0gcmVxdWVzdC5yb3V0ZV9hcmdzLCByZXF1ZXN0LnJvdXRlX2t3YXJncworICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICBhcmdzID0gKCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gbWV0aG9kKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZV9leGNlcHRpb24oZSwgc2VsZi5hcHAuZGVidWcpCisKKyAgICBkZWYgZXJyb3Ioc2VsZiwgY29kZSk6CisgICAgICAgICIiIkNsZWFycyB0aGUgcmVzcG9uc2UgYW5kIHNldHMgdGhlIGdpdmVuIEhUVFAgc3RhdHVzIGNvZGUuCisKKyAgICAgICAgVGhpcyBkb2Vzbid0IHN0b3AgY29kZSBleGVjdXRpb247IGZvciB0aGlzLCB1c2UgOm1ldGg6YGFib3J0YC4KKworICAgICAgICA6cGFyYW0gY29kZToKKyAgICAgICAgICAgIEhUVFAgc3RhdHVzIGVycm9yIGNvZGUgKGUuZy4sIDUwMSkuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnJlc3BvbnNlLnN0YXR1cyA9IGNvZGUKKyAgICAgICAgc2VsZi5yZXNwb25zZS5jbGVhcigpCisKKyAgICBkZWYgYWJvcnQoc2VsZiwgY29kZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiUmFpc2VzIGFuIDpjbGFzczpgSFRUUEV4Y2VwdGlvbmAuCisKKyAgICAgICAgVGhpcyBzdG9wcyBjb2RlIGV4ZWN1dGlvbiwgbGVhdmluZyB0aGUgSFRUUCBleGNlcHRpb24gdG8gYmUgaGFuZGxlZAorICAgICAgICBieSBhbiBleGNlcHRpb24gaGFuZGxlci4KKworICAgICAgICA6cGFyYW0gY29kZToKKyAgICAgICAgICAgIEhUVFAgc3RhdHVzIGNvZGUgKGUuZy4sIDQwNCkuCisgICAgICAgIDpwYXJhbSBhcmdzOgorICAgICAgICAgICAgUG9zaXRpb25hbCBhcmd1bWVudHMgdG8gYmUgcGFzc2VkIHRvIHRoZSBleGNlcHRpb24gY2xhc3MuCisgICAgICAgIDpwYXJhbSBrd2FyZ3M6CisgICAgICAgICAgICBLZXl3b3JkIGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8gdGhlIGV4Y2VwdGlvbiBjbGFzcy4KKyAgICAgICAgIiIiCisgICAgICAgIGFib3J0KGNvZGUsICphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiByZWRpcmVjdChzZWxmLCB1cmksIHBlcm1hbmVudD1GYWxzZSwgYWJvcnQ9RmFsc2UsIGNvZGU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgYm9keT1Ob25lKToKKyAgICAgICAgIiIiSXNzdWVzIGFuIEhUVFAgcmVkaXJlY3QgdG8gdGhlIGdpdmVuIHJlbGF0aXZlIFVSSS4KKworICAgICAgICBUaGUgYXJndW1lbnRzIGFyZSBkZXNjcmliZWQgaW4gOmZ1bmM6YHJlZGlyZWN0YC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiByZWRpcmVjdCh1cmksIHBlcm1hbmVudD1wZXJtYW5lbnQsIGFib3J0PWFib3J0LCBjb2RlPWNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICBib2R5PWJvZHksIHJlcXVlc3Q9c2VsZi5yZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U9c2VsZi5yZXNwb25zZSkKKworICAgIGRlZiByZWRpcmVjdF90byhzZWxmLCBfbmFtZSwgX3Blcm1hbmVudD1GYWxzZSwgX2Fib3J0PUZhbHNlLCBfY29kZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICBfYm9keT1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJDb252ZW5pZW5jZSBtZXRob2QgbWl4aW5nIDptZXRoOmByZWRpcmVjdGAgYW5kIDptZXRoOmB1cmlfZm9yYC4KKworICAgICAgICBUaGUgYXJndW1lbnRzIGFyZSBkZXNjcmliZWQgaW4gOmZ1bmM6YHJlZGlyZWN0YCBhbmQgOmZ1bmM6YHVyaV9mb3JgLgorICAgICAgICAiIiIKKyAgICAgICAgdXJpID0gc2VsZi51cmlfZm9yKF9uYW1lLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHJldHVybiBzZWxmLnJlZGlyZWN0KHVyaSwgcGVybWFuZW50PV9wZXJtYW5lbnQsIGFib3J0PV9hYm9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZT1fY29kZSwgYm9keT1fYm9keSkKKworICAgIGRlZiB1cmlfZm9yKHNlbGYsIF9uYW1lLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJSZXR1cm5zIGEgVVJJIGZvciBhIG5hbWVkIDpjbGFzczpgUm91dGVgLgorCisgICAgICAgIC4uIHNlZWFsc286OiA6bWV0aDpgUm91dGVyLmJ1aWxkYC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmFwcC5yb3V0ZXIuYnVpbGQoc2VsZi5yZXF1ZXN0LCBfbmFtZSwgYXJncywga3dhcmdzKQorICAgICMgQWxpYXMuCisgICAgdXJsX2ZvciA9IHVyaV9mb3IKKworICAgIGRlZiBoYW5kbGVfZXhjZXB0aW9uKHNlbGYsIGV4Y2VwdGlvbiwgZGVidWcpOgorICAgICAgICAiIiJDYWxsZWQgaWYgdGhpcyBoYW5kbGVyIHRocm93cyBhbiBleGNlcHRpb24gZHVyaW5nIGV4ZWN1dGlvbi4KKworICAgICAgICBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byByZS1yYWlzZSB0aGUgZXhjZXB0aW9uIHRvIGJlIGhhbmRsZWQgYnkKKyAgICAgICAgOm1ldGg6YFdTR0lBcHBsaWNhdGlvbi5oYW5kbGVfZXhjZXB0aW9uYC4KKworICAgICAgICA6cGFyYW0gZXhjZXB0aW9uOgorICAgICAgICAgICAgVGhlIGV4Y2VwdGlvbiB0aGF0IHdhcyB0aHJvd24uCisgICAgICAgIDpwYXJhbSBkZWJ1Z19tb2RlOgorICAgICAgICAgICAgVHJ1ZSBpZiB0aGUgd2ViIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJhaXNlCisKKworY2xhc3MgUmVkaXJlY3RIYW5kbGVyKFJlcXVlc3RIYW5kbGVyKToKKyAgICAiIiJSZWRpcmVjdHMgdG8gdGhlIGdpdmVuIFVSSSBmb3IgYWxsIEdFVCByZXF1ZXN0cy4KKworICAgIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aGVuIGRlZmluaW5nIFVSSSByb3V0ZXMuIFlvdSBtdXN0IHByb3ZpZGUgYXQKKyAgICBsZWFzdCB0aGUga2V5d29yZCBhcmd1bWVudCAqdXJsKiBpbiB0aGUgcm91dGUgZGVmYXVsdCB2YWx1ZXMuIEV4YW1wbGU6OgorCisgICAgICAgIGRlZiBnZXRfcmVkaXJlY3RfdXJsKGhhbmRsZXIsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlci51cmlfZm9yKCduZXctcm91dGUtbmFtZScpCisKKyAgICAgICAgYXBwID0gV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgICAgIFJvdXRlKCcvb2xkLXVybCcsIFJlZGlyZWN0SGFuZGxlciwgZGVmYXVsdHM9eydfdXJpJzogJy9uZXctdXJsJ30pLAorICAgICAgICAgICAgUm91dGUoJy9vdGhlci1vbGQtdXJsJywgUmVkaXJlY3RIYW5kbGVyLCBkZWZhdWx0cz17CisgICAgICAgICAgICAgICAgICAnX3VyaSc6IGdldF9yZWRpcmVjdF91cmx9KSwKKyAgICAgICAgXSkKKworICAgIEJhc2VkIG9uIGlkZWEgZnJvbSBgVG9ybmFkb2BfLgorICAgICIiIgorCisgICAgZGVmIGdldChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJQZXJmb3JtcyBhIHJlZGlyZWN0LgorCisgICAgICAgIFR3byBrZXl3b3JkIGFyZ3VtZW50cyBjYW4gYmUgcGFzc2VkIHRocm91Z2ggdGhlIFVSSSByb3V0ZToKKworICAgICAgICAtICoqX3VyaSoqOiBBIFVSSSBzdHJpbmcgb3IgYSBjYWxsYWJsZSB0aGF0IHJldHVybnMgYSBVUkkuIFRoZSBjYWxsYWJsZQorICAgICAgICAgIGlzIGNhbGxlZCBwYXNzaW5nIGBgKGhhbmRsZXIsICphcmdzLCAqKmt3YXJncylgYCBhcyBhcmd1bWVudHMuCisgICAgICAgIC0gKipfY29kZSoqOiBUaGUgcmVkaXJlY3Qgc3RhdHVzIGNvZGUuIERlZmF1bHQgaXMgMzAxIChwZXJtYW5lbnQKKyAgICAgICAgICByZWRpcmVjdCkuCisgICAgICAgICIiIgorICAgICAgICB1cmkgPSBrd2FyZ3MucG9wKCdfdXJpJywgJy8nKQorICAgICAgICBwZXJtYW5lbnQgPSBrd2FyZ3MucG9wKCdfcGVybWFuZW50JywgVHJ1ZSkKKyAgICAgICAgY29kZSA9IGt3YXJncy5wb3AoJ19jb2RlJywgTm9uZSkKKworICAgICAgICBmdW5jID0gZ2V0YXR0cih1cmksICdfX2NhbGxfXycsIE5vbmUpCisgICAgICAgIGlmIGZ1bmM6CisgICAgICAgICAgICB1cmkgPSBmdW5jKHNlbGYsICphcmdzLCAqKmt3YXJncykKKworICAgICAgICBzZWxmLnJlZGlyZWN0KHVyaSwgcGVybWFuZW50PXBlcm1hbmVudCwgY29kZT1jb2RlKQorCisKK2NsYXNzIGNhY2hlZF9wcm9wZXJ0eShvYmplY3QpOgorICAgICIiIkEgZGVjb3JhdG9yIHRoYXQgY29udmVydHMgYSBmdW5jdGlvbiBpbnRvIGEgbGF6eSBwcm9wZXJ0eS4KKworICAgIFRoZSBmdW5jdGlvbiB3cmFwcGVkIGlzIGNhbGxlZCB0aGUgZmlyc3QgdGltZSB0byByZXRyaWV2ZSB0aGUgcmVzdWx0CisgICAgYW5kIHRoZW4gdGhhdCBjYWxjdWxhdGVkIHJlc3VsdCBpcyB1c2VkIHRoZSBuZXh0IHRpbWUgeW91IGFjY2VzcworICAgIHRoZSB2YWx1ZTo6CisKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisKKyAgICAgICAgICAgIEBjYWNoZWRfcHJvcGVydHkKKyAgICAgICAgICAgIGRlZiBmb28oc2VsZik6CisgICAgICAgICAgICAgICAgIyBjYWxjdWxhdGUgc29tZXRoaW5nIGltcG9ydGFudCBoZXJlCisgICAgICAgICAgICAgICAgcmV0dXJuIDQyCisKKyAgICBUaGUgY2xhc3MgaGFzIHRvIGhhdmUgYSBgX19kaWN0X19gIGluIG9yZGVyIGZvciB0aGlzIHByb3BlcnR5IHRvCisgICAgd29yay4KKworICAgIC4uIG5vdGU6OiBJbXBsZW1lbnRhdGlvbiBkZXRhaWw6IHRoaXMgcHJvcGVydHkgaXMgaW1wbGVtZW50ZWQgYXMgbm9uLWRhdGEKKyAgICAgICBkZXNjcmlwdG9yLiAgbm9uLWRhdGEgZGVzY3JpcHRvcnMgYXJlIG9ubHkgaW52b2tlZCBpZiB0aGVyZSBpcworICAgICAgIG5vIGVudHJ5IHdpdGggdGhlIHNhbWUgbmFtZSBpbiB0aGUgaW5zdGFuY2UncyBfX2RpY3RfXy4KKyAgICAgICB0aGlzIGFsbG93cyB1cyB0byBjb21wbGV0ZWx5IGdldCByaWQgb2YgdGhlIGFjY2VzcyBmdW5jdGlvbiBjYWxsCisgICAgICAgb3ZlcmhlYWQuICBJZiBvbmUgY2hvc2VzIHRvIGludm9rZSBfX2dldF9fIGJ5IGhhbmQgdGhlIHByb3BlcnR5CisgICAgICAgd2lsbCBzdGlsbCB3b3JrIGFzIGV4cGVjdGVkIGJlY2F1c2UgdGhlIGxvb2t1cCBsb2dpYyBpcyByZXBsaWNhdGVkCisgICAgICAgaW4gX19nZXRfXyBmb3IgbWFudWFsIGludm9jYXRpb24uCisKKyAgICBUaGlzIGNsYXNzIHdhcyBwb3J0ZWQgZnJvbSBgV2Vya3pldWdgXyBhbmQgYEZsYXNrYF8uCisgICAgIiIiCisKKyAgICBfZGVmYXVsdF92YWx1ZSA9IG9iamVjdCgpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuYywgbmFtZT1Ob25lLCBkb2M9Tm9uZSk6CisgICAgICAgIHNlbGYuX19uYW1lX18gPSBuYW1lIG9yIGZ1bmMuX19uYW1lX18KKyAgICAgICAgc2VsZi5fX21vZHVsZV9fID0gZnVuYy5fX21vZHVsZV9fCisgICAgICAgIHNlbGYuX19kb2NfXyA9IGRvYyBvciBmdW5jLl9fZG9jX18KKyAgICAgICAgc2VsZi5mdW5jID0gZnVuYworICAgICAgICBzZWxmLmxvY2sgPSB0aHJlYWRpbmcuUkxvY2soKQorCisgICAgZGVmIF9fZ2V0X18oc2VsZiwgb2JqLCB0eXBlPU5vbmUpOgorICAgICAgICBpZiBvYmogaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgd2l0aCBzZWxmLmxvY2s6CisgICAgICAgICAgICB2YWx1ZSA9IG9iai5fX2RpY3RfXy5nZXQoc2VsZi5fX25hbWVfXywgc2VsZi5fZGVmYXVsdF92YWx1ZSkKKyAgICAgICAgICAgIGlmIHZhbHVlIGlzIHNlbGYuX2RlZmF1bHRfdmFsdWU6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmZ1bmMob2JqKQorICAgICAgICAgICAgICAgIG9iai5fX2RpY3RfX1tzZWxmLl9fbmFtZV9fXSA9IHZhbHVlCisKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorCisKK2NsYXNzIEJhc2VSb3V0ZShvYmplY3QpOgorICAgICIiIkludGVyZmFjZSBmb3IgVVJJIHJvdXRlcy4iIiIKKworICAgICM6IFRoZSByZWdleCB0ZW1wbGF0ZS4KKyAgICB0ZW1wbGF0ZSA9IE5vbmUKKyAgICAjOiBSb3V0ZSBuYW1lLCB1c2VkIHRvIGJ1aWxkIFVSSXMuCisgICAgbmFtZSA9IE5vbmUKKyAgICAjOiBUcnVlIGlmIHRoaXMgcm91dGUgaXMgb25seSB1c2VkIGZvciBVUkkgZ2VuZXJhdGlvbiBhbmQgbmV2ZXIgbWF0Y2hlcy4KKyAgICBidWlsZF9vbmx5ID0gRmFsc2UKKyAgICAjOiBUaGUgaGFuZGxlciBvciBzdHJpbmcgaW4gZG90dGVkIG5vdGF0aW9uIHRvIGJlIGxhemlseSBpbXBvcnRlZC4KKyAgICBoYW5kbGVyID0gTm9uZQorICAgICM6IFRoZSBjdXN0b20gaGFuZGxlciBtZXRob2QsIGlmIGhhbmRsZXIgaXMgYSBjbGFzcy4KKyAgICBoYW5kbGVyX21ldGhvZCA9IE5vbmUKKyAgICAjOiBUaGUgaGFuZGxlciwgaW1wb3J0ZWQgYW5kIHJlYWR5IGZvciBkaXNwYXRjaGluZy4KKyAgICBoYW5kbGVyX2FkYXB0ZXIgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVtcGxhdGUsIGhhbmRsZXI9Tm9uZSwgbmFtZT1Ob25lLCBidWlsZF9vbmx5PUZhbHNlKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZXMgdGhpcyByb3V0ZS4KKworICAgICAgICA6cGFyYW0gdGVtcGxhdGU6CisgICAgICAgICAgICBBIHJlZ2V4IHRvIGJlIG1hdGNoZWQuCisgICAgICAgIDpwYXJhbSBoYW5kbGVyOgorICAgICAgICAgICAgQSBjYWxsYWJsZSBvciBzdHJpbmcgaW4gZG90dGVkIG5vdGF0aW9uIHRvIGJlIGxhemlseSBpbXBvcnRlZCwKKyAgICAgICAgICAgIGUuZy4sIGBgJ215Lm1vZHVsZS5NeUhhbmRsZXInYGAgb3IgYGAnbXkubW9kdWxlLm15X2Z1bmN0aW9uJ2BgLgorICAgICAgICA6cGFyYW0gbmFtZToKKyAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoaXMgcm91dGUsIHVzZWQgdG8gYnVpbGQgVVJJcyBiYXNlZCBvbiBpdC4KKyAgICAgICAgOnBhcmFtIGJ1aWxkX29ubHk6CisgICAgICAgICAgICBJZiBUcnVlLCB0aGlzIHJvdXRlIG5ldmVyIG1hdGNoZXMgYW5kIGlzIHVzZWQgb25seSB0byBidWlsZCBVUklzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgYnVpbGRfb25seSBhbmQgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAiUm91dGUgJXIgaXMgYnVpbGRfb25seSBidXQgZG9lc24ndCBoYXZlIGEgbmFtZS4iICUgc2VsZikKKworICAgICAgICBzZWxmLnRlbXBsYXRlID0gdGVtcGxhdGUKKyAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYuYnVpbGRfb25seSA9IGJ1aWxkX29ubHkKKworICAgIGRlZiBtYXRjaChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiTWF0Y2hlcyBhbGwgcm91dGVzIGFnYWluc3QgYSByZXF1ZXN0IG9iamVjdC4KKworICAgICAgICBUaGUgZmlyc3Qgb25lIHRoYXQgbWF0Y2hlcyBpcyByZXR1cm5lZC4KKworICAgICAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgICAgIEEgOmNsYXNzOmBSZXF1ZXN0YCBpbnN0YW5jZS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIHR1cGxlIGBgKHJvdXRlLCBhcmdzLCBrd2FyZ3MpYGAgaWYgYSByb3V0ZSBtYXRjaGVkLCBvciBOb25lLgorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgYnVpbGQoc2VsZiwgcmVxdWVzdCwgYXJncywga3dhcmdzKToKKyAgICAgICAgIiIiUmV0dXJucyBhIFVSSSBmb3IgdGhpcyByb3V0ZS4KKworICAgICAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgICAgIFRoZSBjdXJyZW50IDpjbGFzczpgUmVxdWVzdGAgb2JqZWN0LgorICAgICAgICA6cGFyYW0gYXJnczoKKyAgICAgICAgICAgIFR1cGxlIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzIHRvIGJ1aWxkIHRoZSBVUkkuCisgICAgICAgIDpwYXJhbSBrd2FyZ3M6CisgICAgICAgICAgICBEaWN0aW9uYXJ5IG9mIGtleXdvcmQgYXJndW1lbnRzIHRvIGJ1aWxkIHRoZSBVUkkuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQW4gYWJzb2x1dGUgb3IgcmVsYXRpdmUgVVJJLgorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgZ2V0X3JvdXRlcyhzZWxmKToKKyAgICAgICAgIiIiR2VuZXJhdG9yIHRvIGdldCBhbGwgcm91dGVzIGZyb20gYSByb3V0ZS4KKworICAgICAgICA6eWllbGRzOgorICAgICAgICAgICAgVGhpcyByb3V0ZSBvciBhbGwgbmVzdGVkIHJvdXRlcyB0aGF0IGl0IGNvbnRhaW5zLgorICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZgorCisgICAgZGVmIGdldF9tYXRjaF9yb3V0ZXMoc2VsZik6CisgICAgICAgICIiIkdlbmVyYXRvciB0byBnZXQgYWxsIHJvdXRlcyB0aGF0IGNhbiBiZSBtYXRjaGVkIGZyb20gYSByb3V0ZS4KKworICAgICAgICBNYXRjaCByb3V0ZXMgbXVzdCBpbXBsZW1lbnQgOm1ldGg6YG1hdGNoYC4KKworICAgICAgICA6eWllbGRzOgorICAgICAgICAgICAgVGhpcyByb3V0ZSBvciBhbGwgbmVzdGVkIHJvdXRlcyB0aGF0IGNhbiBiZSBtYXRjaGVkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuYnVpbGRfb25seToKKyAgICAgICAgICAgIHlpZWxkIHNlbGYKKworICAgIGRlZiBnZXRfYnVpbGRfcm91dGVzKHNlbGYpOgorICAgICAgICAiIiJHZW5lcmF0b3IgdG8gZ2V0IGFsbCByb3V0ZXMgdGhhdCBjYW4gYmUgYnVpbHQgZnJvbSBhIHJvdXRlLgorCisgICAgICAgIEJ1aWxkIHJvdXRlcyBtdXN0IGltcGxlbWVudCA6bWV0aDpgYnVpbGRgLgorCisgICAgICAgIDp5aWVsZHM6CisgICAgICAgICAgICBBIHR1cGxlIGBgKG5hbWUsIHJvdXRlKWBgIGZvciBhbGwgbmVzdGVkIHJvdXRlcyB0aGF0IGNhbiBiZSBidWlsdC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYubmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHlpZWxkIHNlbGYubmFtZSwgc2VsZgorCisKK2NsYXNzIFNpbXBsZVJvdXRlKEJhc2VSb3V0ZSk6CisgICAgIiIiQSByb3V0ZSB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB3ZWJhcHAncyByb3V0aW5nIG1lY2hhbmlzbS4KKworICAgIFVSSSBidWlsZGluZyBpcyBub3QgaW1wbGVtZW50ZWQgYXMgd2ViYXBwIGhhcyBydWRpbWVudGFyIHN1cHBvcnQgZm9yIGl0LAorICAgIGFuZCB0aGlzIGlzIHRoZSBtb3N0IHVua25vd24gd2ViYXBwIGZlYXR1cmUgYW55d2F5LgorICAgICIiIgorCisgICAgQGNhY2hlZF9wcm9wZXJ0eQorICAgIGRlZiByZWdleChzZWxmKToKKyAgICAgICAgIiIiTGF6eSByZWdleCBjb21waWxlci4iIiIKKyAgICAgICAgaWYgbm90IHNlbGYudGVtcGxhdGUuc3RhcnRzd2l0aCgnXicpOgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZSA9ICdeJyArIHNlbGYudGVtcGxhdGUKKworICAgICAgICBpZiBub3Qgc2VsZi50ZW1wbGF0ZS5lbmRzd2l0aCgnJCcpOgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZSArPSAnJCcKKworICAgICAgICByZXR1cm4gcmUuY29tcGlsZShzZWxmLnRlbXBsYXRlKQorCisgICAgZGVmIG1hdGNoKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJNYXRjaGVzIHRoaXMgcm91dGUgYWdhaW5zdCB0aGUgY3VycmVudCByZXF1ZXN0LgorCisgICAgICAgIC4uIHNlZWFsc286OiA6bWV0aDpgQmFzZVJvdXRlLm1hdGNoYC4KKyAgICAgICAgIiIiCisgICAgICAgIG1hdGNoID0gc2VsZi5yZWdleC5tYXRjaCh1cmxsaWIudW5xdW90ZShyZXF1ZXN0LnBhdGgpKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLCBtYXRjaC5ncm91cHMoKSwge30KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8U2ltcGxlUm91dGUoJXIsICVyKT4nICUgKHNlbGYudGVtcGxhdGUsIHNlbGYuaGFuZGxlcikKKworCitjbGFzcyBSb3V0ZShCYXNlUm91dGUpOgorICAgICIiIkEgcm91dGUgZGVmaW5pdGlvbiB0aGF0IG1hcHMgYSBVUkkgcGF0aCB0byBhIGhhbmRsZXIuCisKKyAgICBUaGUgaW5pdGlhbCBjb25jZXB0IHdhcyBiYXNlZCBvbiBgQW5vdGhlciBEby1JdC1Zb3Vyc2VsZiBGcmFtZXdvcmtgXywgYnkKKyAgICBJYW4gQmlja2luZy4KKyAgICAiIiIKKworICAgICM6IERlZmF1bHQgcGFyYW1ldGVycyB2YWx1ZXMuCisgICAgZGVmYXVsdHMgPSBOb25lCisgICAgIzogU2VxdWVuY2Ugb2YgYWxsb3dlZCBIVFRQIG1ldGhvZHMuIElmIG5vdCBzZXQsIGFsbCBtZXRob2RzIGFyZSBhbGxvd2VkLgorICAgIG1ldGhvZHMgPSBOb25lCisgICAgIzogU2VxdWVuY2Ugb2YgYWxsb3dlZCBVUkkgc2NoZW1lcy4gSWYgbm90IHNldCwgYWxsIHNjaGVtZXMgYXJlIGFsbG93ZWQuCisgICAgc2NoZW1lcyA9IE5vbmUKKyAgICAjIExhenkgcHJvcGVydGllcyBleHRyYWN0ZWQgZnJvbSB0aGUgcm91dGUgdGVtcGxhdGUuCisgICAgcmVnZXggPSBOb25lCisgICAgcmV2ZXJzZV90ZW1wbGF0ZSA9IE5vbmUKKyAgICB2YXJpYWJsZXMgPSBOb25lCisgICAgYXJnc19jb3VudCA9IDAKKyAgICBrd2FyZ3NfY291bnQgPSAwCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVtcGxhdGUsIGhhbmRsZXI9Tm9uZSwgbmFtZT1Ob25lLCBkZWZhdWx0cz1Ob25lLAorICAgICAgICAgICAgICAgICBidWlsZF9vbmx5PUZhbHNlLCBoYW5kbGVyX21ldGhvZD1Ob25lLCBtZXRob2RzPU5vbmUsCisgICAgICAgICAgICAgICAgIHNjaGVtZXM9Tm9uZSk6CisgICAgICAgICIiIkluaXRpYWxpemVzIHRoaXMgcm91dGUuCisKKyAgICAgICAgOnBhcmFtIHRlbXBsYXRlOgorICAgICAgICAgICAgQSByb3V0ZSB0ZW1wbGF0ZSB0byBtYXRjaCBhZ2FpbnN0IHRoZSByZXF1ZXN0IHBhdGguIEEgdGVtcGxhdGUKKyAgICAgICAgICAgIGNhbiBoYXZlIHZhcmlhYmxlcyBlbmNsb3NlZCBieSBgYDw+YGAgdGhhdCBkZWZpbmUgYSBuYW1lLCBhCisgICAgICAgICAgICByZWd1bGFyIGV4cHJlc3Npb24gb3IgYm90aC4gRXhhbXBsZXM6CisKKyAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgICAgICAgRm9ybWF0ICAgICAgICAgICAgIEV4YW1wbGUKKyAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgICAgICAgYGA8bmFtZT5gYCAgICAgICAgIGBgJy9ibG9nLzx5ZWFyPi88bW9udGg+J2BgCisgICAgICAgICAgICAgIGBgPDpyZWdleD5gYCAgICAgICBgYCcvYmxvZy88OlxkezR9Pi88OlxkezJ9PidgYAorICAgICAgICAgICAgICBgYDxuYW1lOnJlZ2V4PmBgICAgYGAnL2Jsb2cvPHllYXI6XGR7NH0+Lzxtb250aDpcZHsyfT4nYGAKKyAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAgICAgICAgVGhlIHNhbWUgdGVtcGxhdGUgY2FuIG1peCBwYXJ0cyB3aXRoIG5hbWUsIHJlZ3VsYXIgZXhwcmVzc2lvbiBvcgorICAgICAgICAgICAgYm90aC4KKworICAgICAgICAgICAgSWYgdGhlIG5hbWUgaXMgc2V0LCB0aGUgdmFsdWUgb2YgdGhlIG1hdGNoZWQgcmVndWxhciBleHByZXNzaW9uCisgICAgICAgICAgICBpcyBwYXNzZWQgYXMga2V5d29yZCBhcmd1bWVudCB0byB0aGUgaGFuZGxlci4gT3RoZXJ3aXNlIGl0IGlzCisgICAgICAgICAgICBwYXNzZWQgYXMgcG9zaXRpb25hbCBhcmd1bWVudC4KKworICAgICAgICAgICAgSWYgb25seSB0aGUgbmFtZSBpcyBzZXQsIGl0IHdpbGwgbWF0Y2ggYW55dGhpbmcgZXhjZXB0IGEgc2xhc2guCisgICAgICAgICAgICBTbyB0aGVzZSByb3V0ZXMgYXJlIGVxdWl2YWxlbnQ6OgorCisgICAgICAgICAgICAgICAgUm91dGUoJy88dXNlcl9pZD4vc2V0dGluZ3MnLCBoYW5kbGVyPVNldHRpbmdzSGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICBuYW1lPSd1c2VyLXNldHRpbmdzJykKKyAgICAgICAgICAgICAgICBSb3V0ZSgnLzx1c2VyX2lkOlteL10rPi9zZXR0aW5ncycsIGhhbmRsZXI9U2V0dGluZ3NIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3VzZXItc2V0dGluZ3MnKQorCisgICAgICAgICAgICAuLiBub3RlOjoKKyAgICAgICAgICAgICAgIFRoZSBoYW5kbGVyIG9ubHkgcmVjZWl2ZXMgYGAqYXJnc2BgIGlmIG5vIG5hbWVkIHZhcmlhYmxlcyBhcmUKKyAgICAgICAgICAgICAgIHNldC4gT3RoZXJ3aXNlLCB0aGUgaGFuZGxlciBvbmx5IHJlY2VpdmVzIGBgKiprd2FyZ3NgYC4gVGhpcworICAgICAgICAgICAgICAgYWxsb3dzIHlvdSB0byBzZXQgcmVndWxhciBleHByZXNzaW9ucyB0aGF0IGFyZSBub3QgY2FwdHVyZWQ6CisgICAgICAgICAgICAgICBqdXN0IG1peCBuYW1lZCBhbmQgdW5uYW1lZCB2YXJpYWJsZXMgYW5kIHRoZSBoYW5kbGVyIHdpbGwKKyAgICAgICAgICAgICAgIG9ubHkgcmVjZWl2ZSB0aGUgbmFtZWQgb25lcy4KKworICAgICAgICA6cGFyYW0gaGFuZGxlcjoKKyAgICAgICAgICAgIEEgY2FsbGFibGUgb3Igc3RyaW5nIGluIGRvdHRlZCBub3RhdGlvbiB0byBiZSBsYXppbHkgaW1wb3J0ZWQsCisgICAgICAgICAgICBlLmcuLCBgYCdteS5tb2R1bGUuTXlIYW5kbGVyJ2BgIG9yIGBgJ215Lm1vZHVsZS5teV9mdW5jdGlvbidgYC4KKyAgICAgICAgICAgIEl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBhIG1ldGhvZCBpZiB0aGUgY2FsbGFibGUgaXMgYSBjbGFzcywKKyAgICAgICAgICAgIHNlcGFyYXRpbmcgaXQgYnkgYSBjb2xvbjogYGAnbXkubW9kdWxlLk15SGFuZGxlcjpteV9tZXRob2QnYGAuCisgICAgICAgICAgICBUaGlzIGlzIGEgc2hvcnRjdXQgYW5kIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgZGVmaW5pbmcgdGhlCisgICAgICAgICAgICBgaGFuZGxlcl9tZXRob2RgIHBhcmFtZXRlci4KKyAgICAgICAgOnBhcmFtIG5hbWU6CisgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGlzIHJvdXRlLCB1c2VkIHRvIGJ1aWxkIFVSSXMgYmFzZWQgb24gaXQuCisgICAgICAgIDpwYXJhbSBkZWZhdWx0czoKKyAgICAgICAgICAgIERlZmF1bHQgb3IgZXh0cmEga2V5d29yZHMgdG8gYmUgcmV0dXJuZWQgYnkgdGhpcyByb3V0ZS4gVmFsdWVzCisgICAgICAgICAgICBhbHNvIHByZXNlbnQgaW4gdGhlIHJvdXRlIHZhcmlhYmxlcyBhcmUgdXNlZCB0byBidWlsZCB0aGUgVVJJCisgICAgICAgICAgICB3aGVuIHRoZXkgYXJlIG1pc3NpbmcuCisgICAgICAgIDpwYXJhbSBidWlsZF9vbmx5OgorICAgICAgICAgICAgSWYgVHJ1ZSwgdGhpcyByb3V0ZSBuZXZlciBtYXRjaGVzIGFuZCBpcyB1c2VkIG9ubHkgdG8gYnVpbGQgVVJJcy4KKyAgICAgICAgOnBhcmFtIGhhbmRsZXJfbWV0aG9kOgorICAgICAgICAgICAgVGhlIG5hbWUgb2YgYSBjdXN0b20gaGFuZGxlciBtZXRob2QgdG8gYmUgY2FsbGVkLCBpbiBjYXNlIGBoYW5kbGVyYAorICAgICAgICAgICAgaXMgYSBjbGFzcy4gSWYgbm90IGRlZmluZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIGNhbGwgdGhlCisgICAgICAgICAgICBoYW5kbGVyIG1ldGhvZCBjb3JyZXNwb25kZW50IHRvIHRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kIGluIGxvd2VyCisgICAgICAgICAgICBjYXNlIChlLmcuLCBgZ2V0KClgLCBgcG9zdCgpYCBldGMpLgorICAgICAgICA6cGFyYW0gbWV0aG9kczoKKyAgICAgICAgICAgIEEgc2VxdWVuY2Ugb2YgSFRUUCBtZXRob2RzLiBJZiBzZXQsIHRoZSByb3V0ZSB3aWxsIG9ubHkgbWF0Y2ggaWYKKyAgICAgICAgICAgIHRoZSByZXF1ZXN0IG1ldGhvZCBpcyBhbGxvd2VkLgorICAgICAgICA6cGFyYW0gc2NoZW1lczoKKyAgICAgICAgICAgIEEgc2VxdWVuY2Ugb2YgVVJJIHNjaGVtZXMsIGUuZy4sIGBgWydodHRwJ11gYCBvciBgYFsnaHR0cHMnXWBgLgorICAgICAgICAgICAgSWYgc2V0LCB0aGUgcm91dGUgd2lsbCBvbmx5IG1hdGNoIHJlcXVlc3RzIHdpdGggdGhlc2Ugc2NoZW1lcy4KKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVyKFJvdXRlLCBzZWxmKS5fX2luaXRfXyh0ZW1wbGF0ZSwgaGFuZGxlcj1oYW5kbGVyLCBuYW1lPW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZF9vbmx5PWJ1aWxkX29ubHkpCisgICAgICAgIHNlbGYuZGVmYXVsdHMgPSBkZWZhdWx0cyBvciB7fQorICAgICAgICBzZWxmLm1ldGhvZHMgPSBtZXRob2RzCisgICAgICAgIHNlbGYuc2NoZW1lcyA9IHNjaGVtZXMKKyAgICAgICAgaWYgaXNpbnN0YW5jZShoYW5kbGVyLCBiYXNlc3RyaW5nKSBhbmQgJzonIGluIGhhbmRsZXI6CisgICAgICAgICAgICBpZiBoYW5kbGVyX21ldGhvZDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiSWYgaGFuZGxlcl9tZXRob2QgaXMgZGVmaW5lZCBpbiBhIFJvdXRlLCBoYW5kbGVyICIKKyAgICAgICAgICAgICAgICAgICAgImNhbid0IGhhdmUgYSBjb2xvbiAoZ290ICVyKS4iICUgaGFuZGxlcikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVyLCBzZWxmLmhhbmRsZXJfbWV0aG9kID0gaGFuZGxlci5yc3BsaXQoJzonLCAxKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5oYW5kbGVyX21ldGhvZCA9IGhhbmRsZXJfbWV0aG9kCisKKyAgICBAY2FjaGVkX3Byb3BlcnR5CisgICAgZGVmIHJlZ2V4KHNlbGYpOgorICAgICAgICAiIiJMYXp5IHJvdXRlIHRlbXBsYXRlIHBhcnNlci4iIiIKKyAgICAgICAgcmVnZXgsIHNlbGYucmV2ZXJzZV90ZW1wbGF0ZSwgc2VsZi5hcmdzX2NvdW50LCBzZWxmLmt3YXJnc19jb3VudCwgXAorICAgICAgICAgICAgc2VsZi52YXJpYWJsZXMgPSBfcGFyc2Vfcm91dGVfdGVtcGxhdGUoc2VsZi50ZW1wbGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfc3VmaXg9J1teL10rJykKKyAgICAgICAgcmV0dXJuIHJlZ2V4CisKKyAgICBkZWYgbWF0Y2goc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICIiIk1hdGNoZXMgdGhpcyByb3V0ZSBhZ2FpbnN0IHRoZSBjdXJyZW50IHJlcXVlc3QuCisKKyAgICAgICAgOnJhaXNlczoKKyAgICAgICAgICAgIGBgZXhjLkhUVFBNZXRob2ROb3RBbGxvd2VkYGAgaWYgdGhlIHJvdXRlIGRlZmluZXMgOmF0dHI6YG1ldGhvZHNgCisgICAgICAgICAgICBhbmQgdGhlIHJlcXVlc3QgbWV0aG9kIGlzbid0IGFsbG93ZWQuCisKKyAgICAgICAgLi4gc2VlYWxzbzo6IDptZXRoOmBCYXNlUm91dGUubWF0Y2hgLgorICAgICAgICAiIiIKKyAgICAgICAgbWF0Y2ggPSBzZWxmLnJlZ2V4Lm1hdGNoKHVybGxpYi51bnF1b3RlKHJlcXVlc3QucGF0aCkpCisgICAgICAgIGlmIG5vdCBtYXRjaCBvciBzZWxmLnNjaGVtZXMgYW5kIHJlcXVlc3Quc2NoZW1lIG5vdCBpbiBzZWxmLnNjaGVtZXM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlmIHNlbGYubWV0aG9kcyBhbmQgcmVxdWVzdC5tZXRob2Qgbm90IGluIHNlbGYubWV0aG9kczoKKyAgICAgICAgICAgICMgVGhpcyB3aWxsIGJlIGNhdWdodCBieSB0aGUgcm91dGVyLCBzbyByb3V0ZXMgd2l0aCBkaWZmZXJlbnQKKyAgICAgICAgICAgICMgbWV0aG9kcyBjYW4gYmUgdHJpZWQuCisgICAgICAgICAgICByYWlzZSBleGMuSFRUUE1ldGhvZE5vdEFsbG93ZWQoKQorCisgICAgICAgIGFyZ3MsIGt3YXJncyA9IF9nZXRfcm91dGVfdmFyaWFibGVzKG1hdGNoLCBzZWxmLmRlZmF1bHRzLmNvcHkoKSkKKyAgICAgICAgcmV0dXJuIHNlbGYsIGFyZ3MsIGt3YXJncworCisgICAgZGVmIGJ1aWxkKHNlbGYsIHJlcXVlc3QsIGFyZ3MsIGt3YXJncyk6CisgICAgICAgICIiIlJldHVybnMgYSBVUkkgZm9yIHRoaXMgcm91dGUuCisKKyAgICAgICAgLi4gc2VlYWxzbzo6IDptZXRoOmBSb3V0ZXIuYnVpbGRgLgorICAgICAgICAiIiIKKyAgICAgICAgc2NoZW1lID0ga3dhcmdzLnBvcCgnX3NjaGVtZScsIE5vbmUpCisgICAgICAgIG5ldGxvYyA9IGt3YXJncy5wb3AoJ19uZXRsb2MnLCBOb25lKQorICAgICAgICBhbmNob3IgPSBrd2FyZ3MucG9wKCdfZnJhZ21lbnQnLCBOb25lKQorICAgICAgICBmdWxsID0ga3dhcmdzLnBvcCgnX2Z1bGwnLCBGYWxzZSkgYW5kIG5vdCBzY2hlbWUgYW5kIG5vdCBuZXRsb2MKKworICAgICAgICBpZiBmdWxsIG9yIHNjaGVtZSBvciBuZXRsb2M6CisgICAgICAgICAgICBuZXRsb2MgPSBuZXRsb2Mgb3IgcmVxdWVzdC5ob3N0CisgICAgICAgICAgICBzY2hlbWUgPSBzY2hlbWUgb3IgcmVxdWVzdC5zY2hlbWUKKworICAgICAgICBwYXRoLCBxdWVyeSA9IHNlbGYuX2J1aWxkKGFyZ3MsIGt3YXJncykKKyAgICAgICAgcmV0dXJuIF91cmx1bnNwbGl0KHNjaGVtZSwgbmV0bG9jLCBwYXRoLCBxdWVyeSwgYW5jaG9yKQorCisgICAgZGVmIF9idWlsZChzZWxmLCBhcmdzLCBrd2FyZ3MpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBVUkkgcGF0aCBmb3IgdGhpcyByb3V0ZS4KKworICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgdHVwbGUgYGAocGF0aCwga3dhcmdzKWBgIHdpdGggdGhlIGJ1aWx0IFVSSSBwYXRoIGFuZCBleHRyYQorICAgICAgICAgICAga2V5d29yZHMgdG8gYmUgdXNlZCBhcyBVUkkgcXVlcnkgYXJndW1lbnRzLgorICAgICAgICAiIiIKKyAgICAgICAgIyBBY2Nlc3Mgc2VsZi5yZWdleCBqdXN0IHRvIHNldCB0aGUgbGF6eSBwcm9wZXJ0aWVzLgorICAgICAgICByZWdleCA9IHNlbGYucmVnZXgKKyAgICAgICAgdmFyaWFibGVzID0gc2VsZi52YXJpYWJsZXMKKyAgICAgICAgaWYgc2VsZi5hcmdzX2NvdW50OgorICAgICAgICAgICAgZm9yIGluZGV4LCB2YWx1ZSBpbiBlbnVtZXJhdGUoYXJncyk6CisgICAgICAgICAgICAgICAga2V5ID0gJ19fJWRfXycgJSBpbmRleAorICAgICAgICAgICAgICAgIGlmIGtleSBpbiB2YXJpYWJsZXM6CisgICAgICAgICAgICAgICAgICAgIGt3YXJnc1trZXldID0gdmFsdWUKKworICAgICAgICB2YWx1ZXMgPSB7fQorICAgICAgICBmb3IgbmFtZSwgcmVnZXggaW4gdmFyaWFibGVzLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgdmFsdWUgPSBrd2FyZ3MucG9wKG5hbWUsIHNlbGYuZGVmYXVsdHMuZ2V0KG5hbWUpKQorICAgICAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcignTWlzc2luZyBhcmd1bWVudCAiJXMiIHRvIGJ1aWxkIFVSSS4nICUgXAorICAgICAgICAgICAgICAgICAgICBuYW1lLnN0cmlwKCdfJykpCisKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKworICAgICAgICAgICAgaWYgbm90IHJlZ2V4Lm1hdGNoKHZhbHVlKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdVUkkgYnVpZGluZyBlcnJvcjogVmFsdWUgIiVzIiBpcyBub3QgJworICAgICAgICAgICAgICAgICAgICAnc3VwcG9ydGVkIGZvciBhcmd1bWVudCAiJXMiLicgJSAodmFsdWUsIG5hbWUuc3RyaXAoJ18nKSkpCisKKyAgICAgICAgICAgIHZhbHVlc1tuYW1lXSA9IHZhbHVlCisKKyAgICAgICAgcmV0dXJuIChzZWxmLnJldmVyc2VfdGVtcGxhdGUgJSB2YWx1ZXMsIGt3YXJncykKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8Um91dGUoJXIsICVyLCBuYW1lPSVyLCBkZWZhdWx0cz0lciwgYnVpbGRfb25seT0lcik+JyAlIFwKKyAgICAgICAgICAgIChzZWxmLnRlbXBsYXRlLCBzZWxmLmhhbmRsZXIsIHNlbGYubmFtZSwgc2VsZi5kZWZhdWx0cywKKyAgICAgICAgICAgIHNlbGYuYnVpbGRfb25seSkKKworCitjbGFzcyBCYXNlSGFuZGxlckFkYXB0ZXIob2JqZWN0KToKKyAgICAiIiJBIGJhc2ljIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggYSBoYW5kbGVyLgorCisgICAgVGhpcyBpcyB1c2VkIHdoZW4gdGhlIGhhbmRsZXIgaXMgYSBzaW1wbGUgZnVuY3Rpb246IGl0IGp1c3QgY2FsbHMgdGhlCisgICAgaGFuZGxlciBhbmQgcmV0dXJucyB0aGUgcmVzdWx0ZWQgcmVzcG9uc2UuCisgICAgIiIiCisKKyAgICAjOiBUaGUgaGFuZGxlciB0byBiZSBkaXNwYXRjaGVkLgorICAgIGhhbmRsZXIgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaGFuZGxlcik6CisgICAgICAgIHNlbGYuaGFuZGxlciA9IGhhbmRsZXIKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgICMgVGhlIGhhbmRsZXIgb25seSByZWNlaXZlcyAqYXJncyBpZiBubyBuYW1lZCB2YXJpYWJsZXMgYXJlIHNldC4KKyAgICAgICAgYXJncywga3dhcmdzID0gcmVxdWVzdC5yb3V0ZV9hcmdzLCByZXF1ZXN0LnJvdXRlX2t3YXJncworICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICBhcmdzID0gKCkKKworICAgICAgICByZXR1cm4gc2VsZi5oYW5kbGVyKHJlcXVlc3QsICphcmdzLCAqKmt3YXJncykKKworCitjbGFzcyBXZWJhcHBIYW5kbGVyQWRhcHRlcihCYXNlSGFuZGxlckFkYXB0ZXIpOgorICAgICIiIkFuIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggYSBgYHdlYmFwcC5SZXF1ZXN0SGFuZGxlcmBgLgorCisgICAgTGlrZSBpbiB3ZWJhcHAsIHRoZSBoYW5kbGVyIGlzIGNvbnN0cnVjdGVkLCB0aGVuIGBgaW5pdGlhbGl6ZSgpYGAgaXMKKyAgICBjYWxsZWQsIHRoZW4gdGhlIG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIHRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAiIiIKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgIGhhbmRsZXIgPSBzZWxmLmhhbmRsZXIoKQorICAgICAgICBoYW5kbGVyLmluaXRpYWxpemUocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgIG1ldGhvZF9uYW1lID0gX25vcm1hbGl6ZV9oYW5kbGVyX21ldGhvZChyZXF1ZXN0Lm1ldGhvZCkKKyAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihoYW5kbGVyLCBtZXRob2RfbmFtZSwgTm9uZSkKKyAgICAgICAgaWYgbm90IG1ldGhvZDoKKyAgICAgICAgICAgIGFib3J0KDUwMSkKKworICAgICAgICAjIFRoZSBoYW5kbGVyIG9ubHkgcmVjZWl2ZXMgKmFyZ3MgaWYgbm8gbmFtZWQgdmFyaWFibGVzIGFyZSBzZXQuCisgICAgICAgIGFyZ3MsIGt3YXJncyA9IHJlcXVlc3Qucm91dGVfYXJncywgcmVxdWVzdC5yb3V0ZV9rd2FyZ3MKKyAgICAgICAgaWYga3dhcmdzOgorICAgICAgICAgICAgYXJncyA9ICgpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbWV0aG9kKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGhhbmRsZXIuaGFuZGxlX2V4Y2VwdGlvbihlLCByZXF1ZXN0LmFwcC5kZWJ1ZykKKworCitjbGFzcyBXZWJhcHAySGFuZGxlckFkYXB0ZXIoQmFzZUhhbmRsZXJBZGFwdGVyKToKKyAgICAiIiJBbiBhZGFwdGVyIHRvIGRpc3BhdGNoIGEgYGB3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyYGAuCisKKyAgICBUaGUgaGFuZGxlciBpcyBjb25zdHJ1Y3RlZCB0aGVuIGBgZGlzcGF0Y2goKWBgIGlzIGNhbGxlZC4KKyAgICAiIiIKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgIGhhbmRsZXIgPSBzZWxmLmhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgIHJldHVybiBoYW5kbGVyLmRpc3BhdGNoKCkKKworCitjbGFzcyBSb3V0ZXIob2JqZWN0KToKKyAgICAiIiJBIFVSSSByb3V0ZXIgdXNlZCB0byBtYXRjaCwgZGlzcGF0Y2ggYW5kIGJ1aWxkIFVSSXMuIiIiCisKKyAgICAjOiBDbGFzcyB1c2VkIHdoZW4gdGhlIHJvdXRlIGlzIHNldCBhcyBhIHR1cGxlLgorICAgIHJvdXRlX2NsYXNzID0gU2ltcGxlUm91dGUKKyAgICAjOiBBbGwgcm91dGVzIHRoYXQgY2FuIGJlIG1hdGNoZWQuCisgICAgbWF0Y2hfcm91dGVzID0gTm9uZQorICAgICM6IEFsbCByb3V0ZXMgdGhhdCBjYW4gYmUgYnVpbHQuCisgICAgYnVpbGRfcm91dGVzID0gTm9uZQorICAgICM6IEhhbmRsZXIgY2xhc3NlcyBpbXBvcnRlZCBsYXppbHkuCisgICAgaGFuZGxlcnMgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcm91dGVzPU5vbmUpOgorICAgICAgICAiIiJJbml0aWFsaXplcyB0aGUgcm91dGVyLgorCisgICAgICAgIDpwYXJhbSByb3V0ZXM6CisgICAgICAgICAgICBBIHNlcXVlbmNlIG9mIDpjbGFzczpgUm91dGVgIGluc3RhbmNlcyBvciwgZm9yIHNpbXBsZSByb3V0ZXMsCisgICAgICAgICAgICB0dXBsZXMgYGAocmVnZXgsIGhhbmRsZXIpYGAuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLm1hdGNoX3JvdXRlcyA9IFtdCisgICAgICAgIHNlbGYuYnVpbGRfcm91dGVzID0ge30KKyAgICAgICAgc2VsZi5oYW5kbGVycyA9IHt9CisgICAgICAgIGlmIHJvdXRlczoKKyAgICAgICAgICAgIGZvciByb3V0ZSBpbiByb3V0ZXM6CisgICAgICAgICAgICAgICAgc2VsZi5hZGQocm91dGUpCisKKyAgICBkZWYgYWRkKHNlbGYsIHJvdXRlKToKKyAgICAgICAgIiIiQWRkcyBhIHJvdXRlIHRvIHRoaXMgcm91dGVyLgorCisgICAgICAgIDpwYXJhbSByb3V0ZToKKyAgICAgICAgICAgIEEgOmNsYXNzOmBSb3V0ZWAgaW5zdGFuY2Ugb3IsIGZvciBzaW1wbGUgcm91dGVzLCBhIHR1cGxlCisgICAgICAgICAgICBgYChyZWdleCwgaGFuZGxlcilgYC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2Uocm91dGUsIHR1cGxlKToKKyAgICAgICAgICAgICMgRXhjZXB0aW9uYWwgY2FzZTogc2ltcGxlIHJvdXRlcyBkZWZpbmVkIGFzIGEgdHVwbGUuCisgICAgICAgICAgICByb3V0ZSA9IHNlbGYucm91dGVfY2xhc3MoKnJvdXRlKQorCisgICAgICAgIGZvciByIGluIHJvdXRlLmdldF9tYXRjaF9yb3V0ZXMoKToKKyAgICAgICAgICAgIHNlbGYubWF0Y2hfcm91dGVzLmFwcGVuZChyKQorCisgICAgICAgIGZvciBuYW1lLCByIGluIHJvdXRlLmdldF9idWlsZF9yb3V0ZXMoKToKKyAgICAgICAgICAgIHNlbGYuYnVpbGRfcm91dGVzW25hbWVdID0gcgorCisgICAgZGVmIHNldF9tYXRjaGVyKHNlbGYsIGZ1bmMpOgorICAgICAgICAiIiJTZXRzIHRoZSBmdW5jdGlvbiBjYWxsZWQgdG8gbWF0Y2ggVVJJcy4KKworICAgICAgICA6cGFyYW0gZnVuYzoKKyAgICAgICAgICAgIEEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyBgYChyb3V0ZXIsIHJlcXVlc3QpYGAgYW5kIHJldHVybnMKKyAgICAgICAgICAgIGEgdHVwbGUgYGAocm91dGUsIGFyZ3MsIGt3YXJncylgYCBpZiBhbnkgcm91dGUgbWF0Y2hlcywgb3IKKyAgICAgICAgICAgIHJhaXNlIGBgZXhjLkhUVFBOb3RGb3VuZGBgIGlmIG5vIHJvdXRlIG1hdGNoZWQgb3IKKyAgICAgICAgICAgIGBgZXhjLkhUVFBNZXRob2ROb3RBbGxvd2VkYGAgaWYgYSByb3V0ZSBtYXRjaGVkIGJ1dCB0aGUgSFRUUAorICAgICAgICAgICAgbWV0aG9kIHdhcyBub3QgYWxsb3dlZC4KKyAgICAgICAgIiIiCisgICAgICAgICMgRnVuY3Rpb25zIGFyZSBkZXNjcmlwdG9ycywgc28gYmluZCBpdCB0byB0aGlzIGluc3RhbmNlIHdpdGggX19nZXRfXy4KKyAgICAgICAgc2VsZi5tYXRjaCA9IGZ1bmMuX19nZXRfXyhzZWxmLCBzZWxmLl9fY2xhc3NfXykKKworICAgIGRlZiBzZXRfYnVpbGRlcihzZWxmLCBmdW5jKToKKyAgICAgICAgIiIiU2V0cyB0aGUgZnVuY3Rpb24gY2FsbGVkIHRvIGJ1aWxkIFVSSXMuCisKKyAgICAgICAgOnBhcmFtIGZ1bmM6CisgICAgICAgICAgICBBIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgYGAocm91dGVyLCByZXF1ZXN0LCBuYW1lLCBhcmdzLCBrd2FyZ3MpYGAKKyAgICAgICAgICAgIGFuZCByZXR1cm5zIGEgVVJJLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5idWlsZCA9IGZ1bmMuX19nZXRfXyhzZWxmLCBzZWxmLl9fY2xhc3NfXykKKworICAgIGRlZiBzZXRfZGlzcGF0Y2hlcihzZWxmLCBmdW5jKToKKyAgICAgICAgIiIiU2V0cyB0aGUgZnVuY3Rpb24gY2FsbGVkIHRvIGRpc3BhdGNoIHRoZSBoYW5kbGVyLgorCisgICAgICAgIDpwYXJhbSBmdW5jOgorICAgICAgICAgICAgQSBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIGBgKHJvdXRlciwgcmVxdWVzdCwgcmVzcG9uc2UpYGAKKyAgICAgICAgICAgIGFuZCByZXR1cm5zIHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgZGlzcGF0Y2hlZCBoYW5kbGVyLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5kaXNwYXRjaCA9IGZ1bmMuX19nZXRfXyhzZWxmLCBzZWxmLl9fY2xhc3NfXykKKworICAgIGRlZiBzZXRfYWRhcHRlcihzZWxmLCBmdW5jKToKKyAgICAgICAgIiIiU2V0cyB0aGUgZnVuY3Rpb24gdGhhdCBhZGFwdHMgbG9hZGVkIGhhbmRsZXJzIGZvciBkaXNwYXRjaGluZy4KKworICAgICAgICA6cGFyYW0gZnVuYzoKKyAgICAgICAgICAgIEEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyBgYChyb3V0ZXIsIGhhbmRsZXIpYGAgYW5kIHJldHVybnMgYQorICAgICAgICAgICAgaGFuZGxlciBjYWxsYWJsZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuYWRhcHQgPSBmdW5jLl9fZ2V0X18oc2VsZiwgc2VsZi5fX2NsYXNzX18pCisKKyAgICBkZWYgZGVmYXVsdF9tYXRjaGVyKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJNYXRjaGVzIGFsbCByb3V0ZXMgYWdhaW5zdCBhIHJlcXVlc3Qgb2JqZWN0LgorCisgICAgICAgIFRoZSBmaXJzdCBvbmUgdGhhdCBtYXRjaGVzIGlzIHJldHVybmVkLgorCisgICAgICAgIDpwYXJhbSByZXF1ZXN0OgorICAgICAgICAgICAgQSA6Y2xhc3M6YFJlcXVlc3RgIGluc3RhbmNlLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgdHVwbGUgYGAocm91dGUsIGFyZ3MsIGt3YXJncylgYCBpZiBhIHJvdXRlIG1hdGNoZWQsIG9yIE5vbmUuCisgICAgICAgIDpyYWlzZXM6CisgICAgICAgICAgICBgYGV4Yy5IVFRQTm90Rm91bmRgYCBpZiBubyByb3V0ZSBtYXRjaGVkIG9yCisgICAgICAgICAgICBgYGV4Yy5IVFRQTWV0aG9kTm90QWxsb3dlZGBgIGlmIGEgcm91dGUgbWF0Y2hlZCBidXQgdGhlIEhUVFAKKyAgICAgICAgICAgIG1ldGhvZCB3YXMgbm90IGFsbG93ZWQuCisgICAgICAgICIiIgorICAgICAgICBtZXRob2Rfbm90X2FsbG93ZWQgPSBGYWxzZQorICAgICAgICBmb3Igcm91dGUgaW4gc2VsZi5tYXRjaF9yb3V0ZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByb3V0ZS5tYXRjaChyZXF1ZXN0KQorICAgICAgICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2gKKyAgICAgICAgICAgIGV4Y2VwdCBleGMuSFRUUE1ldGhvZE5vdEFsbG93ZWQ6CisgICAgICAgICAgICAgICAgbWV0aG9kX25vdF9hbGxvd2VkID0gVHJ1ZQorCisgICAgICAgIGlmIG1ldGhvZF9ub3RfYWxsb3dlZDoKKyAgICAgICAgICAgIHJhaXNlIGV4Yy5IVFRQTWV0aG9kTm90QWxsb3dlZCgpCisKKyAgICAgICAgcmFpc2UgZXhjLkhUVFBOb3RGb3VuZCgpCisKKyAgICBkZWYgZGVmYXVsdF9idWlsZGVyKHNlbGYsIHJlcXVlc3QsIG5hbWUsIGFyZ3MsIGt3YXJncyk6CisgICAgICAgICIiIlJldHVybnMgYSBVUkkgZm9yIGEgbmFtZWQgOmNsYXNzOmBSb3V0ZWAuCisKKyAgICAgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgICAgICBUaGUgY3VycmVudCA6Y2xhc3M6YFJlcXVlc3RgIG9iamVjdC4KKyAgICAgICAgOnBhcmFtIG5hbWU6CisgICAgICAgICAgICBUaGUgcm91dGUgbmFtZS4KKyAgICAgICAgOnBhcmFtIGFyZ3M6CisgICAgICAgICAgICBUdXBsZSBvZiBwb3NpdGlvbmFsIGFyZ3VtZW50cyB0byBidWlsZCB0aGUgVVJJLiBBbGwgcG9zaXRpb25hbAorICAgICAgICAgICAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIHJvdXRlIG11c3QgYmUgcGFzc2VkIGFuZCBtdXN0IGNvbmZvcm0KKyAgICAgICAgICAgIHRvIHRoZSBmb3JtYXQgc2V0IGluIHRoZSByb3V0ZS4gRXh0cmEgYXJndW1lbnRzIGFyZSBpZ25vcmVkLgorICAgICAgICA6cGFyYW0ga3dhcmdzOgorICAgICAgICAgICAgRGljdGlvbmFyeSBvZiBrZXl3b3JkIGFyZ3VtZW50cyB0byBidWlsZCB0aGUgVVJJLiBBbGwgdmFyaWFibGVzCisgICAgICAgICAgICBub3Qgc2V0IGluIHRoZSByb3V0ZSBkZWZhdWx0IHZhbHVlcyBtdXN0IGJlIHBhc3NlZCBhbmQgbXVzdAorICAgICAgICAgICAgY29uZm9ybSB0byB0aGUgZm9ybWF0IHNldCBpbiB0aGUgcm91dGUuIEV4dHJhIGtleXdvcmRzIGFyZQorICAgICAgICAgICAgYXBwZW5kZWQgYXMgYSBxdWVyeSBzdHJpbmcuCisKKyAgICAgICAgICAgIEEgZmV3IGtleXdvcmRzIGhhdmUgc3BlY2lhbCBtZWFuaW5nOgorCisgICAgICAgICAgICAtICoqX2Z1bGwqKjogSWYgVHJ1ZSwgYnVpbGRzIGFuIGFic29sdXRlIFVSSS4KKyAgICAgICAgICAgIC0gKipfc2NoZW1lKio6IFVSSSBzY2hlbWUsIGUuZy4sIGBodHRwYCBvciBgaHR0cHNgLiBJZiBkZWZpbmVkLAorICAgICAgICAgICAgICBhbiBhYnNvbHV0ZSBVUkkgaXMgYWx3YXlzIHJldHVybmVkLgorICAgICAgICAgICAgLSAqKl9uZXRsb2MqKjogTmV0d29yayBsb2NhdGlvbiwgZS5nLiwgYHd3dy5nb29nbGUuY29tYC4gSWYKKyAgICAgICAgICAgICAgZGVmaW5lZCwgYW4gYWJzb2x1dGUgVVJJIGlzIGFsd2F5cyByZXR1cm5lZC4KKyAgICAgICAgICAgIC0gKipfZnJhZ21lbnQqKjogSWYgc2V0LCBhcHBlbmRzIGEgZnJhZ21lbnQgKG9yICJhbmNob3IiKSB0byB0aGUKKyAgICAgICAgICAgICAgZ2VuZXJhdGVkIFVSSS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBbiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBVUkkuCisgICAgICAgICIiIgorICAgICAgICByb3V0ZSA9IHNlbGYuYnVpbGRfcm91dGVzLmdldChuYW1lKQorICAgICAgICBpZiByb3V0ZSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ1JvdXRlIG5hbWVkICVyIGlzIG5vdCBkZWZpbmVkLicgJSBuYW1lKQorCisgICAgICAgIHJldHVybiByb3V0ZS5idWlsZChyZXF1ZXN0LCBhcmdzLCBrd2FyZ3MpCisKKyAgICBkZWYgZGVmYXVsdF9kaXNwYXRjaGVyKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgIiIiRGlzcGF0Y2hlcyBhIGhhbmRsZXIuCisKKyAgICAgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgICAgICBBIDpjbGFzczpgUmVxdWVzdGAgaW5zdGFuY2UuCisgICAgICAgIDpwYXJhbSByZXNwb25zZToKKyAgICAgICAgICAgIEEgOmNsYXNzOmBSZXNwb25zZWAgaW5zdGFuY2UuCisgICAgICAgIDpyYWlzZXM6CisgICAgICAgICAgICBgYGV4Yy5IVFRQTm90Rm91bmRgYCBpZiBubyByb3V0ZSBtYXRjaGVkIG9yCisgICAgICAgICAgICBgYGV4Yy5IVFRQTWV0aG9kTm90QWxsb3dlZGBgIGlmIGEgcm91dGUgbWF0Y2hlZCBidXQgdGhlIEhUVFAKKyAgICAgICAgICAgIG1ldGhvZCB3YXMgbm90IGFsbG93ZWQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVGhlIHJldHVybmVkIHZhbHVlIGZyb20gdGhlIGhhbmRsZXIuCisgICAgICAgICIiIgorICAgICAgICByb3V0ZSwgYXJncywga3dhcmdzID0gcnYgPSBzZWxmLm1hdGNoKHJlcXVlc3QpCisgICAgICAgIHJlcXVlc3Qucm91dGUsIHJlcXVlc3Qucm91dGVfYXJncywgcmVxdWVzdC5yb3V0ZV9rd2FyZ3MgPSBydgorCisgICAgICAgIGlmIHJvdXRlLmhhbmRsZXJfYWRhcHRlciBpcyBOb25lOgorICAgICAgICAgICAgaGFuZGxlciA9IHJvdXRlLmhhbmRsZXIKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaGFuZGxlciwgYmFzZXN0cmluZyk6CisgICAgICAgICAgICAgICAgaWYgaGFuZGxlciBub3QgaW4gc2VsZi5oYW5kbGVyczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVyc1toYW5kbGVyXSA9IGhhbmRsZXIgPSBpbXBvcnRfc3RyaW5nKGhhbmRsZXIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IHNlbGYuaGFuZGxlcnNbaGFuZGxlcl0KKworICAgICAgICAgICAgcm91dGUuaGFuZGxlcl9hZGFwdGVyID0gc2VsZi5hZGFwdChoYW5kbGVyKQorCisgICAgICAgIHJldHVybiByb3V0ZS5oYW5kbGVyX2FkYXB0ZXIocmVxdWVzdCwgcmVzcG9uc2UpCisKKyAgICBkZWYgZGVmYXVsdF9hZGFwdGVyKHNlbGYsIGhhbmRsZXIpOgorICAgICAgICAiIiJBZGFwdHMgYSBoYW5kbGVyIGZvciBkaXNwYXRjaGluZy4KKworICAgICAgICBCZWNhdXNlIGhhbmRsZXJzIHVzZSBvciBpbXBsZW1lbnQgZGlmZmVyZW50IGRpc3BhdGNoaW5nIG1lY2hhbmlzbXMsCisgICAgICAgIHRoZXkgY2FuIGJlIHdyYXBwZWQgdG8gdXNlIGEgdW5pZmllZCBBUEkgZm9yIGRpc3BhdGNoaW5nLgorICAgICAgICBUaGlzIHdheSB3ZWJhcHAyIGNhbiBzdXBwb3J0LCBmb3IgZXhhbXBsZSwgYSA6Y2xhc3M6YFJlcXVlc3RIYW5kbGVyYAorICAgICAgICBjbGFzcyBhbmQgZnVuY3Rpb24gdmlld3Mgb3IsIGZvciBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLCBhCisgICAgICAgIGBgd2ViYXBwLlJlcXVlc3RIYW5kbGVyYGAgY2xhc3MuIFRoZSBhZGFwdGVycyBmb2xsb3cgdGhlIHNhbWUgcm91dGVyCisgICAgICAgIGRpc3BhdGNoaW5nIEFQSSBidXQgZGlzcGF0Y2ggZWFjaCBoYW5kbGVyIHR5cGUgZGlmZmVyZW50bHkuCisKKyAgICAgICAgOnBhcmFtIGhhbmRsZXI6CisgICAgICAgICAgICBBIGhhbmRsZXIgY2FsbGFibGUuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB3cmFwcGVkIGhhbmRsZXIgY2FsbGFibGUuCisgICAgICAgICIiIgorICAgICAgICBpZiBpbnNwZWN0LmlzY2xhc3MoaGFuZGxlcik6CisgICAgICAgICAgICBpZiBfd2ViYXBwIGFuZCBpc3N1YmNsYXNzKGhhbmRsZXIsIF93ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICAgICAgICAgICMgQ29tcGF0aWJsZSB3aXRoIHdlYmFwcC5SZXF1ZXN0SGFuZGxlci4KKyAgICAgICAgICAgICAgICBhZGFwdGVyID0gV2ViYXBwSGFuZGxlckFkYXB0ZXIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBEZWZhdWx0LCBjb21wYXRpYmxlIHdpdGggd2ViYXBwMi5SZXF1ZXN0SGFuZGxlci4KKyAgICAgICAgICAgICAgICBhZGFwdGVyID0gV2ViYXBwMkhhbmRsZXJBZGFwdGVyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEEgInZpZXciIGZ1bmN0aW9uLgorICAgICAgICAgICAgYWRhcHRlciA9IEJhc2VIYW5kbGVyQWRhcHRlcgorCisgICAgICAgIHJldHVybiBhZGFwdGVyKGhhbmRsZXIpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJvdXRlcyA9IHNlbGYubWF0Y2hfcm91dGVzICsgW3YgZm9yIGssIHYgaW4gXAorICAgICAgICAgICAgc2VsZi5idWlsZF9yb3V0ZXMuaXRlcml0ZW1zKCkgaWYgdiBub3QgaW4gc2VsZi5tYXRjaF9yb3V0ZXNdCisKKyAgICAgICAgcmV0dXJuICc8Um91dGVyKCVyKT4nICUgcm91dGVzCisKKyAgICAjIERlZmF1bHQgbWF0Y2hlciwgYnVpbGRlciwgZGlzcGF0Y2hlciBhbmQgYWRhcHRlci4KKyAgICBtYXRjaCA9IGRlZmF1bHRfbWF0Y2hlcgorICAgIGJ1aWxkID0gZGVmYXVsdF9idWlsZGVyCisgICAgZGlzcGF0Y2ggPSBkZWZhdWx0X2Rpc3BhdGNoZXIKKyAgICBhZGFwdCA9IGRlZmF1bHRfYWRhcHRlcgorCisKK2NsYXNzIENvbmZpZyhkaWN0KToKKyAgICAiIiJBIHNpbXBsZSBjb25maWd1cmF0aW9uIGRpY3Rpb25hcnkgZm9yIHRoZSA6Y2xhc3M6YFdTR0lBcHBsaWNhdGlvbmAuIiIiCisKKyAgICAjOiBMb2FkZWQgY29uZmlndXJhdGlvbnMuCisgICAgbG9hZGVkID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlZmF1bHRzPU5vbmUpOgorICAgICAgICBkaWN0Ll9faW5pdF9fKHNlbGYsIGRlZmF1bHRzIG9yICgpKQorICAgICAgICBzZWxmLmxvYWRlZCA9IFtdCisKKyAgICBkZWYgbG9hZF9jb25maWcoc2VsZiwga2V5LCBkZWZhdWx0X3ZhbHVlcz1Ob25lLCB1c2VyX3ZhbHVlcz1Ob25lLAorICAgICAgICAgICAgICAgICAgICByZXF1aXJlZF9rZXlzPU5vbmUpOgorICAgICAgICAiIiJSZXR1cm5zIGEgY29uZmlndXJhdGlvbiBmb3IgYSBnaXZlbiBrZXkuCisKKyAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCBieSBvYmplY3RzIHRoYXQgZGVmaW5lIGEgZGVmYXVsdCBjb25maWd1cmF0aW9uLiBJdAorICAgICAgICB3aWxsIHVwZGF0ZSB0aGUgYXBwIGNvbmZpZ3VyYXRpb24gd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZXMgdGhlIGZpcnN0CisgICAgICAgIHRpbWUgaXQgaXMgcmVxdWVzdGVkLCBhbmQgbWFyayB0aGUga2V5IGFzIGxvYWRlZC4KKworICAgICAgICA6cGFyYW0ga2V5OgorICAgICAgICAgICAgQSBjb25maWd1cmF0aW9uIGtleS4KKyAgICAgICAgOnBhcmFtIGRlZmF1bHRfdmFsdWVzOgorICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZXMgZGVmaW5lZCBieSBhIG1vZHVsZSBvciBjbGFzcy4KKyAgICAgICAgOnBhcmFtIHVzZXJfdmFsdWVzOgorICAgICAgICAgICAgVXNlciB2YWx1ZXMsIHVzZWQgd2hlbiBhbiBvYmplY3QgY2FuIGJlIGluaXRpYWxpemVkIHdpdGgKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uIFRoaXMgb3ZlcnJpZGVzIHRoZSBhcHAgY29uZmlndXJhdGlvbi4KKyAgICAgICAgOnBhcmFtIHJlcXVpcmVkX2tleXM6CisgICAgICAgICAgICBLZXlzIHRoYXQgY2FuIG5vdCBiZSBOb25lLgorICAgICAgICA6cmFpc2VzOgorICAgICAgICAgICAgRXhjZXB0aW9uLCB3aGVuIGEgcmVxdWlyZWQga2V5IGlzIG5vdCBzZXQgb3IgaXMgTm9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGtleSBpbiBzZWxmLmxvYWRlZDoKKyAgICAgICAgICAgIGNvbmZpZyA9IHNlbGZba2V5XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29uZmlnID0gZGljdChkZWZhdWx0X3ZhbHVlcyBvciAoKSkKKyAgICAgICAgICAgIGlmIGtleSBpbiBzZWxmOgorICAgICAgICAgICAgICAgIGNvbmZpZy51cGRhdGUoc2VsZltrZXldKQorCisgICAgICAgICAgICBzZWxmW2tleV0gPSBjb25maWcKKyAgICAgICAgICAgIHNlbGYubG9hZGVkLmFwcGVuZChrZXkpCisgICAgICAgICAgICBpZiByZXF1aXJlZF9rZXlzIGFuZCBub3QgdXNlcl92YWx1ZXM6CisgICAgICAgICAgICAgICAgc2VsZi5fdmFsaWRhdGVfcmVxdWlyZWQoa2V5LCBjb25maWcsIHJlcXVpcmVkX2tleXMpCisKKyAgICAgICAgaWYgdXNlcl92YWx1ZXM6CisgICAgICAgICAgICBjb25maWcgPSBjb25maWcuY29weSgpCisgICAgICAgICAgICBjb25maWcudXBkYXRlKHVzZXJfdmFsdWVzKQorICAgICAgICAgICAgaWYgcmVxdWlyZWRfa2V5czoKKyAgICAgICAgICAgICAgICBzZWxmLl92YWxpZGF0ZV9yZXF1aXJlZChrZXksIGNvbmZpZywgcmVxdWlyZWRfa2V5cykKKworICAgICAgICByZXR1cm4gY29uZmlnCisKKyAgICBkZWYgX3ZhbGlkYXRlX3JlcXVpcmVkKHNlbGYsIGtleSwgY29uZmlnLCByZXF1aXJlZF9rZXlzKToKKyAgICAgICAgbWlzc2luZyA9IFtrIGZvciBrIGluIHJlcXVpcmVkX2tleXMgaWYgY29uZmlnLmdldChrKSBpcyBOb25lXQorICAgICAgICBpZiBtaXNzaW5nOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNaXNzaW5nIGNvbmZpZ3VyYXRpb24ga2V5cyBmb3IgJXI6ICVyLicgJSAoa2V5LCBtaXNzaW5nKSkKKworCitjbGFzcyBSZXF1ZXN0Q29udGV4dChvYmplY3QpOgorICAgICIiIkNvbnRleHQgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCisKKyAgICBUaGUgY29udGV4dCBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBhbmQgY2xlYW5pbmcgZ2xvYmFsIHZhcmlhYmxlcyBmb3IKKyAgICBhIHJlcXVlc3QuCisgICAgIiIiCisKKyAgICAjOiBBIDpjbGFzczpgV1NHSUFwcGxpY2F0aW9uYCBpbnN0YW5jZS4KKyAgICBhcHAgPSBOb25lCisgICAgIzogV1NHSSBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5LgorICAgIGVudmlyb24gPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwLCBlbnZpcm9uKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZXMgdGhlIHJlcXVlc3QgY29udGV4dC4KKworICAgICAgICA6cGFyYW0gYXBwOgorICAgICAgICAgICAgQW4gOmNsYXNzOmBXU0dJQXBwbGljYXRpb25gIGluc3RhbmNlLgorICAgICAgICA6cGFyYW0gZW52aXJvbjoKKyAgICAgICAgICAgIEEgV1NHSSBlbnZpcm9ubWVudCBkaWN0aW9uYXJ5LgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5hcHAgPSBhcHAKKyAgICAgICAgc2VsZi5lbnZpcm9uID0gZW52aXJvbgorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgIiIiRW50ZXJzIHRoZSByZXF1ZXN0IGNvbnRleHQuCisKKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIHR1cGxlIGBgKHJlcXVlc3QsIHJlc3BvbnNlKWBgLgorICAgICAgICAiIiIKKyAgICAgICAgIyBCdWlsZCByZXF1ZXN0IGFuZCByZXNwb25zZS4KKyAgICAgICAgcmVxdWVzdCA9IHNlbGYuYXBwLnJlcXVlc3RfY2xhc3Moc2VsZi5lbnZpcm9uKQorICAgICAgICByZXNwb25zZSA9IHNlbGYuYXBwLnJlc3BvbnNlX2NsYXNzKCkKKyAgICAgICAgIyBNYWtlIGFjdGl2ZSBhcHAgYW5kIHJlc3BvbnNlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSByZXF1ZXN0IG9iamVjdC4KKyAgICAgICAgcmVxdWVzdC5hcHAgPSBzZWxmLmFwcAorICAgICAgICByZXF1ZXN0LnJlc3BvbnNlID0gcmVzcG9uc2UKKyAgICAgICAgIyBSZWdpc3RlciBnbG9iYWwgdmFyaWFibGVzLgorICAgICAgICBzZWxmLmFwcC5zZXRfZ2xvYmFscyhhcHA9c2VsZi5hcHAsIHJlcXVlc3Q9cmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QsIHJlc3BvbnNlCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgIiIiRXhpdHMgdGhlIHJlcXVlc3QgY29udGV4dC4KKworICAgICAgICBUaGlzIHJlbGVhc2UgdGhlIGNvbnRleHQgbG9jYWxzIGV4Y2VwdCBpZiBhbiBleGNlcHRpb24gaXMgY2F1Z2h0CisgICAgICAgIGluIGRlYnVnIG1vZGUuIEluIHRoaXMgY2FzZSB0aGV5IGFyZSBrZXB0IHRvIGJlIGluc3BlY3RlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGV4Y190eXBlIGlzIE5vbmUgb3Igbm90IHNlbGYuYXBwLmRlYnVnOgorICAgICAgICAgICAgIyBVbnJlZ2lzdGVyIGdsb2JhbCB2YXJpYWJsZXMuCisgICAgICAgICAgICBzZWxmLmFwcC5jbGVhcl9nbG9iYWxzKCkKKworCitjbGFzcyBXU0dJQXBwbGljYXRpb24ob2JqZWN0KToKKyAgICAiIiJBIFdTR0ktY29tcGxpYW50IGFwcGxpY2F0aW9uLiIiIgorCisgICAgIzogQWxsb3dlZCByZXF1ZXN0IG1ldGhvZHMuCisgICAgYWxsb3dlZF9tZXRob2RzID0gZnJvemVuc2V0KCgnR0VUJywgJ1BPU1QnLCAnSEVBRCcsICdPUFRJT05TJywgJ1BVVCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnREVMRVRFJywgJ1RSQUNFJykpCisgICAgIzogQ2xhc3MgdXNlZCBmb3IgdGhlIHJlcXVlc3Qgb2JqZWN0LgorICAgIHJlcXVlc3RfY2xhc3MgPSBSZXF1ZXN0CisgICAgIzogQ2xhc3MgdXNlZCBmb3IgdGhlIHJlc3BvbnNlIG9iamVjdC4KKyAgICByZXNwb25zZV9jbGFzcyA9IFJlc3BvbnNlCisgICAgIzogQ2xhc3MgdXNlZCBmb3IgdGhlIHJvdXRlciBvYmplY3QuCisgICAgcm91dGVyX2NsYXNzID0gUm91dGVyCisgICAgIzogQ2xhc3MgdXNlZCBmb3IgdGhlIHJlcXVlc3QgY29udGV4dCBvYmplY3QuCisgICAgcmVxdWVzdF9jb250ZXh0X2NsYXNzID0gUmVxdWVzdENvbnRleHQKKyAgICAjOiBDbGFzcyB1c2VkIGZvciB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QuCisgICAgY29uZmlnX2NsYXNzID0gQ29uZmlnCisgICAgIzogQSBnZW5lcmFsIHB1cnBvc2UgZmxhZyB0byBpbmRpY2F0ZSBkZXZlbG9wbWVudCBtb2RlOiBpZiBUcnVlLCB1bmNhdWdodAorICAgICM6IGV4Y2VwdGlvbnMgYXJlIHJhaXNlZCBpbnN0ZWFkIG9mIHVzaW5nIGBgSFRUUEludGVybmFsU2VydmVyRXJyb3JgYC4KKyAgICBkZWJ1ZyA9IEZhbHNlCisgICAgIzogQSA6Y2xhc3M6YFJvdXRlcmAgaW5zdGFuY2Ugd2l0aCBhbGwgVVJJcyByZWdpc3RlcmVkIGZvciB0aGUgYXBwbGljYXRpb24uCisgICAgcm91dGVyID0gTm9uZQorICAgICM6IEEgOmNsYXNzOmBDb25maWdgIGluc3RhbmNlIHdpdGggdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24uCisgICAgY29uZmlnID0gTm9uZQorICAgICM6IEEgZGljdGlvbmFyeSB0byByZWdpc3RlciBvYmplY3RzIHVzZWQgZHVyaW5nIHRoZSBhcHAgbGlmZXRpbWUuCisgICAgcmVnaXN0cnkgPSBOb25lCisgICAgIzogQSBkaWN0aW9uYXJ5IG1hcHBpbmcgSFRUUCBlcnJvciBjb2RlcyB0byBjYWxsYWJsZXMgdG8gaGFuZGxlIHRob3NlCisgICAgIzogSFRUUCBleGNlcHRpb25zLiBTZWUgOm1ldGg6YGhhbmRsZV9leGNlcHRpb25gLgorICAgIGVycm9yX2hhbmRsZXJzID0gTm9uZQorICAgICM6IEFjdGl2ZSA6Y2xhc3M6YFdTR0lBcHBsaWNhdGlvbmAgaW5zdGFuY2UuIFNlZSA6bWV0aDpgc2V0X2dsb2JhbHNgLgorICAgIGFwcCA9IE5vbmUKKyAgICAjOiBBY3RpdmUgOmNsYXNzOmBSZXF1ZXN0YCBpbnN0YW5jZS4gU2VlIDptZXRoOmBzZXRfZ2xvYmFsc2AuCisgICAgcmVxdWVzdCA9IE5vbmUKKyAgICAjOiBTYW1lIGFzIDphdHRyOmBhcHBgLCBmb3Igd2ViYXBwIGNvbXBhdGliaWxpdHkuIFNlZSA6bWV0aDpgc2V0X2dsb2JhbHNgLgorICAgIGFjdGl2ZV9pbnN0YW5jZSA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb3V0ZXM9Tm9uZSwgZGVidWc9RmFsc2UsIGNvbmZpZz1Ob25lKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZXMgdGhlIFdTR0kgYXBwbGljYXRpb24uCisKKyAgICAgICAgOnBhcmFtIHJvdXRlczoKKyAgICAgICAgICAgIEEgc2VxdWVuY2Ugb2YgOmNsYXNzOmBSb3V0ZWAgaW5zdGFuY2VzIG9yLCBmb3Igc2ltcGxlIHJvdXRlcywKKyAgICAgICAgICAgIHR1cGxlcyBgYChyZWdleCwgaGFuZGxlcilgYC4KKyAgICAgICAgOnBhcmFtIGRlYnVnOgorICAgICAgICAgICAgVHJ1ZSB0byBlbmFibGUgZGVidWcgbW9kZSwgRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgICA6cGFyYW0gY29uZmlnOgorICAgICAgICAgICAgQSBjb25maWd1cmF0aW9uIGRpY3Rpb25hcnkgZm9yIHRoZSBhcHBsaWNhdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZGVidWcgPSBkZWJ1ZworICAgICAgICBzZWxmLnJlZ2lzdHJ5ID0ge30KKyAgICAgICAgc2VsZi5lcnJvcl9oYW5kbGVycyA9IHt9CisgICAgICAgIHNlbGYuc2V0X2dsb2JhbHMoYXBwPXNlbGYpCisgICAgICAgIHNlbGYuY29uZmlnID0gc2VsZi5jb25maWdfY2xhc3MoY29uZmlnKQorICAgICAgICBzZWxmLnJvdXRlciA9IHNlbGYucm91dGVyX2NsYXNzKHJvdXRlcykKKworICAgIGRlZiBzZXRfZ2xvYmFscyhzZWxmLCBhcHA9Tm9uZSwgcmVxdWVzdD1Ob25lKToKKyAgICAgICAgIiIiUmVnaXN0ZXJzIHRoZSBnbG9iYWwgdmFyaWFibGVzIGZvciBhcHAgYW5kIHJlcXVlc3QuCisKKyAgICAgICAgSWYgOm1vZDpgd2ViYXBwMl9leHRyYXMubG9jYWxgIGlzIGF2YWlsYWJsZSB0aGUgYXBwIGFuZCByZXF1ZXN0CisgICAgICAgIGNsYXNzIGF0dHJpYnV0ZXMgYXJlIGFzc2lnbmVkIHRvIGEgcHJveHkgb2JqZWN0IHRoYXQgcmV0dXJucyB0aGVtCisgICAgICAgIHVzaW5nIHRocmVhZC1sb2NhbCwgbWFraW5nIHRoZSBhcHBsaWNhdGlvbiB0aHJlYWQtc2FmZS4gVGhpcyBjYW4gYWxzbworICAgICAgICBiZSB1c2VkIGluIGVudmlyb25tZW50cyB0aGF0IGRvbid0IHN1cHBvcnQgdGhyZWFkaW5nLgorCisgICAgICAgIElmIDptb2Q6YHdlYmFwcDJfZXh0cmFzLmxvY2FsYCBpcyBub3QgYXZhaWxhYmxlIGFwcCBhbmQgcmVxdWVzdCB3aWxsCisgICAgICAgIGJlIGFzc2lnbmVkIGRpcmVjdGx5IGFzIGNsYXNzIGF0dHJpYnV0ZXMuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbgorICAgICAgICBub24tdGhyZWFkZWQgZW52aXJvbm1lbnRzIChlLmcuLCBBcHAgRW5naW5lIFB5dGhvbiAyLjUpLgorCisgICAgICAgIDpwYXJhbSBhcHA6CisgICAgICAgICAgICBBIDpjbGFzczpgV1NHSUFwcGxpY2F0aW9uYCBpbnN0YW5jZS4KKyAgICAgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgICAgICBBIDpjbGFzczpgUmVxdWVzdGAgaW5zdGFuY2UuCisgICAgICAgICIiIgorICAgICAgICBpZiBfbG9jYWwgaXMgbm90IE5vbmU6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgX2xvY2FsLmFwcCA9IGFwcAorICAgICAgICAgICAgX2xvY2FsLnJlcXVlc3QgPSByZXF1ZXN0CisgICAgICAgIGVsc2U6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgV1NHSUFwcGxpY2F0aW9uLmFwcCA9IFdTR0lBcHBsaWNhdGlvbi5hY3RpdmVfaW5zdGFuY2UgPSBhcHAKKyAgICAgICAgICAgIFdTR0lBcHBsaWNhdGlvbi5yZXF1ZXN0ID0gcmVxdWVzdAorCisgICAgZGVmIGNsZWFyX2dsb2JhbHMoc2VsZik6CisgICAgICAgICIiIkNsZWFycyBnbG9iYWwgdmFyaWFibGVzLiBTZWUgOm1ldGg6YHNldF9nbG9iYWxzYC4iIiIKKyAgICAgICAgaWYgX2xvY2FsIGlzIG5vdCBOb25lOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgIF9sb2NhbC5fX3JlbGVhc2VfbG9jYWxfXygpCisgICAgICAgIGVsc2U6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgV1NHSUFwcGxpY2F0aW9uLmFwcCA9IFdTR0lBcHBsaWNhdGlvbi5hY3RpdmVfaW5zdGFuY2UgPSBOb25lCisgICAgICAgICAgICBXU0dJQXBwbGljYXRpb24ucmVxdWVzdCA9IE5vbmUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZpcm9uLCBzdGFydF9yZXNwb25zZSk6CisgICAgICAgICIiIkNhbGxlZCBieSBXU0dJIHdoZW4gYSByZXF1ZXN0IGNvbWVzIGluLgorCisgICAgICAgIDpwYXJhbSBlbnZpcm9uOgorICAgICAgICAgICAgQSBXU0dJIGVudmlyb25tZW50LgorICAgICAgICA6cGFyYW0gc3RhcnRfcmVzcG9uc2U6CisgICAgICAgICAgICBBIGNhbGxhYmxlIGFjY2VwdGluZyBhIHN0YXR1cyBjb2RlLCBhIGxpc3Qgb2YgaGVhZGVycyBhbmQgYW4KKyAgICAgICAgICAgIG9wdGlvbmFsIGV4Y2VwdGlvbiBjb250ZXh0IHRvIHN0YXJ0IHRoZSByZXNwb25zZS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBbiBpdGVyYWJsZSB3aXRoIHRoZSByZXNwb25zZSB0byByZXR1cm4gdG8gdGhlIGNsaWVudC4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2VsZi5yZXF1ZXN0X2NvbnRleHRfY2xhc3Moc2VsZiwgZW52aXJvbikgYXMgKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiByZXF1ZXN0Lm1ldGhvZCBub3QgaW4gc2VsZi5hbGxvd2VkX21ldGhvZHM6CisgICAgICAgICAgICAgICAgICAgICMgNTAxIE5vdCBJbXBsZW1lbnRlZC4KKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXhjLkhUVFBOb3RJbXBsZW1lbnRlZCgpCisKKyAgICAgICAgICAgICAgICBydiA9IHNlbGYucm91dGVyLmRpc3BhdGNoKHJlcXVlc3QsIHJlc3BvbnNlKQorICAgICAgICAgICAgICAgIGlmIHJ2IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHJ2CisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgIyBUcnkgdG8gaGFuZGxlIGl0IHdpdGggYSBjdXN0b20gZXJyb3IgaGFuZGxlci4KKyAgICAgICAgICAgICAgICAgICAgcnYgPSBzZWxmLmhhbmRsZV9leGNlcHRpb24ocmVxdWVzdCwgcmVzcG9uc2UsIGUpCisgICAgICAgICAgICAgICAgICAgIGlmIHJ2IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBydgorICAgICAgICAgICAgICAgIGV4Y2VwdCBIVFRQRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgICAgICAjIFVzZSB0aGUgSFRUUCBleGNlcHRpb24gYXMgcmVzcG9uc2UuCisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gZQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgICAgICMgRXJyb3Igd2Fzbid0IGhhbmRsZWQgc28gd2UgaGF2ZSBub3RoaW5nIGVsc2UgdG8gZG8uCisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5faW50ZXJuYWxfZXJyb3IoZSkKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZShlbnZpcm9uLCBzdGFydF9yZXNwb25zZSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2ludGVybmFsX2Vycm9yKGUpKGVudmlyb24sIHN0YXJ0X3Jlc3BvbnNlKQorCisgICAgZGVmIF9pbnRlcm5hbF9lcnJvcihzZWxmLCBleGNlcHRpb24pOgorICAgICAgICAiIiJMYXN0IHJlc291cmNlIGVycm9yIGZvciA6bWV0aDpgX19jYWxsX19gLiIiIgorICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihleGNlcHRpb24pCisgICAgICAgIGlmIHNlbGYuZGVidWc6CisgICAgICAgICAgICBsaW5lcyA9ICcnLmpvaW4odHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24oKnN5cy5leGNfaW5mbygpKSkKKyAgICAgICAgICAgIGh0bWwgPSBfZGVidWdfdGVtcGxhdGUgJSAoY2dpLmVzY2FwZShsaW5lcywgcXVvdGU9VHJ1ZSkpCisgICAgICAgICAgICByZXR1cm4gUmVzcG9uc2UoYm9keT1odG1sLCBzdGF0dXM9NTAwKQorCisgICAgICAgIHJldHVybiBleGMuSFRUUEludGVybmFsU2VydmVyRXJyb3IoKQorCisgICAgZGVmIGhhbmRsZV9leGNlcHRpb24oc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UsIGUpOgorICAgICAgICAiIiJIYW5kbGVzIGEgdW5jYXVnaHQgZXhjZXB0aW9uIG9jY3VycmVkIGluIDptZXRoOmBfX2NhbGxfX2AuCisKKyAgICAgICAgVW5jYXVnaHQgZXhjZXB0aW9ucyBjYW4gYmUgaGFuZGxlZCBieSBlcnJvciBoYW5kbGVycyByZWdpc3RlcmVkIGluCisgICAgICAgIDphdHRyOmBlcnJvcl9oYW5kbGVyc2AuIFRoaXMgaXMgYSBkaWN0aW9uYXJ5IHRoYXQgbWFwcyBIVFRQIHN0YXR1cworICAgICAgICBjb2RlcyB0byBjYWxsYWJsZXMgdGhhdCB3aWxsIGhhbmRsZSB0aGUgY29ycmVzcG9uZGluZyBlcnJvciBjb2RlLgorICAgICAgICBJZiB0aGUgZXhjZXB0aW9uIGlzIG5vdCBhbiBgYEhUVFBFeGNlcHRpb25gYCwgdGhlIHN0YXR1cyBjb2RlIDUwMAorICAgICAgICBpcyB1c2VkLgorCisgICAgICAgIFRoZSBlcnJvciBoYW5kbGVycyByZWNlaXZlIChyZXF1ZXN0LCByZXNwb25zZSwgZXhjZXB0aW9uKSBhbmQgY2FuIGJlCisgICAgICAgIGEgY2FsbGFibGUgb3IgYSBzdHJpbmcgaW4gZG90dGVkIG5vdGF0aW9uIHRvIGJlIGxhemlseSBpbXBvcnRlZC4KKworICAgICAgICBJZiBubyBlcnJvciBoYW5kbGVyIGlzIGZvdW5kLCB0aGUgZXhjZXB0aW9uIGlzIHJlLXJhaXNlZC4KKworICAgICAgICBCYXNlZCBvbiBpZGVhIGZyb20gYEZsYXNrYF8uCisKKyAgICAgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgICAgICBBIDpjbGFzczpgUmVxdWVzdGAgaW5zdGFuY2UuCisgICAgICAgIDpwYXJhbSByZXNwb25zZToKKyAgICAgICAgICAgIEEgOmNsYXNzOmBSZXNwb25zZWAgaW5zdGFuY2UuCisgICAgICAgIDpwYXJhbSBlOgorICAgICAgICAgICAgVGhlIHVuY2F1Z2h0IGV4Y2VwdGlvbi4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBUaGUgcmV0dXJuZWQgdmFsdWUgZnJvbSB0aGUgZXJyb3IgaGFuZGxlci4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZSwgSFRUUEV4Y2VwdGlvbik6CisgICAgICAgICAgICBjb2RlID0gZS5jb2RlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb2RlID0gNTAwCisKKyAgICAgICAgaGFuZGxlciA9IHNlbGYuZXJyb3JfaGFuZGxlcnMuZ2V0KGNvZGUpCisgICAgICAgIGlmIGhhbmRsZXI6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGhhbmRsZXIsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgICAgIHNlbGYuZXJyb3JfaGFuZGxlcnNbY29kZV0gPSBoYW5kbGVyID0gaW1wb3J0X3N0cmluZyhoYW5kbGVyKQorCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSwgZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgUmUtcmFpc2UgaXQgdG8gYmUgY2F1Z2h0IGJ5IHRoZSBXU0dJIGFwcC4KKyAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgcnVuKHNlbGYsIGJhcmU9RmFsc2UpOgorICAgICAgICAiIiJSdW5zIHRoaXMgV1NHSS1jb21wbGlhbnQgYXBwbGljYXRpb24gaW4gYSBDR0kgZW52aXJvbm1lbnQuCisKKyAgICAgICAgVGhpcyB1c2VzIGZ1bmN0aW9ucyBwcm92aWRlZCBieSBgYGdvb2dsZS5hcHBlbmdpbmUuZXh0LndlYmFwcC51dGlsYGAsCisgICAgICAgIGlmIGF2YWlsYWJsZTogYGBydW5fYmFyZV93c2dpX2FwcGBgIGFuZCBgYHJ1bl93c2dpX2FwcGBgLgorCisgICAgICAgIE90aGVyd2lzZSwgaXQgdXNlcyBgYHdzZ2lyZWYuaGFuZGxlcnMuQ0dJSGFuZGxlcigpLnJ1bigpYGAuCisKKyAgICAgICAgOnBhcmFtIGJhcmU6CisgICAgICAgICAgICBJZiBUcnVlLCBkb2Vzbid0IGFkZCByZWdpc3RlcmVkIFdTR0kgbWlkZGxld2FyZTogdXNlCisgICAgICAgICAgICBgYHJ1bl9iYXJlX3dzZ2lfYXBwYGAgaW5zdGVhZCBvZiBgYHJ1bl93c2dpX2FwcGBgLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgX3dlYmFwcF91dGlsOgorICAgICAgICAgICAgaWYgYmFyZToKKyAgICAgICAgICAgICAgICBfd2ViYXBwX3V0aWwucnVuX2JhcmVfd3NnaV9hcHAoc2VsZikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgX3dlYmFwcF91dGlsLnJ1bl93c2dpX2FwcChzZWxmKQorICAgICAgICBlbHNlOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgIGhhbmRsZXJzLkNHSUhhbmRsZXIoKS5ydW4oc2VsZikKKworICAgIGRlZiBnZXRfcmVzcG9uc2Uoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiQ3JlYXRlcyBhIHJlcXVlc3QgYW5kIHJldHVybnMgYSByZXNwb25zZSBmb3IgdGhpcyBhcHAuCisKKyAgICAgICAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZvciB1bml0IHRlc3RpbmcgcHVycG9zZXMuIEl0IHJlY2VpdmVzCisgICAgICAgIHBhcmFtZXRlcnMgdG8gYnVpbGQgYSByZXF1ZXN0IGFuZCBjYWxscyB0aGUgYXBwbGljYXRpb24sIHJldHVybmluZworICAgICAgICB0aGUgcmVzdWx0aW5nIHJlc3BvbnNlOjoKKworICAgICAgICAgICAgY2xhc3MgSGVsbG9IYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgorICAgICAgICAgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUoJ0hlbGxvLCB3b3JsZCEnKQorCisgICAgICAgICAgICBhcHAgPSB3ZWJhcHAyLldTR0lhcHBsaWNhdGlvbihbKCcvJywgSGVsbG9IYW5kbGVyKV0pCisKKyAgICAgICAgICAgICMgVGVzdCB0aGUgYXBwLCBwYXNzaW5nIHBhcmFtZXRlcnMgdG8gYnVpbGQgYSByZXF1ZXN0LgorICAgICAgICAgICAgcmVzcG9uc2UgPSBhcHAuZ2V0X3Jlc3BvbnNlKCcvJykKKyAgICAgICAgICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfaW50ID09IDIwMAorICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLmJvZHkgPT0gJ0hlbGxvLCB3b3JsZCEnCisKKyAgICAgICAgOnBhcmFtIGFyZ3M6CisgICAgICAgICAgICBQb3NpdGlvbmFsIGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8gYGBSZXF1ZXN0LmJsYW5rKClgYC4KKyAgICAgICAgOnBhcmFtIGt3YXJnczoKKyAgICAgICAgICAgIEtleXdvcmQgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byBgYFJlcXVlc3QuYmxhbmsoKWBgLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgOmNsYXNzOmBSZXNwb25zZWAgb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYucmVxdWVzdF9jbGFzcy5ibGFuaygqYXJncywgKiprd2FyZ3MpLmdldF9yZXNwb25zZShzZWxmKQorCisKK19pbXBvcnRfc3RyaW5nX2Vycm9yID0gIiIiXAoraW1wb3J0X3N0cmluZygpIGZhaWxlZCBmb3IgJXIuIFBvc3NpYmxlIHJlYXNvbnMgYXJlOgorCistIG1pc3NpbmcgX19pbml0X18ucHkgaW4gYSBwYWNrYWdlOworLSBwYWNrYWdlIG9yIG1vZHVsZSBwYXRoIG5vdCBpbmNsdWRlZCBpbiBzeXMucGF0aDsKKy0gZHVwbGljYXRlZCBwYWNrYWdlIG9yIG1vZHVsZSBuYW1lIHRha2luZyBwcmVjZWRlbmNlIGluIHN5cy5wYXRoOworLSBtaXNzaW5nIG1vZHVsZSwgY2xhc3MsIGZ1bmN0aW9uIG9yIHZhcmlhYmxlOworCitPcmlnaW5hbCBleGNlcHRpb246CisKKyVzOiAlcworCitEZWJ1Z2dlZCBpbXBvcnQ6CisKKyVzIiIiCisKKworY2xhc3MgSW1wb3J0U3RyaW5nRXJyb3IoRXhjZXB0aW9uKToKKyAgICAiIiJQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBhIGZhaWxlZCA6ZnVuYzpgaW1wb3J0X3N0cmluZ2AgYXR0ZW1wdC4iIiIKKworICAgICM6IFN0cmluZyBpbiBkb3R0ZWQgbm90YXRpb24gdGhhdCBmYWlsZWQgdG8gYmUgaW1wb3J0ZWQuCisgICAgaW1wb3J0X25hbWUgPSBOb25lCisgICAgIzogV3JhcHBlZCBleGNlcHRpb24uCisgICAgZXhjZXB0aW9uID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGltcG9ydF9uYW1lLCBleGNlcHRpb24pOgorICAgICAgICBzZWxmLmltcG9ydF9uYW1lID0gaW1wb3J0X25hbWUKKyAgICAgICAgc2VsZi5leGNlcHRpb24gPSBleGNlcHRpb24KKyAgICAgICAgbXNnID0gX2ltcG9ydF9zdHJpbmdfZXJyb3IKKyAgICAgICAgbmFtZSA9ICcnCisgICAgICAgIHRyYWNrZWQgPSBbXQorICAgICAgICBmb3IgcGFydCBpbiBpbXBvcnRfbmFtZS5zcGxpdCgnLicpOgorICAgICAgICAgICAgbmFtZSArPSAobmFtZSBhbmQgJy4nKSArIHBhcnQKKyAgICAgICAgICAgIGltcG9ydGVkID0gaW1wb3J0X3N0cmluZyhuYW1lLCBzaWxlbnQ9VHJ1ZSkKKyAgICAgICAgICAgIGlmIGltcG9ydGVkOgorICAgICAgICAgICAgICAgIHRyYWNrZWQuYXBwZW5kKChuYW1lLCBpbXBvcnRlZC5fX2ZpbGVfXykpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRyYWNrID0gWyctICVyIGZvdW5kIGluICVyLicgJSBydiBmb3IgcnYgaW4gdHJhY2tlZF0KKyAgICAgICAgICAgICAgICB0cmFjay5hcHBlbmQoJy0gJXIgbm90IGZvdW5kLicgJSBuYW1lKQorICAgICAgICAgICAgICAgIG1zZyA9IG1zZyAlIChpbXBvcnRfbmFtZSwgZXhjZXB0aW9uLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGV4Y2VwdGlvbiksICdcbicuam9pbih0cmFjaykpCisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwgbXNnKQorCisKK19nZXRfYXBwX2Vycm9yID0gJ1dTR0lBcHBsaWNhdGlvbiBnbG9iYWwgdmFyaWFibGUgaXMgbm90IHNldC4nCitfZ2V0X3JlcXVlc3RfZXJyb3IgPSAnUmVxdWVzdCBnbG9iYWwgdmFyaWFibGUgaXMgbm90IHNldC4nCisKKworZGVmIGdldF9hcHAoKToKKyAgICAiIiJSZXR1cm5zIHRoZSBhY3RpdmUgYXBwIGluc3RhbmNlLgorCisgICAgOnJldHVybnM6CisgICAgICAgIEEgOmNsYXNzOmBXU0dJQXBwbGljYXRpb25gIGluc3RhbmNlLgorICAgICIiIgorICAgIGlmIF9sb2NhbDoKKyAgICAgICAgYXNzZXJ0IGdldGF0dHIoX2xvY2FsLCAnYXBwJywgTm9uZSkgaXMgbm90IE5vbmUsIF9nZXRfYXBwX2Vycm9yCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IFdTR0lBcHBsaWNhdGlvbi5hcHAgaXMgbm90IE5vbmUsIF9nZXRfYXBwX2Vycm9yCisKKyAgICByZXR1cm4gV1NHSUFwcGxpY2F0aW9uLmFwcAorCisKK2RlZiBnZXRfcmVxdWVzdCgpOgorICAgICIiIlJldHVybnMgdGhlIGFjdGl2ZSByZXF1ZXN0IGluc3RhbmNlLgorCisgICAgOnJldHVybnM6CisgICAgICAgIEEgOmNsYXNzOmBSZXF1ZXN0YCBpbnN0YW5jZS4KKyAgICAiIiIKKyAgICBpZiBfbG9jYWw6CisgICAgICAgIGFzc2VydCBnZXRhdHRyKF9sb2NhbCwgJ3JlcXVlc3QnLCBOb25lKSBpcyBub3QgTm9uZSwgX2dldF9yZXF1ZXN0X2Vycm9yCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IFdTR0lBcHBsaWNhdGlvbi5yZXF1ZXN0IGlzIG5vdCBOb25lLCBfZ2V0X3JlcXVlc3RfZXJyb3IKKworICAgIHJldHVybiBXU0dJQXBwbGljYXRpb24ucmVxdWVzdAorCisKK2RlZiB1cmlfZm9yKF9uYW1lLCBfcmVxdWVzdD1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgorICAgICIiIkEgc3RhbmRhbG9uZSB1cmlfZm9yIHZlcnNpb24gdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRlbXBsYXRlcy4KKworICAgIC4uIHNlZWFsc286OiA6bWV0aDpgUm91dGVyLmJ1aWxkYC4KKyAgICAiIiIKKyAgICByZXF1ZXN0ID0gX3JlcXVlc3Qgb3IgZ2V0X3JlcXVlc3QoKQorICAgIHJldHVybiByZXF1ZXN0LmFwcC5yb3V0ZXIuYnVpbGQocmVxdWVzdCwgX25hbWUsIGFyZ3MsIGt3YXJncykKKworCitkZWYgcmVkaXJlY3QodXJpLCBwZXJtYW5lbnQ9RmFsc2UsIGFib3J0PUZhbHNlLCBjb2RlPU5vbmUsIGJvZHk9Tm9uZSwKKyAgICAgICAgICAgICByZXF1ZXN0PU5vbmUsIHJlc3BvbnNlPU5vbmUpOgorICAgICIiIklzc3VlcyBhbiBIVFRQIHJlZGlyZWN0IHRvIHRoZSBnaXZlbiByZWxhdGl2ZSBVUkkuCisKKyAgICBUaGlzIHdvbid0IHN0b3AgY29kZSBleGVjdXRpb24gdW5sZXNzICoqYWJvcnQqKiBpcyBUcnVlLiBBIGNvbW1vbgorICAgIHByYWN0aWNlIGlzIHRvIHJldHVybiB3aGVuIGNhbGxpbmcgdGhpcyBtZXRob2Q6OgorCisgICAgICAgIHJldHVybiByZWRpcmVjdCgnL3NvbWUtcGF0aCcpCisKKyAgICA6cGFyYW0gdXJpOgorICAgICAgICBBIHJlbGF0aXZlIG9yIGFic29sdXRlIFVSSSAoZS5nLiwgYGAnLi4vZmxvd2Vycy5odG1sJ2BgKS4KKyAgICA6cGFyYW0gcGVybWFuZW50OgorICAgICAgICBJZiBUcnVlLCB1c2VzIGEgMzAxIHJlZGlyZWN0IGluc3RlYWQgb2YgYSAzMDIgcmVkaXJlY3QuCisgICAgOnBhcmFtIGFib3J0OgorICAgICAgICBJZiBUcnVlLCByYWlzZXMgYW4gZXhjZXB0aW9uIHRvIHBlcmZvcm0gdGhlIHJlZGlyZWN0LgorICAgIDpwYXJhbSBjb2RlOgorICAgICAgICBUaGUgcmVkaXJlY3Qgc3RhdHVzIGNvZGUuIFN1cHBvcnRlZCBjb2RlcyBhcmUgMzAxLCAzMDIsIDMwMywgMzA1LAorICAgICAgICBhbmQgMzA3LiAgMzAwIGlzIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSBpdCdzIG5vdCBhIHJlYWwgcmVkaXJlY3QKKyAgICAgICAgYW5kIDMwNCBiZWNhdXNlIGl0J3MgdGhlIGFuc3dlciBmb3IgYSByZXF1ZXN0IHdpdGggZGVmaW5lZAorICAgICAgICBgYElmLU1vZGlmaWVkLVNpbmNlYGAgaGVhZGVycy4KKyAgICA6cGFyYW0gYm9keToKKyAgICAgICAgUmVzcG9uc2UgYm9keSwgaWYgYW55LgorICAgIDpwYXJhbSByZXF1ZXN0OgorICAgICAgICBPcHRpb25hbCByZXF1ZXN0IG9iamVjdC4gSWYgbm90IHNldCwgdXNlcyA6ZnVuYzpgZ2V0X3JlcXVlc3RgLgorICAgIDpwYXJhbSByZXNwb25zZToKKyAgICAgICAgT3B0aW9uYWwgcmVzcG9uc2Ugb2JqZWN0LiBJZiBub3Qgc2V0LCBhIG5ldyByZXNwb25zZSBpcyBjcmVhdGVkLgorICAgIDpyZXR1cm5zOgorICAgICAgICBBIDpjbGFzczpgUmVzcG9uc2VgIGluc3RhbmNlLgorICAgICIiIgorICAgIGlmIHVyaS5zdGFydHN3aXRoKCgnLicsICcvJykpOgorICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdCBvciBnZXRfcmVxdWVzdCgpCisgICAgICAgIHVyaSA9IHN0cih1cmxwYXJzZS51cmxqb2luKHJlcXVlc3QudXJsLCB1cmkpKQorCisgICAgaWYgY29kZSBpcyBOb25lOgorICAgICAgICBpZiBwZXJtYW5lbnQ6CisgICAgICAgICAgICBjb2RlID0gMzAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb2RlID0gMzAyCisKKyAgICBhc3NlcnQgY29kZSBpbiAoMzAxLCAzMDIsIDMwMywgMzA1LCAzMDcpLCBcCisgICAgICAgICdJbnZhbGlkIHJlZGlyZWN0IHN0YXR1cyBjb2RlLicKKworICAgIGlmIGFib3J0OgorICAgICAgICBfYWJvcnQoY29kZSwgaGVhZGVycz1bKCdMb2NhdGlvbicsIHVyaSldKQorCisgICAgaWYgcmVzcG9uc2UgaXMgTm9uZToKKyAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3Qgb3IgZ2V0X3JlcXVlc3QoKQorICAgICAgICByZXNwb25zZSA9IHJlcXVlc3QuYXBwLnJlc3BvbnNlX2NsYXNzKCkKKyAgICBlbHNlOgorICAgICAgICByZXNwb25zZS5jbGVhcigpCisKKyAgICByZXNwb25zZS5oZWFkZXJzWydMb2NhdGlvbiddID0gdXJpCisgICAgcmVzcG9uc2Uuc3RhdHVzID0gY29kZQorICAgIGlmIGJvZHkgaXMgbm90IE5vbmU6CisgICAgICAgIHJlc3BvbnNlLndyaXRlKGJvZHkpCisKKyAgICByZXR1cm4gcmVzcG9uc2UKKworCitkZWYgcmVkaXJlY3RfdG8oX25hbWUsIF9wZXJtYW5lbnQ9RmFsc2UsIF9hYm9ydD1GYWxzZSwgX2NvZGU9Tm9uZSwKKyAgICAgICAgICAgICAgICBfYm9keT1Ob25lLCBfcmVxdWVzdD1Ob25lLCBfcmVzcG9uc2U9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAiIiJDb252ZW5pZW5jZSBmdW5jdGlvbiBtaXhpbmcgOmZ1bmM6YHJlZGlyZWN0YCBhbmQgOmZ1bmM6YHVyaV9mb3JgLgorCisgICAgSXNzdWVzIGFuIEhUVFAgcmVkaXJlY3QgdG8gYSBuYW1lZCBVUkkgYnVpbHQgdXNpbmcgOmZ1bmM6YHVyaV9mb3JgLgorCisgICAgOnBhcmFtIF9uYW1lOgorICAgICAgICBUaGUgcm91dGUgbmFtZSB0byByZWRpcmVjdCB0by4KKyAgICA6cGFyYW0gYXJnczoKKyAgICAgICAgUG9zaXRpb25hbCBhcmd1bWVudHMgdG8gYnVpbGQgdGhlIFVSSS4KKyAgICA6cGFyYW0ga3dhcmdzOgorICAgICAgICBLZXl3b3JkIGFyZ3VtZW50cyB0byBidWlsZCB0aGUgVVJJLgorICAgIDpyZXR1cm5zOgorICAgICAgICBBIDpjbGFzczpgUmVzcG9uc2VgIGluc3RhbmNlLgorCisgICAgVGhlIG90aGVyIGFyZ3VtZW50cyBhcmUgZGVzY3JpYmVkIGluIDpmdW5jOmByZWRpcmVjdGAuCisgICAgIiIiCisgICAgdXJpID0gdXJpX2ZvcihfbmFtZSwgX3JlcXVlc3Q9X3JlcXVlc3QsICphcmdzLCAqKmt3YXJncykKKyAgICByZXR1cm4gcmVkaXJlY3QodXJpLCBwZXJtYW5lbnQ9X3Blcm1hbmVudCwgYWJvcnQ9X2Fib3J0LCBjb2RlPV9jb2RlLAorICAgICAgICAgICAgICAgICAgICBib2R5PV9ib2R5LCByZXF1ZXN0PV9yZXF1ZXN0LCByZXNwb25zZT1fcmVzcG9uc2UpCisKKworZGVmIGFib3J0KGNvZGUsICphcmdzLCAqKmt3YXJncyk6CisgICAgIiIiUmFpc2VzIGFuIGBgSFRUUEV4Y2VwdGlvbmBgLgorCisgICAgOnBhcmFtIGNvZGU6CisgICAgICAgIEFuIGludGVnZXIgdGhhdCByZXByZXNlbnRzIGEgdmFsaWQgSFRUUCBzdGF0dXMgY29kZS4KKyAgICA6cGFyYW0gYXJnczoKKyAgICAgICAgUG9zaXRpb25hbCBhcmd1bWVudHMgdG8gaW5zdGFudGlhdGUgdGhlIGV4Y2VwdGlvbi4KKyAgICA6cGFyYW0ga3dhcmdzOgorICAgICAgICBLZXl3b3JkIGFyZ3VtZW50cyB0byBpbnN0YW50aWF0ZSB0aGUgZXhjZXB0aW9uLgorICAgICIiIgorICAgIGNscyA9IGV4Yy5zdGF0dXNfbWFwLmdldChjb2RlKQorICAgIGlmIG5vdCBjbHM6CisgICAgICAgIHJhaXNlIEtleUVycm9yKCdObyBleGNlcHRpb24gaXMgZGVmaW5lZCBmb3IgY29kZSAlci4nICUgY29kZSkKKworICAgIHJhaXNlIGNscygqYXJncywgKiprd2FyZ3MpCisKKworZGVmIGltcG9ydF9zdHJpbmcoaW1wb3J0X25hbWUsIHNpbGVudD1GYWxzZSk6CisgICAgIiIiSW1wb3J0cyBhbiBvYmplY3QgYmFzZWQgb24gYSBzdHJpbmcgaW4gZG90dGVkIG5vdGF0aW9uLgorCisgICAgU2ltcGxpZmllZCB2ZXJzaW9uIG9mIHRoZSBmdW5jdGlvbiB3aXRoIHNhbWUgbmFtZSBmcm9tIGBXZXJremV1Z2BfLgorCisgICAgOnBhcmFtIGltcG9ydF9uYW1lOgorICAgICAgICBTdHJpbmcgaW4gZG90dGVkIG5vdGF0aW9uIG9mIHRoZSBvYmplY3QgdG8gYmUgaW1wb3J0ZWQuCisgICAgOnBhcmFtIHNpbGVudDoKKyAgICAgICAgSWYgVHJ1ZSwgaW1wb3J0IG9yIGF0dHJpYnV0ZSBlcnJvcnMgYXJlIGlnbm9yZWQgYW5kIE5vbmUgaXMgcmV0dXJuZWQKKyAgICAgICAgaW5zdGVhZCBvZiByYWlzaW5nIGFuIGV4Y2VwdGlvbi4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgVGhlIGltcG9ydGVkIG9iamVjdC4KKyAgICAiIiIKKyAgICBpbXBvcnRfbmFtZSA9IF90b191dGY4KGltcG9ydF9uYW1lKQorICAgIHRyeToKKyAgICAgICAgaWYgJy4nIGluIGltcG9ydF9uYW1lOgorICAgICAgICAgICAgbW9kdWxlLCBvYmogPSBpbXBvcnRfbmFtZS5yc3BsaXQoJy4nLCAxKQorICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoX19pbXBvcnRfXyhtb2R1bGUsIE5vbmUsIE5vbmUsIFtvYmpdKSwgb2JqKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIF9faW1wb3J0X18oaW1wb3J0X25hbWUpCisgICAgZXhjZXB0IChJbXBvcnRFcnJvciwgQXR0cmlidXRlRXJyb3IpLCBlOgorICAgICAgICBpZiBub3Qgc2lsZW50OgorICAgICAgICAgICAgcmFpc2UgSW1wb3J0U3RyaW5nRXJyb3IoaW1wb3J0X25hbWUsIGUpLCBOb25lLCBzeXMuZXhjX2luZm8oKVsyXQorCisKK2RlZiBfdXJsdW5zcGxpdChzY2hlbWU9Tm9uZSwgbmV0bG9jPU5vbmUsIHBhdGg9Tm9uZSwgcXVlcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICBmcmFnbWVudD1Ob25lKToKKyAgICAiIiJMaWtlIGBgdXJscGFyc2UudXJsdW5zcGxpdGBgLCBidXQgd2lsbCBlc2NhcGUgdmFsdWVzIGFuZCB1cmxlbmNvZGUgYW5kCisgICAgc29ydCBxdWVyeSBhcmd1bWVudHMuCisKKyAgICA6cGFyYW0gc2NoZW1lOgorICAgICAgICBVUkkgc2NoZW1lLCBlLmcuLCBgaHR0cGAgb3IgYGh0dHBzYC4KKyAgICA6cGFyYW0gbmV0bG9jOgorICAgICAgICBOZXR3b3JrIGxvY2F0aW9uLCBlLmcuLCBgbG9jYWxob3N0OjgwODBgIG9yIGB3d3cuZ29vZ2xlLmNvbWAuCisgICAgOnBhcmFtIHBhdGg6CisgICAgICAgIFVSSSBwYXRoLgorICAgIDpwYXJhbSBxdWVyeToKKyAgICAgICAgVVJJIHF1ZXJ5IGFzIGFuIGVzY2FwZWQgc3RyaW5nLCBvciBhIGRpY3Rpb25hcnkgb3IgbGlzdCBvZiBrZXktdmFsdWVzCisgICAgICAgIHR1cGxlcyB0byBidWlsZCBhIHF1ZXJ5LgorICAgIDpwYXJhbSBmcmFnbWVudDoKKyAgICAgICAgRnJhZ21lbnQgaWRlbnRpZmllciwgYWxzbyBrbm93biBhcyAiYW5jaG9yIi4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgQW4gYXNzZW1ibGVkIGFic29sdXRlIG9yIHJlbGF0aXZlIFVSSS4KKyAgICAiIiIKKyAgICBpZiBub3Qgc2NoZW1lIG9yIG5vdCBuZXRsb2M6CisgICAgICAgIHNjaGVtZSA9IE5vbmUKKyAgICAgICAgbmV0bG9jID0gTm9uZQorCisgICAgaWYgcGF0aDoKKyAgICAgICAgcGF0aCA9IHVybGxpYi5xdW90ZShfdG9fdXRmOChwYXRoKSkKKworICAgIGlmIHF1ZXJ5IGFuZCBub3QgaXNpbnN0YW5jZShxdWVyeSwgYmFzZXN0cmluZyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UocXVlcnksIGRpY3QpOgorICAgICAgICAgICAgcXVlcnkgPSBxdWVyeS5pdGVyaXRlbXMoKQorCisgICAgICAgICMgU29ydCBhcmdzOiBjb21tb25seSBuZWVkZWQgdG8gYnVpbGQgc2lnbmF0dXJlcyBmb3Igc2VydmljZXMuCisgICAgICAgIHF1ZXJ5ID0gdXJsbGliLnVybGVuY29kZShzb3J0ZWQocXVlcnkpKQorCisgICAgaWYgZnJhZ21lbnQ6CisgICAgICAgIGZyYWdtZW50ID0gdXJsbGliLnF1b3RlKF90b191dGY4KGZyYWdtZW50KSkKKworICAgIHJldHVybiB1cmxwYXJzZS51cmx1bnNwbGl0KChzY2hlbWUsIG5ldGxvYywgcGF0aCwgcXVlcnksIGZyYWdtZW50KSkKKworCitkZWYgX2dldF9oYW5kbGVyX21ldGhvZHMoaGFuZGxlcik6CisgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgSFRUUCBtZXRob2RzIHN1cHBvcnRlZCBieSBhIGhhbmRsZXIuCisKKyAgICA6cGFyYW0gaGFuZGxlcjoKKyAgICAgICAgQSA6Y2xhc3M6YFJlcXVlc3RIYW5kbGVyYCBpbnN0YW5jZS4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgQSBsaXN0IG9mIEhUVFAgbWV0aG9kcyBzdXBwb3J0ZWQgYnkgdGhlIGhhbmRsZXIuCisgICAgIiIiCisgICAgbWV0aG9kcyA9IFtdCisgICAgZm9yIG1ldGhvZCBpbiBnZXRfYXBwKCkuYWxsb3dlZF9tZXRob2RzOgorICAgICAgICBpZiBnZXRhdHRyKGhhbmRsZXIsIF9ub3JtYWxpemVfaGFuZGxlcl9tZXRob2QobWV0aG9kKSwgTm9uZSk6CisgICAgICAgICAgICBtZXRob2RzLmFwcGVuZChtZXRob2QpCisKKyAgICByZXR1cm4gbWV0aG9kcworCisKK2RlZiBfbm9ybWFsaXplX2hhbmRsZXJfbWV0aG9kKG1ldGhvZCk6CisgICAgIiIiVHJhbnNmb3JtcyBhbiBIVFRQIG1ldGhvZCBpbnRvIGEgdmFsaWQgUHl0aG9uIGlkZW50aWZpZXIuIiIiCisgICAgcmV0dXJuIG1ldGhvZC5sb3dlcigpLnJlcGxhY2UoJy0nLCAnXycpCisKKworZGVmIF90b191dGY4KHZhbHVlKToKKyAgICAiIiJFbmNvZGVzIGEgdW5pY29kZSB2YWx1ZSB0byBVVEYtOCBpZiBub3QgeWV0IGVuY29kZWQuIiIiCisgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICByZXR1cm4gdmFsdWUuZW5jb2RlKCd1dGYtOCcpCisKKworZGVmIF9wYXJzZV9yb3V0ZV90ZW1wbGF0ZSh0ZW1wbGF0ZSwgZGVmYXVsdF9zdWZpeD0nJyk6CisgICAgIiIiTGF6eSByb3V0ZSB0ZW1wbGF0ZSBwYXJzZXIuIiIiCisgICAgdmFyaWFibGVzID0ge30KKyAgICByZXZlcnNlX3RlbXBsYXRlID0gcGF0dGVybiA9ICcnCisgICAgYXJnc19jb3VudCA9IGxhc3QgPSAwCisgICAgZm9yIG1hdGNoIGluIF9yb3V0ZV9yZS5maW5kaXRlcih0ZW1wbGF0ZSk6CisgICAgICAgIHBhcnQgPSB0ZW1wbGF0ZVtsYXN0Om1hdGNoLnN0YXJ0KCldCisgICAgICAgIG5hbWUgPSBtYXRjaC5ncm91cCgxKQorICAgICAgICBleHByID0gbWF0Y2guZ3JvdXAoMikgb3IgZGVmYXVsdF9zdWZpeAorICAgICAgICBsYXN0ID0gbWF0Y2guZW5kKCkKKworICAgICAgICBpZiBub3QgbmFtZToKKyAgICAgICAgICAgIG5hbWUgPSAnX18lZF9fJyAlIGFyZ3NfY291bnQKKyAgICAgICAgICAgIGFyZ3NfY291bnQgKz0gMQorCisgICAgICAgIHBhdHRlcm4gKz0gJyVzKD9QPCVzPiVzKScgJSAocmUuZXNjYXBlKHBhcnQpLCBuYW1lLCBleHByKQorICAgICAgICByZXZlcnNlX3RlbXBsYXRlICs9ICclcyUlKCVzKXMnICUgKHBhcnQsIG5hbWUpCisgICAgICAgIHZhcmlhYmxlc1tuYW1lXSA9IHJlLmNvbXBpbGUoJ14lcyQnICUgZXhwcikKKworICAgIHBhcnQgPSB0ZW1wbGF0ZVtsYXN0Ol0KKyAgICBrd2FyZ3NfY291bnQgPSBsZW4odmFyaWFibGVzKSAtIGFyZ3NfY291bnQKKyAgICByZXZlcnNlX3RlbXBsYXRlICs9IHBhcnQKKyAgICByZWdleCA9IHJlLmNvbXBpbGUoJ14lcyVzJCcgJSAocGF0dGVybiwgcmUuZXNjYXBlKHBhcnQpKSkKKyAgICByZXR1cm4gcmVnZXgsIHJldmVyc2VfdGVtcGxhdGUsIGFyZ3NfY291bnQsIGt3YXJnc19jb3VudCwgdmFyaWFibGVzCisKKworZGVmIF9nZXRfcm91dGVfdmFyaWFibGVzKG1hdGNoLCBkZWZhdWx0X2t3YXJncz1Ob25lKToKKyAgICAiIiJSZXR1cm5zIChhcmdzLCBrd2FyZ3MpIGZvciBhIHJvdXRlIG1hdGNoLiIiIgorICAgIGt3YXJncyA9IGRlZmF1bHRfa3dhcmdzIG9yIHt9CisgICAga3dhcmdzLnVwZGF0ZShtYXRjaC5ncm91cGRpY3QoKSkKKyAgICBpZiBrd2FyZ3M6CisgICAgICAgIGFyZ3MgPSB0dXBsZSh2YWx1ZVsxXSBmb3IgdmFsdWUgaW4gc29ydGVkKAorICAgICAgICAgICAgKGludChrZXlbMjotMl0pLCBrd2FyZ3MucG9wKGtleSkpIGZvciBrZXkgaW4ga3dhcmdzLmtleXMoKSBcCisgICAgICAgICAgICBpZiBrZXkuc3RhcnRzd2l0aCgnX18nKSBhbmQga2V5LmVuZHN3aXRoKCdfXycpKSkKKyAgICBlbHNlOgorICAgICAgICBhcmdzID0gKCkKKworICAgIHJldHVybiBhcmdzLCBrd2FyZ3MKKworCitkZWYgX3NldF90aHJlYWRfc2FmZV9hcHAoKToKKyAgICAiIiJBc3NpZ25zIFdTR0lBcHBsaWNhdGlvbiBnbG9iYWxzIHRvIGEgcHJveHkgcG9pbnRpbmcgdG8gdGhyZWFkLWxvY2FsLiIiIgorICAgIGlmIF9sb2NhbCBpcyBub3QgTm9uZTogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIFdTR0lBcHBsaWNhdGlvbi5hcHAgPSBXU0dJQXBwbGljYXRpb24uYWN0aXZlX2luc3RhbmNlID0gX2xvY2FsKCdhcHAnKQorICAgICAgICBXU0dJQXBwbGljYXRpb24ucmVxdWVzdCA9IF9sb2NhbCgncmVxdWVzdCcpCisKKworUmVxdWVzdC5SZXNwb25zZUNsYXNzID0gUmVzcG9uc2UKK1Jlc3BvbnNlLlJlcXVlc3RDbGFzcyA9IFJlcXVlc3QKKyMgQWxpYXMuCitfYWJvcnQgPSBhYm9ydAorIyBUaHJlYWQtc2FmZXR5IHN1cHBvcnQuCitfc2V0X3RocmVhZF9zYWZlX2FwcCgpCisKKyMgRGVmZXIgaW1wb3J0aW5nIGdvb2dsZS5hcHBlbmdpbmUuZXh0LndlYmFwcC51dGlsIHVudGlsIGV2ZXJ5IHB1YmxpYyBzeW1ib2wKKyMgaGFzIGJlZW4gZGVmaW5lZCBzaW5jZSBnb29nbGUuYXBwZW5naW5lLmV4dC53ZWJhcHAgaW4gQXBwIEVuZ2luZSBQeXRob24gMi43CisjIHJ1bnRpbWUgaW1wb3J0cyB0aGlzIG1vZHVsZSB0byBwcm92aWRlIGl0cyBwdWJsaWMgaW50ZXJmYWNlLgordHJ5OgorICAgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQud2ViYXBwIGltcG9ydCB1dGlsIGFzIF93ZWJhcHBfdXRpbAorZXhjZXB0IEltcG9ydEVycm9yOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBwYXNzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMjQ0NjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDEwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMKKyAgICA9PT09PT09PT09PT09PQorCisgICAgRXh0cmEgbW9kdWxlcyBmb3Igd2ViYXBwMi4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgYnkgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViYWJjZWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvX19pbml0X18ucHkKQEAgLTAsMCArMSwxMCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZQorICAgID09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgQXBwIEVuZ2luZS1zcGVjaWZpYyBtb2R1bGVzLgorCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvYXV0aC9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9hdXRoL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwM2Y3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvYXV0aC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDEwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLmF1dGgKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgQXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gdXRpbGl0aWVzLgorCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvYXV0aC9tb2RlbHMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvYXV0aC9tb2RlbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM4MTVhNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9hdXRoL21vZGVscy5weQpAQCAtMCwwICsxLDQxNiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5hdXRoLm1vZGVscworICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgQXV0aCByZWxhdGVkIG1vZGVscy4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgYnkgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgoraW1wb3J0IHRpbWUKKwordHJ5OgorICAgIGZyb20gbmRiIGltcG9ydCBtb2RlbAorZXhjZXB0IEltcG9ydEVycm9yOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0Lm5kYiBpbXBvcnQgbW9kZWwKKworZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgYXV0aAorZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2VjdXJpdHkKKworCitjbGFzcyBVbmlxdWUobW9kZWwuTW9kZWwpOgorICAgICIiIkEgbW9kZWwgdG8gc3RvcmUgdW5pcXVlIHZhbHVlcy4KKworICAgIFRoZSBvbmx5IHB1cnBvc2Ugb2YgdGhpcyBtb2RlbCBpcyB0byAicmVzZXJ2ZSIgdmFsdWVzIHRoYXQgbXVzdCBiZSB1bmlxdWUKKyAgICB3aXRoaW4gYSBnaXZlbiBzY29wZSwgYXMgYSB3b3JrYXJvdW5kIGJlY2F1c2UgZGF0YXN0b3JlIGRvZXNuJ3Qgc3VwcG9ydAorICAgIHRoZSBjb25jZXB0IG9mIHVuaXF1ZW5lc3MgZm9yIGVudGl0eSBwcm9wZXJ0aWVzLgorCisgICAgRm9yIGV4YW1wbGUsIHN1cHBvc2Ugd2UgaGF2ZSBhIG1vZGVsIGBVc2VyYCB3aXRoIHRocmVlIHByb3BlcnRpZXMgdGhhdAorICAgIG11c3QgYmUgdW5pcXVlIGFjcm9zcyBhIGdpdmVuIGdyb3VwOiBgdXNlcm5hbWVgLCBgYXV0aF9pZGAgYW5kIGBlbWFpbGA6OgorCisgICAgICAgIGNsYXNzIFVzZXIobW9kZWwuTW9kZWwpOgorICAgICAgICAgICAgdXNlcm5hbWUgPSBtb2RlbC5TdHJpbmdQcm9wZXJ0eShyZXF1aXJlZD1UcnVlKQorICAgICAgICAgICAgYXV0aF9pZCA9IG1vZGVsLlN0cmluZ1Byb3BlcnR5KHJlcXVpcmVkPVRydWUpCisgICAgICAgICAgICBlbWFpbCA9IG1vZGVsLlN0cmluZ1Byb3BlcnR5KHJlcXVpcmVkPVRydWUpCisKKyAgICBUbyBlbnN1cmUgcHJvcGVydHkgdW5pcXVlbmVzcyB3aGVuIGNyZWF0aW5nIGEgbmV3IGBVc2VyYCwgd2UgZmlyc3QgY3JlYXRlCisgICAgYFVuaXF1ZWAgcmVjb3JkcyBmb3IgdGhvc2UgcHJvcGVydGllcywgYW5kIGlmIGV2ZXJ5dGhpbmcgZ29lcyB3ZWxsIHdlIGNhbgorICAgIHNhdmUgdGhlIG5ldyBgVXNlcmAgcmVjb3JkOjoKKworICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIGNyZWF0ZV91c2VyKGNscywgdXNlcm5hbWUsIGF1dGhfaWQsIGVtYWlsKToKKyAgICAgICAgICAgICMgQXNzZW1ibGUgdGhlIHVuaXF1ZSB2YWx1ZXMgZm9yIGEgZ2l2ZW4gY2xhc3MgYW5kIGF0dHJpYnV0ZSBzY29wZS4KKyAgICAgICAgICAgIHVuaXF1ZXMgPSBbCisgICAgICAgICAgICAgICAgJ1VzZXIudXNlcm5hbWUuJXMnICUgdXNlcm5hbWUsCisgICAgICAgICAgICAgICAgJ1VzZXIuYXV0aF9pZC4lcycgJSBhdXRoX2lkLAorICAgICAgICAgICAgICAgICdVc2VyLmVtYWlsLiVzJyAlIGVtYWlsLAorICAgICAgICAgICAgXQorCisgICAgICAgICAgICAjIENyZWF0ZSB0aGUgdW5pcXVlIHVzZXJuYW1lLCBhdXRoX2lkIGFuZCBlbWFpbC4KKyAgICAgICAgICAgIHN1Y2Nlc3MsIGV4aXN0aW5nID0gVW5pcXVlLmNyZWF0ZV9tdWx0aSh1bmlxdWVzKQorCisgICAgICAgICAgICBpZiBzdWNjZXNzOgorICAgICAgICAgICAgICAgICMgVGhlIHVuaXF1ZSB2YWx1ZXMgd2VyZSBjcmVhdGVkLCBzbyB3ZSBjYW4gc2F2ZSB0aGUgdXNlci4KKyAgICAgICAgICAgICAgICB1c2VyID0gVXNlcih1c2VybmFtZT11c2VybmFtZSwgYXV0aF9pZD1hdXRoX2lkLCBlbWFpbD1lbWFpbCkKKyAgICAgICAgICAgICAgICB1c2VyLnB1dCgpCisgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBBdCBsZWFzdCBvbmUgb2YgdGhlIHZhbHVlcyBpcyBub3QgdW5pcXVlLgorICAgICAgICAgICAgICAgICMgTWFrZSBhIGxpc3Qgb2YgdGhlIHByb3BlcnR5IG5hbWVzIHRoYXQgZmFpbGVkLgorICAgICAgICAgICAgICAgIHByb3BzID0gW25hbWUuc3BsaXQoJy4nLCAyKVsxXSBmb3IgbmFtZSBpbiB1bmlxdWVzXQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Byb3BlcnRpZXMgJXIgYXJlIG5vdCB1bmlxdWUuJyAlIHByb3BzKQorCisgICAgQmFzZWQgb24gdGhlIGlkZWEgZnJvbSBodHRwOi8vZ29vLmdsL3BCUWhCCisgICAgIiIiCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgY3JlYXRlKGNscywgdmFsdWUpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHVuaXF1ZSB2YWx1ZS4KKworICAgICAgICA6cGFyYW0gdmFsdWU6CisgICAgICAgICAgICBUaGUgdmFsdWUgdG8gYmUgdW5pcXVlLCBhcyBhIHN0cmluZy4KKworICAgICAgICAgICAgVGhlIHZhbHVlIHNob3VsZCBpbmNsdWRlIHRoZSBzY29wZSBpbiB3aGljaCB0aGUgdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgdW5pcXVlIChhbmNlc3RvciwgbmFtZXNwYWNlLCBraW5kIGFuZC9vciBwcm9wZXJ0eSBuYW1lKS4KKworICAgICAgICAgICAgRm9yIGV4YW1wbGUsIGZvciBhIHVuaXF1ZSBwcm9wZXJ0eSBgZW1haWxgIGZyb20ga2luZCBgVXNlcmAsIHRoZQorICAgICAgICAgICAgdmFsdWUgY2FuIGJlIGBVc2VyLmVtYWlsOm1lQG15c2VsZi5jb21gLiBJbiB0aGlzIGNhc2UgYFVzZXIuZW1haWxgCisgICAgICAgICAgICBpcyB0aGUgc2NvcGUsIGFuZCBgbWVAbXlzZWxmLmNvbWAgaXMgdGhlIHZhbHVlIHRvIGJlIHVuaXF1ZS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBUcnVlIGlmIHRoZSB1bmlxdWUgdmFsdWUgd2FzIGNyZWF0ZWQsIEZhbHNlIG90aGVyd2lzZS4KKyAgICAgICAgIiIiCisgICAgICAgIGVudGl0eSA9IGNscyhrZXk9bW9kZWwuS2V5KGNscywgdmFsdWUpKQorICAgICAgICB0eG4gPSBsYW1iZGE6IGVudGl0eS5wdXQoKSBpZiBub3QgZW50aXR5LmtleS5nZXQoKSBlbHNlIE5vbmUKKyAgICAgICAgcmV0dXJuIG1vZGVsLnRyYW5zYWN0aW9uKHR4bikgaXMgbm90IE5vbmUKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjcmVhdGVfbXVsdGkoY2xzLCB2YWx1ZXMpOgorICAgICAgICAiIiJDcmVhdGVzIG11bHRpcGxlIHVuaXF1ZSB2YWx1ZXMgYXQgb25jZS4KKworICAgICAgICA6cGFyYW0gdmFsdWVzOgorICAgICAgICAgICAgQSBzZXF1ZW5jZSBvZiB2YWx1ZXMgdG8gYmUgdW5pcXVlLiBTZWUgOm1ldGg6YGNyZWF0ZWAuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB0dXBsZSAoYm9vbCwgbGlzdF9vZl9rZXlzKS4gSWYgYWxsIHZhbHVlcyB3ZXJlIGNyZWF0ZWQsIGJvb2wgaXMKKyAgICAgICAgICAgIFRydWUgYW5kIGxpc3Rfb2Zfa2V5cyBpcyBlbXB0eS4gSWYgb25lIG9yIG1vcmUgdmFsdWVzIHdlcmVuJ3QKKyAgICAgICAgICAgIGNyZWF0ZWQsIGJvb2wgaXMgRmFsc2UgYW5kIHRoZSBsaXN0IGNvbnRhaW5zIGFsbCB0aGUgdmFsdWVzIHRoYXQKKyAgICAgICAgICAgIGFscmVhZHkgZXhpc3RlZCBpbiBkYXRhc3RvcmUgZHVyaW5nIHRoZSBjcmVhdGlvbiBhdHRlbXB0LgorICAgICAgICAiIiIKKyAgICAgICAgIyBNYXliZSBkbyBhIHByZWxpbWluYXJ5IGNoZWNrLCBiZWZvcmUgZ29pbmcgZm9yIHRyYW5zYWN0aW9ucz8KKyAgICAgICAgIyBlbnRpdGllcyA9IG1vZGVsLmdldF9tdWx0aShrZXlzKQorICAgICAgICAjIGV4aXN0aW5nID0gW2VudGl0eS5rZXkuaWQoKSBmb3IgZW50aXR5IGluIGVudGl0aWVzIGlmIGVudGl0eV0KKyAgICAgICAgIyBpZiBleGlzdGluZzoKKyAgICAgICAgIyAgICByZXR1cm4gRmFsc2UsIGV4aXN0aW5nCisKKyAgICAgICAgIyBDcmVhdGUgYWxsIHJlY29yZHMgdHJhbnNhY3Rpb25hbGx5LgorICAgICAgICBrZXlzID0gW21vZGVsLktleShjbHMsIHZhbHVlKSBmb3IgdmFsdWUgaW4gdmFsdWVzXQorICAgICAgICBlbnRpdGllcyA9IFtjbHMoa2V5PWtleSkgZm9yIGtleSBpbiBrZXlzXQorICAgICAgICBmdW5jID0gbGFtYmRhIGU6IGUucHV0KCkgaWYgbm90IGUua2V5LmdldCgpIGVsc2UgTm9uZQorICAgICAgICBjcmVhdGVkID0gW21vZGVsLnRyYW5zYWN0aW9uKGxhbWJkYTogZnVuYyhlKSkgZm9yIGUgaW4gZW50aXRpZXNdCisKKyAgICAgICAgaWYgY3JlYXRlZCAhPSBrZXlzOgorICAgICAgICAgICAgIyBBIHBvb3IgbWFuJ3MgInJvbGxiYWNrIjogZGVsZXRlIGFsbCByZWNlbnRseSBjcmVhdGVkIHJlY29yZHMuCisgICAgICAgICAgICBtb2RlbC5kZWxldGVfbXVsdGkoayBmb3IgayBpbiBjcmVhdGVkIGlmIGspCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIFtrLmlkKCkgZm9yIGsgaW4ga2V5cyBpZiBrIG5vdCBpbiBjcmVhdGVkXQorCisgICAgICAgIHJldHVybiBUcnVlLCBbXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRlbGV0ZV9tdWx0aShjbHMsIHZhbHVlcyk6CisgICAgICAgICIiIkRlbGV0ZXMgbXVsdGlwbGUgdW5pcXVlIHZhbHVlcyBhdCBvbmNlLgorCisgICAgICAgIDpwYXJhbSB2YWx1ZXM6CisgICAgICAgICAgICBBIHNlcXVlbmNlIG9mIHZhbHVlcyB0byBiZSBkZWxldGVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG1vZGVsLmRlbGV0ZV9tdWx0aShtb2RlbC5LZXkoY2xzLCB2KSBmb3IgdiBpbiB2YWx1ZXMpCisKKworY2xhc3MgVXNlclRva2VuKG1vZGVsLk1vZGVsKToKKyAgICAiIiJTdG9yZXMgdmFsaWRhdGlvbiB0b2tlbnMgZm9yIHVzZXJzLiIiIgorCisgICAgY3JlYXRlZCA9IG1vZGVsLkRhdGVUaW1lUHJvcGVydHkoYXV0b19ub3dfYWRkPVRydWUpCisgICAgdXBkYXRlZCA9IG1vZGVsLkRhdGVUaW1lUHJvcGVydHkoYXV0b19ub3c9VHJ1ZSkKKyAgICB1c2VyID0gbW9kZWwuU3RyaW5nUHJvcGVydHkocmVxdWlyZWQ9VHJ1ZSwgaW5kZXhlZD1GYWxzZSkKKyAgICBzdWJqZWN0ID0gbW9kZWwuU3RyaW5nUHJvcGVydHkocmVxdWlyZWQ9VHJ1ZSkKKyAgICB0b2tlbiA9IG1vZGVsLlN0cmluZ1Byb3BlcnR5KHJlcXVpcmVkPVRydWUpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZ2V0X2tleShjbHMsIHVzZXIsIHN1YmplY3QsIHRva2VuKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHRva2VuIGtleS4KKworICAgICAgICA6cGFyYW0gdXNlcjoKKyAgICAgICAgICAgIFVzZXIgdW5pcXVlIElELgorICAgICAgICA6cGFyYW0gc3ViamVjdDoKKyAgICAgICAgICAgIFRoZSBzdWJqZWN0IG9mIHRoZSBrZXkuIEV4YW1wbGVzOgorCisgICAgICAgICAgICAtICdhdXRoJworICAgICAgICAgICAgLSAnc2lnbnVwJworICAgICAgICA6cGFyYW0gdG9rZW46CisgICAgICAgICAgICBSYW5kb21seSBnZW5lcmF0ZWQgdG9rZW4uCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgYGBtb2RlbC5LZXlgYCBjb250YWluaW5nIGEgc3RyaW5nIGlkIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorICAgICAgICAgICAgYGB7dXNlcl9pZH0ue3N1YmplY3R9Lnt0b2tlbn0uYGAKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBtb2RlbC5LZXkoY2xzLCAnJXMuJXMuJXMnICUgKHN0cih1c2VyKSwgc3ViamVjdCwgdG9rZW4pKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGNyZWF0ZShjbHMsIHVzZXIsIHN1YmplY3QsIHRva2VuPU5vbmUpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHRva2VuIGZvciB0aGUgZ2l2ZW4gdXNlci4KKworICAgICAgICA6cGFyYW0gdXNlcjoKKyAgICAgICAgICAgIFVzZXIgdW5pcXVlIElELgorICAgICAgICA6cGFyYW0gc3ViamVjdDoKKyAgICAgICAgICAgIFRoZSBzdWJqZWN0IG9mIHRoZSBrZXkuIEV4YW1wbGVzOgorCisgICAgICAgICAgICAtICdhdXRoJworICAgICAgICAgICAgLSAnc2lnbnVwJworICAgICAgICA6cGFyYW0gdG9rZW46CisgICAgICAgICAgICBPcHRpb25hbGx5IGFuIGV4aXN0aW5nIHRva2VuIG1heSBiZSBwcm92aWRlZC4KKyAgICAgICAgICAgIElmIE5vbmUsIGEgcmFuZG9tIHRva2VuIHdpbGwgYmUgZ2VuZXJhdGVkLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBuZXdseSBjcmVhdGVkIDpjbGFzczpgVXNlclRva2VuYC4KKyAgICAgICAgIiIiCisgICAgICAgIHVzZXIgPSBzdHIodXNlcikKKyAgICAgICAgdG9rZW4gPSB0b2tlbiBvciBzZWN1cml0eS5nZW5lcmF0ZV9yYW5kb21fc3RyaW5nKGVudHJvcHk9MTI4KQorICAgICAgICBrZXkgPSBjbHMuZ2V0X2tleSh1c2VyLCBzdWJqZWN0LCB0b2tlbikKKyAgICAgICAgZW50aXR5ID0gY2xzKGtleT1rZXksIHVzZXI9dXNlciwgc3ViamVjdD1zdWJqZWN0LCB0b2tlbj10b2tlbikKKyAgICAgICAgZW50aXR5LnB1dCgpCisgICAgICAgIHJldHVybiBlbnRpdHkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBnZXQoY2xzLCB1c2VyPU5vbmUsIHN1YmplY3Q9Tm9uZSwgdG9rZW49Tm9uZSk6CisgICAgICAgICIiIkZldGNoZXMgYSB1c2VyIHRva2VuLgorCisgICAgICAgIDpwYXJhbSB1c2VyOgorICAgICAgICAgICAgVXNlciB1bmlxdWUgSUQuCisgICAgICAgIDpwYXJhbSBzdWJqZWN0OgorICAgICAgICAgICAgVGhlIHN1YmplY3Qgb2YgdGhlIGtleS4gRXhhbXBsZXM6CisKKyAgICAgICAgICAgIC0gJ2F1dGgnCisgICAgICAgICAgICAtICdzaWdudXAnCisgICAgICAgIDpwYXJhbSB0b2tlbjoKKyAgICAgICAgICAgIFRoZSBleGlzdGluZyB0b2tlbiBuZWVkaW5nIHZlcmlmaWVkLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgOmNsYXNzOmBVc2VyVG9rZW5gIG9yIE5vbmUgaWYgdGhlIHRva2VuIGRvZXMgbm90IGV4aXN0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgdXNlciBhbmQgc3ViamVjdCBhbmQgdG9rZW46CisgICAgICAgICAgICByZXR1cm4gY2xzLmdldF9rZXkodXNlciwgc3ViamVjdCwgdG9rZW4pLmdldCgpCisKKyAgICAgICAgYXNzZXJ0IHN1YmplY3QgYW5kIHRva2VuLCBcCisgICAgICAgICAgICAnc3ViamVjdCBhbmQgdG9rZW4gbXVzdCBiZSBwcm92aWRlZCB0byBVc2VyVG9rZW4uZ2V0KCkuJworICAgICAgICByZXR1cm4gY2xzLnF1ZXJ5KGNscy5zdWJqZWN0ID09IHN1YmplY3QsIGNscy50b2tlbiA9PSB0b2tlbikuZ2V0KCkKKworCitjbGFzcyBVc2VyKG1vZGVsLkV4cGFuZG8pOgorICAgICIiIlN0b3JlcyB1c2VyIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIG9yIGF1dGhvcml6YXRpb24gaWRzLiIiIgorCisgICAgIzogVGhlIG1vZGVsIHVzZWQgdG8gZW5zdXJlIHVuaXF1ZW5lc3MuCisgICAgdW5pcXVlX21vZGVsID0gVW5pcXVlCisgICAgIzogVGhlIG1vZGVsIHVzZWQgdG8gc3RvcmUgdG9rZW5zLgorICAgIHRva2VuX21vZGVsID0gVXNlclRva2VuCisKKyAgICBjcmVhdGVkID0gbW9kZWwuRGF0ZVRpbWVQcm9wZXJ0eShhdXRvX25vd19hZGQ9VHJ1ZSkKKyAgICB1cGRhdGVkID0gbW9kZWwuRGF0ZVRpbWVQcm9wZXJ0eShhdXRvX25vdz1UcnVlKQorICAgICMgSUQgZm9yIHRoaXJkIHBhcnR5IGF1dGhlbnRpY2F0aW9uLCBlLmcuICdnb29nbGU6dXNlcm5hbWUnLiBVTklRVUUuCisgICAgYXV0aF9pZHMgPSBtb2RlbC5TdHJpbmdQcm9wZXJ0eShyZXBlYXRlZD1UcnVlKQorICAgICMgSGFzaGVkIHBhc3N3b3JkLiBOb3QgcmVxdWlyZWQgYmVjYXVzZSB0aGlyZCBwYXJ0eSBhdXRoZW50aWNhdGlvbgorICAgICMgZG9lc24ndCB1c2UgcGFzc3dvcmQuCisgICAgcGFzc3dvcmQgPSBtb2RlbC5TdHJpbmdQcm9wZXJ0eSgpCisKKyAgICBkZWYgZ2V0X2lkKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIHRoaXMgdXNlcidzIHVuaXF1ZSBJRCwgd2hpY2ggY2FuIGJlIGFuIGludGVnZXIgb3Igc3RyaW5nLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fa2V5LmlkKCkKKworICAgIGRlZiBhZGRfYXV0aF9pZChzZWxmLCBhdXRoX2lkKToKKyAgICAgICAgIiIiQSBoZWxwZXIgbWV0aG9kIHRvIGFkZCBhZGRpdGlvbmFsIGF1dGggaWRzIHRvIGEgVXNlcgorCisgICAgICAgIDpwYXJhbSBhdXRoX2lkOgorICAgICAgICAgICAgU3RyaW5nIHJlcHJlc2VudGluZyBhIHVuaXF1ZSBpZCBmb3IgdGhlIHVzZXIuIEV4YW1wbGVzOgorCisgICAgICAgICAgICAtIG93bjp1c2VybmFtZQorICAgICAgICAgICAgLSBnb29nbGU6dXNlcm5hbWUKKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIHR1cGxlIChib29sZWFuLCBpbmZvKS4gVGhlIGJvb2xlYW4gaW5kaWNhdGVzIGlmIHRoZSB1c2VyCisgICAgICAgICAgICB3YXMgc2F2ZWQuIElmIGNyZWF0aW9uIHN1Y2NlZWRzLCBgYGluZm9gYCBpcyB0aGUgdXNlciBlbnRpdHk7CisgICAgICAgICAgICBvdGhlcndpc2UgaXQgaXMgYSBsaXN0IG9mIGR1cGxpY2F0ZWQgdW5pcXVlIHByb3BlcnRpZXMgdGhhdAorICAgICAgICAgICAgY2F1c2VkIGNyZWF0aW9uIHRvIGZhaWwuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmF1dGhfaWRzLmFwcGVuZChhdXRoX2lkKQorICAgICAgICB1bmlxdWUgPSAnJXMuYXV0aF9pZDolcycgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIGF1dGhfaWQpCisgICAgICAgIG9rID0gc2VsZi51bmlxdWVfbW9kZWwuY3JlYXRlKHVuaXF1ZSkKKyAgICAgICAgaWYgb2s6CisgICAgICAgICAgICBzZWxmLnB1dCgpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgc2VsZgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBbJ2F1dGhfaWQnXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGdldF9ieV9hdXRoX2lkKGNscywgYXV0aF9pZCk6CisgICAgICAgICIiIlJldHVybnMgYSB1c2VyIG9iamVjdCBiYXNlZCBvbiBhIGF1dGhfaWQuCisKKyAgICAgICAgOnBhcmFtIGF1dGhfaWQ6CisgICAgICAgICAgICBTdHJpbmcgcmVwcmVzZW50aW5nIGEgdW5pcXVlIGlkIGZvciB0aGUgdXNlci4gRXhhbXBsZXM6CisKKyAgICAgICAgICAgIC0gb3duOnVzZXJuYW1lCisgICAgICAgICAgICAtIGdvb2dsZTp1c2VybmFtZQorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgdXNlciBvYmplY3QuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2xzLnF1ZXJ5KGNscy5hdXRoX2lkcyA9PSBhdXRoX2lkKS5nZXQoKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGdldF9ieV9hdXRoX3Rva2VuKGNscywgdXNlcl9pZCwgdG9rZW4pOgorICAgICAgICAiIiJSZXR1cm5zIGEgdXNlciBvYmplY3QgYmFzZWQgb24gYSB1c2VyIElEIGFuZCB0b2tlbi4KKworICAgICAgICA6cGFyYW0gdXNlcl9pZDoKKyAgICAgICAgICAgIFRoZSB1c2VyX2lkIG9mIHRoZSByZXF1ZXN0aW5nIHVzZXIuCisgICAgICAgIDpwYXJhbSB0b2tlbjoKKyAgICAgICAgICAgIFRoZSB0b2tlbiBzdHJpbmcgdG8gYmUgdmVyaWZpZWQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB0dXBsZSBgYChVc2VyLCB0aW1lc3RhbXApYGAsIHdpdGggYSB1c2VyIG9iamVjdCBhbmQKKyAgICAgICAgICAgIHRoZSB0b2tlbiB0aW1lc3RhbXAsIG9yIGBgKE5vbmUsIE5vbmUpYGAgaWYgYm90aCB3ZXJlIG5vdCBmb3VuZC4KKyAgICAgICAgIiIiCisgICAgICAgIHRva2VuX2tleSA9IGNscy50b2tlbl9tb2RlbC5nZXRfa2V5KHVzZXJfaWQsICdhdXRoJywgdG9rZW4pCisgICAgICAgIHVzZXJfa2V5ID0gbW9kZWwuS2V5KGNscywgdXNlcl9pZCkKKyAgICAgICAgIyBVc2UgZ2V0X211bHRpKCkgdG8gc2F2ZSBhIFJQQyBjYWxsLgorICAgICAgICB2YWxpZF90b2tlbiwgdXNlciA9IG1vZGVsLmdldF9tdWx0aShbdG9rZW5fa2V5LCB1c2VyX2tleV0pCisgICAgICAgIGlmIHZhbGlkX3Rva2VuIGFuZCB1c2VyOgorICAgICAgICAgICAgdGltZXN0YW1wID0gaW50KHRpbWUubWt0aW1lKHZhbGlkX3Rva2VuLmNyZWF0ZWQudGltZXR1cGxlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHVzZXIsIHRpbWVzdGFtcAorCisgICAgICAgIHJldHVybiBOb25lLCBOb25lCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZ2V0X2J5X2F1dGhfcGFzc3dvcmQoY2xzLCBhdXRoX2lkLCBwYXNzd29yZCk6CisgICAgICAgICIiIlJldHVybnMgYSB1c2VyIG9iamVjdCwgdmFsaWRhdGluZyBwYXNzd29yZC4KKworICAgICAgICA6cGFyYW0gYXV0aF9pZDoKKyAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uIGlkLgorICAgICAgICA6cGFyYW0gcGFzc3dvcmQ6CisgICAgICAgICAgICBQYXNzd29yZCB0byBiZSBjaGVja2VkLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgdXNlciBvYmplY3QsIGlmIGZvdW5kIGFuZCBwYXNzd29yZCBtYXRjaGVzLgorICAgICAgICA6cmFpc2VzOgorICAgICAgICAgICAgYGBhdXRoLkludmFsaWRBdXRoSWRFcnJvcmBgIG9yIGBgYXV0aC5JbnZhbGlkUGFzc3dvcmRFcnJvcmBgLgorICAgICAgICAiIiIKKyAgICAgICAgdXNlciA9IGNscy5nZXRfYnlfYXV0aF9pZChhdXRoX2lkKQorICAgICAgICBpZiBub3QgdXNlcjoKKyAgICAgICAgICAgIHJhaXNlIGF1dGguSW52YWxpZEF1dGhJZEVycm9yKCkKKworICAgICAgICBpZiBub3Qgc2VjdXJpdHkuY2hlY2tfcGFzc3dvcmRfaGFzaChwYXNzd29yZCwgdXNlci5wYXNzd29yZCk6CisgICAgICAgICAgICByYWlzZSBhdXRoLkludmFsaWRQYXNzd29yZEVycm9yKCkKKworICAgICAgICByZXR1cm4gdXNlcgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHZhbGlkYXRlX3Rva2VuKGNscywgdXNlcl9pZCwgc3ViamVjdCwgdG9rZW4pOgorICAgICAgICAiIiJDaGVja3MgZm9yIGV4aXN0ZW5jZSBvZiBhIHRva2VuLCBnaXZlbiB1c2VyX2lkLCBzdWJqZWN0IGFuZCB0b2tlbi4KKworICAgICAgICA6cGFyYW0gdXNlcl9pZDoKKyAgICAgICAgICAgIFVzZXIgdW5pcXVlIElELgorICAgICAgICA6cGFyYW0gc3ViamVjdDoKKyAgICAgICAgICAgIFRoZSBzdWJqZWN0IG9mIHRoZSBrZXkuIEV4YW1wbGVzOgorCisgICAgICAgICAgICAtICdhdXRoJworICAgICAgICAgICAgLSAnc2lnbnVwJworICAgICAgICA6cGFyYW0gdG9rZW46CisgICAgICAgICAgICBUaGUgdG9rZW4gc3RyaW5nIHRvIGJlIHZhbGlkYXRlZC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIDpjbGFzczpgVXNlclRva2VuYCBvciBOb25lIGlmIHRoZSB0b2tlbiBkb2VzIG5vdCBleGlzdC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjbHMudG9rZW5fbW9kZWwuZ2V0KHVzZXI9dXNlcl9pZCwgc3ViamVjdD1zdWJqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbj10b2tlbikgaXMgbm90IE5vbmUKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjcmVhdGVfYXV0aF90b2tlbihjbHMsIHVzZXJfaWQpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IGF1dGhvcml6YXRpb24gdG9rZW4gZm9yIGEgZ2l2ZW4gdXNlciBJRC4KKworICAgICAgICA6cGFyYW0gdXNlcl9pZDoKKyAgICAgICAgICAgIFVzZXIgdW5pcXVlIElELgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgc3RyaW5nIHdpdGggdGhlIGF1dGhvcml6YXRpb24gdG9rZW4uCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2xzLnRva2VuX21vZGVsLmNyZWF0ZSh1c2VyX2lkLCAnYXV0aCcpLnRva2VuCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdmFsaWRhdGVfYXV0aF90b2tlbihjbHMsIHVzZXJfaWQsIHRva2VuKToKKyAgICAgICAgcmV0dXJuIGNscy52YWxpZGF0ZV90b2tlbih1c2VyX2lkLCAnYXV0aCcsIHRva2VuKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRlbGV0ZV9hdXRoX3Rva2VuKGNscywgdXNlcl9pZCwgdG9rZW4pOgorICAgICAgICAiIiJEZWxldGVzIGEgZ2l2ZW4gYXV0aG9yaXphdGlvbiB0b2tlbi4KKworICAgICAgICA6cGFyYW0gdXNlcl9pZDoKKyAgICAgICAgICAgIFVzZXIgdW5pcXVlIElELgorICAgICAgICA6cGFyYW0gdG9rZW46CisgICAgICAgICAgICBBIHN0cmluZyB3aXRoIHRoZSBhdXRob3JpemF0aW9uIHRva2VuLgorICAgICAgICAiIiIKKyAgICAgICAgY2xzLnRva2VuX21vZGVsLmdldF9rZXkodXNlcl9pZCwgJ2F1dGgnLCB0b2tlbikuZGVsZXRlKCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjcmVhdGVfc2lnbnVwX3Rva2VuKGNscywgdXNlcl9pZCk6CisgICAgICAgIGVudGl0eSA9IGNscy50b2tlbl9tb2RlbC5jcmVhdGUodXNlcl9pZCwgJ3NpZ251cCcpCisgICAgICAgIHJldHVybiBlbnRpdHkudG9rZW4KKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB2YWxpZGF0ZV9zaWdudXBfdG9rZW4oY2xzLCB1c2VyX2lkLCB0b2tlbik6CisgICAgICAgIHJldHVybiBjbHMudmFsaWRhdGVfdG9rZW4odXNlcl9pZCwgJ3NpZ251cCcsIHRva2VuKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRlbGV0ZV9zaWdudXBfdG9rZW4oY2xzLCB1c2VyX2lkLCB0b2tlbik6CisgICAgICAgIGNscy50b2tlbl9tb2RlbC5nZXRfa2V5KHVzZXJfaWQsICdzaWdudXAnLCB0b2tlbikuZGVsZXRlKCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjcmVhdGVfdXNlcihjbHMsIGF1dGhfaWQsIHVuaXF1ZV9wcm9wZXJ0aWVzPU5vbmUsICoqdXNlcl92YWx1ZXMpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHVzZXIuCisKKyAgICAgICAgOnBhcmFtIGF1dGhfaWQ6CisgICAgICAgICAgICBBIHN0cmluZyB0aGF0IGlzIHVuaXF1ZSB0byB0aGUgdXNlci4gVXNlcnMgbWF5IGhhdmUgbXVsdGlwbGUKKyAgICAgICAgICAgIGF1dGggaWRzLiBFeGFtcGxlIGF1dGggaWRzOgorCisgICAgICAgICAgICAtIG93bjp1c2VybmFtZQorICAgICAgICAgICAgLSBvd246ZW1haWxAZXhhbXBsZS5jb20KKyAgICAgICAgICAgIC0gZ29vZ2xlOnVzZXJuYW1lCisgICAgICAgICAgICAtIHlhaG9vOnVzZXJuYW1lCisKKyAgICAgICAgICAgIFRoZSB2YWx1ZSBvZiBgYXV0aF9pZGAgbXVzdCBiZSB1bmlxdWUuCisgICAgICAgIDpwYXJhbSB1bmlxdWVfcHJvcGVydGllczoKKyAgICAgICAgICAgIFNlcXVlbmNlIG9mIGV4dHJhIHByb3BlcnR5IG5hbWVzIHRoYXQgbXVzdCBiZSB1bmlxdWUuCisgICAgICAgIDpwYXJhbSB1c2VyX3ZhbHVlczoKKyAgICAgICAgICAgIEtleXdvcmQgYXJndW1lbnRzIHRvIGNyZWF0ZSBhIG5ldyB1c2VyIGVudGl0eS4gU2luY2UgdGhlIG1vZGVsIGlzCisgICAgICAgICAgICBhbiBgYEV4cGFuZG9gYCwgYW55IHByb3ZpZGVkIGN1c3RvbSBwcm9wZXJ0aWVzIHdpbGwgYmUgc2F2ZWQuCisgICAgICAgICAgICBUbyBoYXNoIGEgcGxhaW4gcGFzc3dvcmQsIHBhc3MgYSBrZXl3b3JkIGBgcGFzc3dvcmRfcmF3YGAuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB0dXBsZSAoYm9vbGVhbiwgaW5mbykuIFRoZSBib29sZWFuIGluZGljYXRlcyBpZiB0aGUgdXNlcgorICAgICAgICAgICAgd2FzIGNyZWF0ZWQuIElmIGNyZWF0aW9uIHN1Y2NlZWRzLCBgYGluZm9gYCBpcyB0aGUgdXNlciBlbnRpdHk7CisgICAgICAgICAgICBvdGhlcndpc2UgaXQgaXMgYSBsaXN0IG9mIGR1cGxpY2F0ZWQgdW5pcXVlIHByb3BlcnRpZXMgdGhhdAorICAgICAgICAgICAgY2F1c2VkIGNyZWF0aW9uIHRvIGZhaWwuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgdXNlcl92YWx1ZXMuZ2V0KCdwYXNzd29yZCcpIGlzIE5vbmUsIFwKKyAgICAgICAgICAgICdVc2UgcGFzc3dvcmRfcmF3IGluc3RlYWQgb2YgcGFzc3dvcmQgdG8gY3JlYXRlIG5ldyB1c2Vycy4nCisKKyAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKGF1dGhfaWQsIGxpc3QpLCBcCisgICAgICAgICAgICAnQ3JlYXRpbmcgYSB1c2VyIHdpdGggbXVsdGlwbGUgYXV0aF9pZHMgaXMgbm90IGFsbG93ZWQsICcgXAorICAgICAgICAgICAgJ3BsZWFzZSBwcm92aWRlIGEgc2luZ2xlIGF1dGhfaWQuJworCisgICAgICAgIGlmICdwYXNzd29yZF9yYXcnIGluIHVzZXJfdmFsdWVzOgorICAgICAgICAgICAgdXNlcl92YWx1ZXNbJ3Bhc3N3b3JkJ10gPSBzZWN1cml0eS5nZW5lcmF0ZV9wYXNzd29yZF9oYXNoKAorICAgICAgICAgICAgICAgIHVzZXJfdmFsdWVzLnBvcCgncGFzc3dvcmRfcmF3JyksIGxlbmd0aD0xMikKKworICAgICAgICB1c2VyX3ZhbHVlc1snYXV0aF9pZHMnXSA9IFthdXRoX2lkXQorICAgICAgICB1c2VyID0gY2xzKCoqdXNlcl92YWx1ZXMpCisKKyAgICAgICAgIyBTZXQgdXAgdW5pcXVlIHByb3BlcnRpZXMuCisgICAgICAgIHVuaXF1ZXMgPSBbKCclcy5hdXRoX2lkOiVzJyAlIChjbHMuX19uYW1lX18sIGF1dGhfaWQpLCAnYXV0aF9pZCcpXQorICAgICAgICBpZiB1bmlxdWVfcHJvcGVydGllczoKKyAgICAgICAgICAgIGZvciBuYW1lIGluIHVuaXF1ZV9wcm9wZXJ0aWVzOgorICAgICAgICAgICAgICAgIGtleSA9ICclcy4lczolcycgJSAoY2xzLl9fbmFtZV9fLCBuYW1lLCB1c2VyX3ZhbHVlc1tuYW1lXSkKKyAgICAgICAgICAgICAgICB1bmlxdWVzLmFwcGVuZCgoa2V5LCBuYW1lKSkKKworICAgICAgICBvaywgZXhpc3RpbmcgPSBjbHMudW5pcXVlX21vZGVsLmNyZWF0ZV9tdWx0aShrIGZvciBrLCB2IGluIHVuaXF1ZXMpCisgICAgICAgIGlmIG9rOgorICAgICAgICAgICAgdXNlci5wdXQoKQorICAgICAgICAgICAgcmV0dXJuIFRydWUsIHVzZXIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByb3BlcnRpZXMgPSBbdiBmb3IgaywgdiBpbiB1bmlxdWVzIGlmIGsgaW4gZXhpc3RpbmddCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19tZW1jYWNoZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19tZW1jYWNoZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDZjNzJkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvYXBwZW5naW5lL3Nlc3Npb25zX21lbWNhY2hlLnB5CkBAIC0wLDAgKzEsNTEgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiIKKyAgICB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuc2Vzc2lvbnNfbWVtY2FjaGUKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIEV4dGVuZGVkIHNlc3Npb25zIHN0b3JlZCBpbiBtZW1jYWNoZS4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgYnkgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgorZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgbWVtY2FjaGUKKworZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2Vzc2lvbnMKKworCitjbGFzcyBNZW1jYWNoZVNlc3Npb25GYWN0b3J5KHNlc3Npb25zLkN1c3RvbUJhY2tlbmRTZXNzaW9uRmFjdG9yeSk6CisgICAgIiIiQSBzZXNzaW9uIGZhY3RvcnkgdGhhdCBzdG9yZXMgZGF0YSBzZXJpYWxpemVkIGluIG1lbWNhY2hlLgorCisgICAgVG8gdXNlIG1lbWNhY2hlIHNlc3Npb25zLCBwYXNzIHRoaXMgY2xhc3MgYXMgdGhlIGBmYWN0b3J5YCBrZXl3b3JkIHRvCisgICAgOm1ldGg6YHdlYmFwcDJfZXh0cmFzLnNlc3Npb25zLlNlc3Npb25TdG9yZS5nZXRfc2Vzc2lvbmA6OgorCisgICAgICAgIGZyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHNlc3Npb25zX21lbWNhY2hlCisKKyAgICAgICAgIyBbLi4uXQorCisgICAgICAgIHNlc3Npb24gPSBzZWxmLnNlc3Npb25fc3RvcmUuZ2V0X3Nlc3Npb24oCisgICAgICAgICAgICBuYW1lPSdtY19zZXNzaW9uJywKKyAgICAgICAgICAgIGZhY3Rvcnk9c2Vzc2lvbnNfbWVtY2FjaGUuTWVtY2FjaGVTZXNzaW9uRmFjdG9yeSkKKworICAgIFNlZSBpbiA6bWV0aDpgd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnMuU2Vzc2lvblN0b3JlYCBhbiBleGFtcGxlIG9mIGhvdyB0bworICAgIG1ha2Ugc2Vzc2lvbnMgYXZhaWxhYmxlIGluIGEgOmNsYXNzOmB3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyYC4KKyAgICAiIiIKKworICAgIGRlZiBfZ2V0X2J5X3NpZChzZWxmLCBzaWQpOgorICAgICAgICAiIiJSZXR1cm5zIGEgc2Vzc2lvbiBnaXZlbiBhIHNlc3Npb24gaWQuIiIiCisgICAgICAgIGlmIHNlbGYuX2lzX3ZhbGlkX3NpZChzaWQpOgorICAgICAgICAgICAgZGF0YSA9IG1lbWNhY2hlLmdldChzaWQpCisgICAgICAgICAgICBpZiBkYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuc2lkID0gc2lkCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlc3Npb25zLlNlc3Npb25EaWN0KHNlbGYsIGRhdGE9ZGF0YSkKKworICAgICAgICBzZWxmLnNpZCA9IHNlbGYuX2dldF9uZXdfc2lkKCkKKyAgICAgICAgcmV0dXJuIHNlc3Npb25zLlNlc3Npb25EaWN0KHNlbGYsIG5ldz1UcnVlKQorCisgICAgZGVmIHNhdmVfc2Vzc2lvbihzZWxmLCByZXNwb25zZSk6CisgICAgICAgIGlmIHNlbGYuc2Vzc2lvbiBpcyBOb25lIG9yIG5vdCBzZWxmLnNlc3Npb24ubW9kaWZpZWQ6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBtZW1jYWNoZS5zZXQoc2VsZi5zaWQsIGRpY3Qoc2VsZi5zZXNzaW9uKSkKKyAgICAgICAgc2VsZi5zZXNzaW9uX3N0b3JlLnNhdmVfc2VjdXJlX2Nvb2tpZSgKKyAgICAgICAgICAgIHJlc3BvbnNlLCBzZWxmLm5hbWUsIHsnX3NpZCc6IHNlbGYuc2lkfSwgKipzZWxmLnNlc3Npb25fYXJncykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS9zZXNzaW9uc19uZGIucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvc2Vzc2lvbnNfbmRiLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NzFmNWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvc2Vzc2lvbnNfbmRiLnB5CkBAIC0wLDAgKzEsMTE3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLnNlc3Npb25zX25kYgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIEV4dGVuZGVkIHNlc3Npb25zIHN0b3JlZCBpbiBkYXRhc3RvcmUgdXNpbmcgdGhlIG5kYiBsaWJyYXJ5LgorCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUuYXBpIGltcG9ydCBtZW1jYWNoZQorCit0cnk6CisgICAgZnJvbSBuZGIgaW1wb3J0IG1vZGVsCitleGNlcHQgSW1wb3J0RXJyb3I6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQubmRiIGltcG9ydCBtb2RlbAorCit0cnk6CisgICAgZnJvbSBuZGIubW9kZWwgaW1wb3J0IFBpY2tsZVByb3BlcnR5CitleGNlcHQgSW1wb3J0RXJyb3I6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIHRyeToKKyAgICAgICAgZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC5uZGIubW9kZWwgaW1wb3J0IFBpY2tsZVByb3BlcnR5CisgICAgZXhjZXB0IEltcG9ydEVycm9yOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgIyBuZGIgaW4gU0RLIDEuNi4xIGRvZXNuJ3QgaGF2ZSBQaWNrbGVQcm9wZXJ0eS4KKyAgICAgICAgaW1wb3J0IHBpY2tsZQorCisgICAgICAgIGNsYXNzIFBpY2tsZVByb3BlcnR5KG1vZGVsLkJsb2JQcm9wZXJ0eSk6CisgICAgICAgICAgICAiIiJBIFByb3BlcnR5IHdob3NlIHZhbHVlIGlzIGFueSBwaWNrbGFibGUgUHl0aG9uIG9iamVjdC4iIiIKKworICAgICAgICAgICAgZGVmIF92YWxpZGF0ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICAgICAgICAgIGRlZiBfZGJfc2V0X3ZhbHVlKHNlbGYsIHYsIHAsIHZhbHVlKToKKyAgICAgICAgICAgICAgICBzdXBlcihQaWNrbGVQcm9wZXJ0eSwgc2VsZikuX2RiX3NldF92YWx1ZSh2LCBwLAorICAgICAgICAgICAgICAgICAgICBwaWNrbGUuZHVtcHModmFsdWUpKQorCisgICAgICAgICAgICBkZWYgX2RiX2dldF92YWx1ZShzZWxmLCB2LCBwKToKKyAgICAgICAgICAgICAgICBpZiBub3Qgdi5oYXNfc3RyaW5ndmFsdWUoKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAgICAgICAgIHJldHVybiBwaWNrbGUubG9hZHModi5zdHJpbmd2YWx1ZSgpKQorCisKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHNlc3Npb25zCisKK2NsYXNzIFNlc3Npb24obW9kZWwuTW9kZWwpOgorICAgICIiIkEgbW9kZWwgdG8gc3RvcmUgc2Vzc2lvbiBkYXRhLiIiIgorCisgICAgIzogU2F2ZSB0aW1lLgorICAgIHVwZGF0ZWQgPSBtb2RlbC5EYXRlVGltZVByb3BlcnR5KGF1dG9fbm93PVRydWUpCisgICAgIzogU2Vzc2lvbiBkYXRhLCBwaWNrbGVkLgorICAgIGRhdGEgPSBQaWNrbGVQcm9wZXJ0eSgpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZ2V0X2J5X3NpZChjbHMsIHNpZCk6CisgICAgICAgICIiIlJldHVybnMgYSBgYFNlc3Npb25gYCBpbnN0YW5jZSBieSBzZXNzaW9uIGlkLgorCisgICAgICAgIDpwYXJhbSBzaWQ6CisgICAgICAgICAgICBBIHNlc3Npb24gaWQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQW4gZXhpc3RpbmcgYGBTZXNzaW9uYGAgZW50aXR5LgorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IG1lbWNhY2hlLmdldChzaWQpCisgICAgICAgIGlmIG5vdCBkYXRhOgorICAgICAgICAgICAgc2Vzc2lvbiA9IG1vZGVsLktleShjbHMsIHNpZCkuZ2V0KCkKKyAgICAgICAgICAgIGlmIHNlc3Npb246CisgICAgICAgICAgICAgICAgZGF0YSA9IHNlc3Npb24uZGF0YQorICAgICAgICAgICAgICAgIG1lbWNhY2hlLnNldChzaWQsIGRhdGEpCisKKyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIGRlZiBfcHV0KHNlbGYpOgorICAgICAgICAiIiJTYXZlcyB0aGUgc2Vzc2lvbiBhbmQgdXBkYXRlcyB0aGUgbWVtY2FjaGUgZW50cnkuIiIiCisgICAgICAgIG1lbWNhY2hlLnNldChzZWxmLl9rZXkuaWQoKSwgc2VsZi5kYXRhKQorICAgICAgICBzdXBlcihTZXNzaW9uLCBzZWxmKS5wdXQoKQorCisKK2NsYXNzIERhdGFzdG9yZVNlc3Npb25GYWN0b3J5KHNlc3Npb25zLkN1c3RvbUJhY2tlbmRTZXNzaW9uRmFjdG9yeSk6CisgICAgIiIiQSBzZXNzaW9uIGZhY3RvcnkgdGhhdCBzdG9yZXMgZGF0YSBzZXJpYWxpemVkIGluIGRhdGFzdG9yZS4KKworICAgIFRvIHVzZSBkYXRhc3RvcmUgc2Vzc2lvbnMsIHBhc3MgdGhpcyBjbGFzcyBhcyB0aGUgYGZhY3RvcnlgIGtleXdvcmQgdG8KKyAgICA6bWV0aDpgd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnMuU2Vzc2lvblN0b3JlLmdldF9zZXNzaW9uYDo6CisKKyAgICAgICAgZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2Vzc2lvbnNfbmRiCisKKyAgICAgICAgIyBbLi4uXQorCisgICAgICAgIHNlc3Npb24gPSBzZWxmLnNlc3Npb25fc3RvcmUuZ2V0X3Nlc3Npb24oCisgICAgICAgICAgICBuYW1lPSdkYl9zZXNzaW9uJywgZmFjdG9yeT1zZXNzaW9uc19uZGIuRGF0YXN0b3JlU2Vzc2lvbkZhY3RvcnkpCisKKyAgICBTZWUgaW4gOm1ldGg6YHdlYmFwcDJfZXh0cmFzLnNlc3Npb25zLlNlc3Npb25TdG9yZWAgYW4gZXhhbXBsZSBvZiBob3cgdG8KKyAgICBtYWtlIHNlc3Npb25zIGF2YWlsYWJsZSBpbiBhIDpjbGFzczpgd2ViYXBwMi5SZXF1ZXN0SGFuZGxlcmAuCisgICAgIiIiCisKKyAgICAjOiBUaGUgc2Vzc2lvbiBtb2RlbCBjbGFzcy4KKyAgICBzZXNzaW9uX21vZGVsID0gU2Vzc2lvbgorCisgICAgZGVmIF9nZXRfYnlfc2lkKHNlbGYsIHNpZCk6CisgICAgICAgICIiIlJldHVybnMgYSBzZXNzaW9uIGdpdmVuIGEgc2Vzc2lvbiBpZC4iIiIKKyAgICAgICAgaWYgc2VsZi5faXNfdmFsaWRfc2lkKHNpZCk6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5zZXNzaW9uX21vZGVsLmdldF9ieV9zaWQoc2lkKQorICAgICAgICAgICAgaWYgZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLnNpZCA9IHNpZAorICAgICAgICAgICAgICAgIHJldHVybiBzZXNzaW9ucy5TZXNzaW9uRGljdChzZWxmLCBkYXRhPWRhdGEpCisKKyAgICAgICAgc2VsZi5zaWQgPSBzZWxmLl9nZXRfbmV3X3NpZCgpCisgICAgICAgIHJldHVybiBzZXNzaW9ucy5TZXNzaW9uRGljdChzZWxmLCBuZXc9VHJ1ZSkKKworICAgIGRlZiBzYXZlX3Nlc3Npb24oc2VsZiwgcmVzcG9uc2UpOgorICAgICAgICBpZiBzZWxmLnNlc3Npb24gaXMgTm9uZSBvciBub3Qgc2VsZi5zZXNzaW9uLm1vZGlmaWVkOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5zZXNzaW9uX21vZGVsKGlkPXNlbGYuc2lkLCBkYXRhPWRpY3Qoc2VsZi5zZXNzaW9uKSkuX3B1dCgpCisgICAgICAgIHNlbGYuc2Vzc2lvbl9zdG9yZS5zYXZlX3NlY3VyZV9jb29raWUoCisgICAgICAgICAgICByZXNwb25zZSwgc2VsZi5uYW1lLCB7J19zaWQnOiBzZWxmLnNpZH0sICoqc2VsZi5zZXNzaW9uX2FyZ3MpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvdXNlcnMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hcHBlbmdpbmUvdXNlcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RlOGMyZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2FwcGVuZ2luZS91c2Vycy5weQpAQCAtMCwwICsxLDcwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMuYXBwZW5naW5lLnVzZXJzCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBIZWxwZXJzIGZvciBnb29nbGUuYXBwZW5naW5lLmFwaS51c2Vycy4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgorZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgdXNlcnMKKworCitkZWYgbG9naW5fcmVxdWlyZWQoaGFuZGxlcl9tZXRob2QpOgorICAgICIiIkEgZGVjb3JhdG9yIHRvIHJlcXVpcmUgdGhhdCBhIHVzZXIgYmUgbG9nZ2VkIGluIHRvIGFjY2VzcyBhIGhhbmRsZXIuCisKKyAgICBUbyB1c2UgaXQsIGRlY29yYXRlIHlvdXIgZ2V0KCkgbWV0aG9kIGxpa2UgdGhpczo6CisKKyAgICAgICAgQGxvZ2luX3JlcXVpcmVkCisgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICB1c2VyID0gdXNlcnMuZ2V0X2N1cnJlbnRfdXNlcihzZWxmKQorICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ0hlbGxvLCAnICsgdXNlci5uaWNrbmFtZSgpKQorCisgICAgV2Ugd2lsbCByZWRpcmVjdCB0byBhIGxvZ2luIHBhZ2UgaWYgdGhlIHVzZXIgaXMgbm90IGxvZ2dlZCBpbi4gV2UgYWx3YXlzCisgICAgcmVkaXJlY3QgdG8gdGhlIHJlcXVlc3QgVVJJLCBhbmQgR29vZ2xlIEFjY291bnRzIG9ubHkgcmVkaXJlY3RzIGJhY2sgYXMKKyAgICBhIEdFVCByZXF1ZXN0LCBzbyB0aGlzIHNob3VsZCBub3QgYmUgdXNlZCBmb3IgUE9TVHMuCisgICAgIiIiCisgICAgZGVmIGNoZWNrX2xvZ2luKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIHNlbGYucmVxdWVzdC5tZXRob2QgIT0gJ0dFVCc6CisgICAgICAgICAgICBzZWxmLmFib3J0KDQwMCwgZGV0YWlsPSdUaGUgbG9naW5fcmVxdWlyZWQgZGVjb3JhdG9yICcKKyAgICAgICAgICAgICAgICAnY2FuIG9ubHkgYmUgdXNlZCBmb3IgR0VUIHJlcXVlc3RzLicpCisKKyAgICAgICAgdXNlciA9IHVzZXJzLmdldF9jdXJyZW50X3VzZXIoKQorICAgICAgICBpZiBub3QgdXNlcjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlZGlyZWN0KHVzZXJzLmNyZWF0ZV9sb2dpbl91cmwoc2VsZi5yZXF1ZXN0LnVybCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBoYW5kbGVyX21ldGhvZChzZWxmLCAqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gY2hlY2tfbG9naW4KKworCitkZWYgYWRtaW5fcmVxdWlyZWQoaGFuZGxlcl9tZXRob2QpOgorICAgICIiIkEgZGVjb3JhdG9yIHRvIHJlcXVpcmUgdGhhdCBhIHVzZXIgYmUgYW4gYWRtaW4gZm9yIHRoaXMgYXBwbGljYXRpb24KKyAgICB0byBhY2Nlc3MgYSBoYW5kbGVyLgorCisgICAgVG8gdXNlIGl0LCBkZWNvcmF0ZSB5b3VyIGdldCgpIG1ldGhvZCBsaWtlIHRoaXM6OgorCisgICAgICAgIEBhZG1pbl9yZXF1aXJlZAorICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgdXNlciA9IHVzZXJzLmdldF9jdXJyZW50X3VzZXIoc2VsZikKKyAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCdIZWxsbywgJyArIHVzZXIubmlja25hbWUoKSkKKworICAgIFdlIHdpbGwgcmVkaXJlY3QgdG8gYSBsb2dpbiBwYWdlIGlmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4uIFdlIGFsd2F5cworICAgIHJlZGlyZWN0IHRvIHRoZSByZXF1ZXN0IFVSSSwgYW5kIEdvb2dsZSBBY2NvdW50cyBvbmx5IHJlZGlyZWN0cyBiYWNrIGFzCisgICAgYSBHRVQgcmVxdWVzdCwgc28gdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIFBPU1RzLgorICAgICIiIgorICAgIGRlZiBjaGVja19hZG1pbihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBzZWxmLnJlcXVlc3QubWV0aG9kICE9ICdHRVQnOgorICAgICAgICAgICAgc2VsZi5hYm9ydCg0MDAsIGRldGFpbD0nVGhlIGFkbWluX3JlcXVpcmVkIGRlY29yYXRvciAnCisgICAgICAgICAgICAgICAgJ2NhbiBvbmx5IGJlIHVzZWQgZm9yIEdFVCByZXF1ZXN0cy4nKQorCisgICAgICAgIHVzZXIgPSB1c2Vycy5nZXRfY3VycmVudF91c2VyKCkKKyAgICAgICAgaWYgbm90IHVzZXI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZWRpcmVjdCh1c2Vycy5jcmVhdGVfbG9naW5fdXJsKHNlbGYucmVxdWVzdC51cmwpKQorICAgICAgICBlbGlmIG5vdCB1c2Vycy5pc19jdXJyZW50X3VzZXJfYWRtaW4oKToKKyAgICAgICAgICAgIHNlbGYuYWJvcnQoNDAzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaGFuZGxlcl9tZXRob2Qoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorCisgICAgcmV0dXJuIGNoZWNrX2FkbWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9hdXRoLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvYXV0aC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2EwY2ExCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvYXV0aC5weQpAQCAtMCwwICsxLDY0NCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLmF1dGgKKyAgICA9PT09PT09PT09PT09PT09PT09CisKKyAgICBVdGlsaXRpZXMgZm9yIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uLgorCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHRpbWUKKworaW1wb3J0IHdlYmFwcDIKKworZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2VjdXJpdHkKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHNlc3Npb25zCisKKyM6IERlZmF1bHQgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRoaXMgbW9kdWxlLiBLZXlzIGFyZToKKyM6CisjOiB1c2VyX21vZGVsCisjOiAgICAgVXNlciBtb2RlbCB3aGljaCBhdXRoZW50aWNhdGVzIGN1c3RvbSB1c2VycyBhbmQgdG9rZW5zLgorIzogICAgIENhbiBhbHNvIGJlIGEgc3RyaW5nIGluIGRvdHRlZCBub3RhdGlvbiB0byBiZSBsYXppbHkgaW1wb3J0ZWQuCisjOiAgICAgRGVmYXVsdCBpcyA6Y2xhc3M6YHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5hdXRoLm1vZGVscy5Vc2VyYC4KKyM6CisjOiBzZXNzaW9uX2JhY2tlbmQKKyM6ICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIGJhY2tlbmQgdG8gYmUgdXNlZC4gRGVmYXVsdCBpcyBgc2VjdXJlY29va2llYC4KKyM6CisjOiBjb29raWVfbmFtZQorIzogICAgIE5hbWUgb2YgdGhlIGNvb2tpZSB0byBzYXZlIHRoZSBhdXRoIHNlc3Npb24uIERlZmF1bHQgaXMgYGF1dGhgLgorIzoKKyM6IHRva2VuX21heF9hZ2UKKyM6ICAgICBOdW1iZXIgb2Ygc2Vjb25kcyBvZiBpbmFjdGl2aXR5IGFmdGVyIHdoaWNoIGFuIGF1dGggdG9rZW4gaXMKKyM6ICAgICBpbnZhbGlkYXRlZC4gVGhlIHNhbWUgdmFsdWUgaXMgdXNlZCB0byBzZXQgdGhlIGBgbWF4X2FnZWBgIGZvcgorIzogICAgIHBlcnNpc3RlbnQgYXV0aCBzZXNzaW9ucy4gRGVmYXVsdCBpcyA4NjQwMCAqIDcgKiAzICgzIHdlZWtzKS4KKyM6CisjOiB0b2tlbl9uZXdfYWdlCisjOiAgICAgTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggYSBuZXcgdG9rZW4gaXMgY3JlYXRlZCBhbmQgd3JpdHRlbiB0bworIzogICAgIHRoZSBkYXRhYmFzZSwgYW5kIHRoZSBvbGQgb25lIGlzIGludmFsaWRhdGVkLgorIzogICAgIFVzZSB0aGlzIHRvIGxpbWl0IGRhdGFiYXNlIHdyaXRlczsgc2V0IHRvIE5vbmUgdG8gd3JpdGUgb24gYWxsIHJlcXVlc3RzLgorIzogICAgIERlZmF1bHQgaXMgODY0MDAgKDEgZGF5KS4KKyM6CisjOiB0b2tlbl9jYWNoZV9hZ2UKKyM6ICAgICBOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCBhIHRva2VuIG11c3QgYmUgY2hlY2tlZCBpbiB0aGUgZGF0YWJhc2UuCisjOiAgICAgVXNlIHRoaXMgdG8gbGltaXQgZGF0YWJhc2UgcmVhZHM7IHNldCB0byBOb25lIHRvIHJlYWQgb24gYWxsIHJlcXVlc3RzLgorIzogICAgIERlZmF1bHQgaXMgMzYwMCAoMSBob3VyKS4KKyM6CisjOiB1c2VyX2F0dHJpYnV0ZXMKKyM6ICAgICBBIGxpc3Qgb2YgZXh0cmEgdXNlciBhdHRyaWJ1dGVzIHRvIGJlIHN0b3JlZCBpbiB0aGUgc2Vzc2lvbi4KKyMgICAgICBUaGUgdXNlciBvYmplY3QgbXVzdCBwcm92aWRlIGFsbCBvZiB0aGVtIGFzIGF0dHJpYnV0ZXMuCisjOiAgICAgRGVmYXVsdCBpcyBhbiBlbXB0eSBsaXN0LgorZGVmYXVsdF9jb25maWcgPSB7CisgICAgJ3VzZXJfbW9kZWwnOiAgICAgICd3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuYXV0aC5tb2RlbHMuVXNlcicsCisgICAgJ3Nlc3Npb25fYmFja2VuZCc6ICdzZWN1cmVjb29raWUnLAorICAgICdjb29raWVfbmFtZSc6ICAgICAnYXV0aCcsCisgICAgJ3Rva2VuX21heF9hZ2UnOiAgIDg2NDAwICogNyAqIDMsCisgICAgJ3Rva2VuX25ld19hZ2UnOiAgIDg2NDAwLAorICAgICd0b2tlbl9jYWNoZV9hZ2UnOiAzNjAwLAorICAgICd1c2VyX2F0dHJpYnV0ZXMnOiBbXSwKK30KKworIzogSW50ZXJuYWwgZmxhZyBmb3IgYW5vbnltb3VzIHVzZXJzLgorX2Fub24gPSBvYmplY3QoKQorCisKK2NsYXNzIEF1dGhFcnJvcihFeGNlcHRpb24pOgorICAgICIiIkJhc2UgYXV0aCBleGNlcHRpb24uIiIiCisKKworY2xhc3MgSW52YWxpZEF1dGhJZEVycm9yKEF1dGhFcnJvcik6CisgICAgIiIiUmFpc2VkIHdoZW4gYSB1c2VyIGNhbid0IGJlIGZldGNoZWQgZ2l2ZW4gYW4gYXV0aF9pZC4iIiIKKworCitjbGFzcyBJbnZhbGlkUGFzc3dvcmRFcnJvcihBdXRoRXJyb3IpOgorICAgICIiIlJhaXNlZCB3aGVuIGEgdXNlciBwYXNzd29yZCBkb2Vzbid0IG1hdGNoLiIiIgorCisKK2NsYXNzIEF1dGhTdG9yZShvYmplY3QpOgorICAgICIiIlByb3ZpZGVzIGNvbW1vbiB1dGlsaXRpZXMgYW5kIGNvbmZpZ3VyYXRpb24gZm9yIDpjbGFzczpgQXV0aGAuIiIiCisKKyAgICAjOiBDb25maWd1cmF0aW9uIGtleS4KKyAgICBjb25maWdfa2V5ID0gX19uYW1lX18KKworICAgICM6IFJlcXVpcmVkIGF0dHJpYnV0ZXMgc3RvcmVkIGluIGEgc2Vzc2lvbi4KKyAgICBfc2Vzc2lvbl9hdHRyaWJ1dGVzID0gWyd1c2VyX2lkJywgJ3JlbWVtYmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicsICd0b2tlbl90cycsICdjYWNoZV90cyddCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwLCBjb25maWc9Tm9uZSk6CisgICAgICAgICIiIkluaXRpYWxpemVzIHRoZSBzZXNzaW9uIHN0b3JlLgorCisgICAgICAgIDpwYXJhbSBhcHA6CisgICAgICAgICAgICBBIDpjbGFzczpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb25gIGluc3RhbmNlLgorICAgICAgICA6cGFyYW0gY29uZmlnOgorICAgICAgICAgICAgQSBkaWN0aW9uYXJ5IG9mIGNvbmZpZ3VyYXRpb24gdmFsdWVzIHRvIGJlIG92ZXJyaWRkZW4uIFNlZQorICAgICAgICAgICAgdGhlIGF2YWlsYWJsZSBrZXlzIGluIDpkYXRhOmBkZWZhdWx0X2NvbmZpZ2AuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmFwcCA9IGFwcAorICAgICAgICAjIEJhc2UgY29uZmlndXJhdGlvbi4KKyAgICAgICAgc2VsZi5jb25maWcgPSBhcHAuY29uZmlnLmxvYWRfY29uZmlnKHNlbGYuY29uZmlnX2tleSwKKyAgICAgICAgICAgIGRlZmF1bHRfdmFsdWVzPWRlZmF1bHRfY29uZmlnLCB1c2VyX3ZhbHVlcz1jb25maWcpCisKKyAgICAjIFVzZXIgZGF0YSB3ZSdyZSBpbnRlcmVzdGVkIGluIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIEB3ZWJhcHAyLmNhY2hlZF9wcm9wZXJ0eQorICAgIGRlZiBzZXNzaW9uX2F0dHJpYnV0ZXMoc2VsZik6CisgICAgICAgICIiIlRoZSBsaXN0IG9mIGF0dHJpYnV0ZXMgc3RvcmVkIGluIGEgc2Vzc2lvbi4KKworICAgICAgICBUaGlzIG11c3QgYmUgYW4gb3JkZXJlZCBsaXN0IG9mIHVuaXF1ZSBlbGVtZW50cy4KKyAgICAgICAgIiIiCisgICAgICAgIHNlZW4gPSBzZXQoKQorICAgICAgICBhdHRycyA9IHNlbGYuX3Nlc3Npb25fYXR0cmlidXRlcyArIHNlbGYudXNlcl9hdHRyaWJ1dGVzCisgICAgICAgIHJldHVybiBbYSBmb3IgYSBpbiBhdHRycyBpZiBhIG5vdCBpbiBzZWVuIGFuZCBub3Qgc2Vlbi5hZGQoYSldCisKKyAgICBAd2ViYXBwMi5jYWNoZWRfcHJvcGVydHkKKyAgICBkZWYgdXNlcl9hdHRyaWJ1dGVzKHNlbGYpOgorICAgICAgICAiIiJUaGUgbGlzdCBvZiBhdHRyaWJ1dGVzIHJldHJpZXZlZCBmcm9tIHRoZSB1c2VyIG1vZGVsLgorCisgICAgICAgIFRoaXMgbXVzdCBiZSBhbiBvcmRlcmVkIGxpc3Qgb2YgdW5pcXVlIGVsZW1lbnRzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VlbiA9IHNldCgpCisgICAgICAgIGF0dHJzID0gc2VsZi5jb25maWdbJ3VzZXJfYXR0cmlidXRlcyddCisgICAgICAgIHJldHVybiBbYSBmb3IgYSBpbiBhdHRycyBpZiBhIG5vdCBpbiBzZWVuIGFuZCBub3Qgc2Vlbi5hZGQoYSldCisKKyAgICAjIFVzZXIgbW9kZWwgcmVsYXRlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIEB3ZWJhcHAyLmNhY2hlZF9wcm9wZXJ0eQorICAgIGRlZiB1c2VyX21vZGVsKHNlbGYpOgorICAgICAgICAiIiJDb25maWd1cmVkIHVzZXIgbW9kZWwuIiIiCisgICAgICAgIGNscyA9IHNlbGYuY29uZmlnWyd1c2VyX21vZGVsJ10KKyAgICAgICAgaWYgaXNpbnN0YW5jZShjbHMsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgY2xzID0gc2VsZi5jb25maWdbJ3VzZXJfbW9kZWwnXSA9IHdlYmFwcDIuaW1wb3J0X3N0cmluZyhjbHMpCisKKyAgICAgICAgcmV0dXJuIGNscworCisgICAgZGVmIGdldF91c2VyX2J5X2F1dGhfcGFzc3dvcmQoc2VsZiwgYXV0aF9pZCwgcGFzc3dvcmQsIHNpbGVudD1GYWxzZSk6CisgICAgICAgICIiIlJldHVybnMgYSB1c2VyIGRpY3QgYmFzZWQgb24gYXV0aF9pZCBhbmQgcGFzc3dvcmQuCisKKyAgICAgICAgOnBhcmFtIGF1dGhfaWQ6CisgICAgICAgICAgICBBdXRoZW50aWNhdGlvbiBpZC4KKyAgICAgICAgOnBhcmFtIHBhc3N3b3JkOgorICAgICAgICAgICAgVXNlciBwYXNzd29yZC4KKyAgICAgICAgOnBhcmFtIHNpbGVudDoKKyAgICAgICAgICAgIElmIFRydWUsIHJhaXNlcyBhbiBleGNlcHRpb24gaWYgYXV0aF9pZCBvciBwYXNzd29yZCBhcmUgaW52YWxpZC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIGRpY3Rpb25hcnkgd2l0aCB1c2VyIGRhdGEuCisgICAgICAgIDpyYWlzZXM6CisgICAgICAgICAgICBgYEludmFsaWRBdXRoSWRFcnJvcmBgIG9yIGBgSW52YWxpZFBhc3N3b3JkRXJyb3JgYC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVzZXIgPSBzZWxmLnVzZXJfbW9kZWwuZ2V0X2J5X2F1dGhfcGFzc3dvcmQoYXV0aF9pZCwgcGFzc3dvcmQpCisgICAgICAgICAgICByZXR1cm4gc2VsZi51c2VyX3RvX2RpY3QodXNlcikKKyAgICAgICAgZXhjZXB0IChJbnZhbGlkQXV0aElkRXJyb3IsIEludmFsaWRQYXNzd29yZEVycm9yKToKKyAgICAgICAgICAgIGlmIG5vdCBzaWxlbnQ6CisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBnZXRfdXNlcl9ieV9hdXRoX3Rva2VuKHNlbGYsIHVzZXJfaWQsIHRva2VuKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHVzZXIgZGljdCBiYXNlZCBvbiB1c2VyX2lkIGFuZCBhdXRoIHRva2VuLgorCisgICAgICAgIDpwYXJhbSB1c2VyX2lkOgorICAgICAgICAgICAgVXNlciBpZC4KKyAgICAgICAgOnBhcmFtIHRva2VuOgorICAgICAgICAgICAgQXV0aGVudGljYXRpb24gdG9rZW4uCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB0dXBsZSBgYCh1c2VyX2RpY3QsIHRva2VuX3RpbWVzdGFtcClgYC4gQm90aCB2YWx1ZXMgY2FuIGJlIE5vbmUuCisgICAgICAgICAgICBUaGUgdG9rZW4gdGltZXN0YW1wIHdpbGwgYmUgTm9uZSBpZiB0aGUgdXNlciBpcyBpbnZhbGlkIG9yIGl0CisgICAgICAgICAgICBpcyB2YWxpZCBidXQgdGhlIHRva2VuIHJlcXVpcmVzIHJlbmV3YWwuCisgICAgICAgICIiIgorICAgICAgICB1c2VyLCB0cyA9IHNlbGYudXNlcl9tb2RlbC5nZXRfYnlfYXV0aF90b2tlbih1c2VyX2lkLCB0b2tlbikKKyAgICAgICAgcmV0dXJuIHNlbGYudXNlcl90b19kaWN0KHVzZXIpLCB0cworCisgICAgZGVmIGNyZWF0ZV9hdXRoX3Rva2VuKHNlbGYsIHVzZXJfaWQpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IGF1dGhlbnRpY2F0aW9uIHRva2VuLgorCisgICAgICAgIDpwYXJhbSB1c2VyX2lkOgorICAgICAgICAgICAgQXV0aGVudGljYXRpb24gaWQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSBuZXcgYXV0aGVudGljYXRpb24gdG9rZW4uCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi51c2VyX21vZGVsLmNyZWF0ZV9hdXRoX3Rva2VuKHVzZXJfaWQpCisKKyAgICBkZWYgZGVsZXRlX2F1dGhfdG9rZW4oc2VsZiwgdXNlcl9pZCwgdG9rZW4pOgorICAgICAgICAiIiJEZWxldGVzIGFuIGF1dGhlbnRpY2F0aW9uIHRva2VuLgorCisgICAgICAgIDpwYXJhbSB1c2VyX2lkOgorICAgICAgICAgICAgVXNlciBpZC4KKyAgICAgICAgOnBhcmFtIHRva2VuOgorICAgICAgICAgICAgQXV0aGVudGljYXRpb24gdG9rZW4uCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi51c2VyX21vZGVsLmRlbGV0ZV9hdXRoX3Rva2VuKHVzZXJfaWQsIHRva2VuKQorCisgICAgZGVmIHVzZXJfdG9fZGljdChzZWxmLCB1c2VyKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGRpY3Rpb25hcnkgYmFzZWQgb24gYSB1c2VyIG9iamVjdC4KKworICAgICAgICBFeHRyYSBhdHRyaWJ1dGVzIHRvIGJlIHJldHJpZXZlZCBtdXN0IGJlIHNldCBpbiB0aGlzIG1vZHVsZSdzCisgICAgICAgIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgOnBhcmFtIHVzZXI6CisgICAgICAgICAgICBVc2VyIG9iamVjdDogYW4gaW5zdGFuY2UgdGhlIGN1c3RvbSB1c2VyIG1vZGVsLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgZGljdGlvbmFyeSB3aXRoIHVzZXIgZGF0YS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCB1c2VyOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICB1c2VyX2RpY3QgPSBkaWN0KChhLCBnZXRhdHRyKHVzZXIsIGEpKSBmb3IgYSBpbiBzZWxmLnVzZXJfYXR0cmlidXRlcykKKyAgICAgICAgdXNlcl9kaWN0Wyd1c2VyX2lkJ10gPSB1c2VyLmdldF9pZCgpCisgICAgICAgIHJldHVybiB1c2VyX2RpY3QKKworICAgICMgU2Vzc2lvbiByZWxhdGVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIGdldF9zZXNzaW9uKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJSZXR1cm5zIGFuIGF1dGggc2Vzc2lvbi4KKworICAgICAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLlJlcXVlc3RgIGluc3RhbmNlLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgc2Vzc2lvbiBkaWN0LgorICAgICAgICAiIiIKKyAgICAgICAgc3RvcmUgPSBzZXNzaW9ucy5nZXRfc3RvcmUocmVxdWVzdD1yZXF1ZXN0KQorICAgICAgICByZXR1cm4gc3RvcmUuZ2V0X3Nlc3Npb24oc2VsZi5jb25maWdbJ2Nvb2tpZV9uYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZW5kPXNlbGYuY29uZmlnWydzZXNzaW9uX2JhY2tlbmQnXSkKKworICAgIGRlZiBzZXJpYWxpemVfc2Vzc2lvbihzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiU2VyaWFsaXplcyB2YWx1ZXMgZm9yIGEgc2Vzc2lvbi4KKworICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAgICAgICAgIEEgZGljdCB3aXRoIHNlc3Npb24gZGF0YS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIGxpc3Qgd2l0aCBzZXNzaW9uIGRhdGEuCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgbGVuKGRhdGEpID49IGxlbihzZWxmLnNlc3Npb25fYXR0cmlidXRlcykKKyAgICAgICAgICAgIHJldHVybiBbZGF0YS5nZXQoaykgZm9yIGsgaW4gc2VsZi5zZXNzaW9uX2F0dHJpYnV0ZXNdCisgICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygKKyAgICAgICAgICAgICAgICAnSW52YWxpZCB1c2VyIGRhdGE6ICVyLiBFeHBlY3RlZCBhdHRyaWJ1dGVzOiAlci4nICUKKyAgICAgICAgICAgICAgICAoZGF0YSwgc2VsZi5zZXNzaW9uX2F0dHJpYnV0ZXMpKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBkZXNlcmlhbGl6ZV9zZXNzaW9uKHNlbGYsIGRhdGEpOgorICAgICAgICAiIiJEZXNlcmlhbGl6ZXMgdmFsdWVzIGZvciBhIHNlc3Npb24uCisKKyAgICAgICAgOnBhcmFtIGRhdGE6CisgICAgICAgICAgICBBIGxpc3Qgd2l0aCBzZXNzaW9uIGRhdGEuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSBkaWN0IHdpdGggc2Vzc2lvbiBkYXRhLgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0IGxlbihkYXRhKSA+PSBsZW4oc2VsZi5zZXNzaW9uX2F0dHJpYnV0ZXMpCisgICAgICAgICAgICByZXR1cm4gZGljdCh6aXAoc2VsZi5zZXNzaW9uX2F0dHJpYnV0ZXMsIGRhdGEpKQorICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoCisgICAgICAgICAgICAgICAgJ0ludmFsaWQgdXNlciBkYXRhOiAlci4gRXhwZWN0ZWQgYXR0cmlidXRlczogJXIuJyAlCisgICAgICAgICAgICAgICAgKGRhdGEsIHNlbGYuc2Vzc2lvbl9hdHRyaWJ1dGVzKSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAjIFZhbGlkYXRvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiB2YWxpZGF0ZV9wYXNzd29yZChzZWxmLCBhdXRoX2lkLCBwYXNzd29yZCwgc2lsZW50PUZhbHNlKToKKyAgICAgICAgIiIiVmFsaWRhdGVzIGEgcGFzc3dvcmQuCisKKyAgICAgICAgUGFzc3dvcmRzIGFyZSB1c2VkIHRvIGxvZy1pbiB1c2luZyBmb3JtcyBvciB0byByZXF1ZXN0IGF1dGggdG9rZW5zCisgICAgICAgIGZyb20gc2VydmljZXMuCisKKyAgICAgICAgOnBhcmFtIGF1dGhfaWQ6CisgICAgICAgICAgICBBdXRoZW50aWNhdGlvbiBpZC4KKyAgICAgICAgOnBhcmFtIHBhc3N3b3JkOgorICAgICAgICAgICAgUGFzc3dvcmQgdG8gYmUgY2hlY2tlZC4KKyAgICAgICAgOnBhcmFtIHNpbGVudDoKKyAgICAgICAgICAgIElmIFRydWUsIHJhaXNlcyBhbiBleGNlcHRpb24gaWYgYXV0aF9pZCBvciBwYXNzd29yZCBhcmUgaW52YWxpZC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICB1c2VyIG9yIE5vbmUKKyAgICAgICAgOnJhaXNlczoKKyAgICAgICAgICAgIGBgSW52YWxpZEF1dGhJZEVycm9yYGAgb3IgYGBJbnZhbGlkUGFzc3dvcmRFcnJvcmBgLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3VzZXJfYnlfYXV0aF9wYXNzd29yZChhdXRoX2lkLCBwYXNzd29yZCwgc2lsZW50PXNpbGVudCkKKworICAgIGRlZiB2YWxpZGF0ZV90b2tlbihzZWxmLCB1c2VyX2lkLCB0b2tlbiwgdG9rZW5fdHM9Tm9uZSk6CisgICAgICAgICIiIlZhbGlkYXRlcyBhIHRva2VuLgorCisgICAgICAgIFRva2VucyBhcmUgcmFuZG9tIHN0cmluZ3MgdXNlZCB0byBhdXRoZW50aWNhdGUgdGVtcG9yYXJpbHkuIFRoZXkgYXJlCisgICAgICAgIHVzZWQgdG8gdmFsaWRhdGUgc2Vzc2lvbnMgb3Igc2VydmljZSByZXF1ZXN0cy4KKworICAgICAgICA6cGFyYW0gdXNlcl9pZDoKKyAgICAgICAgICAgIFVzZXIgaWQuCisgICAgICAgIDpwYXJhbSB0b2tlbjoKKyAgICAgICAgICAgIFRva2VuIHRvIGJlIGNoZWNrZWQuCisgICAgICAgIDpwYXJhbSB0b2tlbl90czoKKyAgICAgICAgICAgIE9wdGlvbmFsIHRva2VuIHRpbWVzdGFtcCB1c2VkIHRvIHByZS12YWxpZGF0ZSB0aGUgdG9rZW4gYWdlLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgdHVwbGUgYGAodXNlcl9kaWN0LCB0b2tlbilgYC4KKyAgICAgICAgIiIiCisgICAgICAgIG5vdyA9IGludCh0aW1lLnRpbWUoKSkKKyAgICAgICAgZGVsZXRlID0gdG9rZW5fdHMgYW5kICgobm93IC0gdG9rZW5fdHMpID4gc2VsZi5jb25maWdbJ3Rva2VuX21heF9hZ2UnXSkKKyAgICAgICAgY3JlYXRlID0gRmFsc2UKKworICAgICAgICBpZiBub3QgZGVsZXRlOgorICAgICAgICAgICAgIyBUcnkgdG8gZmV0Y2ggdGhlIHVzZXIuCisgICAgICAgICAgICB1c2VyLCB0cyA9IHNlbGYuZ2V0X3VzZXJfYnlfYXV0aF90b2tlbih1c2VyX2lkLCB0b2tlbikKKyAgICAgICAgICAgIGlmIHVzZXI6CisgICAgICAgICAgICAgICAgIyBOb3cgdmFsaWRhdGUgdGhlIHJlYWwgdGltZXN0YW1wLgorICAgICAgICAgICAgICAgIGRlbGV0ZSA9IChub3cgLSB0cykgPiBzZWxmLmNvbmZpZ1sndG9rZW5fbWF4X2FnZSddCisgICAgICAgICAgICAgICAgY3JlYXRlID0gKG5vdyAtIHRzKSA+IHNlbGYuY29uZmlnWyd0b2tlbl9uZXdfYWdlJ10KKworICAgICAgICBpZiBkZWxldGUgb3IgY3JlYXRlIG9yIG5vdCB1c2VyOgorICAgICAgICAgICAgaWYgZGVsZXRlIG9yIGNyZWF0ZToKKyAgICAgICAgICAgICAgICAjIERlbGV0ZSB0b2tlbiBmcm9tIGRiLgorICAgICAgICAgICAgICAgIHNlbGYuZGVsZXRlX2F1dGhfdG9rZW4odXNlcl9pZCwgdG9rZW4pCisKKyAgICAgICAgICAgICAgICBpZiBkZWxldGU6CisgICAgICAgICAgICAgICAgICAgIHVzZXIgPSBOb25lCisKKyAgICAgICAgICAgIHRva2VuID0gTm9uZQorCisgICAgICAgIHJldHVybiB1c2VyLCB0b2tlbgorCisgICAgZGVmIHZhbGlkYXRlX2NhY2hlX3RpbWVzdGFtcChzZWxmLCBjYWNoZV90cywgdG9rZW5fdHM9Tm9uZSk6CisgICAgICAgICIiIlZhbGlkYXRlcyBhIGNhY2hlIHRpbWVzdGFtcC4KKworICAgICAgICA6cGFyYW0gY2FjaGVfdHM6CisgICAgICAgICAgICBUb2tlbiB0aW1lc3RhbXAgdG8gdmFsaWRhdGUgdGhlIGNhY2hlIGFnZS4KKyAgICAgICAgOnBhcmFtIHRva2VuX3RzOgorICAgICAgICAgICAgVG9rZW4gdGltZXN0YW1wIHRvIHZhbGlkYXRlIHRoZSB0b2tlbiBhZ2UuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVHJ1ZSBpZiBpdCBpcyB2YWxpZCwgRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgICAiIiIKKyAgICAgICAgbm93ID0gaW50KHRpbWUudGltZSgpKQorICAgICAgICB2YWxpZCA9IChub3cgLSBjYWNoZV90cykgPCBzZWxmLmNvbmZpZ1sndG9rZW5fY2FjaGVfYWdlJ10KKworICAgICAgICBpZiB2YWxpZCBhbmQgdG9rZW5fdHM6CisgICAgICAgICAgICB2YWxpZDIgPSAobm93IC0gdG9rZW5fdHMpIDwgc2VsZi5jb25maWdbJ3Rva2VuX21heF9hZ2UnXQorICAgICAgICAgICAgdmFsaWQzID0gKG5vdyAtIHRva2VuX3RzKSA8IHNlbGYuY29uZmlnWyd0b2tlbl9uZXdfYWdlJ10KKyAgICAgICAgICAgIHZhbGlkID0gdmFsaWQyIGFuZCB2YWxpZDMKKworICAgICAgICByZXR1cm4gdmFsaWQKKworCitjbGFzcyBBdXRoKG9iamVjdCk6CisgICAgIiIiQXV0aGVudGljYXRpb24gcHJvdmlkZXIgZm9yIGEgc2luZ2xlIHJlcXVlc3QuIiIiCisKKyAgICAjOiBBIDpjbGFzczpgd2ViYXBwMi5SZXF1ZXN0YCBpbnN0YW5jZS4KKyAgICByZXF1ZXN0ID0gTm9uZQorICAgICM6IEFuIDpjbGFzczpgQXV0aFN0b3JlYCBpbnN0YW5jZS4KKyAgICBzdG9yZSA9IE5vbmUKKyAgICAjOiBDYWNoZWQgdXNlciBmb3IgdGhlIHJlcXVlc3QuCisgICAgX3VzZXIgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICIiIkluaXRpYWxpemVzIHRoZSBhdXRoIHByb3ZpZGVyIGZvciBhIHJlcXVlc3QuCisKKyAgICAgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgICAgICBBIDpjbGFzczpgd2ViYXBwMi5SZXF1ZXN0YCBpbnN0YW5jZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgc2VsZi5zdG9yZSA9IGdldF9zdG9yZShhcHA9cmVxdWVzdC5hcHApCisKKyAgICAjIFJldHJpZXZpbmcgYSB1c2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiBfdXNlcl9vcl9ub25lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdXNlciBpZiBzZWxmLl91c2VyIGlzIG5vdCBfYW5vbiBlbHNlIE5vbmUKKworICAgIGRlZiBnZXRfdXNlcl9ieV9zZXNzaW9uKHNlbGYsIHNhdmVfc2Vzc2lvbj1UcnVlKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHVzZXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2Vzc2lvbi4KKworICAgICAgICA6cGFyYW0gc2F2ZV9zZXNzaW9uOgorICAgICAgICAgICAgSWYgVHJ1ZSwgc2F2ZXMgdGhlIHVzZXIgaW4gdGhlIHNlc3Npb24gaWYgYXV0aGVudGljYXRpb24gc3VjY2VlZHMuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB1c2VyIGRpY3Qgb3IgTm9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX3VzZXIgaXMgTm9uZToKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLmdldF9zZXNzaW9uX2RhdGEocG9wPVRydWUpCisgICAgICAgICAgICBpZiBub3QgZGF0YToKKyAgICAgICAgICAgICAgICBzZWxmLl91c2VyID0gX2Fub24KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5fdXNlciA9IHNlbGYuZ2V0X3VzZXJfYnlfdG9rZW4oCisgICAgICAgICAgICAgICAgICAgIHVzZXJfaWQ9ZGF0YVsndXNlcl9pZCddLCB0b2tlbj1kYXRhWyd0b2tlbiddLAorICAgICAgICAgICAgICAgICAgICB0b2tlbl90cz1kYXRhWyd0b2tlbl90cyddLCBjYWNoZT1kYXRhLAorICAgICAgICAgICAgICAgICAgICBjYWNoZV90cz1kYXRhWydjYWNoZV90cyddLCByZW1lbWJlcj1kYXRhWydyZW1lbWJlciddLAorICAgICAgICAgICAgICAgICAgICBzYXZlX3Nlc3Npb249c2F2ZV9zZXNzaW9uKQorCisgICAgICAgIHJldHVybiBzZWxmLl91c2VyX29yX25vbmUoKQorCisgICAgZGVmIGdldF91c2VyX2J5X3Rva2VuKHNlbGYsIHVzZXJfaWQsIHRva2VuLCB0b2tlbl90cz1Ob25lLCBjYWNoZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV90cz1Ob25lLCByZW1lbWJlcj1GYWxzZSwgc2F2ZV9zZXNzaW9uPVRydWUpOgorICAgICAgICAiIiJSZXR1cm5zIGEgdXNlciBiYXNlZCBvbiBhbiBhdXRoZW50aWNhdGlvbiB0b2tlbi4KKworICAgICAgICA6cGFyYW0gdXNlcl9pZDoKKyAgICAgICAgICAgIFVzZXIgaWQuCisgICAgICAgIDpwYXJhbSB0b2tlbjoKKyAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uIHRva2VuLgorICAgICAgICA6cGFyYW0gdG9rZW5fdHM6CisgICAgICAgICAgICBUb2tlbiB0aW1lc3RhbXAsIHVzZWQgdG8gcGVyZm9ybSBwcmUtdmFsaWRhdGlvbi4KKyAgICAgICAgOnBhcmFtIGNhY2hlOgorICAgICAgICAgICAgQ2FjaGVkIHVzZXIgZGF0YSAoZnJvbSB0aGUgc2Vzc2lvbikuCisgICAgICAgIDpwYXJhbSBjYWNoZV90czoKKyAgICAgICAgICAgIENhY2hlIHRpbWVzdGFtcC4KKyAgICAgICAgOnBhcmFtIHJlbWVtYmVyOgorICAgICAgICAgICAgSWYgVHJ1ZSwgc2F2ZXMgcGVybWFuZW50IHNlc3Npb25zLgorICAgICAgICA6cGFyYW0gc2F2ZV9zZXNzaW9uOgorICAgICAgICAgICAgSWYgVHJ1ZSwgc2F2ZXMgdGhlIHVzZXIgaW4gdGhlIHNlc3Npb24gaWYgYXV0aGVudGljYXRpb24gc3VjY2VlZHMuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB1c2VyIGRpY3Qgb3IgTm9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX3VzZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhc3NlcnQgKHNlbGYuX3VzZXIgaXMgbm90IF9hbm9uIGFuZAorICAgICAgICAgICAgICAgICAgICBzZWxmLl91c2VyWyd1c2VyX2lkJ10gPT0gdXNlcl9pZCBhbmQKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdXNlclsndG9rZW4nXSA9PSB0b2tlbikKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl91c2VyX29yX25vbmUoKQorCisgICAgICAgIGlmIGNhY2hlIGFuZCBjYWNoZV90czoKKyAgICAgICAgICAgIHZhbGlkID0gc2VsZi5zdG9yZS52YWxpZGF0ZV9jYWNoZV90aW1lc3RhbXAoY2FjaGVfdHMsIHRva2VuX3RzKQorICAgICAgICAgICAgaWYgdmFsaWQ6CisgICAgICAgICAgICAgICAgc2VsZi5fdXNlciA9IGNhY2hlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNhY2hlX3RzID0gTm9uZQorCisgICAgICAgIGlmIHNlbGYuX3VzZXIgaXMgTm9uZToKKyAgICAgICAgICAgICMgRmV0Y2ggYW5kIHZhbGlkYXRlIHRoZSB0b2tlbi4KKyAgICAgICAgICAgIHNlbGYuX3VzZXIsIHRva2VuID0gc2VsZi5zdG9yZS52YWxpZGF0ZV90b2tlbih1c2VyX2lkLCB0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbl90cz10b2tlbl90cykKKworICAgICAgICBpZiBzZWxmLl91c2VyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl91c2VyID0gX2Fub24KKyAgICAgICAgZWxpZiBzYXZlX3Nlc3Npb246CisgICAgICAgICAgICBpZiBub3QgdG9rZW46CisgICAgICAgICAgICAgICAgdG9rZW5fdHMgPSBOb25lCisKKyAgICAgICAgICAgIHNlbGYuc2V0X3Nlc3Npb24oc2VsZi5fdXNlciwgdG9rZW49dG9rZW4sIHRva2VuX3RzPXRva2VuX3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV90cz1jYWNoZV90cywgcmVtZW1iZXI9cmVtZW1iZXIpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3VzZXJfb3Jfbm9uZSgpCisKKyAgICBkZWYgZ2V0X3VzZXJfYnlfcGFzc3dvcmQoc2VsZiwgYXV0aF9pZCwgcGFzc3dvcmQsIHJlbWVtYmVyPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlX3Nlc3Npb249VHJ1ZSwgc2lsZW50PUZhbHNlKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHVzZXIgYmFzZWQgb24gcGFzc3dvcmQgY3JlZGVudGlhbHMuCisKKyAgICAgICAgOnBhcmFtIGF1dGhfaWQ6CisgICAgICAgICAgICBBdXRoZW50aWNhdGlvbiBpZC4KKyAgICAgICAgOnBhcmFtIHBhc3N3b3JkOgorICAgICAgICAgICAgVXNlciBwYXNzd29yZC4KKyAgICAgICAgOnBhcmFtIHJlbWVtYmVyOgorICAgICAgICAgICAgSWYgVHJ1ZSwgc2F2ZXMgcGVybWFuZW50IHNlc3Npb25zLgorICAgICAgICA6cGFyYW0gc2F2ZV9zZXNzaW9uOgorICAgICAgICAgICAgSWYgVHJ1ZSwgc2F2ZXMgdGhlIHVzZXIgaW4gdGhlIHNlc3Npb24gaWYgYXV0aGVudGljYXRpb24gc3VjY2VlZHMuCisgICAgICAgIDpwYXJhbSBzaWxlbnQ6CisgICAgICAgICAgICBJZiBUcnVlLCByYWlzZXMgYW4gZXhjZXB0aW9uIGlmIGF1dGhfaWQgb3IgcGFzc3dvcmQgYXJlIGludmFsaWQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSB1c2VyIGRpY3Qgb3IgTm9uZS4KKyAgICAgICAgOnJhaXNlczoKKyAgICAgICAgICAgIGBgSW52YWxpZEF1dGhJZEVycm9yYGAgb3IgYGBJbnZhbGlkUGFzc3dvcmRFcnJvcmBgLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2F2ZV9zZXNzaW9uOgorICAgICAgICAgICAgIyBEdXJpbmcgYSBsb2dpbiBhdHRlbXB0LCBpbnZhbGlkYXRlIGN1cnJlbnQgc2Vzc2lvbi4KKyAgICAgICAgICAgIHNlbGYudW5zZXRfc2Vzc2lvbigpCisKKyAgICAgICAgc2VsZi5fdXNlciA9IHNlbGYuc3RvcmUudmFsaWRhdGVfcGFzc3dvcmQoYXV0aF9pZCwgcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbGVudD1zaWxlbnQpCisgICAgICAgIGlmIG5vdCBzZWxmLl91c2VyOgorICAgICAgICAgICAgc2VsZi5fdXNlciA9IF9hbm9uCisgICAgICAgIGVsaWYgc2F2ZV9zZXNzaW9uOgorICAgICAgICAgICAgIyBUaGlzIGFsd2F5cyBjcmVhdGVzIGEgbmV3IHRva2VuIHdpdGggbmV3IHRpbWVzdGFtcC4KKyAgICAgICAgICAgIHNlbGYuc2V0X3Nlc3Npb24oc2VsZi5fdXNlciwgcmVtZW1iZXI9cmVtZW1iZXIpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3VzZXJfb3Jfbm9uZSgpCisKKyAgICAjIFN0b3JpbmcgYW5kIHJlbW92aW5nIHVzZXIgZnJvbSBzZXNzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIEB3ZWJhcHAyLmNhY2hlZF9wcm9wZXJ0eQorICAgIGRlZiBzZXNzaW9uKHNlbGYpOgorICAgICAgICAiIiJBdXRoIHNlc3Npb24uIiIiCisgICAgICAgIHJldHVybiBzZWxmLnN0b3JlLmdldF9zZXNzaW9uKHNlbGYucmVxdWVzdCkKKworICAgIGRlZiBzZXRfc2Vzc2lvbihzZWxmLCB1c2VyLCB0b2tlbj1Ob25lLCB0b2tlbl90cz1Ob25lLCBjYWNoZV90cz1Ob25lLAorICAgICAgICAgICAgICAgICAgICByZW1lbWJlcj1GYWxzZSwgKipzZXNzaW9uX2FyZ3MpOgorICAgICAgICAiIiJTYXZlcyBhIHVzZXIgaW4gdGhlIHNlc3Npb24uCisKKyAgICAgICAgOnBhcmFtIHVzZXI6CisgICAgICAgICAgICBBIGRpY3Rpb25hcnkgd2l0aCB1c2VyIGRhdGEuCisgICAgICAgIDpwYXJhbSB0b2tlbjoKKyAgICAgICAgICAgIEEgdW5pcXVlIHRva2VuIHRvIGJlIHBlcnNpc3RlZC4gSWYgTm9uZSwgYSBuZXcgb25lIGlzIGNyZWF0ZWQuCisgICAgICAgIDpwYXJhbSB0b2tlbl90czoKKyAgICAgICAgICAgIFRva2VuIHRpbWVzdGFtcC4gSWYgTm9uZSwgYSBuZXcgb25lIGlzIGNyZWF0ZWQuCisgICAgICAgIDpwYXJhbSBjYWNoZV90czoKKyAgICAgICAgICAgIFRva2VuIGNhY2hlIHRpbWVzdGFtcC4gSWYgTm9uZSwgYSBuZXcgb25lIGlzIGNyZWF0ZWQuCisgICAgICAgIDpyZW1lbWJlcjoKKyAgICAgICAgICAgIElmIFRydWUsIHNlc3Npb24gaXMgc2V0IHRvIGJlIHBlcnNpc3RlZC4KKyAgICAgICAgOnBhcmFtIHNlc3Npb25fYXJnczoKKyAgICAgICAgICAgIEtleXdvcmQgYXJndW1lbnRzIHRvIHNldCB0aGUgc2Vzc2lvbiBhcmd1bWVudHMuCisgICAgICAgICIiIgorICAgICAgICBub3cgPSBpbnQodGltZS50aW1lKCkpCisgICAgICAgIHRva2VuID0gdG9rZW4gb3Igc2VsZi5zdG9yZS5jcmVhdGVfYXV0aF90b2tlbih1c2VyWyd1c2VyX2lkJ10pCisgICAgICAgIHRva2VuX3RzID0gdG9rZW5fdHMgb3Igbm93CisgICAgICAgIGNhY2hlX3RzID0gY2FjaGVfdHMgb3Igbm93CisgICAgICAgIGlmIHJlbWVtYmVyOgorICAgICAgICAgICAgbWF4X2FnZSA9IHNlbGYuc3RvcmUuY29uZmlnWyd0b2tlbl9tYXhfYWdlJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1heF9hZ2UgPSBOb25lCisKKyAgICAgICAgc2Vzc2lvbl9hcmdzLnNldGRlZmF1bHQoJ21heF9hZ2UnLCBtYXhfYWdlKQorICAgICAgICAjIENyZWF0ZSBhIG5ldyBkaWN0IG9yIGp1c3QgdXBkYXRlIHVzZXI/CisgICAgICAgICMgV2UgYXJlIGRvaW5nIHRoZSBsYXR0ZXIsIGFuZCBzbyB0aGUgdXNlciBkaWN0IHdpbGwgYWx3YXlzIGhhdmUKKyAgICAgICAgIyB0aGUgc2Vzc2lvbiBtZXRhZGF0YSAodG9rZW4sIHRpbWVzdGFtcHMgZXRjKS4gVGhpcyBpcyBlYXNpZXIgdG8gdGVzdC4KKyAgICAgICAgIyBCdXQgd2UgY291bGQgc3RvcmUgb25seSB1c2VyX2lkIGFuZCBjdXN0b20gdXNlciBhdHRyaWJ1dGVzIGluc3RlYWQuCisgICAgICAgIHVzZXIudXBkYXRlKHsKKyAgICAgICAgICAgICd0b2tlbic6ICAgIHRva2VuLAorICAgICAgICAgICAgJ3Rva2VuX3RzJzogdG9rZW5fdHMsCisgICAgICAgICAgICAnY2FjaGVfdHMnOiBjYWNoZV90cywKKyAgICAgICAgICAgICdyZW1lbWJlcic6IGludChyZW1lbWJlciksCisgICAgICAgIH0pCisgICAgICAgIHNlbGYuc2V0X3Nlc3Npb25fZGF0YSh1c2VyLCAqKnNlc3Npb25fYXJncykKKyAgICAgICAgc2VsZi5fdXNlciA9IHVzZXIKKworICAgIGRlZiB1bnNldF9zZXNzaW9uKHNlbGYpOgorICAgICAgICAiIiJSZW1vdmVzIGEgdXNlciBmcm9tIHRoZSBzZXNzaW9uIGFuZCBpbnZhbGlkYXRlcyB0aGUgYXV0aCB0b2tlbi4iIiIKKyAgICAgICAgc2VsZi5fdXNlciA9IE5vbmUKKyAgICAgICAgZGF0YSA9IHNlbGYuZ2V0X3Nlc3Npb25fZGF0YShwb3A9VHJ1ZSkKKyAgICAgICAgaWYgZGF0YToKKyAgICAgICAgICAgICMgSW52YWxpZGF0ZSBjdXJyZW50IHRva2VuLgorICAgICAgICAgICAgc2VsZi5zdG9yZS5kZWxldGVfYXV0aF90b2tlbihkYXRhWyd1c2VyX2lkJ10sIGRhdGFbJ3Rva2VuJ10pCisKKyAgICBkZWYgZ2V0X3Nlc3Npb25fZGF0YShzZWxmLCBwb3A9RmFsc2UpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBzZXNzaW9uIGRhdGEgYXMgYSBkaWN0aW9uYXJ5LgorCisgICAgICAgIDpwYXJhbSBwb3A6CisgICAgICAgICAgICBJZiBUcnVlLCByZW1vdmVzIHRoZSBzZXNzaW9uLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgZGVzZXJpYWxpemVkIHNlc3Npb24sIG9yIE5vbmUuCisgICAgICAgICIiIgorICAgICAgICBmdW5jID0gc2VsZi5zZXNzaW9uLnBvcCBpZiBwb3AgZWxzZSBzZWxmLnNlc3Npb24uZ2V0CisgICAgICAgIHJ2ID0gZnVuYygnX3VzZXInLCBOb25lKQorICAgICAgICBpZiBydiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLnN0b3JlLmRlc2VyaWFsaXplX3Nlc3Npb24ocnYpCisgICAgICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBkYXRhCisgICAgICAgICAgICBlbGlmIG5vdCBwb3A6CisgICAgICAgICAgICAgICAgc2VsZi5zZXNzaW9uLnBvcCgnX3VzZXInLCBOb25lKQorCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgc2V0X3Nlc3Npb25fZGF0YShzZWxmLCBkYXRhLCAqKnNlc3Npb25fYXJncyk6CisgICAgICAgICIiIlNldHMgdGhlIHNlc3Npb24gZGF0YSBhcyBhIGxpc3QuCisKKyAgICAgICAgOnBhcmFtIGRhdGE6CisgICAgICAgICAgICBEZXNlcmlhbGl6ZWQgc2Vzc2lvbiBkYXRhLgorICAgICAgICA6cGFyYW0gc2Vzc2lvbl9hcmdzOgorICAgICAgICAgICAgRXh0cmEgYXJndW1lbnRzIGZvciB0aGUgc2Vzc2lvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSBzZWxmLnN0b3JlLnNlcmlhbGl6ZV9zZXNzaW9uKGRhdGEpCisgICAgICAgIGlmIGRhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNlc3Npb25bJ191c2VyJ10gPSBkYXRhCisgICAgICAgICAgICBzZWxmLnNlc3Npb24uY29udGFpbmVyLnNlc3Npb25fYXJncy51cGRhdGUoc2Vzc2lvbl9hcmdzKQorCisKKyMgRmFjdG9yaWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisjOiBLZXkgdXNlZCB0byBzdG9yZSA6Y2xhc3M6YEF1dGhTdG9yZWAgaW4gdGhlIGFwcCByZWdpc3RyeS4KK19zdG9yZV9yZWdpc3RyeV9rZXkgPSAnd2ViYXBwMl9leHRyYXMuYXV0aC5BdXRoJworIzogS2V5IHVzZWQgdG8gc3RvcmUgOmNsYXNzOmBBdXRoYCBpbiB0aGUgcmVxdWVzdCByZWdpc3RyeS4KK19hdXRoX3JlZ2lzdHJ5X2tleSA9ICd3ZWJhcHAyX2V4dHJhcy5hdXRoLkF1dGgnCisKKworZGVmIGdldF9zdG9yZShmYWN0b3J5PUF1dGhTdG9yZSwga2V5PV9zdG9yZV9yZWdpc3RyeV9rZXksIGFwcD1Ob25lKToKKyAgICAiIiJSZXR1cm5zIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgQXV0aFN0b3JlYCBmcm9tIHRoZSBhcHAgcmVnaXN0cnkuCisKKyAgICBJdCdsbCB0cnkgdG8gZ2V0IGl0IGZyb20gdGhlIGN1cnJlbnQgYXBwIHJlZ2lzdHJ5LCBhbmQgaWYgaXQgaXMgbm90CisgICAgcmVnaXN0ZXJlZCBpdCdsbCBiZSBpbnN0YW50aWF0ZWQgYW5kIHJlZ2lzdGVyZWQuIEEgc2Vjb25kIGNhbGwgdG8gdGhpcworICAgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBzYW1lIGluc3RhbmNlLgorCisgICAgOnBhcmFtIGZhY3Rvcnk6CisgICAgICAgIFRoZSBjYWxsYWJsZSB1c2VkIHRvIGJ1aWxkIGFuZCByZWdpc3RlciB0aGUgaW5zdGFuY2UgaWYgaXQgaXMgbm90IHlldAorICAgICAgICByZWdpc3RlcmVkLiBUaGUgZGVmYXVsdCBpcyB0aGUgY2xhc3MgOmNsYXNzOmBBdXRoU3RvcmVgIGl0c2VsZi4KKyAgICA6cGFyYW0ga2V5OgorICAgICAgICBUaGUga2V5IHVzZWQgdG8gc3RvcmUgdGhlIGluc3RhbmNlIGluIHRoZSByZWdpc3RyeS4gQSBkZWZhdWx0IGlzIHVzZWQKKyAgICAgICAgaWYgaXQgaXMgbm90IHNldC4KKyAgICA6cGFyYW0gYXBwOgorICAgICAgICBBIDpjbGFzczpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb25gIGluc3RhbmNlIHVzZWQgdG8gc3RvcmUgdGhlIGluc3RhbmNlLgorICAgICAgICBUaGUgYWN0aXZlIGFwcCBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgIiIiCisgICAgYXBwID0gYXBwIG9yIHdlYmFwcDIuZ2V0X2FwcCgpCisgICAgc3RvcmUgPSBhcHAucmVnaXN0cnkuZ2V0KGtleSkKKyAgICBpZiBub3Qgc3RvcmU6CisgICAgICAgIHN0b3JlID0gYXBwLnJlZ2lzdHJ5W2tleV0gPSBmYWN0b3J5KGFwcCkKKworICAgIHJldHVybiBzdG9yZQorCisKK2RlZiBzZXRfc3RvcmUoc3RvcmUsIGtleT1fc3RvcmVfcmVnaXN0cnlfa2V5LCBhcHA9Tm9uZSk6CisgICAgIiIiU2V0cyBhbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YEF1dGhTdG9yZWAgaW4gdGhlIGFwcCByZWdpc3RyeS4KKworICAgIDpwYXJhbSBzdG9yZToKKyAgICAgICAgQW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBBdXRoU3RvcmVgLgorICAgIDpwYXJhbSBrZXk6CisgICAgICAgIFRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgcmVnaXN0cnkuIEEgZGVmYXVsdAorICAgICAgICBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbmAgaW5zdGFuY2UgdXNlZCB0byByZXRyaWV2ZSB0aGUKKyAgICAgICAgaW5zdGFuY2UuIFRoZSBhY3RpdmUgYXBwIGlzIHVzZWQgaWYgaXQgaXMgbm90IHNldC4KKyAgICAiIiIKKyAgICBhcHAgPSBhcHAgb3Igd2ViYXBwMi5nZXRfYXBwKCkKKyAgICBhcHAucmVnaXN0cnlba2V5XSA9IHN0b3JlCisKKworZGVmIGdldF9hdXRoKGZhY3Rvcnk9QXV0aCwga2V5PV9hdXRoX3JlZ2lzdHJ5X2tleSwgcmVxdWVzdD1Ob25lKToKKyAgICAiIiJSZXR1cm5zIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgQXV0aGAgZnJvbSB0aGUgcmVxdWVzdCByZWdpc3RyeS4KKworICAgIEl0J2xsIHRyeSB0byBnZXQgaXQgZnJvbSB0aGUgY3VycmVudCByZXF1ZXN0IHJlZ2lzdHJ5LCBhbmQgaWYgaXQgaXMgbm90CisgICAgcmVnaXN0ZXJlZCBpdCdsbCBiZSBpbnN0YW50aWF0ZWQgYW5kIHJlZ2lzdGVyZWQuIEEgc2Vjb25kIGNhbGwgdG8gdGhpcworICAgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBzYW1lIGluc3RhbmNlLgorCisgICAgOnBhcmFtIGZhY3Rvcnk6CisgICAgICAgIFRoZSBjYWxsYWJsZSB1c2VkIHRvIGJ1aWxkIGFuZCByZWdpc3RlciB0aGUgaW5zdGFuY2UgaWYgaXQgaXMgbm90IHlldAorICAgICAgICByZWdpc3RlcmVkLiBUaGUgZGVmYXVsdCBpcyB0aGUgY2xhc3MgOmNsYXNzOmBBdXRoYCBpdHNlbGYuCisgICAgOnBhcmFtIGtleToKKyAgICAgICAgVGhlIGtleSB1c2VkIHRvIHN0b3JlIHRoZSBpbnN0YW5jZSBpbiB0aGUgcmVnaXN0cnkuIEEgZGVmYXVsdCBpcyB1c2VkCisgICAgICAgIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLlJlcXVlc3RgIGluc3RhbmNlIHVzZWQgdG8gc3RvcmUgdGhlIGluc3RhbmNlLiBUaGUKKyAgICAgICAgYWN0aXZlIHJlcXVlc3QgaXMgdXNlZCBpZiBpdCBpcyBub3Qgc2V0LgorICAgICIiIgorICAgIHJlcXVlc3QgPSByZXF1ZXN0IG9yIHdlYmFwcDIuZ2V0X3JlcXVlc3QoKQorICAgIGF1dGggPSByZXF1ZXN0LnJlZ2lzdHJ5LmdldChrZXkpCisgICAgaWYgbm90IGF1dGg6CisgICAgICAgIGF1dGggPSByZXF1ZXN0LnJlZ2lzdHJ5W2tleV0gPSBmYWN0b3J5KHJlcXVlc3QpCisKKyAgICByZXR1cm4gYXV0aAorCisKK2RlZiBzZXRfYXV0aChhdXRoLCBrZXk9X2F1dGhfcmVnaXN0cnlfa2V5LCByZXF1ZXN0PU5vbmUpOgorICAgICIiIlNldHMgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBBdXRoYCBpbiB0aGUgcmVxdWVzdCByZWdpc3RyeS4KKworICAgIDpwYXJhbSBhdXRoOgorICAgICAgICBBbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YEF1dGhgLgorICAgIDpwYXJhbSBrZXk6CisgICAgICAgIFRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgcmVnaXN0cnkuIEEgZGVmYXVsdAorICAgICAgICBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLlJlcXVlc3RgIGluc3RhbmNlIHVzZWQgdG8gcmV0cmlldmUgdGhlIGluc3RhbmNlLiBUaGUKKyAgICAgICAgYWN0aXZlIHJlcXVlc3QgaXMgdXNlZCBpZiBpdCBpcyBub3Qgc2V0LgorICAgICIiIgorICAgIHJlcXVlc3QgPSByZXF1ZXN0IG9yIHdlYmFwcDIuZ2V0X3JlcXVlc3QoKQorICAgIHJlcXVlc3QucmVnaXN0cnlba2V5XSA9IGF1dGgKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2NvbmZpZy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2Q4OGU2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvY29uZmlnLnB5CkBAIC0wLDAgKzEsMjI4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMuY29uZmlnCisgICAgPT09PT09PT09PT09PT09PT09PT09CisKKyAgICBDb25maWd1cmF0aW9uIG9iamVjdCBmb3Igd2ViYXBwMi4KKworICAgIFRoaXMgbW9kdWxlIGlzIGRlcHJlY2F0ZWQuIFNlZSA6Y2xhc3M6YHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uLmNvbmZpZ2AuCisKKyAgICA6Y29weXJpZ2h0OiAyMDExIGJ5IHRpcGZ5Lm9yZy4KKyAgICA6bGljZW5zZTogQXBhY2hlIFNvdHdhcmUgTGljZW5zZSwgc2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CisKK2ltcG9ydCB3YXJuaW5ncworCitpbXBvcnQgd2ViYXBwMgorCit3YXJuaW5ncy53YXJuKERlcHJlY2F0aW9uV2FybmluZygKKyAgICAnd2ViYXBwMl9leHRyYXMuY29uZmlnIGlzIGRlcHJlY2F0ZWQuICcKKyAgICAnVGhlIFdTR0lBcHBsaWNhdGlvbiB1c2VzIHdlYmFwcDIuQ29uZmlnIGluc3RlYWQuJyksCisgICAgc3RhY2tsZXZlbD0xKQorCisjOiBWYWx1ZSB1c2VkIGZvciBtaXNzaW5nIGRlZmF1bHQgdmFsdWVzLgorREVGQVVMVF9WQUxVRSA9IG9iamVjdCgpCisKKyM6IFZhbHVlIHVzZWQgZm9yIHJlcXVpcmVkIHZhbHVlcy4KK1JFUVVJUkVEX1ZBTFVFID0gb2JqZWN0KCkKKworCitjbGFzcyBDb25maWcoZGljdCk6CisgICAgIiIiQSBzaW1wbGUgY29uZmlndXJhdGlvbiBkaWN0aW9uYXJ5IGtleWVkIGJ5IG1vZHVsZSBuYW1lLiBUaGlzIGlzIGEKKyAgICBkaWN0aW9uYXJ5IG9mIGRpY3Rpb25hcmllcy4gSXQgcmVxdWlyZXMgYWxsIHZhbHVlcyB0byBiZSBkaWN0aW9uYXJpZXMKKyAgICBhbmQgYXBwbGllcyB1cGRhdGVzIGFuZCBkZWZhdWx0IHZhbHVlcyB0byB0aGUgaW5uZXIgZGljdGlvbmFyaWVzIGluc3RlYWQKKyAgICBvZiB0aGUgZmlyc3QgbGV2ZWwgb25lLgorCisgICAgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGNhbiBiZSBzZXQgYXMgYSBgYGNvbmZpZ2BgIGF0dHJpYnV0ZSBvZgorICAgIDpjbGFzczpgV1NHSUFwcGxpY2F0aW9uYDo6CisKKyAgICAgICAgaW1wb3J0IHdlYmFwcDIKKyAgICAgICAgZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgY29uZmlnIGFzIHdlYmFwcDJfY29uZmlnCisKKyAgICAgICAgbXlfY29uZmlnID0ge30KKworICAgICAgICBteV9jb25maWdbJ215Lm1vZHVsZSddID0geworICAgICAgICAgICAgJ2Zvbyc6ICdiYXInLAorICAgICAgICB9CisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24ocm91dGVzPVsKKyAgICAgICAgICAgIHdlYmFwcDIuUm91dGUoJy8nLCBuYW1lPSdob21lJywgaGFuZGxlcj1NeUhhbmRsZXIpCisgICAgICAgIF0pCisgICAgICAgIGFwcC5jb25maWcgPSB3ZWJhcHAyX2NvbmZpZy5Db25maWcobXlfY29uZmlnKQorCisgICAgVGhlbiB0byByZWFkIGNvbmZpZ3VyYXRpb24gdmFsdWVzLCBnZXQgdGhlbSBmcm9tIHRoZSBhcHA6OgorCisgICAgICAgIGNsYXNzIE15SGFuZGxlcihSZXF1ZXN0SGFuZGxlcik6CisgICAgICAgICAgICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICAgICAgICAgIGZvbyA9IHNlbGYuYXBwLmNvbmZpZ1snbXkubW9kdWxlJ11bJ2ZvbyddCisKKyAgICAgICAgICAgICAgICAjIC4uLgorICAgICIiIgorICAgICM6IExvYWRlZCBtb2R1bGUgY29uZmlndXJhdGlvbnMuCisgICAgbG9hZGVkID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlcz1Ob25lLCBkZWZhdWx0cz1Ob25lKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorCisgICAgICAgIDpwYXJhbSB2YWx1ZXM6CisgICAgICAgICAgICBBIGRpY3Rpb25hcnkgb2YgY29uZmlndXJhdGlvbiBkaWN0aW9uYXJpZXMgZm9yIG1vZHVsZXMuCisgICAgICAgIDpwYXJhbSBkZWZhdWx0czoKKyAgICAgICAgICAgIEEgZGljdGlvbmFyeSBvZiBjb25maWd1cmF0aW9uIGRpY3Rpb25hcmllcyBmb3IgaW5pdGlhbCBkZWZhdWx0CisgICAgICAgICAgICB2YWx1ZXMuIFRoZXNlIG1vZHVsZXMgYXJlIG1hcmtlZCBhcyBsb2FkZWQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmxvYWRlZCA9IFtdCisgICAgICAgIGlmIHZhbHVlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlcywgZGljdCkKKyAgICAgICAgICAgIGZvciBtb2R1bGUsIGNvbmZpZyBpbiB2YWx1ZXMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgc2VsZi51cGRhdGUobW9kdWxlLCBjb25maWcpCisKKyAgICAgICAgaWYgZGVmYXVsdHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShkZWZhdWx0cywgZGljdCkKKyAgICAgICAgICAgIGZvciBtb2R1bGUsIGNvbmZpZyBpbiBkZWZhdWx0cy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICAgICBzZWxmLnNldGRlZmF1bHQobW9kdWxlLCBjb25maWcpCisgICAgICAgICAgICAgICAgc2VsZi5sb2FkZWQuYXBwZW5kKG1vZHVsZSkKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBtb2R1bGUpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBjb25maWd1cmF0aW9uIGZvciBhIG1vZHVsZS4gSWYgaXQgaXMgbm90IGFscmVhZHkKKyAgICAgICAgc2V0LCBsb2FkcyBhIGBgZGVmYXVsdF9jb25maWdgYCB2YXJpYWJsZSBmcm9tIHRoZSBnaXZlbiBtb2R1bGUgYW5kCisgICAgICAgIHVwZGF0ZXMgdGhlIGNvbmZpZ3VyYXRpb24gd2l0aCB0aG9zZSBkZWZhdWx0IHZhbHVlcworCisgICAgICAgIEV2ZXJ5IG1vZHVsZSB0aGF0IGFsbG93cyBzb21lIGtpbmQgb2YgY29uZmlndXJhdGlvbiBzZXRzIGEKKyAgICAgICAgYGBkZWZhdWx0X2NvbmZpZ2BgIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGxvYWRlZCBieSB0aGlzIGZ1bmN0aW9uLAorICAgICAgICBjYWNoZWQgYW5kIHVzZWQgaW4gY2FzZSB0aGUgcmVxdWVzdGVkIGNvbmZpZ3VyYXRpb24gd2FzIG5vdCBkZWZpbmVkCisgICAgICAgIGJ5IHRoZSB1c2VyLgorCisgICAgICAgIDpwYXJhbSBtb2R1bGU6CisgICAgICAgICAgICBUaGUgbW9kdWxlIG5hbWUuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSBjb25maWd1cmF0aW9uIHZhbHVlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbW9kdWxlIG5vdCBpbiBzZWxmLmxvYWRlZDoKKyAgICAgICAgICAgICMgTG9hZCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gYW5kIHVwZGF0ZSBjb25maWcuCisgICAgICAgICAgICB2YWx1ZXMgPSB3ZWJhcHAyLmltcG9ydF9zdHJpbmcobW9kdWxlICsgJy5kZWZhdWx0X2NvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lsZW50PVRydWUpCisgICAgICAgICAgICBpZiB2YWx1ZXM6CisgICAgICAgICAgICAgICAgc2VsZi5zZXRkZWZhdWx0KG1vZHVsZSwgdmFsdWVzKQorCisgICAgICAgICAgICBzZWxmLmxvYWRlZC5hcHBlbmQobW9kdWxlKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIG1vZHVsZSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ01vZHVsZSAlciBpcyBub3QgY29uZmlndXJlZC4nICUgbW9kdWxlKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIG1vZHVsZSwgdmFsdWVzKToKKyAgICAgICAgIiIiU2V0cyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgbW9kdWxlLCByZXF1aXJpbmcgaXQgdG8gYmUgYSBkaWN0aW9uYXJ5LgorCisgICAgICAgIDpwYXJhbSBtb2R1bGU6CisgICAgICAgICAgICBBIG1vZHVsZSBuYW1lIGZvciB0aGUgY29uZmlndXJhdGlvbiwgZS5nLjogYHdlYmFwcDIuZXh0LmkxOG5gLgorICAgICAgICA6cGFyYW0gdmFsdWVzOgorICAgICAgICAgICAgQSBkaWN0aW9uYXJ5IG9mIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgbW9kdWxlLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWVzLCBkaWN0KSwgJ01vZHVsZSBjb25maWd1cmF0aW9uIG11c3QgYmUgYSBkaWN0LicKKyAgICAgICAgZGljdC5fX3NldGl0ZW1fXyhzZWxmLCBtb2R1bGUsIFN1YkNvbmZpZyhtb2R1bGUsIHZhbHVlcykpCisKKyAgICBkZWYgZ2V0KHNlbGYsIG1vZHVsZSwgZGVmYXVsdD1ERUZBVUxUX1ZBTFVFKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgbW9kdWxlLiBJZiBkZWZhdWx0IGlzIG5vdCBwcm92aWRlZCwKKyAgICAgICAgcmV0dXJucyBhbiBlbXB0eSBkaWN0IGlmIHRoZSBtb2R1bGUgaXMgbm90IGNvbmZpZ3VyZWQuCisKKyAgICAgICAgOnBhcmFtIG1vZHVsZToKKyAgICAgICAgICAgIFRoZSBtb2R1bGUgbmFtZS4KKyAgICAgICAgOnBhcmFtcyBkZWZhdWx0OgorICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIG1vZHVsZSBpcyBub3QgY29uZmlndXJlZC4gSWYgbm90CisgICAgICAgICAgICBzZXQsIHJldHVybnMgYW4gZW1wdHkgZGljdC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIG1vZHVsZSBjb25maWd1cmF0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgZGVmYXVsdCBpcyBERUZBVUxUX1ZBTFVFOgorICAgICAgICAgICAgZGVmYXVsdCA9IHt9CisKKyAgICAgICAgcmV0dXJuIGRpY3QuZ2V0KHNlbGYsIG1vZHVsZSwgZGVmYXVsdCkKKworICAgIGRlZiBzZXRkZWZhdWx0KHNlbGYsIG1vZHVsZSwgdmFsdWVzKToKKyAgICAgICAgIiIiU2V0cyBhIGRlZmF1bHQgY29uZmlndXJhdGlvbiBkaWN0aW9uYXJ5IGZvciBhIG1vZHVsZS4KKworICAgICAgICA6cGFyYW0gbW9kdWxlOgorICAgICAgICAgICAgVGhlIG1vZHVsZSB0byBzZXQgZGVmYXVsdCBjb25maWd1cmF0aW9uLCBlLmcuOiBgd2ViYXBwMi5leHQuaTE4bmAuCisgICAgICAgIDpwYXJhbSB2YWx1ZXM6CisgICAgICAgICAgICBBIGRpY3Rpb25hcnkgb2YgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBtb2R1bGUuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIGRpY3Rpb25hcnkuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZXMsIGRpY3QpLCAnTW9kdWxlIGNvbmZpZ3VyYXRpb24gbXVzdCBiZSBhIGRpY3QuJworICAgICAgICBpZiBtb2R1bGUgbm90IGluIHNlbGY6CisgICAgICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNlbGYsIG1vZHVsZSwgU3ViQ29uZmlnKG1vZHVsZSkpCisKKyAgICAgICAgbW9kdWxlX2RpY3QgPSBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIG1vZHVsZSkKKworICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiB2YWx1ZXMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICBtb2R1bGVfZGljdC5zZXRkZWZhdWx0KGtleSwgdmFsdWUpCisKKyAgICAgICAgcmV0dXJuIG1vZHVsZV9kaWN0CisKKyAgICBkZWYgdXBkYXRlKHNlbGYsIG1vZHVsZSwgdmFsdWVzKToKKyAgICAgICAgIiIiVXBkYXRlcyB0aGUgY29uZmlndXJhdGlvbiBkaWN0aW9uYXJ5IGZvciBhIG1vZHVsZS4KKworICAgICAgICA6cGFyYW0gbW9kdWxlOgorICAgICAgICAgICAgVGhlIG1vZHVsZSB0byB1cGRhdGUgdGhlIGNvbmZpZ3VyYXRpb24sIGUuZy46IGB3ZWJhcHAyLmV4dC5pMThuYC4KKyAgICAgICAgOnBhcmFtIHZhbHVlczoKKyAgICAgICAgICAgIEEgZGljdGlvbmFyeSBvZiBjb25maWd1cmF0aW9ucyBmb3IgdGhlIG1vZHVsZS4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbHVlcywgZGljdCksICdNb2R1bGUgY29uZmlndXJhdGlvbiBtdXN0IGJlIGEgZGljdC4nCisgICAgICAgIGlmIG1vZHVsZSBub3QgaW4gc2VsZjoKKyAgICAgICAgICAgIGRpY3QuX19zZXRpdGVtX18oc2VsZiwgbW9kdWxlLCBTdWJDb25maWcobW9kdWxlKSkKKworICAgICAgICBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIG1vZHVsZSkudXBkYXRlKHZhbHVlcykKKworICAgIGRlZiBnZXRfY29uZmlnKHNlbGYsIG1vZHVsZSwga2V5PU5vbmUsIGRlZmF1bHQ9UkVRVUlSRURfVkFMVUUpOgorICAgICAgICAiIiJSZXR1cm5zIGEgY29uZmlndXJhdGlvbiB2YWx1ZSBmb3IgYSBtb2R1bGUgYW5kIG9wdGlvbmFsbHkgYSBrZXkuCisgICAgICAgIFdpbGwgcmFpc2UgYSBLZXlFcnJvciBpZiB0aGV5IHRoZSBtb2R1bGUgaXMgbm90IGNvbmZpZ3VyZWQgb3IgdGhlIGtleQorICAgICAgICBkb2Vzbid0IGV4aXN0IGFuZCBhIGRlZmF1bHQgaXMgbm90IHByb3ZpZGVkLgorCisgICAgICAgIDpwYXJhbSBtb2R1bGU6CisgICAgICAgICAgICBUaGUgbW9kdWxlIG5hbWUuCisgICAgICAgIDpwYXJhbXMga2V5OgorICAgICAgICAgICAgVGhlIGNvbmZpZ3VyYXRpb24ga2V5LgorICAgICAgICA6cGFyYW0gZGVmYXVsdDoKKyAgICAgICAgICAgIERlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBrZXkgZG9lc24ndCBleGlzdC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIG1vZHVsZSBjb25maWd1cmF0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgbW9kdWxlX2RpY3QgPSBzZWxmLl9fZ2V0aXRlbV9fKG1vZHVsZSkKKworICAgICAgICBpZiBrZXkgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBtb2R1bGVfZGljdAorCisgICAgICAgIHJldHVybiBtb2R1bGVfZGljdC5nZXQoa2V5LCBkZWZhdWx0KQorCisKK2NsYXNzIFN1YkNvbmZpZyhkaWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kdWxlLCB2YWx1ZXM9Tm9uZSk6CisgICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgdmFsdWVzIG9yICgpKQorICAgICAgICBzZWxmLm1vZHVsZSA9IG1vZHVsZQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZhbHVlID0gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdNb2R1bGUgJXIgZG9lcyBub3QgaGF2ZSB0aGUgY29uZmlnIGtleSAlcicgJQorICAgICAgICAgICAgICAgIChzZWxmLm1vZHVsZSwga2V5KSkKKworICAgICAgICBpZiB2YWx1ZSBpcyBSRVFVSVJFRF9WQUxVRToKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdNb2R1bGUgJXIgcmVxdWlyZXMgdGhlIGNvbmZpZyBrZXkgJXIgdG8gYmUgJworICAgICAgICAgICAgICAgICdzZXQuJyAlIChzZWxmLm1vZHVsZSwga2V5KSkKKworICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUpOgorICAgICAgICBpZiBrZXkgbm90IGluIHNlbGY6CisgICAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHZhbHVlID0gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpCisKKyAgICAgICAgaWYgdmFsdWUgaXMgUkVRVUlSRURfVkFMVUU6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcignTW9kdWxlICVyIHJlcXVpcmVzIHRoZSBjb25maWcga2V5ICVyIHRvIGJlICcKKyAgICAgICAgICAgICAgICAnc2V0LicgJSAoc2VsZi5tb2R1bGUsIGtleSkpCisKKyAgICAgICAgcmV0dXJuIHZhbHVlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9pMThuLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvaTE4bi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNThlMDdlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvaTE4bi5weQpAQCAtMCwwICsxLDkxNSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLmkxOG4KKyAgICA9PT09PT09PT09PT09PT09PT09CisKKyAgICBJbnRlcm5hdGlvbmFsaXphdGlvbiBzdXBwb3J0IGZvciB3ZWJhcHAyLgorCisgICAgU2V2ZXJhbCBpZGVhcyBib3Jyb3dlZCBmcm9tIHRpcGZ5LmkxOG4gYW5kIEZsYXNrLUJhYmVsLgorCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCBnZXR0ZXh0IGFzIGdldHRleHRfc3RkbGliCisKK2ltcG9ydCBiYWJlbAorZnJvbSBiYWJlbCBpbXBvcnQgZGF0ZXMKK2Zyb20gYmFiZWwgaW1wb3J0IG51bWJlcnMKK2Zyb20gYmFiZWwgaW1wb3J0IHN1cHBvcnQKKwordHJ5OgorICAgICMgTW9ua2V5cGF0Y2hlcyBweXR6IGZvciBnYWUuCisgICAgaW1wb3J0IHB5dHouZ2FlCitleGNlcHQgSW1wb3J0RXJyb3I6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIHBhc3MKKworaW1wb3J0IHB5dHoKKworaW1wb3J0IHdlYmFwcDIKKworIzogRGVmYXVsdCBjb25maWd1cmF0aW9uIHZhbHVlcyBmb3IgdGhpcyBtb2R1bGUuIEtleXMgYXJlOgorIzoKKyM6IHRyYW5zbGF0aW9uc19wYXRoCisjOiAgICAgUGF0aCB0byB0aGUgdHJhbnNsYXRpb25zIGRpcmVjdG9yeS4gRGVmYXVsdCBpcyBgbG9jYWxlYC4KKyM6CisjOiBkb21haW5zCisjOiAgICAgTGlzdCBvZiBnZXR0ZXh0IGRvbWFpbnMgdG8gYmUgdXNlZC4gRGVmYXVsdCBpcyBgYFsnbWVzc2FnZXMnXWBgLgorIzoKKyM6IGRlZmF1bHRfbG9jYWxlCisjOiAgICAgQSBsb2NhbGUgY29kZSB0byBiZSB1c2VkIGFzIGZhbGxiYWNrLiBEZWZhdWx0IGlzIGBgJ2VuX1VTJ2BgLgorIzoKKyM6IGRlZmF1bHRfdGltZXpvbmUKKyM6ICAgICBUaGUgYXBwbGljYXRpb24gZGVmYXVsdCB0aW1lem9uZSBhY2NvcmRpbmcgdG8gdGhlIE9sc29uCisjOiAgICAgZGF0YWJhc2UuIERlZmF1bHQgaXMgYGAnVVRDJ2BgLgorIzoKKyM6IGxvY2FsZV9zZWxlY3RvcgorIzogICAgIEEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyAoc3RvcmUsIHJlcXVlc3QpIGFuZCByZXR1cm5zIGEgbG9jYWxlCisjOiAgICAgdG8gYmUgdXNlZCBmb3IgYSByZXF1ZXN0LiBJZiBub3QgZGVmaW5lZCwgdXNlcyBgZGVmYXVsdF9sb2NhbGVgLgorIzogICAgIENhbiBhbHNvIGJlIGEgc3RyaW5nIGluIGRvdHRlZCBub3RhdGlvbiB0byBiZSBpbXBvcnRlZC4KKyM6CisjOiB0aW1lem9uZV9zZWxlY3RvcgorIzogICAgIEEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyAoc3RvcmUsIHJlcXVlc3QpIGFuZCByZXR1cm5zIGEgdGltZXpvbmUKKyM6ICAgICB0byBiZSB1c2VkIGZvciBhIHJlcXVlc3QuIElmIG5vdCBkZWZpbmVkLCB1c2VzIGBkZWZhdWx0X3RpbWV6b25lYC4KKyM6ICAgICBDYW4gYWxzbyBiZSBhIHN0cmluZyBpbiBkb3R0ZWQgbm90YXRpb24gdG8gYmUgaW1wb3J0ZWQuCisjOgorIzogZGF0ZV9mb3JtYXRzCisjOiAgICAgRGVmYXVsdCBkYXRlIGZvcm1hdHMgZm9yIGRhdGV0aW1lLCBkYXRlIGFuZCB0aW1lLgorZGVmYXVsdF9jb25maWcgPSB7CisgICAgJ3RyYW5zbGF0aW9uc19wYXRoJzogICAnbG9jYWxlJywKKyAgICAnZG9tYWlucyc6ICAgICAgICAgICAgIFsnbWVzc2FnZXMnXSwKKyAgICAnZGVmYXVsdF9sb2NhbGUnOiAgICAgICdlbl9VUycsCisgICAgJ2RlZmF1bHRfdGltZXpvbmUnOiAgICAnVVRDJywKKyAgICAnbG9jYWxlX3NlbGVjdG9yJzogICAgIE5vbmUsCisgICAgJ3RpbWV6b25lX3NlbGVjdG9yJzogICBOb25lLAorICAgICdkYXRlX2Zvcm1hdHMnOiB7CisgICAgICAgICd0aW1lJzogICAgICAgICAgICAnbWVkaXVtJywKKyAgICAgICAgJ2RhdGUnOiAgICAgICAgICAgICdtZWRpdW0nLAorICAgICAgICAnZGF0ZXRpbWUnOiAgICAgICAgJ21lZGl1bScsCisgICAgICAgICd0aW1lLnNob3J0JzogICAgICBOb25lLAorICAgICAgICAndGltZS5tZWRpdW0nOiAgICAgTm9uZSwKKyAgICAgICAgJ3RpbWUuZnVsbCc6ICAgICAgIE5vbmUsCisgICAgICAgICd0aW1lLmxvbmcnOiAgICAgICBOb25lLAorICAgICAgICAndGltZS5pc28nOiAgICAgICAgIkhIJzonbW0nOidzcyIsCisgICAgICAgICdkYXRlLnNob3J0JzogICAgICBOb25lLAorICAgICAgICAnZGF0ZS5tZWRpdW0nOiAgICAgTm9uZSwKKyAgICAgICAgJ2RhdGUuZnVsbCc6ICAgICAgIE5vbmUsCisgICAgICAgICdkYXRlLmxvbmcnOiAgICAgICBOb25lLAorICAgICAgICAnZGF0ZS5pc28nOiAgICAgICAgInl5eXknLSdNTSctJ2RkIiwKKyAgICAgICAgJ2RhdGV0aW1lLnNob3J0JzogIE5vbmUsCisgICAgICAgICdkYXRldGltZS5tZWRpdW0nOiBOb25lLAorICAgICAgICAnZGF0ZXRpbWUuZnVsbCc6ICAgTm9uZSwKKyAgICAgICAgJ2RhdGV0aW1lLmxvbmcnOiAgIE5vbmUsCisgICAgICAgICdkYXRldGltZS5pc28nOiAgICAieXl5eSctJ01NJy0nZGQnVCdISCc6J21tJzonc3NaIiwKKyAgICB9LAorfQorCitOdWxsVHJhbnNsYXRpb25zID0gZ2V0dGV4dF9zdGRsaWIuTnVsbFRyYW5zbGF0aW9ucworCisKK2NsYXNzIEkxOG5TdG9yZShvYmplY3QpOgorICAgICIiIkludGVybmFsaXphdGlvbiBzdG9yZS4KKworICAgIENhY2hlcyBsb2FkZWQgdHJhbnNsYXRpb25zIGFuZCBjb25maWd1cmF0aW9uIHRvIGJlIHVzZWQgYmV0d2VlbiByZXF1ZXN0cy4KKyAgICAiIiIKKworICAgICM6IENvbmZpZ3VyYXRpb24ga2V5LgorICAgIGNvbmZpZ19rZXkgPSBfX25hbWVfXworICAgICM6IEEgZGljdGlvbmFyeSB3aXRoIGFsbCBsb2FkZWQgdHJhbnNsYXRpb25zLgorICAgIHRyYW5zbGF0aW9ucyA9IE5vbmUKKyAgICAjOiBQYXRoIHRvIHdoZXJlIHRyYXNsYXRpb25zIGFyZSBzdG9yZWQuCisgICAgdHJhbnNsYXRpb25zX3BhdGggPSBOb25lCisgICAgIzogVHJhbnNsYXRpb24gZG9tYWlucyB0byBtZXJnZS4KKyAgICBkb21haW5zID0gTm9uZQorICAgICM6IERlZmF1bHQgbG9jYWxlIGNvZGUuCisgICAgZGVmYXVsdF9sb2NhbGUgPSBOb25lCisgICAgIzogRGVmYXVsdCB0aW1lem9uZSBjb2RlLgorICAgIGRlZmF1bHRfdGltZXpvbmUgPSBOb25lCisgICAgIzogRGljdGlvbmFyeSBvZiBkZWZhdWx0IGRhdGUgZm9ybWF0cy4KKyAgICBkYXRlX2Zvcm1hdHMgPSBOb25lCisgICAgIzogQSBjYWxsYWJsZSB0aGF0IHJldHVybnMgdGhlIGxvY2FsZSBmb3IgYSByZXF1ZXN0LgorICAgIGxvY2FsZV9zZWxlY3RvciA9IE5vbmUKKyAgICAjOiBBIGNhbGxhYmxlIHRoYXQgcmV0dXJucyB0aGUgdGltZXpvbmUgZm9yIGEgcmVxdWVzdC4KKyAgICB0aW1lem9uZV9zZWxlY3RvciA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcHAsIGNvbmZpZz1Ob25lKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZXMgdGhlIGkxOG4gc3RvcmUuCisKKyAgICAgICAgOnBhcmFtIGFwcDoKKyAgICAgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbmAgaW5zdGFuY2UuCisgICAgICAgIDpwYXJhbSBjb25maWc6CisgICAgICAgICAgICBBIGRpY3Rpb25hcnkgb2YgY29uZmlndXJhdGlvbiB2YWx1ZXMgdG8gYmUgb3ZlcnJpZGRlbi4gU2VlCisgICAgICAgICAgICB0aGUgYXZhaWxhYmxlIGtleXMgaW4gOmRhdGE6YGRlZmF1bHRfY29uZmlnYC4KKyAgICAgICAgIiIiCisgICAgICAgIGNvbmZpZyA9IGFwcC5jb25maWcubG9hZF9jb25maWcoc2VsZi5jb25maWdfa2V5LAorICAgICAgICAgICAgZGVmYXVsdF92YWx1ZXM9ZGVmYXVsdF9jb25maWcsIHVzZXJfdmFsdWVzPWNvbmZpZywKKyAgICAgICAgICAgIHJlcXVpcmVkX2tleXM9Tm9uZSkKKyAgICAgICAgc2VsZi50cmFuc2xhdGlvbnMgPSB7fQorICAgICAgICBzZWxmLnRyYW5zbGF0aW9uc19wYXRoID0gY29uZmlnWyd0cmFuc2xhdGlvbnNfcGF0aCddCisgICAgICAgIHNlbGYuZG9tYWlucyA9IGNvbmZpZ1snZG9tYWlucyddCisgICAgICAgIHNlbGYuZGVmYXVsdF9sb2NhbGUgPSBjb25maWdbJ2RlZmF1bHRfbG9jYWxlJ10KKyAgICAgICAgc2VsZi5kZWZhdWx0X3RpbWV6b25lID0gY29uZmlnWydkZWZhdWx0X3RpbWV6b25lJ10KKyAgICAgICAgc2VsZi5kYXRlX2Zvcm1hdHMgPSBjb25maWdbJ2RhdGVfZm9ybWF0cyddCisgICAgICAgIHNlbGYuc2V0X2xvY2FsZV9zZWxlY3Rvcihjb25maWdbJ2xvY2FsZV9zZWxlY3RvciddKQorICAgICAgICBzZWxmLnNldF90aW1lem9uZV9zZWxlY3Rvcihjb25maWdbJ3RpbWV6b25lX3NlbGVjdG9yJ10pCisKKyAgICBkZWYgc2V0X2xvY2FsZV9zZWxlY3RvcihzZWxmLCBmdW5jKToKKyAgICAgICAgIiIiU2V0cyB0aGUgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIHRoZSBsb2NhbGUgZm9yIGEgcmVxdWVzdC4KKworICAgICAgICA6cGFyYW0gZnVuYzoKKyAgICAgICAgICAgIEEgY2FsbGFibGUgdGhhdCByZWNlaXZlcyAoc3RvcmUsIHJlcXVlc3QpIGFuZCByZXR1cm5zIHRoZSBsb2NhbGUKKyAgICAgICAgICAgIGZvciBhIHJlcXVlc3QuCisgICAgICAgICIiIgorICAgICAgICBpZiBmdW5jIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvY2FsZV9zZWxlY3RvciA9IHNlbGYuZGVmYXVsdF9sb2NhbGVfc2VsZWN0b3IKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZnVuYywgYmFzZXN0cmluZyk6CisgICAgICAgICAgICAgICAgZnVuYyA9IHdlYmFwcDIuaW1wb3J0X3N0cmluZyhmdW5jKQorCisgICAgICAgICAgICAjIEZ1bmN0aW9ucyBhcmUgZGVzY3JpcHRvcnMsIHNvIGJpbmQgaXQgdG8gdGhpcyBpbnN0YW5jZSB3aXRoCisgICAgICAgICAgICAjIF9fZ2V0X18uCisgICAgICAgICAgICBzZWxmLmxvY2FsZV9zZWxlY3RvciA9IGZ1bmMuX19nZXRfXyhzZWxmLCBzZWxmLl9fY2xhc3NfXykKKworICAgIGRlZiBzZXRfdGltZXpvbmVfc2VsZWN0b3Ioc2VsZiwgZnVuYyk6CisgICAgICAgICIiIlNldHMgdGhlIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUgdGltZXpvbmUgZm9yIGEgcmVxdWVzdC4KKworICAgICAgICA6cGFyYW0gZnVuYzoKKyAgICAgICAgICAgIEEgY2FsbGFibGUgdGhhdCByZWNlaXZlcyAoc3RvcmUsIHJlcXVlc3QpIGFuZCByZXR1cm5zIHRoZSB0aW1lem9uZQorICAgICAgICAgICAgZm9yIGEgcmVxdWVzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGZ1bmMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYudGltZXpvbmVfc2VsZWN0b3IgPSBzZWxmLmRlZmF1bHRfdGltZXpvbmVfc2VsZWN0b3IKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZnVuYywgYmFzZXN0cmluZyk6CisgICAgICAgICAgICAgICAgZnVuYyA9IHdlYmFwcDIuaW1wb3J0X3N0cmluZyhmdW5jKQorCisgICAgICAgICAgICBzZWxmLnRpbWV6b25lX3NlbGVjdG9yID0gZnVuYy5fX2dldF9fKHNlbGYsIHNlbGYuX19jbGFzc19fKQorCisgICAgZGVmIGRlZmF1bHRfbG9jYWxlX3NlbGVjdG9yKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICByZXR1cm4gc2VsZi5kZWZhdWx0X2xvY2FsZQorCisgICAgZGVmIGRlZmF1bHRfdGltZXpvbmVfc2VsZWN0b3Ioc2VsZiwgcmVxdWVzdCk6CisgICAgICAgIHJldHVybiBzZWxmLmRlZmF1bHRfdGltZXpvbmUKKworICAgIGRlZiBnZXRfdHJhbnNsYXRpb25zKHNlbGYsIGxvY2FsZSk6CisgICAgICAgICIiIlJldHVybnMgYSB0cmFuc2xhdGlvbiBjYXRhbG9nIGZvciBhIGxvY2FsZS4KKworICAgICAgICA6cGFyYW0gbG9jYWxlOgorICAgICAgICAgICAgQSBsb2NhbGUgY29kZS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIGBgYmFiZWwuc3VwcG9ydC5UcmFuc2xhdGlvbnNgYCBpbnN0YW5jZSwgb3IKKyAgICAgICAgICAgIGBgZ2V0dGV4dC5OdWxsVHJhbnNsYXRpb25zYGAgaWYgbm9uZSB3YXMgZm91bmQuCisgICAgICAgICIiIgorICAgICAgICB0cmFucyA9IHNlbGYudHJhbnNsYXRpb25zLmdldChsb2NhbGUpCisgICAgICAgIGlmIG5vdCB0cmFuczoKKyAgICAgICAgICAgIGxvY2FsZXMgPSAobG9jYWxlLCBzZWxmLmRlZmF1bHRfbG9jYWxlKQorICAgICAgICAgICAgdHJhbnMgPSBzZWxmLmxvYWRfdHJhbnNsYXRpb25zKHNlbGYudHJhbnNsYXRpb25zX3BhdGgsIGxvY2FsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb21haW5zKQorICAgICAgICAgICAgaWYgbm90IHdlYmFwcDIuZ2V0X2FwcCgpLmRlYnVnOgorICAgICAgICAgICAgICAgIHNlbGYudHJhbnNsYXRpb25zW2xvY2FsZV0gPSB0cmFucworCisgICAgICAgIHJldHVybiB0cmFucworCisgICAgZGVmIGxvYWRfdHJhbnNsYXRpb25zKHNlbGYsIGRpcm5hbWUsIGxvY2FsZXMsIGRvbWFpbnMpOgorICAgICAgICAiIiJMb2FkcyBhIHRyYW5zbGF0aW9uIGNhdGFsb2cuCisKKyAgICAgICAgOnBhcmFtIGRpcm5hbWU6CisgICAgICAgICAgICBQYXRoIHRvIHdoZXJlIHRyYW5zbGF0aW9ucyBhcmUgc3RvcmVkLgorICAgICAgICA6cGFyYW0gbG9jYWxlczoKKyAgICAgICAgICAgIEEgbGlzdCBvZiBsb2NhbGUgY29kZXMuCisgICAgICAgIDpwYXJhbSBkb21haW5zOgorICAgICAgICAgICAgQSBsaXN0IG9mIGRvbWFpbnMgdG8gYmUgbWVyZ2VkLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgYGBiYWJlbC5zdXBwb3J0LlRyYW5zbGF0aW9uc2BgIGluc3RhbmNlLCBvcgorICAgICAgICAgICAgYGBnZXR0ZXh0Lk51bGxUcmFuc2xhdGlvbnNgYCBpZiBub25lIHdhcyBmb3VuZC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyYW5zID0gTm9uZQorICAgICAgICB0cmFuc19udWxsID0gTm9uZQorICAgICAgICBmb3IgZG9tYWluIGluIGRvbWFpbnM6CisgICAgICAgICAgICBfdHJhbnMgPSBzdXBwb3J0LlRyYW5zbGF0aW9ucy5sb2FkKGRpcm5hbWUsIGxvY2FsZXMsIGRvbWFpbikKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoX3RyYW5zLCBOdWxsVHJhbnNsYXRpb25zKToKKyAgICAgICAgICAgICAgICB0cmFuc19udWxsID0gX3RyYW5zCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGVsaWYgdHJhbnMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB0cmFucyA9IF90cmFucworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0cmFucy5tZXJnZShfdHJhbnMpCisKKyAgICAgICAgcmV0dXJuIHRyYW5zIG9yIHRyYW5zX251bGwgb3IgTnVsbFRyYW5zbGF0aW9ucygpCisKKworY2xhc3MgSTE4bihvYmplY3QpOgorICAgICIiIkludGVybmFsaXphdGlvbiBwcm92aWRlciBmb3IgYSBzaW5nbGUgcmVxdWVzdC4iIiIKKworICAgICM6IEEgcmVmZXJlbmNlIHRvIDpjbGFzczpgSTE4blN0b3JlYC4KKyAgICBzdG9yZSA9IE5vbmUKKyAgICAjOiBUaGUgY3VycmVudCBsb2NhbGUgY29kZS4KKyAgICBsb2NhbGUgPSBOb25lCisgICAgIzogVGhlIGN1cnJlbnQgdHJhbnNsYXRpb25zLgorICAgIHRyYW5zbGF0aW9ucyA9IE5vbmUKKyAgICAjOiBUaGUgY3VycmVudCB0aW1lem9uZSBjb2RlLgorICAgIHRpbWV6b25lID0gTm9uZQorICAgICM6IFRoZSBjdXJyZW50IHR6aW5mbyBvYmplY3QuCisgICAgdHppbmZvID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJJbml0aWFsaXplcyB0aGUgaTE4biBwcm92aWRlciBmb3IgYSByZXF1ZXN0LgorCisgICAgICAgIDpwYXJhbSByZXF1ZXN0OgorICAgICAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcDIuUmVxdWVzdGAgaW5zdGFuY2UuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnN0b3JlID0gc3RvcmUgPSBnZXRfc3RvcmUoYXBwPXJlcXVlc3QuYXBwKQorICAgICAgICBzZWxmLnNldF9sb2NhbGUoc3RvcmUubG9jYWxlX3NlbGVjdG9yKHJlcXVlc3QpKQorICAgICAgICBzZWxmLnNldF90aW1lem9uZShzdG9yZS50aW1lem9uZV9zZWxlY3RvcihyZXF1ZXN0KSkKKworICAgIGRlZiBzZXRfbG9jYWxlKHNlbGYsIGxvY2FsZSk6CisgICAgICAgICIiIlNldHMgdGhlIGxvY2FsZSBjb2RlIGZvciB0aGlzIHJlcXVlc3QuCisKKyAgICAgICAgOnBhcmFtIGxvY2FsZToKKyAgICAgICAgICAgIEEgbG9jYWxlIGNvZGUuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmxvY2FsZSA9IGxvY2FsZQorICAgICAgICBzZWxmLnRyYW5zbGF0aW9ucyA9IHNlbGYuc3RvcmUuZ2V0X3RyYW5zbGF0aW9ucyhsb2NhbGUpCisKKyAgICBkZWYgc2V0X3RpbWV6b25lKHNlbGYsIHRpbWV6b25lKToKKyAgICAgICAgIiIiU2V0cyB0aGUgdGltZXpvbmUgY29kZSBmb3IgdGhpcyByZXF1ZXN0LgorCisgICAgICAgIDpwYXJhbSB0aW1lem9uZToKKyAgICAgICAgICAgIEEgdGltZXpvbmUgY29kZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYudGltZXpvbmUgPSB0aW1lem9uZQorICAgICAgICBzZWxmLnR6aW5mbyA9IHB5dHoudGltZXpvbmUodGltZXpvbmUpCisKKyAgICBkZWYgZ2V0dGV4dChzZWxmLCBzdHJpbmcsICoqdmFyaWFibGVzKToKKyAgICAgICAgIiIiVHJhbnNsYXRlcyBhIGdpdmVuIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgbG9jYWxlLgorCisgICAgICAgIDpwYXJhbSBzdHJpbmc6CisgICAgICAgICAgICBUaGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuCisgICAgICAgIDpwYXJhbSB2YXJpYWJsZXM6CisgICAgICAgICAgICBWYXJpYWJsZXMgdG8gZm9ybWF0IHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVGhlIHRyYW5zbGF0ZWQgc3RyaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgdmFyaWFibGVzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYudHJhbnNsYXRpb25zLnVnZXR0ZXh0KHN0cmluZykgJSB2YXJpYWJsZXMKKworICAgICAgICByZXR1cm4gc2VsZi50cmFuc2xhdGlvbnMudWdldHRleHQoc3RyaW5nKQorCisgICAgZGVmIG5nZXR0ZXh0KHNlbGYsIHNpbmd1bGFyLCBwbHVyYWwsIG4sICoqdmFyaWFibGVzKToKKyAgICAgICAgIiIiVHJhbnNsYXRlcyBhIHBvc3NpYmxlIHBsdXJhbGl6ZWQgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgY3VycmVudAorICAgICAgICBsb2NhbGUuCisKKyAgICAgICAgOnBhcmFtIHNpbmd1bGFyOgorICAgICAgICAgICAgVGhlIHNpbmd1bGFyIGZvciBvZiB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuCisgICAgICAgIDpwYXJhbSBwbHVyYWw6CisgICAgICAgICAgICBUaGUgcGx1cmFsIGZvciBvZiB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuCisgICAgICAgIDpwYXJhbSBuOgorICAgICAgICAgICAgQW4gaW50ZWdlciBpbmRpY2F0aW5nIGlmIHRoaXMgaXMgYSBzaW5ndWxhciBvciBwbHVyYWwuIElmIGdyZWF0ZXIKKyAgICAgICAgICAgIHRoYW4gMSwgaXQgaXMgYSBwbHVyYWwuCisgICAgICAgIDpwYXJhbSB2YXJpYWJsZXM6CisgICAgICAgICAgICBWYXJpYWJsZXMgdG8gZm9ybWF0IHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVGhlIHRyYW5zbGF0ZWQgc3RyaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgdmFyaWFibGVzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYudHJhbnNsYXRpb25zLnVuZ2V0dGV4dChzaW5ndWxhciwgcGx1cmFsLCBuKSAlIHZhcmlhYmxlcworCisgICAgICAgIHJldHVybiBzZWxmLnRyYW5zbGF0aW9ucy51bmdldHRleHQoc2luZ3VsYXIsIHBsdXJhbCwgbikKKworICAgIGRlZiB0b19sb2NhbF90aW1lem9uZShzZWxmLCBkYXRldGltZSk6CisgICAgICAgICIiIlJldHVybnMgYSBkYXRldGltZSBvYmplY3QgY29udmVydGVkIHRvIHRoZSBsb2NhbCB0aW1lem9uZS4KKworICAgICAgICA6cGFyYW0gZGF0ZXRpbWU6CisgICAgICAgICAgICBBIGBgZGF0ZXRpbWVgYCBvYmplY3QuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSBgYGRhdGV0aW1lYGAgb2JqZWN0IG5vcm1hbGl6ZWQgdG8gYSB0aW1lem9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGRhdGV0aW1lLnR6aW5mbyBpcyBOb25lOgorICAgICAgICAgICAgZGF0ZXRpbWUgPSBkYXRldGltZS5yZXBsYWNlKHR6aW5mbz1weXR6LlVUQykKKworICAgICAgICByZXR1cm4gc2VsZi50emluZm8ubm9ybWFsaXplKGRhdGV0aW1lLmFzdGltZXpvbmUoc2VsZi50emluZm8pKQorCisgICAgZGVmIHRvX3V0YyhzZWxmLCBkYXRldGltZSk6CisgICAgICAgICIiIlJldHVybnMgYSBkYXRldGltZSBvYmplY3QgY29udmVydGVkIHRvIFVUQyBhbmQgd2l0aG91dCB0emluZm8uCisKKyAgICAgICAgOnBhcmFtIGRhdGV0aW1lOgorICAgICAgICAgICAgQSBgYGRhdGV0aW1lYGAgb2JqZWN0LgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgbmFpdmUgYGBkYXRldGltZWBgIG9iamVjdCAobm8gdGltZXpvbmUpLCBjb252ZXJ0ZWQgdG8gVVRDLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgZGF0ZXRpbWUudHppbmZvIGlzIE5vbmU6CisgICAgICAgICAgICBkYXRldGltZSA9IHNlbGYudHppbmZvLmxvY2FsaXplKGRhdGV0aW1lKQorCisgICAgICAgIHJldHVybiBkYXRldGltZS5hc3RpbWV6b25lKHB5dHouVVRDKS5yZXBsYWNlKHR6aW5mbz1Ob25lKQorCisgICAgZGVmIF9nZXRfZm9ybWF0KHNlbGYsIGtleSwgZm9ybWF0KToKKyAgICAgICAgIiIiQSBoZWxwZXIgZm9yIHRoZSBkYXRldGltZSBmb3JtYXR0aW5nIGZ1bmN0aW9ucy4gUmV0dXJucyBhIGZvcm1hdAorICAgICAgICBuYW1lIG9yIHBhdHRlcm4gdG8gYmUgdXNlZCBieSBCYWJlbCBkYXRlIGZvcm1hdCBmdW5jdGlvbnMuCisKKyAgICAgICAgOnBhcmFtIGtleToKKyAgICAgICAgICAgIEEgZm9ybWF0IGtleSB0byBiZSBnZXQgZnJvbSBjb25maWcuIFZhbGlkIHZhbHVlcyBhcmUgImRhdGUiLAorICAgICAgICAgICAgImRhdGV0aW1lIiBvciAidGltZSIuCisgICAgICAgIDpwYXJhbSBmb3JtYXQ6CisgICAgICAgICAgICBUaGUgZm9ybWF0IHRvIGJlIHJldHVybmVkLiBWYWxpZCB2YWx1ZXMgYXJlICJzaG9ydCIsICJtZWRpdW0iLAorICAgICAgICAgICAgImxvbmciLCAiZnVsbCIgb3IgYSBjdXN0b20gZGF0ZS90aW1lIHBhdHRlcm4uCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSBmb3JtYXQgbmFtZSBvciBwYXR0ZXJuIHRvIGJlIHVzZWQgYnkgQmFiZWwgZGF0ZSBmb3JtYXQgZnVuY3Rpb25zLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgZm9ybWF0IGlzIE5vbmU6CisgICAgICAgICAgICBmb3JtYXQgPSBzZWxmLnN0b3JlLmRhdGVfZm9ybWF0cy5nZXQoa2V5KQorCisgICAgICAgIGlmIGZvcm1hdCBpbiAoJ3Nob3J0JywgJ21lZGl1bScsICdmdWxsJywgJ2xvbmcnLCAnaXNvJyk6CisgICAgICAgICAgICBydiA9IHNlbGYuc3RvcmUuZGF0ZV9mb3JtYXRzLmdldCgnJXMuJXMnICUgKGtleSwgZm9ybWF0KSkKKyAgICAgICAgICAgIGlmIHJ2IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IHJ2CisKKyAgICAgICAgcmV0dXJuIGZvcm1hdAorCisgICAgZGVmIGZvcm1hdF9kYXRlKHNlbGYsIGRhdGU9Tm9uZSwgZm9ybWF0PU5vbmUsIHJlYmFzZT1UcnVlKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGRhdGUgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQKKyAgICAgICAgZm9sbG93aW5nIHRoZSBjdXJyZW50IGxvY2FsZS4KKworICAgICAgICA6cGFyYW0gZGF0ZToKKyAgICAgICAgICAgIEEgYGBkYXRlYGAgb3IgYGBkYXRldGltZWBgIG9iamVjdC4gSWYgTm9uZSwgdGhlIGN1cnJlbnQgZGF0ZSBpbgorICAgICAgICAgICAgVVRDIGlzIHVzZWQuCisgICAgICAgIDpwYXJhbSBmb3JtYXQ6CisgICAgICAgICAgICBUaGUgZm9ybWF0IHRvIGJlIHJldHVybmVkLiBWYWxpZCB2YWx1ZXMgYXJlICJzaG9ydCIsICJtZWRpdW0iLAorICAgICAgICAgICAgImxvbmciLCAiZnVsbCIgb3IgYSBjdXN0b20gZGF0ZS90aW1lIHBhdHRlcm4uIEV4YW1wbGUgb3V0cHV0czoKKworICAgICAgICAgICAgLSBzaG9ydDogIDExLzEwLzA5CisgICAgICAgICAgICAtIG1lZGl1bTogTm92IDEwLCAyMDA5CisgICAgICAgICAgICAtIGxvbmc6ICAgTm92ZW1iZXIgMTAsIDIwMDkKKyAgICAgICAgICAgIC0gZnVsbDogICBUdWVzZGF5LCBOb3ZlbWJlciAxMCwgMjAwOQorCisgICAgICAgIDpwYXJhbSByZWJhc2U6CisgICAgICAgICAgICBJZiBUcnVlLCBjb252ZXJ0cyB0aGUgZGF0ZSB0byB0aGUgY3VycmVudCA6YXR0cjpgdGltZXpvbmVgLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgZm9ybWF0dGVkIGRhdGUgaW4gdW5pY29kZS4KKyAgICAgICAgIiIiCisgICAgICAgIGZvcm1hdCA9IHNlbGYuX2dldF9mb3JtYXQoJ2RhdGUnLCBmb3JtYXQpCisKKyAgICAgICAgaWYgcmViYXNlIGFuZCBpc2luc3RhbmNlKGRhdGUsIGRhdGV0aW1lLmRhdGV0aW1lKToKKyAgICAgICAgICAgIGRhdGUgPSBzZWxmLnRvX2xvY2FsX3RpbWV6b25lKGRhdGUpCisKKyAgICAgICAgcmV0dXJuIGRhdGVzLmZvcm1hdF9kYXRlKGRhdGUsIGZvcm1hdCwgbG9jYWxlPXNlbGYubG9jYWxlKQorCisgICAgZGVmIGZvcm1hdF9kYXRldGltZShzZWxmLCBkYXRldGltZT1Ob25lLCBmb3JtYXQ9Tm9uZSwgcmViYXNlPVRydWUpOgorICAgICAgICAiIiJSZXR1cm5zIGEgZGF0ZSBhbmQgdGltZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwYXR0ZXJuCisgICAgICAgIGFuZCBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgbG9jYWxlIGFuZCB0aW1lem9uZS4KKworICAgICAgICA6cGFyYW0gZGF0ZXRpbWU6CisgICAgICAgICAgICBBIGBgZGF0ZXRpbWVgYCBvYmplY3QuIElmIE5vbmUsIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaW4gVVRDCisgICAgICAgICAgICBpcyB1c2VkLgorICAgICAgICA6cGFyYW0gZm9ybWF0OgorICAgICAgICAgICAgVGhlIGZvcm1hdCB0byBiZSByZXR1cm5lZC4gVmFsaWQgdmFsdWVzIGFyZSAic2hvcnQiLCAibWVkaXVtIiwKKyAgICAgICAgICAgICJsb25nIiwgImZ1bGwiIG9yIGEgY3VzdG9tIGRhdGUvdGltZSBwYXR0ZXJuLiBFeGFtcGxlIG91dHB1dHM6CisKKyAgICAgICAgICAgIC0gc2hvcnQ6ICAxMS8xMC8wOSA0OjM2IFBNCisgICAgICAgICAgICAtIG1lZGl1bTogTm92IDEwLCAyMDA5IDQ6MzY6MDUgUE0KKyAgICAgICAgICAgIC0gbG9uZzogICBOb3ZlbWJlciAxMCwgMjAwOSA0OjM2OjA1IFBNICswMDAwCisgICAgICAgICAgICAtIGZ1bGw6ICAgVHVlc2RheSwgTm92ZW1iZXIgMTAsIDIwMDkgNDozNjowNSBQTSBXb3JsZCAoR01UKSBUaW1lCisKKyAgICAgICAgOnBhcmFtIHJlYmFzZToKKyAgICAgICAgICAgIElmIFRydWUsIGNvbnZlcnRzIHRoZSBkYXRldGltZSB0byB0aGUgY3VycmVudCA6YXR0cjpgdGltZXpvbmVgLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgZm9ybWF0dGVkIGRhdGUgYW5kIHRpbWUgaW4gdW5pY29kZS4KKyAgICAgICAgIiIiCisgICAgICAgIGZvcm1hdCA9IHNlbGYuX2dldF9mb3JtYXQoJ2RhdGV0aW1lJywgZm9ybWF0KQorCisgICAgICAgIGt3YXJncyA9IHt9CisgICAgICAgIGlmIHJlYmFzZToKKyAgICAgICAgICAgIGt3YXJnc1sndHppbmZvJ10gPSBzZWxmLnR6aW5mbworCisgICAgICAgIHJldHVybiBkYXRlcy5mb3JtYXRfZGF0ZXRpbWUoZGF0ZXRpbWUsIGZvcm1hdCwgbG9jYWxlPXNlbGYubG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorCisgICAgZGVmIGZvcm1hdF90aW1lKHNlbGYsIHRpbWU9Tm9uZSwgZm9ybWF0PU5vbmUsIHJlYmFzZT1UcnVlKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHRpbWUgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQKKyAgICAgICAgZm9sbG93aW5nIHRoZSBjdXJyZW50IGxvY2FsZSBhbmQgdGltZXpvbmUuCisKKyAgICAgICAgOnBhcmFtIHRpbWU6CisgICAgICAgICAgICBBIGBgdGltZWBgIG9yIGBgZGF0ZXRpbWVgYCBvYmplY3QuIElmIE5vbmUsIHRoZSBjdXJyZW50CisgICAgICAgICAgICB0aW1lIGluIFVUQyBpcyB1c2VkLgorICAgICAgICA6cGFyYW0gZm9ybWF0OgorICAgICAgICAgICAgVGhlIGZvcm1hdCB0byBiZSByZXR1cm5lZC4gVmFsaWQgdmFsdWVzIGFyZSAic2hvcnQiLCAibWVkaXVtIiwKKyAgICAgICAgICAgICJsb25nIiwgImZ1bGwiIG9yIGEgY3VzdG9tIGRhdGUvdGltZSBwYXR0ZXJuLiBFeGFtcGxlIG91dHB1dHM6CisKKyAgICAgICAgICAgIC0gc2hvcnQ6ICA0OjM2IFBNCisgICAgICAgICAgICAtIG1lZGl1bTogNDozNjowNSBQTQorICAgICAgICAgICAgLSBsb25nOiAgIDQ6MzY6MDUgUE0gKzAwMDAKKyAgICAgICAgICAgIC0gZnVsbDogICA0OjM2OjA1IFBNIFdvcmxkIChHTVQpIFRpbWUKKworICAgICAgICA6cGFyYW0gcmViYXNlOgorICAgICAgICAgICAgSWYgVHJ1ZSwgY29udmVydHMgdGhlIHRpbWUgdG8gdGhlIGN1cnJlbnQgOmF0dHI6YHRpbWV6b25lYC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIGZvcm1hdHRlZCB0aW1lIGluIHVuaWNvZGUuCisgICAgICAgICIiIgorICAgICAgICBmb3JtYXQgPSBzZWxmLl9nZXRfZm9ybWF0KCd0aW1lJywgZm9ybWF0KQorCisgICAgICAgIGt3YXJncyA9IHt9CisgICAgICAgIGlmIHJlYmFzZToKKyAgICAgICAgICAgIGt3YXJnc1sndHppbmZvJ10gPSBzZWxmLnR6aW5mbworCisgICAgICAgIHJldHVybiBkYXRlcy5mb3JtYXRfdGltZSh0aW1lLCBmb3JtYXQsIGxvY2FsZT1zZWxmLmxvY2FsZSwgKiprd2FyZ3MpCisKKyAgICBkZWYgZm9ybWF0X3RpbWVkZWx0YShzZWxmLCBkYXRldGltZV9vcl90aW1lZGVsdGEsIGdyYW51bGFyaXR5PSdzZWNvbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZD0uODUpOgorICAgICAgICAiIiJGb3JtYXRzIHRoZSBlbGFwc2VkIHRpbWUgZnJvbSB0aGUgZ2l2ZW4gZGF0ZSB0byBub3cgb3IgdGhlIGdpdmVuCisgICAgICAgIHRpbWVkZWx0YS4gVGhpcyBjdXJyZW50bHkgcmVxdWlyZXMgYW4gdW5yZWxlYXNlZCBkZXZlbG9wbWVudCB2ZXJzaW9uCisgICAgICAgIG9mIEJhYmVsLgorCisgICAgICAgIDpwYXJhbSBkYXRldGltZV9vcl90aW1lZGVsdGE6CisgICAgICAgICAgICBBIGBgdGltZWRlbHRhYGAgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgdGltZSBkaWZmZXJlbmNlIHRvIGZvcm1hdCwKKyAgICAgICAgICAgIG9yIGEgYGBkYXRldGltZWBgIG9iamVjdCBpbiBVVEMuCisgICAgICAgIDpwYXJhbSBncmFudWxhcml0eToKKyAgICAgICAgICAgIERldGVybWluZXMgdGhlIHNtYWxsZXN0IHVuaXQgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkLCB0aGUgdmFsdWUKKyAgICAgICAgICAgIGNhbiBiZSBvbmUgb2YgInllYXIiLCAibW9udGgiLCAid2VlayIsICJkYXkiLCAiaG91ciIsICJtaW51dGUiIG9yCisgICAgICAgICAgICAic2Vjb25kIi4KKyAgICAgICAgOnBhcmFtIHRocmVzaG9sZDoKKyAgICAgICAgICAgIEZhY3RvciB0aGF0IGRldGVybWluZXMgYXQgd2hpY2ggcG9pbnQgdGhlIHByZXNlbnRhdGlvbiBzd2l0Y2hlcyB0bworICAgICAgICAgICAgdGhlIG5leHQgaGlnaGVyIHVuaXQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSBzdHJpbmcgd2l0aCB0aGUgZWxhcHNlZCB0aW1lLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShkYXRldGltZV9vcl90aW1lZGVsdGEsIGRhdGV0aW1lLmRhdGV0aW1lKToKKyAgICAgICAgICAgIGRhdGV0aW1lX29yX3RpbWVkZWx0YSA9IGRhdGV0aW1lLmRhdGV0aW1lLnV0Y25vdygpIC0gXAorICAgICAgICAgICAgICAgIGRhdGV0aW1lX29yX3RpbWVkZWx0YQorCisgICAgICAgIHJldHVybiBkYXRlcy5mb3JtYXRfdGltZWRlbHRhKGRhdGV0aW1lX29yX3RpbWVkZWx0YSwgZ3JhbnVsYXJpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZD10aHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZT1zZWxmLmxvY2FsZSkKKworICAgIGRlZiBmb3JtYXRfbnVtYmVyKHNlbGYsIG51bWJlcik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGdpdmVuIG51bWJlciBmb3JtYXR0ZWQgZm9yIHRoZSBjdXJyZW50IGxvY2FsZS4gRXhhbXBsZTo6CisKKyAgICAgICAgICAgID4+PiBmb3JtYXRfbnVtYmVyKDEwOTksIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgdScxLDA5OScKKworICAgICAgICA6cGFyYW0gbnVtYmVyOgorICAgICAgICAgICAgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVGhlIGZvcm1hdHRlZCBudW1iZXIuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbnVtYmVycy5mb3JtYXRfbnVtYmVyKG51bWJlciwgbG9jYWxlPXNlbGYubG9jYWxlKQorCisgICAgZGVmIGZvcm1hdF9kZWNpbWFsKHNlbGYsIG51bWJlciwgZm9ybWF0PU5vbmUpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBnaXZlbiBkZWNpbWFsIG51bWJlciBmb3JtYXR0ZWQgZm9yIHRoZSBjdXJyZW50IGxvY2FsZS4KKyAgICAgICAgRXhhbXBsZTo6CisKKyAgICAgICAgICAgID4+PiBmb3JtYXRfZGVjaW1hbCgxLjIzNDUsIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgdScxLjIzNCcKKyAgICAgICAgICAgID4+PiBmb3JtYXRfZGVjaW1hbCgxLjIzNDYsIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgdScxLjIzNScKKyAgICAgICAgICAgID4+PiBmb3JtYXRfZGVjaW1hbCgtMS4yMzQ2LCBsb2NhbGU9J2VuX1VTJykKKyAgICAgICAgICAgIHUnLTEuMjM1JworICAgICAgICAgICAgPj4+IGZvcm1hdF9kZWNpbWFsKDEuMjM0NSwgbG9jYWxlPSdzdl9TRScpCisgICAgICAgICAgICB1JzEsMjM0JworICAgICAgICAgICAgPj4+IGZvcm1hdF9kZWNpbWFsKDEyMzQ1LCBsb2NhbGU9J2RlJykKKyAgICAgICAgICAgIHUnMTIuMzQ1JworCisgICAgICAgIFRoZSBhcHByb3ByaWF0ZSB0aG91c2FuZHMgZ3JvdXBpbmcgYW5kIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBhcmUgdXNlZAorICAgICAgICBmb3IgZWFjaCBsb2NhbGU6OgorCisgICAgICAgICAgICA+Pj4gZm9ybWF0X2RlY2ltYWwoMTIzNDUuNSwgbG9jYWxlPSdlbl9VUycpCisgICAgICAgICAgICB1JzEyLDM0NS41JworCisgICAgICAgIDpwYXJhbSBudW1iZXI6CisgICAgICAgICAgICBUaGUgbnVtYmVyIHRvIGZvcm1hdC4KKyAgICAgICAgOnBhcmFtIGZvcm1hdDoKKyAgICAgICAgICAgIE5vdGF0aW9uIGZvcm1hdC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBUaGUgZm9ybWF0dGVkIGRlY2ltYWwgbnVtYmVyLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG51bWJlcnMuZm9ybWF0X2RlY2ltYWwobnVtYmVyLCBmb3JtYXQ9Zm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU9c2VsZi5sb2NhbGUpCisKKyAgICBkZWYgZm9ybWF0X2N1cnJlbmN5KHNlbGYsIG51bWJlciwgY3VycmVuY3ksIGZvcm1hdD1Ob25lKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGZvcm1hdHRlZCBjdXJyZW5jeSB2YWx1ZS4gRXhhbXBsZTo6CisKKyAgICAgICAgICAgID4+PiBmb3JtYXRfY3VycmVuY3koMTA5OS45OCwgJ1VTRCcsIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgdSckMSwwOTkuOTgnCisgICAgICAgICAgICA+Pj4gZm9ybWF0X2N1cnJlbmN5KDEwOTkuOTgsICdVU0QnLCBsb2NhbGU9J2VzX0NPJykKKyAgICAgICAgICAgIHUnVVMkXFx4YTAxLjA5OSw5OCcKKyAgICAgICAgICAgID4+PiBmb3JtYXRfY3VycmVuY3koMTA5OS45OCwgJ0VVUicsIGxvY2FsZT0nZGVfREUnKQorICAgICAgICAgICAgdScxLjA5OSw5OFxceGEwXFx1MjBhYycKKworICAgICAgICBUaGUgcGF0dGVybiBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgZXhwbGljaXRseTo6CisKKyAgICAgICAgICAgID4+PiBmb3JtYXRfY3VycmVuY3koMTA5OS45OCwgJ0VVUicsIHUnXFx4YTRcXHhhNCAjLCMjMC4wMCcsCisgICAgICAgICAgICAuLi4gICAgICAgICAgICAgICAgIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgdSdFVVIgMSwwOTkuOTgnCisKKyAgICAgICAgOnBhcmFtIG51bWJlcjoKKyAgICAgICAgICAgIFRoZSBudW1iZXIgdG8gZm9ybWF0LgorICAgICAgICA6cGFyYW0gY3VycmVuY3k6CisgICAgICAgICAgICBUaGUgY3VycmVuY3kgY29kZS4KKyAgICAgICAgOnBhcmFtIGZvcm1hdDoKKyAgICAgICAgICAgIE5vdGF0aW9uIGZvcm1hdC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBUaGUgZm9ybWF0dGVkIGN1cnJlbmN5IHZhbHVlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG51bWJlcnMuZm9ybWF0X2N1cnJlbmN5KG51bWJlciwgY3VycmVuY3ksIGZvcm1hdD1mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU9c2VsZi5sb2NhbGUpCisKKyAgICBkZWYgZm9ybWF0X3BlcmNlbnQoc2VsZiwgbnVtYmVyLCBmb3JtYXQ9Tm9uZSk6CisgICAgICAgICIiIlJldHVybnMgZm9ybWF0dGVkIHBlcmNlbnQgdmFsdWUgZm9yIHRoZSBjdXJyZW50IGxvY2FsZS4gRXhhbXBsZTo6CisKKyAgICAgICAgICAgID4+PiBmb3JtYXRfcGVyY2VudCgwLjM0LCBsb2NhbGU9J2VuX1VTJykKKyAgICAgICAgICAgIHUnMzQlJworICAgICAgICAgICAgPj4+IGZvcm1hdF9wZXJjZW50KDI1LjEyMzQsIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgdScyLDUxMiUnCisgICAgICAgICAgICA+Pj4gZm9ybWF0X3BlcmNlbnQoMjUuMTIzNCwgbG9jYWxlPSdzdl9TRScpCisgICAgICAgICAgICB1JzJcXHhhMDUxMlxceGEwJScKKworICAgICAgICBUaGUgZm9ybWF0IHBhdHRlcm4gY2FuIGFsc28gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHk6OgorCisgICAgICAgICAgICA+Pj4gZm9ybWF0X3BlcmNlbnQoMjUuMTIzNCwgdScjLCMjMFx1MjAzMCcsIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgdScyNSwxMjNcdTIwMzAnCisKKyAgICAgICAgOnBhcmFtIG51bWJlcjoKKyAgICAgICAgICAgIFRoZSBwZXJjZW50IG51bWJlciB0byBmb3JtYXQKKyAgICAgICAgOnBhcmFtIGZvcm1hdDoKKyAgICAgICAgICAgIE5vdGF0aW9uIGZvcm1hdC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBUaGUgZm9ybWF0dGVkIHBlcmNlbnQgbnVtYmVyLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG51bWJlcnMuZm9ybWF0X3BlcmNlbnQobnVtYmVyLCBmb3JtYXQ9Zm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU9c2VsZi5sb2NhbGUpCisKKyAgICBkZWYgZm9ybWF0X3NjaWVudGlmaWMoc2VsZiwgbnVtYmVyLCBmb3JtYXQ9Tm9uZSk6CisgICAgICAgICIiIlJldHVybnMgdmFsdWUgZm9ybWF0dGVkIGluIHNjaWVudGlmaWMgbm90YXRpb24gZm9yIHRoZSBjdXJyZW50CisgICAgICAgIGxvY2FsZS4gRXhhbXBsZTo6CisKKyAgICAgICAgICAgID4+PiBmb3JtYXRfc2NpZW50aWZpYygxMDAwMCwgbG9jYWxlPSdlbl9VUycpCisgICAgICAgICAgICB1JzFFNCcKKworICAgICAgICBUaGUgZm9ybWF0IHBhdHRlcm4gY2FuIGFsc28gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHk6OgorCisgICAgICAgICAgICA+Pj4gZm9ybWF0X3NjaWVudGlmaWMoMTIzNDU2NywgdScjIzBFMDAnLCBsb2NhbGU9J2VuX1VTJykKKyAgICAgICAgICAgIHUnMS4yM0UwNicKKworICAgICAgICA6cGFyYW0gbnVtYmVyOgorICAgICAgICAgICAgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICAgIDpwYXJhbSBmb3JtYXQ6CisgICAgICAgICAgICBOb3RhdGlvbiBmb3JtYXQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVmFsdWUgZm9ybWF0dGVkIGluIHNjaWVudGlmaWMgbm90YXRpb24uCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbnVtYmVycy5mb3JtYXRfc2NpZW50aWZpYyhudW1iZXIsIGZvcm1hdD1mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZT1zZWxmLmxvY2FsZSkKKworICAgIGRlZiBwYXJzZV9kYXRlKHNlbGYsIHN0cmluZyk6CisgICAgICAgICIiIlBhcnNlcyBhIGRhdGUgZnJvbSBhIHN0cmluZy4KKworICAgICAgICBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlIGRhdGUgZm9ybWF0IGZvciB0aGUgbG9jYWxlIGFzIGEgaGludCB0bworICAgICAgICBkZXRlcm1pbmUgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBkYXRlIGZpZWxkcyBhcHBlYXIgaW4gdGhlIHN0cmluZy4KKyAgICAgICAgRXhhbXBsZTo6CisKKyAgICAgICAgICAgID4+PiBwYXJzZV9kYXRlKCc0LzEvMDQnLCBsb2NhbGU9J2VuX1VTJykKKyAgICAgICAgICAgIGRhdGV0aW1lLmRhdGUoMjAwNCwgNCwgMSkKKyAgICAgICAgICAgID4+PiBwYXJzZV9kYXRlKCcwMS4wNC4yMDA0JywgbG9jYWxlPSdkZV9ERScpCisgICAgICAgICAgICBkYXRldGltZS5kYXRlKDIwMDQsIDQsIDEpCisKKyAgICAgICAgOnBhcmFtIHN0cmluZzoKKyAgICAgICAgICAgIFRoZSBzdHJpbmcgY29udGFpbmluZyB0aGUgZGF0ZS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBUaGUgcGFyc2VkIGRhdGUgb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGVzLnBhcnNlX2RhdGUoc3RyaW5nLCBsb2NhbGU9c2VsZi5sb2NhbGUpCisKKyAgICBkZWYgcGFyc2VfZGF0ZXRpbWUoc2VsZiwgc3RyaW5nKToKKyAgICAgICAgIiIiUGFyc2VzIGEgZGF0ZSBhbmQgdGltZSBmcm9tIGEgc3RyaW5nLgorCisgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgZGF0ZSBhbmQgdGltZSBmb3JtYXRzIGZvciB0aGUgbG9jYWxlIGFzIGEgaGludAorICAgICAgICB0byBkZXRlcm1pbmUgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSB0aW1lIGZpZWxkcyBhcHBlYXIgaW4gdGhlIHN0cmluZy4KKworICAgICAgICA6cGFyYW0gc3RyaW5nOgorICAgICAgICAgICAgVGhlIHN0cmluZyBjb250YWluaW5nIHRoZSBkYXRlIGFuZCB0aW1lLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBwYXJzZWQgZGF0ZXRpbWUgb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGVzLnBhcnNlX2RhdGV0aW1lKHN0cmluZywgbG9jYWxlPXNlbGYubG9jYWxlKQorCisgICAgZGVmIHBhcnNlX3RpbWUoc2VsZiwgc3RyaW5nKToKKyAgICAgICAgIiIiUGFyc2VzIGEgdGltZSBmcm9tIGEgc3RyaW5nLgorCisgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgdGltZSBmb3JtYXQgZm9yIHRoZSBsb2NhbGUgYXMgYSBoaW50IHRvCisgICAgICAgIGRldGVybWluZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIHRpbWUgZmllbGRzIGFwcGVhciBpbiB0aGUgc3RyaW5nLgorICAgICAgICBFeGFtcGxlOjoKKworICAgICAgICAgICAgPj4+IHBhcnNlX3RpbWUoJzE1OjMwOjAwJywgbG9jYWxlPSdlbl9VUycpCisgICAgICAgICAgICBkYXRldGltZS50aW1lKDE1LCAzMCkKKworICAgICAgICA6cGFyYW0gc3RyaW5nOgorICAgICAgICAgICAgVGhlIHN0cmluZyBjb250YWluaW5nIHRoZSB0aW1lLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBwYXJzZWQgdGltZSBvYmplY3QuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gZGF0ZXMucGFyc2VfdGltZShzdHJpbmcsIGxvY2FsZT1zZWxmLmxvY2FsZSkKKworICAgIGRlZiBwYXJzZV9udW1iZXIoc2VsZiwgc3RyaW5nKToKKyAgICAgICAgIiIiUGFyc2VzIGxvY2FsaXplZCBudW1iZXIgc3RyaW5nIGludG8gYSBsb25nIGludGVnZXIuIEV4YW1wbGU6OgorCisgICAgICAgICAgICA+Pj4gcGFyc2VfbnVtYmVyKCcxLDA5OScsIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgMTA5OUwKKyAgICAgICAgICAgID4+PiBwYXJzZV9udW1iZXIoJzEuMDk5JywgbG9jYWxlPSdkZV9ERScpCisgICAgICAgICAgICAxMDk5TAorCisgICAgICAgIFdoZW4gdGhlIGdpdmVuIHN0cmluZyBjYW5ub3QgYmUgcGFyc2VkLCBhbiBleGNlcHRpb24gaXMgcmFpc2VkOjoKKworICAgICAgICAgICAgPj4+IHBhcnNlX251bWJlcignMS4wOTksOTgnLCBsb2NhbGU9J2RlJykKKyAgICAgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgTnVtYmVyRm9ybWF0RXJyb3I6ICcxLjA5OSw5OCcgaXMgbm90IGEgdmFsaWQgbnVtYmVyCisKKyAgICAgICAgOnBhcmFtIHN0cmluZzoKKyAgICAgICAgICAgIFRoZSBzdHJpbmcgdG8gcGFyc2UuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVGhlIHBhcnNlZCBudW1iZXIuCisgICAgICAgIDpyYWlzZXM6CisgICAgICAgICAgICBgYE51bWJlckZvcm1hdEVycm9yYGAgaWYgdGhlIHN0cmluZyBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhCisgICAgICAgICAgICBudW1iZXIuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbnVtYmVycy5wYXJzZV9udW1iZXIoc3RyaW5nLCBsb2NhbGU9c2VsZi5sb2NhbGUpCisKKyAgICBkZWYgcGFyc2VfZGVjaW1hbChzZWxmLCBzdHJpbmcpOgorICAgICAgICAiIiJQYXJzZXMgbG9jYWxpemVkIGRlY2ltYWwgc3RyaW5nIGludG8gYSBmbG9hdC4gRXhhbXBsZTo6CisKKyAgICAgICAgICAgID4+PiBwYXJzZV9kZWNpbWFsKCcxLDA5OS45OCcsIGxvY2FsZT0nZW5fVVMnKQorICAgICAgICAgICAgMTA5OS45OAorICAgICAgICAgICAgPj4+IHBhcnNlX2RlY2ltYWwoJzEuMDk5LDk4JywgbG9jYWxlPSdkZScpCisgICAgICAgICAgICAxMDk5Ljk4CisKKyAgICAgICAgV2hlbiB0aGUgZ2l2ZW4gc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWQsIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQ6OgorCisgICAgICAgICAgICA+Pj4gcGFyc2VfZGVjaW1hbCgnMiwxMDksOTk4JywgbG9jYWxlPSdkZScpCisgICAgICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgIE51bWJlckZvcm1hdEVycm9yOiAnMiwxMDksOTk4JyBpcyBub3QgYSB2YWxpZCBkZWNpbWFsIG51bWJlcgorCisgICAgICAgIDpwYXJhbSBzdHJpbmc6CisgICAgICAgICAgICBUaGUgc3RyaW5nIHRvIHBhcnNlLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBwYXJzZWQgZGVjaW1hbCBudW1iZXIuCisgICAgICAgIDpyYWlzZXM6CisgICAgICAgICAgICBgYE51bWJlckZvcm1hdEVycm9yYGAgaWYgdGhlIHN0cmluZyBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhCisgICAgICAgICAgICBkZWNpbWFsIG51bWJlci4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBudW1iZXJzLnBhcnNlX2RlY2ltYWwoc3RyaW5nLCBsb2NhbGU9c2VsZi5sb2NhbGUpCisKKyAgICBkZWYgZ2V0X3RpbWV6b25lX2xvY2F0aW9uKHNlbGYsIGR0X29yX3R6aW5mbyk6CisgICAgICAgICIiIlJldHVybnMgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gdGltZXpvbmUgdXNpbmcgImxvY2F0aW9uCisgICAgICAgIGZvcm1hdCIuCisKKyAgICAgICAgVGhlIHJlc3VsdCBkZXBlbmRzIG9uIGJvdGggdGhlIGxvY2FsIGRpc3BsYXkgbmFtZSBvZiB0aGUgY291bnRyeSBhbmQKKyAgICAgICAgdGhlIGNpdHkgYXNzb2NhaXRlZCB3aXRoIHRoZSB0aW1lIHpvbmU6OgorCisgICAgICAgICAgICA+Pj4gZnJvbSBweXR6IGltcG9ydCB0aW1lem9uZQorICAgICAgICAgICAgPj4+IHR6ID0gdGltZXpvbmUoJ0FtZXJpY2EvU3RfSm9obnMnKQorICAgICAgICAgICAgPj4+IGdldF90aW1lem9uZV9sb2NhdGlvbih0eiwgbG9jYWxlPSdkZV9ERScpCisgICAgICAgICAgICB1IkthbmFkYSAoU3QuIEpvaG4ncykiCisgICAgICAgICAgICA+Pj4gdHogPSB0aW1lem9uZSgnQW1lcmljYS9NZXhpY29fQ2l0eScpCisgICAgICAgICAgICA+Pj4gZ2V0X3RpbWV6b25lX2xvY2F0aW9uKHR6LCBsb2NhbGU9J2RlX0RFJykKKyAgICAgICAgICAgIHUnTWV4aWtvIChNZXhpa28tU3RhZHQpJworCisgICAgICAgIElmIHRoZSB0aW1lem9uZSBpcyBhc3NvY2lhdGVkIHdpdGggYSBjb3VudHJ5IHRoYXQgdXNlcyBvbmx5IGEgc2luZ2xlCisgICAgICAgIHRpbWV6b25lLCBqdXN0IHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lIGlzIHJldHVybmVkOjoKKworICAgICAgICAgICAgPj4+IHR6ID0gdGltZXpvbmUoJ0V1cm9wZS9CZXJsaW4nKQorICAgICAgICAgICAgPj4+IGdldF90aW1lem9uZV9uYW1lKHR6LCBsb2NhbGU9J2RlX0RFJykKKyAgICAgICAgICAgIHUnRGV1dHNjaGxhbmQnCisKKyAgICAgICAgOnBhcmFtIGR0X29yX3R6aW5mbzoKKyAgICAgICAgICAgIFRoZSBgYGRhdGV0aW1lYGAgb3IgYGB0emluZm9gYCBvYmplY3QgdGhhdCBkZXRlcm1pbmVzCisgICAgICAgICAgICB0aGUgdGltZXpvbmU7IGlmIE5vbmUsIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaW4gVVRDIGlzIGFzc3VtZWQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgVGhlIGxvY2FsaXplZCB0aW1lem9uZSBuYW1lIHVzaW5nIGxvY2F0aW9uIGZvcm1hdC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBkYXRlcy5nZXRfdGltZXpvbmVfbmFtZShkdF9vcl90emluZm8sIGxvY2FsZT1zZWxmLmxvY2FsZSkKKworCitkZWYgZ2V0dGV4dChzdHJpbmcsICoqdmFyaWFibGVzKToKKyAgICAiIiJTZWUgOm1ldGg6YEkxOG4uZ2V0dGV4dGAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkuZ2V0dGV4dChzdHJpbmcsICoqdmFyaWFibGVzKQorCisKK2RlZiBuZ2V0dGV4dChzaW5ndWxhciwgcGx1cmFsLCBuLCAqKnZhcmlhYmxlcyk6CisgICAgIiIiU2VlIDptZXRoOmBJMThuLm5nZXR0ZXh0YC4iIiIKKyAgICByZXR1cm4gZ2V0X2kxOG4oKS5uZ2V0dGV4dChzaW5ndWxhciwgcGx1cmFsLCBuLCAqKnZhcmlhYmxlcykKKworCitkZWYgdG9fbG9jYWxfdGltZXpvbmUoZGF0ZXRpbWUpOgorICAgICIiIlNlZSA6bWV0aDpgSTE4bi50b19sb2NhbF90aW1lem9uZWAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkudG9fbG9jYWxfdGltZXpvbmUoZGF0ZXRpbWUpCisKKworZGVmIHRvX3V0YyhkYXRldGltZSk6CisgICAgIiIiU2VlIDptZXRoOmBJMThuLnRvX3V0Y2AuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkudG9fdXRjKGRhdGV0aW1lKQorCisKK2RlZiBmb3JtYXRfZGF0ZShkYXRlPU5vbmUsIGZvcm1hdD1Ob25lLCByZWJhc2U9VHJ1ZSk6CisgICAgIiIiU2VlIDptZXRoOmBJMThuLmZvcm1hdF9kYXRlYC4iIiIKKyAgICByZXR1cm4gZ2V0X2kxOG4oKS5mb3JtYXRfZGF0ZShkYXRlLCBmb3JtYXQsIHJlYmFzZSkKKworCitkZWYgZm9ybWF0X2RhdGV0aW1lKGRhdGV0aW1lPU5vbmUsIGZvcm1hdD1Ob25lLCByZWJhc2U9VHJ1ZSk6CisgICAgIiIiU2VlIDptZXRoOmBJMThuLmZvcm1hdF9kYXRldGltZWAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkuZm9ybWF0X2RhdGV0aW1lKGRhdGV0aW1lLCBmb3JtYXQsIHJlYmFzZSkKKworCitkZWYgZm9ybWF0X3RpbWUodGltZT1Ob25lLCBmb3JtYXQ9Tm9uZSwgcmViYXNlPVRydWUpOgorICAgICIiIlNlZSA6bWV0aDpgSTE4bi5mb3JtYXRfdGltZWAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkuZm9ybWF0X3RpbWUodGltZSwgZm9ybWF0LCByZWJhc2UpCisKKworZGVmIGZvcm1hdF90aW1lZGVsdGEoZGF0ZXRpbWVfb3JfdGltZWRlbHRhLCBncmFudWxhcml0eT0nc2Vjb25kJywKKyAgICB0aHJlc2hvbGQ9Ljg1KToKKyAgICAiIiJTZWUgOm1ldGg6YEkxOG4uZm9ybWF0X3RpbWVkZWx0YWAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkuZm9ybWF0X3RpbWVkZWx0YShkYXRldGltZV9vcl90aW1lZGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudWxhcml0eSwgdGhyZXNob2xkKQorCisKK2RlZiBmb3JtYXRfbnVtYmVyKG51bWJlcik6CisgICAgIiIiU2VlIDptZXRoOmBJMThuLmZvcm1hdF9udW1iZXJgLiIiIgorICAgIHJldHVybiBnZXRfaTE4bigpLmZvcm1hdF9udW1iZXIobnVtYmVyKQorCisKK2RlZiBmb3JtYXRfZGVjaW1hbChudW1iZXIsIGZvcm1hdD1Ob25lKToKKyAgICAiIiJTZWUgOm1ldGg6YEkxOG4uZm9ybWF0X2RlY2ltYWxgLiIiIgorICAgIHJldHVybiBnZXRfaTE4bigpLmZvcm1hdF9kZWNpbWFsKG51bWJlciwgZm9ybWF0KQorCisKK2RlZiBmb3JtYXRfY3VycmVuY3kobnVtYmVyLCBjdXJyZW5jeSwgZm9ybWF0PU5vbmUpOgorICAgICIiIlNlZSA6bWV0aDpgSTE4bi5mb3JtYXRfY3VycmVuY3lgLiIiIgorICAgIHJldHVybiBnZXRfaTE4bigpLmZvcm1hdF9jdXJyZW5jeShudW1iZXIsIGN1cnJlbmN5LCBmb3JtYXQpCisKKworZGVmIGZvcm1hdF9wZXJjZW50KG51bWJlciwgZm9ybWF0PU5vbmUpOgorICAgICIiIlNlZSA6bWV0aDpgSTE4bi5mb3JtYXRfcGVyY2VudGAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkuZm9ybWF0X3BlcmNlbnQobnVtYmVyLCBmb3JtYXQpCisKKworZGVmIGZvcm1hdF9zY2llbnRpZmljKG51bWJlciwgZm9ybWF0PU5vbmUpOgorICAgICIiIlNlZSA6bWV0aDpgSTE4bi5mb3JtYXRfc2NpZW50aWZpY2AuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkuZm9ybWF0X3NjaWVudGlmaWMobnVtYmVyLCBmb3JtYXQpCisKKworZGVmIHBhcnNlX2RhdGUoc3RyaW5nKToKKyAgICAiIiJTZWUgOm1ldGg6YEkxOG4ucGFyc2VfZGF0ZWAiIiIKKyAgICByZXR1cm4gZ2V0X2kxOG4oKS5wYXJzZV9kYXRlKHN0cmluZykKKworCitkZWYgcGFyc2VfZGF0ZXRpbWUoc3RyaW5nKToKKyAgICAiIiJTZWUgOm1ldGg6YEkxOG4ucGFyc2VfZGF0ZXRpbWVgLiIiIgorICAgIHJldHVybiBnZXRfaTE4bigpLnBhcnNlX2RhdGV0aW1lKHN0cmluZykKKworCitkZWYgcGFyc2VfdGltZShzdHJpbmcpOgorICAgICIiIlNlZSA6bWV0aDpgSTE4bi5wYXJzZV90aW1lYC4iIiIKKyAgICByZXR1cm4gZ2V0X2kxOG4oKS5wYXJzZV90aW1lKHN0cmluZykKKworCitkZWYgcGFyc2VfbnVtYmVyKHN0cmluZyk6CisgICAgIiIiU2VlIDptZXRoOmBJMThuLnBhcnNlX251bWJlcmAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkucGFyc2VfbnVtYmVyKHN0cmluZykKKworCitkZWYgcGFyc2VfZGVjaW1hbChzdHJpbmcpOgorICAgICIiIlNlZSA6bWV0aDpgSTE4bi5wYXJzZV9kZWNpbWFsYC4iIiIKKyAgICByZXR1cm4gZ2V0X2kxOG4oKS5wYXJzZV9kZWNpbWFsKHN0cmluZykKKworCitkZWYgZ2V0X3RpbWV6b25lX2xvY2F0aW9uKGR0X29yX3R6aW5mbyk6CisgICAgIiIiU2VlIDptZXRoOmBJMThuLmdldF90aW1lem9uZV9sb2NhdGlvbmAuIiIiCisgICAgcmV0dXJuIGdldF9pMThuKCkuZ2V0X3RpbWV6b25lX2xvY2F0aW9uKGR0X29yX3R6aW5mbykKKworCitkZWYgbGF6eV9nZXR0ZXh0KHN0cmluZywgKip2YXJpYWJsZXMpOgorICAgICIiIkEgbGF6eSB2ZXJzaW9uIG9mIDpmdW5jOmBnZXR0ZXh0YC4KKworICAgIDpwYXJhbSBzdHJpbmc6CisgICAgICAgIFRoZSBzdHJpbmcgdG8gYmUgdHJhbnNsYXRlZC4KKyAgICA6cGFyYW0gdmFyaWFibGVzOgorICAgICAgICBWYXJpYWJsZXMgdG8gZm9ybWF0IHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgOnJldHVybnM6CisgICAgICAgIEEgYGBiYWJlbC5zdXBwb3J0LkxhenlQcm94eWBgIG9iamVjdCB0aGF0IHdoZW4gYWNjZXNzZWQgdHJhbnNsYXRlcworICAgICAgICB0aGUgc3RyaW5nLgorICAgICIiIgorICAgIHJldHVybiBzdXBwb3J0LkxhenlQcm94eShnZXR0ZXh0LCBzdHJpbmcsICoqdmFyaWFibGVzKQorCisKKyMgQWxpYXNlcy4KK18gPSBnZXR0ZXh0CitfbGF6eSA9IGxhenlfZ2V0dGV4dAorCisKKyMgRmFjdG9yaWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisjOiBLZXkgdXNlZCB0byBzdG9yZSA6Y2xhc3M6YEkxOG5TdG9yZWAgaW4gdGhlIGFwcCByZWdpc3RyeS4KK19zdG9yZV9yZWdpc3RyeV9rZXkgPSAnd2ViYXBwMl9leHRyYXMuaTE4bi5JMThuU3RvcmUnCisjOiBLZXkgdXNlZCB0byBzdG9yZSA6Y2xhc3M6YEkxOG5gIGluIHRoZSByZXF1ZXN0IHJlZ2lzdHJ5LgorX2kxOG5fcmVnaXN0cnlfa2V5ID0gJ3dlYmFwcDJfZXh0cmFzLmkxOG4uSTE4bicKKworCitkZWYgZ2V0X3N0b3JlKGZhY3Rvcnk9STE4blN0b3JlLCBrZXk9X3N0b3JlX3JlZ2lzdHJ5X2tleSwgYXBwPU5vbmUpOgorICAgICIiIlJldHVybnMgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBJMThuU3RvcmVgIGZyb20gdGhlIGFwcCByZWdpc3RyeS4KKworICAgIEl0J2xsIHRyeSB0byBnZXQgaXQgZnJvbSB0aGUgY3VycmVudCBhcHAgcmVnaXN0cnksIGFuZCBpZiBpdCBpcyBub3QKKyAgICByZWdpc3RlcmVkIGl0J2xsIGJlIGluc3RhbnRpYXRlZCBhbmQgcmVnaXN0ZXJlZC4gQSBzZWNvbmQgY2FsbCB0byB0aGlzCisgICAgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIHNhbWUgaW5zdGFuY2UuCisKKyAgICA6cGFyYW0gZmFjdG9yeToKKyAgICAgICAgVGhlIGNhbGxhYmxlIHVzZWQgdG8gYnVpbGQgYW5kIHJlZ2lzdGVyIHRoZSBpbnN0YW5jZSBpZiBpdCBpcyBub3QgeWV0CisgICAgICAgIHJlZ2lzdGVyZWQuIFRoZSBkZWZhdWx0IGlzIHRoZSBjbGFzcyA6Y2xhc3M6YEkxOG5TdG9yZWAgaXRzZWxmLgorICAgIDpwYXJhbSBrZXk6CisgICAgICAgIFRoZSBrZXkgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UgaW4gdGhlIHJlZ2lzdHJ5LiBBIGRlZmF1bHQgaXMgdXNlZAorICAgICAgICBpZiBpdCBpcyBub3Qgc2V0LgorICAgIDpwYXJhbSBhcHA6CisgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbmAgaW5zdGFuY2UgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UuCisgICAgICAgIFRoZSBhY3RpdmUgYXBwIGlzIHVzZWQgaWYgaXQgaXMgbm90IHNldC4KKyAgICAiIiIKKyAgICBhcHAgPSBhcHAgb3Igd2ViYXBwMi5nZXRfYXBwKCkKKyAgICBzdG9yZSA9IGFwcC5yZWdpc3RyeS5nZXQoa2V5KQorICAgIGlmIG5vdCBzdG9yZToKKyAgICAgICAgc3RvcmUgPSBhcHAucmVnaXN0cnlba2V5XSA9IGZhY3RvcnkoYXBwKQorCisgICAgcmV0dXJuIHN0b3JlCisKKworZGVmIHNldF9zdG9yZShzdG9yZSwga2V5PV9zdG9yZV9yZWdpc3RyeV9rZXksIGFwcD1Ob25lKToKKyAgICAiIiJTZXRzIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgSTE4blN0b3JlYCBpbiB0aGUgYXBwIHJlZ2lzdHJ5LgorCisgICAgOnBhcmFtIHN0b3JlOgorICAgICAgICBBbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YEkxOG5TdG9yZWAuCisgICAgOnBhcmFtIGtleToKKyAgICAgICAgVGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSByZWdpc3RyeS4gQSBkZWZhdWx0CisgICAgICAgIGlzIHVzZWQgaWYgaXQgaXMgbm90IHNldC4KKyAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uYCBpbnN0YW5jZSB1c2VkIHRvIHJldHJpZXZlIHRoZQorICAgICAgICBpbnN0YW5jZS4gVGhlIGFjdGl2ZSBhcHAgaXMgdXNlZCBpZiBpdCBpcyBub3Qgc2V0LgorICAgICIiIgorICAgIGFwcCA9IGFwcCBvciB3ZWJhcHAyLmdldF9hcHAoKQorICAgIGFwcC5yZWdpc3RyeVtrZXldID0gc3RvcmUKKworCitkZWYgZ2V0X2kxOG4oZmFjdG9yeT1JMThuLCBrZXk9X2kxOG5fcmVnaXN0cnlfa2V5LCByZXF1ZXN0PU5vbmUpOgorICAgICIiIlJldHVybnMgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBJMThuYCBmcm9tIHRoZSByZXF1ZXN0IHJlZ2lzdHJ5LgorCisgICAgSXQnbGwgdHJ5IHRvIGdldCBpdCBmcm9tIHRoZSBjdXJyZW50IHJlcXVlc3QgcmVnaXN0cnksIGFuZCBpZiBpdCBpcyBub3QKKyAgICByZWdpc3RlcmVkIGl0J2xsIGJlIGluc3RhbnRpYXRlZCBhbmQgcmVnaXN0ZXJlZC4gQSBzZWNvbmQgY2FsbCB0byB0aGlzCisgICAgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIHNhbWUgaW5zdGFuY2UuCisKKyAgICA6cGFyYW0gZmFjdG9yeToKKyAgICAgICAgVGhlIGNhbGxhYmxlIHVzZWQgdG8gYnVpbGQgYW5kIHJlZ2lzdGVyIHRoZSBpbnN0YW5jZSBpZiBpdCBpcyBub3QgeWV0CisgICAgICAgIHJlZ2lzdGVyZWQuIFRoZSBkZWZhdWx0IGlzIHRoZSBjbGFzcyA6Y2xhc3M6YEkxOG5gIGl0c2VsZi4KKyAgICA6cGFyYW0ga2V5OgorICAgICAgICBUaGUga2V5IHVzZWQgdG8gc3RvcmUgdGhlIGluc3RhbmNlIGluIHRoZSByZWdpc3RyeS4gQSBkZWZhdWx0IGlzIHVzZWQKKyAgICAgICAgaWYgaXQgaXMgbm90IHNldC4KKyAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcDIuUmVxdWVzdGAgaW5zdGFuY2UgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UuIFRoZQorICAgICAgICBhY3RpdmUgcmVxdWVzdCBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgIiIiCisgICAgcmVxdWVzdCA9IHJlcXVlc3Qgb3Igd2ViYXBwMi5nZXRfcmVxdWVzdCgpCisgICAgaTE4biA9IHJlcXVlc3QucmVnaXN0cnkuZ2V0KGtleSkKKyAgICBpZiBub3QgaTE4bjoKKyAgICAgICAgaTE4biA9IHJlcXVlc3QucmVnaXN0cnlba2V5XSA9IGZhY3RvcnkocmVxdWVzdCkKKworICAgIHJldHVybiBpMThuCisKKworZGVmIHNldF9pMThuKGkxOG4sIGtleT1faTE4bl9yZWdpc3RyeV9rZXksIHJlcXVlc3Q9Tm9uZSk6CisgICAgIiIiU2V0cyBhbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YEkxOG5gIGluIHRoZSByZXF1ZXN0IHJlZ2lzdHJ5LgorCisgICAgOnBhcmFtIHN0b3JlOgorICAgICAgICBBbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YEkxOG5gLgorICAgIDpwYXJhbSBrZXk6CisgICAgICAgIFRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgcmVnaXN0cnkuIEEgZGVmYXVsdAorICAgICAgICBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLlJlcXVlc3RgIGluc3RhbmNlIHVzZWQgdG8gcmV0cmlldmUgdGhlIGluc3RhbmNlLiBUaGUKKyAgICAgICAgYWN0aXZlIHJlcXVlc3QgaXMgdXNlZCBpZiBpdCBpcyBub3Qgc2V0LgorICAgICIiIgorICAgIHJlcXVlc3QgPSByZXF1ZXN0IG9yIHdlYmFwcDIuZ2V0X3JlcXVlc3QoKQorICAgIHJlcXVlc3QucmVnaXN0cnlba2V5XSA9IGkxOG4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2ppbmphMi5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2ppbmphMi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmU2ZjY2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvamluamEyLnB5CkBAIC0wLDAgKzEsMjMwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMuamluamEyCisgICAgPT09PT09PT09PT09PT09PT09PT09CisKKyAgICBKaW5qYTIgdGVtcGxhdGUgc3VwcG9ydCBmb3Igd2ViYXBwMi4KKworICAgIExlYXJuIG1vcmUgYWJvdXQgSmluamEyOiBodHRwOi8vamluamEucG9jb28ub3JnLworCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitpbXBvcnQgamluamEyCisKK2ltcG9ydCB3ZWJhcHAyCisKKyM6IERlZmF1bHQgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRoaXMgbW9kdWxlLiBLZXlzIGFyZToKKyM6CisjOiB0ZW1wbGF0ZV9wYXRoCisjOiAgICAgRGlyZWN0b3J5IGZvciB0ZW1wbGF0ZXMuIERlZmF1bHQgaXMgYHRlbXBsYXRlc2AuCisjOgorIzogY29tcGlsZWRfcGF0aAorIzogICAgIFRhcmdldCBmb3IgY29tcGlsZWQgdGVtcGxhdGVzLiBJZiBzZXQsIHVzZXMgdGhlIGxvYWRlciBmb3IgY29tcGlsZWQKKyM6ICAgICB0ZW1wbGF0ZXMgaW4gcHJvZHVjdGlvbi4gSWYgaXQgZW5kcyB3aXRoIGEgJy56aXAnIGl0IHdpbGwgYmUgdHJlYXRlZAorIzogICAgIGFzIGEgemlwIGZpbGUuIERlZmF1bHQgaXMgTm9uZS4KKyM6CisjOiBmb3JjZV9jb21waWxlZAorIzogICAgIEZvcmNlcyB0aGUgdXNlIG9mIGNvbXBpbGVkIHRlbXBsYXRlcyBldmVuIGluIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIuCisjOgorIzogZW52aXJvbm1lbnRfYXJncworIzogICAgIEtleXdvcmQgYXJndW1lbnRzIHVzZWQgdG8gaW5zdGFudGlhdGUgdGhlIEppbmphMiBlbnZpcm9ubWVudC4gQnkKKyM6ICAgICBkZWZhdWx0IGF1dG9lc2NhcGluZyBpcyBlbmFibGVkIGFuZCB0d28gZXh0ZW5zaW9ucyBhcmUgc2V0OgorIzogICAgIGBgamluamEyLmV4dC5hdXRvZXNjYXBlYGAgYW5kIGBgamluamEyLmV4dC53aXRoX2BgLiBGb3IgcHJvZHVjdGlvbiBpdAorIzogICAgIG1heSBiZSBhIGdvb2QgaWRlYSB0byBzZXQgJ2F1dG9fcmVsb2FkJyB0byBGYWxzZSAtLSB3ZSBkb24ndCBuZWVkIHRvCisjOiAgICAgY2hlY2sgaWYgdGVtcGxhdGVzIGNoYW5nZWQgYWZ0ZXIgZGVwbG95ZWQuCisjOgorIzogZ2xvYmFscworIzogICAgIEV4dHJhIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRoZSBKaW5qYTIgZW52aXJvbm1lbnQuCisjOgorIzogZmlsdGVycworIzogICAgIEV4dHJhIGZpbHRlcnMgZm9yIHRoZSBKaW5qYTIgZW52aXJvbm1lbnQuCitkZWZhdWx0X2NvbmZpZyA9IHsKKyAgICAndGVtcGxhdGVfcGF0aCc6ICd0ZW1wbGF0ZXMnLAorICAgICdjb21waWxlZF9wYXRoJzogTm9uZSwKKyAgICAnZm9yY2VfY29tcGlsZWQnOiBGYWxzZSwKKyAgICAnZW52aXJvbm1lbnRfYXJncyc6IHsKKyAgICAgICAgJ2F1dG9lc2NhcGUnOiBUcnVlLAorICAgICAgICAnZXh0ZW5zaW9ucyc6IFsKKyAgICAgICAgICAgICdqaW5qYTIuZXh0LmF1dG9lc2NhcGUnLAorICAgICAgICAgICAgJ2ppbmphMi5leHQud2l0aF8nLAorICAgICAgICBdLAorICAgIH0sCisgICAgJ2dsb2JhbHMnOiBOb25lLAorICAgICdmaWx0ZXJzJzogTm9uZSwKK30KKworCitjbGFzcyBKaW5qYTIob2JqZWN0KToKKyAgICAiIiJXcmFwcGVyIGZvciBjb25maWd1cmFibGUgYW5kIGNhY2hlZCBKaW5qYTIgZW52aXJvbm1lbnQuCisKKyAgICBUbyB1c2VkIGl0LCBzZXQgaXQgYXMgYSBjYWNoZWQgcHJvcGVydHkgaW4gYSBiYXNlIGBSZXF1ZXN0SGFuZGxlcmA6OgorCisgICAgICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICAgICAgZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgamluamEyCisKKyAgICAgICAgY2xhc3MgQmFzZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisKKyAgICAgICAgICAgIEB3ZWJhcHAyLmNhY2hlZF9wcm9wZXJ0eQorICAgICAgICAgICAgZGVmIGppbmphMihzZWxmKToKKyAgICAgICAgICAgICAgICAjIFJldHVybnMgYSBKaW5qYTIgcmVuZGVyZXIgY2FjaGVkIGluIHRoZSBhcHAgcmVnaXN0cnkuCisgICAgICAgICAgICAgICAgcmV0dXJuIGppbmphMi5nZXRfamluamEyKGFwcD1zZWxmLmFwcCkKKworICAgICAgICAgICAgZGVmIHJlbmRlcl9yZXNwb25zZShzZWxmLCBfdGVtcGxhdGUsICoqY29udGV4dCk6CisgICAgICAgICAgICAgICAgIyBSZW5kZXJzIGEgdGVtcGxhdGUgYW5kIHdyaXRlcyB0aGUgcmVzdWx0IHRvIHRoZSByZXNwb25zZS4KKyAgICAgICAgICAgICAgICBydiA9IHNlbGYuamluamEyLnJlbmRlcl90ZW1wbGF0ZShfdGVtcGxhdGUsICoqY29udGV4dCkKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLndyaXRlKHJ2KQorCisgICAgVGhlbiBleHRlbmRlZCBoYW5kbGVycyBjYW4gcmVuZGVyIHRlbXBsYXRlcyBkaXJlY3RseTo6CisKKyAgICAgICAgY2xhc3MgTXlIYW5kbGVyKEJhc2VIYW5kbGVyKToKKyAgICAgICAgICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgICAgICAgICAgY29udGV4dCA9IHsnbWVzc2FnZSc6ICdIZWxsbywgd29ybGQhJ30KKyAgICAgICAgICAgICAgICBzZWxmLnJlbmRlcl9yZXNwb25zZSgnbXlfdGVtcGxhdGUuaHRtbCcsICoqY29udGV4dCkKKyAgICAiIiIKKworICAgICM6IENvbmZpZ3VyYXRpb24ga2V5LgorICAgIGNvbmZpZ19rZXkgPSBfX25hbWVfXworCisgICAgIzogTG9hZGVkIGNvbmZpZ3VyYXRpb24uCisgICAgY29uZmlnID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFwcCwgY29uZmlnPU5vbmUpOgorICAgICAgICAiIiJJbml0aWFsaXplcyB0aGUgSmluamEyIG9iamVjdC4KKworICAgICAgICA6cGFyYW0gYXBwOgorICAgICAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uYCBpbnN0YW5jZS4KKyAgICAgICAgOnBhcmFtIGNvbmZpZzoKKyAgICAgICAgICAgIEEgZGljdGlvbmFyeSBvZiBjb25maWd1cmF0aW9uIHZhbHVlcyB0byBiZSBvdmVycmlkZGVuLiBTZWUKKyAgICAgICAgICAgIHRoZSBhdmFpbGFibGUga2V5cyBpbiA6ZGF0YTpgZGVmYXVsdF9jb25maWdgLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcgPSBhcHAuY29uZmlnLmxvYWRfY29uZmlnKHNlbGYuY29uZmlnX2tleSwKKyAgICAgICAgICAgIGRlZmF1bHRfdmFsdWVzPWRlZmF1bHRfY29uZmlnLCB1c2VyX3ZhbHVlcz1jb25maWcsCisgICAgICAgICAgICByZXF1aXJlZF9rZXlzPU5vbmUpCisgICAgICAgIGt3YXJncyA9IGNvbmZpZ1snZW52aXJvbm1lbnRfYXJncyddLmNvcHkoKQorICAgICAgICBlbmFibGVfaTE4biA9ICdqaW5qYTIuZXh0LmkxOG4nIGluIGt3YXJncy5nZXQoJ2V4dGVuc2lvbnMnLCBbXSkKKworICAgICAgICBpZiAnbG9hZGVyJyBub3QgaW4ga3dhcmdzOgorICAgICAgICAgICAgdGVtcGxhdGVfcGF0aCA9IGNvbmZpZ1sndGVtcGxhdGVfcGF0aCddCisgICAgICAgICAgICBjb21waWxlZF9wYXRoID0gY29uZmlnWydjb21waWxlZF9wYXRoJ10KKyAgICAgICAgICAgIHVzZV9jb21waWxlZCA9IG5vdCBhcHAuZGVidWcgb3IgY29uZmlnWydmb3JjZV9jb21waWxlZCddCisKKyAgICAgICAgICAgIGlmIGNvbXBpbGVkX3BhdGggYW5kIHVzZV9jb21waWxlZDoKKyAgICAgICAgICAgICAgICAjIFVzZSBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgbG9hZGVkIGZyb20gYSBtb2R1bGUgb3IgemlwLgorICAgICAgICAgICAgICAgIGt3YXJnc1snbG9hZGVyJ10gPSBqaW5qYTIuTW9kdWxlTG9hZGVyKGNvbXBpbGVkX3BhdGgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgUGFyc2UgdGVtcGxhdGVzIGZvciBldmVyeSBuZXcgZW52aXJvbm1lbnQgaW5zdGFuY2VzLgorICAgICAgICAgICAgICAgIGt3YXJnc1snbG9hZGVyJ10gPSBqaW5qYTIuRmlsZVN5c3RlbUxvYWRlcih0ZW1wbGF0ZV9wYXRoKQorCisgICAgICAgICMgSW5pdGlhbGl6ZSB0aGUgZW52aXJvbm1lbnQuCisgICAgICAgIGVudiA9IGppbmphMi5FbnZpcm9ubWVudCgqKmt3YXJncykKKworICAgICAgICBpZiBjb25maWdbJ2dsb2JhbHMnXToKKyAgICAgICAgICAgIGVudi5nbG9iYWxzLnVwZGF0ZShjb25maWdbJ2dsb2JhbHMnXSkKKworICAgICAgICBpZiBjb25maWdbJ2ZpbHRlcnMnXToKKyAgICAgICAgICAgIGVudi5maWx0ZXJzLnVwZGF0ZShjb25maWdbJ2ZpbHRlcnMnXSkKKworICAgICAgICBpZiBlbmFibGVfaTE4bjoKKyAgICAgICAgICAgICMgSW5zdGFsbCBpMThuLgorICAgICAgICAgICAgZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgaTE4bgorICAgICAgICAgICAgZW52Lmluc3RhbGxfZ2V0dGV4dF9jYWxsYWJsZXMoCisgICAgICAgICAgICAgICAgbGFtYmRhIHg6IGkxOG4uZ2V0dGV4dCh4KSwKKyAgICAgICAgICAgICAgICBsYW1iZGEgcywgcCwgbjogaTE4bi5uZ2V0dGV4dChzLCBwLCBuKSwKKyAgICAgICAgICAgICAgICBuZXdzdHlsZT1UcnVlKQorICAgICAgICAgICAgZW52LmZpbHRlcnMudXBkYXRlKHsKKyAgICAgICAgICAgICAgICAnZm9ybWF0X2RhdGUnOiAgICAgIGkxOG4uZm9ybWF0X2RhdGUsCisgICAgICAgICAgICAgICAgJ2Zvcm1hdF90aW1lJzogICAgICBpMThuLmZvcm1hdF90aW1lLAorICAgICAgICAgICAgICAgICdmb3JtYXRfZGF0ZXRpbWUnOiAgaTE4bi5mb3JtYXRfZGF0ZXRpbWUsCisgICAgICAgICAgICAgICAgJ2Zvcm1hdF90aW1lZGVsdGEnOiBpMThuLmZvcm1hdF90aW1lZGVsdGEsCisgICAgICAgICAgICB9KQorCisgICAgICAgIHNlbGYuZW52aXJvbm1lbnQgPSBlbnYKKworICAgIGRlZiByZW5kZXJfdGVtcGxhdGUoc2VsZiwgX2ZpbGVuYW1lLCAqKmNvbnRleHQpOgorICAgICAgICAiIiJSZW5kZXJzIGEgdGVtcGxhdGUgYW5kIHJldHVybnMgYSByZXNwb25zZSBvYmplY3QuCisKKyAgICAgICAgOnBhcmFtIF9maWxlbmFtZToKKyAgICAgICAgICAgIFRoZSB0ZW1wbGF0ZSBmaWxlbmFtZSwgcmVsYXRlZCB0byB0aGUgdGVtcGxhdGVzIGRpcmVjdG9yeS4KKyAgICAgICAgOnBhcmFtIGNvbnRleHQ6CisgICAgICAgICAgICBLZXl3b3JkIGFyZ3VtZW50cyB1c2VkIGFzIHZhcmlhYmxlcyBpbiB0aGUgcmVuZGVyZWQgdGVtcGxhdGUuCisgICAgICAgICAgICBUaGVzZSB3aWxsIG92ZXJyaWRlIHZhbHVlcyBzZXQgaW4gdGhlIHJlcXVlc3QgY29udGV4dC4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIHJlbmRlcmVkIHRlbXBsYXRlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZW52aXJvbm1lbnQuZ2V0X3RlbXBsYXRlKF9maWxlbmFtZSkucmVuZGVyKCoqY29udGV4dCkKKworICAgIGRlZiBnZXRfdGVtcGxhdGVfYXR0cmlidXRlKHNlbGYsIGZpbGVuYW1lLCBhdHRyaWJ1dGUpOgorICAgICAgICAiIiJMb2FkcyBhIG1hY3JvIChvciB2YXJpYWJsZSkgYSB0ZW1wbGF0ZSBleHBvcnRzLiAgVGhpcyBjYW4gYmUgdXNlZCB0bworICAgICAgICBpbnZva2UgYSBtYWNybyBmcm9tIHdpdGhpbiBQeXRob24gY29kZS4gIElmIHlvdSBmb3IgZXhhbXBsZSBoYXZlIGEKKyAgICAgICAgdGVtcGxhdGUgbmFtZWQgYF9mb28uaHRtbGAgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOgorCisgICAgICAgIC4uIHNvdXJjZWNvZGU6OiBodG1sK2ppbmphCisKKyAgICAgICAgICAgeyUgbWFjcm8gaGVsbG8obmFtZSkgJX1IZWxsbyB7eyBuYW1lIH19IXslIGVuZG1hY3JvICV9CisKKyAgICAgICAgWW91IGNhbiBhY2Nlc3MgdGhpcyBmcm9tIFB5dGhvbiBjb2RlIGxpa2UgdGhpczo6CisKKyAgICAgICAgICAgIGhlbGxvID0gZ2V0X3RlbXBsYXRlX2F0dHJpYnV0ZSgnX2Zvby5odG1sJywgJ2hlbGxvJykKKyAgICAgICAgICAgIHJldHVybiBoZWxsbygnV29ybGQnKQorCisgICAgICAgIFRoaXMgZnVuY3Rpb24gY29tZXMgZnJvbSBgRmxhc2tgLgorCisgICAgICAgIDpwYXJhbSBmaWxlbmFtZToKKyAgICAgICAgICAgIFRoZSB0ZW1wbGF0ZSBmaWxlbmFtZS4KKyAgICAgICAgOnBhcmFtIGF0dHJpYnV0ZToKKyAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSBvZiBtYWNybyB0byBhY2NjZXNzLgorICAgICAgICAiIiIKKyAgICAgICAgdGVtcGxhdGUgPSBzZWxmLmVudmlyb25tZW50LmdldF90ZW1wbGF0ZShmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIGdldGF0dHIodGVtcGxhdGUubW9kdWxlLCBhdHRyaWJ1dGUpCisKKworIyBGYWN0b3JpZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKKyM6IEtleSB1c2VkIHRvIHN0b3JlIDpjbGFzczpgSmluamEyYCBpbiB0aGUgYXBwIHJlZ2lzdHJ5LgorX3JlZ2lzdHJ5X2tleSA9ICd3ZWJhcHAyX2V4dHJhcy5qaW5qYTIuSmluamEyJworCisKK2RlZiBnZXRfamluamEyKGZhY3Rvcnk9SmluamEyLCBrZXk9X3JlZ2lzdHJ5X2tleSwgYXBwPU5vbmUpOgorICAgICIiIlJldHVybnMgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBKaW5qYTJgIGZyb20gdGhlIGFwcCByZWdpc3RyeS4KKworICAgIEl0J2xsIHRyeSB0byBnZXQgaXQgZnJvbSB0aGUgY3VycmVudCBhcHAgcmVnaXN0cnksIGFuZCBpZiBpdCBpcyBub3QKKyAgICByZWdpc3RlcmVkIGl0J2xsIGJlIGluc3RhbnRpYXRlZCBhbmQgcmVnaXN0ZXJlZC4gQSBzZWNvbmQgY2FsbCB0byB0aGlzCisgICAgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIHNhbWUgaW5zdGFuY2UuCisKKyAgICA6cGFyYW0gZmFjdG9yeToKKyAgICAgICAgVGhlIGNhbGxhYmxlIHVzZWQgdG8gYnVpbGQgYW5kIHJlZ2lzdGVyIHRoZSBpbnN0YW5jZSBpZiBpdCBpcyBub3QgeWV0CisgICAgICAgIHJlZ2lzdGVyZWQuIFRoZSBkZWZhdWx0IGlzIHRoZSBjbGFzcyA6Y2xhc3M6YEppbmphMmAgaXRzZWxmLgorICAgIDpwYXJhbSBrZXk6CisgICAgICAgIFRoZSBrZXkgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UgaW4gdGhlIHJlZ2lzdHJ5LiBBIGRlZmF1bHQgaXMgdXNlZAorICAgICAgICBpZiBpdCBpcyBub3Qgc2V0LgorICAgIDpwYXJhbSBhcHA6CisgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbmAgaW5zdGFuY2UgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UuCisgICAgICAgIFRoZSBhY3RpdmUgYXBwIGlzIHVzZWQgaWYgaXQgaXMgbm90IHNldC4KKyAgICAiIiIKKyAgICBhcHAgPSBhcHAgb3Igd2ViYXBwMi5nZXRfYXBwKCkKKyAgICBqaW5qYTIgPSBhcHAucmVnaXN0cnkuZ2V0KGtleSkKKyAgICBpZiBub3QgamluamEyOgorICAgICAgICBqaW5qYTIgPSBhcHAucmVnaXN0cnlba2V5XSA9IGZhY3RvcnkoYXBwKQorCisgICAgcmV0dXJuIGppbmphMgorCisKK2RlZiBzZXRfamluamEyKGppbmphMiwga2V5PV9yZWdpc3RyeV9rZXksIGFwcD1Ob25lKToKKyAgICAiIiJTZXRzIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgSmluamEyYCBpbiB0aGUgYXBwIHJlZ2lzdHJ5LgorCisgICAgOnBhcmFtIHN0b3JlOgorICAgICAgICBBbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YEppbmphMmAuCisgICAgOnBhcmFtIGtleToKKyAgICAgICAgVGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSByZWdpc3RyeS4gQSBkZWZhdWx0CisgICAgICAgIGlzIHVzZWQgaWYgaXQgaXMgbm90IHNldC4KKyAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uYCBpbnN0YW5jZSB1c2VkIHRvIHJldHJpZXZlIHRoZQorICAgICAgICBpbnN0YW5jZS4gVGhlIGFjdGl2ZSBhcHAgaXMgdXNlZCBpZiBpdCBpcyBub3Qgc2V0LgorICAgICIiIgorICAgIGFwcCA9IGFwcCBvciB3ZWJhcHAyLmdldF9hcHAoKQorICAgIGFwcC5yZWdpc3RyeVtrZXldID0gamluamEyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9qc29uLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvanNvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzJlMWU5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvanNvbi5weQpAQCAtMCwwICsxLDEwOCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLmpzb24KKyAgICA9PT09PT09PT09PT09PT09PT09CisKKyAgICBKU09OIGhlbHBlcnMgZm9yIHdlYmFwcDIuCisKKyAgICA6Y29weXJpZ2h0OiAyMDExIGJ5IHRpcGZ5Lm9yZy4KKyAgICA6bGljZW5zZTogQXBhY2hlIFNvdHdhcmUgTGljZW5zZSwgc2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CisKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCB1cmxsaWIKKwordHJ5OgorICAgICMgUHJlZmVyZW5jZSBmb3IgaW5zdGFsbGVkIGxpYnJhcnkgd2l0aCB1cGRhdGVkIGZpeGVzLgorICAgICMgQWxzbyBhdmFpbGFibGUgaW4gR29vZ2xlIEFwcCBFbmdpbmUgU0RLID49IDEuNC4yLgorICAgIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KK2V4Y2VwdCBJbXBvcnRFcnJvcjogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgdHJ5OgorICAgICAgICAjIFN0YW5kYXJkIGxpYnJhcnkgbW9kdWxlIGluIFB5dGhvbiA+PSAyLjYuCisgICAgICAgIGltcG9ydCBqc29uCisgICAgZXhjZXB0IEltcG9ydEVycm9yOiAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAorICAgICAgICAgICAgJ0EgSlNPTiBwYXJzZXIgaXMgcmVxdWlyZWQsIGUuZy4sIHNpbXBsZWpzb24gYXQgJworICAgICAgICAgICAgJ2h0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zaW1wbGVqc29uLycpCisKK2Fzc2VydCBoYXNhdHRyKGpzb24sICdsb2FkcycpIGFuZCBoYXNhdHRyKGpzb24sICdkdW1wcycpLCBcCisgICAgJ0V4cGVjdGVkIGEgSlNPTiBtb2R1bGUgd2l0aCB0aGUgZnVuY3Rpb25zIGxvYWRzKCkgYW5kIGR1bXBzKCkuJworCisKK2RlZiBlbmNvZGUodmFsdWUsICphcmdzLCAqKmt3YXJncyk6CisgICAgIiIiU2VyaWFsaXplcyBhIHZhbHVlIHRvIEpTT04uCisKKyAgICBUaGlzIGNvbWVzIGZyb20gYFRvcm5hZG9gXy4KKworICAgIDpwYXJhbSB2YWx1ZToKKyAgICAgICAgQSB2YWx1ZSB0byBiZSBzZXJpYWxpemVkLgorICAgIDpwYXJhbSBhcmdzOgorICAgICAgICBFeHRyYSBhcmd1bWVudHMgdG8gYmUgcGFzc2VkIHRvIGBqc29uLmR1bXBzKClgLgorICAgIDpwYXJhbSBrd2FyZ3M6CisgICAgICAgIEV4dHJhIGtleXdvcmQgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byBganNvbi5kdW1wcygpYC4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgVGhlIHNlcmlhbGl6ZWQgdmFsdWUuCisgICAgIiIiCisgICAgIyBCeSBkZWZhdWx0IGVuY29kZSB1c2luZyBhIGNvbXBhY3QgZm9ybWF0LgorICAgIGt3YXJncy5zZXRkZWZhdWx0KCdzZXBhcmF0b3JzJywgKCcsJywgJzonKSkKKyAgICAjIEpTT04gcGVybWl0cyBidXQgZG9lcyBub3QgcmVxdWlyZSBmb3J3YXJkIHNsYXNoZXMgdG8gYmUgZXNjYXBlZC4KKyAgICAjIFRoaXMgaXMgdXNlZnVsIHdoZW4ganNvbiBkYXRhIGlzIGVtaXR0ZWQgaW4gYSA8c2NyaXB0PiB0YWcKKyAgICAjIGluIEhUTUwsIGFzIGl0IHByZXZlbnRzIDwvc2NyaXB0PiB0YWdzIGZyb20gcHJlbWF0dXJlbHkgdGVybWluYXRpbmcKKyAgICAjIHRoZSBqYXZhc2NyaXB0LiAgU29tZSBqc29uIGxpYnJhcmllcyBkbyB0aGlzIGVzY2FwaW5nIGJ5IGRlZmF1bHQsCisgICAgIyBhbHRob3VnaCBweXRob24ncyBzdGFuZGFyZCBsaWJyYXJ5IGRvZXMgbm90LCBzbyB3ZSBkbyBpdCBoZXJlLgorICAgICMgU2VlOiBodHRwOi8vZ29vLmdsL1dzWHd2CisgICAgcmV0dXJuIGpzb24uZHVtcHModmFsdWUsICphcmdzLCAqKmt3YXJncykucmVwbGFjZSgiPC8iLCAiPFxcLyIpCisKKworZGVmIGRlY29kZSh2YWx1ZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAiIiJEZXNlcmlhbGl6ZXMgYSB2YWx1ZSBmcm9tIEpTT04uCisKKyAgICBUaGlzIGNvbWVzIGZyb20gYFRvcm5hZG9gXy4KKworICAgIDpwYXJhbSB2YWx1ZToKKyAgICAgICAgQSB2YWx1ZSB0byBiZSBkZXNlcmlhbGl6ZWQuCisgICAgOnBhcmFtIGFyZ3M6CisgICAgICAgIEV4dHJhIGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8gYGpzb24ubG9hZHMoKWAuCisgICAgOnBhcmFtIGt3YXJnczoKKyAgICAgICAgRXh0cmEga2V5d29yZCBhcmd1bWVudHMgdG8gYmUgcGFzc2VkIHRvIGBqc29uLmxvYWRzKClgLgorICAgIDpyZXR1cm5zOgorICAgICAgICBUaGUgZGVzZXJpYWxpemVkIHZhbHVlLgorICAgICIiIgorICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CisgICAgICAgIHZhbHVlID0gdmFsdWUuZGVjb2RlKCd1dGYtOCcpCisKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWx1ZSwgdW5pY29kZSkKKyAgICByZXR1cm4ganNvbi5sb2Fkcyh2YWx1ZSwgKmFyZ3MsICoqa3dhcmdzKQorCisKK2RlZiBiNjRlbmNvZGUodmFsdWUsICphcmdzLCAqKmt3YXJncyk6CisgICAgIiIiU2VyaWFsaXplcyBhIHZhbHVlIHRvIEpTT04gYW5kIGVuY29kZXMgaXQgdXNpbmcgYmFzZTY0LgorCisgICAgUGFyYW1ldGVycyBhbmQgcmV0dXJuIHZhbHVlIGFyZSB0aGUgc2FtZSBmcm9tIDpmdW5jOmBlbmNvZGVgLgorICAgICIiIgorICAgIHJldHVybiBiYXNlNjQuYjY0ZW5jb2RlKGVuY29kZSh2YWx1ZSwgKmFyZ3MsICoqa3dhcmdzKSkKKworCitkZWYgYjY0ZGVjb2RlKHZhbHVlLCAqYXJncywgKiprd2FyZ3MpOgorICAgICIiIkRlY29kZXMgYSB2YWx1ZSB1c2luZyBiYXNlNjQgYW5kIGRlc2VyaWFsaXplcyBpdCBmcm9tIEpTT04uCisKKyAgICBQYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWUgYXJlIHRoZSBzYW1lIGZyb20gOmZ1bmM6YGRlY29kZWAuCisgICAgIiIiCisgICAgcmV0dXJuIGRlY29kZShiYXNlNjQuYjY0ZGVjb2RlKHZhbHVlKSwgKmFyZ3MsICoqa3dhcmdzKQorCisKK2RlZiBxdW90ZSh2YWx1ZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAiIiJTZXJpYWxpemVzIGEgdmFsdWUgdG8gSlNPTiBhbmQgZW5jb2RlcyBpdCB1c2luZyB1cmxsaWIucXVvdGUuCisKKyAgICBQYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWUgYXJlIHRoZSBzYW1lIGZyb20gOmZ1bmM6YGVuY29kZWAuCisgICAgIiIiCisgICAgcmV0dXJuIHVybGxpYi5xdW90ZShlbmNvZGUodmFsdWUsICphcmdzLCAqKmt3YXJncykpCisKKworZGVmIHVucXVvdGUodmFsdWUsICphcmdzLCAqKmt3YXJncyk6CisgICAgIiIiRGVjb2RlcyBhIHZhbHVlIHVzaW5nIHVybGxpYi51bnF1b3RlIGFuZCBkZXNlcmlhbGl6ZXMgaXQgZnJvbSBKU09OLgorCisgICAgUGFyYW1ldGVycyBhbmQgcmV0dXJuIHZhbHVlIGFyZSB0aGUgc2FtZSBmcm9tIDpmdW5jOmBkZWNvZGVgLgorICAgICIiIgorICAgIHJldHVybiBkZWNvZGUodXJsbGliLnVucXVvdGUodmFsdWUpLCAqYXJncywgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9sb2NhbC5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2xvY2FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxMWU5MjcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9sb2NhbC5weQpAQCAtMCwwICsxLDIzMSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLmxvY2FsCisgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn4KKworICAgIFRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhyZWFkLWxvY2FsIHV0aWxpdGllcy4KKworICAgIFRoaXMgaW1wbGVtZW50YXRpb24gY29tZXMgZnJvbSB3ZXJremV1Zy5sb2NhbC4KKworICAgIDpjb3B5cmlnaHQ6IChjKSAyMDEwIGJ5IHRoZSBXZXJremV1ZyBUZWFtLCBzZWUgQVVUSE9SUyBmb3IgbW9yZSBkZXRhaWxzLgorICAgIDpsaWNlbnNlOiBCU0QsIHNlZSBMSUNFTlNFIGZvciBtb3JlIGRldGFpbHMuCisiIiIKK3RyeToKKyAgICBmcm9tIGdyZWVubGV0IGltcG9ydCBnZXRjdXJyZW50IGFzIGdldF9jdXJyZW50X2dyZWVubGV0CitleGNlcHQgSW1wb3J0RXJyb3I6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIHRyeToKKyAgICAgICAgZnJvbSBweS5tYWdpYyBpbXBvcnQgZ3JlZW5sZXQKKyAgICAgICAgZ2V0X2N1cnJlbnRfZ3JlZW5sZXQgPSBncmVlbmxldC5nZXRjdXJyZW50CisgICAgICAgIGRlbCBncmVlbmxldAorICAgIGV4Y2VwdDoKKyAgICAgICAgIyBjYXRjaCBhbGwsIHB5LiogZmFpbHMgd2l0aCBzbyBtYW55IGRpZmZlcmVudCBlcnJvcnMuCisgICAgICAgIGdldF9jdXJyZW50X2dyZWVubGV0ID0gaW50Cit0cnk6CisgICAgZnJvbSB0aHJlYWQgaW1wb3J0IGdldF9pZGVudCBhcyBnZXRfY3VycmVudF90aHJlYWQsIGFsbG9jYXRlX2xvY2sKK2V4Y2VwdCBJbXBvcnRFcnJvcjogIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgZnJvbSBkdW1teV90aHJlYWQgaW1wb3J0IGdldF9pZGVudCBhcyBnZXRfY3VycmVudF90aHJlYWQsIGFsbG9jYXRlX2xvY2sKKworCisjIGdldCB0aGUgYmVzdCBpZGVudCBmdW5jdGlvbi4gIGlmIGdyZWVubGV0cyBhcmUgbm90IGluc3RhbGxlZCB3ZSBjYW4KKyMgc2FmZWx5IGp1c3QgdXNlIHRoZSBidWlsdGluIHRocmVhZCBmdW5jdGlvbiBhbmQgc2F2ZSBhIHB5dGhvbiBtZXRob2RjYWxsCisjIGFuZCB0aGUgY29zdCBvZiBjYWxjdWxhdGluZyBhIGhhc2guCitpZiBnZXRfY3VycmVudF9ncmVlbmxldCBpcyBpbnQ6ICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGdldF9pZGVudCA9IGdldF9jdXJyZW50X3RocmVhZAorZWxzZToKKyAgICBnZXRfaWRlbnQgPSBsYW1iZGE6IChnZXRfY3VycmVudF90aHJlYWQoKSwgZ2V0X2N1cnJlbnRfZ3JlZW5sZXQoKSkKKworCitjbGFzcyBMb2NhbChvYmplY3QpOgorICAgICIiIkEgY29udGFpbmVyIGZvciB0aHJlYWQtbG9jYWwgb2JqZWN0cy4KKworICAgIEF0dHJpYnV0ZXMgYXJlIGFzc2lnbmVkIG9yIHJldHJpZXZlZCB1c2luZyB0aGUgY3VycmVudCB0aHJlYWQuCisgICAgIiIiCisKKyAgICBfX3Nsb3RzX18gPSAoJ19fc3RvcmFnZV9fJywgJ19fbG9ja19fJykKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsICdfX3N0b3JhZ2VfXycsIHt9KQorICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgJ19fbG9ja19fJywgYWxsb2NhdGVfbG9jaygpKQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fX3N0b3JhZ2VfXy5pdGVyaXRlbXMoKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHByb3h5KToKKyAgICAgICAgIiIiQ3JlYXRlcyBhIHByb3h5IGZvciBhIG5hbWUuIiIiCisgICAgICAgIHJldHVybiBMb2NhbFByb3h5KHNlbGYsIHByb3h5KQorCisgICAgZGVmIF9fcmVsZWFzZV9sb2NhbF9fKHNlbGYpOgorICAgICAgICBzZWxmLl9fc3RvcmFnZV9fLnBvcChnZXRfaWRlbnQoKSwgTm9uZSkKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgc2VsZi5fX2xvY2tfXy5hY3F1aXJlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9fc3RvcmFnZV9fW2dldF9pZGVudCgpXVtuYW1lXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9fbG9ja19fLnJlbGVhc2UoKQorCisgICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgc2VsZi5fX2xvY2tfXy5hY3F1aXJlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWRlbnQgPSBnZXRfaWRlbnQoKQorICAgICAgICAgICAgc3RvcmFnZSA9IHNlbGYuX19zdG9yYWdlX18KKyAgICAgICAgICAgIGlmIGlkZW50IGluIHN0b3JhZ2U6CisgICAgICAgICAgICAgICAgc3RvcmFnZVtpZGVudF1bbmFtZV0gPSB2YWx1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzdG9yYWdlW2lkZW50XSA9IHtuYW1lOiB2YWx1ZX0KKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX19sb2NrX18ucmVsZWFzZSgpCisKKyAgICBkZWYgX19kZWxhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIHNlbGYuX19sb2NrX18uYWNxdWlyZSgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5fX3N0b3JhZ2VfX1tnZXRfaWRlbnQoKV1bbmFtZV0KKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fX2xvY2tfXy5yZWxlYXNlKCkKKworCitjbGFzcyBMb2NhbFByb3h5KG9iamVjdCk6CisgICAgIiIiQWN0cyBhcyBhIHByb3h5IGZvciBhIGxvY2FsIG9iamVjdC4KKworICAgIEZvcndhcmRzIGFsbCBvcGVyYXRpb25zIHRvIGEgcHJveGllZCBvYmplY3QuIFRoZSBvbmx5IG9wZXJhdGlvbnMgbm90CisgICAgc3VwcG9ydGVkIGZvciBmb3J3YXJkaW5nIGFyZSByaWdodCBoYW5kZWQgb3BlcmFuZHMgYW5kIGFueSBraW5kIG9mCisgICAgYXNzaWdubWVudC4KKworICAgIEV4YW1wbGUgdXNhZ2U6OgorCisgICAgICAgIGZyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IExvY2FsCisgICAgICAgIGwgPSBMb2NhbCgpCisKKyAgICAgICAgIyB0aGVzZSBhcmUgcHJveGllcworICAgICAgICByZXF1ZXN0ID0gbCgncmVxdWVzdCcpCisgICAgICAgIHVzZXIgPSBsKCd1c2VyJykKKworICAgIFdoZW5ldmVyIHNvbWV0aGluZyBpcyBib3VuZCB0byBsLnVzZXIgb3IgbC5yZXF1ZXN0IHRoZSBwcm94eSBvYmplY3RzCisgICAgd2lsbCBmb3J3YXJkIGFsbCBvcGVyYXRpb25zLiBJZiBubyBvYmplY3QgaXMgYm91bmQgYSA6ZXhjOmBSdW50aW1lRXJyb3JgCisgICAgd2lsbCBiZSByYWlzZWQuCisKKyAgICBUbyBjcmVhdGUgcHJveGllcyB0byA6Y2xhc3M6YExvY2FsYCBvYmplY3QsIGNhbGwgdGhlIG9iamVjdCBhcyBzaG93biBhYm92ZS4KKyAgICBJZiB5b3Ugd2FudCB0byBoYXZlIGEgcHJveHkgdG8gYW4gb2JqZWN0IGxvb2tlZCB1cCBieSBhIGZ1bmN0aW9uLCB5b3UgY2FuCisgICAgcGFzcyBhIGZ1bmN0aW9uIHRvIHRoZSA6Y2xhc3M6YExvY2FsUHJveHlgIGNvbnN0cnVjdG9yOjoKKworICAgICAgICByb3V0ZV9rd2FyZ3MgPSBMb2NhbFByb3h5KGxhbWJkYTogd2ViYXBwMi5nZXRfcmVxdWVzdCgpLnJvdXRlX2t3YXJncykKKyAgICAiIiIKKworICAgIF9fc2xvdHNfXyA9ICgnX19sb2NhbCcsICdfX2RpY3RfXycsICdfX25hbWVfXycpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYWwsIG5hbWU9Tm9uZSk6CisgICAgICAgIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCAnX0xvY2FsUHJveHlfX2xvY2FsJywgbG9jYWwpCisgICAgICAgIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCAnX19uYW1lX18nLCBuYW1lKQorCisgICAgZGVmIF9nZXRfY3VycmVudF9vYmplY3Qoc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgY3VycmVudCBvYmplY3QuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0aGUgcmVhbAorICAgICAgICBvYmplY3QgYmVoaW5kIHRoZSBwcm94eSBhdCBhIHRpbWUgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgb3IgYmVjYXVzZQorICAgICAgICB5b3Ugd2FudCB0byBwYXNzIHRoZSBvYmplY3QgaW50byBhIGRpZmZlcmVudCBjb250ZXh0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi5fX2xvY2FsLCAnX19yZWxlYXNlX2xvY2FsX18nKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fbG9jYWwoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLl9fbG9jYWwsIHNlbGYuX19uYW1lX18pCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignbm8gb2JqZWN0IGJvdW5kIHRvICVzJyAlIHNlbGYuX19uYW1lX18pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgX19kaWN0X18oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9nZXRfY3VycmVudF9vYmplY3QoKS5fX2RpY3RfXworICAgICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZUVycm9yKCdfX2RpY3RfXycpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9iaiA9IHNlbGYuX2dldF9jdXJyZW50X29iamVjdCgpCisgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gJzwlcyB1bmJvdW5kPicgJSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXworICAgICAgICByZXR1cm4gcmVwcihvYmopCisKKyAgICBkZWYgX19ub256ZXJvX18oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBib29sKHNlbGYuX2dldF9jdXJyZW50X29iamVjdCgpKQorICAgICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX191bmljb2RlX18oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiB1bmljb2RlKHNlbGYuX2dldF9jdXJyZW50X29iamVjdCgpKQorICAgICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIHJlcHIoc2VsZikKKworICAgIGRlZiBfX2Rpcl9fKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gZGlyKHNlbGYuX2dldF9jdXJyZW50X29iamVjdCgpKQorICAgICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIFtdCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGlmIG5hbWUgPT0gJ19fbWVtYmVyc19fJzoKKyAgICAgICAgICAgIHJldHVybiBkaXIoc2VsZi5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkpCisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYuX2dldF9jdXJyZW50X29iamVjdCgpLCBuYW1lKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICBzZWxmLl9nZXRfY3VycmVudF9vYmplY3QoKVtrZXldID0gdmFsdWUKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBkZWwgc2VsZi5fZ2V0X2N1cnJlbnRfb2JqZWN0KClba2V5XQorCisgICAgZGVmIF9fc2V0c2xpY2VfXyhzZWxmLCBpLCBqLCBzZXEpOgorICAgICAgICBzZWxmLl9nZXRfY3VycmVudF9vYmplY3QoKVtpOmpdID0gc2VxCisKKyAgICBkZWYgX19kZWxzbGljZV9fKHNlbGYsIGksIGopOgorICAgICAgICBkZWwgc2VsZi5fZ2V0X2N1cnJlbnRfb2JqZWN0KClbaTpqXQorCisgICAgX19zZXRhdHRyX18gPSBsYW1iZGEgeCwgbiwgdjogc2V0YXR0cih4Ll9nZXRfY3VycmVudF9vYmplY3QoKSwgbiwgdikKKyAgICBfX2RlbGF0dHJfXyA9IGxhbWJkYSB4LCBuOiBkZWxhdHRyKHguX2dldF9jdXJyZW50X29iamVjdCgpLCBuKQorICAgIF9fc3RyX18gPSBsYW1iZGEgeDogc3RyKHguX2dldF9jdXJyZW50X29iamVjdCgpKQorICAgIF9fbHRfXyA9IGxhbWJkYSB4LCBvOiB4Ll9nZXRfY3VycmVudF9vYmplY3QoKSA8IG8KKyAgICBfX2xlX18gPSBsYW1iZGEgeCwgbzogeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkgPD0gbworICAgIF9fZXFfXyA9IGxhbWJkYSB4LCBvOiB4Ll9nZXRfY3VycmVudF9vYmplY3QoKSA9PSBvCisgICAgX19uZV9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpICE9IG8KKyAgICBfX2d0X18gPSBsYW1iZGEgeCwgbzogeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkgPiBvCisgICAgX19nZV9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpID49IG8KKyAgICBfX2NtcF9fID0gbGFtYmRhIHgsIG86IGNtcCh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSwgbykKKyAgICBfX2hhc2hfXyA9IGxhbWJkYSB4OiBoYXNoKHguX2dldF9jdXJyZW50X29iamVjdCgpKQorICAgIF9fY2FsbF9fID0gbGFtYmRhIHgsICphLCAqKmt3OiB4Ll9nZXRfY3VycmVudF9vYmplY3QoKSgqYSwgKiprdykKKyAgICBfX2xlbl9fID0gbGFtYmRhIHg6IGxlbih4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX2dldGl0ZW1fXyA9IGxhbWJkYSB4LCBpOiB4Ll9nZXRfY3VycmVudF9vYmplY3QoKVtpXQorICAgIF9faXRlcl9fID0gbGFtYmRhIHg6IGl0ZXIoeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkpCisgICAgX19jb250YWluc19fID0gbGFtYmRhIHgsIGk6IGkgaW4geC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkKKyAgICBfX2dldHNsaWNlX18gPSBsYW1iZGEgeCwgaSwgajogeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KClbaTpqXQorICAgIF9fYWRkX18gPSBsYW1iZGEgeCwgbzogeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkgKyBvCisgICAgX19zdWJfXyA9IGxhbWJkYSB4LCBvOiB4Ll9nZXRfY3VycmVudF9vYmplY3QoKSAtIG8KKyAgICBfX211bF9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpICogbworICAgIF9fZmxvb3JkaXZfXyA9IGxhbWJkYSB4LCBvOiB4Ll9nZXRfY3VycmVudF9vYmplY3QoKSAvLyBvCisgICAgX19tb2RfXyA9IGxhbWJkYSB4LCBvOiB4Ll9nZXRfY3VycmVudF9vYmplY3QoKSAlIG8KKyAgICBfX2Rpdm1vZF9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpLl9fZGl2bW9kX18obykKKyAgICBfX3Bvd19fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpICoqIG8KKyAgICBfX2xzaGlmdF9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpIDw8IG8KKyAgICBfX3JzaGlmdF9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpID4+IG8KKyAgICBfX2FuZF9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpICYgbworICAgIF9feG9yX18gPSBsYW1iZGEgeCwgbzogeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkgXiBvCisgICAgX19vcl9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpIHwgbworICAgIF9fZGl2X18gPSBsYW1iZGEgeCwgbzogeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkuX19kaXZfXyhvKQorICAgIF9fdHJ1ZWRpdl9fID0gbGFtYmRhIHgsIG86IHguX2dldF9jdXJyZW50X29iamVjdCgpLl9fdHJ1ZWRpdl9fKG8pCisgICAgX19uZWdfXyA9IGxhbWJkYSB4OiAtKHguX2dldF9jdXJyZW50X29iamVjdCgpKQorICAgIF9fcG9zX18gPSBsYW1iZGEgeDogKyh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX2Fic19fID0gbGFtYmRhIHg6IGFicyh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX2ludmVydF9fID0gbGFtYmRhIHg6IH4oeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkpCisgICAgX19jb21wbGV4X18gPSBsYW1iZGEgeDogY29tcGxleCh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX2ludF9fID0gbGFtYmRhIHg6IGludCh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX2xvbmdfXyA9IGxhbWJkYSB4OiBsb25nKHguX2dldF9jdXJyZW50X29iamVjdCgpKQorICAgIF9fZmxvYXRfXyA9IGxhbWJkYSB4OiBmbG9hdCh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX29jdF9fID0gbGFtYmRhIHg6IG9jdCh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX2hleF9fID0gbGFtYmRhIHg6IGhleCh4Ll9nZXRfY3VycmVudF9vYmplY3QoKSkKKyAgICBfX2luZGV4X18gPSBsYW1iZGEgeDogeC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCkuX19pbmRleF9fKCkKKyAgICBfX2NvZXJjZV9fID0gbGFtYmRhIHgsIG86IHguX19jb2VyY2VfXyh4LCBvKQorICAgIF9fZW50ZXJfXyA9IGxhbWJkYSB4OiB4Ll9fZW50ZXJfXygpCisgICAgX19leGl0X18gPSBsYW1iZGEgeCwgKmEsICoqa3c6IHguX19leGl0X18oKmEsICoqa3cpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9sb2NhbF9hcHAucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9sb2NhbF9hcHAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI1NzQyOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL2xvY2FsX2FwcC5weQpAQCAtMCwwICsxLDI0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMubG9jYWxfYXBwCisgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyAgICBUaGlzIG1vZHVsZSBpcyBkZXByZWNhdGVkLiBUaGUgZnVuY3Rpb25hbGl0eSBpcyBub3cgYXZhaWxhYmxlCisgICAgZGlyZWN0bHkgaW4gd2ViYXBwMi4KKworICAgIFByZXZpb3VzbHkgaXQgaW1wbGVtZW50ZWQgYSBXU0dJQXBwbGljYXRpb24gYWRhcHRlZCBmb3IgdGhyZWFkZWQKKyAgICBlbnZpcm9ubWVudHMuCisKKyAgICA6Y29weXJpZ2h0OiAyMDExIGJ5IHRpcGZ5Lm9yZy4KKyAgICA6bGljZW5zZTogQXBhY2hlIFNvdHdhcmUgTGljZW5zZSwgc2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCisiIiIKK2ltcG9ydCB3YXJuaW5ncworCitpbXBvcnQgd2ViYXBwMgorCit3YXJuaW5ncy53YXJuKERlcHJlY2F0aW9uV2FybmluZygKKyAgICAnd2ViYXBwMl9leHRyYXMubG9jYWxfYXBwIGlzIGRlcHJlY2F0ZWQuIHdlYmFwcDIuV1NHSUFwcGxpY2F0aW9uIGlzIG5vdyAnCisgICAgJ3RocmVhZC1zYWZlIGJ5IGRlZmF1bHQgd2hlbiB3ZWJhcHAyX2V4dHJhcy5sb2NhbCBpcyBhdmFpbGFibGUuJyksCisgICAgc3RhY2tsZXZlbD0xKQorCitXU0dJQXBwbGljYXRpb24gPSB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvbWFrby5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL21ha28ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzBjNTdhOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL21ha28ucHkKQEAgLTAsMCArMSwxMzYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiIKKyAgICB3ZWJhcHAyX2V4dHJhcy5tYWtvCisgICAgPT09PT09PT09PT09PT09PT09PQorCisgICAgTWFrbyB0ZW1wbGF0ZSBzdXBwb3J0IGZvciB3ZWJhcHAyLgorCisgICAgTGVhcm4gbW9yZSBhYm91dCBNYWtvOiBodHRwOi8vd3d3Lm1ha290ZW1wbGF0ZXMub3JnLworCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitmcm9tIG1ha28gaW1wb3J0IGxvb2t1cAorCitpbXBvcnQgd2ViYXBwMgorCisjOiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gdmFsdWVzIGZvciB0aGlzIG1vZHVsZS4gS2V5cyBhcmU6CisjOgorIzogdGVtcGxhdGVfcGF0aAorIzogICAgIERpcmVjdG9yeSBmb3IgdGVtcGxhdGVzLiBEZWZhdWx0IGlzIGB0ZW1wbGF0ZXNgLgorZGVmYXVsdF9jb25maWcgPSB7CisgICAgJ3RlbXBsYXRlX3BhdGgnOiAndGVtcGxhdGVzJywKK30KKworCitjbGFzcyBNYWtvKG9iamVjdCk6CisgICAgIiIiV3JhcHBlciBmb3IgY29uZmlndXJhYmxlIGFuZCBjYWNoZWQgTWFrbyBlbnZpcm9ubWVudC4KKworICAgIFRvIHVzZWQgaXQsIHNldCBpdCBhcyBhIGNhY2hlZCBwcm9wZXJ0eSBpbiBhIGJhc2UgYFJlcXVlc3RIYW5kbGVyYDo6CisKKyAgICAgICAgaW1wb3J0IHdlYmFwcDIKKworICAgICAgICBmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBtYWtvCisKKyAgICAgICAgY2xhc3MgQmFzZUhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisKKyAgICAgICAgICAgIEB3ZWJhcHAyLmNhY2hlZF9wcm9wZXJ0eQorICAgICAgICAgICAgZGVmIG1ha28oc2VsZik6CisgICAgICAgICAgICAgICAgIyBSZXR1cm5zIGEgTWFrbyByZW5kZXJlciBjYWNoZWQgaW4gdGhlIGFwcCByZWdpc3RyeS4KKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrby5nZXRfbWFrbyhhcHA9c2VsZi5hcHApCisKKyAgICAgICAgICAgIGRlZiByZW5kZXJfcmVzcG9uc2Uoc2VsZiwgX3RlbXBsYXRlLCAqKmNvbnRleHQpOgorICAgICAgICAgICAgICAgICMgUmVuZGVycyBhIHRlbXBsYXRlIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUgcmVzcG9uc2UuCisgICAgICAgICAgICAgICAgcnYgPSBzZWxmLm1ha28ucmVuZGVyX3RlbXBsYXRlKF90ZW1wbGF0ZSwgKipjb250ZXh0KQorICAgICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uud3JpdGUocnYpCisKKyAgICBUaGVuIGV4dGVuZGVkIGhhbmRsZXJzIGNhbiByZW5kZXIgdGVtcGxhdGVzIGRpcmVjdGx5OjoKKworICAgICAgICBjbGFzcyBNeUhhbmRsZXIoQmFzZUhhbmRsZXIpOgorICAgICAgICAgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgICAgICAgICBjb250ZXh0ID0geydtZXNzYWdlJzogJ0hlbGxvLCB3b3JsZCEnfQorICAgICAgICAgICAgICAgIHNlbGYucmVuZGVyX3Jlc3BvbnNlKCdteV90ZW1wbGF0ZS5odG1sJywgKipjb250ZXh0KQorICAgICIiIgorCisgICAgIzogQ29uZmlndXJhdGlvbiBrZXkuCisgICAgY29uZmlnX2tleSA9IF9fbmFtZV9fCisKKyAgICAjOiBMb2FkZWQgY29uZmlndXJhdGlvbi4KKyAgICBjb25maWcgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBwLCBjb25maWc9Tm9uZSk6CisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnID0gYXBwLmNvbmZpZy5sb2FkX2NvbmZpZyhzZWxmLmNvbmZpZ19rZXksCisgICAgICAgICAgICBkZWZhdWx0X3ZhbHVlcz1kZWZhdWx0X2NvbmZpZywgdXNlcl92YWx1ZXM9Y29uZmlnLAorICAgICAgICAgICAgcmVxdWlyZWRfa2V5cz1Ob25lKQorCisgICAgICAgIGRpcmVjdG9yaWVzID0gY29uZmlnLmdldCgndGVtcGxhdGVfcGF0aCcpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZGlyZWN0b3JpZXMsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgZGlyZWN0b3JpZXMgPSBbZGlyZWN0b3JpZXNdCisKKyAgICAgICAgc2VsZi5lbnZpcm9ubWVudCA9IGxvb2t1cC5UZW1wbGF0ZUxvb2t1cChkaXJlY3Rvcmllcz1kaXJlY3RvcmllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZW5jb2Rpbmc9J3V0Zi04JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZ19lcnJvcnM9J3JlcGxhY2UnKQorCisgICAgZGVmIHJlbmRlcl90ZW1wbGF0ZShzZWxmLCBfZmlsZW5hbWUsICoqY29udGV4dCk6CisgICAgICAgICIiIlJlbmRlcnMgYSB0ZW1wbGF0ZSBhbmQgcmV0dXJucyBhIHJlc3BvbnNlIG9iamVjdC4KKworICAgICAgICA6cGFyYW0gX2ZpbGVuYW1lOgorICAgICAgICAgICAgVGhlIHRlbXBsYXRlIGZpbGVuYW1lLCByZWxhdGVkIHRvIHRoZSB0ZW1wbGF0ZXMgZGlyZWN0b3J5LgorICAgICAgICA6cGFyYW0gY29udGV4dDoKKyAgICAgICAgICAgIEtleXdvcmQgYXJndW1lbnRzIHVzZWQgYXMgdmFyaWFibGVzIGluIHRoZSByZW5kZXJlZCB0ZW1wbGF0ZS4KKyAgICAgICAgICAgIFRoZXNlIHdpbGwgb3ZlcnJpZGUgdmFsdWVzIHNldCBpbiB0aGUgcmVxdWVzdCBjb250ZXh0LgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgcmVuZGVyZWQgdGVtcGxhdGUuCisgICAgICAgICIiIgorICAgICAgICB0ZW1wbGF0ZSA9IHNlbGYuZW52aXJvbm1lbnQuZ2V0X3RlbXBsYXRlKF9maWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIHRlbXBsYXRlLnJlbmRlcl91bmljb2RlKCoqY29udGV4dCkKKworCisjIEZhY3RvcmllcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworIzogS2V5IHVzZWQgdG8gc3RvcmUgOmNsYXNzOmBNYWtvYCBpbiB0aGUgYXBwIHJlZ2lzdHJ5LgorX3JlZ2lzdHJ5X2tleSA9ICd3ZWJhcHAyX2V4dHJhcy5tYWtvLk1ha28nCisKKworZGVmIGdldF9tYWtvKGZhY3Rvcnk9TWFrbywga2V5PV9yZWdpc3RyeV9rZXksIGFwcD1Ob25lKToKKyAgICAiIiJSZXR1cm5zIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgTWFrb2AgZnJvbSB0aGUgYXBwIHJlZ2lzdHJ5LgorCisgICAgSXQnbGwgdHJ5IHRvIGdldCBpdCBmcm9tIHRoZSBjdXJyZW50IGFwcCByZWdpc3RyeSwgYW5kIGlmIGl0IGlzIG5vdAorICAgIHJlZ2lzdGVyZWQgaXQnbGwgYmUgaW5zdGFudGlhdGVkIGFuZCByZWdpc3RlcmVkLiBBIHNlY29uZCBjYWxsIHRvIHRoaXMKKyAgICBmdW5jdGlvbiB3aWxsIHJldHVybiB0aGUgc2FtZSBpbnN0YW5jZS4KKworICAgIDpwYXJhbSBmYWN0b3J5OgorICAgICAgICBUaGUgY2FsbGFibGUgdXNlZCB0byBidWlsZCBhbmQgcmVnaXN0ZXIgdGhlIGluc3RhbmNlIGlmIGl0IGlzIG5vdCB5ZXQKKyAgICAgICAgcmVnaXN0ZXJlZC4gVGhlIGRlZmF1bHQgaXMgdGhlIGNsYXNzIDpjbGFzczpgTWFrb2AgaXRzZWxmLgorICAgIDpwYXJhbSBrZXk6CisgICAgICAgIFRoZSBrZXkgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UgaW4gdGhlIHJlZ2lzdHJ5LiBBIGRlZmF1bHQgaXMgdXNlZAorICAgICAgICBpZiBpdCBpcyBub3Qgc2V0LgorICAgIDpwYXJhbSBhcHA6CisgICAgICAgIEEgOmNsYXNzOmB3ZWJhcHAyLldTR0lBcHBsaWNhdGlvbmAgaW5zdGFuY2UgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UuCisgICAgICAgIFRoZSBhY3RpdmUgYXBwIGlzIHVzZWQgaWYgaXQgaXMgbm90IHNldC4KKyAgICAiIiIKKyAgICBhcHAgPSBhcHAgb3Igd2ViYXBwMi5nZXRfYXBwKCkKKyAgICBtYWtvID0gYXBwLnJlZ2lzdHJ5LmdldChrZXkpCisgICAgaWYgbm90IG1ha286CisgICAgICAgIG1ha28gPSBhcHAucmVnaXN0cnlba2V5XSA9IGZhY3RvcnkoYXBwKQorCisgICAgcmV0dXJuIG1ha28KKworCitkZWYgc2V0X21ha28obWFrbywga2V5PV9yZWdpc3RyeV9rZXksIGFwcD1Ob25lKToKKyAgICAiIiJTZXRzIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgTWFrb2AgaW4gdGhlIGFwcCByZWdpc3RyeS4KKworICAgIDpwYXJhbSBzdG9yZToKKyAgICAgICAgQW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBNYWtvYC4KKyAgICA6cGFyYW0ga2V5OgorICAgICAgICBUaGUga2V5IHVzZWQgdG8gcmV0cmlldmUgdGhlIGluc3RhbmNlIGZyb20gdGhlIHJlZ2lzdHJ5LiBBIGRlZmF1bHQKKyAgICAgICAgaXMgdXNlZCBpZiBpdCBpcyBub3Qgc2V0LgorICAgIDpwYXJhbSByZXF1ZXN0OgorICAgICAgICBBIDpjbGFzczpgd2ViYXBwMi5XU0dJQXBwbGljYXRpb25gIGluc3RhbmNlIHVzZWQgdG8gcmV0cmlldmUgdGhlCisgICAgICAgIGluc3RhbmNlLiBUaGUgYWN0aXZlIGFwcCBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgIiIiCisgICAgYXBwID0gYXBwIG9yIHdlYmFwcDIuZ2V0X2FwcCgpCisgICAgYXBwLnJlZ2lzdHJ5W2tleV0gPSBtYWtvCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9yb3V0ZXMucHkgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9yb3V0ZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlkNzMyMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3JvdXRlcy5weQpAQCAtMCwwICsxLDM1MyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLnJvdXRlcworICAgID09PT09PT09PT09PT09PT09PT09PQorCisgICAgRXh0cmEgcm91dGUgY2xhc3NlcyBmb3Igd2ViYXBwMi4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgYnkgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgoraW1wb3J0IHJlCitpbXBvcnQgdXJsbGliCisKK2Zyb20gd2Vib2IgaW1wb3J0IGV4YworCitpbXBvcnQgd2ViYXBwMgorCisKK2NsYXNzIE11bHRpUm91dGUob2JqZWN0KToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciByb3V0ZXMgd2l0aCBuZXN0ZWQgcm91dGVzLiIiIgorCisgICAgcm91dGVzID0gTm9uZQorICAgIGNoaWxkcmVuID0gTm9uZQorICAgIG1hdGNoX2NoaWxkcmVuID0gTm9uZQorICAgIGJ1aWxkX2NoaWxkcmVuID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvdXRlcyk6CisgICAgICAgIHNlbGYucm91dGVzID0gcm91dGVzCisKKyAgICBkZWYgZ2V0X2NoaWxkcmVuKHNlbGYpOgorICAgICAgICBpZiBzZWxmLmNoaWxkcmVuIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmNoaWxkcmVuID0gW10KKyAgICAgICAgICAgIGZvciByb3V0ZSBpbiBzZWxmLnJvdXRlczoKKyAgICAgICAgICAgICAgICBmb3IgciBpbiByb3V0ZS5nZXRfcm91dGVzKCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5kKHIpCisKKyAgICAgICAgZm9yIHJ2IGluIHNlbGYuY2hpbGRyZW46CisgICAgICAgICAgICB5aWVsZCBydgorCisgICAgZGVmIGdldF9tYXRjaF9jaGlsZHJlbihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5tYXRjaF9jaGlsZHJlbiBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5tYXRjaF9jaGlsZHJlbiA9IFtdCisgICAgICAgICAgICBmb3Igcm91dGUgaW4gc2VsZi5nZXRfY2hpbGRyZW4oKToKKyAgICAgICAgICAgICAgICBmb3IgciBpbiByb3V0ZS5nZXRfbWF0Y2hfcm91dGVzKCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubWF0Y2hfY2hpbGRyZW4uYXBwZW5kKHIpCisKKyAgICAgICAgZm9yIHJ2IGluIHNlbGYubWF0Y2hfY2hpbGRyZW46CisgICAgICAgICAgICB5aWVsZCBydgorCisgICAgZGVmIGdldF9idWlsZF9jaGlsZHJlbihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5idWlsZF9jaGlsZHJlbiBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5idWlsZF9jaGlsZHJlbiA9IHt9CisgICAgICAgICAgICBmb3Igcm91dGUgaW4gc2VsZi5nZXRfY2hpbGRyZW4oKToKKyAgICAgICAgICAgICAgICBmb3IgbiwgciBpbiByb3V0ZS5nZXRfYnVpbGRfcm91dGVzKCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYnVpbGRfY2hpbGRyZW5bbl0gPSByCisKKyAgICAgICAgZm9yIHJ2IGluIHNlbGYuYnVpbGRfY2hpbGRyZW4uaXRlcml0ZW1zKCk6CisgICAgICAgICAgICB5aWVsZCBydgorCisgICAgZ2V0X3JvdXRlcyA9IGdldF9jaGlsZHJlbgorICAgIGdldF9tYXRjaF9yb3V0ZXMgPSBnZXRfbWF0Y2hfY2hpbGRyZW4KKyAgICBnZXRfYnVpbGRfcm91dGVzID0gZ2V0X2J1aWxkX2NoaWxkcmVuCisKKworY2xhc3MgRG9tYWluUm91dGUoTXVsdGlSb3V0ZSk6CisgICAgIiIiQSByb3V0ZSB1c2VkIHRvIHJlc3RyaWN0IHJvdXRlIG1hdGNoZXMgdG8gYSBnaXZlbiBkb21haW4gb3Igc3ViZG9tYWluLgorCisgICAgRm9yIGV4YW1wbGUsIHRvIHJlc3RyaWN0IHJvdXRlcyB0byBhIHN1YmRvbWFpbiBvZiB0aGUgYXBwc3BvdCBkb21haW46OgorCisgICAgICAgIGFwcCA9IFdTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICAgICBEb21haW5Sb3V0ZSgnPHN1YmRvbWFpbj4uYXBwLWlkLmFwcHNwb3QuY29tJywgWworICAgICAgICAgICAgICAgIFJvdXRlKCcvZm9vJywgJ0Zvb0hhbmRsZXInLCAnc3ViZG9tYWluLXRoaW5nJyksCisgICAgICAgICAgICBdKSwKKyAgICAgICAgICAgIFJvdXRlKCcvYmFyJywgJ0JhckhhbmRsZXInLCAnbm9ybWFsLXRoaW5nJyksCisgICAgICAgIF0pCisKKyAgICBUaGUgdGVtcGxhdGUgZm9sbG93cyB0aGUgc2FtZSBzeW50YXggdXNlZCBieSA6Y2xhc3M6YHdlYmFwcDIuUm91dGVgIGFuZAorICAgIG11c3QgZGVmaW5lIG5hbWVkIGdyb3VwcyBpZiBhbnkgdmFsdWUgbXVzdCBiZSBhZGRlZCB0byB0aGUgbWF0Y2ggcmVzdWx0cy4KKyAgICBJbiB0aGUgZXhhbXBsZSBhYm92ZSwgYW4gZXh0cmEgYHN1YmRvbWFpbmAga2V5d29yZCBpcyBwYXNzZWQgdG8gdGhlCisgICAgaGFuZGxlciwgYnV0IGlmIHRoZSByZWdleCBkaWRuJ3QgZGVmaW5lIGFueSBuYW1lZCBncm91cHMsIG5vdGhpbmcgd291bGQKKyAgICBiZSBhZGRlZC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZW1wbGF0ZSwgcm91dGVzKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZXMgYSBVUkwgcm91dGUuCisKKyAgICAgICAgOnBhcmFtIHRlbXBsYXRlOgorICAgICAgICAgICAgQSByb3V0ZSB0ZW1wbGF0ZSB0byBtYXRjaCBhZ2FpbnN0IGBgZW52aXJvblsnU0VSVkVSX05BTUUnXWBgLgorICAgICAgICAgICAgU2VlIGEgc3ludGF4IGRlc2NyaXB0aW9uIGluIDptZXRoOmB3ZWJhcHAyLlJvdXRlLl9faW5pdF9fYC4KKyAgICAgICAgOnBhcmFtIHJvdXRlczoKKyAgICAgICAgICAgIEEgbGlzdCBvZiA6Y2xhc3M6YHdlYmFwcDIuUm91dGVgIGluc3RhbmNlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVyKERvbWFpblJvdXRlLCBzZWxmKS5fX2luaXRfXyhyb3V0ZXMpCisgICAgICAgIHNlbGYudGVtcGxhdGUgPSB0ZW1wbGF0ZQorCisgICAgZGVmIGdldF9tYXRjaF9yb3V0ZXMoc2VsZik6CisgICAgICAgICMgVGhpcyByb3V0ZSB3aWxsIGRvIHByZS1tYXRjaGluZyBiZWZvcmUgbWF0Y2hpbmcgdGhlIG5lc3RlZCByb3V0ZXMhCisgICAgICAgIHlpZWxkIHNlbGYKKworICAgIGRlZiBtYXRjaChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIyBVc2UgU0VSVkVSX05BTUUgdG8gaWdub3JlIHBvcnQgbnVtYmVyIHRoYXQgY29tZXMgd2l0aCByZXF1ZXN0Lmhvc3Q/CisgICAgICAgICMgaG9zdF9tYXRjaCA9IHNlbGYucmVnZXgubWF0Y2gocmVxdWVzdC5ob3N0LnNwbGl0KCc6JywgMSlbMF0pCisgICAgICAgIGhvc3RfbWF0Y2ggPSBzZWxmLnJlZ2V4Lm1hdGNoKHJlcXVlc3QuZW52aXJvblsnU0VSVkVSX05BTUUnXSkKKworICAgICAgICBpZiBob3N0X21hdGNoOgorICAgICAgICAgICAgYXJncywga3dhcmdzID0gd2ViYXBwMi5fZ2V0X3JvdXRlX3ZhcmlhYmxlcyhob3N0X21hdGNoKQorICAgICAgICAgICAgcmV0dXJuIF9tYXRjaF9yb3V0ZXMoc2VsZi5nZXRfbWF0Y2hfY2hpbGRyZW4sIHJlcXVlc3QsIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3MpCisKKyAgICBAd2ViYXBwMi5jYWNoZWRfcHJvcGVydHkKKyAgICBkZWYgcmVnZXgoc2VsZik6CisgICAgICAgIHJlZ2V4LCByZXZlcnNlX3RlbXBsYXRlLCBhcmdzX2NvdW50LCBrd2FyZ3NfY291bnQsIHZhcmlhYmxlcyA9IFwKKyAgICAgICAgICAgIHdlYmFwcDIuX3BhcnNlX3JvdXRlX3RlbXBsYXRlKHNlbGYudGVtcGxhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X3N1Zml4PSdbXlwuXSsnKQorICAgICAgICByZXR1cm4gcmVnZXgKKworCitjbGFzcyBOYW1lUHJlZml4Um91dGUoTXVsdGlSb3V0ZSk6CisgICAgIiIiVGhlIGlkZWEgb2YgdGhpcyByb3V0ZSBpcyB0byBzZXQgYSBiYXNlIG5hbWUgZm9yIG90aGVyIHJvdXRlczo6CisKKyAgICAgICAgYXBwID0gV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgICAgIE5hbWVQcmVmaXhSb3V0ZSgndXNlci0nLCBbCisgICAgICAgICAgICAgICAgUm91dGUoJy91c2Vycy88dXNlcjpcdys+LycsIFVzZXJPdmVydmlld0hhbmRsZXIsICdvdmVydmlldycpLAorICAgICAgICAgICAgICAgIFJvdXRlKCcvdXNlcnMvPHVzZXI6XHcrPi9wcm9maWxlJywgVXNlclByb2ZpbGVIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICdwcm9maWxlJyksCisgICAgICAgICAgICAgICAgUm91dGUoJy91c2Vycy88dXNlcjpcdys+L3Byb2plY3RzJywgVXNlclByb2plY3RzSGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdHMnKSwKKyAgICAgICAgICAgIF0pLAorICAgICAgICBdKQorCisgICAgVGhlIGV4YW1wbGUgYWJvdmUgaXMgdGhlIHNhbWUgYXMgc2V0dGluZyB0aGUgZm9sbG93aW5nIHJvdXRlcywganVzdCBtb3JlCisgICAgY29udmVuaWVudCBhcyB5b3UgY2FuIHJldXNlIHRoZSBuYW1lIHByZWZpeDo6CisKKyAgICAgICAgYXBwID0gV1NHSUFwcGxpY2F0aW9uKFsKKyAgICAgICAgICAgIFJvdXRlKCcvdXNlcnMvPHVzZXI6XHcrPi8nLCBVc2VyT3ZlcnZpZXdIYW5kbGVyLCAndXNlci1vdmVydmlldycpLAorICAgICAgICAgICAgUm91dGUoJy91c2Vycy88dXNlcjpcdys+L3Byb2ZpbGUnLCBVc2VyUHJvZmlsZUhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAndXNlci1wcm9maWxlJyksCisgICAgICAgICAgICBSb3V0ZSgnL3VzZXJzLzx1c2VyOlx3Kz4vcHJvamVjdHMnLCBVc2VyUHJvamVjdHNIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgJ3VzZXItcHJvamVjdHMnKSwKKyAgICAgICAgXSkKKyAgICAiIiIKKworICAgIF9hdHRyID0gJ25hbWUnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcHJlZml4LCByb3V0ZXMpOgorICAgICAgICAiIiJJbml0aWFsaXplcyBhIFVSTCByb3V0ZS4KKworICAgICAgICA6cGFyYW0gcHJlZml4OgorICAgICAgICAgICAgVGhlIHByZWZpeCB0byBiZSBwcmVwZW5kZWQuCisgICAgICAgIDpwYXJhbSByb3V0ZXM6CisgICAgICAgICAgICBBIGxpc3Qgb2YgOmNsYXNzOmB3ZWJhcHAyLlJvdXRlYCBpbnN0YW5jZXMuCisgICAgICAgICIiIgorICAgICAgICBzdXBlcihOYW1lUHJlZml4Um91dGUsIHNlbGYpLl9faW5pdF9fKHJvdXRlcykKKyAgICAgICAgc2VsZi5wcmVmaXggPSBwcmVmaXgKKyAgICAgICAgIyBQcmVwZW5kIGEgcHJlZml4IHRvIGEgcm91dGUgYXR0cmlidXRlLgorICAgICAgICBmb3Igcm91dGUgaW4gc2VsZi5nZXRfcm91dGVzKCk6CisgICAgICAgICAgICBzZXRhdHRyKHJvdXRlLCBzZWxmLl9hdHRyLCBwcmVmaXggKyBnZXRhdHRyKHJvdXRlLCBzZWxmLl9hdHRyKSkKKworCitjbGFzcyBIYW5kbGVyUHJlZml4Um91dGUoTmFtZVByZWZpeFJvdXRlKToKKyAgICAiIiJTYW1lIGFzIDpjbGFzczpgTmFtZVByZWZpeFJvdXRlYCwgYnV0IHByZWZpeGVzIHRoZSByb3V0ZSBoYW5kbGVyLiIiIgorCisgICAgX2F0dHIgPSAnaGFuZGxlcicKKworCitjbGFzcyBQYXRoUHJlZml4Um91dGUoTmFtZVByZWZpeFJvdXRlKToKKyAgICAiIiJTYW1lIGFzIDpjbGFzczpgTmFtZVByZWZpeFJvdXRlYCwgYnV0IHByZWZpeGVzIHRoZSByb3V0ZSBwYXRoLgorCisgICAgRm9yIGV4YW1wbGUsIGltYWdpbmUgd2UgaGF2ZSB0aGVzZSByb3V0ZXM6OgorCisgICAgICAgIGFwcCA9IFdTR0lBcHBsaWNhdGlvbihbCisgICAgICAgICAgICBSb3V0ZSgnL3VzZXJzLzx1c2VyOlx3Kz4vJywgVXNlck92ZXJ2aWV3SGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICd1c2VyLW92ZXJ2aWV3JyksCisgICAgICAgICAgICBSb3V0ZSgnL3VzZXJzLzx1c2VyOlx3Kz4vcHJvZmlsZScsIFVzZXJQcm9maWxlSGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICd1c2VyLXByb2ZpbGUnKSwKKyAgICAgICAgICAgIFJvdXRlKCcvdXNlcnMvPHVzZXI6XHcrPi9wcm9qZWN0cycsIFVzZXJQcm9qZWN0c0hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAndXNlci1wcm9qZWN0cycpLAorICAgICAgICBdKQorCisgICAgV2UgY291bGQgcmVmYWN0b3IgdGhlbSB0byByZXVzZSB0aGUgY29tbW9uIHBhdGggcHJlZml4OjoKKworICAgICAgICBhcHAgPSBXU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgUGF0aFByZWZpeFJvdXRlKCcvdXNlcnMvPHVzZXI6XHcrPicsIFsKKyAgICAgICAgICAgICAgICBSb3V0ZSgnLycsIFVzZXJPdmVydmlld0hhbmRsZXIsICd1c2VyLW92ZXJ2aWV3JyksCisgICAgICAgICAgICAgICAgUm91dGUoJy9wcm9maWxlJywgVXNlclByb2ZpbGVIYW5kbGVyLCAndXNlci1wcm9maWxlJyksCisgICAgICAgICAgICAgICAgUm91dGUoJy9wcm9qZWN0cycsIFVzZXJQcm9qZWN0c0hhbmRsZXIsICd1c2VyLXByb2plY3RzJyksCisgICAgICAgICAgICBdKSwKKyAgICAgICAgXSkKKworICAgIFRoaXMgaXMgbm90IG9ubHkgY29udmVuaWVudCwgYnV0IGFsc28gcGVyZm9ybXMgYmV0dGVyOiB0aGUgbmVzdGVkIHJvdXRlcworICAgIHdpbGwgb25seSBiZSB0ZXN0ZWQgaWYgdGhlIHBhdGggcHJlZml4IG1hdGNoZXMuCisgICAgIiIiCisKKyAgICBfYXR0ciA9ICd0ZW1wbGF0ZScKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcmVmaXgsIHJvdXRlcyk6CisgICAgICAgICIiIkluaXRpYWxpemVzIGEgVVJMIHJvdXRlLgorCisgICAgICAgIDpwYXJhbSBwcmVmaXg6CisgICAgICAgICAgICBUaGUgcHJlZml4IHRvIGJlIHByZXBlbmRlZC4gSXQgbXVzdCBzdGFydCB3aXRoIGEgc2xhc2ggYnV0IG5vdAorICAgICAgICAgICAgZW5kIHdpdGggYSBzbGFzaC4KKyAgICAgICAgOnBhcmFtIHJvdXRlczoKKyAgICAgICAgICAgIEEgbGlzdCBvZiA6Y2xhc3M6YHdlYmFwcDIuUm91dGVgIGluc3RhbmNlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBwcmVmaXguc3RhcnRzd2l0aCgnLycpIGFuZCBub3QgcHJlZml4LmVuZHN3aXRoKCcvJyksIFwKKyAgICAgICAgICAgICdQYXRoIHByZWZpeGVzIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoIGJ1dCBub3QgZW5kIHdpdGggYSBzbGFzaC4nCisgICAgICAgIHN1cGVyKFBhdGhQcmVmaXhSb3V0ZSwgc2VsZikuX19pbml0X18ocHJlZml4LCByb3V0ZXMpCisKKyAgICBkZWYgZ2V0X21hdGNoX3JvdXRlcyhzZWxmKToKKyAgICAgICAgIyBUaGlzIHJvdXRlIHdpbGwgZG8gcHJlLW1hdGNoaW5nIGJlZm9yZSBtYXRjaGluZyB0aGUgbmVzdGVkIHJvdXRlcyEKKyAgICAgICAgeWllbGQgc2VsZgorCisgICAgZGVmIG1hdGNoKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBpZiBub3Qgc2VsZi5yZWdleC5tYXRjaCh1cmxsaWIudW5xdW90ZShyZXF1ZXN0LnBhdGgpKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0dXJuIF9tYXRjaF9yb3V0ZXMoc2VsZi5nZXRfbWF0Y2hfY2hpbGRyZW4sIHJlcXVlc3QpCisKKyAgICBAd2ViYXBwMi5jYWNoZWRfcHJvcGVydHkKKyAgICBkZWYgcmVnZXgoc2VsZik6CisgICAgICAgIHJlZ2V4LCByZXZlcnNlX3RlbXBsYXRlLCBhcmdzX2NvdW50LCBrd2FyZ3NfY291bnQsIHZhcmlhYmxlcyA9IFwKKyAgICAgICAgICAgIHdlYmFwcDIuX3BhcnNlX3JvdXRlX3RlbXBsYXRlKHNlbGYucHJlZml4ICsgJzw6Ly4qPicpCisgICAgICAgIHJldHVybiByZWdleAorCisKK2NsYXNzIFJlZGlyZWN0Um91dGUod2ViYXBwMi5Sb3V0ZSk6CisgICAgIiIiQSBjb252ZW5pZW5jZSByb3V0ZSBjbGFzcyBmb3IgZWFzeSByZWRpcmVjdHMuCisKKyAgICBJdCBhZGRzIHJlZGlyZWN0X3RvLCByZWRpcmVjdF90b19uYW1lIGFuZCBzdHJpY3Rfc2xhc2ggb3B0aW9ucyB0bworICAgIDpjbGFzczpgd2ViYXBwMi5Sb3V0ZWAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVtcGxhdGUsIGhhbmRsZXI9Tm9uZSwgbmFtZT1Ob25lLCBkZWZhdWx0cz1Ob25lLAorICAgICAgICAgICAgICAgICBidWlsZF9vbmx5PUZhbHNlLCBoYW5kbGVyX21ldGhvZD1Ob25lLCBtZXRob2RzPU5vbmUsCisgICAgICAgICAgICAgICAgIHNjaGVtZXM9Tm9uZSwgcmVkaXJlY3RfdG89Tm9uZSwgcmVkaXJlY3RfdG9fbmFtZT1Ob25lLAorICAgICAgICAgICAgICAgICBzdHJpY3Rfc2xhc2g9RmFsc2UpOgorICAgICAgICAiIiJJbml0aWFsaXplcyBhIFVSTCByb3V0ZS4gRXh0cmEgYXJndW1lbnRzIGNvbXBhcmVkIHRvCisgICAgICAgIDptZXRoOmB3ZWJhcHAyLlJvdXRlLl9faW5pdF9fYDoKKworICAgICAgICA6cGFyYW0gcmVkaXJlY3RfdG86CisgICAgICAgICAgICBBIFVSTCBzdHJpbmcgb3IgYSBjYWxsYWJsZSB0aGF0IHJldHVybnMgYSBVUkwuIElmIHNldCwgdGhpcyByb3V0ZQorICAgICAgICAgICAgaXMgdXNlZCB0byByZWRpcmVjdCB0byBpdC4gVGhlIGNhbGxhYmxlIGlzIGNhbGxlZCBwYXNzaW5nCisgICAgICAgICAgICBgYChoYW5kbGVyLCAqYXJncywgKiprd2FyZ3MpYGAgYXMgYXJndW1lbnRzLiBUaGlzIGlzIGEKKyAgICAgICAgICAgIGNvbnZlbmllbmNlIHRvIHVzZSA6Y2xhc3M6YFJlZGlyZWN0SGFuZGxlcmAuIFRoZXNlIHR3byBhcmUKKyAgICAgICAgICAgIGVxdWl2YWxlbnQ6OgorCisgICAgICAgICAgICAgICAgcm91dGUgPSBSb3V0ZSgnL2ZvbycsIGhhbmRsZXI9d2ViYXBwMi5SZWRpcmVjdEhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0cz17J191cmknOiAnL2Jhcid9KQorICAgICAgICAgICAgICAgIHJvdXRlID0gUm91dGUoJy9mb28nLCByZWRpcmVjdF90bz0nL2JhcicpCisKKyAgICAgICAgOnBhcmFtIHJlZGlyZWN0X3RvX25hbWU6CisgICAgICAgICAgICBTYW1lIGFzIGByZWRpcmVjdF90b2AsIGJ1dCB0aGUgdmFsdWUgaXMgdGhlIG5hbWUgb2YgYSByb3V0ZSB0bworICAgICAgICAgICAgcmVkaXJlY3QgdG8uIEluIHRoZSBleGFtcGxlIGJlbG93LCBhY2Nlc3NpbmcgJy9oZWxsby1hZ2Fpbicgd2lsbAorICAgICAgICAgICAgcmVkaXJlY3QgdG8gdGhlIHJvdXRlIG5hbWVkICdoZWxsbyc6OgorCisgICAgICAgICAgICAgICAgcm91dGUgPSBSb3V0ZSgnL2hlbGxvJywgaGFuZGxlcj1IZWxsb0hhbmRsZXIsIG5hbWU9J2hlbGxvJykKKyAgICAgICAgICAgICAgICByb3V0ZSA9IFJvdXRlKCcvaGVsbG8tYWdhaW4nLCByZWRpcmVjdF90b19uYW1lPSdoZWxsbycpCisKKyAgICAgICAgOnBhcmFtIHN0cmljdF9zbGFzaDoKKyAgICAgICAgICAgIElmIFRydWUsIHJlZGlyZWN0cyBhY2Nlc3MgdG8gdGhlIHNhbWUgVVJMIHdpdGggZGlmZmVyZW50IHRyYWlsaW5nCisgICAgICAgICAgICBzbGFzaCB0byB0aGUgc3RyaWN0IHBhdGggZGVmaW5lZCBpbiB0aGUgcm91dGUuIEZvciBleGFtcGxlLCB0YWtlCisgICAgICAgICAgICB0aGVzZSByb3V0ZXM6OgorCisgICAgICAgICAgICAgICAgcm91dGUgPSBSb3V0ZSgnL2ZvbycsIEZvb0hhbmRsZXIsIHN0cmljdF9zbGFzaD1UcnVlKQorICAgICAgICAgICAgICAgIHJvdXRlID0gUm91dGUoJy9iYXIvJywgQmFySGFuZGxlciwgc3RyaWN0X3NsYXNoPVRydWUpCisKKyAgICAgICAgICAgIEJlY2F1c2UgKipzdHJpY3Rfc2xhc2gqKiBpcyBUcnVlLCB0aGlzIGlzIHdoYXQgd2lsbCBoYXBwZW46CisKKyAgICAgICAgICAgIC0gQWNjZXNzIHRvIGBgL2Zvb2BgIHdpbGwgZXhlY3V0ZSBgYEZvb0hhbmRsZXJgYCBub3JtYWxseS4KKyAgICAgICAgICAgIC0gQWNjZXNzIHRvIGBgL2Jhci9gYCB3aWxsIGV4ZWN1dGUgYGBCYXJIYW5kbGVyYGAgbm9ybWFsbHkuCisgICAgICAgICAgICAtIEFjY2VzcyB0byBgYC9mb28vYGAgd2lsbCByZWRpcmVjdCB0byBgYC9mb29gYC4KKyAgICAgICAgICAgIC0gQWNjZXNzIHRvIGBgL2JhcmBgIHdpbGwgcmVkaXJlY3QgdG8gYGAvYmFyL2BgLgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIoUmVkaXJlY3RSb3V0ZSwgc2VsZikuX19pbml0X18oCisgICAgICAgICAgICB0ZW1wbGF0ZSwgaGFuZGxlcj1oYW5kbGVyLCBuYW1lPW5hbWUsIGRlZmF1bHRzPWRlZmF1bHRzLAorICAgICAgICAgICAgYnVpbGRfb25seT1idWlsZF9vbmx5LCBoYW5kbGVyX21ldGhvZD1oYW5kbGVyX21ldGhvZCwKKyAgICAgICAgICAgIG1ldGhvZHM9bWV0aG9kcywgc2NoZW1lcz1zY2hlbWVzKQorCisgICAgICAgIGlmIHN0cmljdF9zbGFzaCBhbmQgbm90IG5hbWU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdSb3V0ZXMgd2l0aCBzdHJpY3Rfc2xhc2ggbXVzdCBoYXZlIGEgbmFtZS4nKQorCisgICAgICAgIHNlbGYuc3RyaWN0X3NsYXNoID0gc3RyaWN0X3NsYXNoCisgICAgICAgIHNlbGYucmVkaXJlY3RfdG9fbmFtZSA9IHJlZGlyZWN0X3RvX25hbWUKKworICAgICAgICBpZiByZWRpcmVjdF90byBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFzc2VydCByZWRpcmVjdF90b19uYW1lIGlzIE5vbmUKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlciA9IHdlYmFwcDIuUmVkaXJlY3RIYW5kbGVyCisgICAgICAgICAgICBzZWxmLmRlZmF1bHRzWydfdXJpJ10gPSByZWRpcmVjdF90bworCisgICAgZGVmIGdldF9tYXRjaF9yb3V0ZXMoc2VsZik6CisgICAgICAgICIiIkdlbmVyYXRvciB0byBnZXQgYWxsIHJvdXRlcyB0aGF0IGNhbiBiZSBtYXRjaGVkIGZyb20gYSByb3V0ZS4KKworICAgICAgICA6eWllbGRzOgorICAgICAgICAgICAgVGhpcyByb3V0ZSBvciBhbGwgbmVzdGVkIHJvdXRlcyB0aGF0IGNhbiBiZSBtYXRjaGVkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5yZWRpcmVjdF90b19uYW1lOgorICAgICAgICAgICAgbWFpbl9yb3V0ZSA9IHNlbGYuX2dldF9yZWRpcmVjdF9yb3V0ZShuYW1lPXNlbGYucmVkaXJlY3RfdG9fbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1haW5fcm91dGUgPSBzZWxmCisKKyAgICAgICAgaWYgbm90IHNlbGYuYnVpbGRfb25seToKKyAgICAgICAgICAgIGlmIHNlbGYuc3RyaWN0X3NsYXNoIGlzIFRydWU6CisgICAgICAgICAgICAgICAgaWYgc2VsZi50ZW1wbGF0ZS5lbmRzd2l0aCgnLycpOgorICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IHNlbGYudGVtcGxhdGVbOi0xXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gc2VsZi50ZW1wbGF0ZSArICcvJworCisgICAgICAgICAgICAgICAgeWllbGQgbWFpbl9yb3V0ZQorICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX2dldF9yZWRpcmVjdF9yb3V0ZSh0ZW1wbGF0ZT10ZW1wbGF0ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgeWllbGQgbWFpbl9yb3V0ZQorCisgICAgZGVmIF9nZXRfcmVkaXJlY3Rfcm91dGUoc2VsZiwgdGVtcGxhdGU9Tm9uZSwgbmFtZT1Ob25lKToKKyAgICAgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZSBvciBzZWxmLnRlbXBsYXRlCisgICAgICAgIG5hbWUgPSBuYW1lIG9yIHNlbGYubmFtZQorICAgICAgICBkZWZhdWx0cyA9IHNlbGYuZGVmYXVsdHMuY29weSgpCisgICAgICAgIGRlZmF1bHRzLnVwZGF0ZSh7CisgICAgICAgICAgICAnX3VyaSc6IHNlbGYuX3JlZGlyZWN0LAorICAgICAgICAgICAgJ19uYW1lJzogbmFtZSwKKyAgICAgICAgfSkKKyAgICAgICAgbmV3X3JvdXRlID0gd2ViYXBwMi5Sb3V0ZSh0ZW1wbGF0ZSwgd2ViYXBwMi5SZWRpcmVjdEhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM9ZGVmYXVsdHMpCisgICAgICAgIHJldHVybiBuZXdfcm91dGUKKworICAgIGRlZiBfcmVkaXJlY3Qoc2VsZiwgaGFuZGxlciwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIyBHZXQgZnJvbSByZXF1ZXN0IGJlY2F1c2UgYXJncyBpcyBlbXB0eSBpZiBuYW1lZCByb3V0ZXMgYXJlIHNldD8KKyAgICAgICAgIyBhcmdzLCBrd2FyZ3MgPSAoaGFuZGxlci5yZXF1ZXN0LnJvdXRlX2FyZ3MsCisgICAgICAgICMgICAgICAgICAgICAgICAgIGhhbmRsZXIucmVxdWVzdC5yb3V0ZV9rd2FyZ3MpCisgICAgICAgIGt3YXJncy5wb3AoJ191cmknLCBOb25lKQorICAgICAgICBrd2FyZ3MucG9wKCdfY29kZScsIE5vbmUpCisgICAgICAgIHJldHVybiBoYW5kbGVyLnVyaV9mb3Ioa3dhcmdzLnBvcCgnX25hbWUnKSwgKmFyZ3MsICoqa3dhcmdzKQorCisKK2RlZiBfbWF0Y2hfcm91dGVzKGl0ZXJfZnVuYywgcmVxdWVzdCwgZXh0cmFfYXJncz1Ob25lLCBleHRyYV9rd2FyZ3M9Tm9uZSk6CisgICAgIiIiVHJpZXMgdG8gbWF0Y2ggYSByb3V0ZSBnaXZlbiBhbiBpdGVyYXRvci4iIiIKKyAgICBtZXRob2Rfbm90X2FsbG93ZWQgPSBGYWxzZQorICAgIGZvciByb3V0ZSBpbiBpdGVyX2Z1bmMoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbWF0Y2ggPSByb3V0ZS5tYXRjaChyZXF1ZXN0KQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgcm91dGUsIGFyZ3MsIGt3YXJncyA9IG1hdGNoCisgICAgICAgICAgICAgICAgaWYgZXh0cmFfYXJnczoKKyAgICAgICAgICAgICAgICAgICAgYXJncyArPSBleHRyYV9hcmdzCisKKyAgICAgICAgICAgICAgICBpZiBleHRyYV9rd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgIGt3YXJncy51cGRhdGUoZXh0cmFfa3dhcmdzKQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlLCBhcmdzLCBrd2FyZ3MKKyAgICAgICAgZXhjZXB0IGV4Yy5IVFRQTWV0aG9kTm90QWxsb3dlZDoKKyAgICAgICAgICAgIG1ldGhvZF9ub3RfYWxsb3dlZCA9IFRydWUKKworICAgIGlmIG1ldGhvZF9ub3RfYWxsb3dlZDoKKyAgICAgICAgcmFpc2UgZXhjLkhUVFBNZXRob2ROb3RBbGxvd2VkKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3NlY3VyZWNvb2tpZS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3NlY3VyZWNvb2tpZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmRlMzg1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvc2VjdXJlY29va2llLnB5CkBAIC0wLDAgKzEsMTA0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMuc2VjdXJlY29va2llCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBBIHNlcmlhbGl6ZXIgZm9yIHNpZ25lZCBjb29raWVzLgorCisgICAgOmNvcHlyaWdodDogMjAxMSBieSB0aXBmeS5vcmcuCisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitpbXBvcnQgQ29va2llCitpbXBvcnQgaGFzaGxpYgoraW1wb3J0IGhtYWMKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdGltZQorCitmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBqc29uCitmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBzZWN1cml0eQorCisKK2NsYXNzIFNlY3VyZUNvb2tpZVNlcmlhbGl6ZXIob2JqZWN0KToKKyAgICAiIiJTZXJpYWxpemVzIGFuZCBkZXNlcmlhbGl6ZXMgc2VjdXJlIGNvb2tpZSB2YWx1ZXMuCisKKyAgICBFeHRyYWN0ZWQgZnJvbSBgVG9ybmFkb2BfIGFuZCBtb2RpZmllZC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZWNyZXRfa2V5KToKKyAgICAgICAgIiIiSW5pdGlsaWF6ZXMgdGhlIHNlcmlhbGl6ZXIvZGVzZXJpYWxpemVyLgorCisgICAgICAgIDpwYXJhbSBzZWNyZXRfa2V5OgorICAgICAgICAgICAgQSByYW5kb20gc3RyaW5nIHRvIGJlIHVzZWQgYXMgdGhlIEhNQUMgc2VjcmV0IGZvciB0aGUgY29va2llCisgICAgICAgICAgICBzaWduYXR1cmUuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnNlY3JldF9rZXkgPSBzZWNyZXRfa2V5CisKKyAgICBkZWYgc2VyaWFsaXplKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiU2VyaWFsaXplcyBhIHNpZ25lZCBjb29raWUgdmFsdWUuCisKKyAgICAgICAgOnBhcmFtIG5hbWU6CisgICAgICAgICAgICBDb29raWUgbmFtZS4KKyAgICAgICAgOnBhcmFtIHZhbHVlOgorICAgICAgICAgICAgQ29va2llIHZhbHVlIHRvIGJlIHNlcmlhbGl6ZWQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSBzZXJpYWxpemVkIHZhbHVlIHJlYWR5IHRvIGJlIHN0b3JlZCBpbiBhIGNvb2tpZS4KKyAgICAgICAgIiIiCisgICAgICAgIHRpbWVzdGFtcCA9IHN0cihzZWxmLl9nZXRfdGltZXN0YW1wKCkpCisgICAgICAgIHZhbHVlID0gc2VsZi5fZW5jb2RlKHZhbHVlKQorICAgICAgICBzaWduYXR1cmUgPSBzZWxmLl9nZXRfc2lnbmF0dXJlKG5hbWUsIHZhbHVlLCB0aW1lc3RhbXApCisgICAgICAgIHJldHVybiAnfCcuam9pbihbdmFsdWUsIHRpbWVzdGFtcCwgc2lnbmF0dXJlXSkKKworICAgIGRlZiBkZXNlcmlhbGl6ZShzZWxmLCBuYW1lLCB2YWx1ZSwgbWF4X2FnZT1Ob25lKToKKyAgICAgICAgIiIiRGVzZXJpYWxpemVzIGEgc2lnbmVkIGNvb2tpZSB2YWx1ZS4KKworICAgICAgICA6cGFyYW0gbmFtZToKKyAgICAgICAgICAgIENvb2tpZSBuYW1lLgorICAgICAgICA6cGFyYW0gdmFsdWU6CisgICAgICAgICAgICBBIGNvb2tpZSB2YWx1ZSB0byBiZSBkZXNlcmlhbGl6ZWQuCisgICAgICAgIDpwYXJhbSBtYXhfYWdlOgorICAgICAgICAgICAgTWF4aW11bSBhZ2UgaW4gc2Vjb25kcyBmb3IgYSB2YWxpZCBjb29raWUuIElmIHRoZSBjb29raWUgaXMgb2xkZXIKKyAgICAgICAgICAgIHRoYW4gdGhpcywgcmV0dXJucyBOb25lLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBkZXNlcmlhbGl6ZWQgc2VjdXJlIGNvb2tpZSwgb3IgTm9uZSBpZiBpdCBpcyBub3QgdmFsaWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICMgVW5xdW90ZSBmb3Igb2xkIFdlYk9iLgorICAgICAgICB2YWx1ZSA9IENvb2tpZS5fdW5xdW90ZSh2YWx1ZSkKKworICAgICAgICBwYXJ0cyA9IHZhbHVlLnNwbGl0KCd8JykKKyAgICAgICAgaWYgbGVuKHBhcnRzKSAhPSAzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBzaWduYXR1cmUgPSBzZWxmLl9nZXRfc2lnbmF0dXJlKG5hbWUsIHBhcnRzWzBdLCBwYXJ0c1sxXSkKKworICAgICAgICBpZiBub3Qgc2VjdXJpdHkuY29tcGFyZV9oYXNoZXMocGFydHNbMl0sIHNpZ25hdHVyZSk6CisgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoJ0ludmFsaWQgY29va2llIHNpZ25hdHVyZSAlcicsIHZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBpZiBtYXhfYWdlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgaW50KHBhcnRzWzFdKSA8IHNlbGYuX2dldF90aW1lc3RhbXAoKSAtIG1heF9hZ2U6CisgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdFeHBpcmVkIGNvb2tpZSAlcicsIHZhbHVlKQorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2RlY29kZShwYXJ0c1swXSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnQ29va2llIHZhbHVlIGZhaWxlZCB0byBiZSBkZWNvZGVkOiAlcicsIHBhcnRzWzBdKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfZW5jb2RlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgcmV0dXJuIGpzb24uYjY0ZW5jb2RlKHZhbHVlKQorCisgICAgZGVmIF9kZWNvZGUoc2VsZiwgdmFsdWUpOgorICAgICAgICByZXR1cm4ganNvbi5iNjRkZWNvZGUodmFsdWUpCisKKyAgICBkZWYgX2dldF90aW1lc3RhbXAoc2VsZik6CisgICAgICAgIHJldHVybiBpbnQodGltZS50aW1lKCkpCisKKyAgICBkZWYgX2dldF9zaWduYXR1cmUoc2VsZiwgKnBhcnRzKToKKyAgICAgICAgIiIiR2VuZXJhdGVzIGFuIEhNQUMgc2lnbmF0dXJlLiIiIgorICAgICAgICBzaWduYXR1cmUgPSBobWFjLm5ldyhzZWxmLnNlY3JldF9rZXksIGRpZ2VzdG1vZD1oYXNobGliLnNoYTEpCisgICAgICAgIHNpZ25hdHVyZS51cGRhdGUoJ3wnLmpvaW4ocGFydHMpKQorICAgICAgICByZXR1cm4gc2lnbmF0dXJlLmhleGRpZ2VzdCgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9zZWN1cml0eS5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3NlY3VyaXR5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmOWIxMzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9zZWN1cml0eS5weQpAQCAtMCwwICsxLDIxOCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLnNlY3VyaXR5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIFNlY3VyaXR5IHJlbGF0ZWQgaGVscGVycyBzdWNoIGFzIHNlY3VyZSBwYXNzd29yZCBoYXNoaW5nIHRvb2xzIGFuZCBhCisgICAgcmFuZG9tIHRva2VuIGdlbmVyYXRvci4KKworICAgIDpjb3B5cmlnaHQ6IChjKSAyMDEwIGJ5IHRoZSBXZXJremV1ZyBUZWFtLCBzZWUgQVVUSE9SUyBmb3IgbW9yZSBkZXRhaWxzLgorICAgIDpsaWNlbnNlOiBCU0QsIHNlZSBMSUNFTlNFIGZvciBtb3JlIGRldGFpbHMuCisgICAgOmNvcHlyaWdodDogKGMpIDIwMTEgWWVzdWRlZXAgTWFuZ2FsYXBpbGx5IDx5ZXN1ZGVlcEBnbWFpbC5jb20+CisgICAgOmxpY2Vuc2U6IEFwYWNoZSBTb3R3YXJlIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCisKK2ltcG9ydCBoYXNobGliCitpbXBvcnQgaG1hYworaW1wb3J0IG1hdGgKK2ltcG9ydCByYW5kb20KK2ltcG9ydCBzdHJpbmcKKworaW1wb3J0IHdlYmFwcDIKKworX3JuZyA9IHJhbmRvbS5TeXN0ZW1SYW5kb20oKQorCitIRVhBREVDSU1BTF9ESUdJVFMgPSBzdHJpbmcuZGlnaXRzICsgJ2FiY2RlZicKK0RJR0lUUyA9IHN0cmluZy5kaWdpdHMKK0xPV0VSQ0FTRV9BTFBIQSA9IHN0cmluZy5sb3dlcmNhc2UKK1VQUEVSQ0FTRV9BTFBIQSA9IHN0cmluZy51cHBlcmNhc2UKK0xPV0VSQ0FTRV9BTFBIQU5VTUVSSUMgPSBzdHJpbmcubG93ZXJjYXNlICsgc3RyaW5nLmRpZ2l0cworVVBQRVJDQVNFX0FMUEhBTlVNRVJJQyA9IHN0cmluZy51cHBlcmNhc2UgKyBzdHJpbmcuZGlnaXRzCitBTFBIQSA9IHN0cmluZy5sZXR0ZXJzCitBTFBIQU5VTUVSSUMgPSBzdHJpbmcubGV0dGVycyArIHN0cmluZy5kaWdpdHMKK0FTQ0lJX1BSSU5UQUJMRSA9IHN0cmluZy5sZXR0ZXJzICsgc3RyaW5nLmRpZ2l0cyArIHN0cmluZy5wdW5jdHVhdGlvbgorQUxMX1BSSU5UQUJMRSA9IHN0cmluZy5wcmludGFibGUKK1BVTkNUVUFUSU9OID0gc3RyaW5nLnB1bmN0dWF0aW9uCisKKworZGVmIGdlbmVyYXRlX3JhbmRvbV9zdHJpbmcobGVuZ3RoPU5vbmUsIGVudHJvcHk9Tm9uZSwgcG9vbD1BTFBIQU5VTUVSSUMpOgorICAgICIiIkdlbmVyYXRlcyBhIHJhbmRvbSBzdHJpbmcgdXNpbmcgdGhlIGdpdmVuIHNlcXVlbmNlIHBvb2wuCisKKyAgICBUbyBnZW5lcmF0ZSBzdHJvbmdlciBwYXNzd29yZHMsIHVzZSBBU0NJSV9QUklOVEFCTEUgYXMgcG9vbC4KKworICAgIEVudHJvcHkgaXM6CisKKyAgICAgICAgIEggPSBsb2cyKE4qKkwpCisKKyAgICB3aGVyZToKKworICAgIC0gSCBpcyB0aGUgZW50cm9weSBpbiBiaXRzLgorICAgIC0gTiBpcyB0aGUgcG9zc2libGUgc3ltYm9sIGNvdW50CisgICAgLSBMIGlzIGxlbmd0aCBvZiBzdHJpbmcgb2Ygc3ltYm9scworCisgICAgRW50cm9weSBjaGFydDo6CisKKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgU3ltYm9sIHNldCAgICAgICAgICAgICAgU3ltYm9sIENvdW50IChOKSAgRW50cm9weSBwZXIgc3ltYm9sIChIKQorICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBIRVhBREVDSU1BTF9ESUdJVFMgICAgICAxNiAgICAgICAgICAgICAgICA0LjAwMDAgYml0cworICAgICAgICBESUdJVFMgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAzLjMyMTkgYml0cworICAgICAgICBMT1dFUkNBU0VfQUxQSEEgICAgICAgICAyNiAgICAgICAgICAgICAgICA0LjcwMDQgYml0cworICAgICAgICBVUFBFUkNBU0VfQUxQSEEgICAgICAgICAyNiAgICAgICAgICAgICAgICA0LjcwMDQgYml0cworICAgICAgICBQVU5DVFVBVElPTiAgICAgICAgICAgICAzMiAgICAgICAgICAgICAgICA1LjAwMDAgYml0cworICAgICAgICBMT1dFUkNBU0VfQUxQSEFOVU1FUklDICAzNiAgICAgICAgICAgICAgICA1LjE2OTkgYml0cworICAgICAgICBVUFBFUkNBU0VfQUxQSEFOVU1FUklDICAzNiAgICAgICAgICAgICAgICA1LjE2OTkgYml0cworICAgICAgICBBTFBIQSAgICAgICAgICAgICAgICAgICA1MiAgICAgICAgICAgICAgICA1LjcwMDQgYml0cworICAgICAgICBBTFBIQU5VTUVSSUMgICAgICAgICAgICA2MiAgICAgICAgICAgICAgICA1Ljk1NDIgYml0cworICAgICAgICBBU0NJSV9QUklOVEFCTEUgICAgICAgICA5NCAgICAgICAgICAgICAgICA2LjU1NDYgYml0cworICAgICAgICBBTExfUFJJTlRBQkxFICAgICAgICAgICAxMDAgICAgICAgICAgICAgICA2LjY0MzggYml0cworCisgICAgOnBhcmFtIGxlbmd0aDoKKyAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgcmFuZG9tIHNlcXVlbmNlLiBVc2UgdGhpcyBvciBgZW50cm9weWAsIG5vdCBib3RoLgorICAgIDpwYXJhbSBlbnRyb3B5OgorICAgICAgICBEZXNpcmVkIGVudHJvcHkgaW4gYml0cy4gVXNlIHRoaXMgb3IgYGxlbmd0aGAsIG5vdCBib3RoLgorICAgICAgICBVc2UgdGhpcyB0byBnZW5lcmF0ZSBwYXNzd29yZHMgYmFzZWQgb24gZW50cm9weToKKyAgICAgICAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9QYXNzd29yZF9zdHJlbmd0aAorICAgIDpwYXJhbSBwb29sOgorICAgICAgICBBIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgZnJvbSB3aGljaCByYW5kb20gY2hhcmFjdGVycyBhcmUgY2hvc2VuLgorICAgICAgICBEZWZhdWx0IHRvIGNhc2Utc2Vuc2l0aXZlIGFscGhhLW51bWVyaWMgY2hhcmFjdGVycy4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgQSBzdHJpbmcgd2l0aCBjaGFyYWN0ZXJzIHJhbmRvbWx5IGNob3NlbiBmcm9tIHRoZSBwb29sLgorICAgICIiIgorICAgIHBvb2wgPSBsaXN0KHNldChwb29sKSkKKworICAgIGlmIGxlbmd0aCBhbmQgZW50cm9weToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignVXNlIGxlbmd0aCBvciBlbnRyb3B5LCBub3QgYm90aC4nKQorCisgICAgaWYgbGVuZ3RoIDw9IDAgYW5kIGVudHJvcHkgPD0gMDoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTGVuZ3RoIG9yIGVudHJvcHkgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4nKQorCisgICAgaWYgZW50cm9weToKKyAgICAgICAgbG9nX29mXzIgPSAwLjY5MzE0NzE4MDU1OTk0NTMKKyAgICAgICAgbGVuZ3RoID0gbG9uZyhtYXRoLmNlaWwoKGxvZ19vZl8yIC8gbWF0aC5sb2cobGVuKHBvb2wpKSkgKiBlbnRyb3B5KSkKKworICAgIHJldHVybiAnJy5qb2luKF9ybmcuY2hvaWNlKHBvb2wpIGZvciBfIGluIHhyYW5nZShsZW5ndGgpKQorCisKK2RlZiBnZW5lcmF0ZV9wYXNzd29yZF9oYXNoKHBhc3N3b3JkLCBtZXRob2Q9J3NoYTEnLCBsZW5ndGg9MjIsIHBlcHBlcj1Ob25lKToKKyAgICAiIiJIYXNoZXMgYSBwYXNzd29yZC4KKworICAgIFRoZSBmb3JtYXQgb2YgdGhlIHN0cmluZyByZXR1cm5lZCBpbmNsdWRlcyB0aGUgbWV0aG9kIHRoYXQgd2FzIHVzZWQKKyAgICBzbyB0aGF0IDpmdW5jOmBjaGVja19wYXNzd29yZF9oYXNoYCBjYW4gY2hlY2sgdGhlIGhhc2guCisKKyAgICBUaGlzIG1ldGhvZCBjYW4gKipub3QqKiBnZW5lcmF0ZSB1bnNhbHRlZCBwYXNzd29yZHMgYnV0IGl0IGlzIHBvc3NpYmxlCisgICAgdG8gc2V0IHRoZSBtZXRob2QgdG8gcGxhaW4gdG8gZW5mb3JjZSBwbGFpbnRleHQgcGFzc3dvcmRzLiBJZiBhIHNhbHQKKyAgICBpcyB1c2VkLCBobWFjIGlzIHVzZWQgaW50ZXJuYWxseSB0byBzYWx0IHRoZSBwYXNzd29yZC4KKworICAgIDpwYXJhbSBwYXNzd29yZDoKKyAgICAgICAgVGhlIHBhc3N3b3JkIHRvIGhhc2guCisgICAgOnBhcmFtIG1ldGhvZDoKKyAgICAgICAgVGhlIGhhc2ggbWV0aG9kIHRvIHVzZSAoYGAnbWQ1J2BgIG9yIGBgJ3NoYTEnYGApLgorICAgIDpwYXJhbSBsZW5ndGg6CisgICAgICAgIExlbmd0aCBvZiB0aGUgc2FsdCB0byBiZSBjcmVhdGVkLgorICAgIDpwYXJhbSBwZXBwZXI6CisgICAgICAgIEEgc2VjcmV0IGNvbnN0YW50IHN0b3JlZCBpbiB0aGUgYXBwbGljYXRpb24gY29kZS4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgQSBmb3JtYXR0ZWQgaGFzaGVkIHN0cmluZyB0aGF0IGxvb2tzIGxpa2UgdGhpczo6CisKKyAgICAgICAgICAgIG1ldGhvZCRzYWx0JGhhc2gKKworICAgIFRoaXMgZnVuY3Rpb24gd2FzIHBvcnRlZCBhbmQgYWRhcHRlZCBmcm9tIGBXZXJremV1Z2BfLgorICAgICIiIgorICAgIHNhbHQgPSBtZXRob2QgIT0gJ3BsYWluJyBhbmQgZ2VuZXJhdGVfcmFuZG9tX3N0cmluZyhsZW5ndGgpIG9yICcnCisgICAgaGFzaHZhbCA9IGhhc2hfcGFzc3dvcmQocGFzc3dvcmQsIG1ldGhvZCwgc2FsdCwgcGVwcGVyKQorICAgIGlmIGhhc2h2YWwgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdJbnZhbGlkIG1ldGhvZCAlci4nICUgbWV0aG9kKQorCisgICAgcmV0dXJuICclcyQlcyQlcycgJSAoaGFzaHZhbCwgbWV0aG9kLCBzYWx0KQorCisKK2RlZiBjaGVja19wYXNzd29yZF9oYXNoKHBhc3N3b3JkLCBwd2hhc2gsIHBlcHBlcj1Ob25lKToKKyAgICAiIiJDaGVja3MgYSBwYXNzd29yZCBhZ2FpbnN0IGEgZ2l2ZW4gc2FsdGVkIGFuZCBoYXNoZWQgcGFzc3dvcmQgdmFsdWUuCisKKyAgICBJbiBvcmRlciB0byBzdXBwb3J0IHVuc2FsdGVkIGxlZ2FjeSBwYXNzd29yZHMgdGhpcyBtZXRob2Qgc3VwcG9ydHMKKyAgICBwbGFpbiB0ZXh0IHBhc3N3b3JkcywgbWQ1IGFuZCBzaGExIGhhc2hlcyAoYm90aCBzYWx0ZWQgYW5kIHVuc2FsdGVkKS4KKworICAgIDpwYXJhbSBwYXNzd29yZDoKKyAgICAgICAgVGhlIHBsYWludGV4dCBwYXNzd29yZCB0byBjb21wYXJlIGFnYWluc3QgdGhlIGhhc2guCisgICAgOnBhcmFtIHB3aGFzaDoKKyAgICAgICAgQSBoYXNoZWQgc3RyaW5nIGxpa2UgcmV0dXJuZWQgYnkgOmZ1bmM6YGdlbmVyYXRlX3Bhc3N3b3JkX2hhc2hgLgorICAgIDpwYXJhbSBwZXBwZXI6CisgICAgICAgIEEgc2VjcmV0IGNvbnN0YW50IHN0b3JlZCBpbiB0aGUgYXBwbGljYXRpb24gY29kZS4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgYFRydWVgIGlmIHRoZSBwYXNzd29yZCBtYXRjaGVkLCBgRmFsc2VgIG90aGVyd2lzZS4KKworICAgIFRoaXMgZnVuY3Rpb24gd2FzIHBvcnRlZCBhbmQgYWRhcHRlZCBmcm9tIGBXZXJremV1Z2BfLgorICAgICIiIgorICAgIGlmIHB3aGFzaC5jb3VudCgnJCcpIDwgMjoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBoYXNodmFsLCBtZXRob2QsIHNhbHQgPSBwd2hhc2guc3BsaXQoJyQnLCAyKQorICAgIHJldHVybiBoYXNoX3Bhc3N3b3JkKHBhc3N3b3JkLCBtZXRob2QsIHNhbHQsIHBlcHBlcikgPT0gaGFzaHZhbAorCisKK2RlZiBoYXNoX3Bhc3N3b3JkKHBhc3N3b3JkLCBtZXRob2QsIHNhbHQ9Tm9uZSwgcGVwcGVyPU5vbmUpOgorICAgICIiIkhhc2hlcyBhIHBhc3N3b3JkLgorCisgICAgU3VwcG9ydHMgcGxhaW50ZXh0IHdpdGhvdXQgc2FsdCwgdW5zYWx0ZWQgYW5kIHNhbHRlZCBwYXNzd29yZHMuIEluIGNhc2UKKyAgICBzYWx0ZWQgcGFzc3dvcmRzIGFyZSB1c2VkIGhtYWMgaXMgdXNlZC4KKworICAgIDpwYXJhbSBwYXNzd29yZDoKKyAgICAgICAgVGhlIHBhc3N3b3JkIHRvIGJlIGhhc2hlZC4KKyAgICA6cGFyYW0gbWV0aG9kOgorICAgICAgICBBIG1ldGhvZCBmcm9tIGBgaGFzaGxpYmBgLCBlLmcuLCBgc2hhMWAgb3IgYG1kNWAsIG9yIGBwbGFpbmAuCisgICAgOnBhcmFtIHNhbHQ6CisgICAgICAgIEEgcmFuZG9tIHNhbHQgc3RyaW5nLgorICAgIDpwYXJhbSBwZXBwZXI6CisgICAgICAgIEEgc2VjcmV0IGNvbnN0YW50IHN0b3JlZCBpbiB0aGUgYXBwbGljYXRpb24gY29kZS4KKyAgICA6cmV0dXJuczoKKyAgICAgICAgQSBoYXNoZWQgcGFzc3dvcmQuCisKKyAgICBUaGlzIGZ1bmN0aW9uIHdhcyBwb3J0ZWQgYW5kIGFkYXB0ZWQgZnJvbSBgV2Vya3pldWdgXy4KKyAgICAiIiIKKyAgICBwYXNzd29yZCA9IHdlYmFwcDIuX3RvX3V0ZjgocGFzc3dvcmQpCisgICAgaWYgbWV0aG9kID09ICdwbGFpbic6CisgICAgICAgIHJldHVybiBwYXNzd29yZAorCisgICAgbWV0aG9kID0gZ2V0YXR0cihoYXNobGliLCBtZXRob2QsIE5vbmUpCisgICAgaWYgbm90IG1ldGhvZDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGlmIHNhbHQ6CisgICAgICAgIGggPSBobWFjLm5ldyh3ZWJhcHAyLl90b191dGY4KHNhbHQpLCBwYXNzd29yZCwgbWV0aG9kKQorICAgIGVsc2U6CisgICAgICAgIGggPSBtZXRob2QocGFzc3dvcmQpCisKKyAgICBpZiBwZXBwZXI6CisgICAgICAgIGggPSBobWFjLm5ldyh3ZWJhcHAyLl90b191dGY4KHBlcHBlciksIGguaGV4ZGlnZXN0KCksIG1ldGhvZCkKKworICAgIHJldHVybiBoLmhleGRpZ2VzdCgpCisKKworZGVmIGNvbXBhcmVfaGFzaGVzKGEsIGIpOgorICAgICIiIkNoZWNrcyBpZiB0d28gaGFzaCBzdHJpbmdzIGFyZSBpZGVudGljYWwuCisKKyAgICBUaGUgaW50ZW50aW9uIGlzIHRvIG1ha2UgdGhlIHJ1bm5pbmcgdGltZSBiZSBsZXNzIGRlcGVuZGFudCBvbiB0aGUgc2l6ZSBvZgorICAgIHRoZSBzdHJpbmcuCisKKyAgICA6cGFyYW0gYToKKyAgICAgICAgU3RyaW5nIDEuCisgICAgOnBhcmFtIGI6CisgICAgICAgIFN0cmluZyAyLgorICAgIDpyZXR1cm5zOgorICAgICAgICBUcnVlIGlmIGJvdGggc3RyaW5ncyBhcmUgZXF1YWwsIEZhbHNlIG90aGVyd2lzZS4KKyAgICAiIiIKKyAgICBpZiBsZW4oYSkgIT0gbGVuKGIpOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHJlc3VsdCA9IDAKKyAgICBmb3IgeCwgeSBpbiB6aXAoYSwgYik6CisgICAgICAgIHJlc3VsdCB8PSBvcmQoeCkgXiBvcmQoeSkKKworICAgIHJldHVybiByZXN1bHQgPT0gMAorCisKKyMgT2xkIG5hbWVzLgorY3JlYXRlX3Rva2VuID0gZ2VuZXJhdGVfcmFuZG9tX3N0cmluZworY3JlYXRlX3Bhc3N3b3JkX2hhc2ggPSBnZW5lcmF0ZV9wYXNzd29yZF9oYXNoCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9zZXNzaW9ucy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3Nlc3Npb25zLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNmRmZTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9zZXNzaW9ucy5weQpAQCAtMCwwICsxLDQ3NiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLnNlc3Npb25zCisgICAgPT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIExpZ2h0d2VpZ2h0IGJ1dCBmbGV4aWJsZSBzZXNzaW9uIHN1cHBvcnQgZm9yIHdlYmFwcDIuCisKKyAgICA6Y29weXJpZ2h0OiAyMDExIGJ5IHRpcGZ5Lm9yZy4KKyAgICA6bGljZW5zZTogQXBhY2hlIFNvdHdhcmUgTGljZW5zZSwgc2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCisiIiIKK2ltcG9ydCByZQorCitpbXBvcnQgd2ViYXBwMgorCitmcm9tIHdlYmFwcDJfZXh0cmFzIGltcG9ydCBzZWN1cmVjb29raWUKK2Zyb20gd2ViYXBwMl9leHRyYXMgaW1wb3J0IHNlY3VyaXR5CisKKyM6IERlZmF1bHQgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRoaXMgbW9kdWxlLiBLZXlzIGFyZToKKyM6CisjOiBzZWNyZXRfa2V5CisjOiAgICAgU2VjcmV0IGtleSB0byBnZW5lcmF0ZSBzZXNzaW9uIGNvb2tpZXMuIFNldCB0aGlzIHRvIHNvbWV0aGluZyByYW5kb20KKyM6ICAgICBhbmQgdW5ndWVzc2FibGUuIFRoaXMgaXMgdGhlIG9ubHkgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBrZXk6CisjOiAgICAgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZCBpZiBpdCBpcyBub3QgZGVmaW5lZC4KKyM6CisjOiBjb29raWVfbmFtZQorIzogICAgIE5hbWUgb2YgdGhlIGNvb2tpZSB0byBzYXZlIGEgc2Vzc2lvbiBvciBzZXNzaW9uIGlkLiBEZWZhdWx0IGlzCisjOiAgICAgYHNlc3Npb25gLgorIzoKKyM6IHNlc3Npb25fbWF4X2FnZToKKyM6ICAgICBEZWZhdWx0IHNlc3Npb24gZXhwaXJhdGlvbiB0aW1lIGluIHNlY29uZHMuIExpbWl0cyB0aGUgZHVyYXRpb24gb2YgdGhlCisjOiAgICAgY29udGVudHMgb2YgYSBjb29raWUsIGV2ZW4gaWYgYSBzZXNzaW9uIGNvb2tpZSBleGlzdHMuIElmIE5vbmUsIHRoZQorIzogICAgIGNvbnRlbnRzIGxhc3RzIGFzIGxvbmcgYXMgdGhlIGNvb2tpZSBpcyB2YWxpZC4gRGVmYXVsdCBpcyBOb25lLgorIzoKKyM6IGNvb2tpZV9hcmdzCisjOiAgICAgRGVmYXVsdCBrZXl3b3JkIGFyZ3VtZW50cyB1c2VkIHRvIHNldCBhIGNvb2tpZS4gS2V5cyBhcmU6CisjOgorIzogICAgIC0gbWF4X2FnZTogQ29va2llIG1heCBhZ2UgaW4gc2Vjb25kcy4gTGltaXRzIHRoZSBkdXJhdGlvbgorIzogICAgICAgb2YgYSBzZXNzaW9uIGNvb2tpZS4gSWYgTm9uZSwgdGhlIGNvb2tpZSBsYXN0cyB1bnRpbCB0aGUgY2xpZW50CisjOiAgICAgICBpcyBjbG9zZWQuIERlZmF1bHQgaXMgTm9uZS4KKyM6CisjOiAgICAgLSBkb21haW46IERvbWFpbiBvZiB0aGUgY29va2llLiBUbyB3b3JrIGFjY3Jvc3Mgc3ViZG9tYWlucyB0aGUKKyM6ICAgICAgIGRvbWFpbiBtdXN0IGJlIHNldCB0byB0aGUgbWFpbiBkb21haW4gd2l0aCBhIHByZWNlZGluZyBkb3QsIGUuZy4sCisjOiAgICAgICBjb29raWVzIHNldCBmb3IgYC5teWRvbWFpbi5vcmdgIHdpbGwgd29yayBpbiBgZm9vLm15ZG9tYWluLm9yZ2AgYW5kCisjOiAgICAgICBgYmFyLm15ZG9tYWluLm9yZ2AuIERlZmF1bHQgaXMgTm9uZSwgd2hpY2ggbWVhbnMgdGhhdCBjb29raWVzIHdpbGwKKyM6ICAgICAgIG9ubHkgd29yayBmb3IgdGhlIGN1cnJlbnQgc3ViZG9tYWluLgorIzoKKyM6ICAgICAtIHBhdGg6IFBhdGggaW4gd2hpY2ggdGhlIGF1dGhlbnRpY2F0aW9uIGNvb2tpZSBpcyB2YWxpZC4KKyM6ICAgICAgIERlZmF1bHQgaXMgYC9gLgorIzoKKyM6ICAgICAtIHNlY3VyZTogTWFrZSB0aGUgY29va2llIG9ubHkgYXZhaWxhYmxlIHZpYSBIVFRQUy4KKyM6CisjOiAgICAgLSBodHRwb25seTogRGlzYWxsb3cgSmF2YVNjcmlwdCB0byBhY2Nlc3MgdGhlIGNvb2tpZS4KKyM6CisjOiBiYWNrZW5kcworIzogICAgIEEgZGljdGlvbmFyeSBvZiBhdmFpbGFibGUgc2Vzc2lvbiBiYWNrZW5kIGNsYXNzZXMgdXNlZCBieQorIzogICAgIDptZXRoOmBTZXNzaW9uU3RvcmUuZ2V0X3Nlc3Npb25gLgorZGVmYXVsdF9jb25maWcgPSB7CisgICAgJ3NlY3JldF9rZXknOiAgICAgIE5vbmUsCisgICAgJ2Nvb2tpZV9uYW1lJzogICAgICdzZXNzaW9uJywKKyAgICAnc2Vzc2lvbl9tYXhfYWdlJzogTm9uZSwKKyAgICAnY29va2llX2FyZ3MnOiB7CisgICAgICAgICdtYXhfYWdlJzogICAgIE5vbmUsCisgICAgICAgICdkb21haW4nOiAgICAgIE5vbmUsCisgICAgICAgICdwYXRoJzogICAgICAgICcvJywKKyAgICAgICAgJ3NlY3VyZSc6ICAgICAgTm9uZSwKKyAgICAgICAgJ2h0dHBvbmx5JzogICAgRmFsc2UsCisgICAgfSwKKyAgICAnYmFja2VuZHMnOiB7CisgICAgICAgICdzZWN1cmVjb29raWUnOiAnd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnMuU2VjdXJlQ29va2llU2Vzc2lvbkZhY3RvcnknLAorICAgICAgICAnZGF0YXN0b3JlJzogICAgJ3dlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5zZXNzaW9uc19uZGIuJyBcCisgICAgICAgICAgICAgICAgICAgICAgICAnRGF0YXN0b3JlU2Vzc2lvbkZhY3RvcnknLAorICAgICAgICAnbWVtY2FjaGUnOiAgICAgJ3dlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5zZXNzaW9uc19tZW1jYWNoZS4nIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICdNZW1jYWNoZVNlc3Npb25GYWN0b3J5JywKKyAgICB9LAorfQorCitfZGVmYXVsdF92YWx1ZSA9IG9iamVjdCgpCisKKworY2xhc3MgX1VwZGF0ZURpY3RNaXhpbihvYmplY3QpOgorICAgICIiIk1ha2VzIGRpY3RzIGNhbGwgYHNlbGYub25fdXBkYXRlYCBvbiBtb2RpZmljYXRpb25zLgorCisgICAgRnJvbSB3ZXJremV1Zy5kYXRhc3RydWN0dXJlcy4KKyAgICAiIiIKKworICAgIG9uX3VwZGF0ZSA9IE5vbmUKKworICAgIGRlZiBjYWxsc191cGRhdGUobmFtZSk6CisgICAgICAgIGRlZiBvbmNhbGwoc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICAgICAgcnYgPSBnZXRhdHRyKHN1cGVyKF9VcGRhdGVEaWN0TWl4aW4sIHNlbGYpLCBuYW1lKSgqYXJncywgKiprdykKKyAgICAgICAgICAgIGlmIHNlbGYub25fdXBkYXRlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYub25fdXBkYXRlKCkKKyAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICBvbmNhbGwuX19uYW1lX18gPSBuYW1lCisgICAgICAgIHJldHVybiBvbmNhbGwKKworICAgIF9fc2V0aXRlbV9fID0gY2FsbHNfdXBkYXRlKCdfX3NldGl0ZW1fXycpCisgICAgX19kZWxpdGVtX18gPSBjYWxsc191cGRhdGUoJ19fZGVsaXRlbV9fJykKKyAgICBjbGVhciA9IGNhbGxzX3VwZGF0ZSgnY2xlYXInKQorICAgIHBvcCA9IGNhbGxzX3VwZGF0ZSgncG9wJykKKyAgICBwb3BpdGVtID0gY2FsbHNfdXBkYXRlKCdwb3BpdGVtJykKKyAgICBzZXRkZWZhdWx0ID0gY2FsbHNfdXBkYXRlKCdzZXRkZWZhdWx0JykKKyAgICB1cGRhdGUgPSBjYWxsc191cGRhdGUoJ3VwZGF0ZScpCisgICAgZGVsIGNhbGxzX3VwZGF0ZQorCisKK2NsYXNzIFNlc3Npb25EaWN0KF9VcGRhdGVEaWN0TWl4aW4sIGRpY3QpOgorICAgICIiIkEgZGljdGlvbmFyeSBmb3Igc2Vzc2lvbiBkYXRhLiIiIgorCisgICAgX19zbG90c19fID0gKCdjb250YWluZXInLCAnbmV3JywgJ21vZGlmaWVkJykKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb250YWluZXIsIGRhdGE9Tm9uZSwgbmV3PUZhbHNlKToKKyAgICAgICAgc2VsZi5jb250YWluZXIgPSBjb250YWluZXIKKyAgICAgICAgc2VsZi5uZXcgPSBuZXcKKyAgICAgICAgc2VsZi5tb2RpZmllZCA9IEZhbHNlCisgICAgICAgIGRpY3QudXBkYXRlKHNlbGYsIGRhdGEgb3IgKCkpCisKKyAgICBkZWYgcG9wKHNlbGYsIGtleSwgKmFyZ3MpOgorICAgICAgICAjIE9ubHkgcG9wIGlmIGtleSBkb2Vzbid0IGV4aXN0LCBkbyBub3QgYWx0ZXIgdGhlIGRpY3Rpb25hcnkuCisgICAgICAgIGlmIGtleSBpbiBzZWxmOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKFNlc3Npb25EaWN0LCBzZWxmKS5wb3Aoa2V5LCAqYXJncykKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIHJldHVybiBhcmdzWzBdCisgICAgICAgIHJhaXNlIEtleUVycm9yKGtleSkKKworICAgIGRlZiBvbl91cGRhdGUoc2VsZik6CisgICAgICAgIHNlbGYubW9kaWZpZWQgPSBUcnVlCisKKyAgICBkZWYgZ2V0X2ZsYXNoZXMoc2VsZiwga2V5PSdfZmxhc2gnKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGZsYXNoIG1lc3NhZ2UuIEZsYXNoIG1lc3NhZ2VzIGFyZSBkZWxldGVkIHdoZW4gZmlyc3QgcmVhZC4KKworICAgICAgICA6cGFyYW0ga2V5OgorICAgICAgICAgICAgTmFtZSBvZiB0aGUgZmxhc2gga2V5IHN0b3JlZCBpbiB0aGUgc2Vzc2lvbi4gRGVmYXVsdCBpcyAnX2ZsYXNoJy4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBUaGUgZGF0YSBzdG9yZWQgaW4gdGhlIGZsYXNoLCBvciBhbiBlbXB0eSBsaXN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYucG9wKGtleSwgW10pCisKKyAgICBkZWYgYWRkX2ZsYXNoKHNlbGYsIHZhbHVlLCBsZXZlbD1Ob25lLCBrZXk9J19mbGFzaCcpOgorICAgICAgICAiIiJBZGRzIGEgZmxhc2ggbWVzc2FnZS4gRmxhc2ggbWVzc2FnZXMgYXJlIGRlbGV0ZWQgd2hlbiBmaXJzdCByZWFkLgorCisgICAgICAgIDpwYXJhbSB2YWx1ZToKKyAgICAgICAgICAgIFZhbHVlIHRvIGJlIHNhdmVkIGluIHRoZSBmbGFzaCBtZXNzYWdlLgorICAgICAgICA6cGFyYW0gbGV2ZWw6CisgICAgICAgICAgICBBbiBvcHRpb25hbCBsZXZlbCB0byBzZXQgd2l0aCB0aGUgbWVzc2FnZS4gRGVmYXVsdCBpcyBgTm9uZWAuCisgICAgICAgIDpwYXJhbSBrZXk6CisgICAgICAgICAgICBOYW1lIG9mIHRoZSBmbGFzaCBrZXkgc3RvcmVkIGluIHRoZSBzZXNzaW9uLiBEZWZhdWx0IGlzICdfZmxhc2gnLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5zZXRkZWZhdWx0KGtleSwgW10pLmFwcGVuZCgodmFsdWUsIGxldmVsKSkKKworCitjbGFzcyBCYXNlU2Vzc2lvbkZhY3Rvcnkob2JqZWN0KToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciBhbGwgc2Vzc2lvbiBmYWN0b3JpZXMuIiIiCisKKyAgICAjOiBOYW1lIG9mIHRoZSBzZXNzaW9uLgorICAgIG5hbWUgPSBOb25lCisgICAgIzogQSByZWZlcmVuY2UgdG8gOmNsYXNzOmBTZXNzaW9uU3RvcmVgLgorICAgIHNlc3Npb25fc3RvcmUgPSBOb25lCisgICAgIzogS2V5d29yZCBhcmd1bWVudHMgdG8gc2F2ZSB0aGUgc2Vzc2lvbi4KKyAgICBzZXNzaW9uX2FyZ3MgPSBOb25lCisgICAgIzogVGhlIHNlc3Npb24gZGF0YSwgYSA6Y2xhc3M6YFNlc3Npb25EaWN0YCBpbnN0YW5jZS4KKyAgICBzZXNzaW9uID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHNlc3Npb25fc3RvcmUpOgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYuc2Vzc2lvbl9zdG9yZSA9IHNlc3Npb25fc3RvcmUKKyAgICAgICAgc2VsZi5zZXNzaW9uX2FyZ3MgPSBzZXNzaW9uX3N0b3JlLmNvbmZpZ1snY29va2llX2FyZ3MnXS5jb3B5KCkKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gTm9uZQorCisgICAgZGVmIGdldF9zZXNzaW9uKHNlbGYsIG1heF9hZ2U9X2RlZmF1bHRfdmFsdWUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiBzYXZlX3Nlc3Npb24oc2VsZiwgcmVzcG9uc2UpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworCitjbGFzcyBTZWN1cmVDb29raWVTZXNzaW9uRmFjdG9yeShCYXNlU2Vzc2lvbkZhY3RvcnkpOgorICAgICIiIkEgc2Vzc2lvbiBmYWN0b3J5IHRoYXQgc3RvcmVzIGRhdGEgc2VyaWFsaXplZCBpbiBhIHNpZ25lZCBjb29raWUuCisKKyAgICBTaWduZWQgY29va2llcyBjYW4ndCBiZSBmb3JnZWQgYmVjYXVzZSB0aGUgSE1BQyBzaWduYXR1cmUgd29uJ3QgbWF0Y2guCisKKyAgICBUaGlzIGlzIHRoZSBkZWZhdWx0IGZhY3RvcnkgcGFzc2VkIGFzIHRoZSBgZmFjdG9yeWAga2V5d29yZCB0bworICAgIDptZXRoOmBTZXNzaW9uU3RvcmUuZ2V0X3Nlc3Npb25gLgorCisgICAgLi4gd2FybmluZzo6CisgICAgICAgVGhlIHZhbHVlcyBzdG9yZWQgaW4gYSBzaWduZWQgY29va2llIHdpbGwgYmUgdmlzaWJsZSBpbiB0aGUgY29va2llLAorICAgICAgIHNvIGRvIG5vdCB1c2Ugc2VjdXJlIGNvb2tpZSBzZXNzaW9ucyBpZiB5b3UgbmVlZCB0byBzdG9yZSBkYXRhIHRoYXQKKyAgICAgICBjYW4ndCBiZSB2aXNpYmxlIHRvIHVzZXJzLiBGb3IgdGhpcywgdXNlIGRhdGFzdG9yZSBvciBtZW1jYWNoZSBzZXNzaW9ucy4KKyAgICAiIiIKKworICAgIGRlZiBnZXRfc2Vzc2lvbihzZWxmLCBtYXhfYWdlPV9kZWZhdWx0X3ZhbHVlKToKKyAgICAgICAgaWYgc2VsZi5zZXNzaW9uIGlzIE5vbmU6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5zZXNzaW9uX3N0b3JlLmdldF9zZWN1cmVfY29va2llKHNlbGYubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X2FnZT1tYXhfYWdlKQorICAgICAgICAgICAgbmV3ID0gZGF0YSBpcyBOb25lCisgICAgICAgICAgICBzZWxmLnNlc3Npb24gPSBTZXNzaW9uRGljdChzZWxmLCBkYXRhPWRhdGEsIG5ldz1uZXcpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbgorCisgICAgZGVmIHNhdmVfc2Vzc2lvbihzZWxmLCByZXNwb25zZSk6CisgICAgICAgIGlmIHNlbGYuc2Vzc2lvbiBpcyBOb25lIG9yIG5vdCBzZWxmLnNlc3Npb24ubW9kaWZpZWQ6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLnNlc3Npb25fc3RvcmUuc2F2ZV9zZWN1cmVfY29va2llKAorICAgICAgICAgICAgcmVzcG9uc2UsIHNlbGYubmFtZSwgZGljdChzZWxmLnNlc3Npb24pLCAqKnNlbGYuc2Vzc2lvbl9hcmdzKQorCisKK2NsYXNzIEN1c3RvbUJhY2tlbmRTZXNzaW9uRmFjdG9yeShCYXNlU2Vzc2lvbkZhY3RvcnkpOgorICAgICIiIkJhc2UgY2xhc3MgZm9yIHNlc3Npb25zIHRoYXQgdXNlIGN1c3RvbSBiYWNrZW5kcywgZS5nLiwgbWVtY2FjaGUuIiIiCisKKyAgICAjOiBUaGUgc2Vzc2lvbiB1bmlxdWUgaWQuCisgICAgc2lkID0gTm9uZQorCisgICAgIzogVXNlZCB0byB2YWxpZGF0ZSBzZXNzaW9uIGlkcy4KKyAgICBfc2lkX3JlID0gcmUuY29tcGlsZShyJ15cd3syMn0kJykKKworICAgIGRlZiBnZXRfc2Vzc2lvbihzZWxmLCBtYXhfYWdlPV9kZWZhdWx0X3ZhbHVlKToKKyAgICAgICAgaWYgc2VsZi5zZXNzaW9uIGlzIE5vbmU6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5zZXNzaW9uX3N0b3JlLmdldF9zZWN1cmVfY29va2llKHNlbGYubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X2FnZT1tYXhfYWdlKQorICAgICAgICAgICAgc2lkID0gZGF0YS5nZXQoJ19zaWQnKSBpZiBkYXRhIGVsc2UgTm9uZQorICAgICAgICAgICAgc2VsZi5zZXNzaW9uID0gc2VsZi5fZ2V0X2J5X3NpZChzaWQpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbgorCisgICAgZGVmIF9nZXRfYnlfc2lkKHNlbGYsIHNpZCk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgZGVmIF9pc192YWxpZF9zaWQoc2VsZiwgc2lkKToKKyAgICAgICAgIiIiQ2hlY2sgaWYgYSBzZXNzaW9uIGlkIGhhcyB0aGUgY29ycmVjdCBmb3JtYXQuIiIiCisgICAgICAgIHJldHVybiBzaWQgYW5kIHNlbGYuX3NpZF9yZS5tYXRjaChzaWQpIGlzIG5vdCBOb25lCisKKyAgICBkZWYgX2dldF9uZXdfc2lkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VjdXJpdHkuZ2VuZXJhdGVfcmFuZG9tX3N0cmluZyhlbnRyb3B5PTEyOCkKKworCitjbGFzcyBTZXNzaW9uU3RvcmUob2JqZWN0KToKKyAgICAiIiJBIHNlc3Npb24gcHJvdmlkZXIgZm9yIGEgc2luZ2xlIHJlcXVlc3QuCisKKyAgICBUaGUgc2Vzc2lvbiBzdG9yZSBjYW4gcHJvdmlkZSBtdWx0aXBsZSBzZXNzaW9ucyB1c2luZyBkaWZmZXJlbnQga2V5cywKKyAgICBldmVuIHVzaW5nIGRpZmZlcmVudCBiYWNrZW5kcyBpbiB0aGUgc2FtZSByZXF1ZXN0LCB0aHJvdWdoIHRoZSBtZXRob2QKKyAgICA6bWV0aDpgZ2V0X3Nlc3Npb25gLiBCeSBkZWZhdWx0IGl0IHJldHVybnMgYSBzZXNzaW9uIHVzaW5nIHRoZSBkZWZhdWx0IGtleS4KKworICAgIFRvIHVzZSwgZGVmaW5lIGEgYmFzZSBoYW5kbGVyIHRoYXQgZXh0ZW5kcyB0aGUgZGlzcGF0Y2goKSBtZXRob2QgdG8gc3RhcnQKKyAgICB0aGUgc2Vzc2lvbiBzdG9yZSBhbmQgc2F2ZSBhbGwgc2Vzc2lvbnMgYXQgdGhlIGVuZCBvZiBhIHJlcXVlc3Q6OgorCisgICAgICAgIGltcG9ydCB3ZWJhcHAyCisKKyAgICAgICAgZnJvbSB3ZWJhcHAyX2V4dHJhcyBpbXBvcnQgc2Vzc2lvbnMKKworICAgICAgICBjbGFzcyBCYXNlSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgICAgIGRlZiBkaXNwYXRjaChzZWxmKToKKyAgICAgICAgICAgICAgICAjIEdldCBhIHNlc3Npb24gc3RvcmUgZm9yIHRoaXMgcmVxdWVzdC4KKyAgICAgICAgICAgICAgICBzZWxmLnNlc3Npb25fc3RvcmUgPSBzZXNzaW9ucy5nZXRfc3RvcmUocmVxdWVzdD1zZWxmLnJlcXVlc3QpCisKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICMgRGlzcGF0Y2ggdGhlIHJlcXVlc3QuCisgICAgICAgICAgICAgICAgICAgIHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIuZGlzcGF0Y2goc2VsZikKKyAgICAgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICAjIFNhdmUgYWxsIHNlc3Npb25zLgorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlc3Npb25fc3RvcmUuc2F2ZV9zZXNzaW9ucyhzZWxmLnJlc3BvbnNlKQorCisgICAgICAgICAgICBAd2ViYXBwMi5jYWNoZWRfcHJvcGVydHkKKyAgICAgICAgICAgIGRlZiBzZXNzaW9uKHNlbGYpOgorICAgICAgICAgICAgICAgICMgUmV0dXJucyBhIHNlc3Npb24gdXNpbmcgdGhlIGRlZmF1bHQgY29va2llIGtleS4KKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uX3N0b3JlLmdldF9zZXNzaW9uKCkKKworICAgIFRoZW4ganVzdCB1c2UgdGhlIHNlc3Npb24gYXMgYSBkaWN0aW9uYXJ5IGluc2lkZSBhIGhhbmRsZXI6OgorCisgICAgICAgICMgVG8gc2V0IGEgdmFsdWU6CisgICAgICAgIHNlbGYuc2Vzc2lvblsnZm9vJ10gPSAnYmFyJworCisgICAgICAgICMgVG8gZ2V0IGEgdmFsdWU6CisgICAgICAgIGZvbyA9IHNlbGYuc2Vzc2lvbi5nZXQoJ2ZvbycpCisKKyAgICBBIGNvbmZpZ3VyYXRpb24gZGljdCBjYW4gYmUgcGFzc2VkIHRvIDptZXRoOmBfX2luaXRfX2AsIG9yIHRoZSBhcHBsaWNhdGlvbgorICAgIG11c3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgYGBzZWNyZXRfa2V5YGAgY29uZmlndXJhdGlvbiBkZWZpbmVkLiBUaGUKKyAgICBjb25maWd1cmF0aW9uIGlzIGEgc2ltcGxlIGRpY3Rpb25hcnk6OgorCisgICAgICAgIGNvbmZpZyA9IHt9CisgICAgICAgIGNvbmZpZ1snd2ViYXBwMl9leHRyYXMuc2Vzc2lvbnMnXSA9IHsKKyAgICAgICAgICAgICdzZWNyZXRfa2V5JzogJ215LXN1cGVyLXNlY3JldC1rZXknLAorICAgICAgICB9CisKKyAgICAgICAgYXBwID0gd2ViYXBwMi5XU0dJQXBwbGljYXRpb24oWworICAgICAgICAgICAgKCcvJywgSG9tZUhhbmRsZXIpLAorICAgICAgICBdLCBjb25maWc9Y29uZmlnKQorCisgICAgT3RoZXIgY29uZmlndXJhdGlvbiBrZXlzIGFyZSBvcHRpb25hbC4KKyAgICAiIiIKKworICAgICM6IENvbmZpZ3VyYXRpb24ga2V5LgorICAgIGNvbmZpZ19rZXkgPSBfX25hbWVfXworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGNvbmZpZz1Ob25lKToKKyAgICAgICAgIiIiSW5pdGlhbGl6ZXMgdGhlIHNlc3Npb24gc3RvcmUuCisKKyAgICAgICAgOnBhcmFtIHJlcXVlc3Q6CisgICAgICAgICAgICBBIDpjbGFzczpgd2ViYXBwMi5SZXF1ZXN0YCBpbnN0YW5jZS4KKyAgICAgICAgOnBhcmFtIGNvbmZpZzoKKyAgICAgICAgICAgIEEgZGljdGlvbmFyeSBvZiBjb25maWd1cmF0aW9uIHZhbHVlcyB0byBiZSBvdmVycmlkZGVuLiBTZWUKKyAgICAgICAgICAgIHRoZSBhdmFpbGFibGUga2V5cyBpbiA6ZGF0YTpgZGVmYXVsdF9jb25maWdgLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAgICAjIEJhc2UgY29uZmlndXJhdGlvbi4KKyAgICAgICAgc2VsZi5jb25maWcgPSByZXF1ZXN0LmFwcC5jb25maWcubG9hZF9jb25maWcoc2VsZi5jb25maWdfa2V5LAorICAgICAgICAgICAgZGVmYXVsdF92YWx1ZXM9ZGVmYXVsdF9jb25maWcsIHVzZXJfdmFsdWVzPWNvbmZpZywKKyAgICAgICAgICAgIHJlcXVpcmVkX2tleXM9KCdzZWNyZXRfa2V5JywpKQorICAgICAgICAjIFRyYWNrZWQgc2Vzc2lvbnMuCisgICAgICAgIHNlbGYuc2Vzc2lvbnMgPSB7fQorCisgICAgQHdlYmFwcDIuY2FjaGVkX3Byb3BlcnR5CisgICAgZGVmIHNlcmlhbGl6ZXIoc2VsZik6CisgICAgICAgICMgU2VyaWFsaXplciBhbmQgZGVzZXJpYWxpemVyIGZvciBzaWduZWQgY29va2llcy4KKyAgICAgICAgcmV0dXJuIHNlY3VyZWNvb2tpZS5TZWN1cmVDb29raWVTZXJpYWxpemVyKHNlbGYuY29uZmlnWydzZWNyZXRfa2V5J10pCisKKyAgICBkZWYgZ2V0X2JhY2tlbmQoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIlJldHVybnMgYSBjb25maWd1cmVkIHNlc3Npb24gYmFja2VuZCwgaW1wb3J0aW5nIGl0IGlmIG5lZWRlZC4KKworICAgICAgICA6cGFyYW0gbmFtZToKKyAgICAgICAgICAgIFRoZSBiYWNrZW5kIGtleXdvcmQuCisgICAgICAgIDpyZXR1cm5zOgorICAgICAgICAgICAgQSA6Y2xhc3M6YEJhc2VTZXNzaW9uRmFjdG9yeWAgc3ViY2xhc3MuCisgICAgICAgICIiIgorICAgICAgICBiYWNrZW5kcyA9IHNlbGYuY29uZmlnWydiYWNrZW5kcyddCisgICAgICAgIGJhY2tlbmQgPSBiYWNrZW5kc1tuYW1lXQorICAgICAgICBpZiBpc2luc3RhbmNlKGJhY2tlbmQsIGJhc2VzdHJpbmcpOgorICAgICAgICAgICAgYmFja2VuZCA9IGJhY2tlbmRzW25hbWVdID0gd2ViYXBwMi5pbXBvcnRfc3RyaW5nKGJhY2tlbmQpCisKKyAgICAgICAgcmV0dXJuIGJhY2tlbmQKKworICAgICMgQmFja2VuZCBiYXNlZCBzZXNzaW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIF9nZXRfc2Vzc2lvbl9jb250YWluZXIoc2VsZiwgbmFtZSwgZmFjdG9yeSk6CisgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuc2Vzc2lvbnM6CisgICAgICAgICAgICBzZWxmLnNlc3Npb25zW25hbWVdID0gZmFjdG9yeShuYW1lLCBzZWxmKQorCisgICAgICAgIHJldHVybiBzZWxmLnNlc3Npb25zW25hbWVdCisKKyAgICBkZWYgZ2V0X3Nlc3Npb24oc2VsZiwgbmFtZT1Ob25lLCBtYXhfYWdlPV9kZWZhdWx0X3ZhbHVlLCBmYWN0b3J5PU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGJhY2tlbmQ9J3NlY3VyZWNvb2tpZScpOgorICAgICAgICAiIiJSZXR1cm5zIGEgc2Vzc2lvbiBmb3IgYSBnaXZlbiBuYW1lLiBJZiB0aGUgc2Vzc2lvbiBkb2Vzbid0IGV4aXN0LCBhCisgICAgICAgIG5ldyBzZXNzaW9uIGlzIHJldHVybmVkLgorCisgICAgICAgIDpwYXJhbSBuYW1lOgorICAgICAgICAgICAgQ29va2llIG5hbWUuIElmIG5vdCBwcm92aWRlZCwgdXNlcyB0aGUgYGBjb29raWVfbmFtZWBgCisgICAgICAgICAgICB2YWx1ZSBjb25maWd1cmVkIGZvciB0aGlzIG1vZHVsZS4KKyAgICAgICAgOnBhcmFtIG1heF9hZ2U6CisgICAgICAgICAgICBBIG1heGltdW0gYWdlIGluIHNlY29uZHMgZm9yIHRoZSBzZXNzaW9uIHRvIGJlIHZhbGlkLiBTZXNzaW9ucworICAgICAgICAgICAgc3RvcmUgYSB0aW1lc3RhbXAgdG8gaW52YWxpZGF0ZSB0aGVtIGlmIG5lZWRlZC4gSWYgYG1heF9hZ2VgIGlzCisgICAgICAgICAgICBOb25lLCB0aGUgdGltZXN0YW1wIHdvbid0IGJlIGNoZWNrZWQuCisgICAgICAgIDpwYXJhbSBmYWN0b3J5OgorICAgICAgICAgICAgQSBzZXNzaW9uIGZhY3RvcnkgdGhhdCBjcmVhdGVzIHRoZSBzZXNzaW9uIHVzaW5nIHRoZSBwcmVmZXJyZWQKKyAgICAgICAgICAgIGJhY2tlbmQuIEZvciBjb252ZW5pZW5jZSwgdXNlIHRoZSBgYmFja2VuZGAgYXJndW1lbnQgaW5zdGVhZCwKKyAgICAgICAgICAgIHdoaWNoIGRlZmluZXMgYSBiYWNrZW5kIGtleXdvcmQgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgb25lcy4KKyAgICAgICAgOnBhcmFtIGJhY2tlbmQ6CisgICAgICAgICAgICBBIGNvbmZpZ3VyZWQgYmFja2VuZCBrZXl3b3JkLiBBdmFpbGFibGUgb25lcyBhcmU6CisKKyAgICAgICAgICAgIC0gYGBzZWN1cmVjb29raWVgYDogdXNlcyBzZWN1cmUgY29va2llcy4gVGhpcyBpcyB0aGUgZGVmYXVsdAorICAgICAgICAgICAgICBiYWNrZW5kLgorICAgICAgICAgICAgLSBgYGRhdGFzdG9yZWBgOiB1c2VzIEFwcCBFbmdpbmUncyBkYXRhc3RvcmUuCisgICAgICAgICAgICAtIGBgbWVtY2FjaGVgYDogIHVzZXMgQXBwIEVuZ2luZSdzIG1lbWNhY2hlLgorICAgICAgICA6cmV0dXJuczoKKyAgICAgICAgICAgIEEgZGljdGlvbmFyeS1saWtlIHNlc3Npb24gb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgZmFjdG9yeSA9IGZhY3Rvcnkgb3Igc2VsZi5nZXRfYmFja2VuZChiYWNrZW5kKQorICAgICAgICBuYW1lID0gbmFtZSBvciBzZWxmLmNvbmZpZ1snY29va2llX25hbWUnXQorCisgICAgICAgIGlmIG1heF9hZ2UgaXMgX2RlZmF1bHRfdmFsdWU6CisgICAgICAgICAgICBtYXhfYWdlID0gc2VsZi5jb25maWdbJ3Nlc3Npb25fbWF4X2FnZSddCisKKyAgICAgICAgY29udGFpbmVyID0gc2VsZi5fZ2V0X3Nlc3Npb25fY29udGFpbmVyKG5hbWUsIGZhY3RvcnkpCisgICAgICAgIHJldHVybiBjb250YWluZXIuZ2V0X3Nlc3Npb24obWF4X2FnZT1tYXhfYWdlKQorCisgICAgIyBTaWduZWQgY29va2llcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBkZWYgZ2V0X3NlY3VyZV9jb29raWUoc2VsZiwgbmFtZSwgbWF4X2FnZT1fZGVmYXVsdF92YWx1ZSk6CisgICAgICAgICIiIlJldHVybnMgYSBkZXNlcmlhbGl6ZWQgc2VjdXJlIGNvb2tpZSB2YWx1ZS4KKworICAgICAgICA6cGFyYW0gbmFtZToKKyAgICAgICAgICAgIENvb2tpZSBuYW1lLgorICAgICAgICA6cGFyYW0gbWF4X2FnZToKKyAgICAgICAgICAgIE1heGltdW0gYWdlIGluIHNlY29uZHMgZm9yIGEgdmFsaWQgY29va2llLiBJZiB0aGUgY29va2llIGlzIG9sZGVyCisgICAgICAgICAgICB0aGFuIHRoaXMsIHJldHVybnMgTm9uZS4KKyAgICAgICAgOnJldHVybnM6CisgICAgICAgICAgICBBIHNlY3VyZSBjb29raWUgdmFsdWUgb3IgTm9uZSBpZiBpdCBpcyBub3Qgc2V0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbWF4X2FnZSBpcyBfZGVmYXVsdF92YWx1ZToKKyAgICAgICAgICAgIG1heF9hZ2UgPSBzZWxmLmNvbmZpZ1snc2Vzc2lvbl9tYXhfYWdlJ10KKworICAgICAgICB2YWx1ZSA9IHNlbGYucmVxdWVzdC5jb29raWVzLmdldChuYW1lKQorICAgICAgICBpZiB2YWx1ZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUobmFtZSwgdmFsdWUsIG1heF9hZ2U9bWF4X2FnZSkKKworICAgIGRlZiBzZXRfc2VjdXJlX2Nvb2tpZShzZWxmLCBuYW1lLCB2YWx1ZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJTZXRzIGEgc2VjdXJlIGNvb2tpZSB0byBiZSBzYXZlZC4KKworICAgICAgICA6cGFyYW0gbmFtZToKKyAgICAgICAgICAgIENvb2tpZSBuYW1lLgorICAgICAgICA6cGFyYW0gdmFsdWU6CisgICAgICAgICAgICBDb29raWUgdmFsdWUuIE11c3QgYmUgYSBkaWN0aW9uYXJ5LgorICAgICAgICA6cGFyYW0ga3dhcmdzOgorICAgICAgICAgICAgT3B0aW9ucyB0byBzYXZlIHRoZSBjb29raWUuIFNlZSA6bWV0aDpgZ2V0X3Nlc3Npb25gLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpLCAnU2VjdXJlIGNvb2tpZSB2YWx1ZXMgbXVzdCBiZSBhIGRpY3QuJworICAgICAgICBjb250YWluZXIgPSBzZWxmLl9nZXRfc2Vzc2lvbl9jb250YWluZXIobmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY3VyZUNvb2tpZVNlc3Npb25GYWN0b3J5KQorICAgICAgICBjb250YWluZXIuZ2V0X3Nlc3Npb24oKS51cGRhdGUodmFsdWUpCisgICAgICAgIGNvbnRhaW5lci5zZXNzaW9uX2FyZ3MudXBkYXRlKGt3YXJncykKKworICAgICMgU2F2aW5nIHRvIGEgcmVzcG9uc2Ugb2JqZWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIHNhdmVfc2Vzc2lvbnMoc2VsZiwgcmVzcG9uc2UpOgorICAgICAgICAiIiJTYXZlcyBhbGwgc2Vzc2lvbnMgaW4gYSByZXNwb25zZSBvYmplY3QuCisKKyAgICAgICAgOnBhcmFtIHJlc3BvbnNlOgorICAgICAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcC5SZXNwb25zZWAgb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIHNlc3Npb24gaW4gc2VsZi5zZXNzaW9ucy52YWx1ZXMoKToKKyAgICAgICAgICAgIHNlc3Npb24uc2F2ZV9zZXNzaW9uKHJlc3BvbnNlKQorCisgICAgZGVmIHNhdmVfc2VjdXJlX2Nvb2tpZShzZWxmLCByZXNwb25zZSwgbmFtZSwgdmFsdWUsICoqa3dhcmdzKToKKyAgICAgICAgdmFsdWUgPSBzZWxmLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG5hbWUsIHZhbHVlKQorICAgICAgICByZXNwb25zZS5zZXRfY29va2llKG5hbWUsIHZhbHVlLCAqKmt3YXJncykKKworCisjIEZhY3RvcmllcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworIzogS2V5IHVzZWQgdG8gc3RvcmUgOmNsYXNzOmBTZXNzaW9uU3RvcmVgIGluIHRoZSByZXF1ZXN0IHJlZ2lzdHJ5LgorX3JlZ2lzdHJ5X2tleSA9ICd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9ucy5TZXNzaW9uU3RvcmUnCisKKworZGVmIGdldF9zdG9yZShmYWN0b3J5PVNlc3Npb25TdG9yZSwga2V5PV9yZWdpc3RyeV9rZXksIHJlcXVlc3Q9Tm9uZSk6CisgICAgIiIiUmV0dXJucyBhbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YFNlc3Npb25TdG9yZWAgZnJvbSB0aGUgcmVxdWVzdCByZWdpc3RyeS4KKworICAgIEl0J2xsIHRyeSB0byBnZXQgaXQgZnJvbSB0aGUgY3VycmVudCByZXF1ZXN0IHJlZ2lzdHJ5LCBhbmQgaWYgaXQgaXMgbm90CisgICAgcmVnaXN0ZXJlZCBpdCdsbCBiZSBpbnN0YW50aWF0ZWQgYW5kIHJlZ2lzdGVyZWQuIEEgc2Vjb25kIGNhbGwgdG8gdGhpcworICAgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBzYW1lIGluc3RhbmNlLgorCisgICAgOnBhcmFtIGZhY3Rvcnk6CisgICAgICAgIFRoZSBjYWxsYWJsZSB1c2VkIHRvIGJ1aWxkIGFuZCByZWdpc3RlciB0aGUgaW5zdGFuY2UgaWYgaXQgaXMgbm90IHlldAorICAgICAgICByZWdpc3RlcmVkLiBUaGUgZGVmYXVsdCBpcyB0aGUgY2xhc3MgOmNsYXNzOmBTZXNzaW9uU3RvcmVgIGl0c2VsZi4KKyAgICA6cGFyYW0ga2V5OgorICAgICAgICBUaGUga2V5IHVzZWQgdG8gc3RvcmUgdGhlIGluc3RhbmNlIGluIHRoZSByZWdpc3RyeS4gQSBkZWZhdWx0IGlzIHVzZWQKKyAgICAgICAgaWYgaXQgaXMgbm90IHNldC4KKyAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcDIuUmVxdWVzdGAgaW5zdGFuY2UgdXNlZCB0byBzdG9yZSB0aGUgaW5zdGFuY2UuIFRoZQorICAgICAgICBhY3RpdmUgcmVxdWVzdCBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgIiIiCisgICAgcmVxdWVzdCA9IHJlcXVlc3Qgb3Igd2ViYXBwMi5nZXRfcmVxdWVzdCgpCisgICAgc3RvcmUgPSByZXF1ZXN0LnJlZ2lzdHJ5LmdldChrZXkpCisgICAgaWYgbm90IHN0b3JlOgorICAgICAgICBzdG9yZSA9IHJlcXVlc3QucmVnaXN0cnlba2V5XSA9IGZhY3RvcnkocmVxdWVzdCkKKworICAgIHJldHVybiBzdG9yZQorCisKK2RlZiBzZXRfc3RvcmUoc3RvcmUsIGtleT1fcmVnaXN0cnlfa2V5LCByZXF1ZXN0PU5vbmUpOgorICAgICIiIlNldHMgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBTZXNzaW9uU3RvcmVgIGluIHRoZSByZXF1ZXN0IHJlZ2lzdHJ5LgorCisgICAgOnBhcmFtIHN0b3JlOgorICAgICAgICBBbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YFNlc3Npb25TdG9yZWAuCisgICAgOnBhcmFtIGtleToKKyAgICAgICAgVGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSByZWdpc3RyeS4gQSBkZWZhdWx0CisgICAgICAgIGlzIHVzZWQgaWYgaXQgaXMgbm90IHNldC4KKyAgICA6cGFyYW0gcmVxdWVzdDoKKyAgICAgICAgQSA6Y2xhc3M6YHdlYmFwcDIuUmVxdWVzdGAgaW5zdGFuY2UgdXNlZCB0byByZXRyaWV2ZSB0aGUgaW5zdGFuY2UuIFRoZQorICAgICAgICBhY3RpdmUgcmVxdWVzdCBpcyB1c2VkIGlmIGl0IGlzIG5vdCBzZXQuCisgICAgIiIiCisgICAgcmVxdWVzdCA9IHJlcXVlc3Qgb3Igd2ViYXBwMi5nZXRfcmVxdWVzdCgpCisgICAgcmVxdWVzdC5yZWdpc3RyeVtrZXldID0gc3RvcmUKKworCisjIERvbid0IG5lZWQgdG8gaW1wb3J0IGl0LiA6KQorZGVmYXVsdF9jb25maWdbJ2JhY2tlbmRzJ11bJ3NlY3VyZWNvb2tpZSddID0gU2VjdXJlQ29va2llU2Vzc2lvbkZhY3RvcnkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3Nlc3Npb25zX21lbWNhY2hlLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvc2Vzc2lvbnNfbWVtY2FjaGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE1MTJiMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3Nlc3Npb25zX21lbWNhY2hlLnB5CkBAIC0wLDAgKzEsMjAgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiIKKyAgICB3ZWJhcHAyX2V4dHJhcy5zZXNzaW9uc19tZW1jYWNoZQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBFeHRlbmRlZCBzZXNzaW9ucyBzdG9yZWQgaW4gbWVtY2FjaGUuCisKKyAgICBBcHAgRW5naW5lLXNwZWNpZmljIG1vZHVsZXMgd2VyZSBtb3ZlZCB0byB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuCisgICAgVGhpcyBtb2R1bGUgaXMgaGVyZSBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgYnkgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgoraW1wb3J0IHdhcm5pbmdzCisKK3dhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJuaW5nKAorICAgICd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9uc19tZW1jYWNoZSBpcyBkZXByZWNhdGVkLiAnCisgICAgJ0FwcCBFbmdpbmUtc3BlY2lmaWMgbW9kdWxlcyB3ZXJlIG1vdmVkIHRvIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS4nKSwKKyAgICBzdGFja2xldmVsPTEpCitmcm9tIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS5zZXNzaW9uc19tZW1jYWNoZSBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvc2Vzc2lvbnNfbmRiLnB5IGIvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3dlYmFwcDIvd2ViYXBwMl9leHRyYXMvc2Vzc2lvbnNfbmRiLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYzVjMDgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy9zZXNzaW9uc19uZGIucHkKQEAgLTAsMCArMSwyMCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorICAgIHdlYmFwcDJfZXh0cmFzLnNlc3Npb25zX25kYgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgRXh0ZW5kZWQgc2Vzc2lvbnMgc3RvcmVkIGluIGRhdGFzdG9yZSB1c2luZyB0aGUgbmRiIGxpYnJhcnkuCisKKyAgICBBcHAgRW5naW5lLXNwZWNpZmljIG1vZHVsZXMgd2VyZSBtb3ZlZCB0byB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuCisgICAgVGhpcyBtb2R1bGUgaXMgaGVyZSBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgYnkgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgoraW1wb3J0IHdhcm5pbmdzCisKK3dhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJuaW5nKAorICAgICd3ZWJhcHAyX2V4dHJhcy5zZXNzaW9uc19uZGIgaXMgZGVwcmVjYXRlZC4gJworICAgICdBcHAgRW5naW5lLXNwZWNpZmljIG1vZHVsZXMgd2VyZSBtb3ZlZCB0byB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuJyksCisgICAgc3RhY2tsZXZlbD0xKQorZnJvbSB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuc2Vzc2lvbnNfbmRiIGltcG9ydCAqCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy91c2Vycy5weSBiL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS93ZWJhcHAyL3dlYmFwcDJfZXh0cmFzL3VzZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMGI4NWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvd2ViYXBwMi93ZWJhcHAyX2V4dHJhcy91c2Vycy5weQpAQCAtMCwwICsxLDIwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiCisgICAgd2ViYXBwMl9leHRyYXMudXNlcnMKKyAgICA9PT09PT09PT09PT09PT09PT09PQorCisgICAgSGVscGVycyBmb3IgZ29vZ2xlLmFwcGVuZ2luZS5hcGkudXNlcnMuCisKKyAgICBBcHAgRW5naW5lLXNwZWNpZmljIG1vZHVsZXMgd2VyZSBtb3ZlZCB0byB3ZWJhcHAyX2V4dHJhcy5hcHBlbmdpbmUuCisgICAgVGhpcyBtb2R1bGUgaXMgaGVyZSBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy4KKworICAgIDpjb3B5cmlnaHQ6IDIwMTEgdGlwZnkub3JnLgorICAgIDpsaWNlbnNlOiBBcGFjaGUgU290d2FyZSBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyIiIgoraW1wb3J0IHdhcm5pbmdzCisKK3dhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJuaW5nKAorICAgICd3ZWJhcHAyX2V4dHJhcy51c2VycyBpcyBkZXByZWNhdGVkLiAnCisgICAgJ0FwcCBFbmdpbmUtc3BlY2lmaWMgbW9kdWxlcyB3ZXJlIG1vdmVkIHRvIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS4nKSwKKyAgICBzdGFja2xldmVsPTEpCitmcm9tIHdlYmFwcDJfZXh0cmFzLmFwcGVuZ2luZS51c2VycyBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlMmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2UyaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMjUyYmQ4NS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2UyaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0IHN5cwotCi1mcm9tIHRyYWNlX3ZpZXdlci5idWlsZCBpbXBvcnQgdHJhY2UyaHRtbAotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIHN5cy5leGl0KHRyYWNlMmh0bWwuTWFpbihzeXMuYXJndlsxOl0pKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci5neXAgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyLmd5cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJjMjhmNy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyLmd5cAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLXsKLSAgJ2luY2x1ZGVzJzogWwotICAgICd0cmFjZV92aWV3ZXIuZ3lwaScsCi0gIF0sCi0gICd0YXJnZXRzJzogWwotICAgIHsKLSAgICAgICd0YXJnZXRfbmFtZSc6ICdnZW5lcmF0ZV9hYm91dF90cmFjaW5nJywKLSAgICAgICd0eXBlJzogJ25vbmUnLAotICAgICAgJ2FjdGlvbnMnOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnZ2VuZXJhdGVfYWJvdXRfdHJhY2luZycsCi0gICAgICAgICAgJ3NjcmlwdF9uYW1lJzogJ3RyYWNlX3ZpZXdlci9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzJywKLSAgICAgICAgICAnaW5wdXRzJzogWwotICAgICAgICAgICAgJzxAKHRyYWNpbmdfZmlsZXMpJywKLSAgICAgICAgICBdLAotICAgICAgICAgICdvdXRwdXRzJzogWwotICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL2NvbnRlbnQvYnJvd3Nlci90cmFjaW5nL2Fib3V0X3RyYWNpbmcuanMnLAotICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL2NvbnRlbnQvYnJvd3Nlci90cmFjaW5nL2Fib3V0X3RyYWNpbmcuaHRtbCcKLSAgICAgICAgICBdLAotICAgICAgICAgICdhY3Rpb24nOiBbJ3B5dGhvbicsICc8QChfc2NyaXB0X25hbWUpJywKLSAgICAgICAgICAgICAgICAgICAgICctLW91dGRpcicsICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS9jb250ZW50L2Jyb3dzZXIvdHJhY2luZyddCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9Ci0gIF0KLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIuZ3lwaSBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIuZ3lwaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzljZjUxYi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyLmd5cGkKKysrIC9kZXYvbnVsbApAQCAtMSw0MTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotewotICAndmFyaWFibGVzJzogewotICAgICd0cmFjaW5nX2Nzc19maWxlcyc6IFsKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9jb21tb24uY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9kcmFnX2hhbmRsZS5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpbmVfY2hhcnQuY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9saXN0X3ZpZXcuY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9tb3VzZV9tb2RlX3NlbGVjdG9yLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkvcGllX2NoYXJ0LmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkvc29ydGFibGVfdGFibGUuY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9zdW5idXJzdF9jaGFydC5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL3Rvb2xfYnV0dG9uLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfcmVzdWx0cy5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV92aWV3LmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2hlYWRpbmdfdHJhY2suY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3NfdHJhY2tfYmFzZS5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9yZWN0X3RyYWNrLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3J1bGVyX3RyYWNrLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NwYWNpbmdfdHJhY2suY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvdGhyZWFkX3RyYWNrLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3RyYWNrLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2NvbW1vbi5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV92aWV3LmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfcGlja2VyLmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF9zdW1tYXJ5X3ZpZXcuY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF92aWV3LmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3LmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV92aWV3LmNzcycsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suY3NzJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3Rfdmlldy5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5jc3MnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2Nfc25hcHNob3Rfdmlldy5jc3MnLAotICAgIF0sCi0gICAgJ3RyYWNpbmdfanNfaHRtbF9maWxlcyc6IFsKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9iYXNlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2Jhc2U2NC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9iYm94Mi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9jYXRlZ29yeV91dGlsLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2NvbG9yLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2RlZXBfdXRpbHMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2V2ZW50cy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X2Jhc2UuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X2Jhc2ljLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV90eXBlX2Jhc2VkLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2d1aWQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvaW50ZXJ2YWxfdHJlZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9rZXlfZXZlbnRfbWFuYWdlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9tYXRoLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3BvbHltZXJfdXRpbHMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvcHJvcGVydGllcy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9xdWFkLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3JhZi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9yYW5nZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9yYW5nZV91dGlscy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9yZWN0Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3NldHRpbmdzLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS9zdGF0aXN0aWNzLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3Rhc2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkvYW5pbWF0aW9uLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL2FuaW1hdGlvbl9jb250cm9sbGVyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NhbWVyYS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9jaGFydF9iYXNlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NvbG9yX2xlZ2VuZC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl9zY2hlbWUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29sb3JfdXRpbHMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9kMy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9kb21faGVscGVycy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9kcmFnX2hhbmRsZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9kcm9wZG93bi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9pbmZvX2Jhci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9pbmZvX2Jhcl9ncm91cC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9saW5lX2NoYXJ0Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpc3Rfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL21vdXNlX3RyYWNrZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkvb3ZlcmxheS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91aS9waWVfY2hhcnQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdWkvcXVhZF9zdGFja192aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL3NvcnRhYmxlX3RhYmxlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL3N1bmJ1cnN0X2NoYXJ0Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VpL3RhYmxlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3NpemVfaW5fYnl0ZXMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uX3NwYW4uaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdXRpbC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvYmFzZS91dGlscy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbGVydF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3Jlc3VsdHMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9jb3VudGVyX3NhbXBsZV9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9hbGxvY2F0b3JfZGV0YWlsc19wYW5lLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZtX3JlZ2lvbnNfZGV0YWlsc19wYW5lLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2NwdV9zbGljZV9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnkuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9mbG93X2V2ZW50X3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2ZyYW1lX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2ludGVyYWN0aW9uX3JlY29yZF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9zYW1wbGVfc3ViX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3RocmVhZF90aW1lX3NsaWNlX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL29iamVjdF9zbmFwc2hvdF92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3JlbGF0ZWRfZXZlbnRzLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NlbGVjdGlvbl9zdW1tYXJ5X3RhYmxlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9hc3luY19zbGljZV9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZnJhbWVfc3ViX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9vYmplY3RfaW5zdGFuY2Vfc3ViX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9zbmFwc2hvdF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfc2FtcGxlX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF90aW1lX3NsaWNlX3N1Yl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3N0YWNrX2ZyYW1lLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3RhYl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2F1ZGl0b3IuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvYnJ1c2hpbmdfc3RhdGUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvY29uc3RhbnRzLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2RyYXdfaGVscGVycy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9lbGlkZWRfY2FjaGUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvZXZlbnRfcHJlc2VudGVyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2Zhc3RfcmVjdF9yZW5kZXJlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9mYXZpY29ucy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9maWx0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvZmluZF9jb250cm9sLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL2ZpbmRfY29udHJvbGxlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9sb2NhdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbGxlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfb2JqZWN0Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3NlbGVjdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9zZWxlY3Rpb25fY29udHJvbGxlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvc2lkZV9wYW5lbC9zaWRlX3BhbmVsX2NvbnRhaW5lci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV9hbmltYXRpb25zLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX2ludGVyZXN0X3JhbmdlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV92aWV3cG9ydC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90aW1pbmdfdG9vbC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvYWxlcnRfdHJhY2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2Fubm90YXRpb25fdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvYXN5bmNfc2xpY2VfZ3JvdXBfdHJhY2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X2F4aXMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3BvaW50Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF90cmFuc2Zvcm0uaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvbW1lbnRfYm94X2Fubm90YXRpb25fdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jb3VudGVyX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jcHVfdHJhY2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9mcmFtZV90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZ2xvYmFsX21lbW9yeV9kdW1wX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9oaWdobGlnaHRlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3Mva2VybmVsX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9sZXR0ZXJfZG90X3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja191dGlsLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tb2RlbF90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvbXVsdGlfcm93X3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfZ3JvdXBfdHJhY2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcHJvY2Vzc19tZW1vcnlfZHVtcF90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcHJvY2Vzc19zdW1tYXJ5X3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3JlY3RfYW5ub3RhdGlvbl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9yZWN0X3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9ydWxlcl90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc2FtcGxlX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zbGljZV9ncm91cF90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NwYWNpbmdfdHJhY2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3N0YWNrZWRfYmFyc190cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MvdGhyZWFkX3RyYWNrLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvY29yZS90cmFja3MveF9tYXJrZXJfYW5ub3RhdGlvbl92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9jb3JlL3VpX3N0YXRlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9hYm91dF90cmFjaW5nLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfY29ubmVjdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfYW5kX2NhcHR1cmVfY29udHJvbGxlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX3NlbGVjdGlvbl9kaWFsb2cuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3hocl9iYXNlZF90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvYW5hbHlzaXMvc2FtcGxpbmdfc3VtbWFyeS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9hcHAuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXVkaXRvci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9tb2RlbF9oZWxwZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfc3VyZmFjZV9mbGluZ2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2NjLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2NvbnN0YW50cy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9kZWJ1Z19jb2xvcnMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9saXN0Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfaW1wbC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2ltcGwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9xdWFkX3N0YWNrX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfYXNfaW1hZ2VfZGF0YS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX2RlYnVnZ2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3N1bW1hcnlfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2suaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmVnaW9uLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3JlbmRlcl9wYXNzLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3NlbGVjdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy90aWxlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3RpbGVfY292ZXJhZ2VfcmVjdC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdXRpbC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYXVkaXRvci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYnJvd3Nlcl9oZWxwZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfcHJvY2Vzc19oZWxwZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX3JlbmRlcmVyX2hlbHBlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvZ3B1Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2dwdS9ncHVfYXN5bmNfc2xpY2UuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV92aWV3Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lX2NvbmZpZy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Z1bGxfY29uZmlnLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaGlnaGxpZ2h0ZXIvdnN5bmNfaGlnaGxpZ2h0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9iYXR0b3JfaW1wb3J0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L2V0d19pbXBvcnRlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldmVudHRyYWNlX3BhcnNlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2V0dy9wYXJzZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9ldHcvcHJvY2Vzc19wYXJzZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9ldHcvdGhyZWFkX3BhcnNlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2d6aXBfaW1wb3J0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9qc3ppcC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYW5kcm9pZF9wYXJzZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2J1c19wYXJzZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Nsb2NrX3BhcnNlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Rpc2tfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9kcm1fcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9leHlub3NfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2dlc3R1cmVfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pOTE1X3BhcnNlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaXJxX3BhcnNlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYva2Z1bmNfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tYWxpX3BhcnNlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWVtcmVjbGFpbV9wYXJzZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcG93ZXJfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9yZWd1bGF0b3JfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9zY2hlZF9wYXJzZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3N5bmNfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi93b3JrcXVldWVfcGFyc2VyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvdHJhY2UyaHRtbF9pbXBvcnRlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvdjgvY29kZW1hcC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3Y4L2xvZ19yZWFkZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC9zcGxheXRyZWUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC92OF9sb2dfaW1wb3J0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci96aXBfaW1wb3J0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9sZWFuX2NvbmZpZy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL25ldC9uZXQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9uZXQvbmV0X2FzeW5jX3NsaWNlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9hbmltYXRpb25faW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9pZGxlX2ludGVyYWN0aW9uX3JlY29yZC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvbG9hZF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9zY29yZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zaWRlX3BhbmVsLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NwYW4uaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3Jlc3BvbnNlX2ludGVyYWN0aW9uX3JlY29yZC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvYWxlcnRzX3NpZGVfcGFuZWwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9zaWRlX3BhbmVsL2lucHV0X2xhdGVuY3lfc2lkZV9wYW5lbC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3QuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0cmFjZV9jb25maWcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9oZWFwLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX3NuYXBzaG90X3ZpZXcuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvY29udGV4dC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvZmlsdGVyX2FsbF9vZi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfYW55X29mLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9oYXNfYW5jZXN0b3IuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvZmlsdGVyX2hhc19kdXJhdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX3RpdGxlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9pc190b3BfbGV2ZWwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvdHF1ZXJ5Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9pbXBvcnRlci9lbXB0eV9pbXBvcnRlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvaW1wb3J0ZXIvaW1wb3J0ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL2ltcG9ydGVyL3NpbXBsZV9saW5lX3JlYWRlci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvYWxlcnQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL2Fubm90YXRpb24uaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9hc3luY19zbGljZV9ncm91cC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvYXR0cmlidXRlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9jb21tZW50X2JveF9hbm5vdGF0aW9uLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9jb250YWluZXJfbWVtb3J5X2R1bXAuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXIuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXJfc2FtcGxlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvY3B1Lmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9jcHVfc2xpY2UuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL2RldmljZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvZXZlbnQuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL2V2ZW50X2NvbnRhaW5lci5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvZXZlbnRfaW5mby5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvZmxvd19ldmVudC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvZnJhbWUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL2dsb2JhbF9tZW1vcnlfZHVtcC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9rZXJuZWwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWwuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL21vZGVsX2luZGljZXMuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL21vZGVsX3NldHRpbmdzLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3RfY29sbGVjdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvb2JqZWN0X2luc3RhbmNlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3Rfc25hcHNob3QuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3MuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3NfYmFzZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvcHJveHlfc2VsZWN0YWJsZV9pdGVtLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9yZWN0X2Fubm90YXRpb24uaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL3NhbXBsZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvc2VsZWN0YWJsZV9pdGVtLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9zZWxlY3Rpb25fc3RhdGUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL3NsaWNlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC9zbGljZV9ncm91cC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvc3RhY2tfZnJhbWUuaHRtbCcsCi0gICAgICAndHJhY2Vfdmlld2VyL21vZGVsL3RocmVhZC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvdGhyZWFkX3NsaWNlLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC90aHJlYWRfdGltZV9zbGljZS5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwLmh0bWwnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9tb2RlbC90aW1lZF9ldmVudC5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvbW9kZWwveF9tYXJrZXJfYW5ub3RhdGlvbi5odG1sJywKLSAgICAgICd0cmFjZV92aWV3ZXIvdHJhY2Vfdmlld2VyLmh0bWwnLAotICAgIF0sCi0gICAgJ3RyYWNpbmdfaW1nX2ZpbGVzJzogWwotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2ltYWdlcy9jaHJvbWUtbGVmdC5wbmcnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2ltYWdlcy9jaHJvbWUtbWlkLnBuZycsCi0gICAgICAndHJhY2Vfdmlld2VyL2Jhc2UvaW1hZ2VzL2Nocm9tZS1yaWdodC5wbmcnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9iYXNlL2ltYWdlcy91aS1zdGF0ZXMucG5nJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9pbWFnZXMvaW5wdXQtZXZlbnQucG5nJywKLSAgICAgICd0cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvaW1hZ2VzL2NoZWNrZXJib2FyZC5wbmcnLAotICAgICAgJ3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvaW1hZ2VzL2NvbGxhcHNlLnBuZycsCi0gICAgICAndHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9pbWFnZXMvZXhwYW5kLnBuZycsCi0gICAgXSwKLSAgICAndHJhY2luZ19maWxlcyc6IFsKLSAgICAgICc8QCh0cmFjaW5nX2Nzc19maWxlcyknLAotICAgICAgJzxAKHRyYWNpbmdfanNfaHRtbF9maWxlcyknLAotICAgICAgJzxAKHRyYWNpbmdfaW1nX2ZpbGVzKScsCi0gICAgXSwKLSAgfQotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjMDRmMmIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWRlZiBfU2V0dXBUVkNNUGF0aCgpOgotICB0dmNtX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uJywgJ3RoaXJkX3BhcnR5JywgJ3R2Y20nKSkKLSAgaWYgdHZjbV9wYXRoIG5vdCBpbiBzeXMucGF0aDoKLSAgICBzeXMucGF0aC5hcHBlbmQodHZjbV9wYXRoKQotCi1fU2V0dXBUVkNNUGF0aCgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvYmFzZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2Jhc2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGNjMDIzNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvYmFzZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotCi0vKioKLSAqIFRoZSBnbG9iYWwgb2JqZWN0LgotICogQHR5cGUgeyFPYmplY3R9Ci0gKiBAY29uc3QKLSAqLwotdmFyIGdsb2JhbCA9IHRoaXM7Ci0KLS8qKiBQbGF0Zm9ybSwgcGFja2FnZSwgb2JqZWN0IHByb3BlcnR5LCBhbmQgRXZlbnQgc3VwcG9ydC4gKi8KLXRoaXMudHIgPSAoZnVuY3Rpb24oKSB7Ci0gIGlmICh3aW5kb3cudHIpIHsKLSAgICBjb25zb2xlLndhcm4oJ0Jhc2Ugd2FzIG11bHRpcGx5IGluaXRpYWxpemVkLiBGaXJzdCBpbml0IHdpbnMuJyk7Ci0gICAgcmV0dXJuIHdpbmRvdy50cjsKLSAgfQotCi0gIC8qKgotICAgKiBCdWlsZHMgYW4gb2JqZWN0IHN0cnVjdHVyZSBmb3IgdGhlIHByb3ZpZGVkIG5hbWVzcGFjZSBwYXRoLAotICAgKiBlbnN1cmluZyB0aGF0IG5hbWVzIHRoYXQgYWxyZWFkeSBleGlzdCBhcmUgbm90IG92ZXJ3cml0dGVuLiBGb3IKLSAgICogZXhhbXBsZToKLSAgICogJ2EuYi5jJyAtPiBhID0ge307YS5iPXt9O2EuYi5jPXt9OwotICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHRoZSBvYmplY3QgdGhhdCB0aGlzIGZpbGUgZGVmaW5lcy4KLSAgICogQHBhcmFtIHsqPX0gb3B0X29iamVjdCBUaGUgb2JqZWN0IHRvIGV4cG9zZSBhdCB0aGUgZW5kIG9mIHRoZSBwYXRoLgotICAgKiBAcGFyYW0ge09iamVjdD19IG9wdF9vYmplY3RUb0V4cG9ydFRvIFRoZSBvYmplY3QgdG8gYWRkIHRoZSBwYXRoIHRvOwotICAgKiAgICAgZGVmYXVsdCBpcyB7QGNvZGUgZ2xvYmFsfS4KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGZ1bmN0aW9uIGV4cG9ydFBhdGgobmFtZSwgb3B0X29iamVjdCwgb3B0X29iamVjdFRvRXhwb3J0VG8pIHsKLSAgICB2YXIgcGFydHMgPSBuYW1lLnNwbGl0KCcuJyk7Ci0gICAgdmFyIGN1ciA9IG9wdF9vYmplY3RUb0V4cG9ydFRvIHx8IGdsb2JhbDsKLQotICAgIGZvciAodmFyIHBhcnQ7IHBhcnRzLmxlbmd0aCAmJiAocGFydCA9IHBhcnRzLnNoaWZ0KCkpOykgewotICAgICAgaWYgKCFwYXJ0cy5sZW5ndGggJiYgb3B0X29iamVjdCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIC8vIGxhc3QgcGFydCBhbmQgd2UgaGF2ZSBhbiBvYmplY3Q7IHVzZSBpdAotICAgICAgICBjdXJbcGFydF0gPSBvcHRfb2JqZWN0OwotICAgICAgfSBlbHNlIGlmIChwYXJ0IGluIGN1cikgewotICAgICAgICBjdXIgPSBjdXJbcGFydF07Ci0gICAgICB9IGVsc2UgewotICAgICAgICBjdXIgPSBjdXJbcGFydF0gPSB7fTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGN1cjsKLSAgfTsKLQotICBmdW5jdGlvbiBpc0RlZmluZWQobmFtZSwgb3B0X2dsb2JhbE9iamVjdCkgewotICAgIHZhciBwYXJ0cyA9IG5hbWUuc3BsaXQoJy4nKTsKLQotICAgIHZhciBjdXJPYmplY3QgPSBvcHRfZ2xvYmFsT2JqZWN0IHx8IGdsb2JhbDsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHsKLSAgICAgIHZhciBwYXJ0TmFtZSA9IHBhcnRzW2ldOwotICAgICAgdmFyIG5leHRPYmplY3QgPSBjdXJPYmplY3RbcGFydE5hbWVdOwotICAgICAgaWYgKG5leHRPYmplY3QgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgY3VyT2JqZWN0ID0gbmV4dE9iamVjdDsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLQotICB2YXIgcGFuaWNFbGVtZW50ID0gdW5kZWZpbmVkOwotICB2YXIgcmF3UGFuaWNNZXNzYWdlcyA9IFtdOwotICBmdW5jdGlvbiBzaG93UGFuaWNFbGVtZW50SWZOZWVkZWQoKSB7Ci0gICAgaWYgKHBhbmljRWxlbWVudCkKLSAgICAgIHJldHVybjsKLQotICAgIHZhciBwYW5pY092ZXJsYXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYW5pY092ZXJsYXkuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3doaXRlJzsKLSAgICBwYW5pY092ZXJsYXkuc3R5bGUuYm9yZGVyID0gJzNweCBzb2xpZCByZWQnOwotICAgIHBhbmljT3ZlcmxheS5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCc7Ci0gICAgcGFuaWNPdmVybGF5LnN0eWxlLmNvbG9yID0gJ2JsYWNrJzsKLSAgICBwYW5pY092ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICctd2Via2l0LWZsZXgnOwotICAgIHBhbmljT3ZlcmxheS5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7Ci0gICAgcGFuaWNPdmVybGF5LnN0eWxlLmxlZnQgPSAwOwotICAgIHBhbmljT3ZlcmxheS5zdHlsZS5wYWRkaW5nID0gJzhweCc7Ci0gICAgcGFuaWNPdmVybGF5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJzsKLSAgICBwYW5pY092ZXJsYXkuc3R5bGUudG9wID0gMDsKLSAgICBwYW5pY092ZXJsYXkuc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiA9ICdjb2x1bW4nOwotICAgIHBhbmljT3ZlcmxheS5zdHlsZS53aWR0aCA9ICcxMDAlJzsKLQotICAgIHBhbmljRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHBhbmljRWxlbWVudC5zdHlsZS53ZWJraXRGbGV4ID0gJzEgMSBhdXRvJzsKLSAgICBwYW5pY0VsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7Ci0gICAgcGFuaWNPdmVybGF5LmFwcGVuZENoaWxkKHBhbmljRWxlbWVudCk7Ci0KLSAgICBpZiAoIWRvY3VtZW50LmJvZHkpIHsKLSAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFuaWNPdmVybGF5KTsKLSAgICAgIH0sIDE1MCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFuaWNPdmVybGF5KTsKLSAgICB9Ci0gIH0KLQotICBmdW5jdGlvbiBzaG93UGFuaWMocGFuaWNUaXRsZSwgcGFuaWNEZXRhaWxzKSB7Ci0KLSAgICBpZiAocGFuaWNEZXRhaWxzIGluc3RhbmNlb2YgRXJyb3IpCi0gICAgICBwYW5pY0RldGFpbHMgPSBwYW5pY0RldGFpbHMuc3RhY2s7Ci0KLSAgICBzaG93UGFuaWNFbGVtZW50SWZOZWVkZWQoKTsKLSAgICB2YXIgcGFuaWNNZXNzYWdlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYW5pY01lc3NhZ2VFbC5pbm5lckhUTUwgPQotICAgICAgICAnPGgyIGlkPSJtZXNzYWdlIj48L2gyPicgKwotICAgICAgICAnPHByZSBpZD0iZGV0YWlscyI+PC9wcmU+JzsKLSAgICBwYW5pY01lc3NhZ2VFbC5xdWVyeVNlbGVjdG9yKCcjbWVzc2FnZScpLnRleHRDb250ZW50ID0gcGFuaWNUaXRsZTsKLSAgICBwYW5pY01lc3NhZ2VFbC5xdWVyeVNlbGVjdG9yKCcjZGV0YWlscycpLnRleHRDb250ZW50ID0gcGFuaWNEZXRhaWxzOwotICAgIHBhbmljRWxlbWVudC5hcHBlbmRDaGlsZChwYW5pY01lc3NhZ2VFbCk7Ci0KLSAgICByYXdQYW5pY01lc3NhZ2VzLnB1c2goewotICAgICAgdGl0bGU6IHBhbmljVGl0bGUsCi0gICAgICBkZXRhaWxzOiBwYW5pY0RldGFpbHMKLSAgICB9KTsKLSAgfQotCi0gIGZ1bmN0aW9uIGhhc1BhbmljKCkgewotICAgIHJldHVybiByYXdQYW5pY01lc3NhZ2VzLmxlbmd0aCAhPT0gMDsKLSAgfQotICBmdW5jdGlvbiBnZXRQYW5pY1RleHQoKSB7Ci0gICAgcmV0dXJuIHJhd1BhbmljTWVzc2FnZXMubWFwKGZ1bmN0aW9uKG1zZykgewotICAgICAgcmV0dXJuIG1zZy50aXRsZTsKLSAgICB9KS5qb2luKCcsICcpOwotICB9Ci0KLSAgZnVuY3Rpb24gZXhwb3J0VG8obmFtZXNwYWNlLCBmbikgewotICAgIHZhciBvYmogPSBleHBvcnRQYXRoKG5hbWVzcGFjZSk7Ci0gICAgdmFyIGV4cG9ydHMgPSBmbigpOwotCi0gICAgZm9yICh2YXIgcHJvcGVydHlOYW1lIGluIGV4cG9ydHMpIHsKLSAgICAgIC8vIE1heWJlIHdlIHNob3VsZCBjaGVjayB0aGUgcHJvdG90eXBlIGNoYWluIGhlcmU/IFRoZSBjdXJyZW50IHVzYWdlCi0gICAgICAvLyBwYXR0ZXJuIGlzIGFsd2F5cyB1c2luZyBhbiBvYmplY3QgbGl0ZXJhbCBzbyB3ZSBvbmx5IGNhcmUgYWJvdXQgb3duCi0gICAgICAvLyBwcm9wZXJ0aWVzLgotICAgICAgdmFyIHByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhwb3J0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSk7Ci0gICAgICBpZiAocHJvcGVydHlEZXNjcmlwdG9yKQotICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBwcm9wZXJ0eU5hbWUsIHByb3BlcnR5RGVzY3JpcHRvcik7Ci0gICAgfQotICB9OwotCi0gIC8qKgotICAgKiBJbml0aWFsaXphdGlvbiB3aGljaCBtdXN0IGJlIGRlZmVycmVkIHVudGlsIHJ1bi10aW1lLgotICAgKi8KLSAgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHsKLSAgICBpZiAoIXdpbmRvdy5fVFJBQ0VfVklFV0VSX0lTX0NPTVBJTEVEKSB7Ci0gICAgICB2YXIgdmVyID0gcGFyc2VJbnQoCi0gICAgICAgICAgd2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9DaHJvbWVcLyhcZCspXC4vKVsxXSwgMTApOwotICAgICAgdmFyIHN1cHBvcnRfY29udGVudF9zaGVsbCA9IHdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbi5tYXRjaCgnNzcuMzQuNScpOwotICAgICAgaWYgKHZlciA8IDM2ICYmICFzdXBwb3J0X2NvbnRlbnRfc2hlbGwpIHsKLSAgICAgICAgdmFyIG1zZyA9ICdBIENocm9tZSB2ZXJzaW9uIG9mIDM2IG9yIGhpZ2hlciBpcyByZXF1aXJlZCBmb3IgJyArCi0gICAgICAgICAgICAndHJhY2Utdmlld2VyIGRldmVsb3BtZW50LiBQbGVhc2UgdXBncmFkZSB5b3VyIHZlcnNpb24gb2YgQ2hyb21lICcgKwotICAgICAgICAgICAgJ2FuZCB0cnkgYWdhaW4uJzsKLSAgICAgICAgc2hvd1BhbmljKCdJbnZhbGlkIENocm9tZSB2ZXJzaW9uJywgbXNnKTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICB0ci5kb2MgPSBkb2N1bWVudDsKLQotICAgIHRyLmlzTWFjID0gL01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOwotICAgIHRyLmlzV2luZG93cyA9IC9XaW4vLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKTsKLSAgICB0ci5pc0Nocm9tZU9TID0gL0NyT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7Ci0gICAgdHIuaXNMaW51eCA9IC9MaW51eC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgaW5pdGlhbGl6ZTogaW5pdGlhbGl6ZSwKLQotICAgIGV4cG9ydFRvOiBleHBvcnRUbywKLSAgICBpc0RlZmluZWQ6IGlzRGVmaW5lZCwKLQotICAgIHNob3dQYW5pYzogc2hvd1BhbmljLAotICAgIGhhc1BhbmljOiBoYXNQYW5pYywKLSAgICBnZXRQYW5pY1RleHQ6IGdldFBhbmljVGV4dAotICB9OwotfSkoKTsKLQotdHIuaW5pdGlhbGl6ZSgpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvYmFzZTY0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvYmFzZTY0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViMDcwYTIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2Jhc2U2NC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7Ci0KLSAgZnVuY3Rpb24gQmFzZTY0KCkgewotICB9Ci0KLSAgZnVuY3Rpb24gYjY0VG9VaW50NihuQ2hyKSB7Ci0gICAgaWYgKG5DaHIgPiA2NCAmJiBuQ2hyIDwgOTEpCi0gICAgICByZXR1cm4gbkNociAtIDY1OwotICAgIGlmIChuQ2hyID4gOTYgJiYgbkNociA8IDEyMykKLSAgICAgIHJldHVybiBuQ2hyIC0gNzE7Ci0gICAgaWYgKG5DaHIgPiA0NyAmJiBuQ2hyIDwgNTgpCi0gICAgICByZXR1cm4gbkNociArIDQ7Ci0gICAgaWYgKG5DaHIgPT09IDQzKQotICAgICAgcmV0dXJuIDYyOwotICAgIGlmIChuQ2hyID09PSA0NykKLSAgICAgIHJldHVybiA2MzsKLSAgICByZXR1cm4gMDsKLSAgfQotCi0gIEJhc2U2NC5nZXREZWNvZGVkQnVmZmVyTGVuZ3RoID0gZnVuY3Rpb24oaW5wdXQpIHsKLSAgICByZXR1cm4gaW5wdXQubGVuZ3RoICogMyArIDEgPj4gMjsKLSAgfQotCi0gIEJhc2U2NC5EZWNvZGVUb1R5cGVkQXJyYXkgPSBmdW5jdGlvbihpbnB1dCwgb3V0cHV0KSB7Ci0KLSAgICB2YXIgbkluTGVuID0gaW5wdXQubGVuZ3RoOwotICAgIHZhciBuT3V0TGVuID0gbkluTGVuICogMyArIDEgPj4gMjsKLSAgICB2YXIgbk1vZDMgPSAwOwotICAgIHZhciBuTW9kNCA9IDA7Ci0gICAgdmFyIG5VaW50MjQgPSAwOwotICAgIHZhciBuT3V0SWR4ID0gMDsKLQotICAgIGlmIChuT3V0TGVuID4gb3V0cHV0LmJ5dGVMZW5ndGgpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ091dHB1dCBidWZmZXIgdG9vIHNtYWxsIHRvIGRlY29kZS4nKTsKLQotICAgIGZvciAodmFyIG5JbklkeCA9IDA7IG5JbklkeCA8IG5JbkxlbjsgbkluSWR4KyspIHsKLSAgICAgIG5Nb2Q0ID0gbkluSWR4ICYgMzsKLSAgICAgIG5VaW50MjQgfD0gYjY0VG9VaW50NihpbnB1dC5jaGFyQ29kZUF0KG5JbklkeCkpIDw8IDE4IC0gNiAqIG5Nb2Q0OwotICAgICAgaWYgKG5Nb2Q0ID09PSAzIHx8IG5JbkxlbiAtIG5JbklkeCA9PT0gMSkgewotICAgICAgICBmb3IgKG5Nb2QzID0gMDsgbk1vZDMgPCAzICYmIG5PdXRJZHggPCBuT3V0TGVuOyBuTW9kMysrLCBuT3V0SWR4KyspIHsKLSAgICAgICAgICBvdXRwdXQuc2V0VWludDgobk91dElkeCwgblVpbnQyNCA+Pj4gKDE2ID4+PiBuTW9kMyAmIDI0KSAmIDI1NSk7Ci0gICAgICAgIH0KLSAgICAgICAgblVpbnQyNCA9IDA7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiBuT3V0SWR4IC0gMTsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgQmFzZTY0OiBCYXNlNjQKLSAgfTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9jb2xvcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvY29sb3JfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjQzMGI1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9jb2xvcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9jb2xvci5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdmcm9tUkdCJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGMgPSB0ci5iLkNvbG9yLmZyb21TdHJpbmcoJ3JnYigxLCAyLCAzKScpOwotICAgIGFzc2VydC5lcXVhbChjLnIsIDEpOwotICAgIGFzc2VydC5lcXVhbChjLmcsIDIpOwotICAgIGFzc2VydC5lcXVhbChjLmIsIDMpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChjLmEpOwotICB9KTsKLQotICB0ZXN0KCdGcm9tUkdCQScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjID0gdHIuYi5Db2xvci5mcm9tU3RyaW5nKCdyZ2JhKDEsIDIsIDMsIDAuNSknKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5yLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5nLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5iLCAzKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5hLCAwLjUpOwotICB9KTsKLQotICB0ZXN0KCdmcm9tSGV4JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGMgPSB0ci5iLkNvbG9yLmZyb21TdHJpbmcoJyMwMTAyMDMnKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5yLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5nLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5iLCAzKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoYy5hKTsKLSAgfSk7Ci0KLSAgdGVzdCgndG9TdHJpbmdSR0InLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYyA9IG5ldyB0ci5iLkNvbG9yKDEsIDIsIDMpOwotICAgIGFzc2VydC5lcXVhbChjLnRvU3RyaW5nKCksICdyZ2IoMSwyLDMpJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ3RvU3RyaW5nUkdCQScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjID0gbmV3IHRyLmIuQ29sb3IoMSwgMiwgMywgMC41KTsKLSAgICBhc3NlcnQuZXF1YWwoYy50b1N0cmluZygpLCAncmdiYSgxLDIsMywwLjUpJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2xlcnBSR0InLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYSA9IG5ldyB0ci5iLkNvbG9yKDAsIDEyNywgMTkxKTsKLSAgICB2YXIgYiA9IG5ldyB0ci5iLkNvbG9yKDI1NSwgMjU1LCAyNTUpOwotICAgIHZhciB4ID0gdHIuYi5Db2xvci5sZXJwUkdCKGEsIGIsIDAuMjUpOwotICAgIGFzc2VydC5lcXVhbCh4LnIsIDYzKTsKLSAgICBhc3NlcnQuZXF1YWwoeC5nLCAxNTkpOwotICAgIGFzc2VydC5lcXVhbCh4LmIsIDIwNyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2xlcnBSR0JBJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSBuZXcgdHIuYi5Db2xvcigwLCAxMjcsIDE5MSwgMC41KTsKLSAgICB2YXIgYiA9IG5ldyB0ci5iLkNvbG9yKDI1NSwgMjU1LCAyNTUsIDEpOwotICAgIHZhciB4ID0gdHIuYi5Db2xvci5sZXJwUkdCQShhLCBiLCAwLjI1KTsKLSAgICBhc3NlcnQuZXF1YWwoeC5yLCA2Myk7Ci0gICAgYXNzZXJ0LmVxdWFsKHguZywgMTU5KTsKLSAgICBhc3NlcnQuZXF1YWwoeC5iLCAyMDcpOwotICAgIGFzc2VydC5lcXVhbCh4LmEsIDAuNjI1KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYmxlbmRSR0JBJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHJlZCA9IG5ldyB0ci5iLkNvbG9yKDI1NSwgMCwgMCwgMC41KTsKLSAgICB2YXIgd2hpdGUgPSBuZXcgdHIuYi5Db2xvcigyNTUsIDI1NSwgMjU1LCAxKTsKLSAgICB2YXIgeCA9IHJlZC5ibGVuZE92ZXIod2hpdGUpOwotICAgIGFzc2VydC5lcXVhbCh4LnIsIDI1NSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHguZywgMTI3KTsKLSAgICBhc3NlcnQuZXF1YWwoeC5iLCAxMjcpOwotICAgIGFzc2VydC5lcXVhbCh4LmEsIDEpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZGVlcF91dGlsc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZGVlcF91dGlsc190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxYzE1MTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2RlZXBfdXRpbHNfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBvcHRfY2xhc3MpIHsKLSAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOwotICAgIGlmIChvcHRfY2xhc3MpCi0gICAgICBlbC5jbGFzc05hbWUgPSBvcHRfY2xhc3M7Ci0gICAgcmV0dXJuIGVsOwotICB9Ci0KLSAgdGVzdCgndGVzdEZpbmREZWVwRWxlbWVudE1hdGNoaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSBjcmVhdGVFbGVtZW50KCdhJyk7Ci0gICAgdmFyIGFfID0gYS5jcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICB2YXIgYiA9IGNyZWF0ZUVsZW1lbnQoJ2InKTsKLSAgICBhXy5hcHBlbmRDaGlsZChiKTsKLQotICAgIHZhciBiXyA9IGIuY3JlYXRlU2hhZG93Um9vdCgpOwotICAgIGJfLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2MnLCAneCcpKTsKLQotICAgIHZhciBtID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZyhhLCAnYy54Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0sIGJfLmNoaWxkcmVuWzBdKTsKLSAgfSk7Ci0KLSAgdGVzdCgndGVzdEZpbmREZWVwRWxlbWVudHNNYXRjaGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gY3JlYXRlRWxlbWVudCgnYScpOwotICAgIHZhciBhXyA9IGEuY3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAgdmFyIGIgPSBjcmVhdGVFbGVtZW50KCdiJyk7Ci0gICAgYV8uYXBwZW5kQ2hpbGQoYik7Ci0KLSAgICB2YXIgYl8gPSBiLmNyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBiXy5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdjJywgJ3gnKSk7Ci0gICAgYl8uYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnYycsICd4JykpOwotCi0gICAgdmFyIG0gPSB0ci5iLmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhhLCAnYy54Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG1bMF0sIGJfLmNoaWxkcmVuWzBdKTsKLSAgICBhc3NlcnQuZXF1YWwobVsxXSwgYl8uY2hpbGRyZW5bMV0pOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkYjM4YmIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V2ZW50X3RhcmdldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgVGhpcyBjb250YWlucyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRXZlbnRUYXJnZXQgaW50ZXJmYWNlCi0gKiBhcyBkZWZpbmVkIGJ5IERPTSBMZXZlbCAyIEV2ZW50cy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogQ3JlYXRlcyBhIG5ldyBFdmVudFRhcmdldC4gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBET00gbGV2ZWwgMgotICAgKiBFdmVudFRhcmdldCBpbnRlcmZhY2UgYW5kIGNhbiBiZSB1c2VkIHdoZXJldmVyIHRob3NlIGFyZSB1c2VkLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgewotICB9Ci0gIEV2ZW50VGFyZ2V0LmRlY29yYXRlID0gZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgZm9yICh2YXIgayBpbiBFdmVudFRhcmdldC5wcm90b3R5cGUpIHsKLSAgICAgIGlmIChrID09ICdkZWNvcmF0ZScpCi0gICAgICAgIGNvbnRpbnVlOwotICAgICAgdmFyIHYgPSBFdmVudFRhcmdldC5wcm90b3R5cGVba107Ci0gICAgICBpZiAodHlwZW9mIHYgIT09ICdmdW5jdGlvbicpCi0gICAgICAgIGNvbnRpbnVlOwotICAgICAgdGFyZ2V0W2tdID0gdjsKLSAgICB9Ci0gIH07Ci0KLSAgRXZlbnRUYXJnZXQucHJvdG90eXBlID0gewotCi0gICAgLyoqCi0gICAgICogQWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgdGFyZ2V0LgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KLSAgICAgKiBAcGFyYW0geyFGdW5jdGlvbnx7aGFuZGxlRXZlbnQ6RnVuY3Rpb259fSBoYW5kbGVyIFRoZSBoYW5kbGVyIGZvciB0aGUKLSAgICAgKiAgICAgZXZlbnQuIFRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIGV2ZW50IGlzIGRpc3BhdGNoZWQuCi0gICAgICovCi0gICAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24odHlwZSwgaGFuZGxlcikgewotICAgICAgaWYgKCF0aGlzLmxpc3RlbmVyc18pCi0gICAgICAgIHRoaXMubGlzdGVuZXJzXyA9IE9iamVjdC5jcmVhdGUobnVsbCk7Ci0gICAgICBpZiAoISh0eXBlIGluIHRoaXMubGlzdGVuZXJzXykpIHsKLSAgICAgICAgdGhpcy5saXN0ZW5lcnNfW3R5cGVdID0gW2hhbmRsZXJdOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIGhhbmRsZXJzID0gdGhpcy5saXN0ZW5lcnNfW3R5cGVdOwotICAgICAgICBpZiAoaGFuZGxlcnMuaW5kZXhPZihoYW5kbGVyKSA8IDApCi0gICAgICAgICAgaGFuZGxlcnMucHVzaChoYW5kbGVyKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUmVtb3ZlcyBhbiBldmVudCBsaXN0ZW5lciBmcm9tIHRoZSB0YXJnZXQuCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgVGhlIG5hbWUgb2YgdGhlIGV2ZW50LgotICAgICAqIEBwYXJhbSB7IUZ1bmN0aW9ufHtoYW5kbGVFdmVudDpGdW5jdGlvbn19IGhhbmRsZXIgVGhlIGhhbmRsZXIgZm9yIHRoZQotICAgICAqICAgICBldmVudC4KLSAgICAgKi8KLSAgICByZW1vdmVFdmVudExpc3RlbmVyOiBmdW5jdGlvbih0eXBlLCBoYW5kbGVyKSB7Ci0gICAgICBpZiAoIXRoaXMubGlzdGVuZXJzXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKHR5cGUgaW4gdGhpcy5saXN0ZW5lcnNfKSB7Ci0gICAgICAgIHZhciBoYW5kbGVycyA9IHRoaXMubGlzdGVuZXJzX1t0eXBlXTsKLSAgICAgICAgdmFyIGluZGV4ID0gaGFuZGxlcnMuaW5kZXhPZihoYW5kbGVyKTsKLSAgICAgICAgaWYgKGluZGV4ID49IDApIHsKLSAgICAgICAgICAvLyBDbGVhbiB1cCBpZiB0aGlzIHdhcyB0aGUgbGFzdCBsaXN0ZW5lci4KLSAgICAgICAgICBpZiAoaGFuZGxlcnMubGVuZ3RoID09IDEpCi0gICAgICAgICAgICBkZWxldGUgdGhpcy5saXN0ZW5lcnNfW3R5cGVdOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGhhbmRsZXJzLnNwbGljZShpbmRleCwgMSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogRGlzcGF0Y2hlcyBhbiBldmVudCBhbmQgY2FsbHMgYWxsIHRoZSBsaXN0ZW5lcnMgdGhhdCBhcmUgbGlzdGVuaW5nIHRvCi0gICAgICogdGhlIHR5cGUgb2YgdGhlIGV2ZW50LgotICAgICAqIEBwYXJhbSB7IWNyLmV2ZW50LkV2ZW50fSBldmVudCBUaGUgZXZlbnQgdG8gZGlzcGF0Y2guCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGUgZGVmYXVsdCBhY3Rpb24gd2FzIHByZXZlbnRlZC4gSWYgc29tZW9uZQotICAgICAqICAgICBjYWxscyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUgZXZlbnQgb2JqZWN0IHRoZW4gdGhpcyByZXR1cm5zIGZhbHNlLgotICAgICAqLwotICAgIGRpc3BhdGNoRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICBpZiAoIXRoaXMubGlzdGVuZXJzXykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgIC8vIFNpbmNlIHdlIGFyZSB1c2luZyBET00gRXZlbnQgb2JqZWN0cyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHNvbWUgb2YgdGhlCi0gICAgICAvLyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIHNvIHRoYXQgd2UgY2FuIGVtdWxhdGUgdGhpcyBjb3JyZWN0bHkuCi0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICBldmVudC5fX2RlZmluZUdldHRlcl9fKCd0YXJnZXQnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIHNlbGY7Ci0gICAgICB9KTsKLSAgICAgIHZhciByZWFsUHJldmVudERlZmF1bHQgPSBldmVudC5wcmV2ZW50RGVmYXVsdDsKLSAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlYWxQcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLnJhd1JldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgICB9OwotCi0gICAgICB2YXIgdHlwZSA9IGV2ZW50LnR5cGU7Ci0gICAgICB2YXIgcHJldmVudGVkID0gMDsKLSAgICAgIGlmICh0eXBlIGluIHRoaXMubGlzdGVuZXJzXykgewotICAgICAgICAvLyBDbG9uZSB0byBwcmV2ZW50IHJlbW92YWwgZHVyaW5nIGRpc3BhdGNoCi0gICAgICAgIHZhciBoYW5kbGVycyA9IHRoaXMubGlzdGVuZXJzX1t0eXBlXS5jb25jYXQoKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDAsIGhhbmRsZXI7IGhhbmRsZXIgPSBoYW5kbGVyc1tpXTsgaSsrKSB7Ci0gICAgICAgICAgaWYgKGhhbmRsZXIuaGFuZGxlRXZlbnQpCi0gICAgICAgICAgICBwcmV2ZW50ZWQgfD0gaGFuZGxlci5oYW5kbGVFdmVudC5jYWxsKGhhbmRsZXIsIGV2ZW50KSA9PT0gZmFsc2U7Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgcHJldmVudGVkIHw9IGhhbmRsZXIuY2FsbCh0aGlzLCBldmVudCkgPT09IGZhbHNlOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiAhcHJldmVudGVkICYmIGV2ZW50LnJhd1JldHVyblZhbHVlOwotICAgIH0sCi0KLSAgICBoYXNFdmVudExpc3RlbmVyOiBmdW5jdGlvbih0eXBlKSB7Ci0gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lcnNfW3R5cGVdICE9PSB1bmRlZmluZWQ7Ci0gICAgfQotICB9OwotCi0gIHZhciBFdmVudFRhcmdldEhlbHBlciA9IHsKLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odGFyZ2V0KSB7Ci0gICAgICBmb3IgKHZhciBrIGluIEV2ZW50VGFyZ2V0SGVscGVyKSB7Ci0gICAgICAgIGlmIChrID09ICdkZWNvcmF0ZScpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHZhciB2ID0gRXZlbnRUYXJnZXRIZWxwZXJba107Ci0gICAgICAgIGlmICh0eXBlb2YgdiAhPT0gJ2Z1bmN0aW9uJykKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgdGFyZ2V0W2tdID0gdjsKLSAgICAgIH0KLSAgICAgIHRhcmdldC5saXN0ZW5lckNvdW50c18gPSB7fTsKLSAgICB9LAotCi0gICAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpIHsKLSAgICAgIHRoaXMuX19wcm90b19fLmFkZEV2ZW50TGlzdGVuZXIuY2FsbCgKLSAgICAgICAgICB0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7Ci0gICAgICBpZiAodGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV0gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV0gPSAwOwotICAgICAgdGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV0rKzsKLSAgICB9LAotCi0gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpIHsKLSAgICAgIHRoaXMuX19wcm90b19fLnJlbW92ZUV2ZW50TGlzdGVuZXIuY2FsbCgKLSAgICAgICAgICB0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7Ci0gICAgICB0aGlzLmxpc3RlbmVyQ291bnRzX1t0eXBlXS0tOwotICAgIH0sCi0KLSAgICBoYXNFdmVudExpc3RlbmVyOiBmdW5jdGlvbih0eXBlKSB7Ci0gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV0gPiAwOwotICAgIH0KLSAgfTsKLQotICAvLyBFeHBvcnQKLSAgcmV0dXJuIHsKLSAgICBFdmVudFRhcmdldDogRXZlbnRUYXJnZXQsCi0gICAgRXZlbnRUYXJnZXRIZWxwZXI6IEV2ZW50VGFyZ2V0SGVscGVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V2ZW50X3RhcmdldF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXZlbnRfdGFyZ2V0X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE0NzE2ZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXZlbnRfdGFyZ2V0X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50X3RhcmdldC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudHMuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnZXZlbnRUYXJnZXRIZWxwZXInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGlzdGVuZXJDYWxsQ291bnQgPSAwOwotICAgIGZ1bmN0aW9uIGxpc3RlbmVyKCkgeyBsaXN0ZW5lckNhbGxDb3VudCsrOyB9Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdHIuYi5FdmVudFRhcmdldEhlbHBlci5kZWNvcmF0ZShkaXYpOwotCi0gICAgYXNzZXJ0LmlzRmFsc2UoZGl2Lmhhc0V2ZW50TGlzdGVuZXIoJ2ZvbycpKTsKLQotICAgIGRpdi5hZGRFdmVudExpc3RlbmVyKCdmb28nLCBsaXN0ZW5lcik7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaXYuaGFzRXZlbnRMaXN0ZW5lcignZm9vJykpOwotCi0gICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KGRpdiwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChsaXN0ZW5lckNhbGxDb3VudCwgMSk7Ci0KLSAgICBkaXYucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9vJywgbGlzdGVuZXIpOwotCi0gICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KGRpdiwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChsaXN0ZW5lckNhbGxDb3VudCwgMSk7Ci0KLSAgICBhc3NlcnQuaXNGYWxzZShkaXYuaGFzRXZlbnRMaXN0ZW5lcignZm9vJykpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXZlbnRzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXZlbnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkNTFmNGUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V2ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIENyZWF0ZXMgYSBuZXcgZXZlbnQgdG8gYmUgdXNlZCB3aXRoIHRyLmIuRXZlbnRUYXJnZXQgb3IgRE9NIEV2ZW50VGFyZ2V0Ci0gICAqIG9iamVjdHMuCi0gICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KLSAgICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2J1YmJsZXMgV2hldGhlciB0aGUgZXZlbnQgYnViYmxlcy4KLSAgICogICAgIERlZmF1bHQgaXMgZmFsc2UuCi0gICAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9wcmV2ZW50YWJsZSBXaGV0aGVyIHRoZSBkZWZhdWx0IGFjdGlvbiBvZiB0aGUgZXZlbnQKLSAgICogICAgIGNhbiBiZSBwcmV2ZW50ZWQuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7RXZlbnR9Ci0gICAqLwotICBmdW5jdGlvbiBFdmVudCh0eXBlLCBvcHRfYnViYmxlcywgb3B0X3ByZXZlbnRhYmxlKSB7Ci0gICAgdmFyIGUgPSB0ci5kb2MuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7Ci0gICAgZS5pbml0RXZlbnQodHlwZSwgISFvcHRfYnViYmxlcywgISFvcHRfcHJldmVudGFibGUpOwotICAgIGUuX19wcm90b19fID0gZ2xvYmFsLkV2ZW50LnByb3RvdHlwZTsKLSAgICByZXR1cm4gZTsKLSAgfTsKLQotICBFdmVudC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBnbG9iYWwuRXZlbnQucHJvdG90eXBlCi0gIH07Ci0KLSAgLyoqCi0gICAqIERpc3BhdGNoZXMgYSBzaW1wbGUgZXZlbnQgb24gYW4gZXZlbnQgdGFyZ2V0LgotICAgKiBAcGFyYW0geyFFdmVudFRhcmdldH0gdGFyZ2V0IFRoZSBldmVudCB0YXJnZXQgdG8gZGlzcGF0Y2ggdGhlIGV2ZW50IG9uLgotICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBUaGUgdHlwZSBvZiB0aGUgZXZlbnQuCi0gICAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9idWJibGVzIFdoZXRoZXIgdGhlIGV2ZW50IGJ1YmJsZXMgb3Igbm90LgotICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfY2FuY2VsYWJsZSBXaGV0aGVyIHRoZSBkZWZhdWx0IGFjdGlvbiBvZiB0aGUgZXZlbnQKLSAgICogICAgIGNhbiBiZSBwcmV2ZW50ZWQuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIGFueSBvZiB0aGUgbGlzdGVuZXJzIGNhbGxlZCB7QGNvZGUgcHJldmVudERlZmF1bHR9Ci0gICAqICAgICBkdXJpbmcgdGhlIGRpc3BhdGNoIHRoaXMgd2lsbCByZXR1cm4gZmFsc2UuCi0gICAqLwotICBmdW5jdGlvbiBkaXNwYXRjaFNpbXBsZUV2ZW50KHRhcmdldCwgdHlwZSwgb3B0X2J1YmJsZXMsIG9wdF9jYW5jZWxhYmxlKSB7Ci0gICAgdmFyIGUgPSBuZXcgRXZlbnQodHlwZSwgb3B0X2J1YmJsZXMsIG9wdF9jYW5jZWxhYmxlKTsKLSAgICByZXR1cm4gdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZSk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIEV2ZW50OiBFdmVudCwKLSAgICBkaXNwYXRjaFNpbXBsZUV2ZW50OiBkaXNwYXRjaFNpbXBsZUV2ZW50Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmZlMjllLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50X3RhcmdldC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzaWMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X3R5cGVfYmFzZWQuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgSGVscGVyIGNvZGUgZm9yIGRlZmluaW5nIGV4dGVuc2lvbiByZWdpc3RyaWVzLCB3aGljaCBjYW4gYmUKLSAqIHVzZWQgdG8gbWFrZSBhIHBhcnQgb2YgdHJhY2Utdmlld2VyIGV4dGVuc2libGUuCi0gKgotICogVGhpcyBmaWxlIHByb3ZpZGVzIHR3byBiYXNpYyB0eXBlcyBvZiBleHRlbnNpb24gcmVnaXN0cmllczoKLSAqIC0gR2VuZXJpYzogcmVnaXN0ZXIgYSB0eXBlIHdpdGggbWV0YWRhdGEsIHF1ZXJ5IGZvciB0aG9zZSB0eXBlcyBiYXNlZCBvbgotICogICAgICAgICAgICBhIHByZWRpY2F0ZQotICoKLSAqIC0gVHlwZU5hbWUtYmFzZWQ6IHJlZ2lzdGVyIGEgdHlwZSB0aGF0IGhhbmRsZXMgc29tZSBjb21iaW5hdGlvbgotICogICAgICAgICAgICAgICAgICAgb2YgdHJhY2luZyBjYXRlZ29yaWVzIG9yIHR5cGVOYW1lcywgdGhlbiBxdWVyeQotICogICAgICAgICAgICAgICAgICAgZm9yIGl0IGJhc2VkIG9uIGEgY2F0ZWdvcnksIHR5cGVOYW1lIG9yIGJvdGguCi0gKgotICogVXNlIHRoZXNlIGZvciBwdXJlLUpTIGNsYXNzZXMgb3IgdWkuZGVmaW5lJ2QgY2xhc3Nlcy4gRm9yIHBvbHltZXIgZWxlbWVudAotICogcmVsYXRlZCByZWdpc3RyaWVzLCBjb25zdWx0IGJhc2UvcG9seW1lcl91dGlscy5odG1sLgotICoKLSAqIFdoZW4geW91IHJlZ2lzdGVyIHN1YnR5cGVzLCB5b3UgcGFzcyB0aGUgY29uc3RydWN0b3IgZm9yIHRoZQotICogc3VidHlwZSwgYW5kIGFueSBtZXRhZGF0YSB5b3Ugd2FudCBhc3NvY2lhdGVkIHdpdGggdGhlIHN1YnR5cGUuIFVzZSBtZXRhZGF0YQotICogaW5zdGVhZCBvZiBzdHVmZmluZyBmaWVsZHMgb250byB0aGUgY29uc3RydWN0b3IuIEUuZy46Ci0gKiAgICAgcmVnaXN0cnkucmVnaXN0ZXIoTXlTdWJjbGFzcywge3RpdGxlV2hlblNob3duSW5UYWJTdHJpcDogJ015U3ViJ30pCi0gKgotICogU29tZSByZWdpc3RyaWVzIHdhbnQgYSBkZWZhdWx0IG9iamVjdCB0aGF0IGlzIHJldHVybmVkIHdoZW4gYSBtb3JlIHByZWNpc2UKLSAqIHN1YnR5cGUgaGFzIGJlZW4gcmVnaXN0ZXJlZC4gVG8gcHJvdmlkZSBvbmUsIHNldCB0aGUgZGVmYXVsdENvbnN0cnVjdG9yCi0gKiBvcHRpb24gb24gdGhlIHJlZ2lzdHJ5IG9wdGlvbnMuCi0gKgotICogSWYgeW91IHdhbnQgdG8gZW5mb3JjZSB0aGF0IGEgcmVnaXN0cnkgb25seSBtYW5hZ2VzIHR5cGVzIG9mIGEgZ2l2ZW4gc3VidHlwZSwKLSAqIHRoZW4gc2V0IG1hbmRhdG9yeUJhc2VUeXBlIGZpZWxkIG9uIHRoZSByZWdpc3RyeS4KLSAqCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7Ci0KLSAgZnVuY3Rpb24gZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShyZWdpc3RyeSwgcmVnaXN0cnlPcHRpb25zKSB7Ci0gICAgaWYgKHJlZ2lzdHJ5LnJlZ2lzdGVyKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IGhhcyByZWdpc3RyeScpOwotCi0gICAgcmVnaXN0cnlPcHRpb25zLmZyZWV6ZSgpOwotICAgIGlmIChyZWdpc3RyeU9wdGlvbnMubW9kZSA9PSB0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpIHsKLSAgICAgIHRyLmIuX2RlY29yYXRlQmFzaWNFeHRlbnNpb25SZWdpc3RyeShyZWdpc3RyeSwgcmVnaXN0cnlPcHRpb25zKTsKLSAgICB9IGVsc2UgaWYgKHJlZ2lzdHJ5T3B0aW9ucy5tb2RlID09IHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKSB7Ci0gICAgICB0ci5iLl9kZWNvcmF0ZVR5cGVCYXNlZEV4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LCByZWdpc3RyeU9wdGlvbnMpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBtb2RlJyk7Ci0gICAgfQotCi0gICAgLy8gTWFrZSBpdCBhbiBldmVudCB0YXJnZXQuCi0gICAgaWYgKHJlZ2lzdHJ5LmFkZEV2ZW50TGlzdGVuZXIgPT09IHVuZGVmaW5lZCkKLSAgICAgIHRyLmIuRXZlbnRUYXJnZXQuZGVjb3JhdGUocmVnaXN0cnkpOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBkZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5OiBkZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV9iYXNpYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV9iYXNpYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTFkN2JlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzaWMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIFJlZ2lzdGVyZWRUeXBlSW5mbyA9IHRyLmIuUmVnaXN0ZXJlZFR5cGVJbmZvOwotICB2YXIgRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zID0gdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnM7Ci0KLSAgZnVuY3Rpb24gZGVjb3JhdGVCYXNpY0V4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LCBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMpIHsKLSAgICB2YXIgc2F2ZWRTdGF0ZVN0YWNrID0gW107Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18gPSBbXTsKLQotICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyID0gZnVuY3Rpb24oY29uc3RydWN0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfbWV0YWRhdGEpIHsKLSAgICAgIGlmIChyZWdpc3RyeS5maW5kSW5kZXhPZlJlZ2lzdGVyZWRDb25zdHJ1Y3RvcigKLSAgICAgICAgICBjb25zdHJ1Y3RvcikgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIYW5kbGVyIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgJyArIGNvbnN0cnVjdG9yKTsKLQotICAgICAgZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLnZhbGlkYXRlQ29uc3RydWN0b3IoY29uc3RydWN0b3IpOwotCi0gICAgICB2YXIgbWV0YWRhdGEgPSB7fTsKLSAgICAgIGZvciAodmFyIGsgaW4gZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRNZXRhZGF0YSkKLSAgICAgICAgbWV0YWRhdGFba10gPSBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMuZGVmYXVsdE1ldGFkYXRhW2tdOwotICAgICAgaWYgKG9wdF9tZXRhZGF0YSkgewotICAgICAgICBmb3IgKHZhciBrIGluIG9wdF9tZXRhZGF0YSkKLSAgICAgICAgICBtZXRhZGF0YVtrXSA9IG9wdF9tZXRhZGF0YVtrXTsKLSAgICAgIH0KLQotICAgICAgdmFyIHR5cGVJbmZvID0gbmV3IFJlZ2lzdGVyZWRUeXBlSW5mbygKLSAgICAgICAgICBjb25zdHJ1Y3RvciwKLSAgICAgICAgICBtZXRhZGF0YSk7Ci0KLSAgICAgIHZhciBlID0gbmV3IEV2ZW50KCd3aWxsLXJlZ2lzdGVyJyk7Ci0gICAgICBlLnR5cGVJbmZvID0gdHlwZUluZm87Ci0gICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOwotCi0gICAgICByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5wdXNoKHR5cGVJbmZvKTsKLQotICAgICAgZSA9IG5ldyBFdmVudCgncmVnaXN0cnktY2hhbmdlZCcpOwotICAgICAgcmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTsKLSAgICB9OwotCi0gICAgcmVnaXN0cnkucHVzaENsZWFuU3RhdGVCZWZvcmVUZXN0ID0gZnVuY3Rpb24oKSB7Ci0gICAgICBzYXZlZFN0YXRlU3RhY2sucHVzaChyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXyk7Ci0gICAgICByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXyA9IFtdOwotCi0gICAgICB2YXIgZSA9IG5ldyBFdmVudCgncmVnaXN0cnktY2hhbmdlZCcpOwotICAgICAgcmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTsKLSAgICB9OwotICAgIHJlZ2lzdHJ5LnBvcENsZWFuU3RhdGVBZnRlclRlc3QgPSBmdW5jdGlvbigpIHsKLSAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfID0gc2F2ZWRTdGF0ZVN0YWNrWzBdOwotICAgICAgc2F2ZWRTdGF0ZVN0YWNrLnNwbGljZSgwLCAxKTsKLQotICAgICAgdmFyIGUgPSBuZXcgRXZlbnQoJ3JlZ2lzdHJ5LWNoYW5nZWQnKTsKLSAgICAgIHJlZ2lzdHJ5LmRpc3BhdGNoRXZlbnQoZSk7Ci0gICAgfTsKLQotICAgIHJlZ2lzdHJ5LmZpbmRJbmRleE9mUmVnaXN0ZXJlZENvbnN0cnVjdG9yID0gZnVuY3Rpb24oY29uc3RydWN0b3IpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18ubGVuZ3RoOyBpKyspCi0gICAgICAgIGlmIChyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zX1tpXS5jb25zdHJ1Y3RvciA9PSBjb25zdHJ1Y3RvcikKLSAgICAgICAgICByZXR1cm4gaTsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfTsKLQotICAgIHJlZ2lzdHJ5LnVucmVnaXN0ZXIgPSBmdW5jdGlvbihjb25zdHJ1Y3RvcikgewotICAgICAgdmFyIGZvdW5kSW5kZXggPSByZWdpc3RyeS5maW5kSW5kZXhPZlJlZ2lzdGVyZWRDb25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvcik7Ci0gICAgICBpZiAoZm91bmRJbmRleCA9PT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoY29uc3RydWN0b3IgKyAnIG5vdCByZWdpc3RlcmVkJyk7Ci0gICAgICByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5zcGxpY2UoZm91bmRJbmRleCwgMSk7Ci0KLSAgICAgIHZhciBlID0gbmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7Ci0gICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH07Ci0KLSAgICByZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zID0gZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc187Ci0gICAgfTsKLQotICAgIHJlZ2lzdHJ5LmZpbmRUeXBlSW5mbyA9IGZ1bmN0aW9uKGNvbnN0cnVjdG9yKSB7Ci0gICAgICB2YXIgZm91bmRJbmRleCA9IHRoaXMuZmluZEluZGV4T2ZSZWdpc3RlcmVkQ29uc3RydWN0b3IoY29uc3RydWN0b3IpOwotICAgICAgaWYgKGZvdW5kSW5kZXggIT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJlZFR5cGVJbmZvc19bZm91bmRJbmRleF07Ci0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgIH07Ci0KLSAgICByZWdpc3RyeS5maW5kVHlwZUluZm9NYXRjaGluZyA9IGZ1bmN0aW9uKHByZWRpY2F0ZSwgb3B0X3RoaXMpIHsKLSAgICAgIG9wdF90aGlzID0gb3B0X3RoaXMgPyBvcHRfdGhpcyA6IHVuZGVmaW5lZDsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHR5cGVJbmZvID0gcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc19baV07Ci0gICAgICAgIGlmIChwcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgdHlwZUluZm8pKQotICAgICAgICAgIHJldHVybiB0eXBlSW5mbzsKLSAgICAgIH0KLSAgICAgIHJldHVybiBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMuZGVmYXVsdFR5cGVJbmZvOwotICAgIH07Ci0gIH0KLQotICByZXR1cm4gewotICAgIF9kZWNvcmF0ZUJhc2ljRXh0ZW5zaW9uUmVnaXN0cnk6IGRlY29yYXRlQmFzaWNFeHRlbnNpb25SZWdpc3RyeQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfdHlwZV9iYXNlZC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV90eXBlX2Jhc2VkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmZWQ0MDYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV90eXBlX2Jhc2VkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvY2F0ZWdvcnlfdXRpbC5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBnZXRDYXRlZ29yeVBhcnRzID0gdHIuYi5nZXRDYXRlZ29yeVBhcnRzOwotCi0gIHZhciBSZWdpc3RlcmVkVHlwZUluZm8gPSB0ci5iLlJlZ2lzdGVyZWRUeXBlSW5mbzsKLSAgdmFyIEV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyA9IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zOwotCi0KLSAgZnVuY3Rpb24gZGVjb3JhdGVUeXBlQmFzZWRFeHRlbnNpb25SZWdpc3RyeShyZWdpc3RyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMpIHsKLSAgICB2YXIgc2F2ZWRTdGF0ZVN0YWNrID0gW107Ci0KLSAgICByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXyA9IFtdOwotCi0gICAgcmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF8gPSB7fTsKLSAgICByZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfID0ge307Ci0KLSAgICByZWdpc3RyeS5yZWdpc3RlciA9IGZ1bmN0aW9uKGNvbnN0cnVjdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEpIHsKLQotICAgICAgZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLnZhbGlkYXRlQ29uc3RydWN0b3IoY29uc3RydWN0b3IpOwotCi0gICAgICB2YXIgdHlwZUluZm8gPSBuZXcgUmVnaXN0ZXJlZFR5cGVJbmZvKAotICAgICAgICAgIGNvbnN0cnVjdG9yLAotICAgICAgICAgIG1ldGFkYXRhIHx8IGV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucy5kZWZhdWx0TWV0YWRhdGEpOwotCi0gICAgICB0eXBlSW5mby50eXBlTmFtZXMgPSBbXTsKLSAgICAgIHR5cGVJbmZvLmNhdGVnb3J5UGFydHMgPSBbXTsKLSAgICAgIGlmIChtZXRhZGF0YSAmJiBtZXRhZGF0YS50eXBlTmFtZSkKLSAgICAgICAgdHlwZUluZm8udHlwZU5hbWVzLnB1c2gobWV0YWRhdGEudHlwZU5hbWUpOwotICAgICAgaWYgKG1ldGFkYXRhICYmIG1ldGFkYXRhLnR5cGVOYW1lcykgewotICAgICAgICB0eXBlSW5mby50eXBlTmFtZXMucHVzaC5hcHBseSgKLSAgICAgICAgICB0eXBlSW5mby50eXBlTmFtZXMsIG1ldGFkYXRhLnR5cGVOYW1lcyk7Ci0gICAgICB9Ci0gICAgICBpZiAobWV0YWRhdGEgJiYgbWV0YWRhdGEuY2F0ZWdvcnlQYXJ0cykgewotICAgICAgICB0eXBlSW5mby5jYXRlZ29yeVBhcnRzLnB1c2guYXBwbHkoCi0gICAgICAgICAgdHlwZUluZm8uY2F0ZWdvcnlQYXJ0cywgbWV0YWRhdGEuY2F0ZWdvcnlQYXJ0cyk7Ci0gICAgICB9Ci0KLSAgICAgIGlmICh0eXBlSW5mby50eXBlTmFtZXMubGVuZ3RoID09PSAwICYmCi0gICAgICAgICAgdHlwZUluZm8uY2F0ZWdvcnlQYXJ0cy5sZW5ndGggPT09IDApCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZU5hbWUgb3IgdHlwZU5hbWVzIG11c3QgYmUgcHJvdmlkZWQnKTsKLQotICAgICAgLy8gU2FuaXR5IGNoZWNrcy4uLgotICAgICAgdHlwZUluZm8udHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24odHlwZU5hbWUpIHsKLSAgICAgICAgaWYgKHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF9bdHlwZU5hbWVdKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndHlwZU5hbWUgJyArIHR5cGVOYW1lICsgJyBhbHJlYWR5IHJlZ2lzdGVyZWQnKTsKLSAgICAgIH0pOwotICAgICAgdHlwZUluZm8uY2F0ZWdvcnlQYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKGNhdGVnb3J5UGFydCkgewotICAgICAgICBpZiAocmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF9bY2F0ZWdvcnlQYXJ0XSkgewotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY2F0ZWdvcnlQYXJ0ICcgKyBjYXRlZ29yeVBhcnQgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAnIGFscmVhZHkgcmVnaXN0ZXJlZCcpOwotICAgICAgICB9Ci0gICAgICB9KTsKLQotICAgICAgdmFyIGUgPSBuZXcgRXZlbnQoJ3dpbGwtcmVnaXN0ZXInKTsKLSAgICAgIGUudHlwZUluZm8gPSB0eXBlSW5mbzsKLSAgICAgIHJlZ2lzdHJ5LmRpc3BhdGNoRXZlbnQoZSk7Ci0KLSAgICAgIC8vIEFjdHVhbCByZWdpc3RyYXRpb24uCi0gICAgICB0eXBlSW5mby50eXBlTmFtZXMuZm9yRWFjaChmdW5jdGlvbih0eXBlTmFtZSkgewotICAgICAgICByZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXSA9IHR5cGVJbmZvOwotICAgICAgfSk7Ci0gICAgICB0eXBlSW5mby5jYXRlZ29yeVBhcnRzLmZvckVhY2goZnVuY3Rpb24oY2F0ZWdvcnlQYXJ0KSB7Ci0gICAgICAgIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF0gPSB0eXBlSW5mbzsKLSAgICAgIH0pOwotICAgICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18ucHVzaCh0eXBlSW5mbyk7Ci0KLSAgICAgIHZhciBlID0gbmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7Ci0gICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH07Ci0KLSAgICByZWdpc3RyeS5wdXNoQ2xlYW5TdGF0ZUJlZm9yZVRlc3QgPSBmdW5jdGlvbigpIHsKLSAgICAgIHNhdmVkU3RhdGVTdGFjay5wdXNoKHsKLSAgICAgICAgcmVnaXN0ZXJlZFR5cGVJbmZvczogcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18sCi0gICAgICAgIHR5cGVOYW1lVG9UeXBlSW5mb01hcDogcmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwXywKLSAgICAgICAgY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcDogcmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF8KLSAgICAgIH0pOwotICAgICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18gPSBbXTsKLSAgICAgIHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF8gPSB7fTsKLSAgICAgIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfID0ge307Ci0gICAgICB2YXIgZSA9IG5ldyBFdmVudCgncmVnaXN0cnktY2hhbmdlZCcpOwotICAgICAgcmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTsKLSAgICB9OwotCi0gICAgcmVnaXN0cnkucG9wQ2xlYW5TdGF0ZUFmdGVyVGVzdCA9IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHN0YXRlID0gc2F2ZWRTdGF0ZVN0YWNrWzBdOwotICAgICAgc2F2ZWRTdGF0ZVN0YWNrLnNwbGljZSgwLCAxKTsKLQotICAgICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18gPSBzdGF0ZS5yZWdpc3RlcmVkVHlwZUluZm9zOwotICAgICAgcmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwXyA9IHN0YXRlLnR5cGVOYW1lVG9UeXBlSW5mb01hcDsKLSAgICAgIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfID0gc3RhdGUuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcDsKLSAgICAgIHZhciBlID0gbmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7Ci0gICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH07Ci0KLSAgICByZWdpc3RyeS51bnJlZ2lzdGVyID0gZnVuY3Rpb24oY29uc3RydWN0b3IpIHsKLSAgICAgIHZhciB0eXBlSW5mb0luZGV4ID0gLTE7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChyZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zX1tpXS5jb25zdHJ1Y3RvciA9PSBjb25zdHJ1Y3RvcikgewotICAgICAgICAgIHR5cGVJbmZvSW5kZXggPSBpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiAodHlwZUluZm9JbmRleCA9PT0gLTEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihjb25zdHJ1Y3RvciArICcgbm90IHJlZ2lzdGVyZWQnKTsKLQotICAgICAgdmFyIHR5cGVJbmZvID0gcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc19bdHlwZUluZm9JbmRleF07Ci0gICAgICByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5zcGxpY2UodHlwZUluZm9JbmRleCwgMSk7Ci0gICAgICB0eXBlSW5mby50eXBlTmFtZXMuZm9yRWFjaChmdW5jdGlvbih0eXBlTmFtZSkgewotICAgICAgICBkZWxldGUgcmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwX1t0eXBlTmFtZV07Ci0gICAgICB9KTsKLSAgICAgIHR5cGVJbmZvLmNhdGVnb3J5UGFydHMuZm9yRWFjaChmdW5jdGlvbihjYXRlZ29yeVBhcnQpIHsKLSAgICAgICAgZGVsZXRlIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF07Ci0gICAgICB9KTsKLSAgICAgIHZhciBlID0gbmV3IEV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7Ci0gICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH07Ci0KLSAgICByZWdpc3RyeS5nZXRUeXBlSW5mbyA9IGZ1bmN0aW9uKGNhdGVnb3J5LCB0eXBlTmFtZSkgewotICAgICAgaWYgKGNhdGVnb3J5KSB7Ci0gICAgICAgIHZhciBjYXRlZ29yeVBhcnRzID0gZ2V0Q2F0ZWdvcnlQYXJ0cyhjYXRlZ29yeSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcnlQYXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBjYXRlZ29yeVBhcnQgPSBjYXRlZ29yeVBhcnRzW2ldOwotICAgICAgICAgIGlmIChyZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdKQotICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF07Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXSkKLSAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF9bdHlwZU5hbWVdOwotCi0gICAgICByZXR1cm4gZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRUeXBlSW5mbzsKLSAgICB9OwotCi0gICAgLy8gVE9ETyhuZHVjYSk6IFJlbW92ZSBvciByZW5hbWUuCi0gICAgcmVnaXN0cnkuZ2V0Q29uc3RydWN0b3IgPSBmdW5jdGlvbihjYXRlZ29yeSwgdHlwZU5hbWUpIHsKLSAgICAgIHZhciB0eXBlSW5mbyA9IHJlZ2lzdHJ5LmdldFR5cGVJbmZvKGNhdGVnb3J5LCB0eXBlTmFtZSk7Ci0gICAgICBpZiAodHlwZUluZm8pCi0gICAgICAgIHJldHVybiB0eXBlSW5mby5jb25zdHJ1Y3RvcjsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfTsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgX2RlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnk6IGRlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnkKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMWIyODc2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTk5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBhc0FycmF5KGFycmF5aXNoKSB7Ci0gICAgdmFyIHZhbHVlcyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlpc2gubGVuZ3RoOyBpKyspCi0gICAgICB2YWx1ZXMucHVzaChhcnJheWlzaFtpXSk7Ci0gICAgcmV0dXJuIHZhbHVlczsKLSAgfQotCi0gIGZ1bmN0aW9uIGNvbXBhcmVBcnJheXMoeCwgeSwgZWxlbWVudENtcCkgewotICAgIHZhciBtaW5MZW5ndGggPSBNYXRoLm1pbih4Lmxlbmd0aCwgeS5sZW5ndGgpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWluTGVuZ3RoOyBpKyspIHsKLSAgICAgIHZhciB0bXAgPSBlbGVtZW50Q21wKHhbaV0sIHlbaV0pOwotICAgICAgaWYgKHRtcCkKLSAgICAgICAgcmV0dXJuIHRtcDsKLSAgICB9Ci0gICAgaWYgKHgubGVuZ3RoID09IHkubGVuZ3RoKQotICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoeFtpXSA9PT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuIC0xOwotCi0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICAvKioKLSAgICogQ29tcGFyZXMgdHdvIHZhbHVlcyB3aGVuIG9uZSBvciBib3RoIG1pZ2h0IGJlIHVuZGVmaW5lZC4gVW5kZWZpbmVkCi0gICAqIHZhbHVlcyBhcmUgc29ydGVkIGFmdGVyIGRlZmluZWQuCi0gICAqLwotICBmdW5jdGlvbiBjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoeCwgeSwgY21wLCBvcHRfdGhpcykgewotICAgIGlmICh4ICE9PSB1bmRlZmluZWQgJiYgeSAhPT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuIGNtcC5jYWxsKG9wdF90aGlzLCB4LCB5KTsKLSAgICBpZiAoeCAhPT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuIC0xOwotICAgIGlmICh5ICE9PSB1bmRlZmluZWQpCi0gICAgICByZXR1cm4gMTsKLSAgICByZXR1cm4gMDsKLSAgfQotCi0gIGZ1bmN0aW9uIGNvbmNhdGVuYXRlQXJyYXlzKC8qYXJndW1lbnRzKi8pIHsKLSAgICB2YXIgdmFsdWVzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmICghKGFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIEFycmF5KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcmd1bWVudHMgJyArIGkgKyAnaXMgbm90IGFuIGFycmF5Jyk7Ci0gICAgICB2YWx1ZXMucHVzaC5hcHBseSh2YWx1ZXMsIGFyZ3VtZW50c1tpXSk7Ci0gICAgfQotICAgIHJldHVybiB2YWx1ZXM7Ci0gIH0KLQotICBmdW5jdGlvbiBjb25jYXRlbmF0ZU9iamVjdHMoLyphcmd1bWVudHMqLykgewotICAgIHZhciByZXN1bHQgPSB7fTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgICAgdmFyIG9iamVjdCA9IGFyZ3VtZW50c1tpXTsKLSAgICAgIGZvciAodmFyIGogaW4gb2JqZWN0KSB7Ci0gICAgICAgIHJlc3VsdFtqXSA9IG9iamVjdFtqXTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLSAgfQotCi0gIGZ1bmN0aW9uIGRpY3Rpb25hcnlLZXlzKGRpY3QpIHsKLSAgICB2YXIga2V5cyA9IFtdOwotICAgIGZvciAodmFyIGtleSBpbiBkaWN0KQotICAgICAga2V5cy5wdXNoKGtleSk7Ci0gICAgcmV0dXJuIGtleXM7Ci0gIH0KLQotICBmdW5jdGlvbiBkaWN0aW9uYXJ5VmFsdWVzKGRpY3QpIHsKLSAgICB2YXIgdmFsdWVzID0gW107Ci0gICAgZm9yICh2YXIga2V5IGluIGRpY3QpCi0gICAgICB2YWx1ZXMucHVzaChkaWN0W2tleV0pOwotICAgIHJldHVybiB2YWx1ZXM7Ci0gIH0KLQotICBmdW5jdGlvbiBkaWN0aW9uYXJ5TGVuZ3RoKGRpY3QpIHsKLSAgICB2YXIgbiA9IDA7Ci0gICAgZm9yICh2YXIga2V5IGluIGRpY3QpCi0gICAgICBuKys7Ci0gICAgcmV0dXJuIG47Ci0gIH0KLQotICAvKioKLSAgICogUmV0dXJucyBhIG5ldyBkaWN0aW9uYXJ5IHdpdGggaXRlbXMgZ3JvdXBlZCBieSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZQotICAgKiBzcGVjaWZpZWQgZnVuY3Rpb24gYmVpbmcgY2FsbGVkIG9uIGVhY2ggaXRlbS4KLSAgICogQHBhcmFtIHshQXJyYXkuPE9iamVjdD59IGFyeSBUaGUgYXJyYXkgYmVpbmcgaXRlcmF0ZWQgdGhyb3VnaAotICAgKiBAcGFyYW0geyFGdW5jdGlvbn0gZm4gVGhlIG1hcHBpbmcgZnVuY3Rpb24gYmV0d2VlbiB0aGUgYXJyYXkgdmFsdWUgYW5kIHRoZQotICAgKiBtYXAga2V5LgotICAgKi8KLSAgZnVuY3Rpb24gZ3JvdXAoYXJ5LCBmbikgewotICAgIHJldHVybiBhcnkucmVkdWNlKGZ1bmN0aW9uKGFjY3VtdWxhdG9yLCBjdXJyKSB7Ci0gICAgICB2YXIga2V5ID0gZm4oY3Vycik7Ci0KLSAgICAgIGlmIChrZXkgaW4gYWNjdW11bGF0b3IpCi0gICAgICAgIGFjY3VtdWxhdG9yW2tleV0ucHVzaChjdXJyKTsKLSAgICAgIGVsc2UKLSAgICAgICAgYWNjdW11bGF0b3Jba2V5XSA9IFtjdXJyXTsKLQotICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yOwotICAgIH0sIHt9KTsKLSAgfQotCi0gIGZ1bmN0aW9uIGl0ZXJJdGVtcyhkaWN0LCBmbiwgb3B0X3RoaXMpIHsKLSAgICBvcHRfdGhpcyA9IG9wdF90aGlzIHx8IHRoaXM7Ci0gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhkaWN0KTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKLSAgICAgIHZhciBrZXkgPSBrZXlzW2ldOwotICAgICAgZm4uY2FsbChvcHRfdGhpcywga2V5LCBkaWN0W2tleV0pOwotICAgIH0KLSAgfQotCi0gIC8qKgotICAgKiBDcmVhdGUgYSBuZXcgZGljdGlvbmFyeSB3aXRoIHRoZSBzYW1lIGtleXMgYXMgdGhlIG9yaWdpbmFsIGRpY3Rpb25hcnkKLSAgICogbWFwcGVkIHRvIHRoZSByZXN1bHRzIG9mIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBjYWxsZWQgb24gdGhlIGNvcnJlc3BvbmRpbmcKLSAgICogZW50cmllcyBpbiB0aGUgb3JpZ2luYWwgZGljdGlvbmFyeSwgaS5lLiByZXN1bHRba2V5XSA9IGZuKGtleSwgZGljdFtrZXldKQotICAgKiBmb3IgYWxsIGtleXMgaW4gZGljdCAob3duIGVudW1lcmFibGUgcHJvcGVydGllcyBvbmx5KS4KLSAgICoKLSAgICogRXhhbXBsZToKLSAgICogICB2YXIgc3JjRGljdCA9IHthOiAxMCwgYjogMTV9OwotICAgKiAgIHZhciBkc3REaWN0ID0gbWFwSXRlbXMoc3JjRGljdCwgZnVuY3Rpb24oaywgdikgeyByZXR1cm4gMiAqIHY7IH0pOwotICAgKiAgIC8vIHNyY0RpY3QgaXMgdW5tb2RpZmllZCBhbmQgZHN0RGljdCBpcyBub3cgZXF1YWwgdG8ge2E6IDIwLCBiOiAzMH0uCi0gICAqLwotICBmdW5jdGlvbiBtYXBJdGVtcyhkaWN0LCBmbiwgb3B0X3RoaXMpIHsKLSAgICBvcHRfdGhpcyA9IG9wdF90aGlzIHx8IHRoaXM7Ci0gICAgdmFyIHJlc3VsdCA9IHt9OwotICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZGljdCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICB2YXIga2V5ID0ga2V5c1tpXTsKLSAgICAgIHJlc3VsdFtrZXldID0gZm4uY2FsbChvcHRfdGhpcywga2V5LCBkaWN0W2tleV0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotICB9Ci0KLSAgZnVuY3Rpb24gaXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5KG9iamVjdCwgZnVuYykgewotICAgIGlmICghKG9iamVjdCBpbnN0YW5jZW9mIE9iamVjdCkpCi0gICAgICByZXR1cm47Ci0KLSAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgQXJyYXkpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGZ1bmMob2JqZWN0LCBpLCBvYmplY3RbaV0pOwotICAgICAgICBpdGVyT2JqZWN0RmllbGRzUmVjdXJzaXZlbHkob2JqZWN0W2ldLCBmdW5jKTsKLSAgICAgIH0KLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7Ci0gICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XTsKLSAgICAgIGZ1bmMob2JqZWN0LCBrZXksIHZhbHVlKTsKLSAgICAgIGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseSh2YWx1ZSwgZnVuYyk7Ci0gICAgfQotICB9Ci0KLSAgZnVuY3Rpb24gaWRlbnRpdHkoZCkgewotICAgIHJldHVybiBkOwotICB9Ci0KLSAgZnVuY3Rpb24gZmluZEZpcnN0SW5kZXhJbkFycmF5KGFyeSwgb3B0X2Z1bmMsIG9wdF90aGlzKSB7Ci0gICAgdmFyIGZ1bmMgPSBvcHRfZnVuYyB8fCBpZGVudGl0eTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyeS5sZW5ndGg7IGkrKykgewotICAgICAgaWYgKGZ1bmMuY2FsbChvcHRfdGhpcywgYXJ5W2ldLCBpKSkKLSAgICAgICAgcmV0dXJuIGk7Ci0gICAgfQotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGZ1bmN0aW9uIGZpbmRGaXJzdEluQXJyYXkoYXJ5LCBvcHRfZnVuYywgb3B0X3RoaXMpIHsKLSAgICB2YXIgaSA9IGZpbmRGaXJzdEluZGV4SW5BcnJheShhcnksIG9wdF9mdW5jLCBvcHRfZnVuYyk7Ci0gICAgaWYgKGkgPT09IC0xKQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICByZXR1cm4gYXJ5W2ldOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBhc0FycmF5OiBhc0FycmF5LAotICAgIGNvbmNhdGVuYXRlQXJyYXlzOiBjb25jYXRlbmF0ZUFycmF5cywKLSAgICBjb25jYXRlbmF0ZU9iamVjdHM6IGNvbmNhdGVuYXRlT2JqZWN0cywKLSAgICBjb21wYXJlQXJyYXlzOiBjb21wYXJlQXJyYXlzLAotICAgIGNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlczogY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzLAotICAgIGRpY3Rpb25hcnlMZW5ndGg6IGRpY3Rpb25hcnlMZW5ndGgsCi0gICAgZGljdGlvbmFyeUtleXM6IGRpY3Rpb25hcnlLZXlzLAotICAgIGRpY3Rpb25hcnlWYWx1ZXM6IGRpY3Rpb25hcnlWYWx1ZXMsCi0gICAgZ3JvdXA6IGdyb3VwLAotICAgIGl0ZXJJdGVtczogaXRlckl0ZW1zLAotICAgIG1hcEl0ZW1zOiBtYXBJdGVtcywKLSAgICBpdGVyT2JqZWN0RmllbGRzUmVjdXJzaXZlbHk6IGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseSwKLSAgICBpZGVudGl0eTogaWRlbnRpdHksCi0gICAgZmluZEZpcnN0SW5kZXhJbkFycmF5OiBmaW5kRmlyc3RJbmRleEluQXJyYXksCi0gICAgZmluZEZpcnN0SW5BcnJheTogZmluZEZpcnN0SW5BcnJheQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9pdGVyYXRpb25faGVscGVyc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnNfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTMwOTg1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9pdGVyYXRpb25faGVscGVyc190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIGNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyA9IHRyLmIuY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzOwotICB2YXIgY29tcGFyZUFycmF5cyA9IHRyLmIuY29tcGFyZUFycmF5czsKLQotICB0ZXN0KCdjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMnLCBmdW5jdGlvbigpIHsKLSAgICBmdW5jdGlvbiBjbXAoeCwgeSkgewotICAgICAgYXNzZXJ0LmlzRGVmaW5lZCh4KTsKLSAgICAgIGFzc2VydC5pc0RlZmluZWQoeSk7Ci0gICAgICByZXR1cm4geCAtIHk7Ci0gICAgfQotCi0gICAgYXNzZXJ0LmlzQmVsb3coY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKDAsIDEsIGNtcCksIDApOwotICAgIGFzc2VydC5pc0Fib3ZlKGNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcygxLCAwLCBjbXApLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKDEsIDEsIGNtcCksIDApOwotCi0gICAgYXNzZXJ0LmlzQmVsb3coY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKDAsIHVuZGVmaW5lZCwgY21wKSwgMCk7Ci0gICAgYXNzZXJ0LmlzQWJvdmUoY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKHVuZGVmaW5lZCwgMCwgY21wKSwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgY21wKSwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NvbXBhcmVBcnJheXMnLCBmdW5jdGlvbigpIHsKLSAgICBmdW5jdGlvbiBjbXAoeCwgeSkgewotICAgICAgYXNzZXJ0LmlzRGVmaW5lZCh4KTsKLSAgICAgIGFzc2VydC5pc0RlZmluZWQoeSk7Ci0gICAgICByZXR1cm4geCAtIHk7Ci0gICAgfQotCi0gICAgYXNzZXJ0LmlzQmVsb3coY29tcGFyZUFycmF5cyhbMV0sIFsyXSwgY21wKSwgMCk7Ci0gICAgYXNzZXJ0LmlzQWJvdmUoY29tcGFyZUFycmF5cyhbMl0sIFsxXSwgY21wKSwgMCk7Ci0KLSAgICBhc3NlcnQuaXNCZWxvdyhjb21wYXJlQXJyYXlzKFsxXSwgWzEsIDJdLCBjbXApLCAwKTsKLSAgICBhc3NlcnQuaXNBYm92ZShjb21wYXJlQXJyYXlzKFsxLCAyXSwgWzFdLCBjbXApLCAwKTsKLQotICAgIGFzc2VydC5pc0JlbG93KGNvbXBhcmVBcnJheXMoW10sIFsxXSwgY21wKSwgMCk7Ci0gICAgYXNzZXJ0LmlzQWJvdmUoY29tcGFyZUFycmF5cyhbMV0sIFtdLCBjbXApLCAwKTsKLQotICAgIGFzc2VydC5pc0Fib3ZlKGNvbXBhcmVBcnJheXMoWzJdLCBbMV0sIGNtcCksIDApOwotCi0gICAgYXNzZXJ0LmVxdWFsKGNvbXBhcmVBcnJheXMoW10sIFtdLCBjbXApLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoY29tcGFyZUFycmF5cyhbMV0sIFsxXSwgY21wKSwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2dyb3VwJywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gRW1wdHkgYXJyYXkKLSAgICB2YXIgc3JjQXJyYXkgPSBbXTsKLSAgICB2YXIgZm4gPSBmdW5jdGlvbihjdXJyKSB7IHJldHVybiAoY3VyciAlIDIpOyB9Ci0gICAgdmFyIGRzdERpY3QgPSB7fTsKLQotICAgIGFzc2VydC5kZWVwRXF1YWwodHIuYi5ncm91cChzcmNBcnJheSwgZm4pLCBkc3REaWN0KTsKLQotICAgIC8vIE5vbi1lbXB0eSBhcnJheQotICAgIHZhciBzcmNBcnJheSA9IFswLCAxLCAyLCAzLCA0LCA1LCA2XTsKLSAgICB2YXIgZHN0RGljdCA9IHsKLSAgICAgIDA6IFswLCAyLCA0LCA2XSwKLSAgICAgIDE6IFsxLCAzLCA1XQotICAgIH07Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKHRyLmIuZ3JvdXAoc3JjQXJyYXksIGZuKSwgZHN0RGljdCk7Ci0gIH0pOwotCi0gIHRlc3QoJ21hcEl0ZW1zJywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gRW1wdHkgZGljdGlvbmFyeS4KLSAgICB2YXIgc3JjRGljdCA9IHt9OwotICAgIHZhciBkc3REaWN0ID0gdHIuYi5tYXBJdGVtcyhzcmNEaWN0LCBmdW5jdGlvbihrZXksIHZhbHVlKSB7Ci0gICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKE9iamVjdC5rZXlzKHNyY0RpY3QpLCAwKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoZHN0RGljdCksIDApOwotICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChkc3REaWN0LCBzcmNEaWN0KTsKLQotICAgIC8vIE5vbi1lbXB0eSBkaWN0aW9uYXJ5LgotICAgIHZhciBzcmNEaWN0ID0ge2E6IDAsIGI6IDMwfTsKLSAgICB2YXIgZHN0RGljdCA9IHRyLmIubWFwSXRlbXMoc3JjRGljdCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgewotICAgICAgcmV0dXJuIDkgKiB2YWx1ZSAvIDUgKyAzMjsKLSAgICB9KTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoc3JjRGljdCksIDIpOwotICAgIGFzc2VydC5lcXVhbChzcmNEaWN0LmEsIDApOwotICAgIGFzc2VydC5lcXVhbChzcmNEaWN0LmIsIDMwKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoZHN0RGljdCksIDIpOwotICAgIGFzc2VydC5lcXVhbChkc3REaWN0LmEsIDMyKTsKLSAgICBhc3NlcnQuZXF1YWwoZHN0RGljdC5iLCA4Nik7Ci0gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGRzdERpY3QsIHNyY0RpY3QpOwotCi0gICAgLy8gT3B0aW9uYWwgJ3RoaXMnIGFyZ3VtZW50LgotICAgIHZhciBzcmNEaWN0ID0ge2M6ICc/JywgZDogJyEnLCBlOiAnLid9OwotICAgIHZhciBkc3REaWN0ID0gdHIuYi5tYXBJdGVtcyhzcmNEaWN0LCBmdW5jdGlvbihrZXksIHZhbHVlKSB7Ci0gICAgICByZXR1cm4ga2V5ICsgdGhpcy5kZWxpbWl0ZXIgKyB2YWx1ZTsKLSAgICB9LCB7ZGVsaW1pdGVyOiAnPSd9KTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoc3JjRGljdCksIDMpOwotICAgIGFzc2VydC5lcXVhbChzcmNEaWN0LmMsICc/Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNyY0RpY3QuZCwgJyEnKTsKLSAgICBhc3NlcnQuZXF1YWwoc3JjRGljdC5lLCAnLicpOwotICAgIGFzc2VydC5sZW5ndGhPZihPYmplY3Qua2V5cyhkc3REaWN0KSwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGRzdERpY3QuYywgJ2M9PycpOwotICAgIGFzc2VydC5lcXVhbChkc3REaWN0LmQsICdkPSEnKTsKLSAgICBhc3NlcnQuZXF1YWwoZHN0RGljdC5lLCAnZT0uJyk7Ci0gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGRzdERpY3QsIHNyY0RpY3QpOwotCi0gICAgLy8gSW5oZXJpdGVkIHByb3BlcnRpZXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQuCi0gICAgdmFyIHNyY0RpY3QgPSB7X19wcm90b19fOiB7YTogMTB9fTsKLSAgICB2YXIgZHN0RGljdCA9IHRyLmIubWFwSXRlbXMoc3JjRGljdCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgewotICAgICAgcmV0dXJuIHZhbHVlOwotICAgIH0pOwotICAgIGFzc2VydC5sZW5ndGhPZihPYmplY3Qua2V5cyhzcmNEaWN0KSwgMCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKE9iamVjdC5rZXlzKGRzdERpY3QpLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaWRlbnRpdHknLCBmdW5jdGlvbigpIHsKLSAgICAvLyBVbmRlZmluZWQgdmFsdWUuCi0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHRyLmIuaWRlbnRpdHkodW5kZWZpbmVkKSk7Ci0KLSAgICAvLyBQcmltaXRpdmUgdmFsdWUuCi0gICAgYXNzZXJ0LmVxdWFsKHRyLmIuaWRlbnRpdHkoLTI3My4xNSksIC0yNzMuMTUpOwotCi0gICAgLy8gTGlzdC4KLSAgICB2YXIgbGlzdCA9IFsnbGlzdCcsICd3aXRoJywgMSwgdW5kZWZpbmVkLCAndmFsdWUnXTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHIuYi5pZGVudGl0eShsaXN0KSwgbGlzdCk7Ci0KLSAgICAvLyBPYmplY3QuCi0gICAgdmFyIG9iamVjdCA9IHsnaGFzSXRlbXMnOiB0cnVlfTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHIuYi5pZGVudGl0eShvYmplY3QpLCBvYmplY3QpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2Uva2V5X2V2ZW50X21hbmFnZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9rZXlfZXZlbnRfbWFuYWdlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2ViN2U2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9rZXlfZXZlbnRfbWFuYWdlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgewotCi0gIC8qKgotICAgKiBLZXlFdmVudE1hbmFnZXIgYXZvaWRzIGxlYWtzIHdoZW4gbGlzdGVuaW5nIGZvciBrZXlzLgotICAgKgotICAgKiBBIGNvbW1vbiBidXQgbGVha3kgcGF0dGVybiBpczoKLSAgICogICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXkqJywgZnVuY3Rpb24oKS5iaW5kKHRoaXMpKQotICAgKiBUaGlzIGxlYWtzLgotICAgKgotICAgKiBJbnN0ZWFkIGRvIHRoaXM6Ci0gICAqICAgS2V5RXZlbnRNYW5hZ2VyLmluc3RhbmNlLmFkZExpc3RlbmVyKCdrZXlEb3duJywgZnVuYywgdGhpcyk7Ci0gICAqCi0gICAqIFRoaXMgd2lsbCBub3QgbGVhay4gQlVULCBub3RlLCBpZiAidGhpcyIgaXMgbm90IGF0dGFjaGVkIHRvIHRoZSBkb2N1bWVudCwKLSAgICogaXQgd2lsbCBOT1QgcmVjZWl2ZSBpbnB1dCBldmVudHMuCi0gICAqCi0gICAqIENvbmNlcHR1YWxseSwgS2V5RXZlbnRNYW5hZ2VyIHdvcmtzIGJ5IG1ha2luZyB0aGUgdGhpcyByZWZyZW5jZSAid2VhayIsCi0gICAqIHdoaWNoIGlzIGFjdHVhbGx5IGFjY29tcGxpc2hlZCBieSBwdXR0aW5nIGEgZ3VpZCBvbiB0aGUgdGhpc0FyZy4gV2hlbiBrZXlzCi0gICAqIGFyZSByZWNlaXZlZCwgd2UgbG9vayBmb3IgZWxlbWVudHMgd2l0aCB0aGF0IGd1aWQgYW5kIGRpc3BhdGNoIHRoZSBrZXlzIHRvCi0gICAqIHRoZW0uCi0gICAqLwotICBmdW5jdGlvbiBLZXlFdmVudE1hbmFnZXIob3B0X2RvY3VtZW50KSB7Ci0gICAgdGhpcy5kb2N1bWVudF8gPSBvcHRfZG9jdW1lbnQgfHwgZG9jdW1lbnQ7Ci0gICAgaWYgKEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZSkKLSAgICAgIHRocm93IG5ldyBFcnJvcignS2V5RXZlbnRNYW5hZ2VyIGlzIGEgc2luZ2xldG9uLicpOwotICAgIHRoaXMub25FdmVudF8gPSB0aGlzLm9uRXZlbnRfLmJpbmQodGhpcyk7Ci0gICAgdGhpcy5kb2N1bWVudF8uYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25FdmVudF8pOwotICAgIHRoaXMuZG9jdW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgdGhpcy5vbkV2ZW50Xyk7Ci0gICAgdGhpcy5kb2N1bWVudF8uYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLm9uRXZlbnRfKTsKLSAgICB0aGlzLmxpc3RlbmVyc18gPSBbXTsKLSAgfQotICBLZXlFdmVudE1hbmFnZXIuaW5zdGFuY2UgPSB1bmRlZmluZWQ7Ci0KLSAgZG9jdW1lbnQuaGVhZC5hZGRFdmVudExpc3RlbmVyKCd0ci11bml0dGVzdC13aWxsLXJ1bicsIGZ1bmN0aW9uKCkgewotICAgIGlmIChLZXlFdmVudE1hbmFnZXIuaW5zdGFuY2UpIHsKLSAgICAgIEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZS5kZXN0cm95KCk7Ci0gICAgICBLZXlFdmVudE1hbmFnZXIuaW5zdGFuY2UgPSB1bmRlZmluZWQ7Ci0gICAgfQotICAgIEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZSA9IG5ldyBLZXlFdmVudE1hbmFnZXIoKTsKLSAgfSk7Ci0KLSAgS2V5RXZlbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKLSAgICBhZGRMaXN0ZW5lcjogZnVuY3Rpb24odHlwZSwgaGFuZGxlciwgdGhpc0FyZykgewotICAgICAgaWYgKCF0aGlzQXJnLmtleUV2ZW50TWFuYWdlckd1aWRfKSB7Ci0gICAgICAgIHRoaXNBcmcua2V5RXZlbnRNYW5hZ2VyR3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKLSAgICAgICAgdGhpc0FyZy5rZXlFdmVudE1hbmFnZXJSZWZDb3VudF8gPSAwOwotICAgICAgfQotICAgICAgdGhpc0FyZy5jbGFzc0xpc3QuYWRkKCdrZXktZXZlbnQtbWFuYWdlci10YXJnZXQnKTsKLSAgICAgIHRoaXNBcmcua2V5RXZlbnRNYW5hZ2VyUmVmQ291bnRfKys7Ci0KLSAgICAgIHZhciBndWlkID0gdGhpc0FyZy5rZXlFdmVudE1hbmFnZXJHdWlkXzsKLSAgICAgIHRoaXMubGlzdGVuZXJzXy5wdXNoKHsKLSAgICAgICAgZ3VpZDogZ3VpZCwKLSAgICAgICAgdHlwZTogdHlwZSwKLSAgICAgICAgaGFuZGxlcjogaGFuZGxlcgotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIG9uRXZlbnRfOiBmdW5jdGlvbihldmVudCkgewotICAgICAgLy8gVGhpcyBkb2VzIHN0YW5kYXJkIERPTSBldmVudCBwcm9wYWdhdGlvbiBvZiB0aGUgZ2l2ZW4gZXZlbnQsIGJ1dCB1c2luZwotICAgICAgLy8gZ3VpZHMgdG8gbG9jYXRlIHRoZSB0aGlzQXJnIGZvciBlYWNoIGxpc3RlbmVyLiBTZWUgZXZlbnRfdGFyZ2V0LmpzIGZvcgotICAgICAgLy8gbm90ZXMgb24gaG93IHRoaXMgd29ya3MuCi0gICAgICB2YXIgcHJldmVudERlZmF1bHRTdGF0ZSA9IHVuZGVmaW5lZDsKLSAgICAgIHZhciBzdG9wUHJvcGFnYXRpb25DYWxsZWQgPSBmYWxzZTsKLQotICAgICAgdmFyIG9sZFByZXZlbnREZWZhdWx0ID0gZXZlbnQucHJldmVudERlZmF1bHQ7Ci0gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uKCkgewotICAgICAgICBwcmV2ZW50RGVmYXVsdFN0YXRlID0gZmFsc2U7Ci0gICAgICAgIG9sZFByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7Ci0gICAgICB9OwotCi0gICAgICB2YXIgb2xkU3RvcFByb3BhZ2F0aW9uID0gZXZlbnQuc3RvcFByb3BhZ2F0aW9uOwotICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHN0b3BQcm9wYWdhdGlvbkNhbGxlZCA9IHRydWU7Ci0gICAgICAgIG9sZFN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpOwotICAgICAgfTsKLQotICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgICB9OwotCi0gICAgICB2YXIgcG9zc2libGVUaGlzQXJncyA9IHRoaXMuZG9jdW1lbnRfLnF1ZXJ5U2VsZWN0b3JBbGwoCi0gICAgICAgICAgJy5rZXktZXZlbnQtbWFuYWdlci10YXJnZXQnKTsKLSAgICAgIHZhciBwb3NzaWJsZVRoaXNBcmdzQnlHVUlEID0ge307Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc3NpYmxlVGhpc0FyZ3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgcG9zc2libGVUaGlzQXJnc0J5R1VJRFtwb3NzaWJsZVRoaXNBcmdzW2ldLmtleUV2ZW50TWFuYWdlckd1aWRfXSA9Ci0gICAgICAgICAgICBwb3NzaWJsZVRoaXNBcmdzW2ldOwotICAgICAgfQotCi0gICAgICAvLyBXZSBuZWVkIHRvIGNvcHkgbGlzdGVuZXJzXyBhbmQgdmVyaWZ5IHRoZSB0aGlzQXJncyBleGlzdHMgb24gZWFjaCBsb29wCi0gICAgICAvLyBpdGVyYXRpb24gYmVjYXVzZSB0aGUgZXZlbnQgY2FsbGJhY2tzIGNhbiBjaGFuZ2UgdGhlIERPTSBhbmQgbGlzdGVuZXIKLSAgICAgIC8vIGxpc3QuCi0gICAgICB2YXIgbGlzdGVuZXJzID0gdGhpcy5saXN0ZW5lcnNfLmNvbmNhdCgpOwotICAgICAgdmFyIHR5cGUgPSBldmVudC50eXBlOwotICAgICAgdmFyIHByZXZlbnRlZCA9IDA7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgbGlzdGVuZXIgPSBsaXN0ZW5lcnNbaV07Ci0gICAgICAgIGlmIChsaXN0ZW5lci50eXBlICE9PSB0eXBlKQotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAvLyB0aGlzQXJnIHdlbnQgYXdheS4KLSAgICAgICAgdmFyIHRoaXNBcmcgPSBwb3NzaWJsZVRoaXNBcmdzQnlHVUlEW2xpc3RlbmVyLmd1aWRdOwotICAgICAgICBpZiAoIXRoaXNBcmcpCi0gICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgdmFyIGhhbmRsZXIgPSBsaXN0ZW5lci5oYW5kbGVyOwotICAgICAgICBpZiAoaGFuZGxlci5oYW5kbGVFdmVudCkKLSAgICAgICAgICBwcmV2ZW50ZWQgfD0gaGFuZGxlci5oYW5kbGVFdmVudC5jYWxsKGhhbmRsZXIsIGV2ZW50KSA9PT0gZmFsc2U7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBwcmV2ZW50ZWQgfD0gaGFuZGxlci5jYWxsKHRoaXNBcmcsIGV2ZW50KSA9PT0gZmFsc2U7Ci0gICAgICAgIGlmIChzdG9wUHJvcGFnYXRpb25DYWxsZWQpCi0gICAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFdlIHdhbnQgdG8gcmV0dXJuIGZhbHNlIGlmIHByZXZlbnREZWZhdWx0ZWQsIG9yIG9uZSBvZiB0aGUgaGFuZGxlcnMKLSAgICAgIC8vIHJldHVybiBmYWxzZS4gQnV0IG90aGVyd2lzZSwgd2Ugd2FudCB0byByZXR1cm4gdW5kZWZpZW5kLgotICAgICAgcmV0dXJuICFwcmV2ZW50ZWQgJiYgcHJldmVudERlZmF1bHRTdGF0ZTsKLSAgICB9LAotCi0gICAgcmVtb3ZlTGlzdGVuZXI6IGZ1bmN0aW9uKHR5cGUsIGhhbmRsZXIsIHRoaXNBcmcpIHsKLSAgICAgIGlmICh0aGlzQXJnLmtleUV2ZW50TWFuYWdlckd1aWRfID09PSB1bmRlZmluZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignV2FzIG5vdCByZWdpc3RlcmVkIHdpdGggS2V5RXZlbnRNYW5hZ2VyJyk7Ci0gICAgICBpZiAodGhpc0FyZy5rZXlFdmVudE1hbmFnZXJSZWZDb3VudF8gPT09IDApCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gZXZlbnRzIHdlcmUgcmVnaXN0ZXJlZCBvbiB0aGUgcHJvdmlkZWQgdGhpc0FyZycpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxpc3RlbmVyc18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGxpc3RlbmVyID0gdGhpcy5saXN0ZW5lcnNfW2ldOwotICAgICAgICBpZiAobGlzdGVuZXIudHlwZSA9PSB0eXBlICYmCi0gICAgICAgICAgICBsaXN0ZW5lci5oYW5kbGVyID09IGhhbmRsZXIgJiYKLSAgICAgICAgICAgIGxpc3RlbmVyLmd1aWQgPT0gdGhpc0FyZy5rZXlFdmVudE1hbmFnZXJHdWlkXykgewotICAgICAgICAgIHRoaXNBcmcua2V5RXZlbnRNYW5hZ2VyUmVmQ291bnRfLS07Ci0gICAgICAgICAgaWYgKHRoaXNBcmcua2V5RXZlbnRNYW5hZ2VyUmVmQ291bnRfID09PSAwKQotICAgICAgICAgICAgdGhpc0FyZy5jbGFzc0xpc3QucmVtb3ZlKCdrZXktZXZlbnQtbWFuYWdlci10YXJnZXQnKTsKLSAgICAgICAgICB0aGlzLmxpc3RlbmVyc18uc3BsaWNlKGksIDEpOwotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdMaXN0ZW5lciBub3QgZm91bmQnKTsKLSAgICB9LAotCi0gICAgZGVzdHJveTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmxpc3RlbmVyc18uc3BsaWNlKDApOwotICAgICAgdGhpcy5kb2N1bWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25FdmVudF8pOwotICAgICAgdGhpcy5kb2N1bWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLm9uRXZlbnRfKTsKLSAgICAgIHRoaXMuZG9jdW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5vbkV2ZW50Xyk7Ci0gICAgfSwKLQotICAgIGRpc3BhdGNoRmFrZUV2ZW50OiBmdW5jdGlvbih0eXBlLCBhcmdzKSB7Ci0gICAgICB2YXIgZSA9IG5ldyBLZXlib2FyZEV2ZW50KHR5cGUsIGFyZ3MpOwotICAgICAgcmV0dXJuIEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZS5vbkV2ZW50Xy5jYWxsKHVuZGVmaW5lZCwgZSk7Ci0gICAgfQotICB9OwotCi0gIEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZSA9IG5ldyBLZXlFdmVudE1hbmFnZXIoKTsKLQotICByZXR1cm4gewotICAgIEtleUV2ZW50TWFuYWdlcjogS2V5RXZlbnRNYW5hZ2VyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2tleV9ldmVudF9tYW5hZ2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9rZXlfZXZlbnRfbWFuYWdlcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2YmYwN2YuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2tleV9ldmVudF9tYW5hZ2VyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9rZXlfZXZlbnRfbWFuYWdlci5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgS2V5RXZlbnRNYW5hZ2VyID0gdHIuYi5LZXlFdmVudE1hbmFnZXI7Ci0KLSAgZnVuY3Rpb24gd2l0aEVsZW1lbnRBdHRhY2hlZFRvQ2hpbGQoZWxlbWVudCwgY2FsbGJhY2spIHsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotICAgIHRyeSB7Ci0gICAgICBjYWxsYmFjaygpOwotICAgIH0gZmluYWxseSB7Ci0gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpOwotICAgIH0KLSAgfQotCi0KLSAgdGVzdCgnc2ltcGxlRGlzcGF0Y2gnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIga2VtID0gS2V5RXZlbnRNYW5hZ2VyLmluc3RhbmNlOwotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIHZhciBmaXJlQ291bnQgPSAwOwotICAgIGtlbS5hZGRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKLSAgICAgIGZpcmVDb3VudCsrOwotICAgIH0sIGRpdik7Ci0KLSAgICAvLyBTZW5kIGFuIGV2ZW50IHdoaWxlIGl0cyBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQuCi0gICAgd2l0aEVsZW1lbnRBdHRhY2hlZFRvQ2hpbGQoZGl2LCBmdW5jdGlvbigpIHsKLSAgICAgIHZhciByZXQgPSBrZW0uZGlzcGF0Y2hGYWtlRXZlbnQoJ2tleWRvd24nLCB7a2V5Q29kZTogNzN9KTsKLSAgICAgIGFzc2VydC5pc1VuZGVmaW5lZChyZXQpOwotICAgICAgYXNzZXJ0LmVxdWFsKGZpcmVDb3VudCwgMSk7Ci0gICAgfSk7Ci0gICAgZmlyZUNvdW50ID0gMDsKLQotICAgIC8vIFNlbmQgYW4gZXZlbnQgd2hpbGUgaXQgaXMgZGV0YWNoZWQuCi0gICAgdmFyIHJldCA9IGtlbS5kaXNwYXRjaEZha2VFdmVudCgna2V5ZG93bicsIHtrZXlDb2RlOiA3M30pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChyZXQpOwotICAgIGFzc2VydC5lcXVhbChmaXJlQ291bnQsIDApOwotICB9KTsKLQotICB0ZXN0KCdwcmV2ZW50RGVmYXVsdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBrZW0gPSBLZXlFdmVudE1hbmFnZXIuaW5zdGFuY2U7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIGZpcmVDb3VudCA9IDA7Ci0gICAga2VtLmFkZExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewotICAgICAgZmlyZUNvdW50Kys7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfSwgZGl2KTsKLQotICAgIHdpdGhFbGVtZW50QXR0YWNoZWRUb0NoaWxkKGRpdiwgZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcmV0ID0ga2VtLmRpc3BhdGNoRmFrZUV2ZW50KCdrZXlkb3duJywge2tleUNvZGU6IDczfSk7Ci0gICAgICBhc3NlcnQuaXNGYWxzZShyZXQpOwotICAgICAgYXNzZXJ0LmVxdWFsKGZpcmVDb3VudCwgMSk7Ci0gICAgfSk7Ci0KLSAgfSk7Ci0KLSAgdGVzdCgnc3RvcFByb3BhZ2F0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGtlbSA9IEtleUV2ZW50TWFuYWdlci5pbnN0YW5jZTsKLSAgICB2YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICB2YXIgZGlkRmlyZSA9IGZhbHNlOwotICAgIGtlbS5hZGRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKLSAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfSwgZGl2MSk7Ci0gICAga2VtLmFkZExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbmV2ZXIgZ2V0IGNhbGxlZCcpOwotICAgIH0sIGRpdjIpOwotCi0gICAgd2l0aEVsZW1lbnRBdHRhY2hlZFRvQ2hpbGQoZGl2MSwgZnVuY3Rpb24oKSB7Ci0gICAgICB3aXRoRWxlbWVudEF0dGFjaGVkVG9DaGlsZChkaXYyLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHJldCA9IGtlbS5kaXNwYXRjaEZha2VFdmVudCgna2V5ZG93bicsIHtrZXlDb2RlOiA3M30pOwotICAgICAgICBhc3NlcnQuaXNVbmRlZmluZWQocmV0KTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCdyZW1vdmVMaXN0ZW5lcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBrZW0gPSBLZXlFdmVudE1hbmFnZXIuaW5zdGFuY2U7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIGhhbmRsZXJGaXJlZCA9IGZhbHNlOwotICAgIGZ1bmN0aW9uIGhhbmRsZXIoZSkgewotICAgICAgaGFuZGxlckZpcmVkID0gdHJ1ZTsKLSAgICB9Ci0gICAga2VtLmFkZExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlciwgZGl2KTsKLSAgICBrZW0ucmVtb3ZlTGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyLCBkaXYpOwotICAgIGFzc2VydC5lcXVhbCgnJywgZGl2LmNsYXNzTmFtZSk7Ci0KLSAgICB3aXRoRWxlbWVudEF0dGFjaGVkVG9DaGlsZChkaXYsIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHJldCA9IGtlbS5kaXNwYXRjaEZha2VFdmVudCgna2V5ZG93bicsIHtrZXlDb2RlOiA3M30pOwotICAgICAgYXNzZXJ0LmlzRmFsc2UoaGFuZGxlckZpcmVkKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVtb3ZlT25lTGlzdGVuZXInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIga2VtID0gS2V5RXZlbnRNYW5hZ2VyLmluc3RhbmNlOwotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIHZhciBoYW5kbGVyQUZpcmVkID0gZmFsc2U7Ci0gICAgZnVuY3Rpb24gaGFuZGxlckEoZSkgewotICAgICAgaGFuZGxlckFGaXJlZCA9IHRydWU7Ci0gICAgfQotICAgIHZhciBoYW5kbGVyQkZpcmVkID0gZmFsc2U7Ci0gICAgZnVuY3Rpb24gaGFuZGxlckIoZSkgewotICAgICAgaGFuZGxlckJGaXJlZCA9IHRydWU7Ci0gICAgfQotICAgIGtlbS5hZGRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXJBLCBkaXYpOwotICAgIGtlbS5hZGRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXJCLCBkaXYpOwotICAgIGtlbS5yZW1vdmVMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXJBLCBkaXYpOwotICAgIGFzc2VydC5pc1RydWUoZGl2LmNsYXNzTGlzdC5jb250YWlucygna2V5LWV2ZW50LW1hbmFnZXItdGFyZ2V0JykpOwotCi0gICAgd2l0aEVsZW1lbnRBdHRhY2hlZFRvQ2hpbGQoZGl2LCBmdW5jdGlvbigpIHsKLSAgICAgIHZhciByZXQgPSBrZW0uZGlzcGF0Y2hGYWtlRXZlbnQoJ2tleWRvd24nLCB7a2V5Q29kZTogNzN9KTsKLSAgICAgIGFzc2VydC5pc0ZhbHNlKGhhbmRsZXJBRmlyZWQpOwotICAgICAgYXNzZXJ0LmlzVHJ1ZShoYW5kbGVyQkZpcmVkKTsKLSAgICB9KTsKLSAgfSk7Ci0KLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9tYXRoLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvbWF0aC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTUzZTk1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9tYXRoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQgc3JjPSIvZ2wtbWF0cml4LW1pbi5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIGNsYW1wKHgsIGxvLCBoaSkgewotICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCh4LCBsbyksIGhpKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGxlcnAocGVyY2VudGFnZSwgbG8sIGhpKSB7Ci0gICAgdmFyIHJhbmdlID0gaGkgLSBsbzsKLSAgICByZXR1cm4gbG8gKyBwZXJjZW50YWdlICogcmFuZ2U7Ci0gIH0KLQotICBmdW5jdGlvbiBkZWcycmFkKGRlZykgewotICAgIHJldHVybiAoTWF0aC5QSSAqIGRlZykgLyAxODAuMDsKLSAgfQotCi0gIHZhciB0bXBfdmVjMiA9IHZlYzIuY3JlYXRlKCk7Ci0gIHZhciB0bXBfdmVjMmIgPSB2ZWMyLmNyZWF0ZSgpOwotICB2YXIgdG1wX3ZlYzQgPSB2ZWM0LmNyZWF0ZSgpOwotICB2YXIgdG1wX21hdDJkID0gbWF0MmQuY3JlYXRlKCk7Ci0KLSAgdmVjMi5jcmVhdGVGcm9tQXJyYXkgPSBmdW5jdGlvbihhcnIpIHsKLSAgICBpZiAoYXJyLmxlbmd0aCAhPSAyKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgYmUgbGVuZ3RoIDInKTsKLSAgICB2YXIgdiA9IHZlYzIuY3JlYXRlKCk7Ci0gICAgdmVjMi5zZXQodiwgYXJyWzBdLCBhcnJbMV0pOwotICAgIHJldHVybiB2OwotICB9OwotCi0gIHZlYzIuY3JlYXRlWFkgPSBmdW5jdGlvbih4LCB5KSB7Ci0gICAgdmFyIHYgPSB2ZWMyLmNyZWF0ZSgpOwotICAgIHZlYzIuc2V0KHYsIHgsIHkpOwotICAgIHJldHVybiB2OwotICB9OwotCi0gIHZlYzIudG9TdHJpbmcgPSBmdW5jdGlvbihhKSB7Ci0gICAgcmV0dXJuICdbJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICddJzsKLSAgfTsKLQotICB2ZWMyLmFkZFR3b1NjYWxlZFVuaXRWZWN0b3JzID0gZnVuY3Rpb24ob3V0LCB1MSwgc2NhbGUxLCB1Miwgc2NhbGUyKSB7Ci0gICAgLy8gb3V0ID0gdTEgKiBzY2FsZTEgKyB1MiAqIHNjYWxlMgotICAgIHZlYzIuc2NhbGUodG1wX3ZlYzIsIHUxLCBzY2FsZTEpOwotICAgIHZlYzIuc2NhbGUodG1wX3ZlYzJiLCB1Miwgc2NhbGUyKTsKLSAgICB2ZWMyLmFkZChvdXQsIHRtcF92ZWMyLCB0bXBfdmVjMmIpOwotICB9OwotCi0gIHZlYzIuaW50ZXJwb2xhdGVQaWVjZXdpc2VGdW5jdGlvbiA9IGZ1bmN0aW9uKHBvaW50cywgeCkgewotICAgIGlmICh4IDwgcG9pbnRzWzBdWzBdKQotICAgICAgcmV0dXJuIHBvaW50c1swXVsxXTsKLSAgICBmb3IgKHZhciBpID0gMTsgaSA8IHBvaW50cy5sZW5ndGg7ICsraSkgewotICAgICAgaWYgKHggPCBwb2ludHNbaV1bMF0pIHsKLSAgICAgICAgdmFyIHBlcmNlbnQgPSAoeCAtIHBvaW50c1tpIC0gMV1bMF0pIC8KLSAgICAgICAgICAgICAgICAgICAgICAocG9pbnRzW2ldWzBdIC0gcG9pbnRzW2kgLSAxXVswXSk7Ci0gICAgICAgIHJldHVybiBsZXJwKHBlcmNlbnQsIHBvaW50c1tpIC0gMV1bMV0sIHBvaW50c1tpXVsxXSk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdWzFdOwotICB9OwotCi0gIHZlYzMuY3JlYXRlWFlaID0gZnVuY3Rpb24oeCwgeSwgeikgewotICAgIHZhciB2ID0gdmVjMy5jcmVhdGUoKTsKLSAgICB2ZWMzLnNldCh2LCB4LCB5LCB6KTsKLSAgICByZXR1cm4gdjsKLSAgfTsKLQotICB2ZWMzLnRvU3RyaW5nID0gZnVuY3Rpb24oYSkgewotICAgIHJldHVybiAndmVjMygnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnKSc7Ci0gIH0KLQotICBtYXQyZC50cmFuc2xhdGVYWSA9IGZ1bmN0aW9uKG91dCwgeCwgeSkgewotICAgIHZlYzIuc2V0KHRtcF92ZWMyLCB4LCB5KTsKLSAgICBtYXQyZC50cmFuc2xhdGUob3V0LCBvdXQsIHRtcF92ZWMyKTsKLSAgfQotCi0gIG1hdDJkLnNjYWxlWFkgPSBmdW5jdGlvbihvdXQsIHgsIHkpIHsKLSAgICB2ZWMyLnNldCh0bXBfdmVjMiwgeCwgeSk7Ci0gICAgbWF0MmQuc2NhbGUob3V0LCBvdXQsIHRtcF92ZWMyKTsKLSAgfQotCi0gIHZlYzQudW5pdGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgewotICAgIG91dFswXSA9IGFbMF0gLyBhWzNdOwotICAgIG91dFsxXSA9IGFbMV0gLyBhWzNdOwotICAgIG91dFsyXSA9IGFbMl0gLyBhWzNdOwotICAgIG91dFszXSA9IDE7Ci0gICAgcmV0dXJuIG91dDsKLSAgfQotCi0gIHZlYzIuY29weUZyb21WZWM0ID0gZnVuY3Rpb24ob3V0LCBhKSB7Ci0gICAgdmVjNC51bml0aXplKHRtcF92ZWM0LCBhKTsKLSAgICB2ZWMyLmNvcHkob3V0LCB0bXBfdmVjNCk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIGNsYW1wOiBjbGFtcCwKLSAgICBsZXJwOiBsZXJwLAotICAgIGRlZzJyYWQ6IGRlZzJyYWQKLSAgfTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9wb2x5bWVyX3V0aWxzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcG9seW1lcl91dGlscy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDQ5YTNkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9wb2x5bWVyX3V0aWxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEhlbHBlciBjb2RlIGZvciB3b3JraW5nIHdpdGggUG9seW1lci4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKLQotICBPYmplY3Qub2JzZXJ2ZShQb2x5bWVyLmVsZW1lbnRzLCBjbGVhclBvbHltZXJFbGVtZW50Q2FjaGVzKTsKLQotICB2YXIgZWxlbWVudHNCeU5hbWUgPSB1bmRlZmluZWQ7Ci0gIHZhciBlbGVtZW50c1RoYXRFeHRlbmQgPSB1bmRlZmluZWQ7Ci0gIHZhciBlbGVtZW50U3ViY2xhc3NlcyA9IHVuZGVmaW5lZDsKLSAgZnVuY3Rpb24gY2xlYXJQb2x5bWVyRWxlbWVudENhY2hlcygpIHsKLSAgICBlbGVtZW50c0J5TmFtZSA9IHt9OwotICAgIGVsZW1lbnRzVGhhdEV4dGVuZCA9IHVuZGVmaW5lZDsKLSAgICBlbGVtZW50U3ViY2xhc3NlcyA9IHt9OwotICB9Ci0KLSAgZnVuY3Rpb24gYnVpbGRFbGVtZW50TWFwc0lmTmVlZGVkKCkgewotICAgIGlmIChlbGVtZW50c1RoYXRFeHRlbmQgIT09IHVuZGVmaW5lZCAmJiBlbGVtZW50c0J5TmFtZSAhPT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuOwotICAgIGVsZW1lbnRzQnlOYW1lID0ge307Ci0gICAgZWxlbWVudHNUaGF0RXh0ZW5kID0ge307Ci0gICAgUG9seW1lci5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQpIHsKLSAgICAgIGlmIChlbGVtZW50c0J5TmFtZVtlbGVtZW50Lm5hbWVdKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvbWV0aGluZyBpcyBzdHJhbmdlOiBkdXBlIHBvbHltZXIgZWxlbWVudCBuYW1lcycpOwotCi0gICAgICBlbGVtZW50c0J5TmFtZVtlbGVtZW50Lm5hbWVdID0gZWxlbWVudDsKLQotICAgICAgaWYgKGVsZW1lbnQuZXh0ZW5kcykgewotICAgICAgICBpZiAoZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQuZXh0ZW5kc10gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBlbGVtZW50c1RoYXRFeHRlbmRbZWxlbWVudC5leHRlbmRzXSA9IFtdOwotICAgICAgICBlbGVtZW50c1RoYXRFeHRlbmRbZWxlbWVudC5leHRlbmRzXS5wdXNoKGVsZW1lbnQubmFtZSk7Ci0gICAgICB9Ci0gICAgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRQb2x5bWVyRWxlbWVudE5hbWVkKHRhZ05hbWUpIHsKLSAgICBidWlsZEVsZW1lbnRNYXBzSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gZWxlbWVudHNCeU5hbWVbdGFnTmFtZV07Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3ModGFnTmFtZSkgewotICAgIGlmIChQb2x5bWVyLndhaXRpbmdGb3IoKS5sZW5ndGgpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignVGhlcmUgYXJlIHVucmVzb2x2ZWQgcG9seW1lciBlbGVtZW50cy4gJyArCi0gICAgICAgICdXYWl0IHVudGlsIFBvbHltZXIud2hlblJlYWR5Jyk7Ci0gICAgfQotCi0gICAgYnVpbGRFbGVtZW50TWFwc0lmTmVlZGVkKCk7Ci0KLSAgICB2YXIgZWxlbWVudCA9IGdldFBvbHltZXJFbGVtZW50TmFtZWQodGFnTmFtZSk7Ci0gICAgaWYgKCFlbGVtZW50KQotICAgICAgdGhyb3cgbmV3IEVycm9yKHRhZ05hbWUgKyAnIGlzIG5vdCBhIHBvbHltZXIgZWxlbWVudCcpOwotCi0gICAgaWYgKGVsZW1lbnRTdWJjbGFzc2VzID09PSB1bmRlZmluZWQpCi0gICAgICBlbGVtZW50U3ViY2xhc3NlcyA9IHt9OwotCi0gICAgaWYgKGVsZW1lbnRTdWJjbGFzc2VzW3RhZ05hbWVdID09PSB1bmRlZmluZWQpIHsKLSAgICAgIHZhciBpbW1lZGlhdGVTdWJFbGVtZW50cyA9IGVsZW1lbnRzVGhhdEV4dGVuZFtlbGVtZW50Lm5hbWVdOwotICAgICAgdmFyIGFsbFN1YkVsZW1lbnRzID0gW107Ci0gICAgICBpZiAoaW1tZWRpYXRlU3ViRWxlbWVudHMgIT09IHVuZGVmaW5lZCAmJiBpbW1lZGlhdGVTdWJFbGVtZW50cy5sZW5ndGgpIHsKLSAgICAgICAgaW1tZWRpYXRlU3ViRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihzdWJFbGVtZW50KSB7Ci0gICAgICAgICAgYWxsU3ViRWxlbWVudHMucHVzaChzdWJFbGVtZW50KTsKLSAgICAgICAgICBhbGxTdWJFbGVtZW50cy5wdXNoLmFwcGx5KAotICAgICAgICAgICAgYWxsU3ViRWxlbWVudHMsIGdldFBvbHltZXJFbGVtZW50c1RoYXRTdWJjbGFzcyhzdWJFbGVtZW50KSk7Ci0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgZWxlbWVudFN1YmNsYXNzZXNbdGFnTmFtZV0gPSBhbGxTdWJFbGVtZW50czsKLSAgICB9Ci0gICAgcmV0dXJuIGVsZW1lbnRTdWJjbGFzc2VzW3RhZ05hbWVdOwotICB9Ci0KLSAgZnVuY3Rpb24gZ2V0UG9seW1lclN1YmNsYXNzaW5nRGVwdGhGcm9tKHRhZ05hbWUsIHRhZ0Jhc2UpIHsKLSAgICBpZiAoUG9seW1lci53YWl0aW5nRm9yKCkubGVuZ3RoKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGFyZSB1bnJlc29sdmVkIHBvbHltZXIgZWxlbWVudHMuICcgKwotICAgICAgICAnV2FpdCB1bnRpbCBQb2x5bWVyLndoZW5SZWFkeScpOwotICAgIH0KLQotICAgIGlmICghUG9seW1lci5lbGVtZW50c1t0YWdCYXNlXSkKLSAgICAgIHRocm93IG5ldyBFcnJvcih0YWdCYXNlICsgJyBpcyBub3QgYSBwb2x5bWVyIGVsZW1lbnQnKTsKLQotICAgIGlmICghUG9seW1lci5lbGVtZW50c1t0YWdOYW1lXSkKLSAgICAgIHRocm93IG5ldyBFcnJvcih0YWdOYW1lICsgJyBpcyBub3QgYSBwb2x5bWVyIGVsZW1lbnQnKTsKLQotICAgIHZhciBzdGVwcyA9IDA7Ci0KLSAgICB2YXIgdGFnQ3VyID0gdGFnTmFtZTsKLSAgICB3aGlsZSAodGFnQ3VyICE9IHRhZ0Jhc2UpIHsKLSAgICAgIHN0ZXBzICs9IDE7Ci0gICAgICB0YWdDdXIgPSBQb2x5bWVyLmVsZW1lbnRzW3RhZ0N1cl0uZXh0ZW5kczsKLSAgICAgIGlmICghdGFnQ3VyKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGFnTmFtZSArICcgZG9lcyBub3Qgc3ViY2xhc3MgJyArIHRhZ0Jhc2UpOwotICAgIH0KLSAgICByZXR1cm4gc3RlcHM7Ci0gIH0KLQotICByZXR1cm4gewotICAgIGdldFBvbHltZXJFbGVtZW50TmFtZWQ6IGdldFBvbHltZXJFbGVtZW50TmFtZWQsCi0KLSAgICBnZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3M6IGdldFBvbHltZXJFbGVtZW50c1RoYXRTdWJjbGFzcywKLSAgICBnZXRQb2x5bWVyU3ViY2xhc3NpbmdEZXB0aEZyb206IGdldFBvbHltZXJTdWJjbGFzc2luZ0RlcHRoRnJvbQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9wcm9wZXJ0aWVzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcHJvcGVydGllcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NWMyYjdlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9wcm9wZXJ0aWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRzLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEZpcmVzIGEgcHJvcGVydHkgY2hhbmdlIGV2ZW50IG9uIHRoZSB0YXJnZXQuCi0gICAqIEBwYXJhbSB7RXZlbnRUYXJnZXR9IHRhcmdldCBUaGUgdGFyZ2V0IHRvIGRpc3BhdGNoIHRoZSBldmVudCBvbi4KLSAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdGhhdCBjaGFuZ2VkLgotICAgKiBAcGFyYW0geyp9IG5ld1ZhbHVlIFRoZSBuZXcgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eS4KLSAgICogQHBhcmFtIHsqfSBvbGRWYWx1ZSBUaGUgb2xkIHZhbHVlIGZvciB0aGUgcHJvcGVydHkuCi0gICAqLwotICBmdW5jdGlvbiBkaXNwYXRjaFByb3BlcnR5Q2hhbmdlKHRhcmdldCwgcHJvcGVydHlOYW1lLCBuZXdWYWx1ZSwgb2xkVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X2J1YmJsZXMsIG9wdF9jYW5jZWxhYmxlKSB7Ci0gICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudChwcm9wZXJ0eU5hbWUgKyAnQ2hhbmdlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9idWJibGVzLCBvcHRfY2FuY2VsYWJsZSk7Ci0gICAgZS5wcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7Ci0gICAgZS5uZXdWYWx1ZSA9IG5ld1ZhbHVlOwotICAgIGUub2xkVmFsdWUgPSBvbGRWYWx1ZTsKLQotICAgIHZhciBlcnJvcjsKLSAgICBlLnRocm93RXJyb3IgPSBmdW5jdGlvbihlcnIpIHsgIC8vIHdvcmthcm91bmQgQ1IgMjM5NjQ4Ci0gICAgICBlcnJvciA9IGVycjsKLSAgICB9OwotCi0gICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZSk7Ci0gICAgaWYgKGVycm9yKQotICAgICAgdGhyb3cgZXJyb3I7Ci0gIH0KLQotICBmdW5jdGlvbiBzZXRQcm9wZXJ0eUFuZERpc3BhdGNoQ2hhbmdlKG9iaiwgcHJvcGVydHlOYW1lLCBuZXdWYWx1ZSkgewotICAgIHZhciBwcml2YXRlTmFtZSA9IHByb3BlcnR5TmFtZSArICdfJzsKLSAgICB2YXIgb2xkVmFsdWUgPSBvYmpbcHJvcGVydHlOYW1lXTsKLSAgICBvYmpbcHJpdmF0ZU5hbWVdID0gbmV3VmFsdWU7Ci0gICAgaWYgKG9sZFZhbHVlICE9PSBuZXdWYWx1ZSkKLSAgICAgIHRyLmIuZGlzcGF0Y2hQcm9wZXJ0eUNoYW5nZShvYmosIHByb3BlcnR5TmFtZSwKLSAgICAgICAgICBuZXdWYWx1ZSwgb2xkVmFsdWUsIHRydWUsIGZhbHNlKTsKLSAgfQotCi0gIC8qKgotICAgKiBDb252ZXJ0cyBhIGNhbWVsQ2FzZSBqYXZhc2NyaXB0IHByb3BlcnR5IG5hbWUgdG8gYSBoeXBoZW5hdGVkLWxvd2VyLWNhc2UKLSAgICogYXR0cmlidXRlIG5hbWUuCi0gICAqIEBwYXJhbSB7c3RyaW5nfSBqc05hbWUgVGhlIGphdmFzY3JpcHQgY2FtZWxDYXNlIHByb3BlcnR5IG5hbWUuCi0gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGVxdWl2YWxlbnQgaHlwaGVuYXRlZC1sb3dlci1jYXNlIGF0dHJpYnV0ZSBuYW1lLgotICAgKi8KLSAgZnVuY3Rpb24gZ2V0QXR0cmlidXRlTmFtZShqc05hbWUpIHsKLSAgICByZXR1cm4ganNOYW1lLnJlcGxhY2UoLyhbQS1aXSkvZywgJy0kMScpLnRvTG93ZXJDYXNlKCk7Ci0gIH0KLQotICAvKiBDcmVhdGVzIGEgcHJpdmF0ZSBuYW1lIHVubGlrZWx5IHRvIGNvbGxpZGUgd2l0aCBvYmplY3QgcHJvcGVydGllcyBuYW1lcwotICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgZGVmaW5lUHJvcGVydHkgbmFtZQotICAgKiBAcmV0dXJuIHtzdHJpbmd9IGFuIG9iZnVzY2F0ZWQgbmFtZQotICAgKi8KLSAgZnVuY3Rpb24gZ2V0UHJpdmF0ZU5hbWUobmFtZSkgewotICAgIHJldHVybiBuYW1lICsgJ190cl8nOwotICB9Ci0KLSAgLyoqCi0gICAqIFRoZSBraW5kIG9mIHByb3BlcnR5IHRvIGRlZmluZSBpbiB7QGNvZGUgZGVmaW5lUHJvcGVydHl9LgotICAgKiBAZW51bSB7bnVtYmVyfQotICAgKiBAY29uc3QKLSAgICovCi0gIHZhciBQcm9wZXJ0eUtpbmQgPSB7Ci0gICAgLyoqCi0gICAgICogUGxhaW4gb2xkIEpTIHByb3BlcnR5IHdoZXJlIHRoZSBiYWNraW5nIGRhdGEgaXMgc3RvcmVkIGFzIGEgJ3ByaXZhdGUnCi0gICAgICogZmllbGQgb24gdGhlIG9iamVjdC4KLSAgICAgKi8KLSAgICBKUzogJ2pzJywKLQotICAgIC8qKgotICAgICAqIFRoZSBwcm9wZXJ0eSBiYWNraW5nIGRhdGEgaXMgc3RvcmVkIGFzIGFuIGF0dHJpYnV0ZSBvbiBhbiBlbGVtZW50LgotICAgICAqLwotICAgIEFUVFI6ICdhdHRyJywKLQotICAgIC8qKgotICAgICAqIFRoZSBwcm9wZXJ0eSBiYWNraW5nIGRhdGEgaXMgc3RvcmVkIGFzIGFuIGF0dHJpYnV0ZSBvbiBhbiBlbGVtZW50LiBJZiB0aGUKLSAgICAgKiBlbGVtZW50IGhhcyB0aGUgYXR0cmlidXRlIHRoZW4gdGhlIHZhbHVlIGlzIHRydWUuCi0gICAgICovCi0gICAgQk9PTF9BVFRSOiAnYm9vbEF0dHInCi0gIH07Ci0KLSAgLyoqCi0gICAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZGVmaW5lUHJvcGVydHkgdGhhdCByZXR1cm5zIHRoZSBnZXR0ZXIgdG8gdXNlIGZvciB0aGUKLSAgICogcHJvcGVydHkuCi0gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS4KLSAgICogQHBhcmFtIHt0ci5iLlByb3BlcnR5S2luZH0ga2luZCBUaGUga2luZCBvZiB0aGUgcHJvcGVydHkuCi0gICAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6Kn0gVGhlIGdldHRlciBmb3IgdGhlIHByb3BlcnR5LgotICAgKi8KLSAgZnVuY3Rpb24gZ2V0R2V0dGVyKG5hbWUsIGtpbmQpIHsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICAgIGNhc2UgUHJvcGVydHlLaW5kLkpTOgotICAgICAgICB2YXIgcHJpdmF0ZU5hbWUgPSBnZXRQcml2YXRlTmFtZShuYW1lKTsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiB0aGlzW3ByaXZhdGVOYW1lXTsKLSAgICAgICAgfTsKLSAgICAgIGNhc2UgUHJvcGVydHlLaW5kLkFUVFI6Ci0gICAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gZ2V0QXR0cmlidXRlTmFtZShuYW1lKTsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgfTsKLSAgICAgIGNhc2UgUHJvcGVydHlLaW5kLkJPT0xfQVRUUjoKLSAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBnZXRBdHRyaWJ1dGVOYW1lKG5hbWUpOwotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOwotICAgICAgICB9OwotICAgIH0KLSAgfQotCi0gIC8qKgotICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGRlZmluZVByb3BlcnR5IHRoYXQgcmV0dXJucyB0aGUgc2V0dGVyIG9mIHRoZSByaWdodAotICAgKiBraW5kLgotICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgd2UgYXJlIGRlZmluaW5nIHRoZSBzZXR0ZXIKLSAgICogICAgIGZvci4KLSAgICogQHBhcmFtIHt0ci5iLlByb3BlcnR5S2luZH0ga2luZCBUaGUga2luZCBvZiBwcm9wZXJ0eSB3ZSBhcmUgZ2V0dGluZyB0aGUKLSAgICogICAgIHNldHRlciBmb3IuCi0gICAqIEBwYXJhbSB7ZnVuY3Rpb24oKik6dm9pZD19IG9wdF9zZXRIb29rIEEgZnVuY3Rpb24gdG8gcnVuIGFmdGVyIHRoZSBwcm9wZXJ0eQotICAgKiAgICAgaXMgc2V0LCBidXQgYmVmb3JlIHRoZSBwcm9wZXJ0eUNoYW5nZSBldmVudCBpcyBmaXJlZC4KLSAgICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2J1YmJsZXMgV2hldGhlciB0aGUgZXZlbnQgYnViYmxlcyBvciBub3QuCi0gICAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9jYW5jZWxhYmxlIFdoZXRoZXIgdGhlIGRlZmF1bHQgYWN0aW9uIG9mIHRoZSBldmVudAotICAgKiAgICAgY2FuIGJlIHByZXZlbnRlZC4KLSAgICogQHJldHVybiB7ZnVuY3Rpb24oKik6dm9pZH0gVGhlIGZ1bmN0aW9uIHRvIHVzZSBhcyBhIHNldHRlci4KLSAgICovCi0gIGZ1bmN0aW9uIGdldFNldHRlcihuYW1lLCBraW5kLCBvcHRfc2V0SG9vaywgb3B0X2J1YmJsZXMsIG9wdF9jYW5jZWxhYmxlKSB7Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgICBjYXNlIFByb3BlcnR5S2luZC5KUzoKLSAgICAgICAgdmFyIHByaXZhdGVOYW1lID0gZ2V0UHJpdmF0ZU5hbWUobmFtZSk7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgIHZhciBvbGRWYWx1ZSA9IHRoaXNbcHJpdmF0ZU5hbWVdOwotICAgICAgICAgIGlmICh2YWx1ZSAhPT0gb2xkVmFsdWUpIHsKLSAgICAgICAgICAgIHRoaXNbcHJpdmF0ZU5hbWVdID0gdmFsdWU7Ci0gICAgICAgICAgICBpZiAob3B0X3NldEhvb2spCi0gICAgICAgICAgICAgIG9wdF9zZXRIb29rLmNhbGwodGhpcywgdmFsdWUsIG9sZFZhbHVlKTsKLSAgICAgICAgICAgIGRpc3BhdGNoUHJvcGVydHlDaGFuZ2UodGhpcywgbmFtZSwgdmFsdWUsIG9sZFZhbHVlLAotICAgICAgICAgICAgICAgIG9wdF9idWJibGVzLCBvcHRfY2FuY2VsYWJsZSk7Ci0gICAgICAgICAgfQotICAgICAgICB9OwotCi0gICAgICBjYXNlIFByb3BlcnR5S2luZC5BVFRSOgotICAgICAgICB2YXIgYXR0cmlidXRlTmFtZSA9IGdldEF0dHJpYnV0ZU5hbWUobmFtZSk7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAgIGlmICh2YWx1ZSAhPT0gb2xkVmFsdWUpIHsKLSAgICAgICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCi0gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCB2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAob3B0X3NldEhvb2spCi0gICAgICAgICAgICAgIG9wdF9zZXRIb29rLmNhbGwodGhpcywgdmFsdWUsIG9sZFZhbHVlKTsKLSAgICAgICAgICAgIGRpc3BhdGNoUHJvcGVydHlDaGFuZ2UodGhpcywgbmFtZSwgdmFsdWUsIG9sZFZhbHVlLAotICAgICAgICAgICAgICAgIG9wdF9idWJibGVzLCBvcHRfY2FuY2VsYWJsZSk7Ci0gICAgICAgICAgfQotICAgICAgICB9OwotCi0gICAgICBjYXNlIFByb3BlcnR5S2luZC5CT09MX0FUVFI6Ci0gICAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gZ2V0QXR0cmlidXRlTmFtZShuYW1lKTsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgdmFyIG9sZFZhbHVlID0gKHRoaXMuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpID09PSBuYW1lKTsKLSAgICAgICAgICBpZiAodmFsdWUgIT09IG9sZFZhbHVlKSB7Ci0gICAgICAgICAgICBpZiAodmFsdWUpCi0gICAgICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIG5hbWUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKLSAgICAgICAgICAgIGlmIChvcHRfc2V0SG9vaykKLSAgICAgICAgICAgICAgb3B0X3NldEhvb2suY2FsbCh0aGlzLCB2YWx1ZSwgb2xkVmFsdWUpOwotICAgICAgICAgICAgZGlzcGF0Y2hQcm9wZXJ0eUNoYW5nZSh0aGlzLCBuYW1lLCB2YWx1ZSwgb2xkVmFsdWUsCi0gICAgICAgICAgICAgICAgb3B0X2J1YmJsZXMsIG9wdF9jYW5jZWxhYmxlKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgfQotICB9Ci0KLSAgLyoqCi0gICAqIERlZmluZXMgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuIFdoZW4gdGhlIHNldHRlciBjaGFuZ2VzIHRoZSB2YWx1ZSBhCi0gICAqIHByb3BlcnR5IGNoYW5nZSBldmVudCB3aXRoIHRoZSB0eXBlIHtAY29kZSBuYW1lICsgJ0NoYW5nZSd9IGlzIGZpcmVkLgotICAgKiBAcGFyYW0geyFPYmplY3R9IG9iaiBUaGUgb2JqZWN0IHRvIGRlZmluZSB0aGUgcHJvcGVydHkgZm9yLgotICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuCi0gICAqIEBwYXJhbSB7dHIuYi5Qcm9wZXJ0eUtpbmQ9fSBvcHRfa2luZCBXaGF0IGtpbmQgb2YgdW5kZXJseWluZyBzdG9yYWdlIHRvCi0gICAqIHVzZS4KLSAgICogQHBhcmFtIHtmdW5jdGlvbigqKTp2b2lkPX0gb3B0X3NldEhvb2sgQSBmdW5jdGlvbiB0byBydW4gYWZ0ZXIgdGhlCi0gICAqICAgICBwcm9wZXJ0eSBpcyBzZXQsIGJ1dCBiZWZvcmUgdGhlIHByb3BlcnR5Q2hhbmdlIGV2ZW50IGlzIGZpcmVkLgotICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfYnViYmxlcyBXaGV0aGVyIHRoZSBldmVudCBidWJibGVzIG9yIG5vdC4KLSAgICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2NhbmNlbGFibGUgV2hldGhlciB0aGUgZGVmYXVsdCBhY3Rpb24gb2YgdGhlIGV2ZW50Ci0gICAqICAgICBjYW4gYmUgcHJldmVudGVkLgotICAgKi8KLSAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkob2JqLCBuYW1lLCBvcHRfa2luZCwgb3B0X3NldEhvb2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9idWJibGVzLCBvcHRfY2FuY2VsYWJsZSkgewotICAgIGNvbnNvbGUuZXJyb3IoIkRvbid0IHVzZSB0ci5iLmRlZmluZVByb3BlcnR5Iik7Ci0gICAgaWYgKHR5cGVvZiBvYmogPT0gJ2Z1bmN0aW9uJykKLSAgICAgIG9iaiA9IG9iai5wcm90b3R5cGU7Ci0KLSAgICB2YXIga2luZCA9IG9wdF9raW5kIHx8IFByb3BlcnR5S2luZC5KUzsKLQotICAgIGlmICghb2JqLl9fbG9va3VwR2V0dGVyX18obmFtZSkpCi0gICAgICBvYmouX19kZWZpbmVHZXR0ZXJfXyhuYW1lLCBnZXRHZXR0ZXIobmFtZSwga2luZCkpOwotCi0gICAgaWYgKCFvYmouX19sb29rdXBTZXR0ZXJfXyhuYW1lKSkKLSAgICAgIG9iai5fX2RlZmluZVNldHRlcl9fKG5hbWUsIGdldFNldHRlcihuYW1lLCBraW5kLCBvcHRfc2V0SG9vaywKLSAgICAgICAgICBvcHRfYnViYmxlcywgb3B0X2NhbmNlbGFibGUpKTsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgUHJvcGVydHlLaW5kOiBQcm9wZXJ0eUtpbmQsCi0gICAgZGVmaW5lUHJvcGVydHk6IGRlZmluZVByb3BlcnR5LAotICAgIGRpc3BhdGNoUHJvcGVydHlDaGFuZ2U6IGRpc3BhdGNoUHJvcGVydHlDaGFuZ2UsCi0gICAgc2V0UHJvcGVydHlBbmREaXNwYXRjaENoYW5nZTogc2V0UHJvcGVydHlBbmREaXNwYXRjaENoYW5nZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9wcm9wZXJ0aWVzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9wcm9wZXJ0aWVzX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjkzYmQxNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcHJvcGVydGllc190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9wcm9wZXJ0aWVzLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2RlZmluZVByb3BlcnRpZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc3RhdGVDaGFuZ2VzID0gW107Ci0KLSAgICB2YXIgQVNwYW4gPSB0ci5iLnVpLmRlZmluZSgnc3BhbicpOwotICAgIEFTcGFuLnByb3RvdHlwZSA9IHsKLSAgICAgIF9fcHJvdG9fXzogSFRNTFNwYW5FbGVtZW50LnByb3RvdHlwZSwKLQotICAgICAganNQcm9wXzogW10sCi0KLSAgICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5wcm9wXyA9IGZhbHNlOwotICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb3BDaGFuZ2UnLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgIHN0YXRlQ2hhbmdlcy5wdXNoKCdJbnRlcm5hbCAnICsgZXZlbnQub2xkVmFsdWUgKwotICAgICAgICAgICAgICAnIHRvICcgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgICAgIH0sIHRydWUpOwotICAgICAgfSwKLQotICAgICAgZ2V0IHByb3AoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnByb3BfOwotICAgICAgfSwKLQotICAgICAgc2V0IHByb3AobmV3VmFsdWUpIHsKLSAgICAgICAgdHIuYi5zZXRQcm9wZXJ0eUFuZERpc3BhdGNoQ2hhbmdlKHRoaXMsICdwcm9wJywgbmV3VmFsdWUpOwotICAgICAgfQotICAgIH07Ci0KLSAgICB2YXIgYVNwYW4gPSBuZXcgQVNwYW4oKTsKLQotICAgIGFTcGFuLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb3BDaGFuZ2UnLCBmdW5jdGlvbihldmVudCkgewotICAgICAgc3RhdGVDaGFuZ2VzLnB1c2goZXZlbnQub2xkVmFsdWUgKyAnIHRvICcgKyBldmVudC5uZXdWYWx1ZSk7Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnQuaXNGYWxzZShhU3Bhbi5wcm9wKTsKLQotICAgIGFTcGFuLnByb3AgPSB0cnVlOwotICAgIGFzc2VydC5pc1RydWUoYVNwYW4ucHJvcCk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YXRlQ2hhbmdlcy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGF0ZUNoYW5nZXNbMF0sICdJbnRlcm5hbCBmYWxzZSB0byB0cnVlJyk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YXRlQ2hhbmdlc1sxXSwgJ2ZhbHNlIHRvIHRydWUnKTsKLQotICAgIGFTcGFuLnByb3AgPSBmYWxzZTsKLSAgICBhc3NlcnQuaXNGYWxzZShhU3Bhbi5wcm9wKTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhdGVDaGFuZ2VzWzNdLCAndHJ1ZSB0byBmYWxzZScpOwotICB9KTsKLX0pOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYWYuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzIyNDc0My4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcmFmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgewotICAvLyBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIGNhdXNlIHN0YWNrIHRyYWNlcyB0byBnZXQgZHVtcGVkIGludG8gdGhlCi0gIC8vIHRhc2tzLiBXaGVuIGFuIGV4Y2VwdGlvbiBoYXBwZW5zIHRoZSBvcmlnaW5hbCBzdGFjayB3aWxsIGJlIHByaW50ZWQuCi0gIC8vCi0gIC8vIE5PVEU6IFRoaXMgc2hvdWxkIG5ldmVyIGJlIHNldCBjb21taXR0ZWQgYXMgdHJ1ZS4KLSAgdmFyIHJlY29yZFJBRlN0YWNrcyA9IGZhbHNlOwotCi0gIHZhciBwZW5kaW5nUHJlQUZzID0gW107Ci0gIHZhciBwZW5kaW5nUkFGcyA9IFtdOwotICB2YXIgcGVuZGluZ0lkbGVDYWxsYmFja3MgPSBbXTsKLSAgdmFyIGN1cnJlbnRSQUZEaXNwYXRjaExpc3QgPSB1bmRlZmluZWQ7Ci0KLSAgdmFyIHJhZlNjaGVkdWxlZCA9IGZhbHNlOwotCi0gIGZ1bmN0aW9uIHNjaGVkdWxlUkFGKCkgewotICAgIGlmIChyYWZTY2hlZHVsZWQpCi0gICAgICByZXR1cm47Ci0gICAgcmFmU2NoZWR1bGVkID0gdHJ1ZTsKLSAgICBpZiAod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSkgewotICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShwcm9jZXNzUmVxdWVzdHMpOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgZGVsdGEgPSBEYXRlLm5vdygpIC0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpOwotICAgICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbihkb21UaW1lU3RhbXApIHsKLSAgICAgICAgcHJvY2Vzc1JlcXVlc3RzKGRvbVRpbWVTdGFtcCAtIGRlbHRhKTsKLSAgICAgIH0pOwotICAgIH0KLSAgfQotCi0gIGZ1bmN0aW9uIG9uQW5pbWF0aW9uRnJhbWVFcnJvcihlLCBvcHRfc3RhY2spIHsKLSAgICBpZiAob3B0X3N0YWNrKQotICAgICAgY29uc29sZS5sb2cob3B0X3N0YWNrKTsKLQotICAgIGlmIChlLm1lc3NhZ2UpCi0gICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSwgZS5zdGFjayk7Ci0gICAgZWxzZQotICAgICAgY29uc29sZS5lcnJvcihlKTsKLSAgfQotCi0gIGZ1bmN0aW9uIHJ1blRhc2sodGFzaywgZnJhbWVCZWdpblRpbWUpIHsKLSAgICB0cnkgewotICAgICAgdGFzay5jYWxsYmFjay5jYWxsKHRhc2suY29udGV4dCwgZnJhbWVCZWdpblRpbWUpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgIHRyLmIub25BbmltYXRpb25GcmFtZUVycm9yKGUsIHRhc2suc3RhY2spOwotICAgIH0KLSAgfQotCi0gIGZ1bmN0aW9uIHByb2Nlc3NSZXF1ZXN0cyhmcmFtZUJlZ2luVGltZSkgewotICAgIC8vIFdlIGFzc3VtZSB0aGF0IHdlIHdhbnQgdG8gZG8gYSBtYXhpbXVtIG9mIDEwbXMgb3B0aW9uYWwgd29yayBwZXIgZnJhbWUuCi0gICAgLy8gSG9wZWZ1bGx5IHJBRiB3aWxsIGV2ZW50dWFsbHkgcGFzcyB0aGlzIGluIGZvciB1cy4KLSAgICB2YXIgcmFmQ29tcGxldGlvbkRlYWRsaW5lID0gZnJhbWVCZWdpblRpbWUgKyAxMDsKLQotICAgIHJhZlNjaGVkdWxlZCA9IGZhbHNlOwotCi0gICAgdmFyIGN1cnJlbnRQcmVBRnMgPSBwZW5kaW5nUHJlQUZzOwotICAgIGN1cnJlbnRSQUZEaXNwYXRjaExpc3QgPSBwZW5kaW5nUkFGczsKLSAgICBwZW5kaW5nUHJlQUZzID0gW107Ci0gICAgcGVuZGluZ1JBRnMgPSBbXTsKLSAgICB2YXIgaGFzUkFGVGFza3MgPSBjdXJyZW50UHJlQUZzLmxlbmd0aCB8fCBjdXJyZW50UkFGRGlzcGF0Y2hMaXN0Lmxlbmd0aDsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3VycmVudFByZUFGcy5sZW5ndGg7IGkrKykKLSAgICAgIHJ1blRhc2soY3VycmVudFByZUFGc1tpXSwgZnJhbWVCZWdpblRpbWUpOwotCi0gICAgd2hpbGUgKGN1cnJlbnRSQUZEaXNwYXRjaExpc3QubGVuZ3RoID4gMCkKLSAgICAgIHJ1blRhc2soY3VycmVudFJBRkRpc3BhdGNoTGlzdC5zaGlmdCgpLCBmcmFtZUJlZ2luVGltZSk7Ci0gICAgY3VycmVudFJBRkRpc3BhdGNoTGlzdCA9IHVuZGVmaW5lZDsKLQotICAgIGlmICghaGFzUkFGVGFza3MpIHsKLSAgICAgIHdoaWxlIChwZW5kaW5nSWRsZUNhbGxiYWNrcy5sZW5ndGggPiAwKSB7Ci0gICAgICAgIHJ1blRhc2socGVuZGluZ0lkbGVDYWxsYmFja3Muc2hpZnQoKSk7Ci0gICAgICAgIC8vIENoZWNrIHRpbWVyIGFmdGVyIHJ1bm5pbmcgYXQgbGVhc3Qgb25lIGlkbGUgdGFzayB0byBhdm9pZCBidWdneQotICAgICAgICAvLyB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgb24gc29tZSBwbGF0Zm9ybXMgZnJvbSBibG9ja2luZyB0aGUgaWRsZQotICAgICAgICAvLyB0YXNrIHF1ZXVlLgotICAgICAgICBpZiAod2luZG93LnBlcmZvcm1hbmNlLm5vdygpID49IHJhZkNvbXBsZXRpb25EZWFkbGluZSkKLSAgICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocGVuZGluZ0lkbGVDYWxsYmFja3MubGVuZ3RoID4gMCkKLSAgICAgIHNjaGVkdWxlUkFGKCk7Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRTdGFja18oKSB7Ci0gICAgaWYgKCFyZWNvcmRSQUZTdGFja3MpCi0gICAgICByZXR1cm4gJyc7Ci0KLSAgICB2YXIgc3RhY2tMaW5lcyA9IHRyLmIuc3RhY2tUcmFjZSgpOwotICAgIC8vIFN0cmlwIG9mZiBnZXRTdGFja18uCi0gICAgc3RhY2tMaW5lcy5zaGlmdCgpOwotICAgIHJldHVybiBzdGFja0xpbmVzLmpvaW4oJ1xuJyk7Ci0gIH0KLQotICBmdW5jdGlvbiByZXF1ZXN0UHJlQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgcGVuZGluZ1ByZUFGcy5wdXNoKHsKLSAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaywKLSAgICAgIGNvbnRleHQ6IG9wdF90aGlzIHx8IHdpbmRvdywKLSAgICAgIHN0YWNrOiBnZXRTdGFja18oKX0pOwotICAgIHNjaGVkdWxlUkFGKCk7Ci0gIH0KLQotICBmdW5jdGlvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUoY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgaWYgKCFjdXJyZW50UkFGRGlzcGF0Y2hMaXN0KSB7Ci0gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2ssIG9wdF90aGlzKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY3VycmVudFJBRkRpc3BhdGNoTGlzdC5wdXNoKHsKLSAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaywKLSAgICAgIGNvbnRleHQ6IG9wdF90aGlzIHx8IHdpbmRvdywKLSAgICAgIHN0YWNrOiBnZXRTdGFja18oKX0pOwotICAgIHJldHVybjsKLSAgfQotCi0gIGZ1bmN0aW9uIHJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICBwZW5kaW5nUkFGcy5wdXNoKHsKLSAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaywKLSAgICAgIGNvbnRleHQ6IG9wdF90aGlzIHx8IHdpbmRvdywKLSAgICAgIHN0YWNrOiBnZXRTdGFja18oKX0pOwotICAgIHNjaGVkdWxlUkFGKCk7Ci0gIH0KLQotICBmdW5jdGlvbiByZXF1ZXN0SWRsZUNhbGxiYWNrKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgIHBlbmRpbmdJZGxlQ2FsbGJhY2tzLnB1c2goewotICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLAotICAgICAgY29udGV4dDogb3B0X3RoaXMgfHwgd2luZG93LAotICAgICAgc3RhY2s6IGdldFN0YWNrXygpfSk7Ci0gICAgc2NoZWR1bGVSQUYoKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oZnJhbWVCZWdpblRpbWUpIHsKLSAgICBpZiAoIXJhZlNjaGVkdWxlZCkKLSAgICAgIHJldHVybjsKLSAgICBwcm9jZXNzUmVxdWVzdHMoZnJhbWVCZWdpblRpbWUpOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBvbkFuaW1hdGlvbkZyYW1lRXJyb3I6IG9uQW5pbWF0aW9uRnJhbWVFcnJvciwKLSAgICByZXF1ZXN0UHJlQW5pbWF0aW9uRnJhbWU6IHJlcXVlc3RQcmVBbmltYXRpb25GcmFtZSwKLSAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWU6IHJlcXVlc3RBbmltYXRpb25GcmFtZSwKLSAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGU6Ci0gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUluVGhpc0ZyYW1lSWZQb3NzaWJsZSwKLSAgICByZXF1ZXN0SWRsZUNhbGxiYWNrOiByZXF1ZXN0SWRsZUNhbGxiYWNrLAotICAgIGZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW46IGZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4KLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcmFmX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYWZfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDEwYzA2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYWZfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgZmFrZU5vdyA9IHVuZGVmaW5lZDsKLSAgZnVuY3Rpb24gd2l0aEZha2VXaW5kb3dQZXJmb3JtYW5jZU5vdyhmdW5jKSB7Ci0gICAgdmFyIG9sZE5vdyA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3c7Ci0gICAgdHJ5IHsKLSAgICAgIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3cgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGZha2VOb3c7IH07Ci0gICAgICBmdW5jKCk7Ci0gICAgfSBmaW5hbGx5IHsKLSAgICAgIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3cgPSBvbGROb3c7Ci0gICAgfQotICB9Ci0KLSAgdGVzdCgncnVuSWRsZVRhc2tXaGlsZUlkbGUnLCBmdW5jdGlvbigpIHsKLSAgICB3aXRoRmFrZVdpbmRvd1BlcmZvcm1hbmNlTm93KGZ1bmN0aW9uKCkgewotICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDEwMDAwMCk7ICAvLyBDbGVhciBjdXJyZW50IFJBRiB0YXNrIHF1ZXVlLgotCi0gICAgICB2YXIgcmFmUmFuID0gZmFsc2U7Ci0gICAgICB0ci5iLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKLSAgICAgICAgcmFmUmFuID0gdHJ1ZTsKLSAgICAgIH0pOwotICAgICAgdmFyIGlkbGVSYW4gPSBmYWxzZTsKLSAgICAgIHRyLmIucmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpIHsKLSAgICAgICAgaWRsZVJhbiA9IHRydWU7Ci0gICAgICB9KTsKLSAgICAgIGZha2VOb3cgPSAwOwotICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKGZha2VOb3cpOwotICAgICAgYXNzZXJ0LmlzRmFsc2UoaWRsZVJhbik7Ci0gICAgICBhc3NlcnQuaXNUcnVlKHJhZlJhbik7Ci0gICAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oZmFrZU5vdyk7Ci0gICAgICBhc3NlcnQuaXNUcnVlKGlkbGVSYW4pOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCd0d29TaG9ydElkbGVDYWxsYmFja3MnLCBmdW5jdGlvbigpIHsKLSAgICB3aXRoRmFrZVdpbmRvd1BlcmZvcm1hbmNlTm93KGZ1bmN0aW9uKCkgewotICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDEwMDAwMCk7ICAvLyBDbGVhciBjdXJyZW50IFJBRiB0YXNrIHF1ZXVlLgotCi0gICAgICB2YXIgaWRsZTFSYW4gPSBmYWxzZTsKLSAgICAgIHZhciBpZGxlMlJhbiA9IGZhbHNlOwotICAgICAgdHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAgICAgICBmYWtlTm93ICs9IDE7Ci0gICAgICAgIGlkbGUxUmFuID0gdHJ1ZTsKLSAgICAgIH0pOwotICAgICAgdHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAgICAgICBmYWtlTm93ICs9IDE7Ci0gICAgICAgIGlkbGUyUmFuID0gdHJ1ZTsKLSAgICAgIH0pOwotICAgICAgZmFrZU5vdyA9IDA7Ci0gICAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oZmFrZU5vdyk7Ci0gICAgICBhc3NlcnQuaXNUcnVlKGlkbGUxUmFuKTsKLSAgICAgIGFzc2VydC5pc1RydWUoaWRsZTJSYW4pOwotICAgIH0pOwotICB9KTsKLQotCi0gIHRlc3QoJ29uZUxvbmdPbmVTaG9ydElkbGVDYWxsYmFjaycsIGZ1bmN0aW9uKCkgewotICAgIHdpdGhGYWtlV2luZG93UGVyZm9ybWFuY2VOb3coZnVuY3Rpb24oKSB7Ci0gICAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oMTAwMDAwKTsgIC8vIENsZWFyIGN1cnJlbnQgUkFGIHRhc2sgcXVldWUuCi0KLSAgICAgIHZhciBpZGxlMVJhbiA9IGZhbHNlOwotICAgICAgdmFyIGlkbGUyUmFuID0gZmFsc2U7Ci0gICAgICB0ci5iLnJlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKSB7Ci0gICAgICAgIGZha2VOb3cgKz0gMTAwOwotICAgICAgICBpZGxlMVJhbiA9IHRydWU7Ci0gICAgICB9KTsKLSAgICAgIHRyLmIucmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpIHsKLSAgICAgICAgZmFrZU5vdyArPSAxOwotICAgICAgICBpZGxlMlJhbiA9IHRydWU7Ci0gICAgICB9KTsKLSAgICAgIGZha2VOb3cgPSAwOwotICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKGZha2VOb3cpOwotICAgICAgYXNzZXJ0LmlzVHJ1ZShpZGxlMVJhbik7Ci0gICAgICBhc3NlcnQuaXNGYWxzZShpZGxlMlJhbik7Ci0KLSAgICAgIC8vIFJlc2V0IGlkbGUxUmFuIHRvIHZlcmlmeSB0aGF0IGl0IGRvc24ndCBydW4gYWdhaW4uCi0gICAgICBpZGxlMVJhbiA9IGZhbHNlOwotCi0gICAgICAvLyBOb3cgcnVuLiBpZGxlMiBzaG91bGQgbm93IHJ1bi4KLSAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bihmYWtlTm93KTsKLSAgICAgIGFzc2VydC5pc0ZhbHNlKGlkbGUxUmFuKTsKLSAgICAgIGFzc2VydC5pc1RydWUoaWRsZTJSYW4pOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCdidWdneVBlcmZvcm1hbmNlTm93RG9lc05vdEJsb2NrSWRsZVRhc2tzJywgZnVuY3Rpb24oKSB7Ci0gICAgd2l0aEZha2VXaW5kb3dQZXJmb3JtYW5jZU5vdyhmdW5jdGlvbigpIHsKLSAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigpOyAgLy8gQ2xlYXIgY3VycmVudCBSQUYgdGFzayBxdWV1ZS4KLQotICAgICAgdmFyIGlkbGUxUmFuID0gZmFsc2U7Ci0gICAgICB2YXIgaWRsZTJSYW4gPSBmYWxzZTsKLSAgICAgIHRyLmIucmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpIHsKLSAgICAgICAgZmFrZU5vdyArPSAxMDA7Ci0gICAgICAgIGlkbGUxUmFuID0gdHJ1ZTsKLSAgICAgIH0pOwotICAgICAgdHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAgICAgICBmYWtlTm93ICs9IDE7Ci0gICAgICAgIGlkbGUyUmFuID0gdHJ1ZTsKLSAgICAgIH0pOwotICAgICAgZmFrZU5vdyA9IDEwMDAwOwotICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDApOwotICAgICAgYXNzZXJ0LmlzVHJ1ZShpZGxlMVJhbik7Ci0gICAgICBhc3NlcnQuaXNGYWxzZShpZGxlMlJhbik7Ci0KLSAgICAgIC8vIFJlc2V0IGlkbGUxUmFuIHRvIHZlcmlmeSB0aGF0IGl0IGRvc24ndCBydW4gYWdhaW4uCi0gICAgICBpZGxlMVJhbiA9IGZhbHNlOwotCi0gICAgICAvLyBOb3cgcnVuLiBpZGxlMiBzaG91bGQgbm93IHJ1bi4KLSAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigwKTsKLSAgICAgIGFzc2VydC5pc0ZhbHNlKGlkbGUxUmFuKTsKLSAgICAgIGFzc2VydC5pc1RydWUoaWRsZTJSYW4pOwotICAgIH0pOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYW5nZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3JhbmdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlZTEyODUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3JhbmdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBRdWljayByYW5nZSBjb21wdXRhdGlvbnMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7Ci0KLSAgZnVuY3Rpb24gUmFuZ2UoKSB7Ci0gICAgdGhpcy5pc0VtcHR5XyA9IHRydWU7Ci0gICAgdGhpcy5taW5fID0gdW5kZWZpbmVkOwotICAgIHRoaXMubWF4XyA9IHVuZGVmaW5lZDsKLSAgfTsKLQotICBSYW5nZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBPYmplY3QucHJvdG90eXBlLAotCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5pc0VtcHR5XyA9IHRydWU7Ci0gICAgICB0aGlzLm1pbl8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLm1heF8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBpc0VtcHR5KCkgewotICAgICAgcmV0dXJuIHRoaXMuaXNFbXB0eV87Ci0gICAgfSwKLQotICAgIGFkZFJhbmdlOiBmdW5jdGlvbihyYW5nZSkgewotICAgICAgaWYgKHJhbmdlLmlzRW1wdHkpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuYWRkVmFsdWUocmFuZ2UubWluKTsKLSAgICAgIHRoaXMuYWRkVmFsdWUocmFuZ2UubWF4KTsKLSAgICB9LAotCi0gICAgYWRkVmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICBpZiAodGhpcy5pc0VtcHR5XykgewotICAgICAgICB0aGlzLm1heF8gPSB2YWx1ZTsKLSAgICAgICAgdGhpcy5taW5fID0gdmFsdWU7Ci0gICAgICAgIHRoaXMuaXNFbXB0eV8gPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgdGhpcy5tYXhfID0gTWF0aC5tYXgodGhpcy5tYXhfLCB2YWx1ZSk7Ci0gICAgICB0aGlzLm1pbl8gPSBNYXRoLm1pbih0aGlzLm1pbl8sIHZhbHVlKTsKLSAgICB9LAotCi0gICAgc2V0IG1pbihtaW4pIHsKLSAgICAgIHRoaXMuaXNFbXB0eV8gPSBmYWxzZTsKLSAgICAgIHRoaXMubWluXyA9IG1pbjsKLSAgICB9LAotCi0gICAgZ2V0IG1pbigpIHsKLSAgICAgIGlmICh0aGlzLmlzRW1wdHlfKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIHRoaXMubWluXzsKLSAgICB9LAotCi0gICAgZ2V0IG1heCgpIHsKLSAgICAgIGlmICh0aGlzLmlzRW1wdHlfKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIHRoaXMubWF4XzsKLSAgICB9LAotCi0gICAgc2V0IG1heChtYXgpIHsKLSAgICAgIHRoaXMuaXNFbXB0eV8gPSBmYWxzZTsKLSAgICAgIHRoaXMubWF4XyA9IG1heDsKLSAgICB9LAotCi0gICAgZ2V0IHJhbmdlKCkgewotICAgICAgaWYgKHRoaXMuaXNFbXB0eV8pCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gdGhpcy5tYXhfIC0gdGhpcy5taW5fOwotICAgIH0sCi0KLSAgICBnZXQgY2VudGVyKCkgewotICAgICAgcmV0dXJuICh0aGlzLm1pbl8gKyB0aGlzLm1heF8pICogMC41OwotICAgIH0sCi0KLSAgICBlcXVhbHM6IGZ1bmN0aW9uKHRoYXQpIHsKLSAgICAgIGlmICh0aGlzLmlzRW1wdHkgJiYgdGhhdC5pc0VtcHR5KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIGlmICh0aGlzLmlzRW1wdHkgIT0gdGhhdC5pc0VtcHR5KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICByZXR1cm4gdGhpcy5taW4gPT09IHRoYXQubWluICYmCi0gICAgICAgICAgdGhpcy5tYXggPT09IHRoYXQubWF4OwotICAgIH0sCi0KLSAgICBjb250YWluc1JhbmdlOiBmdW5jdGlvbihyYW5nZSkgewotICAgICAgaWYgKHRoaXMuaXNFbXB0eSB8fCByYW5nZS5pc0VtcHR5KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICByZXR1cm4gdGhpcy5taW4gPD0gcmFuZ2UubWluICYmIHRoaXMubWF4ID49IHJhbmdlLm1heDsKLSAgICB9LAotCi0gICAgY29udGFpbnNFeHBsaWNpdFJhbmdlOiBmdW5jdGlvbihtaW4sIG1heCkgewotICAgICAgaWYgKHRoaXMuaXNFbXB0eSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgcmV0dXJuIHRoaXMubWluIDw9IG1pbiAmJiB0aGlzLm1heCA+PSBtYXg7Ci0gICAgfSwKLQotICAgIGludGVyc2VjdHNSYW5nZTogZnVuY3Rpb24ocmFuZ2UpIHsKLSAgICAgIGlmICh0aGlzLmlzRW1wdHkgfHwgcmFuZ2UuaXNFbXB0eSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgcmV0dXJuICEocmFuZ2UubWF4IDwgdGhpcy5taW4gfHwKLSAgICAgICAgICAgICAgIHJhbmdlLm1pbiA+IHRoaXMubWF4KTsKLSAgICB9LAotCi0gICAgaW50ZXJzZWN0c0V4cGxpY2l0UmFuZ2U6IGZ1bmN0aW9uKG1pbiwgbWF4KSB7Ci0gICAgICBpZiAodGhpcy5pc0VtcHR5KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICByZXR1cm4gIShtYXggPCB0aGlzLm1pbiB8fAotICAgICAgICAgICAgICAgbWluID4gdGhpcy5tYXgpOwotICAgIH0KLSAgfTsKLQotICBSYW5nZS5mcm9tRXhwbGljaXRSYW5nZSA9IGZ1bmN0aW9uKG1pbiwgbWF4KSB7Ci0gICAgdmFyIHJhbmdlID0gbmV3IFJhbmdlKCk7Ci0gICAgcmFuZ2UubWluID0gbWluOwotICAgIHJhbmdlLm1heCA9IG1heDsKLSAgICByZXR1cm4gcmFuZ2U7Ci0gIH07Ci0KLSAgUmFuZ2UuY29tcGFyZUJ5TWluVGltZXMgPSBmdW5jdGlvbihhLCBiKSB7Ci0gICAgaWYgKCFhLmlzRW1wdHkgJiYgIWIuaXNFbXB0eSkKLSAgICAgIHJldHVybiBhLm1pbl8gLSBiLm1pbl87Ci0KLSAgICBpZiAoYS5pc0VtcHR5ICYmICFiLmlzRW1wdHkpCi0gICAgICByZXR1cm4gLTE7Ci0KLSAgICBpZiAoIWEuaXNFbXB0eSAmJiBiLmlzRW1wdHkpCi0gICAgICByZXR1cm4gMTsKLQotICAgIHJldHVybiAwOwotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUmFuZ2U6IFJhbmdlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3JhbmdlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYW5nZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNjkwZTEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3JhbmdlX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2FkZFZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHJhbmdlID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICBhc3NlcnQuaXNUcnVlKHJhbmdlLmlzRW1wdHkpOwotICAgIHJhbmdlLmFkZFZhbHVlKDEpOwotICAgIGFzc2VydC5pc0ZhbHNlKHJhbmdlLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbCgxLCByYW5nZS5taW4pOwotICAgIGFzc2VydC5lcXVhbCgxLCByYW5nZS5tYXgpOwotCi0gICAgcmFuZ2UuYWRkVmFsdWUoMik7Ci0gICAgYXNzZXJ0LmlzRmFsc2UocmFuZ2UuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIHJhbmdlLm1pbik7Ci0gICAgYXNzZXJ0LmVxdWFsKDIsIHJhbmdlLm1heCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2FkZE5vbkVtcHR5UmFuZ2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcjEgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgIHIxLmFkZFZhbHVlKDEpOwotICAgIHIxLmFkZFZhbHVlKDIpOwotCi0gICAgdmFyIHIgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgIHIuYWRkUmFuZ2UocjEpOwotICAgIGFzc2VydC5lcXVhbCgxLCByLm1pbik7Ci0gICAgYXNzZXJ0LmVxdWFsKDIsIHIubWF4KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYWRkRW1wdHlSYW5nZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciByMSA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0KLSAgICB2YXIgciA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgci5hZGRSYW5nZShyMSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShyLmlzRW1wdHkpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChyLm1pbik7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHIubWF4KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYWRkUmFuZ2VUb1JhbmdlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHIxID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICByMS5hZGRWYWx1ZSgxKTsKLSAgICByMS5hZGRWYWx1ZSgyKTsKLQotICAgIHZhciByID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICByLmFkZFZhbHVlKDMpOwotICAgIHIuYWRkUmFuZ2UocjEpOwotCi0gICAgYXNzZXJ0LmlzRmFsc2Uoci5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoMSwgci5taW4pOwotICAgIGFzc2VydC5lcXVhbCgzLCByLm1heCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYW5nZV91dGlscy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3JhbmdlX3V0aWxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyNjFiNDEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3JhbmdlX3V0aWxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyBldmVudCBtZXJnaW5nIGZ1bmN0aW9uYWxpdHkgZm9yIGdyb3VwaW5nL2FuYWx5c2lzLgotICovCi10ci5leHBvcnRUbygndHIuZS5hdWRpdHMnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gbWVyZ2VSYW5nZXMoaW5SYW5nZXMsIG1lcmdlVGhyZXNob2xkLCBtZXJnZUZ1bmN0aW9uKSB7Ci0gICAgcmV0dXJuIG1lcmdlRXhwbGljaXRSYW5nZXMoaW5SYW5nZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VUaHJlc2hvbGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VGdW5jdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihyKSB7IHJldHVybiByLm1pbjsgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihyKSB7IHJldHVybiByLm1heDsgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBtZXJnZUV4cGxpY2l0UmFuZ2VzKGluUmFuZ2VzLCBtZXJnZVRocmVzaG9sZCwgbWVyZ2VGdW5jdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgb3B0X3N0YXJ0RnVuY3Rpb24sIG9wdF9lbmRGdW5jdGlvbikgewotICAgIHZhciBzdGFydEZ1bmN0aW9uID0gb3B0X3N0YXJ0RnVuY3Rpb247Ci0gICAgdmFyIGVuZEZ1bmN0aW9uID0gb3B0X2VuZEZ1bmN0aW9uOwotICAgIGlmICghc3RhcnRGdW5jdGlvbikKLSAgICAgIHN0YXJ0RnVuY3Rpb24gPSBmdW5jdGlvbihldmVudCkgeyByZXR1cm4gZXZlbnQuc3RhcnQ7IH07Ci0gICAgaWYgKCFlbmRGdW5jdGlvbikKLSAgICAgIGVuZEZ1bmN0aW9uID0gZnVuY3Rpb24oZXZlbnQpIHsgcmV0dXJuIGV2ZW50LmVuZDsgfTsKLQotICAgIHZhciByZW1haW5pbmdFdmVudHMgPSBpblJhbmdlcy5zbGljZSgpOwotICAgIHJlbWFpbmluZ0V2ZW50cy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKLSAgICAgIHJldHVybiBzdGFydEZ1bmN0aW9uKHgpIC0gc3RhcnRGdW5jdGlvbih5KTsKLSAgICB9KTsKLQotICAgIGlmIChyZW1haW5pbmdFdmVudHMubGVuZ3RoIDw9IDEpIHsKLSAgICAgIHZhciBtZXJnZWQgPSBbXTsKLSAgICAgIGlmIChyZW1haW5pbmdFdmVudHMubGVuZ3RoID09IDEpIHsKLSAgICAgICAgbWVyZ2VkLnB1c2gobWVyZ2VGdW5jdGlvbihyZW1haW5pbmdFdmVudHMpKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZXJnZWQ7Ci0gICAgfQotCi0gICAgdmFyIG1lcmdlZEV2ZW50cyA9IFtdOwotCi0gICAgdmFyIGN1cnJlbnRNZXJnZUJ1ZmZlciA9IFtdOwotICAgIHZhciByaWdodEVkZ2U7Ci0gICAgZnVuY3Rpb24gYmVnaW5NZXJnaW5nKCkgewotICAgICAgY3VycmVudE1lcmdlQnVmZmVyLnB1c2gocmVtYWluaW5nRXZlbnRzWzBdKTsKLSAgICAgIHJlbWFpbmluZ0V2ZW50cy5zcGxpY2UoMCwgMSk7Ci0gICAgICByaWdodEVkZ2UgPSBlbmRGdW5jdGlvbihjdXJyZW50TWVyZ2VCdWZmZXJbMF0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZsdXNoQ3VycmVudE1lcmdlQnVmZmVyKCkgewotICAgICAgaWYgKGN1cnJlbnRNZXJnZUJ1ZmZlci5sZW5ndGggPT0gMCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBtZXJnZWRFdmVudHMucHVzaChtZXJnZUZ1bmN0aW9uKGN1cnJlbnRNZXJnZUJ1ZmZlcikpOwotICAgICAgY3VycmVudE1lcmdlQnVmZmVyID0gW107Ci0KLSAgICAgIC8vIFJlZmlsbCBtZXJnZSBidWZmZXIgaWYgbmVlZGVkLgotICAgICAgaWYgKHJlbWFpbmluZ0V2ZW50cy5sZW5ndGggIT0gMCkKLSAgICAgICAgYmVnaW5NZXJnaW5nKCk7Ci0gICAgfQotCi0gICAgYmVnaW5NZXJnaW5nKCk7Ci0KLSAgICB3aGlsZSAocmVtYWluaW5nRXZlbnRzLmxlbmd0aCkgewotICAgICAgdmFyIGN1cnJlbnRFdmVudCA9IHJlbWFpbmluZ0V2ZW50c1swXTsKLQotICAgICAgdmFyIGRpc3RhbmNlRnJvbVJpZ2h0RWRnZSA9IHN0YXJ0RnVuY3Rpb24oY3VycmVudEV2ZW50KSAtIHJpZ2h0RWRnZTsKLSAgICAgIGlmIChkaXN0YW5jZUZyb21SaWdodEVkZ2UgPCBtZXJnZVRocmVzaG9sZCkgewotICAgICAgICByaWdodEVkZ2UgPSBNYXRoLm1heChyaWdodEVkZ2UsIGVuZEZ1bmN0aW9uKGN1cnJlbnRFdmVudCkpOwotICAgICAgICByZW1haW5pbmdFdmVudHMuc3BsaWNlKDAsIDEpOwotICAgICAgICBjdXJyZW50TWVyZ2VCdWZmZXIucHVzaChjdXJyZW50RXZlbnQpOwotICAgICAgICBjb250aW51ZTsKLSAgICAgIH0KLQotICAgICAgLy8gVG9vIGJpZyBhIGdhcC4KLSAgICAgIGZsdXNoQ3VycmVudE1lcmdlQnVmZmVyKCk7Ci0gICAgfQotICAgIGZsdXNoQ3VycmVudE1lcmdlQnVmZmVyKCk7Ci0KLSAgICByZXR1cm4gbWVyZ2VkRXZlbnRzOwotICB9Ci0KLSAgLy8gJ29wdF90b3RhbFJhbmdlJyBhbGxvd3MgY2FwdHVyaW5nIGFuIGVtcHR5IHJhbmdlIGJlZm9yZSB0aGUgZmlyc3Qgb2YKLSAgLy8gJ2luUmFuZ2VzJyBhbmQgYWZ0ZXIgdGhlIGxhc3Qgb2YgJ2luUmFuZ2VzJy4KLSAgZnVuY3Rpb24gZmluZEVtcHR5UmFuZ2VzQmV0d2VlbkV4cGxpY2l0UmFuZ2VzKAotICAgICAgaW5SYW5nZXMsIG9wdF90b3RhbFJhbmdlLCBvcHRfc3RhcnRGdW5jdGlvbiwgb3B0X2VuZEZ1bmN0aW9uKSB7Ci0gICAgdmFyIHN0YXJ0RnVuY3Rpb24gPSBvcHRfc3RhcnRGdW5jdGlvbjsKLSAgICBpZiAoIXN0YXJ0RnVuY3Rpb24pCi0gICAgICBzdGFydEZ1bmN0aW9uID0gZnVuY3Rpb24ocmFuZ2UpIHsgcmV0dXJuIHJhbmdlLnN0YXJ0OyB9OwotICAgIHZhciBlbmRGdW5jdGlvbiA9IG9wdF9lbmRGdW5jdGlvbjsKLSAgICBpZiAoIWVuZEZ1bmN0aW9uKQotICAgICAgZW5kRnVuY3Rpb24gPSBmdW5jdGlvbihyYW5nZSkgeyByZXR1cm4gcmFuZ2UuZW5kOyB9OwotCi0gICAgdmFyIGVtcHR5UmFuZ2VzID0gW107Ci0gICAgaWYgKCFpblJhbmdlcy5sZW5ndGgpIHsKLSAgICAgIGlmIChvcHRfdG90YWxSYW5nZSkgewotICAgICAgICBlbXB0eVJhbmdlcy5wdXNoKHRyLmIuUmFuZ2UuZnJvbUV4cGxpY2l0UmFuZ2UoCi0gICAgICAgICAgICBzdGFydEZ1bmN0aW9uKG9wdF90b3RhbFJhbmdlKSwgZW5kRnVuY3Rpb24ob3B0X3RvdGFsUmFuZ2UpKSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gZW1wdHlSYW5nZXM7Ci0gICAgfQotCi0gICAgaW5SYW5nZXMgPSBpblJhbmdlcy5zbGljZSgpOwotICAgIGluUmFuZ2VzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgcmV0dXJuIHN0YXJ0RnVuY3Rpb24oeCkgLSBzdGFydEZ1bmN0aW9uKHkpOwotICAgIH0pOwotICAgIGlmIChvcHRfdG90YWxSYW5nZSAmJgotICAgICAgICAoc3RhcnRGdW5jdGlvbihvcHRfdG90YWxSYW5nZSkgPCBzdGFydEZ1bmN0aW9uKGluUmFuZ2VzWzBdKSkpIHsKLSAgICAgIGVtcHR5UmFuZ2VzLnB1c2godHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZSgKLSAgICAgICAgICBzdGFydEZ1bmN0aW9uKG9wdF90b3RhbFJhbmdlKSwgc3RhcnRGdW5jdGlvbihpblJhbmdlc1swXSkpKTsKLSAgICB9Ci0KLSAgICBpblJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uKHJhbmdlLCBpbmRleCkgewotICAgICAgZm9yICh2YXIgb3RoZXJJbmRleCA9IDA7IG90aGVySW5kZXggPCBpblJhbmdlcy5sZW5ndGg7ICsrb3RoZXJJbmRleCkgewotICAgICAgICBpZiAoaW5kZXggPT09IG90aGVySW5kZXgpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHZhciBvdGhlciA9IGluUmFuZ2VzW290aGVySW5kZXhdOwotCi0gICAgICAgIGlmIChzdGFydEZ1bmN0aW9uKG90aGVyKSA+IGVuZEZ1bmN0aW9uKHJhbmdlKSkgewotICAgICAgICAgIC8vICdpblJhbmdlcycgaXMgc29ydGVkLCBzbyAnb3RoZXInIGlzIHRoZSBmaXJzdCByYW5nZSBhZnRlciAncmFuZ2UnLAotICAgICAgICAgIC8vIGFuZCB0aGVyZSBpcyBhbiBlbXB0eSByYW5nZSBiZXR3ZWVuIHRoZW0uCi0gICAgICAgICAgZW1wdHlSYW5nZXMucHVzaCh0ci5iLlJhbmdlLmZyb21FeHBsaWNpdFJhbmdlKAotICAgICAgICAgICAgICBlbmRGdW5jdGlvbihyYW5nZSksIHN0YXJ0RnVuY3Rpb24ob3RoZXIpKSk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIE90aGVyd2lzZSwgJ290aGVyJyBzdGFydHMgYmVmb3JlICdyYW5nZScgZW5kcywgc28gJ290aGVyJyBtaWdodAotICAgICAgICAvLyBwb3NzaWJseSBjb250YWluIHRoZSBlbmQgb2YgJ3JhbmdlJy4KLQotICAgICAgICBpZiAoZW5kRnVuY3Rpb24ob3RoZXIpID4gZW5kRnVuY3Rpb24ocmFuZ2UpKSB7Ci0gICAgICAgICAgLy8gJ290aGVyJyBkb2VzIGNvbnRhaW4gdGhlIGVuZCBvZiAncmFuZ2UnLCBzbyBubyBlbXB0eSByYW5nZSBzdGFydHMKLSAgICAgICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoaXMgJ3JhbmdlJy4KLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChvcHRfdG90YWxSYW5nZSAmJgotICAgICAgICAgIChlbmRGdW5jdGlvbihyYW5nZSkgPCBlbmRGdW5jdGlvbihvcHRfdG90YWxSYW5nZSkpKSB7Ci0gICAgICAgIGVtcHR5UmFuZ2VzLnB1c2godHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZSgKLSAgICAgICAgICAgIGVuZEZ1bmN0aW9uKHJhbmdlKSwgZW5kRnVuY3Rpb24ob3B0X3RvdGFsUmFuZ2UpKSk7Ci0gICAgICB9Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGVtcHR5UmFuZ2VzOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBmaW5kRW1wdHlSYW5nZXNCZXR3ZWVuRXhwbGljaXRSYW5nZXM6IGZpbmRFbXB0eVJhbmdlc0JldHdlZW5FeHBsaWNpdFJhbmdlcywKLSAgICBtZXJnZUV4cGxpY2l0UmFuZ2VzOiBtZXJnZUV4cGxpY2l0UmFuZ2VzLAotICAgIG1lcmdlUmFuZ2VzOiBtZXJnZVJhbmdlcwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYW5nZV91dGlsc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcmFuZ2VfdXRpbHNfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjRlNTdhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yYW5nZV91dGlsc190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZV91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gc2ltcGxlTWVyZ2VyKGV2ZW50cykgewotICAgIHJldHVybiB7Ci0gICAgICBzdGFydDogZXZlbnRzWzBdLnN0YXJ0LAotICAgICAgZW5kOiBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLmVuZAotICAgIH07Ci0gIH0KLSAgdGVzdCgnc2ltcGxlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGluRXZlbnRzID0gWwotICAgICAge3N0YXJ0OiAwLCBlbmQ6IDEwMH0sCi0gICAgICB7c3RhcnQ6IDEwMCwgZW5kOiAxMjB9LAotICAgICAge3N0YXJ0OiAyMDAsIGVuZDogMjIwfQotICAgIF07Ci0KLSAgICB2YXIgbWVyZ2VkID0gdHIuZS5hdWRpdHMubWVyZ2VFeHBsaWNpdFJhbmdlcyhpbkV2ZW50cywgNTAsIHNpbXBsZU1lcmdlcik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobWVyZ2VkLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWRbMF0sIHtzdGFydDogMCwgZW5kOiAxMjB9KTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKG1lcmdlZFsxXSwge3N0YXJ0OiAyMDAsIGVuZDogMjIwfSk7Ci0gIH0pOwotCi0gIHRlc3QoJ292ZXJsYXBwaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGluRXZlbnRzID0gWwotICAgICAge3N0YXJ0OiAwLCBlbmQ6IDEwMH0sCi0gICAgICB7c3RhcnQ6IDgwLCBlbmQ6IDEyMH0sCi0gICAgICB7c3RhcnQ6IDIwMCwgZW5kOiAyMjB9Ci0gICAgXTsKLQotICAgIHZhciBtZXJnZWQgPSB0ci5lLmF1ZGl0cy5tZXJnZUV4cGxpY2l0UmFuZ2VzKGluRXZlbnRzLCA1MCwgc2ltcGxlTWVyZ2VyKTsKLQotICAgIGFzc2VydC5lcXVhbChtZXJnZWQubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKG1lcmdlZFswXSwge3N0YXJ0OiAwLCBlbmQ6IDEyMH0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzFdLCB7c3RhcnQ6IDIwMCwgZW5kOiAyMjB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnbWlkZGxlT25lSXNTbWFsbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBpbkV2ZW50cyA9IFsKLSAgICAgIHtzdGFydDogMCwgZW5kOiAxMDB9LAotICAgICAge3N0YXJ0OiA0MCwgZW5kOiA1MH0sCi0gICAgICB7c3RhcnQ6IDEwMCwgZW5kOiAxMjB9Ci0gICAgXTsKLQotICAgIHZhciBtZXJnZWQgPSB0ci5lLmF1ZGl0cy5tZXJnZUV4cGxpY2l0UmFuZ2VzKGluRXZlbnRzLCA1MCwgc2ltcGxlTWVyZ2VyKTsKLQotICAgIGFzc2VydC5lcXVhbChtZXJnZWQubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKG1lcmdlZFswXSwge3N0YXJ0OiAwLCBlbmQ6IDEyMH0pOwotICB9KTsKLQotICB0ZXN0KCdmaXJzdEV2ZW50SXNTcGxpdFBvaW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGluRXZlbnRzID0gWwotICAgICAge3N0YXJ0OiAwLCBlbmQ6IDEwMH0sCi0gICAgICB7c3RhcnQ6IDE1MCwgZW5kOiAyMDB9Ci0gICAgXTsKLQotICAgIHZhciBtZXJnZWQgPSB0ci5lLmF1ZGl0cy5tZXJnZUV4cGxpY2l0UmFuZ2VzKGluRXZlbnRzLCAyNSwgc2ltcGxlTWVyZ2VyKTsKLQotICAgIGFzc2VydC5lcXVhbChtZXJnZWQubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKG1lcmdlZFswXSwge3N0YXJ0OiAwLCBlbmQ6IDEwMH0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzFdLCB7c3RhcnQ6IDE1MCwgZW5kOiAyMDB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnbWVyZ2VTaW5nbGVFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBpbkV2ZW50cyA9IFsKLSAgICAgIHtzdGFydDogMCwgZW5kOiAxMDB9Ci0gICAgXTsKLQotICAgIHZhciBtZXJnZUNvdW50ID0gMDsKLSAgICB0ci5lLmF1ZGl0cy5tZXJnZUV4cGxpY2l0UmFuZ2VzKGluRXZlbnRzLCAyNSwgZnVuY3Rpb24oZXZlbnRzKSB7Ci0gICAgICBhc3NlcnQuZGVlcEVxdWFsKGV2ZW50cywgaW5FdmVudHMpOwotICAgICAgbWVyZ2VDb3VudCsrOwotICAgIH0pOwotICAgIGFzc2VydC5lcXVhbChtZXJnZUNvdW50LCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnemVyb0R1cmF0aW9uU3BsaXQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaW5FdmVudHMgPSBbMCwgMTAsIDIwLCA1MCwgNjBdOwotICAgIHZhciBpZGVudGl0eUZ1bmN0aW9uID0gZnVuY3Rpb24oeCkgewotICAgICAgcmV0dXJuIHg7Ci0gICAgfTsKLSAgICB2YXIgdGltZXN0YW1wTWVyZ2VyID0gZnVuY3Rpb24odGltZXN0YW1wcykgewotICAgICAgY29uc29sZS5sb2codGltZXN0YW1wcyk7Ci0gICAgICByZXR1cm4gewotICAgICAgICBzdGFydDogdGltZXN0YW1wc1swXSwKLSAgICAgICAgZW5kOiB0aW1lc3RhbXBzW3RpbWVzdGFtcHMubGVuZ3RoIC0gMV0KLSAgICAgIH07Ci0gICAgfTsKLSAgICB2YXIgbWVyZ2VkID0gdHIuZS5hdWRpdHMubWVyZ2VFeHBsaWNpdFJhbmdlcyhpbkV2ZW50cywgMTUsIHRpbWVzdGFtcE1lcmdlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHlGdW5jdGlvbiwgaWRlbnRpdHlGdW5jdGlvbik7Ci0gICAgY29uc29sZS5sb2cobWVyZ2VkKTsKLSAgICBhc3NlcnQuZXF1YWwobWVyZ2VkLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWRbMF0sIHtzdGFydDogMCwgZW5kOiAyMH0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzFdLCB7c3RhcnQ6IDUwLCBlbmQ6IDYwfSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ZpbmRFbXB0eVJhbmdlc0JldHdlZW5FeHBsaWNpdFJhbmdlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7c3RhcnQ6IDIsIGVuZDogNH0sCi0gICAgICB7c3RhcnQ6IDEsIGVuZDogM30sCi0gICAgICB7c3RhcnQ6IDYsIGVuZDogOH0KLSAgICBdOwotICAgIHZhciByYW5nZXMgPSB0ci5lLmF1ZGl0cy5maW5kRW1wdHlSYW5nZXNCZXR3ZWVuRXhwbGljaXRSYW5nZXMoCi0gICAgICAgIGV2ZW50cywge3N0YXJ0OiAwLCBlbmQ6IDEwfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKDMsIHJhbmdlcy5sZW5ndGgpOwotICAgIGFzc2VydC5lcXVhbCgwLCByYW5nZXNbMF0ubWluKTsKLSAgICBhc3NlcnQuZXF1YWwoMSwgcmFuZ2VzWzBdLm1heCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDQsIHJhbmdlc1sxXS5taW4pOwotICAgIGFzc2VydC5lcXVhbCg2LCByYW5nZXNbMV0ubWF4KTsKLSAgICBhc3NlcnQuZXF1YWwoOCwgcmFuZ2VzWzJdLm1pbik7Ci0gICAgYXNzZXJ0LmVxdWFsKDEwLCByYW5nZXNbMl0ubWF4KTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZEVtcHR5UmFuZ2VzV2l0aEVtcHR5SW5wdXQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcmFuZ2VzID0gdHIuZS5hdWRpdHMuZmluZEVtcHR5UmFuZ2VzQmV0d2VlbkV4cGxpY2l0UmFuZ2VzKAotICAgICAgICBbXSwge3N0YXJ0OiAwLCBlbmQ6IDEwfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIHJhbmdlcy5sZW5ndGgpOwotICAgIGFzc2VydC5lcXVhbCgwLCByYW5nZXNbMF0ubWluKTsKLSAgICBhc3NlcnQuZXF1YWwoMTAsIHJhbmdlc1swXS5tYXgpOwotCi0gICAgcmFuZ2VzID0gdHIuZS5hdWRpdHMuZmluZEVtcHR5UmFuZ2VzQmV0d2VlbkV4cGxpY2l0UmFuZ2VzKFtdKTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgcmFuZ2VzLmxlbmd0aCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zZXR0aW5ncy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3NldHRpbmdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwYjMyY2UuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3NldHRpbmdzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgU2V0dGluZ3Mgb2JqZWN0LgotICovCi10ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogU2V0dGluZ3MgaXMgYSBzaW1wbGUgd3JhcHBlciBhcm91bmQgbG9jYWwgc3RvcmFnZSwgdG8gbWFrZSBpdCBlYXNpZXIKLSAgICogdG8gdGVzdCBjbGFzc2VzIHRoYXQgaGF2ZSBzZXR0aW5ncy4KLSAgICoKLSAgICogTWF5IGJlIGNhbGxlZCBhcyBuZXcgdHIuYi5TZXR0aW5ncygpIG9yIHNpbXBseSB0ci5iLlNldHRpbmdzKCkKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBTZXR0aW5ncygpIHsKLSAgICByZXR1cm4gU2V0dGluZ3M7Ci0gIH07Ci0KLSAgZG9jdW1lbnQuaGVhZC5hZGRFdmVudExpc3RlbmVyKCd0ci11bml0dGVzdC13aWxsLXJ1bicsIGZ1bmN0aW9uKCkgewotICAgIFNldHRpbmdzLnNldEFsdGVybmF0aXZlU3RvcmFnZUluc3RhbmNlKGdsb2JhbC5zZXNzaW9uU3RvcmFnZSk7Ci0gIH0pOwotCi0gIGZ1bmN0aW9uIFNlc3Npb25TZXR0aW5ncygpIHsKLSAgICByZXR1cm4gU2Vzc2lvblNldHRpbmdzOwotICB9Ci0KLSAgZnVuY3Rpb24gQWRkU3RhdGljU3RvcmFnZUZ1bmN0aW9uc1RvQ2xhc3NfKGlucHV0X2NsYXNzLCBzdG9yYWdlKSB7Ci0gICAgaW5wdXRfY2xhc3Muc3RvcmFnZV8gPSBzdG9yYWdlOwotCi0gICAgLyoqCi0gICAgICogR2V0IHRoZSBzZXR0aW5nIHdpdGggdGhlIGdpdmVuIG5hbWUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBuYW1lIG9mIHRoZSBzZXR0aW5nLgotICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gb3B0X2RlZmF1bHQgVGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vdCBzZXQuCi0gICAgICogQHBhcmFtIHtzdHJpbmc9fSBvcHRfbmFtZXNwYWNlIElmIHNldCwgdGhlIHNldHRpbmcgbmFtZSB3aWxsIGJlIHByZWZpeGVkCi0gICAgICogd2l0aCB0aGlzIG5hbWVzcGFjZSwgZS5nLiAiY2F0ZWdvcmllcy5zZXR0aW5nTmFtZSIuIFRoaXMgaXMgdXNlZnVsIGZvcgotICAgICAqIGEgc2V0IG9mIHJlbGF0ZWQgc2V0dGluZ3MuCi0gICAgICovCi0gICAgaW5wdXRfY2xhc3MuZ2V0ID0gZnVuY3Rpb24oa2V5LCBvcHRfZGVmYXVsdCwgb3B0X25hbWVzcGFjZSkgewotICAgICAga2V5ID0gaW5wdXRfY2xhc3MubmFtZXNwYWNlXyhrZXksIG9wdF9uYW1lc3BhY2UpOwotICAgICAgdmFyIHJhd1ZhbCA9IGlucHV0X2NsYXNzLnN0b3JhZ2VfLmdldEl0ZW0oa2V5KTsKLSAgICAgIGlmIChyYXdWYWwgPT09IG51bGwgfHwgcmF3VmFsID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybiBvcHRfZGVmYXVsdDsKLQotICAgICAgLy8gT2xkIHNldHRpbmdzIHZlcnNpb25zIHVzZWQgdG8gc3RyaW5naWZ5IG9iamVjdHMgaW5zdGVhZCBvZiBwdXR0aW5nIHRoZW0KLSAgICAgIC8vIGludG8gSlNPTi4gSWYgdGhvc2UgYXJlIGVuY291bnRlcmVkLCBwYXJzZSB3aWxsIGZhaWwuIEluIHRoYXQgY2FzZSwKLSAgICAgIC8vICJ1cGdyYWRlIiB0aGUgc2V0dGluZyB0byB0aGUgZGVmYXVsdCB2YWx1ZS4KLSAgICAgIHRyeSB7Ci0gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJhd1ZhbCkudmFsdWU7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGlucHV0X2NsYXNzLnN0b3JhZ2VfLnJlbW92ZUl0ZW0oCi0gICAgICAgICAgICBpbnB1dF9jbGFzcy5uYW1lc3BhY2VfKGtleSwgb3B0X25hbWVzcGFjZSkpOwotICAgICAgICByZXR1cm4gb3B0X2RlZmF1bHQ7Ci0gICAgICB9Ci0gICAgfTsKLQotICAgIC8qKgotICAgICAqIFNldCB0aGUgc2V0dGluZyB3aXRoIHRoZSBnaXZlbiBuYW1lIHRvIHRoZSBnaXZlbiB2YWx1ZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIG5hbWUgb2YgdGhlIHNldHRpbmcuCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgc2V0dGluZy4KLSAgICAgKiBAcGFyYW0ge3N0cmluZz19IG9wdF9uYW1lc3BhY2UgSWYgc2V0LCB0aGUgc2V0dGluZyBuYW1lIHdpbGwgYmUgcHJlZml4ZWQKLSAgICAgKiB3aXRoIHRoaXMgbmFtZXNwYWNlLCBlLmcuICJjYXRlZ29yaWVzLnNldHRpbmdOYW1lIi4gVGhpcyBpcyB1c2VmdWwgZm9yCi0gICAgICogYSBzZXQgb2YgcmVsYXRlZCBzZXR0aW5ncy4KLSAgICAgKi8KLSAgICBpbnB1dF9jbGFzcy5zZXQgPSBmdW5jdGlvbihrZXksIHZhbHVlLCBvcHRfbmFtZXNwYWNlKSB7Ci0gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXR0aW5ncy5zZXQ6IHZhbHVlIG11c3Qgbm90IGJlIHVuZGVmaW5lZCcpOwotICAgICAgdmFyIHYgPSBKU09OLnN0cmluZ2lmeSh7dmFsdWU6IHZhbHVlfSk7Ci0gICAgICBpbnB1dF9jbGFzcy5zdG9yYWdlXy5zZXRJdGVtKAotICAgICAgICAgIGlucHV0X2NsYXNzLm5hbWVzcGFjZV8oa2V5LCBvcHRfbmFtZXNwYWNlKSwgdik7Ci0gICAgfTsKLQotICAgIC8qKgotICAgICAqIFJldHVybiBhIGxpc3Qgb2YgYWxsIHRoZSBrZXlzLCBvciBhbGwgdGhlIGtleXMgaW4gdGhlIGdpdmVuIG5hbWVzcGFjZQotICAgICAqIGlmIG9uZSBpcyBwcm92aWRlZC4KLSAgICAgKgotICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gb3B0X25hbWVzcGFjZSBJZiBzZXQsIG9ubHkgcmV0dXJuIHNldHRpbmdzIHdoaWNoCi0gICAgICogYmVnaW4gd2l0aCB0aGlzIHByZWZpeC4KLSAgICAgKi8KLSAgICBpbnB1dF9jbGFzcy5rZXlzID0gZnVuY3Rpb24ob3B0X25hbWVzcGFjZSkgewotICAgICAgdmFyIHJlc3VsdCA9IFtdOwotICAgICAgb3B0X25hbWVzcGFjZSA9IG9wdF9uYW1lc3BhY2UgfHwgJyc7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0X2NsYXNzLnN0b3JhZ2VfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBrZXkgPSBpbnB1dF9jbGFzcy5zdG9yYWdlXy5rZXkoaSk7Ci0gICAgICAgIGlmIChpbnB1dF9jbGFzcy5pc25hbWVzcGFjZWRfKGtleSwgb3B0X25hbWVzcGFjZSkpCi0gICAgICAgICAgcmVzdWx0LnB1c2goaW5wdXRfY2xhc3MudW5uYW1lc3BhY2VfKGtleSwgb3B0X25hbWVzcGFjZSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9OwotCi0gICAgaW5wdXRfY2xhc3MuaXNuYW1lc3BhY2VkXyA9IGZ1bmN0aW9uKGtleSwgb3B0X25hbWVzcGFjZSkgewotICAgICAgcmV0dXJuIGtleS5pbmRleE9mKGlucHV0X2NsYXNzLm5vcm1hbGl6ZV8ob3B0X25hbWVzcGFjZSkpID09IDA7Ci0gICAgfTsKLQotICAgIGlucHV0X2NsYXNzLm5hbWVzcGFjZV8gPSBmdW5jdGlvbihrZXksIG9wdF9uYW1lc3BhY2UpIHsKLSAgICAgIHJldHVybiBpbnB1dF9jbGFzcy5ub3JtYWxpemVfKG9wdF9uYW1lc3BhY2UpICsga2V5OwotICAgIH07Ci0KLSAgICBpbnB1dF9jbGFzcy51bm5hbWVzcGFjZV8gPSBmdW5jdGlvbihrZXksIG9wdF9uYW1lc3BhY2UpIHsKLSAgICAgIHJldHVybiBrZXkucmVwbGFjZShpbnB1dF9jbGFzcy5ub3JtYWxpemVfKG9wdF9uYW1lc3BhY2UpLCAnJyk7Ci0gICAgfTsKLQotICAgIC8qKgotICAgICAqIEFsbCBzZXR0aW5ncyBhcmUgcHJlZml4ZWQgd2l0aCBhIGdsb2JhbCBuYW1lc3BhY2UgdG8gYXZvaWQgY29sbGlzaW9ucy4KLSAgICAgKiBpbnB1dF9jbGFzcyBtYXkgYWxzbyBiZSBuYW1lc3BhY2VkIHdpdGggYW4gYWRkaXRpb25hbCBwcmVmaXggcGFzc2VkIGludG8KLSAgICAgKiB0aGUgZ2V0LCBzZXQsIGFuZCBrZXlzIG1ldGhvZHMgaW4gb3JkZXIgdG8gZ3JvdXAgcmVsYXRlZCBzZXR0aW5ncy4KLSAgICAgKiBUaGlzIG1ldGhvZCBtYWtlcyBzdXJlIHRoZSB0d28gbmFtZXNwYWNlcyBhcmUgYWx3YXlzIHNldCBwcm9wZXJseS4KLSAgICAgKi8KLSAgICBpbnB1dF9jbGFzcy5ub3JtYWxpemVfID0gZnVuY3Rpb24ob3B0X25hbWVzcGFjZSkgewotICAgICAgcmV0dXJuIGlucHV0X2NsYXNzLk5BTUVTUEFDRSArIChvcHRfbmFtZXNwYWNlID8gb3B0X25hbWVzcGFjZSArICcuJyA6ICcnKTsKLSAgICB9OwotCi0gICAgaW5wdXRfY2xhc3Muc2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2UgPSBmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgaW5wdXRfY2xhc3Muc3RvcmFnZV8gPSBpbnN0YW5jZTsKLSAgICB9OwotCi0gICAgaW5wdXRfY2xhc3MuZ2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2UgPSBmdW5jdGlvbigpIHsKLSAgICAgIGlmIChpbnB1dF9jbGFzcy5zdG9yYWdlXyA9PT0gbG9jYWxTdG9yYWdlKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIGlucHV0X2NsYXNzLnN0b3JhZ2VfOwotICAgIH07Ci0KLSAgICBpbnB1dF9jbGFzcy5OQU1FU1BBQ0UgPSAndHJhY2Utdmlld2VyJzsKLSAgfTsKLQotICBBZGRTdGF0aWNTdG9yYWdlRnVuY3Rpb25zVG9DbGFzc18oU2V0dGluZ3MsIGxvY2FsU3RvcmFnZSk7Ci0gIEFkZFN0YXRpY1N0b3JhZ2VGdW5jdGlvbnNUb0NsYXNzXyhTZXNzaW9uU2V0dGluZ3MsIHNlc3Npb25TdG9yYWdlKTsKLQotICByZXR1cm4gewotICAgIFNldHRpbmdzOiBTZXR0aW5ncywKLSAgICBTZXNzaW9uU2V0dGluZ3M6IFNlc3Npb25TZXR0aW5ncwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zZXR0aW5nc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2Uvc2V0dGluZ3NfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTE3ZmZiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zZXR0aW5nc190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gYXNzZXJ0U2V0dGluZ0lzKGV4cGVjdGVkVmFsdWUsIGtleSkgewotICAgIGFzc2VydC5lcXVhbCh0ci5iLlNldHRpbmdzLmdldChrZXkpLCBleHBlY3RlZFZhbHVlKTsKLSAgfQotCi0gIC8vIE9sZCBzZXR0aW5ncyB2ZXJzaW9ucyB1c2VkIHRvIHN0cmluZ2lmeSBvYmplY3RzIGluc3RlYWQgb2YgcHV0dGluZyB0aGVtCi0gIC8vIGludG8gSlNPTi4gVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB0aGVzZSBvbGQgc2V0dGluZ3MgeWllbGQgdGhlIGRlZmF1bHQKLSAgLy8gdmFsdWUgaW5zdGVhZCBvZiBzdHJpbmdzLgotICB0ZXN0KCdvbGRTdHlsZVNldHRpbmdZaWVsZHNEZWZhdWx0VmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc3RvcmFnZSA9IHRyLmIuU2V0dGluZ3MuZ2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2UoKTsKLSAgICBzdG9yYWdlLnNldEl0ZW0odHIuYi5TZXR0aW5ncy5uYW1lc3BhY2VfKCdrZXknKSwgJ2hlbGxvIHdvcmxkJyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodHIuYi5TZXR0aW5ncy5nZXQoJ2tleScsICd2YWx1ZScpLCAndmFsdWUnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2V0R2V0U3RyaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNldHRpbmdzID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncy5zZXQoJ215X2tleScsICdteV92YWwnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2V0dGluZ3MuZ2V0KCdteV9rZXknKSwgJ215X3ZhbCcpOwotICAgIC8vIHRyLmIuU2V0dGluZ3MoKSBpcyBhIHNpbmdsZXRvbgotICAgIGFzc2VydC5lcXVhbCh0ci5iLlNldHRpbmdzKCkuZ2V0KCdteV9rZXknKSwgJ215X3ZhbCcpOwotICB9KTsKLQotICB0ZXN0KCdzZXRHZXROdW1iZXInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOwotICAgIHNldHRpbmdzLnNldCgnbXlfa2V5JywgNSk7Ci0gICAgYXNzZXJ0U2V0dGluZ0lzKDUsICdteV9rZXknKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2V0R2V0Qm9vbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7Ci0gICAgc2V0dGluZ3Muc2V0KCdteV9rZXknLCBmYWxzZSk7Ci0gICAgYXNzZXJ0U2V0dGluZ0lzKGZhbHNlLCAnbXlfa2V5Jyk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NldEdldE9iamVjdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7Ci0gICAgc2V0dGluZ3Muc2V0KCdteV9rZXknLCB7J2hlbGxvJzogNX0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0dGluZ3MuZ2V0KCdteV9rZXknKSwgeydoZWxsbyc6IDV9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2V0SW52YWxpZE9iamVjdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7Ci0gICAgdmFyIG9iaiA9IHsnaGVsbG8nOiB1bmRlZmluZWR9OwotICAgIG9iai5oZWxsbyA9IG9iajsKLSAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgewotICAgICAgc2V0dGluZ3Muc2V0KCdteV9rZXknLCBvYmopOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCdzZXRVbmRlZmluZWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOwotICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7Ci0gICAgICBzZXR0aW5ncy5zZXQoJ215X2tleScsIHVuZGVmaW5lZCk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2dldFVuc2V0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNldHRpbmdzID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKLSAgICAvLyBVbmRlZmluZWQgc2hvdWxkIGJlIHJldHVybmVkIGlmIHZhbHVlIGlzbid0IHNldC4KLSAgICBhc3NlcnRTZXR0aW5nSXModW5kZWZpbmVkLCAnbXlfa2V5Jyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2dldERlZmF1bHQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOwotICAgIC8vIGRlZmF1bHRfdmFsIHNob3VsZCBiZSByZXR1cm5lZCBpZiB2YWx1ZSBpc24ndCBzZXQuCi0gICAgYXNzZXJ0LmVxdWFsKHNldHRpbmdzLmdldCgnbXlfa2V5JywgJ2RlZmF1bHRfdmFsJyksICdkZWZhdWx0X3ZhbCcpOwotICB9KTsKLQotICB0ZXN0KCdzZXRHZXRQcmVmaXgnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOwotICAgIHNldHRpbmdzLnNldCgna2V5X2EnLCAnZm9vJywgJ215X3ByZWZpeCcpOwotICAgIGFzc2VydC5lcXVhbChzZXR0aW5ncy5nZXQoJ2tleV9hJywgdW5kZWZpbmVkLCAnbXlfcHJlZml4JyksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwoc2V0dGluZ3MuZ2V0KCdrZXlfYScsICdiYXInLCAnbXlfcHJlZml4JyksICdmb28nKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoc2V0dGluZ3MuZ2V0KCdrZXlfYScpKTsKLSAgICBhc3NlcnQuZXF1YWwoc2V0dGluZ3MuZ2V0KCdrZXlfYScsICdiYXInKSwgJ2JhcicpOwotICB9KTsKLQotICB0ZXN0KCdrZXlzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNldHRpbmdzID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncy5zZXQoJ2tleV9hJywgJ2ZvbycpOwotICAgIHNldHRpbmdzLnNldCgna2V5X2InLCAnYmFyJyk7Ci0gICAgc2V0dGluZ3Muc2V0KCdrZXlfYycsICdiYXonKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHNldHRpbmdzLmtleXMoKSwgWydrZXlfYScsICdrZXlfYicsICdrZXlfYyddKTsKLSAgfSk7Ci0KLSAgdGVzdCgna2V5c1ByZWZpeCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7Ci0gICAgc2V0dGluZ3Muc2V0KCdrZXlfYScsICdmb28nLCAncHJlZml4MScpOwotICAgIHNldHRpbmdzLnNldCgna2V5X2InLCAnYmFyJywgJ3ByZWZpeDEnKTsKLSAgICBzZXR0aW5ncy5zZXQoJ2tleV9jJywgJ2JheicsICdwcmVmaXgxJyk7Ci0gICAgc2V0dGluZ3Muc2V0KCdrZXlfYScsICdmb28nLCAncHJlZml4MicpOwotICAgIHNldHRpbmdzLnNldCgna2V5X2InLCAnYmFyJywgJ3ByZWZpeDInKTsKLSAgICBzZXR0aW5ncy5zZXQoJ2tleV9DJywgJ2JheicsICdwcmVmaXgyJyk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzZXR0aW5ncy5rZXlzKCdwcmVmaXgxJyksIFsna2V5X2EnLCAna2V5X2InLCAna2V5X2MnXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzZXR0aW5ncy5rZXlzKCdwcmVmaXgyJyksIFsna2V5X0MnLCAna2V5X2EnLCAna2V5X2InXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgc2V0dGluZ3Mua2V5cygpLAotICAgICAgICBbJ3ByZWZpeDEua2V5X2EnLCAncHJlZml4MS5rZXlfYicsICdwcmVmaXgxLmtleV9jJywKLSAgICAgICAgICdwcmVmaXgyLmtleV9DJywgJ3ByZWZpeDIua2V5X2EnLCAncHJlZml4Mi5rZXlfYiddKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3Rlc3RzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdGVzdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY0ZTFmOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdGVzdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIxOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGhlYWQ+Ci0gIDx0aXRsZT5UcmFjZS1WaWV3ZXIgVGVzdHM6IGxvYWRpbmcuLi48L3RpdGxlPgotICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Ci0KLSAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJkYXRhOmltYWdlL3gtaWNvbjtiYXNlNjQsIiB0eXBlPSJpbWFnZS94LWljb24iPgotCi0gIDxzY3JpcHQgc3JjPSIvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy5qcyI+PC9zY3JpcHQ+Ci0KLSAgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5odG1sIj4KLSAgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci0gIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC5odG1sIj4KLSAgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L2ludGVyYWN0aXZlX3Rlc3RfcnVubmVyLmh0bWwiPgotICA8c3R5bGU+Ci0gICAgaHRtbCwgYm9keSB7Ci0gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgICAgd2lkdGg6IDEwMCU7Ci0gICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgICBvdmVyZmxvdzogaGlkZGVuOwotICAgICAgbWFyZ2luOiAwcHg7Ci0gICAgfQotICAgIGJvZHkgPiB4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXIgewotICAgICAgaGVpZ2h0OiAxMDAlOwotICAgICAgd2lkdGg6IDEwMCU7Ci0gICAgfQotCi0gIDwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPHNjcmlwdD4KLSAgICAndXNlIHN0cmljdCc7Ci0KLSAgICAvLyBUaGUgdGVzdCBydW5uZXIgbm8tb3BzIHB1c2hTdGF0ZSBzbyBrZWVwIGl0IGFyb3VuZC4KLSAgICB2YXIgcmVhbFdpbmRvd0hpc3RvcnlQdXNoU3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUuYmluZCgKLSAgICAgICAgd2luZG93Lmhpc3RvcnkpOwotCi0gICAgZnVuY3Rpb24gc3RhdGVUb1NlYXJjaFN0cmluZyhkZWZhdWx0U3RhdGUsIHN0YXRlKSB7Ci0gICAgICB2YXIgcGFydHMgPSBbXTsKLSAgICAgIGZvciAodmFyIGsgaW4gc3RhdGUpIHsKLSAgICAgICAgaWYgKHN0YXRlW2tdID09PSBkZWZhdWx0U3RhdGVba10pCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHZhciB2ID0gc3RhdGVba107Ci0gICAgICAgIHZhciBrdjsKLSAgICAgICAgaWYgKHYgPT09IHRydWUpIHsKLSAgICAgICAgICBrdiA9IGs7Ci0gICAgICAgIH0gZWxzZSBpZiAodiA9PT0gZmFsc2UpIHsKLSAgICAgICAgICBrdiA9IGsgKyAnPWZhbHNlJzsKLSAgICAgICAgfSBlbHNlIGlmICh2ID09PSAnJykgewotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGt2ID0gayArICc9JyArIHY7Ci0gICAgICAgIH0KLSAgICAgICAgcGFydHMucHVzaChrdik7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcGFydHMuam9pbignJicpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0YXRlRnJvbVNlYXJjaFN0cmluZyhzdHJpbmcpIHsKLSAgICAgIHZhciBzdGF0ZSA9IHt9OwotICAgICAgc3RyaW5nLnNwbGl0KCcmJykuZm9yRWFjaChmdW5jdGlvbihwYXJ0KSB7Ci0gICAgICAgIGlmIChwYXJ0ID09ICcnKQotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIGt2ID0gcGFydC5zcGxpdCgnPScpOwotICAgICAgICB2YXIgaywgdjsKLSAgICAgICAgaWYgKGt2Lmxlbmd0aCA9PSAxKSB7Ci0gICAgICAgICAgayA9IGt2WzBdOwotICAgICAgICAgIHYgPSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGsgPSBrdlswXTsKLSAgICAgICAgICBpZiAoa3ZbMV0gPT0gJ2ZhbHNlJykKLSAgICAgICAgICAgIHYgPSBmYWxzZTsKLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB2ID0ga3ZbMV07Ci0gICAgICAgIH0KLSAgICAgICAgc3RhdGVba10gPSB2OwotICAgICAgfSk7Ci0gICAgICByZXR1cm4gc3RhdGU7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9hZEFuZFJ1blRlc3RzKCkgewotICAgICAgdmFyIHN0YXRlID0gc3RhdGVGcm9tU2VhcmNoU3RyaW5nKAotICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpKTsKLSAgICAgIHVwZGF0ZVRpdGxlKHN0YXRlKTsKLQotICAgICAgdmFyIHN1aXRlTmFtZXNUb0xvYWQ7Ci0gICAgICBpZiAoc3RhdGUudGVzdFN1aXRlTmFtZSkgewotICAgICAgICBzdWl0ZU5hbWVzVG9Mb2FkID0gW107Ci0gICAgICAgIHN1aXRlTmFtZXNUb0xvYWQucHVzaChzdGF0ZS50ZXN0U3VpdGVOYW1lKTsKLSAgICAgIH0KLQotICAgICAgc2hvd0xvYWRpbmdPdmVybGF5KCk7Ci0gICAgICB2YXIgbG9hZGVyID0gbmV3IHRyLmIudW5pdHRlc3QuU3VpdGVMb2FkZXIoc3VpdGVOYW1lc1RvTG9hZCk7Ci0gICAgICByZXR1cm4gbG9hZGVyLmFsbFN1aXRlc0xvYWRlZFByb21pc2UudGhlbigKLSAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaGlkZUxvYWRpbmdPdmVybGF5KCk7Ci0gICAgICAgICAgUG9seW1lci53aGVuUmVhZHkoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBydW5UZXN0cyhsb2FkZXIsIHN0YXRlKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSwKLSAgICAgICAgZnVuY3Rpb24oZXJyKSB7Ci0gICAgICAgICAgaGlkZUxvYWRpbmdPdmVybGF5KCk7Ci0gICAgICAgICAgdHIuc2hvd1BhbmljKCdNb2R1bGUgbG9hZGluZyBmYWlsdXJlJywgZXJyKTsKLSAgICAgICAgICB0aHJvdyBlcnI7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNob3dMb2FkaW5nT3ZlcmxheSgpIHsKLSAgICAgIHZhciBvdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICBvdmVybGF5LmlkID0gJ3Rlc3RzLWxvYWRpbmctb3ZlcmxheSc7Ci0gICAgICBvdmVybGF5LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICd3aGl0ZSc7Ci0gICAgICBvdmVybGF5LnN0eWxlLmJveFNpemluZyA9ICdib3JkZXItYm94JzsKLSAgICAgIG92ZXJsYXkuc3R5bGUuY29sb3IgPSAnYmxhY2snOwotICAgICAgb3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJy13ZWJraXQtZmxleCc7Ci0gICAgICBvdmVybGF5LnN0eWxlLmhlaWdodCA9ICcxMDAlJzsKLSAgICAgIG92ZXJsYXkuc3R5bGUubGVmdCA9IDA7Ci0gICAgICBvdmVybGF5LnN0eWxlLnBhZGRpbmcgPSAnOHB4JzsKLSAgICAgIG92ZXJsYXkuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnOwotICAgICAgb3ZlcmxheS5zdHlsZS50b3AgPSAwOwotICAgICAgb3ZlcmxheS5zdHlsZS53ZWJraXRGbGV4RGlyZWN0aW9uID0gJ2NvbHVtbic7Ci0gICAgICBvdmVybGF5LnN0eWxlLndpZHRoID0gJzEwMCUnOwotCi0gICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgZWxlbWVudC5zdHlsZS53ZWJraXRGbGV4ID0gJzEgMSBhdXRvJzsKLSAgICAgIGVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7Ci0gICAgICBvdmVybGF5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotCi0gICAgICBlbGVtZW50LnRleHRDb250ZW50ID0gJ0xvYWRpbmcgdGVzdHMuLi4nOwotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdmVybGF5KTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gaGlkZUxvYWRpbmdPdmVybGF5KCkgewotICAgICAgdmFyIG92ZXJsYXkgPSBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3IoJyN0ZXN0cy1sb2FkaW5nLW92ZXJsYXknKTsKLSAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQob3ZlcmxheSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdXBkYXRlVGl0bGUoc3RhdGUpIHsKLSAgICAgIHZhciB0ZXN0RmlsdGVyU3RyaW5nID0gc3RhdGUudGVzdEZpbHRlclN0cmluZyB8fCAnJzsKLSAgICAgIHZhciB0ZXN0U3VpdGVOYW1lID0gc3RhdGUudGVzdFN1aXRlTmFtZSB8fCAnJzsKLQotICAgICAgdmFyIHRpdGxlOwotICAgICAgaWYgKHRlc3RTdWl0ZU5hbWUgJiYgdGVzdEZpbHRlclN0cmluZy5sZW5ndGgpIHsKLSAgICAgICAgdGl0bGUgPSB0ZXN0RmlsdGVyU3RyaW5nICsgJyBpbiAnICsgdGVzdFN1aXRlTmFtZTsKLSAgICAgIH0gZWxzZSBpZiAodGVzdFN1aXRlTmFtZSkgewotICAgICAgICB0aXRsZSA9IHRlc3RTdWl0ZU5hbWU7Ci0gICAgICB9IGVsc2UgaWYgKHRlc3RGaWx0ZXJTdHJpbmcpIHsKLSAgICAgICAgdGl0bGUgPSB0ZXN0RmlsdGVyU3RyaW5nICsgJyBpbiBhbGwgdGVzdHMnOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGl0bGUgPSAnQWxsIFRyYWNlLVZpZXdlciBUZXN0cyc7Ci0gICAgICB9Ci0KLSAgICAgIGlmIChzdGF0ZS5zaG9ydEZvcm1hdCkKLSAgICAgICAgdGl0bGUgKz0gJyhzKSc7Ci0gICAgICBkb2N1bWVudC50aXRsZSA9IHRpdGxlOwotICAgICAgdmFyIHJ1bm5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3gtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lcicpOwotICAgICAgaWYgKHJ1bm5lcikKLSAgICAgICAgcnVubmVyLnRpdGxlID0gdGl0bGU7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdHMobG9hZGVyLCBzdGF0ZSkgewotICAgICAgdmFyIHJ1bm5lciA9IG5ldyB0ci5iLnVuaXR0ZXN0LkludGVyYWN0aXZlVGVzdFJ1bm5lcigpOwotICAgICAgcnVubmVyLnRlc3RMaW5rcyA9IGxvYWRlci50ZXN0TGlua3M7Ci0gICAgICBydW5uZXIuYWxsVGVzdHMgPSBsb2FkZXIuZ2V0QWxsVGVzdHMoKTsKLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocnVubmVyKTsKLQotICAgICAgcnVubmVyLnNldFN0YXRlKHN0YXRlKTsKLSAgICAgIHVwZGF0ZVRpdGxlKHN0YXRlKTsKLQotICAgICAgcnVubmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzdGF0ZSA9IHJ1bm5lci5nZXRTdGF0ZSgpOwotICAgICAgICB2YXIgc3RhdGVTdHJpbmcgPSBzdGF0ZVRvU2VhcmNoU3RyaW5nKHJ1bm5lci5nZXREZWZhdWx0U3RhdGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSk7Ci0gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSA9PSBzdGF0ZVN0cmluZykKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdXBkYXRlVGl0bGUoc3RhdGUpOwotICAgICAgICB2YXIgc3RhdGVVUkw7Ci0gICAgICAgIGlmIChzdGF0ZVN0cmluZy5sZW5ndGggPiAwKQotICAgICAgICAgIHN0YXRlVVJMID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgJz8nICsgc3RhdGVTdHJpbmc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBzdGF0ZVVSTCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICAgICAgcmVhbFdpbmRvd0hpc3RvcnlQdXNoU3RhdGUoc3RhdGUsIGRvY3VtZW50LnRpdGxlLCBzdGF0ZVVSTCk7Ci0gICAgICB9KTsKLQotICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgZnVuY3Rpb24oc3RhdGUpIHsKLSAgICAgICAgcnVubmVyLnNldFN0YXRlKHN0YXRlLCB0cnVlKTsKLSAgICAgIH0pOwotCi0gICAgICBydW5uZXIuZ2V0SFJlZkZvclRlc3RDYXNlID0gZnVuY3Rpb24odGVzdENhc2UpIHsKLSAgICAgICAgdmFyIHN0YXRlID0gcnVubmVyLmdldFN0YXRlKCk7Ci0gICAgICAgIGlmIChzdGF0ZS50ZXN0RmlsdGVyU3RyaW5nID09PSAnJyAmJgotICAgICAgICAgICAgc3RhdGUudGVzdFN1aXRlTmFtZSA9PT0gJycpIHsKLSAgICAgICAgICBzdGF0ZS50ZXN0U3VpdGVOYW1lID0gdGVzdENhc2Uuc3VpdGUubmFtZTsKLSAgICAgICAgICBzdGF0ZS50ZXN0RmlsdGVyU3RyaW5nID0gJyc7Ci0gICAgICAgICAgc3RhdGUuc2hvcnRGb3JtYXQgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzdGF0ZS50ZXN0U3VpdGVOYW1lID0gdGVzdENhc2Uuc3VpdGUubmFtZTsKLSAgICAgICAgICBzdGF0ZS50ZXN0RmlsdGVyU3RyaW5nID0gdGVzdENhc2UubmFtZTsKLSAgICAgICAgICBzdGF0ZS5zaG9ydEZvcm1hdCA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHZhciBzdGF0ZVN0cmluZyA9IHN0YXRlVG9TZWFyY2hTdHJpbmcocnVubmVyLmdldERlZmF1bHRTdGF0ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlKTsKLSAgICAgICAgaWYgKHN0YXRlU3RyaW5nLmxlbmd0aCA+IDApCi0gICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArICc/JyArIHN0YXRlU3RyaW5nOwotICAgICAgICBlbHNlCi0gICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRBbmRSdW5UZXN0cyk7Ci0KLSAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OGJhY2MyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51aScsIGZ1bmN0aW9uKCkgewotCi0gIC8qKgotICAgKiBEZWNvcmF0ZXMgZWxlbWVudHMgYXMgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcy4KLSAgICogQHBhcmFtIHtzdHJpbmd8IUVsZW1lbnR9IHNvdXJjZSBUaGUgd2F5IHRvIGZpbmQgdGhlIGVsZW1lbnQocykgdG8gZGVjb3JhdGUuCi0gICAqICAgICBJZiB0aGlzIGlzIGEgc3RyaW5nIHRoZW4ge0Bjb2RlIHF1ZXJ5U2VsZXRvckFsbH0gaXMgdXNlZCB0byBmaW5kIHRoZQotICAgKiAgICAgZWxlbWVudHMgdG8gZGVjb3JhdGUuCi0gICAqIEBwYXJhbSB7IUZ1bmN0aW9ufSBjb25zdHIgVGhlIGNvbnN0cnVjdG9yIHRvIGRlY29yYXRlIHdpdGguIFRoZSBjb25zdHIKLSAgICogICAgIG5lZWRzIHRvIGhhdmUgYSB7QGNvZGUgZGVjb3JhdGV9IGZ1bmN0aW9uLgotICAgKi8KLSAgZnVuY3Rpb24gZGVjb3JhdGUoc291cmNlLCBjb25zdHIpIHsKLSAgICB2YXIgZWxlbWVudHM7Ci0gICAgaWYgKHR5cGVvZiBzb3VyY2UgPT0gJ3N0cmluZycpCi0gICAgICBlbGVtZW50cyA9IHRyLmRvYy5xdWVyeVNlbGVjdG9yQWxsKHNvdXJjZSk7Ci0gICAgZWxzZQotICAgICAgZWxlbWVudHMgPSBbc291cmNlXTsKLQotICAgIGZvciAodmFyIGkgPSAwLCBlbDsgZWwgPSBlbGVtZW50c1tpXTsgaSsrKSB7Ci0gICAgICBpZiAoIShlbCBpbnN0YW5jZW9mIGNvbnN0cikpCi0gICAgICAgIGNvbnN0ci5kZWNvcmF0ZShlbCk7Ci0gICAgfQotICB9Ci0KLSAgLyoqCi0gICAqIERlZmluZXMgYSB0cmFjaW5nIFVJIGNvbXBvbmVudCwgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBjYWxsZWQgdG8gY29uc3RydWN0Ci0gICAqIHRoZSBjb21wb25lbnQuCi0gICAqCi0gICAqIHRyIGNsYXNzOgotICAgKiB2YXIgTGlzdCA9IHRyLmIudWkuZGVmaW5lKCdsaXN0Jyk7Ci0gICAqIExpc3QucHJvdG90eXBlID0gewotICAgKiAgIF9fcHJvdG9fXzogSFRNTFVMaXN0RWxlbWVudC5wcm90b3R5cGUsCi0gICAqICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgKiAgICAgLi4uCi0gICAqICAgfSwKLSAgICogICAuLi4KLSAgICogfTsKLSAgICoKLSAgICogRGVyaXZlZCBjbGFzczoKLSAgICogdmFyIEN1c3RvbUxpc3QgPSB0ci5iLnVpLmRlZmluZSgnY3VzdG9tLWxpc3QnLCBMaXN0KTsKLSAgICogQ3VzdG9tTGlzdC5wcm90b3R5cGUgPSB7Ci0gICAqICAgX19wcm90b19fOiBMaXN0LnByb3RvdHlwZSwKLSAgICogICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAqICAgICAuLi4KLSAgICogICB9LAotICAgKiAgIC4uLgotICAgKiB9OwotICAgKgotICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lIFRoZSBjbGFzc05hbWUgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgc3VidHlwZS4gSWYKLSAgICogICAgIHN1YmNsYXNzaW5nIGJ5IHBhc3NpbmcgaW4gb3B0X3BhcmVudENvbnN0cnVjdG9yLCB0aGlzIGlzIHVzZWQgZm9yCi0gICAqICAgICBkZWJ1Z2dpbmcuIElmIG5vdCBzdWJjbGFzc2luZywgdGhlbiBpdCBpcyB0aGUgdGFnIG5hbWUgdGhhdCB3aWxsIGJlCi0gICAqICAgICBjcmVhdGVkIGJ5IHRoZSBjb21wb25lbnQuCi0KLSAgICogQHBhcmFtIHtmdW5jdGlvbj19IG9wdF9wYXJlbnRDb25zdHJ1Y3RvciBUaGUgcGFyZW50IGNsYXNzIGZvciB0aGlzIG5ldwotICAgKiAgICAgZWxlbWVudCwgaWYgc3ViY2xhc3NpbmcgaXMgZGVzaXJlZC4gSWYgcHJvdmlkZWQsIHRoZSBwYXJlbnQgY2xhc3MgbXVzdAotICAgKiAgICAgYmUgYWxzbyBhIGZ1bmN0aW9uIGNyZWF0ZWQgYnkgdHIuYi51aS5kZWZpbmUuCi0gICAqCi0gICAqIEBwYXJhbSB7c3RyaW5nPX0gb3B0X3RhZ05TIFRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggdG8gY3JlYXRlIHRoZSBiYXNlCi0gICAqICAgICBlbGVtZW50LiBIYXMgbm8gbWVhbmluZyB3aGVuIG9wdF9wYXJlbnRDb25zdHJ1Y3RvciBpcyBwYXNzZWQgYW5kIG11c3QKLSAgICogICAgIGVpdGhlciBiZSB1bmRlZmluZWQgb3IgdGhlIHNhbWUgbmFtZXNwYWNlIGFzIHRoZSBwYXJlbnQgY2xhc3MuCi0gICAqCi0gICAqIEByZXR1cm4ge2Z1bmN0aW9uKE9iamVjdD0pOkVsZW1lbnR9IFRoZSBuZXdseSBjcmVhdGVkIGNvbXBvbmVudAotICAgKiAgICAgY29uc3RydWN0b3IuCi0gICAqLwotICBmdW5jdGlvbiBkZWZpbmUoY2xhc3NOYW1lLCBvcHRfcGFyZW50Q29uc3RydWN0b3IsIG9wdF90YWdOUykgewotICAgIGlmICh0eXBlb2YgY2xhc3NOYW1lID09ICdmdW5jdGlvbicpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignUGFzc2luZyBmdW5jdGlvbnMgYXMgY2xhc3NOYW1lIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSAnICsKLSAgICAgICAgICAgICAgICAgICAgICAndXNlIChjbGFzc05hbWUsIG9wdF9wYXJlbnRDb25zdHJ1Y3RvcikgdG8gc3ViY2xhc3MnKTsKLSAgICB9Ci0KLSAgICB2YXIgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnRvTG93ZXJDYXNlKCk7Ci0gICAgaWYgKG9wdF9wYXJlbnRDb25zdHJ1Y3RvciAmJiAhb3B0X3BhcmVudENvbnN0cnVjdG9yLnRhZ05hbWUpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdF9wYXJlbnRDb25zdHJ1Y3RvciB3YXMgbm90ICcgKwotICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGVkIGJ5IHRyLmIudWkuZGVmaW5lJyk7Ci0KLSAgICAvLyBXYWxrIHVwIHRoZSBwYXJlbnQgY29uc3RydWN0b3JzIHVudGlsIHdlIGNhbiBmaW5kIHRoZSB0eXBlIG9mIHRhZwotICAgIC8vIHRvIGNyZWF0ZS4KLSAgICB2YXIgdGFnTmFtZSA9IGNsYXNzTmFtZTsKLSAgICB2YXIgdGFnTlMgPSB1bmRlZmluZWQ7Ci0gICAgaWYgKG9wdF9wYXJlbnRDb25zdHJ1Y3RvcikgewotICAgICAgaWYgKG9wdF90YWdOUykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IG5vdCBzcGVjaWZ5IHRhZ05TIGlmIHBhcmVudENvbnN0cnVjdG9yIGlzIGdpdmVuJyk7Ci0gICAgICB2YXIgcGFyZW50ID0gb3B0X3BhcmVudENvbnN0cnVjdG9yOwotICAgICAgd2hpbGUgKHBhcmVudCAmJiBwYXJlbnQudGFnTmFtZSkgewotICAgICAgICB0YWdOYW1lID0gcGFyZW50LnRhZ05hbWU7Ci0gICAgICAgIHRhZ05TID0gcGFyZW50LnRhZ05TOwotICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Q29uc3RydWN0b3I7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRhZ05TID0gb3B0X3RhZ05TOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSBuZXcgVUkgZWxlbWVudCBjb25zdHJ1Y3Rvci4KLSAgICAgKiBBcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBjb25zdHVjdG9yIGFyZSBwcm92aWRlZCB0byB0aGUgZGVjb3JhdGUgbWV0aG9kLgotICAgICAqIFlvdSB3aWxsIG5lZWQgdG8gY2FsbCB0aGUgcGFyZW50IGVsZW1lbnRzIGRlY29yYXRlIG1ldGhvZCBmcm9tIHdpdGhpbgotICAgICAqIHlvdXIgZGVjb3JhdGUgbWV0aG9kIGFuZCBwYXNzIGFueSByZXF1aXJlZCBwYXJhbWV0ZXJzLgotICAgICAqIEBjb25zdHJ1Y3RvcgotICAgICAqLwotICAgIGZ1bmN0aW9uIGYoKSB7Ci0gICAgICBpZiAob3B0X3BhcmVudENvbnN0cnVjdG9yICYmCi0gICAgICAgICAgZi5wcm90b3R5cGUuX19wcm90b19fICE9IG9wdF9wYXJlbnRDb25zdHJ1Y3Rvci5wcm90b3R5cGUpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKAotICAgICAgICAgICAgY2xhc3NOYW1lICsgJyBwcm90b3R5ZVwncyBfX3Byb3RvX18gZmllbGQgaXMgbWVzc2VkIHVwLiAnICsKLSAgICAgICAgICAgICdJdCBNVVNUIGJlIHRoZSBwcm90b3R5cGUgb2YgJyArIG9wdF9wYXJlbnRDb25zdHJ1Y3Rvci50YWdOYW1lKTsKLSAgICAgIH0KLQotICAgICAgdmFyIGVsOwotICAgICAgaWYgKHRhZ05TID09PSB1bmRlZmluZWQpCi0gICAgICAgIGVsID0gdHIuZG9jLmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7Ci0gICAgICBlbHNlCi0gICAgICAgIGVsID0gdHIuZG9jLmNyZWF0ZUVsZW1lbnROUyh0YWdOUywgdGFnTmFtZSk7Ci0gICAgICBmLmRlY29yYXRlLmNhbGwodGhpcywgZWwsIGFyZ3VtZW50cyk7Ci0gICAgICByZXR1cm4gZWw7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRGVjb3JhdGVzIGFuIGVsZW1lbnQgYXMgYSBVSSBlbGVtZW50IGNsYXNzLgotICAgICAqIEBwYXJhbSB7IUVsZW1lbnR9IGVsIFRoZSBlbGVtZW50IHRvIGRlY29yYXRlLgotICAgICAqLwotICAgIGYuZGVjb3JhdGUgPSBmdW5jdGlvbihlbCkgewotICAgICAgZWwuX19wcm90b19fID0gZi5wcm90b3R5cGU7Ci0gICAgICBlbC5kZWNvcmF0ZS5hcHBseShlbCwgYXJndW1lbnRzWzFdKTsKLSAgICAgIGVsLmNvbnN0cnVjdG9yID0gZjsKLSAgICB9OwotCi0gICAgZi5jbGFzc05hbWUgPSBjbGFzc05hbWU7Ci0gICAgZi50YWdOYW1lID0gdGFnTmFtZTsKLSAgICBmLnRhZ05TID0gdGFnTlM7Ci0gICAgZi5wYXJlbnRDb25zdHJ1Y3RvciA9IChvcHRfcGFyZW50Q29uc3RydWN0b3IgPyBvcHRfcGFyZW50Q29uc3RydWN0b3IgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkKTsKLSAgICBmLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIWYucGFyZW50Q29uc3RydWN0b3IpCi0gICAgICAgIHJldHVybiBmLnRhZ05hbWU7Ci0gICAgICByZXR1cm4gZi5wYXJlbnRDb25zdHJ1Y3Rvci50b1N0cmluZygpICsgJzo6JyArIGYuY2xhc3NOYW1lOwotICAgIH07Ci0KLSAgICByZXR1cm4gZjsKLSAgfQotCi0gIGZ1bmN0aW9uIGVsZW1lbnRJc0NoaWxkT2YoZWwsIHBvdGVudGlhbFBhcmVudCkgewotICAgIGlmIChlbCA9PSBwb3RlbnRpYWxQYXJlbnQpCi0gICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB2YXIgY3VyID0gZWw7Ci0gICAgd2hpbGUgKGN1ci5wYXJlbnROb2RlKSB7Ci0gICAgICBpZiAoY3VyID09IHBvdGVudGlhbFBhcmVudCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICBjdXIgPSBjdXIucGFyZW50Tm9kZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9OwotCi0gIHJldHVybiB7Ci0gICAgZGVjb3JhdGU6IGRlY29yYXRlLAotICAgIGRlZmluZTogZGVmaW5lLAotICAgIGVsZW1lbnRJc0NoaWxkT2Y6IGVsZW1lbnRJc0NoaWxkT2YKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvYW5pbWF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvYW5pbWF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmOTg0ZWUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2FuaW1hdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5iLnVpJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBSZXByZXNlbnRzIGEgcHJvY2VkdXJhbCBhbmltYXRpb24gdGhhdCBjYW4gYmUgcnVuIGJ5IGFuCi0gICAqIHRyLmIudWkuQW5pbWF0aW9uQ29udHJvbGxlci4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBBbmltYXRpb24oKSB7Ci0gIH0KLQotICBBbmltYXRpb24ucHJvdG90eXBlID0gewotCi0gICAgLyoqCi0gICAgICogQ2FsbGVkIHdoZW4gYW4gYW5pbWF0aW9uIGhhcyBiZWVuIHF1ZXVlZCBhZnRlciBhIHJ1bm5pbmcgYW5pbWF0aW9uLgotICAgICAqCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgYW5pbWF0aW9uIGNhbiB0YWtlIG9uIHRoZSByZXNwb25zaWJpbGl0aWVzCi0gICAgICogb2YgdGhlIHJ1bm5pbmcgYW5pbWF0aW9uLiBJZiB0cnVlLCB0YWtlT3ZlckZvciB3aWxsIGJlIGNhbGxlZCBvbiB0aGUKLSAgICAgKiBhbmltYXRpb24uCi0gICAgICoKLSAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIGFuaW1hdGlvbnMgdGhhdCBhY2NlbGVyYXRlIGFzIHBhaXJzIG9mIHRoZW0gYXJlCi0gICAgICogcXVldWVkLgotICAgICAqLwotICAgIGNhblRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbikgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ2FsbGVkIHRvIHRha2Ugb3ZlciByZXNwb25zaWJsaXRpZXMgb2YgYW4gZXhpc3RpbmdBbmltYXRpb24uCi0gICAgICoKLSAgICAgKiBBdCB0aGlzIHBvaW50LCB0aGUgZXhpc3RpbmdBbmltYXRpb24gaGFzIGJlZW4gdGlja2VkIG9uZSBsYXN0IHRpbWUsIHRoZW4KLSAgICAgKiBzdG9wcGVkLiBUaGlzIGFuaW1hdGlvbiB3aWxsIGJlIHN0YXJ0ZWQgYWZ0ZXIgdGhpcyByZXR1cm5zIGFuZCBoYXMgdGhlCi0gICAgICogam9iIG9mIGZpbmlzaGluZyhvciB0cmFuc2l0aW9uaW5nIGF3YXkgZnJvbSkgdGhlIGVmZmVjdCB0aGUgZXhpc3RpbmcKLSAgICAgKiBhbmltYXRpb24gd2FzIHRyeWluZyB0byBhY2NvbXBsaXNoLgotICAgICAqLwotICAgIHRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbiwgbmV3U3RhcnRUaW1lc3RhbXAsIHRhcmdldCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgc3RhcnQ6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDYWxsZWQgd2hlbiBhbiBhbmltYXRpb24gaXMgc3RvcHBlZCBiZWZvcmUgaXQgZmluaXNoZXMuIFRoZSBhbmltYXRpb24gY2FuCi0gICAgICogZG8gd2hhdCBpdCB3YW50cyBoZXJlLCB1c3VhbGx5IG5vdGhpbmcuCi0gICAgICoKLSAgICAgKiBAcGFyYW0ge051bWJlcn0gdGltZXN0YW1wIFdoZW4gdGhlIGFuaW1hdGlvbiB3YXMgc3RvcHBlZC4KLSAgICAgKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0IFRoZSBvYmplY3QgYmVpbmcgYW5pbWF0ZWQuIE1heSBiZSB1bmRlZmluZWQsIHRha2UKLSAgICAgKiBjYXJlLgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gd2lsbEJlVGFrZW5PdmVyQnlBbm90aGVyQW5pbWF0aW9uIFdoZXRoZXIgdGhpcyBhbmltYXRpb24KLSAgICAgKiBpcyBnb2luZyB0byBiZSBoYW5kZWQgdG8gYW5vdGhlciBhbmltYXRpb24ncyB0YWtlT3ZlckZvciBmdW5jdGlvbi4KLSAgICAgKi8KLSAgICBkaWRTdG9wRWFybHk6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbEJlVGFrZW5PdmVyQnlBbm90aGVyQW5pbWF0aW9uKSB7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgdGhlIGFuaW1hdGlvbiBpcyBmaW5pc2hlZC4KLSAgICAgKi8KLSAgICB0aWNrOiBmdW5jdGlvbih0aW1lc3RhbXAsIHRhcmdldCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBBbmltYXRpb246IEFuaW1hdGlvbgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9hbmltYXRpb25fY29udHJvbGxlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2FuaW1hdGlvbl9jb250cm9sbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwYmFlZTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2FuaW1hdGlvbl9jb250cm9sbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9hbmltYXRpb24uaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51aScsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogTWFuYWdlcyBleGVjdXRpb24sIHF1ZXVlaW5nIGFuZCBibGVuZGluZyBvZiB0ci5iLnVpLkFuaW1hdGlvbnMgYWdhaW5zdAotICAgKiBhIHNpbmdsZSB0YXJnZXQuCi0gICAqCi0gICAqIFRhcmdldHMgbXVzdCBoYXZlIGEgY2xvbmVBbmltYXRpb25TdGF0ZSgpIG1ldGhvZCB0aGF0IHJldHVybnMgYWxsIHRoZQotICAgKiBhbmltYXRhYmxlIHN0YXRlcyBvZiB0aGF0IHRhcmdldC4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHt0ci5iLkV2ZW50VGFyZ2V0fQotICAgKi8KLSAgZnVuY3Rpb24gQW5pbWF0aW9uQ29udHJvbGxlcigpIHsKLSAgICB0ci5iLkV2ZW50VGFyZ2V0LmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLnRhcmdldF8gPSB1bmRlZmluZWQ7Ci0KLSAgICB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8gPSB1bmRlZmluZWQ7Ci0KLSAgICB0aGlzLnRpY2tTY2hlZHVsZWRfID0gZmFsc2U7Ci0gIH0KLQotICBBbmltYXRpb25Db250cm9sbGVyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlLAotCi0gICAgZ2V0IHRhcmdldCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnRhcmdldF87Ci0gICAgfSwKLQotICAgIHNldCB0YXJnZXQodGFyZ2V0KSB7Ci0gICAgICBpZiAodGhpcy5hY3RpdmVBbmltYXRpb25fKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjaGFuZ2UgdGFyZ2V0IHdoaWxlIGFuaW1hdGlvbiBpcyBydW5uaW5nLicpOwotICAgICAgaWYgKHRhcmdldC5jbG9uZUFuaW1hdGlvblN0YXRlID09PSB1bmRlZmluZWQgfHwKLSAgICAgICAgICB0eXBlb2YgdGFyZ2V0LmNsb25lQW5pbWF0aW9uU3RhdGUgIT09ICdmdW5jdGlvbicpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigndGFyZ2V0IG11c3QgaGF2ZSBhIGNsb25lQW5pbWF0aW9uU3RhdGUgZnVuY3Rpb24nKTsKLQotICAgICAgdGhpcy50YXJnZXRfID0gdGFyZ2V0OwotICAgIH0sCi0KLSAgICBnZXQgYWN0aXZlQW5pbWF0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlQW5pbWF0aW9uXzsKLSAgICB9LAotCi0gICAgZ2V0IGhhc0FjdGl2ZUFuaW1hdGlvbigpIHsKLSAgICAgIHJldHVybiAhIXRoaXMuYWN0aXZlQW5pbWF0aW9uXzsKLSAgICB9LAotCi0gICAgcXVldWVBbmltYXRpb246IGZ1bmN0aW9uKGFuaW1hdGlvbiwgb3B0X25vdykgewotICAgICAgaWYgKHRoaXMudGFyZ2V0XyA9PT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBxdWV1ZSBhbmltYXRpb25zIHdpdGhvdXQgYSB0YXJnZXQnKTsKLQotICAgICAgdmFyIG5vdzsKLSAgICAgIGlmIChvcHRfbm93ICE9PSB1bmRlZmluZWQpCi0gICAgICAgIG5vdyA9IG9wdF9ub3c7Ci0gICAgICBlbHNlCi0gICAgICAgIG5vdyA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTsKLQotICAgICAgaWYgKHRoaXMuYWN0aXZlQW5pbWF0aW9uXykgewotICAgICAgICAvLyBNdXN0IHRpY2sgdGhlIGFuaW1hdGlvbiBiZWZvcmUgc3RvcHBpbmcgaXQgY2FzZSBpdHMgYWJvdXQgdG8gc3RvcCwKLSAgICAgICAgLy8gYW5kIHRvIHVwZGF0ZSB0aGUgdGFyZ2V0IHdpdGggaXRzIGZpbmFsIHNldHMgb2YgZWRpdHMgdXAgdG8gdGhpcwotICAgICAgICAvLyBwb2ludC4KLSAgICAgICAgdmFyIGRvbmUgPSB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8udGljayhub3csIHRoaXMudGFyZ2V0Xyk7Ci0gICAgICAgIGlmIChkb25lKQotICAgICAgICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMuYWN0aXZlQW5pbWF0aW9uXykgewotICAgICAgICBpZiAoYW5pbWF0aW9uLmNhblRha2VPdmVyRm9yKHRoaXMuYWN0aXZlQW5pbWF0aW9uXykpIHsKLSAgICAgICAgICB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uZGlkU3RvcEVhcmx5KG5vdywgdGhpcy50YXJnZXRfLCB0cnVlKTsKLSAgICAgICAgICBhbmltYXRpb24udGFrZU92ZXJGb3IodGhpcy5hY3RpdmVBbmltYXRpb25fLCBub3csIHRoaXMudGFyZ2V0Xyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhpcy5hY3RpdmVBbmltYXRpb25fLmRpZFN0b3BFYXJseShub3csIHRoaXMudGFyZ2V0XywgZmFsc2UpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8gPSBhbmltYXRpb247Ci0gICAgICB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uc3RhcnQobm93LCB0aGlzLnRhcmdldF8pOwotCi0gICAgICBpZiAodGhpcy50aWNrU2NoZWR1bGVkXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy50aWNrU2NoZWR1bGVkXyA9IHRydWU7Ci0gICAgICB0ci5iLnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnRpY2tBY3RpdmVBbmltYXRpb25fLCB0aGlzKTsKLSAgICB9LAotCi0gICAgY2FuY2VsQWN0aXZlQW5pbWF0aW9uOiBmdW5jdGlvbihvcHRfbm93KSB7Ci0gICAgICBpZiAoIXRoaXMuYWN0aXZlQW5pbWF0aW9uXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgdmFyIG5vdzsKLSAgICAgIGlmIChvcHRfbm93ICE9PSB1bmRlZmluZWQpCi0gICAgICAgIG5vdyA9IG9wdF9ub3c7Ci0gICAgICBlbHNlCi0gICAgICAgIG5vdyA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTsKLSAgICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXy5kaWRTdG9wRWFybHkobm93LCB0aGlzLnRhcmdldF8sIGZhbHNlKTsKLSAgICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgdGlja0FjdGl2ZUFuaW1hdGlvbl86IGZ1bmN0aW9uKGZyYW1lQmVnaW5UaW1lKSB7Ci0gICAgICB0aGlzLnRpY2tTY2hlZHVsZWRfID0gZmFsc2U7Ci0gICAgICBpZiAoIXRoaXMuYWN0aXZlQW5pbWF0aW9uXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBpZiAodGhpcy50YXJnZXRfID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5hY3RpdmVBbmltYXRpb25fLmRpZFN0b3BFYXJseShmcmFtZUJlZ2luVGltZSwgdGhpcy50YXJnZXRfLCBmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIG9sZFRhcmdldFN0YXRlID0gdGhpcy50YXJnZXRfLmNsb25lQW5pbWF0aW9uU3RhdGUoKTsKLQotICAgICAgdmFyIGRvbmUgPSB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8udGljayhmcmFtZUJlZ2luVGltZSwgdGhpcy50YXJnZXRfKTsKLSAgICAgIGlmIChkb25lKQotICAgICAgICB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIGlmICh0aGlzLmFjdGl2ZUFuaW1hdGlvbl8pIHsKLSAgICAgICAgdGhpcy50aWNrU2NoZWR1bGVkXyA9IHRydWU7Ci0gICAgICAgIHRyLmIucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudGlja0FjdGl2ZUFuaW1hdGlvbl8sIHRoaXMpOwotICAgICAgfQotCi0gICAgICBpZiAob2xkVGFyZ2V0U3RhdGUpIHsKLSAgICAgICAgdmFyIGUgPSBuZXcgRXZlbnQoJ2RpZHRpY2snKTsKLSAgICAgICAgZS5vbGRUYXJnZXRTdGF0ZSA9IG9sZFRhcmdldFN0YXRlOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSwgZmFsc2UsIGZhbHNlKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBBbmltYXRpb25Db250cm9sbGVyOiBBbmltYXRpb25Db250cm9sbGVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2FuaW1hdGlvbl9jb250cm9sbGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9hbmltYXRpb25fY29udHJvbGxlcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjMmZhZGUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2FuaW1hdGlvbl9jb250cm9sbGVyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9hbmltYXRpb25fY29udHJvbGxlci5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBTaW1wbGVBbmltYXRpb24ob3B0aW9ucykgewotICAgIHRoaXMuc3RvcFRpbWUgPSBvcHRpb25zLnN0b3BUaW1lOwotCi0gICAgdGhpcy5zdGFydENhbGxlZCA9IGZhbHNlOwotICAgIHRoaXMuZGlkU3RvcEVhcmx5Q2FsbGVkID0gZmFsc2U7Ci0gICAgdGhpcy53YXNUYWtlbk92ZXIgPSBmYWxzZTsKLSAgICB0aGlzLnRpY2tDb3VudCA9IDA7Ci0gIH0KLQotICBTaW1wbGVBbmltYXRpb24ucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYi51aS5BbmltYXRpb24ucHJvdG90eXBlLAotCi0gICAgY2FuVGFrZU92ZXJGb3I6IGZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIHRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbiwgbmV3U3RhcnRUaW1lc3RhbXAsIHRhcmdldCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgc3RhcnQ6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7Ci0gICAgICB0aGlzLnN0YXJ0Q2FsbGVkID0gdHJ1ZTsKLSAgICB9LAotCi0gICAgZGlkU3RvcEVhcmx5OiBmdW5jdGlvbih0aW1lc3RhbXAsIHRhcmdldCwgd2lsbEJlVGFrZW5PdmVyKSB7Ci0gICAgICB0aGlzLmRpZFN0b3BFYXJseUNhbGxlZCA9IHRydWU7Ci0gICAgICB0aGlzLndhc1Rha2VuT3ZlciA9IHdpbGxCZVRha2VuT3ZlcjsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgYW5pbWF0aW9uIGlzIGZpbmlzaGVkLgotICAgICAqLwotICAgIHRpY2s6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7Ci0gICAgICB0aGlzLnRpY2tDb3VudCsrOwotICAgICAgcmV0dXJuIHRpbWVzdGFtcCA+PSB0aGlzLnN0b3BUaW1lOwotICAgIH0KLSAgfTsKLQotICB0ZXN0KCdjYW5jZWwnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFyZ2V0ID0gewotICAgICAgeDogMCwKLSAgICAgIGNsb25lQW5pbWF0aW9uU3RhdGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4ge3g6IHRoaXMueH07IH0KLSAgICB9OwotCi0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYi51aS5BbmltYXRpb25Db250cm9sbGVyKCk7Ci0gICAgY29udHJvbGxlci50YXJnZXQgPSB0YXJnZXQ7Ci0KLSAgICB2YXIgYW5pbWF0aW9uID0gbmV3IFNpbXBsZUFuaW1hdGlvbih7c3RvcFRpbWU6IDEwMH0pOwotICAgIGNvbnRyb2xsZXIucXVldWVBbmltYXRpb24oYW5pbWF0aW9uKTsKLQotICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigwKTsKLSAgICBhc3NlcnQuZXF1YWwoYW5pbWF0aW9uLnRpY2tDb3VudCwgMSk7Ci0gICAgY29udHJvbGxlci5jYW5jZWxBY3RpdmVBbmltYXRpb24oKTsKLSAgICBhc3NlcnQuaXNGYWxzZShjb250cm9sbGVyLmhhc0FjdGl2ZUFuaW1hdGlvbik7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShhbmltYXRpb24uZGlkU3RvcEVhcmx5Q2FsbGVkKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2ltcGxlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhcmdldCA9IHsKLSAgICAgIHg6IDAsCi0gICAgICBjbG9uZUFuaW1hdGlvblN0YXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt4OiB0aGlzLnh9OyB9Ci0gICAgfTsKLQotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmIudWkuQW5pbWF0aW9uQ29udHJvbGxlcigpOwotICAgIGNvbnRyb2xsZXIudGFyZ2V0ID0gdGFyZ2V0OwotCi0gICAgdmFyIGFuaW1hdGlvbiA9IG5ldyBTaW1wbGVBbmltYXRpb24oe3N0b3BUaW1lOiAxMDB9KTsKLSAgICBjb250cm9sbGVyLnF1ZXVlQW5pbWF0aW9uKGFuaW1hdGlvbik7Ci0KLSAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGFuaW1hdGlvbi50aWNrQ291bnQsIDEpOwotICAgIGFzc2VydC5pc1RydWUoY29udHJvbGxlci5oYXNBY3RpdmVBbmltYXRpb24pOwotCi0gICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDEwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGFuaW1hdGlvbi50aWNrQ291bnQsIDIpOwotICAgIGFzc2VydC5pc0ZhbHNlKGNvbnRyb2xsZXIuaGFzQWN0aXZlQW5pbWF0aW9uKTsKLSAgfSk7Ci0KLSAgdGVzdCgncXVldWVUd28nLCBmdW5jdGlvbigpIHsKLSAgICAvLyBDbGVhciBhbGwgcGVuZGluZyByYWZzIHNvIGlmIHNvbWV0aGluZyBpcyBsaW5nZXJpbmcgaXQgd2lsbCBibG93IHVwIGhlcmUuCi0gICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDApOwotCi0gICAgdmFyIHRhcmdldCA9IHsKLSAgICAgIHg6IDAsCi0gICAgICBjbG9uZUFuaW1hdGlvblN0YXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt4OiB0aGlzLnh9OyB9Ci0gICAgfTsKLQotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmIudWkuQW5pbWF0aW9uQ29udHJvbGxlcigpOwotICAgIGNvbnRyb2xsZXIudGFyZ2V0ID0gdGFyZ2V0OwotCi0gICAgdmFyIGExID0gbmV3IFNpbXBsZUFuaW1hdGlvbih7c3RvcFRpbWU6IDEwMH0pOwotICAgIHZhciBhMiA9IG5ldyBTaW1wbGVBbmltYXRpb24oe3N0b3BUaW1lOiAxMDB9KTsKLSAgICBjb250cm9sbGVyLnF1ZXVlQW5pbWF0aW9uKGExLCAwKTsKLSAgICBhc3NlcnQuaXNUcnVlKGExLnN0YXJ0Q2FsbGVkKTsKLSAgICBjb250cm9sbGVyLnF1ZXVlQW5pbWF0aW9uKGEyLCA1MCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShhMS5kaWRTdG9wRWFybHlDYWxsZWQpOwotICAgIGFzc2VydC5pc1RydWUoYTIuc3RhcnRDYWxsZWQpOwotCi0gICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDE1MCk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoY29udHJvbGxlci5oYXNBY3RpdmVBbmltYXRpb24pOwotICAgIGFzc2VydC5pc0Fib3ZlKGEyLnRpY2tDb3VudCwgMCk7Ci0gIH0pOwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEFuaW1hdGlvblRoYXRDYW5UYWtlT3ZlckZvclNpbXBsZUFuaW1hdGlvbigpIHsKLSAgICB0aGlzLnRha2VPdmVyRm9yQW5pbWF0aW9uID0gdW5kZWZpbmVkOwotICB9Ci0KLSAgQW5pbWF0aW9uVGhhdENhblRha2VPdmVyRm9yU2ltcGxlQW5pbWF0aW9uLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmIudWkuQW5pbWF0aW9uLnByb3RvdHlwZSwKLQotCi0gICAgY2FuVGFrZU92ZXJGb3I6IGZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uKSB7Ci0gICAgICByZXR1cm4gZXhpc3RpbmdBbmltYXRpb24gaW5zdGFuY2VvZiBTaW1wbGVBbmltYXRpb247Ci0gICAgfSwKLQotICAgIHRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbiwgbmV3U3RhcnRUaW1lc3RhbXAsIHRhcmdldCkgewotICAgICAgdGhpcy50YWtlT3ZlckZvckFuaW1hdGlvbiA9IGV4aXN0aW5nQW5pbWF0aW9uOwotICAgIH0sCi0KLSAgICBzdGFydDogZnVuY3Rpb24odGltZXN0YW1wLCB0YXJnZXQpIHsKLSAgICAgIHRoaXMuc3RhcnRDYWxsZWQgPSB0cnVlOwotICAgIH0KLSAgfTsKLQotICB0ZXN0KCd0YWtlT3ZlcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0YXJnZXQgPSB7Ci0gICAgICB4OiAwLAotICAgICAgY2xvbmVBbmltYXRpb25TdGF0ZTogZnVuY3Rpb24oKSB7IHJldHVybiB7eDogdGhpcy54fTsgfQotICAgIH07Ci0KLSAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5iLnVpLkFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKLSAgICBjb250cm9sbGVyLnRhcmdldCA9IHRhcmdldDsKLQotICAgIHZhciBhMSA9IG5ldyBTaW1wbGVBbmltYXRpb24oe3N0b3BUaW1lOiAxMDB9KTsKLSAgICB2YXIgYTIgPSBuZXcgQW5pbWF0aW9uVGhhdENhblRha2VPdmVyRm9yU2ltcGxlQW5pbWF0aW9uKCk7Ci0gICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihhMSwgMCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShhMS5zdGFydENhbGxlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGExLnRpY2tDb3VudCwgMCk7Ci0gICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihhMiwgMTApOwotICAgIGFzc2VydC5pc1RydWUoYTEuZGlkU3RvcEVhcmx5Q2FsbGVkKTsKLSAgICBhc3NlcnQuaXNUcnVlKGExLndhc1Rha2VuT3Zlcik7Ci0gICAgYXNzZXJ0LmVxdWFsKGExLnRpY2tDb3VudCwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoYTEsIGEyLnRha2VPdmVyRm9yQW5pbWF0aW9uKTsKLSAgICBhc3NlcnQuaXNUcnVlKGEyLnN0YXJ0Q2FsbGVkKTsKLQotICAgIGNvbnRyb2xsZXIuY2FuY2VsQWN0aXZlQW5pbWF0aW9uKCk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoY29udHJvbGxlci5oYXNBY3RpdmVBbmltYXRpb24pOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY2FtZXJhLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY2FtZXJhLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxNjY5MzMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NhbWVyYS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NldHRpbmdzLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLQotICB2YXIgY29uc3RhbnRzID0gewotICAgIERFRkFVTFRfU0NBTEU6IDAuNSwKLSAgICBERUZBVUxUX0VZRV9ESVNUQU5DRTogMTAwMDAsCi0gICAgTUlOSU1VTV9ESVNUQU5DRTogMTAwMCwKLSAgICBNQVhJTVVNX0RJU1RBTkNFOiAxMDAwMDAsCi0gICAgRk9WOiAxNSwKLSAgICBSRVNDQUxFX1RJTUVPVVRfTVM6IDIwMCwKLSAgICBNQVhJTVVNX1RJTFQ6IDgwLAotICAgIFNFVFRJTkdTX05BTUVTUEFDRTogJ3RyLnVpX2NhbWVyYScKLSAgfTsKLQotCi0gIHZhciBDYW1lcmEgPSB0ci5iLnVpLmRlZmluZSgnY2FtZXJhJyk7Ci0KLSAgQ2FtZXJhLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oZXZlbnRTb3VyY2UpIHsKLSAgICAgIHRoaXMuZXZlbnRTb3VyY2VfID0gZXZlbnRTb3VyY2U7Ci0KLSAgICAgIHRoaXMuZXZlbnRTb3VyY2VfLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZ2lucGFuJywKLSAgICAgICAgICB0aGlzLm9uUGFuQmVnaW5fLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5ldmVudFNvdXJjZV8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlcGFuJywKLSAgICAgICAgICB0aGlzLm9uUGFuVXBkYXRlXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMuZXZlbnRTb3VyY2VfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHBhbicsCi0gICAgICAgICAgdGhpcy5vblBhbkVuZF8uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuZXZlbnRTb3VyY2VfLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZ2luem9vbScsCi0gICAgICAgICAgdGhpcy5vblpvb21CZWdpbl8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLmV2ZW50U291cmNlXy5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGV6b29tJywKLSAgICAgICAgICB0aGlzLm9uWm9vbVVwZGF0ZV8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLmV2ZW50U291cmNlXy5hZGRFdmVudExpc3RlbmVyKCdlbmR6b29tJywKLSAgICAgICAgICB0aGlzLm9uWm9vbUVuZF8uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuZXZlbnRTb3VyY2VfLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZ2lucm90YXRlJywKLSAgICAgICAgICB0aGlzLm9uUm90YXRlQmVnaW5fLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5ldmVudFNvdXJjZV8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlcm90YXRlJywKLSAgICAgICAgICB0aGlzLm9uUm90YXRlVXBkYXRlXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMuZXZlbnRTb3VyY2VfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHJvdGF0ZScsCi0gICAgICAgICAgdGhpcy5vblJvdGF0ZUVuZF8uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuZXllXyA9IFswLCAwLCBjb25zdGFudHMuREVGQVVMVF9FWUVfRElTVEFOQ0VdOwotICAgICAgdGhpcy5nYXplVGFyZ2V0XyA9IFswLCAwLCAwXTsKLSAgICAgIHRoaXMucm90YXRpb25fID0gWzAsIDBdOwotCi0gICAgICB0aGlzLnBpeGVsUmF0aW9fID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLSAgICB9LAotCi0KLSAgICBnZXQgbW9kZWxWaWV3TWF0cml4KCkgewotICAgICAgdmFyIG12TWF0cml4ID0gbWF0NC5jcmVhdGUoKTsKLQotICAgICAgbWF0NC5sb29rQXQobXZNYXRyaXgsIHRoaXMuZXllXywgdGhpcy5nYXplVGFyZ2V0XywgWzAsIDEsIDBdKTsKLSAgICAgIHJldHVybiBtdk1hdHJpeDsKLSAgICB9LAotCi0gICAgZ2V0IHByb2plY3Rpb25NYXRyaXgoKSB7Ci0gICAgICB2YXIgcmVjdCA9Ci0gICAgICAgICAgdHIuYi53aW5kb3dSZWN0Rm9yRWxlbWVudCh0aGlzLmNhbnZhc18pLnNjYWxlU2l6ZSh0aGlzLnBpeGVsUmF0aW9fKTsKLQotICAgICAgdmFyIGFzcGVjdFJhdGlvID0gcmVjdC53aWR0aCAvIHJlY3QuaGVpZ2h0OwotICAgICAgdmFyIG1hdHJpeCA9IG1hdDQuY3JlYXRlKCk7Ci0gICAgICBtYXQ0LnBlcnNwZWN0aXZlKAotICAgICAgICAgIG1hdHJpeCwgdHIuYi5kZWcycmFkKGNvbnN0YW50cy5GT1YpLCBhc3BlY3RSYXRpbywgMSwgMTAwMDAwKTsKLQotICAgICAgcmV0dXJuIG1hdHJpeDsKLSAgICB9LAotCi0gICAgc2V0IGNhbnZhcyhjKSB7Ci0gICAgICB0aGlzLmNhbnZhc18gPSBjOwotICAgIH0sCi0KLSAgICBzZXQgZGV2aWNlUmVjdChyZWN0KSB7Ci0gICAgICB0aGlzLmRldmljZVJlY3RfID0gcmVjdDsKLSAgICB9LAotCi0gICAgZ2V0IHN0YWNraW5nRGlzdGFuY2VEYW1wZW5pbmcoKSB7Ci0gICAgICB2YXIgZ2F6ZVZlY3RvciA9IFsKLSAgICAgICAgdGhpcy5nYXplVGFyZ2V0X1swXSAtIHRoaXMuZXllX1swXSwKLSAgICAgICAgdGhpcy5nYXplVGFyZ2V0X1sxXSAtIHRoaXMuZXllX1sxXSwKLSAgICAgICAgdGhpcy5nYXplVGFyZ2V0X1syXSAtIHRoaXMuZXllX1syXV07Ci0gICAgICB2ZWMzLm5vcm1hbGl6ZShnYXplVmVjdG9yLCBnYXplVmVjdG9yKTsKLSAgICAgIHJldHVybiAxICsgZ2F6ZVZlY3RvclsyXTsKLSAgICB9LAotCi0gICAgbG9hZENhbWVyYUZyb21TZXR0aW5nczogZnVuY3Rpb24oc2V0dGluZ3MpIHsKLSAgICAgIHRoaXMuZXllXyA9IHNldHRpbmdzLmdldCgKLSAgICAgICAgICAnZXllJywgdGhpcy5leWVfLCBjb25zdGFudHMuU0VUVElOR1NfTkFNRVNQQUNFKTsKLSAgICAgIHRoaXMuZ2F6ZVRhcmdldF8gPSBzZXR0aW5ncy5nZXQoCi0gICAgICAgICAgJ2dhemVfdGFyZ2V0JywgdGhpcy5nYXplVGFyZ2V0XywgY29uc3RhbnRzLlNFVFRJTkdTX05BTUVTUEFDRSk7Ci0gICAgICB0aGlzLnJvdGF0aW9uXyA9IHNldHRpbmdzLmdldCgKLSAgICAgICAgICAncm90YXRpb24nLCB0aGlzLnJvdGF0aW9uXywgY29uc3RhbnRzLlNFVFRJTkdTX05BTUVTUEFDRSk7Ci0KLSAgICAgIHRoaXMuZGlzcGF0Y2hSZW5kZXJFdmVudF8oKTsKLSAgICB9LAotCi0gICAgc2F2ZUNhbWVyYVRvU2V0dGluZ3M6IGZ1bmN0aW9uKHNldHRpbmdzKSB7Ci0gICAgICBzZXR0aW5ncy5zZXQoCi0gICAgICAgICAgJ2V5ZScsIHRoaXMuZXllXywgY29uc3RhbnRzLlNFVFRJTkdTX05BTUVTUEFDRSk7Ci0gICAgICBzZXR0aW5ncy5zZXQoCi0gICAgICAgICAgJ2dhemVfdGFyZ2V0JywgdGhpcy5nYXplVGFyZ2V0XywgY29uc3RhbnRzLlNFVFRJTkdTX05BTUVTUEFDRSk7Ci0gICAgICBzZXR0aW5ncy5zZXQoCi0gICAgICAgICAgJ3JvdGF0aW9uJywgdGhpcy5yb3RhdGlvbl8sIGNvbnN0YW50cy5TRVRUSU5HU19OQU1FU1BBQ0UpOwotICAgIH0sCi0KLSAgICByZXNldENhbWVyYTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmV5ZV8gPSBbMCwgMCwgY29uc3RhbnRzLkRFRkFVTFRfRVlFX0RJU1RBTkNFXTsKLSAgICAgIHRoaXMuZ2F6ZVRhcmdldF8gPSBbMCwgMCwgMF07Ci0gICAgICB0aGlzLnJvdGF0aW9uXyA9IFswLCAwXTsKLQotICAgICAgdmFyIHNldHRpbmdzID0gdHIuYi5TZXNzaW9uU2V0dGluZ3MoKTsKLSAgICAgIHZhciBrZXlzID0gc2V0dGluZ3Mua2V5cyhjb25zdGFudHMuU0VUVElOR1NfTkFNRVNQQUNFKTsKLSAgICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gMCkgewotICAgICAgICB0aGlzLmxvYWRDYW1lcmFGcm9tU2V0dGluZ3Moc2V0dGluZ3MpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlmICh0aGlzLmRldmljZVJlY3RfKSB7Ci0gICAgICAgIHZhciByZWN0ID0KLSAgICAgICAgICAgIHRyLmIud2luZG93UmVjdEZvckVsZW1lbnQodGhpcy5jYW52YXNfKS5zY2FsZVNpemUodGhpcy5waXhlbFJhdGlvXyk7Ci0KLSAgICAgICAgdGhpcy5leWVfWzBdID0gdGhpcy5kZXZpY2VSZWN0Xy53aWR0aCAvIDI7Ci0gICAgICAgIHRoaXMuZXllX1sxXSA9IHRoaXMuZGV2aWNlUmVjdF8uaGVpZ2h0IC8gMjsKLQotICAgICAgICB0aGlzLmdhemVUYXJnZXRfWzBdID0gdGhpcy5kZXZpY2VSZWN0Xy53aWR0aCAvIDI7Ci0gICAgICAgIHRoaXMuZ2F6ZVRhcmdldF9bMV0gPSB0aGlzLmRldmljZVJlY3RfLmhlaWdodCAvIDI7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuc2F2ZUNhbWVyYVRvU2V0dGluZ3Moc2V0dGluZ3MpOwotICAgICAgdGhpcy5kaXNwYXRjaFJlbmRlckV2ZW50XygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVQYW5CeURlbHRhOiBmdW5jdGlvbihkZWx0YSkgewotICAgICAgdmFyIHJlY3QgPQotICAgICAgICAgIHRyLmIud2luZG93UmVjdEZvckVsZW1lbnQodGhpcy5jYW52YXNfKS5zY2FsZVNpemUodGhpcy5waXhlbFJhdGlvXyk7Ci0KLSAgICAgIC8vIEdldCB0aGUgZXllIHZlY3Rvciwgc2luY2Ugd2UnbGwgYmUgYWRqdXN0aW5nIGdhemVUYXJnZXQuCi0gICAgICB2YXIgZXllVmVjdG9yID0gWwotICAgICAgICB0aGlzLmV5ZV9bMF0gLSB0aGlzLmdhemVUYXJnZXRfWzBdLAotICAgICAgICB0aGlzLmV5ZV9bMV0gLSB0aGlzLmdhemVUYXJnZXRfWzFdLAotICAgICAgICB0aGlzLmV5ZV9bMl0gLSB0aGlzLmdhemVUYXJnZXRfWzJdXTsKLSAgICAgIHZhciBsZW5ndGggPSB2ZWMzLmxlbmd0aChleWVWZWN0b3IpOwotICAgICAgdmVjMy5ub3JtYWxpemUoZXllVmVjdG9yLCBleWVWZWN0b3IpOwotCi0gICAgICB2YXIgaGFsZkZvdiA9IGNvbnN0YW50cy5GT1YgLyAyOwotICAgICAgdmFyIG11bHRpcGxpZXIgPQotICAgICAgICAgIDIuMCAqIGxlbmd0aCAqIE1hdGgudGFuKHRyLmIuZGVnMnJhZChoYWxmRm92KSkgLyByZWN0LmhlaWdodDsKLQotICAgICAgLy8gR2V0IHRoZSB1cCBhbmQgcmlnaHQgdmVjdG9ycy4KLSAgICAgIHZhciB1cCA9IFswLCAxLCAwXTsKLSAgICAgIHZhciByb3RNYXRyaXggPSBtYXQ0LmNyZWF0ZSgpOwotICAgICAgbWF0NC5yb3RhdGUoCi0gICAgICAgICAgcm90TWF0cml4LCByb3RNYXRyaXgsIHRyLmIuZGVnMnJhZCh0aGlzLnJvdGF0aW9uX1sxXSksIFswLCAxLCAwXSk7Ci0gICAgICBtYXQ0LnJvdGF0ZSgKLSAgICAgICAgICByb3RNYXRyaXgsIHJvdE1hdHJpeCwgdHIuYi5kZWcycmFkKHRoaXMucm90YXRpb25fWzBdKSwgWzEsIDAsIDBdKTsKLSAgICAgIHZlYzMudHJhbnNmb3JtTWF0NCh1cCwgdXAsIHJvdE1hdHJpeCk7Ci0KLSAgICAgIHZhciByaWdodCA9IFswLCAwLCAwXTsKLSAgICAgIHZlYzMuY3Jvc3MocmlnaHQsIGV5ZVZlY3RvciwgdXApOwotICAgICAgdmVjMy5ub3JtYWxpemUocmlnaHQsIHJpZ2h0KTsKLQotICAgICAgLy8gVXBkYXRlIHRoZSBnYXplIHRhcmdldC4KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKSB7Ci0gICAgICAgIHRoaXMuZ2F6ZVRhcmdldF9baV0gKz0KLSAgICAgICAgICAgIGRlbHRhWzBdICogbXVsdGlwbGllciAqIHJpZ2h0W2ldIC0gZGVsdGFbMV0gKiBtdWx0aXBsaWVyICogdXBbaV07Ci0KLSAgICAgICAgdGhpcy5leWVfW2ldID0gdGhpcy5nYXplVGFyZ2V0X1tpXSArIGxlbmd0aCAqIGV5ZVZlY3RvcltpXTsKLSAgICAgIH0KLQotICAgICAgLy8gSWYgd2UgaGF2ZSBzb21lIHogb2Zmc2V0LCB3ZSBuZWVkIHRvIHJlcG9zaXRpb24gZ2F6ZVRhcmdldAotICAgICAgLy8gdG8gYmUgb24gdGhlIHBsYW5lIHogPSAwIHdpdGggbm9ybWFsIFswLCAwLCAxXS4KLSAgICAgIGlmIChNYXRoLmFicyh0aGlzLmdhemVUYXJnZXRfWzJdKSA+IDFlLTYpIHsKLSAgICAgICAgdmFyIGdhemVWZWN0b3IgPSBbLWV5ZVZlY3RvclswXSwgLWV5ZVZlY3RvclsxXSwgLWV5ZVZlY3RvclsyXV07Ci0gICAgICAgIHZhciBuZXdMZW5ndGggPSB0ci5iLmNsYW1wKAotICAgICAgICAgICAgLXRoaXMuZXllX1syXSAvIGdhemVWZWN0b3JbMl0sCi0gICAgICAgICAgICBjb25zdGFudHMuTUlOSU1VTV9ESVNUQU5DRSwKLSAgICAgICAgICAgIGNvbnN0YW50cy5NQVhJTVVNX0RJU1RBTkNFKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7ICsraSkKLSAgICAgICAgICB0aGlzLmdhemVUYXJnZXRfW2ldID0gdGhpcy5leWVfW2ldICsgbmV3TGVuZ3RoICogZ2F6ZVZlY3RvcltpXTsKLSAgICAgIH0KLQotICAgICAgdGhpcy5zYXZlQ2FtZXJhVG9TZXR0aW5ncyh0ci5iLlNlc3Npb25TZXR0aW5ncygpKTsKLSAgICAgIHRoaXMuZGlzcGF0Y2hSZW5kZXJFdmVudF8oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlWm9vbUJ5RGVsdGE6IGZ1bmN0aW9uKGRlbHRhKSB7Ci0gICAgICB2YXIgZGVsdGFZID0gZGVsdGFbMV07Ci0gICAgICBkZWx0YVkgPSB0ci5iLmNsYW1wKGRlbHRhWSwgLTUwLCA1MCk7Ci0gICAgICB2YXIgc2NhbGUgPSAxLjAgLSBkZWx0YVkgLyAxMDAuMDsKLQotICAgICAgdmFyIGV5ZVZlY3RvciA9IFswLCAwLCAwXTsKLSAgICAgIHZlYzMuc3VidHJhY3QoZXllVmVjdG9yLCB0aGlzLmV5ZV8sIHRoaXMuZ2F6ZVRhcmdldF8pOwotCi0gICAgICB2YXIgbGVuZ3RoID0gdmVjMy5sZW5ndGgoZXllVmVjdG9yKTsKLQotICAgICAgLy8gQ2xhbXAgdGhlIGxlbmd0aCB0byBhbGxvd2VkIHZhbHVlcyBieSBjaGFuZ2luZyB0aGUgc2NhbGUuCi0gICAgICBpZiAobGVuZ3RoICogc2NhbGUgPCBjb25zdGFudHMuTUlOSU1VTV9ESVNUQU5DRSkKLSAgICAgICAgc2NhbGUgPSBjb25zdGFudHMuTUlOSU1VTV9ESVNUQU5DRSAvIGxlbmd0aDsKLSAgICAgIGVsc2UgaWYgKGxlbmd0aCAqIHNjYWxlID4gY29uc3RhbnRzLk1BWElNVU1fRElTVEFOQ0UpCi0gICAgICAgIHNjYWxlID0gY29uc3RhbnRzLk1BWElNVU1fRElTVEFOQ0UgLyBsZW5ndGg7Ci0KLSAgICAgIHZlYzMuc2NhbGUoZXllVmVjdG9yLCBleWVWZWN0b3IsIHNjYWxlKTsKLSAgICAgIHZlYzMuYWRkKHRoaXMuZXllXywgdGhpcy5nYXplVGFyZ2V0XywgZXllVmVjdG9yKTsKLQotICAgICAgdGhpcy5zYXZlQ2FtZXJhVG9TZXR0aW5ncyh0ci5iLlNlc3Npb25TZXR0aW5ncygpKTsKLSAgICAgIHRoaXMuZGlzcGF0Y2hSZW5kZXJFdmVudF8oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlUm90YXRlQnlEZWx0YTogZnVuY3Rpb24oZGVsdGEpIHsKLSAgICAgIGRlbHRhWzBdICo9IDAuNTsKLSAgICAgIGRlbHRhWzFdICo9IDAuNTsKLQotICAgICAgaWYgKE1hdGguYWJzKHRoaXMucm90YXRpb25fWzBdICsgZGVsdGFbMV0pID4gY29uc3RhbnRzLk1BWElNVU1fVElMVCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKE1hdGguYWJzKHRoaXMucm90YXRpb25fWzFdIC0gZGVsdGFbMF0pID4gY29uc3RhbnRzLk1BWElNVU1fVElMVCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgZXllVmVjdG9yID0gWzAsIDAsIDAsIDBdOwotICAgICAgdmVjMy5zdWJ0cmFjdChleWVWZWN0b3IsIHRoaXMuZXllXywgdGhpcy5nYXplVGFyZ2V0Xyk7Ci0KLSAgICAgIC8vIFVuZG8gdGhlIGN1cnJlbnQgcm90YXRpb24uCi0gICAgICB2YXIgcm90TWF0cml4ID0gbWF0NC5jcmVhdGUoKTsKLSAgICAgIG1hdDQucm90YXRlKAotICAgICAgICAgIHJvdE1hdHJpeCwgcm90TWF0cml4LCAtdHIuYi5kZWcycmFkKHRoaXMucm90YXRpb25fWzBdKSwgWzEsIDAsIDBdKTsKLSAgICAgIG1hdDQucm90YXRlKAotICAgICAgICAgIHJvdE1hdHJpeCwgcm90TWF0cml4LCAtdHIuYi5kZWcycmFkKHRoaXMucm90YXRpb25fWzFdKSwgWzAsIDEsIDBdKTsKLSAgICAgIHZlYzQudHJhbnNmb3JtTWF0NChleWVWZWN0b3IsIGV5ZVZlY3Rvciwgcm90TWF0cml4KTsKLQotICAgICAgLy8gVXBkYXRlIHJvdGF0aW9uIHZhbHVlcy4KLSAgICAgIHRoaXMucm90YXRpb25fWzBdICs9IGRlbHRhWzFdOwotICAgICAgdGhpcy5yb3RhdGlvbl9bMV0gLT0gZGVsdGFbMF07Ci0KLSAgICAgIC8vIFJlZG8gdGhlIG5ldyByb3RhdGlvbi4KLSAgICAgIG1hdDQuaWRlbnRpdHkocm90TWF0cml4KTsKLSAgICAgIG1hdDQucm90YXRlKAotICAgICAgICAgIHJvdE1hdHJpeCwgcm90TWF0cml4LCB0ci5iLmRlZzJyYWQodGhpcy5yb3RhdGlvbl9bMV0pLCBbMCwgMSwgMF0pOwotICAgICAgbWF0NC5yb3RhdGUoCi0gICAgICAgICAgcm90TWF0cml4LCByb3RNYXRyaXgsIHRyLmIuZGVnMnJhZCh0aGlzLnJvdGF0aW9uX1swXSksIFsxLCAwLCAwXSk7Ci0gICAgICB2ZWM0LnRyYW5zZm9ybU1hdDQoZXllVmVjdG9yLCBleWVWZWN0b3IsIHJvdE1hdHJpeCk7Ci0KLSAgICAgIHZlYzMuYWRkKHRoaXMuZXllXywgdGhpcy5nYXplVGFyZ2V0XywgZXllVmVjdG9yKTsKLQotICAgICAgdGhpcy5zYXZlQ2FtZXJhVG9TZXR0aW5ncyh0ci5iLlNlc3Npb25TZXR0aW5ncygpKTsKLSAgICAgIHRoaXMuZGlzcGF0Y2hSZW5kZXJFdmVudF8oKTsKLSAgICB9LAotCi0KLSAgICAvLyBFdmVudCBjYWxsYmFja3MuCi0gICAgb25QYW5CZWdpbl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMucGFubmluZ18gPSB0cnVlOwotICAgICAgdGhpcy5sYXN0TW91c2VQb3NpdGlvbl8gPSB0aGlzLmdldE1vdXNlUG9zaXRpb25fKGUpOwotICAgIH0sCi0KLSAgICBvblBhblVwZGF0ZV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy5wYW5uaW5nXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgZGVsdGEgPSB0aGlzLmdldE1vdXNlRGVsdGFfKGUsIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fKTsKLSAgICAgIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fID0gdGhpcy5nZXRNb3VzZVBvc2l0aW9uXyhlKTsKLSAgICAgIHRoaXMudXBkYXRlUGFuQnlEZWx0YShkZWx0YSk7Ci0gICAgfSwKLQotICAgIG9uUGFuRW5kXzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5wYW5uaW5nXyA9IGZhbHNlOwotICAgIH0sCi0KLSAgICBvblpvb21CZWdpbl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMuem9vbWluZ18gPSB0cnVlOwotCi0gICAgICB2YXIgcCA9IHRoaXMuZ2V0TW91c2VQb3NpdGlvbl8oZSk7Ci0KLSAgICAgIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fID0gcDsKLSAgICAgIHRoaXMuem9vbVBvaW50XyA9IHA7Ci0gICAgfSwKLQotICAgIG9uWm9vbVVwZGF0ZV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy56b29taW5nXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgZGVsdGEgPSB0aGlzLmdldE1vdXNlRGVsdGFfKGUsIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fKTsKLSAgICAgIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fID0gdGhpcy5nZXRNb3VzZVBvc2l0aW9uXyhlKTsKLSAgICAgIHRoaXMudXBkYXRlWm9vbUJ5RGVsdGEoZGVsdGEpOwotICAgIH0sCi0KLSAgICBvblpvb21FbmRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLnpvb21pbmdfID0gZmFsc2U7Ci0gICAgICB0aGlzLnpvb21Qb2ludF8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIG9uUm90YXRlQmVnaW5fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLnJvdGF0aW5nXyA9IHRydWU7Ci0gICAgICB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyA9IHRoaXMuZ2V0TW91c2VQb3NpdGlvbl8oZSk7Ci0gICAgfSwKLQotICAgIG9uUm90YXRlVXBkYXRlXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKCF0aGlzLnJvdGF0aW5nXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgZGVsdGEgPSB0aGlzLmdldE1vdXNlRGVsdGFfKGUsIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fKTsKLSAgICAgIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fID0gdGhpcy5nZXRNb3VzZVBvc2l0aW9uXyhlKTsKLSAgICAgIHRoaXMudXBkYXRlUm90YXRlQnlEZWx0YShkZWx0YSk7Ci0gICAgfSwKLQotICAgIG9uUm90YXRlRW5kXzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5yb3RhdGluZ18gPSBmYWxzZTsKLSAgICB9LAotCi0KLSAgICAvLyBNaXNjIGhlbHBlciBmdW5jdGlvbnMuCi0gICAgZ2V0TW91c2VQb3NpdGlvbl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciByZWN0ID0gdHIuYi53aW5kb3dSZWN0Rm9yRWxlbWVudCh0aGlzLmNhbnZhc18pOwotICAgICAgcmV0dXJuIFsoZS5jbGllbnRYIC0gcmVjdC54KSAqIHRoaXMucGl4ZWxSYXRpb18sCi0gICAgICAgICAgICAgIChlLmNsaWVudFkgLSByZWN0LnkpICogdGhpcy5waXhlbFJhdGlvX107Ci0gICAgfSwKLQotICAgIGdldE1vdXNlRGVsdGFfOiBmdW5jdGlvbihlLCBwKSB7Ci0gICAgICB2YXIgbmV3UCA9IHRoaXMuZ2V0TW91c2VQb3NpdGlvbl8oZSk7Ci0gICAgICByZXR1cm4gW25ld1BbMF0gLSBwWzBdLCBuZXdQWzFdIC0gcFsxXV07Ci0gICAgfSwKLQotICAgIGRpc3BhdGNoUmVuZGVyRXZlbnRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAncmVuZGVycmVxdWlyZWQnLCBmYWxzZSwgZmFsc2UpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIENhbWVyYTogQ2FtZXJhCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NhbWVyYV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY2FtZXJhX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFkZmJhOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY2FtZXJhX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JlY3QuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcXVhZC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYm94Mi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9xdWFkX3N0YWNrX3ZpZXcuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLQotICBmdW5jdGlvbiBjcmVhdGVRdWFkcygpIHsKLSAgICB2YXIgcXVhZHMgPSBbCi0gICAgICB0ci5iLlF1YWQuZnJvbVhZV0goLTUwMCwgLTUwMCwgMzAsIDMwKSwgLy8gNCBjb3JuZXJzCi0gICAgICB0ci5iLlF1YWQuZnJvbVhZV0goLTUwMCwgNDcwLCAzMCwgMzApLAotICAgICAgdHIuYi5RdWFkLmZyb21YWVdIKDQ3MCwgLTUwMCwgMzAsIDMwKSwKLSAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCg0NzAsIDQ3MCwgMzAsIDMwKSwKLSAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgtMjUwLCAtMjUwLCAyNTAsIDI1MCksIC8vIGNyb3NzaGFpcnMKLSAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgwLCAtMjUwLCAyNTAsIDI1MCksIC8vIGNyb3NzaGFpcnMKLSAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgtMjUwLCAwLCAyNTAsIDI1MCksIC8vIGNyb3NzaGFpcnMKLSAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgwLCAwLCAyNTAsIDI1MCkgLy8gY3Jvc3NoYWlycwotICAgIF07Ci0gICAgcXVhZHNbMF0uc3RhY2tpbmdHcm91cElkID0gMDsKLSAgICBxdWFkc1sxXS5zdGFja2luZ0dyb3VwSWQgPSAwOwotICAgIHF1YWRzWzJdLnN0YWNraW5nR3JvdXBJZCA9IDA7Ci0gICAgcXVhZHNbM10uc3RhY2tpbmdHcm91cElkID0gMDsKLSAgICBxdWFkc1s0XS5zdGFja2luZ0dyb3VwSWQgPSAxOwotICAgIHF1YWRzWzVdLnN0YWNraW5nR3JvdXBJZCA9IDE7Ci0gICAgcXVhZHNbNl0uc3RhY2tpbmdHcm91cElkID0gMTsKLSAgICBxdWFkc1s3XS5zdGFja2luZ0dyb3VwSWQgPSAxOwotICAgIHJldHVybiBxdWFkczsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0ZVF1YWRTdGFja1ZpZXcodGVzdEZyYW1ld29yaykgewotICAgIHZhciBxdWFkcyA9IGNyZWF0ZVF1YWRzKCk7Ci0gICAgdmFyIHZpZXcgPSBuZXcgdHIuYi51aS5RdWFkU3RhY2tWaWV3KCk7Ci0gICAgLy8gc2ltdWxhdGUgdGhlIGNvbnN0cmFpbnRzIG9mIHRoZSBsYXllci10cmVlLXZpZXcKLSAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc0MDBweCc7Ci0gICAgdmlldy5zdHlsZS53aWR0aCA9ICc4MDBweCc7Ci0gICAgdmlldy5kZXZpY2VSZWN0ID0gdHIuYi5SZWN0LmZyb21YWVdIKC0yNTAsIC0yNTAsIDUwMCwgNTAwKTsKLSAgICB2aWV3LnF1YWRzID0gcXVhZHM7Ci0KLSAgICB0ZXN0RnJhbWV3b3JrLmFkZEhUTUxPdXRwdXQodmlldyk7Ci0gICAgcmV0dXJuIHZpZXc7Ci0gIH0KLQotICB0ZXN0KCdpbml0aWFsU3RhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGNyZWF0ZVF1YWRTdGFja1ZpZXcodGhpcyk7Ci0KLSAgICB2YXIgdmlld1JlY3QgPQotICAgICAgICB2aWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGFzc2VydC5lcXVhbCh2aWV3UmVjdC5oZWlnaHQsIDQwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXdSZWN0LndpZHRoLCA4MDApOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY2hhcnRfYmFzZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NoYXJ0X2Jhc2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFiYTI1Yy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY2hhcnRfYmFzZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kMy5odG1sIj4KLQotPHN0eWxlPgotICAqIC9kZWVwLyAuY2hhcnQtYmFzZSAjdGl0bGUgewotICAgIGZvbnQtc2l6ZTogMTZwdDsKLSAgfQotCi0gICogL2RlZXAvIC5jaGFydC1iYXNlIHsKLSAgICBmb250LXNpemU6IDEycHQ7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICBjdXJzb3I6IGRlZmF1bHQ7Ci0gIH0KLQotICAqIC9kZWVwLyAuY2hhcnQtYmFzZSAuYXhpcyBwYXRoLAotICAqIC9kZWVwLyAuY2hhcnQtYmFzZSAuYXhpcyBsaW5lIHsKLSAgICBmaWxsOiBub25lOwotICAgIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlczsKLSAgICBzdHJva2U6ICMwMDA7Ci0gIH0KLTwvc3R5bGU+Ci0KLTx0ZW1wbGF0ZSBpZD0iY2hhcnQtYmFzZS10ZW1wbGF0ZSI+Ci0gIDxzdmc+IDwhLS0gc3ZnIHRhZyBpcyBkcm9wcGVkIGJ5IENoYXJ0QmFzZS5kZWNvcmF0ZS4gLS0+Ci0gICAgPGcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0iY2hhcnQtYXJlYSI+Ci0gICAgICA8ZyBjbGFzcz0ieCBheGlzIj48L2c+Ci0gICAgICA8ZyBjbGFzcz0ieSBheGlzIj48L2c+Ci0gICAgICA8dGV4dCBpZD0idGl0bGUiPjwvdGV4dD4KLSAgICA8L2c+Ci0gIDwvc3ZnPgotPC90ZW1wbGF0ZT4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotCi0gIHZhciBzdmdOUyA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7Ci0gIHZhciBoaWdobGlnaHRJZEJvb3N0ID0gdHIuYi51aS5nZXRDb2xvclBhbGV0dGVIaWdobGlnaHRJZEJvb3N0KCk7Ci0KLSAgZnVuY3Rpb24gZ2V0Q29sb3JPZktleShrZXksIHNlbGVjdGVkKSB7Ci0gICAgdmFyIGlkID0gdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa2V5KTsKLSAgICBpZiAoc2VsZWN0ZWQpCi0gICAgICBpZCArPSBoaWdobGlnaHRJZEJvb3N0OwotICAgIHJldHVybiB0ci5iLnVpLmdldENvbG9yUGFsZXR0ZSgpW2lkXTsKLSAgfQotCi0gIC8qKgotICAgKiBBIHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgYmFzaWMgY2hhcnRzIHRoYXQgcHJvdmlkZXMgWCBhbmQgWSBheGVzLCBpZgotICAgKiBuZWVkZWQsIGEgdGl0bGUsIGFuZCBsZWdlbmQuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIENoYXJ0QmFzZSA9IHRyLmIudWkuZGVmaW5lKCdzdmcnLCB1bmRlZmluZWQsIHN2Z05TKTsKLQotICBDaGFydEJhc2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnY2hhcnQtYmFzZScpOwotICAgICAgdGhpcy5jaGFydFRpdGxlXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuZGF0YV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnNlcmllc0tleXNfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy53aWR0aF8gPSA0MDA7Ci0gICAgICB0aGlzLmhlaWdodF8gPSAzMDA7Ci0KLSAgICAgIC8vIFRoaXMgc2hvdWxkIHVzZSB0ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUuIEhvd2V2ZXIsIGNyZWF0aW5nCi0gICAgICAvLyBzdmctbmFtZXNwYWNlZCBlbGVtZW50cyBpbnNpZGUgYSB0ZW1wbGF0ZSBpc24ndCBwb3NzaWJsZS4gVGh1cywgdGhpcwotICAgICAgLy8gaGFjay4KLSAgICAgIHZhciB0ZW1wbGF0ZSA9IFRISVNfRE9DLnF1ZXJ5U2VsZWN0b3IoJyNjaGFydC1iYXNlLXRlbXBsYXRlJyk7Ci0gICAgICB2YXIgc3ZnRWwgPSB0ZW1wbGF0ZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdmdFbC5jaGlsZHJlbi5sZW5ndGg7IGkrKykKLSAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzdmdFbC5jaGlsZHJlbltpXS5jbG9uZU5vZGUodHJ1ZSkpOwotCi0gICAgICAvLyBzdmcgbGlrZXMgdG8gdGFrZSBvdmVyIHdpZHRoICYgaGVpZ2h0IHByb3BlcnRpZXMgZm9yIHNvbWUgcmVhc29uLiBUaGlzCi0gICAgICAvLyB3b3JrcyBhcm91bmQgaXQuCi0gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoCi0gICAgICAgICAgdGhpcywgJ3dpZHRoJywgewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2lkdGhfOwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHNldDogZnVuY3Rpb24od2lkdGgpIHsKLSAgICAgICAgICAgICAgdGhpcy53aWR0aF8gPSB3aWR0aDsKLSAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgKLSAgICAgICAgICB0aGlzLCAnaGVpZ2h0JywgewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0XzsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKGhlaWdodCkgewotICAgICAgICAgICAgICB0aGlzLmhlaWdodF8gPSBoZWlnaHQ7Ci0gICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGdldCBjaGFydFRpdGxlKCkgewotICAgICAgcmV0dXJuIGNoYXJ0VGl0bGVfOwotICAgIH0sCi0KLSAgICBzZXQgY2hhcnRUaXRsZShjaGFydFRpdGxlKSB7Ci0gICAgICB0aGlzLmNoYXJ0VGl0bGVfID0gY2hhcnRUaXRsZTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBjaGFydEFyZWFFbGVtZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcignI2NoYXJ0LWFyZWEnKTsKLSAgICB9LAotCi0gICAgZ2V0IGRhdGEoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5kYXRhXzsKLSAgICB9LAotCi0gICAgc2V0U2l6ZTogZnVuY3Rpb24oc2l6ZSkgewotICAgICAgdGhpcy53aWR0aF8gPSBzaXplLndpZHRoOwotICAgICAgdGhpcy5oZWlnaHRfID0gc2l6ZS5oZWlnaHQ7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgbWFyZ2luKCkgewotICAgICAgdmFyIG1hcmdpbiA9IHt0b3A6IDIwLCByaWdodDogMjAsIGJvdHRvbTogMzAsIGxlZnQ6IDUwfTsKLSAgICAgIGlmICh0aGlzLmNoYXJ0VGl0bGVfKQotICAgICAgICBtYXJnaW4udG9wICs9IDIwOwotICAgICAgcmV0dXJuIG1hcmdpbjsKLSAgICB9LAotCi0gICAgZ2V0IGNoYXJ0QXJlYVNpemUoKSB7Ci0gICAgICB2YXIgbWFyZ2luID0gdGhpcy5tYXJnaW47Ci0gICAgICByZXR1cm4gewotICAgICAgICB3aWR0aDogdGhpcy53aWR0aF8gLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodCwKLSAgICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodF8gLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbQotICAgICAgfTsKLSAgICB9LAotCi0gICAgZ2V0TGVnZW5kS2V5c186IGZ1bmN0aW9uKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgdXBkYXRlU2NhbGVzXzogZnVuY3Rpb24od2lkdGgsIGhlaWdodCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBtYXJnaW4gPSB0aGlzLm1hcmdpbjsKLSAgICAgIHZhciB3aWR0aCA9IHRoaXMuY2hhcnRBcmVhU2l6ZS53aWR0aDsKLSAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmNoYXJ0QXJlYVNpemUuaGVpZ2h0OwotCi0gICAgICB2YXIgdGhpc1NlbCA9IGQzLnNlbGVjdCh0aGlzKTsKLSAgICAgIHRoaXNTZWwuYXR0cignd2lkdGgnLCB0aGlzLndpZHRoXyk7Ci0gICAgICB0aGlzU2VsLmF0dHIoJ2hlaWdodCcsIHRoaXMuaGVpZ2h0Xyk7Ci0KLSAgICAgIHZhciBjaGFydEFyZWFTZWwgPSBkMy5zZWxlY3QodGhpcy5jaGFydEFyZWFFbGVtZW50KTsKLSAgICAgIGNoYXJ0QXJlYVNlbC5hdHRyKAotICAgICAgICAgICd0cmFuc2Zvcm0nLAotICAgICAgICAgICd0cmFuc2xhdGUoJyArIG1hcmdpbi5sZWZ0ICsgJywnICsgbWFyZ2luLnRvcCArICcpJyk7Ci0KLSAgICAgIHRoaXMudXBkYXRlU2NhbGVzXyh3aWR0aCwgaGVpZ2h0KTsKLQotICAgICAgLy8gQXhlcy4KLSAgICAgIGlmICh0aGlzLnhTY2FsZV8gJiYgdGhpcy55U2NhbGVfKSB7Ci0gICAgICAgIHZhciB4QXhpc1JlbmRlcmVyID0gZDMuc3ZnLmF4aXMoKQotICAgICAgICAgICAgLnNjYWxlKHRoaXMueFNjYWxlXykKLSAgICAgICAgICAgIC5vcmllbnQoJ2JvdHRvbScpOwotCi0gICAgICAgIHZhciB5QXhpc1JlbmRlcmVyID0gZDMuc3ZnLmF4aXMoKQotICAgICAgICAgICAgLnNjYWxlKHRoaXMueVNjYWxlXykKLSAgICAgICAgICAgIC5vcmllbnQoJ2xlZnQnKTsKLQotICAgICAgICBjaGFydEFyZWFTZWwuc2VsZWN0KCcueC5heGlzJykKLSAgICAgICAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDAsJyArIGhlaWdodCArICcpJykKLSAgICAgICAgICAgIC5jYWxsKHhBeGlzUmVuZGVyZXIpOwotCi0gICAgICAgIGNoYXJ0QXJlYVNlbC5zZWxlY3QoJy55LmF4aXMnKQotICAgICAgICAgICAgLmNhbGwoeUF4aXNSZW5kZXJlcik7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFRpdGxlLgotICAgICAgdmFyIHRpdGxlU2VsID0gY2hhcnRBcmVhU2VsLnNlbGVjdCgnI3RpdGxlJyk7Ci0gICAgICBpZiAodGhpcy5jaGFydFRpdGxlXykgewotICAgICAgICB0aXRsZVNlbC5hdHRyKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKCcgKyB3aWR0aCAqIDAuNSArICcsLTUpJykKLSAgICAgICAgICAgIC5zdHlsZSgnZGlzcGxheScsIHVuZGVmaW5lZCkKLSAgICAgICAgICAgIC5zdHlsZSgndGV4dC1hbmNob3InLCAnbWlkZGxlJykKLSAgICAgICAgICAgIC5hdHRyKCdjbGFzcycsICd0aXRsZScpCi0gICAgICAgICAgICAuYXR0cignd2lkdGgnLCB3aWR0aCkKLSAgICAgICAgICAgIC50ZXh0KHRoaXMuY2hhcnRUaXRsZV8pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGl0bGVTZWwuc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpOwotICAgICAgfQotCi0gICAgICAvLyBCYXNpY3MKLSAgICAgIHRoaXMudXBkYXRlTGVnZW5kXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVMZWdlbmRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBrZXlzID0gdGhpcy5nZXRMZWdlbmRLZXlzXygpOwotICAgICAgaWYgKGtleXMgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgY2hhcnRBcmVhU2VsID0gZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCk7Ci0gICAgICB2YXIgY2hhcnRBcmVhU2l6ZSA9IHRoaXMuY2hhcnRBcmVhU2l6ZTsKLQotICAgICAgdmFyIGxlZ2VuZEVudHJpZXNTZWwgPSBjaGFydEFyZWFTZWwuc2VsZWN0QWxsKCcubGVnZW5kJykKLSAgICAgICAgICAuZGF0YShrZXlzLnNsaWNlKCkucmV2ZXJzZSgpKTsKLQotICAgICAgbGVnZW5kRW50cmllc1NlbC5lbnRlcigpCi0gICAgICAgICAgLmFwcGVuZCgnZycpCi0gICAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ2xlZ2VuZCcpCi0gICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIGZ1bmN0aW9uKGQsIGkpIHsKLSAgICAgICAgICAgIHJldHVybiAndHJhbnNsYXRlKDAsJyArIGkgKiAyMCArICcpJzsKLSAgICAgICAgICB9KS5hcHBlbmQoJ3RleHQnKS50ZXh0KGZ1bmN0aW9uKGtleSkgewotICAgICAgICAgICAgcmV0dXJuIGtleTsKLSAgICAgICAgICB9KTsKLSAgICAgIGxlZ2VuZEVudHJpZXNTZWwuZXhpdCgpLnJlbW92ZSgpOwotCi0gICAgICBsZWdlbmRFbnRyaWVzU2VsLmF0dHIoJ3gnLCBjaGFydEFyZWFTaXplLndpZHRoIC0gMTgpCi0gICAgICAgICAgLmF0dHIoJ3dpZHRoJywgMTgpCi0gICAgICAgICAgLmF0dHIoJ2hlaWdodCcsIDE4KQotICAgICAgICAgIC5zdHlsZSgnZmlsbCcsIGZ1bmN0aW9uKGtleSkgewotICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhpcy5jdXJyZW50SGlnaGxpZ2h0ZWRMZWdlbmRLZXkgPT09IGtleTsKLSAgICAgICAgICAgIHJldHVybiBnZXRDb2xvck9mS2V5KGtleSwgc2VsZWN0ZWQpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0KLSAgICAgIGxlZ2VuZEVudHJpZXNTZWwuc2VsZWN0QWxsKCd0ZXh0JykKLSAgICAgICAgLmF0dHIoJ3gnLCBjaGFydEFyZWFTaXplLndpZHRoIC0gMjQpCi0gICAgICAgIC5hdHRyKCd5JywgOSkKLSAgICAgICAgLmF0dHIoJ2R5JywgJy4zNWVtJykKLSAgICAgICAgLnN0eWxlKCd0ZXh0LWFuY2hvcicsICdlbmQnKQotICAgICAgICAudGV4dChmdW5jdGlvbihkKSB7IHJldHVybiBkOyB9KTsKLSAgICB9LAotCi0gICAgZ2V0IGhpZ2hsaWdodGVkTGVnZW5kS2V5KCkgewotICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0ZWRMZWdlbmRLZXlfOwotICAgIH0sCi0KLSAgICBzZXQgaGlnaGxpZ2h0ZWRMZWdlbmRLZXkoaGlnaGxpZ2h0ZWRMZWdlbmRLZXkpIHsKLSAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRMZWdlbmRLZXlfID0gaGlnaGxpZ2h0ZWRMZWdlbmRLZXk7Ci0gICAgICB0aGlzLnVwZGF0ZUhpZ2hsaWdodF8oKTsKLSAgICB9LAotCi0gICAgZ2V0IGN1cnJlbnRIaWdobGlnaHRlZExlZ2VuZEtleSgpIHsKLSAgICAgIGlmICh0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV8pCi0gICAgICAgIHJldHVybiB0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV87Ci0gICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRlZExlZ2VuZEtleV87Ci0gICAgfSwKLQotICAgIHB1c2hUZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXk6IGZ1bmN0aW9uKGtleSkgewotICAgICAgaWYgKHRoaXMudGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5XykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwdXNoIGNhbm5vdCBuZXN0Jyk7Ci0gICAgICB0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV8gPSBrZXk7Ci0gICAgICB0aGlzLnVwZGF0ZUhpZ2hsaWdodF8oKTsKLSAgICB9LAotCi0gICAgcG9wVGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5OiBmdW5jdGlvbihrZXkpIHsKLSAgICAgIGlmICh0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV8gIT0ga2V5KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BvcCBjYW5ub3QgaGFwcGVuJyk7Ci0gICAgICB0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnVwZGF0ZUhpZ2hsaWdodF8oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlSGlnaGxpZ2h0XzogZnVuY3Rpb24oKSB7Ci0gICAgICAvLyBVcGRhdGUgbGFiZWwgY29sb3JzLgotICAgICAgdmFyIGNoYXJ0QXJlYVNlbCA9IGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpOwotICAgICAgdmFyIGxlZ2VuZEVudHJpZXNTZWwgPSBjaGFydEFyZWFTZWwuc2VsZWN0QWxsKCcubGVnZW5kJyk7Ci0KLSAgICAgIHZhciB0aGF0ID0gdGhpczsKLSAgICAgIGxlZ2VuZEVudHJpZXNTZWwuZWFjaChmdW5jdGlvbihrZXkpIHsKLSAgICAgICAgdmFyIGhpZ2hsaWdodGVkID0ga2V5ID09IHRoYXQuY3VycmVudEhpZ2hsaWdodGVkTGVnZW5kS2V5OwotICAgICAgICB2YXIgY29sb3IgPSBnZXRDb2xvck9mS2V5KGtleSwgaGlnaGxpZ2h0ZWQpOwotICAgICAgICB0aGlzLnN0eWxlLmZpbGwgPSBjb2xvcjsKLSAgICAgICAgaWYgKGhpZ2hsaWdodGVkKQotICAgICAgICAgIHRoaXMuc3R5bGUuZm9udFdlaWdodCA9ICdib2xkJzsKLSAgICAgICAgZWxzZQotICAgICAgICAgIHRoaXMuc3R5bGUuZm9udFdlaWdodCA9ICcnOwotICAgICAgfSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgZ2V0Q29sb3JPZktleTogZ2V0Q29sb3JPZktleSwKLSAgICBDaGFydEJhc2U6IENoYXJ0QmFzZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl9sZWdlbmQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl9sZWdlbmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ5OGNhOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29sb3JfbGVnZW5kLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLQotPCEtLQotQGZpbGVvdmVydmlldyBBIGNvbXBvbmVudCB1c2VkIHRvIGRpc3BsYXkgYSBsYWJlbCBwcmVjZWRlZCBieSBhIHNtYWxsIHNxdWFyZQotZmlsbGVkIHdpdGggdGhlIGxhYmVsJ3MgYXNzb2NpYXRlZCBjb2xvciAoYXMgZGV0ZXJtaW5lZCBieQotdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcpLgotLS0+Ci08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdWktY29sb3ItbGVnZW5kIj4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0gICAgfQotCi0gICAgI3NxdWFyZSB7Ci0gICAgICBmb250LXNpemU6IDE1MCU7ICAvKiBNYWtlIHRoZSBzcXVhcmUgYmlnZ2VyLiAqLwotICAgICAgbGluZS1oZWlnaHQ6IDAlOyAgLyogUHJldmVudCB0aGUgc3F1YXJlIGZyb20gaW5jcmVhc2luZyBsZWdlbmQgaGVpZ2h0LiAqLwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxzcGFuIGlkPSJzcXVhcmUiPjwvc3Bhbj4KLSAgICA8c3BhbiBpZD0ibGFiZWwiPjwvc3Bhbj4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBibGFja1NxdWFyZUNoYXJDb2RlID0gOTYzMjsKLSAgICAgIHRoaXMuJC5zcXVhcmUuaW5uZXJUZXh0ID0gU3RyaW5nLmZyb21DaGFyQ29kZShibGFja1NxdWFyZUNoYXJDb2RlKTsKLSAgICAgIHRoaXMubGFiZWxfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBnZXQgbGFiZWwoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sYWJlbF87Ci0gICAgfSwKLQotICAgIHNldCBsYWJlbChsYWJlbCkgewotICAgICAgdGhpcy5sYWJlbF8gPSBsYWJlbDsKLQotICAgICAgaWYgKHRoaXMubGFiZWxfID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy4kLnNxdWFyZS5zdHlsZS5jb2xvciA9ICdpbml0aWFsJzsKLSAgICAgICAgdGhpcy4kLmxhYmVsLmlubmVyVGV4dCA9ICcnOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHZhciBwYWxldHRlUmF3ID0gdHIuYi51aS5nZXRSYXdDb2xvclBhbGV0dGUoKTsKLSAgICAgIHZhciBjb2xvcklkID0gdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcodGhpcy5sYWJlbF8pOwotICAgICAgdmFyIGNvbG9yID0gdHIuYi51aS5jb2xvclRvUkdCU3RyaW5nKHBhbGV0dGVSYXdbY29sb3JJZF0pOwotICAgICAgdGhpcy4kLnNxdWFyZS5zdHlsZS5jb2xvciA9IGNvbG9yOwotICAgICAgdGhpcy4kLmxhYmVsLmlubmVyVGV4dCA9IHRoaXMubGFiZWxfOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29sb3JfbGVnZW5kX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl9sZWdlbmRfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTA5Y2UxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl9sZWdlbmRfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9jb2xvcl9sZWdlbmQuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdiYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIC8vIE5vIGxhYmVsIHNldC4KLSAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLWNvbG9yLWxlZ2VuZCcpOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjb2xvckxlZ2VuZCk7Ci0KLSAgICAvLyBVbmRlZmluZWQgbGFiZWwuCi0gICAgdmFyIGNvbG9yTGVnZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1jb2xvci1sZWdlbmQnKTsKLSAgICBjb2xvckxlZ2VuZC5sYWJlbCA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29sb3JMZWdlbmQpOwotCi0gICAgLy8gRW1wdHkgbGFiZWwuCi0gICAgdmFyIGNvbG9yTGVnZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1jb2xvci1sZWdlbmQnKTsKLSAgICBjb2xvckxlZ2VuZC5sYWJlbCA9ICcnOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjb2xvckxlZ2VuZCk7Ci0KLSAgICAvLyBOb24tZW1wdHkgbGFiZWwuCi0gICAgdmFyIGNvbG9yTGVnZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1jb2xvci1sZWdlbmQnKTsKLSAgICBjb2xvckxlZ2VuZC5sYWJlbCA9ICdGcmVxdWVuY3knOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjb2xvckxlZ2VuZCk7Ci0KLSAgICAvLyBMb25nIGxhYmVsLgotICAgIHZhciBjb2xvckxlZ2VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktY29sb3ItbGVnZW5kJyk7Ci0gICAgY29sb3JMZWdlbmQubGFiZWwgPSAnVG90YWwgbWVtb3J5IHVzYWdlJzsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29sb3JMZWdlbmQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29sb3Jfc2NoZW1lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29sb3Jfc2NoZW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNDgxMGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjA0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvY29sb3JfdXRpbHMuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgY29sb3Igc2NoZW1lIHJlbGF0ZWQgZnVuY3Rpb25zLgotICovCi10ci5leHBvcnRUbygndHIuYi51aScsIGZ1bmN0aW9uKCkgewotICB2YXIgY29sb3JUb1JHQlN0cmluZyA9IHRyLmIudWkuY29sb3JUb1JHQlN0cmluZzsKLSAgdmFyIGNvbG9yVG9SR0JBU3RyaW5nID0gdHIuYi51aS5jb2xvclRvUkdCQVN0cmluZzsKLQotICAvLyBCYXNpYyBjb25zdGFudHMuLi4KLQotICB2YXIgZ2VuZXJhbFB1cnBvc2VDb2xvcnMgPSBbCi0gICAge3I6IDEzOCwgZzogMTEzLCBiOiAxNTJ9LAotICAgIHtyOiAxNzUsIGc6IDExMiwgYjogMTMzfSwKLSAgICB7cjogMTI3LCBnOiAxMzUsIGI6IDIyNX0sCi0gICAge3I6IDkzLCBnOiA4MSwgYjogMTM3fSwKLSAgICB7cjogMTE2LCBnOiAxNDMsIGI6IDExOX0sCi0gICAge3I6IDE3OCwgZzogMjE0LCBiOiAxMjJ9LAotICAgIHtyOiA4NywgZzogMTA5LCBiOiAxNDd9LAotICAgIHtyOiAxMTksIGc6IDE1NSwgYjogOTV9LAotICAgIHtyOiAxMTQsIGc6IDE4MCwgYjogMTYwfSwKLSAgICB7cjogMTMyLCBnOiA4NSwgYjogMTAzfSwKLSAgICB7cjogMTU3LCBnOiAyMTAsIGI6IDE1MH0sCi0gICAge3I6IDE0OCwgZzogOTQsIGI6IDg2fSwKLSAgICB7cjogMTY0LCBnOiAxMDgsIGI6IDEzOH0sCi0gICAge3I6IDEzOSwgZzogMTkxLCBiOiAxNTB9LAotICAgIHtyOiAxMTAsIGc6IDk5LCBiOiAxNDV9LAotICAgIHtyOiA4MCwgZzogMTI5LCBiOiAxMDl9LAotICAgIHtyOiAxMjUsIGc6IDE0MCwgYjogMTQ5fSwKLSAgICB7cjogOTMsIGc6IDEyNCwgYjogMTMyfSwKLSAgICB7cjogMTQwLCBnOiA4NSwgYjogMTQwfSwKLSAgICB7cjogMTA0LCBnOiAxNjMsIGI6IDE2Mn0sCi0gICAge3I6IDEzMiwgZzogMTQxLCBiOiAxNzh9LAotICAgIHtyOiAxMzEsIGc6IDEwNSwgYjogMTQ3fSwKLSAgICB7cjogMTM1LCBnOiAxODMsIGI6IDk4fSwKLSAgICB7cjogMTUyLCBnOiAxMzQsIGI6IDE3N30sCi0gICAge3I6IDE0MSwgZzogMTg4LCBiOiAxNDF9LAotICAgIHtyOiAxMzMsIGc6IDE2MCwgYjogMjEwfSwKLSAgICB7cjogMTI2LCBnOiAxODYsIGI6IDE0OH0sCi0gICAge3I6IDExMiwgZzogMTk4LCBiOiAyMDV9LAotICAgIHtyOiAxODAsIGc6IDEyMiwgYjogMTk1fSwKLSAgICB7cjogMjAzLCBnOiAxNDQsIGI6IDE1Mn1dOwotCi0gIHZhciByZXNlcnZlZENvbG9yc0J5TmFtZSA9IHsKLSAgICB0aHJlYWRfc3RhdGVfaW93YWl0OiB7cjogMTgyLCBnOiAxMjUsIGI6IDE0M30sCi0gICAgdGhyZWFkX3N0YXRlX3J1bm5pbmc6IHtyOiAxMjYsIGc6IDIwMCwgYjogMTQ4fSwKLSAgICB0aHJlYWRfc3RhdGVfcnVubmFibGU6IHtyOiAxMzMsIGc6IDE2MCwgYjogMjEwfSwKLSAgICB0aHJlYWRfc3RhdGVfc2xlZXBpbmc6IHtyOiAyNDAsIGc6IDI0MCwgYjogMjQwfSwKLSAgICB0aHJlYWRfc3RhdGVfdW5rbm93bjoge3I6IDE5OSwgZzogMTU1LCBiOiAxMjV9LAotCi0gICAgbWVtb3J5X2R1bXA6IHtyOiAwLCBnOiAwLCBiOiAxODB9LAotCi0gICAgZ2VuZXJpY193b3JrOiB7cjogMTI1LCBnOiAxMjUsIGI6IDEyNX0sCi0KLSAgICBnb29kOiB7cjogMCwgZzogMTI1LCBiOiAwfSwKLSAgICBiYWQ6IHtyOiAxODAsIGc6IDEyNSwgYjogMH0sCi0gICAgdGVycmlibGU6IHtyOiAxODAsIGc6IDAsIGI6IDB9LAotCi0gICAgYmxhY2s6IHtyOiAwLCBnOiAwLCBiOiAwfSwKLQotICAgIHJhaWxfcmVzcG9uc2U6IHtyOiA2NywgZzogMTM1LCBiOiAyNTN9LAotICAgIHJhaWxfYW5pbWF0ZToge3I6IDI0NCwgZzogNzQsIGI6IDYzfSwKLSAgICByYWlsX2lkbGU6IHtyOiAyMzgsIGc6IDE0MiwgYjogMH0sCi0gICAgcmFpbF9sb2FkOiB7cjogMTMsIGc6IDE2OCwgYjogOTd9Ci0gIH07Ci0KLSAgLy8gU29tZSBjb25zdGFudHMgd2UnbGwgbmVlZCBmb3IgbGF0ZXIgbG9va3Vwcy4KLSAgdmFyIG51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHMgPSBnZW5lcmFsUHVycG9zZUNvbG9ycy5sZW5ndGg7Ci0gIHZhciBudW1SZXNlcnZlZENvbG9ySWRzID0gdHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKHJlc2VydmVkQ29sb3JzQnlOYW1lKTsKLQotICAvLyBUaGUgY29sb3IgcGFsZXR0ZSBpcyBzcGxpdCBpbiBoYWxmLCB3aXRoIHRoZSB1cHBlcgotICAvLyBoYWxmIG9mIHRoZSBwYWxldHRlIGJlaW5nIHRoZSAiaGlnaGxpZ2h0ZWQiIHZlcmlzb24KLSAgLy8gb2YgdGhlIGJhc2UgY29sb3IuIFNvLCBjb2xvciA3J3MgaGlnaGxpZ2h0ZWQgZm9ybSBpcwotICAvLyA3ICsgKHBhbGV0dGUubGVuZ3RoIC8gMikuCi0gIC8vCi0gIC8vIFRoZXNlIGJyaWdodCB2ZXJzaW9ucyBvZiBjb2xvcnMgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkCi0gIC8vIGZyb20gdGhlIGJhc2UgY29sb3JzLgotICAvLwotICAvLyBXaXRoaW4gdGhlIGNvbG9yIHBhbGV0dGUsIHRoZXJlIGFyZSAiZ2VuZXJhbCBwdXJwb3NlIiBjb2xvcnMsCi0gIC8vIHdoaWNoIGNhbiBiZSB1c2VkIGZvciByYW5kb20gY29sb3Igc2VsZWN0aW9uLCBhbmQKLSAgLy8gcmVzZXJ2ZWQgY29sb3JzLCB3aGljaCBhcmUgdXNlZCB3aGVuIHNwZWNpZmljIGNvbG9ycwotICAvLyBuZWVkIHRvIGJlIHVzZWQsIGUuZy4gd2hlcmUgcmVkIGlzIGRlc2lyZWQuCi0gIHZhciBwYWxldHRlUmF3ID0gKGZ1bmN0aW9uKCkgewotICAgIHZhciBwYWxldHRlQmFzZSA9IFtdOwotICAgIHBhbGV0dGVCYXNlLnB1c2guYXBwbHkocGFsZXR0ZUJhc2UsIGdlbmVyYWxQdXJwb3NlQ29sb3JzKTsKLSAgICBwYWxldHRlQmFzZS5wdXNoLmFwcGx5KHBhbGV0dGVCYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHJlc2VydmVkQ29sb3JzQnlOYW1lKSk7Ci0gICAgcmV0dXJuIHBhbGV0dGVCYXNlLmNvbmNhdChwYWxldHRlQmFzZS5tYXAodHIuYi51aS5icmlnaHRlbkNvbG9yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGVCYXNlLm1hcCh0ci5iLnVpLmRlc2F0dXJhdGVDb2xvcikpOwotICB9KSgpOwotICB2YXIgcGFsZXR0ZSA9IHBhbGV0dGVSYXcubWFwKGNvbG9yVG9SR0JTdHJpbmcpOwotCi0gIHZhciBoaWdobGlnaHRJZEJvb3N0ID0gcGFsZXR0ZVJhdy5sZW5ndGggLyAzOwotICB2YXIgZGVzYXR1cmF0ZUlkQm9vc3QgPSAocGFsZXR0ZVJhdy5sZW5ndGggLyAzKSAqIDI7Ci0KLSAgLy8gQnVpbGQgcmVzZXJ2ZWRDb2xvck5hbWVUb0lkTWFwLgotICB2YXIgcmVzZXJ2ZWRDb2xvck5hbWVUb0lkTWFwID0gKGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0ge307Ci0gICAgdmFyIGkgPSBnZW5lcmFsUHVycG9zZUNvbG9ycy5sZW5ndGg7Ci0gICAgdHIuYi5pdGVySXRlbXMocmVzZXJ2ZWRDb2xvcnNCeU5hbWUsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKLSAgICAgIG1ba2V5XSA9IGkrKzsKLSAgICB9KTsKLSAgICByZXR1cm4gbTsKLSAgfSkoKTsKLQotICAvKioKLSAgICogQ29tcHV0ZXMgYSBzaW1wbGlzdGljIGhhc2hjb2RlIG9mIHRoZSBwcm92aWRlIG5hbWUuIFVzZWQgdG8gY2hvc2UgY29sb3JzCi0gICAqIGZvciBzbGljZXMuCi0gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFRoZSBzdHJpbmcgdG8gaGFzaC4KLSAgICovCi0gIGZ1bmN0aW9uIGdldFN0cmluZ0hhc2gobmFtZSkgewotICAgIHZhciBoYXNoID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyArK2kpCi0gICAgICBoYXNoID0gKGhhc2ggKyAzNyAqIGhhc2ggKyAxMSAqIG5hbWUuY2hhckNvZGVBdChpKSkgJSAweEZGRkZGRkZGOwotICAgIHJldHVybiBoYXNoOwotICB9Ci0KLSAgLyoqCi0gICAqIEdldHMgdGhlIGNvbG9yIHBhbGV0dGUuCi0gICAqLwotICBmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGUoKSB7Ci0gICAgcmV0dXJuIHBhbGV0dGU7Ci0gIH0KLQotICAvKioKLSAgICogR2V0cyB0aGUgcmF3IGNvbG9yIHBhbGV0dGUsIHdoZXJlIGVudHJpZXMgYXJlIHN0aWxsIG9iamVjdHMuCi0gICAqLwotICBmdW5jdGlvbiBnZXRSYXdDb2xvclBhbGV0dGUoKSB7Ci0gICAgcmV0dXJuIHBhbGV0dGVSYXc7Ci0gIH0KLQotICAvKioKLSAgICogQHJldHVybiB7TnVtYmVyfSBUaGUgdmFsdWUgdG8gYWRkIHRvIGEgY29sb3IgSUQgdG8gZ2V0IGl0cyBoaWdobGlnaHRlZAotICAgKiBjb2xvciBJRC4gRS5nLiA3ICsgZ2V0UGFsZXR0ZUhpZ2hsaWdodElkQm9vc3QoKSB5aWVsZHMgYSBicmlnaHRlbmVkIGZvcm0KLSAgICogb2YgNydzIGJhc2UgY29sb3IuCi0gICAqLwotICBmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGVIaWdobGlnaHRJZEJvb3N0KCkgewotICAgIHJldHVybiBoaWdobGlnaHRJZEJvb3N0OwotICB9Ci0gIC8qKgotICAgKiBAcmV0dXJuIHtOdW1iZXJ9IFRoZSB2YWx1ZSB0byBhZGQgdG8gYSBjb2xvciBJRCB0byBnZXQgaXRzIGRlc2F0dXJhdGVkCi0gICAqIGNvbG9yIElELiBFLmcuIDcgKyBnZXRQYWxldHRlRGVzYXR1cmF0ZUlkQm9vc3QoKSB5aWVsZHMgYSBkZXNhdHVyYXRlIGZvcm0KLSAgICogb2YgNydzIGJhc2UgY29sb3IuCi0gICAqLwotICBmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGVEZXNhdHVyYXRlSWRCb29zdCgpIHsKLSAgICByZXR1cm4gZGVzYXR1cmF0ZUlkQm9vc3Q7Ci0gIH0KLQotICAvKioKLSAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgVGhlIGNvbG9yIG5hbWUuCi0gICAqIEByZXR1cm4ge051bWJlcn0gVGhlIGNvbG9yIElEIGZvciB0aGUgZ2l2ZW4gY29sb3IgbmFtZS4KLSAgICovCi0gIGZ1bmN0aW9uIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUobmFtZSkgewotICAgIHZhciBpZCA9IHJlc2VydmVkQ29sb3JOYW1lVG9JZE1hcFtuYW1lXTsKLSAgICBpZiAoaWQgPT09IHVuZGVmaW5lZCkKLSAgICAgIHRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIGNvbG9yICcpICsgbmFtZTsKLSAgICByZXR1cm4gaWQ7Ci0gIH0KLQotICAvLyBQcmV2aW91c2x5IGNvbXB1dGVkIHN0cmluZyBjb2xvciBJRHMuIFRoZXkgYXJlIGJhc2VkIG9uIGEgc3RhYmxlIGhhc2gsIHNvCi0gIC8vIGl0IGlzIHNhZmUgdG8gc2F2ZSB0aGVtIHRocm91Z2hvdXQgdGhlIHByb2dyYW0gdGltZS4KLSAgdmFyIHN0cmluZ0NvbG9ySWRDYWNoZSA9IHt9OwotCi0gIC8qKgotICAgKiBAcmV0dXJuIHtOdW1iZXJ9IEEgY29sb3IgSUQgdGhhdCBpcyBzdGFibHkgYXNzb2NpYXRlZCB0byB0aGUgcHJvdmlkZWQgdmlhCi0gICAqIHRoZSBnZXRTdHJpbmdIYXNoIG1ldGhvZC4gVGhlIGNvbG9yIElEIHdpbGwgYmUgY2hvc2VuIGZyb20gdGhlIGdlbmVyYWwKLSAgICogcHVycG9zZSBJRCBzcGFjZSBvbmx5LCBlLmcuIG5vIHJlc2VydmVkIElEIHdpbGwgYmUgdXNlZC4KLSAgICovCi0gIGZ1bmN0aW9uIGdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhzdHJpbmcpIHsKLSAgICBpZiAoc3RyaW5nQ29sb3JJZENhY2hlW3N0cmluZ10gPT09IHVuZGVmaW5lZCkgewotICAgICAgdmFyIGhhc2ggPSBnZXRTdHJpbmdIYXNoKHN0cmluZyk7Ci0gICAgICBzdHJpbmdDb2xvcklkQ2FjaGVbc3RyaW5nXSA9IGhhc2ggJSBudW1HZW5lcmFsUHVycG9zZUNvbG9ySWRzOwotICAgIH0KLSAgICByZXR1cm4gc3RyaW5nQ29sb3JJZENhY2hlW3N0cmluZ107Ci0gIH0KLQotICB2YXIgcGFsZXR0ZVByb3BlcnRpZXMgPSB7Ci0gICAgbnVtR2VuZXJhbFB1cnBvc2VDb2xvcklkczogbnVtR2VuZXJhbFB1cnBvc2VDb2xvcklkcywKLSAgICBoaWdobGlnaHRJZEJvb3N0OiBoaWdobGlnaHRJZEJvb3N0LAotICAgIGRlc2F0dXJhdGVJZEJvb3N0OiBkZXNhdHVyYXRlSWRCb29zdAotICB9OwotCi0gIHJldHVybiB7Ci0gICAgZ2V0UmF3Q29sb3JQYWxldHRlOiBnZXRSYXdDb2xvclBhbGV0dGUsCi0gICAgZ2V0Q29sb3JQYWxldHRlOiBnZXRDb2xvclBhbGV0dGUsCi0gICAgcGFsZXR0ZVByb3BlcnRpZXM6IHBhbGV0dGVQcm9wZXJ0aWVzLAotICAgIGdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3Q6IGdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3QsCi0gICAgZ2V0Q29sb3JQYWxldHRlRGVzYXR1cmF0ZUlkQm9vc3Q6IGdldENvbG9yUGFsZXR0ZURlc2F0dXJhdGVJZEJvb3N0LAotICAgIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWU6IGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUsCi0gICAgZ2V0U3RyaW5nSGFzaDogZ2V0U3RyaW5nSGFzaCwKLSAgICBnZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmc6IGdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl9zY2hlbWVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NvbG9yX3NjaGVtZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMWZkM2QuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NvbG9yX3NjaGVtZV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBicmlnaHRlbiA9IHRyLmIudWkuYnJpZ2h0ZW5Db2xvcjsKLSAgdmFyIGRlc2F0dXJhdGUgPSB0ci5iLnVpLmRlc2F0dXJhdGVDb2xvcjsKLQotICB0ZXN0KCdidWlsZENvbG9yUGFsZXR0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwYWxldHRlID0gdHIuYi51aS5nZXRDb2xvclBhbGV0dGUoKTsKLSAgICB2YXIgcmF3UGFsZXR0ZSA9IHRyLmIudWkuZ2V0UmF3Q29sb3JQYWxldHRlKCk7Ci0gICAgdmFyIGhpZ2hsaWdodE9mZnNldCA9IHRyLmIudWkuZ2V0Q29sb3JQYWxldHRlSGlnaGxpZ2h0SWRCb29zdCgpOwotICAgIHZhciBkZXNhdHVyYXRlT2Zmc2V0ID0gdHIuYi51aS5nZXRDb2xvclBhbGV0dGVEZXNhdHVyYXRlSWRCb29zdCgpOwotCi0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhbGV0dGUubGVuZ3RoLCByYXdQYWxldHRlLmxlbmd0aCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhbGV0dGUubGVuZ3RoICUgMywgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhbGV0dGUubGVuZ3RoIC8gMywgaGlnaGxpZ2h0T2Zmc2V0KTsKLSAgICBhc3NlcnQuZXF1YWwoKHBhbGV0dGUubGVuZ3RoIC8gMykgKiAyLCBkZXNhdHVyYXRlT2Zmc2V0KTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3UGFsZXR0ZS5sZW5ndGggLyAzOyBpKyspIHsKLSAgICAgIGFzc2VydC5kZWVwRXF1YWwocmF3UGFsZXR0ZVtpICsgaGlnaGxpZ2h0T2Zmc2V0XSwKLSAgICAgICAgICAgICAgICAgICAgICAgYnJpZ2h0ZW4ocmF3UGFsZXR0ZVtpXSkpOwotICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyYXdQYWxldHRlW2kgKyBkZXNhdHVyYXRlT2Zmc2V0XSwKLSAgICAgICAgICAgICAgICAgICAgICAgZGVzYXR1cmF0ZShyYXdQYWxldHRlW2ldKSk7Ci0gICAgfQotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29sb3JfdXRpbHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl91dGlscy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTIyNzkxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb2xvcl91dGlscy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyBjb2xvciBzY2hlbWUgcmVsYXRlZCBmdW5jdGlvbnMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5iLnVpJywgZnVuY3Rpb24oKSB7Ci0KLSAgZnVuY3Rpb24gYm91bmRDaGFubmVsKHYpIHsKLSAgICByZXR1cm4gTWF0aC5taW4oMjU1LCBNYXRoLm1heCgwLCBNYXRoLmZsb29yKHYpKSk7Ci0gIH0KLQotICBmdW5jdGlvbiBicmlnaHRlbkNvbG9yKGMpIHsKLSAgICB2YXIgazsKLSAgICBpZiAoYy5yID49IDI0MCAmJiBjLmcgPj0gMjQwICYmIGMuYiA+PSAyNDApCi0gICAgICBrID0gMC44MDsKLSAgICBlbHNlCi0gICAgICBrID0gMS40NTsKLQotICAgIHJldHVybiB7Ci0gICAgICByOiBib3VuZENoYW5uZWwoYy5yICogayksCi0gICAgICBnOiBib3VuZENoYW5uZWwoYy5nICogayksCi0gICAgICBiOiBib3VuZENoYW5uZWwoYy5iICogaykKLSAgICB9OwotICB9Ci0gIGZ1bmN0aW9uIGRlc2F0dXJhdGVDb2xvcihjKSB7Ci0gICAgdmFyIHZhbHVlID0gYm91bmRDaGFubmVsKChjLnIgKyBjLmcgKyBjLmIpIC8gMyk7Ci0gICAgcmV0dXJuIHsgcjogdmFsdWUsIGc6IHZhbHVlLCBiOiB2YWx1ZSB9OwotICB9Ci0gIGZ1bmN0aW9uIGNvbG9yVG9SR0JTdHJpbmcoYykgewotICAgIHJldHVybiAncmdiKCcgKyBjLnIgKyAnLCcgKyBjLmcgKyAnLCcgKyBjLmIgKyAnKSc7Ci0gIH0KLSAgZnVuY3Rpb24gY29sb3JUb1JHQkFTdHJpbmcoYywgYSkgewotICAgIHJldHVybiAncmdiYSgnICsgYy5yICsgJywnICsgYy5nICsgJywnICsgYy5iICsgJywnICsgYSArICcpJzsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgYnJpZ2h0ZW5Db2xvcjogYnJpZ2h0ZW5Db2xvciwKLSAgICBkZXNhdHVyYXRlQ29sb3I6IGRlc2F0dXJhdGVDb2xvciwKLSAgICBjb2xvclRvUkdCU3RyaW5nOiBjb2xvclRvUkdCU3RyaW5nLAotICAgIGNvbG9yVG9SR0JBU3RyaW5nOiBjb2xvclRvUkdCQVN0cmluZwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb21tb24uY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NvbW1vbi5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwOTkxYzIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NvbW1vbi5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotICovCi0KLS8qIEdsb2JhbCBDU1MgdmFsdWVzLCBhcHBsaWVkIGFwcGxpY2F0aW9uLXdpZGUgKi8KLQotYm9keSAqIHsKLSAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgYm94LXNpemluZzogYm9yZGVyLWJveDsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb250YWluZXJfdGhhdF9kZWNvcmF0ZXNfaXRzX2NoaWxkcmVuLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZmNiMWFjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9jb250YWluZXJfdGhhdF9kZWNvcmF0ZXNfaXRzX2NoaWxkcmVuLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IENvbnRhaW5lciB0aGF0IGRlY29yYXRlcyBpdHMgY2hpbGRyZW4uCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5iLnVpJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBDb250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4gPSB0ci5iLnVpLmRlZmluZSgnZGl2Jyk7Ci0KLSAgQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLm9ic2VydmVyXyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKHRoaXMuZGlkTXV0YXRlXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMub2JzZXJ2ZXJfLm9ic2VydmUodGhpcywgeyBjaGlsZExpc3Q6IHRydWUgfSk7Ci0KLSAgICAgIC8vIHRleHRDb250ZW50IGlzIGEgdmFyaWFibGUgb24gcmVndWxhciBIVE1MRWxlbWVudHMuIEhvd2V2ZXIsIHdlIHdhbnQgdG8KLSAgICAgIC8vIGhvb2sgYW5kIHByZXZlbnQgd3JpdGVzIHRvIGl0LgotICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KAotICAgICAgICAgIHRoaXMsICd0ZXh0Q29udGVudCcsCi0gICAgICAgICAgeyBnZXQ6IHVuZGVmaW5lZCwgc2V0OiB0aGlzLm9uU2V0VGV4dENvbnRlbnRffSk7Ci0gICAgfSwKLQotICAgIGFwcGVuZENoaWxkOiBmdW5jdGlvbih4KSB7Ci0gICAgICBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZENoaWxkLmNhbGwodGhpcywgeCk7Ci0gICAgICB0aGlzLmRpZE11dGF0ZV8odGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKSk7Ci0gICAgfSwKLQotICAgIGluc2VydEJlZm9yZTogZnVuY3Rpb24oeCwgeSkgewotICAgICAgSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZS5pbnNlcnRCZWZvcmUuY2FsbCh0aGlzLCB4LCB5KTsKLSAgICAgIHRoaXMuZGlkTXV0YXRlXyh0aGlzLm9ic2VydmVyXy50YWtlUmVjb3JkcygpKTsKLSAgICB9LAotCi0gICAgcmVtb3ZlQ2hpbGQ6IGZ1bmN0aW9uKHgpIHsKLSAgICAgIEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hpbGQuY2FsbCh0aGlzLCB4KTsKLSAgICAgIHRoaXMuZGlkTXV0YXRlXyh0aGlzLm9ic2VydmVyXy50YWtlUmVjb3JkcygpKTsKLSAgICB9LAotCi0gICAgcmVwbGFjZUNoaWxkOiBmdW5jdGlvbih4LCB5KSB7Ci0gICAgICBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLnJlcGxhY2VDaGlsZC5jYWxsKHRoaXMsIHgsIHkpOwotICAgICAgdGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpOwotICAgIH0sCi0KLSAgICBvblNldFRleHRDb250ZW50XzogZnVuY3Rpb24odGV4dENvbnRlbnQpIHsKLSAgICAgIGlmICh0ZXh0Q29udGVudCAhPSAnJykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0ZXh0Q29udGVudCBjYW4gb25seSBiZSBzZXQgdG8gXCdcJy4nKTsKLSAgICAgIHRoaXMuY2xlYXIoKTsKLSAgICB9LAotCi0gICAgY2xlYXI6IGZ1bmN0aW9uKCkgewotICAgICAgd2hpbGUgKHRoaXMubGFzdENoaWxkKQotICAgICAgICBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkLmNhbGwodGhpcywgdGhpcy5sYXN0Q2hpbGQpOwotICAgICAgdGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpOwotICAgIH0sCi0KLSAgICBkaWRNdXRhdGVfOiBmdW5jdGlvbihyZWNvcmRzKSB7Ci0gICAgICB0aGlzLmJlZ2luRGVjb3JhdGluZ18oKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgYWRkZWROb2RlcyA9IHJlY29yZHNbaV0uYWRkZWROb2RlczsKLSAgICAgICAgaWYgKGFkZGVkTm9kZXMpIHsKLSAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFkZGVkTm9kZXMubGVuZ3RoOyBqKyspCi0gICAgICAgICAgICB0aGlzLmRlY29yYXRlQ2hpbGRfKGFkZGVkTm9kZXNbal0pOwotICAgICAgICB9Ci0gICAgICAgIHZhciByZW1vdmVkTm9kZXMgPSByZWNvcmRzW2ldLnJlbW92ZWROb2RlczsKLSAgICAgICAgaWYgKHJlbW92ZWROb2RlcykgewotICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcmVtb3ZlZE5vZGVzLmxlbmd0aDsgaisrKSB7Ci0gICAgICAgICAgICB0aGlzLnVuZGVjb3JhdGVDaGlsZF8ocmVtb3ZlZE5vZGVzW2pdKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHRoaXMuZG9uZURlY29yYXRpbmdGb3JOb3dfKCk7Ci0gICAgfSwKLQotICAgIGRlY29yYXRlQ2hpbGRfOiBmdW5jdGlvbihjaGlsZCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgdW5kZWNvcmF0ZUNoaWxkXzogZnVuY3Rpb24oY2hpbGQpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIGJlZ2luRGVjb3JhdGluZ186IGZ1bmN0aW9uKCkgewotICAgIH0sCi0KLSAgICBkb25lRGVjb3JhdGluZ0Zvck5vd186IGZ1bmN0aW9uKCkgewotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIENvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbjogQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuCi0gIH07Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiZDNjYjIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2NvbnRhaW5lcl90aGF0X2RlY29yYXRlc19pdHNfY2hpbGRyZW5fdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbi5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gIGZ1bmN0aW9uIGNyZWF0ZUNoaWxkKCkgewotICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHNwYW4uZGVjb3JhdGVkID0gZmFsc2U7Ci0gICAgcmV0dXJuIHNwYW47Ci0gIH0KLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgU2ltcGxlQ29udGFpbmVyID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAnc2ltcGxlLWNvbnRhaW5lcicsIHRyLmIudWkuQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuKTsKLQotICBTaW1wbGVDb250YWluZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYi51aS5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4ucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGVDaGlsZF86IGZ1bmN0aW9uKGNoaWxkKSB7Ci0gICAgICBhc3NlcnQuaXNGYWxzZShjaGlsZC5kZWNvcmF0ZWQpOwotICAgICAgY2hpbGQuZGVjb3JhdGVkID0gdHJ1ZTsKLSAgICB9LAotCi0gICAgdW5kZWNvcmF0ZUNoaWxkXzogZnVuY3Rpb24oY2hpbGQpIHsKLSAgICAgIGFzc2VydC5pc1RydWUoY2hpbGQuZGVjb3JhdGVkKTsKLSAgICAgIGNoaWxkLmRlY29yYXRlZCA9IGZhbHNlOwotICAgIH0KLSAgfTsKLQotICB0ZXN0KCdhZGQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29udGFpbmVyID0gbmV3IFNpbXBsZUNvbnRhaW5lcigpOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVDaGlsZCgpKTsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlQ2hpbGQoKSk7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUNoaWxkKCkpOwotICAgIGFzc2VydC5pc1RydWUoY29udGFpbmVyLmNoaWxkcmVuWzBdLmRlY29yYXRlZCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjb250YWluZXIuY2hpbGRyZW5bMV0uZGVjb3JhdGVkKTsKLSAgICBhc3NlcnQuaXNUcnVlKGNvbnRhaW5lci5jaGlsZHJlblsyXS5kZWNvcmF0ZWQpOwotICB9KTsKLQotICB0ZXN0KCdjbGVhclVzaW5nVGV4dENvbnRlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYzAgPSBjcmVhdGVDaGlsZCgpOwotICAgIHZhciBjb250YWluZXIgPSBuZXcgU2ltcGxlQ29udGFpbmVyKCk7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGMwKTsKLSAgICBjb250YWluZXIudGV4dENvbnRlbnQgPSAnJzsKLSAgICBhc3NlcnQuaXNGYWxzZShjMC5kZWNvcmF0ZWQpOwotICB9KTsKLQotICB0ZXN0KCdjbGVhcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjMCA9IGNyZWF0ZUNoaWxkKCk7Ci0gICAgdmFyIGNvbnRhaW5lciA9IG5ldyBTaW1wbGVDb250YWluZXIoKTsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYzApOwotICAgIGNvbnRhaW5lci5jbGVhcigpOwotICAgIGFzc2VydC5pc0ZhbHNlKGMwLmRlY29yYXRlZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc2VydE5ld0JlZm9yZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjMCA9IGNyZWF0ZUNoaWxkKCk7Ci0gICAgdmFyIGMxID0gY3JlYXRlQ2hpbGQoKTsKLSAgICB2YXIgY29udGFpbmVyID0gbmV3IFNpbXBsZUNvbnRhaW5lcigpOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjMSk7Ci0gICAgY29udGFpbmVyLmluc2VydEJlZm9yZShjMCwgYzEpOwotICAgIGFzc2VydC5pc1RydWUoYzAuZGVjb3JhdGVkKTsKLSAgICBhc3NlcnQuaXNUcnVlKGMxLmRlY29yYXRlZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc2VydEV4aXN0aW5nQmVmb3JlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGMwID0gY3JlYXRlQ2hpbGQoKTsKLSAgICB2YXIgYzEgPSBjcmVhdGVDaGlsZCgpOwotICAgIHZhciBjb250YWluZXIgPSBuZXcgU2ltcGxlQ29udGFpbmVyKCk7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGMxKTsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYzApOwotICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoYzAsIGMxKTsKLSAgICBhc3NlcnQuaXNUcnVlKGMwLmRlY29yYXRlZCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjMS5kZWNvcmF0ZWQpOwotICB9KTsKLQotICB0ZXN0KCd0ZXN0UmVwbGFjZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjMCA9IGNyZWF0ZUNoaWxkKCk7Ci0gICAgdmFyIGMxID0gY3JlYXRlQ2hpbGQoKTsKLSAgICB2YXIgY29udGFpbmVyID0gbmV3IFNpbXBsZUNvbnRhaW5lcigpOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjMCk7Ci0gICAgY29udGFpbmVyLnJlcGxhY2VDaGlsZChjMSwgYzApOwotICAgIGFzc2VydC5pc0ZhbHNlKGMwLmRlY29yYXRlZCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjMS5kZWNvcmF0ZWQpOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9kb21faGVscGVycy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0OTBkZDIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Ci08c3R5bGU+Ci0qIC9kZWVwLyAubGFiZWxlZC1jaGVja2JveCB7Ci0gIGRpc3BsYXk6IGZsZXg7Ci0gIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLQotICBmdW5jdGlvbiBjcmVhdGVTcGFuKG9wdF9kaWN0aW9uYXJ5KSB7Ci0gICAgdmFyIHNwYW5FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICBpZiAob3B0X2RpY3Rpb25hcnkpIHsKLSAgICAgIGlmIChvcHRfZGljdGlvbmFyeS5jbGFzc05hbWUpCi0gICAgICAgIHNwYW5FbC5jbGFzc05hbWUgPSBvcHRfZGljdGlvbmFyeS5jbGFzc05hbWU7Ci0gICAgICBpZiAob3B0X2RpY3Rpb25hcnkudGV4dENvbnRlbnQpCi0gICAgICAgIHNwYW5FbC50ZXh0Q29udGVudCA9IG9wdF9kaWN0aW9uYXJ5LnRleHRDb250ZW50OwotICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5LnBhcmVudCkKLSAgICAgICAgb3B0X2RpY3Rpb25hcnkucGFyZW50LmFwcGVuZENoaWxkKHNwYW5FbCk7Ci0gICAgICBpZiAob3B0X2RpY3Rpb25hcnkuYm9sZCkKLSAgICAgICAgc3BhbkVsLnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCc7Ci0gICAgICBpZiAob3B0X2RpY3Rpb25hcnkubWFyZ2luTGVmdCkKLSAgICAgICAgc3BhbkVsLnN0eWxlLm1hcmdpbkxlZnQgPSBvcHRfZGljdGlvbmFyeS5tYXJnaW5MZWZ0OwotICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5Lm1hcmdpblJpZ2h0KQotICAgICAgICBzcGFuRWwuc3R5bGUubWFyZ2luUmlnaHQgPSBvcHRfZGljdGlvbmFyeS5tYXJnaW5SaWdodDsKLSAgICAgIGlmIChvcHRfZGljdGlvbmFyeS5iYWNrZ3JvdW5kQ29sb3IpCi0gICAgICAgIHNwYW5FbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBvcHRfZGljdGlvbmFyeS5iYWNrZ3JvdW5kQ29sb3I7Ci0gICAgfQotICAgIHJldHVybiBzcGFuRWw7Ci0gIH07Ci0KLSAgZnVuY3Rpb24gY3JlYXRlRGl2KG9wdF9kaWN0aW9uYXJ5KSB7Ci0gICAgdmFyIGRpdkVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgaWYgKG9wdF9kaWN0aW9uYXJ5KSB7Ci0gICAgICBpZiAob3B0X2RpY3Rpb25hcnkuY2xhc3NOYW1lKQotICAgICAgICBkaXZFbC5jbGFzc05hbWUgPSBvcHRfZGljdGlvbmFyeS5jbGFzc05hbWU7Ci0gICAgICBpZiAob3B0X2RpY3Rpb25hcnkucGFyZW50KQotICAgICAgICBvcHRfZGljdGlvbmFyeS5wYXJlbnQuYXBwZW5kQ2hpbGQoZGl2RWwpOwotICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5LnRleHRDb250ZW50KQotICAgICAgICBkaXZFbC50ZXh0Q29udGVudCA9IG9wdF9kaWN0aW9uYXJ5LnRleHRDb250ZW50OwotICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5Lm1heFdpZHRoKQotICAgICAgICBkaXZFbC5zdHlsZS5tYXhXaWR0aCA9IG9wdF9kaWN0aW9uYXJ5Lm1heFdpZHRoOwotICAgIH0KLSAgICByZXR1cm4gZGl2RWw7Ci0gIH07Ci0KLSAgZnVuY3Rpb24gY3JlYXRlU2NvcGVkU3R5bGUoc3R5bGVDb250ZW50KSB7Ci0gICAgdmFyIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwotICAgIHN0eWxlRWwuc2NvcGVkID0gdHJ1ZTsKLSAgICBzdHlsZUVsLmlubmVySFRNTCA9IHN0eWxlQ29udGVudDsKLSAgICByZXR1cm4gc3R5bGVFbDsKLSAgfQotCi0gIGZ1bmN0aW9uIHZhbHVlc0VxdWFsKGEsIGIpIHsKLSAgICBpZiAoYSBpbnN0YW5jZW9mIEFycmF5ICYmIGIgaW5zdGFuY2VvZiBBcnJheSkKLSAgICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGIpOwotICAgIHJldHVybiBhID09PSBiOwotICB9Ci0KLSAgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3IoCi0gICAgICB0YXJnZXRFbCwgdGFyZ2V0RWxQcm9wZXJ0eSwKLSAgICAgIHNldHRpbmdzS2V5LCBkZWZhdWx0VmFsdWUsCi0gICAgICBpdGVtcywgb3B0X25hbWVzcGFjZSkgewotICAgIHZhciBkZWZhdWx0VmFsdWVJbmRleDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7Ci0gICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldOwotICAgICAgaWYgKHZhbHVlc0VxdWFsKGl0ZW0udmFsdWUsIGRlZmF1bHRWYWx1ZSkpIHsKLSAgICAgICAgZGVmYXVsdFZhbHVlSW5kZXggPSBpOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGRlZmF1bHRWYWx1ZUluZGV4ID09PSB1bmRlZmluZWQpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlZmF1bHRWYWx1ZSBtdXN0IGJlIGluIHRoZSBpdGVtcyBsaXN0Jyk7Ci0KLSAgICB2YXIgc2VsZWN0b3JFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOwotICAgIHNlbGVjdG9yRWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKLSAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07Ci0gICAgICB2YXIgb3B0aW9uRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKLSAgICAgIG9wdGlvbkVsLnRleHRDb250ZW50ID0gaXRlbS5sYWJlbDsKLSAgICAgIG9wdGlvbkVsLnRhcmdldFByb3BlcnR5VmFsdWUgPSBpdGVtLnZhbHVlOwotICAgICAgc2VsZWN0b3JFbC5hcHBlbmRDaGlsZChvcHRpb25FbCk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIG9uQ2hhbmdlKGUpIHsKLSAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdG9yRWwuc2VsZWN0ZWRPcHRpb25zWzBdLnRhcmdldFByb3BlcnR5VmFsdWU7Ci0gICAgICB0ci5iLlNldHRpbmdzLnNldChzZXR0aW5nc0tleSwgdmFsdWUsIG9wdF9uYW1lc3BhY2UpOwotICAgICAgdGFyZ2V0RWxbdGFyZ2V0RWxQcm9wZXJ0eV0gPSB2YWx1ZTsKLSAgICB9Ci0gICAgdmFyIG9sZFNldHRlciA9IHRhcmdldEVsLl9fbG9va3VwU2V0dGVyX18oJ3NlbGVjdGVkSW5kZXgnKTsKLSAgICBzZWxlY3RvckVsLl9fZGVmaW5lR2V0dGVyX18oJ3NlbGVjdGVkVmFsdWUnLCBmdW5jdGlvbih2KSB7Ci0gICAgICByZXR1cm4gc2VsZWN0b3JFbC5jaGlsZHJlbltzZWxlY3RvckVsLnNlbGVjdGVkSW5kZXhdLnRhcmdldFByb3BlcnR5VmFsdWU7Ci0gICAgfSk7Ci0gICAgc2VsZWN0b3JFbC5fX2RlZmluZVNldHRlcl9fKCdzZWxlY3RlZFZhbHVlJywgZnVuY3Rpb24odikgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RvckVsLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdG9yRWwuY2hpbGRyZW5baV0udGFyZ2V0UHJvcGVydHlWYWx1ZTsKLSAgICAgICAgaWYgKHZhbHVlc0VxdWFsKHZhbHVlLCB2KSkgewotICAgICAgICAgIHZhciBjaGFuZ2VkID0gc2VsZWN0b3JFbC5zZWxlY3RlZEluZGV4ICE9IGk7Ci0gICAgICAgICAgaWYgKGNoYW5nZWQpIHsKLSAgICAgICAgICAgIHNlbGVjdG9yRWwuc2VsZWN0ZWRJbmRleCA9IGk7Ci0gICAgICAgICAgICBvbkNoYW5nZSgpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgdmFsaWQgdmFsdWUnKTsKLSAgICB9KTsKLQotICAgIHZhciBpbml0aWFsVmFsdWUgPSB0ci5iLlNldHRpbmdzLmdldCgKLSAgICAgICAgc2V0dGluZ3NLZXksIGRlZmF1bHRWYWx1ZSwgb3B0X25hbWVzcGFjZSk7Ci0gICAgdmFyIGRpZFNldCA9IGZhbHNlOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0b3JFbC5jaGlsZHJlbi5sZW5ndGg7IGkrKykgewotICAgICAgaWYgKHZhbHVlc0VxdWFsKHNlbGVjdG9yRWwuY2hpbGRyZW5baV0udGFyZ2V0UHJvcGVydHlWYWx1ZSwKLSAgICAgICAgICBpbml0aWFsVmFsdWUpKSB7Ci0gICAgICAgIGRpZFNldCA9IHRydWU7Ci0gICAgICAgIHRhcmdldEVsW3RhcmdldEVsUHJvcGVydHldID0gaW5pdGlhbFZhbHVlOwotICAgICAgICBzZWxlY3RvckVsLnNlbGVjdGVkSW5kZXggPSBpOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCFkaWRTZXQpIHsKLSAgICAgIHNlbGVjdG9yRWwuc2VsZWN0ZWRJbmRleCA9IGRlZmF1bHRWYWx1ZUluZGV4OwotICAgICAgdGFyZ2V0RWxbdGFyZ2V0RWxQcm9wZXJ0eV0gPSBkZWZhdWx0VmFsdWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIHNlbGVjdG9yRWw7Ci0gIH0KLQotICBmdW5jdGlvbiBjcmVhdGVFZGl0Q2F0ZWdvcnlTcGFuKG9wdGlvbkdyb3VwRWwsIHRhcmdldEVsKSB7Ci0gICAgdmFyIHNwYW5FbCA9IGNyZWF0ZVNwYW4oe2NsYXNzTmFtZTogJ2VkaXQtY2F0ZWdvcmllcyd9KTsKLSAgICBzcGFuRWwudGV4dENvbnRlbnQgPSAnRWRpdCBjYXRlZ29yaWVzJzsKLSAgICBzcGFuRWwuY2xhc3NMaXN0LmFkZCgnbGFiZWxlZC1vcHRpb24nKTsKLQotICAgIHNwYW5FbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewotICAgICAgdGFyZ2V0RWwub25DbGlja0VkaXRDYXRlZ29yaWVzKCk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIHNwYW5FbDsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbkdyb3VwKHRhcmdldEVsLCB0YXJnZXRFbFByb3BlcnR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc0tleSwgZGVmYXVsdFZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcykgewotICAgIGZ1bmN0aW9uIG9uQ2hhbmdlKCkgewotICAgICAgdmFyIHZhbHVlID0gW107Ci0gICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGgpCi0gICAgICAgIHZhbHVlID0gdGhpcy52YWx1ZS5zcGxpdCgnLCcpOwotICAgICAgdHIuYi5TZXR0aW5ncy5zZXQoc2V0dGluZ3NLZXksIHZhbHVlKTsKLSAgICAgIHRhcmdldEVsW3RhcmdldEVsUHJvcGVydHldID0gdmFsdWU7Ci0gICAgfQotCi0gICAgdmFyIG9wdGlvbkdyb3VwRWwgPSBjcmVhdGVTcGFuKHtjbGFzc05hbWU6ICdsYWJlbGVkLW9wdGlvbi1ncm91cCd9KTsKLSAgICB2YXIgaW5pdGlhbFZhbHVlID0gdHIuYi5TZXR0aW5ncy5nZXQoc2V0dGluZ3NLZXksIGRlZmF1bHRWYWx1ZSk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkgewotICAgICAgdmFyIGl0ZW0gPSBpdGVtc1tpXTsKLSAgICAgIHZhciBpZCA9ICdjYXRlZ29yeS1wcmVzZXQtJyArIGl0ZW0ubGFiZWwucmVwbGFjZSgvIC9nLCAnLScpOwotCi0gICAgICB2YXIgcmFkaW9FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci0gICAgICByYWRpb0VsLnR5cGUgPSAncmFkaW8nOwotICAgICAgcmFkaW9FbC5zZXRBdHRyaWJ1dGUoJ2lkJywgaWQpOwotICAgICAgcmFkaW9FbC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnY2F0ZWdvcnktcHJlc2V0cy1ncm91cCcpOwotICAgICAgcmFkaW9FbC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgaXRlbS52YWx1ZSk7Ci0gICAgICByYWRpb0VsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlLmJpbmQocmFkaW9FbCwgdGFyZ2V0RWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RWxQcm9wZXJ0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc0tleSkpOwotICAgICAgaWYgKHZhbHVlc0VxdWFsKGluaXRpYWxWYWx1ZSwgaXRlbS52YWx1ZSkpCi0gICAgICAgIHJhZGlvRWwuY2hlY2tlZCA9IHRydWU7Ci0KLSAgICAgIHZhciBsYWJlbEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTsKLSAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBpdGVtLmxhYmVsOwotICAgICAgbGFiZWxFbC5zZXRBdHRyaWJ1dGUoJ2ZvcicsIGlkKTsKLQotICAgICAgdmFyIHNwYW5FbCA9IGNyZWF0ZVNwYW4oe2NsYXNzTmFtZTogJ2xhYmVsZWQtb3B0aW9uJ30pOwotICAgICAgc3BhbkVsLmFwcGVuZENoaWxkKHJhZGlvRWwpOwotICAgICAgc3BhbkVsLmFwcGVuZENoaWxkKGxhYmVsRWwpOwotCi0gICAgICBzcGFuRWwuX19kZWZpbmVTZXR0ZXJfXygnY2hlY2tlZCcsIGZ1bmN0aW9uKG9wdF9ib29sKSB7Ci0gICAgICAgIHZhciBjaGFuZ2VkID0gcmFkaW9FbC5jaGVja2VkICE9PSAoISFvcHRfYm9vbCk7Ci0gICAgICAgIGlmICghY2hhbmdlZCkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgcmFkaW9FbC5jaGVja2VkID0gISFvcHRfYm9vbDsKLSAgICAgICAgb25DaGFuZ2UoKTsKLSAgICAgIH0pOwotICAgICAgc3BhbkVsLl9fZGVmaW5lR2V0dGVyX18oJ2NoZWNrZWQnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIHJhZGlvRWwuY2hlY2tlZDsKLSAgICAgIH0pOwotCi0gICAgICBvcHRpb25Hcm91cEVsLmFwcGVuZENoaWxkKHNwYW5FbCk7Ci0gICAgfQotICAgIG9wdGlvbkdyb3VwRWwuYXBwZW5kQ2hpbGQoY3JlYXRlRWRpdENhdGVnb3J5U3BhbihvcHRpb25Hcm91cEVsLCB0YXJnZXRFbCkpOwotICAgIC8vIFNpbmNlIHRoaXMgb3B0aW9uIGdyb3VwIGVsZW1lbnQgaXMgbm90IHlldCBhZGRlZCB0byB0aGUgdHJlZSwKLSAgICAvLyBxdWVyeVNlbGVjdG9yIHdpbGwgZmFpbCBkdXJpbmcgdXBkYXRlRWRpdENhdGVnb3JpZXNTdGF0dXNfIGNhbGwuCi0gICAgLy8gSGVuY2UsIGNyZWF0aW5nIHRoZSBlbGVtZW50IHdpdGggdGhlICdleHBhbmRlZCcgY2xhc3NsaXN0IGNhdGVnb3J5Ci0gICAgLy8gYWRkZWQsIGlmIGxhc3Qgc2VsZWN0ZWQgdmFsdWUgd2FzICdNYW51YWwnIHNlbGVjdGlvbi4KLSAgICBpZiAoIWluaXRpYWxWYWx1ZS5sZW5ndGgpCi0gICAgICBvcHRpb25Hcm91cEVsLmNsYXNzTGlzdC5hZGQoJ2NhdGVnb3JpZXMtZXhwYW5kZWQnKTsKLSAgICB0YXJnZXRFbFt0YXJnZXRFbFByb3BlcnR5XSA9IGluaXRpYWxWYWx1ZTsKLQotICAgIHJldHVybiBvcHRpb25Hcm91cEVsOwotICB9Ci0KLSAgdmFyIG5leHRDaGVja2JveElkID0gMTsKLSAgZnVuY3Rpb24gY3JlYXRlQ2hlY2tCb3godGFyZ2V0RWwsIHRhcmdldEVsUHJvcGVydHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzS2V5LCBkZWZhdWx0VmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsKSB7Ci0gICAgdmFyIGJ1dHRvbkVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKLSAgICBidXR0b25FbC50eXBlID0gJ2NoZWNrYm94JzsKLQotICAgIHZhciBpbml0aWFsVmFsdWUgPSB0ci5iLlNldHRpbmdzLmdldChzZXR0aW5nc0tleSwgZGVmYXVsdFZhbHVlKTsKLSAgICBidXR0b25FbC5jaGVja2VkID0gISFpbml0aWFsVmFsdWU7Ci0gICAgaWYgKHRhcmdldEVsKQotICAgICAgdGFyZ2V0RWxbdGFyZ2V0RWxQcm9wZXJ0eV0gPSBpbml0aWFsVmFsdWU7Ci0KLSAgICBmdW5jdGlvbiBvbkNoYW5nZSgpIHsKLSAgICAgIHRyLmIuU2V0dGluZ3Muc2V0KHNldHRpbmdzS2V5LCBidXR0b25FbC5jaGVja2VkKTsKLSAgICAgIGlmICh0YXJnZXRFbCkKLSAgICAgICAgdGFyZ2V0RWxbdGFyZ2V0RWxQcm9wZXJ0eV0gPSBidXR0b25FbC5jaGVja2VkOwotICAgIH0KLQotICAgIGJ1dHRvbkVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTsKLQotICAgIHZhciBpZCA9ICcjY2hlY2tib3gtJyArIG5leHRDaGVja2JveElkKys7Ci0KLSAgICB2YXIgc3BhbkVsID0gY3JlYXRlU3Bhbih7Y2xhc3NOYW1lOiAnbGFiZWxlZC1jaGVja2JveCd9KTsKLSAgICBidXR0b25FbC5zZXRBdHRyaWJ1dGUoJ2lkJywgaWQpOwotCi0gICAgdmFyIGxhYmVsRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpOwotICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBsYWJlbDsKLSAgICBsYWJlbEVsLnNldEF0dHJpYnV0ZSgnZm9yJywgaWQpOwotICAgIHNwYW5FbC5hcHBlbmRDaGlsZChidXR0b25FbCk7Ci0gICAgc3BhbkVsLmFwcGVuZENoaWxkKGxhYmVsRWwpOwotCi0gICAgc3BhbkVsLl9fZGVmaW5lU2V0dGVyX18oJ2NoZWNrZWQnLCBmdW5jdGlvbihvcHRfYm9vbCkgewotICAgICAgdmFyIGNoYW5nZWQgPSBidXR0b25FbC5jaGVja2VkICE9PSAoISFvcHRfYm9vbCk7Ci0gICAgICBpZiAoIWNoYW5nZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgYnV0dG9uRWwuY2hlY2tlZCA9ICEhb3B0X2Jvb2w7Ci0gICAgICBvbkNoYW5nZSgpOwotICAgIH0pOwotICAgIHNwYW5FbC5fX2RlZmluZUdldHRlcl9fKCdjaGVja2VkJywgZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gYnV0dG9uRWwuY2hlY2tlZDsKLSAgICB9KTsKLQotICAgIHJldHVybiBzcGFuRWw7Ci0gIH0KLQotICBmdW5jdGlvbiBpc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQoZWwpIHsKLSAgICB2YXIgY3VyID0gZWw7Ci0gICAgd2hpbGUgKGN1ci5wYXJlbnROb2RlKQotICAgICAgY3VyID0gY3VyLnBhcmVudE5vZGU7Ci0gICAgcmV0dXJuIChjdXIgPT09IGVsLm93bmVyRG9jdW1lbnQgfHwgY3VyLm5vZGVOYW1lID09PSAnI2RvY3VtZW50LWZyYWdtZW50Jyk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIGNyZWF0ZVNwYW46IGNyZWF0ZVNwYW4sCi0gICAgY3JlYXRlRGl2OiBjcmVhdGVEaXYsCi0gICAgY3JlYXRlU2NvcGVkU3R5bGU6IGNyZWF0ZVNjb3BlZFN0eWxlLAotICAgIGNyZWF0ZVNlbGVjdG9yOiBjcmVhdGVTZWxlY3RvciwKLSAgICBjcmVhdGVPcHRpb25Hcm91cDogY3JlYXRlT3B0aW9uR3JvdXAsCi0gICAgY3JlYXRlQ2hlY2tCb3g6IGNyZWF0ZUNoZWNrQm94LAotICAgIGlzRWxlbWVudEF0dGFjaGVkVG9Eb2N1bWVudDogaXNFbGVtZW50QXR0YWNoZWRUb0RvY3VtZW50Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2RvbV9oZWxwZXJzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9kb21faGVscGVyc190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjNjZhN2YuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2RvbV9oZWxwZXJzX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotCi0gIHRlc3QoJ3NpbXBsZVNwYW5BbmREaXYnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZGl2RWwgPSB0ci5iLnVpLmNyZWF0ZURpdih7Ci0gICAgICBjbGFzc05hbWU6ICdhLWRpdi1jbGFzcycsIHBhcmVudDogZG9jdW1lbnQuYm9keQotICAgIH0pOwotICAgIHZhciB0ZXN0VGV4dCA9ICdzb21lIHNwYW4gdGV4dCc7Ci0gICAgdmFyIHNwYW5FbCA9IHRyLmIudWkuY3JlYXRlU3Bhbih7Ci0gICAgICBjbGFzc05hbWU6ICdhLXNwYW4tY2xhc3MnLAotICAgICAgdGV4dENvbnRlbnQ6IHRlc3RUZXh0LAotICAgICAgcGFyZW50OiBkaXZFbAotICAgIH0pOwotICAgIHZhciBlbHRJbkRvY3VtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmEtZGl2LWNsYXNzPi5hLXNwYW4tY2xhc3MnKTsKLSAgICBhc3NlcnQuZXF1YWwoZWx0SW5Eb2N1bWVudC50ZXh0Q29udGVudCwgdGVzdFRleHQpOwotICAgIGVsdEluRG9jdW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChlbHRJbkRvY3VtZW50KTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tib3hGcm9tRGVmYXVsdHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFyZ2V0ID0ge2ZvbzogdW5kZWZpbmVkfTsKLSAgICB2YXIgY2IgPSB0ci5iLnVpLmNyZWF0ZUNoZWNrQm94KHRhcmdldCwgJ2ZvbycsICdteUNoZWNrQm94JywgZmFsc2UsICdGb28nKTsKLSAgICBhc3NlcnQuaXNGYWxzZSh0YXJnZXQuZm9vKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tib3hGcm9tU2V0dGluZ3MnLCBmdW5jdGlvbigpIHsKLSAgICB0ci5iLlNldHRpbmdzLnNldCgnbXlDaGVja0JveCcsIHRydWUpOwotICAgIHZhciB0YXJnZXQgPSB7Zm9vOiB1bmRlZmluZWR9OwotICAgIHZhciBjYiA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3godGFyZ2V0LCAnZm9vJywgJ215Q2hlY2tCb3gnLCBmYWxzZSwgJ0ZvbycpOwotICAgIGFzc2VydC5pc1RydWUodGFyZ2V0LmZvbyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrYm94Q2hhbmdlZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0YXJnZXQgPSB7Zm9vOiB1bmRlZmluZWR9OwotICAgIHZhciBjYiA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3godGFyZ2V0LCAnZm9vJywgJ215Q2hlY2tCb3gnLCBmYWxzZSwgJ0ZvbycpOwotICAgIGNiLmNoZWNrZWQgPSB0cnVlOwotCi0gICAgYXNzZXJ0LmlzVHJ1ZSh0ci5iLlNldHRpbmdzLmdldCgnbXlDaGVja0JveCcsIHVuZGVmaW5lZCkpOwotICAgIGFzc2VydC5pc1RydWUodGFyZ2V0LmZvbyk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdG9yU2V0dGluZ3NBbHJlYXlTZXQnLCBmdW5jdGlvbigpIHsKLSAgICB0ci5iLlNldHRpbmdzLnNldCgnbXlTY2FsZScsIDAuMjUpOwotCi0gICAgdmFyIHRhcmdldCA9IHsKLSAgICAgIHNjYWxlOiAzMTQKLSAgICB9OwotICAgIHZhciBzZWwgPSB0ci5iLnVpLmNyZWF0ZVNlbGVjdG9yKAotICAgICAgICB0YXJnZXQsICdzY2FsZScsCi0gICAgICAgICdteVNjYWxlJywgMC4zNzUsCi0gICAgICAgIFt7bGFiZWw6ICc2LjI1JScsIHZhbHVlOiAwLjA2MjV9LAotICAgICAgICAge2xhYmVsOiAnMTIuNSUnLCB2YWx1ZTogMC4xMjV9LAotICAgICAgICAge2xhYmVsOiAnMjUlJywgdmFsdWU6IDAuMjV9LAotICAgICAgICAge2xhYmVsOiAnMzcuNSUnLCB2YWx1ZTogMC4zNzV9LAotICAgICAgICAge2xhYmVsOiAnNTAlJywgdmFsdWU6IDAuNX0sCi0gICAgICAgICB7bGFiZWw6ICc3NSUnLCB2YWx1ZTogMC43NX0sCi0gICAgICAgICB7bGFiZWw6ICcxMDAlJywgdmFsdWU6IDF9LAotICAgICAgICAge2xhYmVsOiAnMjAwJScsIHZhbHVlOiAyfQotICAgICAgICBdKTsKLSAgICBhc3NlcnQuZXF1YWwodGFyZ2V0LnNjYWxlLCAwLjI1KTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsLnNlbGVjdGVkSW5kZXgsIDIpOwotICB9KTsKLQotICB0ZXN0KCdzZWxlY3RvclNldHRpbmdzRGVmYXVsdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0YXJnZXQgPSB7Ci0gICAgICBzY2FsZTogMzE0Ci0gICAgfTsKLSAgICB2YXIgc2VsID0gdHIuYi51aS5jcmVhdGVTZWxlY3RvcigKLSAgICAgICAgdGFyZ2V0LCAnc2NhbGUnLAotICAgICAgICAnbXlTY2FsZScsIDAuMzc1LAotICAgICAgICBbe2xhYmVsOiAnNi4yNSUnLCB2YWx1ZTogMC4wNjI1fSwKLSAgICAgICAgIHtsYWJlbDogJzEyLjUlJywgdmFsdWU6IDAuMTI1fSwKLSAgICAgICAgIHtsYWJlbDogJzI1JScsIHZhbHVlOiAwLjI1fSwKLSAgICAgICAgIHtsYWJlbDogJzM3LjUlJywgdmFsdWU6IDAuMzc1fSwKLSAgICAgICAgIHtsYWJlbDogJzUwJScsIHZhbHVlOiAwLjV9LAotICAgICAgICAge2xhYmVsOiAnNzUlJywgdmFsdWU6IDAuNzV9LAotICAgICAgICAge2xhYmVsOiAnMTAwJScsIHZhbHVlOiAxfSwKLSAgICAgICAgIHtsYWJlbDogJzIwMCUnLCB2YWx1ZTogMn0KLSAgICAgICAgXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhcmdldC5zY2FsZSwgMC4zNzUpOwotICAgIGFzc2VydC5lcXVhbChzZWwuc2VsZWN0ZWRJbmRleCwgMyk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdG9yU2V0dGluZ3NDaGFuZ2VkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhcmdldCA9IHsKLSAgICAgIHNjYWxlOiAzMTQKLSAgICB9OwotICAgIHZhciBzZWwgPSB0ci5iLnVpLmNyZWF0ZVNlbGVjdG9yKAotICAgICAgICB0YXJnZXQsICdzY2FsZScsCi0gICAgICAgICdteVNjYWxlJywgMC4zNzUsCi0gICAgICAgIFt7bGFiZWw6ICc2LjI1JScsIHZhbHVlOiAwLjA2MjV9LAotICAgICAgICAge2xhYmVsOiAnMTIuNSUnLCB2YWx1ZTogMC4xMjV9LAotICAgICAgICAge2xhYmVsOiAnMjUlJywgdmFsdWU6IDAuMjV9LAotICAgICAgICAge2xhYmVsOiAnMzcuNSUnLCB2YWx1ZTogMC4zNzV9LAotICAgICAgICAge2xhYmVsOiAnNTAlJywgdmFsdWU6IDAuNX0sCi0gICAgICAgICB7bGFiZWw6ICc3NSUnLCB2YWx1ZTogMC43NX0sCi0gICAgICAgICB7bGFiZWw6ICcxMDAlJywgdmFsdWU6IDF9LAotICAgICAgICAge2xhYmVsOiAnMjAwJScsIHZhbHVlOiAyfQotICAgICAgICBdKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsLnNlbGVjdGVkVmFsdWUsIDAuMzc1KTsKLSAgICBzZWwuc2VsZWN0ZWRWYWx1ZSA9IDAuNzU7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhcmdldC5zY2FsZSwgMC43NSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbC5zZWxlY3RlZFZhbHVlLCAwLjc1KTsKLSAgICBhc3NlcnQuZXF1YWwodW5kZWZpbmVkKSwgMC43NSwgdHIuYi5TZXR0aW5ncy5nZXQoJ215U2NhbGUnKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2RyYWdfaGFuZGxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvZHJhZ19oYW5kbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk5MzNlMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvZHJhZ19oYW5kbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2Jhc2UvdWkvZHJhZ19oYW5kbGUuY3NzIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogRGV0ZWN0cyB3aGVuIHVzZXIgY2xpY2tzIGhhbmRsZSBkZXRlcm1pbmVzIG5ldyBoZWlnaHQgb2YgY29udGFpbmVyIGJhc2VkCi0gICAqIG9uIHVzZXIncyB2ZXJ0aWNhbCBtb3VzZSBtb3ZlIGFuZCByZXNpemVzIHRoZSB0YXJnZXQuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7SFRNTERpdkVsZW1lbnR9Ci0gICAqIFlvdSB3aWxsIG5lZWQgdG8gc2V0IHRhcmdldCB0byBiZSB0aGUgZHJhZ2dhYmxlIGVsZW1lbnQKLSAgICovCi0gIHZhciBEcmFnSGFuZGxlID0gdHIuYi51aS5kZWZpbmUoJ3gtZHJhZy1oYW5kbGUnKTsKLQotICBEcmFnSGFuZGxlLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubGFzdE1vdXNlUG9zXyA9IDA7Ci0gICAgICB0aGlzLm9uTW91c2VNb3ZlXyA9IHRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7Ci0gICAgICB0aGlzLm9uTW91c2VVcF8gPSB0aGlzLm9uTW91c2VVcF8uYmluZCh0aGlzKTsKLSAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbk1vdXNlRG93bl8pOwotICAgICAgdGhpcy50YXJnZXRfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5ob3Jpem9udGFsID0gdHJ1ZTsKLSAgICAgIHRoaXMub2JzZXJ2ZXJfID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoCi0gICAgICAgICAgdGhpcy5kaWRUYXJnZXRNdXRhdGVfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy50YXJnZXRTaXplc0J5TW9kZUtleV8gPSB7fTsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVLZXlfKCkgewotICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0Xy5jbGFzc05hbWUgPT0gJycgPyAnLicgOiB0aGlzLnRhcmdldF8uY2xhc3NOYW1lOwotICAgIH0sCi0KLSAgICBnZXQgdGFyZ2V0KCkgewotICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0XzsKLSAgICB9LAotCi0gICAgc2V0IHRhcmdldCh0YXJnZXQpIHsKLSAgICAgIHRoaXMub2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTsKLSAgICAgIHRoaXMudGFyZ2V0XyA9IHRhcmdldDsKLSAgICAgIGlmICghdGhpcy50YXJnZXRfKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLm9ic2VydmVyXy5vYnNlcnZlKHRoaXMudGFyZ2V0XywgewotICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLAotICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXQotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGdldCBob3Jpem9udGFsKCkgewotICAgICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbF87Ci0gICAgfSwKLQotICAgIHNldCBob3Jpem9udGFsKGgpIHsKLSAgICAgIHRoaXMuaG9yaXpvbnRhbF8gPSBoOwotICAgICAgaWYgKHRoaXMuaG9yaXpvbnRhbF8pCi0gICAgICAgIHRoaXMuY2xhc3NOYW1lID0gJ2hvcml6b250YWwtZHJhZy1oYW5kbGUnOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLmNsYXNzTmFtZSA9ICd2ZXJ0aWNhbC1kcmFnLWhhbmRsZSc7Ci0gICAgfSwKLQotICAgIGdldCB2ZXJ0aWNhbCgpIHsKLSAgICAgIHJldHVybiAhdGhpcy5ob3Jpem9udGFsXzsKLSAgICB9LAotCi0gICAgc2V0IHZlcnRpY2FsKHYpIHsKLSAgICAgIHRoaXMuaG9yaXpvbnRhbCA9ICF2OwotICAgIH0sCi0KLSAgICBmb3JjZU11dGF0aW9uT2JzZXJ2ZXJGbHVzaF86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHJlY29yZHMgPSB0aGlzLm9ic2VydmVyXy50YWtlUmVjb3JkcygpOwotICAgICAgaWYgKHJlY29yZHMubGVuZ3RoKQotICAgICAgICB0aGlzLmRpZFRhcmdldE11dGF0ZV8ocmVjb3Jkcyk7Ci0gICAgfSwKLQotICAgIGRpZFRhcmdldE11dGF0ZV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBtb2RlU2l6ZSA9IHRoaXMudGFyZ2V0U2l6ZXNCeU1vZGVLZXlfW3RoaXMubW9kZUtleV9dOwotICAgICAgaWYgKG1vZGVTaXplICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5zZXRUYXJnZXRTaXplXyhtb2RlU2l6ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgLy8gSWYgd2UgaGFkbid0IHByZXZpb3VzbHkgc2l6ZWQgdGhlIHRhcmdldCwgdGhlbiBqdXN0IHJlbW92ZSBhbnkgbWFudWFsCi0gICAgICAvLyBzaXppbmcgdGhhdCB3ZSBhcHBsaWVkLgotICAgICAgdGhpcy50YXJnZXRfLnN0eWxlW3RoaXMudGFyZ2V0U3R5bGVLZXlfXSA9ICcnOwotICAgIH0sCi0KLSAgICBnZXQgdGFyZ2V0U3R5bGVLZXlfKCkgewotICAgICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbF8gPyAnaGVpZ2h0JyA6ICd3aWR0aCc7Ci0gICAgfSwKLQotICAgIGdldFRhcmdldFNpemVfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIElmIHN0eWxlIGlzIG5vdCBzZXQsIHN0YXJ0IG9mZiB3aXRoIGNvbXB1dGVkIGhlaWdodC4KLSAgICAgIHZhciB0YXJnZXRTdHlsZUtleSA9IHRoaXMudGFyZ2V0U3R5bGVLZXlfOwotICAgICAgaWYgKCF0aGlzLnRhcmdldF8uc3R5bGVbdGFyZ2V0U3R5bGVLZXldKSB7Ci0gICAgICAgIHRoaXMudGFyZ2V0Xy5zdHlsZVt0YXJnZXRTdHlsZUtleV0gPQotICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy50YXJnZXRfKVt0YXJnZXRTdHlsZUtleV07Ci0gICAgICB9Ci0gICAgICB2YXIgc2l6ZSA9IHBhcnNlSW50KHRoaXMudGFyZ2V0Xy5zdHlsZVt0YXJnZXRTdHlsZUtleV0pOwotICAgICAgdGhpcy50YXJnZXRTaXplc0J5TW9kZUtleV9bdGhpcy5tb2RlS2V5X10gPSBzaXplOwotICAgICAgcmV0dXJuIHNpemU7Ci0gICAgfSwKLQotICAgIHNldFRhcmdldFNpemVfOiBmdW5jdGlvbihzKSB7Ci0gICAgICB0aGlzLnRhcmdldF8uc3R5bGVbdGhpcy50YXJnZXRTdHlsZUtleV9dID0gcyArICdweCc7Ci0gICAgICB0aGlzLnRhcmdldFNpemVzQnlNb2RlS2V5X1t0aGlzLm1vZGVLZXlfXSA9IHM7Ci0gICAgfSwKLQotICAgIGFwcGx5RGVsdGFfOiBmdW5jdGlvbihkZWx0YSkgewotICAgICAgLy8gQXBwbHkgbmV3IHNpemUgdG8gdGhlIGNvbnRhaW5lci4KLSAgICAgIHZhciBjdXJTaXplID0gdGhpcy5nZXRUYXJnZXRTaXplXygpOwotICAgICAgdmFyIG5ld1NpemU7Ci0gICAgICBpZiAodGhpcy50YXJnZXRfID09PSB0aGlzLm5leHRFbGVtZW50U2libGluZykgewotICAgICAgICBuZXdTaXplID0gY3VyU2l6ZSArIGRlbHRhOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgbmV3U2l6ZSA9IGN1clNpemUgLSBkZWx0YTsKLSAgICAgIH0KLSAgICAgIHRoaXMuc2V0VGFyZ2V0U2l6ZV8obmV3U2l6ZSk7Ci0gICAgfSwKLQotICAgIG9uTW91c2VNb3ZlXzogZnVuY3Rpb24oZSkgewotICAgICAgLy8gQ29tcHV0ZSB0aGUgZGlmZmVyZW5jZSBpbiBoZWlnaHQgcG9zaXRpb24uCi0gICAgICB2YXIgY3VyTW91c2VQb3MgPSB0aGlzLmhvcml6b250YWxfID8gZS5jbGllbnRZIDogZS5jbGllbnRYOwotICAgICAgdmFyIGRlbHRhID0gdGhpcy5sYXN0TW91c2VQb3NfIC0gY3VyTW91c2VQb3M7Ci0KLSAgICAgIHRoaXMuYXBwbHlEZWx0YV8oZGVsdGEpOwotCi0gICAgICB0aGlzLmxhc3RNb3VzZVBvc18gPSBjdXJNb3VzZVBvczsKLSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBvbk1vdXNlRG93bl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy50YXJnZXRfKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLmZvcmNlTXV0YXRpb25PYnNlcnZlckZsdXNoXygpOwotICAgICAgdGhpcy5sYXN0TW91c2VQb3NfID0gdGhpcy5ob3Jpem9udGFsXyA/IGUuY2xpZW50WSA6IGUuY2xpZW50WDsKLSAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVfKTsKLSAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcF8pOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIG9uTW91c2VVcF86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVfKTsKLSAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcF8pOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIERyYWdIYW5kbGU6IERyYWdIYW5kbGUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvZHJhZ19oYW5kbGVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2RyYWdfaGFuZGxlX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzIwNzY1Yi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvZHJhZ19oYW5kbGVfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZHJhZ19oYW5kbGUuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIGNyZWF0ZURyYWdIYW5kbGUgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBlbC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKLSAgICBlbC5zdHlsZS53aWR0aCA9ICcyMDBweCc7Ci0gICAgZWwuc3R5bGUuaGVpZ2h0ID0gJzIwMHB4JzsKLSAgICBlbC5zdHlsZS5kaXNwbGF5ID0gJy13ZWJraXQtZmxleCc7Ci0gICAgZWwuc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiA9ICdjb2x1bW4nOwotCi0gICAgdmFyIHVwcGVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB1cHBlckVsLnN0eWxlLndlYmtpdEZsZXggPSAnMSAxIGF1dG8nOwotCi0gICAgdmFyIGxvd2VyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBsb3dlckVsLnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0KLSAgICB2YXIgZHJhZ0hhbmRsZSA9IG5ldyB0ci5iLnVpLkRyYWdIYW5kbGUoKTsKLSAgICBkcmFnSGFuZGxlLnRhcmdldCA9IGxvd2VyRWw7Ci0KLSAgICBlbC5hcHBlbmRDaGlsZCh1cHBlckVsKTsKLSAgICBlbC5hcHBlbmRDaGlsZChkcmFnSGFuZGxlKTsKLSAgICBlbC5hcHBlbmRDaGlsZChsb3dlckVsKTsKLSAgICBlbC51cHBlckVsID0gdXBwZXJFbDsKLSAgICBlbC5kcmFnSGFuZGxlID0gZHJhZ0hhbmRsZTsKLSAgICBlbC5sb3dlckVsID0gbG93ZXJFbDsKLQotICAgIGVsLmdldExvd2VyRWxIZWlnaHQgPSBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMubG93ZXJFbCkuaGVpZ2h0KTsKLSAgICB9OwotICAgIHJldHVybiBlbDsKLSAgfTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjcmVhdGVEcmFnSGFuZGxlKCkpOwotICB9KTsKLQotICB0ZXN0KCdhcHBseURlbHRhJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGVsID0gY3JlYXRlRHJhZ0hhbmRsZSgpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpOwotCi0gICAgdmFyIGRyYWdIYW5kbGUgPSBlbC5kcmFnSGFuZGxlOwotICAgIHZhciBvbGRIZWlnaHQgPSBlbC5nZXRMb3dlckVsSGVpZ2h0KCk7Ci0gICAgZHJhZ0hhbmRsZS5hcHBseURlbHRhXygxMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgb2xkSGVpZ2h0ICsgMTApOwotCi0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NsYXNzTmFtZU11dGF0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGVsID0gY3JlYXRlRHJhZ0hhbmRsZSgpOwotCi0gICAgdmFyIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwotICAgIHN0eWxlRWwudGV4dENvbnRlbnQgPQotICAgICAgICAnLm1vZGUtYSB7IGhlaWdodDogMTAwcHg7IH0gLm1vZGUtYiB7IGhlaWdodDogNTBweDsgfSc7Ci0gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsKTsKLQotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpOwotCi0gICAgdmFyIGRyYWdIYW5kbGUgPSBlbC5kcmFnSGFuZGxlOwotICAgIGVsLmxvd2VyRWwuY2xhc3NOYW1lID0gJ21vZGUtYSc7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgMTAwKTsKLQotICAgIGRyYWdIYW5kbGUuYXBwbHlEZWx0YV8oMTApOwotICAgIGFzc2VydC5lcXVhbChlbC5nZXRMb3dlckVsSGVpZ2h0KCksIDExMCk7Ci0KLSAgICAvLyBDaGFuZ2UgdGhlIGNsYXNzLCB3aGljaCBzaG91bGQgcmVzdG9yZSB0aGUgbGF5b3V0Ci0gICAgLy8gdG8gdGhlIGRlZmF1bHQgc2l6aW5nIGZvciBtb2RlLWIKLSAgICBlbC5sb3dlckVsLmNsYXNzTmFtZSA9ICdtb2RlLWInOwotICAgIGRyYWdIYW5kbGUuZm9yY2VNdXRhdGlvbk9ic2VydmVyRmx1c2hfKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgNTApOwotCi0gICAgZHJhZ0hhbmRsZS5hcHBseURlbHRhXygxMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgNjApOwotCi0gICAgLy8gUmVzdG9yZSB0aGUgY2xhc3MtYSwgd2hpY2ggc2hvdWxkIHJlc3RvcmUgdGhlIGxheW91dAotICAgIC8vIHRvIHNpemluZyB3aGVuIHdlIHdlcmUgY2hhbmdlZC4KLSAgICBlbC5sb3dlckVsLmNsYXNzTmFtZSA9ICdtb2RlLWEnOwotICAgIGRyYWdIYW5kbGUuZm9yY2VNdXRhdGlvbk9ic2VydmVyRmx1c2hfKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgMTEwKTsKLQotICAgIGRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQoc3R5bGVFbCk7Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9kcm9wZG93bi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2Ryb3Bkb3duLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5MDgzOWEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2Ryb3Bkb3duLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdWktZHJvcGRvd24iPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgICNvdXRlciB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleDogMCAwIGF1dG87Ci0gICAgICBwYWRkaW5nOiAxcHggNHB4IDFweCA0cHg7Ci0gICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKLSAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICBjdXJzb3I6IGRlZmF1bHQ7Ci0gICAgfQotCi0gICAgI3N0YXRlIHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIG1hcmdpbi1sZWZ0OiAycHg7Ci0gICAgICBtYXJnaW4tcmlnaHQ6IDBweDsKLSAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgIH0KLQotICAgICNpY29uIHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgIH0KLSAgICBkaWFsb2cgewotICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgcGFkZGluZzogMDsKLSAgICAgIGJvcmRlcjogMDsKLSAgICAgIG1hcmdpbjogMDsKLSAgICB9Ci0gICAgZGlhbG9nOjpiYWNrZHJvcCB7Ci0gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4wNSk7Ci0gICAgfQotCi0gICAgI2RpYWxvZy1mcmFtZSB7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICAgIHBhZGRpbmc6IDZweDsKLSAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwotICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAgIGN1cnNvcjogZGVmYXVsdDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2IGlkPSJvdXRlciI+Ci0gICAgICA8ZGl2IGlkPSJpY29uIj4mIzk4ODE7PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJzdGF0ZSI+JiM5NjYyOzwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaWFsb2cgaWQ9ImRpYWxvZyI+Ci0gICAgICA8ZGl2IGlkPSJkaWFsb2ctZnJhbWUiPgotICAgICAgICA8Y29udGVudD48L2NvbnRlbnQ+Ci0gICAgICA8L2Rpdj4KLSAgICA8L2RpYWxvZz4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLQotICAgICAgdGhpcy4kLm91dGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbk91dGVyQ2xpY2tfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy4kLmRpYWxvZy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25EaWFsb2dDbGlja18uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuJC5kaWFsb2cuYWRkRXZlbnRMaXN0ZW5lcignY2FuY2VsJywgdGhpcy5vbkRpYWxvZ0NhbmNlbF8uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIGdldCBpY29uRWxlbWVudCgpIHsKLSAgICAgIHJldHVybiB0aGlzLiQuaWNvbjsKLSAgICB9LAotCi0gICAgb25PdXRlckNsaWNrXzogZnVuY3Rpb24oZSkgewotICAgICAgdmFyIG9yID0gdGhpcy4kLm91dGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIGluc2lkZSA9IHRydWU7Ci0gICAgICBpbnNpZGUgJj0gZS5jbGllbnRYID49IG9yLmxlZnQ7Ci0gICAgICBpbnNpZGUgJj0gZS5jbGllbnRYIDwgb3IucmlnaHQ7Ci0gICAgICBpbnNpZGUgJj0gZS5jbGllbnRZID49IG9yLnRvcDsKLSAgICAgIGluc2lkZSAmPSBlLmNsaWVudFkgPCBvci5ib3R0b207Ci0gICAgICBpZiAoIWluc2lkZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICBpZiAoIXRoaXMuaXNPcGVuKQotICAgICAgICB0aGlzLnNob3coKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5jbG9zZSgpOwotICAgIH0sCi0KLSAgICBzaG93OiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmlzT3BlbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLiQub3V0ZXIuY2xhc3NMaXN0LmFkZCgnb3BlbicpOwotCi0gICAgICB2YXIgZGRyID0gdGhpcy4kLm91dGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIHJXID0gTWF0aC5tYXgoZGRyLndpZHRoLCAxNTApOwotICAgICAgdGhpcy4kLmRpYWxvZy5zdHlsZS5taW5XaWR0aCA9IHJXICsgJ3B4JzsKLSAgICAgIHRoaXMuJC5kaWFsb2cuc2hvd01vZGFsKCk7Ci0KLSAgICAgIHZhciBkZHcgPSB0aGlzLiQub3V0ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7Ci0gICAgICB2YXIgdyA9IHRoaXMuJC5kaWFsb2cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7Ci0gICAgICB0aGlzLiQuZGlhbG9nLnN0eWxlLnRvcCA9IGRkci5ib3R0b20gLSAxICsgJ3B4JzsKLSAgICAgIHRoaXMuJC5kaWFsb2cuc3R5bGUubGVmdCA9IGRkci5sZWZ0ICsgJ3B4JzsKLSAgICB9LAotCi0gICAgb25EaWFsb2dDbGlja186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy5pc09wZW4pCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBkciA9IHRoaXMuJC5kaWFsb2cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICB2YXIgaW5zaWRlID0gdHJ1ZTsKLSAgICAgIGluc2lkZSAmPSBlLmNsaWVudFggPj0gZHIubGVmdDsKLSAgICAgIGluc2lkZSAmPSBlLmNsaWVudFggPCBkci5yaWdodDsKLSAgICAgIGluc2lkZSAmPSBlLmNsaWVudFkgPj0gZHIudG9wOwotICAgICAgaW5zaWRlICY9IGUuY2xpZW50WSA8IGRyLmJvdHRvbTsKLSAgICAgIGlmICghaW5zaWRlKSB7Ci0gICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgdGhpcy5jbG9zZSgpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBvbkRpYWxvZ0NhbmNlbF86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgIHRoaXMuY2xvc2UoKTsKLSAgICB9LAotCi0gICAgY2xvc2U6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmlzT3BlbikKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy4kLmRpYWxvZy5jbG9zZSgpOwotICAgICAgdGhpcy4kLm91dGVyLmNsYXNzTGlzdC5yZW1vdmUoJ29wZW4nKTsKLSAgICB9LAotCi0gICAgZ2V0IGlzT3BlbigpIHsKLSAgICAgIHJldHVybiB0aGlzLiQuZGlhbG9nLmhhc0F0dHJpYnV0ZSgnb3BlbicpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvZHJvcGRvd25fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2Ryb3Bkb3duX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJiZjI0Yy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvZHJvcGRvd25fdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kcm9wZG93bi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2Jhc2ljJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1kcm9wZG93bicpOwotICAgIGRkLnN0eWxlLm1hcmdpbkxlZnQgPSAnNTBweCc7Ci0gICAgZGQuc3R5bGUud2lkdGggPSAnNTBweCc7Ci0gICAgZGQuaWNvbkVsZW1lbnQudGV4dENvbnRlbnQgPSAnU2V0dGluZ3MgJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNjk5KTsKLQotICAgIGRkLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlRGl2KHt0ZXh0Q29udGVudDogJ2l0ZW0gMSd9KSk7Ci0gICAgZGQuYXBwZW5kQ2hpbGQodHIuYi51aS5jcmVhdGVEaXYoe3RleHRDb250ZW50OiAnaXRlbSAyIGxvbmdlcid9KSk7Ci0gICAgZGQuYXBwZW5kQ2hpbGQodHIuYi51aS5jcmVhdGVEaXYoe3RleHRDb250ZW50OiAnaXRlbSAzJ30pKTsKLQotICAgIHZhciBjb250YWluZXIgPSB0ci5iLnVpLmNyZWF0ZURpdigpOwotICAgIGNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkZCk7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlRGl2KHt0ZXh0Q29udGVudDogJ3NvbWUgdGV4dCd9KSk7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlRGl2KHt0ZXh0Q29udGVudDogJ3NvbWUgbW9yZSB0ZXh0J30pKTsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodHIuYi51aS5jcmVhdGVEaXYoe3RleHRDb250ZW50OiAnbW9yZSB0ZXh0J30pKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29udGFpbmVyKTsKLQotICAgIGRkLnNob3coKTsKLSAgICBkZC5jbG9zZSgpOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9pbmZvX2Jhci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5MWYwYjIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci1iLXVpLWluZm8tYmFyJyBpcz0nSFRNTERpdkVsZW1lbnQnPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTIsIDIzNSwgMTYyKTsKLSAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQTNBM0EzOwotICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB3aGl0ZTsKLSAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNBM0EzQTM7Ci0gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgaGVpZ2h0OiAyNnB4OwotICAgICAgcGFkZGluZzogMCAzcHggMCAzcHg7Ci0gICAgfQotCi0gICAgOmhvc3QoLmluZm8tYmFyLWhpZGRlbikgewotICAgICAgZGlzcGxheTogbm9uZTsKLSAgICB9Ci0KLSAgICAjbWVzc2FnZSB7IGZsZXg6IDEgMSBhdXRvOyB9Ci0gICAgPC9zdHlsZT4KLQotICAgIDxzcGFuIGlkPSdtZXNzYWdlJz48L3NwYW4+Ci0gICAgPHNwYW4gaWQ9J2J1dHRvbnMnPjwvc3Bhbj4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5tZXNzYWdlRWxfID0gdGhpcy4kLm1lc3NhZ2U7Ci0gICAgICB0aGlzLmJ1dHRvbnNFbF8gPSB0aGlzLiQuYnV0dG9uczsKLQotICAgICAgdGhpcy5tZXNzYWdlID0gJyc7Ci0gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IG1lc3NhZ2UoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5tZXNzYWdlRWxfLnRleHRDb250ZW50OwotICAgIH0sCi0KLSAgICBzZXQgbWVzc2FnZShtZXNzYWdlKSB7Ci0gICAgICB0aGlzLm1lc3NhZ2VFbF8udGV4dENvbnRlbnQgPSBtZXNzYWdlOwotICAgIH0sCi0KLSAgICBnZXQgdmlzaWJsZSgpIHsKLSAgICAgIHJldHVybiAhdGhpcy5jbGFzc0xpc3QuY29udGFpbnMoJ2luZm8tYmFyLWhpZGRlbicpOwotICAgIH0sCi0KLSAgICBzZXQgdmlzaWJsZSh2aXNpYmxlKSB7Ci0gICAgICBpZiAodmlzaWJsZSkKLSAgICAgICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCdpbmZvLWJhci1oaWRkZW4nKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdpbmZvLWJhci1oaWRkZW4nKTsKLSAgICB9LAotCi0gICAgcmVtb3ZlQWxsQnV0dG9uczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmJ1dHRvbnNFbF8udGV4dENvbnRlbnQgPSAnJzsKLSAgICB9LAotCi0gICAgYWRkQnV0dG9uOiBmdW5jdGlvbih0ZXh0LCBjbGlja0NhbGxiYWNrKSB7Ci0gICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAgICBidXR0b24udGV4dENvbnRlbnQgPSB0ZXh0OwotICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xpY2tDYWxsYmFjayk7Ci0gICAgICB0aGlzLmJ1dHRvbnNFbF8uYXBwZW5kQ2hpbGQoYnV0dG9uKTsKLSAgICAgIHJldHVybiBidXR0b247Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9pbmZvX2Jhcl9ncm91cC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyX2dyb3VwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzZGZmZTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyX2dyb3VwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvYmFzZS91aS9pbmZvX2Jhci5odG1sJz4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci1iLXVpLWluZm8tYmFyLWdyb3VwJyBpcz0nSFRNTFVua25vd25FbGVtZW50Jz4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxkaXYgaWQ9J21lc3NhZ2VzJz48L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubWVzc2FnZXNfID0gW107Ci0gICAgfSwKLQotICAgIGNsZWFyTWVzc2FnZXM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5tZXNzYWdlc18gPSBbXTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGFkZE1lc3NhZ2U6IGZ1bmN0aW9uKHRleHQsIG9wdF9idXR0b25zKSB7Ci0gICAgICBvcHRfYnV0dG9ucyA9IG9wdF9idXR0b25zIHx8IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRfYnV0dG9ucy5sZW5ndGg7IGkrKykgewotICAgICAgICBpZiAob3B0X2J1dHRvbnNbaV0uYnV0dG9uVGV4dCA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYnV0dG9uVGV4dCBtdXN0IGJlIHByb3ZpZGVkJyk7Ci0gICAgICAgIGlmIChvcHRfYnV0dG9uc1tpXS5vbkNsaWNrID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdvbkNsaWNrIG11c3QgYmUgcHJvdmlkZWQnKTsKLSAgICAgIH0KLQotICAgICAgdGhpcy5tZXNzYWdlc18ucHVzaCh7Ci0gICAgICAgIHRleHQ6IHRleHQsCi0gICAgICAgIGJ1dHRvbnM6IG9wdF9idXR0b25zIHx8IFtdCi0gICAgICB9KTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLiQubWVzc2FnZXMudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgIHRoaXMubWVzc2FnZXNfLmZvckVhY2goZnVuY3Rpb24obWVzc2FnZSkgewotICAgICAgICB2YXIgYmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1pbmZvLWJhcicpOwotICAgICAgICBiYXIubWVzc2FnZSA9IG1lc3NhZ2UudGV4dDsKLSAgICAgICAgYmFyLnZpc2libGUgPSB0cnVlOwotCi0gICAgICAgIG1lc3NhZ2UuYnV0dG9ucy5mb3JFYWNoKGZ1bmN0aW9uKGJ1dHRvbikgewotICAgICAgICAgIGJhci5hZGRCdXR0b24oYnV0dG9uLmJ1dHRvblRleHQsIGJ1dHRvbi5vbkNsaWNrKTsKLSAgICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy4kLm1lc3NhZ2VzLmFwcGVuZENoaWxkKGJhcik7Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyX2dyb3VwX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9pbmZvX2Jhcl9ncm91cF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5OWJhMDYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyX2dyb3VwX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2luZm9fYmFyX2dyb3VwLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnZ3JvdXAtaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaW5mb0Jhckdyb3VwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1pbmZvLWJhci1ncm91cCcpOwotICAgIGluZm9CYXJHcm91cC5hZGRNZXNzYWdlKAotICAgICAgICAnTWVzc2FnZSAxJywKLSAgICAgICAgW3tidXR0b25UZXh0OiAnb2snLCBvbkNsaWNrOiBmdW5jdGlvbigpIHt9fV0pOwotICAgIGluZm9CYXJHcm91cC5hZGRNZXNzYWdlKAotICAgICAgICAnTWVzc2FnZSAyJywKLSAgICAgICAgW3tidXR0b25UZXh0OiAnYnV0dG9uIDInLCBvbkNsaWNrOiBmdW5jdGlvbigpIHt9fV0pOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChpbmZvQmFyR3JvdXApOwotICB9KTsKLQotICB0ZXN0KCdncm91cC1wb3B1bGF0ZS10aGVuLWNsZWFyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGluZm9CYXJHcm91cCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktaW5mby1iYXItZ3JvdXAnKTsKLSAgICBpbmZvQmFyR3JvdXAuYWRkTWVzc2FnZSgKLSAgICAgICAgJ01lc3NhZ2UgMScsCi0gICAgICAgIFt7YnV0dG9uVGV4dDogJ29rJywgb25DbGljazogZnVuY3Rpb24oKSB7fX1dKTsKLSAgICBpbmZvQmFyR3JvdXAuYWRkTWVzc2FnZSgKLSAgICAgICAgJ01lc3NhZ2UgMicsCi0gICAgICAgIFt7YnV0dG9uVGV4dDogJ2J1dHRvbiAyJywgb25DbGljazogZnVuY3Rpb24oKSB7fX1dKTsKLSAgICBpbmZvQmFyR3JvdXAuY2xlYXJNZXNzYWdlcygpOwotICAgIGFzc2VydC5lcXVhbChpbmZvQmFyR3JvdXAuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZ3JvdXAtcG9wdWxhdGUtY2xlYXItcmVwb3B1bGF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBpbmZvQmFyR3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLWluZm8tYmFyLWdyb3VwJyk7Ci0gICAgaW5mb0Jhckdyb3VwLmFkZE1lc3NhZ2UoCi0gICAgICAgICdNZXNzYWdlIDEnLAotICAgICAgICBbe2J1dHRvblRleHQ6ICdvaycsIG9uQ2xpY2s6IGZ1bmN0aW9uKCkge319XSk7Ci0gICAgaW5mb0Jhckdyb3VwLmFkZE1lc3NhZ2UoCi0gICAgICAgICdNZXNzYWdlIDInLAotICAgICAgICBbe2J1dHRvblRleHQ6ICdidXR0b24gMicsIG9uQ2xpY2s6IGZ1bmN0aW9uKCkge319XSk7Ci0gICAgaW5mb0Jhckdyb3VwLmNsZWFyTWVzc2FnZXMoKTsKLSAgICBpbmZvQmFyR3JvdXAuYWRkTWVzc2FnZSgKLSAgICAgICAgJ01lc3NhZ2UgMScsCi0gICAgICAgIFt7YnV0dG9uVGV4dDogJ29rJywgb25DbGljazogZnVuY3Rpb24oKSB7fX1dKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoaW5mb0Jhckdyb3VwKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9pbmZvX2Jhcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNWY0YTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2luZm9fYmFyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2luZm9fYmFyLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGluZm9CYXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLWluZm8tYmFyJyk7Ci0gICAgaW5mb0Jhci5tZXNzYWdlID0gJ1RoaXMgaXMgYW4gaW5mbyc7Ci0gICAgaW5mb0Jhci52aXNpYmxlID0gdHJ1ZTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoaW5mb0Jhcik7Ci0gIH0pOwotCi0gIHRlc3QoJ2J1dHRvbnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaW5mb0JhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktaW5mby1iYXInKTsKLSAgICBpbmZvQmFyLnZpc2libGUgPSB0cnVlOwotICAgIGluZm9CYXIubWVzc2FnZSA9ICdUaGlzIGlzIGFuIGluZm8gYmFyIHdpdGggYnV0dG9ucyc7Ci0gICAgdmFyIGRpZENsaWNrID0gZmFsc2U7Ci0gICAgdmFyIGJ1dHRvbiA9IGluZm9CYXIuYWRkQnV0dG9uKCdNb3JlIGluZm8uLi4nLCBmdW5jdGlvbigpIHsKLSAgICAgIGRpZENsaWNrID0gdHJ1ZTsKLSAgICB9KTsKLSAgICBidXR0b24uY2xpY2soKTsKLSAgICBhc3NlcnQuaXNUcnVlKGRpZENsaWNrKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoaW5mb0Jhcik7Ci0gIH0pOwotCi0gIHRlc3QoJ2hpZGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBpbmZvQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1pbmZvLWJhcicpOwotICAgIGluZm9CYXIubWVzc2FnZSA9ICdUaGlzIGlzIGFuIGluZm8gYmFyJzsKLSAgICBpbmZvQmFyLnZpc2libGUgPSB0cnVlOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChpbmZvQmFyKTsKLQotICAgIGFzc2VydC5lcXVhbChnZXRDb21wdXRlZFN0eWxlKGluZm9CYXIpWydkaXNwbGF5J10sICdmbGV4Jyk7Ci0KLSAgICBpbmZvQmFyLnZpc2libGUgPSBmYWxzZTsKLSAgICBhc3NlcnQuZXF1YWwoZ2V0Q29tcHV0ZWRTdHlsZShpbmZvQmFyKVsnZGlzcGxheSddLCAnbm9uZScpOwotCi0gICAgaW5mb0Jhci52aXNpYmxlID0gdHJ1ZTsKLSAgICBhc3NlcnQuZXF1YWwoZ2V0Q29tcHV0ZWRTdHlsZShpbmZvQmFyKVsnZGlzcGxheSddLCAnZmxleCcpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGluZV9jaGFydC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpbmVfY2hhcnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQ0ZDAzMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGluZV9jaGFydC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2QzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NoYXJ0X2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvbW91c2VfdHJhY2tlci5odG1sIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2Jhc2UvdWkvbGluZV9jaGFydC5jc3MiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLSAgdmFyIENoYXJ0QmFzZSA9IHRyLmIudWkuQ2hhcnRCYXNlOwotICB2YXIgZ2V0Q29sb3JPZktleSA9IHRyLmIudWkuZ2V0Q29sb3JPZktleTsKLQotICBmdW5jdGlvbiBnZXRTYW1wbGVXaWR0aChkYXRhLCBpbmRleCwgbGVmdFNpZGUpIHsKLSAgICB2YXIgbGVmdEluZGV4LCByaWdodEluZGV4OwotICAgIGlmIChsZWZ0U2lkZSkgewotICAgICAgbGVmdEluZGV4ID0gTWF0aC5tYXgoaW5kZXggLSAxLCAwKTsKLSAgICAgIHJpZ2h0SW5kZXggPSBpbmRleDsKLSAgICB9IGVsc2UgewotICAgICAgbGVmdEluZGV4ID0gaW5kZXg7Ci0gICAgICByaWdodEluZGV4ID0gTWF0aC5taW4oaW5kZXggKyAxLCBkYXRhLmxlbmd0aCAtIDEpOwotICAgIH0KLSAgICB2YXIgbGVmdFdpZHRoID0gZGF0YVtpbmRleF0ueCAtIGRhdGFbbGVmdEluZGV4XS54OwotICAgIHZhciByaWdodFdpZHRoID0gZGF0YVtyaWdodEluZGV4XS54IC0gZGF0YVtpbmRleF0ueDsKLSAgICByZXR1cm4gbGVmdFdpZHRoICogMC41ICsgcmlnaHRXaWR0aCAqIDAuNTsKLSAgfQotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBMaW5lQ2hhcnQgPSB0ci5iLnVpLmRlZmluZSgnbGluZS1jaGFydCcsIENoYXJ0QmFzZSk7Ci0KLSAgTGluZUNoYXJ0LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IENoYXJ0QmFzZS5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICBDaGFydEJhc2UucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2xpbmUtY2hhcnQnKTsKLQotICAgICAgdGhpcy5icnVzaGVkUmFuZ2VfID0gbmV3IHRyLmIuUmFuZ2UoKTsKLQotICAgICAgdGhpcy54U2NhbGVfID0gZDMuc2NhbGUubGluZWFyKCk7Ci0gICAgICB0aGlzLnlTY2FsZV8gPSBkMy5zY2FsZS5saW5lYXIoKTsKLSAgICAgIGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpCi0gICAgICAgICAgLmFwcGVuZCgnZycpCi0gICAgICAgICAgLmF0dHIoJ2lkJywgJ2JydXNoZXMnKTsKLSAgICAgIGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpCi0gICAgICAgICAgLmFwcGVuZCgnZycpCi0gICAgICAgICAgLmF0dHIoJ2lkJywgJ3NlcmllcycpOwotCi0gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd25fLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBTZXRzIHRoZSBkYXRhIGFycmF5IGZvciB0aGUgb2JqZWN0Ci0gICAgICoKLSAgICAgKiBAcGFyYW0ge0FycmF5fSBkYXRhIFRoZSBkYXRhLiBFYWNoIGVsZW1lbnQgbXVzdCBiZSBhbiBvYmplY3QsIHdpdGggYXQKLSAgICAgKiBsZWFzdCBhbiB4IHByb3BlcnR5LiBBbGwgb3RoZXIgcHJvcGVydGllcyBiZWNvbWUgc2VyaWVzIG5hbWVzIGluIHRoZQotICAgICAqIGNoYXJ0LgotICAgICAqLwotICAgIHNldCBkYXRhKGRhdGEpIHsKLSAgICAgIGlmIChkYXRhLmxlbmd0aCA9PSAwKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgbXVzdCBiZSBub256ZXJvLiBQYXNzIHVuZGVmaW5lZC4nKTsKLQotICAgICAgdmFyIGtleXM7Ci0gICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHZhciBkID0gZGF0YVswXTsKLSAgICAgICAgaWYgKGQueCA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRWxlbWVudHMgbXVzdCBoYXZlICJ4IiBmaWVsZHMnKTsKLSAgICAgICAga2V5cyA9IGQzLmtleXMoZGF0YVswXSk7Ci0gICAgICAgIGtleXMuc3BsaWNlKGtleXMuaW5kZXhPZigneCcpLCAxKTsKLSAgICAgICAgaWYgKGtleXMubGVuZ3RoID09IDApCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50cyBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIG90aGVyIGZpZWxkIHRoYW4gWCcpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAga2V5cyA9IHVuZGVmaW5lZDsKLSAgICAgIH0KLSAgICAgIHRoaXMuZGF0YV8gPSBkYXRhOwotICAgICAgdGhpcy5zZXJpZXNLZXlzXyA9IGtleXM7Ci0KLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIC8vIE5vdGU6IHJhbmdlIGNhbiBvbmx5IGJlIHNldCwgbm90IHJldHJpZXZlZC4gSXQgbmVlZHMgdG8gYmUgaW1tdXRhYmxlCi0gICAgLy8gb3IgZWxzZSBvZGQgZGF0YSBiaW5kaW5nIGVmZmVjdHMgd2lsbCByZXN1bHQuCi0gICAgc2V0IGJydXNoZWRSYW5nZShyYW5nZSkgewotICAgICAgdGhpcy5icnVzaGVkUmFuZ2VfLnJlc2V0KCk7Ci0gICAgICB0aGlzLmJydXNoZWRSYW5nZV8uYWRkUmFuZ2UocmFuZ2UpOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgY29tcHV0ZUJydXNoUmFuZ2VGcm9tSW5kaWNlczogZnVuY3Rpb24oaW5kZXhBLCBpbmRleEIpIHsKLSAgICAgIHZhciByID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICAgIHZhciBsZWZ0SW5kZXggPSBNYXRoLm1pbihpbmRleEEsIGluZGV4Qik7Ci0gICAgICB2YXIgcmlnaHRJbmRleCA9IE1hdGgubWF4KGluZGV4QSwgaW5kZXhCKTsKLSAgICAgIGxlZnRJbmRleCA9IE1hdGgubWF4KDAsIGxlZnRJbmRleCk7Ci0gICAgICByaWdodEluZGV4ID0gTWF0aC5taW4odGhpcy5kYXRhXy5sZW5ndGggLSAxLCByaWdodEluZGV4KTsKLSAgICAgIHIuYWRkVmFsdWUodGhpcy5kYXRhX1tsZWZ0SW5kZXhdLnggLQotICAgICAgICAgIGdldFNhbXBsZVdpZHRoKHRoaXMuZGF0YV8sIGxlZnRJbmRleCwgdHJ1ZSkpOwotICAgICAgci5hZGRWYWx1ZSh0aGlzLmRhdGFfW3JpZ2h0SW5kZXhdLnggKwotICAgICAgICAgIGdldFNhbXBsZVdpZHRoKHRoaXMuZGF0YV8sIHJpZ2h0SW5kZXgsIGZhbHNlKSk7Ci0gICAgICByZXR1cm4gcjsKLSAgICB9LAotCi0gICAgZ2V0TGVnZW5kS2V5c186IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuc2VyaWVzS2V5c18gJiYKLSAgICAgICAgICB0aGlzLnNlcmllc0tleXNfLmxlbmd0aCA+IDEpCi0gICAgICAgIHJldHVybiB0aGlzLnNlcmllc0tleXNfLnNsaWNlKCk7Ci0gICAgICByZXR1cm4gW107Ci0gICAgfSwKLQotICAgIHVwZGF0ZVNjYWxlc186IGZ1bmN0aW9uKHdpZHRoLCBoZWlnaHQpIHsKLSAgICAgIGlmICh0aGlzLmRhdGFfID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgLy8gWC4KLSAgICAgIHRoaXMueFNjYWxlXy5yYW5nZShbMCwgd2lkdGhdKTsKLSAgICAgIHRoaXMueFNjYWxlXy5kb21haW4oZDMuZXh0ZW50KHRoaXMuZGF0YV8sIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQueDsgfSkpOwotCi0gICAgICAvLyBZLgotICAgICAgdmFyIHlSYW5nZSA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICB0aGlzLmRhdGFfLmZvckVhY2goZnVuY3Rpb24oZCkgewotICAgICAgICB0aGlzLnNlcmllc0tleXNfLmZvckVhY2goZnVuY3Rpb24oaykgewotICAgICAgICAgIHlSYW5nZS5hZGRWYWx1ZShkW2tdKTsKLSAgICAgICAgfSk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgdGhpcy55U2NhbGVfLnJhbmdlKFtoZWlnaHQsIDBdKTsKLSAgICAgIHRoaXMueVNjYWxlXy5kb21haW4oW3lSYW5nZS5taW4sIHlSYW5nZS5tYXhdKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIENoYXJ0QmFzZS5wcm90b3R5cGUudXBkYXRlQ29udGVudHNfLmNhbGwodGhpcyk7Ci0gICAgICBpZiAoIXRoaXMuZGF0YV8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGNoYXJ0QXJlYVNlbCA9IGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpOwotCi0gICAgICB2YXIgYnJ1c2hlcyA9IHRoaXMuYnJ1c2hlZFJhbmdlXy5pc0VtcHR5ID8gW10gOiBbdGhpcy5icnVzaGVkUmFuZ2VfXTsKLQotICAgICAgdmFyIGJydXNoUmVjdHNTZWwgPSBjaGFydEFyZWFTZWwuc2VsZWN0KCcjYnJ1c2hlcycpCi0gICAgICAgICAgLnNlbGVjdEFsbCgncmVjdCcpLmRhdGEoYnJ1c2hlcyk7Ci0gICAgICBicnVzaFJlY3RzU2VsLmVudGVyKCkKLSAgICAgICAgICAuYXBwZW5kKCdyZWN0Jyk7Ci0gICAgICBicnVzaFJlY3RzU2VsLmV4aXQoKS5yZW1vdmUoKTsKLSAgICAgIGJydXNoUmVjdHNTZWwKLSAgICAgICAgLmF0dHIoJ3gnLCBmdW5jdGlvbihkKSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy54U2NhbGVfKGQubWluKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpCi0gICAgICAgIC5hdHRyKCd5JywgMCkKLSAgICAgICAgLmF0dHIoJ3dpZHRoJywgZnVuY3Rpb24oZCkgewotICAgICAgICAgICAgcmV0dXJuIHRoaXMueFNjYWxlXyhkLm1heCkgLSB0aGlzLnhTY2FsZV8oZC5taW4pOwotICAgICAgICAgIH0uYmluZCh0aGlzKSkKLSAgICAgICAgLmF0dHIoJ2hlaWdodCcsIHRoaXMuY2hhcnRBcmVhU2l6ZS5oZWlnaHQpOwotCi0KLSAgICAgIHZhciBzZXJpZXNTZWwgPSBjaGFydEFyZWFTZWwuc2VsZWN0KCcjc2VyaWVzJyk7Ci0gICAgICB2YXIgcGF0aHNTZWwgPSBzZXJpZXNTZWwuc2VsZWN0QWxsKCdwYXRoJykuZGF0YSh0aGlzLnNlcmllc0tleXNfKTsKLSAgICAgIHBhdGhzU2VsLmVudGVyKCkKLSAgICAgICAgICAuYXBwZW5kKCdwYXRoJykKLSAgICAgICAgICAuYXR0cignY2xhc3MnLCAnbGluZScpCi0gICAgICAgICAgLnN0eWxlKCdzdHJva2UnLCBmdW5jdGlvbihrZXkpIHsKLSAgICAgICAgICAgIHJldHVybiBnZXRDb2xvck9mS2V5KGtleSk7Ci0gICAgICAgICAgfSkKLSAgICAgICAgICAuYXR0cignZCcsIGZ1bmN0aW9uKGtleSkgewotICAgICAgICAgICAgdmFyIGxpbmUgPSBkMy5zdmcubGluZSgpCi0gICAgICAgICAgICAgIC54KGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHRoaXMueFNjYWxlXyhkLngpOyB9LmJpbmQodGhpcykpCi0gICAgICAgICAgICAgIC55KGZ1bmN0aW9uKGQpIHsgcmV0dXJuIHRoaXMueVNjYWxlXyhkW2tleV0pOyB9LmJpbmQodGhpcykpOwotICAgICAgICAgICAgcmV0dXJuIGxpbmUodGhpcy5kYXRhXyk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgIHBhdGhzU2VsLmV4aXQoKS5yZW1vdmUoKTsKLSAgICB9LAotCi0gICAgZ2V0RGF0YUluZGV4QXRDbGllbnRQb2ludF86IGZ1bmN0aW9uKGNsaWVudFgsIGNsaWVudFksIGNsaXBUb1kpIHsKLSAgICAgIHZhciByZWN0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBtYXJnaW4gPSB0aGlzLm1hcmdpbjsKLSAgICAgIHZhciBjaGFydEFyZWFTaXplID0gdGhpcy5jaGFydEFyZWFTaXplOwotCi0gICAgICB2YXIgeCA9IGNsaWVudFggLSByZWN0LmxlZnQgLSBtYXJnaW4ubGVmdDsKLSAgICAgIHZhciB5ID0gY2xpZW50WSAtIHJlY3QudG9wIC0gbWFyZ2luLnRvcDsKLQotICAgICAgLy8gRG9uJ3QgY2hlY2sgd2lkdGg6IGxldCBwZW9wbGUgc2VsZWN0IHRoZSBsZWZ0LSBhbmQgcmlnaHQtbW9zdCBkYXRhCi0gICAgICAvLyBwb2ludHMuCi0gICAgICBpZiAoY2xpcFRvWSkgewotICAgICAgICBpZiAoeSA8IDAgfHwKLSAgICAgICAgICAgIHkgPj0gY2hhcnRBcmVhU2l6ZS5oZWlnaHQpCi0gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIH0KLQotICAgICAgdmFyIGRhdGFYID0gdGhpcy54U2NhbGVfLmludmVydCh4KTsKLQotICAgICAgdmFyIGluZGV4OwotICAgICAgaWYgKHRoaXMuZGF0YV8pIHsKLSAgICAgICAgdmFyIGJpc2VjdCA9IGQzLmJpc2VjdG9yKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQueDsgfSkucmlnaHQ7Ci0gICAgICAgIGluZGV4ID0gYmlzZWN0KHRoaXMuZGF0YV8sIGRhdGFYKSAtIDE7Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiBpbmRleDsKLSAgICB9LAotCi0gICAgb25Nb3VzZURvd25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgaW5kZXggPSB0aGlzLmdldERhdGFJbmRleEF0Q2xpZW50UG9pbnRfKGUuY2xpZW50WCwgZS5jbGllbnRZLCB0cnVlKTsKLQotICAgICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdHIuYi51aS50cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAoCi0gICAgICAgICAgICB0aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMsIGUuYnV0dG9uKSwKLSAgICAgICAgICAgIHRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMsIGUuYnV0dG9uKSk7Ci0gICAgICB9Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotCi0gICAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoJ2l0ZW0tbW91c2Vkb3duJyk7Ci0gICAgICBldmVudC5kYXRhID0gdGhpcy5kYXRhX1tpbmRleF07Ci0gICAgICBldmVudC5pbmRleCA9IGluZGV4OwotICAgICAgZXZlbnQuYnV0dG9ucyA9IGUuYnV0dG9uczsKLSAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgfSwKLQotICAgIG9uTW91c2VNb3ZlXzogZnVuY3Rpb24oYnV0dG9uLCBlKSB7Ci0gICAgICB2YXIgaW5kZXggPSB0aGlzLmdldERhdGFJbmRleEF0Q2xpZW50UG9pbnRfKGUuY2xpZW50WCwgZS5jbGllbnRZLCBmYWxzZSk7Ci0gICAgICBpZiAoZS5idXR0b25zICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgfQotCi0gICAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoJ2l0ZW0tbW91c2Vtb3ZlJyk7Ci0gICAgICBldmVudC5kYXRhID0gdGhpcy5kYXRhX1tpbmRleF07Ci0gICAgICBldmVudC5pbmRleCA9IGluZGV4OwotICAgICAgZXZlbnQuYnV0dG9uID0gYnV0dG9uOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICB9LAotCi0gICAgb25Nb3VzZVVwXzogZnVuY3Rpb24oYnV0dG9uLCBlKSB7Ci0gICAgICB2YXIgaW5kZXggPSB0aGlzLmdldERhdGFJbmRleEF0Q2xpZW50UG9pbnRfKGUuY2xpZW50WCwgZS5jbGllbnRZLCBmYWxzZSk7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotCi0gICAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoJ2l0ZW0tbW91c2V1cCcpOwotICAgICAgZXZlbnQuZGF0YSA9IHRoaXMuZGF0YV9baW5kZXhdOwotICAgICAgZXZlbnQuaW5kZXggPSBpbmRleDsKLSAgICAgIGV2ZW50LmJ1dHRvbiA9IGJ1dHRvbjsKLSAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgTGluZUNoYXJ0OiBMaW5lQ2hhcnQKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGluZV9jaGFydF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGluZV9jaGFydF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMzU1NGQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpbmVfY2hhcnRfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2xpbmVfY2hhcnQuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnc2luZ2xlU2VyaWVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNoYXJ0ID0gbmV3IHRyLmIudWkuTGluZUNoYXJ0KCk7Ci0gICAgY2hhcnQud2lkdGggPSA0MDA7Ci0gICAgY2hhcnQuaGVpZ2h0ID0gMjAwOwotICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOwotICAgIHZhciBkYXRhID0gWwotICAgICAge3g6IDEwLCB5OiAxMDB9LAotICAgICAge3g6IDIwLCB5OiAxMTB9LAotICAgICAge3g6IDMwLCB5OiAxMDB9LAotICAgICAge3g6IDQwLCB5OiA1MH0KLSAgICBdOwotICAgIGNoYXJ0LmRhdGEgPSBkYXRhOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjaGFydCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3R3b1NlcmllcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjaGFydCA9IG5ldyB0ci5iLnVpLkxpbmVDaGFydCgpOwotCi0gICAgY2hhcnQud2lkdGggPSA0MDA7Ci0gICAgY2hhcnQuaGVpZ2h0ID0gMjAwOwotICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOwotICAgIHZhciBkYXRhID0gWwotICAgICAge3g6IDEwLCB2YWx1ZTE6IDEwMCwgdmFsdWUyOiA1MH0sCi0gICAgICB7eDogMjAsIHZhbHVlMTogMTEwLCB2YWx1ZTI6IDc1fSwKLSAgICAgIHt4OiAzMCwgdmFsdWUxOiAxMDAsIHZhbHVlMjogMTI1fSwKLSAgICAgIHt4OiA0MCwgdmFsdWUxOiA1MCwgdmFsdWUyOiAxMjV9Ci0gICAgXTsKLSAgICBjaGFydC5kYXRhID0gZGF0YTsKLQotICAgIHZhciByID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICByLmFkZFZhbHVlKDIwKTsKLSAgICByLmFkZFZhbHVlKDQwKTsKLSAgICBjaGFydC5icnVzaGVkUmFuZ2UgPSByOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNoYXJ0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYnJ1c2hSYW5nZUZyb21JbmRpY2VzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNoYXJ0ID0gbmV3IHRyLmIudWkuTGluZUNoYXJ0KCk7Ci0gICAgdmFyIGRhdGEgPSBbCi0gICAgICB7eDogMTAsIHZhbHVlOiA1MH0sCi0gICAgICB7eDogMzAsIHZhbHVlOiA2MH0sCi0gICAgICB7eDogNzAsIHZhbHVlOiA3MH0sCi0gICAgICB7eDogODAsIHZhbHVlOiA4MH0sCi0gICAgICB7eDogMTIwLCB2YWx1ZTogOTB9Ci0gICAgXTsKLSAgICBjaGFydC5kYXRhID0gZGF0YTsKLSAgICB2YXIgciA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0KLSAgICAvLyBSYW5nZSBtaW4gc2hvdWxkIGJlIDEwLgotICAgIHIgPSBjaGFydC5jb21wdXRlQnJ1c2hSYW5nZUZyb21JbmRpY2VzKC0yLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoci5taW4sIDEwKTsKLQotICAgIC8vIFJhbmdlIG1heCBzaG91bGQgYmUgMTIwLgotICAgIHIgPSBjaGFydC5jb21wdXRlQnJ1c2hSYW5nZUZyb21JbmRpY2VzKDMsIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwoci5tYXgsIDEyMCk7Ci0KLSAgICAvLyBSYW5nZSBzaG91bGQgYmUgWzEwLCAxMjBdCi0gICAgciA9IGNoYXJ0LmNvbXB1dGVCcnVzaFJhbmdlRnJvbUluZGljZXMoLTIsIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwoci5taW4sIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwoci5tYXgsIDEyMCk7Ci0KLSAgICAvLyBSYW5nZSBzaG91bGQgYmUgWzIwLCAxMDBdCi0gICAgciA9IGNoYXJ0LmNvbXB1dGVCcnVzaFJhbmdlRnJvbUluZGljZXMoMSwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHIubWluLCAyMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHIubWF4LCAxMDApOwotICB9KTsKLQotICB0ZXN0KCdpbnRlcmFjdGl2ZUJydXNoaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNoYXJ0ID0gbmV3IHRyLmIudWkuTGluZUNoYXJ0KCk7Ci0gICAgY2hhcnQud2lkdGggPSA0MDA7Ci0gICAgY2hhcnQuaGVpZ2h0ID0gMjAwOwotICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOwotICAgIHZhciBkYXRhID0gWwotICAgICAge3g6IDEwLCB2YWx1ZTogNTB9LAotICAgICAge3g6IDIwLCB2YWx1ZTogNjB9LAotICAgICAge3g6IDMwLCB2YWx1ZTogODB9LAotICAgICAge3g6IDQwLCB2YWx1ZTogMjB9LAotICAgICAge3g6IDUwLCB2YWx1ZTogMzB9LAotICAgICAge3g6IDYwLCB2YWx1ZTogMjB9LAotICAgICAge3g6IDcwLCB2YWx1ZTogMTV9LAotICAgICAge3g6IDgwLCB2YWx1ZTogMjB9Ci0gICAgXTsKLSAgICBjaGFydC5kYXRhID0gZGF0YTsKLQotICAgIHZhciBtb3VzZURvd25JbmRleCA9IHVuZGVmaW5lZDsKLSAgICB2YXIgY3VyTW91c2VJbmRleCA9IHVuZGVmaW5lZDsKLQotICAgIGZ1bmN0aW9uIHVwZGF0ZUJydXNoZWRSYW5nZSgpIHsKLSAgICAgIGlmIChtb3VzZURvd25JbmRleCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIGNoYXJ0LmJydXNoZWRSYW5nZSA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGNoYXJ0LmJydXNoZWRSYW5nZSA9IGNoYXJ0LmNvbXB1dGVCcnVzaFJhbmdlRnJvbUluZGljZXMoCi0gICAgICAgICAgbW91c2VEb3duSW5kZXgsIGN1ck1vdXNlSW5kZXgpOwotICAgIH0KLQotICAgIGNoYXJ0LmFkZEV2ZW50TGlzdGVuZXIoJ2l0ZW0tbW91c2Vkb3duJywgZnVuY3Rpb24oZSkgewotICAgICAgbW91c2VEb3duSW5kZXggPSBlLmluZGV4OwotICAgICAgY3VyTW91c2VJbmRleCA9IGUuaW5kZXg7Ci0gICAgICB1cGRhdGVCcnVzaGVkUmFuZ2UoKTsKLSAgICB9KTsKLSAgICBjaGFydC5hZGRFdmVudExpc3RlbmVyKCdpdGVtLW1vdXNlbW92ZScsIGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmIChlLmJ1dHRvbiA9PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIGN1ck1vdXNlSW5kZXggPSBlLmluZGV4OwotICAgICAgdXBkYXRlQnJ1c2hlZFJhbmdlKCk7Ci0gICAgfSk7Ci0gICAgY2hhcnQuYWRkRXZlbnRMaXN0ZW5lcignaXRlbS1tb3VzZXVwJywgZnVuY3Rpb24oZSkgewotICAgICAgY3VyTW91c2VJbmRleCA9IGUuaW5kZXg7Ci0gICAgICB1cGRhdGVCcnVzaGVkUmFuZ2UoKTsKLSAgICB9KTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NjhlMGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpc3RfYW5kX2Fzc29jaWF0ZWRfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2xpc3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2Jhc2UvdWkvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3LmNzcyI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQSBsaXN0IG9mIHRoaW5ncywgYW5kIGEgdmlld2VyIGZvciB0aGUgY3VycmVudGx5IHNlbGVjdGVkCi0gKiB0aGluZy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgTGlzdEFuZEFzc29jaWF0ZWRWaWV3ID0gdHIuYi51aS5kZWZpbmUoJ3gtbGlzdC1hbmQtYXNzb2NpYXRlZC12aWV3Jyk7Ci0gIExpc3RBbmRBc3NvY2lhdGVkVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5saXN0XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMubGlzdFByb3BlcnR5XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMudmlld18gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnZpZXdQcm9wZXJ0eV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLmxpc3RWaWV3XyA9IG5ldyB0ci5iLnVpLkxpc3RWaWV3KCk7Ci0gICAgICB0aGlzLmxpc3RWaWV3Xy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMucGxhY2Vob2xkZXJfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMubGlzdFZpZXdfKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5wbGFjZWhvbGRlcl8pOwotICAgIH0sCi0KLSAgICBnZXQgbGlzdFZpZXcoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5saXN0Vmlld187Ci0gICAgfSwKLQotICAgIGdldCBsaXN0KCkgewotICAgICAgcmV0dXJuIHRoaXMubGlzdF87Ci0gICAgfSwKLQotICAgIHNldCBsaXN0KGxpc3QpIHsKLSAgICAgIHRoaXMubGlzdF8gPSBsaXN0OwotICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbl8oKTsKLSAgICB9LAotCi0gICAgZ2V0IGxpc3RQcm9wZXJ0eSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmxpc3RQcm9wZXJ0eV87Ci0gICAgfSwKLQotICAgIHNldCBsaXN0UHJvcGVydHkobGlzdFByb3BlcnR5KSB7Ci0gICAgICB0aGlzLmxpc3RQcm9wZXJ0eV8gPSBsaXN0UHJvcGVydHk7Ci0gICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuXygpOwotICAgIH0sCi0KLSAgICBnZXQgdmlldygpIHsKLSAgICAgIHJldHVybiB0aGlzLnZpZXdfOwotICAgIH0sCi0KLSAgICBzZXQgdmlldyh2aWV3KSB7Ci0gICAgICB0aGlzLnZpZXdfID0gdmlldzsKLSAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW5fKCk7Ci0gICAgfSwKLQotICAgIGdldCB2aWV3UHJvcGVydHkoKSB7Ci0gICAgICByZXR1cm4gdGhpcy52aWV3UHJvcGVydHlfOwotICAgIH0sCi0KLSAgICBzZXQgdmlld1Byb3BlcnR5KHZpZXdQcm9wZXJ0eSkgewotICAgICAgdGhpcy52aWV3UHJvcGVydHlfID0gdmlld1Byb3BlcnR5OwotICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbl8oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ2hpbGRyZW5fOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBjb21wbGV0ZSA9IHRoaXMubGlzdF8gJiYKLSAgICAgICAgICB0aGlzLmxpc3RQcm9wZXJ0eV8gJiYKLSAgICAgICAgICB0aGlzLnZpZXdfICYmCi0gICAgICAgICAgdGhpcy52aWV3UHJvcGVydHlfOwotICAgICAgaWYgKCFjb21wbGV0ZSkgewotICAgICAgICB0aGlzLnJlcGxhY2VDaGlsZCh0aGlzLnBsYWNlaG9sZGVyXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlblsxXSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxpc3RfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBpdGVtRWw7Ci0gICAgICAgIGlmIChpID49IHRoaXMubGlzdFZpZXdfLmNoaWxkcmVuLmxlbmd0aCkgewotICAgICAgICAgIGl0ZW1FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICAgIHRoaXMubGlzdFZpZXdfLmFwcGVuZENoaWxkKGl0ZW1FbCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaXRlbUVsID0gdGhpcy5saXN0Vmlld18uY2hpbGRyZW5baV07Ci0gICAgICAgIH0KLSAgICAgICAgaXRlbUVsLml0ZW0gPSB0aGlzLmxpc3RfW2ldOwotICAgICAgICB2YXIgZ2V0dGVyID0gdGhpcy5saXN0X1tpXS5fX2xvb2t1cEdldHRlcl9fKHRoaXMubGlzdFByb3BlcnR5Xyk7Ci0gICAgICAgIGlmIChnZXR0ZXIpCi0gICAgICAgICAgaXRlbUVsLnRleHRDb250ZW50ID0gZ2V0dGVyLmNhbGwodGhpcy5saXN0X1tpXSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBpdGVtRWwudGV4dENvbnRlbnQgPSB0aGlzLmxpc3RfW2ldW3RoaXMubGlzdFByb3BlcnR5X107Ci0gICAgICB9Ci0KLSAgICAgIGlmICh0aGlzLmNoaWxkcmVuWzFdID09IHRoaXMucGxhY2Vob2xkZXJfKSB7Ci0gICAgICAgIHRoaXMucmVwbGFjZUNoaWxkKHRoaXMudmlld18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5bMV0pOwotICAgICAgfQotICAgICAgaWYgKHRoaXMubGlzdFZpZXdfLmNoaWxkcmVuLmxlbmd0aCAmJgotICAgICAgICAgICF0aGlzLmxpc3RWaWV3Xy5zZWxlY3RlZEVsZW1lbnQpCi0gICAgICAgIHRoaXMubGlzdFZpZXdfLnNlbGVjdGVkRWxlbWVudCA9IHRoaXMubGlzdFZpZXdfLmNoaWxkcmVuWzBdOwotICAgIH0sCi0KLSAgICBvblNlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgc2V0dGVyID0gdGhpcy52aWV3Xy5fX2xvb2t1cFNldHRlcl9fKHRoaXMudmlld1Byb3BlcnR5Xyk7Ci0gICAgICBpZiAoIXNldHRlcikgewotICAgICAgICB2YXIgcHJvcCA9IHRoaXMudmlld1Byb3BlcnR5XzsKLSAgICAgICAgc2V0dGVyID0gZnVuY3Rpb24odmFsdWUpIHsgdGhpc1twcm9wXSA9IHZhbHVlOyB9Ci0gICAgICB9Ci0gICAgICBpZiAodGhpcy5saXN0Vmlld18uc2VsZWN0ZWRFbGVtZW50KSB7Ci0gICAgICAgIHNldHRlci5jYWxsKHRoaXMudmlld18sCi0gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdFZpZXdfLnNlbGVjdGVkRWxlbWVudC5pdGVtKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNldHRlci5jYWxsKHRoaXMudmlld18sCi0gICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCk7Ci0gICAgICB9Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgTGlzdEFuZEFzc29jaWF0ZWRWaWV3OiBMaXN0QW5kQXNzb2NpYXRlZFZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9saXN0X2FuZF9hc3NvY2lhdGVkX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4M2M1ZmRiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9saXN0X2FuZF9hc3NvY2lhdGVkX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3Lmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBMaXN0QW5kQXNzb2NpYXRlZFZpZXcgPSB0ci5iLnVpLkxpc3RBbmRBc3NvY2lhdGVkVmlldzsKLQotICB2YXIgU2ltcGxlVmlldyA9IHRyLmIudWkuZGVmaW5lKCdkaXYnKTsKLSAgU2ltcGxlVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLml0ZW1fID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBzZXQgaXRlbShpdGVtKSB7Ci0gICAgICB0aGlzLml0ZW1fID0gaXRlbTsKLSAgICB9LAotICAgIGdldCBpdGVtKCkgewotICAgICAgcmV0dXJuIHRoaXMuaXRlbV87Ci0gICAgfQotICB9OwotCi0gIHRlc3QoJ2xpc3RWaWV3TmFtaW5nV2l0aEZpZWxkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxhdiA9IG5ldyBMaXN0QW5kQXNzb2NpYXRlZFZpZXcoKTsKLSAgICB2YXIgbGlzdCA9IFsKLSAgICAgIHt4OiAnMSd9LAotICAgICAge3g6ICcyJ30sCi0gICAgICB7eDogJzMnfQotICAgIF07Ci0gICAgdmFyIHZpZXcgPSBuZXcgU2ltcGxlVmlldygpOwotCi0gICAgbGF2Lmxpc3QgPSBsaXN0OwotICAgIGxhdi5saXN0UHJvcGVydHkgPSAneCc7Ci0gICAgbGF2LnZpZXcgPSB2aWV3OwotICAgIGxhdi52aWV3UHJvcGVydHkgPSAnaXRlbSc7Ci0KLSAgICB2YXIgbGF2TGlzdFZpZXcgPSBsYXYubGlzdFZpZXc7Ci0gICAgYXNzZXJ0LmVxdWFsKGxhdkxpc3RWaWV3LmNoaWxkcmVuLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGxhdkxpc3RWaWV3LmNoaWxkcmVuWzBdLnRleHRDb250ZW50LCAnMScpOwotICB9KTsKLQotICB0ZXN0KCdsaXN0Vmlld05hbWluZ1dpdGhQcm9wZXJ0eScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsYXYgPSBuZXcgTGlzdEFuZEFzc29jaWF0ZWRWaWV3KCk7Ci0KLSAgICBmdW5jdGlvbiBYKHgpIHsKLSAgICAgIHRoaXMueCA9IHg7Ci0gICAgfQotICAgIFgucHJvdG90eXBlID0gewotICAgICAgZ2V0IHRpdGxlKCkgewotICAgICAgICByZXR1cm4gdGhpcy54OwotICAgICAgfQotICAgIH07Ci0KLSAgICB2YXIgbGlzdCA9IFsKLSAgICAgIG5ldyBYKCcxJyksCi0gICAgICBuZXcgWCgnMicpLAotICAgICAgbmV3IFgoJzMnKQotICAgIF07Ci0gICAgdmFyIHZpZXcgPSBuZXcgU2ltcGxlVmlldygpOwotCi0gICAgbGF2Lmxpc3QgPSBsaXN0OwotICAgIGxhdi5saXN0UHJvcGVydHkgPSAndGl0bGUnOwotICAgIGxhdi52aWV3ID0gdmlldzsKLSAgICBsYXYudmlld1Byb3BlcnR5ID0gJ2l0ZW0nOwotCi0gICAgdmFyIGxhdkxpc3RWaWV3ID0gbGF2Lmxpc3RWaWV3OwotICAgIGFzc2VydC5lcXVhbChsYXZMaXN0Vmlldy5jaGlsZHJlbi5sZW5ndGgsIDMpOwotICAgIGFzc2VydC5lcXVhbChsYXZMaXN0Vmlldy5jaGlsZHJlblswXS50ZXh0Q29udGVudCwgJzEnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2VsZWN0aW9uQ2hhbmdlc1ZpZXcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGF2ID0gbmV3IExpc3RBbmRBc3NvY2lhdGVkVmlldygpOwotICAgIHZhciBsaXN0ID0gWwotICAgICAge3g6ICcxJ30sCi0gICAgICB7eDogJzInfSwKLSAgICAgIHt4OiAnMyd9Ci0gICAgXTsKLSAgICB2YXIgdmlldyA9IG5ldyBTaW1wbGVWaWV3KCk7Ci0KLSAgICBsYXYubGlzdCA9IGxpc3Q7Ci0gICAgbGF2Lmxpc3RQcm9wZXJ0eSA9ICd4JzsKLSAgICBsYXYudmlldyA9IHZpZXc7Ci0gICAgbGF2LnZpZXdQcm9wZXJ0eSA9ICdpdGVtJzsKLSAgICB2YXIgbGF2TGlzdFZpZXcgPSBsYXYubGlzdFZpZXc7Ci0KLSAgICBhc3NlcnQuZXF1YWwobGlzdFswXSwgdmlldy5pdGVtKTsKLSAgICBsYXZMaXN0Vmlldy5jaGlsZHJlblsxXS5zZWxlY3RlZCA9IHRydWU7Ci0gICAgYXNzZXJ0LmVxdWFsKGxpc3RbMV0sIHZpZXcuaXRlbSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9saXN0X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9saXN0X3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQzNzBiNy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGlzdF92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbnRhaW5lcl90aGF0X2RlY29yYXRlc19pdHNfY2hpbGRyZW4uaHRtbCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9iYXNlL3VpL2xpc3Rfdmlldy5jc3MiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFNpbXBsZSBsaXN0IHZpZXcuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5iLnVpJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBMaXN0VmlldyA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ3gtbGlzdC12aWV3JywgdHIuYi51aS5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4pOwotCi0gIExpc3RWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmIudWkuQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmIudWkuQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMpOwotCi0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3gtbGlzdC12aWV3Jyk7Ci0gICAgICB0aGlzLm9uSXRlbUNsaWNrZWRfID0gdGhpcy5vbkl0ZW1DbGlja2VkXy5iaW5kKHRoaXMpOwotICAgICAgdGhpcy5vbktleURvd25fID0gdGhpcy5vbktleURvd25fLmJpbmQodGhpcyk7Ci0gICAgICB0aGlzLnRhYkluZGV4ID0gMDsKLSAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25LZXlEb3duXyk7Ci0KLSAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZF8gPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZGVjb3JhdGVDaGlsZF86IGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnbGlzdC1pdGVtJyk7Ci0gICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkl0ZW1DbGlja2VkXywgdHJ1ZSk7Ci0KLSAgICAgIHZhciBsaXN0VmlldyA9IHRoaXM7Ci0gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoCi0gICAgICAgICAgaXRlbSwKLSAgICAgICAgICAnc2VsZWN0ZWQnLCB7Ci0gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCi0gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgICAgIHZhciBvbGRTZWxlY3Rpb24gPSBsaXN0Vmlldy5zZWxlY3RlZEVsZW1lbnQ7Ci0gICAgICAgICAgICAgIGlmIChvbGRTZWxlY3Rpb24gJiYgb2xkU2VsZWN0aW9uICE9IHRoaXMgJiYgdmFsdWUpCi0gICAgICAgICAgICAgICAgbGlzdFZpZXcuc2VsZWN0ZWRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKLSAgICAgICAgICAgICAgaWYgKHZhbHVlKQotICAgICAgICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsICdzZWxlY3RlZCcpOwotICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7Ci0gICAgICAgICAgICAgIHZhciBuZXdTZWxlY3Rpb24gPSBsaXN0Vmlldy5zZWxlY3RlZEVsZW1lbnQ7Ci0gICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb24gIT0gb2xkU2VsZWN0aW9uKQotICAgICAgICAgICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudChsaXN0VmlldywgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgZmFsc2UpOwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICB9LAotCi0gICAgdW5kZWNvcmF0ZUNoaWxkXzogZnVuY3Rpb24oaXRlbSkgewotICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkXyB8PSBpdGVtLnNlbGVjdGVkOwotCi0gICAgICBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2xpc3QtaXRlbScpOwotICAgICAgaXRlbS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25JdGVtQ2xpY2tlZF8pOwotICAgICAgZGVsZXRlIGl0ZW0uc2VsZWN0ZWQ7Ci0gICAgfSwKLQotICAgIGJlZ2luRGVjb3JhdGluZ186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkXyA9IGZhbHNlOwotICAgIH0sCi0KLSAgICBkb25lRGVjb3JhdGluZ0Zvck5vd186IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uQ2hhbmdlZF8pCi0gICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnc2VsZWN0aW9uLWNoYW5nZWQnLCBmYWxzZSk7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3RlZEVsZW1lbnQoKSB7Ci0gICAgICB2YXIgZWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5saXN0LWl0ZW1bc2VsZWN0ZWRdJyk7Ci0gICAgICBpZiAoIWVsKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIGVsOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0ZWRFbGVtZW50KGVsKSB7Ci0gICAgICBpZiAoIWVsKSB7Ci0gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZWxlY3RlZCA9IGZhbHNlOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlmIChlbC5wYXJlbnRFbGVtZW50ICE9IHRoaXMpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigKLSAgICAgICAgICAgICdDYW4gb25seSBzZWxlY3QgZWxlbWVudHMgdGhhdCBhcmUgY2hpbGRyZW4gb2YgdGhpcyBsaXN0IHZpZXcnKTsKLSAgICAgIGVsLnNlbGVjdGVkID0gdHJ1ZTsKLSAgICB9LAotCi0gICAgZ2V0RWxlbWVudEJ5SW5kZXg6IGZ1bmN0aW9uKGluZGV4KSB7Ci0gICAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKCcubGlzdC1pdGVtOm50aC1jaGlsZCgnICsgaW5kZXggKyAnKScpOwotICAgIH0sCi0KLSAgICBjbGVhcjogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgY2hhbmdlZCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50ICE9PSB1bmRlZmluZWQ7Ci0gICAgICB0ci5iLnVpLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbi5wcm90b3R5cGUuY2xlYXIuY2FsbCh0aGlzKTsKLSAgICAgIGlmIChjaGFuZ2VkKQotICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgZmFsc2UpOwotICAgIH0sCi0KLSAgICBvbkl0ZW1DbGlja2VkXzogZnVuY3Rpb24oZSkgewotICAgICAgdmFyIGN1cnJlbnRTZWxlY3RlZEVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkRWxlbWVudDsKLSAgICAgIGlmIChjdXJyZW50U2VsZWN0ZWRFbGVtZW50KQotICAgICAgICBjdXJyZW50U2VsZWN0ZWRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKLSAgICAgIHZhciBlbGVtZW50ID0gZS50YXJnZXQ7Ci0gICAgICB3aGlsZSAoZWxlbWVudC5wYXJlbnRFbGVtZW50ICE9IHRoaXMpCi0gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7Ci0gICAgICBpZiAoZWxlbWVudCAhPT0gY3VycmVudFNlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgJ3NlbGVjdGVkJyk7Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgZmFsc2UpOwotICAgIH0sCi0KLSAgICBvbktleURvd25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAodGhpcy5zZWxlY3RlZEVsZW1lbnQgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBpZiAoZS5rZXlDb2RlID09IDM4KSB7IC8vIFVwIGFycm93LgotICAgICAgICB2YXIgcHJldiA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50LnByZXZpb3VzU2libGluZzsKLSAgICAgICAgaWYgKHByZXYpIHsKLSAgICAgICAgICBwcmV2LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgICB0ci5iLnNjcm9sbEludG9WaWV3SWZOZWVkZWQocHJldik7Ci0gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PSA0MCkgeyAvLyBEb3duIGFycm93LgotICAgICAgICB2YXIgbmV4dCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50Lm5leHRTaWJsaW5nOwotICAgICAgICBpZiAobmV4dCkgewotICAgICAgICAgIG5leHQuc2VsZWN0ZWQgPSB0cnVlOwotICAgICAgICAgIHRyLmIuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChuZXh0KTsKLSAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotCi0gICAgYWRkSXRlbTogZnVuY3Rpb24odGV4dENvbnRlbnQpIHsKLSAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICBpdGVtLnRleHRDb250ZW50ID0gdGV4dENvbnRlbnQ7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKGl0ZW0pOwotICAgICAgcmV0dXJuIGl0ZW07Ci0gICAgfQotCi0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBMaXN0VmlldzogTGlzdFZpZXcKLSAgfTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9saXN0X3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpc3Rfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjZWJlNTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpc3Rfdmlld190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9saXN0X3ZpZXcuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIExpc3RWaWV3ID0gdHIuYi51aS5MaXN0VmlldzsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gbmV3IExpc3RWaWV3KCk7Ci0gICAgdmFyIGkxID0gdmlldy5hZGRJdGVtKCdpdGVtIDEnKTsKLSAgICB2YXIgaTIgPSB2aWV3LmFkZEl0ZW0oJ2l0ZW0gMicpOwotICAgIHZhciBpMyA9IHZpZXcuYWRkSXRlbSgnaXRlbSAzJyk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICB9KTsKLQotICB0ZXN0KCdwcm9ncmFtbWF0aWNTZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IG5ldyBMaXN0VmlldygpOwotICAgIHZhciBpMSA9IHZpZXcuYWRkSXRlbSgnaXRlbSAxJyk7Ci0gICAgdmFyIGkyID0gdmlldy5hZGRJdGVtKCdpdGVtIDInKTsKLSAgICB2YXIgaTMgPSB2aWV3LmFkZEl0ZW0oJ2l0ZW0gMycpOwotCi0gICAgaTIuc2VsZWN0ZWQgPSB0cnVlOwotICAgIGFzc2VydC5pc1RydWUoaTIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBpMy5zZWxlY3RlZCA9IHRydWU7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoaTIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNUcnVlKGkzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NsaWNrU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBuZXcgTGlzdFZpZXcoKTsKLSAgICB2YXIgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOwotICAgIHZpZXcuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uLWNoYW5nZWQnLCBmdW5jdGlvbigpIHsKLSAgICAgIGRpZEZpcmVTZWxlY3Rpb25DaGFuZ2UgPSB0cnVlOwotICAgIH0pOwotICAgIHZhciBpMSA9IHZpZXcuYWRkSXRlbSgnaXRlbSAxJyk7Ci0gICAgdmFyIGkyID0gdmlldy5hZGRJdGVtKCdpdGVtIDInKTsKLSAgICB2YXIgaTMgPSB2aWV3LmFkZEl0ZW0oJ2l0ZW0gMycpOwotCi0gICAgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOwotICAgIGkyLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaWRGaXJlU2VsZWN0aW9uQ2hhbmdlKTsKLSAgICBhc3NlcnQuZXF1YWwodmlldy5zZWxlY3RlZEVsZW1lbnQsIGkyKTsKLQotICAgIGRpZEZpcmVTZWxlY3Rpb25DaGFuZ2UgPSBmYWxzZTsKLSAgICBpMy5jbGljaygpOwotICAgIGFzc2VydC5pc1RydWUoZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXcuc2VsZWN0ZWRFbGVtZW50LCBpMyk7Ci0KLSAgICAvLyBDbGljayB0aGUgc2FtZSB0YXJnZXQgYWdhaW4uCi0gICAgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOwotICAgIGkzLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaWRGaXJlU2VsZWN0aW9uQ2hhbmdlKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQodmlldy5zZWxlY3RlZEVsZW1lbnQpOwotCi0gICAgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOwotICAgIGkxLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaWRGaXJlU2VsZWN0aW9uQ2hhbmdlKTsKLSAgICBhc3NlcnQuZXF1YWwodmlldy5zZWxlY3RlZEVsZW1lbnQsIGkxKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL21vdXNlX21vZGVfc2VsZWN0b3IuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL21vdXNlX21vZGVfc2VsZWN0b3IuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmQwOWFmLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9tb3VzZV9tb2RlX3NlbGVjdG9yLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gKi8KLQotKiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgewotCi0gIC13ZWJraXQtdXNlci1kcmFnOiBlbGVtZW50OwotICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotCi0gIGJhY2tncm91bmQ6ICNEREQ7Ci0gIGJvcmRlcjogMXB4IHNvbGlkICNCQkI7Ci0gIGJvcmRlci1yYWRpdXM6IDRweDsKLSAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4yKTsKLSAgbGVmdDogY2FsYygxMDAlIC0gMTIwcHgpOwotICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gIHRvcDogMTAwcHg7Ci0gIHVzZXItc2VsZWN0OiBub25lOwotICB3aWR0aDogMjlweDsKLSAgei1pbmRleDogMjA7Ci19Ci0KLSogL2RlZXAvIC5tb3VzZS1tb2RlLWljb24gewotICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3VpLXN0YXRlcy5wbmcpOwotfQotCi0qIC9kZWVwLyAubW91c2UtbW9kZS1zZWxlY3RvciAuZHJhZy1oYW5kbGUgewotICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3VpLXN0YXRlcy5wbmcpIDJweCAzcHggbm8tcmVwZWF0OwotICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwotICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JDQkNCQzsKLSAgY3Vyc29yOiBtb3ZlOwotICBkaXNwbGF5OiBibG9jazsKLSAgaGVpZ2h0OiAxM3B4OwotICB3aWR0aDogMjdweDsKLX0KLQotKiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnBhbi1zY2FuLW1vZGUtYnV0dG9uIHsKLSAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy91aS1zdGF0ZXMucG5nKTsKLSAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTBweDsKLX0KLQotKiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnBhbi1zY2FuLW1vZGUtYnV0dG9uLmFjdGl2ZSB7Ci0gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMHB4IC0xMHB4OwotfQotCi0qIC9kZWVwLyAubW91c2UtbW9kZS1zZWxlY3RvciAuc2VsZWN0aW9uLW1vZGUtYnV0dG9uIHsKLSAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy91aS1zdGF0ZXMucG5nKTsKLSAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweDsKLX0KLQotKiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnNlbGVjdGlvbi1tb2RlLWJ1dHRvbi5hY3RpdmUgewotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzBweCAtNDBweDsKLX0KLQotKiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnpvb20tbW9kZS1idXR0b24gewotICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3VpLXN0YXRlcy5wbmcpOwotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC03MHB4OwotfQotCi0qIC9kZWVwLyAubW91c2UtbW9kZS1zZWxlY3RvciAuem9vbS1tb2RlLWJ1dHRvbi5hY3RpdmUgewotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzBweCAtNzBweDsKLX0KLQotKiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnRpbWluZy1tb2RlLWJ1dHRvbiB7Ci0gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvdWktc3RhdGVzLnBuZyk7Ci0gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEwMHB4OwotICBib3JkZXItYm90dG9tOiBub25lOwotfQotCi0qIC9kZWVwLyAubW91c2UtbW9kZS1zZWxlY3RvciAudGltaW5nLW1vZGUtYnV0dG9uLmFjdGl2ZSB7Ci0gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMHB4IC0xMDBweDsKLX0KLQotKiAvZGVlcC8gLm1vdXNlLW1vZGUtc2VsZWN0b3IgLnJvdGF0ZS1tb2RlLWJ1dHRvbiB7Ci0gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvdWktc3RhdGVzLnBuZyk7Ci0gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEzMHB4OwotICBib3JkZXItYm90dG9tOiBub25lOwotfQotCi0qIC9kZWVwLyAubW91c2UtbW9kZS1zZWxlY3RvciAucm90YXRlLW1vZGUtYnV0dG9uLmFjdGl2ZSB7Ci0gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMHB4IC0xMzBweDsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbW91c2VfbW9kZV9zZWxlY3Rvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGQ3YzYxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ODYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uva2V5X2V2ZW50X21hbmFnZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvbW91c2VfdHJhY2tlci5odG1sIj4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvYmFzZS91aS9tb3VzZV9tb2RlX3NlbGVjdG9yLmNzcyI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9iYXNlL3VpL3Rvb2xfYnV0dG9uLmNzcyI+Ci0KLTx0ZW1wbGF0ZSBpZD0ibW91c2UtbW9kZS1zZWxlY3Rvci10ZW1wbGF0ZSI+Ci0gIDxkaXYgY2xhc3M9ImRyYWctaGFuZGxlIj48L2Rpdj4KLSAgPGRpdiBjbGFzcz0iYnV0dG9ucyI+Ci0gIDwvZGl2PgotPC90ZW1wbGF0ZT4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLQotICB2YXIgVEhJU19ET0MgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7Ci0KLSAgdmFyIE1JTl9NT1VTRV9TRUxFQ1RJT05fRElTVEFOQ0UgPSA0OwotCi0gIHZhciBNT1VTRV9TRUxFQ1RPUl9NT0RFID0ge307Ci0gIE1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OID0gMHgxOwotICBNT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU4gPSAweDI7Ci0gIE1PVVNFX1NFTEVDVE9SX01PREUuWk9PTSA9IDB4NDsKLSAgTU9VU0VfU0VMRUNUT1JfTU9ERS5USU1JTkcgPSAweDg7Ci0gIE1PVVNFX1NFTEVDVE9SX01PREUuUk9UQVRFID0gMHgxMDsKLSAgTU9VU0VfU0VMRUNUT1JfTU9ERS5BTExfTU9ERVMgPSAweDFGOwotCi0gIHZhciBhbGxNb2RlSW5mbyA9IHt9OwotICBhbGxNb2RlSW5mb1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU5dID0gewotICAgIHRpdGxlOiAncGFuJywKLSAgICBjbGFzc05hbWU6ICdwYW4tc2Nhbi1tb2RlLWJ1dHRvbicsCi0gICAgZXZlbnROYW1lczogewotICAgICAgZW50ZXI6ICdlbnRlcnBhbicsCi0gICAgICBiZWdpbjogJ2JlZ2lucGFuJywKLSAgICAgIHVwZGF0ZTogJ3VwZGF0ZXBhbicsCi0gICAgICBlbmQ6ICdlbmRwYW4nLAotICAgICAgZXhpdDogJ2V4aXRwYW4nCi0gICAgfQotICB9OwotICBhbGxNb2RlSW5mb1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTl0gPSB7Ci0gICAgdGl0bGU6ICdzZWxlY3Rpb24nLAotICAgIGNsYXNzTmFtZTogJ3NlbGVjdGlvbi1tb2RlLWJ1dHRvbicsCi0gICAgZXZlbnROYW1lczogewotICAgICAgZW50ZXI6ICdlbnRlcnNlbGVjdGlvbicsCi0gICAgICBiZWdpbjogJ2JlZ2luc2VsZWN0aW9uJywKLSAgICAgIHVwZGF0ZTogJ3VwZGF0ZXNlbGVjdGlvbicsCi0gICAgICBlbmQ6ICdlbmRzZWxlY3Rpb24nLAotICAgICAgZXhpdDogJ2V4aXRzZWxlY3Rpb24nCi0gICAgfQotICB9OwotCi0gIGFsbE1vZGVJbmZvW01PVVNFX1NFTEVDVE9SX01PREUuWk9PTV0gPSB7Ci0gICAgdGl0bGU6ICd6b29tJywKLSAgICBjbGFzc05hbWU6ICd6b29tLW1vZGUtYnV0dG9uJywKLSAgICBldmVudE5hbWVzOiB7Ci0gICAgICBlbnRlcjogJ2VudGVyem9vbScsCi0gICAgICBiZWdpbjogJ2JlZ2luem9vbScsCi0gICAgICB1cGRhdGU6ICd1cGRhdGV6b29tJywKLSAgICAgIGVuZDogJ2VuZHpvb20nLAotICAgICAgZXhpdDogJ2V4aXR6b29tJwotICAgIH0KLSAgfTsKLSAgYWxsTW9kZUluZm9bTU9VU0VfU0VMRUNUT1JfTU9ERS5USU1JTkddID0gewotICAgIHRpdGxlOiAndGltaW5nJywKLSAgICBjbGFzc05hbWU6ICd0aW1pbmctbW9kZS1idXR0b24nLAotICAgIGV2ZW50TmFtZXM6IHsKLSAgICAgIGVudGVyOiAnZW50ZXJ0aW1pbmcnLAotICAgICAgYmVnaW46ICdiZWdpbnRpbWluZycsCi0gICAgICB1cGRhdGU6ICd1cGRhdGV0aW1pbmcnLAotICAgICAgZW5kOiAnZW5kdGltaW5nJywKLSAgICAgIGV4aXQ6ICdleGl0dGltaW5nJwotICAgIH0KLSAgfTsKLSAgYWxsTW9kZUluZm9bTU9VU0VfU0VMRUNUT1JfTU9ERS5ST1RBVEVdID0gewotICAgIHRpdGxlOiAncm90YXRlJywKLSAgICBjbGFzc05hbWU6ICdyb3RhdGUtbW9kZS1idXR0b24nLAotICAgIGV2ZW50TmFtZXM6IHsKLSAgICAgIGVudGVyOiAnZW50ZXJyb3RhdGUnLAotICAgICAgYmVnaW46ICdiZWdpbnJvdGF0ZScsCi0gICAgICB1cGRhdGU6ICd1cGRhdGVyb3RhdGUnLAotICAgICAgZW5kOiAnZW5kcm90YXRlJywKLSAgICAgIGV4aXQ6ICdleGl0cm90YXRlJwotICAgIH0KLSAgfTsKLQotICB2YXIgTU9ESUZJRVIgPSB7Ci0gICAgU0hJRlQ6IDB4MSwKLSAgICBTUEFDRTogMHgyLAotICAgIENNRF9PUl9DVFJMOiAweDQKLSAgfTsKLQotICAvKioKLSAgICogUHJvdmlkZXMgYSBwYW5lbCBmb3Igc3dpdGNoaW5nIHRoZSBpbnRlcmFjdGlvbiBtb2RlIG9mIHRoZSBtb3VzZS4KLSAgICogSXQgaGFuZGxlcyB0aGUgdXNlciBpbnRlcmFjdGlvbiBhbmQgZGlzcGF0Y2hlcyBldmVudHMgZm9yIHRoZSB2YXJpb3VzCi0gICAqIG1vZGVzLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge0hUTUxEaXZFbGVtZW50fQotICAgKi8KLSAgdmFyIE1vdXNlTW9kZVNlbGVjdG9yID0gdHIuYi51aS5kZWZpbmUoJ2RpdicpOwotCi0gIE1vdXNlTW9kZVNlbGVjdG9yLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbihvcHRfdGFyZ2V0RWxlbWVudCkgewotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdtb3VzZS1tb2RlLXNlbGVjdG9yJyk7Ci0KLSAgICAgIHZhciBub2RlID0gdHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjbW91c2UtbW9kZS1zZWxlY3Rvci10ZW1wbGF0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSElTX0RPQyk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKG5vZGUpOwotCi0gICAgICB0aGlzLmJ1dHRvbnNFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5idXR0b25zJyk7Ci0gICAgICB0aGlzLmRyYWdIYW5kbGVFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kcmFnLWhhbmRsZScpOwotCi0gICAgICB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrID0gTU9VU0VfU0VMRUNUT1JfTU9ERS5BTExfTU9ERVM7Ci0KLSAgICAgIHRoaXMuaW5pdGlhbFJlbGF0aXZlTW91c2VEb3duUG9zXyA9IHt4OiAwLCB5OiAwfTsKLQotICAgICAgdGhpcy5kZWZhdWx0TW9kZV8gPSBNT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU47Ci0gICAgICB0aGlzLnNldHRpbmdzS2V5XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMubW91c2VQb3NfID0ge3g6IDAsIHk6IDB9OwotICAgICAgdGhpcy5tb3VzZURvd25Qb3NfID0ge3g6IDAsIHk6IDB9OwotCi0gICAgICB0aGlzLmRyYWdIYW5kbGVFbF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywKLSAgICAgICAgICB0aGlzLm9uRHJhZ0hhbmRsZU1vdXNlRG93bl8uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMub25Nb3VzZURvd25fID0gdGhpcy5vbk1vdXNlRG93bl8uYmluZCh0aGlzKTsKLSAgICAgIHRoaXMub25Nb3VzZU1vdmVfID0gdGhpcy5vbk1vdXNlTW92ZV8uYmluZCh0aGlzKTsKLSAgICAgIHRoaXMub25Nb3VzZVVwXyA9IHRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpOwotCi0gICAgICB0aGlzLmJ1dHRvbnNFbF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25CdXR0b25Nb3VzZVVwXyk7Ci0gICAgICB0aGlzLmJ1dHRvbnNFbF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbkJ1dHRvbk1vdXNlRG93bl8pOwotICAgICAgdGhpcy5idXR0b25zRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkJ1dHRvblByZXNzXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdHIuYi5LZXlFdmVudE1hbmFnZXIuaW5zdGFuY2UuYWRkTGlzdGVuZXIoCi0gICAgICAgICAgJ2tleWRvd24nLCB0aGlzLm9uS2V5RG93bl8sIHRoaXMpOwotICAgICAgdHIuYi5LZXlFdmVudE1hbmFnZXIuaW5zdGFuY2UuYWRkTGlzdGVuZXIoCi0gICAgICAgICAgJ2tleXVwJywgdGhpcy5vbktleVVwXywgdGhpcyk7Ci0gICAgICB0aGlzLmtleUNvZGVDb25kaXRpb24gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIHRoaXMubW9kZV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLm1vZGVUb0tleUNvZGVNYXBfID0ge307Ci0gICAgICB0aGlzLm1vZGlmaWVyVG9Nb2RlTWFwXyA9IHt9OwotCi0gICAgICB0aGlzLnRhcmdldEVsZW1lbnQgPSBvcHRfdGFyZ2V0RWxlbWVudDsKLSAgICAgIHRoaXMuc3BhY2VQcmVzc2VkXyA9IGZhbHNlOwotICAgICAgdGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXyA9IG51bGw7Ci0KLSAgICAgIHRoaXMuaXNJbnRlcmFjdGluZ18gPSBmYWxzZTsKLSAgICAgIHRoaXMuaXNDbGlja18gPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IHRhcmdldEVsZW1lbnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50YXJnZXRFbGVtZW50XzsKLSAgICB9LAotCi0gICAgc2V0IHRhcmdldEVsZW1lbnQodGFyZ2V0KSB7Ci0gICAgICBpZiAodGhpcy50YXJnZXRFbGVtZW50XykKLSAgICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duXyk7Ci0gICAgICB0aGlzLnRhcmdldEVsZW1lbnRfID0gdGFyZ2V0OwotICAgICAgaWYgKHRoaXMudGFyZ2V0RWxlbWVudF8pCi0gICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbk1vdXNlRG93bl8pOwotICAgIH0sCi0KLSAgICBnZXQgZGVmYXVsdE1vZGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0TW9kZV87Ci0gICAgfSwKLQotICAgIHNldCBkZWZhdWx0TW9kZShkZWZhdWx0TW9kZSkgewotICAgICAgdGhpcy5kZWZhdWx0TW9kZV8gPSBkZWZhdWx0TW9kZTsKLSAgICB9LAotCi0gICAgZ2V0IHNldHRpbmdzS2V5KCkgewotICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NLZXlfOwotICAgIH0sCi0KLSAgICBzZXQgc2V0dGluZ3NLZXkoc2V0dGluZ3NLZXkpIHsKLSAgICAgIHRoaXMuc2V0dGluZ3NLZXlfID0gc2V0dGluZ3NLZXk7Ci0gICAgICBpZiAoIXRoaXMuc2V0dGluZ3NLZXlfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBtb2RlID0gdHIuYi5TZXR0aW5ncy5nZXQodGhpcy5zZXR0aW5nc0tleV8gKyAnLm1vZGUnLCB1bmRlZmluZWQpOwotICAgICAgLy8gTW9kZXMgY2hhbmdlZCBmcm9tIDEsMiwzLDQgdG8gMHgxLCAweDIsIDB4NCwgMHg4LiBGaXggYW55IHN0cmF5Ci0gICAgICAvLyBzZXR0aW5ncyB0byB0aGUgYmVzdCBvZiBvdXIgYWJpbGl0aWVzLgotICAgICAgaWYgKGFsbE1vZGVJbmZvW21vZGVdID09PSB1bmRlZmluZWQpCi0gICAgICAgIG1vZGUgPSB1bmRlZmluZWQ7Ci0KLSAgICAgIC8vIFJlc3RvcmluZyBzZXR0aW5ncyBhZ2FpbnN0IHVuc3VwcG9ydGVkIG1vZGVzIHNob3VsZCBqdXN0IGdvIGJhY2sgdG8gdGhlCi0gICAgICAvLyBkZWZhdWx0IG1vZGUuCi0gICAgICBpZiAoKG1vZGUgJiB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXykgPT09IDApCi0gICAgICAgIG1vZGUgPSB1bmRlZmluZWQ7Ci0KLSAgICAgIGlmICghbW9kZSkKLSAgICAgICAgbW9kZSA9IHRoaXMuZGVmYXVsdE1vZGVfOwotICAgICAgdGhpcy5tb2RlID0gbW9kZTsKLQotICAgICAgdmFyIHBvcyA9IHRyLmIuU2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ3NLZXlfICsgJy5wb3MnLCB1bmRlZmluZWQpOwotICAgICAgaWYgKHBvcykKLSAgICAgICAgdGhpcy5wb3MgPSBwb3M7Ci0gICAgfSwKLQotICAgIGdldCBzdXBwb3J0ZWRNb2RlTWFzaygpIHsKLSAgICAgIHJldHVybiB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogU2V0cyB0aGUgc3VwcG9ydGVkIG1vZGVzLiBTaG91bGQgYmUgYW4gT1ItaW5nIG9mIE1PVVNFX1NFTEVDVE9SX01PREUKLSAgICAgKiB2YWx1ZXMuCi0gICAgICovCi0gICAgc2V0IHN1cHBvcnRlZE1vZGVNYXNrKHN1cHBvcnRlZE1vZGVNYXNrKSB7Ci0gICAgICBpZiAodGhpcy5tb2RlICYmIChzdXBwb3J0ZWRNb2RlTWFzayAmIHRoaXMubW9kZSkgPT09IDApCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignc3VwcG9ydGVkTW9kZU1hc2sgbXVzdCBpbmNsdWRlIGN1cnJlbnQgbW9kZS4nKTsKLQotICAgICAgZnVuY3Rpb24gY3JlYXRlQnV0dG9uRm9yTW9kZShtb2RlKSB7Ci0gICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgYnV0dG9uLm1vZGUgPSBtb2RlOwotICAgICAgICBidXR0b24udGl0bGUgPSBhbGxNb2RlSW5mb1ttb2RlXS50aXRsZTsKLSAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ3Rvb2wtYnV0dG9uJyk7Ci0gICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QuYWRkKGFsbE1vZGVJbmZvW21vZGVdLmNsYXNzTmFtZSk7Ci0gICAgICAgIHJldHVybiBidXR0b247Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfID0gc3VwcG9ydGVkTW9kZU1hc2s7Ci0gICAgICB0aGlzLmJ1dHRvbnNFbF8udGV4dENvbnRlbnQgPSAnJzsKLSAgICAgIGZvciAodmFyIG1vZGVOYW1lIGluIE1PVVNFX1NFTEVDVE9SX01PREUpIHsKLSAgICAgICAgaWYgKG1vZGVOYW1lID09ICdBTExfTU9ERVMnKQotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB2YXIgbW9kZSA9IE1PVVNFX1NFTEVDVE9SX01PREVbbW9kZU5hbWVdOwotICAgICAgICBpZiAoKHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfICYgbW9kZSkgPT09IDApCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHRoaXMuYnV0dG9uc0VsXy5hcHBlbmRDaGlsZChjcmVhdGVCdXR0b25Gb3JNb2RlKG1vZGUpKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0IG1vZGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50TW9kZV87Ci0gICAgfSwKLQotICAgIHNldCBtb2RlKG5ld01vZGUpIHsKLSAgICAgIGlmIChuZXdNb2RlICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBuZXdNb2RlICE9PSAnbnVtYmVyJykKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZGUgbXVzdCBiZSBhIG51bWJlcicpOwotICAgICAgICBpZiAoKG5ld01vZGUgJiB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXykgPT09IDApCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc3dpdGNoIHRvIHRoaXMgbW9kZSwgaXQgaXMgbm90IHN1cHBvcnRlZCcpOwotICAgICAgICBpZiAoYWxsTW9kZUluZm9bbmV3TW9kZV0gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBtb2RlJyk7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBtb2RlSW5mbzsKLQotICAgICAgaWYgKHRoaXMuY3VycmVudE1vZGVfID09PSBuZXdNb2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRNb2RlXykgewotICAgICAgICBtb2RlSW5mbyA9IGFsbE1vZGVJbmZvW3RoaXMuY3VycmVudE1vZGVfXTsKLSAgICAgICAgdmFyIGJ1dHRvbkVsID0gdGhpcy5idXR0b25zRWxfLnF1ZXJ5U2VsZWN0b3IoJy4nICsgbW9kZUluZm8uY2xhc3NOYW1lKTsKLSAgICAgICAgaWYgKGJ1dHRvbkVsKQotICAgICAgICAgIGJ1dHRvbkVsLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwotCi0gICAgICAgIC8vIEVuZCBldmVudC4KLSAgICAgICAgaWYgKHRoaXMuaXNJbnRlcmFjdGluZ18pIHsKLQotICAgICAgICAgIHZhciBtb3VzZUV2ZW50ID0gdGhpcy5jcmVhdGVFdmVudF8oCi0gICAgICAgICAgICAgIGFsbE1vZGVJbmZvW3RoaXMubW9kZV0uZXZlbnROYW1lcy5lbmQpOwotICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEV4aXQgZXZlbnQuCi0gICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCBtb2RlSW5mby5ldmVudE5hbWVzLmV4aXQsIHRydWUpOwotICAgICAgfQotCi0gICAgICB0aGlzLmN1cnJlbnRNb2RlXyA9IG5ld01vZGU7Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRNb2RlXykgewotICAgICAgICBtb2RlSW5mbyA9IGFsbE1vZGVJbmZvW3RoaXMuY3VycmVudE1vZGVfXTsKLSAgICAgICAgdmFyIGJ1dHRvbkVsID0gdGhpcy5idXR0b25zRWxfLnF1ZXJ5U2VsZWN0b3IoJy4nICsgbW9kZUluZm8uY2xhc3NOYW1lKTsKLSAgICAgICAgaWYgKGJ1dHRvbkVsKQotICAgICAgICAgIGJ1dHRvbkVsLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwotCi0gICAgICAgIC8vIEVudGVyaW5nIGEgbmV3IG1vZGUgcmVzZXRzIG1vdXNlIGRvd24gcG9zLgotICAgICAgICB0aGlzLm1vdXNlRG93blBvc18ueCA9IHRoaXMubW91c2VQb3NfLng7Ci0gICAgICAgIHRoaXMubW91c2VEb3duUG9zXy55ID0gdGhpcy5tb3VzZVBvc18ueTsKLQotICAgICAgICAvLyBFbnRlciBldmVudC4KLSAgICAgICAgaWYgKCF0aGlzLmlzSW5BbHRlcm5hdGl2ZU1vZGVfKQotICAgICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCBtb2RlSW5mby5ldmVudE5hbWVzLmVudGVyLCB0cnVlKTsKLQotICAgICAgICAvLyBCZWdpbiBldmVudC4KLSAgICAgICAgaWYgKHRoaXMuaXNJbnRlcmFjdGluZ18pIHsKLSAgICAgICAgICB2YXIgbW91c2VFdmVudCA9IHRoaXMuY3JlYXRlRXZlbnRfKAotICAgICAgICAgICAgICBhbGxNb2RlSW5mb1t0aGlzLm1vZGVdLmV2ZW50TmFtZXMuYmVnaW4pOwotICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKLSAgICAgICAgfQotCi0KLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMuc2V0dGluZ3NLZXlfICYmICF0aGlzLmlzSW5BbHRlcm5hdGl2ZU1vZGVfKQotICAgICAgICB0ci5iLlNldHRpbmdzLnNldCh0aGlzLnNldHRpbmdzS2V5XyArICcubW9kZScsIHRoaXMubW9kZSk7Ci0gICAgfSwKLQotICAgIHNldEtleUNvZGVGb3JNb2RlOiBmdW5jdGlvbihtb2RlLCBrZXlDb2RlKSB7Ci0gICAgICBpZiAoKG1vZGUgJiB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXykgPT09IDApCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kZSBub3Qgc3VwcG9ydGVkJyk7Ci0gICAgICB0aGlzLm1vZGVUb0tleUNvZGVNYXBfW21vZGVdID0ga2V5Q29kZTsKLQotICAgICAgaWYgKCF0aGlzLmJ1dHRvbnNFbF8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIG1vZGVJbmZvID0gYWxsTW9kZUluZm9bbW9kZV07Ci0gICAgICB2YXIgYnV0dG9uRWwgPSB0aGlzLmJ1dHRvbnNFbF8ucXVlcnlTZWxlY3RvcignLicgKyBtb2RlSW5mby5jbGFzc05hbWUpOwotICAgICAgaWYgKGJ1dHRvbkVsKSB7Ci0gICAgICAgIGJ1dHRvbkVsLnRpdGxlID0KLSAgICAgICAgICAgIG1vZGVJbmZvLnRpdGxlICsgJyAoJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Q29kZSkgKyAnKSc7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIHNldEtleUNvZGVDb25kaXRpb246IGZ1bmN0aW9uKGNhbGxiYWNrKSB7Ci0gICAgICB0aGlzLmtleUNvZGVDb25kaXRpb24gPSBjYWxsYmFjazsKLSAgICB9LAotCi0gICAgc2V0Q3VycmVudE1vdXNlUG9zRnJvbUV2ZW50XzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5tb3VzZVBvc18ueCA9IGUuY2xpZW50WDsKLSAgICAgIHRoaXMubW91c2VQb3NfLnkgPSBlLmNsaWVudFk7Ci0gICAgfSwKLQotICAgIGNyZWF0ZUV2ZW50XzogZnVuY3Rpb24oZXZlbnROYW1lLCBzb3VyY2VFdmVudCkgewotICAgICAgdmFyIGV2ZW50ID0gbmV3IHRyLmIuRXZlbnQoZXZlbnROYW1lLCB0cnVlKTsKLSAgICAgIGV2ZW50LmNsaWVudFggPSB0aGlzLm1vdXNlUG9zXy54OwotICAgICAgZXZlbnQuY2xpZW50WSA9IHRoaXMubW91c2VQb3NfLnk7Ci0gICAgICBldmVudC5kZWx0YVggPSB0aGlzLm1vdXNlUG9zXy54IC0gdGhpcy5tb3VzZURvd25Qb3NfLng7Ci0gICAgICBldmVudC5kZWx0YVkgPSB0aGlzLm1vdXNlUG9zXy55IC0gdGhpcy5tb3VzZURvd25Qb3NfLnk7Ci0gICAgICBldmVudC5tb3VzZURvd25YID0gdGhpcy5tb3VzZURvd25Qb3NfLng7Ci0gICAgICBldmVudC5tb3VzZURvd25ZID0gdGhpcy5tb3VzZURvd25Qb3NfLnk7Ci0gICAgICBldmVudC5kaWRQcmV2ZW50RGVmYXVsdCA9IGZhbHNlOwotICAgICAgZXZlbnQucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZlbnQuZGlkUHJldmVudERlZmF1bHQgPSB0cnVlOwotICAgICAgICBpZiAoc291cmNlRXZlbnQpCi0gICAgICAgICAgc291cmNlRXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgIH07Ci0gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24gPSBmdW5jdGlvbigpIHsKLSAgICAgICAgc291cmNlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICB9OwotICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgICB9OwotICAgICAgcmV0dXJuIGV2ZW50OwotICAgIH0sCi0KLSAgICBvbk1vdXNlRG93bl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmIChlLmJ1dHRvbiAhPT0gMCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5zZXRDdXJyZW50TW91c2VQb3NGcm9tRXZlbnRfKGUpOwotICAgICAgdmFyIG1vdXNlRXZlbnQgPSB0aGlzLmNyZWF0ZUV2ZW50XygKLSAgICAgICAgICBhbGxNb2RlSW5mb1t0aGlzLm1vZGVdLmV2ZW50TmFtZXMuYmVnaW4sIGUpOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpOwotICAgICAgdGhpcy5pc0ludGVyYWN0aW5nXyA9IHRydWU7Ci0gICAgICB0aGlzLmlzQ2xpY2tfID0gdHJ1ZTsKLSAgICAgIHRyLmIudWkudHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwKHRoaXMub25Nb3VzZU1vdmVfLCB0aGlzLm9uTW91c2VVcF8pOwotICAgIH0sCi0KLSAgICBvbk1vdXNlTW92ZV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMuc2V0Q3VycmVudE1vdXNlUG9zRnJvbUV2ZW50XyhlKTsKLQotICAgICAgdmFyIG1vdXNlRXZlbnQgPSB0aGlzLmNyZWF0ZUV2ZW50XygKLSAgICAgICAgICBhbGxNb2RlSW5mb1t0aGlzLm1vZGVdLmV2ZW50TmFtZXMudXBkYXRlLCBlKTsKLSAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKLQotICAgICAgaWYgKHRoaXMuaXNJbnRlcmFjdGluZ18pCi0gICAgICAgIHRoaXMuY2hlY2tJc0NsaWNrXyhlKTsKLSAgICB9LAotCi0gICAgb25Nb3VzZVVwXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKGUuYnV0dG9uICE9PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBtb3VzZUV2ZW50ID0gdGhpcy5jcmVhdGVFdmVudF8oCi0gICAgICAgICAgYWxsTW9kZUluZm9bdGhpcy5tb2RlXS5ldmVudE5hbWVzLmVuZCwgZSk7Ci0gICAgICBtb3VzZUV2ZW50LmlzQ2xpY2sgPSB0aGlzLmlzQ2xpY2tfOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpOwotCi0gICAgICBpZiAodGhpcy5pc0NsaWNrXyAmJiAhbW91c2VFdmVudC5kaWRQcmV2ZW50RGVmYXVsdCkKLSAgICAgICAgdGhpcy5kaXNwYXRjaENsaWNrRXZlbnRzXyhlKTsKLQotICAgICAgdGhpcy5pc0ludGVyYWN0aW5nXyA9IGZhbHNlOwotICAgICAgdGhpcy51cGRhdGVBbHRlcm5hdGl2ZU1vZGVTdGF0ZV8oZSk7Ci0gICAgfSwKLQotICAgIG9uQnV0dG9uTW91c2VEb3duXzogZnVuY3Rpb24oZSkgewotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKLSAgICB9LAotCi0gICAgb25CdXR0b25Nb3VzZVVwXzogZnVuY3Rpb24oZSkgewotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKLSAgICB9LAotCi0gICAgb25CdXR0b25QcmVzc186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLm1vZGUgPSBlLnRhcmdldC5tb2RlOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0sCi0KLSAgICBvbktleURvd25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoZS5rZXlDb2RlID09PSAnICcuY2hhckNvZGVBdCgwKSkKLSAgICAgICAgdGhpcy5zcGFjZVByZXNzZWRfID0gdHJ1ZTsKLSAgICAgIHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVNb2RlU3RhdGVfKGUpOwotICAgIH0sCi0KLSAgICBvbktleVVwXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKGUua2V5Q29kZSA9PT0gJyAnLmNoYXJDb2RlQXQoMCkpCi0gICAgICAgIHRoaXMuc3BhY2VQcmVzc2VkXyA9IGZhbHNlOwotCi0gICAgICBpZiAodGhpcy5rZXlDb2RlQ29uZGl0aW9uICE9IHVuZGVmaW5lZCAmJiAhdGhpcy5rZXlDb2RlQ29uZGl0aW9uKCkpIHsKLSAgICAgICAgLy8gSWYga2V5Q29kZUNvbmRpdGlvbiBpcyBmYWxzZSB3aGVuIHRoZSBGaW5kQ29udHJvbCBpcyBhY3RpdmUsCi0gICAgICAgIC8vIGlnbm9yZSB0aGUga2V5VXAgZXZlbnQuCi0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIGRpZEhhbmRsZUtleSA9IGZhbHNlOwotICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5tb2RlVG9LZXlDb2RlTWFwXywgZnVuY3Rpb24obW9kZVN0ciwga2V5Q29kZSkgewotICAgICAgICBpZiAoZS5rZXlDb2RlID09PSBrZXlDb2RlKSB7Ci0gICAgICAgICAgdGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICB2YXIgbW9kZSA9IHBhcnNlSW50KG1vZGVTdHIpOwotICAgICAgICAgIHRoaXMubW9kZSA9IG1vZGU7Ci0gICAgICAgICAgZGlkSGFuZGxlS2V5ID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIGlmIChkaWRIYW5kbGVLZXkpIHsKLSAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICB0aGlzLnVwZGF0ZUFsdGVybmF0aXZlTW9kZVN0YXRlXyhlKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQWx0ZXJuYXRpdmVNb2RlU3RhdGVfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgc2hpZnRQcmVzc2VkID0gZS5zaGlmdEtleTsKLSAgICAgIHZhciBzcGFjZVByZXNzZWQgPSB0aGlzLnNwYWNlUHJlc3NlZF87Ci0gICAgICB2YXIgY21kT3JDdHJsUHJlc3NlZCA9Ci0gICAgICAgICAgKHRyLmlzTWFjICYmIGUubWV0YUtleSkgfHwgKCF0ci5pc01hYyAmJiBlLmN0cmxLZXkpOwotCi0gICAgICAvLyBGaWd1cmUgb3V0IHRoZSBuZXcgbW9kZQotICAgICAgdmFyIHNtbSA9IHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfOwotICAgICAgdmFyIG5ld01vZGU7Ci0gICAgICB2YXIgaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUgPSBmYWxzZTsKLSAgICAgIGlmIChzaGlmdFByZXNzZWQgJiYKLSAgICAgICAgICAodGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU0hJRlRdICYgc21tKSAhPT0gMCkgewotICAgICAgICBuZXdNb2RlID0gdGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU0hJRlRdOwotICAgICAgICBpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZSA9IHRydWU7Ci0gICAgICB9IGVsc2UgaWYgKHNwYWNlUHJlc3NlZCAmJgotICAgICAgICAgICAgICAgICAodGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU1BBQ0VdICYgc21tKSAhPT0gMCkgewotICAgICAgICBuZXdNb2RlID0gdGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU1BBQ0VdOwotICAgICAgICBpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZSA9IHRydWU7Ci0gICAgICB9IGVsc2UgaWYgKGNtZE9yQ3RybFByZXNzZWQgJiYKLSAgICAgICAgICAgICAgICAgKHRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLkNNRF9PUl9DVFJMXSAmIHNtbSkgIT09IDApIHsKLSAgICAgICAgbmV3TW9kZSA9IHRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLkNNRF9PUl9DVFJMXTsKLSAgICAgICAgaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUgPSB0cnVlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gR28gdG8gdGhlIG9sZCBtb2RlLCBpZiB0aGVyZSBpcyBvbmUuCi0gICAgICAgIGlmICh0aGlzLmlzSW5BbHRlcm5hdGl2ZU1vZGVfKSB7Ci0gICAgICAgICAgbmV3TW9kZSA9IHRoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF87Ci0gICAgICAgICAgaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBuZXdNb2RlID0gdW5kZWZpbmVkOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIC8vIE1heWJlIGEgbW9kZSBjaGFuZ2UgaXNuJ3QgbmVlZGVkLgotICAgICAgaWYgKHRoaXMubW9kZSA9PT0gbmV3TW9kZSB8fCBuZXdNb2RlID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgLy8gT2theSwgd2UncmUgY2hhbmdpbmcuCi0gICAgICBpZiAoaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUpCi0gICAgICAgIHRoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF8gPSB0aGlzLm1vZGU7Ci0gICAgICB0aGlzLm1vZGUgPSBuZXdNb2RlOwotICAgIH0sCi0KLSAgICBnZXQgaXNJbkFsdGVybmF0aXZlTW9kZV8oKSB7Ci0gICAgICByZXR1cm4gISF0aGlzLm1vZGVCZWZvcmVBbHRlcm5hdGl2ZU1vZGVBY3RpdmF0ZWRfOwotICAgIH0sCi0KLSAgICBzZXRNb2RpZmllckZvckFsdGVybmF0ZU1vZGU6IGZ1bmN0aW9uKG1vZGUsIG1vZGlmaWVyKSB7Ci0gICAgICB0aGlzLm1vZGlmaWVyVG9Nb2RlTWFwX1ttb2RpZmllcl0gPSBtb2RlOwotICAgIH0sCi0KLSAgICBnZXQgcG9zKCkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgeDogcGFyc2VJbnQodGhpcy5zdHlsZS5sZWZ0KSwKLSAgICAgICAgeTogcGFyc2VJbnQodGhpcy5zdHlsZS50b3ApCi0gICAgICB9OwotICAgIH0sCi0KLSAgICBzZXQgcG9zKHBvcykgewotICAgICAgcG9zID0gdGhpcy5jb25zdHJhaW5Qb3NpdGlvblRvQm91bmRzXyhwb3MpOwotCi0gICAgICB0aGlzLnN0eWxlLmxlZnQgPSBwb3MueCArICdweCc7Ci0gICAgICB0aGlzLnN0eWxlLnRvcCA9IHBvcy55ICsgJ3B4JzsKLQotICAgICAgaWYgKHRoaXMuc2V0dGluZ3NLZXlfKQotICAgICAgICB0ci5iLlNldHRpbmdzLnNldCh0aGlzLnNldHRpbmdzS2V5XyArICcucG9zJywgdGhpcy5wb3MpOwotICAgIH0sCi0KLSAgICBjb25zdHJhaW5Qb3NpdGlvblRvQm91bmRzXzogZnVuY3Rpb24ocG9zKSB7Ci0gICAgICB2YXIgcGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuYm9keTsKLSAgICAgIHZhciBwYXJlbnRSZWN0ID0gdHIuYi53aW5kb3dSZWN0Rm9yRWxlbWVudChwYXJlbnQpOwotCi0gICAgICB2YXIgdG9wID0gMDsKLSAgICAgIHZhciBib3R0b20gPSBwYXJlbnRSZWN0LmhlaWdodCAtIHRoaXMub2Zmc2V0SGVpZ2h0OwotICAgICAgdmFyIGxlZnQgPSAwOwotICAgICAgdmFyIHJpZ2h0ID0gcGFyZW50UmVjdC53aWR0aCAtIHRoaXMub2Zmc2V0V2lkdGg7Ci0KLSAgICAgIHZhciByZXMgPSB7fTsKLSAgICAgIHJlcy54ID0gTWF0aC5tYXgocG9zLngsIGxlZnQpOwotICAgICAgcmVzLnggPSBNYXRoLm1pbihyZXMueCwgcmlnaHQpOwotCi0gICAgICByZXMueSA9IE1hdGgubWF4KHBvcy55LCB0b3ApOwotICAgICAgcmVzLnkgPSBNYXRoLm1pbihyZXMueSwgYm90dG9tKTsKLSAgICAgIHJldHVybiByZXM7Ci0gICAgfSwKLQotICAgIG9uRHJhZ0hhbmRsZU1vdXNlRG93bl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7Ci0KLSAgICAgIHZhciBtb3VzZURvd25Qb3MgPSB7Ci0gICAgICAgIHg6IGUuY2xpZW50WCAtIHRoaXMub2Zmc2V0TGVmdCwKLSAgICAgICAgeTogZS5jbGllbnRZIC0gdGhpcy5vZmZzZXRUb3AKLSAgICAgIH07Ci0gICAgICB0ci5iLnVpLnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcChmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBwb3MgPSB7fTsKLSAgICAgICAgcG9zLnggPSBlLmNsaWVudFggLSBtb3VzZURvd25Qb3MueDsKLSAgICAgICAgcG9zLnkgPSBlLmNsaWVudFkgLSBtb3VzZURvd25Qb3MueTsKLSAgICAgICAgdGhpcy5wb3MgPSBwb3M7Ci0gICAgICB9LmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICBjaGVja0lzQ2xpY2tfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoIXRoaXMuaXNJbnRlcmFjdGluZ18gfHwgIXRoaXMuaXNDbGlja18pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGRlbHRhWCA9IHRoaXMubW91c2VQb3NfLnggLSB0aGlzLm1vdXNlRG93blBvc18ueDsKLSAgICAgIHZhciBkZWx0YVkgPSB0aGlzLm1vdXNlUG9zXy55IC0gdGhpcy5tb3VzZURvd25Qb3NfLnk7Ci0gICAgICB2YXIgbWluRGlzdCA9IE1JTl9NT1VTRV9TRUxFQ1RJT05fRElTVEFOQ0U7Ci0KLSAgICAgIGlmIChkZWx0YVggKiBkZWx0YVggKyBkZWx0YVkgKiBkZWx0YVkgPiBtaW5EaXN0ICogbWluRGlzdCkKLSAgICAgICAgdGhpcy5pc0NsaWNrXyA9IGZhbHNlOwotICAgIH0sCi0KLSAgICBkaXNwYXRjaENsaWNrRXZlbnRzXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKCF0aGlzLmlzQ2xpY2tfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBldmVudE5hbWVzID0gYWxsTW9kZUluZm9bTU9VU0VfU0VMRUNUT1JfTU9ERS5TRUxFQ1RJT05dLmV2ZW50TmFtZXM7Ci0KLSAgICAgIHZhciBtb3VzZUV2ZW50ID0gdGhpcy5jcmVhdGVFdmVudF8oZXZlbnROYW1lcy5iZWdpbik7Ci0gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7Ci0KLSAgICAgIG1vdXNlRXZlbnQgPSB0aGlzLmNyZWF0ZUV2ZW50XyhldmVudE5hbWVzLmVuZCk7Ci0gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgTUlOX01PVVNFX1NFTEVDVElPTl9ESVNUQU5DRTogTUlOX01PVVNFX1NFTEVDVElPTl9ESVNUQU5DRSwKLSAgICBNb3VzZU1vZGVTZWxlY3RvcjogTW91c2VNb2RlU2VsZWN0b3IsCi0gICAgTU9VU0VfU0VMRUNUT1JfTU9ERTogTU9VU0VfU0VMRUNUT1JfTU9ERSwKLSAgICBNT0RJRklFUjogTU9ESUZJRVIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbW91c2VfbW9kZV9zZWxlY3Rvcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbW91c2VfbW9kZV9zZWxlY3Rvcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxOTNhYWIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL21vdXNlX21vZGVfc2VsZWN0b3JfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvbW91c2VfbW9kZV9zZWxlY3Rvci5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgTU9VU0VfU0VMRUNUT1JfTU9ERSA9IHRyLmIudWkuTU9VU0VfU0VMRUNUT1JfTU9ERTsKLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsID0gbmV3IHRyLmIudWkuTW91c2VNb2RlU2VsZWN0b3IoKTsKLSAgICBzZWwuc3VwcG9ydGVkTW9kZU1hc2sgPQotICAgICAgICBNT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTiB8Ci0gICAgICAgIE1PVVNFX1NFTEVDVE9SX01PREUuUEFOU0NBTjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc2VsKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hhbmdlTWFza1dpdGhVbnN1cHBvcnRlZE1vZGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsID0gbmV3IHRyLmIudWkuTW91c2VNb2RlU2VsZWN0b3IoKTsKLSAgICBzZWwubW9kZSA9IE1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OOwotICAgIGFzc2VydC50aHJvdyhmdW5jdGlvbigpIHsKLSAgICAgIHNlbC5zdXBwb3J0ZWRNb2RlTWFzayA9IE1PVVNFX1NFTEVDVE9SX01PREUuWk9PTTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnbW9kZVBlcnNpc3RzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbDEgPSBuZXcgdHIuYi51aS5Nb3VzZU1vZGVTZWxlY3RvcigpOwotICAgIHNlbDEuZGVmYXVsdE1vZGVfID0gTU9VU0VfU0VMRUNUT1JfTU9ERS5aT09NOwotICAgIHNlbDEuc2V0dGluZ3NLZXkgPSAnZm9vJzsKLSAgICBhc3NlcnQuZXF1YWwoc2VsMS5tb2RlLCBNT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT00pOwotCi0gICAgc2VsMS5tb2RlID0gTU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOOwotCi0gICAgdmFyIHNlbDIgPSBuZXcgdHIuYi51aS5Nb3VzZU1vZGVTZWxlY3RvcigpOwotICAgIHNlbDIuc2V0dGluZ3NLZXkgPSAnZm9vJzsKLSAgICBhc3NlcnQuZXF1YWwoc2VsMi5tb2RlLCBNT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU4pOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9tb3VzZV90cmFja2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbW91c2VfdHJhY2tlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTBkODMyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9tb3VzZV90cmFja2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBBIE1vdXNlLWV2ZW50IGFidHJhY3Rpb24gdGhhdCB3YWl0cyBmb3IKLSAqICAgbW91c2Vkb3duLCB0aGVuIHdhdGNoZXMgZm9yIHN1YnNlcXVlbnQgbW91c2Vtb3ZlIGV2ZW50cwotICogICB1bnRpbCB0aGUgbmV4dCBtb3VzZXVwIGV2ZW50LCB0aGVuIHdhaXRzIGFnYWluLgotICogICBTdGF0ZSBjaGFuZ2VzIGFyZSBzaWduYWxlZCB3aXRoCi0gKiAgICAgICdtb3VzZS10cmFja2VyLXN0YXJ0JyA6IG1vdXNlZG93biBhbmQgdHJhY2tpbmcKLSAqICAgICAgJ21vdXNlLXRyYWNrZXItbW92ZScgOiBtb3VzZSBtb3ZlCi0gKiAgICAgICdtb3VzZS10cmFja2VyLWVuZCcgOiBtb3VzZXVwIGFuZCBub3QgdHJhY2tpbmcuCi0gKi8KLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldEVsZW1lbnQgd2lsbCByZWN2IGV2ZW50cyAnbW91c2UtdHJhY2tlci1zdGFydCcsCi0gICAqICAgICAnbW91c2UtdHJhY2tlci1tb3ZlJywgJ21vdXNlLXRyYWNrZXItZW5kJy4KLSAgICovCi0gIGZ1bmN0aW9uIE1vdXNlVHJhY2tlcihvcHRfdGFyZ2V0RWxlbWVudCkgewotICAgIHRoaXMub25Nb3VzZURvd25fID0gdGhpcy5vbk1vdXNlRG93bl8uYmluZCh0aGlzKTsKLSAgICB0aGlzLm9uTW91c2VNb3ZlXyA9IHRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7Ci0gICAgdGhpcy5vbk1vdXNlVXBfID0gdGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyk7Ci0KLSAgICB0aGlzLnRhcmdldEVsZW1lbnQgPSBvcHRfdGFyZ2V0RWxlbWVudDsKLSAgfQotCi0gIE1vdXNlVHJhY2tlci5wcm90b3R5cGUgPSB7Ci0KLSAgICBnZXQgdGFyZ2V0RWxlbWVudCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnRhcmdldEVsZW1lbnRfOwotICAgIH0sCi0KLSAgICBzZXQgdGFyZ2V0RWxlbWVudCh0YXJnZXRFbGVtZW50KSB7Ci0gICAgICBpZiAodGhpcy50YXJnZXRFbGVtZW50XykKLSAgICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duXyk7Ci0gICAgICB0aGlzLnRhcmdldEVsZW1lbnRfID0gdGFyZ2V0RWxlbWVudDsKLSAgICAgIGlmICh0aGlzLnRhcmdldEVsZW1lbnRfKQotICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd25fKTsKLSAgICB9LAotCi0gICAgb25Nb3VzZURvd25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoZS5idXR0b24gIT09IDApCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICBlID0gdGhpcy5yZW1ha2VFdmVudF8oZSwgJ21vdXNlLXRyYWNrZXItc3RhcnQnKTsKLSAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTsKLSAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVfKTsKLSAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcF8pOwotICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5vbk1vdXNlVXBfKTsKLSAgICAgIHRoaXMuc2F2ZVByZXZpb3VzVXNlclNlbGVjdF8gPSBkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J107Ci0gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J10gPSAnbm9uZSc7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgb25Nb3VzZU1vdmVfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBlID0gdGhpcy5yZW1ha2VFdmVudF8oZSwgJ21vdXNlLXRyYWNrZXItbW92ZScpOwotICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH0sCi0KLSAgICBvbk1vdXNlVXBfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlXyk7Ci0gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXBfKTsKLSAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMub25Nb3VzZVVwXyk7Ci0gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J10gPQotICAgICAgICAgIHRoaXMuc2F2ZVByZXZpb3VzVXNlclNlbGVjdF87Ci0gICAgICBlID0gdGhpcy5yZW1ha2VFdmVudF8oZSwgJ21vdXNlLXRyYWNrZXItZW5kJyk7Ci0gICAgICB0aGlzLnRhcmdldEVsZW1lbnRfLmRpc3BhdGNoRXZlbnQoZSk7Ci0gICAgfSwKLQotICAgIHJlbWFrZUV2ZW50XzogZnVuY3Rpb24oZSwgbmV3VHlwZSkgewotICAgICAgdmFyIHJlbWFkZSA9IG5ldyB0ci5iLkV2ZW50KG5ld1R5cGUsIHRydWUsIHRydWUpOwotICAgICAgcmVtYWRlLnggPSBlLng7Ci0gICAgICByZW1hZGUueSA9IGUueTsKLSAgICAgIHJlbWFkZS5vZmZzZXRYID0gZS5vZmZzZXRYOwotICAgICAgcmVtYWRlLm9mZnNldFkgPSBlLm9mZnNldFk7Ci0gICAgICByZW1hZGUuY2xpZW50WCA9IGUuY2xpZW50WDsKLSAgICAgIHJlbWFkZS5jbGllbnRZID0gZS5jbGllbnRZOwotICAgICAgcmV0dXJuIHJlbWFkZTsKLSAgICB9Ci0KLSAgfTsKLQotICBmdW5jdGlvbiB0cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAobW91c2VNb3ZlSGFuZGxlciwgb3B0X21vdXNlVXBIYW5kbGVyKSB7Ci0gICAgZnVuY3Rpb24gY2xlYW51cEFuZERpc3BhdGNoVG9Nb3VzZVVwKGUpIHsKLSAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZUhhbmRsZXIpOwotICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGNsZWFudXBBbmREaXNwYXRjaFRvTW91c2VVcCk7Ci0gICAgICBpZiAob3B0X21vdXNlVXBIYW5kbGVyKQotICAgICAgICBvcHRfbW91c2VVcEhhbmRsZXIoZSk7Ci0gICAgfQotICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZUhhbmRsZXIpOwotICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBjbGVhbnVwQW5kRGlzcGF0Y2hUb01vdXNlVXApOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBNb3VzZVRyYWNrZXI6IE1vdXNlVHJhY2tlciwKLSAgICB0cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXA6IHRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9vdmVybGF5Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvb3ZlcmxheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTBjOTFiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9vdmVybGF5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9wcm9wZXJ0aWVzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50cy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLQotPHRlbXBsYXRlIGlkPSJvdmVybGF5LXRlbXBsYXRlIj4KLSAgPHN0eWxlPgotICAgIG92ZXJsYXktbWFzayB7Ci0gICAgICBsZWZ0OiAwOwotICAgICAgcGFkZGluZzogOHB4OwotICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgdG9wOiAwOwotICAgICAgei1pbmRleDogMTAwMDsKLSAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwotICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKLSAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKLSAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgICAgIGhlaWdodDogMTAwJTsKLSAgICAgIGxlZnQ6IDA7Ci0gICAgICBwb3NpdGlvbjogZml4ZWQ7Ci0gICAgICB0b3A6IDA7Ci0gICAgICB3aWR0aDogMTAwJTsKLSAgICB9Ci0gICAgb3ZlcmxheS1tYXNrOmZvY3VzIHsKLSAgICAgIG91dGxpbmU6IG5vbmU7Ci0gICAgfQotICAgIG92ZXJsYXktdmVydGljYWwtY2VudGVyaW5nLWNvbnRhaW5lciB7Ci0gICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyOwotICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICAgIH0KLSAgICBvdmVybGF5LWZyYW1lIHsKLSAgICAgIHotaW5kZXg6IDExMDA7Ci0gICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ci0gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOwotICAgICAgbWFyZ2luOiA3NXB4OwotICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgbWluLWhlaWdodDogMDsKLSAgICB9Ci0gICAgdGl0bGUtYmFyIHsKLSAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOwotICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKLSAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgICAgIHBhZGRpbmc6IDVweDsKLSAgICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87Ci0gICAgfQotICAgIHRpdGxlIHsKLSAgICAgIGRpc3BsYXk6IGlubGluZTsKLSAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKLSAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gICAgfQotICAgIGNsb3NlLWJ1dHRvbiB7Ci0gICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtZW5kOwotICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7Ci0gICAgICBmb250LXNpemU6IDEwcHQ7Ci0gICAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICAgIHBhZGRpbmc6IDJweDsKLSAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICAgIHdpZHRoOiAxNnB4OwotICAgIH0KLSAgICBjbG9zZS1idXR0b246aG92ZXIgewotICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKLSAgICAgIGJvcmRlci1jb2xvcjogYmxhY2s7Ci0gICAgICBjdXJzb3I6IHBvaW50ZXI7Ci0gICAgfQotICAgIG92ZXJsYXktY29udGVudCB7Ci0gICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgb3ZlcmZsb3cteTogYXV0bzsKLSAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICBtaW4td2lkdGg6IDMwMHB4OwotICAgICAgbWluLWhlaWdodDogMDsKLSAgICB9Ci0gICAgYnV0dG9uLWJhciB7Ci0gICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBiYXNlbGluZTsKLSAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjOwotICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICAgICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKLSAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwotICAgICAgcGFkZGluZzogNHB4OwotICAgIH0KLSAgPC9zdHlsZT4KLQotICA8b3ZlcmxheS1tYXNrPgotICAgIDxvdmVybGF5LXZlcnRpY2FsLWNlbnRlcmluZy1jb250YWluZXI+Ci0gICAgICA8b3ZlcmxheS1mcmFtZT4KLSAgICAgICAgPHRpdGxlLWJhcj4KLSAgICAgICAgICA8dGl0bGU+PC90aXRsZT4KLSAgICAgICAgICA8Y2xvc2UtYnV0dG9uPiYjeDI3MTU8L2Nsb3NlLWJ1dHRvbj4KLSAgICAgICAgPC90aXRsZS1iYXI+Ci0gICAgICAgIDxvdmVybGF5LWNvbnRlbnQ+Ci0gICAgICAgICAgPGNvbnRlbnQ+PC9jb250ZW50PgotICAgICAgICA8L292ZXJsYXktY29udGVudD4KLSAgICAgICAgPGJ1dHRvbi1iYXI+PC9idXR0b24tYmFyPgotICAgICAgPC9vdmVybGF5LWZyYW1lPgotICAgIDwvb3ZlcmxheS12ZXJ0aWNhbC1jZW50ZXJpbmctY29udGFpbmVyPgotICA8L292ZXJsYXktbWFzaz4KLTwvdGVtcGxhdGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBJbXBsZW1lbnRzIGFuIGVsZW1lbnQgdGhhdCBpcyBoaWRkZW4gYnkgZGVmYXVsdCwgYnV0Ci0gKiB3aGVuIHNob3duLCBkaW1zIGFuZCAoYXR0ZW1wdHMgdG8pIGRpc2FibGUgdGhlIG1haW4gZG9jdW1lbnQuCi0gKgotICogWW91IGNhbiB0dXJuIGFueSBkaXYgaW50byBhbiBvdmVybGF5LiBOb3RlIHRoYXQgd2hpbGUgYW4KLSAqIG92ZXJsYXkgZWxlbWVudCBpcyBzaG93biwgaXRzIHBhcmVudCBpcyBjaGFuZ2VkLiBIaWRpbmcgdGhlIG92ZXJsYXkKLSAqIHJlc3RvcmVzIGl0cyBvcmlnaW5hbCBwYXJlbnRhZ2UuCi0gKgotICovCi10ci5leHBvcnRUbygndHIuYi51aScsIGZ1bmN0aW9uKCkgewotICB2YXIgVEhJU19ET0MgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7Ci0KLSAgLyoqCi0gICAqIENyZWF0ZXMgYSBuZXcgb3ZlcmxheSBlbGVtZW50LiBJdCB3aWxsIG5vdCBiZSB2aXNpYmxlIHVudGlsIHNob3duLgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge0hUTUxEaXZFbGVtZW50fQotICAgKi8KLSAgdmFyIE92ZXJsYXkgPSB0ci5iLnVpLmRlZmluZSgnb3ZlcmxheScpOwotCi0gIE92ZXJsYXkucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgLyoqCi0gICAgICogSW5pdGlhbGl6ZXMgdGhlIG92ZXJsYXkgZWxlbWVudC4KLSAgICAgKi8KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ292ZXJsYXknKTsKLQotICAgICAgdGhpcy5wYXJlbnRFbF8gPSB0aGlzLm93bmVyRG9jdW1lbnQuYm9keTsKLQotICAgICAgdGhpcy52aXNpYmxlXyA9IGZhbHNlOwotICAgICAgdGhpcy51c2VyQ2FuQ2xvc2VfID0gdHJ1ZTsKLQotICAgICAgdGhpcy5vbktleURvd25fID0gdGhpcy5vbktleURvd25fLmJpbmQodGhpcyk7Ci0gICAgICB0aGlzLm9uQ2xpY2tfID0gdGhpcy5vbkNsaWNrXy5iaW5kKHRoaXMpOwotICAgICAgdGhpcy5vbkZvY3VzSW5fID0gdGhpcy5vbkZvY3VzSW5fLmJpbmQodGhpcyk7Ci0gICAgICB0aGlzLm9uRG9jdW1lbnRDbGlja18gPSB0aGlzLm9uRG9jdW1lbnRDbGlja18uYmluZCh0aGlzKTsKLSAgICAgIHRoaXMub25DbG9zZV8gPSB0aGlzLm9uQ2xvc2VfLmJpbmQodGhpcyk7Ci0KLSAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJsZUNoYW5nZScsCi0gICAgICAgICAgdHIuYi51aS5PdmVybGF5LnByb3RvdHlwZS5vblZpc2libGVDaGFuZ2VfLmJpbmQodGhpcyksIHRydWUpOwotCi0gICAgICAvLyBTZXR1cCB0aGUgc2hhZG93IHJvb3QKLSAgICAgIHZhciBjcmVhdGVTaGFkb3dSb290ID0gdGhpcy5jcmVhdGVTaGFkb3dSb290IHx8Ci0gICAgICAgICAgdGhpcy53ZWJraXRDcmVhdGVTaGFkb3dSb290OwotICAgICAgdGhpcy5zaGFkb3dfID0gY3JlYXRlU2hhZG93Um9vdC5jYWxsKHRoaXMpOwotICAgICAgdGhpcy5zaGFkb3dfLmFwcGVuZENoaWxkKHRyLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgnI292ZXJsYXktdGVtcGxhdGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSElTX0RPQykpOwotCi0gICAgICB0aGlzLmNsb3NlQnRuXyA9IHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdjbG9zZS1idXR0b24nKTsKLSAgICAgIHRoaXMuY2xvc2VCdG5fLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkNsb3NlXyk7Ci0KLSAgICAgIHRoaXMuc2hhZG93XwotICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdvdmVybGF5LWZyYW1lJykKLSAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9uQ2xpY2tfKTsKLQotICAgICAgdGhpcy5vYnNlcnZlcl8gPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcigKLSAgICAgICAgICB0aGlzLmRpZEJ1dHRvbkJhck11dGF0ZV8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLm9ic2VydmVyXy5vYnNlcnZlKHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2hpbGRMaXN0OiB0cnVlIH0pOwotCi0gICAgICAvLyB0aXRsZSBpcyBhIHZhcmlhYmxlIG9uIHJlZ3VsYXIgSFRNTEVsZW1lbnRzLiBIb3dldmVyLCB3ZSB3YW50IHRvCi0gICAgICAvLyB1c2UgaXQgZm9yIHNvbWV0aGluZyBtb3JlIHVzZWZ1bC4KLSAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgKLSAgICAgICAgICB0aGlzLCAndGl0bGUnLCB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zaGFkb3dfLnF1ZXJ5U2VsZWN0b3IoJ3RpdGxlJykudGV4dENvbnRlbnQ7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih0aXRsZSkgewotICAgICAgICAgICAgICB0aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcigndGl0bGUnKS50ZXh0Q29udGVudCA9IHRpdGxlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgIH0sCi0KLSAgICBzZXQgdXNlckNhbkNsb3NlKHVzZXJDYW5DbG9zZSkgewotICAgICAgdGhpcy51c2VyQ2FuQ2xvc2VfID0gdXNlckNhbkNsb3NlOwotICAgICAgdGhpcy5jbG9zZUJ0bl8uc3R5bGUuZGlzcGxheSA9Ci0gICAgICAgICAgdXNlckNhbkNsb3NlID8gJ2Jsb2NrJyA6ICdub25lJzsKLSAgICB9LAotCi0gICAgZ2V0IGJ1dHRvbnMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zaGFkb3dfLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi1iYXInKTsKLSAgICB9LAotCi0gICAgZ2V0IHZpc2libGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy52aXNpYmxlXzsKLSAgICB9LAotCi0gICAgc2V0IHZpc2libGUobmV3VmFsdWUpIHsKLSAgICAgIGlmICh0aGlzLnZpc2libGVfID09PSBuZXdWYWx1ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0ci5iLnNldFByb3BlcnR5QW5kRGlzcGF0Y2hDaGFuZ2UodGhpcywgJ3Zpc2libGUnLCBuZXdWYWx1ZSk7Ci0gICAgfSwKLQotICAgIG9uVmlzaWJsZUNoYW5nZV86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy52aXNpYmxlXyA/IHRoaXMuc2hvd18oKSA6IHRoaXMuaGlkZV8oKTsKLSAgICB9LAotCi0gICAgc2hvd186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5wYXJlbnRFbF8uYXBwZW5kQ2hpbGQodGhpcyk7Ci0KLSAgICAgIGlmICh0aGlzLnVzZXJDYW5DbG9zZV8pIHsKLSAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd25fLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkRvY3VtZW50Q2xpY2tfLmJpbmQodGhpcykpOwotICAgICAgfQotCi0gICAgICB0aGlzLnBhcmVudEVsXy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5vbkZvY3VzSW5fKTsKLSAgICAgIHRoaXMudGFiSW5kZXggPSAwOwotCi0gICAgICAvLyBGb2N1cyB0aGUgZmlyc3QgdGhpbmcgd2UgZmluZCB0aGF0IG1ha2VzIHNlbnNlLiAoU2tpcCB0aGUgY2xvc2UgYnV0dG9uCi0gICAgICAvLyBhcyBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgYXMgdGhlIGZpcnN0IHRoaW5nIHRvIGZvY3VzLikKLSAgICAgIHZhciBmb2N1c0VsID0gdW5kZWZpbmVkOwotICAgICAgdmFyIGVsTGlzdCA9IHRoaXMucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBpbnB1dCwgbGlzdCwgc2VsZWN0LCBhJyk7Ci0gICAgICBpZiAoZWxMaXN0Lmxlbmd0aCA+IDApIHsKLSAgICAgICAgaWYgKGVsTGlzdFswXSA9PT0gdGhpcy5jbG9zZUJ0bl8pIHsKLSAgICAgICAgICBpZiAoZWxMaXN0Lmxlbmd0aCA+IDEpCi0gICAgICAgICAgICBmb2N1c0VsID0gZWxMaXN0WzFdOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGZvY3VzRWwgPSBlbExpc3RbMF07Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChmb2N1c0VsID09PSB1bmRlZmluZWQpCi0gICAgICAgIGZvY3VzRWwgPSB0aGlzOwotICAgICAgZm9jdXNFbC5mb2N1cygpOwotICAgIH0sCi0KLSAgICBoaWRlXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnBhcmVudEVsXy5yZW1vdmVDaGlsZCh0aGlzKTsKLQotICAgICAgdGhpcy5wYXJlbnRFbF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHRoaXMub25Gb2N1c0luXyk7Ci0KLSAgICAgIGlmICh0aGlzLmNsb3NlQnRuXykKLSAgICAgICAgdGhpcy5jbG9zZUJ0bl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm9uQ2xvc2VfKTsKLQotICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25LZXlEb3duXyk7Ci0gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25Eb2N1bWVudENsaWNrXyk7Ci0gICAgfSwKLQotICAgIG9uQ2xvc2VfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTsKLSAgICAgIGlmICgoZS50eXBlICE9ICdrZXlkb3duJykgfHwKLSAgICAgICAgICAoZS50eXBlID09PSAna2V5ZG93bicgJiYgZS5rZXlDb2RlID09PSAyNykpCi0gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ2Nsb3NlY2xpY2snKTsKLSAgICB9LAotCi0gICAgb25Gb2N1c0luXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKGUudGFyZ2V0ID09PSB0aGlzKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aGlzLmZvY3VzKCk7IH0sIDApOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICB9LAotCi0gICAgZGlkQnV0dG9uQmFyTXV0YXRlXzogZnVuY3Rpb24oZSkgewotICAgICAgdmFyIGhhc0J1dHRvbnMgPSB0aGlzLmJ1dHRvbnMuY2hpbGRyZW4ubGVuZ3RoID4gMDsKLSAgICAgIGlmIChoYXNCdXR0b25zKQotICAgICAgICB0aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcignYnV0dG9uLWJhcicpLnN0eWxlLmRpc3BsYXkgPSB1bmRlZmluZWQ7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICB9LAotCi0gICAgb25LZXlEb3duXzogZnVuY3Rpb24oZSkgewotICAgICAgLy8gRGlzYWxsb3cgc2hpZnQtdGFiIGJhY2sgdG8gYW5vdGhlciBlbGVtZW50LgotICAgICAgaWYgKGUua2V5Q29kZSA9PT0gOSAmJiAgLy8gdGFiCi0gICAgICAgICAgZS5zaGlmdEtleSAmJgotICAgICAgICAgIGUudGFyZ2V0ID09PSB0aGlzKSB7Ci0gICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAoZS5rZXlDb2RlICE9PSAyNykgIC8vIGVzY2FwZQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMub25DbG9zZV8oZSk7Ci0gICAgfSwKLQotICAgIG9uQ2xpY2tfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0sCi0KLSAgICBvbkRvY3VtZW50Q2xpY2tfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoIXRoaXMudXNlckNhbkNsb3NlXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLm9uQ2xvc2VfKGUpOwotICAgIH0KLSAgfTsKLQotICBPdmVybGF5LnNob3dFcnJvciA9IGZ1bmN0aW9uKG1zZywgb3B0X2VycikgewotICAgIHZhciBvID0gbmV3IE92ZXJsYXkoKTsKLSAgICBvLnRpdGxlID0gJ0Vycm9yJzsKLSAgICBvLnRleHRDb250ZW50ID0gbXNnOwotICAgIGlmIChvcHRfZXJyKSB7Ci0gICAgICB2YXIgZSA9IHRyLmIubm9ybWFsaXplRXhjZXB0aW9uKG9wdF9lcnIpOwotCi0gICAgICB2YXIgc3RhY2tEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsKLSAgICAgIHN0YWNrRGl2LnRleHRDb250ZW50ID0gZS5zdGFjazsKLSAgICAgIHN0YWNrRGl2LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzhweCc7Ci0gICAgICBzdGFja0Rpdi5zdHlsZS5tYXJnaW4gPSAwOwotICAgICAgby5hcHBlbmRDaGlsZChzdGFja0Rpdik7Ci0gICAgfQotICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAgYi50ZXh0Q29udGVudCA9ICdPSyc7Ci0gICAgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewotICAgICAgby52aXNpYmxlID0gZmFsc2U7Ci0gICAgfSk7Ci0gICAgby5idXR0b25zLmFwcGVuZENoaWxkKGIpOwotICAgIG8udmlzaWJsZSA9IHRydWU7Ci0gICAgcmV0dXJuIG87Ci0gIH0KLQotICByZXR1cm4gewotICAgIE92ZXJsYXk6IE92ZXJsYXkKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvb3ZlcmxheV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvb3ZlcmxheV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmMWI3ZGEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL292ZXJsYXlfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL292ZXJsYXkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZG9tX2hlbHBlcnMuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gYWRkU2hvd0J1dHRvbkZvckRpYWxvZyhkbGcpIHsKLSAgICB2YXIgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAgYnRuLnRleHRDb250ZW50ID0gJ0xhdW5jaCBPdmVybGF5JzsKLSAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7Ci0gICAgICBkbGcudmlzaWJsZSA9IHRydWU7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0pOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGJ0bik7Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlQnV0dG9uKHRpdGxlKSB7Ci0gICAgdmFyIGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwotICAgIGJ0bi50ZXh0Q29udGVudCA9IHRpdGxlOwotICAgIHJldHVybiBidG47Ci0gIH0KLQotICBmdW5jdGlvbiBtYWtlQ2xvc2VCdXR0b24oZGxnKSB7Ci0gICAgdmFyIGJ0biA9IG1ha2VCdXR0b24oJ2Nsb3NlJyk7Ci0gICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewotICAgICAgZGxnLm9uQ2xvc2VfKGUpOwotICAgIH0pOwotICAgIHJldHVybiBidG47Ci0gIH0KLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkbGcgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgZGxnLmNsYXNzTGlzdC5hZGQoJ2V4YW1wbGUtb3ZlcmxheScpOwotICAgIGRsZy50aXRsZSA9ICdFeGFtcGxlT3ZlcmxheSc7Ci0gICAgZGxnLmlubmVySFRNTCA9ICdoZWxsbyc7Ci0gICAgZGxnLmJ1dHRvbnMuYXBwZW5kQ2hpbGQobWFrZUJ1dHRvbignaSBhbSBhIGJ1dHRvbicpKTsKLSAgICBkbGcuYnV0dG9ucy5hcHBlbmRDaGlsZChtYWtlQ2xvc2VCdXR0b24oZGxnKSk7Ci0gICAgZGxnLmJ1dHRvbnMuYXBwZW5kQ2hpbGQodHIuYi51aS5jcmVhdGVTcGFuKAotICAgICAgICB7dGV4dENvbnRlbnQ6ICdpIGFtIGEgc3Bhbid9KSk7Ci0gICAgYWRkU2hvd0J1dHRvbkZvckRpYWxvZy5jYWxsKHRoaXMsIGRsZyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX25vQnV0dG9ucycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkbGcgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgZGxnLmNsYXNzTGlzdC5hZGQoJ2V4YW1wbGUtb3ZlcmxheScpOwotICAgIGRsZy50aXRsZSA9ICdFeGFtcGxlT3ZlcmxheSc7Ci0gICAgZGxnLmlubmVySFRNTCA9ICdoZWxsbyc7Ci0gICAgYWRkU2hvd0J1dHRvbkZvckRpYWxvZy5jYWxsKHRoaXMsIGRsZyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2Rpc2FibGVVc2VyQ2xvc2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZGxnID0gbmV3IHRyLmIudWkuT3ZlcmxheSgpOwotICAgIGRsZy5jbGFzc0xpc3QuYWRkKCdleGFtcGxlLW92ZXJsYXknKTsKLSAgICBkbGcudXNlckNhbkNsb3NlID0gZmFsc2U7Ci0gICAgZGxnLnRpdGxlID0gJ1VuY2xvc2FibGUnOwotICAgIGRsZy5pbm5lckhUTUwgPSAnVGhpcyBoYXMgbm8gY2xvc2UgWCBidXR0b24uJzsKLSAgICBkbGcuYnV0dG9ucy5hcHBlbmRDaGlsZChtYWtlQ2xvc2VCdXR0b24oZGxnKSk7Ci0gICAgYWRkU2hvd0J1dHRvbkZvckRpYWxvZy5jYWxsKHRoaXMsIGRsZyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlVGFsbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkbGcgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgZGxnLnRpdGxlID0gJ1RhbGxDb250ZW50JzsKLSAgICB2YXIgY29udGVudEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgY29udGVudEVsLnN0eWxlLm92ZXJmbG93WSA9ICdhdXRvJzsKLSAgICBkbGcuYXBwZW5kQ2hpbGQoY29udGVudEVsKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7Ci0gICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgIGVsLnRleHRDb250ZW50ID0gJ2xpbmUgJyArIGk7Ci0gICAgICBjb250ZW50RWwuYXBwZW5kQ2hpbGQoZWwpOwotICAgIH0KLQotCi0gICAgZGxnLmJ1dHRvbnMuYXBwZW5kQ2hpbGQobWFrZUJ1dHRvbignaSBhbSBhIGJ1dHRvbicpKTsKLSAgICBhZGRTaG93QnV0dG9uRm9yRGlhbG9nLmNhbGwodGhpcywgZGxnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVUYWxsV2l0aE1hbnlEaXJlY3RDaGlsZHJlbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkbGcgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgZGxnLnRpdGxlID0gJ1RhbGxDb250ZW50JzsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsrKSB7Ci0gICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgIGVsLnN0eWxlLndlYmtpdEZsZXggPSAnMSAwIGF1dG8nOwotICAgICAgZWwudGV4dENvbnRlbnQgPSAnbGluZSAnICsgaTsKLSAgICAgIGRsZy5hcHBlbmRDaGlsZChlbCk7Ci0gICAgfQotCi0gICAgZGxnLmJ1dHRvbnMuYXBwZW5kQ2hpbGQobWFrZUJ1dHRvbignaSBhbSBhIGJ1dHRvbicpKTsKLSAgICBhZGRTaG93QnV0dG9uRm9yRGlhbG9nLmNhbGwodGhpcywgZGxnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2xvc2VjbGlja0V2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRsZyA9IG5ldyB0ci5iLnVpLk92ZXJsYXkoKTsKLSAgICBkbGcudGl0bGUgPSAnVGVzdCBjbG9zZWNsaWNrIGV2ZW50JzsKLSAgICB2YXIgY2xvc2VCdG4gPSBtYWtlQ2xvc2VCdXR0b24oZGxnKTsKLSAgICBkbGcuYnV0dG9ucy5hcHBlbmRDaGlsZChjbG9zZUJ0bik7Ci0KLSAgICB2YXIgY2xvc2VDbGlja2VkID0gZmFsc2U7Ci0gICAgZGxnLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlY2xpY2snLCBmdW5jdGlvbigpIHsKLSAgICAgIGNsb3NlQ2xpY2tlZCA9IHRydWU7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICBmdW5jdGlvbiBwcmVzc0Nsb3NlKCkgewotICAgICAgICBjbG9zZUJ0bi5jbGljaygpOwotICAgICAgICBpZiAoY2xvc2VDbGlja2VkKQotICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ2Nsb3NlY2xpY2sgZXZlbnQgaXMgbm90IGRpc3BhdGNoZWQnKSk7Ci0gICAgICB9Ci0gICAgICBkbGcudmlzaWJsZSA9IHRydWU7Ci0gICAgICBzZXRUaW1lb3V0KHByZXNzQ2xvc2UsIDYwKTsKLSAgICB9KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3BpZV9jaGFydC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3BpZV9jaGFydC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzdlNzk2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9waWVfY2hhcnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kMy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9jaGFydF9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvYmFzZS91aS9waWVfY2hhcnQuY3NzIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLSAgdmFyIENoYXJ0QmFzZSA9IHRyLmIudWkuQ2hhcnRCYXNlOwotICB2YXIgZ2V0Q29sb3JPZktleSA9IHRyLmIudWkuZ2V0Q29sb3JPZktleTsKLQotICB2YXIgTUlOX1JBRElVUyA9IDEwMDsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgUGllQ2hhcnQgPSB0ci5iLnVpLmRlZmluZSgncGllLWNoYXJ0JywgQ2hhcnRCYXNlKTsKLQotICBQaWVDaGFydC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBDaGFydEJhc2UucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgQ2hhcnRCYXNlLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMpOwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdwaWUtY2hhcnQnKTsKLQotICAgICAgdGhpcy5kYXRhXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuc2VyaWVzS2V5c18gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIHZhciBjaGFydEFyZWFTZWwgPSBkMy5zZWxlY3QodGhpcy5jaGFydEFyZWFFbGVtZW50KTsKLSAgICAgIHZhciBwaWVHcm91cFNlbCA9IGNoYXJ0QXJlYVNlbC5hcHBlbmQoJ2cnKQotICAgICAgICAuYXR0cignY2xhc3MnLCAncGllLWdyb3VwJyk7Ci0gICAgICB0aGlzLnBpZUdyb3VwXyA9IHBpZUdyb3VwU2VsLm5vZGUoKTsKLQotICAgICAgdGhpcy5wYXRoc0dyb3VwXyA9IHBpZUdyb3VwU2VsLmFwcGVuZCgnZycpCi0gICAgICAgIC5hdHRyKCdjbGFzcycsICdwYXRocycpCi0gICAgICAgIC5ub2RlKCk7Ci0gICAgICB0aGlzLmxhYmVsc0dyb3VwXyA9IHBpZUdyb3VwU2VsLmFwcGVuZCgnZycpCi0gICAgICAgIC5hdHRyKCdjbGFzcycsICdsYWJlbHMnKQotICAgICAgICAubm9kZSgpOwotICAgICAgdGhpcy5saW5lc0dyb3VwXyA9IHBpZUdyb3VwU2VsLmFwcGVuZCgnZycpCi0gICAgICAgIC5hdHRyKCdjbGFzcycsICdsaW5lcycpCi0gICAgICAgIC5ub2RlKCk7Ci0gICAgfSwKLQotICAgIGdldCBkYXRhKCkgewotICAgICAgcmV0dXJuIHRoaXMuZGF0YV87Ci0gICAgfSwKLQotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtBcnJheX0gZGF0YSBEYXRhIGZvciB0aGUgY2hhcnQsIHdoZXJlIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkKLSAgICAgKiBtdXN0IGJlIG9mIHRoZSBmb3JtIHtsYWJlbDogc3RyLCB2YWx1ZTogbnVtYmVyfS4KLSAgICAgKi8KLSAgICBzZXQgZGF0YShkYXRhKSB7Ci0gICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGxhYmVsIHZhbHVlcyBpbiB0aGUgZGF0YSBzZXQuIEUuZy4gZnJvbQotICAgICAgICAvLyAgIFt7bGFiZWw6ICdhJywgLi4ufSwge2xhYmVsOiAnYicsIC4uLn1dCi0gICAgICAgIC8vIHdlIHdvdWxkIGNvbW1wdXRlIFsnYScsICd5J10uIFRoZXNlIGJlY29tZSB0aGUgc2VyaWVzIGtleXMuCi0gICAgICAgIHZhciBzZXJpZXNLZXlzID0gW107Ci0gICAgICAgIHZhciBzZWVuU2VyaWVzS2V5cyA9IHt9OwotICAgICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24oZCkgewotICAgICAgICAgIHZhciBrID0gZC5sYWJlbDsKLSAgICAgICAgICBpZiAoc2VlblNlcmllc0tleXNba10pCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xhYmVsICcgKyBrICsgJyBoYXMgYmVlbiB1c2VkIGFscmVhZHknKTsKLSAgICAgICAgICBzZXJpZXNLZXlzLnB1c2goayk7Ci0gICAgICAgICAgc2VlblNlcmllc0tleXNba10gPSB0cnVlOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgICAgdGhpcy5zZXJpZXNLZXlzXyA9IHNlcmllc0tleXM7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLnNlcmllc0tleXNfID0gdW5kZWZpbmVkOwotICAgICAgfQotICAgICAgdGhpcy5kYXRhXyA9IGRhdGE7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgbWFyZ2luKCkgewotICAgICAgdmFyIG1hcmdpbiA9IHt0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGxlZnQ6IDB9OwotICAgICAgaWYgKHRoaXMuY2hhcnRUaXRsZV8pCi0gICAgICAgIG1hcmdpbi50b3AgKz0gNDA7Ci0gICAgICByZXR1cm4gbWFyZ2luOwotICAgIH0sCi0KLSAgICBnZXRNaW5TaXplOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0KLSAgICAgIHZhciBsYWJlbFNlbCA9IGQzLnNlbGVjdCh0aGlzLmxhYmVsc0dyb3VwXykuc2VsZWN0QWxsKCcubGFiZWwnKTsKLSAgICAgIHZhciBtYXhMYWJlbFdpZHRoID0gLU51bWJlci5NQVhfVkFMVUU7Ci0gICAgICB2YXIgbGVmdFRleHRIZWlnaHRTdW0gPSAwOwotICAgICAgdmFyIHJpZ2h0VGV4dEhlaWdodFN1bSA9IDA7Ci0gICAgICBsYWJlbFNlbC5lYWNoKGZ1bmN0aW9uKGwpIHsKLSAgICAgICAgdmFyIHIgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICBtYXhMYWJlbFdpZHRoID0gTWF0aC5tYXgobWF4TGFiZWxXaWR0aCwgci53aWR0aCArIDMyKTsKLSAgICAgICAgaWYgKHRoaXMuc3R5bGUudGV4dEFuY2hvciA9PSAnZW5kJykgewotICAgICAgICAgIGxlZnRUZXh0SGVpZ2h0U3VtICs9IHIuaGVpZ2h0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJpZ2h0VGV4dEhlaWdodFN1bSArPSByLmhlaWdodDsKLSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIHZhciB0aXRsZVdpZHRoID0gdGhpcy5xdWVyeVNlbGVjdG9yKAotICAgICAgICAgICcjdGl0bGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKLSAgICAgIHZhciBtYXJnaW4gPSB0aGlzLm1hcmdpbjsKLSAgICAgIHZhciBtYXJnaW5XaWR0aCA9IG1hcmdpbi5sZWZ0ICsgbWFyZ2luLnJpZ2h0OwotICAgICAgdmFyIG1hcmdpbkhlaWdodCA9IG1hcmdpbi50b3AgKyBtYXJnaW4uYm90dG9tOwotICAgICAgcmV0dXJuIHsKLSAgICAgICAgd2lkdGg6IE1hdGgubWF4KDIgKiBNSU5fUkFESVVTICsgMiAqIG1heExhYmVsV2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVdpZHRoICogMS4xKSArIG1hcmdpbldpZHRoLAotICAgICAgICBoZWlnaHQ6IG1hcmdpbkhlaWdodCArIE1hdGgubWF4KDIgKiBNSU5fUkFESVVTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRUZXh0SGVpZ2h0U3VtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0VGV4dEhlaWdodFN1bSkgKiAxLjI1Ci0gICAgICB9OwotICAgIH0sCi0KLQotICAgIGdldExlZ2VuZEtleXNfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIFRoaXMgY2xhc3MgY3JlYXRlcyBpdHMgb3duIGxlZ2VuZCwgaW5zdGVhZCBvZiB1c2luZyBDaGFydEJhc2UuCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICB1cGRhdGVTY2FsZXNfOiBmdW5jdGlvbih3aWR0aCwgaGVpZ2h0KSB7Ci0gICAgICBpZiAodGhpcy5kYXRhXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm47Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICBDaGFydEJhc2UucHJvdG90eXBlLnVwZGF0ZUNvbnRlbnRzXy5jYWxsKHRoaXMpOwotICAgICAgaWYgKCF0aGlzLmRhdGFfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciB3aWR0aCA9IHRoaXMuY2hhcnRBcmVhU2l6ZS53aWR0aDsKLSAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmNoYXJ0QXJlYVNpemUuaGVpZ2h0OwotICAgICAgdmFyIHJhZGl1cyA9IE1hdGgubWF4KE1JTl9SQURJVVMsIE1hdGgubWluKHdpZHRoLCBoZWlnaHQgKiAwLjk1KSAvIDIpOwotCi0gICAgICBkMy5zZWxlY3QodGhpcy5waWVHcm91cF8pLmF0dHIoCi0gICAgICAgICAgJ3RyYW5zZm9ybScsCi0gICAgICAgICAgJ3RyYW5zbGF0ZSgnICsgd2lkdGggLyAyICsgJywnICsgaGVpZ2h0IC8gMiArICcpJyk7Ci0KLSAgICAgIC8vIEJpbmQgdGhlIHBpZSBsYXlvdXQgdG8gaXRzIGRhdGEKLSAgICAgIHZhciBwaWVMYXlvdXQgPSBkMy5sYXlvdXQucGllKCkKLSAgICAgICAgLnZhbHVlKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudmFsdWU7IH0pCi0gICAgICAgIC5zb3J0KG51bGwpOwotCi0gICAgICB2YXIgcGllUGF0aHNTZWwgPSBkMy5zZWxlY3QodGhpcy5wYXRoc0dyb3VwXykKLSAgICAgICAgICAuZGF0dW0odGhpcy5kYXRhXykKLSAgICAgICAgICAuc2VsZWN0QWxsKCdwYXRoJykKLSAgICAgICAgICAuZGF0YShwaWVMYXlvdXQpOwotCi0gICAgICBmdW5jdGlvbiBtaWRBbmdsZShkKSB7Ci0gICAgICAgIHJldHVybiBkLnN0YXJ0QW5nbGUgKyAoZC5lbmRBbmdsZSAtIGQuc3RhcnRBbmdsZSkgLyAyOwotICAgICAgfQotCi0gICAgICB2YXIgcGF0aHNBcmMgPSBkMy5zdmcuYXJjKCkKLSAgICAgICAgLmlubmVyUmFkaXVzKDApCi0gICAgICAgIC5vdXRlclJhZGl1cyhyYWRpdXMgLSAzMCk7Ci0KLSAgICAgIHZhciB2YWx1ZUxhYmVsQXJjID0gZDMuc3ZnLmFyYygpCi0gICAgICAgIC5pbm5lclJhZGl1cyhyYWRpdXMgLSAxMDApCi0gICAgICAgIC5vdXRlclJhZGl1cyhyYWRpdXMgLSAzMCk7Ci0KLSAgICAgIHZhciBsaW5lQmVnaW5BcmMgPSBkMy5zdmcuYXJjKCkKLSAgICAgICAgLmlubmVyUmFkaXVzKHJhZGl1cyAtIDUwKQotICAgICAgICAub3V0ZXJSYWRpdXMocmFkaXVzIC0gNTApOwotCi0gICAgICB2YXIgbGluZUVuZEFyYyA9IGQzLnN2Zy5hcmMoKQotICAgICAgICAuaW5uZXJSYWRpdXMocmFkaXVzKQotICAgICAgICAub3V0ZXJSYWRpdXMocmFkaXVzKTsKLQotICAgICAgLy8gUGF0aHMuCi0gICAgICBwaWVQYXRoc1NlbC5lbnRlcigpLmFwcGVuZCgncGF0aCcpCi0gICAgICAgIC5hdHRyKCdjbGFzcycsICdhcmMnKQotICAgICAgICAuYXR0cignZmlsbCcsIGZ1bmN0aW9uKGQsIGkpIHsKLSAgICAgICAgICAgIHZhciBvcmlnRGF0YSA9IHRoaXMuZGF0YV9baV07Ci0gICAgICAgICAgICB2YXIgaGlnaGxpZ2h0ZWQgPSAob3JpZ0RhdGEubGFiZWwgPT09Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SGlnaGxpZ2h0ZWRMZWdlbmRLZXkpOwotICAgICAgICAgICAgcmV0dXJuIGdldENvbG9yT2ZLZXkob3JpZ0RhdGEubGFiZWwsIGhpZ2hsaWdodGVkKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpCi0gICAgICAgIC5hdHRyKCdkJywgcGF0aHNBcmMpCi0gICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbihkLCBpKSB7Ci0gICAgICAgICAgICB2YXIgb3JpZ0RhdGEgPSB0aGlzLmRhdGFfW2ldOwotICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IEV2ZW50KCdpdGVtLWNsaWNrJyk7Ci0gICAgICAgICAgICBldmVudC5kYXRhID0gb3JpZ0RhdGE7Ci0gICAgICAgICAgICBldmVudC5pbmRleCA9IGk7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgICAgICAgICAgZDMuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKQotICAgICAgICAub24oJ21vdXNlZW50ZXInLCBmdW5jdGlvbihkLCBpKSB7Ci0gICAgICAgICAgICB2YXIgb3JpZ0RhdGEgPSB0aGlzLmRhdGFfW2ldOwotICAgICAgICAgICAgdGhpcy5wdXNoVGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5KG9yaWdEYXRhLmxhYmVsKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpCi0gICAgICAgIC5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uKGQsIGkpIHsKLSAgICAgICAgICAgIHZhciBvcmlnRGF0YSA9IHRoaXMuZGF0YV9baV07Ci0gICAgICAgICAgICB0aGlzLnBvcFRlbXBIaWdobGlnaHRlZExlZ2VuZEtleShvcmlnRGF0YS5sYWJlbCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgLy8gVmFsdWUgbGFiZWxzLgotICAgICAgcGllUGF0aHNTZWwuZW50ZXIoKS5hcHBlbmQoJ3RleHQnKQotICAgICAgICAuYXR0cignY2xhc3MnLCAnYXJjLXRleHQnKQotICAgICAgICAuYXR0cigndHJhbnNmb3JtJywgZnVuY3Rpb24oZCkgewotICAgICAgICAgICAgcmV0dXJuICd0cmFuc2xhdGUoJyArIHZhbHVlTGFiZWxBcmMuY2VudHJvaWQoZCkgKyAnKSc7Ci0gICAgICAgICAgfSkKLSAgICAgICAgLmF0dHIoJ2R5JywgJy4zNWVtJykKLSAgICAgICAgLnN0eWxlKCd0ZXh0LWFuY2hvcicsICdtaWRkbGUnKQotICAgICAgICAudGV4dChmdW5jdGlvbihkLCBpKSB7Ci0gICAgICAgICAgICB2YXIgb3JpZ0RhdGEgPSB0aGlzLmRhdGFfW2ldOwotICAgICAgICAgICAgaWYgKG9yaWdEYXRhLnZhbHVlVGV4dCA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICByZXR1cm4gJyc7Ci0KLSAgICAgICAgICAgIGlmIChkLmVuZEFuZ2xlIC0gZC5zdGFydEFuZ2xlIDwgMC40KQotICAgICAgICAgICAgICByZXR1cm4gJyc7Ci0gICAgICAgICAgICByZXR1cm4gb3JpZ0RhdGEudmFsdWVUZXh0OwotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHBpZVBhdGhzU2VsLmV4aXQoKS5yZW1vdmUoKTsKLQotICAgICAgLy8gTGFiZWxzLgotICAgICAgdmFyIGxhYmVsU2VsID0gZDMuc2VsZWN0KHRoaXMubGFiZWxzR3JvdXBfKS5zZWxlY3RBbGwoJy5sYWJlbCcpCi0gICAgICAgICAgLmRhdGEocGllTGF5b3V0KHRoaXMuZGF0YV8pKTsKLSAgICAgIGxhYmVsU2VsLmVudGVyKCkKLSAgICAgICAgICAuYXBwZW5kKCd0ZXh0JykKLSAgICAgICAgICAuYXR0cignY2xhc3MnLCAnbGFiZWwnKQotICAgICAgICAgIC5hdHRyKCdkeScsICcuMzVlbScpOwotCi0gICAgICBsYWJlbFNlbC50ZXh0KGZ1bmN0aW9uKGQpIHsKLSAgICAgICAgaWYgKGQuZGF0YS5sYWJlbC5sZW5ndGggPiA0MCkKLSAgICAgICAgICByZXR1cm4gZC5kYXRhLmxhYmVsLnN1YnN0cigwLCA0MCkgKyAnLi4uJzsKLSAgICAgICAgcmV0dXJuIGQuZGF0YS5sYWJlbDsKLSAgICAgIH0pOwotICAgICAgbGFiZWxTZWwuYXR0cigndHJhbnNmb3JtJywgZnVuY3Rpb24oZCkgewotICAgICAgICB2YXIgcG9zID0gbGluZUVuZEFyYy5jZW50cm9pZChkKTsKLSAgICAgICAgcG9zWzBdID0gcmFkaXVzICogKG1pZEFuZ2xlKGQpIDwgTWF0aC5QSSA/IDEgOiAtMSk7Ci0gICAgICAgIHJldHVybiAndHJhbnNsYXRlKCcgKyBwb3MgKyAnKSc7Ci0gICAgICB9KTsKLSAgICAgIGxhYmVsU2VsLnN0eWxlKCd0ZXh0LWFuY2hvcicsIGZ1bmN0aW9uKGQpIHsKLSAgICAgICAgcmV0dXJuIG1pZEFuZ2xlKGQpIDwgTWF0aC5QSSA/ICdzdGFydCcgOiAnZW5kJzsKLSAgICAgIH0pOwotCi0gICAgICAvLyBMaW5lcy4KLSAgICAgIHZhciBsaW5lU2VsID0gZDMuc2VsZWN0KHRoaXMubGluZXNHcm91cF8pLnNlbGVjdEFsbCgnLmxpbmUnKQotICAgICAgICAgIC5kYXRhKHBpZUxheW91dCh0aGlzLmRhdGFfKSk7Ci0gICAgICBsaW5lU2VsLmVudGVyKCkKLSAgICAgICAgLmFwcGVuZCgncG9seWxpbmUnKQotICAgICAgICAuYXR0cignY2xhc3MnLCAnbGluZScpCi0gICAgICAgIC5hdHRyKCdkeScsICcuMzVlbScpOwotICAgICAgbGluZVNlbC5hdHRyKCdwb2ludHMnLCBmdW5jdGlvbihkKSB7Ci0gICAgICAgIHZhciBwb3MgPSBsaW5lRW5kQXJjLmNlbnRyb2lkKGQpOwotICAgICAgICBwb3NbMF0gPSByYWRpdXMgKiAwLjk1ICogKG1pZEFuZ2xlKGQpIDwgTWF0aC5QSSA/IDEgOiAtMSk7Ci0gICAgICAgIHJldHVybiBbbGluZUJlZ2luQXJjLmNlbnRyb2lkKGQpLCBsaW5lRW5kQXJjLmNlbnRyb2lkKGQpLCBwb3NdOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUhpZ2hsaWdodF86IGZ1bmN0aW9uKCkgewotICAgICAgQ2hhcnRCYXNlLnByb3RvdHlwZS51cGRhdGVIaWdobGlnaHRfLmNhbGwodGhpcyk7Ci0gICAgICAvLyBVcGRhdGUgY29sb3Igb2YgcGllIHNlZ21lbnRzLgotICAgICAgdmFyIHBhdGhzR3JvdXBTZWwgPSBkMy5zZWxlY3QodGhpcy5wYXRoc0dyb3VwXyk7Ci0gICAgICB2YXIgdGhhdCA9IHRoaXM7Ci0gICAgICBwYXRoc0dyb3VwU2VsLnNlbGVjdEFsbCgnLmFyYycpLmVhY2goZnVuY3Rpb24oZCwgaSkgewotICAgICAgICB2YXIgb3JpZ0RhdGEgPSB0aGF0LmRhdGFfW2ldOwotICAgICAgICB2YXIgaGlnaGxpZ2h0ZWQgPSBvcmlnRGF0YS5sYWJlbCA9PSB0aGF0LmN1cnJlbnRIaWdobGlnaHRlZExlZ2VuZEtleTsKLSAgICAgICAgdmFyIGNvbG9yID0gZ2V0Q29sb3JPZktleShvcmlnRGF0YS5sYWJlbCwgaGlnaGxpZ2h0ZWQpOwotICAgICAgICB0aGlzLnN0eWxlLmZpbGwgPSBjb2xvcjsKLSAgICAgIH0pOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFBpZUNoYXJ0OiBQaWVDaGFydAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9waWVfY2hhcnRfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3BpZV9jaGFydF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNTNiMjcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3BpZV9jaGFydF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvcGllX2NoYXJ0Lmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ3NpbXBsZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjaGFydCA9IG5ldyB0ci5iLnVpLlBpZUNoYXJ0KCk7Ci0gICAgY2hhcnQud2lkdGggPSA0MDA7Ci0gICAgY2hhcnQuaGVpZ2h0ID0gMjAwOwotICAgIGFzc2VydC5lcXVhbChjaGFydC5nZXRBdHRyaWJ1dGUoJ3dpZHRoJyksICc0MDAnKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hhcnQuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSwgJzIwMCcpOwotICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOwotICAgIHZhciBkYXRhID0gWwotICAgICAge2xhYmVsOiAnYScsIHZhbHVlOiAxMDB9LAotICAgICAge2xhYmVsOiAnYicsIHZhbHVlOiAyMDB9LAotICAgICAge2xhYmVsOiAnYycsIHZhbHVlOiAzMDB9Ci0gICAgXTsKLSAgICBjaGFydC5kYXRhID0gZGF0YTsKLSAgICBjaGFydC5oaWdobGlnaHRlZExlZ2VuZEtleSA9ICdhJzsKLSAgICBjaGFydC5wdXNoVGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5KCdiJyk7Ci0gICAgY2hhcnQuaGlnaGxpZ2h0ZWRMZWdlbmRLZXkgPSAnYyc7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoYXJ0LmN1cnJlbnRIaWdobGlnaHRlZExlZ2VuZEtleSwgJ2InKTsKLSAgICBjaGFydC5wb3BUZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXkoJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hhcnQuaGlnaGxpZ2h0ZWRMZWdlbmRLZXksICdjJyk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNoYXJ0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnd2l0aFZhbHVlVGV4dCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjaGFydCA9IG5ldyB0ci5iLnVpLlBpZUNoYXJ0KCk7Ci0gICAgY2hhcnQud2lkdGggPSA0MDA7Ci0gICAgY2hhcnQuaGVpZ2h0ID0gMjAwOwotICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOwotICAgIHZhciBkYXRhID0gWwotICAgICAge2xhYmVsOiAnYScsIHZhbHVlOiAxMDAsIHZhbHVlVGV4dDogJzEwMG1zJ30sCi0gICAgICB7bGFiZWw6ICdiJywgdmFsdWU6IDIwMCwgdmFsdWVUZXh0OiAnMjAwbXMnfSwKLSAgICAgIHtsYWJlbDogJ2MnLCB2YWx1ZTogMzAwLCB2YWx1ZVRleHQ6ICczMDBtcyd9Ci0gICAgXTsKLSAgICBjaGFydC5kYXRhID0gZGF0YTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOwotICB9KTsKLQotICB0ZXN0KCdjbGlja0V2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNoYXJ0ID0gbmV3IHRyLmIudWkuUGllQ2hhcnQoKTsKLSAgICBjaGFydC53aWR0aCA9IDQwMDsKLSAgICBjaGFydC5oZWlnaHQgPSAyMDA7Ci0gICAgY2hhcnQuY2hhcnRUaXRsZSA9ICdDaGFydCB0aXRsZSc7Ci0gICAgdmFyIGRhdGEgPSBbCi0gICAgICB7bGFiZWw6ICdhJywgdmFsdWU6IDEwMCwgZm9vOiA0Mn0sCi0gICAgICB7bGFiZWw6ICdiJywgdmFsdWU6IDIwMCwgZm9vOiA0M30KLSAgICBdOwotICAgIGNoYXJ0LmRhdGEgPSBkYXRhOwotCi0gICAgdmFyIGRpZEdldENsaWNrID0gZmFsc2U7Ci0gICAgY2hhcnQuYWRkRXZlbnRMaXN0ZW5lcignaXRlbS1jbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICBhc3NlcnQuZXF1YWwoZXZlbnQuaW5kZXgsIDEpOwotICAgICAgYXNzZXJ0LmVxdWFsKGV2ZW50LmRhdGEuZm9vLCA0Myk7Ci0gICAgICBkaWRHZXRDbGljayA9IHRydWU7Ci0gICAgfSk7Ci0KLSAgICB2YXIgYXJjMCA9IGNoYXJ0LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wYXRocyA+IHBhdGgnKVsxXTsKLSAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQoYXJjMCwgJ2NsaWNrJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaWRHZXRDbGljayk7Ci0gIH0pOwotCi0gIHRlc3QoJ2xvdHNPZlZhbHVlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjaGFydCA9IG5ldyB0ci5iLnVpLlBpZUNoYXJ0KCk7Ci0gICAgY2hhcnQuY2hhcnRUaXRsZSA9ICdDaGFydCB0aXRsZSc7Ci0gICAgdmFyIGRhdGEgPSBbCi0gICAgICB7bGFiZWw6ICdhJywgdmFsdWU6IDEwMH0sCi0gICAgICB7bGFiZWw6ICdiYicsIHZhbHVlOiAyMDB9LAotICAgICAge2xhYmVsOiAnY2NjYycsIHZhbHVlOiAzMDB9LAotICAgICAge2xhYmVsOiAnZGQnLCB2YWx1ZTogNTB9LAotICAgICAge2xhYmVsOiAnZWVlZWUnLCB2YWx1ZTogMjUwfSwKLSAgICAgIHtsYWJlbDogJ2ZmZmZmZmYnLCB2YWx1ZTogMTIwfSwKLSAgICAgIHtsYWJlbDogJ2dnZycsIHZhbHVlOiA5MH0sCi0gICAgICB7bGFiZWw6ICdoaGhoJywgdmFsdWU6IDE3NX0sCi0gICAgICB7bGFiZWw6ICd0b29sb25naWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaScsIHZhbHVlOiAzMjV9LAotICAgICAge2xhYmVsOiAnampqampqJywgdmFsdWU6IDE0MH0sCi0gICAgICB7bGFiZWw6ICdra2tra2tra2snLCB2YWx1ZTogMTcwfSwKLSAgICAgIHtsYWJlbDogJ2xsbCcsIHZhbHVlOiAyMjB9Ci0gICAgXTsKLSAgICBjaGFydC5kYXRhID0gZGF0YTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOwotCi0gICAgdmFyIG1pblNpemUgPSBjaGFydC5nZXRNaW5TaXplKCk7Ci0gICAgY2hhcnQuc2V0U2l6ZShjaGFydC5nZXRNaW5TaXplKCkpOwotICB9KTsKLQotICB0ZXN0KCdkZW5zZVZhbHVlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjaGFydCA9IG5ldyB0ci5iLnVpLlBpZUNoYXJ0KCk7Ci0gICAgY2hhcnQuY2hhcnRUaXRsZSA9ICdDaGFydCB0aXRsZSc7Ci0gICAgdmFyIGRhdGEgPSBbCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzIuODU1bXMnLAotICAgICAgICB2YWx1ZTogMi44NTQ5OTk5OTk5OTk5OTcsCi0gICAgICAgIGxhYmVsOiAnMTU2OTU5JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnOS45NDltcycsCi0gICAgICAgIHZhbHVlOiA5Ljk0ODk5OTk5OTk5OTk5OCwKLSAgICAgICAgbGFiZWw6ICcxNjEzMScKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzQyLjMxNG1zJywKLSAgICAgICAgdmFsdWU6IDQyLjMxNDAwMDAwMDAwMDcyNSwKLSAgICAgICAgbGFiZWw6ICc1MTUxMScKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzMxLjA2OW1zJywKLSAgICAgICAgdmFsdWU6IDMxLjA2OTAwMDAwMDAwMDI4LAotICAgICAgICBsYWJlbDogJ0F1ZGlvT3V0cHV0RGV2aWNlJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnMS40MThtcycsCi0gICAgICAgIHZhbHVlOiAxLjQxOCwKLSAgICAgICAgbGFiZWw6ICdCcm93c2VyQmxvY2tpbmdXb3JrZXIyLzUwOTUxJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnMC4wNDRtcycsCi0gICAgICAgIHZhbHVlOiAwLjA0NCwKLSAgICAgICAgbGFiZWw6ICdCcm93c2VyQmxvY2tpbmdXb3JrZXIzLzUwNjk1JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnMTguNTI2bXMnLAotICAgICAgICB2YWx1ZTogMTguNTI1OTk5OTk5OTk5OTMsCi0gICAgICAgIGxhYmVsOiAnQ2hyb21lX0NoaWxkSU9UaHJlYWQnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZVRleHQ6ICcyLjg4OG1zJywKLSAgICAgICAgdmFsdWU6IDIuODg4LAotICAgICAgICBsYWJlbDogJ0Nocm9tZV9GaWxlVGhyZWFkJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnMC4wNjdtcycsCi0gICAgICAgIHZhbHVlOiAwLjA2NywKLSAgICAgICAgbGFiZWw6ICdDaHJvbWVfSGlzdG9yeVRocmVhZCcKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzI1LjQyMW1zJywKLSAgICAgICAgdmFsdWU6IDI1LjQyMTAwMDAwMDAwMDA0NiwKLSAgICAgICAgbGFiZWw6ICdDaHJvbWVfSU9UaHJlYWQnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZVRleHQ6ICcwLjAxOW1zJywKLSAgICAgICAgdmFsdWU6IDAuMDE5LAotICAgICAgICBsYWJlbDogJ0Nocm9tZV9Qcm9jZXNzTGF1bmNoZXJUaHJlYWQnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZVRleHQ6ICc2NDMuMDg4bXMnLAotICAgICAgICB2YWx1ZTogNjQzLjA4Nzk5OTk5OTk5NSwKLSAgICAgICAgbGFiZWw6ICdDb21wb3NpdG9yJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnNC4wNW1zJywKLSAgICAgICAgdmFsdWU6IDQuMDQ5OTk5OTk5OTk5OTczLAotICAgICAgICBsYWJlbDogJ0NvbXBvc2l0b3JSYXN0ZXJXb3JrZXIxLzIyMDMxJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnNTAuMDRtcycsCi0gICAgICAgIHZhbHVlOiA1MC4wNDAwMDAwMDAwMDAxMDYsCi0gICAgICAgIGxhYmVsOiAnQ3JCcm93c2VyTWFpbicKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzEyNTYuNTEzbXMnLAotICAgICAgICB2YWx1ZTogMTI1Ni41MTMwMDAwMDAwMDQyLAotICAgICAgICBsYWJlbDogJ0NyR3B1TWFpbicKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzU1MDIuMTk1bXMnLAotICAgICAgICB2YWx1ZTogNTUwMi4xOTQ5OTk5OTk5OSwKLSAgICAgICAgbGFiZWw6ICdDclJlbmRlcmVyTWFpbicKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzE1LjU1M21zJywKLSAgICAgICAgdmFsdWU6IDE1LjU1Mjk5OTk5OTk5OTg2MiwKLSAgICAgICAgbGFiZWw6ICdGRm1wZWdEZW11eGVyJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnNjMuNzA2bXMnLAotICAgICAgICB2YWx1ZTogNjMuNzA2MDAwMDAwMDAxNTI0LAotICAgICAgICBsYWJlbDogJ01lZGlhJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWVUZXh0OiAnMi43NDJtcycsCi0gICAgICAgIHZhbHVlOiAyLjc0MTk5OTk5OTk5OTk5ODcsCi0gICAgICAgIGxhYmVsOiAnUG93ZXJTYXZlQmxvY2tlcicKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlVGV4dDogJzAuMTE1bXMnLAotICAgICAgICB2YWx1ZTogMC4xMTUwMDAwMDAwMDAwMDAwNSwKLSAgICAgICAgbGFiZWw6ICdXYXRjaGRvZycKLSAgICAgIH0KLSAgICBdOwotICAgIGNoYXJ0LmRhdGEgPSBkYXRhOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjaGFydCk7Ci0KLSAgICB2YXIgbWluU2l6ZSA9IGNoYXJ0LmdldE1pblNpemUoKTsKLSAgICBjaGFydC5zZXRTaXplKGNoYXJ0LmdldE1pblNpemUoKSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9xdWFkX3N0YWNrX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9xdWFkX3N0YWNrX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEwYzgzZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvcXVhZF9zdGFja192aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ODYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmJveDIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvbWF0aC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9xdWFkLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yZWN0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NldHRpbmdzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NhbWVyYS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL21vdXNlX3RyYWNrZXIuaHRtbCI+Ci0KLTxzdHlsZT4KLSogL2RlZXAvIHF1YWQtc3RhY2stdmlldyB7Ci0gIGRpc3BsYXk6IGJsb2NrOwotICBmbG9hdDogbGVmdDsKLSAgaGVpZ2h0OiAxMDAlOwotICBvdmVyZmxvdzogaGlkZGVuOwotICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIEZvciB0aGUgYWJzb2x1dGUgcG9zaXRpb25lZCBtb3VzZS1tb2RlLXNlbGVjdG9yICovCi0gIHdpZHRoOiAxMDAlOwotfQotCi0qIC9kZWVwLyBxdWFkLXN0YWNrLXZpZXcgPiAjaGVhZGVyIHsKLSAgcG9zaXRpb246IGFic29sdXRlOwotICBmb250LXNpemU6IDcwJTsKLSAgdG9wOiAxMHB4OwotICBsZWZ0OiAxMHB4OwotICB3aWR0aDogODAwcHg7Ci19Ci0qIC9kZWVwLyBxdWFkLXN0YWNrLXZpZXcgPiAjc3RhY2tpbmctZGlzdGFuY2Utc2xpZGVyIHsKLSAgcG9zaXRpb246IGFic29sdXRlOwotICBmb250LXNpemU6IDcwJTsKLSAgdG9wOiAxMHB4OwotICByaWdodDogMTBweDsKLX0KLQotKiAvZGVlcC8gcXVhZC1zdGFjay12aWV3ID4gI2Nocm9tZS1sZWZ0IHsKLSAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvY2hyb21lLWxlZnQucG5nJyk7Ci0gIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLSogL2RlZXAvIHF1YWQtc3RhY2stdmlldyA+ICNjaHJvbWUtbWlkIHsKLSAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvY2hyb21lLW1pZC5wbmcnKTsKLSAgZGlzcGxheTogbm9uZTsKLX0KLQotKiAvZGVlcC8gcXVhZC1zdGFjay12aWV3ID4gI2Nocm9tZS1yaWdodCB7Ci0gIGNvbnRlbnQ6IHVybCgnLi4vaW1hZ2VzL2Nocm9tZS1yaWdodC5wbmcnKTsKLSAgZGlzcGxheTogbm9uZTsKLX0KLTwvc3R5bGU+Ci0KLTx0ZW1wbGF0ZSBpZD0ncXVhZC1zdGFjay12aWV3LXRlbXBsYXRlJz4KLSAgPGRpdiBpZD0iaGVhZGVyIj48L2Rpdj4KLSAgPGlucHV0IGlkPSJzdGFja2luZy1kaXN0YW5jZS1zbGlkZXIiIHR5cGU9InJhbmdlIiBtaW49MSBtYXg9NDAwIHN0ZXA9MT4KLSAgPC9pbnB1dD4KLSAgPGNhbnZhcyBpZD0nY2FudmFzJz48L2NhbnZhcz4KLSAgPGltZyBpZD0nY2hyb21lLWxlZnQnLz4KLSAgPGltZyBpZD0nY2hyb21lLW1pZCcvPgotICA8aW1nIGlkPSdjaHJvbWUtcmlnaHQnLz4KLTwvdGVtcGxhdGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBRdWFkU3RhY2tWaWV3IGNvbnRyb2xzIHRoZSBjb250ZW50IGFuZCB2aWV3aW5nIGFuZ2xlIGEKLSAqIFF1YWRTdGFjay4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotCi0gIHZhciBjb25zdGFudHMgPSB7fTsKLSAgY29uc3RhbnRzLklNQUdFX0xPQURfUkVUUllfVElNRV9NUyA9IDUwMDsKLSAgY29uc3RhbnRzLlNVQkRJVklTSU9OX01JTklNVU0gPSAxOwotICBjb25zdGFudHMuU1VCRElWSVNJT05fUkVDVVJTSU9OX0RFUFRIID0gMzsKLSAgY29uc3RhbnRzLlNVQkRJVklTSU9OX0RFUFRIX1RIUkVTSE9MRCA9IDEwMDsKLSAgY29uc3RhbnRzLkZBUl9QTEFORV9ESVNUQU5DRSA9IDEwMDAwOwotCi0gIC8vIENhcmUgb2YgYmNrZW5uZXlAIHZpYQotICAvLyBodHRwOi8vZXh0cmVtZWx5c2F0aXNmYWN0b3J5dG90YWxpdGFyaWFuaXNtLmNvbS9ibG9nLz9wPTIxMjAKLSAgZnVuY3Rpb24gZHJhd1RleHR1cmVkVHJpYW5nbGUoY3R4LCBpbWcsIHAwLCBwMSwgcDIsIHQwLCB0MSwgdDIpIHsKLSAgICB2YXIgdG1wX3AwID0gW3AwWzBdLCBwMFsxXV07Ci0gICAgdmFyIHRtcF9wMSA9IFtwMVswXSwgcDFbMV1dOwotICAgIHZhciB0bXBfcDIgPSBbcDJbMF0sIHAyWzFdXTsKLSAgICB2YXIgdG1wX3QwID0gW3QwWzBdLCB0MFsxXV07Ci0gICAgdmFyIHRtcF90MSA9IFt0MVswXSwgdDFbMV1dOwotICAgIHZhciB0bXBfdDIgPSBbdDJbMF0sIHQyWzFdXTsKLQotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBjdHgubW92ZVRvKHRtcF9wMFswXSwgdG1wX3AwWzFdKTsKLSAgICBjdHgubGluZVRvKHRtcF9wMVswXSwgdG1wX3AxWzFdKTsKLSAgICBjdHgubGluZVRvKHRtcF9wMlswXSwgdG1wX3AyWzFdKTsKLSAgICBjdHguY2xvc2VQYXRoKCk7Ci0KLSAgICB0bXBfcDFbMF0gLT0gdG1wX3AwWzBdOwotICAgIHRtcF9wMVsxXSAtPSB0bXBfcDBbMV07Ci0gICAgdG1wX3AyWzBdIC09IHRtcF9wMFswXTsKLSAgICB0bXBfcDJbMV0gLT0gdG1wX3AwWzFdOwotCi0gICAgdG1wX3QxWzBdIC09IHRtcF90MFswXTsKLSAgICB0bXBfdDFbMV0gLT0gdG1wX3QwWzFdOwotICAgIHRtcF90MlswXSAtPSB0bXBfdDBbMF07Ci0gICAgdG1wX3QyWzFdIC09IHRtcF90MFsxXTsKLQotICAgIHZhciBkZXQgPSAxIC8gKHRtcF90MVswXSAqIHRtcF90MlsxXSAtIHRtcF90MlswXSAqIHRtcF90MVsxXSksCi0KLSAgICAgICAgLy8gbGluZWFyIHRyYW5zZm9ybWF0aW9uCi0gICAgICAgIGEgPSAodG1wX3QyWzFdICogdG1wX3AxWzBdIC0gdG1wX3QxWzFdICogdG1wX3AyWzBdKSAqIGRldCwKLSAgICAgICAgYiA9ICh0bXBfdDJbMV0gKiB0bXBfcDFbMV0gLSB0bXBfdDFbMV0gKiB0bXBfcDJbMV0pICogZGV0LAotICAgICAgICBjID0gKHRtcF90MVswXSAqIHRtcF9wMlswXSAtIHRtcF90MlswXSAqIHRtcF9wMVswXSkgKiBkZXQsCi0gICAgICAgIGQgPSAodG1wX3QxWzBdICogdG1wX3AyWzFdIC0gdG1wX3QyWzBdICogdG1wX3AxWzFdKSAqIGRldCwKLQotICAgICAgICAvLyB0cmFuc2xhdGlvbgotICAgICAgICBlID0gdG1wX3AwWzBdIC0gYSAqIHRtcF90MFswXSAtIGMgKiB0bXBfdDBbMV0sCi0gICAgICAgIGYgPSB0bXBfcDBbMV0gLSBiICogdG1wX3QwWzBdIC0gZCAqIHRtcF90MFsxXTsKLQotICAgIGN0eC5zYXZlKCk7Ci0gICAgY3R4LnRyYW5zZm9ybShhLCBiLCBjLCBkLCBlLCBmKTsKLSAgICBjdHguY2xpcCgpOwotICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICB9Ci0KLSAgZnVuY3Rpb24gZHJhd1RyaWFuZ2xlU3ViKAotICAgICAgY3R4LCBpbWcsIHAwLCBwMSwgcDIsIHQwLCB0MSwgdDIsIG9wdF9yZWN1cnNpb25fZGVwdGgpIHsKLSAgICB2YXIgZGVwdGggPSBvcHRfcmVjdXJzaW9uX2RlcHRoIHx8IDA7Ci0KLSAgICAvLyBXZSBtYXkgc3ViZGl2aWRlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGxpbWl0IG9mIHJlY3Vyc2lvbi4KLSAgICB2YXIgc3ViZGl2aXNpb25JbmRleCA9IDA7Ci0gICAgaWYgKGRlcHRoIDwgY29uc3RhbnRzLlNVQkRJVklTSU9OX01JTklNVU0pIHsKLSAgICAgIHN1YmRpdmlzaW9uSW5kZXggPSA3OwotICAgIH0gZWxzZSBpZiAoZGVwdGggPCBjb25zdGFudHMuU1VCRElWSVNJT05fUkVDVVJTSU9OX0RFUFRIKSB7Ci0gICAgICBpZiAoTWF0aC5hYnMocDBbMl0gLSBwMVsyXSkgPiBjb25zdGFudHMuU1VCRElWSVNJT05fREVQVEhfVEhSRVNIT0xEKQotICAgICAgICBzdWJkaXZpc2lvbkluZGV4ICs9IDE7Ci0gICAgICBpZiAoTWF0aC5hYnMocDBbMl0gLSBwMlsyXSkgPiBjb25zdGFudHMuU1VCRElWSVNJT05fREVQVEhfVEhSRVNIT0xEKQotICAgICAgICBzdWJkaXZpc2lvbkluZGV4ICs9IDI7Ci0gICAgICBpZiAoTWF0aC5hYnMocDFbMl0gLSBwMlsyXSkgPiBjb25zdGFudHMuU1VCRElWSVNJT05fREVQVEhfVEhSRVNIT0xEKQotICAgICAgICBzdWJkaXZpc2lvbkluZGV4ICs9IDQ7Ci0gICAgfQotCi0gICAgLy8gVGhlc2UgbmVlZCB0byBiZSBjcmVhdGVkIGV2ZXJ5IHRpbWUsIHNpbmNlIHRlbXBvcmFyaWVzCi0gICAgLy8gb3V0c2lkZSBvZiB0aGUgc2NvcGUgd2lsbCBiZSByZXdyaXR0ZW4gaW4gcmVjdXJzaW9uLgotICAgIHZhciBwMDEgPSB2ZWM0LmNyZWF0ZSgpOwotICAgIHZhciBwMDIgPSB2ZWM0LmNyZWF0ZSgpOwotICAgIHZhciBwMTIgPSB2ZWM0LmNyZWF0ZSgpOwotICAgIHZhciB0MDEgPSB2ZWMyLmNyZWF0ZSgpOwotICAgIHZhciB0MDIgPSB2ZWMyLmNyZWF0ZSgpOwotICAgIHZhciB0MTIgPSB2ZWMyLmNyZWF0ZSgpOwotCi0gICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiBiZWZvcmUgdy1kaXZpZGUuCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIHsKLSAgICAgIHAwW2ldICo9IHAwWzJdOwotICAgICAgcDFbaV0gKj0gcDFbMl07Ci0gICAgICBwMltpXSAqPSBwMlsyXTsKLSAgICB9Ci0KLSAgICAvLyBJbnRlcnBvbGF0ZSB0aGUgM2QgcG9zaXRpb24uCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyArK2kpIHsKLSAgICAgIHAwMVtpXSA9IChwMFtpXSArIHAxW2ldKSAvIDI7Ci0gICAgICBwMDJbaV0gPSAocDBbaV0gKyBwMltpXSkgLyAyOwotICAgICAgcDEyW2ldID0gKHAxW2ldICsgcDJbaV0pIC8gMjsKLSAgICB9Ci0KLSAgICAvLyBSZS1hcHBseSB3LWRpdmlkZSB0byB0aGUgb3JpZ2luYWwgcG9pbnRzIGFuZCB0aGUgaW50ZXJwb2xhdGVkIG9uZXMuCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIHsKLSAgICAgIHAwW2ldIC89IHAwWzJdOwotICAgICAgcDFbaV0gLz0gcDFbMl07Ci0gICAgICBwMltpXSAvPSBwMlsyXTsKLQotICAgICAgcDAxW2ldIC89IHAwMVsyXTsKLSAgICAgIHAwMltpXSAvPSBwMDJbMl07Ci0gICAgICBwMTJbaV0gLz0gcDEyWzJdOwotICAgIH0KLQotICAgIC8vIEludGVycG9sYXRlIHRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzLgotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjsgKytpKSB7Ci0gICAgICB0MDFbaV0gPSAodDBbaV0gKyB0MVtpXSkgLyAyOwotICAgICAgdDAyW2ldID0gKHQwW2ldICsgdDJbaV0pIC8gMjsKLSAgICAgIHQxMltpXSA9ICh0MVtpXSArIHQyW2ldKSAvIDI7Ci0gICAgfQotCi0gICAgLy8gQmFzZWQgb24gdGhlIGluZGV4LCB3ZSBzdWJkaXZpZGUgdGhlIHRyaWFuZ2xlIGRpZmZlcmVudGx5LgotICAgIC8vIEFzc3VtaW5nIHRoZSB0cmlhbmdsZSBpcyBwMCwgcDEsIHAyIGFuZCBwb2ludHMgYmV0d2VlbiBpIGoKLSAgICAvLyBhcmUgcmVwcmVzZW50ZWQgYXMgcGlqICh0aGF0IGlzLCBhIHBvaW50IGJldHdlZW4gcDIgYW5kIHAwCi0gICAgLy8gaXMgcDAyLCBldGMpLCB0aGVuIHRoZSBuZXcgdHJpYW5nbGVzIGFyZSBkZWZpbmVkIGJ5Ci0gICAgLy8gdGhlIDNyZCA0dGggYW5kIDV0aCBhcmd1bWVudHMgaW50byB0aGUgZnVuY3Rpb24uCi0gICAgc3dpdGNoIChzdWJkaXZpc2lvbkluZGV4KSB7Ci0gICAgICBjYXNlIDE6Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAwMSwgcDIsIHQwLCB0MDEsIHQyLCBkZXB0aCArIDEpOwotICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAwMSwgcDEsIHAyLCB0MDEsIHQxLCB0MiwgZGVwdGggKyAxKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDI6Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAxLCBwMDIsIHQwLCB0MSwgdDAyLCBkZXB0aCArIDEpOwotICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAxLCBwMDIsIHAyLCB0MSwgdDAyLCB0MiwgZGVwdGggKyAxKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDM6Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAwMSwgcDAyLCB0MCwgdDAxLCB0MDIsIGRlcHRoICsgMSk7Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAyLCBwMDEsIHAyLCB0MDIsIHQwMSwgdDIsIGRlcHRoICsgMSk7Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAxLCBwMSwgcDIsIHQwMSwgdDEsIHQyLCBkZXB0aCArIDEpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgNDoKLSAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMCwgcDEyLCBwMiwgdDAsIHQxMiwgdDIsIGRlcHRoICsgMSk7Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAxLCBwMTIsIHQwLCB0MSwgdDEyLCBkZXB0aCArIDEpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgNToKLSAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMCwgcDAxLCBwMiwgdDAsIHQwMSwgdDIsIGRlcHRoICsgMSk7Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDIsIHAwMSwgcDEyLCB0MiwgdDAxLCB0MTIsIGRlcHRoICsgMSk7Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAxLCBwMSwgcDEyLCB0MDEsIHQxLCB0MTIsIGRlcHRoICsgMSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSA2OgotICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAwLCBwMTIsIHAwMiwgdDAsIHQxMiwgdDAyLCBkZXB0aCArIDEpOwotICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAwLCBwMSwgcDEyLCB0MCwgdDEsIHQxMiwgZGVwdGggKyAxKTsKLSAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMDIsIHAxMiwgcDIsIHQwMiwgdDEyLCB0MiwgZGVwdGggKyAxKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDc6Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAwMSwgcDAyLCB0MCwgdDAxLCB0MDIsIGRlcHRoICsgMSk7Ci0gICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAxLCBwMTIsIHAwMiwgdDAxLCB0MTIsIHQwMiwgZGVwdGggKyAxKTsKLSAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMDEsIHAxLCBwMTIsIHQwMSwgdDEsIHQxMiwgZGVwdGggKyAxKTsKLSAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMDIsIHAxMiwgcDIsIHQwMiwgdDEyLCB0MiwgZGVwdGggKyAxKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBkZWZhdWx0OgotICAgICAgICAvLyBJbiB0aGUgMCBjYXNlIGFuZCBhbGwgb3RoZXIgY2FzZXMsIHdlIHNpbXBseSBkcmF3IHRoZSB0cmlhbmdsZS4KLSAgICAgICAgZHJhd1RleHR1cmVkVHJpYW5nbGUoY3R4LCBpbWcsIHAwLCBwMSwgcDIsIHQwLCB0MSwgdDIpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gIH0KLQotICAvLyBDcmVhdGVkIHRvIGF2b2lkIGNyZWF0aW5nIGdhcmJhZ2Ugd2hlbiBkb2luZyBidWxrIHRyYW5zZm9ybXMuCi0gIHZhciB0bXBfdmVjNCA9IHZlYzQuY3JlYXRlKCk7Ci0gIGZ1bmN0aW9uIHRyYW5zZm9ybSh0cmFuc2Zvcm1lZCwgcG9pbnQsIG1hdHJpeCwgdmlld3BvcnQpIHsKLSAgICB2ZWM0LnNldCh0bXBfdmVjNCwgcG9pbnRbMF0sIHBvaW50WzFdLCAwLCAxKTsKLSAgICB2ZWM0LnRyYW5zZm9ybU1hdDQodG1wX3ZlYzQsIHRtcF92ZWM0LCBtYXRyaXgpOwotCi0gICAgdmFyIHcgPSB0bXBfdmVjNFszXTsKLSAgICBpZiAodyA8IDFlLTYpIHcgPSAxZS02OwotCi0gICAgdHJhbnNmb3JtZWRbMF0gPSAoKHRtcF92ZWM0WzBdIC8gdykgKyAxKSAqIHZpZXdwb3J0LndpZHRoIC8gMjsKLSAgICB0cmFuc2Zvcm1lZFsxXSA9ICgodG1wX3ZlYzRbMV0gLyB3KSArIDEpICogdmlld3BvcnQuaGVpZ2h0IC8gMjsKLSAgICB0cmFuc2Zvcm1lZFsyXSA9IHc7Ci0gIH0KLQotICBmdW5jdGlvbiBkcmF3UHJvamVjdGVkUXVhZEJhY2tncm91bmRUb0NvbnRleHQoCi0gICAgICBxdWFkLCBwMSwgcDIsIHAzLCBwNCwgY3R4LCBxdWFkQ2FudmFzKSB7Ci0gICAgaWYgKHF1YWQuaW1hZ2VEYXRhKSB7Ci0gICAgICBxdWFkQ2FudmFzLndpZHRoID0gcXVhZC5pbWFnZURhdGEud2lkdGg7Ci0gICAgICBxdWFkQ2FudmFzLmhlaWdodCA9IHF1YWQuaW1hZ2VEYXRhLmhlaWdodDsKLSAgICAgIHF1YWRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5wdXRJbWFnZURhdGEocXVhZC5pbWFnZURhdGEsIDAsIDApOwotICAgICAgdmFyIHF1YWRCQm94ID0gbmV3IHRyLmIuQkJveDIoKTsKLSAgICAgIHF1YWRCQm94LmFkZFF1YWQocXVhZCk7Ci0gICAgICB2YXIgaXcgPSBxdWFkQ2FudmFzLndpZHRoOwotICAgICAgdmFyIGloID0gcXVhZENhbnZhcy5oZWlnaHQ7Ci0gICAgICBkcmF3VHJpYW5nbGVTdWIoCi0gICAgICAgICAgY3R4LCBxdWFkQ2FudmFzLAotICAgICAgICAgIHAxLCBwMiwgcDQsCi0gICAgICAgICAgWzAsIDBdLCBbaXcsIDBdLCBbMCwgaWhdKTsKLSAgICAgIGRyYXdUcmlhbmdsZVN1YigKLSAgICAgICAgICBjdHgsIHF1YWRDYW52YXMsCi0gICAgICAgICAgcDIsIHAzLCBwNCwKLSAgICAgICAgICBbaXcsIDBdLCBbaXcsIGloXSwgWzAsIGloXSk7Ci0gICAgfQotCi0gICAgaWYgKHF1YWQuYmFja2dyb3VuZENvbG9yKSB7Ci0gICAgICBjdHguZmlsbFN0eWxlID0gcXVhZC5iYWNrZ3JvdW5kQ29sb3I7Ci0gICAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgICBjdHgubW92ZVRvKHAxWzBdLCBwMVsxXSk7Ci0gICAgICBjdHgubGluZVRvKHAyWzBdLCBwMlsxXSk7Ci0gICAgICBjdHgubGluZVRvKHAzWzBdLCBwM1sxXSk7Ci0gICAgICBjdHgubGluZVRvKHA0WzBdLCBwNFsxXSk7Ci0gICAgICBjdHguY2xvc2VQYXRoKCk7Ci0gICAgICBjdHguZmlsbCgpOwotICAgIH0KLSAgfQotCi0gIGZ1bmN0aW9uIGRyYXdQcm9qZWN0ZWRRdWFkT3V0bGluZVRvQ29udGV4dCgKLSAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpIHsKLSAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgY3R4Lm1vdmVUbyhwMVswXSwgcDFbMV0pOwotICAgIGN0eC5saW5lVG8ocDJbMF0sIHAyWzFdKTsKLSAgICBjdHgubGluZVRvKHAzWzBdLCBwM1sxXSk7Ci0gICAgY3R4LmxpbmVUbyhwNFswXSwgcDRbMV0pOwotICAgIGN0eC5jbG9zZVBhdGgoKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGlmIChxdWFkLmJvcmRlckNvbG9yKQotICAgICAgY3R4LnN0cm9rZVN0eWxlID0gcXVhZC5ib3JkZXJDb2xvcjsKLSAgICBlbHNlCi0gICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDEyOCwxMjgsMTI4KSc7Ci0KLSAgICBpZiAocXVhZC5zaGFkb3dPZmZzZXQpIHsKLSAgICAgIGN0eC5zaGFkb3dDb2xvciA9ICdyZ2IoMCwgMCwgMCknOwotICAgICAgY3R4LnNoYWRvd09mZnNldFggPSBxdWFkLnNoYWRvd09mZnNldFswXTsKLSAgICAgIGN0eC5zaGFkb3dPZmZzZXRZID0gcXVhZC5zaGFkb3dPZmZzZXRbMV07Ci0gICAgICBpZiAocXVhZC5zaGFkb3dCbHVyKQotICAgICAgICBjdHguc2hhZG93Qmx1ciA9IHF1YWQuc2hhZG93Qmx1cjsKLSAgICB9Ci0KLSAgICBpZiAocXVhZC5ib3JkZXJXaWR0aCkKLSAgICAgIGN0eC5saW5lV2lkdGggPSBxdWFkLmJvcmRlcldpZHRoOwotICAgIGVsc2UKLSAgICAgIGN0eC5saW5lV2lkdGggPSAxOwotCi0gICAgY3R4LnN0cm9rZSgpOwotICAgIGN0eC5yZXN0b3JlKCk7Ci0gIH0KLQotICBmdW5jdGlvbiBkcmF3UHJvamVjdGVkUXVhZFNlbGVjdGlvbk91dGxpbmVUb0NvbnRleHQoCi0gICAgICBxdWFkLCBwMSwgcDIsIHAzLCBwNCwgY3R4LCBxdWFkQ2FudmFzKSB7Ci0gICAgaWYgKCFxdWFkLnVwcGVyQm9yZGVyQ29sb3IpCi0gICAgICByZXR1cm47Ci0KLSAgICBjdHgubGluZVdpZHRoID0gODsKLSAgICBjdHguc3Ryb2tlU3R5bGUgPSBxdWFkLnVwcGVyQm9yZGVyQ29sb3I7Ci0KLSAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgY3R4Lm1vdmVUbyhwMVswXSwgcDFbMV0pOwotICAgIGN0eC5saW5lVG8ocDJbMF0sIHAyWzFdKTsKLSAgICBjdHgubGluZVRvKHAzWzBdLCBwM1sxXSk7Ci0gICAgY3R4LmxpbmVUbyhwNFswXSwgcDRbMV0pOwotICAgIGN0eC5jbG9zZVBhdGgoKTsKLSAgICBjdHguc3Ryb2tlKCk7Ci0gIH0KLQotICBmdW5jdGlvbiBkcmF3UHJvamVjdGVkUXVhZFRvQ29udGV4dCgKLSAgICAgIHBhc3NOdW1iZXIsIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpIHsKLSAgICBpZiAocGFzc051bWJlciA9PT0gMCkgewotICAgICAgZHJhd1Byb2plY3RlZFF1YWRCYWNrZ3JvdW5kVG9Db250ZXh0KAotICAgICAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpOwotICAgIH0gZWxzZSBpZiAocGFzc051bWJlciA9PT0gMSkgewotICAgICAgZHJhd1Byb2plY3RlZFF1YWRPdXRsaW5lVG9Db250ZXh0KAotICAgICAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpOwotICAgIH0gZWxzZSBpZiAocGFzc051bWJlciA9PT0gMikgewotICAgICAgZHJhd1Byb2plY3RlZFF1YWRTZWxlY3Rpb25PdXRsaW5lVG9Db250ZXh0KAotICAgICAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFzcyBudW1iZXInKTsKLSAgICB9Ci0gIH0KLQotICB2YXIgdG1wX3AxID0gdmVjMy5jcmVhdGUoKTsKLSAgdmFyIHRtcF9wMiA9IHZlYzMuY3JlYXRlKCk7Ci0gIHZhciB0bXBfcDMgPSB2ZWMzLmNyZWF0ZSgpOwotICB2YXIgdG1wX3A0ID0gdmVjMy5jcmVhdGUoKTsKLSAgZnVuY3Rpb24gdHJhbnNmb3JtQW5kUHJvY2Vzc1F1YWRzKAotICAgICAgbWF0cml4LCB2aWV3cG9ydCwgcXVhZHMsIG51bVBhc3NlcywgaGFuZGxlUXVhZEZ1bmMsIG9wdF9hcmcxLCBvcHRfYXJnMikgewotCi0gICAgZm9yICh2YXIgcGFzc051bWJlciA9IDA7IHBhc3NOdW1iZXIgPCBudW1QYXNzZXM7IHBhc3NOdW1iZXIrKykgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWFkcy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgcXVhZCA9IHF1YWRzW2ldOwotICAgICAgICB0cmFuc2Zvcm0odG1wX3AxLCBxdWFkLnAxLCBtYXRyaXgsIHZpZXdwb3J0KTsKLSAgICAgICAgdHJhbnNmb3JtKHRtcF9wMiwgcXVhZC5wMiwgbWF0cml4LCB2aWV3cG9ydCk7Ci0gICAgICAgIHRyYW5zZm9ybSh0bXBfcDMsIHF1YWQucDMsIG1hdHJpeCwgdmlld3BvcnQpOwotICAgICAgICB0cmFuc2Zvcm0odG1wX3A0LCBxdWFkLnA0LCBtYXRyaXgsIHZpZXdwb3J0KTsKLSAgICAgICAgaGFuZGxlUXVhZEZ1bmMocGFzc051bWJlciwgcXVhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgdG1wX3AxLCB0bXBfcDIsIHRtcF9wMywgdG1wX3A0LAotICAgICAgICAgICAgICAgICAgICAgICBvcHRfYXJnMSwgb3B0X2FyZzIpOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBRdWFkU3RhY2tWaWV3ID0gdHIuYi51aS5kZWZpbmUoJ3F1YWQtc3RhY2stdmlldycpOwotCi0gIFF1YWRTdGFja1ZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2xhc3NOYW1lID0gJ3F1YWQtc3RhY2stdmlldyc7Ci0KLSAgICAgIHZhciBub2RlID0gdHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjcXVhZC1zdGFjay12aWV3LXRlbXBsYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRISVNfRE9DKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobm9kZSk7Ci0gICAgICB0aGlzLnVwZGF0ZUhlYWRlclZpc2liaWxpdHlfKCk7Ci0gICAgICB0aGlzLmNhbnZhc18gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjYW52YXMnKTsKLSAgICAgIHRoaXMuY2hyb21lSW1hZ2VzXyA9IHsKLSAgICAgICAgbGVmdDogdGhpcy5xdWVyeVNlbGVjdG9yKCcjY2hyb21lLWxlZnQnKSwKLSAgICAgICAgbWlkOiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjaHJvbWUtbWlkJyksCi0gICAgICAgIHJpZ2h0OiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjaHJvbWUtcmlnaHQnKQotICAgICAgfTsKLQotICAgICAgdmFyIHN0YWNraW5nRGlzdGFuY2VTbGlkZXIgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoCi0gICAgICAgICAgJyNzdGFja2luZy1kaXN0YW5jZS1zbGlkZXInKTsKLSAgICAgIHN0YWNraW5nRGlzdGFuY2VTbGlkZXIudmFsdWUgPSB0ci5iLlNldHRpbmdzLmdldCgKLSAgICAgICAgICAncXVhZFN0YWNrVmlldy5zdGFja2luZ0Rpc3RhbmNlJywgNDUpOwotICAgICAgc3RhY2tpbmdEaXN0YW5jZVNsaWRlci5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uU3RhY2tpbmdEaXN0YW5jZUNoYW5nZV8uYmluZCh0aGlzKSk7Ci0gICAgICBzdGFja2luZ0Rpc3RhbmNlU2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ2lucHV0JywgdGhpcy5vblN0YWNraW5nRGlzdGFuY2VDaGFuZ2VfLmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLnRyYWNrTW91c2VfKCk7Ci0KLSAgICAgIHRoaXMuY2FtZXJhXyA9IG5ldyB0ci5iLnVpLkNhbWVyYSh0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyk7Ci0gICAgICB0aGlzLmNhbWVyYV8uYWRkRXZlbnRMaXN0ZW5lcigncmVuZGVycmVxdWlyZWQnLAotICAgICAgICAgIHRoaXMub25SZW5kZXJSZXF1aXJlZF8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLmNhbWVyYVdhc1Jlc2V0XyA9IGZhbHNlOwotICAgICAgdGhpcy5jYW1lcmFfLmNhbnZhcyA9IHRoaXMuY2FudmFzXzsKLQotICAgICAgdGhpcy52aWV3cG9ydFJlY3RfID0gdHIuYi5SZWN0LmZyb21YWVdIKDAsIDAsIDAsIDApOwotCi0gICAgICB0aGlzLnBpeGVsUmF0aW9fID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLSAgICB9LAotCi0gICAgdXBkYXRlSGVhZGVyVmlzaWJpbGl0eV86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuaGVhZGVyVGV4dCkKLSAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjaGVhZGVyJykuc3R5bGUuZGlzcGxheSA9ICcnOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNoZWFkZXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgIH0sCi0KLSAgICBnZXQgaGVhZGVyVGV4dCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNoZWFkZXInKS50ZXh0Q29udGVudDsKLSAgICB9LAotCi0gICAgc2V0IGhlYWRlclRleHQoaGVhZGVyVGV4dCkgewotICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjaGVhZGVyJykudGV4dENvbnRlbnQgPSBoZWFkZXJUZXh0OwotICAgICAgdGhpcy51cGRhdGVIZWFkZXJWaXNpYmlsaXR5XygpOwotICAgIH0sCi0KLSAgICBvblN0YWNraW5nRGlzdGFuY2VDaGFuZ2VfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0ci5iLlNldHRpbmdzLnNldCgncXVhZFN0YWNrVmlldy5zdGFja2luZ0Rpc3RhbmNlJywKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2tpbmdEaXN0YW5jZSk7Ci0gICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0sCi0KLSAgICBnZXQgc3RhY2tpbmdEaXN0YW5jZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzdGFja2luZy1kaXN0YW5jZS1zbGlkZXInKS52YWx1ZTsKLSAgICB9LAotCi0gICAgZ2V0IG1vdXNlTW9kZVNlbGVjdG9yKCkgewotICAgICAgcmV0dXJuIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfOwotICAgIH0sCi0KLSAgICBnZXQgY2FtZXJhKCkgewotICAgICAgcmV0dXJuIHRoaXMuY2FtZXJhXzsKLSAgICB9LAotCi0gICAgc2V0IHF1YWRzKHEpIHsKLSAgICAgIHRoaXMucXVhZHNfID0gcTsKLSAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTsKLSAgICB9LAotCi0gICAgc2V0IGRldmljZVJlY3QocmVjdCkgewotICAgICAgaWYgKCFyZWN0IHx8IHJlY3QuZXF1YWxUbyh0aGlzLmRldmljZVJlY3RfKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmRldmljZVJlY3RfID0gcmVjdDsKLSAgICAgIHRoaXMuY2FtZXJhXy5kZXZpY2VSZWN0ID0gcmVjdDsKLSAgICAgIHRoaXMuY2hyb21lUXVhZF8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIHJlc2l6ZTogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIXRoaXMub2Zmc2V0UGFyZW50KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgdmFyIHdpZHRoID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5vZmZzZXRQYXJlbnQpLndpZHRoKTsKLSAgICAgIHZhciBoZWlnaHQgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLm9mZnNldFBhcmVudCkuaGVpZ2h0KTsKLSAgICAgIHZhciByZWN0ID0gdHIuYi5SZWN0LmZyb21YWVdIKDAsIDAsIHdpZHRoLCBoZWlnaHQpOwotCi0gICAgICBpZiAocmVjdC5lcXVhbFRvKHRoaXMudmlld3BvcnRSZWN0XykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdGhpcy52aWV3cG9ydFJlY3RfID0gcmVjdDsKLSAgICAgIHRoaXMuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7Ci0gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7Ci0gICAgICB0aGlzLmNhbnZhc18uc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7Ci0gICAgICB0aGlzLmNhbnZhc18uc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JzsKLSAgICAgIHRoaXMuY2FudmFzXy53aWR0aCA9IHRoaXMucGl4ZWxSYXRpb18gKiB3aWR0aDsKLSAgICAgIHRoaXMuY2FudmFzXy5oZWlnaHQgPSB0aGlzLnBpeGVsUmF0aW9fICogaGVpZ2h0OwotICAgICAgaWYgKCF0aGlzLmNhbWVyYVdhc1Jlc2V0XykgewotICAgICAgICB0aGlzLmNhbWVyYV8ucmVzZXRDYW1lcmEoKTsKLSAgICAgICAgdGhpcy5jYW1lcmFXYXNSZXNldF8gPSB0cnVlOwotICAgICAgfQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIHJlYWR5VG9EcmF3OiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIElmIHNyYyBpc24ndCBzZXQgeWV0LCBzZXQgaXQgdG8gZW5zdXJlIHdlIGNhbiB1c2UKLSAgICAgIC8vIHRoZSBpbWFnZSB0byBkcmF3IG9udG8gYSBjYW52YXMuCi0gICAgICBpZiAoIXRoaXMuY2hyb21lSW1hZ2VzXy5sZWZ0LnNyYykgewotICAgICAgICB2YXIgbGVmdENvbnRlbnQgPQotICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5jaHJvbWVJbWFnZXNfLmxlZnQpLmNvbnRlbnQ7Ci0gICAgICAgIGxlZnRDb250ZW50ID0gbGVmdENvbnRlbnQucmVwbGFjZSgvdXJsXCgoLiopXCkvLCAnJDEnKTsKLQotICAgICAgICB2YXIgbWlkQ29udGVudCA9Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNocm9tZUltYWdlc18ubWlkKS5jb250ZW50OwotICAgICAgICBtaWRDb250ZW50ID0gbWlkQ29udGVudC5yZXBsYWNlKC91cmxcKCguKilcKS8sICckMScpOwotCi0gICAgICAgIHZhciByaWdodENvbnRlbnQgPQotICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5jaHJvbWVJbWFnZXNfLnJpZ2h0KS5jb250ZW50OwotICAgICAgICByaWdodENvbnRlbnQgPSByaWdodENvbnRlbnQucmVwbGFjZSgvdXJsXCgoLiopXCkvLCAnJDEnKTsKLQotICAgICAgICB0aGlzLmNocm9tZUltYWdlc18ubGVmdC5zcmMgPSBsZWZ0Q29udGVudDsKLSAgICAgICAgdGhpcy5jaHJvbWVJbWFnZXNfLm1pZC5zcmMgPSBtaWRDb250ZW50OwotICAgICAgICB0aGlzLmNocm9tZUltYWdlc18ucmlnaHQuc3JjID0gcmlnaHRDb250ZW50OwotICAgICAgfQotCi0gICAgICAvLyBJZiBhbGwgb2YgdGhlIGltYWdlcyBhcmUgbG9hZGVkIChoZWlnaHQgPiAwKSwgdGhlbgotICAgICAgLy8gd2UgYXJlIHJlYWR5IHRvIGRyYXcuCi0gICAgICByZXR1cm4gKHRoaXMuY2hyb21lSW1hZ2VzXy5sZWZ0LmhlaWdodCA+IDApICYmCi0gICAgICAgICAgICAgKHRoaXMuY2hyb21lSW1hZ2VzXy5taWQuaGVpZ2h0ID4gMCkgJiYKLSAgICAgICAgICAgICAodGhpcy5jaHJvbWVJbWFnZXNfLnJpZ2h0LmhlaWdodCA+IDApOwotICAgIH0sCi0KLSAgICBnZXQgY2hyb21lUXVhZCgpIHsKLSAgICAgIGlmICh0aGlzLmNocm9tZVF1YWRfKQotICAgICAgICByZXR1cm4gdGhpcy5jaHJvbWVRdWFkXzsKLQotICAgICAgLy8gRHJhdyB0aGUgY2hyb21lIGJvcmRlciBpbnRvIGEgc2VwYXJhdGUgY2FudmFzLgotICAgICAgdmFyIGNocm9tZUNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgICAgdmFyIG9mZnNldFkgPSB0aGlzLmNocm9tZUltYWdlc18ubGVmdC5oZWlnaHQ7Ci0KLSAgICAgIGNocm9tZUNhbnZhcy53aWR0aCA9IHRoaXMuZGV2aWNlUmVjdF8ud2lkdGg7Ci0gICAgICBjaHJvbWVDYW52YXMuaGVpZ2h0ID0gdGhpcy5kZXZpY2VSZWN0Xy5oZWlnaHQgKyBvZmZzZXRZOwotCi0gICAgICB2YXIgbGVmdFdpZHRoID0gdGhpcy5jaHJvbWVJbWFnZXNfLmxlZnQud2lkdGg7Ci0gICAgICB2YXIgbWlkV2lkdGggPSB0aGlzLmNocm9tZUltYWdlc18ubWlkLndpZHRoOwotICAgICAgdmFyIHJpZ2h0V2lkdGggPSB0aGlzLmNocm9tZUltYWdlc18ucmlnaHQud2lkdGg7Ci0KLSAgICAgIHZhciBjaHJvbWVDdHggPSBjaHJvbWVDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgIGNocm9tZUN0eC5kcmF3SW1hZ2UodGhpcy5jaHJvbWVJbWFnZXNfLmxlZnQsIDAsIDApOwotCi0gICAgICBjaHJvbWVDdHguc2F2ZSgpOwotICAgICAgY2hyb21lQ3R4LnRyYW5zbGF0ZShsZWZ0V2lkdGgsIDApOwotCi0gICAgICAvLyBDYWxjdWxhdGUgdGhlIHNjYWxlIG9mIHRoZSBtaWQgaW1hZ2UuCi0gICAgICB2YXIgcyA9ICh0aGlzLmRldmljZVJlY3RfLndpZHRoIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aCkgLyBtaWRXaWR0aDsKLSAgICAgIGNocm9tZUN0eC5zY2FsZShzLCAxKTsKLQotICAgICAgY2hyb21lQ3R4LmRyYXdJbWFnZSh0aGlzLmNocm9tZUltYWdlc18ubWlkLCAwLCAwKTsKLSAgICAgIGNocm9tZUN0eC5yZXN0b3JlKCk7Ci0KLSAgICAgIGNocm9tZUN0eC5kcmF3SW1hZ2UoCi0gICAgICAgICAgdGhpcy5jaHJvbWVJbWFnZXNfLnJpZ2h0LCBsZWZ0V2lkdGggKyBzICogbWlkV2lkdGgsIDApOwotCi0gICAgICAvLyBDb25zdHJ1Y3QgdGhlIHF1YWQuCi0gICAgICB2YXIgY2hyb21lUmVjdCA9IHRyLmIuUmVjdC5mcm9tWFlXSCgKLSAgICAgICAgICB0aGlzLmRldmljZVJlY3RfLngsCi0gICAgICAgICAgdGhpcy5kZXZpY2VSZWN0Xy55IC0gb2Zmc2V0WSwKLSAgICAgICAgICB0aGlzLmRldmljZVJlY3RfLndpZHRoLAotICAgICAgICAgIHRoaXMuZGV2aWNlUmVjdF8uaGVpZ2h0ICsgb2Zmc2V0WSk7Ci0gICAgICB2YXIgY2hyb21lUXVhZCA9IHRyLmIuUXVhZC5mcm9tUmVjdChjaHJvbWVSZWN0KTsKLSAgICAgIGNocm9tZVF1YWQuc3RhY2tpbmdHcm91cElkID0gdGhpcy5tYXhTdGFja2luZ0dyb3VwSWRfICsgMTsKLSAgICAgIGNocm9tZVF1YWQuaW1hZ2VEYXRhID0gY2hyb21lQ3R4LmdldEltYWdlRGF0YSgKLSAgICAgICAgICAwLCAwLCBjaHJvbWVDYW52YXMud2lkdGgsIGNocm9tZUNhbnZhcy5oZWlnaHQpOwotICAgICAgY2hyb21lUXVhZC5zaGFkb3dPZmZzZXQgPSBbMCwgMF07Ci0gICAgICBjaHJvbWVRdWFkLnNoYWRvd0JsdXIgPSA1OwotICAgICAgY2hyb21lUXVhZC5ib3JkZXJXaWR0aCA9IDM7Ci0gICAgICB0aGlzLmNocm9tZVF1YWRfID0gY2hyb21lUXVhZDsKLSAgICAgIHJldHVybiB0aGlzLmNocm9tZVF1YWRfOwotICAgIH0sCi0KLSAgICBzY2hlZHVsZVJlbmRlcjogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5yZWRyYXdTY2hlZHVsZWRfKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB0aGlzLnJlZHJhd1NjaGVkdWxlZF8gPSB0cnVlOwotICAgICAgdHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yZW5kZXIsIHRoaXMpOwotICAgIH0sCi0KLSAgICBvblJlbmRlclJlcXVpcmVkXzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpOwotICAgIH0sCi0KLSAgICBzdGFja1RyYW5zZm9ybUFuZFByb2Nlc3NRdWFkc186IGZ1bmN0aW9uKAotICAgICAgICBudW1QYXNzZXMsIGhhbmRsZVF1YWRGdW5jLCBpbmNsdWRlQ2hyb21lUXVhZCwgb3B0X2FyZzEsIG9wdF9hcmcyKSB7Ci0gICAgICB2YXIgbXYgPSB0aGlzLmNhbWVyYV8ubW9kZWxWaWV3TWF0cml4OwotICAgICAgdmFyIHAgPSB0aGlzLmNhbWVyYV8ucHJvamVjdGlvbk1hdHJpeDsKLQotICAgICAgdmFyIHZpZXdwb3J0ID0gdHIuYi5SZWN0LmZyb21YWVdIKAotICAgICAgICAgIDAsIDAsIHRoaXMuY2FudmFzXy53aWR0aCwgdGhpcy5jYW52YXNfLmhlaWdodCk7Ci0KLSAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcXVhZCBzdGFja3MuCi0gICAgICB2YXIgcXVhZFN0YWNrcyA9IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnF1YWRzXy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgcXVhZCA9IHRoaXMucXVhZHNfW2ldOwotICAgICAgICB2YXIgc3RhY2tpbmdJZCA9IHF1YWQuc3RhY2tpbmdHcm91cElkIHx8IDA7Ci0gICAgICAgIHdoaWxlIChzdGFja2luZ0lkID49IHF1YWRTdGFja3MubGVuZ3RoKQotICAgICAgICAgIHF1YWRTdGFja3MucHVzaChbXSk7Ci0KLSAgICAgICAgcXVhZFN0YWNrc1tzdGFja2luZ0lkXS5wdXNoKHF1YWQpOwotICAgICAgfQotCi0gICAgICB2YXIgbXZwID0gbWF0NC5jcmVhdGUoKTsKLSAgICAgIHRoaXMubWF4U3RhY2tpbmdHcm91cElkXyA9IHF1YWRTdGFja3MubGVuZ3RoOwotICAgICAgdmFyIGVmZmVjdGl2ZVN0YWNraW5nRGlzdGFuY2UgPQotICAgICAgICAgIHRoaXMuc3RhY2tpbmdEaXN0YW5jZSAqIHRoaXMuY2FtZXJhXy5zdGFja2luZ0Rpc3RhbmNlRGFtcGVuaW5nOwotCi0gICAgICAvLyBEcmF3IHRoZSBxdWFkIHN0YWNrcywgcmFpc2luZyBlYWNoIHN1YnNlcXVlbnQgbGV2ZWwuCi0gICAgICBtYXQ0Lm11bHRpcGx5KG12cCwgcCwgbXYpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWFkU3RhY2tzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHRyYW5zZm9ybUFuZFByb2Nlc3NRdWFkcyhtdnAsIHZpZXdwb3J0LCBxdWFkU3RhY2tzW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtUGFzc2VzLCBoYW5kbGVRdWFkRnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9hcmcxLCBvcHRfYXJnMik7Ci0KLSAgICAgICAgbWF0NC50cmFuc2xhdGUobXYsIG12LCBbMCwgMCwgZWZmZWN0aXZlU3RhY2tpbmdEaXN0YW5jZV0pOwotICAgICAgICBtYXQ0Lm11bHRpcGx5KG12cCwgcCwgbXYpOwotICAgICAgfQotCi0gICAgICBpZiAoaW5jbHVkZUNocm9tZVF1YWQgJiYgdGhpcy5kZXZpY2VSZWN0XykgewotICAgICAgICB0cmFuc2Zvcm1BbmRQcm9jZXNzUXVhZHMobXZwLCB2aWV3cG9ydCwgW3RoaXMuY2hyb21lUXVhZF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1QYXNzZXMsIGRyYXdQcm9qZWN0ZWRRdWFkVG9Db250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X2FyZzEsIG9wdF9hcmcyKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgcmVuZGVyOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmVkcmF3U2NoZWR1bGVkXyA9IGZhbHNlOwotCi0gICAgICBpZiAoIXRoaXMucmVhZHlUb0RyYXcoKSkgewotICAgICAgICBzZXRUaW1lb3V0KHRoaXMuc2NoZWR1bGVSZW5kZXIuYmluZCh0aGlzKSwKLSAgICAgICAgICAgICAgICAgICBjb25zdGFudHMuSU1BR0VfTE9BRF9SRVRSWV9USU1FX01TKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAoIXRoaXMucXVhZHNfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBjYW52YXNDdHggPSB0aGlzLmNhbnZhc18uZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgIGlmICghdGhpcy5yZXNpemUoKSkKLSAgICAgICAgY2FudmFzQ3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc18ud2lkdGgsIHRoaXMuY2FudmFzXy5oZWlnaHQpOwotCi0gICAgICB2YXIgcXVhZENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgICAgdGhpcy5zdGFja1RyYW5zZm9ybUFuZFByb2Nlc3NRdWFkc18oCi0gICAgICAgICAgMywgZHJhd1Byb2plY3RlZFF1YWRUb0NvbnRleHQsIHRydWUsCi0gICAgICAgICAgY2FudmFzQ3R4LCBxdWFkQ2FudmFzKTsKLSAgICAgIHF1YWRDYW52YXMud2lkdGggPSAwOyAvLyBIYWNrOiBGcmVlcyB0aGUgcXVhZENhbnZhcycgcmVzb3VyY2VzLgotICAgIH0sCi0KLSAgICB0cmFja01vdXNlXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyA9IG5ldyB0ci5iLnVpLk1vdXNlTW9kZVNlbGVjdG9yKHRoaXMuY2FudmFzXyk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zdXBwb3J0ZWRNb2RlTWFzayA9Ci0gICAgICAgICAgdHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTiB8Ci0gICAgICAgICAgdHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU4gfAotICAgICAgICAgIHRyLmIudWkuTU9VU0VfU0VMRUNUT1JfTU9ERS5aT09NIHwKLSAgICAgICAgICB0ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREUuUk9UQVRFOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8ubW9kZSA9IHRyLmIudWkuTU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8ucG9zID0ge3g6IDAsIHk6IDEwMH07Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMubW91c2VNb2RlU2VsZWN0b3JfKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldHRpbmdzS2V5ID0KLSAgICAgICAgICAncXVhZFN0YWNrVmlldy5tb3VzZU1vZGVTZWxlY3Rvcic7Ci0KLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldE1vZGlmaWVyRm9yQWx0ZXJuYXRlTW9kZSgKLSAgICAgICAgICB0ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREUuUk9UQVRFLCB0ci5iLnVpLk1PRElGSUVSLlNISUZUKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldE1vZGlmaWVyRm9yQWx0ZXJuYXRlTW9kZSgKLSAgICAgICAgICB0ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREUuUEFOU0NBTiwgdHIuYi51aS5NT0RJRklFUi5TUEFDRSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRNb2RpZmllckZvckFsdGVybmF0ZU1vZGUoCi0gICAgICAgICAgdHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT00sIHRyLmIudWkuTU9ESUZJRVIuQ01EX09SX0NUUkwpOwotCi0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVzZWxlY3Rpb24nLAotICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25VcGRhdGVfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW5kc2VsZWN0aW9uJywKLSAgICAgICAgICB0aGlzLm9uU2VsZWN0aW9uVXBkYXRlXy5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBiciA9IHRoaXMuY2FudmFzXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHJldHVybiBbCi0gICAgICAgIHRoaXMucGl4ZWxSYXRpb18gKiAoZS5jbGllbnRYIC0gdGhpcy5jYW52YXNfLm9mZnNldExlZnQgLSBici5sZWZ0KSwKLSAgICAgICAgdGhpcy5waXhlbFJhdGlvXyAqIChlLmNsaWVudFkgLSB0aGlzLmNhbnZhc18ub2Zmc2V0VG9wIC0gYnIudG9wKQotICAgICAgXTsKLSAgICB9LAotCi0gICAgb25TZWxlY3Rpb25VcGRhdGVfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgbW91c2VQb3MgPSB0aGlzLmV4dHJhY3RSZWxhdGl2ZU1vdXNlUG9zaXRpb25fKGUpOwotICAgICAgdmFyIHJlcyA9IFtdOwotICAgICAgZnVuY3Rpb24gaGFuZGxlUXVhZChwYXNzTnVtYmVyLCBxdWFkLCBwMSwgcDIsIHAzLCBwNCkgewotICAgICAgICBpZiAodHIuYi5wb2ludEluSW1wbGljaXRRdWFkKG1vdXNlUG9zLCBwMSwgcDIsIHAzLCBwNCkpCi0gICAgICAgICAgcmVzLnB1c2gocXVhZCk7Ci0gICAgICB9Ci0gICAgICB0aGlzLnN0YWNrVHJhbnNmb3JtQW5kUHJvY2Vzc1F1YWRzXygxLCBoYW5kbGVRdWFkLCBmYWxzZSk7Ci0gICAgICB2YXIgZSA9IG5ldyBFdmVudCgnc2VsZWN0aW9uY2hhbmdlJyk7Ci0gICAgICBlLnF1YWRzID0gcmVzOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFF1YWRTdGFja1ZpZXc6IFF1YWRTdGFja1ZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvc29ydGFibGVfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zb3J0YWJsZV90YWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjcyZjRiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zb3J0YWJsZV90YWJsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTg2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvYmFzZS91aS9zb3J0YWJsZV90YWJsZS5jc3MiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEEgc29ydGFibGUgdGFibGUgd2l0aCBoaXN0b3J5IHN0YXRlcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmIudWknLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIFNvcnRhYmxlVGFibGUgPSB0ci5iLnVpLmRlZmluZSgnc29ydGFibGUtdGFibGUnKTsKLQotICB2YXIgVU5TT1JURURfQVJST1cgPSAnJiN4MjVCRic7Ci0gIHZhciBTT1JUX0FTQ0VORElOR19BUlJPVyA9ICcmI3gyNUJFJzsKLSAgdmFyIFNPUlRfREVTQ0VORElOR19BUlJPVyA9ICcmI3gyNUI0JzsKLSAgdmFyIFNPUlRfRElSX0FTQ0VORElORyA9ICdkb3dud2FyZCc7Ci0gIHZhciBTT1JUX0RJUl9ERVNDRU5ESU5HID0gJ3Vwd2FyZCc7Ci0KLSAgU29ydGFibGVUYWJsZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MVGFibGVFbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc29ydGFibGUtdGFibGUnKTsKLSAgICAgIGlmICghdGhpcy50SGVhZCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdmFyIGhlYWRlclJvdyA9IHRoaXMudEhlYWQucm93c1swXTsKLSAgICAgIHZhciBjdXJyZW50U3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5zdGF0ZTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGVhZGVyUm93LmNlbGxzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGhlYWRlclJvdy5jZWxsc1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25JdGVtQ2xpY2tlZF8sIHRydWUpOwotICAgICAgICBoZWFkZXJSb3cuY2VsbHNbaV0uaW5uZXJIVE1MICs9ICcmbmJzcDsnICsgVU5TT1JURURfQVJST1c7Ci0gICAgICB9Ci0KLSAgICAgIGlmIChjdXJyZW50U3RhdGUgJiYgY3VycmVudFN0YXRlLnRhYmxlU29ydGluZykgewotICAgICAgICB2YXIgaGFzaENvZGUgPSB0aGlzLnNvcnRpbmdIYXNoQ29kZV8oKTsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZS50YWJsZVNvcnRpbmdbaGFzaENvZGVdKSB7Ci0gICAgICAgICAgdGhpcy5zb3J0KGN1cnJlbnRTdGF0ZS50YWJsZVNvcnRpbmdbaGFzaENvZGVdLmNvbCwKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0YXRlLnRhYmxlU29ydGluZ1toYXNoQ29kZV0uc29ydERpcmVjdGlvbik7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotCi0gICAgb25JdGVtQ2xpY2tlZF86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIC8vICd0aGlzJyByZWZlcnMgdG8gdGhlIHRhYmxlIGNlbGwgdGhhdCBoYXMgYmVlbiBjbGlja2VkLgotICAgICAgdmFyIGhlYWRlclJvdyA9IHRoaXMucGFyZW50Tm9kZTsKLSAgICAgIHZhciB0YWJsZSA9IGhlYWRlclJvdy5wYXJlbnROb2RlLnBhcmVudE5vZGU7Ci0gICAgICB2YXIgY29sSW5kZXggPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChoZWFkZXJSb3cuY2VsbHMpLmluZGV4T2YodGhpcyk7Ci0gICAgICB2YXIgc29ydERpcmVjdGlvbiA9IHRhYmxlLnNvcnQoY29sSW5kZXgpOwotICAgICAgdmFyIGN1cnJlbnRTdGF0ZSA9IGhpc3Rvcnkuc3RhdGU7Ci0gICAgICBpZiAoIWN1cnJlbnRTdGF0ZS50YWJsZVNvcnRpbmcpCi0gICAgICAgIGN1cnJlbnRTdGF0ZS50YWJsZVNvcnRpbmcgPSB7fTsKLSAgICAgIGN1cnJlbnRTdGF0ZS50YWJsZVNvcnRpbmdbdGFibGUuc29ydGluZ0hhc2hDb2RlXygpXSA9IHsKLSAgICAgICAgY29sOiBjb2xJbmRleCwKLSAgICAgICAgc29ydERpcmVjdGlvbjogc29ydERpcmVjdGlvbgotICAgICAgfTsKLSAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShjdXJyZW50U3RhdGUsICcnKTsKLSAgICB9LAotCi0gICAgc29ydDogZnVuY3Rpb24oY29sSW5kZXgsIG9wdF9zb3J0RGlyZWN0aW9uKSB7Ci0gICAgICB2YXIgaGVhZGVyUm93ID0gdGhpcy50SGVhZC5yb3dzWzBdOwotICAgICAgdmFyIGhlYWRlckNlbGwgPSBoZWFkZXJSb3cuY2VsbHNbY29sSW5kZXhdOwotCi0gICAgICBpZiAoIWhlYWRlckNlbGwuaGFzQXR0cmlidXRlKCdzb3J0JykpIHsKLSAgICAgICAgLy8gd2UgYXJlIGVpdGhlciBzb3J0aW5nIGEgbmV3IGNvbHVtbiAobm90IHByZXZpb3VzbHkgc29ydGVkKSwKLSAgICAgICAgLy8gb3Igc29ydGluZyBiYXNlZCBvbiBhIGdpdmVuIHNvcnQgZGlyZWN0aW9uIChvcHRfc29ydERpcmVjdGlvbikuCi0gICAgICAgIHJldHVybiBzb3J0QnlDb2x1bW5fKGhlYWRlclJvdywgaGVhZGVyQ2VsbCwgY29sSW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9zb3J0RGlyZWN0aW9uKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIHJlc29ydCB0aGUgY3VycmVudCBzb3J0IGNvbHVtbiBpbiB0aGUgb3RoZXIgZGlyZWN0aW9uCi0gICAgICAgIHJldHVybiByZXZlcnNlU29ydERpcmVjdGlvbl8oaGVhZGVyUm93LCBoZWFkZXJDZWxsLCBvcHRfc29ydERpcmVjdGlvbik7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gc29ydERpcmVjdGlvbjsKLSAgICB9LAotCi0gICAgLy8gQSB2ZXJ5IHNpbXBsZSBoYXNoIGZ1bmN0aW9uLCBiYXNlZCBvbmx5IG9uIHRoZSBoZWFkZXIgcm93IGFuZAotICAgIC8vIHRoZSB0YWJsZSBsb2NhdGlvbi4gSXQgaXMgdXNlZCB0byBjaGVjayB0aGF0IHRhYmxlIGxvYWRlZAotICAgIC8vIGNhbiBiZSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBoaXN0b3J5IGluZm9ybWF0aW9uLgotICAgIHNvcnRpbmdIYXNoQ29kZV86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuc29ydGluZ0hhc2hWYWx1ZV8pCi0gICAgICAgIHJldHVybiB0aGlzLnNvcnRpbmdIYXNoVmFsdWVfOwotICAgICAgdmFyIGhlYWRlclRleHQgPSB0aGlzLnRIZWFkLnJvd3NbMF0uaW5uZXJUZXh0OwotICAgICAgdmFyIGhhc2ggPSAwOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZWFkZXJUZXh0Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChoZWFkZXJUZXh0LmNoYXJDb2RlQXQoaSkgPCAxMjcpCi0gICAgICAgICAgaGFzaCArPSBoZWFkZXJUZXh0LmNoYXJDb2RlQXQoaSk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIHVzZSB0aGUgdGFibGUgaW5kZXggYXMgd2VsbCBpbiBjYXNlIHRoZSBzYW1lIHRhYmxlCi0gICAgICAvLyBpcyBkaXNwbGF5ZWQgbW9yZSB0aGFuIG9uY2Ugb24gYSBzaW5nbGUgcGFnZS4KLSAgICAgIHZhciB0YWJsZUluZGV4ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoCi0gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc29ydGFibGUtdGFibGUnKSkuaW5kZXhPZih0aGlzKTsKLSAgICAgIHRoaXMuc29ydGluZ0hhc2hWYWx1ZV8gPSB0YWJsZUluZGV4ICsgJycgKyBoYXNoOwotICAgICAgcmV0dXJuIHRoaXMuc29ydGluZ0hhc2hWYWx1ZV87Ci0gICAgfQotICB9OwotCi0gIGZ1bmN0aW9uIGNvbXBhcmVBc2NlbmRpbmdfKGEsIGIpIHsKLSAgICByZXR1cm4gY29tcGFyZV8oYSwgYik7Ci0gIH0KLQotICBmdW5jdGlvbiBjb21wYXJlRGVzY2VuZGluZ18oYSwgYikgewotICAgIHJldHVybiBjb21wYXJlXyhiLCBhKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNvbXBhcmVfKGEsIGIpIHsKLSAgICB2YXIgYTEgPSBwYXJzZUZsb2F0KGEpOwotICAgIHZhciBiMSA9IHBhcnNlRmxvYXQoYik7Ci0gICAgaWYgKGlzTmFOKGExKSAmJiBpc05hTihiMSkpCi0gICAgICByZXR1cm4gYS50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoYi50b1N0cmluZygpKTsKLSAgICBpZiAoaXNOYU4oYTEpKQotICAgICAgcmV0dXJuIC0xOwotICAgIGlmIChpc05hTihiMSkpCi0gICAgICByZXR1cm4gMTsKLSAgICByZXR1cm4gYTEgLSBiMTsKLSAgfQotCi0gIGZ1bmN0aW9uIHNvcnRCeUNvbHVtbl8oaGVhZGVyUm93LCBoZWFkZXJDZWxsLCBjb2xJbmRleCwgb3B0X3NvcnREaXJlY3Rpb24pIHsKLSAgICB2YXIgc29ydERpcmVjdGlvbiA9IG9wdF9zb3J0RGlyZWN0aW9uIHx8IFNPUlRfRElSX0FTQ0VORElORzsKLSAgICAvLyByZW1vdmUgc29ydCBhdHRyaWJ1dGUgZnJvbSBvdGhlciBoZWFkZXIgZWxlbWVudHMuCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZWFkZXJSb3cuY2VsbHMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmIChoZWFkZXJSb3cuY2VsbHNbaV0uZ2V0QXR0cmlidXRlKCdzb3J0JykpIHsKLSAgICAgICAgaGVhZGVyUm93LmNlbGxzW2ldLnJlbW92ZUF0dHJpYnV0ZSgnc29ydCcpOwotICAgICAgICB2YXIgaGVhZGVyU3RyID0gaGVhZGVyUm93LmNlbGxzW2ldLmlubmVySFRNTDsKLSAgICAgICAgaGVhZGVyUm93LmNlbGxzW2ldLmlubmVySFRNTCA9Ci0gICAgICAgICAgICBoZWFkZXJTdHIuc3Vic3RyKDAsIGhlYWRlclN0ci5sZW5ndGggLSAyKSArIFVOU09SVEVEX0FSUk9XOwotICAgICAgfQotICAgIH0KLQotICAgIHZhciBoZWFkZXJTdHIgPSBoZWFkZXJSb3cuY2VsbHNbY29sSW5kZXhdLmlubmVySFRNTDsKLSAgICBoZWFkZXJDZWxsLmlubmVySFRNTCA9IGhlYWRlclN0ci5zdWJzdHIoMCwgaGVhZGVyU3RyLmxlbmd0aCAtIDIpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzb3J0RGlyZWN0aW9uID09IFNPUlRfRElSX0FTQ0VORElORyA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9BU0NFTkRJTkdfQVJST1cgOiBTT1JUX0RFU0NFTkRJTkdfQVJST1cpOwotCi0gICAgaGVhZGVyQ2VsbC5zZXRBdHRyaWJ1dGUoJ3NvcnQnLCBzb3J0RGlyZWN0aW9uKTsKLSAgICB2YXIgcm93cyA9IGhlYWRlclJvdy5wYXJlbnROb2RlLnBhcmVudE5vZGUudEJvZGllc1swXS5yb3dzOwotICAgIHZhciB0ZW1wUm93cyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgewotICAgICAgdGVtcFJvd3MucHVzaChbcm93c1tpXS5jZWxsc1tjb2xJbmRleF0uaW5uZXJUZXh0LCByb3dzW2ldXSk7Ci0gICAgfQotCi0gICAgdGVtcFJvd3Muc29ydChzb3J0RGlyZWN0aW9uID09IFNPUlRfRElSX0FTQ0VORElORyA/Ci0gICAgICAgICAgICAgICAgICAgICAgY29tcGFyZUFzY2VuZGluZ18gOiBjb21wYXJlRGVzY2VuZGluZ18pOwotCi0gICAgZm9yICh2YXIgaiA9IDA7IGogPCB0ZW1wUm93cy5sZW5ndGg7IGorKykgewotICAgICAgaGVhZGVyUm93LnBhcmVudE5vZGUucGFyZW50Tm9kZS50Qm9kaWVzWzBdLgotICAgICAgICAgIGFwcGVuZENoaWxkKHRlbXBSb3dzW2pdWzFdKTsKLSAgICB9Ci0gICAgcmV0dXJuIHNvcnREaXJlY3Rpb247Ci0gIH0KLQotICBmdW5jdGlvbiByZXZlcnNlU29ydERpcmVjdGlvbl8oaGVhZGVyUm93LCBoZWFkZXJDZWxsLCBvcHRfc29ydERpcmVjdGlvbikgewotICAgIHZhciBzb3J0RGlyZWN0aW9uID0gaGVhZGVyQ2VsbC5nZXRBdHRyaWJ1dGUoJ3NvcnQnKTsKLSAgICAvLyBpZiBpdCBpcyBhbHJlYWR5IHNvcnRlZCBpbiB0aGUgY29ycmVjdCBkaXJlY3Rpb24sIGRvIG5vdGhpbmcuCi0gICAgaWYgKG9wdF9zb3J0RGlyZWN0aW9uID09IHNvcnREaXJlY3Rpb24pCi0gICAgICByZXR1cm4gc29ydERpcmVjdGlvbjsKLSAgICBzb3J0RGlyZWN0aW9uID0gc29ydERpcmVjdGlvbiA9PSBTT1JUX0RJUl9ERVNDRU5ESU5HID8KLSAgICAgICAgICAgICAgICAgICAgU09SVF9ESVJfQVNDRU5ESU5HIDogU09SVF9ESVJfREVTQ0VORElORzsKLSAgICBoZWFkZXJDZWxsLnNldEF0dHJpYnV0ZSgnc29ydCcsIHNvcnREaXJlY3Rpb24pOwotICAgIHZhciBoZWFkZXJTdHIgPSBoZWFkZXJDZWxsLmlubmVySFRNTDsKLSAgICBoZWFkZXJDZWxsLmlubmVySFRNTCA9IGhlYWRlclN0ci5zdWJzdHIoMCwgaGVhZGVyU3RyLmxlbmd0aCAtIDIpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzb3J0RGlyZWN0aW9uID09IFNPUlRfRElSX0FTQ0VORElORyA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9BU0NFTkRJTkdfQVJST1cgOiBTT1JUX0RFU0NFTkRJTkdfQVJST1cpOwotICAgIC8vIGluc3RlYWQgb2YgcmUtc29ydGluZywgd2UgcmV2ZXJzZSB0aGUgc29ydGVkIHJvd3MuCi0gICAgdmFyIGhlYWRlclJvdyA9IGhlYWRlckNlbGwucGFyZW50Tm9kZTsKLSAgICB2YXIgdGJvZHkgPSBoZWFkZXJSb3cucGFyZW50Tm9kZS5wYXJlbnROb2RlLnRCb2RpZXNbMF07Ci0gICAgdmFyIHRlbXBSb3dzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0Ym9keS5yb3dzLmxlbmd0aDsgaSsrKQotICAgICAgdGVtcFJvd3NbdGVtcFJvd3MubGVuZ3RoXSA9IHRib2R5LnJvd3NbaV07Ci0gICAgZm9yICh2YXIgaSA9IHRlbXBSb3dzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKQotICAgICAgdGJvZHkuYXBwZW5kQ2hpbGQodGVtcFJvd3NbaV0pOwotICAgIHJldHVybiBzb3J0RGlyZWN0aW9uOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBTb3J0YWJsZVRhYmxlOiBTb3J0YWJsZVRhYmxlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3NvcnRhYmxlX3RhYmxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zb3J0YWJsZV90YWJsZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjMjI3N2MuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3NvcnRhYmxlX3RhYmxlX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9zb3J0YWJsZV90YWJsZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU29ydGFibGVUYWJsZSA9IHRyLmIudWkuU29ydGFibGVUYWJsZTsKLQotICBmdW5jdGlvbiBjb252ZXJ0VG9IVE1MKHMpIHsKLSAgICB2YXIgcmVzID0gJyc7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICByZXMgKz0gcy5jaGFyQ29kZUF0KGkpID4gMTI3ID8KLSAgICAgICAgICAgICAnJiN4JyArIHMuY2hhckNvZGVBdChpKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSArICc7JyA6Ci0gICAgICAgICAgICAgcy5jaGFyQXQoaSk7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci0gIH0KLQotICBmdW5jdGlvbiBTaW1wbGVUYWJsZSgpIHsKLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOwotICAgIHZhciB0aGVhZCA9IHRhYmxlLmNyZWF0ZVRIZWFkKCk7Ci0gICAgdmFyIHRmb290ID0gdGFibGUuY3JlYXRlVEZvb3QoKTsKLSAgICB2YXIgdGJvZHkgPSB0YWJsZS5jcmVhdGVUQm9keSgpOwotICAgIHZhciBoZWFkZXJSb3cgPSB0aGVhZC5pbnNlcnRSb3coMCk7Ci0gICAgaGVhZGVyUm93Lmluc2VydENlbGwoMCkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ05hbWUnKSk7Ci0gICAgaGVhZGVyUm93Lmluc2VydENlbGwoMSkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1ZhbHVlJykpOwotICAgIHZhciByb3cxID0gdGJvZHkuaW5zZXJ0Um93KDApOwotICAgIHJvdzEuaW5zZXJ0Q2VsbCgwKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnRmlyc3QnKSk7Ci0gICAgcm93MS5pbnNlcnRDZWxsKDEpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcyJykpOwotICAgIHZhciByb3cyID0gdGJvZHkuaW5zZXJ0Um93KDEpOwotICAgIHJvdzIuaW5zZXJ0Q2VsbCgwKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnTWlkZGxlJykpOwotICAgIHJvdzIuaW5zZXJ0Q2VsbCgxKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnMTgnKSk7Ci0gICAgdmFyIHJvdzMgPSB0Ym9keS5pbnNlcnRSb3coMik7Ci0gICAgcm93My5pbnNlcnRDZWxsKDApLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdMYXN0JykpOwotICAgIHJvdzMuaW5zZXJ0Q2VsbCgxKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnMScpKTsKLSAgICB2YXIgZm9vdGVyUm93ID0gdGZvb3QuaW5zZXJ0Um93KDApOwotICAgIGZvb3RlclJvdy5pbnNlcnRDZWxsKDApLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdBdmVyYWdlJykpOwotICAgIGZvb3RlclJvdy5pbnNlcnRDZWxsKDEpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCc3JykpOwotICAgIHJldHVybiB0YWJsZTsKLSAgfQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gU2ltcGxlVGFibGUoKTsKLSAgICBTb3J0YWJsZVRhYmxlLmRlY29yYXRlKHRhYmxlKTsKLSAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUJGOycpOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUJGOycpOwotICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTWlkZGxlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcxOCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTGFzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMScpOwotICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KLSAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc29ydE9uQWxwaGFiZXRpY0NvbHVtbkFzY2VuZGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0YWJsZSA9IFNpbXBsZVRhYmxlKCk7Ci0gICAgU29ydGFibGVUYWJsZS5kZWNvcmF0ZSh0YWJsZSk7Ci0gICAgdGFibGUuc29ydCgwIC8qLCAnZG93bndhcmQnICovKTsKLSAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUJFOycpOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUJGOycpOwotICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTGFzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMScpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTWlkZGxlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcxOCcpOwotICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KLSAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc29ydE9uQWxwaGFiZXRpY0NvbHVtbkRlc2NlbmRpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBTaW1wbGVUYWJsZSgpOwotICAgIFNvcnRhYmxlVGFibGUuZGVjb3JhdGUodGFibGUpOwotICAgIHRhYmxlLnNvcnQoMCAsICd1cHdhcmQnKTsKLSAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUI0OycpOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUJGOycpOwotICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1swXS5pbm5lclRleHQsICdMYXN0Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOwotICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KLSAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc29ydE9uTnVtZXJpY0NvbHVtbkFzY2VuZGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0YWJsZSA9IFNpbXBsZVRhYmxlKCk7Ci0gICAgU29ydGFibGVUYWJsZS5kZWNvcmF0ZSh0YWJsZSk7Ci0gICAgdGFibGUuc29ydCgxIC8qLCAnZG93bndhcmQnICovKTsKLSAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUJGOycpOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUJFOycpOwotICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdMYXN0Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1sxXS5pbm5lclRleHQsICcxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTWlkZGxlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcxOCcpOwotICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KLSAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc29ydE9uTnVtZXJpY0NvbHVtbkRlc2NlbmRpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBTaW1wbGVUYWJsZSgpOwotICAgIFNvcnRhYmxlVGFibGUuZGVjb3JhdGUodGFibGUpOwotICAgIHRhYmxlLnNvcnQoMSAsICd1cHdhcmQnKTsKLSAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUJGOycpOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUI0OycpOwotICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTGFzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMScpOwotICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KLSAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc29ydE9uQUNvbHVtblRoZW5SZXZlcnNlSXQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBTaW1wbGVUYWJsZSgpOwotICAgIFNvcnRhYmxlVGFibGUuZGVjb3JhdGUodGFibGUpOwotICAgIHRhYmxlLnNvcnQoMCk7Ci0gICAgdmFyIGhlYWRlclJvdyA9IHRhYmxlLnRIZWFkLnJvd3NbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzBdLmlubmVySFRNTCksCi0gICAgICAgICAgICAgICAgICdOYW1lJm5ic3A7JiN4MjVCRTsnKTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMV0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ1ZhbHVlJm5ic3A7JiN4MjVCRjsnKTsKLSAgICB2YXIgdGFibGVSb3dzID0gdGFibGUudEJvZGllc1swXS5yb3dzOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnRmlyc3QnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzInKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0xhc3QnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzEnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ01pZGRsZScpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMTgnKTsKLSAgICAvLyB0aGUgZm9vdGVyIHNob3VsZCBuZXZlciBjaGFuZ2UuCi0gICAgdmFyIGZvb3RlclJvdyA9IHRhYmxlLnRGb290LnJvd3NbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGZvb3RlclJvdy5jZWxsc1swXS5pbm5lclRleHQsICdBdmVyYWdlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGZvb3RlclJvdy5jZWxsc1sxXS5pbm5lclRleHQsICc3Jyk7Ci0gICAgdGFibGUuc29ydCgwKTsKLSAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUI0OycpOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUJGOycpOwotICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1swXS5pbm5lclRleHQsICdMYXN0Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOwotICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KLSAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc29ydE9uQUNvbHVtblRoZW5PbkFub3RoZXJDb2x1bW4nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBTaW1wbGVUYWJsZSgpOwotICAgIFNvcnRhYmxlVGFibGUuZGVjb3JhdGUodGFibGUpOwotICAgIHRhYmxlLnNvcnQoMCAsICd1cHdhcmQnKTsKLSAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKLSAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUI0OycpOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUJGOycpOwotICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1swXS5pbm5lclRleHQsICdMYXN0Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOwotICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KLSAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKLSAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKLSAgICB0YWJsZS5zb3J0KDEgLyosICdkb3dud2FyZCcgKi8pOwotICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOwotICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAotICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QkY7Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCi0gICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QkU7Jyk7Ci0gICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0xhc3QnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzEnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7Ci0gICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgotICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOwotICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOwotICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvc3VuYnVyc3RfY2hhcnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zdW5idXJzdF9jaGFydC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjRmYjc3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zdW5idXJzdF9jaGFydC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2QzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NoYXJ0X2Jhc2UuaHRtbCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9iYXNlL3VpL3N1bmJ1cnN0X2NoYXJ0LmNzcyI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51aScsIGZ1bmN0aW9uKCkgewotICB2YXIgQ2hhcnRCYXNlID0gdHIuYi51aS5DaGFydEJhc2U7Ci0gIHZhciBnZXRDb2xvck9mS2V5ID0gdHIuYi51aS5nZXRDb2xvck9mS2V5OwotCi0gIHZhciBNSU5fUkFESVVTID0gMTAwOwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBTdW5idXJzdENoYXJ0ID0gdHIuYi51aS5kZWZpbmUoJ3N1bmJ1cnN0LWNoYXJ0JywgQ2hhcnRCYXNlKTsKLQotICBTdW5idXJzdENoYXJ0LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IENoYXJ0QmFzZS5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICBDaGFydEJhc2UucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3N1bmJ1cnN0LWNoYXJ0Jyk7Ci0KLSAgICAgIHRoaXMuZGF0YV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnNlcmllc0tleXNfID0gdW5kZWZpbmVkOwotCi0gICAgICB0aGlzLnlEb21haW5NaW5fID0gMC4wOwotICAgICAgdGhpcy55RG9tYWluTWF4XyA9IDAuMDsKLSAgICAgIHRoaXMueERvbWFpblNjYWxlXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMueURvbWFpblNjYWxlXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMucmFkaXVzXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuYXJjXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuc2VsZWN0ZWROb2RlXyA9IG51bGw7Ci0gICAgICB0aGlzLnZpc18gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLm5vZGVzXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMubWluWF8gPSAwLjA7Ci0gICAgICB0aGlzLm1heFhfID0gMS4wOwotICAgICAgdGhpcy5taW5ZXyA9IDAuMDsKLSAgICAgIHRoaXMuY2xpY2tlZFlfID0gMDsKLQotICAgICAgdmFyIGNoYXJ0QXJlYVNlbCA9IGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpOwotICAgICAgdGhpcy5sZWdlbmRTZWxfID0gY2hhcnRBcmVhU2VsLmFwcGVuZCgnZycpOwotCi0gICAgICB2YXIgcGllR3JvdXBTZWwgPSBjaGFydEFyZWFTZWwuYXBwZW5kKCdnJykKLSAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ3BpZS1ncm91cCcpOwotICAgICAgdGhpcy5waWVHcm91cF8gPSBwaWVHcm91cFNlbC5ub2RlKCk7Ci0KLSAgICAgIHRoaXMuYmFja1NlbF8gPSBwaWVHcm91cFNlbC5hcHBlbmQoJ2cnKTsKLQotCi0gICAgICB0aGlzLnBhdGhzR3JvdXBfID0gcGllR3JvdXBTZWwuYXBwZW5kKCdnJykKLSAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ3BhdGhzJykKLSAgICAgICAgLm5vZGUoKTsKLSAgICB9LAotCi0gICAgZ2V0IGRhdGEoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5kYXRhXzsKLSAgICB9LAotCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge0RhdGF9IERhdGEgZm9yIHRoZSBjaGFydCwgd2hlcmUgZGF0YSBtdXN0IGJlIG9mIHRoZQotICAgICAqIGZvcm0ge2NhdGVnb3J5OiBzdHIsIG5hbWU6IHN0ciwgKHNpemU6IG51bWJlciBvciBjaGlsZHJlbjogW10pfSAuCi0gICAgICovCi0gICAgc2V0IGRhdGEoZGF0YSkgewotICAgICAgdGhpcy5kYXRhXyA9IGRhdGE7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgbWFyZ2luKCkgewotICAgICAgdmFyIG1hcmdpbiA9IHt0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGxlZnQ6IDB9OwotICAgICAgaWYgKHRoaXMuY2hhcnRUaXRsZV8pCi0gICAgICAgIG1hcmdpbi50b3AgKz0gNDA7Ci0gICAgICByZXR1cm4gbWFyZ2luOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0ZWROb2RlSUQoaWQpIHsKLSAgICAgIHRoaXMuem9vbVRvSURfKGlkKTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGVkTm9kZUlEKCkgewotICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROb2RlXyAhPSBudWxsKQotICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE5vZGVfLmlkOwotICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3RlZE5vZGUoKSB7Ci0gICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVfICE9IG51bGwpCi0gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTm9kZV87Ci0gICAgICByZXR1cm4gbnVsbDsKLSAgICB9LAotCi0gICAgZ2V0TWluU2l6ZTogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIXRyLmIudWkuaXNFbGVtZW50QXR0YWNoZWRUb0RvY3VtZW50KHRoaXMpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBtZWFzdXJlIHdoZW4gdW5hdHRhY2hlZCcpOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLQotICAgICAgdmFyIHRpdGxlV2lkdGggPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoCi0gICAgICAgICAgJyN0aXRsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOwotICAgICAgdmFyIG1hcmdpbiA9IHRoaXMubWFyZ2luOwotICAgICAgdmFyIG1hcmdpbldpZHRoID0gbWFyZ2luLmxlZnQgKyBtYXJnaW4ucmlnaHQ7Ci0gICAgICB2YXIgbWFyZ2luSGVpZ2h0ID0gbWFyZ2luLnRvcCArIG1hcmdpbi5ib3R0b207Ci0KLSAgICAgIC8vIFRPRE8odm1pdXJhKTogQ2FsYyB0aGlzIHdoZW4gd2UncmUgZG9uZSB3aXRoIGxheW91dC4KLSAgICAgIHJldHVybiB7Ci0gICAgICAgIHdpZHRoOiA2MDAsCi0gICAgICAgIGhlaWdodDogNjAwCi0gICAgICB9OwotICAgIH0sCi0KLSAgICBnZXRMZWdlbmRLZXlzXzogZnVuY3Rpb24oKSB7Ci0gICAgICAvLyBUaGlzIGNsYXNzIGNyZWF0ZXMgaXRzIG93biBsZWdlbmQsIGluc3RlYWQgb2YgdXNpbmcgQ2hhcnRCYXNlLgotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgdXBkYXRlU2NhbGVzXzogZnVuY3Rpb24od2lkdGgsIGhlaWdodCkgewotICAgICAgaWYgKHRoaXMuZGF0YV8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotICAgIH0sCi0KLSAgICAvLyBJbnRlcnBvbGF0ZSB0aGUgc2NhbGVzIQotICAgIGFyY1R3ZWVuXzogZnVuY3Rpb24obWluWCwgbWF4WCwgbWluWSkgewotICAgICAgdmFyIHRoYXQgPSB0aGlzOwotICAgICAgdmFyIHhkLCB5ZCwgeXI7Ci0KLSAgICAgIGlmIChtaW5ZID4gMCkgewotICAgICAgICB4ZCA9IGQzLmludGVycG9sYXRlKHRoYXQueERvbWFpblNjYWxlXy5kb21haW4oKSwgW21pblgsIG1heFhdKTsKLSAgICAgICAgeWQgPSBkMy5pbnRlcnBvbGF0ZSgKLSAgICAgICAgICAgIHRoYXQueURvbWFpblNjYWxlXy5kb21haW4oKSwgW21pblksIHRoYXQueURvbWFpbk1heF9dKTsKLSAgICAgICAgeXIgPSBkMy5pbnRlcnBvbGF0ZSh0aGF0LnlEb21haW5TY2FsZV8ucmFuZ2UoKSwgWzUwLCB0aGF0LnJhZGl1c19dKTsKLSAgICAgIH0KLSAgICAgIGVsc2UgewotICAgICAgICB4ZCA9IGQzLmludGVycG9sYXRlKHRoYXQueERvbWFpblNjYWxlXy5kb21haW4oKSwgW21pblgsIG1heFhdKTsKLSAgICAgICAgeWQgPSBkMy5pbnRlcnBvbGF0ZSh0aGF0LnlEb21haW5TY2FsZV8uZG9tYWluKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoYXQueURvbWFpbk1pbl8sIHRoYXQueURvbWFpbk1heF9dKTsKLSAgICAgICAgeXIgPSBkMy5pbnRlcnBvbGF0ZSh0aGF0LnlEb21haW5TY2FsZV8ucmFuZ2UoKSwgWzUwLCB0aGF0LnJhZGl1c19dKTsKLSAgICAgIH0KLQotICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGkpIHsKLSAgICAgICAgcmV0dXJuIGkgPyBmdW5jdGlvbih0KSB7IHJldHVybiB0aGF0LmFyY18oZCk7IH0KLSAgICAgICAgICAgIDogZnVuY3Rpb24odCkgewotICAgICAgICAgICAgICB0aGF0LnhEb21haW5TY2FsZV8uZG9tYWluKHhkKHQpKTsKLSAgICAgICAgICAgICAgdGhhdC55RG9tYWluU2NhbGVfLmRvbWFpbih5ZCh0KSkucmFuZ2UoeXIodCkpOwotICAgICAgICAgICAgICByZXR1cm4gdGhhdC5hcmNfKGQpOwotICAgICAgICAgICAgfTsKLSAgICAgIH07Ci0gICAgfSwKLQotICAgIGdldE5vZGVCeUlkXzogZnVuY3Rpb24oaWQpIHsKLSAgICAgIGlmICghdGhpcy5ub2Rlc18pCi0gICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICBpZiAoaWQgPCAwIHx8IGlkID4gdGhpcy5ub2Rlc18ubGVuZ3RoKQotICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgcmV0dXJuIHRoaXMubm9kZXNfW2lkXTsKLSAgICB9LAotCi0gICAgem9vbU91dF86IGZ1bmN0aW9uKCkgewotICAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpOwotICAgIH0sCi0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCwgdGlsbCB0aGUgZ2l2ZW4gZGVwdGgsCi0gICAgLy8gdGhlIHRyZWUgaXMgbGluZWFyLiAoaS5lLCBhIHNpbmdsZSBzdHJpbmcgd2l0aCBubyBicmFuY2hlcy4pCi0gICAgem9vbVRvRGVwdGg6IGZ1bmN0aW9uKGRlcHRoKSB7Ci0gICAgICB2YXIgbm9kZSA9IHRoaXMuZGF0YV8ubm9kZXM7Ci0gICAgICB3aGlsZSAobm9kZS5kZXB0aCAhPT0gZGVwdGgpIHsKLSAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoICE9PSAxKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignem9vbVRvRGVwdGggcmVxdWlyZXMgdGhlIHRyZWUgdG8gYmUgbGluZWFyICcgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAndGlsbCB0aGUgc3BlY2lmaWVkIGRlcHRoLicpOwotICAgICAgICBub2RlID0gbm9kZS5jaGlsZHJlblswXTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLnpvb21Ub0lEXyhub2RlLmlkKTsKLSAgICB9LAotCi0gICAgem9vbVRvSURfOiBmdW5jdGlvbihpZCkgewotICAgICAgdmFyIGQgPSB0aGlzLmdldE5vZGVCeUlkXyhpZCk7Ci0KLSAgICAgIGlmIChkKSB7Ci0gICAgICAgIHRoaXMuY2xpY2tlZFlfID0gZC55OwotICAgICAgICB0aGlzLm1pblhfID0gZC54OwotICAgICAgICB0aGlzLm1heFhfID0gZC54ICsgZC5keDsKLSAgICAgICAgdGhpcy5taW5ZXyA9IGQueTsKLSAgICAgIH0KLSAgICAgIGVsc2UgewotICAgICAgICB0aGlzLmNsaWNrZWRZXyA9IC0xOwotICAgICAgICB0aGlzLm1pblhfID0gMC4wOwotICAgICAgICB0aGlzLm1heFhfID0gMS4wOwotICAgICAgICB0aGlzLm1pbllfID0gMC4wOwotICAgICAgfQotCi0gICAgICB0aGlzLnNlbGVjdGVkTm9kZV8gPSBkOwotICAgICAgdGhpcy5yZWRyYXdTZWdtZW50c18odGhpcy5taW5YXywgdGhpcy5tYXhYXywgdGhpcy5taW5ZXyk7Ci0gICAgICB2YXIgcGF0aCA9IHRoaXMudmlzXy5zZWxlY3RBbGwoJ3BhdGgnKTsKLQotICAgICAgcGF0aC50cmFuc2l0aW9uKCkKLSAgICAgICAgLmR1cmF0aW9uKDc1MCkKLSAgICAgICAgLmF0dHJUd2VlbignZCcsIHRoaXMuYXJjVHdlZW5fKHRoaXMubWluWF8sIHRoaXMubWF4WF8sIHRoaXMubWluWV8pKTsKLQotICAgICAgdGhpcy5zaG93QnJlYWRjcnVtYnNfKGQpOwotCi0gICAgICB2YXIgZSA9IG5ldyBFdmVudCgnbm9kZS1zZWxlY3RlZCcpOwotICAgICAgZS5ub2RlID0gZDsKLSAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChlKTsKLSAgICB9LAotCi0gICAgY2xpY2tfOiBmdW5jdGlvbihkKSB7Ci0gICAgICBpZiAoZDMuZXZlbnQuc2hpZnRLZXkpIHsKLSAgICAgICAgLy8gWm9vbSBwYXJ0aWFsbHkgb250byB0aGUgc2VsZWN0ZWQgcmFuZ2UKLSAgICAgICAgdmFyIGRpZmZfeCA9ICh0aGlzLm1heFhfIC0gdGhpcy5taW5YXykgKiAwLjU7Ci0gICAgICAgIHRoaXMubWluWF8gPSBkLnggKyBkLmR4ICogMC41IC0gZGlmZl94ICogMC41OwotICAgICAgICB0aGlzLm1pblhfID0gdGhpcy5taW5YXyA8IDAuMCA/IDAuMCA6IHRoaXMubWluWF87Ci0gICAgICAgIHRoaXMubWF4WF8gPSB0aGlzLm1pblhfICsgZGlmZl94OwotICAgICAgICB0aGlzLm1heFhfID0gdGhpcy5tYXhYXyA+IDEuMCA/IDEuMCA6IHRoaXMubWF4WF87Ci0gICAgICAgIHRoaXMubWluWF8gPSB0aGlzLm1heFhfIC0gZGlmZl94OwotCi0gICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlXyA9IGQ7Ci0gICAgICAgIHRoaXMucmVkcmF3U2VnbWVudHNfKHRoaXMubWluWF8sIHRoaXMubWF4WF8sIHRoaXMubWluWV8pOwotCi0gICAgICAgIHZhciBwYXRoID0gdGhpcy52aXNfLnNlbGVjdEFsbCgncGF0aCcpOwotICAgICAgICBwYXRoLnRyYW5zaXRpb24oKQotICAgICAgICAgIC5kdXJhdGlvbig3NTApCi0gICAgICAgICAgLmF0dHJUd2VlbignZCcsIHRoaXMuYXJjVHdlZW5fKHRoaXMubWluWF8sIHRoaXMubWF4WF8sIHRoaXMubWluWV8pKTsKLQotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuc2VsZWN0ZWROb2RlSUQgPSBkLmlkOwotCi0gICAgICB2YXIgZSA9IG5ldyBFdmVudCgnbm9kZS1jbGlja2VkJyk7Ci0gICAgICBlLm5vZGUgPSBkOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH0sCi0KLSAgICAvLyBHaXZlbiBhIG5vZGUgaW4gYSBwYXJ0aXRpb24gbGF5b3V0LCByZXR1cm4gYW4gYXJyYXkgb2YgYWxsIG9mIGl0cwotICAgIC8vIGFuY2VzdG9yIG5vZGVzLCBoaWdoZXN0IGZpcnN0LCBidXQgZXhjbHVkaW5nIHRoZSByb290LgotICAgIGdldEFuY2VzdG9yc186IGZ1bmN0aW9uKG5vZGUpIHsKLSAgICAgIHZhciBwYXRoID0gW107Ci0gICAgICB2YXIgY3VycmVudCA9IG5vZGU7Ci0gICAgICB3aGlsZSAoY3VycmVudC5wYXJlbnQpIHsKLSAgICAgICAgcGF0aC51bnNoaWZ0KGN1cnJlbnQpOwotICAgICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQ7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcGF0aDsKLSAgICB9LAotCi0gICAgc2hvd0JyZWFkY3J1bWJzXzogZnVuY3Rpb24oZCkgewotICAgICAgdmFyIHNlcXVlbmNlQXJyYXkgPSB0aGlzLmdldEFuY2VzdG9yc18oZCk7Ci0KLSAgICAgIC8vIEZhZGUgYWxsIHRoZSBzZWdtZW50cy4KLSAgICAgIHRoaXMudmlzXy5zZWxlY3RBbGwoJ3BhdGgnKQotICAgICAgICAuc3R5bGUoJ29wYWNpdHknLCBmdW5jdGlvbihkKSB7Ci0gICAgICAgICAgICByZXR1cm4gc2VxdWVuY2VBcnJheS5pbmRleE9mKGQpID49IDAgPyAwLjcgOiAxLjA7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIHZhciBlID0gbmV3IEV2ZW50KCdub2RlLWhpZ2hsaWdodGVkJyk7Ci0gICAgICBlLm5vZGUgPSBkOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOwotCi0gICAgICAvL2lmICh0aGlzLmRhdGFfLm9uTm9kZUhpZ2hsaWdodGVkICE9IHVuZGVmaW5lZCkKLSAgICAgIC8vICB0aGlzLmRhdGFfLm9uTm9kZUhpZ2hsaWdodGVkKHRoaXMsIGQpOwotICAgIH0sCi0KLSAgICBtb3VzZU92ZXJfOiBmdW5jdGlvbihkKSB7Ci0gICAgICB0aGlzLnNob3dCcmVhZGNydW1ic18oZCk7Ci0gICAgfSwKLQotICAgIC8vIFJlc3RvcmUgZXZlcnl0aGluZyB0byBmdWxsIG9wYWNpdHkgd2hlbiBtb3Zpbmcgb2ZmIHRoZQotICAgIC8vIHZpc3VhbGl6YXRpb24uCi0gICAgbW91c2VMZWF2ZV86IGZ1bmN0aW9uKGQpIHsKLSAgICAgIHZhciB0aGF0ID0gdGhpczsKLSAgICAgIC8vIEhpZGUgdGhlIGJyZWFkY3J1bWIgdHJhaWwKLSAgICAgIGlmICh0aGF0LnNlbGVjdGVkTm9kZV8gIT0gbnVsbCkKLSAgICAgICAgdGhhdC5zaG93QnJlYWRjcnVtYnNfKHRoYXQuc2VsZWN0ZWROb2RlXyk7Ci0gICAgICBlbHNlIHsKLSAgICAgICAgLy8gRGVhY3RpdmF0ZSBhbGwgc2VnbWVudHMgZHVyaW5nIHRyYW5zaXRpb24uCi0gICAgICAgIHRoYXQudmlzXy5zZWxlY3RBbGwoJ3BhdGgnKQotICAgICAgICAgIC5vbignbW91c2VvdmVyJywgbnVsbCk7Ci0KLSAgICAgICAgLy8gVHJhbnNpdGlvbiBlYWNoIHNlZ21lbnQgdG8gZnVsbCBvcGFjaXR5IGFuZCB0aGVuIHJlYWN0aXZhdGUgaXQuCi0gICAgICAgIHRoYXQudmlzXy5zZWxlY3RBbGwoJ3BhdGgnKQotICAgICAgICAgIC50cmFuc2l0aW9uKCkKLSAgICAgICAgICAuZHVyYXRpb24oMzAwKQotICAgICAgICAgIC5zdHlsZSgnb3BhY2l0eScsIDEpCi0gICAgICAgICAgLmVhY2goJ2VuZCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBkMy5zZWxlY3QodGhhdCkub24oJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKGQpIHsKLSAgICAgICAgICAgICAgICB0aGF0Lm1vdXNlT3Zlcl8oZCk7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8vIFVwZGF0ZSB2aXNpYmxlIHNlZ21lbnRzIGJldHdlZW4gbmV3IG1pbi9tYXggcmFuZ2VzLgotICAgIHJlZHJhd1NlZ21lbnRzXzogZnVuY3Rpb24obWluWCwgbWF4WCwgbWluWSkgewotICAgICAgdmFyIHRoYXQgPSB0aGlzOwotICAgICAgdmFyIHNjYWxlID0gbWF4WCAtIG1pblg7Ci0gICAgICB2YXIgdmlzaWJsZV9ub2RlcyA9IHRoYXQubm9kZXNfLmZpbHRlcihmdW5jdGlvbihkKSB7Ci0gICAgICAgIHJldHVybiBkLmRlcHRoICYmCi0gICAgICAgICAgICAoZC55ID49IG1pblkpICYmCi0gICAgICAgICAgICAoZC54IDwgbWF4WCkgJiYKLSAgICAgICAgICAgIChkLnggKyBkLmR4ID4gbWluWCkgJiYKLSAgICAgICAgICAgIChkLmR4IC8gc2NhbGUgPiAwLjAwMSk7Ci0gICAgICB9KTsKLSAgICAgIHZhciBwYXRoID0gdGhhdC52aXNfLmRhdGEoW3RoYXQuZGF0YV8ubm9kZXNdKS5zZWxlY3RBbGwoJ3BhdGgnKQotICAgICAgICAuZGF0YSh2aXNpYmxlX25vZGVzLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLmlkOyB9KTsKLQotICAgICAgcGF0aC5lbnRlcigpLmluc2VydCgnc3ZnOnBhdGgnKQotICAgICAgICAuYXR0cignZCcsIHRoYXQuYXJjXykKLSAgICAgICAgLmF0dHIoJ2ZpbGwtcnVsZScsICdldmVub2RkJykKLSAgICAgICAgLnN0eWxlKCdmaWxsJywgZnVuY3Rpb24oZGQpIHsgcmV0dXJuIGdldENvbG9yT2ZLZXkoZGQuY2F0ZWdvcnkpOyB9KQotICAgICAgICAuc3R5bGUoJ29wYWNpdHknLCAxLjApCi0gICAgICAgIC5vbignbW91c2VvdmVyJywgZnVuY3Rpb24oZCkgeyB0aGF0Lm1vdXNlT3Zlcl8oZCk7IH0pCi0gICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbihkKSB7IHRoYXQuY2xpY2tfKGQpOyB9KTsKLQotICAgICAgcGF0aC5leGl0KCkucmVtb3ZlKCk7Ci0gICAgICByZXR1cm4gcGF0aDsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIENoYXJ0QmFzZS5wcm90b3R5cGUudXBkYXRlQ29udGVudHNfLmNhbGwodGhpcyk7Ci0gICAgICBpZiAoIXRoaXMuZGF0YV8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHRoYXQgPSB0aGlzOwotCi0gICAgICAvLyBQYXJ0aXRpb24gZGF0YSBpbnRvIGQzIG5vZGVzLgotICAgICAgdmFyIHBhcnRpdGlvbiA9IGQzLmxheW91dC5wYXJ0aXRpb24oKQotICAgICAgICAgIC5zaXplKFsxLCAxXSkKLSAgICAgICAgICAudmFsdWUoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5zaXplOyB9KTsKLSAgICAgIHRoYXQubm9kZXNfID0gcGFydGl0aW9uLm5vZGVzKHRoYXQuZGF0YV8ubm9kZXMpOwotCi0gICAgICAvLyBBbGxvY2F0ZSBhbiBpZCB0byBlYWNoIG5vZGUuICBHYXRoZXIgYWxsIGNhdGVnb3JpZXMuCi0gICAgICB2YXIgY2F0ZWdvcnlEaWN0ID0ge307Ci0gICAgICB0aGF0Lm5vZGVzXy5mb3JFYWNoKGZ1bmN0aW9uIGYoZCwgaSkgewotICAgICAgICBkLmlkID0gaTsKLSAgICAgICAgY2F0ZWdvcnlEaWN0W2QuY2F0ZWdvcnldID0gbnVsbDsKLSAgICAgIH0pOwotCi0gICAgICAvLyBDcmVhdGUgbGVnZW5kLgotICAgICAgdmFyIGxpID0gewotICAgICAgICB3OiA4NSwgaDogMjAsIHM6IDMsIHI6IDMKLSAgICAgIH07Ci0KLSAgICAgIHZhciBsZWdlbmQgPSB0aGF0LmxlZ2VuZFNlbF8uYXBwZW5kKCdzdmc6c3ZnJykKLSAgICAgICAgICAuYXR0cignd2lkdGgnLCBsaS53KQotICAgICAgICAgIC5hdHRyKCdoZWlnaHQnLCBkMy5rZXlzKGNhdGVnb3J5RGljdCkubGVuZ3RoICogKGxpLmggKyBsaS5zKSk7Ci0KLSAgICAgIHZhciBnID0gbGVnZW5kLnNlbGVjdEFsbCgnZycpCi0gICAgICAgICAgLmRhdGEoZDMua2V5cyhjYXRlZ29yeURpY3QpKQotICAgICAgICAgIC5lbnRlcigpLmFwcGVuZCgnc3ZnOmcnKQotICAgICAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBmdW5jdGlvbihkLCBpKSB7Ci0gICAgICAgICAgICByZXR1cm4gJ3RyYW5zbGF0ZSgwLCcgKyBpICogKGxpLmggKyBsaS5zKSArICcpJzsKLSAgICAgICAgICB9KTsKLQotICAgICAgZy5hcHBlbmQoJ3N2ZzpyZWN0JykKLSAgICAgICAgICAuYXR0cigncngnLCBsaS5yKQotICAgICAgICAgIC5hdHRyKCdyeScsIGxpLnIpCi0gICAgICAgICAgLmF0dHIoJ3dpZHRoJywgbGkudykKLSAgICAgICAgICAuYXR0cignaGVpZ2h0JywgbGkuaCkKLSAgICAgICAgICAuc3R5bGUoJ2ZpbGwnLCBmdW5jdGlvbihkKSB7IHJldHVybiBnZXRDb2xvck9mS2V5KGQpOyB9KTsKLQotICAgICAgZy5hcHBlbmQoJ3N2Zzp0ZXh0JykKLSAgICAgICAgICAuYXR0cigneCcsIGxpLncgLyAyKQotICAgICAgICAgIC5hdHRyKCd5JywgbGkuaCAvIDIpCi0gICAgICAgICAgLmF0dHIoJ2R5JywgJzAuMzVlbScpCi0gICAgICAgICAgLmF0dHIoJ3RleHQtYW5jaG9yJywgJ21pZGRsZScpCi0gICAgICAgICAgLmF0dHIoJ2ZpbGwnLCAnI2ZmZicpCi0gICAgICAgICAgLmF0dHIoJ2ZvbnQtc2l6ZScsICcxMnB4JykKLSAgICAgICAgICAudGV4dChmdW5jdGlvbihkKSB7IHJldHVybiBkOyB9KTsKLQotICAgICAgLy8gQ3JlYXRlIHN1bmJ1cnN0IHZpc3VhbGl6YXRpb24uCi0gICAgICB2YXIgd2lkdGggPSB0aGF0LmNoYXJ0QXJlYVNpemUud2lkdGg7Ci0gICAgICB2YXIgaGVpZ2h0ID0gdGhhdC5jaGFydEFyZWFTaXplLmhlaWdodDsKLSAgICAgIHRoYXQucmFkaXVzXyA9IE1hdGgubWF4KE1JTl9SQURJVVMsIE1hdGgubWluKHdpZHRoLCBoZWlnaHQpIC8gMik7Ci0KLSAgICAgIGQzLnNlbGVjdCh0aGF0LnBpZUdyb3VwXykuYXR0cigKLSAgICAgICAgICAndHJhbnNmb3JtJywKLSAgICAgICAgICAndHJhbnNsYXRlKCcgKyB3aWR0aCAvIDIgKyAnLCcgKyBoZWlnaHQgLyAyICsgJyknKTsKLQotICAgICAgdGhhdC5zZWxlY3RlZE5vZGVfID0gbnVsbDsKLQotICAgICAgdmFyIGRlcHRoID0gMS4wICsgZDMubWF4KHRoYXQubm9kZXNfLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLmRlcHRoOyB9KTsKLSAgICAgIHRoYXQueURvbWFpbk1pbl8gPSAxLjAgLyBkZXB0aDsKLSAgICAgIHRoYXQueURvbWFpbk1heF8gPSBNYXRoLm1pbihNYXRoLm1heChkZXB0aCwgMjApLCA1MCkgLyBkZXB0aDsKLQotICAgICAgdGhhdC54RG9tYWluU2NhbGVfID0gZDMuc2NhbGUubGluZWFyKCkKLSAgICAgICAgICAucmFuZ2UoWzAsIDIgKiBNYXRoLlBJXSk7Ci0KLSAgICAgIHRoYXQueURvbWFpblNjYWxlXyA9IGQzLnNjYWxlLnNxcnQoKQotICAgICAgICAgIC5kb21haW4oW3RoYXQueURvbWFpbk1pbl8sIHRoYXQueURvbWFpbk1heF9dKQotICAgICAgICAgIC5yYW5nZShbNTAsIHRoYXQucmFkaXVzX10pOwotCi0gICAgICB0aGF0LmFyY18gPSBkMy5zdmcuYXJjKCkKLSAgICAgICAgICAuc3RhcnRBbmdsZShmdW5jdGlvbihkKSB7Ci0gICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4oMiAqIE1hdGguUEksIHRoYXQueERvbWFpblNjYWxlXyhkLngpKSk7Ci0gICAgICAgICAgfSkKLSAgICAgICAgICAuZW5kQW5nbGUoZnVuY3Rpb24oZCkgewotICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsCi0gICAgICAgICAgICAgICAgTWF0aC5taW4oMiAqIE1hdGguUEksIHRoYXQueERvbWFpblNjYWxlXyhkLnggKyBkLmR4KSkpOwotICAgICAgICAgIH0pCi0gICAgICAgICAgLmlubmVyUmFkaXVzKGZ1bmN0aW9uKGQpIHsKLSAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCB0aGF0LnlEb21haW5TY2FsZV8oKGQueSkpKTsKLSAgICAgICAgICB9KQotICAgICAgICAgIC5vdXRlclJhZGl1cyhmdW5jdGlvbihkKSB7Ci0gICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgdGhhdC55RG9tYWluU2NhbGVfKChkLnkgKyBkLmR5KSkpOwotICAgICAgICAgIH0pOwotCi0KLSAgICAgIC8vIEJvdW5kaW5nIGNpcmNsZSB1bmRlcm5lYXRoIHRoZSBzdW5idXJzdCwgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZGV0ZWN0Ci0gICAgICAvLyB3aGVuIHRoZSBtb3VzZSBsZWF2ZXMgdGhlIHBhcmVudCBnLgotICAgICAgdGhhdC5iYWNrU2VsXy5hcHBlbmQoJ3N2ZzpjaXJjbGUnKQotICAgICAgICAgIC5hdHRyKCdyJywgdGhhdC5yYWRpdXNfKQotICAgICAgICAgIC5zdHlsZSgnb3BhY2l0eScsIDAuMCkKLSAgICAgICAgICAub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7IHRoYXQuem9vbU91dF8oKTsgfSk7Ci0KLQotICAgICAgdGhhdC52aXNfID0gZDMuc2VsZWN0KHRoYXQucGF0aHNHcm91cF8pOwotICAgICAgdGhhdC5zZWxlY3RlZE5vZGVJRCA9IDA7Ci0gICAgICB0aGF0LnZpc18ub24oJ21vdXNlbGVhdmUnLCBmdW5jdGlvbihkKSB7IHRoYXQubW91c2VMZWF2ZV8oZCk7IH0pOwotICAgIH0sCi0KLSAgICB1cGRhdGVIaWdobGlnaHRfOiBmdW5jdGlvbigpIHsKLSAgICAgIENoYXJ0QmFzZS5wcm90b3R5cGUudXBkYXRlSGlnaGxpZ2h0Xy5jYWxsKHRoaXMpOwotICAgICAgLy8gVXBkYXRlIGNvbG9yIG9mIHBpZSBzZWdtZW50cy4KLSAgICAgIHZhciBwYXRoc0dyb3VwU2VsID0gZDMuc2VsZWN0KHRoaXMucGF0aHNHcm91cF8pOwotICAgICAgdmFyIHRoYXQgPSB0aGlzOwotICAgICAgcGF0aHNHcm91cFNlbC5zZWxlY3RBbGwoJy5hcmMnKS5lYWNoKGZ1bmN0aW9uKGQsIGkpIHsKLSAgICAgICAgdmFyIG9yaWdEYXRhID0gdGhhdC5kYXRhX1tpXTsKLSAgICAgICAgdmFyIGhpZ2hsaWdodGVkID0gb3JpZ0RhdGEubGFiZWwgPT0gdGhhdC5jdXJyZW50SGlnaGxpZ2h0ZWRMZWdlbmRLZXk7Ci0gICAgICAgIHZhciBjb2xvciA9IGdldENvbG9yT2ZLZXkob3JpZ0RhdGEubGFiZWwsIGhpZ2hsaWdodGVkKTsKLSAgICAgICAgdGhpcy5zdHlsZS5maWxsID0gZ2V0Q29sb3JPZktleShvcmlnRGF0YS5sYWJlbCwgaGlnaGxpZ2h0ZWQpOwotICAgICAgfSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgU3VuYnVyc3RDaGFydDogU3VuYnVyc3RDaGFydAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zdW5idXJzdF9jaGFydF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvc3VuYnVyc3RfY2hhcnRfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjRjNTlkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zdW5idXJzdF9jaGFydF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9zdW5idXJzdF9jaGFydC5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdzaW1wbGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY2hhcnQgPSBuZXcgdHIuYi51aS5TdW5idXJzdENoYXJ0KCk7Ci0gICAgY2hhcnQud2lkdGggPSA2MDA7Ci0gICAgY2hhcnQuaGVpZ2h0ID0gNjAwOwotICAgIGFzc2VydC5lcXVhbChjaGFydC5nZXRBdHRyaWJ1dGUoJ3dpZHRoJyksICc2MDAnKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hhcnQuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSwgJzYwMCcpOwotICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOwotICAgIHZhciBub2RlcyA9IHsKLSAgICAgIGNhdGVnb3J5OiAncm9vdCcsCi0gICAgICBuYW1lOiAnPEFsbCBUaHJlYWRzPicsCi0gICAgICBjaGlsZHJlbjogWwotICAgICAgICB7Ci0gICAgICAgICAgY2F0ZWdvcnk6ICdUaHJlYWQnLAotICAgICAgICAgIG5hbWU6ICdUaHJlYWQgMScsCi0gICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAotICAgICAgICAgICAgICBuYW1lOiAnZm9vKCknLAotICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKLSAgICAgICAgICAgICAgICAgIG5hbWU6ICdmb28oKScsCi0gICAgICAgICAgICAgICAgICBzaXplOiAxNTAKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKLSAgICAgICAgICAgICAgICAgIG5hbWU6ICdiYXIoKScsCi0gICAgICAgICAgICAgICAgICBzaXplOiAyMDAKLSAgICAgICAgICAgICAgICB9XQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAotICAgICAgICAgICAgICBuYW1lOiAnYmFyKCknLAotICAgICAgICAgICAgICBzaXplOiAyMDAKLSAgICAgICAgICAgIH1dCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjYXRlZ29yeTogJ1RocmVhZCcsCi0gICAgICAgICAgbmFtZTogJ1RocmVhZCAyJywKLSAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgewotICAgICAgICAgICAgICBjYXRlZ29yeTogJ0phdmEnLAotICAgICAgICAgICAgICBuYW1lOiAnSmF2YScsCi0gICAgICAgICAgICAgIHNpemU6IDEwMAotICAgICAgICAgICAgfV0KLSAgICAgICAgfV0KLSAgICB9OwotICAgIGNoYXJ0LmRhdGEgPSB7Ci0gICAgICBub2Rlczogbm9kZXMKLSAgICB9OwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjaGFydCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS90YWJsZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3RhYmxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNDczYzguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3RhYmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTk3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci0KLTwhLS0KLUBmaWxlb3ZlcnZpZXcgQSBjb250YWluZXIgdGhhdCBjb25zdHJ1Y3RzIGEgdGFibGUtbGlrZSBjb250YWluZXIuCi0tLT4KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYi11aS10YWJsZSI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgICA6aG9zdCB7Ci0gICAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICB9Ci0KLSAgICAgIHRhYmxlIHsKLSAgICAgICAgZm9udC1zaXplOiAxMnB4OwotCi0gICAgICAgIGZsZXg6IDEgMSBhdXRvOwotICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwotICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOwotICAgICAgICBib3JkZXItc3BhY2luZzogMDsKLSAgICAgICAgYm9yZGVyLXdpZHRoOiAwOwotICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBpbml0aWFsOwotICAgICAgfQotCi0gICAgICB0ciA+IHRkIHsKLSAgICAgICAgcGFkZGluZzogMnB4IDRweCAycHggNHB4OwotICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7Ci0gICAgICB9Ci0KLSAgICAgIHRyOmZvY3VzLAotICAgICAgdGQ6Zm9jdXMgewotICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkIHJnYmEoMCwwLDAsMC4xKTsKLSAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7Ci0gICAgICB9Ci0gICAgICB0cltzZWxlY3RlZF0sCi0gICAgICB0ZFtzZWxlY3RlZF0gewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAzLCAxOTksIDE2NSk7Ci0gICAgICB9Ci0KLSAgICAgIGJ1dHRvbi50b2dnbGUtYnV0dG9uIHsKLSAgICAgICAgaGVpZ2h0OiAxNXB4OwotICAgICAgICBsaW5lLWhlaWdodDogNjAlOwotICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgICAgICB3aWR0aDogMTAwJTsKLSAgICAgIH0KLQotICAgICAgYnV0dG9uID4gKiB7Ci0gICAgICAgIGhlaWdodDogMTVweDsKLSAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKLSAgICAgIH0KLQotICAgICAgdGQuYnV0dG9uLWNvbHVtbiB7Ci0gICAgICAgIHdpZHRoOiAzMHB4OwotICAgICAgfQotCi0gICAgICB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5zZW5zaXRpdmU6aG92ZXIgewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjOwotICAgICAgfQotCi0gICAgICB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCB7Ci0gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwotCi0gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Ci0gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gICAgICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwotCi0gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZmZmZmZmOwotICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTsKLSAgICAgIH0KLQotICAgICAgdGFibGUgPiB0Zm9vdCB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Ci0gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgfQotCi0gICAgICB0YWJsZSA+IHRib2R5LnJvdy1zZWxlY3Rpb24tbW9kZSA+IHRyOmhvdmVyW3NlbGVjdGVkXSwKLSAgICAgIHRhYmxlID4gdGJvZHkuY2VsbC1zZWxlY3Rpb24tbW9kZSA+IHRyID4gdGQ6aG92ZXJbc2VsZWN0ZWRdIHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MSwgMjE3LCAyMDIpOwotICAgICAgfQotICAgICAgdGFibGUgPiB0Ym9keS5yb3ctc2VsZWN0aW9uLW1vZGUgPiB0cjpob3Zlcjpub3QoLmVtcHR5LXJvdyksCi0gICAgICB0YWJsZSA+IHRib2R5LmNlbGwtc2VsZWN0aW9uLW1vZGUgPiB0cjpub3QoLmVtcHR5LXJvdykgPgotICAgICAgICAgIHRkLnN1cHBvcnRzLXNlbGVjdGlvbjpob3ZlciwKLSAgICAgIHRhYmxlID4gdGZvb3QgPiB0cjpob3ZlciB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTYKLSAgICAgIH0KLQotICAgICAgdGFibGUgPiB0Ym9keSA+IHRyLmVtcHR5LXJvdyA+IHRkIHsKLSAgICAgICAgY29sb3I6ICM2NjY7Ci0gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKLSAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwotICAgICAgfQotCi0gICAgICB0YWJsZSA+IHRib2R5Lmhhcy1mb290ZXIgPiB0cjpsYXN0LWNoaWxkID4gdGQgewotICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTsKLSAgICAgIH0KLQotICAgICAgdGFibGUgPiB0Zm9vdCA+IHRyOmZpcnN0LWNoaWxkID4gdGQgewotICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZmZmZjsKLSAgICAgIH0KLQotICAgICAgZXhwYW5kLWJ1dHRvbiB7Ci0gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICAgICAgY3Vyc29yOiBwb2ludGVyOwotICAgICAgICBmb250LXNpemU6IDlweDsKLSAgICAgICAgbWluLXdpZHRoOiA4cHg7Ci0gICAgICAgIG1heC13aWR0aDogOHB4OwotICAgICAgfQotCi0gICAgICAuYnV0dG9uLWV4cGFuZGVkIHsKLSAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPHRhYmxlPgotICAgICAgPHRoZWFkIGlkPSJoZWFkIj4KLSAgICAgIDwvdGhlYWQ+Ci0gICAgICA8dGJvZHkgaWQ9ImJvZHkiPgotICAgICAgPC90Ym9keT4KLSAgICAgIDx0Zm9vdCBpZD0iZm9vdCI+Ci0gICAgICA8L3Rmb290PgotICAgIDwvdGFibGU+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLSAgKGZ1bmN0aW9uKCkgewotICAgIHZhciBSSUdIVF9BUlJPVyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNWI2KTsKLSAgICB2YXIgVU5TT1JURURfQVJST1cgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCRik7Ci0gICAgdmFyIEFTQ0VORElOR19BUlJPVyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNUJFKTsKLSAgICB2YXIgREVTQ0VORElOR19BUlJPVyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNUI0KTsKLSAgICB2YXIgQkFTSUNfSU5ERU5UQVRJT04gPSA4OwotCi0gICAgUG9seW1lcih7Ci0gICAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8gPSBmYWxzZTsKLSAgICAgICAgdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8gPSBmYWxzZTsKLSAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPSB1bmRlZmluZWQ7Ci0gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gPSB1bmRlZmluZWQ7Ci0KLSAgICAgICAgdGhpcy50YWJsZUNvbHVtbnNfID0gW107Ci0gICAgICAgIHRoaXMudGFibGVSb3dzXyA9IFtdOwotICAgICAgICB0aGlzLnRhYmxlUm93c0luZm9fID0gW107Ci0gICAgICAgIHRoaXMudGFibGVGb290ZXJSb3dzXyA9IFtdOwotICAgICAgICB0aGlzLnNvcnRDb2x1bW5JbmRleF8gPSB1bmRlZmluZWQ7Ci0gICAgICAgIHRoaXMuc29ydERlc2NlbmRpbmdfID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXyA9IFtdOwotICAgICAgICB0aGlzLmhlYWRlckNlbGxzXyA9IFtdOwotICAgICAgICB0aGlzLnNob3dIZWFkZXJfID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5lbXB0eVZhbHVlXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXyA9ICdzdWJSb3dzJzsKLSAgICAgIH0sCi0KLSAgICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy4kLmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAgICdrZXlkb3duJywgdGhpcy5vbktleURvd25fLmJpbmQodGhpcyksIHRydWUpOwotICAgICAgfSwKLQotICAgICAgY2xlYXI6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXyA9IGZhbHNlOwotICAgICAgICB0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyA9IGZhbHNlOwotICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4XyA9IHVuZGVmaW5lZDsKLQotICAgICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICAgIHRoaXMudGFibGVDb2x1bW5zXyA9IFtdOwotICAgICAgICB0aGlzLnRhYmxlUm93c18gPSBbXTsKLSAgICAgICAgdGhpcy50YWJsZVJvd3NJbmZvXyA9IG5ldyBXZWFrTWFwKCk7Ci0gICAgICAgIHRoaXMudGFibGVGb290ZXJSb3dzXyA9IFtdOwotICAgICAgICB0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fID0gbmV3IFdlYWtNYXAoKTsKLSAgICAgICAgdGhpcy5zb3J0Q29sdW1uSW5kZXhfID0gdW5kZWZpbmVkOwotICAgICAgICB0aGlzLnNvcnREZXNjZW5kaW5nXyA9IGZhbHNlOwotICAgICAgICB0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc18gPSBbXTsKLSAgICAgICAgdGhpcy5oZWFkZXJDZWxsc18gPSBbXTsKLSAgICAgICAgdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXyA9ICdzdWJSb3dzJzsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBzaG93SGVhZGVyKCkgewotICAgICAgICByZXR1cm4gdGhpcy5zaG93SGVhZGVyXzsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBzaG93SGVhZGVyKHNob3dIZWFkZXIpIHsKLSAgICAgICAgdGhpcy5zaG93SGVhZGVyXyA9IHNob3dIZWFkZXI7Ci0gICAgICAgIHRoaXMuc2NoZWR1bGVSZWJ1aWxkSGVhZGVyc18oKTsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBzdWJSb3dzUHJvcGVydHlOYW1lKG5hbWUpIHsKLSAgICAgICAgdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXyA9IG5hbWU7Ci0gICAgICB9LAotCi0gICAgICBnZXQgZW1wdHlWYWx1ZSgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZW1wdHlWYWx1ZV87Ci0gICAgICB9LAotCi0gICAgICBzZXQgZW1wdHlWYWx1ZShlbXB0eVZhbHVlKSB7Ci0gICAgICAgIHZhciBwcmV2aW91c0VtcHR5VmFsdWUgPSB0aGlzLmVtcHR5VmFsdWVfOwotICAgICAgICB0aGlzLmVtcHR5VmFsdWVfID0gZW1wdHlWYWx1ZTsKLSAgICAgICAgaWYgKHRoaXMudGFibGVSb3dzXy5sZW5ndGggPT09IDAgJiYgZW1wdHlWYWx1ZSAhPT0gcHJldmlvdXNFbXB0eVZhbHVlKQotICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTsKLSAgICAgIH0sCi0KLSAgICAgIC8qKgotICAgICAgICogRGF0YSBvYmplY3RzIHNob3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgZmllbGRzOgotICAgICAgICogICBtYW5kYXRvcnk6IHRpdGxlLCB2YWx1ZQotICAgICAgICogICBvcHRpb25hbDogd2lkdGgge3N0cmluZ30sIGNtcCB7ZnVuY3Rpb259LCBjb2xTcGFuIHtudW1iZXJ9LAotICAgICAgICogICAgICAgICAgICAgc2hvd0V4cGFuZEJ1dHRvbnMge2Jvb2xlYW59LCB0ZXh0QWxpZ24ge3N0cmluZ30KLSAgICAgICAqCi0gICAgICAgKiBAcGFyYW0ge0FycmF5fSBjb2x1bW5zIEFuIGFycmF5IG9mIGRhdGEgb2JqZWN0cy4KLSAgICAgICAqLwotICAgICAgc2V0IHRhYmxlQ29sdW1ucyhjb2x1bW5zKSB7Ci0gICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGNvbHVtc24gd2l0aCBleHBhbmQgYnV0dG9ucy4uLgotICAgICAgICB2YXIgY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIGlmIChjb2x1bW5zW2ldLnNob3dFeHBhbmRCdXR0b25zKQotICAgICAgICAgICAgY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zLnB1c2goaSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGNvbHVtbnNXaXRoRXhwYW5kQnV0dG9ucy5sZW5ndGggPT09IDApIHsKLSAgICAgICAgICAvLyBGaXJzdCBjb2x1bW4gaWYgbm9uZSBoYXZlIHNwZWNpZmllZC4KLSAgICAgICAgICBjb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnMgPSBbMF07Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBTYW5pdHkgY2hlY2sgY29sdW1ucy4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGNvbEluZm8gPSBjb2x1bW5zW2ldOwotICAgICAgICAgIGlmIChjb2xJbmZvLndpZHRoID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgIHZhciBoYXNFeHBhbmRCdXR0b24gPSBjb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnMuaW5kZXhPZihpKSAhPT0gLTE7Ci0KLSAgICAgICAgICB2YXIgdyA9IGNvbEluZm8ud2lkdGg7Ci0gICAgICAgICAgaWYgKHcpIHsKLSAgICAgICAgICAgIGlmICgvXGQrcHgvLnRlc3QodykpIHsKLSAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKC9cZCslLy50ZXN0KHcpKSB7Ci0gICAgICAgICAgICAgIGlmIChoYXNFeHBhbmRCdXR0b24pIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbnMgY2Fubm90IGJlICUtc2l6ZWQgYW5kIGhvc3QgJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgYW4gZXhwYW5kIGJ1dHRvbicpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB3aWR0aCBzdHJpbmcnKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBDb21taXQgdGhlIGNoYW5nZS4KLSAgICAgICAgdGhpcy50YWJsZUNvbHVtbnNfID0gY29sdW1uczsKLSAgICAgICAgdGhpcy5oZWFkZXJDZWxsc18gPSBbXTsKLSAgICAgICAgdGhpcy5jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnNfID0gY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zOwotICAgICAgICB0aGlzLnNvcnRDb2x1bW5JbmRleCA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy5zY2hlZHVsZVJlYnVpbGRIZWFkZXJzXygpOwotCi0gICAgICAgIC8vIEJsb3cgYXdheSB0aGUgdGFibGUgcm93cywgdG9vLgotICAgICAgICB0aGlzLnRhYmxlUm93cyA9IHRoaXMudGFibGVSb3dzXzsKLSAgICAgIH0sCi0KLSAgICAgIGdldCB0YWJsZUNvbHVtbnMoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc187Ci0gICAgICB9LAotCi0gICAgICAvKioKLSAgICAgICAqIEBwYXJhbSB7QXJyYXl9IHJvd3MgQW4gYXJyYXkgb2YgJ3Jvdycgb2JqZWN0cyB3aXRoIHRoZSBmb2xsb3dpbmcKLSAgICAgICAqIGZpZWxkczoKLSAgICAgICAqICAgb3B0aW9uYWw6IHN1YlJvd3MgQW4gYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHNhbWUgJ3JvdycKLSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlLiBTZXQgc3ViUm93c1Byb3BlcnR5TmFtZSB0byB1c2UgYW4KLSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpdmUgZmllbGQgbmFtZS4KLSAgICAgICAqLwotICAgICAgc2V0IHRhYmxlUm93cyhyb3dzKSB7Ci0gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID0gdW5kZWZpbmVkOwotICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfID0gdW5kZWZpbmVkOwotICAgICAgICB0aGlzLm1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfKCk7Ci0gICAgICAgIHRoaXMudGFibGVSb3dzXyA9IHJvd3M7Ci0gICAgICAgIHRoaXMudGFibGVSb3dzSW5mb18gPSBuZXcgV2Vha01hcCgpOwotICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZEJvZHlfKCk7Ci0gICAgICB9LAotCi0gICAgICBnZXQgdGFibGVSb3dzKCkgewotICAgICAgICByZXR1cm4gdGhpcy50YWJsZVJvd3NfOwotICAgICAgfSwKLQotICAgICAgc2V0IGZvb3RlclJvd3Mocm93cykgewotICAgICAgICB0aGlzLnRhYmxlRm9vdGVyUm93c18gPSByb3dzOwotICAgICAgICB0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fID0gbmV3IFdlYWtNYXAoKTsKLSAgICAgICAgdGhpcy5zY2hlZHVsZVJlYnVpbGRGb290ZXJfKCk7Ci0gICAgICB9LAotCi0gICAgICBnZXQgZm9vdGVyUm93cygpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudGFibGVGb290ZXJSb3dzXzsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBzb3J0Q29sdW1uSW5kZXgobnVtYmVyKSB7Ci0gICAgICAgIGlmIChudW1iZXIgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHRoaXMuc29ydENvbHVtbkluZGV4XyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckFycm93c18oKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aCA8PSBudW1iZXIpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2x1bW4gbnVtYmVyICcgKyBudW1iZXIgKyAnIGlzIG91dCBvZiBib3VuZHMuJyk7Ci0gICAgICAgIGlmICghdGhpcy50YWJsZUNvbHVtbnNfW251bWJlcl0uY21wKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sdW1uICcgKyBudW1iZXIgKyAnIGRvZXMgbm90IGhhdmUgYSBjb21wYXJhdG9yLicpOwotCi0gICAgICAgIHRoaXMuc29ydENvbHVtbkluZGV4XyA9IG51bWJlcjsKLSAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJBcnJvd3NfKCk7Ci0gICAgICAgIHRoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBzb3J0Q29sdW1uSW5kZXgoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnNvcnRDb2x1bW5JbmRleF87Ci0gICAgICB9LAotCi0gICAgICBzZXQgc29ydERlc2NlbmRpbmcodmFsdWUpIHsKLSAgICAgICAgdmFyIG5ld1ZhbHVlID0gISF2YWx1ZTsKLQotICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuc29ydERlc2NlbmRpbmdfKSB7Ci0gICAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZ18gPSBuZXdWYWx1ZTsKLSAgICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckFycm93c18oKTsKLSAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZEJvZHlfKCk7Ci0gICAgICAgIH0KLSAgICAgIH0sCi0KLSAgICAgIGdldCBzb3J0RGVzY2VuZGluZygpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuc29ydERlc2NlbmRpbmdfOwotICAgICAgfSwKLQotICAgICAgdXBkYXRlSGVhZGVyQXJyb3dzXzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5oZWFkZXJDZWxsc18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBpZiAoIXRoaXMudGFibGVDb2x1bW5zX1tpXS5jbXApIHsKLSAgICAgICAgICAgIHRoaXMuaGVhZGVyQ2VsbHNfW2ldLnNpZGVDb250ZW50ID0gJyc7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGkgIT09IHRoaXMuc29ydENvbHVtbkluZGV4XykgewotICAgICAgICAgICAgdGhpcy5oZWFkZXJDZWxsc19baV0uc2lkZUNvbnRlbnQgPSBVTlNPUlRFRF9BUlJPVzsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICB0aGlzLmhlYWRlckNlbGxzX1tpXS5zaWRlQ29udGVudCA9IHRoaXMuc29ydERlc2NlbmRpbmdfID8KLSAgICAgICAgICAgIERFU0NFTkRJTkdfQVJST1cgOiBBU0NFTkRJTkdfQVJST1c7Ci0gICAgICAgIH0KLSAgICAgIH0sCi0KLSAgICAgIHNvcnRSb3dzXzogZnVuY3Rpb24ocm93cykgewotICAgICAgICByb3dzLnNvcnQoZnVuY3Rpb24ocm93QSwgcm93QikgewotICAgICAgICAgIGlmICh0aGlzLnNvcnREZXNjZW5kaW5nXykKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAoCi0gICAgICAgICAgICAgICAgcm93Qi51c2VyUm93LCByb3dBLnVzZXJSb3cpOwotICAgICAgICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAoCi0gICAgICAgICAgICAgICAgcm93QS51c2VyUm93LCByb3dCLnVzZXJSb3cpOwotICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICAvLyBTb3J0IGV4cGFuZGVkIHN1YiByb3dzIHJlY3Vyc2l2ZWx5LgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBpZiAocm93c1tpXS5pc0V4cGFuZGVkKQotICAgICAgICAgICAgdGhpcy5zb3J0Um93c18ocm93c1tpXVt0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSk7Ci0gICAgICAgIH0KLSAgICAgIH0sCi0KLSAgICAgIGdlbmVyYXRlSGVhZGVyQ29sdW1uc186IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLmhlYWRlckNlbGxzXyA9IFtdOwotICAgICAgICB0aGlzLiQuaGVhZC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgICBpZiAoIXRoaXMuc2hvd0hlYWRlcl8pCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciB0ciA9IHRoaXMuYXBwZW5kTmV3RWxlbWVudF8odGhpcy4kLmhlYWQsICd0cicpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciB0ZCA9IHRoaXMuYXBwZW5kTmV3RWxlbWVudF8odHIsICd0ZCcpOwotCi0gICAgICAgICAgdmFyIGhlYWRlckNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLXRhYmxlLWhlYWRlci1jZWxsJyk7Ci0KLSAgICAgICAgICBpZiAodGhpcy5zaG93SGVhZGVyKQotICAgICAgICAgICAgaGVhZGVyQ2VsbC5jZWxsVGl0bGUgPSB0aGlzLnRhYmxlQ29sdW1uc19baV0udGl0bGU7Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgaGVhZGVyQ2VsbC5jZWxsVGl0bGUgPSAnJzsKLQotICAgICAgICAgIC8vIElmIHRoZSB0YWJsZSBjYW4gYmUgc29ydGVkIGJ5IHRoaXMgY29sdW1uLCBhdHRhY2ggYSB0YXAgY2FsbGJhY2sKLSAgICAgICAgICAvLyB0byB0aGUgY29sdW1uLgotICAgICAgICAgIGlmICh0aGlzLnRhYmxlQ29sdW1uc19baV0uY21wKSB7Ci0gICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdzZW5zaXRpdmUnKTsKLSAgICAgICAgICAgIGhlYWRlckNlbGwudGFwQ2FsbGJhY2sgPSB0aGlzLmNyZWF0ZVNvcnRDYWxsYmFja18oaSk7Ci0gICAgICAgICAgICAvLyBTZXQgYXJyb3cgcG9zaXRpb24sIGRlcGVuZGluZyBvbiB0aGUgc29ydENvbHVtbkluZGV4LgotICAgICAgICAgICAgaWYgKHRoaXMuc29ydENvbHVtbkluZGV4XyA9PT0gaSkKLSAgICAgICAgICAgICAgaGVhZGVyQ2VsbC5zaWRlQ29udGVudCA9IHRoaXMuc29ydERlc2NlbmRpbmdfID8KLSAgICAgICAgICAgICAgICBERVNDRU5ESU5HX0FSUk9XIDogQVNDRU5ESU5HX0FSUk9XOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICBoZWFkZXJDZWxsLnNpZGVDb250ZW50ID0gVU5TT1JURURfQVJST1c7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoaGVhZGVyQ2VsbCk7Ci0gICAgICAgICAgdGhpcy5oZWFkZXJDZWxsc18ucHVzaChoZWFkZXJDZWxsKTsKLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAgYXBwbHlTaXplc186IGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAodGhpcy50YWJsZVJvd3NfLmxlbmd0aCA9PT0gMCAmJiAhdGhpcy5zaG93SGVhZGVyKQotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHJvd1RvUmVtb3ZlU2l6aW5nOwotICAgICAgICB2YXIgcm93VG9TaXplOwotICAgICAgICBpZiAodGhpcy5zaG93SGVhZGVyKSB7Ci0gICAgICAgICAgcm93VG9TaXplID0gdGhpcy4kLmhlYWQuY2hpbGRyZW5bMF07Ci0gICAgICAgICAgcm93VG9SZW1vdmVTaXppbmcgPSB0aGlzLiQuYm9keS5jaGlsZHJlblswXTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByb3dUb1NpemUgPSB0aGlzLiQuYm9keS5jaGlsZHJlblswXTsKLSAgICAgICAgICByb3dUb1JlbW92ZVNpemluZyA9IHRoaXMuJC5oZWFkLmNoaWxkcmVuWzBdOwotICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKHJvd1RvUmVtb3ZlU2l6aW5nICYmIHJvd1RvUmVtb3ZlU2l6aW5nLmNoaWxkcmVuW2ldKSB7Ci0gICAgICAgICAgICB2YXIgdGRUb1JlbW92ZVNpemluZyA9IHJvd1RvUmVtb3ZlU2l6aW5nLmNoaWxkcmVuW2ldOwotICAgICAgICAgICAgdGRUb1JlbW92ZVNpemluZy5zdHlsZS5taW5XaWR0aCA9ICcnOwotICAgICAgICAgICAgdGRUb1JlbW92ZVNpemluZy5zdHlsZS53aWR0aCA9ICcnOwotICAgICAgICAgIH0KLQotICAgICAgICAgIC8vIEFwcGx5IHNpemluZy4KLSAgICAgICAgICB2YXIgdGQgPSByb3dUb1NpemUuY2hpbGRyZW5baV07Ci0KLSAgICAgICAgICB2YXIgZGVsdGE7Ci0gICAgICAgICAgaWYgKHRoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXy5pbmRleE9mKGkpICE9PSAtMSkgewotICAgICAgICAgICAgdGQuc3R5bGUucGFkZGluZ0xlZnQgPSBCQVNJQ19JTkRFTlRBVElPTiArICdweCc7Ci0gICAgICAgICAgICBkZWx0YSA9IEJBU0lDX0lOREVOVEFUSU9OICsgJ3B4JzsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZGVsdGEgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgZnVuY3Rpb24gY2FsYyhiYXNlLCBkZWx0YSkgewotICAgICAgICAgICAgaWYgKGRlbHRhKQotICAgICAgICAgICAgICByZXR1cm4gJ2NhbGMoJyArIGJhc2UgKyAnIC0gJyArIGRlbHRhICsgJyknOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICByZXR1cm4gYmFzZTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB2YXIgdyA9IHRoaXMudGFibGVDb2x1bW5zX1tpXS53aWR0aDsKLSAgICAgICAgICBpZiAodykgewotICAgICAgICAgICAgaWYgKC9cZCtweC8udGVzdCh3KSkgewotICAgICAgICAgICAgICB0ZC5zdHlsZS5taW5XaWR0aCA9IGNhbGModywgZGVsdGEpOwotICAgICAgICAgICAgfSBlbHNlIGlmICgvXGQrJS8udGVzdCh3KSkgewotICAgICAgICAgICAgICB0ZC5zdHlsZS53aWR0aCA9IHc7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB3aWR0aCBzdHJpbmc6ICcgKyB3KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0sCi0KLSAgICAgIGNyZWF0ZVNvcnRDYWxsYmFja186IGZ1bmN0aW9uKGNvbHVtbk51bWJlcikgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIHByZXZpb3VzSW5kZXggPSB0aGlzLnNvcnRDb2x1bW5JbmRleDsKLSAgICAgICAgICB0aGlzLnNvcnRDb2x1bW5JbmRleCA9IGNvbHVtbk51bWJlcjsKLSAgICAgICAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gY29sdW1uTnVtYmVyKQotICAgICAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZyA9IGZhbHNlOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuc29ydERlc2NlbmRpbmcgPSAhdGhpcy5zb3J0RGVzY2VuZGluZzsKLSAgICAgICAgfS5iaW5kKHRoaXMpOwotICAgICAgfSwKLQotICAgICAgZ2VuZXJhdGVUYWJsZVJvd05vZGVzXzogZnVuY3Rpb24odGFibGVTZWN0aW9uLCB1c2VyUm93cywgcm93SW5mb01hcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudGF0aW9uLCBsYXN0QWRkZWRSb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRSb3dJbmZvKSB7Ci0gICAgICAgIGlmICh0aGlzLnNvcnRDb2x1bW5JbmRleF8gIT09IHVuZGVmaW5lZCAmJgotICAgICAgICAgICAgdGFibGVTZWN0aW9uID09PSB0aGlzLiQuYm9keSkgewotICAgICAgICAgIHVzZXJSb3dzID0gdXNlclJvd3Muc2xpY2UoKTsgLy8gRG9uJ3QgbWVzcyB3aXRoIHRoZSBpbnB1dCBkYXRhLgotICAgICAgICAgIHVzZXJSb3dzLnNvcnQoZnVuY3Rpb24ocm93QSwgcm93QikgewotICAgICAgICAgICAgdmFyIGMgPSB0aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAoCi0gICAgICAgICAgICAgICAgICByb3dBLCByb3dCKTsKLSAgICAgICAgICAgIGlmICh0aGlzLnNvcnREZXNjZW5kaW5nXykKLSAgICAgICAgICAgICAgYyA9IC1jOwotICAgICAgICAgICAgcmV0dXJuIGM7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlclJvd3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgdXNlclJvdyA9IHVzZXJSb3dzW2ldOwotICAgICAgICAgIHZhciByb3dJbmZvID0gdGhpcy5nZXRPckNyZWF0ZVJvd0luZm9Gb3JfKHJvd0luZm9NYXAsIHVzZXJSb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Um93SW5mbyk7Ci0gICAgICAgICAgdmFyIGh0bWxOb2RlID0gdGhpcy5nZXRIVE1MTm9kZUZvclJvd0luZm9fKAotICAgICAgICAgICAgICB0YWJsZVNlY3Rpb24sIHJvd0luZm8sIHJvd0luZm9NYXAsIGluZGVudGF0aW9uKTsKLQotICAgICAgICAgIGlmIChsYXN0QWRkZWRSb3cgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgLy8gUHV0IGZpcnN0IGludG8gdGhlIHRhYmxlLgotICAgICAgICAgICAgdGFibGVTZWN0aW9uLmluc2VydEJlZm9yZShodG1sTm9kZSwgdGFibGVTZWN0aW9uLmZpcnN0Q2hpbGQpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHNob3J0aGFuZCBmb3IgaW5zZXJ0QWZ0ZXIoaHRtbE5vZGUsIGxhc3RBZGRlZCkuCi0gICAgICAgICAgICB2YXIgbmV4dFNpYmxpbmdPZkxhc3RBZGRlZCA9IGxhc3RBZGRlZFJvdy5uZXh0U2libGluZzsKLSAgICAgICAgICAgIHRhYmxlU2VjdGlvbi5pbnNlcnRCZWZvcmUoaHRtbE5vZGUsIG5leHRTaWJsaW5nT2ZMYXN0QWRkZWQpOwotICAgICAgICAgIH0KLSAgICAgICAgICB0aGlzLnVwZGF0ZVRhYkluZGV4Rm9yVGFibGVSb3dOb2RlXyhodG1sTm9kZSk7Ci0KLSAgICAgICAgICBsYXN0QWRkZWRSb3cgPSBodG1sTm9kZTsKLSAgICAgICAgICBpZiAoIXJvd0luZm8uaXNFeHBhbmRlZCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgLy8gQXBwZW5kIHN1YnJvd3Mgbm93LgotICAgICAgICAgIGxhc3RBZGRlZFJvdyA9IHRoaXMuZ2VuZXJhdGVUYWJsZVJvd05vZGVzXygKLSAgICAgICAgICAgICAgdGFibGVTZWN0aW9uLCB1c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLCByb3dJbmZvTWFwLAotICAgICAgICAgICAgICBpbmRlbnRhdGlvbiArIDEsIGxhc3RBZGRlZFJvdywgcm93SW5mbyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGxhc3RBZGRlZFJvdzsKLSAgICAgIH0sCi0KLSAgICAgIGdldE9yQ3JlYXRlUm93SW5mb0Zvcl86IGZ1bmN0aW9uKHJvd0luZm9NYXAsIHVzZXJSb3csIHBhcmVudFJvd0luZm8pIHsKLSAgICAgICAgaWYgKHJvd0luZm9NYXAuaGFzKHVzZXJSb3cpKQotICAgICAgICAgIHJldHVybiByb3dJbmZvTWFwLmdldCh1c2VyUm93KTsKLQotICAgICAgICB2YXIgcm93SW5mbyA9IHsKLSAgICAgICAgICB1c2VyUm93OiB1c2VyUm93LAotICAgICAgICAgIGh0bWxOb2RlOiB1bmRlZmluZWQsCi0gICAgICAgICAgaXNFeHBhbmRlZDogdXNlclJvdy5pc0V4cGFuZGVkIHx8IGZhbHNlLAotICAgICAgICAgIHBhcmVudFJvd0luZm86IHBhcmVudFJvd0luZm8KLSAgICAgICAgfTsKLSAgICAgICAgcm93SW5mb01hcC5zZXQodXNlclJvdywgcm93SW5mbyk7Ci0gICAgICAgIHJldHVybiByb3dJbmZvOwotICAgICAgfSwKLQotICAgICAgZ2V0SFRNTE5vZGVGb3JSb3dJbmZvXzogZnVuY3Rpb24odGFibGVTZWN0aW9uLCByb3dJbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93SW5mb01hcCwgaW5kZW50YXRpb24pIHsKLSAgICAgICAgaWYgKHJvd0luZm8uaHRtbE5vZGUpCi0gICAgICAgICAgcmV0dXJuIHJvd0luZm8uaHRtbE5vZGU7Ci0KLSAgICAgICAgdmFyIElOREVOVF9TUEFDRSA9IGluZGVudGF0aW9uICogMTY7Ci0gICAgICAgIHZhciBJTkRFTlRfU1BBQ0VfTk9fQlVUVE9OID0gaW5kZW50YXRpb24gKiAxNiArIEJBU0lDX0lOREVOVEFUSU9OOwotICAgICAgICB2YXIgdHIgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKLSAgICAgICAgcm93SW5mby5odG1sTm9kZSA9IHRyOwotICAgICAgICByb3dJbmZvLmluZGVudGF0aW9uID0gaW5kZW50YXRpb247Ci0gICAgICAgIHRyLnJvd0luZm8gPSByb3dJbmZvOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDspIHsKLSAgICAgICAgICB2YXIgdGQgPSB0aGlzLmFwcGVuZE5ld0VsZW1lbnRfKHRyLCAndGQnKTsKLSAgICAgICAgICB0ZC5jb2x1bW5JbmRleCA9IGk7Ci0KLSAgICAgICAgICB2YXIgY29sdW1uID0gdGhpcy50YWJsZUNvbHVtbnNfW2ldOwotICAgICAgICAgIHZhciB2YWx1ZSA9IGNvbHVtbi52YWx1ZShyb3dJbmZvLnVzZXJSb3cpOwotICAgICAgICAgIHZhciBjb2xTcGFuID0gY29sdW1uLmNvbFNwYW4gPyBjb2x1bW4uY29sU3BhbiA6IDE7Ci0gICAgICAgICAgdGQuc3R5bGUuY29sU3BhbiA9IGNvbFNwYW47Ci0gICAgICAgICAgaWYgKGNvbHVtbi50ZXh0QWxpZ24pIHsKLSAgICAgICAgICAgIHRkLnN0eWxlLnRleHRBbGlnbiA9IGNvbHVtbi50ZXh0QWxpZ247Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgaWYgKHRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihpKSkKLSAgICAgICAgICAgIHRkLmNsYXNzTGlzdC5hZGQoJ3N1cHBvcnRzLXNlbGVjdGlvbicpOwotCi0gICAgICAgICAgaWYgKHRoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXy5pbmRleE9mKGkpICE9IC0xKSB7Ci0gICAgICAgICAgICBpZiAocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dICYmCi0gICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgICAgdGQuc3R5bGUucGFkZGluZ0xlZnQgPSBJTkRFTlRfU1BBQ0UgKyAncHgnOwotICAgICAgICAgICAgICB2YXIgZXhwYW5kQnV0dG9uID0gdGhpcy5hcHBlbmROZXdFbGVtZW50Xyh0ZCwKLSAgICAgICAgICAgICAgICAgICdleHBhbmQtYnV0dG9uJyk7Ci0gICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi50ZXh0Q29udGVudCA9IFJJR0hUX0FSUk9XOwotICAgICAgICAgICAgICBpZiAocm93SW5mby5pc0V4cGFuZGVkKQotICAgICAgICAgICAgICAgIGV4cGFuZEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdidXR0b24tZXhwYW5kZWQnKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHRkLnN0eWxlLnBhZGRpbmdMZWZ0ID0gSU5ERU5UX1NQQUNFX05PX0JVVFRPTiArICdweCc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpCi0gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZCh2YWx1ZSk7Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQodGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHZhbHVlKSk7Ci0KLSAgICAgICAgICBpICs9IGNvbFNwYW47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgbmVlZHNDbGlja0xpc3RlbmVyID0gZmFsc2U7Ci0gICAgICAgIGlmICh0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc18ubGVuZ3RoKQotICAgICAgICAgIG5lZWRzQ2xpY2tMaXN0ZW5lciA9IHRydWU7Ci0gICAgICAgIGVsc2UgaWYgKHRhYmxlU2VjdGlvbiA9PSB0aGlzLiQuYm9keSkKLSAgICAgICAgICBuZWVkc0NsaWNrTGlzdGVuZXIgPSB0cnVlOwotCi0gICAgICAgIGlmIChuZWVkc0NsaWNrTGlzdGVuZXIpIHsKLSAgICAgICAgICB0ci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICBpZiAoZS50YXJnZXQudGFnTmFtZSA9PSAnRVhQQU5ELUJVVFRPTicpIHsKLSAgICAgICAgICAgICAgdGhpcy5zZXRFeHBhbmRlZEZvclVzZXJSb3dfKAotICAgICAgICAgICAgICAgICAgdGFibGVTZWN0aW9uLCByb3dJbmZvTWFwLAotICAgICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93LCAhcm93SW5mby5pc0V4cGFuZGVkKTsKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBnZXRURChjdXIpIHsKLSAgICAgICAgICAgICAgaWYgKGN1ciA9PSB0cikKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dvYWgnKTsKLSAgICAgICAgICAgICAgaWYgKGN1ci5wYXJlbnRFbGVtZW50ID09PSB0cikKLSAgICAgICAgICAgICAgICByZXR1cm4gY3VyOwotICAgICAgICAgICAgICByZXR1cm4gZ2V0VEQoY3VyLnBhcmVudEVsZW1lbnQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pIHsKLSAgICAgICAgICAgICAgdmFyIGlzQWxyZWFkeVNlbGVjdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgIHZhciB0ZFRoYXRXYXNDbGlja2VkID0gZ2V0VEQoZS50YXJnZXQpOwotICAgICAgICAgICAgICBpZiAoIXRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKSB7Ci0gICAgICAgICAgICAgICAgaXNBbHJlYWR5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9PT0gcm93SW5mbzsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpc0FscmVhZHlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID09PSByb3dJbmZvOwotICAgICAgICAgICAgICAgIGlzQWxyZWFkeVNlbGVjdGVkICY9ICh0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfID09PQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZFRoYXRXYXNDbGlja2VkLmNvbHVtbkluZGV4KTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAoaXNBbHJlYWR5U2VsZWN0ZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dICYmCi0gICAgICAgICAgICAgICAgICAgIHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RXhwYW5kZWRGb3JVc2VyUm93XygKLSAgICAgICAgICAgICAgICAgICAgICB0YWJsZVNlY3Rpb24sIHJvd0luZm9NYXAsCi0gICAgICAgICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93LCAhcm93SW5mby5pc0V4cGFuZGVkKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5kaWRUYWJsZVJvd0luZm9HZXRDbGlja2VkXygKLSAgICAgICAgICAgICAgICAgICAgcm93SW5mbywgdGRUaGF0V2FzQ2xpY2tlZC5jb2x1bW5JbmRleCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGlmIChyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10gJiYKLSAgICAgICAgICAgICAgICAgIHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICB0aGlzLnNldEV4cGFuZGVkRm9yVXNlclJvd18oCi0gICAgICAgICAgICAgICAgICAgIHRhYmxlU2VjdGlvbiwgcm93SW5mb01hcCwKLSAgICAgICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93LCAhcm93SW5mby5pc0V4cGFuZGVkKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcm93SW5mby5odG1sTm9kZTsKLSAgICAgIH0sCi0KLSAgICAgIHJlbW92ZVN1Yk5vZGVzXzogZnVuY3Rpb24odGFibGVTZWN0aW9uLCByb3dJbmZvLCByb3dJbmZvTWFwKSB7Ci0gICAgICAgIGlmIChyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOwotICAgICAgICAgICAgIGkgPCByb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgc3ViUm93ID0gcm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dW2ldOwotICAgICAgICAgIHZhciBzdWJSb3dJbmZvID0gcm93SW5mb01hcC5nZXQoc3ViUm93KTsKLSAgICAgICAgICBpZiAoIXN1YlJvd0luZm8pCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgIHZhciBzdWJOb2RlID0gc3ViUm93SW5mby5odG1sTm9kZTsKLSAgICAgICAgICBpZiAoc3ViTm9kZSAmJiBzdWJOb2RlLnBhcmVudE5vZGUgPT09IHRhYmxlU2VjdGlvbikgewotICAgICAgICAgICAgdGFibGVTZWN0aW9uLnJlbW92ZUNoaWxkKHN1Yk5vZGUpOwotICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJOb2Rlc18odGFibGVTZWN0aW9uLCBzdWJSb3dJbmZvLCByb3dJbmZvTWFwKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0sCi0KLSAgICAgIHNjaGVkdWxlUmVidWlsZEhlYWRlcnNfOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5oZWFkZXJEaXJ0eV8gPSB0cnVlOwotICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZF8oKTsKLSAgICAgIH0sCi0KLSAgICAgIHNjaGVkdWxlUmVidWlsZEJvZHlfOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5ib2R5RGlydHlfID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5zY2hlZHVsZVJlYnVpbGRfKCk7Ci0gICAgICB9LAotCi0gICAgICBzY2hlZHVsZVJlYnVpbGRGb290ZXJfOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5mb290ZXJEaXJ0eV8gPSB0cnVlOwotICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZF8oKTsKLSAgICAgIH0sCi0KLSAgICAgIHNjaGVkdWxlUmVidWlsZF86IGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAodGhpcy5yZWJ1aWxkUGVuZGluZ18pCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLnJlYnVpbGRQZW5kaW5nXyA9IHRydWU7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdGhpcy5yZWJ1aWxkUGVuZGluZ18gPSBmYWxzZTsKLSAgICAgICAgICB0aGlzLnJlYnVpbGQoKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpLCAwKTsKLSAgICAgIH0sCi0KLSAgICAgIHJlYnVpbGRJZk5lZWRlZF86IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnJlYnVpbGQoKTsKLSAgICAgIH0sCi0KLSAgICAgIHJlYnVpbGQ6IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgd2FzQm9keU9ySGVhZGVyRGlydHkgPSB0aGlzLmhlYWRlckRpcnR5XyB8fCB0aGlzLmJvZHlEaXJ0eV87Ci0KLSAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGlydHlfKSB7Ci0gICAgICAgICAgdGhpcy5nZW5lcmF0ZUhlYWRlckNvbHVtbnNfKCk7Ci0gICAgICAgICAgdGhpcy5oZWFkZXJEaXJ0eV8gPSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAodGhpcy5ib2R5RGlydHlfKSB7Ci0gICAgICAgICAgdGhpcy4kLmJvZHkudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgICB0aGlzLmdlbmVyYXRlVGFibGVSb3dOb2Rlc18oCi0gICAgICAgICAgICAgIHRoaXMuJC5ib2R5LAotICAgICAgICAgICAgICB0aGlzLnRhYmxlUm93c18sIHRoaXMudGFibGVSb3dzSW5mb18sIDAsCi0gICAgICAgICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsKLSAgICAgICAgICBpZiAodGhpcy50YWJsZVJvd3NfLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmVtcHR5VmFsdWVfICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciB0ciA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwotICAgICAgICAgICAgdGhpcy4kLmJvZHkuYXBwZW5kQ2hpbGQodHIpOwotICAgICAgICAgICAgdHIuY2xhc3NMaXN0LmFkZCgnZW1wdHktcm93Jyk7Ci0gICAgICAgICAgICB2YXIgdGQgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKLSAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKLSAgICAgICAgICAgIHRkLmNvbFNwYW4gPSB0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoOwotICAgICAgICAgICAgdmFyIGVtcHR5VmFsdWUgPSB0aGlzLmVtcHR5VmFsdWVfOwotICAgICAgICAgICAgaWYgKGVtcHR5VmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkKLSAgICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZW1wdHlWYWx1ZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlbXB0eVZhbHVlKSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHRoaXMuYm9keURpcnR5XyA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHdhc0JvZHlPckhlYWRlckRpcnR5KQotICAgICAgICAgIHRoaXMuYXBwbHlTaXplc18oKTsKLQotICAgICAgICBpZiAodGhpcy5mb290ZXJEaXJ0eV8pIHsKLSAgICAgICAgICB0aGlzLiQuZm9vdC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgICAgIHRoaXMuZ2VuZXJhdGVUYWJsZVJvd05vZGVzXygKLSAgICAgICAgICAgICAgdGhpcy4kLmZvb3QsCi0gICAgICAgICAgICAgIHRoaXMudGFibGVGb290ZXJSb3dzXywgdGhpcy50YWJsZUZvb3RlclJvd3NJbmZvXywgMCwKLSAgICAgICAgICAgICAgdW5kZWZpbmVkLCB1bmRlZmluZWQpOwotICAgICAgICAgIGlmICh0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fLmxlbmd0aCkgewotICAgICAgICAgICAgdGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgnaGFzLWZvb3RlcicpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdoYXMtZm9vdGVyJyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHRoaXMuZm9vdGVyRGlydHlfID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgIH0sCi0KLSAgICAgIGFwcGVuZE5ld0VsZW1lbnRfOiBmdW5jdGlvbihwYXJlbnQsIHRhZ05hbWUpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBwYXJlbnQub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOwotICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBlbGVtZW50OwotICAgICAgfSwKLQotICAgICAgZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdzogZnVuY3Rpb24odXNlclJvdykgewotICAgICAgICB0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTsKLSAgICAgICAgdmFyIHJvd0luZm8gPSB0aGlzLnRhYmxlUm93c0luZm9fLmdldCh1c2VyUm93KTsKLSAgICAgICAgaWYgKHJvd0luZm8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JvdyBoYXMgbm90IGJlZW4gc2VlbiwgbXVzdCBleHBhbmQgaXRzIHBhcmVudHMnKTsKLSAgICAgICAgcmV0dXJuIHJvd0luZm8uaXNFeHBhbmRlZDsKLSAgICAgIH0sCi0KLSAgICAgIHNldEV4cGFuZGVkRm9yVGFibGVSb3c6IGZ1bmN0aW9uKHVzZXJSb3csIGV4cGFuZGVkKSB7Ci0gICAgICAgIHRoaXMucmVidWlsZElmTmVlZGVkXygpOwotICAgICAgICB2YXIgcm93SW5mbyA9IHRoaXMudGFibGVSb3dzSW5mb18uZ2V0KHVzZXJSb3cpOwotICAgICAgICBpZiAocm93SW5mbyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUm93IGhhcyBub3QgYmVlbiBzZWVuLCBtdXN0IGV4cGFuZCBpdHMgcGFyZW50cycpOwotICAgICAgICByZXR1cm4gdGhpcy5zZXRFeHBhbmRlZEZvclVzZXJSb3dfKHRoaXMuJC5ib2R5LCB0aGlzLnRhYmxlUm93c0luZm9fLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJSb3csIGV4cGFuZGVkKTsKLSAgICAgIH0sCi0KLSAgICAgIHNldEV4cGFuZGVkRm9yVXNlclJvd186IGZ1bmN0aW9uKHRhYmxlU2VjdGlvbiwgcm93SW5mb01hcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJSb3csIGV4cGFuZGVkKSB7Ci0gICAgICAgIHRoaXMucmVidWlsZElmTmVlZGVkXygpOwotCi0gICAgICAgIHZhciByb3dJbmZvID0gcm93SW5mb01hcC5nZXQodXNlclJvdyk7Ci0gICAgICAgIGlmIChyb3dJbmZvID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSb3cgaGFzIG5vdCBiZWVuIHNlZW4sIG11c3QgZXhwYW5kIGl0cyBwYXJlbnRzJyk7Ci0KLSAgICAgICAgcm93SW5mby5pc0V4cGFuZGVkID0gISFleHBhbmRlZDsKLSAgICAgICAgLy8gSWYgbm8gbm9kZSwgdGhlbiBub3RoaW5nIGZ1cnRoZXIgbmVlZHMgZG9pbmcuCi0gICAgICAgIGlmIChyb3dJbmZvLmh0bWxOb2RlID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIElmIGl0cyBkZXRhY2hlZCwgdGhlbiBub3RoaW5nIG5lZWRzIGRvaW5nLgotICAgICAgICBpZiAocm93SW5mby5odG1sTm9kZS5wYXJlbnRFbGVtZW50ICE9PSB0YWJsZVNlY3Rpb24pCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIE90aGVyd2lzZSwgcmVidWlsZC4KLSAgICAgICAgdmFyIGV4cGFuZEJ1dHRvbiA9IHJvd0luZm8uaHRtbE5vZGUucXVlcnlTZWxlY3RvcignZXhwYW5kLWJ1dHRvbicpOwotICAgICAgICBpZiAocm93SW5mby5pc0V4cGFuZGVkKSB7Ci0gICAgICAgICAgZXhwYW5kQnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2J1dHRvbi1leHBhbmRlZCcpOwotICAgICAgICAgIHZhciBsYXN0QWRkZWRSb3cgPSByb3dJbmZvLmh0bWxOb2RlOwotICAgICAgICAgIGlmIChyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10pIHsKLSAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVUYWJsZVJvd05vZGVzXygKLSAgICAgICAgICAgICAgICB0YWJsZVNlY3Rpb24sCi0gICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLCByb3dJbmZvTWFwLAotICAgICAgICAgICAgICAgIHJvd0luZm8uaW5kZW50YXRpb24gKyAxLAotICAgICAgICAgICAgICAgIGxhc3RBZGRlZFJvdywgcm93SW5mbyk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGV4cGFuZEJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdidXR0b24tZXhwYW5kZWQnKTsKLSAgICAgICAgICB0aGlzLnJlbW92ZVN1Yk5vZGVzXyh0YWJsZVNlY3Rpb24sIHJvd0luZm8sIHJvd0luZm9NYXApOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5tYXliZVVwZGF0ZVNlbGVjdGVkUm93XygpOwotICAgICAgfSwKLQotICAgICAgZ2V0IHN1cHBvcnRzU2VsZWN0aW9uKCkgewotICAgICAgICByZXR1cm4gdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl87Ci0gICAgICB9LAotCi0gICAgICBzZXQgc3VwcG9ydHNTZWxlY3Rpb24oc3VwcG9ydHNTZWxlY3Rpb24pIHsKLSAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7Ci0gICAgICAgIHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fID0gISFzdXBwb3J0c1NlbGVjdGlvbjsKLSAgICAgICAgdGhpcy5kaWRTZWxlY3Rpb25TdGF0ZUNoYW5nZV8oKTsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBjZWxsU2VsZWN0aW9uTW9kZSgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfOwotICAgICAgfSwKLQotICAgICAgc2V0IGNlbGxTZWxlY3Rpb25Nb2RlKGNlbGxTZWxlY3Rpb25Nb2RlKSB7Ci0gICAgICAgIHRoaXMucmVidWlsZElmTmVlZGVkXygpOwotICAgICAgICB0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyA9ICEhY2VsbFNlbGVjdGlvbk1vZGU7Ci0gICAgICAgIHRoaXMuZGlkU2VsZWN0aW9uU3RhdGVDaGFuZ2VfKCk7Ci0gICAgICB9LAotCi0gICAgICBkaWRTZWxlY3Rpb25TdGF0ZUNoYW5nZV86IGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKSB7Ci0gICAgICAgICAgLy8gU2VsZWN0aW9uIGRpc2FibGVkLgotICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2NlbGwtc2VsZWN0aW9uLW1vZGUnKTsKLSAgICAgICAgICB0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdyb3ctc2VsZWN0aW9uLW1vZGUnKTsKLSAgICAgICAgfSBlbHNlIGlmICghdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pIHsKLSAgICAgICAgICAvLyBSb3cgc2VsZWN0aW9uIG1vZGUuCi0gICAgICAgICAgdGhpcy4kLmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC1zZWxlY3Rpb24tbW9kZScpOwotICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3Jvdy1zZWxlY3Rpb24tbW9kZScpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIENlbGwgc2VsZWN0aW9uIG1vZGUuCi0gICAgICAgICAgdGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgnY2VsbC1zZWxlY3Rpb24tbW9kZScpOwotICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3Jvdy1zZWxlY3Rpb24tbW9kZScpOwotICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy4kLmJvZHkuY2hpbGRyZW4ubGVuZ3RoOyBpKyspCi0gICAgICAgICAgdGhpcy51cGRhdGVUYWJJbmRleEZvclRhYmxlUm93Tm9kZV8odGhpcy4kLmJvZHkuY2hpbGRyZW5baV0pOwotICAgICAgICB0aGlzLm1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfKCk7Ci0gICAgICB9LAotCi0gICAgICBtYXliZVVwZGF0ZVNlbGVjdGVkUm93XzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBTdXBwb3J0c1NlbGVjdGlvbiBtYXkgYmUgb2ZmLgotICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKSB7Ci0gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXy5odG1sTm9kZS5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7Ci0gICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gc2VsZWN0ZWRVc2VyUm93IG1heSBub3QgYmUgdmlzaWJsZQotICAgICAgICBmdW5jdGlvbiBpc1Zpc2libGUocm93SW5mbykgewotICAgICAgICAgIGlmICghcm93SW5mby5odG1sTm9kZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICByZXR1cm4gISFyb3dJbmZvLmh0bWxOb2RlLnBhcmVudEVsZW1lbnQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzVmlzaWJsZSh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykpIHsKLSAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXy5odG1sTm9kZS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdHJ1ZSk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGUucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpOwotICAgICAgICB2YXIgY3VyUm93SW5mbyA9IHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fOwotICAgICAgICB3aGlsZSAoY3VyUm93SW5mbyAmJiAhaXNWaXNpYmxlKGN1clJvd0luZm8pKQotICAgICAgICAgIGN1clJvd0luZm8gPSBjdXJSb3dJbmZvLnBhcmVudFJvd0luZm87Ci0KLSAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPSBjdXJSb3dJbmZvOwotICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18pCi0gICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGUuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsIHRydWUpOwotICAgICAgfSwKLQotICAgICAgZGlkVGFibGVSb3dJbmZvR2V0Q2xpY2tlZF86IGZ1bmN0aW9uKHJvd0luZm8sIGNvbHVtbkluZGV4KSB7Ci0gICAgICAgIGlmICghdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykgewotICAgICAgICAgIGlmICghdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGNvbHVtbkluZGV4KSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyAhPT0gcm93SW5mbykKLSAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3cgPSByb3dJbmZvLnVzZXJSb3c7Ci0KLSAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleCAhPT0gY29sdW1uSW5kZXgpCi0gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4ID0gY29sdW1uSW5kZXg7Ci0gICAgICB9LAotCi0gICAgICBnZXQgc2VsZWN0ZWRUYWJsZVJvdygpIHsKLSAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykKLSAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18udXNlclJvdzsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBzZWxlY3RlZFRhYmxlUm93KHVzZXJSb3cpIHsKLSAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7Ci0gICAgICAgIGlmICghdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWxlY3Rpb24gaXMgb2ZmLiBTZXQgc3VwcG9ydHNTZWxlY3Rpb249dHJ1ZS4nKTsKLQotICAgICAgICB2YXIgcm93SW5mbyA9IHRoaXMudGFibGVSb3dzSW5mb18uZ2V0KHVzZXJSb3cpOwotICAgICAgICBpZiAocm93SW5mbyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUm93IGhhcyBub3QgYmVlbiBzZWVuLCBtdXN0IGV4cGFuZCBpdHMgcGFyZW50cycpOwotCi0gICAgICAgIHZhciBlID0gdGhpcy5wcmVwYXJlVG9DaGFuZ2VTZWxlY3Rpb25fKCk7Ci0gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID0gcm93SW5mbzsKLSAgICAgICAgaWYgKHRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKSB7Ci0gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fICYmCi0gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgdmFyIGkgPSB0aGlzLmdldEZpcnN0U2VsZWN0YWJsZUNvbHVtbkluZGV4XygpOwotICAgICAgICAgICAgaWYgKGkgPT0gLTEpCi0gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbm9wZScpOwotICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4XyA9IGk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gPSB1bmRlZmluZWQ7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkU3RhdGVfKCk7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOwotICAgICAgfSwKLQotICAgICAgdXBkYXRlVGFiSW5kZXhGb3JUYWJsZVJvd05vZGVfOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgaWYgKHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKSB7Ci0gICAgICAgICAgaWYgKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykgewotICAgICAgICAgICAgcm93LnRhYkluZGV4ID0gMDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgaWYgKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oaSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgIHJvdy5jaGlsZHJlbltpXS50YWJJbmRleCA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmICghdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pIHsKLSAgICAgICAgICAgIHJvdy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYkluZGV4Jyk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgIGlmICghdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGkpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICByb3cuY2hpbGRyZW5baV0ucmVtb3ZlQXR0cmlidXRlKCd0YWJJbmRleCcpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAgcHJlcGFyZVRvQ2hhbmdlU2VsZWN0aW9uXzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBlID0gbmV3IEV2ZW50KCdzZWxlY3Rpb24tY2hhbmdlZCcpOwotICAgICAgICB2YXIgcHJldmlvdXNTZWxlY3RlZFJvd0luZm8gPSB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXzsKLSAgICAgICAgaWYgKHByZXZpb3VzU2VsZWN0ZWRSb3dJbmZvKQotICAgICAgICAgIGUucHJldmlvdXNTZWxlY3RlZFRhYmxlUm93ID0gcHJldmlvdXNTZWxlY3RlZFJvd0luZm8udXNlclJvdzsKLSAgICAgICAgZWxzZQotICAgICAgICAgIGUucHJldmlvdXNTZWxlY3RlZFRhYmxlUm93ID0gdW5kZWZpbmVkOwotCi0gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykgewotICAgICAgICAgIHZhciBub2RlID0gdGhpcy5nZXRTZWxlY3RhYmxlTm9kZUdpdmVuVGFibGVSb3dOb2RlXygKLSAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGUpOwotICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGU7Ci0gICAgICB9LAotCi0gICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlXzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIG5vZGUgPSB0aGlzLmdldFNlbGVjdGFibGVOb2RlR2l2ZW5UYWJsZVJvd05vZGVfKAotICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fLmh0bWxOb2RlKTsKLSAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdHJ1ZSk7Ci0gICAgICB9LAotCi0gICAgICBkb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uOiBmdW5jdGlvbihjb2x1bW5JbmRleCkgewotICAgICAgICB2YXIgY29sdW1uSW5mbyA9IHRoaXMudGFibGVDb2x1bW5zX1tjb2x1bW5JbmRleF07Ci0gICAgICAgIHZhciBzY3MgPSBjb2x1bW5JbmZvLnN1cHBvcnRzQ2VsbFNlbGVjdGlvbjsKLSAgICAgICAgaWYgKHNjcyA9PT0gZmFsc2UpCi0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0sCi0KLSAgICAgIGdldEZpcnN0U2VsZWN0YWJsZUNvbHVtbkluZGV4XzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKHRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihpKSkKLSAgICAgICAgICAgIHJldHVybiBpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0sCi0KLSAgICAgIGdldFNlbGVjdGFibGVOb2RlR2l2ZW5UYWJsZVJvd05vZGVfOiBmdW5jdGlvbihodG1sTm9kZSkgewotICAgICAgICBpZiAoIXRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKSB7Ci0gICAgICAgICAgcmV0dXJuIGh0bWxOb2RlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJldHVybiBodG1sTm9kZS5jaGlsZHJlblt0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfXTsKLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAgZ2V0IHNlbGVjdGVkQ29sdW1uSW5kZXgoKSB7Ci0gICAgICAgIGlmICghdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCi0gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgaWYgKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykKLSAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4XzsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBzZWxlY3RlZENvbHVtbkluZGV4KHNlbGVjdGVkQ29sdW1uSW5kZXgpIHsKLSAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7Ci0gICAgICAgIGlmICghdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWxlY3Rpb24gaXMgb2ZmLiBTZXQgc3VwcG9ydHNTZWxlY3Rpb249dHJ1ZS4nKTsKLSAgICAgICAgaWYgKHNlbGVjdGVkQ29sdW1uSW5kZXggPCAwIHx8Ci0gICAgICAgICAgICBzZWxlY3RlZENvbHVtbkluZGV4ID49IHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGgpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGluZGV4Jyk7Ci0gICAgICAgIGlmICghdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKHNlbGVjdGVkQ29sdW1uSW5kZXgpKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2VsZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBjb2x1bW4nKTsKLQotICAgICAgICB2YXIgZSA9IHRoaXMucHJlcGFyZVRvQ2hhbmdlU2VsZWN0aW9uXygpOwotICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfID0gc2VsZWN0ZWRDb2x1bW5JbmRleDsKLSAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFN0YXRlXygpOwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChlKTsKLSAgICAgIH0sCi0KLSAgICAgIG9uS2V5RG93bl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgaWYgKHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fID09PSBmYWxzZSkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgY29kZV90b19jb21tYW5kX25hbWVzID0gewotICAgICAgICAgIDM3OiAnQVJST1dfTEVGVCcsCi0gICAgICAgICAgMzg6ICdBUlJPV19VUCcsCi0gICAgICAgICAgMzk6ICdBUlJPV19SSUdIVCcsCi0gICAgICAgICAgNDA6ICdBUlJPV19ET1dOJwotICAgICAgICB9OwotICAgICAgICB2YXIgY21kTmFtZSA9IGNvZGVfdG9fY29tbWFuZF9uYW1lc1tlLmtleUNvZGVdOwotICAgICAgICBpZiAoY21kTmFtZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIHRoaXMucGVyZm9ybUtleUNvbW1hbmRfKGNtZE5hbWUpOwotICAgICAgfSwKLQotICAgICAgcGVyZm9ybUtleUNvbW1hbmRfOiBmdW5jdGlvbihjbWROYW1lKSB7Ci0gICAgICAgIHRoaXMucmVidWlsZElmTmVlZGVkXygpOwotCi0gICAgICAgIHZhciByb3dJbmZvID0gdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb187Ci0gICAgICAgIHZhciBodG1sTm9kZSA9IHJvd0luZm8uaHRtbE5vZGU7Ci0gICAgICAgIGlmIChjbWROYW1lID09PSAnQVJST1dfVVAnKSB7Ci0gICAgICAgICAgdmFyIHByZXYgPSBodG1sTm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nOwotICAgICAgICAgIGlmIChwcmV2KSB7Ci0gICAgICAgICAgICB0ci5iLnNjcm9sbEludG9WaWV3SWZOZWVkZWQocHJldik7Ci0gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3cgPSBwcmV2LnJvd0luZm8udXNlclJvdzsKLSAgICAgICAgICAgIHRoaXMuZm9jdXNTZWxlY3RlZF8oKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNtZE5hbWUgPT09ICdBUlJPV19ET1dOJykgewotICAgICAgICAgIHZhciBuZXh0ID0gaHRtbE5vZGUubmV4dEVsZW1lbnRTaWJsaW5nOwotICAgICAgICAgIGlmIChuZXh0KSB7Ci0gICAgICAgICAgICB0ci5iLnNjcm9sbEludG9WaWV3SWZOZWVkZWQobmV4dCk7Ci0gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3cgPSBuZXh0LnJvd0luZm8udXNlclJvdzsKLSAgICAgICAgICAgIHRoaXMuZm9jdXNTZWxlY3RlZF8oKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNtZE5hbWUgPT09ICdBUlJPV19SSUdIVCcpIHsKLSAgICAgICAgICBpZiAodGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pIHsKLSAgICAgICAgICAgIHZhciBuZXdJbmRleCA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gKyAxOwotICAgICAgICAgICAgaWYgKG5ld0luZGV4ID49IHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGgpCi0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKG5ld0luZGV4KSkKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4ID0gbmV3SW5kZXg7Ci0gICAgICAgICAgICB0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoIXJvd0luZm8uaXNFeHBhbmRlZCkKLSAgICAgICAgICAgICAgdGhpcy5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd0luZm8udXNlclJvdywgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3cgPQotICAgICAgICAgICAgICByb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX11bMF07Ci0gICAgICAgICAgICB0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNtZE5hbWUgPT09ICdBUlJPV19MRUZUJykgewotICAgICAgICAgIGlmICh0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykgewotICAgICAgICAgICAgdmFyIG5ld0luZGV4ID0gdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4XyAtIDE7Ci0gICAgICAgICAgICBpZiAobmV3SW5kZXggPCAwKQotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoIXRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihuZXdJbmRleCkpCi0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleCA9IG5ld0luZGV4OwotICAgICAgICAgICAgdGhpcy5mb2N1c1NlbGVjdGVkXygpOwotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChyb3dJbmZvLmlzRXhwYW5kZWQpIHsKLSAgICAgICAgICAgICAgdGhpcy5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd0luZm8udXNlclJvdywgZmFsc2UpOwotICAgICAgICAgICAgICB0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7Ci0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gTm90IGV4cGFuZGVkLiBTZWxlY3QgcGFyZW50Li4uCi0gICAgICAgICAgICB2YXIgcGFyZW50Um93SW5mbyA9IHJvd0luZm8ucGFyZW50Um93SW5mbzsKLSAgICAgICAgICAgIGlmIChwYXJlbnRSb3dJbmZvKSB7Ci0gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJsZVJvdyA9IHBhcmVudFJvd0luZm8udXNlclJvdzsKLSAgICAgICAgICAgICAgdGhpcy5mb2N1c1NlbGVjdGVkXygpOwotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIGNvbW1hbmQnKTsKLSAgICAgIH0sCi0KLSAgICAgIGZvY3VzU2VsZWN0ZWRfOiBmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciBub2RlID0gdGhpcy5nZXRTZWxlY3RhYmxlTm9kZUdpdmVuVGFibGVSb3dOb2RlXygKLSAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fLmh0bWxOb2RlKTsKLSAgICAgICAgbm9kZS5mb2N1cygpOwotICAgICAgfQotICAgIH0pOwotICB9KSgpOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1iLXVpLXRhYmxlLWhlYWRlci1jZWxsIiBvbi10YXA9Im9uVGFwXyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLQotICAgIHNwYW4gewotICAgICAgZmxleDogMCAxIGF1dG87Ci0gICAgfQotCi0gICAgc2lkZS1lbGVtZW50IHsKLSAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICBmbGV4OiAxIDAgYXV0bzsKLSAgICAgIHBhZGRpbmctbGVmdDogNHB4OwotICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKLSAgICAgIGZvbnQtc2l6ZTogMTVweDsKLSAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwotICAgICAgZGlzcGxheTogaW5saW5lOwotICAgICAgbGluZS1oZWlnaHQ6IDg1JTsKLSAgICB9Ci0gIDwvc3R5bGU+Ci0KLSAgICA8c3BhbiBpZD0idGl0bGUiPjwvc3Bhbj48c2lkZS1lbGVtZW50IGlkPSJzaWRlIj48L3NpZGUtZWxlbWVudD4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRhcENhbGxiYWNrXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuY2VsbFRpdGxlXyA9ICcnOwotICAgIH0sCi0KLSAgICBzZXQgY2VsbFRpdGxlKHZhbHVlKSB7Ci0gICAgICB0aGlzLmNlbGxUaXRsZV8gPSB2YWx1ZTsKLQotICAgICAgdmFyIHRpdGxlTm9kZTsKLSAgICAgIGlmICh0aGlzLmNlbGxUaXRsZV8gaW5zdGFuY2VvZiBOb2RlKQotICAgICAgICB0aXRsZU5vZGUgPSB0aGlzLmNlbGxUaXRsZV87Ci0gICAgICBlbHNlCi0gICAgICAgIHRpdGxlTm9kZSA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmNlbGxUaXRsZV8pOwotCi0gICAgICB0aGlzLiQudGl0bGUuaW5uZXJUZXh0ID0gJyc7Ci0gICAgICB0aGlzLiQudGl0bGUuYXBwZW5kQ2hpbGQodGl0bGVOb2RlKTsKLSAgICB9LAotCi0gICAgZ2V0IGNlbGxUaXRsZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmNlbGxUaXRsZV87Ci0gICAgfSwKLQotICAgIGNsZWFyU2lkZUNvbnRlbnQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLnNpZGUudGV4dENvbnRlbnQgPSAnJzsKLSAgICB9LAotCi0gICAgc2V0IHNpZGVDb250ZW50KGNvbnRlbnQpIHsKLSAgICAgIHRoaXMuJC5zaWRlLnRleHRDb250ZW50ID0gY29udGVudDsKLSAgICB9LAotCi0gICAgZ2V0IHNpZGVDb250ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMuJC5zaWRlLnRleHRDb250ZW50OwotICAgIH0sCi0KLSAgICBzZXQgdGFwQ2FsbGJhY2soY2FsbGJhY2spIHsKLSAgICAgIHRoaXMuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInOwotICAgICAgdGhpcy50YXBDYWxsYmFja18gPSBjYWxsYmFjazsKLSAgICB9LAotCi0gICAgZ2V0IHRhcENhbGxiYWNrKCkgewotICAgICAgcmV0dXJuIHRoaXMudGFwQ2FsbGJhY2tfOwotICAgIH0sCi0KLSAgICBvblRhcF86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMudGFwQ2FsbGJhY2tfKQotICAgICAgICB0aGlzLnRhcENhbGxiYWNrXygpOwotICAgIH0KLSAgfSk7Ci08L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3RhYmxlX2hlYWRlcl9jZWxsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvdGFibGVfaGVhZGVyX2NlbGwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2FhNTg1NC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvdGFibGVfaGVhZGVyX2NlbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYi11aS10YWJsZS1oZWFkZXItY2VsbCIKLSAgICBvbi10YXA9Im9uVGFwXyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLQotICAgIHNwYW4gewotICAgICAgZmxleDogMCAxIGF1dG87Ci0gICAgfQotCi0gICAgc2lkZS1lbGVtZW50IHsKLSAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgICBmbGV4OiAxIDAgYXV0bzsKLSAgICAgIHBhZGRpbmctbGVmdDogNHB4OwotICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKLSAgICAgIGZvbnQtc2l6ZTogMTVweDsKLSAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwotICAgICAgZGlzcGxheTogaW5saW5lOwotICAgICAgbGluZS1oZWlnaHQ6IDg1JTsKLSAgICB9Ci0gIDwvc3R5bGU+Ci0KLSAgICA8c3BhbiBpZD0idGl0bGUiPjwvc3Bhbj48c2lkZS1lbGVtZW50IGlkPSJzaWRlIj48L3NpZGUtZWxlbWVudD4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRhcENhbGxiYWNrXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuY2VsbFRpdGxlXyA9ICcnOwotICAgIH0sCi0KLSAgICBzZXQgY2VsbFRpdGxlKHZhbHVlKSB7Ci0gICAgICB0aGlzLmNlbGxUaXRsZV8gPSB2YWx1ZTsKLQotICAgICAgdmFyIHRpdGxlTm9kZTsKLSAgICAgIGlmICh0aGlzLmNlbGxUaXRsZV8gaW5zdGFuY2VvZiBOb2RlKQotICAgICAgICB0aXRsZU5vZGUgPSB0aGlzLmNlbGxUaXRsZV87Ci0gICAgICBlbHNlCi0gICAgICAgIHRpdGxlTm9kZSA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmNlbGxUaXRsZV8pOwotCi0gICAgICB0aGlzLiQudGl0bGUuaW5uZXJUZXh0ID0gJyc7Ci0gICAgICB0aGlzLiQudGl0bGUuYXBwZW5kQ2hpbGQodGl0bGVOb2RlKTsKLSAgICB9LAotCi0gICAgZ2V0IGNlbGxUaXRsZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmNlbGxUaXRsZV87Ci0gICAgfSwKLQotICAgIGNsZWFyU2lkZUNvbnRlbnQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLnNpZGUudGV4dENvbnRlbnQgPSAnJzsKLSAgICB9LAotCi0gICAgc2V0IHNpZGVDb250ZW50KGNvbnRlbnQpIHsKLSAgICAgIHRoaXMuJC5zaWRlLnRleHRDb250ZW50ID0gY29udGVudDsKLSAgICB9LAotCi0gICAgZ2V0IHNpZGVDb250ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMuJC5zaWRlLnRleHRDb250ZW50OwotICAgIH0sCi0KLSAgICBzZXQgdGFwQ2FsbGJhY2soY2FsbGJhY2spIHsKLSAgICAgIHRoaXMuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInOwotICAgICAgdGhpcy50YXBDYWxsYmFja18gPSBjYWxsYmFjazsKLSAgICB9LAotCi0gICAgZ2V0IHRhcENhbGxiYWNrKCkgewotICAgICAgcmV0dXJuIHRoaXMudGFwQ2FsbGJhY2tfOwotICAgIH0sCi0KLSAgICBvblRhcF86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMudGFwQ2FsbGJhY2tfKQotICAgICAgICB0aGlzLnRhcENhbGxiYWNrXygpOwotICAgIH0KLSAgfSk7Ci08L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3RhYmxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS90YWJsZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5YTIzMTQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3RhYmxlX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk1MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgVEhJU19ET0MgPSBkb2N1bWVudC5fY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlRW1wdHlUYWJsZV93aXRob3V0RW1wdHlWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb2x1bW5zID0gWwotICAgICAgewotICAgICAgICB0aXRsZTogJ0ZpcnN0IENvbHVtbicsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5maXJzdERhdGE7IH0sCi0gICAgICAgIHdpZHRoOiAnMzAwcHgnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB0aXRsZTogJ1NlY29uZCBDb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfQotICAgICAgfQotICAgIF07Ci0KLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLXRhYmxlJyk7Ci0gICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICB0YWJsZS50YWJsZVJvd3MgPSBbXTsKLSAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCB0aGUgd2lkdGggb2YgdGhlIGZpcnN0IGNvbHVtbiB3YXMgc2V0IGNvcnJlY3RseSAoZGVzcGl0ZSBubwotICAgIC8vIGJvZHkgcm93cykuCi0gICAgdmFyIGZpcnN0Q29sdW1uSGVhZGVyID0gdGFibGUuJC5oZWFkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdOwotICAgIGFzc2VydC5jbG9zZVRvKGZpcnN0Q29sdW1uSGVhZGVyLm9mZnNldFdpZHRoLCAzMDAsIDIwKTsKLQotICAgIC8vIENoZWNrIHRoYXQgdGhlIGZpcnN0IGNvbHVtbiBoYXMgYSBub24tZW1wdHkgaGVhZGVyLgotICAgIHZhciBmaXJzdENvbHVtblRpdGxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZ1ByZWRpY2F0ZSgKLSAgICAgICAgZmlyc3RDb2x1bW5IZWFkZXIsIGZ1bmN0aW9uKGVsZW1lbnQpIHsKLSAgICAgIHJldHVybiBlbGVtZW50LnRleHRDb250ZW50ID09PSAnRmlyc3QgQ29sdW1uJzsKLSAgICB9KTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGZpcnN0Q29sdW1uVGl0bGUpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCBlbXB0eSB2YWx1ZSB3YXMgbm90IGFwcGVuZGVkLgotICAgIGFzc2VydC5sZW5ndGhPZih0YWJsZS4kLmJvZHkuY2hpbGRyZW4sIDApOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZUVtcHR5VGFibGVfd2l0aEVtcHR5VmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdGaXJzdCBDb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAotICAgICAgICB3aWR0aDogJzMwMHB4JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdTZWNvbmQgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnNlY29uZERhdGE7IH0KLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgdGFibGUudGFibGVSb3dzID0gW107Ci0gICAgdGFibGUuZW1wdHlWYWx1ZSA9ICdUaGlzIHRhYmxlIGlzIGxlZnQgaW50ZW50aW9uYWxseSBlbXB0eSc7Ci0gICAgdGFibGUucmVidWlsZCgpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLQotICAgIC8vIENoZWNrIHRoYXQgdGhlIHdpZHRoIG9mIHRoZSBmaXJzdCBjb2x1bW4gd2FzIHNldCBjb3JyZWN0bHkgKGRlc3BpdGUgbm8KLSAgICAvLyBib2R5IHJvd3MpLgotICAgIHZhciBmaXJzdENvbHVtbkhlYWRlciA9IHRhYmxlLiQuaGVhZC5jaGlsZHJlblswXS5jaGlsZHJlblswXTsKLSAgICBhc3NlcnQuY2xvc2VUbyhmaXJzdENvbHVtbkhlYWRlci5vZmZzZXRXaWR0aCwgMzAwLCAyMCk7Ci0KLSAgICAvLyBDaGVjayB0aGF0IGVtcHR5IHZhbHVlIHdhcyBhcHBlbmRlZC4KLSAgICBhc3NlcnQubGVuZ3RoT2YodGFibGUuJC5ib2R5LmNoaWxkcmVuLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVOZXN0ZWRUYWJsZU5vTmVzdHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdGaXJzdCBDb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAotICAgICAgICB3aWR0aDogJzIwMHB4JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdTZWNvbmQgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnNlY29uZERhdGE7IH0KLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIGZpcnN0RGF0YTogJ0ExJywKLSAgICAgICAgc2Vjb25kRGF0YTogJ0EyJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgZmlyc3REYXRhOiAnQjEnLAotICAgICAgICBzZWNvbmREYXRhOiAnQjInCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7Ci0gICAgdGFibGUuZW1wdHlWYWx1ZSA9ICdUSElTIFNIT1VMRCBOT1QgQkUgVklTSUJMRSEhISc7Ci0gICAgdGFibGUucmVidWlsZCgpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLQotICAgIC8vIENoZWNrIHRoYXQgZW1wdHkgdmFsdWUgd2FzIG5vdCBhcHBlbmRlZC4KLSAgICBhc3NlcnQubGVuZ3RoT2YodGFibGUuJC5ib2R5LmNoaWxkcmVuLCAyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2VxdWVudGlhbFJlYnVpbGRzQmVoYXZlU2FuZWx5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnRmlyc3QgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfSwKLSAgICAgICAgd2lkdGg6ICcyMDBweCcKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnU2Vjb25kIENvbHVtbicsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5zZWNvbmREYXRhOyB9Ci0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciByb3dzID0gWwotICAgICAgewotICAgICAgICBmaXJzdERhdGE6ICdBMScsCi0gICAgICAgIHNlY29uZERhdGE6ICdBMicKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGZpcnN0RGF0YTogJ0IxJywKLSAgICAgICAgc2Vjb25kRGF0YTogJ0IyJwotICAgICAgfQotICAgIF07Ci0gICAgdmFyIGZvb3RlclJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIGZpcnN0RGF0YTogJ0ExJywKLSAgICAgICAgc2Vjb25kRGF0YTogJ0EyJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgZmlyc3REYXRhOiAnQjEnLAotICAgICAgICBzZWNvbmREYXRhOiAnQjInCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7Ci0gICAgdGFibGUuZm9vdGVyUm93cyA9IGZvb3RlclJvd3M7Ci0gICAgdGFibGUucmVidWlsZCgpOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUuJC5ib2R5LmNoaWxkcmVuLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLiQuZm9vdC5jaGlsZHJlbi5sZW5ndGgsIDIpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVOZXN0ZWRUYWJsZVdpdGhOZXN0cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb2x1bW5zID0gWwotICAgICAgewotICAgICAgICB0aXRsZTogJ0ZpcnN0IENvbHVtbicsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5maXJzdERhdGE7IH0sCi0gICAgICAgIHdpZHRoOiAnMjUwcHgnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB0aXRsZTogJ1NlY29uZCBDb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfSwKLSAgICAgICAgd2lkdGg6ICc1MCUnCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciByb3dzID0gWwotICAgICAgewotICAgICAgICBmaXJzdERhdGE6ICdBMScsCi0gICAgICAgIHNlY29uZERhdGE6ICdBMicsCi0gICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIxIEExJywKLSAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIxIEEyJwotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViMiBBMScsCi0gICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViMiBBMicsCi0gICAgICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmaXJzdERhdGE6ICdTdWJTdWIxIEExJywKLSAgICAgICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViU3ViMSBBMicKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YlN1YjIgQTEnLAotICAgICAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWJTdWIyIEEyJwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIzIEExJywKLSAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIzIEEyJwotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgZmlyc3REYXRhOiAnQjEnLAotICAgICAgICBzZWNvbmREYXRhOiAnQjInCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7Ci0gICAgdGFibGUucmVidWlsZCgpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVTb3J0aW5nQ2FsbGJhY2tzV2l0aE5lc3RzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotCi0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnRmlyc3QgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfSwKLSAgICAgICAgd2lkdGg6ICc1MCUnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB0aXRsZTogJ1NlY29uZCBDb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfSwKLSAgICAgICAgd2lkdGg6ICcyNTBweCcsCi0gICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgewotICAgICAgICAgIHJldHVybiByb3dBLnNlY29uZERhdGEudG9TdHJpbmcoKS5sb2NhbGVDb21wYXJlKAotICAgICAgICAgICAgICByb3dCLnNlY29uZERhdGEudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0sCi0gICAgICAgIHNob3dFeHBhbmRCdXR0b25zOiB0cnVlCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciByb3dzID0gWwotICAgICAgewotICAgICAgICBmaXJzdERhdGE6ICdBMScsCi0gICAgICAgIHNlY29uZERhdGE6ICdBMicsCi0gICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIxIEExJywKLSAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIxIEEyJwotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViMiBBMScsCi0gICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViMiBBMicsCi0gICAgICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmaXJzdERhdGE6ICdTdWJTdWIxIEExJywKLSAgICAgICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViU3ViMSBBMicKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YlN1YjIgQTEnLAotICAgICAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWJTdWIyIEEyJwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIzIEExJywKLSAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIzIEEyJwotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgZmlyc3REYXRhOiAnQjEnLAotICAgICAgICBzZWNvbmREYXRhOiAnQjInCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciBmb290ZXJSb3dzID0gWwotICAgICAgewotICAgICAgICBmaXJzdERhdGE6ICdGMScsCi0gICAgICAgIHNlY29uZERhdGE6ICdGMicsCi0gICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIxRjEnLAotICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YjFGMicKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YjJGMScsCi0gICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViMkYyJywKLSAgICAgICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YlN1YjFGMScsCi0gICAgICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YlN1YjFGMicKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YlN1YjJGMScsCi0gICAgICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YlN1YjJGMicKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViM0YxJywKLSAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIzRjInCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBmaXJzdERhdGE6ICdGXCcxJywKLSAgICAgICAgc2Vjb25kRGF0YTogJ0ZcJzInCi0gICAgICB9Ci0KLSAgICBdOwotCi0gICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOwotICAgIHRhYmxlLmZvb3RlclJvd3MgPSBmb290ZXJSb3dzOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7Ci0KLSAgICB2YXIgYnV0dG9uID0gVEhJU19ET0MuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAgYnV0dG9uLnRleHRDb250ZW50ID0gJ1NvcnQgQnkgQ29sIDAnOwotICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewotICAgICAgdGFibGUuc29ydERlc2NlbmRpbmcgPSAhdGFibGUuc29ydERlc2NlbmRpbmc7Ci0gICAgICB0YWJsZS5zb3J0Q29sdW1uSW5kZXggPSAwOwotICAgIH0pOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dChidXR0b24pOwotICB9KTsKLQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlTmVzdGVkVGFibGVBbHJlYWR5RXhwYW5kZWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdhJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmE7IH0sCi0gICAgICAgIHdpZHRoOiAnMTUwcHgnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB0aXRsZTogJ2EnLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYjsgfSwKLSAgICAgICAgd2lkdGg6ICc1MCUnCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciByb3dzID0gWwotICAgICAgewotICAgICAgICBhOiAnYVRvcGxldmVsJywKLSAgICAgICAgYjogJ2JUb3BsZXZlbCcsCi0gICAgICAgIGlzRXhwYW5kZWQ6IHRydWUsCi0gICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBhOiAnYTEnLAotICAgICAgICAgICAgYjogJ2IxJwotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF07Ci0KLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLXRhYmxlJyk7Ci0gICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgdmFyIGExRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlKHRhYmxlLCBmdW5jdGlvbihlbGVtZW50KSB7Ci0gICAgICByZXR1cm4gZWxlbWVudC50ZXh0Q29udGVudCA9PSAnYTEnOwotICAgIH0pOwotICAgIGFzc2VydC5pc0RlZmluZWQoYTFFbCk7Ci0KLSAgICB2YXIgYlRvcGxldmVsRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlKAotICAgICAgICB0YWJsZSwKLSAgICAgICAgZnVuY3Rpb24oZWxlbWVudCkgewotICAgICAgICAgIHJldHVybiBlbGVtZW50LnRleHRDb250ZW50ID09ICdiVG9wbGV2ZWwnOwotICAgICAgICB9KTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGJUb3BsZXZlbEVsKTsKLSAgICB2YXIgZXhwYW5kQnV0dG9uID0gYlRvcGxldmVsRWwucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdleHBhbmQtYnV0dG9uJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShleHBhbmRCdXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdidXR0b24tZXhwYW5kZWQnKSk7Ci0gIH0pOwotCi0KLSAgdGVzdCgnc3ViUm93c1RoYXRBcmVSZXRyaWV2ZWRPbkRlbWFuZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb2x1bW5zID0gWwotICAgICAgewotICAgICAgICB0aXRsZTogJ2EnLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYTsgfSwKLSAgICAgICAgd2lkdGg6ICcxNTBweCcKLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIGE6ICdyb3cxJywKLSAgICAgICAgc3ViUm93czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIGI6ICdyb3cxLjEnLAotICAgICAgICAgICAgZ2V0IHN1YlJvd3MoKSB7Ci0gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2hvbGQgbm90IGJlIGNhbGxlZCcpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF07Ci0KLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLXRhYmxlJyk7Ci0gICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotICB9KTsKLQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlVGFibGVXaXRoSGlkZGVuSGVhZGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnYScsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5hOyB9LAotICAgICAgICB3aWR0aDogJzE1MHB4JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdhJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmI7IH0sCi0gICAgICAgIHdpZHRoOiAnNTAlJwotICAgICAgfQotICAgIF07Ci0KLSAgICB2YXIgcm93cyA9IFsKLSAgICAgIHsKLSAgICAgICAgYTogJ2FUb3BsZXZlbCcsCi0gICAgICAgIGI6ICdiVG9wbGV2ZWwnCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZS5zaG93SGVhZGVyID0gZmFsc2U7Ci0gICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgdmFyIHRIZWFkID0gdGFibGUuJC5oZWFkOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS4kLmhlYWQuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgdEhlYWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KTsKLQotICAgIHRhYmxlLnNob3dIZWFkZXIgPSB0cnVlOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB0YWJsZS5zaG93SGVhZGVyID0gZmFsc2U7Ci0gICAgdGFibGUucmVidWlsZCgpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS4kLmhlYWQuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKLSAgfSk7Ci0KLQotICB0ZXN0KCdzb3J0Q29sdW1uc05vdFBvc3NpYmxlT25QZXJjZW50U2l6ZWRDb2x1bW5zJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnVGl0bGUnLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYTsgfSwKLSAgICAgICAgd2lkdGg6ICcxNTBweCcKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnVmFsdWUnLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYjsgfSwKLSAgICAgICAgd2lkdGg6ICcxMDAlJywKLSAgICAgICAgc2hvd0V4cGFuZEJ1dHRvbnM6IHRydWUKLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHRhYmxlMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZTEuc2hvd0hlYWRlciA9IHRydWU7Ci0KLSAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgewotICAgICAgdGFibGUxLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3R3b1RhYmxlc0ZpcnN0Q29sdW1uTWF0Y2hpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdUaXRsZScsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5hOyB9LAotICAgICAgICB3aWR0aDogJzE1MHB4JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdWYWx1ZScsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5iOyB9LAotICAgICAgICB3aWR0aDogJzEwMCUnCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciB0YWJsZTEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLXRhYmxlJyk7Ci0gICAgdGFibGUxLnNob3dIZWFkZXIgPSB0cnVlOwotICAgIHRhYmxlMS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgIHRhYmxlMS50YWJsZVJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIGE6ICdmaXJzdCcsCi0gICAgICAgIGI6ICdyb3cnCi0gICAgICB9Ci0gICAgXTsKLSAgICB0YWJsZTEucmVidWlsZCgpOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZTEpOwotCi0gICAgdmFyIHRhYmxlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZTIuc2hvd0hlYWRlciA9IGZhbHNlOwotICAgIHRhYmxlMi50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgIHRhYmxlMi50YWJsZVJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIGE6ICdzZWNvbmQnLAotICAgICAgICBiOiAncm93JwotICAgICAgfQotICAgIF07Ci0gICAgdGFibGUyLnJlYnVpbGQoKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUyKTsKLQotICAgIHZhciBoMUZpcnN0Q29sID0gdGFibGUxLiQuaGVhZC5jaGlsZHJlblswXS5jaGlsZHJlblswXTsKLSAgICB2YXIgaDJGaXJzdENvbCA9IHRhYmxlMi4kLmJvZHkuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGgxRmlyc3RDb2wuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsCi0gICAgICAgICAgICAgICAgIGgyRmlyc3RDb2wuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpOwotICB9KTsKLQotICB0ZXN0KCdwcm9ncmFtbWF0aWNTb3J0aW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotCi0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnZhbHVlOyB9LAotICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICByZXR1cm4gcm93QS52YWx1ZS50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoCi0gICAgICAgICAgICAgIHJvd0IudmFsdWUudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAnQTEnLAotICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdmFsdWU6ICdBMS4xJwotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgdmFsdWU6ICdBMS4yJywKLSAgICAgICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhbHVlOiAnQTEuMi4xJwotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFsdWU6ICdBMS4yLjInCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHZhbHVlOiAnQTEuMycKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAnQTInCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgdGFibGUudGFibGVSb3dzID0gcm93czsKLSAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgdGFibGUuc29ydERlc2NlbmRpbmcgPSB0cnVlOwotICAgIHRhYmxlLnNvcnRDb2x1bW5JbmRleCA9IDA7Ci0gICAgdGFibGUucmVidWlsZCgpOwotICAgIHZhciByMCA9IHRhYmxlLiQuYm9keS5jaGlsZHJlblswXTsKLSAgICBhc3NlcnQuZXF1YWwocjAucm93SW5mby51c2VyUm93LCByb3dzWzFdKTsKLQotICAgIHZhciByMSA9IHRhYmxlLiQuYm9keS5jaGlsZHJlblsxXTsKLSAgICBhc3NlcnQuZXF1YWwocjEucm93SW5mby51c2VyUm93LCByb3dzWzBdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc29ydGluZ0FmdGVyRXhwYW5kJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotCi0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnZhbHVlOyB9LAotICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICByZXR1cm4gcm93QS52YWx1ZS50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoCi0gICAgICAgICAgICAgIHJvd0IudmFsdWUudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAnQTEnLAotICAgICAgICBpc0V4cGFuZGVkOiB0cnVlLAotICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdmFsdWU6ICdBMS4xJwotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgdmFsdWU6ICdBMS4yJywKLSAgICAgICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhbHVlOiAnQTEuMi4xJwotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFsdWU6ICdBMS4yLjInCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHZhbHVlOiAnQTEuMycKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAnQTInCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgdGFibGUudGFibGVSb3dzID0gcm93czsKLSAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgdGFibGUuc29ydERlc2NlbmRpbmcgPSB0cnVlOwotICAgIHRhYmxlLnNvcnRDb2x1bW5JbmRleCA9IDA7Ci0gICAgdGFibGUucmVidWlsZCgpOwotICAgIHZhciByMCA9IHRhYmxlLiQuYm9keS5jaGlsZHJlblswXTsKLSAgICBhc3NlcnQuZXF1YWwocjAucm93SW5mby51c2VyUm93LCByb3dzWzFdKTsKLQotICAgIHZhciByMSA9IHRhYmxlLiQuYm9keS5jaGlsZHJlblsxXTsKLSAgICBhc3NlcnQuZXF1YWwocjEucm93SW5mby51c2VyUm93LCByb3dzWzBdKTsKLQotICAgIHZhciByMiA9IHRhYmxlLiQuYm9keS5jaGlsZHJlblsyXTsKLSAgICBhc3NlcnQuZXF1YWwocjIucm93SW5mby51c2VyUm93LCByb3dzWzBdLnN1YlJvd3NbMl0pOwotCi0gICAgYXNzZXJ0LmlzRmFsc2UocjAuaGFzQXR0cmlidXRlKCd0YWJJbmRleCcpKTsKLSAgfSk7Ci0KLSAgZnVuY3Rpb24gY3JlYXRlU2ltcGxlT25lQ29sdW1uTmVzdGVkVGFibGUoKSB7Ci0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotCi0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnZhbHVlOyB9LAotICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICByZXR1cm4gcm93QS52YWx1ZS50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoCi0gICAgICAgICAgICAgIHJvd0IudmFsdWUudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAnQTEnLAotICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdmFsdWU6ICdBMS4xJwotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgdmFsdWU6ICdBMS4yJywKLSAgICAgICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhbHVlOiAnQTEuMi4xJwotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFsdWU6ICdBMS4yLjInCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHZhbHVlOiAnQTEuMycKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAnQTInCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgdGFibGUudGFibGVSb3dzID0gcm93czsKLSAgICByZXR1cm4gdGFibGU7Ci0gIH0KLQotICB0ZXN0KCdleHBhbmRBZnRlclJlYnVpbGQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBjcmVhdGVTaW1wbGVPbmVDb2x1bW5OZXN0ZWRUYWJsZSgpOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB2YXIgcm93cyA9IHRhYmxlLnRhYmxlUm93czsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7Ci0KLSAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdKSk7Ci0gICAgdGFibGUuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLCB0cnVlKTsKLSAgICBhc3NlcnQuaXNUcnVlKHRhYmxlLmdldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1swXSkpOwotCi0gICAgdmFyIHIxID0gdGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdOwotICAgIGFzc2VydC5lcXVhbChyMS5yb3dJbmZvLnVzZXJSb3csIHJvd3NbMF0uc3ViUm93c1swXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3RhYmxlU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gY3JlYXRlU2ltcGxlT25lQ29sdW1uTmVzdGVkVGFibGUoKTsKLSAgICB2YXIgcm93cyA9IHRhYmxlLnRhYmxlUm93czsKLQotICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKLSAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gcm93c1swXTsKLQotICAgIHRhYmxlLnNldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1swXSwgdHJ1ZSk7Ci0gICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHJvd3NbMF0uc3ViUm93c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdywgcm93c1swXS5zdWJSb3dzWzFdKTsKLQotICAgIHRhYmxlLnNldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1swXSwgZmFsc2UpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCByb3dzWzBdKTsKLQotICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gZmFsc2U7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHVuZGVmaW5lZCk7Ci0KLSAgICB0YWJsZS5zdXBwb3J0c1NlbGVjdGlvbiA9IHRydWU7Ci0gICAgdGFibGUuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLnN1YlJvd3NbMV0sIHRydWUpOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7Ci0KLSAgICB2YXIgcjAgPSB0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMF07Ci0gICAgYXNzZXJ0LmlzVHJ1ZShyMC5oYXNBdHRyaWJ1dGUoJ3RhYkluZGV4JykpOwotICB9KTsKLQotCi0gIHRlc3QoJ2tleU1vdmVtZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gY3JlYXRlU2ltcGxlT25lQ29sdW1uTmVzdGVkVGFibGUoKTsKLSAgICB0YWJsZS5zdXBwb3J0c1NlbGVjdGlvbiA9IHRydWU7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLQotICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOwotICAgIHRhYmxlLnNlbGVjdGVkVGFibGVSb3cgPSByb3dzWzBdOwotCi0gICAgdGFibGUucGVyZm9ybUtleUNvbW1hbmRfKCdBUlJPV19ET1dOJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHJvd3NbMV0pOwotCi0gICAgdGFibGUucGVyZm9ybUtleUNvbW1hbmRfKCdBUlJPV19VUCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCByb3dzWzBdKTsKLQotICAgIC8vIEFycm93IHJpZ2h0IG9uIGNvbGxhcHNlZCByb3cgc2hvdWxkIGV4cGFuZC4KLSAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gcm93c1swXTsKLSAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX1JJR0hUJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHJvd3NbMF0uc3ViUm93c1swXSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0pKTsKLQotICAgIHRhYmxlLnBlcmZvcm1LZXlDb21tYW5kXygnQVJST1dfRE9XTicpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCByb3dzWzBdLnN1YlJvd3NbMV0pOwotCi0gICAgLy8gQVJyb3cgbGVmdCBvbiBjb2xsYXBzZWQgaXRlbSBzaG91bGQgc2VsZWN0IHBhcmVudC4KLSAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX0xFRlQnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdywgcm93c1swXSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0pKTsKLQotICAgIC8vIEFycm93IHJpZ2h0IG9uIGV4cGFuZGVkIHJvdyBzaG91bGQgc2VsZWN0IGZpcnN0IGNoaWxkLgotICAgIHRhYmxlLnNlbGVjdGVkVGFibGVSb3cgPSByb3dzWzBdOwotICAgIHRhYmxlLnNldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1swXSwgdHJ1ZSk7Ci0gICAgdGFibGUucGVyZm9ybUtleUNvbW1hbmRfKCdBUlJPV19SSUdIVCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCByb3dzWzBdLnN1YlJvd3NbMF0pOwotCi0gICAgLy8gQXJyb3cgcmlnaHQgb24gYSBub24tZXhwYW5kYWJsZSByb3cgc2hvdWxkIGRvIG5vdGhpbmcuCi0gICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHJvd3NbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHJvd3NbMV0pOwotICAgIHRhYmxlLnBlcmZvcm1LZXlDb21tYW5kXygnQVJST1dfUklHSFQnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdywgcm93c1sxXSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzFdKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3JlZHVjZU51bWJlck9mQ29sdW1uc0FmdGVyUmVidWlsZCcsIGZ1bmN0aW9uKCkgewotICAgIC8vIENyZWF0ZSBhIHRhYmxlIHdpdGggdHdvIGNvbHVtbnMuCi0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdGaXJzdCBDb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAotICAgICAgICB3aWR0aDogJzEwMHB4JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdTZWNvbmQgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnNlY29uZERhdGE7IH0sCi0gICAgICAgIHdpZHRoOiAnMTAwcHgnCi0gICAgICB9Ci0gICAgXTsKLQotICAgIC8vIEJ1aWxkIHRoZSB0YWJsZS4KLSAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0KLSAgICAvLyBDaGVjayB0aGF0IHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgY29sdW1ucyBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi4KLSAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnRmlyc3QgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfSwKLSAgICAgICAgd2lkdGg6ICcyMDBweCcKLSAgICAgIH0KLSAgICBdOwotICB9KTsKLQotICB0ZXN0KCdjZWxsU2VsZWN0aW9uQmFzaWMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdUaXRsZScsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5hOyB9LAotICAgICAgICB3aWR0aDogJzE1MHB4JywKLSAgICAgICAgc3VwcG9ydHNDZWxsU2VsZWN0aW9uOiBmYWxzZQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdDb2wxJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmI7IH0sCi0gICAgICAgIHdpZHRoOiAnMzMlJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdDb2wyJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmIgKiAyOyB9LAotICAgICAgICB3aWR0aDogJzMzJScKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnQ29sMycsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5iICogMzsgfSwKLSAgICAgICAgd2lkdGg6ICczMyUnCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZS5zaG93SGVhZGVyID0gdHJ1ZTsKLSAgICB0YWJsZS5zdXBwb3J0c1NlbGVjdGlvbiA9IHRydWU7Ci0gICAgdGFibGUuY2VsbFNlbGVjdGlvbk1vZGUgPSB0cnVlOwotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgdGFibGUudGFibGVSb3dzID0gWwotICAgICAgewotICAgICAgICBhOiAnZmlyc3QnLAotICAgICAgICBiOiAnMScKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGE6ICdzZWNvbmQnLAotICAgICAgICBiOiAnMicKLSAgICAgIH0KLSAgICBdOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHRhYmxlLnRhYmxlUm93c1swXTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRDb2x1bW5JbmRleCwgMSk7Ci0KLSAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX0RPV04nKTsKLSAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX1JJR0hUJyk7Ci0gICAgdGFibGUucGVyZm9ybUtleUNvbW1hbmRfKCdBUlJPV19SSUdIVCcpOwotICAgIHRhYmxlLnBlcmZvcm1LZXlDb21tYW5kXygnQVJST1dfTEVGVCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCB0YWJsZS50YWJsZVJvd3NbMV0pOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4LCAyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaGVhZGVyc1dpdGhIdG1sRWxlbWVudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZmlyc3RDb2x1bW5UaXRsZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdGaXJzdCBDb2x1bW4nKTsKLSAgICB2YXIgc2Vjb25kQ29sdW1uVGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgc2Vjb25kQ29sdW1uVGl0bGUuaW5uZXJUZXh0ID0gJ1NlY29uZCBDb2x1bW4nOwotICAgIHNlY29uZENvbHVtblRpdGxlLnN0eWxlLmNvbG9yID0gJ2JsdWUnOwotCi0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiBmaXJzdENvbHVtblRpdGxlLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAotICAgICAgICB3aWR0aDogJzIwMHB4JwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6IHNlY29uZENvbHVtblRpdGxlLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfQotICAgICAgfQotICAgIF07Ci0KLSAgICB2YXIgcm93cyA9IFsKLSAgICAgIHsKLSAgICAgICAgZmlyc3REYXRhOiAnQTEnLAotICAgICAgICBzZWNvbmREYXRhOiAnQTInCi0gICAgICB9LAotICAgICAgewotICAgICAgICBmaXJzdERhdGE6ICdCMScsCi0gICAgICAgIHNlY29uZERhdGE6ICdCMicKLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgdGFibGUudGFibGVSb3dzID0gcm93czsKLSAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgdmFyIGZpcnN0Q29sdW1uSGVhZGVyID0gdGFibGUuJC5oZWFkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdOwotICAgIHZhciBzZWNvbmRDb2x1bW5IZWFkZXIgPSB0YWJsZS4kLmhlYWQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29sdW1uSGVhZGVyLmNlbGxUaXRsZS50ZXh0Q29udGVudCwgJ0ZpcnN0IENvbHVtbicpOwotICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb2x1bW5IZWFkZXIuY2VsbFRpdGxlLnRleHRDb250ZW50LCAnU2Vjb25kIENvbHVtbicpOwotICB9KTsKLQotICB0ZXN0KCd0ZXh0QWxpZ24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdhJywKLSAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgcmV0dXJuIHJvdy5hOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgXTsKLSAgICB2YXIgcm93cyA9IFt7YTogMX1dOwotCi0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7Ci0gICAgdGFibGUudGFibGVSb3dzID0gcm93czsKLSAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOwotCi0gICAgYXNzZXJ0LmVxdWFsKCdyaWdodCcsIHRhYmxlLiQuYm9keS5jaGlsZHJlblswXS5jaGlsZHJlblswXS5zdHlsZS50ZXh0QWxpZ24pOwotICB9KTsKLQotICB0ZXN0KCdzdWJSb3dzUHJvcGVydHlOYW1lJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnYScsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICByZXR1cm4gcm93LmE7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBdOwotICAgIHZhciByb3dzID0gWwotICAgICAgewotICAgICAgICBhOiAxLAotICAgICAgICBpc0V4cGFuZGVkOiB0cnVlLAotICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgIHthOiAyfQotICAgICAgICBdCi0gICAgICB9Ci0gICAgXTsKLQotICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICB0YWJsZS5zdWJSb3dzUHJvcGVydHlOYW1lID0gJ2NoaWxkcmVuJzsKLSAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7Ci0gICAgdGFibGUucmVidWlsZCgpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLQotICAgIGFzc2VydC5lcXVhbCgyLCB0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMF0udGV4dENvbnRlbnQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWlfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFhNDIxZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWlfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBUZXN0RWxlbWVudCA9IHRyLmIudWkuZGVmaW5lKCdkaXYnKTsKLSAgVGVzdEVsZW1lbnQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmRlY29yYXRlQ2FsbENvdW50KQotICAgICAgICB0aGlzLmRlY29yYXRlQ2FsbENvdW50ID0gMDsKLSAgICAgIHRoaXMuZGVjb3JhdGVDYWxsQ291bnQrKzsKLSAgICB9Ci0gIH07Ci0KLSAgdmFyIEJhc2UgPSB0ci5iLnVpLmRlZmluZSgnZGl2Jyk7Ci0gIEJhc2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuZGVjb3JhdGVkQXNCYXNlID0gdHJ1ZTsKLSAgICB9LAotICAgIHNldCBiYXNlUHJvcGVydHkodikgewotICAgICAgdGhpcy5iYXNlUHJvcGVydHlTZXQgPSB2OwotICAgIH0KLSAgfTsKLQotICB0ZXN0KCdkZWNvcmF0ZU9uY2VWaWFOZXcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGVzdEVsZW1lbnQgPSBuZXcgVGVzdEVsZW1lbnQoKTsKLSAgICBhc3NlcnQuZXF1YWwodGVzdEVsZW1lbnQuZGVjb3JhdGVDYWxsQ291bnQsIDEpOwotICB9KTsKLQotICB0ZXN0KCdkZWNvcmF0ZU9uY2VEaXJlY3RseScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRyLmIudWkuZGVjb3JhdGUodGVzdEVsZW1lbnQsIFRlc3RFbGVtZW50KTsKLSAgICBhc3NlcnQuZXF1YWwodGVzdEVsZW1lbnQuZGVjb3JhdGVDYWxsQ291bnQsIDEpOwotICB9KTsKLQotICB0ZXN0KCdjb21wb25lbnRUb1N0cmluZycsIGZ1bmN0aW9uKCkgewotICAgIGFzc2VydC5lcXVhbChCYXNlLnRvU3RyaW5nKCksICdkaXYnKTsKLQotICAgIHZhciBTdWIgPSB0ci5iLnVpLmRlZmluZSgnU3ViJywgQmFzZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKFN1Yi50b1N0cmluZygpLCAnZGl2OjpzdWInKTsKLQotICAgIHZhciBTdWJTdWIgPSB0ci5iLnVpLmRlZmluZSgnTWFyaW5lJywgU3ViKTsKLSAgICBhc3NlcnQuZXF1YWwoU3ViU3ViLnRvU3RyaW5nKCksICdkaXY6OnN1Yjo6bWFyaW5lJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Jhc2ljRGVmaW5lcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBiYXNlSW5zdGFuY2UgPSBuZXcgQmFzZSgpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKGJhc2VJbnN0YW5jZSwgQmFzZSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShiYXNlSW5zdGFuY2UuZGVjb3JhdGVkQXNCYXNlKTsKLQotICAgIGFzc2VydC5lcXVhbChiYXNlSW5zdGFuY2UuY29uc3RydWN0b3IsIEJhc2UpOwotICAgIGFzc2VydC5lcXVhbChiYXNlSW5zdGFuY2UuY29uc3RydWN0b3IudG9TdHJpbmcoKSwgJ2RpdicpOwotCi0gICAgYmFzZUluc3RhbmNlLmJhc2VQcm9wZXJ0eVNldCA9IDc7Ci0gICAgYXNzZXJ0LmVxdWFsKGJhc2VJbnN0YW5jZS5iYXNlUHJvcGVydHlTZXQsIDcpOwotICB9KTsKLQotICB0ZXN0KCdzdWJjbGFzc2luZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBTdWIgPSB0ci5iLnVpLmRlZmluZSgnc3ViJywgQmFzZSk7Ci0gICAgU3ViLnByb3RvdHlwZSA9IHsKLSAgICAgIF9fcHJvdG9fXzogQmFzZS5wcm90b3R5cGUsCi0gICAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMuZGVjb3JhdGVkQXNTdWIgPSB0cnVlOwotICAgICAgfQotICAgIH07Ci0KLSAgICB2YXIgc3ViSW5zdGFuY2UgPSBuZXcgU3ViKCk7Ci0gICAgYXNzZXJ0Lmluc3RhbmNlT2Yoc3ViSW5zdGFuY2UsIFN1Yik7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShzdWJJbnN0YW5jZS5kZWNvcmF0ZWRBc1N1Yik7Ci0KLSAgICBhc3NlcnQuaW5zdGFuY2VPZihzdWJJbnN0YW5jZSwgQmFzZSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1Ykluc3RhbmNlLmRlY29yYXRlZEFzQmFzZSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc3ViSW5zdGFuY2UuY29uc3RydWN0b3IsIFN1Yik7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1Ykluc3RhbmNlLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCksICdkaXY6OnN1YicpOwotCi0gICAgc3ViSW5zdGFuY2UuYmFzZVByb3BlcnR5ID0gdHJ1ZTsKLSAgICBhc3NlcnQuaXNUcnVlKHN1Ykluc3RhbmNlLmJhc2VQcm9wZXJ0eVNldCk7Ci0gIH0pOwotCi0gIHZhciBOb0FyZ3MgPSB0ci5iLnVpLmRlZmluZSgnZGl2Jyk7Ci0gIE5vQXJncy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUsCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5ub0FyZ3NEZWNvcmF0ZWRfID0gdHJ1ZTsKLSAgICB9LAotICAgIGdldCBub0FyZ3NEZWNvcmF0ZWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ub0FyZ3NEZWNvcmF0ZWRfOwotICAgIH0KLSAgfTsKLQotICB2YXIgQXJncyA9IHRyLmIudWkuZGVmaW5lKCdhcmdzJywgTm9BcmdzKTsKLSAgQXJncy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBOb0FyZ3MucHJvdG90eXBlLAotICAgIGRlY29yYXRlOiBmdW5jdGlvbihmaXJzdCkgewotICAgICAgdGhpcy5maXJzdF8gPSBmaXJzdDsKLSAgICAgIHRoaXMuYXJnc0RlY29yYXRlZF8gPSB0cnVlOwotICAgIH0sCi0gICAgZ2V0IGZpcnN0KCkgewotICAgICAgcmV0dXJuIHRoaXMuZmlyc3RfOwotICAgIH0sCi0gICAgZ2V0IGFyZ3NEZWNvcmF0ZWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5hcmdzRGVjb3JhdGVkXzsKLSAgICB9Ci0gIH07Ci0KLSAgdmFyIEFyZ3NDaGlsZCA9IHRyLmIudWkuZGVmaW5lKCdhcmdzLWNoaWxkJywgQXJncyk7Ci0gIEFyZ3NDaGlsZC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBBcmdzLnByb3RvdHlwZSwKLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oXywgc2Vjb25kKSB7Ci0gICAgICB0aGlzLnNlY29uZF8gPSBzZWNvbmQ7Ci0gICAgICB0aGlzLmFyZ3NDaGlsZERlY29yYXRlZF8gPSB0cnVlOwotICAgIH0sCi0gICAgZ2V0IHNlY29uZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlY29uZF87Ci0gICAgfSwKLSAgICBnZXQgZGVjb3JhdGVkKCkgewotICAgICAgcmV0dXJuIHRoaXMuZGVjb3JhdGVkXzsKLSAgICB9LAotICAgIGdldCBhcmdzQ2hpbGREZWNvcmF0ZWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5hcmdzQ2hpbGREZWNvcmF0ZWRfID0gdHJ1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgdmFyIEFyZ3NEZWNvcmF0aW5nQ2hpbGQgPSB0ci5iLnVpLmRlZmluZSgnYXJncy1kZWNvcmF0aW5nLWNoaWxkJywgQXJncyk7Ci0gIEFyZ3NEZWNvcmF0aW5nQ2hpbGQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogQXJncy5wcm90b3R5cGUsCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKGZpcnN0LCBzZWNvbmQpIHsKLSAgICAgIEFyZ3MucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgZmlyc3QpOwotICAgICAgdGhpcy5zZWNvbmRfID0gc2Vjb25kOwotICAgICAgdGhpcy5hcmdzRGVjb3JhdGluZ0NoaWxkRGVjb3JhdGVkXyA9IHRydWU7Ci0gICAgfSwKLSAgICBnZXQgc2Vjb25kKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2Vjb25kXzsKLSAgICB9LAotICAgIGdldCBkZWNvcmF0ZWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5kZWNvcmF0ZWRfOwotICAgIH0sCi0gICAgZ2V0IGFyZ3NEZWNvcmF0aW5nQ2hpbGREZWNvcmF0ZWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5hcmdzQ2hpbGREZWNvcmF0ZWRfID0gdHJ1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgdGVzdCgnZGVjb3JhdGVfbm9Bcmd1bWVudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbm9BcmdzOwotICAgIGFzc2VydC5kb2VzTm90VGhyb3coZnVuY3Rpb24oKSB7Ci0gICAgICBub0FyZ3MgPSBuZXcgTm9BcmdzKCk7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShub0FyZ3Mubm9BcmdzRGVjb3JhdGVkKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZGVjb3JhdGVfYXJndW1lbnRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGFyZ3MgPSBuZXcgQXJncygndGhpcyBpcyBmaXJzdCcpOwotICAgIGFzc2VydC5lcXVhbChhcmdzLmZpcnN0LCAndGhpcyBpcyBmaXJzdCcpOwotICAgIGFzc2VydC5pc1RydWUoYXJncy5hcmdzRGVjb3JhdGVkKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJncy5ub0FyZ3NEZWNvcmF0ZWQpOwotICB9KTsKLQotICB0ZXN0KCdkZWNvcmF0ZV9zdWJjbGFzc0FyZ3VtZW50cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBhcmdzQ2hpbGQgPSBuZXcgQXJnc0NoaWxkKCd0aGlzIGlzIGZpcnN0JywgJ2FuZCBzZWNvbmQnKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJnc0NoaWxkLmZpcnN0KTsKLSAgICBhc3NlcnQuZXF1YWwoYXJnc0NoaWxkLnNlY29uZCwgJ2FuZCBzZWNvbmQnKTsKLQotICAgIGFzc2VydC5pc1RydWUoYXJnc0NoaWxkLmFyZ3NDaGlsZERlY29yYXRlZCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGFyZ3NDaGlsZC5hcmdzRGVjb3JhdGVkKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJnc0NoaWxkLm5vQXJnc0RlY29yYXRlZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2RlY29yYXRlX3N1YkNsYXNzQ2FsbHNQYXJlbnREZWNvcmF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBhcmdzRGVjb3JhdGluZ0NoaWxkID0gbmV3IEFyZ3NEZWNvcmF0aW5nQ2hpbGQoCi0gICAgICAgICd0aGlzIGlzIGZpcnN0JywgJ2FuZCBzZWNvbmQnKTsKLSAgICBhc3NlcnQuZXF1YWwoYXJnc0RlY29yYXRpbmdDaGlsZC5maXJzdCwgJ3RoaXMgaXMgZmlyc3QnKTsKLSAgICBhc3NlcnQuZXF1YWwoYXJnc0RlY29yYXRpbmdDaGlsZC5zZWNvbmQsICdhbmQgc2Vjb25kJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShhcmdzRGVjb3JhdGluZ0NoaWxkLmFyZ3NEZWNvcmF0aW5nQ2hpbGREZWNvcmF0ZWQpOwotICAgIGFzc2VydC5pc1RydWUoYXJnc0RlY29yYXRpbmdDaGlsZC5hcmdzRGVjb3JhdGVkKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJnc0RlY29yYXRpbmdDaGlsZC5ub0FyZ3NEZWNvcmF0ZWQpOwotICB9KTsKLQotICB0ZXN0KCdkZWZpbmVXaXRoTmFtZXNwYWNlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHN2Z05TID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsKLSAgICB2YXIgY2xzID0gdHIuYi51aS5kZWZpbmUoJ3N2ZycsIHVuZGVmaW5lZCwgc3ZnTlMpOwotICAgIGNscy5wcm90b3R5cGUgPSB7Ci0gICAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgMjAwKTsKLSAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIDIwMCk7Ci0gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd2aWV3UG9ydCcsICcwIDAgMjAwIDIwMCcpOwotICAgICAgICB2YXIgcmVjdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCAncmVjdCcpOwotICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCd4JywgMTApOwotICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCd5JywgMTApOwotICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCd3aWR0aCcsIDE4MCk7Ci0gICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIDE4MCk7Ci0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQocmVjdEVsKTsKLSAgICAgIH0KLSAgICB9OwotICAgIHZhciBlbCA9IG5ldyBjbHMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZWwudGFnTmFtZSwgJ3N2ZycpOwotICAgIGFzc2VydC5lcXVhbChlbC5uYW1lc3BhY2VVUkksIHN2Z05TKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZWwpOwotICB9KTsKLQotICB0ZXN0KCdkZWZpbmVTdWJjbGFzc1dpdGhOYW1lc3BhY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc3ZnTlMgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnOwotICAgIHZhciBjbHMgPSB0ci5iLnVpLmRlZmluZSgnc3ZnJywgdW5kZWZpbmVkLCBzdmdOUyk7Ci0gICAgY2xzLnByb3RvdHlwZSA9IHsKLSAgICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAyMDApOwotICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgMjAwKTsKLSAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZpZXdQb3J0JywgJzAgMCAyMDAgMjAwJyk7Ci0gICAgICAgIHZhciByZWN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICdyZWN0Jyk7Ci0gICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ3gnLCAxMCk7Ci0gICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ3knLCAxMCk7Ci0gICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgMTgwKTsKLSAgICAgICAgcmVjdEVsLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgMTgwKTsKLSAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChyZWN0RWwpOwotICAgICAgfQotICAgIH07Ci0KLSAgICB2YXIgc3ViQ2xzID0gdHIuYi51aS5kZWZpbmUoJ3N1YicsIGNscyk7Ci0gICAgc3ViQ2xzLnByb3RvdHlwZSA9IHsKLSAgICAgIF9fcHJvdG9fXzogY2xzLnByb3RvdHlwZQotICAgIH07Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YkNscy50b1N0cmluZygpLCAnc3ZnOjpzdWInKTsKLQotICAgIHZhciBlbCA9IG5ldyBzdWJDbHMoKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZWwpOwotICAgIGFzc2VydC5lcXVhbChlbC50YWdOYW1lLCAnc3ZnJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLm5hbWVzcGFjZVVSSSwgc3ZnTlMpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvYXJyYXlfb2ZfbnVtYmVyc19zcGFuLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvYXJyYXlfb2ZfbnVtYmVyc19zcGFuLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYTQ0NmQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL2FycmF5X29mX251bWJlcnNfc3Bhbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci10ci5leHBvcnRUbygndHIuYi51bml0cycsIGZ1bmN0aW9uKCkgewotICB2YXIgQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMgPSB7Ci0gICAgQVZFUkFHRV9NT0RFOiAnYXZlcmFnZS1tb2RlJywKLSAgICBUT1RBTF9NT0RFOiAndG90YWwtbW9kZScKLSAgfTsKLSAgcmV0dXJuIHsKLSAgICBBcnJheU9mTnVtYmVyc1N1bW1hcnlNb2RlczogQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdS1hcnJheS1vZi1udW1iZXJzLXNwYW4iPgotICA8dGVtcGxhdGU+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubnVtYmVyc18gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnN1bW1hcnlNb2RlXyA9IHRyLmIudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMuQVZFUkFHRV9NT0RFOwotICAgIH0sCi0KLSAgICBnZXQgc3VtbWFyeU1vZGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zdW1tYXJ5TW9kZV87Ci0gICAgfSwKLQotICAgIHNldCBzdW1tYXJ5TW9kZShzdW1tYXJ5TW9kZSkgewotICAgICAgdGhpcy5zdW1tYXJ5TW9kZV8gPSBzdW1tYXJ5TW9kZTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBudW1iZXJzKCkgewotICAgICAgcmV0dXJuIHRoaXMubnVtYmVyc187Ci0gICAgfSwKLQotICAgIHNldCBudW1iZXJzKG51bWJlcnMpIHsKLSAgICAgIGlmIChudW1iZXJzID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5udW1iZXJzXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgaWYgKCEobnVtYmVycyBpbnN0YW5jZW9mIEFycmF5KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYW4gYXJyYXknKTsKLSAgICAgIHRoaXMubnVtYmVyc18gPSBudW1iZXJzOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLm51bWJlcnNfID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5zaGFkb3dSb290LnRleHRDb250ZW50ID0gJy0nOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHZhciBBcnJheU9mTnVtYmVyc1N1bW1hcnlNb2RlcyA9IHRyLmIudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXM7Ci0gICAgICB2YXIgdmFsdWU7Ci0gICAgICBpZiAodGhpcy5zdW1tYXJ5TW9kZV8gPT09IEFycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzLkFWRVJBR0VfTU9ERSkKLSAgICAgICAgdmFsdWUgPSB0ci5iLlN0YXRpc3RpY3MubWVhbih0aGlzLm51bWJlcnNfKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdmFsdWUgPSB0ci5iLlN0YXRpc3RpY3Muc3VtKHRoaXMubnVtYmVyc18pOwotCi0gICAgICB2YXIgdmFsdWVSb3VuZGVkID0gTWF0aC5yb3VuZCh2YWx1ZSAqIDEwMDAuMCkgLyAxMDAwLjA7Ci0gICAgICB0aGlzLnNoYWRvd1Jvb3QudGV4dENvbnRlbnQgPSB2YWx1ZVJvdW5kZWQ7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy9hcnJheV9vZl9udW1iZXJzX3NwYW5fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL2FycmF5X29mX251bWJlcnNfc3Bhbl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMDFiY2MuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL2FycmF5X29mX251bWJlcnNfc3Bhbl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy9hcnJheV9vZl9udW1iZXJzX3NwYW4uaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnaW5zdGFudGlhdGVJbkF2ZXJhZ2VNb2RlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtYXJyYXktb2YtbnVtYmVycy1zcGFuJyk7Ci0gICAgc3Bhbi5udW1iZXJzID0gWzEsIDIsIDNdOwotICAgIHNwYW4uc3VtbWFyeU1vZGUgPSB0ci5iLnVuaXRzLkFycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzLkFWRVJBR0VfTU9ERTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3Bhbik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNwYW4uc2hhZG93Um9vdC50ZXh0Q29udGVudCwgJzInKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVJblRvdGFsc01vZGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS1hcnJheS1vZi1udW1iZXJzLXNwYW4nKTsKLSAgICBzcGFuLm51bWJlcnMgPSBbMSwgMiwgM107Ci0gICAgc3Bhbi5zdW1tYXJ5TW9kZSA9IHRyLmIudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMuVE9UQUxTX01PREU7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHNwYW4pOwotICAgIGFzc2VydC5lcXVhbChzcGFuLnNoYWRvd1Jvb3QudGV4dENvbnRlbnQsICc2Jyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy9nZW5lcmljX3RhYmxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTRkZTllLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy9nZW5lcmljX3RhYmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIFRhYnVsYXIgZGF0YSB3cmFwcGVyLiBTaW1wbHkgd3JhcHMgYW4gYXJyYXkgb2YgaXRlbXMuCi0gICAqLwotICBmdW5jdGlvbiBHZW5lcmljVGFibGUoaXRlbXMpIHsKLSAgICBpZiAoaXRlbXMgIT09IHVuZGVmaW5lZCkKLSAgICAgIHRoaXMuaXRlbXMgPSBpdGVtczsKLSAgICBlbHNlCi0gICAgICB0aGlzLml0ZW1zID0gW107Ci0gIH07Ci0KLSAgR2VuZXJpY1RhYmxlLnByb3RvdHlwZSA9IHsKLQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgR2VuZXJpY1RhYmxlOiBHZW5lcmljVGFibGUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNjg1MWEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL2dlbmVyaWNfdGFibGVfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy9hcnJheV9vZl9udW1iZXJzX3NwYW4uaHRtbCI+Ci08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdS1nZW5lcmljLXRhYmxlLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICAjdGFibGUgewotICAgICAgZmxleDogMSAxIGF1dG87Ci0gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1iLXVpLXRhYmxlIGlkPSJ0YWJsZSI+PC90ci1iLXVpLXRhYmxlPgotICA8L3RlbXBsYXRlPgotPC9wb2x5bWVyLWVsZW1lbnQ+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51bml0cycsIGZ1bmN0aW9uKCkgewotICB2YXIgVEVYVF9DT0xVTU5fTU9ERSA9IDE7Ci0gIHZhciBOVU1FUklDX0NPTFVNTl9NT0RFID0gMjsKLQotICBmdW5jdGlvbiBpc051bWVyaWModmFsdWUpIHsKLSAgICAvLyBUT0RPKG5kdWNhKTogQWxzbyBjb25zaWRlciBvdGhlciB1bml0cyB0aGF0IGFyZSBudW1lcmljLgotICAgIGlmICgodHlwZW9mIHZhbHVlKSA9PT0gJ251bWJlcicpCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE51bWJlcikKLSAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGZ1bmN0aW9uIEdlbmVyaWNUYWJsZVZpZXdUb3RhbHNJdGVtKG9wdF92YWx1ZXMpIHsKLSAgICBpZiAob3B0X3ZhbHVlcyAhPT0gdW5kZWZpbmVkKQotICAgICAgdGhpcy52YWx1ZXMgPSBvcHRfdmFsdWVzOwotICAgIGVsc2UKLSAgICAgIHRoaXMudmFsdWVzID0gW107Ci0gIH0KLQotICBmdW5jdGlvbiBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvcihmaWVsZE5hbWUsIGZpcnN0RmllbGRWYWx1ZSkgewotICAgIHRoaXMudGl0bGUgPSBmaWVsZE5hbWU7Ci0gICAgdGhpcy5maWVsZE5hbWUgPSBmaWVsZE5hbWU7Ci0KLSAgICB0aGlzLnVwZGF0ZU1vZGVHaXZlblZhbHVlKGZpcnN0RmllbGRWYWx1ZSk7Ci0gIH0KLQotICBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvci5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IGNvbHVtbk1vZGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jb2x1bW5Nb2RlXzsKLSAgICB9LAotCi0gICAgZ2V0IGlzSW5OdW1lcmljTW9kZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmNvbHVtbk1vZGVfID09PSBOVU1FUklDX0NPTFVNTl9NT0RFOwotICAgIH0sCi0KLSAgICBjbXA6IGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgIHJldHVybiB0ci5iLmNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyhhLCBiLCBmdW5jdGlvbihhLCBiKSB7Ci0gICAgICAgIHZhciB2QSA9IGFbdGhpcy5maWVsZE5hbWVdOwotICAgICAgICB2YXIgdkIgPSBiW3RoaXMuZmllbGROYW1lXTsKLSAgICAgICAgcmV0dXJuIHRyLmIuY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKHZBLCB2QiwgZnVuY3Rpb24odkEsIHZCKSB7Ci0gICAgICAgICAgaWYgKHZBLmxvY2FsZUNvbXBhcmUpCi0gICAgICAgICAgICByZXR1cm4gdkEubG9jYWxlQ29tcGFyZSh2Qik7Ci0gICAgICAgICAgcmV0dXJuIHZBIC0gdkI7Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZU1vZGVHaXZlblZhbHVlOiBmdW5jdGlvbihmaWVsZFZhbHVlKSB7Ci0gICAgICBpZiAodGhpcy5jb2x1bW5Nb2RlXyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIGlmIChmaWVsZFZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGRWYWx1ZSA9PT0gbnVsbCkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGlzTnVtZXJpYyhmaWVsZFZhbHVlKSkKLSAgICAgICAgICB0aGlzLmNvbHVtbk1vZGVfID0gTlVNRVJJQ19DT0xVTU5fTU9ERTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIHRoaXMuY29sdW1uTW9kZV8gPSBURVhUX0NPTFVNTl9NT0RFOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIC8vIFVuZGVmaW5lZHMgJiBudWxscyBzaG91bGRuJ3QgY2hhbmdlIHRoZSBtb2RlLgotICAgICAgaWYgKGZpZWxkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBmaWVsZFZhbHVlID09PSBudWxsKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIC8vIElmIHdlIHdlcmUgYWxyZWFkeSBpbiBudW1lcmljIG1vZGUsIHRoZW4gd2UgZG9uJ3QKLSAgICAgIC8vIG5lZWQgdG8gcHV0IGl0IGludG8gbnVtZXJpYyBtb2RlIGFnYWluLiBBbmQsIGlmIHdlIHdlcmUKLSAgICAgIC8vIHByZXZpb3VzbHkgaW4gdGV4dCBtb2RlLCB0aGVuIHdlIGNhbid0IGdvIGludG8gbnVtZXJpYyBtb2RlIG5vdy4KLSAgICAgIGlmIChpc051bWVyaWMoZmllbGRWYWx1ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5jb2x1bW5Nb2RlXyA9IFRFWFRfQ09MVU1OX01PREU7Ci0gICAgfSwKLQotICAgIHZhbHVlOiBmdW5jdGlvbihpdGVtKSB7Ci0gICAgICB2YXIgZmllbGRWYWx1ZSA9IGl0ZW1bdGhpcy5maWVsZE5hbWVdOwotICAgICAgaWYgKGZpZWxkVmFsdWUgaW5zdGFuY2VvZiBHZW5lcmljVGFibGVWaWV3VG90YWxzSXRlbSkgewotICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS1hcnJheS1vZi1udW1iZXJzLXNwYW4nKTsKLSAgICAgICAgc3Bhbi5zdW1tYXJ5TW9kZSA9IHRyLmIudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMuVE9UQUxfTU9ERTsKLSAgICAgICAgc3Bhbi5udW1iZXJzID0gZmllbGRWYWx1ZS52YWx1ZXM7Ci0gICAgICAgIHJldHVybiBzcGFuOwotICAgICAgfQotCi0gICAgICBpZiAoZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm4gJy0nOwotCi0gICAgICAvLyBUT0RPKG5kdWNhKTogVXNlIHVuaXRzIG9iamVjdHMgaWYgYXBwbGljYWJsZS4KLSAgICAgIHJldHVybiBmaWVsZFZhbHVlOwotICAgIH0KLSAgfTsKLQotICBQb2x5bWVyKCd0ci1iLXUtZ2VuZXJpYy10YWJsZS12aWV3JywgewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5pdGVtc18gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBpdGVtcygpIHsKLSAgICAgIHJldHVybiB0aGlzLml0ZW1zXzsKLSAgICB9LAotCi0gICAgc2V0IGl0ZW1zKGl0ZW1zT3JHZW5lcmljVGFibGUpIHsKLSAgICAgIGlmIChpdGVtc09yR2VuZXJpY1RhYmxlID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5pdGVtc18gPSB1bmRlZmluZWQ7Ci0gICAgICB9IGVsc2UgaWYgKGl0ZW1zT3JHZW5lcmljVGFibGUgaW5zdGFuY2VvZiBBcnJheSkgewotICAgICAgICB0aGlzLml0ZW1zXyA9IGl0ZW1zT3JHZW5lcmljVGFibGU7Ci0gICAgICB9IGVsc2UgaWYgKGl0ZW1zT3JHZW5lcmljVGFibGUgaW5zdGFuY2VvZiB0ci5iLnVuaXRzLkdlbmVyaWNUYWJsZSkgewotICAgICAgICB0aGlzLml0ZW1zXyA9IGl0ZW1zT3JHZW5lcmljVGFibGUuaXRlbXM7Ci0gICAgICB9Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBjcmVhdGVDb2x1bW5zXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgY29sdW1uc0J5TmFtZSA9IHt9OwotICAgICAgdGhpcy5pdGVtc18uZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7Ci0gICAgICAgIHRyLmIuaXRlckl0ZW1zKGl0ZW0sIGZ1bmN0aW9uKGl0ZW1GaWVsZE5hbWUsIGl0ZW1GaWVsZFZhbHVlKSB7Ci0gICAgICAgICAgdmFyIGNvbERlc2MgPSBjb2x1bW5zQnlOYW1lW2l0ZW1GaWVsZE5hbWVdOwotICAgICAgICAgIGlmIChjb2xEZXNjICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIGNvbERlc2MudXBkYXRlTW9kZUdpdmVuVmFsdWUoaXRlbUZpZWxkVmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLQotICAgICAgICAgIGNvbERlc2MgPSBuZXcgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IoCi0gICAgICAgICAgICAgIGl0ZW1GaWVsZE5hbWUsIGl0ZW1GaWVsZFZhbHVlKTsKLSAgICAgICAgICBjb2x1bW5zQnlOYW1lW2l0ZW1GaWVsZE5hbWVdID0gY29sRGVzYzsKLSAgICAgICAgfSwgdGhpcyk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgdmFyIGNvbHVtbnMgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMoY29sdW1uc0J5TmFtZSk7Ci0gICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDApCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICAgIC8vIFNvcnQgYnkgbmFtZS4KLSAgICAgIGNvbHVtbnMuc29ydChmdW5jdGlvbihhLCBiKSB7Ci0gICAgICAgIHJldHVybiBhLnRpdGxlLmxvY2FsZUNvbXBhcmUoYi50aXRsZSk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gU2V0IHNpemVzLiBUaGlzIGlzIGNvbnZvbHV0ZWQgYnkgdGhlIGZhY3QgdGhhdCB0aGUgZmlyc3QKLSAgICAgIC8vIHRhYmxlIGNvbHVtbiBtdXN0IGhhdmUgZml4ZWQgc2l6ZS4KLSAgICAgIHZhciBjb2xXaWR0aFBlcmNlbnRhZ2U7Ci0gICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT0gMSkKLSAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gJzEwMCUnOwotICAgICAgZWxzZQotICAgICAgICBjb2xXaWR0aFBlcmNlbnRhZ2UgPSAoMTAwIC8gKGNvbHVtbnMubGVuZ3RoIC0gMSkpLnRvRml4ZWQoMykgKyAnJSc7Ci0gICAgICBjb2x1bW5zWzBdLndpZHRoID0gJzI1MHB4JzsKLSAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykKLSAgICAgICAgY29sdW1uc1tpXS53aWR0aCA9IGNvbFdpZHRoUGVyY2VudGFnZTsKLQotICAgICAgcmV0dXJuIGNvbHVtbnM7Ci0gICAgfSwKLQotICAgIGNyZWF0ZUZvb3RlclJvd3NJZk5lZWRlZF86IGZ1bmN0aW9uKGNvbHVtbnMpIHsKLSAgICAgIC8vIE1ha2UgdG90YWxzIHJvdyBpZiBuZWVkZWQuCi0gICAgICB2YXIgaGFzQ29sdW1uVGhhdElzTnVtZXJpYyA9IGNvbHVtbnMuc29tZShmdW5jdGlvbihjb2x1bW4pIHsKLSAgICAgICAgcmV0dXJuIGNvbHVtbi5pc0luTnVtZXJpY01vZGU7Ci0gICAgICB9KTsKLSAgICAgIGlmICghaGFzQ29sdW1uVGhhdElzTnVtZXJpYykKLSAgICAgICAgcmV0dXJuIFtdOwotCi0gICAgICB2YXIgdG90YWxzSXRlbXMgPSB7fTsKLSAgICAgIGNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbihjb2x1bW4pIHsKLSAgICAgICAgaWYgKCFjb2x1bW4uaXNJbk51bWVyaWNNb2RlKQotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHRvdGFsc0l0ZW0gPSBuZXcgR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0oKTsKLSAgICAgICAgdGhpcy5pdGVtc18uZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7Ci0gICAgICAgICAgdmFyIGZpZWxkVmFsdWUgPSBpdGVtW2NvbHVtbi5maWVsZE5hbWVdOwotICAgICAgICAgIGlmIChmaWVsZFZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGRWYWx1ZSA9PT0gbnVsbCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB0b3RhbHNJdGVtLnZhbHVlcy5wdXNoKGZpZWxkVmFsdWUpOwotICAgICAgICB9KTsKLSAgICAgICAgdG90YWxzSXRlbXNbY29sdW1uLmZpZWxkTmFtZV0gPSB0b3RhbHNJdGVtOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIHJldHVybiBbdG90YWxzSXRlbXNdOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGNvbHVtbnM7Ci0gICAgICBpZiAodGhpcy5pdGVtc18gIT09IHVuZGVmaW5lZCkKLSAgICAgICAgY29sdW1ucyA9IHRoaXMuY3JlYXRlQ29sdW1uc18oKTsKLQotICAgICAgaWYgKCFjb2x1bW5zKSB7Ci0gICAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbXTsKLSAgICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IFtdOwotICAgICAgICB0aGlzLiQudGFibGUuZm9vdGVyUm93cyA9IFtdOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IHRoaXMuaXRlbXNfOwotICAgICAgdGhpcy4kLnRhYmxlLmZvb3RlclJvd3MgPSB0aGlzLmNyZWF0ZUZvb3RlclJvd3NJZk5lZWRlZF8oY29sdW1ucyk7Ci0gICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOwotICAgIH0KLSAgfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBHZW5lcmljVGFibGVWaWV3VG90YWxzSXRlbTogR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0sCi0gICAgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3I6IEdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL2dlbmVyaWNfdGFibGVfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmZlMWY5MS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL2dlbmVyaWNfdGFibGVfdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvciA9Ci0gICAgICB0ci5iLnVuaXRzLkdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yOwotICB2YXIgR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0gPSB0ci5iLnVuaXRzLkdlbmVyaWNUYWJsZVZpZXdUb3RhbHNJdGVtOwotCi0gIHRlc3QoJ2Rlc2NCYXNpY051bWVyaWNNb2RlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNvbERlc2MgPSBuZXcgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IoJ2EnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShjb2xEZXNjLmlzSW5OdW1lcmljTW9kZSk7Ci0KLSAgICBjb2xEZXNjLnVwZGF0ZU1vZGVHaXZlblZhbHVlKDQpOwotICAgIGFzc2VydC5pc1RydWUoY29sRGVzYy5pc0luTnVtZXJpY01vZGUpOwotCi0gICAgY29sRGVzYy51cGRhdGVNb2RlR2l2ZW5WYWx1ZSg0KTsKLSAgICBhc3NlcnQuaXNUcnVlKGNvbERlc2MuaXNJbk51bWVyaWNNb2RlKTsKLQotICAgIGNvbERlc2MudXBkYXRlTW9kZUdpdmVuVmFsdWUodW5kZWZpbmVkKTsKLSAgICBjb2xEZXNjLnVwZGF0ZU1vZGVHaXZlblZhbHVlKG51bGwpOwotICAgIGFzc2VydC5pc1RydWUoY29sRGVzYy5pc0luTnVtZXJpY01vZGUpOwotCi0gICAgY29sRGVzYy51cGRhdGVNb2RlR2l2ZW5WYWx1ZSgnYScpOwotICAgIGFzc2VydC5pc0ZhbHNlKGNvbERlc2MuaXNJbk51bWVyaWNNb2RlKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZGVzY0Jhc2ljTm9uTnVtZXJpY01vZGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sRGVzYyA9IG5ldyBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvcignYScpOwotICAgIGFzc2VydC5pc0ZhbHNlKGNvbERlc2MuaXNJbk51bWVyaWNNb2RlKTsKLSAgICBjb2xEZXNjLnVwZGF0ZU1vZGVHaXZlblZhbHVlKDQpOwotICAgIGFzc2VydC5pc1RydWUoY29sRGVzYy5pc0luTnVtZXJpY01vZGUpOwotICAgIGNvbERlc2MudXBkYXRlTW9kZUdpdmVuVmFsdWUoJ2EnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShjb2xEZXNjLmlzSW5OdW1lcmljTW9kZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Rlc2NDbXBXaXRoTnVtYmVycycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb2xEZXNjID0gbmV3IEdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yKCdhJywgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbERlc2MuY21wKHthOiAxfSwge2E6IDJ9KSwgLTEpOwotICAgIGFzc2VydC5lcXVhbChjb2xEZXNjLmNtcCh7YTogMX0sIHVuZGVmaW5lZCksIC0xKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZGVzY0NtcFdpdGhUZXh0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNvbERlc2MgPSBuZXcgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IoJ2EnLCAndGV4dCcpOwotICAgIGFzc2VydC5lcXVhbChjb2xEZXNjLmNtcCh7YTogJ2EnfSwge2E6ICdiJ30pLCAtMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbERlc2MuY21wKHthOiAnYSd9LCB1bmRlZmluZWQpLCAtMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Rlc2NWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb2xEZXNjID0gbmV3IEdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yKCdhJywgMSk7Ci0gICAgdmFyIHZhbHVlID0gY29sRGVzYy52YWx1ZSh7YTogdW5kZWZpbmVkfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZhbHVlLCAnLScpOwotCi0gICAgdmFsdWUgPSBjb2xEZXNjLnZhbHVlKHthOiAzfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZhbHVlLCAzKTsKLQotICAgIHZhciB0b3RhbHNWYWx1ZSA9IGNvbERlc2MudmFsdWUoCi0gICAgICAgIHthOiBuZXcgR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0oWzEsIDIsIDNdKX0pOwotICAgIGFzc2VydC5lcXVhbCh0b3RhbHNWYWx1ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCksCi0gICAgICAgICAgICAgICAgICAndHItYi11LWFycmF5LW9mLW51bWJlcnMtc3BhbicpOwotICAgIGFzc2VydC5kZWVwRXF1YWwodG90YWxzVmFsdWUubnVtYmVycywgWzEsIDIsIDNdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZXZlcnl0aGluZ1RvZ2V0aGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LWdlbmVyaWMtdGFibGUtdmlldycpOwotICAgIHRhYmxlLml0ZW1zID0gWwotICAgICAgewotICAgICAgICBhOiAnc29tZVN0cmluZycsCi0gICAgICAgIGI6IDIsCi0gICAgICAgIGM6ICdhZHNmJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgYTogJ3NvbWVPdGhlclN0cmluZycsCi0gICAgICAgIGI6IDIsCi0gICAgICAgIGM6ICdhZHNmJwotICAgICAgfQotICAgIF07Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3VtbWFibGVDb2x1bW4nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtZ2VuZXJpYy10YWJsZS12aWV3Jyk7Ci0gICAgdGFibGUuaXRlbXMgPSBbCi0gICAgICB7Ci0gICAgICAgIGE6IDEKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGE6IDIKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGE6IDMKLSAgICAgIH0KLSAgICBdOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodGFibGUuJC50YWJsZS50YWJsZUNvbHVtbnMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUuJC50YWJsZS50YWJsZVJvd3MubGVuZ3RoLCAzKTsKLSAgICBhc3NlcnQuaXNUcnVlKHRhYmxlLiQudGFibGUudGFibGVDb2x1bW5zWzBdLmlzSW5OdW1lcmljTW9kZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLiQudGFibGUudGFibGVDb2x1bW5zWzBdLmZpZWxkTmFtZSwgJ2EnKTsKLSAgICB2YXIgdG90YWxzSXRlbSA9IHRhYmxlLiQudGFibGUuZm9vdGVyUm93c1swXS5hOwotICAgIGFzc2VydC5kZWVwRXF1YWwodG90YWxzSXRlbS52YWx1ZXMsIFsxLCAyLCAzXSk7Ci0gIH0pOwotCi0KLSAgdGVzdCgndXNpbmdHZW5lcmljVGFibGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtZ2VuZXJpYy10YWJsZS12aWV3Jyk7Ci0gICAgdGFibGUuaXRlbXMgPSBuZXcgdHIuYi51bml0cy5HZW5lcmljVGFibGUoWwotICAgICAgewotICAgICAgICBhOiAxCi0gICAgICB9Ci0gICAgXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLml0ZW1zLmxlbmd0aCwgMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ21peGVkVHlwZVRhYmxlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LWdlbmVyaWMtdGFibGUtdmlldycpOwotICAgIHRhYmxlLml0ZW1zID0gWwotICAgICAgewotICAgICAgICBhOiAxCi0gICAgICB9LAotICAgICAgewotICAgICAgICBhOiAyCi0gICAgICB9LAotICAgICAgewotICAgICAgICBiOiAnYycKLSAgICAgIH0KLSAgICBdOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2VtcHR5VGFibGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtZ2VuZXJpYy10YWJsZS12aWV3Jyk7Ci0gICAgdGFibGUuaXRlbXMgPSBbe31dOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS4kLnRhYmxlLnRhYmxlQ29sdW1ucy5sZW5ndGgsIDApOwotICB9KTsKLQotICB0ZXN0KCd1bmRlZmluZWRBbmRWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS1nZW5lcmljLXRhYmxlLXZpZXcnKTsKLSAgICB0YWJsZS5pdGVtcyA9IFsKLSAgICAgIHsKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGE6IDIKLSAgICAgIH0KLSAgICBdOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3VuZGVmaW5lZE9ubHknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtZ2VuZXJpYy10YWJsZS12aWV3Jyk7Ci0gICAgdGFibGUuaXRlbXMgPSBbCi0gICAgICB7Ci0gICAgICAgIGE6IHVuZGVmaW5lZAotICAgICAgfQotICAgIF07Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3NpemVfaW5fYnl0ZXMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy9zaXplX2luX2J5dGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MmI1ZjEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3NpemVfaW5fYnl0ZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JlY3QuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51bml0cycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogRmxvYXQgd3JhcHBlciwgcmVwcmVzZW50aW5nIGEgdGltZSBzdGFtcHMsIGNhcGFibGUgb2YgcHJldHR5LXByaW50aW5nLgotICAgKi8KLSAgZnVuY3Rpb24gU2l6ZUluQnl0ZXMobnVtQnl0ZXMpIHsKLSAgICB0aGlzLm51bUJ5dGVzID0gbnVtQnl0ZXM7Ci0gIH07Ci0KLSAgU2l6ZUluQnl0ZXMucHJvdG90eXBlID0gewotICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLm51bUJ5dGVzLnRvRml4ZWQoMCkgKyAnIGJ5dGVzJzsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTaXplSW5CeXRlczogU2l6ZUluQnl0ZXMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNjYyYTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3NpemVfaW5fYnl0ZXNfc3Bhbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlcy5odG1sIj4KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYi11LXNpemUtaW4tYnl0ZXMtc3BhbiI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Ci0gICAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxzcGFuIGlkPSJjb250ZW50Ij48L3NwYW4+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoOTg4OCk7Ci0gICAgICB0aGlzLm51bUJ5dGVzXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IG51bUJ5dGVzKCkgewotICAgICAgcmV0dXJuIHRoaXMubnVtQnl0ZXNfOwotICAgIH0sCi0KLSAgICBzZXQgbnVtQnl0ZXMobnVtQnl0ZXNPclNpemVJbkJ5dGVzKSB7Ci0gICAgICBpZiAobnVtQnl0ZXNPclNpemVJbkJ5dGVzIGluc3RhbmNlb2YgdHIuYi51bml0cy5TaXplSW5CeXRlcykKLSAgICAgICAgdGhpcy5udW1CeXRlc18gPSBudW1CeXRlc09yU2l6ZUluQnl0ZXMubnVtQnl0ZXM7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMubnVtQnl0ZXNfID0gbnVtQnl0ZXNPclNpemVJbkJ5dGVzOwotCi0gICAgICB2YXIgbnVtQnl0ZXMgPSB0aGlzLm51bUJ5dGVzOwotCi0gICAgICB2YXIgc2lnblByZWZpeCA9ICcnOwotICAgICAgaWYgKG51bUJ5dGVzIDwgMCkgewotICAgICAgICBzaWduUHJlZml4ID0gJy0nOwotICAgICAgICBudW1CeXRlcyA9IC1udW1CeXRlczsKLSAgICAgIH0KLQotICAgICAgdmFyIHVuaXRQcmVmaXhlcyA9IFsnJywgJ0tpJywgJ01pJywgJ0dpJywgJ1RpJ107Ci0gICAgICB2YXIgaSA9IDA7Ci0gICAgICB3aGlsZSAobnVtQnl0ZXMgPj0gMTAyNCAmJiBpIDwgdW5pdFByZWZpeGVzLmxlbmd0aCAtIDEpIHsKLSAgICAgICAgbnVtQnl0ZXMgLz0gMTAyNDsKLSAgICAgICAgaSsrOwotICAgICAgfQotICAgICAgdmFyIHNpemVTdHJpbmcgPQotICAgICAgICAgIHNpZ25QcmVmaXggKyBudW1CeXRlcy50b0ZpeGVkKDEpICsgJyAnICsgdW5pdFByZWZpeGVzW2ldICsgJ0InOwotCi0gICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9IHNpemVTdHJpbmc7Ci0gICAgfSwKLQotICAgIGdldCBzdHJpbmdDb250ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50OwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy9zaXplX2luX2J5dGVzX3NwYW5fdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0N2M3NmQxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy9zaXplX2luX2J5dGVzX3NwYW5fdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGltZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7Ci0gICAgdGltZVNwYW4ubnVtQnl0ZXMgPSA1ICogMTAyNDsKLSAgICBhc3NlcnQuZXF1YWwodGltZVNwYW4ubnVtQnl0ZXMsIDUgKiAxMDI0KTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZVNwYW4pOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZVdpdGhPYmplY3QnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGltZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7Ci0gICAgdGltZVNwYW4ubnVtQnl0ZXMgPSBuZXcgdHIuYi51bml0cy5TaXplSW5CeXRlcyg1ICogMTAyNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRpbWVTcGFuLm51bUJ5dGVzLCA1ICogMTAyNCk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTcGFuKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2l6ZVN0cmluZ3MnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7Ci0KLSAgICBlbC5udW1CeXRlcyA9IDA7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLnN0cmluZ0NvbnRlbnQsICcwLjAgQicpOwotCi0gICAgZWwubnVtQnl0ZXMgPSAxOwotICAgIGFzc2VydC5lcXVhbChlbC5zdHJpbmdDb250ZW50LCAnMS4wIEInKTsKLQotICAgIGVsLm51bUJ5dGVzID0gMTUzNjsKLSAgICBhc3NlcnQuZXF1YWwoZWwuc3RyaW5nQ29udGVudCwgJzEuNSBLaUInKTsKLQotICAgIGVsLm51bUJ5dGVzID0gNDI0LjIgKiAxMDI0ICogMTAyNDsKLSAgICBhc3NlcnQuZXF1YWwoZWwuc3RyaW5nQ29udGVudCwgJzQyNC4yIE1pQicpOwotCi0gICAgZWwubnVtQnl0ZXMgPSA1ICogMTAyNCAqIDEwMjQgKiAxMDI0OwotICAgIGFzc2VydC5lcXVhbChlbC5zdHJpbmdDb250ZW50LCAnNS4wIEdpQicpOwotCi0gICAgZWwubnVtQnl0ZXMgPSAxMDI1ICogMTAyNCAqIDEwMjQgKiAxMDI0ICogMTAyNDsKLSAgICBhc3NlcnQuZXF1YWwoZWwuc3RyaW5nQ29udGVudCwgJzEwMjUuMCBUaUInKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZWwpOwotCi0gICAgZWwubnVtQnl0ZXMgPSAtMi41ICogMTAyNCAqIDEwMjQ7Ci0gICAgYXNzZXJ0LmVxdWFsKGVsLnN0cmluZ0NvbnRlbnQsICctMi41IE1pQicpOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdGltZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmRhZGYwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4NCi08IS0tDQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUNCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLg0KLS0tPg0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPg0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudF90YXJnZXQuaHRtbCI+DQotDQotPHNjcmlwdD4NCi0ndXNlIHN0cmljdCc7DQotDQotLyoqDQotICogQGZpbGVvdmVydmlldyBUaW1lIGN1cnJlbnREaXNwbGF5VW5pdA0KLSAqLw0KLXRyLmV4cG9ydFRvKCd0ci5iLnVuaXRzJywgZnVuY3Rpb24oKSB7DQotICB2YXIgbXMgPSB7DQotICAgIHN1ZmZpeDogJ21zJywNCi0gICAgZm9ybWF0OiBmdW5jdGlvbih0cykgew0KLSAgICAgIHZhciB0c1JvdW5kZWQgPSBNYXRoLnJvdW5kKHRzICogMTAwMC4wKSAvIDEwMDAuMDsNCi0gICAgICB2YXIgbiA9IG5ldyBOdW1iZXIodHNSb3VuZGVkKTsNCi0gICAgICByZXR1cm4gbi50b0xvY2FsZVN0cmluZyh1bmRlZmluZWQsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAzIH0pICsgJyBtcyc7DQotICAgIH0NCi0gIH07DQotDQotICB2YXIgbnMgPSB7DQotICAgIHN1ZmZpeDogJ25zJywNCi0gICAgZm9ybWF0OiBmdW5jdGlvbih0cykgew0KLSAgICAgIHZhciB0c1JvdW5kZWQgPSBNYXRoLnJvdW5kKHRzICogMTAwMDAwMC4wKTsNCi0gICAgICB2YXIgbiA9IG5ldyBOdW1iZXIodHNSb3VuZGVkKTsNCi0gICAgICByZXR1cm4gbi50b0xvY2FsZVN0cmluZyh1bmRlZmluZWQsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAwIH0pICsgJyBucyc7DQotICAgIH0NCi0gIH07DQotDQotICB2YXIgVGltZSA9IHsNCi0gICAgc3VwcG9ydGVkVW5pdHM6IHsNCi0gICAgICBtczogbXMsDQotICAgICAgbnM6IG5zDQotICAgIH0sDQotDQotICAgIHJlc2V0OiBmdW5jdGlvbigpIHsNCi0gICAgICB0aGlzLmN1cnJlbnREaXNwbGF5VW5pdCA9IG1zOw0KLSAgICB9LA0KLQ0KLSAgICBjdXJyZW50RGlzcGxheVVuaXRfOiBtcywNCi0gICAgZ2V0IGN1cnJlbnREaXNwbGF5VW5pdCgpIHsNCi0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50RGlzcGxheVVuaXRfOw0KLSAgICB9LA0KLSAgICBzZXQgY3VycmVudERpc3BsYXlVbml0KHZhbHVlKSB7DQotICAgICAgaWYgKHRoaXMuY3VycmVudERpc3BsYXlVbml0XyA9PSB2YWx1ZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgICB0aGlzLmN1cnJlbnREaXNwbGF5VW5pdF8gPSB2YWx1ZTsNCi0gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5LXVuaXQtY2hhbmdlZCcpKTsNCi0gICAgfQ0KLSAgfTsNCi0NCi0gIHRyLmIuRXZlbnRUYXJnZXQuZGVjb3JhdGUoVGltZSk7DQotDQotICByZXR1cm4gew0KLSAgICBUaW1lOiBUaW1lDQotICB9Ow0KLX0pOw0KLTwvc2NyaXB0Pg0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzExMDM3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yZWN0Lmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEZsb2F0IHdyYXBwZXIsIHJlcHJlc2VudGluZyBhIHRpbWUgZHVyYXRpb24sIGNhcGFibGUgb2YgcHJldHR5LXByaW50aW5nLgotICAgKi8KLSAgZnVuY3Rpb24gVGltZUR1cmF0aW9uKGR1cmF0aW9uKSB7Ci0gICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uOwotICB9OwotCi0gIFRpbWVEdXJhdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuZHVyYXRpb24udG9GaXhlZCgzKSArICcgbXMnOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFRpbWVEdXJhdGlvbjogVGltZUR1cmF0aW9uCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDJmYWVhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uX3NwYW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotdHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gY3JlYXRlVGltZVNwYW4oZHVyYXRpb24pIHsKLSAgICBpZiAoZHVyYXRpb24gPT09IHVuZGVmaW5lZCkKLSAgICAgIHJldHVybiAnJzsKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKLSAgICBzcGFuLmR1cmF0aW9uID0gZHVyYXRpb247Ci0gICAgcmV0dXJuIHNwYW47Ci0gIH0KLQotICB0ci5iLnVuaXRzLlRpbWUuYWRkRXZlbnRMaXN0ZW5lcignZGlzcGxheS11bml0LWNoYW5nZWQnLCBmdW5jdGlvbihlKSB7Ci0gICAgdHIuYi5maW5kRGVlcEVsZW1lbnRzTWF0Y2hpbmcoZG9jdW1lbnQuYm9keSwKLSAgICAgICd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJykuZm9yRWFjaChmdW5jdGlvbihlbCkgewotICAgICAgICBlbC51cGRhdGVDb250ZW50XygpOwotICAgICAgfSk7Ci0gIH0pOwotCi0gIHJldHVybiB7Ci0gICAgY3JlYXRlVGltZVNwYW46IGNyZWF0ZVRpbWVTcGFuCi0gIH07Ci19KTsKLTwvc2NyaXB0PgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4iPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwotICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICB9Ci0gICAgI3dhcm5pbmcgewotICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKLSAgICAgIGZvbnQtc2l6ZTogNjYlOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxzcGFuIGlkPSJjb250ZW50Ij48L3NwYW4+Ci0gICAgPHNwYW4gaWQ9Indhcm5pbmciIHN0eWxlPSJkaXNwbGF5Om5vbmUiPiYjOTg4ODs8L3NwYW4+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLndhcm5pbmdfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5kdXJhdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBkdXJhdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmR1cmF0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IGR1cmF0aW9uKGR1cmF0aW9uKSB7Ci0gICAgICBpZiAoZHVyYXRpb24gaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbikKLSAgICAgICAgdGhpcy5kdXJhdGlvbl8gPSBkdXJhdGlvbi5kdXJhdGlvbjsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5kdXJhdGlvbl8gPSBkdXJhdGlvbjsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudF8oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudF86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGNvbnRlbnQgPSB0ci5iLnVuaXRzLlRpbWUuY3VycmVudERpc3BsYXlVbml0LmZvcm1hdCh0aGlzLmR1cmF0aW9uXyk7Ci0gICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9IGNvbnRlbnQ7Ci0gICAgfSwKLQotICAgIGdldCB3YXJuaW5nKCkgewotICAgICAgcmV0dXJuIHRoaXMud2FybmluZ187Ci0gICAgfSwKLQotICAgIHNldCB3YXJuaW5nKHdhcm5pbmcpIHsKLSAgICAgIHRoaXMud2FybmluZ18gPSB3YXJuaW5nOwotICAgICAgdmFyIHdhcm5pbmdFbCA9IHRoaXMuJC53YXJuaW5nOwotICAgICAgaWYgKHRoaXMud2FybmluZ18pIHsKLSAgICAgICAgd2FybmluZ0VsLnRpdGxlID0gd2FybmluZzsKLSAgICAgICAgd2FybmluZ0VsLnN0eWxlLmRpc3BsYXkgPSAnJzsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHdhcm5pbmdFbC50aXRsZSA9ICcnOwotICAgICAgICB3YXJuaW5nRWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgIH0KLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTUzNWZlZi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRpbWVTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LXRpbWUtZHVyYXRpb24tc3BhbicpOwotICAgIHRpbWVTcGFuLmR1cmF0aW9uID0gNzM7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTcGFuKTsKLSAgfSk7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlV2l0SE9iamVjdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0aW1lU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKLSAgICB0aW1lU3Bhbi5kdXJhdGlvbiA9IG5ldyB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbig3Myk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTcGFuKTsKLSAgICBhc3NlcnQuZXF1YWwodGltZVNwYW4uZHVyYXRpb24sIDczKTsKLSAgfSk7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlV2l0aFdhcm5pbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGltZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7Ci0gICAgdGltZVNwYW4uZHVyYXRpb24gPSA0MDA7Ci0gICAgdGltZVNwYW4ud2FybmluZyA9ICd0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGlzIHRpbWUnOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lU3Bhbik7Ci0gIH0pOwotCi0gIHRlc3QoJ3dhcm5pbmdBbmROb25XYXJuaW5nSGF2ZVNpbWlsYXJIZWlnaHRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNwYW5BID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LXRpbWUtZHVyYXRpb24tc3BhbicpOwotICAgIHNwYW5BLmR1cmF0aW9uID0gNDAwOwotCi0gICAgdmFyIHNwYW5CID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LXRpbWUtZHVyYXRpb24tc3BhbicpOwotICAgIHNwYW5CLmR1cmF0aW9uID0gNDAwOwotICAgIHNwYW5CLndhcm5pbmcgPSAndGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhpcyB0aW1lJzsKLQotICAgIHZhciBvdmVyYWxsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgb3ZlcmFsbC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwotICAgIG92ZXJhbGwuYXBwZW5kQ2hpbGQoc3BhbkEpOwotICAgIHNwYW5CLnN0eWxlLm1hcmdpbkxlZnQgPSAnNHB4JzsKLSAgICBvdmVyYWxsLmFwcGVuZENoaWxkKHNwYW5CKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQob3ZlcmFsbCk7Ci0gIH0pOwotCi0KLSAgdGVzdCgncmVzcGVjdEN1cnJlbnREaXNwbGF5VW5pdCcsIGZ1bmN0aW9uKCkgewotICAgIHRyeSB7Ci0gICAgICB2YXIgVGltZSA9IHRyLmIudW5pdHMuVGltZTsKLSAgICAgIFRpbWUuY3VycmVudERpc3BsYXlVbml0ID0gVGltZS5zdXBwb3J0ZWRVbml0cy5uczsKLQotICAgICAgdmFyIHRpbWVTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LXRpbWUtZHVyYXRpb24tc3BhbicpOwotICAgICAgdGltZVNwYW4uZHVyYXRpb24gPSA3MzsKLSAgICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lU3Bhbik7Ci0KLSAgICAgIGFzc2VydC5pc1RydWUodGltZVNwYW4uJC5jb250ZW50LnRleHRDb250ZW50LmluZGV4T2YoJ25zJykgPiAwKTsKLSAgICAgIFRpbWUuY3VycmVudERpc3BsYXlVbml0ID0gVGltZS5zdXBwb3J0ZWRVbml0cy5tczsKLSAgICAgIGFzc2VydC5pc1RydWUodGltZVNwYW4uJC5jb250ZW50LnRleHRDb250ZW50LmluZGV4T2YoJ21zJykgPiAwKTsKLSAgICB9IGZpbmFsbHkgewotICAgICAgVGltZS5yZXNldCgpOwotICAgIH0KLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfc3RhbXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMjA2MWQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfc3RhbXAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JlY3QuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51bml0cycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogRmxvYXQgd3JhcHBlciwgcmVwcmVzZW50aW5nIGEgdGltZSBzdGFtcHMsIGNhcGFibGUgb2YgcHJldHR5LXByaW50aW5nLgotICAgKi8KLSAgZnVuY3Rpb24gVGltZVN0YW1wKHRpbWVzdGFtcCkgewotICAgIHRoaXMudGltZXN0YW1wID0gdGltZXN0YW1wOwotICB9OwotCi0gIFRpbWVTdGFtcC5wcm90b3R5cGUgPSB7Ci0gICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMudGltZXN0YW1wLnRvRml4ZWQoNCkgKyAnIG1zJzsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBUaW1lU3RhbXA6IFRpbWVTdGFtcAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUwZDJhOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdGltZV9zdGFtcF9zcGFuLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci10ci5leHBvcnRUbygndHIuYi51bml0cycsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBjcmVhdGVUaW1lU3RhbXBTcGFuKHRpbWVzdGFtcCkgewotICAgIGlmICh0aW1lc3RhbXAgPT09IHVuZGVmaW5lZCkKLSAgICAgIHJldHVybiAnJzsKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLXN0YW1wLXNwYW4nKTsKLSAgICBzcGFuLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICByZXR1cm4gc3BhbjsKLSAgfQotCi0gIHRyLmIudW5pdHMuVGltZS5hZGRFdmVudExpc3RlbmVyKCdkaXNwbGF5LXVuaXQtY2hhbmdlZCcsIGZ1bmN0aW9uKGUpIHsKLSAgICB0ci5iLmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhkb2N1bWVudC5ib2R5LAotICAgICAgJ3RyLWItdS10aW1lLXN0YW1wLXNwYW4nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7Ci0gICAgICAgIGVsLnVwZGF0ZUNvbnRlbnRfKCk7Ci0gICAgICB9KTsKLSAgfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBjcmVhdGVUaW1lU3RhbXBTcGFuOiBjcmVhdGVUaW1lU3RhbXBTcGFuCi0gIH07Ci19KTsKLTwvc2NyaXB0PgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWItdS10aW1lLXN0YW1wLXNwYW4iPgotICA8dGVtcGxhdGU+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRpbWVzdGFtcF8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCB0aW1lc3RhbXAoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50aW1lc3RhbXBfOwotICAgIH0sCi0KLSAgICBzZXQgdGltZXN0YW1wKHRpbWVzdGFtcCkgewotICAgICAgaWYgKHRpbWVzdGFtcCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuVGltZVN0YW1wKQotICAgICAgICB0aGlzLnRpbWVzdGFtcF8gPSB0aW1lc3RhbXAudGltZXN0YW1wOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnRpbWVzdGFtcF8gPSB0aW1lc3RhbXA7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRfKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBjb250ZW50ID0gdHIuYi51bml0cy5UaW1lLmN1cnJlbnREaXNwbGF5VW5pdC5mb3JtYXQodGhpcy50aW1lc3RhbXBfKTsKLSAgICAgIHRoaXMuc2hhZG93Um9vdC50ZXh0Q29udGVudCA9IGNvbnRlbnQ7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX3N0YW1wX3NwYW5fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MDJiNjcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbi5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0aW1lU3RhbXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1zdGFtcC1zcGFuJyk7Ci0gICAgdGltZVN0YW1wLnRpbWVzdGFtcCA9IDczOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lU3RhbXApOwotICB9KTsKLSAgdGVzdCgnaW5zdGFudGlhdGVXaXRoT2JqZWN0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRpbWVTdGFtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLXN0YW1wLXNwYW4nKTsKLSAgICB0aW1lU3RhbXAudGltZXN0YW1wID0gbmV3IHRyLmIudW5pdHMuVGltZVN0YW1wKDczKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZVN0YW1wKTsKLSAgICBhc3NlcnQuZXF1YWwodGltZVN0YW1wLnRpbWVzdGFtcCwgNzMpOwotICB9KTsKLQotICB0ZXN0KCdyZXNwZWN0Q3VycmVudERpc3BsYXlVbml0JywgZnVuY3Rpb24oKSB7Ci0gICAgdHJ5IHsKLSAgICAgIHZhciBUaW1lID0gdHIuYi51bml0cy5UaW1lOwotICAgICAgVGltZS5jdXJyZW50RGlzcGxheVVuaXQgPSBUaW1lLnN1cHBvcnRlZFVuaXRzLm5zOwotCi0gICAgICB2YXIgdGltZVN0YW1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LXRpbWUtc3RhbXAtc3BhbicpOwotICAgICAgdGltZVN0YW1wLnRpbWVzdGFtcCA9IDczOwotICAgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTdGFtcCk7Ci0KLSAgICAgIGFzc2VydC5pc1RydWUodGltZVN0YW1wLnNoYWRvd1Jvb3QudGV4dENvbnRlbnQuaW5kZXhPZignbnMnKSA+IDApOwotICAgICAgVGltZS5jdXJyZW50RGlzcGxheVVuaXQgPSBUaW1lLnN1cHBvcnRlZFVuaXRzLm1zOwotICAgICAgYXNzZXJ0LmlzVHJ1ZSh0aW1lU3RhbXAuc2hhZG93Um9vdC50ZXh0Q29udGVudC5pbmRleE9mKCdtcycpID4gMCk7Ci0gICAgfSBmaW5hbGx5IHsKLSAgICAgIFRpbWUucmVzZXQoKTsKLSAgICB9Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy91dGlsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHMvdXRpbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2E1OTk3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy91dGlsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWUuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgRGVwcmVjYXRlZCwgdXNlIHRoZSBvdGhlciB1bml0cyBjbGFzc2VzLgotICovCi10ci5leHBvcnRUbygndHIuYi51bml0cycsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiB0c1N0cmluZyh0cykgewotICAgIHJldHVybiB0ci5iLnVuaXRzLlRpbWUuY3VycmVudERpc3BsYXlVbml0LmZvcm1hdCh0cyk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIHRzU3RyaW5nOiB0c1N0cmluZwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2OTYwOTIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxzY3JpcHQgc3JjPSIvY2hhaS9jaGFpLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLSAgdmFyIGFzc2VydCA9IGNoYWkuYXNzZXJ0OwotPC9zY3JpcHQ+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L3N1aXRlX2xvYWRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC90ZXN0X2Nhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QvdGVzdF9zdWl0ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC90ZXN0X3J1bm5lci5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci10ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgewotICByZXR1cm4gewotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9jb21tb24uY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0L2NvbW1vbi5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhNDBhMDIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0L2NvbW1vbi5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotICovCi0KLS51bml0dGVzdC1wZW5kaW5nIHsKLSAgY29sb3I6IG9yYW5nZTsKLX0KLS51bml0dGVzdC1ydW5uaW5nIHsKLSAgY29sb3I6IG9yYW5nZTsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci19Ci0KLS51bml0dGVzdC1wYXNzZWQgewotICBjb2xvcjogZGFya2dyZWVuOwotfQotCi0udW5pdHRlc3QtZmFpbGVkIHsKLSAgY29sb3I6IGRhcmtyZWQ7Ci0gIGZvbnQtd2VpZ2h0OiBib2xkOwotfQotCi0udW5pdHRlc3QtZXhjZXB0aW9uIHsKLSAgY29sb3I6IHJlZDsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci19Ci0KLS51bml0dGVzdC1mYWlsdXJlIHsKLSAgYm9yZGVyOiAxcHggc29saWQgZ3JleTsKLSAgYm9yZGVyLXJhZGl1czogNXB4OwotICBwYWRkaW5nOiA1cHg7Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHRlc3QvaHRtbF90ZXN0X3Jlc3VsdHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9odG1sX3Rlc3RfcmVzdWx0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2UwN2Q0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9odG1sX3Rlc3RfcmVzdWx0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDI1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50cy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9jb25zdGFudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L2NvbW1vbi5jc3MiPgotPHN0eWxlPgotICB4LXRyLmIudW5pdHRlc3QtdGVzdC1yZXN1bHRzYmFzZQotICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gIH0KLQotICB4LXRyLmIudW5pdHRlc3QtdGVzdC1yZXN1bHRzID4geC1odG1sLXRlc3QtY2FzZS1yZXN1bHQuZGFyayB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKLSAgfQotCi0gIHgtaHRtbC10ZXN0LWNhc2UtcmVzdWx0IHsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgfQotICB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCA+ICN0aXRsZSwKLSAgeC1odG1sLXRlc3QtY2FzZS1yZXN1bHQgPiAjc3RhdHVzLAotICB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCA+ICNkZXRhaWxzID4geC1odG1sLXRlc3QtY2FzZS1lcnJvciA+ICNtZXNzYWdlLAotICB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCA+ICNkZXRhaWxzID4geC1odG1sLXRlc3QtY2FzZS1lcnJvciA+ICNzdGFjaywKLSAgeC1odG1sLXRlc3QtY2FzZS1yZXN1bHQgPiAjZGV0YWlscyA+IHgtaHRtbC10ZXN0LWNhc2UtZXJyb3IgPiAjcmV0dXJuLXZhbHVlIHsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBhdXRvOwotICB9Ci0KLSAgeC1odG1sLXRlc3QtY2FzZS1yZXN1bHQgPiAjZGV0YWlscyA+IHgtaHRtbC10ZXN0LWNhc2UtZXJyb3IgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZXk7Ci0gICAgYm9yZGVyLXJhZGl1czogNXB4OwotICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAgbWFyZ2luLWJvdHRvbTogMTRweDsKLSAgfQotCi0gIHgtaHRtbC10ZXN0LWNhc2UtcmVzdWx0ID4gI2RldGFpbHMgPiB4LWh0bWwtdGVzdC1jYXNlLWVycm9yID4gI21lc3NhZ2UsCi0gIHgtaHRtbC10ZXN0LWNhc2UtcmVzdWx0ID4gI2RldGFpbHMgPiB4LWh0bWwtdGVzdC1jYXNlLWVycm9yID4gI3N0YWNrIHsKLSAgICB3aGl0ZS1zcGFjZTogcHJlOwotICB9Ci0KLSAgeC1odG1sLXRlc3QtY2FzZS1yZXN1bHQgPiAjZGV0YWlscyA+IHgtaHRtbC10ZXN0LWNhc2UtaHRtbC1yZXN1bHQgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICB9Ci0KLTwvc3R5bGU+Ci08dGVtcGxhdGUgaWQ9IngtaHRtbC10ZXN0LWNhc2UtcmVzdWx0LXRlbXBsYXRlIj4KLSAgPHNwYW4gaWQ9InRpdGxlIj48L3NwYW4+IDxzcGFuIGlkPSJzdGF0dXMiPjwvc3Bhbj4gPHNwYW4gaWQ9InJldHVybi12YWx1ZSI+PC9zcGFuPgotICA8ZGl2IGlkPSJkZXRhaWxzIj48L2Rpdj4KLTwvdGVtcGxhdGU+Ci0KLTx0ZW1wbGF0ZSBpZD0ieC1odG1sLXRlc3QtY2FzZS1lcnJvci10ZW1wbGF0ZSI+Ci0gIDxkaXYgaWQ9InN0YWNrIj48L2Rpdj4KLTwvdGVtcGxhdGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci10ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgewotICB2YXIgVEhJU19ET0MgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7Ci0KLSAgdmFyIFRlc3RTdGF0dXMgPSB0ci5iLnVuaXR0ZXN0LlRlc3RTdGF0dXM7Ci0gIHZhciBUZXN0VHlwZXMgPSB0ci5iLnVuaXR0ZXN0LlRlc3RUeXBlczsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgSFRNTFRlc3RDYXNlUmVzdWx0ID0gdHIuYi51aS5kZWZpbmUoJ3gtaHRtbC10ZXN0LWNhc2UtcmVzdWx0Jyk7Ci0KLSAgSFRNTFRlc3RDYXNlUmVzdWx0LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKLSAgICAgICAgICAnI3gtaHRtbC10ZXN0LWNhc2UtcmVzdWx0LXRlbXBsYXRlJywgVEhJU19ET0MpKTsKLSAgICAgIHRoaXMudGVzdENhc2VfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy50ZXN0Q2FzZUhSZWZfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5kdXJhdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnRlc3RTdGF0dXNfID0gVGVzdFN0YXR1cy5QRU5ESU5HOwotICAgICAgdGhpcy50ZXN0UmV0dXJuVmFsdWVfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5zaG93SFRNTE91dHB1dF8gPSBmYWxzZTsKLSAgICAgIHRoaXMudXBkYXRlQ29sb3JBbmRTdGF0dXNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBzaG93SFRNTE91dHB1dCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnNob3dIVE1MT3V0cHV0XzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dIVE1MT3V0cHV0KHNob3dIVE1MT3V0cHV0KSB7Ci0gICAgICB0aGlzLnNob3dIVE1MT3V0cHV0XyA9IHNob3dIVE1MT3V0cHV0OwotICAgICAgdGhpcy51cGRhdGVIVE1MT3V0cHV0RGlzcGxheVN0YXRlXygpOwotICAgIH0sCi0KLSAgICBnZXQgdGVzdENhc2UoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50ZXN0Q2FzZV87Ci0gICAgfSwKLQotICAgIHNldCB0ZXN0Q2FzZSh0ZXN0Q2FzZSkgewotICAgICAgdGhpcy50ZXN0Q2FzZV8gPSB0ZXN0Q2FzZTsKLSAgICAgIHRoaXMudXBkYXRlVGl0bGVfKCk7Ci0gICAgfSwKLQotICAgIGdldCB0ZXN0Q2FzZUhSZWYoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50ZXN0Q2FzZUhSZWZfOwotICAgIH0sCi0KLSAgICBzZXQgdGVzdENhc2VIUmVmKGhyZWYpIHsKLSAgICAgIHRoaXMudGVzdENhc2VIUmVmXyA9IGhyZWY7Ci0gICAgICB0aGlzLnVwZGF0ZVRpdGxlXygpOwotICAgIH0sCi0gICAgdXBkYXRlVGl0bGVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0aXRsZUVsID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjdGl0bGUnKTsKLSAgICAgIGlmICh0aGlzLnRlc3RDYXNlXyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHRpdGxlRWwudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy50ZXN0Q2FzZUhSZWZfKSB7Ci0gICAgICAgIHRpdGxlRWwuaW5uZXJIVE1MID0gJzxhIGhyZWY9IicgKyB0aGlzLnRlc3RDYXNlSFJlZl8gKyAnIj4nICsKLSAgICAgICAgICAgIHRoaXMudGVzdENhc2VfLmZ1bGx5UXVhbGlmaWVkTmFtZSArICc8L2E+JzsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRpdGxlRWwudGV4dENvbnRlbnQgPSB0aGlzLnRlc3RDYXNlXy5mdWxseVF1YWxpZmllZE5hbWU7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFkZEVycm9yOiBmdW5jdGlvbihub3JtYWxpemVkRXhjZXB0aW9uKSB7Ci0gICAgICB2YXIgZXJyb3JFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3gtaHRtbC10ZXN0LWNhc2UtZXJyb3InKTsKLSAgICAgIGVycm9yRWwuYXBwZW5kQ2hpbGQodHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKAotICAgICAgICAgICcjeC1odG1sLXRlc3QtY2FzZS1lcnJvci10ZW1wbGF0ZScsIFRISVNfRE9DKSk7Ci0gICAgICBlcnJvckVsLnF1ZXJ5U2VsZWN0b3IoJyNzdGFjaycpLnRleHRDb250ZW50ID0gbm9ybWFsaXplZEV4Y2VwdGlvbi5zdGFjazsKLSAgICAgIHRoaXMucXVlcnlTZWxlY3RvcignI2RldGFpbHMnKS5hcHBlbmRDaGlsZChlcnJvckVsKTsKLSAgICAgIHRoaXMudXBkYXRlQ29sb3JBbmRTdGF0dXNfKCk7Ci0gICAgfSwKLQotICAgIGFkZEhUTUxPdXRwdXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKLSAgICAgIHZhciBodG1sUmVzdWx0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd4LWh0bWwtdGVzdC1jYXNlLWh0bWwtcmVzdWx0Jyk7Ci0gICAgICBodG1sUmVzdWx0RWwuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci0gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNkZXRhaWxzJykuYXBwZW5kQ2hpbGQoaHRtbFJlc3VsdEVsKTsKLQotICAgICAgdmFyIGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICBhc3NlcnQoYm91bmRzLndpZHRoICE9PSAwLCAnYWRkSFRNTE91dHB1dCBlbGVtZW50IGFzIDAgd2lkdGgnKTsKLSAgICAgIGFzc2VydChib3VuZHMuaGVpZ2h0ICE9PSAwLCAnYWRkSFRNTE91dHB1dCBlbGVtZW50IGhhcyAwIGhlaWdodCcpOwotICAgIH0sCi0KLSAgICB1cGRhdGVIVE1MT3V0cHV0RGlzcGxheVN0YXRlXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgaHRtbFJlc3VsdHMgPSB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3gtaHRtbC10ZXN0LWNhc2UtaHRtbC1yZXN1bHQnKTsKLSAgICAgIHZhciBkaXNwbGF5OwotICAgICAgaWYgKHRoaXMuc2hvd0hUTUxPdXRwdXQpCi0gICAgICAgIGRpc3BsYXkgPSAnJzsKLSAgICAgIGVsc2UKLSAgICAgICAgZGlzcGxheSA9ICh0aGlzLnRlc3RTdGF0dXNfID09IFRlc3RTdGF0dXMuUlVOTklORykgPyAnJyA6ICdub25lJzsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaHRtbFJlc3VsdHMubGVuZ3RoOyBpKyspCi0gICAgICAgIGh0bWxSZXN1bHRzW2ldLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5OwotICAgIH0sCi0KLSAgICBnZXQgaGFkRXJyb3JzKCkgewotICAgICAgcmV0dXJuICEhdGhpcy5xdWVyeVNlbGVjdG9yKCd4LWh0bWwtdGVzdC1jYXNlLWVycm9yJyk7Ci0gICAgfSwKLQotICAgIGdldCBkdXJhdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmR1cmF0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IGR1cmF0aW9uKGR1cmF0aW9uKSB7Ci0gICAgICB0aGlzLmR1cmF0aW9uXyA9IGR1cmF0aW9uOwotICAgICAgdGhpcy51cGRhdGVDb2xvckFuZFN0YXR1c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHRlc3RTdGF0dXMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50ZXN0U3RhdHVzXzsKLSAgICB9LAotCi0gICAgc2V0IHRlc3RTdGF0dXModGVzdFN0YXR1cykgewotICAgICAgdGhpcy50ZXN0U3RhdHVzXyA9IHRlc3RTdGF0dXM7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbG9yQW5kU3RhdHVzXygpOwotICAgICAgdGhpcy51cGRhdGVIVE1MT3V0cHV0RGlzcGxheVN0YXRlXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb2xvckFuZFN0YXR1c186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGNvbG9yQ2xzOwotICAgICAgdmFyIHN0YXR1czsKLSAgICAgIGlmICh0aGlzLmhhZEVycm9ycykgewotICAgICAgICBjb2xvckNscyA9ICd1bml0dGVzdC1mYWlsZWQnOwotICAgICAgICBzdGF0dXMgPSAnZmFpbGVkJzsKLSAgICAgIH0gZWxzZSBpZiAodGhpcy50ZXN0U3RhdHVzXyA9PSBUZXN0U3RhdHVzLlBFTkRJTkcpIHsKLSAgICAgICAgY29sb3JDbHMgPSAndW5pdHRlc3QtcGVuZGluZyc7Ci0gICAgICAgIHN0YXR1cyA9ICdwZW5kaW5nJzsKLSAgICAgIH0gZWxzZSBpZiAodGhpcy50ZXN0U3RhdHVzXyA9PSBUZXN0U3RhdHVzLlJVTk5JTkcpIHsKLSAgICAgICAgY29sb3JDbHMgPSAndW5pdHRlc3QtcnVubmluZyc7Ci0gICAgICAgIHN0YXR1cyA9ICdydW5uaW5nJzsKLSAgICAgIH0gZWxzZSB7IC8vIERPTkVfUlVOTklORyBhbmQgbm8gZXJyb3JzCi0gICAgICAgIGNvbG9yQ2xzID0gJ3VuaXR0ZXN0LXBhc3NlZCc7Ci0gICAgICAgIHN0YXR1cyA9ICdwYXNzZWQnOwotICAgICAgfQotCi0gICAgICB2YXIgc3RhdHVzRWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzdGF0dXMnKTsKLSAgICAgIGlmICh0aGlzLmR1cmF0aW9uXykKLSAgICAgICAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSBzdGF0dXMgKyAnICgnICsKLSAgICAgICAgICAgIHRoaXMuZHVyYXRpb25fLnRvRml4ZWQoMikgKyAnbXMpJzsKLSAgICAgIGVsc2UKLSAgICAgICAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSBzdGF0dXM7Ci0gICAgICBzdGF0dXNFbC5jbGFzc05hbWUgPSBjb2xvckNsczsKLSAgICB9LAotCi0gICAgZ2V0IHRlc3RSZXR1cm5WYWx1ZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnRlc3RSZXR1cm5WYWx1ZV87Ci0gICAgfSwKLQotICAgIHNldCB0ZXN0UmV0dXJuVmFsdWUodGVzdFJldHVyblZhbHVlKSB7Ci0gICAgICB0aGlzLnRlc3RSZXR1cm5WYWx1ZV8gPSB0ZXN0UmV0dXJuVmFsdWU7Ci0gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNyZXR1cm4tdmFsdWUnKS50ZXh0Q29udGVudCA9IHRlc3RSZXR1cm5WYWx1ZTsKLSAgICB9Ci0gIH07Ci0KLQotCi0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIEhUTUxUZXN0UmVzdWx0cyA9IHRyLmIudWkuZGVmaW5lKCd4LXRyLmIudW5pdHRlc3QtdGVzdC1yZXN1bHRzJyk7Ci0KLSAgSFRNTFRlc3RSZXN1bHRzLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVN0YXJ0VGltZV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnRvdGFsUnVuVGltZV8gPSAwOwotICAgICAgdGhpcy5udW1UZXN0c1RoYXRQYXNzZWRfID0gMDsKLSAgICAgIHRoaXMubnVtVGVzdHNUaGF0RmFpbGVkXyA9IDA7Ci0gICAgICB0aGlzLnNob3dIVE1MT3V0cHV0XyA9IGZhbHNlOwotICAgICAgdGhpcy5zaG93UGVuZGluZ0FuZFBhc3NlZFRlc3RzXyA9IGZhbHNlOwotICAgICAgdGhpcy5saW5raWZ5Q2FsbGJhY2tfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5oZWFkbGVzc18gPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IGhlYWRsZXNzKCkgewotICAgICAgcmV0dXJuIHRoaXMuaGVhZGxlc3NfOwotICAgIH0sCi0KLSAgICBzZXQgaGVhZGxlc3MoaGVhZGxlc3MpIHsKLSAgICAgIHRoaXMuaGVhZGxlc3NfID0gaGVhZGxlc3M7Ci0gICAgfSwKLQotICAgIGdldEhSZWZGb3JUZXN0Q2FzZTogZnVuY3Rpb24odGVzdENhc2UpIHsKLSAgICAgIC8qIE92ZXJyaWRlIHRoaXMgdG8gY3JlYXRlIGN1c3RvbSBsaW5rcyAqLwotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHNob3dIVE1MT3V0cHV0KCkgewotICAgICAgcmV0dXJuIHRoaXMuc2hvd0hUTUxPdXRwdXRfOwotICAgIH0sCi0KLSAgICBzZXQgc2hvd0hUTUxPdXRwdXQoc2hvd0hUTUxPdXRwdXQpIHsKLSAgICAgIHRoaXMuc2hvd0hUTUxPdXRwdXRfID0gc2hvd0hUTUxPdXRwdXQ7Ci0gICAgICB2YXIgdGVzdENhc2VSZXN1bHRzID0gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCd4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCcpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZVJlc3VsdHMubGVuZ3RoOyBpKyspCi0gICAgICAgIHRlc3RDYXNlUmVzdWx0c1tpXS5zaG93SFRNTE91dHB1dCA9IHNob3dIVE1MT3V0cHV0OwotICAgIH0sCi0KLSAgICBnZXQgc2hvd1BlbmRpbmdBbmRQYXNzZWRUZXN0cygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNob3dQZW5kaW5nQW5kUGFzc2VkVGVzdHNfOwotICAgIH0sCi0KLSAgICBzZXQgc2hvd1BlbmRpbmdBbmRQYXNzZWRUZXN0cyhzaG93UGVuZGluZ0FuZFBhc3NlZFRlc3RzKSB7Ci0gICAgICB0aGlzLnNob3dQZW5kaW5nQW5kUGFzc2VkVGVzdHNfID0gc2hvd1BlbmRpbmdBbmRQYXNzZWRUZXN0czsKLQotICAgICAgdmFyIHRlc3RDYXNlUmVzdWx0cyA9IHRoaXMucXVlcnlTZWxlY3RvckFsbCgneC1odG1sLXRlc3QtY2FzZS1yZXN1bHQnKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VSZXN1bHRzLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlTdGF0ZUZvclJlc3VsdF8odGVzdENhc2VSZXN1bHRzW2ldKTsKLSAgICB9LAotCi0gICAgdXBkYXRlRGlzcGxheVN0YXRlRm9yUmVzdWx0XzogZnVuY3Rpb24ocmVzKSB7Ci0gICAgICB2YXIgZGlzcGxheTsKLSAgICAgIGlmICh0aGlzLnNob3dQZW5kaW5nQW5kUGFzc2VkVGVzdHNfKSB7Ci0gICAgICAgIGlmIChyZXMudGVzdFN0YXR1cyA9PSBUZXN0U3RhdHVzLlJVTk5JTkcgfHwKLSAgICAgICAgICAgIHJlcy5oYWRFcnJvcnMpIHsKLSAgICAgICAgICBkaXNwbGF5ID0gJyc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgZGlzcGxheSA9ICdub25lJzsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZGlzcGxheSA9ICcnOwotICAgICAgfQotICAgICAgcmVzLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5OwotCi0gICAgICAvLyBUaGlzIGJpdCBvZiBtZXNzIGdpdmVzIHJlcyBvYmplY3RzIGEgZGFyayBjbGFzcyBiYXNlZCBvbiB3aGV0aGVyIHRoZWlyCi0gICAgICAvLyBsYXN0IHZpc2libGUgc2libGluZyB3YXMgbm90IGRhcmsuIEl0IHJlbGllcyBvbiB0aGUKLSAgICAgIC8vIHVwZGF0ZURpc3BsYXlTdGF0ZUZvclJlc3VsdF8gYmVpbmcgY2FsbGVkIG9uIGFsbCBwcmV2aW91cyBzaWJsaW5ncyBvZgotICAgICAgLy8gYW4gZWxlbWVudCBiZWZvcmUgYmVpbmcgY2FsbGVkIG9uIHRoZSBlbGVtZW50IGl0c2VsZi4gWWF5IGluZHVjdGlvbi4KLSAgICAgIHZhciBkYXJrOwotICAgICAgaWYgKCFyZXMucHJldmlvdXNTaWJsaW5nKSB7Ci0gICAgICAgIGRhcmsgPSB0cnVlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIGxhc3RWaXNpYmxlOwotICAgICAgICBmb3IgKHZhciBjdXIgPSByZXMucHJldmlvdXNTaWJsaW5nOwotICAgICAgICAgICAgIGN1cjsKLSAgICAgICAgICAgICBjdXIgPSBjdXIucHJldmlvdXNTaWJsaW5nKSB7Ci0gICAgICAgICAgaWYgKGN1ci5zdHlsZS5kaXNwbGF5ID09ICcnKSB7Ci0gICAgICAgICAgICBsYXN0VmlzaWJsZSA9IGN1cjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAobGFzdFZpc2libGUpIHsKLSAgICAgICAgICBkYXJrID0gIWxhc3RWaXNpYmxlLmNsYXNzTGlzdC5jb250YWlucygnZGFyaycpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGRhcmsgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIChkYXJrKQotICAgICAgICByZXMuY2xhc3NMaXN0LmFkZCgnZGFyaycpOwotICAgICAgZWxzZQotICAgICAgICByZXMuY2xhc3NMaXN0LnJlbW92ZSgnZGFyaycpOwotICAgIH0sCi0KLSAgICB3aWxsUnVuVGVzdDogZnVuY3Rpb24odGVzdENhc2UpIHsKLSAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0XyA9IG5ldyBIVE1MVGVzdENhc2VSZXN1bHQoKTsKLSAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xy5zaG93SFRNTE91dHB1dCA9IHRoaXMuc2hvd0hUTUxPdXRwdXRfOwotICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfLnRlc3RDYXNlID0gdGVzdENhc2U7Ci0gICAgICB2YXIgaHJlZiA9IHRoaXMuZ2V0SFJlZkZvclRlc3RDYXNlKHRlc3RDYXNlKTsKLSAgICAgIGlmIChocmVmKQotICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8udGVzdENhc2VIUmVmID0gaHJlZjsKLSAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xy50ZXN0U3RhdHVzID0gVGVzdFN0YXR1cy5SVU5OSU5HOwotICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydFRpbWVfID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8pOwotICAgICAgdGhpcy51cGRhdGVEaXNwbGF5U3RhdGVGb3JSZXN1bHRfKHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xyk7Ci0gICAgICB0aGlzLmxvZ18odGVzdENhc2UuZnVsbHlRdWFsaWZpZWROYW1lICsgJzogJyk7Ci0gICAgfSwKLQotICAgIGFkZEVycm9yRm9yQ3VycmVudFRlc3Q6IGZ1bmN0aW9uKGVycm9yKSB7Ci0gICAgICB0aGlzLmxvZ18oJ1xuJyk7Ci0KLSAgICAgIHZhciBub3JtYWxpemVkRXhjZXB0aW9uID0gdHIuYi5ub3JtYWxpemVFeGNlcHRpb24oZXJyb3IpOwotICAgICAgdGhpcy5sb2dfKCdFeGNlcHRpb246ICcgKyBub3JtYWxpemVkRXhjZXB0aW9uLm1lc3NhZ2UgKyAnXG4nICsKLSAgICAgICAgICBub3JtYWxpemVkRXhjZXB0aW9uLnN0YWNrKTsKLQotICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfLmFkZEVycm9yKG5vcm1hbGl6ZWRFeGNlcHRpb24pOwotICAgICAgdGhpcy51cGRhdGVEaXNwbGF5U3RhdGVGb3JSZXN1bHRfKHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xyk7Ci0gICAgICBpZiAodGhpcy5oZWFkbGVzc18pCi0gICAgICAgIHRoaXMubm90aWZ5VGVzdFJlc3VsdFRvRGV2U2VydmVyXygnRVhDRVBUJywgbm9ybWFsaXplZEV4Y2VwdGlvbi5zdGFjayk7Ci0gICAgfSwKLQotICAgIGFkZEhUTUxPdXRwdXRGb3JDdXJyZW50VGVzdDogZnVuY3Rpb24oZWxlbWVudCkgewotICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfLmFkZEhUTUxPdXRwdXQoZWxlbWVudCk7Ci0gICAgICB0aGlzLnVwZGF0ZURpc3BsYXlTdGF0ZUZvclJlc3VsdF8odGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfKTsKLSAgICB9LAotCi0gICAgc2V0UmV0dXJuVmFsdWVGcm9tQ3VycmVudFRlc3Q6IGZ1bmN0aW9uKHJldHVyblZhbHVlKSB7Ci0gICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8udGVzdFJldHVyblZhbHVlID0gcmV0dXJuVmFsdWU7Ci0gICAgfSwKLQotICAgIGRpZEN1cnJlbnRUZXN0RW5kOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0ZXN0Q2FzZVJlc3VsdCA9IHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0XzsKLSAgICAgIHZhciB0ZXN0Q2FzZUR1cmF0aW9uID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpIC0KLSAgICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVN0YXJ0VGltZV87Ci0gICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8udGVzdFN0YXR1cyA9IFRlc3RTdGF0dXMuRE9ORV9SVU5OSU5HOwotICAgICAgdGVzdENhc2VSZXN1bHQuZHVyYXRpb24gPSB0ZXN0Q2FzZUR1cmF0aW9uOwotICAgICAgdGhpcy50b3RhbFJ1blRpbWVfICs9IHRlc3RDYXNlRHVyYXRpb247Ci0gICAgICBpZiAodGVzdENhc2VSZXN1bHQuaGFkRXJyb3JzKSB7Ci0gICAgICAgIHRoaXMubG9nXygnW0ZBSUxFRF1cbicpOwotICAgICAgICB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF8gKz0gMTsKLSAgICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICd0ZXN0ZmFpbGVkJyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLmxvZ18oJ1tQQVNTRURdXG4nKTsKLSAgICAgICAgdGhpcy5udW1UZXN0c1RoYXRQYXNzZWRfICs9IDE7Ci0gICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAndGVzdHBhc3NlZCcpOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5oZWFkbGVzc18pIHsKLSAgICAgICAgdGhpcy5ub3RpZnlUZXN0UmVzdWx0VG9EZXZTZXJ2ZXJfKHRlc3RDYXNlUmVzdWx0LmhhZEVycm9ycyA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRkFJTEVEJyA6ICdQQVNTRUQnKTsKLSAgICAgIH0KLQotICAgICAgdGhpcy51cGRhdGVEaXNwbGF5U3RhdGVGb3JSZXN1bHRfKHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xyk7Ci0gICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGRpZFJ1blRlc3RzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubG9nXygnW0RPTkVdXG4nKTsKLSAgICAgIGlmICh0aGlzLmhlYWRsZXNzXykKLSAgICAgICAgdGhpcy5ub3RpZnlUZXN0Q29tcGxldGlvblRvRGV2U2VydmVyXygpOwotICAgIH0sCi0KLSAgICBnZXRTdGF0czogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gewotICAgICAgICBudW1UZXN0c1RoYXRQYXNzZWQ6IHRoaXMubnVtVGVzdHNUaGF0UGFzc2VkXywKLSAgICAgICAgbnVtVGVzdHNUaGF0RmFpbGVkOiB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF8sCi0gICAgICAgIHRvdGFsUnVuVGltZTogdGhpcy50b3RhbFJ1blRpbWVfCi0gICAgICB9OwotICAgIH0sCi0KLSAgICBub3RpZnlUZXN0UmVzdWx0VG9EZXZTZXJ2ZXJfOiBmdW5jdGlvbihyZXN1bHQsIGV4dHJhX21zZykgewotICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgdmFyIHRlc3ROYW1lID0gdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfLnRlc3RDYXNlLmZ1bGx5UXVhbGlmaWVkTmFtZTsKLSAgICAgIHJlcS5vcGVuKCdQT1NUJywgJy90ZXN0X2F1dG9tYXRpb24vbm90aWZ5X3Rlc3RfcmVzdWx0JywgdHJ1ZSk7Ci0gICAgICByZXEuc2VuZChyZXN1bHQgKyAnICAnICsgdGVzdE5hbWUgKyAnICcgKyAoZXh0cmFfbXNnIHx8ICcnKSk7Ci0gICAgfSwKLQotICAgIG5vdGlmeVRlc3RDb21wbGV0aW9uVG9EZXZTZXJ2ZXJfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLm51bVRlc3RzVGhhdFBhc3NlZF8gKyB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF8gPT0gMCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdmFyIGRhdGEgPSB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF8gPT0gMCA/ICdBTExfUEFTU0VEJyA6ICdIQURfRkFJTFVSRVMnOwotICAgICAgZGF0YSArPSAnXG5QYXNzZWQgdGVzdHM6ICcgKyB0aGlzLm51bVRlc3RzVGhhdFBhc3NlZF8gKwotICAgICAgICAgICAgICAnICBGYWlsZWQgdGVzdHM6ICcgKyB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF87Ci0KLSAgICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgIHJlcS5vcGVuKCdQT1NUJywgJy90ZXN0X2F1dG9tYXRpb24vbm90aWZ5X2NvbXBsZXRpb24nLCB0cnVlKTsKLSAgICAgIHJlcS5zZW5kKGRhdGEpOwotICAgIH0sCi0KLSAgICBsb2dfOiBmdW5jdGlvbihtc2cpIHsKLSAgICAgIC8vdGhpcy50ZXh0Q29udGVudCArPSBtc2c7Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3N0YXRzY2hhbmdlJyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgSFRNTFRlc3RSZXN1bHRzOiBIVE1MVGVzdFJlc3VsdHMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHRlc3QvaW50ZXJhY3RpdmVfdGVzdF9ydW5uZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9pbnRlcmFjdGl2ZV90ZXN0X3J1bm5lci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWI5YTExLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9pbnRlcmFjdGl2ZV90ZXN0X3J1bm5lci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L3N1aXRlX2xvYWRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC90ZXN0X3J1bm5lci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9odG1sX3Rlc3RfcmVzdWx0cy5odG1sIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QvY29tbW9uLmNzcyI+Ci08c3R5bGU+Ci0gIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciB7Ci0gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgfQotCi0gIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICogewotICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87Ci0gIH0KLSAgeC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyID4gI3RpdGxlIHsKLSAgICBmb250LXNpemU6IDE2cHQ7Ci0gIH0KLQotICB4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXIgewotICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwotICB9Ci0KLSAgeC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyID4gaDEgewotICAgIG1hcmdpbjogNXB4IDBweCAxMHB4IDBweDsKLSAgfQotCi0gIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICNzdGF0cyB7Ci0gIH0KLQotICB4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXIgPiAjY29udHJvbHMgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIG1hcmdpbi1ib3R0b206IDVweDsKLSAgfQotCi0gIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICNjb250cm9scyA+IHVsIHsKLSAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Ci0gICAgcGFkZGluZzogMDsKLSAgICBtYXJnaW46IDA7Ci0gIH0KLQotICB4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXIgPiAjY29udHJvbHMgPiB1bCA+IGxpIHsKLSAgICBmbG9hdDogbGVmdDsKLSAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7Ci0gICAgcGFkZGluZy10b3A6IDVweDsKLSAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwotICB9Ci0KLSAgeC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyID4gI3Nob3J0Zm9ybS1yZXN1bHRzIHsKLSAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7Ci0gICAgaGVpZ2h0OyA0MHB4OwotICB9Ci0KLSAgeC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyID4gI3Jlc3VsdHMtY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAgIG1pbi1oZWlnaHQ6IDA7Ci0gICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgcGFkZGluZzogMCA0cHggMCA0cHg7Ci0gIH0KLTwvc3R5bGU+Ci0KLTx0ZW1wbGF0ZSBpZD0ieC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyLXRlbXBsYXRlIj4KLSAgPGgxIGlkPSJ0aXRsZSI+VGVzdHM8L2gxPgotICA8ZGl2IGlkPSJzdGF0cyI+PC9kaXY+Ci0gIDxkaXYgaWQ9ImNvbnRyb2xzIj4KLSAgICA8dWwgaWQ9ImxpbmtzIj4KLSAgICA8L3VsPgotICAgIDxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyI+PC9kaXY+Ci0KLSAgICA8ZGl2PgotICAgICAgPHNwYW4+Ci0gICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idGVzdC10eXBlLXRvLXJ1biIgdmFsdWU9InVuaXQiIC8+Ci0gICAgICAgIFJ1biB1bml0IHRlc3RzCi0gICAgICA8L3NwYW4+Ci0gICAgICA8c3Bhbj4KLSAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ0ZXN0LXR5cGUtdG8tcnVuIiB2YWx1ZT0icGVyZiIgLz4KLSAgICAgICAgUnVuIHBlcmYgdGVzdHMKLSAgICAgIDwvc3Bhbj4KLSAgICAgIDxzcGFuPgotICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InRlc3QtdHlwZS10by1ydW4iIHZhbHVlPSJhbGwiIC8+Ci0gICAgICAgIFJ1biBhbGwgdGVzdHMKLSAgICAgIDwvc3Bhbj4KLSAgICA8L2Rpdj4KLSAgICA8c3Bhbj4KLSAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InNob3J0LWZvcm1hdCIgLz4gU2hvcnQgZm9ybWF0Ci0gICAgPC9zcGFuPgotICA8L2Rpdj4KLSAgPGRpdiBpZD0ic2hvcnRmb3JtLXJlc3VsdHMiPgotICA8L2Rpdj4KLSAgPGRpdiBpZD0icmVzdWx0cy1jb250YWluZXIiPgotICA8L2Rpdj4KLTwvdGVtcGxhdGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5iLnVuaXR0ZXN0JywgZnVuY3Rpb24oKSB7Ci0gIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKLSAgdmFyIEFMTF9URVNUX1RZUEVTID0gJ2FsbCc7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIEludGVyYWN0aXZlVGVzdFJ1bm5lciA9IHRyLmIudWkuZGVmaW5lKCd4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXInKTsKLQotICBJbnRlcmFjdGl2ZVRlc3RSdW5uZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuYWxsVGVzdHNfID0gdW5kZWZpbmVkOwotCi0gICAgICB0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfID0gZmFsc2U7Ci0KLSAgICAgIHRoaXMudGVzdEZpbHRlclN0cmluZ18gPSAnJzsKLSAgICAgIHRoaXMudGVzdFR5cGVUb1J1bl8gPSB0ci5iLnVuaXR0ZXN0LlRlc3RUeXBlcy5VTklUVEVTVDsKLSAgICAgIHRoaXMuc2hvcnRGb3JtYXRfID0gZmFsc2U7Ci0gICAgICB0aGlzLnRlc3RTdWl0ZU5hbWVfID0gJyc7Ci0KLSAgICAgIHRoaXMucmVydW5QZW5kaW5nXyA9IGZhbHNlOwotICAgICAgdGhpcy5ydW5uZXJfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5yZXN1bHRzXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuaGVhZGxlc3NfID0gZmFsc2U7Ci0KLSAgICAgIHRoaXMub25SZXN1bHRzU3RhdHNDaGFuZ2VkXyA9IHRoaXMub25SZXN1bHRzU3RhdHNDaGFuZ2VkXy5iaW5kKHRoaXMpOwotICAgICAgdGhpcy5vblRlc3RGYWlsZWRfID0gdGhpcy5vblRlc3RGYWlsZWRfLmJpbmQodGhpcyk7Ci0gICAgICB0aGlzLm9uVGVzdFBhc3NlZF8gPSB0aGlzLm9uVGVzdFBhc3NlZF8uYmluZCh0aGlzKTsKLQotCi0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKLSAgICAgICAgICAnI3gtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lci10ZW1wbGF0ZScsIFRISVNfRE9DKSk7Ci0KLSAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigKLSAgICAgICAgICAnaW5wdXRbbmFtZT10ZXN0LXR5cGUtdG8tcnVuXVt2YWx1ZT11bml0XScpLmNoZWNrZWQgPSB0cnVlOwotICAgICAgdmFyIHRlc3RUeXBlVG9SdW5FbHMgPSB0ci5iLmFzQXJyYXkodGhpcy5xdWVyeVNlbGVjdG9yQWxsKAotICAgICAgICAgICdpbnB1dFtuYW1lPXRlc3QtdHlwZS10by1ydW5dJykpOwotCi0gICAgICB0ZXN0VHlwZVRvUnVuRWxzLmZvckVhY2goCi0gICAgICAgICAgZnVuY3Rpb24oaW5wdXRFbCkgewotICAgICAgICAgICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICAgICAgICdjbGljaycsIHRoaXMub25UZXN0VHlwZVRvUnVuQ2xpY2tfLmJpbmQodGhpcykpOwotICAgICAgICAgIH0sIHRoaXMpOwotCi0gICAgICB2YXIgc2hvcnRGb3JtYXRFbCA9IHRoaXMucXVlcnlTZWxlY3RvcignI3Nob3J0LWZvcm1hdCcpOwotICAgICAgc2hvcnRGb3JtYXRFbC5jaGVja2VkID0gdGhpcy5zaG9ydEZvcm1hdF87Ci0gICAgICBzaG9ydEZvcm1hdEVsLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ2NsaWNrJywgdGhpcy5vblNob3J0Rm9ybWF0Q2xpY2tfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy51cGRhdGVTaG9ydEZvcm1SZXN1bHRzRGlzcGxheV8oKTsKLQotICAgICAgLy8gT2gsIERPTSwgaG93IEkgbG92ZSB5b3UuIFRpdGxlIGlzIHN1Y2ggYSBjb252ZW5pZW50IHByb3BlcnR5IG5hbWUgYW5kIEkKLSAgICAgIC8vIHJlZnVzZSB0byBjaGFuZ2UgbXkgd29ybGR2aWV3IGJlY2F1c2Ugb2YgdG9vbHRpcHMuCi0gICAgICB0aGlzLl9fZGVmaW5lU2V0dGVyX18oCi0gICAgICAgICAgJ3RpdGxlJywKLSAgICAgICAgICBmdW5jdGlvbih0aXRsZSkgewotICAgICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjdGl0bGUnKS50ZXh0Q29udGVudCA9IHRpdGxlOwotICAgICAgICAgIH0pOwotICAgIH0sCi0KLSAgICBnZXQgYWxsVGVzdHMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5hbGxUZXN0c187Ci0gICAgfSwKLQotICAgIHNldCBhbGxUZXN0cyhhbGxUZXN0cykgewotICAgICAgdGhpcy5hbGxUZXN0c18gPSBhbGxUZXN0czsKLSAgICAgIHRoaXMuc2NoZWR1bGVSZXJ1bl8oKTsKLSAgICB9LAotCi0gICAgZ2V0IHRlc3RMaW5rcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnRlc3RMaW5rc187Ci0gICAgfSwKLSAgICBzZXQgdGVzdExpbmtzKHRlc3RMaW5rcykgewotICAgICAgdGhpcy50ZXN0TGlua3NfID0gdGVzdExpbmtzOwotICAgICAgdmFyIGxpbmtzRWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNsaW5rcycpOwotICAgICAgbGlua3NFbC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdGhpcy50ZXN0TGlua3NfLmZvckVhY2goZnVuY3Rpb24obCkgewotICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKLSAgICAgICAgbGluay5ocmVmID0gbC5saW5rUGF0aDsKLSAgICAgICAgbGluay50ZXh0Q29udGVudCA9IGwudGl0bGU7Ci0KLSAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKLSAgICAgICAgbGkuYXBwZW5kQ2hpbGQobGluayk7Ci0KLSAgICAgICAgbGlua3NFbC5hcHBlbmRDaGlsZChsaSk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9LAotCi0gICAgZ2V0IHRlc3RGaWx0ZXJTdHJpbmcoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50ZXN0RmlsdGVyU3RyaW5nXzsKLSAgICB9LAotCi0gICAgc2V0IHRlc3RGaWx0ZXJTdHJpbmcodGVzdEZpbHRlclN0cmluZykgewotICAgICAgdGhpcy50ZXN0RmlsdGVyU3RyaW5nXyA9IHRlc3RGaWx0ZXJTdHJpbmc7Ci0gICAgICB0aGlzLnNjaGVkdWxlUmVydW5fKCk7Ci0gICAgICBpZiAoIXRoaXMuc3VwcHJlc3NTdGF0ZUNoYW5nZV8pCi0gICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnc3RhdGVjaGFuZ2UnKTsKLSAgICB9LAotCi0gICAgZ2V0IHNob3J0Rm9ybWF0KCkgewotICAgICAgcmV0dXJuIHRoaXMuc2hvcnRGb3JtYXRfOwotICAgIH0sCi0KLSAgICBzZXQgc2hvcnRGb3JtYXQoc2hvcnRGb3JtYXQpIHsKLSAgICAgIHRoaXMuc2hvcnRGb3JtYXRfID0gc2hvcnRGb3JtYXQ7Ci0gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzaG9ydC1mb3JtYXQnKS5jaGVja2VkID0gc2hvcnRGb3JtYXQ7Ci0gICAgICBpZiAodGhpcy5yZXN1bHRzXykKLSAgICAgICAgdGhpcy5yZXN1bHRzXy5zaG9ydEZvcm1hdCA9IHNob3J0Rm9ybWF0OwotICAgICAgaWYgKCF0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfKQotICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3N0YXRlY2hhbmdlJyk7Ci0gICAgfSwKLQotICAgIG9uU2hvcnRGb3JtYXRDbGlja186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMuc2hvcnRGb3JtYXRfID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjc2hvcnQtZm9ybWF0JykuY2hlY2tlZDsKLSAgICAgIHRoaXMudXBkYXRlU2hvcnRGb3JtUmVzdWx0c0Rpc3BsYXlfKCk7Ci0gICAgICB0aGlzLnVwZGF0ZVJlc3VsdHNHaXZlblNob3J0Rm9ybWF0XygpOwotICAgICAgaWYgKCF0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfKQotICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3N0YXRlY2hhbmdlJyk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZVNob3J0Rm9ybVJlc3VsdHNEaXNwbGF5XzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZGlzcGxheSA9IHRoaXMuc2hvcnRGb3JtYXRfID8gJycgOiAnbm9uZSc7Ci0gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzaG9ydGZvcm0tcmVzdWx0cycpLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5OwotICAgIH0sCi0KLSAgICB1cGRhdGVSZXN1bHRzR2l2ZW5TaG9ydEZvcm1hdF86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLnJlc3VsdHNfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGlmICh0aGlzLnRlc3RGaWx0ZXJTdHJpbmdfLmxlbmd0aCB8fCB0aGlzLnRlc3RTdWl0ZU5hbWVfLmxlbmd0aCkKLSAgICAgICAgdGhpcy5yZXN1bHRzXy5zaG93SFRNTE91dHB1dCA9IHRydWU7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMucmVzdWx0c18uc2hvd0hUTUxPdXRwdXQgPSBmYWxzZTsKLSAgICAgIHRoaXMucmVzdWx0c18uc2hvd1BlbmRpbmdBbmRQYXNzZWRUZXN0cyA9IHRoaXMuc2hvcnRGb3JtYXRfOwotICAgIH0sCi0KLSAgICBnZXQgdGVzdFR5cGVUb1J1bigpIHsKLSAgICAgIHJldHVybiB0aGlzLnRlc3RUeXBlVG9SdW5fOwotICAgIH0sCi0KLSAgICBzZXQgdGVzdFR5cGVUb1J1bih0ZXN0VHlwZVRvUnVuKSB7Ci0gICAgICB0aGlzLnRlc3RUeXBlVG9SdW5fID0gdGVzdFR5cGVUb1J1bjsKLSAgICAgIHZhciBzZWw7Ci0gICAgICBzd2l0Y2ggKHRlc3RUeXBlVG9SdW4pIHsKLSAgICAgICAgY2FzZSB0ci5iLnVuaXR0ZXN0LlRlc3RUeXBlcy5VTklUVEVTVDoKLSAgICAgICAgICBzZWwgPSAnaW5wdXRbbmFtZT10ZXN0LXR5cGUtdG8tcnVuXVt2YWx1ZT11bml0XSc7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgdHIuYi51bml0dGVzdC5UZXN0VHlwZXMuUEVSRlRFU1Q6Ci0gICAgICAgICAgc2VsID0gJ2lucHV0W25hbWU9dGVzdC10eXBlLXRvLXJ1bl1bdmFsdWU9cGVyZl0nOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFMTF9URVNUX1RZUEVTOgotICAgICAgICAgIHNlbCA9ICdpbnB1dFtuYW1lPXRlc3QtdHlwZS10by1ydW5dW3ZhbHVlPWFsbF0nOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0ZXN0IHR5cGUgdG8gcnVuOiAnICsgdGVzdFR5cGVUb1J1bik7Ci0gICAgICB9Ci0gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3Ioc2VsKS5jaGVja2VkID0gdHJ1ZTsKLSAgICAgIHRoaXMuc2NoZWR1bGVSZXJ1bl8oKTsKLSAgICAgIGlmICghdGhpcy5zdXBwcmVzc1N0YXRlQ2hhbmdlXykKLSAgICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzdGF0ZWNoYW5nZScpOwotICAgIH0sCi0KLSAgICBvblRlc3RUeXBlVG9SdW5DbGlja186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHN3aXRjaCAoZS50YXJnZXQudmFsdWUpIHsKLSAgICAgICAgY2FzZSAndW5pdCc6Ci0gICAgICAgICAgdGhpcy50ZXN0VHlwZVRvUnVuXyA9IHRyLmIudW5pdHRlc3QuVGVzdFR5cGVzLlVOSVRURVNUOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICdwZXJmJzoKLSAgICAgICAgICB0aGlzLnRlc3RUeXBlVG9SdW5fID0gdHIuYi51bml0dGVzdC5UZXN0VHlwZXMuUEVSRlRFU1Q7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ2FsbCc6Ci0gICAgICAgICAgdGhpcy50ZXN0VHlwZVRvUnVuXyA9IEFMTF9URVNUX1RZUEVTOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5hbGlkIHRlc3QgdHlwZTogJyArIGUudGFyZ2V0LnZhbHVlKTsKLSAgICAgIH0KLQotICAgICAgdGhpcy5zY2hlZHVsZVJlcnVuXygpOwotICAgICAgaWYgKCF0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfKQotICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3N0YXRlY2hhbmdlJyk7Ci0gICAgfSwKLQotICAgIG9uVGVzdFBhc3NlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjc2hvcnRmb3JtLXJlc3VsdHMnKS50ZXh0Q29udGVudCArPSAnLic7Ci0gICAgfSwKLQotICAgIG9uVGVzdEZhaWxlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjc2hvcnRmb3JtLXJlc3VsdHMnKS50ZXh0Q29udGVudCArPSAnRic7Ci0gICAgfSwKLQotICAgIG9uUmVzdWx0c1N0YXRzQ2hhbmdlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHN0YXRzRWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzdGF0cycpOwotICAgICAgdmFyIHN0YXRzID0gdGhpcy5yZXN1bHRzXy5nZXRTdGF0cygpOwotICAgICAgdmFyIG51bVRlc3RzT3ZlcmFsbCA9IHRoaXMucnVubmVyXy50ZXN0Q2FzZXMubGVuZ3RoOwotICAgICAgdmFyIG51bVRlc3RzVGhhdFJhbiA9IHN0YXRzLm51bVRlc3RzVGhhdFBhc3NlZCArIHN0YXRzLm51bVRlc3RzVGhhdEZhaWxlZDsKLSAgICAgIHN0YXRzRWwuaW5uZXJIVE1MID0KLSAgICAgICAgICAnPHNwYW4+JyArIG51bVRlc3RzVGhhdFJhbiArICcvJyArIG51bVRlc3RzT3ZlcmFsbCArCi0gICAgICAgICAgJzwvc3Bhbj4gdGVzdHMgcnVuLCAnICsKLSAgICAgICAgICAnPHNwYW4gY2xhc3M9InVuaXR0ZXN0LWZhaWxlZCI+JyArIHN0YXRzLm51bVRlc3RzVGhhdEZhaWxlZCArCi0gICAgICAgICAgJzwvc3Bhbj4gZmFpbHVyZXMsICcgKwotICAgICAgICAgICcgaW4gJyArIHN0YXRzLnRvdGFsUnVuVGltZS50b0ZpeGVkKDIpICsgJ21zLic7Ci0gICAgfSwKLQotICAgIHNjaGVkdWxlUmVydW5fOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnJlcnVuUGVuZGluZ18pCi0gICAgICAgIHJldHVybjsKLSAgICAgIGlmICh0aGlzLnJ1bm5lcl8pIHsKLSAgICAgICAgdGhpcy5yZXJ1blBlbmRpbmdfID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5ydW5uZXJfLmJlZ2luVG9TdG9wUnVubmluZygpOwotICAgICAgICB2YXIgZG9SZXJ1biA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHRoaXMucmVydW5QZW5kaW5nXyA9IGZhbHNlOwotICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZXJ1bl8oKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpOwotICAgICAgICB0aGlzLnJ1bm5lcl8ucnVuQ29tcGxldGVkUHJvbWlzZS50aGVuKAotICAgICAgICAgICAgZG9SZXJ1biwgZG9SZXJ1bik7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIHRoaXMuYmVnaW5SdW5uaW5nXygpOwotICAgIH0sCi0KLSAgICBiZWdpblJ1bm5pbmdfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciByZXN1bHRzQ29udGFpbmVyID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjcmVzdWx0cy1jb250YWluZXInKTsKLSAgICAgIGlmICh0aGlzLnJlc3VsdHNfKSB7Ci0gICAgICAgIHRoaXMucmVzdWx0c18ucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdHBhc3NlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVGVzdFBhc3NlZF8pOwotICAgICAgICB0aGlzLnJlc3VsdHNfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3RmYWlsZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRlc3RGYWlsZWRfKTsKLSAgICAgICAgdGhpcy5yZXN1bHRzXy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGF0c2NoYW5nZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUmVzdWx0c1N0YXRzQ2hhbmdlZF8pOwotICAgICAgICBkZWxldGUgdGhpcy5yZXN1bHRzXy5nZXRIUmVmRm9yVGVzdENhc2U7Ci0gICAgICAgIHJlc3VsdHNDb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5yZXN1bHRzXyk7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMucmVzdWx0c18gPSBuZXcgdHIuYi51bml0dGVzdC5IVE1MVGVzdFJlc3VsdHMoKTsKLSAgICAgIHRoaXMucmVzdWx0c18uaGVhZGxlc3MgPSB0aGlzLmhlYWRsZXNzXzsKLSAgICAgIHRoaXMucmVzdWx0c18uZ2V0SFJlZkZvclRlc3RDYXNlID0gdGhpcy5nZXRIUmVmRm9yVGVzdENhc2UuYmluZCh0aGlzKTsKLSAgICAgIHRoaXMudXBkYXRlUmVzdWx0c0dpdmVuU2hvcnRGb3JtYXRfKCk7Ci0KLSAgICAgIHRoaXMucmVzdWx0c18uc2hvcnRGb3JtYXQgPSB0aGlzLnNob3J0Rm9ybWF0XzsKLSAgICAgIHRoaXMucmVzdWx0c18uYWRkRXZlbnRMaXN0ZW5lcigndGVzdHBhc3NlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRlc3RQYXNzZWRfKTsKLSAgICAgIHRoaXMucmVzdWx0c18uYWRkRXZlbnRMaXN0ZW5lcigndGVzdGZhaWxlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRlc3RGYWlsZWRfKTsKLSAgICAgIHRoaXMucmVzdWx0c18uYWRkRXZlbnRMaXN0ZW5lcignc3RhdHNjaGFuZ2UnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25SZXN1bHRzU3RhdHNDaGFuZ2VkXyk7Ci0gICAgICByZXN1bHRzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMucmVzdWx0c18pOwotCi0gICAgICB2YXIgdGVzdHMgPSB0aGlzLmFsbFRlc3RzXy5maWx0ZXIoZnVuY3Rpb24odGVzdCkgewotICAgICAgICB2YXIgaSA9IHRlc3QuZnVsbHlRdWFsaWZpZWROYW1lLmluZGV4T2YodGhpcy50ZXN0RmlsdGVyU3RyaW5nXyk7Ci0gICAgICAgIGlmIChpID09IC0xKQotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHRoaXMudGVzdFR5cGVUb1J1bl8gIT09IEFMTF9URVNUX1RZUEVTICYmCi0gICAgICAgICAgICB0ZXN0LnRlc3RUeXBlICE9PSB0aGlzLnRlc3RUeXBlVG9SdW5fKQotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgdGhpcy5ydW5uZXJfID0gbmV3IHRyLmIudW5pdHRlc3QuVGVzdFJ1bm5lcih0aGlzLnJlc3VsdHNfLCB0ZXN0cyk7Ci0gICAgICB0aGlzLnJ1bm5lcl8uYmVnaW5SdW5uaW5nKCk7Ci0KLSAgICAgIHRoaXMucnVubmVyXy5ydW5Db21wbGV0ZWRQcm9taXNlLnRoZW4oCi0gICAgICAgICAgdGhpcy5ydW5Db21wbGV0ZWRfLmJpbmQodGhpcyksCi0gICAgICAgICAgdGhpcy5ydW5Db21wbGV0ZWRfLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICBzZXRTdGF0ZTogZnVuY3Rpb24oc3RhdGUsIG9wdF9zdXBwcmVzc1N0YXRlQ2hhbmdlKSB7Ci0gICAgICB0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfID0gdHJ1ZTsKLSAgICAgIGlmIChzdGF0ZS50ZXN0RmlsdGVyU3RyaW5nICE9PSB1bmRlZmluZWQpCi0gICAgICAgIHRoaXMudGVzdEZpbHRlclN0cmluZyA9IHN0YXRlLnRlc3RGaWx0ZXJTdHJpbmc7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMudGVzdEZpbHRlclN0cmluZyA9ICcnOwotCi0gICAgICBpZiAoc3RhdGUuc2hvcnRGb3JtYXQgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhpcy5zaG9ydEZvcm1hdCA9IGZhbHNlOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnNob3J0Rm9ybWF0ID0gc3RhdGUuc2hvcnRGb3JtYXQ7Ci0KLSAgICAgIGlmIChzdGF0ZS50ZXN0VHlwZVRvUnVuID09PSB1bmRlZmluZWQpCi0gICAgICAgIHRoaXMudGVzdFR5cGVUb1J1biA9IHRyLmIudW5pdHRlc3QuVGVzdFR5cGVzLlVOSVRURVNUOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnRlc3RUeXBlVG9SdW4gPSBzdGF0ZS50ZXN0VHlwZVRvUnVuOwotCi0gICAgICB0aGlzLnRlc3RTdWl0ZU5hbWVfID0gc3RhdGUudGVzdFN1aXRlTmFtZSB8fCAnJzsKLSAgICAgIHRoaXMuaGVhZGxlc3NfID0gc3RhdGUuaGVhZGxlc3MgfHwgZmFsc2U7Ci0KLSAgICAgIGlmICghb3B0X3N1cHByZXNzU3RhdGVDaGFuZ2UpCi0gICAgICAgIHRoaXMuc3VwcHJlc3NTdGF0ZUNoYW5nZV8gPSBmYWxzZTsKLQotICAgICAgdGhpcy5vblNob3J0Rm9ybWF0Q2xpY2tfKCk7Ci0gICAgICB0aGlzLnNjaGVkdWxlUmVydW5fKCk7Ci0gICAgICB0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfID0gZmFsc2U7Ci0gICAgfSwKLQotICAgIGdldERlZmF1bHRTdGF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gewotICAgICAgICB0ZXN0RmlsdGVyU3RyaW5nOiAnJywKLSAgICAgICAgdGVzdFN1aXRlTmFtZTogJycsCi0gICAgICAgIHNob3J0Rm9ybWF0OiBmYWxzZSwKLSAgICAgICAgdGVzdFR5cGVUb1J1bjogdHIuYi51bml0dGVzdC5UZXN0VHlwZXMuVU5JVFRFU1QKLSAgICAgIH07Ci0gICAgfSwKLQotICAgIGdldFN0YXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB7Ci0gICAgICAgIHRlc3RGaWx0ZXJTdHJpbmc6IHRoaXMudGVzdEZpbHRlclN0cmluZ18sCi0gICAgICAgIHRlc3RTdWl0ZU5hbWU6IHRoaXMudGVzdFN1aXRlTmFtZV8sCi0gICAgICAgIHNob3J0Rm9ybWF0OiB0aGlzLnNob3J0Rm9ybWF0XywKLSAgICAgICAgdGVzdFR5cGVUb1J1bjogdGhpcy50ZXN0VHlwZVRvUnVuXwotICAgICAgfTsKLSAgICB9LAotCi0gICAgZ2V0SFJlZkZvclRlc3RDYXNlOiBmdW5jdGlvbih0ZXN0Q2FzZXMpIHsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIHJ1bkNvbXBsZXRlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5ydW5uZXJfID0gdW5kZWZpbmVkOwotICAgICAgaWYgKHRoaXMucmVzdWx0c18uZ2V0U3RhdHMoKS5udW1UZXN0c1RoYXRGYWlsZWQgPiAwKSB7Ci0gICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcignI3Nob3J0Zm9ybS1yZXN1bHRzJykudGV4dENvbnRlbnQgKz0KLSAgICAgICAgICAgICdbVEhFUkUgV0VSRSBGQUlMVVJFU10nOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjc2hvcnRmb3JtLXJlc3VsdHMnKS50ZXh0Q29udGVudCArPSAnW0RPTkVdJzsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBJbnRlcmFjdGl2ZVRlc3RSdW5uZXI6IEludGVyYWN0aXZlVGVzdFJ1bm5lcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9zdWl0ZV9sb2FkZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9zdWl0ZV9sb2FkZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc3OTQ2NC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHRlc3Qvc3VpdGVfbG9hZGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3hoci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC90ZXN0X3N1aXRlLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudW5pdHRlc3QnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gVGVzdExpbmsobGlua1BhdGgsIHRpdGxlKSB7Ci0gICAgdGhpcy5saW5rUGF0aCA9IGxpbmtQYXRoOwotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgfQotCi0gIGZ1bmN0aW9uIFN1aXRlTG9hZGVyKG9wdF9zdWl0ZU5hbWVzVG9Mb2FkKSB7Ci0gICAgdHIuYi5FdmVudFRhcmdldC5jYWxsKHRoaXMpOwotCi0gICAgdGhpcy50ZXN0U3VpdGVHVUlEc18gPSB7fTsKLSAgICB0aGlzLnRlc3RTdWl0ZXMgPSBbXTsKLSAgICB0aGlzLnRlc3RMaW5rcyA9IFtdOwotCi0gICAgaWYgKG9wdF9zdWl0ZU5hbWVzVG9Mb2FkKSB7Ci0gICAgICB2YXIgdG1wID0gb3B0X3N1aXRlTmFtZXNUb0xvYWQubWFwKGZ1bmN0aW9uKG4pIHsKLSAgICAgICAgdmFyIHBhcnRzID0gbi5zcGxpdCgnLicpOwotICAgICAgICByZXR1cm4gcGFydHMuam9pbignLycpICsgJy5odG1sJzsKLSAgICAgIH0pOwotICAgICAgdGhpcy5hbGxTdWl0ZXNMb2FkZWRQcm9taXNlID0gdGhpcy5iZWdpbkxvYWRpbmdNb2R1bGVzXygKLSAgICAgICAgICB0bXApOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgcDsKLSAgICAgIHAgPSB0ci5iLmdldEFzeW5jKCcvdHIvanNvbi90ZXN0cycpOwotICAgICAgcCA9IHAudGhlbigKLSAgICAgICAgICBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgICB2YXIgdGVzdE1ldGFkYXRhID0gSlNPTi5wYXJzZShkYXRhKTsKLSAgICAgICAgICAgIGlmICh0ZXN0TWV0YWRhdGEuaGFzT3duUHJvcGVydHkoJ3Rlc3RfbW9kdWxlX25hbWVzJykpIHsKLSAgICAgICAgICAgICAgdHIuc2hvd1BhbmljKAotICAgICAgICAgICAgICAgICAgJ291dCBvZiBkYXRlIHdlYnNlcnZlcicsCi0gICAgICAgICAgICAgICAgICAnPl88IHlvdXIgZGV2c2VydmVyIG5lZWRzIGEgcmVzdGFydCBrdGh4YmFpJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgdGVzdFJlbHBhdGhzID0gdGVzdE1ldGFkYXRhLnRlc3RfcmVscGF0aHM7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5iZWdpbkxvYWRpbmdNb2R1bGVzXyh0ZXN0UmVscGF0aHMsIHRlc3RNZXRhZGF0YSk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMuYWxsU3VpdGVzTG9hZGVkUHJvbWlzZSA9IHA7Ci0gICAgfQotICB9Ci0KLSAgZnVuY3Rpb24gbG9hZE1vZHVsZShyZWxwYXRoKSB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgdmFyIGhyZWYgPSAnLycgKyByZWxwYXRoOwotICAgICAgdmFyIG1vZHVsZU5hbWUgPSByZWxwYXRoLnNwbGl0KCcvJykuc2xpY2UoLTEpWzBdOwotCi0gICAgICB2YXIgaW1wb3J0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci0gICAgICBpbXBvcnRFbC5tb2R1bGVOYW1lID0gbW9kdWxlTmFtZTsKLSAgICAgIGltcG9ydEVsLnNldEF0dHJpYnV0ZSgncmVsJywgJ2ltcG9ydCcpOwotICAgICAgaW1wb3J0RWwuc2V0QXR0cmlidXRlKCdocmVmJywgaHJlZik7Ci0gICAgICB0ci5kb2MuaGVhZC5hcHBlbmRDaGlsZChpbXBvcnRFbCk7Ci0KLSAgICAgIGltcG9ydEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgcmVzb2x2ZShpbXBvcnRFbCk7Ci0gICAgICB9KTsKLSAgICAgIGltcG9ydEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZSkgewotICAgICAgICByZWplY3QoJ0Vycm9yIGxvYWRpbmcgJiM2MDtsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSInICsgaHJlZiArICciJyk7Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfQotCi0gIGZ1bmN0aW9uIGxvYWRNb2R1bGVzKG1vZHVsZU5hbWVzKSB7Ci0gICAgdmFyIHByb21pc2VzID0gbW9kdWxlTmFtZXMubWFwKGZ1bmN0aW9uKG1vZHVsZU5hbWUpIHsKLSAgICAgIHJldHVybiBsb2FkTW9kdWxlKG1vZHVsZU5hbWUpOwotICAgIH0pOwotCi0gIH0KLQotICBTdWl0ZUxvYWRlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5iLkV2ZW50VGFyZ2V0LnByb3RvdHlwZSwKLQotICAgIGJlZ2luTG9hZGluZ01vZHVsZXNfOiBmdW5jdGlvbih0ZXN0UmVscGF0aHMsIG9wdF90ZXN0TWV0YWRhdGEpIHsKLSAgICAgIGlmIChvcHRfdGVzdE1ldGFkYXRhKSB7Ci0gICAgICAgIHZhciB0ZXN0TWV0YWRhdGEgPSBvcHRfdGVzdE1ldGFkYXRhOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RNZXRhZGF0YS50ZXN0X2xpbmtzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHRsID0gdGVzdE1ldGFkYXRhLnRlc3RfbGlua3NbaV07Ci0gICAgICAgICAgdGhpcy50ZXN0TGlua3MucHVzaChuZXcgVGVzdExpbmsodGxbJ3BhdGgnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bFsndGl0bGUnXSkpOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIC8vIEhvb2tzIQotICAgICAgdGhpcy5iaW5kR2xvYmFsSG9va3NfKCk7Ci0KLSAgICAgIC8vIExvYWQgdGhlIG1vZHVsZXMuCi0gICAgICB2YXIgbW9kdWxlUHJvbWlzZXMgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFJlbHBhdGhzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBwID0gbG9hZE1vZHVsZSh0ZXN0UmVscGF0aHNbaV0pOwotICAgICAgICBwID0gcC50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24oaW1wb3J0RWwpIHsKLSAgICAgICAgICAgICAgdGhpcy5kaWRJbXBvcnRFbGVtZW50R2V0TG9hZGVkXyhpbXBvcnRFbCk7Ci0gICAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICAgICAgcC54ID0gNzsKLSAgICAgICAgbW9kdWxlUHJvbWlzZXMucHVzaChwKTsKLSAgICAgIH0KLQotICAgICAgdmFyIGFsbE1vZHVsZXNMb2FkZWRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgIHZhciByZW1haW5pbmcgPSBtb2R1bGVQcm9taXNlcy5sZW5ndGg7Ci0gICAgICAgIHZhciByZXNvbHZlZCA9IGZhbHNlOwotICAgICAgICBmdW5jdGlvbiBvbmVNb3JlTG9hZGVkKCkgewotICAgICAgICAgIGlmIChyZXNvbHZlZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICByZW1haW5pbmctLTsKLSAgICAgICAgICBpZiAocmVtYWluaW5nID4gMCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICByZXNvbHZlZCA9IHRydWU7Ci0gICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gb25lUmVqZWN0ZWQoZSkgewotICAgICAgICAgIGlmIChyZXNvbHZlZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICByZXNvbHZlZCA9IHRydWU7Ci0gICAgICAgICAgcmVqZWN0KGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgbW9kdWxlUHJvbWlzZXMuZm9yRWFjaChmdW5jdGlvbihtb2R1bGVQcm9taXNlKSB7Ci0gICAgICAgICAgbW9kdWxlUHJvbWlzZS50aGVuKG9uZU1vcmVMb2FkZWQsIG9uZVJlamVjdGVkKTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gU2NyaXB0IGVycm9ycyBlcnJvcnMgYWJvcnQgbG9hZDsKLSAgICAgIHZhciBzY3JpcHRFcnJvclByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbih4cmVzb2x2ZSwgeHJlamVjdCkgewotICAgICAgICB0aGlzLnNjcmlwdEVycm9yUHJvbWlzZVJlc29sdmVyXyA9IHsKLSAgICAgICAgICByZXNvbHZlOiB4cmVzb2x2ZSwKLSAgICAgICAgICByZWplY3Q6IHhyZWplY3QKLSAgICAgICAgfTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICB2YXIgZG9uZVByb21pc2UgPSBQcm9taXNlLnJhY2UoWwotICAgICAgICBhbGxNb2R1bGVzTG9hZGVkUHJvbWlzZSwKLSAgICAgICAgc2NyaXB0RXJyb3JQcm9taXNlCi0gICAgICBdKTsKLQotICAgICAgLy8gQ2xlYW51cC4KLSAgICAgIHJldHVybiBkb25lUHJvbWlzZS50aGVuKAotICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICB0aGlzLnNjcmlwdEVycm9yUHJvbWlzZVJlc29sdmVyXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICB0aGlzLnVuYmluZEdsb2JhbEhvb2tzXygpOwotICAgICAgICB9LmJpbmQodGhpcyksCi0gICAgICAgIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICB0aGlzLnNjcmlwdEVycm9yUHJvbWlzZVJlc29sdmVyXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICB0aGlzLnVuYmluZEdsb2JhbEhvb2tzXygpOwotICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIGJpbmRHbG9iYWxIb29rc186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5vbGRXaW5kb3dPbkVycm9yXyA9IHdpbmRvdy5vbmVycm9yOwotICAgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihlcnJvck1zZywgdXJsLCBsaW5lTnVtYmVyKSB7Ci0gICAgICAgIHRoaXMuc2NyaXB0RXJyb3JQcm9taXNlUmVzb2x2ZXJfLnJlamVjdCgKLSAgICAgICAgICAgIG5ldyBFcnJvcihlcnJvck1zZyArICdcbicgKyB1cmwgKyAnOicgKyBsaW5lTnVtYmVyKSk7Ci0gICAgICAgIGlmICh0aGlzLm9sZFdpbmRvd09uRXJyb3JfKQotICAgICAgICAgIHJldHVybiB0aGlzLm9sZFdpbmRvd09uRXJyb3JfKGVycm9yTXNnLCB1cmwsIGxpbmVOdW1iZXIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9LmJpbmQodGhpcyk7Ci0gICAgfSwKLQotICAgIHVuYmluZEdsb2JhbEhvb2tzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB3aW5kb3cub25lcnJvciA9IHRoaXMub2xkV2luZG93T25FcnJvcl87Ci0gICAgICB0aGlzLm9sZFdpbmRvd09uRXJyb3JfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBkaWRJbXBvcnRFbGVtZW50R2V0TG9hZGVkXzogZnVuY3Rpb24oaW1wb3J0RWwpIHsKLSAgICAgIC8vIFRoZSBnbG9iYWwgdHIudGVzdFN1dGUgZnVuY3Rpb24gc3Rhc2hlcyB0ZXN0IHN1aXRlcwotICAgICAgLy8gb250byB0aGUgX3RyIGFycmF5LgotICAgICAgdmFyIGltcG9ydERvYyA9IGltcG9ydEVsLmltcG9ydDsKLSAgICAgIHZhciBzdWl0ZXMgPSBhbGxUZXN0U3VpdGVzQnlNb2R1bGVVUkxbaW1wb3J0RG9jLlVSTF07Ci0gICAgICBzdWl0ZXMuZm9yRWFjaChmdW5jdGlvbih0ZXN0U3VpdGUpIHsKLSAgICAgICAgaWYgKHRoaXMudGVzdFN1aXRlR1VJRHNfW3Rlc3RTdWl0ZS5ndWlkXSkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMudGVzdFN1aXRlR1VJRHNfW3Rlc3RTdWl0ZS5ndWlkXSA9IHRydWU7Ci0gICAgICAgIHRoaXMudGVzdFN1aXRlcy5wdXNoKHRlc3RTdWl0ZSk7Ci0KLSAgICAgICAgdmFyIGUgPSBuZXcgRXZlbnQoJ3N1aXRlLWxvYWRlZCcpOwotICAgICAgICBlLnRlc3RTdWl0ZSA9IHRlc3RTdWl0ZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIGdldEFsbFRlc3RzOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0ZXN0cyA9IFtdOwotICAgICAgdGhpcy50ZXN0U3VpdGVzLmZvckVhY2goZnVuY3Rpb24oc3VpdGUpIHsKLSAgICAgICAgdGVzdHMucHVzaC5hcHBseSh0ZXN0cywgc3VpdGUudGVzdHMpOwotICAgICAgfSk7Ci0gICAgICByZXR1cm4gdGVzdHM7Ci0gICAgfSwKLQotICAgIGZpbmRUZXN0V2l0aEZ1bGx5UXVhbGlmaWVkTmFtZTogZnVuY3Rpb24oZnVsbHlRdWFsaWZpZWROYW1lKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGVzdFN1aXRlcy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgc3VpdGUgPSB0aGlzLnRlc3RTdWl0ZXNbaV07Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3VpdGUudGVzdHMubGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICB2YXIgdGVzdCA9IHN1aXRlLnRlc3RzW2pdOwotICAgICAgICAgIGlmICh0ZXN0LmZ1bGx5UXVhbGlmaWVkTmFtZSA9PSBmdWxseVF1YWxpZmllZE5hbWUpCi0gICAgICAgICAgICByZXR1cm4gdGVzdDsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdUZXN0ICcgKyBmdWxseVF1YWxpZmllZE5hbWUgKwotICAgICAgICAgICAgICAgICAgICAgICdub3QgZm91bmQgYW1vbmdzdCAnICsgdGhpcy50ZXN0U3VpdGVzLmxlbmd0aCk7Ci0gICAgfQotICB9OwotCi0gIHZhciBhbGxUZXN0U3VpdGVzQnlNb2R1bGVVUkwgPSBbXTsKLQotICBmdW5jdGlvbiBfZ3Vlc3NNb2R1bGVOYW1lRnJvbVVSTCh1cmwpIHsKLSAgICB2YXIgbSA9IC8uKz86XC9cLy4rPyhcLy4rKS8uZXhlYyh1cmwpOwotICAgIGlmICghbSkKLSAgICAgIHRocm93IG5ldyBFcnJvcignR3Vlc3NpbmcgbW9kdWxlIG5hbWUgZmFpbGVkJyk7Ci0gICAgdmFyIHBhdGggPSBtWzFdOwotICAgIGlmIChwYXRoWzBdICE9ICcvJykKLSAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIHBhdGgnKTsKLSAgICBpZiAocGF0aC5zdWJzdHJpbmcocGF0aC5sZW5ndGggLSA1KSAhPSAnLmh0bWwnKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVmaW5lIHRlc3RTdWl0ZXMgb3V0c2lkZSBodG1sIGltcG9ydHMnKTsKLSAgICB2YXIgcGFydHMgPSBwYXRoLnN1YnN0cmluZygxLCBwYXRoLmxlbmd0aCAtIDUpLnNwbGl0KCcvJyk7Ci0gICAgcmV0dXJuIHBhcnRzLmpvaW4oJy4nKTsKLSAgfQotCi0gIGZ1bmN0aW9uIHRlc3RTdWl0ZShzdWl0ZUNvbnN0cnVjdG9yKSB7Ci0gICAgdmFyIGxpbmtEb2MgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7Ci0gICAgdmFyIHVybCA9IGxpbmtEb2MuVVJMOwotICAgIHZhciBuYW1lID0gX2d1ZXNzTW9kdWxlTmFtZUZyb21VUkwodXJsKTsKLSAgICBpZiAoIWRvY3VtZW50LmN1cnJlbnRTY3JpcHQpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjYWxsIHRlc3RTdWl0ZSBleGNlcHQgZHVyaW5nIGxvYWQuJyk7Ci0KLSAgICB2YXIgdGVzdFN1aXRlID0gbmV3IHRyLmIudW5pdHRlc3QuVGVzdFN1aXRlKAotICAgICAgbmFtZSwgc3VpdGVDb25zdHJ1Y3Rvcik7Ci0KLQotICAgIGlmIChhbGxUZXN0U3VpdGVzQnlNb2R1bGVVUkxbdXJsXSA9PT0gdW5kZWZpbmVkKQotICAgICAgYWxsVGVzdFN1aXRlc0J5TW9kdWxlVVJMW3VybF0gPSBbXTsKLSAgICBhbGxUZXN0U3VpdGVzQnlNb2R1bGVVUkxbdXJsXS5wdXNoKHRlc3RTdWl0ZSk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIFN1aXRlTG9hZGVyOiBTdWl0ZUxvYWRlciwKLSAgICB0ZXN0U3VpdGU6IHRlc3RTdWl0ZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC90ZXN0X3J1bm5lci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0L3Rlc3RfcnVubmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3MjQzMWEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0L3Rlc3RfcnVubmVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFmLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmIudW5pdHRlc3QnLCBmdW5jdGlvbigpIHsKLSAgdmFyIHJlYWxUdk9uQW5pbWF0aW9uRnJhbWVFcnJvcjsKLSAgdmFyIHJlYWxXaW5kb3dPbkVycm9yOwotICB2YXIgcmVhbFdpbmRvd0hpc3RvcnlQdXNoU3RhdGU7Ci0KLSAgZnVuY3Rpb24gaW5zdGFsbEdsb2JhbFRlc3RIb29rcyhydW5uZXIpIHsKLSAgICByZWFsVHZPbkFuaW1hdGlvbkZyYW1lRXJyb3IgPSB0ci5iLm9uQW5pbWF0aW9uRnJhbWVFcnJvcjsKLSAgICB0ci5iLm9uQW5pbWF0aW9uRnJhbWVFcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7Ci0gICAgICBydW5uZXIucmVzdWx0cy5hZGRFcnJvckZvckN1cnJlbnRUZXN0KGVycm9yKTsKLSAgICB9Ci0KLSAgICByZWFsV2luZG93T25FcnJvciA9IHdpbmRvdy5vbmVycm9yOwotICAgIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24oZXJyb3JNc2csIHVybCwgbGluZU51bWJlcikgewotICAgICAgcnVubmVyLnJlc3VsdHMuYWRkRXJyb3JGb3JDdXJyZW50VGVzdCgKLSAgICAgICAgICBlcnJvck1zZyArICcgYXQgJyArIHVybCArICc6JyArIGxpbmVOdW1iZXIpOwotICAgICAgaWYgKHJlYWxXaW5kb3dPbkVycm9yKQotICAgICAgICByZXR1cm4gcmVhbFdpbmRvd09uRXJyb3IoZXJyb3JNc2csIHVybCwgbGluZU51bWJlcik7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmVhbFdpbmRvd0hpc3RvcnlQdXNoU3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGU7Ci0gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgfTsKLQotICAgIHRyLmIudW5pdHRlc3QuYWRkSFRNTE91dHB1dEZvckN1cnJlbnRUZXN0ID0gZnVuY3Rpb24oZWxlbWVudCkgewotICAgICAgcnVubmVyLnJlc3VsdHMuYWRkSFRNTE91dHB1dEZvckN1cnJlbnRUZXN0KGVsZW1lbnQpOwotICAgIH0KLQotICAgIGdsb2JhbC5zZXNzaW9uU3RvcmFnZS5jbGVhcigpOwotICAgIHZhciBlID0gbmV3IEV2ZW50KCd0ci11bml0dGVzdC13aWxsLXJ1bicpOwotICAgIGRvY3VtZW50LmhlYWQuZGlzcGF0Y2hFdmVudChlKTsKLSAgfQotCi0gIGZ1bmN0aW9uIHVuaW5zdGFsbEdsb2JhbFRlc3RIb29rcygpIHsKLSAgICB3aW5kb3cub25lcnJvciA9IHJlYWxXaW5kb3dPbkVycm9yOwotICAgIHJlYWxXaW5kb3dPbkVycm9yID0gdW5kZWZpbmVkOwotCi0gICAgdHIuYi5vbkFuaW1hdGlvbkZyYW1lRXJyb3IgPSByZWFsVHZPbkFuaW1hdGlvbkZyYW1lRXJyb3I7Ci0gICAgcmVhbFR2T25BbmltYXRpb25GcmFtZUVycm9yID0gdW5kZWZpbmVkOwotCi0gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlID0gcmVhbFdpbmRvd0hpc3RvcnlQdXNoU3RhdGU7Ci0gICAgcmVhbFdpbmRvd0hpc3RvcnlQdXNoU3RhdGUgPSB1bmRlZmluZWQ7Ci0KLSAgICB0ci5iLnVuaXR0ZXN0LmFkZEhUTUxPdXRwdXRGb3JDdXJyZW50VGVzdCA9IHVuZGVmaW5lZDsKLSAgfQotCi0KLSAgZnVuY3Rpb24gVGVzdFJ1bm5lcihyZXN1bHRzLCB0ZXN0Q2FzZXMpIHsKLSAgICB0aGlzLnJlc3VsdHNfID0gcmVzdWx0czsKLSAgICB0aGlzLnRlc3RDYXNlc18gPSB0ZXN0Q2FzZXM7Ci0gICAgdGhpcy5wZW5kaW5nVGVzdENhc2VzXyA9IFtdOwotCi0gICAgdGhpcy5ydW5PbmVUZXN0Q2FzZVNjaGVkdWxlZF8gPSBmYWxzZTsKLQotICAgIHRoaXMucnVuQ29tcGxldGVkUHJvbWlzZSA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnJ1bkNvbXBsZXRlZFJlc29sdmVyXyA9IHVuZGVmaW5lZDsKLQotICAgIHRoaXMuY3VycmVudFRlc3RDYXNlXyA9IHVuZGVmaW5lZDsKLSAgfQotCi0gIFRlc3RSdW5uZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKLQotICAgIGJlZ2luUnVubmluZzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5wZW5kaW5nVGVzdENhc2VzXy5sZW5ndGgpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignVGVzdHMgc3RpbGwgcnVubmluZyEnKTsKLQotICAgICAgdGhpcy5ydW5Db21wbGV0ZWRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgIHRoaXMucnVuQ29tcGxldGVkUmVzb2x2ZXJfID0gewotICAgICAgICAgIHJlc29sdmU6IHJlc29sdmUsCi0gICAgICAgICAgcmVqZWN0OiByZWplY3QKLSAgICAgICAgfTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMucGVuZGluZ1Rlc3RDYXNlc18gPSB0aGlzLnRlc3RDYXNlc18uc2xpY2UoMCk7Ci0KLSAgICAgIHRoaXMuc2NoZWR1bGVSdW5PbmVUZXN0Q2FzZV8oKTsKLQotICAgICAgcmV0dXJuIHRoaXMucnVuQ29tcGxldGVkUHJvbWlzZTsKLSAgICB9LAotCi0gICAgYmVnaW5Ub1N0b3BSdW5uaW5nOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5ydW5Db21wbGV0ZWRSZXNvbHZlcl8pCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RpbGwgcnVubmluZycpOwotICAgICAgdGhpcy5wZW5kaW5nVGVzdENhc2VzXyA9IFtdOwotICAgICAgcmV0dXJuIHRoaXMucnVuQ29tcGxldGVkUHJvbWlzZTsKLSAgICB9LAotCi0gICAgZ2V0IHRlc3RDYXNlcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnRlc3RDYXNlc187Ci0gICAgfSwKLQotICAgIGdldCByZXN1bHRzKCkgewotICAgICAgcmV0dXJuIHRoaXMucmVzdWx0c187Ci0gICAgfSwKLQotICAgIHNjaGVkdWxlUnVuT25lVGVzdENhc2VfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnJ1bk9uZVRlc3RDYXNlU2NoZWR1bGVkXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5ydW5PbmVUZXN0Q2FzZVNjaGVkdWxlZF8gPSB0cnVlOwotICAgICAgdHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKHRoaXMucnVuT25lVGVzdENhc2VfLCB0aGlzKTsKLSAgICB9LAotCi0gICAgcnVuT25lVGVzdENhc2VfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucnVuT25lVGVzdENhc2VTY2hlZHVsZWRfID0gZmFsc2U7Ci0KLSAgICAgIGlmICh0aGlzLnBlbmRpbmdUZXN0Q2FzZXNfLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAgIHRoaXMuZGlkRmluaXNoUnVubmluZ0FsbFRlc3RzXygpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlXyA9IHRoaXMucGVuZGluZ1Rlc3RDYXNlc18uc3BsaWNlKDAsIDEpWzBdOwotCi0gICAgICB0aGlzLnJlc3VsdHNfLndpbGxSdW5UZXN0KHRoaXMuY3VycmVudFRlc3RDYXNlXyk7Ci0gICAgICBpZiAoIXRoaXMuc2V0VXBDdXJyZW50VGVzdENhc2VfKCkpIHsKLSAgICAgICAgdGhpcy5yZXN1bHRzXy5kaWRDdXJyZW50VGVzdEVuZCgpOwotICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZV8gPSB1bmRlZmluZWQ7Ci0gICAgICAgIHRoaXMuc2NoZWR1bGVSdW5PbmVUZXN0Q2FzZV8oKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0aGlzLnJ1bkN1cnJlbnRUZXN0Q2FzZV8oKS50aGVuKAotICAgICAgICAgIGZ1bmN0aW9uIHBhc3MocmVzdWx0KSB7Ci0gICAgICAgICAgICB0aGlzLnRlYXJEb3duQ3VycmVudFRlc3RDYXNlXyh0cnVlKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICAgIHRoaXMucmVzdWx0c18uc2V0UmV0dXJuVmFsdWVGcm9tQ3VycmVudFRlc3QocmVzdWx0KTsKLSAgICAgICAgICAgIHRoaXMucmVzdWx0c18uZGlkQ3VycmVudFRlc3RFbmQoKTsKLSAgICAgICAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSdW5PbmVUZXN0Q2FzZV8oKTsKLSAgICAgICAgICB9LmJpbmQodGhpcyksCi0gICAgICAgICAgZnVuY3Rpb24gZmFpbChlcnJvcikgewotICAgICAgICAgICAgdGhpcy5yZXN1bHRzXy5hZGRFcnJvckZvckN1cnJlbnRUZXN0KGVycm9yKTsKLSAgICAgICAgICAgIHRoaXMudGVhckRvd25DdXJyZW50VGVzdENhc2VfKGZhbHNlKTsKLSAgICAgICAgICAgIHRoaXMucmVzdWx0c18uZGlkQ3VycmVudFRlc3RFbmQoKTsKLSAgICAgICAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSdW5PbmVUZXN0Q2FzZV8oKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICBzZXRVcEN1cnJlbnRUZXN0Q2FzZV86IGZ1bmN0aW9uKCkgewotICAgICAgLy8gVHJ5IHNldHRpbmcgaXQgdXAuIFJldHVybiB0cnVlIGlmIHN1Y2NlZWRlZC4KLSAgICAgIGluc3RhbGxHbG9iYWxUZXN0SG9va3ModGhpcyk7Ci0gICAgICB0cnkgewotICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZV8uc2V0VXAoKTsKLSAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgIHRoaXMucmVzdWx0c18uYWRkRXJyb3JGb3JDdXJyZW50VGVzdChlcnJvcik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBydW5DdXJyZW50VGVzdENhc2VfOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICB2YXIgbWF5YmVQcm9taXNlID0gdGhpcy5jdXJyZW50VGVzdENhc2VfLnJ1bigpOwotICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICAgIHJlamVjdChlcnJvcik7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG1heWJlUHJvbWlzZSAhPT0gdW5kZWZpbmVkICYmIG1heWJlUHJvbWlzZS50aGVuKSB7Ci0gICAgICAgICAgbWF5YmVQcm9taXNlLnRoZW4oCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTsKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICByZXNvbHZlKG1heWJlUHJvbWlzZSk7Ci0gICAgICAgIH0KLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHRlYXJEb3duQ3VycmVudFRlc3RDYXNlXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0cnkgewotICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZV8udGVhckRvd24oKTsKLSAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgIHRoaXMucmVzdWx0c18uYWRkRXJyb3JGb3JDdXJyZW50VGVzdChlcnJvcik7Ci0gICAgICB9Ci0KLSAgICAgIHVuaW5zdGFsbEdsb2JhbFRlc3RIb29rcygpOwotICAgIH0sCi0KLSAgICBkaWRGaW5pc2hSdW5uaW5nQWxsVGVzdHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmVzdWx0cy5kaWRSdW5UZXN0cygpOwotICAgICAgdGhpcy5ydW5Db21wbGV0ZWRSZXNvbHZlcl8ucmVzb2x2ZSgpOwotICAgICAgdGhpcy5ydW5Db21wbGV0ZWRSZXNvbHZlcl8gPSB1bmRlZmluZWQ7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgVGVzdFJ1bm5lcjogVGVzdFJ1bm5lcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC90ZXN0X3N1aXRlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHRlc3QvdGVzdF9zdWl0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTVlZmYxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC90ZXN0X3N1aXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zdGF0aXN0aWNzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L3Rlc3RfY2FzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9jb25zdGFudHMuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgewotICB2YXIgVGVzdENhc2UgPSB0ci5iLnVuaXR0ZXN0LlRlc3RDYXNlOwotICB2YXIgUGVyZlRlc3RDYXNlID0gdHIuYi51bml0dGVzdC5QZXJmVGVzdENhc2U7Ci0KLSAgdmFyIFRlc3RUeXBlcyA9IHRyLmIudW5pdHRlc3QuVGVzdFR5cGVzOwotCi0gIGZ1bmN0aW9uIFRlc3RTdWl0ZShuYW1lLCBzdWl0ZUNvbnN0cnVjdG9yKSB7Ci0gICAgdGhpcy5ndWlkID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7Ci0gICAgdGhpcy5uYW1lXyA9IG5hbWU7Ci0gICAgdGhpcy50ZXN0c18gPSBbXTsKLSAgICB0aGlzLnRlc3ROYW1lc18gPSB7fTsgLy8gRm9yIGR1cGUgY2hlY2tpbmcuCi0KLSAgICBnbG9iYWwudGVzdCA9IGZ1bmN0aW9uKHRlc3RDYXNlT3JOYW1lLCBvcHRfdGVzdEZuLCBvcHRfb3B0aW9ucykgewotICAgICAgaWYgKHRlc3RDYXNlT3JOYW1lIGluc3RhbmNlb2YgVGVzdENhc2UpIHsKLSAgICAgICAgaWYgKG9wdF90ZXN0Rm4gIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdF90ZXN0Rm4gY2Fubm90IGJlIGdpdmVuIHdoZW4gZ2l2aW5nIGEgVGVzdENhc2UnKTsKLSAgICAgICAgaWYgKG9wdF9vcHRpb25zICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcHRfb3B0aW9ucyBjYW5ub3QgYmUgZ2l2ZW4gd2hlbiBnaXZpbmcgYSBUZXN0Q2FzZScpOwotICAgICAgICB0aGlzLmFkZFRlc3QodGVzdENhc2VPck5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHZhciB0ZXN0TmFtZSA9IHRlc3RDYXNlT3JOYW1lOwotICAgICAgdmFyIHRlc3RGbiA9IG9wdF90ZXN0Rm47Ci0gICAgICB2YXIgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307Ci0gICAgICBpZiAodGVzdEZuID09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgb3B0X3Rlc3RGbicpOwotCi0gICAgICAvLyBJZiB0aGUgdGVzdCBjYXJlcyBhYm91dCBEUEkgc2V0dGluZ3MgdGhlbiB3ZSBmaXJzdCBwdXNoIGEgdGVzdAotICAgICAgLy8gdGhhdCBmYWtlcyB0aGUgRFBJIGFzIHRoZSBsb3cgb3IgaGkgRHBpIHZlcnNpb24sIGRlcGVuZGluZyBvbiB3aGF0Ci0gICAgICAvLyB3ZSdyZSBjdXJyZW50IHVzaW5nLgotICAgICAgaWYgKG9wdGlvbnMuZHBpQXdhcmUpIHsKLSAgICAgICAgdmFyIGRlZmF1bHREZXZpY2VQaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87Ci0gICAgICAgIHZhciBkcGkgPSBkZWZhdWx0RGV2aWNlUGl4ZWxSYXRpbyA+IDEgPyAxIDogMjsKLQotICAgICAgICB2YXIgdGVzdFdyYXBwZXIgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA9IGRwaTsKLSAgICAgICAgICB0cnkgewotICAgICAgICAgICAgdGVzdEZuLmJpbmQodGhpcykuY2FsbCgpOwotICAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA9IGRlZmF1bHREZXZpY2VQaXhlbFJhdGlvOwotICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICB2YXIgbmV3TmFtZSA9IG5hbWU7Ci0gICAgICAgIGlmIChkcGkgPT09IDEpIHsKLSAgICAgICAgICBuZXdOYW1lICs9ICdfbG9EUEknOwotICAgICAgICAgIHRlc3ROYW1lICs9ICdfaGlEUEknOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG5ld05hbWUgKz0gJ19oaURQSSc7Ci0gICAgICAgICAgdGVzdE5hbWUgKz0gJ19sb0RQSSc7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLmFkZFRlc3QobmV3IFRlc3RDYXNlKG5ld05hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFdyYXBwZXIsIG9wdGlvbnMgfHwge30pKTsKLSAgICAgIH0KLQotICAgICAgdGhpcy5hZGRUZXN0KG5ldyBUZXN0Q2FzZSh0ZXN0TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZuLCBvcHRpb25zIHx8IHt9KSk7Ci0gICAgfS5iaW5kKHRoaXMpOwotCi0gICAgZ2xvYmFsLnRpbWVkUGVyZlRlc3QgPSBmdW5jdGlvbihuYW1lLCB0ZXN0Rm4sIG9wdGlvbnMpIHsKLSAgICAgIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucy5pdGVyYXRpb25zID09PSB1bmRlZmluZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigndGltZWRQZXJmVGVzdCBtdXN0IGhhdmUgaXRlcmF0aW9uIG9wdGlvbiBwcm92aWRlZC4nKTsKLSAgICAgIHRoaXMuYWRkVGVzdChuZXcgUGVyZlRlc3RDYXNlKG5hbWUsIHRlc3RGbiwgb3B0aW9ucykpOwotICAgIH0uYmluZCh0aGlzKTsKLQotICAgIHRyeSB7Ci0gICAgICBzdWl0ZUNvbnN0cnVjdG9yLmNhbGwoKTsKLSAgICB9IGZpbmFsbHkgewotICAgICAgZ2xvYmFsLnRlc3QgPSB1bmRlZmluZWQ7Ci0gICAgICBnbG9iYWwudGltZWRQZXJmVGVzdCA9IHVuZGVmaW5lZDsKLSAgICB9Ci0gIH0KLQotICBUZXN0U3VpdGUucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKLQotICAgIGdldCB0ZXN0cygpIHsKLSAgICAgIHJldHVybiB0aGlzLnRlc3RzXzsKLSAgICB9LAotCi0gICAgYWRkVGVzdDogZnVuY3Rpb24odGVzdCkgewotICAgICAgaWYgKHRlc3Quc3VpdGUgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUZXN0IHN1aXRlIGlzIGFscmVhZHkgYXNzaWduZWQnKTsKLSAgICAgIGlmICh0aGlzLnRlc3ROYW1lc19bdGVzdC5uYW1lXSAhPT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rlc3QgbmFtZSBhbHJlYWR5IHVzZWQnKTsKLSAgICAgIHRlc3Quc3VpdGUgPSB0aGlzOwotICAgICAgdGhpcy50ZXN0TmFtZXNfW3Rlc3QubmFtZV0gPSB0cnVlOwotICAgICAgdGhpcy50ZXN0c18ucHVzaCh0ZXN0KTsKLSAgICB9LAotCi0gICAgZ2V0IG5hbWUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5uYW1lXzsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBUZXN0U3VpdGU6IFRlc3RTdWl0ZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC90ZXh0X3Rlc3RfcmVzdWx0cy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0L3RleHRfdGVzdF9yZXN1bHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZDM4YmIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0L3RleHRfdGVzdF9yZXN1bHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9jb25zdGFudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBUZXh0VGVzdFJlc3VsdHMoKSB7Ci0gICAgdGhpcy5idWZmZXJQYXJ0c18gPSBbXTsKLSAgICB0aGlzLm51bVRlc3RzVGhhdFBhc3NlZF8gPSAwOwotICAgIHRoaXMubnVtVGVzdHNUaGF0RmFpbGVkXyA9IDA7Ci0gICAgdGhpcy5jdXJyZW50VGVzdENhc2VIYWRFcnJvcnNfID0gZmFsc2U7Ci0gICAgdGhpcy5jdXJIVE1MT3V0cHV0XyA9IFtdOwotICB9Ci0KLSAgVGV4dFRlc3RSZXN1bHRzLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgYnVmZmVyKCkgewotICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyUGFydHNfLmpvaW4oJycpOwotICAgIH0sCi0KLSAgICBnZXQgbnVtVGVzdHNUaGF0RmFpbGVkKCkgewotICAgICAgcmV0dXJuIHRoaXMubnVtVGVzdHNUaGF0RmFpbGVkXzsKLSAgICB9LAotCi0gICAgZ2V0IG51bVRlc3RzVGhhdFBhc3NlZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLm51bVRlc3RzVGhhdFBhc3NlZF87Ci0gICAgfSwKLQotICAgIHdpbGxSdW5UZXN0OiBmdW5jdGlvbih0ZXN0Q2FzZSkgewotICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VIYWRFcnJvcnNfID0gZmFsc2U7Ci0gICAgfSwKLQotICAgIGFkZEVycm9yRm9yQ3VycmVudFRlc3Q6IGZ1bmN0aW9uKGVycm9yKSB7Ci0gICAgICB2YXIgbm9ybWFsaXplZEV4Y2VwdGlvbiA9IHRyLmIubm9ybWFsaXplRXhjZXB0aW9uKGVycm9yKTsKLSAgICAgIHRoaXMud3JpdGVUb0J1ZmZlcignRXhjZXB0aW9uOiAnICsgbm9ybWFsaXplZEV4Y2VwdGlvbi5tZXNzYWdlICsgJ1xuJyArCi0gICAgICAgICAgbm9ybWFsaXplZEV4Y2VwdGlvbi5zdGFjayArICdcbicpOwotICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VIYWRFcnJvcnNfID0gdHJ1ZTsKLSAgICB9LAotCi0gICAgYWRkSFRNTE91dHB1dEZvckN1cnJlbnRUZXN0OiBmdW5jdGlvbihlbGVtZW50KSB7Ci0gICAgICB0aGlzLmN1ckhUTUxPdXRwdXRfLnB1c2goZWxlbWVudCk7Ci0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotICAgIH0sCi0KLSAgICBzZXRSZXR1cm5WYWx1ZUZyb21DdXJyZW50VGVzdDogZnVuY3Rpb24ocmV0dXJuVmFsdWUpIHsKLSAgICAgIHRoaXMud3JpdGVUb0J1ZmZlcignW1JFU1VMVF0gJyArIEpTT04uc3RyaW5naWZ5KHJldHVyblZhbHVlKSArICdcbicpOwotICAgIH0sCi0KLSAgICBkaWRDdXJyZW50VGVzdEVuZDogZnVuY3Rpb24oKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY3VySFRNTE91dHB1dF8ubGVuZ3RoOyBpKyspCi0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5jdXJIVE1MT3V0cHV0X1tpXSk7Ci0gICAgICB0aGlzLmN1ckhUTUxPdXRwdXRfID0gW107Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRUZXN0Q2FzZUhhZEVycm9yc18pCi0gICAgICAgIHRoaXMubnVtVGVzdHNUaGF0RmFpbGVkXyArPSAxOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLm51bVRlc3RzVGhhdFBhc3NlZF8gKz0gMTsKLSAgICB9LAotCi0gICAgZGlkUnVuVGVzdHM6IGZ1bmN0aW9uKCkgewotICAgIH0sCi0KLSAgICB3cml0ZVRvQnVmZmVyOiBmdW5jdGlvbihtc2cpIHsKLSAgICAgIHRoaXMuYnVmZmVyUGFydHNfLnB1c2gobXNnKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBUZXh0VGVzdFJlc3VsdHM6IFRleHRUZXN0UmVzdWx0cwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91dGlscy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3V0aWxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiODIxNjAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3V0aWxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmVjdC5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBBZGRzIGEge0Bjb2RlIGdldEluc3RhbmNlfSBzdGF0aWMgbWV0aG9kIHRoYXQgYWx3YXlzIHJldHVybiB0aGUgc2FtZQotICAgKiBpbnN0YW5jZSBvYmplY3QuCi0gICAqIEBwYXJhbSB7IUZ1bmN0aW9ufSBjdG9yIFRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIGNsYXNzIHRvIGFkZCB0aGUgc3RhdGljCi0gICAqICAgICBtZXRob2QgdG8uCi0gICAqLwotICBmdW5jdGlvbiBhZGRTaW5nbGV0b25HZXR0ZXIoY3RvcikgewotICAgIGN0b3IuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiBjdG9yLmluc3RhbmNlXyB8fCAoY3Rvci5pbnN0YW5jZV8gPSBuZXcgY3RvcigpKTsKLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gaW5zdGFudGlhdGVUZW1wbGF0ZShzZWxlY3RvciwgZG9jKSB7Ci0gICAgZG9jID0gZG9jIHx8IGRvY3VtZW50OwotICAgIHZhciBlbCA9IGRvYy5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKLSAgICBpZiAoIWVsKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50IG5vdCBmb3VuZCcpOwotICAgIHJldHVybiBlbC5jcmVhdGVJbnN0YW5jZSgpOwotICB9Ci0KLSAgZnVuY3Rpb24gdHJhY2VkRnVuY3Rpb24oZm4sIG5hbWUsIG9wdF90aGlzKSB7Ci0gICAgZnVuY3Rpb24gRigpIHsKLSAgICAgIGNvbnNvbGUudGltZShuYW1lKTsKLSAgICAgIHRyeSB7Ci0gICAgICAgIGZuLmFwcGx5KG9wdF90aGlzLCBhcmd1bWVudHMpOwotICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgY29uc29sZS50aW1lRW5kKG5hbWUpOwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gRjsKLSAgfQotCi0gIGZ1bmN0aW9uIG5vcm1hbGl6ZUV4Y2VwdGlvbihlKSB7Ci0gICAgaWYgKHR5cGVvZihlKSA9PSAnc3RyaW5nJykgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgbWVzc2FnZTogZSwKLSAgICAgICAgc3RhY2s6IFsnPHVua25vd24+J10KLSAgICAgIH07Ci0gICAgfQotCi0gICAgcmV0dXJuIHsKLSAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSwKLSAgICAgIHN0YWNrOiBlLnN0YWNrID8gZS5zdGFjayA6IFsnPHVua25vd24+J10KLSAgICB9OwotICB9Ci0KLSAgZnVuY3Rpb24gc3RhY2tUcmFjZSgpIHsKLSAgICB2YXIgc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjayArICcnOwotICAgIHN0YWNrID0gc3RhY2suc3BsaXQoJ1xuJyk7Ci0gICAgcmV0dXJuIHN0YWNrLnNsaWNlKDIpOwotICB9Ci0KLSAgZnVuY3Rpb24gd2luZG93UmVjdEZvckVsZW1lbnQoZWxlbWVudCkgewotICAgIHZhciBwb3NpdGlvbiA9IFtlbGVtZW50Lm9mZnNldExlZnQsIGVsZW1lbnQub2Zmc2V0VG9wXTsKLSAgICB2YXIgc2l6ZSA9IFtlbGVtZW50Lm9mZnNldFdpZHRoLCBlbGVtZW50Lm9mZnNldEhlaWdodF07Ci0gICAgdmFyIG5vZGUgPSBlbGVtZW50Lm9mZnNldFBhcmVudDsKLSAgICB3aGlsZSAobm9kZSkgewotICAgICAgcG9zaXRpb25bMF0gKz0gbm9kZS5vZmZzZXRMZWZ0OwotICAgICAgcG9zaXRpb25bMV0gKz0gbm9kZS5vZmZzZXRUb3A7Ci0gICAgICBub2RlID0gbm9kZS5vZmZzZXRQYXJlbnQ7Ci0gICAgfQotICAgIHJldHVybiB0ci5iLlJlY3QuZnJvbVhZV0gocG9zaXRpb25bMF0sIHBvc2l0aW9uWzFdLCBzaXplWzBdLCBzaXplWzFdKTsKLSAgfQotCi0gIGZ1bmN0aW9uIHNjcm9sbEludG9WaWV3SWZOZWVkZWQoZWwpIHsKLSAgICB2YXIgcHIgPSBlbC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIHZhciBjciA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGlmIChjci50b3AgPCBwci50b3ApIHsKLSAgICAgIGVsLnNjcm9sbEludG9WaWV3KHRydWUpOwotICAgIH0gZWxzZSBpZiAoY3IuYm90dG9tID4gcHIuYm90dG9tKSB7Ci0gICAgICBlbC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7Ci0gICAgfQotICB9Ci0KLSAgZnVuY3Rpb24gZ2V0VXNpbmdQYXRoKHBhdGgsIGZyb21fZGljdCkgewotICAgIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoJy4nKTsKLSAgICB2YXIgY3VyID0gZnJvbV9kaWN0OwotCi0gICAgZm9yICh2YXIgcGFydDsgcGFydHMubGVuZ3RoICYmIChwYXJ0ID0gcGFydHMuc2hpZnQoKSk7KSB7Ci0gICAgICBpZiAoIXBhcnRzLmxlbmd0aCkgewotICAgICAgICByZXR1cm4gY3VyW3BhcnRdOwotICAgICAgfSBlbHNlIGlmIChwYXJ0IGluIGN1cikgewotICAgICAgICBjdXIgPSBjdXJbcGFydF07Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdW5kZWZpbmVkOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBhZGRTaW5nbGV0b25HZXR0ZXI6IGFkZFNpbmdsZXRvbkdldHRlciwKLQotICAgIHRyYWNlZEZ1bmN0aW9uOiB0cmFjZWRGdW5jdGlvbiwKLSAgICBub3JtYWxpemVFeGNlcHRpb246IG5vcm1hbGl6ZUV4Y2VwdGlvbiwKLSAgICBpbnN0YW50aWF0ZVRlbXBsYXRlOiBpbnN0YW50aWF0ZVRlbXBsYXRlLAotICAgIHN0YWNrVHJhY2U6IHN0YWNrVHJhY2UsCi0KLSAgICB3aW5kb3dSZWN0Rm9yRWxlbWVudDogd2luZG93UmVjdEZvckVsZW1lbnQsCi0KLSAgICBzY3JvbGxJbnRvVmlld0lmTmVlZGVkOiBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLAotCi0gICAgZ2V0VXNpbmdQYXRoOiBnZXRVc2luZ1BhdGgKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdXRpbHNfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3V0aWxzX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTllOTk2OS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdXRpbHNfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci08cG9seW1lci1lbGVtZW50IG5hbWU9Imluc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItZWxlbWVudC10ZXN0Ij4KLSAgPHRlbXBsYXRlPjwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLSAgUG9seW1lcih7Ci0gICAgdGVzdFByb3BlcnR5OiAnVGVzdCcKLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+Ci0KLTx0ZW1wbGF0ZSBpZD0iaW5zdGFudGlhdGUtdGVtcGxhdGUtcG9seW1lci10ZXN0Ij4KLSAgPGluc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItZWxlbWVudC10ZXN0PgotICA8L2luc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItZWxlbWVudC10ZXN0PgotPC90ZW1wbGF0ZT4KLQotPHRlbXBsYXRlIGlkPSJtdWx0aXBsZS10ZW1wbGF0ZS10ZXN0Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxpbnN0YW50aWF0ZS10ZW1wbGF0ZS1wb2x5bWVyLWVsZW1lbnQtdGVzdD4KLSAgICA8L2luc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItZWxlbWVudC10ZXN0PgotICAgIDxzcGFuIHRlc3QtYXR0cmlidXRlPSdUZXN0QXR0cmlidXRlJz5Gb288L3NwYW4+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxpbnN0YW50aWF0ZS10ZW1wbGF0ZS1wb2x5bWVyLWVsZW1lbnQtdGVzdD4KLSAgPC9pbnN0YW50aWF0ZS10ZW1wbGF0ZS1wb2x5bWVyLWVsZW1lbnQtdGVzdD4KLTwvdGVtcGxhdGU+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuX2N1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKLQotICB0ZXN0KCdnZXRVc2luZ1BhdGgnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgeiA9IHRyLmIuZ2V0VXNpbmdQYXRoKCd4LnkueicsIHsneCc6IHsneSc6IHsneic6IDN9fX0pOwotICAgIGFzc2VydC5lcXVhbCh6LCAzKTsKLQotICAgIHZhciB3ID0gdHIuYi5nZXRVc2luZ1BhdGgoJ3gudycsIHsneCc6IHsneSc6IHsneic6IDN9fX0pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZCh3KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVUZW1wbGF0ZVBvbHltZXInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZSA9IHRyLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKLSAgICAgICAgICAgICAgICAnI2luc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItdGVzdCcsCi0gICAgICAgICAgICAgICAgVEhJU19ET0MpOwotICAgIGFzc2VydC5lcXVhbChlLmNoaWxkcmVuLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGUuY2hpbGRyZW5bMF0udGVzdFByb3BlcnR5LCAnVGVzdCcpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZVRlbXBsYXRlTXVsdGlwbGVUZW1wbGF0ZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb3V0ZXJFbGVtZW50ID0gdHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNtdWx0aXBsZS10ZW1wbGF0ZS10ZXN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRISVNfRE9DKTsKLSAgICBhc3NlcnQuZXF1YWwob3V0ZXJFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKG91dGVyRWxlbWVudC5jaGlsZHJlblsxXS50ZXN0UHJvcGVydHksICdUZXN0Jyk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgd2UgY2FuIHN0aWxsIGluc3RhbnRpYXRlIGlubmVyIHRlbXBsYXRlcywgaWYgd2UgbmVlZCB0aGVtLgotICAgIHZhciBpbm5lckVsZW1lbnQgPSBvdXRlckVsZW1lbnQuY2hpbGRyZW5bMF0uY3JlYXRlSW5zdGFuY2UoKTsKLSAgICBhc3NlcnQuZXF1YWwoaW5uZXJFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKGlubmVyRWxlbWVudC5jaGlsZHJlblswXS50ZXN0UHJvcGVydHksICdUZXN0Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKAotICAgICAgICBpbm5lckVsZW1lbnQuY2hpbGRyZW5bMV0uZ2V0QXR0cmlidXRlKCd0ZXN0LWF0dHJpYnV0ZScpLAotICAgICAgICAnVGVzdEF0dHJpYnV0ZScpOwotICAgIGFzc2VydC5lcXVhbChpbm5lckVsZW1lbnQuY2hpbGRyZW5bMV0udGV4dENvbnRlbnQsICdGb28nKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3hoci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3hoci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YWIxYjA0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS94aHIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuX2N1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKLQotICBmdW5jdGlvbiBnZXQodXJsLCBhc3luYykgewotICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB2YXIgaXNCaW5hcnkgPSAvWy5dZ3okLy50ZXN0KHVybCkgfHwgL1suXXppcCQvLnRlc3QodXJsKTsKLSAgICByZXEub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbjsgY2hhcnNldD14LXVzZXItZGVmaW5lZCcpOwotICAgIHJlcS5vcGVuKCdHRVQnLCB1cmwsIGFzeW5jKTsKLSAgICBpZiAoaXNCaW5hcnkgJiYgYXN5bmMpCi0gICAgICByZXEucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKLQotICAgIGlmICghYXN5bmMpIHsKLSAgICAgIHJlcS5zZW5kKG51bGwpOwotICAgICAgaWYgKHJlcS5zdGF0dXMgPT0gMjAwKSB7Ci0gICAgICAgIHJldHVybiByZXEucmVzcG9uc2VUZXh0OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdYSFIgZmFpbGVkIHdpdGggc3RhdHVzICcgKyByZXEuc3RhdHVzKTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICB2YXIgcCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGFFdnQpIHsKLSAgICAgICAgaWYgKHJlcS5yZWFkeVN0YXRlID09IDQpIHsKLSAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGlmIChyZXEuc3RhdHVzID09IDIwMCkgewotICAgICAgICAgICAgICByZXNvbHZlKGlzQmluYXJ5ID8gcmVxLnJlc3BvbnNlIDogcmVxLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdYSFIgZmFpbGVkIHdpdGggc3RhdHVzICcgKyByZXEuc3RhdHVzKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSwgMCk7Ci0gICAgICAgIH0KLSAgICAgIH07Ci0gICAgfSk7Ci0gICAgcmVxLnNlbmQoKTsKLSAgICByZXR1cm4gcDsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldEFzeW5jKHVybCkgewotICAgIHJldHVybiBnZXQodXJsLCB0cnVlKTsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldFN5bmModXJsKSB7Ci0gICAgcmV0dXJuIGdldCh1cmwsIGZhbHNlKTsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgZ2V0QXN5bmM6IGdldEFzeW5jLAotICAgIGdldFN5bmM6IGdldFN5bmMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTYxOTZjZi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9iZW5jaG1hcmtzLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9iZW5jaG1hcmtzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTgzNjljLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvYmVuY2htYXJrcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgY1Byb2ZpbGUsIHBzdGF0cywgU3RyaW5nSU8KLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgb3B0cGFyc2UKLWltcG9ydCBzeXMKLQotZnJvbSB0cmFjZV92aWV3ZXIgaW1wb3J0IHRyYWNlX3ZpZXdlcl9wcm9qZWN0Ci0KLWNsYXNzIEJlbmNoKG9iamVjdCk6Ci0gIGRlZiBTZXRVcChzZWxmKToKLSAgICBwYXNzCi0gIGRlZiBSdW4oc2VsZik6Ci0gICAgcGFzcwotICBkZWYgVGVhckRvd24oc2VsZik6Ci0gICAgcGFzcwotCi1jbGFzcyBDYWxjRGVwc0JlbmNoKEJlbmNoKToKLSAgZGVmIFJ1bihzZWxmKToKLSAgICBwcm9qZWN0ID0gdHJhY2Vfdmlld2VyX3Byb2plY3QuVHJhY2VWaWV3ZXJQcm9qZWN0KCkKLSAgICBsb2FkX3NlcXVlbmNlID0gcHJvamVjdC5DYWxjTG9hZFNlcXVlbmNlRm9yQWxsTW9kdWxlcygpCi0KLWNsYXNzIEZpbmRBbGxNb2R1bGVGaWxlbmFtZXNCZW5jaChCZW5jaCk6Ci0gIGRlZiBSdW4oc2VsZik6Ci0gICAgcHJvamVjdCA9IHRyYWNlX3ZpZXdlcl9wcm9qZWN0LlRyYWNlVmlld2VyUHJvamVjdCgpCi0gICAgZmlsZW5hbWVzID0gcHJvamVjdC5GaW5kQWxsTW9kdWxlRmlsZW5hbWVzKCkKLQotY2xhc3MgRG9HZW5lcmF0ZShCZW5jaCk6Ci0gIGRlZiBTZXRVcCgpOgotICAgIHNlbGYucHJvamVjdCA9IHRyYWNlX3ZpZXdlcl9wcm9qZWN0LlRyYWNlVmlld2VyUHJvamVjdCgpCi0gICAgc2VsZi5sb2FkX3NlcXVlbmNlID0gcHJvamVjdC5DYWxjTG9hZFNlcXVlbmNlRm9yQWxsTW9kdWxlcygpCi0KLSAgZGVmIFJ1bihzZWxmKToKLSAgICBzZWxmLmRlcHMgPSBnZW5lcmF0ZS5HZW5lcmF0ZURlcHNKUygKLSAgICAgIHNlbGYubG9hZF9zZXF1ZW5jZSwgc2VsZi5wcm9qZWN0KQotCi0KLWRlZiBNYWluKGFyZ3MpOgotICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotICBwYXJzZXIuYWRkX29wdGlvbignLS1yZXBlYXQtY291bnQnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PTEwKQotICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKLQotICBiZW5jaGVzID0gW2cgZm9yIGcgaW4gZ2xvYmFscygpLnZhbHVlcygpCi0gICAgICAgICAgICAgaWYgZyAhPSBCZW5jaCBhbmQgaW5zcGVjdC5pc2NsYXNzKGcpIGFuZCBCZW5jaCBpbiBpbnNwZWN0LmdldG1ybyhnKV0KLSAgaWYgbGVuKGFyZ3MpICE9IDE6Ci0gICAgc3lzLnN0ZGVyci53cml0ZSgnXG4nLmpvaW4oW2IuX19uYW1lX18gZm9yIGIgaW4gYmVuY2hlc10pKQotICAgIHJldHVybiAxCi0KLSAgYiA9IFtiIGZvciBiIGluIGJlbmNoZXMgaWYgYi5fX25hbWVfXyA9PSBhcmdzWzBdXQotICBpZiBsZW4oYikgIT0gMToKLSAgICBzeXMuc3RkZXJyLndyaXRlKCdPb3BzJykKLSAgICByZXR1cm4gMQotCi0gIGJlbmNoID0gYlswXSgpCi0gIGJlbmNoLlNldFVwKCkKLSAgdHJ5OgotICAgIHByID0gY1Byb2ZpbGUuUHJvZmlsZSgpCi0gICAgcHIuZW5hYmxlKGJ1aWx0aW5zPUZhbHNlKQotICAgIGZvciBpIGluIHJhbmdlKG9wdGlvbnMucmVwZWF0X2NvdW50KToKLSAgICAgIGJlbmNoLlJ1bigpCi0gICAgcHIuZGlzYWJsZSgpCi0gICAgcyA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKLQotICAgIHNvcnRieSA9ICdjdW11bGF0aXZlJwotICAgIHBzID0gcHN0YXRzLlN0YXRzKHByLCBzdHJlYW09cykuc29ydF9zdGF0cyhzb3J0YnkpCi0gICAgcHMucHJpbnRfc3RhdHMoKQotICAgIHByaW50IHMuZ2V0dmFsdWUoKQotICAgIHJldHVybiAwCi0gIGZpbmFsbHk6Ci0gICAgYmVuY2guVGVhckRvd24oKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICBzeXMuZXhpdChNYWluKHN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2NoZWNrX2NvbW1vbi5weSBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvY2hlY2tfY29tbW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2Y4Mzg4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvY2hlY2tfY29tbW9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0IG9zCi0KLWZyb20gdHJhY2Vfdmlld2VyIGltcG9ydCB0cmFjZV92aWV3ZXJfcHJvamVjdAotCi0KLUZJTEVfR1JPVVBTID0gWyJ0cmFjaW5nX2Nzc19maWxlcyIsCi0gICAgICAgICAgICAgICAidHJhY2luZ19qc19odG1sX2ZpbGVzIiwKLSAgICAgICAgICAgICAgICJ0cmFjaW5nX2ltZ19maWxlcyJdCi0KLWRlZiBHZXRGaWxlR3JvdXBGcm9tRmlsZU5hbWUoZmlsZW5hbWUpOgotICAgZXh0ZW5zaW9uID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMV0KLSAgIHJldHVybiB7Ci0gICAgICcuY3NzJzogJ3RyYWNpbmdfY3NzX2ZpbGVzJywKLSAgICAgJy5odG1sJzogJ3RyYWNpbmdfanNfaHRtbF9maWxlcycsCi0gICAgICcuanMnOiAndHJhY2luZ19qc19odG1sX2ZpbGVzJywKLSAgICAgJy5wbmcnOiAndHJhY2luZ19pbWdfZmlsZXMnCi0gICB9W2V4dGVuc2lvbl0KLQotZGVmIENoZWNrTGlzdGVkRmlsZXNTb3J0ZWQoc3JjX2ZpbGUsIGdyb3VwX25hbWUsIGxpc3RlZF9maWxlcyk6Ci0gIHNvcnRlZF9maWxlcyA9IHNvcnRlZChsaXN0ZWRfZmlsZXMpCi0gIGlmIHNvcnRlZF9maWxlcyAhPSBsaXN0ZWRfZmlsZXM6Ci0gICAgbWlzbWF0Y2ggPSAnJwotICAgIGZvciBpIGluIHJhbmdlKGxlbihsaXN0ZWRfZmlsZXMpKToKLSAgICAgIGlmIGxpc3RlZF9maWxlc1tpXSAhPSBzb3J0ZWRfZmlsZXNbaV06Ci0gICAgICAgIG1pc21hdGNoID0gbGlzdGVkX2ZpbGVzW2ldCi0gICAgICAgIGJyZWFrCi0gICAgd2hhdF9pcyA9ICcgICcgKyAnXG4gICcuam9pbihsaXN0ZWRfZmlsZXMpCi0gICAgd2hhdF9zaG91bGRfYmUgPSAnICAnICsgJ1xuICAnLmpvaW4oc29ydGVkX2ZpbGVzKQotICAgIHJldHVybiAnJydJbiBncm91cCB7MH0gZnJvbSBmaWxlIHsxfSwgZmlsZW5hbWVzIGFyZW4ndCBzb3J0ZWQuCi0KLUZpcnN0IG1pc21hdGNoOgotICB7Mn0KLQotQ3VycmVudCBsaXN0aW5nOgotezN9Ci0KLUNvcnJlY3QgbGlzdGluZzoKLXs0fVxuXG4nJycuZm9ybWF0KGdyb3VwX25hbWUsIHNyY19maWxlLCBtaXNtYXRjaCwgd2hhdF9pcywgd2hhdF9zaG91bGRfYmUpCi0gIGVsc2U6Ci0gICAgcmV0dXJuICcnCi0KLWRlZiBHZXRLbm93bkZpbGVzKCk6Ci0gIHAgPSB0cmFjZV92aWV3ZXJfcHJvamVjdC5UcmFjZVZpZXdlclByb2plY3QoKQotICBtID0gcC5sb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT0nZXh0cmFzLmFib3V0X3RyYWNpbmcuYWJvdXRfdHJhY2luZycpCi0gIGFic29sdXRlX2ZpbGVuYW1lcyA9IG0uR2V0QWxsRGVwZW5kZW50RmlsZW5hbWVzUmVjdXJzaXZlKAotICAgICAgaW5jbHVkZV9yYXdfc2NyaXB0cz1GYWxzZSkKLQotICByZXR1cm4gbGlzdChzZXQoW29zLnBhdGgucmVscGF0aChmLCBwLnRyYWNlX3ZpZXdlcl9wYXRoKQotICAgICAgICAgICAgICAgICAgIGZvciBmIGluIGFic29sdXRlX2ZpbGVuYW1lc10pKQotCi1kZWYgQ2hlY2tDb21tb24oZmlsZV9uYW1lLCBsaXN0ZWRfZmlsZXMpOgotICBwcm9qZWN0ID0gdHJhY2Vfdmlld2VyX3Byb2plY3QuVHJhY2VWaWV3ZXJQcm9qZWN0KCkKLSAgYnVpbGRfZGlyID0gb3MucGF0aC5qb2luKHByb2plY3Quc3JjX3BhdGgsICdidWlsZCcpCi0KLSAga25vd25fZmlsZXMgPSBHZXRLbm93bkZpbGVzKCkKLSAgdSA9IHNldChsaXN0ZWRfZmlsZXMpLnVuaW9uKHNldChrbm93bl9maWxlcykpCi0gIGkgPSBzZXQobGlzdGVkX2ZpbGVzKS5pbnRlcnNlY3Rpb24oc2V0KGtub3duX2ZpbGVzKSkKLSAgZGlmZiA9IGxpc3QodSAtIGkpCi0KLSAgaWYgbGVuKGRpZmYpID09IDA6Ci0gICAgcmV0dXJuICcnCi0KLSAgZXJyb3IgPSAnRW50cmllcyBpbiAnICsgZmlsZV9uYW1lICsgJyBkbyBub3QgbWF0Y2ggZmlsZXMgb24gZGlzazpcbicKLSAgaW5fZmlsZV9vbmx5ID0gbGlzdChzZXQobGlzdGVkX2ZpbGVzKSAtIHNldChrbm93bl9maWxlcykpCi0gIGluX2tub3duX29ubHkgPSBsaXN0KHNldChrbm93bl9maWxlcykgLSBzZXQobGlzdGVkX2ZpbGVzKSkKLQotICBpZiBsZW4oaW5fZmlsZV9vbmx5KSA+IDA6Ci0gICAgZXJyb3IgKz0gJyAgSW4gZmlsZSBvbmx5OlxuICAgICcgKyAnXG4gICAgJy5qb2luKHNvcnRlZChpbl9maWxlX29ubHkpKQotICBpZiBsZW4oaW5fa25vd25fb25seSkgPiAwOgotICAgIGlmIGxlbihpbl9maWxlX29ubHkpID4gMDoKLSAgICAgIGVycm9yICs9ICdcblxuJwotICAgIGVycm9yICs9ICcgIE9uIGRpc2sgb25seTpcbiAgICAnICsgJ1xuICAgICcuam9pbihzb3J0ZWQoaW5fa25vd25fb25seSkpCi0KLSAgaWYgaW5fZmlsZV9vbmx5OgotICAgIGVycm9yICs9ICgnXG5cbicKLSAgICAgICAgJyAgTm90ZTogb25seSBmaWxlcyBhY3R1YWxseSB1c2VkIGluIGFib3V0OnRyYWNpbmcgc2hvdWxkXG4nCi0gICAgICAgICcgIGJlIGxpc3RlZCBpbiB0aGUgYnVpbGQgZmlsZXMuIFRyeSBydW5uaW5nIGJ1aWxkL3VwZGF0ZV9neXBfYW5kX2duXG4nCi0gICAgICAgICcgIHRvIHVwZGF0ZSB0aGUgZmlsZXMgYXV0b21hdGljYWxseS4nKQotCi0gIHJldHVybiBlcnJvcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9jaGVja19jb21tb25fdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2NoZWNrX2NvbW1vbl91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVlMTM0OS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2NoZWNrX2NvbW1vbl91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB0cmFjZV92aWV3ZXIuYnVpbGQgaW1wb3J0IGNoZWNrX2NvbW1vbgotCi1jbGFzcyBDaGVja0NvbW1vblVuaXR0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gIGRlZiB0ZXN0X2ZpbGVzU29ydGVkVGVzdChzZWxmKToKLSAgICBlcnJvciA9IGNoZWNrX2NvbW1vbi5DaGVja0xpc3RlZEZpbGVzU29ydGVkKCdmb28uZ3lwJywgJ3RyYWNpbmdfcGRmX2ZpbGVzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnL2Rpci9maWxlLnBkZicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy9kaXIvYW5vdGhlcl9maWxlLnBkZiddKQotICAgIGV4cGVjdGVkX2Vycm9yID0gJycnSW4gZ3JvdXAgdHJhY2luZ19wZGZfZmlsZXMgZnJvbSBmaWxlIGZvby5neXAsXAotIGZpbGVuYW1lcyBhcmVuJ3Qgc29ydGVkLgotCi1GaXJzdCBtaXNtYXRjaDoKLSAgL2Rpci9maWxlLnBkZgotCi1DdXJyZW50IGxpc3Rpbmc6Ci0gIC9kaXIvZmlsZS5wZGYKLSAgL2Rpci9hbm90aGVyX2ZpbGUucGRmCi0KLUNvcnJlY3QgbGlzdGluZzoKLSAgL2Rpci9hbm90aGVyX2ZpbGUucGRmCi0gIC9kaXIvZmlsZS5wZGZcblxuJycnCi0gICAgYXNzZXJ0IGVycm9yID09IGV4cGVjdGVkX2Vycm9yCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2NoZWNrX2d5cGkucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2NoZWNrX2d5cGkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1NTA1MWIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9jaGVja19neXBpLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0IG9zCi0KLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCBjaGVja19jb21tb24KLQotR1lQSV9GSUxFID0gJ3RyYWNlX3ZpZXdlci5neXBpJwotCi1kZWYgR3lwaUNoZWNrKCk6Ci0gIGYgPSBvcGVuKEdZUElfRklMRSwgJ3InKQotICBneXAgPSBmLnJlYWQoKQotICBmLmNsb3NlKCkKLQotICBkYXRhID0gZXZhbChneXApCi0gIGxpc3RlZF9maWxlcyA9IFtdCi0gIGVycm9yID0gJycKLSAgZm9yIGdyb3VwIGluIGNoZWNrX2NvbW1vbi5GSUxFX0dST1VQUzoKLSAgICBmaWxlbmFtZXMgPSBtYXAob3MucGF0aC5ub3JtcGF0aCwgZGF0YVsndmFyaWFibGVzJ11bZ3JvdXBdKQotICAgIGVycm9yICs9IGNoZWNrX2NvbW1vbi5DaGVja0xpc3RlZEZpbGVzU29ydGVkKEdZUElfRklMRSwgZ3JvdXAsIGZpbGVuYW1lcykKLSAgICBsaXN0ZWRfZmlsZXMuZXh0ZW5kKGZpbGVuYW1lcykKLQotICByZXR1cm4gZXJyb3IgKyBjaGVja19jb21tb24uQ2hlY2tDb21tb24oR1lQSV9GSUxFLCBsaXN0ZWRfZmlsZXMpCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIHByaW50IEd5cGlDaGVjaygpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2NoZWNrX21vZHVsZXMucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2NoZWNrX21vZHVsZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3M2E3ODEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9jaGVja19tb2R1bGVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0IG9zCi0KLWZyb20gdHJhY2Vfdmlld2VyIGltcG9ydCB0cmFjZV92aWV3ZXJfcHJvamVjdAotCi1kZWYgQ2hlY2tNb2R1bGVzKCk6Ci0gIHAgPSB0cmFjZV92aWV3ZXJfcHJvamVjdC5UcmFjZVZpZXdlclByb2plY3QoKQotICB0cnk6Ci0gICAgcC5DYWxjTG9hZFNlcXVlbmNlRm9yQWxsTW9kdWxlcygpCi0gIGV4Y2VwdCBFeGNlcHRpb24sIGV4OgotICAgIHJldHVybiBzdHIoZXgpCi0gIHJldHVybiBbXQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICBwcmludCBHeXBDaGVjaygpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2Q4X3J1bm5lciBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZDhfcnVubmVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiOGVlYmM1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZDhfcnVubmVyCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgdG9wX2RpciA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJy4uJykpCi0gIHN5cy5wYXRoLmFwcGVuZCh0b3BfZGlyKQotICBmcm9tIHRyYWNlX3ZpZXdlci5idWlsZCBpbXBvcnQgZDhfcnVubmVyCi0gIHN5cy5leGl0KGQ4X3J1bm5lci5tYWluKCkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2Q4X3J1bm5lci5weSBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZDhfcnVubmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTcwYWIxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZDhfcnVubmVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBvcwotaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBTdHJpbmdJTwotaW1wb3J0IHN5cwotaW1wb3J0IHBsYXRmb3JtCi0KLQotX1Y4X0RJUiA9IG9zLnBhdGguYWJzcGF0aCgKLSAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKLSAgICBvcy5wYXRoLnBhcmRpciwgb3MucGF0aC5wYXJkaXIsICd0aGlyZF9wYXJ0eScsICd2OCcpKQotCi0KLWRlZiBfSXNWYWxpZEpzRmlsZShwYXJzZXIsIGpzX2ZpbGVfYXJnKToKLSAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGpzX2ZpbGVfYXJnKToKLSAgICBwYXJzZXIuZXJyb3IoJ1RoZSBmaWxlICVzIGRvZXMgbm90IGV4aXN0JyAlIGpzX2ZpbGVfYXJnKQotICBfLCBleHRlbnNpb24gPSBvcy5wYXRoLnNwbGl0ZXh0KGpzX2ZpbGVfYXJnKQotICBpZiBleHRlbnNpb24gIT0gJy5qcyc6Ci0gICAgcGFyc2VyLmVycm9yKCdJbnB1dCBtdXN0IGJlIGEgamF2YXNjcmlwdCBmaWxlJykKLSAgcmV0dXJuIGpzX2ZpbGVfYXJnCi0KLQotZGVmIF9HZXREOEJpbmFyeVBhdGhGb3JQbGF0Zm9ybSgpOgotICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAnTGludXgnIGFuZCBwbGF0Zm9ybS5tYWNoaW5lKCkgPT0gJ3g4Nl82NCc6Ci0gICAgcmV0dXJuIG9zLnBhdGguam9pbihfVjhfRElSLCAnbGludXgnLCAneDg2XzY0JywgJ2Q4JykKLSAgZWxpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAnRGFyd2luJyBhbmQgcGxhdGZvcm0ubWFjaGluZSgpID09ICd4ODZfNjQnOgotICAgIHJldHVybiBvcy5wYXRoLmpvaW4oX1Y4X0RJUiwgJ21hYycsICd4ODZfNjQnLCAnZDgnKQotICBlbHNlOgotICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoCi0gICAgICAgICdkOCBiaW5hcnkgZm9yIHRoaXMgcGxhdGZvcm0gYW5kIGFyY2hpdGVjdHVyZSBpcyBub3QgeWV0IHN1cHBvcnRlZCcpCi0KLQotZGVmIEV4Y2VjdXRlSnNGaWxlKGpzX2ZpbGVfbmFtZSwganNfYXJncyk6Ci0gICIiIiBFeGVjdXRlIHRoZSBqc19maWxlIHdpdGggdjggZW5naW5lIGFuZCByZXR1cm4gdGhlIG91dHB1dCBvZiB0aGUgcHJvZ3JhbS4KLQotICBBcmdzOgotICAgIGpzX2ZpbGVfbmFtZTogdGhlIHN0cmluZyBuYW1lIG9mIHRoZSBqcyBmaWxlIHRvIGJlIHJ1bi4KLSAgICBqc19hcmdzOiBhIGxpc3Qgb2YgYXJndW1lbnRzIHRvIHBhc3NlZCB0byB0aGUgfGpzX2ZpbGVfbmFtZXwgcHJvZ3JhbS4KLSAgIiIiCi0gIGFyZ3MgPSBbX0dldEQ4QmluYXJ5UGF0aEZvclBsYXRmb3JtKCldCi0gIGFyZ3MuYXBwZW5kKGpzX2ZpbGVfbmFtZSkKLSAgaWYganNfYXJnczoKLSAgICBhcmdzICs9IFsnLS1qc19hcmd1bWVudHMnXSArIGpzX2FyZ3MKLSAgc3AgPSBzdWJwcm9jZXNzLlBvcGVuKGFyZ3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCi0gIG91dCwgZXJyID0gc3AuY29tbXVuaWNhdGUoKQotICBpZiBzcC5yZXR1cm5jb2RlICE9IDA6Ci0gICAgcmFpc2UgUnVudGltZUVycm9yKAotICAgICAgICAiRXhjZXB0aW9uIHJhaXNlZCB3aGVuIGV4ZWN1dGluZyAlcyB3aXRoIGFyZ3MgJyVzJzpcbiVzXG4lcyIgJQotICAgICAgICAoanNfZmlsZV9uYW1lLCBqc19hcmdzLCBvdXQsIGVycikpCi0gIHJldHVybiBvdXQKLQotCi1kZWYgbWFpbigpOgotICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigKLSAgICAgIGRlc2NyaXB0aW9uPSdSdW4gamF2YXNjcmlwdCBmaWxlIHdpdGggdjggZW5naW5lJykKLSAgcGFyc2VyLmFkZF9hcmd1bWVudCgnanNfZmlsZV9uYW1lJywgaGVscD0naW5wdXQganMgZmlsZScsIG1ldGF2YXI9J0pTX0ZJTEUnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9bGFtYmRhIGY6IF9Jc1ZhbGlkSnNGaWxlKHBhcnNlciwgZikpCi0gIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tanNfYXJncycsIGhlbHA9J2FyZ3VtZW50cyBmb3IgdGhlIGpzIHByb2dyYW0nLAotICAgICAgICAgICAgICAgICAgICAgIG5hcmdzPScrJykKLSAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICBwcmludCBFeGNlY3V0ZUpzRmlsZShhcmdzLmpzX2ZpbGVfbmFtZSwgYXJncy5qc19hcmdzKQotICByZXR1cm4gMApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9kOF91bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZDhfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxN2E2YzEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9kOF91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBvcwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCBkOF9ydW5uZXIKLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCBjaGVja19jb21tb24KLQotCi1jbGFzcyBDaGVja0NvbW1vblVuaXR0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gIGRlZiB0ZXN0X2ZpbGVzU29ydGVkVGVzdChzZWxmKToKLSAgICBlcnJvciA9IGNoZWNrX2NvbW1vbi5DaGVja0xpc3RlZEZpbGVzU29ydGVkKCdmb28uZ3lwJywgJ3RyYWNpbmdfcGRmX2ZpbGVzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnL2Rpci9maWxlLnBkZicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy9kaXIvYW5vdGhlcl9maWxlLnBkZiddKQotICAgIGV4cGVjdGVkX2Vycm9yID0gJycnSW4gZ3JvdXAgdHJhY2luZ19wZGZfZmlsZXMgZnJvbSBmaWxlIGZvby5neXAsXAotIGZpbGVuYW1lcyBhcmVuJ3Qgc29ydGVkLgotCi1GaXJzdCBtaXNtYXRjaDoKLSAgL2Rpci9maWxlLnBkZgotCi1DdXJyZW50IGxpc3Rpbmc6Ci0gIC9kaXIvZmlsZS5wZGYKLSAgL2Rpci9hbm90aGVyX2ZpbGUucGRmCi0KLUNvcnJlY3QgbGlzdGluZzoKLSAgL2Rpci9hbm90aGVyX2ZpbGUucGRmCi0gIC9kaXIvZmlsZS5wZGZcblxuJycnCi0gICAgYXNzZXJ0IGVycm9yID09IGV4cGVjdGVkX2Vycm9yCi0KLSAgZGVmIHRlc3RTaW1wbGVKc0V4ZWN1dGlvbihzZWxmKToKLSAgICB0ZXN0X2RhdGFfZGlyID0gb3MucGF0aC5hYnNwYXRoKAotICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ3Rlc3RfZGF0YScpKQotICAgIGpzX2ZpbGVfcGF0aCA9IG9zLnBhdGguam9pbih0ZXN0X2RhdGFfZGlyLCAncHJpbnRfZmlsZV9jb250ZW50LmpzJykKLSAgICBkdW1teV90ZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4odGVzdF9kYXRhX2RpciwgJ2R1bW15X3Rlc3RfZmlsZScpCi0gICAgb3V0cHV0ICA9IGQ4X3J1bm5lci5FeGNlY3V0ZUpzRmlsZShqc19maWxlX3BhdGgsIGpzX2FyZ3M9W2R1bW15X3Rlc3RfcGF0aF0pCi0gICAgc2VsZi5hc3NlcnRUcnVlKAotICAgICAgICAnVGhpcyBpcyBmaWxlIGNvbnRhaW5zIG9ubHkgZGF0YSBmb3IgdGVzdGluZy5cbjEgMiAzIDQnIGluIG91dHB1dCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZml4anNzdHlsZSBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZml4anNzdHlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMjk0NzM3YS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2ZpeGpzc3R5bGUKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICB0b3BfZGlyID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAnLi4nKSkKLSAgc3lzLnBhdGguYXBwZW5kKHRvcF9kaXIpCi0gIGZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCBmaXhqc3N0eWxlCi0gIHN5cy5leGl0KGZpeGpzc3R5bGUubWFpbigpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9maXhqc3N0eWxlLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9maXhqc3N0eWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTdhNWJkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZml4anNzdHlsZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQotZnJvbSB0cmFjZV92aWV3ZXIgaW1wb3J0IHRyYWNlX3ZpZXdlcl9wcm9qZWN0Ci0KLQotCi1kZWYgbWFpbigpOgotICBwcm9qZWN0ID0gdHJhY2Vfdmlld2VyX3Byb2plY3QuVHJhY2VWaWV3ZXJQcm9qZWN0KCkKLQotICBzeXMucGF0aC5hcHBlbmQob3MucGF0aC5qb2luKAotICAgICAgcHJvamVjdC50cmFjZV92aWV3ZXJfdGhpcmRfcGFydHlfcGF0aCwgJ3B5dGhvbl9nZmxhZ3MnKSkKLSAgc3lzLnBhdGguYXBwZW5kKG9zLnBhdGguam9pbigKLSAgICAgIHByb2plY3QudHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGgsICdjbG9zdXJlX2xpbnRlcicpKQotCi0gIGZyb20gY2xvc3VyZV9saW50ZXIgaW1wb3J0IGZpeGpzc3R5bGUKLQotICBvcy5jaGRpcihwcm9qZWN0LnNyY19wYXRoKQotCi0gIGZpeGpzc3R5bGUubWFpbigpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDJiYWMxYTMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgdG9wX2RpciA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJy4uJykpCi0gIHN5cy5wYXRoLmFwcGVuZCh0b3BfZGlyKQotICBmcm9tIHRyYWNlX3ZpZXdlci5idWlsZCBpbXBvcnQgZ2VuZXJhdGVfYWJvdXRfdHJhY2luZ19jb250ZW50cwotICBzeXMuZXhpdChnZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLm1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGE5ZmVlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvZ2VuZXJhdGVfYWJvdXRfdHJhY2luZ19jb250ZW50cy5weQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBjb2RlY3MKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWltcG9ydCB0dmNtCi1mcm9tIHRyYWNlX3ZpZXdlciBpbXBvcnQgdHJhY2Vfdmlld2VyX3Byb2plY3QKLQotZGVmIG1haW4oYXJncyk6Ci0gIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcih1c2FnZT0iJXByb2cgLS1vdXRkaXI9PGRpcmVjdG9yeT4iKQotICBwYXJzZXIuYWRkX29wdGlvbigiLS1vdXRkaXIiLCBkZXN0PSJvdXRfZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iV2hlcmUgdG8gcGxhY2UgZ2VuZXJhdGVkIGNvbnRlbnQiKQotICBwYXJzZXIuYWRkX29wdGlvbignLS1uby1taW4nLCBkZXN0PSdub19taW4nLCBkZWZhdWx0PUZhbHNlLCAKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgaGVscD0nc2tpcCBtaW5pZmljYXRpb24nKSAgICAgICAgICAgICAgICAgICAgCi0gIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzKQotCi0gIGlmIG5vdCBvcHRpb25zLm91dF9kaXI6Ci0gICAgc3lzLnN0ZGVyci53cml0ZSgiRVJST1I6IE11c3Qgc3BlY2lmeSAtLW91dGRpcj08ZGlyZWN0b3J5PiIpCi0gICAgcGFyc2VyLnByaW50X2hlbHAoKQotICAgIHJldHVybiAxCi0KLSAgZmlsZW5hbWVzID0gWyJleHRyYXMvYWJvdXRfdHJhY2luZy9hYm91dF90cmFjaW5nLmh0bWwiXQotICBwcm9qZWN0ID0gdHJhY2Vfdmlld2VyX3Byb2plY3QuVHJhY2VWaWV3ZXJQcm9qZWN0KCkKLSAgbG9hZF9zZXF1ZW5jZSA9IHByb2plY3QuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZUZpbGVuYW1lcyhmaWxlbmFtZXMpCi0KLSAgb2xkZGlyID0gb3MuZ2V0Y3dkKCkKLSAgdHJ5OgotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhvcHRpb25zLm91dF9kaXIpOgotICAgICAgb3MubWFrZWRpcnMob3B0aW9ucy5vdXRfZGlyKQotICAgIG8gPSBjb2RlY3Mub3Blbihvcy5wYXRoLmpvaW4ob3B0aW9ucy5vdXRfZGlyLCAiYWJvdXRfdHJhY2luZy5odG1sIiksICd3JywKLSAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICB0cnk6Ci0gICAgICB0dmNtLkdlbmVyYXRlU3RhbmRhbG9uZUhUTUxUb0ZpbGUoCi0gICAgICAgICAgbywKLSAgICAgICAgICBsb2FkX3NlcXVlbmNlLAotICAgICAgICAgIHRpdGxlPSdjaHJvbWU6Ly90cmFjaW5nJywKLSAgICAgICAgICBmbGF0dGVuZWRfanNfdXJsPSd0cmFjaW5nLmpzJywKLSAgICAgICAgICBtaW5pZnk9bm90IG9wdGlvbnMubm9fbWluKQotICAgIGV4Y2VwdCB0dmNtLm1vZHVsZS5EZXBzRXhjZXB0aW9uLCBleDoKLSAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkVycm9yOiAlc1xuXG4iICUgc3RyKGV4KSkKLSAgICAgIHJldHVybiAyNTUKLSAgICBvLmNsb3NlKCkKLQotCi0gICAgbyA9IGNvZGVjcy5vcGVuKG9zLnBhdGguam9pbihvcHRpb25zLm91dF9kaXIsICJhYm91dF90cmFjaW5nLmpzIiksICd3JywKLSAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICBhc3NlcnQgby5lbmNvZGluZyA9PSAndXRmLTgnCi0gICAgdHZjbS5HZW5lcmF0ZUpTVG9GaWxlKAotICAgICAgICBvLAotICAgICAgICBsb2FkX3NlcXVlbmNlLAotICAgICAgICB1c2VfaW5jbHVkZV90YWdzX2Zvcl9zY3JpcHRzPUZhbHNlLAotICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3Q9b3B0aW9ucy5vdXRfZGlyLAotICAgICAgICBtaW5pZnk9bm90IG9wdGlvbnMubm9fbWluKQotICAgIG8uY2xvc2UoKQotCi0gIGZpbmFsbHk6Ci0gICAgb3MuY2hkaXIob2xkZGlyKQotCi0gIHJldHVybiAwCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHNfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHNfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMDM0NzIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzX3VuaXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCBiYXNlNjQKLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgc2h1dGlsCi0KLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCBnZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzCi0KLWNsYXNzIEdlbmVyYXRlQWJvdXRUcmFjaW5nQ29udGVudHNVbml0dFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICBkZWYgdGVzdF9zbW9rZVRlc3Qoc2VsZik6Ci0gICAgdHJ5OgotICAgICAgdG1wZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICByZXMgPSBnZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLm1haW4oWyctLW91dGRpcicsIHRtcGRpcl0pCi0gICAgICBhc3NlcnQgcmVzID09IDAKLSAgICBmaW5hbGx5OgotICAgICAgc2h1dGlsLnJtdHJlZSh0bXBkaXIpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2dqc2xpbnQgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL2dqc2xpbnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDE0MjU3YWIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC9nanNsaW50CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQotCi1zcmNfZGlyID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIHRvcF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICcuLicpKQotICBzeXMucGF0aC5hcHBlbmQodG9wX2RpcikKLSAgaW1wb3J0IHRyYWNlX3ZpZXdlcgotICBmcm9tIGhvb2tzIGltcG9ydCBnanNsaW50Ci0gIHN5cy5leGl0KGdqc2xpbnQuTWFpbihbCi0gICAgb3MucGF0aC5qb2luKHRvcF9kaXIsICd0cmFjZV92aWV3ZXInKSwKLSAgXSkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3Rlc3RfZGF0YS9wcmludF9maWxlX2NvbnRlbnQuanMgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3Rlc3RfZGF0YS9wcmludF9maWxlX2NvbnRlbnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzYmIyMWIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC90ZXN0X2RhdGEvcHJpbnRfZmlsZV9jb250ZW50LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaWYgKGFyZ3VtZW50cy5sZW5ndGggIT0gMSkgewotICB0aHJvdyAnYXJndW1lbnRzIG11c3QgYmUgYSBzaW5nbGUgZmlsZSBuYW1lJzsKLX0KLQotZmlsZV9wYXRoID0gYXJndW1lbnRzWzBdOwotZmlsZV9jb250ZW50ID0gcmVhZChmaWxlX3BhdGgpOwotcHJpbnQoJ0NvbnRlbnQgb2YgZmlsZSAnICsgZmlsZV9wYXRoICsgJyBpcyAnICsgZmlsZV9jb250ZW50KTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdHJhY2UyaHRtbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC90cmFjZTJodG1sLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhZDNhMWYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC90cmFjZTJodG1sLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdHJhY2Vfdmlld2VyLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdmFyIGdfdGltZWxpbmVWaWV3RWw7Ci0KLShmdW5jdGlvbigpIHsKLSAgdmFyIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwotICB2YXIgbGluZXMgPSBbCi0gICAgJ2h0bWwsIGJvZHkgeycsCi0gICAgJyAgYm94LXNpemluZzogYm9yZGVyLWJveDsnLAotICAgICcgIG92ZXJmbG93OiBoaWRkZW47JywKLSAgICAnICBtYXJnaW46IDBweDsnLAotICAgICcgIHBhZGRpbmc6IDA7JywKLSAgICAnICB3aWR0aDogMTAwJTsnLAotICAgICcgIGhlaWdodDogMTAwJTsnLAotICAgICd9JywKLSAgICAnI3RpbWVsaW5lLXZpZXcgeycsCi0gICAgJyAgd2lkdGg6IDEwMCU7JywKLSAgICAnICBoZWlnaHQ6IDEwMCU7JywKLSAgICAnfScKLSAgXTsKLSAgc3R5bGVFbC50ZXh0Q29udGVudCA9IGxpbmVzLmpvaW4oJ1xuJyk7Ci0gIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbCk7Ci19KSgpOwotCi1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7Ci0gIGdfdGltZWxpbmVWaWV3RWwgPSBuZXcgdHIuVHJhY2VWaWV3ZXIoKTsKLSAgZ190aW1lbGluZVZpZXdFbC5pZCA9ICd0aW1lbGluZS12aWV3JzsKLSAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChnX3RpbWVsaW5lVmlld0VsKTsKLQotICB2YXIgdHJhY2VzID0gW107Ci0gIHZhciB2aWV3ZXJEYXRhU2NyaXB0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN2aWV3ZXItZGF0YScpOwotICBmb3IgKHZhciBpID0gMDsgaSA8IHZpZXdlckRhdGFTY3JpcHRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdmFyIHRleHQgPSB2aWV3ZXJEYXRhU2NyaXB0c1tpXS50ZXh0Q29udGVudDsKLSAgICAvLyBUcmltIGxlYWRpbmcgbmV3bGluZXMgb2ZmIHRoZSB0ZXh0LiBUaGV5IGhhcHBlbiBkdXJpbmcgd3JpdGluZy4KLSAgICB3aGlsZSAodGV4dFswXSA9PSAnXG4nKQotICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDEpOwotICAgIHRyYWNlcy5wdXNoKGF0b2IodGV4dCkpOwotICB9Ci0KLSAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgdmFyIHAgPSBtLmltcG9ydFRyYWNlc1dpdGhQcm9ncmVzc0RpYWxvZyh0cmFjZXMsIHRydWUpOwotICBwLnRoZW4oCi0gICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgZ190aW1lbGluZVZpZXdFbC5tb2RlbCA9IG07Ci0gICAgICAgIGdfdGltZWxpbmVWaWV3RWwudXBkYXRlRG9jdW1lbnRGYXZpY29uKCk7Ci0gICAgICAgIGdfdGltZWxpbmVWaWV3RWwudGFiSW5kZXggPSAxOwotICAgICAgICBnX3RpbWVsaW5lVmlld0VsLnZpZXdUaXRsZSA9IGRvY3VtZW50LnRpdGxlOwotICAgICAgICBpZiAoZ190aW1lbGluZVZpZXdFbC50aW1lbGluZSkKLSAgICAgICAgICBnX3RpbWVsaW5lVmlld0VsLnRpbWVsaW5lLmZvY3VzRWxlbWVudCA9IGdfdGltZWxpbmVWaWV3RWw7Ci0gICAgICB9LAotICAgICAgZnVuY3Rpb24oZXJyKSB7Ci0gICAgICAgIHZhciBvdmVybGF5ID0gbmV3IHRyLmIudWkuT3ZlcmxheSgpOwotICAgICAgICBvdmVybGF5LnRleHRDb250ZW50ID0gdHIuYi5ub3JtYWxpemVFeGNlcHRpb24oZXJyKS5tZXNzYWdlOwotICAgICAgICBvdmVybGF5LnRpdGxlID0gJ0ltcG9ydCBlcnJvcic7Ci0gICAgICAgIG92ZXJsYXkudmlzaWJsZSA9IHRydWU7Ci0gICAgICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3RyYWNlMmh0bWwucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3RyYWNlMmh0bWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2MDdkZGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC90cmFjZTJodG1sLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBjb2RlY3MKLWltcG9ydCBiYXNlNjQKLWltcG9ydCBnemlwCi1pbXBvcnQganNvbgotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgc2h1dGlsCi1pbXBvcnQgb3MKLWltcG9ydCBTdHJpbmdJTwotaW1wb3J0IHN5cwotaW1wb3J0IHRlbXBmaWxlCi0KLWZyb20gdHJhY2Vfdmlld2VyIGltcG9ydCB0cmFjZV92aWV3ZXJfcHJvamVjdAotZnJvbSB0dmNtIGltcG9ydCBnZW5lcmF0ZQotCi0KLWRlZiBNYWluKGFyZ3MpOgotICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCi0gICAgdXNhZ2U9IiVwcm9nIDxvcHRpb25zPiB0cmFjZV9maWxlMSBbdHJhY2VfZmlsZTIgLi4uXSIsCi0gICAgZXBpbG9nPSIiIlRha2VzIHRoZSBwcm92aWRlZCB0cmFjZSBmaWxlIGFuZCBwcm9kdWNlcyBhIHN0YW5kYWxvbmUgaHRtbAotZmlsZSB0aGF0IGNvbnRhaW5zIGJvdGggdGhlIHRyYWNlIGFuZCB0aGUgdHJhY2Ugdmlld2VyLiIiIikKLQotICBwcm9qZWN0ID0gdHJhY2Vfdmlld2VyX3Byb2plY3QuVHJhY2VWaWV3ZXJQcm9qZWN0KCkKLSAgcHJvamVjdC5BZGRDb25maWdOYW1lT3B0aW9uVG9QYXJzZXIocGFyc2VyKQotCi0gIHBhcnNlci5hZGRfb3B0aW9uKAotICAgICAgIi0tb3V0cHV0IiwgZGVzdD0ib3V0cHV0IiwKLSAgICAgIGhlbHA9J1doZXJlIHRvIHB1dCB0aGUgZ2VuZXJhdGVkIHJlc3VsdC4gSWYgbm90ICcgKwotICAgICAgICAgICAnZ2l2ZW4sIHRoZSB0cmFjZSBmaWxlbmFtZSBpcyB1c2VkLCB3aXRoIGFuIGh0bWwgc3VmZml4LicpCi0gIHBhcnNlci5hZGRfb3B0aW9uKAotICAgICAgIi0tcXVpZXQiLCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgaGVscD0nRG9udCBwcmludCB0aGUgb3V0cHV0IGZpbGUgbmFtZScpCi0gIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzKQotICBpZiBsZW4oYXJncykgPT0gMDoKLSAgICBwYXJzZXIuZXJyb3IoJ0F0IGxlYXN0IG9uZSB0cmFjZSBmaWxlIHJlcXVpcmVkJykKLQotICBpZiBvcHRpb25zLm91dHB1dDoKLSAgICBvdXRwdXRfZmlsZW5hbWUgPSBvcHRpb25zLm91dHB1dAotICBlbGlmIGxlbihhcmdzKSA+IDE6Ci0gICAgcGFyc2VyLmVycm9yKCdNdXN0IHNwZWNpZnkgLS1vdXRwdXQgaWYgPjEgdHJhY2UgZmlsZScpCi0gIGVsc2U6Ci0gICAgbmFtZXBhcnQgPSBvcy5wYXRoLnNwbGl0ZXh0KGFyZ3NbMF0pWzBdCi0gICAgb3V0cHV0X2ZpbGVuYW1lID0gbmFtZXBhcnQgKyAnLmh0bWwnCi0KLSAgd2l0aCBjb2RlY3Mub3BlbihvdXRwdXRfZmlsZW5hbWUsIG1vZGU9J3cnLCBlbmNvZGluZz0ndXRmLTgnKSBhcyBmOgotICAgIFdyaXRlSFRNTEZvclRyYWNlc1RvRmlsZShhcmdzLCBmLCBjb25maWdfbmFtZT1vcHRpb25zLmNvbmZpZ19uYW1lKQotCi0gIGlmIG5vdCBvcHRpb25zLnF1aWV0OgotICAgIHByaW50IG91dHB1dF9maWxlbmFtZQotICByZXR1cm4gMAotCi0KLWNsYXNzIFZpZXdlckRhdGFTY3JpcHQoZ2VuZXJhdGUuRXh0cmFTY3JpcHQpOgotICBkZWYgX19pbml0X18oc2VsZiwgdHJhY2VfZGF0YV9zdHJpbmcsIG1pbWVfdHlwZSk6Ci0gICAgc3VwZXIoVmlld2VyRGF0YVNjcmlwdCwgc2VsZikuX19pbml0X18oKQotICAgIHNlbGYuX3RyYWNlX2RhdGFfc3RyaW5nID0gdHJhY2VfZGF0YV9zdHJpbmcKLSAgICBzZWxmLl9taW1lX3R5cGUgPSBtaW1lX3R5cGUKLQotICBkZWYgV3JpdGVUb0ZpbGUoc2VsZiwgb3V0cHV0X2ZpbGUpOgotICAgIG91dHB1dF9maWxlLndyaXRlKCc8c2NyaXB0IGlkPSJ2aWV3ZXItZGF0YSIgdHlwZT0iJXMiPlxuJyAlIHNlbGYuX21pbWVfdHlwZSkKLSAgICBjb21wcmVzc2VkX3RyYWNlID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgIHdpdGggZ3ppcC5HemlwRmlsZShmaWxlb2JqPWNvbXByZXNzZWRfdHJhY2UsIG1vZGU9J3cnKSBhcyBmOgotICAgICAgZi53cml0ZShzZWxmLl90cmFjZV9kYXRhX3N0cmluZykKLSAgICBiNjRfY29udGVudCA9IGJhc2U2NC5iNjRlbmNvZGUoY29tcHJlc3NlZF90cmFjZS5nZXR2YWx1ZSgpKQotICAgIG91dHB1dF9maWxlLndyaXRlKGI2NF9jb250ZW50KQotICAgIG91dHB1dF9maWxlLndyaXRlKCdcbjwvc2NyaXB0PlxuJykKLQotCi1kZWYgV3JpdGVIVE1MRm9yVHJhY2VEYXRhVG9GaWxlKHRyYWNlX2RhdGFfbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUsIG91dHB1dF9maWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfbmFtZT1Ob25lKToKLSAgcHJvamVjdCA9IHRyYWNlX3ZpZXdlcl9wcm9qZWN0LlRyYWNlVmlld2VyUHJvamVjdCgpCi0KLSAgaWYgY29uZmlnX25hbWUgPT0gTm9uZToKLSAgICBjb25maWdfbmFtZSA9IHByb2plY3QuR2V0RGVmYXVsdENvbmZpZ05hbWUoKQotCi0gIG1vZHVsZXMgPSBbCi0gICAgJ2J1aWxkLnRyYWNlMmh0bWwnLAotICAgICdleHRyYXMuaW1wb3J0ZXIuZ3ppcF9pbXBvcnRlcicsICMgTXVzdCBoYXZlIHRoaXMgcmVnYXJkbGVzcyBvZiBjb25maWcuCi0gICAgcHJvamVjdC5HZXRNb2R1bGVOYW1lRm9yQ29uZmlnTmFtZShjb25maWdfbmFtZSkKLSAgXQotCi0gIGxvYWRfc2VxdWVuY2UgPSBwcm9qZWN0LkNhbGNMb2FkU2VxdWVuY2VGb3JNb2R1bGVOYW1lcyhtb2R1bGVzKQotCi0gIHNjcmlwdHMgPSBbXQotICBmb3IgdHJhY2VfZGF0YSBpbiB0cmFjZV9kYXRhX2xpc3Q6Ci0gICAgIyBJZiB0aGUgb2JqZWN0IHdhcyBwcmV2aW91c2x5IGRlY29kZWQgZnJvbSB2YWxpZCBKU09OIGRhdGEgKGUuZy4sIGluCi0gICAgIyBXcml0ZUhUTUxGb3JUcmFjZXNUb0ZpbGUpLCBpdCB3aWxsIGJlIGEgSlNPTiBvYmplY3QgYXQgdGhpcyBwb2ludCBhbmQgd2UKLSAgICAjIHNob3VsZCByZS1zZXJpYWxpemUgaXQgaW50byBhIHN0cmluZy4gT3RoZXIgdHlwZXMgb2YgZGF0YSB3aWxsIGJlIGFscmVhZHkKLSAgICAjIGJlIHN0cmluZ3MuCi0gICAgaWYgbm90IGlzaW5zdGFuY2UodHJhY2VfZGF0YSwgYmFzZXN0cmluZyk6Ci0gICAgICB0cmFjZV9kYXRhID0ganNvbi5kdW1wcyh0cmFjZV9kYXRhKQotICAgICAgbWltZV90eXBlID0gJ2FwcGxpY2F0aW9uL2pzb24nCi0gICAgZWxzZToKLSAgICAgIG1pbWVfdHlwZSA9ICd0ZXh0L3BsYWluJwotICAgIHNjcmlwdHMuYXBwZW5kKFZpZXdlckRhdGFTY3JpcHQodHJhY2VfZGF0YSwgbWltZV90eXBlKSkKLSAgZ2VuZXJhdGUuR2VuZXJhdGVTdGFuZGFsb25lSFRNTFRvRmlsZSgKLSAgICBvdXRwdXRfZmlsZSwgbG9hZF9zZXF1ZW5jZSwgdGl0bGUsIGV4dHJhX3NjcmlwdHM9c2NyaXB0cykKLQotCi1kZWYgV3JpdGVIVE1MRm9yVHJhY2VzVG9GaWxlKHRyYWNlX2ZpbGVuYW1lcywgb3V0cHV0X2ZpbGUsIGNvbmZpZ19uYW1lPU5vbmUpOgotICB0cmFjZV9kYXRhX2xpc3QgPSBbXQotICBmb3IgZmlsZW5hbWUgaW4gdHJhY2VfZmlsZW5hbWVzOgotICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3InKSBhcyBmOgotICAgICAgdHJhY2VfZGF0YSA9IGYucmVhZCgpCi0gICAgICB0cnk6Ci0gICAgICAgIHRyYWNlX2RhdGEgPSBqc29uLmxvYWRzKHRyYWNlX2RhdGEpCi0gICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgcGFzcwotICAgICAgdHJhY2VfZGF0YV9saXN0LmFwcGVuZCh0cmFjZV9kYXRhKQotCi0gIHRpdGxlID0gIlRyYWNlIGZyb20gJXMiICUgJywnLmpvaW4odHJhY2VfZmlsZW5hbWVzKQotICBXcml0ZUhUTUxGb3JUcmFjZURhdGFUb0ZpbGUodHJhY2VfZGF0YV9saXN0LCB0aXRsZSwgb3V0cHV0X2ZpbGUsIGNvbmZpZ19uYW1lKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC90cmFjZTJodG1sX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC90cmFjZTJodG1sX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGJiNTAxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdHJhY2UyaHRtbF91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi1pbXBvcnQgY29kZWNzCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IG9zCi0KLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCB0cmFjZTJodG1sCi0KLWNsYXNzIFRyYWNlMkhUTUxUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gIGRlZiB0ZXN0X3dyaXRlSFRNTEZvclRyYWNlc1RvRmlsZShzZWxmKToKLSAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShtb2RlPSd3Jywgc3VmZml4PScuaHRtbCcpIGFzIHJhd190bXBmaWxlOgotICAgICAgd2l0aCBjb2RlY3Mub3BlbihyYXdfdG1wZmlsZS5uYW1lLCAndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIHRtcGZpbGU6Ci0gICAgICAgIHNpbXBsZV90cmFjZV9wYXRoID0gb3MucGF0aC5qb2luKAotICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKLSAgICAgICAgICAgICcuLicsICcuLicsICd0ZXN0X2RhdGEnLCAnc2ltcGxlX3RyYWNlLmpzb24nKQotICAgICAgICBiaWdfdHJhY2VfcGF0aCA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCi0gICAgICAgICAgICAnLi4nLCAnLi4nLCAndGVzdF9kYXRhJywgJ2JpZ190cmFjZS5qc29uJykKLSAgICAgICAgbm9uX2pzb25fdHJhY2VfcGF0aCA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCi0gICAgICAgICAgICAnLi4nLCAnLi4nLCAndGVzdF9kYXRhJywgJ2FuZHJvaWRfc3lzdHJhY2UudHh0JykKLSAgICAgICAgcmVzID0gdHJhY2UyaHRtbC5Xcml0ZUhUTUxGb3JUcmFjZXNUb0ZpbGUoCi0gICAgICAgICAgICBbYmlnX3RyYWNlX3BhdGgsIHNpbXBsZV90cmFjZV9wYXRoLCBub25fanNvbl90cmFjZV9wYXRoXSwgdG1wZmlsZSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdHJhY2Vfdmlld2VyX2Rldl9zZXJ2ZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3RyYWNlX3ZpZXdlcl9kZXZfc2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTA3YWRkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdHJhY2Vfdmlld2VyX2Rldl9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWZyb20gdHJhY2Vfdmlld2VyIGltcG9ydCB0cmFjZV92aWV3ZXJfcHJvamVjdAotaW1wb3J0IHR2Y20KLQotX1JPT1RfUEFUSCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJy4uJykpCi0KLWRlZiBnZXRGaWxlc0luKGJhc2VkaXIpOgotICBkYXRhX2ZpbGVzID0gW10KLSAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gb3Mud2FsayhiYXNlZGlyLCBmb2xsb3dsaW5rcz1UcnVlKToKLSAgICBuZXdfZGlybmFtZXMgPSBbZCBmb3IgZCBpbiBkaXJuYW1lcyBpZiBub3QgZC5zdGFydHN3aXRoKCcuJyldCi0gICAgZGVsIGRpcm5hbWVzWzpdCi0gICAgZGlybmFtZXMgKz0gbmV3X2Rpcm5hbWVzCi0KLSAgICBmb3IgZiBpbiBmaWxlbmFtZXM6Ci0gICAgICBpZiBmLnN0YXJ0c3dpdGgoJy4nKToKLSAgICAgICAgY29udGludWUKLSAgICAgIGlmIGYgPT0gJ1JFQURNRS5tZCc6Ci0gICAgICAgIGNvbnRpbnVlCi0gICAgICBmdWxsX2YgPSBvcy5wYXRoLmpvaW4oZGlycGF0aCwgZikKLSAgICAgIHJlbF9mID0gb3MucGF0aC5yZWxwYXRoKGZ1bGxfZiwgYmFzZWRpcikKLSAgICAgIGRhdGFfZmlsZXMuYXBwZW5kKHJlbF9mKQotCi0gIGRhdGFfZmlsZXMuc29ydCgpCi0gIHJldHVybiBkYXRhX2ZpbGVzCi0KLWRlZiBkb19HRVRfanNvbl9leGFtcGxlcyhyZXF1ZXN0KToKLSAgZGF0YV9maWxlcyA9IGdldEZpbGVzSW4ocmVxdWVzdC5zZXJ2ZXIuZGF0YV9kaXIpCi0gIGZpbGVzX2FzX2pzb24gPSBqc29uLmR1bXBzKGRhdGFfZmlsZXMpCi0KLSAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDIwMCkKLSAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKQotICByZXF1ZXN0LnNlbmRfaGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbihmaWxlc19hc19qc29uKSkKLSAgcmVxdWVzdC5lbmRfaGVhZGVycygpCi0gIHJlcXVlc3Qud2ZpbGUud3JpdGUoZmlsZXNfYXNfanNvbikKLQotZGVmIGRvX0dFVF9qc29uX2V4YW1wbGVzX3NrcChyZXF1ZXN0KToKLSAgc2twX2RhdGFfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oX1JPT1RfUEFUSCwgJ3NrcF9kYXRhJykpCi0gIGRhdGFfZmlsZXMgPSBnZXRGaWxlc0luKHNrcF9kYXRhX3BhdGgpCi0gIGZpbGVzX2FzX2pzb24gPSBqc29uLmR1bXBzKGRhdGFfZmlsZXMpCi0KLSAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDIwMCkKLSAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKQotICByZXF1ZXN0LnNlbmRfaGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbihmaWxlc19hc19qc29uKSkKLSAgcmVxdWVzdC5lbmRfaGVhZGVycygpCi0gIHJlcXVlc3Qud2ZpbGUud3JpdGUoZmlsZXNfYXNfanNvbikKLQotZGVmIGRvX0dFVF9qc29uX3Rlc3RzKHNlbGYpOgotICB0ZXN0X21vZHVsZV9yZXNvdXJjZXMgPSBzZWxmLnNlcnZlci5wcm9qZWN0LkZpbmRBbGxUZXN0TW9kdWxlUmVzb3VyY2VzKCkKLQotICB0ZXN0X3JlbHBhdGhzID0gW3gudW5peF9zdHlsZV9yZWxhdGl2ZV9wYXRoCi0gICAgICAgICAgICAgICAgICAgZm9yIHggaW4gdGVzdF9tb2R1bGVfcmVzb3VyY2VzXQotCi0gIHRlc3RzID0geyd0ZXN0X3JlbHBhdGhzJzogdGVzdF9yZWxwYXRocywKLSAgICAgICAgICAgJ3Rlc3RfbGlua3MnOiBzZWxmLnNlcnZlci50ZXN0X2xpbmtzfQotICB0ZXN0c19hc19qc29uID0ganNvbi5kdW1wcyh0ZXN0cyk7Ci0KLSAgc2VsZi5zZW5kX3Jlc3BvbnNlKDIwMCkKLSAgc2VsZi5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKQotICBzZWxmLnNlbmRfaGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbih0ZXN0c19hc19qc29uKSkKLSAgc2VsZi5lbmRfaGVhZGVycygpCi0gIHNlbGYud2ZpbGUud3JpdGUodGVzdHNfYXNfanNvbikKLQotZGVmIGRvX1BPU1RfcmVwb3J0X3Rlc3RfcmVzdWx0cyhyZXF1ZXN0KToKLSAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDIwMCkKLSAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1MZW5ndGgnLCAnMCcpCi0gIHJlcXVlc3QuZW5kX2hlYWRlcnMoKQotICBtc2cgPSByZXF1ZXN0LnJmaWxlLnJlYWQoKQotICBvc3RyZWFtID0gc3lzLnN0ZG91dCBpZiAnUEFTU0VEJyBpbiBtc2cgZWxzZSBzeXMuc3RkZXJyCi0gIG9zdHJlYW0ud3JpdGUobXNnICsgJ1xuJykKLQotZGVmIGRvX1BPU1RfcmVwb3J0X3Rlc3RfY29tcGxldGlvbihyZXF1ZXN0KToKLSAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDIwMCkKLSAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1MZW5ndGgnLCAnMCcpCi0gIHJlcXVlc3QuZW5kX2hlYWRlcnMoKQotICBtc2cgPSByZXF1ZXN0LnJmaWxlLnJlYWQoKQotICBzeXMuc3Rkb3V0LndyaXRlKG1zZyArICdcbicpCi0gIHJlcXVlc3Quc2VydmVyLlJlcXVlc3RTaHV0ZG93bihleGl0X2NvZGU9KDAgaWYgJ0FMTF9QQVNTRUQnIGluIG1zZyBlbHNlIDEpKQotCi1kZWYgTWFpbihhcmdzKToKLSAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J1J1biB0cmFjaW5nIGRldmVsb3BtZW50IHNlcnZlcicpCi0gIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAnLWQnLCAnLS1kYXRhLWRpcicsCi0gICAgICBkZWZhdWx0PW9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oX1JPT1RfUEFUSCwgJ3Rlc3RfZGF0YScpKSkKLSAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLXAnLCAnLS1wb3J0JywgZGVmYXVsdD04MDAzLCB0eXBlPWludCkKLSAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICBwcm9qZWN0ID0gdHJhY2Vfdmlld2VyX3Byb2plY3QuVHJhY2VWaWV3ZXJQcm9qZWN0KCkKLQotICBzZXJ2ZXIgPSB0dmNtLkRldlNlcnZlcihwb3J0PWFyZ3MucG9ydCwgcHJvamVjdD1wcm9qZWN0KQotICBzZXJ2ZXIuZGF0YV9kaXIgPSBvcy5wYXRoLmFic3BhdGgoYXJncy5kYXRhX2RpcikKLSAgcHJvamVjdC5zb3VyY2VfcGF0aHMuYXBwZW5kKHNlcnZlci5kYXRhX2RpcikKLQotICBzZXJ2ZXIuQWRkUGF0aEhhbmRsZXIoJy9qc29uL2V4YW1wbGVzJywgZG9fR0VUX2pzb25fZXhhbXBsZXMpCi0gIHNlcnZlci5BZGRQYXRoSGFuZGxlcignL3RyL2pzb24vdGVzdHMnLCBkb19HRVRfanNvbl90ZXN0cykKLSAgc2VydmVyLkFkZFBhdGhIYW5kbGVyKCcvanNvbi9leGFtcGxlcy9za3AnLCBkb19HRVRfanNvbl9leGFtcGxlc19za3ApCi0KLSAgc2VydmVyLkFkZFNvdXJjZVBhdGhNYXBwaW5nKHByb2plY3QudHJhY2Vfdmlld2VyX3BhdGgpCi0gIHNlcnZlci5BZGRUZXN0TGluaygnL2V4YW1wbGVzL3NraWFfZGVidWdnZXIuaHRtbCcsICdTa2lhIERlYnVnZ2VyJykKLSAgc2VydmVyLkFkZFRlc3RMaW5rKCcvZXhhbXBsZXMvdHJhY2Vfdmlld2VyLmh0bWwnLCAnVHJhY2UgRmlsZSBWaWV3ZXInKQotCi0gIHNlcnZlci5BZGRQYXRoSGFuZGxlcignL3Rlc3RfYXV0b21hdGlvbi9ub3RpZnlfdGVzdF9yZXN1bHQnLAotICAgICAgICAgICAgICAgICAgICAgICAgZG9fUE9TVF9yZXBvcnRfdGVzdF9yZXN1bHRzLCBzdXBwb3J0c19wb3N0PVRydWUpCi0gIHNlcnZlci5BZGRQYXRoSGFuZGxlcignL3Rlc3RfYXV0b21hdGlvbi9ub3RpZnlfY29tcGxldGlvbicsCi0gICAgICAgICAgICAgICAgICAgICAgICBkb19QT1NUX3JlcG9ydF90ZXN0X2NvbXBsZXRpb24sIHN1cHBvcnRzX3Bvc3Q9VHJ1ZSkKLQotCi0gIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdXBkYXRlX2d5cGkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3VwZGF0ZV9neXBpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1ZTBjZGNlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdXBkYXRlX2d5cGkKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICB0b3BfZGlyID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAnLi4nKSkKLSAgc3lzLnBhdGguYXBwZW5kKHRvcF9kaXIpCi0gIGZyb20gdHJhY2Vfdmlld2VyIGltcG9ydCB0cmFjZV92aWV3ZXJfcHJvamVjdAotICBmcm9tIHRyYWNlX3ZpZXdlci5idWlsZCBpbXBvcnQgdXBkYXRlX2d5cGkKLSAgc3lzLmV4aXQodXBkYXRlX2d5cGkuVXBkYXRlKCkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3VwZGF0ZV9neXBpLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC91cGRhdGVfZ3lwaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTU3MTIxYi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3VwZGF0ZV9neXBpLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLQotZnJvbSB0cmFjZV92aWV3ZXIuYnVpbGQgaW1wb3J0IGNoZWNrX2NvbW1vbgotZnJvbSB0cmFjZV92aWV3ZXIgaW1wb3J0IHRyYWNlX3ZpZXdlcl9wcm9qZWN0Ci0KLWNsYXNzIF9Ub2tlbihvYmplY3QpOgotICBkZWYgX19pbml0X18oc2VsZiwgZGF0YSwgaWQ9Tm9uZSk6Ci0gICAgc2VsZi5kYXRhID0gZGF0YQotICAgIGlmIGlkOgotICAgICAgc2VsZi5pZCA9IGlkCi0gICAgZWxzZToKLSAgICAgIHNlbGYuaWQgPSAncGxhaW4nCi0KLQotY2xhc3MgQnVpbGRGaWxlKG9iamVjdCk6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXh0LCBmaWxlX2dyb3Vwcyk6Ci0gICAgc2VsZi5fZmlsZV9ncm91cHMgPSBmaWxlX2dyb3VwcwotICAgIHNlbGYuX3Rva2VucyA9IFt0b2tlbiBmb3IgdG9rZW4gaW4gc2VsZi5fVG9rZW5pemUodGV4dCldCi0KLSAgZGVmIF9Ub2tlbml6ZShzZWxmLCB0ZXh0KToKLSAgICByZXN0ID0gdGV4dAotICAgIHRva2VuX3JlZ2V4ID0gc2VsZi5fVG9rZW5SZWdleCgpCi0gICAgd2hpbGUgbGVuKHJlc3QpOgotICAgICAgbSA9IHRva2VuX3JlZ2V4LnNlYXJjaChyZXN0KQotICAgICAgaWYgbm90IG06Ci0gICAgICAgICMgSW4gYHJlc3QnLCB3ZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2guCi0gICAgICAgICMgU28sIGx1bXAgdGhlIGVudGlyZSBgcmVzdCcgaW50byBhIHRva2VuCi0gICAgICAgICMgYW5kIHN0b3AgcHJvZHVjaW5nIGFueSBtb3JlIHRva2Vucy4KLSAgICAgICAgeWllbGQgX1Rva2VuKHJlc3QpCi0gICAgICAgIHJldHVybgotICAgICAgbWluX2luZGV4LCBlbmRfaW5kZXgsIG1hdGNoZWRfdG9rZW4gPSBzZWxmLl9Qcm9jZXNzTWF0Y2gobSkKLQotICAgICAgaWYgbWluX2luZGV4ID4gMDoKLSAgICAgICAgeWllbGQgX1Rva2VuKHJlc3RbOm1pbl9pbmRleF0pCi0KLSAgICAgIHlpZWxkIG1hdGNoZWRfdG9rZW4KLSAgICAgIHJlc3QgPSByZXN0W2VuZF9pbmRleDpdCi0KLSAgZGVmIFVwZGF0ZShzZWxmLCBmaWxlc19ieV9ncm91cCk6Ci0gICAgZm9yIHRva2VuIGluIHNlbGYuX3Rva2VuczoKLSAgICAgIGlmIHRva2VuLmlkIGluIGZpbGVzX2J5X2dyb3VwOgotICAgICAgICB0b2tlbi5kYXRhID0gc2VsZi5fR2V0UmVwbGFjZW1lbnRMaXN0QXNTdHJpbmcoCi0gICAgICAgICAgdG9rZW4uZGF0YSwKLSAgICAgICAgICBmaWxlc19ieV9ncm91cFt0b2tlbi5pZF0KLSAgICAgICAgKQotCi0gIGRlZiBXcml0ZShzZWxmLCBmKToKLSAgICBmb3IgdG9rZW4gaW4gc2VsZi5fdG9rZW5zOgotICAgICAgZi53cml0ZSh0b2tlbi5kYXRhKQotCi0gIGRlZiBfUHJvY2Vzc01hdGNoKHNlbGYsIG1hdGNoKToKLSAgICByYWlzZSBFeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZC4iKQotCi0gIGRlZiBfVG9rZW5SZWdleChzZWxmKToKLSAgICByYWlzZSBFeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZC4iKQotCi0gIGRlZiBfR2V0UmVwbGFjZW1lbnRMaXN0QXNTdHJpbmcoc2VsZiwgZXhpc3RpbmdfbGlzdF9hc19zdHJpbmcsIGZpbGVsaXN0KToKLSAgICByYWlzZSBFeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZC4iKQotCi0KLWNsYXNzIEd5cGlGaWxlKEJ1aWxkRmlsZSk6Ci0gIGRlZiBfUHJvY2Vzc01hdGNoKHNlbGYsIG1hdGNoKToKLSAgICBtaW5faW5kZXggPSBtYXRjaC5zdGFydCgyKQotICAgIGVuZF9pbmRleCA9IG1hdGNoLmVuZCgyKQotICAgIHRva2VuID0gX1Rva2VuKG1hdGNoLnN0cmluZ1ttaW5faW5kZXg6ZW5kX2luZGV4XSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlkPW1hdGNoLmdyb3VwcygpWzBdKQotICAgIHJldHVybiBtaW5faW5kZXgsIGVuZF9pbmRleCwgdG9rZW4KLQotICBkZWYgX1Rva2VuUmVnZXgoc2VsZik6Ci0gICAgIyByZWdleHAgdG8gbWF0Y2ggdGhlIGZvbGxvd2luZzoKLSAgICAjICAgJ2ZpbGVfZ3JvdXBfbmFtZSc6IFsKLSAgICAjICAgICAncGF0aC90by9vbmUvZmlsZS5leHRlbnNpb24nLAotICAgICMgICAgICdhbm90aGVyL2ZpbGUuZXgnLAotICAgICMgICBdCi0gICAgIyBJbiB0aGUgbWF0Y2gsCi0gICAgIyBncm91cCAxIGlzIDogJ2ZpbGVfZ3JvdXBfbmFtZScKLSAgICAjIGdyb3VwIDIgaXMgOiAiIiIgICdwYXRoL3RvL29uZS9maWxlLmV4dGVuc2lvbicsXG4gICdhbm90aGVyL2ZpbGUuZXgnLFxuIiIiCi0gICAgcmVnZXhwX3N0ciA9ICInKCVzKSc6IFxbXG4oLis/KSArXF0sP1xuIiAlICJ8Ii5qb2luKHNlbGYuX2ZpbGVfZ3JvdXBzKQotICAgIHJldHVybiByZS5jb21waWxlKHJlZ2V4cF9zdHIsIHJlLk1VTFRJTElORSB8IHJlLkRPVEFMTCkKLQotICBkZWYgX0dldFJlcGxhY2VtZW50TGlzdEFzU3RyaW5nKHNlbGYsIGV4aXN0aW5nX2xpc3RfYXNfc3RyaW5nLCBmaWxlbGlzdCk6Ci0gICAgbGlzdF9lbnRyeSA9IGV4aXN0aW5nX2xpc3RfYXNfc3RyaW5nLnNwbGl0bGluZXMoKVswXQotICAgIHByZWZpeCwgZW50cnksIHN1ZmZpeCA9IGxpc3RfZW50cnkuc3BsaXQoIiciKQotICAgIHJldHVybiAiIi5qb2luKFsiJyIuam9pbihbcHJlZml4LCBmaWxlbmFtZSwgc3VmZml4ICsgJ1xuJ10pCi0gICAgICAgICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbGlzdF0pCi0KLQotZGVmIF9Hcm91cEZpbGVzKGZpbGVOYW1lVG9Hcm91cE5hbWVGdW5jLCBmaWxlbmFtZXMpOgotICBmaWxlX2dyb3VwcyA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KGxhbWJkYTogW10pCi0gIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6Ci0gICAgZmlsZV9ncm91cHNbZmlsZU5hbWVUb0dyb3VwTmFtZUZ1bmMoZmlsZW5hbWUpXS5hcHBlbmQoZmlsZW5hbWUpCi0gIGZvciBncm91cCBpbiBmaWxlX2dyb3VwczoKLSAgICBmaWxlX2dyb3Vwc1tncm91cF0uc29ydCgpCi0gIHJldHVybiBmaWxlX2dyb3VwcwotCi0KLWRlZiBfVXBkYXRlQnVpbGRGaWxlKGZpbGVuYW1lLCBidWlsZF9maWxlX2NsYXNzKToKLSAgdXBkYXRlZF9jb250ZW50ID0gTm9uZQotICB3aXRoIG9wZW4oZmlsZW5hbWUsICdyJykgYXMgZjoKLSAgICBidWlsZF9maWxlID0gYnVpbGRfZmlsZV9jbGFzcyhmLnJlYWQoKSwgY2hlY2tfY29tbW9uLkZJTEVfR1JPVVBTKQotICBmaWxlc19ieV9ncm91cCA9IF9Hcm91cEZpbGVzKGNoZWNrX2NvbW1vbi5HZXRGaWxlR3JvdXBGcm9tRmlsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfY29tbW9uLkdldEtub3duRmlsZXMoKSkKLSAgYnVpbGRfZmlsZS5VcGRhdGUoZmlsZXNfYnlfZ3JvdXApCi0gIHdpdGggb3BlbihmaWxlbmFtZSwgJ3cnKSBhcyBmOgotICAgIGJ1aWxkX2ZpbGUuV3JpdGUoZikKLQotCi1kZWYgVXBkYXRlR3lwaSgpOgotICB0dnAgPSB0cmFjZV92aWV3ZXJfcHJvamVjdC5UcmFjZVZpZXdlclByb2plY3QoKQotICBfVXBkYXRlQnVpbGRGaWxlKAotICAgICAgb3MucGF0aC5qb2luKHR2cC50cmFjZV92aWV3ZXJfcGF0aCwgJ3RyYWNlX3ZpZXdlci5neXBpJyksIEd5cGlGaWxlKQotCi0KLWRlZiBVcGRhdGUoKToKLSAgVXBkYXRlR3lwaSgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3VwZGF0ZV9neXBpX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC91cGRhdGVfZ3lwaV91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAzZGU1OS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3VwZGF0ZV9neXBpX3VuaXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IFN0cmluZ0lPCi0KLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkLnVwZGF0ZV9neXBpIGltcG9ydCBCdWlsZEZpbGUsIEd5cGlGaWxlCi0KLWNsYXNzIFVwZGF0ZUd5cGlUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gIGRlZiBzZXRVcChzZWxmKToKLSAgICBzZWxmLmZpbGVfZ3JvdXBzID0gWydncm91cDEnLCAnZ3JvdXAyJ10KLQotICBkZWYgdGVzdF9HeXBpVG9rZW5pemVyKHNlbGYpOgotICAgIGNvbnRlbnQgPSAiIiJ1c2VsZXNzIGRhdGEKLSdncm91cDEnOiBbCi0gICAgPGZpbGUgbGlzdCBnb2VzIGhlcmU+Ci0gICAgXQotTm90ZSB0aGUgZm91ciBzcGFjZXMgYm9mZXIgdGhlIF0gYWJvdmUiIiIKLSAgICBneXBpX2ZpbGUgPSBHeXBpRmlsZShjb250ZW50LCBzZWxmLmZpbGVfZ3JvdXBzKQotICAgIHRyeToKLSAgICAgIGFzc2VydCBsZW4oZ3lwaV9maWxlcy5fdG9rZW5zKSA9PSAzCi0gICAgICBhc3NlcnQgZ3lwaV9maWxlcy5fdG9rZW5zWzBdLmlkID09ICdwbGFpbicKLSAgICAgIGFzc2VydCBneXBpX2ZpbGVzLl90b2tlbnNbMF0uZGF0YSA9PSAiIiJ1c2VsZXNzIGRhdGEKLSdncm91cDEnOiBbCi0iIiIKLSAgICAgIGFzc2VydCBneXBpX2ZpbGVzLl90b2tlbnNbMV0uaWQgPT0gJ2dyb3VwMScKLSAgICAgIGFzc2VydCBneXBpX2ZpbGVzLl90b2tlbnNbMV0uZGF0YSA9PSAiIiIgICAgPGZpbGUgbGlzdCBnb2VzIGhlcmU+Ci0iIiIKLSAgICAgIGFzc2VydCBneXBpX2ZpbGVzLl90b2tlbnNbMl0uaWQgPT0gJ3BsYWluJwotICAgICAgYXNzZXJ0IGd5cGlfZmlsZXMuX3Rva2Vuc1syXS5kYXRhID09ICIiIiAgICBdCi1Ob3RlIHRoZSBmb3VyIHNwYWNlcyBiZWZvcmUgdGhlIF0gYWJvdmUgIiIiCi0gICAgZXhjZXB0OgotICAgICAgcGFzcwotCi0gIGRlZiB0ZXN0X0d5cGlGaWxlTGlzdEJ1aWxkZXIoc2VsZik6Ci0gICAgZ3lwaV9maWxlID0gR3lwaUZpbGUoIiIsIHNlbGYuZmlsZV9ncm91cHMpCi0gICAgZXhpc3RpbmdfbGlzdCA9ICIiIiAgICAnL2ZvdXIvc3BhY2VzL2luZGVudCcsCi0gICAgICcvZml2ZS9zcGFjZXMvYnV0L29ubHkvZmlyc3QvbGluZS9tYXR0ZXJzJywKLSIiIgotICAgIG5ld19saXN0ID0gWydpdGVtMScsICdpdGVtMicsICdpdGVtMyddCi0gICAgdHJ5OgotICAgICAgYXNzZXJ0IChneXBpX2ZpbGUuX0dldFJlcGxhY2VtZW50TGlzdEFzU3RyaW5nKGV4aXN0aW5nX2xpc3QsIG5ld19saXN0KQotICAgICAgICAgICAgICA9PQotICAgICAgIiIiICAgICdpdGVtMScsXG4gICAgJ2l0ZW0yJyxcbiAgICAnaXRlbTMnLFxuIiIiKQotICAgIGV4Y2VwdDoKLSAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdnVsY2FuaXplX3RyYWNlX3ZpZXdlci5weSBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdnVsY2FuaXplX3RyYWNlX3ZpZXdlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJiMGMwMC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgY29kZWNzCi1pbXBvcnQgb3B0cGFyc2UKLWltcG9ydCBvcwotaW1wb3J0IFN0cmluZ0lPCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGVtcGZpbGUKLQotZnJvbSB0cmFjZV92aWV3ZXIgaW1wb3J0IHRyYWNlX3ZpZXdlcl9wcm9qZWN0Ci1mcm9tIHR2Y20gaW1wb3J0IGdlbmVyYXRlCi0KLQotZGVmIE1haW4oYXJncyk6Ci0KLSAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKAotICAgIHVzYWdlPSIlcHJvZyA8b3B0aW9ucz4iLAotICAgIGVwaWxvZz0iIiJQcm9kdWNlcyBhIHN0YW5kYWxvbmUgaHRtbCBpbXBvcnQgdGhhdCBjb250YWlucyB0aGUKLXRyYWNlIHZpZXdlci4iIiIpCi0KLSAgcHJvamVjdCA9IHRyYWNlX3ZpZXdlcl9wcm9qZWN0LlRyYWNlVmlld2VyUHJvamVjdCgpCi0gIHByb2plY3QuQWRkQ29uZmlnTmFtZU9wdGlvblRvUGFyc2VyKHBhcnNlcikKLQotICBwYXJzZXIuYWRkX29wdGlvbignLS1uby1taW4nLCBkZXN0PSdub19taW4nLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSdza2lwIG1pbmlmaWNhdGlvbicpCi0gIHBhcnNlci5hZGRfb3B0aW9uKCctLXJlcG9ydC1zaXplcycsIGRlc3Q9J3JlcG9ydF9zaXplcycsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9J0V4cGxhaW4gd2hhdCBtYWtlcyB0cmFjZV92aWV3ZXIgYmlnLicpCi0gIHBhcnNlci5hZGRfb3B0aW9uKCctLXJlcG9ydC1kZXBzJywgZGVzdD0ncmVwb3J0X2RlcHMnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSdQcmludCBhIGRvdC1mb3JtYXR0ZWQgZGVwcyBncmFwaC4nKQotICBwYXJzZXIuYWRkX29wdGlvbigKLSAgICAgICItLW91dHB1dCIsIGRlc3Q9Im91dHB1dCIsCi0gICAgICBoZWxwPSdXaGVyZSB0byBwdXQgdGhlIGdlbmVyYXRlZCByZXN1bHQuIElmIG5vdCAnICsKLSAgICAgICAgICAgJ2dpdmVuLCAkVFJBQ0VfVklFV0VSL2Jpbi90cmFjZV92aWV3ZXIuaHRtbCBpcyB1c2VkLicpCi0KLSAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCi0gIGlmIGxlbihhcmdzKSAhPSAwOgotICAgIHBhcnNlci5lcnJvcignTm8gYXJndW1lbnRzIG5lZWRlZC4nKQotCi0gIHRyYWNlX3ZpZXdlcl9kaXIgPSBvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICcuLicpKQotICBpZiBvcHRpb25zLm91dHB1dDoKLSAgICBvdXRwdXRfZmlsZW5hbWUgPSBvcHRpb25zLm91dHB1dAotICBlbHNlOgotICAgIG91dHB1dF9maWxlbmFtZSA9IG9zLnBhdGguam9pbigKLSAgICAgICAgdHJhY2Vfdmlld2VyX2RpciwgJ2Jpbi90cmFjZV92aWV3ZXJfJXMuaHRtbCcgJSBvcHRpb25zLmNvbmZpZ19uYW1lKQotCi0gIHdpdGggY29kZWNzLm9wZW4ob3V0cHV0X2ZpbGVuYW1lLCAndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIGY6Ci0gICAgV3JpdGVUcmFjZVZpZXdlcigKLSAgICAgICAgZiwKLSAgICAgICAgY29uZmlnX25hbWU9b3B0aW9ucy5jb25maWdfbmFtZSwKLSAgICAgICAgbWluaWZ5PW5vdCBvcHRpb25zLm5vX21pbiwKLSAgICAgICAgcmVwb3J0X3NpemVzPW9wdGlvbnMucmVwb3J0X3NpemVzLAotICAgICAgICByZXBvcnRfZGVwcz1vcHRpb25zLnJlcG9ydF9kZXBzKQotCi0gIHJldHVybiAwCi0KLQotZGVmIFdyaXRlVHJhY2VWaWV3ZXIob3V0cHV0X2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICBjb25maWdfbmFtZT1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgbWluaWZ5PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X3NpemVzPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X2RlcHM9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaHRtbF9oZWFkX2FuZF9ib2R5PVRydWUsCi0gICAgICAgICAgICAgICAgICAgICBleHRyYV9zZWFyY2hfcGF0aHM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIGV4dHJhX21vZHVsZV9uYW1lc190b19sb2FkPU5vbmUpOgotICBwcm9qZWN0ID0gdHJhY2Vfdmlld2VyX3Byb2plY3QuVHJhY2VWaWV3ZXJQcm9qZWN0KCkKLSAgaWYgZXh0cmFfc2VhcmNoX3BhdGhzOgotICAgIGZvciBwIGluIGV4dHJhX3NlYXJjaF9wYXRoczoKLSAgICAgIHByb2plY3Quc291cmNlX3BhdGhzLmFwcGVuZChwKQotICBpZiBjb25maWdfbmFtZSA9PSBOb25lOgotICAgIGNvbmZpZ19uYW1lID0gcHJvamVjdC5HZXREZWZhdWx0Q29uZmlnTmFtZSgpCi0KLSAgbW9kdWxlX25hbWVzID0gWyd0cmFjZV92aWV3ZXInLCBwcm9qZWN0LkdldE1vZHVsZU5hbWVGb3JDb25maWdOYW1lKGNvbmZpZ19uYW1lKV0KLSAgaWYgZXh0cmFfbW9kdWxlX25hbWVzX3RvX2xvYWQ6Ci0gICAgbW9kdWxlX25hbWVzICs9IGV4dHJhX21vZHVsZV9uYW1lc190b19sb2FkCi0gIGxvYWRfc2VxdWVuY2UgPSBwcm9qZWN0LkNhbGNMb2FkU2VxdWVuY2VGb3JNb2R1bGVOYW1lcygKLSAgICBtb2R1bGVfbmFtZXMpCi0KLSAgaWYgcmVwb3J0X2RlcHM6Ci0gICAgc3lzLnN0ZG91dC53cml0ZShwcm9qZWN0LkdldERlcHNHcmFwaEZyb21Nb2R1bGVOYW1lcyhtb2R1bGVfbmFtZXMpKQotCi0gIGdlbmVyYXRlLkdlbmVyYXRlU3RhbmRhbG9uZUhUTUxUb0ZpbGUoCi0gICAgb3V0cHV0X2ZpbGUsIGxvYWRfc2VxdWVuY2UsCi0gICAgbWluaWZ5PW1pbmlmeSwgcmVwb3J0X3NpemVzPXJlcG9ydF9zaXplcywKLSAgICBvdXRwdXRfaHRtbF9oZWFkX2FuZF9ib2R5PW91dHB1dF9odG1sX2hlYWRfYW5kX2JvZHkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXJfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXJfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjNWZiNjAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9idWlsZC92dWxjYW5pemVfdHJhY2Vfdmlld2VyX3VuaXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCBjb2RlY3MKLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgb3MKLQotZnJvbSB0cmFjZV92aWV3ZXIuYnVpbGQgaW1wb3J0IHZ1bGNhbml6ZV90cmFjZV92aWV3ZXIKLWZyb20gdHZjbSBpbXBvcnQgZ2VuZXJhdGUKLQotY2xhc3MgVHJhY2UySFRNTFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgZGVmIHRlc3Rfd3JpdGVIVE1MRm9yVHJhY2VzVG9GaWxlKHNlbGYpOgotICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKG1vZGU9J3cnLCBzdWZmaXg9Jy5odG1sJykgYXMgcmF3X3RtcGZpbGU6Ci0gICAgICB3aXRoIGNvZGVjcy5vcGVuKHJhd190bXBmaWxlLm5hbWUsICd3JywgZW5jb2Rpbmc9J3V0Zi04JykgYXMgdG1wZmlsZToKLSAgICAgICAgcmVzID0gdnVsY2FuaXplX3RyYWNlX3ZpZXdlci5Xcml0ZVRyYWNlVmlld2VyKHRtcGZpbGUpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbGVydF9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjI0NGI5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbGVydF9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1hbGVydC1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIH0KLSAgICAjdGFibGUgewotICAgICAgZmxleDogMSAxIGF1dG87Ci0gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1iLXVpLXRhYmxlIGlkPSJ0YWJsZSI+Ci0gICAgPC90ci1iLXVpLXRhYmxlPgotICA8L3RlbXBsYXRlPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ0xhYmVsJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cubmFtZTsgfSwKLSAgICAgICAgICB3aWR0aDogJzE1MHB4JwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdWYWx1ZScsCi0gICAgICAgICAgd2lkdGg6ICcxMDAlJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudmFsdWU7IH0KLSAgICAgICAgfQotICAgICAgXTsKLSAgICAgIHRoaXMuJC50YWJsZS5zaG93SGVhZGVyID0gZmFsc2U7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXRSb3dzRm9yU2luZ2xlQWxlcnRfOiBmdW5jdGlvbihhbGVydCkgewotICAgICAgdmFyIHJvd3MgPSBbXTsKLQotICAgICAgLy8gQXJndW1lbnRzCi0gICAgICBmb3IgKHZhciBhcmdOYW1lIGluIGFsZXJ0LmFyZ3MpIHsKLSAgICAgICAgdmFyIGFyZ1ZpZXcgPQotICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICAgICAgYXJnVmlldy5vYmplY3QgPSBhbGVydC5hcmdzW2FyZ05hbWVdOwotICAgICAgICByb3dzLnB1c2goeyBuYW1lOiBhcmdOYW1lLCB2YWx1ZTogYXJnVmlldyB9KTsKLSAgICAgIH0KLQotICAgICAgLy8gQXNzb2NpYXRlZCBldmVudHMKLSAgICAgIGlmIChhbGVydC5hc3NvY2lhdGVkRXZlbnRzLmxlbmd0aCkgewotICAgICAgICBhbGVydC5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQsIGkpIHsKLSAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24oZXZlbnQpOwotICAgICAgICAgIH0sIGV2ZW50LnRpdGxlKTsKLQotICAgICAgICAgIHZhciB2YWx1ZVN0cmluZyA9ICcnOwotICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIHRyLm1vZGVsLlRpbWVkRXZlbnQpCi0gICAgICAgICAgICB2YWx1ZVN0cmluZyA9ICd0b29rICcgKyBldmVudC5kdXJhdGlvbi50b0ZpeGVkKDIpICsgJ21zJzsKLQotICAgICAgICAgIHJvd3MucHVzaCh7Ci0gICAgICAgICAgICBuYW1lOiBsaW5rRWwsCi0gICAgICAgICAgICB2YWx1ZTogdmFsdWVTdHJpbmcKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIERlc2NyaXB0aW9uCi0gICAgICB2YXIgZGVzY3JpcHRpb25FbCA9IHRyLmIudWkuY3JlYXRlRGl2KHsKLSAgICAgICAgICB0ZXh0Q29udGVudDogYWxlcnQuaW5mby5kZXNjcmlwdGlvbiwKLSAgICAgICAgICBtYXhXaWR0aDogJzMwMHB4JwotICAgICAgfSk7Ci0gICAgICByb3dzLnB1c2goewotICAgICAgICBuYW1lOiAnRGVzY3JpcHRpb24nLAotICAgICAgICB2YWx1ZTogZGVzY3JpcHRpb25FbAotICAgICAgfSk7Ci0KLSAgICAgIC8vIEFkZGl0aW9uYWwgUmVhZGluZyBMaW5rcwotICAgICAgaWYgKGFsZXJ0LmluZm8uZG9jTGlua3MpIHsKLSAgICAgICAgYWxlcnQuaW5mby5kb2NMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmtPYmplY3QpIHsKLSAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwotICAgICAgICAgIGxpbmtFbC50YXJnZXQgPSAnX2JsYW5rJzsKLSAgICAgICAgICBsaW5rRWwuaHJlZiA9IGxpbmtPYmplY3QuaHJlZjsKLSAgICAgICAgICBsaW5rRWwudGV4dENvbnRlbnQgPSBsaW5rT2JqZWN0LnRleHRDb250ZW50OwotICAgICAgICAgIHJvd3MucHVzaCh7Ci0gICAgICAgICAgICBuYW1lOiBsaW5rT2JqZWN0LmxhYmVsLAotICAgICAgICAgICAgdmFsdWU6IGxpbmtFbAotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByb3dzOwotICAgIH0sCi0KLSAgICBnZXRSb3dzRm9yQWxlcnRzXzogZnVuY3Rpb24oYWxlcnRzKSB7Ci0gICAgICBpZiAoYWxlcnRzLmxlbmd0aCA9PSAxKSB7Ci0gICAgICAgIHZhciByb3dzID0gW3sKLSAgICAgICAgICBuYW1lOiAnQWxlcnQnLAotICAgICAgICAgIHZhbHVlOiBhbGVydHNbMF0udGl0bGUKLSAgICAgICAgfV07Ci0gICAgICAgIHZhciBkZXRhaWxSb3dzID0gdGhpcy5nZXRSb3dzRm9yU2luZ2xlQWxlcnRfKGFsZXJ0c1swXSk7Ci0gICAgICAgIHJvd3MucHVzaC5hcHBseShyb3dzLCBkZXRhaWxSb3dzKTsKLSAgICAgICAgcmV0dXJuIHJvd3M7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gYWxlcnRzLm1hcChmdW5jdGlvbihhbGVydCkgewotICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBuYW1lOiAnQWxlcnQnLAotICAgICAgICAgICAgdmFsdWU6IGFsZXJ0LnRpdGxlLAotICAgICAgICAgICAgaXNFeHBhbmRlZDogYWxlcnRzLnNpemUgPCAxMCwgLy8gVGhpcyBpcyBzb21ld2hhdCBhcmJpdHJhcnkgZm9yIG5vdy4KLSAgICAgICAgICAgIHN1YlJvd3M6IHRoaXMuZ2V0Um93c0ZvclNpbmdsZUFsZXJ0XyhhbGVydCkKLSAgICAgICAgICB9OwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy4kLnRhYmxlLnJvd3MgPSBbXTsKLSAgICAgICAgdGhpcy4kLnRhYmxlLnJlYnVpbGQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB2YXIgYWxlcnRzID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSB0aGlzLmdldFJvd3NGb3JBbGVydHNfKGFsZXJ0cyk7Ci0gICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FsZXJ0X3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODgwMmZmNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNsaWNlID0gbmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDAsIGR1cmF0aW9uOiAwLjAwMn0pOwotCi0gICAgdmFyIEFMRVJUX0lORk9fMSA9IG5ldyB0ci5tb2RlbC5FdmVudEluZm8oCi0gICAgICAgICdBbGVydCAxJywgJ0NyaXRpY2FsIGFsZXJ0JywKLSAgICAgICAgW3sKLSAgICAgICAgICBsYWJlbDogJ1Byb2plY3QgUGFnZScsCi0gICAgICAgICAgdGV4dENvbnRlbnQ6ICdUcmFjZS1WaWV3ZXIgR2l0aHViIFByb2plY3QnLAotICAgICAgICAgIGhyZWY6ICdodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci8nCi0gICAgICAgIH1dKTsKLQotICAgIHZhciBhbGVydCA9IG5ldyB0ci5tb2RlbC5BbGVydChBTEVSVF9JTkZPXzEsIDUsIFtzbGljZV0pOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKGFsZXJ0KTsKLQotICAgIHZhciBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFsZXJ0LXN1Yi12aWV3Jyk7Ci0gICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1YlZpZXcpOwotCi0gICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgc3ViVmlldywgJ3RyLWItdWktdGFibGUnKTsKLQotICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOwotICAgIHZhciBjb2x1bW5zID0gdGFibGUudGFibGVDb2x1bW5zOwotICAgIGFzc2VydC5sZW5ndGhPZihyb3dzLCA0KTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoY29sdW1ucywgMik7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODFkZDkwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1hbmFseXNpcy1saW5rIiBpcz0iYSI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogaW5saW5lOwotICAgICAgY29sb3I6IC13ZWJraXQtbGluazsKLSAgICAgIGN1cnNvcjogcG9pbnRlcjsKLSAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwotICAgICAgLyogVE9ETyhuZHVjYSk6IFdoaXRlc3BhY2UgaXMgZm9yY2VkIHRvIG5vcm1hbCBoZXJlIGJlY2F1c2UgdGhlCi0gICAgICAgICBhbmFseXNpc19yZXN1bHRzLmNzcyBmb3JjZXMgZXZlcnl0aGluZyB1bmRlciBpdCB0byBwcmUuIFRoaXMgaXMgaW5zYW5lLgotICAgICAgICAgV2hlbiB0aGF0IGhvcnJpYmxlIGV2aWwgY2xhc3MgZGllcywgdGhlbiB3ZSBjYW4gcmlwIHRoaXMgd2hpdGUtc3BhY2UKLSAgICAgICAgIHJlc3RyaWN0aW9uIG91dC4KLSAgICAgICAqLwotICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKLSAgICAgIGN1cnNvcjogcG9pbnRlcjsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8Y29udGVudD48L2NvbnRlbnQ+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25DbGlja2VkXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLnRleHRDb250ZW50ID0gc2VsZWN0aW9uLnVzZXJGcmllbmRseU5hbWU7Ci0gICAgfSwKLQotICAgIHNldFNlbGVjdGlvbkFuZENvbnRlbnQ6IGZ1bmN0aW9uKHNlbGVjdGlvbiwgb3B0X3RleHRDb250ZW50KSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICBpZiAob3B0X3RleHRDb250ZW50KQotICAgICAgICB0aGlzLnRleHRDb250ZW50ID0gb3B0X3RleHRDb250ZW50OwotICAgIH0sCi0KLSAgICBvbkNsaWNrZWRfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5zZWxlY3Rpb25fKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBldmVudCA9IG5ldyB0ci5jLlJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOwotICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlbGVjdGlvbl8gPT09ICdmdW5jdGlvbicpCi0gICAgICAgIGV2ZW50LnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uXygpOwotICAgICAgZWxzZQotICAgICAgICBldmVudC5zZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbl87Ci0gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfbGlua190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfbGlua190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ZmViYTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmtfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ3Rlc3RCYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLQotICAgIHZhciBpMTAgPSBuZXcgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UoCi0gICAge30sICcweDEwMDAnLCAnY2F0JywgJ25hbWUnLCAxMCk7Ci0gICAgdmFyIHMxMCA9IGkxMC5hZGRTbmFwc2hvdCgxMCwge2ZvbzogMX0pOwotCi0gICAgbGluay5zZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oczEwKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQobGluayk7Ci0KLSAgICB2YXIgZGlkUlNDID0gZmFsc2U7Ci0gICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywgZnVuY3Rpb24oZSkgewotICAgICAgZGlkUlNDID0gdHJ1ZTsKLSAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblswXSwgczEwKTsKLSAgICB9KTsKLSAgICBsaW5rLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaWRSU0MpOwotICB9KTsKLQotICB0ZXN0KCd0ZXN0R2VuZXJhdG9yVmVyc2lvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLQotICAgIHZhciBpMTAgPSBuZXcgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UoCi0gICAge30sICcweDEwMDAnLCAnY2F0JywgJ25hbWUnLCAxMCk7Ci0gICAgdmFyIHMxMCA9IGkxMC5hZGRTbmFwc2hvdCgxMCwge2ZvbzogMX0pOwotCi0gICAgZnVuY3Rpb24gc2VsZWN0aW9uR2VuZXJhdG9yKCkgewotICAgICAgcmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbihzMTApOwotICAgIH0KLSAgICBzZWxlY3Rpb25HZW5lcmF0b3IudXNlckZyaWVuZGx5TmFtZSA9ICdoZWxsbyB3b3JsZCc7Ci0gICAgbGluay5zZWxlY3Rpb24gPSBzZWxlY3Rpb25HZW5lcmF0b3I7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGxpbmspOwotCi0gICAgdmFyIGRpZFJTQyA9IGZhbHNlOwotICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcigncmVxdWVzdFNlbGVjdGlvbkNoYW5nZScsIGZ1bmN0aW9uKGUpIHsKLSAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblswXSwgczEwKTsKLSAgICAgIGRpZFJTQyA9IHRydWU7Ci0gICAgfSk7Ci0gICAgbGluay5jbGljaygpOwotICAgIGFzc2VydC5pc1RydWUoZGlkUlNDKTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfcmVzdWx0cy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfcmVzdWx0cy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNjI0ODAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3Jlc3VsdHMuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0uYW5hbHlzaXMtaGVhZGVyIHsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci19Ci0KLS5hbmFseXNpcy1yZXN1bHRzIHsKLSAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLSAgd2hpdGUtc3BhY2U6IHByZTsKLX0KLQotLmFuYWx5c2lzLXJlc3VsdHMgKiB7Ci0gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDsKLSAgY3Vyc29yOiB0ZXh0OwotfQotCi0uYW5hbHlzaXMtdGFibGUgewotICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwotICBib3JkZXItd2lkdGg6IDA7Ci0gIG1hcmdpbi1ib3R0b206IDI1cHg7Ci0gIHdpZHRoOiAxMDAlOwotfQotCi0uYW5hbHlzaXMtdGFibGUgdHIgPiB0ZDpmaXJzdC1jaGlsZCB7Ci0gIHBhZGRpbmctbGVmdDogMnB4OwotfQotCi0uYW5hbHlzaXMtdGFibGUgdHIgPiB0ZCB7Ci0gIHBhZGRpbmc6IDJweCA0cHggMnB4IDRweDsKLSAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wOwotICB3aWR0aDogMTUwcHg7Ci19Ci0KLS8qIFNocmluayBiYWNrIG5lc3RlZCBjZWxscyAodXNlZCB0byBkaXNwbGF5IEFyZ3MpICovCi0uYW5hbHlzaXMtdGFibGUgdGQgdGQgewotICBwYWRkaW5nOiAwIDAgMCAwOwotICB3aWR0aDogYXV0bzsKLX0KLQotLmFuYWx5c2lzLXRhYmxlLWhlYWRlciB7Ci0gIHRleHQtYWxpZ246IGxlZnQ7Ci19Ci0KLS5hbmFseXNpcy10YWJsZS1yb3cgewotICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwotfQotCi0uYW5hbHlzaXMtdGFibGUtcm93Om50aC1jaGlsZCgybiswKSB7Ci0gIGJhY2tncm91bmQtY29sb3I6ICNlMmUyZTI7Ci19Ci0KLS5hbmFseXNpcy10YWJsZS1yb3ctaW52ZXJ0ZWQ6bnRoLWNoaWxkKDJuKzEpIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjsKLX0KLQotLnNlbGVjdGlvbi1jaGFuZ2luZy1saW5rIHsKLSAgY29sb3I6IC13ZWJraXQtbGluazsKLSAgY3Vyc29yOiBwb2ludGVyOwotICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKLX0KLQotLmFuYWx5c2lzLXRhYmxlIHRoZWFkIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci19Ci0KLS5hbmFseXNpcy10YWJsZSB0Zm9vdCB7Ci0gIGZvbnQtd2VpZ2h0OiBib2xkOwotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3Jlc3VsdHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbmFseXNpc19yZXN1bHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMmYwYWUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3Jlc3VsdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfcmVzdWx0cy5jc3MiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBBbmFseXNpc1Jlc3VsdHMgPSB0ci5iLnVpLmRlZmluZSgnZGl2Jyk7Ci0KLSAgQW5hbHlzaXNSZXN1bHRzLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2xhc3NOYW1lID0gJ2FuYWx5c2lzLXJlc3VsdHMnOwotICAgIH0sCi0KLSAgICBnZXQgcmVxdWlyZXNUYWxsVmlldygpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBjbGVhcjogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7Ci0gICAgfSwKLQotICAgIGNyZWF0ZVNlbGVjdGlvbkNoYW5naW5nTGluazogZnVuY3Rpb24odGV4dCwgc2VsZWN0aW9uR2VuZXJhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3Rvb2x0aXApIHsKLSAgICAgIHZhciBlbCA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpOwotICAgICAgZnVuY3Rpb24gd3JhcCgpIHsKLSAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkdlbmVyYXRvcigpOwotICAgICAgfQotICAgICAgd3JhcC51c2VyRnJpZW5kbHlOYW1lID0gdGV4dDsKLSAgICAgIGVsLnNlbGVjdGlvbiA9IHdyYXA7Ci0gICAgICBpZiAob3B0X3Rvb2x0aXApCi0gICAgICAgIGVsLnRpdGxlID0gb3B0X3Rvb2x0aXA7Ci0gICAgICByZXR1cm4gZWw7Ci0gICAgfSwKLQotICAgIGFwcGVuZEVsZW1lbnRfOiBmdW5jdGlvbihwYXJlbnQsIHRhZ05hbWUsIG9wdF90ZXh0KSB7Ci0gICAgICB2YXIgbiA9IHBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7Ci0gICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQobik7Ci0gICAgICBpZiAob3B0X3RleHQgIT0gdW5kZWZpbmVkKQotICAgICAgICBuLnRleHRDb250ZW50ID0gb3B0X3RleHQ7Ci0gICAgICByZXR1cm4gbjsKLSAgICB9LAotCi0gICAgYXBwZW5kVGV4dF86IGZ1bmN0aW9uKHBhcmVudCwgdGV4dCkgewotICAgICAgdmFyIHRleHRFbGVtZW50ID0gcGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7Ci0gICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgcmV0dXJuIHRleHROb2RlOwotICAgIH0sCi0KLSAgICBhcHBlbmRUYWJsZUNlbGxfOiBmdW5jdGlvbih0YWJsZSwgcm93LCBjZWxsbnVtLCB0ZXh0LCBvcHRfd2FybmluZykgewotICAgICAgdmFyIHRkID0gdGhpcy5hcHBlbmRFbGVtZW50Xyhyb3csICd0ZCcsIHRleHQpOwotICAgICAgdGQuY2xhc3NOYW1lID0gdGFibGUuY2xhc3NOYW1lICsgJy1jb2wtJyArIGNlbGxudW07Ci0gICAgICBpZiAob3B0X3dhcm5pbmcpIHsKLSAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSAnICcgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpOwotICAgICAgICBzcGFuLnRpdGxlID0gb3B0X3dhcm5pbmc7Ci0gICAgICAgIHRkLmFwcGVuZENoaWxkKHNwYW4pOwotICAgICAgfQotICAgICAgcmV0dXJuIHRkOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGFuZCBhcHBlbmQgYSB0YWJsZSBjZWxsIGF0IHRoZSBlbmQgb2YgdGhlIGdpdmVuIHJvdy4KLSAgICAgKi8KLSAgICBhcHBlbmRUYWJsZUNlbGw6IGZ1bmN0aW9uKHRhYmxlLCByb3csIHRleHQpIHsKLSAgICAgIHJldHVybiB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgcm93LmNoaWxkcmVuLmxlbmd0aCwgdGV4dCk7Ci0gICAgfSwKLQotICAgIGFwcGVuZFRhYmxlQ2VsbFdpdGhUb29sdGlwXzogZnVuY3Rpb24odGFibGUsIHJvdywgY2VsbG51bSwgdGV4dCwgdG9vbHRpcCkgewotICAgICAgaWYgKHRvb2x0aXApIHsKLSAgICAgICAgdmFyIHRkID0gdGhpcy5hcHBlbmRFbGVtZW50Xyhyb3csICd0ZCcpOwotICAgICAgICB0ZC5jbGFzc05hbWUgPSB0YWJsZS5jbGFzc05hbWUgKyAnLWNvbC0nICsgY2VsbG51bTsKLSAgICAgICAgdmFyIHNwYW4gPSB0aGlzLmFwcGVuZEVsZW1lbnRfKHRkLCAnc3BhbicsIHRleHQpOwotICAgICAgICBzcGFuLmNsYXNzTmFtZSA9ICd0b29sdGlwJzsKLSAgICAgICAgc3Bhbi50aXRsZSA9IHRvb2x0aXA7Ci0gICAgICAgIHJldHVybiB0ZDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgY2VsbG51bSwgdGV4dCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYW5kIGFwcGVuZHMgYSBzZWN0aW9uIGhlYWRlciBlbGVtZW50LgotICAgICAqLwotICAgIGFwcGVuZEhlYWRlcjogZnVuY3Rpb24obGFiZWwpIHsKLSAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmFwcGVuZEVsZW1lbnRfKHRoaXMsICdzcGFuJywgbGFiZWwpOwotICAgICAgaGVhZGVyLmNsYXNzTmFtZSA9ICdhbmFseXNpcy1oZWFkZXInOwotICAgICAgcmV0dXJuIGhlYWRlcjsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgYXBwZW5kcyBhIGluZm8gZWxlbWVudCBvZiB0aGUgZm9ybWF0ICI8Yj5sYWJlbDwvYj52YWx1ZSIuCi0gICAgICovCi0gICAgYXBwZW5kSW5mbzogZnVuY3Rpb24obGFiZWwsIHZhbHVlKSB7Ci0gICAgICB2YXIgZGl2ID0gdGhpcy5hcHBlbmRFbGVtZW50Xyh0aGlzLCAnZGl2Jyk7Ci0gICAgICBkaXYubGFiZWwgPSB0aGlzLmFwcGVuZEVsZW1lbnRfKGRpdiwgJ2InLCBsYWJlbCk7Ci0gICAgICBkaXYudmFsdWUgPSB0aGlzLmFwcGVuZEVsZW1lbnRfKGRpdiwgJ3NwYW4nLCB2YWx1ZSk7Ci0gICAgICByZXR1cm4gZGl2OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBBZGRzIGEgdGFibGUgd2l0aCB0aGUgZ2l2ZW4gY2xhc3NOYW1lLgotICAgICAqCi0gICAgICogQHJldHVybiB7SFRNTFRhYmxlRWxlbWVudH0gVGhlIG5ld2x5IGNyZWF0ZWQgdGFibGUuCi0gICAgICovCi0gICAgYXBwZW5kVGFibGU6IGZ1bmN0aW9uKGNsYXNzTmFtZSwgbnVtQ29sdW1ucykgewotICAgICAgdmFyIHRhYmxlID0gdGhpcy5hcHBlbmRFbGVtZW50Xyh0aGlzLCAndGFibGUnKTsKLSAgICAgIHRhYmxlLmNsYXNzTmFtZSA9IGNsYXNzTmFtZSArICcgYW5hbHlzaXMtdGFibGUnOwotICAgICAgdGFibGUubnVtQ29sdW1ucyA9IG51bUNvbHVtbnM7Ci0gICAgICByZXR1cm4gdGFibGU7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYW5kIGFwcGVuZHMgYSB8dHJ8IGluIHx0aGVhZHwsIGlmIHx0aGVhZHwgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZQotICAgICAqIGl0IGFzIHdlbGwuCi0gICAgICovCi0gICAgYXBwZW5kSGVhZFJvdzogZnVuY3Rpb24odGFibGUpIHsKLSAgICAgIGlmICh0YWJsZS5oZWFkZXJSb3cpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBvbmUgaGVhZGVyIHJvdyBhbGxvd2VkLicpOwotICAgICAgaWYgKHRhYmxlLnRib2R5IHx8IHRhYmxlLnRmb290KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCi0gICAgICAgICAgICAnQ2Fubm90IGFkZCBhIGhlYWRlciByb3cgYWZ0ZXIgZGF0YSByb3dzIGhhdmUgYmVlbiBhZGRlZC4nKTsKLSAgICAgIHRhYmxlLmhlYWRlclJvdyA9IHRoaXMuYXBwZW5kRWxlbWVudF8oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRFbGVtZW50Xyh0YWJsZSwgJ3RoZWFkJyksICd0cicpOwotICAgICAgdGFibGUuaGVhZGVyUm93LmNsYXNzTmFtZSA9ICdhbmFseXNpcy10YWJsZS1oZWFkZXInOwotICAgICAgcmV0dXJuIHRhYmxlLmhlYWRlclJvdzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgYXBwZW5kcyBhIHx0cnwgaW4gfHRib2R5fCwgaWYgfHRib2R5fCBkb2VzIG5vdCBleGlzdCwgY3JlYXRlCi0gICAgICogaXQgYXMgd2VsbC4KLSAgICAgKi8KLSAgICBhcHBlbmRCb2R5Um93OiBmdW5jdGlvbih0YWJsZSkgewotICAgICAgaWYgKHRhYmxlLnRmb290KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCi0gICAgICAgICAgICAnQ2Fubm90IGFkZCBhIHRib2R5IHJvdyBhZnRlciBmb290ZXIgcm93cyBoYXZlIGJlZW4gYWRkZWQuJyk7Ci0gICAgICBpZiAoIXRhYmxlLnRib2R5KQotICAgICAgICB0YWJsZS50Ym9keSA9IHRoaXMuYXBwZW5kRWxlbWVudF8odGFibGUsICd0Ym9keScpOwotICAgICAgdmFyIHJvdyA9IHRoaXMuYXBwZW5kRWxlbWVudF8odGFibGUudGJvZHksICd0cicpOwotICAgICAgaWYgKHRhYmxlLmhlYWRlclJvdykKLSAgICAgICAgcm93LmNsYXNzTmFtZSA9ICdhbmFseXNpcy10YWJsZS1yb3cnOwotICAgICAgZWxzZQotICAgICAgICByb3cuY2xhc3NOYW1lID0gJ2FuYWx5c2lzLXRhYmxlLXJvdy1pbnZlcnRlZCc7Ci0gICAgICByZXR1cm4gcm93OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGFuZCBhcHBlbmRzIGEgfHRyfCBpbiB8dGZvb3R8LCBpZiB8dGZvb3R8IGRvZXMgbm90IGV4aXN0LCBjcmVhdGUKLSAgICAgKiBpdCBhcyB3ZWxsLgotICAgICAqLwotICAgIGFwcGVuZEZvb3RSb3c6IGZ1bmN0aW9uKHRhYmxlKSB7Ci0gICAgICBpZiAoIXRhYmxlLnRmb290KSB7Ci0gICAgICAgIHRhYmxlLnRmb290ID0gdGhpcy5hcHBlbmRFbGVtZW50Xyh0YWJsZSwgJ3Rmb290Jyk7Ci0gICAgICAgIHRhYmxlLnRmb290LnJvd3NDbGFzc05hbWUgPSAoCi0gICAgICAgICAgICAodGFibGUuaGVhZGVyUm93ID8gMSA6IDApICsKLSAgICAgICAgICAgICh0YWJsZS50Ym9keSA/IHRhYmxlLnRib2R5LnJvd3MubGVuZ3RoIDogMCkpICUgMiA/Ci0gICAgICAgICAgICAgICAgJ2FuYWx5c2lzLXRhYmxlLXJvdycgOiAnYW5hbHlzaXMtdGFibGUtcm93LWludmVydGVkJzsKLSAgICAgIH0KLQotICAgICAgdmFyIHJvdyA9IHRoaXMuYXBwZW5kRWxlbWVudF8odGFibGUudGZvb3QsICd0cicpOwotICAgICAgcm93LmNsYXNzTmFtZSA9IHRhYmxlLnRmb290LnJvd3NDbGFzc05hbWU7Ci0gICAgICByZXR1cm4gcm93OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBBZGRzIGEgc3BhY2luZyByb3cgdG8gc3ByZWFkIG91dCByZXN1bHRzLgotICAgICAqLwotICAgIGFwcGVuZFNwYWNpbmdSb3c6IGZ1bmN0aW9uKHRhYmxlLCBvcHRfaW5Gb290KSB7Ci0gICAgICBpZiAodGFibGUudGZvb3QgfHwgb3B0X2luRm9vdCkKLSAgICAgICAgdmFyIHJvdyA9IHRoaXMuYXBwZW5kRm9vdFJvdyh0YWJsZSk7Ci0gICAgICBlbHNlCi0gICAgICAgIHZhciByb3cgPSB0aGlzLmFwcGVuZEJvZHlSb3codGFibGUpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJsZS5udW1Db2x1bW5zOyBpKyspCi0gICAgICAgIHRoaXMuYXBwZW5kVGFibGVDZWxsXyh0YWJsZSwgcm93LCBpLCAnICcpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGFuZCBhcHBlbmRzIGEgcm93IHRvIHx0YWJsZXwgd2l0aCBhIGxlZnQtYWxpZ25lZCB8bGFiZWxdIGluIHRoZQotICAgICAqIGZpcnN0IGNvbHVtbiBhbmQgYW4gb3B0aW9uYWwgfG9wdF92YWx1ZXwgaW4gdGhlIHNlY29uZCBjb2x1bW4uCi0gICAgICovCi0gICAgYXBwZW5kSW5mb1JvdzogZnVuY3Rpb24odGFibGUsIGxhYmVsLCBvcHRfdmFsdWUsIG9wdF9pbkZvb3QpIHsKLSAgICAgIGlmICh0YWJsZS50Zm9vdCB8fCBvcHRfaW5Gb290KQotICAgICAgICB2YXIgcm93ID0gdGhpcy5hcHBlbmRGb290Um93KHRhYmxlKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdmFyIHJvdyA9IHRoaXMuYXBwZW5kQm9keVJvdyh0YWJsZSk7Ci0gICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgMCwgbGFiZWwpOwotICAgICAgaWYgKG9wdF92YWx1ZSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHZhciBvYmplY3RWaWV3ID0KLSAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgICAgIG9iamVjdFZpZXcub2JqZWN0ID0gb3B0X3ZhbHVlOwotICAgICAgICBvYmplY3RWaWV3LmNsYXNzTGlzdC5hZGQoJ2FuYWx5c2lzLXRhYmxlLWNvbC0xJyk7Ci0gICAgICAgIG9iamVjdFZpZXcuc3R5bGUuZGlzcGxheSA9ICd0YWJsZS1jZWxsJzsKLSAgICAgICAgcm93LmFwcGVuZENoaWxkKG9iamVjdFZpZXcpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGxfKHRhYmxlLCByb3csIDEsICcnKTsKLSAgICAgIH0KLSAgICAgIGZvciAodmFyIGkgPSAyOyBpIDwgdGFibGUubnVtQ29sdW1uczsgaSsrKQotICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgaSwgJycpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGFuZCBhcHBlbmRzIGEgcm93IHRvIHx0YWJsZXwgd2l0aCBhIGxlZnQtYWxpZ25lZCB8bGFiZWxdIGluIHRoZQotICAgICAqIGZpcnN0IGNvbHVtbiBhbmQgYSBtaWxsaXNlY29uZCB8dGltZXwgdmFsdWUgaW4gdGhlIHNlY29uZCBjb2x1bW4uCi0gICAgICovCi0gICAgYXBwZW5kSW5mb1Jvd1RpbWU6IGZ1bmN0aW9uKHRhYmxlLCBsYWJlbCwgdGltZSwgb3B0X2luRm9vdCwgb3B0X3dhcm5pbmcpIHsKLSAgICAgIGlmICh0YWJsZS50Zm9vdCB8fCBvcHRfaW5Gb290KQotICAgICAgICB2YXIgcm93ID0gdGhpcy5hcHBlbmRGb290Um93KHRhYmxlKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdmFyIHJvdyA9IHRoaXMuYXBwZW5kQm9keVJvdyh0YWJsZSk7Ci0gICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgMCwgbGFiZWwpOwotICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGxfKAotICAgICAgICAgIHRhYmxlLCByb3csIDEsIHRyLmIudW5pdHMudHNTdHJpbmcodGltZSksIG9wdF93YXJuaW5nKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgYXBwZW5kcyBhIHJvdyB0byB8dGFibGV8IHRoYXQgc3VtbWFyaXplcyBhIHNpbmdsZSBzbGljZSBvciBhCi0gICAgICogc2luZ2xlIGNvdW50ZXIuIFRoZSByb3cgaGFzIGEgbGVmdC1hbGlnbmVkIHxzdGFydHwgaW4gdGhlIGZpcnN0IGNvbHVtbiwKLSAgICAgKiB0aGUgfGR1cmF0aW9ufCBvZiB0aGUgZGF0YSBpbiB0aGUgc2Vjb25kLCB0aGUgbnVtYmVyIG9mIHxvY2N1cnJlbmNlc3wgaW4KLSAgICAgKiB0aGUgdGhpcmQuCi0gICAgICoKLSAgICAgKiBAcGFyYW0ge29iamVjdD19IG9wdF9zdGF0aXN0aWNzIE1heSBiZSB1bmRlZmluZWQsIG9yIGFuIG9iamVjdCB3aGljaAotICAgICAqICAgICAgICAgIGNvbnRhaW5zIGNhbGN1bGF0ZWQgc3RhdGlzdGljcyBjb250YWluaW5nIG1pbi9tYXgvYXZnIGZvcgotICAgICAqICAgICAgICAgIHNsaWNlcywgb3IgbWluL21heC9hdmcvc3RhcnQvZW5kIGZvciBjb3VudGVycy4KLSAgICAgKi8KLSAgICBhcHBlbmREZXRhaWxzUm93OiBmdW5jdGlvbih0YWJsZSwgc3RhcnQsIGR1cmF0aW9uLCBzZWxmVGltZSwgYXJncywKLSAgICAgICAgb3B0X3NlbGVjdGlvbkdlbmVyYXRvciwgb3B0X2NwdUR1cmF0aW9uLCBvcHRfaW5Gb290KSB7Ci0gICAgICBpZiAob3B0X2luRm9vdCkgewotICAgICAgICAvLyBJZiBpbkZvb3QgaXMgdHJ1ZSwgdGhlbiB3ZSdyZSByZXBvcnRpbmcgVG90YWxzLgotICAgICAgICB2YXIgcm93ID0gdGhpcy5hcHBlbmRGb290Um93KHRhYmxlKTsKLSAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGwodGFibGUsIHJvdywgJ1RvdGFscycpOwotICAgICAgfQotICAgICAgZWxzZSB7Ci0gICAgICAgIHZhciByb3cgPSB0aGlzLmFwcGVuZEJvZHlSb3codGFibGUpOwotCi0gICAgICAgIGlmIChvcHRfc2VsZWN0aW9uR2VuZXJhdG9yKSB7Ci0gICAgICAgICAgdmFyIGxhYmVsRWwgPSB0aGlzLmFwcGVuZFRhYmxlQ2VsbCh0YWJsZSwgcm93LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyhzdGFydCkpOwotICAgICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgICBsYWJlbEVsLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU2VsZWN0aW9uQ2hhbmdpbmdMaW5rKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5iLnVuaXRzLnRzU3RyaW5nKHN0YXJ0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3NlbGVjdGlvbkdlbmVyYXRvciwgJycpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbCh0YWJsZSwgcm93LCB0ci5iLnVuaXRzLnRzU3RyaW5nKHN0YXJ0KSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChkdXJhdGlvbiAhPT0gbnVsbCkKLSAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGwodGFibGUsIHJvdywgdHIuYi51bml0cy50c1N0cmluZyhkdXJhdGlvbikpOwotCi0gICAgICBpZiAob3B0X2NwdUR1cmF0aW9uKQotICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbCh0YWJsZSwgcm93LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfY3B1RHVyYXRpb24gIT0gJycgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9jcHVEdXJhdGlvbikgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJyk7Ci0KLSAgICAgIGlmIChzZWxmVGltZSAhPT0gbnVsbCkKLSAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGwodGFibGUsIHJvdywgdHIuYi51bml0cy50c1N0cmluZyhzZWxmVGltZSkpOwotCi0gICAgICB2YXIgYXJnc0NlbGwgPSB0aGlzLmFwcGVuZFRhYmxlQ2VsbCh0YWJsZSwgcm93LCAnJyk7Ci0gICAgICB2YXIgbiA9IDA7Ci0gICAgICBmb3IgKHZhciBhcmdOYW1lIGluIGFyZ3MpIHsKLSAgICAgICAgbiArPSAxOwotICAgICAgfQotCi0gICAgICBpZiAobiA+IDApIHsKLSAgICAgICAgZm9yICh2YXIgYXJnTmFtZSBpbiBhcmdzKSB7Ci0gICAgICAgICAgdmFyIGFyZ1ZhbCA9IGFyZ3NbYXJnTmFtZV07Ci0gICAgICAgICAgdmFyIG9iamVjdFZpZXcgPQotICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgICAgICAgIG9iamVjdFZpZXcub2JqZWN0ID0gYXJnVmFsOwotICAgICAgICAgIHZhciBhcmdzUm93ID0gdGhpcy5hcHBlbmRFbGVtZW50XygKLSAgICAgICAgICAgICAgdGhpcy5hcHBlbmRFbGVtZW50XyhhcmdzQ2VsbCwgJ3RhYmxlJyksICd0cicpOwotICAgICAgICAgIHRoaXMuYXBwZW5kRWxlbWVudF8oYXJnc1JvdywgJ3RkJywgYXJnTmFtZSArICc6Jyk7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRFbGVtZW50XyhhcmdzUm93LCAndGQnKS5hcHBlbmRDaGlsZChvYmplY3RWaWV3KTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGFuZCBhcHBlbmRzIGEgcm93IHRvIHx0YWJsZXwgdGhhdCBzdW1tYXJpemVzIG9uZSBvciBtb3JlIHNsaWNlcywKLSAgICAgKiBvciBvbmUgb3IgbW9yZSBjb3VudGVycy4gVGhlIHJvdyBoYXMgYSBsZWZ0LWFsaWduZWQgfGxhYmVsfCBpbiB0aGUgZmlyc3QKLSAgICAgKiBjb2x1bW4sIHRoZSB8ZHVyYXRpb258IG9mIHRoZSBkYXRhIGluIHRoZSBzZWNvbmQsIHRoZSBudW1iZXIgb2YKLSAgICAgKiB8b2NjdXJyZW5jZXN8IGluIHRoZSB0aGlyZC4KLSAgICAgKgotICAgICAqIEBwYXJhbSB7b2JqZWN0PX0gb3B0X3N0YXRpc3RpY3MgTWF5IGJlIHVuZGVmaW5lZCwgb3IgYW4gb2JqZWN0IHdoaWNoCi0gICAgICogICAgICAgICAgY29udGFpbnMgY2FsY3VsYXRlZCBzdGF0aXN0aWNzIGNvbnRhaW5pbmcgbWluL21heC9hdmcgZm9yCi0gICAgICogICAgICAgICAgc2xpY2VzLCBvciBtaW4vbWF4L2F2Zy9zdGFydC9lbmQgZm9yIGNvdW50ZXJzLgotICAgICAqLwotICAgIGFwcGVuZERhdGFSb3c6IGZ1bmN0aW9uKHRhYmxlLCBsYWJlbCwgb3B0X2R1cmF0aW9uLCBvcHRfY3B1RHVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3NlbGZUaW1lLCBvcHRfY3B1U2VsZlRpbWUsIG9wdF9vY2N1cnJlbmNlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfcGVyY2VudGFnZSwgb3B0X3N0YXRpc3RpY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3NlbGVjdGlvbkdlbmVyYXRvciwgb3B0X2luRm9vdCkgewotCi0gICAgICB2YXIgdG9vbHRpcCA9IHVuZGVmaW5lZDsKLSAgICAgIGlmIChvcHRfc3RhdGlzdGljcykgewotICAgICAgICB2YXIgc3RkZGV2Um91bmRlZCA9IE1hdGgucm91bmQob3B0X3N0YXRpc3RpY3MuYXZnX3N0ZGRldiAqIDEwMDApIC8gMTAwMDsKLQotICAgICAgICB0b29sdGlwID0gJ01pbiBEdXJhdGlvbjpcdTAwMDknICsKLSAgICAgICAgICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcob3B0X3N0YXRpc3RpY3MubWluKSArCi0gICAgICAgICAgICAgICAgICAnIFx1MDAwRE1heCBEdXJhdGlvbjpcdTAwMDknICsKLSAgICAgICAgICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcob3B0X3N0YXRpc3RpY3MubWF4KSArCi0gICAgICAgICAgICAgICAgICAnIFx1MDAwREF2ZyBEdXJhdGlvbjpcdTAwMDknICsKLSAgICAgICAgICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcob3B0X3N0YXRpc3RpY3MuYXZnKSArCi0gICAgICAgICAgICAgICAgICAnIChcdTAzQzMgPSAnICsgc3RkZGV2Um91bmRlZCArICcpJzsKLQotICAgICAgICBpZiAob3B0X3N0YXRpc3RpY3Muc3RhcnQpIHsKLSAgICAgICAgICB0b29sdGlwICs9ICdcdTAwMERTdGFydCBUaW1lOlx1MDAwOScgKwotICAgICAgICAgICAgICB0ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9zdGF0aXN0aWNzLnN0YXJ0KTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3B0X3N0YXRpc3RpY3MuZW5kKSB7Ci0gICAgICAgICAgdG9vbHRpcCArPSAnXHUwMDBERW5kIFRpbWU6XHUwMDA5JyArCi0gICAgICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcob3B0X3N0YXRpc3RpY3MuZW5kKTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3B0X3N0YXRpc3RpY3MuZnJlcXVlbmN5ICYmIG9wdF9zdGF0aXN0aWNzLmZyZXF1ZW5jeV9zdGRkZXYpIHsKLSAgICAgICAgICB2YXIgZlIgPSBNYXRoLnJvdW5kKG9wdF9zdGF0aXN0aWNzLmZyZXF1ZW5jeSAqIDEwMDApIC8gMTAwMDsKLSAgICAgICAgICB2YXIgZlNSID0gTWF0aC5yb3VuZChvcHRfc3RhdGlzdGljcy5mcmVxdWVuY3lfc3RkZGV2ICogMTAwMCkgLyAxMDAwOwotICAgICAgICAgIHRvb2x0aXAgKz0gJ1x1MDAwREZyZXF1ZW5jeTpcdTAwMDknICsKLSAgICAgICAgICAgICAgZlIgKyAnIG9jY3VycmVuY2VzL3MgKFx1MDNDMyA9ICcgKyBmU1IgKyAnKSc7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgKHRhYmxlLnRmb290IHx8IG9wdF9pbkZvb3QpCi0gICAgICAgIHZhciByb3cgPSB0aGlzLmFwcGVuZEZvb3RSb3codGFibGUpOwotICAgICAgZWxzZQotICAgICAgICB2YXIgcm93ID0gdGhpcy5hcHBlbmRCb2R5Um93KHRhYmxlKTsKLQotICAgICAgdmFyIGNlbGxOdW0gPSAwOwotICAgICAgaWYgKCFvcHRfc2VsZWN0aW9uR2VuZXJhdG9yKSB7Ci0gICAgICAgIHRoaXMuYXBwZW5kVGFibGVDZWxsV2l0aFRvb2x0aXBfKHRhYmxlLCByb3csIGNlbGxOdW0sIGxhYmVsLCB0b29sdGlwKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBsYWJlbEVsID0gdGhpcy5hcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF8oCi0gICAgICAgICAgICB0YWJsZSwgcm93LCBjZWxsTnVtLCBsYWJlbCwgdG9vbHRpcCk7Ci0gICAgICAgIGlmIChsYWJlbEVsKSB7Ci0gICAgICAgICAgbGFiZWxFbC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgICAgIGxhYmVsRWwuYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICAgIHRoaXMuY3JlYXRlU2VsZWN0aW9uQ2hhbmdpbmdMaW5rKGxhYmVsLCBvcHRfc2VsZWN0aW9uR2VuZXJhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwKSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGNlbGxOdW0rKzsKLQotICAgICAgaWYgKG9wdF9kdXJhdGlvbiAhPT0gbnVsbCkgewotICAgICAgICBpZiAob3B0X2R1cmF0aW9uKSB7Ci0gICAgICAgICAgaWYgKG9wdF9kdXJhdGlvbiBpbnN0YW5jZW9mIEFycmF5KSB7Ci0gICAgICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbFdpdGhUb29sdGlwXyh0YWJsZSwgcm93LCBjZWxsTnVtLAotICAgICAgICAgICAgICAgICdbJyArIG9wdF9kdXJhdGlvbi5qb2luKCcsICcpICsgJ10nLCB0b29sdGlwKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF8odGFibGUsIHJvdywgY2VsbE51bSwKLSAgICAgICAgICAgICAgICB0ci5iLnVuaXRzLnRzU3RyaW5nKG9wdF9kdXJhdGlvbiksIHRvb2x0aXApOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgY2VsbE51bSwgJycpOwotICAgICAgICB9Ci0gICAgICAgIGNlbGxOdW0rKzsKLSAgICAgIH0KLQotICAgICAgaWYgKG9wdF9jcHVEdXJhdGlvbiAhPT0gbnVsbCkgewotICAgICAgICBpZiAob3B0X2NwdUR1cmF0aW9uICE9ICcnKSB7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF8odGFibGUsIHJvdywgY2VsbE51bSwKLSAgICAgICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyhvcHRfY3B1RHVyYXRpb24pLCB0b29sdGlwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgY2VsbE51bSwgJycpOwotICAgICAgICB9Ci0gICAgICAgIGNlbGxOdW0rKzsKLSAgICAgIH0KLQotICAgICAgaWYgKG9wdF9zZWxmVGltZSAhPT0gbnVsbCkgewotICAgICAgICBpZiAob3B0X3NlbGZUaW1lKSB7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF8odGFibGUsIHJvdywgY2VsbE51bSwKLSAgICAgICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyhvcHRfc2VsZlRpbWUpLCB0b29sdGlwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgY2VsbE51bSwgJycpOwotICAgICAgICB9Ci0gICAgICAgIGNlbGxOdW0rKzsKLSAgICAgIH0KLQotICAgICAgaWYgKG9wdF9jcHVTZWxmVGltZSAhPT0gbnVsbCkgewotICAgICAgICBpZiAob3B0X2NwdVNlbGZUaW1lKSB7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRUYWJsZUNlbGxXaXRoVG9vbHRpcF8odGFibGUsIHJvdywgY2VsbE51bSwKLSAgICAgICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyhvcHRfY3B1U2VsZlRpbWUpLCB0b29sdGlwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgY2VsbE51bSwgJycpOwotICAgICAgICB9Ci0gICAgICAgIGNlbGxOdW0rKzsKLSAgICAgIH0KLQotICAgICAgaWYgKG9wdF9wZXJjZW50YWdlICE9PSBudWxsKSB7Ci0gICAgICAgIGlmIChvcHRfcGVyY2VudGFnZSkgewotICAgICAgICAgIHRoaXMuYXBwZW5kVGFibGVDZWxsV2l0aFRvb2x0aXBfKHRhYmxlLCByb3csIGNlbGxOdW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3BlcmNlbnRhZ2UsIHRvb2x0aXApOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRoaXMuYXBwZW5kVGFibGVDZWxsXyh0YWJsZSwgcm93LCBjZWxsTnVtLCAnJyk7Ci0gICAgICAgIH0KLSAgICAgICAgY2VsbE51bSsrOwotICAgICAgfQotCi0gICAgICBpZiAob3B0X29jY3VycmVuY2VzKSB7Ci0gICAgICAgIHRoaXMuYXBwZW5kVGFibGVDZWxsV2l0aFRvb2x0aXBfKHRhYmxlLCByb3csIGNlbGxOdW0sCi0gICAgICAgICAgICBTdHJpbmcob3B0X29jY3VycmVuY2VzKSwgdG9vbHRpcCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLmFwcGVuZFRhYmxlQ2VsbF8odGFibGUsIHJvdywgY2VsbE51bSwgJycpOwotICAgICAgfQotICAgICAgY2VsbE51bSsrOwotICAgIH0KLSAgfTsKLSAgcmV0dXJuIHsKLSAgICBBbmFseXNpc1Jlc3VsdHM6IEFuYWx5c2lzUmVzdWx0cwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbmFseXNpc19yZXN1bHRzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbmFseXNpc19yZXN1bHRzX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRlY2ZkMC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfcmVzdWx0c190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3Jlc3VsdHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc3R1Yl9hbmFseXNpc190YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdzZWxlY3Rpb25DaGFuZ2luZ0xpbmsnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgciA9IHRyLmMuYW5hbHlzaXMuQW5hbHlzaXNSZXN1bHRzKCk7Ci0gICAgdmFyIHRyYWNrID0ge307Ci0gICAgdmFyIGxpbmtFbCA9IHIuY3JlYXRlU2VsZWN0aW9uQ2hhbmdpbmdMaW5rKCdoZWxsbycsIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgc2VsZWN0aW9uLnB1c2goe2d1aWQ6IDF9KTsKLSAgICAgIHJldHVybiBzZWxlY3Rpb247Ci0gICAgfSk7Ci0gICAgdmFyIGRpZFJlcXVlc3RTZWxlY3Rpb25DaGFuZ2UgPSBmYWxzZTsKLSAgICBsaW5rRWwuYWRkRXZlbnRMaXN0ZW5lcigncmVxdWVzdFNlbGVjdGlvbkNoYW5nZScsIGZ1bmN0aW9uKGUpIHsKLSAgICAgIGRpZFJlcXVlc3RTZWxlY3Rpb25DaGFuZ2UgPSB0cnVlOwotICAgIH0pOwotICAgIGxpbmtFbC5jbGljaygpOwotICAgIGFzc2VydC5pc1RydWUoZGlkUmVxdWVzdFNlbGVjdGlvbkNoYW5nZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Rpc3BsYXlWYWx1ZXNJbkluZm9Sb3cnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgciA9IG5ldyB0ci5jLmFuYWx5c2lzLkFuYWx5c2lzUmVzdWx0cygpOwotICAgIHZhciB0YWJsZSA9IG5ldyB0ci5jLmFuYWx5c2lzLlN0dWJBbmFseXNpc1RhYmxlKCk7Ci0gICAgdmFyIG5vZGU7Ci0gICAgdmFyIHNlY3Rpb25Ob2RlOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5ub2RlQ291bnQsIDApOwotCi0gICAgci5hcHBlbmRJbmZvUm93KHRhYmxlLCAnZmFsc2VfdmFsdWUnLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLm5vZGVDb3VudCwgMSk7Ci0gICAgc2VjdGlvbk5vZGUgPSB0YWJsZS5sYXN0Tm9kZTsKLSAgICBhc3NlcnQuZXF1YWwoc2VjdGlvbk5vZGUubm9kZUNvdW50LCAxKTsKLSAgICBub2RlID0gc2VjdGlvbk5vZGUubGFzdE5vZGU7Ci0gICAgYXNzZXJ0LmVxdWFsKG5vZGUuY2hpbGRyZW5bMF0uaW5uZXJUZXh0LCAnZmFsc2VfdmFsdWUnKTsKLSAgICBhc3NlcnQuZXF1YWwobm9kZS5jaGlsZHJlblsxXS4kLmNvbnRlbnQudGV4dENvbnRlbnQsICdmYWxzZScpOwotCi0gICAgci5hcHBlbmRJbmZvUm93KHRhYmxlLCAndHJ1ZV92YWx1ZScsIHRydWUpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNlY3Rpb25Ob2RlLm5vZGVDb3VudCwgMSk7Ci0gICAgbm9kZSA9IHNlY3Rpb25Ob2RlLmxhc3ROb2RlOwotICAgIGFzc2VydC5lcXVhbChub2RlLmNoaWxkcmVuWzBdLmlubmVyVGV4dCwgJ3RydWVfdmFsdWUnKTsKLSAgICBhc3NlcnQuZXF1YWwobm9kZS5jaGlsZHJlblsxXS4kLmNvbnRlbnQudGV4dENvbnRlbnQsICd0cnVlJyk7Ci0KLSAgICByLmFwcGVuZEluZm9Sb3codGFibGUsICdzdHJpbmdfdmFsdWUnLCAnYSBzdHJpbmcnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VjdGlvbk5vZGUubm9kZUNvdW50LCAxKTsKLSAgICBub2RlID0gc2VjdGlvbk5vZGUubGFzdE5vZGU7Ci0gICAgYXNzZXJ0LmVxdWFsKG5vZGUuY2hpbGRyZW5bMF0uaW5uZXJUZXh0LCAnc3RyaW5nX3ZhbHVlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG5vZGUuY2hpbGRyZW5bMV0uJC5jb250ZW50LnRleHRDb250ZW50LCAnImEgc3RyaW5nIicpOwotCi0gICAgci5hcHBlbmRJbmZvUm93KHRhYmxlLCAnbnVtYmVyX3ZhbHVlJywgMTIzNDUpOwotICAgIGFzc2VydC5lcXVhbChzZWN0aW9uTm9kZS5ub2RlQ291bnQsIDEpOwotICAgIG5vZGUgPSBzZWN0aW9uTm9kZS5sYXN0Tm9kZTsKLSAgICBhc3NlcnQuZXF1YWwobm9kZS5jaGlsZHJlblswXS5pbm5lclRleHQsICdudW1iZXJfdmFsdWUnKTsKLSAgICBhc3NlcnQuZXF1YWwobm9kZS5jaGlsZHJlblsxXS4kLmNvbnRlbnQudGV4dENvbnRlbnQsICcxMjM0NScpOwotCi0gICAgci5hcHBlbmRJbmZvUm93KHRhYmxlLCAndW5kZWZpbmVkJywgdW5kZWZpbmVkKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VjdGlvbk5vZGUubm9kZUNvdW50LCAxKTsKLSAgICBub2RlID0gc2VjdGlvbk5vZGUubGFzdE5vZGU7Ci0gICAgYXNzZXJ0LmVxdWFsKG5vZGUuY2hpbGRyZW5bMF0uaW5uZXJUZXh0LCAndW5kZWZpbmVkJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG5vZGUuY2hpbGRyZW5bMV0uaW5uZXJUZXh0LCAnJyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc2VjdGlvbk5vZGUubm9kZUNvdW50LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUubm9kZUNvdW50LCAwKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUyN2QxYi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotCi08IS0tCi1AZmlsZW92ZXJ2aWV3IFBvbHltZXIgZWxlbWVudCBmb3IgdmFyaW91cyBhbmFseXNpcyBzdWItdmlld3MuCi0tLT4KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotICBQb2x5bWVyKHsKLSAgICBzZXQgdGFiTGFiZWwobGFiZWwpIHsKLSAgICAgIHJldHVybiB0aGlzLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgbGFiZWwpOwotICAgIH0sCi0KLSAgICBnZXQgdGFiTGFiZWwoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcpOwotICAgIH0sCi0KLSAgICBnZXQgcmVxdWlyZXNUYWxsVmlldygpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpIHsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEVhY2ggZWxlbWVudCBleHRlbmRpbmcgdGhpcyBvbmUgbXVzdCBpbXBsZW1lbnQKLSAgICAgKiBhICdzZWxlY3Rpb24nIHByb3BlcnR5LgotICAgICAqLwotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCEnKTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkIScpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzdjMGY1Ni4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdzdWJWaWV3VGhyb3dzTm90SW1wbGVtZW50ZWRFcnJvcnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zdWItdmlldycpOwotCi0gICAgYXNzZXJ0LnRocm93KGZ1bmN0aW9uKCkgewotICAgICAgc3ViVmlldy5zZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICB9LCAnTm90IGltcGxlbWVudGVkIScpOwotCi0gICAgYXNzZXJ0LnRocm93KGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHZpZXdTZWxlY3Rpb24gPSBzdWJWaWV3LnNlbGVjdGlvbjsKLSAgICB9LCAnTm90IGltcGxlbWVudGVkIScpOwotCi0gICAgc3ViVmlldy50YWJMYWJlbCA9ICdUYWIgTGFiZWwnOwotICAgIGFzc2VydC5lcXVhbChzdWJWaWV3LmdldEF0dHJpYnV0ZSgndGFiLWxhYmVsJyksICdUYWIgTGFiZWwnKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViVmlldy50YWJMYWJlbCwgJ1RhYiBMYWJlbCcpOwotCi0gICAgc3ViVmlldy50YWJMYWJlbCA9ICdOZXcgTGFiZWwnOwotICAgIGFzc2VydC5lcXVhbChzdWJWaWV3LmdldEF0dHJpYnV0ZSgndGFiLWxhYmVsJyksICdOZXcgTGFiZWwnKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViVmlldy50YWJMYWJlbCwgJ05ldyBMYWJlbCcpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTlmNWMwMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjU1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcG9seW1lcl91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy90YWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLQotPCEtLSBTdWIgVmlld3MuIC0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2NwdV9zbGljZV9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbCI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9mbG93X2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9pbnN0YW5jZV9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X3NuYXBzaG90X3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX29iamVjdF9zdWJfdmlldy5odG1sIj4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3Lmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIKLSAgICBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiCi0gICAgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXcuaHRtbCI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IgotICAgIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9mcmFtZV9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IgotICAgIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2ZyYW1lX3N1Yl92aWV3Lmh0bWwiPgotCi08bGluayByZWw9ImltcG9ydCIKLSAgICBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IgotICAgIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIKLSAgICBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sIj4KLQotPCEtLQotQGZpbGVvdmVydmlldyBBIGNvbXBvbmVudCB1c2VkIHRvIGRpc3BsYXkgYW4gYW5hbHlzaXMgb2YgYSBzZWxlY3Rpb24sCi11c2luZyBjdXN0b20gZWxlbWVudHMgc3BlY2lhbGl6ZWQgZm9yIGRpZmZlcmVudCBldmVudCB0eXBlcy4KLS0tPgotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtYW5hbHlzaXMtdmlldyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgICA6aG9zdCB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgICBoZWlnaHQ6IDI3NXB4OwotICAgICAgICBvdmVyZmxvdzogYXV0bzsKLSAgICAgIH0KLQotICAgICAgOmhvc3QoLnRhbGwtbW9kZSkgewotICAgICAgICBoZWlnaHQ6IDUyNXB4OwotICAgICAgfQotCi0gICAgICA6OmNvbnRlbnQgPiAqIHsKLSAgICAgICAgZmxleDogMSAwIGF1dG87Ci0gICAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8Y29udGVudD48L2NvbnRlbnQ+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLSAgKGZ1bmN0aW9uKCkgewotICAgIHZhciBFdmVudFJlZ2lzdHJ5ID0gdHIubW9kZWwuRXZlbnRSZWdpc3RyeTsKLQotICAgIFBvbHltZXIoewotICAgICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnRhYlZpZXdfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAgICd0cmFjaW5nLWFuYWx5c2lzLXRhYi12aWV3Jyk7Ci0gICAgICAgIHRoaXMudGFiVmlld18uc3R5bGUuZmxleCA9ICcxIDEgYXV0byc7Ci0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy50YWJWaWV3Xyk7Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8gPSB1bmRlZmluZWQ7Ci0gICAgICAgIHRoaXMub25TZWxlY3RlZFRhYkNoYW5nZV8gPSB0aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfLmJpbmQodGhpcyk7Ci0gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyA9IHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpOwotCi0gICAgICAgIHRoaXMubGFzdFNlZW5TZWxlY3Rpb25fID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICB9LAotCi0gICAgICBzZXQgdGFsbE1vZGUodmFsdWUpIHsKLSAgICAgICAgaWYgKHZhbHVlKQotICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndGFsbC1tb2RlJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICB0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ3RhbGwtbW9kZScpOwotICAgICAgfSwKLQotICAgICAgZ2V0IHRhbGxNb2RlKCkgewotICAgICAgICByZXR1cm4gdGhpcy5jbGFzc0xpc3QuY29udGFpbnMoJ3RhbGwtbW9kZScpOwotICAgICAgfSwKLQotICAgICAgZ2V0IHRhYlZpZXcoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnRhYlZpZXdfOwotICAgICAgfSwKLQotICAgICAgZ2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfOwotICAgICAgfSwKLQotICAgICAgc2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcikgewotICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Db250cm9sbGVyKSB7Ci0gICAgICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5yZW1vdmVFdmVudExpc3RlbmVyKAotICAgICAgICAgICAgICAnY2hhbmdlJywgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfID0gc2VsZWN0aW9uQ29udHJvbGxlcjsKLSAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcikgewotICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAgICAgJ2NoYW5nZScsIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKCk7Ci0gICAgICB9LAotCi0gICAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5zZWxlY3Rpb247Ci0gICAgICB9LAotCi0gICAgICBvblNlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLnNlbGVjdGlvbjsKLQotICAgICAgICB2YXIgc2VsZWN0aW9uSGFzU2FtZVZhbHVlID0gdGhpcy5sYXN0U2VlblNlbGVjdGlvbl8uZXF1YWxzKHNlbGVjdGlvbik7Ci0gICAgICAgIHRoaXMubGFzdFNlZW5TZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotICAgICAgICBpZiAoc2VsZWN0aW9uSGFzU2FtZVZhbHVlKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgbGFzdFNlbGVjdGVkVGFiVGFnTmFtZTsKLSAgICAgICAgdmFyIGxhc3RTZWxlY3RlZFRhYlR5cGVOYW1lOwotICAgICAgICBpZiAodGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYikgewotICAgICAgICAgIGxhc3RTZWxlY3RlZFRhYlRhZ05hbWUgPSB0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiLnRhZ05hbWU7Ci0gICAgICAgICAgbGFzdFNlbGVjdGVkVGFiVHlwZU5hbWUgPSB0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiLl9ldmVudFR5cGVOYW1lOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy50YWxsTW9kZSA9IGZhbHNlOwotCi0gICAgICAgIHZhciBwcmV2aW91c2x5U2VsZWN0ZWRUYWIgPSB0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiOwotICAgICAgICB0aGlzLnRhYlZpZXdfLnJlbW92ZUV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnLCB0aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfKTsKLSAgICAgICAgdGhpcy50YWJWaWV3Xy50ZXh0Q29udGVudCA9ICcnOwotICAgICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAgICAgdGhpcy50YWJWaWV3Xy50YWJTdHJpcEhlYWRpbmdUZXh0ID0gJ05vdGhpbmcgc2VsZWN0ZWQuIFRhcCBzdHVmZi4nOwotICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGlvbi5sZW5ndGggPT0gMSkgewotICAgICAgICAgIHRoaXMudGFiVmlld18udGFiU3RyaXBIZWFkaW5nVGV4dCA9ICcxIGl0ZW0gc2VsZWN0ZWQ6ICc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhpcy50YWJWaWV3Xy50YWJTdHJpcEhlYWRpbmdUZXh0ID0gc2VsZWN0aW9uLmxlbmd0aCArCi0gICAgICAgICAgICAgICcgaXRlbXMgc2VsZWN0ZWQ6ICc7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgZXZlbnRzQnlCYXNlVHlwZU5hbWUgPSBzZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZSh0cnVlKTsKLQotICAgICAgICB2YXIgbnVtQmFzZVR5cGVzVG9BbmFseXplID0gdHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKGV2ZW50c0J5QmFzZVR5cGVOYW1lKTsKLSAgICAgICAgZm9yICh2YXIgZXZlbnRUeXBlTmFtZSBpbiBldmVudHNCeUJhc2VUeXBlTmFtZSkgewotICAgICAgICAgIHZhciBzdWJTZWxlY3Rpb24gPSBldmVudHNCeUJhc2VUeXBlTmFtZVtldmVudFR5cGVOYW1lXTsKLSAgICAgICAgICB2YXIgc3ViVmlldyA9IHRoaXMuY3JlYXRlU3ViVmlld0ZvclNlbGVjdGlvbl8oCi0gICAgICAgICAgICBldmVudFR5cGVOYW1lLCBzdWJTZWxlY3Rpb24pOwotICAgICAgICAgIC8vIFN0b3JlIHRoZSBldmVudFR5cGVOYW1lIGZvciBmdXR1cmUgdGFiIHJlc3RvcmF0aW9uLgotICAgICAgICAgIHN1YlZpZXcuX2V2ZW50VHlwZU5hbWUgPSBldmVudFR5cGVOYW1lOwotICAgICAgICAgIHRoaXMudGFiVmlld18uYXBwZW5kQ2hpbGQoc3ViVmlldyk7Ci0KLSAgICAgICAgICBzdWJWaWV3LnNlbGVjdGlvbiA9IHN1YlNlbGVjdGlvbjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJlc3RvcmUgdGhlIHRhYiB0eXBlIHRoYXQgd2FzIHByZXZpb3VzbHkgc2VsZWN0ZWQuIEZpcnN0IHRyeSBieSB0YWcKLSAgICAgICAgLy8gbmFtZS4KLSAgICAgICAgdmFyIHRhYjsKLSAgICAgICAgaWYgKGxhc3RTZWxlY3RlZFRhYlRhZ05hbWUpCi0gICAgICAgICAgdGFiID0gdGhpcy50YWJWaWV3Xy5xdWVyeVNlbGVjdG9yKGxhc3RTZWxlY3RlZFRhYlRhZ05hbWUpOwotCi0gICAgICAgIC8vIElmIHRoYXQgZmFpbHMsIGxvb2sgZm9yIGEgdGFiIHdpdGggdGhhdCB0eXBlTmFtZS4KLSAgICAgICAgaWYgKCF0YWIgJiYgbGFzdFNlbGVjdGVkVGFiVHlwZU5hbWUpIHsKLSAgICAgICAgICB2YXIgdGFiID0gdHIuYi5maW5kRmlyc3RJbkFycmF5KAotICAgICAgICAgICAgICB0aGlzLnRhYlZpZXdfLmNoaWxkcmVuLCBmdW5jdGlvbih0YWIpIHsKLSAgICAgICAgICAgIHJldHVybiB0YWIuX2V2ZW50VHlwZU5hbWUgPT09IGxhc3RTZWxlY3RlZFRhYlR5cGVOYW1lOwotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIC8vIElmIGFsbCBlbHNlIGZhaWxzLCBwaWNrIHRoZSBmaXJzdCB0YWIuCi0gICAgICAgIGlmICghdGFiKQotICAgICAgICAgIHRhYiA9IHRoaXMudGFiVmlld18uZmlyc3RDaGlsZDsKLQotICAgICAgICB0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiID0gdGFiOwotICAgICAgICBpZiAodGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYiAhPT0gcHJldmlvdXNseVNlbGVjdGVkVGFiKQotICAgICAgICAgIHRoaXMub25TZWxlY3RlZFRhYkNoYW5nZV8oKTsKLQotICAgICAgICB0aGlzLnRhYlZpZXdfLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnLCB0aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfKTsKLSAgICAgIH0sCi0KLSAgICAgIGNyZWF0ZVN1YlZpZXdGb3JTZWxlY3Rpb25fOiBmdW5jdGlvbihldmVudFR5cGVOYW1lLCBzdWJTZWxlY3Rpb24pIHsKLSAgICAgICAgLy8gRmluZC4KLSAgICAgICAgdmFyIGV2ZW50VHlwZUluZm8gPSBFdmVudFJlZ2lzdHJ5LmdldEV2ZW50VHlwZUluZm9CeVR5cGVOYW1lKAotICAgICAgICAgICAgZXZlbnRUeXBlTmFtZSk7Ci0gICAgICAgIHZhciBzaW5nbGVNb2RlID0gc3ViU2VsZWN0aW9uLmxlbmd0aCA9PSAxOwotICAgICAgICB2YXIgdGFnTmFtZTsKLSAgICAgICAgaWYgKHN1YlNlbGVjdGlvbi5sZW5ndGggPT09IDEpCi0gICAgICAgICAgdGFnTmFtZSA9IGV2ZW50VHlwZUluZm8ubWV0YWRhdGEuc2luZ2xlVmlld0VsZW1lbnROYW1lOwotICAgICAgICBlbHNlCi0gICAgICAgICAgdGFnTmFtZSA9IGV2ZW50VHlwZUluZm8ubWV0YWRhdGEubXVsdGlWaWV3RWxlbWVudE5hbWU7Ci0KLSAgICAgICAgaWYgKCF0ci5iLmdldFBvbHltZXJFbGVtZW50TmFtZWQodGFnTmFtZSkpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50IG5vdCByZWdpc3RlcmVkOiAnICsgdGFnTmFtZSk7Ci0KLSAgICAgICAgLy8gQ3JlYXRlLgotICAgICAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7Ci0KLSAgICAgICAgLy8gU2V0IGxhYmVsLgotICAgICAgICB2YXIgY2FtZWxMYWJlbDsKLSAgICAgICAgaWYgKHN1YlNlbGVjdGlvbi5sZW5ndGggPT09IDEpCi0gICAgICAgICAgY2FtZWxMYWJlbCA9IEV2ZW50UmVnaXN0cnkuZ2V0VXNlckZyaWVuZGx5U2luZ3VsYXJOYW1lKGV2ZW50VHlwZU5hbWUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgY2FtZWxMYWJlbCA9IEV2ZW50UmVnaXN0cnkuZ2V0VXNlckZyaWVuZGx5UGx1cmFsTmFtZShldmVudFR5cGVOYW1lKTsKLSAgICAgICAgc3ViVmlldy50YWJMYWJlbCA9IGNhbWVsTGFiZWwgKyAnICgnICsgc3ViU2VsZWN0aW9uLmxlbmd0aCArICcpJzsKLQotICAgICAgICByZXR1cm4gc3ViVmlldzsKLSAgICAgIH0sCi0KLSAgICAgIG9uU2VsZWN0ZWRUYWJDaGFuZ2VfOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfOwotICAgICAgICBpZiAodGhpcy50YWJWaWV3Xy5zZWxlY3RlZFRhYikgewotICAgICAgICAgIHZhciBzZWxlY3RlZFRhYiA9IHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWI7Ci0gICAgICAgICAgdGhpcy50YWxsTW9kZSA9IHNlbGVjdGVkVGFiLnJlcXVpcmVzVGFsbFZpZXc7Ci0gICAgICAgICAgaWYgKHNlbGVjdGlvbkNvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIHZhciBybHRoID0gc2VsZWN0ZWRUYWIucmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0OwotICAgICAgICAgICAgc2VsZWN0aW9uQ29udHJvbGxlci5jaGFuZ2VBbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKHJsdGgpOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aGlzLnRhbGxNb2RlID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKHNlbGVjdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgICAgICBzZWxlY3Rpb25Db250cm9sbGVyLmNoYW5nZUFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHModW5kZWZpbmVkKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0pOwotICB9KSgpOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGU3ZGUzLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9hbmFseXNpc192aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9jb3VudGVyX3NhbXBsZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2NvdW50ZXJfc2FtcGxlX3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3MWU3MjguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2NvdW50ZXJfc2FtcGxlX3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3Jlc3VsdHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2FtcGxlLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0gIChmdW5jdGlvbigpIHsKLSAgICB2YXIgQ291bnRlclNhbXBsZSA9IHRyLm1vZGVsLkNvdW50ZXJTYW1wbGU7Ci0KLSAgICBQb2x5bWVyKHsKLSAgICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOwotICAgICAgfSwKLQotICAgICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87Ci0gICAgICB9LAotCi0gICAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgICB2YXIgcmVzdWx0cyA9IG5ldyB0ci5jLmFuYWx5c2lzLkFuYWx5c2lzUmVzdWx0cygpOwotICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHJlc3VsdHMpOwotICAgICAgICB0aGlzLmFuYWx5emVDb3VudGVyU2FtcGxlc18ocmVzdWx0cywgc2VsZWN0aW9uKTsKLSAgICAgIH0sCi0KLSAgICAgIGFuYWx5emVDb3VudGVyU2FtcGxlc186IGZ1bmN0aW9uKHJlc3VsdHMsIGFsbFNhbXBsZXMpIHsKLSAgICAgICAgdmFyIHNhbXBsZXNCeUNvdW50ZXIgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxTYW1wbGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGN0ciA9IGFsbFNhbXBsZXNbaV0uc2VyaWVzLmNvdW50ZXI7Ci0gICAgICAgICAgaWYgKCFzYW1wbGVzQnlDb3VudGVyW2N0ci5ndWlkXSkKLSAgICAgICAgICAgIHNhbXBsZXNCeUNvdW50ZXJbY3RyLmd1aWRdID0gW107Ci0gICAgICAgICAgc2FtcGxlc0J5Q291bnRlcltjdHIuZ3VpZF0ucHVzaChhbGxTYW1wbGVzW2ldKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAodmFyIGd1aWQgaW4gc2FtcGxlc0J5Q291bnRlcikgewotICAgICAgICAgIHZhciBzYW1wbGVzID0gc2FtcGxlc0J5Q291bnRlcltndWlkXTsKLSAgICAgICAgICB2YXIgY3RyID0gc2FtcGxlc1swXS5zZXJpZXMuY291bnRlcjsKLQotICAgICAgICAgIHZhciB0aW1lc3RhbXBHcm91cHMgPSBDb3VudGVyU2FtcGxlLmdyb3VwQnlUaW1lc3RhbXAoc2FtcGxlcyk7Ci0gICAgICAgICAgaWYgKHRpbWVzdGFtcEdyb3Vwcy5sZW5ndGggPT0gMSkKLSAgICAgICAgICAgIHRoaXMuYW5hbHl6ZVNpbmdsZUNvdW50ZXJUaW1lc3RhbXBfKHJlc3VsdHMsIGN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcEdyb3Vwc1swXSk7Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5hbmFseXplTXVsdGlwbGVDb3VudGVyVGltZXN0YW1wc18ocmVzdWx0cywgY3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wR3JvdXBzKTsKLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAgYW5hbHl6ZVNpbmdsZUNvdW50ZXJUaW1lc3RhbXBfOiBmdW5jdGlvbigKLSAgICAgICAgICByZXN1bHRzLCBjdHIsIHNhbXBsZXNXaXRoU2FtZVRpbWVzdGFtcCkgewotICAgICAgICByZXN1bHRzLmFwcGVuZEhlYWRlcignU2VsZWN0ZWQgY291bnRlcjonKTsKLSAgICAgICAgdmFyIHRhYmxlID0gcmVzdWx0cy5hcHBlbmRUYWJsZSgnYW5hbHlzaXMtY291bnRlci10YWJsZScsIDIpOwotICAgICAgICByZXN1bHRzLmFwcGVuZEluZm9Sb3codGFibGUsICdUaXRsZScsIGN0ci5uYW1lKTsKLSAgICAgICAgcmVzdWx0cy5hcHBlbmRJbmZvUm93VGltZSgKLSAgICAgICAgICAgIHRhYmxlLCAnVGltZXN0YW1wJywgc2FtcGxlc1dpdGhTYW1lVGltZXN0YW1wWzBdLnRpbWVzdGFtcCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2FtcGxlc1dpdGhTYW1lVGltZXN0YW1wLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHNhbXBsZSA9IHNhbXBsZXNXaXRoU2FtZVRpbWVzdGFtcFtpXTsKLSAgICAgICAgICByZXN1bHRzLmFwcGVuZEluZm9Sb3codGFibGUsIHNhbXBsZS5zZXJpZXMubmFtZSwgc2FtcGxlLnZhbHVlKTsKLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAgYW5hbHl6ZU11bHRpcGxlQ291bnRlclRpbWVzdGFtcHNfOiBmdW5jdGlvbihyZXN1bHRzLCBjdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVzQnlUaW1lc3RhbXApIHsKLSAgICAgICAgcmVzdWx0cy5hcHBlbmRIZWFkZXIoJ0NvdW50ZXIgJyArIGN0ci5uYW1lKTsKLSAgICAgICAgdmFyIHRhYmxlID0gcmVzdWx0cy5hcHBlbmRUYWJsZSgnYW5hbHlzaXMtY291bnRlci10YWJsZScsIDIpOwotCi0gICAgICAgIHZhciBzYW1wbGVJbmRpY2VzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2FtcGxlc0J5VGltZXN0YW1wLmxlbmd0aDsgaSsrKQotICAgICAgICAgIHNhbXBsZUluZGljZXMucHVzaChzYW1wbGVzQnlUaW1lc3RhbXBbaV1bMF0uZ2V0U2FtcGxlSW5kZXgoKSk7Ci0KLSAgICAgICAgdmFyIHN0YXRzID0gY3RyLmdldFNhbXBsZVN0YXRpc3RpY3Moc2FtcGxlSW5kaWNlcyk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhdHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgc2FtcGxlcyA9IFtdOwotICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgc2FtcGxlSW5kaWNlcy5sZW5ndGg7ICsraykKLSAgICAgICAgICAgIHNhbXBsZXMucHVzaChjdHIuZ2V0U2VyaWVzKGkpLmdldFNhbXBsZShzYW1wbGVJbmRpY2VzW2tdKS52YWx1ZSk7Ci0KLSAgICAgICAgICByZXN1bHRzLmFwcGVuZERhdGFSb3coCi0gICAgICAgICAgICAgIHRhYmxlLAotICAgICAgICAgICAgICBjdHIubmFtZSArICc6IHNlcmllcygnICsgY3RyLmdldFNlcmllcyhpKS5uYW1lICsgJyknLAotICAgICAgICAgICAgICBzYW1wbGVzLAotICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgICBzYW1wbGVzLmxlbmd0aCwKLSAgICAgICAgICAgICAgbnVsbCwKLSAgICAgICAgICAgICAgc3RhdHNbaV0pOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSk7Ci0gIH0pKCk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2NvdW50ZXJfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE4MjlmZi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zdHViX2FuYWx5c2lzX3Jlc3VsdHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIENvdW50ZXIgPSB0ci5tb2RlbC5Db3VudGVyOwotICB2YXIgQ291bnRlclNlcmllcyA9IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXM7Ci0KLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgU3R1YkFuYWx5c2lzUmVzdWx0cyA9IHRyLmMuYW5hbHlzaXMuU3R1YkFuYWx5c2lzUmVzdWx0czsKLQotICBmdW5jdGlvbiBjcmVhdGVTZXJpZXMoY3RyKSB7Ci0gICAgdmFyIGFsbG9jYXRlZFNlcmllcyA9IG5ldyBDb3VudGVyU2VyaWVzKCdieXRlc2FsbG9jYXRlZCcsIDApOwotICAgIHZhciBmcmVlU2VyaWVzID0gbmV3IENvdW50ZXJTZXJpZXMoJ2J5dGVzZnJlZScsIDEpOwotCi0gICAgY3RyLmFkZFNlcmllcyhhbGxvY2F0ZWRTZXJpZXMpOwotICAgIGN0ci5hZGRTZXJpZXMoZnJlZVNlcmllcyk7Ci0KLSAgICBhbGxvY2F0ZWRTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCAwKTsKLSAgICBhbGxvY2F0ZWRTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgxMCwgMjUpOwotICAgIGFsbG9jYXRlZFNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDIwLCAxMCk7Ci0KLSAgICBmcmVlU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMCwgMTUpOwotICAgIGZyZWVTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgxMCwgMjApOwotICAgIGZyZWVTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgyMCwgNSk7Ci0gIH0KLQotICB2YXIgY3JlYXRlU2VsZWN0aW9uV2l0aFR3b1Nlcmllc1NpbmdsZUNvdW50ZXIgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgY3RyID0gbmV3IENvdW50ZXIobnVsbCwgMCwgJ2ZvbycsICdjdHJbMF0nKTsKLSAgICBjcmVhdGVTZXJpZXMoY3RyKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgdmFyIHQxdHJhY2sgPSB7fTsKLQotICAgIHNlbGVjdGlvbi5wdXNoKGN0ci5nZXRTZXJpZXMoMCkuc2FtcGxlc1sxXSk7Ci0gICAgc2VsZWN0aW9uLnB1c2goY3RyLmdldFNlcmllcygxKS5zYW1wbGVzWzFdKTsKLSAgICByZXR1cm4gc2VsZWN0aW9uOwotICB9OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX3NpbmdsZUNvdW50ZXJXaXRoVHdvU2VyaWVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbiA9IGNyZWF0ZVNlbGVjdGlvbldpdGhUd29TZXJpZXNTaW5nbGVDb3VudGVyKCk7Ci0KLSAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKLSAgfSk7Ci0KLSAgdmFyIGNyZWF0ZVNlbGVjdGlvbldpdGhUd29TZXJpZXNUd29Db3VudGVycyA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBjdHIxID0gbmV3IENvdW50ZXIobnVsbCwgMCwgJycsICdjdHIxJyk7Ci0gICAgY3JlYXRlU2VyaWVzKGN0cjEpOwotCi0gICAgdmFyIGN0cjIgPSBuZXcgQ291bnRlcihudWxsLCAwLCAnJywgJ2N0cjInKTsKLSAgICBjcmVhdGVTZXJpZXMoY3RyMik7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHZhciB0MXRyYWNrID0ge307Ci0KLSAgICBzZWxlY3Rpb24ucHVzaChjdHIxLmdldFNlcmllcygwKS5zYW1wbGVzWzFdKTsKLSAgICBzZWxlY3Rpb24ucHVzaChjdHIxLmdldFNlcmllcygxKS5zYW1wbGVzWzFdKTsKLQotCi0gICAgc2VsZWN0aW9uLnB1c2goY3RyMi5nZXRTZXJpZXMoMCkuc2FtcGxlc1syXSk7Ci0gICAgc2VsZWN0aW9uLnB1c2goY3RyMi5nZXRTZXJpZXMoMSkuc2FtcGxlc1syXSk7Ci0gICAgcmV0dXJuIHNlbGVjdGlvbjsKLSAgfTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV90d29Db3VudGVyc1dpdGhUd29TZXJpZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uV2l0aFR3b1Nlcmllc1R3b0NvdW50ZXJzKCk7Ci0KLSAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhTaW5nbGVDb3VudGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGN0ciA9IG5ldyBDb3VudGVyKG51bGwsIDAsICcnLCAnY3RyJyk7Ci0gICAgdmFyIHNlcmllcyA9IG5ldyBDb3VudGVyU2VyaWVzKCd2YWx1ZScsIDApOwotICAgIGN0ci5hZGRTZXJpZXMoc2VyaWVzKTsKLQotICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDApOwotICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDEwLCAxMCk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHZhciB0MXRyYWNrID0ge307Ci0gICAgc2VsZWN0aW9uLnB1c2goY3RyLmdldFNlcmllcygwKS5zYW1wbGVzWzFdKTsKLQotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3Jyk7Ci0gICAgdmFyIHJlc3VsdHMgPSBuZXcgU3R1YkFuYWx5c2lzUmVzdWx0cygpOwotICAgIHZpZXcuYW5hbHl6ZUNvdW50ZXJTYW1wbGVzXyhyZXN1bHRzLCBzZWxlY3Rpb24pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMudGFibGVzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMuaGVhZGVyc1swXS5sYWJlbCwgJ1NlbGVjdGVkIGNvdW50ZXI6Jyk7Ci0gICAgdmFyIHRhYmxlID0gcmVzdWx0cy50YWJsZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnJvd3MubGVuZ3RoLCAzKTsKLQotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5yb3dzWzBdLmxhYmVsLCAnVGl0bGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUucm93c1sxXS5sYWJlbCwgJ1RpbWVzdGFtcCcpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS5yb3dzWzJdLmxhYmVsLCAndmFsdWUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUucm93c1syXS50ZXh0LCAxMCk7Ci0gIH0pOwotCi0gIGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdGlvbldpdGhUd29Db3VudGVyc0RpZmZTZXJpZXNEaWZmRXZlbnRzKCkgewotICAgIHZhciBjdHIxID0gbmV3IENvdW50ZXIobnVsbCwgMCwgJycsICdhJyk7Ci0gICAgdmFyIGN0cjFBbGxvY2F0ZWRTZXJpZXMgPSBuZXcgQ291bnRlclNlcmllcygnYnl0ZXNhbGxvY2F0ZWQnLCAwKTsKLSAgICBjdHIxLmFkZFNlcmllcyhjdHIxQWxsb2NhdGVkU2VyaWVzKTsKLQotICAgIGN0cjFBbGxvY2F0ZWRTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCAwKTsKLSAgICBjdHIxQWxsb2NhdGVkU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMTAsIDI1KTsKLSAgICBjdHIxQWxsb2NhdGVkU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMjAsIDE1KTsKLQotICAgIGFzc2VydC5lcXVhbChjdHIxLm5hbWUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0cjEubnVtU2FtcGxlcywgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0cjEubnVtU2VyaWVzLCAxKTsKLQotICAgIHZhciBjdHIyID0gbmV3IENvdW50ZXIobnVsbCwgMCwgJycsICdiJyk7Ci0gICAgdmFyIGN0cjJBbGxvY2F0ZWRTZXJpZXMgPSBuZXcgQ291bnRlclNlcmllcygnYnl0ZXNhbGxvY2F0ZWQnLCAwKTsKLSAgICB2YXIgY3RyMkZyZWVTZXJpZXMgPSBuZXcgQ291bnRlclNlcmllcygnYnl0ZXNmcmVlJywgMSk7Ci0KLSAgICBjdHIyLmFkZFNlcmllcyhjdHIyQWxsb2NhdGVkU2VyaWVzKTsKLSAgICBjdHIyLmFkZFNlcmllcyhjdHIyRnJlZVNlcmllcyk7Ci0KLSAgICBjdHIyQWxsb2NhdGVkU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMCwgMCk7Ci0gICAgY3RyMkFsbG9jYXRlZFNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDEwLCAyNSk7Ci0gICAgY3RyMkFsbG9jYXRlZFNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDIwLCAxMCk7Ci0gICAgY3RyMkFsbG9jYXRlZFNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDMwLCAxNSk7Ci0KLSAgICBjdHIyRnJlZVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDIwKTsKLSAgICBjdHIyRnJlZVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDEwLCA1KTsKLSAgICBjdHIyRnJlZVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDIwLCAyNSk7Ci0gICAgY3RyMkZyZWVTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgzMCwgMCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoY3RyMi5uYW1lLCAnYicpOwotICAgIGFzc2VydC5lcXVhbChjdHIyLm51bVNhbXBsZXMsIDQpOwotICAgIGFzc2VydC5lcXVhbChjdHIyLm51bVNlcmllcywgMik7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHZhciB0MXRyYWNrID0ge307Ci0gICAgdmFyIHQydHJhY2sgPSB7fTsKLQotICAgIHNlbGVjdGlvbi5wdXNoKGN0cjFBbGxvY2F0ZWRTZXJpZXMuc2FtcGxlc1sxXSk7Ci0gICAgc2VsZWN0aW9uLnB1c2goY3RyMkFsbG9jYXRlZFNlcmllcy5zYW1wbGVzWzJdKTsKLSAgICBzZWxlY3Rpb24ucHVzaChjdHIyRnJlZVNlcmllcy5zYW1wbGVzWzJdKTsKLQotICAgIHJldHVybiBzZWxlY3Rpb247Ci0gIH07Ci0KLSAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhDb21wbGV4U2VyaWVzVHdvQ291bnRlcnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uV2l0aFR3b0NvdW50ZXJzRGlmZlNlcmllc0RpZmZFdmVudHMoKTsKLQotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3Jyk7Ci0gICAgdmFyIHJlc3VsdHMgPSBuZXcgU3R1YkFuYWx5c2lzUmVzdWx0cygpOwotICAgIHZpZXcuYW5hbHl6ZUNvdW50ZXJTYW1wbGVzXyhyZXN1bHRzLCBzZWxlY3Rpb24pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMudGFibGVzLmxlbmd0aCwgMik7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk4ZDIyNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvZmxvd19jbGFzc2lmaWVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci0KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKLSAgdmFyIEZMT1dfSU4gPSAweDE7Ci0gIHZhciBGTE9XX09VVCA9IDB4MjsKLSAgdmFyIEZMT1dfSU5fT1VUID0gRkxPV19JTiB8IEZMT1dfT1VUOwotCi0gIGZ1bmN0aW9uIEZsb3dDbGFzc2lmaWVyKCkgewotICAgIHRoaXMubnVtRXZlbnRzXyA9IDA7Ci0gICAgdGhpcy5ldmVudHNCeUdVSURfID0ge307Ci0gIH0KLQotICBGbG93Q2xhc3NpZmllci5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0RlNfOiBmdW5jdGlvbihldmVudCkgewotICAgICAgdmFyIGZzID0gdGhpcy5ldmVudHNCeUdVSURfW2V2ZW50Lmd1aWRdOwotICAgICAgaWYgKGZzID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5udW1FdmVudHNfKys7Ci0gICAgICAgIGZzID0gewotICAgICAgICAgIHN0YXRlOiAwLAotICAgICAgICAgIGV2ZW50OiBldmVudAotICAgICAgICB9OwotICAgICAgICB0aGlzLmV2ZW50c0J5R1VJRF9bZXZlbnQuZ3VpZF0gPSBmczsKLSAgICAgIH0KLSAgICAgIHJldHVybiBmczsKLSAgICB9LAotCi0gICAgYWRkSW5GbG93OiBmdW5jdGlvbihldmVudCkgewotICAgICAgdmFyIGZzID0gdGhpcy5nZXRGU18oZXZlbnQpOwotICAgICAgZnMuc3RhdGUgfD0gRkxPV19JTjsKLSAgICAgIHJldHVybiBldmVudDsKLSAgICB9LAotCi0gICAgYWRkT3V0RmxvdzogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHZhciBmcyA9IHRoaXMuZ2V0RlNfKGV2ZW50KTsKLSAgICAgIGZzLnN0YXRlIHw9IEZMT1dfT1VUOwotICAgICAgcmV0dXJuIGV2ZW50OwotICAgIH0sCi0KLSAgICBoYXNFdmVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMubnVtRXZlbnRzXyA+IDA7Ci0gICAgfSwKLQotICAgIGdldCBpbkZsb3dFdmVudHMoKSB7Ci0gICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICBmb3IgKHZhciBndWlkIGluIHRoaXMuZXZlbnRzQnlHVUlEXykgewotICAgICAgICB2YXIgZnMgPSB0aGlzLmV2ZW50c0J5R1VJRF9bZ3VpZF07Ci0gICAgICAgIGlmIChmcy5zdGF0ZSA9PT0gRkxPV19JTikKLSAgICAgICAgICBzZWxlY3Rpb24ucHVzaChmcy5ldmVudCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gc2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBnZXQgb3V0Rmxvd0V2ZW50cygpIHsKLSAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgIGZvciAodmFyIGd1aWQgaW4gdGhpcy5ldmVudHNCeUdVSURfKSB7Ci0gICAgICAgIHZhciBmcyA9IHRoaXMuZXZlbnRzQnlHVUlEX1tndWlkXTsKLSAgICAgICAgaWYgKGZzLnN0YXRlID09PSBGTE9XX09VVCkKLSAgICAgICAgICBzZWxlY3Rpb24ucHVzaChmcy5ldmVudCk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gc2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBnZXQgaW50ZXJuYWxGbG93RXZlbnRzKCkgewotICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgZm9yICh2YXIgZ3VpZCBpbiB0aGlzLmV2ZW50c0J5R1VJRF8pIHsKLSAgICAgICAgdmFyIGZzID0gdGhpcy5ldmVudHNCeUdVSURfW2d1aWRdOwotICAgICAgICBpZiAoZnMuc3RhdGUgPT09IEZMT1dfSU5fT1VUKQotICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKGZzLmV2ZW50KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBzZWxlY3Rpb247Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgRmxvd0NsYXNzaWZpZXI6IEZsb3dDbGFzc2lmaWVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvZmxvd19jbGFzc2lmaWVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmY2YyMDZjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXJfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld0Zsb3dFdmVudEV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld0Zsb3dFdmVudEV4OwotCi0gIHRlc3QoJ2Jhc2ljJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSBuZXdGbG93RXZlbnRFeCh7Ci0gICAgICAgICd0aXRsZSc6ICdhJywgc3RhcnQ6IDAsIGVuZDogMTAgfSk7Ci0gICAgdmFyIGIgPSBuZXdGbG93RXZlbnRFeCh7Ci0gICAgICAgICd0aXRsZSc6ICdiJywgc3RhcnQ6IDEwLCBlbmQ6IDIwIH0pOwotICAgIHZhciBjID0gbmV3Rmxvd0V2ZW50RXgoewotICAgICAgICAndGl0bGUnOiAnYycsIHN0YXJ0OiAyMCwgZW5kOiAyNSB9KTsKLSAgICB2YXIgZCA9IG5ld0Zsb3dFdmVudEV4KHsKLSAgICAgICAgJ3RpdGxlJzogJ2QnLCBzdGFydDogMzAsIGVuZDogMzUgfSk7Ci0KLSAgICB2YXIgZmMgPSBuZXcgdHIuYy5hbmFseXNpcy5GbG93Q2xhc3NpZmllcigpOwotICAgIGZjLmFkZEluRmxvdyhhKTsKLQotICAgIGZjLmFkZEluRmxvdyhiKTsKLSAgICBmYy5hZGRPdXRGbG93KGIpOwotCi0gICAgZmMuYWRkSW5GbG93KGMpOwotICAgIGZjLmFkZE91dEZsb3coYyk7Ci0KLSAgICBmYy5hZGRPdXRGbG93KGQpOwotCi0gICAgZnVuY3Rpb24gYXNTb3J0ZWRBcnJheShzZWxlY3Rpb24pIHsKLSAgICAgIHZhciBldmVudHMgPSB0ci5iLmFzQXJyYXkoc2VsZWN0aW9uKTsKLSAgICAgIGV2ZW50cy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgcmV0dXJuIGEuZ3VpZCAtIGIuZ3VpZDsKLSAgICAgIH0pOwotICAgICAgcmV0dXJuIGV2ZW50czsKLSAgICB9Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKGFzU29ydGVkQXJyYXkoZmMuaW5GbG93RXZlbnRzKSwgW2FdKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGFzU29ydGVkQXJyYXkoZmMub3V0Rmxvd0V2ZW50cyksIFtkXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChhc1NvcnRlZEFycmF5KGZjLmludGVybmFsRmxvd0V2ZW50cyksIFtiLCBjXSk7Ci0gIH0pOwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmOWNiMDguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3NpemVfaW5fYnl0ZXMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy9zaXplX2luX2J5dGVzX3NwYW4uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXciCi0gICAgaXM9IkhUTUxVbmtub3duRWxlbWVudCI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgotICAgIDwvZGl2PgotICA8L3RlbXBsYXRlPgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBmdW5jdGlvbiBpc1RhYmxlKG9iamVjdCkgewotICAgIGlmICghKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB8fAotICAgICAgICAob2JqZWN0Lmxlbmd0aCA8IDIpKSByZXR1cm4gZmFsc2U7Ci0gICAgZm9yICh2YXIgY29sTmFtZSBpbiBvYmplY3RbMF0pIHsKLSAgICAgIGlmICh0eXBlb2YgY29sTmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyArK2kpIHsKLSAgICAgIGlmICghKG9iamVjdFtpXSBpbnN0YW5jZW9mIE9iamVjdCkpIHJldHVybiBmYWxzZTsKLSAgICAgIGZvciAodmFyIGNvbE5hbWUgaW4gb2JqZWN0W2ldKSB7Ci0gICAgICAgIGlmIChpICYmIChvYmplY3RbMF1bY29sTmFtZV0gPT09IHVuZGVmaW5lZCkpIHJldHVybiBmYWxzZTsKLSAgICAgICAgdmFyIGNlbGxUeXBlID0gdHlwZW9mIG9iamVjdFtpXVtjb2xOYW1lXTsKLSAgICAgICAgaWYgKGNlbGxUeXBlICE9PSAnc3RyaW5nJyAmJiBjZWxsVHlwZSAhPSAnbnVtYmVyJykgcmV0dXJuIGZhbHNlOwotICAgICAgfQotICAgICAgaWYgKGkpIHsKLSAgICAgICAgZm9yICh2YXIgY29sTmFtZSBpbiBvYmplY3RbMF0pIHsKLSAgICAgICAgICBpZiAob2JqZWN0W2ldW2NvbE5hbWVdID09PSB1bmRlZmluZWQpIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMub2JqZWN0XyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IG9iamVjdCgpIHsKLSAgICAgIHJldHVybiB0aGlzLm9iamVjdF87Ci0gICAgfSwKLQotICAgIHNldCBvYmplY3Qob2JqZWN0KSB7Ci0gICAgICB0aGlzLm9iamVjdF8gPSBvYmplY3Q7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgIHRoaXMuYXBwZW5kRWxlbWVudHNGb3JUeXBlXygnJywgdGhpcy5vYmplY3RfLCAwLCAwLCA1LCAnJyk7Ci0gICAgfSwKLQotICAgIGFwcGVuZEVsZW1lbnRzRm9yVHlwZV86IGZ1bmN0aW9uKAotICAgICAgICBsYWJlbCwgb2JqZWN0LCBpbmRlbnQsIGRlcHRoLCBtYXhEZXB0aCwgc3VmZml4KSB7Ci0gICAgICBpZiAoZGVwdGggPiBtYXhEZXB0aCkgewotICAgICAgICB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKAotICAgICAgICAgICAgbGFiZWwsIGluZGVudCwgJzxyZWN1cnNpb24gbGltaXQgcmVhY2hlZD4nLCBzdWZmaXgpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlmIChvYmplY3QgPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLCBpbmRlbnQsICd1bmRlZmluZWQnLCBzdWZmaXgpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlmIChvYmplY3QgPT09IG51bGwpIHsKLSAgICAgICAgdGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCwgaW5kZW50LCAnbnVsbCcsIHN1ZmZpeCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSkgewotICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiBvYmplY3Q7Ci0gICAgICAgIGlmICh0eXBlID09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgdmFyIG9iamVjdFJlcGxhY2VkID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKChvYmplY3RbMF0gPT0gJ3snICYmIG9iamVjdFtvYmplY3QubGVuZ3RoIC0gMV0gPT0gJ30nKSB8fAotICAgICAgICAgICAgICAob2JqZWN0WzBdID09ICdbJyAmJiBvYmplY3Rbb2JqZWN0Lmxlbmd0aCAtIDFdID09ICddJykpIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIG9iamVjdCA9IEpTT04ucGFyc2Uob2JqZWN0KTsKLSAgICAgICAgICAgICAgb2JqZWN0UmVwbGFjZWQgPSB0cnVlOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIW9iamVjdFJlcGxhY2VkKSB7Ci0gICAgICAgICAgICBpZiAob2JqZWN0LmluZGV4T2YoJ1xuJykgIT09IC0xKSB7Ci0gICAgICAgICAgICAgIHZhciBsaW5lcyA9IG9iamVjdC5zcGxpdCgnXG4nKTsKLSAgICAgICAgICAgICAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHRleHQsIGlvZmYsIGxsLCBzczsKLSAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICB0ZXh0ID0gJyInICsgbGluZTsKLSAgICAgICAgICAgICAgICAgIGlvZmYgPSAwOwotICAgICAgICAgICAgICAgICAgbGwgPSBsYWJlbDsKLSAgICAgICAgICAgICAgICAgIHNzID0gJyc7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgbGluZXMubGVuZ3RoIC0gMSkgewotICAgICAgICAgICAgICAgICAgdGV4dCA9IGxpbmU7Ci0gICAgICAgICAgICAgICAgICBpb2ZmID0gMTsKLSAgICAgICAgICAgICAgICAgIGxsID0gJyc7Ci0gICAgICAgICAgICAgICAgICBzcyA9ICcnOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICB0ZXh0ID0gbGluZSArICciJzsKLSAgICAgICAgICAgICAgICAgIGlvZmYgPSAxOwotICAgICAgICAgICAgICAgICAgbGwgPSAnJzsKLSAgICAgICAgICAgICAgICAgIHNzID0gc3VmZml4OwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHZhciBlbCA9IHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8oCi0gICAgICAgICAgICAgICAgICAgIGxsLCBpbmRlbnQgKyBpb2ZmICogbGFiZWwubGVuZ3RoICsgaW9mZiwgdGV4dCwgc3MpOwotICAgICAgICAgICAgICAgIGVsLnN0eWxlLndoaXRlU3BhY2UgPSAncHJlJzsKLSAgICAgICAgICAgICAgICByZXR1cm4gZWw7Ci0gICAgICAgICAgICAgIH0sIHRoaXMpOwotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKAotICAgICAgICAgICAgICAgICAgbGFiZWwsIGluZGVudCwgJyInICsgb2JqZWN0ICsgJyInLCBzdWZmaXgpOwotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgLyogRmFsbCB0aHJvdWdoIHRvIHRoZSBmbG93IGJlbG93ICovCi0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJldHVybiB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLCBpbmRlbnQsIG9iamVjdCwgc3VmZml4KTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpIHsKLSAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpOwotICAgICAgICBsaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbihvYmplY3QpOwotICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfKGxhYmVsLCBpbmRlbnQsIGxpbmssIHN1ZmZpeCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdEluc3RhbmNlKSB7Ci0gICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgICAgbGluay5zZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24ob2JqZWN0KTsKLSAgICAgICAgdGhpcy5hcHBlbmRFbGVtZW50V2l0aExhYmVsXyhsYWJlbCwgaW5kZW50LCBsaW5rLCBzdWZmaXgpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiB0ci5iLlJlY3QpIHsKLSAgICAgICAgdGhpcy5hcHBlbmRTaW1wbGVUZXh0XyhsYWJlbCwgaW5kZW50LCBvYmplY3QudG9TdHJpbmcoKSwgc3VmZml4KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgdHIuYi51bml0cy5TaXplSW5CeXRlcykgewotICAgICAgICB2YXIgZWwgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11LXNpemUtaW4tYnl0ZXMtc3BhbicpOwotICAgICAgICBlbC5udW1CeXRlcyA9IG9iamVjdC5udW1CeXRlczsKLSAgICAgICAgdGhpcy5hcHBlbmRFbGVtZW50V2l0aExhYmVsXyhsYWJlbCwgaW5kZW50LCBlbCwgc3VmZml4KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgdHIuYi51bml0cy5UaW1lRHVyYXRpb24pIHsKLSAgICAgICAgdmFyIGVsID0gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKLSAgICAgICAgZWwuZHVyYXRpb24gPSBvYmplY3QuZHVyYXRpb247Ci0gICAgICAgIHRoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsIGluZGVudCwgZWwsIHN1ZmZpeCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuVGltZVN0YW1wKSB7Ci0gICAgICAgIHZhciBlbCA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXUtdGltZS1zdGFtcC1zcGFuJyk7Ci0gICAgICAgIGVsLnRpbWVzdGFtcCA9IG9iamVjdC50aW1lc3RhbXA7Ci0gICAgICAgIHRoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsIGluZGVudCwgZWwsIHN1ZmZpeCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB7Ci0gICAgICAgIHRoaXMuYXBwZW5kRWxlbWVudHNGb3JBcnJheV8oCi0gICAgICAgICAgICBsYWJlbCwgb2JqZWN0LCBpbmRlbnQsIGRlcHRoLCBtYXhEZXB0aCwgc3VmZml4KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0aGlzLmFwcGVuZEVsZW1lbnRzRm9yT2JqZWN0XygKLSAgICAgICAgICBsYWJlbCwgb2JqZWN0LCBpbmRlbnQsIGRlcHRoLCBtYXhEZXB0aCwgc3VmZml4KTsKLSAgICB9LAotCi0gICAgYXBwZW5kRWxlbWVudHNGb3JBcnJheV86IGZ1bmN0aW9uKAotICAgICAgICBsYWJlbCwgb2JqZWN0LCBpbmRlbnQsIGRlcHRoLCBtYXhEZXB0aCwgc3VmZml4KSB7Ci0gICAgICBpZiAob2JqZWN0Lmxlbmd0aCA9PSAwKSB7Ci0gICAgICAgIHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGFiZWwsIGluZGVudCwgJ1tdJywgc3VmZml4KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAoaXNUYWJsZShvYmplY3QpKSB7Ci0gICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktdGFibGUnKTsKLSAgICAgICAgdmFyIGNvbHVtbnMgPSBbXTsKLSAgICAgICAgdHIuYi5pdGVySXRlbXMob2JqZWN0WzBdLCBmdW5jdGlvbihjb2xOYW1lKSB7Ci0gICAgICAgICAgY29sdW1ucy5wdXNoKHt0aXRsZTogY29sTmFtZSwgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHJvd1tjb2xOYW1lXTsKLSAgICAgICAgICB9fSk7Ci0gICAgICAgIH0pOwotICAgICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSBvYmplY3Q7Ci0gICAgICAgIHRoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsIGluZGVudCwgdGFibGUsIHN1ZmZpeCk7Ci0gICAgICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0aGlzLmFwcGVuZEVsZW1lbnRzRm9yVHlwZV8oCi0gICAgICAgICAgbGFiZWwgKyAnWycsCi0gICAgICAgICAgb2JqZWN0WzBdLAotICAgICAgICAgIGluZGVudCwgZGVwdGggKyAxLCBtYXhEZXB0aCwKLSAgICAgICAgICBvYmplY3QubGVuZ3RoID4gMSA/ICcsJyA6ICddJyArIHN1ZmZpeCk7Ci0gICAgICBmb3IgKHZhciBpID0gMTsgaSA8IG9iamVjdC5sZW5ndGg7IGkrKykgewotICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRzRm9yVHlwZV8oCi0gICAgICAgICAgICAnJywKLSAgICAgICAgICAgIG9iamVjdFtpXSwKLSAgICAgICAgICAgIGluZGVudCArIGxhYmVsLmxlbmd0aCArIDEsIGRlcHRoICsgMSwgbWF4RGVwdGgsCi0gICAgICAgICAgICBpIDwgb2JqZWN0Lmxlbmd0aCAtIDEgPyAnLCcgOiAnXScgKyBzdWZmaXgpOwotICAgICAgfQotICAgICAgcmV0dXJuOwotICAgIH0sCi0KLSAgICBhcHBlbmRFbGVtZW50c0Zvck9iamVjdF86IGZ1bmN0aW9uKAotICAgICAgICBsYWJlbCwgb2JqZWN0LCBpbmRlbnQsIGRlcHRoLCBtYXhEZXB0aCwgc3VmZml4KSB7Ci0gICAgICB2YXIga2V5cyA9IHRyLmIuZGljdGlvbmFyeUtleXMob2JqZWN0KTsKLSAgICAgIGlmIChrZXlzLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAgIHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGFiZWwsIGluZGVudCwgJ3t9Jywgc3VmZml4KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0aGlzLmFwcGVuZEVsZW1lbnRzRm9yVHlwZV8oCi0gICAgICAgICAgbGFiZWwgKyAneycgKyBrZXlzWzBdICsgJzogJywKLSAgICAgICAgICBvYmplY3Rba2V5c1swXV0sCi0gICAgICAgICAgaW5kZW50LCBkZXB0aCwgbWF4RGVwdGgsCi0gICAgICAgICAga2V5cy5sZW5ndGggPiAxID8gJywnIDogJ30nICsgc3VmZml4KTsKLSAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewotICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRzRm9yVHlwZV8oCi0gICAgICAgICAgICBrZXlzW2ldICsgJzogJywKLSAgICAgICAgICAgIG9iamVjdFtrZXlzW2ldXSwKLSAgICAgICAgICAgIGluZGVudCArIGxhYmVsLmxlbmd0aCArIDEsIGRlcHRoICsgMSwgbWF4RGVwdGgsCi0gICAgICAgICAgICBpIDwga2V5cy5sZW5ndGggLSAxID8gJywnIDogJ30nICsgc3VmZml4KTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgYXBwZW5kRWxlbWVudFdpdGhMYWJlbF86IGZ1bmN0aW9uKGxhYmVsLCBpbmRlbnQsIGRhdGFFbGVtZW50LCBzdWZmaXgpIHsKLSAgICAgIHZhciByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgICAgdmFyIGluZGVudFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgICBpbmRlbnRTcGFuLnN0eWxlLndoaXRlU3BhY2UgPSAncHJlJzsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5kZW50OyBpKyspCi0gICAgICAgIGluZGVudFNwYW4udGV4dENvbnRlbnQgKz0gJyAnOwotICAgICAgcm93LmFwcGVuZENoaWxkKGluZGVudFNwYW4pOwotCi0gICAgICB2YXIgbGFiZWxTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAgbGFiZWxTcGFuLnRleHRDb250ZW50ID0gbGFiZWw7Ci0gICAgICByb3cuYXBwZW5kQ2hpbGQobGFiZWxTcGFuKTsKLQotICAgICAgcm93LmFwcGVuZENoaWxkKGRhdGFFbGVtZW50KTsKLSAgICAgIHZhciBzdWZmaXhTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAgc3VmZml4U3Bhbi50ZXh0Q29udGVudCA9IHN1ZmZpeDsKLSAgICAgIHJvdy5hcHBlbmRDaGlsZChzdWZmaXhTcGFuKTsKLQotICAgICAgcm93LmRhdGFFbGVtZW50ID0gZGF0YUVsZW1lbnQ7Ci0gICAgICB0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChyb3cpOwotICAgIH0sCi0KLSAgICBhcHBlbmRTaW1wbGVUZXh0XzogZnVuY3Rpb24obGFiZWwsIGluZGVudCwgdGV4dCwgc3VmZml4KSB7Ci0gICAgICB2YXIgZWwgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAgZWwudGV4dENvbnRlbnQgPSB0ZXh0OwotICAgICAgdGhpcy5hcHBlbmRFbGVtZW50V2l0aExhYmVsXyhsYWJlbCwgaW5kZW50LCBlbCwgc3VmZml4KTsKLSAgICAgIHJldHVybiBlbDsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3LXdpdGgtbGFiZWwiCi0gICAgaXM9IkhUTUxVbmtub3duRWxlbWVudCI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubGFiZWxFbF8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgIHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfID0KLSAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMubGFiZWxFbF8pOwotICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfKTsKLSAgICB9LAotCi0gICAgZ2V0IGxhYmVsKCkgewotICAgICAgcmV0dXJuIHRoaXMubGFiZWxFbF8udGV4dENvbnRlbnQ7Ci0gICAgfSwKLQotICAgIHNldCBsYWJlbChsYWJlbCkgewotICAgICAgdGhpcy5sYWJlbEVsXy50ZXh0Q29udGVudCA9IGxhYmVsOwotICAgIH0sCi0KLSAgICBnZXQgb2JqZWN0KCkgewotICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfLm9iamVjdDsKLSAgICB9LAotCi0gICAgc2V0IG9iamVjdChvYmplY3QpIHsKLSAgICAgIHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfLm9iamVjdCA9IG9iamVjdDsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDY3N2FhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvb2JqZWN0X2luc3RhbmNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgdGVzdCgndW5kZWZpbmVkVmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgdmlldy5vYmplY3QgPSB1bmRlZmluZWQ7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LnRleHRDb250ZW50LCAndW5kZWZpbmVkJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ251bGxWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICB2aWV3Lm9iamVjdCA9IG51bGw7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LnRleHRDb250ZW50LCAnbnVsbCcpOwotICB9KTsKLQotICB0ZXN0KCdzdHJpbmdWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICB2aWV3Lm9iamVjdCA9ICdzdHJpbmcgdmFsdWUnOwotICAgIGFzc2VydC5lcXVhbCh2aWV3LiQuY29udGVudC50ZXh0Q29udGVudCwgJyJzdHJpbmcgdmFsdWUiJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ211bHRpTGluZVN0cmluZ1ZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgIHZpZXcub2JqZWN0ID0gJ2kgYW0gYVxuICBzdHJpbmcgdmFsdWVcbmkgaGF2ZVxuICB2YXJpb3VzIGluZGVudHMnOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgICB2YXIgYyA9IHZpZXcuJC5jb250ZW50OwotICB9KTsKLQotICB0ZXN0KCdtdWx0aUxpbmVTdHJpbmdWYWx1ZUluc2lkZU9iamVjdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICB2aWV3Lm9iamVjdCA9IHtrZXk6ICdpIGFtIGFcbiAgc3RyaW5nIHZhbHVlXG5pIGhhdmVcbiAgdmFyaW91cyBpbmRlbnRzJywKLSAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3NpbXBsZSd9OwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgICB2YXIgYyA9IHZpZXcuJC5jb250ZW50OwotCi0gIH0pOwotCi0gIHRlc3QoJ2pzb25PYmplY3RTdHJpbmdWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICB2aWV3Lm9iamVjdCA9ICd7IngiOiAxfSc7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LmNoaWxkcmVuLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCwgNCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2pzb25BcnJheVN0cmluZ1ZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgIHZpZXcub2JqZWN0ID0gJ1sxLDIsM10nOwotICAgIGFzc2VydC5lcXVhbCh2aWV3LiQuY29udGVudC5jaGlsZHJlbi5sZW5ndGgsIDMpOwotICB9KTsKLQotICB0ZXN0KCdib29sZWFuVmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgdmlldy5vYmplY3QgPSBmYWxzZTsKLSAgICBhc3NlcnQuZXF1YWwodmlldy4kLmNvbnRlbnQudGV4dENvbnRlbnQsICdmYWxzZScpOwotICB9KTsKLQotICB0ZXN0KCdudW1iZXJWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICB2aWV3Lm9iamVjdCA9IDMuMTQxNTk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LnRleHRDb250ZW50LCAnMy4xNDE1OScpOwotICB9KTsKLQotICB0ZXN0KCdvYmplY3RTbmFwc2hvdFZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotCi0gICAgdmFyIGkxMCA9IG5ldyB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSgKLSAgICAgICAge30sICcweDEwMDAnLCAnY2F0JywgJ25hbWUnLCAxMCk7Ci0gICAgdmFyIHMxMCA9IGkxMC5hZGRTbmFwc2hvdCgxMCwge2ZvbzogMX0pOwotCi0gICAgdmlldy5vYmplY3QgPSBzMTA7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbCh2aWV3LiQuY29udGVudC5jaGlsZHJlblswXS5kYXRhRWxlbWVudC50YWdOYW1lLAotICAgICAgICAnVFItQy1BLUFOQUxZU0lTLUxJTksnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnb2JqZWN0SW5zdGFuY2VWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLQotICAgIHZhciBpMTAgPSBuZXcgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UoCi0gICAgICAgIHt9LCAnMHgxMDAwJywgJ2NhdCcsICduYW1lJywgMTApOwotICAgIHZhciBzMTAgPSBpMTAuYWRkU25hcHNob3QoMTAsIHtmb286IDF9KTsKLQotICAgIHZpZXcub2JqZWN0ID0gaTEwOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbCh2aWV3LiQuY29udGVudC5jaGlsZHJlblswXS5kYXRhRWxlbWVudC50YWdOYW1lLAotICAgICAgICAnVFItQy1BLUFOQUxZU0lTLUxJTksnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfZW1wdHlBcnJheVZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgIHZpZXcub2JqZWN0ID0gW107Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV90d29WYWx1ZUFycmF5VmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgdmlldy5vYmplY3QgPSBbMSwgMl07Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV90d29WYWx1ZUJBcnJheVZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgIHZpZXcub2JqZWN0ID0gWzEsIHt4OiAxfV07Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9hcnJheVZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgIHZpZXcub2JqZWN0ID0gWzEsIDIsICd0aHJlZSddOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfYXJyYXlXaXRoU2ltcGxlT2JqZWN0VmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgdmlldy5vYmplY3QgPSBbe3NpbXBsZTogJ29iamVjdCd9XTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2FycmF5V2l0aENvbXBsZXhPYmplY3RWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICB2aWV3Lm9iamVjdCA9IFt7Y29sMDogJ29iamVjdCcsIGNvbDE6IDB9LAotICAgICAgICAgICAgICAgICAgIHtjb2wyOiAnT2JqZWN0JywgY29sMzogMX1dOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgICBhc3NlcnQuZXF1YWwodW5kZWZpbmVkLCB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgdmlldy4kLmNvbnRlbnQsICd0YWJsZScpKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfYXJyYXlXaXRoRGVlcE9iamVjdFZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgIHZpZXcub2JqZWN0ID0gW3trZXk6IHtkZWVwOiAnb2JqZWN0IHZhbHVlcyBtYWtlIGlzVGFibGUoKSByZXR1cm4gZmFsc2UnfX1dOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgICBhc3NlcnQuZXF1YWwodW5kZWZpbmVkLCB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgdmlldy4kLmNvbnRlbnQsICd0YWJsZScpKTsKLSAgfSk7Ci0KLSAgdGVzdCgnanNvblRhYmxlVmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgdmlldy5vYmplY3QgPSBbe2NvbDA6ICdvYmplY3QnLCBjb2wxOiAwfSwge2NvbDA6ICdPYmplY3QnLCBjb2wxOiAxfV07Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICAgIHZhciB0YWJsZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCi0gICAgICAgIHZpZXcuJC5jb250ZW50LCAndHItYi11aS10YWJsZScpOwotICAgIGFzc2VydC5lcXVhbCgnY29sMCcsIHRhYmxlLnRhYmxlQ29sdW1uc1swXS50aXRsZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKCdjb2wxJywgdGFibGUudGFibGVDb2x1bW5zWzFdLnRpdGxlKTsKLSAgICBhc3NlcnQuZXF1YWwoJ29iamVjdCcsIHRhYmxlLnRhYmxlQ29sdW1uc1swXS52YWx1ZSh0YWJsZS50YWJsZVJvd3NbMF0pKTsKLSAgICBhc3NlcnQuZXF1YWwoJ09iamVjdCcsIHRhYmxlLnRhYmxlQ29sdW1uc1swXS52YWx1ZSh0YWJsZS50YWJsZVJvd3NbMV0pKTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgdGFibGUudGFibGVDb2x1bW5zWzFdLnZhbHVlKHRhYmxlLnRhYmxlUm93c1swXSkpOwotICAgIGFzc2VydC5lcXVhbCgxLCB0YWJsZS50YWJsZUNvbHVtbnNbMV0udmFsdWUodGFibGUudGFibGVSb3dzWzFdKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX29iamVjdFZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOwotICAgIHZpZXcub2JqZWN0ID0gewotICAgICAgJ2VudHJ5X29uZSc6ICdlbnRyeV9vbmVfdmFsdWUnLAotICAgICAgJ2VudHJ5X3R3byc6IDIsCi0gICAgICAnZW50cnlfdGhyZWUnOiBbMywgNCwgNV0KLSAgICB9OwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgfSk7Ci0KLSAgdGVzdCgndGltZUR1cmF0aW9uVmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgdmlldy5vYmplY3QgPSBuZXcgdHIuYi51bml0cy5UaW1lRHVyYXRpb24oMyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgdmlldy4kLmNvbnRlbnQsICd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJykpOwotICB9KTsKLQotICB0ZXN0KCd0aW1lU3RhbXBWYWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICB2aWV3Lm9iamVjdCA9IG5ldyB0ci5iLnVuaXRzLlRpbWVTdGFtcCgzKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCi0gICAgICB2aWV3LiQuY29udGVudCwgJ3RyLWItdS10aW1lLXN0YW1wLXNwYW4nKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NpemVJbkJ5dGVzVmFsdWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgdmlldy5vYmplY3QgPSBuZXcgdHIuYi51bml0cy5TaXplSW5CeXRlcygzKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCi0gICAgICB2aWV3LiQuY29udGVudCwgJ3RyLWItdS1zaXplLWluLWJ5dGVzLXNwYW4nKSk7Ci0gIH0pOwotCi0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfYWxsb2NhdG9yX2RldGFpbHNfcGFuZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX2FsbG9jYXRvcl9kZXRhaWxzX3BhbmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTgwNjRjYi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfYWxsb2NhdG9yX2RldGFpbHNfcGFuZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS90YWJsZS5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbWVtb3J5LWR1bXAtYWxsb2NhdG9yLWRldGFpbHMtcGFuZSI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgICA6aG9zdCB7Ci0gICAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICB9Ci0KLSAgICAgICNsYWJlbCB7Ci0gICAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgICAgICBwYWRkaW5nOiA4cHg7Ci0KLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKLSAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4ZThlOGU7Ci0gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTsKLQotICAgICAgICBmb250LXNpemU6ICAxNXB4OwotICAgICAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICAgIH0KLQotICAgICAgI2NvbnRlbnRzIHsKLSAgICAgICAgZmxleDogMSAwIGF1dG87Ci0gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7Ci0gICAgICAgIGZvbnQtc2l6ZTogMTJweDsKLSAgICAgIH0KLQotICAgICAgI2NvbnRlbnRzIC5pbmZvLXRleHQgewotICAgICAgICBwYWRkaW5nOiA4cHg7Ci0gICAgICAgIGNvbG9yOiAjNjY2OwotICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7Ci0gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxkaXYgaWQ9ImxhYmVsIj5BbGxvY2F0b3IgZGV0YWlsczwvZGl2PgotICAgIDxkaXYgaWQ9ImNvbnRlbnRzIj48L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIChmdW5jdGlvbigpIHsKLSAgICB2YXIgSU1QT1JUQU5DRV9SVUxFUyA9IFsKLSAgICAgIHsKLSAgICAgICAgY29uZGl0aW9uOiAnc2l6ZScsCi0gICAgICAgIGltcG9ydGFuY2U6IDEwCi0gICAgICB9LAotICAgICAgewotICAgICAgICBjb25kaXRpb246ICdvdXRlcl9zaXplJywKLSAgICAgICAgaW1wb3J0YW5jZTogOQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgY29uZGl0aW9uOiAncGFnZV9zaXplJywKLSAgICAgICAgaW1wb3J0YW5jZTogMAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgY29uZGl0aW9uOiAvc2l6ZS8sCi0gICAgICAgIGltcG9ydGFuY2U6IDUKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGltcG9ydGFuY2U6IDAKLSAgICAgIH0KLSAgICBdOwotCi0gICAgUG9seW1lcih7Ci0gICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBDb25zaWRlciBzaGFyaW5nIG1vcmUgY29kZSBiZXR3ZWVuCi0gICAgICAvLyB0ci1jLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZSBhbmQKLSAgICAgIC8vIHRyLWMtYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lIChlLmcuIGJ5IGRlZmluaW5nIGEgY29tbW9uCi0gICAgICAvLyBiYXNlIGNsYXNzIHRyLWMtbWVtb3J5LWR1bXAtcGFuZSkuCi0KLSAgICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfID0gdW5kZWZpbmVkOwotICAgICAgfSwKLQotICAgICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgfSwKLQotICAgICAgc2V0IG1lbW9yeUFsbG9jYXRvckR1bXAobWVtb3J5QWxsb2NhdG9yRHVtcCkgewotICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfID0gbWVtb3J5QWxsb2NhdG9yRHVtcDsKLSAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBtZW1vcnlBbGxvY2F0b3JEdW1wKCkgewotICAgICAgICByZXR1cm4gdGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wXzsKLSAgICAgIH0sCi0KLSAgICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMuJC5jb250ZW50cy50ZXh0Q29udGVudCA9ICcnOwotCi0gICAgICAgIGlmICh0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICB2YXIgaW5mb1RleHQgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgICAgdGhpcy4kLmNvbnRlbnRzLmFwcGVuZENoaWxkKGluZm9UZXh0KTsKLSAgICAgICAgICBpbmZvVGV4dC5jbGFzc0xpc3QuYWRkKCdpbmZvLXRleHQnKTsKLSAgICAgICAgICBpbmZvVGV4dC5pbm5lclRleHQgPSAnTm8gbWVtb3J5IGFsbG9jYXRvciBkdW1wIHNlbGVjdGVkJzsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlUm93c18oKTsKLSAgICAgICAgdmFyIGNvbHVtbnMgPSB0aGlzLmNyZWF0ZUNvbHVtbnNfKHJvd3MpOwotCi0gICAgICAgIHZhciB0YWJsZSA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICAgJ3RyLWItdWktdGFibGUnKTsKLSAgICAgICAgdGhpcy4kLmNvbnRlbnRzLmFwcGVuZENoaWxkKHRhYmxlKTsKLSAgICAgICAgdGFibGUuc3VwcG9ydHNTZWxlY3Rpb24gPSB0cnVlOwotICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOwotICAgICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgICAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0gICAgICAgIHRyLmMuYW5hbHlzaXMuZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHkodGFibGUpOwotICAgICAgfSwKLQotICAgICAgY3JlYXRlUm93c186IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY3JlYXRlQWxsb2NhdG9yUm93ID0gZnVuY3Rpb24oYWxsb2NhdG9yRHVtcCkgewotICAgICAgICAgIHZhciBjZWxscyA9IHRyLmIubWFwSXRlbXMoYWxsb2NhdG9yRHVtcC5hdHRyaWJ1dGVzLAotICAgICAgICAgICAgICBmdW5jdGlvbihhdHRyTmFtZSwgYXR0clZhbHVlKSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q2VsbChhdHRyVmFsdWUpOwotICAgICAgICAgIH0pOwotICAgICAgICAgIHZhciByb3cgPSB7Ci0gICAgICAgICAgICB0aXRsZTogYWxsb2NhdG9yRHVtcC5uYW1lLAotICAgICAgICAgICAgY2VsbHM6IGNlbGxzCi0gICAgICAgICAgfTsKLSAgICAgICAgICBpZiAoYWxsb2NhdG9yRHVtcC5jaGlsZHJlbi5sZW5ndGggPiAwKQotICAgICAgICAgICAgcm93LnN1YlJvd3MgPSBhbGxvY2F0b3JEdW1wLmNoaWxkcmVuLm1hcChjcmVhdGVBbGxvY2F0b3JSb3cpOwotICAgICAgICAgIHJldHVybiByb3c7Ci0gICAgICAgIH07Ci0gICAgICAgIHZhciByb3dzID0gW2NyZWF0ZUFsbG9jYXRvclJvdyh0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfKV07Ci0gICAgICAgIHJldHVybiByb3dzOwotICAgICAgfSwKLQotICAgICAgY3JlYXRlQ29sdW1uc186IGZ1bmN0aW9uKHJvd3MpIHsKLSAgICAgICAgdmFyIHRpdGxlQ29sdW1uID0gewotICAgICAgICAgIHRpdGxlOiAnQWxsb2NhdG9yJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93LnRpdGxlOwotICAgICAgICAgIH0sCi0gICAgICAgICAgd2lkdGg6ICcyMDBweCcsCi0gICAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93QS50aXRsZS5sb2NhbGVDb21wYXJlKHJvd0IudGl0bGUpOwotICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICB2YXIgYXR0cmlidXRlQ29sdW1ucyA9IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLmZyb21Sb3dzKAotICAgICAgICAgICAgcm93cywgJ2NlbGxzJyk7Ci0gICAgICAgIHRyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShhdHRyaWJ1dGVDb2x1bW5zKTsKLSAgICAgICAgdHIuYy5hbmFseXNpcy5NZW1vcnlDb2x1bW4uc29ydEJ5SW1wb3J0YW5jZSgKLSAgICAgICAgICAgIGF0dHJpYnV0ZUNvbHVtbnMsIElNUE9SVEFOQ0VfUlVMRVMpOwotCi0gICAgICAgIHZhciBjb2x1bW5zID0gW3RpdGxlQ29sdW1uXS5jb25jYXQoYXR0cmlidXRlQ29sdW1ucyk7Ci0gICAgICAgIHJldHVybiBjb2x1bW5zOwotICAgICAgfQotICAgIH0pOwotICB9KSgpOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX2FsbG9jYXRvcl9kZXRhaWxzX3BhbmVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX2FsbG9jYXRvcl9kZXRhaWxzX3BhbmVfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzc2YWI2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9hbGxvY2F0b3JfZGV0YWlsc19wYW5lX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZGVlcF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IgotICAgIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX2FsbG9jYXRvcl9kZXRhaWxzX3BhbmUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXR0cmlidXRlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb250YWluZXJfbWVtb3J5X2R1bXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIE1lbW9yeUFsbG9jYXRvckR1bXAgPSB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wOwotICB2YXIgQ29udGFpbmVyTWVtb3J5RHVtcCA9IHRyLm1vZGVsLkNvbnRhaW5lck1lbW9yeUR1bXA7Ci0gIHZhciBTY2FsYXJBdHRyaWJ1dGUgPSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGU7Ci0KLSAgZnVuY3Rpb24gY3JlYXRlTWVtb3J5QWxsb2NhdG9yRHVtcCgpIHsKLSAgICB2YXIgbWVtb3J5RHVtcCA9IG5ldyBDb250YWluZXJNZW1vcnlEdW1wKC0xMCk7Ci0gICAgdmFyIGR1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChtZW1vcnlEdW1wLCAndjgnKTsKLSAgICBkdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsCi0gICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTA3Mzc0MTgyNCkgLyogMSBHaUIgKi8pOwotICAgIGR1bXAuYWRkQXR0cmlidXRlKCdpbm5lcl9zaXplJywKLSAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAyMDk3MTUyKSAvKiAyIE1pQiAqLyk7Ci0gICAgZHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgMjA0KSk7Ci0gICAgcmV0dXJuIGR1bXA7Ci0gIH0KLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9lbXB0eScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAndHItYy1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUnKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfbm9uRW1wdHknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbWVtb3J5QWxsb2NhdG9yRHVtcCA9IGNyZWF0ZU1lbW9yeUFsbG9jYXRvckR1bXAoKTsKLQotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAndHItYy1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUnKTsKLSAgICB2aWV3RWwubWVtb3J5QWxsb2NhdG9yRHVtcCA9IG1lbW9yeUFsbG9jYXRvckR1bXA7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0KLSAgICB2YXIgdGFibGUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1iLXVpLXRhYmxlJyk7Ci0KLSAgICB2YXIgcm93cyA9IHRhYmxlLnRhYmxlUm93czsKLSAgICB2YXIgY29sdW1ucyA9IHRhYmxlLnRhYmxlQ29sdW1uczsKLSAgICBhc3NlcnQubGVuZ3RoT2Yocm93cywgMSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGNvbHVtbnMsIDQpOwotCi0gICAgdmFyIHRpdGxlQ29sdW1uID0gY29sdW1uc1swXTsKLSAgICB2YXIgb3V0ZXJTaXplQ29sdW1uID0gY29sdW1uc1sxXTsKLSAgICB2YXIgaW5uZXJTaXplQ29sdW1uID0gY29sdW1uc1syXTsKLSAgICB2YXIgb2JqZWN0c0NvdW50Q29sdW1uID0gY29sdW1uc1szXTsKLQotICAgIC8vIENoZWNrIHRoZSByb3dzIG9mIHRoZSB0YWJsZS4KLSAgICBhc3NlcnQuZXF1YWwodGl0bGVDb2x1bW4udmFsdWUocm93c1swXSksICd2OCcpOwotICAgIGFzc2VydC5lcXVhbChpbm5lclNpemVDb2x1bW4udmFsdWUocm93c1swXSkubnVtQnl0ZXMsIDIwOTcxNTIpOwotICAgIGFzc2VydC5lcXVhbChvYmplY3RzQ291bnRDb2x1bW4udmFsdWUocm93c1swXSksIDIwNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG91dGVyU2l6ZUNvbHVtbi52YWx1ZShyb3dzWzBdKS5udW1CeXRlcywgMTA3Mzc0MTgyNCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9vdmVydmlld19wYW5lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfb3ZlcnZpZXdfcGFuZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmQ1NzBlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9vdmVydmlld19wYW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9jb2xvcl9sZWdlbmQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIKLSAgICBocmVmPSIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9hbGxvY2F0b3JfZGV0YWlsc19wYW5lLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiCi0gICAgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy9zaXplX2luX2J5dGVzX3NwYW4uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZSI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgICA6aG9zdCB7Ci0gICAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICB9Ci0KLSAgICAgICNsYWJlbCB7Ci0gICAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgICAgICBwYWRkaW5nOiA4cHg7Ci0KLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKLSAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4ZThlOGU7Ci0gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTsKLQotICAgICAgICBmb250LXNpemU6ICAxNXB4OwotICAgICAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICAgIH0KLQotICAgICAgI3RhYmxlIHsKLSAgICAgICAgZmxleDogMSAwIGF1dG87Ci0gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7Ci0gICAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2IGlkPSJsYWJlbCI+T3ZlcnZpZXc8L2Rpdj4KLSAgICA8dHItYi11aS10YWJsZSBpZD0idGFibGUiPgotICAgIDwvdHItYi11aS10YWJsZT4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIChmdW5jdGlvbigpIHsKLSAgICB2YXIgSU1QT1JUQU5DRV9SVUxFUyA9IFsKLSAgICAgIHsKLSAgICAgICAgY29uZGl0aW9uOiAndHJhY2luZycsCi0gICAgICAgIGltcG9ydGFuY2U6IDAKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGltcG9ydGFuY2U6IDEKLSAgICAgIH0KLSAgICBdOwotCi0gICAgUG9seW1lcih7Ci0gICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBDb25zaWRlciBzaGFyaW5nIG1vcmUgY29kZSBiZXR3ZWVuCi0gICAgICAvLyB0ci1jLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZSBhbmQgdHItYy1tZW1vcnktZHVtcC1wcm9jZXNzIHBhbmUKLSAgICAgIC8vIChlLmcuIGJ5IGRlZmluaW5nIGEgY29tbW9uIGJhc2UgY2xhc3MgdHItYy1tZW1vcnktZHVtcC1wYW5lKS4KLQotICAgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMucHJvY2Vzc01lbW9yeUR1bXBzXyA9IHVuZGVmaW5lZDsKLSAgICAgIH0sCi0KLSAgICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy4kLnRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgdGhpcy4kLnRhYmxlLmNlbGxTZWxlY3Rpb25Nb2RlID0gdHJ1ZTsKLSAgICAgICAgdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbi1jaGFuZ2VkJywKLSAgICAgICAgICAgIGZ1bmN0aW9uKHRhYmxlRXZlbnQpIHsKLSAgICAgICAgICB0YWJsZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICAgIHZhciBwYW5lRXZlbnQgPSBuZXcgRXZlbnQoJ3NlbGVjdGVkLW1lbW9yeS1jZWxsLWNoYW5nZWQnKTsKLSAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQocGFuZUV2ZW50KTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBwcm9jZXNzTWVtb3J5RHVtcHMocHJvY2Vzc01lbW9yeUR1bXBzKSB7Ci0gICAgICAgIHRoaXMucHJvY2Vzc01lbW9yeUR1bXBzXyA9IHByb2Nlc3NNZW1vcnlEdW1wczsKLSAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBwcm9jZXNzTWVtb3J5RHVtcHMoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc187Ci0gICAgICB9LAotCi0gICAgICBnZXQgc2VsZWN0ZWRNZW1vcnlDZWxsKCkgewotICAgICAgICB2YXIgc2VsZWN0ZWRUYWJsZVJvdyA9IHRoaXMuJC50YWJsZS5zZWxlY3RlZFRhYmxlUm93OwotICAgICAgICBpZiAoIXNlbGVjdGVkVGFibGVSb3cpCi0gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgICAgICB2YXIgc2VsZWN0ZWRDb2x1bW5JbmRleCA9IHRoaXMuJC50YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4OwotICAgICAgICBpZiAoc2VsZWN0ZWRDb2x1bW5JbmRleCA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICAgICAgdmFyIHNlbGVjdGVkQ29sdW1uID0gdGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1uc1tzZWxlY3RlZENvbHVtbkluZGV4XTsKLSAgICAgICAgdmFyIHNlbGVjdGVkTWVtb3J5Q2VsbCA9IHNlbGVjdGVkQ29sdW1uLmNlbGwoc2VsZWN0ZWRUYWJsZVJvdyk7Ci0gICAgICAgIHJldHVybiBzZWxlY3RlZE1lbW9yeUNlbGw7Ci0gICAgICB9LAotCi0gICAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXBzID0gdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfIHx8IFtdOwotCi0gICAgICAgIHZhciByb3dzID0gcHJvY2Vzc01lbW9yeUR1bXBzLm1hcChmdW5jdGlvbihwcm9jZXNzTWVtb3J5RHVtcCkgewotICAgICAgICAgIGZ1bmN0aW9uIGJ1aWxkVk1SZWdpb25zUGFuZSgpIHsKLSAgICAgICAgICAgIHZhciBwYW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAgICAgICAgICAgJ3RyLWMtYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScpOwotICAgICAgICAgICAgcGFuZS52bVJlZ2lvbnMgPSBwcm9jZXNzTWVtb3J5RHVtcC5tb3N0UmVjZW50Vm1SZWdpb25zOwotICAgICAgICAgICAgcmV0dXJuIHBhbmU7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gVXNlZCBtZW1vcnkgKHRvdGFsIHJlc2lkZW50LCBQU1MsIC4uLikuCi0gICAgICAgICAgdmFyIHVzZWRNZW1vcnlTaXplcyA9IHt9OwotICAgICAgICAgIHZhciB0b3RhbFJlc2lkZW50ID0gcHJvY2Vzc01lbW9yeUR1bXAudG90YWxSZXNpZGVudEJ5dGVzOwotICAgICAgICAgIGlmICh0b3RhbFJlc2lkZW50ICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q2VsbCgKLSAgICAgICAgICAgICAgICBuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIHRvdGFsUmVzaWRlbnQpKTsKLSAgICAgICAgICAgIGNlbGwuYnVpbGREZXRhaWxzUGFuZSA9IGJ1aWxkVk1SZWdpb25zUGFuZTsKLSAgICAgICAgICAgIHVzZWRNZW1vcnlTaXplc1snVG90YWwgcmVzaWRlbnQnXSA9IGNlbGw7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgZnVuY3Rpb24gYWRkQnl0ZVN0YXRDZWxsKGJ5dGVTdGF0TmFtZSwgY29sdW1uVGl0bGUpIHsKLSAgICAgICAgICAgIHZhciBieXRlU3RhdCA9Ci0gICAgICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUR1bXAuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KGJ5dGVTdGF0TmFtZSk7Ci0gICAgICAgICAgICBpZiAoYnl0ZVN0YXQgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyB0ci5jLmFuYWx5c2lzLk1lbW9yeUNlbGwoCi0gICAgICAgICAgICAgICAgICBuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIGJ5dGVTdGF0KSk7Ci0gICAgICAgICAgICAgIGNlbGwuYnVpbGREZXRhaWxzUGFuZSA9IGJ1aWxkVk1SZWdpb25zUGFuZTsKLSAgICAgICAgICAgICAgdXNlZE1lbW9yeVNpemVzW2NvbHVtblRpdGxlXSA9IGNlbGw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGFkZEJ5dGVTdGF0Q2VsbCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnLCAnUFNTJyk7Ci0gICAgICAgICAgYWRkQnl0ZVN0YXRDZWxsKCdwcml2YXRlRGlydHlSZXNpZGVudCcsICdQcml2YXRlIGRpcnR5Jyk7Ci0gICAgICAgICAgYWRkQnl0ZVN0YXRDZWxsKCdzd2FwcGVkJywgJ1N3YXBwZWQnKTsKLQotICAgICAgICAgIC8vIEFsbG9jYXRvciBtZW1vcnkgKHY4LCBvaWxwYW4sIC4uLikuCi0gICAgICAgICAgdmFyIGFsbG9jYXRvclNpemVzID0ge307Ci0gICAgICAgICAgaWYgKHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLmZvckVhY2goZnVuY3Rpb24oZHVtcCkgewotICAgICAgICAgICAgICB2YXIgYXR0ciA9IGR1bXAuYXR0cmlidXRlc1snc2l6ZSddOwotICAgICAgICAgICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBSZW1vdmUgc3VwcG9ydCBmb3IgdGhlIG9sZCBkZWZhdWx0IGF0dHJpYnV0ZQotICAgICAgICAgICAgICAvLyBuYW1lIG9uY2UgdGhlIGNvcnJlc3BvZGluZyBjaGFuZ2UgbGFuZHMgaW4gQ2hyb21pdW0uCi0gICAgICAgICAgICAgIGlmIChhdHRyID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICAgICAgYXR0ciA9IGR1bXAuYXR0cmlidXRlc1snb3V0ZXJfc2l6ZSddOwotICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyB0ci5jLmFuYWx5c2lzLk1lbW9yeUNlbGwoYXR0cik7Ci0gICAgICAgICAgICAgIGNlbGwuYnVpbGREZXRhaWxzUGFuZSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHZhciBwYW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAgICAgICAgICAgJ3RyLWMtYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lJyk7Ci0gICAgICAgICAgICAgICAgcGFuZS5tZW1vcnlBbGxvY2F0b3JEdW1wID0gZHVtcDsKLSAgICAgICAgICAgICAgICByZXR1cm4gcGFuZTsKLSAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgYWxsb2NhdG9yU2l6ZXNbZHVtcC5mdWxsTmFtZV0gPSBjZWxsOwotICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHRpdGxlOiBwcm9jZXNzTWVtb3J5RHVtcC5wcm9jZXNzLnVzZXJGcmllbmRseU5hbWUsCi0gICAgICAgICAgICB1c2VkTWVtb3J5U2l6ZXM6IHVzZWRNZW1vcnlTaXplcywKLSAgICAgICAgICAgIGFsbG9jYXRvclNpemVzOiBhbGxvY2F0b3JTaXplcwotICAgICAgICAgIH07Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gcm93czsKLQotICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNfKHJvd3MpOwotCi0gICAgICAgIHRoaXMuJC50YWJsZS5yZWJ1aWxkKCk7Ci0gICAgICB9LAotCi0gICAgICB1cGRhdGVDb2x1bW5zXzogZnVuY3Rpb24ocm93cykgewotICAgICAgICB2YXIgdGl0bGVDb2x1bW4gPSB7Ci0gICAgICAgICAgdGl0bGU6ICdQcm9jZXNzJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgICB2YXIgdGl0bGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktY29sb3ItbGVnZW5kJyk7Ci0gICAgICAgICAgICB0aXRsZUVsLmxhYmVsID0gcm93LnRpdGxlOwotICAgICAgICAgICAgcmV0dXJuIHRpdGxlRWw7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3aWR0aDogJzIwMHB4JywKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICAgIHJldHVybiByb3dBLnRpdGxlLmxvY2FsZUNvbXBhcmUocm93Qi50aXRsZSk7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBzdXBwb3J0c0NlbGxTZWxlY3Rpb246IGZhbHNlCi0gICAgICAgIH07Ci0KLSAgICAgICAgdmFyIHVzZWRNZW1vcnlTaXplQ29sdW1ucyA9IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLmZyb21Sb3dzKAotICAgICAgICAgICAgcm93cywgJ3VzZWRNZW1vcnlTaXplcycpOwotICAgICAgICB2YXIgYWxsb2NhdG9yU2l6ZUNvbHVtbnMgPSB0ci5jLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5mcm9tUm93cygKLSAgICAgICAgICAgIHJvd3MsICdhbGxvY2F0b3JTaXplcycsIGZ1bmN0aW9uKGFsbG9jYXRvck5hbWUpIHsKLSAgICAgICAgICB2YXIgdGl0bGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdWktY29sb3ItbGVnZW5kJyk7Ci0gICAgICAgICAgdGl0bGVFbC5sYWJlbCA9IGFsbG9jYXRvck5hbWU7Ci0gICAgICAgICAgcmV0dXJuIHRpdGxlRWw7Ci0gICAgICAgIH0pOwotICAgICAgICB0ci5jLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5zb3J0QnlJbXBvcnRhbmNlKAotICAgICAgICAgICAgYWxsb2NhdG9yU2l6ZUNvbHVtbnMsIElNUE9SVEFOQ0VfUlVMRVMpOwotCi0gICAgICAgIC8vIEdyZXkgdGhlICd0cmFjaW5nJyBjb2x1bW4gb3V0IChpZiBwcmVzZW50KS4KLSAgICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogRmluZCBhIGxlc3MgaGFja3kgd2F5IHRvIGRvIHRoaXMuCi0gICAgICAgIHZhciB0cmFjaW5nQ29sdW1uID0gdHIuYi5maW5kRmlyc3RJbkFycmF5KGFsbG9jYXRvclNpemVDb2x1bW5zLAotICAgICAgICAgICAgZnVuY3Rpb24oY29sdW1uKSB7Ci0gICAgICAgICAgcmV0dXJuIGNvbHVtbi5uYW1lID09PSAndHJhY2luZyc7Ci0gICAgICAgIH0pOwotICAgICAgICBpZiAodHJhY2luZ0NvbHVtbiAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgdmFyIHRpdGxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgICAgICAgdGl0bGVFbC5zdHlsZS5jb2xvciA9ICcjOTk5JzsKLSAgICAgICAgICB0aXRsZUVsLnRleHRDb250ZW50ID0gJ3RyYWNpbmcnOwotICAgICAgICAgIHRyYWNpbmdDb2x1bW4udGl0bGUgPSB0aXRsZUVsOwotCi0gICAgICAgICAgdmFyIG9sZFZhbHVlQ2FsbGJhY2sgPSB0cmFjaW5nQ29sdW1uLnZhbHVlOwotICAgICAgICAgIHRyYWNpbmdDb2x1bW4udmFsdWUgPSBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIHZhciBvbGRWYWx1ZSA9IG9sZFZhbHVlQ2FsbGJhY2suY2FsbCh0aGlzLCByb3cpOwotICAgICAgICAgICAgaWYgKCEob2xkVmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpCi0gICAgICAgICAgICAgIG9sZFZhbHVlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUob2xkVmFsdWUpOwotICAgICAgICAgICAgdmFyIHZhbHVlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgICAgICAgICB2YWx1ZUVsLnN0eWxlLmNvbG9yID0gJyM5OTknOwotICAgICAgICAgICAgdmFsdWVFbC5hcHBlbmRDaGlsZChvbGRWYWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWVFbDsKLSAgICAgICAgICB9OwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHNpemVDb2x1bW5zID0gdXNlZE1lbW9yeVNpemVDb2x1bW5zLmNvbmNhdChhbGxvY2F0b3JTaXplQ29sdW1ucyk7Ci0gICAgICAgIHRyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShzaXplQ29sdW1ucyk7Ci0KLSAgICAgICAgdmFyIGNvbHVtbnMgPSBbdGl0bGVDb2x1bW5dLmNvbmNhdChzaXplQ29sdW1ucyk7Ci0gICAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgICAgfQotICAgIH0pOwotICB9KSgpOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmVfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWE1ZDQ2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9vdmVydmlld19wYW5lX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfb3ZlcnZpZXdfcGFuZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBjcmVhdGVQcm9jZXNzTWVtb3J5RHVtcHMoKSB7Ci0gICAgdmFyIGdtZCA9IHRyLmMuYW5hbHlzaXMuY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXAoKTsKLSAgICByZXR1cm4gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKGdtZC5wcm9jZXNzTWVtb3J5RHVtcHMpOwotICB9Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXBzID0gY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXBzKCk7Ci0KLSAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW1lbW9yeS1kdW1wLW92ZXJ2aWV3LXBhbmUnKTsKLSAgICB2aWV3RWwucHJvY2Vzc01lbW9yeUR1bXBzID0gcHJvY2Vzc01lbW9yeUR1bXBzOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotCi0gICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgdmlld0VsLCAndHItYi11aS10YWJsZScpOwotCi0gICAgdmFyIHJvd3MgPSB0YWJsZS50YWJsZVJvd3M7Ci0gICAgdmFyIGNvbHVtbnMgPSB0YWJsZS50YWJsZUNvbHVtbnM7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHJvd3MsIDMpOwotICAgIGFzc2VydC5sZW5ndGhPZihjb2x1bW5zLCA5KTsKLQotICAgIHZhciB0aXRsZUNvbHVtbiA9IGNvbHVtbnNbMF07Ci0gICAgdmFyIHRvdGFsQ29sdW1uID0gY29sdW1uc1sxXTsKLSAgICB2YXIgcHJvcG9ydGlvbmFsQ29sdW1uID0gY29sdW1uc1syXTsKLSAgICB2YXIgcHJpdmF0ZURpcnR5Q29sdW1uID0gY29sdW1uc1szXTsKLSAgICB2YXIgc3dhcHBlZENvbHVtbiA9IGNvbHVtbnNbNF07Ci0gICAgdmFyIG1hbGxvY0NvbHVtbiA9IGNvbHVtbnNbNV07Ci0gICAgdmFyIHY4Q29sdW1uID0gY29sdW1uc1s2XTsKLSAgICB2YXIgb2lscGFuQ29sdW1uID0gY29sdW1uc1s3XTsKLSAgICB2YXIgdHJhY2luZ0NvbHVtbiA9IGNvbHVtbnNbOF07Ci0KLSAgICAvLyBDaGVjayB0aGUgcm93cyBvZiB0aGUgdGFibGUuCi0gICAgYXNzZXJ0LmVxdWFsKHRpdGxlQ29sdW1uLnZhbHVlKHJvd3NbMF0pLmxhYmVsLCAnUHJvY2VzcyAxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRvdGFsQ29sdW1uLnZhbHVlKHJvd3NbMF0pLm51bUJ5dGVzLCAzMTQ1NzI4MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHByb3BvcnRpb25hbENvbHVtbi52YWx1ZShyb3dzWzBdKS5udW1CeXRlcywgMTA0ODU3NjApOwotICAgIGFzc2VydC5lcXVhbChwcml2YXRlRGlydHlDb2x1bW4udmFsdWUocm93c1swXSkubnVtQnl0ZXMsIDgzODg2MDgpOwotICAgIGFzc2VydC5lcXVhbChzd2FwcGVkQ29sdW1uLnZhbHVlKHJvd3NbMF0pLm51bUJ5dGVzLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwobWFsbG9jQ29sdW1uLnZhbHVlKHJvd3NbMF0pLCAnJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHY4Q29sdW1uLnZhbHVlKHJvd3NbMF0pLCAnJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkNvbHVtbi52YWx1ZShyb3dzWzBdKSwgJycpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjaW5nQ29sdW1uLnZhbHVlKHJvd3NbMF0pLnRleHRDb250ZW50LCAnJyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodGl0bGVDb2x1bW4udmFsdWUocm93c1sxXSkubGFiZWwsICdQcm9jZXNzIDInKTsKLSAgICBhc3NlcnQuZXF1YWwodG90YWxDb2x1bW4udmFsdWUocm93c1sxXSkubnVtQnl0ZXMsIDE5OTIyOTQ0KTsKLSAgICBhc3NlcnQuZXF1YWwocHJvcG9ydGlvbmFsQ29sdW1uLnZhbHVlKHJvd3NbMV0pLm51bUJ5dGVzLCAxNDY4MDA2NCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHByaXZhdGVEaXJ0eUNvbHVtbi52YWx1ZShyb3dzWzFdKS5udW1CeXRlcywgNTI0Mjg4KTsKLSAgICBhc3NlcnQuZXF1YWwoc3dhcHBlZENvbHVtbi52YWx1ZShyb3dzWzFdKS5udW1CeXRlcywgMzIpOwotICAgIGFzc2VydC5lcXVhbChtYWxsb2NDb2x1bW4udmFsdWUocm93c1sxXSkubnVtQnl0ZXMsIDIwOTcxNTIpOwotICAgIGFzc2VydC5lcXVhbCh2OENvbHVtbi52YWx1ZShyb3dzWzFdKS5udW1CeXRlcywgNTI0Mjg4MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkNvbHVtbi52YWx1ZShyb3dzWzFdKSwgJycpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjaW5nQ29sdW1uLnZhbHVlKHJvd3NbMV0pLmNoaWxkcmVuWzBdLm51bUJ5dGVzLCAxMDQ4NTc2KTsKLQotICAgIGFzc2VydC5lcXVhbCh0aXRsZUNvbHVtbi52YWx1ZShyb3dzWzJdKS5sYWJlbCwgJ1Byb2Nlc3MgMycpOwotICAgIGFzc2VydC5lcXVhbCh0b3RhbENvbHVtbi52YWx1ZShyb3dzWzJdKSwgJycpOwotICAgIGFzc2VydC5lcXVhbChwcm9wb3J0aW9uYWxDb2x1bW4udmFsdWUocm93c1syXSksICcnKTsKLSAgICBhc3NlcnQuZXF1YWwocHJpdmF0ZURpcnR5Q29sdW1uLnZhbHVlKHJvd3NbMl0pLCAnJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN3YXBwZWRDb2x1bW4udmFsdWUocm93c1syXSksICcnKTsKLSAgICBhc3NlcnQuZXF1YWwobWFsbG9jQ29sdW1uLnZhbHVlKHJvd3NbMl0pLCAnJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHY4Q29sdW1uLnZhbHVlKHJvd3NbMl0pLm51bUJ5dGVzLCAxMDczNzQxODI0KTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQ29sdW1uLnZhbHVlKHJvd3NbMl0pLm51bUJ5dGVzLCAyMTQ3NDgzNjQ4KTsKLSAgICBhc3NlcnQuZXF1YWwodHJhY2luZ0NvbHVtbi52YWx1ZShyb3dzWzJdKS50ZXh0Q29udGVudCwgJycpOwotICB9KTsKLQotICB0ZXN0KCdzZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXBzID0gY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXBzKCk7Ci0KLSAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW1lbW9yeS1kdW1wLW92ZXJ2aWV3LXBhbmUnKTsKLSAgICB2aWV3RWwucHJvY2Vzc01lbW9yeUR1bXBzID0gcHJvY2Vzc01lbW9yeUR1bXBzOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotCi0gICAgdmFyIGRpZEZpcmVTZWxlY3RlZER1bXBDaGFuZ2VkOwotICAgIHZpZXdFbC5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RlZC1tZW1vcnktY2VsbC1jaGFuZ2VkJywKLSAgICAgICAgZnVuY3Rpb24oZSkgewotICAgICAgZGlkRmlyZVNlbGVjdGVkRHVtcENoYW5nZWQgPSB0cnVlOwotICAgIH0pOwotCi0gICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgdmlld0VsLCAndHItYi11aS10YWJsZScpOwotCi0gICAgLy8gU2ltdWxhdGUgY2xpY2tpbmcgb24gdGhlICdvaWxwYW4nIGNlbGwgb2YgdGhlIHNlY29uZCBwcm9jZXNzLgotICAgIGRpZEZpcmVTZWxlY3RlZER1bXBDaGFuZ2VkID0gZmFsc2U7Ci0gICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHRhYmxlLnRhYmxlUm93c1syXTsKLSAgICB0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4ID0gNzsKLSAgICBhc3NlcnQuaXNUcnVlKGRpZEZpcmVTZWxlY3RlZER1bXBDaGFuZ2VkKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHZpZXdFbC5zZWxlY3RlZE1lbW9yeUNlbGwpOwotICAgIGFzc2VydC5pc0RlZmluZWQodmlld0VsLnNlbGVjdGVkTWVtb3J5Q2VsbC5idWlsZERldGFpbHNQYW5lKTsKLQotICAgIC8vIFNpbXVsYXRlIGNsaWNraW5nIG9uIHRoZSAnUHJvcG9ydGlvbmFsIHVzZWQgbWVtb3J5IChtbWFwcyknIGNlbGwgb2YgdGhlCi0gICAgLy8gc2Vjb25kIHByb2Nlc3MuCi0gICAgZGlkRmlyZVNlbGVjdGVkRHVtcENoYW5nZWQgPSBmYWxzZTsKLSAgICB0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4ID0gMjsKLSAgICBhc3NlcnQuaXNUcnVlKGRpZEZpcmVTZWxlY3RlZER1bXBDaGFuZ2VkKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQodmlld0VsLnNlbGVjdGVkTWVtb3J5Q2VsbCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdF91dGlscy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2N2M5ZTM3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2dsb2JhbF9tZW1vcnlfZHVtcC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbWVtb3J5X2FsbG9jYXRvcl9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWVtb3J5IGR1bXAgYW5hbHlzaXMgc3ViLXZpZXcgdGVzdHMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBHbG9iYWxNZW1vcnlEdW1wID0gdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcDsKLSAgdmFyIFByb2Nlc3NNZW1vcnlEdW1wID0gdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXA7Ci0gIHZhciBNZW1vcnlBbGxvY2F0b3JEdW1wID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcDsKLSAgdmFyIFZNUmVnaW9uID0gdHIubW9kZWwuVk1SZWdpb247Ci0gIHZhciBWTVJlZ2lvbkJ5dGVTdGF0cyA9IHRyLm1vZGVsLlZNUmVnaW9uQnl0ZVN0YXRzOwotICB2YXIgU2NhbGFyQXR0cmlidXRlID0gdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlOwotCi0gIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wKCkgewotICAgIHZhciBtb2RlbCA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgewotICAgICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgICAgdmFyIHAyID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDIpOwotICAgICAgdmFyIHAzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDMpOwotCi0gICAgICB2YXIgZ21kID0gbmV3IEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsIDQyKTsKLSAgICAgIG1vZGVsLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2goZ21kKTsKLQotICAgICAgZnVuY3Rpb24gYWRkUHJvY2Vzc01lbW9yeUR1bXAocHJvY2VzcywgdGltZXN0YW1wKSB7Ci0gICAgICAgIHZhciBwbWQgPSBuZXcgUHJvY2Vzc01lbW9yeUR1bXAoZ21kLCBwcm9jZXNzLCB0aW1lc3RhbXApOwotICAgICAgICBwcm9jZXNzLm1lbW9yeUR1bXBzLnB1c2gocG1kKTsKLSAgICAgICAgZ21kLnByb2Nlc3NNZW1vcnlEdW1wc1twcm9jZXNzLnBpZF0gPSBwbWQ7Ci0gICAgICAgIHJldHVybiBwbWQ7Ci0gICAgICB9Ci0KLSAgICAgIC8vIE9uZSBwcm9jZXNzIHdpdGggVk0gcmVnaW9ucy4KLSAgICAgIHZhciBwbWQxID0gYWRkUHJvY2Vzc01lbW9yeUR1bXAocDEsIDQxKTsKLSAgICAgIHBtZDEudG90YWxSZXNpZGVudEJ5dGVzID0gMzE0NTcyODAgLyogMzAgTWlCICovOwotICAgICAgcG1kMS52bVJlZ2lvbnMgPSBbCi0gICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKLSAgICAgICAgICAgIHN0YXJ0QWRkcmVzczogMTAyNCwKLSAgICAgICAgICAgIHNpemVJbkJ5dGVzOiAyMDk3MTUyMCwgLyogMjAgTWlCICovCi0gICAgICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFELAotICAgICAgICAgICAgbWFwcGVkRmlsZTogJ1tzdGFja10nLAotICAgICAgICAgICAgYnl0ZVN0YXRzOiB7Ci0gICAgICAgICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDgzODg2MDgsIC8qIDggTWlCICovCi0gICAgICAgICAgICAgICAgc2hhcmVkQ2xlYW5SZXNpZGVudDogMTI1ODI5MTIsIC8qIDEyIE1pQiAqLwotICAgICAgICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxMDQ4NTc2MCAvKiAxMCBNaUIgKi8KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSkKLSAgICAgIF07Ci0KLSAgICAgIHZhciBwbWQyID0gYWRkUHJvY2Vzc01lbW9yeUR1bXAocDIsIDQyKTsKLSAgICAgIHBtZDIudG90YWxSZXNpZGVudEJ5dGVzID0gMjA5NzE1MjAgLyogMjAgTWlCICovOwotICAgICAgcG1kMi52bVJlZ2lvbnMgPSBbCi0gICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKLSAgICAgICAgICBzdGFydEFkZHJlc3M6IDI1NiwKLSAgICAgICAgICBzaXplSW5CeXRlczogNjAwMCwKLSAgICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKLSAgICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFLAotICAgICAgICAgIG1hcHBlZEZpbGU6ICdbc3RhY2s6MjAzMTBdJywKLSAgICAgICAgICBieXRlU3RhdHM6IHsKLSAgICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxNTcyODY0MCwgLyogMTUgTWlCICovCi0gICAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogMTU3Mjg2NCwgLyogMS41IE1pQiAqLwotICAgICAgICAgICAgc3dhcHBlZDogMzIgLyogMzIgQiAqLwotICAgICAgICAgIH0KLSAgICAgICAgfSkKLSAgICAgIF07Ci0gICAgICBwbWQyLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgbWFsbG9jRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZDIsICdtYWxsb2MnKTsKLSAgICAgICAgbWFsbG9jRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLAotICAgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAzMTQ1NzI4KSAvKiAzIE1pQiAqLyk7Ci0KLSAgICAgICAgdmFyIHY4RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZDIsICd2OCcpOwotICAgICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywKLSAgICAgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNTI0Mjg4MCkgLyogNSBNaUIgKi8pOwotCi0gICAgICAgIHZhciB0cmFjaW5nRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZDIsICd0cmFjaW5nJyk7Ci0gICAgICAgIHRyYWNpbmdEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsCi0gICAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwNDg1NzYpIC8qIDEgTWlCICovKTsKLQotICAgICAgICByZXR1cm4gW21hbGxvY0R1bXAsIHY4RHVtcCwgdHJhY2luZ0R1bXBdOwotICAgICAgfSkoKTsKLQotICAgICAgLy8gT25lIHByb2Nlc3Mgd2l0aCBhbGxvY2F0b3IgZHVtcHMuCi0gICAgICB2YXIgcG1kMyA9IGFkZFByb2Nlc3NNZW1vcnlEdW1wKHAzLCA0Myk7Ci0gICAgICBwbWQzLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgb2lscGFuRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZDMsICdvaWxwYW4nKTsKLSAgICAgICAgb2lscGFuRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLAotICAgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAyMTQ3NDgzNjQ4KSAvKiAyIEdpQiAqLyk7Ci0gICAgICAgIG9pbHBhbkR1bXAuYWRkQXR0cmlidXRlKCdpbm5lcl9zaXplJywKLSAgICAgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNTI0Mjg4MCkgLyogNSBNaUIgKi8pOwotICAgICAgICBvaWxwYW5EdW1wLmFkZEF0dHJpYnV0ZSgnb2JqZWN0c19jb3VudCcsCi0gICAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgMjAxNSkpOwotCi0gICAgICAgIHZhciB2OER1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQzLCAndjgnKTsKLSAgICAgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsCi0gICAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwNzM3NDE4MjQpIC8qIDEgR2lCICovKTsKLSAgICAgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnaW5uZXJfc2l6ZScsCi0gICAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDIwOTcxNTIpIC8qIDIgTWlCICovKTsKLSAgICAgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnb2JqZWN0c19jb3VudCcsCi0gICAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgMjA0KSk7Ci0KLSAgICAgICAgcmV0dXJuIFtvaWxwYW5EdW1wLCB2OER1bXBdOwotICAgICAgfSkoKTsKLSAgICB9KTsKLQotICAgIHJldHVybiBtb2RlbC5nbG9iYWxNZW1vcnlEdW1wc1swXTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMoKSB7Ci0gICAgdmFyIGdsb2JhbE1lbW9yeUR1bXAgPSBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcCgpOwotICAgIHJldHVybiB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMoZ2xvYmFsTWVtb3J5RHVtcC5wcm9jZXNzTWVtb3J5RHVtcHMpOwotICB9Ci0KLSAgZnVuY3Rpb24gY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wKCkgewotICAgIHZhciBnbG9iYWxNZW1vcnlEdW1wID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXAoKTsKLSAgICByZXR1cm4gZ2xvYmFsTWVtb3J5RHVtcC5wcm9jZXNzTWVtb3J5RHVtcHNbMl07Ci0gIH0KLQotICByZXR1cm4gewotICAgIGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wOiBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcCwKLSAgICBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzOiBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzLAotICAgIGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcDogY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3V0aWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxYmYzMGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3V0aWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgSGVscGVyIGNvZGUgZm9yIG1lbW9yeSBkdW1wIHN1Yi12aWV3cy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmMuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogQSB0YWJsZSBidWlsZGVyIGNvbHVtbiBmb3IgZGlzcGxheWluZyBtZW1vcnkgZHVtcCBkYXRhLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIE1lbW9yeUNvbHVtbihuYW1lLCB0aXRsZSwgdW5pdHMsIGNlbGxHZXR0ZXIpIHsKLSAgICB0aGlzLm5hbWUgPSBuYW1lOwotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgICB0aGlzLnVuaXRzID0gdW5pdHM7Ci0gICAgdGhpcy5jZWxsID0gY2VsbEdldHRlcjsKLSAgfQotCi0gIE1lbW9yeUNvbHVtbi5mcm9tUm93cyA9IGZ1bmN0aW9uKHJvd3MsIGNlbGxLZXksIG9wdF90aXRsZUJ1aWxkZXIpIHsKLSAgICB2YXIgY29sdW1uVHJhaXRzID0ge307Ci0KLSAgICBmdW5jdGlvbiBnYXRoZXJUcmFpdHMocm93KSB7Ci0gICAgICBpZiAocm93ID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBhdHRyQ2VsbHMgPSByb3dbY2VsbEtleV07Ci0gICAgICB0ci5iLml0ZXJJdGVtcyhhdHRyQ2VsbHMsIGZ1bmN0aW9uKGF0dHJOYW1lLCBhdHRyQ2VsbCkgewotICAgICAgICBpZiAoYXR0ckNlbGwgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciBhdHRyVmFsdWUgPSBhdHRyQ2VsbC5hdHRyOwotICAgICAgICBpZiAoYXR0clZhbHVlID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgZXhpc3RpbmdUcmFpdHMgPSBjb2x1bW5UcmFpdHNbYXR0ck5hbWVdOwotICAgICAgICBpZiAoZXhpc3RpbmdUcmFpdHMgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIGNvbHVtblRyYWl0c1thdHRyTmFtZV0gPSB7Ci0gICAgICAgICAgICBjb25zdHJ1Y3RvcjogYXR0clZhbHVlLmNvbnN0cnVjdG9yLAotICAgICAgICAgICAgdW5pdHM6IGF0dHJWYWx1ZS51bml0cwotICAgICAgICAgIH07Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChleGlzdGluZ1RyYWl0cy5jb25zdHJ1Y3RvciAhPT0gYXR0clZhbHVlLmNvbnN0cnVjdG9yIHx8Ci0gICAgICAgICAgICBleGlzdGluZ1RyYWl0cy51bml0cyAhPT0gYXR0clZhbHVlLnVuaXRzKSB7Ci0gICAgICAgICAgZXhpc3RpbmdUcmFpdHMuY29uc3RydWN0b3IgPSB0ci5tb2RlbC5Vbmtub3duQXR0cmlidXRlOwotICAgICAgICAgIGV4aXN0aW5nVHJhaXRzLnVuaXRzID0gdW5kZWZpbmVkOwotICAgICAgICB9Ci0gICAgICB9KTsKLSAgICAgIGlmIChyb3cuc3ViUm93cyAhPT0gdW5kZWZpbmVkKQotICAgICAgICByb3cuc3ViUm93cy5mb3JFYWNoKGdhdGhlclRyYWl0cyk7Ci0gICAgfTsKLSAgICByb3dzLmZvckVhY2goZ2F0aGVyVHJhaXRzKTsKLQotICAgIHZhciB0aXRsZUJ1aWxkZXIgPSBvcHRfdGl0bGVCdWlsZGVyIHx8IHRyLmIuaWRlbnRpdHk7Ci0KLSAgICB2YXIgY29sdW1ucyA9IFtdOwotICAgIHRyLmIuaXRlckl0ZW1zKGNvbHVtblRyYWl0cywgZnVuY3Rpb24oY29sdW1uTmFtZSwgY29sdW1uVHJhaXRzKSB7Ci0gICAgICB2YXIgY2VsbEdldHRlciA9IGZpZWxkR2V0dGVyKGNlbGxLZXksIGNvbHVtbk5hbWUpOwotICAgICAgdmFyIHRpdGxlID0gdGl0bGVCdWlsZGVyKGNvbHVtbk5hbWUpOwotICAgICAgY29sdW1ucy5wdXNoKE1lbW9yeUNvbHVtbi5mcm9tQXR0cmlidXRlVHJhaXRzKAotICAgICAgICAgIGNvbHVtbk5hbWUsIHRpdGxlLCBjb2x1bW5UcmFpdHMsIGNlbGxHZXR0ZXIpKTsKLSAgICB9KTsKLQotICAgIHJldHVybiBjb2x1bW5zOwotICB9OwotCi0gIE1lbW9yeUNvbHVtbi5mcm9tQXR0cmlidXRlVHJhaXRzID0gZnVuY3Rpb24obmFtZSwgdGl0bGUsIHRyYWl0cywgY2VsbEdldHRlcikgewotICAgIHZhciBjb25zdHJ1Y3RvcjsKLSAgICBpZiAodHJhaXRzLmNvbnN0cnVjdG9yID09PSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUpCi0gICAgICBjb25zdHJ1Y3RvciA9IFNjYWxhck1lbW9yeUNvbHVtbjsKLSAgICBlbHNlCi0gICAgICBjb25zdHJ1Y3RvciA9IE1lbW9yeUNvbHVtbjsKLSAgICByZXR1cm4gbmV3IGNvbnN0cnVjdG9yKG5hbWUsIHRpdGxlLCB0cmFpdHMudW5pdHMsIGNlbGxHZXR0ZXIpOwotICB9OwotCi0gIE1lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHkgPSBmdW5jdGlvbihjb2x1bW5zKSB7Ci0gICAgdmFyIGNvbHVtbldpZHRoID0gKDEwMCAvIGNvbHVtbnMubGVuZ3RoKS50b0ZpeGVkKDMpICsgJyUnOwotICAgIGNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbihjb2x1bW4pIHsKLSAgICAgIGNvbHVtbi53aWR0aCA9IGNvbHVtbldpZHRoOwotICAgIH0pOwotICB9OwotCi0gIC8qKgotICAgKiBTb3J0IGEgbGlzdCBvZiBtZW1vcnkgY29sdW1ucyBhY2NvcmRpbmcgdG8gYSBsaXN0IG9mIGltcG9ydGFuY2UgcnVsZXMuCi0gICAqIFRoaXMgZnVuY3Rpb24gbW9kaWZpZXMgdGhlIG9yaWdpbmFsIGFycmF5IGFuZCBkb2Vzbid0IHJldHVybiBhbnl0aGluZy4KLSAgICoKLSAgICogVGhlIGxpc3Qgb2YgaW1wb3J0YW5jZSBydWxlcyBjb250YWlucyBvYmplY3RzIHdpdGggbWFuZGF0b3J5ICdpbXBvcnRhbmNlJwotICAgKiBudW1lcmljIGZpZWxkcyBhbmQgb3B0aW9uYWwgJ2NvbmRpdGlvbicgc3RyaW5nIG9yIHJlZ2V4IGZpZWxkcy4gRXhhbXBsZToKLSAgICoKLSAgICogICB2YXIgaW1wb3J0YW5jZVJ1bGVzID0gWwotICAgKiAgICAgewotICAgKiAgICAgICBjb25kaXRpb246ICdwYWdlX3NpemUnLAotICAgKiAgICAgICBpbXBvcnRhbmNlOiA4Ci0gICAqICAgICB9LAotICAgKiAgICAgewotICAgKiAgICAgICBjb25kaXRpb246IC9zaXplLywKLSAgICogICAgICAgaW1wb3J0YW5jZTogMTAKLSAgICogICAgIH0sCi0gICAqICAgICB7Ci0gICAqICAgICAgIC8vIE5vIGNvbmRpdGlvbjogbWF0Y2hlcyBhbGwgY29sdW1ucy4KLSAgICogICAgICAgaW1wb3J0YW5jZTogOQotICAgKiAgICAgfQotICAgKiAgIF07Ci0gICAqCi0gICAqIFRoZSBpbXBvcnRhbmNlIG9mIGEgY29sdW1uIGlzIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IHJ1bGUgd2hvc2UgY29uZGl0aW9uCi0gICAqIG1hdGNoZXMgdGhlIGNvbHVtbidzIG5hbWUsIHNvIHRoZSBydWxlcyBhYm92ZSB3aWxsIHNvcnQgYSBnZW5lcmljIGxpc3Qgb2YKLSAgICogY29sdW1ucyBpbnRvIHRocmVlIGdyb3VwcyBhcyBmb2xsb3dzOgotICAgKgotICAgKiAgICAgIFttb3N0IGltcG9ydGFudCwgbGVmdCBpbiB0aGUgcmVzdWx0aW5nIHRhYmxlXQotICAgKiAgIDEuIGNvbHVtbnMgd2hvc2UgbmFtZSBjb250YWlucyAnc2l6ZScgZXhjbHVkaW5nICdwYWdlX3NpemUnIGJlY2F1c2UgaXQKLSAgICogICAgICB3b3VsZCBoYXZlIGFscmVhZHkgbWF0Y2hlZCB0aGUgZmlyc3QgcnVsZSAoTm90ZSB0aGF0IHN0cmluZyBtYXRjaGVzCi0gICAqICAgICAgbXVzdCBiZSBleGFjdCBzbyBhIGNvbHVtbiBuYW1lZCAncGFnZV9zaXplMicgd291bGQgbm90IG1hdGNoIHRoZQotICAgKiAgICAgIGZpcnN0IHJ1bGUgYW5kIHdvdWxkIHRoZXJlZm9yZSBiZWxvbmcgdG8gdGhpcyBncm91cCkuCi0gICAqICAgMi4gY29sdW1ucyB3aG9zZSBuYW1lIGRvZXMgbm90IGNvbnRhaW4gJ3NpemUnLgotICAgKiAgIDMuIGNvbHVtbnMgd2hvc2UgbmFtZSBpcyAncGFnZV9zaXplJy4KLSAgICogICAgICBbbGVhc3QgaW1wb3J0YW50LCByaWdodCBpbiB0aGUgcmVzdWx0aW5nIHRhYmxlXQotICAgKgotICAgKiB3aGVyZSB0aGUgb3JkZXIgd2l0aGluIGVhY2ggZ3JvdXAgaXMgdW5tb2RpZmllZCAoc3RhYmxlIHNvcnQpLgotICAgKi8KLSAgTWVtb3J5Q29sdW1uLnNvcnRCeUltcG9ydGFuY2UgPSBmdW5jdGlvbihjb2x1bW5zLCBpbXBvcnRhbmNlUnVsZXMpIHsKLSAgICB2YXIgcG9zaXRpb25zID0gY29sdW1ucy5tYXAoZnVuY3Rpb24oY29sdW1uLCBzcmNJbmRleCkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgaW1wb3J0YW5jZTogY29sdW1uLmdldEltcG9ydGFuY2UoaW1wb3J0YW5jZVJ1bGVzKSwKLSAgICAgICAgc3JjSW5kZXg6IHNyY0luZGV4LAotICAgICAgICBjb2x1bW46IGNvbHVtbgotICAgICAgfTsKLSAgICB9KTsKLQotICAgIHBvc2l0aW9ucy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgIC8vIEtlZXAgZXhpc3Rpbmcgb3JkZXIgb2YgY29sdW1ucyBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgaW1wb3J0YW5jZQotICAgICAgLy8gKHN0YWJsZSBzb3J0KS4KLSAgICAgIGlmIChhLmltcG9ydGFuY2UgPT09IGIuaW1wb3J0YW5jZSkKLSAgICAgICAgcmV0dXJuIGEuc3JjSW5kZXggLSBiLnNyY0luZGV4OwotCi0gICAgICAvLyBTb3J0IGNvbHVtbnMgaW4gZGVzY2VuZGluZyBvcmRlciBvZiBpbXBvcnRhbmNlLgotICAgICAgcmV0dXJuIGIuaW1wb3J0YW5jZSAtIGEuaW1wb3J0YW5jZTsKLSAgICB9KTsKLQotICAgIHBvc2l0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHBvc2l0aW9uLCBkc3RJbmRleCkgewotICAgICAgY29sdW1uc1tkc3RJbmRleF0gPSBwb3NpdGlvbi5jb2x1bW47Ci0gICAgfSk7Ci0gIH07Ci0KLSAgTWVtb3J5Q29sdW1uLnByb3RvdHlwZSA9IHsKLSAgICBhdHRyOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgIHZhciBjZWxsID0gdGhpcy5jZWxsKHJvdyk7Ci0gICAgICBpZiAoY2VsbCA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIGNlbGwuYXR0cjsKLSAgICB9LAotCi0gICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgdmFyIGF0dHIgPSB0aGlzLmF0dHIocm93KTsKLSAgICAgIGlmIChhdHRyID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybiAnJzsKLSAgICAgIHJldHVybiB0aGlzLmZvcm1hdERlZmluZWRBdHRyaWJ1dGUoYXR0cik7Ci0gICAgfSwKLQotICAgIGZvcm1hdERlZmluZWRBdHRyaWJ1dGU6IGZ1bmN0aW9uKGF0dHIpIHsKLSAgICAgIHJldHVybiBTdHJpbmcoYXR0ci52YWx1ZSk7Ci0gICAgfSwKLQotICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgewotICAgICAgdmFyIGF0dHJBID0gdGhpcy5hdHRyKHJvd0EpOwotICAgICAgdmFyIGF0dHJCID0gdGhpcy5hdHRyKHJvd0IpOwotICAgICAgaWYgKGF0dHJBID09PSB1bmRlZmluZWQgJiYgYXR0ckIgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICBpZiAoYXR0ckEgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgaWYgKGF0dHJCID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybiAxOwotICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZURlZmluZWRBdHRyaWJ1dGVzKGF0dHJBLCBhdHRyQik7Ci0gICAgfSwKLQotICAgIGNvbXBhcmVEZWZpbmVkQXR0cmlidXRlczogZnVuY3Rpb24oYXR0ckEsIGF0dHJCKSB7Ci0gICAgICB2YXIgc3RyQSA9IFN0cmluZyhhdHRyQS52YWx1ZSk7Ci0gICAgICB2YXIgc3RyQiA9IFN0cmluZyhhdHRyQi52YWx1ZSk7Ci0gICAgICByZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpOwotICAgIH0sCi0KLSAgICBnZXRJbXBvcnRhbmNlOiBmdW5jdGlvbihpbXBvcnRhbmNlUnVsZXMpIHsKLSAgICAgIGlmIChpbXBvcnRhbmNlUnVsZXMubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm4gMDsKLQotICAgICAgLy8gRmluZCB0aGUgZmlyc3QgbWF0Y2hpbmcgcnVsZS4KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1wb3J0YW5jZVJ1bGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBpbXBvcnRhbmNlUnVsZSA9IGltcG9ydGFuY2VSdWxlc1tpXTsKLSAgICAgICAgaWYgKHRoaXMubWF0Y2hlc05hbWVDb25kaXRpb24oaW1wb3J0YW5jZVJ1bGUuY29uZGl0aW9uKSkKLSAgICAgICAgICByZXR1cm4gaW1wb3J0YW5jZVJ1bGUuaW1wb3J0YW5jZTsKLSAgICAgIH0KLQotICAgICAgLy8gTm8gbWF0Y2hpbmcgcnVsZS4gUmV0dXJuIGxvd2VyIGltcG9ydGFuY2UgdGhhbiBhbGwgcnVsZXMuCi0gICAgICB2YXIgbWluSW1wb3J0YW5jZSA9IGltcG9ydGFuY2VSdWxlc1swXS5pbXBvcnRhbmNlOwotICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBpbXBvcnRhbmNlUnVsZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgbWluSW1wb3J0YW5jZSA9IE1hdGgubWluKG1pbkltcG9ydGFuY2UsIGltcG9ydGFuY2VSdWxlc1tpXS5pbXBvcnRhbmNlKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtaW5JbXBvcnRhbmNlIC0gMTsKLSAgICB9LAotCi0gICAgbWF0Y2hlc05hbWVDb25kaXRpb246IGZ1bmN0aW9uKGNvbmRpdGlvbikgewotICAgICAgLy8gUnVsZXMgd2l0aG91dCBjb25kaXRpb25zIG1hdGNoIGFsbCBjb2x1bW5zLgotICAgICAgaWYgKGNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgLy8gU3RyaW5nIGNvbmRpdGlvbnMgbXVzdCBtYXRjaCB0aGUgY29sdW1uIG5hbWUgZXhhY3RseS4KLSAgICAgIGlmICh0eXBlb2YoY29uZGl0aW9uKSA9PT0gJ3N0cmluZycpCi0gICAgICAgIHJldHVybiB0aGlzLm5hbWUgPT09IGNvbmRpdGlvbjsKLQotICAgICAgLy8gSWYgdGhlIGNvbmRpdGlvbiBpcyBub3QgYSBzdHJpbmcsIGFzc3VtZSBpdCBpcyBhIFJlZ0V4cC4KLSAgICAgIHJldHVybiBjb25kaXRpb24udGVzdCh0aGlzLm5hbWUpOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBTY2FsYXJNZW1vcnlDb2x1bW4obmFtZSwgdGl0bGUsIHVuaXRzLCBjZWxsR2V0dGVyKSB7Ci0gICAgTWVtb3J5Q29sdW1uLmNhbGwodGhpcywgbmFtZSwgdGl0bGUsIHVuaXRzLCBjZWxsR2V0dGVyKTsKLSAgfQotCi0gIFNjYWxhck1lbW9yeUNvbHVtbi5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBNZW1vcnlDb2x1bW4ucHJvdG90eXBlLAotCi0gICAgZm9ybWF0RGVmaW5lZEF0dHJpYnV0ZTogZnVuY3Rpb24oYXR0cikgewotICAgICAgaWYgKHRoaXMudW5pdHMgPT09ICdieXRlcycpIHsKLSAgICAgICAgdmFyIHNpemVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS1zaXplLWluLWJ5dGVzLXNwYW4nKTsKLSAgICAgICAgc2l6ZUVsLm51bUJ5dGVzID0gYXR0ci52YWx1ZTsKLSAgICAgICAgcmV0dXJuIHNpemVFbDsKLSAgICAgIH0KLSAgICAgIHJldHVybiBNZW1vcnlDb2x1bW4ucHJvdG90eXBlLmZvcm1hdERlZmluZWRBdHRyaWJ1dGUuY2FsbCh0aGlzLCBhdHRyKTsKLSAgICB9LAotCi0gICAgY29tcGFyZURlZmluZWRBdHRyaWJ1dGVzOiBmdW5jdGlvbihhdHRyQSwgYXR0ckIpIHsKLSAgICAgIHJldHVybiBhdHRyQS52YWx1ZSAtIGF0dHJCLnZhbHVlOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBNZW1vcnlDZWxsKGF0dHIpIHsKLSAgICB0aGlzLmF0dHIgPSBhdHRyOwotICB9Ci0KLSAgZnVuY3Rpb24gZmllbGRHZXR0ZXIoLyogZmllbGRzICovKSB7Ci0gICAgdmFyIGZpZWxkcyA9IHRyLmIuYXNBcnJheShhcmd1bWVudHMpOwotICAgIHJldHVybiBmdW5jdGlvbihyb3cpIHsKLSAgICAgIHZhciB2YWx1ZSA9IHJvdzsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKQotICAgICAgICB2YWx1ZSA9IHZhbHVlW2ZpZWxkc1tpXV07Ci0gICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfTsKLSAgfQotCi0gIC8qKiBMaW1pdCBmb3IgdGhlIG51bWJlciBvZiBzdWItcm93cyBmb3IgcmVjdXJzaXZlIHRhYmxlIHJvdyBleHBhbnNpb24uICovCi0gIHZhciBSRUNVUlNJVkVfRVhQQU5TSU9OX01BWF9TVUJfUk9XX0NPVU5UID0gMTA7Ci0KLSAgZnVuY3Rpb24gZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHkodGFibGUpIHsKLSAgICBmdW5jdGlvbiBleHBhbmRSb3dSZWN1cnNpdmVseShyb3cpIHsKLSAgICAgIGlmIChyb3cuc3ViUm93cyA9PT0gdW5kZWZpbmVkIHx8IHJvdy5zdWJSb3dzLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKHJvdy5zdWJSb3dzLmxlbmd0aCA+IFJFQ1VSU0lWRV9FWFBBTlNJT05fTUFYX1NVQl9ST1dfQ09VTlQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRhYmxlLnNldEV4cGFuZGVkRm9yVGFibGVSb3cocm93LCB0cnVlKTsKLSAgICAgIHJvdy5zdWJSb3dzLmZvckVhY2goZXhwYW5kUm93UmVjdXJzaXZlbHkpOwotICAgIH0KLSAgICB0YWJsZS50YWJsZVJvd3MuZm9yRWFjaChleHBhbmRSb3dSZWN1cnNpdmVseSk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIE1lbW9yeUNvbHVtbjogTWVtb3J5Q29sdW1uLAotICAgIFNjYWxhck1lbW9yeUNvbHVtbjogU2NhbGFyTWVtb3J5Q29sdW1uLAotICAgIE1lbW9yeUNlbGw6IE1lbW9yeUNlbGwsCi0gICAgZmllbGRHZXR0ZXI6IGZpZWxkR2V0dGVyLAotICAgIGV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5OiBleHBhbmRUYWJsZVJvd3NSZWN1cnNpdmVseQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTAzN2NkMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS90YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNZW1vcnlDb2x1bW4gPSB0ci5jLmFuYWx5c2lzLk1lbW9yeUNvbHVtbjsKLSAgdmFyIFNjYWxhck1lbW9yeUNvbHVtbiA9IHRyLmMuYW5hbHlzaXMuU2NhbGFyTWVtb3J5Q29sdW1uOwotICB2YXIgTWVtb3J5Q2VsbCA9IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q2VsbDsKLSAgdmFyIGZpZWxkR2V0dGVyID0gdHIuYy5hbmFseXNpcy5maWVsZEdldHRlcjsKLSAgdmFyIGV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5ID0gdHIuYy5hbmFseXNpcy5leHBhbmRUYWJsZVJvd3NSZWN1cnNpdmVseTsKLSAgdmFyIFN0cmluZ0F0dHJpYnV0ZSA9IHRyLm1vZGVsLlN0cmluZ0F0dHJpYnV0ZTsKLSAgdmFyIFNjYWxhckF0dHJpYnV0ZSA9IHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZTsKLQotICBmdW5jdGlvbiBjaGVja1BlcmNlbnQoc3RyaW5nLCBleHBlY3RlZFBlcmNlbnQpIHsKLSAgICBhc3NlcnQuZXF1YWwoTnVtYmVyKHN0cmluZy5zbGljZSgwLCAtMSkpLCBleHBlY3RlZFBlcmNlbnQpOwotICAgIGFzc2VydC5lcXVhbChzdHJpbmcuc2xpY2UoLTEpLCAnJScpOwotICB9Ci0KLSAgZnVuY3Rpb24gYnVpbGRTdHJpbmdDZWxsKHZhbHVlLCB1bml0cykgewotICAgIHJldHVybiBuZXcgTWVtb3J5Q2VsbChuZXcgU3RyaW5nQXR0cmlidXRlKHZhbHVlLCB1bml0cykpOwotICB9Ci0KLSAgZnVuY3Rpb24gYnVpbGRTY2FsYXJDZWxsKHZhbHVlLCB1bml0cykgewotICAgIHJldHVybiBuZXcgTWVtb3J5Q2VsbChuZXcgU2NhbGFyQXR0cmlidXRlKHZhbHVlLCB1bml0cykpOwotICB9Ci0KLSAgZnVuY3Rpb24gYnVpbGRUZXN0Um93cygpIHsKLSAgICByZXR1cm4gWwotICAgICAgewotICAgICAgICB0aXRsZTogJ1JvdyAxJywKLSAgICAgICAgYXR0cmlidXRlczogewotICAgICAgICAgICdjcHVfdGVtcGVyYXR1cmUnOiBidWlsZFN0cmluZ0NlbGwoJ0MnLCAnYmVsb3cgemVybycpCi0gICAgICAgIH0sCi0gICAgICAgIHN1YlJvd3M6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0aXRsZTogJ1JvdyAxQScsCi0gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7Ci0gICAgICAgICAgICAgICdwYWdlX3NpemUnOiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMTAyNCkKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHRpdGxlOiAnUm93IDFCJywKLSAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsKLSAgICAgICAgICAgICAgJ3BhZ2Vfc2l6ZSc6IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCA1MTIpLAotICAgICAgICAgICAgICAnbWl4ZWQnOiBidWlsZFN0cmluZ0NlbGwoJ21zJywgJzAuMDEnKQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdSb3cgMicsCi0gICAgICAgIGF0dHJpYnV0ZXM6IHsKLSAgICAgICAgICAnY3B1X3RlbXBlcmF0dXJlJzogdW5kZWZpbmVkLAotICAgICAgICAgICdtaXhlZCc6IGJ1aWxkU2NhbGFyQ2VsbCgnbXMnLCAwLjk5KQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgXTsKLSAgfQotCi0gIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX2Zyb21Sb3dzX2RlZmF1bHRUaXRsZUJ1aWxkZXInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcm93cyA9IGJ1aWxkVGVzdFJvd3MoKTsKLSAgICB2YXIgY29sdW1ucyA9IE1lbW9yeUNvbHVtbi5mcm9tUm93cyhyb3dzLCAnYXR0cmlidXRlcycpOwotICAgIGFzc2VydC5sZW5ndGhPZihjb2x1bW5zLCAzKTsKLQotICAgIHZhciBjcHVUZW1wZXJhdHVyZUNvbHVtbiA9IGNvbHVtbnNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGNwdVRlbXBlcmF0dXJlQ29sdW1uLnRpdGxlLCAnY3B1X3RlbXBlcmF0dXJlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNwdVRlbXBlcmF0dXJlQ29sdW1uLnVuaXRzLCAnQycpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKGNwdVRlbXBlcmF0dXJlQ29sdW1uLCBNZW1vcnlDb2x1bW4pOwotICAgIGFzc2VydC5ub3RJbnN0YW5jZU9mKGNwdVRlbXBlcmF0dXJlQ29sdW1uLCBTY2FsYXJNZW1vcnlDb2x1bW4pOwotCi0gICAgdmFyIHBhZ2VTaXplQ29sdW1uID0gY29sdW1uc1sxXTsKLSAgICBhc3NlcnQuZXF1YWwocGFnZVNpemVDb2x1bW4udGl0bGUsICdwYWdlX3NpemUnKTsKLSAgICBhc3NlcnQuZXF1YWwocGFnZVNpemVDb2x1bW4udW5pdHMsICdieXRlcycpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKHBhZ2VTaXplQ29sdW1uLCBTY2FsYXJNZW1vcnlDb2x1bW4pOwotCi0gICAgdmFyIG1peGVkQ29sdW1uID0gY29sdW1uc1syXTsKLSAgICBhc3NlcnQuZXF1YWwobWl4ZWRDb2x1bW4udGl0bGUsICdtaXhlZCcpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChtaXhlZENvbHVtbi51bml0cyk7Ci0gICAgYXNzZXJ0Lmluc3RhbmNlT2YobWl4ZWRDb2x1bW4sIE1lbW9yeUNvbHVtbik7Ci0gICAgYXNzZXJ0Lm5vdEluc3RhbmNlT2YobWl4ZWRDb2x1bW4sIFNjYWxhck1lbW9yeUNvbHVtbik7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX2Zyb21Sb3dzX2N1c3RvbVRpdGxlQnVpbGRlcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciByb3dzID0gYnVpbGRUZXN0Um93cygpOwotICAgIHZhciBjb2x1bW5zID0gTWVtb3J5Q29sdW1uLmZyb21Sb3dzKHJvd3MsICdhdHRyaWJ1dGVzJywgZnVuY3Rpb24obmFtZSkgewotICAgICAgdmFyIHRpdGxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgICB0aXRsZUVsLmlubmVyVGV4dCA9IG5hbWU7Ci0gICAgICByZXR1cm4gdGl0bGVFbDsKLSAgICB9KTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoY29sdW1ucywgMyk7Ci0KLSAgICB2YXIgY3B1VGVtcGVyYXR1cmVDb2x1bW4gPSBjb2x1bW5zWzBdOwotICAgIGFzc2VydC5lcXVhbChjcHVUZW1wZXJhdHVyZUNvbHVtbi50aXRsZS50ZXh0Q29udGVudCwgJ2NwdV90ZW1wZXJhdHVyZScpOwotICAgIGFzc2VydC5lcXVhbChjcHVUZW1wZXJhdHVyZUNvbHVtbi51bml0cywgJ0MnKTsKLSAgICBhc3NlcnQuaW5zdGFuY2VPZihjcHVUZW1wZXJhdHVyZUNvbHVtbiwgTWVtb3J5Q29sdW1uKTsKLSAgICBhc3NlcnQubm90SW5zdGFuY2VPZihjcHVUZW1wZXJhdHVyZUNvbHVtbiwgU2NhbGFyTWVtb3J5Q29sdW1uKTsKLQotICAgIHZhciBwYWdlU2l6ZUNvbHVtbiA9IGNvbHVtbnNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHBhZ2VTaXplQ29sdW1uLnRpdGxlLnRleHRDb250ZW50LCAncGFnZV9zaXplJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhZ2VTaXplQ29sdW1uLnVuaXRzLCAnYnl0ZXMnKTsKLSAgICBhc3NlcnQuaW5zdGFuY2VPZihwYWdlU2l6ZUNvbHVtbiwgU2NhbGFyTWVtb3J5Q29sdW1uKTsKLQotICAgIHZhciBtaXhlZENvbHVtbiA9IGNvbHVtbnNbMl07Ci0gICAgYXNzZXJ0LmVxdWFsKG1peGVkQ29sdW1uLnRpdGxlLnRleHRDb250ZW50LCAnbWl4ZWQnKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQobWl4ZWRDb2x1bW4udW5pdHMpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKG1peGVkQ29sdW1uLCBNZW1vcnlDb2x1bW4pOwotICAgIGFzc2VydC5ub3RJbnN0YW5jZU9mKG1peGVkQ29sdW1uLCBTY2FsYXJNZW1vcnlDb2x1bW4pOwotICB9KTsKLQotICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl9mcm9tQXR0cmlidXRlVHJhaXRzJywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gU3RyaW5nIGF0dHJpYnV0ZS4KLSAgICB2YXIgdHJhaXRzID0gewotICAgICAgY29uc3RydWN0b3I6IFN0cmluZ0F0dHJpYnV0ZSwKLSAgICAgIHVuaXRzOiAnTWJwcycKLSAgICB9OwotICAgIHZhciBjb2x1bW4gPSBNZW1vcnlDb2x1bW4uZnJvbUF0dHJpYnV0ZVRyYWl0cygKLSAgICAgICAgJ2ZpcnN0X2NvbHVtbicsICdGaXJzdCBDb2x1bW4nLCB0cmFpdHMsIGZpZWxkR2V0dGVyKCd4JykpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKGNvbHVtbiwgTWVtb3J5Q29sdW1uKTsKLSAgICBhc3NlcnQuZXF1YWwoY29sdW1uLm5hbWUsICdmaXJzdF9jb2x1bW4nKTsKLSAgICBhc3NlcnQuZXF1YWwoY29sdW1uLnRpdGxlLCAnRmlyc3QgQ29sdW1uJyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGNvbHVtbi53aWR0aCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbHVtbi52YWx1ZSh7eDogYnVpbGRTdHJpbmdDZWxsKCdNYnBzJywgJ3ZlcnkgZmFzdCcpfSksCi0gICAgICAgICd2ZXJ5IGZhc3QnKTsKLSAgICBhc3NlcnQuaXNBYm92ZShjb2x1bW4uY21wKHt4OiBidWlsZFN0cmluZ0NlbGwoJ01icHMnLCAnc2xvdycpfSwKLSAgICAgICAge3g6IGJ1aWxkU3RyaW5nQ2VsbCgnTWJwcycsICdmYXN0Jyl9KSwgMCk7Ci0KLSAgICAvLyBTY2FsYXIgYXR0cmlidXRlLgotICAgIHZhciB0cmFpdHMgPSB7Ci0gICAgICBjb25zdHJ1Y3RvcjogU2NhbGFyQXR0cmlidXRlLAotICAgICAgdW5pdHM6ICdieXRlcycKLSAgICB9OwotICAgIHZhciBjb2x1bW4gPSBNZW1vcnlDb2x1bW4uZnJvbUF0dHJpYnV0ZVRyYWl0cygKLSAgICAgICAgJ3NlY29uZF9jb2x1bW4nLCAnU2Vjb25kIENvbHVtbicsIHRyYWl0cywgZmllbGRHZXR0ZXIoJ3gnKSk7Ci0gICAgYXNzZXJ0Lmluc3RhbmNlT2YoY29sdW1uLCBNZW1vcnlDb2x1bW4pOwotICAgIGFzc2VydC5lcXVhbChjb2x1bW4ubmFtZSwgJ3NlY29uZF9jb2x1bW4nKTsKLSAgICBhc3NlcnQuZXF1YWwoY29sdW1uLnRpdGxlLCAnU2Vjb25kIENvbHVtbicpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChjb2x1bW4ud2lkdGgpOwotICAgIGFzc2VydC5lcXVhbChjb2x1bW4udmFsdWUoe3g6IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCAxMDI0KX0pLm51bUJ5dGVzLAotICAgICAgICAxMDI0KTsKLSAgICBhc3NlcnQuaXNBYm92ZShjb2x1bW4uY21wKHt4OiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMTAwKX0sCi0gICAgICAgIHt4OiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgOTkuOTkpfSksIDApOwotICB9KTsKLQotICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl9zcGFjZUVxdWFsbHknLCBmdW5jdGlvbigpIHsKLSAgICAvLyBaZXJvIGNvbHVtbnMuCi0gICAgdmFyIGNvbHVtbnMgPSBbXTsKLSAgICBNZW1vcnlDb2x1bW4uc3BhY2VFcXVhbGx5KGNvbHVtbnMpOwotCi0gICAgLy8gT25lIGNvbHVtbi4KLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdGaXJzdCBDb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9Ci0gICAgICB9Ci0gICAgXTsKLSAgICBNZW1vcnlDb2x1bW4uc3BhY2VFcXVhbGx5KGNvbHVtbnMpOwotICAgIGNoZWNrUGVyY2VudChjb2x1bW5zWzBdLndpZHRoLCAxMDApOwotCi0gICAgLy8gVHdvIGNvbHVtbnMuCi0gICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICB7Ci0gICAgICAgIHRpdGxlOiAnRmlyc3QgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdGl0bGU6ICdTZWNvbmQgQ29sdW1uJywKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfQotICAgICAgfQotICAgIF07Ci0gICAgTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShjb2x1bW5zKTsKLSAgICBjaGVja1BlcmNlbnQoY29sdW1uc1swXS53aWR0aCwgNTApOwotICAgIGNoZWNrUGVyY2VudChjb2x1bW5zWzFdLndpZHRoLCA1MCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX3NvcnRCeUltcG9ydGFuY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgIG5ldyBNZW1vcnlDb2x1bW4oCi0gICAgICAgICAgJ3BhZ2Vfc2l6ZScsICdQYWdlIFNpemUnLCAnYnl0ZXMnLCBmaWVsZEdldHRlcigncGdzaXplJykpLAotICAgICAgbmV3IE1lbW9yeUNvbHVtbigKLSAgICAgICAgICAncmVzaWRlbnRfc2l6ZScsICdSZXNpZGVudCBTaXplJywgJ2J5dGVzJywgZmllbGRHZXR0ZXIoJ3JzcycpKSwKLSAgICAgIG5ldyBNZW1vcnlDb2x1bW4oCi0gICAgICAgICAgJ29iamVjdF9jb3VudCcsICdPYmplY3QgQ291bnQnLCAnb2JqZWN0cycsIGZpZWxkR2V0dGVyKCdvYmpjb3VudCcpKSwKLSAgICAgIG5ldyBNZW1vcnlDb2x1bW4oCi0gICAgICAgICAgJ3Byb3BvcnRpb25hbF9zaXplJywgJ1Byb3BvcnRpb25hbCBTaXplJywgJ2J5dGVzJywgZmllbGRHZXR0ZXIoJ3BzcycpKQotICAgIF07Ci0KLSAgICB2YXIgcnVsZXMgPSBbCi0gICAgICB7Ci0gICAgICAgIGNvbmRpdGlvbjogJ3BhZ2Vfc2l6ZScsCi0gICAgICAgIGltcG9ydGFuY2U6IDgKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGNvbmRpdGlvbjogL3NpemUvLAotICAgICAgICBpbXBvcnRhbmNlOiAxMAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgaW1wb3J0YW5jZTogOQotICAgICAgfQotICAgIF07Ci0KLSAgICBNZW1vcnlDb2x1bW4uc29ydEJ5SW1wb3J0YW5jZShjb2x1bW5zLCBydWxlcyk7Ci0KLSAgICBhc3NlcnQubGVuZ3RoT2YoY29sdW1ucywgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbHVtbnNbMF0ubmFtZSwgJ3Jlc2lkZW50X3NpemUnKTsKLSAgICBhc3NlcnQuZXF1YWwoY29sdW1uc1sxXS5uYW1lLCAncHJvcG9ydGlvbmFsX3NpemUnKTsKLSAgICBhc3NlcnQuZXF1YWwoY29sdW1uc1syXS5uYW1lLCAnb2JqZWN0X2NvdW50Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbHVtbnNbM10ubmFtZSwgJ3BhZ2Vfc2l6ZScpOwotICB9KTsKLQotICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl9hdHRyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGMgPSBuZXcgTWVtb3J5Q29sdW1uKAotICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKLQotICAgIC8vIFVuZGVmaW5lZCBjZWxsLgotICAgIHZhciByb3cgPSB7fTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoYy5hdHRyKHJvdykpOwotCi0gICAgLy8gVW5kZWZpbmVkIGF0dHJpYnV0ZSBpbnNpZGUgY2VsbC4KLSAgICB2YXIgcm93ID0ge3g6IG5ldyBNZW1vcnlDZWxsKHVuZGVmaW5lZCl9OwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChjLmF0dHIocm93KSk7Ci0KLSAgICAvLyBEZWZpbmVkIGF0dHJpYnV0ZSBpbnNpZGUgY2VsbC4KLSAgICB2YXIgYXR0ciA9IG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2hQYScsIDEwMTMuMjUpOwotICAgIHZhciByb3cgPSB7eDogbmV3IE1lbW9yeUNlbGwoYXR0cil9OwotICAgIGFzc2VydC5zdHJpY3RFcXVhbChjLmF0dHIocm93KSwgYXR0cik7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX3ZhbHVlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGMgPSBuZXcgTWVtb3J5Q29sdW1uKAotICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKLSAgICBhc3NlcnQuZXF1YWwoYy50aXRsZSwgJ1Rlc3QgQ29sdW1uJyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGMud2lkdGgpOwotCi0gICAgLy8gVW5kZWZpbmVkIGNlbGwuCi0gICAgdmFyIHJvdyA9IHt9OwotICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHJvdyksICcnKTsKLQotICAgIC8vIERlZmluZWQgY2VsbC4KLSAgICB2YXIgcm93ID0ge3g6IGJ1aWxkU2NhbGFyQ2VsbCgnbXMnLCAxMjMpfTsKLSAgICBhc3NlcnQuZXF1YWwoYy52YWx1ZShyb3cpLCAnMTIzJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX2NtcCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjID0gbmV3IE1lbW9yeUNvbHVtbigKLSAgICAgICAgJ3Rlc3RfY29sdW1uJywgJ1Rlc3QgQ29sdW1uJywgJ21zJywgZmllbGRHZXR0ZXIoJ3gnKSk7Ci0KLSAgICAvLyBDZWxsIChvciB0aGUgYXNzb2NpYXRlZCBhdHRyaWJ1dGUpIHVuZGVmaW5lZCBpbiBvbmUgb3IgYm90aCByb3dzLgotICAgIGFzc2VydC5lcXVhbChjLmNtcCh7fSwge3k6IG5ldyBNZW1vcnlDZWxsKHVuZGVmaW5lZCl9KSwgMCk7Ci0gICAgYXNzZXJ0LmlzQWJvdmUoYy5jbXAoe3g6IGJ1aWxkU3RyaW5nQ2VsbCgnbXMnLCAnbmVnYXRpdmUnKX0sIHt9KSwgMCk7Ci0gICAgYXNzZXJ0LmlzQmVsb3coYy5jbXAoe30sIHt4OiBidWlsZFN0cmluZ0NlbGwoJ21zJywgJ3Bvc2l0aXZlJyl9KSwgMCk7Ci0KLSAgICAvLyBDZWxsIGRlZmluZWQgaW4gYm90aCByb3dzCi0gICAgYXNzZXJ0LmVxdWFsKGMuY21wKHt4OiBidWlsZFN0cmluZ0NlbGwoJ3QnLCAnZXF1YWwnKX0sCi0gICAgICAgIHt4OiBidWlsZFN0cmluZ0NlbGwoJ3QnLCAnZXF1YWwnKX0pLCAwKTsKLSAgICBhc3NlcnQuaXNBYm92ZShjLmNtcCh7eDogYnVpbGRTdHJpbmdDZWxsKCd1JywgJ2JpZ2dlcicpfSwKLSAgICAgICAge3g6IGJ1aWxkU3RyaW5nQ2VsbCgndScsICdCSUcnKX0pLCAwKTsKLSAgICBhc3NlcnQuaXNCZWxvdyhjLmNtcCh7eDogYnVpbGRTdHJpbmdDZWxsKCd2JywgJ3NtYWxsJyl9LAotICAgICAgICB7eDogYnVpbGRTdHJpbmdDZWxsKCd2JywgJ3NtYUxMJyl9KSwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX2dldEltcG9ydGFuY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYyA9IG5ldyBTY2FsYXJNZW1vcnlDb2x1bW4oCi0gICAgICAgICd0ZXN0X2NvbHVtbicsICdUZXN0IENvbHVtbicsICdieXRlcycsIGZpZWxkR2V0dGVyKCd4JykpOwotCi0gICAgdmFyIHJ1bGVzMSA9IFtdOwotICAgIGFzc2VydC5lcXVhbChjLmdldEltcG9ydGFuY2UocnVsZXMxKSwgMCk7Ci0KLSAgICB2YXIgcnVsZXMyID0gWwotICAgICAgewotICAgICAgICBjb25kaXRpb246ICd0ZXN0JywKLSAgICAgICAgaW1wb3J0YW5jZTogNAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgY29uZGl0aW9uOiAvdGVzdCQvLAotICAgICAgICBpbXBvcnRhbmNlOiAyCi0gICAgICB9Ci0gICAgXTsKLSAgICBhc3NlcnQuZXF1YWwoYy5nZXRJbXBvcnRhbmNlKHJ1bGVzMiksIDEpOwotCi0gICAgdmFyIHJ1bGVzMyA9IFsKLSAgICAgIHsKLSAgICAgICAgY29uZGl0aW9uOiAndGVzdF9jb2x1bW4nLAotICAgICAgICBpbXBvcnRhbmNlOiAxMAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgaW1wb3J0YW5jZTogNQotICAgICAgfQotICAgIF07Ci0gICAgYXNzZXJ0LmVxdWFsKGMuZ2V0SW1wb3J0YW5jZShydWxlczMpLCAxMCk7Ci0KLSAgICB2YXIgcnVsZXM0ID0gWwotICAgICAgewotICAgICAgICBjb25kaXRpb246ICd0ZXN0X2NvbHVtbjInLAotICAgICAgICBpbXBvcnRhbmNlOiA4Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBjb25kaXRpb246IC9jb2x1bW4vLAotICAgICAgICBpbXBvcnRhbmNlOiAxMgotICAgICAgfQotICAgIF07Ci0gICAgYXNzZXJ0LmVxdWFsKGMuZ2V0SW1wb3J0YW5jZShydWxlczQpLCAxMik7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX21hdGNoZXNOYW1lQ29uZGl0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGMgPSBuZXcgU2NhbGFyTWVtb3J5Q29sdW1uKAotICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnYnl0ZXMnLCBmaWVsZEdldHRlcigneCcpKTsKLQotICAgIGFzc2VydC5pc1RydWUoYy5tYXRjaGVzTmFtZUNvbmRpdGlvbih1bmRlZmluZWQpKTsKLQotICAgIGFzc2VydC5pc0ZhbHNlKGMubWF0Y2hlc05hbWVDb25kaXRpb24oJ3Rlc3QnKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjLm1hdGNoZXNOYW1lQ29uZGl0aW9uKCd0ZXN0X2NvbHVtbicpKTsKLSAgICBhc3NlcnQuaXNGYWxzZShjLm1hdGNoZXNOYW1lQ29uZGl0aW9uKCd0ZXN0X2NvbHVtbjInKSk7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKGMubWF0Y2hlc05hbWVDb25kaXRpb24oL3Rlc3QvKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjLm1hdGNoZXNOYW1lQ29uZGl0aW9uKC9eW15fXSpfW15fXSokLykpOwotICAgIGFzc2VydC5pc0ZhbHNlKGMubWF0Y2hlc05hbWVDb25kaXRpb24oL3Rlc3QkLykpOwotICB9KTsKLQotICB0ZXN0KCdjaGVja1NjYWxhck1lbW9yeUNvbHVtbl92YWx1ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjID0gbmV3IFNjYWxhck1lbW9yeUNvbHVtbigKLSAgICAgICAgJ3Rlc3RfY29sdW1uJywgJ1Rlc3QgQ29sdW1uJywgJ2J5dGVzJywgZmllbGRHZXR0ZXIoJ3gnKSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGMudGl0bGUsICdUZXN0IENvbHVtbicpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChjLndpZHRoKTsKLQotICAgIC8vIFVuZGVmaW5lZCBjZWxsLgotICAgIHZhciByb3cgPSB7fTsKLSAgICBhc3NlcnQuZXF1YWwoYy52YWx1ZShyb3cpLCAnJyk7Ci0KLSAgICAvLyBEZWZpbmVkIGNlbGwuCi0gICAgdmFyIHJvdyA9IHt4OiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMTAyNCl9OwotICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHJvdykubnVtQnl0ZXMsIDEwMjQpOwotICB9KTsKLQotICB0ZXN0KCdjaGVja1NjYWxhck1lbW9yeUNvbHVtbl9jbXAnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYyA9IG5ldyBTY2FsYXJNZW1vcnlDb2x1bW4oCi0gICAgICAgICd0ZXN0X2NvbHVtbicsICdUZXN0IENvbHVtbicsICdtcycsIGZpZWxkR2V0dGVyKCd4JykpOwotCi0gICAgLy8gQ2VsbCAob3IgdGhlIGFzc29jaWF0ZWQgYXR0cmlidXRlKSB1bmRlZmluZWQgaW4gb25lIG9yIGJvdGggcm93cy4KLSAgICBhc3NlcnQuZXF1YWwoYy5jbXAoe30sIHt5OiBuZXcgTWVtb3J5Q2VsbCh1bmRlZmluZWQpfSksIDApOwotICAgIGFzc2VydC5pc0Fib3ZlKGMuY21wKHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgLTEwKX0sIHt9KSwgMCk7Ci0gICAgYXNzZXJ0LmlzQmVsb3coYy5jbXAoe30sIHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgMjApfSksIDApOwotCi0gICAgLy8gQ2VsbCBkZWZpbmVkIGluIGJvdGggcm93cwotICAgIGFzc2VydC5lcXVhbChjLmNtcCh7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIDAuMDEpfSwKLSAgICAgICAge3g6IGJ1aWxkU2NhbGFyQ2VsbCgnbXMnLCAwLjAxKX0pLCAwKTsKLSAgICBhc3NlcnQuaXNBYm92ZShjLmNtcCh7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIC0xKX0sCi0gICAgICAgIHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgLTIpfSksIDApOwotICAgIGFzc2VydC5pc0JlbG93KGMuY21wKHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgOTk5KX0sCi0gICAgICAgIHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgMTAwMCl9KSwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrRmllbGRHZXR0ZXInLCBmdW5jdGlvbigpIHsKLSAgICAvLyBaZXJvIGNlbGxzLgotICAgIHZhciBmID0gZmllbGRHZXR0ZXIoKTsKLSAgICB2YXIgcm93ID0ge2E6IDV9OwotICAgIGFzc2VydC5lcXVhbChmKHJvdyksIHJvdyk7Ci0KLSAgICAvLyBPbmUgY2VsbC4KLSAgICB2YXIgZiA9IGZpZWxkR2V0dGVyKCdwMicpOwotICAgIGFzc2VydC5lcXVhbChmKHtwMTogJ3dyb25nJywgcDI6ICdyaWdodCd9KSwgJ3JpZ2h0Jyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGYoe3AxOiAnd3JvbmcnfSkpOwotCi0gICAgLy8gTXVsdGlwbGUgY2VsbHMuCi0gICAgdmFyIGYgPSBmaWVsZEdldHRlcignYicsICdkJywgJ2YnKTsKLSAgICBhc3NlcnQuZXF1YWwoZih7YTogMCwgYjoge2M6IDAsIGQ6IHtlOiAwLCBmOiA0Mn19fSksIDQyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tFeHBhbmRUYWJsZVJvd3NSZWN1cnNpdmVseScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb2x1bW5zID0gWwotICAgICAgewotICAgICAgICB0aXRsZTogJ1NpbmdsZSBjb2x1bW4nLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZGF0YTsgfSwKLSAgICAgICAgd2lkdGg6ICcxMDBweCcKLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHJvd3MgPSBbCi0gICAgICB7Ci0gICAgICAgIGRhdGE6ICdhbGxvY2F0ZWQnLAotICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgZGF0YTogJ3Y4JwotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZGF0YTogJ29pbHBhbicsCi0gICAgICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgICAgIHsgZGF0YTogJ2hlYXBzJyB9LAotICAgICAgICAgICAgICB7IGRhdGE6ICdvYmplY3RzJyB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBkYXRhOiAnc2tpYScsCi0gICAgICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgICAgIHsgZGF0YTogJ3dheScgfSwKLSAgICAgICAgICAgICAgeyBkYXRhOiAndG9vJyB9LAotICAgICAgICAgICAgICB7IGRhdGE6ICdtYW55JyB9LAotICAgICAgICAgICAgICB7IGRhdGE6ICdzdWItJyB9LAotICAgICAgICAgICAgICB7IGRhdGE6ICdyb3dzJyB9LAotICAgICAgICAgICAgICB7IGRhdGE6ICdzbycgfSwKLSAgICAgICAgICAgICAgeyBkYXRhOiAndGhhdCcgfSwKLSAgICAgICAgICAgICAgeyBkYXRhOiAndGhleScgfSwKLSAgICAgICAgICAgICAgeyBkYXRhOiAnd291bGRuXCd0JyB9LAotICAgICAgICAgICAgICB7IGRhdGE6ICdiZScgfSwKLSAgICAgICAgICAgICAgeyBkYXRhOiAnYXV0by0nIH0sCi0gICAgICAgICAgICAgIHsgZGF0YTogJ2V4cGFuZGVkJyB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBkYXRhOiAnb3ZlcmhlYWQnLAotICAgICAgICBzdWJSb3dzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgZGF0YTogJ2ludGVybmFsX2ZyYWdtZW50YXRpb24nCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBkYXRhOiAnZXh0ZXJuYWxfZnJhZ21lbnRhdGlvbicsCi0gICAgICAgICAgICBzdWJSb3dzOiBbXQotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF07Ci0KLSAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLXRhYmxlJyk7Ci0gICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOwotICAgIHRhYmxlLnJlYnVpbGQoKTsKLQotICAgIGV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5KHRhYmxlKTsKLQotICAgIC8vICdhbGxvY2F0ZWQnIHJvdyBzaG91bGQgYmUgZXhwYW5kZWQuCi0gICAgYXNzZXJ0LmlzVHJ1ZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0pKTsKLQotICAgIC8vICdhbGxvY2F0ZWQvdjgnIHJvdyBjYW5ub3QgYmUgZXhwYW5kZWQgKG5vIHN1Yi1yb3dzKS4KLSAgICBhc3NlcnQuaXNGYWxzZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0uc3ViUm93c1swXSkpOwotCi0gICAgLy8gJ2FsbG9jYXRlZC9vaWxwYW4nIHJvdyBzaG91bGQgYmUgZXhwYW5kZWQuCi0gICAgYXNzZXJ0LmlzVHJ1ZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0uc3ViUm93c1sxXSkpOwotCi0gICAgLy8gJ2FsbG9jYXRlZC9za2lhJyByb3cgc2hvdWxkIG5vdCBiZSBleHBhbmRlZCAobW9yZSB0aGFuIDEwIHN1Yi1yb3dzKS4KLSAgICBhc3NlcnQuaXNGYWxzZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0uc3ViUm93c1syXSkpOwotCi0gICAgLy8gJ292ZXJoZWFkJyByb3cgc2hvdWxkIGJlIGV4cGFuZGVkLgotICAgIGFzc2VydC5pc1RydWUodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzFdKSk7Ci0KLSAgICAvLyAnb3ZlcmhlYWQvaW50ZXJuYWxfZnJhZ21lbnRhdGlvbicgY2Fubm90IGJlIGV4cGFuZGVkIChubyBzdWItcm93cykuCi0gICAgYXNzZXJ0LmlzRmFsc2UodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzFdLnN1YlJvd3NbMF0pKTsKLQotICAgIC8vICdvdmVyaGVhZC9leHRlcm5hbF9mcmFnbWVudGF0aW9uJyBjYW5ub3QgYmUgZXhwYW5kZWQgKG5vIHN1Yi1yb3dzKS4KLSAgICBhc3NlcnQuaXNGYWxzZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMV0uc3ViUm93c1sxXSkpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg4MmUzZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmUuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW1lbW9yeS1kdW1wLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIH0KLQotICAgICNvdmVydmlld19wYW5lLAotICAgICNkZXRhaWxzX3BhbmVfY29udGFpbmVyIHsKLSAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1jLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZSBpZD0ib3ZlcnZpZXdfcGFuZSI+Ci0gICAgPC90ci1jLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZT4KLSAgICA8ZGl2IGlkPSJkZXRhaWxzX3BhbmVfY29udGFpbmVyIj4KLSAgICA8L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLiQub3ZlcnZpZXdfcGFuZS5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdzZWxlY3RlZC1tZW1vcnktY2VsbC1jaGFuZ2VkJywgdGhpcy51cGRhdGVEZXRhaWxzUGFuZV8uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHNldCBwcm9jZXNzTWVtb3J5RHVtcHMocHJvY2Vzc01lbW9yeUR1bXBzKSB7Ci0gICAgICB0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc18gPSBwcm9jZXNzTWVtb3J5RHVtcHM7Ci0gICAgICB0aGlzLiQub3ZlcnZpZXdfcGFuZS5wcm9jZXNzTWVtb3J5RHVtcHMgPSB0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc187Ci0gICAgICB0aGlzLnVwZGF0ZURldGFpbHNQYW5lXygpOwotICAgIH0sCi0KLSAgICBnZXQgcHJvY2Vzc01lbW9yeUR1bXBzKCkgewotICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc01lbW9yeUR1bXBzXzsKLSAgICB9LAotCi0gICAgdXBkYXRlRGV0YWlsc1BhbmVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuJC5kZXRhaWxzX3BhbmVfY29udGFpbmVyLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB2YXIgc2VsZWN0ZWRNZW1vcnlDZWxsID0gdGhpcy4kLm92ZXJ2aWV3X3BhbmUuc2VsZWN0ZWRNZW1vcnlDZWxsOwotICAgICAgaWYgKCFzZWxlY3RlZE1lbW9yeUNlbGwgfHwgIXNlbGVjdGVkTWVtb3J5Q2VsbC5idWlsZERldGFpbHNQYW5lKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLiQuZGV0YWlsc19wYW5lX2NvbnRhaW5lci5hcHBlbmRDaGlsZCgKLSAgICAgICAgICBzZWxlY3RlZE1lbW9yeUNlbGwuYnVpbGREZXRhaWxzUGFuZSgpKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMmZmMmU5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMgPSB0ci5jLmFuYWx5c2lzLmNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHM7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXBzID0gY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wcygpOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tZW1vcnktZHVtcC12aWV3Jyk7Ci0gICAgdmlld0VsLnByb2Nlc3NNZW1vcnlEdW1wcyA9IHByb2Nlc3NNZW1vcnlEdW1wczsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLQotICAgIHZhciBvdmVydmlld1BhbmUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1jLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZScpOwotICAgIHZhciBvdmVydmlld1RhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgb3ZlcnZpZXdQYW5lLCAndHItYi11aS10YWJsZScpOwotICAgIGFzc2VydC5sZW5ndGhPZihvdmVydmlld1RhYmxlLnRhYmxlUm93cywgMyk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKG92ZXJ2aWV3VGFibGUudGFibGVDb2x1bW5zLCA5KTsKLQotICAgIC8vIFNlbGVjdCB0b3RhbHMgb2YgZmlyc3QgcHJvY2Vzcy4KLSAgICBvdmVydmlld1RhYmxlLnNlbGVjdGVkVGFibGVSb3cgPSBvdmVydmlld1RhYmxlLnRhYmxlUm93c1swXTsKLSAgICBvdmVydmlld1RhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXggPSAxOwotICAgIHZhciBkZXRhaWxzUGFuZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCi0gICAgICAgIHZpZXdFbCwgJ3RyLWMtYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbCgKLSAgICAgICAgZGV0YWlsc1BhbmUudm1SZWdpb25zLCBwcm9jZXNzTWVtb3J5RHVtcHNbMF0ubW9zdFJlY2VudFZtUmVnaW9ucyk7Ci0KLSAgICAvLyBTZWxlY3QgUFNTIG9mIGZpcnN0IHByb2Nlc3MuCi0gICAgb3ZlcnZpZXdUYWJsZS5zZWxlY3RlZENvbHVtbkluZGV4ID0gMjsKLSAgICB2YXIgZGV0YWlsc1BhbmUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1jLWEtbWVtb3J5LWR1bXAtdm0tcmVnaW9ucy1kZXRhaWxzLXBhbmUnKTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwoCi0gICAgICAgIGRldGFpbHNQYW5lLnZtUmVnaW9ucywgcHJvY2Vzc01lbW9yeUR1bXBzWzBdLm1vc3RSZWNlbnRWbVJlZ2lvbnMpOwotCi0gICAgLy8gU2VsZWN0IFBTUyBvZiB0aGlyZCBwcm9jZXNzLgotICAgIG92ZXJ2aWV3VGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IG92ZXJ2aWV3VGFibGUudGFibGVSb3dzWzJdOwotICAgIHZhciBkZXRhaWxzUGFuZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCi0gICAgICAgIHZpZXdFbCwgJ3RyLWMtYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChkZXRhaWxzUGFuZSk7Ci0KLSAgICAvLyBTZWxlY3Qgb2lscGFuIGR1bXAgb2Ygc2Vjb25kIHByb2Nlc3MuCi0gICAgb3ZlcnZpZXdUYWJsZS5zZWxlY3RlZENvbHVtbkluZGV4ID0gNzsKLSAgICB2YXIgZGV0YWlsc1BhbmUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1jLWEtbWVtb3J5LWR1bXAtYWxsb2NhdG9yLWRldGFpbHMtcGFuZScpOwotICAgIHZhciBkZXRhaWxzVGFibGUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICBkZXRhaWxzUGFuZSwgJ3RyLWItdWktdGFibGUnKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoZGV0YWlsc1RhYmxlLnRhYmxlUm93cywgMSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZtX3JlZ2lvbnNfZGV0YWlsc19wYW5lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE4MDhmYS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3V0aWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbWVtb3J5LWR1bXAtdm0tcmVnaW9ucy1kZXRhaWxzLXBhbmUiPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgICAgOmhvc3QgewotICAgICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgfQotCi0gICAgICAjbGFiZWwgewotICAgICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgICAgcGFkZGluZzogOHB4OwotCi0gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Ci0gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOGU4ZThlOwotICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7Ci0KLSAgICAgICAgZm9udC1zaXplOiAgMTVweDsKLSAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgICB9Ci0KLSAgICAgICNjb250ZW50cyB7Ci0gICAgICAgIGZsZXg6IDEgMCBhdXRvOwotICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwotICAgICAgICBmb250LXNpemU6IDEycHg7Ci0gICAgICB9Ci0KLSAgICAgICNjb250ZW50cyAuaW5mby10ZXh0IHsKLSAgICAgICAgcGFkZGluZzogOHB4OwotICAgICAgICBjb2xvcjogIzY2NjsKLSAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwotICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2IGlkPSJsYWJlbCI+TWVtb3J5IG1hcHM8L2Rpdj4KLSAgICA8ZGl2IGlkPSJjb250ZW50cyI+PC9kaXY+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAoZnVuY3Rpb24oKSB7Ci0gICAgLyoqCi0gICAgICogUnVsZXMgZm9yIGNsYXNzaWZ5aW5nIG1lbW9yeSBtYXBzLgotICAgICAqCi0gICAgICogVGhlc2UgcnVsZXMgYXJlIGRlcml2ZWQgZnJvbSBjb3JlL2puaS9hbmRyb2lkX29zX0RlYnVnLmNwcCBpbiBBbmRyb2lkLgotICAgICAqLwotICAgIHZhciBDTEFTU0lGSUNBVElPTl9SVUxFUyA9IHsKLSAgICAgIG5hbWU6ICdUb3RhbCcsCi0gICAgICBjaGlsZHJlbjogWwotICAgICAgICB7Ci0gICAgICAgICAgbmFtZTogJ0FuZHJvaWQnLAotICAgICAgICAgIGZpbGU6IC9eXC9kZXZcL2FzaG1lbS8sCi0gICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgbmFtZTogJ0phdmEgcnVudGltZScsCi0gICAgICAgICAgICAgIGZpbGU6IC9eXC9kZXZcL2FzaG1lbVwvZGFsdmlrLS4qJC8sCi0gICAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgbmFtZTogJ1NwYWNlcycsCi0gICAgICAgICAgICAgICAgICBmaWxlOiAvXGJzcGFjZS8sCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ05vcm1hbCcsCi0gICAgICAgICAgICAgICAgICAgICAgZmlsZTogLyhhbGxvYyl8KG1haW4pLwotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0xhcmdlJywKLSAgICAgICAgICAgICAgICAgICAgICBmaWxlOiAvbGFyZ2Uub2JqZWN0LwotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1p5Z290ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZmlsZTogL3p5Z290ZS8KLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdOb24tbW92aW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBmaWxlOiAvbm9uLm1vdmluZy8KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgbmFtZTogJ0xpbmVhciBBbGxvYycsCi0gICAgICAgICAgICAgICAgICBmaWxlOiAvTGluZWFyQWxsb2MvCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICBuYW1lOiAnSW5kaXJlY3QgUmVmZXJlbmNlIFRhYmxlJywKLSAgICAgICAgICAgICAgICAgIGZpbGU6IC9pbmRpcmVjdC5yZWYvCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICBuYW1lOiAnQ2FjaGUnLAotICAgICAgICAgICAgICAgICAgZmlsZTogL2ppdC1jb2RlLWNhY2hlLwotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgbmFtZTogJ0FjY291bnRpbmcnCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICBuYW1lOiAnQ3Vyc29yJywKLSAgICAgICAgICAgICAgZmlsZTogL0N1cnNvcldpbmRvdy8KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG5hbWU6ICdBc2htZW0nCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgbmFtZTogJ05hdGl2ZSBoZWFwJywKLSAgICAgICAgICBmaWxlOiAvXigoXFtoZWFwXF0pfChcW2Fub246KXwoXC9kZXZcL2FzaG1lbVwvbGliYyBtYWxsb2MpfCQpLwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgbmFtZTogJ1N0YWNrJywKLSAgICAgICAgICBmaWxlOiAvXlxbc3RhY2svCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBuYW1lOiAnRmlsZXMnLAotICAgICAgICAgIGZpbGU6IC9cLigoKChzbyl8KGphcil8KGFwayl8KHR0Zil8KG9kZXgpfChvYXQpfChhcmcpKSQpfChkZXgpKS8sCi0gICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgbmFtZTogJ3NvJywKLSAgICAgICAgICAgICAgZmlsZTogL1wuc28kLwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgbmFtZTogJ2phcicsCi0gICAgICAgICAgICAgIGZpbGU6IC9cLmphciQvCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICBuYW1lOiAnYXBrJywKLSAgICAgICAgICAgICAgZmlsZTogL1wuYXBrJC8KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG5hbWU6ICd0dGYnLAotICAgICAgICAgICAgICBmaWxlOiAvXC50dGYkLwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgbmFtZTogJ2RleCcsCi0gICAgICAgICAgICAgIGZpbGU6IC9cLigoZGV4KXwob2RleCQpKS8KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG5hbWU6ICdvYXQnLAotICAgICAgICAgICAgICBmaWxlOiAvXC5vYXQkLwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgbmFtZTogJ2FydCcsCi0gICAgICAgICAgICAgIGZpbGU6IC9cLmFydCQvCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgbmFtZTogJ0RldmljZXMnLAotICAgICAgICAgIGZpbGU6IC8oXlwvZGV2XC8pfChhbm9uX2lub2RlOmRtYWJ1ZikvLAotICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG5hbWU6ICdHUFUnLAotICAgICAgICAgICAgICBmaWxlOiAvXC8oKG52KXwobWFsaSl8KGtnc2wpKS8KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG5hbWU6ICdETUEnLAotICAgICAgICAgICAgICBmaWxlOiAvYW5vbl9pbm9kZTpkbWFidWYvCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgLy8gQWRkIGEgc2VwYXJhdGUgY2F0ZWdvcnkgZm9yIHRoZSBkaXNjb3VudGVkIHRyYWNpbmcgb3ZlcmhlYWQgdG8KLSAgICAgICAgICAvLyBhdm9pZCBuZWdhdGl2ZSAnVG90YWwvT3RoZXInIHNpemVzLgotICAgICAgICAgIG5hbWU6ICdEaXNjb3VudGVkIHRyYWNpbmcgb3ZlcmhlYWQnLAotICAgICAgICAgIGZpbGU6IC9cW2Rpc2NvdW50ZWQgdHJhY2luZyBvdmVyaGVhZFxdLwotICAgICAgICB9Ci0gICAgICBdCi0gICAgfTsKLQotICAgIC8qKgotICAgICAqIENyZWF0ZSBhIHRyZWUgb2YgbmVzdGVkIHJvd3MgKGNvbnRhaW5pbmcgbm8gbW1hcHMpIGNvcnJlc3BvbmRpbmcgdG8gYQotICAgICAqIHRyZWUgb2YgY2xhc3NpZmljYXRpb24gcnVsZXMuCi0gICAgICovCi0gICAgZnVuY3Rpb24gY3JlYXRlRW1wdHlSb3cocnVsZSkgewotICAgICAgdmFyIHJvdyA9IHsKLSAgICAgICAgdGl0bGU6IHJ1bGUubmFtZSwKLSAgICAgICAgcnVsZTogcnVsZSwKLSAgICAgICAgY2VsbHM6IHt9LAotICAgICAgICBzdWJSb3dzOiBbXQotICAgICAgfTsKLSAgICAgIGlmIChydWxlLmNoaWxkcmVuICE9PSB1bmRlZmluZWQpCi0gICAgICAgIHJvdy5zdWJSb3dzID0gcnVsZS5jaGlsZHJlbi5tYXAoY3JlYXRlRW1wdHlSb3cpOwotICAgICAgcmV0dXJuIHJvdzsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBoZXhTdHJpbmcoYWRkcmVzcywgaXM2NEJpdEFkZHJlc3MpIHsKLSAgICAgIHZhciBoZXhQYWRkaW5nID0gaXM2NEJpdEFkZHJlc3MgPyAnMDAwMDAwMDAwMDAwMDAwMCcgOiAnMDAwMDAwMDAnOwotICAgICAgaWYgKGFkZHJlc3MgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiAoaGV4UGFkZGluZyArIGFkZHJlc3MudG9TdHJpbmcoMTYpKS5zdWJzdHIoLWhleFBhZGRpbmcubGVuZ3RoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDbGFzc2lmeSBhIG1lbW9yeSBtYXAgYW5kIGFkZCBpdCBhcyBhIGxlYWYgcm93IHRvIGEgdHJlZSBvZiBuZXN0ZWQgcm93cy4KLSAgICAgKi8KLSAgICBmdW5jdGlvbiBjbGFzc2lmeVZNUmVnaW9uKHJvdywgdm1SZWdpb24sIGlzNjRCaXRBZGRyZXNzKSB7Ci0gICAgICB2YXIgcnVsZSA9IHJvdy5ydWxlOwotICAgICAgaWYgKHJ1bGUgPT09IHVuZGVmaW5lZCB8fAotICAgICAgICAgIHJ1bGUuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fAotICAgICAgICAgIHJ1bGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7Ci0gICAgICAgIC8vIExlYWYgcnVsZSAoY3JlYXRlIGEgc3ViLXJvdyBmb3IgdGhlIG1tYXApLgotICAgICAgICB2YXIgbWFwcGVkRmlsZSA9IHZtUmVnaW9uLm1hcHBlZEZpbGUgfHwgJyc7Ci0KLSAgICAgICAgdmFyIGNlbGxzID0ge307Ci0gICAgICAgIGZ1bmN0aW9uIGFkZENlbGxJZlZhbHVlRGVmaW5lZChjb2x1bW5OYW1lLCBhdHRyQ2xhc3MsIHVuaXRzLCB2YWx1ZSkgewotICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIHZhciBhdHRyID0gbmV3IGF0dHJDbGFzcyh1bml0cywgdmFsdWUpOwotICAgICAgICAgIHZhciBjZWxsID0gbmV3IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q2VsbChhdHRyKTsKLSAgICAgICAgICBjZWxsc1tjb2x1bW5OYW1lXSA9IGNlbGw7Ci0gICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gYWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoY29sdW1uTmFtZSwgdmFsdWUpIHsKLSAgICAgICAgICBhZGRDZWxsSWZWYWx1ZURlZmluZWQoY29sdW1uTmFtZSwKLSAgICAgICAgICAgICAgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlLCAnYnl0ZXMnLCB2YWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgYWRkQ2VsbElmVmFsdWVEZWZpbmVkKCdTdGFydCBhZGRyZXNzJywKLSAgICAgICAgICAgIHRyLm1vZGVsLlN0cmluZ0F0dHJpYnV0ZSwgJycsCi0gICAgICAgICAgICBoZXhTdHJpbmcodm1SZWdpb24uc3RhcnRBZGRyZXNzLCBpczY0Qml0QWRkcmVzcykpOwotICAgICAgICBhZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnVmlydHVhbCBzaXplJywgdm1SZWdpb24uc2l6ZUluQnl0ZXMpOwotICAgICAgICBhZGRDZWxsSWZWYWx1ZURlZmluZWQoJ1Byb3RlY3Rpb24gZmxhZ3MnLAotICAgICAgICAgICAgdHIubW9kZWwuU3RyaW5nQXR0cmlidXRlLCAnJywKLSAgICAgICAgICAgIHZtUmVnaW9uLnByb3RlY3Rpb25GbGFnc1RvU3RyaW5nKTsKLSAgICAgICAgYWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1BTUycsCi0gICAgICAgICAgICB2bVJlZ2lvbi5ieXRlU3RhdHMucHJvcG9ydGlvbmFsUmVzaWRlbnQpOwotICAgICAgICBhZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnUHJpdmF0ZSBkaXJ0eScsCi0gICAgICAgICAgICB2bVJlZ2lvbi5ieXRlU3RhdHMucHJpdmF0ZURpcnR5UmVzaWRlbnQpOwotICAgICAgICBhZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnUHJpdmF0ZSBjbGVhbicsCi0gICAgICAgICAgICB2bVJlZ2lvbi5ieXRlU3RhdHMucHJpdmF0ZUNsZWFuUmVzaWRlbnQpOwotICAgICAgICBhZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnU2hhcmVkIGRpcnR5JywKLSAgICAgICAgICAgIHZtUmVnaW9uLmJ5dGVTdGF0cy5zaGFyZWREaXJ0eVJlc2lkZW50KTsKLSAgICAgICAgYWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1NoYXJlZCBjbGVhbicsCi0gICAgICAgICAgICB2bVJlZ2lvbi5ieXRlU3RhdHMuc2hhcmVkQ2xlYW5SZXNpZGVudCk7Ci0gICAgICAgIGFkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdTd2FwcGVkJywKLSAgICAgICAgICAgIHZtUmVnaW9uLmJ5dGVTdGF0cy5zd2FwcGVkKTsKLQotICAgICAgICByb3cuc3ViUm93cy5wdXNoKHt0aXRsZTogbWFwcGVkRmlsZSwgY2VsbHM6IGNlbGxzfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgLy8gTm9uLWxlYWYgcnVsZSAoY2xhc3NpZnkgbW1hcCBmdXJ0aGVyIGRvd24gdGhlIHRyZWUpLgotICAgICAgZnVuY3Rpb24gdm1SZWdpb25NYXRjaGVzQ2hpbGRSdWxlKGNoaWxkUnVsZSkgewotICAgICAgICB2YXIgZmlsZVJlZ0V4cCA9IGNoaWxkUnVsZS5maWxlOwotICAgICAgICBpZiAoZmlsZVJlZ0V4cCA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICByZXR1cm4gZmlsZVJlZ0V4cC50ZXN0KHZtUmVnaW9uLm1hcHBlZEZpbGUpOwotICAgICAgfQotCi0gICAgICB2YXIgbWF0Y2hlZENoaWxkUnVsZUluZGV4ID0gdHIuYi5maW5kRmlyc3RJbmRleEluQXJyYXkoCi0gICAgICAgICAgcnVsZS5jaGlsZHJlbiwgdm1SZWdpb25NYXRjaGVzQ2hpbGRSdWxlKTsKLSAgICAgIGlmIChtYXRjaGVkQ2hpbGRSdWxlSW5kZXggPT09IC0xKSB7Ci0gICAgICAgIC8vIE1tYXAgYmVsb25ncyB0byB0aGUgJ090aGVyJyBub2RlIChjcmVhdGVkIGxhemlseSkuCi0gICAgICAgIG1hdGNoZWRDaGlsZFJ1bGVJbmRleCA9IHJ1bGUuY2hpbGRyZW4ubGVuZ3RoOwotICAgICAgICBpZiAobWF0Y2hlZENoaWxkUnVsZUluZGV4ID49IHJvdy5zdWJSb3dzLmxlbmd0aCkgewotICAgICAgICAgIHJvdy5zdWJSb3dzLnB1c2goewotICAgICAgICAgICAgdGl0bGU6ICdPdGhlcicsCi0gICAgICAgICAgICBjZWxsczoge30sCi0gICAgICAgICAgICBzdWJSb3dzOiBbXQotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGNsYXNzaWZ5Vk1SZWdpb24oCi0gICAgICAgICAgcm93LnN1YlJvd3NbbWF0Y2hlZENoaWxkUnVsZUluZGV4XSwgdm1SZWdpb24sIGlzNjRCaXRBZGRyZXNzKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTdW0gbW1hcCBzaXplcyB1cCB0aGUgY2xhc3NpZmljYXRpb24gdHJlZS4KLSAgICAgKgotICAgICAqIE5vdGUgdGhhdCBjbGFzc2VzIGNvbnRhaW5pbmcgbm8gbWVtb3J5IG1hcHMgd2lsbCBoYXZlIG5vIHNpemVzIChzaG93bgotICAgICAqIGFzIGVtcHR5IGNlbGxzKSBpbnN0ZWFkIG9mIHplcm9zLgotICAgICAqLwotICAgIC8vIFRPRE8ocGV0cmNlcm1hayk6IFRoaXMgY29kZSBpcyBhbG1vc3QgdGhlIHNhbWUgYXMKLSAgICAvLyBNZW1vcnlBbGxvY2F0b3JEdW1wLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXMuIENvbnNpZGVyIHNoYXJpbmcgY29kZSBiZXR3ZWVuCi0gICAgLy8gdGhlIHR3byBmdW5jdGlvbnMuCi0gICAgZnVuY3Rpb24gYWdncmVnYXRlUm93Q2VsbHMocm93KSB7Ci0gICAgICBpZiAocm93LnN1YlJvd3MgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgY2VsbHMgPSB7fTsKLQotICAgICAgcm93LnN1YlJvd3MuZm9yRWFjaChmdW5jdGlvbihzdWJSb3cpIHsKLSAgICAgICAgYWdncmVnYXRlUm93Q2VsbHMoc3ViUm93KTsKLSAgICAgICAgdHIuYi5pdGVySXRlbXMoc3ViUm93LmNlbGxzLCBmdW5jdGlvbihjb2x1bW5OYW1lKSB7Ci0gICAgICAgICAgY2VsbHNbY29sdW1uTmFtZV0gPSB0cnVlOwotICAgICAgICB9KTsKLSAgICAgIH0pOwotCi0gICAgICB0ci5iLml0ZXJJdGVtcyhjZWxscywgZnVuY3Rpb24obmFtZSkgewotICAgICAgICB2YXIgY2hpbGRBdHRyaWJ1dGVzID0gcm93LnN1YlJvd3MubWFwKGZ1bmN0aW9uKHN1YlJvdykgewotICAgICAgICAgIHZhciBjZWxsID0gc3ViUm93LmNlbGxzW25hbWVdOwotICAgICAgICAgIGlmIChjZWxsID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgIHJldHVybiBjZWxsLmF0dHI7Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgICByb3cuY2VsbHNbbmFtZV0gPSBuZXcgdHIuYy5hbmFseXNpcy5NZW1vcnlDZWxsKAotICAgICAgICAgICAgdHIubW9kZWwuQXR0cmlidXRlLmFnZ3JlZ2F0ZShjaGlsZEF0dHJpYnV0ZXMpKTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIFBvbHltZXIoewotICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ29uc2lkZXIgc2hhcmluZyBtb3JlIGNvZGUgYmV0d2VlbgotICAgICAgLy8gdHItYy1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUgYW5kCi0gICAgICAvLyB0ci1jLWEtbWVtb3J5LWR1bXAtdm0tcmVnaW9ucy1kZXRhaWxzLXBhbmUgKGUuZy4gYnkgZGVmaW5pbmcgYSBjb21tb24KLSAgICAgIC8vIGJhc2UgY2xhc3MgdHItYy1tZW1vcnktZHVtcC1kZXRhaWxzLXBhbmUpLgotCi0gICAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy52bVJlZ2lvbnNfID0gdW5kZWZpbmVkOwotICAgICAgfSwKLQotICAgICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgfSwKLQotICAgICAgc2V0IHZtUmVnaW9ucyh2bVJlZ2lvbnMpIHsKLSAgICAgICAgdGhpcy52bVJlZ2lvbnNfID0gdm1SZWdpb25zOwotICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgfSwKLQotICAgICAgZ2V0IHZtUmVnaW9ucygpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudm1SZWdpb25zXzsKLSAgICAgIH0sCi0KLSAgICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMuJC5jb250ZW50cy50ZXh0Q29udGVudCA9ICcnOwotCi0gICAgICAgIGlmICh0aGlzLnZtUmVnaW9uc18gPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHZhciBpbmZvVGV4dCA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICB0aGlzLiQuY29udGVudHMuYXBwZW5kQ2hpbGQoaW5mb1RleHQpOwotICAgICAgICAgIGluZm9UZXh0LmNsYXNzTGlzdC5hZGQoJ2luZm8tdGV4dCcpOwotICAgICAgICAgIGluZm9UZXh0LmlubmVyVGV4dCA9ICdObyBtZW1vcnkgbWFwcyBzZWxlY3RlZCc7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVJvd3NfKCk7Ci0gICAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5jcmVhdGVDb2x1bW5zXyhyb3dzKTsKLQotICAgICAgICB2YXIgdGFibGUgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAgICd0ci1iLXVpLXRhYmxlJyk7Ci0gICAgICAgIHRoaXMuJC5jb250ZW50cy5hcHBlbmRDaGlsZCh0YWJsZSk7Ci0gICAgICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKLSAgICAgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLQotICAgICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBUaGlzIGNhbiBiZSBxdWl0ZSBzbG93LiBDb25zaWRlciBkb2luZyB0aGlzIHNvbWVob3cKLSAgICAgICAgLy8gYXN5bmNocm9ub3VzbHkuCi0gICAgICAgIHRhYmxlLnJlYnVpbGQoKTsKLQotICAgICAgICB0ci5jLmFuYWx5c2lzLmV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5KHRhYmxlKTsKLSAgICAgIH0sCi0KLSAgICAgIGNyZWF0ZVJvd3NfOiBmdW5jdGlvbigpIHsKLSAgICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogRmlndXJlIG91dCBpZiB0aGVyZSdzIGEgY2xlYW5lciB3YXkgdG8gZG8gdGhpcy4KLSAgICAgICAgdmFyIGlzNjRCaXRBZGRyZXNzID0gdGhpcy52bVJlZ2lvbnNfLnNvbWUoZnVuY3Rpb24odm1SZWdpb24pIHsKLSAgICAgICAgICBpZiAodm1SZWdpb24uc3RhcnRBZGRyZXNzID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgcmV0dXJuIHZtUmVnaW9uLnN0YXJ0QWRkcmVzcyA+PSA0Mjk0OTY3Mjk2IC8qIDJeMzIgKi87Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSB0cmVlIHN0cnVjdHVyZSBvZiByb3dzLgotICAgICAgICB2YXIgcm9vdFJvdyA9IGNyZWF0ZUVtcHR5Um93KENMQVNTSUZJQ0FUSU9OX1JVTEVTKTsKLQotICAgICAgICAvLyBDbGFzc2lmeSB0aGUgbW1hcHMuCi0gICAgICAgIHRoaXMudm1SZWdpb25zXy5tYXAoZnVuY3Rpb24odm1SZWdpb24pIHsKLSAgICAgICAgICBjbGFzc2lmeVZNUmVnaW9uKHJvb3RSb3csIHZtUmVnaW9uLCBpczY0Qml0QWRkcmVzcyk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIEFnZ3JlZ2F0ZSBhdHRyaWJ1dGVzIG9mIHRoZSBtbWFwcy4KLSAgICAgICAgYWdncmVnYXRlUm93Q2VsbHMocm9vdFJvdyk7Ci0KLSAgICAgICAgcmV0dXJuIFtyb290Um93XTsKLSAgICAgIH0sCi0KLSAgICAgIGNyZWF0ZUNvbHVtbnNfOiBmdW5jdGlvbihyb3dzKSB7Ci0gICAgICAgIHZhciB0aXRsZUNvbHVtbiA9IHsKLSAgICAgICAgICB0aXRsZTogJ01hcHBlZCBmaWxlJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93LnRpdGxlOwotICAgICAgICAgIH0sCi0gICAgICAgICAgd2lkdGg6ICcyMDBweCcsCi0gICAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93QS50aXRsZS5sb2NhbGVDb21wYXJlKHJvd0IudGl0bGUpOwotICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICB2YXIgYXR0cmlidXRlQ29sdW1ucyA9IHRyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLmZyb21Sb3dzKAotICAgICAgICAgICAgcm93cywgJ2NlbGxzJyk7Ci0gICAgICAgIHRyLmMuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShhdHRyaWJ1dGVDb2x1bW5zKTsKLQotICAgICAgICB2YXIgY29sdW1ucyA9IFt0aXRsZUNvbHVtbl0uY29uY2F0KGF0dHJpYnV0ZUNvbHVtbnMpOwotICAgICAgICByZXR1cm4gY29sdW1uczsKLSAgICAgIH0KLSAgICB9KTsKLSAgfSkoKTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF92bV9yZWdpb25zX2RldGFpbHNfcGFuZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmVfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTIxZDJlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF92bV9yZWdpb25zX2RldGFpbHNfcGFuZV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiCi0gICAgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIFZNUmVnaW9uID0gdHIubW9kZWwuVk1SZWdpb247Ci0KLSAgZnVuY3Rpb24gY3JlYXRlVk1SZWdpb25zKCkgewotICAgIHJldHVybiBbCi0gICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7Ci0gICAgICAgIG1hcHBlZEZpbGU6ICcvbGliL2Nocm9tZS5zbycsCi0gICAgICAgIHN0YXJ0QWRkcmVzczogNjU1MzYsCi0gICAgICAgIHNpemVJbkJ5dGVzOiA1MzY4NzA5MTIsCi0gICAgICAgIHByb3RlY3Rpb25GbGFnczogVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfAotICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX0VYRUNVVEUsCi0gICAgICAgIGJ5dGVTdGF0czogewotICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiA4MTkyCi0gICAgICAgIH0KLSAgICAgIH0pLAotICAgICAgVk1SZWdpb24uZnJvbURpY3QoewotICAgICAgICBzdGFydEFkZHJlc3M6IDEwOTk1MTE2Mjc3NzYwLAotICAgICAgICBzaXplSW5CeXRlczogMjE0NzQ4MzY0OCwKLSAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8Ci0gICAgICAgICAgICBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfV1JJVEUsCi0gICAgICAgIGJ5dGVTdGF0czogewotICAgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiAwLAotICAgICAgICAgIHN3YXBwZWQ6IDAKLSAgICAgICAgfQotICAgICAgfSksCi0gICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7Ci0gICAgICAgIHN0YXJ0QWRkcmVzczogMTIwOTQ2Mjc5MDU1MzYsCi0gICAgICAgIHNpemVJbkJ5dGVzOiAyMTQ3NDgzNjQ4LAotICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKLSAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURSwKLSAgICAgICAgYnl0ZVN0YXRzOiB7Ci0gICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDAsCi0gICAgICAgICAgc3dhcHBlZDogMAotICAgICAgICB9Ci0gICAgICB9KQotICAgIF07Ci0gIH0KLQotICBmdW5jdGlvbiBjaGVja1Jvd1ZhbHVlKHJvdywgY29sdW1uLCBleHBlY3RlZFZhbHVlKSB7Ci0gICAgdmFyIHZhbHVlID0gY29sdW1uLnZhbHVlKHJvdyk7Ci0gICAgaWYgKHR5cGVvZihleHBlY3RlZFZhbHVlKSA9PT0gJ251bWJlcicpCi0gICAgICB2YWx1ZSA9IHZhbHVlLm51bUJ5dGVzOwotICAgIGFzc2VydC5lcXVhbCh2YWx1ZSwgZXhwZWN0ZWRWYWx1ZSk7Ci0gIH0KLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9lbXB0eScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAndHItYy1hLW1lbW9yeS1kdW1wLXZtLXJlZ2lvbnMtZGV0YWlscy1wYW5lJyk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX25vbkVtcHR5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZtUmVnaW9ucyA9IGNyZWF0ZVZNUmVnaW9ucygpOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCi0gICAgICAgICd0ci1jLWEtbWVtb3J5LWR1bXAtdm0tcmVnaW9ucy1kZXRhaWxzLXBhbmUnKTsKLSAgICB2aWV3RWwudm1SZWdpb25zID0gdm1SZWdpb25zOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotCi0gICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgdmlld0VsLCAndHItYi11aS10YWJsZScpOwotCi0gICAgdmFyIGNvbHVtbnMgPSB0YWJsZS50YWJsZUNvbHVtbnM7Ci0KLSAgICBhc3NlcnQubGVuZ3RoT2YoY29sdW1ucywgNyk7Ci0gICAgdmFyIHRpdGxlQ29sdW1uID0gY29sdW1uc1swXTsKLSAgICB2YXIgdmlydHVhbFNpemVDb2x1bW4gPSBjb2x1bW5zWzFdOwotICAgIHZhciBwcm9wb3J0aW9uYWxSZXNpZGVudENvbHVtbiA9IGNvbHVtbnNbMl07Ci0gICAgdmFyIHByaXZhdGVEaXJ0eVJlc2lkZW50Q29sdW1uID0gY29sdW1uc1szXTsKLSAgICB2YXIgc3dhcHBlZENvbHVtbiA9IGNvbHVtbnNbNF07Ci0gICAgdmFyIHN0YXJ0QWRkcmVzc0NvbHVtbiA9IGNvbHVtbnNbNV07Ci0gICAgdmFyIHByb3RlY3Rpb25GbGFnc0NvbHVtbiA9IGNvbHVtbnNbNl07Ci0KLSAgICBmdW5jdGlvbiBjaGVja1Jvdyhyb3csIGV4cGVjdGVkVGl0bGUsIGV4cGVjdGVkVmlydHVhbFNpemUsCi0gICAgICAgIGV4cGVjdGVkUHJvcG9ydGlvbmFsUmVzaWRlbnQsIGV4cGVjdGVkUHJpdmF0ZURpcnR5UmVzaWRlbnQsCi0gICAgICAgIGV4cGVjdGVkU3dhcHBlZCwgZXhwZWN0ZWRTdGFydEFkZHJlc3MsIGV4cGVjdGVkUHJvdGVjdGlvbkZsYWdzLAotICAgICAgICBleHBlY3RlZFN1YlJvd0NvdW50KSB7Ci0gICAgICBjaGVja1Jvd1ZhbHVlKHJvdywgdGl0bGVDb2x1bW4sIGV4cGVjdGVkVGl0bGUpOwotICAgICAgY2hlY2tSb3dWYWx1ZShyb3csIHZpcnR1YWxTaXplQ29sdW1uLCBleHBlY3RlZFZpcnR1YWxTaXplKTsKLSAgICAgIGNoZWNrUm93VmFsdWUoCi0gICAgICAgICAgcm93LCBwcm9wb3J0aW9uYWxSZXNpZGVudENvbHVtbiwgZXhwZWN0ZWRQcm9wb3J0aW9uYWxSZXNpZGVudCk7Ci0gICAgICBjaGVja1Jvd1ZhbHVlKAotICAgICAgICAgIHJvdywgcHJpdmF0ZURpcnR5UmVzaWRlbnRDb2x1bW4sIGV4cGVjdGVkUHJpdmF0ZURpcnR5UmVzaWRlbnQpOwotICAgICAgY2hlY2tSb3dWYWx1ZShyb3csIHN3YXBwZWRDb2x1bW4sIGV4cGVjdGVkU3dhcHBlZCk7Ci0gICAgICBjaGVja1Jvd1ZhbHVlKHJvdywgc3RhcnRBZGRyZXNzQ29sdW1uLCBleHBlY3RlZFN0YXJ0QWRkcmVzcyk7Ci0gICAgICBjaGVja1Jvd1ZhbHVlKHJvdywgcHJvdGVjdGlvbkZsYWdzQ29sdW1uLCBleHBlY3RlZFByb3RlY3Rpb25GbGFncyk7Ci0KLSAgICAgIGlmIChleHBlY3RlZFN1YlJvd0NvdW50ID09PSB1bmRlZmluZWQpCi0gICAgICAgIGFzc2VydC5pc1VuZGVmaW5lZChyb3cuc3ViUm93cyk7Ci0gICAgICBlbHNlCi0gICAgICAgIGFzc2VydC5sZW5ndGhPZihyb3cuc3ViUm93cywgZXhwZWN0ZWRTdWJSb3dDb3VudCk7Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sgdGhlIHJvd3Mgb2YgdGhlIHRhYmxlLgotICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOwotICAgIGFzc2VydC5sZW5ndGhPZihyb3dzLCAxKTsKLQotICAgIHZhciB0b3RhbFJvdyA9IHJvd3NbMF07Ci0gICAgY2hlY2tSb3codG90YWxSb3csICdUb3RhbCcsIDQ4MzE4MzgyMDgsIDgxOTIsIDAsIDAsICcnLCAnJywgNyk7Ci0KLSAgICB2YXIgYW5kcm9pZFJvdyA9IHRvdGFsUm93LnN1YlJvd3NbMF07Ci0gICAgY2hlY2tSb3coYW5kcm9pZFJvdywgJ0FuZHJvaWQnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAzKTsKLQotICAgIHZhciBqYXZhUnVudGltZVJvdyA9IGFuZHJvaWRSb3cuc3ViUm93c1swXTsKLSAgICBjaGVja1JvdyhqYXZhUnVudGltZVJvdywgJ0phdmEgcnVudGltZScsICcnLCAnJywgJycsICcnLCAnJywgJycsIDUpOwotCi0gICAgdmFyIHNwYWNlc1JvdyA9IGphdmFSdW50aW1lUm93LnN1YlJvd3NbMF07Ci0gICAgY2hlY2tSb3coc3BhY2VzUm93LCAnU3BhY2VzJywgJycsICcnLCAnJywgJycsICcnLCAnJywgNCk7Ci0KLSAgICB2YXIgbm9ybWFsUm93ID0gc3BhY2VzUm93LnN1YlJvd3NbMF07Ci0gICAgY2hlY2tSb3cobm9ybWFsUm93LCAnTm9ybWFsJywgJycsICcnLCAnJywgJycsICcnLCAnJywgMCk7Ci0KLSAgICB2YXIgZmlsZXNSb3cgPSB0b3RhbFJvdy5zdWJSb3dzWzNdOwotICAgIGNoZWNrUm93KGZpbGVzUm93LCAnRmlsZXMnLCA1MzY4NzA5MTIsIDgxOTIsICcnLCAnJywgJycsICcnLCA3KTsKLQotICAgIHZhciBzb1JvdyA9IGZpbGVzUm93LnN1YlJvd3NbMF07Ci0gICAgY2hlY2tSb3coc29Sb3csICdzbycsIDUzNjg3MDkxMiwgODE5MiwgJycsICcnLCAnJywgJycsIDEpOwotCi0gICAgdmFyIG1tYXBDaHJvbWVSb3cgPSBzb1Jvdy5zdWJSb3dzWzBdOwotICAgIGNoZWNrUm93KG1tYXBDaHJvbWVSb3csICcvbGliL2Nocm9tZS5zbycsIDUzNjg3MDkxMiwgODE5MiwgJycsICcnLAotICAgICAgICAnMDAwMDAwMDAwMDAxMDAwMCcsICdyLXgnLCB1bmRlZmluZWQpOwotCi0gICAgdmFyIG90aGVyUm93ID0gdG90YWxSb3cuc3ViUm93c1s2XTsKLSAgICBjaGVja1JvdyhvdGhlclJvdywgJ090aGVyJywgNDI5NDk2NzI5NiwgJycsIDAsIDAsICcnLCAnJywgMik7Ci0KLSAgICB2YXIgbW1hcE90aGVyMlJvdyA9IG90aGVyUm93LnN1YlJvd3NbMV07Ci0gICAgY2hlY2tSb3cobW1hcE90aGVyMlJvdywgJycsIDIxNDc0ODM2NDgsICcnLCAwLCAwLCAnMDAwMDBiMDAwMDAwMDAwMCcsCi0gICAgICAgICdydy0nLCB1bmRlZmluZWQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9hc3luY19zbGljZV9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzdhMmNiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9hc3luY19zbGljZV9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktYXN5bmMtc2xpY2Utc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcgaWQ9ImNvbnRlbnQiPjwvdHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3PgotICA8L3RlbXBsYXRlPgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpIHsKLSAgICAgIGlmICghdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8uZm9yRWFjaChmdW5jdGlvbihhc3luY0V2ZW50KSB7Ci0gICAgICAgIGlmICghYXN5bmNFdmVudC5hc3NvY2lhdGVkRXZlbnRzKQotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXN5bmNFdmVudC5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICBzZWxlY3Rpb24ucHVzaChldmVudCk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQzMzcxYS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1jcHUtc2xpY2Utc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICAjY29udGVudCB7Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8dHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldz4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLmNvbnRlbnQuZXZlbnRzSGF2ZVN1YlJvd3MgPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLiQuY29udGVudC5zZWxlY3Rpb247Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLiQuY29udGVudC5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2NwdV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfY3B1X3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk3MDU2YS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfY3B1X3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gY3JlYXRlQmFzaWNNb2RlbCgpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnQW5kcm9pZC5sYXVuY2hlci01ODQgICBbMDAxXSBkLi4zIDEyNjIyLjUwNjg5MDogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QW5kcm9pZC5sYXVuY2hlciBwcmV2X3BpZD01ODQgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIrID09PiBuZXh0X2NvbW09QmluZGVyXzEgbmV4dF9waWQ9MjE3IG5leHRfcHJpbz0xMjAnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSBkLi4zIDEyNjIyLjUwNjkxODogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QmluZGVyXzEgcHJldl9waWQ9MjE3IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1EID09PiBuZXh0X2NvbW09QW5kcm9pZC5sYXVuY2hlciBuZXh0X3BpZD01ODQgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAnQW5kcm9pZC5sYXVuY2hlci01ODQgICBbMDAxXSBkLi40IDEyNjIyLjUwNjkzNjogc2NoZWRfd2FrZXVwOiBjb21tPUJpbmRlcl8xIHBpZD0yMTcgcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAxJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjMgMTI2MjIuNTA2OTUwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1BbmRyb2lkLmxhdW5jaGVyIHByZXZfcGlkPTU4NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UisgPT0+IG5leHRfY29tbT1CaW5kZXJfMSBuZXh0X3BpZD0yMTcgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIC4uLjEgMTI2MjIuNTA3MDU3OiB0cmFjaW5nX21hcmtfd3JpdGU6IEJ8MTI4fHF1ZXVlQnVmZmVyJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gLi4uMSAxMjYyMi41MDcxNzU6IHRyYWNpbmdfbWFya193cml0ZTogRScsCi0gICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIGQuLjMgMTI2MjIuNTA3MjUzOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1CaW5kZXJfMSBwcmV2X3BpZD0yMTcgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1BbmRyb2lkLmxhdW5jaGVyIG5leHRfcGlkPTU4NCBuZXh0X3ByaW89MTIwJyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0KLSAgICByZXR1cm4gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgfQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBjcmVhdGVCYXNpY01vZGVsKCk7Ci0gICAgdmFyIGNwdSA9IG0ua2VybmVsLmNwdXNbMV07Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChjcHUpOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKGNwdS5zbGljZXNbMF0pOwotICAgIHNlbGVjdGlvbi5wdXNoKGNwdS5zbGljZXNbMV0pOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1jcHUtc2xpY2Utc3ViLXZpZXcnKTsKLSAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfZGV0YWlsc190YWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDVhNjU1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLWMtYS1tdWx0aS1ldmVudC1kZXRhaWxzLXRhYmxlJz4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICB9Ci0gICAgI3RhYmxlIHsKLSAgICAgIGZsZXg6IDEgMSBhdXRvOwotICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKLSAgICB9Ci0KLSAgICAjdGl0bGV0YWJsZSB7Ci0gICAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICB9Ci0KLSAgICAjdGl0bGUtaW5mbyB7Ci0gICAgICBmb250LXNpemU6IDEycHg7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPHRyLWItdWktdGFibGUgaWQ9InRpdGxldGFibGUiPgotICAgIDwvdHItYi11aS10YWJsZT4KLSAgICA8dHItYi11aS10YWJsZSBpZD0idGFibGUiPgotICAgIDwvdHItYi11aS10YWJsZT4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSB0cnVlOwotICAgICAgdGhpcy5ldmVudHNIYXZlU3ViUm93c18gPSB0cnVlOwotICAgIH0sCi0KLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmluaXRUaXRsZVRhYmxlXygpOwotICAgIH0sCi0KLSAgICBnZXQgZXZlbnRzSGF2ZUR1cmF0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IGV2ZW50c0hhdmVEdXJhdGlvbihldmVudHNIYXZlRHVyYXRpb24pIHsKLSAgICAgIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyA9IGV2ZW50c0hhdmVEdXJhdGlvbjsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBldmVudHNIYXZlU3ViUm93cygpIHsKLSAgICAgIHJldHVybiB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXzsKLSAgICB9LAotCi0gICAgc2V0IGV2ZW50c0hhdmVTdWJSb3dzKGV2ZW50c0hhdmVTdWJSb3dzKSB7Ci0gICAgICB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyA9IGV2ZW50c0hhdmVTdWJSb3dzOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uXzsKLQotICAgICAgdGhpcy51cGRhdGVUaXRsZVRhYmxlXygpOwotCi0gICAgICBpZiAodGhpcy5zZWxlY3Rpb25fID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IFtdOwotICAgICAgICB0aGlzLiQudGFibGUudGFibGVGb290ZXJSb3dzID0gW107Ci0gICAgICAgIHRoaXMuJC50YWJsZS5yZWJ1aWxkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIHN1bW1hcnkgPSBuZXcgdHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSgKLSAgICAgICAgICAnVG90YWxzJywgdGhpcy5zZWxlY3Rpb25fKTsKLSAgICAgIHRoaXMudXBkYXRlQ29sdW1uc18oc3VtbWFyeSk7Ci0gICAgICB0aGlzLnVwZGF0ZVJvd3NfKHN1bW1hcnkpOwotICAgICAgdGhpcy4kLnRhYmxlLnJlYnVpbGQoKTsKLSAgICB9LAotCi0gICAgaW5pdFRpdGxlVGFibGVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC50aXRsZXRhYmxlOwotCi0gICAgICB0YWJsZS5zaG93SGVhZGVyID0gZmFsc2U7Ci0gICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ1RpdGxlJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudGl0bGU7IH0sCi0gICAgICAgICAgd2lkdGg6ICczNTBweCcKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIHRpdGxlOiAnVmFsdWUnLAotICAgICAgICAgIHdpZHRoOiAnMTAwJScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHJvdy52YWx1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIF07Ci0gICAgfSwKLQotICAgIHVwZGF0ZVRpdGxlVGFibGVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0aXRsZTsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbl8gJiYgdGhpcy5zZWxlY3Rpb25fLmxlbmd0aCkKLSAgICAgICAgdGl0bGUgPSB0aGlzLnNlbGVjdGlvbl9bMF0udGl0bGU7Ci0gICAgICBlbHNlCi0gICAgICAgIHRpdGxlID0gJzxObyBzZWxlY3Rpb24+JzsKLQotICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLnRpdGxldGFibGU7Ci0gICAgICB0YWJsZS50YWJsZVJvd3MgPSBbewotICAgICAgICB0aXRsZTogJ1RpdGxlJywKLSAgICAgICAgdmFsdWU6IHRpdGxlCi0gICAgICB9XTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29sdW1uc186IGZ1bmN0aW9uKHN1bW1hcnkpIHsKLSAgICAgIHZhciBoYXNDcHVEYXRhOwotICAgICAgaWYgKHN1bW1hcnkuY3B1RHVyYXRpb24gIT09IHVuZGVmaW5lZCkKLSAgICAgICAgaGFzQ3B1RGF0YSA9IHRydWU7Ci0gICAgICBpZiAoc3VtbWFyeS5jcHVTZWxmVGltZSAhPT0gdW5kZWZpbmVkKQotICAgICAgICBoYXNDcHVEYXRhID0gdHJ1ZTsKLQotICAgICAgdmFyIGNvbFdpZHRoUGVyY2VudGFnZTsKLSAgICAgIGlmIChoYXNDcHVEYXRhKQotICAgICAgICBjb2xXaWR0aFBlcmNlbnRhZ2UgPSAnMjAlJzsKLSAgICAgIGVsc2UKLSAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gJzMzLjMzMzMlJzsKLQotICAgICAgdmFyIGNvbHVtbnMgPSBbXTsKLQotICAgICAgY29sdW1ucy5wdXNoKHsKLSAgICAgICAgdGl0bGU6ICdTdGFydCcsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICBpZiAocm93Ll9fcHJvdG9fXyA9PT0gdHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGUpIHsKLSAgICAgICAgICAgIHJldHVybiByb3cudGl0bGU7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgdmFyIGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICAgICAgbGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24ocm93LmV2ZW50KTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgICBsaW5rRWwuYXBwZW5kQ2hpbGQodHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKHJvdy5zdGFydCkpOwotICAgICAgICAgIHJldHVybiBsaW5rRWw7Ci0gICAgICAgIH0sCi0gICAgICAgIHdpZHRoOiAnMzUwcHgnLAotICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICByZXR1cm4gcm93QS5zdGFydCAtIHJvd0Iuc3RhcnQ7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotCi0gICAgICBpZiAodGhpcy5ldmVudHNIYXZlRHVyYXRpb25fKSB7Ci0gICAgICAgIGNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAgdGl0bGU6ICdXYWxsIER1cmF0aW9uIChtcyknLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIHJldHVybiB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTcGFuKHJvdy5kdXJhdGlvbik7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3aWR0aDogJzx1cGF0ZWQgZnVydGhlciBkb3duPicsCi0gICAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93QS5kdXJhdGlvbiAtIHJvd0IuZHVyYXRpb247Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyAmJiBoYXNDcHVEYXRhKSB7Ci0gICAgICAgIGNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAgdGl0bGU6ICdDUFUgRHVyYXRpb24gKG1zKScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LmNwdUR1cmF0aW9uKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICAgIHJldHVybiByb3dBLmNwdUR1cmF0aW9uIC0gcm93Qi5jcHVEdXJhdGlvbjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5ldmVudHNIYXZlU3ViUm93c18gJiYgdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fKSB7Ci0gICAgICAgIGNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAgdGl0bGU6ICdTZWxmIHRpbWUgKG1zKScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LnNlbGZUaW1lKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICAgIHJldHVybiByb3dBLnNlbGZUaW1lIC0gcm93Qi5zZWxmVGltZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5ldmVudHNIYXZlU3ViUm93c18gJiYgdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fICYmIGhhc0NwdURhdGEpIHsKLSAgICAgICAgY29sdW1ucy5wdXNoKHsKLSAgICAgICAgICB0aXRsZTogJ0NQVSBTZWxmIFRpbWUgKG1zKScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LmNwdVNlbGZUaW1lKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICAgIHJldHVybiByb3dBLmNwdVNlbGZUaW1lIC0gcm93Qi5jcHVTZWxmVGltZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgfQotCi0gICAgICB2YXIgYXJnS2V5cyA9IHRyLmIuZGljdGlvbmFyeUtleXMoc3VtbWFyeS50b3RhbGxlZEFyZ3MpOwotICAgICAgYXJnS2V5cy5zb3J0KCk7Ci0KLSAgICAgIHZhciBvdGhlcktleXMgPSBzdW1tYXJ5LnVudG90YWxsYWJsZUFyZ3Muc2xpY2UoMCk7Ci0gICAgICBvdGhlcktleXMuc29ydCgpOwotCi0gICAgICBhcmdLZXlzLnB1c2guYXBwbHkoYXJnS2V5cywgb3RoZXJLZXlzKTsKLSAgICAgIHZhciBrZXlzV2l0aENvbHVtbnMgPSBhcmdLZXlzLnNsaWNlKDAsIDQpOwotICAgICAgdmFyIGtleXNJbk90aGVyQ29sdW1uID0gYXJnS2V5cy5zbGljZSg0KTsKLQotICAgICAga2V5c1dpdGhDb2x1bW5zLmZvckVhY2goZnVuY3Rpb24oYXJnS2V5KSB7Ci0KLSAgICAgICAgdmFyIGhhc1RvdGFsID0gc3VtbWFyeS50b3RhbGxlZEFyZ3NbYXJnS2V5XTsKLSAgICAgICAgdmFyIGNvbERlc2MgPSB7Ci0gICAgICAgICAgdGl0bGU6ICdBcmc6ICcgKyBhcmdLZXksCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgaWYgKHJvdy5fX3Byb3RvX18gIT09IHRyLmMuYW5hbHlzaXMuTXVsdGlFdmVudFN1bW1hcnkucHJvdG90eXBlKSB7Ci0gICAgICAgICAgICAgIHZhciBhcmdWaWV3ID0KLSAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgICAgICAgICAgIGFyZ1ZpZXcub2JqZWN0ID0gcm93LmFyZ3NbYXJnS2V5XTsKLSAgICAgICAgICAgICAgcmV0dXJuIGFyZ1ZpZXc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaGFzVG90YWwpCi0gICAgICAgICAgICAgIHJldHVybiByb3cudG90YWxsZWRBcmdzW2FyZ0tleV07Ci0gICAgICAgICAgICByZXR1cm4gJyc7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3aWR0aDogJzx1cGF0ZWQgZnVydGhlciBkb3duPicKLSAgICAgICAgfTsKLSAgICAgICAgaWYgKGhhc1RvdGFsKSB7Ci0gICAgICAgICAgY29sRGVzYy5jbXAgPSBmdW5jdGlvbihyb3dBLCByb3dCKSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93QS5hcmdzW2FyZ0tleV0gLSByb3dCLmFyZ3NbYXJnS2V5XTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY29sdW1ucy5wdXNoKGNvbERlc2MpOwotICAgICAgfSk7Ci0KLSAgICAgIGlmIChrZXlzSW5PdGhlckNvbHVtbi5sZW5ndGgpIHsKLSAgICAgICAgY29sdW1ucy5wdXNoKHsKLSAgICAgICAgICB0aXRsZTogJ090aGVyIEFyZ3MnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIGlmIChyb3cuX19wcm90b19fID09PSB0ci5jLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5LnByb3RvdHlwZSkKLSAgICAgICAgICAgICAgcmV0dXJuICcnOwotICAgICAgICAgICAgdmFyIGFyZ1ZpZXcgPQotICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgICAgICAgICB2YXIgb2JqID0ge307Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXNJbk90aGVyQ29sdW1uLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICBvYmpba2V5c0luT3RoZXJDb2x1bW5baV1dID0gcm93LmFyZ3Nba2V5c0luT3RoZXJDb2x1bW5baV1dOwotICAgICAgICAgICAgYXJnVmlldy5vYmplY3QgPSBvYmo7Ci0gICAgICAgICAgICByZXR1cm4gYXJnVmlldzsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JwotICAgICAgICB9KTsKLSAgICAgIH0KLQotICAgICAgdmFyIGNvbFdpZHRoUGVyY2VudGFnZTsKLSAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PSAxKQotICAgICAgICBjb2xXaWR0aFBlcmNlbnRhZ2UgPSAnMTAwJSc7Ci0gICAgICBlbHNlCi0gICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICgxMDAgLyAoY29sdW1ucy5sZW5ndGggLSAxKSkudG9GaXhlZCgzKSArICclJzsKLQotICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKQotICAgICAgICBjb2x1bW5zW2ldLndpZHRoID0gY29sV2lkdGhQZXJjZW50YWdlOwotCi0gICAgICB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICB9LAotCi0gICAgdXBkYXRlUm93c186IGZ1bmN0aW9uKHN1bW1hcnkpIHsKLSAgICAgIHRoaXMuJC50YWJsZS5zb3J0Q29sdW1uSW5kZXggPSAwOwotICAgICAgZnVuY3Rpb24gUm93KGV2ZW50KSB7Ci0gICAgICAgIHRoaXMuZXZlbnQgPSBldmVudDsKLSAgICAgIH0KLSAgICAgIFJvdy5wcm90b3R5cGUgPSB7Ci0gICAgICAgIGdldCBzdGFydCgpIHsgcmV0dXJuIHRoaXMuZXZlbnQuc3RhcnQ7IH0sCi0gICAgICAgIGdldCBkdXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuZXZlbnQuZHVyYXRpb247IH0sCi0gICAgICAgIGdldCBjcHVEdXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuZXZlbnQuY3B1RHVyYXRpb247IH0sCi0gICAgICAgIGdldCBzZWxmVGltZSgpIHsgcmV0dXJuIHRoaXMuZXZlbnQuc2VsZlRpbWU7IH0sCi0gICAgICAgIGdldCBjcHVTZWxmVGltZSgpIHsgcmV0dXJuIHRoaXMuZXZlbnQuY3B1U2VsZlRpbWU7IH0sCi0gICAgICAgIGdldCBhcmdzKCkgeyByZXR1cm4gdGhpcy5ldmVudC5hcmdzOyB9Ci0gICAgICB9OwotCi0gICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gdGhpcy5zZWxlY3Rpb25fLm1hcChmdW5jdGlvbihldmVudCkgewotICAgICAgICByZXR1cm4gbmV3IFJvdyhldmVudCk7Ci0gICAgICB9KTsKLSAgICAgIHRoaXMuJC50YWJsZS5mb290ZXJSb3dzID0gW3N1bW1hcnldOwotICAgIH0KLSAgfSk7Ci08L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgotCi0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlkYTk3Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfZGV0YWlsc190YWJsZV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X2RldGFpbHNfdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIE1vZGVsID0gdHIuTW9kZWw7Ci0gIHZhciBUaHJlYWQgPSB0ci5tb2RlbC5UaHJlYWQ7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKLQotICB0ZXN0KCdzb3J0aW5nT2ZGaXJzdENvbHVtbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOwotICAgIHZhciBzQSA9IHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDEsIGVuZDogMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAxLCBjcHVFbmQ6IDEuNzV9KSk7Ci0gICAgdmFyIHNCID0gdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDAsIGNwdUVuZDogM30pKTsKLSAgICB2YXIgc0MgPSB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiA0LCBlbmQ6IDUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMywgY3B1RW5kOiAzLjc1fSkpOwotICAgIHRzZy5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIHZhciB0aHJlYWRUcmFjayA9IHt9OwotICAgIHRocmVhZFRyYWNrLnRocmVhZCA9IHRocmVhZDsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHRzZy5zbGljZXMpOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1kZXRhaWxzLXRhYmxlJyk7Ci0gICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLQotICAgIHZhciB0YWJsZSA9IHZpZXdFbC4kLnRhYmxlOwotICAgIHZhciBjbXBSZXN1bHQgPSB0YWJsZS50YWJsZUNvbHVtbnNbMF0uY21wKHNBLCBzQik7Ci0gICAgYXNzZXJ0LmVxdWFsKGNtcFJlc3VsdCwgMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3dpdGhDcHVUaW1lJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7Ci0gICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7Ci0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDAsIGNwdUVuZDogM30pKTsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAxLCBlbmQ6IDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMSwgY3B1RW5kOiAxLjc1fSkpOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDQsIGVuZDogNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAzLCBjcHVFbmQ6IDMuNzV9KSk7Ci0gICAgdHNnLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgdmFyIHRocmVhZFRyYWNrID0ge307Ci0gICAgdGhyZWFkVHJhY2sudGhyZWFkID0gdGhyZWFkOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24odHNnLnNsaWNlcyk7Ci0KLSAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTsKLSAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotICB9KTsKLQotICB0ZXN0KCd3aXRob3V0Q3B1VGltZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogM30pKTsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAxLCBlbmQ6IDJ9KSk7Ci0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogNCwgZW5kOiA1fSkpOwotICAgIHRzZy5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIHZhciB0aHJlYWRUcmFjayA9IHt9OwotICAgIHRocmVhZFRyYWNrLnRocmVhZCA9IHRocmVhZDsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHRzZy5zbGljZXMpOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1kZXRhaWxzLXRhYmxlJyk7Ci0gICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci0KLQotICB0ZXN0KCd3aXRoRmV3ZXJUaGFuRm91ckFyZ3MnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKLSAgICB2YXIgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHZhciB0c2cgPSB0aHJlYWQuc2xpY2VHcm91cDsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7dmFsdWUxOiAzLCB2YWx1ZTI6ICd4JywgdmFsdWUzOiAxfX0pKTsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7dmFsdWUxOiAzLjEsIHZhbHVlMjogJ3knLCB2YWx1ZTM6IDJ9fSkpOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDQsIGVuZDogNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHt2YWx1ZTE6IDMuMiwgdmFsdWUyOiAneicsIHZhbHVlMzogJ3gnfX0pKTsKLSAgICB0c2cuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICB2YXIgdGhyZWFkVHJhY2sgPSB7fTsKLSAgICB0aHJlYWRUcmFjay50aHJlYWQgPSB0aHJlYWQ7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbih0c2cuc2xpY2VzKTsKLQotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOwotICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3dpdGhFeHRyYUFyZ3MnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKLSAgICB2YXIgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHZhciB0c2cgPSB0aHJlYWQuc2xpY2VHcm91cDsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7dmFsdWUxOiAzLCB2YWx1ZTI6ICd4JywgdmFsdWUzOiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlNDogNCwgdmFsdWU1OiA1LCB2YWx1ZTY6IDZ9fSkpOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDEsIGVuZDogMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHt2YWx1ZTE6IDMuMSwgdmFsdWUyOiAneScsIHZhbHVlMzogMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTQ6IDQsIHZhbHVlNTogNSwgdmFsdWU2OiA2fX0pKTsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiA0LCBlbmQ6IDUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7dmFsdWUxOiAzLjIsIHZhbHVlMjogJ3onLCB2YWx1ZTM6ICd4JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTQ6IDQsIHZhbHVlNTogJ3dob29wcycsIHZhbHVlNjogNn19KSk7Ci0gICAgdHNnLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgdmFyIHRocmVhZFRyYWNrID0ge307Ci0gICAgdGhyZWFkVHJhY2sudGhyZWFkID0gdGhyZWFkOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24odHNnLnNsaWNlcyk7Ci0KLSAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTsKLSAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotICB9KTsKLQotICB0ZXN0KCdub0R1cmF0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7Ci0KLSAgICB2YXIgZmUxID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgNywgMTAsIHt9KTsKLSAgICB2YXIgZmUyID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgOCwgMjAsIHt9KTsKLQotICAgIC8vIE1ha2UgcmVhZGluZyBzb21lIHByb3BlcnRpZXMgYW4gZXhwbG9zaW9uLCBhcyBhIHdheSB0byBlbnN1cmUgdGhhdCB0aGV5Ci0gICAgLy8gYXJlbid0IHJlYWQuCi0gICAgdmFyIGZhaWxQcm9wID0gewotICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGJlIGNhbGxlZCcpOwotICAgICAgfQotICAgIH07Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMSwgJ2R1cmF0aW9uJywgZmFpbFByb3ApOwotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTIsICdkdXJhdGlvbicsIGZhaWxQcm9wKTsKLQotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTEsICdzdWJSb3dzJywgZmFpbFByb3ApOwotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTIsICdzdWJSb3dzJywgZmFpbFByb3ApOwotCi0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMSwgJ3NlbGZUaW1lJywgZmFpbFByb3ApOwotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTIsICdzZWxmVGltZScsIGZhaWxQcm9wKTsKLQotICAgIG1vZGVsLmZsb3dFdmVudHMucHVzaChmZTEpOwotICAgIG1vZGVsLmZsb3dFdmVudHMucHVzaChmZTIpOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oW2ZlMSwgZmUyXSk7Ci0KLSAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTsKLSAgICB2aWV3RWwuZXZlbnRzSGF2ZUR1cmF0aW9uID0gZmFsc2U7Ci0gICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE3MDljZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBvdmVyZmxvdzogYXV0bzsKLSAgICB9Ci0gICAgI2NvbnRlbnQgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICBmbGV4OiAwIDEgYXV0bzsKLSAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7Ci0gICAgfQotICAgICNjb250ZW50ID4gKiB7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7Ci0gICAgfQotICAgIHRyLWMtYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlIHsKLSAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhOwotICAgIH0KLQotICAgIHRyLWMtYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZSAgewotICAgICAgbWFyZ2luLXRvcDogMS4yNWVtOwotICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhYWE7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwotICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgICBtYXJnaW4tYm90dG9tOiAxLjI1ZW07Ci0gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyA9IHRydWU7Ci0gICAgICB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyA9IHRydWU7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCA8PSAxKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgbXVsdGlwbGUgaXRlbXMnKTsKLSAgICAgIHRoaXMuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzOiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgZXZlbnRzSGF2ZUR1cmF0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IGV2ZW50c0hhdmVEdXJhdGlvbihldmVudHNIYXZlRHVyYXRpb24pIHsKLSAgICAgIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyA9IGV2ZW50c0hhdmVEdXJhdGlvbjsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBldmVudHNIYXZlU3ViUm93cygpIHsKLSAgICAgIHJldHVybiB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXzsKLSAgICB9LAotCi0gICAgc2V0IGV2ZW50c0hhdmVTdWJSb3dzKGV2ZW50c0hhdmVTdWJSb3dzKSB7Ci0gICAgICB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyA9IGV2ZW50c0hhdmVTdWJSb3dzOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotCi0gICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgaWYgKCFzZWxlY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGV2ZW50c0J5VGl0bGUgPSBzZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlUaXRsZSgpOwotICAgICAgdmFyIG51bVRpdGxlcyA9IHRyLmIuZGljdGlvbmFyeUxlbmd0aChldmVudHNCeVRpdGxlKTsKLQotICAgICAgdmFyIHN1bW1hcnlUYWJsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAndHItYy1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnKTsKLSAgICAgIHN1bW1hcnlUYWJsZUVsLmNvbmZpZ3VyZSh7Ci0gICAgICAgIHNob3dUb3RhbHM6IG51bVRpdGxlcyA+IDEsCi0gICAgICAgIGV2ZW50c0J5VGl0bGU6IGV2ZW50c0J5VGl0bGUsCi0gICAgICAgIGV2ZW50c0hhdmVEdXJhdGlvbjogdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fLAotICAgICAgICBldmVudHNIYXZlU3ViUm93czogdGhpcy5ldmVudHNIYXZlU3ViUm93c18KLSAgICAgIH0pOwotICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoc3VtbWFyeVRhYmxlRWwpOwotCi0gICAgICB2YXIgc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICd0ci1jLWEtc2VsZWN0aW9uLXN1bW1hcnktdGFibGUnKTsKLSAgICAgIHNlbGVjdGlvblN1bW1hcnlUYWJsZUVsLnNlbGVjdGlvbiA9IHRoaXMuY3VycmVudFNlbGVjdGlvbl87Ci0gICAgICB0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbCk7Ci0KLSAgICAgIGlmIChudW1UaXRsZXMgPT09IDEpIHsKLSAgICAgICAgdmFyIGRldGFpbHNUYWJsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAgICd0ci1jLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOwotICAgICAgICBkZXRhaWxzVGFibGVFbC5ldmVudHNIYXZlRHVyYXRpb24gPSB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl87Ci0gICAgICAgIGRldGFpbHNUYWJsZUVsLmV2ZW50c0hhdmVTdWJSb3dzID0gdGhpcy5ldmVudHNIYXZlU3ViUm93c187Ci0gICAgICAgIGRldGFpbHNUYWJsZUVsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoZGV0YWlsc1RhYmxlRWwpOwotICAgICAgfQotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI3ZGU0NC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7Ci0gIHZhciBuZXdTbGljZUNhdGVnb3J5ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlQ2F0ZWdvcnk7Ci0gIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOwotCi0gIHRlc3QoJ2RpZmZlcmVudFRpdGxlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0NTMgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoNTIpLmdldE9yQ3JlYXRlVGhyZWFkKDUzKTsKLSAgICB0NTMuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDAuMCwgMC4wNCkpOwotICAgIHQ1My5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMC4xMiwgMC4wNikpOwotICAgIHQ1My5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhYScsIDAuNSwgMC41KSk7Ci0gICAgdDUzLnNsaWNlR3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICB2YXIgdDUzdHJhY2sgPSB7fTsKLSAgICB0NTN0cmFjay50aHJlYWQgPSB0NTM7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKHQ1My5zbGljZUdyb3VwLnNsaWNlc1swXSk7Ci0gICAgc2VsZWN0aW9uLnB1c2godDUzLnNsaWNlR3JvdXAuc2xpY2VzWzFdKTsKLSAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2xpY2VHcm91cC5zbGljZXNbMl0pOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldycpOwotICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0KLSAgICB2YXIgc3VtbWFyeVRhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1jLWEtbXVsdGktZXZlbnQtc3VtbWFyeS10YWJsZScpOwotICAgIGFzc2VydC5pc0RlZmluZWQoc3VtbWFyeVRhYmxlRWwpOwotCi0gICAgYXNzZXJ0LmlzVHJ1ZShzdW1tYXJ5VGFibGVFbC5zaG93VG90YWxzKTsKLSAgICBhc3NlcnQuZXF1YWwodHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKHN1bW1hcnlUYWJsZUVsLmV2ZW50c0J5VGl0bGUpLCAyKTsKLQotICAgIHZhciBzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbCA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCi0gICAgICAgIHZpZXdFbCwgJ3RyLWMtYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZScpOwotICAgIGFzc2VydC5pc0RlZmluZWQoc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbC5zZWxlY3Rpb24sIHNlbGVjdGlvbik7Ci0KLSAgICB2YXIgZGV0YWlsc1RhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1jLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChkZXRhaWxzVGFibGVFbCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NhbWVUaXRsZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKLSAgICB2YXIgdDUzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKS5nZXRPckNyZWF0ZVRocmVhZCg1Myk7Ci0gICAgdDUzLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2MnLCAwLjAsIDAuMDQpKTsKLSAgICB0NTMuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYycsIDAuMTIsIDAuMDYpKTsKLSAgICB0NTMuc2xpY2VHcm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIHZhciB0NTN0cmFjayA9IHt9OwotICAgIHQ1M3RyYWNrLnRocmVhZCA9IHQ1MzsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2godDUzLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLSAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2xpY2VHcm91cC5zbGljZXNbMV0pOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldycpOwotICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0KLSAgICB2YXIgc3VtbWFyeVRhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1jLWEtbXVsdGktZXZlbnQtc3VtbWFyeS10YWJsZScpOwotICAgIGFzc2VydC5pc0RlZmluZWQoc3VtbWFyeVRhYmxlRWwpOwotCi0gICAgYXNzZXJ0LmlzRmFsc2Uoc3VtbWFyeVRhYmxlRWwuc2hvd1RvdGFscyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyLmIuZGljdGlvbmFyeUxlbmd0aChzdW1tYXJ5VGFibGVFbC5ldmVudHNCeVRpdGxlKSwgMSk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICB2aWV3RWwsICd0ci1jLWEtc2VsZWN0aW9uLXN1bW1hcnktdGFibGUnKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHNlbGVjdGlvblN1bW1hcnlUYWJsZUVsKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwuc2VsZWN0aW9uLCBzZWxlY3Rpb24pOwotCi0gICAgdmFyIGRldGFpbHNUYWJsZUVsID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgdmlld0VsLCAndHItYy1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTsKLSAgICAgICAgYXNzZXJ0LmlzRGVmaW5lZChkZXRhaWxzVGFibGVFbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGRldGFpbHNUYWJsZUVsLnNlbGVjdGlvbiwgc2VsZWN0aW9uKTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc5NjkzNi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zdGF0aXN0aWNzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotdHIuZXhwb3J0VG8oJ3RyLmMuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gTXVsdGlFdmVudFN1bW1hcnkodGl0bGUsIGV2ZW50cykgewotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgICB0aGlzLmR1cmF0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnNlbGZUaW1lXyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLmV2ZW50c18gPSBldmVudHM7Ci0KLSAgICB0aGlzLmNwdVRpbWVzQ29tcHV0ZWRfID0gZmFsc2U7Ci0gICAgdGhpcy5jcHVTZWxmVGltZV8gPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5jcHVEdXJhdGlvbl8gPSB1bmRlZmluZWQ7Ci0KLSAgICB0aGlzLnVudG90YWxsYWJsZUFyZ3NfID0gW107Ci0gICAgdGhpcy50b3RhbGxlZEFyZ3NfID0gdW5kZWZpbmVkOwotICB9OwotICBNdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IGR1cmF0aW9uKCkgewotICAgICAgaWYgKHRoaXMuZHVyYXRpb25fID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5kdXJhdGlvbl8gPSB0ci5iLlN0YXRpc3RpY3Muc3VtKAotICAgICAgICAgICAgdGhpcy5ldmVudHNfLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5kdXJhdGlvbjsKLSAgICAgICAgICAgIH0pOwotICAgICAgfQotICAgICAgcmV0dXJuIHRoaXMuZHVyYXRpb25fOwotICAgIH0sCi0KLSAgICBnZXQgY3B1U2VsZlRpbWUoKSB7Ci0gICAgICB0aGlzLmNvbXB1dGVDcHVUaW1lc0lmTmVlZGVkXygpOwotICAgICAgcmV0dXJuIHRoaXMuY3B1U2VsZlRpbWVfOwotICAgIH0sCi0KLSAgICBnZXQgY3B1RHVyYXRpb24oKSB7Ci0gICAgICB0aGlzLmNvbXB1dGVDcHVUaW1lc0lmTmVlZGVkXygpOwotICAgICAgcmV0dXJuIHRoaXMuY3B1RHVyYXRpb25fOwotICAgIH0sCi0KLSAgICBjb21wdXRlQ3B1VGltZXNJZk5lZWRlZF86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuY3B1VGltZXNDb21wdXRlZF8pCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuY3B1VGltZXNDb21wdXRlZF8gPSB0cnVlOwotCi0gICAgICB2YXIgY3B1U2VsZlRpbWUgPSAwOwotICAgICAgdmFyIGNwdUR1cmF0aW9uID0gMDsKLSAgICAgIHZhciBoYXNDcHVEYXRhID0gZmFsc2U7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZXZlbnRzXy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgZXZlbnQgPSB0aGlzLmV2ZW50c19baV07Ci0gICAgICAgIGlmIChldmVudC5jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgY3B1RHVyYXRpb24gKz0gZXZlbnQuY3B1RHVyYXRpb247Ci0gICAgICAgICAgaGFzQ3B1RGF0YSA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXZlbnQuY3B1U2VsZlRpbWUgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIGNwdVNlbGZUaW1lICs9IGV2ZW50LmNwdVNlbGZUaW1lOwotICAgICAgICAgIGhhc0NwdURhdGEgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBpZiAoaGFzQ3B1RGF0YSkgewotICAgICAgICB0aGlzLmNwdUR1cmF0aW9uXyA9IGNwdUR1cmF0aW9uOwotICAgICAgICB0aGlzLmNwdVNlbGZUaW1lXyA9IGNwdVNlbGZUaW1lOwotICAgICAgfQotICAgIH0sCi0KLSAgICBnZXQgc2VsZlRpbWUoKSB7Ci0gICAgICBpZiAodGhpcy5zZWxmVGltZV8gPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLnNlbGZUaW1lXyA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5ldmVudHNfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKHRoaXMuZXZlbnRzX1tpXS5zZWxmVGltZSAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgdGhpcy5zZWxmVGltZV8gKz0gdGhpcy5ldmVudHNbaV0uc2VsZlRpbWU7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLnNlbGZUaW1lXzsKLSAgICB9LAotCi0gICAgZ2V0IGV2ZW50cygpIHsKLSAgICAgIHJldHVybiB0aGlzLmV2ZW50c187Ci0gICAgfSwKLQotICAgIGdldCBudW1FdmVudHMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ldmVudHNfLmxlbmd0aDsKLSAgICB9LAotCi0gICAgZ2V0IG51bUFsZXJ0cygpIHsKLSAgICAgIGlmICh0aGlzLm51bUFsZXJ0c18gPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLm51bUFsZXJ0c18gPSB0ci5iLlN0YXRpc3RpY3Muc3VtKHRoaXMuZXZlbnRzXywgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICByZXR1cm4gZXZlbnQuYXNzb2NpYXRlZEFsZXJ0cy5sZW5ndGg7Ci0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgcmV0dXJuIHRoaXMubnVtQWxlcnRzXzsKLSAgICB9LAotCi0gICAgZ2V0IHVudG90YWxsYWJsZUFyZ3MoKSB7Ci0gICAgICB0aGlzLnVwZGF0ZUFyZ3NJZk5lZWRlZF8oKTsKLSAgICAgIHJldHVybiB0aGlzLnVudG90YWxsYWJsZUFyZ3NfOwotICAgIH0sCi0KLSAgICBnZXQgdG90YWxsZWRBcmdzKCkgewotICAgICAgdGhpcy51cGRhdGVBcmdzSWZOZWVkZWRfKCk7Ci0gICAgICByZXR1cm4gdGhpcy50b3RhbGxlZEFyZ3NfOwotICAgIH0sCi0KLSAgICB1cGRhdGVBcmdzSWZOZWVkZWRfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnRvdGFsbGVkQXJnc18gIT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdW50b3RhbGxhYmxlQXJncyA9IHt9OwotICAgICAgdmFyIHRvdGFsbGVkQXJncyA9IHt9OwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmV2ZW50c18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGV2ZW50ID0gdGhpcy5ldmVudHNfW2ldOwotICAgICAgICBmb3IgKHZhciBhcmdOYW1lIGluIGV2ZW50LmFyZ3MpIHsKLSAgICAgICAgICB2YXIgYXJnVmFsID0gZXZlbnQuYXJnc1thcmdOYW1lXTsKLSAgICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiBhcmdWYWw7Ci0gICAgICAgICAgaWYgKHR5cGUgIT09ICdudW1iZXInKSB7Ci0gICAgICAgICAgICB1bnRvdGFsbGFibGVBcmdzW2FyZ05hbWVdID0gdHJ1ZTsKLSAgICAgICAgICAgIGRlbGV0ZSB0b3RhbGxlZEFyZ3NbYXJnTmFtZV07Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHVudG90YWxsYWJsZUFyZ3NbYXJnTmFtZV0pIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLQotICAgICAgICAgIGlmICh0b3RhbGxlZEFyZ3NbYXJnTmFtZV0gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHRvdGFsbGVkQXJnc1thcmdOYW1lXSA9IDA7Ci0gICAgICAgICAgdG90YWxsZWRBcmdzW2FyZ05hbWVdICs9IGFyZ1ZhbDsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgdGhpcy51bnRvdGFsbGFibGVBcmdzXyA9IHRyLmIuZGljdGlvbmFyeUtleXModW50b3RhbGxhYmxlQXJncyk7Ci0gICAgICB0aGlzLnRvdGFsbGVkQXJnc18gPSB0b3RhbGxlZEFyZ3M7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgTXVsdGlFdmVudFN1bW1hcnk6IE11bHRpRXZlbnRTdW1tYXJ5Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnlfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5X3RhYmxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlYzI4M2MuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnlfdGFibGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgotCi08L3NjcmlwdD4KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItYy1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgICN0YWJsZSB7Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPHRyLWItdWktdGFibGUgaWQ9InRhYmxlIj4KLSAgICA8L3RyLWItdWktdGFibGU+Ci0gICAgPC9kaXY+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnNob3dUb3RhbHNfID0gZmFsc2U7Ci0gICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSB0cnVlOwotICAgICAgdGhpcy5ldmVudHNIYXZlU3ViUm93c18gPSB0cnVlOwotICAgICAgdGhpcy5ldmVudHNCeVRpdGxlXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgdXBkYXRlVGFibGVDb2x1bW5zXzogZnVuY3Rpb24ocm93cykgewotICAgICAgdmFyIGhhc0NwdURhdGEgPSBmYWxzZTsKLSAgICAgIHZhciBoYXNBbGVydHMgPSBmYWxzZTsKLSAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgaWYgKHJvdy5jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgIGhhc0NwdURhdGEgPSB0cnVlOwotICAgICAgICBpZiAocm93LmNwdVNlbGZUaW1lICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgaGFzQ3B1RGF0YSA9IHRydWU7Ci0gICAgICAgIGlmIChyb3cubnVtQWxlcnRzKQotICAgICAgICAgIGhhc0FsZXJ0cyA9IHRydWU7Ci0gICAgICB9KTsKLQotCi0gICAgICB2YXIgY29sdW1ucyA9IFtdOwotCi0gICAgICBjb2x1bW5zLnB1c2goewotICAgICAgICB0aXRsZTogJ05hbWUnLAotICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgaWYgKHJvdy50aXRsZSA9PT0gJ1RvdGFscycpCi0gICAgICAgICAgICByZXR1cm4gJ1RvdGFscyc7Ci0KLSAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24ocm93LmV2ZW50cyk7Ci0gICAgICAgICAgfSwgcm93LnRpdGxlKTsKLSAgICAgICAgICByZXR1cm4gbGlua0VsOwotICAgICAgICB9LAotICAgICAgICB3aWR0aDogJzM1MHB4JywKLSAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7Ci0gICAgICAgICAgcmV0dXJuIHJvd0EudGl0bGUubG9jYWxlQ29tcGFyZShyb3dCLnRpdGxlKTsKLSAgICAgICAgfQotICAgICAgfSk7Ci0gICAgICBpZiAodGhpcy5ldmVudHNIYXZlRHVyYXRpb25fKSB7Ci0gICAgICAgIGNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAgdGl0bGU6ICdXYWxsIER1cmF0aW9uIChtcyknLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIHJldHVybiB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTcGFuKHJvdy5kdXJhdGlvbik7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3aWR0aDogJzx1cGF0ZWQgZnVydGhlciBkb3duPicsCi0gICAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93QS5kdXJhdGlvbiAtIHJvd0IuZHVyYXRpb247Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyAmJiBoYXNDcHVEYXRhKSB7Ci0gICAgICAgIGNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAgdGl0bGU6ICdDUFUgRHVyYXRpb24gKG1zKScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LmNwdUR1cmF0aW9uKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICAgIHJldHVybiByb3dBLmNwdUR1cmF0aW9uIC0gcm93Qi5jcHVEdXJhdGlvbjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5ldmVudHNIYXZlU3ViUm93c18gJiYgdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fKSB7Ci0gICAgICAgIGNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAgdGl0bGU6ICdTZWxmIHRpbWUgKG1zKScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LnNlbGZUaW1lKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICAgIHJldHVybiByb3dBLnNlbGZUaW1lIC0gcm93Qi5zZWxmVGltZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5ldmVudHNIYXZlU3ViUm93c18gJiYgdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fICYmIGhhc0NwdURhdGEpIHsKLSAgICAgICAgY29sdW1ucy5wdXNoKHsKLSAgICAgICAgICB0aXRsZTogJ0NQVSBTZWxmIFRpbWUgKG1zKScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LmNwdVNlbGZUaW1lKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICAgIHJldHVybiByb3dBLmNwdVNlbGZUaW1lIC0gcm93Qi5jcHVTZWxmVGltZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgY29sdW1ucy5wdXNoKHsKLSAgICAgICAgdGl0bGU6ICdPY2N1cnJlbmNlcycsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICByZXR1cm4gcm93Lm51bUV2ZW50czsKLSAgICAgICAgfSwKLSAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLAotICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKLSAgICAgICAgICByZXR1cm4gcm93QS5udW1FdmVudHMgLSByb3dCLm51bUV2ZW50czsKLSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIHZhciBhbGVydHNDb2x1bW5JbmRleDsKLSAgICAgIGlmIChoYXNBbGVydHMpIHsKLSAgICAgICAgY29sdW1ucy5wdXNoKHsKLSAgICAgICAgICB0aXRsZTogJ051bSBBbGVydHMnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIHJldHVybiByb3cubnVtQWxlcnRzOwotICAgICAgICAgIH0sCi0gICAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLAotICAgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgewotICAgICAgICAgICAgcmV0dXJuIHJvd0EubnVtQWxlcnRzIC0gcm93Qi5udW1BbGVydHM7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgYWxlcnRzQ29sdW1uSW5kZXggPSBjb2x1bW5zLmxlbmd0aCAtIDE7Ci0gICAgICB9Ci0gICAgICB2YXIgY29sV2lkdGhQZXJjZW50YWdlOwotICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09IDEpCi0gICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICcxMDAlJzsKLSAgICAgIGVsc2UKLSAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gKDEwMCAvIChjb2x1bW5zLmxlbmd0aCAtIDEpKS50b0ZpeGVkKDMpICsgJyUnOwotCi0gICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspCi0gICAgICAgIGNvbHVtbnNbaV0ud2lkdGggPSBjb2xXaWR0aFBlcmNlbnRhZ2U7Ci0KLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotCi0gICAgICBpZiAoaGFzQWxlcnRzKSB7Ci0gICAgICAgIHRoaXMuJC50YWJsZS5zb3J0Q29sdW1uSW5kZXggPSBhbGVydHNDb2x1bW5JbmRleDsKLSAgICAgICAgdGhpcy4kLnRhYmxlLnNvcnREZXNjZW5kaW5nID0gdHJ1ZTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgY29uZmlndXJlOiBmdW5jdGlvbihjb25maWcpIHsKLSAgICAgIGlmIChjb25maWcuZXZlbnRzQnlUaXRsZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkOiBldmVudHNCeVRpdGxlJyk7Ci0KLSAgICAgIGlmIChjb25maWcuc2hvd1RvdGFscyAhPT0gdW5kZWZpbmVkKQotICAgICAgICB0aGlzLnNob3dUb3RhbHNfID0gY29uZmlnLnNob3dUb3RhbHM7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMuc2hvd1RvdGFsc18gPSB0cnVlOwotCi0gICAgICBpZiAoY29uZmlnLmV2ZW50c0hhdmVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQotICAgICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSBjb25maWcuZXZlbnRzSGF2ZUR1cmF0aW9uOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSB0cnVlOwotCi0gICAgICBpZiAoY29uZmlnLmV2ZW50c0hhdmVTdWJSb3dzICE9PSB1bmRlZmluZWQpCi0gICAgICAgIHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfID0gY29uZmlnLmV2ZW50c0hhdmVTdWJSb3dzOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyA9IHRydWU7Ci0KLSAgICAgIHRoaXMuZXZlbnRzQnlUaXRsZV8gPSBjb25maWcuZXZlbnRzQnlUaXRsZTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBzaG93VG90YWxzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2hvd1RvdGFsc187Ci0gICAgfSwKLQotICAgIHNldCBzaG93VG90YWxzKHNob3dUb3RhbHMpIHsKLSAgICAgIHRoaXMuc2hvd1RvdGFsc18gPSBzaG93VG90YWxzOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IGV2ZW50c0hhdmVEdXJhdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBldmVudHNIYXZlRHVyYXRpb24oZXZlbnRzSGF2ZUR1cmF0aW9uKSB7Ci0gICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSBldmVudHNIYXZlRHVyYXRpb247Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgZXZlbnRzSGF2ZVN1YlJvd3MoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ldmVudHNIYXZlU3ViUm93c187Ci0gICAgfSwKLQotICAgIHNldCBldmVudHNIYXZlU3ViUm93cyhldmVudHNIYXZlU3ViUm93cykgewotICAgICAgdGhpcy5ldmVudHNIYXZlU3ViUm93c18gPSBldmVudHNIYXZlU3ViUm93czsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBldmVudHNCeVRpdGxlKCkgewotICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzQnlUaXRsZV87Ci0gICAgfSwKLQotICAgIHNldCBldmVudHNCeVRpdGxlKGV2ZW50c0J5VGl0bGUpIHsKLSAgICAgIHRoaXMuZXZlbnRzQnlUaXRsZV8gPSBldmVudHNCeVRpdGxlOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbkJvdW5kcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkJvdW5kc187Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb25Cb3VuZHMoc2VsZWN0aW9uQm91bmRzKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbkJvdW5kc18gPSBzZWxlY3Rpb25Cb3VuZHM7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGV2ZW50c0J5VGl0bGU7Ci0gICAgICBpZiAodGhpcy5ldmVudHNCeVRpdGxlXyAhPT0gdW5kZWZpbmVkKQotICAgICAgICBldmVudHNCeVRpdGxlID0gdGhpcy5ldmVudHNCeVRpdGxlXzsKLSAgICAgIGVsc2UKLSAgICAgICAgZXZlbnRzQnlUaXRsZSA9IFtdOwotCi0gICAgICB2YXIgYWxsRXZlbnRzID0gW107Ci0gICAgICB2YXIgcm93cyA9IFtdOwotICAgICAgdHIuYi5pdGVySXRlbXMoCi0gICAgICAgICAgZXZlbnRzQnlUaXRsZSwKLSAgICAgICAgICBmdW5jdGlvbih0aXRsZSwgZXZlbnRzT2ZTaW5nbGVUaXRsZSkgewotICAgICAgICAgICAgYWxsRXZlbnRzLnB1c2guYXBwbHkoYWxsRXZlbnRzLCBldmVudHNPZlNpbmdsZVRpdGxlKTsKLSAgICAgICAgICAgIHZhciByb3cgPSBuZXcgdHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSh0aXRsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHNPZlNpbmdsZVRpdGxlKTsKLSAgICAgICAgICAgIHJvd3MucHVzaChyb3cpOwotICAgICAgICAgIH0pOwotCi0gICAgICB0aGlzLnVwZGF0ZVRhYmxlQ29sdW1uc18ocm93cyk7Ci0gICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gcm93czsKLQotICAgICAgdmFyIGZvb3RlclJvd3MgPSBbXTsKLQotICAgICAgaWYgKHRoaXMuc2hvd1RvdGFsc18pIHsKLSAgICAgICAgZm9vdGVyUm93cy5wdXNoKAotICAgICAgICAgICAgbmV3IHRyLmMuYW5hbHlzaXMuTXVsdGlFdmVudFN1bW1hcnkoJ1RvdGFscycsIGFsbEV2ZW50cykpOwotICAgICAgfQotICAgICAgLy8gVE9ETyhzZWxlY3Rpb24gYm91bmRzKS4KLQotICAgICAgLy8gVE9ETyhzb3J0aW5nKQotCi0gICAgICB0aGlzLiQudGFibGUuZm9vdGVyUm93cyA9IGZvb3RlclJvd3M7Ci0gICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1MWVmYTkuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnlfdGFibGVfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZGVlcF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5X3RhYmxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0KLSAgdGVzdCgnYmFzaWNOb0NwdScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGR1cmF0aW9uOiAwLjV9KSk7Ci0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMSwgZHVyYXRpb246IDAuNX0pKTsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAyLCBkdXJhdGlvbjogMC41fSkpOwotICAgIHRzZy5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIHZhciB0aHJlYWRUcmFjayA9IHt9OwotICAgIHRocmVhZFRyYWNrLnRocmVhZCA9IHRocmVhZDsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHRzZy5zbGljZXMpOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlJyk7Ci0gICAgdmlld0VsLmNvbmZpZ3VyZSh7Ci0gICAgICBzaG93VG90YWxzOiB0cnVlLAotICAgICAgZXZlbnRzSGF2ZUR1cmF0aW9uOiB0cnVlLAotICAgICAgZXZlbnRzQnlUaXRsZTogc2VsZWN0aW9uLmdldEV2ZW50c09yZ2FuaXplZEJ5VGl0bGUoKQotICAgIH0pOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotICB9KTsKLQotICB0ZXN0KCdiYXNpY1dpdGhDcHUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKLSAgICB2YXIgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHZhciB0c2cgPSB0aHJlYWQuc2xpY2VHcm91cDsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMCwgY3B1RW5kOiAzfSkpOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDEsIGVuZDogMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAxLCBjcHVFbmQ6IDEuNzV9KSk7Ci0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogNCwgZW5kOiA1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDMsIGNwdUVuZDogMy43NX0pKTsKLSAgICB0c2cuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICB2YXIgdGhyZWFkVHJhY2sgPSB7fTsKLSAgICB0aHJlYWRUcmFjay50aHJlYWQgPSB0aHJlYWQ7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbih0c2cuc2xpY2VzKTsKLQotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktZXZlbnQtc3VtbWFyeS10YWJsZScpOwotICAgIHZpZXdFbC5jb25maWd1cmUoewotICAgICAgc2hvd1RvdGFsczogdHJ1ZSwKLSAgICAgIGV2ZW50c0hhdmVEdXJhdGlvbjogdHJ1ZSwKLSAgICAgIGV2ZW50c0J5VGl0bGU6IHNlbGVjdGlvbi5nZXRFdmVudHNPcmdhbml6ZWRCeVRpdGxlKCkKLSAgICB9KTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbm9EdXJhdGlvbk5vU3ViUm93cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotCi0gICAgdmFyIGZlMSA9IG5ldyB0ci5tb2RlbC5GbG93RXZlbnQoJ2NhdCcsIDEyMzQsICd0aXRsZScsIDcsIDEwLCB7fSk7Ci0gICAgdmFyIGZlMiA9IG5ldyB0ci5tb2RlbC5GbG93RXZlbnQoJ2NhdCcsIDEyMzQsICd0aXRsZScsIDgsIDIwLCB7fSk7Ci0KLSAgICAvLyBNYWtlIHJlYWRpbmcgc29tZSBwcm9wZXJ0aWVzIGFuIGV4cGxvc2lvbiwgYXMgYSB3YXkgdG8gZW5zdXJlIHRoYXQgdGhleQotICAgIC8vIGFyZW4ndCByZWFkLgotICAgIHZhciBmYWlsUHJvcCA9IHsKLSAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBiZSBjYWxsZWQnKTsKLSAgICAgIH0KLSAgICB9OwotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTEsICdkdXJhdGlvbicsIGZhaWxQcm9wKTsKLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmUyLCAnZHVyYXRpb24nLCBmYWlsUHJvcCk7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmUxLCAnc3ViUm93cycsIGZhaWxQcm9wKTsKLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmUyLCAnc3ViUm93cycsIGZhaWxQcm9wKTsKLQotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTEsICdzZWxmVGltZScsIGZhaWxQcm9wKTsKLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmUyLCAnc2VsZlRpbWUnLCBmYWlsUHJvcCk7Ci0KLSAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUxKTsKLSAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUyKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKFtmZTEsIGZlMl0pOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlJyk7Ci0gICAgdmlld0VsLmNvbmZpZ3VyZSh7Ci0gICAgICBzaG93VG90YWxzOiB0cnVlLAotICAgICAgZXZlbnRzSGF2ZUR1cmF0aW9uOiBmYWxzZSwKLSAgICAgIGV2ZW50c0hhdmVTdWJSb3dzOiBmYWxzZSwKLSAgICAgIGV2ZW50c0J5VGl0bGU6IHNlbGVjdGlvbi5nZXRFdmVudHNPcmdhbml6ZWRCeVRpdGxlKCkKLSAgICB9KTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci0KLSAgLy8gVE9ETyhuZHVjYSk6IFRvb2x0aXBwaXNoIHN0dWZmLgotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZmOTk3Zi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0KLSAgdGVzdCgnc3VtbWFyeVJvd05vQ3B1JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7Ci0gICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7Ci0KLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDN9KSk7Ci0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2JiJywgc3RhcnQ6IDEsIGVuZDogMn0pKTsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYmInLCBzdGFydDogNCwgZW5kOiA1fSkpOwotICAgIHRzZy5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIHZhciByb3cgPSBuZXcgdHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSgneCcsIHRzZy5zbGljZXMuc2xpY2UoMCkpOwotICAgIGFzc2VydC5lcXVhbChyb3cuZHVyYXRpb24sIDUpOwotICAgIGFzc2VydC5lcXVhbChyb3cuc2VsZlRpbWUsIDQpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChyb3cuY3B1RHVyYXRpb24pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChyb3cuY3B1U2VsZlRpbWUpOwotICB9KTsKLQotICB0ZXN0KCdzdW1tYXJ5Um93V2l0aENwdScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOwotCi0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDAsIGNwdUVuZDogM30pKTsKLSAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMSwgY3B1RW5kOiAxLjc1fSkpOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDQsIGVuZDogNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAzLCBjcHVFbmQ6IDMuNzV9KSk7Ci0gICAgdHNnLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgdmFyIHJvdyA9IG5ldyB0ci5jLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KCd4JywgdHNnLnNsaWNlcy5zbGljZSgwKSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJvdy5kdXJhdGlvbiwgNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJvdy5zZWxmVGltZSwgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJvdy5jcHVEdXJhdGlvbiwgNC41KTsKLSAgICBhc3NlcnQuZXF1YWwocm93LmNwdVNlbGZUaW1lLCAzLjc1KTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3VtbWFyeVJvd05vblNsaWNlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7Ci0gICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7Ci0KLSAgICB2YXIgZmUxID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgNywgMTAsIHt9KTsKLSAgICB2YXIgZmUyID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgOCwgMjAsIHt9KTsKLSAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUxKTsKLSAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUyKTsKLQotICAgIHZhciByb3cgPSBuZXcgdHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSgnYScsIFtmZTEsIGZlMl0pOwotICAgIGFzc2VydC5lcXVhbChyb3cuZHVyYXRpb24sIDApOwotICAgIGFzc2VydC5lcXVhbChyb3cuc2VsZlRpbWUsIDApOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChyb3cuY3B1RHVyYXRpb24pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChyb3cuY3B1U2VsZlRpbWUpOwotICB9KTsKLQotICB0ZXN0KCdzdW1tYXJ5TnVtQWxlcnRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNsaWNlID0gbmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDAsIGR1cmF0aW9uOiAwLjAwMn0pOwotCi0gICAgdmFyIEFMRVJUX0lORk9fMSA9IG5ldyB0ci5tb2RlbC5FdmVudEluZm8oCi0gICAgICAgICdBbGVydCAxJywgJ0NyaXRpY2FsIGFsZXJ0Jyk7Ci0KLSAgICB2YXIgYWxlcnQgPSBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCA1LCBbc2xpY2VdKTsKLQotICAgIHZhciByb3cgPSBuZXcgdHIuYy5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSgnYScsIFtzbGljZV0pOwotICAgIGFzc2VydC5lcXVhbChyb3cubnVtQWxlcnRzLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYXJnU3VtbWFyeScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOwotCi0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge3ZhbHVlMTogMywgdmFsdWUyOiAneCcsIHZhbHVlMzogMX19KSk7Ci0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMSwgZW5kOiAyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge3ZhbHVlMTogMywgdmFsdWUyOiAneScsIHZhbHVlMzogMn19KSk7Ci0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogNCwgZW5kOiA1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge3ZhbHVlMTogMywgdmFsdWUyOiAneicsIHZhbHVlMzogJ3gnfX0pKTsKLSAgICB0c2cuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICB2YXIgcm93ID0gbmV3IHRyLmMuYW5hbHlzaXMuTXVsdGlFdmVudFN1bW1hcnkoJ3gnLCB0c2cuc2xpY2VzLnNsaWNlKDApKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHJvdy50b3RhbGxlZEFyZ3MsIHt2YWx1ZTE6IDl9KTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHJvdy51bnRvdGFsbGFibGVBcmdzLCBbJ3ZhbHVlMicsICd2YWx1ZTMnXSk7Ci0gIH0pOwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2Zsb3dfZXZlbnRfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9mbG93X2V2ZW50X3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNzkzNWQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2Zsb3dfZXZlbnRfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLWZsb3ctZXZlbnQtc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcgaWQ9ImNvbnRlbnQiPjwvdHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3PgotICA8L3RlbXBsYXRlPgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLiQuY29udGVudC5ldmVudHNIYXZlRHVyYXRpb24gPSBmYWxzZTsKLSAgICAgIHRoaXMuJC5jb250ZW50LmV2ZW50c0hhdmVTdWJSb3dzID0gZmFsc2U7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLiQuY29udGVudC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZmxvd19ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZmxvd19ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyYmNhYjcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2Zsb3dfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0KLSAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhTaW5nbGVFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotCi0gICAgdmFyIGZlMSA9IG5ldyB0ci5tb2RlbC5GbG93RXZlbnQoJ2NhdCcsIDEyMzQsICd0aXRsZScsIDcsIDEwLCB7fSk7Ci0gICAgdmFyIGZlMiA9IG5ldyB0ci5tb2RlbC5GbG93RXZlbnQoJ2NhdCcsIDEyMzQsICd0aXRsZScsIDgsIDIwLCB7fSk7Ci0gICAgbW9kZWwuZmxvd0V2ZW50cy5wdXNoKGZlMSk7Ci0gICAgbW9kZWwuZmxvd0V2ZW50cy5wdXNoKGZlMik7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKGZlMSk7Ci0gICAgc2VsZWN0aW9uLnB1c2goZmUyKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMik7Ci0KLSAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1mbG93LWV2ZW50LXN1Yi12aWV3Jyk7Ci0gICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3ViVmlldyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9mcmFtZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2ZyYW1lX3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhNjIyNDEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2ZyYW1lX3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLWZyYW1lLXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB2YXIgcmVhbFZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTsKLSAgICAgIHJlYWxWaWV3LmV2ZW50c0hhdmVEdXJhdGlvbiA9IGZhbHNlOwotICAgICAgcmVhbFZpZXcuZXZlbnRzSGF2ZVN1YlJvd3MgPSBmYWxzZTsKLQotICAgICAgdGhpcy5hcHBlbmRDaGlsZChyZWFsVmlldyk7Ci0gICAgICByZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTsKLQotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCkgewotICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXy5mb3JFYWNoKGZ1bmN0aW9uKGZyYW1lRXZlbnQpIHsKLSAgICAgICAgZnJhbWVFdmVudC5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICBzZWxlY3Rpb24ucHVzaChldmVudCk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgICByZXR1cm4gc2VsZWN0aW9uOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4Y2E5N2QuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS90YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1iLXVpLXRhYmxlIGlkPSJjb250ZW50Ij48L3RyLWItdWktdGFibGU+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLQotICAgICAgc2VsZWN0aW9uID0gdHIuYi5hc0FycmF5KHNlbGVjdGlvbikuc29ydCgKLSAgICAgICAgICB0ci5iLlJhbmdlLmNvbXBhcmVCeU1pblRpbWVzKTsKLQotICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLmNvbnRlbnQ7Ci0gICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ0R1bXAnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIHZhciBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpOwotICAgICAgICAgICAgbGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbihyb3cpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB2YXIgc3BhbkVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAgICAgICAgc3BhbkVsLnRleHRDb250ZW50ID0gJ0dsb2JhbCBtZW1vcnkgZHVtcCBhdCAnOwotICAgICAgICAgICAgbGlua0VsLmFwcGVuZENoaWxkKHNwYW5FbCk7Ci0gICAgICAgICAgICBsaW5rRWwuYXBwZW5kQ2hpbGQodHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKHJvdy5zdGFydCkpOwotICAgICAgICAgICAgcmV0dXJuIGxpbmtFbDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIF07Ci0gICAgICB0YWJsZS5zaG93SGVhZGVyID0gZmFsc2U7Ci0gICAgICB0YWJsZS50YWJsZVJvd3MgPSBzZWxlY3Rpb247Ci0gICAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1YjRiYWUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnYmFzaWMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotCi0gICAgZnVuY3Rpb24gYWRkR2xvYmFsTWVtb3J5RHVtcCh0aW1lc3RhbXApIHsKLSAgICAgIHZhciBnbWQgPSBuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtLCB0aW1lc3RhbXApOwotICAgICAgbS5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdtZCk7Ci0gICAgICByZXR1cm4gZ21kOwotICAgIH0KLQotICAgIHZhciBkMSA9IGFkZEdsb2JhbE1lbW9yeUR1bXAoNSk7Ci0gICAgdmFyIGQyID0gYWRkR2xvYmFsTWVtb3J5RHVtcCgyMCk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goZDEpOwotICAgIHNlbGVjdGlvbi5wdXNoKGQyKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMik7Ci0KLSAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCi0gICAgICAgICd0ci1jLWEtbXVsdGktZ2xvYmFsLW1lbW9yeS1kdW1wLXN1Yi12aWV3Jyk7Ci0gICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3ViVmlldyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTA1MTM5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPGRpdiBpZD0nY29udGVudCc+PC9kaXY+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB2YXIgcmVhbFZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTsKLSAgICAgIHJlYWxWaWV3LmV2ZW50c0hhdmVEdXJhdGlvbiA9IGZhbHNlOwotICAgICAgcmVhbFZpZXcuZXZlbnRzSGF2ZVN1YlJvd3MgPSBmYWxzZTsKLQotICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocmVhbFZpZXcpOwotICAgICAgcmVhbFZpZXcuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7Ci0KLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzM4ZmYxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgTW9kZWwgPSB0ci5Nb2RlbDsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotCi0gIHRlc3QoJ2FuYWx5emVTZWxlY3Rpb25XaXRoU2luZ2xlRXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKLSAgICB2YXIgcDUyID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKTsKLSAgICB2YXIgdDUzID0gcDUyLmdldE9yQ3JlYXRlVGhyZWFkKDUzKTsKLQotICAgIHZhciBpZTEgPSBuZXcgdHIubW9kZWwuUHJvY2Vzc0luc3RhbnRFdmVudCgnY2F0JywgJ3RpdGxlJywgNywgMTAsIHt9KTsKLSAgICB2YXIgaWUyID0gbmV3IHRyLm1vZGVsLlByb2Nlc3NJbnN0YW50RXZlbnQoJ2NhdCcsICd0aXRsZScsIDcsIDIwLCB7fSk7Ci0gICAgcDUyLmluc3RhbnRFdmVudHMucHVzaChpZTEpOwotICAgIHA1Mi5pbnN0YW50RXZlbnRzLnB1c2goaWUyKTsKLQotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaChpZTEpOwotICAgIHNlbGVjdGlvbi5wdXNoKGllMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDIpOwotCi0gICAgdmFyIHN1YlZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktaW5zdGFudC1ldmVudC1zdWItdmlldycpOwotICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1YlZpZXcpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxY2U3NmYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX2ludGVyYWN0aW9uX3JlY29yZF9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1pbnRlcmFjdGlvbi1yZWNvcmQtc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB2YXIgcmVhbFZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTsKLQotICAgICAgdGhpcy5hcHBlbmRDaGlsZChyZWFsVmlldyk7Ci0gICAgICByZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTsKLQotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCkgewotICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXy5mb3JFYWNoKGZ1bmN0aW9uKGlyKSB7Ci0gICAgICAgIGlyLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCkgewotICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKGV2ZW50KTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLSAgICAgIHJldHVybiBzZWxlY3Rpb247Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJiYTg2NC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfb2JqZWN0X3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLW9iamVjdC1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPHRyLWItdWktdGFibGUgaWQ9ImNvbnRlbnQiPjwvdHItYi11aS10YWJsZT4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLmNvbnRlbnQuc2hvd0hlYWRlciA9IGZhbHNlOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotCi0gICAgICB2YXIgb2JqZWN0RXZlbnRzID0gdHIuYi5hc0FycmF5KHNlbGVjdGlvbikuc29ydCgKLSAgICAgICAgICB0ci5iLlJhbmdlLmNvbXBhcmVCeU1pblRpbWVzKTsKLQotICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLmNvbnRlbnQ7Ci0gICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ0ZpcnN0JywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KQotICAgICAgICAgICAgICByZXR1cm4gdHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKGV2ZW50LnRzKTsKLQotICAgICAgICAgICAgdmFyIHNwYW5FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgICAgICAgIHNwYW5FbC5hcHBlbmRDaGlsZCh0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oCi0gICAgICAgICAgICAgICAgZXZlbnQuY3JlYXRpb25UcykpOwotICAgICAgICAgICAgc3BhbkVsLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU3Bhbih7Ci0gICAgICAgICAgICAgICAgdGV4dENvbnRlbnQ6ICctJywKLSAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnNHB4JywKLSAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCcKLSAgICAgICAgICAgIH0pKTsKLSAgICAgICAgICAgIGlmIChldmVudC5kZWxldGlvblRzICE9IE51bWJlci5NQVhfVkFMVUUpIHsKLSAgICAgICAgICAgICAgc3BhbkVsLmFwcGVuZENoaWxkKAotICAgICAgICAgICAgICAgICAgdHIuYi51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKGV2ZW50LmRlbGV0aW9uVHMpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzcGFuRWw7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3aWR0aDogJzIwMHB4JwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdTZWNvbmQnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHRyLmMuU2VsZWN0aW9uKGV2ZW50KTsKLSAgICAgICAgICAgIH0sIGV2ZW50LnVzZXJGcmllbmRseU5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIGxpbmtFbDsKLSAgICAgICAgICB9LAotICAgICAgICAgIHdpZHRoOiAnMTAwJScKLSAgICAgICAgfQotICAgICAgXTsKLSAgICAgIHRhYmxlLnRhYmxlUm93cyA9IG9iamVjdEV2ZW50czsKLSAgICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX29iamVjdF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfb2JqZWN0X3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVhOWNlZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfb2JqZWN0X3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBPYmplY3RJbnN0YW5jZSA9IHRyLm1vZGVsLk9iamVjdEluc3RhbmNlOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2FuYWx5c2lzV2l0aE9iamVjdHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgdmFyIG9iamVjdHMgPSBwMS5vYmplY3RzOwotICAgIHZhciBpMTAgPSBvYmplY3RzLmlkV2FzQ3JlYXRlZCgKLSAgICAgICAgJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgMTApOwotICAgIHZhciBzMTAgPSBvYmplY3RzLmFkZFNuYXBzaG90KCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDEwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzbmFwc2hvdC0xJyk7Ci0gICAgdmFyIHMyNSA9IG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYXBzaG90LTInKTsKLSAgICB2YXIgczQwID0gb2JqZWN0cy5hZGRTbmFwc2hvdCgnMHgxMDAwJywgJ3RyLmUuY2MnLCAnTGF5ZXJUcmVlSG9zdEltcGwnLCA0MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc25hcHNob3QtMycpOwotICAgIG9iamVjdHMuaWRXYXNEZWxldGVkKCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDQ1KTsKLQotICAgIHZhciB0cmFjayA9IHt9OwotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goaTEwKTsKLSAgICBzZWxlY3Rpb24ucHVzaChzMTApOwotICAgIHNlbGVjdGlvbi5wdXNoKHMyNSk7Ci0gICAgc2VsZWN0aW9uLnB1c2goczQwKTsKLQotICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW11bHRpLW9iamVjdC1zdWItdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY3YTNhOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS90YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1tdWx0aS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8dHItYi11aS10YWJsZSBpZD0iY29udGVudCI+PC90ci1iLXVpLXRhYmxlPgotICA8L3RlbXBsYXRlPgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0KLSAgICAgIHNlbGVjdGlvbiA9IHRyLmIuYXNBcnJheShzZWxlY3Rpb24pLnNvcnQoCi0gICAgICAgICAgdHIuYi5SYW5nZS5jb21wYXJlQnlNaW5UaW1lcyk7Ci0KLSAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC5jb250ZW50OwotICAgICAgdGFibGUudGFibGVDb2x1bW5zID0gWwotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdEdW1wJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgICAgICAgIGxpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24ocm93KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdmFyIHNwYW5FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgICAgICAgIHNwYW5FbC50ZXh0Q29udGVudCA9ICdQcm9jZXNzIG1lbW9yeSBkdW1wIGF0ICc7Ci0gICAgICAgICAgICBsaW5rRWwuYXBwZW5kQ2hpbGQoc3BhbkVsKTsKLSAgICAgICAgICAgIGxpbmtFbC5hcHBlbmRDaGlsZCh0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4ocm93LnN0YXJ0KSk7Ci0gICAgICAgICAgICByZXR1cm4gbGlua0VsOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgXTsKLSAgICAgIHRhYmxlLnNob3dIZWFkZXIgPSBmYWxzZTsKLSAgICAgIHRhYmxlLnRhYmxlUm93cyA9IHNlbGVjdGlvbjsKLSAgICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjA0NjkyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBHbG9iYWxNZW1vcnlEdW1wID0gdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcDsKLSAgdmFyIFByb2Nlc3NNZW1vcnlEdW1wID0gdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXA7Ci0KLSAgdGVzdCgnYmFzaWMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoNDIpOwotCi0gICAgZnVuY3Rpb24gYWRkUHJvY2Vzc01lbW9yeUR1bXAodGltZXN0YW1wKSB7Ci0gICAgICB2YXIgZ21kID0gbmV3IEdsb2JhbE1lbW9yeUR1bXAobSwgdGltZXN0YW1wKTsKLSAgICAgIG0uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnbWQpOwotICAgICAgdmFyIHBtZCA9IG5ldyBQcm9jZXNzTWVtb3J5RHVtcChnbWQsIHAsIHRpbWVzdGFtcCk7Ci0gICAgICBwLm1lbW9yeUR1bXBzLnB1c2gocG1kKTsKLSAgICAgIGdtZC5wcm9jZXNzTWVtb3J5RHVtcHNbcG1kLnBpZF0gPSBwbWQ7Ci0gICAgICByZXR1cm4gcG1kOwotICAgIH0KLQotICAgIHZhciBkMSA9IGFkZFByb2Nlc3NNZW1vcnlEdW1wKDUpOwotICAgIHZhciBkMiA9IGFkZFByb2Nlc3NNZW1vcnlEdW1wKDIwKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goZDEpOwotICAgIHNlbGVjdGlvbi5wdXNoKGQyKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMik7Ci0KLSAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCi0gICAgICAgICd0ci1jLWEtbXVsdGktcHJvY2Vzcy1tZW1vcnktZHVtcC1zdWItdmlldycpOwotICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1YlZpZXcpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyYjUzYzIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3NhbXBsZV9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktc2FtcGxlLXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPGRpdiBpZD0nY29udGVudCc+PC9kaXY+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotCi0gICAgICBpZiAodHIuaXNEZWZpbmVkKCd0ci5lLmFuYWx5c2lzLlNhbXBsaW5nU3VtbWFyeVBhbmVsJykpIHsKLSAgICAgICAgdmFyIHBhbmVsID0gbmV3IHRyLmUuYW5hbHlzaXMuU2FtcGxpbmdTdW1tYXJ5UGFuZWwoKTsKLSAgICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocGFuZWwpOwotICAgICAgICBwYW5lbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICdTYW1wbGluZ1N1bW1hcnlQYW5lbCBub3QgaW5zdGFsbGVkLiA6KCc7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3NhbXBsZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI5M2FlOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5Lmh0bWwnPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL211bHRpX3NhbXBsZV9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgTW9kZWwgPSB0ci5Nb2RlbDsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgbmV3U2FtcGxlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2FtcGxlTmFtZWQ7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aE11bHRpcGxlU2FtcGxlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0NTM7Ci0gICAgbW9kZWwuaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgewotICAgICAgdDUzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKS5nZXRPckNyZWF0ZVRocmVhZCg1Myk7Ci0gICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ0JCQiddLCAwKSk7Ci0gICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ0FBQSddLCAwLjAyKSk7Ci0gICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ0FBQSddLCAwLjA0KSk7Ci0gICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ1NsZWVwaW5nJ10sIDAuMDYpKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnQkJCJ10sIDAuMDgpKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnQUFBJ10sIDAuMTApKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnQ0NDJ10sIDAuMTIpKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnU2xlZXBpbmcnXSwgMC4xNCkpOwotICAgIH0pOwotCi0gICAgdmFyIHQ1M3RyYWNrID0ge307Ci0gICAgdDUzdHJhY2sudGhyZWFkID0gdDUzOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHQ1My5zYW1wbGVzLmxlbmd0aDsgaSsrKQotICAgICAgc2VsZWN0aW9uLnB1c2godDUzLnNhbXBsZXNbaV0pOwotCi0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtbXVsdGktc2FtcGxlLXN1Yi12aWV3Jyk7Ci0gICAgdmlldy5zdHlsZS5oZWlnaHQgPSAnNTAwcHgnOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgICB2aWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3RocmVhZF9zbGljZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3RocmVhZF9zbGljZV9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzAyMmIxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHMuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLW11bHRpLXRocmVhZC1zbGljZS1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgICNjb250ZW50IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICB9Ci0gICAgI2NvbnRlbnQgPiB0ci1jLWEtcmVsYXRlZC1ldmVudHMgewotICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotCi0gICAgICAvLyBUT0RPKG5kdWNhKTogVGhpcyBpcyBhIGdyb3NzIGhhY2sgZm9yIGNjIEZyYW1lIFZpZXdlciwgYnV0IGl0cyBvbmx5Ci0gICAgICAvLyB0aGUgZnJhbWUgdmlld2VyIHRoYXQgbmVlZHMgdGhpcyBmZWF0dXJlLCBzbyB+c2hydWd+LgotICAgICAgaWYgKHdpbmRvdy5SYXN0ZXJUYXNrVmlldyAhPT0gdW5kZWZpbmVkKSB7IC8vIE1heSBub3QgaGF2ZSBiZWVuIGltcG9ydGVkLgotICAgICAgICBpZiAodHIuZS5jYy5SYXN0ZXJUYXNrU2VsZWN0aW9uLnN1cHBvcnRzKHNlbGVjdGlvbikpIHsKLSAgICAgICAgICB2YXIgbHR2U2VsZWN0aW9uID0gbmV3IHRyLmUuY2MuUmFzdGVyVGFza1NlbGVjdGlvbihzZWxlY3Rpb24pOwotCi0gICAgICAgICAgdmFyIGx0diA9IG5ldyB0ci5lLmNjLkxheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3KCk7Ci0gICAgICAgICAgbHR2Lm9iamVjdFNuYXBzaG90ID0gbHR2U2VsZWN0aW9uLmNvbnRhaW5pbmdTbmFwc2hvdDsKLSAgICAgICAgICBsdHYuc2VsZWN0aW9uID0gbHR2U2VsZWN0aW9uOwotICAgICAgICAgIGx0di5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQgPSBsdHZTZWxlY3Rpb24uZXh0cmFIaWdobGlnaHRzQnlMYXllcklkOwotCi0gICAgICAgICAgdGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgICB0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChsdHYpOwotCi0gICAgICAgICAgdGhpcy5yZXF1aXJlc1RhbGxWaWV3XyA9IHRydWU7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gJyc7Ci0KLSAgICAgIHZhciBtZXN2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3Jyk7Ci0gICAgICBtZXN2LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKG1lc3YpOwotCi0gICAgICB2YXIgcmVsYXRlZEV2ZW50cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1yZWxhdGVkLWV2ZW50cycpOwotICAgICAgcmVsYXRlZEV2ZW50cy5hZGRSZWxhdGVkRXZlbnRzKHNlbGVjdGlvbik7Ci0KLSAgICAgIGlmIChyZWxhdGVkRXZlbnRzLmhhc1JlbGF0ZWRFdmVudHMoKSkgewotICAgICAgICB0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChyZWxhdGVkRXZlbnRzKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKSB7Ci0gICAgICBpZiAodGhpcy4kLmNvbnRlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB2YXIgY2hpbGRUYWdOYW1lID0gdGhpcy4kLmNvbnRlbnQuY2hpbGRyZW5bMF0udGFnTmFtZTsKLSAgICAgIGlmIChjaGlsZFRhZ05hbWUgPT09ICdUUi1DLUEtTVVMVEktRVZFTlQtU1VCLVZJRVcnKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIC8vIFVzaW5nIHJhc3RlciB0YXNrIHZpZXcuCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3RocmVhZF9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhkZjI1ZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkX3NsaWNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKLSAgdmFyIG5ld0Zsb3dFdmVudEV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld0Zsb3dFdmVudEV4OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHQ1MyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2Vzcyg1MikuZ2V0T3JDcmVhdGVUaHJlYWQoNTMpOwotICAgIHQ1My5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDAuNSwKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0gICAgdDUzLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMS4wLCBkdXJhdGlvbjogMiwKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0gICAgdDUzLnNsaWNlR3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2godDUzLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLSAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2xpY2VHcm91cC5zbGljZXNbMV0pOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnKTsKLSAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotICB9KTsKLQotICB0ZXN0KCd3aXRoRmxvd3MnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtKSB7Ci0gICAgICBtLnAxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0KLSAgICAgIG0udDIgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgICAgbS50MyA9IG0ucDEuZ2V0T3JDcmVhdGVUaHJlYWQoMyk7Ci0gICAgICBtLnQ0ID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCg0KTsKLQotICAgICAgbS5zQSA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCi0gICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogNSwKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0ci5tb2RlbC5UaHJlYWRTbGljZX0pKTsKLSAgICAgIG0uc0IgPSBtLnQzLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxMCwgZW5kOiAxNSwKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0ci5tb2RlbC5UaHJlYWRTbGljZX0pKTsKLSAgICAgIG0uc0MgPSBtLnQ0LnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYycsIHN0YXJ0OiAyMCwgZW5kOiAyMCwKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0ci5tb2RlbC5UaHJlYWRTbGljZX0pKTsKLQotICAgICAgbS50Mi5jcmVhdGVTdWJTbGljZXMoKTsKLSAgICAgIG0udDMuY3JlYXRlU3ViU2xpY2VzKCk7Ci0gICAgICBtLnQ0LmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgICBtLmYxID0gbmV3Rmxvd0V2ZW50RXgoewotICAgICAgICAndGl0bGUnOiAnZmxvd2lzaCcsIHN0YXJ0OiAwLCBlbmQ6IDEwLAotICAgICAgICBzdGFydFNsaWNlOiBtLnNBLAotICAgICAgICBlbmRTbGljZTogbS5zQgotICAgICAgfSk7Ci0gICAgICBtLmYyID0gbmV3Rmxvd0V2ZW50RXgoewotICAgICAgICAndGl0bGUnOiAnZmxvd2lzaCcsIHN0YXJ0OiAxNSwgZW5kOiAyMSwKLSAgICAgICAgc3RhcnRTbGljZTogbS5zQiwKLSAgICAgICAgZW5kU2xpY2U6IG0uc0MKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKG0uc0EpOwotICAgIHNlbGVjdGlvbi5wdXNoKG0uc0IpOwotICAgIHNlbGVjdGlvbi5wdXNoKG0uc0MpOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnKTsKLSAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmJiM2E2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtbXVsdGktdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICAjY29udGVudCB7Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8dHItYy1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLWMtYS1tdWx0aS1ldmVudC1zdWItdmlldz4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLmNvbnRlbnQuZXZlbnRzSGF2ZVN1YlJvd3MgPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLiQuY29udGVudC5zZWxlY3Rpb247Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLiQuY29udGVudC5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3RocmVhZF90aW1lX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9tdWx0aV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiODI5YTcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL211bHRpX3RocmVhZF90aW1lX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBjcmVhdGVCYXNpY01vZGVsKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjMgMTI2MjIuNTA2ODkwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1BbmRyb2lkLmxhdW5jaGVyIHByZXZfcGlkPTU4NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UisgPT0+IG5leHRfY29tbT1CaW5kZXJfMSBuZXh0X3BpZD0yMTcgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIGQuLjMgMTI2MjIuNTA2OTE4OiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1CaW5kZXJfMSBwcmV2X3BpZD0yMTcgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPUQgPT0+IG5leHRfY29tbT1BbmRyb2lkLmxhdW5jaGVyIG5leHRfcGlkPTU4NCBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjQgMTI2MjIuNTA2OTM2OiBzY2hlZF93YWtldXA6IGNvbW09QmluZGVyXzEgcGlkPTIxNyBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDEnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJ0FuZHJvaWQubGF1bmNoZXItNTg0ICAgWzAwMV0gZC4uMyAxMjYyMi41MDY5NTA6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUFuZHJvaWQubGF1bmNoZXIgcHJldl9waWQ9NTg0IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SKyA9PT4gbmV4dF9jb21tPUJpbmRlcl8xIG5leHRfcGlkPTIxNyBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gLi4uMSAxMjYyMi41MDcwNTc6IHRyYWNpbmdfbWFya193cml0ZTogQnwxMjh8cXVldWVCdWZmZXInLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSAuLi4xIDEyNjIyLjUwNzE3NTogdHJhY2luZ19tYXJrX3dyaXRlOiBFJywKLSAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gZC4uMyAxMjYyMi41MDcyNTM6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUJpbmRlcl8xIHByZXZfcGlkPTIxNyBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPUFuZHJvaWQubGF1bmNoZXIgbmV4dF9waWQ9NTg0IG5leHRfcHJpbz0xMjAnIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgXTsKLQotICAgIHJldHVybiBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICB9Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IGNyZWF0ZUJhc2ljTW9kZWwoKTsKLQotICAgIHZhciB0aHJlYWQgPSBtLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ0JpbmRlcl8xJylbMF07Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2godGhyZWFkLnRpbWVTbGljZXNbMF0pOwotICAgIHNlbGVjdGlvbi5wdXNoKHRocmVhZC50aW1lU2xpY2VzWzFdKTsKLQotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAndHItYy1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3Jyk7Ci0gICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvb2JqZWN0X2luc3RhbmNlX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9vYmplY3RfaW5zdGFuY2Vfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmZjZTQ5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9vYmplY3RfaW5zdGFuY2Vfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBPYmplY3RJbnN0YW5jZVZpZXcgPSB0ci5iLnVpLmRlZmluZSgnb2JqZWN0LWluc3RhbmNlLXZpZXcnKTsKLQotICBPYmplY3RJbnN0YW5jZVZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBnZXQgcmVxdWlyZXNUYWxsVmlldygpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBzZXQgbW9kZWxFdmVudChvYmopIHsKLSAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2UgPSBvYmo7Ci0gICAgfSwKLQotICAgIGdldCBtb2RlbEV2ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMub2JqZWN0SW5zdGFuY2U7Ci0gICAgfSwKLQotICAgIGdldCBvYmplY3RJbnN0YW5jZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLm9iamVjdEluc3RhbmNlXzsKLSAgICB9LAotCi0gICAgc2V0IG9iamVjdEluc3RhbmNlKGkpIHsKLSAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gaTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHMoKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9Ci0gIH07Ci0KLSAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnMoCi0gICAgICB0ci5iLlRZUEVfQkFTRURfUkVHSVNUUllfTU9ERSk7Ci0gIG9wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzID0gT2JqZWN0SW5zdGFuY2VWaWV3OwotICBvcHRpb25zLmRlZmF1bHRNZXRhZGF0YSA9IHsKLSAgICBzaG93SW5UcmFja1ZpZXc6IHRydWUKLSAgfTsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KE9iamVjdEluc3RhbmNlVmlldywgb3B0aW9ucyk7Ci0KLSAgcmV0dXJuIHsKLSAgICBPYmplY3RJbnN0YW5jZVZpZXc6IE9iamVjdEluc3RhbmNlVmlldwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL29iamVjdF9zbmFwc2hvdF92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYmNlMWQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL29iamVjdF9zbmFwc2hvdF92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKLSAgdmFyIE9iamVjdFNuYXBzaG90VmlldyA9IHRyLmIudWkuZGVmaW5lKCdvYmplY3Qtc25hcHNob3QtdmlldycpOwotCi0gIE9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdF8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIHNldCBtb2RlbEV2ZW50KG9iaikgewotICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdCA9IG9iajsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsRXZlbnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5vYmplY3RTbmFwc2hvdDsKLSAgICB9LAotCi0gICAgZ2V0IG9iamVjdFNuYXBzaG90KCkgewotICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U25hcHNob3RfOwotICAgIH0sCi0KLSAgICBzZXQgb2JqZWN0U25hcHNob3QoaSkgewotICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdF8gPSBpOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50cygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50czogZnVuY3Rpb24oKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0KLSAgfTsKLQotICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucygKLSAgICAgIHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTsKLSAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBPYmplY3RTbmFwc2hvdFZpZXc7Ci0gIG9wdGlvbnMuZGVmYXVsdE1ldGFkYXRhID0gewotICAgIHNob3dJbnN0YW5jZXM6IHRydWUsCi0gICAgc2hvd0luVHJhY2tWaWV3OiB0cnVlCi0gIH07Ci0gIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RTbmFwc2hvdFZpZXcsIG9wdGlvbnMpOwotCi0gIHJldHVybiB7Ci0gICAgT2JqZWN0U25hcHNob3RWaWV3OiBPYmplY3RTbmFwc2hvdFZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9yZWxhdGVkX2V2ZW50cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzA3NDFhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9yZWxhdGVkX2V2ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTk2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1yZWxhdGVkLWV2ZW50cyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgfQotICAgICN0YWJsZSB7Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPHRyLWItdWktdGFibGUgaWQ9InRhYmxlIj48L3RyLWItdWktdGFibGU+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuZXZlbnRHcm91cHNfID0gW107Ci0KLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ0V2ZW50KHMpJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudHlwZTsgfSwKLSAgICAgICAgICB3aWR0aDogJzE1MHB4JwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdMaW5rJywKLSAgICAgICAgICB3aWR0aDogJzEwMCUnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIHZhciBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpOwotICAgICAgICAgICAgaWYgKHJvdy5uYW1lKQotICAgICAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChyb3cuc2VsZWN0aW9uLCByb3cubmFtZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIGxpbmtFbC5zZWxlY3Rpb24gPSByb3cuc2VsZWN0aW9uOwotICAgICAgICAgICAgcmV0dXJuIGxpbmtFbDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIF07Ci0gICAgfSwKLQotICAgIGhhc1JlbGF0ZWRFdmVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuICh0aGlzLmV2ZW50R3JvdXBzXyAmJiB0aGlzLmV2ZW50R3JvdXBzXy5sZW5ndGggPiAwKTsKLSAgICB9LAotCi0gICAgYWRkUmVsYXRlZEV2ZW50czogZnVuY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLmFkZENvbm5lY3RlZEZsb3dzXyhzZWxlY3Rpb24pOwotICAgICAgdGhpcy5hZGRDb25uZWN0ZWRFdmVudHNfKHNlbGVjdGlvbik7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBhZGRDb25uZWN0ZWRGbG93c186IGZ1bmN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdmFyIGNsYXNzaWZpZXIgPSBuZXcgdHIuYy5hbmFseXNpcy5GbG93Q2xhc3NpZmllcigpOwotICAgICAgc2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgaWYgKHNsaWNlLmluRmxvd0V2ZW50cykgewotICAgICAgICAgIHNsaWNlLmluRmxvd0V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGZsb3cpIHsKLSAgICAgICAgICAgIGNsYXNzaWZpZXIuYWRkSW5GbG93KGZsb3cpOwotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzbGljZS5vdXRGbG93RXZlbnRzKSB7Ci0gICAgICAgICAgc2xpY2Uub3V0Rmxvd0V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGZsb3cpIHsKLSAgICAgICAgICAgIGNsYXNzaWZpZXIuYWRkT3V0RmxvdyhmbG93KTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgfSk7Ci0gICAgICBpZiAoIWNsYXNzaWZpZXIuaGFzRXZlbnRzKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGFkZFRvRXZlbnRHcm91cHMgPSBmdW5jdGlvbih0eXBlLCBmbG93RXZlbnQpIHsKLSAgICAgICAgdGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7Ci0gICAgICAgICAgdHlwZTogdHlwZSwKLSAgICAgICAgICBzZWxlY3Rpb246IG5ldyB0ci5jLlNlbGVjdGlvbihmbG93RXZlbnQpLAotICAgICAgICAgIG5hbWU6IGZsb3dFdmVudC50aXRsZQotICAgICAgICB9KTsKLSAgICAgIH07Ci0KLSAgICAgIGNsYXNzaWZpZXIuaW5GbG93RXZlbnRzLmZvckVhY2goCi0gICAgICAgICAgYWRkVG9FdmVudEdyb3Vwcy5iaW5kKHRoaXMsICdJbmNvbWluZyBmbG93JykpOwotICAgICAgY2xhc3NpZmllci5vdXRGbG93RXZlbnRzLmZvckVhY2goCi0gICAgICAgICAgYWRkVG9FdmVudEdyb3Vwcy5iaW5kKHRoaXMsICdPdXRnb2luZyBmbG93JykpOwotICAgICAgY2xhc3NpZmllci5pbnRlcm5hbEZsb3dFdmVudHMuZm9yRWFjaCgKLSAgICAgICAgICBhZGRUb0V2ZW50R3JvdXBzLmJpbmQodGhpcywgJ0ludGVybmFsIGZsb3cnKSk7Ci0gICAgfSwKLQotICAgIGFkZENvbm5lY3RlZEV2ZW50c186IGZ1bmN0aW9uKHNlbGVjdGlvbikgewotICAgICAgLy8gUHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgZXZlbnRzIGFyZSBvbmx5IHdlbGwtZGVmaW5lZCBmb3Igc2luZ2xlCi0gICAgICAvLyBzZWxlY3Rpb25zLgotICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggPT09IDEpCi0gICAgICAgIHRoaXMuYWRkQ29ubmVjdGVkRXZlbnRzRm9yU2xpY2VfKHNlbGVjdGlvblswXSk7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMuYWRkQ29ubmVjdGVkRXZlbnRzRm9yU2VsZWN0aW9uXyhzZWxlY3Rpb24pOwotICAgIH0sCi0KLSAgICBhZGRDb25uZWN0ZWRFdmVudHNGb3JTbGljZV86IGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICB2YXIgcHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9uID0gdW5kZWZpbmVkOwotICAgICAgdmFyIGZvbGxvd2luZ0V2ZW50c1NlbGVjdGlvbiA9IHVuZGVmaW5lZDsKLSAgICAgIGlmIChzbGljZS5pbkZsb3dFdmVudHMgJiYgc2xpY2UuaW5GbG93RXZlbnRzLmxlbmd0aCAhPT0gMCkgewotICAgICAgICBwcmVjZWRpbmdFdmVudHNTZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgICAgdGhpcy5yZWN1cnNpdmVseUFkZENvbm5lY3RlZEV2ZW50c18ocHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9uLCB7fSwgc2xpY2UsCi0gICAgICAgICAgICBmdW5jdGlvbihldmVudCkgeyByZXR1cm4gZXZlbnQuaW5GbG93RXZlbnRzOyB9KTsKLSAgICAgICAgdGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7Ci0gICAgICAgICAgdHlwZTogJ1ByZWNlZGluZyBldmVudHMnLAotICAgICAgICAgIHNlbGVjdGlvbjogcHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9uCi0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgaWYgKHNsaWNlLm91dEZsb3dFdmVudHMgJiYgc2xpY2Uub3V0Rmxvd0V2ZW50cy5sZW5ndGggIT09IDApIHsKLSAgICAgICAgZm9sbG93aW5nRXZlbnRzU2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICAgIHRoaXMucmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfKGZvbGxvd2luZ0V2ZW50c1NlbGVjdGlvbiwge30sIHNsaWNlLAotICAgICAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsgcmV0dXJuIGV2ZW50Lm91dEZsb3dFdmVudHM7IH0pOwotICAgICAgICB0aGlzLmV2ZW50R3JvdXBzXy5wdXNoKHsKLSAgICAgICAgICB0eXBlOiAnRm9sbG93aW5nIGV2ZW50cycsCi0gICAgICAgICAgc2VsZWN0aW9uOiBmb2xsb3dpbmdFdmVudHNTZWxlY3Rpb24KLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgICBpZiAocHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9uICYmIGZvbGxvd2luZ0V2ZW50c1NlbGVjdGlvbikgewotICAgICAgICB2YXIgYWxsRXZlbnRzU2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlY2VkaW5nRXZlbnRzU2VsZWN0aW9uLmxlbmd0aDsgKytpKQotICAgICAgICAgIGFsbEV2ZW50c1NlbGVjdGlvbi5wdXNoKHByZWNlZGluZ0V2ZW50c1NlbGVjdGlvbltpXSk7Ci0gICAgICAgIC8vIERvIG5vdCBhZGQgdGhlIGZpcnN0IGV2ZW50IG9mIGZvbGxvd2luZ0V2ZW50c1NlbGVjdGlvbiBzaW5jZSBpdCdzCi0gICAgICAgIC8vIHRoZSBzbGljZSB0b28uCi0gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgZm9sbG93aW5nRXZlbnRzU2VsZWN0aW9uLmxlbmd0aDsgKytpKQotICAgICAgICAgIGFsbEV2ZW50c1NlbGVjdGlvbi5wdXNoKGZvbGxvd2luZ0V2ZW50c1NlbGVjdGlvbltpXSk7Ci0gICAgICAgIHRoaXMuZXZlbnRHcm91cHNfLnB1c2goewotICAgICAgICAgIHR5cGU6ICdBbGwgY29ubmVjdGVkIGV2ZW50cycsCi0gICAgICAgICAgc2VsZWN0aW9uOiBhbGxFdmVudHNTZWxlY3Rpb24KLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFkZENvbm5lY3RlZEV2ZW50c0ZvclNlbGVjdGlvbl86IGZ1bmN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdmFyIGV2ZW50SWRzID0ge307Ci0gICAgICB2YXIgYWxsRXZlbnRzU2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICBzZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbihzbGljZSkgewotICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5QWRkQ29ubmVjdGVkRXZlbnRzXyhhbGxFdmVudHNTZWxlY3Rpb24sIGV2ZW50SWRzLCBzbGljZSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICAgIHZhciBmbG93cyA9IFtdOwotICAgICAgICAgICAgICBpZiAoZXZlbnQuaW5GbG93RXZlbnRzKQotICAgICAgICAgICAgICAgIGZsb3dzID0gZmxvd3MuY29uY2F0KGV2ZW50LmluRmxvd0V2ZW50cyk7Ci0gICAgICAgICAgICAgIGlmIChldmVudC5vdXRGbG93RXZlbnRzKQotICAgICAgICAgICAgICAgIGZsb3dzID0gZmxvd3MuY29uY2F0KGV2ZW50Lm91dEZsb3dFdmVudHMpOwotICAgICAgICAgICAgICByZXR1cm4gZmxvd3M7Ci0gICAgICAgICAgICB9KTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAvLyBBZGQgcmVsYXRlZCBldmVudHMgaWYgaXQgY29udGFpbnMgbW9yZSB0aGFuIHRoZSBvcmlnaW5hbCBzZWxlY3Rpb24uCi0gICAgICBpZiAoYWxsRXZlbnRzU2VsZWN0aW9uLmxlbmd0aCA+IHNlbGVjdGlvbi5sZW5ndGgpIHsKLSAgICAgICAgdGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7Ci0gICAgICAgICAgdHlwZTogJ0FsbCBjb25uZWN0ZWQgZXZlbnRzJywKLSAgICAgICAgICBzZWxlY3Rpb246IGFsbEV2ZW50c1NlbGVjdGlvbgotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC50YWJsZTsKLSAgICAgIGlmICh0aGlzLmV2ZW50R3JvdXBzXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSBbXTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGFibGUudGFibGVSb3dzID0gdGhpcy5ldmVudEdyb3Vwc18uc2xpY2UoKTsKLSAgICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB9LAotCi0gICAgcmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfOiBmdW5jdGlvbihzZWxlY3Rpb24sIGV2ZW50SWRzLCBldmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEZsb3dzKSB7Ci0gICAgICBpZiAoIWV2ZW50IHx8IGV2ZW50SWRzW2V2ZW50Lmd1aWRdKQotICAgICAgICByZXR1cm47Ci0gICAgICBldmVudElkc1tldmVudC5ndWlkXSA9IHRydWU7Ci0gICAgICBzZWxlY3Rpb24ucHVzaChldmVudCk7Ci0gICAgICB2YXIgZmxvd0V2ZW50cyA9IGdldEZsb3dzKGV2ZW50KTsKLSAgICAgIGlmICghZmxvd0V2ZW50cykKLSAgICAgICAgcmV0dXJuOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmbG93RXZlbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHNlbGVjdGlvbi5wdXNoKGZsb3dFdmVudHNbaV0pOwotICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5QWRkQ29ubmVjdGVkRXZlbnRzXyhzZWxlY3Rpb24sIGV2ZW50SWRzLAotICAgICAgICAgICAgZmxvd0V2ZW50c1tpXS5zdGFydFNsaWNlLCBnZXRGbG93cyk7Ci0gICAgICAgIHRoaXMucmVjdXJzaXZlbHlBZGRDb25uZWN0ZWRFdmVudHNfKHNlbGVjdGlvbiwgZXZlbnRJZHMsCi0gICAgICAgICAgICBmbG93RXZlbnRzW2ldLmVuZFNsaWNlLCBnZXRGbG93cyk7Ci0gICAgICB9Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9yZWxhdGVkX2V2ZW50c190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHNfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzBlNmYwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9yZWxhdGVkX2V2ZW50c190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3JlbGF0ZWRfZXZlbnRzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkX3NsaWNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKLSAgdmFyIG5ld0Zsb3dFdmVudEV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld0Zsb3dFdmVudEV4OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obSkgewotICAgICAgbS5wMSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotCi0gICAgICBtLnQyID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICAgIG0udDMgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDMpOwotICAgICAgbS50NCA9IG0ucDEuZ2V0T3JDcmVhdGVUaHJlYWQoNCk7Ci0KLSAgICAgIG0uc0EgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDUsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0gICAgICBtLnNCID0gbS50My5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMTAsIGVuZDogMTUsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0gICAgICBtLnNDID0gbS50NC5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2MnLCBzdGFydDogMjAsIGVuZDogMjAsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0KLSAgICAgIG0udDIuY3JlYXRlU3ViU2xpY2VzKCk7Ci0gICAgICBtLnQzLmNyZWF0ZVN1YlNsaWNlcygpOwotICAgICAgbS50NC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgICAgbS5mMSA9IG5ld0Zsb3dFdmVudEV4KHsKLSAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMCwgZW5kOiAxMCwKLSAgICAgICAgc3RhcnRTbGljZTogbS5zQSwKLSAgICAgICAgZW5kU2xpY2U6IG0uc0IKLSAgICAgIH0pOwotICAgICAgbS5mMiA9IG5ld0Zsb3dFdmVudEV4KHsKLSAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMTUsIGVuZDogMjEsCi0gICAgICAgIHN0YXJ0U2xpY2U6IG0uc0IsCi0gICAgICAgIGVuZFNsaWNlOiBtLnNDCi0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtcmVsYXRlZC1ldmVudHMnKTsKLSAgICB2aWV3RWwuYWRkUmVsYXRlZEV2ZW50cyhuZXcgdHIuYy5TZWxlY3Rpb24oW20uc0EsIG0uZjEsIG0uc0IsIG0uZjIsIG0uc0NdKSk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0gIH0pOwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NlbGVjdGlvbl9zdW1tYXJ5X3RhYmxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc2YmE4Yi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS90YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uX3NwYW4uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcF9zcGFuLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLWMtYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZSc+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICB9Ci0gICAgI3RhYmxlIHsKLSAgICAgIGZsZXg6IDEgMSBhdXRvOwotICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8dHItYi11aS10YWJsZSBpZD0idGFibGUiPgotICAgIDwvdHItYi11aS10YWJsZT4KLSAgICA8L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICB9LAotCi0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLnRhYmxlLnNob3dIZWFkZXIgPSBmYWxzZTsKLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ05hbWUnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy50aXRsZTsgfSwKLSAgICAgICAgICB3aWR0aDogJzM1MHB4JwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdWYWx1ZScsCi0gICAgICAgICAgd2lkdGg6ICcxMDAlJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgICByZXR1cm4gcm93LnZhbHVlOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgXTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uXzsKLSAgICAgIHZhciByb3dzID0gW107Ci0gICAgICB2YXIgaGFzUmFuZ2U7Ci0gICAgICBpZiAodGhpcy5zZWxlY3Rpb25fICYmICghc2VsZWN0aW9uLmJvdW5kcy5pc0VtcHR5KSkKLSAgICAgICAgaGFzUmFuZ2UgPSB0cnVlOwotICAgICAgZWxzZQotICAgICAgICBoYXNSYW5nZSA9IGZhbHNlOwotCi0gICAgICByb3dzLnB1c2goewotICAgICAgICB0aXRsZTogJ1NlbGVjdGlvbiBzdGFydCcsCi0gICAgICAgIHZhbHVlOiBoYXNSYW5nZSA/Ci0gICAgICAgICAgICB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oc2VsZWN0aW9uLmJvdW5kcy5taW4pIDogJzxlbXB0eT4nCi0gICAgICB9KTsKLSAgICAgIHJvd3MucHVzaCh7Ci0gICAgICAgIHRpdGxlOiAnU2VsZWN0aW9uIGV4dGVudCcsCi0gICAgICAgIHZhbHVlOiBoYXNSYW5nZSA/Ci0gICAgICAgICAgICB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTcGFuKHNlbGVjdGlvbi5ib3VuZHMucmFuZ2UpIDogJzxlbXB0eT4nCi0gICAgICB9KTsKLQotICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IHJvd3M7Ci0gICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NlbGVjdGlvbl9zdW1tYXJ5X3RhYmxlX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRhMWRiOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGVfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NlbGVjdGlvbl9zdW1tYXJ5X3RhYmxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0KLSAgdGVzdCgnbm9TZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc3VtbWFyeVRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNlbGVjdGlvbi1zdW1tYXJ5LXRhYmxlJyk7Ci0gICAgc3VtbWFyeVRhYmxlLnNlbGVjdGlvbiA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3VtbWFyeVRhYmxlKTsKLQotICAgIHZhciB0YWJsZUVsID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgc3VtbWFyeVRhYmxlLCAndHItYi11aS10YWJsZScpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZUVsLnRhYmxlUm93c1swXS52YWx1ZSwgJzxlbXB0eT4nKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVFbC50YWJsZVJvd3NbMV0udmFsdWUsICc8ZW1wdHk+Jyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2VtcHR5U2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHN1bW1hcnlUYWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZScpOwotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc3VtbWFyeVRhYmxlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3VtbWFyeVRhYmxlKTsKLQotICAgIHZhciB0YWJsZUVsID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgc3VtbWFyeVRhYmxlLCAndHItYi11aS10YWJsZScpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZUVsLnRhYmxlUm93c1swXS52YWx1ZSwgJzxlbXB0eT4nKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGVFbC50YWJsZVJvd3NbMV0udmFsdWUsICc8ZW1wdHk+Jyk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOwotCi0gICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiAzfSkpOwotICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDEsIGVuZDogMn0pKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2godHNnLnNsaWNlc1swXSk7Ci0gICAgc2VsZWN0aW9uLnB1c2godHNnLnNsaWNlc1sxXSk7Ci0KLSAgICB2YXIgc3VtbWFyeVRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNlbGVjdGlvbi1zdW1tYXJ5LXRhYmxlJyk7Ci0gICAgc3VtbWFyeVRhYmxlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3VtbWFyeVRhYmxlKTsKLQotICAgIHZhciB0YWJsZUVsID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgc3VtbWFyeVRhYmxlLCAndHItYi11aS10YWJsZScpOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZUVsLnRhYmxlUm93c1swXS52YWx1ZS50aW1lc3RhbXAsIDApOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZUVsLnRhYmxlUm93c1sxXS52YWx1ZS5kdXJhdGlvbiwgMyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfYWxlcnRfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfYWxlcnRfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjI3YjBjOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2FsZXJ0X3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLWFsZXJ0LXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotCi0gICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB2YXIgcmVhbFZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7Ci0gICAgICByZWFsVmlldy5hZGRFeHRyYVJvd3NDYWxsYmFjayA9IGZ1bmN0aW9uKHJvd3MpIHsKLSAgICAgICAgLy8gQWxlcnQgZGVzY3JpcHRpb24uCi0gICAgICAgIHZhciBhbGVydCA9IHRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF07Ci0KLSAgICAgICAgdmFyIGRlc2NyaXB0aW9uRWwgPSB0ci5iLnVpLmNyZWF0ZVNwYW4oewotICAgICAgICAgIHRleHRDb250ZW50OiBhbGVydC5pbmZvLmRlc2NyaXB0aW9uCi0gICAgICAgIH0pOwotICAgICAgICByb3dzLnB1c2goewotICAgICAgICAgIG5hbWU6ICdEZXNjcmlwdGlvbicsCi0gICAgICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uRWwKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gQXNzb2NpYXRlZCBldmVudHMuLi4KLSAgICAgICAgaWYgKGFsZXJ0LmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoKSB7Ci0gICAgICAgICAgdmFyIGV2ZW50U3ViUm93cyA9IFtdOwotICAgICAgICAgIGFsZXJ0LmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCwgaSkgewotICAgICAgICAgICAgdmFyIGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbihldmVudCk7Ci0gICAgICAgICAgICB9LCBldmVudC51c2VyRnJpZW5kbHlOYW1lKTsKLSAgICAgICAgICAgIGV2ZW50U3ViUm93cy5wdXNoKHsKLSAgICAgICAgICAgICAgbmFtZTogaSwKLSAgICAgICAgICAgICAgdmFsdWU6IGxpbmtFbAotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICByb3dzLnB1c2goewotICAgICAgICAgICAgbmFtZTogJ0FsZXJ0cycsIHZhbHVlOiAnJywKLSAgICAgICAgICAgIGlzRXhwYW5kZWQ6IHRydWUsIHN1YlJvd3M6IGV2ZW50U3ViUm93cwotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICB9LmJpbmQodGhpcyk7Ci0KLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQocmVhbFZpZXcpOwotICAgICAgcmVhbFZpZXcuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M1ODZiZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXciPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgZ2V0RXZlbnRSb3dzXzogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIC8vIFRPRE8obmR1Y2EpOiBGaWd1cmUgb3V0IGlmIHRoZXJlIGlzIGEgY2xlYW5lciB3YXkgdG8gZG8gdGhpcy4KLSAgICAgIHZhciByb3dzID0gdGhpcy5fX3Byb3RvX18uX19wcm90b19fLmdldEV2ZW50Um93c18oZXZlbnQpOwotCi0gICAgICAvLyBQdXQgdGhlIElEIHVwIHRvcC4KLSAgICAgIHJvd3Muc3BsaWNlKDAsIDAsIHsKLSAgICAgICAgbmFtZTogJ0lEJywKLSAgICAgICAgdmFsdWU6IGV2ZW50LmlkCi0gICAgICB9KTsKLSAgICAgIHJldHVybiByb3dzOwotICAgIH0sCi0KLSAgICBnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCkgewotICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdLmFzc29jaWF0ZWRFdmVudHMpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHJldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24odGhpcy5jdXJyZW50U2VsZWN0aW9uX1swXS5hc3NvY2lhdGVkRXZlbnRzKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5ZTczMzMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1jcHUtc2xpY2Utc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICB0YWJsZSB7Ci0gICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwotICAgICAgYm9yZGVyLXdpZHRoOiAwOwotICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKLSAgICAgIHdpZHRoOiAxMDAlOwotICAgIH0KLQotICAgIHRhYmxlIHRyID4gdGQ6Zmlyc3QtY2hpbGQgewotICAgICAgcGFkZGluZy1sZWZ0OiAycHg7Ci0gICAgfQotCi0gICAgdGFibGUgdHIgPiB0ZCB7Ci0gICAgICBwYWRkaW5nOiAycHggNHB4IDJweCA0cHg7Ci0gICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7Ci0gICAgICB3aWR0aDogMTUwcHg7Ci0gICAgfQotCi0gICAgdGFibGUgdGQgdGQgewotICAgICAgcGFkZGluZzogMCAwIDAgMDsKLSAgICAgIHdpZHRoOiBhdXRvOwotICAgIH0KLSAgICB0ciB7Ci0gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwotICAgIH0KLQotICAgIHRyOm50aC1jaGlsZCgybiswKSB7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0YWJsZT4KLSAgICAgIDx0cj4KLSAgICAgICAgPHRkPlJ1bm5pbmcgcHJvY2Vzczo8L3RkPjx0ZCBpZD0icHJvY2Vzcy1uYW1lIj48L3RkPgotICAgICAgPC90cj4KLSAgICAgIDx0cj4KLSAgICAgICAgPHRkPlJ1bm5pbmcgdGhyZWFkOjwvdGQ+PHRkIGlkPSJ0aHJlYWQtbmFtZSI+PC90ZD4KLSAgICAgIDwvdHI+Ci0gICAgICA8dHI+Ci0gICAgICAgIDx0ZD5TdGFydDo8L3RkPjx0ZCBpZD0ic3RhcnQiPjwvdGQ+Ci0gICAgICA8L3RyPgotICAgICAgPHRyPgotICAgICAgICA8dGQ+RHVyYXRpb246PC90ZD48dGQgaWQ9ImR1cmF0aW9uIj48L3RkPgotICAgICAgPC90cj4KLSAgICAgIDx0cj4KLSAgICAgICAgPHRkPkFjdGl2ZSBzbGljZXM6PC90ZD48dGQgaWQ9InJ1bm5pbmctdGhyZWFkIj48L3RkPgotICAgICAgPC90cj4KLSAgICAgIDx0cj4KLSAgICAgICAgPHRkPkFyZ3M6PC90ZD4KLSAgICAgICAgPHRkPgotICAgICAgICAgIDx0ci1jLWEtZ2VuZXJpYy1vYmplY3QtdmlldyBpZD0iYXJncyI+Ci0gICAgICAgICAgPC90ci1jLWEtZ2VuZXJpYy1vYmplY3Qtdmlldz4KLSAgICAgICAgPC90ZD4KLSAgICAgIDwvdHI+Ci0gICAgPC90YWJsZT4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggIT09IDEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgc2xpY2VzJyk7Ci0gICAgICBpZiAoIShzZWxlY3Rpb25bMF0gaW5zdGFuY2VvZiB0ci5tb2RlbC5DcHVTbGljZSkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyB0aHJlYWQgdGltZSBzbGljZXMnKTsKLQotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLQotICAgICAgdmFyIGNwdVNsaWNlID0gc2VsZWN0aW9uWzBdOwotICAgICAgdmFyIHRocmVhZCA9IGNwdVNsaWNlLnRocmVhZFRoYXRXYXNSdW5uaW5nOwotCi0gICAgICB2YXIgc2hhZG93Um9vdCA9IHRoaXMuc2hhZG93Um9vdDsKLSAgICAgIGlmICh0aHJlYWQpIHsKLSAgICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcHJvY2Vzcy1uYW1lJykudGV4dENvbnRlbnQgPQotICAgICAgICAgICAgdGhyZWFkLnBhcmVudC51c2VyRnJpZW5kbHlOYW1lOwotICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN0aHJlYWQtbmFtZScpLnRleHRDb250ZW50ID0KLSAgICAgICAgICAgIHRocmVhZC51c2VyRnJpZW5kbHlOYW1lOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcHJvY2Vzcy1uYW1lJykucGFyZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0KLSAgICAgICAgICAgICdub25lJzsKLSAgICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjdGhyZWFkLW5hbWUnKS50ZXh0Q29udGVudCA9IGNwdVNsaWNlLnRpdGxlOwotICAgICAgfQotCi0gICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNzdGFydCcpLnRleHRDb250ZW50ID0KLSAgICAgICAgICB0ci5iLnVuaXRzLnRzU3RyaW5nKGNwdVNsaWNlLnN0YXJ0KTsKLQotICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjZHVyYXRpb24nKS50ZXh0Q29udGVudCA9Ci0gICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyhjcHVTbGljZS5kdXJhdGlvbik7Ci0gICAgICB2YXIgcnVubmluZ1RocmVhZEVsID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcnVubmluZy10aHJlYWQnKTsKLQotICAgICAgdmFyIHRpbWVTbGljZSA9IGNwdVNsaWNlLmdldEFzc29jaWF0ZWRUaW1lc2xpY2UoKTsKLSAgICAgIGlmICghdGltZVNsaWNlKSB7Ci0gICAgICAgIHJ1bm5pbmdUaHJlYWRFbC5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB2YXIgdGhyZWFkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICAgIHRocmVhZExpbmsuc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKHRpbWVTbGljZSk7Ci0gICAgICAgIHRocmVhZExpbmsudGV4dENvbnRlbnQgPSAnQ2xpY2sgdG8gc2VsZWN0JzsKLSAgICAgICAgcnVubmluZ1RocmVhZEVsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICcnOwotICAgICAgICBydW5uaW5nVGhyZWFkRWwudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgcnVubmluZ1RocmVhZEVsLmFwcGVuZENoaWxkKHRocmVhZExpbmspOwotICAgICAgfQotCi0gICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNhcmdzJykub2JqZWN0ID0gY3B1U2xpY2UuYXJnczsKLQotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2NwdV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2NwdV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3NWJhZDYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gY3JlYXRlQmFzaWNNb2RlbCgpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnQW5kcm9pZC5sYXVuY2hlci01ODQgICBbMDAxXSBkLi4zIDEyNjIyLjUwNjg5MDogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QW5kcm9pZC5sYXVuY2hlciBwcmV2X3BpZD01ODQgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIrID09PiBuZXh0X2NvbW09QmluZGVyXzEgbmV4dF9waWQ9MjE3IG5leHRfcHJpbz0xMjAnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSBkLi4zIDEyNjIyLjUwNjkxODogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QmluZGVyXzEgcHJldl9waWQ9MjE3IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1EID09PiBuZXh0X2NvbW09QW5kcm9pZC5sYXVuY2hlciBuZXh0X3BpZD01ODQgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAnQW5kcm9pZC5sYXVuY2hlci01ODQgICBbMDAxXSBkLi40IDEyNjIyLjUwNjkzNjogc2NoZWRfd2FrZXVwOiBjb21tPUJpbmRlcl8xIHBpZD0yMTcgcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAxJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjMgMTI2MjIuNTA2OTUwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1BbmRyb2lkLmxhdW5jaGVyIHByZXZfcGlkPTU4NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UisgPT0+IG5leHRfY29tbT1CaW5kZXJfMSBuZXh0X3BpZD0yMTcgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIC4uLjEgMTI2MjIuNTA3MDU3OiB0cmFjaW5nX21hcmtfd3JpdGU6IEJ8MTI4fHF1ZXVlQnVmZmVyJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gLi4uMSAxMjYyMi41MDcxNzU6IHRyYWNpbmdfbWFya193cml0ZTogRScsCi0gICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIGQuLjMgMTI2MjIuNTA3MjUzOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1CaW5kZXJfMSBwcmV2X3BpZD0yMTcgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1BbmRyb2lkLmxhdW5jaGVyIG5leHRfcGlkPTU4NCBuZXh0X3ByaW89MTIwJyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0KLSAgICByZXR1cm4gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgfQotCi0gIHRlc3QoJ2NwdVNsaWNlVmlld193aXRoQ3B1U2xpY2VPbkV4aXN0aW5nVGhyZWFkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBjcmVhdGVCYXNpY01vZGVsKCk7Ci0KLSAgICB2YXIgY3B1ID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGNwdSk7Ci0gICAgdmFyIGNwdVNsaWNlID0gY3B1LnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoJ0JpbmRlcl8xJywgY3B1U2xpY2UudGl0bGUpOwotCi0gICAgdmFyIHRocmVhZCA9IG0uZmluZEFsbFRocmVhZHNOYW1lZCgnQmluZGVyXzEnKVswXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHRocmVhZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNwdVNsaWNlLnRocmVhZFRoYXRXYXNSdW5uaW5nLCB0aHJlYWQpOwotCi0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWNwdS1zbGljZS1zdWItdmlldycpOwotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaChjcHVTbGljZSk7Ci0gICAgdmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotCi0gICAgLy8gQ2xpY2tpbmcgdGhlIGFuYWx5c2lzIGxpbmsgc2hvdWxkIGZvY3VzIHRoZSBCaW5kZXIxJ3MgdGltZXNsaWNlLgotICAgIHZhciBkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4gPSBmYWxzZTsKLSAgICB2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBmdW5jdGlvbihlKSB7Ci0gICAgICBhc3NlcnQuZXF1YWwoMSwgZS5zZWxlY3Rpb24ubGVuZ3RoKTsKLSAgICAgIGFzc2VydC5lcXVhbCh0aHJlYWQudGltZVNsaWNlc1swXSwgZS5zZWxlY3Rpb25bMF0pOwotICAgICAgZGlkU2VsZWN0aW9uQ2hhbmdlSGFwcGVuID0gdHJ1ZTsKLSAgICB9KTsKLSAgICB2aWV3LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigndHItYy1hLWFuYWx5c2lzLWxpbmsnKS5jbGljaygpOwotICAgIGFzc2VydC5pc1RydWUoZGlkU2VsZWN0aW9uQ2hhbmdlSGFwcGVuKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY3B1U2xpY2VWaWV3V2l0aENwdVNsaWNlT25NaXNzaW5nVGhyZWFkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBjcmVhdGVCYXNpY01vZGVsKCk7Ci0KLSAgICB2YXIgY3B1ID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGNwdSk7Ci0gICAgdmFyIGNwdVNsaWNlID0gY3B1LnNsaWNlc1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoJ0FuZHJvaWQubGF1bmNoZXInLCBjcHVTbGljZS50aXRsZSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGNwdVNsaWNlLnRocmVhZCk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goY3B1U2xpY2UpOwotCi0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWNwdS1zbGljZS1zdWItdmlldycpOwotICAgIHZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyYmI2YTkuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgfQotICAgICN0YWJsZSB7Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPHRyLWItdWktdGFibGUgaWQ9InRhYmxlIj4KLSAgICA8L3RyLWItdWktdGFibGU+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1ucyA9IFsKLSAgICAgICAgewotICAgICAgICAgIHRpdGxlOiAnTGFiZWwnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5uYW1lOyB9LAotICAgICAgICAgIHdpZHRoOiAnMTUwcHgnCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ1ZhbHVlJywKLSAgICAgICAgICB3aWR0aDogJzEwMCUnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy52YWx1ZTsgfQotICAgICAgICB9Ci0gICAgICBdOwotICAgICAgdGhpcy4kLnRhYmxlLnNob3dIZWFkZXIgPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggIT09IDEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgc2xpY2VzJyk7Ci0gICAgICB0aGlzLnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pOwotICAgIH0sCi0KLSAgICBzZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3M6IGZ1bmN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldEV2ZW50Um93c186IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICB2YXIgcm93cyA9IFtdOwotCi0gICAgICBpZiAoZXZlbnQuZXJyb3IpCi0gICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdFcnJvcicsIHZhbHVlOiBldmVudC5lcnJvciB9KTsKLQotICAgICAgaWYgKGV2ZW50LnRpdGxlKQotICAgICAgICByb3dzLnB1c2goeyBuYW1lOiAnVGl0bGUnLCB2YWx1ZTogZXZlbnQudGl0bGUgfSk7Ci0KLSAgICAgIGlmIChldmVudC5jYXRlZ29yeSkKLSAgICAgICAgcm93cy5wdXNoKHsgbmFtZTogJ0NhdGVnb3J5JywgdmFsdWU6IGV2ZW50LmNhdGVnb3J5IH0pOwotCi0gICAgICB2YXIgc3RhcnRFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLXN0YW1wLXNwYW4nKTsKLSAgICAgIHN0YXJ0RWwudGltZXN0YW1wID0gZXZlbnQuc3RhcnQ7Ci0gICAgICByb3dzLnB1c2goeyBuYW1lOiAnU3RhcnQnLCB2YWx1ZTogc3RhcnRFbCB9KTsKLQotICAgICAgaWYgKGV2ZW50LmR1cmF0aW9uKSB7Ci0gICAgICAgIHZhciB3YWxsRHVyYXRpb25FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCi0gICAgICAgICAgICAndHItYi11LXRpbWUtZHVyYXRpb24tc3BhbicpOwotICAgICAgICB3YWxsRHVyYXRpb25FbC5kdXJhdGlvbiA9IGV2ZW50LmR1cmF0aW9uOwotICAgICAgICByb3dzLnB1c2goeyBuYW1lOiAnV2FsbCBEdXJhdGlvbicsIHZhbHVlOiB3YWxsRHVyYXRpb25FbCB9KTsKLSAgICAgIH0KLQotICAgICAgaWYgKGV2ZW50LmNwdUR1cmF0aW9uKSB7Ci0gICAgICAgIHZhciBjcHVEdXJhdGlvbkVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAgICd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7Ci0gICAgICAgIGNwdUR1cmF0aW9uRWwuZHVyYXRpb24gPSBldmVudC5jcHVEdXJhdGlvbjsKLSAgICAgICAgcm93cy5wdXNoKHsgbmFtZTogJ0NQVSBEdXJhdGlvbicsIHZhbHVlOiBjcHVEdXJhdGlvbkVsIH0pOwotICAgICAgfQotCi0gICAgICBpZiAoZXZlbnQuc3ViU2xpY2VzICE9PSB1bmRlZmluZWQgJiYgZXZlbnQuc3ViU2xpY2VzLmxlbmd0aCAhPT0gMCkgewotICAgICAgICBpZiAoZXZlbnQuc2VsZlRpbWUpIHsKLSAgICAgICAgICB2YXIgc2VsZlRpbWVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWItdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKLSAgICAgICAgICBzZWxmVGltZUVsLmR1cmF0aW9uID0gZXZlbnQuc2VsZlRpbWU7Ci0gICAgICAgICAgcm93cy5wdXNoKHsgbmFtZTogJ1NlbGYgVGltZScsIHZhbHVlOiBzZWxmVGltZUVsIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGV2ZW50LmNwdVNlbGZUaW1lKSB7Ci0gICAgICAgICAgdmFyIGNwdVNlbGZUaW1lRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICAgICAndHItYi11LXRpbWUtZHVyYXRpb24tc3BhbicpOwotICAgICAgICAgIGNwdVNlbGZUaW1lRWwuZHVyYXRpb24gPSBldmVudC5jcHVTZWxmVGltZTsKLSAgICAgICAgICBpZiAoZXZlbnQuY3B1U2VsZlRpbWUgPiBldmVudC5zZWxmVGltZSkgewotICAgICAgICAgICAgY3B1U2VsZlRpbWVFbC53YXJuaW5nID0KLSAgICAgICAgICAgICAgICAnIE5vdGUgdGhhdCBDUFUgU2VsZiBUaW1lIGlzIGxhcmdlciB0aGFuIFNlbGYgVGltZS4gJyArCi0gICAgICAgICAgICAgICAgJ1RoaXMgaXMgYSBrbm93biBsaW1pdGF0aW9uIG9mIHRoaXMgc3lzdGVtLCB3aGljaCBvY2N1cnMgJyArCi0gICAgICAgICAgICAgICAgJ2R1ZSB0byBzZXZlcmFsIHN1YnNsaWNlcywgcm91bmRpbmcgaXNzdWVzLCBhbmQgaW1wcmVjaXNlICcgKwotICAgICAgICAgICAgICAgICd0aW1lIGF0IHdoaWNoIHdlIGdldCBjcHUtIGFuZCByZWFsLXRpbWUuJzsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcm93cy5wdXNoKHtuYW1lOiAnQ1BVIFNlbGYgVGltZScsCi0gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY3B1U2VsZlRpbWVFbH0pOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIChldmVudC5kdXJhdGlvbkluVXNlclRpbWUpIHsKLSAgICAgICAgdmFyIGR1cmF0aW9uSW5Vc2VyVGltZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgICAgICd0ci1iLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7Ci0gICAgICAgIGR1cmF0aW9uSW5Vc2VyVGltZUVsLmR1cmF0aW9uID0gZXZlbnQuZHVyYXRpb25JblVzZXJUaW1lOwotICAgICAgICByb3dzLnB1c2goeyBuYW1lOiAnRHVyYXRpb24gKFUpJywgdmFsdWU6IGR1cmF0aW9uSW5Vc2VyVGltZUVsIH0pOwotICAgICAgfQotCi0gICAgICBmdW5jdGlvbiBjcmVhdGVTdGFja0ZyYW1lRWwoc2YpIHsKLSAgICAgICAgdmFyIHNmRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc3RhY2stZnJhbWUnKTsKLSAgICAgICAgc2ZFbC5zdGFja0ZyYW1lID0gc2Y7Ci0gICAgICAgIHJldHVybiBzZkVsOwotICAgICAgfQotICAgICAgaWYgKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSAmJiBldmVudC5lbmRTdGFja0ZyYW1lKSB7Ci0gICAgICAgIGlmIChldmVudC5zdGFydFN0YWNrRnJhbWUgPT09IGV2ZW50LmVuZFN0YWNrRnJhbWUpIHsKLSAgICAgICAgICByb3dzLnB1c2goe25hbWU6ICdTdGFydCtFbmQgU3RhY2sgVHJhY2UnLAotICAgICAgICAgICAgICB2YWx1ZTogY3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTsKLQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdTdGFydCBTdGFjayBUcmFjZScsCi0gICAgICAgICAgICAgIHZhbHVlOiBjcmVhdGVTdGFja0ZyYW1lRWwoZXZlbnQuc3RhcnRTdGFja0ZyYW1lKX0pOwotICAgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdFbmQgU3RhY2sgVHJhY2UnLAotICAgICAgICAgICAgICB2YWx1ZTogY3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LmVuZFN0YWNrRnJhbWUpfSk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc3RhcnRTdGFja0ZyYW1lKSB7Ci0gICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdTdGFydCBTdGFjayBUcmFjZScsCi0gICAgICAgICAgICB2YWx1ZTogY3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTsKLQotICAgICAgfSBlbHNlIGlmIChldmVudC5lbmRTdGFja0ZyYW1lKSB7Ci0gICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdFbmQgU3RhY2sgVHJhY2UnLAotICAgICAgICAgICAgdmFsdWU6IGNyZWF0ZVN0YWNrRnJhbWVFbChldmVudC5lbmRTdGFja0ZyYW1lKX0pOwotICAgICAgfQotCi0gICAgICBpZiAoZXZlbnQuaW5mbykgewotICAgICAgICB2YXIgZGVzY3JpcHRpb25FbCA9IHRyLmIudWkuY3JlYXRlRGl2KHsKLSAgICAgICAgICAgIHRleHRDb250ZW50OiBldmVudC5pbmZvLmRlc2NyaXB0aW9uLAotICAgICAgICAgICAgbWF4V2lkdGg6ICczMDBweCcKLSAgICAgICAgfSk7Ci0gICAgICAgIHJvd3MucHVzaCh7Ci0gICAgICAgICAgbmFtZTogJ0Rlc2NyaXB0aW9uJywKLSAgICAgICAgICB2YWx1ZTogZGVzY3JpcHRpb25FbAotICAgICAgICB9KTsKLQotCi0gICAgICAgIGlmIChldmVudC5pbmZvLmRvY0xpbmtzKSB7Ci0gICAgICAgICAgZXZlbnQuaW5mby5kb2NMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmtPYmplY3QpIHsKLSAgICAgICAgICAgIHZhciBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7Ci0gICAgICAgICAgICBsaW5rRWwudGFyZ2V0ID0gJ19ibGFuayc7Ci0gICAgICAgICAgICBsaW5rRWwuaHJlZiA9IGxpbmtPYmplY3QuaHJlZjsKLSAgICAgICAgICAgIGxpbmtFbC50ZXh0Q29udGVudCA9IGxpbmtPYmplY3QudGV4dENvbnRlbnQ7Ci0gICAgICAgICAgICByb3dzLnB1c2goewotICAgICAgICAgICAgICBuYW1lOiBsaW5rT2JqZWN0LmxhYmVsLAotICAgICAgICAgICAgICB2YWx1ZTogbGlua0VsCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICBpZiAoZXZlbnQuYXNzb2NpYXRlZEFsZXJ0cy5sZW5ndGgpIHsKLSAgICAgICAgdmFyIGFsZXJ0U3ViUm93cyA9IFtdOwotICAgICAgICBldmVudC5hc3NvY2lhdGVkQWxlcnRzLmZvckVhY2goZnVuY3Rpb24oYWxlcnQpIHsKLSAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgdHIuYy5TZWxlY3Rpb24oYWxlcnQpOwotICAgICAgICAgIH0sIGFsZXJ0LmluZm8uZGVzY3JpcHRpb24pOwotICAgICAgICAgIGFsZXJ0U3ViUm93cy5wdXNoKHsKLSAgICAgICAgICAgIG5hbWU6IGFsZXJ0LnRpdGxlLAotICAgICAgICAgICAgdmFsdWU6IGxpbmtFbAotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICByb3dzLnB1c2goewotICAgICAgICAgIG5hbWU6ICdBbGVydHMnLCB2YWx1ZTogJycsCi0gICAgICAgICAgaXNFeHBhbmRlZDogdHJ1ZSwgc3ViUm93czogYWxlcnRTdWJSb3dzCi0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgcmV0dXJuIHJvd3M7Ci0gICAgfSwKLQotICAgIGFkZEFyZ3NUb1Jvd3NfOiBmdW5jdGlvbihyb3dzLCBhcmdzKSB7Ci0gICAgICB2YXIgbiA9IDA7Ci0gICAgICBmb3IgKHZhciBhcmdOYW1lIGluIGFyZ3MpIHsKLSAgICAgICAgbiArPSAxOwotICAgICAgfQotICAgICAgaWYgKG4gPiAwKSB7Ci0gICAgICAgIHZhciBzdWJSb3dzID0gW107Ci0gICAgICAgIGZvciAodmFyIGFyZ05hbWUgaW4gYXJncykgewotICAgICAgICAgIHZhciBhcmdWaWV3ID0KLSAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICAgICAgICBhcmdWaWV3Lm9iamVjdCA9IGFyZ3NbYXJnTmFtZV07Ci0gICAgICAgICAgc3ViUm93cy5wdXNoKHsgbmFtZTogYXJnTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYXJnVmlld30pOwotICAgICAgICB9Ci0gICAgICAgIHJvd3MucHVzaCh7Ci0gICAgICAgICAgbmFtZTogJ0FyZ3MnLCB2YWx1ZTogJycsCi0gICAgICAgICAgaXNFeHBhbmRlZDogdHJ1ZSwgc3ViUm93czogc3ViUm93cwotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByb3dzOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLiQudGFibGUucm93cyA9IFtdOwotICAgICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHZhciBldmVudCA9IHRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF07Ci0KLSAgICAgIHZhciByb3dzID0gdGhpcy5nZXRFdmVudFJvd3NfKGV2ZW50KTsKLSAgICAgIHRoaXMuYWRkQXJnc1RvUm93c18ocm93cywgZXZlbnQuYXJncyk7Ci0KLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSByb3dzOwotICAgICAgdGhpcy4kLnRhYmxlLnJlYnVpbGQoKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFiYjM4Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7Ci0gIHZhciBuZXdTbGljZUNhdGVnb3J5ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlQ2F0ZWdvcnk7Ci0KLSAgZnVuY3Rpb24gY3JlYXRlU2VsZWN0aW9uKGN1c3RvbWl6ZVRocmVhZENhbGxiYWNrKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7Ci0gICAgdmFyIGltcG9ydE9wdGlvbnMgPSBuZXcgdHIuSW1wb3J0T3B0aW9ucygpOwotICAgIGltcG9ydE9wdGlvbnMuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHQ1MyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2Vzcyg1MikuZ2V0T3JDcmVhdGVUaHJlYWQoNTMpOwotICAgICAgY3VzdG9taXplVGhyZWFkQ2FsbGJhY2sodDUzLCBtb2RlbCk7Ci0gICAgfQotICAgIG1vZGVsLmltcG9ydFRyYWNlcyhbXSwgaW1wb3J0T3B0aW9ucyk7Ci0KLSAgICB2YXIgdDUzID0gbW9kZWwucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLQotICAgIHZhciB0NTN0cmFjayA9IHt9OwotICAgIHQ1M3RyYWNrLnRocmVhZCA9IHQ1MzsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2godDUzLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMSk7Ci0KLSAgICByZXR1cm4gc2VsZWN0aW9uOwotICB9Ci0KLSAgZnVuY3Rpb24gY3JlYXRlU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlKG9wdF9vcHRpb25zKSB7Ci0gICAgdmFyIG9wdGlvbnMgPSBvcHRfb3B0aW9ucyB8fCB7fTsKLSAgICByZXR1cm4gY3JlYXRlU2VsZWN0aW9uKGZ1bmN0aW9uKHQ1MywgbW9kZWwpIHsKLSAgICAgIGlmIChvcHRpb25zLndpdGhTdGFydFN0YWNrRnJhbWUgfHwgb3B0aW9ucy53aXRoRW5kU3RhY2tGcmFtZSkgewotICAgICAgICB2YXIgZkEgPSB0ci5jLnRlc3RfdXRpbHMubmV3U3RhY2tUcmFjZShtb2RlbCwgJ2NhdCcsIFsnYTEnLCAnYTInXSk7Ci0gICAgICAgIHZhciBmQiA9IHRyLmMudGVzdF91dGlscy5uZXdTdGFja1RyYWNlKG1vZGVsLCAnY2F0JywgWydiMScsICdiMiddKTsKLSAgICAgIH0KLQotICAgICAgdmFyIHNsaWNlOwotICAgICAgaWYgKG9wdGlvbnMud2l0aENhdGVnb3J5KQotICAgICAgICBzbGljZSA9IG5ld1NsaWNlQ2F0ZWdvcnkoJ2ZvbycsICdiJywgMCwgMC4wMDIpOwotICAgICAgZWxzZQotICAgICAgICBzbGljZSA9IG5ld1NsaWNlTmFtZWQoJ2InLCAwLCAwLjAwMik7Ci0KLSAgICAgIGlmIChvcHRpb25zLndpdGhTdGFydFN0YWNrRnJhbWUpCi0gICAgICAgIHNsaWNlLnN0YXJ0U3RhY2tGcmFtZSA9IG9wdGlvbnMud2l0aFN0YXJ0U3RhY2tGcmFtZSA9PT0gJ2EnID8gZkEgOiBmQjsKLQotICAgICAgaWYgKG9wdGlvbnMud2l0aEVuZFN0YWNrRnJhbWUpCi0gICAgICAgIHNsaWNlLmVuZFN0YWNrRnJhbWUgPSBvcHRpb25zLndpdGhFbmRTdGFja0ZyYW1lID09PSAnYScgPyBmQSA6IGZCOwotCi0gICAgICB0NTMuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOwotICAgIH0pOwotICB9OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhTaW5nbGVTbGljZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2UoKTsKLQotICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYWxlcnRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNsaWNlID0gbmV3U2xpY2VOYW1lZCgnYicsIDAsIDAuMDAyKTsKLQotICAgIHZhciBBTEVSVF9JTkZPXzEgPSBuZXcgdHIubW9kZWwuRXZlbnRJbmZvKAotICAgICAgICAnQWxlcnQgMScsICdDcml0aWNhbCBhbGVydCcpOwotCi0gICAgdmFyIGFsZXJ0ID0gbmV3IHRyLm1vZGVsLkFsZXJ0KEFMRVJUX0lORk9fMSwgNSwgW3NsaWNlXSk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goc2xpY2UpOwotCi0gICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7Ci0gICAgYW5hbHlzaXNFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2luZ2xlU2xpY2VXaXRoQXJnJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbiA9IGNyZWF0ZVNlbGVjdGlvbihmdW5jdGlvbih0NTMpIHsKLSAgICAgIHZhciBzbGljZSA9IG5ld1NsaWNlTmFtZWQoJ215X3NsaWNlJywgMCwgMS4wKTsKLSAgICAgIHNsaWNlLmFyZ3MgPSB7Ci0gICAgICAgICdjb21wbGV4JzogewotICAgICAgICAgICdiJzogJzIgYXMgYSBzdHJpbmcnLAotICAgICAgICAgICdjJzogWzMsIDQsIDVdCi0gICAgICAgIH0KLSAgICAgIH07Ci0gICAgICB0NTMuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOwotICAgIH0pOwotCi0gICAgdmFyIHN1YlZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7Ci0gICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1YlZpZXcpOwotCi0gICAgdmFyIGdvdiA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoc3ViVmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGdvdik7Ci0gIH0pOwotCi0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZVNsaWNlQ2F0ZWdvcnknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlKHt3aXRoQ2F0ZWdvcnk6IHRydWV9KTsKLQotICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZVN0YXJ0U3RhY2tGcmFtZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2UoCi0gICAgICAgIHt3aXRoU3RhcnRTdGFja0ZyYW1lOiAnYSd9KTsKLQotICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKLQotICAgIHZhciBlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRXaXRoVGV4dENvbnRlbnQoCi0gICAgICAgIGFuYWx5c2lzRWwsIC9TdGFydCBTdGFjayBUcmFjZS8pOwotICAgIGFzc2VydC5pc0RlZmluZWQoZSk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChlLm5leHRTaWJsaW5nLmNoaWxkcmVuWzBdLnN0YWNrRnJhbWUpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2luZ2xlRW5kU3RhY2tGcmFtZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2UoCi0gICAgICAgIHt3aXRoRW5kU3RhY2tGcmFtZTogJ2InfSk7Ci0KLSAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKLSAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYW5hbHlzaXNFbCk7Ci0KLSAgICB2YXIgZSA9IHRyLmIuZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KAotICAgICAgICBhbmFseXNpc0VsLCAvRW5kIFN0YWNrIFRyYWNlLyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChlKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGUubmV4dFNpYmxpbmcuY2hpbGRyZW5bMF0uc3RhY2tGcmFtZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGUubmV4dFNpYmxpbmcuY2hpbGRyZW5bMF0uc3RhY2tGcmFtZS50aXRsZSwgJ2IyJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhEaWZmZXJlbnRTdGFydEFuZEVuZFN0YWNrRnJhbWVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbiA9IGNyZWF0ZVNlbGVjdGlvbldpdGhTaW5nbGVTbGljZSgKLSAgICAgICAge3dpdGhTdGFydFN0YWNrRnJhbWU6ICdhJywKLSAgICAgICAgIHdpdGhFbmRTdGFja0ZyYW1lOiAnYid9KTsKLQotICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKLQotICAgIHZhciBlQSA9IHRyLmIuZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KAotICAgICAgICBhbmFseXNpc0VsLCAvU3RhcnQgU3RhY2sgVHJhY2UvKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGVBKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGVBLm5leHRTaWJsaW5nLmNoaWxkcmVuWzBdLnN0YWNrRnJhbWUpOwotICAgIGFzc2VydC5lcXVhbChlQS5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lLnRpdGxlLCAnYTInKTsKLQotICAgIHZhciBlQiA9IHRyLmIuZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KAotICAgICAgICBhbmFseXNpc0VsLCAvRW5kIFN0YWNrIFRyYWNlLyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChlQik7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChlQi5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lKTsKLSAgICBhc3NlcnQuZXF1YWwoZUIubmV4dFNpYmxpbmcuY2hpbGRyZW5bMF0uc3RhY2tGcmFtZS50aXRsZSwgJ2IyJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhTYW1lU3RhcnRBbmRFbmRTdGFja0ZyYW1lcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2UoCi0gICAgICAgIHt3aXRoU3RhcnRTdGFja0ZyYW1lOiAnYScsCi0gICAgICAgICB3aXRoRW5kU3RhY2tGcmFtZTogJ2EnfSk7Ci0KLSAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKLSAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYW5hbHlzaXNFbCk7Ci0KLSAgICB2YXIgZSA9IHRyLmIuZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KAotICAgICAgICBhbmFseXNpc0VsLCAvU3RhcnRcK0VuZCBTdGFjayBUcmFjZS8pOwotICAgIGFzc2VydC5pc0RlZmluZWQoZSk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChlLm5leHRTaWJsaW5nLmNoaWxkcmVuWzBdLnN0YWNrRnJhbWUpOwotICAgIGFzc2VydC5lcXVhbChlLm5leHRTaWJsaW5nLmNoaWxkcmVuWzBdLnN0YWNrRnJhbWUudGl0bGUsICdhMicpOwotICB9KTsKLQotICB0ZXN0KCdhbmFseXplU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbiA9IGNyZWF0ZVNlbGVjdGlvbldpdGhTaW5nbGVTbGljZSgpOwotICAgIHZhciBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotCi0gICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgc3ViVmlldywgJ3RyLWItdWktdGFibGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnRhYmxlUm93c1swXS52YWx1ZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzWzFdLnZhbHVlLnRpbWVzdGFtcCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnRhYmxlUm93c1syXS52YWx1ZS5kdXJhdGlvbiwgMC4wMDIpOwotICB9KTsKLQotICB0ZXN0KCdhbmFseXplU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlQ2F0ZWdvcnknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlKHt3aXRoQ2F0ZWdvcnk6IHRydWV9KTsKLQotICAgIHZhciBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotCi0gICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKLSAgICAgICAgc3ViVmlldywgJ3RyLWItdWktdGFibGUnKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzLmxlbmd0aCwgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnRhYmxlUm93c1swXS52YWx1ZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzWzFdLnZhbHVlLCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnRhYmxlUm93c1syXS52YWx1ZS50aW1lc3RhbXAsIDApOwotICAgIGFzc2VydC5lcXVhbCh0YWJsZS50YWJsZVJvd3NbM10udmFsdWUuZHVyYXRpb24sIDAuMDAyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZVNsaWNlQ29udGFpbmluZ0lEUmVmJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciBteU9iamVjdFNsaWNlID0gcDEub2JqZWN0cy5hZGRTbmFwc2hvdCgKLSAgICAgICAgJzB4MTAwMCcsICdjYXQnLCAnbXlfb2JqZWN0JywgMCk7Ci0KLSAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZUNhdGVnb3J5KCdjYXQnLCAnYicsIDAsIDIpKTsKLSAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXS5hcmdzLm15X29iamVjdCA9IG15T2JqZWN0U2xpY2U7Ci0KLSAgICB2YXIgdDF0cmFjayA9IHt9OwotICAgIHQxdHJhY2sudGhyZWFkID0gdDE7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMSk7Ci0KLSAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKLSAgICBzdWJWaWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3ViVmlldyk7Ci0KLSAgICB2YXIgYW5hbHlzaXNMaW5rID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZyhzdWJWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ci1jLWEtYW5hbHlzaXMtbGluaycpOwotICAgIGFzc2VydC5pc0RlZmluZWQoYW5hbHlzaXNMaW5rKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZVNsaWNlQ29udGFpbmluZ0luZm8nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2xpY2UgPSBuZXdTbGljZU5hbWVkKCdiJywgMCwgMSk7Ci0gICAgc2xpY2UuaW5mbyA9IG5ldyB0ci5tb2RlbC5FdmVudEluZm8oCi0gICAgICAgICdJbmZvIHRpdGxlJywgJ0Rlc2NyaXB0aW9uJyk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goc2xpY2UpOwotCi0gICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7Ci0gICAgYW5hbHlzaXNFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2Zsb3dfZXZlbnRfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2NiZjY3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLWZsb3ctZXZlbnQtc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldyI+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBnZXRFdmVudFJvd3NfOiBmdW5jdGlvbihldmVudCkgewotICAgICAgLy8gVE9ETyhuZHVjYSk6IEZpZ3VyZSBvdXQgaWYgdGhlcmUgaXMgYSBjbGVhbmVyIHdheSB0byBkbyB0aGlzLgotICAgICAgdmFyIHJvd3MgPSB0aGlzLl9fcHJvdG9fXy5fX3Byb3RvX18uZ2V0RXZlbnRSb3dzXyhldmVudCk7Ci0KLSAgICAgIC8vIFB1dCB0aGUgSUQgdXAgdG9wLgotICAgICAgcm93cy5zcGxpY2UoMCwgMCwgewotICAgICAgICBuYW1lOiAnSUQnLAotICAgICAgICB2YWx1ZTogZXZlbnQuaWQKLSAgICAgIH0pOwotCi0gICAgICBmdW5jdGlvbiBjcmVhdGVMaW5rVG8oc2xpY2UpIHsKLSAgICAgICAgdmFyIGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICAgIGxpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbihzbGljZSk7Ci0gICAgICAgIH0pOwotICAgICAgICBsaW5rRWwudGV4dENvbnRlbnQgPSBzbGljZS51c2VyRnJpZW5kbHlOYW1lOwotICAgICAgICByZXR1cm4gbGlua0VsOwotICAgICAgfQotCi0gICAgICByb3dzLnB1c2goewotICAgICAgICBuYW1lOiAnRnJvbScsCi0gICAgICAgIHZhbHVlOiBjcmVhdGVMaW5rVG8oZXZlbnQuc3RhcnRTbGljZSkKLSAgICAgIH0pOwotICAgICAgcm93cy5wdXNoKHsKLSAgICAgICAgbmFtZTogJ1RvJywKLSAgICAgICAgdmFsdWU6IGNyZWF0ZUxpbmtUbyhldmVudC5lbmRTbGljZSkKLSAgICAgIH0pOwotICAgICAgcmV0dXJuIHJvd3M7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2Zsb3dfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjMxNzlhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIE1vZGVsID0gdHIuTW9kZWw7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIHRlc3RfdXRpbHMgPSB0ci5jLnRlc3RfdXRpbHM7Ci0KLSAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhTaW5nbGVFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IHRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgIG1vZGVsLnAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgICAgbW9kZWwudDIgPSBtb2RlbC5wMS5nZXRPckNyZWF0ZVRocmVhZChtb2RlbC5wMSk7Ci0gICAgICBtb2RlbC5zQSA9IG1vZGVsLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKHRlc3RfdXRpbHMubmV3U2xpY2VFeCh7Ci0gICAgICAgIHRpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDIKLSAgICAgIH0pKTsKLSAgICAgIG1vZGVsLnNCID0gbW9kZWwudDIuc2xpY2VHcm91cC5wdXNoU2xpY2UodGVzdF91dGlscy5uZXdTbGljZUV4KHsKLSAgICAgICAgdGl0bGU6ICdiJywgc3RhcnQ6IDksIGVuZDogMTEKLSAgICAgIH0pKTsKLSAgICAgIG1vZGVsLmZlID0gdGVzdF91dGlscy5uZXdGbG93RXZlbnRFeCh7Ci0gICAgICAgIGNhdDogJ2NhdCcsCi0gICAgICAgIGlkOiAxMjM0LAotICAgICAgICB0aXRsZTogJ015RmxvdycsCi0gICAgICAgIHN0YXJ0OiAxLAotICAgICAgICBlbmQ6IDEwLAotICAgICAgICBzdGFydFNsaWNlOiBtb2RlbC5zQSwKLSAgICAgICAgZW5kU2xpY2U6IG1vZGVsLnNCCi0gICAgICB9KTsKLSAgICAgIG1vZGVsLmZsb3dFdmVudHMucHVzaChtb2RlbC5mZSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKG1vZGVsLmZlKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMSk7Ci0KLSAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldycpOwotICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChzdWJWaWV3KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9mcmFtZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9mcmFtZV9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDJmOGM3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZnJhbWVfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXcuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1mcmFtZS1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIH0KLSAgICAjYXN2IHsKLSAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8dHItYy1hLWFsZXJ0LXN1Yi12aWV3IGlkPSJhc3YiPgotICAgIDwvdHItYy1hLWFsZXJ0LXN1Yi12aWV3PgotICA8L3RlbXBsYXRlPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggIT0gMSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBmcmFtZSEnKTsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLiQuYXN2LnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbihzZWxlY3Rpb25bMF0uYXNzb2NpYXRlZEFsZXJ0cyk7Ci0gICAgfSwKLQotICAgIGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKSB7Ci0gICAgICBpZiAoIXRoaXMuY3VycmVudFNlbGVjdGlvbl8pCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gbmV3IHRyLmMuU2VsZWN0aW9uKHRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF0uYXNzb2NpYXRlZEV2ZW50cyk7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTEzYTk0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXcuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDx0ci1jLWEtbWVtb3J5LWR1bXAtdmlldyBpZD0ibWVtb3J5X2R1bXBfdmlldyI+Ci0gICAgPC90ci1jLWEtbWVtb3J5LWR1bXAtdmlldz4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIGEgc2luZ2xlIGdsb2JhbCBtZW1vcnkgZHVtcCcpOwotICAgICAgaWYgKCEoc2VsZWN0aW9uWzBdIGluc3RhbmNlb2YgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBnbG9iYWwgbWVtb3J5IGR1bXBzJyk7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotICAgICAgdGhpcy4kLm1lbW9yeV9kdW1wX3ZpZXcucHJvY2Vzc01lbW9yeUR1bXBzID0gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKAotICAgICAgICAgIHNlbGVjdGlvblswXS5wcm9jZXNzTWVtb3J5RHVtcHMpOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFmMGYxZi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdF91dGlscy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wID0gdHIuYy5hbmFseXNpcy5jcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcDsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBnbG9iYWxNZW1vcnlEdW1wID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXAoKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goZ2xvYmFsTWVtb3J5RHVtcCk7Ci0KLSAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgJ3RyLWMtYS1zaW5nbGUtZ2xvYmFsLW1lbW9yeS1kdW1wLXN1Yi12aWV3Jyk7Ci0gICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNThiOWMyOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zaW5nbGUtaW5zdGFudC1ldmVudC1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxkaXYgaWQ9J2NvbnRlbnQnPjwvZGl2PgotICA8L3RlbXBsYXRlPgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdmFyIHJlYWxWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotICAgICAgcmVhbFZpZXcuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7Ci0KLSAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKHJlYWxWaWV3KTsKLQotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjlmNjdiYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0KLSAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhTaW5nbGVFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciBwNTIgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoNTIpOwotICAgIHZhciB0NTMgPSBwNTIuZ2V0T3JDcmVhdGVUaHJlYWQoNTMpOwotCi0gICAgdmFyIGllID0gbmV3IHRyLm1vZGVsLlByb2Nlc3NJbnN0YW50RXZlbnQoJ2NhdCcsICd0aXRsZScsIDcsIDEwLCB7fSk7Ci0gICAgaWUuZHVyYXRpb24gPSAyMDsKLSAgICBwNTIuaW5zdGFudEV2ZW50cy5wdXNoKGllKTsKLQotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaChpZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDEpOwotCi0gICAgdmFyIHN1YlZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAndHItYy1hLXNpbmdsZS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3Jyk7Ci0gICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3ViVmlldyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2ludGVyYWN0aW9uX3JlY29yZF9zdWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjhlNTQ2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLWludGVyYWN0aW9uLXJlY29yZC1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdmFyIHJlYWxWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOwotCi0gICAgICB0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTsKLSAgICAgIHJlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pOwotCi0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCkgewotICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIG5ldyB0ci5jLlNlbGVjdGlvbih0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdLmFzc29jaWF0ZWRFdmVudHMpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9pbnN0YW5jZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9vYmplY3RfaW5zdGFuY2Vfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ3YjliYS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9pbnN0YW5jZV9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWMtYS1zaW5nbGUtb2JqZWN0LWluc3RhbmNlLXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgfQotCi0gICAgI3NuYXBzaG90cyA+ICogewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgfQotCi0gICAgOmhvc3QgewotICAgICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgICBkaXNwbGF5OiBibG9jazsKLSAgICB9Ci0KLSAgICAqIHsKLSAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Ci0gICAgfQotCi0gICAgLnRpdGxlIHsKLSAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMTI4LCAxMjgsIDEyOCk7Ci0gICAgICBmb250LXNpemU6IDExMCU7Ci0gICAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICB9Ci0KLSAgICB0ZCwgdGggewotICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLSAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPGRpdiBpZD0nY29udGVudCc+PC9kaXY+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgewotICAgICAgaWYgKHRoaXMuJC5jb250ZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgaWYgKHRoaXMuJC5jb250ZW50LmNoaWxkcmVuWzBdIGluc3RhbmNlb2YKLSAgICAgICAgICB0ci5jLmFuYWx5c2lzLk9iamVjdEluc3RhbmNlVmlldykKLSAgICAgICAgcmV0dXJuIHRoaXMuJC5jb250ZW50LmNoaWxkcmVuWzBdLnJlcXVpcmVzVGFsbFZpZXc7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoICE9PSAxKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgc2luZ2xlIGl0ZW0gc2VsZWN0aW9ucycpOwotICAgICAgaWYgKCEoc2VsZWN0aW9uWzBdIGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgb2JqZWN0IGluc3RhbmNlcycpOwotCi0gICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLQotICAgICAgdmFyIGluc3RhbmNlID0gc2VsZWN0aW9uWzBdOwotICAgICAgdmFyIHR5cGVJbmZvID0gdHIuYy5hbmFseXNpcy5PYmplY3RJbnN0YW5jZVZpZXcuZ2V0VHlwZUluZm8oCi0gICAgICAgICAgaW5zdGFuY2UuY2F0ZWdvcnksIGluc3RhbmNlLnR5cGVOYW1lKTsKLSAgICAgIGlmICh0eXBlSW5mbykgewotICAgICAgICB2YXIgY3VzdG9tVmlldyA9IG5ldyB0eXBlSW5mby5jb25zdHJ1Y3RvcigpOwotICAgICAgICB0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChjdXN0b21WaWV3KTsKLSAgICAgICAgY3VzdG9tVmlldy5tb2RlbEV2ZW50ID0gaW5zdGFuY2U7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLmFwcGVuZEdlbmVyaWNBbmFseXNpc18oaW5zdGFuY2UpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhcHBlbmRHZW5lcmljQW5hbHlzaXNfOiBmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgdmFyIGh0bWwgPSAnJzsKLSAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9InRpdGxlIj4nICsKLSAgICAgICAgICBpbnN0YW5jZS50eXBlTmFtZSArICcgJyArCi0gICAgICAgICAgaW5zdGFuY2UuaWQgKyAnPC9kaXY+XG4nOwotICAgICAgaHRtbCArPSAnPHRhYmxlPic7Ci0gICAgICBodG1sICs9ICc8dHI+JzsKLSAgICAgIGh0bWwgKz0gJzx0cj48dGQ+Y3JlYXRpb25Uczo8L3RkPjx0ZD4nICsKLSAgICAgICAgICBpbnN0YW5jZS5jcmVhdGlvblRzICsgJzwvdGQ+PC90cj5cbic7Ci0gICAgICBpZiAoaW5zdGFuY2UuZGVsZXRpb25UcyAhPSBOdW1iZXIuTUFYX1ZBTFVFKSB7Ci0gICAgICAgIGh0bWwgKz0gJzx0cj48dGQ+ZGVsZXRpb25Uczo8L3RkPjx0ZD4nICsKLSAgICAgICAgICAgIGluc3RhbmNlLmRlbGV0aW9uVHMgKyAnPC90ZD48L3RyPlxuJzsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGh0bWwgKz0gJzx0cj48dGQ+ZGVsZXRpb25Uczo8L3RkPjx0ZD5ub3QgZGVsZXRlZDwvdGQ+PC90cj5cbic7Ci0gICAgICB9Ci0gICAgICBodG1sICs9ICc8dHI+PHRkPnNuYXBzaG90czo8L3RkPjx0ZCBpZD0ic25hcHNob3RzIj48L3RkPjwvdHI+XG4nOwotICAgICAgaHRtbCArPSAnPC90YWJsZT4nOwotICAgICAgdGhpcy4kLmNvbnRlbnQuaW5uZXJIVE1MID0gaHRtbDsKLSAgICAgIHZhciBzbmFwc2hvdHNFbCA9IHRoaXMuJC5jb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyNzbmFwc2hvdHMnKTsKLSAgICAgIGluc3RhbmNlLnNuYXBzaG90cy5mb3JFYWNoKGZ1bmN0aW9uKHNuYXBzaG90KSB7Ci0gICAgICAgIHZhciBzbmFwc2hvdExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpOwotICAgICAgICBzbmFwc2hvdExpbmsuc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKHNuYXBzaG90KTsKLSAgICAgICAgc25hcHNob3RzRWwuYXBwZW5kQ2hpbGQoc25hcHNob3RMaW5rKTsKLSAgICAgIH0pOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9pbnN0YW5jZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9pbnN0YW5jZV9zdWJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMDYwYzkuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9vYmplY3RfaW5zdGFuY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X2luc3RhbmNlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBPYmplY3RJbnN0YW5jZSA9IHRyLm1vZGVsLk9iamVjdEluc3RhbmNlOwotCi0gIHRlc3QoJ2FuYWx5emVTZWxlY3Rpb25XaXRoT2JqZWN0SW5zdGFuY2VVbmtub3duVHlwZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBpMTAgPSBuZXcgT2JqZWN0SW5zdGFuY2Uoe30sICcweDEwMDAnLCAnY2F0JywgJ3NvbWVVbmhhbmRsZWROYW1lJywgMTApOwotICAgIHZhciBzMTAgPSBpMTAuYWRkU25hcHNob3QoMTAsIHtmb286IDF9KTsKLSAgICB2YXIgczIwID0gaTEwLmFkZFNuYXBzaG90KDIwLCB7Zm9vOiAyfSk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2goaTEwKTsKLQotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXNpbmdsZS1vYmplY3QtaW5zdGFuY2Utc3ViLXZpZXcnKTsKLSAgICB2aWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7Ci0gIH0pOwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9vYmplY3Rfc25hcHNob3Rfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X3NuYXBzaG90X3N1Yl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0OTdhY2MuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9vYmplY3Rfc25hcHNob3Rfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3RfaW5zdGFuY2Vfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLW9iamVjdC1zbmFwc2hvdC1zdWItdmlldyIKLSAgICBleHRlbmRzPSJ0ci1jLWEtc3ViLXZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgICNhcmdzIHsKLSAgICAgIHdoaXRlLXNwYWNlOiBwcmU7Ci0gICAgfQotCi0gICAgOmhvc3QgewotICAgICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLQotICAgICogewotICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKLSAgICB9Ci0KLSAgICAudGl0bGUgewotICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxMjgsIDEyOCwgMTI4KTsKLSAgICAgIGZvbnQtc2l6ZTogMTEwJTsKLSAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgIH0KLQotICAgIHRkLCB0aCB7Ci0gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8Y29udGVudD48L2NvbnRlbnQ+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgewotICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAodGhpcy5jaGlsZHJlblswXSBpbnN0YW5jZW9mIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3KQotICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlblswXS5yZXF1aXJlc1RhbGxWaWV3OwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBpdGVtIHNlbGVjdGlvbnMnKTsKLSAgICAgIGlmICghKHNlbGVjdGlvblswXSBpbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIG9iamVjdCBpbnN0YW5jZXMnKTsKLQotICAgICAgdGhpcy50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLQotICAgICAgdmFyIHNuYXBzaG90ID0gc2VsZWN0aW9uWzBdOwotCi0gICAgICB2YXIgdHlwZUluZm8gPSB0ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5nZXRUeXBlSW5mbygKLSAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5jYXRlZ29yeSwgc25hcHNob3Qub2JqZWN0SW5zdGFuY2UudHlwZU5hbWUpOwotICAgICAgaWYgKHR5cGVJbmZvKSB7Ci0gICAgICAgIHZhciBjdXN0b21WaWV3ID0gbmV3IHR5cGVJbmZvLmNvbnN0cnVjdG9yKCk7Ci0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoY3VzdG9tVmlldyk7Ci0gICAgICAgIGN1c3RvbVZpZXcubW9kZWxFdmVudCA9IHNuYXBzaG90OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5hcHBlbmRHZW5lcmljQW5hbHlzaXNfKHNuYXBzaG90KTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgYXBwZW5kR2VuZXJpY0FuYWx5c2lzXzogZnVuY3Rpb24oc25hcHNob3QpIHsKLSAgICAgIHZhciBpbnN0YW5jZSA9IHNuYXBzaG90Lm9iamVjdEluc3RhbmNlOwotCi0gICAgICB2YXIgaHRtbCA9ICcnOwotICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0idGl0bGUiPlNuYXBzaG90IG9mIDxhIGlkPSJpbnN0YW5jZS1saW5rIj48L2E+IEAgJyArCi0gICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyhzbmFwc2hvdC50cykgKyAnPC9kaXY+XG4nOwotICAgICAgaHRtbCArPSAnPHRhYmxlPic7Ci0gICAgICBodG1sICs9ICc8dHI+JzsKLSAgICAgIGh0bWwgKz0gJzx0cj48dGQ+YXJnczo8L3RkPjx0ZCBpZD0iYXJncyI+PC90ZD48L3RyPlxuJzsKLSAgICAgIGh0bWwgKz0gJzwvdGFibGU+JzsKLSAgICAgIHRoaXMuaW5uZXJIVE1MID0gaHRtbDsKLQotICAgICAgdmFyIGluc3RhbmNlTGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgIGluc3RhbmNlTGlua0VsLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbihpbnN0YW5jZSk7Ci0KLSAgICAgIC8vIFRPRE8obmR1Y2EpOiB0ci51aS5kZWNvcmVhdGUgZG9lc24ndCB3b3JrIHdoZW4gc3ViY2xhc3NlZC4gU28sCi0gICAgICAvLyByZXBsYWNlIHRoZSB0ZW1wbGF0ZSBlbGVtZW50LgotICAgICAgdmFyIHRtcCA9IHRoaXMucXVlcnlTZWxlY3RvcignI2luc3RhbmNlLWxpbmsnKTsKLSAgICAgIHRtcC5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZChpbnN0YW5jZUxpbmtFbCwgdG1wKTsKLQotICAgICAgdmFyIGFyZ3NFbCA9IHRoaXMucXVlcnlTZWxlY3RvcignI2FyZ3MnKTsKLSAgICAgIGFyZ3NFbC50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdmFyIG9iamVjdFZpZXcgPQotICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgICBvYmplY3RWaWV3Lm9iamVjdCA9IHNuYXBzaG90LmFyZ3M7Ci0gICAgICBhcmdzRWwuYXBwZW5kQ2hpbGQob2JqZWN0Vmlldyk7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X3NuYXBzaG90X3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X3NuYXBzaG90X3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWZlYjk4NS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9zbmFwc2hvdF9zdWJfdmlld190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL3NpbmdsZV9vYmplY3Rfc25hcHNob3Rfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnaW5zdGFudGlhdGVfc25hcHNob3RWaWV3JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkxMCA9IG5ldyB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSgKLSAgICAgICAge30sICcweDEwMDAnLCAnY2F0JywgJ25hbWUnLCAxMCk7Ci0gICAgdmFyIHMxMCA9IGkxMC5hZGRTbmFwc2hvdCgxMCwge2ZvbzogMX0pOwotICAgIGkxMC51cGRhdGVCb3VuZHMoKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaChzMTApOwotCi0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLW9iamVjdC1zbmFwc2hvdC1zdWItdmlldycpOwotICAgIHZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FiNTIyNi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDx0ci1jLWEtbWVtb3J5LWR1bXAtdmlldyBpZD0ibWVtb3J5X2R1bXBfdmlldyI+Ci0gICAgPC90ci1jLWEtbWVtb3J5LWR1bXAtdmlldz4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIGEgc2luZ2xlIHByb2Nlc3MgbWVtb3J5IGR1bXAnKTsKLSAgICAgIGlmICghKHNlbGVjdGlvblswXSBpbnN0YW5jZW9mIHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wKSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHByb2Nlc3MgbWVtb3J5IGR1bXBzJyk7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotICAgICAgdGhpcy4kLm1lbW9yeV9kdW1wX3ZpZXcucHJvY2Vzc01lbW9yeUR1bXBzID0gW3NlbGVjdGlvblswXV07Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkN2I4NzEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wID0gdHIuYy5hbmFseXNpcy5jcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXA7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXAgPSBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXAoKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2gocHJvY2Vzc01lbW9yeUR1bXApOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCi0gICAgICAgICd0ci1jLWEtc2luZ2xlLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXcnKTsKLSAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3NhbXBsZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA1YjRmYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3NhbXBsZV9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS90YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS1zYW1wbGUtc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1iLXVpLXRhYmxlIGlkPSJjb250ZW50Ij48L3RyLWItdWktdGFibGU+Ci0gIDwvdGVtcGxhdGU+Ci0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuJC5jb250ZW50LnRhYmxlQ29sdW1ucyA9IFsKLSAgICAgICAgewotICAgICAgICAgIHRpdGxlOiAnRmlyc3RDb2x1bW4nLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy50aXRsZTsgfSwKLSAgICAgICAgICB3aWR0aDogJzI1MHB4JwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdTZWNvbmRDb2x1bW4nLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy52YWx1ZTsgfSwKLSAgICAgICAgICB3aWR0aDogJzEwMCUnCi0gICAgICAgIH0KLSAgICAgIF07Ci0gICAgICB0aGlzLiQuY29udGVudC5zaG93SGVhZGVyID0gZmFsc2U7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy4kLmNvbnRlbnQudGFibGVSb3dzID0gW107Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIHNhbXBsZSA9IHRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF07Ci0gICAgICB2YXIgdGFibGUgPSB0aGlzLiQuY29udGVudDsKLQotICAgICAgdmFyIHJvd3MgPSBbXTsKLQotICAgICAgcm93cy5wdXNoKHsKLSAgICAgICAgdGl0bGU6ICdUaXRsZScsCi0gICAgICAgIHZhbHVlOiBzYW1wbGUudGl0bGUKLSAgICAgIH0pOwotCi0gICAgICByb3dzLnB1c2goewotICAgICAgICAgIHRpdGxlOiAnU2FtcGxlIHRpbWUnLAotICAgICAgICAgIHZhbHVlOiB0ci5iLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oc2FtcGxlLnN0YXJ0KQotICAgICAgfSk7Ci0KLSAgICAgIHZhciBzZkVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXN0YWNrLWZyYW1lJyk7Ci0gICAgICBzZkVsLnN0YWNrRnJhbWUgPSBzYW1wbGUubGVhZlN0YWNrRnJhbWU7Ci0gICAgICByb3dzLnB1c2goewotICAgICAgICB0aXRsZTogJ1N0YWNrIHRyYWNlJywKLSAgICAgICAgdmFsdWU6IHNmRWwKLSAgICAgIH0pOwotICAgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKLSAgICAgIHRhYmxlLnJlYnVpbGQoKTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWVkMzM1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZGVlcF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfc2FtcGxlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBNb2RlbCA9IHRyLk1vZGVsOwotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBTdHViQW5hbHlzaXNSZXN1bHRzID0gdHIuYy5hbmFseXNpcy5TdHViQW5hbHlzaXNSZXN1bHRzOwotICB2YXIgbmV3U2FtcGxlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2FtcGxlTmFtZWQ7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZVNhbXBsZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOwotICAgIHZhciB0NTM7Ci0gICAgbW9kZWwuaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgewotICAgICAgdDUzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKS5nZXRPckNyZWF0ZVRocmVhZCg1Myk7Ci0gICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdteS1jYXRlZ29yeScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydhJywgJ2InLCAnYyddLCAwLjE4NCkpOwotICAgIH0pOwotCi0gICAgdmFyIHQ1M3RyYWNrID0ge307Ci0gICAgdDUzdHJhY2sudGhyZWFkID0gdDUzOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLQotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAwKTsKLSAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2FtcGxlc1swXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDEpOwotCi0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLXNhbXBsZS1zdWItdmlldycpOwotICAgIHZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLQotICAgIHZhciB0YWJsZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCi0gICAgICAgIHZpZXcsICd0ci1iLXVpLXRhYmxlJyk7Ci0KLSAgICB2YXIgcm93cyA9IHRhYmxlLnRhYmxlUm93czsKLSAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDMpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0udmFsdWUsICdYJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0udmFsdWUudGltZXN0YW1wLCAwLjE4NCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJvd3NbMl0udmFsdWUuc3RhY2tGcmFtZSwgdDUzLnNhbXBsZXNbMF0ubGVhZlN0YWNrRnJhbWUpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UyOWRiYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHMuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItYy1hLXNpbmdsZS10aHJlYWQtc2xpY2Utc3ViLXZpZXciCi0gICAgZXh0ZW5kcz0idHItYy1hLXN1Yi12aWV3Ij4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgICB9Ci0gICAgI2V2ZW50cyB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICB9Ci0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1jLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXc+Ci0gICAgPGRpdiBpZD0iZXZlbnRzIj4KLSAgICAgIDx0ci1jLWEtcmVsYXRlZC1ldmVudHMgaWQ9InJlbGF0ZWRFdmVudHMiPgotICAgICAgPC90ci1jLWEtcmVsYXRlZC1ldmVudHM+Ci0gICAgPC9kaXY+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgICAgdGhpcy4kLnJlbGF0ZWRFdmVudHMuYWRkUmVsYXRlZEV2ZW50cyhzZWxlY3Rpb24pOwotICAgICAgaWYgKHRoaXMuJC5yZWxhdGVkRXZlbnRzLmhhc1JlbGF0ZWRFdmVudHMoKSkKLSAgICAgICAgdGhpcy4kLnJlbGF0ZWRFdmVudHMuc3R5bGUuZGlzcGxheSA9ICcnOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLiQucmVsYXRlZEV2ZW50cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYTUxNDkuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkX3NsaWNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKLSAgdmFyIG5ld0Zsb3dFdmVudEV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld0Zsb3dFdmVudEV4OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHQ1MyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2Vzcyg1MikuZ2V0T3JDcmVhdGVUaHJlYWQoNTMpOwotICAgIHQ1My5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDAuNX0pKTsKLSAgICB0NTMuc2xpY2VHcm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2xpY2VHcm91cC5zbGljZXNbMF0pOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zaW5nbGUtdGhyZWFkLXNsaWNlLXN1Yi12aWV3Jyk7Ci0gICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVXaXRoRmxvd0V2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obSkgewotICAgICAgbS5wMSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotCi0gICAgICBtLnQyID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICAgIG0udDMgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDMpOwotICAgICAgbS50NCA9IG0ucDEuZ2V0T3JDcmVhdGVUaHJlYWQoNCk7Ci0KLSAgICAgIG0uc0EgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDUsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0gICAgICBtLnNCID0gbS50My5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMTAsIGVuZDogMTUsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0gICAgICBtLnNDID0gbS50NC5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2MnLCBzdGFydDogMjAsIGVuZDogMjAsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7Ci0KLSAgICAgIG0udDIuY3JlYXRlU3ViU2xpY2VzKCk7Ci0gICAgICBtLnQzLmNyZWF0ZVN1YlNsaWNlcygpOwotICAgICAgbS50NC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgICAgbS5mMSA9IG5ld0Zsb3dFdmVudEV4KHsKLSAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMCwgZW5kOiAxMCwKLSAgICAgICAgc3RhcnRTbGljZTogbS5zQSwKLSAgICAgICAgZW5kU2xpY2U6IG0uc0IKLSAgICAgIH0pOwotICAgICAgbS5mMiA9IG5ld0Zsb3dFdmVudEV4KHsKLSAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMTUsIGVuZDogMjEsCi0gICAgICAgIHN0YXJ0U2xpY2U6IG0uc0IsCi0gICAgICAgIGVuZFNsaWNlOiBtLnNDCi0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaChtLnNBKTsKLQotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLXRocmVhZC1zbGljZS1zdWItdmlldycpOwotICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQ1NzRmNy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF90aW1lX3NsaWNlX3N1Yl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9jb2xvcl9zY2hlbWUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc2luZ2xlLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3IgotICAgIGV4dGVuZHM9InRyLWMtYS1zdWItdmlldyI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgdGFibGUgewotICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKLSAgICAgIGJvcmRlci13aWR0aDogMDsKLSAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7Ci0gICAgICB3aWR0aDogMTAwJTsKLSAgICB9Ci0KLSAgICB0YWJsZSB0ciA+IHRkOmZpcnN0LWNoaWxkIHsKLSAgICAgIHBhZGRpbmctbGVmdDogMnB4OwotICAgIH0KLQotICAgIHRhYmxlIHRyID4gdGQgewotICAgICAgcGFkZGluZzogMnB4IDRweCAycHggNHB4OwotICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wOwotICAgICAgd2lkdGg6IDE1MHB4OwotICAgIH0KLQotICAgIHRhYmxlIHRkIHRkIHsKLSAgICAgIHBhZGRpbmc6IDAgMCAwIDA7Ci0gICAgICB3aWR0aDogYXV0bzsKLSAgICB9Ci0gICAgdHIgewotICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKLSAgICB9Ci0KLSAgICB0cjpudGgtY2hpbGQoMm4rMCkgewotICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8dGFibGU+Ci0gICAgICA8dHI+Ci0gICAgICAgIDx0ZD5SdW5uaW5nIHByb2Nlc3M6PC90ZD48dGQgaWQ9InByb2Nlc3MtbmFtZSI+PC90ZD4KLSAgICAgIDwvdHI+Ci0gICAgICA8dHI+Ci0gICAgICAgIDx0ZD5SdW5uaW5nIHRocmVhZDo8L3RkPjx0ZCBpZD0idGhyZWFkLW5hbWUiPjwvdGQ+Ci0gICAgICA8L3RyPgotICAgICAgPHRyPgotICAgICAgICA8dGQ+U3RhdGU6PC90ZD4KLSAgICAgICAgPHRkPjxiPjxzcGFuIGlkPSJzdGF0ZSI+PC9zcGFuPjwvYj48L3RkPgotICAgICAgPC90cj4KLSAgICAgIDx0cj4KLSAgICAgICAgPHRkPlN0YXJ0OjwvdGQ+PHRkIGlkPSJzdGFydCI+PC90ZD4KLSAgICAgIDwvdHI+Ci0gICAgICA8dHI+Ci0gICAgICAgIDx0ZD5EdXJhdGlvbjo8L3RkPjx0ZCBpZD0iZHVyYXRpb24iPjwvdGQ+Ci0gICAgICA8L3RyPgotCi0gICAgICA8dHI+Ci0gICAgICAgIDx0ZD5PbiBDUFU6PC90ZD48dGQgaWQ9Im9uLWNwdSI+PC90ZD4KLSAgICAgIDwvdHI+Ci0KLSAgICAgIDx0cj4KLSAgICAgICAgPHRkPlJ1bm5pbmcgaW5zdGVhZDo8L3RkPjx0ZCBpZD0icnVubmluZy1pbnN0ZWFkIj48L3RkPgotICAgICAgPC90cj4KLQotICAgICAgPHRyPgotICAgICAgICA8dGQ+QXJnczo8L3RkPjx0ZCBpZD0iYXJncyI+PC90ZD4KLSAgICAgIDwvdHI+Ci0gICAgPC90YWJsZT4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBzbGljZXMnKTsKLSAgICAgIGlmICghKHNlbGVjdGlvblswXSBpbnN0YW5jZW9mIHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyB0aHJlYWQgdGltZSBzbGljZXMnKTsKLQotICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLQotICAgICAgdmFyIHRpbWVTbGljZSA9IHNlbGVjdGlvblswXTsKLSAgICAgIHZhciB0aHJlYWQgPSB0aW1lU2xpY2UudGhyZWFkOwotCi0gICAgICB2YXIgc2hhZG93Um9vdCA9IHRoaXMuc2hhZG93Um9vdDsKLSAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N0YXRlJykudGV4dENvbnRlbnQgPSB0aW1lU2xpY2UudGl0bGU7Ci0gICAgICB2YXIgc3RhdGVDb2xvciA9IHRyLmIudWkuZ2V0Q29sb3JQYWxldHRlKClbdGltZVNsaWNlLmNvbG9ySWRdOwotICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjc3RhdGUnKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBzdGF0ZUNvbG9yOwotCi0gICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNwcm9jZXNzLW5hbWUnKS50ZXh0Q29udGVudCA9Ci0gICAgICAgICAgdGhyZWFkLnBhcmVudC51c2VyRnJpZW5kbHlOYW1lOwotICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjdGhyZWFkLW5hbWUnKS50ZXh0Q29udGVudCA9Ci0gICAgICAgICAgdGhyZWFkLnVzZXJGcmllbmRseU5hbWU7Ci0KLSAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N0YXJ0JykudGV4dENvbnRlbnQgPQotICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcodGltZVNsaWNlLnN0YXJ0KTsKLSAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2R1cmF0aW9uJykudGV4dENvbnRlbnQgPQotICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcodGltZVNsaWNlLmR1cmF0aW9uKTsKLSAgICAgIHZhciBvbkNwdUVsID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjb24tY3B1Jyk7Ci0gICAgICBvbkNwdUVsLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB2YXIgcnVubmluZ0luc3RlYWRFbCA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3J1bm5pbmctaW5zdGVhZCcpOwotICAgICAgaWYgKHRpbWVTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZykgewotICAgICAgICBydW5uaW5nSW5zdGVhZEVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocnVubmluZ0luc3RlYWRFbCk7Ci0KLSAgICAgICAgdmFyIGNwdUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtbGluaycpOwotICAgICAgICBjcHVMaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigKLSAgICAgICAgICAgIHRpbWVTbGljZS5nZXRBc3NvY2lhdGVkQ3B1U2xpY2UoKSk7Ci0gICAgICAgIGNwdUxpbmsudGV4dENvbnRlbnQgPQotICAgICAgICAgICAgdGltZVNsaWNlLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nLnVzZXJGcmllbmRseU5hbWU7Ci0gICAgICAgIG9uQ3B1RWwuYXBwZW5kQ2hpbGQoY3B1TGluayk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBvbkNwdUVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQob25DcHVFbCk7Ci0KLSAgICAgICAgdmFyIGNwdVNsaWNlVGhhdFRvb2tDcHUgPSB0aW1lU2xpY2UuZ2V0Q3B1U2xpY2VUaGF0VG9va0NwdSgpOwotICAgICAgICBpZiAoY3B1U2xpY2VUaGF0VG9va0NwdSkgewotICAgICAgICAgIHZhciBjcHVMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgICAgICBjcHVMaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbihjcHVTbGljZVRoYXRUb29rQ3B1KTsKLSAgICAgICAgICBpZiAoY3B1U2xpY2VUaGF0VG9va0NwdS50aHJlYWQpCi0gICAgICAgICAgICBjcHVMaW5rLnRleHRDb250ZW50ID0gY3B1U2xpY2VUaGF0VG9va0NwdS50aHJlYWQudXNlckZyaWVuZGx5TmFtZTsKLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICBjcHVMaW5rLnRleHRDb250ZW50ID0gY3B1U2xpY2VUaGF0VG9va0NwdS50aXRsZTsKLSAgICAgICAgICBydW5uaW5nSW5zdGVhZEVsLmFwcGVuZENoaWxkKGNwdUxpbmspOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHJ1bm5pbmdJbnN0ZWFkRWwucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChydW5uaW5nSW5zdGVhZEVsKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICB2YXIgYXJnc0VsID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjYXJncycpOwotICAgICAgaWYgKHRyLmIuZGljdGlvbmFyeUtleXModGltZVNsaWNlLmFyZ3MpLmxlbmd0aCA+IDApIHsKLSAgICAgICAgdmFyIGFyZ3NWaWV3ID0KLSAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7Ci0gICAgICAgIGFyZ3NWaWV3Lm9iamVjdCA9IHRpbWVTbGljZS5hcmdzOwotCi0gICAgICAgIGFyZ3NFbC5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKLSAgICAgICAgYXJnc0VsLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICAgIGFyZ3NFbC5hcHBlbmRDaGlsZChhcmdzVmlldyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBhcmdzRWwucGFyZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgfQotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF90aW1lX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2QwZmUwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICBmdW5jdGlvbiBjcmVhdGVCYXNpY01vZGVsKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjMgMTI2MjIuNTA2ODkwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1BbmRyb2lkLmxhdW5jaGVyIHByZXZfcGlkPTU4NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UisgPT0+IG5leHRfY29tbT1CaW5kZXJfMSBuZXh0X3BpZD0yMTcgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIGQuLjMgMTI2MjIuNTA2OTE4OiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1CaW5kZXJfMSBwcmV2X3BpZD0yMTcgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPUQgPT0+IG5leHRfY29tbT1BbmRyb2lkLmxhdW5jaGVyIG5leHRfcGlkPTU4NCBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjQgMTI2MjIuNTA2OTM2OiBzY2hlZF93YWtldXA6IGNvbW09QmluZGVyXzEgcGlkPTIxNyBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDEnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJ0FuZHJvaWQubGF1bmNoZXItNTg0ICAgWzAwMV0gZC4uMyAxMjYyMi41MDY5NTA6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUFuZHJvaWQubGF1bmNoZXIgcHJldl9waWQ9NTg0IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SKyA9PT4gbmV4dF9jb21tPUJpbmRlcl8xIG5leHRfcGlkPTIxNyBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gLi4uMSAxMjYyMi41MDcwNTc6IHRyYWNpbmdfbWFya193cml0ZTogQnwxMjh8cXVldWVCdWZmZXInLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSAuLi4xIDEyNjIyLjUwNzE3NTogdHJhY2luZ19tYXJrX3dyaXRlOiBFJywKLSAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gZC4uMyAxMjYyMi41MDcyNTM6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUJpbmRlcl8xIHByZXZfcGlkPTIxNyBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPUFuZHJvaWQubGF1bmNoZXIgbmV4dF9waWQ9NTg0IG5leHRfcHJpbz0xMjAnIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgXTsKLQotICAgIHJldHVybiBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICB9Ci0KLSAgdGVzdCgncnVubmluZ1NsaWNlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBjcmVhdGVCYXNpY01vZGVsKCk7Ci0KLSAgICB2YXIgY3B1ID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICB2YXIgYmluZGVyU2xpY2UgPSBjcHUuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChiaW5kZXJTbGljZS50aXRsZSwgJ0JpbmRlcl8xJyk7Ci0gICAgdmFyIGxhdW5jaGVyU2xpY2UgPSBjcHUuc2xpY2VzWzFdOwotICAgIGFzc2VydC5lcXVhbChsYXVuY2hlclNsaWNlLnRpdGxlLCAnQW5kcm9pZC5sYXVuY2hlcicpOwotCi0KLSAgICB2YXIgdGhyZWFkID0gbS5maW5kQWxsVGhyZWFkc05hbWVkKCdCaW5kZXJfMScpWzBdOwotCi0gICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAndHItYy1hLXNpbmdsZS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldycpOwotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaCh0aHJlYWQudGltZVNsaWNlc1swXSk7Ci0gICAgdmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotCi0gICAgLy8gQ2xpY2tpbmcgdGhlIGFuYWx5c2lzIGxpbmsgc2hvdWxkIGZvY3VzIHRoZSBCaW5kZXIxJ3MgdGltZXNsaWNlLgotICAgIHZhciBkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4gPSBmYWxzZTsKLSAgICB2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBmdW5jdGlvbihlKSB7Ci0gICAgICBhc3NlcnQuZXF1YWwoZS5zZWxlY3Rpb24ubGVuZ3RoLCAxKTsKLSAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblswXSwgYmluZGVyU2xpY2UpOwotICAgICAgZGlkU2VsZWN0aW9uQ2hhbmdlSGFwcGVuID0gdHJ1ZTsKLSAgICB9KTsKLSAgICB2aWV3LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigndHItYy1hLWFuYWx5c2lzLWxpbmsnKS5jbGljaygpOwotICAgIGFzc2VydC5pc1RydWUoZGlkU2VsZWN0aW9uQ2hhbmdlSGFwcGVuKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2xlZXBpbmdTbGljZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gY3JlYXRlQmFzaWNNb2RlbCgpOwotCi0gICAgdmFyIGNwdSA9IG0ua2VybmVsLmNwdXNbMV07Ci0gICAgdmFyIGJpbmRlclNsaWNlID0gY3B1LnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoYmluZGVyU2xpY2UudGl0bGUsICdCaW5kZXJfMScpOwotICAgIHZhciBsYXVuY2hlclNsaWNlID0gY3B1LnNsaWNlc1sxXTsKLSAgICBhc3NlcnQuZXF1YWwobGF1bmNoZXJTbGljZS50aXRsZSwgJ0FuZHJvaWQubGF1bmNoZXInKTsKLQotCi0gICAgdmFyIHRocmVhZCA9IG0uZmluZEFsbFRocmVhZHNOYW1lZCgnQmluZGVyXzEnKVswXTsKLQotICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKLSAgICAgICAgJ3RyLWMtYS1zaW5nbGUtdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXcnKTsKLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uLnB1c2godGhyZWFkLnRpbWVTbGljZXNbMV0pOwotICAgIHZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLQotICAgIC8vIENsaWNraW5nIHRoZSBhbmFseXNpcyBsaW5rIHNob3VsZCBmb2N1cyB0aGUgQW5kcm9pZC5sYXVuY2hlciBzbGljZQotICAgIHZhciBkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4gPSBmYWxzZTsKLSAgICB2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBmdW5jdGlvbihlKSB7Ci0gICAgICBhc3NlcnQuZXF1YWwoZS5zZWxlY3Rpb24ubGVuZ3RoLCAxKTsKLSAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblswXSwgbGF1bmNoZXJTbGljZSk7Ci0gICAgICBkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4gPSB0cnVlOwotICAgIH0pOwotICAgIHZpZXcuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCd0ci1jLWEtYW5hbHlzaXMtbGluaycpLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4pOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc3RhY2tfZnJhbWUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjQzYmIxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1jLWEtc3RhY2stZnJhbWUiPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwotICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8dHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcgaWQ9Im92Ij4KLSAgICA8L3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3PgotICA8L3RlbXBsYXRlPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zdGFja0ZyYW1lXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHN0YWNrRnJhbWUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zdGFja0ZyYW1lXzsKLSAgICB9LAotCi0gICAgc2V0IHN0YWNrRnJhbWUoc3RhY2tGcmFtZSkgewotICAgICAgdGhpcy5zdGFja0ZyYW1lXyA9IHN0YWNrRnJhbWU7Ci0gICAgICB0aGlzLiQub3Yub2JqZWN0ID0gc3RhY2tGcmFtZS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCk7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zdGFja19mcmFtZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc3RhY2tfZnJhbWVfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWEwYjQ1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zdGFja19mcmFtZV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIGZBID0gdHIuYy50ZXN0X3V0aWxzLm5ld1N0YWNrVHJhY2UobW9kZWwsICdjYXQnLCBbJ2ExJywgJ2EyJywgJ2EzJ10pOwotCi0gICAgdmFyIHN0YWNrRnJhbWVWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLXN0YWNrLWZyYW1lJyk7Ci0gICAgc3RhY2tGcmFtZVZpZXcuc3RhY2tGcmFtZSA9IGZBOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChzdGFja0ZyYW1lVmlldyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zdHViX2FuYWx5c2lzX3Jlc3VsdHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zdHViX2FuYWx5c2lzX3Jlc3VsdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWYwZDlmZi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvc3R1Yl9hbmFseXNpc19yZXN1bHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gU3R1YkFuYWx5c2lzUmVzdWx0cygpIHsKLSAgICB0aGlzLmhlYWRlcnMgPSBbXTsKLSAgICB0aGlzLmluZm8gPSBbXTsKLSAgICB0aGlzLnRhYmxlcyA9IFtdOwotICB9Ci0gIFN0dWJBbmFseXNpc1Jlc3VsdHMucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RveXBlLAotCi0gICAgYXBwZW5kVGFibGU6IGZ1bmN0aW9uKHBhcmVudCwgY2xhc3NOYW1lKSB7Ci0gICAgICB2YXIgdGFibGUgPSB7Ci0gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLAotICAgICAgICByb3dzOiBbXQotICAgICAgfTsKLSAgICAgIHRhYmxlLnRIZWFkID0gdW5kZWZpbmVkOwotICAgICAgdGFibGUuY2xhc3NOYW1lID0gY2xhc3NOYW1lOwotICAgICAgdGFibGUuY2xhc3NMaXN0ID0gW107Ci0gICAgICB0YWJsZS5jbGFzc0xpc3QucHVzaChjbGFzc05hbWUpOwotICAgICAgdGFibGUuY2xhc3NMaXN0LmFkZCA9IGZ1bmN0aW9uKGNsYXNzTmFtZSkgewotICAgICAgICB0YWJsZS5jbGFzc0xpc3QucHVzaChjbGFzc05hbWUpOwotICAgICAgfTsKLSAgICAgIHRoaXMudGFibGVzLnB1c2godGFibGUpOwotICAgICAgcmV0dXJuIHRhYmxlOwotICAgIH0sCi0KLSAgICBhcHBlbmRIZWFkZXI6IGZ1bmN0aW9uKGxhYmVsKSB7Ci0gICAgICB2YXIgaGVhZGVyID0gewotICAgICAgICBsYWJlbDogbGFiZWwKLSAgICAgIH07Ci0gICAgICB0aGlzLmhlYWRlcnMucHVzaChoZWFkZXIpOwotICAgICAgcmV0dXJuIGhlYWRlcjsKLSAgICB9LAotCi0gICAgYXBwZW5kSW5mbzogZnVuY3Rpb24obGFiZWwsIHZhbHVlKSB7Ci0gICAgICB0aGlzLmluZm8ucHVzaCh7bGFiZWw6IGxhYmVsLCB2YWx1ZTogdmFsdWV9KTsKLSAgICB9LAotCi0gICAgYXBwZW5kRGV0YWlsc1JvdzogZnVuY3Rpb24odGFibGUsIHN0YXJ0LCBkdXJhdGlvbiwgc2VsZlRpbWUsIGFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uR2VuZXJhdG9yLCBjcHVEdXJhdGlvbikgewotICAgICAgdGFibGUucm93cy5wdXNoKHsKLSAgICAgICAgc3RhcnQ6IHN0YXJ0LAotICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sCi0gICAgICAgIHNlbGZUaW1lOiBzZWxmVGltZSwKLSAgICAgICAgYXJnczogYXJncywKLSAgICAgICAgc2VsZWN0aW9uR2VuZXJhdG9yOiBzZWxlY3Rpb25HZW5lcmF0b3IsCi0gICAgICAgIGNwdUR1cmF0aW9uOiBjcHVEdXJhdGlvbn0pOwotICAgIH0sCi0KLSAgICBhcHBlbmRIZWFkUm93OiBmdW5jdGlvbih0YWJsZSkgewotICAgICAgaWYgKHRhYmxlLmhlYWRlclJvdykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IG9uZSBoZWFkZXIgcm93IGFsbG93ZWQuJyk7Ci0gICAgICB0YWJsZS5oZWFkZXJSb3cgPSBbXTsKLSAgICAgIHJldHVybiB0YWJsZS5oZWFkZXJSb3c7Ci0gICAgfSwKLQotICAgIGFwcGVuZFRhYmxlQ2VsbDogZnVuY3Rpb24odGFibGUsIHJvdywgdGV4dCkgewotICAgICAgcm93LnB1c2godGV4dCk7Ci0gICAgfSwKLQotICAgIGFwcGVuZFNwYWNpbmdSb3c6IGZ1bmN0aW9uKHRhYmxlKSB7Ci0gICAgICB2YXIgcm93ID0ge3NwYWNpbmc6IHRydWV9OwotICAgICAgdGFibGUucm93cy5wdXNoKHJvdyk7Ci0gICAgICByZXR1cm4gcm93OwotICAgIH0sCi0KLSAgICBhcHBlbmRJbmZvUm93OiBmdW5jdGlvbih0YWJsZSwgbGFiZWwsIG9wdF90ZXh0KSB7Ci0gICAgICB2YXIgcm93ID0ge2xhYmVsOiBsYWJlbCwgdGV4dDogb3B0X3RleHR9OwotICAgICAgdGFibGUucm93cy5wdXNoKHJvdyk7Ci0gICAgICByZXR1cm4gcm93OwotICAgIH0sCi0KLSAgICBhcHBlbmRJbmZvUm93VGltZTogZnVuY3Rpb24odGFibGUsIGxhYmVsLCB0aW1lKSB7Ci0gICAgICB2YXIgcm93ID0ge2xhYmVsOiBsYWJlbCwgdGltZTogdGltZX07Ci0gICAgICB0YWJsZS5yb3dzLnB1c2gocm93KTsKLSAgICAgIHJldHVybiByb3c7Ci0gICAgfSwKLQotICAgIGFwcGVuZERhdGFSb3c6IGZ1bmN0aW9uKHRhYmxlLCBsYWJlbCwgZHVyYXRpb24sIGNwdUR1cmF0aW9uLCBzZWxmVGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTZWxmVGltZSwgb2NjdXJyZW5jZXMsIHBlcmNlbnRhZ2UsIGRldGFpbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uR2VuZXJhdG9yKSB7Ci0gICAgICB2YXIgcm93ID0gewotICAgICAgICBsYWJlbDogbGFiZWwsCi0gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiwKLSAgICAgICAgY3B1RHVyYXRpb246IGNwdUR1cmF0aW9uLAotICAgICAgICBzZWxmVGltZTogc2VsZlRpbWUsCi0gICAgICAgIGNwdVNlbGZUaW1lOiBjcHVTZWxmVGltZSwKLSAgICAgICAgb2NjdXJyZW5jZXM6IG9jY3VycmVuY2VzLAotICAgICAgICBwZXJjZW50YWdlOiBwZXJjZW50YWdlLAotICAgICAgICBkZXRhaWxzOiBkZXRhaWxzLAotICAgICAgICBzZWxlY3Rpb25HZW5lcmF0b3I6IHNlbGVjdGlvbkdlbmVyYXRvcgotICAgICAgfTsKLSAgICAgIHRhYmxlLnJvd3MucHVzaChyb3cpOwotICAgICAgcmV0dXJuIHJvdzsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTdHViQW5hbHlzaXNSZXN1bHRzOiBTdHViQW5hbHlzaXNSZXN1bHRzCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3N0dWJfYW5hbHlzaXNfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy9zdHViX2FuYWx5c2lzX3RhYmxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwMzIwNGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2FuYWx5c2lzL3N0dWJfYW5hbHlzaXNfdGFibGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIFN0dWJBbmFseXNpc1RhYmxlKCkgewotICAgIHRoaXMub3duZXJEb2N1bWVudF8gPSBkb2N1bWVudDsKLSAgICB0aGlzLm5vZGVzXyA9IFtdOwotICB9Ci0KLSAgU3R1YkFuYWx5c2lzVGFibGUucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RveXBlLAotCi0gICAgZ2V0IG93bmVyRG9jdW1lbnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5vd25lckRvY3VtZW50XzsKLSAgICB9LAotCi0gICAgYXBwZW5kQ2hpbGQ6IGZ1bmN0aW9uKG5vZGUpIHsKLSAgICAgIGlmIChub2RlLnRhZ05hbWUgPT0gJ1RGT09UJyB8fCBub2RlLnRhZ05hbWUgPT0gJ1RIRUFEJyB8fAotICAgICAgICAgICAgICBub2RlLnRhZ05hbWUgPT0gJ1RCT0RZJykgewotICAgICAgICBub2RlLl9fcHJvdG9fXyA9IFN0dWJBbmFseXNpc1RhYmxlLnByb3RvdHlwZTsKLSAgICAgICAgbm9kZS5ub2Rlc18gPSBbXTsKLSAgICAgICAgbm9kZS5vd25lckRvY3VtZW50XyA9IGRvY3VtZW50OwotICAgICAgfQotICAgICAgdGhpcy5ub2Rlc18ucHVzaChub2RlKTsKLSAgICB9LAotCi0gICAgZ2V0IGxhc3ROb2RlKCkgewotICAgICAgcmV0dXJuIHRoaXMubm9kZXNfLnBvcCgpOwotICAgIH0sCi0KLSAgICBnZXQgbm9kZUNvdW50KCkgewotICAgICAgcmV0dXJuIHRoaXMubm9kZXNfLmxlbmd0aDsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTdHViQW5hbHlzaXNUYWJsZTogU3R1YkFuYWx5c2lzVGFibGUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvdGFiX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy90YWJfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDk1NjZhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy90YWJfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyYWNpbmctYW5hbHlzaXMtdGFiLXZpZXciCi0gICAgY29uc3RydWN0b3I9IlRyYWNpbmdBbmFseXNpc1RhYlZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgICAgOmhvc3QgewotICAgICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7Ci0gICAgICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgICB9Ci0KLSAgICAgIHRhYi1zdHJpcFt0YWJzLWhpZGRlbl0gewotICAgICAgICBkaXNwbGF5OiBub25lOwotICAgICAgfQotCi0gICAgICB0YWItc3RyaXAgewotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2LCAyMzYsIDIzNik7Ci0gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOGU4ZThlOwotICAgICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgICAgZmxleC1mbG93OiByb3c7Ci0gICAgICAgIG92ZXJmbG93LXg6IGF1dG87Ci0gICAgICAgIHBhZGRpbmc6IDAgMTBweCAwIDEwcHg7Ci0gICAgICAgIGZvbnQtc2l6ZTogMTJweDsKLSAgICAgIH0KLQotICAgICAgdGFiLWJ1dHRvbiB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgICAgcGFkZGluZzogNHB4IDE1cHggMXB4IDE1cHg7Ci0gICAgICAgIG1hcmdpbi10b3A6IDJweDsKLSAgICAgIH0KLQotICAgICAgdGFiLWJ1dHRvbltzZWxlY3RlZD10cnVlXSB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTYzLCAxNjMsIDE2Myk7Ci0gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7Ci0gICAgICAgIHBhZGRpbmc6IDNweCAxNHB4IDFweCAxNHB4OwotICAgICAgfQotCi0gICAgICB0YWJzLWNvbnRlbnQtY29udGFpbmVyIHsKLSAgICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgICAgZmxleDogMSAxIGF1dG87Ci0gICAgICAgIG92ZXJmbG93OiBhdXRvOwotICAgICAgICB3aWR0aDogMTAwJTsKLSAgICAgIH0KLQotICAgICAgOjpjb250ZW50ID4gKiB7Ci0gICAgICAgIGZsZXg6IDEgMSBhdXRvOwotICAgICAgfQotCi0gICAgICA6OmNvbnRlbnQgPiAqOm5vdChbc2VsZWN0ZWRdKSB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgICB9Ci0KLSAgICAgIGJ1dHRvbi1sYWJlbCB7Ci0gICAgICAgIGRpc3BsYXk6IGlubGluZTsKLSAgICAgIH0KLQotICAgICAgdGFiLXN0cmlwLWhlYWRpbmcgewotICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgZmxleDogMCAwIGF1dG87Ci0gICAgICAgIHBhZGRpbmc6IDRweCAxNXB4IDFweCAxNXB4OwotICAgICAgICBtYXJnaW4tdG9wOiAycHg7Ci0gICAgICAgIG1hcmdpbi1iZWZvcmU6IDIwcHg7Ci0gICAgICAgIG1hcmdpbi1hZnRlcjogMTBweDsKLSAgICAgIH0KLSAgICAgICN0c2ggewotICAgICAgICBkaXNwbGF5OiBpbmxpbmU7Ci0gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0KLSAgICA8dGFiLXN0cmlwPgotICAgICAgPHRhYi1zdHJpcC1oZWFkaW5nIGlkPSJ0c2hoIj4KLSAgICAgICAgPHNwYW4gaWQ9InRzaCI+PC9zcGFuPgotICAgICAgPC90YWItc3RyaXAtaGVhZGluZz4KLSAgICAgIDx0ZW1wbGF0ZSByZXBlYXQ9Int7dGFiIGluIHRhYnNffX0iPgotICAgICAgICA8dGFiLWJ1dHRvbgotICAgICAgICAgICAgYnV0dG9uLWlkPSJ7eyB0YWIuaWQgfX0iCi0gICAgICAgICAgICBvbi1jbGljaz0ie3sgdGFiQnV0dG9uU2VsZWN0SGFuZGxlcl8gfX0iCi0gICAgICAgICAgICBzZWxlY3RlZD0ie3sgc2VsZWN0ZWRUYWJfLmlkID09PSB0YWIuaWQgfX0iPgotICAgICAgICAgIDxidXR0b24tbGFiZWw+e3sgdGFiLmxhYmVsID8gdGFiLmxhYmVsIDogJ05vIExhYmVsJ319PC9idXR0b24tbGFiZWw+Ci0gICAgICAgIDwvdGFiLWJ1dHRvbj4KLSAgICAgIDwvdGVtcGxhdGU+Ci0gICAgPC90YWItc3RyaXA+Ci0KLSAgICA8dGFicy1jb250ZW50LWNvbnRhaW5lciBpZD0nY29udGVudC1jb250YWluZXInPgotICAgICAgICA8Y29udGVudD48L2NvbnRlbnQ+Ci0gICAgPC90YWJzLWNvbnRlbnQtY29udGFpbmVyPgotCi0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLiQudHNoaC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotCi0gICAgICAvLyBBIHRhYiBpcyByZXByZXNlbnRlZCBieSB0aGUgZm9sbG93aW5nIHR1cGxlOgotICAgICAgLy8gKGlkLCBsYWJlbCwgY29udGVudCwgb2JzZXJ2ZXIsIHNhdmVkU2Nyb2xsVG9wLCBzYXZlZFNjcm9sbExlZnQpLgotICAgICAgLy8gVGhlIHByb3BlcnRpZXMgYXJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyB3YXk6Ci0gICAgICAvLyBpZDogVW5pcXVlbHkgaWRlbnRpZmllcyBhIHRhYi4gSXQgaXMgdGhlIHNhbWUgbnVtYmVyIGFzIHRoZSBpbmRleAotICAgICAgLy8gICAgIGluIHRoZSB0YWJzIGFycmF5LiBVc2VkIHByaW1hcmlseSBieSB0aGUgb24tY2xpY2sgZXZlbnQgYXR0YWNoZWQKLSAgICAgIC8vICAgICB0byBidXR0b25zLgotICAgICAgLy8gbGFiZWw6IEEgc3RyaW5nLCByZXByZXNlbnRpbmcgdGhlIGxhYmVsIHByaW50ZWQgb24gdGhlIHRhYiBidXR0b24uCi0gICAgICAvLyBjb250ZW50OiBUaGUgbGlnaHQtZG9tIGNoaWxkIHJlcHJlc2VudGluZyB0aGUgY29udGVudHMgb2YgdGhlIHRhYi4KLSAgICAgIC8vICAgICBUaGUgY29udGVudCBpcyBhcHBlbmRlZCB0byB0aGlzIHRhYi12aWV3IGJ5IHRoZSB1c2VyLgotICAgICAgLy8gb2JzZXJ2ZXJzOiBUaGUgb2JzZXJ2ZXJzIGF0dGFjaGVkIHRvIHRoZSBjb250ZW50IG5vZGUgdG8gd2F0Y2ggZm9yCi0gICAgICAvLyAgICAgYXR0cmlidXRlIGNoYW5nZXMuIFRoZSBhdHRyaWJ1dGVzIG9mIGludGVyZXN0IGFyZTogJ3NlbGVjdGVkJywKLSAgICAgIC8vICAgICBhbmQgJ3RhYi1sYWJlbCcuCi0gICAgICAvLyBzYXZlZFNjcm9sbFRvcC9MZWZ0OiBVc2VkIHRvIHJldHVybiB0aGUgc2Nyb2xsIHBvc2l0aW9uIHVwb24gc3dpdGNoaW5nCi0gICAgICAvLyAgICAgdGFicy4gVGhlIHZhbHVlcyBhcmUgZ2VuZXJhbGx5IHNhdmVkIHdoZW4gYSB0YWIgc3dpdGNoIG9jY3Vycy4KLSAgICAgIC8vCi0gICAgICAvLyBUaGUgb3JkZXIgb2YgdGhlIHRhYnMgaXMgcmVsZXZhbnQgZm9yIHRoZSB0YWIgb3JkZXJpbmcuCi0gICAgICB0aGlzLnRhYnNfID0gW107Ci0gICAgICB0aGlzLnNlbGVjdGVkVGFiXyA9IHVuZGVmaW5lZDsKLQotICAgICAgLy8gUmVnaXN0ZXIgYW55IGFscmVhZHkgZXhpc3RpbmcgY2hpbGRyZW4uCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspCi0gICAgICAgIHRoaXMucHJvY2Vzc0FkZGVkQ2hpbGRfKHRoaXMuY2hpbGRyZW5baV0pOwotCi0gICAgICAvLyBJbiBjYXNlIHRoZSB1c2VyIGRlY2lkZXMgdG8gYWRkIG1vcmUgdGFicywgbWFrZSBzdXJlIHdlIHdhdGNoIGZvcgotICAgICAgLy8gYW55IGNoaWxkIG11dGF0aW9ucy4KLSAgICAgIHRoaXMuY2hpbGRyZW5PYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcigKLSAgICAgICAgICB0aGlzLmNoaWxkcmVuVXBkYXRlZF8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLmNoaWxkcmVuT2JzZXJ2ZXJfLm9ic2VydmUodGhpcywgeyBjaGlsZExpc3Q6ICd0cnVlJyB9KTsKLSAgICB9LAotCi0gICAgZ2V0IHRhYlN0cmlwSGVhZGluZ1RleHQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy4kLnRzaC50ZXh0Q29udGVudDsKLSAgICB9LAotCi0gICAgc2V0IHRhYlN0cmlwSGVhZGluZ1RleHQodGFiU3RyaXBIZWFkaW5nVGV4dCkgewotICAgICAgdGhpcy4kLnRzaC50ZXh0Q29udGVudCA9IHRhYlN0cmlwSGVhZGluZ1RleHQ7Ci0gICAgICBpZiAoISF0YWJTdHJpcEhlYWRpbmdUZXh0KQotICAgICAgICB0aGlzLiQudHNoaC5zdHlsZS5kaXNwbGF5ID0gJyc7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMuJC50c2hoLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3RlZFRhYigpIHsKLSAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBwcm9jZXNzIGFueSBwZW5kaW5nIGNoaWxkcmVuIGFkZGl0aW9ucyAvIHJlbW92YWxzLCBiZWZvcmUKLSAgICAgIC8vIHRyeWluZyB0byBzZWxlY3QgYSB0YWIuIE90aGVyd2lzZSwgd2UgbWlnaHQgbm90IGZpbmQgc29tZSBjaGlsZHJlbi4KLSAgICAgIHRoaXMuY2hpbGRyZW5VcGRhdGVkXygKLSAgICAgICAgdGhpcy5jaGlsZHJlbk9ic2VydmVyXy50YWtlUmVjb3JkcygpLCB0aGlzLmNoaWxkcmVuT2JzZXJ2ZXJfKTsKLQotICAgICAgLy8gRG8gbm90IGdpdmUgYWNjZXNzIHRvIHRoZSB1c2VyIHRvIHRoZSBpbm5lciBkYXRhIHN0cnVjdHVyZS4KLSAgICAgIC8vIEEgdXNlciBzaG91bGQgb25seSBiZSBhYmxlIHRvIG11dGF0ZSB0aGUgYWRkZWQgdGFiIGNvbnRlbnQuCi0gICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYl8pCi0gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFiXy5jb250ZW50OwotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGVkVGFiKGNvbnRlbnQpIHsKLSAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBwcm9jZXNzIGFueSBwZW5kaW5nIGNoaWxkcmVuIGFkZGl0aW9ucyAvIHJlbW92YWxzLCBiZWZvcmUKLSAgICAgIC8vIHRyeWluZyB0byBzZWxlY3QgYSB0YWIuIE90aGVyd2lzZSwgd2UgbWlnaHQgbm90IGZpbmQgc29tZSBjaGlsZHJlbi4KLSAgICAgIHRoaXMuY2hpbGRyZW5VcGRhdGVkXygKLSAgICAgICAgdGhpcy5jaGlsZHJlbk9ic2VydmVyXy50YWtlUmVjb3JkcygpLCB0aGlzLmNoaWxkcmVuT2JzZXJ2ZXJfKTsKLQotICAgICAgaWYgKGNvbnRlbnQgPT09IHVuZGVmaW5lZCB8fCBjb250ZW50ID09PSBudWxsKSB7Ci0gICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh1bmRlZmluZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIC8vIFNlYXJjaCBmb3IgdGhlIHNwZWNpZmljIG5vZGUgaW4gb3VyIHRhYnMgbGlzdC4KLSAgICAgIC8vIElmIGl0IGlzIG5vdCB0aGVyZSBwcmludCBhIHdhcm5pbmcuCi0gICAgICB2YXIgY29udGVudFRhYklkID0gdW5kZWZpbmVkOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYnNfLmxlbmd0aDsgaSsrKQotICAgICAgICBpZiAodGhpcy50YWJzX1tpXS5jb250ZW50ID09PSBjb250ZW50KSB7Ci0gICAgICAgICAgY29udGVudFRhYklkID0gdGhpcy50YWJzX1tpXS5pZDsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICBpZiAoY29udGVudFRhYklkID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgY29uc29sZS53YXJuKCdUYWIgbm90IGluIHRhYnMgbGlzdC4gSWdub3JpbmcgY2hhbmdlZCBzZWxlY3Rpb24uJyk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdGhpcy5jaGFuZ2VTZWxlY3RlZFRhYkJ5SWRfKGNvbnRlbnRUYWJJZCk7Ci0gICAgfSwKLQotICAgIGdldCB0YWJzSGlkZGVuKCkgewotICAgICAgdmFyIHRzID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3RhYi1zdHJpcCcpOwotICAgICAgcmV0dXJuIHRzLmhhc0F0dHJpYnV0ZSgndGFicy1oaWRkZW4nKTsKLSAgICB9LAotCi0gICAgc2V0IHRhYnNIaWRkZW4odGFic0hpZGRlbikgewotICAgICAgdGFic0hpZGRlbiA9ICEhdGFic0hpZGRlbjsKLSAgICAgIHZhciB0cyA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCd0YWItc3RyaXAnKTsKLSAgICAgIGlmICh0YWJzSGlkZGVuKQotICAgICAgICB0cy5zZXRBdHRyaWJ1dGUoJ3RhYnMtaGlkZGVuJywgdHJ1ZSk7Ci0gICAgICBlbHNlCi0gICAgICAgIHRzLnJlbW92ZUF0dHJpYnV0ZSgndGFicy1oaWRkZW4nKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogRnVuY3Rpb24gY2FsbGVkIG9uIGxpZ2h0LWRvbSBjaGlsZCBhZGRpdGlvbi4KLSAgICAgKi8KLSAgICBwcm9jZXNzQWRkZWRDaGlsZF86IGZ1bmN0aW9uKGNoaWxkKSB7Ci0gICAgICB2YXIgb2JzZXJ2ZXJBdHRyaWJ1dGVTZWxlY3RlZCA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKAotICAgICAgICAgIHRoaXMuY2hpbGRBdHRyaWJ1dGVzQ2hhbmdlZF8uYmluZCh0aGlzKSk7Ci0gICAgICB2YXIgb2JzZXJ2ZXJBdHRyaWJ1dGVUYWJMYWJlbCA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKAotICAgICAgICAgIHRoaXMuY2hpbGRBdHRyaWJ1dGVzQ2hhbmdlZF8uYmluZCh0aGlzKSk7Ci0gICAgICB2YXIgdGFiT2JqZWN0ID0gewotICAgICAgICBpZDogdGhpcy50YWJzXy5sZW5ndGgsCi0gICAgICAgIGNvbnRlbnQ6IGNoaWxkLAotICAgICAgICBsYWJlbDogY2hpbGQuZ2V0QXR0cmlidXRlKCd0YWItbGFiZWwnKSwKLSAgICAgICAgb2JzZXJ2ZXJzOiB7Ci0gICAgICAgICAgZm9yQXR0cmlidXRlU2VsZWN0ZWQ6IG9ic2VydmVyQXR0cmlidXRlU2VsZWN0ZWQsCi0gICAgICAgICAgZm9yQXR0cmlidXRlVGFiTGFiZWw6IG9ic2VydmVyQXR0cmlidXRlVGFiTGFiZWwKLSAgICAgICAgfSwKLSAgICAgICAgc2F2ZWRTY3JvbGxUb3A6IDAsCi0gICAgICAgIHNhdmVkU2Nyb2xsTGVmdDogMAotICAgICAgfTsKLQotICAgICAgdGhpcy50YWJzXy5wdXNoKHRhYk9iamVjdCk7Ci0gICAgICBpZiAoY2hpbGQuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKSB7Ci0gICAgICAgIC8vIFdoZW4gcmVjZWl2aW5nIGEgY2hpbGQgd2l0aCB0aGUgc2VsZWN0ZWQgYXR0cmlidXRlLCBpZiB3ZSBoYXZlIG5vCi0gICAgICAgIC8vIHNlbGVjdGVkIHRhYiwgbWFyayB0aGUgY2hpbGQgYXMgdGhlIHNlbGVjdGVkIHRhYiwgb3RoZXJ3aXNlIGtlZXAKLSAgICAgICAgLy8gdGhlIHByZXZpb3VzIHNlbGVjdGlvbi4KLSAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWJfKQotICAgICAgICAgIGNoaWxkLnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRUYWJCeUlkXyh0YWJPYmplY3QuaWQpOwotICAgICAgfQotCi0gICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHVzZXIgbWlnaHQgaGF2ZSBzZXQgdGhlIHNlbGVjdGVkCi0gICAgICAvLyBwcm9wZXJ0eSBiZWZvcmUgd2UgZ290IHRvIHByb2Nlc3MgdGhlIGNoaWxkLgotICAgICAgdmFyIHByZXZpb3VzU2VsZWN0ZWQgPSBjaGlsZC5zZWxlY3RlZDsKLQotICAgICAgdmFyIHRhYlZpZXcgPSB0aGlzOwotCi0gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoCi0gICAgICAgICAgY2hpbGQsCi0gICAgICAgICAgJ3NlbGVjdGVkJywgewotICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgICAgICAgICB0YWJWaWV3LmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8odGFiT2JqZWN0LmlkKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICB2YXIgd2FzU2VsZWN0ZWQgPSB0YWJWaWV3LnNlbGVjdGVkVGFiXyA9PT0gdGFiT2JqZWN0OwotICAgICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQpCi0gICAgICAgICAgICAgICAgdGFiVmlldy5jaGFuZ2VTZWxlY3RlZFRhYkJ5SWRfKHVuZGVmaW5lZCk7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotCi0gICAgICBpZiAocHJldmlvdXNTZWxlY3RlZCkKLSAgICAgICAgY2hpbGQuc2VsZWN0ZWQgPSBwcmV2aW91c1NlbGVjdGVkOwotCi0gICAgICBvYnNlcnZlckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUoY2hpbGQsCi0gICAgICAgICAgeyBhdHRyaWJ1dGVGaWx0ZXI6IFsnc2VsZWN0ZWQnXSB9KTsKLSAgICAgIG9ic2VydmVyQXR0cmlidXRlVGFiTGFiZWwub2JzZXJ2ZShjaGlsZCwKLSAgICAgICAgICB7IGF0dHJpYnV0ZUZpbHRlcjogWyd0YWItbGFiZWwnXSB9KTsKLQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBGdW5jdGlvbiBjYWxsZWQgb24gbGlnaHQtZG9tIGNoaWxkIHJlbW92YWwuCi0gICAgICovCi0gICAgcHJvY2Vzc1JlbW92ZWRDaGlsZF86IGZ1bmN0aW9uKGNoaWxkKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFic18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgLy8gTWFrZSBzdXJlIGlkcyBhcmUgdGhlIHNhbWUgYXMgdGhlIHRhYiBwb3NpdGlvbiBhZnRlciByZW1vdmFsLgotICAgICAgICB0aGlzLnRhYnNfW2ldLmlkID0gaTsKLSAgICAgICAgaWYgKHRoaXMudGFic19baV0uY29udGVudCA9PT0gY2hpbGQpIHsKLSAgICAgICAgICB0aGlzLnRhYnNfW2ldLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZC5kaXNjb25uZWN0KCk7Ci0gICAgICAgICAgdGhpcy50YWJzX1tpXS5vYnNlcnZlcnMuZm9yQXR0cmlidXRlVGFiTGFiZWwuZGlzY29ubmVjdCgpOwotICAgICAgICAgIC8vIFRoZSB1c2VyIGhhcyByZW1vdmVkIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGFiLgotICAgICAgICAgIGlmICh0aGlzLnRhYnNfW2ldID09PSB0aGlzLnNlbGVjdGVkVGFiXykgewotICAgICAgICAgICAgdGhpcy5jbGVhclNlbGVjdGVkVGFiXygpOwotICAgICAgICAgICAgdGhpcy5maXJlKCdzZWxlY3RlZC10YWItY2hhbmdlJyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGNoaWxkLnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKLSAgICAgICAgICBkZWxldGUgY2hpbGQuc2VsZWN0ZWQ7Ci0gICAgICAgICAgLy8gUmVtb3ZlIHRoZSBvYnNlcnZlciBzaW5jZSB3ZSBubyBsb25nZXIgY2FyZSBhYm91dCB0aGlzIGNoaWxkLgotICAgICAgICAgIHRoaXMudGFic18uc3BsaWNlKGksIDEpOwotICAgICAgICAgIGktLTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLQotICAgIC8qKgotICAgICAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBjaGlsZCBhdHRyaWJ1dGUgY2hhbmdlcy4gVGhlIG9ubHkgcmVsZXZhbnQKLSAgICAgKiBhdHRyaWJ1dGVzIGZvciB0aGUgdGFiLXZpZXcgYXJlICd0YWItbGFiZWwnIGFuZCAnc2VsZWN0ZWQnLgotICAgICAqLwotICAgIGNoaWxkQXR0cmlidXRlc0NoYW5nZWRfOiBmdW5jdGlvbihtdXRhdGlvbnMsIG9ic2VydmVyKSB7Ci0gICAgICB2YXIgdGFiT2JqZWN0ID0gdW5kZWZpbmVkOwotICAgICAgLy8gRmlyc3QgZmlndXJlIG91dCB3aGljaCBjaGlsZCBoYXMgYmVlbiBjaGFuZ2VkLgotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYnNfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLnRhYnNfW2ldLm9ic2VydmVyczsKLSAgICAgICAgaWYgKG9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZCA9PT0gb2JzZXJ2ZXIgfHwKLSAgICAgICAgICAgIG9ic2VydmVycy5mb3JBdHRyaWJ1dGVUYWJMYWJlbCA9PT0gb2JzZXJ2ZXIpIHsKLSAgICAgICAgICAgIHRhYk9iamVjdCA9IHRoaXMudGFic19baV07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCB1bmxlc3MgdGhlIHVzZXIgaGFzIG1lc3NlZCB3aXRoIG91ciBpbnRlcm5hbAotICAgICAgLy8gZGF0YSBzdHJ1Y3R1cmUuCi0gICAgICBpZiAoIXRhYk9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBOZXh0IGhhbmRsZSB0aGUgYXR0cmlidXRlIGNoYW5nZXMuCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG11dGF0aW9ucy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgbm9kZSA9IHRhYk9iamVjdC5jb250ZW50OwotICAgICAgICAvLyAndGFiLWxhYmVsJyBhdHRyaWJ1dGUgaGFzIGJlZW4gY2hhbmdlZC4KLSAgICAgICAgaWYgKG11dGF0aW9uc1tpXS5hdHRyaWJ1dGVOYW1lID09PSAndGFiLWxhYmVsJykKLSAgICAgICAgICB0YWJPYmplY3QubGFiZWwgPSBub2RlLmdldEF0dHJpYnV0ZSgndGFiLWxhYmVsJyk7Ci0gICAgICAgIC8vICdzZWxlY3RlZCcgYXR0cmlidXRlIGhhcyBiZWVuIGNoYW5nZWQuCi0gICAgICAgIGlmIChtdXRhdGlvbnNbaV0uYXR0cmlidXRlTmFtZSA9PT0gJ3NlbGVjdGVkJykgewotICAgICAgICAgIC8vIFRoZSBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0LgotICAgICAgICAgIHZhciBub2RlSXNTZWxlY3RlZCA9IG5vZGUuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpOwotICAgICAgICAgIGlmIChub2RlSXNTZWxlY3RlZCkKLSAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh0YWJPYmplY3QuaWQpOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh1bmRlZmluZWQpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBsaWdodC1kb20gYWRkaXRpb25zIGFuZCByZW1vdmFscyBmcm9tIHRoZQotICAgICAqIHRhYi12aWV3IGNvbXBvbmVudC4KLSAgICAgKi8KLSAgICBjaGlsZHJlblVwZGF0ZWRfOiBmdW5jdGlvbihtdXRhdGlvbnMsIG9ic2VydmVyKSB7Ci0gICAgICBtdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbikgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG11dGF0aW9uLnJlbW92ZWROb2Rlcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICB0aGlzLnByb2Nlc3NSZW1vdmVkQ2hpbGRfKG11dGF0aW9uLnJlbW92ZWROb2Rlc1tpXSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICB0aGlzLnByb2Nlc3NBZGRlZENoaWxkXyhtdXRhdGlvbi5hZGRlZE5vZGVzW2ldKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBIYW5kbGVyIGNhbGxlZCB3aGVuIGEgY2xpY2sgZXZlbnQgaGFwcGVucyBvbiBhbnkgb2YgdGhlIHRhYiBidXR0b25zLgotICAgICAqLwotICAgIHRhYkJ1dHRvblNlbGVjdEhhbmRsZXJfOiBmdW5jdGlvbihldmVudCwgZGV0YWlsLCBzZW5kZXIpIHsKLSAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyhzZW5kZXIuZ2V0QXR0cmlidXRlKCdidXR0b24taWQnKSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFRoaXMgZG9lcyB0aGUgYWN0dWFsIHdvcmsuIDopCi0gICAgICovCi0gICAgY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXzogZnVuY3Rpb24oaWQpIHsKLSAgICAgIHZhciBuZXdUYWIgPSBpZCAhPT0gdW5kZWZpbmVkID8gdGhpcy50YWJzX1tpZF0gOiB1bmRlZmluZWQ7Ci0gICAgICB2YXIgY2hhbmdlZCA9IHRoaXMuc2VsZWN0ZWRUYWJfICE9PSBuZXdUYWI7Ci0gICAgICB0aGlzLnNhdmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fKCk7Ci0gICAgICB0aGlzLmNsZWFyU2VsZWN0ZWRUYWJfKCk7Ci0gICAgICBpZiAoaWQgIT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLnNldFNlbGVjdGVkVGFiQnlJZF8oaWQpOwotICAgICAgICB0aGlzLnJlc3RvcmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fKCk7Ci0gICAgICB9Ci0KLSAgICAgIGlmIChjaGFuZ2VkKQotICAgICAgICB0aGlzLmZpcmUoJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGFiIGJhc2VkIG9uIGl0cyBpbnRlcm5hbAotICAgICAqIGlkLiBUaGUgY29ycmVzcG9uZGluZyBsaWdodC1kb20gZWxlbWVudCByZWNlaXZlcyB0aGUgc2VsZWN0ZWQgYXR0cmlidXRlLgotICAgICAqLwotICAgIHNldFNlbGVjdGVkVGFiQnlJZF86IGZ1bmN0aW9uKGlkKSB7Ci0gICAgICB0aGlzLnNlbGVjdGVkVGFiXyA9IHRoaXMudGFic19baWRdOwotICAgICAgLy8gRGlzY29ubmVjdCBvYnNlcnZlciB3aGlsZSB3ZSBtdXRhdGUgdGhlIGNoaWxkLgotICAgICAgdGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLmRpc2Nvbm5lY3QoKTsKLSAgICAgIHRoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsICdzZWxlY3RlZCcpOwotICAgICAgLy8gUmVjb25uZWN0IHRoZSBvYnNlcnZlciB0byB3YXRjaCBmb3IgY2hhbmdlcyBpbiB0aGUgZnV0dXJlLgotICAgICAgdGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUoCi0gICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uY29udGVudCwgeyBhdHRyaWJ1dGVGaWx0ZXI6IFsnc2VsZWN0ZWQnXSB9KTsKLQotICAgIH0sCi0KLSAgICBzYXZlQ3VycmVudFRhYlNjcm9sbFBvc2l0aW9uXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYl8pIHsKLSAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uc2F2ZWRTY3JvbGxUb3AgPQotICAgICAgICAgICAgdGhpcy4kWydjb250ZW50LWNvbnRhaW5lciddLnNjcm9sbFRvcDsKLSAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uc2F2ZWRTY3JvbGxMZWZ0ID0KLSAgICAgICAgICAgIHRoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxMZWZ0OwotICAgICAgfQotICAgIH0sCi0KLSAgICByZXN0b3JlQ3VycmVudFRhYlNjcm9sbFBvc2l0aW9uXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYl8pIHsKLSAgICAgICAgdGhpcy4kWydjb250ZW50LWNvbnRhaW5lciddLnNjcm9sbFRvcCA9Ci0gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiXy5zYXZlZFNjcm9sbFRvcDsKLSAgICAgICAgdGhpcy4kWydjb250ZW50LWNvbnRhaW5lciddLnNjcm9sbExlZnQgPQotICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uc2F2ZWRTY3JvbGxMZWZ0OwotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBUaGlzIGZ1bmN0aW9uIGNsZWFycyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRhYi4gVGhpcyBoYW5kbGVzIHJlbW92YWwKLSAgICAgKiBvZiB0aGUgc2VsZWN0ZWQgYXR0cmlidXRlIGZyb20gdGhlIGxpZ2h0LWRvbSBlbGVtZW50LgotICAgICAqLwotICAgIGNsZWFyU2VsZWN0ZWRUYWJfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiXykgewotICAgICAgICAvLyBEaXNjb25uZWN0IG9ic2VydmVyIHdoaWxlIHdlIG11dGF0ZSB0aGUgY2hpbGQuCi0gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJfLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZC5kaXNjb25uZWN0KCk7Ci0gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpOwotICAgICAgICAvLyBSZWNvbm5lY3QgdGhlIG9ic2VydmVyIHRvIHdhdGNoIGZvciBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuCi0gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJfLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZC5vYnNlcnZlKAotICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uY29udGVudCwgeyBhdHRyaWJ1dGVGaWx0ZXI6IFsnc2VsZWN0ZWQnXSB9KTsKLSAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8gPSB1bmRlZmluZWQ7Ci0gICAgICB9Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy90YWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYW5hbHlzaXMvdGFiX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2I4YzBlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9hbmFseXNpcy90YWJfdmlld190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy90YWJfdmlldy5odG1sIj4KLQotPHRlbXBsYXRlIGlkPSJ0YWItdmlldy10ZXN0LXRlbXBsYXRlIj4KLSAgPHRyYWNpbmctYW5hbHlzaXMtdGFiLXZpZXc+Ci0gICAgPHAgdGFiLWxhYmVsPSJFeGlzdGluZyBMYWJlbCI+IFRhYiB3aXRoIGxhYmVsIGFscmVhZHkgc2V0IDwvcD4KLSAgICA8cD4gVGFiIENvbnRlbnQgd2l0aCBubyBsYWJlbCA8L3A+Ci0gICAgPHAgc2VsZWN0ZWQ9InNlbGVjdGVkIiB0YWItbGFiZWw9IlNob3VsZCBiZSBzZWxlY3RlZCI+Ci0gICAgICBBbHJlYWR5IHNlbGVjdGVkIHRhYgotICAgIDwvcD4KLSAgICA8cCBzZWxlY3RlZD0ic2VsZWN0ZWQiIHRhYi1sYWJlbD0iU2hvdWxkIG5vdCBiZSBzZWxlY3RlZCI+Ci0gICAgICBTZWNvbmQgYWxyZWFkeSBzZWxlY3RlZCB0YWIKLSAgICA8L3A+Ci0gIDwvdHJhY2luZy1hbmFseXNpcy10YWItdmlldz4KLTwvdGVtcGxhdGU+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuX2N1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotCi0gICAgdmFyIFRBQl9URVhUID0gJ0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuJyArCi0gICAgICAgICcgQ3JhcyBlbGVpZmVuZCBlbGl0IG5lYyBlcmF0IHRyaXN0aXF1ZSBwZWxsZW50ZXNxdWUuIENyYXMgcGxhY2VyYXQgJyArCi0gICAgICAgICdsZWN0dXMsIHNlZCBzZW1wZXIgdG9ydG9yIG9ybmFyZSBxdWlzLiBNYWVjZW5hcyB2aXRhZSBoZW5kcmVyaXQuICcgKwotICAgICAgICAnQ3JhcyBtYXR0aXMgaW50ZXJkdW0gbmlzaSwgZWdldCBlZ2VzdGFzIGR1aSBpYWN1bGlzIHVsdHJpY2llcy4gUHJvaScgKwotICAgICAgICAnbiBtYWduYSBhdCBuaWJoIGZyaW5naWxsYSB0aW5jaWR1bnQgaWQgdml0YWUgYW50ZS4gRnVzY2UgbmVjIHVybmEgbicgKwotICAgICAgICAnb24gcG9ydHRpdG9yIHRpbmNpZHVudC4gUGVsbGVudGVzcXVlIGhhYml0YW50IG1vcmJpIHRyaXN0aXF1ZSBzZW5lYycgKwotICAgICAgICAndHVzIG5ldHVzIGV0IG1hbGVzdWFkYSBmYW1lcyBhYyB0dXJwaXMgZWdlc3Rhcy4gU3VzcGVuZGlzc2Ugc2VkIHZlbCcgKwotICAgICAgICAnaXQgbW9sbGlzIG9ybmFyZSBzaXQgYW1ldCB2ZWwgYXVndWUuIE51bGxhbSByaG9uY3VzIGluIHRlbGx1cyBpZC4gJyArCi0gICAgICAgICdWZXN0aWJ1bHVtIGFudGUgaXBzdW0gcHJpbWlzIGluIGZhdWNpYnVzIG9yY2kgbHVjdHVzIGV0IHVsdHJpY2VzICcgKwotICAgICAgICAnY3ViaWxpYSBDdXJhZTsgTnVuYyBhdCB2ZWxpdCBjb25zZWN0ZXR1ciBpcHN1bSB0ZW1wdXMgdGVtcHVzLiBOdW5jICcgKwotICAgICAgICAnbWF0dGlzIHNhcGllbiwgYSBwbGFjZXJhdCBlcmF0LiBWaXZhbXVzIGFjIGVuaW0gdWx0cmljaWVzLCBncmF2aWRhICcgKwotICAgICAgICAnbnVsbGEgdXQsIHNjZWxlcmlzcXVlIG1hZ25hLiBTZWQgYSB2b2x1dHBhdCBlbmltLiBNb3JiaSB2dWxwdXRhdGUsICcgKwotICAgICAgICAnc2VkIGVnZXN0YXMgbW9sbGlzLCB1cm5hIG5pc2wgdmFyaXVzIHNlbSwgc2VkIHZlbmVuYXRpcyB0dXJwaXMgbnVsbCcgKwotICAgICAgICAnYSBpcHN1bS4gU3VzcGVuZGlzc2UgcG90ZW50aS4nOwotCi0gICAgdmFyIHRhYlZpZXdDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLndpZHRoID0gJzUwMHB4JzsKLSAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7Ci0KLSAgICB2YXIgdGFiVmlldyA9IG5ldyBUcmFjaW5nQW5hbHlzaXNUYWJWaWV3KCk7Ci0KLSAgICB2YXIgZmlyc3RUYWIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBmaXJzdFRhYi5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdGaXJzdCBUYWIgTGFiZWwnKTsKLSAgICBmaXJzdFRhYi5pbm5lckhUTUwgPSAnPHA+JyArIFRBQl9URVhUICsgJzxwPic7Ci0KLSAgICB2YXIgc2Vjb25kVGFiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgc2Vjb25kVGFiLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ1NlY29uZCBUYWIgTGFiZWwnKTsKLSAgICBzZWNvbmRUYWIuaW5uZXJIVE1MID0gJzxiPicgKyAnU2Vjb25kIFRhYiBUZXh0JyArICc8L2I+JzsKLQotICAgIHZhciB0aGlyZFRhYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRoaXJkVGFiLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ1RoaXJkIFRhYiBMYWJlbCcpOwotICAgIHRoaXJkVGFiLmlubmVySFRNTCA9ICc8Yj4nICsgJ1RoaXJkIFRhYiBUZXh0JyArICc8L2I+JzsKLQotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQoZmlyc3RUYWIpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQoc2Vjb25kVGFiKTsKLSAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHRoaXJkVGFiKTsKLSAgICB0YWJWaWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlZpZXcpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYlZpZXdDb250YWluZXIpOwotCi0gICAgdGhpcmRUYWIuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnU29tZXRoaW5nIERpZmZlcmVudCcpOwotCi0gICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwotICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICdDaGFuZ2UgbGFiZWwnOwotCi0gICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlyZFRhYi5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdMYWJlbCBDaGFuZ2VkJyk7Ci0gICAgfSk7Ci0KLSAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gc2Vjb25kVGFiOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChidXR0b24pOwotICB9KTsKLQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlV2l0aFRhYkhlYWRpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgVEFCX1RFWFQgPSAnTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4nICsKLSAgICAgICAgJyBDcmFzIGVsZWlmZW5kIGVsaXQgbmVjIGVyYXQgdHJpc3RpcXVlIHBlbGxlbnRlc3F1ZS4gQ3JhcyBwbGFjZXJhdCAnICsKLSAgICAgICAgJ2xlY3R1cywgc2VkIHNlbXBlciB0b3J0b3Igb3JuYXJlIHF1aXMuIE1hZWNlbmFzIHZpdGFlIGhlbmRyZXJpdC4gJyArCi0gICAgICAgICdDcmFzIG1hdHRpcyBpbnRlcmR1bSBuaXNpLCBlZ2V0IGVnZXN0YXMgZHVpIGlhY3VsaXMgdWx0cmljaWVzLiBQcm9pJyArCi0gICAgICAgICduIG1hZ25hIGF0IG5pYmggZnJpbmdpbGxhIHRpbmNpZHVudCBpZCB2aXRhZSBhbnRlLiBGdXNjZSBuZWMgdXJuYSBuJyArCi0gICAgICAgICdvbiBwb3J0dGl0b3IgdGluY2lkdW50LiBQZWxsZW50ZXNxdWUgaGFiaXRhbnQgbW9yYmkgdHJpc3RpcXVlIHNlbmVjJyArCi0gICAgICAgICd0dXMgbmV0dXMgZXQgbWFsZXN1YWRhIGZhbWVzIGFjIHR1cnBpcyBlZ2VzdGFzLiBTdXNwZW5kaXNzZSBzZWQgdmVsJyArCi0gICAgICAgICdpdCBtb2xsaXMgb3JuYXJlIHNpdCBhbWV0IHZlbCBhdWd1ZS4gTnVsbGFtIHJob25jdXMgaW4gdGVsbHVzIGlkLiAnICsKLSAgICAgICAgJ1Zlc3RpYnVsdW0gYW50ZSBpcHN1bSBwcmltaXMgaW4gZmF1Y2lidXMgb3JjaSBsdWN0dXMgZXQgdWx0cmljZXMgJyArCi0gICAgICAgICdjdWJpbGlhIEN1cmFlOyBOdW5jIGF0IHZlbGl0IGNvbnNlY3RldHVyIGlwc3VtIHRlbXB1cyB0ZW1wdXMuIE51bmMgJyArCi0gICAgICAgICdtYXR0aXMgc2FwaWVuLCBhIHBsYWNlcmF0IGVyYXQuIFZpdmFtdXMgYWMgZW5pbSB1bHRyaWNpZXMsIGdyYXZpZGEgJyArCi0gICAgICAgICdudWxsYSB1dCwgc2NlbGVyaXNxdWUgbWFnbmEuIFNlZCBhIHZvbHV0cGF0IGVuaW0uIE1vcmJpIHZ1bHB1dGF0ZSwgJyArCi0gICAgICAgICdzZWQgZWdlc3RhcyBtb2xsaXMsIHVybmEgbmlzbCB2YXJpdXMgc2VtLCBzZWQgdmVuZW5hdGlzIHR1cnBpcyBudWxsJyArCi0gICAgICAgICdhIGlwc3VtLiBTdXNwZW5kaXNzZSBwb3RlbnRpLic7Ci0KLSAgICB2YXIgdGFiVmlld0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhYlZpZXdDb250YWluZXIuc3R5bGUud2lkdGggPSAnNTAwcHgnOwotICAgIHRhYlZpZXdDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzIwMHB4JzsKLQotICAgIHZhciB0YWJWaWV3ID0gbmV3IFRyYWNpbmdBbmFseXNpc1RhYlZpZXcoKTsKLSAgICB0YWJWaWV3LnRhYlN0cmlwSGVhZGluZ1RleHQgPSAnSGVsbG8gd29ybGQ6JzsKLQotICAgIHZhciBmaXJzdFRhYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGZpcnN0VGFiLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ0ZpcnN0IFRhYiBMYWJlbCcpOwotICAgIGZpcnN0VGFiLmlubmVySFRNTCA9ICc8cD4nICsgVEFCX1RFWFQgKyAnPHA+JzsKLQotICAgIHZhciBzZWNvbmRUYWIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBzZWNvbmRUYWIuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnU2Vjb25kIFRhYiBMYWJlbCcpOwotICAgIHNlY29uZFRhYi5pbm5lckhUTUwgPSAnPGI+JyArICdTZWNvbmQgVGFiIFRleHQnICsgJzwvYj4nOwotCi0gICAgdmFyIHRoaXJkVGFiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGhpcmRUYWIuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnVGhpcmQgVGFiIExhYmVsJyk7Ci0gICAgdGhpcmRUYWIuaW5uZXJIVE1MID0gJzxiPicgKyAnVGhpcmQgVGFiIFRleHQnICsgJzwvYj4nOwotCi0gICAgdGFiVmlldy5hcHBlbmRDaGlsZChmaXJzdFRhYik7Ci0gICAgdGFiVmlldy5hcHBlbmRDaGlsZChzZWNvbmRUYWIpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodGhpcmRUYWIpOwotICAgIHRhYlZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQodGFiVmlldyk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFiVmlld0NvbnRhaW5lcik7Ci0gICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHNlY29uZFRhYjsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVDaGlsZHJlbkFscmVhZHlJbnNpZGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFiVmlld1RlbXBsYXRlID0gVEhJU19ET0MucXVlcnlTZWxlY3RvcignI3RhYi12aWV3LXRlc3QtdGVtcGxhdGUnKTsKLSAgICB2YXIgdGFiVmlldyA9IHRhYlZpZXdUZW1wbGF0ZS5jcmVhdGVJbnN0YW5jZSgpOwotCi0gICAgdmFyIHRhYlZpZXdDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLndpZHRoID0gJzQwMHB4JzsKLSAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7Ci0KLSAgICB0YWJWaWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlZpZXcpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYlZpZXdDb250YWluZXIpOwotCi0gIH0pOwotCi0gIHRlc3QoJ3Byb2dyYW1hdGljYWxseVNldFNlbGVjdGVkVGFiJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYlZpZXdDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLndpZHRoID0gJzUwMHB4JzsKLSAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7Ci0KLSAgICB2YXIgdGFiVmlldyA9IG5ldyBUcmFjaW5nQW5hbHlzaXNUYWJWaWV3KCk7Ci0KLSAgICB2YXIgdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgdDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgdDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDEpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDIpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDMpOwotCi0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHRhYlZpZXcuc2VsZWN0ZWRUYWIpOwotICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSB0MTsKLQotICAgIGFzc2VydC5pc1RydWUodDEuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNGYWxzZSh0Mi5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOwotICAgIGFzc2VydC5pc0ZhbHNlKHQzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShPYmplY3QuaXModDEsIHRhYlZpZXcuc2VsZWN0ZWRUYWIpKTsKLQotICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSB0MjsKLSAgICBhc3NlcnQuaXNGYWxzZSh0MS5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOwotICAgIGFzc2VydC5pc1RydWUodDIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNGYWxzZSh0My5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOwotICAgIGFzc2VydC5pc1RydWUoT2JqZWN0LmlzKHQyLCB0YWJWaWV3LnNlbGVjdGVkVGFiKSk7Ci0KLSAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gdDM7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodDEuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNGYWxzZSh0Mi5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOwotICAgIGFzc2VydC5pc1RydWUodDMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNUcnVlKE9iamVjdC5pcyh0MywgdGFiVmlldy5zZWxlY3RlZFRhYikpOwotCi0gICAgdDEuc2VsZWN0ZWQgPSB0cnVlOwotICAgIGFzc2VydC5pc1RydWUodDEuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNGYWxzZSh0Mi5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOwotICAgIGFzc2VydC5pc0ZhbHNlKHQzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShPYmplY3QuaXModDEsIHRhYlZpZXcuc2VsZWN0ZWRUYWIpKTsKLQotICAgIC8vIE1ha2Ugc3VyZSBqdXN0IHJhbmRvbWx5IHNldHRpbmcgYSB0YWIgYXMgbm90IHNlbGVjdGVkIGRvZXMgbm90Ci0gICAgLy8gYnJlYWsgdGhlIGV4aXN0aW5nIHNlbGVjdGlvbi4KLSAgICB0Mi5zZWxlY3RlZCA9IGZhbHNlOwotICAgIHQzLnNlbGVjdGVkID0gZmFsc2U7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0MS5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOwotICAgIGFzc2VydC5pc0ZhbHNlKHQyLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodDMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNUcnVlKE9iamVjdC5pcyh0MSwgdGFiVmlldy5zZWxlY3RlZFRhYikpOwotCi0gICAgdDMuc2VsZWN0ZWQgPSB0cnVlOwotICAgIGFzc2VydC5pc0ZhbHNlKHQxLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodDIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKLSAgICBhc3NlcnQuaXNUcnVlKHQzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShPYmplY3QuaXModDMsIHRhYlZpZXcuc2VsZWN0ZWRUYWIpKTsKLQotICAgIHRhYlZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQodGFiVmlldyk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFiVmlld0NvbnRhaW5lcik7Ci0gIH0pOwotCi0gIC8qKgotICAgKiBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgaWYgYW4gZWxlbWVudCBoYXMgYSBzZWxlY3RlZCBwcm9wZXJ0eSBhbHJlYWR5IHNldCwKLSAgICogYmVmb3JlIGJlaW5nIGF0dGFjaGVkIHRvIHRoZSB0YWJWaWV3LCBpdCBzdGlsbCBnZXRzIHNlbGVjdGVkIGlmIHRoZQotICAgKiBwcm9wZXJ0eSBpcyB0cnVlLCBhZnRlciBpdCBnZXRzIGF0dGFjaGVkLgotICAgKi8KLSAgdGVzdCgnaW5zdGFudGlhdGVTZXRTZWxlY3RlZFRhYkFscmVhZHlTZXQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFiVmlld0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhYlZpZXdDb250YWluZXIuc3R5bGUud2lkdGggPSAnNTAwcHgnOwotICAgIHRhYlZpZXdDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzIwMHB4JzsKLQotICAgIHZhciB0YWJWaWV3ID0gbmV3IFRyYWNpbmdBbmFseXNpc1RhYlZpZXcoKTsKLQotICAgIHZhciB0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHQxLnRleHRDb250ZW50ID0gJ1RoaXMgdGV4dCBzaG91bGQgQkUgdmlzaWJsZS4nOwotICAgIHZhciB0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHQyLnRleHRDb250ZW50ID0gJ1RoaXMgdGV4dCBzaG91bGQgTk9UIGJlIHZpc2libGUuJzsKLSAgICB2YXIgdDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0My50ZXh0Q29udGVudCA9ICdUaGlzIHRleHQgc2hvdWxkIE5PVCBiZSB2aXNpYmxlLCBhbHNvLic7Ci0KLSAgICB0MS5zZWxlY3RlZCA9IHRydWU7Ci0gICAgdDIuc2VsZWN0ZWQgPSBmYWxzZTsKLSAgICB0My5zZWxlY3RlZCA9IGZhbHNlOwotCi0gICAgdGFiVmlldy5hcHBlbmRDaGlsZCh0MSk7Ci0gICAgdGFiVmlldy5hcHBlbmRDaGlsZCh0Mik7Ci0gICAgdGFiVmlldy5hcHBlbmRDaGlsZCh0Myk7Ci0KLSAgICB0MS5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdUaGlzIHNob3VsZCBiZSBzZWxlY3RlZCcpOwotICAgIHQyLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ05vdCBzZWxlY3RlZCcpOwotICAgIHQzLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ05vdCBzZWxlY3RlZCcpOwotCi0gICAgdGFiVmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0YWJWaWV3KTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJWaWV3Q29udGFpbmVyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2VsZWN0aW5nSW52YWxpZFRhYldvcmtzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhYlZpZXcgPSBuZXcgVHJhY2luZ0FuYWx5c2lzVGFiVmlldygpOwotICAgIHZhciB0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciB0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciB0MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciBpbnZhbGlkQ2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDEpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDIpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDMpOwotCi0gICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHQxOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRhYlZpZXcuc2VsZWN0ZWRUYWIsIHQxKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHNlbGVjdGluZyBhbiBpbnZhbGlkIHRhYiBkb2VzIG5vdCBicmVhayB0aGUgY3VycmVudAotICAgIC8vIHNlbGVjdGlvbi4KLSAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gaW52YWxpZENoaWxkOwotICAgIGFzc2VydC5lcXVhbCh0MSwgdGFiVmlldy5zZWxlY3RlZFRhYik7Ci0KLSAgICAvLyBBbHNvIG1ha2Ugc3VyZSB0aGUgaW52YWxpZENoaWxkIGRvZXMgbm90IGluZmx1ZW5jZSB0aGUgdGFiIHZpZXcgd2hlbgotICAgIC8vIGl0IGhhcyBhIHNlbGVjdGVkIHByb3BlcnR5IHNldC4KLSAgICBpbnZhbGlkQ2hpbGQuc2VsZWN0ZWQgPSB0cnVlOwotICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSBpbnZhbGlkQ2hpbGQ7Ci0gICAgYXNzZXJ0LmVxdWFsKHQxLCB0YWJWaWV3LnNlbGVjdGVkVGFiKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hhbmdlVGFiQ2F1c2VzRXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGFiVmlldyA9IG5ldyBUcmFjaW5nQW5hbHlzaXNUYWJWaWV3KCk7Ci0gICAgdmFyIHQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIGludmFsaWRDaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdGFiVmlldy5hcHBlbmRDaGlsZCh0MSk7Ci0gICAgdGFiVmlldy5hcHBlbmRDaGlsZCh0Mik7Ci0KLSAgICB2YXIgbnVtQ2hhbmdlRXZlbnRzID0gMDsKLSAgICB0YWJWaWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgbnVtQ2hhbmdlRXZlbnRzKys7Ci0gICAgfSk7Ci0gICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHQxOwotICAgIGFzc2VydC5lcXVhbChudW1DaGFuZ2VFdmVudHMsIDEpOwotICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSB0MTsKLSAgICBhc3NlcnQuZXF1YWwobnVtQ2hhbmdlRXZlbnRzLCAxKTsKLSAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gdDI7Ci0gICAgYXNzZXJ0LmVxdWFsKG51bUNoYW5nZUV2ZW50cywgMik7Ci0gICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHVuZGVmaW5lZDsKLSAgICBhc3NlcnQuZXF1YWwobnVtQ2hhbmdlRXZlbnRzLCAzKTsKLSAgfSk7Ci0KLSAgLyoqCi0gICAqIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgcmVtb3ZpbmcgdGhlIHNlbGVjdGVkIHRhYiBkb2VzIG5vdCBzZWxlY3QKLSAgICogYW55IG90aGVyIHRhYi4KLSAgICovCi0gIHRlc3QoJ2luc3RhbnRpYXRlUmVtb3ZpbmdTZWxlY3RlZFRhYicsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0YWJWaWV3Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS53aWR0aCA9ICc1MDBweCc7Ci0gICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMjAwcHgnOwotCi0gICAgdmFyIHRhYlZpZXcgPSBuZXcgVHJhY2luZ0FuYWx5c2lzVGFiVmlldygpOwotCi0gICAgdmFyIHQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdDEudGV4dENvbnRlbnQgPSAnVGhpcyB0ZXh0IHNob3VsZCBCRSB2aXNpYmxlLic7Ci0gICAgdmFyIHQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdDIudGV4dENvbnRlbnQgPSAnVGhpcyB0ZXh0IHNob3VsZCBOT1QgYmUgdmlzaWJsZS4nOwotICAgIHZhciB0MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHQzLnRleHRDb250ZW50ID0gJ1RoaXMgdGV4dCBzaG91bGQgTk9UIGJlIHZpc2libGUsIGFsc28uJzsKLQotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDEpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDIpOwotICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDMpOwotCi0gICAgdDEuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnVGhpcyBzaG91bGQgbm90IGV4aXN0Jyk7Ci0gICAgdDIuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnTm90IHNlbGVjdGVkJyk7Ci0gICAgdDMuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnTm90IHNlbGVjdGVkJyk7Ci0KLSAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gdDE7Ci0gICAgdGFiVmlldy5yZW1vdmVDaGlsZCh0MSk7Ci0KLSAgICB0YWJWaWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlZpZXcpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYlZpZXdDb250YWluZXIpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYXVkaXRvci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2F1ZGl0b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjBhMzNjOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvYXVkaXRvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQmFzZSBjbGFzcyBmb3IgYXVkaXRvcnMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIEF1ZGl0b3IobW9kZWwpIHsKLSAgfQotCi0gIEF1ZGl0b3IucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKLQotICAgIC8qKgotICAgICAqIENhbGxlZCBieSB0aGUgTW9kZWwgYWZ0ZXIgYmFraW5nIHNsaWNlcy4gTWF5IG1vZGlmeSBtb2RlbC4KLSAgICAgKi8KLSAgICBydW5Bbm5vdGF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENhbGxlZCBieSB0aGUgTW9kZWwgYWZ0ZXIgaW1wb3J0aW5nLiBTaG91bGQgbm90IG1vZGlmeSBtb2RlbCwgZXhjZXB0Ci0gICAgICogZm9yIGFkZGluZyBpbnRlcmFjdGlvbiByYW5nZXMgYW5kIGF1ZGl0cy4KLSAgICAgKi8KLSAgICBydW5BdWRpdDogZnVuY3Rpb24oKSB7Ci0gICAgfQotICB9OwotCi0gIHZhciBvcHRpb25zID0gbmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7Ci0gIG9wdGlvbnMuZGVmYXVsdE1ldGFkYXRhID0ge307Ci0gIG9wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzID0gQXVkaXRvcjsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEF1ZGl0b3IsIG9wdGlvbnMpOwotCi0gIHJldHVybiB7Ci0gICAgQXVkaXRvcjogQXVkaXRvcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9icnVzaGluZ19zdGF0ZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2JydXNoaW5nX3N0YXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ODY1NmEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2JydXNoaW5nX3N0YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ndWlkLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2VsZWN0aW9uX3N0YXRlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgewotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOwotCi0gIGZ1bmN0aW9uIEJydXNoaW5nU3RhdGUoKSB7Ci0gICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOwotICAgIHRoaXMuc2VsZWN0aW9uXyA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0aGlzLmZpbmRNYXRjaGVzXyA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHRoaXMuYXBwbGllZFRvTW9kZWxfID0gdW5kZWZpbmVkOwotICB9Ci0gIEJydXNoaW5nU3RhdGUucHJvdG90eXBlID0gewotICAgIGdldCBndWlkKCkgewotICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87Ci0gICAgfSwKLQotICAgIGNsb25lOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0aGF0ID0gbmV3IEJydXNoaW5nU3RhdGUoKTsKLSAgICAgIHRoYXQuc2VsZWN0aW9uXyA9IHRoaXMuc2VsZWN0aW9uXzsKLSAgICAgIHRoYXQuZmluZE1hdGNoZXNfID0gdGhpcy5maW5kTWF0Y2hlc187Ci0gICAgICB0aGF0LmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfID0gdGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXzsKLQotICAgICAgcmV0dXJuIHRoYXQ7Ci0gICAgfSwKLQotICAgIGVxdWFsczogZnVuY3Rpb24odGhhdCkgewotICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbl8uZXF1YWxzKHRoYXQuc2VsZWN0aW9uXykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGlmICghdGhpcy5maW5kTWF0Y2hlc18uZXF1YWxzKHRoYXQuZmluZE1hdGNoZXNfKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgaWYgKCF0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfLmVxdWFscygKLSAgICAgICAgICB0aGF0LmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbk9mSW50ZXJlc3QoKSB7Ci0gICAgICBpZiAodGhpcy5zZWxlY3Rpb25fLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXzsKLQotICAgICAgaWYgKHRoaXMuaGlnaGxpZ2h0Xy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodF87Ci0KLSAgICAgIGlmICh0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c187Ci0KLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgaWYgKHRoaXMuYXBwbGllZFRvTW9kZWxfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBtdXRhdGUgdGhpcyBzdGF0ZSByaWdodCBub3cnKTsKLSAgICAgIGlmIChzZWxlY3Rpb24gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBnZXQgZmluZE1hdGNoZXMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5maW5kTWF0Y2hlc187Ci0gICAgfSwKLQotICAgIHNldCBmaW5kTWF0Y2hlcyhmaW5kTWF0Y2hlcykgewotICAgICAgaWYgKHRoaXMuYXBwbGllZFRvTW9kZWxfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBtdXRhdGUgdGhpcyBzdGF0ZSByaWdodCBub3cnKTsKLSAgICAgIGlmIChmaW5kTWF0Y2hlcyA9PT0gdW5kZWZpbmVkKQotICAgICAgICBmaW5kTWF0Y2hlcyA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICAgIHRoaXMuZmluZE1hdGNoZXNfID0gZmluZE1hdGNoZXM7Ci0gICAgfSwKLQotICAgIGdldCBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKCkgewotICAgICAgcmV0dXJuIHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c187Ci0gICAgfSwKLQotICAgIHNldCBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKGFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHMpIHsKLSAgICAgIGlmICh0aGlzLmFwcGxpZWRUb01vZGVsXykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbXV0YXRlIHRoaXMgc3RhdGUgcmlnaHQgbm93Jyk7Ci0gICAgICBpZiAoYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50cyA9PT0gdW5kZWZpbmVkKQotICAgICAgICBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzID0gbmV3IFNlbGVjdGlvbigpOwotICAgICAgdGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXyA9IGFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHM7Ci0gICAgfSwKLQotICAgIGdldCBpc0FwcGxpZWRUb01vZGVsKCkgewotICAgICAgcmV0dXJuIHRoaXMuYXBwbGllZFRvTW9kZWxfICE9PSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBoYXNIaWdobGlnaHRfKCkgewotICAgICAgcmV0dXJuIHRoaXMuZmluZE1hdGNoZXNfLmxlbmd0aCA+IDAgfHwKLSAgICAgICAgICB0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfLmxlbmd0aCA+IDA7Ci0gICAgfSwKLQotICAgIGFwcGx5VG9Nb2RlbFNlbGVjdGlvblN0YXRlOiBmdW5jdGlvbihtb2RlbCkgewotICAgICAgdGhpcy5hcHBsaWVkVG9Nb2RlbF8gPSBtb2RlbDsKLQotICAgICAgaWYgKCF0aGlzLmhhc0hpZ2hsaWdodF8pIHsKLSAgICAgICAgdGhpcy5zZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oZSkgewotICAgICAgICAgIGUuc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgbW9kZWwuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb25TdGF0ZTsKLSAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXy5jb250YWlucyhlKSkgewotICAgICAgICAgIHNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maW5kTWF0Y2hlc18uY29udGFpbnMoZSkpIHsKLSAgICAgICAgICBzZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18uY29udGFpbnMoZSkpIHsKLSAgICAgICAgICBzZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRElNTUVEOwotICAgICAgICB9Ci0gICAgICAgIGUuc2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHRyYW5zZmVyTW9kZWxPd25lcnNoaXBUb0Nsb25lOiBmdW5jdGlvbih0aGF0KSB7Ci0gICAgICBpZiAoIXRoaXMuYXBwbGllZFRvTW9kZWxfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhcHBsaWVkJyk7Ci0gICAgICAvLyBBc3N1bWVzIHRoaXMuZXF1YWxzKHRoYXQpLgotICAgICAgdGhhdC5hcHBsaWVkVG9Nb2RlbF8gPSB0aGlzLmFwcGxpZWRUb01vZGVsXzsKLSAgICAgIHRoaXMuYXBwbGllZFRvTW9kZWxfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICB1bmFwcGx5RnJvbU1vZGVsU2VsZWN0aW9uU3RhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmFwcGxpZWRUb01vZGVsXykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYXBwbGllZCcpOwotICAgICAgdmFyIG1vZGVsID0gdGhpcy5hcHBsaWVkVG9Nb2RlbF87Ci0gICAgICB0aGlzLmFwcGxpZWRUb01vZGVsXyA9IHVuZGVmaW5lZDsKLQotICAgICAgaWYgKCF0aGlzLmhhc0hpZ2hsaWdodF8pIHsKLSAgICAgICAgdGhpcy5zZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oZSkgewotICAgICAgICAgIGUuc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5OT05FOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBtb2RlbC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZS5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLk5PTkU7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBCcnVzaGluZ1N0YXRlOiBCcnVzaGluZ1N0YXRlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2JydXNoaW5nX3N0YXRlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9icnVzaGluZ19zdGF0ZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiNmFjYWMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2JydXNoaW5nX3N0YXRlX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3ZpZXcuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OwotCi0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0KLSAgZnVuY3Rpb24gbmV3U2ltcGxlTW9kZWwoKSB7Ci0gICAgcmV0dXJuIHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtKSB7Ci0gICAgICBtLnAxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgICBtLnQyID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLQotICAgICAgbS5zQSA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCi0gICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogNX0pKTsKLSAgICAgIG0uc0IgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxMCwgZW5kOiAxNX0pKTsKLSAgICAgIG0uc0MgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYycsIHN0YXJ0OiAyMCwgZW5kOiAyMH0pKTsKLSAgICB9KTsKLSAgfQotCi0gIHRlc3QoJ2JydXNoaW5nU3RhdGVTaW1wbGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ld1NpbXBsZU1vZGVsKCk7Ci0KLSAgICB2YXIgYnMgPSBuZXcgdHIuYy5CcnVzaGluZ1N0YXRlKCk7Ci0gICAgYnMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihbbS5zQV0pOwotCi0gICAgYnMuYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGUobSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc0Euc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEKTsKLSAgICBicy51bmFwcGx5RnJvbU1vZGVsU2VsZWN0aW9uU3RhdGUoKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zQS5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuTk9ORSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2JydXNoaW5nU3RhdGVXaXRoU2ltcGxlSGlnaGxpZ2h0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXdTaW1wbGVNb2RlbCgpOwotCi0gICAgdmFyIGJzID0gbmV3IHRyLmMuQnJ1c2hpbmdTdGF0ZSgpOwotICAgIGJzLnNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oW20uc0FdKTsKLSAgICBicy5maW5kTWF0Y2hlcyA9IG5ldyBTZWxlY3Rpb24oW20uc0EsIG0uc0JdKTsKLQotICAgIGJzLmFwcGx5VG9Nb2RlbFNlbGVjdGlvblN0YXRlKG0pOwotICAgIGFzc2VydC5lcXVhbChtLnNBLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc0Iuc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zQy5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuRElNTUVEKTsKLSAgICBicy51bmFwcGx5RnJvbU1vZGVsU2VsZWN0aW9uU3RhdGUoKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zQS5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuTk9ORSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc0Iuc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLk5PTkUpOwotICAgIGFzc2VydC5lcXVhbChtLnNDLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5OT05FKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYnJ1c2hpbmdUcmFuc2ZlcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3U2ltcGxlTW9kZWwoKTsKLQotICAgIHZhciBicyA9IG5ldyB0ci5jLkJydXNoaW5nU3RhdGUoKTsKLSAgICBicy5zZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKFttLnNBXSk7Ci0KLSAgICB2YXIgYnMyID0gYnMuY2xvbmUoKTsKLQotICAgIGJzLmFwcGx5VG9Nb2RlbFNlbGVjdGlvblN0YXRlKG0pOwotICAgIGFzc2VydC5lcXVhbChtLnNBLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCk7Ci0gICAgYnMudHJhbnNmZXJNb2RlbE93bmVyc2hpcFRvQ2xvbmUoYnMyKTsKLSAgICBhc3NlcnQuaXNGYWxzZShicy5pc0FwcGxpZWRUb01vZGVsKTsKLSAgICBhc3NlcnQuaXNUcnVlKGJzMi5pc0FwcGxpZWRUb01vZGVsKTsKLQotICAgIGJzMi51bmFwcGx5RnJvbU1vZGVsU2VsZWN0aW9uU3RhdGUoKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zQS5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuTk9ORSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc0Iuc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLk5PTkUpOwotICAgIGFzc2VydC5lcXVhbChtLnNDLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5OT05FKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZXF1YWxpdHknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ld1NpbXBsZU1vZGVsKCk7Ci0KLSAgICB2YXIgYnMgPSBuZXcgdHIuYy5CcnVzaGluZ1N0YXRlKCk7Ci0gICAgYnMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihbbS5zQV0pOwotICAgIGJzLmZpbmRNYXRjaGVzID0gbmV3IFNlbGVjdGlvbihbbS5zQl0pOwotICAgIGJzLmFwcGx5VG9Nb2RlbFNlbGVjdGlvblN0YXRlID0gbmV3IFNlbGVjdGlvbihbbS5zQ10pOwotCi0gICAgLy8gQ2xvbmUgZXF1YWxpdHksIGJ1dCB3aXRoIHNoYXJlZCByZWZzLgotICAgIHZhciBiczIgPSBicy5jbG9uZSgpOwotICAgIGFzc2VydC5pc1RydWUoYnMuZXF1YWxzKGJzMikpOwotCi0gICAgLy8gU2FtZSB2YWx1ZSwgZGlmZmVyZW50IHJlZnMuCi0gICAgYnMyLnNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oW20uc0FdKTsKLSAgICBhc3NlcnQuaXNUcnVlKGJzLmVxdWFscyhiczIpKTsKLQotICAgIC8vIERpZmZlcmVudCBhY3R1YWwgdmFsdWVzLgotICAgIGJzMi5zZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKFttLnNCXSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYnMuZXF1YWxzKGJzMikpOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9kcmF3X2hlbHBlcnMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9kcmF3X2hlbHBlcnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjViY2VlMS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZHJhd19oZWxwZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9ldmVudF9wcmVzZW50ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZWxpZGVkX2NhY2hlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHZhcmlvdXMgaGVscGVyIG1ldGhvZHMgZm9yIGRyYXdpbmcgdG8gYSBwcm92aWRlZAotICogY2FudmFzLgotICovCi10ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgewotICB2YXIgZWxpZGVkVGl0bGVDYWNoZSA9IG5ldyB0ci5jLkVsaWRlZFRpdGxlQ2FjaGUoKTsKLSAgdmFyIHBhbGV0dGUgPSB0ci5iLnVpLmdldENvbG9yUGFsZXR0ZSgpOwotICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB0ci5jLkV2ZW50UHJlc2VudGVyOwotICB2YXIgYmxhY2tDb2xvcklkID0gdHIuYi51aS5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdibGFjaycpOwotCi0gIC8qKgotICAgKiBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gYWxsb3cgZm9yIGNvbnNpc3RlbnQgc3R5bGUgVUkgZWxlbWVudHMuCi0gICAqIFRocmVhZCB0aW1lIHZpc3VhbGlzYXRpb24gdXNlcyBhIHNtYWxsZXIgcmVjdGFuZ2xlIHRoYXQgaGFzIHRoaXMgaGVpZ2h0LgotICAgKiBAY29uc3QKLSAgICovCi0gIHZhciBUSElOX1NMSUNFX0hFSUdIVCA9IDQ7Ci0KLSAgLyoqCi0gICAqIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBmb3IgcGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnMgd2hlbiBkcmF3aW5nIGxhcmdlCi0gICAqIHpvb21lZCBvdXQgdHJhY2VzIHRoYXQgZmVhdHVyZSBjcHUgdGltZSBpbiB0aGUgc2xpY2VzLiBJZiB0aGUgd2FpdGluZwotICAgKiB3aWR0aCBpcyBsZXNzIHRoYW4gdGhlIHRocmVzaG9sZCwgd2Ugb25seSBkcmF3IHRoZSByZWN0YW5nbGUgYXMgYSBzb2xpZC4KLSAgICogQGNvbnN0Ci0gICAqLwotICB2YXIgU0xJQ0VfV0FJVElOR19XSURUSF9EUkFXX1RIUkVTSE9MRCA9IDM7Ci0KLSAgLyoqCi0gICAqIElmIHRoZSBzbGljZSBoYXMgbW9zdGx5IGJlZW4gd2FpdGluZyB0byBiZSBzY2hlZHVsZWQgb24gdGhlIGNwdSwgdGhlCi0gICAqIHdhbGwgY2xvY2sgd2lsbCBiZSBmYXIgZ3JlYXRlciB0aGFuIHRoZSBjcHUgY2xvY2suIERyYXcgdGhlIHNsaWNlCi0gICAqIG9ubHkgYXMgYW4gaWRsZSBzbGljZSwgaWYgdGhlIGFjdGl2ZSB3aWR0aCBpcyBub3QgdGhpY2tlciB0aGFuIHRoZQotICAgKiB0aHJlc2hvbGQuCi0gICAqIEBjb25zdAotICAgKi8KLSAgdmFyIFNMSUNFX0FDVElWRV9XSURUSF9EUkFXX1RIUkVTSE9MRCA9IDE7Ci0KLSAgLyoqCi0gICAqIFNob3VsZCB3ZSBlbGlkZSB0ZXh0IG9uIHRyYWNlIGxhYmVscz8KLSAgICogV2l0aG91dCBlbGlkaW5nLCB0ZXh0IHRoYXQgaXMgdG9vIHdpZGUgaXNuJ3QgZHJhd24gYXQgYWxsLgotICAgKiBEaXNhYmxlIGlmIHlvdSBmZWVsIHRoaXMgY2F1c2VzIGEgcGVyZm9ybWFuY2UgcHJvYmxlbS4KLSAgICogVGhpcyBpcyBhIGRlZmF1bHQgdmFsdWUgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0cmFja3MgZm9yIHRlc3RpbmcuCi0gICAqIEBjb25zdAotICAgKi8KLSAgdmFyIFNIT1VMRF9FTElERV9URVhUID0gdHJ1ZTsKLQotICAvKioKLSAgICogRHJhdyB0aGUgZGVmaW5lIGxpbmUgaW50byB8Y3R4fC4KLSAgICoKLSAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggVGhlIGNvbnRleHQgdG8gZHJhdyBpbnRvLgotICAgKiBAcGFyYW0ge2Zsb2F0fSB4MSBUaGUgc3RhcnQgeCBwb3NpdGlvbiBvZiB0aGUgbGluZS4KLSAgICogQHBhcmFtIHtmbG9hdH0geTEgVGhlIHN0YXJ0IHkgcG9zaXRpb24gb2YgdGhlIGxpbmUuCi0gICAqIEBwYXJhbSB7ZmxvYXR9IHgyIFRoZSBlbmQgeCBwb3NpdGlvbiBvZiB0aGUgbGluZS4KLSAgICogQHBhcmFtIHtmbG9hdH0geTIgVGhlIGVuZCB5IHBvc2l0aW9uIG9mIHRoZSBsaW5lLgotICAgKi8KLSAgZnVuY3Rpb24gZHJhd0xpbmUoY3R4LCB4MSwgeTEsIHgyLCB5MikgewotICAgIGN0eC5tb3ZlVG8oeDEsIHkxKTsKLSAgICBjdHgubGluZVRvKHgyLCB5Mik7Ci0gIH0KLQotICAvKioKLSAgICogRHJhdyB0aGUgZGVmaW5lZCB0cmlhbmdsZSBpbnRvIHxjdHh8LgotICAgKgotICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCBUaGUgY29udGV4dCB0byBkcmF3IGludG8uCi0gICAqIEBwYXJhbSB7ZmxvYXR9IHgxIFRoZSBmaXJzdCBjb3JuZXIgeC4KLSAgICogQHBhcmFtIHtmbG9hdH0geTEgVGhlIGZpcnN0IGNvcm5lciB5LgotICAgKiBAcGFyYW0ge2Zsb2F0fSB4MiBUaGUgc2Vjb25kIGNvcm5lciB4LgotICAgKiBAcGFyYW0ge2Zsb2F0fSB5MiBUaGUgc2Vjb25kIGNvcm5lciB5LgotICAgKiBAcGFyYW0ge2Zsb2F0fSB4MyBUaGUgdGhpcmQgY29ybmVyIHguCi0gICAqIEBwYXJhbSB7ZmxvYXR9IHkzIFRoZSB0aGlyZCBjb3JuZXIgeS4KLSAgICovCi0gIGZ1bmN0aW9uIGRyYXdUcmlhbmdsZShjdHgsIHgxLCB5MSwgeDIsIHkyLCB4MywgeTMpIHsKLSAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgY3R4Lm1vdmVUbyh4MSwgeTEpOwotICAgIGN0eC5saW5lVG8oeDIsIHkyKTsKLSAgICBjdHgubGluZVRvKHgzLCB5Myk7Ci0gICAgY3R4LmNsb3NlUGF0aCgpOwotICB9Ci0KLSAgLyoqCi0gICAqIERyYXcgYW4gYXJyb3cgaW50byB8Y3R4fC4KLSAgICoKLSAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggVGhlIGNvbnRleHQgdG8gZHJhdyBpbnRvLgotICAgKiBAcGFyYW0ge2Zsb2F0fSB4MSBUaGUgc2hhZnQgeC4KLSAgICogQHBhcmFtIHtmbG9hdH0geTEgVGhlIHNoYWZ0IHkuCi0gICAqIEBwYXJhbSB7ZmxvYXR9IHgyIFRoZSBoZWFkIHguCi0gICAqIEBwYXJhbSB7ZmxvYXR9IHkyIFRoZSBoZWFkIHkuCi0gICAqIEBwYXJhbSB7ZmxvYXR9IGFycm93TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGhlYWQuCi0gICAqIEBwYXJhbSB7ZmxvYXR9IGFycm93V2lkdGggVGhlIHdpZHRoIG9mIHRoZSBoZWFkLgotICAgKi8KLSAgZnVuY3Rpb24gZHJhd0Fycm93KGN0eCwgeDEsIHkxLCB4MiwgeTIsIGFycm93TGVuZ3RoLCBhcnJvd1dpZHRoKSB7Ci0gICAgdmFyIGR4ID0geDIgLSB4MTsKLSAgICB2YXIgZHkgPSB5MiAtIHkxOwotICAgIHZhciBsZW4gPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpOwotICAgIHZhciBwZXJjID0gKGxlbiAtIGFycm93TGVuZ3RoKSAvIGxlbjsKLSAgICB2YXIgYnggPSB4MSArIHBlcmMgKiBkeDsKLSAgICB2YXIgYnkgPSB5MSArIHBlcmMgKiBkeTsKLSAgICB2YXIgdXggPSBkeCAvIGxlbjsKLSAgICB2YXIgdXkgPSBkeSAvIGxlbjsKLSAgICB2YXIgYXggPSB1eSAqIGFycm93V2lkdGg7Ci0gICAgdmFyIGF5ID0gLXV4ICogYXJyb3dXaWR0aDsKLQotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBkcmF3TGluZShjdHgsIHgxLCB5MSwgeDIsIHkyKTsKLSAgICBjdHguc3Ryb2tlKCk7Ci0KLSAgICBkcmF3VHJpYW5nbGUoY3R4LAotICAgICAgICBieCArIGF4LCBieSArIGF5LAotICAgICAgICB4MiwgeTIsCi0gICAgICAgIGJ4IC0gYXgsIGJ5IC0gYXkpOwotICAgIGN0eC5maWxsKCk7Ci0gIH0KLQotICAvKioKLSAgICogRHJhdyB0aGUgcHJvdmlkZWQgc2xpY2VzIHRvIHRoZSBzY3JlZW4uCi0gICAqCi0gICAqIEVhY2ggb2YgdGhlIGVsZW1lbnRzIGluIHxzbGljZXN8IG11c3QgcHJvdmlkZSB0aGUgZm9sbG93IG1ldGhvZHM6Ci0gICAqICAgKiBzdGFydAotICAgKiAgICogZHVyYXRpb24KLSAgICogICAqIGNvbG9ySWQKLSAgICogICAqIHNlbGVjdGVkCi0gICAqCi0gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IFRoZSBjYW52YXMgY29udGV4dC4KLSAgICogQHBhcmFtIHtUaW1lbGluZURyYXdUcmFuc2Zvcm19IGR0IFRoZSBkcmF3IHRyYW5zZm9ybS4KLSAgICogQHBhcmFtIHtmbG9hdH0gdmlld0xXb3JsZCBUaGUgbGVmdCBtb3N0IHBvaW50IG9mIHRoZSB3b3JsZCB2aWV3cG9ydC4KLSAgICogQHBhcmFtIHtmbG9hdH0gdmlld1JXb3JsZCBUaGUgcmlnaHQgbW9zdCBwb2ludCBvZiB0aGUgd29ybGQgdmlld3BvcnQuCi0gICAqIEBwYXJhbSB7ZmxvYXR9IHZpZXdIZWlnaHQgVGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQuCi0gICAqIEBwYXJhbSB7QXJyYXl9IHNsaWNlcyBUaGUgc2xpY2VzIHRvIGRyYXcuCi0gICAqIEBwYXJhbSB7Ym9vbH0gYXN5bmMgV2hldGhlciB0aGUgc2xpY2VzIGFyZSBkcmF3biB3aXRoIGFzeW5jIHN0eWxlLgotICAgKi8KLSAgZnVuY3Rpb24gZHJhd1NsaWNlcyhjdHgsIGR0LCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkLCB2aWV3SGVpZ2h0LCBzbGljZXMsCi0gICAgICAgICAgICAgICAgICAgICAgYXN5bmMpIHsKLSAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgdmFyIHBpeFdpZHRoID0gZHQueFZpZXdWZWN0b3JUb1dvcmxkKDEpOwotICAgIHZhciBoZWlnaHQgPSB2aWV3SGVpZ2h0ICogcGl4ZWxSYXRpbzsKLQotICAgIHZhciBkYXJrUmVjdEhlaWdodCA9IFRISU5fU0xJQ0VfSEVJR0hUICogcGl4ZWxSYXRpbzsKLQotICAgIC8vIE5vdCBlbm91Z2ggc3BhY2UgZm9yIGJvdGggY29sb3JzLCB1c2UgbGlnaHQgY29sb3Igb25seS4KLSAgICBpZiAoaGVpZ2h0IDwgZGFya1JlY3RIZWlnaHQpCi0gICAgICBkYXJrUmVjdEhlaWdodCA9IDA7Ci0KLSAgICB2YXIgbGlnaHRSZWN0SGVpZ2h0ID0gaGVpZ2h0IC0gZGFya1JlY3RIZWlnaHQ7Ci0KLSAgICAvLyBCZWdpbiByZW5kZXJpbmcgaW4gd29ybGQgc3BhY2UuCi0gICAgY3R4LnNhdmUoKTsKLSAgICBkdC5hcHBseVRyYW5zZm9ybVRvQ2FudmFzKGN0eCk7Ci0KLSAgICB2YXIgcmVjdCA9IG5ldyB0ci5jLkZhc3RSZWN0UmVuZGVyZXIoCi0gICAgICAgIGN0eCwgMiAqIHBpeFdpZHRoLCAyICogcGl4V2lkdGgsIHBhbGV0dGUpOwotICAgIHJlY3Quc2V0WWFuZEgoMCwgaGVpZ2h0KTsKLQotICAgIHZhciBsb3dTbGljZSA9IHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSgKLSAgICAgICAgc2xpY2VzLAotICAgICAgICBmdW5jdGlvbihzbGljZSkgeyByZXR1cm4gc2xpY2Uuc3RhcnQgKyBzbGljZS5kdXJhdGlvbjsgfSwKLSAgICAgICAgdmlld0xXb3JsZCk7Ci0KLSAgICB2YXIgaGFkVG9wTGV2ZWwgPSBmYWxzZTsKLQotICAgIGZvciAodmFyIGkgPSBsb3dTbGljZTsgaSA8IHNsaWNlcy5sZW5ndGg7ICsraSkgewotICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOwotICAgICAgdmFyIHggPSBzbGljZS5zdGFydDsKLSAgICAgIGlmICh4ID4gdmlld1JXb3JsZCkKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgIHZhciB3ID0gcGl4V2lkdGg7Ci0gICAgICBpZiAoc2xpY2UuZHVyYXRpb24gPiAwKSB7Ci0gICAgICAgIHcgPSBNYXRoLm1heChzbGljZS5kdXJhdGlvbiwgMC4wMDAwMDEpOwotICAgICAgICBpZiAodyA8IHBpeFdpZHRoKQotICAgICAgICAgIHcgPSBwaXhXaWR0aDsKLSAgICAgIH0KLQotICAgICAgdmFyIGNvbG9ySWQgPSBFdmVudFByZXNlbnRlci5nZXRTbGljZUNvbG9ySWQoc2xpY2UpOwotICAgICAgdmFyIGFscGhhID0gRXZlbnRQcmVzZW50ZXIuZ2V0U2xpY2VBbHBoYShzbGljZSwgYXN5bmMpOwotICAgICAgdmFyIGxpZ2h0QWxwaGEgPSBhbHBoYSAqIDAuNzA7Ci0KLSAgICAgIGlmIChzbGljZS5pc1RvcExldmVsKSB7Ci0gICAgICAgIHJlY3Quc2V0WWFuZEgoMywgaGVpZ2h0IC0gMyk7Ci0gICAgICAgIGhhZFRvcExldmVsID0gdHJ1ZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlY3Quc2V0WWFuZEgoMCwgaGVpZ2h0KTsKLSAgICAgIH0KLQotICAgICAgLy8gSWYgY3B1RHVyYXRpb24gaXMgYXZhaWxhYmxlLCBkcmF3IHJlY3RhbmdsZXMgcHJvcG9ydGlvbmFsIHRvIHRoZQotICAgICAgLy8gYW1vdW50IG9mIGNwdSB0aW1lIHRha2VuLgotICAgICAgaWYgKCFzbGljZS5jcHVEdXJhdGlvbikgewotICAgICAgICAvLyBObyBjcHVEdXJhdGlvbiBhdmFpbGFibGUsIGRyYXcgdXNpbmcgb25seSBvbmUgYWxwaGEuCi0gICAgICAgIHJlY3QuZmlsbFJlY3QoeCwgdywgY29sb3JJZCwgYWxwaGEpOwotICAgICAgICBjb250aW51ZTsKLSAgICAgIH0KLQotICAgICAgdmFyIGFjdGl2ZVdpZHRoID0gdyAqIChzbGljZS5jcHVEdXJhdGlvbiAvIHNsaWNlLmR1cmF0aW9uKTsKLSAgICAgIHZhciB3YWl0aW5nV2lkdGggPSB3IC0gYWN0aXZlV2lkdGg7Ci0KLSAgICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIHNjcmVlbiBzcGFjZSB0byBkcmF3IHRoZSB3aG9sZSBzbGljZSwgd2l0aAotICAgICAgLy8gYm90aCBjb2xvciB0b25lcy4KLSAgICAgIC8vCi0gICAgICAvLyBUcnVuY2F0ZSB0aGUgYWN0aXZlV2lkdGggdG8gMCBpZiBpdCBpcyBsZXNzIHRoYW4gJ3RocmVzaG9sZCcgcGl4ZWxzLgotICAgICAgaWYgKGFjdGl2ZVdpZHRoIDwgU0xJQ0VfQUNUSVZFX1dJRFRIX0RSQVdfVEhSRVNIT0xEICogcGl4V2lkdGgpIHsKLSAgICAgICAgYWN0aXZlV2lkdGggPSAwOwotICAgICAgICB3YWl0aW5nV2lkdGggPSB3OwotICAgICAgfQotCi0gICAgICAvLyBUcnVuY2F0ZSB0aGUgd2FpdGluZ1dpZHRoIHRvIDAgaWYgaXQgaXMgbGVzcyB0aGFuICd0aHJlc2hvbGQnIHBpeGVscy4KLSAgICAgIGlmICh3YWl0aW5nV2lkdGggPCBTTElDRV9XQUlUSU5HX1dJRFRIX0RSQVdfVEhSRVNIT0xEICogcGl4V2lkdGgpIHsKLSAgICAgICAgYWN0aXZlV2lkdGggPSB3OwotICAgICAgICB3YWl0aW5nV2lkdGggPSAwOwotICAgICAgfQotCi0gICAgICAvLyBXZSBub3cgZHJhdyB0aGUgdHdvIHJlY3RhbmdsZXMgbWFraW5nIHVwIHRoZSBldmVudCBzbGljZS4KLSAgICAgIC8vIE5PVEU6IFRoZSBpZiBzdGF0ZW1lbnRzIGFyZSBuZWNlc3NhcnkgZm9yIHBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zLgotICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gZm9yY2UgZHJhd3MsIGlmIHRoZSB3aWR0aCBvZiB0aGUgcmVjdGFuZ2xlIGlzIDAuCi0gICAgICAvLwotICAgICAgLy8gRmlyc3QgZHJhdyB0aGUgc29saWQgY29sb3IsIHJlcHJlc2VudGluZyB0aGUgJ2FjdGl2ZScgcGFydC4KLSAgICAgIGlmIChhY3RpdmVXaWR0aCA+IDApIHsKLSAgICAgICAgcmVjdC5maWxsUmVjdCh4LCBhY3RpdmVXaWR0aCwgY29sb3JJZCwgYWxwaGEpOwotICAgICAgfQotCi0gICAgICAvLyBOZXh0IGRyYXcgdGhlIHR3byB0b25lZCAnaWRsZScgcGFydC4KLSAgICAgIC8vIE5PVEU6IFN1YnN0cmFjdGluZyBwaXhXaWR0aCBhbmQgZHJhd2luZyBvbmUgZXh0cmEgcGl4ZWwgaXMgZG9uZSB0bwotICAgICAgLy8gcHJldmVudCBkcmF3aW5nIGFydGlmYWN0cy4gV2l0aG91dCBpdCwgdGhlIHR3byBwYXJ0cyBvZiB0aGUgc2xpY2UsCi0gICAgICAvLyAoJ2FjdGl2ZScgYW5kICdpZGxlJykgbWF5IGFwcGVhciBzcGxpdCBhcGFydC4KLSAgICAgIGlmICh3YWl0aW5nV2lkdGggPiAwKSB7Ci0gICAgICAgIC8vIEZpcnN0IGRyYXcgdGhlIGxpZ2h0IHRvbmVkIHRvcCBwYXJ0LgotICAgICAgICByZWN0LnNldFlhbmRIKDAsIGxpZ2h0UmVjdEhlaWdodCk7Ci0gICAgICAgIHJlY3QuZmlsbFJlY3QoeCArIGFjdGl2ZVdpZHRoIC0gcGl4V2lkdGgsCi0gICAgICAgICAgICB3YWl0aW5nV2lkdGggKyBwaXhXaWR0aCwgY29sb3JJZCwgbGlnaHRBbHBoYSk7Ci0gICAgICAgIC8vIFRoZW4gdGhlIHNvbGlkIGJvdHRvbSBoYWxmLgotICAgICAgICByZWN0LnNldFlhbmRIKGxpZ2h0UmVjdEhlaWdodCwgZGFya1JlY3RIZWlnaHQpOwotICAgICAgICByZWN0LmZpbGxSZWN0KHggKyBhY3RpdmVXaWR0aCAtIHBpeFdpZHRoLAotICAgICAgICAgICAgd2FpdGluZ1dpZHRoICsgcGl4V2lkdGgsIGNvbG9ySWQsIGFscGhhKTsKLSAgICAgICAgLy8gUmVzZXQgZm9yIHRoZSBuZXh0IHNsaWNlLgotICAgICAgICByZWN0LnNldFlhbmRIKDAsIGhlaWdodCk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJlY3QuZmx1c2goKTsKLQotICAgIGlmIChhc3luYyAmJiBoYWRUb3BMZXZlbCkgewotICAgICAgLy8gRHJhdyBhIHRvcCBib3JkZXIgb3ZlciBhc3luYyBzbGljZXMgaW4gb3JkZXIgdG8gdmlzdWFsbHkgc2VwYXJhdGUKLSAgICAgIC8vIHRoZW0gZnJvbSBldmVudHMgYWJvdmUgaXQuCi0gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS90cmFjZS12aWV3ZXIvaXNzdWVzLzcyNS4KLSAgICAgIHJlY3Quc2V0WWFuZEgoMiwgMSk7Ci0gICAgICBmb3IgKHZhciBpID0gbG93U2xpY2U7IGkgPCBzbGljZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOwotICAgICAgICB2YXIgeCA9IHNsaWNlLnN0YXJ0OwotICAgICAgICBpZiAoeCA+IHZpZXdSV29ybGQpCi0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgaWYgKCFzbGljZS5pc1RvcExldmVsKQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHZhciB3ID0gcGl4V2lkdGg7Ci0gICAgICAgIGlmIChzbGljZS5kdXJhdGlvbiA+IDApIHsKLSAgICAgICAgICB3ID0gTWF0aC5tYXgoc2xpY2UuZHVyYXRpb24sIDAuMDAwMDAxKTsKLSAgICAgICAgICBpZiAodyA8IHBpeFdpZHRoKQotICAgICAgICAgICAgdyA9IHBpeFdpZHRoOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVjdC5maWxsUmVjdCh4LCB3LCBibGFja0NvbG9ySWQsIDAuNyk7Ci0gICAgICB9Ci0gICAgICByZWN0LmZsdXNoKCk7Ci0gICAgfQotCi0gICAgY3R4LnJlc3RvcmUoKTsKLSAgfQotCi0gIC8qKgotICAgKiBEcmF3IHRoZSBwcm92aWRlZCBpbnN0YW50IHNsaWNlcyBhcyBsaW5lcyB0byB0aGUgc2NyZWVuLgotICAgKgotICAgKiBFYWNoIG9mIHRoZSBlbGVtZW50cyBpbiB8c2xpY2VzfCBtdXN0IHByb3ZpZGUgdGhlIGZvbGxvdyBtZXRob2RzOgotICAgKiAgICogc3RhcnQKLSAgICogICAqIGR1cmF0aW9uIHdpdGggdmFsdWUgb2YgMC4KLSAgICogICAqIGNvbG9ySWQKLSAgICogICAqIHNlbGVjdGVkCi0gICAqCi0gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IFRoZSBjYW52YXMgY29udGV4dC4KLSAgICogQHBhcmFtIHtUaW1lbGluZURyYXdUcmFuc2Zvcm19IGR0IFRoZSBkcmF3IHRyYW5zZm9ybS4KLSAgICogQHBhcmFtIHtmbG9hdH0gdmlld0xXb3JsZCBUaGUgbGVmdCBtb3N0IHBvaW50IG9mIHRoZSB3b3JsZCB2aWV3cG9ydC4KLSAgICogQHBhcmFtIHtmbG9hdH0gdmlld1JXb3JsZCBUaGUgcmlnaHQgbW9zdCBwb2ludCBvZiB0aGUgd29ybGQgdmlld3BvcnQuCi0gICAqIEBwYXJhbSB7ZmxvYXR9IHZpZXdIZWlnaHQgVGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQuCi0gICAqIEBwYXJhbSB7QXJyYXl9IHNsaWNlcyBUaGUgc2xpY2VzIHRvIGRyYXcuCi0gICAqIEBwYXJhbSB7TnVtZXJ9IGxpbmVXaWR0aEluUGl4ZWxzIFRoZSB3aWR0aCBvZiB0aGUgbGluZXMuCi0gICAqLwotICBmdW5jdGlvbiBkcmF3SW5zdGFudFNsaWNlc0FzTGluZXMoCi0gICAgICBjdHgsIGR0LCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkLCB2aWV3SGVpZ2h0LCBzbGljZXMsIGxpbmVXaWR0aEluUGl4ZWxzKSB7Ci0gICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgIHZhciBoZWlnaHQgPSB2aWV3SGVpZ2h0ICogcGl4ZWxSYXRpbzsKLQotICAgIHZhciBwaXhXaWR0aCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTsKLQotICAgIC8vIEJlZ2luIHJlbmRlcmluZyBpbiB3b3JsZCBzcGFjZS4KLSAgICBjdHguc2F2ZSgpOwotICAgIGN0eC5saW5lV2lkdGggPSBwaXhXaWR0aCAqIGxpbmVXaWR0aEluUGl4ZWxzICogcGl4ZWxSYXRpbzsKLSAgICBkdC5hcHBseVRyYW5zZm9ybVRvQ2FudmFzKGN0eCk7Ci0gICAgY3R4LmJlZ2luUGF0aCgpOwotCi0gICAgdmFyIGxvd1NsaWNlID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAotICAgICAgICBzbGljZXMsCi0gICAgICAgIGZ1bmN0aW9uKHNsaWNlKSB7IHJldHVybiBzbGljZS5zdGFydDsgfSwKLSAgICAgICAgdmlld0xXb3JsZCk7Ci0KLSAgICBmb3IgKHZhciBpID0gbG93U2xpY2U7IGkgPCBzbGljZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgIHZhciBzbGljZSA9IHNsaWNlc1tpXTsKLSAgICAgIHZhciB4ID0gc2xpY2Uuc3RhcnQ7Ci0gICAgICBpZiAoeCA+IHZpZXdSV29ybGQpCi0gICAgICAgIGJyZWFrOwotCi0gICAgICBjdHguc3Ryb2tlU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRJbnN0YW50U2xpY2VDb2xvcihzbGljZSk7Ci0KLSAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAgIGN0eC5tb3ZlVG8oeCwgMCk7Ci0gICAgICBjdHgubGluZVRvKHgsIGhlaWdodCk7Ci0gICAgICBjdHguc3Ryb2tlKCk7Ci0gICAgfQotICAgIGN0eC5yZXN0b3JlKCk7Ci0gIH0KLQotICAvKioKLSAgICogRHJhd3MgdGhlIGxhYmVscyBmb3IgdGhlIGdpdmVuIHNsaWNlcy4KLSAgICoKLSAgICogVGhlIHxzbGljZXN8IGFycmF5IG11c3QgY29udGFpbiBvYmplY3RzIHdpdGggdGhlIGZvbGxvd2luZyBBUEk6Ci0gICAqICAgKiBzdGFydAotICAgKiAgICogZHVyYXRpb24KLSAgICogICAqIHRpdGxlCi0gICAqICAgKiBkaWROb3RGaW5pc2ggKG9wdGlvbmFsKQotICAgKgotICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCBUaGUgZ3JhcGhpY3MgY29udGV4dC4KLSAgICogQHBhcmFtIHtUaW1lbGluZURyYXdUcmFuc2Zvcm19IGR0IFRoZSBkcmF3IHRyYW5zZm9ybS4KLSAgICogQHBhcmFtIHtmbG9hdH0gdmlld0xXb3JsZCBUaGUgbGVmdCBtb3N0IHBvaW50IG9mIHRoZSB3b3JsZCB2aWV3cG9ydC4KLSAgICogQHBhcmFtIHtmbG9hdH0gdmlld1JXb3JsZCBUaGUgcmlnaHQgbW9zdCBwb2ludCBvZiB0aGUgd29ybGQgdmlld3BvcnQuCi0gICAqIEBwYXJhbSB7QXJyYXl9IHNsaWNlcyBUaGUgc2xpY2VzIHRvIGxhYmVsLgotICAgKiBAcGFyYW0ge2Jvb2x9IGFzeW5jIFdoZXRoZXIgdGhlIHNsaWNlIGxhYmVscyBhcmUgZHJhd24gd2l0aCBhc3luYyBzdHlsZS4KLSAgICogQHBhcmFtIHtmbG9hdH0gZm9udFNpemUgVGhlIGZvbnQgc2l6ZS4KLSAgICogQHBhcmFtIHtmbG9hdH0geU9mZnNldCBUaGUgZm9udCBvZmZzZXQuCi0gICAqLwotICBmdW5jdGlvbiBkcmF3TGFiZWxzKGN0eCwgZHQsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsIHNsaWNlcywgYXN5bmMsCi0gICAgICAgICAgICAgICAgICAgICAgZm9udFNpemUsIHlPZmZzZXQpIHsKLSAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgdmFyIHBpeFdpZHRoID0gZHQueFZpZXdWZWN0b3JUb1dvcmxkKDEpOwotCi0gICAgY3R4LnNhdmUoKTsKLQotICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJzsKLSAgICBjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7Ci0gICAgY3R4LmZvbnQgPSAoZm9udFNpemUgKiBwaXhlbFJhdGlvKSArICdweCBzYW5zLXNlcmlmJzsKLQotICAgIGlmIChhc3luYykKLSAgICAgIGN0eC5mb250ID0gJ2l0YWxpYyAnICsgY3R4LmZvbnQ7Ci0KLSAgICB2YXIgY1kgPSB5T2Zmc2V0ICogcGl4ZWxSYXRpbzsKLQotICAgIHZhciBsb3dTbGljZSA9IHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSgKLSAgICAgICAgc2xpY2VzLAotICAgICAgICBmdW5jdGlvbihzbGljZSkgeyByZXR1cm4gc2xpY2Uuc3RhcnQgKyBzbGljZS5kdXJhdGlvbjsgfSwKLSAgICAgICAgdmlld0xXb3JsZCk7Ci0KLSAgICAvLyBEb24ndCByZW5kZXIgdGV4dCB1bnRpbCB1bnRpbCBpdCBpcyAyMHB4IHdpZGUKLSAgICB2YXIgcXVpY2tEaXNjYXJkVGhyZXNzaG9sZCA9IHBpeFdpZHRoICogMjA7Ci0gICAgZm9yICh2YXIgaSA9IGxvd1NsaWNlOyBpIDwgc2xpY2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICB2YXIgc2xpY2UgPSBzbGljZXNbaV07Ci0gICAgICBpZiAoc2xpY2Uuc3RhcnQgPiB2aWV3UldvcmxkKQotICAgICAgICBicmVhazsKLQotICAgICAgaWYgKHNsaWNlLmR1cmF0aW9uIDw9IHF1aWNrRGlzY2FyZFRocmVzc2hvbGQpCi0gICAgICAgIGNvbnRpbnVlOwotCi0gICAgICB2YXIgdGl0bGUgPSBzbGljZS50aXRsZSArCi0gICAgICAgICAgKHNsaWNlLmRpZE5vdEZpbmlzaCA/ICcgKERpZCBOb3QgRmluaXNoKScgOiAnJyk7Ci0KLSAgICAgIHZhciBkcmF3blRpdGxlID0gdGl0bGU7Ci0gICAgICB2YXIgZHJhd25XaWR0aCA9IGVsaWRlZFRpdGxlQ2FjaGUubGFiZWxXaWR0aChjdHgsIGRyYXduVGl0bGUpOwotICAgICAgdmFyIGZ1bGxMYWJlbFdpZHRoID0gZWxpZGVkVGl0bGVDYWNoZS5sYWJlbFdpZHRoV29ybGQoCi0gICAgICAgICAgY3R4LCBkcmF3blRpdGxlLCBwaXhXaWR0aCk7Ci0gICAgICBpZiAoU0hPVUxEX0VMSURFX1RFWFQgJiYgZnVsbExhYmVsV2lkdGggPiBzbGljZS5kdXJhdGlvbikgewotICAgICAgICB2YXIgZWxpZGVkVmFsdWVzID0gZWxpZGVkVGl0bGVDYWNoZS5nZXQoCi0gICAgICAgICAgICBjdHgsIHBpeFdpZHRoLAotICAgICAgICAgICAgZHJhd25UaXRsZSwgZHJhd25XaWR0aCwKLSAgICAgICAgICAgIHNsaWNlLmR1cmF0aW9uKTsKLSAgICAgICAgZHJhd25UaXRsZSA9IGVsaWRlZFZhbHVlcy5zdHJpbmc7Ci0gICAgICAgIGRyYXduV2lkdGggPSBlbGlkZWRWYWx1ZXMud2lkdGg7Ci0gICAgICB9Ci0KLSAgICAgIGlmIChkcmF3bldpZHRoICogcGl4V2lkdGggPCBzbGljZS5kdXJhdGlvbikgewotICAgICAgICBjdHguZmlsbFN0eWxlID0gRXZlbnRQcmVzZW50ZXIuZ2V0VGV4dENvbG9yKHNsaWNlKTsKLSAgICAgICAgdmFyIGNYID0gZHQueFdvcmxkVG9WaWV3KHNsaWNlLnN0YXJ0ICsgMC41ICogc2xpY2UuZHVyYXRpb24pOwotICAgICAgICBjdHguZmlsbFRleHQoZHJhd25UaXRsZSwgY1gsIGNZLCBkcmF3bldpZHRoKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgY3R4LnJlc3RvcmUoKTsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgZHJhd1NsaWNlczogZHJhd1NsaWNlcywKLSAgICBkcmF3SW5zdGFudFNsaWNlc0FzTGluZXM6IGRyYXdJbnN0YW50U2xpY2VzQXNMaW5lcywKLSAgICBkcmF3TGFiZWxzOiBkcmF3TGFiZWxzLAotCi0gICAgZHJhd0xpbmU6IGRyYXdMaW5lLAotICAgIGRyYXdUcmlhbmdsZTogZHJhd1RyaWFuZ2xlLAotICAgIGRyYXdBcnJvdzogZHJhd0Fycm93LAotCi0gICAgZWxpZGVkVGl0bGVDYWNoZV86IGVsaWRlZFRpdGxlQ2FjaGUsCi0KLSAgICBUSElOX1NMSUNFX0hFSUdIVDogVEhJTl9TTElDRV9IRUlHSFQKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZWxpZGVkX2NhY2hlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZWxpZGVkX2NhY2hlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5NzFhZmYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2VsaWRlZF9jYWNoZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgYSBjYWNoaW5nIGxheWVyIGZvciBlbGlkZWQgdGV4dCB2YWx1ZXMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBDYWNoZSBmb3IgZWxpZGVkIHN0cmluZ3MuCi0gICAqIE1vdmVkIGZyb20gdGhlIEVsaWRlZFRpdGxlQ2FjaGUgcHJvdG95cGUgdG8gYSAiZ2xvYmFsIiBmb3Igc3BlZWQKLSAgICogKHZhcmlhYmxlIHJlZmVyZW5jZSBpcyAxMDB4IGZhc3RlcikuCi0gICAqICAga2V5OiBTdHJpbmcgd2Ugd2lzaCB0byBlbGlkZS4KLSAgICogICB2YWx1ZTogQW5vdGhlciBkaWN0IHdob3NlIGtleSBpcyB3aWR0aAotICAgKiAgICAgYW5kIHZhbHVlIGlzIGFuIEVsaWRlZFN0cmluZ1dpZHRoUGFpci4KLSAgICovCi0gIHZhciBlbGlkZWRUaXRsZUNhY2hlRGljdCA9IHt9OwotICB2YXIgZWxpZGVkVGl0bGVDYWNoZSA9IG5ldyBFbGlkZWRUaXRsZUNhY2hlKCk7Ci0KLSAgLyoqCi0gICAqIEEgY2FjaGUgZm9yIGVsaWRlZCBzdHJpbmdzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEVsaWRlZFRpdGxlQ2FjaGUoKSB7Ci0gICAgLy8gVE9ETyhqcmcpOiBwb3NzaWJseSBvYnNvbGV0ZWQgd2l0aCB0aGUgZWxpZGVkIHN0cmluZyBjYWNoZS4KLSAgICAvLyBDb25zaWRlciByZW1vdmluZy4KLSAgICB0aGlzLnRleHRXaWR0aE1hcCA9IHt9OwotICB9Ci0KLSAgRWxpZGVkVGl0bGVDYWNoZS5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogUmV0dXJuIGVsaWRlZCB0ZXh0LgotICAgICAqCi0gICAgICogQHBhcmFtIHtjdHh9IENvbnRleHQgVGhlIGdyYXBoaWNzIGNvbnRleHQuCi0gICAgICogQHBhcmFtIHtwaXhXaWR0aH0gUGl4ZWwgd2lkdGguCi0gICAgICogQHBhcmFtIHt0aXRsZX0gT3JpZ2luYWwgdGl0bGUgdGV4dC4KLSAgICAgKiBAcGFyYW0ge3dpZHRofSBEcmF3biB3aWR0aCBpbiB3b3JsZCBjb29yZHMuCi0gICAgICogQHBhcmFtIHtzbGljZUR1cmF0aW9ufSBXaGVyZSB0aGUgdGl0bGUgbXVzdCBmaXQgKGluIHdvcmxkIGNvb3JkcykuCi0gICAgICogQHJldHVybiB7RWxpZGVkU3RyaW5nV2lkdGhQYWlyfSBFbGlkZWQgc3RyaW5nIGFuZCB3aWR0aC4KLSAgICAgKi8KLSAgICBnZXQ6IGZ1bmN0aW9uKGN0eCwgcGl4V2lkdGgsIHRpdGxlLCB3aWR0aCwgc2xpY2VEdXJhdGlvbikgewotICAgICAgdmFyIGVsaWRlZERpY3QgPSBlbGlkZWRUaXRsZUNhY2hlRGljdFt0aXRsZV07Ci0gICAgICBpZiAoIWVsaWRlZERpY3QpIHsKLSAgICAgICAgZWxpZGVkRGljdCA9IHt9OwotICAgICAgICBlbGlkZWRUaXRsZUNhY2hlRGljdFt0aXRsZV0gPSBlbGlkZWREaWN0OwotICAgICAgfQotCi0gICAgICB2YXIgZWxpZGVkRGljdEZvclBpeFdpZHRoID0gZWxpZGVkRGljdFtwaXhXaWR0aF07Ci0gICAgICBpZiAoIWVsaWRlZERpY3RGb3JQaXhXaWR0aCkgewotICAgICAgICBlbGlkZWREaWN0W3BpeFdpZHRoXSA9IHt9OwotICAgICAgICBlbGlkZWREaWN0Rm9yUGl4V2lkdGggPSBlbGlkZWREaWN0W3BpeFdpZHRoXTsKLSAgICAgIH0KLQotICAgICAgdmFyIHN0cmluZ1dpZHRoUGFpciA9IGVsaWRlZERpY3RGb3JQaXhXaWR0aFtzbGljZUR1cmF0aW9uXTsKLSAgICAgIGlmIChzdHJpbmdXaWR0aFBhaXIgPT09IHVuZGVmaW5lZCkgewotICAgICAgICB2YXIgbmV3dGl0bGUgPSB0aXRsZTsKLSAgICAgICAgdmFyIGVsaWRlZCA9IGZhbHNlOwotICAgICAgICB3aGlsZSAodGhpcy5sYWJlbFdpZHRoV29ybGQoY3R4LCBuZXd0aXRsZSwgcGl4V2lkdGgpID4gc2xpY2VEdXJhdGlvbikgewotICAgICAgICAgIGlmIChuZXd0aXRsZS5sZW5ndGggKiAwLjc1IDwgMSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIG5ld3RpdGxlID0gbmV3dGl0bGUuc3Vic3RyaW5nKDAsIG5ld3RpdGxlLmxlbmd0aCAqIDAuNzUpOwotICAgICAgICAgIGVsaWRlZCA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZWxpZGVkICYmIG5ld3RpdGxlLmxlbmd0aCA+IDMpCi0gICAgICAgICAgbmV3dGl0bGUgPSBuZXd0aXRsZS5zdWJzdHJpbmcoMCwgbmV3dGl0bGUubGVuZ3RoIC0gMykgKyAnLi4uJzsKLQotICAgICAgICBzdHJpbmdXaWR0aFBhaXIgPSBuZXcgRWxpZGVkU3RyaW5nV2lkdGhQYWlyKAotICAgICAgICAgICAgbmV3dGl0bGUsIHRoaXMubGFiZWxXaWR0aChjdHgsIG5ld3RpdGxlKSk7Ci0gICAgICAgIGVsaWRlZERpY3RGb3JQaXhXaWR0aFtzbGljZUR1cmF0aW9uXSA9IHN0cmluZ1dpZHRoUGFpcjsKLSAgICAgIH0KLSAgICAgIHJldHVybiBzdHJpbmdXaWR0aFBhaXI7Ci0gICAgfSwKLQotICAgIHF1aWNrTWVhc3VyZVRleHRfOiBmdW5jdGlvbihjdHgsIHRleHQpIHsKLSAgICAgIHZhciB3ID0gdGhpcy50ZXh0V2lkdGhNYXBbdGV4dF07Ci0gICAgICBpZiAoIXcpIHsKLSAgICAgICAgdyA9IGN0eC5tZWFzdXJlVGV4dCh0ZXh0KS53aWR0aDsKLSAgICAgICAgdGhpcy50ZXh0V2lkdGhNYXBbdGV4dF0gPSB3OwotICAgICAgfQotICAgICAgcmV0dXJuIHc7Ci0gICAgfSwKLQotICAgIGxhYmVsV2lkdGg6IGZ1bmN0aW9uKGN0eCwgdGl0bGUpIHsKLSAgICAgIHJldHVybiB0aGlzLnF1aWNrTWVhc3VyZVRleHRfKGN0eCwgdGl0bGUpICsgMjsKLSAgICB9LAotCi0gICAgbGFiZWxXaWR0aFdvcmxkOiBmdW5jdGlvbihjdHgsIHRpdGxlLCBwaXhXaWR0aCkgewotICAgICAgcmV0dXJuIHRoaXMubGFiZWxXaWR0aChjdHgsIHRpdGxlKSAqIHBpeFdpZHRoOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQSBwYWlyIHJlcHJlc2VudGluZyBhbiBlbGlkZWQgc3RyaW5nIGFuZCB3b3JsZC1jb29yZGluYXRlIHdpZHRoCi0gICAqIHRvIGRyYXcgaXQuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gRWxpZGVkU3RyaW5nV2lkdGhQYWlyKHN0cmluZywgd2lkdGgpIHsKLSAgICB0aGlzLnN0cmluZyA9IHN0cmluZzsKLSAgICB0aGlzLndpZHRoID0gd2lkdGg7Ci0gIH0KLQotICByZXR1cm4gewotICAgIEVsaWRlZFRpdGxlQ2FjaGU6IEVsaWRlZFRpdGxlQ2FjaGUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZXZlbnRfcHJlc2VudGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZXZlbnRfcHJlc2VudGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMGZkZWEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2V2ZW50X3ByZXNlbnRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9jb2xvcl9zY2hlbWUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIGNvbG9yIHNjaGVtZSByZWxhdGVkIGZ1bmN0aW9ucy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLSAgdmFyIHBhbGV0dGVSYXcgPSB0ci5iLnVpLmdldFJhd0NvbG9yUGFsZXR0ZSgpOwotICB2YXIgcGFsZXR0ZSA9IHRyLmIudWkuZ2V0Q29sb3JQYWxldHRlKCk7Ci0KLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0KLSAgLyoqCi0gICAqIFByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IHZpZXcgdmFsdWVzIGZvciBldmVudHMuCi0gICAqLwotICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB7Ci0gICAgZ2V0U2VsZWN0YWJsZUl0ZW1Db2xvcjogZnVuY3Rpb24oaXRlbSkgewotICAgICAgdmFyIGNvbG9ySWQgPSBpdGVtLmNvbG9ySWQgKyB0aGlzLmdldENvbG9ySWRPZmZzZXRfKGl0ZW0pOwotICAgICAgcmV0dXJuIHBhbGV0dGVbY29sb3JJZF07Ci0gICAgfSwKLQotICAgIGdldENvbG9ySWRPZmZzZXRfOiBmdW5jdGlvbihldmVudCkgewotICAgICAgaWYgKGV2ZW50LnNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCkKLSAgICAgICAgcmV0dXJuIHRyLmIudWkucGFsZXR0ZVByb3BlcnRpZXMuaGlnaGxpZ2h0SWRCb29zdDsKLSAgICAgIGVsc2UgaWYgKGV2ZW50LnNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5ESU1NRUQpCi0gICAgICAgIHJldHVybiB0ci5iLnVpLnBhbGV0dGVQcm9wZXJ0aWVzLmRlc2F0dXJhdGVJZEJvb3N0OwotICAgICAgcmV0dXJuIDA7Ci0gICAgfSwKLQotICAgIGdldFRleHRDb2xvcjogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIGlmIChldmVudC5zZWxlY3Rpb25TdGF0ZSA9PT0gU2VsZWN0aW9uU3RhdGUuRElNTUVEKQotICAgICAgICByZXR1cm4gJ3JnYig2MCw2MCw2MCknOwotICAgICAgcmV0dXJuICdyZ2IoMCwwLDApJzsKLSAgICB9LAotCi0gICAgZ2V0U2xpY2VDb2xvcklkOiBmdW5jdGlvbihzbGljZSkgewotICAgICAgcmV0dXJuIHNsaWNlLmNvbG9ySWQgKyB0aGlzLmdldENvbG9ySWRPZmZzZXRfKHNsaWNlKTsKLSAgICB9LAotCi0gICAgZ2V0U2xpY2VBbHBoYTogZnVuY3Rpb24oc2xpY2UsIGFzeW5jKSB7Ci0gICAgICB2YXIgYWxwaGEgPSAxOwotICAgICAgaWYgKGFzeW5jKQotICAgICAgICBhbHBoYSAqPSAwLjM7Ci0gICAgICByZXR1cm4gYWxwaGE7Ci0gICAgfSwKLQotICAgIGdldEluc3RhbnRTbGljZUNvbG9yOiBmdW5jdGlvbihpbnN0YW50KSB7Ci0gICAgICB2YXIgY29sb3JJZCA9IGluc3RhbnQuY29sb3JJZCArIHRoaXMuZ2V0Q29sb3JJZE9mZnNldF8oaW5zdGFudCk7Ci0gICAgICByZXR1cm4gdHIuYi51aS5jb2xvclRvUkdCQVN0cmluZyhwYWxldHRlUmF3W2NvbG9ySWRdLCAxLjApOwotICAgIH0sCi0KLSAgICBnZXRPYmplY3RJbnN0YW5jZUNvbG9yOiBmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgdmFyIGNvbG9ySWQgPSBpbnN0YW5jZS5jb2xvcklkICsgdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhpbnN0YW5jZSk7Ci0gICAgICByZXR1cm4gdHIuYi51aS5jb2xvclRvUkdCQVN0cmluZyhwYWxldHRlUmF3W2NvbG9ySWRdLCAwLjI1KTsKLSAgICB9LAotCi0gICAgZ2V0T2JqZWN0U25hcHNob3RDb2xvcjogZnVuY3Rpb24oc25hcHNob3QpIHsKLSAgICAgIHZhciBjb2xvcklkID0KLSAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5jb2xvcklkICsgdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhzbmFwc2hvdCk7Ci0gICAgICByZXR1cm4gcGFsZXR0ZVtjb2xvcklkXTsKLSAgICB9LAotCi0gICAgZ2V0Q291bnRlclNlcmllc0NvbG9yOiBmdW5jdGlvbihjb2xvcklkLCBzZWxlY3Rpb25TdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9hbHBoYU11bHRpcGxpZXIpIHsKLSAgICAgIHZhciBldmVudCA9IHtzZWxlY3Rpb25TdGF0ZTogc2VsZWN0aW9uU3RhdGV9OwotICAgICAgcmV0dXJuIHRyLmIudWkuY29sb3JUb1JHQkFTdHJpbmcoCi0gICAgICAgICAgcGFsZXR0ZVJhd1tjb2xvcklkICsgdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhldmVudCldLAotICAgICAgICAgICAgICAob3B0X2FscGhhTXVsdGlwbGllciAhPT0gdW5kZWZpbmVkID8gb3B0X2FscGhhTXVsdGlwbGllciA6IDEuMCkpOwotICAgIH0sCi0KLSAgICBnZXRCYXJTbmFwc2hvdENvbG9yOiBmdW5jdGlvbihzbmFwc2hvdCwgb2Zmc2V0KSB7Ci0gICAgICB2YXIgY29sb3JJZCA9Ci0gICAgICAgICAgKHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNvbG9ySWQgKyBvZmZzZXQpICUKLSAgICAgICAgICB0ci5iLnVpLnBhbGV0dGVQcm9wZXJ0aWVzLm51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHM7Ci0gICAgICBjb2xvcklkICs9IHRoaXMuZ2V0Q29sb3JJZE9mZnNldF8oc25hcHNob3QpOwotICAgICAgcmV0dXJuIHRyLmIudWkuY29sb3JUb1JHQkFTdHJpbmcocGFsZXR0ZVJhd1tjb2xvcklkXSwgMS4wKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBFdmVudFByZXNlbnRlcjogRXZlbnRQcmVzZW50ZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmFzdF9yZWN0X3JlbmRlcmVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmFzdF9yZWN0X3JlbmRlcmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhNzMzNTMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2Zhc3RfcmVjdF9yZW5kZXJlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIGRyYXdpbmcgbWFzc2l2ZSBudW1iZXJzIG9mCi0gKiBjb2xvcmVkIHJlY3RhbmdsZXMgaW50byBhIGNhbnZhcyBpbiBhbiBlZmZpY2llbnQgbWFubmVyLCBwcm92aWRlZAotICogdGhleSBhcmUgZHJhd24gbGVmdCB0byByaWdodCB3aXRoIGZpeGVkIHkgYW5kIGhlaWdodCB0aHJvdWdob3V0LgotICoKLSAqIFRoZSBiYXNpYyBpZGVhIHVzZWQgaGVyZSBpcyB0byBmdXNlIHN1YnBpeGVsIHJlY3RhbmdsZXMgdG9nZXRoZXIgc28gdGhhdAotICogd2UgbmV2ZXIgaXNzdWUgYSBjYW52YXMgZmlsbFJlY3QgZm9yIHRoZW0uIEl0IHR1cm5zIG91dCBKYXZhc2NyaXB0IGNhbgotICogZG8gdGhpcyBxdWl0ZSBlZmZpY2llbnRseSwgY29tcGFyZWQgdG8gYXNraW5nIENhbnZhczJEIHRvIGRvIHRoZSBzYW1lLgotICoKLSAqIEEgZmV3IGV4dHJhIHRoaW5ncyBhcmUgZG9uZSBieSB0aGlzIGNsYXNzIGluIHRoZSBuYW1lIG9mIHNwZWVkOgotICogLSBWaWV3cG9ydCBjdWxsaW5nOiBvZmYtdmlld3BvcnQgcmVjdGFuZ2xlcyBhcmUgZGlzY2FyZGVkLgotICoKLSAqIC0gVGhlIGFjdHVhbCBkaXNjYXJkaW5nIG9wZXJhdGlvbiBpcyBkb25lIGluIHdvcmxkIHNwYWNlLAotICogICBlLmcuIHByZS10cmFuc2Zvcm0uCi0gKgotICogLSBSYXRoZXIgdGhhbiBleHBlbmRpbmcgY29tcHV0ZSBjeWNsZXMgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgYW4gYXZlcmFnZQotICogICBjb2xvciBmb3IgZnVzZWQgcmVjdGFuZ2xlcyBmcm9tIGNzcyBzdHJpbmdzLCB5b3UgaW5zdGVhZCBkcmF3IHVzaW5nCi0gKiAgIHBhbGxldGl6ZWQgY29sb3JzLiBUaGUgZnVzZWQgcmVjdCBjb2xvciBpcyBjaG9vc2VuIGZyb20gdGhlIHJlY3RhbmdsZSB3aXRoCi0gKiAgIHRoZSBoaWdoZXIgYWxwaGEgdmFsdWUsIGlmIGVxdWFsIHRoZSBtYXggcGFsbGV0ZSBpbmRleCBlbmNvdW50ZXJlZC4KLSAqCi0gKiBNYWtlIHN1cmUgdG8gZmx1c2ggdGhlIHRyYWNrUmVuZGVyZXIgYmVmb3JlIGZpbmlzaGluZyBkcmF3aW5nIGluIG9yZGVyCi0gKiB0byBjb21taXQgYW55IHF1ZXVlZCBkcmF3aW5nIG9wZXJhdGlvbnMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0KLSAgLyoqCi0gICAqIENyZWF0ZXMgYSBmYXN0IHJlY3QgcmVuZGVyZXIgd2l0aCBhIHNwZWNpZmljIHNldCBvZiBjdWxsaW5nIHJ1bGVzCi0gICAqIGFuZCBjb2xvciBwYWxsZXR0ZS4KLSAgICogQHBhcmFtIHtHcmFwaGljc0NvbnRleHQyRH0gY3R4IENhbnZhczJEIGRyYXdpbmcgY29udGV4dC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG1pblJlY3RTaXplIE9ubHkgcmVjdGFuZ2xlcyB3aXRoIHdpZHRoIDwgbWluUmVjdFNpemUgYXJlCi0gICAqICAgIGNvbnNpZGVyZWQgZm9yIG1lcmdpbmcuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXhNZXJnZURpc3QgQ29udHJvbHMgaG93IG1hbnkgc3VjY2Vzc2l2ZSBzbWFsbCByZWN0YW5nbGVzCi0gICAqICAgIGNhbiBiZSBtZXJnZWQgdG9nZXRoZXIgYmVmb3JlIGlzc3VpbmcgYSByZWN0YW5nbGUuCi0gICAqIEBwYXJhbSB7QXJyYXl9IHBhbGxldHRlIFRoZSBjb2xvciBwYWxsZXRlIGZvciBkcmF3aW5nLiBQYWxsZXR0ZSBzbG90cwotICAgKiAgICBzaG91bGQgbWFwIHRvIHZhbGlkIENhbnZhcyBmaWxsU3R5bGUgc3RyaW5ncy4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBGYXN0UmVjdFJlbmRlcmVyKGN0eCwgbWluUmVjdFNpemUsIG1heE1lcmdlRGlzdCwgcGFsbGV0dGUpIHsKLSAgICB0aGlzLmN0eF8gPSBjdHg7Ci0gICAgdGhpcy5taW5SZWN0U2l6ZV8gPSBtaW5SZWN0U2l6ZTsKLSAgICB0aGlzLm1heE1lcmdlRGlzdF8gPSBtYXhNZXJnZURpc3Q7Ci0gICAgdGhpcy5wYWxsZXR0ZV8gPSBwYWxsZXR0ZTsKLSAgfQotCi0gIEZhc3RSZWN0UmVuZGVyZXIucHJvdG90eXBlID0gewotICAgIHlfOiAwLAotICAgIGhfOiAwLAotICAgIG1lcmdpbmdfOiBmYWxzZSwKLSAgICBtZXJnZVN0YXJ0WF86IDAsCi0gICAgbWVyZ2VDdXJSaWdodF86IDAsCi0gICAgbWVyZ2VkQ29sb3JJZF86IDAsCi0gICAgbWVyZ2VkQWxwaGFfOiAwLAotCi0gICAgLyoqCi0gICAgICogQ2hhbmdlcyB0aGUgeSBwb3NpdGlvbiBhbmQgaGVpZ2h0IGZvciBzdWJzZXF1ZW50IGZpbGxSZWN0Ci0gICAgICogY2FsbHMuIHggYW5kIHdpZHRoIGFyZSBzcGVjaWZpZWlkIG9uIHRoZSBmaWxsUmVjdCBjYWxscy4KLSAgICAgKi8KLSAgICBzZXRZYW5kSDogZnVuY3Rpb24oeSwgaCkgewotICAgICAgaWYgKHRoaXMueV8gPT09IHkgJiYKLSAgICAgICAgICB0aGlzLmhfID09PSBoKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLmZsdXNoKCk7Ci0gICAgICB0aGlzLnlfID0geTsKLSAgICAgIHRoaXMuaF8gPSBoOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBGaWxscyByZWN0YW5nbGUgYXQgdGhlIHNwZWNpZmllZCBsb2NhdGlvbiwgaWYgdmlzaWJsZS4gSWYgdGhlCi0gICAgICogcmVjdGFuZ2xlIGlzIHN1YnBpeGVsLCBpdCB3aWxsIGJlIG1lcmdlZCB3aXRoIGFkamFjZW50IHJlY3RhbmdsZXMuCi0gICAgICogVGhlIGRyYXdpbmcgb3BlcmF0aW9uIG1heSBub3QgdGFrZSBlZmZlY3QgdW50aWwgZmx1c2ggaXMgY2FsbGVkLgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb2xvcklkIFRoZSBjb2xvciBvZiB0aGlzIHJlY3RhbmdsZSwgYXMgYW4gaW5kZXgKLSAgICAgKiAgICAgaW4gdGhlIHJlbmRlcmVyJ3MgY29sb3IgcGFsbGV0ZS4KLSAgICAgKiBAcGFyYW0ge251bWJlcn0gYWxwaGEgVGhlIG9wYWNpdHkgb2YgdGhlIHJlY3RhbmdsZSBhcyAwLjAtMS4wIG51bWJlci4KLSAgICAgKi8KLSAgICBmaWxsUmVjdDogZnVuY3Rpb24oeCwgdywgY29sb3JJZCwgYWxwaGEpIHsKLSAgICAgIHZhciByID0geCArIHc7Ci0gICAgICBpZiAodyA8IHRoaXMubWluUmVjdFNpemVfKSB7Ci0gICAgICAgIGlmIChyIC0gdGhpcy5tZXJnZVN0YXJ0WF8gPiB0aGlzLm1heE1lcmdlRGlzdF8pCi0gICAgICAgICAgdGhpcy5mbHVzaCgpOwotICAgICAgICBpZiAoIXRoaXMubWVyZ2luZ18pIHsKLSAgICAgICAgICB0aGlzLm1lcmdpbmdfID0gdHJ1ZTsKLSAgICAgICAgICB0aGlzLm1lcmdlU3RhcnRYXyA9IHg7Ci0gICAgICAgICAgdGhpcy5tZXJnZUN1clJpZ2h0XyA9IHI7Ci0gICAgICAgICAgdGhpcy5tZXJnZWRDb2xvcklkXyA9IGNvbG9ySWQ7Ci0gICAgICAgICAgdGhpcy5tZXJnZWRBbHBoYV8gPSBhbHBoYTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB0aGlzLm1lcmdlQ3VyUmlnaHRfID0gcjsKLQotICAgICAgICAgIGlmICh0aGlzLm1lcmdlZEFscGhhXyA8IGFscGhhIHx8Ci0gICAgICAgICAgICAgICh0aGlzLm1lcmdlZEFscGhhXyA9PT0gYWxwaGEgJiYgdGhpcy5tZXJnZWRDb2xvcklkXyA8IGNvbG9ySWQpKSB7Ci0gICAgICAgICAgICB0aGlzLm1lcmdlZEFscGhhXyA9IGFscGhhOwotICAgICAgICAgICAgdGhpcy5tZXJnZWRDb2xvcklkXyA9IGNvbG9ySWQ7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBpZiAodGhpcy5tZXJnaW5nXykKLSAgICAgICAgICB0aGlzLmZsdXNoKCk7Ci0gICAgICAgIHRoaXMuY3R4Xy5maWxsU3R5bGUgPSB0aGlzLnBhbGxldHRlX1tjb2xvcklkXTsKLSAgICAgICAgdGhpcy5jdHhfLmdsb2JhbEFscGhhID0gYWxwaGE7Ci0gICAgICAgIHRoaXMuY3R4Xy5maWxsUmVjdCh4LCB0aGlzLnlfLCB3LCB0aGlzLmhfKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ29tbWl0cyBhbnkgcGVuZGluZyBmaWxsUmVjdCBvcGVyYXRpb25zIHRvIHRoZSB1bmRlcmx5aW5nIGdyYXBoaWNzCi0gICAgICogY29udGV4dC4KLSAgICAgKi8KLSAgICBmbHVzaDogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5tZXJnaW5nXykgewotICAgICAgICB0aGlzLmN0eF8uZmlsbFN0eWxlID0gdGhpcy5wYWxsZXR0ZV9bdGhpcy5tZXJnZWRDb2xvcklkX107Ci0gICAgICAgIHRoaXMuY3R4Xy5nbG9iYWxBbHBoYSA9IHRoaXMubWVyZ2VkQWxwaGFfOwotICAgICAgICB0aGlzLmN0eF8uZmlsbFJlY3QodGhpcy5tZXJnZVN0YXJ0WF8sIHRoaXMueV8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lcmdlQ3VyUmlnaHRfIC0gdGhpcy5tZXJnZVN0YXJ0WF8sIHRoaXMuaF8pOwotICAgICAgICB0aGlzLm1lcmdpbmdfID0gZmFsc2U7Ci0gICAgICB9Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgRmFzdFJlY3RSZW5kZXJlcjogRmFzdFJlY3RSZW5kZXJlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9mYXZpY29ucy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2Zhdmljb25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0OGE3MjcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2Zhdmljb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBGYXZpY29uc0J5SHVlID0gewotICAgIGJsdWU6ICdkYXRhOmltYWdlL3ZuZG1pY3Jvc29mdGljb247YmFzZTY0LEFBQUJBQUlBRUJBQUFBRUFJQUJvQkFBQUpnQUFBQ0FnQUFBQkFDQUFxQkFBQUk0RUFBQW9BQUFBRUFBQUFDQUFBQUFCQUNBQUFBQUFBQUFFQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWpqOHhBR0FySWdxT1B6RThuVVkzZHFKSk9KZWlTVGlYblVZM2RvNC9NVHhoS3lJS2prQXhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFKQndBQUFBQUFaSkJNelNvU3pxbHNVOCs2YlJRUC8yMVVULy90VkUvLzdSUVAvMndUejNwcGtvNnBZOUFNalFBQUFBQlR5TWJBQUFBQUFCN2Uzc0FBUC8vQUtGU1JFK3dUejNkdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8relVENy9zRTg5LzdCT1BmK3FURHZkbDBNMFR3QUFBQUJXSng0QStmbjVBTmpkM1RuSWlYN2Z0VkE5LzdWUlAvKzFVVC8vdFZFLy83VlJQLyt4VHozL3JFMDgvNnhNTy8rc1REdi9yRTA4LzZkS090K1NRVE01cTB3N0FMTzB0QTN2OGZHdTA1dVIvN05NT2YrMFR6ei90RTg4LzdSUFB2K3VUVDMvcDBvNy82WkpPdittU1RyL3BrazYvNlpKT3YrbVNqci9uMFk0cm5Jd0tnM2g0ZUZLOS9qNDhOMnpyUC9GZUdyL3hucHMvOFo2YlAvQWFVdi90bHcxLzdSYk5mKzFXelgvdEZzMS83UmJOZiswV3pYL3RGczEvN05iTlBDcVd5MUs3ZTN0alBuNStmLzQ5dlgvOXZMeS8vYnk4di8yOHZILzhiWnYvKzZSSC8vdWt5UC83cE1qLys2U0kvL3VraVAvN3BNai8rMlNJdi9xanlMLzM0a2ZqUEh4OGJMNStmbi8rZm41Ly9uNStmLzUrZnIvK2ZuNS8vVzdjUC96bEIzLzg1WWgvL09XSWYvemxpSC84NVloLy9HVklmL3JrUi8vNlpBZi8rS0xIckx6OC9PMitmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzF1bkQvODVRZC8vT1dJZi96bGlILzg1WWgvL0NVSVAvbWpoLy80NHdlLytPTUh2L2RpUjYyOHZMeW1mbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi85YngwLy9PWEkvL3ptQ2IvODVnbS8rK1ZJdi9oakIvLzNZb2UvOTJLSHYvZGloNy8ySVlkbWZIeDhWejQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvL2pvMC8vMzNidi85OTI5Ly9iYnRmL2V1RFgvMDZvSi85T3JDLy9UcXd2LzA2b005OHlmRDF6cjYrc1k5L2YzeHZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K3Z2LytmdjgvL243L2YvMytQSC8zTXM2LzlPOEFQL1V2UUQvMUwwQS85SzhBTWJJdEFBWS8vLy9BUFQwOUZiNCtQankrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZyLzkvYnUvOXpLT2YvVHV3RC8xTHdBLzlTOEFQTFF1QUJXM2NRQUFPenM3QURtNXVZRjl2YjJlUG41K2ZUNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNi8vZjI3di9jeVRuLzA3c0EvOVM4QVBUUnVnQjR3NjBBQmNteUFBQUFBQUFBOFBEd0FPenM3QWIyOXZaZCtQajQwdm41K2Z6NStmbi8rZm41Ly9uNStmLzQ5L0gvNU5kdS9OakVJZExTdWdCZHliSUFCc3kxQUFBQUFBQUFBQUFBQUFBQUFBRG41K2NBcUtpb0FQVDA5Q0gzOS9keStQajR0dmo0K05YNCtQalYrUGo0dHZYMDYzTHQ2TU1oT1FBQUFNKy9SQUFBQUFBQUFBQUFBUEFQQUFEQUF3QUF3QU1BQUlBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQkFBQ0FBUUFBd0FNQUFQQVBBQUFvQUFBQUlBQUFBRUFBQUFBQkFDQUFBQUFBQUFBUUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJDd1VFRERnWkV4eFdKeDR0WWl3aU4ySXNJamRXSng0dE9Ca1RIQXNGQkF3QUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy93QWJEQWtLWlMwak1ZcytNV3lkUmplaXBrbzZ4NnRNTzl1dFRUempyVTA4NDZ0TU85dW1TanJIblVZM29vcytNV3hsTFNNeEd3d0pDdi8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ1pGQUFQQndVSGNqTW9QSnRGTnBxc1RUemhzMUErL0xWUlAvKzJVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1pSUC8rMVVULy9zMUErL0t4TlBPR2JSVGFhY1RJblBBOEhCUWM0R1JNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL3lwNEFVQ1FjR1pWRE5JQ3RUanprdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLyswVVQvL3MxQSsvN0pRUHYrclREdmtra0V6Z0U4akd4bi94Wm9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBLy8vL0FHc3dKU3FpU1RpdnMxQSsrN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90RkErLzdGUFBmK3hUejMvc1U4OS83RlBQZit2VGozN25rYzNyMmd1SkNyLy8vOEFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3TURBUC9Eb2dCL1ZFd3NxRTA5djdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83TlFQdit2VGozL3IwNDkvNjlPUGYrdlRqMy9yMDQ5LzY5T1BmK3VUanovb1VnNHYyMHhKaXovbm5zQUFnRUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDE5ZlVBa3AyZkhkSzJzYlc1VzByL3RWQSsvN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8reVVENy9yVTA4LzZ4TlBQK3RUVHovclUwOC82MU5QUCt0VFR6L3JVMDgvNjFOUFArc1RUei9ua1kzdFdBcUlSMnBTenNBQUFBQUFBQUFBQUFBQUFBQWVYbDVBRFkyTmduZDM5K082dGJUL2JsYlN2KzFVRDcvdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vc2xBKy82eE5QUCtyVER2L3EwdzcvNnRNTy8rclREdi9xMHc3LzZ0TU8vK3JURHYvcTB3Ny82dE1PLytxVER2OWxrTTBqaVVRRFFsU0pSMEFBQUFBQUFBQUFBRC8vLzhBeE1URVMvWDI5dTNzMk5YL3VWdEsvN1ZRUHYrMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN0ZQUHYrcVREdi9xRXM2LzZoTE92K29TenIvcUVzNi82aExPditvU3pyL3FFczYvNmhMT3Yrb1N6ci9xRXM2LzZsTE92K2xTVG50aERzdVMvK1RjZ0FBQUFBQW01dWJBSEJ3Y0EvbzZPaXgrdnY4Lyt6WTFQKzVXMHIvdFZBKy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvK3hUejMvcUVzNi82WktPdittU2pyL3BrbzYvNlpLT3YrbVNqci9wa282LzZaS092K21TanIvcGtvNi82WktPdittU2pyL3BrbzYvNlpLT3YrYlJUYXhTaUVhRDJjdUpBRC8vLzhBeWNuSlJmWDE5ZkQ2Ky96LzY5ZlUvN2hZUi8rMFRqdi90RTQ4LzdST1BQKzBUanovdEU0OC83Uk9QUCswVHozL3IwNCsvNlZKT3YralNEbi9vMGc1LzZOSU9mK2pTRG4vbzBnNS82TklPZitqU0RuL28wZzUvNk5JT2YralNEci9vMGc1LzZOSU9mK2pTRG4vbzBnNi82QkhPZkNDT1M5RjBGeEtBQUFBQUFMazVPU04rZm41Ly9uNit2L3k1K1gvMDV1Uy85Q1RpUC9RbEluLzBKU0ovOUNVaWYvUWxJbi8wSlNLLzh5R2IvL0FhRGIvdldjMC83MW5OZis5WnpUL3ZXYzAvNzFuTlArOVpqVC92V1kwLzcxbU5QKzlaalQvdkdZMC83eG1OUCs4WmpUL3ZHWTAvN3htTlArOFpqVC91MlUwLzdGaUxZMEFBQUFDazVPVEZ1L3Y3OFg1K2ZuLytmbjUvL241K2YvNSt2ci8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81Ky8zLzk5aXkvL0tXSS8veWxTSC84WlVoLy9HVklmL3hsU0gvOFpVaC8vR1ZJZi94bFNILzhaVWgvL0dWSWYveGxTSC84WlVoLy9HVklmL3hsU0gvOFpVaC8vQ1VJZi92a3lELzVZMGZ4WTFYRXhiRHc4TXo5UFQwNWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNy9mLzMyTEwvODVjai8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvd2xDRC83cElnLys2U0lQL3BqeC9sdW5JWk05WFYxVkQzOS9mMCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmdjkvL2ZZc3Yvemx5UC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvNzVNZy8rdVJILy9xa0IvLzZwQWYvK2lQSC9USWZCdFEzZDNkWWZqNCtQbjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrLzMvOTlpeS8vT1hJLy96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvKzZUSVAvb2p4Ly81NDhmLytlUEgvL25qeC8vNW80ZitjMS9IR0hoNGVGbCtQajQrdm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL243L2YvMzJMTC84NWNqLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3RraUQvNVkwZi8rU05ILy9salIvLzVZMGYvK1dOSC8va2pCLzZ6bjhjWmVEZzRGcjQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2Z2OS8vZllzdi96bHlQLzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzY1RWcvK0tNSHYvaWl4Ny80b3NlLytLTEh2L2lpeDcvNG9zZS8rQ0xIdmZMZlJ0YTNOemNRdmYzOSsvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNSsvMy85OWl5Ly9PWEkvL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLytxUklQL2dpaDcvMzRvZS85K0tIdi9maWg3LzM0b2UvOStLSHYvZmloNy8zWWdlNzhWNkdrTFMwdElqOWZYMTJmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjcvZi8zMkxILzg1WWcvL09WSHYvemxSNy84NVVlLy9PVkh2L3psUjcvODVVZS8vT1ZJZi9wanlILzNvZ2YvOTJISC8vZGh4Ly8zWWNmLzkySEgvL2RoeC8vM1ljZi85MkhILy9haGg3WnVuTVpJNTZlbmdqeTh2S3UrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZnI3Ly9qcjJmLzJ5cEwvOXNtUC8vYkprUC8yeVpELzlzbVEvL2JKa1AvMnlaRC81ck5JLzlPZUZQL1NuaFgvMHA0Vi85S2VGZi9TbmhYLzBaMFYvOUdkRmYvUm5SWC8wWjBWLzh5V0ZxNktWQmNJLy8vL0FPM3Q3V3I1K2ZuKytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjYvL242L1AvNSt2ei8rZnI4Ly9uNi9QLzUrdnovK2ZyOC8vbjYvUC9oMDEzLzByc0EvOU84QVAvVHZBRC8wN3dBLzlPOEFQL1R2QUQvMDd3QS85TzhBUC9TdkFEK3lMTUFhdi9tQUFEcjYrc0E0ZUhoSlBiMjl0djUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LytMU1cvL1R1d0QvMUx3QS85UzhBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC8xTHdBLzlLNkFOdS9xZ0FreUxFQUFMdTd1d0FBQUFBQTh2THlnZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLzR0SmIvOU83QVAvVXZBRC8xTHdBLzlTOEFQL1V2QUQvMUx3QS85UzhBUC9VdkFEL3pyWUFnUUFBQUFDZmpRQUFBQUFBQU96czdBRGs1T1FlOXZiMnpQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmL2kwbHYvMDdzQS85UzhBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC8xTHdBLzlLNkFNekNyQUFleWJJQUFBQUFBQUFBQUFBQXNMQ3dBUC8vL3dEdjcrOU8rUGo0N1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvK0xTVy8vVHV3RC8xTHdBLzlTOEFQL1V2QUQvMUx3QS85UzhBUC9UdXdEc3k3UUFUdTdVQUFDWGhRQUFBQUFBQUFBQUFBQUFBQUFBMXRiV0FMUzB0QVB5OHZKditQajQ5UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vNHRKYi85TzdBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC8wN3dBOU02M0FHNlppUUFEdHFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0dUxpQU5mWDF3Yno4L056K1BqNDhQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvaTBsdi8wN3NBLzlTOEFQL1V2QUQvMUx3QS85TzhBUERQdUFCenVLTUFCc0dyQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTQrUGpBTmpZMkFUeTh2SlorUGo0MnZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8rSFNXLy9UdWdELzFMc0EvOVM4QVAvVHV3RGF6cmNBV2JlakFBVEJxd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMU5UVUFCOGZId0R3OFBBcjl2YjJuUGo0K08zNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi83dWFzLytiWmR2L2oxbXZ0MmNZem5NdTBBQ3NVRkFBQXRhRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU92cjZ3RGo0K01HOHZMeU92YjI5cEQ0K1BqUytmbjU4dm41K2YzNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS9mbjUrZkw0K2ZyUzkvajhrUFQxL1Ryczh2OEc4UFAvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEaDRlRUExdGJXQXUvdjd4djA5UFJKOXZiMmR2YjI5cGYzOS9lbzkvZjNxUGIyOXBmMjl2WjI5UFQwU2Uvdjd4dlcxdFlDNGVIaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL2dCLy8vZ0FILy9nQUFmL3dBQUQvNEFBQWY4QUFBRCtBQUFBZkFBQUFEd0FBQUE0QUFBQUdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFHQUFBQUJ3QUFBQThBQUFBUGdBQUFINEFBQUIvQUFBQS80QUFBZi9nQUFmLzhBQVAvL3dBUC8nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgZ3JlZW46ICdkYXRhOmltYWdlL3ZuZG1pY3Jvc29mdGljb247YmFzZTY0LEFBQUJBQUlBRUJBQUFBRUFJQUJvQkFBQUpnQUFBQ0FnQUFBQkFDQUFxQkFBQUk0RUFBQW9BQUFBRUFBQUFDQUFBQUFCQUNBQUFBQUFBQUFFQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWJXSkxBRXBDTXdwdFlrczhlV3hUZG4xd1ZwZDljRmFYZVd4VGRtMWlTenhLUXpNS2JXSkxBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQStPQ3NBQUFBQUFYQmxUVFNCZEZtbGlIcGU2WXA4WC8yTGZXRC9pMzFnLzRwOFgvMkhlVjNwZjNOWXBXNWpURFFBQUFBQlBUY3FBQUFBQUFCN2Uzc0Fsdi8vQUlCMVhrK0hlVjNkaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArSmUxLy9oM3BkLzRkNVhmK0RkVnJkZEdoUVR3QUFBQUJEUEM0QStmbjVBTnJiM0RtdXBaUGZpbnhmLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtJZWw3L2hIZGIvNFIyVy8rRWRsdi9oSGRiLzRCeldOOXdaVTA1ZzNaYUFMUzB0QTN3OFBHdXU3U2ovNGg1Vy8rSmUxNy9pWHRlLzR0OFgvK0hlRnovZ25OWS80RnlXUCtCY2xqL2dYSlkvNEZ5V1ArQmNsai9mRzFVcmw5TlBBM2g0ZUZLOS9qNDhNdkZ1ZitrbW9QL3BwdUYvNmFiaGYrSmtITC9jNFJqLzNPRVkvOXpoR1AvY29Oai8zS0RZLzl5ZzJQL2NvTmovM0NEWXZCZ2YxOUs3ZTN0alBuNStmLzM5dmIvOWZUei8vWDA4Ly8wOVBQL2l0S3cvMG0raC85TXY0bi9UTCtKLzB5L2lmOU12NG4vVEwrSi8weStpUDlMdTRiL1JySi9qUEh4OGJMNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS80clh0UDlId29uL1NzT0wvMHJEaS85S3c0di9Tc09MLzBuQ2l2OUh2WWIvUnJ1Ri8wUzFnYkx6OC9PMitmbjUvL241K2YvNStmbi8rZm41Ly9uNStmK0sxN1AvUjhLSi8wckRpLzlLdzR2L1NzT0wvMG5CaWY5R3VZVC9SYmFDLzBXMmd2OURzbisyOHZMeW1mbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9qZGkxLzB2RGpQOU94STcvVHNTTy8wckFpdjlGdG9QL1JMS0EvMFN5Z1A5RXNvRC9RcTU5bWZIeDhWejQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvOXJ3NXYvSDZ0bi95T3JhLzhMcDJmOWUxYjcvTzh5ei96M010UDg5ekxUL1BjdXk5enpBcFZ6cjYrc1k5L2YzeHZuNStmLzUrZm4vK2ZuNS8vbjUrZi83K3ZyLy9QcjcvL3o2Ky8veitmbi9adVBZL3piY3p2ODUzYzcvT2QzTy96amJ6Y1kxMHNZWS8vLy9BUFQwOUZiNCtQankrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi82K2ZuLzhQajMvMlhqMS84MjNNei9PZHpOL3puY3pmSTQyTWxXTytYV0FPenM3QURtNXVZRjl2YjJlUG41K2ZUNStmbi8rZm41Ly9uNStmLzUrZm4vK3ZuNS8vRDQ5LzlqNHRmL05kdk0vem5jemZRNDJjdDROY3U5QlRiUndnQUFBQUFBOFBEd0FPenM3QWIyOXZaZCtQajQwdm41K2Z6NStmbi8rZm41Ly9uNStmL3orUGovanVuZy9GTGYwdEk0MmN0ZE5kSENCamZVeGdBQUFBQUFBQUFBQUFBQUFBRG41K2NBcUtpb0FQVDA5Q0gzOS9keStQajR0dmo0K05YNCtQalYrUGo0dHUzMjlYTE83K3doQUZRbUFHclV5Z0FBQUFBQUFBQUFBUEFQQUFEQUF3QUF3QU1BQUlBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQkFBQ0FBUUFBd0FNQUFQQVBBQUFvQUFBQUlBQUFBRUFBQUFBQkFDQUFBQUFBQUFBUUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJDUWdHRENzbUhSeENPeTR0UzBNME4wdERORGRDT3k0dEt5WWRIQWtJQmd3QUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy93QVZFZzRLVFVVMU1XdGdTbXg1YlZPaWdITll4NE4yVzl1RmQxempoWGRjNDROMlc5dUFjMWpIZVcxVG9tdGdTbXhOUmpVeEZSTU9Ddi8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDc25IZ0FMQ2dnSFdFODhQSGRyVXBxRWQxdmhpWHhmL0l0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pWHhmL0lSM1crRjNhMUthVjA0OFBBc0tDQWNySng0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vQUFQamNxR1hKblQ0Q0ZlRnpraTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtLZldEL2lYeGYvNGw3WHYrRGRscmtjR1ZOZ0R3Mktobi8vK3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vL0FGSktPU3A5Y0ZhdmlueGYrNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pbnhmLzRoNlh2K0llbDMvaUhwZC80aDZYditHZVYzN2VXMVVyMUJJTnlyLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3TURBUC8vM2dCc1oxb3NnblZidjR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80bDhYLytIZVYzL2hubGMvNFo1WFArR2VWei9obmxjLzRaNVhQK0dlRnovZkc5VnYxUkxPaXovOUxvQUFnSUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDE5ZlVBbDVpYkhjYkN1cldTaEduL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArSmUxLy9oWGhjLzRSM1cvK0ZkMXYvaFhkYi80VjNXLytGZDF2L2hYZGIvNFYzVy8rRWQxdi9lVzFUdFVsQ01oMkNkVmtBQUFBQUFBQUFBQUFBQUFBQWVYbDVBRFkyTmduZTN0K080dC9aL1pLRmFmK0xmVi8vaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaVh0ZS80UjNXLytEZGxyL2czWmEvNE4yV3YrRGRsci9nM1phLzROMld2K0RkbHIvZzNaYS80TjJXditDZFZyOWMyZFBqaHdaRXdrL09Tc0FBQUFBQUFBQUFBRC8vLzhBeE1URVMvWDE5dTNrNGR2L2tvUnAvNHQ5WC8rTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNGg2WHYrQ2RWci9nWFJaLzRGMFdmK0JkRm4vZ1hSWi80RjBXZitCZEZuL2dYUlovNEYwV2YrQmRGbi9nWFJaLzRGMFdmOStjbGZ0WlZ0R1MvM2pyZ0FBQUFBQW01dWJBSEJ3Y0EvbzZPaXgrL3Y3LytQZzIvK1NoR24vaTMxZi80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0llbDcvZ1hSWi80QnpXUCtBYzFqL2dITlkvNEJ6V1ArQWMxai9nSE5ZLzRCeldQK0FjMWovZ0hOWS80QnpXUCtBYzFqL2dITlkvNEJ6V1A5M2ExS3hPVE1uRDFCSE53RC8vLzhBeWNuSlJmWDE5ZkQ3Ky92LzQrRGEvNUNDWi8rSmVsMy9pWHRkLzRsN1hmK0plMTMvaVh0ZC80bDdYZitLZTE3L2lIaGQvNEJ4Vi85L2NGYi9mM0JXLzM5d1Z2OS9jRmIvZjNCVy8zOXdWdjkvY0ZiL2YzQlcvMzl3VnY5L2NGYi9mM0JXLzM5d1Z2OS9jRmIvZjNCVy8zMXVWUEJuV1VSRm80NXRBQUFBQUFMazVPU04rZm41Ly9yNit2L3Q3T2ovdkxTay83YXVuUCszcnAzL3Q2NmQvN2V1bmYrM3JwMy91SytlLzZHbWp2OXZrRzMvYkk1ci8yeU9hLzlzam12L2JJNXIvMnlPYS85c2ptdi9iSTVyLzJ5T2EvOXNqbXIvYkkxcS8yeU5hdjlzaldyL2JJMXEvMnVOYXY5cmpXci9hNDFxLzE2R1pJMEFBQUFDazVPVEZ1L3Y3OFg1K2ZuLytmbjUvL241K2YvNStmci8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi84K3Z2L3dPZlYvMHZDaS85S3dvci9Tc0tLLzByQ2l2OUt3b3IvU3NLSy8wckNpdjlLd29yL1NzS0svMHJDaXY5S3dvci9Tc0tLLzByQ2l2OUt3b3IvU3NLSy8wbkFpZjlKdjRqL1JyZUN4U3R4VUJiRHc4TXo5UFQwNWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96NisvKy81OVgvVE1TTS8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85SndZbi9TTDZJLzBpK2lQOUd1b1hsT0pWcU05WFYxVkQzOS9mMCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QcjcvNy9uMWY5TXc0ei9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU2NDSi8wZThodjlIdkliL1I3eUcvMGE2aGZROW9YSlEzZDNkWWZqNCtQbjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzgrdnYvditmVi8wekRqUDlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMGkvaVA5R3VvWC9ScnFFLzBhNmhQOUd1b1QvUnJtRCtUNmxkV0hoNGVGbCtQajQrdm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o2Ky8rLzU5WC9UTU9NLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUl2b2YvUmJpRC8wVzNndjlGdUlQL1JiaUQvMFc0Zy85RnQ0TDZQcVoyWmVEZzRGcjQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vL1ByNy83L24xZjlNdzR6L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NMMkgvMFcyZ3Y5RnRZSC9SYldCLzBXMWdmOUZ0WUgvUmJXQi8wUzBnUGMrbzNSYTNOemNRdmYzOSsvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOCt2di92K2ZWLzB6RGpQOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzBlOGh2OUV0SUQvUkxPQS8wU3pnUDlFczREL1JMT0EvMFN6Z1A5RXM0RC9RN0YvN3p5ZWNVTFMwdElqOWZYMTJmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejYrLysvNTlYL1NzT0wvMGpDaXY5SXdvci9TTUtLLzBqQ2l2OUl3b3IvU01LSy8wckNpdjlIdW9UL1JMRisvME93ZmY5RXNIMy9STEI5LzBTd2ZmOUVzSDMvUkxCOS8wU3dmZjlDcm56Wk9KWnJJNTZlbmdqeTh2S3UrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rdm42LzkveDZmK2wzOFgvbzkvRC82VGZ3LytrMzhQL3BOL0QvNlRmdy8razM4VC9hOUt6LzBEQm9mOUJ3S0gvUWNDaC8wSEFvZjlCd0tEL1FjQ2cvMEcvb1A5QnY2RC9RYitnLzBDNG1LNHRiVTRJLy8vL0FPM3Q3V3I1K2ZuKytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2bjYvL3Y2Ky8vNyt2di8rL3I3Ly92NisvLzcrdnYvL1ByNy8vdjYrLytCNTk3L05kdk4vem5jemY4NTNNMy9PZHpOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1MjgzK050SERha2IvK2dEcjYrc0E0ZUhoSlBiMjl0djUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzMvbjNmODIzTXovT2R6Ti96bmN6Zjg1M00zL09kek4vem5jemY4NTNNMy9PZHpOL3pqYXk5czB4N2trTnMvQkFMdTd1d0FBQUFBQTh2THlnZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2YrZmQvemJielA4NTNNMy9PZHpOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1M00zL045WEhnUUFBQUFBc3Bab0FBQUFBQU96czdBRGs1T1FlOXZiMnpQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmOS81OTMvTnR2TS96bmN6Zjg1M00zL09kek4vem5jemY4NTNNMy9PZHpOL3pqYXk4dzB5cndlTnREQ0FBQUFBQUFBQUFBQXNMQ3dBUC8vL3dEdjcrOU8rUGo0N1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMy9uM2Y4MjI4ei9PZHpOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1Mjh6c045UEVUa0Q0NWdBb25KRUFBQUFBQUFBQUFBQUFBQUFBMXRiV0FMUzB0QVB5OHZKditQajQ5UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vZitmZC96YmJ6UDg1M00zL09kek4vem5jemY4NTNNMy9PZHZNOURqV3gyNHFvSlVETWIyd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0dUxpQU5mWDF3Yno4L056K1BqNDhQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2Y5LzU5My9OdHZNL3puY3pmODUzTTMvT2R6Ti96bmJ6UEE0MThoek1yNnhCalRJdWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTQrUGpBTmpZMkFUeTh2SlorUGo0MnZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8zN20zZjh6Mjh6L045ek4vem5jemY4NTI4emFPTmJJV1RLL3NnUTB5THNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMU5UVUFCOGZId0R3OFBBcjl2YjJuUGo0K08zNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi92ZkRyLzVUcTR2K0w2T0R0WU9EVW5EVFR4U3NBR0JzQU1yeXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU92cjZ3RGo0K01HOHZMeU92YjI5cEQ0K1BqUytmbjU4dm41K2YzNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS9mbjUrZkw2K1BqUyt2ZjNrUHYwOVRyLzZ1NEcvKy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEaDRlRUExdGJXQXUvdjd4djA5UFJKOXZiMmR2YjI5cGYzOS9lbzkvZjNxUGIyOXBmMjl2WjI5UFQwU2Uvdjd4dlcxdFlDNGVIaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL2dCLy8vZ0FILy9nQUFmL3dBQUQvNEFBQWY4QUFBRCtBQUFBZkFBQUFEd0FBQUE0QUFBQUdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFHQUFBQUJ3QUFBQThBQUFBUGdBQUFINEFBQUIvQUFBQS80QUFBZi9nQUFmLzhBQVAvL3dBUC8nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgcmVkOiAnZGF0YTppbWFnZS92bmRtaWNyb3NvZnRpY29uO2Jhc2U2NCxBQUFCQUFJQUVCQUFBQUVBSUFCb0JBQUFKZ0FBQUNBZ0FBQUJBQ0FBcUJBQUFJNEVBQUFvQUFBQUVBQUFBQ0FBQUFBQkFDQUFBQUFBQUFBRUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFReG1iQUMwUmFncERHWnM4U2h5c2Rrd2RzcGRNSGJLWFNoeXNka01abXp3dUVXb0tReG1jQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFtRGxnQUFBQUFBVVFhbnpSUEhyaWxVeC9CNlZRZ3hmMVZJTWIvVlNERy8xUWd4ZjFUSDhEcFRoMjJwVU1abkRRQUFBQUJKUTVYQUFBQUFBQjdlbnNBLy84QUFGVXJyMDlTSDhEZFZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVVIOFAvVXgvQi8xSWZ3UDlRSHJyZFJ4cWxUd0FBQUFBb0QxNEErZm41QU56ZjF6bU1hdFBmVkI3Ry8xVWd4djlWSU1iL1ZTREcvMVVneHY5VEg4TC9VUjY4LzFBZXZQOVFIcnovVVI2OC8wNGR0OTlFR2FBNVVCNjdBTFMwc3czeDh1K3VuWURkLzFBWnhQOVRIY1gvVXgzRi8xUWV4ZjlUSHIvL1R4MjMvMDhjdHY5UEhiYi9UeDIyLzA4ZHR2OVBIYmIvU3h1dXJqa1NmZzNoNGVGSytQajM4TFdmNVA5N1V0TC9mVlhTLzMxVjAvOWZPY3ovU1NmQy8wa253UDlKSjhEL1NTZkEvMGtud1A5Sko4RC9TU2ZBLzBnbnYvQS9LTE5LN2UzdGpQbjUrZi8yOWZqLzh2RDMvL1B4OS8veThQZi9mSUx6L3pRLzhQODNRdkQvTjBMdy96ZEM4UDgzUXZEL04wTHcvemRCNy84MlFPei9NejNnalBIeDhiTDUrZm4vK2ZuNS8vbjYrZi81K3ZuLytmbjUvMzZHOXY4eVFQVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96VkM4djgwUU96L00wRHEvekkrNDdMejgvTzIrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZjk5aHZiL01rRDAvelpEOVA4MlEvVC9Oa1AwL3pWQzhmOHpQK2YvTWo3ay96SSs1UDh4UGQ2Mjh2THltZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vZ1luMi96ZEU5UDg3Ui9UL08wZjAvelpGOFA4eVFPUC9NVC9lL3pFLzN2OHhQOTcvTHozWm1mSHg4Vno0K1BqMytmbjUvL241K2YvNStmbi8rZm41LzlmWitQL0J4Zmovd3NiNC83dkQrUDg3ai9YL0RuengveEY5OGY4UmZmSC9FWHp3OXhadjVWenI2K3NZOS9mM3h2bjUrZi81K2ZuLytmbjUvL241K2YvNysvbi8vUHo1Ly8zOCtmL3grUG4vT3JEKy93Q1kvLzhBbWYvL0FKbi8vd0NaL2NZQWxQTVkvLy8vQVBUMDlGYjQrUGp5K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNitmbi83dlg1L3ptdS92OEFsLy8vQUpqLy93Q1kvdklBbGZwV0FKLy9BT3pzN0FEbTV1WUY5dmIyZVBuNStmVDUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2bjUvKzcxK2Y4NXJmNy9BSmIvL3dDWS8vUUFsdng0QUl6ckJRQ1E4Z0FBQUFBQThQRHdBT3pzN0FiMjl2WmQrUGo0MHZuNStmejUrZm4vK2ZuNS8vbjUrZi94OXZuL2JzUDgvQ0drL3RJQWx2eGRBSkR5QmdDVDlRQUFBQUFBQUFBQUFBQUFBQURuNStjQXFLaW9BUFQwOUNIMzkvZHkrUGo0dHZqNCtOWDQrUGpWK1BqNHR1dnk5M0xENGZVaEFBQzdBRVNvNndBQUFBQUFBQUFBQVBBUEFBREFBd0FBd0FNQUFJQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUJBQUNBQVFBQXdBTUFBUEFQQUFBb0FBQUFJQUFBQUVBQUFBQUJBQ0FBQUFBQUFBQVFBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQmdJTURCb0tQUndvRDE0dExoRnJOeTRSYXpjb0QxNHRHZ285SEFZQ0RBd0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQKzMvd0FOQlIwS0x4SnVNVUVZbUd4S0hLeWlUaDIyeDFBZXU5dFJIcjNqVVI2OTQxQWV1OXRPSGJiSFNoeXNva0VZbUd3dkVtNHhEUVVlQ3YrNi93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQm9LUGdBSEF4QUhOaFI5UEVrYnFwcFJIcjNoVkNERS9GVWd4djlWSU1mL1ZTREgvMVVneHY5VklNYi9WU0RILzFVZ3gvOVZJTWIvVkNERS9GRWV2T0ZJRzZtYU5SUjhQQWNERUFjYUNqMEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFZVUDhBSmc1WUdVWWFvNEJSSDc3a1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNWC9WQi9FLzFRZncvOVFIcnZrUlJtZ2dDVU9WaG5RVHY4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQS8vLy9BRElUZFNwTUhiS3ZWQ0RFKzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVkNERS8xTWZ3djlUSDhIL1V4L0IvMU1md3Y5U0g3LzdTaHl0cnpFU2NTci8vLzhBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd01EQU10by93QlZQb1lzVVNDM3YxVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVFmeFA5U0hzRC9VaDYvLzFJZXYvOVNIci8vVWg2Ly8xSWV2LzlTSHIvL1N4eXd2ek1UZHl5bVBmOEFBUUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQxOWZVQW5hS1FIYmVwMXJWZkxjbi9WQi9HLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVVIOFAvVVI2Ky8xRWV2ZjlSSHIzL1VSNjkvMUVldmY5UkhyMy9VUjY5LzFFZXZmOVJIcjMvU2h1dHRTMFJhQjFQSHJrQUFBQUFBQUFBQUFBQUFBQUFlWGw1QURZMk5nbmY0TnlPMTh6dS9WOHR5ZjlVSDhiL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZCL0QvMUVldlA5UUhyci9VQjY3LzFBZXUvOVFIcnYvVUI2Ny8xQWV1LzlRSHJ2L1VCNjcvMUFldS85UUhycjlSaHFramhFR0tBa25EbG9BQUFBQUFBQUFBQUQvLy84QXhNVEVTL2IzOU8zWnp1Ly9YeTNKLzFRZnh2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFNZnd2OVFIYnIvVHgyNC8wOGR1UDlQSGJqL1R4MjQvMDhkdVA5UEhiai9UeDI0LzA4ZHVQOVBIYmovVHgyNC8wOGR1ZjlOSExUdFBoZVJTNXM1L3dBQUFBQUFtNXViQUhCd2NBL282T2l4Ky96Ni85ak83LzlmTGNuL1ZCL0cvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlUSDhIL1R4MjQvMDRkdHY5T0hiYi9UaDIyLzA0ZHR2OU9IYmIvVGgyMi8wNGR0djlPSGJiL1RoMjIvMDRkdHY5T0hiYi9UaDIyLzA0ZHR2OUpHNm14SXcxUkR6QVNjUUQvLy84QXljbkpSZlgxOWZENy9Qci8yTTN2LzF3cXlQOVNITVgvVWh6Ri8xSWN4ZjlTSE1YL1VoekYvMUljeGY5VEhjWC9VeDdBLzA0Y3RmOU5ITEwvVGh5ei8wNGNzLzlOSExQL1RSeXovMDBjcy85T0hMUC9UaHl6LzA0Y3MvOU9ITFAvVGh5ei8wNGNzLzlOSExQL1RoeXovMHdjc1BBL0ZvOUZZeVRrQUFBQUFBTGs1T1NOK2ZuNS8vcjYrZi9uNHZUL25vRGQvNVoyMnYrV2R0ci9sbmJhLzVaMjJ2K1dkdHIvbUhmYi8zNWcxLzlLTU1yL1NDL0gvMGd2eC85SUw4Zi9TQy9ILzBndngvOUlMOGIvU0MvRy8wZ3Z4djlITDhiL1J5L0cvMGN2eHY5SEw4Yi9SeS9HLzBjdnh2OUhMOFgvUnk3Ri96OHR1STBBQUFBQ2s1T1RGdS92NzhYNStmbi8rZm41Ly9uNStmLzYrdm4vK2ZyNS8vbjYrZi81K3ZuLytmcjUvL242K2YvOS9mbi91YjczL3poRjh2ODJRL0wvTmtQeS96WkQ4djgyUS9ML05rUHkvelpEOHY4MlEvTC9Oa1B5L3paRDh2ODJRL0wvTmtQeS96WkQ4djgyUS9ML05rUHkvelZDOGY4MVF2RC9Nei9teFI4bmpoYkR3OE16OVBUMDVmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejgrZis1dmZmL09FWDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODFRdkgvTkVIdi96UkI3Lzh6UU9ybEtUTzZNOVhWMVZEMzkvZjArZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vUHo1LzdtOTkvODRSZlQvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05VTHcvelJBN1A4MFFPdi9ORURyL3pOQTZmUXNOOGxRM2QzZFlmajQrUG41K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi84L1BuL3ViMzMvemhGOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3pWQjcvOHpRT24vTXovby96TS82UDh6UU9qL016L24rUzA0em1IaDRlRmwrUGo0K3ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96OCtmKzV2ZmYvT0VYMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgwUWU3L016L20vek0vNWY4elArYi9Nei9tL3pNLzV2OHlQK1g2TGpuUFplRGc0RnI0K1BqMytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QejUvN205OS84NFJmVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9ORUhzL3pJKzQvOHlQdVAvTWo3ai96SSs0Lzh5UHVQL01qN2ovekkrNGZjdE9NeGEzTnpjUXZmMzkrLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzgvUG4vdWIzMy96aEY5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96UkE2Lzh4UGVIL01UM2cvekU5NFA4eFBlRC9NVDNnL3pFOTRQOHhQZUQvTVQzZTd5czJ4a0xTMHRJajlmWDEyZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o4K2YrNHZmZi9Oa1AwL3pOQjlQODBRZlQvTkVIMC96UkI5UDgwUWZUL05FSDAvelpDOC84MVArbi9NanplL3pJNzNmOHlPOTMvTWp2ZC96STczZjh5TzkzL01qdmQvekk3M2Y4eE85clpLVE83STU2ZW5nank4dkt1K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vKy9yNS85emUrUCtjb3ZmL21xRDMvNXFnOS8rYW9QZi9tcUQzLzVxZzkvK2FvUGYvVW9Mei94MXA1LzhlYWViL0htbm0veDVwNXY4ZWFlWC9IbW5sL3g1cDVmOGVhT1gvSG1qbC95QmgzYTRqSm9rSS8vLy9BTzN0N1dyNStmbisrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rdnI1Ly96OCtmLzgvUG4vL1B6NS8vejgrZi84L1BuLy9QejUvL3o4K2Y5ZHZmei9BSmYrL3dDWi92OEFtZjcvQUpuKy93Q1ovdjhBbWY3L0FKbisvd0NaL3Y4QW1QNytBSkx4YWdDNC93RHI2K3NBNGVIaEpQYjI5dHY1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8xdTgvZjhBbHYvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1cvTnNBaWVja0FJL3hBTHU3dXdBQUFBQUE4dkx5Z2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9XN3o5L3dDVy8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSlAzZ1FBQUFBQUFjcjhBQUFBQUFPenM3QURrNU9RZTl2YjJ6UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZjlidlAzL0FKYi8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1cvTXdBaStvZUFKRHhBQUFBQUFBQUFBQUFzTEN3QVAvLy93RHY3KzlPK1BqNDdQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzF1OC9mOEFsdi8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QWwvN3NBSkwwVGdDci93QUFhN1FBQUFBQUFBQUFBQUFBQUFBQTF0YldBTFMwdEFQeTh2SnYrUGo0OVBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL1c3ejkvd0NXLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqKzlBQ1UrRzRBYnJnREFJUGFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNHVMaUFOZlgxd2J6OC9OeitQajQ4UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmOWJ2UDMvQUpiLy93Q1kvLzhBbVAvL0FKai8vd0NZL3ZBQWxmbHpBSVRjQmdDSzV3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0K1BqQU5qWTJBVHk4dkpaK1BqNDJ2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMXU3L2Y4QWxmLy9BSmYvL3dDWS8vOEFsLzdhQUpUNFdRQ0UzQVFBaXVjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTFOVFVBQjhmSHdEdzhQQXI5dmIyblBqNCtPMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vck52Ny8zYkcvUDlyd2Z6dE02cjduQUNSOVNzQUVSMEFBSVBaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPdnI2d0RqNCtNRzh2THlPdmIyOXBENCtQalMrZm41OHZuNStmMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvZm41K2ZMNitmalMvUGoya1AzMzhqci8rZUlHLy9mcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGg0ZUVBMXRiV0F1L3Y3eHYwOVBSSjl2YjJkdmIyOXBmMzkvZW85L2YzcVBiMjlwZjI5dloyOVBUMFNlL3Y3eHZXMXRZQzRlSGhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9nQi8vL2dBSC8vZ0FBZi93QUFELzRBQUFmOEFBQUQrQUFBQWZBQUFBRHdBQUFBNEFBQUFHQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBR0FBQUFCd0FBQUE4QUFBQVBnQUFBSDRBQUFCL0FBQUEvNEFBQWYvZ0FBZi84QUFQLy93QVAvJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgIHllbGxvdzogJ2RhdGE6aW1hZ2Uvdm5kbWljcm9zb2Z0aWNvbjtiYXNlNjQsQUFBQkFBSUFJQ0FBQUFFQUlBQ29FQUFBSmdBQUFCQVFBQUFCQUNBQWFBUUFBTTRRQUFBb0FBQUFJQUFBQUVBQUFBQUJBQ0FBQUFBQUFBQVFBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QVpLaFFBT1dBaUFFVjBLZ0JGZENvQU9XQWlBQmtxRkFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQThaQUFBQ2hBSEFFcDhKd0J2dTEwQWdOZVNBSW5sdUFDTjdjNEFqL0RYQUkvdzF3Q043YzRBaWVXNEFJRFhrZ0J2dTEwQVNud25BQW9RQndBOFpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFiTGdBQUFBQUZBRm1XTXdCLzFZd0FqL0RYQUpYNytRQ1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpYNytRQ1A3OWNBZnRXTUFGbVZNd0FBQUFVQUd5NEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE3djhBQUQxbUZRQjZ6WFlBa1BMZEFKZisvZ0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QNy9BSmYrL3dDVi9QNEFqdkRkQUhqS2RnQThaQlVBNmY4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy9BQUJXa0NZQWgrS29BSmI4K1FDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpmKy93Q1YrdjhBbFByL0FKVDYvd0NWK3Y4QWt2ZjVBSVBkcUFCVGpDWUEvLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0lDQUJiLy93QWthNXdxQW96cXV3Q1kvdjhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NYL2Y4QWsvai9BSlAzL3dDVDkvOEFrL2YvQUpQMy93Q1Q5LzhBa3ZiL0FJYml1d0JabHlvQS8vOEFBQUVDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUR6OC9NQXFKYUpIWkRENXJRTG5QNy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFsdnovQUpMMi93Q1I5UDhBa2ZUL0FKSDAvd0NSOVA4QWtmVC9BSkgwL3dDUjlQOEFrZlQvQUlUZnRBQlFoaDBBak8wQUFBQUFBQUFBQUFBQUFBQUFmWDE5QUR3OFBBbmkzdHVQdXVENS9RdWMvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKYjgvd0NROC84QWovSC9BSS94L3dDUDhmOEFqL0gvQUkveC93Q1A4ZjhBai9IL0FJL3gvd0NQOGY4QWp2RDlBSDdVandBaU9Ra0FTSGtBQUFBQUFBZ0lDQUQvLy84QXhjWEZUL2oxOU8rOTR2di9DcHovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDVisvOEFqL0gvQUkzdS93Q043djhBamU3L0FJM3Uvd0NON3Y4QWplNy9BSTN1L3dDTjd2OEFqZTcvQUkzdS93Q083djhBaXVudkFIQzhUd0QvL3dBQUJRZ0FxS2lvQUhwNmVoSHA2ZW0zL2Z2NS83emgrdjhLblAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbGZyL0FJN3Uvd0NNNi84QWpPdi9BSXpyL3dDTTYvOEFqT3YvQUl6ci93Q002LzhBak92L0FJenIvd0NNNi84QWpPdi9BSXpyL3dDTTYvOEFnOXkzQUVSeUVRQmVuUUQvLy84QXpNek1UZmIyOXZQOSsvbi92T0g2L3dxYi8vOEFsdi8vQUpiLy93Q1cvLzhBbHYvL0FKYi8vd0NXLy84QWwvLy9BSlQ1L3dDTDYvOEFpZWovQUluby93Q0o2UDhBaWVqL0FJbm8vd0NKNlA4QWllai9BSW5vL3dDSjZQOEFpZWovQUluby93Q0o2UDhBaWVqL0FJbm8vd0NINWZNQWI3NU5BTVAvQUFBQUFBWGw1ZVdYK2ZuNS8vdjYrZi9UNnZyL1didjkvMCszL2Y5UXQvMy9VTGY5LzFDMy9mOVF0LzMvVWJqOS96ZXcrLzhJbk8vL0I1bnIvd2VaNi84SG1ldi9CNW5xL3dlWjZ2OEhtZXIvQjVucS93ZVo2djhIbWVyL0I1anEvd2VZNnY4SG1Pbi9CNWpwL3dlWTZmOEhtT24vQnBqcC93ZVAxNWNCQUFBRnBLU2tIZkR3OE0vNStmbi8rZm41Ly9uNStmLzErUG4vOVBmNS8vVDMrZi8wOS9uLzlQZjUvL1QzK2YvNCtQbi9vK1Q2L3dxLy9mOEh2LzMvQ0wvOS93aS8vZjhJdi8zL0NMLzkvd2kvL2Y4SXYvMy9DTC84L3dpKy9QOEl2dnovQ0w3OC93aSsvUDhJdnZ6L0NMNzgvd2U5Ky84SHZQci9CcmJ4endSOXBSM0x5OHRBOWZYMTdQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vMzYrZitsNXZ2L0NjTC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh2LzMvQnIzNi93YTkrdjhHdXZic0JabkxRTnJhMm1EMzkvZjQrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vZnI1LzZYbSsvOEp3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I3Nzgvd2E3OS84R3V2Zi9CcnIzL3dhNTlmZ0ZvOWhnNHVMaWRQajQrUDM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi85K3ZuL3BlYjcvd25CLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dlKysvOEd1ZlgvQnJqMC93YTQ5UDhHdVBUL0JyZnovUVdtM1hUazVPUjYrUGo0L2ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly8zNitmK2w1dnYvQ2NILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhIdmZyL0JyZnkvd2EyOGY4R3R2SC9CcmJ4L3dhMjhmOEd0ZkQ5QmFmZGV1WGw1Vy80K1BqOCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9mcjUvNlhtKy84SndmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9CN3o1L3dhMTcvOEd0TzcvQnJUdS93YTA3djhHdE83L0JyVHUvd2F6N2Z3RnBkdHY0ZUhoVnZqNCtQYjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzkrdm4vcGViNy93bkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZTcrUDhHc3UzL0JySHIvd2F4Ni84R3Nldi9CckhyL3dheDYvOEdzZXYvQnJEcTlnV2gxVmJhMnRvejl2YjI1dm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvLzM2K2YrazVmdi9Cc0gvL3dQQS8vOER3UC8vQThELy93UEEvLzhEd1AvL0E4RC8vd1hBLy84R3V2Yi9CckRxL3dhdTZQOEdydWovQnE3by93YXU2UDhHcnVqL0JxN28vd2F1NlA4R3JlWG1CWm5MTTcrL3Z4SDA5UFRDK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vKy9yNS84M3Yrdjl4MnZ6L2J0bjkvMi9aL2Y5djJmMy9iOW45LzIvWi9mOXYyZjMvUmRMNS95WEc3djhteE96L0pzVHMveWJFNi84bXhPdi9Kc1RyL3lYRTYvOGx3K3YvSmNQci95Szk1Y0lRaXJBUi8vLy9BUER3OElINStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rdm41Ly9yNStmLzYrZm4vK3ZuNS8vcjUrZi82K2ZuLyt2bjUvL3I1K2YrSDhQei9PZXIrL3p6cS92ODg2djcvUE9yKy96enEvdjg4NnY3L1BPcisvenpxL3Y4ODZ2My9PdUR6Z1d6Ly93RDA5UFFBNStmbk5QZjM5K241K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS80WHcvZjg0Ni8vL08rdi8venZyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Ly96dnAvZWszMiswME91ZjZBTXJLeWdDenM3TUY4L1B6bXZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9oZkQ5L3pqci8vODc2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8venZyLy84NzYvLy9PdVg1bWlxcHR3VXd2ODhBQUFBQUFQUHo4d0RwNmVrdTkvZjMzZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZitGOFAzL09Pdi8venZyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Ly96dnAvZDAzM084dU91WDVBQUFBQUFBQUFBQUF2cjYrQVAvLy93RHg4ZkZsK1BqNDlmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzRYdy9mODQ2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8venZyLy84NzZ2NzFPZVAyWlk3Ly93QXVzOElBQUFBQUFBQUFBQUFBQUFBQTRPRGdBTlBUMHdqMDlQU0krZm41K3ZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2hmRDkvempyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Lytqcm0rWWd5eDlnSU5kUGxBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNmVucEFPSGg0UTMwOVBTTStmbjUrUG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmK0Y4UDMvT092Ly96dnIvLzg3Ni8vL08rdi8venZyLy9nNjUvcU1OdFhuRFRqZDd3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE2ZW5wQU9MaTRncjA5UFJ3K1BqNDUvbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvNFB3L2Y4MTYvLy9PZXYvL3p2ci8vODc2djduT3ViNWNEYlc1d28zM080QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRPRGdBTkhSMFFMeDhmRTg5L2Yzc2ZuNStmWDUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vdC9UNy80WHgvZitBOFAzMVhlejhzVG5rOXp3dXhkVUNOdFRrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUkVSRUFQLy8vd0RvNk9nTTlQVDBUZmYzOTZUNCtQamYrZm41K1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2ZqNStQamY5dmYzcFBMMDlFM202T2dNNy8zL0FQdGJPd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNNakl3RDE5ZlVBNHVMaUJ2SHg4U24xOWZWZDl2YjJqZmYzOTY3MzkvZTk5L2YzdmZmMzk2NzI5dmFOOWZYMVhmSHg4U25sNHVJRzlQWDFBRkVuSWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC93RC8vL2dBSC8vZ0FBZi93QUFELzRBQUFmOEFBQUQrQUFBQWZBQUFBRHdBQUFBNEFBQUFHQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBR0FBQUFCZ0FBQUFjQUFBQVBnQUFBSDRBQUFCL0FBQUEvNEFBQWYvQUFBUC84QUFQLy93QVAvS0FBQUFCQUFBQUFnQUFBQUFRQWdBQUFBQUFBQUJBQUFFZ3NBQUJJTEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJvcmdBQVMzNElBSFRETlFDQzIyd0FoK09NQUlmampBQ0MyMndBZE1RMUFFeC9DQUJvcndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVCckFBQUFBQUFBZWNzd0FJenNuZ0NVK09VQWwvMzdBSmorL3dDWS92OEFsLzM3QUpQMzVRQ0w2WjRBZDhnd0FBQUFBQUErYVFBQUFBQUFjWGQ2QVA4QUFBQU9pTnROQUpQMzJnQ1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmI4L3dDVStmOEFrL2ovQUk3dzJnQisxRTBBQUFBQUFFZDRBUG43L0FEYzJOVTVUN1AzM2dDWC8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKWDYvd0NSOC84QWtQTC9BSkR6L3dDUTgvOEFqT3plQUhyT09RQ1I5QUMzdDdjTzhlL3ZzR25BL2Y4QWxmLy9BSmYvL3dDWC8vOEFsLy8vQUpQNC93Q043djhBak96L0FJenMvd0NNN1A4QWpPei9BSXp0L3dDRzRyQUFZNm9PNHVMaVQvajM5L0dJemZ6L01hdisvelNzL3Y4MHJQNy9GYUg1L3dPVjdmOERsT3YvQTVUci93T1U2LzhEbE92L0E1VHIvd09VNi84RGsranhCSXZWVCszdDdaVDUrZm4vOGZiNS8rdnorZi9yOVBuLzZ2UDUvMW5SKy84RXZQei9CNzM4L3dlOS9QOEh2ZnovQjczOC93ZTkvUDhIdlB2L0I3cjQvd2F4N1pUeTh2SzcrZm41Ly9uNStmLzYrZm4vK3ZuNS8vbjUrZjllMWYzL0E4RC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3UDMvQnJ2My93YTU5ZjhHdE82NzgvUHp3Zm41K2YvNStmbi8rZm41Ly9uNStmLzQrZm4vWHRYOS93UEEvLzhId2YvL0I4SC8vd2ZCLy84SHYvei9CcmZ6L3dhMTcvOEd0ZS8vQnJIcXdmUHo4Nlg1K2ZuLytmbjUvL241K2YvNStmbi8rUG41LzJEVy9mOEd3Zi8vQ3NMLy93ckMvLzhKdi92L0NMWHUvd2l4NmY4SXNlbi9DTEhwL3dldDVLWHk4dkpvK2ZuNSt2bjUrZi81K2ZuLytmbjUvL241K2YvSTd2ci9xdWY3LzZ6bisvK201L3YvVGR6NS95elY5UDh1MWZUL0x0WDAveTdVOC9vb3lPcG83T3pzSC9mMzk5RDUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QcjUvLzM2K2YvKyt2bi85Zm41LzJydi92ODU3UC8vUE96Ly96enMvLzg4Ni8zUU91THpILy8vL3dEMDlQUmgrZm41OXZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL0g0K2Y5bzd2Ny9PT3YvL3p2ci8vODc2Ly8yT3VmNllVSC8vd0R1N3U0QTZlbnBCL2IyOW9UNStmbjMrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi94K1BuL1p1NysvemZyLy84NzYvLzNPdWo4aERmYzd3YzQ0UE1BQUFBQUFQSHg4UUR1N3U0STl2YjJhUGo0K05uNStmbjkrZm41Ly9uNStmLzUrZm4vOC9uNS80engvUDFTN1A3Wk8rbjhhRGZoOUFnNTVQY0FBQUFBQUFBQUFBQUFBQUFBNit2ckFOL2Yzd0gxOWZVbzkvZjNmdmo0K01INCtQamUrUGo0M3ZqNCtNSHE5dmgrdy9IMktBRE01d0ZrNGU4QUFBQUFBQUFBQUFEd0R3QUE0QWNBQU1BREFBQ0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBUUFBZ0FFQUFNQURBQURnQndBQScgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgfTsKLQotICByZXR1cm4gewotICAgIEZhdmljb25zQnlIdWU6IEZhdmljb25zQnlIdWUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmlsdGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmlsdGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ODE0NmEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2ZpbHRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIG1hdGNoTG93ZXIodmFsdWUsIHBhdHRlcm4pIHsKLSAgICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHBhdHRlcm4pICE9PSAtMTsKLSAgfQotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IgVGhlIGdlbmVyaWMgYmFzZSBjbGFzcyBmb3IgZmlsdGVyaW5nIGEgTW9kZWwgYmFzZWQgb24KLSAgICogdmFyaW91cyBydWxlcy4gVGhlIGJhc2UgY2xhc3MgcmV0dXJucyB0cnVlIGZvciBldmVyeXRoaW5nLgotICAgKi8KLSAgZnVuY3Rpb24gRmlsdGVyKCkgeyB9Ci0KLSAgRmlsdGVyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IE9iamVjdC5wcm90b3R5cGUsCi0KLSAgICBtYXRjaENvdW50ZXI6IGZ1bmN0aW9uKGNvdW50ZXIpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBtYXRjaENwdTogZnVuY3Rpb24oY3B1KSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgbWF0Y2hQcm9jZXNzOiBmdW5jdGlvbihwcm9jZXNzKSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgbWF0Y2hTbGljZTogZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBtYXRjaFRocmVhZDogZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvciBBIGZpbHRlciB0aGF0IG1hdGNoZXMgb2JqZWN0cyBieSB0aGVpciBuYW1lIG9yIGNhdGVnb3J5Ci0gICAqIGNhc2UgaW5zZW5zaXRpdmUuCi0gICAqIC5maW5kQWxsT2JqZWN0c01hdGNoaW5nRmlsdGVyCi0gICAqLwotICBmdW5jdGlvbiBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIodGV4dCkgewotICAgIEZpbHRlci5jYWxsKHRoaXMpOwotICAgIHRoaXMudGV4dF8gPSB0ZXh0LnRvTG93ZXJDYXNlKCk7Ci0KLSAgICBpZiAoIXRleHQubGVuZ3RoKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWx0ZXIgdGV4dCBpcyBlbXB0eS4nKTsKLSAgfQotICBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogRmlsdGVyLnByb3RvdHlwZSwKLQotICAgIG1hdGNoU2xpY2U6IGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICBpZiAoc2xpY2UudGl0bGUgPT09IHVuZGVmaW5lZCAmJiBzbGljZS5jYXRlZ29yeSA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHJldHVybiBtYXRjaExvd2VyKHNsaWNlLnRpdGxlLCB0aGlzLnRleHRfKSB8fAotICAgICAgICAgICghIXNsaWNlLmNhdGVnb3J5ICYmIG1hdGNoTG93ZXIoc2xpY2UuY2F0ZWdvcnksIHRoaXMudGV4dF8pKTsKLSAgICB9Ci0gIH07Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvciBBIGZpbHRlciB0aGF0IG1hdGNoZXMgb2JqZWN0cyB3aXRoIHRoZSBleGFjdCBnaXZlbiB0aXRsZS4KLSAgICovCi0gIGZ1bmN0aW9uIEV4YWN0VGl0bGVGaWx0ZXIodGV4dCkgewotICAgIEZpbHRlci5jYWxsKHRoaXMpOwotICAgIHRoaXMudGV4dF8gPSB0ZXh0OwotCi0gICAgaWYgKCF0ZXh0Lmxlbmd0aCkKLSAgICAgIHRocm93IG5ldyBFcnJvcignRmlsdGVyIHRleHQgaXMgZW1wdHkuJyk7Ci0gIH0KLSAgRXhhY3RUaXRsZUZpbHRlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBGaWx0ZXIucHJvdG90eXBlLAotCi0gICAgbWF0Y2hTbGljZTogZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgIHJldHVybiBzbGljZS50aXRsZSA9PT0gdGhpcy50ZXh0XzsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBGaWx0ZXI6IEZpbHRlciwKLSAgICBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXI6IFRpdGxlT3JDYXRlZ29yeUZpbHRlciwKLSAgICBFeGFjdFRpdGxlRmlsdGVyOiBFeGFjdFRpdGxlRmlsdGVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2ZpbHRlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmlsdGVyX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJjYjA1Ny4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmlsdGVyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgVGl0bGVPckNhdGVnb3J5RmlsdGVyID0gdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXI7Ci0gIHZhciBFeGFjdFRpdGxlRmlsdGVyID0gdHIuYy5FeGFjdFRpdGxlRmlsdGVyOwotCi0gIHRlc3QoJ3RpdGxlT3JDYXRlZ29yeUZpbHRlcicsIGZ1bmN0aW9uKCkgewotICAgIGFzc2VydC50aHJvdyhmdW5jdGlvbigpIHsKLSAgICAgIG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoKTsKLSAgICB9KTsKLSAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7Ci0gICAgICBuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCcnKTsKLSAgICB9KTsKLQotICAgIHZhciBzMCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUNhdGVnb3J5KCdjYXQnLCAnYScsIDEsIDMpOwotICAgIGFzc2VydC5pc1RydWUobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignYScpLm1hdGNoU2xpY2UoczApKTsKLSAgICBhc3NlcnQuaXNUcnVlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2NhdCcpLm1hdGNoU2xpY2UoczApKTsKLSAgICBhc3NlcnQuaXNUcnVlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2F0JykubWF0Y2hTbGljZShzMCkpOwotICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2InKS5tYXRjaFNsaWNlKHMwKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignWCcpLm1hdGNoU2xpY2UoczApKTsKLQotICAgIHZhciBzMSA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUNhdGVnb3J5KCdjYXQnLCAnYWJjJywgMSwgMyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdhYmMnKS5tYXRjaFNsaWNlKHMxKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdBYmMnKS5tYXRjaFNsaWNlKHMxKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdjYXQnKS5tYXRjaFNsaWNlKHMxKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdDYXQnKS5tYXRjaFNsaWNlKHMxKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignY2F0MScpLm1hdGNoU2xpY2UoczEpKTsKLSAgICBhc3NlcnQuaXNGYWxzZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdYJykubWF0Y2hTbGljZShzMSkpOwotICB9KTsKLQotICB0ZXN0KCdleGFjdFRpdGxlRmlsdGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0LnRocm93KGZ1bmN0aW9uKCkgewotICAgICAgbmV3IEV4YWN0VGl0bGVGaWx0ZXIoKTsKLSAgICB9KTsKLSAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7Ci0gICAgICBuZXcgRXhhY3RUaXRsZUZpbHRlcignJyk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgczAgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZCgnYScsIDEsIDMpOwotICAgIGFzc2VydC5pc1RydWUobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ2EnKS5tYXRjaFNsaWNlKHMwKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ2InKS5tYXRjaFNsaWNlKHMwKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ0EnKS5tYXRjaFNsaWNlKHMwKSk7Ci0KLSAgICB2YXIgczEgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZCgnYWJjJywgMSwgMyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShuZXcgRXhhY3RUaXRsZUZpbHRlcignYWJjJykubWF0Y2hTbGljZShzMSkpOwotICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBFeGFjdFRpdGxlRmlsdGVyKCdBYmMnKS5tYXRjaFNsaWNlKHMxKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ2JjJykubWF0Y2hTbGljZShzMSkpOwotICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBFeGFjdFRpdGxlRmlsdGVyKCdhJykubWF0Y2hTbGljZShzMSkpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmluZF9jb250cm9sLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmluZF9jb250cm9sLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0YzFlM2EuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2ZpbmRfY29udHJvbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTgyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmluZF9jb250cm9sbGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHJhY2luZy1maW5kLWNvbnRyb2wiIGNvbnN0cnVjdG9yPSJUcmFjaW5nRmluZENvbnRyb2wiPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgICAgZGl2LnJvb3QgewotICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgIH0KLSAgICAgIGlucHV0IHsKLSAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bzsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKLSAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpOwotICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgICAgICBoZWlnaHQ6IDE5cHg7Ci0gICAgICAgIG1hcmdpbi1ib3R0b206IDFweDsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1hcmdpbi1yaWdodDogMDsKLSAgICAgICAgbWFyZ2luLXRvcDogMXB4OwotICAgICAgICBwYWRkaW5nOiAwOwotICAgICAgICB3aWR0aDogMTcwcHg7Ci0gICAgICB9Ci0gICAgICBpbnB1dDpmb2N1cyB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgICAgfQotICAgICAgLmJ1dHRvbiB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7Ci0gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTsKLSAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7Ci0gICAgICAgIGZvbnQtc2l6ZTogMTRweDsKLSAgICAgICAgaGVpZ2h0OiAxN3B4OwotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAgICAgICAgbWFyZ2luLXRvcDogMXB4OwotICAgICAgfQotICAgICAgLmJ1dHRvbiA6Zmlyc3Qtb2YtdHlwZSB7Ci0gICAgICAgIG1hcmdpbi1yaWdodDogMDsKLSAgICAgIH0KLSAgICAgICNoaXRDb3VudCB7Ci0gICAgICAgIGhlaWdodDogMTlweDsKLSAgICAgICAgbGVmdDogMDsKLSAgICAgICAgb3BhY2l0eTogMC4yNTsKLSAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci0gICAgICAgIHRvcDogMnB4OwotICAgICAgICB3aWR0aDogMTcwcHg7Ci0gICAgICAgIHotaW5kZXg6IDE7Ci0gICAgICB9Ci0gICAgICAjc3Bpbm5lciB7Ci0gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKLSAgICAgICAgd2lkdGg6IDhweDsKLSAgICAgICAgaGVpZ2h0OiA4cHg7Ci0gICAgICAgIGxlZnQ6IDE1NHB4OwotICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLSAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICB0b3A6IDRweDsKLSAgICAgICAgei1pbmRleDogMTsKLQotICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKLSAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTsKLSAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpOwotICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7Ci0KLSAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKLSAgICAgIH0KLSAgICAgIEBrZXlmcmFtZXMgc3BpbiB7IDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH0KLSAgICA8L3N0eWxlPgotCi0gICAgPGRpdiBjbGFzcz0icm9vdCI+Ci0gICAgICA8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2ZpbHRlcicKLSAgICAgICAgICBvbi1pbnB1dD0ie3sgZmlsdGVyVGV4dENoYW5nZWQgfX0iCi0gICAgICAgICAgb24ta2V5cHJlc3M9Int7IGZpbHRlcktleVByZXNzIH19IgotICAgICAgICAgIG9uLWtleWRvd249Int7IGZpbHRlcktleURvd24gfX0iCi0gICAgICAgICAgb24tYmx1cj0ie3sgZmlsdGVyQmx1ciB9fSIKLSAgICAgICAgICBvbi1mb2N1cz0ie3sgZmlsdGVyRm9jdXMgfX0iCi0gICAgICAgICAgb24tbW91c2V1cD0ie3sgZmlsdGVyTW91c2VVcCB9fSIgLz4KLSAgICAgIDxkaXYgaWQ9InNwaW5uZXIiPjwvZGl2PgotICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uIiBvbi1jbGljaz0ie3sgZmluZFByZXZpb3VzIH19Ij4mbGFycjs8L2Rpdj4KLSAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbiIgb24tY2xpY2s9Int7IGZpbmROZXh0IH19Ij4mcmFycjs8L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImhpdENvdW50Ij4wIG9mIDA8L2Rpdj4KLSAgICA8L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgZmlsdGVyS2V5RG93bjogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMjcpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgIGlmIChlLmtleUNvZGUgIT09IDEzKSAvLwotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGUuc2hpZnRLZXkgPyB0aGlzLmZpbmRQcmV2aW91cygpIDogdGhpcy5maW5kTmV4dCgpOwotICAgIH0sCi0KLSAgICBmaWx0ZXJLZXlQcmVzczogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMjcpCi0gICAgICAgIHJldHVybjsKLSAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfSwKLQotICAgIGZpbHRlckJsdXI6IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMudXBkYXRlSGl0Q291bnRFbCgpOwotICAgIH0sCi0KLSAgICBmaWx0ZXJGb2N1czogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy4kLmZpbHRlci5zZWxlY3QoKTsKLSAgICB9LAotCi0gICAgLy8gUHJldmVudCB0aGF0IHRoZSBpbnB1dCB0ZXh0IGlzIGRlc2VsZWN0ZWQgYWZ0ZXIgZm9jdXNpbmcgdGhlIGZpbmQKLSAgICAvLyBjb250cm9sIHdpdGggdGhlIG1vdXNlLgotICAgIGZpbHRlck1vdXNlVXA6IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICB9LAotCi0gICAgZ2V0IGNvbnRyb2xsZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyXzsKLSAgICB9LAotCi0gICAgc2V0IGNvbnRyb2xsZXIoYykgewotICAgICAgdGhpcy5jb250cm9sbGVyXyA9IGM7Ci0gICAgICB0aGlzLnVwZGF0ZUhpdENvdW50RWwoKTsKLSAgICB9LAotCi0gICAgZm9jdXM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLmZpbHRlci5mb2N1cygpOwotICAgIH0sCi0KLSAgICBnZXQgaGFzRm9jdXMoKSB7Ci0gICAgICByZXR1cm4gdGhpcyA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsKLSAgICB9LAotCi0gICAgZmlsdGVyVGV4dENoYW5nZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy4kLmhpdENvdW50LnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB0aGlzLiQuc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOwotICAgICAgdGhpcy5jb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKHRoaXMuJC5maWx0ZXIudmFsdWUpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMuJC5zcGlubmVyLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsKLSAgICAgICAgdGhpcy51cGRhdGVIaXRDb3VudEVsKCk7Ci0gICAgICB9LmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICBmaW5kTmV4dDogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5jb250cm9sbGVyKQotICAgICAgICB0aGlzLmNvbnRyb2xsZXIuZmluZE5leHQoKTsKLSAgICAgIHRoaXMudXBkYXRlSGl0Q291bnRFbCgpOwotICAgIH0sCi0KLSAgICBmaW5kUHJldmlvdXM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuY29udHJvbGxlcikKLSAgICAgICAgdGhpcy5jb250cm9sbGVyLmZpbmRQcmV2aW91cygpOwotICAgICAgdGhpcy51cGRhdGVIaXRDb3VudEVsKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUhpdENvdW50RWw6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmNvbnRyb2xsZXIgfHwgIXRoaXMuaGFzRm9jdXMpIHsKLSAgICAgICAgdGhpcy4kLmhpdENvdW50LnRleHRDb250ZW50ID0gJyc7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIG4gPSB0aGlzLmNvbnRyb2xsZXIuZmlsdGVySGl0cy5sZW5ndGg7Ci0gICAgICB2YXIgaSA9IG4gPT09IDAgPyAtMSA6IHRoaXMuY29udHJvbGxlci5jdXJyZW50SGl0SW5kZXg7Ci0gICAgICB0aGlzLiQuaGl0Q291bnQudGV4dENvbnRlbnQgPSAoaSArIDEpICsgJyBvZiAnICsgbjsKLSAgICB9LAotCi0gICAgc2V0VGV4dDogZnVuY3Rpb24oc3RyaW5nKSB7Ci0gICAgICB0aGlzLiQuZmlsdGVyLnZhbHVlID0gc3RyaW5nOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmluZF9jb250cm9sX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9maW5kX2NvbnRyb2xfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjFlZDlmLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9maW5kX2NvbnRyb2xfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maW5kX2NvbnRyb2wuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGN0bCA9IG5ldyBUcmFjaW5nRmluZENvbnRyb2woKTsKLSAgICBjdGwuY29udHJvbGxlciA9IHsKLSAgICAgIGZpbmROZXh0OiBmdW5jdGlvbigpIHsgfSwKLSAgICAgIGZpbmRQcmV2aW91czogZnVuY3Rpb24oKSB7IH0sCi0gICAgICByZXNldDogZnVuY3Rpb24oKSB7fSwKLQotICAgICAgZmlsdGVySGl0czogWydhJywgJ2InXSwKLQotICAgICAgY3VycmVudEhpdEluZGV4OiAwCi0gICAgfTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjdGwpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmluZF9jb250cm9sbGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvZmluZF9jb250cm9sbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzN2M4YWEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2ZpbmRfY29udHJvbGxlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgRmluZENvbnRyb2xsZXIuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBUYXNrID0gdHIuYi5UYXNrOwotCi0gIGZ1bmN0aW9uIEZpbmRDb250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpIHsKLSAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfID0gc2VsZWN0aW9uQ29udHJvbGxlcjsKLSAgICB0aGlzLmZpbHRlckhpdHNfID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgdGhpcy5jdXJyZW50SGl0SW5kZXhfID0gLTE7Ci0gICAgdGhpcy5hY3RpdmVQcm9taXNlXyA9IFByb21pc2UucmVzb2x2ZSgpOwotICAgIHRoaXMuYWN0aXZlVGFza18gPSB1bmRlZmluZWQ7Ci0gIH07Ci0KLSAgRmluZENvbnRyb2xsZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKLQotICAgIGdldCBtb2RlbCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLm1vZGVsOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uQ29udHJvbGxlcigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfOwotICAgIH0sCi0KLSAgICBlbnF1ZXVlT3BlcmF0aW9uXzogZnVuY3Rpb24ob3BlcmF0aW9uKSB7Ci0gICAgICB2YXIgdGFzazsKLSAgICAgIGlmIChvcGVyYXRpb24gaW5zdGFuY2VvZiB0ci5iLlRhc2spCi0gICAgICAgIHRhc2sgPSBvcGVyYXRpb247Ci0gICAgICBlbHNlCi0gICAgICAgIHRhc2sgPSBuZXcgdHIuYi5UYXNrKG9wZXJhdGlvbiwgdGhpcyk7Ci0gICAgICBpZiAodGhpcy5hY3RpdmVUYXNrXykgewotICAgICAgICB0aGlzLmFjdGl2ZVRhc2tfID0gdGhpcy5hY3RpdmVUYXNrXy5lbnF1ZXVlKHRhc2spOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gV2UncmUgZW5xdWV1aW5nIHRoZSBmaXJzdCB0YXNrLCBzY2hlZHVsZSBpdC4KLSAgICAgICAgdGhpcy5hY3RpdmVUYXNrXyA9IHRhc2s7Ci0gICAgICAgIHRoaXMuYWN0aXZlUHJvbWlzZV8gPSBUYXNrLlJ1bldoZW5JZGxlKHRoaXMuYWN0aXZlVGFza18pOwotICAgICAgICB0aGlzLmFjdGl2ZVByb21pc2VfLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdGhpcy5hY3RpdmVQcm9taXNlXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICB0aGlzLmFjdGl2ZVRhc2tfID0gdW5kZWZpbmVkOwotICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBVcGRhdGVzIHRoZSBmaWx0ZXIgaGl0cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgfGZpbHRlclRleHR8LiBSZXR1cm5zIGEKLSAgICAgKiBwcm9taXNlIHdoaWNoIHJlc29sdmVzIHdoZW4gfGZpbHRlckhpdHN8IGhhcyBiZWVuIHJlZnJlc2hlZC4KLSAgICAgKi8KLSAgICBzdGFydEZpbHRlcmluZzogZnVuY3Rpb24oZmlsdGVyVGV4dCkgewotICAgICAgdmFyIHNjID0gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzsKLSAgICAgIGlmICghc2MpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgLy8gVE9ETyhiZWF1ZG9pbik6IENhbmNlbCBhbnl0aGluZyBsZWZ0IGluIHRoZSB0YXNrIHF1ZXVlLCB3aXRob3V0Ci0gICAgICAvLyBpbnZhbGlkYXRpbmcgdGhlIHByb21pc2UuCi0gICAgICB0aGlzLmVucXVldWVPcGVyYXRpb25fKGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLmZpbHRlckhpdHNfID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICAgIHRoaXMuY3VycmVudEhpdEluZGV4XyA9IC0xOwotICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgLy8gVHJ5IGNvbnN0cnVjdGluZyBhIFVJU3RhdGUgZnJvbSB0aGUgZmlsdGVyVGV4dC4KLSAgICAgIC8vIFVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyB3aWxsIHRocm93IGFuIGVycm9yIG9ubHkgaWYgdGhlIHN0cmluZwotICAgICAgLy8gaXMgc3ludGFjdGljYWxseSBjb3JyZWN0IHRvIGEgVUkgc3RhdGUgc3RyaW5nIGJ1dCB3aXRoIGludmFsaWQgdmFsdWVzLgotICAgICAgLy8gSXQgd2lsbCByZXR1cm4gdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIHN5bnRhY3RpYyBtYXRjaC4KLSAgICAgIHZhciBzdGF0ZUZyb21TdHJpbmc7Ci0gICAgICB0cnkgewotICAgICAgICBzdGF0ZUZyb21TdHJpbmcgPSBzYy51aVN0YXRlRnJvbVN0cmluZyhmaWx0ZXJUZXh0KTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdGhpcy5lbnF1ZXVlT3BlcmF0aW9uXyhmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgb3ZlcmxheSA9IG5ldyB0ci5iLnVpLk92ZXJsYXkoKTsKLSAgICAgICAgICBvdmVybGF5LnRleHRDb250ZW50ID0gZS5tZXNzYWdlOwotICAgICAgICAgIG92ZXJsYXkudGl0bGUgPSAnVUkgU3RhdGUgTmF2aWdhdGlvbiBFcnJvcic7Ci0gICAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVByb21pc2VfOwotICAgICAgfQotCi0gICAgICBpZiAoc3RhdGVGcm9tU3RyaW5nICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5lbnF1ZXVlT3BlcmF0aW9uXygKLSAgICAgICAgICAgIHNjLm5hdlRvUG9zaXRpb24uYmluZCh0aGlzLCBzdGF0ZUZyb21TdHJpbmcsIHRydWUpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIGZpbHRlclRleHQgaXMgbm90IGEgbmF2U3RyaW5nIGhlcmUgLS0gcHJvY2VlZCB3aXRoIGZpbmQgYW5kIGZpbHRlci4KLSAgICAgICAgaWYgKGZpbHRlclRleHQubGVuZ3RoID09PSAwKSB7Ci0gICAgICAgICAgdGhpcy5lbnF1ZXVlT3BlcmF0aW9uXyhzYy5maW5kVGV4dENsZWFyZWQuYmluZChzYykpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBmaWx0ZXIgPSBuZXcgdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoZmlsdGVyVGV4dCk7Ci0gICAgICAgICAgdmFyIGZpbHRlckhpdHMgPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgICAgICB0aGlzLmVucXVldWVPcGVyYXRpb25fKHNjLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2soCi0gICAgICAgICAgICAgIGZpbHRlciwgZmlsdGVySGl0cykpOwotICAgICAgICAgIHRoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0aGlzLmZpbHRlckhpdHNfID0gZmlsdGVySGl0czsKLSAgICAgICAgICAgIHNjLmZpbmRUZXh0Q2hhbmdlZFRvKGZpbHRlckhpdHMpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVByb21pc2VfOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBtb3N0IHJlY2VudCBmaWx0ZXIgaGl0cyBhcyBhIHRyLmMuU2VsZWN0aW9uLiBDYWxsCi0gICAgICogfHN0YXJ0RmlsdGVyaW5nfCB0byBlbnN1cmUgdGhpcyBpcyB1cCB0byBkYXRlIGFmdGVyIHRoZSBmaWx0ZXIgc2V0dGluZ3MKLSAgICAgKiBoYXZlIGJlZW4gY2hhbmdlZC4KLSAgICAgKi8KLSAgICBnZXQgZmlsdGVySGl0cygpIHsKLSAgICAgIHJldHVybiB0aGlzLmZpbHRlckhpdHNfOwotICAgIH0sCi0KLSAgICBnZXQgY3VycmVudEhpdEluZGV4KCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEhpdEluZGV4XzsKLSAgICB9LAotCi0gICAgZmluZF86IGZ1bmN0aW9uKGRpcikgewotICAgICAgdmFyIGZpcnN0SGl0ID0gdGhpcy5jdXJyZW50SGl0SW5kZXhfID09PSAtMTsKLSAgICAgIGlmIChmaXJzdEhpdCAmJiBkaXIgPCAwKQotICAgICAgICB0aGlzLmN1cnJlbnRIaXRJbmRleF8gPSAwOwotCi0gICAgICB2YXIgTiA9IHRoaXMuZmlsdGVySGl0cy5sZW5ndGg7Ci0gICAgICB0aGlzLmN1cnJlbnRIaXRJbmRleF8gPSAodGhpcy5jdXJyZW50SGl0SW5kZXhfICsgZGlyICsgTikgJSBOOwotCi0gICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5maW5kRm9jdXNDaGFuZ2VkVG8oCi0gICAgICAgICAgdGhpcy5maWx0ZXJIaXRzLnN1YlNlbGVjdGlvbih0aGlzLmN1cnJlbnRIaXRJbmRleF8sIDEpKTsKLSAgICB9LAotCi0gICAgZmluZE5leHQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5maW5kXygxKTsKLSAgICB9LAotCi0gICAgZmluZFByZXZpb3VzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuZmluZF8oLTEpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIEZpbmRDb250cm9sbGVyOiBGaW5kQ29udHJvbGxlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9maW5kX2NvbnRyb2xsZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2ZpbmRfY29udHJvbGxlcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3OWQ1ZmUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2ZpbmRfY29udHJvbGxlcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS90YXNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2ZpbmRfY29udHJvbGxlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBUYXNrID0gdHIuYi5UYXNrOwotCi0gIC8qCi0gICAqIEp1c3QgZW5vdWdoIG9mIHRoZSBTZWxlY3Rpb25Db250cm9sbGVyIHRvIHN1cHBvcnQgdGhlIHRlc3RzIGJlbG93LgotICAgKi8KLSAgZnVuY3Rpb24gRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKSB7Ci0gICAgdGhpcy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uUmV0dXJuVmFsdWUgPSBbXTsKLQotICAgIHRoaXMudmlld3BvcnQgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHRoaXMuZmluZE1hdGNoZXMgPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgfQotCi0gIEZha2VTZWxlY3Rpb25Db250cm9sbGVyLnByb3RvdHlwZSA9IHsKLSAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgewotICAgICAgcmV0dXJuIG5ldyBUYXNrKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgbiA9IHRoaXMuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlLmxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAgICBzZWxlY3Rpb24ucHVzaCgKLSAgICAgICAgICAgICAgdGhpcy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uUmV0dXJuVmFsdWVbaV0pOwotICAgICAgICB9Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9LAotCi0gICAgdWlTdGF0ZUZyb21TdHJpbmc6IGZ1bmN0aW9uKHN0cmluZykgewotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZmluZFRleHRDaGFuZ2VkVG86IGZ1bmN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy5maW5kTWF0Y2hlcyA9IHNlbGVjdGlvbjsKLSAgICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgfSwKLQotICAgIGZpbmRGb2N1c0NoYW5nZWRUbzogZnVuY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgZmluZFRleHRDbGVhcmVkOiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICB0aGlzLmZpbmRNYXRjaGVzID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgfQotICB9OwotCi0gIGZ1bmN0aW9uIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhhLCBiLCBvcHRfbWVzc2FnZSkgewotICAgIGlmIChhLmxlbmd0aCA9PT0gYi5sZW5ndGgpIHsKLSAgICAgIHZhciBvayA9IHRydWU7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgb2sgJj0gKGFbaV0gPT09IGJbaV0pOwotICAgICAgfQotICAgICAgaWYgKG9rKQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdmFyIG1lc3NhZ2UgPSBvcHRfbWVzc2FnZSB8fCAnRXhwZWN0ZWQgYXJyYXkgJyArIGEgKyAnLCBnb3QgYXJyYXkgJyArIGI7Ci0gICAgdGhyb3cgbmV3IHRyLmIudW5pdHRlc3QuVGVzdEVycm9yKG1lc3NhZ2UpOwotICB9OwotCi0gIHRlc3QoJ2ZpbmRDb250cm9sbGVyTm9Nb2RlbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5GaW5kQ29udHJvbGxlcihzZWxlY3Rpb25Db250cm9sbGVyKTsKLSAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7Ci0gICAgY29udHJvbGxlci5maW5kUHJldmlvdXMoKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZENvbnRyb2xsZXJFbXB0eUhpdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5GaW5kQ29udHJvbGxlcihzZWxlY3Rpb25Db250cm9sbGVyKTsKLQotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5maW5kTWF0Y2hlcyA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKLSAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW10sIHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uKTsKLSAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW10sIHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZE1hdGNoZXMpOwotICAgIGNvbnRyb2xsZXIuZmluZFByZXZpb3VzKCk7Ci0gICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtdLCBzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbik7Ci0gICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtdLCBzZWxlY3Rpb25Db250cm9sbGVyLmZpbmRNYXRjaGVzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZENvbnRyb2xsZXJPbmVIaXQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpOwotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmMuRmluZENvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICB2YXIgczEgPSB7Z3VpZDogMX07Ci0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uUmV0dXJuVmFsdWUgPSBbCi0gICAgICBzMQotICAgIF07Ci0gICAgdmFyIHByb21pc2UgPSBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCdhc2RmJyk7Ci0gICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtdLCBzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbik7Ci0gICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxXSwgc2VsZWN0aW9uQ29udHJvbGxlci5maW5kTWF0Y2hlcyk7Ci0gICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7Ci0gICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxXSwgc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24pOwotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMV0sIHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZE1hdGNoZXMpOwotICAgICAgY29udHJvbGxlci5maW5kTmV4dCgpOwotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMV0sIHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uKTsKLSAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBzZWxlY3Rpb25Db250cm9sbGVyLmZpbmRNYXRjaGVzKTsKLSAgICAgIGNvbnRyb2xsZXIuZmluZFByZXZpb3VzKCk7Ci0gICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxXSwgc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24pOwotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMV0sIHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZE1hdGNoZXMpOwotICAgIH0pOwotICAgIHJldHVybiBwcm9taXNlOwotICB9KTsKLQotICB0ZXN0KCdmaW5kQ29udHJvbGxlck11bHRpcGxlSGl0cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5GaW5kQ29udHJvbGxlcihzZWxlY3Rpb25Db250cm9sbGVyKTsKLQotICAgIHZhciBzMSA9IHtndWlkOiAxfTsKLSAgICB2YXIgczIgPSB7Z3VpZDogMn07Ci0gICAgdmFyIHMzID0ge2d1aWQ6IDN9OwotCi0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uUmV0dXJuVmFsdWUgPSBbCi0gICAgICBzMSwgczIsIHMzCi0gICAgXTsKLSAgICB2YXIgcHJvbWlzZSA9IGNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcoJ2FzZGYnKTsKLSAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAvLyBMb29wIHRocm91Z2ggaGl0cyB0aGVuIHdoZW4gd2Ugd3JhcCwgdHJ5IG1vdmluZyBiYWNrd2FyZC4KLSAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbXSwgc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24pOwotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMSwgczIsIHMzXSwgc2VsZWN0aW9uQ29udHJvbGxlci5maW5kTWF0Y2hlcyk7Ci0gICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7Ci0gICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxXSwgc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24pOwotICAgICAgY29udHJvbGxlci5maW5kTmV4dCgpOwotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMl0sIHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uKTsKLSAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKLSAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczNdLCBzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbik7Ci0gICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7Ci0gICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxXSwgc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24pOwotICAgICAgY29udHJvbGxlci5maW5kUHJldmlvdXMoKTsKLSAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczNdLCBzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbik7Ci0gICAgICBjb250cm9sbGVyLmZpbmRQcmV2aW91cygpOwotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMl0sIHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uKTsKLSAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczEsIHMyLCBzM10sIHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZE1hdGNoZXMpOwotICAgIH0pOwotICAgIHJldHVybiBwcm9taXNlOwotICB9KTsKLQotICB0ZXN0KCdmaW5kQ29udHJvbGxlckNoYW5nZUZpbHRlckFmdGVyTmV4dCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5GaW5kQ29udHJvbGxlcihzZWxlY3Rpb25Db250cm9sbGVyKTsKLQotICAgIHZhciBzMSA9IHtndWlkOiAxfTsKLSAgICB2YXIgczIgPSB7Z3VpZDogMn07Ci0gICAgdmFyIHMzID0ge2d1aWQ6IDN9OwotICAgIHZhciBzNCA9IHtndWlkOiA0fTsKLQotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlID0gWwotICAgICAgczEsIHMyLCBzMwotICAgIF07Ci0gICAgdmFyIHByb21pc2UgPSBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCdhc2RmJyk7Ci0gICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgLy8gTG9vcCB0aHJvdWdoIGhpdHMgdGhlbiB3aGVuIHdlIHdyYXAsIHRyeSBtb3ZpbmcgYmFja3dhcmQuCi0gICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7Ci0gICAgICBzZWxlY3Rpb25Db250cm9sbGVyLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25SZXR1cm5WYWx1ZSA9IFsKLSAgICAgICAgczQKLSAgICAgIF07Ci0KLSAgICAgIHZhciBuZXh0UHJvbWlzZSA9IGNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcoJ2FzZGZzZicpOwotICAgICAgbmV4dFByb21pc2UudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgY29udHJvbGxlci5maW5kTmV4dCgpOwotICAgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3M0XSwgc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24pOwotICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIHByb21pc2U7Ci0gIH0pOwotCi0gIHRlc3QoJ2ZpbmRDb250cm9sbGVyU2VsZWN0c0FsbEl0ZW1zRmlyc3QnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpOwotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmMuRmluZENvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICB2YXIgczEgPSB7Z3VpZDogMX07Ci0gICAgdmFyIHMyID0ge2d1aWQ6IDJ9OwotICAgIHZhciBzMyA9IHtndWlkOiAzfTsKLSAgICBzZWxlY3Rpb25Db250cm9sbGVyLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25SZXR1cm5WYWx1ZSA9IFsKLSAgICAgIHMxLCBzMiwgczMKLSAgICBdOwotICAgIHZhciBwcm9taXNlID0gY29udHJvbGxlci5zdGFydEZpbHRlcmluZygnYXNkZnNmJyk7Ci0gICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtdLCBzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbik7Ci0gICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxLCBzMiwgczNdLCBzZWxlY3Rpb25Db250cm9sbGVyLmZpbmRNYXRjaGVzKTsKLSAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKLSAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbik7Ci0gICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7Ci0gICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MyXSwgc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24pOwotICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMSwgczIsIHMzXSwgc2VsZWN0aW9uQ29udHJvbGxlci5maW5kTWF0Y2hlcyk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIHByb21pc2U7Ci0gIH0pOwotCi0gIHRlc3QoJ2ZpbmRDb250cm9sbGVyV2l0aFJlYWxUaW1lbGluZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgewotICAgICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0gICAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoCi0gICAgICAgICAgJycsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICAgIG1vZGVsLnQxID0gdDE7Ci0gICAgfSk7Ci0KLSAgICB2YXIgdGltZWxpbmUgPSBuZXcgdHIuYy5UaW1lbGluZVZpZXcoKTsKLSAgICB0aW1lbGluZS5tb2RlbCA9IG1vZGVsOwotCi0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSB0aW1lbGluZS5zZWxlY3Rpb25Db250cm9sbGVyOwotICAgIHZhciBjb250cm9sbGVyID0gdGltZWxpbmUuZmluZEN0bF8uY29udHJvbGxlcjsKLQotICAgIC8vIFRlc3QgZmluZCB3aXRoIG5vIGZpbHRlclRleHQuCi0gICAgY29udHJvbGxlci5maW5kTmV4dCgpOwotCi0gICAgLy8gVGVzdCBmaW5kIHdpdGggZmlsdGVyIHR4dC4KLSAgICB2YXIgcHJvbWlzZSA9IGNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcoJ2EnKTsKLSAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uLmxlbmd0aCwgMCk7Ci0gICAgICBhc3NlcnQuZGVlcEVxdWFsKHRyLmIuYXNBcnJheShzZWxlY3Rpb25Db250cm9sbGVyLmZpbmRNYXRjaGVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwudDEuc2xpY2VHcm91cC5zbGljZXMpOwotCi0gICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7Ci0gICAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3Rpb24ubGVuZ3RoLCAxKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvblswXSwKLSAgICAgICAgICAgICAgICAgICBtb2RlbC50MS5zbGljZUdyb3VwLnNsaWNlc1swXSk7Ci0KLSAgICAgIHZhciBuZXh0UHJvbWlzZSA9IGNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcoJ3h4eCcpOwotICAgICAgbmV4dFByb21pc2UudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZE1hdGNoZXMubGVuZ3RoLCAwKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uLmxlbmd0aCwgMSk7Ci0gICAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uLmxlbmd0aCwgMCk7Ci0gICAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uLmxlbmd0aCwgMCk7Ci0gICAgICB9KTsKLSAgICAgIHJldHVybiBuZXh0UHJvbWlzZTsKLSAgICB9KTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZENvbnRyb2xsZXJOYXZpZ2F0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5jLkZpbmRDb250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpOwotCi0gICAgdmFyIG5hdlRvUG9zaXRpb25DYWxsQ291bnQgPSAwOwotICAgIHZhciBmaW5kVGV4dENsZWFyZWRDYWxsQ291bnQgPSAwOwotICAgIHZhciBmYWtlVUlTdGF0ZSA9IHt9OwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIudWlTdGF0ZUZyb21TdHJpbmcgPSBmdW5jdGlvbihzdHJpbmcpIHsKLSAgICAgIGlmIChzdHJpbmcgPT09ICcnKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgYXNzZXJ0LmVxdWFsKHN0cmluZywgJzIwMDBAMS4yeDcnKTsKLSAgICAgIHJldHVybiBmYWtlVUlTdGF0ZTsKLSAgICB9Ci0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5uYXZUb1Bvc2l0aW9uID0gZnVuY3Rpb24odWlTdGF0ZSkgewotICAgICAgYXNzZXJ0LmVxdWFsKHVpU3RhdGUsIGZha2VVSVN0YXRlKTsKLSAgICAgIG5hdlRvUG9zaXRpb25DYWxsQ291bnQrKzsKLSAgICB9OwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZFRleHRDbGVhcmVkID0gZnVuY3Rpb24oKSB7Ci0gICAgICBmaW5kVGV4dENsZWFyZWRDYWxsQ291bnQrKzsKLSAgICB9OwotCi0gICAgdmFyIHByb21pc2UgPSBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCcyMDAwQDEuMng3JykudGhlbihmdW5jdGlvbigpIHsKLSAgICAgIGFzc2VydC5lcXVhbChuYXZUb1Bvc2l0aW9uQ2FsbENvdW50LCAxKTsKLSAgICB9KTsKLSAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKGNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcuYmluZChjb250cm9sbGVyLCAnJykpOwotICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICBhc3NlcnQuZXF1YWwoZmluZFRleHRDbGVhcmVkQ2FsbENvdW50LCAxKTsKLSAgICB9KTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZENvbnRyb2xsZXJDbGVhckFmdGVyU2V0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5jLkZpbmRDb250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpOwotICAgIHZhciBmaW5kVGV4dENoYW5nZWRUb0NhbGxlZCA9IGZhbHNlOwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZFRleHRDaGFuZ2VkVG8gPSBmdW5jdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIGZpbmRUZXh0Q2hhbmdlZFRvQ2FsbGVkID0gdHJ1ZTsKLSAgICB9OwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuZmluZFRleHRDbGVhcmVkID0gZnVuY3Rpb24oKSB7Ci0gICAgICBhc3NlcnQuZXF1YWwoZmluZFRleHRDaGFuZ2VkVG9DYWxsZWQsIHRydWUpOwotICAgIH07Ci0gICAgY29udHJvbGxlci5zdGFydEZpbHRlcmluZygnMScpOwotICAgIGNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcoJycpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvbG9jYXRpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9sb2NhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWY5Y2M5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9sb2NhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIFlDb21wb25lbnQgaXMgYSBjbGFzcyB0aGF0IGhhbmRsZXMgc3RvcmluZyB0aGUgc3RhYmxlSWQgYW5kIHRoZSBwZXJjZW50YWdlCi0gICAqIG9mZnNldCBpbiB0aGUgeSBkaXJlY3Rpb24gb2YgYWxsIHRyYWNrcyB3aXRoaW4gYSBzcGVjaWZpYyB2aWV3WCBhbmQgdmlld1kKLSAgICogY29vcmRpbmF0ZS4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBZQ29tcG9uZW50KHN0YWJsZUlkLCB5UGVyY2VudE9mZnNldCkgewotICAgIHRoaXMuc3RhYmxlSWQgPSBzdGFibGVJZDsKLSAgICB0aGlzLnlQZXJjZW50T2Zmc2V0ID0geVBlcmNlbnRPZmZzZXQ7Ci0gIH0KLQotICBZQ29tcG9uZW50LnByb3RvdHlwZSA9IHsKLSAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgc3RhYmxlSWQ6IHRoaXMuc3RhYmxlSWQsCi0gICAgICAgIHlQZXJjZW50T2Zmc2V0OiB0aGlzLnlQZXJjZW50T2Zmc2V0Ci0gICAgICB9OwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogTG9jYXRpb24gaXMgYSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYSBzcGF0aWFsIGxvY2F0aW9uIG9uIHRoZSB0aW1lbGluZQotICAgKiB0aGF0IGlzIHNwZWNpZmllZCBieSBwZXJjZW50IG9mZnNldHMgd2l0aGluIHRyYWNrcyByYXRoZXIgdGhhbiBzcGVjaWZpYwotICAgKiBwb2ludHMuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gTG9jYXRpb24oeFdvcmxkLCB5Q29tcG9uZW50cykgewotICAgIHRoaXMueFdvcmxkXyA9IHhXb3JsZDsKLSAgICB0aGlzLnlDb21wb25lbnRzXyA9IHlDb21wb25lbnRzOwotICB9OwotCi0gIC8qKgotICAgKiBSZXR1cm5zIGEgbmV3IExvY2F0aW9uIGdpdmVuIGJ5IHggYW5kIHkgY29vcmRpbmF0ZXMgd2l0aCByZXNwZWN0IHRvCi0gICAqIHRoZSB0aW1lbGluZSdzIGRyYXdpbmcgY2FudmFzLgotICAgKi8KLSAgTG9jYXRpb24uZnJvbVZpZXdDb29yZGluYXRlcyA9IGZ1bmN0aW9uKHZpZXdwb3J0LCB2aWV3WCwgdmlld1kpIHsKLSAgICB2YXIgZHQgPSB2aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICB2YXIgeFdvcmxkID0gZHQueFZpZXdUb1dvcmxkKHZpZXdYKTsKLSAgICB2YXIgeUNvbXBvbmVudHMgPSBbXTsKLQotICAgIC8vIFNpbmNlIHdlJ3JlIGdpdmVuIGNvb3JkaW5hdGVzIHdpdGhpbiB0aGUgdGltZWxpbmUgY2FudmFzLCB3ZSBuZWVkIHRvCi0gICAgLy8gY29udmVydCB0aGVtIHRvIGRvY3VtZW50IGNvb3JkaW5hdGVzIHRvIGdldCB0aGUgZWxlbWVudC4KLSAgICB2YXIgZWxlbSA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoCi0gICAgICAgICAgdmlld1ggKyB2aWV3cG9ydC5tb2RlbFRyYWNrQ29udGFpbmVyLmNhbnZhcy5vZmZzZXRMZWZ0LAotICAgICAgICAgIHZpZXdZICsgdmlld3BvcnQubW9kZWxUcmFja0NvbnRhaW5lci5jYW52YXMub2Zmc2V0VG9wKTsKLSAgICAvLyBCdWlsZCB5Q29tcG9uZW50cyBieSBjYWxjdWxhdGluZyBwZXJjZW50YWdlIG9mZnNldCB3aXRoIHJlc3BlY3QgdG8KLSAgICAvLyBlYWNoIHBhcmVudCB0cmFjay4KLSAgICB3aGlsZSAoZWxlbSBpbnN0YW5jZW9mIHRyLmMudHJhY2tzLlRyYWNrKSB7Ci0gICAgICBpZiAoZWxlbS5ldmVudENvbnRhaW5lcikgewotICAgICAgICB2YXIgYm91bmRSZWN0ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgdmFyIHlQZXJjZW50T2Zmc2V0ID0gKHZpZXdZIC0gYm91bmRSZWN0LnRvcCkgLyBib3VuZFJlY3QuaGVpZ2h0OwotICAgICAgICB5Q29tcG9uZW50cy5wdXNoKAotICAgICAgICAgICAgbmV3IFlDb21wb25lbnQoZWxlbS5ldmVudENvbnRhaW5lci5zdGFibGVJZCwgeVBlcmNlbnRPZmZzZXQpKTsKLSAgICAgIH0KLSAgICAgIGVsZW0gPSBlbGVtLnBhcmVudEVsZW1lbnQ7Ci0gICAgfQotCi0gICAgaWYgKHlDb21wb25lbnRzLmxlbmd0aCA9PSAwKQotICAgICAgcmV0dXJuOwotICAgIHJldHVybiBuZXcgTG9jYXRpb24oeFdvcmxkLCB5Q29tcG9uZW50cyk7Ci0gIH0KLQotICBMb2NhdGlvbi5mcm9tU3RhYmxlSWRBbmRUaW1lc3RhbXAgPSBmdW5jdGlvbih2aWV3cG9ydCwgc3RhYmxlSWQsIHRzKSB7Ci0gICAgdmFyIHhXb3JsZCA9IHRzOwotICAgIHZhciB5Q29tcG9uZW50cyA9IFtdOwotCi0gICAgLy8gVGhlIHkgY29tcG9uZW50cycgcGVyY2VudGFnZSBvZmZzZXRzIHdpbGwgYmUgY2FsY3VsYXRlZCB3aXRoIHJlc3BlY3QgdG8KLSAgICAvLyB0aGUgYm91bmRpbmdSZWN0J3MgdG9wIG9mIGNvbnRhaW5pbmcgdHJhY2suCi0gICAgdmFyIGNvbnRhaW5lclRvVHJhY2sgPSB2aWV3cG9ydC5jb250YWluZXJUb1RyYWNrT2JqOwotICAgIHZhciBlbGVtID0gY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoc3RhYmxlSWQpOwotICAgIGlmICghZWxlbSkKLSAgICAgIHJldHVybjsKLQotICAgIHZhciBmaXJzdFkgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDsKLSAgICB3aGlsZSAoZWxlbSBpbnN0YW5jZW9mIHRyLmMudHJhY2tzLlRyYWNrKSB7Ci0gICAgICBpZiAoZWxlbS5ldmVudENvbnRhaW5lcikgewotICAgICAgICB2YXIgYm91bmRSZWN0ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgdmFyIHlQZXJjZW50T2Zmc2V0ID0gKGZpcnN0WSAtIGJvdW5kUmVjdC50b3ApIC8gYm91bmRSZWN0LmhlaWdodDsKLSAgICAgICAgeUNvbXBvbmVudHMucHVzaCgKLSAgICAgICAgICAgIG5ldyBZQ29tcG9uZW50KGVsZW0uZXZlbnRDb250YWluZXIuc3RhYmxlSWQsIHlQZXJjZW50T2Zmc2V0KSk7Ci0gICAgICB9Ci0gICAgICBlbGVtID0gZWxlbS5wYXJlbnRFbGVtZW50OwotICAgIH0KLQotICAgIGlmICh5Q29tcG9uZW50cy5sZW5ndGggPT0gMCkKLSAgICAgIHJldHVybjsKLSAgICByZXR1cm4gbmV3IExvY2F0aW9uKHhXb3JsZCwgeUNvbXBvbmVudHMpOwotICB9Ci0KLSAgTG9jYXRpb24ucHJvdG90eXBlID0gewotCi0gICAgZ2V0IHhXb3JsZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnhXb3JsZF87Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGZpcnN0IHZhbGlkIGNvbnRhaW5pbmcgdHJhY2sgYmFzZWQgb24gdGhlCi0gICAgICogaW50ZXJuYWwgeUNvbXBvbmVudHMuCi0gICAgICovCi0gICAgZ2V0Q29udGFpbmluZ1RyYWNrOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdmFyIGNvbnRhaW5lclRvVHJhY2sgPSB2aWV3cG9ydC5jb250YWluZXJUb1RyYWNrT2JqOwotICAgICAgZm9yICh2YXIgaSBpbiB0aGlzLnlDb21wb25lbnRzXykgewotICAgICAgICB2YXIgeUNvbXBvbmVudCA9IHRoaXMueUNvbXBvbmVudHNfW2ldOwotICAgICAgICB2YXIgdHJhY2sgPSBjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCh5Q29tcG9uZW50LnN0YWJsZUlkKTsKLSAgICAgICAgaWYgKHRyYWNrICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgcmV0dXJuIHRyYWNrOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDYWxjdWxhdGVzIGFuZCByZXR1cm5zIHggYW5kIHkgY29vcmRpbmF0ZXMgb2YgdGhlIGN1cnJlbnQgbG9jYXRpb24gd2l0aAotICAgICAqIHJlc3BlY3QgdG8gdGhlIHRpbWVsaW5lJ3MgY2FudmFzLgotICAgICAqLwotICAgIHRvVmlld0Nvb3JkaW5hdGVzOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdmFyIGR0ID0gdmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICB2YXIgY29udGFpbmVyVG9UcmFjayA9IHZpZXdwb3J0LmNvbnRhaW5lclRvVHJhY2tPYmo7Ci0gICAgICB2YXIgdmlld1ggPSBkdC54V29ybGRUb1ZpZXcodGhpcy54V29ybGRfKTsKLQotICAgICAgdmFyIHZpZXdZID0gLTE7Ci0gICAgICBmb3IgKHZhciBpbmRleCBpbiB0aGlzLnlDb21wb25lbnRzXykgewotICAgICAgICB2YXIgeUNvbXBvbmVudCA9IHRoaXMueUNvbXBvbmVudHNfW2luZGV4XTsKLSAgICAgICAgdmFyIHRyYWNrID0gY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoeUNvbXBvbmVudC5zdGFibGVJZCk7Ci0gICAgICAgIGlmICh0cmFjayAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgdmFyIGJvdW5kUmVjdCA9IHRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgIHZpZXdZID0geUNvbXBvbmVudC55UGVyY2VudE9mZnNldCAqIGJvdW5kUmVjdC5oZWlnaHQgKyBib3VuZFJlY3QudG9wOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiB7Ci0gICAgICAgIHZpZXdYOiB2aWV3WCwKLSAgICAgICAgdmlld1k6IHZpZXdZCi0gICAgICB9OwotICAgIH0sCi0KLSAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgeFdvcmxkOiB0aGlzLnhXb3JsZF8sCi0gICAgICAgIHlDb21wb25lbnRzOiB0aGlzLnlDb21wb25lbnRzXwotICAgICAgfTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBMb2NhdGlvbjogTG9jYXRpb24KLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvbG9jYXRpb25fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2xvY2F0aW9uX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVmMzQ3Zi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvbG9jYXRpb25fdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9sb2NhdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIExvY2F0aW9uID0gdHIuYy5Mb2NhdGlvbjsKLSAgdmFyIE1vZGVsID0gdHIuTW9kZWw7Ci0KLSAgdGVzdCgnbG9jYXRpb25PYmonLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOwotICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7Ci0KLSAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7Ci0gICAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goCi0gICAgICAgIHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlTmFtZWQoJ2EnLCA4MCwgMjAsIHRocmVhZCwgdGhyZWFkKSk7Ci0gICAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goCi0gICAgICAgIHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlTmFtZWQoJ2EnLCA4NSwgMTAsIHRocmVhZCwgdGhyZWFkKSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgdGltZWxpbmUgPSBuZXcgdHIuYy5UaW1lbGluZVRyYWNrVmlldygpOwotICAgIHZhciB2cCA9IG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQodGltZWxpbmUpOwotICAgIHRpbWVsaW5lLm1vZGVsID0gbW9kZWw7Ci0gICAgdGltZWxpbmUuZm9jdXNFbGVtZW50ID0gdGltZWxpbmU7Ci0gICAgdGltZWxpbmUudGFiSW5kZXggPSAwOwotICAgIHRpbWVsaW5lLnN0eWxlLm1heEhlaWdodCA9ICc2MDBweCc7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVsaW5lKTsKLQotICAgIC8vIE91ciBzdGFibGVJZCB0byB0cmFjayBtYXAgaXMgbm90IGF1dG9tYXRpY2FsbHkgYnVpbHQuIFdlIG5lZWQgdG8KLSAgICAvLyBzZWFyY2ggZm9yIHRoZSB0cmFja3MgYW5kIG1hbnVhbGx5IGJ1aWxkIHRoZSBzdGFibGVJZCBtYXAgaGVyZS4KLSAgICB2YXIgcHJvY2Vzc1RyYWNrcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Byb2Nlc3MtdHJhY2stYmFzZScpOwotICAgIHZwLm1vZGVsVHJhY2tDb250YWluZXIgPSB7Ci0gICAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja09iaikgewotICAgICAgICAvLyBJbnZva2luZyB0aGUgcHJvY2VzcyB0cmFjaydzIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwIGlzIGVub3VnaCB0bwotICAgICAgICAvLyBidWlsZCB0aGUgbWFwIGZvciBhbGwgY2hpbGRyZW4gKGkuZS4gVGhyZWFkcywgQXN5bmNTbGljZUdyb3VwcykKLSAgICAgICAgLy8gYXMgd2VsbC4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9jZXNzVHJhY2tzLmxlbmd0aDsgaSsrKQotICAgICAgICAgIHByb2Nlc3NUcmFja3NbaV0uYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoY29udGFpbmVyVG9UcmFja09iaik7Ci0gICAgICB9LAotICAgICAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oKSB7fSwKLSAgICAgIGNhbnZhczogewotICAgICAgICBvZmZzZXRMZWZ0OiB0ci5jLmNvbnN0YW50cy5IRUFESU5HX1dJRFRILAotICAgICAgICBvZmZzZXRUb3A6IDAKLSAgICAgIH0KLSAgICB9OwotICAgIHZwLnJlYnVpbGRDb250YWluZXJUb1RyYWNrTWFwKCk7Ci0KLSAgICB2YXIgYXN5bmNUcmFjayA9Ci0gICAgICAgIHZwLmNvbnRhaW5lclRvVHJhY2tPYmouZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMuNDU2LkFzeW5jU2xpY2VHcm91cCcpOwotICAgIGFzc2VydC5pc05vdE51bGwoYXN5bmNUcmFjayk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXN5bmNUcmFjay5leHBhbmRlZCk7IC8vIE1ha2Ugc3VyZSB0aGlzIHN0YXJ0cyB1bmV4cGFuZGVkLgotCi0gICAgLy8gSGFjayB0byBhbGxvdyBMb2NhdGlvbiB0byBmaW5kIHRoZSBlbGVtZW50IHdlJ3JlIGxvb2tpbmcgZm9yLgotICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgY29ycmVjdCBiZWhhdmlvdXIgb2YgZG9jdW1lbnQuZWxlbWVudEZyb21wb2ludCh4LHkpIG9mCi0gICAgLy8gYW4gb3JpZ2luYWxseSBvZmYtc2NyZWVuIGVsZW1lbnQuCi0gICAgYXN5bmNUcmFjay5zY3JvbGxJbnRvVmlldygpOwotCi0gICAgdmFyIGJvdW5kUmVjdCA9IGFzeW5jVHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgdmFyIHZpZXdYID0gYm91bmRSZWN0LmxlZnQ7Ci0gICAgdmFyIHZpZXdZID0gYm91bmRSZWN0LnRvcCArIGJvdW5kUmVjdC5oZWlnaHQgLyAyOwotICAgIHZhciBsb2NhdGlvbiA9IExvY2F0aW9uLmZyb21WaWV3Q29vcmRpbmF0ZXModnAsIHZpZXdYLCB2aWV3WSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGFzeW5jVHJhY2ssIGxvY2F0aW9uLmdldENvbnRhaW5pbmdUcmFjayh2cCkpOwotICAgIGFzc2VydC5kZWVwRXF1YWwobG9jYXRpb24udG9WaWV3Q29vcmRpbmF0ZXModnApLAotICAgICAgICAgICAgICAgICAgICAgeyB2aWV3WDogdmlld1gsIHZpZXdZOiB2aWV3WSB9KTsKLQotICAgIC8vIFRyeSBleHBhbmRpbmcgdGhlIG11bHRpLXJvdyB0cmFjayBzbyB0aGF0IHRoZSBkaW1lbnNpb25zIG9mIHRoZSB0aHJlYWQKLSAgICAvLyB0cmFjayBjaGFuZ2VzLgotICAgIGFzeW5jVHJhY2suZXhwYW5kZWQgPSB0cnVlOwotICAgIC8vIEV4cGFuZGluZyB0aGUgdHJhY2sgY2F1c2VzIHRoZSBoZWlnaHQgdG8gZG91YmxlLiBXZSBjYW4gY2FsY3VsYXRlIHRoZSBuZXcKLSAgICAvLyB2aWV3WSB3aXRoIHJlc3BlY3QgdG8gdGhlIHRyYWNrJ3Mgb2xkIGJvdW5kUmVjdC4gVmlld1ggcmVtYWlucyB1bmNoYW5nZWQuCi0gICAgdmFyIGV4cGFuZGVkVmlld1kgPSBib3VuZFJlY3QudG9wICsgYm91bmRSZWN0LmhlaWdodDsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGxvY2F0aW9uLnRvVmlld0Nvb3JkaW5hdGVzKHZwKSwKLSAgICAgICAgICAgICAgICAgICAgIHsgdmlld1g6IHZpZXdYLCB2aWV3WTogZXhwYW5kZWRWaWV3WSB9KTsKLQotICAgIC8vIFRlc3QgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgZnJvbVN0YWJsZUlkQW5kVGltZXN0YW1wLgotICAgIHZhciBsb2NhdGlvbkZyb21Db29yZCA9Ci0gICAgICAgIExvY2F0aW9uLmZyb21WaWV3Q29vcmRpbmF0ZXModnAsIHZpZXdYLCBib3VuZFJlY3QudG9wKTsKLSAgICB2YXIgbG9jYXRpb25Gcm9tU3RhYmxlSWQgPQotICAgICAgICBMb2NhdGlvbi5mcm9tU3RhYmxlSWRBbmRUaW1lc3RhbXAodnAsICcxMjMuNDU2LkFzeW5jU2xpY2VHcm91cCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi54V29ybGQpOwotICAgIGFzc2VydC5kZWVwRXF1YWwobG9jYXRpb25Gcm9tQ29vcmQsIGxvY2F0aW9uRnJvbVN0YWJsZUlkKTsKLQotICAgIC8vIFVuZG8gc2Nyb2xsLgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzLWNvbnRhaW5lcicpLnNjcm9sbFRvcCA9IDA7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NjcmlwdGluZ19jb250cm9sLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3MzQ0ZWIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NjcmlwdGluZ19jb250cm9sLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS90YXNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90cXVlcnkvdHF1ZXJ5Lmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50Ci0gICAgbmFtZT0idHJhY2luZy1zY3JpcHRpbmctY29udHJvbCIgY29uc3RydWN0b3I9IlRyYWNpbmdTY3JpcHRpbmdDb250cm9sIj4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICAgIDpob3N0IHsKLSAgICAgICAgZmxleDogMSAxIGF1dG87Ci0gICAgICB9Ci0gICAgICAucm9vdCB7Ci0gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAgICAgIGN1cnNvcjogdGV4dDsKLQotICAgICAgICBwYWRkaW5nOiAycHg7Ci0gICAgICAgIG1hcmdpbjogMnB4OwotICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNSk7Ci0gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwotCi0gICAgICAgIGhlaWdodDogMTAwcHg7Ci0gICAgICAgIG92ZXJmbG93LXk6IGF1dG87Ci0KLSAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgaGVpZ2h0LCBwYWRkaW5nLCBtYXJnaW47Ci0gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4yczsKLSAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OwotICAgICAgfQotICAgICAgLmhpZGRlbiB7Ci0gICAgICAgIG1hcmdpbi10b3A6IDBweDsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4OwotICAgICAgICBwYWRkaW5nLXRvcDogMHB4OwotICAgICAgICBwYWRkaW5nLWJvdHRvbTogMHB4OwotICAgICAgICBoZWlnaHQ6IDBweDsKLSAgICAgICAgb3BhY2l0eTogMDsKLSAgICAgIH0KLSAgICAgIC5mb2N1c2VkIHsKLSAgICAgICAgb3V0bGluZTogYXV0byA1cHggLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yOwotICAgICAgfQotICAgICAgI2hpc3RvcnkgewotICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotICAgICAgICBjb2xvcjogIzc3NzsKLSAgICAgIH0KLSAgICAgICNwcm9tcHQgewotICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotICAgICAgICAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlLXBsYWludGV4dC1vbmx5OwotICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwICFpbXBvcnRhbnQ7Ci0gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwotICAgICAgfQotICAgICAgI3Byb21wdDpmb2N1cyB7Ci0gICAgICAgIG91dGxpbmU6IG5vbmU7Ci0gICAgICB9Ci0gICAgICAjcHJvbXB0IGJyIHsKLSAgICAgICAgZGlzcGxheTogbm9uZTsKLSAgICAgIH0KLSAgICAgICNwcm9tcHQgOjpiZWZvcmUgewotICAgICAgICBjb250ZW50OiAiPiI7Ci0gICAgICAgIGNvbG9yOiAjNDY4OwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0KLSAgICA8ZGl2IGlkPSJyb290IiBjbGFzcz0icm9vdCBoaWRkZW4iIHRhYmluZGV4PSIwIgotICAgICAgICAgb24tZm9jdXM9Int7IG9uQ29uc29sZUZvY3VzIH19Ij4KLSAgICAgIDxkaXYgaWQ9J2hpc3RvcnknPjwvZGl2PgotICAgICAgPGRpdiBpZD0ncHJvbXB0JwotICAgICAgICAgICBvbi1rZXlwcmVzcz0ie3sgcHJvbXB0S2V5UHJlc3MgfX0iCi0gICAgICAgICAgIG9uLWtleWRvd249Int7IHByb21wdEtleURvd24gfX0iCi0gICAgICAgICAgIG9uLWJsdXI9Int7IG9uQ29uc29sZUJsdXIgfX0iPgotICA8L3RlbXBsYXRlPgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICBQb2x5bWVyKHsKLSAgICBfaXNFbnRlcktleTogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIC8vIENoZWNrIGlmIGluIElNRS4KLSAgICAgIHJldHVybiBldmVudC5rZXlDb2RlICE9PSAyMjkgJiYgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gJ0VudGVyJzsKLSAgICB9LAotCi0gICAgX3NldEZvY3VzZWQ6IGZ1bmN0aW9uKGZvY3VzZWQpIHsKLSAgICAgIHZhciBwcm9tcHRFbCA9IHRoaXMuJC5wcm9tcHQ7Ci0gICAgICBpZiAoZm9jdXNlZCkgewotICAgICAgICBwcm9tcHRFbC5mb2N1cygpOwotICAgICAgICB0aGlzLiQucm9vdC5jbGFzc0xpc3QuYWRkKCdmb2N1c2VkJyk7Ci0gICAgICAgIC8vIE1vdmUgY3Vyc29yIHRvIHRoZSBlbmQgb2YgYW55IGV4aXN0aW5nIHRleHQuCi0gICAgICAgIGlmIChwcm9tcHRFbC5pbm5lclRleHQubGVuZ3RoID4gMCkgewotICAgICAgICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgICAgc2VsLmNvbGxhcHNlKHByb21wdEVsLmZpcnN0Q2hpbGQsIHByb21wdEVsLmlubmVyVGV4dC5sZW5ndGgpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBwcm9tcHRFbC5ibHVyKCk7Ci0gICAgICAgIHRoaXMuJC5yb290LmNsYXNzTGlzdC5yZW1vdmUoJ2ZvY3VzZWQnKTsKLSAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgY3JidWcuY29tLzg5MDI2IHRvIGVuc3VyZSB0aGUgcHJvbXB0IGRvZXNuJ3QgcmV0YWluCi0gICAgICAgIC8vIGtleWJvYXJkIGZvY3VzLgotICAgICAgICB2YXIgcGFyZW50ID0gcHJvbXB0RWwucGFyZW50RWxlbWVudDsKLSAgICAgICAgdmFyIG5leHRFbCA9IHByb21wdEVsLm5leHRTaWJsaW5nOwotICAgICAgICBwcm9tcHRFbC5yZW1vdmUoKTsKLSAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShwcm9tcHRFbCwgbmV4dEVsKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgb25Db25zb2xlRm9jdXM6IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICB0aGlzLl9zZXRGb2N1c2VkKHRydWUpOwotICAgIH0sCi0KLSAgICBvbkNvbnNvbGVCbHVyOiBmdW5jdGlvbihlKSB7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgdGhpcy5fc2V0Rm9jdXNlZChmYWxzZSk7Ci0gICAgfSwKLQotICAgIHByb21wdEtleURvd246IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICBpZiAoIXRoaXMuX2lzRW50ZXJLZXkoZSkpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBwcm9tcHRFbCA9IHRoaXMuJC5wcm9tcHQ7Ci0gICAgICB2YXIgY29tbWFuZCA9IHByb21wdEVsLmlubmVyVGV4dDsKLSAgICAgIGlmIChjb21tYW5kLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgcHJvbXB0RWwuaW5uZXJUZXh0ID0gJyc7Ci0gICAgICB0aGlzLmFkZExpbmVfKFN0cmluZy5mcm9tQ2hhckNvZGUoMTg3KSArICcgJyArIGNvbW1hbmQpOwotCi0gICAgICB0cnkgewotICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5jb250cm9sbGVyXy5leGVjdXRlQ29tbWFuZChjb21tYW5kKTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgcmVzdWx0ID0gZS5zdGFjayB8fCBlLnN0YWNrVHJhY2U7Ci0gICAgICB9Ci0KLSAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiB0ci5iLlRhc2spIHsKLSAgICAgICAgLy8gVE9ETyhza3lvc3RpbCk6IFNob3cgYSBjb29sIHNwaW5uZXIuCi0gICAgICAgIHRyLmIuVGFzay5SdW5XaGVuSWRsZShyZXN1bHQpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5hZGRMaW5lXyhyZXN1bHQpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhZGRMaW5lXzogZnVuY3Rpb24obGluZSkgewotICAgICAgdmFyIGhpc3RvcnlFbCA9IHRoaXMuJC5oaXN0b3J5OwotICAgICAgaWYgKGhpc3RvcnlFbC5pbm5lclRleHQubGVuZ3RoICE9PSAwKQotICAgICAgICBoaXN0b3J5RWwuaW5uZXJUZXh0ICs9ICdcbic7Ci0gICAgICBoaXN0b3J5RWwuaW5uZXJUZXh0ICs9IGxpbmU7Ci0gICAgfSwKLQotICAgIHByb21wdEtleVByZXNzOiBmdW5jdGlvbihlKSB7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0sCi0KLSAgICB0b2dnbGVWaXNpYmlsaXR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciByb290ID0gdGhpcy4kLnJvb3Q7Ci0gICAgICBpZiAoIXRoaXMudmlzaWJsZSkgewotICAgICAgICByb290LmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOwotICAgICAgICB0aGlzLl9zZXRGb2N1c2VkKHRydWUpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcm9vdC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKLSAgICAgICAgdGhpcy5fc2V0Rm9jdXNlZChmYWxzZSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGdldCBoYXNGb2N1cygpIHsKLSAgICAgIHJldHVybiB0aGlzID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50OwotICAgIH0sCi0KLSAgICBnZXQgdmlzaWJsZSgpIHsKLSAgICAgIHZhciByb290ID0gdGhpcy4kLnJvb3Q7Ci0gICAgICByZXR1cm4gIXJvb3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdoaWRkZW4nKTsKLSAgICB9LAotCi0gICAgZ2V0IGNvbnRyb2xsZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyXzsKLSAgICB9LAotCi0gICAgc2V0IGNvbnRyb2xsZXIoYykgewotICAgICAgdGhpcy5jb250cm9sbGVyXyA9IGM7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2NyaXB0aW5nX2NvbnRyb2xfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2NjZjA4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NjcmlwdGluZ19jb250cm9sLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjdGwgPSBuZXcgVHJhY2luZ1NjcmlwdGluZ0NvbnRyb2woKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY3RsKTsKLSAgICBjdGwudG9nZ2xlVmlzaWJpbGl0eSgpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbGxlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhZmM2MjkuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NjcmlwdGluZ19vYmplY3QuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIFNjcmlwdGluZ0NvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcikgewotICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8gPSBzZWxlY3Rpb25Db250cm9sbGVyOwotICAgIHRoaXMuc2NyaXB0T2JqZWN0TmFtZXNfID0gW107Ci0gICAgdGhpcy5zY3JpcHRPYmplY3RWYWx1ZXNfID0gW107Ci0gICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICdtb2RlbC1jaGFuZ2VkJywgdGhpcy5vbk1vZGVsQ2hhbmdlZF8uYmluZCh0aGlzKSk7Ci0KLSAgICAvLyBSZWdpc3RlciBhbGwgc2NyaXB0aW5nIG9iamVjdHMuCi0gICAgdmFyIHR5cGVJbmZvcyA9IFNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTsKLSAgICB0eXBlSW5mb3MuZm9yRWFjaChmdW5jdGlvbih0eXBlSW5mbykgewotICAgICAgdGhpcy5hZGRTY3JpcHRPYmplY3QodHlwZUluZm8ubWV0YWRhdGEubmFtZSwgdHlwZUluZm8uY29uc3RydWN0b3IpOwotICAgICAgLy8gQWxzbyBtYWtlIHRoZSBvYmplY3QgYXZhaWxhYmxlIHRvIHRoZSBEZXZUb29scyBpbnNwZWN0b3IuCi0gICAgICB3aW5kb3dbdHlwZUluZm8ubWV0YWRhdGEubmFtZV0gPSB0eXBlSW5mby5jb25zdHJ1Y3RvcjsKLSAgICB9LmJpbmQodGhpcykpOwotICB9Ci0KLSAgZnVuY3Rpb24gU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnkoKSB7Ci0gIH0KLSAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KFNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5LCBvcHRpb25zKTsKLQotICBTY3JpcHRpbmdDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgc2VsZWN0aW9uQ29udHJvbGxlcigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfOwotICAgIH0sCi0KLSAgICBvbk1vZGVsQ2hhbmdlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zY3JpcHRPYmplY3RWYWx1ZXNfLmZvckVhY2goZnVuY3Rpb24odikgewotICAgICAgICBpZiAodi5vbk1vZGVsQ2hhbmdlZCkKLSAgICAgICAgICB2Lm9uTW9kZWxDaGFuZ2VkKCk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgYWRkU2NyaXB0T2JqZWN0OiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgICAgdGhpcy5zY3JpcHRPYmplY3ROYW1lc18ucHVzaChuYW1lKTsKLSAgICAgIHRoaXMuc2NyaXB0T2JqZWN0VmFsdWVzXy5wdXNoKHZhbHVlKTsKLSAgICB9LAotCi0gICAgZXhlY3V0ZUNvbW1hbmQ6IGZ1bmN0aW9uKGNvbW1hbmQpIHsKLSAgICAgIHZhciBmID0gbmV3IEZ1bmN0aW9uKAotICAgICAgICAgIHRoaXMuc2NyaXB0T2JqZWN0TmFtZXNfLCAncmV0dXJuIGV2YWwoJyArIGNvbW1hbmQgKyAnKScpOwotICAgICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgdGhpcy5zY3JpcHRPYmplY3RWYWx1ZXNfKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTY3JpcHRpbmdDb250cm9sbGVyOiBTY3JpcHRpbmdDb250cm9sbGVyLAotICAgIFNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5OiBTY3JpcHRpbmdPYmplY3RSZWdpc3RyeQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbGxlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2NyaXB0aW5nX2NvbnRyb2xsZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTFmMThkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfY29udHJvbGxlcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCkgewotICAgIHRyLmIuRXZlbnRUYXJnZXQuY2FsbCh0aGlzKTsKLQotICAgIHRoaXMuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlID0gW107Ci0KLSAgICB0aGlzLnZpZXdwb3J0ID0gdW5kZWZpbmVkOwotICAgIHRoaXMubW9kZWwgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICB0aGlzLmhpZ2hsaWdodCA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICB9Ci0gIEZha2VTZWxlY3Rpb25Db250cm9sbGVyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlCi0gIH07Ci0KLSAgdGVzdCgnc2NyaXB0aW5nQ29udHJvbGxlckJhc2ljQXJpdGhtZXRpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5TY3JpcHRpbmdDb250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpOwotICAgIHZhciByZXN1bHQgPSBjb250cm9sbGVyLmV4ZWN1dGVDb21tYW5kKCcxICsgMScpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIDIpOwotICB9KTsKLQotICB0ZXN0KCdzY3JpcHRpbmdDb250cm9sbGVyTm9uTG9jYWxDb250ZXh0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5jLlNjcmlwdGluZ0NvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0gICAgdmFyIHggPSAxOwotICAgIGNvbnRyb2xsZXIuZXhlY3V0ZUNvbW1hbmQoJ3ggPSAyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgsIDEpOwotICB9KTsKLQotICB0ZXN0KCdzY3JpcHRpbmdDb250cm9sbGVyTW9kaWZ5R2xvYmFsQ29udGV4dCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5TY3JpcHRpbmdDb250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpOwotICAgIHdpbmRvdy5feCA9IDE7Ci0gICAgY29udHJvbGxlci5leGVjdXRlQ29tbWFuZCgnX3ggPSAyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHdpbmRvdy5feCwgMik7Ci0gICAgZGVsZXRlIHdpbmRvdy5feDsKLSAgfSk7Ci0KLSAgdGVzdCgnc2NyaXB0aW5nQ29udHJvbGxlclBlcnNpc3RlbnRDb250ZXh0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5jLlNjcmlwdGluZ0NvbnRyb2xsZXIoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0gICAgY29udHJvbGxlci5leGVjdXRlQ29tbWFuZCgnYSA9IDQyJyk7Ci0gICAgdmFyIHJlc3VsdCA9IGNvbnRyb2xsZXIuZXhlY3V0ZUNvbW1hbmQoJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCA0Mik7Ci0gIH0pOwotCi0gIHRlc3QoJ3NjcmlwdGluZ0NvbnRyb2xsZXJBZGRTY3JpcHRPYmplY3QnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpOwotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmMuU2NyaXB0aW5nQ29udHJvbGxlcihzZWxlY3Rpb25Db250cm9sbGVyKTsKLSAgICBjb250cm9sbGVyLmFkZFNjcmlwdE9iamVjdCgneicsIDEyMyk7Ci0gICAgdmFyIHJlc3VsdCA9IGNvbnRyb2xsZXIuZXhlY3V0ZUNvbW1hbmQoJ3onKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCAxMjMpOwotICB9KTsKLQotICB0ZXN0KCdzY3JpcHRpbmdDb250cm9sbGVyT2JqZWN0UmVnaXN0cnknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpOwotCi0gICAgdHIuYy5TY3JpcHRpbmdPYmplY3RSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgICAgZnVuY3Rpb24oKSB7IHJldHVybiAxMjM7IH0sCi0gICAgICAgIHsKLSAgICAgICAgICBuYW1lOiAndGVzdEZ1bmN0aW9uTmFtZScKLSAgICAgICAgfQotICAgICk7Ci0gICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5TY3JpcHRpbmdDb250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpOwotICAgIHZhciByZXN1bHQgPSBjb250cm9sbGVyLmV4ZWN1dGVDb21tYW5kKCd0ZXN0RnVuY3Rpb25OYW1lKCknKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCAxMjMpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zZWxlY3Rpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zZWxlY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY1NDY4Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2VsZWN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyODcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBDb2RlIGZvciB0aGUgdmlld3BvcnQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIEV2ZW50UmVnaXN0cnkgPSB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5OwotCi0gIHZhciBSZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQgPSB0ci5iLkV2ZW50LmJpbmQoCi0gICAgICB1bmRlZmluZWQsICdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywgdHJ1ZSwgZmFsc2UpOwotCi0gIC8qKgotICAgKiBSZXByZXNlbnRzIGEgc2VsZWN0aW9uIHdpdGhpbiBhICBhbmQgaXRzIGFzc29jaWF0ZWQgc2V0IG9mIHRyYWNrcy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBTZWxlY3Rpb24ob3B0X2V2ZW50cykgewotICAgIC8vIHN1bmJ1cnN0X3pvb21fbGV2ZWwgaXMgdXNlZCBieSBzdW5idXJzdCBjaGFydCB0byByZW1lbWJlcgotICAgIC8vIHpvb20gbGV2ZWwgYWNyb3NzIHNlbGVjdGlvbiBjaGFuZ2VzLgotICAgIC8vIFRPRE8oZ2hvbGFwKTogZ2V0IHJpZCBvZiB0aGlzIGV2ZW50dWFsbHkgd2hlbgotICAgIC8vICAgICAgICAgICAgICAgc2VsZWN0aW9ucyBzdXBwb3J0IGZyYW1lcy4KLSAgICB0aGlzLnN1bmJ1cnN0X3pvb21fbGV2ZWwgPSB1bmRlZmluZWQ7Ci0KLSAgICB0aGlzLmJvdW5kc19kaXJ0eV8gPSB0cnVlOwotICAgIHRoaXMuYm91bmRzXyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgdGhpcy5sZW5ndGhfID0gMDsKLSAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7Ci0gICAgdGhpcy5wdXNoZWRfZ3VpZHNfID0ge307Ci0KLSAgICBpZiAob3B0X2V2ZW50cykgewotICAgICAgaWYgKG9wdF9ldmVudHMgaW5zdGFuY2VvZiBBcnJheSkgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wdF9ldmVudHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgdGhpcy5wdXNoKG9wdF9ldmVudHNbaV0pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5wdXNoKG9wdF9ldmVudHMpOwotICAgICAgfQotICAgIH0KLSAgfQotICBTZWxlY3Rpb24ucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKLQotICAgIGdldCBib3VuZHMoKSB7Ci0gICAgICBpZiAodGhpcy5ib3VuZHNfZGlydHlfKSB7Ci0gICAgICAgIHRoaXMuYm91bmRzXy5yZXNldCgpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoXzsgaSsrKQotICAgICAgICAgIHRoaXNbaV0uYWRkQm91bmRzVG9SYW5nZSh0aGlzLmJvdW5kc18pOwotICAgICAgICB0aGlzLmJvdW5kc19kaXJ0eV8gPSBmYWxzZTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLmJvdW5kc187Ci0gICAgfSwKLQotICAgIGdldCBkdXJhdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmJvdW5kc18uaXNFbXB0eSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICByZXR1cm4gdGhpcy5ib3VuZHNfLm1heCAtIHRoaXMuYm91bmRzXy5taW47Ci0gICAgfSwKLQotICAgIGdldCBsZW5ndGgoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sZW5ndGhfOwotICAgIH0sCi0KLSAgICBnZXQgZ3VpZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmd1aWRfOwotICAgIH0sCi0KLSAgICBjbGVhcjogZnVuY3Rpb24oKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoXzsgKytpKQotICAgICAgICBkZWxldGUgdGhpc1tpXTsKLSAgICAgIHRoaXMubGVuZ3RoXyA9IDA7Ci0gICAgICB0aGlzLmJvdW5kc19kaXJ0eV8gPSB0cnVlOwotICAgIH0sCi0KLSAgICAvLyBwdXNoIHB1c2hlcyBvbmx5IHVuaXF1ZSBldmVudHMuCi0gICAgLy8gSWYgYW4gZXZlbnQgaGFzIGJlZW4gYWxyZWFkeSBwdXNoZWQsIGRvIG5vdGhpbmcuCi0gICAgcHVzaDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIGlmIChldmVudC5ndWlkID09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFdmVudCBtdXN0IGhhdmUgYSBHVUlEJyk7Ci0KLSAgICAgIGlmICh0aGlzLmNvbnRhaW5zKGV2ZW50KSkKLSAgICAgICAgcmV0dXJuIGV2ZW50OwotCi0gICAgICB0aGlzLnB1c2hlZF9ndWlkc19bZXZlbnQuZ3VpZF0gPSB0cnVlOwotICAgICAgdGhpc1t0aGlzLmxlbmd0aF8rK10gPSBldmVudDsKLSAgICAgIHRoaXMuYm91bmRzX2RpcnR5XyA9IHRydWU7Ci0gICAgICByZXR1cm4gZXZlbnQ7Ci0gICAgfSwKLQotICAgIGNvbnRhaW5zOiBmdW5jdGlvbihldmVudCkgewotICAgICAgcmV0dXJuIHRoaXMucHVzaGVkX2d1aWRzX1tldmVudC5ndWlkXTsKLSAgICB9LAotCi0gICAgYWRkU2VsZWN0aW9uOiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0aW9uLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLnB1c2goc2VsZWN0aW9uW2ldKTsKLSAgICB9LAotCi0gICAgc3ViU2VsZWN0aW9uOiBmdW5jdGlvbihpbmRleCwgY291bnQpIHsKLSAgICAgIGNvdW50ID0gY291bnQgfHwgMTsKLQotICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICAgIHNlbGVjdGlvbi5ib3VuZHNfZGlydHlfID0gdHJ1ZTsKLSAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggKyBjb3VudCA+IHRoaXMubGVuZ3RoXykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmRleCBvdXQgb2YgYm91bmRzJyk7Ci0KLSAgICAgIGZvciAodmFyIGkgPSBpbmRleDsgaSA8IGluZGV4ICsgY291bnQ7IGkrKykKLSAgICAgICAgc2VsZWN0aW9uLnB1c2godGhpc1tpXSk7Ci0KLSAgICAgIHJldHVybiBzZWxlY3Rpb247Ci0gICAgfSwKLQotICAgIGVxdWFsczogZnVuY3Rpb24odGhhdCkgewotICAgICAgaWYgKHRoaXMubGVuZ3RoICE9PSB0aGF0Lmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBldmVudCA9IHRoaXNbaV07Ci0gICAgICAgIGlmICh0aGF0LnB1c2hlZF9ndWlkc19bZXZlbnQuZ3VpZF0gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZTogZnVuY3Rpb24ob3B0X3BydW5lRW1wdHkpIHsKLSAgICAgIHZhciBldmVudHMgPSB7fTsKLSAgICAgIHZhciBhbGxUeXBlSW5mb3MgPSBFdmVudFJlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTsKLSAgICAgIGFsbFR5cGVJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50VHlwZUluZm8pIHsKLSAgICAgICAgZXZlbnRzW2V2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV0gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgICAgIGlmICh0aGlzLnN1bmJ1cnN0X3pvb21fbGV2ZWwgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBldmVudHNbZXZlbnRUeXBlSW5mby5tZXRhZGF0YS5uYW1lXS5zdW5idXJzdF96b29tX2xldmVsID0KLSAgICAgICAgICAgICAgdGhpcy5zdW5idXJzdF96b29tX2xldmVsOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbihldmVudCwgaSkgewotICAgICAgICB2YXIgbWF4RXZlbnRJbmRleCA9IC0xOwotICAgICAgICB2YXIgbWF4RXZlbnRUeXBlSW5mbyA9IHVuZGVmaW5lZDsKLSAgICAgICAgYWxsVHlwZUluZm9zLmZvckVhY2goZnVuY3Rpb24oZXZlbnRUeXBlSW5mbywgZXZlbnRJbmRleCkgewotICAgICAgICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2YgZXZlbnRUeXBlSW5mby5jb25zdHJ1Y3RvcikpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgaWYgKGV2ZW50SW5kZXggPiBtYXhFdmVudEluZGV4KSB7Ci0gICAgICAgICAgICBtYXhFdmVudEluZGV4ID0gZXZlbnRJbmRleDsKLSAgICAgICAgICAgIG1heEV2ZW50VHlwZUluZm8gPSBldmVudFR5cGVJbmZvOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIGlmIChtYXhFdmVudEluZGV4ID09IC0xKSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coZXZlbnQpOwotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIGV2ZW50IHR5cGUnKTsKLSAgICAgICAgfQotICAgICAgICBldmVudHNbbWF4RXZlbnRUeXBlSW5mby5tZXRhZGF0YS5uYW1lXS5wdXNoKGV2ZW50KTsKLSAgICAgIH0pOwotICAgICAgaWYgKG9wdF9wcnVuZUVtcHR5KSB7Ci0gICAgICAgIHZhciBwcnVuZWRFdmVudHMgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgZXZlbnRUeXBlIGluIGV2ZW50cykgewotICAgICAgICAgIGlmIChldmVudHNbZXZlbnRUeXBlXS5sZW5ndGggPiAwKQotICAgICAgICAgICAgcHJ1bmVkRXZlbnRzW2V2ZW50VHlwZV0gPSBldmVudHNbZXZlbnRUeXBlXTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcHJ1bmVkRXZlbnRzOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGV2ZW50czsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0RXZlbnRzT3JnYW5pemVkQnlUaXRsZTogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZXZlbnRzQnlUaXRsZSA9IHt9OwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBldmVudCA9IHRoaXNbaV07Ci0gICAgICAgIGlmIChldmVudC50aXRsZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQW4gZXZlbnQgZGlkblwndCBoYXZlIGEgdGl0bGUhJyk7Ci0gICAgICAgIGlmIChldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXSA9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICBldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXSA9IFtdOwotICAgICAgICB9Ci0gICAgICAgIGV2ZW50c0J5VGl0bGVbZXZlbnQudGl0bGVdLnB1c2goZXZlbnQpOwotICAgICAgfQotICAgICAgcmV0dXJuIGV2ZW50c0J5VGl0bGU7Ci0gICAgfSwKLQotICAgIGVudW1FdmVudHNPZlR5cGU6IGZ1bmN0aW9uKHR5cGUsIGZ1bmMpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGhfOyBpKyspCi0gICAgICAgIGlmICh0aGlzW2ldIGluc3RhbmNlb2YgdHlwZSkKLSAgICAgICAgICBmdW5jKHRoaXNbaV0pOwotICAgIH0sCi0KLSAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKLSAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IHNlbGVjdGlvbicpOwotICAgICAgfQotCi0gICAgICB2YXIgZXZlbnRzQnlCYXNlVHlwZSA9IHRoaXMuZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZSh0cnVlKTsKLSAgICAgIHZhciBldmVudFR5cGVOYW1lID0gdHIuYi5kaWN0aW9uYXJ5S2V5cyhldmVudHNCeUJhc2VUeXBlKVswXTsKLQotICAgICAgaWYgKHRoaXMubGVuZ3RoID09PSAxKSB7Ci0gICAgICAgIHZhciB0bXAgPSBFdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVNpbmd1bGFyTmFtZShldmVudFR5cGVOYW1lKTsKLSAgICAgICAgcmV0dXJuIHRoaXNbMF0udXNlckZyaWVuZGx5TmFtZTsKLSAgICAgIH0KLQotICAgICAgdmFyIG51bUV2ZW50VHlwZXMgPSB0ci5iLmRpY3Rpb25hcnlMZW5ndGgoZXZlbnRzQnlCYXNlVHlwZSk7Ci0gICAgICBpZiAobnVtRXZlbnRUeXBlcyAhPT0gMSkgewotICAgICAgICByZXR1cm4gdGhpcy5sZW5ndGggKyAnIGV2ZW50cyBvZiB2YXJpb3VzIHR5cGVzJzsKLSAgICAgIH0KLQotICAgICAgdmFyIHRtcCA9IEV2ZW50UmVnaXN0cnkuZ2V0VXNlckZyaWVuZGx5UGx1cmFsTmFtZShldmVudFR5cGVOYW1lKTsKLSAgICAgIHJldHVybiB0aGlzLmxlbmd0aCArICcgJyArIHRtcDsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSGVscGVyIGZvciBzZWxlY3Rpb24gcHJldmlvdXMgb3IgbmV4dC4KLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9mZnNldCBJZiBwb3NpdGl2ZSwgc2VsZWN0IG9uZSBmb3J3YXJkIChuZXh0KS4KLSAgICAgKiAgIEVsc2UsIHNlbGVjdCBwcmV2aW91cy4KLSAgICAgKgotICAgICAqIEBwYXJhbSB7VGltZWxpbmVWaWV3cG9ydH0gdmlld3BvcnQgVGhlIHZpZXdwb3J0IHRvIHVzZSB0byBkZXRlcm1pbmUgd2hhdAotICAgICAqIGlzIG5lYXIgdG8gdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgotICAgICAqCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBjdXJyZW50IHNlbGVjdGlvbiBjaGFuZ2VkLgotICAgICAqLwotICAgIGdldFNoaWZ0ZWRTZWxlY3Rpb246IGZ1bmN0aW9uKHZpZXdwb3J0LCBvZmZzZXQpIHsKLSAgICAgIHZhciBuZXdTZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoXzsgaSsrKSB7Ci0gICAgICAgIHZhciBldmVudCA9IHRoaXNbaV07Ci0KLSAgICAgICAgLy8gSWYgdGhpcyBpcyBhIGZsb3cgZXZlbnQsIHRoZW4gbW92ZSB0byBpdHMgc2xpY2UgYmFzZWQgb24gdGhlCi0gICAgICAgIC8vIG9mZnNldCBkaXJlY3Rpb24uCi0gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIHRyLm1vZGVsLkZsb3dFdmVudCkgewotICAgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7Ci0gICAgICAgICAgICBuZXdTZWxlY3Rpb24ucHVzaChldmVudC5lbmRTbGljZSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChvZmZzZXQgPCAwKSB7Ci0gICAgICAgICAgICBuZXdTZWxlY3Rpb24ucHVzaChldmVudC5zdGFydFNsaWNlKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLyogRG8gbm90aGluZy4gWmVybyBvZmZzZXRzIGRvbid0IGRvIGFueXRoaW5nLiAqLwotICAgICAgICAgIH0KLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciB0cmFjayA9IHZpZXdwb3J0LnRyYWNrRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICB0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKLSAgICAgICAgICAgIGV2ZW50LCBvZmZzZXQsIG5ld1NlbGVjdGlvbik7Ci0gICAgICB9Ci0KLSAgICAgIGlmIChuZXdTZWxlY3Rpb24ubGVuZ3RoID09IDApCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gbmV3U2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBmb3JFYWNoOiBmdW5jdGlvbihmbiwgb3B0X3RoaXMpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykKLSAgICAgICAgZm4uY2FsbChvcHRfdGhpcywgdGhpc1tpXSwgaSk7Ci0gICAgfSwKLQotICAgIG1hcDogZnVuY3Rpb24oZm4sIG9wdF90aGlzKSB7Ci0gICAgICB2YXIgcmVzID0gW107Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspCi0gICAgICAgIHJlcy5wdXNoKGZuLmNhbGwob3B0X3RoaXMsIHRoaXNbaV0sIGkpKTsKLSAgICAgIHJldHVybiByZXM7Ci0gICAgfSwKLQotICAgIGV2ZXJ5OiBmdW5jdGlvbihmbiwgb3B0X3RoaXMpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykKLSAgICAgICAgaWYgKCFmbi5jYWxsKG9wdF90aGlzLCB0aGlzW2ldLCBpKSkKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgc29tZTogZnVuY3Rpb24oZm4sIG9wdF90aGlzKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspCi0gICAgICAgIGlmIChmbi5jYWxsKG9wdF90aGlzLCB0aGlzW2ldLCBpKSkKLSAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTZWxlY3Rpb246IFNlbGVjdGlvbiwKLSAgICBSZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ6IFJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zZWxlY3Rpb25fY29udHJvbGxlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NlbGVjdGlvbl9jb250cm9sbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNGIyMjYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NlbGVjdGlvbl9jb250cm9sbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudF90YXJnZXQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYnJ1c2hpbmdfc3RhdGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdWlfc3RhdGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLSAgdmFyIEJydXNoaW5nU3RhdGUgPSB0ci5jLkJydXNoaW5nU3RhdGU7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0gIHZhciBWaWV3cG9ydCA9IHRyLmMuVGltZWxpbmVWaWV3cG9ydDsKLQotICBmdW5jdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyKHRpbWVsaW5lVmlldykgewotICAgIHRyLmIuRXZlbnRUYXJnZXQuY2FsbCh0aGlzKTsKLQotICAgIHRoaXMudGltZWxpbmVWaWV3XyA9IHRpbWVsaW5lVmlldzsKLSAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXyA9IG5ldyBCcnVzaGluZ1N0YXRlKCk7Ci0KLSAgICB0aGlzLm9uUG9wU3RhdGVfID0gdGhpcy5vblBvcFN0YXRlXy5iaW5kKHRoaXMpOwotICAgIHRoaXMuaGlzdG9yeUVuYWJsZWRfID0gZmFsc2U7Ci0gICAgdGhpcy5zZWxlY3Rpb25zXyA9IHt9OwotICB9Ci0KLSAgU2VsZWN0aW9uQ29udHJvbGxlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5iLkV2ZW50VGFyZ2V0LnByb3RvdHlwZSwKLQotICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ2NoYW5nZScsIGZhbHNlLCBmYWxzZSk7Ci0gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSk7Ci0gICAgfSwKLQotICAgIGdldCBtb2RlbCgpIHsKLSAgICAgIGlmICghdGhpcy50aW1lbGluZVZpZXdfKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIHRoaXMudGltZWxpbmVWaWV3Xy5tb2RlbDsKLSAgICB9LAotCi0gICAgZ2V0IHRyYWNrVmlldygpIHsKLSAgICAgIGlmICghdGhpcy50aW1lbGluZVZpZXdfKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIHRoaXMudGltZWxpbmVWaWV3Xy50cmFja1ZpZXc7Ci0gICAgfSwKLQotICAgIGdldCB2aWV3cG9ydCgpIHsKLSAgICAgIGlmICghdGhpcy50aW1lbGluZVZpZXdfKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgaWYgKCF0aGlzLnRpbWVsaW5lVmlld18udHJhY2tWaWV3KQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIHRoaXMudGltZWxpbmVWaWV3Xy50cmFja1ZpZXcudmlld3BvcnQ7Ci0gICAgfSwKLQotICAgIC8qIEhpc3Rvcnkgc3lzdGVtICovCi0gICAgZ2V0IGhpc3RvcnlFbmFibGVkKCkgewotICAgICAgcmV0dXJuIHRoaXMuaGlzdG9yeUVuYWJsZWRfOwotICAgIH0sCi0KLSAgICBzZXQgaGlzdG9yeUVuYWJsZWQoaGlzdG9yeUVuYWJsZWQpIHsKLSAgICAgIHRoaXMuaGlzdG9yeUVuYWJsZWRfID0gISFoaXN0b3J5RW5hYmxlZDsKLSAgICAgIGlmIChoaXN0b3J5RW5hYmxlZCkKLSAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5vblBvcFN0YXRlXyk7Ci0gICAgICBlbHNlCi0gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMub25Qb3BTdGF0ZV8pOwotICAgIH0sCi0KLSAgICBtb2RlbFdpbGxDaGFuZ2U6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmlzQXBwbGllZFRvTW9kZWwpCi0gICAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLnVuYXBwbHlGcm9tTW9kZWxTZWxlY3Rpb25TdGF0ZSgpOwotICAgIH0sCi0KLSAgICBtb2RlbERpZENoYW5nZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbnNfID0ge307Ci0gICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5hcHBseVRvTW9kZWxTZWxlY3Rpb25TdGF0ZSh0aGlzLm1vZGVsKTsKLQotICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgnbW9kZWwtY2hhbmdlZCcsIGZhbHNlLCBmYWxzZSk7Ci0gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSk7Ci0gICAgfSwKLQotICAgIG9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uOwotICAgICAgaWYgKHRoaXMuaGlzdG9yeUVuYWJsZWQpIHsKLSAgICAgICAgLy8gU2F2ZSB0aGUgc2VsZWN0aW9uIHNvIHRoYXQgd2hlbiBiYWNrIGJ1dHRvbiBpcyBwcmVzc2VkLAotICAgICAgICAvLyBpdCBjb3VsZCBiZSByZXRyaWV2ZWQuCi0gICAgICAgIHRoaXMuc2VsZWN0aW9uc19bc2VsZWN0aW9uLmd1aWRdID0gc2VsZWN0aW9uOwotICAgICAgICB2YXIgc3RhdGUgPSB7Ci0gICAgICAgICAgc2VsZWN0aW9uX2d1aWQ6IHNlbGVjdGlvbi5ndWlkCi0gICAgICAgIH07Ci0KLSAgICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHN0YXRlLCBkb2N1bWVudC50aXRsZSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uUG9wU3RhdGVfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoZS5zdGF0ZSA9PT0gbnVsbCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb25zX1tlLnN0YXRlLnNlbGVjdGlvbl9ndWlkXTsKLSAgICAgIGlmIChzZWxlY3Rpb24pIHsKLSAgICAgICAgdmFyIG5ld1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKLSAgICAgICAgbmV3U3RhdGUuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3U3RhdGU7Ci0gICAgICB9Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLnNlbGVjdGlvbjsKLSAgICB9LAotICAgIGdldCBmaW5kTWF0Y2hlcygpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5maW5kTWF0Y2hlczsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbk9mSW50ZXJlc3QoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uc2VsZWN0aW9uT2ZJbnRlcmVzdDsKLSAgICB9LAotCi0gICAgZ2V0IGN1cnJlbnRCcnVzaGluZ1N0YXRlKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfOwotICAgIH0sCi0KLSAgICBzZXQgY3VycmVudEJydXNoaW5nU3RhdGUobmV3QnJ1c2hpbmdTdGF0ZSkgewotICAgICAgaWYgKG5ld0JydXNoaW5nU3RhdGUuaXNBcHBsaWVkVG9Nb2RlbCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYXBwbHkgdGhpcyBzdGF0ZSwgaXQgaXMgYXBwbGllZCcpOwotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHVzZXMgdmFsdWUtZXF1YWxpdHkgb24gdGhlIHN0YXRlcyBzbyB0aGF0IHN0YXRlIGNhbgotICAgICAgLy8gY2hhbmdlZCB0byBhIGNsb25lIG9mIGl0c2VsZiB3aXRob3V0IGNhdXNpbmcgYSBjaGFuZ2UgZXZlbnQsIHdoaWxlCi0gICAgICAvLyBzdGlsbCBoYXZpbmcgdGhlIGFjdHVhbCBzdGF0ZSBvYmplY3QgY2hhbmdlIHRvIHRoZSBuZXcgY2xvbmUuCi0gICAgICB2YXIgaGFzVmFsdWVDaGFuZ2VkID0gIXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmVxdWFscygKLSAgICAgICAgICBuZXdCcnVzaGluZ1N0YXRlKTsKLQotICAgICAgaWYgKG5ld0JydXNoaW5nU3RhdGUgIT09IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfICYmCi0gICAgICAgICAgaGFzVmFsdWVDaGFuZ2VkID09IGZhbHNlKSB7Ci0gICAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLnRyYW5zZmVyTW9kZWxPd25lcnNoaXBUb0Nsb25lKAotICAgICAgICAgICAgbmV3QnJ1c2hpbmdTdGF0ZSk7Ci0gICAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfID0gbmV3QnJ1c2hpbmdTdGF0ZTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uaXNBcHBsaWVkVG9Nb2RlbCkKLSAgICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8udW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlKCk7Ci0KLSAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfID0gbmV3QnJ1c2hpbmdTdGF0ZTsKLQotICAgICAgaWYgKHRoaXMubW9kZWwpCi0gICAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmFwcGx5VG9Nb2RlbFNlbGVjdGlvblN0YXRlKHRoaXMubW9kZWwpOwotCi0gICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnRfKCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RmlsdGVyfSBmaWx0ZXIgVGhlIGZpbHRlciB0byB1c2UgZm9yIGZpbmRpbmcgbWF0Y2hlcy4KLSAgICAgKiBAcGFyYW0ge1NlbGVjdGlvbn0gc2VsZWN0aW9uIFRoZSBzZWxlY3Rpb24gdG8gYWRkIG1hdGNoZXMgdG8uCi0gICAgICogQHJldHVybiB7VGFza30gd2hpY2ggcGVyZm9ybXMgdGhlIGZpbHRlcmluZy4KLSAgICAgKi8KLSAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgewotICAgICAgdmFyIHRpbWVsaW5lVmlldyA9IHRoaXMudGltZWxpbmVWaWV3Xy50cmFja1ZpZXc7Ci0gICAgICBpZiAoIXRpbWVsaW5lVmlldykKLSAgICAgICAgcmV0dXJuIG5ldyB0ci5iLlRhc2soKTsKLSAgICAgIHJldHVybiB0aW1lbGluZVZpZXcuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzaygKLSAgICAgICAgICBmaWx0ZXIsIHNlbGVjdGlvbik7Ci0gICAgfSwKLQotICAgIGZpbmRUZXh0Q2hhbmdlZFRvOiBmdW5jdGlvbihhbGxQb3NzaWJsZU1hdGNoZXMpIHsKLSAgICAgIHZhciBuZXdCcnVzaGluZ1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKLSAgICAgIG5ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXMgPSBhbGxQb3NzaWJsZU1hdGNoZXM7Ci0gICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3QnJ1c2hpbmdTdGF0ZTsKLSAgICB9LAotCi0gICAgZmluZEZvY3VzQ2hhbmdlZFRvOiBmdW5jdGlvbihjdXJyZW50Rm9jdXMpIHsKLSAgICAgIHZhciBuZXdCcnVzaGluZ1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKLSAgICAgIG5ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uID0gY3VycmVudEZvY3VzOwotICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IG5ld0JydXNoaW5nU3RhdGU7Ci0KLSAgICAgIHRoaXMub25Vc2VySW5pdGlhdGVkU2VsZWN0aW9uQ2hhbmdlXygpOwotICAgIH0sCi0KLSAgICBmaW5kVGV4dENsZWFyZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMueE5hdlN0cmluZ01hcmtlcl8gIT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLm1vZGVsLnJlbW92ZUFubm90YXRpb24odGhpcy54TmF2U3RyaW5nTWFya2VyXyk7Ci0gICAgICAgIHRoaXMueE5hdlN0cmluZ01hcmtlcl8gPSB1bmRlZmluZWQ7Ci0gICAgICB9Ci0KLSAgICAgIGlmICh0aGlzLmd1aWRlTGluZUFubm90YXRpb25fICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5tb2RlbC5yZW1vdmVBbm5vdGF0aW9uKHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8pOwotICAgICAgICB0aGlzLmd1aWRlTGluZUFubm90YXRpb25fID0gdW5kZWZpbmVkOwotICAgICAgfQotCi0gICAgICB2YXIgbmV3QnJ1c2hpbmdTdGF0ZSA9IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7Ci0gICAgICBuZXdCcnVzaGluZ1N0YXRlLnNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICAgIG5ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXMgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3QnJ1c2hpbmdTdGF0ZTsKLQotICAgICAgdGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7Ci0gICAgfSwKLQotICAgIHVpU3RhdGVGcm9tU3RyaW5nOiBmdW5jdGlvbihzdHJpbmcpIHsKLSAgICAgIHJldHVybiB0ci5jLlVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZygKLSAgICAgICAgICB0aGlzLm1vZGVsLCB0aGlzLnZpZXdwb3J0LCBzdHJpbmcpOwotICAgIH0sCi0KLSAgICBuYXZUb1Bvc2l0aW9uOiBmdW5jdGlvbih1aVN0YXRlLCBzaG93TmF2TGluZSkgewotICAgICAgdGhpcy50cmFja1ZpZXcubmF2VG9Qb3NpdGlvbih1aVN0YXRlLCBzaG93TmF2TGluZSk7Ci0gICAgfSwKLQotICAgIGNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZTogZnVuY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB2YXIgbmV3QnJ1c2hpbmdTdGF0ZSA9IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7Ci0gICAgICBuZXdCcnVzaGluZ1N0YXRlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICAgIG5ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXMgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3QnJ1c2hpbmdTdGF0ZTsKLQotICAgICAgdGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7Ci0gICAgfSwKLQotICAgIHNob3dTY3JpcHRDb250cm9sU2VsZWN0aW9uOiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHZhciBuZXdCcnVzaGluZ1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKLSAgICAgIG5ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgICAgbmV3QnJ1c2hpbmdTdGF0ZS5maW5kTWF0Y2hlcyA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGUgPSBuZXdCcnVzaGluZ1N0YXRlOwotICAgIH0sCi0KLSAgICBjaGFuZ2VTZWxlY3Rpb25Gcm9tUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50OiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHZhciBuZXdCcnVzaGluZ1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKLSAgICAgIG5ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgICAgbmV3QnJ1c2hpbmdTdGF0ZS5maW5kTWF0Y2hlcyA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGUgPSBuZXdCcnVzaGluZ1N0YXRlOwotCi0gICAgICB0aGlzLm9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV8oKTsKLSAgICB9LAotCi0gICAgY2hhbmdlQW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50czogZnVuY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB2YXIgbmV3QnJ1c2hpbmdTdGF0ZSA9IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7Ci0gICAgICBuZXdCcnVzaGluZ1N0YXRlLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHMgPSBzZWxlY3Rpb247Ci0gICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3QnJ1c2hpbmdTdGF0ZTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTZWxlY3Rpb25Db250cm9sbGVyOiBTZWxlY3Rpb25Db250cm9sbGVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NlbGVjdGlvbl9jb250cm9sbGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zZWxlY3Rpb25fY29udHJvbGxlcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzMTQ2ODcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NlbGVjdGlvbl9jb250cm9sbGVyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0KLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKLSAgdmFyIFRhc2sgPSB0ci5iLlRhc2s7Ci0KLSAgZnVuY3Rpb24gbmV3U2ltcGxlRmFrZVRpbWVsaW5lVmlldygpIHsKLSAgICB2YXIgbSA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtKSB7Ci0gICAgICBtLnAxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgICBtLnQyID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLQotICAgICAgbS5zQSA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCi0gICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogNX0pKTsKLSAgICAgIG0uc0IgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxMCwgZW5kOiAxNX0pKTsKLSAgICAgIG0uc0MgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYycsIHN0YXJ0OiAyMCwgZW5kOiAyMH0pKTsKLSAgICB9KTsKLQotICAgIC8vIEZha2UgdGltZWxpbmUgdmlldy4gU28gZmFrZSBpdHMgLi4uIGp1c3Qgd293LgotICAgIHZhciB0aW1lbGluZVZpZXcgPSB7Ci0gICAgICBtb2RlbDogbQotICAgIH07Ci0gICAgcmV0dXJuIHRpbWVsaW5lVmlldzsKLSAgfQotCi0gIGZ1bmN0aW9uIGRvZXNDYXVzZUNoYW5nZVRvRmlyZShzZWxlY3Rpb25Db250cm9sbGVyLCBjYiwgb3B0X3RoaXMpIHsKLSAgICB2YXIgZGlkRmlyZSA9IGZhbHNlOwotICAgIGZ1bmN0aW9uIGRpZEZpcmVDYigpIHsKLSAgICAgIGRpZEZpcmUgPSB0cnVlOwotICAgIH07Ci0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBkaWRGaXJlQ2IpOwotICAgIGNiLmNhbGwob3B0X3RoaXMpOwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZGlkRmlyZUNiKTsKLSAgICByZXR1cm4gZGlkRmlyZTsKLSAgfQotCi0gIHRlc3QoJ3NpbXBsZVN0YXRlQ2hhbmdlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0aW1lbGluZVZpZXcgPSBuZXdTaW1wbGVGYWtlVGltZWxpbmVWaWV3KCk7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgdHIuYy5TZWxlY3Rpb25Db250cm9sbGVyKHRpbWVsaW5lVmlldyk7Ci0gICAgdmFyIG0gPSB0aW1lbGluZVZpZXcubW9kZWw7Ci0KLSAgICAvLyBTZXR0aW5nIGNhdXNlcyBjaGFuZ2UuCi0gICAgdmFyIGJzID0gbmV3IHRyLmMuQnJ1c2hpbmdTdGF0ZSgpOwotICAgIGJzLnNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oW20uc0FdKTsKLSAgICBhc3NlcnQuaXNUcnVlKGRvZXNDYXVzZUNoYW5nZVRvRmlyZSgKLSAgICAgICAgc2VsZWN0aW9uQ29udHJvbGxlciwKLSAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgc2VsZWN0aW9uQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IGJzOwotICAgICAgICB9KSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShicy5pc0FwcGxpZWRUb01vZGVsKTsKLQotICAgIC8vIFNldHRpbmcgdmFsdWUgZXF1aXZhbGVudCBkb2Vzbid0IGNhdXNlIGNoYW5nZSBldmVudC4KLSAgICB2YXIgYnMyID0gYnMuY2xvbmUoKTsKLSAgICBhc3NlcnQuaXNGYWxzZShkb2VzQ2F1c2VDaGFuZ2VUb0ZpcmUoCi0gICAgICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIsCi0gICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuY3VycmVudEJydXNoaW5nU3RhdGUgPSBiczI7Ci0gICAgICAgIH0pKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZSwgYnMyKTsKLSAgICBhc3NlcnQuaXNUcnVlKHNlbGVjdGlvbkNvbnRyb2xsZXIuY3VycmVudEJydXNoaW5nU3RhdGUuaXNBcHBsaWVkVG9Nb2RlbCk7Ci0KLSAgICAvLyBTZXR0aW5nIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgdW5hcHBsaWVzIHRoZSBvbGQgYnMuCi0gICAgdmFyIGJzMyA9IG5ldyB0ci5jLkJydXNoaW5nU3RhdGUoKTsKLSAgICBiczMuZmluZE1hdGNoZXMgPSBuZXcgU2VsZWN0aW9uKFttLnNBLCBtLnNCXSk7Ci0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IGJzMzsKLSAgICBhc3NlcnQuaXNUcnVlKGJzMy5pc0FwcGxpZWRUb01vZGVsKTsKLSAgICBhc3NlcnQuaXNGYWxzZShiczIuaXNBcHBsaWVkVG9Nb2RlbCk7Ci0gIH0pOwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NlbGVjdGlvbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2VsZWN0aW9uX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTMxZDRlMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2VsZWN0aW9uX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9zbGljZV90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnc2VsZWN0aW9uT2JqZWN0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDUsIHt9LCAxKSk7Ci0KLSAgICB2YXIgc2VsID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgc2VsLnB1c2godDEuc2xpY2VHcm91cC5zbGljZXNbMF0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNlbC5ib3VuZHMubWluLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsLmJvdW5kcy5tYXgsIDQpOwotICAgIGFzc2VydC5lcXVhbChzZWxbMF0sIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLQotICAgIHNlbC5wdXNoKHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsLmJvdW5kcy5taW4sIDEpOwotICAgIGFzc2VydC5lcXVhbChzZWwuYm91bmRzLm1heCwgNik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbFsxXSwgdDEuc2xpY2VHcm91cC5zbGljZXNbMV0pOwotCi0gICAgc2VsLmNsZWFyKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbC5sZW5ndGgsIDApOwotICB9KTsKLQotICB0ZXN0KCdzaGlmdGVkU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDUsIHt9LCAxKSk7Ci0KLSAgICB2YXIgdmlld3BvcnQgPSBuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCk7Ci0gICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLlNsaWNlVHJhY2sodmlld3BvcnQpOwotICAgIHZpZXdwb3J0Lm1vZGVsVHJhY2tDb250YWluZXIgPSB0cmFjazsKLSAgICB0cmFjay5zbGljZXMgPSB0MS5zbGljZUdyb3VwLnNsaWNlczsKLQotICAgIHZpZXdwb3J0LnJlYnVpbGRFdmVudFRvVHJhY2tNYXAoKTsKLQotCi0gICAgdmFyIHNlbCA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHNlbC5wdXNoKHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLQotICAgIHZhciBzaGlmdGVkID0gc2VsLmdldFNoaWZ0ZWRTZWxlY3Rpb24odHJhY2sudmlld3BvcnQsIDEpOwotICAgIGFzc2VydC5lcXVhbChzaGlmdGVkLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNoaWZ0ZWRbMF0sIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdKTsKLSAgfSk7Ci0KLSAgdGVzdCgndW5pcXVlQ29udGVudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2FtcGxlMSA9IHtndWlkOiAxfTsKLSAgICB2YXIgc2FtcGxlMiA9IHtndWlkOiAyfTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLQotICAgIHNlbGVjdGlvbi5wdXNoKHNhbXBsZTEpOwotICAgIHNlbGVjdGlvbi5wdXNoKHNhbXBsZTIpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAyKTsKLQotICAgIHNlbGVjdGlvbi5wdXNoKHNhbXBsZTEpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAyKTsKLSAgfSk7Ci0KLSAgdGVzdCgndXNlckZyaWVuZGx5TmFtZVNpbmd1bGFyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHNlbGVjdGlvbi51c2VyRnJpZW5kbHlOYW1lKTsKLSAgfSk7Ci0KLSAgdGVzdCgndXNlckZyaWVuZGx5TmFtZVBsdXJhbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7Ci0gICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCi0gICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAyLCB7fSwgMykpOwotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oWwotICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwKLSAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMV0KLSAgICBdKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHNlbGVjdGlvbi51c2VyRnJpZW5kbHlOYW1lKTsKLSAgfSk7Ci0KLSAgdGVzdCgndXNlckZyaWVuZGx5TmFtZU1peGVkUGx1cmFsJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDIsIHt9LCAzKSk7Ci0KLSAgICB2YXIgaTEwID0gbmV3IHRyLm1vZGVsLk9iamVjdEluc3RhbmNlKAotICAgIHt9LCAnMHgxMDAwJywgJ2NhdCcsICduYW1lJywgMTApOwotICAgIHZhciBzMTAgPSBpMTAuYWRkU25hcHNob3QoMTAsIHtmb286IDF9KTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oWwotICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwKLSAgICAgICAgczEwCi0gICAgXSk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChzZWxlY3Rpb24udXNlckZyaWVuZGx5TmFtZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2dyb3VwRXZlbnRzQnlUaXRsZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7Ci0gICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCi0gICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAyLCB7fSwgMykpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdiJywgMCwgMywge30sIDMpKTsKLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKFsKLSAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMF0sCi0gICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdLAotICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1syXQotICAgIF0pOwotCi0gICAgdmFyIGV2ZW50c0J5VGl0bGUgPSBzZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlUaXRsZSgpOwotICAgIGFzc2VydC5lcXVhbCgyLCB0ci5iLmRpY3Rpb25hcnlMZW5ndGgoZXZlbnRzQnlUaXRsZSkpOwotICAgIGFzc2VydC5zYW1lTWVtYmVycyhldmVudHNCeVRpdGxlWydhJ10sCi0gICAgICAgICAgICAgICAgIFt0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwgdDEuc2xpY2VHcm91cC5zbGljZXNbMV1dKTsKLSAgICBhc3NlcnQuc2FtZU1lbWJlcnMoZXZlbnRzQnlUaXRsZVsnYiddLAotICAgICAgICAgICAgICAgICBbdDEuc2xpY2VHcm91cC5zbGljZXNbMl1dKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZXF1YWxzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYicsIDAsIDIsIHt9LCAzKSk7Ci0gICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCi0gICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2MnLCAwLCAzLCB7fSwgMykpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAotICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdkJywgMCwgNCwge30sIDUpKTsKLQotICAgIHZhciBzMSA9IG5ldyB0ci5jLlNlbGVjdGlvbihbCi0gICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdLAotICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1sxXSwKLSAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMl0KLSAgICBdKTsKLSAgICB2YXIgczIgPSBuZXcgdHIuYy5TZWxlY3Rpb24oWwotICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1sxXSwKLSAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMF0sCi0gICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzJdCi0gICAgXSk7Ci0gICAgdmFyIHMzID0gbmV3IHRyLmMuU2VsZWN0aW9uKFsKLSAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMV0sCi0gICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdLAotICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1szXQotICAgIF0pOwotICAgIHZhciBzNCA9IG5ldyB0ci5jLlNlbGVjdGlvbihbCi0gICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdLAotICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXQotICAgIF0pOwotICAgIGFzc2VydC5pc1RydWUoczEuZXF1YWxzKHMyKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoczEuZXF1YWxzKHMzKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoczEuZXF1YWxzKHM0KSk7Ci0gIH0pOwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NpZGVfcGFuZWwvc2lkZV9wYW5lbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NpZGVfcGFuZWwvc2lkZV9wYW5lbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjBmMjNjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItYy1zaWRlLXBhbmVsJz4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotICBQb2x5bWVyKHsKLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLm9iamVjdEluc3RhbmNlXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHJhbmdlT2ZJbnRlcmVzdCgpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIHNldCByYW5nZU9mSW50ZXJlc3QocmFuZ2VPZkludGVyZXN0KSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIGdldCBtb2RlbCgpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIHNldCBtb2RlbChtb2RlbCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgZ2V0IGxpc3RlbmluZ1RvS2V5cygpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIHN1cHBvcnRzTW9kZWw6IGZ1bmN0aW9uKG0pIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2lkZV9wYW5lbC9zaWRlX3BhbmVsX2NvbnRhaW5lci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDg4OWFhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvYmFzZS9wb2x5bWVyX3V0aWxzLmh0bWwnPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NpZGVfcGFuZWwvc2lkZV9wYW5lbC5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci1jLXNpZGUtcGFuZWwtY29udGFpbmVyJyBpcz0nSFRNTFVua25vd25FbGVtZW50Jz4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKLSAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgICB9Ci0KLSAgICA6aG9zdChbZXhwYW5kZWRdKSA+IGFjdGl2ZS1wYW5lbC1jb250YWluZXIgewotICAgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKLSAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgYmxhY2s7Ci0gICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgfQotCi0gICAgOmhvc3QoOm5vdChbZXhwYW5kZWRdKSkgPiBhY3RpdmUtcGFuZWwtY29udGFpbmVyIHsKLSAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgfQotCi0gICAgYWN0aXZlLXBhbmVsLWNvbnRhaW5lciB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLQotICAgIHRhYi1zdHJpcCB7Ci0gICAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOwotICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYsIDIzNiwgMjM2KTsKLSAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgYmxhY2s7Ci0gICAgICBjdXJzb3I6IGRlZmF1bHQ7Ci0gICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgICBtaW4td2lkdGg6IDE4cHg7IC8qIHdvcmthcm91bmQgZm9yIGZsZXhib3ggYW5kIHdyaXRpbmctbW9kZSBtaXhpbmcgYnVnICovCi0gICAgICBwYWRkaW5nOiAxMHB4IDAgMTBweCAwOwotICAgICAgZm9udC1zaXplOiAxMnB4OwotICAgIH0KLQotICAgIHRhYi1zdHJpcCA+IHRhYi1zdHJpcC1sYWJlbCB7Ci0gICAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Ci0gICAgICBkaXNwbGF5OiBpbmxpbmU7Ci0gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsKLSAgICAgIG1pbi1oZWlnaHQ6IDIwcHg7Ci0gICAgICBwYWRkaW5nOiAxNXB4IDNweCAxNXB4IDFweDsKLSAgICB9Ci0KLSAgICB0YWItc3RyaXAgPgotICAgICAgICB0YWItc3RyaXAtbGFiZWw6bm90KFtlbmFibGVkXSkgewotICAgICAgY29sb3I6IHJnYigxMjgsIDEyOCwgMTI4KTsKLSAgICB9Ci0KLSAgICB0YWItc3RyaXAgPiB0YWItc3RyaXAtbGFiZWxbc2VsZWN0ZWRdIHsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE2MywgMTYzLCAxNjMpOwotICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7Ci0gICAgICBwYWRkaW5nOiAxNHB4IDJweCAxNHB4IDFweDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLQotICAgIDxhY3RpdmUtcGFuZWwtY29udGFpbmVyIGlkPSdhY3RpdmVfcGFuZWxfY29udGFpbmVyJz4KLSAgICA8L2FjdGl2ZS1wYW5lbC1jb250YWluZXI+Ci0gICAgPHRhYi1zdHJpcCBpZD0ndGFiX3N0cmlwJz48L3RhYi1zdHJpcD4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuYWN0aXZlUGFuZWxDb250YWluZXJfID0gdGhpcy4kLmFjdGl2ZV9wYW5lbF9jb250YWluZXI7Ci0gICAgICB0aGlzLnRhYlN0cmlwXyA9IHRoaXMuJC50YWJfc3RyaXA7Ci0KLSAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfID0gdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcyk7Ci0gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2VkXyA9IHRoaXMub25Nb2RlbENoYW5nZWRfLmJpbmQodGhpcyk7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb25Db250cm9sbGVyKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb25Db250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpIHsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIpIHsKLSAgICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5yZW1vdmVFdmVudExpc3RlbmVyKAotICAgICAgICAgICAgJ2NoYW5nZScsIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAgICdtb2RlbC1jaGFuZ2VkJywgdGhpcy5vbk1vZGVsQ2hhbmdlZF8pOwotICAgICAgfQotICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXyA9IHNlbGVjdGlvbkNvbnRyb2xsZXI7Ci0gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Db250cm9sbGVyKSB7Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8pOwotICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgICAnbW9kZWwtY2hhbmdlZCcsIHRoaXMub25Nb2RlbENoYW5nZWRfKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLnNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgb25TZWxlY3Rpb25DaGFuZ2VkXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5hY3RpdmVQYW5lbCkKLSAgICAgICAgdGhpcy5hY3RpdmVQYW5lbC5zZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8ubW9kZWw7Ci0gICAgfSwKLQotICAgIG9uTW9kZWxDaGFuZ2VkXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgZXhwYW5kZWQoKSB7Ci0gICAgICB0aGlzLmhhc0F0dHJpYnV0ZSgnZXhwYW5kZWQnKTsKLSAgICB9LAotCi0gICAgZ2V0IGFjdGl2ZVBhbmVsKCkgewotICAgICAgaWYgKHRoaXMuYWN0aXZlUGFuZWxDb250YWluZXJfLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhbmVsQ29udGFpbmVyXy5jaGlsZHJlblswXTsKLSAgICB9LAotCi0gICAgZ2V0IGFjdGl2ZVBhbmVsVHlwZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhbmVsVHlwZV87Ci0gICAgfSwKLQotICAgIHNldCBhY3RpdmVQYW5lbFR5cGUocGFuZWxUeXBlKSB7Ci0gICAgICBpZiAodGhpcy5tb2RlbCA9PT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhY3RpdmF0ZSBwYW5lbCB3aXRob3V0IGEgbW9kZWwnKTsKLQotICAgICAgdmFyIHBhbmVsID0gdW5kZWZpbmVkOwotICAgICAgaWYgKHBhbmVsVHlwZSkKLSAgICAgICAgICBwYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocGFuZWxUeXBlKTsKLQotICAgICAgaWYgKHBhbmVsICE9PSB1bmRlZmluZWQgJiYgIXBhbmVsLnN1cHBvcnRzTW9kZWwodGhpcy5tb2RlbCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFjdGl2YXRlIHBhbmVsOiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgbW9kZWwnKTsKLQotICAgICAgaWYgKHRoaXMuYWN0aXZlUGFuZWxUeXBlKSB7Ci0gICAgICAgIHRoaXMuZ2V0TGFiZWxFbGVtZW50Rm9yUGFuZWxUeXBlXygKLSAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFuZWxUeXBlKS5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmFjdGl2ZVBhbmVsQ29udGFpbmVyXy50ZXh0Q29udGVudCA9ICcnOwotCi0gICAgICBpZiAocGFuZWxUeXBlID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2V4cGFuZGVkJyk7Ci0gICAgICAgIHRoaXMuYWN0aXZlUGFuZWxUeXBlXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0aGlzLmdldExhYmVsRWxlbWVudEZvclBhbmVsVHlwZV8ocGFuZWxUeXBlKS4KLSAgICAgICAgICBzZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdHJ1ZSk7Ci0gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZXhwYW5kZWQnLCB0cnVlKTsKLQotICAgICAgdGhpcy5hY3RpdmVQYW5lbENvbnRhaW5lcl8uYXBwZW5kQ2hpbGQocGFuZWwpOwotICAgICAgcGFuZWwucmFuZ2VPZkludGVyZXN0ID0gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOwotICAgICAgcGFuZWwuc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb25fOwotICAgICAgcGFuZWwubW9kZWwgPSB0aGlzLm1vZGVsOwotCi0gICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZV8gPSBwYW5lbFR5cGU7Ci0gICAgfSwKLQotICAgIGdldFBhbmVsVHlwZUZvckNvbnN0cnVjdG9yXzogZnVuY3Rpb24oY29uc3RydWN0b3IpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJTdHJpcF8uY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKHRoaXMudGFiU3RyaXBfLmNoaWxkcmVuW2ldLnBhbmVsVHlwZS5jb25zdHJ1Y3RvciA9PSBjb25zdHJ1Y3RvcikKLSAgICAgICAgICByZXR1cm4gdGhpcy50YWJTdHJpcF8uY2hpbGRyZW5baV0ucGFuZWxUeXBlOwotICAgICAgfQotICAgIH0sCi0KLSAgICBnZXRMYWJlbEVsZW1lbnRGb3JQYW5lbFR5cGVfOiBmdW5jdGlvbihwYW5lbFR5cGUpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJTdHJpcF8uY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKHRoaXMudGFiU3RyaXBfLmNoaWxkcmVuW2ldLnBhbmVsVHlwZSA9PSBwYW5lbFR5cGUpCi0gICAgICAgICAgcmV0dXJuIHRoaXMudGFiU3RyaXBfLmNoaWxkcmVuW2ldOwotICAgICAgfQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBwcmV2aW91c2x5QWN0aXZlUGFuZWxUeXBlID0gdGhpcy5hY3RpdmVQYW5lbFR5cGU7Ci0KLSAgICAgIHRoaXMudGFiU3RyaXBfLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICB2YXIgc3VwcG9ydGVkUGFuZWxUeXBlcyA9IFtdOwotCi0gICAgICB2YXIgcGFuZWxUeXBlcyA9IHRyLmIuZ2V0UG9seW1lckVsZW1lbnRzVGhhdFN1YmNsYXNzKCd0ci1jLXNpZGUtcGFuZWwnKTsKLSAgICAgIHBhbmVsVHlwZXMuZm9yRWFjaChmdW5jdGlvbihwYW5lbFR5cGUpIHsKLSAgICAgICAgdmFyIGxhYmVsRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWItc3RyaXAtbGFiZWwnKTsKLSAgICAgICAgdmFyIHBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChwYW5lbFR5cGUpOwotCi0gICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBwYW5lbC50ZXh0TGFiZWw7Ci0gICAgICAgIGxhYmVsRWwucGFuZWxUeXBlID0gcGFuZWxUeXBlOwotCi0gICAgICAgIHZhciBzdXBwb3J0ZWQgPSBwYW5lbC5zdXBwb3J0c01vZGVsKHRoaXMubW9kZWwpOwotICAgICAgICBpZiAodGhpcy5tb2RlbCAmJiBzdXBwb3J0ZWQuc3VwcG9ydGVkKSB7Ci0gICAgICAgICAgc3VwcG9ydGVkUGFuZWxUeXBlcy5wdXNoKHBhbmVsVHlwZSk7Ci0gICAgICAgICAgbGFiZWxFbC5zZXRBdHRyaWJ1dGUoJ2VuYWJsZWQnLCB0cnVlKTsKLSAgICAgICAgICBsYWJlbEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZSA9Ci0gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVQYW5lbFR5cGUgPT09IHBhbmVsVHlwZSA/IHVuZGVmaW5lZCA6IHBhbmVsVHlwZTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGxhYmVsRWwudGl0bGUgPSAnTm90IHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgdHJhY2U6ICcgKwotICAgICAgICAgICAgICBzdXBwb3J0ZWQucmVhc29uOwotICAgICAgICAgIGxhYmVsRWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgICAgfQotICAgICAgICB0aGlzLnRhYlN0cmlwXy5hcHBlbmRDaGlsZChsYWJlbEVsKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBSZXN0b3JlIHRoZSBhY3RpdmUgcGFuZWwsIG9yIGNvbGxhcHNlCi0gICAgICBpZiAocHJldmlvdXNseUFjdGl2ZVBhbmVsVHlwZSAmJgotICAgICAgICAgIHN1cHBvcnRlZFBhbmVsVHlwZXMuaW5kZXhPZihwcmV2aW91c2x5QWN0aXZlUGFuZWxUeXBlKSAhPSAtMSkgewotICAgICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZSA9IHByZXZpb3VzbHlBY3RpdmVQYW5lbFR5cGU7Ci0gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdleHBhbmRlZCcsIHRydWUpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5hY3RpdmVQYW5lbENvbnRhaW5lcl8udGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2V4cGFuZGVkJyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGdldCByYW5nZU9mSW50ZXJlc3QoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOwotICAgIH0sCi0KLSAgICBzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlKSB7Ci0gICAgICBpZiAocmFuZ2UgPT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3Qgbm90IGJlIHVuZGVmaW5lZCcpOwotICAgICAgdGhpcy5yYW5nZU9mSW50ZXJlc3RfID0gcmFuZ2U7Ci0gICAgICBpZiAodGhpcy5hY3RpdmVQYW5lbCkKLSAgICAgICAgdGhpcy5hY3RpdmVQYW5lbC5yYW5nZU9mSW50ZXJlc3QgPSByYW5nZTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2lkZV9wYW5lbC9zaWRlX3BhbmVsX2NvbnRhaW5lcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvc2lkZV9wYW5lbC9zaWRlX3BhbmVsX2NvbnRhaW5lcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxYzg1NmIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NpZGVfcGFuZWwvc2lkZV9wYW5lbF9jb250YWluZXJfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9zaWRlX3BhbmVsL3RpbWVfc3VtbWFyeV9zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NpZGVfcGFuZWwvc2lkZV9wYW5lbF9jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKSB7Ci0gICAgdGhpcy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uUmV0dXJuVmFsdWUgPSBbXTsKLQotICAgIHRoaXMudmlld3BvcnQgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHRoaXMuaGlnaGxpZ2h0ID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gIH0KLQotICBGYWtlU2VsZWN0aW9uQ29udHJvbGxlci5wcm90b3R5cGUgPSB7Ci0gICAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24obmFtZSwgY2IpIHsKLSAgICB9Ci0gIH07Ci0KLSAgZnVuY3Rpb24gY3JlYXRlTW9kZWwoKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbXSwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBicm93c2VyUHJvY2VzcyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgICAgdmFyIGJyb3dzZXJNYWluID0gYnJvd3NlclByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ2NhdCcsICdUYXNrJywgMCk7Ci0gICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDEwKTsKLSAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ1Rhc2snLCAyMCk7Ci0gICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDMwKTsKLSAgICB9KTsKLSAgICByZXR1cm4gbTsKLSAgfQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlQ29sbGFwc2VkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICBzZWxlY3Rpb25Db250cm9sbGVyLm1vZGVsID0gY3JlYXRlTW9kZWwoKTsKLQotICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLXNpZGUtcGFuZWwtY29udGFpbmVyJyk7Ci0gICAgY29udGFpbmVyLnNlbGVjdGlvbkNvbnRyb2xsZXIgPSBzZWxlY3Rpb25Db250cm9sbGVyOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChjb250YWluZXIpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGVzdF91dGlscy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3Rlc3RfdXRpbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY3OGVmNi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGVzdF91dGlscy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2VfZ3JvdXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3N0YWNrX2ZyYW1lLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aHJlYWRfdGltZV9zbGljZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEhlbHBlciBmdW5jdGlvbnMgZm9yIHVzZSBpbiB0cmFjaW5nIHRlc3RzLgotICovCi10ci5leHBvcnRUbygndHIuYy50ZXN0X3V0aWxzJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIF9nZXRTdGFydEFuZENwdUR1cmF0aW9uRnJvbURpY3QoCi0gICAgICBvcHRpb25zLCByZXF1aXJlZCwgc3RhcnRGaWVsZE5hbWUsIGR1cmF0aW9uRmllbGROYW1lLCBlbmRGaWVsZE5hbWUpIHsKLQotICAgIGlmIChvcHRpb25zW3N0YXJ0RmllbGROYW1lXSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICBpZiAocmVxdWlyZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignVG9vIGxpdHRsZSBpbmZvcm1hdGlvbi4nKTsKLSAgICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIHtzdGFydDogdW5kZWZpbmVkLCBkdXJhdGlvbjogdW5kZWZpbmVkfTsKLSAgICB9Ci0gICAgaWYgKG9wdGlvbnNbZHVyYXRpb25GaWVsZE5hbWVdICE9PSB1bmRlZmluZWQgJiYKLSAgICAgICAgb3B0aW9uc1tlbmRGaWVsZE5hbWVdICE9PSB1bmRlZmluZWQpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignVG9vIG11Y2ggaW5mb3JtYXRpb24uJyk7Ci0gICAgfQotICAgIGlmIChvcHRpb25zW2R1cmF0aW9uRmllbGROYW1lXSA9PT0gdW5kZWZpbmVkICYmCi0gICAgICAgIG9wdGlvbnNbZW5kRmllbGROYW1lXSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICBpZiAocmVxdWlyZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignVG9vIGxpdHRsZSBpbmZvcm1hdGlvbi4nKTsKLSAgICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIHtzdGFydDogdW5kZWZpbmVkLCBkdXJhdGlvbjogdW5kZWZpbmVkfTsKLSAgICB9Ci0KLSAgICB2YXIgZHVyYXRpb247Ci0gICAgaWYgKG9wdGlvbnNbZHVyYXRpb25GaWVsZE5hbWVdICE9PSB1bmRlZmluZWQpIHsKLSAgICAgIGR1cmF0aW9uID0gb3B0aW9uc1tkdXJhdGlvbkZpZWxkTmFtZV07Ci0gICAgfSBlbHNlIHsKLSAgICAgIGR1cmF0aW9uID0gb3B0aW9uc1tlbmRGaWVsZE5hbWVdIC0gb3B0aW9uc1tzdGFydEZpZWxkTmFtZV07Ci0gICAgfQotCi0gICAgcmV0dXJuIHsKLSAgICAgIHN0YXJ0OiBvcHRpb25zW3N0YXJ0RmllbGROYW1lXSwKLSAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbgotICAgIH07Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRTdGFydEFuZER1cmF0aW9uRnJvbURpY3Qob3B0aW9ucykgewotICAgIHJldHVybiBfZ2V0U3RhcnRBbmRDcHVEdXJhdGlvbkZyb21EaWN0KAotICAgICAgICBvcHRpb25zLCB0cnVlLCAnc3RhcnQnLCAnZHVyYXRpb24nLCAnZW5kJyk7Ci0gIH0KLQotICBmdW5jdGlvbiBtYXliZUdldENwdVN0YXJ0QW5kQ3B1RHVyYXRpb25Gcm9tRGljdChvcHRpb25zKSB7Ci0gICAgcmV0dXJuIF9nZXRTdGFydEFuZENwdUR1cmF0aW9uRnJvbURpY3QoCi0gICAgICAgIG9wdGlvbnMsIGZhbHNlLCAnY3B1U3RhcnQnLCAnY3B1RHVyYXRpb24nLCAnY3B1RW5kJyk7Ci0gIH0KLQotICBmdW5jdGlvbiBuZXdBc3luY1NsaWNlKHN0YXJ0LCBkdXJhdGlvbiwgc3RhcnRUaHJlYWQsIGVuZFRocmVhZCkgewotICAgIHJldHVybiBuZXdBc3luY1NsaWNlTmFtZWQoJ2EnLCBzdGFydCwgZHVyYXRpb24sIHN0YXJ0VGhyZWFkLCBlbmRUaHJlYWQpOwotICB9Ci0KLSAgZnVuY3Rpb24gbmV3QXN5bmNTbGljZU5hbWVkKG5hbWUsIHN0YXJ0LCBkdXJhdGlvbiwgc3RhcnRUaHJlYWQsIGVuZFRocmVhZCkgewotICAgIHZhciBhc3luY1NsaWNlQ29uc3RydWN0b3IgPQotICAgICAgICB0ci5tb2RlbC5Bc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKCcnLCBuYW1lKTsKLQotICAgIHZhciBzID0gbmV3IGFzeW5jU2xpY2VDb25zdHJ1Y3RvcignJywgbmFtZSwgMCwgc3RhcnQpOwotICAgIHMuZHVyYXRpb24gPSBkdXJhdGlvbjsKLSAgICBzLnN0YXJ0VGhyZWFkID0gc3RhcnRUaHJlYWQ7Ci0gICAgcy5lbmRUaHJlYWQgPSBlbmRUaHJlYWQ7Ci0gICAgcmV0dXJuIHM7Ci0gIH0KLQotICBmdW5jdGlvbiBuZXdBc3luY1NsaWNlRXgob3B0aW9ucykgewotICAgIHZhciBzZCA9IGdldFN0YXJ0QW5kRHVyYXRpb25Gcm9tRGljdChvcHRpb25zKTsKLQotICAgIHZhciBjYXQgPSBvcHRpb25zLmNhdCA/IG9wdGlvbnMuY2F0IDogJ2NhdCc7Ci0gICAgdmFyIHRpdGxlID0gb3B0aW9ucy50aXRsZSA/IG9wdGlvbnMudGl0bGUgOiAnYSc7Ci0KLSAgICB2YXIgY29sb3JJZDsKLSAgICBpZiAob3B0aW9ucy5jb2xvcklkKSB7Ci0gICAgICBpZiAob3B0aW9ucy5jb2xvcklkID09PSAncmFuZG9tJykgewotICAgICAgICBjb2xvcklkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICoKLSAgICAgICAgICAgICAgICAgICB0ci5iLnVpLnBhbGV0dGVQcm9wZXJ0aWVzLm51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHMpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgY29sb3JJZCA9IG9wdGlvbnMuY29sb3JJZDsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgY29sb3JJZCA9IDA7Ci0gICAgfQotCi0KLSAgICB2YXIgaXNUb3BMZXZlbDsKLSAgICBpZiAob3B0aW9ucy5pc1RvcExldmVsICE9PSB1bmRlZmluZWQpCi0gICAgICBpc1RvcExldmVsID0gb3B0aW9ucy5pc1RvcExldmVsOwotICAgIGVsc2UKLSAgICAgIGlzVG9wTGV2ZWwgPSBmYWxzZTsKLQotICAgIHZhciBhc3luY1NsaWNlQ29uc3RydWN0b3IgPQotICAgICAgICB0ci5tb2RlbC5Bc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKGNhdCwgdGl0bGUpOwotCi0gICAgdmFyIHNsaWNlID0gbmV3IGFzeW5jU2xpY2VDb25zdHJ1Y3RvcigKLSAgICAgICAgY2F0LAotICAgICAgICB0aXRsZSwKLSAgICAgICAgY29sb3JJZCwKLSAgICAgICAgc2Quc3RhcnQsCi0gICAgICAgIG9wdGlvbnMuYXJncyA/IG9wdGlvbnMuYXJncyA6IHt9LAotICAgICAgICBzZC5kdXJhdGlvbiwgaXNUb3BMZXZlbCk7Ci0KLSAgICBpZiAob3B0aW9ucy5pZCkKLSAgICAgIHNsaWNlLmlkID0gb3B0aW9ucy5pZDsKLSAgICBlbHNlCi0gICAgICBzbGljZS5pZCA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOwotCi0gICAgaWYgKG9wdGlvbnMuc3RhcnRTdGFja0ZyYW1lKQotICAgICAgc2xpY2Uuc3RhcnRTdGFja0ZyYW1lID0gb3B0aW9ucy5zdGFydFN0YWNrRnJhbWU7Ci0gICAgaWYgKG9wdGlvbnMuZW5kU3RhY2tGcmFtZSkKLSAgICAgIHNsaWNlLmVuZFN0YWNrRnJhbWUgPSBvcHRpb25zLmVuZFN0YWNrRnJhbWU7Ci0gICAgaWYgKG9wdGlvbnMuaW1wb3J0YW50KQotICAgICAgc2xpY2UuaW1wb3J0YW50ID0gb3B0aW9ucy5pbXBvcnRhbnQ7Ci0gICAgaWYgKG9wdGlvbnMuc3RhcnRUaHJlYWQpCi0gICAgICBzbGljZS5zdGFydFRocmVhZCA9IG9wdGlvbnMuc3RhcnRUaHJlYWQ7Ci0gICAgaWYgKG9wdGlvbnMuZW5kVGhyZWFkKQotICAgICAgc2xpY2UuZW5kVGhyZWFkID0gb3B0aW9ucy5lbmRUaHJlYWQ7Ci0gICAgcmV0dXJuIHNsaWNlOwotICB9Ci0KLSAgZnVuY3Rpb24gbmV3Q291bnRlcihwYXJlbnQpIHsKLSAgICByZXR1cm4gbmV3Q291bnRlck5hbWVkKHBhcmVudCwgJ2EnKTsKLSAgfQotCi0gIGZ1bmN0aW9uIG5ld0NvdW50ZXJOYW1lZChwYXJlbnQsIG5hbWUpIHsKLSAgICB2YXIgcyA9IG5ldyB0ci5tb2RlbC5Db3VudGVyKHBhcmVudCwgbmFtZSwgbnVsbCwgbmFtZSk7Ci0gICAgcmV0dXJuIHM7Ci0gIH0KLQotICBmdW5jdGlvbiBuZXdDb3VudGVyQ2F0ZWdvcnkocGFyZW50LCBjYXRlZ29yeSwgbmFtZSkgewotICAgIHZhciBzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXIocGFyZW50LCBuYW1lLCBjYXRlZ29yeSwgbmFtZSk7Ci0gICAgcmV0dXJuIHM7Ci0gIH0KLQotICBmdW5jdGlvbiBuZXdDb3VudGVyU2VyaWVzKCkgewotICAgIHZhciBzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ2EnLCAwKTsKLSAgICByZXR1cm4gczsKLSAgfQotCi0gIGZ1bmN0aW9uIG5ld0Zsb3dFdmVudEV4KG9wdGlvbnMpIHsKLSAgICBpZiAob3B0aW9ucy5zdGFydCA9PT0gdW5kZWZpbmVkKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb28gbGl0dGxlIGluZm8nKTsKLQotICAgIHZhciB0aXRsZSA9IG9wdGlvbnMudGl0bGUgPyBvcHRpb25zLnRpdGxlIDogJ2EnOwotCi0gICAgdmFyIGNvbG9ySWQgPSBvcHRpb25zLmNvbG9ySWQgPyBvcHRpb25zLmNvbG9ySWQgOiAwOwotCi0gICAgdmFyIHNkID0gZ2V0U3RhcnRBbmREdXJhdGlvbkZyb21EaWN0KG9wdGlvbnMpOwotCi0gICAgdmFyIGlkOwotICAgIGlmIChvcHRpb25zLmlkICE9PSB1bmRlZmluZWQpCi0gICAgICBpZCA9IG9wdGlvbnMuaWQ7Ci0gICAgZWxzZQotICAgICAgaWQgPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKLQotICAgIHZhciBldmVudCA9IG5ldyB0ci5tb2RlbC5GbG93RXZlbnQoCi0gICAgICAgIG9wdGlvbnMuY2F0ID8gb3B0aW9ucy5jYXQgOiAnY2F0JywKLSAgICAgICAgaWQsCi0gICAgICAgIHRpdGxlLAotICAgICAgICBjb2xvcklkLAotICAgICAgICBzZC5zdGFydCwKLSAgICAgICAgb3B0aW9ucy5hcmdzID8gb3B0aW9ucy5hcmdzIDoge30sCi0gICAgICAgIHNkLmR1cmF0aW9uKTsKLQotICAgIGlmIChvcHRpb25zLnN0YXJ0U3RhY2tGcmFtZSkKLSAgICAgIGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSA9IG9wdGlvbnMuc3RhcnRTdGFja0ZyYW1lOwotICAgIGlmIChvcHRpb25zLmVuZFN0YWNrRnJhbWUpCi0gICAgICBldmVudC5lbmRTdGFja0ZyYW1lID0gb3B0aW9ucy5lbmRTdGFja0ZyYW1lOwotICAgIGlmIChvcHRpb25zLmltcG9ydGFudCkKLSAgICAgIGV2ZW50LmltcG9ydGFudCA9IG9wdGlvbnMuaW1wb3J0YW50OwotICAgIGlmIChvcHRpb25zLnN0YXJ0U2xpY2UpIHsKLSAgICAgIGV2ZW50LnN0YXJ0U2xpY2UgPSBvcHRpb25zLnN0YXJ0U2xpY2U7Ci0gICAgICBldmVudC5zdGFydFNsaWNlLm91dEZsb3dFdmVudHMucHVzaChldmVudCk7Ci0gICAgfQotICAgIGlmIChvcHRpb25zLmVuZFNsaWNlKSB7Ci0gICAgICBldmVudC5lbmRTbGljZSA9IG9wdGlvbnMuZW5kU2xpY2U7Ci0gICAgICBldmVudC5lbmRTbGljZS5pbkZsb3dFdmVudHMucHVzaChldmVudCk7Ci0gICAgfQotICAgIHJldHVybiBldmVudDsKLSAgfQotCi0gIGZ1bmN0aW9uIG5ld1NsaWNlKHN0YXJ0LCBkdXJhdGlvbikgewotICAgIHJldHVybiBuZXdTbGljZU5hbWVkKCdhJywgc3RhcnQsIGR1cmF0aW9uKTsKLSAgfQotCi0gIGZ1bmN0aW9uIG5ld1NsaWNlTmFtZWQobmFtZSwgc3RhcnQsIGR1cmF0aW9uKSB7Ci0gICAgdmFyIHMgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIG5hbWUsIDAsIHN0YXJ0LCB7fSwgZHVyYXRpb24pOwotICAgIHJldHVybiBzOwotICB9Ci0KLSAgZnVuY3Rpb24gbmV3VGhyZWFkU2xpY2UodGhyZWFkLCBzdGF0ZSwgc3RhcnQsIGR1cmF0aW9uLCBvcHRfY3B1KSB7Ci0gICAgdmFyIHMgPSBuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAotICAgICAgICB0aHJlYWQsIHN0YXRlLCAnY2F0Jywgc3RhcnQsIHt9LCBkdXJhdGlvbik7Ci0gICAgaWYgKG9wdF9jcHUpCi0gICAgICBzLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nID0gb3B0X2NwdTsKLSAgICByZXR1cm4gczsKLSAgfQotCi0gIGZ1bmN0aW9uIG5ld1NhbXBsZU5hbWVkKHRocmVhZCwgc2FtcGxlTmFtZSwgY2F0ZWdvcnksIGZyYW1lTmFtZXMsIHN0YXJ0KSB7Ci0gICAgdmFyIG1vZGVsOwotICAgIGlmICh0aHJlYWQucGFyZW50KQotICAgICAgbW9kZWwgPSB0aHJlYWQucGFyZW50Lm1vZGVsOwotICAgIGVsc2UKLSAgICAgIG1vZGVsID0gdW5kZWZpbmVkOwotICAgIHZhciBzZiA9IG5ld1N0YWNrVHJhY2UobW9kZWwsIGNhdGVnb3J5LCBmcmFtZU5hbWVzKTsKLSAgICB2YXIgcyA9IG5ldyB0ci5tb2RlbC5TYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlTmFtZSwgc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2YsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7Ci0gICAgcmV0dXJuIHM7Ci0gIH0KLQotICBmdW5jdGlvbiBuZXdTbGljZUNhdGVnb3J5KGNhdGVnb3J5LCBuYW1lLCBzdGFydCwgZHVyYXRpb24pIHsKLSAgICB2YXIgcyA9IG5ldyB0ci5tb2RlbC5TbGljZSgKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIDAsIHN0YXJ0LCB7fSwgZHVyYXRpb24pOwotICAgIHJldHVybiBzOwotICB9Ci0KLSAgZnVuY3Rpb24gbmV3U2xpY2VFeChvcHRpb25zKSB7Ci0gICAgdmFyIHNkID0gZ2V0U3RhcnRBbmREdXJhdGlvbkZyb21EaWN0KG9wdGlvbnMpOwotCi0gICAgdmFyIHRpdGxlID0gb3B0aW9ucy50aXRsZSA/IG9wdGlvbnMudGl0bGUgOiAnYSc7Ci0KLSAgICB2YXIgY29sb3JJZCA9IG9wdGlvbnMuY29sb3JJZCA/IG9wdGlvbnMuY29sb3JJZCA6IDA7Ci0KLSAgICB2YXIgY3B1U0QgPSBtYXliZUdldENwdVN0YXJ0QW5kQ3B1RHVyYXRpb25Gcm9tRGljdChvcHRpb25zKTsKLQotICAgIHZhciB0eXBlOwotICAgIGlmIChvcHRpb25zLnR5cGUpCi0gICAgICB0eXBlID0gb3B0aW9ucy50eXBlOwotICAgIGVsc2UKLSAgICAgIHR5cGUgPSB0ci5tb2RlbC5TbGljZTsKLQotICAgIHZhciBzbGljZSA9IG5ldyB0eXBlKAotICAgICAgICBvcHRpb25zLmNhdCA/IG9wdGlvbnMuY2F0IDogJ2NhdCcsCi0gICAgICAgIHRpdGxlLAotICAgICAgICBjb2xvcklkLAotICAgICAgICBzZC5zdGFydCwKLSAgICAgICAgb3B0aW9ucy5hcmdzID8gb3B0aW9ucy5hcmdzIDoge30sCi0gICAgICAgIHNkLmR1cmF0aW9uLAotICAgICAgICBjcHVTRC5zdGFydCwgY3B1U0QuZHVyYXRpb24pOwotCi0KLSAgICByZXR1cm4gc2xpY2U7Ci0gIH0KLQotICBmdW5jdGlvbiBuZXdTdGFja1RyYWNlKG1vZGVsLCBjYXRlZ29yeSwgdGl0bGVzKSB7Ci0gICAgdmFyIGZyYW1lID0gdW5kZWZpbmVkOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBmcmFtZSA9IG5ldyB0ci5tb2RlbC5TdGFja0ZyYW1lKGZyYW1lLCB0ci5iLkdVSUQuYWxsb2NhdGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSwgdGl0bGVzW2ldLCA3KTsKLSAgICAgIGlmIChtb2RlbCkKLSAgICAgICAgbW9kZWwuYWRkU3RhY2tGcmFtZShmcmFtZSk7Ci0gICAgfQotICAgIHJldHVybiBmcmFtZTsKLSAgfQotCi0gIGZ1bmN0aW9uIGZpbmRTbGljZU5hbWVkKHNsaWNlcywgbmFtZSkgewotICAgIGlmIChzbGljZXMgaW5zdGFuY2VvZiB0ci5tb2RlbC5TbGljZUdyb3VwKQotICAgICAgc2xpY2VzID0gc2xpY2VzLnNsaWNlczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykKLSAgICAgIGlmIChzbGljZXNbaV0udGl0bGUgPT0gbmFtZSkKLSAgICAgICAgcmV0dXJuIHNsaWNlc1tpXTsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gIH0KLQotICBmdW5jdGlvbiBuZXdNb2RlbChjdXN0b21pemVNb2RlbENhbGxiYWNrKSB7Ci0gICAgdmFyIGlvID0gbmV3IHRyLkltcG9ydE9wdGlvbnMoKTsKLSAgICBpby5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gY3VzdG9taXplTW9kZWxDYWxsYmFjazsKLSAgICBpby5zaGlmdFdvcmxkVG9aZXJvID0gZmFsc2U7Ci0gICAgaW8ucHJ1bmVFbXB0eUNvbnRhaW5lcnMgPSBmYWxzZTsKLSAgICBpby5hdWRpdG9yQ29uc3RydWN0b3JzID0gW107Ci0gICAgcmV0dXJuIG5ldyB0ci5Nb2RlbChbXSwgaW8pOwotICB9Ci0KLSAgZnVuY3Rpb24gbmV3TW9kZWxXaXRoQXVkaXRvcihjdXN0b21pemVNb2RlbENhbGxiYWNrLCBhdWRpdG9yKSB7Ci0gICAgdmFyIGlvID0gbmV3IHRyLkltcG9ydE9wdGlvbnMoKTsKLSAgICBpby5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gY3VzdG9taXplTW9kZWxDYWxsYmFjazsKLSAgICBpby5zaGlmdFdvcmxkVG9aZXJvID0gZmFsc2U7Ci0gICAgaW8ucHJ1bmVFbXB0eUNvbnRhaW5lcnMgPSBmYWxzZTsKLSAgICBpby5hdWRpdG9yQ29uc3RydWN0b3JzID0gW2F1ZGl0b3JdOwotICAgIHJldHVybiBuZXcgdHIuTW9kZWwoW10sIGlvKTsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgZ2V0U3RhcnRBbmREdXJhdGlvbkZyb21EaWN0OiBnZXRTdGFydEFuZER1cmF0aW9uRnJvbURpY3QsCi0gICAgbmV3QXN5bmNTbGljZTogbmV3QXN5bmNTbGljZSwKLSAgICBuZXdBc3luY1NsaWNlTmFtZWQ6IG5ld0FzeW5jU2xpY2VOYW1lZCwKLSAgICBuZXdBc3luY1NsaWNlRXg6IG5ld0FzeW5jU2xpY2VFeCwKLSAgICBuZXdDb3VudGVyOiBuZXdDb3VudGVyLAotICAgIG5ld0NvdW50ZXJOYW1lZDogbmV3Q291bnRlck5hbWVkLAotICAgIG5ld0NvdW50ZXJDYXRlZ29yeTogbmV3Q291bnRlckNhdGVnb3J5LAotICAgIG5ld0NvdW50ZXJTZXJpZXM6IG5ld0NvdW50ZXJTZXJpZXMsCi0gICAgbmV3Rmxvd0V2ZW50RXg6IG5ld0Zsb3dFdmVudEV4LAotICAgIG5ld1NsaWNlOiBuZXdTbGljZSwKLSAgICBuZXdUaHJlYWRTbGljZTogbmV3VGhyZWFkU2xpY2UsCi0gICAgbmV3U2xpY2VOYW1lZDogbmV3U2xpY2VOYW1lZCwKLSAgICBuZXdTbGljZUV4OiBuZXdTbGljZUV4LAotICAgIG5ld1NhbXBsZU5hbWVkOiBuZXdTYW1wbGVOYW1lZCwKLSAgICBuZXdTbGljZUNhdGVnb3J5OiBuZXdTbGljZUNhdGVnb3J5LAotICAgIG5ld1N0YWNrVHJhY2U6IG5ld1N0YWNrVHJhY2UsCi0gICAgbmV3TW9kZWw6IG5ld01vZGVsLAotICAgIG5ld01vZGVsV2l0aEF1ZGl0b3I6IG5ld01vZGVsV2l0aEF1ZGl0b3IsCi0gICAgZmluZFNsaWNlTmFtZWQ6IGZpbmRTbGljZU5hbWVkCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZhMTNlOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0ob3B0X3RoYXQpIHsKLSAgICBpZiAob3B0X3RoYXQpIHsKLSAgICAgIHRoaXMuc2V0KG9wdF90aGF0KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgdGhpcy5zY2FsZVggPSAxOwotICAgIHRoaXMucGFuWCA9IDA7Ci0gICAgdGhpcy5wYW5ZID0gMDsKLSAgfQotCi0gIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybS5wcm90b3R5cGUgPSB7Ci0gICAgc2V0OiBmdW5jdGlvbih0aGF0KSB7Ci0gICAgICB0aGlzLnNjYWxlWCA9IHRoYXQuc2NhbGVYOwotICAgICAgdGhpcy5wYW5YID0gdGhhdC5wYW5YOwotICAgICAgdGhpcy5wYW5ZID0gdGhhdC5wYW5ZOwotICAgIH0sCi0KLSAgICBjbG9uZTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSh0aGlzKTsKLSAgICB9LAotCi0gICAgZXF1YWxzOiBmdW5jdGlvbih0aGF0KSB7Ci0gICAgICB2YXIgZXEgPSB0cnVlOwotICAgICAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCB8fCB0aGF0ID09PSBudWxsKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBlcSAmPSB0aGlzLnBhblggPT09IHRoYXQucGFuWDsKLSAgICAgIGVxICY9IHRoaXMucGFuWSA9PT0gdGhhdC5wYW5ZOwotICAgICAgZXEgJj0gdGhpcy5zY2FsZVggPT09IHRoYXQuc2NhbGVYOwotICAgICAgcmV0dXJuICEhZXE7Ci0gICAgfSwKLQotICAgIGFsbW9zdEVxdWFsczogZnVuY3Rpb24odGhhdCkgewotICAgICAgdmFyIGVxID0gdHJ1ZTsKLSAgICAgIGlmICh0aGF0ID09PSB1bmRlZmluZWQgfHwgdGhhdCA9PT0gbnVsbCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgZXEgJj0gTWF0aC5hYnModGhpcy5wYW5YIC0gdGhhdC5wYW5YKSA8IDAuMDAxOwotICAgICAgZXEgJj0gTWF0aC5hYnModGhpcy5wYW5ZIC0gdGhhdC5wYW5ZKSA8IDAuMDAxOwotICAgICAgZXEgJj0gTWF0aC5hYnModGhpcy5zY2FsZVggLSB0aGF0LnNjYWxlWCkgPCAwLjAwMTsKLSAgICAgIHJldHVybiAhIWVxOwotICAgIH0sCi0KLSAgICBpbmNyZW1lbnRQYW5YSW5WaWV3VW5pdHM6IGZ1bmN0aW9uKHhEZWx0YVZpZXcpIHsKLSAgICAgIHRoaXMucGFuWCArPSB0aGlzLnhWaWV3VmVjdG9yVG9Xb3JsZCh4RGVsdGFWaWV3KTsKLSAgICB9LAotCi0gICAgeFBhbldvcmxkUG9zVG9WaWV3UG9zOiBmdW5jdGlvbih3b3JsZFgsIHZpZXdYLCB2aWV3V2lkdGgpIHsKLSAgICAgIGlmICh0eXBlb2Ygdmlld1ggPT0gJ3N0cmluZycpIHsKLSAgICAgICAgaWYgKHZpZXdYID09PSAnbGVmdCcpIHsKLSAgICAgICAgICB2aWV3WCA9IDA7Ci0gICAgICAgIH0gZWxzZSBpZiAodmlld1ggPT09ICdjZW50ZXInKSB7Ci0gICAgICAgICAgdmlld1ggPSB2aWV3V2lkdGggLyAyOwotICAgICAgICB9IGVsc2UgaWYgKHZpZXdYID09PSAncmlnaHQnKSB7Ci0gICAgICAgICAgdmlld1ggPSB2aWV3V2lkdGggLSAxOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmlld1ggbXVzdCBiZSBsZWZ0fGNlbnRlcnxyaWdodCBvciBudW1iZXIuJyk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHRoaXMucGFuWCA9ICh2aWV3WCAvIHRoaXMuc2NhbGVYKSAtIHdvcmxkWDsKLSAgICB9LAotCi0gICAgeFBhbldvcmxkQm91bmRzSW50b1ZpZXc6IGZ1bmN0aW9uKHdvcmxkTWluLCB3b3JsZE1heCwgdmlld1dpZHRoKSB7Ci0gICAgICBpZiAodGhpcy54V29ybGRUb1ZpZXcod29ybGRNaW4pIDwgMCkKLSAgICAgICAgdGhpcy54UGFuV29ybGRQb3NUb1ZpZXdQb3Mod29ybGRNaW4sICdsZWZ0Jywgdmlld1dpZHRoKTsKLSAgICAgIGVsc2UgaWYgKHRoaXMueFdvcmxkVG9WaWV3KHdvcmxkTWF4KSA+IHZpZXdXaWR0aCkKLSAgICAgICAgdGhpcy54UGFuV29ybGRQb3NUb1ZpZXdQb3Mod29ybGRNYXgsICdyaWdodCcsIHZpZXdXaWR0aCk7Ci0gICAgfSwKLQotICAgIHhTZXRXb3JsZEJvdW5kczogZnVuY3Rpb24od29ybGRNaW4sIHdvcmxkTWF4LCB2aWV3V2lkdGgpIHsKLSAgICAgIHZhciB3b3JsZFdpZHRoID0gd29ybGRNYXggLSB3b3JsZE1pbjsKLSAgICAgIHZhciBzY2FsZVggPSB2aWV3V2lkdGggLyB3b3JsZFdpZHRoOwotICAgICAgdmFyIHBhblggPSAtd29ybGRNaW47Ci0gICAgICB0aGlzLnNldFBhbkFuZFNjYWxlKHBhblgsIHNjYWxlWCk7Ci0gICAgfSwKLQotICAgIHNldFBhbkFuZFNjYWxlOiBmdW5jdGlvbihwLCBzKSB7Ci0gICAgICB0aGlzLnNjYWxlWCA9IHM7Ci0gICAgICB0aGlzLnBhblggPSBwOwotICAgIH0sCi0KLSAgICB4V29ybGRUb1ZpZXc6IGZ1bmN0aW9uKHgpIHsKLSAgICAgIHJldHVybiAoeCArIHRoaXMucGFuWCkgKiB0aGlzLnNjYWxlWDsKLSAgICB9LAotCi0gICAgeFdvcmxkVmVjdG9yVG9WaWV3OiBmdW5jdGlvbih4KSB7Ci0gICAgICByZXR1cm4geCAqIHRoaXMuc2NhbGVYOwotICAgIH0sCi0KLSAgICB4Vmlld1RvV29ybGQ6IGZ1bmN0aW9uKHgpIHsKLSAgICAgIHJldHVybiAoeCAvIHRoaXMuc2NhbGVYKSAtIHRoaXMucGFuWDsKLSAgICB9LAotCi0gICAgeFZpZXdWZWN0b3JUb1dvcmxkOiBmdW5jdGlvbih4KSB7Ci0gICAgICByZXR1cm4geCAvIHRoaXMuc2NhbGVYOwotICAgIH0sCi0KLSAgICBhcHBseVRyYW5zZm9ybVRvQ2FudmFzOiBmdW5jdGlvbihjdHgpIHsKLSAgICAgIGN0eC50cmFuc2Zvcm0odGhpcy5zY2FsZVgsIDAsIDAsIDEsIHRoaXMucGFuWCAqIHRoaXMuc2NhbGVYLCAwKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm06IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV9hbmltYXRpb25zLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fYW5pbWF0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTNkMTQxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV9hbmltYXRpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvYW5pbWF0aW9uLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgewotICB2YXIga0RlZmF1bHRQYW5BbmltYXRvaW5EdXJhdGlvbk1zID0gMTAwLjA7Ci0KLSAgLyoqCi0gICAqIFBhbnMgYSBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0gYnkgYSBnaXZlbiBhbW91bnQuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7dHIuYi51aS5BbmltYXRpb259Ci0gICAqIEBwYXJhbSB7TnVtYmVyfSBkZWx0YVggVGhlIHRvdGFsIGFtb3VudCBvZiBjaGFuZ2UgdG8gdGhlIHRyYW5zZm9ybSdzIHBhblguCi0gICAqIEBwYXJhbSB7TnVtYmVyfSBkZWx0YVkgVGhlIHRvdGFsIGFtb3VudCBvZiBjaGFuZ2UgdG8gdGhlIHRyYW5zZm9ybSdzIHBhblkuCi0gICAqIEBwYXJhbSB7TnVtYmVyPX0gb3B0X2R1cmF0aW9uTXMgSG93IGxvbmcgdGhlIHBhbiBhbmltYXRpb24gc2hvdWxkIHJ1bi4KLSAgICogRGVmYXVsdHMgdG8ga0RlZmF1bHRQYW5BbmltYXRvaW5EdXJhdGlvbk1zLgotICAgKi8KLSAgZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKAotICAgICAgZGVsdGFYLCBkZWx0YVksIG9wdF9kdXJhdGlvbk1zKSB7Ci0gICAgdGhpcy5kZWx0YVggPSBkZWx0YVg7Ci0gICAgdGhpcy5kZWx0YVkgPSBkZWx0YVk7Ci0gICAgaWYgKG9wdF9kdXJhdGlvbk1zID09PSB1bmRlZmluZWQpCi0gICAgICB0aGlzLmR1cmF0aW9uTXMgPSBrRGVmYXVsdFBhbkFuaW1hdG9pbkR1cmF0aW9uTXM7Ci0gICAgZWxzZQotICAgICAgdGhpcy5kdXJhdGlvbk1zID0gb3B0X2R1cmF0aW9uTXM7Ci0KLSAgICB0aGlzLnN0YXJ0UGFuWCA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnN0YXJ0UGFuWSA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnN0YXJ0VGltZU1zID0gdW5kZWZpbmVkOwotICB9Ci0KLSAgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmIudWkuQW5pbWF0aW9uLnByb3RvdHlwZSwKLQotICAgIGdldCBhZmZlY3RzUGFuWSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmRlbHRhWSAhPT0gMDsKLSAgICB9LAotCi0gICAgY2FuVGFrZU92ZXJGb3I6IGZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uKSB7Ci0gICAgICByZXR1cm4gZXhpc3RpbmdBbmltYXRpb24gaW5zdGFuY2VvZiBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb247Ci0gICAgfSwKLQotICAgIHRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZywgdGltZXN0YW1wLCB0YXJnZXQpIHsKLSAgICAgIHZhciByZW1haW5pbmdEZWx0YVhPbkV4aXN0aW5nID0gZXhpc3RpbmcuZ29hbFBhblggLSB0YXJnZXQucGFuWDsKLSAgICAgIHZhciByZW1haW5pbmdEZWx0YVlPbkV4aXN0aW5nID0gZXhpc3RpbmcuZ29hbFBhblkgLSB0YXJnZXQucGFuWTsKLSAgICAgIHZhciByZW1haW5pbmdUaW1lT25FeGlzdGluZyA9IHRpbWVzdGFtcCAtICgKLSAgICAgICAgICBleGlzdGluZy5zdGFydFRpbWVNcyArIGV4aXN0aW5nLmR1cmF0aW9uTXMpOwotICAgICAgcmVtYWluaW5nVGltZU9uRXhpc3RpbmcgPSBNYXRoLm1heChyZW1haW5pbmdUaW1lT25FeGlzdGluZywgMCk7Ci0KLSAgICAgIHRoaXMuZGVsdGFYICs9IHJlbWFpbmluZ0RlbHRhWE9uRXhpc3Rpbmc7Ci0gICAgICB0aGlzLmRlbHRhWSArPSByZW1haW5pbmdEZWx0YVlPbkV4aXN0aW5nOwotICAgICAgdGhpcy5kdXJhdGlvbk1zICs9IHJlbWFpbmluZ1RpbWVPbkV4aXN0aW5nOwotICAgIH0sCi0KLSAgICBzdGFydDogZnVuY3Rpb24odGltZXN0YW1wLCB0YXJnZXQpIHsKLSAgICAgIHRoaXMuc3RhcnRUaW1lTXMgPSB0aW1lc3RhbXA7Ci0gICAgICB0aGlzLnN0YXJ0UGFuWCA9IHRhcmdldC5wYW5YOwotICAgICAgdGhpcy5zdGFydFBhblkgPSB0YXJnZXQucGFuWTsKLSAgICB9LAotCi0gICAgdGljazogZnVuY3Rpb24odGltZXN0YW1wLCB0YXJnZXQpIHsKLSAgICAgIHZhciBwZXJjZW50RG9uZSA9ICh0aW1lc3RhbXAgLSB0aGlzLnN0YXJ0VGltZU1zKSAvIHRoaXMuZHVyYXRpb25NczsKLSAgICAgIHBlcmNlbnREb25lID0gdHIuYi5jbGFtcChwZXJjZW50RG9uZSwgMCwgMSk7Ci0KLSAgICAgIHRhcmdldC5wYW5YID0gdHIuYi5sZXJwKHBlcmNlbnREb25lLCB0aGlzLnN0YXJ0UGFuWCwgdGhpcy5nb2FsUGFuWCk7Ci0gICAgICBpZiAodGhpcy5hZmZlY3RzUGFuWSkKLSAgICAgICAgdGFyZ2V0LnBhblkgPSB0ci5iLmxlcnAocGVyY2VudERvbmUsIHRoaXMuc3RhcnRQYW5ZLCB0aGlzLmdvYWxQYW5ZKTsKLSAgICAgIHJldHVybiB0aW1lc3RhbXAgPj0gdGhpcy5zdGFydFRpbWVNcyArIHRoaXMuZHVyYXRpb25NczsKLSAgICB9LAotCi0gICAgZ2V0IGdvYWxQYW5YKCkgewotICAgICAgcmV0dXJuIHRoaXMuc3RhcnRQYW5YICsgdGhpcy5kZWx0YVg7Ci0gICAgfSwKLQotICAgIGdldCBnb2FsUGFuWSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnN0YXJ0UGFuWSArIHRoaXMuZGVsdGFZOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogWm9vbXMgaW4vb3V0IG9uIGEgc3BlY2lmaWVkIGxvY2F0aW9uIGluIHRoZSB3b3JsZC4KLSAgICoKLSAgICogWm9vbWluZyBpbiBhbmQgb3V0IGlzIGFsbCBhYm91dCBrZWVwaW5nIHRoZSBhcmVhIHVuZGVyIHRoZSBtb3VzZSBjdXJzb3IsCi0gICAqIGhlcmUgY2FsbGVkIHRoZSAiZm9jYWwgcG9pbnQiIGluIHRoZSBzYW1lIHBsYWNlIHVuZGVyIHRoZSB6b29tLiBJZiBvbmUKLSAgICogc2ltcGx5IGNoYW5nZXMgdGhlIHNjYWxlLCB0aGUgYXJlYSB1bmRlciB0aGUgbW91c2UgY3Vyc29yIHdpbGwgY2hhbmdlLiBUbwotICAgKiBrZWVwIHRoZSBmb2NhbCBwb2ludCBmcm9tIG1vdmluZyBkdXJpbmcgdGhlIHpvb20sIHRoZSBwYW4gbmVlZHMgdG8gY2hhbmdlCi0gICAqIGluIG9yZGVyIHRvIGNvbXBlbnNhdGUuIFRodXMsIGEgWm9vbVRvIGFuaW1hdGlvbiBpcyBnaXZlbiBib3RoIGEgZm9jYWwKLSAgICogcG9pbnQgaW4gYWRkaXRpb24gdG8gdGhlIGFtb3VudCBieSB3aGljaCB0byB6b29tLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge3RyLmIudWkuQW5pbWF0aW9ufQotICAgKiBAcGFyYW0ge051bWJlcn0gZ29hbEZvY2FsUG9pbnRYV29ybGQgVGhlIFggY29vcmRpbmF0ZSBpbiB0aGUgd29ybGQgd2hpY2ggaXMKLSAgICogb2YgaW50ZXJlc3QuCi0gICAqIEBwYXJhbSB7TnVtYmVyfSBnb2FsRm9jYWxQb2ludFhWaWV3IFdoZXJlIG9uIHRoZSBzY3JlZW4gdGhlCi0gICAqIGdvYWxGb2NhbFBvaW50WFdvcmxkIHNob3VsZCBzdGF5IGNlbnRlcmVkIGR1cmluZyB0aGUgem9vbS4KLSAgICogQHBhcmFtIHtOdW1iZXJ9IGdvYWxGb2NhbFBvaW50WSBXaGVyZSB0aGUgcGFuWSBzaG91bGQgYmUgd2hlbiB0aGUgem9vbQotICAgKiBjb21wbGV0ZXMuCi0gICAqIEBwYXJhbSB7TnVtYmVyfSB6b29tSW5SYXRpb1ggVGhlIHJhdGlvIG9mIHRoZSBjdXJyZW50IHNjYWxlWCB0byB0aGUgZ29hbAotICAgKiBzY2FsZVguCi0gICAqLwotICBmdW5jdGlvbiBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24oCi0gICAgICBnb2FsRm9jYWxQb2ludFhXb3JsZCwKLSAgICAgIGdvYWxGb2NhbFBvaW50WFZpZXcsCi0gICAgICBnb2FsRm9jYWxQb2ludFksCi0gICAgICB6b29tSW5SYXRpb1gsCi0gICAgICBvcHRfZHVyYXRpb25NcykgewotICAgIHRoaXMuZ29hbEZvY2FsUG9pbnRYV29ybGQgPSBnb2FsRm9jYWxQb2ludFhXb3JsZDsKLSAgICB0aGlzLmdvYWxGb2NhbFBvaW50WFZpZXcgPSBnb2FsRm9jYWxQb2ludFhWaWV3OwotICAgIHRoaXMuZ29hbEZvY2FsUG9pbnRZID0gZ29hbEZvY2FsUG9pbnRZOwotICAgIHRoaXMuem9vbUluUmF0aW9YID0gem9vbUluUmF0aW9YOwotICAgIGlmIChvcHRfZHVyYXRpb25NcyA9PT0gdW5kZWZpbmVkKQotICAgICAgdGhpcy5kdXJhdGlvbk1zID0ga0RlZmF1bHRQYW5BbmltYXRvaW5EdXJhdGlvbk1zOwotICAgIGVsc2UKLSAgICAgIHRoaXMuZHVyYXRpb25NcyA9IG9wdF9kdXJhdGlvbk1zOwotCi0gICAgdGhpcy5zdGFydFRpbWVNcyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnN0YXJ0U2NhbGVYID0gdW5kZWZpbmVkOwotICAgIHRoaXMuZ29hbFNjYWxlWCA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnN0YXJ0UGFuWSA9IHVuZGVmaW5lZDsKLSAgfQotCi0gIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5iLnVpLkFuaW1hdGlvbi5wcm90b3R5cGUsCi0KLSAgICBnZXQgYWZmZWN0c1BhblkoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zdGFydFBhblkgIT0gdGhpcy5nb2FsRm9jYWxQb2ludFk7Ci0gICAgfSwKLQotICAgIGNhblRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbikgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICB0YWtlT3ZlckZvcjogZnVuY3Rpb24oZXhpc3RpbmdBbmltYXRpb24sIHRpbWVzdGFtcCwgdGFyZ2V0KSB7Ci0gICAgICB0aGlzLmdvYWxTY2FsZVggPSB0YXJnZXQuc2NhbGVYICogdGhpcy56b29tSW5SYXRpb1g7Ci0gICAgfSwKLQotICAgIHN0YXJ0OiBmdW5jdGlvbih0aW1lc3RhbXAsIHRhcmdldCkgewotICAgICAgdGhpcy5zdGFydFRpbWVNcyA9IHRpbWVzdGFtcDsKLSAgICAgIHRoaXMuc3RhcnRTY2FsZVggPSB0YXJnZXQuc2NhbGVYOwotICAgICAgdGhpcy5nb2FsU2NhbGVYID0gdGhpcy56b29tSW5SYXRpb1ggKiB0YXJnZXQuc2NhbGVYOwotICAgICAgdGhpcy5zdGFydFBhblkgPSB0YXJnZXQucGFuWTsKLSAgICB9LAotCi0gICAgdGljazogZnVuY3Rpb24odGltZXN0YW1wLCB0YXJnZXQpIHsKLSAgICAgIHZhciBwZXJjZW50RG9uZSA9ICh0aW1lc3RhbXAgLSB0aGlzLnN0YXJ0VGltZU1zKSAvIHRoaXMuZHVyYXRpb25NczsKLSAgICAgIHBlcmNlbnREb25lID0gdHIuYi5jbGFtcChwZXJjZW50RG9uZSwgMCwgMSk7Ci0KLSAgICAgIHRhcmdldC5zY2FsZVggPSB0ci5iLmxlcnAocGVyY2VudERvbmUsIHRoaXMuc3RhcnRTY2FsZVgsIHRoaXMuZ29hbFNjYWxlWCk7Ci0gICAgICBpZiAodGhpcy5hZmZlY3RzUGFuWSkgewotICAgICAgICB0YXJnZXQucGFuWSA9IHRyLmIubGVycCgKLSAgICAgICAgICAgIHBlcmNlbnREb25lLCB0aGlzLnN0YXJ0UGFuWSwgdGhpcy5nb2FsRm9jYWxQb2ludFkpOwotICAgICAgfQotCi0gICAgICB0YXJnZXQueFBhbldvcmxkUG9zVG9WaWV3UG9zKAotICAgICAgICAgIHRoaXMuZ29hbEZvY2FsUG9pbnRYV29ybGQsIHRoaXMuZ29hbEZvY2FsUG9pbnRYVmlldyk7Ci0gICAgICByZXR1cm4gdGltZXN0YW1wID49IHRoaXMuc3RhcnRUaW1lTXMgKyB0aGlzLmR1cmF0aW9uTXM7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uOgotICAgICAgICBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb24sCi0gICAgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uOgotICAgICAgICBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24KLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fYW5pbWF0aW9uc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fYW5pbWF0aW9uc190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwYjQ1M2QuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtX2FuaW1hdGlvbnNfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV9hbmltYXRpb25zLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2FuaW1hdGlvbl9jb250cm9sbGVyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgdmFyIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSA9IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtOwotICB2YXIgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uID0KLSAgICAgIHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uOwotICB2YXIgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uID0KLSAgICAgIHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uOwotCi0gIHRlc3QoJ3BhbkJhc2ljJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhcmdldCA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICB0YXJnZXQuY2xvbmVBbmltYXRpb25TdGF0ZSA9IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKTsKLSAgICB9OwotCi0gICAgdmFyIGEgPSBuZXcgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKDEwLCAyMCwgMTAwKTsKLQotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmIudWkuQW5pbWF0aW9uQ29udHJvbGxlcigpOwotICAgIGNvbnRyb2xsZXIudGFyZ2V0ID0gdGFyZ2V0OwotICAgIGNvbnRyb2xsZXIucXVldWVBbmltYXRpb24oYSwgMCk7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKGEuYWZmZWN0c1BhblkpOwotICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1big1MCk7Ci0gICAgYXNzZXJ0LmlzQWJvdmUodGFyZ2V0LnBhblgsIDApOwotICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigxMDApOwotICAgIGFzc2VydC5pc0ZhbHNlKGNvbnRyb2xsZXIuaGFzQWN0aXZlQW5pbWF0aW9uKTsKLSAgICBhc3NlcnQuZXF1YWwodGFyZ2V0LnBhblgsIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwodGFyZ2V0LnBhblksIDIwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnem9vbUJhc2ljJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhcmdldCA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICB0YXJnZXQucGFuWSA9IDMwOwotICAgIHRhcmdldC5jbG9uZUFuaW1hdGlvblN0YXRlID0gZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jbG9uZSgpOwotICAgIH07Ci0KLSAgICB2YXIgYSA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24oMTAsIDIwLCAzMCwgNSwgMTAwKTsKLQotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmIudWkuQW5pbWF0aW9uQ29udHJvbGxlcigpOwotICAgIGNvbnRyb2xsZXIudGFyZ2V0ID0gdGFyZ2V0OwotICAgIGNvbnRyb2xsZXIucXVldWVBbmltYXRpb24oYSwgMCk7Ci0KLSAgICBhc3NlcnQuaXNGYWxzZShhLmFmZmVjdHNQYW5ZKTsKLSAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oMTAwKTsKLSAgICBhc3NlcnQuZXF1YWwodGFyZ2V0LnNjYWxlWCwgNSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3BhblRha2VvdmVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRhcmdldCA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICB0YXJnZXQuY2xvbmVBbmltYXRpb25TdGF0ZSA9IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKTsKLSAgICB9OwotCi0gICAgdmFyIGIgPSBuZXcgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKDEwLCAwLCAxMDApOwotICAgIHZhciBhID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbigxMCwgMCwgMTAwKTsKLQotICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmIudWkuQW5pbWF0aW9uQ29udHJvbGxlcigpOwotICAgIGNvbnRyb2xsZXIudGFyZ2V0ID0gdGFyZ2V0OwotICAgIGNvbnRyb2xsZXIucXVldWVBbmltYXRpb24oYSwgMCk7Ci0KLSAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oNTApOwotICAgIGNvbnRyb2xsZXIucXVldWVBbmltYXRpb24oYiwgNTApOwotCi0gICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDEwMCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjb250cm9sbGVyLmhhc0FjdGl2ZUFuaW1hdGlvbik7Ci0KLSAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oMTUwKTsKLSAgICBhc3NlcnQuaXNGYWxzZShjb250cm9sbGVyLmhhc0FjdGl2ZUFuaW1hdGlvbik7Ci0gICAgYXNzZXJ0LmVxdWFsKHRhcmdldC5wYW5YLCAyMCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTk5Y2Q3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSA9IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtOwotCi0gIHRlc3QoJ2Jhc2ljcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIGEucGFuWCA9IDA7Ci0gICAgYS5wYW5ZID0gMDsKLSAgICBhLnNjYWxlWCA9IDE7Ci0KLSAgICB2YXIgYiA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBiLnBhblggPSAxMDsKLSAgICBiLnBhblkgPSAwOwotICAgIGIuc2NhbGVYID0gMTsKLQotICAgIGFzc2VydC5pc0ZhbHNlKGEuZXF1YWxzKGIpKTsKLSAgICBhc3NlcnQuaXNGYWxzZShhLmFsbW9zdEVxdWFscyhiKSk7Ci0KLSAgICB2YXIgYyA9IGIuY2xvbmUoKTsKLSAgICBhc3NlcnQuaXNUcnVlKGIuZXF1YWxzKGMpKTsKLSAgICBhc3NlcnQuaXNUcnVlKGIuYWxtb3N0RXF1YWxzKGMpKTsKLQotICAgIGMuc2V0KGEpOwotICAgIGFzc2VydC5pc1RydWUoYS5lcXVhbHMoYykpOwotICAgIGFzc2VydC5pc1RydWUoYS5hbG1vc3RFcXVhbHMoYykpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV9pbnRlcmVzdF9yYW5nZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX2ludGVyZXN0X3JhbmdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MzIwMzcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX2ludGVyZXN0X3JhbmdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gU25hcEluZGljYXRvcih5LCBoZWlnaHQpIHsKLSAgICB0aGlzLnkgPSB5OwotICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0OwotICB9Ci0KLSAgLyoqCi0gICAqIFRoZSBpbnRlcmVzdGluZyBwYXJ0IG9mIHRoZSB3b3JsZC4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBUaW1lbGluZUludGVyZXN0UmFuZ2UodnApIHsKLSAgICB0aGlzLnZpZXdwb3J0XyA9IHZwOwotCi0gICAgdGhpcy5yYW5nZV8gPSBuZXcgdHIuYi5SYW5nZSgpOwotCi0gICAgdGhpcy5sZWZ0U2VsZWN0ZWRfID0gZmFsc2U7Ci0gICAgdGhpcy5yaWdodFNlbGVjdGVkXyA9IGZhbHNlOwotCi0gICAgdGhpcy5sZWZ0U25hcEluZGljYXRvcl8gPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5yaWdodFNuYXBJbmRpY2F0b3JfID0gdW5kZWZpbmVkOwotICB9Ci0KLSAgVGltZWxpbmVJbnRlcmVzdFJhbmdlLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgaXNFbXB0eSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnJhbmdlXy5pc0VtcHR5OwotICAgIH0sCi0KLSAgICByZXNldDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnJhbmdlXy5yZXNldCgpOwotICAgICAgdGhpcy5sZWZ0U2VsZWN0ZWRfID0gZmFsc2U7Ci0gICAgICB0aGlzLnJpZ2h0U2VsZWN0ZWRfID0gZmFsc2U7Ci0gICAgICB0aGlzLmxlZnRTbmFwSW5kaWNhdG9yXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMucmlnaHRTbmFwSW5kaWNhdG9yXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMudmlld3BvcnRfLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKLSAgICB9LAotCi0gICAgZ2V0IG1pbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnJhbmdlXy5taW47Ci0gICAgfSwKLQotICAgIHNldCBtaW4obWluKSB7Ci0gICAgICB0aGlzLnJhbmdlXy5taW4gPSBtaW47Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIGdldCBtYXgoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yYW5nZV8ubWF4OwotICAgIH0sCi0KLSAgICBzZXQgbWF4KG1heCkgewotICAgICAgdGhpcy5yYW5nZV8ubWF4ID0gbWF4OwotICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwotICAgIH0sCi0KLSAgICBzZXQ6IGZ1bmN0aW9uKHJhbmdlKSB7Ci0gICAgICB0aGlzLnJhbmdlXy5yZXNldCgpOwotICAgICAgdGhpcy5yYW5nZV8uYWRkUmFuZ2UocmFuZ2UpOwotICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwotICAgIH0sCi0KLSAgICBzZXRNaW5BbmRNYXg6IGZ1bmN0aW9uKG1pbiwgbWF4KSB7Ci0gICAgICB0aGlzLnJhbmdlXy5taW4gPSBtaW47Ci0gICAgICB0aGlzLnJhbmdlXy5tYXggPSBtYXg7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIGdldCByYW5nZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnJhbmdlXy5yYW5nZTsKLSAgICB9LAotCi0gICAgYXNSYW5nZU9iamVjdDogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgICAgcmFuZ2UuYWRkUmFuZ2UodGhpcy5yYW5nZV8pOwotICAgICAgcmV0dXJuIHJhbmdlOwotICAgIH0sCi0KLSAgICBnZXQgbGVmdFNlbGVjdGVkKCkgewotICAgICAgcmV0dXJuIHRoaXMubGVmdFNlbGVjdGVkXzsKLSAgICB9LAotCi0gICAgc2V0IGxlZnRTZWxlY3RlZChsZWZ0U2VsZWN0ZWQpIHsKLSAgICAgIGlmICh0aGlzLmxlZnRTZWxlY3RlZF8gPT0gbGVmdFNlbGVjdGVkKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLmxlZnRTZWxlY3RlZF8gPSBsZWZ0U2VsZWN0ZWQ7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIGdldCByaWdodFNlbGVjdGVkKCkgewotICAgICAgcmV0dXJuIHRoaXMucmlnaHRTZWxlY3RlZF87Ci0gICAgfSwKLQotICAgIHNldCByaWdodFNlbGVjdGVkKHJpZ2h0U2VsZWN0ZWQpIHsKLSAgICAgIGlmICh0aGlzLnJpZ2h0U2VsZWN0ZWRfID09IHJpZ2h0U2VsZWN0ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMucmlnaHRTZWxlY3RlZF8gPSByaWdodFNlbGVjdGVkOwotICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwotICAgIH0sCi0KLSAgICBnZXQgbGVmdFNuYXBJbmRpY2F0b3IoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sZWZ0U25hcEluZGljYXRvcl87Ci0gICAgfSwKLQotICAgIHNldCBsZWZ0U25hcEluZGljYXRvcihsZWZ0U25hcEluZGljYXRvcikgewotICAgICAgdGhpcy5sZWZ0U25hcEluZGljYXRvcl8gPSBsZWZ0U25hcEluZGljYXRvcjsKLSAgICAgIHRoaXMudmlld3BvcnRfLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKLSAgICB9LAotCi0gICAgZ2V0IHJpZ2h0U25hcEluZGljYXRvcigpIHsKLSAgICAgIHJldHVybiB0aGlzLnJpZ2h0U25hcEluZGljYXRvcl87Ci0gICAgfSwKLQotICAgIHNldCByaWdodFNuYXBJbmRpY2F0b3IocmlnaHRTbmFwSW5kaWNhdG9yKSB7Ci0gICAgICB0aGlzLnJpZ2h0U25hcEluZGljYXRvcl8gPSByaWdodFNuYXBJbmRpY2F0b3I7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIGRyYXc6IGZ1bmN0aW9uKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgewotICAgICAgaWYgKHRoaXMucmFuZ2VfLmlzRW1wdHkpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOwotCi0gICAgICB2YXIgbWFya2VyTFdvcmxkID0gdGhpcy5taW47Ci0gICAgICB2YXIgbWFya2VyUldvcmxkID0gdGhpcy5tYXg7Ci0KLSAgICAgIHZhciBtYXJrZXJMVmlldyA9IE1hdGgucm91bmQoZHQueFdvcmxkVG9WaWV3KG1hcmtlckxXb3JsZCkpOwotICAgICAgdmFyIG1hcmtlclJWaWV3ID0gTWF0aC5yb3VuZChkdC54V29ybGRUb1ZpZXcobWFya2VyUldvcmxkKSk7Ci0KLSAgICAgIGN0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAwLCAwLCAwLjIpJzsKLSAgICAgIGlmIChtYXJrZXJMV29ybGQgPiB2aWV3TFdvcmxkKSB7Ci0gICAgICAgIGN0eC5maWxsUmVjdChkdC54V29ybGRUb1ZpZXcodmlld0xXb3JsZCksIDAsCi0gICAgICAgICAgICBtYXJrZXJMVmlldywgY3R4LmNhbnZhcy5oZWlnaHQpOwotICAgICAgfQotCi0gICAgICBpZiAobWFya2VyUldvcmxkIDwgdmlld1JXb3JsZCkgewotICAgICAgICBjdHguZmlsbFJlY3QobWFya2VyUlZpZXcsIDAsCi0gICAgICAgICAgICBkdC54V29ybGRUb1ZpZXcodmlld1JXb3JsZCksIGN0eC5jYW52YXMuaGVpZ2h0KTsKLSAgICAgIH0KLQotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgICAgY3R4LmxpbmVXaWR0aCA9IE1hdGgucm91bmQocGl4ZWxSYXRpbyk7Ci0gICAgICBpZiAodGhpcy5yYW5nZV8ucmFuZ2UgPiAwKSB7Ci0gICAgICAgIHRoaXMuZHJhd0xpbmVfKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwKLSAgICAgICAgICAgICAgICAgICAgICAgY3R4LmNhbnZhcy5oZWlnaHQsIHRoaXMubWluLCB0aGlzLmxlZnRTZWxlY3RlZF8pOwotICAgICAgICB0aGlzLmRyYXdMaW5lXyhjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsCi0gICAgICAgICAgICAgICAgICAgICAgIGN0eC5jYW52YXMuaGVpZ2h0LCB0aGlzLm1heCwgdGhpcy5yaWdodFNlbGVjdGVkXyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLmRyYXdMaW5lXyhjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsCi0gICAgICAgICAgICAgICAgICAgICAgIGN0eC5jYW52YXMuaGVpZ2h0LCB0aGlzLm1pbiwKLSAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZWZ0U2VsZWN0ZWRfIHx8IHRoaXMucmlnaHRTZWxlY3RlZF8pOwotICAgICAgfQotICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7Ci0gICAgfSwKLQotICAgIGRyYXdMaW5lXzogZnVuY3Rpb24oY3R4LCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkLCBoZWlnaHQsIHRzLCBzZWxlY3RlZCkgewotICAgICAgaWYgKHRzIDwgdmlld0xXb3JsZCB8fCB0cyA+PSB2aWV3UldvcmxkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOwotICAgICAgdmFyIHZpZXdYID0gTWF0aC5yb3VuZChkdC54V29ybGRUb1ZpZXcodHMpKTsKLQotICAgICAgLy8gQXBwbHkgc3VicGl4ZWwgdHJhbnNsYXRlIHRvIGdldCBjcmlzcCBsaW5lcy4KLSAgICAgIC8vIGh0dHA6Ly93d3cubW9idG93ZXJzLmNvbS9odG1sNS1jYW52YXMtY3Jpc3AtbGluZXMtZXZlcnktdGltZS8KLSAgICAgIGN0eC5zYXZlKCk7Ci0gICAgICBjdHgudHJhbnNsYXRlKChNYXRoLnJvdW5kKGN0eC5saW5lV2lkdGgpICUgMikgLyAyLCAwKTsKLQotICAgICAgY3R4LmJlZ2luUGF0aCgpOwotICAgICAgdHIuYy5kcmF3TGluZShjdHgsIHZpZXdYLCAwLCB2aWV3WCwgaGVpZ2h0KTsKLSAgICAgIGlmIChzZWxlY3RlZCkKLSAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigyNTUsIDAsIDApJzsKLSAgICAgIGVsc2UKLSAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigwLCAwLCAwKSc7Ci0gICAgICBjdHguc3Ryb2tlKCk7Ci0KLSAgICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgfSwKLQotICAgIGRyYXdJbmRpY2F0b3JzOiBmdW5jdGlvbihjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKLSAgICAgIGlmICh0aGlzLmxlZnRTbmFwSW5kaWNhdG9yXykgewotICAgICAgICB0aGlzLmRyYXdJbmRpY2F0b3JfKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmdlXy5taW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZWZ0U25hcEluZGljYXRvcl8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZWZ0U2VsZWN0ZWRfKTsKLSAgICAgIH0KLSAgICAgIGlmICh0aGlzLnJpZ2h0U25hcEluZGljYXRvcl8pIHsKLSAgICAgICAgdGhpcy5kcmF3SW5kaWNhdG9yXyhjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5nZV8ubWF4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmlnaHRTbmFwSW5kaWNhdG9yXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0U2VsZWN0ZWRfKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZHJhd0luZGljYXRvcl86IGZ1bmN0aW9uKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeFdvcmxkLCBzaSwgc2VsZWN0ZWQpIHsKLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOwotCi0gICAgICB2YXIgdmlld1ggPSBNYXRoLnJvdW5kKGR0LnhXb3JsZFRvVmlldyh4V29ybGQpKTsKLQotICAgICAgLy8gQXBwbHkgc3VicGl4ZWwgdHJhbnNsYXRlIHRvIGdldCBjcmlzcCBsaW5lcy4KLSAgICAgIC8vIGh0dHA6Ly93d3cubW9idG93ZXJzLmNvbS9odG1sNS1jYW52YXMtY3Jpc3AtbGluZXMtZXZlcnktdGltZS8KLSAgICAgIGN0eC5zYXZlKCk7Ci0gICAgICBjdHgudHJhbnNsYXRlKChNYXRoLnJvdW5kKGN0eC5saW5lV2lkdGgpICUgMikgLyAyLCAwKTsKLQotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgICAgdmFyIHZpZXdZID0gc2kueSAqIGRldmljZVBpeGVsUmF0aW87Ci0gICAgICB2YXIgdmlld0hlaWdodCA9IHNpLmhlaWdodCAqIGRldmljZVBpeGVsUmF0aW87Ci0gICAgICB2YXIgYXJyb3dTaXplID0gNCAqIHBpeGVsUmF0aW87Ci0KLSAgICAgIGlmIChzZWxlY3RlZCkKLSAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2IoMjU1LCAwLCAwKSc7Ci0gICAgICBlbHNlCi0gICAgICAgIGN0eC5maWxsU3R5bGUgPSAncmdiKDAsIDAsIDApJzsKLSAgICAgIHRyLmMuZHJhd1RyaWFuZ2xlKGN0eCwKLSAgICAgICAgICB2aWV3WCAtIGFycm93U2l6ZSAqIDAuNzUsIHZpZXdZLAotICAgICAgICAgIHZpZXdYICsgYXJyb3dTaXplICogMC43NSwgdmlld1ksCi0gICAgICAgICAgdmlld1gsIHZpZXdZICsgYXJyb3dTaXplKTsKLSAgICAgIGN0eC5maWxsKCk7Ci0gICAgICB0ci5jLmRyYXdUcmlhbmdsZShjdHgsCi0gICAgICAgICAgdmlld1ggLSBhcnJvd1NpemUgKiAwLjc1LCB2aWV3WSArIHZpZXdIZWlnaHQsCi0gICAgICAgICAgdmlld1ggKyBhcnJvd1NpemUgKiAwLjc1LCB2aWV3WSArIHZpZXdIZWlnaHQsCi0gICAgICAgICAgdmlld1gsIHZpZXdZICsgdmlld0hlaWdodCAtIGFycm93U2l6ZSk7Ci0gICAgICBjdHguZmlsbCgpOwotCi0gICAgICBjdHgucmVzdG9yZSgpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFNuYXBJbmRpY2F0b3I6IFNuYXBJbmRpY2F0b3IsCi0gICAgVGltZWxpbmVJbnRlcmVzdFJhbmdlOiBUaW1lbGluZUludGVyZXN0UmFuZ2UKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0ZWJkYzQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0udGltZWxpbmUtdHJhY2stdmlldyAqIHsKLSAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgY3Vyc29yOiBkZWZhdWx0OwotfQotCi0udGltZWxpbmUtdHJhY2stdmlldyAudG9vbC1idXR0b24gewotICBjdXJzb3I6IHBvaW50ZXI7Ci19Ci0KLS50aW1lbGluZS10cmFjay12aWV3IHsKLSAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKLSAgZGlzcGxheTogLXdlYmtpdC1ib3g7Ci0gIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLm1vZGVsLXRyYWNrLWNvbnRhaW5lciB7Ci0gIC13ZWJraXQtYm94LWZsZXg6IDE7Ci0gIG92ZXJmbG93OiBhdXRvOwotfQotCi0uZHJhZy1ib3ggewotICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDI1NSwgMC4yNSk7Ci0gIGJvcmRlcjogMXB4IHNvbGlkIHJnYigwLCAwLCA5Nik7Ci0gIGZvbnQtc2l6ZTogNzUlOwotICBwb3NpdGlvbjogZml4ZWQ7Ci19Ci0KLS50aW1lbGluZS10cmFjay12aWV3ID4gLmhpbnQtdGV4dCB7Ci0gIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgYm90dG9tOiA2cHg7Ci0gIHJpZ2h0OiA2cHg7Ci0gIGZvbnQtc2l6ZTogOHB0OwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV90cmFja192aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDVjNTY2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV90cmFja192aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9iYXNlL3VpL2NvbW1vbi5jc3MiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY29yZS90aW1lbGluZV90cmFja192aWV3LmNzcyI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcHJvcGVydGllcy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zZXR0aW5ncy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS90YXNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL21vdXNlX21vZGVfc2VsZWN0b3IuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV9hbmltYXRpb25zLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWluZ190b29sLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvbW9kZWxfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3J1bGVyX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwveF9tYXJrZXJfYW5ub3RhdGlvbi5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEludGVyYWN0aXZlIHZpc3VhbGl6YWl0b24gb2YgTW9kZWwgb2JqZWN0cwotICogYmFzZWQgbG9vc2VseSBvbiBnYW50dCBjaGFydHMuIEVhY2ggdGhyZWFkIGluIHRoZSBNb2RlbCBpcyBnaXZlbiBhCi0gKiBzZXQgb2YgVHJhY2tzLCBvbmUgcGVyIHN1YnJvdyBpbiB0aGUgdGhyZWFkLiBUaGUgVGltZWxpbmVUcmFja1ZpZXcgY2xhc3MKLSAqIGFjdHMgYXMgYSBjb250cm9sbGVyLCBjcmVhdGluZyB0aGUgaW5kaXZpZHVhbCB0cmFja3MsIHdoaWxlIFRyYWNrcwotICogZG8gYWN0dWFsIGRyYXdpbmcuCi0gKgotICogVmlzdWFsbHksIHRoZSBUaW1lbGluZVRyYWNrVmlldyBwcm9kdWNlcyAocHJldHRpZXIpIHZpc3VhbGl6YXRpb25zIGxpa2UgdGhlCi0gKiBmb2xsb3dpbmc6Ci0gKiAgICBUaHJlYWQxOiAgQUFBQUFBQUFBQSAgICAgICAgIEFBQUFBCi0gKiAgICAgICAgICAgICAgICAgIEJCQkIgICAgICAgICAgICAgIEJCCi0gKiAgICBUaHJlYWQyOiAgICAgQ0NDQ0NDICAgICAgICAgICAgICAgICBDQ0NDQwotICoKLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKLSAgdmFyIFZpZXdwb3J0ID0gdHIuYy5UaW1lbGluZVZpZXdwb3J0OwotCi0gIHZhciB0ZW1wRGlzcGxheVRyYW5zZm9ybSA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotCi0gIGZ1bmN0aW9uIGludGVyc2VjdFJlY3RfKHIxLCByMikgewotICAgIHZhciByZXN1bHRzID0gbmV3IE9iamVjdDsKLSAgICBpZiAocjIubGVmdCA+IHIxLnJpZ2h0IHx8IHIyLnJpZ2h0IDwgcjEubGVmdCB8fAotICAgICAgICByMi50b3AgPiByMS5ib3R0b20gfHwgcjIuYm90dG9tIDwgcjEudG9wKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJlc3VsdHMubGVmdCA9IE1hdGgubWF4KHIxLmxlZnQsIHIyLmxlZnQpOwotICAgIHJlc3VsdHMudG9wID0gTWF0aC5tYXgocjEudG9wLCByMi50b3ApOwotICAgIHJlc3VsdHMucmlnaHQgPSBNYXRoLm1pbihyMS5yaWdodCwgcjIucmlnaHQpOwotICAgIHJlc3VsdHMuYm90dG9tID0gTWF0aC5taW4ocjEuYm90dG9tLCByMi5ib3R0b20pOwotICAgIHJlc3VsdHMud2lkdGggPSAocmVzdWx0cy5yaWdodCAtIHJlc3VsdHMubGVmdCk7Ci0gICAgcmVzdWx0cy5oZWlnaHQgPSAocmVzdWx0cy5ib3R0b20gLSByZXN1bHRzLnRvcCk7Ci0gICAgcmV0dXJuIHJlc3VsdHM7Ci0gIH0KLQotICAvKioKLSAgICogUmVuZGVycyBhIE1vZGVsIGludG8gYSBkaXYgZWxlbWVudCwgbWFraW5nIG9uZQotICAgKiBUcmFjayBmb3IgZWFjaCBzdWJyb3cgaW4gZWFjaCB0aHJlYWQgb2YgdGhlIG1vZGVsLCBtYW5hZ2luZwotICAgKiBvdmVyYWxsIHRyYWNrIGxheW91dCwgYW5kIGhhbmRsaW5nIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCB0aGUKLSAgICogdmlld3BvcnQuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7SFRNTERpdkVsZW1lbnR9Ci0gICAqLwotICB2YXIgVGltZWxpbmVUcmFja1ZpZXcgPSB0ci5iLnVpLmRlZmluZSgnZGl2Jyk7Ci0KLSAgVGltZWxpbmVUcmFja1ZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgbW9kZWxfOiBudWxsLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHRpbWVsaW5lVmlldykgewotCi0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3RpbWVsaW5lLXRyYWNrLXZpZXcnKTsKLQotICAgICAgdGhpcy50aW1lbGluZVZpZXdfID0gdGltZWxpbmVWaWV3OwotCi0gICAgICB0aGlzLnZpZXdwb3J0XyA9IG5ldyBWaWV3cG9ydCh0aGlzKTsKLSAgICAgIHRoaXMudmlld3BvcnREaXNwbGF5VHJhbnNmb3JtQXRNb3VzZURvd25fID0gbnVsbDsKLSAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIHRoaXMucnVsZXJUcmFja0NvbnRhaW5lcl8gPQotICAgICAgICAgIG5ldyB0ci5jLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHRoaXMudmlld3BvcnRfKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5ydWxlclRyYWNrQ29udGFpbmVyXyk7Ci0gICAgICB0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfLmludmFsaWRhdGUoKTsKLQotICAgICAgdGhpcy5ydWxlclRyYWNrXyA9IG5ldyB0ci5jLnRyYWNrcy5SdWxlclRyYWNrKHRoaXMudmlld3BvcnRfKTsKLSAgICAgIHRoaXMucnVsZXJUcmFja0NvbnRhaW5lcl8uYXBwZW5kQ2hpbGQodGhpcy5ydWxlclRyYWNrXyk7Ci0KLSAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXyA9IG5ldyB0ci5jLnRyYWNrcy5Nb2RlbFRyYWNrKHRoaXMudmlld3BvcnRfKTsKLSAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXy51cHBlck1vZGUgPSB0cnVlOwotICAgICAgdGhpcy5ydWxlclRyYWNrQ29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLnVwcGVyTW9kZWxUcmFja18pOwotCi0gICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfID0KLSAgICAgICAgICBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih0aGlzLnZpZXdwb3J0Xyk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8pOwotICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKLSAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uaW52YWxpZGF0ZSgpOwotCi0gICAgICB0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXzsKLQotICAgICAgdGhpcy5tb2RlbFRyYWNrXyA9IG5ldyB0ci5jLnRyYWNrcy5Nb2RlbFRyYWNrKHRoaXMudmlld3BvcnRfKTsKLSAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uYXBwZW5kQ2hpbGQodGhpcy5tb2RlbFRyYWNrXyk7Ci0KLSAgICAgIHRoaXMudGltaW5nVG9vbF8gPSBuZXcgdHIuYy5UaW1pbmdUb29sKHRoaXMudmlld3BvcnRfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyk7Ci0KLSAgICAgIHRoaXMuaW5pdE1vdXNlTW9kZVNlbGVjdG9yKCk7Ci0KLSAgICAgIHRoaXMuZHJhZ0JveF8gPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICB0aGlzLmRyYWdCb3hfLmNsYXNzTmFtZSA9ICdkcmFnLWJveCc7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuZHJhZ0JveF8pOwotICAgICAgdGhpcy5oaWRlRHJhZ0JveF8oKTsKLQotICAgICAgdGhpcy5pbml0SGludFRleHRfKCk7Ci0KLSAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyA9IHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpOwotCi0gICAgICB0aGlzLmJpbmRFdmVudExpc3RlbmVyXyhkb2N1bWVudCwgJ2tleXByZXNzJywgdGhpcy5vbktleXByZXNzXywgdGhpcyk7Ci0gICAgICB0aGlzLmJpbmRFdmVudExpc3RlbmVyXyhkb2N1bWVudCwgJ2tleWRvd24nLCB0aGlzLm9uS2V5ZG93bl8sIHRoaXMpOwotICAgICAgdGhpcy5iaW5kRXZlbnRMaXN0ZW5lcl8oZG9jdW1lbnQsICdrZXl1cCcsIHRoaXMub25LZXl1cF8sIHRoaXMpOwotCi0gICAgICB0aGlzLmJpbmRFdmVudExpc3RlbmVyXyh0aGlzLCAnZGJsY2xpY2snLCB0aGlzLm9uRGJsQ2xpY2tfLCB0aGlzKTsKLSAgICAgIHRoaXMuYmluZEV2ZW50TGlzdGVuZXJfKHRoaXMsICdtb3VzZXdoZWVsJywgdGhpcy5vbk1vdXNlV2hlZWxfLCB0aGlzKTsKLSAgICAgIHRoaXMuYmluZEV2ZW50TGlzdGVuZXJfKHRoaXMsICdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duXywgdGhpcyk7Ci0KLSAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZV8pOwotCi0gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hTdGFydF8pOwotICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlXyk7Ci0gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kXyk7Ci0KLSAgICAgIHRoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fID0ge3g6IDAsIHk6IDB9OwotICAgICAgdGhpcy5sYXN0TW91c2VWaWV3UG9zXyA9IHt4OiAwLCB5OiAwfTsKLQotICAgICAgdGhpcy5sYXN0VG91Y2hWaWV3UG9zaXRpb25zXyA9IFtdOwotCi0gICAgICB0aGlzLmFsZXJ0XyA9IHVuZGVmaW5lZDsKLQotICAgICAgdGhpcy5pc1Bhbm5pbmdBbmRTY2FubmluZ18gPSBmYWxzZTsKLSAgICAgIHRoaXMuaXNab29taW5nXyA9IGZhbHNlOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBXcmFwcyB0aGUgc3RhbmRhcmQgYWRkRXZlbnRMaXN0ZW5lciBidXQgYXV0b21hdGljYWxseSBiaW5kcyB0aGUgcHJvdmlkZWQKLSAgICAgKiBmdW5jIHRvIHRoZSBwcm92aWRlZCB0YXJnZXQsIHRyYWNraW5nIHRoZSByZXN1bHRpbmcgY2xvc3VyZS4gV2hlbiBkZXRhY2gKLSAgICAgKiBpcyBjYWxsZWQsIHRoZXNlIGxpc3RlbmVycyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC4KLSAgICAgKi8KLSAgICBiaW5kRXZlbnRMaXN0ZW5lcl86IGZ1bmN0aW9uKG9iamVjdCwgZXZlbnQsIGZ1bmMsIHRhcmdldCkgewotICAgICAgaWYgKCF0aGlzLmJvdW5kTGlzdGVuZXJzXykKLSAgICAgICAgdGhpcy5ib3VuZExpc3RlbmVyc18gPSBbXTsKLSAgICAgIHZhciBib3VuZEZ1bmMgPSBmdW5jLmJpbmQodGFyZ2V0KTsKLSAgICAgIHRoaXMuYm91bmRMaXN0ZW5lcnNfLnB1c2goe29iamVjdDogb2JqZWN0LAotICAgICAgICBldmVudDogZXZlbnQsCi0gICAgICAgIGJvdW5kRnVuYzogYm91bmRGdW5jfSk7Ci0gICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgYm91bmRGdW5jKTsKLSAgICB9LAotCi0gICAgaW5pdE1vdXNlTW9kZVNlbGVjdG9yOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfID0gbmV3IHRyLmIudWkuTW91c2VNb2RlU2VsZWN0b3IodGhpcyk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMubW91c2VNb2RlU2VsZWN0b3JfKTsKLQotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW5wYW4nLAotICAgICAgICAgIHRoaXMub25CZWdpblBhblNjYW5fLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlcGFuJywKLSAgICAgICAgICB0aGlzLm9uVXBkYXRlUGFuU2Nhbl8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbmRwYW4nLAotICAgICAgICAgIHRoaXMub25FbmRQYW5TY2FuXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW5zZWxlY3Rpb24nLAotICAgICAgICAgIHRoaXMub25CZWdpblNlbGVjdGlvbl8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVzZWxlY3Rpb24nLAotICAgICAgICAgIHRoaXMub25VcGRhdGVTZWxlY3Rpb25fLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW5kc2VsZWN0aW9uJywKLSAgICAgICAgICB0aGlzLm9uRW5kU2VsZWN0aW9uXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW56b29tJywKLSAgICAgICAgICB0aGlzLm9uQmVnaW5ab29tXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXpvb20nLAotICAgICAgICAgIHRoaXMub25VcGRhdGVab29tXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHpvb20nLAotICAgICAgICAgIHRoaXMub25FbmRab29tXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW50ZXJ0aW1pbmcnLAotICAgICAgICAgIHRoaXMudGltaW5nVG9vbF8ub25FbnRlclRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZ2ludGltaW5nJywKLSAgICAgICAgICB0aGlzLnRpbWluZ1Rvb2xfLm9uQmVnaW5UaW1pbmcuYmluZCh0aGlzLnRpbWluZ1Rvb2xfKSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGV0aW1pbmcnLAotICAgICAgICAgIHRoaXMudGltaW5nVG9vbF8ub25VcGRhdGVUaW1pbmcuYmluZCh0aGlzLnRpbWluZ1Rvb2xfKSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbmR0aW1pbmcnLAotICAgICAgICAgIHRoaXMudGltaW5nVG9vbF8ub25FbmRUaW1pbmcuYmluZCh0aGlzLnRpbWluZ1Rvb2xfKSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdleGl0dGltaW5nJywKLSAgICAgICAgICB0aGlzLnRpbWluZ1Rvb2xfLm9uRXhpdFRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTsKLQotICAgICAgdmFyIG0gPSB0ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREU7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zdXBwb3J0ZWRNb2RlTWFzayA9Ci0gICAgICAgICAgbS5TRUxFQ1RJT04gfCBtLlBBTlNDQU4gfCBtLlpPT00gfCBtLlRJTUlORzsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldHRpbmdzS2V5ID0KLSAgICAgICAgICAndGltZWxpbmVUcmFja1ZpZXcubW91c2VNb2RlU2VsZWN0b3InOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0S2V5Q29kZUZvck1vZGUobS5QQU5TQ0FOLCAnMicuY2hhckNvZGVBdCgwKSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRLZXlDb2RlRm9yTW9kZShtLlNFTEVDVElPTiwgJzEnLmNoYXJDb2RlQXQoMCkpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0S2V5Q29kZUZvck1vZGUobS5aT09NLCAnMycuY2hhckNvZGVBdCgwKSk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRLZXlDb2RlRm9yTW9kZShtLlRJTUlORywgJzQnLmNoYXJDb2RlQXQoMCkpOwotCi0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRLZXlDb2RlQ29uZGl0aW9uKGZ1bmN0aW9uKCkgewotICAgICAgICAvLyBSZXR1cm4gZmFsc2Ugd2hlbiBGaW5kQ29udHJvbCBpcyBhY3RpdmUgc28gdGhhdCBNb3VzZU1vZGUga2V5Ym9hcmQKLSAgICAgICAgLy8gc2hvcnRjdXRzIGFyZSBpZ25vcmVkLgotICAgICAgICByZXR1cm4gdGhpcy5saXN0ZW5Ub0tleXNfOwotICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlKAotICAgICAgICAgIG0uU0VMRUNUSU9OLCB0ci5iLnVpLk1PRElGSUVSLlNISUZUKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldE1vZGlmaWVyRm9yQWx0ZXJuYXRlTW9kZSgKLSAgICAgICAgICBtLlBBTlNDQU4sIHRyLmIudWkuTU9ESUZJRVIuU1BBQ0UpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlKAotICAgICAgICAgIG0uWk9PTSwgdHIuYi51aS5NT0RJRklFUi5DTURfT1JfQ1RSTCk7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb25Db250cm9sbGVyKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb25Db250cm9sbGVyKHNlbGVjdGlvbkNvbnRyb2xsZXIpIHsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfKSB7Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7Ci0gICAgICB9Ci0gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfID0gc2VsZWN0aW9uQ29udHJvbGxlcjsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfKSB7Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uU2VsZWN0aW9uQ2hhbmdlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zaG93SGludFRleHRfKCdQcmVzcyBcJ21cJyB0byBtYXJrIGN1cnJlbnQgc2VsZWN0aW9uJyk7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RPIE5PVCBDQUxMIFRISVMnKTsKLSAgICB9LAotCi0gICAgc2V0IGhpZ2hsaWdodChoaWdobGlnaHQpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignRE8gTk9UIENBTEwgVEhJUycpOwotICAgIH0sCi0KLSAgICBkZXRhY2g6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5tb2RlbFRyYWNrXy5kZXRhY2goKTsKLSAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXy5kZXRhY2goKTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJvdW5kTGlzdGVuZXJzXy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgYmluZGluZyA9IHRoaXMuYm91bmRMaXN0ZW5lcnNfW2ldOwotICAgICAgICBiaW5kaW5nLm9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKGJpbmRpbmcuZXZlbnQsIGJpbmRpbmcuYm91bmRGdW5jKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuYm91bmRMaXN0ZW5lcnNfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy52aWV3cG9ydF8uZGV0YWNoKCk7Ci0gICAgfSwKLQotICAgIGdldCB2aWV3cG9ydCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnZpZXdwb3J0XzsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsKCkgewotICAgICAgcmV0dXJuIHRoaXMubW9kZWxfOwotICAgIH0sCi0KLSAgICBzZXQgbW9kZWwobW9kZWwpIHsKLSAgICAgIGlmICghbW9kZWwpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kZWwgY2Fubm90IGJlIG51bGwnKTsKLQotICAgICAgdmFyIG1vZGVsSW5zdGFuY2VDaGFuZ2VkID0gdGhpcy5tb2RlbF8gIT09IG1vZGVsOwotICAgICAgdGhpcy5tb2RlbF8gPSBtb2RlbDsKLSAgICAgIHRoaXMubW9kZWxUcmFja18ubW9kZWwgPSBtb2RlbDsKLSAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXy5tb2RlbCA9IG1vZGVsOwotCi0gICAgICAvLyBTZXQgdXAgYSByZWFzb25hYmxlIHZpZXdwb3J0LgotICAgICAgaWYgKG1vZGVsSW5zdGFuY2VDaGFuZ2VkKQotICAgICAgICB0aGlzLnZpZXdwb3J0Xy5zZXRXaGVuUG9zc2libGUodGhpcy5zZXRJbml0aWFsVmlld3BvcnRfLmJpbmQodGhpcykpOwotCi0gICAgICB0ci5iLnNldFByb3BlcnR5QW5kRGlzcGF0Y2hDaGFuZ2UodGhpcywgJ21vZGVsJywgbW9kZWwpOwotICAgIH0sCi0KLSAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5tb2RlbFRyYWNrXy5oYXNWaXNpYmxlQ29udGVudCB8fAotICAgICAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXy5oYXNWaXNpYmxlQ29udGVudDsKLSAgICB9LAotCi0gICAgc2V0SW5pdGlhbFZpZXdwb3J0XzogZnVuY3Rpb24oKSB7Ci0gICAgICAvLyBXZSBuZWVkIHRoZSBjYW52YXMgc2l6ZSB0byBiZSB1cC10by1kYXRlIGF0IHRoaXMgcG9pbnQuIFdlIG1heWJlIGluCi0gICAgICAvLyBoZXJlIGJlZm9yZSB0aGUgcmFmIGZpcmVzLCBzbyB0aGUgc2l6ZSBtYXkgaGF2ZSBub3QgYmVlbiB1cGRhdGVkIHNpbmNlCi0gICAgICAvLyB0aGUgY2FudmFzIHdhcyByZXNpemVkLgotICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy51cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfKCk7Ci0gICAgICB2YXIgdyA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoOwotCi0gICAgICB2YXIgbWluOwotICAgICAgdmFyIHJhbmdlOwotCi0gICAgICBpZiAodGhpcy5tb2RlbF8uYm91bmRzLmlzRW1wdHkpIHsKLSAgICAgICAgbWluID0gMDsKLSAgICAgICAgcmFuZ2UgPSAxMDAwOwotICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGVsXy5ib3VuZHMucmFuZ2UgPT09IDApIHsKLSAgICAgICAgbWluID0gdGhpcy5tb2RlbF8uYm91bmRzLm1pbjsKLSAgICAgICAgcmFuZ2UgPSAxMDAwOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgbWluID0gdGhpcy5tb2RlbF8uYm91bmRzLm1pbjsKLSAgICAgICAgcmFuZ2UgPSB0aGlzLm1vZGVsXy5ib3VuZHMucmFuZ2U7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBib29zdCA9IHJhbmdlICogMC4xNTsKLSAgICAgIHRlbXBEaXNwbGF5VHJhbnNmb3JtLnNldCh0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSk7Ci0gICAgICB0ZW1wRGlzcGxheVRyYW5zZm9ybS54U2V0V29ybGRCb3VuZHMobWluIC0gYm9vc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluICsgcmFuZ2UgKyBib29zdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3KTsKLSAgICAgIHRoaXMudmlld3BvcnRfLnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseSh0ZW1wRGlzcGxheVRyYW5zZm9ybSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RmlsdGVyfSBmaWx0ZXIgVGhlIGZpbHRlciB0byB1c2UgZm9yIGZpbmRpbmcgbWF0Y2hlcy4KLSAgICAgKiBAcGFyYW0ge1NlbGVjdGlvbn0gc2VsZWN0aW9uIFRoZSBzZWxlY3Rpb24gdG8gYWRkIG1hdGNoZXMgdG8uCi0gICAgICogQHJldHVybiB7VGFza30gd2hpY2ggcGVyZm9ybXMgdGhlIGZpbHRlcmluZy4KLSAgICAgKi8KLSAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgewotICAgICAgdmFyIG1vZGVsVHJhY2sgPSB0aGlzLm1vZGVsVHJhY2tfOwotICAgICAgdmFyIGZpcnN0VCA9IG1vZGVsVHJhY2suYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzaygKLSAgICAgICAgICBmaWx0ZXIsIHNlbGVjdGlvbik7Ci0gICAgICB2YXIgbGFzdFQgPSBmaXJzdFQuYWZ0ZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uKAotICAgICAgICAgIGZpbHRlciwgc2VsZWN0aW9uKTsKLQotICAgICAgfSwgdGhpcyk7Ci0gICAgICByZXR1cm4gZmlyc3RUOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtFbGVtZW50fSBUaGUgZWxlbWVudCB3aG9zZSBmb2N1c2VkIHN0YXRlIGRldGVybWluZXMKLSAgICAgKiB3aGV0aGVyIHRvIHJlc3BvbmQgdG8ga2V5Ym9hcmQgaW5wdXRzLgotICAgICAqIERlZmF1bHRzIHRvIHRoZSBwYXJlbnQgZWxlbWVudC4KLSAgICAgKi8KLSAgICBnZXQgZm9jdXNFbGVtZW50KCkgewotICAgICAgaWYgKHRoaXMuZm9jdXNFbGVtZW50XykKLSAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNFbGVtZW50XzsKLSAgICAgIHJldHVybiB0aGlzLnBhcmVudEVsZW1lbnQ7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFNldHMgdGhlIGVsZW1lbnQgd2hvc2UgZm9jdXMgc3RhdGUgd2lsbCBkZXRlcm1pbmUgd2hldGhlcgotICAgICAqIHRvIHJlc3BvbmQgdG8ga2V5Ym9hcmQgaW5wdXQuCi0gICAgICovCi0gICAgc2V0IGZvY3VzRWxlbWVudCh2YWx1ZSkgewotICAgICAgdGhpcy5mb2N1c0VsZW1lbnRfID0gdmFsdWU7Ci0gICAgfSwKLQotICAgIGdldCBsaXN0ZW5Ub0tleXNfKCkgewotICAgICAgaWYgKCF0aGlzLnZpZXdwb3J0Xy5pc0F0dGFjaGVkVG9Eb2N1bWVudE9ySW5UZXN0TW9kZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBUcmFjaW5nRmluZENvbnRyb2wpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgVHJhY2luZ1NjcmlwdGluZ0NvbnRyb2wpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGlmICghdGhpcy5mb2N1c0VsZW1lbnRfKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIGlmICh0aGlzLmZvY3VzRWxlbWVudC50YWJJbmRleCA+PSAwKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IHRoaXMuZm9jdXNFbGVtZW50KQotICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICByZXR1cm4gdHIuYi51aS5lbGVtZW50SXNDaGlsZE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0VsZW1lbnQpOwotICAgICAgfQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIG9uTW91c2VNb3ZlXzogZnVuY3Rpb24oZSkgewotCi0gICAgICAvLyBab29taW5nIHJlcXVpcmVzIHRoZSBkZWx0YSBzaW5jZSB0aGUgbGFzdCBtb3VzZW1vdmUgc28gd2UgbmVlZCB0byBhdm9pZAotICAgICAgLy8gdHJhY2tpbmcgaXQgd2hlbiB0aGUgem9vbSBpbnRlcmFjdGlvbiBpcyBhY3RpdmUuCi0gICAgICBpZiAodGhpcy5pc1pvb21pbmdfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuc3RvcmVMYXN0TW91c2VQb3NfKGUpOwotICAgIH0sCi0KLSAgICBvblRvdWNoU3RhcnRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLnN0b3JlTGFzdFRvdWNoUG9zaXRpb25zXyhlKTsKLSAgICAgIHRoaXMuZm9jdXNFbGVtZW50c18oKTsKLSAgICB9LAotCi0gICAgb25Ub3VjaE1vdmVfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICB0aGlzLm9uVXBkYXRlVHJhbnNmb3JtRm9yVG91Y2hfKGUpOwotICAgIH0sCi0KLSAgICBvblRvdWNoRW5kXzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5zdG9yZUxhc3RUb3VjaFBvc2l0aW9uc18oZSk7Ci0gICAgICB0aGlzLmZvY3VzRWxlbWVudHNfKCk7Ci0gICAgfSwKLQotICAgIG9uS2V5cHJlc3NfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgdnAgPSB0aGlzLnZpZXdwb3J0XzsKLSAgICAgIGlmICghdGhpcy5saXN0ZW5Ub0tleXNfKQotICAgICAgICByZXR1cm47Ci0gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSA9PSAnSU5QVVQnKQotICAgICAgICByZXR1cm47Ci0gICAgICB2YXIgdmlld1dpZHRoID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMuY2xpZW50V2lkdGg7Ci0gICAgICB2YXIgY3VyTW91c2VWLCBjdXJDZW50ZXJXOwotICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHsKLQotICAgICAgICBjYXNlIDExOTogIC8vIHcKLSAgICAgICAgY2FzZSA0NDogICAvLyAsCi0gICAgICAgICAgdGhpcy56b29tQnlfKDEuNSwgdHJ1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMTE1OiAgLy8gcwotICAgICAgICBjYXNlIDExMTogIC8vIG8KLSAgICAgICAgICB0aGlzLnpvb21CeV8oMSAvIDEuNSwgdHJ1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMTAzOiAgLy8gZwotICAgICAgICAgIHRoaXMub25HcmlkVG9nZ2xlXyh0cnVlKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSA3MTogIC8vIEcKLSAgICAgICAgICB0aGlzLm9uR3JpZFRvZ2dsZV8oZmFsc2UpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDg3OiAgLy8gVwotICAgICAgICBjYXNlIDYwOiAgLy8gPAotICAgICAgICAgIHRoaXMuem9vbUJ5XygxMCwgdHJ1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgODM6ICAvLyBTCi0gICAgICAgIGNhc2UgNzk6ICAvLyBPCi0gICAgICAgICAgdGhpcy56b29tQnlfKDEgLyAxMCwgdHJ1ZSk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgOTc6ICAvLyBhCi0gICAgICAgICAgdGhpcy5xdWV1ZVNtb290aFBhbl8odmlld1dpZHRoICogMC4zLCAwKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxMDA6ICAvLyBkCi0gICAgICAgIGNhc2UgMTAxOiAgLy8gZQotICAgICAgICAgIHRoaXMucXVldWVTbW9vdGhQYW5fKHZpZXdXaWR0aCAqIC0wLjMsIDApOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDY1OiAgLy8gQQotICAgICAgICAgIHRoaXMucXVldWVTbW9vdGhQYW5fKHZpZXdXaWR0aCAqIDAuNSwgMCk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgNjg6ICAvLyBECi0gICAgICAgICAgdGhpcy5xdWV1ZVNtb290aFBhbl8odmlld1dpZHRoICogLTAuNSwgMCk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgNDg6ICAvLyAwCi0gICAgICAgICAgdGhpcy5zZXRJbml0aWFsVmlld3BvcnRfKCk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMTAyOiAgLy8gZgotICAgICAgICAgIHRoaXMuem9vbVRvU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ20nLmNoYXJDb2RlQXQoMCk6Ci0gICAgICAgICAgdGhpcy5zZXRDdXJyZW50U2VsZWN0aW9uQXNJbnRlcmVzdFJhbmdlXygpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDEwNDogIC8vIGgKLSAgICAgICAgICB0aGlzLnRvZ2dsZUhpZ2hEZXRhaWxzXygpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvLyBOb3QgYWxsIGtleXMgc2VuZCBhIGtleXByZXNzLgotICAgIG9uS2V5ZG93bl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy5saXN0ZW5Ub0tleXNfKQotICAgICAgICByZXR1cm47Ci0gICAgICB2YXIgc2VsOwotICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydF87Ci0gICAgICB2YXIgdmlld1dpZHRoID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMuY2xpZW50V2lkdGg7Ci0KLSAgICAgIHN3aXRjaCAoZS5rZXlDb2RlKSB7Ci0gICAgICAgIGNhc2UgMzc6ICAgLy8gbGVmdCBhcnJvdwotICAgICAgICAgIHNlbCA9IHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uc2VsZWN0aW9uLmdldFNoaWZ0ZWRTZWxlY3Rpb24oCi0gICAgICAgICAgICAgIHRoaXMudmlld3BvcnQsIC0xKTsKLQotICAgICAgICAgIGlmIChzZWwpIHsKLSAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlci5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsKTsKLSAgICAgICAgICAgIHRoaXMucGFuVG9TZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5xdWV1ZVNtb290aFBhbl8odmlld1dpZHRoICogMC4zLCAwKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMzk6ICAgLy8gcmlnaHQgYXJyb3cKLSAgICAgICAgICBzZWwgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLnNlbGVjdGlvbi5nZXRTaGlmdGVkU2VsZWN0aW9uKAotICAgICAgICAgICAgICB0aGlzLnZpZXdwb3J0LCAxKTsKLSAgICAgICAgICBpZiAoc2VsKSB7Ci0gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuY2hhbmdlU2VsZWN0aW9uRnJvbVRpbWVsaW5lKHNlbCk7Ci0gICAgICAgICAgICB0aGlzLnBhblRvU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMucXVldWVTbW9vdGhQYW5fKC12aWV3V2lkdGggKiAwLjMsIDApOwotICAgICAgICAgIH0KLSAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSA5OiAgICAvLyBUQUIKLSAgICAgICAgICBpZiAodGhpcy5mb2N1c0VsZW1lbnQudGFiSW5kZXggPT0gLTEpIHsKLSAgICAgICAgICAgIGlmIChlLnNoaWZ0S2V5KQotICAgICAgICAgICAgICB0aGlzLnNlbGVjdFByZXZpb3VzXyhlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgdGhpcy5zZWxlY3ROZXh0XyhlKTsKLSAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uS2V5dXBfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoIXRoaXMubGlzdGVuVG9LZXlzXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKCFlLnNoaWZ0S2V5KSB7Ci0gICAgICAgIGlmICh0aGlzLmRyYWdCZWdpbkV2ZW50XykgewotICAgICAgICAgIHRoaXMuc2V0RHJhZ0JveFBvc2l0aW9uXyh0aGlzLmRyYWdCb3hYU3RhcnRfLCB0aGlzLmRyYWdCb3hZU3RhcnRfLAotICAgICAgICAgICAgICB0aGlzLmRyYWdCb3hYRW5kXywgdGhpcy5kcmFnQm94WUVuZF8pOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICB9LAotCi0gICAgb25EYmxDbGlja186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICh0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5tb2RlICE9PQotICAgICAgICAgIHRyLmIudWkuTU9VU0VfU0VMRUNUT1JfTU9ERS5TRUxFQ1RJT04pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGN1clNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uc2VsZWN0aW9uOwotICAgICAgaWYgKCFjdXJTZWxlY3Rpb24ubGVuZ3RoIHx8ICFjdXJTZWxlY3Rpb25bMF0udGl0bGUpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICAgIHZhciBmaWx0ZXIgPSBuZXcgdHIuYy5FeGFjdFRpdGxlRmlsdGVyKGN1clNlbGVjdGlvblswXS50aXRsZSk7Ci0gICAgICB0aGlzLm1vZGVsVHJhY2tfLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oZmlsdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24pOwotCi0gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuY2hhbmdlU2VsZWN0aW9uRnJvbVRpbWVsaW5lKHNlbGVjdGlvbik7Ci0gICAgfSwKLQotICAgIG9uTW91c2VXaGVlbF86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghZS5hbHRLZXkpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGRlbHRhID0gZS53aGVlbERlbHRhIC8gMTIwOwotICAgICAgdmFyIHpvb21TY2FsZSA9IE1hdGgucG93KDEuNSwgZGVsdGEpOwotICAgICAgdGhpcy56b29tQnlfKHpvb21TY2FsZSk7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfSwKLQotICAgIG9uTW91c2VEb3duXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLm1vZGUgIT09Ci0gICAgICAgICAgdHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTikKLSAgICAgICAgcmV0dXJuOwotICAgICAgLy8gTW91c2UgZG93biBtdXN0IHN0YXJ0IG9uIHJ1bGVyIHRyYWNrIGZvciBjcm9zc2hhaXIgZ3VpZGUgbGluZXMgdG8gZHJhdy4KLSAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcy5ydWxlclRyYWNrXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3Qgc3RhcnQgYSBzZWxlY3Rpb24gZHJhZyBldmVudCBoZXJlLgotICAgICAgdGhpcy5kcmFnQmVnaW5FdmVudF8gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIC8vIFJlbW92ZSBuYXYgc3RyaW5nIG1hcmtlciBpZiBpdCBleGlzdHMsIHNpbmNlIHdlJ3JlIGNsZWFyaW5nIHRoZQotICAgICAgLy8gZmluZCBjb250cm9sIGJveC4KLSAgICAgIGlmICh0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKSB7Ci0gICAgICAgIHRoaXMubW9kZWwucmVtb3ZlQW5ub3RhdGlvbih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKTsKLSAgICAgICAgdGhpcy54TmF2U3RyaW5nTWFya2VyXyA9IHVuZGVmaW5lZDsKLSAgICAgIH0KLQotICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICB0ci5iLnVpLnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcChmdW5jdGlvbihlKSB7IC8vIE1vdXNlIG1vdmUgaGFuZGxlci4KLSAgICAgICAgLy8gSWYgbW91c2UgZXZlbnQgaXMgb24gcnVsZXIsIGRvbid0IGRvIGFueXRoaW5nLgotICAgICAgICBpZiAoZS50YXJnZXQgPT09IHRoaXMucnVsZXJUcmFja18pCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciByZWxhdGl2ZVBvc2l0aW9uID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKLSAgICAgICAgdmFyIGxvYyA9IHRyLmMuTG9jYXRpb24uZnJvbVZpZXdDb29yZGluYXRlcygKLSAgICAgICAgICAgIHRoaXMudmlld3BvcnRfLCByZWxhdGl2ZVBvc2l0aW9uLngsIHJlbGF0aXZlUG9zaXRpb24ueSk7Ci0gICAgICAgIC8vIE5vdCBhbGwgcG9pbnRzIG9uIHRoZSB0aW1lbGluZSByZXByZXNlbnRzIGEgdmFsaWQgbG9jYXRpb24uCi0gICAgICAgIC8vIGV4LiBwcm9jZXNzIGhlYWRlciB0cmFja3MsIGxldHRlciBkb3QgdHJhY2tzLgotICAgICAgICBpZiAoIWxvYykKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8gPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8gPQotICAgICAgICAgICAgICBuZXcgdHIubW9kZWwuWE1hcmtlckFubm90YXRpb24obG9jLnhXb3JsZCk7Ci0gICAgICAgICAgdGhpcy5tb2RlbC5hZGRBbm5vdGF0aW9uKHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8udGltZXN0YW1wID0gbG9jLnhXb3JsZDsKLSAgICAgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmludmFsaWRhdGUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFNldCB0aGUgZmluZGNvbnRyb2wncyB0ZXh0IHRvIG5hdiBzdHJpbmcgb2YgY3VycmVudCBzdGF0ZS4KLSAgICAgICAgdmFyIHN0YXRlID0gbmV3IHRyLmMuVUlTdGF0ZShsb2MsCi0gICAgICAgICAgICB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5zY2FsZVgpOwotICAgICAgICB0aGlzLnRpbWVsaW5lVmlld18uc2V0RmluZEN0bFRleHQoCi0gICAgICAgICAgICBzdGF0ZS50b1VzZXJGcmllbmRseVN0cmluZyh0aGlzLnZpZXdwb3J0XykpOwotICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgcXVldWVTbW9vdGhQYW5fOiBmdW5jdGlvbih2aWV3RGVsdGFYLCBkZWx0YVkpIHsKLSAgICAgIHZhciBkZWx0YVggPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS54Vmlld1ZlY3RvclRvV29ybGQoCi0gICAgICAgICAgdmlld0RlbHRhWCk7Ci0gICAgICB2YXIgYW5pbWF0aW9uID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKAotICAgICAgICAgIGRlbHRhWCwgZGVsdGFZKTsKLSAgICAgIHRoaXMudmlld3BvcnRfLnF1ZXVlRGlzcGxheVRyYW5zZm9ybUFuaW1hdGlvbihhbmltYXRpb24pOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBab29tIGluIG9yIG91dCBvbiB0aGUgdGltZWxpbmUgYnkgdGhlIGdpdmVuIHNjYWxlIGZhY3Rvci4KLSAgICAgKiBAcGFyYW0ge051bWJlcn0gc2NhbGUgVGhlIHNjYWxlIGZhY3RvciB0byBhcHBseS4gIElmIDwxLCB6b29tcyBvdXQuCi0gICAgICogQHBhcmFtIHtib29sZWFufSBXaGV0aGVyIHRvIGNoYW5nZSB0aGUgem9vbSBsZXZlbCBzbW9vdGhseS4KLSAgICAgKi8KLSAgICB6b29tQnlfOiBmdW5jdGlvbihzY2FsZSwgc21vb3RoKSB7Ci0gICAgICBpZiAoc2NhbGUgPD0gMCkgewotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHNtb290aCA9ICEhc21vb3RoOwotICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydF87Ci0gICAgICB2YXIgdmlld1dpZHRoID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMuY2xpZW50V2lkdGg7Ci0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0KLSAgICAgIHZhciBnb2FsRm9jYWxQb2ludFhWaWV3ID0gdGhpcy5sYXN0TW91c2VWaWV3UG9zXy54ICogcGl4ZWxSYXRpbzsKLSAgICAgIHZhciBnb2FsRm9jYWxQb2ludFhXb3JsZCA9IHZwLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnhWaWV3VG9Xb3JsZCgKLSAgICAgICAgICBnb2FsRm9jYWxQb2ludFhWaWV3KTsKLSAgICAgIGlmIChzbW9vdGgpIHsKLSAgICAgICAgdmFyIGFuaW1hdGlvbiA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbigKLSAgICAgICAgICAgIGdvYWxGb2NhbFBvaW50WFdvcmxkLCBnb2FsRm9jYWxQb2ludFhWaWV3LAotICAgICAgICAgICAgdnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSwKLSAgICAgICAgICAgIHNjYWxlKTsKLSAgICAgICAgdnAucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0ZW1wRGlzcGxheVRyYW5zZm9ybS5zZXQodnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0pOwotICAgICAgICB0ZW1wRGlzcGxheVRyYW5zZm9ybS5zY2FsZVggPSB0ZW1wRGlzcGxheVRyYW5zZm9ybS5zY2FsZVggKiBzY2FsZTsKLSAgICAgICAgdGVtcERpc3BsYXlUcmFuc2Zvcm0ueFBhbldvcmxkUG9zVG9WaWV3UG9zKAotICAgICAgICAgICAgZ29hbEZvY2FsUG9pbnRYV29ybGQsIGdvYWxGb2NhbFBvaW50WFZpZXcsIHZpZXdXaWR0aCk7Ci0gICAgICAgIHZwLnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseSh0ZW1wRGlzcGxheVRyYW5zZm9ybSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFpvb20gaW50byB0aGUgY3VycmVudCBzZWxlY3Rpb24uCi0gICAgICovCi0gICAgem9vbVRvU2VsZWN0aW9uOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbk9mSW50ZXJlc3QubGVuZ3RoKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBib3VuZHMgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5ib3VuZHM7Ci0gICAgICBpZiAoIWJvdW5kcy5yYW5nZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgd29ybGRDZW50ZXIgPSBib3VuZHMuY2VudGVyOwotICAgICAgdmFyIHZpZXdDZW50ZXIgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy53aWR0aCAvIDI7Ci0gICAgICB2YXIgYWRqdXN0ZWRXb3JsZFJhbmdlID0gYm91bmRzLnJhbmdlICogMS4yNTsKLSAgICAgIHZhciBuZXdTY2FsZSA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoIC8KLSAgICAgICAgICBhZGp1c3RlZFdvcmxkUmFuZ2U7Ci0gICAgICB2YXIgem9vbUluUmF0aW8gPSBuZXdTY2FsZSAvCi0gICAgICAgICAgdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uc2NhbGVYOwotCi0gICAgICB2YXIgYW5pbWF0aW9uID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uKAotICAgICAgICAgIHdvcmxkQ2VudGVyLCB2aWV3Q2VudGVyLAotICAgICAgICAgIHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblksCi0gICAgICAgICAgem9vbUluUmF0aW8pOwotICAgICAgdGhpcy52aWV3cG9ydF8ucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFBhbiB0aGUgdmlldyBzbyB0aGUgY3VycmVudCBzZWxlY3Rpb24gYmVjb21lcyB2aXNpYmxlLgotICAgICAqLwotICAgIHBhblRvU2VsZWN0aW9uOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdGlvbk9mSW50ZXJlc3QubGVuZ3RoKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBib3VuZHMgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2VsZWN0aW9uT2ZJbnRlcmVzdC5ib3VuZHM7Ci0gICAgICB2YXIgd29ybGRDZW50ZXIgPSBib3VuZHMuY2VudGVyOwotICAgICAgdmFyIHZpZXdXaWR0aCA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoOwotCi0gICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICAgIGlmIChmYWxzZSAmJiAhYm91bmRzLnJhbmdlKSB7Ci0gICAgICAgIGlmIChkdC54V29ybGRUb1ZpZXcoYm91bmRzLmNlbnRlcikgPCAwIHx8Ci0gICAgICAgICAgICBkdC54V29ybGRUb1ZpZXcoYm91bmRzLmNlbnRlcikgPiB2aWV3V2lkdGgpIHsKLSAgICAgICAgICB0ZW1wRGlzcGxheVRyYW5zZm9ybS5zZXQoZHQpOwotICAgICAgICAgIHRlbXBEaXNwbGF5VHJhbnNmb3JtLnhQYW5Xb3JsZFBvc1RvVmlld1BvcygKLSAgICAgICAgICAgICAgd29ybGRDZW50ZXIsICdjZW50ZXInLCB2aWV3V2lkdGgpOwotICAgICAgICAgIHZhciBkZWx0YVggPSB0ZW1wRGlzcGxheVRyYW5zZm9ybS5wYW5YIC0gZHQucGFuWDsKLSAgICAgICAgICB2YXIgYW5pbWF0aW9uID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKAotICAgICAgICAgICAgICBkZWx0YVgsIDApOwotICAgICAgICAgIHRoaXMudmlld3BvcnRfLnF1ZXVlRGlzcGxheVRyYW5zZm9ybUFuaW1hdGlvbihhbmltYXRpb24pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdGVtcERpc3BsYXlUcmFuc2Zvcm0uc2V0KGR0KTsKLSAgICAgIHRlbXBEaXNwbGF5VHJhbnNmb3JtLnhQYW5Xb3JsZEJvdW5kc0ludG9WaWV3KAotICAgICAgICAgIGJvdW5kcy5taW4sCi0gICAgICAgICAgYm91bmRzLm1heCwKLSAgICAgICAgICB2aWV3V2lkdGgpOwotICAgICAgdmFyIGRlbHRhWCA9IHRlbXBEaXNwbGF5VHJhbnNmb3JtLnBhblggLSBkdC5wYW5YOwotICAgICAgdmFyIGFuaW1hdGlvbiA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbigKLSAgICAgICAgICBkZWx0YVgsIDApOwotICAgICAgdGhpcy52aWV3cG9ydF8ucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7Ci0gICAgfSwKLQotICAgIG5hdlRvUG9zaXRpb246IGZ1bmN0aW9uKHVpU3RhdGUsIHNob3dOYXZMaW5lKSB7Ci0gICAgICB2YXIgbG9jYXRpb24gPSB1aVN0YXRlLmxvY2F0aW9uOwotICAgICAgdmFyIHNjYWxlWCA9IHVpU3RhdGUuc2NhbGVYOwotICAgICAgdmFyIHRyYWNrID0gbG9jYXRpb24uZ2V0Q29udGFpbmluZ1RyYWNrKHRoaXMudmlld3BvcnRfKTsKLQotICAgICAgdmFyIHdvcmxkQ2VudGVyID0gbG9jYXRpb24ueFdvcmxkOwotICAgICAgdmFyIHZpZXdDZW50ZXIgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy53aWR0aCAvIDU7Ci0gICAgICB2YXIgem9vbUluUmF0aW8gPSBzY2FsZVggLwotICAgICAgICAgIHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnNjYWxlWDsKLQotICAgICAgLy8gVmVydGljYWxseSBzY3JvbGwgc28gdHJhY2sgaXMgaW4gdmlldy4KLSAgICAgIHRyYWNrLnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTsKLQotICAgICAgLy8gUGVyZm9ybSB6b29tIGFuZCBwYW5YIGFuaW1hdGlvbi4KLSAgICAgIHZhciBhbmltYXRpb24gPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24oCi0gICAgICAgICAgd29ybGRDZW50ZXIsIHZpZXdDZW50ZXIsCi0gICAgICAgICAgdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSwKLSAgICAgICAgICB6b29tSW5SYXRpbyk7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTsKLQotICAgICAgaWYgKCFzaG93TmF2TGluZSkKLSAgICAgICAgcmV0dXJuOwotICAgICAgLy8gQWRkIGFuIFggTWFya2VyIEFubm90YXRpb24gYXQgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXAuCi0gICAgICBpZiAodGhpcy54TmF2U3RyaW5nTWFya2VyXykKLSAgICAgICAgdGhpcy5tb2RlbC5yZW1vdmVBbm5vdGF0aW9uKHRoaXMueE5hdlN0cmluZ01hcmtlcl8pOwotICAgICAgdGhpcy54TmF2U3RyaW5nTWFya2VyXyA9Ci0gICAgICAgICAgbmV3IHRyLm1vZGVsLlhNYXJrZXJBbm5vdGF0aW9uKHdvcmxkQ2VudGVyKTsKLSAgICAgIHRoaXMubW9kZWwuYWRkQW5ub3RhdGlvbih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKTsKLSAgICB9LAotCi0gICAgc2V0Q3VycmVudFNlbGVjdGlvbkFzSW50ZXJlc3RSYW5nZV86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGVjdGlvbkJvdW5kcyA9IHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uc2VsZWN0aW9uLmJvdW5kczsKLSAgICAgIGlmIChzZWxlY3Rpb25Cb3VuZHMuZW1wdHkpIHsKLSAgICAgICAgdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5yZXNldCgpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlmICh0aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlLm1pbiA9PSBzZWxlY3Rpb25Cb3VuZHMubWluICYmCi0gICAgICAgICAgdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5tYXggPT0gc2VsZWN0aW9uQm91bmRzLm1heCkKLSAgICAgICAgdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5yZXNldCgpOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlLnNldChzZWxlY3Rpb25Cb3VuZHMpOwotICAgIH0sCi0KLSAgICB0b2dnbGVIaWdoRGV0YWlsc186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy52aWV3cG9ydF8uaGlnaERldGFpbHMgPSAhdGhpcy52aWV3cG9ydF8uaGlnaERldGFpbHM7Ci0gICAgfSwKLQotICAgIGhpZGVEcmFnQm94XzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmRyYWdCb3hfLnN0eWxlLmxlZnQgPSAnLTEwMDBweCc7Ci0gICAgICB0aGlzLmRyYWdCb3hfLnN0eWxlLnRvcCA9ICctMTAwMHB4JzsKLSAgICAgIHRoaXMuZHJhZ0JveF8uc3R5bGUud2lkdGggPSAwOwotICAgICAgdGhpcy5kcmFnQm94Xy5zdHlsZS5oZWlnaHQgPSAwOwotICAgIH0sCi0KLSAgICBzZXREcmFnQm94UG9zaXRpb25fOiBmdW5jdGlvbih4U3RhcnQsIHlTdGFydCwgeEVuZCwgeUVuZCkgewotICAgICAgdmFyIGxvWSA9IE1hdGgubWluKHlTdGFydCwgeUVuZCk7Ci0gICAgICB2YXIgaGlZID0gTWF0aC5tYXgoeVN0YXJ0LCB5RW5kKTsKLSAgICAgIHZhciBsb1ggPSBNYXRoLm1pbih4U3RhcnQsIHhFbmQpOwotICAgICAgdmFyIGhpWCA9IE1hdGgubWF4KHhTdGFydCwgeEVuZCk7Ci0gICAgICB2YXIgbW9kZWxUcmFja1JlY3QgPSB0aGlzLm1vZGVsVHJhY2tfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIGRyYWdSZWN0ID0ge2xlZnQ6IGxvWCwgdG9wOiBsb1ksIHdpZHRoOiBoaVggLSBsb1gsIGhlaWdodDogaGlZIC0gbG9ZfTsKLQotICAgICAgZHJhZ1JlY3QucmlnaHQgPSBkcmFnUmVjdC5sZWZ0ICsgZHJhZ1JlY3Qud2lkdGg7Ci0gICAgICBkcmFnUmVjdC5ib3R0b20gPSBkcmFnUmVjdC50b3AgKyBkcmFnUmVjdC5oZWlnaHQ7Ci0KLSAgICAgIHZhciBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdCA9Ci0gICAgICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBjbGlwUmVjdCA9IHsKLSAgICAgICAgbGVmdDogbW9kZWxUcmFja0NvbnRhaW5lclJlY3QubGVmdCwKLSAgICAgICAgdG9wOiBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC50b3AsCi0gICAgICAgIHJpZ2h0OiBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5yaWdodCwKLSAgICAgICAgYm90dG9tOiBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5ib3R0b20KLSAgICAgIH07Ci0KLSAgICAgIHZhciBoZWFkaW5nV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSgKLSAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ2hlYWRpbmcnKSkud2lkdGg7Ci0gICAgICB2YXIgdHJhY2tUaXRsZVdpZHRoID0gcGFyc2VJbnQoaGVhZGluZ1dpZHRoKTsKLSAgICAgIGNsaXBSZWN0LmxlZnQgPSBjbGlwUmVjdC5sZWZ0ICsgdHJhY2tUaXRsZVdpZHRoOwotCi0gICAgICB2YXIgZmluYWxEcmFnQm94ID0gaW50ZXJzZWN0UmVjdF8oY2xpcFJlY3QsIGRyYWdSZWN0KTsKLQotICAgICAgdGhpcy5kcmFnQm94Xy5zdHlsZS5sZWZ0ID0gZmluYWxEcmFnQm94LmxlZnQgKyAncHgnOwotICAgICAgdGhpcy5kcmFnQm94Xy5zdHlsZS53aWR0aCA9IGZpbmFsRHJhZ0JveC53aWR0aCArICdweCc7Ci0gICAgICB0aGlzLmRyYWdCb3hfLnN0eWxlLnRvcCA9IGZpbmFsRHJhZ0JveC50b3AgKyAncHgnOwotICAgICAgdGhpcy5kcmFnQm94Xy5zdHlsZS5oZWlnaHQgPSBmaW5hbERyYWdCb3guaGVpZ2h0ICsgJ3B4JzsKLSAgICAgIHRoaXMuZHJhZ0JveF8uc3R5bGUud2hpdGVTcGFjZSA9ICdub3dyYXAnOwotCi0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgY2FudiA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzOwotICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICB2YXIgbG9XWCA9IGR0LnhWaWV3VG9Xb3JsZCgKLSAgICAgICAgICAobG9YIC0gY2Fudi5vZmZzZXRMZWZ0KSAqIHBpeGVsUmF0aW8pOwotICAgICAgdmFyIGhpV1ggPSBkdC54Vmlld1RvV29ybGQoCi0gICAgICAgICAgKGhpWCAtIGNhbnYub2Zmc2V0TGVmdCkgKiBwaXhlbFJhdGlvKTsKLQotICAgICAgdGhpcy5kcmFnQm94Xy50ZXh0Q29udGVudCA9IHRyLmIudW5pdHMudHNTdHJpbmcoKGhpV1ggLSBsb1dYKSk7Ci0KLSAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ3NlbGVjdGlvbkNoYW5naW5nJyk7Ci0gICAgICBlLmxvV1ggPSBsb1dYOwotICAgICAgZS5oaVdYID0gaGlXWDsKLSAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChlKTsKLSAgICB9LAotCi0gICAgb25HcmlkVG9nZ2xlXzogZnVuY3Rpb24obGVmdCkgewotICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8uc2VsZWN0aW9uOwotICAgICAgdmFyIHRiID0gbGVmdCA/IHNlbGVjdGlvbi5ib3VuZHMubWluIDogc2VsZWN0aW9uLmJvdW5kcy5tYXg7Ci0KLSAgICAgIC8vIFRvZ2dsZSB0aGUgZ3JpZCBvZmYgaWYgdGhlIGdyaWQgaXMgb24sIHRoZSBtYXJrZXIgcG9zaXRpb24gaXMgdGhlIHNhbWUKLSAgICAgIC8vIGFuZCB0aGUgc2FtZSBlbGVtZW50IGlzIHNlbGVjdGVkIChzYW1lIHRpbWViYXNlKS4KLSAgICAgIGlmICh0aGlzLnZpZXdwb3J0Xy5ncmlkRW5hYmxlZCAmJgotICAgICAgICAgIHRoaXMudmlld3BvcnRfLmdyaWRTaWRlID09PSBsZWZ0ICYmCi0gICAgICAgICAgdGhpcy52aWV3cG9ydF8uZ3JpZEluaXRpYWxUaW1lYmFzZSA9PT0gdGIpIHsKLSAgICAgICAgdGhpcy52aWV3cG9ydF8uZ3JpZHNpZGUgPSB1bmRlZmluZWQ7Ci0gICAgICAgIHRoaXMudmlld3BvcnRfLmdyaWRFbmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMudmlld3BvcnRfLmdyaWRJbml0aWFsVGltZWJhc2UgPSB1bmRlZmluZWQ7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgLy8gU2hpZnQgdGhlIHRpbWViYXNlIGxlZnQgdW50aWwgaXRzIGp1c3QgbGVmdCBvZiBtb2RlbF8uYm91bmRzLm1pbi4KLSAgICAgIHZhciBudW1JbnRlcnZhbHNTaW5jZVN0YXJ0ID0gTWF0aC5jZWlsKCh0YiAtIHRoaXMubW9kZWxfLmJvdW5kcy5taW4pIC8KLSAgICAgICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkU3RlcF8pOwotCi0gICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkRW5hYmxlZCA9IHRydWU7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkU2lkZSA9IGxlZnQ7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkSW5pdGlhbFRpbWViYXNlID0gdGI7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkVGltZWJhc2UgPSB0YiAtCi0gICAgICAgICAgKG51bUludGVydmFsc1NpbmNlU3RhcnQgKyAxKSAqIHRoaXMudmlld3BvcnRfLmdyaWRTdGVwXzsKLSAgICB9LAotCi0gICAgc3RvcmVMYXN0TW91c2VQb3NfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKLSAgICB9LAotCi0gICAgc3RvcmVMYXN0VG91Y2hQb3NpdGlvbnNfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLmxhc3RUb3VjaFZpZXdQb3NpdGlvbnNfID0gdGhpcy5leHRyYWN0UmVsYXRpdmVUb3VjaFBvc2l0aW9uc18oZSk7Ci0gICAgfSwKLQotICAgIGV4dHJhY3RSZWxhdGl2ZU1vdXNlUG9zaXRpb25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgY2FudiA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzOwotICAgICAgcmV0dXJuIHsKLSAgICAgICAgeDogZS5jbGllbnRYIC0gY2Fudi5vZmZzZXRMZWZ0LAotICAgICAgICB5OiBlLmNsaWVudFkgLSBjYW52Lm9mZnNldFRvcAotICAgICAgfTsKLSAgICB9LAotCi0gICAgZXh0cmFjdFJlbGF0aXZlVG91Y2hQb3NpdGlvbnNfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgY2FudiA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzOwotCi0gICAgICB2YXIgdG91Y2hlcyA9IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlLnRvdWNoZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdG91Y2hlcy5wdXNoKHsKLSAgICAgICAgICB4OiBlLnRvdWNoZXNbaV0uY2xpZW50WCAtIGNhbnYub2Zmc2V0TGVmdCwKLSAgICAgICAgICB5OiBlLnRvdWNoZXNbaV0uY2xpZW50WSAtIGNhbnYub2Zmc2V0VG9wCi0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgcmV0dXJuIHRvdWNoZXM7Ci0gICAgfSwKLQotICAgIHN0b3JlSW5pdGlhbE1vdXNlRG93blBvc186IGZ1bmN0aW9uKGUpIHsKLQotICAgICAgdmFyIHBvc2l0aW9uID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKLQotICAgICAgdGhpcy5tb3VzZVZpZXdQb3NBdE1vdXNlRG93bl8ueCA9IHBvc2l0aW9uLng7Ci0gICAgICB0aGlzLm1vdXNlVmlld1Bvc0F0TW91c2VEb3duXy55ID0gcG9zaXRpb24ueTsKLSAgICB9LAotCi0gICAgZm9jdXNFbGVtZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpCi0gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpOwotICAgICAgaWYgKHRoaXMuZm9jdXNFbGVtZW50LnRhYkluZGV4ID49IDApCi0gICAgICAgIHRoaXMuZm9jdXNFbGVtZW50LmZvY3VzKCk7Ci0gICAgfSwKLQotICAgIHN0b3JlSW5pdGlhbEludGVyYWN0aW9uUG9zaXRpb25zQW5kRm9jdXNfOiBmdW5jdGlvbihlKSB7Ci0KLSAgICAgIHRoaXMuc3RvcmVJbml0aWFsTW91c2VEb3duUG9zXyhlKTsKLSAgICAgIHRoaXMuc3RvcmVMYXN0TW91c2VQb3NfKGUpOwotCi0gICAgICB0aGlzLmZvY3VzRWxlbWVudHNfKCk7Ci0gICAgfSwKLQotICAgIG9uQmVnaW5QYW5TY2FuXzogZnVuY3Rpb24oZSkgewotICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydF87Ci0gICAgICB0aGlzLnZpZXdwb3J0RGlzcGxheVRyYW5zZm9ybUF0TW91c2VEb3duXyA9Ci0gICAgICAgICAgdnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uY2xvbmUoKTsKLSAgICAgIHRoaXMuaXNQYW5uaW5nQW5kU2Nhbm5pbmdfID0gdHJ1ZTsKLQotICAgICAgdGhpcy5zdG9yZUluaXRpYWxJbnRlcmFjdGlvblBvc2l0aW9uc0FuZEZvY3VzXyhlKTsKLSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICB9LAotCi0gICAgb25VcGRhdGVQYW5TY2FuXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKCF0aGlzLmlzUGFubmluZ0FuZFNjYW5uaW5nXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdmlld1dpZHRoID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMuY2xpZW50V2lkdGg7Ci0KLSAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLSAgICAgIHZhciB4RGVsdGFWaWV3ID0gcGl4ZWxSYXRpbyAqICh0aGlzLmxhc3RNb3VzZVZpZXdQb3NfLnggLQotICAgICAgICAgIHRoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fLngpOwotCi0gICAgICB2YXIgeURlbHRhID0gdGhpcy5sYXN0TW91c2VWaWV3UG9zXy55IC0KLSAgICAgICAgICB0aGlzLm1vdXNlVmlld1Bvc0F0TW91c2VEb3duXy55OwotCi0gICAgICB0ZW1wRGlzcGxheVRyYW5zZm9ybS5zZXQodGhpcy52aWV3cG9ydERpc3BsYXlUcmFuc2Zvcm1BdE1vdXNlRG93bl8pOwotICAgICAgdGVtcERpc3BsYXlUcmFuc2Zvcm0uaW5jcmVtZW50UGFuWEluVmlld1VuaXRzKHhEZWx0YVZpZXcpOwotICAgICAgdGVtcERpc3BsYXlUcmFuc2Zvcm0ucGFuWSAtPSB5RGVsdGE7Ci0gICAgICB0aGlzLnZpZXdwb3J0Xy5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGVtcERpc3BsYXlUcmFuc2Zvcm0pOwotCi0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotCi0gICAgICB0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTsKLSAgICB9LAotCi0gICAgb25FbmRQYW5TY2FuXzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5pc1Bhbm5pbmdBbmRTY2FubmluZ18gPSBmYWxzZTsKLQotICAgICAgdGhpcy5zdG9yZUxhc3RNb3VzZVBvc18oZSk7Ci0KLSAgICAgIGlmICghZS5pc0NsaWNrKQotICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfSwKLQotICAgIG9uQmVnaW5TZWxlY3Rpb25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgY2FudiA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzOwotICAgICAgdmFyIHJlY3QgPSB0aGlzLm1vZGVsVHJhY2tfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIGNhbnZSZWN0ID0gY2Fudi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLQotICAgICAgdmFyIGluc2lkZSA9IHJlY3QgJiYKLSAgICAgICAgICBlLmNsaWVudFggPj0gcmVjdC5sZWZ0ICYmCi0gICAgICAgICAgZS5jbGllbnRYIDwgcmVjdC5yaWdodCAmJgotICAgICAgICAgIGUuY2xpZW50WSA+PSByZWN0LnRvcCAmJgotICAgICAgICAgIGUuY2xpZW50WSA8IHJlY3QuYm90dG9tICYmCi0gICAgICAgICAgZS5jbGllbnRYID49IGNhbnZSZWN0LmxlZnQgJiYKLSAgICAgICAgICBlLmNsaWVudFggPCBjYW52UmVjdC5yaWdodDsKLQotICAgICAgaWYgKCFpbnNpZGUpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5kcmFnQmVnaW5FdmVudF8gPSBlOwotCi0gICAgICB0aGlzLnN0b3JlSW5pdGlhbEludGVyYWN0aW9uUG9zaXRpb25zQW5kRm9jdXNfKGUpOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0sCi0KLSAgICBvblVwZGF0ZVNlbGVjdGlvbl86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy5kcmFnQmVnaW5FdmVudF8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgLy8gVXBkYXRlIHRoZSBkcmFnIGJveAotICAgICAgdGhpcy5kcmFnQm94WFN0YXJ0XyA9IHRoaXMuZHJhZ0JlZ2luRXZlbnRfLmNsaWVudFg7Ci0gICAgICB0aGlzLmRyYWdCb3hYRW5kXyA9IGUuY2xpZW50WDsKLSAgICAgIHRoaXMuZHJhZ0JveFlTdGFydF8gPSB0aGlzLmRyYWdCZWdpbkV2ZW50Xy5jbGllbnRZOwotICAgICAgdGhpcy5kcmFnQm94WUVuZF8gPSBlLmNsaWVudFk7Ci0gICAgICB0aGlzLnNldERyYWdCb3hQb3NpdGlvbl8odGhpcy5kcmFnQm94WFN0YXJ0XywgdGhpcy5kcmFnQm94WVN0YXJ0XywKLSAgICAgICAgICB0aGlzLmRyYWdCb3hYRW5kXywgdGhpcy5kcmFnQm94WUVuZF8pOwotCi0gICAgfSwKLQotICAgIG9uRW5kU2VsZWN0aW9uXzogZnVuY3Rpb24oZSkgewotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotCi0gICAgICBpZiAoIXRoaXMuZHJhZ0JlZ2luRXZlbnRfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIC8vIFN0b3AgdGhlIGRyYWdnaW5nLgotICAgICAgdGhpcy5oaWRlRHJhZ0JveF8oKTsKLSAgICAgIHZhciBlRG93biA9IHRoaXMuZHJhZ0JlZ2luRXZlbnRfOwotICAgICAgdGhpcy5kcmFnQmVnaW5FdmVudF8gPSBudWxsOwotCi0gICAgICAvLyBGaWd1cmUgb3V0IGV4dGVudHMgb2YgdGhlIGRyYWcuCi0gICAgICB2YXIgbG9ZID0gTWF0aC5taW4oZURvd24uY2xpZW50WSwgZS5jbGllbnRZKTsKLSAgICAgIHZhciBoaVkgPSBNYXRoLm1heChlRG93bi5jbGllbnRZLCBlLmNsaWVudFkpOwotICAgICAgdmFyIGxvWCA9IE1hdGgubWluKGVEb3duLmNsaWVudFgsIGUuY2xpZW50WCk7Ci0gICAgICB2YXIgaGlYID0gTWF0aC5tYXgoZURvd24uY2xpZW50WCwgZS5jbGllbnRYKTsKLQotICAgICAgLy8gQ29udmVydCB0byB3b3JsZHNwYWNlLgotICAgICAgdmFyIGNhbnYgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhczsKLSAgICAgIHZhciB3b3JsZE9mZnNldCA9IGNhbnYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDsKLSAgICAgIHZhciBsb1ZYID0gbG9YIC0gd29ybGRPZmZzZXQ7Ci0gICAgICB2YXIgaGlWWCA9IGhpWCAtIHdvcmxkT2Zmc2V0OwotCi0gICAgICAvLyBGaWd1cmUgb3V0IHdoYXQgaGFzIGJlZW4gc2VsZWN0ZWQuCi0gICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgICAgdGhpcy5tb2RlbFRyYWNrXy5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCi0gICAgICAgICAgbG9WWCwgaGlWWCwgbG9ZLCBoaVksIHNlbGVjdGlvbik7Ci0KLSAgICAgIC8vIEFjdGl2YXRlIHRoZSBuZXcgc2VsZWN0aW9uLgotICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXy5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsZWN0aW9uKTsKLSAgICB9LAotCi0gICAgb25CZWdpblpvb21fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLmlzWm9vbWluZ18gPSB0cnVlOwotCi0gICAgICB0aGlzLnN0b3JlSW5pdGlhbEludGVyYWN0aW9uUG9zaXRpb25zQW5kRm9jdXNfKGUpOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0sCi0KLSAgICBvblVwZGF0ZVpvb21fOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoIXRoaXMuaXNab29taW5nXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgdmFyIG5ld1Bvc2l0aW9uID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKLQotICAgICAgdmFyIHpvb21TY2FsZVZhbHVlID0gMSArICh0aGlzLmxhc3RNb3VzZVZpZXdQb3NfLnkgLQotICAgICAgICAgIG5ld1Bvc2l0aW9uLnkpICogMC4wMTsKLQotICAgICAgdGhpcy56b29tQnlfKHpvb21TY2FsZVZhbHVlLCBmYWxzZSk7Ci0gICAgICB0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTsKLSAgICB9LAotCi0gICAgb25FbmRab29tXzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5pc1pvb21pbmdfID0gZmFsc2U7Ci0KLSAgICAgIGlmICghZS5pc0NsaWNrKQotICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfSwKLQotICAgIGNvbXB1dGVUb3VjaENlbnRlcl86IGZ1bmN0aW9uKHBvc2l0aW9ucykgewotICAgICAgdmFyIHhTdW0gPSAwOwotICAgICAgdmFyIHlTdW0gPSAwOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3NpdGlvbnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgeFN1bSArPSBwb3NpdGlvbnNbaV0ueDsKLSAgICAgICAgeVN1bSArPSBwb3NpdGlvbnNbaV0ueTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB7Ci0gICAgICAgIHg6IHhTdW0gLyBwb3NpdGlvbnMubGVuZ3RoLAotICAgICAgICB5OiB5U3VtIC8gcG9zaXRpb25zLmxlbmd0aAotICAgICAgfTsKLSAgICB9LAotCi0gICAgY29tcHV0ZVRvdWNoU3Bhbl86IGZ1bmN0aW9uKHBvc2l0aW9ucykgewotICAgICAgdmFyIHhNaW4gPSBOdW1iZXIuTUFYX1ZBTFVFOwotICAgICAgdmFyIHlNaW4gPSBOdW1iZXIuTUFYX1ZBTFVFOwotICAgICAgdmFyIHhNYXggPSBOdW1iZXIuTUlOX1ZBTFVFOwotICAgICAgdmFyIHlNYXggPSBOdW1iZXIuTUlOX1ZBTFVFOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3NpdGlvbnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgeE1pbiA9IE1hdGgubWluKHhNaW4sIHBvc2l0aW9uc1tpXS54KTsKLSAgICAgICAgeU1pbiA9IE1hdGgubWluKHlNaW4sIHBvc2l0aW9uc1tpXS55KTsKLSAgICAgICAgeE1heCA9IE1hdGgubWF4KHhNYXgsIHBvc2l0aW9uc1tpXS54KTsKLSAgICAgICAgeU1heCA9IE1hdGgubWF4KHlNYXgsIHBvc2l0aW9uc1tpXS55KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBNYXRoLnNxcnQoKHhNaW4gLSB4TWF4KSAqICh4TWluIC0geE1heCkgKwotICAgICAgICAgICh5TWluIC0geU1heCkgKiAoeU1pbiAtIHlNYXgpKTsKLSAgICB9LAotCi0gICAgb25VcGRhdGVUcmFuc2Zvcm1Gb3JUb3VjaF86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBuZXdQb3NpdGlvbnMgPSB0aGlzLmV4dHJhY3RSZWxhdGl2ZVRvdWNoUG9zaXRpb25zXyhlKTsKLSAgICAgIHZhciBjdXJyZW50UG9zaXRpb25zID0gdGhpcy5sYXN0VG91Y2hWaWV3UG9zaXRpb25zXzsKLQotICAgICAgdmFyIG5ld0NlbnRlciA9IHRoaXMuY29tcHV0ZVRvdWNoQ2VudGVyXyhuZXdQb3NpdGlvbnMpOwotICAgICAgdmFyIGN1cnJlbnRDZW50ZXIgPSB0aGlzLmNvbXB1dGVUb3VjaENlbnRlcl8oY3VycmVudFBvc2l0aW9ucyk7Ci0KLSAgICAgIHZhciBuZXdTcGFuID0gdGhpcy5jb21wdXRlVG91Y2hTcGFuXyhuZXdQb3NpdGlvbnMpOwotICAgICAgdmFyIGN1cnJlbnRTcGFuID0gdGhpcy5jb21wdXRlVG91Y2hTcGFuXyhjdXJyZW50UG9zaXRpb25zKTsKLQotICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydF87Ci0gICAgICB2YXIgdmlld1dpZHRoID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMuY2xpZW50V2lkdGg7Ci0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0KLSAgICAgIHZhciB4RGVsdGEgPSBwaXhlbFJhdGlvICogKG5ld0NlbnRlci54IC0gY3VycmVudENlbnRlci54KTsKLSAgICAgIHZhciB5RGVsdGEgPSBuZXdDZW50ZXIueSAtIGN1cnJlbnRDZW50ZXIueTsKLSAgICAgIHZhciB6b29tU2NhbGVWYWx1ZSA9IGN1cnJlbnRTcGFuID4gMTAgPyBuZXdTcGFuIC8gY3VycmVudFNwYW4gOiAxOwotCi0gICAgICB2YXIgdmlld0ZvY3VzID0gcGl4ZWxSYXRpbyAqIG5ld0NlbnRlci54OwotICAgICAgdmFyIHdvcmxkRm9jdXMgPSB2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS54Vmlld1RvV29ybGQodmlld0ZvY3VzKTsKLQotICAgICAgdGVtcERpc3BsYXlUcmFuc2Zvcm0uc2V0KHZwLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtKTsKLSAgICAgIHRlbXBEaXNwbGF5VHJhbnNmb3JtLnNjYWxlWCAqPSB6b29tU2NhbGVWYWx1ZTsKLSAgICAgIHRlbXBEaXNwbGF5VHJhbnNmb3JtLnhQYW5Xb3JsZFBvc1RvVmlld1BvcygKLSAgICAgICAgICB3b3JsZEZvY3VzLCB2aWV3Rm9jdXMsIHZpZXdXaWR0aCk7Ci0gICAgICB0ZW1wRGlzcGxheVRyYW5zZm9ybS5pbmNyZW1lbnRQYW5YSW5WaWV3VW5pdHMoeERlbHRhKTsKLSAgICAgIHRlbXBEaXNwbGF5VHJhbnNmb3JtLnBhblkgLT0geURlbHRhOwotICAgICAgdnAuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KHRlbXBEaXNwbGF5VHJhbnNmb3JtKTsKLSAgICAgIHRoaXMuc3RvcmVMYXN0VG91Y2hQb3NpdGlvbnNfKGUpOwotICAgIH0sCi0KLSAgICBpbml0SGludFRleHRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuaGludFRleHRCb3hfID0gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgdGhpcy5oaW50VGV4dEJveF8uY2xhc3NOYW1lID0gJ2hpbnQtdGV4dCc7Ci0gICAgICB0aGlzLmhpbnRUZXh0Qm94Xy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhpbnRUZXh0Qm94Xyk7Ci0KLSAgICAgIHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgc2hvd0hpbnRUZXh0XzogZnVuY3Rpb24odGV4dCkgewotICAgICAgaWYgKHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XykgewotICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0Xyk7Ci0gICAgICAgIHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XyA9IHVuZGVmaW5lZDsKLSAgICAgIH0KLSAgICAgIHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XyA9IHNldFRpbWVvdXQoCi0gICAgICAgICAgdGhpcy5oaWRlSGludFRleHRfLmJpbmQodGhpcyksIDEwMDApOwotICAgICAgdGhpcy5oaW50VGV4dEJveF8udGV4dENvbnRlbnQgPSB0ZXh0OwotICAgICAgdGhpcy5oaW50VGV4dEJveF8uc3R5bGUuZGlzcGxheSA9ICcnOwotICAgIH0sCi0KLSAgICBoaWRlSGludFRleHRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuaGludFRleHRCb3hfLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgVGltZWxpbmVUcmFja1ZpZXc6IFRpbWVsaW5lVHJhY2tWaWV3Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OTA4NjlmLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV90cmFja192aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOwotICB2YXIgVGFzayA9IHRyLmIuVGFzazsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBudW1fdGhyZWFkcyA9IDUwMDsKLSAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcDEwMCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMDApOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fdGhyZWFkczsgaSsrKSB7Ci0gICAgICAgIHZhciB0ID0gcDEwMC5nZXRPckNyZWF0ZVRocmVhZCgxMDEgKyBpKTsKLSAgICAgICAgaWYgKGkgJSAyID09IDApIHsKLSAgICAgICAgICB0LnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ2EnLCAxMDApOwotICAgICAgICAgIHQuc2xpY2VHcm91cC5lbmRTbGljZSgxMTApOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHQuc2xpY2VHcm91cC5iZWdpblNsaWNlKCdjYXQnLCAnYicsIDUwKTsKLSAgICAgICAgICB0LnNsaWNlR3JvdXAuZW5kU2xpY2UoMTIwKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0pOwotCi0gICAgdmFyIHRpbWVsaW5lID0gbmV3IHRyLmMuVGltZWxpbmVUcmFja1ZpZXcoKTsKLSAgICB0aW1lbGluZS5tb2RlbCA9IG1vZGVsOwotICAgIHRpbWVsaW5lLmZvY3VzRWxlbWVudCA9IHRpbWVsaW5lOwotICAgIHRpbWVsaW5lLnRhYkluZGV4ID0gMDsKLSAgICB0aW1lbGluZS5zdHlsZS5tYXhIZWlnaHQgPSAnNjAwcHgnOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lbGluZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2FkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2snLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0KLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKLSAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7Ci0gICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCi0gICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2InLCAwLCAxLjEsIHt9LCAyLjgpKTsKLQotICAgIHZhciB0MWFzZyA9IHQxLmFzeW5jU2xpY2VHcm91cDsKLSAgICB0MWFzZy5zbGljZXMucHVzaCgKLSAgICAgICAgdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VOYW1lZCgnYScsIDAsIDEsIHQxLCB0MSkpOwotICAgIHQxYXNnLnNsaWNlcy5wdXNoKAotICAgICAgICB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZU5hbWVkKCdiJywgMSwgMiwgdDEsIHQxKSk7Ci0KLSAgICB2YXIgdGltZWxpbmUgPSBuZXcgdHIuYy5UaW1lbGluZVRyYWNrVmlldygpOwotICAgIHRpbWVsaW5lLm1vZGVsID0gbW9kZWw7Ci0KLSAgICB2YXIgZXhwZWN0ZWQgPSBbdDFhc2cuc2xpY2VzWzBdLAotICAgICAgICAgICAgICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXV07Ci0gICAgdmFyIHJlc3VsdCA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHZhciBmaWx0ZXJUYXNrID0gdGltZWxpbmUuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzaygKLSAgICAgICAgbmV3IHRyLmMuVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdhJyksIHJlc3VsdCk7Ci0gICAgVGFzay5SdW5TeW5jaHJvbm91c2x5KGZpbHRlclRhc2spOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLCBleHBlY3RlZFswXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXSwgZXhwZWN0ZWRbMV0pOwotCi0gICAgdmFyIGV4cGVjdGVkID0gW3QxYXNnLnNsaWNlc1sxXSwKLSAgICAgICAgICAgICAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMV1dOwotICAgIHZhciByZXN1bHQgPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICB2YXIgZmlsdGVyVGFzayA9IHRpbWVsaW5lLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2soCi0gICAgICAgIG5ldyB0ci5jLlRpdGxlT3JDYXRlZ29yeUZpbHRlcignYicpLCByZXN1bHQpOwotICAgIFRhc2suUnVuU3luY2hyb25vdXNseShmaWx0ZXJUYXNrKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXSwgZXhwZWN0ZWRbMF0pOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0sIGV4cGVjdGVkWzFdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZW1wdHlUaHJlYWRzRGVsZXRlZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLQotICAgIHZhciB0aW1lbGluZSA9IG5ldyB0ci5jLlRpbWVsaW5lVHJhY2tWaWV3KCk7Ci0gICAgdGltZWxpbmUubW9kZWwgPSBtb2RlbDsKLQotICAgIGFzc2VydC5pc0ZhbHNlKHRpbWVsaW5lLmhhc1Zpc2libGVDb250ZW50KTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmlsdGVyZWRDb3VudGVycycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBjMSA9IG1vZGVsLmtlcm5lbC5nZXRPckNyZWF0ZUNwdSgwKTsKLSAgICBjMS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsICdiJyk7Ci0KLSAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgdmFyIGN0ciA9IHAxLmdldE9yQ3JlYXRlQ291bnRlcignJywgJ2EnKTsKLSAgICB2YXIgc2VyaWVzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ2EnLCAwKTsKLSAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCAxKTsKLSAgICBjdHIuYWRkU2VyaWVzKHNlcmllcyk7Ci0KLSAgICB2YXIgdGltZWxpbmUgPSBuZXcgdHIuYy5UaW1lbGluZVRyYWNrVmlldygpOwotICAgIHRpbWVsaW5lLm1vZGVsID0gbW9kZWw7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKHRpbWVsaW5lLmhhc1Zpc2libGVDb250ZW50KTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmlsdGVyZWRDcHVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIGMxID0gbW9kZWwua2VybmVsLmdldE9yQ3JlYXRlQ3B1KDEpOwotICAgIGMxLmdldE9yQ3JlYXRlQ291bnRlcignJywgJ2EnKTsKLQotICAgIHZhciB0aW1lbGluZSA9IG5ldyB0ci5jLlRpbWVsaW5lVHJhY2tWaWV3KCk7Ci0gICAgdGltZWxpbmUubW9kZWwgPSBtb2RlbDsKLQotICAgIGFzc2VydC5pc1RydWUodGltZWxpbmUuaGFzVmlzaWJsZUNvbnRlbnQpOwotICB9KTsKLQotICB0ZXN0KCdmaWx0ZXJlZFByb2Nlc3NlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICBwMS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsICdhJyk7Ci0KLSAgICB2YXIgdGltZWxpbmUgPSBuZXcgdHIuYy5UaW1lbGluZVRyYWNrVmlldygpOwotICAgIHRpbWVsaW5lLm1vZGVsID0gbW9kZWw7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKHRpbWVsaW5lLmhhc1Zpc2libGVDb250ZW50KTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmlsdGVyZWRUaHJlYWRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKHRyLmMudGVzdF91dGlscy5uZXdTbGljZSgwLCAxKSk7Ci0KLSAgICB2YXIgdGltZWxpbmUgPSBuZXcgdHIuYy5UaW1lbGluZVRyYWNrVmlldygpOwotICAgIHRpbWVsaW5lLm1vZGVsID0gbW9kZWw7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKHRpbWVsaW5lLmhhc1Zpc2libGVDb250ZW50KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW50ZXJlc3RSYW5nZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYyOSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzMSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzNCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgICBdOwotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0cmFja1ZpZXcgPSBuZXcgdHIuYy5UaW1lbGluZVRyYWNrVmlldygpOwotICAgIHRyYWNrVmlldy5tb2RlbCA9IG1vZGVsOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0cmFja1ZpZXcpOwotCi0gICAgdmFyIHNsaWNlID0gbW9kZWwucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXS5zbGljZUdyb3VwLnNsaWNlc1syXTsKLSAgICB0cmFja1ZpZXcudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5zZXRNaW5BbmRNYXgoc2xpY2Uuc3RhcnQsIHNsaWNlLmVuZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2VtcHR5SW50ZXJlc3RSYW5nZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYyOSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzMSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzNCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgICBdOwotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0cmFja1ZpZXcgPSBuZXcgdHIuYy5UaW1lbGluZVRyYWNrVmlldygpOwotICAgIHRyYWNrVmlldy5tb2RlbCA9IG1vZGVsOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0cmFja1ZpZXcpOwotICAgIHRyYWNrVmlldy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLnJlc2V0KCk7Ci0gIH0pOwotCi0KLSAgdGVzdCgndGhpbm5lc3RJbnRlcmVzdFJhbmdlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNjI5LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNjMxLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNjM0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQotICAgIF07Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgdmFyIHRyYWNrVmlldyA9IG5ldyB0ci5jLlRpbWVsaW5lVHJhY2tWaWV3KCk7Ci0gICAgdHJhY2tWaWV3Lm1vZGVsID0gbW9kZWw7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRyYWNrVmlldyk7Ci0gICAgdHJhY2tWaWV3LnZpZXdwb3J0LmludGVyZXN0UmFuZ2UucmVzZXQoKTsKLQotICAgIHZhciBzbGljZSA9IG1vZGVsLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M10uc2xpY2VHcm91cC5zbGljZXNbMl07Ci0gICAgdHJhY2tWaWV3LnZpZXdwb3J0LmludGVyZXN0UmFuZ2Uuc2V0TWluQW5kTWF4KHNsaWNlLnN0YXJ0LCBzbGljZS5zdGFydCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV92aWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNlNWQ5ZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdmlldy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwyMTAgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi14LXRpbWVsaW5lLXZpZXcgewotICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gIGN1cnNvcjogZGVmYXVsdDsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKLSAgcGFkZGluZzogMDsKLX0KLQoteC10aW1lbGluZS12aWV3ID4gLmNvbnRyb2wgPiAudGl0bGUgewotICBmb250LXNpemU6IDE0cHg7Ci0gIGhlaWdodDogMjJweDsKLSAgcGFkZGluZy1sZWZ0OiAycHg7Ci0gIHBhZGRpbmctcmlnaHQ6IDhweDsKLSAgcGFkZGluZy10b3A6IDJweDsKLSAgZmxleDogMSAwIGF1dG87Ci19Ci0KLXgtdGltZWxpbmUtdmlldyA+IC5jb250cm9sIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsKLSAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgMTAwJSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tKCNFNUU1RTUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvKCNEMUQxRDEpKTsKLSAgZmxleDogMCAwIGF1dG87Ci0gIG92ZXJmbG93LXg6IGF1dG87Ci19Ci0KLXgtdGltZWxpbmUtdmlldyA+IC5jb250cm9sID4gLmJhciB7Ci0gIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLXgtdGltZWxpbmUtdmlldyA+IC5jb250cm9sOjotd2Via2l0LXNjcm9sbGJhcnsKLSAgaGVpZ2h0OiAwcHg7Ci19Ci0KLXgtdGltZWxpbmUtdmlldyA+IC5jb250cm9sID4gLmJhciA+ICNyaWdodC1jb250cm9scyB7Ci0gIG1hcmdpbi1sZWZ0OiBhdXRvOwotfQotCi14LXRpbWVsaW5lLXZpZXcgPiAuY29udHJvbCA+ICNjb2xsYXBzaW5nLWNvbnRyb2xzIHsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotfQotCi14LXRpbWVsaW5lLXZpZXcgPiAuY29udHJvbCAuY29udHJvbHMgewotICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gIGZsZXg6IDAgMCBhdXRvOwotfQotCi14LXRpbWVsaW5lLXZpZXcgPiAuY29udHJvbCA+IC5iYXIgPiBzcGFuIHsKLSAgcGFkZGluZy1sZWZ0OiA1cHg7Ci0gIHBhZGRpbmctcmlnaHQ6IDEwcHg7Ci19Ci0KLXgtdGltZWxpbmUtdmlldyA+IC5jb250cm9sID4gLmJhciA+IC5jb250cm9scyBidXR0b24sCi14LXRpbWVsaW5lLXZpZXcgPiAuY29udHJvbCA+IC5iYXIgPiAuY29udHJvbHMgbGFiZWwsCi14LXRpbWVsaW5lLXZpZXcgPiAuY29udHJvbCA+IC5iYXIgPiAuY29udHJvbHMgdHItYi11aS1kcm9wZG93biB7Ci0gIGZvbnQtc2l6ZTogMTRweDsKLSAgbWFyZ2luOiAxcHggMnB4IDFweCAycHg7Ci19Ci0KLXgtdGltZWxpbmUtdmlldyA+IC5jb250cm9sID4gLmJhciA+IC5zcGFjZXIgewotICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotfQotCi14LXRpbWVsaW5lLXZpZXcgPiBtaWRkbGUtY29udGFpbmVyIHsKLSAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKLSAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93OwotICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzhlOGU4ZTsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICBtaW4taGVpZ2h0OiAwOwotfQotCi14LXRpbWVsaW5lLXZpZXcgPiBtaWRkbGUtY29udGFpbmVyID4gdHJhY2stdmlldy1jb250YWluZXIgewotICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gIG1pbi1oZWlnaHQ6IDA7Ci0gIG1pbi13aWR0aDogMDsKLX0KLQoteC10aW1lbGluZS12aWV3ID4gbWlkZGxlLWNvbnRhaW5lciA+IHRyYWNrLXZpZXctY29udGFpbmVyID4gKiB7Ci0gIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci19Ci0KLXgtdGltZWxpbmUtdmlldyA+IG1pZGRsZS1jb250YWluZXIgPiB4LXRpbWVsaW5lLXZpZXctc2lkZS1wYW5lbC1jb250YWluZXIgewotICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOwotfQotCi14LXRpbWVsaW5lLXZpZXcgPiB4LWRyYWctaGFuZGxlIHsKLSAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKLX0KLQoteC10aW1lbGluZS12aWV3ID4gdHItYy1hLWFuYWx5c2lzLXZpZXcgewotICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOwotfQotCi14LXRpbWVsaW5lLXZpZXcgLnNlbGVjdGlvbiB7Ci0gIG1hcmdpbjogMnB4OwotfQotCi14LXRpbWVsaW5lLXZpZXcgLnNlbGVjdGlvbiB1bCB7Ci0gIG1hcmdpbjogMDsKLX0KLQotLmJ1dHRvbiB7Ci0gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7Ci0gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTsKLSAgY29sb3I6IHJnYmEoMCwwLDAsMC44KTsKLSAgZm9udC1zaXplOiAxNHB4OwotICBoZWlnaHQ6IDE5cHg7Ci0gIG1hcmdpbjogMXB4OwotICBtaW4td2lkdGg6IDIzcHg7Ci0gIHRleHQtYWxpZ246IGNlbnRlcjsKLX0KLQoteC10aW1lbGluZS12aWV3ID4gLmNvbnRyb2wgPiAuYmFyID4gLmNvbnRyb2xzIHRyLWItdWktZHJvcGRvd24gewotICBmb250LXNpemU6IDEycHg7Ci0gIGhlaWdodDogMTlweDsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKLX0KLQotLmJ1dHRvbjpob3ZlciB7Ci0gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKLSAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjgpOwotICBib3gtc2hhZG93OiAwIDAgLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjQpOwotICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxKTsKLX0KLQotLnZpZXctaW5mby1idXR0b24gewotICBwYWRkaW5nLWxlZnQ6IDRweDsKLSAgcGFkZGluZy1yaWdodDogNHB4OwotICB3aWR0aDogYXV0bzsKLX0KLQotLnZpZXctaW5mby1idXR0b246aG92ZXIgewotICBib3JkZXI6IHNvbGlkIDFweDsKLX0KLQotLm1ldGFkYXRhLWRpYWxvZy10ZXh0IHsKLSAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLSAgb3ZlcmZsb3c6IGF1dG87Ci0gIHdoaXRlLXNwYWNlOiBwcmU7Ci19Ci0KLS52aWV3LWhlbHAtdGV4dCB7Ci0gIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICB3aWR0aDogNzAwcHg7Ci19Ci0udmlldy1oZWxwLXRleHQgLmNvbHVtbiB7Ci0gIHdpZHRoOiA1MCU7Ci19Ci0udmlldy1oZWxwLXRleHQgaDIgewotICBmb250LXNpemU6IDEuMmVtOwotICBtYXJnaW46IDA7Ci0gIG1hcmdpbi10b3A6IDVweDsKLSAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotLnZpZXctaGVscC10ZXh0IGgzIHsKLSAgbWFyZ2luOiAwOwotICBtYXJnaW4tbGVmdDogMTI2cHg7Ci0gIG1hcmdpbi10b3A6IDEwcHg7Ci19Ci0udmlldy1oZWxwLXRleHQgLnBhaXIgewotICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7Ci0gIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLX0KLS52aWV3LWhlbHAtdGV4dCAuY29tbWFuZCB7Ci0gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci0gIG1hcmdpbi1yaWdodDogNXB4OwotICB0ZXh0LWFsaWduOiByaWdodDsKLSAgd2lkdGg6IDE1MHB4OwotfQotLnZpZXctaGVscC10ZXh0IC5hY3Rpb24gewotICBmb250LXNpemU6IDAuOWVtOwotICB0ZXh0LWFsaWduOiBsZWZ0OwotICB3aWR0aDogMjAwcHg7Ci19Ci0udmlldy1oZWxwLXRleHQgLm1vdXNlLW1vZGUtaWNvbiB7Ci0gIGJvcmRlcjogMXB4IHNvbGlkICM4ODg7Ci0gIGJvcmRlci1yYWRpdXM6IDNweDsKLSAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsMCwwLDAuMyk7Ci0gIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgaGVpZ2h0OiAyNnB4OwotICBtYXJnaW4tcmlnaHQ6IDFweDsKLSAgcG9zaXRpb246IHJlbGF0aXZlOwotICB0b3A6IDRweDsKLSAgd2lkdGg6IDI3cHg7Ci0gIHpvb206IDAuNzU7Ci19Ci0udmlldy1oZWxwLXRleHQgLm1vdXNlLW1vZGUtaWNvbi5wYW4tbW9kZSB7Ci0gIGJhY2tncm91bmQtcG9zaXRpb246IC0xcHggLTExcHg7Ci19Ci0udmlldy1oZWxwLXRleHQgLm1vdXNlLW1vZGUtaWNvbi5zZWxlY3QtbW9kZSB7Ci0gIGJhY2tncm91bmQtcG9zaXRpb246IC0xcHggLTQxcHg7Ci19Ci0udmlldy1oZWxwLXRleHQgLm1vdXNlLW1vZGUtaWNvbi56b29tLW1vZGUgewotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXB4IC03MXB4OwotfQotLnZpZXctaGVscC10ZXh0IC5tb3VzZS1tb2RlLWljb24udGltaW5nLW1vZGUgewotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXB4IC0xMDFweDsKLX0KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0NmMyYWYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvYmFzZS91aS9jb21tb24uY3NzIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlldy5jc3MiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZG9tX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvb3ZlcmxheS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kcm9wZG93bi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kcmFnX2hhbmRsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2Zhdmljb25zLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2ZpbmRfY29udHJvbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maW5kX2NvbnRyb2xsZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb25fY29udHJvbGxlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zY3JpcHRpbmdfY29udHJvbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zY3JpcHRpbmdfY29udHJvbGxlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyLmh0bWwiPgotCi08dGVtcGxhdGUgaWQ9InRpbWVsaW5lLXZpZXctdGVtcGxhdGUiPgotICA8ZGl2IGNsYXNzPSJjb250cm9sIj4KLSAgICA8ZGl2IGNsYXNzPSJiYXIiPgotICAgICAgPGRpdiBpZD0ibGVmdC1jb250cm9scyIgY2xhc3M9ImNvbnRyb2xzIj48L2Rpdj4KLSAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5eX148L2Rpdj4KLSAgICAgIDxkaXYgaWQ9InJpZ2h0LWNvbnRyb2xzIiBjbGFzcz0iY29udHJvbHMiPjwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaXYgaWQ9ImNvbGxhcHNpbmctY29udHJvbHMiIGNsYXNzPSJjb250cm9scyI+PC9kaXY+Ci0gIDwvZGl2PgotICA8bWlkZGxlLWNvbnRhaW5lcj4KLSAgICA8dHJhY2stdmlldy1jb250YWluZXI+PC90cmFjay12aWV3LWNvbnRhaW5lcj4KLSAgICA8dHItYy1zaWRlLXBhbmVsLWNvbnRhaW5lcj48L3RyLWMtc2lkZS1wYW5lbC1jb250YWluZXI+Ci0gIDwvbWlkZGxlLWNvbnRhaW5lcj4KLSAgPHgtZHJhZy1oYW5kbGU+PC94LWRyYWctaGFuZGxlPgotICA8dHItYy1hLWFuYWx5c2lzLXZpZXcgaWQ9ImFuYWx5c2lzIj48L3RyLWMtYS1hbmFseXNpcy12aWV3PgotPC90ZW1wbGF0ZT4KLQotPHRlbXBsYXRlIGlkPSJoZWxwLWJ0bi10ZW1wbGF0ZSI+Ci0gIDxkaXYgY2xhc3M9ImJ1dHRvbiB2aWV3LWhlbHAtYnV0dG9uIj4/PC9kaXY+Ci0gIDxkaXYgY2xhc3M9InZpZXctaGVscC10ZXh0Ij4KLSAgICA8ZGl2IGNsYXNzPSJjb2x1bW4gbGVmdCI+Ci0gICAgICA8aDI+TmF2aWdhdGlvbjwvaDI+Ci0gICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KLSAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+dy9zPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+Wm9vbSBpbi9vdXQgKCtzaGlmdDogZmFzdGVyKTwvZGl2PgotICAgICAgPC9kaXY+Ci0KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5hL2Q8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5QYW4gbGVmdC9yaWdodCAoK3NoaWZ0OiBmYXN0ZXIpPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPiZyYXJyOy9zaGlmdC1UQUI8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5TZWxlY3QgcHJldmlvdXMgZXZlbnQ8L2Rpdj4KLSAgICAgIDwvZGl2PgotCi0gICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KLSAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+JmxhcnI7L1RBQjwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlNlbGVjdCBuZXh0IGV2ZW50PC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGgyPk1vdXNlIENvbnRyb2xzPC9oMj4KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5jbGljazwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlNlbGVjdCBldmVudDwvZGl2PgotICAgICAgPC9kaXY+Ci0gICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KLSAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+YWx0LW1vdXNld2hlZWw8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5ab29tIGluL291dDwvZGl2PgotICAgICAgPC9kaXY+Ci0KLSAgICAgIDxoMz4KLSAgICAgICAgPHNwYW4gY2xhc3M9J21vdXNlLW1vZGUtaWNvbiBzZWxlY3QtbW9kZSc+PC9zcGFuPgotICAgICAgICBTZWxlY3QgbW9kZQotICAgICAgPC9oMz4KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5kcmFnPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+Qm94IHNlbGVjdDwvZGl2PgotICAgICAgPC9kaXY+Ci0KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5kb3VibGUgY2xpY2s8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5TZWxlY3QgYWxsIGV2ZW50cyB3aXRoIHNhbWUgdGl0bGU8L2Rpdj4KLSAgICAgIDwvZGl2PgotCi0gICAgICA8aDM+Ci0gICAgICAgIDxzcGFuIGNsYXNzPSdtb3VzZS1tb2RlLWljb24gcGFuLW1vZGUnPjwvc3Bhbj4KLSAgICAgICAgUGFuIG1vZGUKLSAgICAgIDwvaDM+Ci0gICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KLSAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ZHJhZzwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlBhbiB0aGUgdmlldzwvZGl2PgotICAgICAgPC9kaXY+Ci0KLSAgICAgIDxoMz4KLSAgICAgICAgPHNwYW4gY2xhc3M9J21vdXNlLW1vZGUtaWNvbiB6b29tLW1vZGUnPjwvc3Bhbj4KLSAgICAgICAgWm9vbSBtb2RlCi0gICAgICA8L2gzPgotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmRyYWc8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5ab29tIGluL291dCBieSBkcmFnZ2luZyB1cC9kb3duPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGgzPgotICAgICAgICA8c3BhbiBjbGFzcz0nbW91c2UtbW9kZS1pY29uIHRpbWluZy1tb2RlJz48L3NwYW4+Ci0gICAgICAgIFRpbWluZyBtb2RlCi0gICAgICA8L2gzPgotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmRyYWc8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5DcmVhdGUgb3IgbW92ZSBtYXJrZXJzPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmRvdWJsZSBjbGljazwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlNldCBtYXJrZXIgcmFuZ2UgdG8gc2xpY2U8L2Rpdj4KLSAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBjbGFzcz0iY29sdW1uIHJpZ2h0Ij4KLSAgICAgIDxoMj5HZW5lcmFsPC9oMj4KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz4xLTQ8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5Td2l0Y2ggbW91c2UgbW9kZTwvZGl2PgotICAgICAgPC9kaXY+Ci0KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5zaGlmdDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPkhvbGQgZm9yIHRlbXBvcmFyeSBzZWxlY3Q8L2Rpdj4KLSAgICAgIDwvZGl2PgotCi0gICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KLSAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+c3BhY2U8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5Ib2xkIGZvciB0ZW1wb3JhcnkgcGFuPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPjxzcGFuIGNsYXNzPSdtb2QnPjwvc3Bhbj48L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5Ib2xkIGZvciB0ZW1wb3Jhcnkgem9vbTwvZGl2PgotICAgICAgPC9kaXY+Ci0KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz4vPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+U2VhcmNoPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmVudGVyPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+U3RlcCB0aHJvdWdoIHNlYXJjaCByZXN1bHRzPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmY8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5ab29tIGludG8gc2VsZWN0aW9uPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPnovMDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlJlc2V0IHpvb20gYW5kIHBhbjwvZGl2PgotICAgICAgPC9kaXY+Ci0KLSAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgotICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5nL0c8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5Ub2dnbGUgNjBoeiBncmlkPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPnY8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5IaWdobGlnaHQgVlN5bmM8L2Rpdj4KLSAgICAgIDwvZGl2PgotCi0gICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KLSAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+aDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlRvZ2dsZSBsb3cvaGlnaCBkZXRhaWxzPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPm08L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5NYXJrIGN1cnJlbnQgc2VsZWN0aW9uPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmA8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5TaG93IG9yIGhpZGUgdGhlIHNjcmlwdGluZyBjb25zb2xlPC9kaXY+Ci0gICAgICA8L2Rpdj4KLQotICAgICAgPGRpdiBjbGFzcz0ncGFpcic+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPj88L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5TaG93IGhlbHA8L2Rpdj4KLSAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotICA8L2Rpdj4KLTwvdGVtcGxhdGU+Ci0KLTx0ZW1wbGF0ZSBpZD0ibWV0YWRhdGEtYnRuLXRlbXBsYXRlIj4KLSAgPGRpdiBjbGFzcz0iYnV0dG9uIHZpZXctbWV0YWRhdGEtYnV0dG9uIHZpZXctaW5mby1idXR0b24iPk1ldGFkYXRhPC9kaXY+Ci0gIDxkaXYgY2xhc3M9ImluZm8tYnV0dG9uLXRleHQgbWV0YWRhdGEtZGlhbG9nLXRleHQiPjwvZGl2PgotPC90ZW1wbGF0ZT4KLQotPHRlbXBsYXRlIGlkPSJjb25zb2xlLWJ0bi10ZW1wbGF0ZSI+Ci0gIDxkaXYgY2xhc3M9ImJ1dHRvbiB2aWV3LWNvbnNvbGUtYnV0dG9uIj4mIzE4Nzs8L2Rpdj4KLTwvdGVtcGxhdGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBWaWV3IHZpc3VhbGl6ZXMgVFJBQ0VfRVZFTlQgZXZlbnRzIHVzaW5nIHRoZQotICogdHIuYy5UaW1lbGluZSBjb21wb25lbnQgYW5kIGFkZHMgaW4gc2VsZWN0aW9uIHN1bW1hcnkgYW5kIGNvbnRyb2wgYnV0dG9ucy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotCi0gIC8qKgotICAgKiBWaWV3Ci0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7SFRNTFVua25vd25FbGVtZW50fQotICAgKi8KLSAgdmFyIFRpbWVsaW5lVmlldyA9IHRyLmIudWkuZGVmaW5lKCd4LXRpbWVsaW5lLXZpZXcnKTsKLQotICBUaW1lbGluZVZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBub2RlID0gdHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjdGltZWxpbmUtdmlldy10ZW1wbGF0ZScsIFRISVNfRE9DKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobm9kZSk7Ci0KLSAgICAgIHRoaXMudGl0bGVFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy50aXRsZScpOwotICAgICAgdGhpcy5sZWZ0Q29udHJvbHNFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNsZWZ0LWNvbnRyb2xzJyk7Ci0gICAgICB0aGlzLnJpZ2h0Q29udHJvbHNFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNyaWdodC1jb250cm9scycpOwotICAgICAgdGhpcy5jb2xsYXBzaW5nQ29udHJvbHNFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjb2xsYXBzaW5nLWNvbnRyb2xzJyk7Ci0gICAgICB0aGlzLnNpZGVQYW5lbENvbnRhaW5lcl8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoCi0gICAgICAgICAgJ3RyLWMtc2lkZS1wYW5lbC1jb250YWluZXInKTsKLSAgICAgIHRoaXMudHJhY2tWaWV3Q29udGFpbmVyXyA9IHRoaXMucXVlcnlTZWxlY3RvcigndHJhY2stdmlldy1jb250YWluZXInKTsKLQotICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXyA9IG5ldyB0ci5jLlNlbGVjdGlvbkNvbnRyb2xsZXIodGhpcyk7Ci0gICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfLmhpc3RvcnlFbmFibGVkID0gdHJ1ZTsKLQotICAgICAgdGhpcy5maW5kQ3RsXyA9IG5ldyBUcmFjaW5nRmluZENvbnRyb2woKTsKLSAgICAgIHRoaXMuZmluZEN0bF8uY29udHJvbGxlciA9IG5ldyB0ci5jLkZpbmRDb250cm9sbGVyKAotICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8pOwotICAgICAgdGhpcy5maW5kQ3RsXy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewotICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAyNykgeyAvLyBFU0MKLSAgICAgICAgICB0aGlzLmZvY3VzKCk7Ci0gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICB9Ci0gICAgICB9LmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLnNjcmlwdGluZ0N0bF8gPSBuZXcgVHJhY2luZ1NjcmlwdGluZ0NvbnRyb2woKTsKLSAgICAgIHRoaXMuc2NyaXB0aW5nQ3RsXy5jb250cm9sbGVyID0gbmV3IHRyLmMuU2NyaXB0aW5nQ29udHJvbGxlcigKLSAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfKTsKLQotICAgICAgdGhpcy5zaWRlUGFuZWxDb250YWluZXJfLnNlbGVjdGlvbkNvbnRyb2xsZXIgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfOwotCi0KLSAgICAgIGlmICh3aW5kb3cudHIuZSAmJiB3aW5kb3cudHIuZS5yYWlsICYmIHdpbmRvdy50ci5lLnJhaWwuUkFJTFNjb3JlKSB7Ci0gICAgICAgIHRoaXMucmFpbFNjb3JlU3Bhbl8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICAgJ3RyLWUtcmFpbC1yYWlsLXNjb3JlLXNwYW4nKTsKLSAgICAgICAgdGhpcy5yaWdodENvbnRyb2xzLmFwcGVuZENoaWxkKHRoaXMucmFpbFNjb3JlU3Bhbl8pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5yYWlsU2NvcmVTcGFuXyA9IHVuZGVmaW5lZDsKLSAgICAgIH0KLQotCi0gICAgICB0aGlzLm9wdGlvbnNEcm9wZG93bl8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLWRyb3Bkb3duJyk7Ci0gICAgICB0aGlzLm9wdGlvbnNEcm9wZG93bl8uaWNvbkVsZW1lbnQudGV4dENvbnRlbnQgPSAnVmlldyBPcHRpb25zJzsKLQotICAgICAgdGhpcy5zaG93Rmxvd0V2ZW50c18gPSBmYWxzZTsKLSAgICAgIHRoaXMub3B0aW9uc0Ryb3Bkb3duXy5hcHBlbmRDaGlsZCh0ci5iLnVpLmNyZWF0ZUNoZWNrQm94KAotICAgICAgICAgIHRoaXMsICdzaG93Rmxvd0V2ZW50cycsCi0gICAgICAgICAgJ3RyLmMuVGltZWxpbmVWaWV3LnNob3dGbG93RXZlbnRzJywgZmFsc2UsCi0gICAgICAgICAgJ0Zsb3cgZXZlbnRzJykpOwotICAgICAgdGhpcy5oaWdobGlnaHRWU3luY18gPSBmYWxzZTsKLSAgICAgIHRoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF8gPSB0ci5iLnVpLmNyZWF0ZUNoZWNrQm94KAotICAgICAgICAgIHRoaXMsICdoaWdobGlnaHRWU3luYycsCi0gICAgICAgICAgJ3RyLmMuVGltZWxpbmVWaWV3LmhpZ2hsaWdodFZTeW5jJywgZmFsc2UsCi0gICAgICAgICAgJ0hpZ2hsaWdodCBWU3luYycpOwotICAgICAgdGhpcy5vcHRpb25zRHJvcGRvd25fLmFwcGVuZENoaWxkKHRoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF8pOwotCi0gICAgICB0aGlzLnJpZ2h0Q29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVNZXRhZGF0YUJ1dHRvbl8oKSk7Ci0KLSAgICAgIHRoaXMucmlnaHRDb250cm9scy5hcHBlbmRDaGlsZCh0aGlzLm9wdGlvbnNEcm9wZG93bl8pOwotICAgICAgdGhpcy5yaWdodENvbnRyb2xzLmFwcGVuZENoaWxkKHRoaXMuZmluZEN0bF8pOwotICAgICAgdGhpcy5yaWdodENvbnRyb2xzLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29uc29sZUJ1dHRvbl8oKSk7Ci0gICAgICB0aGlzLnJpZ2h0Q29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIZWxwQnV0dG9uXygpKTsKLSAgICAgIHRoaXMuY29sbGFwc2luZ0NvbnRyb2xzLmFwcGVuZENoaWxkKHRoaXMuc2NyaXB0aW5nQ3RsXyk7Ci0KLSAgICAgIHRoaXMuZHJhZ0VsXyA9IHRoaXMucXVlcnlTZWxlY3RvcigneC1kcmFnLWhhbmRsZScpOwotICAgICAgdHIuYi51aS5kZWNvcmF0ZSh0aGlzLmRyYWdFbF8sIHRyLmIudWkuRHJhZ0hhbmRsZSk7Ci0KLSAgICAgIHRoaXMuYW5hbHlzaXNFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNhbmFseXNpcycpOwotICAgICAgdGhpcy5hbmFseXNpc0VsXy5zZWxlY3Rpb25Db250cm9sbGVyID0gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzsKLQotICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywKLSAgICAgICAgICBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICB2YXIgc2MgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXJfOwotICAgICAgICAgICAgc2MuY2hhbmdlU2VsZWN0aW9uRnJvbVJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudChlLnNlbGVjdGlvbik7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgLy8gQm9va2tlZXBpbmcuCi0gICAgICB0aGlzLm9uVmlld3BvcnRDaGFuZ2VkXyA9IHRoaXMub25WaWV3cG9ydENoYW5nZWRfLmJpbmQodGhpcyk7Ci0gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd25fLmJpbmQodGhpcyksIHRydWUpOwotICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLm9uS2V5cHJlc3NfLmJpbmQodGhpcyksIHRydWUpOwotCi0gICAgICB0aGlzLmRyYWdFbF8udGFyZ2V0ID0gdGhpcy5hbmFseXNpc0VsXzsKLSAgICB9LAotCi0gICAgdXBkYXRlRG9jdW1lbnRGYXZpY29uOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBodWU7Ci0gICAgICBpZiAoIXRoaXMubW9kZWwpCi0gICAgICAgIGh1ZSA9ICdibHVlJzsKLSAgICAgIGVsc2UKLSAgICAgICAgaHVlID0gdGhpcy5tb2RlbC5mYXZpY29uSHVlOwotCi0gICAgICB2YXIgZmF2aWNvbkRhdGEgPSB0ci5jLkZhdmljb25zQnlIdWVbaHVlXTsKLSAgICAgIGlmIChmYXZpY29uRGF0YSA9PT0gdW5kZWZpbmVkKQotICAgICAgICBmYXZpY29uRGF0YSA9IHRyLmMuRmF2aWNvbnNCeUh1ZVsnYmx1ZSddOwotCi0gICAgICAvLyBGaW5kIGxpbmsgaWYgaXRzIHRoZXJlCi0gICAgICB2YXIgbGluayA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbGlua1tyZWw9InNob3J0Y3V0IGljb24iXScpOwotICAgICAgaWYgKCFsaW5rKSB7Ci0gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci0gICAgICAgIGxpbmsucmVsID0gJ3Nob3J0Y3V0IGljb24nOwotICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspOwotICAgICAgfQotICAgICAgbGluay5ocmVmID0gZmF2aWNvbkRhdGE7Ci0gICAgfSwKLQotICAgIGdldCBzaG93Rmxvd0V2ZW50cygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNob3dGbG93RXZlbnRzXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dGbG93RXZlbnRzKHNob3dGbG93RXZlbnRzKSB7Ci0gICAgICB0aGlzLnNob3dGbG93RXZlbnRzXyA9IHNob3dGbG93RXZlbnRzOwotICAgICAgaWYgKCF0aGlzLnRyYWNrVmlld18pCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMudHJhY2tWaWV3Xy52aWV3cG9ydC5zaG93Rmxvd0V2ZW50cyA9IHNob3dGbG93RXZlbnRzOwotICAgIH0sCi0KLSAgICBnZXQgaGlnaGxpZ2h0VlN5bmMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRWU3luY187Ci0gICAgfSwKLQotICAgIHNldCBoaWdobGlnaHRWU3luYyhoaWdobGlnaHRWU3luYykgewotICAgICAgdGhpcy5oaWdobGlnaHRWU3luY18gPSBoaWdobGlnaHRWU3luYzsKLSAgICAgIGlmICghdGhpcy50cmFja1ZpZXdfKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLnRyYWNrVmlld18udmlld3BvcnQuaGlnaGxpZ2h0VlN5bmMgPSBoaWdobGlnaHRWU3luYzsKLSAgICB9LAotCi0gICAgY3JlYXRlSGVscEJ1dHRvbl86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG5vZGUgPSB0ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNoZWxwLWJ0bi10ZW1wbGF0ZScsIFRISVNfRE9DKTsKLSAgICAgIHZhciBzaG93RWwgPSBub2RlLnF1ZXJ5U2VsZWN0b3IoJy52aWV3LWhlbHAtYnV0dG9uJyk7Ci0gICAgICB2YXIgaGVscFRleHRFbCA9IG5vZGUucXVlcnlTZWxlY3RvcignLnZpZXctaGVscC10ZXh0Jyk7Ci0KLSAgICAgIHZhciBkbGcgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgICBkbGcudGl0bGUgPSAnY2hyb21lOi8vdHJhY2luZyBIZWxwJzsKLSAgICAgIGRsZy5jbGFzc0xpc3QuYWRkKCd2aWV3LWhlbHAtb3ZlcmxheScpOwotICAgICAgZGxnLmFwcGVuZENoaWxkKG5vZGUpOwotCi0gICAgICBmdW5jdGlvbiBvbkNsaWNrKGUpIHsKLSAgICAgICAgZGxnLnZpc2libGUgPSAhZGxnLnZpc2libGU7Ci0KLSAgICAgICAgdmFyIG1vZCA9IHRyLmlzTWFjID8gJ2NtZCAnIDogJ2N0cmwnOwotICAgICAgICB2YXIgc3BhbnMgPSBoZWxwVGV4dEVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW4ubW9kJyk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3BhbnMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBzcGFuc1tpXS50ZXh0Q29udGVudCA9IG1vZDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN0b3AgZXZlbnQgc28gaXQgZG9lc24ndCB0cmlnZ2VyIG5ldyBjbGljayBsaXN0ZW5lciBvbiBkb2N1bWVudC4KLSAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgfQotICAgICAgc2hvd0VsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25DbGljay5iaW5kKHRoaXMpKTsKLQotICAgICAgcmV0dXJuIHNob3dFbDsKLSAgICB9LAotCi0gICAgY3JlYXRlQ29uc29sZUJ1dHRvbl86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG5vZGUgPSB0ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNjb25zb2xlLWJ0bi10ZW1wbGF0ZScsIFRISVNfRE9DKTsKLSAgICAgIHZhciB0b2dnbGVFbCA9IG5vZGUucXVlcnlTZWxlY3RvcignLnZpZXctY29uc29sZS1idXR0b24nKTsKLQotICAgICAgZnVuY3Rpb24gb25DbGljayhlKSB7Ci0gICAgICAgIHRoaXMuc2NyaXB0aW5nQ3RsXy50b2dnbGVWaXNpYmlsaXR5KCk7Ci0gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICAgIHRvZ2dsZUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25DbGljay5iaW5kKHRoaXMpKTsKLQotICAgICAgcmV0dXJuIHRvZ2dsZUVsOwotICAgIH0sCi0KLSAgICBjcmVhdGVNZXRhZGF0YUJ1dHRvbl86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG5vZGUgPSB0ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNtZXRhZGF0YS1idG4tdGVtcGxhdGUnLCBUSElTX0RPQyk7Ci0gICAgICB2YXIgc2hvd0VsID0gbm9kZS5xdWVyeVNlbGVjdG9yKCcudmlldy1tZXRhZGF0YS1idXR0b24nKTsKLSAgICAgIHZhciB0ZXh0RWwgPSBub2RlLnF1ZXJ5U2VsZWN0b3IoJy5pbmZvLWJ1dHRvbi10ZXh0Jyk7Ci0KLSAgICAgIHZhciBkbGcgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgICBkbGcudGl0bGUgPSAnTWV0YWRhdGEgZm9yIHRyYWNlJzsKLSAgICAgIGRsZy5jbGFzc0xpc3QuYWRkKCd2aWV3LW1ldGFkYXRhLW92ZXJsYXknKTsKLSAgICAgIGRsZy5hcHBlbmRDaGlsZChub2RlKTsKLQotICAgICAgZnVuY3Rpb24gb25DbGljayhlKSB7Ci0gICAgICAgIGRsZy52aXNpYmxlID0gdHJ1ZTsKLQotICAgICAgICB2YXIgbWV0YWRhdGFTdHJpbmdzID0gW107Ci0KLSAgICAgICAgdmFyIG1vZGVsID0gdGhpcy5tb2RlbDsKLSAgICAgICAgZm9yICh2YXIgZGF0YSBpbiBtb2RlbC5tZXRhZGF0YSkgewotICAgICAgICAgIHZhciBtZXRhID0gbW9kZWwubWV0YWRhdGFbZGF0YV07Ci0gICAgICAgICAgdmFyIG5hbWUgPSBKU09OLnN0cmluZ2lmeShtZXRhLm5hbWUpOwotICAgICAgICAgIHZhciB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KG1ldGEudmFsdWUsIHVuZGVmaW5lZCwgJyAnKTsKLQotICAgICAgICAgIG1ldGFkYXRhU3RyaW5ncy5wdXNoKG5hbWUgKyAnOiAnICsgdmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIHRleHRFbC50ZXh0Q29udGVudCA9IG1ldGFkYXRhU3RyaW5ncy5qb2luKCdcbicpOwotCi0gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICAgIHNob3dFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG9uQ2xpY2suYmluZCh0aGlzKSk7Ci0KLSAgICAgIGZ1bmN0aW9uIHVwZGF0ZVZpc2liaWxpdHkoKSB7Ci0gICAgICAgIHNob3dFbC5zdHlsZS5kaXNwbGF5ID0KLSAgICAgICAgICAgICh0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwubWV0YWRhdGEubGVuZ3RoKSA/ICcnIDogJ25vbmUnOwotICAgICAgfQotICAgICAgdmFyIHVwZGF0ZVZpc2liaWxpdHlfID0gdXBkYXRlVmlzaWJpbGl0eS5iaW5kKHRoaXMpOwotICAgICAgdXBkYXRlVmlzaWJpbGl0eV8oKTsKLSAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW9kZWxDaGFuZ2UnLCB1cGRhdGVWaXNpYmlsaXR5Xyk7Ci0KLSAgICAgIHJldHVybiBzaG93RWw7Ci0gICAgfSwKLQotICAgIGdldCBsZWZ0Q29udHJvbHMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sZWZ0Q29udHJvbHNFbF87Ci0gICAgfSwKLQotICAgIGdldCByaWdodENvbnRyb2xzKCkgewotICAgICAgcmV0dXJuIHRoaXMucmlnaHRDb250cm9sc0VsXzsKLSAgICB9LAotCi0gICAgZ2V0IGNvbGxhcHNpbmdDb250cm9scygpIHsKLSAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNpbmdDb250cm9sc0VsXzsKLSAgICB9LAotCi0gICAgZ2V0IHZpZXdUaXRsZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnRpdGxlRWxfLnRleHRDb250ZW50LnN1YnN0cmluZygKLSAgICAgICAgICB0aGlzLnRpdGxlRWxfLnRleHRDb250ZW50Lmxlbmd0aCAtIDIpOwotICAgIH0sCi0KLSAgICBzZXQgdmlld1RpdGxlKHRleHQpIHsKLSAgICAgIGlmICh0ZXh0ID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy50aXRsZUVsXy50ZXh0Q29udGVudCA9ICcnOwotICAgICAgICB0aGlzLnRpdGxlRWxfLmhpZGRlbiA9IHRydWU7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIHRoaXMudGl0bGVFbF8uaGlkZGVuID0gZmFsc2U7Ci0gICAgICB0aGlzLnRpdGxlRWxfLnRleHRDb250ZW50ID0gdGV4dDsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsKCkgewotICAgICAgaWYgKHRoaXMudHJhY2tWaWV3XykKLSAgICAgICAgcmV0dXJuIHRoaXMudHJhY2tWaWV3Xy5tb2RlbDsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIHNldCBtb2RlbChtb2RlbCkgewotICAgICAgdmFyIG1vZGVsSW5zdGFuY2VDaGFuZ2VkID0gbW9kZWwgIT0gdGhpcy5tb2RlbDsKLSAgICAgIHZhciBtb2RlbFZhbGlkID0gbW9kZWwgJiYgIW1vZGVsLmJvdW5kcy5pc0VtcHR5OwotCi0gICAgICAvLyBSZW1vdmUgb2xkIHRyYWNrVmlldyBpZiB0aGUgbW9kZWwgaGFzIGNvbXBsZXRlbHkgY2hhbmdlZC4KLSAgICAgIGlmIChtb2RlbEluc3RhbmNlQ2hhbmdlZCkgewotICAgICAgICBpZiAodGhpcy5yYWlsU2NvcmVTcGFuXykKLSAgICAgICAgICB0aGlzLnJhaWxTY29yZVNwYW5fLnJhaWxTY29yZSA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy50cmFja1ZpZXdDb250YWluZXJfLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICAgIGlmICh0aGlzLnRyYWNrVmlld18pIHsKLSAgICAgICAgICB0aGlzLnRyYWNrVmlld18udmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAgICAgJ2NoYW5nZScsIHRoaXMub25WaWV3cG9ydENoYW5nZWRfKTsKLSAgICAgICAgICB0aGlzLnRyYWNrVmlld18uc2VsZWN0aW9uQ29udHJvbGxlciA9IHVuZGVmaW5lZDsKLSAgICAgICAgICB0aGlzLnRyYWNrVmlld18uZGV0YWNoKCk7Ci0gICAgICAgICAgdGhpcy50cmFja1ZpZXdfID0gdW5kZWZpbmVkOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8ubW9kZWxXaWxsQ2hhbmdlKCk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIENyZWF0ZSBuZXcgdHJhY2tWaWV3IGlmIG5lZWRlZC4KLSAgICAgIGlmIChtb2RlbFZhbGlkICYmICF0aGlzLnRyYWNrVmlld18pIHsKLSAgICAgICAgdGhpcy50cmFja1ZpZXdfID0gbmV3IHRyLmMuVGltZWxpbmVUcmFja1ZpZXcodGhpcyk7Ci0KLSAgICAgICAgdGhpcy50cmFja1ZpZXcuc2VsZWN0aW9uQ29udHJvbGxlciA9IHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl87Ci0KLSAgICAgICAgdGhpcy50cmFja1ZpZXdfLmZvY3VzRWxlbWVudCA9Ci0gICAgICAgICAgICB0aGlzLmZvY3VzRWxlbWVudF8gPyB0aGlzLmZvY3VzRWxlbWVudF8gOiB0aGlzLnBhcmVudEVsZW1lbnQ7Ci0gICAgICAgIHRoaXMudHJhY2tWaWV3Q29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLnRyYWNrVmlld18pOwotICAgICAgICB0aGlzLnRyYWNrVmlld18udmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uVmlld3BvcnRDaGFuZ2VkXyk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFNldCB0aGUgbW9kZWwuCi0gICAgICBpZiAobW9kZWxWYWxpZCkgewotICAgICAgICB0aGlzLnRyYWNrVmlld18ubW9kZWwgPSBtb2RlbDsKLSAgICAgICAgdGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LnNob3dGbG93RXZlbnRzID0gdGhpcy5zaG93Rmxvd0V2ZW50czsKLSAgICAgICAgdGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LmhpZ2hsaWdodFZTeW5jID0gdGhpcy5oaWdobGlnaHRWU3luYzsKLSAgICAgICAgaWYgKHRoaXMucmFpbFNjb3JlU3Bhbl8pIHsKLSAgICAgICAgICB2YXIgcmFpbFNjb3JlID0gdHIuZS5yYWlsLlJBSUxTY29yZS5mcm9tTW9kZWwobW9kZWwpOwotICAgICAgICAgIHRoaXMucmFpbFNjb3JlU3Bhbl8ucmFpbFNjb3JlID0gcmFpbFNjb3JlOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIC8vIERvIHRoaW5ncyB0aGF0IGFyZSBzZWxlY3Rpb24gc3BlY2lmaWMKLSAgICAgIGlmIChtb2RlbEluc3RhbmNlQ2hhbmdlZCkgewotICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ21vZGVsQ2hhbmdlJyk7Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8ubW9kZWxEaWRDaGFuZ2UoKTsKLSAgICAgICAgdGhpcy5vblZpZXdwb3J0Q2hhbmdlZF8oKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzsKLSAgICB9LAotCi0gICAgZ2V0IHRyYWNrVmlldygpIHsKLSAgICAgIHJldHVybiB0aGlzLnRyYWNrVmlld187Ci0gICAgfSwKLQotICAgIGdldCBzZXR0aW5ncygpIHsKLSAgICAgIGlmICghdGhpcy5zZXR0aW5nc18pCi0gICAgICAgIHRoaXMuc2V0dGluZ3NfID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKLSAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzXzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogU2V0cyB0aGUgZWxlbWVudCB3aG9zZSBmb2N1cyBzdGF0ZSB3aWxsIGRldGVybWluZSB3aGV0aGVyCi0gICAgICogdG8gcmVzcG9uZCB0byBrZXliYW9yZCBpbnB1dC4KLSAgICAgKi8KLSAgICBzZXQgZm9jdXNFbGVtZW50KHZhbHVlKSB7Ci0gICAgICB0aGlzLmZvY3VzRWxlbWVudF8gPSB2YWx1ZTsKLSAgICAgIGlmICh0aGlzLnRyYWNrVmlld18pCi0gICAgICAgIHRoaXMudHJhY2tWaWV3Xy5mb2N1c0VsZW1lbnQgPSB2YWx1ZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7RWxlbWVudH0gVGhlIGVsZW1lbnQgd2hvc2UgZm9jdXNlZCBzdGF0ZSBkZXRlcm1pbmVzCi0gICAgICogd2hldGhlciB0byByZXNwb25kIHRvIGtleWJvYXJkIGlucHV0cy4KLSAgICAgKiBEZWZhdWx0cyB0byB0aGUgcGFyZW50IGVsZW1lbnQuCi0gICAgICovCi0gICAgZ2V0IGZvY3VzRWxlbWVudCgpIHsKLSAgICAgIGlmICh0aGlzLmZvY3VzRWxlbWVudF8pCi0gICAgICAgIHJldHVybiB0aGlzLmZvY3VzRWxlbWVudF87Ci0gICAgICByZXR1cm4gdGhpcy5wYXJlbnRFbGVtZW50OwotICAgIH0sCi0KLSAgICBnZXQgbGlzdGVuVG9LZXlzXygpIHsKLSAgICAgIGlmICghdHIuYi51aS5pc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQodGhpcykpCi0gICAgICAgIHJldHVybjsKLSAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50LnR5cGUgPT09ICd0ZXh0YXJlYScpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGlmICh0aGlzLnNpZGVQYW5lbENvbnRhaW5lcl8uYWN0aXZlUGFuZWwgJiYKLSAgICAgICAgICB0aGlzLnNpZGVQYW5lbENvbnRhaW5lcl8uYWN0aXZlUGFuZWwubGlzdGVuaW5nVG9LZXlzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAoIXRoaXMuZm9jdXNFbGVtZW50XykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICBpZiAodGhpcy5mb2N1c0VsZW1lbnQudGFiSW5kZXggPj0gMCkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gdGhpcy5mb2N1c0VsZW1lbnQ7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgb25LZXlEb3duXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKCF0aGlzLmxpc3RlblRvS2V5c18pCi0gICAgICAgIHJldHVybjsKLSAgICB9LAotCi0gICAgb25LZXlwcmVzc186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy5saXN0ZW5Ub0tleXNfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIC8vIFNob3J0Y3V0cyB0aGF0ICpjYW4qIHN0ZWFsIGZvY3VzIGZyb20gdGhlIGNvbnNvbGUgYW5kIHRoZSBmaWx0ZXIgdGV4dAotICAgICAgLy8gYm94LgotICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHsKLSAgICAgICAgY2FzZSAnYCcuY2hhckNvZGVBdCgwKToKLSAgICAgICAgICB0aGlzLnNjcmlwdGluZ0N0bF8udG9nZ2xlVmlzaWJpbGl0eSgpOwotICAgICAgICAgIGlmICghdGhpcy5zY3JpcHRpbmdDdGxfLmhhc0ZvY3VzKQotICAgICAgICAgICAgdGhpcy5mb2N1cygpOwotICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMuc2NyaXB0aW5nQ3RsXy5oYXNGb2N1cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBTaG9ydGN1dHMgdGhhdCAqY2FuKiBzdGVhbCBmb2N1cyBmcm9tIHRoZSBmaWx0ZXIgdGV4dCBib3guCi0gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkgewotICAgICAgICBjYXNlICcvJy5jaGFyQ29kZUF0KDApOgotICAgICAgICAgIGlmICh0aGlzLmZpbmRDdGxfLmhhc0ZvY3VzKQotICAgICAgICAgICAgdGhpcy5mb2N1cygpOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuZmluZEN0bF8uZm9jdXMoKTsKLSAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJz8nLmNoYXJDb2RlQXQoMCk6Ci0gICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcudmlldy1oZWxwLWJ1dHRvbicpLmNsaWNrKCk7Ci0gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5maW5kQ3RsXy5oYXNGb2N1cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBTaG9ydGN1dHMgdGhhdCAqY2FuJ3QqIHN0ZWFsIGZvY3VzIGZyb20gdGhlIGZpbHRlciB0ZXh0IGJveCBvciB0aGUKLSAgICAgIC8vIGNvbnNvbGUuCi0gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkgewotICAgICAgICBjYXNlICd2Jy5jaGFyQ29kZUF0KDApOgotICAgICAgICAgIHRoaXMudG9nZ2xlSGlnaGxpZ2h0VlN5bmNfKCk7Ci0gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0sCi0KLSAgICBvblZpZXdwb3J0Q2hhbmdlZF86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBzcGMgPSB0aGlzLnNpZGVQYW5lbENvbnRhaW5lcl87Ci0gICAgICBpZiAoIXRoaXMudHJhY2tWaWV3XykgewotICAgICAgICBzcGMucmFuZ2VPZkludGVyZXN0LnJlc2V0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIHZyID0gdGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuYXNSYW5nZU9iamVjdCgpOwotICAgICAgaWYgKCFzcGMucmFuZ2VPZkludGVyZXN0LmVxdWFscyh2cikpCi0gICAgICAgIHNwYy5yYW5nZU9mSW50ZXJlc3QgPSB2cjsKLSAgICB9LAotCi0gICAgdG9nZ2xlSGlnaGxpZ2h0VlN5bmNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF8uY2hlY2tlZCA9Ci0gICAgICAgICAgIXRoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF8uY2hlY2tlZDsKLSAgICB9LAotCi0gICAgc2V0RmluZEN0bFRleHQ6IGZ1bmN0aW9uKHN0cmluZykgewotICAgICAgdGhpcy5maW5kQ3RsXy5zZXRUZXh0KHN0cmluZyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgVGltZWxpbmVWaWV3OiBUaW1lbGluZVZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNzFkNDEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld1NsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZDsKLSAgdmFyIFRhc2sgPSB0ci5iLlRhc2s7Ci0KLSAgdmFyIGNyZWF0ZUZ1bGx5UG9wdWxhdGVkTW9kZWwgPSBmdW5jdGlvbihvcHRfd2l0aEVycm9yLCBvcHRfd2l0aE1ldGFkYXRhKSB7Ci0gICAgdmFyIHdpdGhFcnJvciA9IG9wdF93aXRoRXJyb3IgIT09IHVuZGVmaW5lZCA/IG9wdF93aXRoRXJyb3IgOiB0cnVlOwotICAgIHZhciB3aXRoTWV0YWRhdGEgPSBvcHRfd2l0aE1ldGFkYXRhICE9PSB1bmRlZmluZWQgPwotICAgICAgICBvcHRfd2l0aE1ldGFkYXRhIDogdHJ1ZTsKLQotICAgIHZhciBudW1fdGVzdHMgPSA1MDsKLSAgICB2YXIgdGVzdEluZGV4ID0gMDsKLSAgICB2YXIgc3RhcnRUaW1lID0gMDsKLQotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIGZvciAodGVzdEluZGV4ID0gMDsgdGVzdEluZGV4IDwgbnVtX3Rlc3RzOyArK3Rlc3RJbmRleCkgewotICAgICAgdmFyIHByb2Nlc3MgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMTAwMDAgKyB0ZXN0SW5kZXgpOwotICAgICAgaWYgKHRlc3RJbmRleCAlIDIgPT0gMCkgewotICAgICAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgnVGhyZWFkIE5hbWUgSGVyZScpOwotICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IHRyLm1vZGVsLlNsaWNlKAotICAgICAgICAgICAgJ2ZvbycsICdhJywgMCwgc3RhcnRUaW1lLCB7fSwgMSkpOwotICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IHRyLm1vZGVsLlNsaWNlKAotICAgICAgICAgICAgJ2JhcicsICdiJywgMCwgc3RhcnRUaW1lICsgMjMsIHt9LCAxMCkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoJ05hbWUnKTsKLSAgICAgICAgdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyB0ci5tb2RlbC5TbGljZSgKLSAgICAgICAgICAgICdmb28nLCAnYScsIDAsIHN0YXJ0VGltZSArIDQsIHt9LCAxMSkpOwotICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IHRyLm1vZGVsLlNsaWNlKAotICAgICAgICAgICAgJ2JhcicsICdiJywgMCwgc3RhcnRUaW1lICsgMjIsIHt9LCAxNCkpOwotICAgICAgfQotICAgIH0KLSAgICB2YXIgcDEwMDAgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMTAwMCk7Ci0gICAgdmFyIG9iamVjdHMgPSBwMTAwMC5vYmplY3RzOwotICAgIG9iamVjdHMuaWRXYXNDcmVhdGVkKCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDEwKTsKLSAgICBvYmplY3RzLmFkZFNuYXBzaG90KCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDEwLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYXBzaG90LTEnKTsKLSAgICBvYmplY3RzLmFkZFNuYXBzaG90KCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDI1LAotICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYXBzaG90LTInKTsKLSAgICBvYmplY3RzLmFkZFNuYXBzaG90KCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDQwLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYXBzaG90LTMnKTsKLSAgICBvYmplY3RzLmlkV2FzRGVsZXRlZCgnMHgxMDAwJywgJ3RyLmUuY2MnLCAnTGF5ZXJUcmVlSG9zdEltcGwnLCA0NSk7Ci0gICAgbW9kZWwudXBkYXRlQ2F0ZWdvcmllc18oKTsKLQotICAgIC8vIEFkZCBhIGtub3duIHByb2JsZW1hdGljIHBpZWNlIG9mIGRhdGEgdG8gdGVzdCB0aGUgaW1wb3J0IGVycm9ycyBVSS4KLSAgICBtb2RlbC5pbXBvcnRXYXJuaW5nKHsKLSAgICAgIHR5cGU6ICd0ZXN0X2Vycm9yJywKLSAgICAgIG1lc3NhZ2U6ICdTeW50aGV0aWMgSW1wb3J0IEVycm9yJwotICAgIH0pOwotICAgIG1vZGVsLnVwZGF0ZUJvdW5kcygpOwotCi0gICAgLy8gQWRkIGRhdGEgd2l0aCBtZXRhZGF0YSBpbmZvcm1hdGlvbiBzdG9yZWQKLSAgICBtb2RlbC5tZXRhZGF0YS5wdXNoKHtuYW1lOiAnYScsIHZhbHVlOiAndGVzdEEnfSk7Ci0gICAgbW9kZWwubWV0YWRhdGEucHVzaCh7bmFtZTogJ2InLCB2YWx1ZTogJ3Rlc3RCJ30pOwotICAgIG1vZGVsLm1ldGFkYXRhLnB1c2goe25hbWU6ICdjJywgdmFsdWU6ICd0ZXN0Qyd9KTsKLQotICAgIHJldHVybiBtb2RlbDsKLSAgfTsKLQotICB2YXIgdmlzaWJsZVRyYWNrcyA9IGZ1bmN0aW9uKHRyYWNrQnV0dG9ucykgewotICAgIHJldHVybiB0cmFja0J1dHRvbnMucmVkdWNlKGZ1bmN0aW9uKG51bVZpc2libGUsIGJ1dHRvbikgewotICAgICAgdmFyIHN0eWxlID0gYnV0dG9uLnBhcmVudEVsZW1lbnQuc3R5bGU7Ci0gICAgICB2YXIgdmlzaWJsZSA9IChzdHlsZS5kaXNwbGF5LmluZGV4T2YoJ25vbmUnKSA9PT0gLTEpOwotICAgICAgcmV0dXJuIHZpc2libGUgPyBudW1WaXNpYmxlICsgMSA6IG51bVZpc2libGU7Ci0gICAgfSwgMCk7Ci0gIH07Ci0KLSAgdmFyIG1vZGVsc0VxdWl2YWxlbnQgPSBmdW5jdGlvbihsaHMsIHJocykgewotICAgIGlmIChsaHMubGVuZ3RoICE9PSByaHMubGVuZ3RoKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBsaHMuZXZlcnkoZnVuY3Rpb24obGhzSXRlbSwgaW5kZXgpIHsKLSAgICAgIHZhciByaHNJdGVtID0gcmhzW2luZGV4XTsKLSAgICAgIHJldHVybiByaHNJdGVtLnJlZ2V4cFRleHQgPT09IGxoc0l0ZW0ucmVnZXhwVGV4dCAmJgotICAgICAgICAgIHJoc0l0ZW0uaXNPbiA9PT0gbGhzSXRlbS5pc09uOwotICAgIH0pOwotICB9OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsMTEgPSBjcmVhdGVGdWxseVBvcHVsYXRlZE1vZGVsKHRydWUsIHRydWUpOwotCi0gICAgdmFyIHZpZXcgPSBuZXcgdHIuYy5UaW1lbGluZVZpZXcoKTsKLSAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc0MDBweCc7Ci0gICAgdmlldy5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKLSAgICB2aWV3Lm1vZGVsID0gbW9kZWwxMTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoYW5nZU1vZGVsVG9Tb21ldGhpbmdEaWZmZXJlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwwMCA9IGNyZWF0ZUZ1bGx5UG9wdWxhdGVkTW9kZWwoZmFsc2UsIGZhbHNlKTsKLSAgICB2YXIgbW9kZWwxMSA9IGNyZWF0ZUZ1bGx5UG9wdWxhdGVkTW9kZWwodHJ1ZSwgdHJ1ZSk7Ci0KLSAgICB2YXIgdmlldyA9IG5ldyB0ci5jLlRpbWVsaW5lVmlldygpOwotICAgIHZpZXcuc3R5bGUuaGVpZ2h0ID0gJzQwMHB4JzsKLSAgICB2aWV3Lm1vZGVsID0gbW9kZWwwMDsKLSAgICB2aWV3Lm1vZGVsID0gdW5kZWZpbmVkOwotICAgIHZpZXcubW9kZWwgPSBtb2RlbDExOwotICAgIHZpZXcubW9kZWwgPSBtb2RlbDAwOwotICB9KTsKLQotICB0ZXN0KCdzZXRNb2RlbFRvU2FtZVRoaW5nQWdhaW4nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBjcmVhdGVGdWxseVBvcHVsYXRlZE1vZGVsKGZhbHNlLCBmYWxzZSk7Ci0KLSAgICAvLyBDcmVhdGUgYSB2aWV3IHdpdGggYW0gbW9kZWwuCi0gICAgdmFyIHZpZXcgPSBuZXcgdHIuYy5UaW1lbGluZVZpZXcoKTsKLSAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc0MDBweCc7Ci0gICAgdmlldy5tb2RlbCA9IG1vZGVsOwotICAgIHZhciBzYyA9IHZpZXcuc2VsZWN0aW9uQ29udHJvbGxlcjsKLQotICAgIC8vIE11dGF0ZSB0aGUgbW9kZWwgYW5kIHVwZGF0ZSB0aGUgdmlldy4KLSAgICB2YXIgdDEyMyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpLmdldE9yQ3JlYXRlVGhyZWFkKDEyMyk7Ci0gICAgdDEyMy5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdzb21ldGhpbmdVbnVzdWFsJywgMCwgNSkpOwotICAgIHZpZXcubW9kZWwgPSBtb2RlbDsKLQotICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBuZXcgYml0cyBvZiB0aGUgbW9kZWwgc2hvdyB1cCBpbiB0aGUgdmlldy4KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgdmFyIGZpbHRlciA9IG5ldyB0ci5jLlRpdGxlT3JDYXRlZ29yeUZpbHRlcignc29tZXRoaW5nVW51c3VhbCcpOwotICAgIHZhciBmaWx0ZXJUYXNrID0gc2MuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzaygKLSAgICAgICAgZmlsdGVyLCBzZWxlY3Rpb24pOwotICAgIFRhc2suUnVuU3luY2hyb25vdXNseShmaWx0ZXJUYXNrKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFlODc1OC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2RyYXdfaGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV9pbnRlcmVzdF9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvYW5pbWF0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2FuaW1hdGlvbl9jb250cm9sbGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQ29kZSBmb3IgdGhlIHZpZXdwb3J0LgotICovCi10ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgewotICB2YXIgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtID0gdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm07Ci0gIHZhciBUaW1lbGluZUludGVyZXN0UmFuZ2UgPSB0ci5jLlRpbWVsaW5lSW50ZXJlc3RSYW5nZTsKLQotICAvKioKLSAgICogQ29udGFpbmVyVG9UcmFja09iaiBpcyBhIGNsYXNzIHRvIGhhbmRsZSBidWlsZGluZyBhbmQgYWNjZXNzaW5nIGEgbWFwCi0gICAqIGJldHdlZW4gYW4gRXZlbnRDb250YWluZXIncyBzdGFibGVJZCBhbmQgaXRzIGhhbmRsaW5nIHRyYWNrLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENvbnRhaW5lclRvVHJhY2tPYmooKSB7Ci0gICAgdGhpcy5zdGFibGVJZFRvVHJhY2tNYXBfID0ge307Ci0gIH0KLQotICBDb250YWluZXJUb1RyYWNrT2JqLnByb3RvdHlwZSA9IHsKLSAgICBhZGRDb250YWluZXI6IGZ1bmN0aW9uKGNvbnRhaW5lciwgdHJhY2spIHsKLSAgICAgIGlmICghdHJhY2spCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgdHJhY2suJyk7Ci0gICAgICB0aGlzLnN0YWJsZUlkVG9UcmFja01hcF9bY29udGFpbmVyLnN0YWJsZUlkXSA9IHRyYWNrOwotICAgIH0sCi0KLSAgICBjbGVhck1hcDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnN0YWJsZUlkVG9UcmFja01hcF8gPSB7fTsKLSAgICB9LAotCi0gICAgZ2V0VHJhY2tCeVN0YWJsZUlkOiBmdW5jdGlvbihzdGFibGVJZCkgewotICAgICAgcmV0dXJuIHRoaXMuc3RhYmxlSWRUb1RyYWNrTWFwX1tzdGFibGVJZF07Ci0gICAgfQotICB9OwotCi0gIC8qKgotICAgKiBUaGUgVGltZWxpbmVWaWV3cG9ydCBtYW5hZ2VzIHRoZSB0cmFuc2Zvcm0gdXNlZCBmb3IgbmF2aWdhdGluZwotICAgKiB3aXRoaW4gdGhlIHRpbWVsaW5lLiBJdCBpcyBhIHNpbXBsZSB0cmFuc2Zvcm06Ci0gICAqICAgeCcgPSAoeCtwYW4pICogc2NhbGUKLSAgICoKLSAgICogVGhlIHRpbWVsaW5lIGNvZGUgdHJpZXMgdG8gYXZvaWQgZGlyZWN0bHkgYWNjZXNzaW5nIHRoaXMgdHJhbnNmb3JtLAotICAgKiBpbnN0ZWFkIHVzaW5nIHRoaXMgY2xhc3MgdG8gZG8gY29udmVyc2lvbiBiZXR3ZWVuIHdvcmxkIGFuZCB2aWV3c3BhY2UsCi0gICAqIGFzIHdlbGwgYXMgdGhlIG1hdGggZm9yIGNlbnRlcmluZyB0aGUgdmlld3BvcnQgaW4gdmFyaW91cyBpbnRlcmVzdGluZwotICAgKiB3YXlzLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge3RyLmIuRXZlbnRUYXJnZXR9Ci0gICAqLwotICBmdW5jdGlvbiBUaW1lbGluZVZpZXdwb3J0KHBhcmVudEVsKSB7Ci0gICAgdGhpcy5wYXJlbnRFbF8gPSBwYXJlbnRFbDsKLSAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfID0gdW5kZWZpbmVkOwotICAgIHRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIHRoaXMuaW5pdEFuaW1hdGlvbkNvbnRyb2xsZXJfKCk7Ci0KLSAgICAvLyBGbG93IGV2ZW50cwotICAgIHRoaXMuc2hvd0Zsb3dFdmVudHNfID0gZmFsc2U7Ci0KLSAgICAvLyBIaWdobGlnaHRzLgotICAgIHRoaXMuaGlnaGxpZ2h0VlN5bmNfID0gZmFsc2U7Ci0KLSAgICAvLyBIaWdoIGRldGFpbHMuCi0gICAgdGhpcy5oaWdoRGV0YWlsc18gPSBmYWxzZTsKLQotICAgIC8vIEdyaWQgc3lzdGVtLgotICAgIHRoaXMuZ3JpZFRpbWViYXNlXyA9IDA7Ci0gICAgdGhpcy5ncmlkU3RlcF8gPSAxMDAwIC8gNjA7Ci0gICAgdGhpcy5ncmlkRW5hYmxlZF8gPSBmYWxzZTsKLQotICAgIC8vIEluaXQgbG9naWMuCi0gICAgdGhpcy5oYXNDYWxsZWRTZXR1cEZ1bmN0aW9uXyA9IGZhbHNlOwotCi0gICAgdGhpcy5vblJlc2l6ZV8gPSB0aGlzLm9uUmVzaXplXy5iaW5kKHRoaXMpOwotICAgIHRoaXMub25Nb2RlbFRyYWNrQ29udHJvbGxlclNjcm9sbF8gPQotICAgICAgICB0aGlzLm9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfLmJpbmQodGhpcyk7Ci0KLSAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgdXNlcyBhbiBpbnRlcnZhbCB0byBkZXRlY3Qgd2hlbiB0aGUgcGFyZW50IGVsZW1lbnQKLSAgICAvLyBpcyBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQuIFRoYXQgaXMgYSB0cmlnZ2VyIHRvIHJ1biB0aGUgc2V0dXAgZnVuY3Rpb24KLSAgICAvLyBhbmQgaW5zdGFsbCBhIHJlc2l6ZSBsaXN0ZW5lci4KLSAgICB0aGlzLmNoZWNrRm9yQXR0YWNoSW50ZXJ2YWxfID0gc2V0SW50ZXJ2YWwoCi0gICAgICAgIHRoaXMuY2hlY2tGb3JBdHRhY2hfLmJpbmQodGhpcyksIDI1MCk7Ci0KLSAgICB0aGlzLm1ham9yTWFya1Bvc2l0aW9ucyA9IFtdOwotICAgIHRoaXMuaW50ZXJlc3RSYW5nZV8gPSBuZXcgVGltZWxpbmVJbnRlcmVzdFJhbmdlKHRoaXMpOwotCi0gICAgdGhpcy5ldmVudFRvVHJhY2tNYXBfID0ge307Ci0gICAgdGhpcy5jb250YWluZXJUb1RyYWNrT2JqID0gbmV3IENvbnRhaW5lclRvVHJhY2tPYmooKTsKLSAgfQotCi0gIFRpbWVsaW5lVmlld3BvcnQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYi5FdmVudFRhcmdldC5wcm90b3R5cGUsCi0KLSAgICAvKioKLSAgICAgKiBBbGxvd3MgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHZpZXdwb3J0IHdoZW4gdGhlIHZpZXdwb3J0J3MgcGFyZW50IGVsZW1lbnQKLSAgICAgKiBoYXMgYmVlbiBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQgYW5kIGdpdmVuIGEgc2l6ZS4KLSAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBGdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIHZpZXdwb3J0IGNhbiBiZSBzYWZlbHkKLSAgICAgKiBpbml0aWFsaXplZC4KLSAgICAgKi8KLSAgICBzZXRXaGVuUG9zc2libGU6IGZ1bmN0aW9uKGZuKSB7Ci0gICAgICB0aGlzLnBlbmRpbmdTZXRGdW5jdGlvbl8gPSBmbjsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGUgY3VycmVudCB0aW1lbGluZSBpcyBhdHRhY2hlZCB0byB0aGUKLSAgICAgKiBkb2N1bWVudC4KLSAgICAgKi8KLSAgICBnZXQgaXNBdHRhY2hlZFRvRG9jdW1lbnRPckluVGVzdE1vZGUoKSB7Ci0gICAgICAvLyBBbGxvdyBub3QgcHJvdmlkaW5nIGEgcGFyZW50IGVsZW1lbnQsIHVzZWQgYnkgdGVzdHMuCi0gICAgICBpZiAodGhpcy5wYXJlbnRFbF8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgcmV0dXJuIHRyLmIudWkuaXNFbGVtZW50QXR0YWNoZWRUb0RvY3VtZW50KHRoaXMucGFyZW50RWxfKTsKLSAgICB9LAotCi0gICAgb25SZXNpemVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgcGFyZW50Tm9kZSBpcyBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQuCi0gICAgICogV2hlbiBpdCBpcywgaXQgaW5zdGFsbHMgdGhlIGlmcmFtZS1iYXNlZCByZXNpemUgZGV0ZWN0aW9uIGhvb2sKLSAgICAgKiBhbmQgdGhlbiBydW5zIHRoZSBwZW5kaW5nU2V0RnVuY3Rpb25fLCBpZiBwcmVzZW50LgotICAgICAqLwotICAgIGNoZWNrRm9yQXR0YWNoXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIXRoaXMuaXNBdHRhY2hlZFRvRG9jdW1lbnRPckluVGVzdE1vZGUgfHwgdGhpcy5jbGllbnRXaWR0aCA9PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGlmICghdGhpcy5pZnJhbWVfKSB7Ci0gICAgICAgIHRoaXMuaWZyYW1lXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAgICAgICB0aGlzLmlmcmFtZV8uc3R5bGUuY3NzVGV4dCA9Ci0gICAgICAgICAgICAncG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MDtib3JkZXI6MDt2aXNpYmlsaXR5OmhpZGRlbjsnOwotICAgICAgICB0aGlzLnBhcmVudEVsXy5hcHBlbmRDaGlsZCh0aGlzLmlmcmFtZV8pOwotCi0gICAgICAgIHRoaXMuaWZyYW1lXy5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemVfKTsKLSAgICAgIH0KLQotICAgICAgdmFyIGN1clNpemUgPSB0aGlzLnBhcmVudEVsXy5jbGllbnRXaWR0aCArICd4JyArCi0gICAgICAgICAgdGhpcy5wYXJlbnRFbF8uY2xpZW50SGVpZ2h0OwotICAgICAgaWYgKHRoaXMucGVuZGluZ1NldEZ1bmN0aW9uXykgewotICAgICAgICB0aGlzLmxhc3RTaXplXyA9IGN1clNpemU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdGhpcy5wZW5kaW5nU2V0RnVuY3Rpb25fKCk7Ci0gICAgICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coJ1doaWxlIHJ1bm5pbmcgc2V0V2hlblBvc3NpYmxlOicsCi0gICAgICAgICAgICAgIGV4Lm1lc3NhZ2UgPyBleC5tZXNzYWdlICsgJ1xuJyArIGV4LnN0YWNrIDogZXguc3RhY2spOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMucGVuZGluZ1NldEZ1bmN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICAgIH0KLQotICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXyk7Ci0gICAgICB0aGlzLmNoZWNrRm9yQXR0YWNoSW50ZXJ2YWxfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBGaXJlcyB0aGUgY2hhbmdlIGV2ZW50IG9uIHRoaXMgdmlld3BvcnQuIFVzZWQgdG8gbm90aWZ5IGxpc3RlbmVycwotICAgICAqIHRvIHJlZHJhdyB3aGVuIHRoZSB1bmRlcmx5aW5nIG1vZGVsIGhhcyBiZWVuIG11dGF0ZWQuCi0gICAgICovCi0gICAgZGlzcGF0Y2hDaGFuZ2VFdmVudDogZnVuY3Rpb24oKSB7Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ2NoYW5nZScpOwotICAgIH0sCi0KLSAgICBkZXRhY2g6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuY2hlY2tGb3JBdHRhY2hJbnRlcnZhbF8pIHsKLSAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXyk7Ci0gICAgICAgIHRoaXMuY2hlY2tGb3JBdHRhY2hJbnRlcnZhbF8gPSB1bmRlZmluZWQ7Ci0gICAgICB9Ci0gICAgICBpZiAodGhpcy5pZnJhbWVfKSB7Ci0gICAgICAgIHRoaXMuaWZyYW1lXy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uUmVzaXplXyk7Ci0gICAgICAgIHRoaXMucGFyZW50RWxfLnJlbW92ZUNoaWxkKHRoaXMuaWZyYW1lXyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGluaXRBbmltYXRpb25Db250cm9sbGVyXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8gPSBuZXcgdHIuYi51aS5BbmltYXRpb25Db250cm9sbGVyKCk7Ci0gICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnZGlkdGljaycsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHRoaXMub25DdXJlbnREaXNwbGF5VHJhbnNmb3JtQ2hhbmdlXyhlLm9sZFRhcmdldFN0YXRlKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpOwotCi0gICAgICB2YXIgdGhhdCA9IHRoaXM7Ci0gICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8udGFyZ2V0ID0gewotICAgICAgICBnZXQgcGFuWCgpIHsKLSAgICAgICAgICByZXR1cm4gdGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8ucGFuWDsKLSAgICAgICAgfSwKLQotICAgICAgICBzZXQgcGFuWChwYW5YKSB7Ci0gICAgICAgICAgdGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8ucGFuWCA9IHBhblg7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZ2V0IHBhblkoKSB7Ci0gICAgICAgICAgcmV0dXJuIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnBhblk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgc2V0IHBhblkocGFuWSkgewotICAgICAgICAgIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnBhblkgPSBwYW5ZOwotICAgICAgICB9LAotCi0gICAgICAgIGdldCBzY2FsZVgoKSB7Ci0gICAgICAgICAgcmV0dXJuIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnNjYWxlWDsKLSAgICAgICAgfSwKLQotICAgICAgICBzZXQgc2NhbGVYKHNjYWxlWCkgewotICAgICAgICAgIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnNjYWxlWCA9IHNjYWxlWDsKLSAgICAgICAgfSwKLQotICAgICAgICBjbG9uZUFuaW1hdGlvblN0YXRlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gdGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8uY2xvbmUoKTsKLSAgICAgICAgfSwKLQotICAgICAgICB4UGFuV29ybGRQb3NUb1ZpZXdQb3M6IGZ1bmN0aW9uKHhXb3JsZCwgeFZpZXcpIHsKLSAgICAgICAgICB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy54UGFuV29ybGRQb3NUb1ZpZXdQb3MoCi0gICAgICAgICAgICAgIHhXb3JsZCwgeFZpZXcsIHRoYXQubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLmNsaWVudFdpZHRoKTsKLSAgICAgICAgfQotICAgICAgfTsKLSAgICB9LAotCi0gICAgZ2V0IGN1cnJlbnREaXNwbGF5VHJhbnNmb3JtKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fOwotICAgIH0sCi0KLSAgICBzZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHk6IGZ1bmN0aW9uKGRpc3BsYXlUcmFuc2Zvcm0pIHsKLSAgICAgIHRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5jYW5jZWxBY3RpdmVBbmltYXRpb24oKTsKLQotICAgICAgdmFyIG9sZERpc3BsYXlUcmFuc2Zvcm0gPQotICAgICAgICAgIHRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy50YXJnZXQuY2xvbmVBbmltYXRpb25TdGF0ZSgpOwotICAgICAgdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8uc2V0KGRpc3BsYXlUcmFuc2Zvcm0pOwotICAgICAgdGhpcy5vbkN1cmVudERpc3BsYXlUcmFuc2Zvcm1DaGFuZ2VfKG9sZERpc3BsYXlUcmFuc2Zvcm0pOwotICAgIH0sCi0KLSAgICBxdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb246IGZ1bmN0aW9uKGFuaW1hdGlvbikgewotICAgICAgaWYgKCEoYW5pbWF0aW9uIGluc3RhbmNlb2YgdHIuYi51aS5BbmltYXRpb24pKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FuaW1hdGlvbiBtdXN0IGJlIGluc3RhbmNlb2YgdHIuYi51aS5BbmltYXRpb24nKTsKLSAgICAgIHRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5xdWV1ZUFuaW1hdGlvbihhbmltYXRpb24pOwotICAgIH0sCi0KLSAgICBvbkN1cmVudERpc3BsYXlUcmFuc2Zvcm1DaGFuZ2VfOiBmdW5jdGlvbihvbGREaXNwbGF5VHJhbnNmb3JtKSB7Ci0gICAgICAvLyBFbnN1cmUgcGFuWSBzdGF5cyBjbGFtcGVkIGluIHRoZSB0cmFjayBjb250YWluZXIncyBzY3JvbGwgcmFuZ2UuCi0gICAgICBpZiAodGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXykgewotICAgICAgICB0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblkgPSB0ci5iLmNsYW1wKAotICAgICAgICAgICAgdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZLAotICAgICAgICAgICAgMCwKLSAgICAgICAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uc2Nyb2xsSGVpZ2h0IC0KLSAgICAgICAgICAgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNsaWVudEhlaWdodCk7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBjaGFuZ2VkID0gIXRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uZXF1YWxzKG9sZERpc3BsYXlUcmFuc2Zvcm0pOwotICAgICAgdmFyIHlDaGFuZ2VkID0gdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZICE9PQotICAgICAgICAgIG9sZERpc3BsYXlUcmFuc2Zvcm0ucGFuWTsKLSAgICAgIGlmICh5Q2hhbmdlZCkKLSAgICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5zY3JvbGxUb3AgPSB0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblk7Ci0gICAgICBpZiAoY2hhbmdlZCkKLSAgICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIG9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAodGhpcy5kdEFuaW1hdGlvbkNvbnRyb2xsZXJfLmFjdGl2ZUFuaW1hdGlvbiAmJgotICAgICAgICAgIHRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5hY3RpdmVBbmltYXRpb24uYWZmZWN0c1BhblkpCi0gICAgICAgIHRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5jYW5jZWxBY3RpdmVBbmltYXRpb24oKTsKLSAgICAgIHZhciBwYW5ZID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5zY3JvbGxUb3A7Ci0gICAgICB0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5wYW5ZID0gcGFuWTsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsVHJhY2tDb250YWluZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXzsKLSAgICB9LAotCi0gICAgc2V0IG1vZGVsVHJhY2tDb250YWluZXIobSkgewotICAgICAgaWYgKHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8pCi0gICAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywKLSAgICAgICAgICAgIHRoaXMub25Nb2RlbFRyYWNrQ29udHJvbGxlclNjcm9sbF8pOwotCi0gICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfID0gbTsKLSAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywKLSAgICAgICAgICB0aGlzLm9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfKTsKLSAgICB9LAotCi0gICAgZ2V0IHNob3dGbG93RXZlbnRzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2hvd0Zsb3dFdmVudHNfOwotICAgIH0sCi0KLSAgICBzZXQgc2hvd0Zsb3dFdmVudHMoc2hvd0Zsb3dFdmVudHMpIHsKLSAgICAgIHRoaXMuc2hvd0Zsb3dFdmVudHNfID0gc2hvd0Zsb3dFdmVudHM7Ci0gICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKLSAgICB9LAotCi0gICAgZ2V0IGhpZ2hsaWdodFZTeW5jKCkgewotICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0VlN5bmNfOwotICAgIH0sCi0KLSAgICBzZXQgaGlnaGxpZ2h0VlN5bmMoaGlnaGxpZ2h0VlN5bmMpIHsKLSAgICAgIHRoaXMuaGlnaGxpZ2h0VlN5bmNfID0gaGlnaGxpZ2h0VlN5bmM7Ci0gICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKLSAgICB9LAotCi0gICAgZ2V0IGhpZ2hEZXRhaWxzKCkgewotICAgICAgcmV0dXJuIHRoaXMuaGlnaERldGFpbHNfOwotICAgIH0sCi0KLSAgICBzZXQgaGlnaERldGFpbHMoaGlnaERldGFpbHMpIHsKLSAgICAgIHRoaXMuaGlnaERldGFpbHNfID0gaGlnaERldGFpbHM7Ci0gICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKLSAgICB9LAotCi0gICAgZ2V0IGdyaWRFbmFibGVkKCkgewotICAgICAgcmV0dXJuIHRoaXMuZ3JpZEVuYWJsZWRfOwotICAgIH0sCi0KLSAgICBzZXQgZ3JpZEVuYWJsZWQoZW5hYmxlZCkgewotICAgICAgaWYgKHRoaXMuZ3JpZEVuYWJsZWRfID09IGVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5ncmlkRW5hYmxlZF8gPSBlbmFibGVkICYmIHRydWU7Ci0gICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKLSAgICB9LAotCi0gICAgZ2V0IGdyaWRUaW1lYmFzZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmdyaWRUaW1lYmFzZV87Ci0gICAgfSwKLQotICAgIHNldCBncmlkVGltZWJhc2UodGltZWJhc2UpIHsKLSAgICAgIGlmICh0aGlzLmdyaWRUaW1lYmFzZV8gPT0gdGltZWJhc2UpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuZ3JpZFRpbWViYXNlXyA9IHRpbWViYXNlOwotICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIGdldCBncmlkU3RlcCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmdyaWRTdGVwXzsKLSAgICB9LAotCi0gICAgZ2V0IGludGVyZXN0UmFuZ2UoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pbnRlcmVzdFJhbmdlXzsKLSAgICB9LAotCi0gICAgZHJhd01ham9yTWFya0xpbmVzOiBmdW5jdGlvbihjdHgpIHsKLSAgICAgIC8vIEFwcGx5IHN1YnBpeGVsIHRyYW5zbGF0ZSB0byBnZXQgY3Jpc3AgbGluZXMuCi0gICAgICAvLyBodHRwOi8vd3d3Lm1vYnRvd2Vycy5jb20vaHRtbDUtY2FudmFzLWNyaXNwLWxpbmVzLWV2ZXJ5LXRpbWUvCi0gICAgICBjdHguc2F2ZSgpOwotICAgICAgY3R4LnRyYW5zbGF0ZSgoTWF0aC5yb3VuZChjdHgubGluZVdpZHRoKSAlIDIpIC8gMiwgMCk7Ci0KLSAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAgIGZvciAodmFyIGlkeCBpbiB0aGlzLm1ham9yTWFya1Bvc2l0aW9ucykgewotICAgICAgICB2YXIgeCA9IE1hdGguZmxvb3IodGhpcy5tYWpvck1hcmtQb3NpdGlvbnNbaWR4XSk7Ci0gICAgICAgIHRyLmMuZHJhd0xpbmUoY3R4LCB4LCAwLCB4LCBjdHguY2FudmFzLmhlaWdodCk7Ci0gICAgICB9Ci0gICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnI2RkZCc7Ci0gICAgICBjdHguc3Ryb2tlKCk7Ci0KLSAgICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgfSwKLQotICAgIGRyYXdHcmlkTGluZXM6IGZ1bmN0aW9uKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgewotICAgICAgaWYgKCF0aGlzLmdyaWRFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBkdCA9IHRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICB2YXIgeCA9IHRoaXMuZ3JpZFRpbWViYXNlOwotCi0gICAgICAvLyBBcHBseSBzdWJwaXhlbCB0cmFuc2xhdGUgdG8gZ2V0IGNyaXNwIGxpbmVzLgotICAgICAgLy8gaHR0cDovL3d3dy5tb2J0b3dlcnMuY29tL2h0bWw1LWNhbnZhcy1jcmlzcC1saW5lcy1ldmVyeS10aW1lLwotICAgICAgY3R4LnNhdmUoKTsKLSAgICAgIGN0eC50cmFuc2xhdGUoKE1hdGgucm91bmQoY3R4LmxpbmVXaWR0aCkgJSAyKSAvIDIsIDApOwotCi0gICAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgICB3aGlsZSAoeCA8IHZpZXdSV29ybGQpIHsKLSAgICAgICAgaWYgKHggPj0gdmlld0xXb3JsZCkgewotICAgICAgICAgIC8vIERvIGNvbnZlcnNpb24gdG8gdmlld3NwYWNlIGhlcmUgcmF0aGVyIHRoYW4gb24KLSAgICAgICAgICAvLyB4IHRvIGF2b2lkIHByZWNpc2lvbiBpc3N1ZXMuCi0gICAgICAgICAgdmFyIHZ4ID0gTWF0aC5mbG9vcihkdC54V29ybGRUb1ZpZXcoeCkpOwotICAgICAgICAgIHRyLmMuZHJhd0xpbmUoY3R4LCB2eCwgMCwgdngsIGN0eC5jYW52YXMuaGVpZ2h0KTsKLSAgICAgICAgfQotCi0gICAgICAgIHggKz0gdGhpcy5ncmlkU3RlcDsKLSAgICAgIH0KLSAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDI1NSwgMCwgMCwgMC4yNSknOwotICAgICAgY3R4LnN0cm9rZSgpOwotCi0gICAgICBjdHgucmVzdG9yZSgpOwotICAgIH0sCi0KLSAgICByZWJ1aWxkRXZlbnRUb1RyYWNrTWFwOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuZXZlbnRUb1RyYWNrTWFwXyA9IHVuZGVmaW5lZDsKLQotICAgICAgdmFyIGV2ZW50VG9UcmFja01hcCA9IHt9OwotICAgICAgZXZlbnRUb1RyYWNrTWFwLmFkZEV2ZW50ID0gZnVuY3Rpb24oZXZlbnQsIHRyYWNrKSB7Ci0gICAgICAgIGlmICghdHJhY2spCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSB0cmFjay4nKTsKLSAgICAgICAgdGhpc1tldmVudC5ndWlkXSA9IHRyYWNrOwotICAgICAgfTsKLSAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uYWRkRXZlbnRzVG9UcmFja01hcChldmVudFRvVHJhY2tNYXApOwotICAgICAgdGhpcy5ldmVudFRvVHJhY2tNYXBfID0gZXZlbnRUb1RyYWNrTWFwOwotICAgIH0sCi0KLSAgICByZWJ1aWxkQ29udGFpbmVyVG9UcmFja01hcDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNvbnRhaW5lclRvVHJhY2tPYmouY2xlYXJNYXAoKTsKLSAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoCi0gICAgICAgICAgdGhpcy5jb250YWluZXJUb1RyYWNrT2JqKTsKLSAgICB9LAotCi0gICAgdHJhY2tGb3JFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHJldHVybiB0aGlzLmV2ZW50VG9UcmFja01hcF9bZXZlbnQuZ3VpZF07Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ29udGFpbmVyVG9UcmFja09iajogQ29udGFpbmVyVG9UcmFja09iaiwKLSAgICBUaW1lbGluZVZpZXdwb3J0OiBUaW1lbGluZVZpZXdwb3J0Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3ZpZXdwb3J0X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1lbGluZV92aWV3cG9ydF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjNzg3MzYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RpbWVsaW5lX3ZpZXdwb3J0X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdtZW1vaXphdGlvbicsIGZ1bmN0aW9uKCkgewotCi0gICAgdmFyIHZwID0gbmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0KLSAgICB2YXIgc2xpY2UgPSB7IGd1aWQ6IDEgfTsKLQotICAgIHZwLm1vZGVsVHJhY2tDb250YWluZXIgPSB7Ci0gICAgICBhZGRFdmVudHNUb1RyYWNrTWFwOiBmdW5jdGlvbihldmVudFRvVHJhY2tNYXApIHsKLSAgICAgICAgZXZlbnRUb1RyYWNrTWFwLmFkZEV2ZW50KHNsaWNlLCAndHJhY2snKTsKLSAgICAgIH0sCi0gICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigpIHt9Ci0gICAgfTsKLQotICAgIGFzc2VydC5pc1VuZGVmaW5lZCh2cC50cmFja0ZvckV2ZW50KHNsaWNlKSk7Ci0gICAgdnAucmVidWlsZEV2ZW50VG9UcmFja01hcCgpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHZwLnRyYWNrRm9yRXZlbnQoc2xpY2UpLCAndHJhY2snKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltaW5nX3Rvb2wuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1pbmdfdG9vbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzcwNjQ2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1pbmdfdG9vbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvY29uc3RhbnRzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2UuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgVGltaW5nVG9vbCBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgY29uc3RhbnRzID0gdHIuYy5jb25zdGFudHM7Ci0KLSAgLyoqCi0gICAqIFRvb2wgZm9yIHRha2luZyB0aW1lIG1lYXN1cmVtZW50cyBpbiB0aGUgVGltZWxpbmVUcmFja1ZpZXcgdXNpbmcKLSAgICogVmlld3BvcnRtYXJrZXJzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFRpbWluZ1Rvb2wodmlld3BvcnQsIHRhcmdldEVsZW1lbnQpIHsKLSAgICB0aGlzLnZpZXdwb3J0XyA9IHZpZXdwb3J0OwotCi0gICAgLy8gUHJlcGFyZSB0aGUgZXZlbnQgaGFuZGxlcnMgdG8gYmUgYWRkZWQgYW5kIHJlbW92ZWQgcmVwZWF0ZWRseS4KLSAgICB0aGlzLm9uTW91c2VNb3ZlXyA9IHRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7Ci0gICAgdGhpcy5vbkRibENsaWNrXyA9IHRoaXMub25EYmxDbGlja18uYmluZCh0aGlzKTsKLSAgICB0aGlzLnRhcmdldEVsZW1lbnRfID0gdGFyZ2V0RWxlbWVudDsKLQotICAgIC8vIFZhbGlkIG9ubHkgZHVyaW5nIG1vdXNlZG93bi4KLSAgICB0aGlzLmlzTW92aW5nTGVmdEVkZ2VfID0gZmFsc2U7Ci0gIH07Ci0KLSAgVGltaW5nVG9vbC5wcm90b3R5cGUgPSB7Ci0KLSAgICBvbkVudGVyVGltaW5nOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVfKTsKLSAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCB0aGlzLm9uRGJsQ2xpY2tfKTsKLSAgICB9LAotCi0gICAgb25CZWdpblRpbWluZzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKCF0aGlzLmlzVG91Y2hQb2ludEluc2lkZVRyYWNrQm91bmRzXyhlLmNsaWVudFgsIGUuY2xpZW50WSkpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHB0ID0gdGhpcy5nZXRTbmFwcGVkVG9FdmVudFBvc2l0aW9uXyhlKTsKLSAgICAgIHRoaXMubW91c2VEb3duQXRfKHB0LngsIHB0LnkpOwotCi0gICAgICB0aGlzLnVwZGF0ZVNuYXBJbmRpY2F0b3JzXyhwdCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZVNuYXBJbmRpY2F0b3JzXzogZnVuY3Rpb24ocHQpIHsKLSAgICAgIGlmICghcHQuc25hcHBlZCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdmFyIGlyID0gdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZTsKLSAgICAgIGlmIChpci5taW4gPT09IHB0LngpCi0gICAgICAgIGlyLmxlZnRTbmFwSW5kaWNhdG9yID0gbmV3IHRyLmMuU25hcEluZGljYXRvcihwdC55LCBwdC5oZWlnaHQpOwotICAgICAgaWYgKGlyLm1heCA9PT0gcHQueCkKLSAgICAgICAgaXIucmlnaHRTbmFwSW5kaWNhdG9yID0gbmV3IHRyLmMuU25hcEluZGljYXRvcihwdC55LCBwdC5oZWlnaHQpOwotICAgIH0sCi0KLSAgICBvblVwZGF0ZVRpbWluZzogZnVuY3Rpb24oZSkgewotICAgICAgdmFyIHB0ID0gdGhpcy5nZXRTbmFwcGVkVG9FdmVudFBvc2l0aW9uXyhlKTsKLSAgICAgIHRoaXMubW91c2VNb3ZlQXRfKHB0LngsIHB0LnksIHRydWUpOwotICAgICAgdGhpcy51cGRhdGVTbmFwSW5kaWNhdG9yc18ocHQpOwotICAgIH0sCi0KLSAgICBvbkVuZFRpbWluZzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5tb3VzZVVwXygpOwotICAgIH0sCi0KLSAgICBvbkV4aXRUaW1pbmc6IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZV8pOwotICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMub25EYmxDbGlja18pOwotICAgIH0sCi0KLSAgICBvbk1vdXNlTW92ZV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmIChlLmJ1dHRvbikKLSAgICAgICAgcmV0dXJuOwotICAgICAgdmFyIHdvcmxkWCA9IHRoaXMuZ2V0V29ybGRYRnJvbUV2ZW50XyhlKTsKLSAgICAgIHRoaXMubW91c2VNb3ZlQXRfKHdvcmxkWCwgZS5jbGllbnRZLCBmYWxzZSk7Ci0gICAgfSwKLQotICAgIG9uRGJsQ2xpY2tfOiBmdW5jdGlvbihlKSB7Ci0gICAgICAvLyBUT0RPKG5kdWNhKTogSW1wbGVtZW50IGRvYnVsZWNsaWNraW5nLgotICAgICAgY29uc29sZS5lcnJvcignbm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotICAgIGlzVG91Y2hQb2ludEluc2lkZVRyYWNrQm91bmRzXzogZnVuY3Rpb24oY2xpZW50WCwgY2xpZW50WSkgewotICAgICAgaWYgKCF0aGlzLnZpZXdwb3J0XyB8fAotICAgICAgICAgICF0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyIHx8Ci0gICAgICAgICAgIXRoaXMudmlld3BvcnRfLm1vZGVsVHJhY2tDb250YWluZXIuY2FudmFzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBjYW52YXMgPSB0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyLmNhbnZhczsKLSAgICAgIHZhciBjYW52YXNSZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgaWYgKGNsaWVudFggPj0gY2FudmFzUmVjdC5sZWZ0ICYmIGNsaWVudFggPD0gY2FudmFzUmVjdC5yaWdodCAmJgotICAgICAgICAgIGNsaWVudFkgPj0gY2FudmFzUmVjdC50b3AgJiYgY2xpZW50WSA8PSBjYW52YXNSZWN0LmJvdHRvbSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgbW91c2VEb3duQXRfOiBmdW5jdGlvbih3b3JsZFgsIHkpIHsKLSAgICAgIHZhciBpciA9IHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2U7Ci0gICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLQotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgICAgdmFyIG5lYXJuZXNzVGhyZXNob2xkV29ybGQgPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoNiAqIHBpeGVsUmF0aW8pOwotCi0gICAgICBpZiAoaXIuaXNFbXB0eSkgewotICAgICAgICBpci5zZXRNaW5BbmRNYXgod29ybGRYLCB3b3JsZFgpOwotICAgICAgICBpci5yaWdodFNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5pc01vdmluZ0xlZnRFZGdlXyA9IGZhbHNlOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLQotICAgICAgLy8gTGVmdCBlZGdlIHRlc3QuCi0gICAgICBpZiAoTWF0aC5hYnMod29ybGRYIC0gaXIubWluKSA8IG5lYXJuZXNzVGhyZXNob2xkV29ybGQpIHsKLSAgICAgICAgaXIubGVmdFNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgaXIubWluID0gd29ybGRYOwotICAgICAgICB0aGlzLmlzTW92aW5nTGVmdEVkZ2VfID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICAvLyBSaWdodCBlZGdlIHRlc3QuCi0gICAgICBpZiAoTWF0aC5hYnMod29ybGRYIC0gaXIubWF4KSA8IG5lYXJuZXNzVGhyZXNob2xkV29ybGQpIHsKLSAgICAgICAgaXIucmlnaHRTZWxlY3RlZCA9IHRydWU7Ci0gICAgICAgIGlyLm1heCA9IHdvcmxkWDsKLSAgICAgICAgdGhpcy5pc01vdmluZ0xlZnRFZGdlXyA9IGZhbHNlOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlyLnNldE1pbkFuZE1heCh3b3JsZFgsIHdvcmxkWCk7Ci0gICAgICBpci5yaWdodFNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgIHRoaXMuaXNNb3ZpbmdMZWZ0RWRnZV8gPSBmYWxzZTsKLSAgICB9LAotCi0gICAgbW91c2VNb3ZlQXRfOiBmdW5jdGlvbih3b3JsZFgsIHksIG1vdXNlRG93bikgewotICAgICAgdmFyIGlyID0gdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZTsKLQotICAgICAgaWYgKG1vdXNlRG93bikgewotICAgICAgICB0aGlzLnVwZGF0ZU1vdmluZ0VkZ2VfKHdvcmxkWCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIGlyID0gdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZTsKLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOwotCi0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgbmVhcm5lc3NUaHJlc2hvbGRXb3JsZCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCg2ICogcGl4ZWxSYXRpbyk7Ci0KLSAgICAgIC8vIExlZnQgZWRnZSB0ZXN0LgotICAgICAgaWYgKE1hdGguYWJzKHdvcmxkWCAtIGlyLm1pbikgPCBuZWFybmVzc1RocmVzaG9sZFdvcmxkKSB7Ci0gICAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IHRydWU7Ci0gICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICAvLyBSaWdodCBlZGdlIHRlc3QuCi0gICAgICBpZiAoTWF0aC5hYnMod29ybGRYIC0gaXIubWF4KSA8IG5lYXJuZXNzVGhyZXNob2xkV29ybGQpIHsKLSAgICAgICAgaXIubGVmdFNlbGVjdGVkID0gZmFsc2U7Ci0gICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSB0cnVlOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IGZhbHNlOwotICAgICAgaXIucmlnaHRTZWxlY3RlZCA9IGZhbHNlOwotICAgICAgcmV0dXJuOwotICAgIH0sCi0KLSAgICB1cGRhdGVNb3ZpbmdFZGdlXzogZnVuY3Rpb24obmV3V29ybGRYKSB7Ci0gICAgICB2YXIgaXIgPSB0aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlOwotICAgICAgdmFyIGEgPSBpci5taW47Ci0gICAgICB2YXIgYiA9IGlyLm1heDsKLSAgICAgIGlmICh0aGlzLmlzTW92aW5nTGVmdEVkZ2VfKQotICAgICAgICBhID0gbmV3V29ybGRYOwotICAgICAgZWxzZQotICAgICAgICBiID0gbmV3V29ybGRYOwotCi0gICAgICBpZiAoYSA8PSBiKQotICAgICAgICBpci5zZXRNaW5BbmRNYXgoYSwgYik7Ci0gICAgICBlbHNlCi0gICAgICAgIGlyLnNldE1pbkFuZE1heChiLCBhKTsKLQotICAgICAgaWYgKGlyLm1pbiA9PSBuZXdXb3JsZFgpIHsKLSAgICAgICAgdGhpcy5pc01vdmluZ0xlZnRFZGdlXyA9IHRydWU7Ci0gICAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IHRydWU7Ci0gICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSBmYWxzZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRoaXMuaXNNb3ZpbmdMZWZ0RWRnZV8gPSBmYWxzZTsKLSAgICAgICAgaXIubGVmdFNlbGVjdGVkID0gZmFsc2U7Ci0gICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSB0cnVlOwotICAgICAgfQotICAgIH0sCi0KLSAgICBtb3VzZVVwXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICAgIHZhciBpciA9IHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2U7Ci0KLSAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IGZhbHNlOwotICAgICAgaXIucmlnaHRTZWxlY3RlZCA9IGZhbHNlOwotCi0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgbWluV2lkdGhWYWx1ZSA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgyICogcGl4ZWxSYXRpbyk7Ci0gICAgICBpZiAoaXIucmFuZ2UgPCBtaW5XaWR0aFZhbHVlKQotICAgICAgICBpci5yZXNldCgpOwotICAgIH0sCi0KLSAgICBnZXRXb3JsZFhGcm9tRXZlbnRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgY2FudmFzID0gdGhpcy52aWV3cG9ydF8ubW9kZWxUcmFja0NvbnRhaW5lci5jYW52YXM7Ci0gICAgICB2YXIgd29ybGRPZmZzZXQgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDsKLSAgICAgIHZhciB2aWV3WCA9IChlLmNsaWVudFggLSB3b3JsZE9mZnNldCkgKiBwaXhlbFJhdGlvOwotICAgICAgcmV0dXJuIHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnhWaWV3VG9Xb3JsZCh2aWV3WCk7Ci0gICAgfSwKLQotCi0gICAgLyoqCi0gICAgICogR2V0IHRoZSBjbG9zZXN0IHBvc2l0aW9uIG9mIGFuIGV2ZW50IHdpdGhpbiBhIHZlcnRpY2FsIHJhbmdlIG9mIHRoZSBtb3VzZQotICAgICAqIHBvc2l0aW9uIGlmIHBvc3NpYmxlLCBvdGhlcndpc2UgdXNlIHRoZSBwb3NpdGlvbiBvZiB0aGUgbW91c2UgcG9pbnRlci4KLSAgICAgKiBAcGFyYW0ge01vdXNlRXZlbnR9IGUgTW91c2UgZXZlbnQgd2l0aCB0aGUgY3VycmVudCBtb3VzZSBjb29yZGluYXRlcy4KLSAgICAgKiBAcmV0dXJuIHsKLSAgICAgKiAgIHtOdW1iZXJ9IHgsIFRoZSB4IGNvb3JkaW5hdGUgaW4gd29ybGQgc3BhY2UuCi0gICAgICogICB7TnVtYmVyfSB5LCBUaGUgeSBjb29yZGluYXRlIGluIHdvcmxkIHNwYWNlLgotICAgICAqICAge051bWJlcn0gaGVpZ2h0LCBUaGUgaGVpZ2h0IG9mIHRoZSBldmVudC4KLSAgICAgKiAgIHtib29sZWFufSBzbmFwcGVkIFdoZXRoZXIgdGhlIGNvb3JkaW5hdGVzIGFyZSBmcm9tIGEgc25hcHBlZCBldmVudCBvcgotICAgICAqICAgICB0aGUgbW91c2UgcG9zaXRpb24uCi0gICAgICogfQotICAgICAqLwotICAgIGdldFNuYXBwZWRUb0V2ZW50UG9zaXRpb25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgRVZFTlRfU05BUF9SQU5HRSA9IDE2ICogcGl4ZWxSYXRpbzsKLQotICAgICAgdmFyIG1vZGVsVHJhY2tDb250YWluZXIgPSB0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyOwotICAgICAgdmFyIG1vZGVsVHJhY2tDb250YWluZXJSZWN0ID0gbW9kZWxUcmFja0NvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLQotICAgICAgdmFyIHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydF87Ci0gICAgICB2YXIgZHQgPSB2aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICAgIHZhciB3b3JsZE1heERpc3QgPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoRVZFTlRfU05BUF9SQU5HRSk7Ci0KLSAgICAgIHZhciB3b3JsZFggPSB0aGlzLmdldFdvcmxkWEZyb21FdmVudF8oZSk7Ci0gICAgICB2YXIgbW91c2VZID0gZS5jbGllbnRZOwotCi0gICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0KLSAgICAgIC8vIExvb2sgYXQgdGhlIHRyYWNrIHVuZGVyIG1vdXNlIHBvc2l0aW9uIGZpcnN0IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0gICAgICBtb2RlbFRyYWNrQ29udGFpbmVyLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBtb3VzZVksIG1vdXNlWSwgc2VsZWN0aW9uKTsKLQotICAgICAgLy8gTG9vayBhdCBhbGwgdHJhY2tzIHZpc2libGUgb24gc2NyZWVuLgotICAgICAgaWYgKCFzZWxlY3Rpb24ubGVuZ3RoKSB7Ci0gICAgICAgIG1vZGVsVHJhY2tDb250YWluZXIuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgICAgICB3b3JsZFgsIHdvcmxkTWF4RGlzdCwKLSAgICAgICAgICAgIG1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcCwgbW9kZWxUcmFja0NvbnRhaW5lclJlY3QuYm90dG9tLAotICAgICAgICAgICAgc2VsZWN0aW9uKTsKLSAgICAgIH0KLQotICAgICAgdmFyIG1pbkRpc3RYID0gd29ybGRNYXhEaXN0OwotICAgICAgdmFyIG1pbkRpc3RZID0gSW5maW5pdHk7Ci0gICAgICB2YXIgcGl4V2lkdGggPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoMSk7Ci0KLSAgICAgIC8vIENyZWF0ZSByZXN1bHQgb2JqZWN0IHdpdGggdGhlIG1vdXNlIGNvb3JkaW5hdGVzLgotICAgICAgdmFyIHJlc3VsdCA9IHsKLSAgICAgICAgeDogd29ybGRYLAotICAgICAgICB5OiBtb3VzZVkgLSBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC50b3AsCi0gICAgICAgIGhlaWdodDogMCwKLSAgICAgICAgc25hcHBlZDogZmFsc2UKLSAgICAgIH07Ci0KLSAgICAgIHZhciBldmVudEJvdW5kcyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdGlvbi5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgZXZlbnQgPSBzZWxlY3Rpb25baV07Ci0gICAgICAgIHZhciB0cmFjayA9IHZpZXdwb3J0LnRyYWNrRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICB2YXIgdHJhY2tSZWN0ID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0KLSAgICAgICAgZXZlbnRCb3VuZHMucmVzZXQoKTsKLSAgICAgICAgZXZlbnQuYWRkQm91bmRzVG9SYW5nZShldmVudEJvdW5kcyk7Ci0gICAgICAgIHZhciBldmVudFg7Ci0gICAgICAgIGlmIChNYXRoLmFicyhldmVudEJvdW5kcy5taW4gLSB3b3JsZFgpIDwKLSAgICAgICAgICAgIE1hdGguYWJzKGV2ZW50Qm91bmRzLm1heCAtIHdvcmxkWCkpIHsKLSAgICAgICAgICBldmVudFggPSBldmVudEJvdW5kcy5taW47Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgZXZlbnRYID0gZXZlbnRCb3VuZHMubWF4OwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGRpc3RYID0gZXZlbnRYIC0gd29ybGRYOwotCi0gICAgICAgIHZhciBldmVudFkgPSB0cmFja1JlY3QudG9wOwotICAgICAgICB2YXIgZXZlbnRIZWlnaHQgPSB0cmFja1JlY3QuaGVpZ2h0OwotICAgICAgICB2YXIgZGlzdFkgPSBNYXRoLmFicyhldmVudFkgKyBldmVudEhlaWdodCAvIDIgLSBtb3VzZVkpOwotCi0gICAgICAgIC8vIFByZWZlciBldmVudHMgd2l0aCBhIGNsb3NlciB5IHBvc2l0aW9uIGlmIHRoZWlyIHggZGlmZmVyZW5jZSBpcyBiZWxvdwotICAgICAgICAvLyB0aGUgd2lkdGggb2YgYSBwaXhlbC4KLSAgICAgICAgaWYgKChkaXN0WCA8PSBtaW5EaXN0WCB8fCBNYXRoLmFicyhkaXN0WCAtIG1pbkRpc3RYKSA8IHBpeFdpZHRoKSAmJgotICAgICAgICAgICAgZGlzdFkgPCBtaW5EaXN0WSkgewotICAgICAgICAgIG1pbkRpc3RYID0gZGlzdFg7Ci0gICAgICAgICAgbWluRGlzdFkgPSBkaXN0WTsKLQotICAgICAgICAgIC8vIFJldHJpZXZlIHRoZSBldmVudCBwb3NpdGlvbiBmcm9tIHRoZSBoaXQuCi0gICAgICAgICAgcmVzdWx0LnggPSBldmVudFg7Ci0gICAgICAgICAgcmVzdWx0LnkgPSBldmVudFkgKwotICAgICAgICAgICAgICBtb2RlbFRyYWNrQ29udGFpbmVyLnNjcm9sbFRvcCAtIG1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcDsKLSAgICAgICAgICByZXN1bHQuaGVpZ2h0ID0gZXZlbnRIZWlnaHQ7Ci0gICAgICAgICAgcmVzdWx0LnNuYXBwZWQgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgVGltaW5nVG9vbDogVGltaW5nVG9vbAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1pbmdfdG9vbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdGltaW5nX3Rvb2xfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2E5ZTEwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90aW1pbmdfdG9vbF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWluZ190b29sLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gY3JlYXRlMTAwUHhXaWRlVmlld3BvcnRJbnRvMTBXaWRlV29ybGQoKSB7Ci0gICAgdmFyIHZwID0gbmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgdmFyIHRlbXBEaXNwbGF5VHJhbnNmb3JtID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7Ci0gICAgdGVtcERpc3BsYXlUcmFuc2Zvcm0ueFNldFdvcmxkQm91bmRzKDAsIDEwLCAxMDApOwotICAgIHZwLnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseSh0ZW1wRGlzcGxheVRyYW5zZm9ybSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKDApLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwodnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKDEwMCksIDEwKTsKLQotICAgIHJldHVybiB2cDsKLSAgfQotCi0gIHRlc3QoJ2RyYWdMZWZ0SW50ZXJlc3RSZWdpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdnAgPSBjcmVhdGUxMDBQeFdpZGVWaWV3cG9ydEludG8xMFdpZGVXb3JsZCgpOwotICAgIHZwLmludGVyZXN0UmFuZ2UubWluID0gMTsKLSAgICB2cC5pbnRlcmVzdFJhbmdlLm1heCA9IDk7Ci0gICAgdmFyIHRvb2wgPSBuZXcgdHIuYy5UaW1pbmdUb29sKHZwKTsKLQotICAgIHRvb2wubW91c2VEb3duQXRfKDEuMSwgMCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh2cC5pbnRlcmVzdFJhbmdlLmxlZnRTZWxlY3RlZCk7Ci0gICAgdG9vbC5tb3VzZU1vdmVBdF8oMS41LCAwLCB0cnVlKTsKLSAgICBhc3NlcnQuZXF1YWwodnAuaW50ZXJlc3RSYW5nZS5taW4sIDEuNSk7Ci0gICAgdG9vbC5tb3VzZVVwXygpOwotICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1pbiwgMS41KTsKLSAgICBhc3NlcnQuaXNGYWxzZSh2cC5pbnRlcmVzdFJhbmdlLmxlZnRTZWxlY3RlZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2RyYWdSaWdodEludGVyZXN0UmVnaW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHZwID0gY3JlYXRlMTAwUHhXaWRlVmlld3BvcnRJbnRvMTBXaWRlV29ybGQoKTsKLSAgICB2cC5pbnRlcmVzdFJhbmdlLm1pbiA9IDE7Ci0gICAgdnAuaW50ZXJlc3RSYW5nZS5tYXggPSA5OwotICAgIHZhciB0b29sID0gbmV3IHRyLmMuVGltaW5nVG9vbCh2cCk7Ci0KLSAgICB0b29sLm1vdXNlRG93bkF0Xyg5LjEsIDApOwotICAgIGFzc2VydC5pc1RydWUodnAuaW50ZXJlc3RSYW5nZS5yaWdodFNlbGVjdGVkKTsKLSAgICB0b29sLm1vdXNlTW92ZUF0Xyg4LCAwLCB0cnVlKTsKLSAgICBhc3NlcnQuZXF1YWwodnAuaW50ZXJlc3RSYW5nZS5tYXgsIDgpOwotICAgIHRvb2wubW91c2VVcF8oKTsKLSAgICBhc3NlcnQuZXF1YWwodnAuaW50ZXJlc3RSYW5nZS5tYXgsIDgpOwotICAgIGFzc2VydC5pc0ZhbHNlKHZwLmludGVyZXN0UmFuZ2UubGVmdFNlbGVjdGVkKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZHJhZ0luTmV3U3BhY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdnAgPSBjcmVhdGUxMDBQeFdpZGVWaWV3cG9ydEludG8xMFdpZGVXb3JsZCgpOwotICAgIHZwLmludGVyZXN0UmFuZ2UubWluID0gMTsKLSAgICB2cC5pbnRlcmVzdFJhbmdlLm1heCA9IDk7Ci0gICAgdmFyIHRvb2wgPSBuZXcgdHIuYy5UaW1pbmdUb29sKHZwKTsKLQotICAgIHRvb2wubW91c2VEb3duQXRfKDUsIDApOwotICAgIGFzc2VydC5pc1RydWUodnAuaW50ZXJlc3RSYW5nZS5yaWdodFNlbGVjdGVkKTsKLSAgICBhc3NlcnQuZXF1YWwodnAuaW50ZXJlc3RSYW5nZS5taW4sIDUpOwotICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1heCwgNSk7Ci0gICAgdG9vbC5tb3VzZU1vdmVBdF8oNCwgMCwgdHJ1ZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZwLmludGVyZXN0UmFuZ2UubWluLCA0KTsKLSAgICBhc3NlcnQuZXF1YWwodnAuaW50ZXJlc3RSYW5nZS5tYXgsIDUpOwotICAgIGFzc2VydC5pc1RydWUodnAuaW50ZXJlc3RSYW5nZS5sZWZ0U2VsZWN0ZWQpOwotICAgIHRvb2wubW91c2VVcF8oKTsKLSAgICBhc3NlcnQuZXF1YWwodnAuaW50ZXJlc3RSYW5nZS5taW4sIDQpOwotICAgIGFzc2VydC5pc0ZhbHNlKHZwLmludGVyZXN0UmFuZ2UubGVmdFNlbGVjdGVkKTsKLSAgICBhc3NlcnQuaXNGYWxzZSh2cC5pbnRlcmVzdFJhbmdlLnJpZ2h0U2VsZWN0ZWQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvYWxlcnRfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvYWxlcnRfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTg0NGU0Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2FsZXJ0X3RyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9sZXR0ZXJfZG90X3RyYWNrLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYW4gYXJyYXkgb2YgYWxlcnQgb2JqZWN0cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtIZWFkaW5nVHJhY2t9Ci0gICAqLwotICB2YXIgQWxlcnRUcmFjayA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ2FsZXJ0LXRyYWNrJywgdHIuYy50cmFja3MuTGV0dGVyRG90VHJhY2spOwotCi0gIEFsZXJ0VHJhY2sucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuTGV0dGVyRG90VHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5MZXR0ZXJEb3RUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgICB0aGlzLmhlYWRpbmcgPSAnQWxlcnRzJzsKLSAgICAgIHRoaXMuYWxlcnRzXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IGFsZXJ0cygpIHsKLSAgICAgIHJldHVybiB0aGlzLmFsZXJ0c187Ci0gICAgfSwKLQotICAgIHNldCBhbGVydHMoYWxlcnRzKSB7Ci0gICAgICB0aGlzLmFsZXJ0c18gPSBhbGVydHM7Ci0gICAgICBpZiAoYWxlcnRzID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5pdGVtcyA9IHVuZGVmaW5lZDsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuYWxlcnRzXy5tYXAoZnVuY3Rpb24oYWxlcnQpIHsKLSAgICAgICAgcmV0dXJuIG5ldyB0ci5jLnRyYWNrcy5MZXR0ZXJEb3QoCi0gICAgICAgICAgICBhbGVydCwgU3RyaW5nLmZyb21DaGFyQ29kZSg5ODg4KSwgYWxlcnQuY29sb3JJZCwgYWxlcnQuc3RhcnQpOwotICAgICAgfSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQWxlcnRUcmFjazogQWxlcnRUcmFjawotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvYWxlcnRfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9hbGVydF90cmFja190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxZTljNmYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9hbGVydF90cmFja190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9hbGVydF90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3Rpb25fc3RhdGUuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgQWxlcnRUcmFjayA9IHRyLmMudHJhY2tzLkFsZXJ0VHJhY2s7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0gIHZhciBWaWV3cG9ydCA9IHRyLmMuVGltZWxpbmVWaWV3cG9ydDsKLQotICB2YXIgQUxFUlRfSU5GT18xID0gbmV3IHRyLm1vZGVsLkV2ZW50SW5mbygKLSAgICAnQWxlcnQgMScsICdPbmUgYWxlcnQnKTsKLSAgdmFyIEFMRVJUX0lORk9fMiA9IG5ldyB0ci5tb2RlbC5FdmVudEluZm8oCi0gICAgJ0FsZXJ0IDInLCAnQW5vdGhlciBhbGVydCcpOwotCi0gIHZhciBjcmVhdGVBbGVydHMgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgYWxlcnRzID0gWwotICAgICAgbmV3IHRyLm1vZGVsLkFsZXJ0KEFMRVJUX0lORk9fMSwgNSksCi0gICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCAyMCksCi0gICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18yLCAzNSksCi0gICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18yLCA1MCkKLSAgICBdOwotICAgIHJldHVybiBhbGVydHM7Ci0gIH07Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYWxlcnRzID0gY3JlYXRlQWxlcnRzKCk7Ci0gICAgYWxlcnRzWzFdLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gQWxlcnRUcmFjayh2aWV3cG9ydCk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmludmFsaWRhdGUoKTsKLQotICAgIHRyYWNrLmFsZXJ0cyA9IGFsZXJ0czsKLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgNTAsIHRyYWNrLmNsaWVudFdpZHRoKTsKLSAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotCi0KLSAgICBhc3NlcnQuZXF1YWwoNSwgdHJhY2suaXRlbXNbMF0uc3RhcnQpOwotICB9KTsKLQotICB0ZXN0KCdtb2RlbE1hcHBpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYWxlcnRzID0gY3JlYXRlQWxlcnRzKCk7Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIHRyYWNrID0gQWxlcnRUcmFjayh2aWV3cG9ydCk7Ci0gICAgdHJhY2suYWxlcnRzID0gYWxlcnRzOwotCi0gICAgdmFyIGEwID0gdHJhY2suaXRlbXNbMF0ubW9kZWxJdGVtOwotICAgIGFzc2VydC5lcXVhbChhMCwgYWxlcnRzWzBdKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2Fubm90YXRpb25fdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9hbm5vdGF0aW9uX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMzZjY5OC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2Fubm90YXRpb25fdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy5hbm5vdGF0aW9ucycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSBiYXNlIGNsYXNzIGZvciBhbGwgYW5ub3RhdGlvbiB2aWV3cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBBbm5vdGF0aW9uVmlldyh2aWV3cG9ydCwgYW5ub3RhdGlvbikgewotICB9Ci0KLSAgQW5ub3RhdGlvblZpZXcucHJvdG90eXBlID0gewotICAgIGRyYXc6IGZ1bmN0aW9uKGN0eCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBBbm5vdGF0aW9uVmlldzogQW5ub3RhdGlvblZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2FzeW5jX3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2FzeW5jX3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwYjViMDMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9hc3luY19zbGljZV9ncm91cF90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL211bHRpX3Jvd190cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGEgQXN5bmNTbGljZUdyb3VwLgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge011bHRpUm93VHJhY2t9Ci0gICAqLwotICB2YXIgQXN5bmNTbGljZUdyb3VwVHJhY2sgPSB0ci5iLnVpLmRlZmluZSgKLSAgICAgICdhc3luYy1zbGljZS1ncm91cC10cmFjaycsCi0gICAgICB0ci5jLnRyYWNrcy5NdWx0aVJvd1RyYWNrKTsKLQotICBBc3luY1NsaWNlR3JvdXBUcmFjay5wcm90b3R5cGUgPSB7Ci0KLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnYXN5bmMtc2xpY2UtZ3JvdXAtdHJhY2snKTsKLSAgICAgIHRoaXMuZ3JvdXBfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBhZGRTdWJUcmFja186IGZ1bmN0aW9uKHNsaWNlcykgewotICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICB0cmFjay5zbGljZXMgPSBzbGljZXM7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICAgIHRyYWNrLmFzeW5jU3R5bGUgPSB0cnVlOwotICAgICAgcmV0dXJuIHRyYWNrOwotICAgIH0sCi0KLSAgICBnZXQgZ3JvdXAoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ncm91cF87Ci0gICAgfSwKLQotICAgIHNldCBncm91cChncm91cCkgewotICAgICAgdGhpcy5ncm91cF8gPSBncm91cDsKLSAgICAgIHRoaXMuc2V0SXRlbXNUb0dyb3VwKHRoaXMuZ3JvdXBfLnNsaWNlcywgdGhpcy5ncm91cF8pOwotICAgIH0sCi0KLSAgICBnZXQgZXZlbnRDb250YWluZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ncm91cDsKLSAgICB9LAotCi0gICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKLSAgICAgIGNvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMuZ3JvdXAsIHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBCcmVha3MgdXAgdGhlIGxpc3Qgb2Ygc2xpY2VzIGludG8gTiByb3dzLCBlYWNoIG9mIHdoaWNoIGlzIGEgbGlzdCBvZgotICAgICAqIHNsaWNlcyB0aGF0IGFyZSBub24gb3ZlcmxhcHBpbmcuCi0gICAgICoKLSAgICAgKiBJdCB1c2VzIGEgdmVyeSBzaW1wbGUgYXBwcm9hY2g6IHdhbGsgdGhyb3VnaCB0aGUgc2xpY2VzIGluIHNvcnRlZCBvcmRlcgotICAgICAqIGJ5IHN0YXJ0IHRpbWUuIEZvciBlYWNoIHNsaWNlLCB0cnkgdG8gZml0IGl0IGluIGFuIGV4aXN0aW5nIHN1YlJvdy4gSWYKLSAgICAgKiBpdCBkb2Vzbid0IGZpdCBpbiBhbnkgc3Vicm93LCBtYWtlIGFub3RoZXIgc3ViUm93LiBJdCB0aGVuIGZpdHMgbmVzdGVkCi0gICAgICogc3ViU2xpY2VzIHJlY3Vyc2l2ZWx5IGludG8gcm93cyBiZWxvdyBwYXJlbnQgc2xpY2UgYWNjb3JkaW5nIHRvIHdoaWNoCi0gICAgICogbmVzdGVkIGxldmVsIHRoZSBjaGlsZCBpcyBpbi4KLSAgICAgKi8KLSAgICBidWlsZFN1YlJvd3NfOiBmdW5jdGlvbihzbGljZXMsIG9wdF9za2lwU29ydCkgewotICAgICAgaWYgKCFvcHRfc2tpcFNvcnQpIHsKLSAgICAgICAgc2xpY2VzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICAgIHJldHVybiB4LnN0YXJ0IC0geS5zdGFydDsKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgdHJ1ZSBpZiBpdCBjYW4gcHV0IHRoZSBzbGljZSBvbiByb3cgbi4KLSAgICAgIHZhciBmaW5kTGV2ZWwgPSBmdW5jdGlvbihzbGljZVRvUHV0LCByb3dzLCBuKSB7Ci0gICAgICAgIGlmIChuID49IHJvd3MubGVuZ3RoKQotICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBXZSBhbHdheXMgY2FuIG1ha2UgZW1wdHkgcm93cyB0byBwdXQgdGhlIHNsaWNlLgotICAgICAgICB2YXIgc3ViUm93ID0gcm93c1tuXTsKLSAgICAgICAgdmFyIGxhc3RTbGljZUluU3ViUm93ID0gc3ViUm93W3N1YlJvdy5sZW5ndGggLSAxXTsKLSAgICAgICAgaWYgKHNsaWNlVG9QdXQuc3RhcnQgPj0gbGFzdFNsaWNlSW5TdWJSb3cuZW5kKSB7Ci0gICAgICAgICAgaWYgKHNsaWNlVG9QdXQuc3ViU2xpY2VzID09PSB1bmRlZmluZWQgfHwKLSAgICAgICAgICAgICAgc2xpY2VUb1B1dC5zdWJTbGljZXMubGVuZ3RoID09PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gTWFrZSBzdXJlIG5lc3RlZCBzdWIgc2xpY2VzIGNhbiBiZSBmaXR0ZWQgaW4gYXMgd2VsbC4KLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlVG9QdXQuc3ViU2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoIWZpbmRMZXZlbChzbGljZVRvUHV0LnN1YlNsaWNlc1tpXSwgcm93cywgbiArIDEpKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLQotICAgICAgdmFyIHN1YlJvd3MgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IHNsaWNlc1tpXTsKLQotICAgICAgICB2YXIgZm91bmQgPSBmYWxzZTsKLSAgICAgICAgdmFyIGluZGV4ID0gc3ViUm93cy5sZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3ViUm93cy5sZW5ndGg7IGorKykgewotICAgICAgICAgIGlmIChmaW5kTGV2ZWwoc2xpY2UsIHN1YlJvd3MsIGopKSB7Ci0gICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICBpbmRleCA9IGo7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFmb3VuZCkKLSAgICAgICAgICBzdWJSb3dzLnB1c2goW10pOwotICAgICAgICBzdWJSb3dzW2luZGV4XS5wdXNoKHNsaWNlKTsKLQotICAgICAgICAvLyBGaXQgc3ViU2xpY2VzIHJlY3Vyc2l2ZWx5IGludG8gcm93cyBiZWxvdyBwYXJlbnQuCi0gICAgICAgIHZhciBmaXRTdWJTbGljZXNSZWN1cnNpdmVseSA9IGZ1bmN0aW9uKHN1YlNsaWNlcywgbGV2ZWwsIHJvd3MpIHsKLSAgICAgICAgICBpZiAoc3ViU2xpY2VzID09PSB1bmRlZmluZWQgfHwgc3ViU2xpY2VzLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICBpZiAobGV2ZWwgPT09IHJvd3MubGVuZ3RoKQotICAgICAgICAgICAgcm93cy5wdXNoKFtdKTsKLSAgICAgICAgICBmb3IgKHZhciBoID0gMDsgaCA8IHN1YlNsaWNlcy5sZW5ndGg7IGgrKykgewotICAgICAgICAgICAgIHJvd3NbbGV2ZWxdLnB1c2goc3ViU2xpY2VzW2hdKTsKLSAgICAgICAgICAgICBmaXRTdWJTbGljZXNSZWN1cnNpdmVseShzdWJTbGljZXNbaF0uc3ViU2xpY2VzLCBsZXZlbCArIDEsIHJvd3MpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmaXRTdWJTbGljZXNSZWN1cnNpdmVseShzbGljZS5zdWJTbGljZXMsIGluZGV4ICsgMSwgc3ViUm93cyk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gc3ViUm93czsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBBc3luY1NsaWNlR3JvdXBUcmFjazogQXN5bmNTbGljZUdyb3VwVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2FzeW5jX3NsaWNlX2dyb3VwX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvYXN5bmNfc2xpY2VfZ3JvdXBfdHJhY2tfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOWNlYjlkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvYXN5bmNfc2xpY2VfZ3JvdXBfdHJhY2tfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gIHZhciBBc3luY1NsaWNlR3JvdXAgPSB0ci5tb2RlbC5Bc3luY1NsaWNlR3JvdXA7Ci0gIHZhciBBc3luY1NsaWNlR3JvdXBUcmFjayA9IHRyLmMudHJhY2tzLkFzeW5jU2xpY2VHcm91cFRyYWNrOwotICB2YXIgUHJvY2VzcyA9IHRyLm1vZGVsLlByb2Nlc3M7Ci0gIHZhciBQcm9jZXNzVHJhY2sgPSB0ci5jLnRyYWNrcy5Qcm9jZXNzVHJhY2s7Ci0gIHZhciBUaHJlYWQgPSB0ci5tb2RlbC5UaHJlYWQ7Ci0gIHZhciBUaHJlYWRUcmFjayA9IHRyLmMudHJhY2tzLlRocmVhZFRyYWNrOwotICB2YXIgbmV3QXN5bmNTbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlOwotICB2YXIgbmV3QXN5bmNTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VOYW1lZDsKLQotICB0ZXN0KCdmaWx0ZXJTdWJSb3dzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbmV3IFByb2Nlc3MobW9kZWwsIDEpOwotICAgIHZhciB0MSA9IG5ldyBUaHJlYWQocDEsIDEpOwotICAgIHZhciBnID0gbmV3IEFzeW5jU2xpY2VHcm91cCh0MSk7Ci0gICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMCwgMSwgdDEsIHQxKSk7Ci0gICAgdmFyIHRyYWNrID0gbmV3IEFzeW5jU2xpY2VHcm91cFRyYWNrKG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoKSk7Ci0gICAgdHJhY2suZ3JvdXAgPSBnOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmNoaWxkcmVuLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0cmFjay5oYXNWaXNpYmxlQ29udGVudCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3JlYnVpbGRTdWJSb3dzX3R3b05vbk92ZXJsYXBwaW5nU2xpY2VzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbmV3IFByb2Nlc3MobW9kZWwsIDEpOwotICAgIHZhciB0MSA9IG5ldyBUaHJlYWQocDEsIDEpOwotICAgIHZhciBnID0gbmV3IEFzeW5jU2xpY2VHcm91cCh0MSk7Ci0gICAgdmFyIHMxID0gbmV3QXN5bmNTbGljZSgwLCAxLCB0MSwgdDEpOwotICAgIHZhciBzdWJzMSA9IG5ld0FzeW5jU2xpY2VOYW1lZCgnYicsIDAsIDEsIHQxLCB0MSk7Ci0gICAgczEuc3ViU2xpY2VzID0gW3N1YnMxXTsKLSAgICBnLnB1c2goczEpOwotICAgIGcucHVzaChuZXdBc3luY1NsaWNlKDEsIDEsIHQxLCB0MSkpOwotICAgIHZhciB0cmFjayA9IG5ldyBBc3luY1NsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZzsKLSAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV1bMF0sIGcuc2xpY2VzWzBdLnN1YlNsaWNlc1swXSk7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKGcuc2xpY2VzWzFdLnN1YlNsaWNlcywgW10pOwotICB9KTsKLQotICB0ZXN0KCdyZWJ1aWxkU3ViUm93c190d29PdmVybGFwcGluZ1NsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG5ldyBQcm9jZXNzKG1vZGVsLCAxKTsKLSAgICB2YXIgdDEgPSBuZXcgVGhyZWFkKHAxLCAxKTsKLSAgICB2YXIgZyA9IG5ldyBBc3luY1NsaWNlR3JvdXAodDEpOwotCi0gICAgdmFyIHMxID0gbmV3QXN5bmNTbGljZSgwLCAxLCB0MSwgdDEpOwotICAgIHZhciBzdWJzMSA9IG5ld0FzeW5jU2xpY2VOYW1lZCgnYicsIDAsIDEsIHQxLCB0MSk7Ci0gICAgczEuc3ViU2xpY2VzID0gW3N1YnMxXTsKLSAgICB2YXIgczIgPSBuZXdBc3luY1NsaWNlKDAsIDEuNSwgdDEsIHQxKTsKLSAgICB2YXIgc3ViczIgPSBuZXdBc3luY1NsaWNlTmFtZWQoJ2InLCAwLCAxLCB0MSwgdDEpOwotICAgIHMyLnN1YlNsaWNlcyA9IFtzdWJzMl07Ci0gICAgZy5wdXNoKHMxKTsKLSAgICBnLnB1c2goczIpOwotCi0gICAgZy51cGRhdGVCb3VuZHMoKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBBc3luY1NsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZzsKLQotICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKLQotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzLmxlbmd0aCwgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF0ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1sxXS5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzJdLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbM10ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1sxXVswXSwgZy5zbGljZXNbMF0uc3ViU2xpY2VzWzBdKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1szXVswXSwgZy5zbGljZXNbMV0uc3ViU2xpY2VzWzBdKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVidWlsZFN1YlJvd3NfdGhyZWVQYXJ0bHlPdmVybGFwcGluZ1NsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG5ldyBQcm9jZXNzKG1vZGVsLCAxKTsKLSAgICB2YXIgdDEgPSBuZXcgVGhyZWFkKHAxLCAxKTsKLSAgICB2YXIgZyA9IG5ldyBBc3luY1NsaWNlR3JvdXAodDEpOwotICAgIGcucHVzaChuZXdBc3luY1NsaWNlKDAsIDEsIHQxLCB0MSkpOwotICAgIGcucHVzaChuZXdBc3luY1NsaWNlKDAsIDEuNSwgdDEsIHQxKSk7Ci0gICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMSwgMS41LCB0MSwgdDEpKTsKLSAgICBnLnVwZGF0ZUJvdW5kcygpOwotICAgIHZhciB0cmFjayA9IG5ldyBBc3luY1NsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZzsKLSAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF1bMF0sIGcuc2xpY2VzWzBdKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXVsxXSwgZy5zbGljZXNbMl0pOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdWzBdLCBnLnNsaWNlc1sxXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV0ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuc2FtZU1lbWJlcnMoZy5zbGljZXNbMF0uc3ViU2xpY2VzLCBbXSk7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKGcuc2xpY2VzWzFdLnN1YlNsaWNlcywgW10pOwotICAgIGFzc2VydC5zYW1lTWVtYmVycyhnLnNsaWNlc1syXS5zdWJTbGljZXMsIFtdKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVidWlsZFN1YlJvd3NfdGhyZWVPdmVybGFwcGluZ1NsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG5ldyBQcm9jZXNzKG1vZGVsLCAxKTsKLSAgICB2YXIgdDEgPSBuZXcgVGhyZWFkKHAxLCAxKTsKLSAgICB2YXIgZyA9IG5ldyBBc3luY1NsaWNlR3JvdXAodDEpOwotCi0gICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMCwgMSwgdDEsIHQxKSk7Ci0gICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMCwgMS41LCB0MSwgdDEpKTsKLSAgICBnLnB1c2gobmV3QXN5bmNTbGljZSgyLCAxLCB0MSwgdDEpKTsKLSAgICBnLnVwZGF0ZUJvdW5kcygpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IEFzeW5jU2xpY2VHcm91cFRyYWNrKG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoKSk7Ci0gICAgdHJhY2suZ3JvdXAgPSBnOwotCi0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF0ubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1sxXS5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdWzBdLCBnLnNsaWNlc1swXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV1bMF0sIGcuc2xpY2VzWzFdKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXVsxXSwgZy5zbGljZXNbMl0pOwotICB9KTsKLQotICAvLyBUZXN0cyB0aGF0IG5vIHNsaWNlcyBhbmQgdGhlaXIgc3ViIHNsaWNlcyBvdmVybGFwLgotICB0ZXN0KCdyZWJ1aWxkU3ViUm93c19Ob25PdmVybGFwcGluZ1N1YlNsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG5ldyBQcm9jZXNzKG1vZGVsLCAxKTsKLSAgICB2YXIgdDEgPSBuZXcgVGhyZWFkKHAxLCAxKTsKLSAgICB2YXIgZyA9IG5ldyBBc3luY1NsaWNlR3JvdXAodDEpOwotCi0gICAgdmFyIHNsaWNlMSA9IG5ld0FzeW5jU2xpY2UoMCwgNSwgdDEsIHQxKTsKLSAgICB2YXIgc2xpY2UxQ2hpbGQgPSBuZXdBc3luY1NsaWNlKDEsIDIsIHQxLCB0MSk7Ci0gICAgc2xpY2UxLnN1YlNsaWNlcyA9IFtzbGljZTFDaGlsZF07Ci0gICAgdmFyIHNsaWNlMiA9IG5ld0FzeW5jU2xpY2UoMywgNSwgdDEsIHQxKTsKLSAgICB2YXIgc2xpY2UzID0gbmV3QXN5bmNTbGljZSg1LCA0LCB0MSwgdDEpOwotICAgIHZhciBzbGljZTNDaGlsZCA9IG5ld0FzeW5jU2xpY2UoNiwgMiwgdDEsIHQxKTsKLSAgICBzbGljZTMuc3ViU2xpY2VzID0gW3NsaWNlM0NoaWxkXTsKLSAgICBnLnB1c2goc2xpY2UxKTsKLSAgICBnLnB1c2goc2xpY2UyKTsKLSAgICBnLnB1c2goc2xpY2UzKTsKLSAgICBnLnVwZGF0ZUJvdW5kcygpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IEFzeW5jU2xpY2VHcm91cFRyYWNrKG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoKSk7Ci0gICAgdHJhY2suZ3JvdXAgPSBnOwotCi0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotICAgIC8vIENoZWNrcyBlYWNoIHN1YiByb3cgdG8gc2VlIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhbnkgb3ZlcmxhcHBpbmcgc2xpY2VzLgotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ViUm93cy5sZW5ndGg7IGkrKykgewotICAgICAgdmFyIHJvdyA9IHN1YlJvd3NbaV07Ci0gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJvdy5sZW5ndGg7IGorKykgewotICAgICAgICBmb3IgKHZhciBrID0gaiArIDE7IGsgPCByb3cubGVuZ3RoOyBrKyspIHsKLSAgICAgICAgICBhc3NlcnQuaXNUcnVlKHJvd1tqXS5lbmQgPD0gcm93W2tdLnN0YXJ0KTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgfSk7Ci0KLSAgdGVzdCgncmVidWlsZFN1YlJvd3NfTm9uT3ZlcmxhcHBpbmdTdWJTbGljZXNUaHJlZU5lc3RlZExldmVscycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG5ldyBQcm9jZXNzKG1vZGVsLCAxKTsKLSAgICB2YXIgdDEgPSBuZXcgVGhyZWFkKHAxLCAxKTsKLSAgICB2YXIgZyA9IG5ldyBBc3luY1NsaWNlR3JvdXAodDEpOwotCi0gICAgdmFyIHNsaWNlMSA9IG5ld0FzeW5jU2xpY2UoMCwgNCwgdDEsIHQxKTsKLSAgICB2YXIgc2xpY2UxQ2hpbGQgPSBuZXdBc3luY1NsaWNlKDEsIDIsIHQxLCB0MSk7Ci0gICAgc2xpY2UxLnN1YlNsaWNlcyA9IFtzbGljZTFDaGlsZF07Ci0gICAgdmFyIHNsaWNlMiA9IG5ld0FzeW5jU2xpY2UoMiwgNywgdDEsIHQxKTsKLSAgICB2YXIgc2xpY2UzID0gbmV3QXN5bmNTbGljZSg1LCA1LCB0MSwgdDEpOwotICAgIHZhciBzbGljZTNDaGlsZCA9IG5ld0FzeW5jU2xpY2UoNiwgMywgdDEsIHQxKTsKLSAgICB2YXIgc2xpY2UzQ2hpbGQyID0gbmV3QXN5bmNTbGljZSg3LCAxLCB0MSwgdDEpOwotICAgIHNsaWNlMy5zdWJTbGljZXMgPSBbc2xpY2UzQ2hpbGRdOwotICAgIHNsaWNlM0NoaWxkLnN1YlNsaWNlcyA9IFtzbGljZTNDaGlsZDJdOwotICAgIGcucHVzaChzbGljZTEpOwotICAgIGcucHVzaChzbGljZTIpOwotICAgIGcucHVzaChzbGljZTMpOwotICAgIGcudXBkYXRlQm91bmRzKCk7Ci0KLSAgICB2YXIgdHJhY2sgPSBuZXcgQXN5bmNTbGljZUdyb3VwVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5ncm91cCA9IGc7Ci0KLSAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7Ci0gICAgLy8gQ2hlY2tzIGVhY2ggc3ViIHJvdyB0byBzZWUgdGhhdCB3ZSBkb24ndCBoYXZlIGFueSBvdmVybGFwcGluZyBzbGljZXMuCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdWJSb3dzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICB2YXIgcm93ID0gc3ViUm93c1tpXTsKLSAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7Ci0gICAgICAgIGZvciAodmFyIGsgPSBqICsgMTsgayA8IHJvdy5sZW5ndGg7IGsrKykgewotICAgICAgICAgIGFzc2VydC5pc1RydWUocm93W2pdLmVuZCA8PSByb3dba10uc3RhcnQpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICB9KTsKLQotICB0ZXN0KCdhc3luY1NsaWNlR3JvdXBDb250YWluZXJNYXAnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdnAgPSBuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCk7Ci0gICAgdmFyIGNvbnRhaW5lclRvVHJhY2sgPSB2cC5jb250YWluZXJUb1RyYWNrT2JqOwotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7Ci0gICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNDU2KTsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgQXN5bmNTbGljZUdyb3VwKHRocmVhZCk7Ci0KLSAgICB2YXIgcHJvY2Vzc1RyYWNrID0gbmV3IFByb2Nlc3NUcmFjayh2cCk7Ci0gICAgdmFyIHRocmVhZFRyYWNrID0gbmV3IFRocmVhZFRyYWNrKHZwKTsKLSAgICB2YXIgZ3JvdXBUcmFjayA9IG5ldyBBc3luY1NsaWNlR3JvdXBUcmFjayh2cCk7Ci0gICAgcHJvY2Vzc1RyYWNrLnByb2Nlc3MgPSBwcm9jZXNzOwotICAgIHRocmVhZFRyYWNrLnRocmVhZCA9IHRocmVhZDsKLSAgICBncm91cFRyYWNrLmdyb3VwID0gZ3JvdXA7Ci0gICAgcHJvY2Vzc1RyYWNrLmFwcGVuZENoaWxkKHRocmVhZFRyYWNrKTsKLSAgICB0aHJlYWRUcmFjay5hcHBlbmRDaGlsZChncm91cFRyYWNrKTsKLQotICAgIGFzc2VydC5lcXVhbChwcm9jZXNzVHJhY2suZXZlbnRDb250YWluZXIsIHByb2Nlc3MpOwotICAgIGFzc2VydC5lcXVhbCh0aHJlYWRUcmFjay5ldmVudENvbnRhaW5lciwgdGhyZWFkKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXBUcmFjay5ldmVudENvbnRhaW5lciwgZ3JvdXApOwotCi0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMnKSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMuNDU2JykpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZCgKLSAgICAgICAgY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMy40NTYuQXN5bmNTbGljZUdyb3VwJykpOwotCi0gICAgdnAubW9kZWxUcmFja0NvbnRhaW5lciA9IHsKLSAgICAgIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOiBmdW5jdGlvbihjb250YWluZXJUb1RyYWNrT2JqKSB7Ci0gICAgICAgIHByb2Nlc3NUcmFjay5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrT2JqKTsKLSAgICAgIH0sCi0gICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigpIHt9Ci0gICAgfTsKLSAgICB2cC5yZWJ1aWxkQ29udGFpbmVyVG9UcmFja01hcCgpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCBhbGwgdHJhY2tzIGNhbGwgY2hpbGRzJyBhZGRDb250YWluZXJzVG9UcmFja01hcCgpCi0gICAgLy8gYnkgY2hlY2tpbmcgdGhlIHJlc3VsdGluZyBtYXAuCi0gICAgYXNzZXJ0LmVxdWFsKGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMnKSwgcHJvY2Vzc1RyYWNrKTsKLSAgICBhc3NlcnQuZXF1YWwoY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMy40NTYnKSwgdGhyZWFkVHJhY2spOwotICAgIGFzc2VydC5lcXVhbChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzLjQ1Ni5Bc3luY1NsaWNlR3JvdXAnKSwKLSAgICAgICAgZ3JvdXBUcmFjayk7Ci0KLSAgICAvLyBDaGVjayB0aGUgdHJhY2sncyBldmVudENvbnRhaW5lciBnZXR0ZXIuCi0gICAgYXNzZXJ0LmVxdWFsKHByb2Nlc3NUcmFjay5ldmVudENvbnRhaW5lciwgcHJvY2Vzcyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRocmVhZFRyYWNrLmV2ZW50Q29udGFpbmVyLCB0aHJlYWQpOwotICAgIGFzc2VydC5lcXVhbChncm91cFRyYWNrLmV2ZW50Q29udGFpbmVyLCBncm91cCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY2hhcnRfYXhpcy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9heGlzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlYzVlODguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9heGlzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0KLSAgLyoqCi0gICAqIEEgdmVydGljYWwgYXhpcyBmb3IgYSAoc2V0IG9mKSBjaGFydCBzZXJpZXMgd2hpY2ggbWFwcyBhbiBhcmJpdHJhcnkgcmFuZ2UKLSAgICogb2YgdmFsdWVzIFttaW4sIG1heF0gdG8gdGhlIHVuaXQgcmFuZ2UgWzAsIDFdLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENoYXJ0QXhpcyhvcHRfbWluLCBvcHRfbWF4KSB7Ci0gICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOwotICAgIHRoaXMuYm91bmRzID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICBpZiAob3B0X21pbiAhPT0gdW5kZWZpbmVkKQotICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUob3B0X21pbik7Ci0gICAgaWYgKG9wdF9tYXggIT09IHVuZGVmaW5lZCkKLSAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKG9wdF9tYXgpOwotICB9OwotCi0gIENoYXJ0QXhpcy5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IGd1aWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ndWlkXzsKLSAgICB9LAotCi0gICAgdmFsdWVUb1VuaXRSYW5nZTogZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgIGlmICh0aGlzLmJvdW5kcy5pc0VtcHR5KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NoYXJ0IGF4aXMgYm91bmRzIGFyZSBlbXB0eScpOwotICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuYm91bmRzOwotICAgICAgaWYgKGJvdW5kcy5yYW5nZSA9PT0gMCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICByZXR1cm4gKHZhbHVlIC0gYm91bmRzLm1pbikgLyBib3VuZHMucmFuZ2U7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEF1dG9tYXRpY2FsbHkgc2V0IHRoZSBheGlzIGJvdW5kcyBmcm9tIHRoZSByYW5nZSBvZiB2YWx1ZXMgb2YgYWxsIHNlcmllcwotICAgICAqIGluIGEgbGlzdC4KLSAgICAgKgotICAgICAqIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgYXV0b1NldEZyb21SYW5nZSBmb3IgdGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24KLSAgICAgKiBhcmd1bWVudCBmbGFncy4KLSAgICAgKi8KLSAgICBhdXRvU2V0RnJvbVNlcmllczogZnVuY3Rpb24oc2VyaWVzLCBvcHRfY29uZmlnKSB7Ci0gICAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24ocykgewotICAgICAgICByYW5nZS5hZGRSYW5nZShzLnJhbmdlKTsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgdGhpcy5hdXRvU2V0RnJvbVJhbmdlKHJhbmdlLCBvcHRfY29uZmlnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQXV0b21hdGljYWxseSBzZXQgdGhlIGF4aXMgYm91bmQgZnJvbSBhIHJhbmdlIG9mIHZhbHVlcy4KLSAgICAgKgotICAgICAqIFRoZSBmb2xsb3dpbmcgZm91ciBmbGFncywgd2hpY2ggYWZmZWN0IHRoZSBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZCB3aXRoCi0gICAgICogcmVzcGVjdCB0byBhbHJlYWR5IGRlZmluZWQgYm91bmRzLCBjYW4gYmUgcHJlc2VudCBpbiB0aGUgb3B0aW9uYWwKLSAgICAgKiBjb25maWd1cmF0aW9uIChhIGZsYWcgaXMgYXNzdW1lZCB0byBiZSBmYWxzZSBpZiBpdCBpcyBub3QgcHJvdmlkZWQgb3IgaWYKLSAgICAgKiB0aGUgY29uZmlndXJhdGlvbiBpcyBub3QgcHJvdmlkZWQpOgotICAgICAqCi0gICAgICogICAtIGV4cGFuZE1pbjogYWxsb3cgZGVjcmVhc2luZyB0aGUgbWluIGJvdW5kIChpZiByYW5nZS5taW4gPCB0aGlzLm1pbikKLSAgICAgKiAgIC0gc2hyaW5rTWluOiBhbGxvdyBpbmNyZWFzaW5nIHRoZSBtaW4gYm91bmQgKGlmIHJhbmdlLm1pbiA+IHRoaXMubWluKQotICAgICAqICAgLSBleHBhbmRNYXg6IGFsbG93IGluY3JlYXNpbmcgdGhlIG1heCBib3VuZCAoaWYgcmFuZ2UubWF4ID4gdGhpcy5tYXgpCi0gICAgICogICAtIHNocmlua01heDogYWxsb3cgZGVjcmVhc2luZyB0aGUgbWF4IGJvdW5kIChpZiByYW5nZS5tYXggPCB0aGlzLm1heCkKLSAgICAgKgotICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHJlc3VsdGluZyBib3VuZHMgYXJlIGRlZmluZWQgYW5kIHZhbGlkCi0gICAgICogKGkuZS4gbWluIDw9IG1heCkgcHJvdmlkZWQgdGhhdCB0aGV5IHdlcmUgdmFsaWQgb3IgZW1wdHkgYmVmb3JlIGFuZCB0aGUKLSAgICAgKiB2YWx1ZSByYW5nZSBpcyBub24tZW1wdHkgYW5kIHZhbGlkLgotICAgICAqCi0gICAgICogTm90ZSB0aGF0IHVubGVzcyBleHBhbmRpbmcvc2hyaW5raW5nIGEgYm91bmQgaXMgZXhwbGljaXRseSBlbmFibGVkIGluCi0gICAgICogdGhlIGNvbmZpZ3VyYXRpb24sIG5vbi1lbXB0eSBib3VuZHMgd2lsbCBub3QgYmUgY2hhbmdlZCB1bmRlciBhbnkKLSAgICAgKiBjaXJjdW1zdGFuY2VzLgotICAgICAqCi0gICAgICogT2JzZXJ2ZSB0aGF0IGlmIG5vIGNvbmZpZ3VyYXRpb24gaXMgcHJvdmlkZWQgKG9yIGFsbCBmbGFncyBhcmUgc2V0IHRvCi0gICAgICogZmFsc2UpLCB0aGlzIG1ldGhvZCB3aWxsIG9ubHkgbW9kaWZ5IHRoZSBheGlzIGJvdW5kcyBpZiB0aGV5IGFyZSBlbXB0eS4KLSAgICAgKi8KLSAgICBhdXRvU2V0RnJvbVJhbmdlOiBmdW5jdGlvbihyYW5nZSwgb3B0X2NvbmZpZykgewotICAgICAgaWYgKHJhbmdlLmlzRW1wdHkpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuYm91bmRzOwotICAgICAgaWYgKGJvdW5kcy5pc0VtcHR5KSB7Ci0gICAgICAgIGJvdW5kcy5hZGRSYW5nZShyYW5nZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgaWYgKCFvcHRfY29uZmlnKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciB1c2VSYW5nZU1pbiA9IChvcHRfY29uZmlnLmV4cGFuZE1pbiAmJiByYW5nZS5taW4gPCBib3VuZHMubWluIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgb3B0X2NvbmZpZy5zaHJpbmtNaW4gJiYgcmFuZ2UubWluID4gYm91bmRzLm1pbik7Ci0gICAgICB2YXIgdXNlUmFuZ2VNYXggPSAob3B0X2NvbmZpZy5leHBhbmRNYXggJiYgcmFuZ2UubWF4ID4gYm91bmRzLm1heCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9jb25maWcuc2hyaW5rTWF4ICYmIHJhbmdlLm1heCA8IGJvdW5kcy5tYXgpOwotCi0gICAgICAvLyBOZWl0aGVyIGJvdW5kIGlzIG1vZGlmaWVkLgotICAgICAgaWYgKCF1c2VSYW5nZU1pbiAmJiAhdXNlUmFuZ2VNYXgpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgLy8gQm90aCBib3VuZHMgYXJlIG1vZGlmaWVkLiBBc3N1bWluZyB0aGUgcmFuZ2UgYXJndW1lbnQgaXMgYSB2YWxpZAotICAgICAgLy8gcmFuZ2UsIG5vIGV4dHJhIGNoZWNrcyBhcmUgbmVjZXNzYXJ5LgotICAgICAgaWYgKHVzZVJhbmdlTWluICYmIHVzZVJhbmdlTWF4KSB7Ci0gICAgICAgIGJvdW5kcy5taW4gPSByYW5nZS5taW47Ci0gICAgICAgIGJvdW5kcy5tYXggPSByYW5nZS5tYXg7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgLy8gT25seSBvbmUgYm91bmQgaXMgbW9kaWZpZWQuIFdlIG11c3QgZW5zdXJlIHRoYXQgaXQgZG9lc24ndCBnbwotICAgICAgLy8gb3Zlci91bmRlciB0aGUgb3RoZXIgKHVubW9kaWZpZWQpIGJvdW5kLgotICAgICAgaWYgKHVzZVJhbmdlTWluKSB7Ci0gICAgICAgIGJvdW5kcy5taW4gPSBNYXRoLm1pbihyYW5nZS5taW4sIGJvdW5kcy5tYXgpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgYm91bmRzLm1heCA9IE1hdGgubWF4KHJhbmdlLm1heCwgYm91bmRzLm1pbik7Ci0gICAgICB9Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ2hhcnRBeGlzOiBDaGFydEF4aXMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X2F4aXNfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9heGlzX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA4MGIxNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X2F4aXNfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY2hhcnRfYXhpcy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY2hhcnRfcG9pbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3Nlcmllcy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBDaGFydEF4aXMgPSB0ci5jLnRyYWNrcy5DaGFydEF4aXM7Ci0gIHZhciBDaGFydFBvaW50ID0gdHIuYy50cmFja3MuQ2hhcnRQb2ludDsKLSAgdmFyIENoYXJ0U2VyaWVzID0gdHIuYy50cmFja3MuQ2hhcnRTZXJpZXM7Ci0gIHZhciBSYW5nZSA9IHRyLmIuUmFuZ2U7Ci0KLSAgZnVuY3Rpb24gYnVpbGRSYW5nZSgpIHsKLSAgICB2YXIgcmFuZ2UgPSBuZXcgUmFuZ2UoKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykKLSAgICAgIHJhbmdlLmFkZFZhbHVlKGFyZ3VtZW50c1tpXSk7Ci0gICAgcmV0dXJuIHJhbmdlOwotICB9Ci0KLSAgZnVuY3Rpb24gYnVpbGRTZXJpZXMoKSB7Ci0gICAgdmFyIHBvaW50cyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBwb2ludHMucHVzaChuZXcgQ2hhcnRQb2ludCh1bmRlZmluZWQsIGksIGFyZ3VtZW50c1tpXSkpOwotICAgIH0KLSAgICByZXR1cm4gbmV3IENoYXJ0U2VyaWVzKHBvaW50cywgbmV3IENoYXJ0QXhpcygpKTsKLSAgfQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2VtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfbm9uRW1wdHlCb3VuZHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTIsIDEyKTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAtMik7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMTIpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9lcXVhbEJvdW5kcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygyLjcyKTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAyLjcyKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCAyLjcyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tWYWx1ZVRvVW5pdFJhbmdlX2VtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKCk7Ci0gICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbigpIHsgYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDQyKTsgfSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrVmFsdWVUb1VuaXRSYW5nZV9ub25FbXB0eUJvdW5kcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygxMCwgMjApOwotCi0gICAgYXNzZXJ0LmVxdWFsKGF4aXMudmFsdWVUb1VuaXRSYW5nZSgwKSwgLTEpOwotICAgIGFzc2VydC5lcXVhbChheGlzLnZhbHVlVG9Vbml0UmFuZ2UoMTApLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDE1KSwgMC41KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDIwKSwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMudmFsdWVUb1VuaXRSYW5nZSgzMCksIDIpOwotICB9KTsKLQotICB0ZXN0KCdjaGVja1ZhbHVlVG9Vbml0UmFuZ2VfZXF1YWxCb3VuZHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMy4xNCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDApLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDMuMTQpLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDYuMjgpLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVJhbmdlX2VtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gRW1wdHkgcmFuZ2UuCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKCk7Ci0gICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLQotICAgIC8vIE5vbi1lbXB0eSByYW5nZS4KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgtMSwgMykpOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIC0xKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCAzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVJhbmdlX25vbkVtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gRW1wdHkgcmFuZ2UuCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDAsIDEpOwotICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKCkpOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDApOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDEpOwotCi0gICAgLy8gTm8gY29uZmlndXJhdGlvbi4KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMiwgMyk7Ci0gICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoMSwgNCkpOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDIpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDMpOwotCi0gICAgLy8gQWxsb3cgZXhwYW5kaW5nIG1pbi4KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTIsIC0xKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgtMywgMCksIHtleHBhbmRNaW46IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAtMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgLTEpOwotCi0gICAgLy8gQWxsb3cgc2hyaW5raW5nIG1pbi4KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTIsIC0xKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgtMS41LCAwLjUpLCB7c2hyaW5rTWluOiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgLTEuNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgLTEpOwotCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDcsIDgpOwotICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDksIDEwKSwge3Nocmlua01pbjogdHJ1ZX0pOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDgpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDgpOwotCi0gICAgLy8gQWxsb3cgZXhwYW5kaW5nIG1heC4KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMTksIDIwKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgxOCwgMjEpLCB7ZXhwYW5kTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgMTkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDIxKTsKLQotICAgIC8vIEFsbG93IHNocmlua2luZyBtYXguCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDMwLCAzMik7Ci0gICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoMjksIDMxKSwge3Nocmlua01heDogdHJ1ZX0pOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDMwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCAzMSk7Ci0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNDEsIDQyKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgzOSwgNDApLCB7c2hyaW5rTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNDEpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDQxKTsKLQotICAgIC8vIEFsbG93IHNocmlua2luZyBib3RoIGJvdW5kcy4KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNTAsIDUzKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg1MSwgNTIpLAotICAgICAgICB7c2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA1MSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNTIpOwotCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDUwLCA1Myk7Ci0gICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNDksIDUyKSwKLSAgICAgICAge3Nocmlua01pbjogdHJ1ZSwgc2hyaW5rTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNTApOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDUyKTsKLQotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg1MCwgNTMpOwotICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDUxLCA1NCksCi0gICAgICAgIHtzaHJpbmtNaW46IHRydWUsIHNocmlua01heDogdHJ1ZX0pOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDUxKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA1Myk7Ci0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNTAsIDUzKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg0OSwgNTQpLAotICAgICAgICB7c2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA1MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNTMpOwotCi0gICAgLy8gQWxsb3cgZXhwYW5kaW5nIGJvdGggYm91bmRzLgotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOwotICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDAsIDEwMCksCi0gICAgICAgIHtleHBhbmRNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZX0pOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDApOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDEwMCk7Ci0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MC41LCAxMDApLAotICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBleHBhbmRNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMTAwKTsKLQotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOwotICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDAsIDYwLjUpLAotICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBleHBhbmRNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA2MSk7Ci0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MC4yLCA2MC44KSwKLSAgICAgICAge2V4cGFuZE1pbjogdHJ1ZSwgZXhwYW5kTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNjApOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDYxKTsKLQotICAgIC8vIEFsbG93IHNocmlua2luZyBtaW4gYW5kIGV4cGFuZGluZyBtYXguCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDYwLCA2MSk7Ci0gICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNjIsIDYzKSwKLSAgICAgICAge3Nocmlua01pbjogdHJ1ZSwgZXhwYW5kTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNjIpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDYzKTsKLQotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOwotICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDU5LCA2MyksCi0gICAgICAgIHtzaHJpbmtNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZX0pOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDYwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA2Myk7Ci0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MC4yLCA2MC44KSwKLSAgICAgICAge3Nocmlua01pbjogdHJ1ZSwgZXhwYW5kTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNjAuMik7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjEpOwotCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDYwLCA2MSk7Ci0gICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNTksIDYwLjUpLAotICAgICAgICB7c2hyaW5rTWluOiB0cnVlLCBleHBhbmRNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjEpOwotCi0gICAgLy8gQWxsb3cgZXhwYW5kaW5nIG1pbiBhbmQgc2hyaW5raW5nIG1heC4KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MiwgNjMpLAotICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjEpOwotCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDYwLCA2MSk7Ci0gICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNTksIDYzKSwKLSAgICAgICAge2V4cGFuZE1pbjogdHJ1ZSwgc2hyaW5rTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNTkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDYxKTsKLQotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOwotICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDYwLjIsIDYwLjgpLAotICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjAuOCk7Ci0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg1OSwgNjAuNSksCi0gICAgICAgIHtleHBhbmRNaW46IHRydWUsIHNocmlua01heDogdHJ1ZX0pOwotICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDU5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA2MC41KTsKLQotICAgIC8vIEFsbG93IGV2ZXJ5dGhpbmcuCi0gICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDIwMCwgMjUwKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgxNTAsIDE3NSksCi0gICAgICAgIHtleHBhbmRNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZSwgc2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAxNTApOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDE3NSk7Ci0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMCwgMC4xKTsKLSAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgwLjIsIDAuMyksCi0gICAgICAgIHtleHBhbmRNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZSwgc2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKLSAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAwLjIpOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDAuMyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrQXV0b1NldEZyb21TZXJpZXNfbm9TZXJpZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTEwMCwgMTAwKTsKLSAgICB2YXIgc2VyaWVzID0gW107Ci0KLSAgICBheGlzLmF1dG9TZXRGcm9tU2VyaWVzKHNlcmllcyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgLTEwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMTAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVNlcmllc19vbmVTZXJpZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTEwMCwgMTAwKTsKLSAgICB2YXIgc2VyaWVzID0gW2J1aWxkU2VyaWVzKC04MCwgMTAwLCAtNDAsIDIwMCldOwotCi0gICAgYXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsIHtzaHJpbmtNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZX0pOwotICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIC04MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMjAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVNlcmllc19tdWx0aXBsZVNlcmllcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygtMTAwLCAxMDApOwotICAgIHZhciBzZXJpZXMgPSBbCi0gICAgICBidWlsZFNlcmllcygwLCAyMCwgMTAsIDMwKSwKLSAgICAgIGJ1aWxkU2VyaWVzKCksCi0gICAgICBidWlsZFNlcmllcygtNTAwKQotICAgIF07Ci0KLSAgICBheGlzLmF1dG9TZXRGcm9tU2VyaWVzKHNlcmllcywge2V4cGFuZE1pbjogdHJ1ZSwgc2hyaW5rTWF4OiB0cnVlfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgLTUwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMzApOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3BvaW50Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3BvaW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNmM5MGIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9wb2ludC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJveHlfc2VsZWN0YWJsZV9pdGVtLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogQSBwb2ludCBpbiBhIGNoYXJ0IHNlcmllcyB3aXRoIHggKHRpbWVzdGFtcCkgYW5kIHkgKHZhbHVlKSBjb29yZGluYXRlcwotICAgKiBhbmQgYW4gYXNzb2NpYXRlZCBtb2RlbCBpdGVtLiBUaGUgcG9pbnQgY2FuIG9wdGlvbmFsbHkgYWxzbyBoYXZlIGEgYmFzZQotICAgKiB5IGNvb3JkaW5hdGUgKHdoaWNoIGZvciBleGFtcGxlIGNvcnJlc3BvbmRzIHRvIHRoZSBib3R0b20gZWRnZSBvZiB0aGUKLSAgICogYXNzb2NpYXRlZCBiYXIgaW4gYSBiYXIgY2hhcnQpLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge1Byb3h5U2VsZWN0YWJsZUl0ZW19Ci0gICAqLwotICBmdW5jdGlvbiBDaGFydFBvaW50KG1vZGVsSXRlbSwgeCwgeSwgb3B0X3lCYXNlKSB7Ci0gICAgdHIubW9kZWwuUHJveHlTZWxlY3RhYmxlSXRlbS5jYWxsKHRoaXMsIG1vZGVsSXRlbSk7Ci0gICAgdGhpcy54ID0geDsKLSAgICB0aGlzLnkgPSB5OwotCi0gICAgLy8gSWYgdGhlIGJhc2UgeS1jb29yZGluYXRlIGlzIHVuZGVmaW5lZCwgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBhc3NvY2lhdGVkCi0gICAgLy8gYmFyIGluIGEgYmFyIGNoYXJ0IHdpbGwgc3RhcnQgYXQgdGhlIG91dGVyIGJvdHRvbSBlZGdlICh3aGljaCBpcyBtb3N0Ci0gICAgLy8gbGlrZWx5IHNsaWdodGx5IGJlbG93IHplcm8pLgotICAgIHRoaXMueUJhc2UgPSBvcHRfeUJhc2U7Ci0gIH07Ci0KLSAgQ2hhcnRQb2ludC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLnByb3RvdHlwZQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ2hhcnRQb2ludDogQ2hhcnRQb2ludAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY2hhcnRfcG9pbnRfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9wb2ludF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczZmUxOTAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9wb2ludF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3BvaW50Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIENoYXJ0UG9pbnQgPSB0ci5jLnRyYWNrcy5DaGFydFBvaW50OwotCi0gIHRlc3QoJ2NoZWNrRmllbGRzX3dpdGhvdXRZQmFzZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudCA9IHt9OwotICAgIHZhciBwb2ludCA9IG5ldyBDaGFydFBvaW50KGV2ZW50LCA0MiwgLTcpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHBvaW50Lm1vZGVsSXRlbSwgZXZlbnQpOwotICAgIGFzc2VydC5lcXVhbChwb2ludC54LCA0Mik7Ci0gICAgYXNzZXJ0LmVxdWFsKHBvaW50LnksIC03KTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQocG9pbnQueUJhc2UpOwotICB9KTsKLQotICB0ZXN0KCdjaGVja0ZpZWxkc193aXRoWUJhc2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnQgPSB7fTsKLSAgICB2YXIgcG9pbnQgPSBuZXcgQ2hhcnRQb2ludChldmVudCwgMTExLCAyMjIsIDMzMyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwocG9pbnQubW9kZWxJdGVtLCBldmVudCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBvaW50LngsIDExMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBvaW50LnksIDIyMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHBvaW50LnlCYXNlLCAzMzMpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3Nlcmllcy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTUxMjdlMS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3Nlcmllcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDk1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZXZlbnRfcHJlc2VudGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW0uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvaGVhZGluZ190cmFjay5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBFdmVudFByZXNlbnRlciA9IHRyLmMuRXZlbnRQcmVzZW50ZXI7Ci0gIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOwotCi0gIC8qKgotICAgKiBUaGUgdHlwZSBvZiBhIGNoYXJ0IHNlcmllcy4KLSAgICogQGVudW0KLSAgICovCi0gIHZhciBDaGFydFNlcmllc1R5cGUgPSB7Ci0gICAgTElORTogMCwKLSAgICBBUkVBOiAxCi0gIH07Ci0KLSAgLy8gVGhlIGRlZmF1bHQgcmVuZGVyaW5nIGNvbmZpZ3VyYXRpb24gZm9yIENoYXJ0U2VyaWVzLgotICB2YXIgREVGQVVMVF9SRU5ERVJJTkdfQ09ORklHID0gewotICAgIC8vIFRoZSB0eXBlIG9mIHRoZSBjaGFydCBzZXJpZXMuCi0gICAgY2hhcnRUeXBlOiBDaGFydFNlcmllc1R5cGUuTElORSwKLQotICAgIC8vIFRoZSBzaXplIG9mIGEgc2VsZWN0ZWQgcG9pbnQgZG90IGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhlbHMgKGNpcmNsZQotICAgIC8vIGRpYW1ldGVyKS4KLSAgICBzZWxlY3RlZFBvaW50U2l6ZTogNCwKLQotICAgIC8vIFRoZSBzaXplIG9mIGFuIHVuc2VsZWN0ZWQgcG9pbnQgZG90IGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhlbHMgKHNxdWFyZQotICAgIC8vIHdpZHRoL2hlaWdodCkuCi0gICAgdW5zZWxlY3RlZFBvaW50U2l6ZTogMywKLQotICAgIC8vIFRoZSBjb2xvciBvZiB0aGUgY2hhcnQuCi0gICAgY29sb3JJZDogMCwKLQotICAgIC8vIFRoZSB3aWR0aCBvZiB0aGUgdG9wIGxpbmUgaW4gZGV2aWNlLWluZGVwZW5kZW50IHBpeGVscy4KLSAgICBsaW5lV2lkdGg6IDEsCi0KLSAgICAvLyBNaW5pbXVtIGRpc3RhbmNlIGJldHdlZW4gcG9pbnRzIGluIHBoeXNpY2FsIHBpeGVscy4gUG9pbnRzIHdoaWNoIGFyZQotICAgIC8vIGNsb3NlciB0aGFuIHRoaXMgZGlzdGFuY2Ugd2lsbCBiZSBza2lwcGVkLgotICAgIHNraXBEaXN0YW5jZTogMSwKLQotICAgIC8vIERlbnNpdHkgaW4gcG9pbnRzIHBlciBwaHlzaWNhbCBwaXhlbCBhdCB3aGljaCB1bnNlbGVjdGVkIHBvaW50IGRvdHMKLSAgICAvLyBiZWNvbWUgdHJhbnNwYXJlbnQuCi0gICAgdW5zZWxlY3RlZFBvaW50RGVuc2l0eVRyYW5zcGFyZW50OiAwLjEwLAotCi0gICAgLy8gRGVuc2l0eSBpbiBwb2ludHMgcGVyIHBoeXNpY2FsIHBpeGVsIGF0IHdoaWNoIHVuc2VsZWN0ZWQgcG9pbnQgZG90cwotICAgIC8vIGJlY29tZSBmdWxseSBvcGFxdWUuCi0gICAgdW5zZWxlY3RlZFBvaW50RGVuc2l0eU9wYXF1ZTogMC4wNSwKLQotICAgIC8vIE9wYWNpdHkgb2YgYXJlYSBjaGFydCBiYWNrZ3JvdW5kLgotICAgIGJhY2tncm91bmRPcGFjaXR5OiAwLjUKLSAgfTsKLQotICAvLyBUaGUgdmlydHVhbCB3aWR0aCBvZiB0aGUgbGFzdCBwb2ludCBpbiBhIHNlcmllcyAod2hvc2UgcmVjdGFuZ2xlIGhhcyB6ZXJvCi0gIC8vIHdpZHRoKSBpbiB3b3JsZCB0aW1lc3RhbXBzIGRpZmZlcmVuY2UgZm9yIHRoZSBwdXJwb3NlcyBvZiBzZWxlY3Rpb24uCi0gIHZhciBMQVNUX1BPSU5UX1dJRFRIID0gMTY7Ci0KLSAgLyoqCi0gICAqIFZpc3VhbCBjb21wb25lbnRzIG9mIGEgQ2hhcnRTZXJpZXMuCi0gICAqIEBlbnVtCi0gICAqLwotICB2YXIgQ2hhcnRTZXJpZXNDb21wb25lbnQgPSB7Ci0gICAgQkFDS0dST1VORDogMCwKLSAgICBMSU5FOiAxLAotICAgIERPVFM6IDIKLSAgfTsKLQotICAvKioKLSAgICogQSBzZXJpZXMgb2YgcG9pbnRzIGNvcnJlc3BvbmRpbmcgdG8gYSBzaW5nbGUgY2hhcnQgb24gYSBjaGFydCB0cmFjay4KLSAgICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgZHJhd2luZyB0aGUgYWN0dWFsIGNoYXJ0IG9udG8gY2FudmFzLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENoYXJ0U2VyaWVzKHBvaW50cywgYXhpcywgb3B0X3JlbmRlcmluZ0NvbmZpZykgewotICAgIHRoaXMucG9pbnRzID0gcG9pbnRzOwotICAgIHRoaXMuYXhpcyA9IGF4aXM7Ci0KLSAgICB0aGlzLnVzZVJlbmRlcmluZ0NvbmZpZ18ob3B0X3JlbmRlcmluZ0NvbmZpZyk7Ci0gIH0KLQotICBDaGFydFNlcmllcy5wcm90b3R5cGUgPSB7Ci0gICAgdXNlUmVuZGVyaW5nQ29uZmlnXzogZnVuY3Rpb24ob3B0X3JlbmRlcmluZ0NvbmZpZykgewotICAgICAgdmFyIGNvbmZpZyA9IG9wdF9yZW5kZXJpbmdDb25maWcgfHwge307Ci0KLSAgICAgIC8vIFN0b3JlIGFsbCBjb25maWd1cmF0aW9uIGZsYWdzIGFzIHByaXZhdGUgcHJvcGVydGllcy4KLSAgICAgIHRyLmIuaXRlckl0ZW1zKERFRkFVTFRfUkVOREVSSU5HX0NPTkZJRywgZnVuY3Rpb24oa2V5LCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2tleV07Ci0gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHZhbHVlID0gZGVmYXVsdFZhbHVlOwotICAgICAgICB0aGlzW2tleSArICdfJ10gPSB2YWx1ZTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBBdm9pZCB1bm5lY2Vzc2FyeSByZWNvbXB1dGF0aW9uIGluIGdldHRlcnMuCi0gICAgICB0aGlzLnRvcFBhZGRpbmcgPSB0aGlzLmJvdHRvbVBhZGRpbmcgPSBNYXRoLm1heCgKLSAgICAgICAgICB0aGlzLnNlbGVjdGVkUG9pbnRTaXplXywgdGhpcy51bnNlbGVjdGVkUG9pbnRTaXplXykgLyAyOwotICAgIH0sCi0KLSAgICBnZXQgcmFuZ2UoKSB7Ci0gICAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgICAgdGhpcy5wb2ludHMuZm9yRWFjaChmdW5jdGlvbihwb2ludCkgewotICAgICAgICByYW5nZS5hZGRWYWx1ZShwb2ludC55KTsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgcmV0dXJuIHJhbmdlOwotICAgIH0sCi0KLSAgICBkcmF3OiBmdW5jdGlvbihjdHgsIHRyYW5zZm9ybSwgaGlnaERldGFpbHMpIHsKLSAgICAgIGlmICh0aGlzLnBvaW50cyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucG9pbnRzLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBEcmF3IHRoZSBiYWNrZ3JvdW5kLgotICAgICAgaWYgKHRoaXMuY2hhcnRUeXBlXyA9PT0gQ2hhcnRTZXJpZXNUeXBlLkFSRUEpIHsKLSAgICAgICAgdGhpcy5kcmF3Q29tcG9uZW50XyhjdHgsIHRyYW5zZm9ybSwgQ2hhcnRTZXJpZXNDb21wb25lbnQuQkFDS0dST1VORCwKLSAgICAgICAgICAgIGhpZ2hEZXRhaWxzKTsKLSAgICAgIH0KLQotICAgICAgLy8gRHJhdyB0aGUgbGluZSBhdCB0aGUgdG9wLgotICAgICAgaWYgKHRoaXMuY2hhcnRUeXBlXyA9PT0gQ2hhcnRTZXJpZXNUeXBlLkxJTkUgfHwgaGlnaERldGFpbHMpIHsKLSAgICAgICAgdGhpcy5kcmF3Q29tcG9uZW50XyhjdHgsIHRyYW5zZm9ybSwgQ2hhcnRTZXJpZXNDb21wb25lbnQuTElORSwKLSAgICAgICAgICAgIGhpZ2hEZXRhaWxzKTsKLSAgICAgIH0KLQotICAgICAgLy8gRHJhdyB0aGUgcG9pbnRzLgotICAgICAgdGhpcy5kcmF3Q29tcG9uZW50XyhjdHgsIHRyYW5zZm9ybSwgQ2hhcnRTZXJpZXNDb21wb25lbnQuRE9UUywKLSAgICAgICAgICBoaWdoRGV0YWlscyk7Ci0gICAgfSwKLQotICAgIGRyYXdDb21wb25lbnRfOiBmdW5jdGlvbihjdHgsIHRyYW5zZm9ybSwgY29tcG9uZW50LCBoaWdoRGV0YWlscykgewotICAgICAgLy8gV2UgbmVlZCB0byBjb25zaWRlciBleHRyYSBwaXhlbHMgb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIHRvIGF2b2lkCi0gICAgICAvLyB2aXN1YWwgZ2xpdGNoZXMgZHVlIHRvIG5vbi16ZXJvIHdpZHRoIG9mIGRvdHMuCi0gICAgICB2YXIgZXh0cmFQaXhlbHMgPSAwOwotICAgICAgaWYgKGNvbXBvbmVudCA9PT0gQ2hhcnRTZXJpZXNDb21wb25lbnQuRE9UUykgewotICAgICAgICBleHRyYVBpeGVscyA9IE1hdGgubWF4KAotICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBvaW50U2l6ZV8sIHRoaXMudW5zZWxlY3RlZFBvaW50U2l6ZV8pOwotICAgICAgfQotICAgICAgdmFyIGxlZnRWaWV3WCA9IHRyYW5zZm9ybS5sZWZ0Vmlld1ggLSBleHRyYVBpeGVscyAqIHRyYW5zZm9ybS5waXhlbFJhdGlvOwotICAgICAgdmFyIHJpZ2h0Vmlld1ggPSB0cmFuc2Zvcm0ucmlnaHRWaWV3WCArCi0gICAgICAgICAgZXh0cmFQaXhlbHMgKiB0cmFuc2Zvcm0ucGl4ZWxSYXRpbzsKLSAgICAgIHZhciBsZWZ0VGltZXN0YW1wID0gdHJhbnNmb3JtLmxlZnRUaW1lc3RhbXAgLSBleHRyYVBpeGVsczsKLSAgICAgIHZhciByaWdodFRpbWVzdGFtcCA9IHRyYW5zZm9ybS5yaWdodFRpbWVzdGFtcCArIGV4dHJhUGl4ZWxzOwotCi0gICAgICAvLyBGaW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgKHBhcnRpYWxseSkgdmlzaWJsZSBwb2ludHMuCi0gICAgICB2YXIgZmlyc3RWaXNpYmxlSW5kZXggPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgdGhpcy5wb2ludHMsCi0gICAgICAgICAgZnVuY3Rpb24ocG9pbnQpIHsgcmV0dXJuIHBvaW50Lng7IH0sCi0gICAgICAgICAgbGVmdFRpbWVzdGFtcCk7Ci0gICAgICB2YXIgbGFzdFZpc2libGVJbmRleCA9IHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSgKLSAgICAgICAgICB0aGlzLnBvaW50cywKLSAgICAgICAgICBmdW5jdGlvbihwb2ludCkgeyByZXR1cm4gcG9pbnQueDsgfSwKLSAgICAgICAgICByaWdodFRpbWVzdGFtcCk7Ci0gICAgICBpZiAobGFzdFZpc2libGVJbmRleCA+PSB0aGlzLnBvaW50cy5sZW5ndGggfHwKLSAgICAgICAgICB0aGlzLnBvaW50c1tsYXN0VmlzaWJsZUluZGV4XS54ID4gcmlnaHRUaW1lc3RhbXApIHsKLSAgICAgICAgbGFzdFZpc2libGVJbmRleC0tOwotICAgICAgfQotCi0gICAgICAvLyBQcmUtY2FsY3VsYXRlIGNvbXBvbmVudCBzdHlsZSB3aGljaCBkb2VzIG5vdCBkZXBlbmQgb24gaW5kaXZpZHVhbAotICAgICAgLy8gcG9pbnRzOgotICAgICAgLy8gICAqIFNraXAgZGlzdGFuY2UgYmV0d2VlbiBwb2ludHMsCi0gICAgICAvLyAgICogU2VsZWN0ZWQgKGNpcmNsZSkgYW5kIHVuc2VsZWN0ZWQgKHNxdWFyZSkgZG90IHNpemUsCi0gICAgICAvLyAgICogVW5zZWxlY3RlZCBkb3Qgb3BhY2l0eSwKLSAgICAgIC8vICAgKiBTZWxlY3RlZCBkb3QgZWRnZSBjb2xvciBhbmQgd2lkdGgsIGFuZAotICAgICAgLy8gICAqIExpbmUgY29tcG9uZW50IGNvbG9yIGFuZCB3aWR0aC4KLSAgICAgIHZhciB2aWV3U2tpcERpc3RhbmNlID0gdGhpcy5za2lwRGlzdGFuY2VfICogdHJhbnNmb3JtLnBpeGVsUmF0aW87Ci0gICAgICB2YXIgY2lyY2xlUmFkaXVzOwotICAgICAgdmFyIHNxdWFyZVNpemU7Ci0gICAgICB2YXIgc3F1YXJlSGFsZlNpemU7Ci0gICAgICB2YXIgc3F1YXJlT3BhY2l0eTsKLQotICAgICAgc3dpdGNoIChjb21wb25lbnQpIHsKLSAgICAgICAgY2FzZSBDaGFydFNlcmllc0NvbXBvbmVudC5ET1RTOgotICAgICAgICAgIC8vIFNlbGVjdGVkIGRvdCBlZGdlIGNvbG9yIGFuZCB3aWR0aC4KLSAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRDb3VudGVyU2VyaWVzQ29sb3IoCi0gICAgICAgICAgICAgIHRoaXMuY29sb3JJZF8sIFNlbGVjdGlvblN0YXRlLk5PTkUpOwotICAgICAgICAgIGN0eC5saW5lV2lkdGggPSB0cmFuc2Zvcm0ucGl4ZWxSYXRpbzsKLQotICAgICAgICAgIC8vIFNlbGVjdGVkIChjaXJjbGUpIGFuZCB1bnNlbGVjdGVkIChzcXVhcmUpIGRvdCBzaXplLgotICAgICAgICAgIGNpcmNsZVJhZGl1cyA9ICh0aGlzLnNlbGVjdGVkUG9pbnRTaXplXyAvIDIpICogdHJhbnNmb3JtLnBpeGVsUmF0aW87Ci0gICAgICAgICAgc3F1YXJlU2l6ZSA9IHRoaXMudW5zZWxlY3RlZFBvaW50U2l6ZV8gKiB0cmFuc2Zvcm0ucGl4ZWxSYXRpbzsKLSAgICAgICAgICBzcXVhcmVIYWxmU2l6ZSA9IHNxdWFyZVNpemUgLyAyOwotCi0gICAgICAgICAgLy8gVW5zZWxlY3RlZCBkb3Qgb3BhY2l0eS4KLSAgICAgICAgICBpZiAoIWhpZ2hEZXRhaWxzKSB7Ci0gICAgICAgICAgICAvLyBVbnNlbGVjdGVkIGRvdHMgYXJlIG5vdCBkaXNwbGF5ZWQgaW4gJ2xvdyBkZXRhaWxzJyBtb2RlLgotICAgICAgICAgICAgc3F1YXJlT3BhY2l0eSA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIHZpc2libGVJbmRleFJhbmdlID0gbGFzdFZpc2libGVJbmRleCAtIGZpcnN0VmlzaWJsZUluZGV4OwotICAgICAgICAgIGlmICh2aXNpYmxlSW5kZXhSYW5nZSA8PSAwKSB7Ci0gICAgICAgICAgICAvLyBUaGVyZSBpcyBhdCBtb3N0IG9uZSB2aXNpYmxlIHBvaW50LgotICAgICAgICAgICAgc3F1YXJlT3BhY2l0eSA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIHZpc2libGVWaWV3WFJhbmdlID0KLSAgICAgICAgICAgICAgdHJhbnNmb3JtLndvcmxkWFRvVmlld1godGhpcy5wb2ludHNbbGFzdFZpc2libGVJbmRleF0ueCkgLQotICAgICAgICAgICAgICB0cmFuc2Zvcm0ud29ybGRYVG9WaWV3WCh0aGlzLnBvaW50c1tmaXJzdFZpc2libGVJbmRleF0ueCk7Ci0gICAgICAgICAgaWYgKHZpc2libGVWaWV3WFJhbmdlID09PSAwKSB7Ci0gICAgICAgICAgICAvLyBNdWx0aXBsZSB2aXNpYmxlIHBvaW50cyB3aGljaCBhbGwgaGF2ZSB0aGUgc2FtZSB0aW1lc3RhbXAuCi0gICAgICAgICAgICBzcXVhcmVPcGFjaXR5ID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgZGVuc2l0eSA9IHZpc2libGVJbmRleFJhbmdlIC8gdmlzaWJsZVZpZXdYUmFuZ2U7Ci0gICAgICAgICAgdmFyIGNsYW1wZWREZW5zaXR5ID0gdHIuYi5jbGFtcChkZW5zaXR5LAotICAgICAgICAgICAgICB0aGlzLnVuc2VsZWN0ZWRQb2ludERlbnNpdHlPcGFxdWVfLAotICAgICAgICAgICAgICB0aGlzLnVuc2VsZWN0ZWRQb2ludERlbnNpdHlUcmFuc3BhcmVudF8pOwotICAgICAgICAgIHZhciBkZW5zaXR5UmFuZ2UgPSB0aGlzLnVuc2VsZWN0ZWRQb2ludERlbnNpdHlUcmFuc3BhcmVudF8gLQotICAgICAgICAgICAgICB0aGlzLnVuc2VsZWN0ZWRQb2ludERlbnNpdHlPcGFxdWVfOwotICAgICAgICAgIHNxdWFyZU9wYWNpdHkgPQotICAgICAgICAgICAgICAodGhpcy51bnNlbGVjdGVkUG9pbnREZW5zaXR5VHJhbnNwYXJlbnRfIC0gY2xhbXBlZERlbnNpdHkpIC8KLSAgICAgICAgICAgICAgZGVuc2l0eVJhbmdlOwotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuTElORToKLSAgICAgICAgICAvLyBMaW5lIGNvbXBvbmVudCBjb2xvciBhbmQgd2lkdGguCi0gICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gRXZlbnRQcmVzZW50ZXIuZ2V0Q291bnRlclNlcmllc0NvbG9yKAotICAgICAgICAgICAgICB0aGlzLmNvbG9ySWRfLCBTZWxlY3Rpb25TdGF0ZS5OT05FKTsKLSAgICAgICAgICBjdHgubGluZVdpZHRoID0gdGhpcy5saW5lV2lkdGhfICogdHJhbnNmb3JtLnBpeGVsUmF0aW87Ci0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBDaGFydFNlcmllc0NvbXBvbmVudC5CQUNLR1JPVU5EOgotICAgICAgICAgIC8vIFN0eWxlIGRlcGVuZHMgb24gdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBpbmRpdmlkdWFsIHBvaW50cy4KLSAgICAgICAgICBicmVhazsKLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb21wb25lbnQ6ICcgKyBjb21wb25lbnQpOwotICAgICAgfQotCi0gICAgICAvLyBUaGUgbWFpbiBsb29wIHdoaWNoIGRyYXdzIHRoZSBnaXZlbiBjb21wb25lbnQgb2YgdmlzaWJsZSBwb2ludHMgZnJvbQotICAgICAgLy8gbGVmdCB0byByaWdodC4gR2l2ZW4gdGhlIHBvdGVudGlhbGx5IGxhcmdlIG51bWJlciBvZiBwb2ludHMgdG8gZHJhdywKLSAgICAgIC8vIGl0IHNob3VsZCBiZSBjb25zaWRlcmVkIHBlcmZvcm1hbmNlLWNyaXRpY2FsIGFuZCBmdW5jdGlvbiBjYWxscyBzaG91bGQKLSAgICAgIC8vIGJlIGF2b2lkZWQgd2hlbiBwb3NzaWJsZS4KLSAgICAgIC8vCi0gICAgICAvLyBOb3RlIHRoYXQgdGhlIGJhY2tncm91bmQgYW5kIGxpbmUgY29tcG9uZW50cyBhcmUgZHJhd24gaW4gYSBkZWxheWVkCi0gICAgICAvLyBmYXNoaW9uOiB0aGUgcmVjdGFuZ2xlL2xpbmUgdGhhdCB3ZSBkcmF3IGluIGFuIGl0ZXJhdGlvbiBjb3JyZXNwb25kcwotICAgICAgLy8gdG8gdGhlICpwcmV2aW91cyogcG9pbnQuIFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gdGhlIGRvdHMsIHdob3NlCi0gICAgICAvLyBwb3NpdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgc3Vycm91bmRpbmcgZG90cy4KLSAgICAgIHZhciBwcmV2aW91c1ZpZXdYID0gdW5kZWZpbmVkOwotICAgICAgdmFyIHByZXZpb3VzVmlld1kgPSB1bmRlZmluZWQ7Ci0gICAgICB2YXIgcHJldmlvdXNWaWV3WUJhc2UgPSB1bmRlZmluZWQ7Ci0gICAgICB2YXIgbGFzdFNlbGVjdGlvblN0YXRlID0gdW5kZWZpbmVkOwotICAgICAgdmFyIGJhc2VTdGVwcyA9IHVuZGVmaW5lZDsKLSAgICAgIHZhciBzdGFydEluZGV4ID0gTWF0aC5tYXgoZmlyc3RWaXNpYmxlSW5kZXggLSAxLCAwKTsKLQotICAgICAgZm9yICh2YXIgaSA9IHN0YXJ0SW5kZXg7IGkgPCB0aGlzLnBvaW50cy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgY3VycmVudFBvaW50ID0gdGhpcy5wb2ludHNbaV07Ci0gICAgICAgIHZhciBjdXJyZW50Vmlld1ggPSB0cmFuc2Zvcm0ud29ybGRYVG9WaWV3WChjdXJyZW50UG9pbnQueCk7Ci0KLSAgICAgICAgLy8gU3RvcCBkcmF3aW5nIHRoZSBwb2ludHMgb25jZSB3ZSBhcmUgdG8gdGhlIHJpZ2h0IG9mIHRoZSB2aXNpYmxlIGFyZWEuCi0gICAgICAgIGlmIChjdXJyZW50Vmlld1ggPiByaWdodFZpZXdYKSB7Ci0gICAgICAgICAgaWYgKHByZXZpb3VzVmlld1ggIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgcHJldmlvdXNWaWV3WCA9IGN1cnJlbnRWaWV3WCA9IHJpZ2h0Vmlld1g7Ci0gICAgICAgICAgICBpZiAoY29tcG9uZW50ID09PSBDaGFydFNlcmllc0NvbXBvbmVudC5CQUNLR1JPVU5EIHx8Ci0gICAgICAgICAgICAgICAgY29tcG9uZW50ID09PSBDaGFydFNlcmllc0NvbXBvbmVudC5MSU5FKSB7Ci0gICAgICAgICAgICAgIGN0eC5saW5lVG8oY3VycmVudFZpZXdYLCBwcmV2aW91c1ZpZXdZKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaSArIDEgPCB0aGlzLnBvaW50cy5sZW5ndGgpIHsKLSAgICAgICAgICB2YXIgbmV4dFBvaW50ID0gdGhpcy5wb2ludHNbaSArIDFdOwotICAgICAgICAgIHZhciBuZXh0Vmlld1ggPSB0cmFuc2Zvcm0ud29ybGRYVG9WaWV3WChuZXh0UG9pbnQueCk7Ci0KLSAgICAgICAgICAvLyBTa2lwIHBvaW50cyB0aGF0IGFyZSB0b28gY2xvc2UgdG8gZWFjaCBvdGhlci4KLSAgICAgICAgICBpZiAocHJldmlvdXNWaWV3WCAhPT0gdW5kZWZpbmVkICYmCi0gICAgICAgICAgICAgIG5leHRWaWV3WCAtIHByZXZpb3VzVmlld1ggPD0gdmlld1NraXBEaXN0YW5jZSAmJgotICAgICAgICAgICAgICBuZXh0Vmlld1ggPCByaWdodFZpZXdYKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICAvLyBTdGFydCBkcmF3aW5nIHJpZ2h0IGF0IHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHZpc2libGUgYXJlIChpbnN0ZWFkCi0gICAgICAgICAgLy8gb2YgcG90ZW50aWFsbHkgdmVyeSBmYXIgdG8gdGhlIGxlZnQpLgotICAgICAgICAgIGlmIChjdXJyZW50Vmlld1ggPCBsZWZ0Vmlld1gpIHsKLSAgICAgICAgICAgIGN1cnJlbnRWaWV3WCA9IGxlZnRWaWV3WDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocHJldmlvdXNWaWV3WCAhPT0gdW5kZWZpbmVkICYmCi0gICAgICAgICAgICBjdXJyZW50Vmlld1ggLSBwcmV2aW91c1ZpZXdYIDwgdmlld1NraXBEaXN0YW5jZSkgewotICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCBuZXh0Vmlld1ggPiBwcmV2aW91c1ZpZXdYICsgdmlld1NraXBEaXN0YW5jZSwgc28gd2UKLSAgICAgICAgICAvLyBjYW4gc2FmZWx5IG1vdmUgdGhpcyBwb2ludHMncyB4IG92ZXIgdGhhdCBtdWNoIHdpdGhvdXQgcGFzc2luZwotICAgICAgICAgIC8vIG5leHRWaWV3WC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHByZXZpb3VzIHBvaW50IGlzIHZpc2libGUgd2hlbgotICAgICAgICAgIC8vIHpvb21lZCBvdXQgdmVyeSBmYXIuCi0gICAgICAgICAgY3VycmVudFZpZXdYID0gcHJldmlvdXNWaWV3WCArIHZpZXdTa2lwRGlzdGFuY2U7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgY3VycmVudFZpZXdZID0gTWF0aC5yb3VuZCh0cmFuc2Zvcm0ud29ybGRZVG9WaWV3WShjdXJyZW50UG9pbnQueSkpOwotICAgICAgICB2YXIgY3VycmVudFZpZXdZQmFzZTsKLSAgICAgICAgaWYgKGN1cnJlbnRQb2ludC55QmFzZSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgY3VycmVudFZpZXdZQmFzZSA9IHRyYW5zZm9ybS5vdXRlckJvdHRvbVZpZXdZOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGN1cnJlbnRWaWV3WUJhc2UgPSBNYXRoLnJvdW5kKAotICAgICAgICAgICAgICB0cmFuc2Zvcm0ud29ybGRZVG9WaWV3WShjdXJyZW50UG9pbnQueUJhc2UpKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgY3VycmVudFNlbGVjdGlvblN0YXRlID0gY3VycmVudFBvaW50LnNlbGVjdGlvblN0YXRlOwotCi0gICAgICAgIC8vIEFjdHVhbGx5IGRyYXcgdGhlIGdpdmVuIGNvbXBvbmVudCBvZiB0aGUgcG9pbnQuCi0gICAgICAgIHN3aXRjaCAoY29tcG9uZW50KSB7Ci0gICAgICAgICAgY2FzZSBDaGFydFNlcmllc0NvbXBvbmVudC5ET1RTOgotICAgICAgICAgICAgLy8gQ2hhbmdlIGRvdCBzdHlsZSB3aGVuIHRoZSBzZWxlY3Rpb24gc3RhdGUgY2hhbmdlcyAoYW5kIGF0IHRoZQotICAgICAgICAgICAgLy8gYmVnaW5uaW5nKS4KLSAgICAgICAgICAgIGlmIChjdXJyZW50U2VsZWN0aW9uU3RhdGUgIT09IGxhc3RTZWxlY3Rpb25TdGF0ZSkgewotICAgICAgICAgICAgICBpZiAoY3VycmVudFNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCkgewotICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRDb3VudGVyU2VyaWVzQ29sb3IoCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JJZF8sIGN1cnJlbnRTZWxlY3Rpb25TdGF0ZSk7Ci0gICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3F1YXJlT3BhY2l0eSA+IDApIHsKLSAgICAgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gRXZlbnRQcmVzZW50ZXIuZ2V0Q291bnRlclNlcmllc0NvbG9yKAotICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbG9ySWRfLCBjdXJyZW50U2VsZWN0aW9uU3RhdGUsIHNxdWFyZU9wYWNpdHkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIERyYXcgdGhlIGRvdCBmb3IgdGhlIGN1cnJlbnQgcG9pbnQuCi0gICAgICAgICAgICBpZiAoY3VycmVudFNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCkgewotICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgICAgICAgICAgIGN0eC5hcmMoY3VycmVudFZpZXdYLCBjdXJyZW50Vmlld1ksIGNpcmNsZVJhZGl1cywgMCwgMiAqIE1hdGguUEkpOwotICAgICAgICAgICAgICBjdHguZmlsbCgpOwotICAgICAgICAgICAgICBjdHguc3Ryb2tlKCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHNxdWFyZU9wYWNpdHkgPiAwKSB7Ci0gICAgICAgICAgICAgIGN0eC5maWxsUmVjdChjdXJyZW50Vmlld1ggLSBzcXVhcmVIYWxmU2l6ZSwKLSAgICAgICAgICAgICAgICAgIGN1cnJlbnRWaWV3WSAtIHNxdWFyZUhhbGZTaXplLCBzcXVhcmVTaXplLCBzcXVhcmVTaXplKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgY2FzZSBDaGFydFNlcmllc0NvbXBvbmVudC5MSU5FOgotICAgICAgICAgICAgLy8gRHJhdyB0aGUgdG9wIGxpbmUgZm9yIHRoZSBwcmV2aW91cyBwb2ludCAoaWYgYXBwbGljYWJsZSksIG9yCi0gICAgICAgICAgICAvLyBwcmVwYXJlIGZvciBkcmF3aW5nIHRoZSB0b3AgbGluZSBvZiB0aGUgY3VycmVudCBwb2ludCBpbiB0aGUgbmV4dAotICAgICAgICAgICAgLy8gaXRlcmF0aW9uLgotICAgICAgICAgICAgaWYgKHByZXZpb3VzVmlld1ggPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgICAgICAgICAgIGN0eC5tb3ZlVG8oY3VycmVudFZpZXdYLCBjdXJyZW50Vmlld1kpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgY3R4LmxpbmVUbyhjdXJyZW50Vmlld1gsIHByZXZpb3VzVmlld1kpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBNb3ZlIHRvIHRoZSBjdXJyZW50IHBvaW50IGNvb3JkaW5hdGUuCi0gICAgICAgICAgICBjdHgubGluZVRvKGN1cnJlbnRWaWV3WCwgY3VycmVudFZpZXdZKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgY2FzZSBDaGFydFNlcmllc0NvbXBvbmVudC5CQUNLR1JPVU5EOgotICAgICAgICAgICAgLy8gRHJhdyB0aGUgYmFja2dyb3VuZCBmb3IgdGhlIHByZXZpb3VzIHBvaW50IChpZiBhcHBsaWNhYmxlKS4KLSAgICAgICAgICAgIGlmIChwcmV2aW91c1ZpZXdYICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgICAgIGN0eC5saW5lVG8oY3VycmVudFZpZXdYLCBwcmV2aW91c1ZpZXdZKTsKLQotICAgICAgICAgICAgLy8gRmluaXNoIHRoZSBib3R0b20gcGFydCBvZiB0aGUgYmFja2dvdW5kIHBvbHlnb24sIGNoYW5nZQotICAgICAgICAgICAgLy8gYmFja2dyb3VuZCBjb2xvciBhbmQgc3RhcnQgYSBuZXcgcG9seWdvbiB3aGVuIHRoZSBzZWxlY3Rpb24gc3RhdGUKLSAgICAgICAgICAgIC8vIGNoYW5nZXMgKGFuZCBhdCB0aGUgYmVnaW5uaW5nKS4KLSAgICAgICAgICAgIGlmIChjdXJyZW50U2VsZWN0aW9uU3RhdGUgIT09IGxhc3RTZWxlY3Rpb25TdGF0ZSkgewotICAgICAgICAgICAgICBpZiAocHJldmlvdXNWaWV3WCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHByZXZpb3VzQmFzZVN0ZXBWaWV3WCA9IGN1cnJlbnRWaWV3WDsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gYmFzZVN0ZXBzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7Ci0gICAgICAgICAgICAgICAgICB2YXIgYmFzZVN0ZXAgPSBiYXNlU3RlcHNbal07Ci0gICAgICAgICAgICAgICAgICB2YXIgYmFzZVN0ZXBWaWV3WCA9IGJhc2VTdGVwLnZpZXdYOwotICAgICAgICAgICAgICAgICAgdmFyIGJhc2VTdGVwVmlld1kgPSBiYXNlU3RlcC52aWV3WTsKLSAgICAgICAgICAgICAgICAgIGN0eC5saW5lVG8ocHJldmlvdXNCYXNlU3RlcFZpZXdYLCBiYXNlU3RlcFZpZXdZKTsKLSAgICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oYmFzZVN0ZXBWaWV3WCwgYmFzZVN0ZXBWaWV3WSk7Ci0gICAgICAgICAgICAgICAgICBwcmV2aW91c0Jhc2VTdGVwVmlld1ggPSBiYXNlU3RlcFZpZXdYOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7Ci0gICAgICAgICAgICAgICAgY3R4LmZpbGwoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRDb3VudGVyU2VyaWVzQ29sb3IoCi0gICAgICAgICAgICAgICAgICB0aGlzLmNvbG9ySWRfLCBjdXJyZW50U2VsZWN0aW9uU3RhdGUsCi0gICAgICAgICAgICAgICAgICB0aGlzLmJhY2tncm91bmRPcGFjaXR5Xyk7Ci0gICAgICAgICAgICAgIGN0eC5tb3ZlVG8oY3VycmVudFZpZXdYLCBjdXJyZW50Vmlld1lCYXNlKTsKLSAgICAgICAgICAgICAgYmFzZVN0ZXBzID0gW107Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChjdXJyZW50Vmlld1lCYXNlICE9PSBwcmV2aW91c1ZpZXdZQmFzZSB8fAotICAgICAgICAgICAgICAgIGN1cnJlbnRTZWxlY3Rpb25TdGF0ZSAhPT0gbGFzdFNlbGVjdGlvblN0YXRlKSB7Ci0gICAgICAgICAgICAgIGJhc2VTdGVwcy5wdXNoKHt2aWV3WDogY3VycmVudFZpZXdYLCB2aWV3WTogY3VycmVudFZpZXdZQmFzZX0pOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBNb3ZlIHRvIHRoZSBjdXJyZW50IHBvaW50IGNvb3JkaW5hdGUuCi0gICAgICAgICAgICBjdHgubGluZVRvKGN1cnJlbnRWaWV3WCwgY3VycmVudFZpZXdZKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHJlYWNoYWJsZScpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJldmlvdXNWaWV3WCA9IGN1cnJlbnRWaWV3WDsKLSAgICAgICAgcHJldmlvdXNWaWV3WSA9IGN1cnJlbnRWaWV3WTsKLSAgICAgICAgcHJldmlvdXNWaWV3WUJhc2UgPSBjdXJyZW50Vmlld1lCYXNlOwotICAgICAgICBsYXN0U2VsZWN0aW9uU3RhdGUgPSBjdXJyZW50U2VsZWN0aW9uU3RhdGU7Ci0gICAgICB9Ci0KLSAgICAgIC8vIElmIHdlIHN0aWxsIGhhdmUgYW4gb3BlbiBiYWNrZ3JvdW5kIG9yIHRvcCBsaW5lIHBvbHlnb24gKHdoaWNoIGlzCi0gICAgICAvLyBhbHdheXMgdGhlIGNhc2Ugb25jZSB3ZSBoYXZlIHN0YXJ0ZWQgZHJhd2luZyBkdWUgdG8gdGhlIGRlbGF5ZWQgZmFzaGlvbgotICAgICAgLy8gb2YgZHJhd2luZyksIHdlIG11c3QgY2xvc2UgaXQuCi0gICAgICBpZiAocHJldmlvdXNWaWV3WCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHN3aXRjaCAoY29tcG9uZW50KSB7Ci0gICAgICAgICAgY2FzZSBDaGFydFNlcmllc0NvbXBvbmVudC5ET1RTOgotICAgICAgICAgICAgLy8gQWxsIGRvdHMgd2VyZSBkcmF3biBpbiB0aGUgbWFpbiBsb29wLgotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlIENoYXJ0U2VyaWVzQ29tcG9uZW50LkxJTkU6Ci0gICAgICAgICAgICBjdHguc3Ryb2tlKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuQkFDS0dST1VORDoKLSAgICAgICAgICAgIHZhciBwcmV2aW91c0Jhc2VTdGVwVmlld1ggPSBjdXJyZW50Vmlld1g7Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gYmFzZVN0ZXBzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7Ci0gICAgICAgICAgICAgIHZhciBiYXNlU3RlcCA9IGJhc2VTdGVwc1tqXTsKLSAgICAgICAgICAgICAgdmFyIGJhc2VTdGVwVmlld1ggPSBiYXNlU3RlcC52aWV3WDsKLSAgICAgICAgICAgICAgdmFyIGJhc2VTdGVwVmlld1kgPSBiYXNlU3RlcC52aWV3WTsKLSAgICAgICAgICAgICAgY3R4LmxpbmVUbyhwcmV2aW91c0Jhc2VTdGVwVmlld1gsIGJhc2VTdGVwVmlld1kpOwotICAgICAgICAgICAgICBjdHgubGluZVRvKGJhc2VTdGVwVmlld1gsIGJhc2VTdGVwVmlld1kpOwotICAgICAgICAgICAgICBwcmV2aW91c0Jhc2VTdGVwVmlld1ggPSBiYXNlU3RlcFZpZXdYOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3R4LmNsb3NlUGF0aCgpOwotICAgICAgICAgICAgY3R4LmZpbGwoKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHJlYWNoYWJsZScpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTogZnVuY3Rpb24oCi0gICAgICAgIGxvV1gsIGhpV1gsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pIHsKLSAgICAgIHZhciBwb2ludHMgPSB0aGlzLnBvaW50czsKLQotICAgICAgZnVuY3Rpb24gZ2V0UG9pbnRXaWR0aChwb2ludCwgaSkgewotICAgICAgICBpZiAoaSA9PT0gcG9pbnRzLmxlbmd0aCAtIDEpCi0gICAgICAgICAgcmV0dXJuIExBU1RfUE9JTlRfV0lEVEggKiB2aWV3UGl4V2lkdGhXb3JsZDsKLSAgICAgICAgdmFyIG5leHRQb2ludCA9IHBvaW50c1tpICsgMV07Ci0gICAgICAgIHJldHVybiBuZXh0UG9pbnQueCAtIHBvaW50Lng7Ci0gICAgICB9Ci0KLSAgICAgIGZ1bmN0aW9uIHNlbGVjdFBvaW50KHBvaW50KSB7Ci0gICAgICAgIHBvaW50LmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICB9Ci0KLSAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMoCi0gICAgICAgICAgdGhpcy5wb2ludHMsCi0gICAgICAgICAgZnVuY3Rpb24ocG9pbnQpIHsgcmV0dXJuIHBvaW50LnggfSwKLSAgICAgICAgICBnZXRQb2ludFdpZHRoLAotICAgICAgICAgIGxvV1gsCi0gICAgICAgICAgaGlXWCwKLSAgICAgICAgICBzZWxlY3RQb2ludCk7Ci0gICAgfSwKLQotICAgIGFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbihldmVudCwgb2Zmc2V0LCBzZWxlY3Rpb24pIHsKLSAgICAgIGlmICh0aGlzLnBvaW50cyA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBpbmRleCA9IHRyLmIuZmluZEZpcnN0SW5kZXhJbkFycmF5KHRoaXMucG9pbnRzLCBmdW5jdGlvbihwb2ludCkgewotICAgICAgICByZXR1cm4gcG9pbnQubW9kZWxJdGVtID09PSBldmVudDsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgaWYgKGluZGV4ID09PSAtMSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgbmV3SW5kZXggPSBpbmRleCArIG9mZnNldDsKLSAgICAgIGlmIChuZXdJbmRleCA8IDAgfHwgbmV3SW5kZXggPj0gdGhpcy5wb2ludHMubGVuZ3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHRoaXMucG9pbnRzW25ld0luZGV4XS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbih3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbikgewotICAgICAgaWYgKHRoaXMucG9pbnRzID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGl0ZW0gPSB0ci5iLmZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgdGhpcy5wb2ludHMsCi0gICAgICAgICAgZnVuY3Rpb24ocG9pbnQpIHsgcmV0dXJuIHBvaW50LnggfSwKLSAgICAgICAgICB3b3JsZFgsCi0gICAgICAgICAgd29ybGRNYXhEaXN0KTsKLQotICAgICAgaWYgKCFpdGVtKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGl0ZW0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBDaGFydFNlcmllczogQ2hhcnRTZXJpZXMsCi0gICAgQ2hhcnRTZXJpZXNUeXBlOiBDaGFydFNlcmllc1R5cGUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3Nlcmllc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3Nlcmllc190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNjNkNDcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF9zZXJpZXNfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjk0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF9heGlzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF9wb2ludC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY2hhcnRfc2VyaWVzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF90cmFuc2Zvcm0uaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0gPSB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybTsKLSAgdmFyIEV2ZW50ID0gdHIubW9kZWwuRXZlbnQ7Ci0gIHZhciBDaGFydEF4aXMgPSB0ci5jLnRyYWNrcy5DaGFydEF4aXM7Ci0gIHZhciBDaGFydFBvaW50ID0gdHIuYy50cmFja3MuQ2hhcnRQb2ludDsKLSAgdmFyIENoYXJ0U2VyaWVzID0gdHIuYy50cmFja3MuQ2hhcnRTZXJpZXM7Ci0gIHZhciBDaGFydFRyYW5zZm9ybSA9IHRyLmMudHJhY2tzLkNoYXJ0VHJhbnNmb3JtOwotICB2YXIgQ2hhcnRTZXJpZXNUeXBlID0gdHIuYy50cmFja3MuQ2hhcnRTZXJpZXNUeXBlOwotCi0gIHZhciBDQU5WQVNfV0lEVEggPSA4MDA7Ci0gIHZhciBDQU5WQVNfSEVJR0hUID0gODA7Ci0KLSAgZnVuY3Rpb24gYnVpbGRTZXJpZXMocmVuZGVyaW5nQ29uZmlnKSB7Ci0gICAgdmFyIHBvaW50cyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNjA7IGkrKykgewotICAgICAgdmFyIGV2ZW50ID0gbmV3IEV2ZW50KCk7Ci0gICAgICBldmVudC5pbmRleCA9IGk7Ci0gICAgICB2YXIgcGhhc2UgPSBpICogTWF0aC5QSSAvIDE1OwotICAgICAgdmFyIHZhbHVlID0gTWF0aC5zaW4ocGhhc2UpOwotICAgICAgdmFyIHBlYWtJbmRleCA9IE1hdGguZmxvb3IoKHBoYXNlICsgTWF0aC5QSSAvIDIpIC8gKDIgKiBNYXRoLlBJKSk7Ci0gICAgICB2YXIgYmFzZSA9IHBlYWtJbmRleCAlIDIgPT09IDAgPyB1bmRlZmluZWQgOiAtMSArIHZhbHVlIC8gMS41OwotICAgICAgdmFyIHBvaW50ID0gbmV3IENoYXJ0UG9pbnQoZXZlbnQsIGkgLSAzMCwgdmFsdWUsIGJhc2UpOwotICAgICAgcG9pbnRzLnB1c2gocG9pbnQpOwotICAgIH0KLSAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTEsIDEpOwotICAgIHJldHVybiBuZXcgQ2hhcnRTZXJpZXMocG9pbnRzLCBheGlzLCByZW5kZXJpbmdDb25maWcpOwotICB9Ci0KLSAgZnVuY3Rpb24gZHJhd1Nlcmllc1dpdGhEZXRhaWxzKHRlc3QsIHNlcmllcywgaGlnaERldGFpbHMpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgIGRpdi5hcHBlbmRDaGlsZChjYW52YXMpOwotCi0gICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotCi0gICAgY2FudmFzLndpZHRoID0gQ0FOVkFTX1dJRFRIICogcGl4ZWxSYXRpbzsKLSAgICBjYW52YXMuc3R5bGUud2lkdGggPSBDQU5WQVNfV0lEVEggKyAncHgnOwotICAgIGNhbnZhcy5oZWlnaHQgPSBDQU5WQVNfSEVJR0hUICogcGl4ZWxSYXRpbzsKLSAgICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gQ0FOVkFTX0hFSUdIVCArICdweCc7Ci0KLSAgICB2YXIgZGlzcGxheVRyYW5zZm9ybSA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkaXNwbGF5VHJhbnNmb3JtLnNjYWxlWCA9IENBTlZBU19XSURUSCAqIHBpeGVsUmF0aW8gLyA2MDsKLSAgICBkaXNwbGF5VHJhbnNmb3JtLnBhblggPSAzMDsKLQotICAgIHZhciB0cmFuc2Zvcm0gPSBuZXcgQ2hhcnRUcmFuc2Zvcm0oCi0gICAgICAgIGRpc3BsYXlUcmFuc2Zvcm0sCi0gICAgICAgIHNlcmllcy5heGlzLAotICAgICAgICBDQU5WQVNfV0lEVEggKiBwaXhlbFJhdGlvLAotICAgICAgICBDQU5WQVNfSEVJR0hUICogcGl4ZWxSYXRpbywKLSAgICAgICAgMTAgKiBwaXhlbFJhdGlvLAotICAgICAgICAxMCAqIHBpeGVsUmF0aW8sCi0gICAgICAgIHBpeGVsUmF0aW8pOwotCi0gICAgc2VyaWVzLmRyYXcoY2FudmFzLmdldENvbnRleHQoJzJkJyksIHRyYW5zZm9ybSwgaGlnaERldGFpbHMpOwotCi0gICAgdGVzdC5hZGRIVE1MT3V0cHV0KGRpdik7Ci0gIH0KLQotICBmdW5jdGlvbiBkcmF3U2VyaWVzKHRlc3QsIHNlcmllcykgewotICAgIGRyYXdTZXJpZXNXaXRoRGV0YWlscyh0ZXN0LCBzZXJpZXMsIGZhbHNlKTsKLSAgICBkcmF3U2VyaWVzV2l0aERldGFpbHModGVzdCwgc2VyaWVzLCB0cnVlKTsKLSAgfQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2RlZmF1bHRDb25maWcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VyaWVzID0gYnVpbGRTZXJpZXModW5kZWZpbmVkKTsKLSAgICBkcmF3U2VyaWVzKHRoaXMsIHNlcmllcyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2xpbmVDaGFydCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcyh7Ci0gICAgICBjaGFydFR5cGU6IENoYXJ0U2VyaWVzVHlwZS5MSU5FLAotICAgICAgY29sb3JJZDogNCwKLSAgICAgIHVuc2VsZWN0ZWRQb2ludFNpemU6IDYsCi0gICAgICBsaW5lV2lkdGg6IDIsCi0gICAgICB1bnNlbGVjdGVkUG9pbnREZW5zaXR5T3BhcXVlOiAwLjA4Ci0gICAgfSk7Ci0gICAgZHJhd1Nlcmllcyh0aGlzLCBzZXJpZXMpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9hcmVhQ2hhcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VyaWVzID0gYnVpbGRTZXJpZXMoewotICAgICAgY2hhcnRUeXBlOiBDaGFydFNlcmllc1R5cGUuQVJFQSwKLSAgICAgIGNvbG9ySWQ6IDIsCi0gICAgICBiYWNrZ3JvdW5kT3BhY2l0eTogMC4yCi0gICAgfSk7Ci0gICAgZHJhd1Nlcmllcyh0aGlzLCBzZXJpZXMpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9sYXJnZVNraXBEaXN0YW5jZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcyh7Ci0gICAgICBjaGFydFR5cGU6IENoYXJ0U2VyaWVzVHlwZS5BUkVBLAotICAgICAgY29sb3JJZDogMSwKLSAgICAgIHNraXBEaXN0YW5jZTogNDAsCi0gICAgICB1bnNlbGVjdGVkUG9pbnREZW5zaXR5VHJhbnNwYXJlbnQ6IDAuMDcKLSAgICB9KTsKLSAgICBkcmF3U2VyaWVzKHRoaXMsIHNlcmllcyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX3NlbGVjdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcyh7Ci0gICAgICBjaGFydFR5cGU6IENoYXJ0U2VyaWVzVHlwZS5BUkVBLAotICAgICAgY29sb3JJZDogMTAKLSAgICB9KTsKLSAgICBzZXJpZXMucG9pbnRzLmZvckVhY2goZnVuY3Rpb24ocG9pbnQsIGluZGV4KSB7Ci0gICAgICBwb2ludC5tb2RlbEl0ZW0uc2VsZWN0aW9uU3RhdGUgPSBpbmRleCAlIDQ7Ci0gICAgfSk7Ci0gICAgZHJhd1Nlcmllcyh0aGlzLCBzZXJpZXMpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9zZWxlY3Rpb25XaXRoQWxsQ29uZmlnRmxhZ3MnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VyaWVzID0gYnVpbGRTZXJpZXMoewotICAgICAgY2hhcnRUeXBlOiBDaGFydFNlcmllc1R5cGUuQVJFQSwKLSAgICAgIHNlbGVjdGVkUG9pbnRTaXplOiAxMCwKLSAgICAgIHVuc2VsZWN0ZWRQb2ludFNpemU6IDYsCi0gICAgICBjb2xvcklkOiAxNSwKLSAgICAgIGxpbmVXaWR0aDogMiwKLSAgICAgIHNraXBEaXN0YW5jZTogMjUsCi0gICAgICB1bnNlbGVjdGVkUG9pbnREZW5zaXR5T3BhcXVlOiAwLjA3LAotICAgICAgdW5zZWxlY3RlZFBvaW50RGVuc2l0eVRyYW5zcGFyZW50OiAwLjA5LAotICAgICAgYmFja2dyb3VuZE9wYWNpdHk6IDAuOAotICAgIH0pOwotICAgIHNlcmllcy5wb2ludHMuZm9yRWFjaChmdW5jdGlvbihwb2ludCwgaW5kZXgpIHsKLSAgICAgIHBvaW50Lm1vZGVsSXRlbS5zZWxlY3Rpb25TdGF0ZSA9IGluZGV4ICUgNDsKLSAgICB9KTsKLSAgICBkcmF3U2VyaWVzKHRoaXMsIHNlcmllcyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrUmFuZ2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VyaWVzID0gYnVpbGRTZXJpZXMoKTsKLSAgICB2YXIgcmFuZ2UgPSBzZXJpZXMucmFuZ2U7Ci0gICAgYXNzZXJ0LmlzRmFsc2UocmFuZ2UuaXNFbXB0eSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmFuZ2UubWluLCAtMSwgMC4wNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmFuZ2UubWF4LCAxLCAwLjA1KTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2thZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VyaWVzID0gYnVpbGRTZXJpZXMoKTsKLQotICAgIC8vIFRvbyBmYXIgbGVmdC4KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlcmllcy5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCi0gICAgICAgIC0xMDAwLCAtMzAuNSwgNDAsIHNlbCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7Ci0KLSAgICAvLyBTZWxlY3QgZmlyc3QgcG9pbnQuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAotICAgICAgICAtMzAuNSwgLTI5LjUsIDQwLCBzZWwpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOwotICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDApOwotCi0gICAgLy8gU2VsZWN0IHNlY29uZCBwb2ludC4KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlcmllcy5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCi0gICAgICAgIC0yOC44LCAtMjguMiwgNDAsIHNlbCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5pbmRleCwgMSk7Ci0KLSAgICAvLyBTZWxlY3QgcG9pbnRzIGluIHRoZSBtaWRkbGUuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAotICAgICAgICAtMC45OSwgMS4wMSwgNDAsIHNlbCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5pbmRleCwgMjkpOwotICAgIGFzc2VydC5lcXVhbChzZWxbMV0uaW5kZXgsIDMwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsWzJdLmluZGV4LCAzMSk7Ci0KLSAgICAvLyBTZWxlY3QgdGhlIGxhc3QgcG9pbnQuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAotICAgICAgICA2NjguOTksIDY2OC45OSwgNDAsIHNlbCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5pbmRleCwgNTkpOwotCi0gICAgLy8gVG9vIGZhciByaWdodC4KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlcmllcy5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCi0gICAgICAgIDY2OS4wMSwgMjAwMCwgNDAsIHNlbCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7Ci0KLSAgICAvLyBTZWxlY3QgZXZlcnl0aGluZy4KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlcmllcy5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCi0gICAgICAgIC0yOS4wMSwgNjY5LjAxLCA0MCwgc2VsKTsKLSAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCA2MCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VyaWVzID0gYnVpbGRTZXJpZXMoKTsKLQotICAgIC8vIEludmFsaWQgZXZlbnQuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBhc3NlcnQuaXNGYWxzZShzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgIG5ldyBFdmVudCgpLCAxLCBzZWwpKTsKLSAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAwKTsKLQotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgYXNzZXJ0LmlzRmFsc2Uoc2VyaWVzLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICBuZXcgRXZlbnQoKSwgLTEsIHNlbCkpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDApOwotCi0gICAgLy8gRmlyc3QgcG9pbnQuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBhc3NlcnQuaXNUcnVlKHNlcmllcy5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKLSAgICAgICAgc2VyaWVzLnBvaW50c1swXS5tb2RlbEl0ZW0sIDEsIHNlbCkpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOwotICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDEpOwotCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBhc3NlcnQuaXNGYWxzZShzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgIHNlcmllcy5wb2ludHNbMF0ubW9kZWxJdGVtLCAtMSwgc2VsKSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7Ci0KLSAgICAvLyBNaWRkbGUgcG9pbnQuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBhc3NlcnQuaXNUcnVlKHNlcmllcy5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKLSAgICAgICAgc2VyaWVzLnBvaW50c1szMF0ubW9kZWxJdGVtLCAxLCBzZWwpKTsKLSAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmluZGV4LCAzMSk7Ci0KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIGFzc2VydC5pc1RydWUoc2VyaWVzLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICBzZXJpZXMucG9pbnRzWzMwXS5tb2RlbEl0ZW0sIC0xLCBzZWwpKTsKLSAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmluZGV4LCAyOSk7Ci0KLSAgICAvLyBMYXN0IHBvaW50LgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgYXNzZXJ0LmlzRmFsc2Uoc2VyaWVzLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICBzZXJpZXMucG9pbnRzWzU5XS5tb2RlbEl0ZW0sIDEsIHNlbCkpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDApOwotCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBhc3NlcnQuaXNUcnVlKHNlcmllcy5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKLSAgICAgICAgc2VyaWVzLnBvaW50c1s1OV0ubW9kZWxJdGVtLCAtMSwgc2VsKSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5pbmRleCwgNTgpOwotICB9KTsKLQotICB0ZXN0KCdjaGVja0FkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlcmllcyA9IGJ1aWxkU2VyaWVzKCk7Ci0KLSAgICAvLyBMZWZ0IG9mIGZpcnN0IHBvaW50LgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VyaWVzLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKC00MCwgOSwgLTAuNSwgMC41LCBzZWwpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDApOwotCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBzZXJpZXMuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oLTQwLCAxMSwgLTAuNSwgMC41LCBzZWwpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOwotICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDApOwotCi0gICAgLy8gQmV0d2VlbiB0d28gcG9pbnRzLgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgc2VyaWVzLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDAuNCwgMC4zLCAtMC41LCAwLjUsIHNlbCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7Ci0KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlcmllcy5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigwLjQsIDAuNCwgLTAuNSwgMC41LCBzZWwpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOwotICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDMwKTsKLQotICAgIC8vIFJpZ2h0IG9mIGxhc3QgcG9pbnQuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBzZXJpZXMuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oNDAsIDEwLCAtMC41LCAwLjUsIHNlbCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7Ci0KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHNlcmllcy5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbig0MCwgMTIsIC0wLjUsIDAuNSwgc2VsKTsKLSAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmluZGV4LCA1OSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY2hhcnRfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY2hhcnRfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA1NDYwNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY2hhcnRfdHJhbnNmb3JtLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwiPgotCi08c3R5bGU+Ci0uY2hhcnQtdHJhY2sgewotICBoZWlnaHQ6IDMwcHg7Ci0gIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotCi0gIC8qKgotICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYSBjaGFydC4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtIZWFkaW5nVHJhY2t9Ci0gICAqLwotICB2YXIgQ2hhcnRUcmFjayA9Ci0gICAgICB0ci5iLnVpLmRlZmluZSgnY2hhcnQtdHJhY2snLCB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2spOwotCi0gIENoYXJ0VHJhY2sucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnY2hhcnQtdHJhY2snKTsKLSAgICAgIHRoaXMuc2VyaWVzXyA9IHVuZGVmaW5lZDsKLQotICAgICAgLy8gR1VJRCAtPiB7YXhpczogQ2hhcnRBeGlzLCBzZXJpZXM6IFtDaGFydFNlcmllc119LgotICAgICAgdGhpcy5heGlzR3VpZFRvQXhpc0RhdGFfID0gdW5kZWZpbmVkOwotCi0gICAgICAvLyBUaGUgbWF4aW11bSB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIG9mIGFsbCBzZXJpZXMuCi0gICAgICB0aGlzLnRvcFBhZGRpbmdfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5ib3R0b21QYWRkaW5nXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHNlcmllcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlcmllc187Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFNldCB0aGUgbGlzdCBvZiBjaGFydCBzZXJpZXMgdG8gYmUgZGlzcGxheWVkIG9uIHRoaXMgdHJhY2suIFRoZSBsaXN0Ci0gICAgICogaXMgYXNzdW1lZCB0byBiZSBzb3J0ZWQgaW4gaW5jcmVhc2luZyB6LW9yZGVyIChpLmUuIHRoZSBsYXN0IHNlcmllcyBpbgotICAgICAqIHRoZSBsaXN0IHdpbGwgYmUgZHJhd24gYXQgdGhlIHRvcCkuCi0gICAgICovCi0gICAgc2V0IHNlcmllcyhzZXJpZXMpIHsKLSAgICAgIHRoaXMuc2VyaWVzXyA9IHNlcmllczsKLSAgICAgIHRoaXMuY2FsY3VsYXRlQXhpc0RhdGFBbmRQYWRkaW5nXygpOwotICAgICAgdGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpOwotICAgIH0sCi0KLSAgICBnZXQgaGVpZ2h0KCkgewotICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDsKLSAgICB9LAotCi0gICAgc2V0IGhlaWdodChoZWlnaHQpIHsKLSAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0OwotICAgICAgdGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpOwotICAgIH0sCi0KLSAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7Ci0gICAgICByZXR1cm4gISF0aGlzLnNlcmllcyAmJiB0aGlzLnNlcmllcy5sZW5ndGggPiAwOwotICAgIH0sCi0KLSAgICBjYWxjdWxhdGVBeGlzRGF0YUFuZFBhZGRpbmdfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5zZXJpZXNfKSB7Ci0gICAgICAgIHRoaXMuYXhpc0d1aWRUb0F4aXNEYXRhXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy50b3BQYWRkaW5nXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy5ib3R0b21QYWRkaW5nXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB2YXIgYXhpc0d1aWRUb0F4aXNEYXRhID0ge307Ci0gICAgICB2YXIgdG9wUGFkZGluZyA9IDA7Ci0gICAgICB2YXIgYm90dG9tUGFkZGluZyA9IDA7Ci0KLSAgICAgIHRoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICB2YXIgYXhpcyA9IHNlcmllcy5heGlzOwotICAgICAgICB2YXIgYXhpc0d1aWQgPSBheGlzLmd1aWQ7Ci0gICAgICAgIGlmICghKGF4aXNHdWlkIGluIGF4aXNHdWlkVG9BeGlzRGF0YSkpIHsKLSAgICAgICAgICBheGlzR3VpZFRvQXhpc0RhdGFbYXhpc0d1aWRdID0gewotICAgICAgICAgICAgYXhpczogYXhpcywKLSAgICAgICAgICAgIHNlcmllczogW10KLSAgICAgICAgICB9OwotICAgICAgICB9Ci0gICAgICAgIGF4aXNHdWlkVG9BeGlzRGF0YVtheGlzR3VpZF0uc2VyaWVzLnB1c2goc2VyaWVzKTsKLSAgICAgICAgdG9wUGFkZGluZyA9IE1hdGgubWF4KHRvcFBhZGRpbmcsIHNlcmllcy50b3BQYWRkaW5nKTsKLSAgICAgICAgYm90dG9tUGFkZGluZyA9IE1hdGgubWF4KGJvdHRvbVBhZGRpbmcsIHNlcmllcy5ib3R0b21QYWRkaW5nKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICB0aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV8gPSBheGlzR3VpZFRvQXhpc0RhdGE7Ci0gICAgICB0aGlzLnRvcFBhZGRpbmdfID0gdG9wUGFkZGluZzsKLSAgICAgIHRoaXMuYm90dG9tUGFkZGluZ18gPSBib3R0b21QYWRkaW5nOwotICAgIH0sCi0KLSAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7Ci0gICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5HRU5FUkFMX0VWRU5UOgotICAgICAgICAgIHRoaXMuZHJhd0NoYXJ0Xyh2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZHJhd0NoYXJ0XzogZnVuY3Rpb24odmlld0xXb3JsZCwgdmlld1JXb3JsZCkgewotICAgICAgaWYgKCF0aGlzLnNlcmllc18pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOwotCi0gICAgICAvLyBHZXQgdHJhY2sgZHJhd2luZyBwYXJhbWV0ZXJzLgotICAgICAgdmFyIGRpc3BsYXlUcmFuc2Zvcm0gPSB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOwotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICB2YXIgaGlnaERldGFpbHMgPSB0aGlzLnZpZXdwb3J0LmhpZ2hEZXRhaWxzOwotCi0gICAgICAvLyBQcmUtbXVsdGlwbHkgYWxsIGRldmljZS1pbmRlcGVuZGVudCBwaXhlbCBwYXJhbWV0ZXJzIHdpdGggdGhlIHBpeGVsCi0gICAgICAvLyByYXRpbyB0byBhdm9pZCB1bm5lY2Vzc2FyeSByZWNvbXB1dGF0aW9uIGluIHRoZSBwZXJmb3JtYW5jZS1jcml0aWNhbAotICAgICAgLy8gZHJhd2luZyBjb2RlLgotICAgICAgdmFyIHdpZHRoID0gYm91bmRzLndpZHRoICogcGl4ZWxSYXRpbzsKLSAgICAgIHZhciBoZWlnaHQgPSBib3VuZHMuaGVpZ2h0ICogcGl4ZWxSYXRpbzsKLSAgICAgIHZhciB0b3BQYWRkaW5nID0gdGhpcy50b3BQYWRkaW5nXyAqIHBpeGVsUmF0aW87Ci0gICAgICB2YXIgYm90dG9tUGFkZGluZyA9IHRoaXMuYm90dG9tUGFkZGluZ18gKiBwaXhlbFJhdGlvOwotCi0gICAgICAvLyBTZXQgdXAgY2xpcHBpbmcuCi0gICAgICBjdHguc2F2ZSgpOwotICAgICAgY3R4LmJlZ2luUGF0aCgpOwotICAgICAgY3R4LnJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICBjdHguY2xpcCgpOwotCi0gICAgICAvLyBEcmF3IGFsbCBzZXJpZXMgaW4gdGhlIGluY3JlYXNpbmcgei1vcmRlci4KLSAgICAgIHRoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICB2YXIgY2hhcnRUcmFuc2Zvcm0gPSBuZXcgdHIuYy50cmFja3MuQ2hhcnRUcmFuc2Zvcm0oCi0gICAgICAgICAgICBkaXNwbGF5VHJhbnNmb3JtLCBzZXJpZXMuYXhpcywgd2lkdGgsIGhlaWdodCwgdG9wUGFkZGluZywKLSAgICAgICAgICAgIGJvdHRvbVBhZGRpbmcsIHBpeGVsUmF0aW8pOwotICAgICAgICBzZXJpZXMuZHJhdyhjdHgsIGNoYXJ0VHJhbnNmb3JtLCBoaWdoRGV0YWlscyk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gU3RvcCBjbGlwcGluZy4KLSAgICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgfSwKLQotICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgewotICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ29uc2lkZXIgYWRkaW5nIHRoZSBzZXJpZXMgdG8gdGhlIHRyYWNrIG1hcCBpbnN0ZWFkCi0gICAgICAvLyBvZiB0aGUgdHJhY2sgKGEgcG90ZW50aWFsIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbikuCi0gICAgICB0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKLSAgICAgICAgc2VyaWVzLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKHBvaW50KSB7Ci0gICAgICAgICAgcG9pbnQuYWRkVG9UcmFja01hcChldmVudFRvVHJhY2tNYXAsIHRoaXMpOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6IGZ1bmN0aW9uKAotICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKLSAgICAgICAgc2VyaWVzLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKLSAgICAgICAgICAgIGxvV1gsIGhpV1gsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIGFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbihldmVudCwgb2Zmc2V0LCBzZWxlY3Rpb24pIHsKLSAgICAgIHZhciBmb3VuZEl0ZW0gPSBmYWxzZTsKLSAgICAgIHRoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICBmb3VuZEl0ZW0gPSBmb3VuZEl0ZW0gfHwgc2VyaWVzLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICAgICAgZXZlbnQsIG9mZnNldCwgc2VsZWN0aW9uKTsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgcmV0dXJuIGZvdW5kSXRlbTsKLSAgICB9LAotCi0gICAgYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjogZnVuY3Rpb24oZmlsdGVyLCBzZWxlY3Rpb24pIHsKLSAgICAgIC8vIERvIG5vdGhpbmcuCi0gICAgfSwKLQotICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbih3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbikgewotICAgICAgdGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7Ci0gICAgICAgIHNlcmllcy5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigKLSAgICAgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwgc2VsZWN0aW9uKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBBdXRvbWF0aWNhbGx5IHNldCB0aGUgYm91bmRzIG9mIGFsbCBheGVzIG9uIHRoaXMgdHJhY2sgZnJvbSB0aGUgcmFuZ2Ugb2YKLSAgICAgKiB2YWx1ZXMgb2YgYWxsIHNlcmllcyAoaW4gdGhpcyB0cmFjaykgYXNzb2NpYXRlZCB3aXRoIGVhY2ggb2YgdGhlbS4KLSAgICAgKgotICAgICAqIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgQ2hhcnRBeGlzLmF1dG9TZXRGcm9tUmFuZ2UgZm9yIHRoZSBvcHRpb25hbAotICAgICAqIGNvbmZpZ3VyYXRpb24gYXJndW1lbnQgZmxhZ3MuCi0gICAgICovCi0gICAgYXV0b1NldEFsbEF4ZXM6IGZ1bmN0aW9uKG9wdF9jb25maWcpIHsKLSAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMuYXhpc0d1aWRUb0F4aXNEYXRhXywgZnVuY3Rpb24oYXhpc0d1aWQsIGF4aXNEYXRhKSB7Ci0gICAgICAgIHZhciBheGlzID0gYXhpc0RhdGEuYXhpczsKLSAgICAgICAgdmFyIHNlcmllcyA9IGF4aXNEYXRhLnNlcmllczsKLSAgICAgICAgYXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsIG9wdF9jb25maWcpOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEF1dG9tYXRpY2FsbHkgc2V0IHRoZSBib3VuZHMgb2YgdGhlIHByb3ZpZGVkIGF4aXMgZnJvbSB0aGUgcmFuZ2Ugb2YKLSAgICAgKiB2YWx1ZXMgb2YgYWxsIHNlcmllcyAoaW4gdGhpcyB0cmFjaykgYXNzb2NpYXRlZCB3aXRoIGl0LgotICAgICAqCi0gICAgICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBDaGFydEF4aXMuYXV0b1NldEZyb21SYW5nZSBmb3IgdGhlIG9wdGlvbmFsCi0gICAgICogY29uZmlndXJhdGlvbiBhcmd1bWVudCBmbGFncy4KLSAgICAgKi8KLSAgICBhdXRvU2V0QXhpczogZnVuY3Rpb24oYXhpcywgb3B0X2NvbmZpZykgewotICAgICAgdmFyIHNlcmllcyA9IHRoaXMuYXhpc0d1aWRUb0F4aXNEYXRhX1theGlzLmd1aWRdLnNlcmllczsKLSAgICAgIGF4aXMuYXV0b1NldEZyb21TZXJpZXMoc2VyaWVzLCBvcHRfY29uZmlnKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBDaGFydFRyYWNrOiBDaGFydFRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkwYTgwNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3Rpb25fc3RhdGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X2F4aXMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3BvaW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgVmlld3BvcnQgPSB0ci5jLlRpbWVsaW5lVmlld3BvcnQ7Ci0gIHZhciBFdmVudCA9IHRyLm1vZGVsLkV2ZW50OwotICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKLSAgdmFyIENoYXJ0VHJhY2sgPSB0ci5jLnRyYWNrcy5DaGFydFRyYWNrOwotICB2YXIgQ2hhcnRTZXJpZXMgPSB0ci5jLnRyYWNrcy5DaGFydFNlcmllczsKLSAgdmFyIENoYXJ0U2VyaWVzVHlwZSA9IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZTsKLSAgdmFyIENoYXJ0QXhpcyA9IHRyLmMudHJhY2tzLkNoYXJ0QXhpczsKLSAgdmFyIENoYXJ0UG9pbnQgPSB0ci5jLnRyYWNrcy5DaGFydFBvaW50OwotCi0gIGZ1bmN0aW9uIGJ1aWxkUG9pbnQoeCwgeSkgewotICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgpOwotICAgIHJldHVybiBuZXcgQ2hhcnRQb2ludChldmVudCwgeCwgeSk7Ci0gIH0KLQotICBmdW5jdGlvbiBidWlsZFRyYWNrKG9wdF92aWV3cG9ydCkgewotICAgIHZhciB2aWV3cG9ydCA9IG9wdF92aWV3cG9ydCB8fCBuZXcgVmlld3BvcnQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwotCi0gICAgdmFyIGF4aXMxID0gbmV3IENoYXJ0QXhpcygwLCAyKTsKLSAgICB2YXIgYXhpczIgPSBuZXcgQ2hhcnRBeGlzKC0xMDAsIDEwMCk7Ci0KLSAgICB2YXIgcG9pbnRzMSA9IFsKLSAgICAgIGJ1aWxkUG9pbnQoLTIuNSwgMiksCi0gICAgICBidWlsZFBvaW50KC0xLjUsIDEpLAotICAgICAgYnVpbGRQb2ludCgtMC41LCAwKSwKLSAgICAgIGJ1aWxkUG9pbnQoMC41LCAxKSwKLSAgICAgIGJ1aWxkUG9pbnQoMS41LCAyKSwKLSAgICAgIGJ1aWxkUG9pbnQoMi41LCAwKQotICAgIF07Ci0gICAgdmFyIHJlbmRlcmluZ0NvbmZpZzEgPSB7Ci0gICAgICBjaGFydFR5cGU6IENoYXJ0U2VyaWVzVHlwZS5BUkVBLAotICAgICAgY29sb3JJZDogNiwKLSAgICAgIHNlbGVjdGVkUG9pbnRTaXplOiA3Ci0gICAgfTsKLSAgICB2YXIgc2VyaWVzMSA9IG5ldyBDaGFydFNlcmllcyhwb2ludHMxLCBheGlzMSwgcmVuZGVyaW5nQ29uZmlnMSk7Ci0KLSAgICB2YXIgcG9pbnRzMiA9IFsKLSAgICAgIGJ1aWxkUG9pbnQoLTIuMywgMC4yKSwKLSAgICAgIGJ1aWxkUG9pbnQoLTEuMywgMS4yKSwKLSAgICAgIGJ1aWxkUG9pbnQoLTAuMywgMi4yKSwKLSAgICAgIGJ1aWxkUG9pbnQoMC4zLCAxLjIpLAotICAgICAgYnVpbGRQb2ludCgxLjMsIDAuMiksCi0gICAgICBidWlsZFBvaW50KDIuMywgMCkKLSAgICBdOwotICAgIHZhciByZW5kZXJpbmdDb25maWcyID0gewotICAgICAgY2hhcnRUeXBlOiBDaGFydFNlcmllc1R5cGUuQVJFQSwKLSAgICAgIGNvbG9ySWQ6IDQsCi0gICAgICBzZWxlY3RlZFBvaW50U2l6ZTogMTAKLSAgICB9OwotICAgIHZhciBzZXJpZXMyID0gbmV3IENoYXJ0U2VyaWVzKHBvaW50czIsIGF4aXMxLCByZW5kZXJpbmdDb25maWcyKTsKLQotICAgIHZhciBwb2ludHMzID0gWwotICAgICAgYnVpbGRQb2ludCgtMywgLTUwKSwKLSAgICAgIGJ1aWxkUG9pbnQoLTIuNCwgLTQwKSwKLSAgICAgIGJ1aWxkUG9pbnQoLTEuOCwgLTMwKSwKLSAgICAgIGJ1aWxkUG9pbnQoLTEuMiwgLTIwKSwKLSAgICAgIGJ1aWxkUG9pbnQoLTAuNiwgLTEwKSwKLSAgICAgIGJ1aWxkUG9pbnQoMCwgMCksCi0gICAgICBidWlsZFBvaW50KDAuNiwgMTApLAotICAgICAgYnVpbGRQb2ludCgxLjIsIDIwKSwKLSAgICAgIGJ1aWxkUG9pbnQoMS44LCAzMCksCi0gICAgICBidWlsZFBvaW50KDIuNCwgNDApLAotICAgICAgYnVpbGRQb2ludCgzLCA1MCkKLSAgICBdOwotICAgIHZhciByZW5kZXJpbmdDb25maWczID0gewotICAgICAgY2hhcnRUeXBlOiBDaGFydFNlcmllc1R5cGUuTElORSwKLSAgICAgIGxpbmVXaWR0aDogMgotICAgIH07Ci0gICAgdmFyIHNlcmllczMgPSBuZXcgQ2hhcnRTZXJpZXMocG9pbnRzMywgYXhpczIsIHJlbmRlcmluZ0NvbmZpZzMpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IENoYXJ0VHJhY2sodmlld3BvcnQpOwotICAgIHRyYWNrLnNlcmllcyA9IFtzZXJpZXMxLCBzZXJpZXMyLCBzZXJpZXMzXTsKLQotICAgIHJldHVybiB0cmFjazsKLSAgfQotCi0gIGZ1bmN0aW9uIGJ1aWxkRXZlbnRUb1RyYWNrTWFwKCkgewotICAgIHZhciBldmVudFRvVHJhY2tNYXAgPSB7Ci0gICAgICBtYXA6IHt9LAotICAgICAgYWRkRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50LCB0cmFjaykgewotICAgICAgICB0aGlzLm1hcFtldmVudC5ndWlkXSA9IHRyYWNrOwotICAgICAgfQotICAgIH07Ci0gICAgcmV0dXJuIGV2ZW50VG9UcmFja01hcDsKLSAgfQotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2xvd0RldGFpbHNXaXRob3V0U2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOwotICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKLQotICAgIHZhciB0cmFjayA9IGJ1aWxkVHJhY2sodmlld3BvcnQpOwotICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7Ci0KLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgZHQueFNldFdvcmxkQm91bmRzKC0zLCAzLCB0cmFjay5jbGllbnRXaWR0aCAqIHBpeGVsUmF0aW8pOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0KLSAgICB0cmFjay5oZWlnaHQgPSAnMTAwcHgnOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV9oaWdoRGV0YWlsc1dpdGhTZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmlld3BvcnQuaGlnaERldGFpbHMgPSB0cnVlOwotICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKLQotICAgIHZhciB0cmFjayA9IGJ1aWxkVHJhY2sodmlld3BvcnQpOwotICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotCi0gICAgdHJhY2suc2VyaWVzWzBdLnBvaW50c1sxXS5tb2RlbEl0ZW0uc2VsZWN0aW9uU3RhdGUgPQotICAgICAgU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0gICAgdHJhY2suc2VyaWVzWzFdLnBvaW50c1sxXS5tb2RlbEl0ZW0uc2VsZWN0aW9uU3RhdGUgPQotICAgICAgU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0gICAgdHJhY2suc2VyaWVzWzJdLnBvaW50c1szXS5tb2RlbEl0ZW0uc2VsZWN0aW9uU3RhdGUgPQotICAgICAgU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmludmFsaWRhdGUoKTsKLQotICAgIHZhciBkdCA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoLTMsIDMsIHRyYWNrLmNsaWVudFdpZHRoICogcGl4ZWxSYXRpbyk7Ci0gICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKLQotICAgIHRyYWNrLmhlaWdodCA9ICcxMDBweCc7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrUGFkZGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0cmFjayA9IGJ1aWxkVHJhY2soKTsKLQotICAgIC8vIFBhZGRpbmcgc2hvdWxkIGJlIGVxdWFsIHRvIGhhbGYgbWF4aW11bSBwb2ludCBzaXplLgotICAgIGFzc2VydC5lcXVhbCh0cmFjay50b3BQYWRkaW5nXywgNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJvdHRvbVBhZGRpbmdfLCA1KTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tBZGRFdmVudHNUb1RyYWNrTWFwJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRyYWNrID0gYnVpbGRUcmFjaygpOwotICAgIHZhciBldmVudFRvVHJhY2tNYXAgPSBidWlsZEV2ZW50VG9UcmFja01hcCgpOwotICAgIHRyYWNrLmFkZEV2ZW50c1RvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoZXZlbnRUb1RyYWNrTWFwLm1hcCksIDIzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2thZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdHJhY2sgPSBidWlsZFRyYWNrKCk7Ci0KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHRyYWNrLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKLSAgICAgICAgLTEuMSwgLTAuNywgMC4wMSwgc2VsKTsKLSAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAzKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLCB0cmFjay5zZXJpZXNbMF0ucG9pbnRzWzFdLm1vZGVsSXRlbSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbFsxXSwgdHJhY2suc2VyaWVzWzFdLnBvaW50c1sxXS5tb2RlbEl0ZW0pOwotICAgIGFzc2VydC5lcXVhbChzZWxbMl0sIHRyYWNrLnNlcmllc1syXS5wb2ludHNbM10ubW9kZWxJdGVtKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2thZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0cmFjayA9IGJ1aWxkVHJhY2soKTsKLQotICAgIC8vIEZhaWwgdG8gZmluZCBhIG5lYXIgaXRlbSB0byB0aGUgbGVmdCBpbiBhbnkgc2VyaWVzLgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgIHRyYWNrLnNlcmllc1swXS5wb2ludHNbMF0ubW9kZWxJdGVtLCAtMSwgc2VsKSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7Ci0KLSAgICAvLyBTdWNjZWVkIGF0IGZpbmRpbmcgYSBuZWFyIGl0ZW0gdG8gdGhlIHJpZ2h0IG9mIG9uZSBzZXJpZXMuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICBhc3NlcnQuaXNUcnVlKHRyYWNrLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICB0cmFjay5zZXJpZXNbMV0ucG9pbnRzWzFdLm1vZGVsSXRlbSwgMSwgc2VsKSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbFswXSwgdHJhY2suc2VyaWVzWzFdLnBvaW50c1syXS5tb2RlbEl0ZW0pOwotICB9KTsKLQotICB0ZXN0KCdjaGVja0FkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRyYWNrID0gYnVpbGRUcmFjaygpOwotCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigtMC44LCAwLjQsIDAuNSwgMS41LCBzZWwpOwotICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDIpOwotICAgIGFzc2VydC5lcXVhbChzZWxbMF0sIHRyYWNrLnNlcmllc1swXS5wb2ludHNbMl0ubW9kZWxJdGVtKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsWzFdLCB0cmFjay5zZXJpZXNbMl0ucG9pbnRzWzRdLm1vZGVsSXRlbSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrQXV0b1NldEFsbEF4ZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdHJhY2sgPSBidWlsZFRyYWNrKCk7Ci0gICAgdmFyIGF4aXMxID0gdHJhY2suc2VyaWVzWzBdLmF4aXM7Ci0gICAgdmFyIGF4aXMyID0gdHJhY2suc2VyaWVzWzJdLmF4aXM7Ci0KLSAgICB0cmFjay5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKLQotICAgIC8vIE1pbiBib3VuZHMgb2YgYm90aCBheGVzIHNob3VsZCBub3QgaGF2ZSBiZWVuIG1vZGlmaWVkLgotICAgIGFzc2VydC5lcXVhbChheGlzMS5ib3VuZHMubWluLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpczIuYm91bmRzLm1pbiwgLTEwMCk7Ci0KLSAgICAvLyBNYXggYm91bmRzIG9mIGJvdGggYXhlcyBzaG91bGQgaGF2ZSBiZWVuIG1vZGlmaWVkLgotICAgIGFzc2VydC5lcXVhbChheGlzMS5ib3VuZHMubWF4LCAyLjIpOwotICAgIGFzc2VydC5lcXVhbChheGlzMi5ib3VuZHMubWF4LCA1MCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrQXV0b1NldEF4aXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdHJhY2sgPSBidWlsZFRyYWNrKCk7Ci0gICAgdmFyIGF4aXMxID0gdHJhY2suc2VyaWVzWzBdLmF4aXM7Ci0gICAgdmFyIGF4aXMyID0gdHJhY2suc2VyaWVzWzJdLmF4aXM7Ci0KLSAgICB0cmFjay5hdXRvU2V0QXhpcyhheGlzMiwKLSAgICAgICAge2V4cGFuZE1pbjogdHJ1ZSwgc2hyaW5rTWluOiB0cnVlLCBleHBhbmRNYXg6IHRydWUsIHNocmlua01heDogdHJ1ZX0pOwotCi0gICAgLy8gRmlyc3QgYXhpcyBzaG91bGQgbm90IGhhdmUgYmVlbiBtb2RpZmllZC4KLSAgICBhc3NlcnQuZXF1YWwoYXhpczEuYm91bmRzLm1pbiwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGF4aXMxLmJvdW5kcy5tYXgsIDIpOwotCi0gICAgLy8gU2Vjb25kIGF4aXMgc2hvdWxkIGhhdmUgYmVlbiBtb2RpZmllZC4KLSAgICBhc3NlcnQuZXF1YWwoYXhpczIuYm91bmRzLm1pbiwgLTUwKTsKLSAgICBhc3NlcnQuZXF1YWwoYXhpczIuYm91bmRzLm1heCwgNTApOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY2hhcnRfdHJhbnNmb3JtLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYW5zZm9ybS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjFlN2MwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY2hhcnRfdHJhbnNmb3JtLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotCi0gIC8qKgotICAgKiBBIGhlbHBlciBvYmplY3QgZW5jYXBzdWxhdGluZyBhbGwgcGFyYW1ldGVycyBuZWNlc3NhcnkgdG8gZHJhdyBhIGNoYXJ0Ci0gICAqIHNlcmllcyBhbmQgcHJvdmlkZXMgY29udmVyc2lvbiBiZXR3ZWVuIHdvcmxkIGNvb3JkaW5hdGVzIGFuZCBwaHlzaWNhbAotICAgKiBwaXhlbHMuCi0gICAqCi0gICAqIEFsbCBwYXJhbWV0ZXJzIChleGNlcHQgZm9yIHBpeGVsUmF0aW8pIGFyZSBhc3N1bWVkIHRvIGJlIGluIHBoeXNpY2FsIHBpeGVscwotICAgKiAoaS5lLiBhbHJlYWR5IHByZS1tdWx0aXBsaWVkIHdpdGggcGl4ZWxSYXRpbykuCi0gICAqCi0gICAqIFRoZSBkaWFncmFtIGJlbG93IGV4cGxhaW5zIHRoZSBtZWFuaW5nIG9mIHRoZSByZXN1bHRpbmcgZmllbGRzIHdpdGgKLSAgICogcmVzcGVjdCB0byBhIGNoYXJ0IHRyYWNrOgotICAgKgotICAgKiAgICAgIG91dGVyVG9wVmlld1kgLT4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLy1cLS0tLS0tLSsgPC0gVG9wIHBhZGRpbmcKLSAgICogICAgICBpbm5lclRvcFZpZXdZIC0+ICsgLSAtIC0gLSAtIC0gLSAtIC0gLXwgfC0gLSAtIC0rIDwtIEF4aXMgbWF4Ci0gICAqICAgICAgICAgICAgICAgICAgICAgICB8IC4uICAgICAgICAgICAgICAgPT1cLS89PSAgICAgfAotICAgKiAgICAgICAgICAgICAgICAgICAgICAgfCAgID09ICAgICAgIFNlcmllcyAgICAgICA9PSAgIHwKLSAgICogICAgICAgICAgICAgICAgICAgICAgIHwgICAgID09Ly1cPT0gICAgICAgICAgICAgICAuLiB8Ci0gICAqICAgaW5uZXJCb3R0b21WaWV3WSAtPiArIC0gLSAtUG9pbnQtIC0gLSAtIC0gLSAtIC0gLSAtKyA8LSBBeGlzIG1pbgotICAgKiAgIG91dGVyQm90dG9tVmlld1kgLT4gKy0tLS0tLS1cLS8tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0gQm90dG9tIHBhZGRpbmcKLSAgICogICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi0gICAqICAgICAgICAgICAgICAgICAgIGxlZnRWaWV3WCAgICAgICAgICAgICAgICAgICAgICByaWdodFZpZXdYCi0gICAqICAgICAgICAgICAgICAgICBsZWZ0VGltZVN0YW1wICAgICAgICAgICAgICAgICAgcmlnaHRUaW1lc3RhbXAKLSAgICoKLSAgICogTGFiZWxzIHN0YXJ0aW5nIHdpdGggYSBsb3dlciBjYXNlIGxldHRlciBhcmUgdGhlIHJlc3VsdGluZyBmaWVsZHMgb2YgdGhlCi0gICAqIHRyYW5zZm9ybSBvYmplY3QuIExhYmVscyBzdGFydGluZyB3aXRoIGFuIHVwcGVyIGNhc2UgbGV0dGVyIGNvcnJlc3BvbmQKLSAgICogdG8gdGhlIHJlbGV2YW50IGNoYXJ0IHRyYWNrIGNvbmNlcHRzLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENoYXJ0VHJhbnNmb3JtKGRpc3BsYXlUcmFuc2Zvcm0sIGF4aXMsIHRyYWNrV2lkdGgsCi0gICAgICB0cmFja0hlaWdodCwgdG9wUGFkZGluZywgYm90dG9tUGFkZGluZywgcGl4ZWxSYXRpbykgewotICAgIHRoaXMucGl4ZWxSYXRpbyA9IHBpeGVsUmF0aW87Ci0KLSAgICAvLyBYIGF4aXMuCi0gICAgdGhpcy5sZWZ0Vmlld1ggPSAwOwotICAgIHRoaXMucmlnaHRWaWV3WCA9IHRyYWNrV2lkdGg7Ci0gICAgdGhpcy5sZWZ0VGltZXN0YW1wID0gZGlzcGxheVRyYW5zZm9ybS54Vmlld1RvV29ybGQodGhpcy5sZWZ0Vmlld1gpOwotICAgIHRoaXMucmlnaHRUaW1lc3RhbXAgPSBkaXNwbGF5VHJhbnNmb3JtLnhWaWV3VG9Xb3JsZCh0aGlzLnJpZ2h0Vmlld1gpOwotCi0gICAgdGhpcy5kaXNwbGF5VHJhbnNmb3JtXyA9IGRpc3BsYXlUcmFuc2Zvcm07Ci0KLSAgICAvLyBZIGF4aXMuCi0gICAgdGhpcy5vdXRlclRvcFZpZXdZID0gMDsKLSAgICB0aGlzLmlubmVyVG9wVmlld1kgPSB0b3BQYWRkaW5nOwotICAgIHRoaXMuaW5uZXJCb3R0b21WaWV3WSA9IHRyYWNrSGVpZ2h0IC0gYm90dG9tUGFkZGluZzsKLSAgICB0aGlzLm91dGVyQm90dG9tVmlld1kgPSB0cmFja0hlaWdodDsKLQotICAgIHRoaXMuYXhpc18gPSBheGlzOwotICAgIHRoaXMuaW5uZXJIZWlnaHRfID0gdGhpcy5pbm5lckJvdHRvbVZpZXdZIC0gdGhpcy5pbm5lclRvcFZpZXdZOwotICB9OwotCi0gIENoYXJ0VHJhbnNmb3JtLnByb3RvdHlwZSA9IHsKLSAgICB3b3JsZFhUb1ZpZXdYOiBmdW5jdGlvbih3b3JsZFgpIHsKLSAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnhXb3JsZFRvVmlldyh3b3JsZFgpOwotICAgIH0sCi0KLSAgICB2aWV3WFRvV29ybGRYOiBmdW5jdGlvbih2aWV3WCkgewotICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8ueFZpZXdUb1dvcmxkKHZpZXdYKTsKLSAgICB9LAotCi0gICAgd29ybGRZVG9WaWV3WTogZnVuY3Rpb24od29ybGRZKSB7Ci0gICAgICB2YXIgaW5uZXJIZWlnaHRDb2VmZmljaWVudCA9IDEgLSB0aGlzLmF4aXNfLnZhbHVlVG9Vbml0UmFuZ2Uod29ybGRZKTsKLSAgICAgIHJldHVybiBpbm5lckhlaWdodENvZWZmaWNpZW50ICogdGhpcy5pbm5lckhlaWdodF8gKyB0aGlzLmlubmVyVG9wVmlld1k7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ2hhcnRUcmFuc2Zvcm06IENoYXJ0VHJhbnNmb3JtCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF90cmFuc2Zvcm1fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jaGFydF90cmFuc2Zvcm1fdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTEwNjUxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY2hhcnRfdHJhbnNmb3JtX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY2hhcnRfYXhpcy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY2hhcnRfdHJhbnNmb3JtLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSA9IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtOwotICB2YXIgQ2hhcnRUcmFuc2Zvcm0gPSB0ci5jLnRyYWNrcy5DaGFydFRyYW5zZm9ybTsKLSAgdmFyIENoYXJ0QXhpcyA9IHRyLmMudHJhY2tzLkNoYXJ0QXhpczsKLQotICBmdW5jdGlvbiBidWlsZENoYXJ0VHJhbnNmb3JtKCkgewotICAgIHZhciBkaXNwbGF5VHJhbnNmb3JtID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIGRpc3BsYXlUcmFuc2Zvcm0ucGFuWCA9IC0yMDsKLSAgICBkaXNwbGF5VHJhbnNmb3JtLnNjYWxlWCA9IDAuNTsKLQotICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygtMTAwLCAxMDApOwotCi0gICAgdmFyIGNoYXJ0VHJhbnNmb3JtID0gbmV3IENoYXJ0VHJhbnNmb3JtKAotICAgICAgICBkaXNwbGF5VHJhbnNmb3JtLAotICAgICAgICBheGlzLAotICAgICAgICA1MDAsIC8qIHRyYWNrV2lkdGggKi8KLSAgICAgICAgODAsIC8qIHRyYWNrSGVpZ2h0ICovCi0gICAgICAgIDE1LCAvKiB0b3BQYWRkaW5nICovCi0gICAgICAgIDUsIC8qIGJvdHRvbVBhZGRpbmcgKi8KLSAgICAgICAgMyAvKiBwaXhlbFJhdGlvICovKTsKLQotICAgIHJldHVybiBjaGFydFRyYW5zZm9ybTsKLSAgfQotCi0gIHRlc3QoJ2NoZWNrRmllbGRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHQgPSBidWlsZENoYXJ0VHJhbnNmb3JtKCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodC5waXhlbFJhdGlvLCAzKTsKLQotICAgIGFzc2VydC5lcXVhbCh0LmxlZnRWaWV3WCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQucmlnaHRWaWV3WCwgNTAwKTsKLSAgICBhc3NlcnQuZXF1YWwodC5sZWZ0VGltZXN0YW1wLCAyMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQucmlnaHRUaW1lc3RhbXAsIDEwMjApOwotCi0gICAgYXNzZXJ0LmVxdWFsKHQub3V0ZXJUb3BWaWV3WSwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuaW5uZXJUb3BWaWV3WSwgMTUpOwotICAgIGFzc2VydC5lcXVhbCh0LmlubmVyQm90dG9tVmlld1ksIDc1KTsKLSAgICBhc3NlcnQuZXF1YWwodC5vdXRlckJvdHRvbVZpZXdZLCA4MCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrV29ybGRYVG9WaWV3WCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0ID0gYnVpbGRDaGFydFRyYW5zZm9ybSgpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHQud29ybGRYVG9WaWV3WCgtMTAwKSwgLTYwKTsKLSAgICBhc3NlcnQuZXF1YWwodC53b3JsZFhUb1ZpZXdYKDApLCAtMTApOwotICAgIGFzc2VydC5lcXVhbCh0LndvcmxkWFRvVmlld1goNTIwKSwgMjUwKTsKLSAgICBhc3NlcnQuZXF1YWwodC53b3JsZFhUb1ZpZXdYKDEwMjApLCA1MDApOwotICAgIGFzc2VydC5lcXVhbCh0LndvcmxkWFRvVmlld1goMTIwMCksIDU5MCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrVmlld1hUb1dvcmxkWCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0ID0gYnVpbGRDaGFydFRyYW5zZm9ybSgpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHQudmlld1hUb1dvcmxkWCgtNjApLCAtMTAwKTsKLSAgICBhc3NlcnQuZXF1YWwodC52aWV3WFRvV29ybGRYKC0xMCksIDApOwotICAgIGFzc2VydC5lcXVhbCh0LnZpZXdYVG9Xb3JsZFgoMjUwKSwgNTIwKTsKLSAgICBhc3NlcnQuZXF1YWwodC52aWV3WFRvV29ybGRYKDUwMCksIDEwMjApOwotICAgIGFzc2VydC5lcXVhbCh0LnZpZXdYVG9Xb3JsZFgoNTkwKSwgMTIwMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrV29ybGRZVG9WaWV3WScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0ID0gYnVpbGRDaGFydFRyYW5zZm9ybSgpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHQud29ybGRZVG9WaWV3WSgtMjAwKSwgMTA1KTsKLSAgICBhc3NlcnQuZXF1YWwodC53b3JsZFlUb1ZpZXdZKC0xMDApLCA3NSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQud29ybGRZVG9WaWV3WSgwKSwgNDUpOwotICAgIGFzc2VydC5lcXVhbCh0LndvcmxkWVRvVmlld1koMTAwKSwgMTUpOwotICAgIGFzc2VydC5lcXVhbCh0LndvcmxkWVRvVmlld1koMjAwKSwgLTE1KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jb21tZW50X2JveF9hbm5vdGF0aW9uX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY29tbWVudF9ib3hfYW5ub3RhdGlvbl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjZGZkMmUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jb21tZW50X2JveF9hbm5vdGF0aW9uX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2Fubm90YXRpb25fdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMuYW5ub3RhdGlvbnMnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEEgdmlldyBvZiBhIGNvbW1lbnQgYm94IGNvbnNpc3Rpbmcgb2YgYSB0ZXh0YXJlYSBhbmQgYSBsaW5lIHRvIHRoZQotICAgKiBhY3R1YWwgbG9jYXRpb24uCi0gICAqIEBleHRlbmRzIHtBbm5vdGF0aW9uVmlld30KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBDb21tZW50Qm94QW5ub3RhdGlvblZpZXcodmlld3BvcnQsIGFubm90YXRpb24pIHsKLSAgICB0aGlzLnZpZXdwb3J0XyA9IHZpZXdwb3J0OwotICAgIHRoaXMuYW5ub3RhdGlvbl8gPSBhbm5vdGF0aW9uOwotICAgIHRoaXMudGV4dEFyZWFfID0gdW5kZWZpbmVkOwotCi0gICAgdGhpcy5zdHlsZVdpZHRoID0gMjUwOwotICAgIHRoaXMuc3R5bGVIZWlnaHQgPSA1MDsKLSAgICB0aGlzLmZvbnRTaXplID0gMTA7Ci0gICAgdGhpcy5yaWdodE9mZnNldCA9IDUwOwotICAgIHRoaXMudG9wT2Zmc2V0ID0gMjU7Ci0gIH0KLQotICBDb21tZW50Qm94QW5ub3RhdGlvblZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy5hbm5vdGF0aW9ucy5Bbm5vdGF0aW9uVmlldy5wcm90b3R5cGUsCi0KLSAgICByZW1vdmVUZXh0QXJlYTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRleHRBcmVhXy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMudGV4dEFyZWFfKTsKLSAgICB9LAotCi0gICAgZHJhdzogZnVuY3Rpb24oY3R4KSB7Ci0gICAgICB2YXIgY29vcmRzID0gdGhpcy5hbm5vdGF0aW9uXy5sb2NhdGlvbi50b1ZpZXdDb29yZGluYXRlcyh0aGlzLnZpZXdwb3J0Xyk7Ci0gICAgICBpZiAoY29vcmRzLnZpZXdYIDwgMCkgewotICAgICAgICBpZiAodGhpcy50ZXh0QXJlYV8pCi0gICAgICAgICAgdGhpcy50ZXh0QXJlYV8uc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIC8vIFNldCB1cCB0ZXh0YXJlYSBlbGVtZW50LgotICAgICAgaWYgKCF0aGlzLnRleHRBcmVhXykgewotICAgICAgICB0aGlzLnRleHRBcmVhXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7Ci0gICAgICAgIHRoaXMudGV4dEFyZWFfLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKLSAgICAgICAgdGhpcy50ZXh0QXJlYV8ucmVhZE9ubHkgPSB0cnVlOwotICAgICAgICB0aGlzLnRleHRBcmVhXy52YWx1ZSA9IHRoaXMuYW5ub3RhdGlvbl8udGV4dDsKLSAgICAgICAgLy8gU2V0IHRoZSB6LWluZGV4IHNvIHRoYXQgdGhpcyBpcyBzaG93biBvbiB0b3Agb2YgY2FudmFzLgotICAgICAgICB0aGlzLnRleHRBcmVhXy5zdHlsZS56SW5kZXggPSAxOwotICAgICAgICBjdHguY2FudmFzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcy50ZXh0QXJlYV8pOwotICAgICAgfQotCi0gICAgICB0aGlzLnRleHRBcmVhXy5zdHlsZS53aWR0aCA9IHRoaXMuc3R5bGVXaWR0aCArICdweCc7Ci0gICAgICB0aGlzLnRleHRBcmVhXy5zdHlsZS5oZWlnaHQgPSB0aGlzLnN0eWxlSGVpZ2h0ICsgJ3B4JzsKLSAgICAgIHRoaXMudGV4dEFyZWFfLnN0eWxlLmZvbnRTaXplID0gdGhpcy5mb250U2l6ZSArICdweCc7Ci0gICAgICB0aGlzLnRleHRBcmVhXy5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOwotCi0gICAgICAvLyBVcGRhdGUgcG9zaXRpb25zIHRvIGxhdGVzdCBjb29yZGluYXRlLgotICAgICAgdGhpcy50ZXh0QXJlYV8uc3R5bGUubGVmdCA9Ci0gICAgICAgICAgY29vcmRzLnZpZXdYICsgY3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsKLSAgICAgICAgICB0aGlzLnJpZ2h0T2Zmc2V0ICsgJ3B4JzsKLSAgICAgIHRoaXMudGV4dEFyZWFfLnN0eWxlLnRvcCA9Ci0gICAgICAgICAgY29vcmRzLnZpZXdZIC0gY3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLQotICAgICAgICAgIHRoaXMudG9wT2Zmc2V0ICsgJ3B4JzsKLQotICAgICAgLy8gRHJhdyBwb2ludGVyIGxpbmUgZnJvbSBvZmZzZXQgdG8gYWN0dWFsIGxvY2F0aW9uLgotICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigwLCAwLCAwKSc7Ci0gICAgICBjdHgubGluZVdpZHRoID0gMjsKLSAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAgIHRyLmMuZHJhd0xpbmUoY3R4LCBjb29yZHMudmlld1gsCi0gICAgICAgICAgY29vcmRzLnZpZXdZIC0gY3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsCi0gICAgICAgICAgY29vcmRzLnZpZXdYICsgdGhpcy5yaWdodE9mZnNldCwKLSAgICAgICAgICBjb29yZHMudmlld1kgLSB0aGlzLnRvcE9mZnNldCAtCi0gICAgICAgICAgICBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCk7Ci0gICAgICBjdHguc3Ryb2tlKCk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ29tbWVudEJveEFubm90YXRpb25WaWV3OiBDb21tZW50Qm94QW5ub3RhdGlvblZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvbnRhaW5lcl90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTgwMmFlYi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvbnRhaW5lcl90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRhc2sgPSB0ci5iLlRhc2s7Ci0KLSAgLyoqCi0gICAqIEEgZ2VuZXJpYyB0cmFjayB0aGF0IGNvbnRhaW5zIG90aGVyIHRyYWNrcyBhcyBpdHMgY2hpbGRyZW4uCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIENvbnRhaW5lclRyYWNrID0gdHIuYi51aS5kZWZpbmUoJ2NvbnRhaW5lci10cmFjaycsIHRyLmMudHJhY2tzLlRyYWNrKTsKLSAgQ29udGFpbmVyVHJhY2sucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgfSwKLQotICAgIGRldGFjaDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7Ci0gICAgfSwKLQotICAgIGdldCB0cmFja3NfKCkgewotICAgICAgdmFyIHRyYWNrcyA9IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuW2ldLmNsYXNzTGlzdC5jb250YWlucygndHJhY2snKSkKLSAgICAgICAgICB0cmFja3MucHVzaCh0aGlzLmNoaWxkcmVuW2ldKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0cmFja3M7Ci0gICAgfSwKLQotICAgIGRyYXdUcmFjazogZnVuY3Rpb24odHlwZSkgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghKHRoaXMuY2hpbGRyZW5baV0gaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHRoaXMuY2hpbGRyZW5baV0uZHJhd1RyYWNrKHR5cGUpOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBBZGRzIGl0ZW1zIGludGVyc2VjdGluZyB0aGUgZ2l2ZW4gcmFuZ2UgdG8gYSBzZWxlY3Rpb24uCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGxvVlggTG93ZXIgWCBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgotICAgICAqICAgICB2aWV3c3BhY2UuCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGhpVlggVXBwZXIgWCBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgotICAgICAqICAgICB2aWV3c3BhY2UuCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGxvWSBMb3dlciBZIGJvdW5kIG9mIHRoZSBpbnRlcnZhbCB0byBzZWFyY2gsIGluCi0gICAgICogICAgIHZpZXdzcGFjZSBzcGFjZS4KLSAgICAgKiBAcGFyYW0ge251bWJlcn0gaGlZIFVwcGVyIFkgYm91bmQgb2YgdGhlIGludGVydmFsIHRvIHNlYXJjaCwgaW4KLSAgICAgKiAgICAgdmlld3NwYWNlIHNwYWNlLgotICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gU2VsZWN0aW9uIHRvIHdoaWNoIHRvIGFkZCByZXN1bHRzLgotICAgICAqLwotICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbjogZnVuY3Rpb24oCi0gICAgICAgIGxvVlgsIGhpVlgsIGxvWSwgaGlZLCBzZWxlY3Rpb24pIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50cmFja3NfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciB0cmFja0NsaWVudFJlY3QgPSB0aGlzLnRyYWNrc19baV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIHZhciBhID0gTWF0aC5tYXgobG9ZLCB0cmFja0NsaWVudFJlY3QudG9wKTsKLSAgICAgICAgdmFyIGIgPSBNYXRoLm1pbihoaVksIHRyYWNrQ2xpZW50UmVjdC5ib3R0b20pOwotICAgICAgICBpZiAoYSA8PSBiKQotICAgICAgICAgIHRoaXMudHJhY2tzX1tpXS5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCi0gICAgICAgICAgICAgIGxvVlgsIGhpVlgsIGxvWSwgaGlZLCBzZWxlY3Rpb24pOwotICAgICAgfQotCi0gICAgICB0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uLgotICAgICAgICAgIGFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgfSwKLQotICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICB0aGlzLmNoaWxkcmVuW2ldLmFkZEV2ZW50c1RvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwKTsKLSAgICB9LAotCi0gICAgYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjogZnVuY3Rpb24oZmlsdGVyLCBzZWxlY3Rpb24pIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50cmFja3NfLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLnRyYWNrc19baV0uYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbigKLSAgICAgICAgICAgIGZpbHRlciwgc2VsZWN0aW9uKTsKLSAgICB9LAotCi0gICAgYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzazogZnVuY3Rpb24oZmlsdGVyLCBzZWxlY3Rpb24pIHsKLSAgICAgIHZhciB0YXNrID0gbmV3IFRhc2soKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50cmFja3NfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHRhc2suc3ViVGFzayhmdW5jdGlvbihpKSB7IHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB0aGlzLnRyYWNrc19baV0uYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbigKLSAgICAgICAgICAgICAgZmlsdGVyLCBzZWxlY3Rpb24pOwotICAgICAgICB9IH0oaSksIHRoaXMpOwotICAgICAgfQotICAgICAgcmV0dXJuIHRhc2s7Ci0gICAgfSwKLQotICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbigKLSAgICAgICAgd29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLCBzZWxlY3Rpb24pIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50cmFja3NfLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciB0cmFja0NsaWVudFJlY3QgPSB0aGlzLnRyYWNrc19baV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIHZhciBhID0gTWF0aC5tYXgobG9ZLCB0cmFja0NsaWVudFJlY3QudG9wKTsKLSAgICAgICAgdmFyIGIgPSBNYXRoLm1pbihoaVksIHRyYWNrQ2xpZW50UmVjdC5ib3R0b20pOwotICAgICAgICBpZiAoYSA8PSBiKSB7Ci0gICAgICAgICAgdGhpcy50cmFja3NfW2ldLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICAgICAgICB3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksIHNlbGVjdGlvbik7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgdHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uLgotICAgICAgICAgIGFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ29udGFpbmVyVHJhY2s6IENvbnRhaW5lclRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jb3VudGVyX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvdW50ZXJfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODgwZWRmMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvdW50ZXJfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X2F4aXMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3BvaW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGEgQ291bnRlciBvYmplY3QuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7Q2hhcnRUcmFja30KLSAgICovCi0gIHZhciBDb3VudGVyVHJhY2sgPQotICAgICAgdHIuYi51aS5kZWZpbmUoJ2NvdW50ZXItdHJhY2snLCB0ci5jLnRyYWNrcy5DaGFydFRyYWNrKTsKLQotICBDb3VudGVyVHJhY2sucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuQ2hhcnRUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLkNoYXJ0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdjb3VudGVyLXRyYWNrJyk7Ci0gICAgfSwKLQotICAgIGdldCBjb3VudGVyKCkgewotICAgICAgcmV0dXJuIHRoaXMuY2hhcnQ7Ci0gICAgfSwKLQotICAgIHNldCBjb3VudGVyKGNvdW50ZXIpIHsKLSAgICAgIHRoaXMuaGVhZGluZyA9IGNvdW50ZXIubmFtZSArICc6ICc7Ci0gICAgICB0aGlzLnNlcmllcyA9IENvdW50ZXJUcmFjay5idWlsZENoYXJ0U2VyaWVzRnJvbUNvdW50ZXIoY291bnRlcik7Ci0gICAgICB0aGlzLmF1dG9TZXRBbGxBeGVzKHtleHBhbmRNYXg6IHRydWV9KTsKLSAgICB9LAotCi0gICAgZ2V0TW9kZWxFdmVudEZyb21JdGVtOiBmdW5jdGlvbihjaGFydFZhbHVlKSB7Ci0gICAgICByZXR1cm4gY2hhcnRWYWx1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgQ291bnRlclRyYWNrLmJ1aWxkQ2hhcnRTZXJpZXNGcm9tQ291bnRlciA9IGZ1bmN0aW9uKGNvdW50ZXIpIHsKLSAgICB2YXIgbnVtU2VyaWVzID0gY291bnRlci5zZXJpZXMubGVuZ3RoOwotICAgIHZhciB0b3RhbHMgPSBjb3VudGVyLnRvdGFsczsKLQotICAgIC8vIENyZWF0ZSBvbmUgY29tbW9uIGF4aXMgZm9yIGFsbCBzZXJpZXMuCi0gICAgdmFyIGNoYXJ0QXhpcyA9IG5ldyB0ci5jLnRyYWNrcy5DaGFydEF4aXMoMCwgdW5kZWZpbmVkKTsKLQotICAgIC8vIEJ1aWxkIG9uZSBjaGFydCBzZXJpZXMgZm9yIGVhY2ggY291bnRlciBzZXJpZXMuCi0gICAgdmFyIGNoYXJ0U2VyaWVzID0gY291bnRlci5zZXJpZXMubWFwKGZ1bmN0aW9uKHNlcmllcywgc2VyaWVzSW5kZXgpIHsKLSAgICAgIHZhciBjaGFydFBvaW50cyA9IHNlcmllcy5zYW1wbGVzLm1hcChmdW5jdGlvbihzYW1wbGUsIHNhbXBsZUluZGV4KSB7Ci0gICAgICAgIHZhciB0b3RhbCA9IHRvdGFsc1tzYW1wbGVJbmRleCAqIG51bVNlcmllcyArIHNlcmllc0luZGV4XTsKLSAgICAgICAgcmV0dXJuIG5ldyB0ci5jLnRyYWNrcy5DaGFydFBvaW50KHNhbXBsZSwgc2FtcGxlLnRpbWVzdGFtcCwgdG90YWwpOwotICAgICAgfSk7Ci0gICAgICB2YXIgcmVuZGVyaW5nQ29uZmlnID0gewotICAgICAgICBjaGFydFR5cGU6IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZS5BUkVBLAotICAgICAgICBjb2xvcklkOiBzZXJpZXMuY29sb3IKLSAgICAgIH07Ci0gICAgICByZXR1cm4gbmV3IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzKAotICAgICAgICAgIGNoYXJ0UG9pbnRzLCBjaGFydEF4aXMsIHJlbmRlcmluZ0NvbmZpZyk7Ci0gICAgfSk7Ci0KLSAgICAvLyBTaG93IHRoZSBmaXJzdCBzZXJpZXMgKHdpdGggdGhlIHNtYWxsZXN0IGN1bXVsYXRpdmUgdmFsdWUpIGF0IHRoZSB0b3AuCi0gICAgY2hhcnRTZXJpZXMucmV2ZXJzZSgpOwotCi0gICAgcmV0dXJuIGNoYXJ0U2VyaWVzOwotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ291bnRlclRyYWNrOiBDb3VudGVyVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvdW50ZXJfdHJhY2tfcGVyZl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvdW50ZXJfdHJhY2tfcGVyZl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNjIxOTguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jb3VudGVyX3RyYWNrX3BlcmZfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3RyYWNlX3ZpZXdlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Z1bGxfY29uZmlnLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIGdldFN5bmNocm9ub3VzKHVybCkgewotICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3BlbignR0VUJywgdXJsLCBmYWxzZSk7Ci0gICAgLy8gV2l0aG91dCB0aGUgbWltZSB0eXBlIHNwZWNpZmllZCBsaWtlIHRoaXMsIHRoZSBmaWxlJ3MgYnl0ZXMgYXJlIG5vdAotICAgIC8vIHJldHJpZXZlZCBjb3JyZWN0bHkuCi0gICAgcmVxLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQnKTsKLSAgICByZXEuc2VuZChudWxsKTsKLSAgICByZXR1cm4gcmVxLnJlc3BvbnNlVGV4dDsKLSAgfQotCi0gIHZhciBaT09NX1NURVBTID0gMTA7Ci0gIHZhciBaT09NX0NPRUZGSUNJRU5UID0gMS4yOwotCi0gIHZhciBtb2RlbCA9IHVuZGVmaW5lZDsKLQotICB2YXIgZHJhd2luZ0NvbnRhaW5lcjsKLSAgdmFyIHZpZXdwb3J0RGl2OwotCi0gIHZhciB2aWV3cG9ydFdpZHRoOwotICB2YXIgd29ybGRNaWQ7Ci0KLSAgdmFyIHN0YXJ0U2NhbGUgPSB1bmRlZmluZWQ7Ci0KLSAgZnVuY3Rpb24gdGltZWRDb3VudGVyVHJhY2tQZXJmVGVzdChuYW1lLCB0ZXN0Rm4sIGl0ZXJhdGlvbnMpIHsKLQotICAgIGZ1bmN0aW9uIHNldFVwT25jZSgpIHsKLSAgICAgIGlmIChtb2RlbCAhPT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm47Ci0gICAgICB2YXIgZmlsZVVybCA9ICcvdGVzdF9kYXRhL2NvdW50ZXJfdHJhY2tzLmh0bWwnOwotICAgICAgdmFyIGV2ZW50cyA9IGdldFN5bmNocm9ub3VzKGZpbGVVcmwpOwotICAgICAgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICAgIG1vZGVsLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgdHJ1ZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc2V0VXAoKSB7Ci0gICAgICBzZXRVcE9uY2UoKTsKLSAgICAgIHZpZXdwb3J0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAgIHZhciB2aWV3cG9ydCA9IG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQodmlld3BvcnREaXYpOwotCi0gICAgICBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgICAgdmlld3BvcnQubW9kZWxUcmFja0NvbnRhaW5lciA9IGRyYXdpbmdDb250YWluZXI7Ci0KLSAgICAgIHZhciBtb2RlbFRyYWNrID0gbmV3IHRyLmMudHJhY2tzLk1vZGVsVHJhY2sodmlld3BvcnQpOwotICAgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChtb2RlbFRyYWNrKTsKLQotICAgICAgbW9kZWxUcmFjay5tb2RlbCA9IG1vZGVsOwotCi0gICAgICB2aWV3cG9ydERpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKLQotICAgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdwb3J0RGl2KTsKLQotICAgICAgLy8gU2l6ZSB0aGUgY2FudmFzLgotICAgICAgZHJhd2luZ0NvbnRhaW5lci51cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfKCk7Ci0KLSAgICAgIC8vIFNpemUgdGhlIHZpZXdwb3J0LgotICAgICAgdmlld3BvcnRXaWR0aCA9IGRyYXdpbmdDb250YWluZXIuY2FudmFzLndpZHRoOwotICAgICAgdmFyIG1pbiA9IG1vZGVsLmJvdW5kcy5taW47Ci0gICAgICB2YXIgcmFuZ2UgPSBtb2RlbC5ib3VuZHMucmFuZ2U7Ci0gICAgICB3b3JsZE1pZCA9IG1pbiArIHJhbmdlIC8gMjsKLQotICAgICAgdmFyIGJvb3N0ID0gcmFuZ2UgKiAwLjE1OwotICAgICAgdmFyIGR0ID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7Ci0gICAgICBkdC54U2V0V29ybGRCb3VuZHMobWluIC0gYm9vc3QsIG1pbiArIHJhbmdlICsgYm9vc3QsIHZpZXdwb3J0V2lkdGgpOwotICAgICAgbW9kZWxUcmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotICAgICAgc3RhcnRTY2FsZSA9IGR0LnNjYWxlWDsKLQotICAgICAgLy8gU2VsZWN0IGhhbGYgb2YgdGhlIGNvdW50ZXIgc2FtcGxlcy4KLSAgICAgIGZvciAodmFyIHBpZCBpbiBtb2RlbC5wcm9jZXNzZXMpIHsKLSAgICAgICAgdmFyIGNvdW50ZXJzID0gbW9kZWwucHJvY2Vzc2VzW3BpZF0uY291bnRlcnM7Ci0gICAgICAgIGZvciAodmFyIGNpZCBpbiBjb3VudGVycykgewotICAgICAgICAgIHZhciBzZXJpZXMgPSBjb3VudGVyc1tjaWRdLnNlcmllczsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIHNhbXBsZXMgPSBzZXJpZXNbaV0uc2FtcGxlczsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSBNYXRoLmZsb29yKHNhbXBsZXMubGVuZ3RoIC8gMik7IGogPCBzYW1wbGVzLmxlbmd0aDsKLSAgICAgICAgICAgICAgICAgaisrKSB7Ci0gICAgICAgICAgICAgIHNhbXBsZXNbal0uc2VsZWN0aW9uU3RhdGUgPQotICAgICAgICAgICAgICAgICAgdHIubW9kZWwuU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIHRlYXJEb3duKCkgewotICAgICAgdmlld3BvcnREaXYuaW5uZXJUZXh0ID0gJyc7Ci0gICAgICBkcmF3aW5nQ29udGFpbmVyID0gdW5kZWZpbmVkOwotICAgIH0KLQotICAgIHRpbWVkUGVyZlRlc3QobmFtZSwgdGVzdEZuLCB7Ci0gICAgICBzZXRVcDogc2V0VXAsCi0gICAgICB0ZWFyRG93bjogdGVhckRvd24sCi0gICAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zCi0gICAgfSk7Ci0gIH0KLQotICB2YXIgbjExMDEwMCA9IFsxLCAxMCwgMTAwXTsKLSAgbjExMDEwMC5mb3JFYWNoKGZ1bmN0aW9uKHZhbCkgewotICAgIHRpbWVkQ291bnRlclRyYWNrUGVyZlRlc3QoCi0gICAgICAgICdkcmF3X3NvZnR3YXJlQ2FudmFzXycgKyB2YWwsCi0gICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciBzY2FsZSA9IHN0YXJ0U2NhbGU7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBaT09NX1NURVBTOyBpKyspIHsKLSAgICAgICAgICAgIHZhciBkdCA9IGRyYXdpbmdDb250YWluZXIudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uY2xvbmUoKTsKLSAgICAgICAgICAgIHNjYWxlICo9IFpPT01fQ09FRkZJQ0lFTlQ7Ci0gICAgICAgICAgICBkdC5zY2FsZVggPSBzY2FsZTsKLSAgICAgICAgICAgIGR0LnhQYW5Xb3JsZFBvc1RvVmlld1Bvcyh3b3JsZE1pZCwgJ2NlbnRlcicsIHZpZXdwb3J0V2lkdGgpOwotICAgICAgICAgICAgZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotICAgICAgICAgICAgZHJhd2luZ0NvbnRhaW5lci5kcmF3XygpOwotICAgICAgICAgIH0KLSAgICAgICAgfSwgdmFsKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvdW50ZXJfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jb3VudGVyX3RyYWNrX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZiMjcxMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NvdW50ZXJfdHJhY2tfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTkwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIENvdW50ZXIgPSB0ci5tb2RlbC5Db3VudGVyOwotICB2YXIgVmlld3BvcnQgPSB0ci5jLlRpbWVsaW5lVmlld3BvcnQ7Ci0gIHZhciBDb3VudGVyVHJhY2sgPSB0ci5jLnRyYWNrcy5Db3VudGVyVHJhY2s7Ci0KLSAgdmFyIHJ1blRlc3QgPSBmdW5jdGlvbih0aW1lc3RhbXBzLCBzYW1wbGVzLCB0ZXN0Rm4pIHsKLSAgICB2YXIgdGVzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICB2YXIgY3RyID0gbmV3IENvdW50ZXIodW5kZWZpbmVkLCAnZm9vJywgJycsICdmb28nKTsKLSAgICB2YXIgbiA9IHNhbXBsZXMubGVuZ3RoOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpIHsKLSAgICAgIGN0ci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3ZhbHVlJyArIGksCi0gICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoJ3ZhbHVlJyArIGkpKSk7Ci0gICAgfQotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICBmb3IgKHZhciBrID0gMDsgayA8IHRpbWVzdGFtcHMubGVuZ3RoOyArK2spIHsKLSAgICAgICAgY3RyLnNlcmllc1tpXS5hZGRDb3VudGVyU2FtcGxlKHRpbWVzdGFtcHNba10sIHNhbXBsZXNbaV1ba10pOwotICAgICAgfQotICAgIH0KLQotICAgIGN0ci51cGRhdGVCb3VuZHMoKTsKLQotICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh0ZXN0RWwpOwotCi0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgdGVzdEVsLmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IENvdW50ZXJUcmFjayh2aWV3cG9ydCk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRlc3RFbCk7Ci0KLSAgICAvLyBGb3JjZSB0aGUgY29udGFpbmVyIHRvIHVwZGF0ZSBzaXplcyBzbyB0aGUgdGVzdCBjYW4gdXNlIGNvb3JkaW5hdGVzIHRoYXQKLSAgICAvLyBtYWtlIHNlbnNlLiBUaGlzIGhhcyB0byBiZSBhZnRlciB0aGUgYWRkaW5nIG9mIHRoZSB0cmFjayBhcyB3ZSBuZWVkIHRvCi0gICAgLy8gdXNlIHRoZSB0cmFjayBoZWFkZXIgdG8gZmlndXJlIG91dCBvdXIgcG9zaXRpb25pbmcuCi0gICAgZHJhd2luZ0NvbnRhaW5lci51cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfKCk7Ci0KLSAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0KLSAgICB0cmFjay5oZWFkaW5nID0gY3RyLm5hbWU7Ci0gICAgdHJhY2suY291bnRlciA9IGN0cjsKLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgMTAsIHRyYWNrLmNsaWVudFdpZHRoICogcGl4ZWxSYXRpbyk7Ci0gICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKLQotICAgIHRlc3RGbihjdHIsIGRyYXdpbmdDb250YWluZXIsIHRyYWNrKTsKLSAgfTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjdHIgPSBuZXcgQ291bnRlcih1bmRlZmluZWQsICd0ZXN0QmFzaWNDb3VudGVyJywgJycsCi0gICAgICAgICd0ZXN0QmFzaWNDb3VudGVyJyk7Ci0gICAgY3RyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygndmFsdWUxJywKLSAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoJ3Rlc3RCYXNpY0NvdW50ZXIudmFsdWUxJykpKTsKLSAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZTInLAotICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygndGVzdEJhc2ljQ291bnRlci52YWx1ZTInKSkpOwotCi0gICAgdmFyIHRpbWVzdGFtcHMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgN107Ci0gICAgdmFyIHNhbXBsZXMgPSBbWzAsIDMsIDEsIDIsIDMsIDEsIDMsIDMuMV0sCi0gICAgICAgICAgICAgICAgICAgWzUsIDMsIDEsIDEuMSwgMCwgNywgMCwgMC41XV07Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICBmb3IgKHZhciBrID0gMDsgayA8IHRpbWVzdGFtcHMubGVuZ3RoOyArK2spIHsKLSAgICAgICAgY3RyLnNlcmllc1tpXS5hZGRDb3VudGVyU2FtcGxlKHRpbWVzdGFtcHNba10sIHNhbXBsZXNbaV1ba10pOwotICAgICAgfQotICAgIH0KLQotICAgIGN0ci51cGRhdGVCb3VuZHMoKTsKLQotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKLQotICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBDb3VudGVyVHJhY2sodmlld3BvcnQpOwotICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7Ci0KLSAgICB0cmFjay5oZWFkaW5nID0gY3RyLm5hbWU7Ci0gICAgdHJhY2suY291bnRlciA9IGN0cjsKLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgNy43LCB0cmFjay5jbGllbnRXaWR0aCk7Ci0gICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYmFzaWNDb3VudGVyWFBvaW50UGlja2luZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0aW1lc3RhbXBzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDddOwotICAgIHZhciBzYW1wbGVzID0gW1swLCAzLCAxLCAyLCAzLCAxLCAzLCAzLjFdLAotICAgICAgICAgICAgICAgICAgIFs1LCAzLCAxLCAxLjEsIDAsIDcsIDAsIDAuNV1dOwotCi0gICAgcnVuVGVzdC5jYWxsKHRoaXMsIHRpbWVzdGFtcHMsIHNhbXBsZXMsIGZ1bmN0aW9uKGN0ciwgY29udGFpbmVyLCB0cmFjaykgewotICAgICAgdmFyIGNsaWVudFJlY3QgPSB0cmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciB5NzUgPSBjbGllbnRSZWN0LnRvcCArICgwLjc1ICogY2xpZW50UmVjdC5oZWlnaHQpOwotCi0gICAgICAvLyBJbiBib3VuZHMuCi0gICAgICB2YXIgc2VsID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICB2YXIgeCA9IDAuMTUgKiBjbGllbnRSZWN0LndpZHRoOwotICAgICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uKAotICAgICAgICAgIHgsIHggKyAxLCB5NzUsIHk3NSArIDEsIHNlbCk7Ci0KLSAgICAgIGFzc2VydC5lcXVhbChzZWwubGVuZ3RoLCAyKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWxbMF0uc2VyaWVzLmNvdW50ZXIsIGN0cik7Ci0gICAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmdldFNhbXBsZUluZGV4KCksIDEpOwotICAgICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5zZXJpZXMuc2VyaWVzSW5kZXgsIDEpOwotCi0gICAgICBhc3NlcnQuZXF1YWwoc2VsWzFdLnNlcmllcy5jb3VudGVyLCBjdHIpOwotICAgICAgYXNzZXJ0LmVxdWFsKHNlbFsxXS5nZXRTYW1wbGVJbmRleCgpLCAxKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWxbMV0uc2VyaWVzLnNlcmllc0luZGV4LCAwKTsKLQotICAgICAgLy8gT3V0c2lkZSBib3VuZHMuCi0gICAgICBzZWwgPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgIHZhciB4ID0gLTAuNSAqIGNsaWVudFJlY3Qud2lkdGg7Ci0gICAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCi0gICAgICAgICAgeCwgeCArIDEsIHk3NSwgeTc1ICsgMSwgc2VsKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWwubGVuZ3RoLCAwKTsKLQotICAgICAgc2VsID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICB2YXIgeCA9IDAuOCAqIGNsaWVudFJlY3Qud2lkdGg7Ci0gICAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCi0gICAgICAgICAgeCwgeCArIDEsIHk3NSwgeTc1ICsgMSwgc2VsKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWwubGVuZ3RoLCAwKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnY291bnRlclRyYWNrQWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGltZXN0YW1wcyA9IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3XTsKLSAgICB2YXIgc2FtcGxlcyA9IFtbMCwgNCwgMSwgMiwgMywgMSwgMywgMy4xXSwKLSAgICAgICAgICAgICAgICAgICBbNSwgMywgMSwgMS4xLCAwLCA3LCAwLCAwLjVdXTsKLQotICAgIHJ1blRlc3QuY2FsbCh0aGlzLCB0aW1lc3RhbXBzLCBzYW1wbGVzLCBmdW5jdGlvbihjdHIsIGNvbnRhaW5lciwgdHJhY2spIHsKLSAgICAgIC8vIEJlZm9yZSB3aXRoIG5vdCByYW5nZS4KLSAgICAgIHZhciBzZWwgPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKC0xLCAwLCAwLCAwLCBzZWwpOwotICAgICAgYXNzZXJ0LmVxdWFsKHNlbC5sZW5ndGgsIDApOwotCi0gICAgICAvLyBCZWZvcmUgd2l0aCBuZWdhdGl2ZSByYW5nZS4KLSAgICAgIHZhciBzZWwgPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKC0xLCAtMTAsIDAsIDAsIHNlbCk7Ci0gICAgICBhc3NlcnQuZXF1YWwoc2VsLmxlbmd0aCwgMCk7Ci0KLSAgICAgIC8vIEJlZm9yZSBmaXJzdCBzYW1wbGUuCi0gICAgICB2YXIgc2VsID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigtMSwgMSwgMCwgMCwgc2VsKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWwubGVuZ3RoLCAyKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWxbMF0uZ2V0U2FtcGxlSW5kZXgoKSwgMCk7Ci0KLSAgICAgIC8vIEJldHdlZW4gYW5kIGNsb3NlciB0byBzYW1wbGUgYmVmb3JlLgotICAgICAgdmFyIHNlbCA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMS4zLCAxLCAwLCAwLCBzZWwpOwotICAgICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5nZXRTYW1wbGVJbmRleCgpLCAxKTsKLQotICAgICAgLy8gQmV0d2VlbiBzYW1wbGVzIHdpdGggYmFkIHJhbmdlLgotICAgICAgdmFyIHNlbCA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMS40NSwgMC4yNSwgMCwgMCwgc2VsKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWwubGVuZ3RoLCAwKTsKLQotICAgICAgLy8gQmV0d2VlbiBhbmQgY2xvc2VyIHRvIG5leHQgc2FtcGxlLgotICAgICAgdmFyIHNlbCA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oNC43LCA2LCAwLCAwLCBzZWwpOwotICAgICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5nZXRTYW1wbGVJbmRleCgpLCA1KTsKLQotICAgICAgLy8gQWZ0ZXIgbGFzdCBzYW1wbGUgd2l0aCBnb29kIHJhbmdlLgotICAgICAgdmFyIHNlbCA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oOC41LCAyLCAwLCAwLCBzZWwpOwotICAgICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5nZXRTYW1wbGVJbmRleCgpLCA3KTsKLQotICAgICAgLy8gQWZ0ZXIgbGFzdCBzYW1wbGUgd2l0aCBiYWQgcmFuZ2UuCi0gICAgICB2YXIgc2VsID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigxMCwgMSwgMCwgMCwgc2VsKTsKLSAgICAgIGFzc2VydC5lcXVhbChzZWwubGVuZ3RoLCAwKTsKLSAgICB9KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NwdV90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jcHVfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA3ZjIwNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2NwdV90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NvbnRhaW5lcl90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0KLSAgLyoqCi0gICAqIFZpc3VhbGl6ZXMgYSBDcHUgdXNpbmcgYSBzZXJpZXMgb2Ygb2YgU2xpY2VUcmFja3MuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIENwdVRyYWNrID0KLSAgICAgIHRyLmIudWkuZGVmaW5lKCdjcHUtdHJhY2snLCB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjayk7Ci0gIENwdVRyYWNrLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdjcHUtdHJhY2snKTsKLSAgICAgIHRoaXMuZGV0YWlsZWRNb2RlXyA9IHRydWU7Ci0gICAgfSwKLQotICAgIGdldCBjcHUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jcHVfOwotICAgIH0sCi0KLSAgICBzZXQgY3B1KGNwdSkgewotICAgICAgdGhpcy5jcHVfID0gY3B1OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IGRldGFpbGVkTW9kZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmRldGFpbGVkTW9kZV87Ci0gICAgfSwKLQotICAgIHNldCBkZXRhaWxlZE1vZGUoZGV0YWlsZWRNb2RlKSB7Ci0gICAgICB0aGlzLmRldGFpbGVkTW9kZV8gPSBkZXRhaWxlZE1vZGU7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgdG9vbHRpcCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBfOwotICAgIH0sCi0KLSAgICBzZXQgdG9vbHRpcCh2YWx1ZSkgewotICAgICAgdGhpcy50b29sdGlwXyA9IHZhbHVlOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IGhhc1Zpc2libGVDb250ZW50KCkgewotICAgICAgaWYgKHRoaXMuY3B1XyA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB2YXIgY3B1ID0gdGhpcy5jcHVfOwotICAgICAgaWYgKGNwdS5zbGljZXMubGVuZ3RoKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIGlmIChjcHUuc2FtcGxlcyAmJiBjcHUuc2FtcGxlcy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgICAgaWYgKHRyLmIuZGljdGlvbmFyeUxlbmd0aChjcHUuY291bnRlcnMpID4gMCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmRldGFjaCgpOwotICAgICAgaWYgKCF0aGlzLmNwdV8pCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBzbGljZXMgPSB0aGlzLmNwdV8uc2xpY2VzOwotICAgICAgaWYgKHNsaWNlcy5sZW5ndGgpIHsKLSAgICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICAgIHRyYWNrLnNsaWNlcyA9IHNsaWNlczsKLSAgICAgICAgdHJhY2suaGVhZGluZyA9IHRoaXMuY3B1Xy51c2VyRnJpZW5kbHlOYW1lICsgJzonOwotICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMuZGV0YWlsZWRNb2RlXykgewotICAgICAgICB0aGlzLmFwcGVuZFNhbXBsZXNUcmFja3NfKCk7Ci0KLSAgICAgICAgZm9yICh2YXIgY291bnRlck5hbWUgaW4gdGhpcy5jcHVfLmNvdW50ZXJzKSB7Ci0gICAgICAgICAgdmFyIGNvdW50ZXIgPSB0aGlzLmNwdV8uY291bnRlcnNbY291bnRlck5hbWVdOwotICAgICAgICAgIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLkNvdW50ZXJUcmFjayh0aGlzLnZpZXdwb3J0KTsKLSAgICAgICAgICB0cmFjay5oZWFkaW5nID0gdGhpcy5jcHVfLnVzZXJGcmllbmRseU5hbWUgKyAnICcgKwotICAgICAgICAgICAgICBjb3VudGVyLm5hbWUgKyAnOic7Ci0gICAgICAgICAgdHJhY2suY291bnRlciA9IGNvdW50ZXI7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotCi0gICAgYXBwZW5kU2FtcGxlc1RyYWNrc186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNhbXBsZXMgPSB0aGlzLmNwdV8uc2FtcGxlczsKLSAgICAgIGlmIChzYW1wbGVzID09PSB1bmRlZmluZWQgfHwgc2FtcGxlcy5sZW5ndGggPT09IDApCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBzYW1wbGVzQnlUaXRsZSA9IHt9OwotICAgICAgc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZSkgewotICAgICAgICBpZiAoc2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHNhbXBsZXNCeVRpdGxlW3NhbXBsZS50aXRsZV0gPSBbXTsKLSAgICAgICAgc2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXS5wdXNoKHNhbXBsZSk7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIHNhbXBsZVRpdGxlcyA9IHRyLmIuZGljdGlvbmFyeUtleXMoc2FtcGxlc0J5VGl0bGUpOwotICAgICAgc2FtcGxlVGl0bGVzLnNvcnQoKTsKLQotICAgICAgc2FtcGxlVGl0bGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlVGl0bGUpIHsKLSAgICAgICAgdmFyIHNhbXBsZXMgPSBzYW1wbGVzQnlUaXRsZVtzYW1wbGVUaXRsZV07Ci0gICAgICAgIHZhciBzYW1wbGVzVHJhY2sgPSBuZXcgdHIuYy50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTsKLSAgICAgICAgc2FtcGxlc1RyYWNrLmdyb3VwID0gdGhpcy5jcHVfOwotICAgICAgICBzYW1wbGVzVHJhY2suc2xpY2VzID0gc2FtcGxlczsKLSAgICAgICAgc2FtcGxlc1RyYWNrLmhlYWRpbmcgPSB0aGlzLmNwdV8udXNlckZyaWVuZGx5TmFtZSArICc6ICcgKwotICAgICAgICAgICAgc2FtcGxlVGl0bGU7Ci0gICAgICAgIHNhbXBsZXNUcmFjay50b29sdGlwID0gdGhpcy5jcHVfLnVzZXJGcmllbmRseURldGFpbHM7Ci0gICAgICAgIHNhbXBsZXNUcmFjay5zZWxlY3Rpb25HZW5lcmF0b3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVzVHJhY2suc2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBzZWxlY3Rpb24ucHVzaChzYW1wbGVzVHJhY2suc2xpY2VzW2ldKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKLSAgICAgICAgfTsKLSAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzYW1wbGVzVHJhY2spOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ3B1VHJhY2s6IENwdVRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jcHVfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9jcHVfdHJhY2tfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmE5NDI4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvY3B1X3RyYWNrX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBDcHUgPSB0ci5tb2RlbC5DcHU7Ci0gIHZhciBDcHVUcmFjayA9IHRyLmMudHJhY2tzLkNwdVRyYWNrOwotICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKLSAgdmFyIFN0YWNrRnJhbWUgPSB0ci5tb2RlbC5TdGFja0ZyYW1lOwotICB2YXIgU2FtcGxlID0gdHIubW9kZWwuU2FtcGxlOwotICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOwotICB2YXIgVmlld3BvcnQgPSB0ci5jLlRpbWVsaW5lVmlld3BvcnQ7Ci0KLSAgdGVzdCgnYmFzaWNDcHUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY3B1ID0gbmV3IENwdSh7fSwgNyk7Ci0gICAgY3B1LnNsaWNlcyA9IFsKLSAgICAgIG5ldyBTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMSksCi0gICAgICBuZXcgU2xpY2UoJycsICdiJywgMSwgMi4xLCB7fSwgNC44KQotICAgIF07Ci0gICAgY3B1LnVwZGF0ZUJvdW5kcygpOwotCi0gICAgdmFyIHRlc3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh0ZXN0RWwpOwotCi0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0KLSAgICB2YXIgdHJhY2sgPSBuZXcgQ3B1VHJhY2sodmlld3BvcnQpOwotICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotCi0gICAgdHJhY2suaGVhZGluZyA9ICdDUFUgJyArIGNwdS5jcHVOdW1iZXI7Ci0gICAgdHJhY2suY3B1ID0gY3B1OwotICAgIHZhciBkdCA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCAxMS4xLCB0cmFjay5jbGllbnRXaWR0aCk7Ci0gICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKLSAgfSk7Ci0KLQotICB0ZXN0KCd3aXRoU2FtcGxlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciB0aHJlYWQ7Ci0gICAgdmFyIGNwdTsKLSAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7Ci0gICAgICBjcHUgPSBtb2RlbC5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoMSk7Ci0gICAgICB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0KLSAgICAgIHZhciBmQSA9IG1vZGVsLmFkZFN0YWNrRnJhbWUobmV3IFN0YWNrRnJhbWUoCi0gICAgICAgICAgdW5kZWZpbmVkLCAxLCAnY2F0JywgJ2EnLCA3KSk7Ci0gICAgICB2YXIgZkFCID0gbW9kZWwuYWRkU3RhY2tGcmFtZShuZXcgU3RhY2tGcmFtZSgKLSAgICAgICAgICBmQSwgMiwgJ2NhdCcsICdiJywgNykpOwotICAgICAgdmFyIGZBQkMgPSBtb2RlbC5hZGRTdGFja0ZyYW1lKG5ldyBTdGFja0ZyYW1lKAotICAgICAgICAgIGZBQiwgMywgJ2NhdCcsICdjJywgNykpOwotICAgICAgdmFyIGZBRCA9IG1vZGVsLmFkZFN0YWNrRnJhbWUobmV3IFN0YWNrRnJhbWUoCi0gICAgICAgICAgZkEsIDQsICdjYXQnLCAnZCcsIDcpKTsKLQotICAgICAgbW9kZWwuc2FtcGxlcy5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdpbnN0cnVjdGlvbnNfcmV0aXJlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgZkFCQywgMTApKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAsIGZBQiwgMTApKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAsIGZBQiwgMTApKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIGZBRCwgMTApKTsKLQotICAgICAgbW9kZWwuc2FtcGxlcy5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdwYWdlX2ZhdWx0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LCBmQUIsIDEwKSk7Ci0gICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ3BhZ2VfZmF1bHQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUsIGZBRCwgMTApKTsKLSAgICB9KTsKLQotICAgIHZhciB0ZXN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQodGVzdEVsKTsKLQotICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IENwdVRyYWNrKHZpZXdwb3J0KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKLQotICAgIHRyYWNrLmhlYWRpbmcgPSAnQ1BVICcgKyBjcHUuY3B1TnVtYmVyOwotICAgIHRyYWNrLmNwdSA9IGNwdTsKLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgMTEuMSwgdHJhY2suY2xpZW50V2lkdGgpOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWY1MGVkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXIuY3NzIj4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYWYuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICB2YXIgRHJhd1R5cGUgPSB7Ci0gICAgR0VORVJBTF9FVkVOVDogMSwKLSAgICBJTlNUQU5UX0VWRU5UOiAyLAotICAgIEJBQ0tHUk9VTkQ6IDMsCi0gICAgR1JJRDogNCwKLSAgICBGTE9XX0FSUk9XUzogNSwKLSAgICBNQVJLRVJTOiA2LAotICAgIEhJR0hMSUdIVFM6IDcsCi0gICAgQU5OT1RBVElPTlM6IDgKLSAgfTsKLQotICB2YXIgRHJhd2luZ0NvbnRhaW5lciA9IHRyLmIudWkuZGVmaW5lKCdkcmF3aW5nLWNvbnRhaW5lcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuYy50cmFja3MuVHJhY2spOwotCi0gIERyYXdpbmdDb250YWluZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2RyYXdpbmctY29udGFpbmVyJyk7Ci0KLSAgICAgIHRoaXMuY2FudmFzXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgICAgdGhpcy5jYW52YXNfLmNsYXNzTmFtZSA9ICdkcmF3aW5nLWNvbnRhaW5lci1jYW52YXMnOwotICAgICAgdGhpcy5jYW52YXNfLnN0eWxlLmxlZnQgPSB0ci5jLmNvbnN0YW50cy5IRUFESU5HX1dJRFRIICsgJ3B4JzsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5jYW52YXNfKTsKLQotICAgICAgdGhpcy5jdHhfID0gdGhpcy5jYW52YXNfLmdldENvbnRleHQoJzJkJyk7Ci0KLSAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2VfID0gdGhpcy52aWV3cG9ydENoYW5nZV8uYmluZCh0aGlzKTsKLSAgICAgIHRoaXMudmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy52aWV3cG9ydENoYW5nZV8pOwotICAgIH0sCi0KLSAgICAvLyBOZWVkZWQgdG8gc3VwcG9ydCB0aGUgY2FsbHMgaW4gVGltZWxpbmVUcmFja1ZpZXcuCi0gICAgZ2V0IGNhbnZhcygpIHsKLSAgICAgIHJldHVybiB0aGlzLmNhbnZhc187Ci0gICAgfSwKLQotICAgIGNvbnRleHQ6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuY3R4XzsKLSAgICB9LAotCi0gICAgdmlld3BvcnRDaGFuZ2VfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuaW52YWxpZGF0ZSgpOwotICAgIH0sCi0KLSAgICBpbnZhbGlkYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnJhZlBlbmRpbmdfKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLnJhZlBlbmRpbmdfID0gdHJ1ZTsKLQotICAgICAgdHIuYi5yZXF1ZXN0UHJlQW5pbWF0aW9uRnJhbWUodGhpcy5wcmVEcmF3XywgdGhpcyk7Ci0gICAgfSwKLQotICAgIHByZURyYXdfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmFmUGVuZGluZ18gPSBmYWxzZTsKLSAgICAgIHRoaXMudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpOwotCi0gICAgICB0ci5iLnJlcXVlc3RBbmltYXRpb25GcmFtZUluVGhpc0ZyYW1lSWZQb3NzaWJsZSh0aGlzLmRyYXdfLCB0aGlzKTsKLSAgICB9LAotCi0gICAgZHJhd186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jdHhfLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc18ud2lkdGgsIHRoaXMuY2FudmFzXy5oZWlnaHQpOwotCi0gICAgICB2YXIgdHlwZXNUb0RyYXcgPSBbCi0gICAgICAgIERyYXdUeXBlLkJBQ0tHUk9VTkQsCi0gICAgICAgIERyYXdUeXBlLkhJR0hMSUdIVFMsCi0gICAgICAgIERyYXdUeXBlLkdSSUQsCi0gICAgICAgIERyYXdUeXBlLklOU1RBTlRfRVZFTlQsCi0gICAgICAgIERyYXdUeXBlLkdFTkVSQUxfRVZFTlQsCi0gICAgICAgIERyYXdUeXBlLk1BUktFUlMsCi0gICAgICAgIERyYXdUeXBlLkFOTk9UQVRJT05TLAotICAgICAgICBEcmF3VHlwZS5GTE9XX0FSUk9XUwotICAgICAgXTsKLQotICAgICAgZm9yICh2YXIgaWR4IGluIHR5cGVzVG9EcmF3KSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7ICsraSkgewotICAgICAgICAgIGlmICghKHRoaXMuY2hpbGRyZW5baV0gaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB0aGlzLmNoaWxkcmVuW2ldLmRyYXdUcmFjayh0eXBlc1RvRHJhd1tpZHhdKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgYm91bmRzID0gdGhpcy5jYW52YXNfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICAgIHZhciB2aWV3TFdvcmxkID0gZHQueFZpZXdUb1dvcmxkKDApOwotICAgICAgdmFyIHZpZXdSV29ybGQgPSBkdC54Vmlld1RvV29ybGQoCi0gICAgICAgICAgYm91bmRzLndpZHRoICogcGl4ZWxSYXRpbyk7Ci0KLSAgICAgIHRoaXMudmlld3BvcnQuZHJhd0dyaWRMaW5lcyh0aGlzLmN0eF8sIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB2aXNpYmxlQ2hpbGRUcmFja3MgPQotICAgICAgICAgIHRyLmIuYXNBcnJheSh0aGlzLmNoaWxkcmVuKS5maWx0ZXIodGhpcy52aXNpYmxlRmlsdGVyXyk7Ci0KLSAgICAgIHZhciB0aGlzQm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLQotICAgICAgdmFyIGZpcnN0Q2hpbGRUcmFja0JvdW5kcyA9IHZpc2libGVDaGlsZFRyYWNrc1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBsYXN0Q2hpbGRUcmFja0JvdW5kcyA9Ci0gICAgICAgICAgdmlzaWJsZUNoaWxkVHJhY2tzW3Zpc2libGVDaGlsZFRyYWNrcy5sZW5ndGggLSAxXS4KLSAgICAgICAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0KLSAgICAgIHZhciBpbm5lcldpZHRoID0gZmlyc3RDaGlsZFRyYWNrQm91bmRzLndpZHRoIC0KLSAgICAgICAgICB0ci5jLmNvbnN0YW50cy5IRUFESU5HX1dJRFRIOwotICAgICAgdmFyIGlubmVySGVpZ2h0ID0gbGFzdENoaWxkVHJhY2tCb3VuZHMuYm90dG9tIC0gZmlyc3RDaGlsZFRyYWNrQm91bmRzLnRvcDsKLQotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgICAgaWYgKHRoaXMuY2FudmFzXy53aWR0aCAhPSBpbm5lcldpZHRoICogcGl4ZWxSYXRpbykgewotICAgICAgICB0aGlzLmNhbnZhc18ud2lkdGggPSBpbm5lcldpZHRoICogcGl4ZWxSYXRpbzsKLSAgICAgICAgdGhpcy5jYW52YXNfLnN0eWxlLndpZHRoID0gaW5uZXJXaWR0aCArICdweCc7Ci0gICAgICB9Ci0KLSAgICAgIGlmICh0aGlzLmNhbnZhc18uaGVpZ2h0ICE9IGlubmVySGVpZ2h0ICogcGl4ZWxSYXRpbykgewotICAgICAgICB0aGlzLmNhbnZhc18uaGVpZ2h0ID0gaW5uZXJIZWlnaHQgKiBwaXhlbFJhdGlvOwotICAgICAgICB0aGlzLmNhbnZhc18uc3R5bGUuaGVpZ2h0ID0gaW5uZXJIZWlnaHQgKyAncHgnOwotICAgICAgfQotICAgIH0sCi0KLSAgICB2aXNpYmxlRmlsdGVyXzogZnVuY3Rpb24oZWxlbWVudCkgewotICAgICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIHRyLmMudHJhY2tzLlRyYWNrKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmRpc3BsYXkgIT09ICdub25lJzsKLSAgICB9LAotCi0gICAgYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKAotICAgICAgICB3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksIHNlbGVjdGlvbikgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghKHRoaXMuY2hpbGRyZW5baV0gaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5UcmFjaykpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHZhciB0cmFja0NsaWVudFJlY3QgPSB0aGlzLmNoaWxkcmVuW2ldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICB2YXIgYSA9IE1hdGgubWF4KGxvWSwgdHJhY2tDbGllbnRSZWN0LnRvcCk7Ci0gICAgICAgIHZhciBiID0gTWF0aC5taW4oaGlZLCB0cmFja0NsaWVudFJlY3QuYm90dG9tKTsKLSAgICAgICAgaWYgKGEgPD0gYikgewotICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0uYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwgc2VsZWN0aW9uKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICB0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uCi0gICAgICAgICAgYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICB9LAotCi0gICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKCEodGhpcy5jaGlsZHJlbltpXSBpbnN0YW5jZW9mIHRyLmMudHJhY2tzLlRyYWNrKSkKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOiBmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKCEodGhpcy5jaGlsZHJlbltpXSBpbnN0YW5jZW9mIHRyLmMudHJhY2tzLlRyYWNrKSkKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrTWFwKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBEcmF3aW5nQ29udGFpbmVyOiBEcmF3aW5nQ29udGFpbmVyLAotICAgIERyYXdUeXBlOiBEcmF3VHlwZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXJfcGVyZl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyX3BlcmZfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTU2ZTk3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXJfcGVyZl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS94aHIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Z1bGxfY29uZmlnLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICB2YXIgZ2VuZXJhbE1vZGVsOwotICBmdW5jdGlvbiBnZXRPckNyZWF0ZUdlbmVyYWxNb2RlbCgpIHsKLSAgICBpZiAoZ2VuZXJhbE1vZGVsICE9PSB1bmRlZmluZWQpCi0gICAgICBnZW5lcmFsTW9kZWw7Ci0gICAgdmFyIGZpbGVVcmwgPSAnL3Rlc3RfZGF0YS90aHJlYWRfdGltZV92aXN1YWxpc2F0aW9uLmpzb24uZ3onOwotICAgIHZhciBldmVudHMgPSB0ci5iLmdldFN5bmMoZmlsZVVybCk7Ci0gICAgZ2VuZXJhbE1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgZ2VuZXJhbE1vZGVsLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGdlbmVyYWxNb2RlbDsKLSAgfQotCi0gIGZ1bmN0aW9uIERDUGVyZlRlc3RDYXNlKHRlc3ROYW1lLCBvcHRfb3B0aW9ucykgewotICAgIHRyLmIudW5pdHRlc3QuUGVyZlRlc3RDYXNlLmNhbGwodGhpcywgdGVzdE5hbWUsIHVuZGVmaW5lZCwgb3B0X29wdGlvbnMpOwotICAgIHRoaXMudmlld3BvcnREaXYgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5kcmF3aW5nQ29udGFpbmVyID0gdW5kZWZpbmVkOwotICAgIHRoaXMudmlld3BvcnQgPSB1bmRlZmluZWQ7Ci0gIH0KLSAgRENQZXJmVGVzdENhc2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYi51bml0dGVzdC5QZXJmVGVzdENhc2UucHJvdG90eXBlLAotCi0gICAgc2V0VXA6IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICB0aGlzLnZpZXdwb3J0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAgIHRoaXMudmlld3BvcnQgPSBuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KHRoaXMudmlld3BvcnREaXYpOwotCi0gICAgICB0aGlzLmRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih0aGlzLnZpZXdwb3J0KTsKLSAgICAgIHRoaXMudmlld3BvcnQubW9kZWxUcmFja0NvbnRhaW5lciA9IHRoaXMuZHJhd2luZ0NvbnRhaW5lcjsKLQotICAgICAgdmFyIG1vZGVsVHJhY2sgPSBuZXcgdHIuYy50cmFja3MuTW9kZWxUcmFjayh0aGlzLnZpZXdwb3J0KTsKLSAgICAgIHRoaXMuZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZChtb2RlbFRyYWNrKTsKLQotICAgICAgbW9kZWxUcmFjay5tb2RlbCA9IG1vZGVsOwotCi0gICAgICB0aGlzLnZpZXdwb3J0RGl2LmFwcGVuZENoaWxkKHRoaXMuZHJhd2luZ0NvbnRhaW5lcik7Ci0KLSAgICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aGlzLnZpZXdwb3J0RGl2KTsKLQotICAgICAgLy8gU2l6ZSB0aGUgY2FudmFzLgotICAgICAgdGhpcy5kcmF3aW5nQ29udGFpbmVyLnVwZGF0ZUNhbnZhc1NpemVJZk5lZWRlZF8oKTsKLQotICAgICAgLy8gU2l6ZSB0aGUgdmlld3BvcnQuCi0gICAgICB2YXIgdyA9IHRoaXMuZHJhd2luZ0NvbnRhaW5lci5jYW52YXMud2lkdGg7Ci0gICAgICB2YXIgbWluID0gbW9kZWwuYm91bmRzLm1pbjsKLSAgICAgIHZhciByYW5nZSA9IG1vZGVsLmJvdW5kcy5yYW5nZTsKLQotICAgICAgdmFyIGJvb3N0ID0gcmFuZ2UgKiAwLjE1OwotICAgICAgdmFyIGR0ID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7Ci0gICAgICBkdC54U2V0V29ybGRCb3VuZHMobWluIC0gYm9vc3QsIG1pbiArIHJhbmdlICsgYm9vc3QsIHcpOwotICAgICAgdGhpcy52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotICAgIH0sCi0KLSAgICBydW5PbmVJdGVyYXRpb246IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5kcmF3aW5nQ29udGFpbmVyLmRyYXdfKCk7Ci0gICAgfSwKLQotICAgIHRlYXJEb3duOiBmdW5jdGlvbigpIHsKLSAgICB9Ci0gIH07Ci0KLQotICBmdW5jdGlvbiBHZW5lcmFsRENQZXJmVGVzdENhc2UodGVzdE5hbWUsIG9wdF9vcHRpb25zKSB7Ci0gICAgRENQZXJmVGVzdENhc2UuY2FsbCh0aGlzLCB0ZXN0TmFtZSwgb3B0X29wdGlvbnMpOwotICB9Ci0KLSAgR2VuZXJhbERDUGVyZlRlc3RDYXNlLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IERDUGVyZlRlc3RDYXNlLnByb3RvdHlwZSwKLQotICAgIHNldFVwOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBtb2RlbCA9IGdldE9yQ3JlYXRlR2VuZXJhbE1vZGVsKCk7Ci0gICAgICBEQ1BlcmZUZXN0Q2FzZS5wcm90b3R5cGUuc2V0VXAuY2FsbCh0aGlzLCBtb2RlbCk7Ci0gICAgfQotICB9OwotCi0gIHRlc3QobmV3IEdlbmVyYWxEQ1BlcmZUZXN0Q2FzZSgnZHJhd19zb2Z0d2FyZUNhbnZhc19PbmUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbnM6IDF9KSk7Ci0gIHRlc3QobmV3IEdlbmVyYWxEQ1BlcmZUZXN0Q2FzZSgnZHJhd19zb2Z0d2FyZUNhbnZhc19UZW4nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbnM6IDEwfSkpOwotICB0ZXN0KG5ldyBHZW5lcmFsRENQZXJmVGVzdENhc2UoJ2RyYXdfc29mdHdhcmVDYW52YXNfQUh1bmRyZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbnM6IDEwMH0pKTsKLQotCi0gIGZ1bmN0aW9uIEFzeW5jRENQZXJmVGVzdENhc2UodGVzdE5hbWUsIG9wdF9vcHRpb25zKSB7Ci0gICAgRENQZXJmVGVzdENhc2UuY2FsbCh0aGlzLCB0ZXN0TmFtZSwgb3B0X29wdGlvbnMpOwotICB9Ci0KLSAgQXN5bmNEQ1BlcmZUZXN0Q2FzZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBEQ1BlcmZUZXN0Q2FzZS5wcm90b3R5cGUsCi0KLSAgICBzZXRVcDogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgbW9kZWwgPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obSkgewotICAgICAgICB2YXIgcHJvYyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgICAgICBmb3IgKHZhciB0aWQgPSAxOyB0aWQgPD0gNTsgdGlkKyspIHsKLSAgICAgICAgICB2YXIgdGhyZWFkID0gcHJvYy5nZXRPckNyZWF0ZVRocmVhZCh0aWQpOwotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTAwMDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgbW9kID0gTWF0aC5mbG9vcihpIC8gMTAwKSAlIDQ7Ci0gICAgICAgICAgICB2YXIgc2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZUV4KHsKLSAgICAgICAgICAgICAgbmFtZTogJ1Rlc3QnICsgaSwKLSAgICAgICAgICAgICAgY29sb3JJZDogdGlkICsgbW9kLAotICAgICAgICAgICAgICBpZDogdHIuYi5HVUlELmFsbG9jYXRlKCksCi0gICAgICAgICAgICAgIHN0YXJ0OiBpICogMTAsCi0gICAgICAgICAgICAgIGR1cmF0aW9uOiA5LAotICAgICAgICAgICAgICBpc1RvcExldmVsOiB0cnVlCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRocmVhZC5hc3luY1NsaWNlR3JvdXAucHVzaChzbGljZSk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9KTsKLSAgICAgIERDUGVyZlRlc3RDYXNlLnByb3RvdHlwZS5zZXRVcC5jYWxsKHRoaXMsIG1vZGVsKTsKLQotICAgICAgdmFyIHcgPSB0aGlzLmRyYXdpbmdDb250YWluZXIuY2FudmFzLndpZHRoOwotCi0gICAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICAgIGR0LnhTZXRXb3JsZEJvdW5kcygtMjAwMCwgNTQwMDAsIHcpOwotICAgICAgdGhpcy52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotICAgIH0KLSAgfTsKLSAgdGVzdChuZXcgQXN5bmNEQ1BlcmZUZXN0Q2FzZSgnZHJhd19hc3luY1NsaWNlSGVhdnlfVHdlbnR5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25zOiAyMH0pKTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZnJhbWVfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZnJhbWVfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE3YWU3Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2ZyYW1lX3RyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2V2ZW50X3ByZXNlbnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvbGV0dGVyX2RvdF90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9jb2xvcl9zY2hlbWUuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICB2YXIgcGFsZXR0ZSA9IHRyLmIudWkuZ2V0Q29sb3JQYWxldHRlKCk7Ci0KLSAgdmFyIHN0YXJ0Q29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OyB9Ci0KLSAgLyoqCi0gICAqIFRyYWNrIGVuYWJsaW5nIHF1aWNrIHNlbGVjdGlvbiBvZiBmcmFtZSBzbGljZXMvZXZlbnRzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBGcmFtZVRyYWNrID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAnZnJhbWUtdHJhY2snLCB0ci5jLnRyYWNrcy5MZXR0ZXJEb3RUcmFjayk7Ci0KLSAgRnJhbWVUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5MZXR0ZXJEb3RUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLkxldHRlckRvdFRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuaGVhZGluZyA9ICdGcmFtZXMnOwotCi0gICAgICB0aGlzLmZyYW1lc18gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLml0ZW1zID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBnZXQgZnJhbWVzKCkgewotICAgICAgcmV0dXJuIHRoaXMuZnJhbWVzXzsKLSAgICB9LAotCi0gICAgc2V0IGZyYW1lcyhmcmFtZXMpIHsKLSAgICAgIHRoaXMuZnJhbWVzXyA9IGZyYW1lczsKLSAgICAgIGlmIChmcmFtZXMgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmZyYW1lc18gPSB0aGlzLmZyYW1lc18uc2xpY2UoKTsKLSAgICAgIHRoaXMuZnJhbWVzXy5zb3J0KHN0YXJ0Q29tcGFyZSk7Ci0KLSAgICAgIC8vIGxldHRlciBkb3RzCi0gICAgICB0aGlzLml0ZW1zID0gdGhpcy5mcmFtZXNfLm1hcChmdW5jdGlvbihmcmFtZSkgewotICAgICAgICByZXR1cm4gbmV3IEZyYW1lRG90KGZyYW1lKTsKLSAgICAgIH0pOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtMZXR0ZXJEb3R9Ci0gICAqLwotICBmdW5jdGlvbiBGcmFtZURvdChmcmFtZSkgewotICAgIHRyLmMudHJhY2tzLkxldHRlckRvdC5jYWxsKHRoaXMsIGZyYW1lLCAnRicsIGZyYW1lLmNvbG9ySWQsIGZyYW1lLnN0YXJ0KTsKLSAgfQotCi0gIEZyYW1lRG90LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLkxldHRlckRvdC5wcm90b3R5cGUKLSAgfTsKLQotICByZXR1cm4gewotICAgIEZyYW1lVHJhY2s6IEZyYW1lVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2ZyYW1lX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZnJhbWVfdHJhY2tfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMmJjYjcwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZnJhbWVfdHJhY2tfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZnJhbWUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9mcmFtZV90cmFjay5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBGcmFtZSA9IHRyLm1vZGVsLkZyYW1lOwotICB2YXIgRnJhbWVUcmFjayA9IHRyLmMudHJhY2tzLkZyYW1lVHJhY2s7Ci0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0gIHZhciBWaWV3cG9ydCA9IHRyLmMuVGltZWxpbmVWaWV3cG9ydDsKLQotICB2YXIgbmV3U2xpY2VOYW1lZCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZU5hbWVkOwotCi0gIHZhciBjcmVhdGVGcmFtZXMgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgZnJhbWVzID0gdW5kZWZpbmVkOwotICAgIHZhciBtb2RlbCA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgewotICAgICAgdmFyIHByb2Nlc3MgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgNTsgaSsrKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IG5ld1NsaWNlTmFtZWQoJ3dvcmsgZm9yIGZyYW1lJywgaSAqIDIwLCAxMCk7Ci0gICAgICAgIHRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgICAgIHZhciBldmVudHMgPSBbc2xpY2VdOwotICAgICAgICB2YXIgdGhyZWFkVGltZVJhbmdlcyA9Ci0gICAgICAgICAgICBbe3RocmVhZDogdGhyZWFkLCBzdGFydDogc2xpY2Uuc3RhcnQsIGVuZDogc2xpY2UuZW5kfV07Ci0gICAgICAgIHByb2Nlc3MuZnJhbWVzLnB1c2gobmV3IEZyYW1lKGV2ZW50cywgdGhyZWFkVGltZVJhbmdlcykpOwotICAgICAgfQotICAgICAgZnJhbWVzID0gcHJvY2Vzcy5mcmFtZXM7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGZyYW1lczsKLSAgfTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBmcmFtZXMgPSBjcmVhdGVGcmFtZXMoKTsKLSAgICBmcmFtZXNbMV0uc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKLQotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKLSAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci5jLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7Ci0KLSAgICB2YXIgdHJhY2sgPSBGcmFtZVRyYWNrKHZpZXdwb3J0KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOwotICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOwotCi0gICAgdHJhY2suZnJhbWVzID0gZnJhbWVzOwotICAgIHZhciBkdCA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA1MCwgdHJhY2suY2xpZW50V2lkdGgpOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodHJhY2suaXRlbXNbMF0uc3RhcnQsIDIwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbW9kZWxNYXBwaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGZyYW1lcyA9IGNyZWF0ZUZyYW1lcygpOwotCi0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOwotICAgIHZhciB0cmFjayA9IEZyYW1lVHJhY2sodmlld3BvcnQpOwotICAgIHRyYWNrLmZyYW1lcyA9IGZyYW1lczsKLQotICAgIHZhciBhMCA9IHRyYWNrLml0ZW1zWzBdLm1vZGVsSXRlbTsKLSAgICBhc3NlcnQuZXF1YWwoYTAsIGZyYW1lc1swXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdGlvbk1hcHBpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZnJhbWVzID0gY3JlYXRlRnJhbWVzKCk7Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIHRyYWNrID0gRnJhbWVUcmFjayh2aWV3cG9ydCk7Ci0gICAgdHJhY2suZnJhbWVzID0gZnJhbWVzOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5pdGVtc1swXS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOwotCi0gICAgLy8gc2VsZWN0IGJvdGggZnJhbWUsIGJ1dCBub3QgaXRzIGNvbXBvbmVudCBzbGljZQotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAxKTsKLQotICAgIHZhciBmcmFtZUNvdW50ID0gMDsKLSAgICB2YXIgZXZlbnRDb3VudCA9IDA7Ci0gICAgc2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEZyYW1lKSB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChldmVudCwgZnJhbWVzWzBdKTsKLSAgICAgICAgZnJhbWVDb3VudCsrOwotICAgICAgfSBlbHNlCi0gICAgICAgIGV2ZW50Q291bnQrKzsKLSAgICB9KTsKLSAgICBhc3NlcnQuZXF1YWwoZnJhbWVDb3VudCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGV2ZW50Q291bnQsIDApOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2dsb2JhbF9tZW1vcnlfZHVtcF90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9nbG9iYWxfbWVtb3J5X2R1bXBfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM5NDcwOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2dsb2JhbF9tZW1vcnlfZHVtcF90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotCi0gIHZhciBVU0VEX01FTU9SWV9UUkFDS19IRUlHSFQgPSA1MDsKLSAgdmFyIEFMTE9DQVRFRF9NRU1PUllfVFJBQ0tfSEVJR0hUID0gNTA7Ci0KLSAgLyoqCi0gICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhbiBhcnJheSBvZiBHbG9iYWxNZW1vcnlEdW1wIG9iamVjdHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7Q29udGFpbmVyVHJhY2t9Ci0gICAqLwotICB2YXIgR2xvYmFsTWVtb3J5RHVtcFRyYWNrID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAnZ2xvYmFsLW1lbW9yeS1kdW1wLXRyYWNrJywgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2spOwotCi0gIEdsb2JhbE1lbW9yeUR1bXBUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMubWVtb3J5RHVtcHNfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBnZXQgbWVtb3J5RHVtcHMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5tZW1vcnlEdW1wc187Ci0gICAgfSwKLQotICAgIHNldCBtZW1vcnlEdW1wcyhtZW1vcnlEdW1wcykgewotICAgICAgdGhpcy5tZW1vcnlEdW1wc18gPSBtZW1vcnlEdW1wczsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRyYWNrc18uZm9yRWFjaChmdW5jdGlvbih0cmFjaykgewotICAgICAgICB0aGlzLnJlbW92ZUNoaWxkKHRyYWNrKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBTaG93IG5vIHRyYWNrcyBpZiB0aGVyZSBhcmUgbm8gZHVtcHMuCi0gICAgICBpZiAoIXRoaXMubWVtb3J5RHVtcHNfIHx8ICF0aGlzLm1lbW9yeUR1bXBzXy5sZW5ndGgpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5hcHBlbmREdW1wRG90c1RyYWNrXygpOwotICAgICAgdGhpcy5hcHBlbmRVc2VkTWVtb3J5VHJhY2tfKCk7Ci0gICAgICB0aGlzLmFwcGVuZEFsbG9jYXRlZE1lbW9yeVRyYWNrXygpOwotICAgIH0sCi0KLSAgICBhcHBlbmREdW1wRG90c1RyYWNrXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgaXRlbXMgPSB0ci5jLnRyYWNrcy5idWlsZE1lbW9yeUxldHRlckRvdHModGhpcy5tZW1vcnlEdW1wc18pOwotICAgICAgaWYgKCFpdGVtcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdHJhY2sgPSBuZXcgdHIuYy50cmFja3MuTGV0dGVyRG90VHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICB0cmFjay5oZWFkaW5nID0gJ01lbW9yeSBEdW1wcyc7Ci0gICAgICB0cmFjay5pdGVtcyA9IGl0ZW1zOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgfSwKLQotICAgIGFwcGVuZFVzZWRNZW1vcnlUcmFja186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlcmllcyA9IHRyLmMudHJhY2tzLmJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzKAotICAgICAgICAgIHRoaXMubWVtb3J5RHVtcHNfKTsKLSAgICAgIGlmICghc2VyaWVzKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciB0cmFjayA9IG5ldyB0ci5jLnRyYWNrcy5DaGFydFRyYWNrKHRoaXMudmlld3BvcnQpOwotICAgICAgdHJhY2suaGVhZGluZyA9ICdVc2VkIG1lbW9yeSAocGVyIHByb2Nlc3MpJzsKLSAgICAgIHRyYWNrLmhlaWdodCA9IFVTRURfTUVNT1JZX1RSQUNLX0hFSUdIVCArICdweCc7Ci0gICAgICB0cmFjay5zZXJpZXMgPSBzZXJpZXM7Ci0gICAgICB0cmFjay5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OiB0cnVlfSk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICB9LAotCi0gICAgYXBwZW5kQWxsb2NhdGVkTWVtb3J5VHJhY2tfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBzZXJpZXMgPSB0ci5jLnRyYWNrcy5idWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKAotICAgICAgICAgIHRoaXMubWVtb3J5RHVtcHNfKTsKLSAgICAgIGlmICghc2VyaWVzKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciB0cmFjayA9IG5ldyB0ci5jLnRyYWNrcy5DaGFydFRyYWNrKHRoaXMudmlld3BvcnQpOwotICAgICAgdHJhY2suaGVhZGluZyA9ICdBbGxvY2F0ZWQgbWVtb3J5IChwZXIgYWxsb2NhdG9yKSc7Ci0gICAgICB0cmFjay5oZWlnaHQgPSBBTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCArICdweCc7Ci0gICAgICB0cmFjay5zZXJpZXMgPSBzZXJpZXM7Ci0gICAgICB0cmFjay5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OiB0cnVlfSk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBHbG9iYWxNZW1vcnlEdW1wVHJhY2s6IEdsb2JhbE1lbW9yeUR1bXBUcmFjawotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZ2xvYmFsX21lbW9yeV9kdW1wX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZ2xvYmFsX21lbW9yeV9kdW1wX3RyYWNrX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTliOTQ1Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2dsb2JhbF9tZW1vcnlfZHVtcF90cmFja190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9nbG9iYWxfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3Rlc3RfdXRpbHMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgVmlld3BvcnQgPSB0ci5jLlRpbWVsaW5lVmlld3BvcnQ7Ci0gIHZhciBHbG9iYWxNZW1vcnlEdW1wVHJhY2sgPSB0ci5jLnRyYWNrcy5HbG9iYWxNZW1vcnlEdW1wVHJhY2s7Ci0gIHZhciBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHMgPSB0ci5jLnRyYWNrcy5jcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHM7Ci0KLSAgZnVuY3Rpb24gaW5zdGFudGlhdGVUcmFjayh3aXRoVk1SZWdpb25zLCB3aXRoQWxsb2NhdG9yRHVtcHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRUcmFja0NvdW50KSB7Ci0gICAgdmFyIGR1bXBzID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzKHdpdGhWTVJlZ2lvbnMsIHdpdGhBbGxvY2F0b3JEdW1wcyk7Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IEdsb2JhbE1lbW9yeUR1bXBUcmFjayh2aWV3cG9ydCk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7Ci0KLSAgICB0cmFjay5tZW1vcnlEdW1wcyA9IGR1bXBzOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOwotCi0gICAgdmFyIGR0ID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7Ci0gICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDUwLCB0cmFjay5jbGllbnRXaWR0aCk7Ci0gICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKLQotICAgIGFzc2VydC5sZW5ndGhPZih0cmFjay50cmFja3NfLCBleHBlY3RlZFRyYWNrQ291bnQpOwotICB9OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2RvdHNPbmx5JywgZnVuY3Rpb24oKSB7Ci0gICAgaW5zdGFudGlhdGVUcmFjay5jYWxsKHRoaXMsIGZhbHNlLCBmYWxzZSwgMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhWTVJlZ2lvbnMnLCBmdW5jdGlvbigpIHsKLSAgICBpbnN0YW50aWF0ZVRyYWNrLmNhbGwodGhpcywgdHJ1ZSwgZmFsc2UsIDIpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoTWVtb3J5QWxsb2NhdG9yRHVtcHMnLCBmdW5jdGlvbigpIHsKLSAgICBpbnN0YW50aWF0ZVRyYWNrLmNhbGwodGhpcywgZmFsc2UsIHRydWUsIDIpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoQm90aCcsIGZ1bmN0aW9uKCkgewotICAgIGluc3RhbnRpYXRlVHJhY2suY2FsbCh0aGlzLCB0cnVlLCB0cnVlLCAzKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvaGVhZGluZ190cmFjay5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYjcwZTIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gKi8KLQotLmhlYWRpbmctdHJhY2sgewotICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKLSAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwotICBkaXNwbGF5OiAtd2Via2l0LWJveDsKLSAgbWFyZ2luOiAwOwotICBwYWRkaW5nOiAwIDVweCAwIDA7Ci19Ci0KLS5oZWFkaW5nLXRyYWNrID4gaGVhZGluZyB7Ci0gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKLSAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MywgMjQ1LCAyNDcpOwotICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjOGU4ZThlOwotICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgb3ZlcmZsb3cteDogaGlkZGVuOwotICBwYWRkaW5nLXJpZ2h0OiA1cHg7Ci0gIHRleHQtYWxpZ246IGxlZnQ7Ci0gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwotICB3aGl0ZS1zcGFjZTogbm93cmFwOwotfQotCi0uaGVhZGluZy10cmFjayA+IGhlYWRpbmcgPiAuaGVhZGluZy1hcnJvdyB7Ci0gIC13ZWJraXQtZmxleDogMCAwIGF1dG87Ci0gIG1hcmdpbi1sZWZ0OiA1cHg7Ci0gIG1hcmdpbi1yaWdodDogNXB4OwotICB3aWR0aDogOHB4OwotICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvaGVhZGluZ190cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3YTc0Y2EuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2NvcmUvdHJhY2tzL2hlYWRpbmdfdHJhY2suY3NzIj4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvY29uc3RhbnRzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBET1dOX0FSUk9XID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweDI1QkUpOwotICB2YXIgUklHSFRfQVJST1cgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCOCk7Ci0KLSAgLyoqCi0gICAqIEEgdHJhY2sgd2l0aCBhIGhlYWRlci4gUHJvdmlkZXMgdGhlIGJhc2ljIGhlYWRpbmcgYW5kIHRvb2x0aXAKLSAgICogaW5mcmFzdHJ1Y3R1cmUuIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZHJhd2luZyBjb2RlLgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge0hUTUxEaXZFbGVtZW50fQotICAgKi8KLSAgdmFyIEhlYWRpbmdUcmFjayA9IHRyLmIudWkuZGVmaW5lKCdoZWFkaW5nLXRyYWNrJywgdHIuYy50cmFja3MuVHJhY2spOwotCi0gIEhlYWRpbmdUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnaGVhZGluZy10cmFjaycpOwotCi0gICAgICB0aGlzLmhlYWRpbmdEaXZfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaGVhZGluZycpOwotICAgICAgdGhpcy5oZWFkaW5nRGl2Xy5zdHlsZS53aWR0aCA9IHRyLmMuY29uc3RhbnRzLkhFQURJTkdfV0lEVEggKyAncHgnOwotICAgICAgdGhpcy5oZWFkaW5nRGl2Xy5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdjbGljaycsIHRoaXMub25IZWFkaW5nRGl2Q2xpY2tlZF8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLmhlYWRpbmdfID0gJyc7Ci0gICAgICB0aGlzLmV4cGFuZGVkXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBoZWFkaW5nKCkgewotICAgICAgcmV0dXJuIHRoaXMuaGVhZGluZ187Ci0gICAgfSwKLQotICAgIHNldCBoZWFkaW5nKHRleHQpIHsKLSAgICAgIHRoaXMuaGVhZGluZ18gPSB0ZXh0OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgc2V0IHRvb2x0aXAodGV4dCkgewotICAgICAgdGhpcy5oZWFkaW5nRGl2Xy50aXRsZSA9IHRleHQ7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb25HZW5lcmF0b3IoZ2VuZXJhdG9yKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbkdlbmVyYXRvcl8gPSBnZW5lcmF0b3I7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgZXhwYW5kZWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5leHBhbmRlZF87Ci0gICAgfSwKLQotICAgIHNldCBleHBhbmRlZChleHBhbmRlZCkgewotICAgICAgZXhwYW5kZWQgPSBleHBhbmRlZDsKLSAgICAgIGlmICh0aGlzLmV4cGFuZGVkXyA9PSBleHBhbmRlZCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5leHBhbmRlZF8gPSBleHBhbmRlZDsKLSAgICAgIHRoaXMuZXhwYW5kZWRTdGF0ZUNoYW5nZWRfKCk7Ci0gICAgfSwKLQotICAgIGV4cGFuZGVkU3RhdGVDaGFuZ2VkXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnVwZGF0ZUhlYWRpZ0Rpdl8oKTsKLSAgICB9LAotCi0gICAgb25IZWFkaW5nRGl2Q2xpY2tlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGUgPSBuZXcgRXZlbnQoJ2hlYWRpbmctY2xpY2tlZCcsIHsnYnViYmxlcyc6IHRydWV9KTsKLSAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChlKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudXBkYXRlSGVhZGlnRGl2XygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVIZWFkaWdEaXZfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8qKgotICAgICAgICogSWYgdGhpcyBpcyBhIGhlYWRpbmcgdHJhY2sgb2YgYSBzYW1wbGluZyB0aHJlYWQsIHdlIGFkZCBhIGxpbmsgdG8KLSAgICAgICAqIHRoZSBoZWFkaW5nIHRleHQgKCJTYW1wbGluZyBUaHJlYWQiKS4gV2UgYXNzb2NpYXRlIGEgc2VsZWN0aW9uCi0gICAgICAgKiBnZW5lcmF0b3Igd2l0aCB0aGUgbGluayBzbyB0aGF0IHNhbXBsaW5nIHByb2ZpbGluZyByZXN1bHRzIGFyZQotICAgICAgICogZGlzcGxheWVkIGluIHRoZSBib3R0b20gZnJhbWUgd2hlbiB5b3UgY2xpY2sgdGhlIGxpbmsuCi0gICAgICAgKi8KLSAgICAgIHRoaXMuaGVhZGluZ0Rpdl8uaW5uZXJIVE1MID0gJyc7Ci0gICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgnaGVhZGluZy1hcnJvdycpOwotICAgICAgaWYgKHRoaXMuZXhwYW5kZWQgPT09IHRydWUpCi0gICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSBET1dOX0FSUk9XOwotICAgICAgZWxzZSBpZiAodGhpcy5leHBhbmRlZCA9PT0gZmFsc2UpCi0gICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSBSSUdIVF9BUlJPVzsKLSAgICAgIGVsc2UKLSAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdGhpcy5oZWFkaW5nRGl2Xy5hcHBlbmRDaGlsZChzcGFuKTsKLQotICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXykgewotICAgICAgICB0aGlzLmhlYWRpbmdMaW5rXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICAgIHRoaXMuaGVhZGluZ0xpbmtfLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXzsKLSAgICAgICAgdGhpcy5oZWFkaW5nTGlua18udGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgdGhpcy5oZWFkaW5nRGl2Xy5hcHBlbmRDaGlsZCh0aGlzLmhlYWRpbmdMaW5rXyk7Ci0gICAgICAgIHRoaXMuaGVhZGluZ0xpbmtfLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuaGVhZGluZ18pKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSB0aGlzLmhlYWRpbmdfOwotICAgICAgICB0aGlzLmhlYWRpbmdEaXZfLmFwcGVuZENoaWxkKHNwYW4pOwotICAgICAgfQotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhlYWRpbmdEaXZfKTsKLSAgICB9LAotCi0gICAgZHJhdzogZnVuY3Rpb24odHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdkcmF3IGltcGxlbWVudGF0aW9uIG1pc3NpbmcnKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBIZWFkaW5nVHJhY2s6IEhlYWRpbmdUcmFjawotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvaGlnaGxpZ2h0ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvaGlnaGxpZ2h0ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc3NjdmNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2hpZ2hsaWdodGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQWxsb3dzIGN1c3RvbSBoaWdobGlnaHRpbmcgdG8gYmUgYWRkZWQgdG8gdGhlIGZ1bGwgbW9kZWwgdHJhY2suCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotCi0gIC8qKgotICAgKiBIaWdobGlnaHRzIGNldHJhaW4gZmVhdHVyZXMgb2YgdGhlIG1vZGVsLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEhpZ2hsaWdodGVyKHZpZXdwb3J0KSB7Ci0gICAgaWYgKHZpZXdwb3J0ID09PSB1bmRlZmluZWQpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcigndmlld3BvcnQgbXVzdCBiZSBwcm92aWRlZCcpOwotICAgIH0KLSAgICB0aGlzLnZpZXdwb3J0XyA9IHZpZXdwb3J0OwotICB9OwotCi0gIEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IE9iamVjdC5wcm90b3R5cGUsCi0KLSAgICBwcm9jZXNzTW9kZWw6IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3NNb2RlbCBpbXBsZW1lbnRhdGlvbiBtaXNzaW5nJyk7Ci0gICAgfSwKLQotICAgIGRyYXdIaWdobGlnaHQ6IGZ1bmN0aW9uKGN0eCwgZHQsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsIHZpZXdIZWlnaHQpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignZHJhd0hpZ2hsaWdodCBpbXBsZW1lbnRhdGlvbiBtaXNzaW5nJyk7Ci0gICAgfQotICB9OwotCi0KLSAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTsKLSAgb3B0aW9ucy5kZWZhdWx0TWV0YWRhdGEgPSB7fTsKLSAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBIaWdobGlnaHRlcjsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEhpZ2hsaWdodGVyLCBvcHRpb25zKTsKLQotICByZXR1cm4gewotICAgIEhpZ2hsaWdodGVyOiBIaWdobGlnaHRlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9rZXJuZWxfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mva2VybmVsX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyMjg2ZjcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9rZXJuZWxfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3Byb2Nlc3NfdHJhY2tfYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY3B1X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9zcGFjaW5nX3RyYWNrLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIENwdSA9IHRyLm1vZGVsLkNwdTsKLSAgdmFyIENwdVRyYWNrID0gdHIuYy50cmFja3MuY3B1X3RyYWNrOwotICB2YXIgUHJvY2Vzc1RyYWNrQmFzZSA9IHRyLmMudHJhY2tzLlByb2Nlc3NUcmFja0Jhc2U7Ci0gIHZhciBTcGFjaW5nVHJhY2sgPSB0ci5jLnRyYWNrcy5TcGFjaW5nVHJhY2s7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIEtlcm5lbFRyYWNrID0gdHIuYi51aS5kZWZpbmUoJ2tlcm5lbC10cmFjaycsIFByb2Nlc3NUcmFja0Jhc2UpOwotCi0gIEtlcm5lbFRyYWNrLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFByb2Nlc3NUcmFja0Jhc2UucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICBQcm9jZXNzVHJhY2tCYXNlLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICB9LAotCi0KLSAgICAvLyBLZXJuZWwgbWFwcyB0byBwcm9jZXNzQmFzZSBiZWNhdXNlIHdlIGRlcml2ZSBmcm9tIFByb2Nlc3NUcmFja0Jhc2UuCi0gICAgc2V0IGtlcm5lbChrZXJuZWwpIHsKLSAgICAgIHRoaXMucHJvY2Vzc0Jhc2UgPSBrZXJuZWw7Ci0gICAgfSwKLQotICAgIGdldCBrZXJuZWwoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFzZTsKLSAgICB9LAotCi0gICAgZ2V0IGV2ZW50Q29udGFpbmVyKCkgewotICAgICAgcmV0dXJuIHRoaXMua2VybmVsOwotICAgIH0sCi0KLSAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAxOwotICAgIH0sCi0KLSAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCkgewotICAgICAgY29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5rZXJuZWwsIHRoaXMpOwotICAgIH0sCi0KLSAgICB3aWxsQXBwZW5kVHJhY2tzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgY3B1cyA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLmtlcm5lbC5jcHVzKTsKLSAgICAgIGNwdXMuc29ydCh0ci5tb2RlbC5DcHUuY29tcGFyZSk7Ci0KLSAgICAgIHZhciBkaWRBcHBlbmRBdExlYXN0T25lVHJhY2sgPSBmYWxzZTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3B1cy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgY3B1ID0gY3B1c1tpXTsKLSAgICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLkNwdVRyYWNrKHRoaXMudmlld3BvcnQpOwotICAgICAgICB0cmFjay5kZXRhaWxlZE1vZGUgPSB0aGlzLmV4cGFuZGVkOwotICAgICAgICB0cmFjay5jcHUgPSBjcHU7Ci0gICAgICAgIGlmICghdHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOwotICAgICAgICBkaWRBcHBlbmRBdExlYXN0T25lVHJhY2sgPSB0cnVlOwotICAgICAgfQotICAgICAgaWYgKGRpZEFwcGVuZEF0TGVhc3RPbmVUcmFjaykKLSAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChuZXcgU3BhY2luZ1RyYWNrKHRoaXMudmlld3BvcnQpKTsKLSAgICB9Ci0gIH07Ci0KLQotICByZXR1cm4gewotICAgIEtlcm5lbFRyYWNrOiBLZXJuZWxUcmFjawotICB9OwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9sZXR0ZXJfZG90X3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFlZmM4ZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2V2ZW50X3ByZXNlbnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJveHlfc2VsZWN0YWJsZV9pdGVtLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08c3R5bGU+Ci0ubGV0dGVyLWRvdC10cmFjayB7Ci0gIGhlaWdodDogMThweDsKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB0ci5jLkV2ZW50UHJlc2VudGVyOwotICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKLQotICAvKioKLSAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGFuIGFycmF5IG9mIGRvdHMgd2l0aCBmaWxsZWQgbGV0dGVycyBpbnNpZGUgdGhlbS4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtIZWFkaW5nVHJhY2t9Ci0gICAqLwotICB2YXIgTGV0dGVyRG90VHJhY2sgPSB0ci5iLnVpLmRlZmluZSgKLSAgICAgICdsZXR0ZXItZG90LXRyYWNrJywgdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrKTsKLQotICBMZXR0ZXJEb3RUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdsZXR0ZXItZG90LXRyYWNrJyk7Ci0gICAgICB0aGlzLml0ZW1zXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IGl0ZW1zKCkgewotICAgICAgcmV0dXJuIHRoaXMuaXRlbXNfOwotICAgIH0sCi0KLSAgICBzZXQgaXRlbXMoaXRlbXMpIHsKLSAgICAgIHRoaXMuaXRlbXNfID0gaXRlbXM7Ci0gICAgICB0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7Ci0gICAgfSwKLQotICAgIGdldCBoZWlnaHQoKSB7Ci0gICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuaGVpZ2h0OwotICAgIH0sCi0KLSAgICBzZXQgaGVpZ2h0KGhlaWdodCkgewotICAgICAgdGhpcy5zdHlsZS5oZWlnaHQgPSBoZWlnaHQ7Ci0gICAgfSwKLQotICAgIGdldCBkdW1wUmFkaXVzVmlldygpIHsKLSAgICAgIHJldHVybiA3ICogKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpOwotICAgIH0sCi0KLSAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7Ci0gICAgICBpZiAodGhpcy5pdGVtc18gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDoKLSAgICAgICAgICB0aGlzLmRyYXdMZXR0ZXJEb3RzXyh2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZHJhd0xldHRlckRvdHNfOiBmdW5jdGlvbih2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7Ci0gICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7Ci0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0KLSAgICAgIHZhciBib3VuZHMgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIGhlaWdodCA9IGJvdW5kcy5oZWlnaHQgKiBwaXhlbFJhdGlvOwotICAgICAgdmFyIGhhbGZIZWlnaHQgPSBoZWlnaHQgKiAwLjU7Ci0gICAgICB2YXIgdHdvUGkgPSBNYXRoLlBJICogMjsKLSAgICAgIHZhciBwYWxldHRlID0gdHIuYi51aS5nZXRDb2xvclBhbGV0dGUoKTsKLSAgICAgIHZhciBoaWdobGlnaHRJZEJvb3N0ID0gdHIuYi51aS5wYWxldHRlUHJvcGVydGllcy5oaWdobGlnaHRJZEJvb3N0OwotCi0gICAgICAvLyBDdWxsaW5nIHBhcmFtZXRlcnMuCi0gICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOwotICAgICAgdmFyIGR1bXBSYWRpdXNWaWV3ID0gdGhpcy5kdW1wUmFkaXVzVmlldzsKLSAgICAgIHZhciBpdGVtUmFkaXVzV29ybGQgPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoaGVpZ2h0KTsKLQotICAgICAgLy8gRHJhdyB0aGUgbWVtb3J5IGR1bXBzLgotICAgICAgdmFyIGl0ZW1zID0gdGhpcy5pdGVtc187Ci0gICAgICB2YXIgbG9JID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAotICAgICAgICAgIGl0ZW1zLAotICAgICAgICAgIGZ1bmN0aW9uKGl0ZW0pIHsgcmV0dXJuIGl0ZW0uc3RhcnQ7IH0sCi0gICAgICAgICAgdmlld0xXb3JsZCk7Ci0KLSAgICAgIHZhciBvbGRGb250ID0gY3R4LmZvbnQ7Ci0gICAgICBjdHguZm9udCA9ICc0MDAgJyArIE1hdGguZmxvb3IoOSAqIHBpeGVsUmF0aW8pICsgJ3B4IEFyaWFsJzsKLSAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMCwwLDApJzsKLSAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJzsKLSAgICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJzsKLQotICAgICAgdmFyIGRyYXdJdGVtcyA9IGZ1bmN0aW9uKHNlbGVjdGVkKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSBsb0k7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07Ci0gICAgICAgICAgdmFyIHggPSBpdGVtLnN0YXJ0OwotICAgICAgICAgIGlmICh4IC0gaXRlbVJhZGl1c1dvcmxkID4gdmlld1JXb3JsZCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGlmIChpdGVtLnNlbGVjdGVkICE9PSBzZWxlY3RlZCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIHZhciB4VmlldyA9IGR0LnhXb3JsZFRvVmlldyh4KTsKLQotICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRTZWxlY3RhYmxlSXRlbUNvbG9yKGl0ZW0pOwotICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAgICAgICBjdHguYXJjKHhWaWV3LCBoYWxmSGVpZ2h0LCBkdW1wUmFkaXVzVmlldyArIDAuNSwgMCwgdHdvUGkpOwotICAgICAgICAgIGN0eC5maWxsKCk7Ci0gICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHsKLSAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAzOwotICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigxMDAsMTAwLDApJzsKLSAgICAgICAgICAgIGN0eC5zdHJva2UoKTsKLQotICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOwotICAgICAgICAgICAgY3R4LmFyYyh4VmlldywgaGFsZkhlaWdodCwgZHVtcFJhZGl1c1ZpZXcsIDAsIHR3b1BpKTsKLSAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAxLjU7Ci0gICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDI1NSwyNTUsMCknOwotICAgICAgICAgICAgY3R4LnN0cm9rZSgpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjdHgubGluZVdpZHRoID0gMTsKLSAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMCwwLDApJzsKLSAgICAgICAgICAgIGN0eC5zdHJva2UoKTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Ci0gICAgICAgICAgY3R4LmZpbGxUZXh0KGl0ZW0uZG90TGV0dGVyLCB4VmlldywgaGFsZkhlaWdodCk7Ci0gICAgICAgIH0KLSAgICAgIH07Ci0KLSAgICAgIC8vIERyYXcgdW5zZWxlY3RlZCBpdGVtcyBmaXJzdCB0byBtYWtlIHN1cmUgdGhleSBkb24ndCBvY2NsdWRlIHNlbGVjdGVkCi0gICAgICAvLyBpdGVtcy4KLSAgICAgIGRyYXdJdGVtcyhmYWxzZSk7Ci0gICAgICBkcmF3SXRlbXModHJ1ZSk7Ci0KLSAgICAgIGN0eC5saW5lV2lkdGggPSAxOwotICAgICAgY3R4LmZvbnQgPSBvbGRGb250OwotICAgIH0sCi0KLSAgICBhZGRFdmVudHNUb1RyYWNrTWFwOiBmdW5jdGlvbihldmVudFRvVHJhY2tNYXApIHsKLSAgICAgIGlmICh0aGlzLml0ZW1zXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuaXRlbXNfLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgewotICAgICAgICBpdGVtLmFkZFRvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwLCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6IGZ1bmN0aW9uKAotICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAodGhpcy5pdGVtc18gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgaXRlbVJhZGl1c1dvcmxkID0gdmlld1BpeFdpZHRoV29ybGQgKiB0aGlzLmR1bXBSYWRpdXNWaWV3OwotICAgICAgdHIuYi5pdGVyYXRlT3ZlckludGVyc2VjdGluZ0ludGVydmFscygKLSAgICAgICAgICB0aGlzLml0ZW1zXywKLSAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LnN0YXJ0IC0gaXRlbVJhZGl1c1dvcmxkOyB9LAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIDIgKiBpdGVtUmFkaXVzV29ybGQ7IH0sCi0gICAgICAgICAgbG9XWCwgaGlXWCwKLSAgICAgICAgICBmdW5jdGlvbihpdGVtKSB7Ci0gICAgICAgICAgICBpdGVtLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQWRkIHRoZSBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBwcm92aWRlZCBldmVudCwgaWYgYW55LCB0byB0aGUKLSAgICAgKiBzZWxlY3Rpb24uCi0gICAgICogQHBhcmFtIHtldmVudH0gVGhlIGN1cnJlbnQgZXZlbnQgaXRlbS4KLSAgICAgKiBAcGFyYW0ge051bWJlcn0gb2Zmc2V0IE51bWJlciBvZiBzbGljZXMgYXdheSBmcm9tIHRoZSBldmVudCB0byBsb29rLgotICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gVGhlIHNlbGVjdGlvbiB0byBhZGQgYW4gZXZlbnQgdG8sCi0gICAgICogaWYgZm91bmQuCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciBhbiBldmVudCB3YXMgZm91bmQuCi0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICBhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24oZXZlbnQsIG9mZnNldCwgc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAodGhpcy5pdGVtc18gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgaXRlbXMgPSB0aGlzLml0ZW1zXzsKLSAgICAgIHZhciBpbmRleCA9IHRyLmIuZmluZEZpcnN0SW5kZXhJbkFycmF5KGl0ZW1zLCBmdW5jdGlvbihpdGVtKSB7Ci0gICAgICAgIHJldHVybiBpdGVtLm1vZGVsSXRlbSA9PT0gZXZlbnQ7Ci0gICAgICB9KTsKLSAgICAgIGlmIChpbmRleCA9PT0gLTEpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIG5ld0luZGV4ID0gaW5kZXggKyBvZmZzZXQ7Ci0gICAgICBpZiAobmV3SW5kZXggPj0gMCAmJiBuZXdJbmRleCA8IGl0ZW1zLmxlbmd0aCkgewotICAgICAgICBpdGVtc1tuZXdJbmRleF0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7Ci0gICAgfSwKLQotICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbih3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbikgewotICAgICAgaWYgKHRoaXMuaXRlbXNfID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGl0ZW0gPSB0ci5iLmZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgdGhpcy5pdGVtc18sCi0gICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5zdGFydDsgfSwKLSAgICAgICAgICB3b3JsZFgsCi0gICAgICAgICAgd29ybGRNYXhEaXN0KTsKLQotICAgICAgaWYgKCFpdGVtKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGl0ZW0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTsKLSAgICB9Ci0gIH07Ci0KLSAgLyoqCi0gICAqIEEgZmlsbGVkIGRvdCB3aXRoIGEgbGV0dGVyIGluc2lkZSBpdC4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtQcm94eVNlbGVjdGFibGVJdGVtfQotICAgKi8KLSAgZnVuY3Rpb24gTGV0dGVyRG90KG1vZGVsSXRlbSwgZG90TGV0dGVyLCBjb2xvcklkLCBzdGFydCkgewotICAgIHRyLm1vZGVsLlByb3h5U2VsZWN0YWJsZUl0ZW0uY2FsbCh0aGlzLCBtb2RlbEl0ZW0pOwotICAgIHRoaXMuZG90TGV0dGVyID0gZG90TGV0dGVyOwotICAgIHRoaXMuY29sb3JJZCA9IGNvbG9ySWQ7Ci0gICAgdGhpcy5zdGFydCA9IHN0YXJ0OwotICB9OwotCi0gIExldHRlckRvdC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLnByb3RvdHlwZQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgTGV0dGVyRG90VHJhY2s6IExldHRlckRvdFRyYWNrLAotICAgIExldHRlckRvdDogTGV0dGVyRG90Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9sZXR0ZXJfZG90X3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvbGV0dGVyX2RvdF90cmFja190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhMDI4ZTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9sZXR0ZXJfZG90X3RyYWNrX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2suaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgTGV0dGVyRG90VHJhY2sgPSB0ci5jLnRyYWNrcy5MZXR0ZXJEb3RUcmFjazsKLSAgdmFyIExldHRlckRvdCA9IHRyLmMudHJhY2tzLkxldHRlckRvdDsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKLSAgdmFyIFZpZXdwb3J0ID0gdHIuYy5UaW1lbGluZVZpZXdwb3J0OwotCi0gIHZhciBjcmVhdGVJdGVtcyA9IGZ1bmN0aW9uKCkgewotICAgIHZhciBpdGVtcyA9IFsKLSAgICAgIG5ldyBMZXR0ZXJEb3Qoe3NlbGVjdGlvblN0YXRlOiBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRH0sICdhJywgNywgNSksCi0gICAgICBuZXcgTGV0dGVyRG90KHtzZWxlY3Rpb25TdGF0ZTogU2VsZWN0aW9uU3RhdGUuU0VMRUNURUR9LCAnYicsIDIsIDIwKSwKLSAgICAgIG5ldyBMZXR0ZXJEb3Qoe3NlbGVjdGlvblN0YXRlOiBTZWxlY3Rpb25TdGF0ZS5OT05FfSwgJ2MnLCA0LCAzNSksCi0gICAgICBuZXcgTGV0dGVyRG90KHtzZWxlY3Rpb25TdGF0ZTogU2VsZWN0aW9uU3RhdGUuTk9ORX0sICdkJywgNCwgNTApCi0gICAgXTsKLSAgICByZXR1cm4gaXRlbXM7Ci0gIH07Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaXRlbXMgPSBjcmVhdGVJdGVtcygpOwotCi0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gTGV0dGVyRG90VHJhY2sodmlld3BvcnQpOwotICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7Ci0KLSAgICB0cmFjay5pdGVtcyA9IGl0ZW1zOwotICAgIHZhciBkdCA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA2MCwgdHJhY2suY2xpZW50V2lkdGgpOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdGlvbkhpdFRlc3RpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaXRlbXMgPSBjcmVhdGVJdGVtcygpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IExldHRlckRvdFRyYWNrKG5ldyBWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5pdGVtcyA9IGl0ZW1zOwotCi0gICAgLy8gRmFrZSBhIHZpZXcgcGl4ZWwgc2l6ZS4KLSAgICB2YXIgZGV2aWNlUGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgdmFyIHZpZXdQaXhXaWR0aFdvcmxkID0gMC4xIC8gZGV2aWNlUGl4ZWxSYXRpbzsKLQotICAgIC8vIEhpdCBvdXRzaWRlIHJhbmdlCi0gICAgdmFyIHNlbGVjdGlvbiA9IFtdOwotICAgIHRyYWNrLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKLSAgICAgICAgMywgNCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDApOwotCi0gICAgLy8gSGl0IHRoZSBmaXJzdCBpdGVtLCB2aWEgcGl4ZWwtbmVhcm5lc3MuCi0gICAgc2VsZWN0aW9uID0gW107Ci0gICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAotICAgICAgICAxOS45OCwgMTkuOTksIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uWzBdLCBpdGVtc1sxXS5tb2RlbEl0ZW0pOwotCi0gICAgLy8gSGl0IHRoZSBpbnN0YW5jZSwgYmV0d2VlbiB0aGUgMXN0IGFuZCAybmQgc25hcHNob3RzCi0gICAgc2VsZWN0aW9uID0gW107Ci0gICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAotICAgICAgICAzMCwgNTAsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uWzBdLCBpdGVtc1syXS5tb2RlbEl0ZW0pOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25bMV0sIGl0ZW1zWzNdLm1vZGVsSXRlbSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2FkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGl0ZW1zID0gY3JlYXRlSXRlbXMoKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBMZXR0ZXJEb3RUcmFjayhuZXcgVmlld3BvcnQoKSk7Ci0gICAgdHJhY2suaXRlbXMgPSBpdGVtczsKLQotICAgIC8vIFJpZ2h0IGZyb20gdGhlIG1pZGRsZSBvZiBpdGVtcy4KLSAgICB2YXIgc2VsZWN0aW9uMSA9IFtdOwotICAgIGFzc2VydC5pc1RydWUodHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgIGl0ZW1zWzJdLm1vZGVsSXRlbSwgMSwgc2VsZWN0aW9uMSkpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24xLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbjFbMF0sIGl0ZW1zWzNdLm1vZGVsSXRlbSk7Ci0KLSAgICAvLyBMZWZ0IGZyb20gdGhlIG1pZGRsZSBvZiBpdGVtcy4KLSAgICB2YXIgc2VsZWN0aW9uMiA9IFtdOwotICAgIGFzc2VydC5pc1RydWUodHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgIGl0ZW1zWzJdLm1vZGVsSXRlbSwgLTEsIHNlbGVjdGlvbjIpKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uMi5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24yWzBdLCBpdGVtc1sxXS5tb2RlbEl0ZW0pOwotCi0gICAgLy8gUmlnaHQgZnJvbSB0aGUgcmlnaHQgZWRnZSBvZiBpdGVtcy4KLSAgICB2YXIgc2VsZWN0aW9uMyA9IFtdOwotICAgIGFzc2VydC5pc0ZhbHNlKHRyYWNrLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICBpdGVtc1szXS5tb2RlbEl0ZW0sIDEsIHNlbGVjdGlvbjMpKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uMy5sZW5ndGgsIDApOwotCi0gICAgLy8gTGVmdCBmcm9tIHRoZSBsZWZ0IGVkZ2Ugb2YgaXRlbXMuCi0gICAgdmFyIHNlbGVjdGlvbjQgPSBbXTsKLSAgICBhc3NlcnQuaXNGYWxzZSh0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKLSAgICAgICAgaXRlbXNbMF0ubW9kZWxJdGVtLCAtMSwgc2VsZWN0aW9uNCkpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb240Lmxlbmd0aCwgMCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja190ZXN0X3V0aWxzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3Rlc3RfdXRpbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEwN2VlNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3Rlc3RfdXRpbHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2dsb2JhbF9tZW1vcnlfZHVtcC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbWVtb3J5X2FsbG9jYXRvcl9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3Rpb25fc3RhdGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWVtb3J5IGR1bXAgdHJhY2sgdGVzdHMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICB2YXIgUHJvY2Vzc01lbW9yeUR1bXAgPSB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcDsKLSAgdmFyIEdsb2JhbE1lbW9yeUR1bXAgPSB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wOwotICB2YXIgTWVtb3J5QWxsb2NhdG9yRHVtcCA9IHRyLm1vZGVsLk1lbW9yeUFsbG9jYXRvckR1bXA7Ci0gIHZhciBWTVJlZ2lvbiA9IHRyLm1vZGVsLlZNUmVnaW9uOwotICB2YXIgVk1SZWdpb25CeXRlU3RhdHMgPSB0ci5tb2RlbC5WTVJlZ2lvbkJ5dGVTdGF0czsKLSAgdmFyIFNjYWxhckF0dHJpYnV0ZSA9IHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZTsKLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0KLSAgZnVuY3Rpb24gY3JlYXRlVk1SZWdpb25zKHBzc1ZhbHVlcykgewotICAgIHJldHVybiBwc3NWYWx1ZXMubWFwKGZ1bmN0aW9uKHBzc1ZhbHVlLCBpKSB7Ci0gICAgICByZXR1cm4gVk1SZWdpb24uZnJvbURpY3QoewotICAgICAgICBzdGFydEFkZHJlc3M6IDEwMDAgKiBpLAotICAgICAgICBzaXplSW5CeXRlczogMTAwMCwKLSAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCwKLSAgICAgICAgbWFwcGVkRmlsZTogJ1tzdGFjaycgKyBpICsgJ10nLAotICAgICAgICBieXRlU3RhdHM6IHsKLSAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogcHNzVmFsdWUgLyAzLAotICAgICAgICAgIHN3YXBwZWQ6IHBzc1ZhbHVlICogMywKLSAgICAgICAgICBwcm9wb3J0aW9uYWxSZXNpZGVudDogcHNzVmFsdWUKLSAgICAgICAgfQotICAgICAgfSk7Ci0gICAgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBjcmVhdGVBbGxvY2F0b3JEdW1wcyhtZW1vcnlEdW1wLCBkdW1wU2l6ZXMpIHsKLSAgICB2YXIgYWxsb2NhdG9yRHVtcHMgPSBbXTsKLSAgICB0ci5iLml0ZXJJdGVtcyhkdW1wU2l6ZXMsIGZ1bmN0aW9uKGFsbG9jYXRvck5hbWUsIHNpemUpIHsKLSAgICAgIHZhciBkdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAobWVtb3J5RHVtcCwgYWxsb2NhdG9yTmFtZSk7Ci0gICAgICBkdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgc2l6ZSkpOwotICAgICAgYWxsb2NhdG9yRHVtcHMucHVzaChkdW1wKTsKLSAgICB9KTsKLSAgICByZXR1cm4gYWxsb2NhdG9yRHVtcHM7Ci0gIH0KLQotICBmdW5jdGlvbiBhZGRQcm9jZXNzTWVtb3J5RHVtcChnbG9iYWxNZW1vcnlEdW1wLCBwcm9jZXNzLCBzdGFydCwKLSAgICAgIG9wdF9wc3NWYWx1ZXMsIG9wdF9kdW1wU2l6ZXMpIHsKLSAgICB2YXIgcG1kID0gbmV3IFByb2Nlc3NNZW1vcnlEdW1wKGdsb2JhbE1lbW9yeUR1bXAsIHByb2Nlc3MsIHN0YXJ0KTsKLSAgICBpZiAob3B0X3Bzc1ZhbHVlcyAhPT0gdW5kZWZpbmVkKQotICAgICAgcG1kLnZtUmVnaW9ucyA9IGNyZWF0ZVZNUmVnaW9ucyhvcHRfcHNzVmFsdWVzKTsKLSAgICBpZiAob3B0X2R1bXBTaXplcyAhPT0gdW5kZWZpbmVkKQotICAgICAgcG1kLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gY3JlYXRlQWxsb2NhdG9yRHVtcHMocG1kLCBvcHRfZHVtcFNpemVzKTsKLSAgICBnbG9iYWxNZW1vcnlEdW1wLnByb2Nlc3NNZW1vcnlEdW1wc1twcm9jZXNzLnBpZF0gPSBwbWQ7Ci0gICAgcHJvY2Vzcy5tZW1vcnlEdW1wcy5wdXNoKHBtZCk7Ci0gIH0KLQotICBmdW5jdGlvbiBjcmVhdGVNb2RlbFdpdGhEdW1wcyh3aXRoVk1SZWdpb25zLCB3aXRoQWxsb2NhdG9yRHVtcHMpIHsKLSAgICB2YXIgbWF5YmVQc3NWYWx1ZXMgPSBmdW5jdGlvbihwc3NWYWx1ZXMpIHsKLSAgICAgIHJldHVybiB3aXRoVk1SZWdpb25zID8gcHNzVmFsdWVzIDogdW5kZWZpbmVkOwotICAgIH07Ci0gICAgdmFyIG1heWJlRHVtcFNpemVzID0gZnVuY3Rpb24oZHVtcFNpemVzKSB7Ci0gICAgICByZXR1cm4gd2l0aEFsbG9jYXRvckR1bXBzID8gZHVtcFNpemVzIDogdW5kZWZpbmVkOwotICAgIH07Ci0gICAgcmV0dXJuIHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgewotICAgICAgLy8gQ29uc3RydWN0IGEgbW9kZWwgd2l0aCB0aHJlZSBwcm9jZXNzZXMuCi0gICAgICB2YXIgcGEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMyk7Ci0gICAgICB2YXIgcGIgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoNik7Ci0gICAgICB2YXIgcGMgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoOSk7Ci0KLSAgICAgIHZhciBnbWQxID0gbmV3IEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsIDApOwotICAgICAgbW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnbWQxKTsKLSAgICAgIGFkZFByb2Nlc3NNZW1vcnlEdW1wKGdtZDEsIHBhLCAwLCBtYXliZVBzc1ZhbHVlcyhbMTExXSkpOwotICAgICAgYWRkUHJvY2Vzc01lbW9yeUR1bXAoZ21kMSwgcGIsIDAuMiwgdW5kZWZpbmVkLAotICAgICAgICAgIG1heWJlRHVtcFNpemVzKHtvaWxwYW46IDEwMjR9KSk7Ci0KLSAgICAgIHZhciBnbWQyID0gbmV3IEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsIDUpOwotICAgICAgbW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnbWQyKTsKLSAgICAgIGFkZFByb2Nlc3NNZW1vcnlEdW1wKGdtZDIsIHBhLCAwKTsKLSAgICAgIGFkZFByb2Nlc3NNZW1vcnlEdW1wKGdtZDIsIHBiLCA0Ljk5LCBtYXliZVBzc1ZhbHVlcyhbMTAwLCA1MF0pLAotICAgICAgICAgIG1heWJlRHVtcFNpemVzKHt2ODogNTEyfSkpOwotICAgICAgYWRkUHJvY2Vzc01lbW9yeUR1bXAoZ21kMiwgcGMsIDUuMTIsIHVuZGVmaW5lZCwKLSAgICAgICAgICBtYXliZUR1bXBTaXplcyh7b2lscGFuOiAxMjgsIHY4OiAyNTYsIHRyYWNpbmc6IDY1NTM2fSkpOwotCi0gICAgICB2YXIgZ21kMyA9IG5ldyBHbG9iYWxNZW1vcnlEdW1wKG1vZGVsLCAxNSk7Ci0gICAgICBtb2RlbC5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdtZDMpOwotICAgICAgYWRkUHJvY2Vzc01lbW9yeUR1bXAoZ21kMywgcGEsIDE1LjUsIG1heWJlUHNzVmFsdWVzKFtdKSwKLSAgICAgICAgICBtYXliZUR1bXBTaXplcyh7djg6IDc2OH0pKTsKLSAgICAgIGFkZFByb2Nlc3NNZW1vcnlEdW1wKGdtZDMsIHBjLCAxNC41LCBtYXliZVBzc1ZhbHVlcyhbNzAsIDcwLCA3MF0pLAotICAgICAgICAgIG1heWJlRHVtcFNpemVzKHtvaWxwYW46IDUxMn0pKTsKLQotICAgICAgdmFyIGdtZDQgPSBuZXcgR2xvYmFsTWVtb3J5RHVtcChtb2RlbCwgMTgpOwotICAgICAgbW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnbWQ0KTsKLSAgICB9KTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyh3aXRoVk1SZWdpb25zLCB3aXRoQWxsb2NhdG9yRHVtcHMpIHsKLSAgICB2YXIgbW9kZWwgPSBjcmVhdGVNb2RlbFdpdGhEdW1wcyh3aXRoVk1SZWdpb25zLCB3aXRoQWxsb2NhdG9yRHVtcHMpOwotICAgIHZhciBkdW1wcyA9IG1vZGVsLmdsb2JhbE1lbW9yeUR1bXBzOwotICAgIGR1bXBzWzFdLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQ7Ci0gICAgZHVtcHNbMl0uc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKLSAgICByZXR1cm4gZHVtcHM7Ci0gIH0KLQotICBmdW5jdGlvbiBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzKHdpdGhWTVJlZ2lvbnMsIHdpdGhBbGxvY2F0b3JEdW1wcykgewotICAgIHZhciBtb2RlbCA9IGNyZWF0ZU1vZGVsV2l0aER1bXBzKHdpdGhWTVJlZ2lvbnMsIHdpdGhBbGxvY2F0b3JEdW1wcyk7Ci0gICAgdmFyIGR1bXBzID0gbW9kZWwuZ2V0UHJvY2Vzcyg5KS5tZW1vcnlEdW1wczsKLSAgICBkdW1wc1swXS5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOwotICAgIGR1bXBzWzFdLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQ7Ci0gICAgcmV0dXJuIGR1bXBzOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHM6IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcywKLSAgICBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzOiBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja191dGlsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDdiNTNkYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF9heGlzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF9wb2ludC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY2hhcnRfc2VyaWVzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jaGFydF90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9sZXR0ZXJfZG90X3RyYWNrLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLQotICAvLyBUT0RPKHBldHJjZXJtYWspOiBSZW1vdmUgc3VwcG9ydCBmb3IgdGhlIG9sZCBkZWZhdWx0IGF0dHJpYnV0ZSBuYW1lIG9uY2UKLSAgLy8gdGhlIGNvcnJlc3BvZGluZyBjaGFuZ2UgbGFuZHMgaW4gQ2hyb21pdW0uCi0gIHZhciBBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfT0xEX05BTUUgPSAnb3V0ZXJfc2l6ZSc7Ci0gIHZhciBBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfTkFNRSA9ICdzaXplJzsKLQotICAvKioKLSAgICogQWRkIG51bWVyaWMgdmFsdWVzIGZyb20gYSBzb3VyY2UgZGljdGlvbmFyeSB0byB0aGUgbnVtZXJpYyB2YWx1ZXMgaW4KLSAgICogYSBkZXN0aW5hdGlvbiBkaWN0aW9uYXJ5LiBVbmRlZmluZWQgdmFsdWVzIGFyZSB0cmVhdGVkIGFzIHplcm9zLiBOb3RlIHRoYXQKLSAgICogdGhpcyBtZXRob2QgbW9kaWZpZXMgdGhlIGRlc3RpbmF0aW9uIGRpY3Rpb25hcnkgaW4gcGxhY2UuCi0gICAqCi0gICAqIEV4YW1wbGU6IGFkZERpY3Rpb25hcnkoe2E6IDEsIGI6IDJ9LCB7YjogMywgYzogNH0pIHdpbGwgdXBkYXRlIHRoZQotICAgKiBkZXN0aW5hdGlvbiBkaWN0aW9uYXJ5IChmaXJzdCBhcmd1bWVudCkgdG8ge2E6IDEsIGI6IDUsIGM6IDR9LgotICAgKi8KLSAgZnVuY3Rpb24gYWRkRGljdGlvbmFyeShkc3REaWN0LCBzcmNEaWN0KSB7Ci0gICAgdHIuYi5pdGVySXRlbXMoc3JjRGljdCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgewotICAgICAgdmFyIGV4aXN0aW5nVmFsdWUgPSBkc3REaWN0W2tleV07Ci0gICAgICBpZiAoZXhpc3RpbmdWYWx1ZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICBleGlzdGluZ1ZhbHVlID0gMDsKLSAgICAgIGRzdERpY3Rba2V5XSA9IGV4aXN0aW5nVmFsdWUgKyB2YWx1ZTsKLSAgICB9KTsKLSAgfQotCi0gIC8qKgotICAgKiBHZXQgYSBkaWN0aW9uYXJ5IG1hcHBpbmcgcm9vdCBhbGxvY2F0b3IgbmFtZXMgKGUuZy4gJ3Y4JykgdG8gdGhlCi0gICAqIGNvcnJlc3BvbmRpbmcgc2l6ZXMgKGUuZy4gMTAyNCkgaW4gYSBwcm9jZXNzIG1lbW9yeSBkdW1wLgotICAgKi8KLSAgZnVuY3Rpb24gZ2V0UHJvY2Vzc01lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyhwcm9jZXNzTWVtb3J5RHVtcCkgewotICAgIHZhciBhbGxvY2F0b3JEdW1wcyA9IHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzOwotICAgIGlmIChhbGxvY2F0b3JEdW1wcyA9PT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuIHt9OwotICAgIHZhciBhbGxvY2F0b3JTaXplcyA9IHt9OwotICAgIGFsbG9jYXRvckR1bXBzLmZvckVhY2goZnVuY3Rpb24oYWxsb2NhdG9yRHVtcCkgewotICAgICAgLy8gRG9uJ3Qgc2hvdyB0cmFjaW5nIG92ZXJoZWFkIGluIHRoZSBjaGFydHMuCi0gICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBGaW5kIGEgbGVzcyBoYWNreSB3YXkgdG8gZG8gdGhpcy4KLSAgICAgIGlmIChhbGxvY2F0b3JEdW1wLmZ1bGxOYW1lID09PSAndHJhY2luZycpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBhbGxvY2F0b3JTaXplID0gYWxsb2NhdG9yRHVtcC5hdHRyaWJ1dGVzWwotICAgICAgICAgIEFMTE9DQVRPUl9TSVpFX0FUVFJJQlVURV9OQU1FXTsKLSAgICAgIGlmIChhbGxvY2F0b3JTaXplID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgYWxsb2NhdG9yU2l6ZSA9IGFsbG9jYXRvckR1bXAuYXR0cmlidXRlc1sKLSAgICAgICAgICAgIEFMTE9DQVRPUl9TSVpFX0FUVFJJQlVURV9PTERfTkFNRV07Ci0gICAgICB9Ci0gICAgICBpZiAoYWxsb2NhdG9yU2l6ZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm47Ci0gICAgICB2YXIgYWxsb2NhdG9yU2l6ZVZhbHVlID0gYWxsb2NhdG9yU2l6ZS52YWx1ZTsKLSAgICAgIGlmIChhbGxvY2F0b3JTaXplVmFsdWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgYWxsb2NhdG9yU2l6ZXNbYWxsb2NhdG9yRHVtcC5mdWxsTmFtZV0gPSBhbGxvY2F0b3JTaXplVmFsdWU7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGFsbG9jYXRvclNpemVzOwotICB9OwotCi0gIC8qKgotICAgKiBHZXQgYSBkaWN0aW9uYXJ5IG1hcHBpbmcgcm9vdCBhbGxvY2F0b3IgbmFtZXMgKGUuZy4gJ3Y4JykgdG8gdGhlCi0gICAqIGNvcnJlc3BvbmRpbmcgc2l6ZXMgKGUuZy4gMTAyNCkgaW4gYSBnbG9iYWwgbWVtb3J5IGR1bXAgKGkuZS4gc3VtbWVkIG92ZXIKLSAgICogYWxsIHNpbXVsdGFuZW91cyBwcm9jZXNzIG1lbW9yeSBkdW1wcykuCi0gICAqLwotICBmdW5jdGlvbiBnZXRHbG9iYWxNZW1vcnlEdW1wQWxsb2NhdG9yU2l6ZXMoZ2xvYmFsTWVtb3J5RHVtcCkgewotICAgIHZhciBnbG9iYWxBbGxvY2F0b3JTaXplcyA9IHt9OwotICAgIHRyLmIuaXRlckl0ZW1zKGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzLAotICAgICAgICBmdW5jdGlvbihwaWQsIHByb2Nlc3NNZW1vcnlEdW1wKSB7Ci0gICAgICBhZGREaWN0aW9uYXJ5KGdsb2JhbEFsbG9jYXRvclNpemVzLAotICAgICAgICAgIGdldFByb2Nlc3NNZW1vcnlEdW1wQWxsb2NhdG9yU2l6ZXMocHJvY2Vzc01lbW9yeUR1bXApKTsKLSAgICB9KTsKLSAgICByZXR1cm4gZ2xvYmFsQWxsb2NhdG9yU2l6ZXM7Ci0gIH0KLQotICAvKioKLSAgICogQSBnZW5lcmljIGZ1bmN0aW9uIHdoaWNoIGNvbnZlcnRzIGEgbGlzdCBvZiBtZW1vcnkgZHVtcHMgdG8gYSBsaXN0IG9mIGNoYXJ0Ci0gICAqIHNlcmllcyAob25lIHBlciByb290IGFsbG9jYXRvcikuIEVhY2ggc2VyaWVzIHJlcHJlc2VudHMgdGhlIGV2b2x1dGlvbiBvZgotICAgKiB0aGUgc2l6ZSBvZiBhIHRoZSBjb3JyZXNwb25kaW5nIHJvb3QgYWxsb2NhdG9yIChlLmcuICd2OCcpIG92ZXIgdGltZS4KLSAgICovCi0gIGZ1bmN0aW9uIGJ1aWxkQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMobWVtb3J5RHVtcHMsCi0gICAgICBtZW1vcnlEdW1wVG9BbGxvY2F0b3JTaXplc0ZuKSB7Ci0gICAgdmFyIGFsbG9jYXRvck5hbWVUb1BvaW50cyA9IHt9OwotICAgIHZhciBkdW1wc0RhdGEgPSBtZW1vcnlEdW1wcy5tYXAoZnVuY3Rpb24obWVtb3J5RHVtcCkgewotICAgICAgdmFyIGFsbG9jYXRvclNpemVzID0gbWVtb3J5RHVtcFRvQWxsb2NhdG9yU2l6ZXNGbihtZW1vcnlEdW1wKTsKLSAgICAgIHRyLmIuaXRlckl0ZW1zKGFsbG9jYXRvclNpemVzLCBmdW5jdGlvbihhbGxvY2F0b3JOYW1lKSB7Ci0gICAgICAgIGFsbG9jYXRvck5hbWVUb1BvaW50c1thbGxvY2F0b3JOYW1lXSA9IFtdOwotICAgICAgfSk7Ci0gICAgICByZXR1cm4ge2R1bXA6IG1lbW9yeUR1bXAsIHNpemVzOiBhbGxvY2F0b3JTaXplc307Ci0gICAgfSk7Ci0KLSAgICAvLyBEbyBub3QgZ2VuZXJhdGUgYW55IGNoYXJ0IHNlcmllcyBpZiBubyBwcm9jZXNzIG1lbW9yeSBkdW1wIGNvbnRhaW5zIGFueQotICAgIC8vIGFsbG9jYXRvciBkdW1wcy4KLSAgICBpZiAoT2JqZWN0LmtleXMoYWxsb2NhdG9yTmFtZVRvUG9pbnRzKS5sZW5ndGggPT09IDApCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgZHVtcHNEYXRhLmZvckVhY2goZnVuY3Rpb24oZHVtcERhdGEpIHsKLSAgICAgIHZhciBtZW1vcnlEdW1wID0gZHVtcERhdGEuZHVtcDsKLSAgICAgIHZhciBhbGxvY2F0b3JTaXplcyA9IGR1bXBEYXRhLnNpemVzOwotICAgICAgdHIuYi5pdGVySXRlbXMoYWxsb2NhdG9yTmFtZVRvUG9pbnRzLCBmdW5jdGlvbihhbGxvY2F0b3JOYW1lLCBwb2ludHMpIHsKLSAgICAgICAgdmFyIGFsbG9jYXRvclNpemUgPSBhbGxvY2F0b3JTaXplc1thbGxvY2F0b3JOYW1lXSB8fCAwOwotICAgICAgICBwb2ludHMucHVzaChuZXcgdHIuYy50cmFja3MuQ2hhcnRQb2ludCgKLSAgICAgICAgICAgIG1lbW9yeUR1bXAsIG1lbW9yeUR1bXAuc3RhcnQsIGFsbG9jYXRvclNpemUpKTsKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgLy8gQ3JlYXRlIG9uZSBjb21tb24gYXhpcyBmb3IgYWxsIGFsbG9jYXRlZCBtZW1vcnkgY2hhcnQgc2VyaWVzLgotICAgIHZhciBheGlzID0gbmV3IHRyLmMudHJhY2tzLkNoYXJ0QXhpcygwKTsKLQotICAgIC8vIEJ1aWxkIGEgY2hhcnQgc2VyaWVzIGZvciBlYWNoIGFsbG9jYXRvci4KLSAgICB2YXIgc2VyaWVzID0gW107Ci0gICAgdHIuYi5pdGVySXRlbXMoYWxsb2NhdG9yTmFtZVRvUG9pbnRzLCBmdW5jdGlvbihhbGxvY2F0b3JOYW1lLCBwb2ludHMpIHsKLSAgICAgIHZhciBjb2xvcklkID0gdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoYWxsb2NhdG9yTmFtZSk7Ci0gICAgICB2YXIgcmVuZGVyaW5nQ29uZmlnID0gewotICAgICAgICBjaGFydFR5cGU6IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZS5MSU5FLAotICAgICAgICBjb2xvcklkOiBjb2xvcklkCi0gICAgICB9OwotICAgICAgc2VyaWVzLnB1c2gobmV3IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzKHBvaW50cywgYXhpcywgcmVuZGVyaW5nQ29uZmlnKSk7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gc2VyaWVzOwotICB9Ci0KLSAgLyoqCi0gICAqIFRyYW5zZm9ybSBhIGxpc3Qgb2YgbWVtb3J5IGR1bXBzIHRvIGEgbGlzdCBvZiBsZXR0ZXIgZG90cyAod2l0aCBsZXR0ZXIgJ00nCi0gICAqIGluc2lkZSkuCi0gICAqLwotICBmdW5jdGlvbiBidWlsZE1lbW9yeUxldHRlckRvdHMobWVtb3J5RHVtcHMpIHsKLSAgICB2YXIgbWVtb3J5Q29sb3JJZCA9IHRyLmIudWkuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgnbWVtb3J5X2R1bXAnKTsKLSAgICByZXR1cm4gbWVtb3J5RHVtcHMubWFwKGZ1bmN0aW9uKG1lbW9yeUR1bXApIHsKLSAgICAgIHJldHVybiBuZXcgdHIuYy50cmFja3MuTGV0dGVyRG90KAotICAgICAgICAgIG1lbW9yeUR1bXAsICdNJywgbWVtb3J5Q29sb3JJZCwgbWVtb3J5RHVtcC5zdGFydCk7Ci0gICAgfSk7Ci0gIH0KLQotICAvKioKLSAgICogQ29udmVydCBhIGxpc3Qgb2YgZ2xvYmFsIG1lbW9yeSBkdW1wcyB0byBhIGxpc3Qgb2YgY2hhcnQgc2VyaWVzIChvbmUgcGVyCi0gICAqIHByb2Nlc3MpLiBFYWNoIHNlcmllcyByZXByZXNlbnRzIHRoZSBldm9sdXRpb24gb2YgdGhlIG1lbW9yeSB1c2VkIGJ5IHRoZQotICAgKiBwcm9jZXNzIG92ZXIgdGltZS4KLSAgICovCi0gIGZ1bmN0aW9uIGJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzKGdsb2JhbE1lbW9yeUR1bXBzKSB7Ci0gICAgLy8gRG8gbm90IGdlbmVyYXRlIHRoZSBjaGFydCBpZiBubyBwcm9jZXNzIG1lbW9yeSBkdW1wIGNvbnRhaW5zIFZNIHJlZ2lvbnMuCi0gICAgdmFyIGNvbnRhaW5zVm1SZWdpb25zID0gZ2xvYmFsTWVtb3J5RHVtcHMuc29tZShmdW5jdGlvbihnbG9iYWxEdW1wKSB7Ci0gICAgICBmb3IgKHZhciBwaWQgaW4gZ2xvYmFsRHVtcC5wcm9jZXNzTWVtb3J5RHVtcHMpCi0gICAgICAgIGlmIChnbG9iYWxEdW1wLnByb2Nlc3NNZW1vcnlEdW1wc1twaWRdLm1vc3RSZWNlbnRWbVJlZ2lvbnMpCi0gICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSk7Ci0gICAgaWYgKCFjb250YWluc1ZtUmVnaW9ucykKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICAvLyBGaW5kIGFsbCBwcm9jZXNzZXMgdGhhdCBkdW1wIG1lbW9yeSBhdCBsZWFzdCBvbmNlLgotICAgIHZhciBwaWRUb1Byb2Nlc3MgPSB7fTsKLSAgICBnbG9iYWxNZW1vcnlEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGdsb2JhbER1bXApIHsKLSAgICAgIHRyLmIuaXRlckl0ZW1zKGdsb2JhbER1bXAucHJvY2Vzc01lbW9yeUR1bXBzLCBmdW5jdGlvbihwaWQsIHByb2Nlc3NEdW1wKSB7Ci0gICAgICAgIHBpZFRvUHJvY2Vzc1twaWRdID0gcHJvY2Vzc0R1bXAucHJvY2VzczsKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgLy8gQnVpbGQgb25lIGxpc3Qgb2YgcG9pbnRzIGZvciBlYWNoIGluc3RydW1lbnRlZCBwcm9jZXNzLgotICAgIHZhciBwaWRUb1BvaW50cyA9IHt9OwotICAgIHRyLmIuaXRlckl0ZW1zKHBpZFRvUHJvY2VzcywgZnVuY3Rpb24ocGlkLCBwcm9jZXNzKSB7Ci0gICAgICBwaWRUb1BvaW50c1twaWRdID0gW107Ci0gICAgfSk7Ci0KLSAgICAvLyBGb3IgZXZlcnkgdGltZXN0YW1wLCBjYWxjdWxhdGUgdGhlIHRvdGFsIFBTUyAocHJvcG9ydGlvbmFsIHNldCBzaXplKSBvZgotICAgIC8vIGVhY2ggcHJvY2VzcyBhbmQgYXBwZW5kIGl0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGxpc3Qgb2YgcG9pbnRzLgotICAgIGdsb2JhbE1lbW9yeUR1bXBzLmZvckVhY2goZnVuY3Rpb24oZ2xvYmFsRHVtcCkgewotICAgICAgdmFyIHBzc0Jhc2UgPSAwOwotICAgICAgdHIuYi5pdGVySXRlbXMocGlkVG9Qb2ludHMsIGZ1bmN0aW9uKHBpZCwgcG9pbnRzKSB7Ci0gICAgICAgIHZhciBwcm9jZXNzTWVtb3J5RHVtcCA9IGdsb2JhbER1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3BpZF07Ci0gICAgICAgIHZhciBwc3M7Ci0gICAgICAgIGlmIChwcm9jZXNzTWVtb3J5RHVtcCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgLy8gSWYgbm8gZHVtcCB3YXMgZm91bmQsIGFzc3VtZSB0aGF0IHRoZSBwcm9jZXNzIGlzIGRlYWQuCi0gICAgICAgICAgcHNzID0gMDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwc3MgPSBwcm9jZXNzTWVtb3J5RHVtcC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoCi0gICAgICAgICAgICAgICdwcm9wb3J0aW9uYWxSZXNpZGVudCcpOwotICAgICAgICAgIGlmIChwc3MgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgLy8gSWYgdGhlIGR1bXAgZG9lcyBub3QgcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIChuYW1lbHkKLSAgICAgICAgICAgIC8vIG1vc3QgcmVjZW50IFZNIHJlZ2lvbnMpLCBhc3N1bWUgemVyby4KLSAgICAgICAgICAgIHBzcyA9IDA7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHZhciBjdW11bGF0aXZlUHNzID0gcHNzQmFzZSArIHBzczsKLSAgICAgICAgcG9pbnRzLnB1c2gobmV3IHRyLmMudHJhY2tzLkNoYXJ0UG9pbnQoCi0gICAgICAgICAgICBnbG9iYWxEdW1wLCBnbG9iYWxEdW1wLnN0YXJ0LCBjdW11bGF0aXZlUHNzLCBwc3NCYXNlKSk7Ci0gICAgICAgIHBzc0Jhc2UgPSBjdW11bGF0aXZlUHNzOwotICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICAvLyBDcmVhdGUgb25lIGNvbW1vbiBheGlzIGZvciBhbGwgdXNlZCBtZW1vcnkgY2hhcnQgc2VyaWVzLgotICAgIHZhciBheGlzID0gbmV3IHRyLmMudHJhY2tzLkNoYXJ0QXhpcygwKTsKLQotICAgIC8vIEJ1aWxkIGEgY2hhcnQgc2VyaWVzIGZvciBlYWNoIGluc3RydW1lbnRlZCBwcm9jZXNzLgotICAgIHZhciBzZXJpZXMgPSBbXTsKLSAgICB0ci5iLml0ZXJJdGVtcyhwaWRUb1BvaW50cywgZnVuY3Rpb24ocGlkLCBwb2ludHMpIHsKLSAgICAgIHZhciBwcm9jZXNzID0gcGlkVG9Qcm9jZXNzW3BpZF07Ci0gICAgICB2YXIgY29sb3JJZCA9IHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKAotICAgICAgICAgIHByb2Nlc3MudXNlckZyaWVuZGx5TmFtZSk7Ci0gICAgICB2YXIgcmVuZGVyaW5nQ29uZmlnID0gewotICAgICAgICBjaGFydFR5cGU6IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZS5BUkVBLAotICAgICAgICBjb2xvcklkOiBjb2xvcklkLAotICAgICAgICBiYWNrZ3JvdW5kT3BhY2l0eTogMC44Ci0gICAgICB9OwotICAgICAgc2VyaWVzLnB1c2gobmV3IHRyLmMudHJhY2tzLkNoYXJ0U2VyaWVzKHBvaW50cywgYXhpcywgcmVuZGVyaW5nQ29uZmlnKSk7Ci0gICAgfSk7Ci0KLSAgICAvLyBTaG93IHRoZSBmaXJzdCBzZXJpZXMgKHdpdGggdGhlIHNtYWxsZXN0IGN1bXVsYXRpdmUgdmFsdWUpIGF0IHRoZSB0b3AuCi0gICAgc2VyaWVzLnJldmVyc2UoKTsKLQotICAgIHJldHVybiBzZXJpZXM7Ci0gIH0KLQotICAvKioKLSAgICogQ29udmVydCBhIGxpc3Qgb2YgcHJvY2VzcyBtZW1vcnkgZHVtcHMgdG8gYSBsaXN0IG9mIGNoYXJ0IHNlcmllcyAob25lIHBlcgotICAgKiByb290IGFsbG9jYXRvcikuIEVhY2ggc2VyaWVzIHJlcHJlc2VudHMgdGhlIGV2b2x1dGlvbiBvZiB0aGUgc2l6ZSBvZiBhIHRoZQotICAgKiBjb3JyZXNwb25kaW5nIHJvb3QgYWxsb2NhdG9yIChlLmcuICd2OCcpIG92ZXIgdGltZS4KLSAgICovCi0gIGZ1bmN0aW9uIGJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKHByb2Nlc3NNZW1vcnlEdW1wcykgewotICAgIHJldHVybiBidWlsZEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKHByb2Nlc3NNZW1vcnlEdW1wcywKLSAgICAgICAgZ2V0UHJvY2Vzc01lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyk7Ci0gIH0KLQotICAvKioKLSAgICogQ29udmVydCBhIGxpc3Qgb2YgZ2xvYmFsIG1lbW9yeSBkdW1wcyB0byBhIGxpc3Qgb2YgY2hhcnQgc2VyaWVzIChvbmUgcGVyCi0gICAqIHJvb3QgYWxsb2NhdG9yKS4gRWFjaCBzZXJpZXMgcmVwcmVzZW50cyB0aGUgZXZvbHV0aW9uIG9mIHRoZSBzaXplIG9mIGEgdGhlCi0gICAqIGNvcnJlc3BvbmRpbmcgcm9vdCBhbGxvY2F0b3IgKGUuZy4gJ3Y4Jykgb3ZlciB0aW1lLgotICAgKi8KLSAgZnVuY3Rpb24gYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyhnbG9iYWxNZW1vcnlEdW1wcykgewotICAgIHJldHVybiBidWlsZEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKGdsb2JhbE1lbW9yeUR1bXBzLAotICAgICAgICBnZXRHbG9iYWxNZW1vcnlEdW1wQWxsb2NhdG9yU2l6ZXMpOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICBidWlsZE1lbW9yeUxldHRlckRvdHM6Ci0gICAgICAgIGJ1aWxkTWVtb3J5TGV0dGVyRG90cywKLSAgICBidWlsZEdsb2JhbFVzZWRNZW1vcnlDaGFydFNlcmllczoKLSAgICAgICAgYnVpbGRHbG9iYWxVc2VkTWVtb3J5Q2hhcnRTZXJpZXMsCi0gICAgYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXM6Ci0gICAgICAgIGJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzLAotICAgIGJ1aWxkR2xvYmFsQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXM6Ci0gICAgICAgIGJ1aWxkR2xvYmFsQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWxfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja191dGlsX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFmZGQ4MS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWxfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2VsZWN0aW9uX3N0YXRlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja190ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja191dGlsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0gIHZhciBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHMgPSB0ci5jLnRyYWNrcy5jcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHM7Ci0gIHZhciBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzID0gdHIuYy50cmFja3MuY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wczsKLQotICB0ZXN0KCdidWlsZE1lbW9yeUxldHRlckRvdHNfd2l0aG91dFZNUmVnaW9ucycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyhmYWxzZSwgZmFsc2UpOwotICAgIHZhciBpdGVtcyA9IHRyLmMudHJhY2tzLmJ1aWxkTWVtb3J5TGV0dGVyRG90cyhkdW1wcyk7Ci0KLSAgICBhc3NlcnQubGVuZ3RoT2YoaXRlbXMsIDQpOwotICAgIGFzc2VydC5lcXVhbChpdGVtc1swXS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzFdLnN0YXJ0LCA1KTsKLSAgICBhc3NlcnQuZXF1YWwoaXRlbXNbMl0uc3RhcnQsIDE1KTsKLSAgICBhc3NlcnQuZXF1YWwoaXRlbXNbM10uc3RhcnQsIDE4KTsKLQotICAgIC8vIENoZWNrIG1vZGVsIG1hcHBpbmcuCi0gICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzFdLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShpdGVtc1syXS5zZWxlY3RlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzNdLm1vZGVsSXRlbSwgZHVtcHNbM10pOwotICB9KTsKLQotICB0ZXN0KCdidWlsZE1lbW9yeUxldHRlckRvdHNfd2l0aFZNUmVnaW9ucycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyhmYWxzZSwgZmFsc2UpOwotICAgIHZhciBpdGVtcyA9IHRyLmMudHJhY2tzLmJ1aWxkTWVtb3J5TGV0dGVyRG90cyhkdW1wcyk7Ci0KLSAgICBhc3NlcnQubGVuZ3RoT2YoaXRlbXMsIDQpOwotICAgIGFzc2VydC5lcXVhbChpdGVtc1swXS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzFdLnN0YXJ0LCA1KTsKLSAgICBhc3NlcnQuZXF1YWwoaXRlbXNbMl0uc3RhcnQsIDE1KTsKLSAgICBhc3NlcnQuZXF1YWwoaXRlbXNbM10uc3RhcnQsIDE4KTsKLQotICAgIC8vIENoZWNrIG1vZGVsIG1hcHBpbmcuCi0gICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzFdLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShpdGVtc1syXS5zZWxlY3RlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzNdLm1vZGVsSXRlbSwgZHVtcHNbM10pOwotICB9KTsKLQotICB0ZXN0KCdidWlsZEdsb2JhbFVzZWRNZW1vcnlDaGFydFNlcmllc193aXRob3V0Vk1SZWdpb25zJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGR1bXBzID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzKGZhbHNlLCBmYWxzZSk7Ci0gICAgdmFyIHNlcmllcyA9IHRyLmMudHJhY2tzLmJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzKGR1bXBzKTsKLQotICAgIGFzc2VydC5pc1VuZGVmaW5lZChzZXJpZXMpOwotICB9KTsKLQotICB0ZXN0KCdidWlsZEdsb2JhbFVzZWRNZW1vcnlDaGFydFNlcmllc193aXRoVk1SZWdpb25zJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGR1bXBzID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzKHRydWUsIGZhbHNlKTsKLSAgICB2YXIgc2VyaWVzID0gdHIuYy50cmFja3MuYnVpbGRHbG9iYWxVc2VkTWVtb3J5Q2hhcnRTZXJpZXMoZHVtcHMpOwotCi0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlcmllcywgMyk7Ci0KLSAgICB2YXIgc2EgPSBzZXJpZXNbMl07Ci0gICAgdmFyIHNiID0gc2VyaWVzWzFdOwotICAgIHZhciBzYyA9IHNlcmllc1swXTsKLQotICAgIGFzc2VydC5sZW5ndGhPZihzYS5wb2ludHMsIDQpOwotICAgIGFzc2VydC5sZW5ndGhPZihzYi5wb2ludHMsIDQpOwotICAgIGFzc2VydC5sZW5ndGhPZihzYy5wb2ludHMsIDQpOwotCi0gICAgLy8gUHJvY2VzcyBBOiBWTSByZWdpb25zIGRlZmluZWQgLT4gc3VtIHRoZWlyIFBTUyB2YWx1ZXMgKDExMSkuCi0gICAgLy8gUHJvY2VzcyBCOiBWTSByZWdpb25zIHVuZGVmaW5lZCBhbmQgbm8gcHJldmlvdXMgdmFsdWUgLT4gYXNzdW1lIHplcm8uCi0gICAgLy8gUHJvY2VzcyBDOiBNZW1vcnkgZHVtcCBub3QgcHJlc2VudCAtPiBhc3N1bWUgcHJvY2VzcyBub3QgYWxpdmUgKDApLgotICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMF0ueCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1swXS54LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2MucG9pbnRzWzBdLngsIDApOwotICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMF0ueSwgMTExKTsKLSAgICBhc3NlcnQuZXF1YWwoc2IucG9pbnRzWzBdLnksIDExMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1swXS55LCAxMTEpOwotICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMF0ueUJhc2UsIDApOwotICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbMF0ueUJhc2UsIDExMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1swXS55QmFzZSwgMTExKTsKLQotICAgIC8vIFByb2Nlc3MgQTogVk0gcmVnaW9ucyB1bmRlZmluZWQgLT4gYXNzdW1lIHByZXZpb3VzIHZhbHVlICgxMTEpLgotICAgIC8vIFByb2Nlc3MgQjogVk0gcmVnaW9ucyBkZWZpbmVkIC0+IHN1bSB0aGVpciBQU1MgdmFsdWVzICg1NTUpLgotICAgIC8vIFByb2Nlc3MgQzogVk0gcmVnaW9ucyB1bmRlZmluZWQgLT4gYXNzdW1lIHByZXZpb3VzIHZhbHVlICgwKS4KLSAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLngsIDUpOwotICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbMV0ueCwgNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1sxXS54LCA1KTsKLSAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLnksIDExMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1sxXS55LCAyNjEpOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbMV0ueSwgMjYxKTsKLSAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLnlCYXNlLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2IucG9pbnRzWzFdLnlCYXNlLCAxMTEpOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbMV0ueUJhc2UsIDI2MSk7Ci0KLSAgICAvLyBQcm9jZXNzIEE6IFZNIHJlZ2lvbnMgZGVmaW5lZCAtPiBzdW0gdGhlaXIgUFNTIHZhbHVlcyAoMCkuCi0gICAgLy8gUHJvY2VzcyBCOiBNZW1vcnkgZHVtcCBub3QgcHJlc2VudCAtPiBhc3N1bWUgcHJvY2VzcyBub3QgYWxpdmUgKDApLgotICAgIC8vIFByb2Nlc3MgQzogVk0gcmVnaW9ucyBkZWZpbmVkIC0+IHN1bSB0aGVpciBQU1MgdmFsdWVzICg5OTkpLgotICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMl0ueCwgMTUpOwotICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbMl0ueCwgMTUpOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbMl0ueCwgMTUpOwotICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMl0ueSwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1syXS55LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2MucG9pbnRzWzJdLnksIDIxMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNhLnBvaW50c1syXS55QmFzZSwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1syXS55QmFzZSwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1syXS55QmFzZSwgMCk7Ci0KLSAgICAvLyBBbGwgcHJvY2Vzc2VzOiBNZW1vcnkgZHVtcCBub3QgcHJlc2VudCAtPiBhc3N1bWUgcHJvY2VzcyBub3QgYWxpdmUgKDApLgotICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbM10ueCwgMTgpOwotICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbM10ueCwgMTgpOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueCwgMTgpOwotICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbM10ueSwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1szXS55LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2MucG9pbnRzWzNdLnksIDApOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueUJhc2UsIDApOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueUJhc2UsIDApOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueUJhc2UsIDApOwotCi0gICAgLy8gQ2hlY2sgbW9kZWwgbWFwcGluZy4KLSAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShzYi5wb2ludHNbMl0uc2VsZWN0ZWQpOwotICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ubW9kZWxJdGVtLCBkdW1wc1szXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2J1aWxkR2xvYmFsQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXNfd2l0aG91dE1lbW9yeUFsbG9jYXRvckR1bXBzJywKLSAgICAgIGZ1bmN0aW9uKCkgewotICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyhmYWxzZSwgZmFsc2UpOwotICAgIHZhciBzZXJpZXMgPSB0ci5jLnRyYWNrcy5idWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKGR1bXBzKTsKLQotICAgIGFzc2VydC5pc1VuZGVmaW5lZChzZXJpZXMpOwotICB9KTsKLQotICB0ZXN0KCdidWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzX3dpdGhNZW1vcnlBbGxvY2F0b3JEdW1wcycsCi0gICAgICBmdW5jdGlvbigpIHsKLSAgICB2YXIgZHVtcHMgPSBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHMoZmFsc2UsIHRydWUpOwotICAgIHZhciBzZXJpZXMgPSB0ci5jLnRyYWNrcy5idWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKGR1bXBzKTsKLQotICAgIGFzc2VydC5sZW5ndGhPZihzZXJpZXMsIDIpOwotCi0gICAgdmFyIHNvID0gc2VyaWVzWzBdOwotICAgIHZhciBzdiA9IHNlcmllc1sxXTsKLQotICAgIGFzc2VydC5sZW5ndGhPZihzby5wb2ludHMsIDQpOwotICAgIGFzc2VydC5sZW5ndGhPZihzdi5wb2ludHMsIDQpOwotCi0gICAgLy8gT2lscGFuOiBPbmx5IHByb2Nlc3MgQiBkdW1wcyBhbGxvY2F0ZWQgb2JqZWN0cyBzaXplICgxMDI0KS4KLSAgICAvLyBWODogTm8gcHJvY2VzcyBkdW1wcyBhbGxvY2F0ZWQgb2JqZWN0cyBzaXplICgwKS4KLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzBdLngsIDApOwotICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMF0ueCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1swXS55LCAxMDI0KTsKLSAgICBhc3NlcnQuZXF1YWwoc3YucG9pbnRzWzBdLnksIDApOwotCi0gICAgLy8gT2lscGFuOiBQcm9jZXNzIEIgZGlkIG5vdCBwcm92aWRlIGEgdmFsdWUgYW5kIHByb2Nlc3MgQyBkdW1wcyAoMTI4KS4KLSAgICAvLyBWODogUHJvY2Vzc2VzIEIgYW5kIEMgZHVtcCAoNTEyICsgMjU2KS4KLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzFdLngsIDUpOwotICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMV0ueCwgNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1sxXS55LCAxMjgpOwotICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMV0ueSwgNzY4KTsKLQotICAgIC8vIE9pbHBhbjogUHJvY2VzcyBCIGFzc3VtZWQgbm90IGFsaXZlIGFuZCBwcm9jZXNzIEMgZHVtcHMgKDUxMikKLSAgICAvLyBWODogUHJvY2VzcyBBIGR1bXBzIG5vdywgcHJvY2VzcyBCIGFzc3VtZWQgbm90IGFsaXZlLCBwcm9jZXNzIEMgZGlkIG5vdAotICAgIC8vIHByb3ZpZGUgYSB2YWx1ZSAoNzY4KS4KLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzJdLngsIDE1KTsKLSAgICBhc3NlcnQuZXF1YWwoc3YucG9pbnRzWzJdLngsIDE1KTsKLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzJdLnksIDUxMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHN2LnBvaW50c1syXS55LCA3NjgpOwotCi0gICAgLy8gQWxsIHByb2Nlc3NlczogTWVtb3J5IGR1bXAgbm90IHByZXNlbnQgLT4gYXNzdW1lIHByb2Nlc3Mgbm90IGFsaXZlICgwKS4KLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzNdLngsIDE4KTsKLSAgICBhc3NlcnQuZXF1YWwoc3YucG9pbnRzWzNdLngsIDE4KTsKLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzNdLnksIDApOwotICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbM10ueSwgMCk7Ci0KLSAgICAvLyBDaGVjayBtb2RlbCBtYXBwaW5nLgotICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMV0uc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEKTsKLSAgICBhc3NlcnQuaXNUcnVlKHN2LnBvaW50c1syXS5zZWxlY3RlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1szXS5tb2RlbEl0ZW0sIGR1bXBzWzNdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXNfd2l0aG91dE1lbW9yeUFsbG9jYXRvckR1bXBzJywKLSAgICAgIGZ1bmN0aW9uKCkgewotICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMoZmFsc2UsIGZhbHNlKTsKLSAgICB2YXIgc2VyaWVzID0gdHIuYy50cmFja3MuYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMoZHVtcHMpOwotCi0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHNlcmllcyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2J1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzX3dpdGhNZW1vcnlBbGxvY2F0b3JEdW1wcycsCi0gICAgICBmdW5jdGlvbigpIHsKLSAgICB2YXIgZHVtcHMgPSBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzKGZhbHNlLCB0cnVlKTsKLSAgICB2YXIgc2VyaWVzID0gdHIuYy50cmFja3MuYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMoZHVtcHMpOwotCi0gICAgLy8gVGhlcmUgc2hvdWxkIGJlIG9ubHkgMiBzZXJpZXMgKGJlY2F1c2UgJ3RyYWNpbmcnIGlzIG5vdCBzaG93biBpbiB0aGUKLSAgICAvLyBjaGFydHMpLgotICAgIGFzc2VydC5sZW5ndGhPZihzZXJpZXMsIDIpOwotCi0gICAgdmFyIHNvID0gc2VyaWVzWzBdOwotICAgIHZhciBzdiA9IHNlcmllc1sxXTsKLQotICAgIGFzc2VydC5sZW5ndGhPZihzby5wb2ludHMsIDIpOwotICAgIGFzc2VydC5sZW5ndGhPZihzdi5wb2ludHMsIDIpOwotCi0gICAgLy8gT2lscGFuOiBQcm9jZXNzIGR1bXBzICgxMjgpLgotICAgIC8vIFY4OiBQcm9jZXNzIGR1bXBzICgyNTYpLgotICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMF0ueCwgNS4xMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHN2LnBvaW50c1swXS54LCA1LjEyKTsKLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzBdLnksIDEyOCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN2LnBvaW50c1swXS55LCAyNTYpOwotCi0gICAgLy8gT2lscGFuOiBQcm9jZXNzIGR1bXBzICg1MTIpLgotICAgIC8vIFY4OiBQcm9jZXNzIGRpZCBub3QgcHJvdmlkZSBhIHZhbHVlICgwKS4KLSAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzFdLngsIDE0LjUpOwotICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMV0ueCwgMTQuNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1sxXS55LCA1MTIpOwotICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMV0ueSwgMCk7Ci0KLSAgICAvLyBDaGVjayBtb2RlbCBtYXBwaW5nLgotICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMV0uc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEKTsKLSAgICBhc3NlcnQuaXNUcnVlKHN2LnBvaW50c1swXS5zZWxlY3RlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1sxXS5tb2RlbEl0ZW0sIGR1bXBzWzFdKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tb2RlbF90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tb2RlbF90cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWIwZGM5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvbW9kZWxfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9oaWdobGlnaHRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9rZXJuZWxfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2FsZXJ0X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9nbG9iYWxfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3Byb2Nlc3NfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZHJhd19oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotCi08c3R5bGU+Ci0ubW9kZWwtdHJhY2sgewotICAtd2Via2l0LWJveC1mbGV4OiAxOwotfQotPC9zdHlsZT4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0KLSAgLy8gVE9ETyhuZHVjYSk6IE1vdmUgdGhpcyBlbHNld2hlcmUgYW5kIG1ha2UgaXQgbm9uLWhhY2t5LgotICBmdW5jdGlvbiBIYWNreU11bHRpUm93VHJhY2sodmlld3BvcnQsIG1vZGVsKSB7Ci0gICAgdmFyIG1ydCA9IG5ldyB0ci5jLnRyYWNrcy5NdWx0aVJvd1RyYWNrKHZpZXdwb3J0KTsKLSAgICBtcnQuaGVhZGluZyA9ICdJbnRlcmFjdGlvbnMnOwotICAgIG1ydC5idWlsZFN1YlJvd3NfID0gZnVuY3Rpb24oc2xpY2VzKSB7Ci0gICAgICBzbGljZXMuc29ydChmdW5jdGlvbih4LCB5KSB7Ci0gICAgICAgIHZhciByID0geC50aXRsZS5sb2NhbGVDb21wYXJlKHkudGl0bGUpOwotICAgICAgICBpZiAocikKLSAgICAgICAgICByZXR1cm4gcjsKLSAgICAgICAgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OwotICAgICAgfSk7Ci0gICAgICByZXR1cm4gdHIuYy50cmFja3MuQXN5bmNTbGljZUdyb3VwVHJhY2sucHJvdG90eXBlLmJ1aWxkU3ViUm93c18uY2FsbCgKLSAgICAgICAgICB7fSwgc2xpY2VzLCB0cnVlKTsKLSAgICB9OwotICAgIG1ydC5hZGRTdWJUcmFja18gPSBmdW5jdGlvbihzbGljZXMpIHsKLSAgICAgIHZhciB0cmFjayA9IG5ldyB0ci5jLnRyYWNrcy5TbGljZVRyYWNrKHRoaXMudmlld3BvcnQpOwotICAgICAgdHJhY2suc2xpY2VzID0gc2xpY2VzOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgICByZXR1cm4gdHJhY2s7Ci0gICAgfTsKLQotICAgIG1ydC5zZXRJdGVtc1RvR3JvdXAobW9kZWwuaW50ZXJhY3Rpb25fcmVjb3JkcywgewotICAgICAgZ3VpZDogdHIuYi5HVUlELmFsbG9jYXRlKCksCi0gICAgICBtb2RlbDogbW9kZWwsCi0gICAgICBnZXRTZXR0aW5nc0tleTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICB9Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gbXJ0OwotICB9Ci0KLSAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7Ci0gIHZhciBFdmVudFByZXNlbnRlciA9IHRyLmMuRXZlbnRQcmVzZW50ZXI7Ci0KLSAgLyoqCi0gICAqIFZpc3VhbGl6ZXMgYSBNb2RlbCBieSBidWlsZGluZyBQcm9jZXNzVHJhY2tzIGFuZCBDcHVUcmFja3MuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIE1vZGVsVHJhY2sgPSB0ci5iLnVpLmRlZmluZSgnbW9kZWwtdHJhY2snLCB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjayk7Ci0KLQotICBNb2RlbFRyYWNrLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ21vZGVsLXRyYWNrJyk7Ci0KLSAgICAgIHZhciB0eXBlSW5mb3MgPSB0ci5jLnRyYWNrcy5IaWdobGlnaHRlci5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCk7Ci0gICAgICB0aGlzLmhpZ2hsaWdodGVyc18gPSB0eXBlSW5mb3MubWFwKAotICAgICAgICBmdW5jdGlvbih0eXBlSW5mbykgewotICAgICAgICAgIHJldHVybiBuZXcgdHlwZUluZm8uY29uc3RydWN0b3Iodmlld3BvcnQpOwotICAgICAgICB9KTsKLQotICAgICAgdGhpcy51cHBlck1vZGVfID0gZmFsc2U7Ci0gICAgICB0aGlzLmFubm90YXRpb25WaWV3c18gPSBbXTsKLSAgICB9LAotCi0gICAgLy8gdXBwZXJNb2RlIGlzIHRydWUgaWYgdGhlIHRyYWNrIGlzIGJlaW5nIHVzZWQgb24gdGhlIHJ1bGVyLgotICAgIGdldCB1cHBlck1vZGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy51cHBlck1vZGVfOwotICAgIH0sCi0KLSAgICBzZXQgdXBwZXJNb2RlKHVwcGVyTW9kZSkgewotICAgICAgdGhpcy51cHBlck1vZGVfID0gdXBwZXJNb2RlOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZGV0YWNoOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKTsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsKCkgewotICAgICAgcmV0dXJuIHRoaXMubW9kZWxfOwotICAgIH0sCi0KLSAgICBzZXQgbW9kZWwobW9kZWwpIHsKLSAgICAgIHRoaXMubW9kZWxfID0gbW9kZWw7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotCi0gICAgICB0aGlzLm1vZGVsXy5hZGRFdmVudExpc3RlbmVyKCdhbm5vdGF0aW9uQ2hhbmdlJywKLSAgICAgICAgICB0aGlzLnVwZGF0ZUFubm90YXRpb25zXy5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgZ2V0IGhhc1Zpc2libGVDb250ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgIGlmICghdGhpcy5tb2RlbF8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgaWYgKHRoaXMudXBwZXJNb2RlXykKLSAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c0ZvclVwcGVyTW9kZV8oKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c0Zvckxvd2VyTW9kZV8oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNGb3JVcHBlck1vZGVfOiBmdW5jdGlvbigpIHsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNGb3JMb3dlck1vZGVfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLm1vZGVsXy5pbnRlcmFjdGlvbl9yZWNvcmRzLmxlbmd0aCkgewotICAgICAgICB2YXIgbXJ0ID0gbmV3IEhhY2t5TXVsdGlSb3dUcmFjayh0aGlzLnZpZXdwb3J0XywgdGhpcy5tb2RlbF8pOwotICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG1ydCk7Ci0gICAgICB9Ci0KLSAgICAgIGlmICh0aGlzLm1vZGVsXy5hbGVydHMubGVuZ3RoKSB7Ci0gICAgICAgIHZhciBhdCA9IG5ldyB0ci5jLnRyYWNrcy5BbGVydFRyYWNrKHRoaXMudmlld3BvcnRfKTsKLSAgICAgICAgYXQuYWxlcnRzID0gdGhpcy5tb2RlbF8uYWxlcnRzOwotICAgICAgICB0aGlzLmFwcGVuZENoaWxkKGF0KTsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMubW9kZWxfLmdsb2JhbE1lbW9yeUR1bXBzLmxlbmd0aCkgewotICAgICAgICB2YXIgZ21kdCA9IG5ldyB0ci5jLnRyYWNrcy5HbG9iYWxNZW1vcnlEdW1wVHJhY2sodGhpcy52aWV3cG9ydF8pOwotICAgICAgICBnbWR0Lm1lbW9yeUR1bXBzID0gdGhpcy5tb2RlbF8uZ2xvYmFsTWVtb3J5RHVtcHM7Ci0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoZ21kdCk7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuYXBwZW5kS2VybmVsVHJhY2tfKCk7Ci0KLSAgICAgIC8vIEdldCBhIHNvcnRlZCBsaXN0IG9mIHByb2Nlc3Nlcy4KLSAgICAgIHZhciBwcm9jZXNzZXMgPSB0aGlzLm1vZGVsXy5nZXRBbGxQcm9jZXNzZXMoKTsKLSAgICAgIHByb2Nlc3Nlcy5zb3J0KHRyLm1vZGVsLlByb2Nlc3MuY29tcGFyZSk7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvY2Vzc2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBwcm9jZXNzID0gcHJvY2Vzc2VzW2ldOwotCi0gICAgICAgIHZhciB0cmFjayA9IG5ldyB0ci5jLnRyYWNrcy5Qcm9jZXNzVHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICAgIHRyYWNrLnByb2Nlc3MgPSBwcm9jZXNzOwotICAgICAgICBpZiAoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOwotICAgICAgfQotICAgICAgdGhpcy52aWV3cG9ydF8ucmVidWlsZEV2ZW50VG9UcmFja01hcCgpOwotICAgICAgdGhpcy52aWV3cG9ydF8ucmVidWlsZENvbnRhaW5lclRvVHJhY2tNYXAoKTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmhpZ2hsaWdodGVyc18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdGhpcy5oaWdobGlnaHRlcnNfW2ldLnByb2Nlc3NNb2RlbCh0aGlzLm1vZGVsXyk7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMudXBkYXRlQW5ub3RhdGlvbnNfKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUFubm90YXRpb25zXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmFubm90YXRpb25WaWV3c18gPSBbXTsKLSAgICAgIHZhciBhbm5vdGF0aW9ucyA9IHRoaXMubW9kZWxfLmdldEFsbEFubm90YXRpb25zKCk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFubm90YXRpb25zLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHRoaXMuYW5ub3RhdGlvblZpZXdzXy5wdXNoKAotICAgICAgICAgICAgYW5ub3RhdGlvbnNbaV0uZ2V0T3JDcmVhdGVWaWV3KHRoaXMudmlld3BvcnRfKSk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7Ci0gICAgfSwKLQotICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgewotICAgICAgaWYgKCF0aGlzLm1vZGVsXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdHJhY2tzID0gdGhpcy5jaGlsZHJlbjsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJhY2tzLmxlbmd0aDsgKytpKQotICAgICAgICB0cmFja3NbaV0uYWRkRXZlbnRzVG9UcmFja01hcChldmVudFRvVHJhY2tNYXApOwotCi0gICAgICBpZiAodGhpcy5pbnN0YW50RXZlbnRzID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydF87Ci0gICAgICB0aGlzLmluc3RhbnRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldikgewotICAgICAgICBldmVudFRvVHJhY2tNYXAuYWRkRXZlbnQoZXYsIHRoaXMpOwotICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKLSAgICAgIHZhciB0cmFja3MgPSB0aGlzLmNoaWxkcmVuOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFja3MubGVuZ3RoOyArK2kpCi0gICAgICAgIHRyYWNrc1tpXS5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrTWFwKTsKLSAgICB9LAotCi0gICAgYXBwZW5kS2VybmVsVHJhY2tfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBrZXJuZWwgPSB0aGlzLm1vZGVsLmtlcm5lbDsKLSAgICAgIHZhciB0cmFjayA9IG5ldyB0ci5jLnRyYWNrcy5LZXJuZWxUcmFjayh0aGlzLnZpZXdwb3J0KTsKLSAgICAgIHRyYWNrLmtlcm5lbCA9IHRoaXMubW9kZWwua2VybmVsOwotICAgICAgaWYgKCF0cmFjay5oYXNWaXNpYmxlQ29udGVudCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgfSwKLQotICAgIGRyYXdUcmFjazogZnVuY3Rpb24odHlwZSkgewotICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOwotICAgICAgaWYgKCF0aGlzLm1vZGVsXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBjYW52YXNCb3VuZHMgPSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotCi0gICAgICBjdHguc2F2ZSgpOwotICAgICAgY3R4LnRyYW5zbGF0ZSgwLCBwaXhlbFJhdGlvICogKGJvdW5kcy50b3AgLSBjYW52YXNCb3VuZHMudG9wKSk7Ci0KLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICB2YXIgdmlld0xXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCgwKTsKLSAgICAgIHZhciB2aWV3UldvcmxkID0gZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW8pOwotCi0gICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5HUklEOgotICAgICAgICAgIHRoaXMudmlld3BvcnQuZHJhd01ham9yTWFya0xpbmVzKGN0eCk7Ci0gICAgICAgICAgLy8gVGhlIG1vZGVsIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgZHJhd3MgZ3JpZCBsaW5lcy4KLSAgICAgICAgICBjdHgucmVzdG9yZSgpOwotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLkZMT1dfQVJST1dTOgotICAgICAgICAgIGlmICh0aGlzLm1vZGVsXy5mbG93SW50ZXJ2YWxUcmVlLnNpemUgPT09IDApIHsKLSAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgdGhpcy5kcmF3Rmxvd0Fycm93c18odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7Ci0gICAgICAgICAgY3R4LnJlc3RvcmUoKTsKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5JTlNUQU5UX0VWRU5UOgotICAgICAgICAgIGlmICghdGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cyB8fAotICAgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbnN0YW50RXZlbnRzLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgdHIuYy5kcmF3SW5zdGFudFNsaWNlc0FzTGluZXMoCi0gICAgICAgICAgICAgIGN0eCwKLSAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSwKLSAgICAgICAgICAgICAgdmlld0xXb3JsZCwKLSAgICAgICAgICAgICAgdmlld1JXb3JsZCwKLSAgICAgICAgICAgICAgYm91bmRzLmhlaWdodCwKLSAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cywKLSAgICAgICAgICAgICAgNCk7Ci0KLSAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLk1BUktFUlM6Ci0gICAgICAgICAgaWYgKCF0aGlzLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuaXNFbXB0eSkgewotICAgICAgICAgICAgdGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmRyYXcoY3R4LCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKLSAgICAgICAgICAgIHRoaXMudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5kcmF3SW5kaWNhdG9ycygKLSAgICAgICAgICAgICAgICBjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOwotICAgICAgICAgIH0KLSAgICAgICAgICBjdHgucmVzdG9yZSgpOwotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLkhJR0hMSUdIVFM6Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmhpZ2hsaWdodGVyc18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0ZXJzX1tpXS5kcmF3SGlnaGxpZ2h0KGN0eCwgZHQsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsCi0gICAgICAgICAgICAgICAgYm91bmRzLmhlaWdodCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuQU5OT1RBVElPTlM6Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFubm90YXRpb25WaWV3c18ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHRoaXMuYW5ub3RhdGlvblZpZXdzX1tpXS5kcmF3KGN0eCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgY3R4LnJlc3RvcmUoKTsKLQotICAgICAgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRyYXdUcmFjay5jYWxsKHRoaXMsIHR5cGUpOwotICAgIH0sCi0KLSAgICBkcmF3Rmxvd0Fycm93c186IGZ1bmN0aW9uKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKLSAgICAgIHZhciBjdHggPSB0aGlzLmNvbnRleHQoKTsKLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICBkdC5hcHBseVRyYW5zZm9ybVRvQ2FudmFzKGN0eCk7Ci0KLSAgICAgIHZhciBwaXhXaWR0aCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTsKLQotICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYmEoMCwgMCwgMCwgMC40KSc7Ci0gICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMCwgMCwgMCwgMC40KSc7Ci0gICAgICBjdHgubGluZVdpZHRoID0gcGl4V2lkdGggPiAxLjAgPyAxIDogcGl4V2lkdGg7Ci0KLSAgICAgIHZhciBldmVudHMgPQotICAgICAgICAgIHRoaXMubW9kZWxfLmZsb3dJbnRlcnZhbFRyZWUuZmluZEludGVyc2VjdGlvbih2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKLQotICAgICAgLy8gV2hlbiBub3Qgc2hvd2luZyBmbG93IGV2ZW50cywgc2hvdyBvbmx5IGhpZ2hsaWdodGVkL3NlbGVjdGVkIG9uZXMuCi0gICAgICB2YXIgb25seUhpZ2hsaWdodGVkID0gIXRoaXMudmlld3BvcnQuc2hvd0Zsb3dFdmVudHM7Ci0gICAgICB2YXIgY2FudmFzQm91bmRzID0gY3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmIChvbmx5SGlnaGxpZ2h0ZWQgJiYKLSAgICAgICAgICAgIGV2ZW50c1tpXS5zZWxlY3Rpb25TdGF0ZSAhPT0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQgJiYKLSAgICAgICAgICAgIGV2ZW50c1tpXS5zZWxlY3Rpb25TdGF0ZSAhPT0gU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHRoaXMuZHJhd0Zsb3dBcnJvd18oY3R4LCBldmVudHNbaV0sIGNhbnZhc0JvdW5kcywgcGl4V2lkdGgpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBkcmF3Rmxvd0Fycm93XzogZnVuY3Rpb24oY3R4LCBmbG93RXZlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc0JvdW5kcywgcGl4V2lkdGgpIHsKLSAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLQotICAgICAgdmFyIHN0YXJ0VHJhY2sgPSB0aGlzLnZpZXdwb3J0LnRyYWNrRm9yRXZlbnQoZmxvd0V2ZW50LnN0YXJ0U2xpY2UpOwotICAgICAgdmFyIGVuZFRyYWNrID0gdGhpcy52aWV3cG9ydC50cmFja0ZvckV2ZW50KGZsb3dFdmVudC5lbmRTbGljZSk7Ci0KLSAgICAgIC8vIFRPRE8obmR1Y2EpOiBGaWd1cmUgb3V0IGhvdyB0byBkcmF3IGZsb3cgYXJyb3dzIGV2ZW4gd2hlbgotICAgICAgLy8gcHJvY2Vzc2VzIGFyZSBjb2xsYXBzZWQsIGJ1ZyAjOTMxLgotICAgICAgaWYgKHN0YXJ0VHJhY2sgPT09IHVuZGVmaW5lZCB8fCBlbmRUcmFjayA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBzdGFydEJvdW5kcyA9IHN0YXJ0VHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICB2YXIgZW5kQm91bmRzID0gZW5kVHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0KLSAgICAgIGlmIChmbG93RXZlbnQuc2VsZWN0aW9uU3RhdGUgPT0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQpIHsKLSAgICAgICAgY3R4LnNoYWRvd0JsdXIgPSAxOwotICAgICAgICBjdHguc2hhZG93Q29sb3IgPSAncmVkJzsKLSAgICAgICAgY3R4LnNoYWRvd09mZnNldHkgPSAyOwotICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmVkJzsKLSAgICAgIH0gZWxzZSBpZiAoZmxvd0V2ZW50LnNlbGVjdGlvblN0YXRlID09IFNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEKSB7Ci0gICAgICAgIGN0eC5zaGFkb3dCbHVyID0gMTsKLSAgICAgICAgY3R4LnNoYWRvd0NvbG9yID0gJ3JlZCc7Ci0gICAgICAgIGN0eC5zaGFkb3dPZmZzZXR5ID0gMjsKLSAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JlZCc7Ci0gICAgICB9IGVsc2UgaWYgKGZsb3dFdmVudC5zZWxlY3Rpb25TdGF0ZSA9PSBTZWxlY3Rpb25TdGF0ZS5ESU1NRUQpIHsKLSAgICAgICAgY3R4LnNoYWRvd0JsdXIgPSAwOwotICAgICAgICBjdHguc2hhZG93T2Zmc2V0WCA9IDA7Ci0gICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDAsIDAsIDAsIDAuMiknOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIGhhc0Jvb3N0ID0gZmFsc2U7Ci0gICAgICAgIHZhciBzdGFydFNsaWNlID0gZmxvd0V2ZW50LnN0YXJ0U2xpY2U7Ci0gICAgICAgIGhhc0Jvb3N0IHw9IHN0YXJ0U2xpY2Uuc2VsZWN0aW9uU3RhdGUgPT09IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOwotICAgICAgICBoYXNCb29zdCB8PSBzdGFydFNsaWNlLnNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRDsKLSAgICAgICAgdmFyIGVuZFNsaWNlID0gZmxvd0V2ZW50LmVuZFNsaWNlOwotICAgICAgICBoYXNCb29zdCB8PSBlbmRTbGljZS5zZWxlY3Rpb25TdGF0ZSA9PT0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0gICAgICAgIGhhc0Jvb3N0IHw9IGVuZFNsaWNlLnNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRDsKLSAgICAgICAgaWYgKGhhc0Jvb3N0KSB7Ci0gICAgICAgICAgY3R4LnNoYWRvd0JsdXIgPSAxOwotICAgICAgICAgIGN0eC5zaGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwgMCwgMC40KSc7Ci0gICAgICAgICAgY3R4LnNoYWRvd09mZnNldHkgPSAyOwotICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDI1NSwgMCwgMCwgMC40KSc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgY3R4LnNoYWRvd0JsdXIgPSAwOwotICAgICAgICAgIGN0eC5zaGFkb3dPZmZzZXRYID0gMDsKLSAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgwLCAwLCAwLCAwLjQpJzsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICB2YXIgc3RhcnRTaXplID0gc3RhcnRCb3VuZHMubGVmdCArIHN0YXJ0Qm91bmRzLnRvcCArCi0gICAgICAgICAgc3RhcnRCb3VuZHMuYm90dG9tICsgc3RhcnRCb3VuZHMucmlnaHQ7Ci0gICAgICB2YXIgZW5kU2l6ZSA9IGVuZEJvdW5kcy5sZWZ0ICsgZW5kQm91bmRzLnRvcCArCi0gICAgICAgICAgZW5kQm91bmRzLmJvdHRvbSArIGVuZEJvdW5kcy5yaWdodDsKLSAgICAgIC8vIE5vdGhpbmcgdG8gZG8gaWYgYm90aCBlbmRzIG9mIHRoZSB0cmFjayBhcmUgY29sbGFwc2VkLgotICAgICAgaWYgKHN0YXJ0U2l6ZSA9PT0gMCAmJiBlbmRTaXplID09PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBzdGFydFkgPSB0aGlzLmNhbGN1bGF0ZVRyYWNrWV8oc3RhcnRUcmFjaywgY2FudmFzQm91bmRzKTsKLSAgICAgIHZhciBlbmRZID0gdGhpcy5jYWxjdWxhdGVUcmFja1lfKGVuZFRyYWNrLCBjYW52YXNCb3VuZHMpOwotCi0gICAgICB2YXIgcGl4ZWxTdGFydFkgPSBwaXhlbFJhdGlvICogc3RhcnRZOwotICAgICAgdmFyIHBpeGVsRW5kWSA9IHBpeGVsUmF0aW8gKiBlbmRZOwotICAgICAgdmFyIGhhbGYgPSAoZmxvd0V2ZW50LmVuZCAtIGZsb3dFdmVudC5zdGFydCkgLyAyOwotCi0gICAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgICBjdHgubW92ZVRvKGZsb3dFdmVudC5zdGFydCwgcGl4ZWxTdGFydFkpOwotICAgICAgY3R4LmJlemllckN1cnZlVG8oCi0gICAgICAgICAgZmxvd0V2ZW50LnN0YXJ0ICsgaGFsZiwgcGl4ZWxTdGFydFksCi0gICAgICAgICAgZmxvd0V2ZW50LnN0YXJ0ICsgaGFsZiwgcGl4ZWxFbmRZLAotICAgICAgICAgIGZsb3dFdmVudC5lbmQsIHBpeGVsRW5kWSk7Ci0gICAgICBjdHguc3Ryb2tlKCk7Ci0KLSAgICAgIHZhciBhcnJvd1dpZHRoID0gNSAqIHBpeFdpZHRoICogcGl4ZWxSYXRpbzsKLSAgICAgIHZhciBkaXN0YW5jZSA9IGZsb3dFdmVudC5lbmQgLSBmbG93RXZlbnQuc3RhcnQ7Ci0gICAgICBpZiAoZGlzdGFuY2UgPD0gKDIgKiBhcnJvd1dpZHRoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdGlwWCA9IGZsb3dFdmVudC5lbmQ7Ci0gICAgICB2YXIgdGlwWSA9IHBpeGVsRW5kWTsKLSAgICAgIHZhciBhcnJvd0hlaWdodCA9IChlbmRCb3VuZHMuaGVpZ2h0IC8gNCkgKiBwaXhlbFJhdGlvOwotICAgICAgdHIuYy5kcmF3VHJpYW5nbGUoY3R4LAotICAgICAgICAgIHRpcFgsIHRpcFksCi0gICAgICAgICAgdGlwWCAtIGFycm93V2lkdGgsIHRpcFkgLSBhcnJvd0hlaWdodCwKLSAgICAgICAgICB0aXBYIC0gYXJyb3dXaWR0aCwgdGlwWSArIGFycm93SGVpZ2h0KTsKLSAgICAgIGN0eC5maWxsKCk7Ci0gICAgfSwKLQotICAgIGNhbGN1bGF0ZVRyYWNrWV86IGZ1bmN0aW9uKHRyYWNrLCBjYW52YXNCb3VuZHMpIHsKLSAgICAgIHZhciBib3VuZHMgPSB0cmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBzaXplID0gYm91bmRzLmxlZnQgKyBib3VuZHMudG9wICsgYm91bmRzLmJvdHRvbSArIGJvdW5kcy5yaWdodDsKLSAgICAgIGlmIChzaXplID09PSAwKQotICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVUcmFja1lfKHRyYWNrLnBhcmVudE5vZGUsIGNhbnZhc0JvdW5kcyk7Ci0KLSAgICAgIHJldHVybiBib3VuZHMudG9wIC0gY2FudmFzQm91bmRzLnRvcCArIChib3VuZHMuaGVpZ2h0IC8gMik7Ci0gICAgfSwKLQotICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTogZnVuY3Rpb24oCi0gICAgICAgIGxvV1gsIGhpV1gsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pIHsKLSAgICAgIGZ1bmN0aW9uIG9uUGlja0hpdChpbnN0YW50RXZlbnQpIHsKLSAgICAgICAgc2VsZWN0aW9uLnB1c2goaW5zdGFudEV2ZW50KTsKLSAgICAgIH0KLSAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cywKLSAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LnN0YXJ0OyB9LAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguZHVyYXRpb247IH0sCi0gICAgICAgICAgbG9XWCwgaGlXWCwKLSAgICAgICAgICBvblBpY2tIaXQuYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS4KLSAgICAgICAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UuCi0gICAgICAgICAgYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICB9LAotCi0gICAgYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLmFkZENsb3Nlc3RJbnN0YW50RXZlbnRUb1NlbGVjdGlvbih0aGlzLm1vZGVsXy5pbnN0YW50RXZlbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ybGRYLCB3b3JsZE1heERpc3QsIHNlbGVjdGlvbik7Ci0gICAgICB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uCi0gICAgICAgICAgYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBNb2RlbFRyYWNrOiBNb2RlbFRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tdWx0aV9yb3dfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvbXVsdGlfcm93X3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4OTdiNmIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9tdWx0aV9yb3dfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbF9zZXR0aW5ncy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYSBncm91cCBvZiBvYmplY3RzIGluIG11bHRpcGxlIHJvd3MuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7Q29udGFpbmVyVHJhY2t9Ci0gICAqLwotICB2YXIgTXVsdGlSb3dUcmFjayA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ211bHRpLXJvdy10cmFjaycsIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrKTsKLQotICBNdWx0aVJvd1RyYWNrLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgICB0aGlzLnRvb2x0aXBfID0gJyc7Ci0gICAgICB0aGlzLmhlYWRpbmdfID0gJyc7Ci0KLSAgICAgIHRoaXMuZ3JvdXBpbmdTb3VyY2VfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5pdGVtc1RvR3JvdXBfID0gdW5kZWZpbmVkOwotCi0gICAgICB0aGlzLmRlZmF1bHRUb0NvbGxhcHNlZFdoZW5TdWJSb3dDb3VudE1vcmVUaGFuID0gMTsKLQotICAgICAgdGhpcy5pdGVtc0dyb3VwZWRPbkxhc3RVcGRhdGVDb250ZW50c18gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIHRoaXMuY3VycmVudFN1YlJvd3NfID0gW107Ci0gICAgICB0aGlzLmV4cGFuZGVkXyA9IHRydWU7Ci0gICAgfSwKLQotICAgIGdldCBpdGVtc1RvR3JvdXAoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pdGVtc1RvR3JvdXBfOwotICAgIH0sCi0KLSAgICBzZXRJdGVtc1RvR3JvdXA6IGZ1bmN0aW9uKGl0ZW1zVG9Hcm91cCwgb3B0X2dyb3VwaW5nU291cmNlKSB7Ci0gICAgICB0aGlzLml0ZW1zVG9Hcm91cF8gPSBpdGVtc1RvR3JvdXA7Ci0gICAgICB0aGlzLmdyb3VwaW5nU291cmNlXyA9IG9wdF9ncm91cGluZ1NvdXJjZTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgICB0aGlzLnVwZGF0ZUV4cGFuZGVkU3RhdGVGcm9tR3JvdXBpbmdTb3VyY2VfKCk7Ci0gICAgfSwKLQotICAgIGdldCBoZWFkaW5nKCkgewotICAgICAgcmV0dXJuIHRoaXMuaGVhZGluZ187Ci0gICAgfSwKLQotICAgIHNldCBoZWFkaW5nKGgpIHsKLSAgICAgIHRoaXMuaGVhZGluZ18gPSBoOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHRvb2x0aXAoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50b29sdGlwXzsKLSAgICB9LAotCi0gICAgc2V0IHRvb2x0aXAodCkgewotICAgICAgdGhpcy50b29sdGlwXyA9IHQ7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgc3ViUm93cygpIHsKLSAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdWJSb3dzXzsKLSAgICB9LAotCi0gICAgZ2V0IGhhc1Zpc2libGVDb250ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDsKLSAgICB9LAotCi0gICAgZ2V0IGV4cGFuZGVkKCkgewotICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRfOwotICAgIH0sCi0KLSAgICBzZXQgZXhwYW5kZWQoZXhwYW5kZWQpIHsKLSAgICAgIGV4cGFuZGVkID0gZXhwYW5kZWQ7Ci0gICAgICBpZiAodGhpcy5leHBhbmRlZF8gPT0gZXhwYW5kZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuZXhwYW5kZWRfID0gZXhwYW5kZWQ7Ci0gICAgICB0aGlzLmV4cGFuZGVkU3RhdGVDaGFuZ2VkXygpOwotICAgIH0sCi0KLSAgICBvbkhlYWRpbmdDbGlja2VkXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKHRoaXMuc3ViUm93cy5sZW5ndGggPD0gMSkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkOwotCi0gICAgICBpZiAodGhpcy5ncm91cGluZ1NvdXJjZV8pIHsKLSAgICAgICAgdmFyIG1vZGVsU2V0dGluZ3MgPSBuZXcgdHIubW9kZWwuTW9kZWxTZXR0aW5ncygKLSAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdTb3VyY2VfLm1vZGVsKTsKLSAgICAgICAgbW9kZWxTZXR0aW5ncy5zZXRTZXR0aW5nRm9yKHRoaXMuZ3JvdXBpbmdTb3VyY2VfLCAnZXhwYW5kZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBhbmRlZCk7Ci0gICAgICB9Ci0KLSAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUV4cGFuZGVkU3RhdGVGcm9tR3JvdXBpbmdTb3VyY2VfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmdyb3VwaW5nU291cmNlXykgewotICAgICAgICB2YXIgbnVtU3ViUm93cyA9IHRoaXMuc3ViUm93cy5sZW5ndGg7Ci0gICAgICAgIHZhciBtb2RlbFNldHRpbmdzID0gbmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3MoCi0gICAgICAgICAgICB0aGlzLmdyb3VwaW5nU291cmNlXy5tb2RlbCk7Ci0gICAgICAgIGlmIChudW1TdWJSb3dzID4gMSkgewotICAgICAgICAgIHZhciBkZWZhdWx0RXhwYW5kZWQ7Ci0gICAgICAgICAgaWYgKG51bVN1YlJvd3MgPiB0aGlzLmRlZmF1bHRUb0NvbGxhcHNlZFdoZW5TdWJSb3dDb3VudE1vcmVUaGFuKSB7Ci0gICAgICAgICAgICBkZWZhdWx0RXhwYW5kZWQgPSBmYWxzZTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZGVmYXVsdEV4cGFuZGVkID0gdHJ1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdGhpcy5leHBhbmRlZCA9IG1vZGVsU2V0dGluZ3MuZ2V0U2V0dGluZ0ZvcigKLSAgICAgICAgICAgICAgdGhpcy5ncm91cGluZ1NvdXJjZV8sICdleHBhbmRlZCcsIGRlZmF1bHRFeHBhbmRlZCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHVuZGVmaW5lZDsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICBleHBhbmRlZFN0YXRlQ2hhbmdlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG1pbkggPSBNYXRoLm1heCgyLCBNYXRoLmNlaWwoMTggLyB0aGlzLmNoaWxkcmVuLmxlbmd0aCkpOwotICAgICAgdmFyIGggPSAodGhpcy5leHBhbmRlZF8gPyAxOCA6IG1pbkgpICsgJ3B4JzsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykKLSAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5oZWlnaHQgPSBoOwotCi0gICAgICBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKQotICAgICAgICB0aGlzLmNoaWxkcmVuWzBdLmV4cGFuZGVkID0gdGhpcy5leHBhbmRlZDsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS51cGRhdGVDb250ZW50c18uY2FsbCh0aGlzKTsKLSAgICAgIGlmICghdGhpcy5pdGVtc1RvR3JvdXBfKSB7Ci0gICAgICAgIHRoaXMudXBkYXRlSGVhZGluZ0FuZFRvb2x0aXBfKCk7Ci0gICAgICAgIHRoaXMuY3VycmVudFN1YlJvd3NfID0gW107Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMuYXJlQXJyYXlDb250ZW50c1NhbWVfKHRoaXMuaXRlbXNHcm91cGVkT25MYXN0VXBkYXRlQ29udGVudHNfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNUb0dyb3VwXykpIHsKLSAgICAgICAgdGhpcy51cGRhdGVIZWFkaW5nQW5kVG9vbHRpcF8oKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0aGlzLml0ZW1zR3JvdXBlZE9uTGFzdFVwZGF0ZUNvbnRlbnRzXyA9IHRoaXMuaXRlbXNUb0dyb3VwXzsKLQotICAgICAgdGhpcy5kZXRhY2goKTsKLSAgICAgIGlmICghdGhpcy5pdGVtc1RvR3JvdXBfLmxlbmd0aCkgewotICAgICAgICB0aGlzLmN1cnJlbnRTdWJSb3dzXyA9IFtdOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICB2YXIgc3ViUm93cyA9IHRoaXMuYnVpbGRTdWJSb3dzXyh0aGlzLml0ZW1zVG9Hcm91cF8pOwotICAgICAgdGhpcy5jdXJyZW50U3ViUm93c18gPSBzdWJSb3dzOwotICAgICAgZm9yICh2YXIgc3JJID0gMDsgc3JJIDwgc3ViUm93cy5sZW5ndGg7IHNySSsrKSB7Ci0gICAgICAgIHZhciBzdWJSb3cgPSBzdWJSb3dzW3NySV07Ci0gICAgICAgIGlmICghc3ViUm93Lmxlbmd0aCkKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgdmFyIHRyYWNrID0gdGhpcy5hZGRTdWJUcmFja18oc3ViUm93KTsKLSAgICAgICAgdHJhY2suYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnaGVhZGluZy1jbGlja2VkJywgdGhpcy5vbkhlYWRpbmdDbGlja2VkXy5iaW5kKHRoaXMpKTsKLSAgICAgIH0KLSAgICAgIHRoaXMudXBkYXRlSGVhZGluZ0FuZFRvb2x0aXBfKCk7Ci0gICAgICB0aGlzLmV4cGFuZGVkU3RhdGVDaGFuZ2VkXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVIZWFkaW5nQW5kVG9vbHRpcF86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmZpcnN0Q2hpbGQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuZmlyc3RDaGlsZC5oZWFkaW5nID0gdGhpcy5oZWFkaW5nXzsKLSAgICAgIHRoaXMuZmlyc3RDaGlsZC50b29sdGlwID0gdGhpcy50b29sdGlwXzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQnJlYWtzIHVwIHRoZSBsaXN0IG9mIHNsaWNlcyBpbnRvIE4gcm93cywgZWFjaCBvZiB3aGljaCBpcyBhIGxpc3Qgb2YKLSAgICAgKiBzbGljZXMgdGhhdCBhcmUgbm9uIG92ZXJsYXBwaW5nLgotICAgICAqLwotICAgIGJ1aWxkU3ViUm93c186IGZ1bmN0aW9uKGl0ZW1zVG9Hcm91cCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgYWRkU3ViVHJhY2tfOiBmdW5jdGlvbihzdWJSb3dJdGVtcykgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgYXJlQXJyYXlDb250ZW50c1NhbWVfOiBmdW5jdGlvbihhLCBiKSB7Ci0gICAgICBpZiAoIWEgfHwgIWIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGlmICghYS5sZW5ndGggfHwgIWIubGVuZ3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAoYS5sZW5ndGggIT0gYi5sZW5ndGgpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoYVtpXSAhPSBiW2ldKQotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIE11bHRpUm93VHJhY2s6IE11bHRpUm93VHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL29iamVjdF9pbnN0YW5jZV9ncm91cF90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfZ3JvdXBfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU4N2FlNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL29iamVjdF9pbnN0YW5jZV9ncm91cF90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3RfaW5zdGFuY2Vfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvbXVsdGlfcm93X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYSBPYmplY3RJbnN0YW5jZUdyb3VwLgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge0NvbnRhaW5lclRyYWNrfQotICAgKi8KLSAgdmFyIE9iamVjdEluc3RhbmNlR3JvdXBUcmFjayA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ29iamVjdC1pbnN0YW5jZS1ncm91cC10cmFjaycsIHRyLmMudHJhY2tzLk11bHRpUm93VHJhY2spOwotCi0gIE9iamVjdEluc3RhbmNlR3JvdXBUcmFjay5wcm90b3R5cGUgPSB7Ci0KLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnb2JqZWN0LWluc3RhbmNlLWdyb3VwLXRyYWNrJyk7Ci0gICAgICB0aGlzLm9iamVjdEluc3RhbmNlc18gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBvYmplY3RJbnN0YW5jZXMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pdGVtc1RvR3JvdXA7Ci0gICAgfSwKLQotICAgIHNldCBvYmplY3RJbnN0YW5jZXMob2JqZWN0SW5zdGFuY2VzKSB7Ci0gICAgICB0aGlzLnNldEl0ZW1zVG9Hcm91cChvYmplY3RJbnN0YW5jZXMpOwotICAgIH0sCi0KLSAgICBhZGRTdWJUcmFja186IGZ1bmN0aW9uKG9iamVjdEluc3RhbmNlcykgewotICAgICAgdmFyIGhhc011bHRpcGxlUm93cyA9IHRoaXMuc3ViUm93cy5sZW5ndGggPiAxOwotICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICB0cmFjay5vYmplY3RJbnN0YW5jZXMgPSBvYmplY3RJbnN0YW5jZXM7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICAgIHJldHVybiB0cmFjazsKLSAgICB9LAotCi0gICAgYnVpbGRTdWJSb3dzXzogZnVuY3Rpb24ob2JqZWN0SW5zdGFuY2VzKSB7Ci0gICAgICBvYmplY3RJbnN0YW5jZXMuc29ydChmdW5jdGlvbih4LCB5KSB7Ci0gICAgICAgIHJldHVybiB4LmNyZWF0aW9uVHMgLSB5LmNyZWF0aW9uVHM7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIHN1YlJvd3MgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0SW5zdGFuY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBvYmplY3RJbnN0YW5jZSA9IG9iamVjdEluc3RhbmNlc1tpXTsKLQotICAgICAgICB2YXIgZm91bmQgPSBmYWxzZTsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdWJSb3dzLmxlbmd0aDsgaisrKSB7Ci0gICAgICAgICAgdmFyIHN1YlJvdyA9IHN1YlJvd3Nbal07Ci0gICAgICAgICAgdmFyIGxhc3RJdGVtSW5TdWJSb3cgPSBzdWJSb3dbc3ViUm93Lmxlbmd0aCAtIDFdOwotICAgICAgICAgIGlmIChvYmplY3RJbnN0YW5jZS5jcmVhdGlvblRzID49IGxhc3RJdGVtSW5TdWJSb3cuZGVsZXRpb25UcykgewotICAgICAgICAgICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgc3ViUm93LnB1c2gob2JqZWN0SW5zdGFuY2UpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmICghZm91bmQpIHsKLSAgICAgICAgICB2YXIgc3ViUm93ID0gW29iamVjdEluc3RhbmNlXTsKLSAgICAgICAgICBzdWJSb3dzLnB1c2goc3ViUm93KTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIHN1YlJvd3M7Ci0gICAgfSwKLSAgICB1cGRhdGVIZWFkaW5nQW5kVG9vbHRpcF86IGZ1bmN0aW9uKCkgewotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIE9iamVjdEluc3RhbmNlR3JvdXBUcmFjazogT2JqZWN0SW5zdGFuY2VHcm91cFRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2MzZhMDAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmNzcyI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2V2ZW50X3ByZXNlbnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotCi0gIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOwotICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB0ci5jLkV2ZW50UHJlc2VudGVyOwotCi0gIC8qKgotICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYW4gYXJyYXkgb2YgU2xpY2Ugb2JqZWN0cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtIZWFkaW5nVHJhY2t9Ci0gICAqLwotCi0gIHZhciBPYmplY3RJbnN0YW5jZVRyYWNrID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAnb2JqZWN0LWluc3RhbmNlLXRyYWNrJywgdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrKTsKLQotICBPYmplY3RJbnN0YW5jZVRyYWNrLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLkhlYWRpbmdUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ29iamVjdC1pbnN0YW5jZS10cmFjaycpOwotICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZXNfID0gW107Ci0gICAgICB0aGlzLm9iamVjdFNuYXBzaG90c18gPSBbXTsKLSAgICB9LAotCi0gICAgZ2V0IG9iamVjdEluc3RhbmNlcygpIHsKLSAgICAgIHJldHVybiB0aGlzLm9iamVjdEluc3RhbmNlc187Ci0gICAgfSwKLQotICAgIHNldCBvYmplY3RJbnN0YW5jZXMob2JqZWN0SW5zdGFuY2VzKSB7Ci0gICAgICBpZiAoIW9iamVjdEluc3RhbmNlcyB8fCBvYmplY3RJbnN0YW5jZXMubGVuZ3RoID09IDApIHsKLSAgICAgICAgdGhpcy5oZWFkaW5nID0gJyc7Ci0gICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VzXyA9IFtdOwotICAgICAgICB0aGlzLm9iamVjdFNuYXBzaG90c18gPSBbXTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgdGhpcy5oZWFkaW5nID0gb2JqZWN0SW5zdGFuY2VzWzBdLnR5cGVOYW1lOwotICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZXNfID0gb2JqZWN0SW5zdGFuY2VzOwotICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdHNfID0gW107Ci0gICAgICB0aGlzLm9iamVjdEluc3RhbmNlc18uZm9yRWFjaChmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgICB0aGlzLm9iamVjdFNuYXBzaG90c18ucHVzaC5hcHBseSgKLSAgICAgICAgICAgIHRoaXMub2JqZWN0U25hcHNob3RzXywgaW5zdGFuY2Uuc25hcHNob3RzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdHNfLnNvcnQoZnVuY3Rpb24oYSwgYikgewotICAgICAgICByZXR1cm4gYS50cyAtIGIudHM7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgZ2V0IGhlaWdodCgpIHsKLSAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7Ci0gICAgfSwKLQotICAgIHNldCBoZWlnaHQoaGVpZ2h0KSB7Ci0gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IGhlaWdodDsKLSAgICB9LAotCi0gICAgZ2V0IHNuYXBzaG90UmFkaXVzVmlldygpIHsKLSAgICAgIHJldHVybiA3ICogKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpOwotICAgIH0sCi0KLSAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7Ci0gICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSB0ci5jLnRyYWNrcy5EcmF3VHlwZS5HRU5FUkFMX0VWRU5UOgotICAgICAgICAgIHRoaXMuZHJhd0xldHRlckRvdHNfKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0sCi0KLSAgICBkcmF3TGV0dGVyRG90c186IGZ1bmN0aW9uKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKLSAgICAgIHZhciBjdHggPSB0aGlzLmNvbnRleHQoKTsKLSAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLQotICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICB2YXIgaGVpZ2h0ID0gYm91bmRzLmhlaWdodCAqIHBpeGVsUmF0aW87Ci0gICAgICB2YXIgaGFsZkhlaWdodCA9IGhlaWdodCAqIDAuNTsKLSAgICAgIHZhciB0d29QaSA9IE1hdGguUEkgKiAyOwotCi0gICAgICAvLyBDdWxsaW5nIHBhcmFtZXRlcnMuCi0gICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOwotICAgICAgdmFyIHNuYXBzaG90UmFkaXVzVmlldyA9IHRoaXMuc25hcHNob3RSYWRpdXNWaWV3OwotICAgICAgdmFyIHNuYXBzaG90UmFkaXVzV29ybGQgPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoaGVpZ2h0KTsKLSAgICAgIHZhciBsb0k7Ci0KLSAgICAgIC8vIEJlZ2luIHJlbmRlcmluZyBpbiB3b3JsZCBzcGFjZS4KLSAgICAgIGN0eC5zYXZlKCk7Ci0gICAgICBkdC5hcHBseVRyYW5zZm9ybVRvQ2FudmFzKGN0eCk7Ci0KLSAgICAgIC8vIEluc3RhbmNlcwotICAgICAgdmFyIG9iamVjdEluc3RhbmNlcyA9IHRoaXMub2JqZWN0SW5zdGFuY2VzXzsKLSAgICAgIHZhciBsb0kgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgb2JqZWN0SW5zdGFuY2VzLAotICAgICAgICAgIGZ1bmN0aW9uKGluc3RhbmNlKSB7Ci0gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UuZGVsZXRpb25UczsKLSAgICAgICAgICB9LAotICAgICAgICAgIHZpZXdMV29ybGQpOwotICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigwLDAsMCknOwotICAgICAgZm9yICh2YXIgaSA9IGxvSTsgaSA8IG9iamVjdEluc3RhbmNlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgaW5zdGFuY2UgPSBvYmplY3RJbnN0YW5jZXNbaV07Ci0gICAgICAgIHZhciB4ID0gaW5zdGFuY2UuY3JlYXRpb25UczsKLSAgICAgICAgaWYgKHggPiB2aWV3UldvcmxkKQotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIHZhciByaWdodCA9IGluc3RhbmNlLmRlbGV0aW9uVHMgPT0gTnVtYmVyLk1BWF9WQUxVRSA/Ci0gICAgICAgICAgICB2aWV3UldvcmxkIDogaW5zdGFuY2UuZGVsZXRpb25UczsKLSAgICAgICAgY3R4LmZpbGxTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldE9iamVjdEluc3RhbmNlQ29sb3IoaW5zdGFuY2UpOwotICAgICAgICBjdHguZmlsbFJlY3QoeCwgcGl4ZWxSYXRpbywgcmlnaHQgLSB4LCBoZWlnaHQgLSAyICogcGl4ZWxSYXRpbyk7Ci0gICAgICB9Ci0gICAgICBjdHgucmVzdG9yZSgpOwotCi0gICAgICAvLyBTbmFwc2hvdHMuIEhhcyB0byBydW4gaW4gd29ybGRzcGFjZSBiZWNhdXNlIGN0eC5hcmMgZ2V0cyB0cmFuc2Zvcm1lZC4KLSAgICAgIHZhciBvYmplY3RTbmFwc2hvdHMgPSB0aGlzLm9iamVjdFNuYXBzaG90c187Ci0gICAgICBsb0kgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgb2JqZWN0U25hcHNob3RzLAotICAgICAgICAgIGZ1bmN0aW9uKHNuYXBzaG90KSB7Ci0gICAgICAgICAgICByZXR1cm4gc25hcHNob3QudHMgKyBzbmFwc2hvdFJhZGl1c1dvcmxkOwotICAgICAgICAgIH0sCi0gICAgICAgICAgdmlld0xXb3JsZCk7Ci0gICAgICBmb3IgKHZhciBpID0gbG9JOyBpIDwgb2JqZWN0U25hcHNob3RzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBzbmFwc2hvdCA9IG9iamVjdFNuYXBzaG90c1tpXTsKLSAgICAgICAgdmFyIHggPSBzbmFwc2hvdC50czsKLSAgICAgICAgaWYgKHggLSBzbmFwc2hvdFJhZGl1c1dvcmxkID4gdmlld1JXb3JsZCkKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgdmFyIHhWaWV3ID0gZHQueFdvcmxkVG9WaWV3KHgpOwotCi0gICAgICAgIGN0eC5maWxsU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRPYmplY3RTbmFwc2hvdENvbG9yKHNuYXBzaG90KTsKLSAgICAgICAgY3R4LmJlZ2luUGF0aCgpOwotICAgICAgICBjdHguYXJjKHhWaWV3LCBoYWxmSGVpZ2h0LCBzbmFwc2hvdFJhZGl1c1ZpZXcsIDAsIHR3b1BpKTsKLSAgICAgICAgY3R4LmZpbGwoKTsKLSAgICAgICAgaWYgKHNuYXBzaG90LnNlbGVjdGVkKSB7Ci0gICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDU7Ci0gICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigxMDAsMTAwLDApJzsKLSAgICAgICAgICBjdHguc3Ryb2tlKCk7Ci0KLSAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7Ci0gICAgICAgICAgY3R4LmFyYyh4VmlldywgaGFsZkhlaWdodCwgc25hcHNob3RSYWRpdXNWaWV3IC0gMSwgMCwgdHdvUGkpOwotICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAyOwotICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMjU1LDI1NSwwKSc7Ci0gICAgICAgICAgY3R4LnN0cm9rZSgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAxOwotICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMCwwLDApJzsKLSAgICAgICAgICBjdHguc3Ryb2tlKCk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGN0eC5saW5lV2lkdGggPSAxOwotCi0gICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucyB3ZSBvbmx5IGNoZWNrIHRoZSBTZWxlY3Rpb25TdGF0ZSBvZiB0aGUgZmlyc3QKLSAgICAgIC8vIGluc3RhbmNlLiBJZiBpdCdzIERJTU1FRCB3ZSBhc3N1bWUgdGhhdCBhbGwgYXJlIERJTU1FRC4KLSAgICAgIC8vIFRPRE8oZWdyYWV0aGVyKTogQWxsb3cgcGFydGlhbCBoaWdobGlnaHQuCi0gICAgICB2YXIgc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5OT05FOwotICAgICAgaWYgKG9iamVjdEluc3RhbmNlcy5sZW5ndGggJiYKLSAgICAgICAgICBvYmplY3RJbnN0YW5jZXNbMF0uc2VsZWN0aW9uU3RhdGUgPT09IFNlbGVjdGlvblN0YXRlLkRJTU1FRCkgewotICAgICAgICBzZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkRJTU1FRDsKLSAgICAgIH0KLQotICAgICAgLy8gRGltIHRoZSB0cmFjayB3aGVuIHRoZXJlIGlzIGFuIGFjdGl2ZSBoaWdobGlnaHQuCi0gICAgICBpZiAoc2VsZWN0aW9uU3RhdGUgPT09IFNlbGVjdGlvblN0YXRlLkRJTU1FRCkgewotICAgICAgICB2YXIgd2lkdGggPSBib3VuZHMud2lkdGggKiBwaXhlbFJhdGlvOwotICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMjU1LDI1NSwyNTUsMC41KSc7Ci0gICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgY3R4LnJlc3RvcmUoKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7Ci0gICAgICBpZiAodGhpcy5vYmplY3RJbnN0YW5jZV8gIT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLm9iamVjdEluc3RhbmNlXy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikgewotICAgICAgICAgIGV2ZW50VG9UcmFja01hcC5hZGRFdmVudChvYmosIHRoaXMpOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMub2JqZWN0U25hcHNob3RzXyAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHRoaXMub2JqZWN0U25hcHNob3RzXy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikgewotICAgICAgICAgIGV2ZW50VG9UcmFja01hcC5hZGRFdmVudChvYmosIHRoaXMpOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlOiBmdW5jdGlvbigKLSAgICAgICAgbG9XWCwgaGlXWCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbikgewotICAgICAgLy8gUGljayBzbmFwc2hvdHMgZmlyc3QuCi0gICAgICB2YXIgZm91bmRTbmFwc2hvdCA9IGZhbHNlOwotICAgICAgZnVuY3Rpb24gb25TbmFwc2hvdChzbmFwc2hvdCkgewotICAgICAgICBzZWxlY3Rpb24ucHVzaChzbmFwc2hvdCk7Ci0gICAgICAgIGZvdW5kU25hcHNob3QgPSB0cnVlOwotICAgICAgfQotICAgICAgdmFyIHNuYXBzaG90UmFkaXVzVmlldyA9IHRoaXMuc25hcHNob3RSYWRpdXNWaWV3OwotICAgICAgdmFyIHNuYXBzaG90UmFkaXVzV29ybGQgPSB2aWV3UGl4V2lkdGhXb3JsZCAqIHNuYXBzaG90UmFkaXVzVmlldzsKLSAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMoCi0gICAgICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdHNfLAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHgudHMgLSBzbmFwc2hvdFJhZGl1c1dvcmxkOyB9LAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIDIgKiBzbmFwc2hvdFJhZGl1c1dvcmxkOyB9LAotICAgICAgICAgIGxvV1gsIGhpV1gsCi0gICAgICAgICAgb25TbmFwc2hvdCk7Ci0gICAgICBpZiAoZm91bmRTbmFwc2hvdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBUcnkgcGlja2luZyBpbnN0YW5jZXMuCi0gICAgICB0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKAotICAgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VzXywKLSAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LmNyZWF0aW9uVHM7IH0sCi0gICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5kZWxldGlvblRzIC0geC5jcmVhdGlvblRzOyB9LAotICAgICAgICAgIGxvV1gsIGhpV1gsCi0gICAgICAgICAgc2VsZWN0aW9uLnB1c2guYmluZChzZWxlY3Rpb24pKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQWRkIHRoZSBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBwcm92aWRlZCBldmVudCwgaWYgYW55LCB0byB0aGUKLSAgICAgKiBzZWxlY3Rpb24uCi0gICAgICogQHBhcmFtIHtldmVudH0gVGhlIGN1cnJlbnQgZXZlbnQgaXRlbS4KLSAgICAgKiBAcGFyYW0ge051bWJlcn0gb2Zmc2V0IE51bWJlciBvZiBzbGljZXMgYXdheSBmcm9tIHRoZSBldmVudCB0byBsb29rLgotICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gVGhlIHNlbGVjdGlvbiB0byBhZGQgYW4gZXZlbnQgdG8sCi0gICAgICogaWYgZm91bmQuCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciBhbiBldmVudCB3YXMgZm91bmQuCi0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICBhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24oZXZlbnQsIG9mZnNldCwgc2VsZWN0aW9uKSB7Ci0gICAgICB2YXIgZXZlbnRzOwotICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpCi0gICAgICAgIGV2ZW50cyA9IHRoaXMub2JqZWN0U25hcHNob3RzXzsKLSAgICAgIGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UpCi0gICAgICAgIGV2ZW50cyA9IHRoaXMub2JqZWN0SW5zdGFuY2VzXzsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgZXZlbnQnKTsKLQotICAgICAgdmFyIGluZGV4ID0gZXZlbnRzLmluZGV4T2YoZXZlbnQpOwotICAgICAgdmFyIG5ld0luZGV4ID0gaW5kZXggKyBvZmZzZXQ7Ci0gICAgICBpZiAobmV3SW5kZXggPj0gMCAmJiBuZXdJbmRleCA8IGV2ZW50cy5sZW5ndGgpIHsKLSAgICAgICAgc2VsZWN0aW9uLnB1c2goZXZlbnRzW25ld0luZGV4XSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgICAgfQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgewotICAgIH0sCi0KLSAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24od29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24pIHsKLSAgICAgIHZhciBzbmFwc2hvdCA9IHRyLmIuZmluZENsb3Nlc3RFbGVtZW50SW5Tb3J0ZWRBcnJheSgKLSAgICAgICAgICB0aGlzLm9iamVjdFNuYXBzaG90c18sCi0gICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC50czsgfSwKLSAgICAgICAgICB3b3JsZFgsCi0gICAgICAgICAgd29ybGRNYXhEaXN0KTsKLQotICAgICAgaWYgKCFzbmFwc2hvdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBzZWxlY3Rpb24ucHVzaChzbmFwc2hvdCk7Ci0KLSAgICAgIC8vIFRPRE8oZWdyYWV0aGVyKTogU2VhcmNoIGZvciBvYmplY3QgaW5zdGFuY2VzIGFzIHdlbGwsIHdoaWNoIHdhcyBub3QKLSAgICAgIC8vIGltcGxlbWVudGVkIGJlY2F1c2UgaXQgbWFrZXMgbGl0dGxlIHNlbnNlIHdpdGggdGhlIGN1cnJlbnQgdmlzdWFsIGFuZAotICAgICAgLy8gbmVlZHMgdG8gdGFrZSBjYXJlIG9mIG92ZXJsYXBwaW5nIGludGVydmFscy4KLSAgICB9Ci0gIH07Ci0KLQotICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucygKLSAgICAgIHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KE9iamVjdEluc3RhbmNlVHJhY2ssIG9wdGlvbnMpOwotCi0gIHJldHVybiB7Ci0gICAgT2JqZWN0SW5zdGFuY2VUcmFjazogT2JqZWN0SW5zdGFuY2VUcmFjawotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU0Njc0OC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFja190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvb2JqZWN0X2NvbGxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gIHZhciBTZWxlY3Rpb24gPSB0ci5jLlNlbGVjdGlvbjsKLSAgdmFyIE9iamVjdEluc3RhbmNlVHJhY2sgPSB0ci5jLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrOwotICB2YXIgVmlld3BvcnQgPSB0ci5jLlRpbWVsaW5lVmlld3BvcnQ7Ci0KLSAgdmFyIGNyZWF0ZU9iamVjdHMgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgb2JqZWN0cyA9IG5ldyB0ci5tb2RlbC5PYmplY3RDb2xsZWN0aW9uKHt9KTsKLSAgICBvYmplY3RzLmlkV2FzQ3JlYXRlZCgnMHgxMDAwJywgJ3RyLmUuY2MnLCAnRnJhbWUnLCAxMCk7Ci0gICAgb2JqZWN0cy5hZGRTbmFwc2hvdCgnMHgxMDAwJywgJ3RyLmUuY2MnLCAnRnJhbWUnLCAxMCwgJ3NuYXBzaG90LTEnKTsKLSAgICBvYmplY3RzLmFkZFNuYXBzaG90KCcweDEwMDAnLCAndHIuZS5jYycsICdGcmFtZScsIDI1LCAnc25hcHNob3QtMicpOwotICAgIG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0ZyYW1lJywgNDAsICdzbmFwc2hvdC0zJyk7Ci0gICAgb2JqZWN0cy5pZFdhc0RlbGV0ZWQoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0ZyYW1lJywgNDUpOwotCi0gICAgb2JqZWN0cy5pZFdhc0NyZWF0ZWQoJzB4MTAwMScsICdza2lhJywgJ1BpY3R1cmUnLCAyMCk7Ci0gICAgb2JqZWN0cy5hZGRTbmFwc2hvdCgnMHgxMDAxJywgJ3NraWEnLCAnUGljdHVyZScsIDIwLCAnc25hcHNob3QtMScpOwotICAgIG9iamVjdHMuaWRXYXNEZWxldGVkKCcweDEwMDEnLCAnc2tpYScsICdQaWN0dXJlJywgMjUpOwotICAgIHJldHVybiBvYmplY3RzOwotICB9OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG9iamVjdHMgPSBjcmVhdGVPYmplY3RzKCk7Ci0gICAgdmFyIGZyYW1lcyA9IG9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzQnlUeXBlTmFtZSgpWydGcmFtZSddOwotICAgIGZyYW1lc1swXS5zbmFwc2hvdHNbMV0uc2VsZWN0aW9uU3RhdGUgPQotICAgICAgICB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKLQotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOwotICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKLQotICAgIHZhciB0cmFjayA9IE9iamVjdEluc3RhbmNlVHJhY2sodmlld3BvcnQpOwotICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7Ci0KLSAgICB0cmFjay5oZWFkaW5nID0gJ3Rlc3RCYXNpYyc7Ci0gICAgdHJhY2sub2JqZWN0SW5zdGFuY2VzID0gZnJhbWVzOwotICAgIHZhciBkdCA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA1MCwgdHJhY2suY2xpZW50V2lkdGgpOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdGlvbkhpdFRlc3RpbmdXaXRoVGhyZWFkVHJhY2snLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb2JqZWN0cyA9IGNyZWF0ZU9iamVjdHMoKTsKLSAgICB2YXIgZnJhbWVzID0gb2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lKClbJ0ZyYW1lJ107Ci0KLSAgICB2YXIgdHJhY2sgPSBPYmplY3RJbnN0YW5jZVRyYWNrKG5ldyBWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5vYmplY3RJbnN0YW5jZXMgPSBmcmFtZXM7Ci0KLSAgICAvLyBIaXQgb3V0c2lkZSByYW5nZQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAotICAgICAgICA4LCA4LjEsIDAuMSwgc2VsZWN0aW9uKTsKLSAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMCk7Ci0KLSAgICAvLyBIaXQgdGhlIGZpcnN0IHNuYXBzaG90LCB2aWEgcGl4ZWwtbmVhcm5lc3MuCi0gICAgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHRyYWNrLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKLSAgICAgICAgOS45OCwgOS45OSwgMC4xLCBzZWxlY3Rpb24pOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuaW5zdGFuY2VPZihzZWxlY3Rpb25bMF0sIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KTsKLQotICAgIC8vIEhpdCB0aGUgaW5zdGFuY2UsIGJldHdlZW4gdGhlIDFzdCBhbmQgMm5kIHNuYXBzaG90cwotICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCi0gICAgICAgIDIwLCAyMC4xLCAwLjEsIHNlbGVjdGlvbik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKHNlbGVjdGlvblswXSwgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UpOwotICB9KTsKLQotICB0ZXN0KCdhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBvYmplY3RzID0gY3JlYXRlT2JqZWN0cygpOwotICAgIHZhciBmcmFtZXMgPSBvYmplY3RzLmdldEFsbEluc3RhbmNlc0J5VHlwZU5hbWUoKVsnRnJhbWUnXTsKLQotICAgIHZhciB0cmFjayA9IE9iamVjdEluc3RhbmNlVHJhY2sobmV3IFZpZXdwb3J0KCkpOwotICAgIHRyYWNrLm9iamVjdEluc3RhbmNlcyA9IGZyYW1lczsKLQotICAgIHZhciBpbnN0YW5jZSA9IG5ldyB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSgKLSAgICAgICAge30sICcweDEwMDAnLCAnY2F0JywgJ24nLCAxMCk7Ci0KLSAgICBhc3NlcnQuZG9lc05vdFRocm93KGZ1bmN0aW9uKCkgewotICAgICAgdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oaW5zdGFuY2UsIDAsIHVuZGVmaW5lZCk7Ci0gICAgfSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX21lbW9yeV9kdW1wX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM4ZDE5Yy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotCi0gIHZhciBBTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCA9IDUwOwotCi0gIC8qKgotICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYW4gYXJyYXkgb2YgUHJvY2Vzc01lbW9yeUR1bXAgb2JqZWN0cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtDb250YWluZXJUcmFja30KLSAgICovCi0gIHZhciBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAncHJvY2Vzcy1tZW1vcnktZHVtcC10cmFjaycsIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrKTsKLQotICBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgICAgdGhpcy5tZW1vcnlEdW1wc18gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBtZW1vcnlEdW1wcygpIHsKLSAgICAgIHJldHVybiB0aGlzLm1lbW9yeUR1bXBzXzsKLSAgICB9LAotCi0gICAgc2V0IG1lbW9yeUR1bXBzKG1lbW9yeUR1bXBzKSB7Ci0gICAgICB0aGlzLm1lbW9yeUR1bXBzXyA9IG1lbW9yeUR1bXBzOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKSB7Ci0gICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQodHJhY2spOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIC8vIFNob3cgbm8gdHJhY2tzIGlmIHRoZXJlIGFyZSBubyBkdW1wcy4KLSAgICAgIGlmICghdGhpcy5tZW1vcnlEdW1wc18gfHwgIXRoaXMubWVtb3J5RHVtcHNfLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmFwcGVuZEFsbG9jYXRlZE1lbW9yeVRyYWNrXygpOwotICAgIH0sCi0KLSAgICBhcHBlbmRBbGxvY2F0ZWRNZW1vcnlUcmFja186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlcmllcyA9IHRyLmMudHJhY2tzLmJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKAotICAgICAgICAgIHRoaXMubWVtb3J5RHVtcHNfKTsKLSAgICAgIGlmICghc2VyaWVzKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciB0cmFjayA9IG5ldyB0ci5jLnRyYWNrcy5DaGFydFRyYWNrKHRoaXMudmlld3BvcnQpOwotICAgICAgdHJhY2suaGVhZGluZyA9ICdBbGxvY2F0ZWQgbWVtb3J5IChwZXIgYWxsb2NhdG9yKSc7Ci0gICAgICB0cmFjay5oZWlnaHQgPSBBTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCArICdweCc7Ci0gICAgICB0cmFjay5zZXJpZXMgPSBzZXJpZXM7Ci0gICAgICB0cmFjay5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OiB0cnVlfSk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrOiBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX21lbW9yeV9kdW1wX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcHJvY2Vzc19tZW1vcnlfZHVtcF90cmFja190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiMWExMjEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX21lbW9yeV9kdW1wX3RyYWNrX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3Rlc3RfdXRpbHMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgVmlld3BvcnQgPSB0ci5jLlRpbWVsaW5lVmlld3BvcnQ7Ci0gIHZhciBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrID0gdHIuYy50cmFja3MuUHJvY2Vzc01lbW9yeUR1bXBUcmFjazsKLSAgdmFyIGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMgPSB0ci5jLnRyYWNrcy5jcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzOwotCi0gIGZ1bmN0aW9uIGluc3RhbnRpYXRlVHJhY2sod2l0aFZNUmVnaW9ucywgd2l0aEFsbG9jYXRvckR1bXBzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkVHJhY2tDb3VudCkgewotICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMod2l0aFZNUmVnaW9ucywgd2l0aEFsbG9jYXRvckR1bXBzKTsKLQotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKLSAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci5jLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7Ci0KLSAgICB2YXIgdHJhY2sgPSBuZXcgUHJvY2Vzc01lbW9yeUR1bXBUcmFjayh2aWV3cG9ydCk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7Ci0KLSAgICB0cmFjay5tZW1vcnlEdW1wcyA9IGR1bXBzOwotCi0gICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ2hlY2sgdGhhdCB0aGUgZGl2IGhhcyBpbmRlZWQgemVybyBzaXplLgotICAgIGlmIChleHBlY3RlZFRyYWNrQ291bnQgPiAwKQotICAgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7Ci0KLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgNTAsIHRyYWNrLmNsaWVudFdpZHRoKTsKLSAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotCi0gICAgYXNzZXJ0Lmxlbmd0aE9mKHRyYWNrLnRyYWNrc18sIGV4cGVjdGVkVHJhY2tDb3VudCk7Ci0gIH07Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aG91dE1lbW9yeUFsbG9jYXRvckR1bXBzJywgZnVuY3Rpb24oKSB7Ci0gICAgaW5zdGFudGlhdGVUcmFjay5jYWxsKHRoaXMsIGZhbHNlLCBmYWxzZSwgMCk7Ci0gIH0pOwotICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoTWVtb3J5QWxsb2NhdG9yRHVtcHMnLCBmdW5jdGlvbigpIHsKLSAgICBpbnN0YW50aWF0ZVRyYWNrLmNhbGwodGhpcywgZmFsc2UsIHRydWUsIDEpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX3N1bW1hcnlfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE5MjI5MS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3JlY3RfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvY29sb3Jfc2NoZW1lLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIFZpc3VhbGl6ZXMgYSBQcm9jZXNzJ3Mgc3RhdGUgdXNpbmcgYSBzZXJpZXMgb2YgcmVjdHMgdG8gcmVwcmVzZW50IGFjdGl2aXR5LgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBQcm9jZXNzU3VtbWFyeVRyYWNrID0gdHIuYi51aS5kZWZpbmUoJ3Byb2Nlc3Mtc3VtbWFyeS10cmFjaycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuYy50cmFja3MuUmVjdFRyYWNrKTsKLQotICBQcm9jZXNzU3VtbWFyeVRyYWNrLmJ1aWxkUmVjdHNGcm9tUHJvY2VzcyA9IGZ1bmN0aW9uKHByb2Nlc3MpIHsKLSAgICBpZiAoIXByb2Nlc3MpCi0gICAgICByZXR1cm4gW107Ci0KLSAgICB2YXIgb3BzID0gW107Ci0gICAgLy8gYnVpbGQgbGlzdCBvZiBzdGFydC9lbmQgb3BzIGZvciBlYWNoIHRvcCBsZXZlbCBvciBpbXBvcnRhbnQgc2xpY2UKLSAgICB2YXIgcHVzaE9wID0gZnVuY3Rpb24oaXNTdGFydCwgdGltZSwgc2xpY2UpIHsKLSAgICAgIG9wcy5wdXNoKHsKLSAgICAgICAgaXNTdGFydDogaXNTdGFydCwKLSAgICAgICAgdGltZTogdGltZSwKLSAgICAgICAgc2xpY2U6IHNsaWNlCi0gICAgICB9KTsKLSAgICB9OwotICAgIGZvciAodmFyIHRpZCBpbiBwcm9jZXNzLnRocmVhZHMpIHsKLSAgICAgIHZhciBzbGljZUdyb3VwID0gcHJvY2Vzcy50aHJlYWRzW3RpZF0uc2xpY2VHcm91cDsKLQotICAgICAgc2xpY2VHcm91cC50b3BMZXZlbFNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICAgIHB1c2hPcCh0cnVlLCBzbGljZS5zdGFydCwgdW5kZWZpbmVkKTsKLSAgICAgICAgcHVzaE9wKGZhbHNlLCBzbGljZS5lbmQsIHVuZGVmaW5lZCk7Ci0gICAgICB9KTsKLSAgICAgIHNsaWNlR3JvdXAuc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgaWYgKHNsaWNlLmltcG9ydGFudCkgewotICAgICAgICAgIHB1c2hPcCh0cnVlLCBzbGljZS5zdGFydCwgc2xpY2UpOwotICAgICAgICAgIHB1c2hPcChmYWxzZSwgc2xpY2UuZW5kLCBzbGljZSk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotICAgIH0KLSAgICBvcHMuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhLnRpbWUgLSBiLnRpbWU7IH0pOwotCi0gICAgdmFyIHJlY3RzID0gW107Ci0gICAgLyoqCi0gICAgICogQnVpbGQgYSByb3cgb2YgcmVjdHMgd2hpY2ggZGlzcGxheSBvbmUgd2F5IGZvciB1bmltcG9ydGFudCBhY3Rpdml0eSwKLSAgICAgKiBhbmQgZHVyaW5nIGltcG9ydGFudCBzbGljZXMsIHNob3cgdXAgYXMgdGhvc2UgaW1wb3J0YW50IHNsaWNlcy4KLSAgICAgKgotICAgICAqIElmIGFuIGltcG9ydGFudCBzbGljZSBzdGFydHMgaW4gdGhlIG1pZGRsZSBvZiBhbm90aGVyLAotICAgICAqIGp1c3QgZHJvcCBpdCBvbiB0aGUgZmxvb3IuCi0gICAgICovCi0gICAgdmFyIGdlbmVyaWNDb2xvcklkID0gdHIuYi51aS5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdnZW5lcmljX3dvcmsnKTsKLSAgICB2YXIgcHVzaFJlY3QgPSBmdW5jdGlvbihzdGFydCwgZW5kLCBzbGljZSkgewotICAgICAgcmVjdHMucHVzaChuZXcgdHIuYy50cmFja3MuUmVjdCgKLSAgICAgICAgICBzbGljZSwgLyogbW9kZWxJdGVtOiBzaG93IHNlbGVjdGlvbiBzdGF0ZSBvZiBzbGljZSBpZiBwcmVzZW50ICovCi0gICAgICAgICAgc2xpY2UgPyBzbGljZS50aXRsZSA6ICcnLCAvKiB0aXRsZSAqLwotICAgICAgICAgIHNsaWNlID8gc2xpY2UuY29sb3JJZCA6IGdlbmVyaWNDb2xvcklkLCAvKiBjb2xvcklkICovCi0gICAgICAgICAgc3RhcnQsIC8qIHN0YXJ0ICovCi0gICAgICAgICAgZW5kIC0gc3RhcnQgLyogZHVyYXRpb24gKi8pKTsKLSAgICB9Ci0gICAgdmFyIGRlcHRoID0gMDsKLSAgICB2YXIgY3VycmVudFNsaWNlID0gdW5kZWZpbmVkOwotICAgIHZhciBsYXN0U3RhcnQgPSB1bmRlZmluZWQ7Ci0gICAgb3BzLmZvckVhY2goZnVuY3Rpb24ob3ApIHsKLSAgICAgIGRlcHRoICs9IG9wLmlzU3RhcnQgPyAxIDogLTE7Ci0KLSAgICAgIGlmIChjdXJyZW50U2xpY2UpIHsKLSAgICAgICAgLy8gc2ltcGx5IGZpbmQgZW5kIG9mIGN1cnJlbnQgaW1wb3J0YW50IHNsaWNlCi0gICAgICAgIGlmICghb3AuaXNTdGFydCAmJiBvcC5zbGljZSA9PSBjdXJyZW50U2xpY2UpIHsKLSAgICAgICAgICAvLyBpbXBvcnRhbnQgc2xpY2UgaGFzIGVuZGVkCi0gICAgICAgICAgcHVzaFJlY3QobGFzdFN0YXJ0LCBvcC50aW1lLCBjdXJyZW50U2xpY2UpOwotICAgICAgICAgIGxhc3RTdGFydCA9IGRlcHRoID49IDEgPyBvcC50aW1lIDogdW5kZWZpbmVkOwotICAgICAgICAgIGN1cnJlbnRTbGljZSA9IHVuZGVmaW5lZDsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG9wLmlzU3RhcnQpIHsKLSAgICAgICAgICBpZiAoZGVwdGggPT0gMSkgewotICAgICAgICAgICAgbGFzdFN0YXJ0ID0gb3AudGltZTsKLSAgICAgICAgICAgIGN1cnJlbnRTbGljZSA9IG9wLnNsaWNlOwotICAgICAgICAgIH0gZWxzZSBpZiAob3Auc2xpY2UpIHsKLSAgICAgICAgICAgIC8vIHN3aXRjaCB0byBzbGljZQotICAgICAgICAgICAgaWYgKG9wLnRpbWUgIT0gbGFzdFN0YXJ0KSB7Ci0gICAgICAgICAgICAgIHB1c2hSZWN0KGxhc3RTdGFydCwgb3AudGltZSwgdW5kZWZpbmVkKTsKLSAgICAgICAgICAgICAgbGFzdFN0YXJ0ID0gb3AudGltZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1cnJlbnRTbGljZSA9IG9wLnNsaWNlOwotICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAoZGVwdGggPT0gMCkgewotICAgICAgICAgICAgcHVzaFJlY3QobGFzdFN0YXJ0LCBvcC50aW1lLCB1bmRlZmluZWQpOwotICAgICAgICAgICAgbGFzdFN0YXJ0ID0gdW5kZWZpbmVkOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0pOwotICAgIHJldHVybiByZWN0czsKLSAgfTsKLQotICBQcm9jZXNzU3VtbWFyeVRyYWNrLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgfSwKLQotICAgIGdldCBwcm9jZXNzKCkgewotICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc187Ci0gICAgfSwKLQotICAgIHNldCBwcm9jZXNzKHByb2Nlc3MpIHsKLSAgICAgIHRoaXMucHJvY2Vzc18gPSBwcm9jZXNzOwotICAgICAgdGhpcy5yZWN0cyA9IFByb2Nlc3NTdW1tYXJ5VHJhY2suYnVpbGRSZWN0c0Zyb21Qcm9jZXNzKHByb2Nlc3MpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFByb2Nlc3NTdW1tYXJ5VHJhY2s6IFByb2Nlc3NTdW1tYXJ5VHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFja190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMjJiNGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX3N1bW1hcnlfdHJhY2tfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvcHJvY2Vzc19zdW1tYXJ5X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZV9ncm91cC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgUHJvY2Vzc1N1bW1hcnlUcmFjayA9IHRyLmMudHJhY2tzLlByb2Nlc3NTdW1tYXJ5VHJhY2s7Ci0gIHZhciBuZXdTbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZTsKLSAgdmFyIG5ld1NsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZDsKLQotICB0ZXN0KCdidWlsZFJlY3RTaW1wbGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcHJvY2VzczsKLSAgICB2YXIgbW9kZWwgPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgIHByb2Nlc3MgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgICAvLyBYWFhYCi0gICAgICAvLyAgICBYWFhYCi0gICAgICB2YXIgdGhyZWFkMSA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0gICAgICB0aHJlYWQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDEsIDQpKTsKLSAgICAgIHZhciB0aHJlYWQyID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICAgIHRocmVhZDIuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2UoNCwgNCkpOwotICAgIH0pOwotCi0gICAgdmFyIHJlY3RzID0gUHJvY2Vzc1N1bW1hcnlUcmFjay5idWlsZFJlY3RzRnJvbVByb2Nlc3MocHJvY2Vzcyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwocmVjdHMubGVuZ3RoLCAxKTsKLSAgICB2YXIgcmVjdCA9IHJlY3RzWzBdOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3Quc3RhcnQsIDEsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3QuZW5kLCA4LCAxZS01KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYnVpbGRSZWN0Q29tcGxleCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwcm9jZXNzOwotICAgIHZhciBtb2RlbCA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgewotICAgICAgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICAgIC8vIFhYWFggICAgWCBYIFhYCi0gICAgICAvLyAgICBYWFhYIFhYWCAgICBYCi0gICAgICB2YXIgdGhyZWFkMSA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0gICAgICB0aHJlYWQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDEsIDQpKTsKLSAgICAgIHRocmVhZDEuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2UoOSwgMSkpOwotICAgICAgdGhyZWFkMS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZSgxMSwgMSkpOwotICAgICAgdGhyZWFkMS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZSgxMywgMikpOwotICAgICAgdmFyIHRocmVhZDIgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgICAgdGhyZWFkMi5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZSg0LCA0KSk7Ci0gICAgICB0aHJlYWQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDksIDMpKTsKLSAgICAgIHRocmVhZDIuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2UoMTYsIDEpKTsKLSAgICB9KTsKLQotICAgIHZhciByZWN0cyA9IFByb2Nlc3NTdW1tYXJ5VHJhY2suYnVpbGRSZWN0c0Zyb21Qcm9jZXNzKHByb2Nlc3MpOwotCi0gICAgYXNzZXJ0LmVxdWFsKDQsIHJlY3RzLmxlbmd0aCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMF0uc3RhcnQsIDEsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3RzWzBdLmVuZCwgOCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMV0uc3RhcnQsIDksIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3RzWzFdLmVuZCwgMTIsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3RzWzJdLnN0YXJ0LCAxMywgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMl0uZW5kLCAxNSwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbM10uc3RhcnQsIDE2LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1szXS5lbmQsIDE3LCAxZS01KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYnVpbGRSZWN0SW1wb3J0YW50U2xpY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcHJvY2VzczsKLSAgICB2YXIgbW9kZWwgPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgIC8vICAgIFsgICAgdW5pbXBvcnRhbnQgICAgXQotICAgICAgLy8gICAgICAgICBbaW1wb3J0YW50XQotICAgICAgdmFyIGEgPSBuZXdTbGljZU5hbWVkKCd1bmltcG9ydGFudCcsIDQsIDIxKTsKLSAgICAgIHZhciBiID0gbmV3U2xpY2VOYW1lZCgnaW1wb3J0YW50JywgOSwgMTEpOwotICAgICAgYi5pbXBvcnRhbnQgPSB0cnVlOwotICAgICAgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICAgIHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMSkuc2xpY2VHcm91cC5wdXNoU2xpY2VzKFthLCBiXSk7Ci0KLSAgICAgIG1vZGVsLmltcG9ydGFudFNsaWNlID0gYjsKLSAgICB9KTsKLQotICAgIHZhciByZWN0cyA9IFByb2Nlc3NTdW1tYXJ5VHJhY2suYnVpbGRSZWN0c0Zyb21Qcm9jZXNzKHByb2Nlc3MpOwotCi0gICAgYXNzZXJ0LmVxdWFsKDMsIHJlY3RzLmxlbmd0aCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMF0uc3RhcnQsIDQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3RzWzBdLmVuZCwgOSwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMV0uc3RhcnQsIDksIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3RzWzFdLmVuZCwgMjAsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKHJlY3RzWzJdLnN0YXJ0LCAyMCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMl0uZW5kLCAyNSwgMWUtNSk7Ci0KLSAgICAvLyBtaWRkbGUgcmVjdCByZXByZXNlbnRzIGltcG9ydGFudCBzbGljZSwgc28gY29sb3JJZCAmIHRpdGxlIGFyZSBwcmVzZXJ2ZWQKLSAgICBhc3NlcnQuZXF1YWwocmVjdHNbMV0udGl0bGUsIG1vZGVsLmltcG9ydGFudFNsaWNlLnRpdGxlKTsKLSAgICBhc3NlcnQuZXF1YWwocmVjdHNbMV0uY29sb3JJZCwgbW9kZWwuaW1wb3J0YW50U2xpY2UuY29sb3JJZCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3NfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTczYTlkZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3NfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9wcm9jZXNzX21lbW9yeV9kdW1wX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZHJhd19oZWxwZXJzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFByb2Nlc3NUcmFja0Jhc2UgPSB0ci5jLnRyYWNrcy5Qcm9jZXNzVHJhY2tCYXNlOwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBQcm9jZXNzVHJhY2sgPSB0ci5iLnVpLmRlZmluZSgncHJvY2Vzcy10cmFjaycsIFByb2Nlc3NUcmFja0Jhc2UpOwotCi0gIFByb2Nlc3NUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQcm9jZXNzVHJhY2tCYXNlLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuUHJvY2Vzc1RyYWNrQmFzZS5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgfSwKLQotICAgIGRyYXdUcmFjazogZnVuY3Rpb24odHlwZSkgewotICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuSU5TVEFOVF9FVkVOVDoKLSAgICAgICAgICBpZiAoIXRoaXMucHJvY2Vzc0Jhc2UuaW5zdGFudEV2ZW50cyB8fAotICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHMubGVuZ3RoID09PSAwKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7Ci0KLSAgICAgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgdmFyIGNhbnZhc0JvdW5kcyA9IGN0eC5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0KLSAgICAgICAgICBjdHguc2F2ZSgpOwotICAgICAgICAgIGN0eC50cmFuc2xhdGUoMCwgcGl4ZWxSYXRpbyAqIChib3VuZHMudG9wIC0gY2FudmFzQm91bmRzLnRvcCkpOwotCi0gICAgICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICAgICAgICB2YXIgdmlld0xXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCgwKTsKLSAgICAgICAgICB2YXIgdmlld1JXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCgKLSAgICAgICAgICAgICAgYm91bmRzLndpZHRoICogcGl4ZWxSYXRpbyk7Ci0KLSAgICAgICAgICB0ci5jLmRyYXdJbnN0YW50U2xpY2VzQXNMaW5lcygKLSAgICAgICAgICAgICAgY3R4LAotICAgICAgICAgICAgICB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLAotICAgICAgICAgICAgICB2aWV3TFdvcmxkLAotICAgICAgICAgICAgICB2aWV3UldvcmxkLAotICAgICAgICAgICAgICBib3VuZHMuaGVpZ2h0LAotICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHMsCi0gICAgICAgICAgICAgIDIpOwotCi0gICAgICAgICAgY3R4LnJlc3RvcmUoKTsKLQotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuQkFDS0dST1VORDoKLSAgICAgICAgICB0aGlzLmRyYXdCYWNrZ3JvdW5kXygpOwotICAgICAgICAgIC8vIERvbid0IGJvdGhlciByZWN1cnNpbmcgZnVydGhlciwgUHJvY2VzcyBpcyB0aGUgb25seSBsZXZlbCB0aGF0Ci0gICAgICAgICAgLy8gZHJhd3MgYmFja2dyb3VuZHMuCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZHJhd1RyYWNrLmNhbGwodGhpcywgdHlwZSk7Ci0gICAgfSwKLQotICAgIGRyYXdCYWNrZ3JvdW5kXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7Ci0gICAgICB2YXIgY2FudmFzQm91bmRzID0gY3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLQotICAgICAgdmFyIGRyYXcgPSBmYWxzZTsKLSAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2VlZSc7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKCEodGhpcy5jaGlsZHJlbltpXSBpbnN0YW5jZW9mIHRyLmMudHJhY2tzLlRyYWNrKSB8fAotICAgICAgICAgICAgKHRoaXMuY2hpbGRyZW5baV0gaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5TcGFjaW5nVHJhY2spKQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGRyYXcgPSAhZHJhdzsKLSAgICAgICAgaWYgKCFkcmF3KQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHZhciBib3VuZHMgPSB0aGlzLmNoaWxkcmVuW2ldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICBjdHguZmlsbFJlY3QoMCwgcGl4ZWxSYXRpbyAqIChib3VuZHMudG9wIC0gY2FudmFzQm91bmRzLnRvcCksCi0gICAgICAgICAgICBjdHguY2FudmFzLndpZHRoLCBwaXhlbFJhdGlvICogYm91bmRzLmhlaWdodCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8vIFByb2Nlc3MgbWFwcyB0byBwcm9jZXNzQmFzZSBiZWNhdXNlIHdlIGRlcml2ZSBmcm9tIFByb2Nlc3NUcmFja0Jhc2UuCi0gICAgc2V0IHByb2Nlc3MocHJvY2VzcykgewotICAgICAgdGhpcy5wcm9jZXNzQmFzZSA9IHByb2Nlc3M7Ci0gICAgfSwKLQotICAgIGdldCBwcm9jZXNzKCkgewotICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0Jhc2U7Ci0gICAgfSwKLQotICAgIGdldCBldmVudENvbnRhaW5lcigpIHsKLSAgICAgIHJldHVybiB0aGlzLnByb2Nlc3M7Ci0gICAgfSwKLQotICAgIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOiBmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKSB7Ci0gICAgICBjb250YWluZXJUb1RyYWNrTWFwLmFkZENvbnRhaW5lcih0aGlzLnByb2Nlc3MsIHRoaXMpOwotICAgICAgdGhpcy50cmFja3NfLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKLSAgICAgICAgdHJhY2suYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoY29udGFpbmVyVG9UcmFja01hcCk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgYXBwZW5kTWVtb3J5RHVtcFRyYWNrXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXBzID0gdGhpcy5wcm9jZXNzLm1lbW9yeUR1bXBzOwotICAgICAgaWYgKHByb2Nlc3NNZW1vcnlEdW1wcy5sZW5ndGgpIHsKLSAgICAgICAgdmFyIHBtZHQgPSBuZXcgdHIuYy50cmFja3MuUHJvY2Vzc01lbW9yeUR1bXBUcmFjayh0aGlzLnZpZXdwb3J0Xyk7Ci0gICAgICAgIHBtZHQubWVtb3J5RHVtcHMgPSBwcm9jZXNzTWVtb3J5RHVtcHM7Ci0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQocG1kdCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTogZnVuY3Rpb24oCi0gICAgICAgIGxvV1gsIGhpV1gsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pIHsKLSAgICAgIGZ1bmN0aW9uIG9uUGlja0hpdChpbnN0YW50RXZlbnQpIHsKLSAgICAgICAgc2VsZWN0aW9uLnB1c2goaW5zdGFudEV2ZW50KTsKLSAgICAgIH0KLSAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5wcm9jZXNzQmFzZS5pbnN0YW50RXZlbnRzLAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguc3RhcnQ7IH0sCi0gICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5kdXJhdGlvbjsgfSwKLSAgICAgICAgICBsb1dYLCBoaVdYLAotICAgICAgICAgIG9uUGlja0hpdC5iaW5kKHRoaXMpKTsKLQotICAgICAgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLgotICAgICAgICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZS4KLSAgICAgICAgICBhcHBseSh0aGlzLCBhcmd1bWVudHMpOwotICAgIH0sCi0KLSAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24od29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuYWRkQ2xvc2VzdEluc3RhbnRFdmVudFRvU2VsZWN0aW9uKHRoaXMucHJvY2Vzc0Jhc2UuaW5zdGFudEV2ZW50cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBzZWxlY3Rpb24pOwotICAgICAgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uLgotICAgICAgICAgIGFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUHJvY2Vzc1RyYWNrOiBQcm9jZXNzVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcHJvY2Vzc190cmFja19iYXNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3Byb2Nlc3NfdHJhY2tfYmFzZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNGYyNTUxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcHJvY2Vzc190cmFja19iYXNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2NvcmUvdHJhY2tzL3Byb2Nlc3NfdHJhY2tfYmFzZS5jc3MiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2NvbnRhaW5lcl90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY291bnRlcl90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvZnJhbWVfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL29iamVjdF9pbnN0YW5jZV9ncm91cF90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvcHJvY2Vzc19zdW1tYXJ5X3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9zcGFjaW5nX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy90aHJlYWRfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbF9zZXR0aW5ncy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIE9iamVjdFNuYXBzaG90VmlldyA9IHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3OwotICB2YXIgT2JqZWN0SW5zdGFuY2VWaWV3ID0gdHIuYy5hbmFseXNpcy5PYmplY3RJbnN0YW5jZVZpZXc7Ci0gIHZhciBTcGFjaW5nVHJhY2sgPSB0ci5jLnRyYWNrcy5TcGFjaW5nVHJhY2s7Ci0KLSAgLyoqCi0gICAqIFZpc3VhbGl6ZXMgYSBQcm9jZXNzIGJ5IGJ1aWxkaW5nIFRocmVhZFRyYWNrcyBhbmQgQ291bnRlclRyYWNrcy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgUHJvY2Vzc1RyYWNrQmFzZSA9Ci0gICAgICB0ci5iLnVpLmRlZmluZSgncHJvY2Vzcy10cmFjay1iYXNlJywgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2spOwotCi0gIFByb2Nlc3NUcmFja0Jhc2UucHJvdG90eXBlID0gewotCi0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLQotICAgICAgdGhpcy5wcm9jZXNzQmFzZV8gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgncHJvY2Vzcy10cmFjay1iYXNlJyk7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJyk7Ci0KLSAgICAgIHRoaXMucHJvY2Vzc05hbWVFbF8gPSB0ci5iLnVpLmNyZWF0ZVNwYW4oKTsKLSAgICAgIHRoaXMucHJvY2Vzc05hbWVFbF8uY2xhc3NMaXN0LmFkZCgncHJvY2Vzcy10cmFjay1uYW1lJyk7Ci0KLSAgICAgIHRoaXMuaGVhZGVyRWxfID0gdHIuYi51aS5jcmVhdGVEaXYoe2NsYXNzTmFtZTogJ3Byb2Nlc3MtdHJhY2staGVhZGVyJ30pOwotICAgICAgdGhpcy5oZWFkZXJFbF8uYXBwZW5kQ2hpbGQodGhpcy5wcm9jZXNzTmFtZUVsXyk7Ci0gICAgICB0aGlzLmhlYWRlckVsXy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25IZWFkZXJDbGlja18uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkZXJFbF8pOwotICAgIH0sCi0KLSAgICBnZXQgcHJvY2Vzc0Jhc2UoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFzZV87Ci0gICAgfSwKLQotICAgIHNldCBwcm9jZXNzQmFzZShwcm9jZXNzQmFzZSkgewotICAgICAgdGhpcy5wcm9jZXNzQmFzZV8gPSBwcm9jZXNzQmFzZTsKLQotICAgICAgaWYgKHRoaXMucHJvY2Vzc0Jhc2VfKSB7Ci0gICAgICAgIHZhciBtb2RlbFNldHRpbmdzID0gbmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3ModGhpcy5wcm9jZXNzQmFzZV8ubW9kZWwpOwotICAgICAgICB2YXIgZGVmYXVsdFZhbHVlID0gdGhpcy5wcm9jZXNzQmFzZV8uaW1wb3J0YW50OwotICAgICAgICB0aGlzLmV4cGFuZGVkID0gbW9kZWxTZXR0aW5ncy5nZXRTZXR0aW5nRm9yKAotICAgICAgICAgICAgdGhpcy5wcm9jZXNzQmFzZV8sICdleHBhbmRlZCcsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBleHBhbmRlZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmNsYXNzTGlzdC5jb250YWlucygnZXhwYW5kZWQnKTsKLSAgICB9LAotCi0gICAgc2V0IGV4cGFuZGVkKGV4cGFuZGVkKSB7Ci0gICAgICBleHBhbmRlZCA9ICEhZXhwYW5kZWQ7Ci0KLSAgICAgIGlmICh0aGlzLmV4cGFuZGVkID09PSBleHBhbmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmNsYXNzTGlzdC50b2dnbGUoJ2V4cGFuZGVkJyk7Ci0KLSAgICAgIC8vIEV4cGFuZGluZyBhbmQgY29sbGFwc2luZyB0cmFja3MgaXMsIGVzc2VudGlhbGx5LCBncm93aW5nIGFuZCBzaHJpbmtpbmcKLSAgICAgIC8vIHRoZSB2aWV3cG9ydC4gV2UgZGlzcGF0Y2ggYSBjaGFuZ2UgZXZlbnQgdG8gdHJpZ2dlciBhbnkgcHJvY2Vzc2luZwotICAgICAgLy8gdG8gaGFwcGVuLgotICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwotCi0gICAgICBpZiAoIXRoaXMucHJvY2Vzc0Jhc2VfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBtb2RlbFNldHRpbmdzID0gbmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3ModGhpcy5wcm9jZXNzQmFzZV8ubW9kZWwpOwotICAgICAgbW9kZWxTZXR0aW5ncy5zZXRTZXR0aW5nRm9yKHRoaXMucHJvY2Vzc0Jhc2VfLCAnZXhwYW5kZWQnLCBleHBhbmRlZCk7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgdGhpcy52aWV3cG9ydC5yZWJ1aWxkRXZlbnRUb1RyYWNrTWFwKCk7Ci0gICAgICB0aGlzLnZpZXdwb3J0LnJlYnVpbGRDb250YWluZXJUb1RyYWNrTWFwKCk7Ci0gICAgfSwKLQotICAgIGdldCBoYXNWaXNpYmxlQ29udGVudCgpIHsKLSAgICAgIGlmICh0aGlzLmV4cGFuZGVkKQotICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAxOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIG9uSGVhZGVyQ2xpY2tfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy50cmFja3NfLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKLSAgICAgICAgdGhpcy5yZW1vdmVDaGlsZCh0cmFjayk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgaWYgKCF0aGlzLnByb2Nlc3NCYXNlXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLnByb2Nlc3NOYW1lRWxfLnRleHRDb250ZW50ID0gdGhpcy5wcm9jZXNzQmFzZV8udXNlckZyaWVuZGx5TmFtZTsKLSAgICAgIHRoaXMuaGVhZGVyRWxfLnRpdGxlID0gdGhpcy5wcm9jZXNzQmFzZV8udXNlckZyaWVuZGx5RGV0YWlsczsKLQotICAgICAgLy8gQ3JlYXRlIHRoZSBvYmplY3QgaW5zdGFuY2UgdHJhY2tzIGZvciB0aGlzIHByb2Nlc3MuCi0gICAgICB0aGlzLndpbGxBcHBlbmRUcmFja3NfKCk7Ci0gICAgICBpZiAodGhpcy5leHBhbmRlZCkgewotICAgICAgICB0aGlzLmFwcGVuZE1lbW9yeUR1bXBUcmFja18oKTsKLSAgICAgICAgdGhpcy5hcHBlbmRPYmplY3RJbnN0YW5jZVRyYWNrc18oKTsKLSAgICAgICAgdGhpcy5hcHBlbmRDb3VudGVyVHJhY2tzXygpOwotICAgICAgICB0aGlzLmFwcGVuZEZyYW1lVHJhY2tfKCk7Ci0gICAgICAgIHRoaXMuYXBwZW5kVGhyZWFkVHJhY2tzXygpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5hcHBlbmRTdW1tYXJ5VHJhY2tfKCk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmRpZEFwcGVuZFRyYWNrc18oKTsKLSAgICB9LAotCi0gICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7Ci0gICAgICB0aGlzLnRyYWNrc18uZm9yRWFjaChmdW5jdGlvbih0cmFjaykgewotICAgICAgICB0cmFjay5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgd2lsbEFwcGVuZFRyYWNrc186IGZ1bmN0aW9uKCkgewotICAgIH0sCi0KLSAgICBkaWRBcHBlbmRUcmFja3NfOiBmdW5jdGlvbigpIHsKLSAgICB9LAotCi0gICAgYXBwZW5kTWVtb3J5RHVtcFRyYWNrXzogZnVuY3Rpb24oKSB7Ci0gICAgfSwKLQotICAgIGFwcGVuZFN1bW1hcnlUcmFja186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLlByb2Nlc3NTdW1tYXJ5VHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICB0cmFjay5wcm9jZXNzID0gdGhpcy5wcm9jZXNzOwotICAgICAgaWYgKCF0cmFjay5oYXNWaXNpYmxlQ29udGVudCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgICAvLyBubyBzcGFjaW5nIHRyYWNrLCBzaW5jZSB0aGlzIHRyYWNrIG9ubHkgc2hvd24gaW4gY29sbGFwc2VkIHN0YXRlCi0gICAgfSwKLQotICAgIGFwcGVuZEZyYW1lVHJhY2tfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBmcmFtZXMgPSB0aGlzLnByb2Nlc3MgPyB0aGlzLnByb2Nlc3MuZnJhbWVzIDogdW5kZWZpbmVkOwotICAgICAgaWYgKCFmcmFtZXMgfHwgIWZyYW1lcy5sZW5ndGgpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLkZyYW1lVHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICB0cmFjay5mcmFtZXMgPSBmcmFtZXM7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICAgIHRoaXMuYmFja2dyb3VuZFByb3ZpZGVyID0gdHJhY2s7Ci0gICAgfSwKLQotICAgIGFwcGVuZE9iamVjdEluc3RhbmNlVHJhY2tzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgaW5zdGFuY2VzQnlUeXBlTmFtZSA9Ci0gICAgICAgICAgdGhpcy5wcm9jZXNzQmFzZV8ub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lKCk7Ci0gICAgICB2YXIgaW5zdGFuY2VUeXBlTmFtZXMgPSB0ci5iLmRpY3Rpb25hcnlLZXlzKGluc3RhbmNlc0J5VHlwZU5hbWUpOwotICAgICAgaW5zdGFuY2VUeXBlTmFtZXMuc29ydCgpOwotCi0gICAgICB2YXIgZGlkQXBwZW5kQXRMZWFzdE9uZVRyYWNrID0gZmFsc2U7Ci0gICAgICBpbnN0YW5jZVR5cGVOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGVOYW1lKSB7Ci0gICAgICAgIHZhciBhbGxJbnN0YW5jZXMgPSBpbnN0YW5jZXNCeVR5cGVOYW1lW3R5cGVOYW1lXTsKLQotICAgICAgICAvLyBJZiBhIG9iamVjdCBzbmFwc2hvdCBoYXMgYSB2aWV3IGl0IHdpbGwgYmUgc2hvd24sCi0gICAgICAgIC8vIHVubGVzcyB0aGUgdmlldyBhc2tlZCBmb3IgaXQgdG8gbm90IGJlIHNob3duLgotICAgICAgICB2YXIgaW5zdGFuY2VWaWV3SW5mbyA9IE9iamVjdEluc3RhbmNlVmlldy5nZXRUeXBlSW5mbygKLSAgICAgICAgICAgIHVuZGVmaW5lZCwgdHlwZU5hbWUpOwotICAgICAgICB2YXIgc25hcHNob3RWaWV3SW5mbyA9IE9iamVjdFNuYXBzaG90Vmlldy5nZXRUeXBlSW5mbygKLSAgICAgICAgICAgIHVuZGVmaW5lZCwgdHlwZU5hbWUpOwotICAgICAgICBpZiAoaW5zdGFuY2VWaWV3SW5mbyAmJiAhaW5zdGFuY2VWaWV3SW5mby5tZXRhZGF0YS5zaG93SW5UcmFja1ZpZXcpCi0gICAgICAgICAgaW5zdGFuY2VWaWV3SW5mbyA9IHVuZGVmaW5lZDsKLSAgICAgICAgaWYgKHNuYXBzaG90Vmlld0luZm8gJiYgIXNuYXBzaG90Vmlld0luZm8ubWV0YWRhdGEuc2hvd0luVHJhY2tWaWV3KQotICAgICAgICAgIHNuYXBzaG90Vmlld0luZm8gPSB1bmRlZmluZWQ7Ci0gICAgICAgIHZhciBoYXNWaWV3SW5mbyA9IGluc3RhbmNlVmlld0luZm8gfHwgc25hcHNob3RWaWV3SW5mbzsKLQotICAgICAgICAvLyBUaGVyZSBhcmUgc29tZSBpbnN0YW5jZXMgdGhhdCBkb24ndCBtZXJpdCB0aGVpciBvd24gdHJhY2sgaW4KLSAgICAgICAgLy8gdGhlIFVJLiBGaWx0ZXIgdGhlbSBvdXQuCi0gICAgICAgIHZhciB2aXNpYmxlSW5zdGFuY2VzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsSW5zdGFuY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGluc3RhbmNlID0gYWxsSW5zdGFuY2VzW2ldOwotCi0gICAgICAgICAgLy8gRG8gbm90IGNyZWF0ZSB0cmFja3MgZm9yIGluc3RhbmNlcyB0aGF0IGhhdmUgbm8gc25hcHNob3RzLgotICAgICAgICAgIGlmIChpbnN0YW5jZS5zbmFwc2hvdHMubGVuZ3RoID09PSAwKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAvLyBEbyBub3QgY3JlYXRlIHRyYWNrcyBmb3IgaW5zdGFuY2VzIHRoYXQgaGF2ZSBpbXBsaWNpdCBzbmFwc2hvdHMKLSAgICAgICAgICAvLyBhbmQgZG9uJ3QgaGF2ZSBhIHZpZXcuCi0gICAgICAgICAgaWYgKGluc3RhbmNlLmhhc0ltcGxpY2l0U25hcHNob3RzICYmICFoYXNWaWV3SW5mbykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgdmlzaWJsZUluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTsKLSAgICAgICAgfQotICAgICAgICBpZiAodmlzaWJsZUluc3RhbmNlcy5sZW5ndGggPT09IDApCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIExvb2sgdXAgdGhlIGNvbnN0cnVjdG9yIGZvciB0aGlzIHRyYWNrLCBvciB1c2UgdGhlIGRlZmF1bHQKLSAgICAgICAgLy8gY29uc3RydWN0b3IgaWYgbm9uZSBleGlzdHMuCi0gICAgICAgIHZhciB0cmFja0NvbnN0cnVjdG9yID0KLSAgICAgICAgICAgIHRyLmMudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2suZ2V0Q29uc3RydWN0b3IoCi0gICAgICAgICAgICAgICAgdW5kZWZpbmVkLCB0eXBlTmFtZSk7Ci0gICAgICAgIGlmICghdHJhY2tDb25zdHJ1Y3RvcikgewotICAgICAgICAgIHZhciBzbmFwc2hvdFZpZXdJbmZvID0gT2JqZWN0U25hcHNob3RWaWV3LmdldFR5cGVJbmZvKAotICAgICAgICAgICAgICB1bmRlZmluZWQsIHR5cGVOYW1lKTsKLSAgICAgICAgICBpZiAoc25hcHNob3RWaWV3SW5mbyAmJiBzbmFwc2hvdFZpZXdJbmZvLm1ldGFkYXRhLnNob3dJbnN0YW5jZXMpIHsKLSAgICAgICAgICAgIHRyYWNrQ29uc3RydWN0b3IgPSB0ci5jLnRyYWNrcy5PYmplY3RJbnN0YW5jZUdyb3VwVHJhY2s7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRyYWNrQ29uc3RydWN0b3IgPSB0ci5jLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB2YXIgdHJhY2sgPSBuZXcgdHJhY2tDb25zdHJ1Y3Rvcih0aGlzLnZpZXdwb3J0KTsKLSAgICAgICAgdHJhY2sub2JqZWN0SW5zdGFuY2VzID0gdmlzaWJsZUluc3RhbmNlczsKLSAgICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgICAgIGRpZEFwcGVuZEF0TGVhc3RPbmVUcmFjayA9IHRydWU7Ci0gICAgICB9LCB0aGlzKTsKLSAgICAgIGlmIChkaWRBcHBlbmRBdExlYXN0T25lVHJhY2spCi0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobmV3IFNwYWNpbmdUcmFjayh0aGlzLnZpZXdwb3J0KSk7Ci0gICAgfSwKLQotICAgIGFwcGVuZENvdW50ZXJUcmFja3NfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIEFkZCBjb3VudGVyIHRyYWNrcyBmb3IgdGhpcyBwcm9jZXNzLgotICAgICAgdmFyIGNvdW50ZXJzID0gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHRoaXMucHJvY2Vzc0Jhc2UuY291bnRlcnMpOwotICAgICAgY291bnRlcnMuc29ydCh0ci5tb2RlbC5Db3VudGVyLmNvbXBhcmUpOwotCi0gICAgICAvLyBDcmVhdGUgdGhlIGNvdW50ZXJzIGZvciB0aGlzIHByb2Nlc3MuCi0gICAgICBjb3VudGVycy5mb3JFYWNoKGZ1bmN0aW9uKGNvdW50ZXIpIHsKLSAgICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLkNvdW50ZXJUcmFjayh0aGlzLnZpZXdwb3J0KTsKLSAgICAgICAgdHJhY2suY291bnRlciA9IGNvdW50ZXI7Ci0gICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOwotICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBTcGFjaW5nVHJhY2sodGhpcy52aWV3cG9ydCkpOwotICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgYXBwZW5kVGhyZWFkVHJhY2tzXzogZnVuY3Rpb24oKSB7Ci0gICAgICAvLyBHZXQgYSBzb3J0ZWQgbGlzdCBvZiB0aHJlYWRzLgotICAgICAgdmFyIHRocmVhZHMgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5wcm9jZXNzQmFzZS50aHJlYWRzKTsKLSAgICAgIHRocmVhZHMuc29ydCh0ci5tb2RlbC5UaHJlYWQuY29tcGFyZSk7Ci0KLSAgICAgIC8vIENyZWF0ZSB0aGUgdGhyZWFkcy4KLSAgICAgIHRocmVhZHMuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpIHsKLSAgICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLmMudHJhY2tzLlRocmVhZFRyYWNrKHRoaXMudmlld3BvcnQpOwotICAgICAgICB0cmFjay50aHJlYWQgPSB0aHJlYWQ7Ci0gICAgICAgIGlmICghdHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChuZXcgU3BhY2luZ1RyYWNrKHRoaXMudmlld3BvcnQpKTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUHJvY2Vzc1RyYWNrQmFzZTogUHJvY2Vzc1RyYWNrQmFzZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcmVjdF9hbm5vdGF0aW9uX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcmVjdF9hbm5vdGF0aW9uX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2QzZmVhMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3JlY3RfYW5ub3RhdGlvbl92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9hbm5vdGF0aW9uX3ZpZXcuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLmFubm90YXRpb25zJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBBIHZpZXcgcmVzcG9uc2libGUgZm9yIGRyYXdpbmcgYSBzaW5nbGUgaGlnaGxpZ2h0IHJlY3RhbmdsZSBib3ggb24KLSAgICogdGhlIHRpbWVsaW5lLgotICAgKiBAZXh0ZW5kcyB7QW5ub3RhdGlvblZpZXd9Ci0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gUmVjdEFubm90YXRpb25WaWV3KHZpZXdwb3J0LCBhbm5vdGF0aW9uKSB7Ci0gICAgdGhpcy52aWV3cG9ydF8gPSB2aWV3cG9ydDsKLSAgICB0aGlzLmFubm90YXRpb25fID0gYW5ub3RhdGlvbjsKLSAgfQotCi0gIFJlY3RBbm5vdGF0aW9uVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLmFubm90YXRpb25zLkFubm90YXRpb25WaWV3LnByb3RvdHlwZSwKLQotICAgIGRyYXc6IGZ1bmN0aW9uKGN0eCkgewotICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICB2YXIgc3RhcnRDb29yZHMgPQotICAgICAgICAgIHRoaXMuYW5ub3RhdGlvbl8uc3RhcnRMb2NhdGlvbi50b1ZpZXdDb29yZGluYXRlcyh0aGlzLnZpZXdwb3J0Xyk7Ci0gICAgICB2YXIgZW5kQ29vcmRzID0KLSAgICAgICAgICB0aGlzLmFubm90YXRpb25fLmVuZExvY2F0aW9uLnRvVmlld0Nvb3JkaW5hdGVzKHRoaXMudmlld3BvcnRfKTsKLQotICAgICAgLy8gUHJldmVudCBkcmF3aW5nIGludG8gdGhlIHJ1bGVyIHRyYWNrIGJ5IGNsYW1waW5nIHRoZSBpbml0aWFsIFkKLSAgICAgIC8vIHBvaW50IGFuZCB0aGUgcmVjdCdzIFkgc2l6ZS4KLSAgICAgIHZhciBzdGFydFkgPSBzdGFydENvb3Jkcy52aWV3WSAtIGN0eC5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOwotICAgICAgdmFyIHNpemVZID0gZW5kQ29vcmRzLnZpZXdZIC0gc3RhcnRDb29yZHMudmlld1k7Ci0gICAgICBpZiAoc3RhcnRZICsgc2l6ZVkgPCAwKSB7Ci0gICAgICAgIC8vIEluIHRoaXMgY2FzZSBzaXplWSBpcyBuZWdhdGl2ZS4gSWYgZmluYWwgWSBpcyBuZWdhdGl2ZSwKLSAgICAgICAgLy8gb3ZlcndyaXRlIHN0YXJ0WSBzbyB0aGF0IHRoZSByZWN0YW5nbGUgZW5kcyBhdCB5PTAuCi0gICAgICAgIHN0YXJ0WSA9IHNpemVZOwotICAgICAgfSBlbHNlIGlmIChzdGFydFkgPCAwKSB7Ci0gICAgICAgIHN0YXJ0WSA9IDA7Ci0gICAgICB9Ci0KLSAgICAgIGN0eC5maWxsU3R5bGUgPSB0aGlzLmFubm90YXRpb25fLmZpbGxTdHlsZTsKLSAgICAgIGN0eC5maWxsUmVjdChzdGFydENvb3Jkcy52aWV3WCwgc3RhcnRZLAotICAgICAgICAgIGVuZENvb3Jkcy52aWV3WCAtIHN0YXJ0Q29vcmRzLnZpZXdYLCBzaXplWSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUmVjdEFubm90YXRpb25WaWV3OiBSZWN0QW5ub3RhdGlvblZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3JlY3RfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcmVjdF90cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGE3MjA3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcmVjdF90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjE2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9yZWN0X3RyYWNrLmNzcyI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJveHlfc2VsZWN0YWJsZV9pdGVtLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2Zhc3RfcmVjdF9yZW5kZXJlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9kcmF3X2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGFuIGFycmF5IG9mIFJlY3Qgb2JqZWN0cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtIZWFkaW5nVHJhY2t9Ci0gICAqLwotICB2YXIgUmVjdFRyYWNrID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAncmVjdC10cmFjaycsIHRyLmMudHJhY2tzLkhlYWRpbmdUcmFjayk7Ci0KLSAgUmVjdFRyYWNrLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgncmVjdC10cmFjaycpOwotICAgICAgdGhpcy5hc3luY1N0eWxlXyA9IGZhbHNlOwotICAgICAgdGhpcy5yZWN0c18gPSBudWxsOwotICAgIH0sCi0KLSAgICBnZXQgYXN5bmNTdHlsZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmFzeW5jU3R5bGVfOwotICAgIH0sCi0KLSAgICBzZXQgYXN5bmNTdHlsZSh2KSB7Ci0gICAgICB0aGlzLmFzeW5jU3R5bGVfID0gISF2OwotICAgIH0sCi0KLSAgICBnZXQgcmVjdHMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yZWN0c187Ci0gICAgfSwKLQotICAgIHNldCByZWN0cyhyZWN0cykgewotICAgICAgdGhpcy5yZWN0c18gPSByZWN0cyB8fCBbXTsKLSAgICAgIHRoaXMuaW52YWxpZGF0ZURyYXdpbmdDb250YWluZXIoKTsKLSAgICB9LAotCi0gICAgZ2V0IGhlaWdodCgpIHsKLSAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7Ci0gICAgfSwKLQotICAgIHNldCBoZWlnaHQoaGVpZ2h0KSB7Ci0gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IGhlaWdodDsKLSAgICAgIHRoaXMuaW52YWxpZGF0ZURyYXdpbmdDb250YWluZXIoKTsKLSAgICB9LAotCi0gICAgZ2V0IGhhc1Zpc2libGVDb250ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMucmVjdHNfLmxlbmd0aCA+IDA7Ci0gICAgfSwKLQotICAgIGRyYXc6IGZ1bmN0aW9uKHR5cGUsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKLSAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6Ci0gICAgICAgICAgdGhpcy5kcmF3UmVjdHNfKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0sCi0KLSAgICBkcmF3UmVjdHNfOiBmdW5jdGlvbih2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7Ci0gICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7Ci0KLSAgICAgIGN0eC5zYXZlKCk7Ci0gICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHRyLmMuZHJhd1NsaWNlcygKLSAgICAgICAgICBjdHgsCi0gICAgICAgICAgdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSwKLSAgICAgICAgICB2aWV3TFdvcmxkLAotICAgICAgICAgIHZpZXdSV29ybGQsCi0gICAgICAgICAgYm91bmRzLmhlaWdodCwKLSAgICAgICAgICB0aGlzLnJlY3RzXywKLSAgICAgICAgICB0aGlzLmFzeW5jU3R5bGVfKTsKLSAgICAgIGN0eC5yZXN0b3JlKCk7Ci0KLSAgICAgIGlmIChib3VuZHMuaGVpZ2h0IDw9IDYpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGZvbnRTaXplLCB5T2Zmc2V0OwotICAgICAgaWYgKGJvdW5kcy5oZWlnaHQgPCAxNSkgewotICAgICAgICBmb250U2l6ZSA9IDY7Ci0gICAgICAgIHlPZmZzZXQgPSAxLjA7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBmb250U2l6ZSA9IDEwOwotICAgICAgICB5T2Zmc2V0ID0gMi41OwotICAgICAgfQotICAgICAgdHIuYy5kcmF3TGFiZWxzKAotICAgICAgICAgIGN0eCwKLSAgICAgICAgICB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLAotICAgICAgICAgIHZpZXdMV29ybGQsCi0gICAgICAgICAgdmlld1JXb3JsZCwKLSAgICAgICAgICB0aGlzLnJlY3RzXywKLSAgICAgICAgICB0aGlzLmFzeW5jU3R5bGVfLAotICAgICAgICAgIGZvbnRTaXplLAotICAgICAgICAgIHlPZmZzZXQpOwotICAgIH0sCi0KLSAgICBhZGRFdmVudHNUb1RyYWNrTWFwOiBmdW5jdGlvbihldmVudFRvVHJhY2tNYXApIHsKLSAgICAgIGlmICh0aGlzLnJlY3RzXyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjdHNfID09PSBudWxsKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMucmVjdHNfLmZvckVhY2goZnVuY3Rpb24ocmVjdCkgewotICAgICAgICByZWN0LmFkZFRvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwLCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6IGZ1bmN0aW9uKAotICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKSB7Ci0gICAgICBmdW5jdGlvbiBvblJlY3QocmVjdCkgewotICAgICAgICByZWN0LmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICB9Ci0gICAgICBvblJlY3QgPSBvblJlY3QuYmluZCh0aGlzKTsKLSAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5yZWN0c18sCi0gICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5zdGFydDsgfSwKLSAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LmR1cmF0aW9uOyB9LAotICAgICAgICAgIGxvV1gsIGhpV1gsCi0gICAgICAgICAgb25SZWN0KTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQWRkIHRoZSBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBwcm92aWRlZCBldmVudCwgaWYgYW55LCB0byB0aGUKLSAgICAgKiBzZWxlY3Rpb24uCi0gICAgICogQHBhcmFtIHtyZWN0fSBUaGUgY3VycmVudCByZWN0LgotICAgICAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIHJlY3RzIGF3YXkgZnJvbSB0aGUgZXZlbnQgdG8gbG9vay4KLSAgICAgKiBAcGFyYW0ge1NlbGVjdGlvbn0gc2VsZWN0aW9uIFRoZSBzZWxlY3Rpb24gdG8gYWRkIGFuIGV2ZW50IHRvLAotICAgICAqIGlmIGZvdW5kLgotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgYW4gZXZlbnQgd2FzIGZvdW5kLgotICAgICAqIEBwcml2YXRlCi0gICAgICovCi0gICAgYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKGV2ZW50LCBvZmZzZXQsIHNlbGVjdGlvbikgewotICAgICAgdmFyIGluZGV4ID0gdHIuYi5maW5kRmlyc3RJbmRleEluQXJyYXkodGhpcy5yZWN0c18sIGZ1bmN0aW9uKHJlY3QpIHsKLSAgICAgICAgcmV0dXJuIHJlY3QubW9kZWxJdGVtID09PSBldmVudDsKLSAgICAgIH0pOwotICAgICAgaWYgKGluZGV4ID09PSAtMSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgbmV3SW5kZXggPSBpbmRleCArIG9mZnNldDsKLSAgICAgIGlmIChuZXdJbmRleCA8IDAgfHwgbmV3SW5kZXggPj0gdGhpcy5yZWN0c18ubGVuZ3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHRoaXMucmVjdHNfW25ld0luZGV4XS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucmVjdHNfLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIC8vIFRPRE8ocGV0cmNlcm1hayk6IFJhdGhlciB0aGFuIHVucGFja2luZyB0aGUgcHJveHkgaXRlbSBoZXJlLAotICAgICAgICAvLyB3ZSBzaG91bGQgcHJvYmFibHkgYWRkIGFuIGFkZFRvU2VsZWN0aW9uSWZNYXRjaGluZyhzZWxlY3Rpb24sIGZpbHRlcikKLSAgICAgICAgLy8gbWV0aG9kIHRvIFNlbGVjdGFibGVJdGVtICgjOTAwKS4KLSAgICAgICAgdmFyIG1vZGVsSXRlbSA9IHRoaXMucmVjdHNfW2ldLm1vZGVsSXRlbTsKLSAgICAgICAgaWYgKCFtb2RlbEl0ZW0pCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChmaWx0ZXIubWF0Y2hTbGljZShtb2RlbEl0ZW0pKQotICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKG1vZGVsSXRlbSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbih3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbikgewotICAgICAgdmFyIHJlY3QgPSB0ci5iLmZpbmRDbG9zZXN0SW50ZXJ2YWxJblNvcnRlZEludGVydmFscygKLSAgICAgICAgICB0aGlzLnJlY3RzXywKLSAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LnN0YXJ0OyB9LAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguZW5kOyB9LAotICAgICAgICAgIHdvcmxkWCwKLSAgICAgICAgICB3b3JsZE1heERpc3QpOwotCi0gICAgICBpZiAoIXJlY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgcmVjdC5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGggYSB0aXRsZS4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtQcm94eVNlbGVjdGFibGVJdGVtfQotICAgKi8KLSAgZnVuY3Rpb24gUmVjdChtb2RlbEl0ZW0sIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgZHVyYXRpb24pIHsKLSAgICB0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLmNhbGwodGhpcywgbW9kZWxJdGVtKTsKLSAgICB0aGlzLnRpdGxlID0gdGl0bGU7Ci0gICAgdGhpcy5jb2xvcklkID0gY29sb3JJZDsKLSAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7Ci0gICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uOwotICAgIHRoaXMuZW5kID0gc3RhcnQgKyBkdXJhdGlvbjsKLSAgfTsKLQotICBSZWN0LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLlByb3h5U2VsZWN0YWJsZUl0ZW0ucHJvdG90eXBlCi0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBSZWN0VHJhY2s6IFJlY3RUcmFjaywKLSAgICBSZWN0OiBSZWN0Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9yZWN0X3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcmVjdF90cmFja190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ZjEzZTEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9yZWN0X3RyYWNrX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NsaWNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZHJhd19oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgUmVjdFRyYWNrID0gdHIuYy50cmFja3MuUmVjdFRyYWNrOwotICB2YXIgUmVjdCA9IHRyLmMudHJhY2tzLlJlY3Q7Ci0gIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOwotICB2YXIgVmlld3BvcnQgPSB0ci5jLlRpbWVsaW5lVmlld3BvcnQ7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFJlY3RzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gUmVjdFRyYWNrKHZpZXdwb3J0KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOwotICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOwotCi0gICAgdHJhY2suaGVhZGluZyA9ICd0ZXN0QmFzaWNSZWN0cyc7Ci0gICAgdHJhY2sucmVjdHMgPSBbCi0gICAgICBuZXcgUmVjdCh1bmRlZmluZWQsICdhJywgMCwgMSwgMSksCi0gICAgICBuZXcgUmVjdCh1bmRlZmluZWQsICdiJywgMSwgMi4xLCA0LjgpLAotICAgICAgbmV3IFJlY3QodW5kZWZpbmVkLCAnYicsIDEsIDcsIDAuNSksCi0gICAgICBuZXcgUmVjdCh1bmRlZmluZWQsICdjJywgMiwgNy42LCAwLjQpCi0gICAgXTsKLQotICAgIHZhciBkdCA9IG5ldyB0ci5jLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOwotICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA4LjgsIHRyYWNrLmNsaWVudFdpZHRoKTsKLSAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2xpY2VzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gUmVjdFRyYWNrKHZpZXdwb3J0KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOwotICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOwotCi0gICAgdHJhY2suaGVhZGluZyA9ICd0ZXN0QmFzaWNTbGljZXMnOwotICAgIHRyYWNrLnJlY3RzID0gWwotICAgICAgbmV3IFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAxKSwKLSAgICAgIG5ldyBTbGljZSgnJywgJ2InLCAxLCAyLjEsIHt9LCA0LjgpLAotICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDcsIHt9LCAwLjUpLAotICAgICAgbmV3IFNsaWNlKCcnLCAnYycsIDIsIDcuNiwge30sIDAuNCkKLSAgICBdOwotCi0gICAgdmFyIGR0ID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7Ci0gICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDguOCwgdHJhY2suY2xpZW50V2lkdGgpOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX3Nocmlua2luZ1JlY3RTaXplJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7Ci0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gUmVjdFRyYWNrKHZpZXdwb3J0KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOwotICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOwotCi0gICAgdHJhY2suaGVhZGluZyA9ICd0ZXN0U2hyaW5raW5nUmVjdFNpemVzJzsKLSAgICB2YXIgeCA9IDA7Ci0gICAgdmFyIHdpZHRocyA9IFsxMCwgNSwgNCwgMywgMiwgMSwgMC41LCAwLjQsIDAuMywgMC4yLCAwLjEsIDAuMDVdOwotICAgIHZhciBzbGljZXMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpZHRocy5sZW5ndGg7IGkrKykgewotICAgICAgdmFyIHMgPSBuZXcgUmVjdCh1bmRlZmluZWQsICdhJywgMSwgeCwgd2lkdGhzW2ldKTsKLSAgICAgIHggKz0gcy5kdXJhdGlvbiArIDAuNTsKLSAgICAgIHNsaWNlcy5wdXNoKHMpOwotICAgIH0KLSAgICB0cmFjay5yZWN0cyA9IHNsaWNlczsKLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgMS4xICogeCwgdHJhY2suY2xpZW50V2lkdGgpOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlX2VsaWRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG9wdERpY3RzID0gW3sgdHJhY2tOYW1lOiAnZWxpZGVPZmYnLCBlbGlkZTogZmFsc2UgfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0cmFja05hbWU6ICdlbGlkZU9uJywgZWxpZGU6IHRydWUgfV07Ci0KLSAgICB2YXIgdG9vTG9uZ1RpdGxlID0gJ1VubGVzcyBlbGlkaW5nIHRoaXMgU0hPVUxEIE5PVCBCRSBESVNQTEFZRUQuICAnOwotICAgIHZhciBiaWdUaXRsZSA9ICdWZXJ5IGJpZyB0aXRsZSBuYW1lIHRoYXQgZ29lcyBvbiBsb25nZXIgJyArCi0gICAgICAgICAgICAgICAgICAgJ3RoYW4geW91IG1heSBleHBlY3QnOwotCi0gICAgZm9yICh2YXIgZGljdEluZGV4IGluIG9wdERpY3RzKSB7Ci0gICAgICB2YXIgZGljdCA9IG9wdERpY3RzW2RpY3RJbmRleF07Ci0KLSAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkaWN0LnRyYWNrTmFtZSkpOwotCi0gICAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKLSAgICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgICB2YXIgdHJhY2sgPSBuZXcgUmVjdFRyYWNrKHZpZXdwb3J0KTsKLSAgICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotCi0gICAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKLSAgICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOwotCi0gICAgICB0cmFjay5TSE9VTERfRUxJREVfVEVYVCA9IGRpY3QuZWxpZGU7Ci0gICAgICB0cmFjay5oZWFkaW5nID0gJ1Zpc3VhbDogJyArIGRpY3QudHJhY2tOYW1lOwotICAgICAgdHJhY2sucmVjdHMgPSBbCi0gICAgICAgIC8vIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgYXJncywgb3B0X2R1cmF0aW9uCi0gICAgICAgIG5ldyBSZWN0KHVuZGVmaW5lZCwgJ2EgJyArIHRvb0xvbmdUaXRsZSArIGJpZ1RpdGxlLCAwLCAxLCAxKSwKLSAgICAgICAgbmV3IFJlY3QodW5kZWZpbmVkLCBiaWdUaXRsZSwgMSwgMi4xLCA0LjgpLAotICAgICAgICBuZXcgUmVjdCh1bmRlZmluZWQsICdjY2NjIGNjY2MgY2NjYycsIDEsIDcsIDAuNSksCi0gICAgICAgIG5ldyBSZWN0KHVuZGVmaW5lZCwgJ2QnLCAyLCA3LjYsIDEuMCkKLSAgICAgIF07Ci0gICAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA5LjUsIHRyYWNrLmNsaWVudFdpZHRoKTsKLSAgICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0gICAgfQotICB9KTsKLQotICB0ZXN0KCdmaW5kQWxsT2JqZWN0c01hdGNoaW5nSW5SZWN0VHJhY2snLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdHJhY2sgPSBuZXcgUmVjdFRyYWNrKG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoKSk7Ci0gICAgdHJhY2sucmVjdHMgPSBbCi0gICAgICBuZXcgU2xpY2UoJycsICdhJywgMCwgMSwge30sIDEpLAotICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDIuMSwge30sIDQuOCksCi0gICAgICBuZXcgU2xpY2UoJycsICdiJywgMSwgNywge30sIDAuNSksCi0gICAgICBuZXcgU2xpY2UoJycsICdjJywgMiwgNy42LCB7fSwgMC40KQotICAgIF07Ci0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uKAotICAgICAgICBuZXcgdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2InKSwgc2VsZWN0aW9uKTsKLQotICAgIGFzc2VydC5lcXVhbCgyLCBzZWxlY3Rpb24ubGVuZ3RoKTsKLSAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbMV0ubW9kZWxJdGVtLCBzZWxlY3Rpb25bMF0pOwotICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1syXS5tb2RlbEl0ZW0sIHNlbGVjdGlvblsxXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdGlvbkhpdFRlc3RpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGVzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGVzdEVsLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU2NvcGVkU3R5bGUoJ2hlYWRpbmcgeyB3aWR0aDogMTAwcHg7IH0nKSk7Ci0gICAgdGVzdEVsLnN0eWxlLndpZHRoID0gJzYwMHB4JzsKLQotICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh0ZXN0RWwpOwotICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgIHRlc3RFbC5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBSZWN0VHJhY2sodmlld3BvcnQpOwotICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0ZXN0RWwpOwotCi0gICAgZHJhd2luZ0NvbnRhaW5lci51cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfKCk7Ci0KLSAgICB0cmFjay5oZWFkaW5nID0gJ3Rlc3RTZWxlY3Rpb25IaXRUZXN0aW5nJzsKLSAgICB0cmFjay5yZWN0cyA9IFsKLSAgICAgIG5ldyBTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMSksCi0gICAgICBuZXcgU2xpY2UoJycsICdiJywgMSwgNSwge30sIDQuOCkKLSAgICBdOwotICAgIHZhciB5ID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgNTsKLSAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgdmFyIHdXID0gMTA7Ci0gICAgdmFyIHZXID0gZHJhd2luZ0NvbnRhaW5lci5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7Ci0KLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgd1csIHZXICogcGl4ZWxSYXRpbyk7Ci0gICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgdmFyIHggPSAoMS41IC8gd1cpICogdlc7Ci0gICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uKAotICAgICAgICB4LCB4ICsgMSwgeSwgeSArIDEsIHNlbGVjdGlvbik7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnJlY3RzWzBdLm1vZGVsSXRlbSwgc2VsZWN0aW9uWzBdKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgeCA9ICgyLjEgLyB3VykgKiB2VzsKLSAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCi0gICAgICAgIHgsIHggKyAxLCB5LCB5ICsgMSwgc2VsZWN0aW9uKTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgc2VsZWN0aW9uLmxlbmd0aCk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHggPSAoNi44IC8gd1cpICogdlc7Ci0gICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uKAotICAgICAgICB4LCB4ICsgMSwgeSwgeSArIDEsIHNlbGVjdGlvbik7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnJlY3RzWzFdLm1vZGVsSXRlbSwgc2VsZWN0aW9uWzBdKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgeCA9ICg5LjkgLyB3VykgKiB2VzsKLSAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCi0gICAgICAgIHgsIHggKyAxLCB5LCB5ICsgMSwgc2VsZWN0aW9uKTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgc2VsZWN0aW9uLmxlbmd0aCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2VsaWRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRlc3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KHRlc3RFbCk7Ci0gICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIuYy50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7Ci0gICAgdGVzdEVsLmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IFJlY3RUcmFjayh2aWV3cG9ydCk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRlc3RFbCk7Ci0KLSAgICBkcmF3aW5nQ29udGFpbmVyLnVwZGF0ZUNhbnZhc1NpemVJZk5lZWRlZF8oKTsKLQotICAgIHZhciBiaWd0aXRsZSA9ICdTdXBlciBkdXBlciBsb25nIGxvbmcgdGl0bGUgJyArCi0gICAgICAgICdob2x5IG1vbHkgd2hlbiBkaWQgeW91IGdldCBzbyB2ZXJib3NlPyc7Ci0gICAgdmFyIHNtYWxsdGl0bGUgPSAnc21hbGwnOwotICAgIHRyYWNrLmhlYWRpbmcgPSAndGVzdEVsaWRlJzsKLSAgICB0cmFjay5yZWN0cyA9IFsKLSAgICAgIC8vIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgYXJncywgb3B0X2R1cmF0aW9uCi0gICAgICBuZXcgU2xpY2UoJycsIGJpZ3RpdGxlLCAwLCAxLCB7fSwgMSksCi0gICAgICBuZXcgU2xpY2UoJycsIHNtYWxsdGl0bGUsIDEsIDIsIHt9LCAxKQotICAgIF07Ci0gICAgdmFyIGR0ID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7Ci0gICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDMuMywgdHJhY2suY2xpZW50V2lkdGgpOwotICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7Ci0KLSAgICB2YXIgc3RyaW5nV2lkdGhQYWlyID0gdW5kZWZpbmVkOwotICAgIHZhciBwaXhXaWR0aCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTsKLQotICAgIC8vIFNtYWxsIHRpdGxlcyBvbiBiaWcgc2xpY2VzIGFyZSBub3QgZWxpZGVkLgotICAgIHN0cmluZ1dpZHRoUGFpciA9Ci0gICAgICAgIHRyLmMuZWxpZGVkVGl0bGVDYWNoZV8uZ2V0KAotICAgICAgICAgICAgdHJhY2suY29udGV4dCgpLAotICAgICAgICAgICAgcGl4V2lkdGgsCi0gICAgICAgICAgICBzbWFsbHRpdGxlLAotICAgICAgICAgICAgdHIuYy5lbGlkZWRUaXRsZUNhY2hlXy5sYWJlbFdpZHRoKAotICAgICAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKLSAgICAgICAgICAgICAgICBzbWFsbHRpdGxlKSwKLSAgICAgICAgICAgIDEpOwotICAgIGFzc2VydC5lcXVhbChzbWFsbHRpdGxlLCBzdHJpbmdXaWR0aFBhaXIuc3RyaW5nKTsKLQotICAgIC8vIEtlZXAgc2hyaW5raW5nIHRoZSBzbGljZSB1bnRpbCBlbGlkaW5nIHN0YXJ0cy4KLSAgICB2YXIgZWxpZGVkV2hlblNtYWxsRW5vdWdoID0gZmFsc2U7Ci0gICAgZm9yICh2YXIgc2xpY2VMZW5ndGggPSAxOyBzbGljZUxlbmd0aCA+PSAwLjAwMDAxOyBzbGljZUxlbmd0aCAvPSAyLjApIHsKLSAgICAgIHN0cmluZ1dpZHRoUGFpciA9Ci0gICAgICAgICAgdHIuYy5lbGlkZWRUaXRsZUNhY2hlXy5nZXQoCi0gICAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKLSAgICAgICAgICAgICAgcGl4V2lkdGgsCi0gICAgICAgICAgICAgIHNtYWxsdGl0bGUsCi0gICAgICAgICAgICAgIHRyLmMuZWxpZGVkVGl0bGVDYWNoZV8ubGFiZWxXaWR0aCgKLSAgICAgICAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKLSAgICAgICAgICAgICAgICAgIHNtYWxsdGl0bGUpLAotICAgICAgICAgICAgICBzbGljZUxlbmd0aCk7Ci0gICAgICBpZiAoc3RyaW5nV2lkdGhQYWlyLnN0cmluZy5sZW5ndGggPCBzbWFsbHRpdGxlLmxlbmd0aCkgewotICAgICAgICBlbGlkZWRXaGVuU21hbGxFbm91Z2ggPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0gICAgYXNzZXJ0LmlzVHJ1ZShlbGlkZWRXaGVuU21hbGxFbm91Z2gpOwotCi0gICAgLy8gQmlnIHRpdGxlcyBhcmUgZWxpZGVkIGltbWVkaWF0ZWx5LgotICAgIHZhciBzdXBlckJpZ1RpdGxlID0gJyc7Ci0gICAgZm9yICh2YXIgeCA9IDA7IHggPCAxMDsgeCsrKSB7Ci0gICAgICBzdXBlckJpZ1RpdGxlICs9IGJpZ3RpdGxlOwotICAgIH0KLSAgICBzdHJpbmdXaWR0aFBhaXIgPQotICAgICAgICB0ci5jLmVsaWRlZFRpdGxlQ2FjaGVfLmdldCgKLSAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKLSAgICAgICAgICAgIHBpeFdpZHRoLAotICAgICAgICAgICAgc3VwZXJCaWdUaXRsZSwKLSAgICAgICAgICAgIHRyLmMuZWxpZGVkVGl0bGVDYWNoZV8ubGFiZWxXaWR0aCgKLSAgICAgICAgICAgICAgICB0cmFjay5jb250ZXh0KCksCi0gICAgICAgICAgICAgICAgc3VwZXJCaWdUaXRsZSksCi0gICAgICAgICAgICAxKTsKLSAgICBhc3NlcnQuaXNUcnVlKHN0cmluZ1dpZHRoUGFpci5zdHJpbmcubGVuZ3RoIDwgc3VwZXJCaWdUaXRsZS5sZW5ndGgpOwotCi0gICAgLy8gQW5kIGVsaWRlZCB0ZXh0IGVuZHMgd2l0aCAuLi4KLSAgICB2YXIgbGVuID0gc3RyaW5nV2lkdGhQYWlyLnN0cmluZy5sZW5ndGg7Ci0gICAgYXNzZXJ0LmVxdWFsKCcuLi4nLCBzdHJpbmdXaWR0aFBhaXIuc3RyaW5nLnN1YnN0cmluZyhsZW4gLSAzLCBsZW4pKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVjdFRyYWNrQWRkSXRlbU5lYXJUb1Byb3ZpZGVkRXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdHJhY2sgPSBuZXcgUmVjdFRyYWNrKG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoKSk7Ci0gICAgdHJhY2sucmVjdHMgPSBbCi0gICAgICBuZXcgU2xpY2UoJycsICdhJywgMCwgMSwge30sIDEpLAotICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDIuMSwge30sIDQuOCksCi0gICAgICBuZXcgU2xpY2UoJycsICdiJywgMSwgNywge30sIDAuNSksCi0gICAgICBuZXcgU2xpY2UoJycsICdjJywgMiwgNy42LCB7fSwgMC40KQotICAgIF07Ci0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uKAotICAgICAgICBuZXcgdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2InKSwgc2VsKTsKLSAgICB2YXIgcmV0OwotCi0gICAgLy8gU2VsZWN0IHRvIHRoZSByaWdodCBvZiBCLgotICAgIHZhciBzZWxSaWdodCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICByZXQgPSB0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbihzZWxbMF0sIDEsIHNlbFJpZ2h0KTsKLSAgICBhc3NlcnQuaXNUcnVlKHJldCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnJlY3RzWzJdLm1vZGVsSXRlbSwgc2VsUmlnaHRbMF0pOwotCi0gICAgLy8gU2VsZWN0IHRvIHRoZSByaWdodCBvZiB0aGUgMm5kIGIuCi0gICAgdmFyIHNlbFJpZ2h0MiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICByZXQgPSB0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbihzZWxbMF0sIDIsIHNlbFJpZ2h0Mik7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShyZXQpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1szXS5tb2RlbEl0ZW0sIHNlbFJpZ2h0MlswXSk7Ci0KLSAgICAvLyBTZWxlY3QgdG8gMiB0byB0aGUgcmlnaHQgb2YgdGhlIDJuZCBiLgotICAgIHZhciBzZWxSaWdodE9mUmlnaHQgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgcmV0ID0gdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCi0gICAgICAgIHNlbFJpZ2h0WzBdLCAxLCBzZWxSaWdodE9mUmlnaHQpOwotICAgIGFzc2VydC5pc1RydWUocmV0KTsKLSAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbM10ubW9kZWxJdGVtLCBzZWxSaWdodE9mUmlnaHRbMF0pOwotCi0gICAgLy8gU2VsZWN0IHRvIHRoZSByaWdodCBvZiB0aGUgcmlnaHRtb3N0IHNsaWNlLgotICAgIHZhciBzZWxOb25lID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHJldCA9IHRyYWNrLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAotICAgICAgICBzZWxSaWdodE9mUmlnaHRbMF0sIDEsIHNlbE5vbmUpOwotICAgIGFzc2VydC5pc0ZhbHNlKHJldCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDAsIHNlbE5vbmUubGVuZ3RoKTsKLQotICAgIC8vIFNlbGVjdCBBIGFuZCB0aGVuIHNlbGVjdCBsZWZ0LgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgdHJhY2suYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbigKLSAgICAgICAgbmV3IHRyLmMuVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdhJyksIHNlbCk7Ci0gICAgdmFyIHJldDsKLQotICAgIHNlbE5vbmUgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgcmV0ID0gdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oc2VsWzBdLCAtMSwgc2VsTm9uZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UocmV0KTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgc2VsTm9uZS5sZW5ndGgpOwotICB9KTsKLQotICB0ZXN0KCdyZWN0VHJhY2tBZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0cmFjayA9IG5ldyBSZWN0VHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5yZWN0cyA9IFsKLSAgICAgIG5ldyBTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMSksCi0gICAgICBuZXcgU2xpY2UoJycsICdiJywgMSwgMi4xLCB7fSwgNC44KSwKLSAgICAgIG5ldyBTbGljZSgnJywgJ2InLCAxLCA3LCB7fSwgMC41KSwKLSAgICAgIG5ldyBTbGljZSgnJywgJ2MnLCAyLCA3LjYsIHt9LCAwLjQpCi0gICAgXTsKLQotICAgIC8vIEJlZm9yZSB3aXRoIG5vdCByYW5nZS4KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDAsIDAsIDAsIDAsIHNlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDAsIHNlbC5sZW5ndGgpOwotCi0gICAgLy8gQmVmb3JlIHdpdGggbmVnYXRpdmUgcmFuZ2UuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigxLjUsIC0xMCwgMCwgMCwgc2VsKTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgc2VsLmxlbmd0aCk7Ci0KLSAgICAvLyBCZWZvcmUgZmlyc3Qgc2xpY2UuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigwLjUsIDEsIDAsIDAsIHNlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIHNlbC5sZW5ndGgpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1swXS5tb2RlbEl0ZW0sIHNlbFswXSk7Ci0KLSAgICAvLyBXaXRoaW4gZmlyc3Qgc2xpY2UgY2xvc2VyIHRvIHN0YXJ0LgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMS4zLCAxLCAwLCAwLCBzZWwpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1swXS5tb2RlbEl0ZW0sIHNlbFswXSk7Ci0KLSAgICAvLyBCZXR3ZWVuIHNsaWNlcyB3aXRoIGdvb2QgcmFuZ2UuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigyLjA4LCAzLCAwLCAwLCBzZWwpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1sxXS5tb2RlbEl0ZW0sIHNlbFswXSk7Ci0KLSAgICAvLyBCZXR3ZWVuIHNsaWNlcyB3aXRoIGJhZCByYW5nZS4KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDIuMDUsIDAuMDMsIDAsIDAsIHNlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDAsIHNlbC5sZW5ndGgpOwotCi0gICAgLy8gV2l0aGluIHNsaWNlIGNsb3NlciB0byBlbmQuCi0gICAgdmFyIHNlbCA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbig2LCAxMDAsIDAsIDAsIHNlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnJlY3RzWzFdLm1vZGVsSXRlbSwgc2VsWzBdKTsKLQotICAgIC8vIFdpdGhpbiBzbGljZSB3aXRoIGJhZCByYW5nZS4KLSAgICB2YXIgc2VsID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDEuOCwgMC4xLCAwLCAwLCBzZWwpOwotICAgIGFzc2VydC5lcXVhbCgwLCBzZWwubGVuZ3RoKTsKLQotICAgIC8vIEFmdGVyIGxhc3Qgc2xpY2Ugd2l0aCBnb29kIHJhbmdlLgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oOC41LCAxLCAwLCAwLCBzZWwpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1szXS5tb2RlbEl0ZW0sIHNlbFswXSk7Ci0KLSAgICAvLyBBZnRlciBsYXN0IHNsaWNlIHdpdGggYmFkIHJhbmdlLgotICAgIHZhciBzZWwgPSBuZXcgU2VsZWN0aW9uKCk7Ci0gICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMTAsIDEsIDAsIDAsIHNlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDAsIHNlbC5sZW5ndGgpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3J1bGVyX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3J1bGVyX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZDZhZGYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9ydWxlcl90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzcyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9ydWxlcl90cmFjay5jc3MiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvY29uc3RhbnRzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvaGVhZGluZ190cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9kcmF3X2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIHRoZSBydWxlci4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtIZWFkaW5nVHJhY2t9Ci0gICAqLwotICB2YXIgUnVsZXJUcmFjayA9IHRyLmIudWkuZGVmaW5lKCdydWxlci10cmFjaycsIHRyLmMudHJhY2tzLkhlYWRpbmdUcmFjayk7Ci0KLSAgdmFyIGxvZ09mMTAgPSBNYXRoLmxvZygxMCk7Ci0gIGZ1bmN0aW9uIGxvZzEwKHgpIHsKLSAgICByZXR1cm4gTWF0aC5sb2coeCkgLyBsb2dPZjEwOwotICB9Ci0KLSAgUnVsZXJUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdydWxlci10cmFjaycpOwotICAgICAgdGhpcy5zdHJpbmdzX3NlY3NfID0gW107Ci0gICAgICB0aGlzLnN0cmluZ3NfbXNlY3NfID0gW107Ci0gICAgICB0aGlzLnN0cmluZ3NfdXNlY3NfID0gW107Ci0gICAgICB0aGlzLnN0cmluZ3NfbnNlY3NfID0gW107Ci0KLSAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2VfID0gdGhpcy52aWV3cG9ydENoYW5nZV8uYmluZCh0aGlzKTsKLSAgICAgIHZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMudmlld3BvcnRDaGFuZ2VfKTsKLQotICAgIH0sCi0KLSAgICBkZXRhY2g6IGZ1bmN0aW9uKCkgewotICAgICAgdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKTsKLSAgICAgIHRoaXMudmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdwb3J0Q2hhbmdlXyk7Ci0gICAgfSwKLQotICAgIHZpZXdwb3J0Q2hhbmdlXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmlzRW1wdHkpCi0gICAgICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgndGFsbC1tb2RlJyk7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndGFsbC1tb2RlJyk7Ci0gICAgfSwKLQotICAgIGRyYXc6IGZ1bmN0aW9uKHR5cGUsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKLSAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIHRyLmMudHJhY2tzLkRyYXdUeXBlLkdSSUQ6Ci0gICAgICAgICAgdGhpcy5kcmF3R3JpZF8odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuTUFSS0VSUzoKLSAgICAgICAgICBpZiAoIXRoaXMudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5pc0VtcHR5KQotICAgICAgICAgICAgdGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmRyYXcodGhpcy5jb250ZXh0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZHJhd0dyaWRfOiBmdW5jdGlvbih2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7Ci0gICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7Ci0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0KLSAgICAgIHZhciBjYW52YXNCb3VuZHMgPSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIHRyYWNrQm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciB3aWR0aCA9IGNhbnZhc0JvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW87Ci0gICAgICB2YXIgaGVpZ2h0ID0gdHJhY2tCb3VuZHMuaGVpZ2h0ICogcGl4ZWxSYXRpbzsKLQotICAgICAgdmFyIGhhc0ludGVyZXN0UmFuZ2UgPSAhdGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmlzRW1wdHk7Ci0KLSAgICAgIHZhciBydWxlckhlaWdodCA9IGhhc0ludGVyZXN0UmFuZ2UgPyAoaGVpZ2h0ICogMikgLyA1IDogaGVpZ2h0OwotCi0gICAgICB2YXIgdnAgPSB0aGlzLnZpZXdwb3J0OwotICAgICAgdmFyIGR0ID0gdnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0KLSAgICAgIHZhciBpZGVhbE1ham9yTWFya0Rpc3RhbmNlUGl4ID0gMTUwICogcGl4ZWxSYXRpbzsKLSAgICAgIHZhciBpZGVhbE1ham9yTWFya0Rpc3RhbmNlV29ybGQgPQotICAgICAgICAgIGR0LnhWaWV3VmVjdG9yVG9Xb3JsZChpZGVhbE1ham9yTWFya0Rpc3RhbmNlUGl4KTsKLQotICAgICAgdmFyIG1ham9yTWFya0Rpc3RhbmNlV29ybGQ7Ci0KLSAgICAgIC8vIFRoZSBjb25zZXJ2YXRpdmUgZ3Vlc3MgaXMgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIDAuMSwgMSwgMTAsIDEwMCwgZXRjLgotICAgICAgdmFyIGNvbnNlcnZhdGl2ZUd1ZXNzID0KLSAgICAgICAgICBNYXRoLnBvdygxMCwgTWF0aC5jZWlsKGxvZzEwKGlkZWFsTWFqb3JNYXJrRGlzdGFuY2VXb3JsZCkpKTsKLQotICAgICAgLy8gT25jZSB3ZSBoYXZlIGEgY29uc2VydmF0aXZlIGd1ZXNzLCBjb25zaWRlciB0aGluZ3MgdGhhdCBldmVubHkgYWRkIHVwCi0gICAgICAvLyB0byB0aGUgY29uc2VydmF0aXZlIGd1ZXNzLCBlLmcuIDAuNSwgMC4yLCAwLjEgUGljayB0aGUgb25lIHRoYXQgc3RpbGwKLSAgICAgIC8vIGV4Y2VlZHMgdGhlIGlkZWFsIG1hcmsgZGlzdGFuY2UuCi0gICAgICB2YXIgZGl2aXNvcnMgPSBbMTAsIDUsIDIsIDFdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZpc29ycy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgdGlnaHRlbmVkR3Vlc3MgPSBjb25zZXJ2YXRpdmVHdWVzcyAvIGRpdmlzb3JzW2ldOwotICAgICAgICBpZiAoZHQueFdvcmxkVmVjdG9yVG9WaWV3KHRpZ2h0ZW5lZEd1ZXNzKSA8IGlkZWFsTWFqb3JNYXJrRGlzdGFuY2VQaXgpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG1ham9yTWFya0Rpc3RhbmNlV29ybGQgPSBjb25zZXJ2YXRpdmVHdWVzcyAvIGRpdmlzb3JzW2kgLSAxXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0KLSAgICAgIHZhciB1bml0OwotICAgICAgdmFyIHVuaXREaXZpc29yOwotICAgICAgdmFyIHRpY2tMYWJlbHMgPSB1bmRlZmluZWQ7Ci0gICAgICBpZiAobWFqb3JNYXJrRGlzdGFuY2VXb3JsZCA8IDAuMDAwMSkgewotICAgICAgICB1bml0ID0gJ25zJzsKLSAgICAgICAgdW5pdERpdmlzb3IgPSAwLjAwMDAwMTsKLSAgICAgICAgdGlja0xhYmVscyA9IHRoaXMuc3RyaW5nc19uc2Vjc187Ci0gICAgICB9IGVsc2UgaWYgKG1ham9yTWFya0Rpc3RhbmNlV29ybGQgPCAwLjEpIHsKLSAgICAgICAgdW5pdCA9ICd1cyc7Ci0gICAgICAgIHVuaXREaXZpc29yID0gMC4wMDE7Ci0gICAgICAgIHRpY2tMYWJlbHMgPSB0aGlzLnN0cmluZ3NfdXNlY3NfOwotICAgICAgfSBlbHNlIGlmIChtYWpvck1hcmtEaXN0YW5jZVdvcmxkIDwgMTAwKSB7Ci0gICAgICAgIHVuaXQgPSAnbXMnOwotICAgICAgICB1bml0RGl2aXNvciA9IDE7Ci0gICAgICAgIHRpY2tMYWJlbHMgPSB0aGlzLnN0cmluZ3NfbXNlY3NfOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdW5pdCA9ICdzJzsKLSAgICAgICAgdW5pdERpdmlzb3IgPSAxMDAwOwotICAgICAgICB0aWNrTGFiZWxzID0gdGhpcy5zdHJpbmdzX3NlY3NfOwotICAgICAgfQotCi0gICAgICB2YXIgbnVtVGlja3NQZXJNYWpvciA9IDU7Ci0gICAgICB2YXIgbWlub3JNYXJrRGlzdGFuY2VXb3JsZCA9IG1ham9yTWFya0Rpc3RhbmNlV29ybGQgLyBudW1UaWNrc1Blck1ham9yOwotICAgICAgdmFyIG1pbm9yTWFya0Rpc3RhbmNlUHggPSBkdC54V29ybGRWZWN0b3JUb1ZpZXcobWlub3JNYXJrRGlzdGFuY2VXb3JsZCk7Ci0KLSAgICAgIHZhciBmaXJzdE1ham9yTWFyayA9Ci0gICAgICAgICAgTWF0aC5mbG9vcih2aWV3TFdvcmxkIC8gbWFqb3JNYXJrRGlzdGFuY2VXb3JsZCkgKgotICAgICAgICAgICAgICBtYWpvck1hcmtEaXN0YW5jZVdvcmxkOwotCi0gICAgICB2YXIgbWlub3JUaWNrSCA9IE1hdGguZmxvb3IocnVsZXJIZWlnaHQgKiAwLjI1KTsKLQotICAgICAgY3R4LnNhdmUoKTsKLQotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgICAgY3R4LmxpbmVXaWR0aCA9IE1hdGgucm91bmQocGl4ZWxSYXRpbyk7Ci0KLSAgICAgIC8vIEFwcGx5IHN1YnBpeGVsIHRyYW5zbGF0ZSB0byBnZXQgY3Jpc3AgbGluZXMuCi0gICAgICAvLyBodHRwOi8vd3d3Lm1vYnRvd2Vycy5jb20vaHRtbDUtY2FudmFzLWNyaXNwLWxpbmVzLWV2ZXJ5LXRpbWUvCi0gICAgICB2YXIgY3Jpc3BMaW5lQ29ycmVjdGlvbiA9IChjdHgubGluZVdpZHRoICUgMikgLyAyOwotICAgICAgY3R4LnRyYW5zbGF0ZShjcmlzcExpbmVDb3JyZWN0aW9uLCAtY3Jpc3BMaW5lQ29ycmVjdGlvbik7Ci0KLSAgICAgIGN0eC5maWxsU3R5bGUgPSAncmdiKDAsIDAsIDApJzsKLSAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMCwgMCwgMCknOwotICAgICAgY3R4LnRleHRBbGlnbiA9ICdsZWZ0JzsKLSAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAndG9wJzsKLQotICAgICAgY3R4LmZvbnQgPSAoOSAqIHBpeGVsUmF0aW8pICsgJ3B4IHNhbnMtc2VyaWYnOwotCi0gICAgICB2cC5tYWpvck1hcmtQb3NpdGlvbnMgPSBbXTsKLQotICAgICAgLy8gRWFjaCBpdGVyYXRpb24gb2YgdGhpcyBsb29wIGRyYXdzIG9uZSBtYWpvciBtYXJrCi0gICAgICAvLyBhbmQgbnVtVGlja3NQZXJNYWpvciBtaW5vciB0aWNrcy4KLSAgICAgIC8vCi0gICAgICAvLyBSZW5kZXJpbmcgY2FuJ3QgYmUgZG9uZSBpbiB3b3JsZCBzcGFjZSBiZWNhdXNlIGNhbnZhcyB0cmFuc2Zvcm1zCi0gICAgICAvLyBhZmZlY3QgbGluZSB3aWR0aC4gU28sIGRvIHRoZSBjb252ZXJzaW9ucyBtYW51YWxseS4KLSAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAgIGZvciAodmFyIGN1clggPSBmaXJzdE1ham9yTWFyazsKLSAgICAgICAgICAgY3VyWCA8IHZpZXdSV29ybGQ7Ci0gICAgICAgICAgIGN1clggKz0gbWFqb3JNYXJrRGlzdGFuY2VXb3JsZCkgewotCi0gICAgICAgIHZhciBjdXJYVmlldyA9IE1hdGguZmxvb3IoZHQueFdvcmxkVG9WaWV3KGN1clgpKTsKLQotICAgICAgICB2YXIgdW5pdFZhbHVlID0gY3VyWCAvIHVuaXREaXZpc29yOwotICAgICAgICB2YXIgcm91bmRlZFVuaXRWYWx1ZSA9IE1hdGgucm91bmQodW5pdFZhbHVlICogMTAwMDAwKSAvIDEwMDAwMDsKLQotICAgICAgICBpZiAoIXRpY2tMYWJlbHNbcm91bmRlZFVuaXRWYWx1ZV0pCi0gICAgICAgICAgdGlja0xhYmVsc1tyb3VuZGVkVW5pdFZhbHVlXSA9IHJvdW5kZWRVbml0VmFsdWUgKyAnICcgKyB1bml0OwotICAgICAgICBjdHguZmlsbFRleHQodGlja0xhYmVsc1tyb3VuZGVkVW5pdFZhbHVlXSwKLSAgICAgICAgICAgICAgICAgICAgIGN1clhWaWV3ICsgKDIgKiBwaXhlbFJhdGlvKSwgMCk7Ci0KLSAgICAgICAgdnAubWFqb3JNYXJrUG9zaXRpb25zLnB1c2goY3VyWFZpZXcpOwotCi0gICAgICAgIC8vIE1ham9yIG1hcmsKLSAgICAgICAgdHIuYy5kcmF3TGluZShjdHgsIGN1clhWaWV3LCAwLCBjdXJYVmlldywgcnVsZXJIZWlnaHQpOwotCi0gICAgICAgIC8vIE1pbm9yIG1hcmtzCi0gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgbnVtVGlja3NQZXJNYWpvcjsgKytpKSB7Ci0gICAgICAgICAgdmFyIHhWaWV3ID0gTWF0aC5mbG9vcihjdXJYVmlldyArIG1pbm9yTWFya0Rpc3RhbmNlUHggKiBpKTsKLSAgICAgICAgICB0ci5jLmRyYXdMaW5lKGN0eCwKLSAgICAgICAgICAgICAgeFZpZXcsIHJ1bGVySGVpZ2h0IC0gbWlub3JUaWNrSCwKLSAgICAgICAgICAgICAgeFZpZXcsIHJ1bGVySGVpZ2h0KTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBEcmF3IGJvdHRvbSBiYXIuCi0gICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDAsIDAsIDApJzsKLSAgICAgIHRyLmMuZHJhd0xpbmUoY3R4LCAwLCBoZWlnaHQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgY3R4LnN0cm9rZSgpOwotCi0gICAgICAvLyBHaXZlIGRpc3RhbmNlIGJldHdlZW4gZGlyZWN0bHkgYWRqYWNlbnQgbWFya2Vycy4KLSAgICAgIGlmICghaGFzSW50ZXJlc3RSYW5nZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBEcmF3IG1pZGRsZSBiYXIuCi0gICAgICB0ci5jLmRyYXdMaW5lKGN0eCwgMCwgcnVsZXJIZWlnaHQsIHdpZHRoLCBydWxlckhlaWdodCk7Ci0gICAgICBjdHguc3Ryb2tlKCk7Ci0KLSAgICAgIC8vIERpc3RhbmNlIFZhcmlhYmxlcy4KLSAgICAgIHZhciBkaXNwbGF5RGlzdGFuY2U7Ci0gICAgICB2YXIgZGlzcGxheVRleHRDb2xvciA9ICdyZ2IoMCwwLDApJzsKLQotICAgICAgLy8gQXJyb3cgVmFyaWFibGVzLgotICAgICAgdmFyIGFycm93U3BhY2luZyA9IDEwICogcGl4ZWxSYXRpbzsKLSAgICAgIHZhciBhcnJvd0NvbG9yID0gJ3JnYigxMjgsMTIxLDEyMSknOwotICAgICAgdmFyIGFycm93UG9zWSA9IHJ1bGVySGVpZ2h0ICogMS43NTsKLSAgICAgIHZhciBhcnJvd1dpZHRoVmlldyA9IDMgKiBwaXhlbFJhdGlvOwotICAgICAgdmFyIGFycm93TGVuZ3RoVmlldyA9IDEwICogcGl4ZWxSYXRpbzsKLSAgICAgIHZhciBzcGFjZUZvckFycm93c1ZpZXcgPSAyICogKGFycm93V2lkdGhWaWV3ICsgYXJyb3dTcGFjaW5nKTsKLQotICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwotICAgICAgY3R4LmZvbnQgPSAoMTQgKiBwaXhlbFJhdGlvKSArICdweCBzYW5zLXNlcmlmJzsKLSAgICAgIHZhciB0ZXh0UG9zWSA9IGFycm93UG9zWTsKLQotICAgICAgdmFyIGludGVyZXN0UmFuZ2UgPSB2cC5pbnRlcmVzdFJhbmdlOwotCi0gICAgICAvLyBJZiB0aGUgcmFuZ2UgaXMgemVybywgZHJhdyBpdCdzIG1pbiB0aW1lc3RhbXAgbmV4dCB0byB0aGUgbGluZS4KLSAgICAgIGlmIChpbnRlcmVzdFJhbmdlLnJhbmdlID09PSAwKSB7Ci0gICAgICAgIHZhciBtYXJrZXJXb3JsZCA9IGludGVyZXN0UmFuZ2UubWluOwotICAgICAgICB2YXIgbWFya2VyVmlldyA9IGR0LnhXb3JsZFRvVmlldyhtYXJrZXJXb3JsZCk7Ci0gICAgICAgIHZhciBkaXNwbGF5VmFsdWUgPSBtYXJrZXJXb3JsZCAvIHVuaXREaXZpc29yOwotICAgICAgICBkaXNwbGF5VmFsdWUgPSBNYXRoLmFicygoTWF0aC5yb3VuZChkaXNwbGF5VmFsdWUgKiAxMDAwKSAvIDEwMDApKTsKLQotICAgICAgICB2YXIgdGV4dFRvRHJhdyA9IGRpc3BsYXlWYWx1ZSArICcgJyArIHVuaXQ7Ci0gICAgICAgIHZhciB0ZXh0TGVmdFZpZXcgPSBtYXJrZXJWaWV3ICsgNCAqIHBpeGVsUmF0aW87Ci0gICAgICAgIHZhciB0ZXh0V2lkdGhWaWV3ID0gY3R4Lm1lYXN1cmVUZXh0KHRleHRUb0RyYXcpLndpZHRoOwotCi0gICAgICAgIC8vIFB1dCB0ZXh0IHRvIHRoZSBsZWZ0IGluIGNhc2UgaXQgZ2V0cyBjdXQgb2ZmLgotICAgICAgICBpZiAodGV4dExlZnRWaWV3ICsgdGV4dFdpZHRoVmlldyA+IHdpZHRoKQotICAgICAgICAgIHRleHRMZWZ0VmlldyA9IG1hcmtlclZpZXcgLSA0ICogcGl4ZWxSYXRpbyAtIHRleHRXaWR0aFZpZXc7Ci0KLSAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGRpc3BsYXlUZXh0Q29sb3I7Ci0gICAgICAgIGN0eC5maWxsVGV4dCh0ZXh0VG9EcmF3LCB0ZXh0TGVmdFZpZXcsIHRleHRQb3NZKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB2YXIgbGVmdE1hcmtlciA9IGludGVyZXN0UmFuZ2UubWluOwotICAgICAgdmFyIHJpZ2h0TWFya2VyID0gaW50ZXJlc3RSYW5nZS5tYXg7Ci0KLSAgICAgIHZhciBsZWZ0TWFya2VyVmlldyA9IGR0LnhXb3JsZFRvVmlldyhsZWZ0TWFya2VyKTsKLSAgICAgIHZhciByaWdodE1hcmtlclZpZXcgPSBkdC54V29ybGRUb1ZpZXcocmlnaHRNYXJrZXIpOwotCi0gICAgICB2YXIgZGlzdGFuY2VCZXR3ZWVuTWFya2VycyA9IGludGVyZXN0UmFuZ2UucmFuZ2U7Ci0gICAgICB2YXIgZGlzdGFuY2VCZXR3ZWVuTWFya2Vyc1ZpZXcgPQotICAgICAgICAgIGR0LnhXb3JsZFZlY3RvclRvVmlldyhkaXN0YW5jZUJldHdlZW5NYXJrZXJzKTsKLSAgICAgIHZhciBwb3NpdGlvbkluTWlkZGxlT2ZNYXJrZXJzVmlldyA9Ci0gICAgICAgICAgbGVmdE1hcmtlclZpZXcgKyAoZGlzdGFuY2VCZXR3ZWVuTWFya2Vyc1ZpZXcgLyAyKTsKLQotICAgICAgLy8gRGV0ZXJtaW5lIHVuaXRzLgotICAgICAgaWYgKGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnMgPCAwLjAwMDEpIHsKLSAgICAgICAgdW5pdCA9ICducyc7Ci0gICAgICAgIHVuaXREaXZpc29yID0gMC4wMDAwMDE7Ci0gICAgICB9IGVsc2UgaWYgKGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnMgPCAwLjEpIHsKLSAgICAgICAgdW5pdCA9ICd1cyc7Ci0gICAgICAgIHVuaXREaXZpc29yID0gMC4wMDE7Ci0gICAgICB9IGVsc2UgaWYgKGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnMgPCAxMDApIHsKLSAgICAgICAgdW5pdCA9ICdtcyc7Ci0gICAgICAgIHVuaXREaXZpc29yID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHVuaXQgPSAncyc7Ci0gICAgICAgIHVuaXREaXZpc29yID0gMTAwMDsKLSAgICAgIH0KLQotICAgICAgLy8gQ2FsY3VsYXRlIGRpc3BsYXkgdmFsdWUgdG8gcHJpbnQuCi0gICAgICBkaXNwbGF5RGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5NYXJrZXJzIC8gdW5pdERpdmlzb3I7Ci0gICAgICB2YXIgcm91bmRlZERpc3BsYXlEaXN0YW5jZSA9Ci0gICAgICAgICAgTWF0aC5hYnMoKE1hdGgucm91bmQoZGlzcGxheURpc3RhbmNlICogMTAwMCkgLyAxMDAwKSk7Ci0gICAgICB2YXIgdGV4dFRvRHJhdyA9IHJvdW5kZWREaXNwbGF5RGlzdGFuY2UgKyAnICcgKyB1bml0OwotICAgICAgdmFyIHRleHRXaWR0aFZpZXcgPSBjdHgubWVhc3VyZVRleHQodGV4dFRvRHJhdykud2lkdGg7Ci0gICAgICB2YXIgc3BhY2VGb3JBcnJvd3NBbmRUZXh0VmlldyA9Ci0gICAgICAgICAgdGV4dFdpZHRoVmlldyArIHNwYWNlRm9yQXJyb3dzVmlldyArIGFycm93U3BhY2luZzsKLQotICAgICAgLy8gU2V0IHRleHQgcG9zaXRpb25zLgotICAgICAgdmFyIHRleHRMZWZ0VmlldyA9IHBvc2l0aW9uSW5NaWRkbGVPZk1hcmtlcnNWaWV3IC0gdGV4dFdpZHRoVmlldyAvIDI7Ci0gICAgICB2YXIgdGV4dFJpZ2h0VmlldyA9IHRleHRMZWZ0VmlldyArIHRleHRXaWR0aFZpZXc7Ci0KLSAgICAgIGlmIChzcGFjZUZvckFycm93c0FuZFRleHRWaWV3ID4gZGlzdGFuY2VCZXR3ZWVuTWFya2Vyc1ZpZXcpIHsKLSAgICAgICAgLy8gUHJpbnQgdGhlIGRpc3BsYXkgZGlzdGFuY2UgdGV4dCByaWdodCBvZiB0aGUgMiBtYXJrZXJzLgotICAgICAgICB0ZXh0TGVmdFZpZXcgPSByaWdodE1hcmtlclZpZXcgKyAyICogYXJyb3dTcGFjaW5nOwotCi0gICAgICAgIC8vIFB1dCB0ZXh0IHRvIHRoZSBsZWZ0IGluIGNhc2UgaXQgZ2V0cyBjdXQgb2ZmLgotICAgICAgICBpZiAodGV4dExlZnRWaWV3ICsgdGV4dFdpZHRoVmlldyA+IHdpZHRoKQotICAgICAgICAgIHRleHRMZWZ0VmlldyA9IGxlZnRNYXJrZXJWaWV3IC0gMiAqIGFycm93U3BhY2luZyAtIHRleHRXaWR0aFZpZXc7Ci0KLSAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGRpc3BsYXlUZXh0Q29sb3I7Ci0gICAgICAgIGN0eC5maWxsVGV4dCh0ZXh0VG9EcmF3LCB0ZXh0TGVmdFZpZXcsIHRleHRQb3NZKTsKLQotICAgICAgICAvLyBEcmF3IHRoZSBhcnJvd3MgcG9pbnRpbmcgZnJvbSBvdXRzaWRlIGluIGFuZCBhIGxpbmUgaW4gYmV0d2Vlbi4KLSAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gYXJyb3dDb2xvcjsKLSAgICAgICAgY3R4LmJlZ2luUGF0aCgpOwotICAgICAgICB0ci5jLmRyYXdMaW5lKGN0eCwgbGVmdE1hcmtlclZpZXcsIGFycm93UG9zWSwgcmlnaHRNYXJrZXJWaWV3LAotICAgICAgICAgICAgYXJyb3dQb3NZKTsKLSAgICAgICAgY3R4LnN0cm9rZSgpOwotCi0gICAgICAgIGN0eC5maWxsU3R5bGUgPSBhcnJvd0NvbG9yOwotICAgICAgICB0ci5jLmRyYXdBcnJvdyhjdHgsCi0gICAgICAgICAgICBsZWZ0TWFya2VyVmlldyAtIDEuNSAqIGFycm93U3BhY2luZywgYXJyb3dQb3NZLAotICAgICAgICAgICAgbGVmdE1hcmtlclZpZXcsIGFycm93UG9zWSwKLSAgICAgICAgICAgIGFycm93TGVuZ3RoVmlldywgYXJyb3dXaWR0aFZpZXcpOwotICAgICAgICB0ci5jLmRyYXdBcnJvdyhjdHgsCi0gICAgICAgICAgICByaWdodE1hcmtlclZpZXcgKyAxLjUgKiBhcnJvd1NwYWNpbmcsIGFycm93UG9zWSwKLSAgICAgICAgICAgIHJpZ2h0TWFya2VyVmlldywgYXJyb3dQb3NZLAotICAgICAgICAgICAgYXJyb3dMZW5ndGhWaWV3LCBhcnJvd1dpZHRoVmlldyk7Ci0KLSAgICAgIH0gZWxzZSBpZiAoc3BhY2VGb3JBcnJvd3NWaWV3IDw9IGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3KSB7Ci0gICAgICAgIHZhciBsZWZ0QXJyb3dTdGFydDsKLSAgICAgICAgdmFyIHJpZ2h0QXJyb3dTdGFydDsKLSAgICAgICAgaWYgKHNwYWNlRm9yQXJyb3dzQW5kVGV4dFZpZXcgPD0gZGlzdGFuY2VCZXR3ZWVuTWFya2Vyc1ZpZXcpIHsKLSAgICAgICAgICAvLyBQcmludCB0aGUgZGlzcGxheSBkaXN0YW5jZSB0ZXh0LgotICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBkaXNwbGF5VGV4dENvbG9yOwotICAgICAgICAgIGN0eC5maWxsVGV4dCh0ZXh0VG9EcmF3LCB0ZXh0TGVmdFZpZXcsIHRleHRQb3NZKTsKLQotICAgICAgICAgIGxlZnRBcnJvd1N0YXJ0ID0gdGV4dExlZnRWaWV3IC0gYXJyb3dTcGFjaW5nOwotICAgICAgICAgIHJpZ2h0QXJyb3dTdGFydCA9IHRleHRSaWdodFZpZXcgKyBhcnJvd1NwYWNpbmc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbGVmdEFycm93U3RhcnQgPSBwb3NpdGlvbkluTWlkZGxlT2ZNYXJrZXJzVmlldzsKLSAgICAgICAgICByaWdodEFycm93U3RhcnQgPSBwb3NpdGlvbkluTWlkZGxlT2ZNYXJrZXJzVmlldzsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIERyYXcgdGhlIGFycm93cyBwb2ludGluZyBpbnNpZGUgb3V0LgotICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBhcnJvd0NvbG9yOwotICAgICAgICBjdHguZmlsbFN0eWxlID0gYXJyb3dDb2xvcjsKLSAgICAgICAgdHIuYy5kcmF3QXJyb3coY3R4LAotICAgICAgICAgICAgbGVmdEFycm93U3RhcnQsIGFycm93UG9zWSwKLSAgICAgICAgICAgIGxlZnRNYXJrZXJWaWV3LCBhcnJvd1Bvc1ksCi0gICAgICAgICAgICBhcnJvd0xlbmd0aFZpZXcsIGFycm93V2lkdGhWaWV3KTsKLSAgICAgICAgdHIuYy5kcmF3QXJyb3coY3R4LAotICAgICAgICAgICAgcmlnaHRBcnJvd1N0YXJ0LCBhcnJvd1Bvc1ksCi0gICAgICAgICAgICByaWdodE1hcmtlclZpZXcsIGFycm93UG9zWSwKLSAgICAgICAgICAgIGFycm93TGVuZ3RoVmlldywgYXJyb3dXaWR0aFZpZXcpOwotICAgICAgfQotCi0gICAgICBjdHgucmVzdG9yZSgpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBBZGRzIGl0ZW1zIGludGVyc2VjdGluZyB0aGUgZ2l2ZW4gcmFuZ2UgdG8gYSBzZWxlY3Rpb24uCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGxvVlggTG93ZXIgWCBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgotICAgICAqICAgICB2aWV3c3BhY2UuCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGhpVlggVXBwZXIgWCBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgotICAgICAqICAgICB2aWV3c3BhY2UuCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGxvVlkgTG93ZXIgWSBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgotICAgICAqICAgICB2aWV3c3BhY2UuCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGhpVlkgVXBwZXIgWSBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgotICAgICAqICAgICB2aWV3c3BhY2UuCi0gICAgICogQHBhcmFtIHtTZWxlY3Rpb259IHNlbGVjdGlvbiBTZWxlY3Rpb24gdG8gd2hpY2ggdG8gYWRkIHJlc3VsdHMuCi0gICAgICovCi0gICAgYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uOiBmdW5jdGlvbigKLSAgICAgICAgbG9WWCwgaGlWWCwgbG9ZLCBoaVksIHNlbGVjdGlvbikgewotICAgICAgLy8gRG9lcyBub3RoaW5nLiBUaGVyZSdzIG5vdGhpbmcgaW50ZXJlc3RpbmcgdG8gcGljayBvbiB0aGUgcnVsZXIKLSAgICAgIC8vIHRyYWNrLgotICAgIH0sCi0KLSAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgewotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFJ1bGVyVHJhY2s6IFJ1bGVyVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3J1bGVyX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcnVsZXJfdHJhY2tfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDY5YzIzLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcnVsZXJfdHJhY2tfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvcnVsZXJfdHJhY2suaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIHZhciB2aWV3cG9ydCA9IG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoZGl2KTsKLSAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci5jLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7Ci0KLSAgICB2YXIgdHJhY2sgPSB0ci5jLnRyYWNrcy5SdWxlclRyYWNrKHZpZXdwb3J0KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKLQotICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOwotCi0gICAgdmFyIGR0ID0gbmV3IHRyLmMuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7Ci0gICAgZHQuc2V0UGFuQW5kU2NhbGUoMCwgdHJhY2suY2xpZW50V2lkdGggLyAxMDAwKTsKLSAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc2FtcGxlX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NhbXBsZV90cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmM4M2ExLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc2FtcGxlX3RyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9yZWN0X3RyYWNrLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhbiBhcnJheSBvZiBTYW1wbGUgb2JqZWN0cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtIZWFkaW5nVHJhY2t9Ci0gICAqLwotICB2YXIgU2FtcGxlVHJhY2sgPSB0ci5iLnVpLmRlZmluZSgKLSAgICAgICdzYW1wbGUtdHJhY2snLCB0ci5jLnRyYWNrcy5SZWN0VHJhY2spOwotCi0gIFNhbXBsZVRyYWNrLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuUmVjdFRyYWNrLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuUmVjdFRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICB9LAotCi0gICAgZ2V0IHNhbXBsZXMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yZWN0czsKLSAgICB9LAotCi0gICAgc2V0IHNhbXBsZXMoc2FtcGxlcykgewotICAgICAgdGhpcy5yZWN0cyA9IHNhbXBsZXM7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgU2FtcGxlVHJhY2s6IFNhbXBsZVRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NhbXBsZV90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NhbXBsZV90cmFja190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkOGU1NzMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zYW1wbGVfdHJhY2tfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2FtcGxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zdGFja19mcmFtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3Mvc2FtcGxlX3RyYWNrLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgU2FtcGxlVHJhY2sgPSB0ci5jLnRyYWNrcy5TYW1wbGVUcmFjazsKLSAgdmFyIFNhbXBsZSA9IHRyLm1vZGVsLlNhbXBsZTsKLSAgdmFyIFN0YWNrRnJhbWUgPSB0ci5tb2RlbC5TdGFja0ZyYW1lOwotCi0gIHRlc3QoJ21vZGVsTWFwcGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0cmFjayA9IG5ldyBTYW1wbGVUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHZhciBmQSA9IG5ldyBTdGFja0ZyYW1lKHVuZGVmaW5lZCwgMSwgJ2NhdCcsICdhJywgNyk7Ci0gICAgdmFyIHNhbXBsZSA9IG5ldyBTYW1wbGUodW5kZWZpbmVkLCB1bmRlZmluZWQsICdpbnN0cnVjdGlvbnNfcmV0aXJlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIGZBLCAxMCk7Ci0gICAgdHJhY2suc2FtcGxlcyA9IFtzYW1wbGVdOwotICAgIHZhciBtZTAgPSB0cmFjay5yZWN0c1swXS5tb2RlbEl0ZW07Ci0gICAgYXNzZXJ0LmVxdWFsKG1lMCwgc2FtcGxlKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3OTkxNzYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zbGljZV9ncm91cF90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL211bHRpX3Jvd190cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGEgU2xpY2VHcm91cC4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtNdWx0aVJvd1RyYWNrfQotICAgKi8KLSAgdmFyIFNsaWNlR3JvdXBUcmFjayA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ3NsaWNlLWdyb3VwLXRyYWNrJywgdHIuYy50cmFja3MuTXVsdGlSb3dUcmFjayk7Ci0KLSAgU2xpY2VHcm91cFRyYWNrLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzbGljZS1ncm91cC10cmFjaycpOwotICAgICAgdGhpcy5ncm91cF8gPSB1bmRlZmluZWQ7Ci0gICAgICAvLyBTZXQgdGhlIGNvbGxhcHNlIHRocmVzaG9sZCBzbyB3ZSBkb24ndCBjb2xsYXBzZSBieSBkZWZhdWx0LCBidXQgdGhlCi0gICAgICAvLyB1c2VyIGNhbiBleHBsaWNpdGx5IGNvbGxhcHNlIGlmIHRoZXkgd2FudCBpdC4KLSAgICAgIHRoaXMuZGVmYXVsdFRvQ29sbGFwc2VkV2hlblN1YlJvd0NvdW50TW9yZVRoYW4gPSAxMDA7Ci0gICAgfSwKLQotICAgIGFkZFN1YlRyYWNrXzogZnVuY3Rpb24oc2xpY2VzKSB7Ci0gICAgICB2YXIgdHJhY2sgPSBuZXcgdHIuYy50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTsKLSAgICAgIHRyYWNrLnNsaWNlcyA9IHNsaWNlczsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOwotICAgICAgcmV0dXJuIHRyYWNrOwotICAgIH0sCi0KLSAgICBnZXQgZ3JvdXAoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ncm91cF87Ci0gICAgfSwKLQotICAgIHNldCBncm91cChncm91cCkgewotICAgICAgdGhpcy5ncm91cF8gPSBncm91cDsKLSAgICAgIHRoaXMuc2V0SXRlbXNUb0dyb3VwKHRoaXMuZ3JvdXBfLnNsaWNlcywgdGhpcy5ncm91cF8pOwotICAgIH0sCi0KLSAgICBnZXQgZXZlbnRDb250YWluZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ncm91cDsKLSAgICB9LAotCi0gICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKLSAgICAgIGNvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMuZ3JvdXAsIHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBCcmVha3MgdXAgdGhlIGxpc3Qgb2Ygc2xpY2VzIGludG8gTiByb3dzLCBlYWNoIG9mIHdoaWNoIGlzIGEgbGlzdCBvZgotICAgICAqIHNsaWNlcyB0aGF0IGFyZSBub24gb3ZlcmxhcHBpbmcuCi0gICAgICovCi0gICAgYnVpbGRTdWJSb3dzXzogZnVuY3Rpb24oc2xpY2VzKSB7Ci0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdvcmtzIGJ5IHdhbGtpbmcgdGhyb3VnaCBzbGljZXMgYnkgc3RhcnQgdGltZS4KLSAgICAgIC8vCi0gICAgICAvLyBUaGUgYmFzaWMgaWRlYSBoZXJlIGlzIHRvIGluc2VydCBlYWNoIHNsaWNlIGFzIGRlZXAgaW50byB0aGUgc3Vicm93Ci0gICAgICAvLyBsaXN0IGFzIGl0IGNhbiBnbyBzdWNoIHRoYXQgZXZlcnkgc3ViU2xpY2UgaXMgZnVsbHkgY29udGFpbmVkIGJ5IGl0cwotICAgICAgLy8gcGFyZW50IHNsaWNlLgotICAgICAgLy8KLSAgICAgIC8vIFZpc3VhbGx5LCBpZiB3ZSBzdGFydCB3aXRoIHRoaXM6Ci0gICAgICAvLyAgMDogIFsgICAgYSAgICAgICBdCi0gICAgICAvLyAgMTogICAgWyAgYiAgXQotICAgICAgLy8gIDI6ICAgIFtjXVtkXQotICAgICAgLy8KLSAgICAgIC8vIFRvIHBsYWNlIHRoaXMgc2xpY2U6Ci0gICAgICAvLyAgICAgICAgICAgICAgIFtlXQotICAgICAgLy8gV2UgZmlyc3QgY2hlY2sgcm93IDIncyBsYXN0IGl0ZW0sIFtkXS4gW2VdIHdvbnQgZml0IGludG8gW2RdICh0aGV5IGRvbnQKLSAgICAgIC8vIGV2ZW4gaW50ZXJzZWN0KS4gU28gd2UgZ28gdG8gcm93IDEuIFRoYXQgZ2l2ZXMgdXMgW2JdLCBhbmQgW2RdIHdvbnQgZml0Ci0gICAgICAvLyBpbnRvIHRoYXQgZWl0aGVyLiBTbywgd2UgZ28gdG8gcm93IDAgYW5kIGl0cyBsYXN0IHNsaWNlLCBbYV0uIFRoYXQgY2FuCi0gICAgICAvLyBjb21wbGV0ZWx5IGNvbnRhaW4gW2VdLCBzbyB0aGF0IG1lYW5zIHdlIHNob3VsZCBhZGQgW2VdIGFzIGEgc3ViY2hpbGQKLSAgICAgIC8vIG9mIFthXS4gVGhhdCBwdXRzIGl0IG9uIHJvdyAxLCB5aWVsZGluZzoKLSAgICAgIC8vICAwOiAgWyAgICBhICAgICAgIF0KLSAgICAgIC8vICAxOiAgICBbICBiICBdW2VdCi0gICAgICAvLyAgMjogICAgW2NdW2RdCi0gICAgICAvLwotICAgICAgLy8gSWYgd2UgdGhlbiBnZXQgdGhpcyBzbGljZToKLSAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIFtmXQotICAgICAgLy8gV2UgZG8gdGhlIHNhbWUgZGVlcGVzdC10by1zaGFsbG93ZXN0IHdhbGsgb2YgdGhlIHN1YnJvd3MgdHJ5aW5nIHRvIGZpdAotICAgICAgLy8gaXQuIFRoaXMgdGltZSwgaXQgZG9lc24ndCBmaXQgaW4gYW55IG9wZW4gc2xpY2UuIFNvLCB3ZSBzaW1wbHkgYXBwZW5kCi0gICAgICAvLyBpdCB0byByb3cgMDoKLSAgICAgIC8vICAwOiAgWyAgICBhICAgICAgIF0gIFtmXQotICAgICAgLy8gIDE6ICAgIFsgIGIgIF1bZV0KLSAgICAgIC8vICAyOiAgICBbY11bZF0KLSAgICAgIGlmICghc2xpY2VzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIFtdOwotCi0gICAgICB2YXIgb3BzID0gW107Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoc2xpY2VzW2ldLnN1YlNsaWNlcykKLSAgICAgICAgICBzbGljZXNbaV0uc3ViU2xpY2VzLnNwbGljZSgwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWNlc1tpXS5zdWJTbGljZXMubGVuZ3RoKTsKLSAgICAgICAgb3BzLnB1c2goaSk7Ci0gICAgICB9Ci0KLSAgICAgIG9wcy5zb3J0KGZ1bmN0aW9uKGl4LCBpeSkgewotICAgICAgICB2YXIgeCA9IHNsaWNlc1tpeF07Ci0gICAgICAgIHZhciB5ID0gc2xpY2VzW2l5XTsKLSAgICAgICAgaWYgKHguc3RhcnQgIT0geS5zdGFydCkKLSAgICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7Ci0KLSAgICAgICAgLy8gRWxlbWVudHMgZ2V0IGluc2VydGVkIGludG8gdGhlIHNsaWNlcyBhcnJheSBpbiBvcmRlciBvZiB3aGVuIHRoZQotICAgICAgICAvLyBzbGljZXMgc3RhcnQuIEJlY2F1c2Ugc2xpY2VzIG11c3QgYmUgcHJvcGVybHkgbmVzdGVkLCB3ZSBicmVhawotICAgICAgICAvLyBzdGFydC10aW1lIHRpZXMgYnkgYXNzdW1pbmcgdGhhdCB0aGUgZWxlbWVudHMgYXBwZWFyaW5nIGVhcmxpZXIgaW4KLSAgICAgICAgLy8gdGhlIHNsaWNlcyBhcnJheSAoYW5kIHRodXMgZW5kaW5nIGVhcmxpZXIpIHN0YXJ0IGVhcmxpZXIuCi0gICAgICAgIHJldHVybiBpeCAtIGl5OwotICAgICAgfSk7Ci0KLSAgICAgIHZhciBzdWJSb3dzID0gW1tdXTsKLSAgICAgIHRoaXMuYmFkU2xpY2VzXyA9IFtdOyAgLy8gVE9ETyhzaW1vbmphbSk6IENvbm5lY3QgdGhpcyBhZ2Fpbi4KLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIG9wID0gb3BzW2ldOwotICAgICAgICB2YXIgc2xpY2UgPSBzbGljZXNbb3BdOwotCi0gICAgICAgIC8vIFRyeSB0byBmaXQgdGhlIHNsaWNlIGludG8gdGhlIGV4aXN0aW5nIHN1YnJvd3MuCi0gICAgICAgIHZhciBpbnNlcnRlZCA9IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBqID0gc3ViUm93cy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkgewotICAgICAgICAgIGlmIChzdWJSb3dzW2pdLmxlbmd0aCA9PSAwKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICB2YXIgaW5zZXJ0ZWRTbGljZSA9IHN1YlJvd3Nbal1bc3ViUm93c1tqXS5sZW5ndGggLSAxXTsKLSAgICAgICAgICBpZiAoc2xpY2Uuc3RhcnQgPCBpbnNlcnRlZFNsaWNlLnN0YXJ0KSB7Ci0gICAgICAgICAgICB0aGlzLmJhZFNsaWNlc18ucHVzaChzbGljZSk7Ci0gICAgICAgICAgICBpbnNlcnRlZCA9IHRydWU7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChpbnNlcnRlZFNsaWNlLmJvdW5kcyhzbGljZSkpIHsKLSAgICAgICAgICAgIC8vIEluc2VydCBpdCBpbnRvIHN1YlJvdyBqICsgMS4KLSAgICAgICAgICAgIHdoaWxlIChzdWJSb3dzLmxlbmd0aCA8PSBqICsgMSkKLSAgICAgICAgICAgICAgc3ViUm93cy5wdXNoKFtdKTsKLSAgICAgICAgICAgIHN1YlJvd3NbaiArIDFdLnB1c2goc2xpY2UpOwotICAgICAgICAgICAgaWYgKGluc2VydGVkU2xpY2Uuc3ViU2xpY2VzKQotICAgICAgICAgICAgICBpbnNlcnRlZFNsaWNlLnN1YlNsaWNlcy5wdXNoKHNsaWNlKTsKLSAgICAgICAgICAgIGluc2VydGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoaW5zZXJ0ZWQpCi0gICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gQXBwZW5kIGl0IHRvIHN1YlJvd1swXSBhcyBhIHJvb3QuCi0gICAgICAgIHN1YlJvd3NbMF0ucHVzaChzbGljZSk7Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiBzdWJSb3dzOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFNsaWNlR3JvdXBUcmFjazogU2xpY2VHcm91cFRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zbGljZV9ncm91cF90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRmODliZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2VfZ3JvdXAuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgUHJvY2Vzc1RyYWNrID0gdHIuYy50cmFja3MuUHJvY2Vzc1RyYWNrOwotICB2YXIgVGhyZWFkVHJhY2sgPSB0ci5jLnRyYWNrcy5UaHJlYWRUcmFjazsKLSAgdmFyIFNsaWNlR3JvdXAgPSB0ci5tb2RlbC5TbGljZUdyb3VwOwotICB2YXIgU2xpY2VHcm91cFRyYWNrID0gdHIuYy50cmFja3MuU2xpY2VHcm91cFRyYWNrOwotICB2YXIgbmV3U2xpY2VOYW1lZCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZU5hbWVkOwotCi0gIHRlc3QoJ3N1YlJvd0J1aWxkZXJCYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDIpKTsKLSAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDMsIDEpKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5ncm91cCA9IGdyb3VwOwotICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKLQotICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NBLCBzQl0pOwotICB9KTsKLQotICB0ZXN0KCdzdWJSb3dCdWlsZGVyQmFzaWMyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOwotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgNCkpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZ3JvdXA7Ci0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJhZFNsaWNlc18ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV0ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQV0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1sxXSwgW3NCXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3N1YlJvd0J1aWxkZXJOZXN0ZWRFeGFjdGx5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOwotCi0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLCA0KSk7Ci0gICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCA0KSk7Ci0KLSAgICB2YXIgdHJhY2sgPSBuZXcgU2xpY2VHcm91cFRyYWNrKG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoKSk7Ci0gICAgdHJhY2suZ3JvdXAgPSBncm91cDsKLSAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7Ci0KLSAgICBhc3NlcnQuZXF1YWwodHJhY2suYmFkU2xpY2VzXy5sZW5ndGgsIDApOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF0ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1sxXS5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NCXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzdWJSb3dzWzFdLCBbc0FdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViUm93QnVpbGRlckluc3RhbnRFdmVudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciB0MSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHZhciBncm91cCA9IHQxLnNsaWNlR3JvdXA7Ci0KLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDApKTsKLSAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDIsIDApKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5ncm91cCA9IGdyb3VwOwotICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKLQotICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NBLCBzQl0pOwotICB9KTsKLQotICB0ZXN0KCdzdWJSb3dCdWlsZGVyVHdvSW5zdGFudEV2ZW50cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKLQotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMCkpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMSwgMCkpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZ3JvdXA7Ci0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJhZFNsaWNlc18ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NBXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzdWJSb3dzWzFdLCBbc0JdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViUm93QnVpbGRlck91dE9mT3JkZXJBZGRpdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKLQotICAgIC8vIFBhdHRlcm4gYmVpbmcgdGVzdGVkOgotICAgIC8vIFsgICAgYSAgICAgXVsgICBiICAgXQotICAgIC8vIFdoZXJlIGluc2VydGlvbiBpcyBkb25lIGJhY2t3YXJkLgotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOwotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMikpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZ3JvdXA7Ci0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJhZFNsaWNlc18ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzdWJSb3dzWzBdLCBbc0EsIHNCXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3N1YlJvd0J1aWxkZXJPdXRPZk9yZGVyQWRkaXRpb24yJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOwotCi0gICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6Ci0gICAgLy8gWyAgICBhICAgICBdCi0gICAgLy8gICBbICBiICAgXQotICAgIC8vIFdoZXJlIGluc2VydGlvbiBpcyBkb25lIGJhY2t3YXJkLgotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOwotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgNSkpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZ3JvdXA7Ci0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJhZFNsaWNlc18ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV0ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQV0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1sxXSwgW3NCXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3N1YlJvd0J1aWxkZXJPbk5lc3RlZFplcm9MZW5ndGgnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciB0MSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHZhciBncm91cCA9IHQxLnNsaWNlR3JvdXA7Ci0KLSAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKLSAgICAvLyBbICAgIGEgICAgXQotICAgIC8vIFsgIGIxIF0gIFtdPC0gYjIgd2hlcmUgYjIuZHVyYXRpb24gPSAwIGFuZCBiMi5lbmQgPT0gYS5lbmQuCi0gICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7Ci0gICAgdmFyIHNCMSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiMScsIDEsIDIpKTsKLSAgICB2YXIgc0IyID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2IyJywgNCwgMCkpOwotCi0gICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCkpOwotICAgIHRyYWNrLmdyb3VwID0gZ3JvdXA7Ci0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJhZFNsaWNlc18ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NBXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzdWJSb3dzWzFdLCBbc0IxLCBzQjJdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViUm93QnVpbGRlck9uR3JvdXAxJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOwotCi0gICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6Ci0gICAgLy8gWyAgICBhICAgICBdICAgWyAgYyAgIF0KLSAgICAvLyAgIFsgIGIgICBdCi0gICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7Ci0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLjUsIDEpKTsKLSAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYycsIDUsIDApKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5ncm91cCA9IGdyb3VwOwotICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKLQotICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQSwgc0NdKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMV0sIFtzQl0pOwotICB9KTsKLQotICB0ZXN0KCdzdWJSb3dCdWlsZGVyT25Hcm91cDInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciB0MSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHZhciBncm91cCA9IHQxLnNsaWNlR3JvdXA7Ci0KLSAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKLSAgICAvLyBbICAgIGEgICAgIF0gICBbICBkICAgXQotICAgIC8vICAgWyAgYiAgIF0KLSAgICAvLyAgICBbIGMgXQotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMykpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMS41LCAxKSk7Ci0gICAgdmFyIHNDID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2MnLCAxLjc1LCAwLjUpKTsKLSAgICB2YXIgc0QgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYycsIDUsIDAuMjUpKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5ncm91cCA9IGdyb3VwOwotCi0gICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOwotICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAzKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQSwgc0RdKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMV0sIFtzQl0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1syXSwgW3NDXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3RyYWNrRmlsdGVyaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOwotCi0gICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7Ci0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLjUsIDEpKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0cmFjay5ncm91cCA9IGdyb3VwOwotCi0gICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnN1YlJvd3MubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuaXNUcnVlKHRyYWNrLmhhc1Zpc2libGVDb250ZW50KTsKLSAgfSk7Ci0KLXRlc3QoJ3NsaWNlR3JvdXBDb250YWluZXJNYXAnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdnAgPSBuZXcgdHIuYy5UaW1lbGluZVZpZXdwb3J0KCk7Ci0gICAgdmFyIGNvbnRhaW5lclRvVHJhY2sgPSB2cC5jb250YWluZXJUb1RyYWNrT2JqOwotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7Ci0gICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNDU2KTsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOwotCi0gICAgdmFyIHByb2Nlc3NUcmFjayA9IG5ldyBQcm9jZXNzVHJhY2sodnApOwotICAgIHZhciB0aHJlYWRUcmFjayA9IG5ldyBUaHJlYWRUcmFjayh2cCk7Ci0gICAgdmFyIGdyb3VwVHJhY2sgPSBuZXcgU2xpY2VHcm91cFRyYWNrKHZwKTsKLSAgICBwcm9jZXNzVHJhY2sucHJvY2VzcyA9IHByb2Nlc3M7Ci0gICAgdGhyZWFkVHJhY2sudGhyZWFkID0gdGhyZWFkOwotICAgIGdyb3VwVHJhY2suZ3JvdXAgPSBncm91cDsKLSAgICBwcm9jZXNzVHJhY2suYXBwZW5kQ2hpbGQodGhyZWFkVHJhY2spOwotICAgIHRocmVhZFRyYWNrLmFwcGVuZENoaWxkKGdyb3VwVHJhY2spOwotCi0gICAgYXNzZXJ0LmVxdWFsKHByb2Nlc3NUcmFjay5ldmVudENvbnRhaW5lciwgcHJvY2Vzcyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRocmVhZFRyYWNrLmV2ZW50Q29udGFpbmVyLCB0aHJlYWQpOwotICAgIGFzc2VydC5lcXVhbChncm91cFRyYWNrLmV2ZW50Q29udGFpbmVyLCBncm91cCk7Ci0KLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMycpKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMy40NTYnKSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAotICAgICAgICBjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzLjQ1Ni5TbGljZUdyb3VwJykpOwotCi0gICAgdnAubW9kZWxUcmFja0NvbnRhaW5lciA9IHsKLSAgICAgIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOiBmdW5jdGlvbihjb250YWluZXJUb1RyYWNrT2JqKSB7Ci0gICAgICAgIHByb2Nlc3NUcmFjay5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrT2JqKTsKLSAgICAgIH0sCi0gICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigpIHt9Ci0gICAgfTsKLSAgICB2cC5yZWJ1aWxkQ29udGFpbmVyVG9UcmFja01hcCgpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCBhbGwgdHJhY2tzIGNhbGwgY2hpbGRzJyBhZGRDb250YWluZXJzVG9UcmFja01hcCgpCi0gICAgLy8gYnkgY2hlY2tpbmcgdGhlIHJlc3VsdGluZyBtYXAuCi0gICAgYXNzZXJ0LmVxdWFsKGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMnKSwgcHJvY2Vzc1RyYWNrKTsKLSAgICBhc3NlcnQuZXF1YWwoY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMy40NTYnKSwgdGhyZWFkVHJhY2spOwotICAgIGFzc2VydC5lcXVhbChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzLjQ1Ni5TbGljZUdyb3VwJyksCi0gICAgICAgIGdyb3VwVHJhY2spOwotCi0gICAgLy8gQ2hlY2sgdGhlIHRyYWNrJ3MgZXZlbnRDb250YWluZXIgZ2V0dGVyLgotICAgIGFzc2VydC5lcXVhbChwcm9jZXNzVHJhY2suZXZlbnRDb250YWluZXIsIHByb2Nlc3MpOwotICAgIGFzc2VydC5lcXVhbCh0aHJlYWRUcmFjay5ldmVudENvbnRhaW5lciwgdGhyZWFkKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXBUcmFjay5ldmVudENvbnRhaW5lciwgZ3JvdXApOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDEwOWFkYS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NsaWNlX3RyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9yZWN0X3RyYWNrLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhbiBhcnJheSBvZiBTbGljZSBvYmplY3RzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge0hlYWRpbmdUcmFja30KLSAgICovCi0gIHZhciBTbGljZVRyYWNrID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAnc2xpY2UtdHJhY2snLCB0ci5jLnRyYWNrcy5SZWN0VHJhY2spOwotCi0gIFNsaWNlVHJhY2sucHJvdG90eXBlID0gewotCi0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgIH0sCi0KLSAgICBnZXQgc2xpY2VzKCkgewotICAgICAgcmV0dXJuIHRoaXMucmVjdHM7Ci0gICAgfSwKLQotICAgIHNldCBzbGljZXMoc2xpY2VzKSB7Ci0gICAgICB0aGlzLnJlY3RzID0gc2xpY2VzOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFNsaWNlVHJhY2s6IFNsaWNlVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zbGljZV90cmFja190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZTJlMDEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zbGljZV90cmFja190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU2VsZWN0aW9uID0gdHIuYy5TZWxlY3Rpb247Ci0gIHZhciBTbGljZVRyYWNrID0gdHIuYy50cmFja3MuU2xpY2VUcmFjazsKLSAgdmFyIFNsaWNlID0gdHIubW9kZWwuU2xpY2U7Ci0KLSAgdGVzdCgnbW9kZWxNYXBwaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB2YXIgc2xpY2UgPSBuZXcgU2xpY2UoJycsICdhJywgMCwgMSwge30sIDEpOwotICAgIHRyYWNrLnNsaWNlcyA9IFtzbGljZV07Ci0gICAgdmFyIG1lMCA9IHRyYWNrLnJlY3RzWzBdLm1vZGVsSXRlbTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UsIG1lMCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zcGFjaW5nX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NwYWNpbmdfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWVhNGYyMS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NwYWNpbmdfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9zcGFjaW5nX3RyYWNrLmNzcyI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvaGVhZGluZ190cmFjay5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMudHJhY2tzJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBTcGFjaW5nVHJhY2sgPSB0ci5iLnVpLmRlZmluZSgnc3BhY2luZy10cmFjaycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2spOwotCi0gIFNwYWNpbmdUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5IZWFkaW5nVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzcGFjaW5nLXRyYWNrJyk7Ci0gICAgfSwKLQotICAgIGRyYXc6IGZ1bmN0aW9uKHR5cGUsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKLSAgICB9LAotCi0gICAgYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjogZnVuY3Rpb24oZmlsdGVyLCBzZWxlY3Rpb24pIHsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTcGFjaW5nVHJhY2s6IFNwYWNpbmdUcmFjawotICB9OwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zdGFja2VkX2JhcnNfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc3RhY2tlZF9iYXJzX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViMjE1OGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9zdGFja2VkX2JhcnNfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9oZWFkaW5nX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuYy50cmFja3MnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyB0cmFjZXMgYXMgc3RhY2tlZCBiYXJzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge0hlYWRpbmdUcmFja30KLSAgICovCi0gIHZhciBTdGFja2VkQmFyc1RyYWNrID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAnc3RhY2tlZC1iYXJzLXRyYWNrJywgdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrKTsKLQotICBTdGFja2VkQmFyc1RyYWNrLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuSGVhZGluZ1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc3RhY2tlZC1iYXJzLXRyYWNrJyk7Ci0gICAgICB0aGlzLm9iamVjdEluc3RhbmNlXyA9IG51bGw7Ci0gICAgfSwKLQotICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgewotICAgICAgdmFyIG9iamVjdFNuYXBzaG90cyA9IHRoaXMub2JqZWN0SW5zdGFuY2VfLnNuYXBzaG90czsKLSAgICAgIG9iamVjdFNuYXBzaG90cy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikgewotICAgICAgICBldmVudFRvVHJhY2tNYXAuYWRkRXZlbnQob2JqLCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBVc2VkIHRvIGhpdC10ZXN0IGNsaWNrcyBpbiB0aGUgZ3JhcGguCi0gICAgICovCi0gICAgYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlOiBmdW5jdGlvbigKLSAgICAgICAgbG9XWCwgaGlXWCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbikgewotICAgICAgZnVuY3Rpb24gb25TbmFwc2hvdChzbmFwc2hvdCkgewotICAgICAgICBzZWxlY3Rpb24ucHVzaChzbmFwc2hvdCk7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBzbmFwc2hvdHMgPSB0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHM7Ci0gICAgICB2YXIgbWF4Qm91bmRzID0gdGhpcy5vYmplY3RJbnN0YW5jZV8ucGFyZW50Lm1vZGVsLmJvdW5kcy5tYXg7Ci0KLSAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMoCi0gICAgICAgICAgc25hcHNob3RzLAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHgudHM7IH0sCi0gICAgICAgICAgZnVuY3Rpb24oeCwgaSkgewotICAgICAgICAgICAgaWYgKGkgPT0gc25hcHNob3RzLmxlbmd0aCAtIDEpIHsKLSAgICAgICAgICAgICAgaWYgKHNuYXBzaG90cy5sZW5ndGggPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm4gbWF4Qm91bmRzOwotCi0gICAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdHNbaV0udHMgLSBzbmFwc2hvdHNbaSAtIDFdLnRzOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gc25hcHNob3RzW2kgKyAxXS50cyAtIHNuYXBzaG90c1tpXS50czsKLSAgICAgICAgICB9LAotICAgICAgICAgIGxvV1gsIGhpV1gsCi0gICAgICAgICAgb25TbmFwc2hvdCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEFkZCB0aGUgaXRlbSB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgcHJvdmlkZWQgaXRlbSwgaWYgYW55LCB0byB0aGUKLSAgICAgKiBzZWxlY3Rpb24uCi0gICAgICogQHBhcmFtIHtzbGljZX0gVGhlIGN1cnJlbnQgc2xpY2UuCi0gICAgICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2Ygc2xpY2VzIGF3YXkgZnJvbSB0aGUgb2JqZWN0IHRvIGxvb2suCi0gICAgICogQHBhcmFtIHtTZWxlY3Rpb259IHNlbGVjdGlvbiBUaGUgc2VsZWN0aW9uIHRvIGFkZCBhbiBldmVudCB0bywKLSAgICAgKiBpZiBmb3VuZC4KLSAgICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIGFuIGV2ZW50IHdhcyBmb3VuZC4KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAgIGFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbihldmVudCwgb2Zmc2V0LCBzZWxlY3Rpb24pIHsKLSAgICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBldmVudCcpOwotICAgICAgdmFyIG9iamVjdFNuYXBzaG90cyA9IHRoaXMub2JqZWN0SW5zdGFuY2VfLnNuYXBzaG90czsKLSAgICAgIHZhciBpbmRleCA9IG9iamVjdFNuYXBzaG90cy5pbmRleE9mKGV2ZW50KTsKLSAgICAgIHZhciBuZXdJbmRleCA9IGluZGV4ICsgb2Zmc2V0OwotICAgICAgaWYgKG5ld0luZGV4ID49IDAgJiYgbmV3SW5kZXggPCBvYmplY3RTbmFwc2hvdHMubGVuZ3RoKSB7Ci0gICAgICAgIHNlbGVjdGlvbi5wdXNoKG9iamVjdFNuYXBzaG90c1tuZXdJbmRleF0pOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotCi0gICAgYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjogZnVuY3Rpb24oZmlsdGVyLCBzZWxlY3Rpb24pIHsKLSAgICB9LAotCi0gICAgYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uKSB7Ci0gICAgICB2YXIgc25hcHNob3QgPSB0ci5iLmZpbmRDbG9zZXN0RWxlbWVudEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZV8uc25hcHNob3RzLAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHgudHM7IH0sCi0gICAgICAgICAgd29ybGRYLAotICAgICAgICAgIHdvcmxkTWF4RGlzdCk7Ci0KLSAgICAgIGlmICghc25hcHNob3QpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgc2VsZWN0aW9uLnB1c2goc25hcHNob3QpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFN0YWNrZWRCYXJzVHJhY2s6IFN0YWNrZWRCYXJzVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3RocmVhZF90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy90aHJlYWRfdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQxNjVjMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3RocmVhZF90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jb3JlL3RyYWNrcy90aHJlYWRfdHJhY2suY3NzIj4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3NhbXBsZV90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9hc3luY19zbGljZV9ncm91cF90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogVmlzdWFsaXplcyBhIFRocmVhZCB1c2luZyBhIHNlcmllcyBvZiBTbGljZVRyYWNrcy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgVGhyZWFkVHJhY2sgPSB0ci5iLnVpLmRlZmluZSgndGhyZWFkLXRyYWNrJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuYy50cmFja3MuQ29udGFpbmVyVHJhY2spOwotICBUaHJlYWRUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmMudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndGhyZWFkLXRyYWNrJyk7Ci0gICAgfSwKLQotICAgIGdldCB0aHJlYWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50aHJlYWRfOwotICAgIH0sCi0KLSAgICBzZXQgdGhyZWFkKHRocmVhZCkgewotICAgICAgdGhpcy50aHJlYWRfID0gdGhyZWFkOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IGhhc1Zpc2libGVDb250ZW50KCkgewotICAgICAgcmV0dXJuIHRoaXMudHJhY2tzXy5sZW5ndGggPiAwOwotICAgIH0sCi0KLSAgICBnZXQgZXZlbnRDb250YWluZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50aHJlYWQ7Ci0gICAgfSwKLQotICAgIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOiBmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKSB7Ci0gICAgICBjb250YWluZXJUb1RyYWNrTWFwLmFkZENvbnRhaW5lcih0aGlzLnRocmVhZCwgdGhpcyk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGROb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgdGhpcy5jaGlsZE5vZGVzW2ldLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5kZXRhY2goKTsKLQotICAgICAgaWYgKCF0aGlzLnRocmVhZF8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5oZWFkaW5nID0gdGhpcy50aHJlYWRfLnVzZXJGcmllbmRseU5hbWUgKyAnOiAnOwotICAgICAgdGhpcy50b29sdGlwID0gdGhpcy50aHJlYWRfLnVzZXJGcmllbmRseURldGFpbHM7Ci0KLSAgICAgIGlmICh0aGlzLnRocmVhZF8uYXN5bmNTbGljZUdyb3VwLmxlbmd0aCkKLSAgICAgICAgdGhpcy5hcHBlbmRBc3luY1NsaWNlVHJhY2tzXygpOwotCi0gICAgICB0aGlzLmFwcGVuZFRocmVhZFNhbXBsZXNUcmFja3NfKCk7Ci0KLSAgICAgIGlmICh0aGlzLnRocmVhZF8udGltZVNsaWNlcykgewotICAgICAgICB2YXIgdGltZVNsaWNlc1RyYWNrID0gbmV3IHRyLmMudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICAgIHRpbWVTbGljZXNUcmFjay5oZWFkaW5nID0gJyc7Ci0gICAgICAgIHRpbWVTbGljZXNUcmFjay5oZWlnaHQgPSB0ci5jLlRISU5fU0xJQ0VfSEVJR0hUICsgJ3B4JzsKLSAgICAgICAgdGltZVNsaWNlc1RyYWNrLnNsaWNlcyA9IHRoaXMudGhyZWFkXy50aW1lU2xpY2VzOwotICAgICAgICBpZiAodGltZVNsaWNlc1RyYWNrLmhhc1Zpc2libGVDb250ZW50KQotICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGltZVNsaWNlc1RyYWNrKTsKLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMudGhyZWFkXy5zbGljZUdyb3VwLmxlbmd0aCkgewotICAgICAgICB2YXIgdHJhY2sgPSBuZXcgdHIuYy50cmFja3MuU2xpY2VHcm91cFRyYWNrKHRoaXMudmlld3BvcnQpOwotICAgICAgICB0cmFjay5oZWFkaW5nID0gdGhpcy50aHJlYWRfLnVzZXJGcmllbmRseU5hbWU7Ci0gICAgICAgIHRyYWNrLnRvb2x0aXAgPSB0aGlzLnRocmVhZF8udXNlckZyaWVuZGx5RGV0YWlsczsKLSAgICAgICAgdHJhY2suZ3JvdXAgPSB0aGlzLnRocmVhZF8uc2xpY2VHcm91cDsKLSAgICAgICAgaWYgKHRyYWNrLmhhc1Zpc2libGVDb250ZW50KQotICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhcHBlbmRBc3luY1NsaWNlVHJhY2tzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgc3ViR3JvdXBzID0gdGhpcy50aHJlYWRfLmFzeW5jU2xpY2VHcm91cC52aWV3U3ViR3JvdXBzOwotICAgICAgc3ViR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oc3ViR3JvdXApIHsKLSAgICAgICAgdmFyIGFzeW5jVHJhY2sgPSBuZXcgdHIuYy50cmFja3MuQXN5bmNTbGljZUdyb3VwVHJhY2sodGhpcy52aWV3cG9ydCk7Ci0gICAgICAgIHZhciB0aXRsZSA9IHN1Ykdyb3VwLnNsaWNlc1swXS52aWV3U3ViR3JvdXBUaXRsZTsKLSAgICAgICAgYXN5bmNUcmFjay5ncm91cCA9IHN1Ykdyb3VwOwotICAgICAgICBhc3luY1RyYWNrLmhlYWRpbmcgPSB0aXRsZTsKLSAgICAgICAgaWYgKGFzeW5jVHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCi0gICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChhc3luY1RyYWNrKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBhcHBlbmRUaHJlYWRTYW1wbGVzVHJhY2tzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgdGhyZWFkU2FtcGxlcyA9IHRoaXMudGhyZWFkXy5zYW1wbGVzOwotICAgICAgaWYgKHRocmVhZFNhbXBsZXMgPT09IHVuZGVmaW5lZCB8fCB0aHJlYWRTYW1wbGVzLmxlbmd0aCA9PT0gMCkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdmFyIHNhbXBsZXNCeVRpdGxlID0ge307Ci0gICAgICB0aHJlYWRTYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICAgIGlmIChzYW1wbGVzQnlUaXRsZVtzYW1wbGUudGl0bGVdID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgc2FtcGxlc0J5VGl0bGVbc2FtcGxlLnRpdGxlXSA9IFtdOwotICAgICAgICBzYW1wbGVzQnlUaXRsZVtzYW1wbGUudGl0bGVdLnB1c2goc2FtcGxlKTsKLSAgICAgIH0pOwotCi0gICAgICB2YXIgc2FtcGxlVGl0bGVzID0gdHIuYi5kaWN0aW9uYXJ5S2V5cyhzYW1wbGVzQnlUaXRsZSk7Ci0gICAgICBzYW1wbGVUaXRsZXMuc29ydCgpOwotCi0gICAgICBzYW1wbGVUaXRsZXMuZm9yRWFjaChmdW5jdGlvbihzYW1wbGVUaXRsZSkgewotICAgICAgICB2YXIgc2FtcGxlcyA9IHNhbXBsZXNCeVRpdGxlW3NhbXBsZVRpdGxlXTsKLSAgICAgICAgdmFyIHNhbXBsZXNUcmFjayA9IG5ldyB0ci5jLnRyYWNrcy5TYW1wbGVUcmFjayh0aGlzLnZpZXdwb3J0KTsKLSAgICAgICAgc2FtcGxlc1RyYWNrLmdyb3VwID0gdGhpcy50aHJlYWRfOwotICAgICAgICBzYW1wbGVzVHJhY2suc2FtcGxlcyA9IHNhbXBsZXM7Ci0gICAgICAgIHNhbXBsZXNUcmFjay5oZWFkaW5nID0gdGhpcy50aHJlYWRfLnVzZXJGcmllbmRseU5hbWUgKyAnOiAnICsKLSAgICAgICAgICAgIHNhbXBsZVRpdGxlOwotICAgICAgICBzYW1wbGVzVHJhY2sudG9vbHRpcCA9IHRoaXMudGhyZWFkXy51c2VyRnJpZW5kbHlEZXRhaWxzOwotICAgICAgICBzYW1wbGVzVHJhY2suc2VsZWN0aW9uR2VuZXJhdG9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2FtcGxlc1RyYWNrLnNhbXBsZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKHNhbXBsZXNUcmFjay5zYW1wbGVzW2ldKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKLSAgICAgICAgfTsKLSAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzYW1wbGVzVHJhY2spOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIGNvbGxhcHNlZERpZENoYW5nZTogZnVuY3Rpb24oY29sbGFwc2VkKSB7Ci0gICAgICBpZiAoY29sbGFwc2VkKSB7Ci0gICAgICAgIHZhciBoID0gcGFyc2VJbnQodGhpcy50cmFja3NbMF0uaGVpZ2h0KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRyYWNrcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgIGlmIChoID4gMikgewotICAgICAgICAgICAgdGhpcy50cmFja3NbaV0uaGVpZ2h0ID0gTWF0aC5mbG9vcihoKSArICdweCc7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMudHJhY2tzW2ldLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgICAgfQotICAgICAgICAgIGggPSBoICogMC41OwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudHJhY2tzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgdGhpcy50cmFja3NbaV0uaGVpZ2h0ID0gdGhpcy50cmFja3NbMF0uaGVpZ2h0OwotICAgICAgICAgIHRoaXMudHJhY2tzW2ldLnN0eWxlLmRpc3BsYXkgPSAnJzsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFRocmVhZFRyYWNrOiBUaHJlYWRUcmFjawotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvdGhyZWFkX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvdGhyZWFkX3RyYWNrX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDg0NWNiYi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3RocmVhZF90cmFja190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2luc3RhbnRfZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3RocmVhZF90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBIaWdobGlnaHRJbnN0YW50RXZlbnQgPSB0ci5tb2RlbC5UaHJlYWRIaWdobGlnaHRJbnN0YW50RXZlbnQ7Ci0gIHZhciBQcm9jZXNzID0gdHIubW9kZWwuUHJvY2VzczsKLSAgdmFyIFNlbGVjdGlvbiA9IHRyLmMuU2VsZWN0aW9uOwotICB2YXIgU3RhY2tGcmFtZSA9IHRyLm1vZGVsLlN0YWNrRnJhbWU7Ci0gIHZhciBTYW1wbGUgPSB0ci5tb2RlbC5TYW1wbGU7Ci0gIHZhciBUaHJlYWQgPSB0ci5tb2RlbC5UaHJlYWQ7Ci0gIHZhciBUaHJlYWRTbGljZSA9IHRyLm1vZGVsLlRocmVhZFNsaWNlOwotICB2YXIgVGhyZWFkVHJhY2sgPSB0ci5jLnRyYWNrcy5UaHJlYWRUcmFjazsKLSAgdmFyIFZpZXdwb3J0ID0gdHIuYy5UaW1lbGluZVZpZXdwb3J0OwotICB2YXIgbmV3QXN5bmNTbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlOwotICB2YXIgbmV3QXN5bmNTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VOYW1lZDsKLSAgdmFyIG5ld1NsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZDsKLQotICB0ZXN0KCdzZWxlY3Rpb25IaXRUZXN0aW5nV2l0aFRocmVhZFRyYWNrJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyBUaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgNCkpOwotICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyBUaHJlYWRTbGljZSgnJywgJ2InLCAwLCA1LjEsIHt9LCA0KSk7Ci0KLSAgICB2YXIgdGVzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGVzdEVsLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU2NvcGVkU3R5bGUoJ2hlYWRpbmcgeyB3aWR0aDogMTAwcHg7IH0nKSk7Ci0gICAgdGVzdEVsLnN0eWxlLndpZHRoID0gJzYwMHB4JzsKLQotICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh0ZXN0RWwpOwotICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLmMudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOwotICAgIHRlc3RFbC5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKLQotICAgIHZhciB0cmFjayA9IG5ldyBUaHJlYWRUcmFjayh2aWV3cG9ydCk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci51cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfKCk7Ci0gICAgdHJhY2sudGhyZWFkID0gdDE7Ci0KLSAgICB2YXIgeSA9IHRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDsKLSAgICB2YXIgaCA9IHRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDsKLSAgICB2YXIgd1cgPSAxMDsKLSAgICB2YXIgdlcgPSBkcmF3aW5nQ29udGFpbmVyLmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgd1csIHZXKTsKLSAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKLSAgICB2YXIgeCA9ICgxLjUgLyB3VykgKiB2VzsKLSAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCi0gICAgICAgIHgsIHggKyAxLCB5LCB5ICsgMSwgc2VsZWN0aW9uKTsKLSAgICBhc3NlcnQuZXF1YWwodDEuc2xpY2VHcm91cC5zbGljZXNbMF0sIHNlbGVjdGlvblswXSk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOwotICAgIHRyYWNrLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbigKLSAgICAgICAgKDEuNSAvIHdXKSAqIHZXLCAoMS44IC8gd1cpICogdlcsCi0gICAgICAgIHksIHkgKyBoLCBzZWxlY3Rpb24pOwotICAgIGFzc2VydC5lcXVhbCh0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwgc2VsZWN0aW9uWzBdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmlsdGVyVGhyZWFkU2xpY2VzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHRocmVhZCA9IG5ldyBUaHJlYWQobmV3IFByb2Nlc3MobW9kZWwsIDcpLCAxKTsKLSAgICB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDAsIDApKTsKLSAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2gobmV3QXN5bmNTbGljZU5hbWVkKCdhJywgMCwgNSwgdCwgdCkpOwotCi0gICAgdmFyIHQgPSBuZXcgVGhyZWFkVHJhY2sobmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCgpKTsKLSAgICB0LnRocmVhZCA9IHRocmVhZDsKLQotICAgIGFzc2VydC5lcXVhbCh0LnRyYWNrc18ubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuaW5zdGFuY2VPZih0LnRyYWNrc19bMF0sIHRyLmMudHJhY2tzLkFzeW5jU2xpY2VHcm91cFRyYWNrKTsKLSAgICBhc3NlcnQuaW5zdGFuY2VPZih0LnRyYWNrc19bMV0sIHRyLmMudHJhY2tzLlNsaWNlR3JvdXBUcmFjayk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NhbXBsZVRocmVhZFNsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciB0aHJlYWQ7Ci0gICAgdmFyIGNwdTsKLSAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7Ci0gICAgICBjcHUgPSBtb2RlbC5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoMSk7Ci0gICAgICB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0KLSAgICAgIHZhciBmQSA9IG1vZGVsLmFkZFN0YWNrRnJhbWUobmV3IFN0YWNrRnJhbWUoCi0gICAgICAgICAgdW5kZWZpbmVkLCAxLCAnY2F0JywgJ2EnLCA3KSk7Ci0gICAgICB2YXIgZkFCID0gbW9kZWwuYWRkU3RhY2tGcmFtZShuZXcgU3RhY2tGcmFtZSgKLSAgICAgICAgICBmQSwgMiwgJ2NhdCcsICdiJywgNykpOwotICAgICAgdmFyIGZBQkMgPSBtb2RlbC5hZGRTdGFja0ZyYW1lKG5ldyBTdGFja0ZyYW1lKAotICAgICAgICAgIGZBQiwgMywgJ2NhdCcsICdjJywgNykpOwotICAgICAgdmFyIGZBRCA9IG1vZGVsLmFkZFN0YWNrRnJhbWUobmV3IFN0YWNrRnJhbWUoCi0gICAgICAgICAgZkEsIDQsICdjYXQnLCAnZCcsIDcpKTsKLQotICAgICAgbW9kZWwuc2FtcGxlcy5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdpbnN0cnVjdGlvbnNfcmV0aXJlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgZkFCQywgMTApKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAsIGZBQiwgMTApKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAsIGZBQiwgMTApKTsKLSAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIGZBRCwgMTApKTsKLQotICAgICAgbW9kZWwuc2FtcGxlcy5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdwYWdlX2ZhdWx0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LCBmQUIsIDEwKSk7Ci0gICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ3BhZ2VfZmF1bHQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUsIGZBRCwgMTApKTsKLSAgICB9KTsKLQotICAgIHZhciB0ID0gbmV3IFRocmVhZFRyYWNrKG5ldyB0ci5jLlRpbWVsaW5lVmlld3BvcnQoKSk7Ci0gICAgdC50aHJlYWQgPSB0aHJlYWQ7Ci0gICAgYXNzZXJ0LmVxdWFsKHQudHJhY2tzXy5sZW5ndGgsIDIpOwotCi0gICAgLy8gSW5zdHJ1Y3Rpb25zIHJldGlyZWQKLSAgICB2YXIgdDAgPSB0LnRyYWNrc19bMF07Ci0gICAgYXNzZXJ0Lm5vdEVxdWFsKHQwLmhlYWRpbmcuaW5kZXhPZignaW5zdHJ1Y3Rpb25zX3JldGlyZWQnKSwgLTEpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKHQwLCB0ci5jLnRyYWNrcy5TYW1wbGVUcmFjayk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQwLnNhbXBsZXMubGVuZ3RoLCA0KTsKLSAgICB0MC5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24ocykgewotICAgICAgYXNzZXJ0Lmluc3RhbmNlT2YocywgdHIubW9kZWwuU2FtcGxlKTsKLSAgICB9KTsKLQotICAgIC8vIHBhZ2VfZmF1bHQKLSAgICB2YXIgdDEgPSB0LnRyYWNrc19bMV07Ci0gICAgYXNzZXJ0Lm5vdEVxdWFsKHQxLmhlYWRpbmcuaW5kZXhPZigncGFnZV9mYXVsdCcpLCAtMSk7Ci0gICAgYXNzZXJ0Lmluc3RhbmNlT2YodDEsIHRyLmMudHJhY2tzLlNhbXBsZVRyYWNrKTsKLSAgICBhc3NlcnQuZXF1YWwodDEuc2FtcGxlcy5sZW5ndGgsIDIpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkOGZiNWEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY29yZS90cmFja3MvdHJhY2suY3NzIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9jb250YWluZXJfdGhhdF9kZWNvcmF0ZXNfaXRzX2NoaWxkcmVuLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUmVuZGVycyBhbiBhcnJheSBvZiBzbGljZXMgaW50byB0aGUgcHJvdmlkZWQgZGl2LAotICogdXNpbmcgYSBjaGlsZCBjYW52YXMgZWxlbWVudC4gVXNlcyBhIEZhc3RSZWN0UmVuZGVyZXIgdG8gZHJhdyBvbmx5Ci0gKiB0aGUgdmlzaWJsZSBzbGljZXMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5jLnRyYWNrcycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogVGhlIGJhc2UgY2xhc3MgZm9yIGFsbCB0cmFja3MuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIFRyYWNrID0gdHIuYi51aS5kZWZpbmUoJ3RyYWNrJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuYi51aS5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4pOwotICBUcmFjay5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5iLnVpLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbi5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHRyLmIudWkuQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMpOwotICAgICAgaWYgKHZpZXdwb3J0ID09PSB1bmRlZmluZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigndmlld3BvcnQgaXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyBhIFRyYWNrLicpOwotCi0gICAgICB0aGlzLnZpZXdwb3J0XyA9IHZpZXdwb3J0OwotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0cmFjaycpOwotICAgIH0sCi0KLSAgICBnZXQgdmlld3BvcnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy52aWV3cG9ydF87Ci0gICAgfSwKLQotICAgIGdldCBkcmF3aW5nQ29udGFpbmVyKCkgewotICAgICAgdmFyIGN1ciA9IHRoaXM7Ci0gICAgICB3aGlsZSAoY3VyKSB7Ci0gICAgICAgIGlmIChjdXIgaW5zdGFuY2VvZiB0ci5jLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKQotICAgICAgICAgIHJldHVybiBjdXI7Ci0gICAgICAgIGN1ciA9IGN1ci5wYXJlbnRFbGVtZW50OwotICAgICAgfQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IGV2ZW50Q29udGFpbmVyKCkgewotICAgIH0sCi0KLSAgICBpbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcjogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZGMgPSB0aGlzLmRyYXdpbmdDb250YWluZXI7Ci0gICAgICBpZiAoZGMpCi0gICAgICAgIGRjLmludmFsaWRhdGUoKTsKLSAgICB9LAotCi0gICAgY29udGV4dDogZnVuY3Rpb24oKSB7Ci0gICAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIHdlaXJkIGhlcmUsIGJ1dCB3ZSBoYXZlIHRvIGJlIGFibGUgdG8gd2FsayB1cCB0aGUKLSAgICAgIC8vIHBhcmVudCB0cmVlIHRvIGdldCB0aGUgY29udGV4dC4KLSAgICAgIGlmICghdGhpcy5wYXJlbnROb2RlKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgaWYgKCF0aGlzLnBhcmVudE5vZGUuY29udGV4dCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJlbnQgY29udGFpbmVyIGRvZXMgbm90IHN1cHBvcnQgY29udGV4dCgpIG1ldGhvZC4nKTsKLSAgICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGUuY29udGV4dCgpOwotICAgIH0sCi0KLSAgICBkZWNvcmF0ZUNoaWxkXzogZnVuY3Rpb24oY2hpbGRUcmFjaykgewotICAgIH0sCi0KLSAgICB1bmRlY29yYXRlQ2hpbGRfOiBmdW5jdGlvbihjaGlsZFRyYWNrKSB7Ci0gICAgICBpZiAoY2hpbGRUcmFjay5kZXRhY2gpCi0gICAgICAgIGNoaWxkVHJhY2suZGV0YWNoKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgfSwKLQotICAgIGRyYXdUcmFjazogZnVuY3Rpb24odHlwZSkgewotICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOwotCi0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBjYW52YXNCb3VuZHMgPSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotCi0gICAgICBjdHguc2F2ZSgpOwotICAgICAgY3R4LnRyYW5zbGF0ZSgwLCBwaXhlbFJhdGlvICogKGJvdW5kcy50b3AgLSBjYW52YXNCb3VuZHMudG9wKSk7Ci0KLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0gICAgICB2YXIgdmlld0xXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCgwKTsKLSAgICAgIHZhciB2aWV3UldvcmxkID0gZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW8pOwotCi0gICAgICB0aGlzLmRyYXcodHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCk7Ci0gICAgICBjdHgucmVzdG9yZSgpOwotICAgIH0sCi0KLSAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7Ci0gICAgfSwKLQotICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgewotICAgIH0sCi0KLSAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCkgewotICAgIH0sCi0KLSAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb246IGZ1bmN0aW9uKAotICAgICAgICBsb1ZYLCBoaVZYLCBsb1ZZLCBoaVZZLCBzZWxlY3Rpb24pIHsKLQotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICAgIHZhciB2aWV3UGl4V2lkdGhXb3JsZCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTsKLSAgICAgIHZhciBsb1dYID0gZHQueFZpZXdUb1dvcmxkKGxvVlggKiBwaXhlbFJhdGlvKTsKLSAgICAgIHZhciBoaVdYID0gZHQueFZpZXdUb1dvcmxkKGhpVlggKiBwaXhlbFJhdGlvKTsKLQotICAgICAgdmFyIGNsaWVudFJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIGEgPSBNYXRoLm1heChsb1ZZLCBjbGllbnRSZWN0LnRvcCk7Ci0gICAgICB2YXIgYiA9IE1hdGgubWluKGhpVlksIGNsaWVudFJlY3QuYm90dG9tKTsKLSAgICAgIGlmIChhID4gYikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKLSAgICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKTsKLSAgICB9LAotCi0gICAgYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlOiBmdW5jdGlvbigKLSAgICAgICAgbG9XWCwgaGlXWCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbikgewotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBHZXRzIGltcGxlbWVudGVkIGJ5IHN1cHBvcnRpbmcgdHJhY2sgdHlwZXMuIFRoZSBtZXRob2QgYWRkcyB0aGUgZXZlbnQKLSAgICAgKiBjbG9zZXN0IHRvIHdvcmxkWCB0byB0aGUgc2VsZWN0aW9uLgotICAgICAqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHdvcmxkWCBUaGUgcG9zaXRpb24gdGhhdCBpcyBsb29rZWQgZm9yLgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3b3JsZE1heERpc3QgVGhlIG1heGltdW0gZGlzdGFuY2UgYWxsb3dlZCBmcm9tIHdvcmxkWCB0bwotICAgICAqICAgICB0aGUgZXZlbnQuCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGxvWSBMb3dlciBZIGJvdW5kIG9mIHRoZSBzZWFyY2ggaW50ZXJ2YWwgaW4gdmlldyBzcGFjZS4KLSAgICAgKiBAcGFyYW0ge251bWJlcn0gaGlZIFVwcGVyIFkgYm91bmQgb2YgdGhlIHNlYXJjaCBpbnRlcnZhbCBpbiB2aWV3IHNwYWNlLgotICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gU2VsZWN0aW9uIHRvIHdoaWNoIHRvIGFkZCBoaXRzLgotICAgICAqLwotICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbigKLSAgICAgICAgd29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLCBzZWxlY3Rpb24pIHsKLSAgICB9LAotCi0gICAgYWRkQ2xvc2VzdEluc3RhbnRFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbihpbnN0YW50RXZlbnRzLCB3b3JsZFgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JsZE1heERpc3QsIHNlbGVjdGlvbikgewotICAgICAgdmFyIGluc3RhbnRFdmVudCA9IHRyLmIuZmluZENsb3Nlc3RFbGVtZW50SW5Tb3J0ZWRBcnJheSgKLSAgICAgICAgICBpbnN0YW50RXZlbnRzLAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguc3RhcnQ7IH0sCi0gICAgICAgICAgd29ybGRYLAotICAgICAgICAgIHdvcmxkTWF4RGlzdCk7Ci0KLSAgICAgIGlmICghaW5zdGFudEV2ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHNlbGVjdGlvbi5wdXNoKGluc3RhbnRFdmVudCk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgVHJhY2s6IFRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy94X21hcmtlcl9hbm5vdGF0aW9uX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MveF9tYXJrZXJfYW5ub3RhdGlvbl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmZjJkZGEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy94X21hcmtlcl9hbm5vdGF0aW9uX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2Fubm90YXRpb25fdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMuYW5ub3RhdGlvbnMnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEEgdmlldyB0aGF0IGRyYXdzIGEgdmVydGljYWwgbGluZSBvbiB0aGUgdGltZWxpbmUgYXQgYSBzcGVjaWZpYyB0aW1lc3RhbXAuCi0gICAqIEBleHRlbmRzIHtBbm5vdGF0aW9uVmlld30KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBYTWFya2VyQW5ub3RhdGlvblZpZXcodmlld3BvcnQsIGFubm90YXRpb24pIHsKLSAgICB0aGlzLnZpZXdwb3J0XyA9IHZpZXdwb3J0OwotICAgIHRoaXMuYW5ub3RhdGlvbl8gPSBhbm5vdGF0aW9uOwotICB9Ci0KLSAgWE1hcmtlckFubm90YXRpb25WaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMuYW5ub3RhdGlvbnMuQW5ub3RhdGlvblZpZXcucHJvdG90eXBlLAotCi0gICAgZHJhdzogZnVuY3Rpb24oY3R4KSB7Ci0gICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKLSAgICAgIHZhciB2aWV3WCA9IGR0LnhXb3JsZFRvVmlldyh0aGlzLmFubm90YXRpb25fLnRpbWVzdGFtcCk7Ci0KLSAgICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICAgIHRyLmMuZHJhd0xpbmUoY3R4LCB2aWV3WCwgMCwgdmlld1gsIGN0eC5jYW52YXMuaGVpZ2h0KTsKLSAgICAgIGN0eC5zdHJva2VTdHlsZSA9IHRoaXMuYW5ub3RhdGlvbl8uc3Ryb2tlU3R5bGU7Ci0gICAgICBjdHguc3Ryb2tlKCk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgWE1hcmtlckFubm90YXRpb25WaWV3OiBYTWFya2VyQW5ub3RhdGlvblZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdWlfc3RhdGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS91aV9zdGF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjU4MDU1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS91aV9zdGF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9sb2NhdGlvbi5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKLSAgdmFyIExvY2F0aW9uID0gdHIuYy5Mb2NhdGlvbjsKLQotICAvKioKLSAgICogVUlTdGF0ZSBpcyBhIGNsYXNzIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdGltZWxpbmUgYnkKLSAgICogdGhlIExvY2F0aW9uIG9mIHRoZSBwb2ludCBvZiBpbnRlcmVzdCBhbmQgdGhlIGN1cnJlbnQgc2NhbGVYIG9mIHRoZQotICAgKiB0aW1lbGluZS4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBVSVN0YXRlKGxvY2F0aW9uLCBzY2FsZVgpIHsKLSAgICB0aGlzLmxvY2F0aW9uXyA9IGxvY2F0aW9uOwotICAgIHRoaXMuc2NhbGVYXyA9IHNjYWxlWDsKLSAgfTsKLQotICAvKioKLSAgICogQWNjZXB0cyBhIFVJU3RhdGUgc3RyaW5nIGluIHRoZSBmb3JtYXQgb2YgKHRpbWVzdGFtcClAKHN0YWJsZUlEKXgoc2NhbGVYKQotICAgKiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBzdHJpbmcgaXMgbm90IGluIHRoaXMgZm9ybWF0LCBvciB0aHJvd3MgYW4gRXJyb3IgaWYKLSAgICogdmFyaWFibGVzIGluIGEgc3ludGFjdGljYWxseS1jb3JyZWN0IHN0YXRlU3RyaW5nIGRvZXMgbm90IHByb2R1Y2UgYSB2YWxpZAotICAgKiBVSVN0YXRlLiBPdGhlcndpc2UgcmV0dXJucyBhIGNvbnN0cnVjdGVkIFVJU3RhdGUgaW5zdGFuY2UuCi0gICAqLwotICBVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcgPSBmdW5jdGlvbihtb2RlbCwgdmlld3BvcnQsIHN0YXRlU3RyaW5nKSB7Ci0gICAgdmFyIG5hdkJ5RmluZGVyUGF0dGVybiA9IC9eKC0/XGQrKFwuXGQrKT8pQCguKyl4KFxkKyhcLlxkKyk/KSQvZzsKLSAgICB2YXIgbWF0Y2ggPSBuYXZCeUZpbmRlclBhdHRlcm4uZXhlYyhzdGF0ZVN0cmluZyk7Ci0gICAgaWYgKCFtYXRjaCkKLSAgICAgIHJldHVybjsKLQotICAgIHZhciB0aW1lc3RhbXAgPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTsKLSAgICB2YXIgc3RhYmxlSWQgPSBtYXRjaFszXTsKLSAgICB2YXIgc2NhbGVYID0gcGFyc2VGbG9hdChtYXRjaFs0XSk7Ci0KLSAgICBpZiAoc2NhbGVYIDw9IDApCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgU2NhbGVYIHZhbHVlIGluIFVJIFN0YXRlIHN0cmluZy4nKTsKLQotICAgIGlmICghdmlld3BvcnQuY29udGFpbmVyVG9UcmFja09iai5nZXRUcmFja0J5U3RhYmxlSWQoc3RhYmxlSWQpKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFN0YWJsZUlEIGdpdmVuIGluIFVJIFN0YXRlIFN0cmluZy4nKTsKLQotICAgIHZhciBsb2MgPSB0ci5jLkxvY2F0aW9uLmZyb21TdGFibGVJZEFuZFRpbWVzdGFtcCgKLSAgICAgICAgdmlld3BvcnQsIHN0YWJsZUlkLCB0aW1lc3RhbXApOwotICAgIHJldHVybiBuZXcgVUlTdGF0ZShsb2MsIHNjYWxlWCk7Ci0gIH0KLQotICBVSVN0YXRlLnByb3RvdHlwZSA9IHsKLQotICAgIGdldCBsb2NhdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uXzsKLSAgICB9LAotCi0gICAgZ2V0IHNjYWxlWCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnNjYWxlWF87Ci0gICAgfSwKLQotICAgIHRvVXNlckZyaWVuZGx5U3RyaW5nOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdmFyIHRpbWVzdGFtcCA9IHRoaXMubG9jYXRpb25fLnhXb3JsZDsKLSAgICAgIHZhciBzdGFibGVJZCA9Ci0gICAgICAgICAgdGhpcy5sb2NhdGlvbl8uZ2V0Q29udGFpbmluZ1RyYWNrKHZpZXdwb3J0KS5ldmVudENvbnRhaW5lci5zdGFibGVJZDsKLSAgICAgIHZhciBzY2FsZVggPSB0aGlzLnNjYWxlWF87Ci0gICAgICByZXR1cm4gdGltZXN0YW1wLnRvRml4ZWQoNSkgKyAnQCcgKyBzdGFibGVJZCArICd4JyArIHNjYWxlWC50b0ZpeGVkKDUpOwotICAgIH0sCi0KLSAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb25fLnRvRGljdCgpLAotICAgICAgICBzY2FsZVg6IHRoaXMuc2NhbGVYXwotICAgICAgfTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBVSVN0YXRlOiBVSVN0YXRlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3VpX3N0YXRlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS91aV9zdGF0ZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmNWY0ODAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3VpX3N0YXRlX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdWlfc3RhdGUuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgVUlTdGF0ZSA9IHRyLmMuVUlTdGF0ZTsKLQotICBmdW5jdGlvbiBGYWtlTW9kZWwoKSB7Ci0gICAgdGhpcy5wcm9jZXNzZXMgPSB7IDE6IHsgdGhyZWFkczogeyAyOiB7IHN0YWJsZUlkOiAnMS4yJyB9IH0gfSB9OwotICB9Ci0KLSAgLy8gRmFrZVRyYWNrIG5lZWRzIHRvIGJlIGFuIGluc3RhbmNlIG9mIHRyLmMudHJhY2tzLlRyYWNrIGJlY2F1c2UgYQotICAvLyBsb2NhdGlvbiBpcyBjb25zdHJ1Y3RlZCBpbiB0ZXJtcyBvZiBUcmFjayBpbnN0YW5jZXMuCi0gIGZ1bmN0aW9uIEZha2VUcmFjaygpIHsgfQotICBGYWtlVHJhY2sucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy50cmFja3MuVHJhY2sucHJvdG90eXBlLAotCi0gICAgZ2V0IGV2ZW50Q29udGFpbmVyKCkgewotICAgICAgcmV0dXJuIHsgc3RhYmxlSWQ6ICcxLjInIH07Ci0gICAgfSwKLQotICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdDogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4geyB0b3A6IDUsIGhlaWdodDogMiB9OwotICAgIH0sCi0KLSAgICBnZXQgcGFyZW50RWxlbWVudCgpIHsKLSAgICAgIHJldHVybiBudWxsOwotICAgIH0KLSAgfTsKLQotICBmdW5jdGlvbiBGYWtlVmlld1BvcnQoKSB7Ci0gICAgdGhpcy5jb250YWluZXJUb1RyYWNrT2JqID0gewotICAgICAgLy8gIjEuMiIgaXMgdGhlIG9ubHkgdmFsaWQgc3RhYmxlSWQgdGhpcyB0ZXN0IGZ1bmN0aW9uIGFjY2VwdHMuCi0gICAgICBnZXRUcmFja0J5U3RhYmxlSWQ6IGZ1bmN0aW9uKHN0YWJsZUlkKSB7Ci0gICAgICAgIGlmIChzdGFibGVJZCA9PT0gJzEuMicpCi0gICAgICAgICAgcmV0dXJuIG5ldyBGYWtlVHJhY2s7Ci0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICB9Ci0gICAgfTsKLSAgfQotCi0gIHRlc3QoJ2ludmFsaWRTdGFibGVJZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBGYWtlTW9kZWw7Ci0gICAgdmFyIHZwID0gbmV3IEZha2VWaWV3UG9ydDsKLSAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgewotICAgICAgVUlTdGF0ZS5mcm9tVXNlckZyaWVuZGx5U3RyaW5nKG1vZGVsLCB2cCwgJzE1QDEuM3g2Jyk7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbigpIHsKLSAgICAgIFVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyhtb2RlbCwgdnAsICcxNUAyLjJ4NicpOwotICAgIH0pOwotICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7Ci0gICAgICBVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcobW9kZWwsIHZwLCAnNTA1QDEueDUnKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW52YWxpZFNjYWxlWCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyBGYWtlTW9kZWw7Ci0gICAgdmFyIHZwID0gbmV3IEZha2VWaWV3UG9ydDsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoVUlTdGF0ZS5mcm9tVXNlckZyaWVuZGx5U3RyaW5nKG1vZGVsLCB2cCwgJzFAMS4yeC0xJykpOwotICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7Ci0gICAgICBVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcobW9kZWwsIHZwLCAnMUAxLjJ4MCcpOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCdpbnZhbGlkU3ludGF4JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IEZha2VNb2RlbDsKLSAgICB2YXIgdnAgPSBuZXcgRmFrZVZpZXdQb3J0OwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcobW9kZWwsIHZwLCAnNScpKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoVUlTdGF0ZS5mcm9tVXNlckZyaWVuZGx5U3RyaW5nKG1vZGVsLCB2cCwgJzVAeDUnKSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKFVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyhtb2RlbCwgdnAsICdhYkAxLjJ4NScpKTsKLSAgfSk7Ci0KLSAgdGVzdCgndmFsaWRTdHJpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgRmFrZU1vZGVsOwotICAgIHZhciB2cCA9IG5ldyBGYWtlVmlld1BvcnQ7Ci0gICAgdmFyIHN0ciA9ICctNTAxMjUuNTEyMzFAMS4yeDEuMTIzNDUnOwotICAgIHZhciB1aVN0YXRlID0gVUlTdGF0ZS5mcm9tVXNlckZyaWVuZGx5U3RyaW5nKG1vZGVsLCB2cCwgc3RyKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQodWlTdGF0ZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHVpU3RhdGUubG9jYXRpb24ueFdvcmxkLCAtNTAxMjUuNTEyMzEpOwotICAgIGFzc2VydC5lcXVhbCgKLSAgICAgICAgdWlTdGF0ZS5sb2NhdGlvbi5nZXRDb250YWluaW5nVHJhY2sodnApLmV2ZW50Q29udGFpbmVyLnN0YWJsZUlkLAotICAgICAgICAnMS4yJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHVpU3RhdGUuc2NhbGVYLCAxLjEyMzQ1KTsKLQotICAgIGFzc2VydC5lcXVhbCh1aVN0YXRlLnRvVXNlckZyaWVuZGx5U3RyaW5nKHZwKSwgc3RyKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI3ZTk4Ny4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9hYm91dF90cmFjaW5nLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2Fib3V0X3RyYWNpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFmZWIyMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2Fib3V0X3RyYWNpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvY29tbW9uLmNzcyI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZnVsbF9jb25maWcuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5hYm91dF90cmFjaW5nJywgZnVuY3Rpb24oKSB7Ci0gIHdpbmRvdy5wcm9maWxpbmdWaWV3ID0gdW5kZWZpbmVkOyAgLy8gTWFkZSBnbG9iYWwgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5LgotCi0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKLSAgICB3aW5kb3cucHJvZmlsaW5nVmlldyA9IG5ldyB0ci5lLmFib3V0X3RyYWNpbmcuUHJvZmlsaW5nVmlldygpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocHJvZmlsaW5nVmlldyk7Ci0gIH0pOwotCi0gIHJldHVybiB7fTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2NvbW1vbi5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2NvbW1vbi5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1NWJhNTMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9jb21tb24uY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotaHRtbCwKLWJvZHkgewotICBoZWlnaHQ6IDEwMCU7Ci19Ci0KLWJvZHkgewotICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgbWFyZ2luOiAwOwotICBwYWRkaW5nOiAwOwotfQotCi1ib2R5ID4geC1wcm9maWxpbmctdmlldyB7Ci0gIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gIG1pbi1oZWlnaHQ6IDA7Ci19Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX2Nvbm5lY3Rpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX2Nvbm5lY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NkODNjMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl9jb25uZWN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBDb250YWlucyBjb25uZWN0aW9uIGNvZGUgdGhhdCBpbnNwZWN0b3IncyBlbWJlZGRpbmcgZnJhbWV3b3JrIGNhbGxzIG9uCi0gKiB0cmFjaW5nLCBhbmQgdGhhdCB0cmFjaW5nIGNhbiB1c2UgdG8gdGFsayB0byBpbnNwZWN0b3IuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmFib3V0X3RyYWNpbmcnLCBmdW5jdGlvbigpIHsKLSAgLy8gSW50ZXJmYWNlIHVzZWQgYnkgaW5zcGVjdG9yIHdoZW4gaXQgaGFuZHMgZGF0YSB0byB1cyBmcm9tIHRoZSBiYWNrZW5kLgotICB3aW5kb3cuRGV2VG9vbHNBUEkgPSB7Ci0gICAgc2V0VG9vbGJhckNvbG9yczogZnVuY3Rpb24oKSB7IH0sCi0gICAgYWRkRXh0ZW5zaW9uczogZnVuY3Rpb24oKSB7IH0sCi0gICAgc2V0SW5zcGVjdGVkUGFnZUlkOiBmdW5jdGlvbigpIHsgfSwKLQotICAgIGRpc3BhdGNoTWVzc2FnZTogZnVuY3Rpb24ocGF5bG9hZCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgaGF2ZSBiZWVuIHBhdGNoZWQgYnkgSW5zcGVjdG9yQ29ubmVjdGlvbicpOwotICAgIH0KLSAgfTsKLSAgLy8gVGVtcG9yYXJ5IHVudGlsIGluc3BlY3RvciBiYWNrZW5kIHN3aXRjaGVzIHRvIERldlRvb2xzQVBJLgotICB3aW5kb3cuSW5zcGVjdG9yRnJvbnRlbmRBUEkgPSB3aW5kb3cuRGV2VG9vbHNBUEk7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gSW5zcGVjdG9yQ29ubmVjdGlvbigpIHsKLSAgICBpZiAoSW5zcGVjdG9yQ29ubmVjdGlvbi5pbnN0YW5jZSkKLSAgICAgIHRocm93IG5ldyBFcnJvcignU2luZ2xldG9uJyk7Ci0KLSAgICB0aGlzLm5leHRSZXF1ZXN0SWRfID0gMTsKLSAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0UmVzb2x2ZXJzSWRfID0ge307Ci0KLSAgICB0aGlzLm5vdGlmaWNhdGlvbkxpc3RlbmVyc0J5TWV0aG9kTmFtZV8gPSB7fTsKLSAgICBEZXZUb29sc0FQSS5kaXNwYXRjaE1lc3NhZ2UgPSB0aGlzLmRpc3BhdGNoTWVzc2FnZV8uYmluZCh0aGlzKTsKLSAgfQotCi0gIEluc3BlY3RvckNvbm5lY3Rpb24ucHJvdG90eXBlID0gewotICAgIHJlcTogZnVuY3Rpb24obWV0aG9kLCBwYXJhbXMpIHsKLSAgICAgIHZhciBpZCA9IHRoaXMubmV4dFJlcXVlc3RJZF8rKzsKLSAgICAgIHZhciBtc2cgPSBKU09OLnN0cmluZ2lmeSh7Ci0gICAgICAgIGlkOiBpZCwKLSAgICAgICAgbWV0aG9kOiBtZXRob2QsCi0gICAgICAgIHBhcmFtczogcGFyYW1zCi0gICAgICB9KTsKLSAgICAgIERldlRvb2xzSG9zdC5zZW5kTWVzc2FnZVRvQmFja2VuZChtc2cpOwotCi0gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RSZXNvbHZlcnNJZF9baWRdID0gewotICAgICAgICAgIHJlc29sdmU6IHJlc29sdmUsCi0gICAgICAgICAgcmVqZWN0OiByZWplY3QKLSAgICAgICAgfTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHNldE5vdGlmaWNhdGlvbkxpc3RlbmVyOiBmdW5jdGlvbihtZXRob2QsIGxpc3RlbmVyKSB7Ci0gICAgICB0aGlzLm5vdGlmaWNhdGlvbkxpc3RlbmVyc0J5TWV0aG9kTmFtZV9bbWV0aG9kXSA9IGxpc3RlbmVyOwotICAgIH0sCi0KLSAgICBkaXNwYXRjaE1lc3NhZ2VfOiBmdW5jdGlvbihwYXlsb2FkKSB7Ci0gICAgICB2YXIgaXNTdHJpbmdQYXlsb2FkID0gdHlwZW9mIHBheWxvYWQgPT09ICdzdHJpbmcnOwotICAgICAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgVHJhY2luZy5kYXRhQ29sbGVjdGVkIGJlY2F1c2UgaXQgaXMgaGlnaAotICAgICAgLy8gYmFuZHdpZHRoLgotICAgICAgdmFyIGlzRGF0YUNvbGxlY3RlZE1lc3NhZ2UgPSBpc1N0cmluZ1BheWxvYWQgPwotICAgICAgICAgIHBheWxvYWQuaW5kZXhPZignIm1ldGhvZCI6ICJUcmFjaW5nLmRhdGFDb2xsZWN0ZWQiJykgIT09IC0xIDoKLSAgICAgICAgICBwYXlsb2FkLm1ldGhvZCA9PT0gJ1RyYWNpbmcuZGF0YUNvbGxlY3RlZCc7Ci0gICAgICBpZiAoaXNEYXRhQ29sbGVjdGVkTWVzc2FnZSkgewotICAgICAgICB2YXIgbGlzdGVuZXIgPSB0aGlzLm5vdGlmaWNhdGlvbkxpc3RlbmVyc0J5TWV0aG9kTmFtZV9bCi0gICAgICAgICAgICAnVHJhY2luZy5kYXRhQ29sbGVjdGVkJ107Ci0gICAgICAgIGlmIChsaXN0ZW5lcikgewotICAgICAgICAgIC8vIEZJWE1FKGxvaXNsbyk6IHRyYWNlIHZpZXdlciBzaG91bGQgYmUgYWJsZSB0byBwcm9jZXNzCi0gICAgICAgICAgLy8gcmF3IG1lc3NhZ2Ugb2JqZWN0IGJlY2F1c2Ugc3RyaW5nIGJhc2VkIHZlcnNpb24gYSBmZXcgdGltZXMKLSAgICAgICAgICAvLyBzbG93ZXIgb24gdGhlIGJyb3dzZXIgc2lkZS4KLSAgICAgICAgICAvLyBzZWUgaHR0cHM6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy83ODQ1MTMwMDIuCi0gICAgICAgICAgbGlzdGVuZXIoaXNTdHJpbmdQYXlsb2FkID8gcGF5bG9hZCA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgdmFyIG1lc3NhZ2UgPSBpc1N0cmluZ1BheWxvYWQgPyBKU09OLnBhcnNlKHBheWxvYWQpIDogcGF5bG9hZDsKLSAgICAgIGlmIChtZXNzYWdlLmlkKSB7Ci0gICAgICAgIHZhciByZXNvbHZlciA9IHRoaXMucGVuZGluZ1JlcXVlc3RSZXNvbHZlcnNJZF9bbWVzc2FnZS5pZF07Ci0gICAgICAgIGlmIChyZXNvbHZlciA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coJ1VucmVjb2duaXplZCBhY2snLCBtZXNzYWdlKTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG1lc3NhZ2UuZXJyb3IpIHsKLSAgICAgICAgICByZXNvbHZlci5yZWplY3QobWVzc2FnZS5lcnJvcik7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHJlc29sdmVyLnJlc29sdmUobWVzc2FnZS5yZXN1bHQpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGlmIChtZXNzYWdlWydtZXRob2QnXSkgewotICAgICAgICB2YXIgbGlzdGVuZXIgPSB0aGlzLm5vdGlmaWNhdGlvbkxpc3RlbmVyc0J5TWV0aG9kTmFtZV9bbWVzc2FnZS5tZXRob2RdOwotICAgICAgICBpZiAobGlzdGVuZXIgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIGNvbnNvbGUubG9nKCdVbmhhbmRsZWQgJywgbWVzc2FnZS5tZXRob2QpOwotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBsaXN0ZW5lcihtZXNzYWdlLnBhcmFtcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGNvbnNvbGUubG9nKCdVbmtub3duIGRpc3BhdGNoTWVzc2FnZTogJywgcGF5bG9hZCk7Ci0gICAgfQotICB9OwotCi0gIGlmICh3aW5kb3cuRGV2VG9vbHNIb3N0KQotICAgIEluc3BlY3RvckNvbm5lY3Rpb24uaW5zdGFuY2UgPSBuZXcgSW5zcGVjdG9yQ29ubmVjdGlvbigpOwotICBlbHNlCi0gICAgSW5zcGVjdG9yQ29ubmVjdGlvbi5pbnN0YW5jZSA9IHVuZGVmaW5lZDsKLQotICByZXR1cm4gewotICAgIEluc3BlY3RvckNvbm5lY3Rpb246IEluc3BlY3RvckNvbm5lY3Rpb24KLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzMjQ3YjYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTgyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hYm91dF90cmFjaW5nL3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl9jb25uZWN0aW9uLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5hYm91dF90cmFjaW5nJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIGNyZWF0ZVJlc29sdmVkUHJvbWlzZShkYXRhKSB7Ci0gICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgIGlmIChkYXRhKQotICAgICAgICByZXNvbHZlKGRhdGEpOwotICAgICAgZWxzZQotICAgICAgICByZXNvbHZlKCk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIHByb21pc2U7Ci0gIH0KLQotICBmdW5jdGlvbiBhcHBlbmRUcmFjZUNodW5rc1RvKGNodW5rcywgbWVzc2FnZVN0cmluZykgewotICAgIGlmICh0eXBlb2YgbWVzc2FnZVN0cmluZyAhPT0gJ3N0cmluZycpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YScpOwotICAgIHZhciByZSA9IC8icGFyYW1zIjpccypce1xzKiJ2YWx1ZSI6XHMqXFsoW15dKylcXVxzKlx9XHMqXH0vOwotICAgIHZhciBtID0gcmUuZXhlYyhtZXNzYWdlU3RyaW5nKTsKLSAgICBpZiAoIW0pCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbGZvcm1lZCByZXNwb25zZScpOwotCi0gICAgaWYgKGNodW5rcy5sZW5ndGggPiAxKQotICAgICAgY2h1bmtzLnB1c2goJywnKTsKLSAgICBjaHVua3MucHVzaChtWzFdKTsKLSAgfQotCi0gIC8qKgotICAgKiBDb250cm9scyB0cmFjaW5nIHVzaW5nIHRoZSBpbnNwZWN0b3IncyBGcm9udGVuZEFnZW50SG9zdCBBUElzLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50KCkgewotICAgIHRoaXMucmVjb3JkaW5nXyA9IGZhbHNlOwotICAgIHRoaXMuYnVmZmVyVXNhZ2VfID0gMDsKLSAgICB0aGlzLmNvbm5fID0gdHIuZS5hYm91dF90cmFjaW5nLkluc3BlY3RvckNvbm5lY3Rpb24uaW5zdGFuY2U7Ci0gICAgdGhpcy5jdXJyZW50VHJhY2VUZXh0Q2h1bmtzXyA9IHVuZGVmaW5lZDsKLSAgfQotCi0gIEluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmUuYWJvdXRfdHJhY2luZy5UcmFjaW5nQ29udHJvbGxlckNsaWVudC5wcm90b3R5cGUsCi0KLSAgICBiZWdpbk1vbml0b3Jpbmc6IGZ1bmN0aW9uKG1vbml0b3JpbmdPcHRpb25zKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0sCi0KLSAgICBlbmRNb25pdG9yaW5nOiBmdW5jdGlvbigpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIGNhcHR1cmVNb25pdG9yaW5nOiBmdW5jdGlvbigpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIGdldE1vbml0b3JpbmdTdGF0dXM6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIGNyZWF0ZVJlc29sdmVkUHJvbWlzZSh7Ci0gICAgICAgIGlzTW9uaXRvcmluZzogZmFsc2UsCi0gICAgICAgIGNhdGVnb3J5RmlsdGVyOiAnJywKLSAgICAgICAgdXNlU3lzdGVtVHJhY2luZzogZmFsc2UsCi0gICAgICAgIHVzZUNvbnRpbnVvdXNUcmFjaW5nOiBmYWxzZSwKLSAgICAgICAgdXNlU2FtcGxpbmc6IGZhbHNlCi0gICAgICB9KTsKLSAgICB9LAotCi0gICAgZ2V0Q2F0ZWdvcmllczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcmVzID0gdGhpcy5jb25uXy5yZXEoJ1RyYWNpbmcuZ2V0Q2F0ZWdvcmllcycsIHt9KTsKLSAgICAgIHJldHVybiByZXMudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5jYXRlZ29yaWVzOwotICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7Ci0gICAgICAgIHJldHVybiBbXTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBiZWdpblJlY29yZGluZzogZnVuY3Rpb24ocmVjb3JkaW5nT3B0aW9ucykgewotICAgICAgaWYgKHRoaXMucmVjb3JkaW5nXykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHJlY29yZGluZycpOwotICAgICAgdGhpcy5yZWNvcmRpbmdfID0gJ3N0YXJ0aW5nJzsKLSAgICAgIHZhciByZXMgPSB0aGlzLmNvbm5fLnJlcSgKLSAgICAgICAgICAnVHJhY2luZy5zdGFydCcsCi0gICAgICAgICAgewotICAgICAgICAgICAgY2F0ZWdvcmllczogcmVjb3JkaW5nT3B0aW9ucy5jYXRlZ29yeUZpbHRlciwKLSAgICAgICAgICAgIG9wdGlvbnM6Ci0gICAgICAgICAgICAgICAgW3JlY29yZGluZ09wdGlvbnMudHJhY2luZ1JlY29yZE1vZGUsCi0gICAgICAgICAgICAgICAgICAocmVjb3JkaW5nT3B0aW9ucy51c2VTYW1wbGluZyA/ICdlbmFibGUtc2FtcGxpbmcnIDogJycpCi0gICAgICAgICAgICAgICAgXS5qb2luKCcsJyksCi0gICAgICAgICAgICBidWZmZXJVc2FnZVJlcG9ydGluZ0ludGVydmFsOiAxMDAwCi0gICAgICAgICAgfSk7Ci0gICAgICByZXMgPSByZXMudGhlbigKLSAgICAgICAgICBmdW5jdGlvbiBvaygpIHsKLSAgICAgICAgICAgIHRoaXMuY29ubl8uc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXIoCi0gICAgICAgICAgICAgICAgJ1RyYWNpbmcuYnVmZmVyVXNhZ2UnLAotICAgICAgICAgICAgICAgIHRoaXMub25CdWZmZXJVc2FnZVVwZGF0ZUZyb21JbnNwZWN0b3JfLmJpbmQodGhpcykpOwotICAgICAgICAgICAgdGhpcy5yZWNvcmRpbmdfID0gdHJ1ZTsKLSAgICAgICAgICB9LmJpbmQodGhpcyksCi0gICAgICAgICAgZnVuY3Rpb24gZXJyb3IoKSB7Ci0gICAgICAgICAgICB0aGlzLnJlY29yZGluZ18gPSBmYWxzZTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgcmV0dXJuIHJlczsKLSAgICB9LAotCi0gICAgb25CdWZmZXJVc2FnZVVwZGF0ZUZyb21JbnNwZWN0b3JfOiBmdW5jdGlvbihwYXJhbXMpIHsKLSAgICAgIHRoaXMuYnVmZmVyVXNhZ2VfID0gcGFyYW1zLnZhbHVlIHx8IHBhcmFtcy5wZXJjZW50RnVsbDsKLSAgICB9LAotCi0gICAgYmVnaW5HZXRCdWZmZXJQZXJjZW50RnVsbDogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgdGhhdCA9IHRoaXM7Ci0gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmVzb2x2ZSh0aGF0LmJ1ZmZlclVzYWdlXyk7Ci0gICAgICAgIH0sIDEwMCk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgb25EYXRhQ29sbGVjdGVkXzogZnVuY3Rpb24obWVzc2FnZVN0cmluZykgewotICAgICAgYXBwZW5kVHJhY2VDaHVua3NUbyh0aGlzLmN1cnJlbnRUcmFjZVRleHRDaHVua3NfLCBtZXNzYWdlU3RyaW5nKTsKLSAgICB9LAotCi0gICAgZW5kUmVjb3JkaW5nOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnJlY29yZGluZ18gPT09IGZhbHNlKQotICAgICAgICByZXR1cm4gY3JlYXRlUmVzb2x2ZWRQcm9taXNlKCk7Ci0KLSAgICAgIGlmICh0aGlzLnJlY29yZGluZ18gIT09IHRydWUpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVuZCcpOwotCi0gICAgICB0aGlzLmN1cnJlbnRUcmFjZVRleHRDaHVua3NfID0gWydbJ107Ci0gICAgICB0aGlzLmNvbm5fLnNldE5vdGlmaWNhdGlvbkxpc3RlbmVyKAotICAgICAgICAgICdUcmFjaW5nLmRhdGFDb2xsZWN0ZWQnLCB0aGlzLm9uRGF0YUNvbGxlY3RlZF8uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHZhciBjbGVhckxpc3RlbmVycyA9IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLmNvbm5fLnNldE5vdGlmaWNhdGlvbkxpc3RlbmVyKAotICAgICAgICAgICAgJ1RyYWNpbmcuYnVmZmVyVXNhZ2UnLCB1bmRlZmluZWQpOwotICAgICAgICB0aGlzLmNvbm5fLnNldE5vdGlmaWNhdGlvbkxpc3RlbmVyKAotICAgICAgICAgICAgJ1RyYWNpbmcudHJhY2luZ0NvbXBsZXRlJywgdW5kZWZpbmVkKTsKLSAgICAgICAgdGhpcy5jb25uXy5zZXROb3RpZmljYXRpb25MaXN0ZW5lcigKLSAgICAgICAgICAgICdUcmFjaW5nLmRhdGFDb2xsZWN0ZWQnLCB1bmRlZmluZWQpOwotICAgICAgfS5iaW5kKHRoaXMpOwotCi0gICAgICB0aGlzLnJlY29yZGluZ18gPSAnc3RvcHBpbmcnOwotICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICBmdW5jdGlvbiB0cmFjaW5nQ29tcGxldGUoKSB7Ci0gICAgICAgICAgY2xlYXJMaXN0ZW5lcnMoKTsKLSAgICAgICAgICB0aGlzLnJlY29yZGluZ18gPSBmYWxzZTsKLSAgICAgICAgICB0aGlzLmN1cnJlbnRUcmFjZVRleHRDaHVua3NfLnB1c2goJ10nKTsKLSAgICAgICAgICB2YXIgdHJhY2VUZXh0ID0gdGhpcy5jdXJyZW50VHJhY2VUZXh0Q2h1bmtzXy5qb2luKCcnKTsKLSAgICAgICAgICB0aGlzLmN1cnJlbnRUcmFjZVRleHRDaHVua3NfID0gdW5kZWZpbmVkOwotICAgICAgICAgIHJlc29sdmUodHJhY2VUZXh0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHRyYWNpbmdGYWlsZWQoZXJyKSB7Ci0gICAgICAgICAgY2xlYXJMaXN0ZW5lcnMoKTsKLSAgICAgICAgICB0aGlzLnJlY29yZGluZ18gPSBmYWxzZTsKLSAgICAgICAgICByZWplY3QoZXJyKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuY29ubl8uc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXIoCi0gICAgICAgICAgICAnVHJhY2luZy50cmFjaW5nQ29tcGxldGUnLCB0cmFjaW5nQ29tcGxldGUuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuY29ubl8ucmVxKCdUcmFjaW5nLmVuZCcsIHt9KS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gZW5kKCkgewotICAgICAgICAgICAgICAvLyBOb3RoaW5nIGhhcHBlbnMgaGVyZS4gV2UncmUgcmVhbGx5IHdhaXRpbmcgZm9yCi0gICAgICAgICAgICAgIC8vIFRyYWNpbmcudHJhY2luZ0NvbXBsZXRlLgotICAgICAgICAgICAgfS5iaW5kKHRoaXMpLAotICAgICAgICAgICAgdHJhY2luZ0ZhaWxlZC5iaW5kKHRoaXMpKTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgSW5zcGVjdG9yVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQ6IEluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50LAotICAgIGFwcGVuZFRyYWNlQ2h1bmtzVG86IGFwcGVuZFRyYWNlQ2h1bmtzVG8KLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnRfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjVjY2U4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnRfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICB0ZXN0KCdiZWdpblJlY29yZGluZ19zZW5kQ2F0ZWdvcmllc0FuZE9wdGlvbnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5lLmFib3V0X3RyYWNpbmcuSW5zcGVjdG9yVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKTsKLSAgICBjb250cm9sbGVyLmNvbm5fID0gbmV3IChmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmVxID0gZnVuY3Rpb24obWV0aG9kLCBwYXJhbXMpIHsKLSAgICAgICAgdmFyIG1zZyA9IEpTT04uc3RyaW5naWZ5KHsKLSAgICAgICAgICBpZDogMSwKLSAgICAgICAgICBtZXRob2Q6IG1ldGhvZCwKLSAgICAgICAgICBwYXJhbXM6IHBhcmFtcwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIG5ldyAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdGhpcy5tc2cgPSBtc2c7Ci0gICAgICAgICAgdGhpcy50aGVuID0gZnVuY3Rpb24obTEsIG0yKSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAgICAgICB9OwotICAgICAgICB9KSgpOwotICAgICAgfTsKLSAgICAgIHRoaXMuc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXIgPSBmdW5jdGlvbihtZXRob2QsIGxpc3RlbmVyKSB7Ci0gICAgICB9OwotICAgIH0pKCk7Ci0KLSAgICB2YXIgcmVjb3JkaW5nT3B0aW9ucyA9IHsKLSAgICAgIGNhdGVnb3J5RmlsdGVyOiBKU09OLnN0cmluZ2lmeShbJ2EnLCAnYicsICdjJ10pLAotICAgICAgdXNlU3lzdGVtVHJhY2luZzogZmFsc2UsCi0gICAgICB0cmFjaW5nUmVjb3JkTW9kZTogJ3Rlc3QtbW9kZScsCi0gICAgICB1c2VTYW1wbGluZzogdHJ1ZQotICAgIH07Ci0KLSAgICB2YXIgcmVzdWx0ID0gSlNPTi5wYXJzZShjb250cm9sbGVyLmJlZ2luUmVjb3JkaW5nKHJlY29yZGluZ09wdGlvbnMpLm1zZyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5wYXJhbXMuY2F0ZWdvcmllcywgSlNPTi5zdHJpbmdpZnkoWydhJywgJ2InLCAnYyddKSk7Ci0gICAgdmFyIG9wdGlvbnMgPSByZXN1bHQucGFyYW1zLm9wdGlvbnMuc3BsaXQoJywnKTsKLSAgICB2YXIgdHJhY2luZ1JlY29yZFRlc3RNb2RlID0gZmFsc2U7Ci0gICAgdmFyIHNhbXBsZUZsYWcgPSBmYWxzZTsKLSAgICBmb3IgKHZhciBzIGluIG9wdGlvbnMpIHsKLSAgICAgIGlmIChvcHRpb25zW3NdID09PSAndGVzdC1tb2RlJykgdHJhY2luZ1JlY29yZFRlc3RNb2RlID0gdHJ1ZTsKLSAgICAgIGVsc2UgaWYgKG9wdGlvbnNbc10gPT09ICdlbmFibGUtc2FtcGxpbmcnKSBzYW1wbGVGbGFnID0gdHJ1ZTsKLSAgICAgIGVsc2UgYXNzZXJ0LmVxdWFsKG9wdGlvbnNbc10sICcnKTsKLSAgICB9Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0cmFjaW5nUmVjb3JkVGVzdE1vZGUpOwotICAgIGFzc2VydC5pc1RydWUoc2FtcGxlRmxhZyk7Ci0gIH0pOwotCi0gIHRlc3QoJ29sZEZvcm1hdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjaHVua3MgPSBbXTsKLSAgICB0ci5lLmFib3V0X3RyYWNpbmcuYXBwZW5kVHJhY2VDaHVua3NUbyhjaHVua3MsICcieyAibWV0aG9kIjogIlRyYWNpbmcuZGF0YUNvbGxlY3RlZCIsICJwYXJhbXMiOiB7ICJ2YWx1ZSI6IFsgeyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjowLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6Im51bV9jcHVzIiwiYXJncyI6eyJudW1iZXIiOjR9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InByb2Nlc3Nfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTV9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InByb2Nlc3NfbmFtZSIsImFyZ3MiOnsibmFtZSI6IlJlbmRlcmVyIn19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTEsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoicHJvY2Vzc19sYWJlbHMiLCJhcmdzIjp7ImxhYmVscyI6IkpTIEJpbiJ9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTA4LCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InRocmVhZF9zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotMX19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTcsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDb21wb3NpdG9yIn19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTEsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDaHJvbWVfQ2hpbGRJT1RocmVhZCJ9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTE5LCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ29tcG9zaXRvclJhc3RlcldvcmtlcjEvMjg5MTkifX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkwOCwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNyUmVuZGVyZXJNYWluIn19LHsiY2F0IjoiaXBjLHRvcGxldmVsIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjIyMDAwMDg0NzQ2LCJwaCI6IlgiLCJuYW1lIjoiQ2hhbm5lbFJlYWRlcjo6RGlzcGF0Y2hJbnB1dERhdGEiLCJhcmdzIjp7ImNsYXNzIjo2NCwibGluZSI6MjV9LCJ0ZHVyIjowLCJ0dHMiOjE4NTMwNjR9LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTEsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoib3ZlcmhlYWQiLCJhcmdzIjp7ImF2ZXJhZ2Vfb3ZlcmhlYWQiOjAuMDE1fX0gXSB9IH0iJyk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgYXNzZXJ0LmVxdWFsKGNodW5rcy5sZW5ndGgsIDEpOwotICAgIEpTT04ucGFyc2UoJ1snICsgY2h1bmtzLmpvaW4oJycpICsgJ10nKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbmV3Rm9ybWF0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNodW5rcyA9IFtdOwotICAgIHRyLmUuYWJvdXRfdHJhY2luZy5hcHBlbmRUcmFjZUNodW5rc1RvKGNodW5rcywgJyJ7ICJtZXRob2QiOiAiVHJhY2luZy5kYXRhQ29sbGVjdGVkIiwgInBhcmFtcyI6IHsgInZhbHVlIjogW3siY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6MCwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0fX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJwcm9jZXNzX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJSZW5kZXJlciJ9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InByb2Nlc3NfbGFiZWxzIiwiYXJncyI6eyJsYWJlbHMiOiJKUyBCaW4ifX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkwOCwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJ0aHJlYWRfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTF9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTE3LCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ29tcG9zaXRvciJ9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ2hyb21lX0NoaWxkSU9UaHJlYWQifX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxOSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNvbXBvc2l0b3JSYXN0ZXJXb3JrZXIxLzI4OTE5In19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MDgsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDclJlbmRlcmVyTWFpbiJ9fSx7ImNhdCI6ImlwYyx0b3BsZXZlbCIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTEsInRzIjoyMjAwMDA4NDc0NiwicGgiOiJYIiwibmFtZSI6IkNoYW5uZWxSZWFkZXI6OkRpc3BhdGNoSW5wdXREYXRhIiwiYXJncyI6eyJjbGFzcyI6NjQsImxpbmUiOjI1fSwidGR1ciI6MCwidHRzIjoxODUzMDY0fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6Im92ZXJoZWFkIiwiYXJncyI6eyJhdmVyYWdlX292ZXJoZWFkIjowLjAxNX19XSB9IH0iJyk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgYXNzZXJ0LmVxdWFsKGNodW5rcy5sZW5ndGgsIDEpOwotICAgIEpTT04ucGFyc2UoJ1snICsgY2h1bmtzLmpvaW4oJycpICsgJ10nKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3RyaW5nQW5kT2JqZWN0UGF5bG9hZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb25uZWN0aW9uID0gbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5JbnNwZWN0b3JDb25uZWN0aW9uKCk7Ci0gICAgY29ubmVjdGlvbi5zZXROb3RpZmljYXRpb25MaXN0ZW5lcignVHJhY2luZy5kYXRhQ29sbGVjdGVkJywKLSAgICAgICAgZnVuY3Rpb24obWVzc2FnZSkgewotICAgICAgICAgIGFzc2VydC50eXBlT2YobWVzc2FnZSwgJ3N0cmluZycpOwotICAgICAgICAgIEpTT04ucGFyc2UobWVzc2FnZSk7Ci0gICAgICAgIH0KLSAgICApOwotICAgIGNvbm5lY3Rpb24uZGlzcGF0Y2hNZXNzYWdlXygneyAibWV0aG9kIjogIlRyYWNpbmcuZGF0YUNvbGxlY3RlZCIsICJwYXJhbXMiOiB7ICJ2YWx1ZSI6IFtdIH0gfScpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIGNvbm5lY3Rpb24uZGlzcGF0Y2hNZXNzYWdlXyh7J21ldGhvZCc6ICdUcmFjaW5nLmRhdGFDb2xsZWN0ZWQnLCAncGFyYW1zJzogeyd2YWx1ZSc6IFtdIH0gfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvbW9ja190cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL21vY2tfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzU0ZjUwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvbW9ja190cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuYWJvdXRfdHJhY2luZycsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBNb2NrVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKSB7Ci0gICAgdGhpcy5yZXF1ZXN0cyA9IFtdOwotICAgIHRoaXMubmV4dFJlcXVlc3RJbmRleCA9IDA7Ci0gICAgdGhpcy5hbGxvd0xvb3BpbmcgPSBmYWxzZTsKLSAgfQotCi0gIE1vY2tUcmFjaW5nQ29udHJvbGxlckNsaWVudC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5lLmFib3V0X3RyYWNpbmcuVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQucHJvdG90eXBlLAotCi0gICAgZXhwZWN0UmVxdWVzdDogZnVuY3Rpb24obWV0aG9kLCBnZW5lcmF0ZVJlc3BvbnNlKSB7Ci0gICAgICB2YXIgZ2VuZXJhdGVSZXNwb25zZUNiOwotICAgICAgaWYgKHR5cGVvZiBnZW5lcmF0ZVJlc3BvbnNlID09PSAnZnVuY3Rpb24nKSB7Ci0gICAgICAgIGdlbmVyYXRlUmVzcG9uc2VDYiA9IGdlbmVyYXRlUmVzcG9uc2U7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBnZW5lcmF0ZVJlc3BvbnNlQ2IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVSZXNwb25zZTsKLSAgICAgICAgfTsKLSAgICAgIH0KLQotICAgICAgdGhpcy5yZXF1ZXN0cy5wdXNoKHsKLSAgICAgICAgbWV0aG9kOiBtZXRob2QsCi0gICAgICAgIGdlbmVyYXRlUmVzcG9uc2VDYjogZ2VuZXJhdGVSZXNwb25zZUNifSk7Ci0gICAgfSwKLQotICAgIF9yZXF1ZXN0OiBmdW5jdGlvbihtZXRob2QsIGFyZ3MpIHsKLSAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgIHZhciByZXF1ZXN0SW5kZXggPSB0aGlzLm5leHRSZXF1ZXN0SW5kZXg7Ci0gICAgICAgIGlmIChyZXF1ZXN0SW5kZXggPj0gdGhpcy5yZXF1ZXN0cy5sZW5ndGgpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmhhbmRsZWQgcmVxdWVzdCcpOwotICAgICAgICBpZiAoIXRoaXMuYWxsb3dMb29waW5nKSB7Ci0gICAgICAgICAgdGhpcy5uZXh0UmVxdWVzdEluZGV4Kys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhpcy5uZXh0UmVxdWVzdEluZGV4ID0gKHRoaXMubmV4dFJlcXVlc3RJbmRleCArIDEpICUKLSAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0cy5sZW5ndGg7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcmVxID0gdGhpcy5yZXF1ZXN0c1tyZXF1ZXN0SW5kZXhdOwotICAgICAgICBhc3NlcnQuZXF1YWwobWV0aG9kLCByZXEubWV0aG9kKTsKLSAgICAgICAgdmFyIHJlc3AgPSByZXEuZ2VuZXJhdGVSZXNwb25zZUNiKGFyZ3MpOwotICAgICAgICByZXNvbHZlKHJlc3ApOwotICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgYXNzZXJ0QWxsUmVxdWVzdHNIYW5kbGVkOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmFsbG93TG9vcGluZykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvbXBhdGlibGUgd2l0aCBhbGxvd0xvb3BpbmcnKTsKLSAgICAgIGFzc2VydC5lcXVhbCh0aGlzLnJlcXVlc3RzLmxlbmd0aCwgdGhpcy5uZXh0UmVxdWVzdEluZGV4KTsKLSAgICB9LAotCi0gICAgYmVnaW5Nb25pdG9yaW5nOiBmdW5jdGlvbihtb25pdG9yaW5nT3B0aW9ucykgewotICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ2JlZ2luTW9uaXRvcmluZycsIG1vbml0b3JpbmdPcHRpb25zKTsKLSAgICB9LAotCi0gICAgZW5kTW9uaXRvcmluZzogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnZW5kTW9uaXRvcmluZycpOwotICAgIH0sCi0KLSAgICBjYXB0dXJlTW9uaXRvcmluZzogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnY2FwdHVyZU1vbml0b3JpbmcnKTsKLSAgICB9LAotCi0gICAgZ2V0TW9uaXRvcmluZ1N0YXR1czogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnZ2V0TW9uaXRvcmluZ1N0YXR1cycpOwotICAgIH0sCi0KLSAgICBnZXRDYXRlZ29yaWVzOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdnZXRDYXRlZ29yaWVzJyk7Ci0gICAgfSwKLQotICAgIGJlZ2luUmVjb3JkaW5nOiBmdW5jdGlvbihyZWNvcmRpbmdPcHRpb25zKSB7Ci0gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnYmVnaW5SZWNvcmRpbmcnLCByZWNvcmRpbmdPcHRpb25zKTsKLSAgICB9LAotCi0gICAgYmVnaW5HZXRCdWZmZXJQZXJjZW50RnVsbDogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnYmVnaW5HZXRCdWZmZXJQZXJjZW50RnVsbCcpOwotICAgIH0sCi0KLSAgICBlbmRSZWNvcmRpbmc6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ2VuZFJlY29yZGluZycpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIE1vY2tUcmFjaW5nQ29udHJvbGxlckNsaWVudDogTW9ja1RyYWNpbmdDb250cm9sbGVyQ2xpZW50Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4NTZmY2MuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9wcm9maWxpbmdfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTk2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9hbmRfY2FwdHVyZV9jb250cm9sbGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Fib3V0X3RyYWNpbmcveGhyX2Jhc2VkX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uva2V5X2V2ZW50X21hbmFnZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvaW5mb19iYXJfZ3JvdXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvb3ZlcmxheS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdHJhY2Vfdmlld2VyLmh0bWwiPgotCi08c3R5bGU+Ci14LXByb2ZpbGluZy12aWV3IHsKLSAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gIHBhZGRpbmc6IDA7Ci19Ci0KLXgtcHJvZmlsaW5nLXZpZXcgLmNvbnRyb2xzICNzYXZlLWJ1dHRvbiB7Ci0gIG1hcmdpbi1sZWZ0OiA2NHB4ICFpbXBvcnRhbnQ7Ci19Ci0KLXgtcHJvZmlsaW5nLXZpZXcgLmNvbnRyb2xzICN1cGxvYWQtYnV0dG9uIHsKLSAgZGlzcGxheTogbm9uZTsKLX0KLQoteC1wcm9maWxpbmctdmlldyA+IHgtdGltZWxpbmUtdmlldyB7Ci0gIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gIG1pbi1oZWlnaHQ6IDA7Ci19Ci0KLS5yZXBvcnQtaWQtbWVzc2FnZSB7Ci0gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Ci19Ci0KLXgtdGltZWxpbmUtdmlldy1idXR0b25zLAoteC10aW1lbGluZS12aWV3LWJ1dHRvbnMgPiAjbW9uaXRvcmluZy1lbGVtZW50cyB7Ci0gIGRpc3BsYXk6IGZsZXg7Ci0gIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci19Ci08L3N0eWxlPgotCi08dGVtcGxhdGUgaWQ9InByb2ZpbGluZy12aWV3LXRlbXBsYXRlIj4KLSAgPHRyLWItdWktaW5mby1iYXItZ3JvdXA+PC90ci1iLXVpLWluZm8tYmFyLWdyb3VwPgotICA8eC10aW1lbGluZS12aWV3PgotICAgIDx4LXRpbWVsaW5lLXZpZXctYnV0dG9ucz4KLSAgICAgIDxidXR0b24gaWQ9InJlY29yZC1idXR0b24iPlJlY29yZDwvYnV0dG9uPgotICAgICAgPHNwYW4gaWQ9Im1vbml0b3JpbmctZWxlbWVudHMiPgotICAgICAgICA8aW5wdXQgaWQ9Im1vbml0b3ItY2hlY2tib3giIHR5cGU9ImNoZWNrYm94Ij4KLSAgICAgICAgPGxhYmVsIGZvcj0ibW9uaXRvci1jaGVja2JveCI+TW9uaXRvcmluZzwvbGFiZWw+PC9pbnB1dD4KLSAgICAgICAgPGJ1dHRvbiBpZD0iY2FwdHVyZS1idXR0b24iPkNhcHR1cmUgTW9uaXRvcmluZyBTbmFwc2hvdDwvYnV0dG9uPgotICAgICAgPC9zcGFuPgotICAgICAgPGJ1dHRvbiBpZD0ic2F2ZS1idXR0b24iPlNhdmU8L2J1dHRvbj4KLSAgICAgIDxidXR0b24gaWQ9InVwbG9hZC1idXR0b24iPlVwbG9hZDwvYnV0dG9uPgotICAgICAgPGJ1dHRvbiBpZD0ibG9hZC1idXR0b24iPkxvYWQ8L2J1dHRvbj4KLSAgICA8L3gtdGltZWxpbmUtdmlldy1idXR0b25zPgotICA8L3gtdGltZWxpbmUtdmlldz4KLTwvdGVtcGxhdGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm9maWxpbmdWaWV3IGdsdWVzIHRoZSBWaWV3IGNvbnRyb2wgdG8KLSAqIFRyYWNpbmdDb250cm9sbGVyLgotICovCi10ci5leHBvcnRUbygndHIuZS5hYm91dF90cmFjaW5nJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIHJlYWRGaWxlKGZpbGUpIHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKLSAgICAgIHZhciBmaWxlbmFtZSA9IGZpbGUubmFtZTsKLSAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIHJlc29sdmUoZGF0YS50YXJnZXQucmVzdWx0KTsKLSAgICAgIH07Ci0gICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycikgewotICAgICAgICByZWplY3QoZXJyKTsKLSAgICAgIH0KLQotICAgICAgdmFyIGlzX2JpbmFyeSA9IC9bLl1neiQvLnRlc3QoZmlsZW5hbWUpIHx8IC9bLl16aXAkLy50ZXN0KGZpbGVuYW1lKTsKLSAgICAgIGlmIChpc19iaW5hcnkpCi0gICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTsKLSAgICAgIGVsc2UKLSAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7Ci0gICAgfSk7Ci0gIH0KLQotICAvKioKLSAgICogUHJvZmlsaW5nVmlldwotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge0hUTUxVbmtub3duRWxlbWVudH0KLSAgICovCi0gIHZhciBQcm9maWxpbmdWaWV3ID0gdHIuYi51aS5kZWZpbmUoJ3gtcHJvZmlsaW5nLXZpZXcnKTsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotICB2YXIgUkVQT1JUX1VQTE9BRF9VUkwgPSAnaHR0cDovL2NyYXNoLXN0YWdpbmcvJzsKLQotICBQcm9maWxpbmdWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24odHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjcHJvZmlsaW5nLXZpZXctdGVtcGxhdGUnLAotICAgICAgICAgIFRISVNfRE9DKSk7Ci0KLSAgICAgIHRoaXMudGltZWxpbmVWaWV3XyA9IHRoaXMucXVlcnlTZWxlY3RvcigneC10aW1lbGluZS12aWV3Jyk7Ci0gICAgICB0ci5iLnVpLmRlY29yYXRlKHRoaXMudGltZWxpbmVWaWV3XywgdHIuYy5UaW1lbGluZVZpZXcpOwotCi0gICAgICB0aGlzLmluZm9CYXJHcm91cF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3RyLWItdWktaW5mby1iYXItZ3JvdXAnKTsKLQotICAgICAgLy8gRGV0YWNoIHRoZSBidXR0b25zLiBXZSB3aWxsIHJlYXR0YWNoIHRoZW0gdG8gdGhlIHRpbWVsaW5lIHZpZXcuCi0gICAgICAvLyBUT0RPKG5kdWNhKTogTWFrZSB0aW1lbGluZS12aWV3IGhhdmUgYSBjb250ZW50IHNlbGVjdD0ieC1idXR0b25zIgotICAgICAgLy8gdGhhdCBwdWxscyBpbiBhbnkgYnV0dG9ucy4KLSAgICAgIHZhciBidXR0b25zID0gdGhpcy5xdWVyeVNlbGVjdG9yKCd4LXRpbWVsaW5lLXZpZXctYnV0dG9ucycpOwotICAgICAgYnV0dG9ucy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGJ1dHRvbnMpOwotICAgICAgdGhpcy50aW1lbGluZVZpZXdfLmxlZnRDb250cm9scy5hcHBlbmRDaGlsZChidXR0b25zKTsKLSAgICAgIHRoaXMuaW5pdEJ1dHRvbnNfKGJ1dHRvbnMpOwotCi0gICAgICB0ci5iLktleUV2ZW50TWFuYWdlci5pbnN0YW5jZS5hZGRMaXN0ZW5lcigKLSAgICAgICAgICAna2V5cHJlc3MnLCB0aGlzLm9uS2V5cHJlc3NfLCB0aGlzKTsKLQotICAgICAgdGhpcy5pbml0RHJhZ0FuZERyb3BfKCk7Ci0KLSAgICAgIGlmICh0cmFjaW5nQ29udHJvbGxlckNsaWVudCkgewotICAgICAgICB0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50XyA9IHRyYWNpbmdDb250cm9sbGVyQ2xpZW50OwotICAgICAgfSBlbHNlIGlmICh3aW5kb3cuRGV2VG9vbHNIb3N0ICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy50cmFjaW5nQ29udHJvbGxlckNsaWVudF8gPQotICAgICAgICAgICAgbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5JbnNwZWN0b3JUcmFjaW5nQ29udHJvbGxlckNsaWVudCgpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy50cmFjaW5nQ29udHJvbGxlckNsaWVudF8gPQotICAgICAgICAgICAgbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5YaHJCYXNlZFRyYWNpbmdDb250cm9sbGVyQ2xpZW50KCk7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuaXNSZWNvcmRpbmdfID0gZmFsc2U7Ci0gICAgICB0aGlzLmlzTW9uaXRvcmluZ18gPSBmYWxzZTsKLSAgICAgIHRoaXMuYWN0aXZlVHJhY2VfID0gdW5kZWZpbmVkOwotCi0gICAgICB3aW5kb3cub25Nb25pdG9yaW5nU3RhdGVDaGFuZ2VkID0gZnVuY3Rpb24oaXNfbW9uaXRvcmluZykgewotICAgICAgICB0aGlzLm9uTW9uaXRvcmluZ1N0YXRlQ2hhbmdlZF8oaXNfbW9uaXRvcmluZyk7Ci0gICAgICB9LmJpbmQodGhpcyk7Ci0KLSAgICAgIHdpbmRvdy5vblVwbG9hZEVycm9yID0gZnVuY3Rpb24oZXJyb3JfbWVzc2FnZSkgewotICAgICAgICB0aGlzLnNldFVwbG9hZE92ZXJsYXlUZXh0XyhbJ1RyYWNlIHVwbG9hZCBmYWlsZWQ6ICcgKyBlcnJvcl9tZXNzYWdlXSk7Ci0gICAgICB9LmJpbmQodGhpcyk7Ci0gICAgICB3aW5kb3cub25VcGxvYWRQcm9ncmVzcyA9IGZ1bmN0aW9uKHBlcmNlbnQsIGN1cnJlbnRBc1N0cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxBc1N0cmluZykgewotICAgICAgICB0aGlzLnNldFVwbG9hZE92ZXJsYXlUZXh0XygKLSAgICAgICAgICAgIFsnVXBsb2FkIHByb2dyZXNzOiAnICsgcGVyY2VudCArICclICgnICsgY3VycmVudEFzU3RyaW5nICsgJyBvZiAnICsKLSAgICAgICAgICAgIGN1cnJlbnRBc1N0cmluZyArICcgYnl0ZXMpJ10pOwotICAgICAgfS5iaW5kKHRoaXMpOwotICAgICAgd2luZG93Lm9uVXBsb2FkQ29tcGxldGUgPSBmdW5jdGlvbihyZXBvcnRJZCkgewotICAgICAgICB2YXIgbWVzc2FnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKLSAgICAgICAgICAgICdUcmFjZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkuIFJlcG9ydCBpZDogJyk7Ci0gICAgICAgIG1lc3NhZ2VEaXYuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgICB2YXIgcmVwb3J0TGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKLSAgICAgICAgbWVzc2FnZURpdi5hcHBlbmRDaGlsZChyZXBvcnRMaW5rKTsKLSAgICAgICAgcmVwb3J0TGluay5ocmVmID0gUkVQT1JUX1VQTE9BRF9VUkwgKyByZXBvcnRJZDsKLSAgICAgICAgcmVwb3J0TGluay50ZXh0ID0gcmVwb3J0SWQ7Ci0gICAgICAgIHJlcG9ydExpbmsuY2xhc3NOYW1lID0gJ3JlcG9ydC1pZC1tZXNzYWdlJzsKLSAgICAgICAgcmVwb3J0TGluay50YXJnZXQgPSAnX2JsYW5rJzsKLSAgICAgICAgdGhpcy5zZXRVcGxvYWRPdmVybGF5Q29udGVudF8obWVzc2FnZURpdik7Ci0gICAgICB9LmJpbmQodGhpcyk7Ci0KLSAgICAgIHRoaXMuZ2V0TW9uaXRvcmluZ1N0YXR1cygpOwotICAgICAgdGhpcy51cGRhdGVUcmFjaW5nQ29udHJvbGxlclNwZWNpZmljU3RhdGVfKCk7Ci0gICAgfSwKLQotICAgIC8vIERldGFjaCBhbGwgZG9jdW1lbnQgZXZlbnQgbGlzdGVuZXJzLiBXaXRob3V0IHRoaXMgdGhlIHRlc3RzIGNhbiBnZXQKLSAgICAvLyBjb25mdXNlZCBhcyB0aGUgZWxlbWVudCBtYXkgc3RpbGwgYmUgbGlzdGVuaW5nIHdoZW4gdGhlIG5leHQgdGVzdCBydW5zLgotICAgIGRldGFjaF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5kZXRhY2hEcmFnQW5kRHJvcF8oKTsKLSAgICB9LAotCi0gICAgZ2V0IGlzUmVjb3JkaW5nKCkgewotICAgICAgcmV0dXJuIHRoaXMuaXNSZWNvcmRpbmdfOwotICAgIH0sCi0KLSAgICBnZXQgaXNNb25pdG9yaW5nKCkgewotICAgICAgcmV0dXJuIHRoaXMuaXNNb25pdG9yaW5nXzsKLSAgICB9LAotCi0gICAgc2V0IHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KSB7Ci0gICAgICB0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50XyA9IHRyYWNpbmdDb250cm9sbGVyQ2xpZW50OwotICAgICAgdGhpcy51cGRhdGVUcmFjaW5nQ29udHJvbGxlclNwZWNpZmljU3RhdGVfKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZVRyYWNpbmdDb250cm9sbGVyU3BlY2lmaWNTdGF0ZV86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGlzSW5zcGVjdG9yID0gdGhpcy50cmFjaW5nQ29udHJvbGxlckNsaWVudF8gaW5zdGFuY2VvZgotICAgICAgICAgIHRyLmUuYWJvdXRfdHJhY2luZy5JbnNwZWN0b3JUcmFjaW5nQ29udHJvbGxlckNsaWVudDsKLQotICAgICAgaWYgKGlzSW5zcGVjdG9yKSB7Ci0gICAgICAgIHRoaXMuaW5mb0Jhckdyb3VwXy5hZGRNZXNzYWdlKAotICAgICAgICAgICAgJ1RoaXMgYWJvdXQ6dHJhY2luZyBpcyBjb25uZWN0ZWQgdG8gYSByZW1vdGUgZGV2aWNlLi4uJywKLSAgICAgICAgICAgIFt7YnV0dG9uVGV4dDogJ1dvdyEnLCBvbkNsaWNrOiBmdW5jdGlvbigpIHt9fV0pOwotICAgICAgfQotCi0gICAgICB2YXIgbW9uaXRvcmluZ0VsZW1lbnRzRWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yaW5nLWVsZW1lbnRzJyk7Ci0gICAgICBpZiAoaXNJbnNwZWN0b3IpCi0gICAgICAgIG1vbml0b3JpbmdFbGVtZW50c0VsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICBlbHNlCi0gICAgICAgIG1vbml0b3JpbmdFbGVtZW50c0VsLnN0eWxlLmRpc3BsYXkgPSAnJzsKLSAgICB9LAotCi0gICAgYmVnaW5SZWNvcmRpbmc6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmdfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgcmVjb3JkaW5nJyk7Ci0gICAgICBpZiAodGhpcy5pc01vbml0b3JpbmdfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgbW9uaXRvcmluZycpOwotICAgICAgdGhpcy5pc1JlY29yZGluZ18gPSB0cnVlOwotICAgICAgdmFyIGJ1dHRvbnMgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3gtdGltZWxpbmUtdmlldy1idXR0b25zJyk7Ci0gICAgICBidXR0b25zLnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yLWNoZWNrYm94JykuZGlzYWJsZWQgPSB0cnVlOwotICAgICAgYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjbW9uaXRvci1jaGVja2JveCcpLmNoZWNrZWQgPSBmYWxzZTsKLSAgICAgIHZhciByZXN1bHRQcm9taXNlID0gdHIuZS5hYm91dF90cmFjaW5nLmJlZ2luUmVjb3JkaW5nKAotICAgICAgICAgIHRoaXMudHJhY2luZ0NvbnRyb2xsZXJDbGllbnRfKTsKLSAgICAgIHJlc3VsdFByb21pc2UudGhlbigKLSAgICAgICAgICBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nXyA9IGZhbHNlOwotICAgICAgICAgICAgYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjbW9uaXRvci1jaGVja2JveCcpLmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZVRyYWNlKCd0cmFjZS5qc29uJywgZGF0YSwgZmFsc2UpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSwKLSAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgICAgIHRoaXMuaXNSZWNvcmRpbmdfID0gZmFsc2U7Ci0gICAgICAgICAgICBidXR0b25zLnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yLWNoZWNrYm94JykuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiB0ci5lLmFib3V0X3RyYWNpbmcuVXNlckNhbmNlbGxlZEVycm9yKQotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB0ci5iLnVpLk92ZXJsYXkuc2hvd0Vycm9yKCdFcnJvciB3aGlsZSByZWNvcmRpbmcnLCBlcnIpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICByZXR1cm4gcmVzdWx0UHJvbWlzZTsKLSAgICB9LAotCi0gICAgYmVnaW5Nb25pdG9yaW5nOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmlzUmVjb3JkaW5nXykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHJlY29yZGluZycpOwotICAgICAgaWYgKHRoaXMuaXNNb25pdG9yaW5nXykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IG1vbml0b3JpbmcnKTsKLSAgICAgIHZhciBidXR0b25zID0gdGhpcy5xdWVyeVNlbGVjdG9yKCd4LXRpbWVsaW5lLXZpZXctYnV0dG9ucycpOwotICAgICAgdmFyIHJlc3VsdFByb21pc2UgPQotICAgICAgICAgIHRyLmUuYWJvdXRfdHJhY2luZy5iZWdpbk1vbml0b3JpbmcodGhpcy50cmFjaW5nQ29udHJvbGxlckNsaWVudF8pOwotICAgICAgcmVzdWx0UHJvbWlzZS50aGVuKAotICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgIH0uYmluZCh0aGlzKSwKLSAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiB0ci5lLmFib3V0X3RyYWNpbmcuVXNlckNhbmNlbGxlZEVycm9yKQotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB0ci5iLnVpLk92ZXJsYXkuc2hvd0Vycm9yKCdFcnJvciB3aGlsZSBtb25pdG9yaW5nJywgZXJyKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgcmV0dXJuIHJlc3VsdFByb21pc2U7Ci0gICAgfSwKLQotICAgIGVuZE1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmdfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgcmVjb3JkaW5nJyk7Ci0gICAgICBpZiAoIXRoaXMuaXNNb25pdG9yaW5nXykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb25pdG9yaW5nIGlzIGRpc2FibGVkJyk7Ci0gICAgICB2YXIgYnV0dG9ucyA9IHRoaXMucXVlcnlTZWxlY3RvcigneC10aW1lbGluZS12aWV3LWJ1dHRvbnMnKTsKLSAgICAgIHZhciByZXN1bHRQcm9taXNlID0KLSAgICAgICAgICB0ci5lLmFib3V0X3RyYWNpbmcuZW5kTW9uaXRvcmluZyh0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50Xyk7Ci0gICAgICByZXN1bHRQcm9taXNlLnRoZW4oCi0gICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpLAotICAgICAgICAgIGZ1bmN0aW9uKGVycikgewotICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIHRyLmUuYWJvdXRfdHJhY2luZy5Vc2VyQ2FuY2VsbGVkRXJyb3IpCi0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHRyLmIudWkuT3ZlcmxheS5zaG93RXJyb3IoJ0Vycm9yIHdoaWxlIG1vbml0b3JpbmcnLCBlcnIpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICByZXR1cm4gcmVzdWx0UHJvbWlzZTsKLSAgICB9LAotCi0gICAgY2FwdHVyZU1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmlzTW9uaXRvcmluZ18pCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignTW9uaXRvcmluZyBpcyBkaXNhYmxlZCcpOwotICAgICAgdmFyIHJlc3VsdFByb21pc2UgPQotICAgICAgICAgIHRyLmUuYWJvdXRfdHJhY2luZy5jYXB0dXJlTW9uaXRvcmluZyh0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50Xyk7Ci0gICAgICByZXN1bHRQcm9taXNlLnRoZW4oCi0gICAgICAgICAgZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVUcmFjZSgndHJhY2UuanNvbicsIGRhdGEsIHRydWUpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSwKLSAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiB0ci5lLmFib3V0X3RyYWNpbmcuVXNlckNhbmNlbGxlZEVycm9yKQotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB0ci5iLnVpLk92ZXJsYXkuc2hvd0Vycm9yKCdFcnJvciB3aGlsZSBtb25pdG9yaW5nJywgZXJyKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgcmV0dXJuIHJlc3VsdFByb21pc2U7Ci0gICAgfSwKLQotICAgIGdldE1vbml0b3JpbmdTdGF0dXM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHJlc3VsdFByb21pc2UgPQotICAgICAgICAgIHRyLmUuYWJvdXRfdHJhY2luZy5nZXRNb25pdG9yaW5nU3RhdHVzKHRoaXMudHJhY2luZ0NvbnRyb2xsZXJDbGllbnRfKTsKLSAgICAgIHJlc3VsdFByb21pc2UudGhlbigKLSAgICAgICAgICBmdW5jdGlvbihzdGF0dXMpIHsKLSAgICAgICAgICAgIHRoaXMub25Nb25pdG9yaW5nU3RhdGVDaGFuZ2VkXyhzdGF0dXMuaXNNb25pdG9yaW5nKTsKLSAgICAgICAgICB9LmJpbmQodGhpcyksCi0gICAgICAgICAgZnVuY3Rpb24oZXJyKSB7Ci0gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgdHIuZS5hYm91dF90cmFjaW5nLlVzZXJDYW5jZWxsZWRFcnJvcikKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgdHIuYi51aS5PdmVybGF5LnNob3dFcnJvcignRXJyb3Igd2hpbGUgdXBkYXRpbmcgdHJhY2luZyBzdGF0ZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICByZXR1cm4gcmVzdWx0UHJvbWlzZTsKLSAgICB9LAotCi0gICAgb25Nb25pdG9yaW5nU3RhdGVDaGFuZ2VkXzogZnVuY3Rpb24oaXNfbW9uaXRvcmluZykgewotICAgICAgdGhpcy5pc01vbml0b3JpbmdfID0gaXNfbW9uaXRvcmluZzsKLSAgICAgIHZhciBidXR0b25zID0gdGhpcy5xdWVyeVNlbGVjdG9yKCd4LXRpbWVsaW5lLXZpZXctYnV0dG9ucycpOwotICAgICAgYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjcmVjb3JkLWJ1dHRvbicpLmRpc2FibGVkID0gaXNfbW9uaXRvcmluZzsKLSAgICAgIGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI2NhcHR1cmUtYnV0dG9uJykuZGlzYWJsZWQgPSAhaXNfbW9uaXRvcmluZzsKLSAgICAgIGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI21vbml0b3ItY2hlY2tib3gnKS5jaGVja2VkID0gaXNfbW9uaXRvcmluZzsKLSAgICB9LAotCi0gICAgb25LZXlwcmVzc186IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSA9PT0gJ0lOUFVUJykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBpZiAoIXRoaXMuaXNSZWNvcmRpbmcgJiYKLSAgICAgICAgICBldmVudC5rZXlDb2RlID09PSAncicuY2hhckNvZGVBdCgwKSkgewotICAgICAgICB0aGlzLmJlZ2luUmVjb3JkaW5nKCk7Ci0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0IHRpbWVsaW5lVmlldygpIHsKLSAgICAgIHJldHVybiB0aGlzLnRpbWVsaW5lVmlld187Ci0gICAgfSwKLQotICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0gICAgY2xlYXJBY3RpdmVUcmFjZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnNhdmVCdXR0b25fLmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgIHRoaXMudXBsb2FkQnV0dG9uXy5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICB0aGlzLmFjdGl2ZVRyYWNlXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgc2V0QWN0aXZlVHJhY2U6IGZ1bmN0aW9uKGZpbGVuYW1lLCBkYXRhKSB7Ci0gICAgICB0aGlzLmFjdGl2ZVRyYWNlXyA9IHsKLSAgICAgICAgZmlsZW5hbWU6IGZpbGVuYW1lLAotICAgICAgICBkYXRhOiBkYXRhCi0gICAgICB9OwotCi0gICAgICB0aGlzLmluZm9CYXJHcm91cF8uY2xlYXJNZXNzYWdlcygpOwotICAgICAgdGhpcy51cGRhdGVUcmFjaW5nQ29udHJvbGxlclNwZWNpZmljU3RhdGVfKCk7Ci0gICAgICB0aGlzLnNhdmVCdXR0b25fLmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICB0aGlzLnVwbG9hZEJ1dHRvbl8uZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgIHRoaXMudGltZWxpbmVWaWV3Xy52aWV3VGl0bGUgPSBmaWxlbmFtZTsKLQotICAgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICAgIHZhciBwID0gbS5pbXBvcnRUcmFjZXNXaXRoUHJvZ3Jlc3NEaWFsb2coW2RhdGFdLCB0cnVlKTsKLSAgICAgIHAudGhlbigKLSAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRoaXMudGltZWxpbmVWaWV3Xy5tb2RlbCA9IG07Ci0gICAgICAgICAgICB0aGlzLnRpbWVsaW5lVmlld18udXBkYXRlRG9jdW1lbnRGYXZpY29uKCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpLAotICAgICAgICAgIGZ1bmN0aW9uKGVycikgewotICAgICAgICAgICAgdHIuYi51aS5PdmVybGF5LnNob3dFcnJvcignV2hpbGUgaW1wb3J0aW5nOiAnLCBlcnIpOwotICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi0gICAgaW5pdEJ1dHRvbnNfOiBmdW5jdGlvbihidXR0b25zKSB7Ci0gICAgICBidXR0b25zLnF1ZXJ5U2VsZWN0b3IoJyNyZWNvcmQtYnV0dG9uJykuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnY2xpY2snLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICB0aGlzLmJlZ2luUmVjb3JkaW5nKCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjbW9uaXRvci1jaGVja2JveCcpLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICAgICAgaWYgKHRoaXMuaXNNb25pdG9yaW5nXykKLSAgICAgICAgICAgICAgdGhpcy5lbmRNb25pdG9yaW5nKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHRoaXMuYmVnaW5Nb25pdG9yaW5nKCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjY2FwdHVyZS1idXR0b24nKS5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgICAgIHRoaXMuY2FwdHVyZU1vbml0b3JpbmcoKTsKLSAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjY2FwdHVyZS1idXR0b24nKS5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgIGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI2xvYWQtYnV0dG9uJykuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnY2xpY2snLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICB0aGlzLm9uTG9hZENsaWNrZWRfKCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5zYXZlQnV0dG9uXyA9IGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI3NhdmUtYnV0dG9uJyk7Ci0gICAgICB0aGlzLnNhdmVCdXR0b25fLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2F2ZUNsaWNrZWRfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5zYXZlQnV0dG9uXy5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICAgIHRoaXMudXBsb2FkQnV0dG9uXyA9IGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI3VwbG9hZC1idXR0b24nKTsKLSAgICAgIHRoaXMudXBsb2FkQnV0dG9uXy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkQ2xpY2tlZF8uYmluZCh0aGlzKSk7Ci0gICAgICBpZiAodHlwZW9mKGNocm9tZS5zZW5kKSA9PT0gJ2Z1bmN0aW9uJykgewotICAgICAgICB0aGlzLnVwbG9hZEJ1dHRvbl8uc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snOwotICAgICAgfQotICAgICAgdGhpcy51cGxvYWRCdXR0b25fLmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8gPSBudWxsOwotICAgIH0sCi0KLSAgICByZXF1ZXN0RmlsZW5hbWVfOiBmdW5jdGlvbigpIHsKLQotICAgICAgLy8gdW5zYWZlIGZpbGVuYW1lIHBhdHRlcm5zOgotICAgICAgdmFyIGlsbGVnYWxSZSA9IC9bXC9cPzw+XFw6XCpcfCI6XS9nOwotICAgICAgdmFyIGNvbnRyb2xSZSA9IC9bXHgwMC1ceDFmXHg4MC1ceDlmXS9nOwotICAgICAgdmFyIHJlc2VydmVkUmUgPSAvXlwuKyQvOwotCi0gICAgICB2YXIgZmlsZW5hbWU7Ci0gICAgICB2YXIgZGVmYXVsdE5hbWUgPSB0aGlzLmFjdGl2ZVRyYWNlXy5maWxlbmFtZTsKLSAgICAgIHZhciBjdXN0b20gPSBwcm9tcHQoJ0ZpbGVuYW1lPyAoLmpzb24gYXBwZW5kZWQpIE9yIGxlYXZlIGJsYW5rOicpOwotICAgICAgaWYgKGN1c3RvbSA9PT0gbnVsbCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgICAgaWYgKGN1c3RvbSkgewotICAgICAgICBmaWxlbmFtZSA9IGRlZmF1bHROYW1lLnJlcGxhY2UoL1wuanNvbiQvLCAnICcgKyBjdXN0b20pICsgJy5qc29uJzsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTsKLSAgICAgICAgdmFyIGRhdGVUZXh0ID0gJyAnICsgZGF0ZS50b0RhdGVTdHJpbmcoKSArCi0gICAgICAgICAgICAgICAgICAgICAgICcgJyArIGRhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCk7Ci0gICAgICAgIGZpbGVuYW1lID0gZGVmYXVsdE5hbWUucmVwbGFjZSgvXC5qc29uJC8sIGRhdGVUZXh0ICsgJy5qc29uJyk7Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiBmaWxlbmFtZQotICAgICAgICAgICAgICAucmVwbGFjZShpbGxlZ2FsUmUsICcuJykKLSAgICAgICAgICAgICAgLnJlcGxhY2UoY29udHJvbFJlLCAnXHUyMDIyJykKLSAgICAgICAgICAgICAgLnJlcGxhY2UocmVzZXJ2ZWRSZSwgJycpCi0gICAgICAgICAgICAgIC5yZXBsYWNlKC9ccysvZywgJ18nKTsKLSAgICB9LAotCi0gICAgb25TYXZlQ2xpY2tlZF86IGZ1bmN0aW9uKCkgewotICAgICAgLy8gQ3JlYXRlIGEgYmxvYiBVUkwgZnJvbSB0aGUgYmluYXJ5IGFycmF5LgotICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbdGhpcy5hY3RpdmVUcmFjZV8uZGF0YV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAnYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5J30pOwotICAgICAgdmFyIGJsb2JVcmwgPSB3aW5kb3cud2Via2l0VVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKLQotICAgICAgLy8gQ3JlYXRlIGEgbGluayBhbmQgY2xpY2sgb24gaXQuIEJFU1QgQVBJIEVWQVIhCi0gICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdhJyk7Ci0gICAgICBsaW5rLmhyZWYgPSBibG9iVXJsOwotICAgICAgdmFyIGZpbGVuYW1lID0gdGhpcy5yZXF1ZXN0RmlsZW5hbWVfKCk7Ci0gICAgICBpZiAoZmlsZW5hbWUpIHsKLSAgICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVuYW1lOwotICAgICAgICBsaW5rLmNsaWNrKCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uVXBsb2FkQ2xpY2tlZF86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMudXBsb2FkT3ZlcmxheV8pIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVwbG9hZGluZycpOwotICAgICAgfQotICAgICAgdGhpcy5pbml0VXBsb2FkU3RhdHVzT3ZlcmxheV8oKTsKLSAgICB9LAotCi0gICAgaW5pdFVwbG9hZFN0YXR1c092ZXJsYXlfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8gPSB0ci5iLnVpLk92ZXJsYXkoKTsKLSAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8udGl0bGUgPSAnVXBsb2FkaW5nIHRyYWNlLi4uJzsKLSAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8udXNlckNhbkNsb3NlID0gZmFsc2U7Ci0gICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfLnZpc2libGUgPSB0cnVlOwotCi0gICAgICB0aGlzLnNldFVwbG9hZE92ZXJsYXlUZXh0XyhbCi0gICAgICAgICdZb3UgYXJlIGFib3V0IHRvIHVwbG9hZCB0cmFjZSBkYXRhIHRvIEdvb2dsZSBzZXJ2ZXIuJywKLSAgICAgICAgJ1dvdWxkIHlvdSBsaWtlIHRvIHByb2NlZWQ/JwotICAgICAgXSk7Ci0gICAgICB2YXIgb2tCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKLSAgICAgIG9rQnV0dG9uLnRleHRDb250ZW50ID0gJ09rJzsKLSAgICAgIG9rQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5kb1RyYWNlVXBsb2FkXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5hcHBlbmRDaGlsZChva0J1dHRvbik7Ci0KLSAgICAgIHZhciBjYW5jZWxCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKLSAgICAgIGNhbmNlbEJ1dHRvbi50ZXh0Q29udGVudCA9ICdDYW5jZWwnOwotICAgICAgY2FuY2VsQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVVwbG9hZE92ZXJsYXlfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy5idXR0b25zLmFwcGVuZENoaWxkKGNhbmNlbEJ1dHRvbik7Ci0gICAgfSwKLQotICAgIHNldFVwbG9hZE92ZXJsYXlDb250ZW50XzogZnVuY3Rpb24oY29udGVudCkgewotICAgICAgaWYgKCF0aGlzLnVwbG9hZE92ZXJsYXlfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCB1cGxvYWRpbmcnKTsKLQotICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICB9LAotCi0gICAgc2V0VXBsb2FkT3ZlcmxheVRleHRfOiBmdW5jdGlvbihtZXNzYWdlcykgewotICAgICAgdmFyIGNvbnRlbnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgbWVzc2FnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBtZXNzYWdlRGl2LnRleHRDb250ZW50ID0gbWVzc2FnZXNbaV07Ci0gICAgICAgIGNvbnRlbnREaXYuYXBwZW5kQ2hpbGQobWVzc2FnZURpdik7Ci0gICAgICB9Ci0gICAgICB0aGlzLnNldFVwbG9hZE92ZXJsYXlDb250ZW50Xyhjb250ZW50RGl2KTsKLSAgICB9LAotCi0gICAgZG9UcmFjZVVwbG9hZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zZXRVcGxvYWRPdmVybGF5VGV4dF8oWydVcGxvYWRpbmcgdHJhY2UgZGF0YS4uLiddKTsKLSAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5yZW1vdmVDaGlsZCgKLSAgICAgICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuZmlyc3RDaGlsZCk7Ci0gICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuZmlyc3RDaGlsZC50ZXh0Q29udGVudCA9ICdDbG9zZSc7Ci0gICAgICBjaHJvbWUuc2VuZCgnZG9VcGxvYWQnLCBbdGhpcy5hY3RpdmVUcmFjZV8uZGF0YV0pOwotICAgIH0sCi0KLSAgICBoaWRlVXBsb2FkT3ZlcmxheV86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLnVwbG9hZE92ZXJsYXlfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCB1cGxvYWRpbmcnKTsKLQotICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy52aXNpYmxlID0gZmFsc2U7Ci0gICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfID0gbnVsbDsKLSAgICB9LAotCi0gICAgb25Mb2FkQ2xpY2tlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci0gICAgICBpbnB1dEVsZW1lbnQudHlwZSA9ICdmaWxlJzsKLSAgICAgIGlucHV0RWxlbWVudC5tdWx0aXBsZSA9IGZhbHNlOwotCi0gICAgICB2YXIgY2hhbmdlRmlyZWQgPSBmYWxzZTsKLSAgICAgIGlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdjaGFuZ2UnLAotICAgICAgICAgIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGlmIChjaGFuZ2VGaXJlZCkKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgY2hhbmdlRmlyZWQgPSB0cnVlOwotCi0gICAgICAgICAgICB2YXIgZmlsZSA9IGlucHV0RWxlbWVudC5maWxlc1swXTsKLSAgICAgICAgICAgIHJlYWRGaWxlKGZpbGUpLnRoZW4oCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVUcmFjZShmaWxlLm5hbWUsIGRhdGEpOwotICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSwKLSAgICAgICAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgICAgICAgICAgIHRyLmIudWkuT3ZlcmxheS5zaG93RXJyb3IoJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZmlsZTogJyArIGVycik7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgICBpbnB1dEVsZW1lbnQuY2xpY2soKTsKLSAgICB9LAotCi0gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLSAgICBpbml0RHJhZ0FuZERyb3BfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuZHJvcEhhbmRsZXJfID0gdGhpcy5kcm9wSGFuZGxlcl8uYmluZCh0aGlzKTsKLSAgICAgIHRoaXMuaWdub3JlRHJhZ0V2ZW50XyA9IHRoaXMuaWdub3JlRHJhZ0V2ZW50Xy5iaW5kKHRoaXMpOwotICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfLCBmYWxzZSk7Ci0gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW5kJywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfLCBmYWxzZSk7Ci0gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCB0aGlzLmlnbm9yZURyYWdFdmVudF8sIGZhbHNlKTsKLSAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIHRoaXMuaWdub3JlRHJhZ0V2ZW50XywgZmFsc2UpOwotICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmlnbm9yZURyYWdFdmVudF8sIGZhbHNlKTsKLSAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmRyb3BIYW5kbGVyXywgZmFsc2UpOwotICAgIH0sCi0KLSAgICBkZXRhY2hEcmFnQW5kRHJvcF86IGZ1bmN0aW9uKCkgewotICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfKTsKLSAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdlbmQnLCB0aGlzLmlnbm9yZURyYWdFdmVudF8pOwotICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfKTsKLSAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIHRoaXMuaWdub3JlRHJhZ0V2ZW50Xyk7Ci0gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaWdub3JlRHJhZ0V2ZW50Xyk7Ci0gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5kcm9wSGFuZGxlcl8pOwotICAgIH0sCi0KLSAgICBpZ25vcmVEcmFnRXZlbnRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIGRyb3BIYW5kbGVyXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKHRoaXMuaXNBbnlEaWFsb2dVcF8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLQotICAgICAgdmFyIGZpbGVzID0gZS5kYXRhVHJhbnNmZXIuZmlsZXM7Ci0gICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7Ci0gICAgICAgIHRyLmIudWkuT3ZlcmxheS5zaG93RXJyb3IoJzEgZmlsZSBzdXBwb3J0ZWQgYXQgYSB0aW1lLicpOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHJlYWRGaWxlKGZpbGVzWzBdKS50aGVuKAotICAgICAgICAgIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlVHJhY2UoZmlsZXNbMF0ubmFtZSwgZGF0YSk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpLAotICAgICAgICAgIGZ1bmN0aW9uKGVycikgewotICAgICAgICAgICAgdHIuYi51aS5PdmVybGF5LnNob3dFcnJvcignRXJyb3Igd2hpbGUgbG9hZGluZyBmaWxlOiAnICsgZXJyKTsKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBQcm9maWxpbmdWaWV3OiBQcm9maWxpbmdWaWV3Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9wcm9maWxpbmdfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ5NGE5Ni4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvYWJvdXRfdHJhY2luZy9tb2NrX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcHJvZmlsaW5nX3ZpZXcuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgdGVzdERhdGEgPSBbCi0gICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAxNTAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAxOTAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCi0gICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAzMjAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NDAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgXTsKLQotICB2YXIgbW9uaXRvcmluZ09wdGlvbnMgPSB7Ci0gICAgaXNNb25pdG9yaW5nOiBmYWxzZSwKLSAgICBjYXRlZ29yeUZpbHRlcjogJyonLAotICAgIHVzZVN5c3RlbVRyYWNpbmc6IGZhbHNlLAotICAgIHVzZUNvbnRpbnVvdXNUcmFjaW5nOiBmYWxzZSwKLSAgICB1c2VTYW1wbGluZzogZmFsc2UKLSAgfTsKLQotICB2YXIgUHJvZmlsaW5nVmlldyA9IHRyLmUuYWJvdXRfdHJhY2luZy5Qcm9maWxpbmdWaWV3OwotCi0gIHRlc3QoJ3JlY29yZGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2NrID0gbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5Nb2NrVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKTsKLSAgICBtb2NrLmFsbG93TG9vcGluZyA9IHRydWU7Ci0gICAgbW9jay5leHBlY3RSZXF1ZXN0KCdnZXRNb25pdG9yaW5nU3RhdHVzJywgZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gYnRvYShKU09OLnN0cmluZ2lmeShtb25pdG9yaW5nT3B0aW9ucykpOwotICAgIH0pOwotICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnZW5kUmVjb3JkaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gJyc7Ci0gICAgfSk7Ci0gICAgbW9jay5leHBlY3RSZXF1ZXN0KCdnZXRDYXRlZ29yaWVzJywgZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoWydhJywgJ2InLCAnYyddKTsKLSAgICB9KTsKLSAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2JlZ2luUmVjb3JkaW5nJywgZnVuY3Rpb24oZGF0YSkgewotICAgICAgcmV0dXJuICcnOwotICAgIH0pOwotICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnZW5kUmVjb3JkaW5nJywgZnVuY3Rpb24oZGF0YSkgewotICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRlc3REYXRhKTsKLSAgICB9KTsKLQotICAgIHZhciB2aWV3ID0gbmV3IFByb2ZpbGluZ1ZpZXcobW9jayk7Ci0gICAgdmlldy5zdHlsZS5oZWlnaHQgPSAnNDAwcHgnOwotICAgIHZpZXcuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotCi0gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgdmFyIHJlY29yZGluZ1Byb21pc2UgPSB2aWV3LmJlZ2luUmVjb3JkaW5nKCk7Ci0gICAgICBmdW5jdGlvbiBwcmVzc1JlY29yZCgpIHsKLSAgICAgICAgcmVjb3JkaW5nUHJvbWlzZS5zZWxlY3Rpb25EbGcuY2xpY2tSZWNvcmRCdXR0b24oKTsKLSAgICAgICAgc2V0VGltZW91dChwcmVzc1N0b3AsIDYwKTsKLSAgICAgIH0KLSAgICAgIGZ1bmN0aW9uIHByZXNzU3RvcCgpIHsKLSAgICAgICAgcmVjb3JkaW5nUHJvbWlzZS5wcm9ncmVzc0RsZy5jbGlja1N0b3BCdXR0b24oKTsKLSAgICAgIH0KLSAgICAgIHNldFRpbWVvdXQocHJlc3NSZWNvcmQsIDYwKTsKLSAgICAgIHJlY29yZGluZ1Byb21pc2UudGhlbigKLSAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmVqZWN0KCk7Ci0gICAgICAgICAgfSk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vbml0b3JpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9jayA9IG5ldyB0ci5lLmFib3V0X3RyYWNpbmcuTW9ja1RyYWNpbmdDb250cm9sbGVyQ2xpZW50KCk7Ci0gICAgbW9jay5hbGxvd0xvb3BpbmcgPSB0cnVlOwotICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnZ2V0TW9uaXRvcmluZ1N0YXR1cycsIGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkobW9uaXRvcmluZ09wdGlvbnMpKTsKLSAgICB9KTsKLSAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2JlZ2luTW9uaXRvcmluZycsIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgIHJldHVybiAnJzsKLSAgICB9KTsKLSAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2NhcHR1cmVNb25pdG9yaW5nJywgZnVuY3Rpb24oZGF0YSkgewotICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRlc3REYXRhKTsKLSAgICB9KTsKLSAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2VuZE1vbml0b3JpbmcnLCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICByZXR1cm4gJyc7Ci0gICAgfSk7Ci0KLSAgICB2YXIgdmlldyA9IG5ldyBQcm9maWxpbmdWaWV3KG1vY2spOwotICAgIHZpZXcuc3R5bGUuaGVpZ2h0ID0gJzQwMHB4JzsKLSAgICB2aWV3LnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLQotICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgIHZhciBidXR0b25zID0gdmlldy5xdWVyeVNlbGVjdG9yKCd4LXRpbWVsaW5lLXZpZXctYnV0dG9ucycpOwotICAgICAgYXNzZXJ0LmlzRmFsc2UoYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjbW9uaXRvci1jaGVja2JveCcpLmNoZWNrZWQpOwotCi0gICAgICBmdW5jdGlvbiBiZWdpbk1vbml0b3JpbmcoKSB7Ci0gICAgICAgIC8vIFNpbmNlIHdlIGRvbid0IGZhbGwgYmFjayB0byBUcmFjaW5nQ29udHJvbGxlciB3aGVuIHRlc3RpbmcsCi0gICAgICAgIC8vIHdlIGNhbm5vdCByZWx5IG9uIFRyYWNpbmdDb250cm9sbGVyIHRvIGludm9rZSBhIGNhbGxiYWNrIHRvIGNoYW5nZQotICAgICAgICAvLyB2aWV3LmlzTW9uaXRvcmluZ18uIFRodXMgd2UgY2hhbmdlIHZpZXcuaXNNb25pdG9yaW5nXyBtYW51YWxseS4KLSAgICAgICAgdmlldy5vbk1vbml0b3JpbmdTdGF0ZUNoYW5nZWRfKHRydWUpOwotICAgICAgICBhc3NlcnQuaXNUcnVlKGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI21vbml0b3ItY2hlY2tib3gnKS5jaGVja2VkKTsKLSAgICAgICAgc2V0VGltZW91dChjYXB0dXJlTW9uaXRvcmluZywgNjApOwotICAgICAgfQotCi0gICAgICBmdW5jdGlvbiBjYXB0dXJlTW9uaXRvcmluZygpIHsKLSAgICAgICAgYXNzZXJ0LmlzVHJ1ZShidXR0b25zLnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yLWNoZWNrYm94JykuY2hlY2tlZCk7Ci0gICAgICAgIGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI2NhcHR1cmUtYnV0dG9uJykuY2xpY2soKTsKLSAgICAgICAgc2V0VGltZW91dChlbmRNb25pdG9yaW5nLCA2MCk7Ci0gICAgICB9Ci0gICAgICBmdW5jdGlvbiBlbmRNb25pdG9yaW5nKCkgewotICAgICAgICBhc3NlcnQuaXNUcnVlKGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI21vbml0b3ItY2hlY2tib3gnKS5jaGVja2VkKTsKLSAgICAgICAgYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjbW9uaXRvci1jaGVja2JveCcpLmNsaWNrKCk7Ci0gICAgICAgIGFzc2VydC5pc0ZhbHNlKGJ1dHRvbnMucXVlcnlTZWxlY3RvcignI21vbml0b3ItY2hlY2tib3gnKS5jaGVja2VkKTsKLSAgICAgIH0KLQotICAgICAgdmFyIG1vbml0b3JpbmdQcm9taXNlID0gdmlldy5iZWdpbk1vbml0b3JpbmcoKTsKLSAgICAgIHNldFRpbWVvdXQoYmVnaW5Nb25pdG9yaW5nLCA2MCk7Ci0KLSAgICAgIG1vbml0b3JpbmdQcm9taXNlLnRoZW4oCi0gICAgICAgICAgcmVzb2x2ZSwKLSAgICAgICAgICByZWplY3QpOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCd1cGxvYWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9jayA9IG5ldyB0ci5lLmFib3V0X3RyYWNpbmcuTW9ja1RyYWNpbmdDb250cm9sbGVyQ2xpZW50KCk7Ci0gICAgbW9jay5hbGxvd0xvb3BpbmcgPSB0cnVlOwotICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnZ2V0TW9uaXRvcmluZ1N0YXR1cycsIGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkobW9uaXRvcmluZ09wdGlvbnMpKTsKLSAgICB9KTsKLSAgICB2YXIgdmlldyA9IG5ldyBQcm9maWxpbmdWaWV3KG1vY2spOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgICB2YXIgYnV0dG9ucyA9IHZpZXcucXVlcnlTZWxlY3RvcigneC10aW1lbGluZS12aWV3LWJ1dHRvbnMnKTsKLSAgICB2YXIgdXBsb2FkQnV0dG9uID0gYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCcjdXBsb2FkLWJ1dHRvbicpOwotICAgIGFzc2VydC5pc05vdE51bGwodXBsb2FkQnV0dG9uKTsKLSAgICBhc3NlcnQuaXNUcnVlKHVwbG9hZEJ1dHRvbi5kaXNhYmxlZCk7Ci0gICAgYXNzZXJ0LmlzTnVsbCh2aWV3LnVwbG9hZE92ZXJsYXlfKTsKLQotICAgIHZpZXcuc2V0QWN0aXZlVHJhY2UoJ3Rlc3RGaWxlJywgW10pOwotICAgIHZpZXcuYWN0aXZlVHJhY2VfLmRhdGEgPSBbJ3QnLCAnZScsICdzJywgJ3QnXTsKLSAgICBhc3NlcnQuaXNGYWxzZSh1cGxvYWRCdXR0b24uZGlzYWJsZWQpOwotCi0gICAgdmFyIG92ZXJsYXkgPSBudWxsOwotICAgIHZhciBjbGlja1VwbG9hZEFuZFZlcmlmeSA9IGZ1bmN0aW9uKCkgewotICAgICAgdmlldy5vblVwbG9hZENsaWNrZWRfKCk7Ci0gICAgICBhc3NlcnQuaXNOb3ROdWxsKHZpZXcudXBsb2FkT3ZlcmxheV8pOwotICAgICAgYXNzZXJ0LmlzVHJ1ZSh2aWV3LnVwbG9hZE92ZXJsYXlfLnZpc2libGUpOwotICAgICAgb3ZlcmxheSA9IHZpZXcudXBsb2FkT3ZlcmxheV87Ci0gICAgICBhc3NlcnQubm90RXF1YWwodmlldy51cGxvYWRPdmVybGF5Xy5idXR0b25zLnN0eWxlLmRpc3BsYXksICdub25lJyk7Ci0gICAgICBhc3NlcnQuZXF1YWwodmlldy51cGxvYWRPdmVybGF5Xy5idXR0b25zLmNoaWxkTm9kZXMubGVuZ3RoLCAyKTsKLSAgICB9OwotICAgIGNsaWNrVXBsb2FkQW5kVmVyaWZ5KCk7Ci0KLSAgICB2YXIgY2FuY2VsQnV0dG9uID0gdmlldy51cGxvYWRPdmVybGF5Xy5idXR0b25zLmxhc3RDaGlsZDsKLSAgICBhc3NlcnQuZXF1YWwoY2FuY2VsQnV0dG9uLnRleHRDb250ZW50LCAnQ2FuY2VsJyk7Ci0gICAgY2FuY2VsQnV0dG9uLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmlzTnVsbCh2aWV3LnVwbG9hZE92ZXJsYXlfKTsKLSAgICBhc3NlcnQuaXNGYWxzZShvdmVybGF5LnZpc2libGUpOwotCi0gICAgY2xpY2tVcGxvYWRBbmRWZXJpZnkoKTsKLSAgICB2YXIgb2tCdXR0b24gPSB2aWV3LnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuZmlyc3RDaGlsZDsKLSAgICBhc3NlcnQuZXF1YWwob2tCdXR0b24udGV4dENvbnRlbnQsICdPaycpOwotICAgIHZhciBjb21tYW5kU2VudCA9IG51bGw7Ci0gICAgdmFyIGRhdGFTZW50ID0gbnVsbDsKLSAgICBjaHJvbWUuc2VuZCA9IGZ1bmN0aW9uKGNvbW1hbmQsIGRhdGEpIHsKLSAgICAgIGNvbW1hbmRTZW50ID0gY29tbWFuZDsKLSAgICAgIGRhdGFTZW50ID0gZGF0YTsKLSAgICB9OwotICAgIG9rQnV0dG9uLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbW1hbmRTZW50LCAnZG9VcGxvYWQnKTsKLSAgICBhc3NlcnQuZXF1YWwoZGF0YVNlbnRbMF0sIHZpZXcuYWN0aXZlVHJhY2VfLmRhdGEpOwotCi0gICAgYXNzZXJ0LmlzVHJ1ZSh2aWV3LnVwbG9hZE92ZXJsYXlfLnZpc2libGUpOwotICAgIG92ZXJsYXkgPSB2aWV3LnVwbG9hZE92ZXJsYXlfOwotICAgIGFzc2VydC5lcXVhbCh2aWV3LnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuY2hpbGROb2Rlcy5sZW5ndGgsIDEpOwotICAgIHZhciBjbG9zZUJ1dHRvbiA9IHZpZXcudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5jaGlsZE5vZGVzWzBdOwotICAgIGFzc2VydC5lcXVhbChjbG9zZUJ1dHRvbi50ZXh0Q29udGVudCwgJ0Nsb3NlJyk7Ci0gICAgY2xvc2VCdXR0b24uY2xpY2soKTsKLSAgICBhc3NlcnQuaXNOdWxsKHZpZXcudXBsb2FkT3ZlcmxheV8pOwotICAgIGFzc2VydC5pc0ZhbHNlKG92ZXJsYXkudmlzaWJsZSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfYW5kX2NhcHR1cmVfY29udHJvbGxlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfYW5kX2NhcHR1cmVfY29udHJvbGxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTZkNGVlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfc2VsZWN0aW9uX2RpYWxvZy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuYWJvdXRfdHJhY2luZycsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBiZWdpbk1vbml0b3JpbmcodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKLSAgICB2YXIgZmluYWxQcm9taXNlUmVzb2x2ZXI7Ci0gICAgdmFyIGZpbmFsUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgZmluYWxQcm9taXNlUmVzb2x2ZXIgPSB7Ci0gICAgICAgIHJlc29sdmU6IHJlc29sdmUsCi0gICAgICAgIHJlamVjdDogcmVqZWN0Ci0gICAgICB9OwotICAgIH0pOwotCi0gICAgLy8gVE9ETyhoYXJha2VuKTogSW1wbGVtZW50IGEgY29uZmlndXJlIGRpYWxvZyB0byBzZXQgdGhlc2Ugb3B0aW9ucy4KLSAgICB2YXIgbW9uaXRvcmluZ09wdGlvbnMgPSB7Ci0gICAgICBjYXRlZ29yeUZpbHRlcjogJyonLAotICAgICAgdXNlU3lzdGVtVHJhY2luZzogZmFsc2UsCi0gICAgICB0cmFjaW5nUmVjb3JkTW9kZTogJ3JlY29yZC11bnRpbC1mdWxsJywKLSAgICAgIHVzZVNhbXBsaW5nOiB0cnVlCi0gICAgfTsKLQotCi0gICAgdmFyIGJlZ2luTW9uaXRvcmluZ1Byb21pc2UgPSB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5iZWdpbk1vbml0b3JpbmcoCi0gICAgICAgIG1vbml0b3JpbmdPcHRpb25zKTsKLQotICAgIGJlZ2luTW9uaXRvcmluZ1Byb21pc2UudGhlbigKLSAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgZmluYWxQcm9taXNlUmVzb2x2ZXIucmVzb2x2ZSgpOwotICAgICAgICB9LAotICAgICAgICBmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgICBmaW5hbFByb21pc2VSZXNvbHZlci5yZWplY3QoZXJyKTsKLSAgICAgICAgfSk7Ci0KLSAgICByZXR1cm4gZmluYWxQcm9taXNlOwotICB9Ci0KLSAgZnVuY3Rpb24gZW5kTW9uaXRvcmluZyh0cmFjaW5nQ29udHJvbGxlckNsaWVudCkgewotICAgIHZhciBlbmRNb25pdG9yaW5nUHJvbWlzZSA9IHRyYWNpbmdDb250cm9sbGVyQ2xpZW50LmVuZE1vbml0b3JpbmcoKTsKLSAgICByZXR1cm4gZW5kTW9uaXRvcmluZ1Byb21pc2UudGhlbigKLSAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgIH0sCi0gICAgICAgIGZ1bmN0aW9uKGVycikgewotICAgICAgICB9KTsKLSAgfQotCi0gIGZ1bmN0aW9uIGNhcHR1cmVNb25pdG9yaW5nKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KSB7Ci0gICAgdmFyIGNhcHR1cmVNb25pdG9yaW5nUHJvbWlzZSA9Ci0gICAgICAgIHRyYWNpbmdDb250cm9sbGVyQ2xpZW50LmNhcHR1cmVNb25pdG9yaW5nKCk7Ci0gICAgcmV0dXJuIGNhcHR1cmVNb25pdG9yaW5nUHJvbWlzZTsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldE1vbml0b3JpbmdTdGF0dXModHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKLSAgICB2YXIgZ2V0TW9uaXRvcmluZ1N0YXR1c1Byb21pc2UgPQotICAgICAgICB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5nZXRNb25pdG9yaW5nU3RhdHVzKCk7Ci0gICAgcmV0dXJuIGdldE1vbml0b3JpbmdTdGF0dXNQcm9taXNlOwotICB9Ci0KLSAgZnVuY3Rpb24gYmVnaW5SZWNvcmRpbmcodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKLSAgICB2YXIgZmluYWxQcm9taXNlUmVzb2x2ZXI7Ci0gICAgdmFyIGZpbmFsUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgZmluYWxQcm9taXNlUmVzb2x2ZXIgPSB7Ci0gICAgICAgIHJlc29sdmU6IHJlc29sdmUsCi0gICAgICAgIHJlamVjdDogcmVqZWN0Ci0gICAgICB9OwotICAgIH0pOwotICAgIGZpbmFsUHJvbWlzZS5zZWxlY3Rpb25EbGcgPSB1bmRlZmluZWQ7Ci0gICAgZmluYWxQcm9taXNlLnByb2dyZXNzRGxnID0gdW5kZWZpbmVkOwotCi0gICAgZnVuY3Rpb24gYmVnaW5SZWNvcmRpbmdFcnJvcihlcnIpIHsKLSAgICAgIGZpbmFsUHJvbWlzZVJlc29sdmVyLnJlamVjdChlcnIpOwotICAgIH0KLQotICAgIC8vIFN0ZXAgMDogRW5kIHJlY29yZGluZy4gVGhpcyBpcyBuZWNlc3Nhcnkgd2hlbiB0aGUgdXNlciByZWxvYWRzIHRoZQotICAgIC8vIGFib3V0OnRyYWNpbmcgcGFnZSB3aGVuIHdlIGFyZSByZWNvcmRpbmcuIFdpbmRvdy5vbmJlZm9yZXVubG9hZCBpcyBub3QKLSAgICAvLyByZWxpYWJsZSB0byBlbmQgcmVjb3JkaW5nIG9uIHJlbG9hZC4KLSAgICBlbmRSZWNvcmRpbmcodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpLnRoZW4oCi0gICAgICAgIGdldENhdGVnb3JpZXMsCi0gICAgICAgIGdldENhdGVnb3JpZXMpOyAgLy8gSWdub3JlIGVycm9yLgotCi0gICAgLy8gQnV0IGp1c3QgaW4gY2FzZSwgYmluZCBvbmJlZm9yZXVubG9hZCBhbnl3YXkuCi0gICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gZnVuY3Rpb24oZSkgewotICAgICAgZW5kUmVjb3JkaW5nKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KTsKLSAgICB9Ci0KLSAgICAvLyBTdGVwIDE6IEdldCBjYXRlZ29yaWVzLgotICAgIGZ1bmN0aW9uIGdldENhdGVnb3JpZXMoKSB7Ci0gICAgICB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5nZXRDYXRlZ29yaWVzKCkudGhlbigKLSAgICAgICAgICBzaG93VHJhY2luZ0RpYWxvZywKLSAgICAgICAgICBiZWdpblJlY29yZGluZ0Vycm9yKTsKLSAgICB9Ci0KLSAgICAvLyBTdGVwIDI6IFNob3cgdHJhY2luZyBkaWFsb2cuCi0gICAgdmFyIHNlbGVjdGlvbkRsZzsKLSAgICBmdW5jdGlvbiBzaG93VHJhY2luZ0RpYWxvZyhjYXRlZ29yaWVzKSB7Ci0gICAgICBzZWxlY3Rpb25EbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgICAgc2VsZWN0aW9uRGxnLmNhdGVnb3JpZXMgPSBjYXRlZ29yaWVzOwotICAgICAgc2VsZWN0aW9uRGxnLnNldHRpbmdzX2tleSA9ICd0ci5lLmFib3V0X3RyYWNpbmcucmVjb3JkX3NlbGVjdGlvbl9kaWFsb2cnOwotICAgICAgc2VsZWN0aW9uRGxnLmFkZEV2ZW50TGlzdGVuZXIoJ3JlY29yZGNsaWNrJywgc3RhcnRUcmFjaW5nKTsKLSAgICAgIHNlbGVjdGlvbkRsZy5hZGRFdmVudExpc3RlbmVyKCdjbG9zZWNsaWNrJywgY2FuY2VsUmVjb3JkaW5nKTsKLSAgICAgIHNlbGVjdGlvbkRsZy52aXNpYmxlID0gdHJ1ZTsKLQotICAgICAgZmluYWxQcm9taXNlLnNlbGVjdGlvbkRsZyA9IHNlbGVjdGlvbkRsZzsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjYW5jZWxSZWNvcmRpbmcoKSB7Ci0gICAgICBmaW5hbFByb21pc2Uuc2VsZWN0aW9uRGxnID0gdW5kZWZpbmVkOwotICAgICAgZmluYWxQcm9taXNlUmVzb2x2ZXIucmVqZWN0KG5ldyBVc2VyQ2FuY2VsbGVkRXJyb3IoKSk7Ci0gICAgfQotCi0gICAgLy8gU3RlcCAyOiBEbyB0aGUgYWN0dWFsIHRyYWNpbmcgZGlhbG9nLgotICAgIHZhciBwcm9ncmVzc0RsZzsKLSAgICB2YXIgYnVmZmVyUGVyY2VudEZ1bGxEaXY7Ci0gICAgZnVuY3Rpb24gc3RhcnRUcmFjaW5nKCkgewotICAgICAgcHJvZ3Jlc3NEbGcgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgICBwcm9ncmVzc0RsZy50ZXh0Q29udGVudCA9ICdSZWNvcmRpbmcuLi4nOwotICAgICAgcHJvZ3Jlc3NEbGcudXNlckNhbkNsb3NlID0gZmFsc2U7Ci0KLSAgICAgIGJ1ZmZlclBlcmNlbnRGdWxsRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICBwcm9ncmVzc0RsZy5hcHBlbmRDaGlsZChidWZmZXJQZXJjZW50RnVsbERpdik7Ci0KLSAgICAgIHZhciBzdG9wQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAgICBzdG9wQnV0dG9uLnRleHRDb250ZW50ID0gJ1N0b3AnOwotICAgICAgcHJvZ3Jlc3NEbGcuY2xpY2tTdG9wQnV0dG9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHN0b3BCdXR0b24uY2xpY2soKTsKLSAgICAgIH07Ci0gICAgICBwcm9ncmVzc0RsZy5hcHBlbmRDaGlsZChzdG9wQnV0dG9uKTsKLQotICAgICAgdmFyIHJlY29yZGluZ09wdGlvbnMgPSB7Ci0gICAgICAgIGNhdGVnb3J5RmlsdGVyOiBzZWxlY3Rpb25EbGcuY2F0ZWdvcnlGaWx0ZXIoKSwKLSAgICAgICAgdXNlU3lzdGVtVHJhY2luZzogc2VsZWN0aW9uRGxnLnVzZVN5c3RlbVRyYWNpbmcsCi0gICAgICAgIHRyYWNpbmdSZWNvcmRNb2RlOiBzZWxlY3Rpb25EbGcudHJhY2luZ1JlY29yZE1vZGUsCi0gICAgICAgIHVzZVNhbXBsaW5nOiBzZWxlY3Rpb25EbGcudXNlU2FtcGxpbmcKLSAgICAgIH07Ci0KLQotICAgICAgdmFyIHJlcXVlc3RQcm9taXNlID0gdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQuYmVnaW5SZWNvcmRpbmcoCi0gICAgICAgICAgcmVjb3JkaW5nT3B0aW9ucyk7Ci0gICAgICByZXF1ZXN0UHJvbWlzZS50aGVuKAotICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcHJvZ3Jlc3NEbGcudmlzaWJsZSA9IHRydWU7Ci0gICAgICAgICAgICBzdG9wQnV0dG9uLmZvY3VzKCk7Ci0gICAgICAgICAgICB1cGRhdGVCdWZmZXJQZXJjZW50RnVsbCgnMCcpOwotICAgICAgICAgIH0sCi0gICAgICAgICAgcmVjb3JkRmFpbGVkKTsKLQotICAgICAgc3RvcEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewotICAgICAgICAvLyBUT0RPKGNocmlzaGVucnkpOiBDdXJyZW50bHksIHRoaXMgb25seSBkaXNtaXNzIHRoZSBwcm9ncmVzcwotICAgICAgICAvLyBkaWFsb2cgd2hlbiB0cmFjaW5nQ29tcGxldGUgZXZlbnQgaXMgcmVjZWl2ZWQuIFdoZW4gcGVyZm9ybWluZwotICAgICAgICAvLyByZW1vdGUgZGVidWdnaW5nLCB0aGUgdHJhY2luZ0NvbXBsZXRlIGV2ZW50IG1heSBiZSBkZWxheWVkCi0gICAgICAgIC8vIGNvbnNpZGVyYWJsZS4gV2Ugc2hvdWxkIGluZGljYXRlIHRvIHVzZXIgdGhhdCB3ZSBhcmUgd2FpdGluZwotICAgICAgICAvLyBmb3IgdHJhY2luZ0NvbXBsZXRlIGV2ZW50IGluc3RlYWQgb2YgYmVpbmcgdW5yZXNwb25zaXZlLiAoRm9yCi0gICAgICAgIC8vIG5vdywgSSBkaXNhYmxlIHRoZSAic3RvcCIgYnV0dG9uLCBzaW5jZSBjbGlja2luZyBvbiB0aGUgYnV0dG9uCi0gICAgICAgIC8vIGFnYWluIG5vdyBjYXVzZSBleGNlcHRpb24uKQotICAgICAgICB2YXIgcmVjb3JkaW5nUHJvbWlzZSA9IGVuZFJlY29yZGluZyh0cmFjaW5nQ29udHJvbGxlckNsaWVudCk7Ci0gICAgICAgIHJlY29yZGluZ1Byb21pc2UudGhlbigKLSAgICAgICAgICAgIHJlY29yZEZpbmlzaGVkLAotICAgICAgICAgICAgcmVjb3JkRmFpbGVkKTsKLSAgICAgICAgc3RvcEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAgIGJ1ZmZlclBlcmNlbnRGdWxsRGl2ID0gdW5kZWZpbmVkOwotICAgICAgfSk7Ci0gICAgICBmaW5hbFByb21pc2UucHJvZ3Jlc3NEbGcgPSBwcm9ncmVzc0RsZzsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZWNvcmRGaW5pc2hlZCh0cmFjZWREYXRhKSB7Ci0gICAgICBwcm9ncmVzc0RsZy52aXNpYmxlID0gZmFsc2U7Ci0gICAgICBmaW5hbFByb21pc2UucHJvZ3Jlc3NEbGcgPSB1bmRlZmluZWQ7Ci0gICAgICBmaW5hbFByb21pc2VSZXNvbHZlci5yZXNvbHZlKHRyYWNlZERhdGEpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlY29yZEZhaWxlZChlcnIpIHsKLSAgICAgIHByb2dyZXNzRGxnLnZpc2libGUgPSBmYWxzZTsKLSAgICAgIGZpbmFsUHJvbWlzZS5wcm9ncmVzc0RsZyA9IHVuZGVmaW5lZDsKLSAgICAgIGZpbmFsUHJvbWlzZVJlc29sdmVyLnJlamVjdChlcnIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGdldEJ1ZmZlclBlcmNlbnRGdWxsKCkgewotICAgICAgaWYgKCFidWZmZXJQZXJjZW50RnVsbERpdikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5iZWdpbkdldEJ1ZmZlclBlcmNlbnRGdWxsKCkudGhlbigKLSAgICAgICAgICB1cGRhdGVCdWZmZXJQZXJjZW50RnVsbCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdXBkYXRlQnVmZmVyUGVyY2VudEZ1bGwocGVyY2VudF9mdWxsKSB7Ci0gICAgICBpZiAoIWJ1ZmZlclBlcmNlbnRGdWxsRGl2KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHBlcmNlbnRfZnVsbCA9IE1hdGgucm91bmQoMTAwICogcGFyc2VGbG9hdChwZXJjZW50X2Z1bGwpKTsKLSAgICAgIHZhciBuZXdUZXh0ID0gJ0J1ZmZlciB1c2FnZTogJyArIHBlcmNlbnRfZnVsbCArICclJzsKLSAgICAgIGlmIChidWZmZXJQZXJjZW50RnVsbERpdi50ZXh0Q29udGVudCAhPSBuZXdUZXh0KQotICAgICAgICBidWZmZXJQZXJjZW50RnVsbERpdi50ZXh0Q29udGVudCA9IG5ld1RleHQ7Ci0KLSAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGdldEJ1ZmZlclBlcmNlbnRGdWxsLCA1MDApOwotICAgIH0KLQotICAgIC8vIFRoYXRzIGl0ISBXZSdyZSBkb25lLgotICAgIHJldHVybiBmaW5hbFByb21pc2U7Ci0gIH07Ci0KLSAgZnVuY3Rpb24gZW5kUmVjb3JkaW5nKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KSB7Ci0gICAgcmV0dXJuIHRyYWNpbmdDb250cm9sbGVyQ2xpZW50LmVuZFJlY29yZGluZygpOwotICB9Ci0KLSAgZnVuY3Rpb24gVXNlckNhbmNlbGxlZEVycm9yKCkgewotICAgIEVycm9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gIH0KLSAgVXNlckNhbmNlbGxlZEVycm9yLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEVycm9yLnByb3RvdHlwZQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgYmVnaW5SZWNvcmRpbmc6IGJlZ2luUmVjb3JkaW5nLAotICAgIGJlZ2luTW9uaXRvcmluZzogYmVnaW5Nb25pdG9yaW5nLAotICAgIGVuZE1vbml0b3Jpbmc6IGVuZE1vbml0b3JpbmcsCi0gICAgY2FwdHVyZU1vbml0b3Jpbmc6IGNhcHR1cmVNb25pdG9yaW5nLAotICAgIGdldE1vbml0b3JpbmdTdGF0dXM6IGdldE1vbml0b3JpbmdTdGF0dXMsCi0gICAgVXNlckNhbmNlbGxlZEVycm9yOiBVc2VyQ2FuY2VsbGVkRXJyb3IKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9hbmRfY2FwdHVyZV9jb250cm9sbGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjhhZjgzLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXJfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hYm91dF90cmFjaW5nL21vY2tfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICB2YXIgdGVzdERhdGEgPSBbCi0gICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAxNTAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAxOTAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCi0gICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAzMjAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NDAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgXTsKLQotICB0ZXN0KCdmdWxsUmVjb3JkaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgdmFyIG1vY2sgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLk1vY2tUcmFjaW5nQ29udHJvbGxlckNsaWVudCgpOwotICAgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdlbmRSZWNvcmRpbmcnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuICcnOwotICAgICAgfSk7Ci0gICAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2dldENhdGVnb3JpZXMnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICByZWNvcmRpbmdQcm9taXNlLnNlbGVjdGlvbkRsZy5jbGlja1JlY29yZEJ1dHRvbigpOwotICAgICAgICB9LCAyMCk7Ci0gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShbJ2EnLCAnYicsICdjJ10pOwotICAgICAgfSk7Ci0gICAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2JlZ2luUmVjb3JkaW5nJywgZnVuY3Rpb24ocmVjb3JkaW5nT3B0aW9ucykgewotICAgICAgICBhc3NlcnQudHlwZU9mKHJlY29yZGluZ09wdGlvbnMuY2F0ZWdvcnlGaWx0ZXIsICdzdHJpbmcnKTsKLSAgICAgICAgYXNzZXJ0LnR5cGVPZihyZWNvcmRpbmdPcHRpb25zLnVzZVN5c3RlbVRyYWNpbmcsICdib29sZWFuJyk7Ci0gICAgICAgIGFzc2VydC50eXBlT2YocmVjb3JkaW5nT3B0aW9ucy51c2VTYW1wbGluZywgJ2Jvb2xlYW4nKTsKLSAgICAgICAgYXNzZXJ0LnR5cGVPZihyZWNvcmRpbmdPcHRpb25zLnRyYWNpbmdSZWNvcmRNb2RlLCAnc3RyaW5nJyk7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmVjb3JkaW5nUHJvbWlzZS5wcm9ncmVzc0RsZy5jbGlja1N0b3BCdXR0b24oKTsKLSAgICAgICAgfSwgMTApOwotICAgICAgICByZXR1cm4gJyc7Ci0gICAgICB9KTsKLSAgICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnZW5kUmVjb3JkaW5nJywgZnVuY3Rpb24oZGF0YSkgewotICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGVzdERhdGEpOwotICAgICAgfSk7Ci0KLSAgICAgIHZhciByZWNvcmRpbmdQcm9taXNlID0gdHIuZS5hYm91dF90cmFjaW5nLmJlZ2luUmVjb3JkaW5nKG1vY2spOwotCi0gICAgICByZXR1cm4gcmVjb3JkaW5nUHJvbWlzZS50aGVuKAotICAgICAgICAgIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgIG1vY2suYXNzZXJ0QWxsUmVxdWVzdHNIYW5kbGVkKCk7Ci0gICAgICAgICAgICB2YXIgdGVzdERhdGFTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0ZXN0RGF0YSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZGF0YSwgdGVzdERhdGFTdHJpbmcpOwotICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgIH0sCi0gICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAgICAgICAgIHJlamVjdCgnVGhpcyBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwotICAgICAgICAgIH0pOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCdtb25pdG9yaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgdmFyIG1vY2sgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLk1vY2tUcmFjaW5nQ29udHJvbGxlckNsaWVudCgpOwotCi0gICAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2JlZ2luTW9uaXRvcmluZycsIGZ1bmN0aW9uKG1vbml0b3JpbmdPcHRpb25zKSB7Ci0gICAgICAgIGFzc2VydC50eXBlT2YobW9uaXRvcmluZ09wdGlvbnMuY2F0ZWdvcnlGaWx0ZXIsICdzdHJpbmcnKTsKLSAgICAgICAgYXNzZXJ0LnR5cGVPZihtb25pdG9yaW5nT3B0aW9ucy51c2VTeXN0ZW1UcmFjaW5nLCAnYm9vbGVhbicpOwotICAgICAgICBhc3NlcnQudHlwZU9mKG1vbml0b3JpbmdPcHRpb25zLnVzZVNhbXBsaW5nLCAnYm9vbGVhbicpOwotICAgICAgICBhc3NlcnQudHlwZU9mKG1vbml0b3JpbmdPcHRpb25zLnRyYWNpbmdSZWNvcmRNb2RlLCAnc3RyaW5nJyk7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGNhcHR1cmVQcm9taXNlID0gdHIuZS5hYm91dF90cmFjaW5nLmNhcHR1cmVNb25pdG9yaW5nKG1vY2spOwotICAgICAgICAgIGNhcHR1cmVQcm9taXNlLnRoZW4oCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgICAgICB2YXIgdGVzdERhdGFTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0ZXN0RGF0YSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGRhdGEsIHRlc3REYXRhU3RyaW5nKTsKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAgICAgICAgICAgICByZWplY3QoKTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0sIDEwKTsKLSAgICAgICAgcmV0dXJuICcnOwotICAgICAgfSk7Ci0KLSAgICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnY2FwdHVyZU1vbml0b3JpbmcnLCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGVuZFByb21pc2UgPSB0ci5lLmFib3V0X3RyYWNpbmcuZW5kTW9uaXRvcmluZyhtb2NrKTsKLSAgICAgICAgICBlbmRQcm9taXNlLnRoZW4oCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgICAgICBtb2NrLmFzc2VydEFsbFJlcXVlc3RzSGFuZGxlZCgpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAgICAgICAgICAgICByZWplY3QoKTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0sIDEwKTsKLSAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRlc3REYXRhKTsKLSAgICAgIH0pOwotCi0gICAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2VuZE1vbml0b3JpbmcnLCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICB9KTsKLQotICAgICAgdHIuZS5hYm91dF90cmFjaW5nLmJlZ2luTW9uaXRvcmluZyhtb2NrKTsKLSAgICB9KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfc2VsZWN0aW9uX2RpYWxvZy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfc2VsZWN0aW9uX2RpYWxvZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmM3ZDQ1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX3NlbGVjdGlvbl9kaWFsb2cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvb3ZlcmxheS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9pbmZvX2Jhcl9ncm91cC5odG1sIj4KLQotPHRlbXBsYXRlIGlkPSJyZWNvcmQtc2VsZWN0aW9uLWRpYWxvZy10ZW1wbGF0ZSI+Ci0gIDxzdHlsZT4KLSAgLmNhdGVnb3JpZXMtY29sdW1uLXZpZXcgewotICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7Ci0gICAgbWF4LXdpZHRoOiA2NDBweDsKLSAgICBtaW4taGVpZ2h0OiAwOwotICAgIG1pbi13aWR0aDogMDsKLSAgICBvcGFjaXR5OiAxOwotICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMXMgZWFzZSwgbWF4LXdpZHRoIDFzIGVhc2UsIG9wYWNpdHkgMXMgZWFzZTsKLSAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTsKLSAgfQotCi0gIC5jYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbiB7Ci0gICAgbWF4LWhlaWdodDogMDsKLSAgICBtYXgtd2lkdGg6IDA7Ci0gICAgb3BhY2l0eTogMDsKLSAgICBvdmVyZmxvdzogaGlkZGVuOwotICB9Ci0KLSAgLmNhdGVnb3JpZXMtc2VsZWN0aW9uIHsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93OwotICB9Ci0KLSAgLmNhdGVnb3J5LXByZXNldHMgewotICAgIHBhZGRpbmc6IDRweDsKLSAgfQotCi0gIC5jYXRlZ29yeS1kZXNjcmlwdGlvbiB7Ci0gICAgY29sb3I6ICNhYWE7Ci0gICAgZm9udC1zaXplOiBzbWFsbDsKLSAgICBtYXgtaGVpZ2h0OiAxZW07Ci0gICAgb3BhY2l0eTogMTsKLSAgICBwYWRkaW5nLWxlZnQ6IDRweDsKLSAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci0gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAxcyBlYXNlLCBvcGFjaXR5IDFzIGVhc2U7Ci0gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7Ci0gIH0KLQotICAuY2F0ZWdvcnktZGVzY3JpcHRpb24taGlkZGVuIHsKLSAgICBtYXgtaGVpZ2h0OiAwOwotICAgIG9wYWNpdHk6IDA7Ci0gIH0KLQotICAuZGVmYXVsdC1lbmFibGVkLWNhdGVnb3JpZXMsCi0gIC5kZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMgewotICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICBwYWRkaW5nOiA0cHg7Ci0gICAgd2lkdGg6IDMwMHB4OwotICB9Ci0KLSAgLmRlZmF1bHQtZW5hYmxlZC1jYXRlZ29yaWVzID4gZGl2LAotICAuZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzID4gZGl2IHsKLSAgICBwYWRkaW5nOiA0cHg7Ci0gIH0KLQotICAudHJhY2luZy1tb2RlcyB7Ci0gICAgLXdlYmtpdC1mbGV4OiAxIDAgYXV0bzsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcmV2ZXJzZTsKLSAgICBwYWRkaW5nOiA0cHg7Ci0gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkZGQ7Ci0gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkZGQ7Ci0gIH0KLQotICAuZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzIHsKLSAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNkZGQ7Ci0gIH0KLQotICAud2FybmluZy1kZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMgewotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgY29sb3I6ICNCRDJFMkU7Ci0gICAgd2lkdGg6IDIuMGV4OwotICAgIGhlaWdodDogMi4wZXg7Ci0gICAgYm9yZGVyLXJhZGl1czogMi4wZXg7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgI0JEMkUyRTsKLSAgfQotCi0gIC5jYXRlZ29yaWVzIHsKLSAgICBmb250LXNpemU6IDgwJTsKLSAgICBwYWRkaW5nOiAxMHB4OwotICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gIH0KLQotICAuZ3JvdXAtc2VsZWN0b3JzIHsKLSAgICBmb250LXNpemU6IDgwJTsKLSAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDsKLSAgICBwYWRkaW5nLWJvdHRvbTogNnB4OwotICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87Ci0gIH0KLQotICAuZ3JvdXAtc2VsZWN0b3JzIGJ1dHRvbiB7Ci0gICAgcGFkZGluZzogMXB4OwotICB9Ci0gIDwvc3R5bGU+Ci0KLSAgPGRpdiBjbGFzcz0icmVjb3JkLXNlbGVjdGlvbi1kaWFsb2ciPgotICAgIDx0ci1iLXVpLWluZm8tYmFyLWdyb3VwPjwvdHItYi11aS1pbmZvLWJhci1ncm91cD4KLSAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yeS1wcmVzZXRzIj4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yeS1kZXNjcmlwdGlvbiI+PC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iY2F0ZWdvcmllcy1jb2x1bW4tdmlldyI+Ci0gICAgICA8ZGl2IGNsYXNzPSJ0cmFjaW5nLW1vZGVzIj48L2Rpdj4KLSAgICAgIDxkaXYgY2xhc3M9ImNhdGVnb3JpZXMtc2VsZWN0aW9uIj4KLSAgICAgICAgPGRpdiBjbGFzcz0iZGVmYXVsdC1lbmFibGVkLWNhdGVnb3JpZXMiPgotICAgICAgICAgIDxkaXY+UmVjb3JkJm5ic3A7Q2F0ZWdvcmllczwvZGl2PgotICAgICAgICAgIDxkaXYgY2xhc3M9Imdyb3VwLXNlbGVjdG9ycyI+Ci0gICAgICAgICAgICBTZWxlY3QKLSAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFsbC1idG4iPkFsbDwvYnV0dG9uPgotICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibm9uZS1idG4iPk5vbmU8L2J1dHRvbj4KLSAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzIj48L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImRlZmF1bHQtZGlzYWJsZWQtY2F0ZWdvcmllcyI+Ci0gICAgICAgICAgPGRpdj5EaXNhYmxlZCZuYnNwO2J5Jm5ic3A7RGVmYXVsdCZuYnNwO0NhdGVnb3JpZXMKLSAgICAgICAgICAgIDxhIGNsYXNzPSJ3YXJuaW5nLWRlZmF1bHQtZGlzYWJsZWQtY2F0ZWdvcmllcyI+ITwvYT4KLSAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICA8ZGl2IGNsYXNzPSJncm91cC1zZWxlY3RvcnMiPgotICAgICAgICAgICAgU2VsZWN0Ci0gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhbGwtYnRuIj5BbGw8L2J1dHRvbj4KLSAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5vbmUtYnRuIj5Ob25lPC9idXR0b24+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcmllcyI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+Ci0gIDwvZGl2PgotPC90ZW1wbGF0ZT4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFJlY29yZFNlbGVjdGlvbkRpYWxvZyBwcmVzZW50cyB0aGUgYXZhaWxhYmxlIGNhdGVnb3JpZXMKLSAqIHRvIGJlIGVuYWJsZWQvZGlzYWJsZWQgZHVyaW5nIHRyLmMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmFib3V0X3RyYWNpbmcnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotICB2YXIgUmVjb3JkU2VsZWN0aW9uRGlhbG9nID0gdHIuYi51aS5kZWZpbmUoJ2RpdicpOwotCi0gIHZhciBERUZBVUxUX1BSRVNFVFMgPSBbCi0gICAge3RpdGxlOiAnV2ViIGRldmVsb3BlcicsCi0gICAgICBjYXRlZ29yeUZpbHRlcjogWydibGluaycsICdjYycsICduZXRsb2cnLCAncmVuZGVyZXIuc2NoZWR1bGVyJywKLSAgICAgICAgJ3RvcGxldmVsJywgJ3Y4J119LAotICAgIHt0aXRsZTogJ0lucHV0IGxhdGVuY3knLAotICAgICAgY2F0ZWdvcnlGaWx0ZXI6IFsnYmVuY2htYXJrJywgJ2lucHV0JywgJ2V2ZGV2JywgJ3JlbmRlcmVyLnNjaGVkdWxlcicsCi0gICAgICAgICd0b3BsZXZlbCddfSwKLSAgICB7dGl0bGU6ICdSZW5kZXJpbmcnLAotICAgICAgY2F0ZWdvcnlGaWx0ZXI6IFsnYmxpbmsnLCAnY2MnLCAnZ3B1JywgJ3RvcGxldmVsJ119LAotICAgIHt0aXRsZTogJ0phdmFzY3JpcHQgYW5kIHJlbmRlcmluZycsCi0gICAgICBjYXRlZ29yeUZpbHRlcjogWydibGluaycsICdjYycsICdncHUnLCAncmVuZGVyZXIuc2NoZWR1bGVyJywgJ3Y4JywKLSAgICAgICAgJ3RvcGxldmVsJ119LAotICAgIHt0aXRsZTogJ0ZyYW1lIFZpZXdlcicsCi0gICAgICBjYXRlZ29yeUZpbHRlcjogWydibGluaycsICdjYycsICdncHUnLCAncmVuZGVyZXIuc2NoZWR1bGVyJywgJ3Y4JywKLSAgICAgICAgJ3RvcGxldmVsJywKLSAgICAgICAgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnLAotICAgICAgICAnZGlzYWJsZWQtYnktZGVmYXVsdC1jYy5kZWJ1Zy5waWN0dXJlJ119LAotICAgIHt0aXRsZTogJ01hbnVhbGx5IHNlbGVjdCBzZXR0aW5ncycsCi0gICAgICBjYXRlZ29yeUZpbHRlcjogW119Ci0gIF07Ci0gIHZhciBSRUNPUkRJTkdfTU9ERVMgPSBbCi0gICAgICB7J2xhYmVsJzogJ1JlY29yZCB1bnRpbCBmdWxsJywKLSAgICAgICAgJ3ZhbHVlJzogJ3JlY29yZC11bnRpbC1mdWxsJ30sCi0gICAgICB7J2xhYmVsJzogJ1JlY29yZCBjb250aW51b3VzbHknLAotICAgICAgICAndmFsdWUnOiAncmVjb3JkLWNvbnRpbnVvdXNseSd9LAotICAgICAgeydsYWJlbCc6ICdSZWNvcmQgYXMgbXVjaCBhcyBwb3NzaWJsZScsCi0gICAgICAgICd2YWx1ZSc6ICdyZWNvcmQtYXMtbXVjaC1hcy1wb3NzaWJsZSd9XTsKLSAgdmFyIERFRkFVTFRfUkVDT1JEX01PREUgPSAncmVjb3JkLXVudGlsLWZ1bGwnOwotICB2YXIgREVGQVVMVF9DT05USU5VT1VTX1RSQUNJTkcgPSB0cnVlOwotICB2YXIgREVGQVVMVF9TWVNURU1fVFJBQ0lORyA9IGZhbHNlOwotICB2YXIgREVGQVVMVF9TQU1QTElOR19UUkFDSU5HID0gZmFsc2U7Ci0KLSAgUmVjb3JkU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmIudWkuT3ZlcmxheS5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0ci5iLnVpLk92ZXJsYXkucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7Ci0gICAgICB0aGlzLnRpdGxlID0gJ1JlY29yZCBhIG5ldyB0cmFjZS4uLic7Ci0KLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgncmVjb3JkLWRpYWxvZy1vdmVybGF5Jyk7Ci0KLSAgICAgIHZhciBub2RlID0gdHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjcmVjb3JkLXNlbGVjdGlvbi1kaWFsb2ctdGVtcGxhdGUnLAotICAgICAgICAgIFRISVNfRE9DKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobm9kZSk7Ci0KLSAgICAgIHRoaXMucmVjb3JkQnV0dG9uRWxfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAgICB0aGlzLnJlY29yZEJ1dHRvbkVsXy50ZXh0Q29udGVudCA9ICdSZWNvcmQnOwotICAgICAgdGhpcy5yZWNvcmRCdXR0b25FbF8uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnY2xpY2snLAotICAgICAgICAgIHRoaXMub25SZWNvcmRCdXR0b25DbGlja2VkXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMucmVjb3JkQnV0dG9uRWxfLnN0eWxlLmZvbnRTaXplID0gJzExMCUnOwotICAgICAgdGhpcy5idXR0b25zLmFwcGVuZENoaWxkKHRoaXMucmVjb3JkQnV0dG9uRWxfKTsKLQotICAgICAgdGhpcy5jYXRlZ29yaWVzVmlld18gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5jYXRlZ29yaWVzLWNvbHVtbi12aWV3Jyk7Ci0gICAgICB0aGlzLnByZXNldHNFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5jYXRlZ29yeS1wcmVzZXRzJyk7Ci0gICAgICB0aGlzLnByZXNldHNFbF8uYXBwZW5kQ2hpbGQodHIuYi51aS5jcmVhdGVPcHRpb25Hcm91cCgKLSAgICAgICAgICB0aGlzLCAnY3VycmVudGx5Q2hvc2VuUHJlc2V0JywKLSAgICAgICAgICAnYWJvdXRfdHJhY2luZy5yZWNvcmRfc2VsZWN0aW9uX2RpYWxvZ19wcmVzZXQnLAotICAgICAgICAgIERFRkFVTFRfUFJFU0VUU1swXS5jYXRlZ29yeUZpbHRlciwKLSAgICAgICAgICBERUZBVUxUX1BSRVNFVFMubWFwKGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBwLnRpdGxlLCB2YWx1ZTogcC5jYXRlZ29yeUZpbHRlciB9OwotICAgICAgICAgIH0pKSk7Ci0KLSAgICAgIHRoaXMudHJhY2luZ1JlY29yZE1vZGVTbHRyXyA9IHRyLmIudWkuY3JlYXRlU2VsZWN0b3IoCi0gICAgICAgICAgdGhpcywgJ3RyYWNpbmdSZWNvcmRNb2RlJywKLSAgICAgICAgICAncmVjb3JkU2VsZWN0aW9uRGlhbG9nLnRyYWNpbmdSZWNvcmRNb2RlJywKLSAgICAgICAgICBERUZBVUxUX1JFQ09SRF9NT0RFLCBSRUNPUkRJTkdfTU9ERVMpOwotCi0gICAgICB0aGlzLnN5c3RlbVRyYWNpbmdCbl8gPSB0ci5iLnVpLmNyZWF0ZUNoZWNrQm94KAotICAgICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkLAotICAgICAgICAgICdyZWNvcmRTZWxlY3Rpb25EaWFsb2cudXNlU3lzdGVtVHJhY2luZycsIHRydWUsCi0gICAgICAgICAgJ1N5c3RlbSB0cmFjaW5nJyk7Ci0gICAgICB0aGlzLnNhbXBsaW5nVHJhY2luZ0JuXyA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3goCi0gICAgICAgICAgdW5kZWZpbmVkLCB1bmRlZmluZWQsCi0gICAgICAgICAgJ3JlY29yZFNlbGVjdGlvbkRpYWxvZy51c2VTYW1wbGluZycsIGZhbHNlLAotICAgICAgICAgICdTdGF0ZSBzYW1wbGluZycpOwotICAgICAgdGhpcy50cmFjaW5nTW9kZXNDb250YWluZXJFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy50cmFjaW5nLW1vZGVzJyk7Ci0gICAgICB0aGlzLnRyYWNpbmdNb2Rlc0NvbnRhaW5lckVsXy5hcHBlbmRDaGlsZCh0aGlzLnRyYWNpbmdSZWNvcmRNb2RlU2x0cl8pOwotICAgICAgdGhpcy50cmFjaW5nTW9kZXNDb250YWluZXJFbF8uYXBwZW5kQ2hpbGQodGhpcy5zeXN0ZW1UcmFjaW5nQm5fKTsKLSAgICAgIHRoaXMudHJhY2luZ01vZGVzQ29udGFpbmVyRWxfLmFwcGVuZENoaWxkKHRoaXMuc2FtcGxpbmdUcmFjaW5nQm5fKTsKLQotCi0gICAgICB0aGlzLmVuYWJsZWRDYXRlZ29yaWVzQ29udGFpbmVyRWxfID0KLSAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWVuYWJsZWQtY2F0ZWdvcmllcyAuY2F0ZWdvcmllcycpOwotCi0gICAgICB0aGlzLmRpc2FibGVkQ2F0ZWdvcmllc0NvbnRhaW5lckVsXyA9Ci0gICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcuZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzIC5jYXRlZ29yaWVzJyk7Ci0KLSAgICAgIHRoaXMuY3JlYXRlR3JvdXBTZWxlY3RCdXR0b25zXygKLSAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWVuYWJsZWQtY2F0ZWdvcmllcycpKTsKLSAgICAgIHRoaXMuY3JlYXRlR3JvdXBTZWxlY3RCdXR0b25zXygKLSAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMnKSk7Ci0gICAgICB0aGlzLmNyZWF0ZURlZmF1bHREaXNhYmxlZFdhcm5pbmdEaWFsb2dfKAotICAgICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcignLndhcm5pbmctZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzJykpOwotICAgICAgdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8gPSBmYWxzZTsKLQotICAgICAgLy8gVE9ETyhjaHJpc2hlbnJ5KTogV2hlbiB1c2VkIHdpdGggdHIuYi51aS5PdmVybGF5IChzdWNoIGFzIGluCi0gICAgICAvLyBjaHJvbWU6Ly90cmFjaW5nLCB0aGlzIGRvZXMgbm90IHlldCBsb29rIHF1aXRlIHJpZ2h0IGR1ZSB0bwotICAgICAgLy8gdGhlIDEwcHggb3ZlcmxheSBjb250ZW50IHBhZGRpbmcgKGJ1dCBpdCdzIGdvb2QgZW5vdWdoKS4KLSAgICAgIHRoaXMuaW5mb0Jhckdyb3VwXyA9IHRoaXMucXVlcnlTZWxlY3RvcigndHItYi11aS1pbmZvLWJhci1ncm91cCcpOwotCi0gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2libGVDaGFuZ2UnLCB0aGlzLm9uVmlzaWJsZUNoYW5nZV8uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHNldCBzdXBwb3J0c1N5c3RlbVRyYWNpbmcocykgewotICAgICAgaWYgKHMpIHsKLSAgICAgICAgdGhpcy5zeXN0ZW1UcmFjaW5nQm5fLnN0eWxlLmRpc3BsYXkgPSB1bmRlZmluZWQ7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLnN5c3RlbVRyYWNpbmdCbl8uc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgICAgdGhpcy51c2VTeXN0ZW1UcmFjaW5nID0gZmFsc2U7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGdldCB0cmFjaW5nUmVjb3JkTW9kZSgpIHsKLSAgICAgIGlmICh0aGlzLnVzaW5nUHJlc2V0XygpKQotICAgICAgICByZXR1cm4gREVGQVVMVF9SRUNPUkRfTU9ERTsKLSAgICAgIHJldHVybiB0aGlzLnRyYWNpbmdSZWNvcmRNb2RlU2x0cl8uc2VsZWN0ZWRWYWx1ZTsKLSAgICB9LAotICAgIHNldCB0cmFjaW5nUmVjb3JkTW9kZSh2YWx1ZSkgewotICAgICAgdGhpcy50cmFjaW5nUmVjb3JkTW9kZV8gPSB2YWx1ZTsKLSAgICB9LAotCi0gICAgZ2V0IHVzZVN5c3RlbVRyYWNpbmcoKSB7Ci0gICAgICBpZiAodGhpcy51c2luZ1ByZXNldF8oKSkKLSAgICAgICAgcmV0dXJuIERFRkFVTFRfU1lTVEVNX1RSQUNJTkc7Ci0gICAgICByZXR1cm4gdGhpcy5zeXN0ZW1UcmFjaW5nQm5fLmNoZWNrZWQ7Ci0gICAgfSwKLSAgICBzZXQgdXNlU3lzdGVtVHJhY2luZyh2YWx1ZSkgewotICAgICAgdGhpcy5zeXN0ZW1UcmFjaW5nQm5fLmNoZWNrZWQgPSAhIXZhbHVlOwotICAgIH0sCi0KLSAgICBnZXQgdXNlU2FtcGxpbmcoKSB7Ci0gICAgICBpZiAodGhpcy51c2luZ1ByZXNldF8oKSkKLSAgICAgICAgcmV0dXJuIERFRkFVTFRfU0FNUExJTkdfVFJBQ0lORzsKLSAgICAgIHJldHVybiB0aGlzLnNhbXBsaW5nVHJhY2luZ0JuXy5jaGVja2VkOwotICAgIH0sCi0gICAgc2V0IHVzZVNhbXBsaW5nKHZhbHVlKSB7Ci0gICAgICB0aGlzLnNhbXBsaW5nVHJhY2luZ0JuXy5jaGVja2VkID0gISF2YWx1ZTsKLSAgICB9LAotCi0gICAgc2V0IGNhdGVnb3JpZXMoYykgewotICAgICAgdGhpcy5jYXRlZ29yaWVzXyA9IGM7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jYXRlZ29yaWVzXy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgc3BsaXQgPSB0aGlzLmNhdGVnb3JpZXNfW2ldLnNwbGl0KCcsJyk7Ci0gICAgICAgIHRoaXMuY2F0ZWdvcmllc19baV0gPSBzcGxpdC5zaGlmdCgpOwotICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMCkKLSAgICAgICAgICB0aGlzLmNhdGVnb3JpZXNfID0gdGhpcy5jYXRlZ29yaWVzXy5jb25jYXQoc3BsaXQpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBzZXQgc2V0dGluZ3Nfa2V5KGspIHsKLSAgICAgIHRoaXMuc2V0dGluZ3Nfa2V5XyA9IGs7Ci0gICAgfSwKLQotICAgIHNldCBzZXR0aW5ncyhzKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvbnQgdXNlIHRoaXMhJyk7Ci0gICAgfSwKLQotICAgIHVzaW5nUHJlc2V0XzogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jdXJyZW50bHlDaG9zZW5QcmVzZXRfLmxlbmd0aCA+IDAgfHwKLSAgICAgICAgICAgICB0aGlzLmlzUHJlc2V0U2VsZWN0ZWRfOwotICAgIH0sCi0KLSAgICBnZXQgY3VycmVudGx5Q2hvc2VuUHJlc2V0KCkgewotICAgICAgcmV0dXJuIHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0XzsKLSAgICB9LAotCi0gICAgc2V0IGN1cnJlbnRseUNob3NlblByZXNldChwcmVzZXQpIHsKLSAgICAgIGlmICghKHByZXNldCBpbnN0YW5jZW9mIEFycmF5KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWNvcmRTZWxlY3Rpb25EaWFsb2cuY3VycmVudGx5Q2hvc2VuUHJlc2V0OicgKwotICAgICAgICAgICAgJyBwcmVzZXQgbXVzdCBiZSBhbiBhcnJheS4nKTsKLSAgICAgIHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0XyA9IHByZXNldDsKLSAgICAgIHRoaXMuaXNQcmVzZXRTZWxlY3RlZF8gPSBmYWxzZTsKLQotICAgICAgaWYgKHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0Xy5sZW5ndGgpIHsKLSAgICAgICAgdGhpcy5pc1ByZXNldFNlbGVjdGVkXyA9IHRydWU7Ci0gICAgICAgIHRoaXMuY2hhbmdlRWRpdENhdGVnb3JpZXNTdGF0ZV8oZmFsc2UpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy51cGRhdGVDYXRlZ29yeUNvbHVtblZpZXdfKHRydWUpOwotICAgICAgICB0aGlzLmNoYW5nZUVkaXRDYXRlZ29yaWVzU3RhdGVfKHRydWUpOwotICAgICAgfQotICAgICAgdGhpcy51cGRhdGVNYW51YWxTZWxlY3Rpb25WaWV3XygpOwotICAgICAgdGhpcy51cGRhdGVQcmVzZXREZXNjcmlwdGlvbl8oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlTWFudWFsU2VsZWN0aW9uVmlld186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGNsYXNzTGlzdCA9IHRoaXMuY2F0ZWdvcmllc1ZpZXdfLmNsYXNzTGlzdDsKLSAgICAgIGlmICghdGhpcy51c2luZ1ByZXNldF8oKSkgewotICAgICAgICBjbGFzc0xpc3QucmVtb3ZlKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHRoaXMuZWRpdENhdGVnb3JpZXNPcGVuZWRfKQotICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoJ2NhdGVnb3JpZXMtY29sdW1uLXZpZXctaGlkZGVuJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBjbGFzc0xpc3QuYWRkKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpOwotICAgICAgfQotICAgIH0sCi0KLSAgICB1cGRhdGVDYXRlZ29yeUNvbHVtblZpZXdfOiBmdW5jdGlvbihzaG91bGRSZWFkRnJvbVNldHRpbmdzKSB7Ci0gICAgICB2YXIgY2F0ZWdvcnlTZXQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXRlZ29yaWVzJyk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3J5U2V0Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBjYXRlZ29yeUdyb3VwID0gY2F0ZWdvcnlTZXRbaV0uY2hpbGRyZW47Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2F0ZWdvcnlHcm91cC5sZW5ndGg7ICsraikgewotICAgICAgICAgIHZhciBjYXRlZ29yeUVsID0gY2F0ZWdvcnlHcm91cFtqXS5jaGlsZHJlblswXTsKLSAgICAgICAgICBjYXRlZ29yeUVsLmNoZWNrZWQgPSBzaG91bGRSZWFkRnJvbVNldHRpbmdzID8KLSAgICAgICAgICAgICAgdHIuYi5TZXR0aW5ncy5nZXQoY2F0ZWdvcnlFbC52YWx1ZSwgZmFsc2UsIHRoaXMuc2V0dGluZ3Nfa2V5XykgOgotICAgICAgICAgICAgICBmYWxzZTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICBvbkNsaWNrRWRpdENhdGVnb3JpZXM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLnVzaW5nUHJlc2V0XygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGlmICghdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8pIHsKLSAgICAgICAgdGhpcy51cGRhdGVDYXRlZ29yeUNvbHVtblZpZXdfKGZhbHNlKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF8ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICB2YXIgY2F0ZWdvcnlFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKAotICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF9baV0pOwotICAgICAgICAgIGlmICghY2F0ZWdvcnlFbCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIGNhdGVnb3J5RWwuY2hlY2tlZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgdGhpcy5jaGFuZ2VFZGl0Q2F0ZWdvcmllc1N0YXRlXyghdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8pOwotICAgICAgdGhpcy51cGRhdGVNYW51YWxTZWxlY3Rpb25WaWV3XygpOwotICAgICAgdGhpcy5yZWNvcmRCdXR0b25FbF8uZm9jdXMoKTsKLSAgICB9LAotCi0gICAgY2hhbmdlRWRpdENhdGVnb3JpZXNTdGF0ZV86IGZ1bmN0aW9uKGVkaXRDYXRlZ29yaWVzU3RhdGUpIHsKLSAgICAgIHZhciBwcmVzZXRPcHRpb25zR3JvdXAgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5sYWJlbGVkLW9wdGlvbi1ncm91cCcpOwotICAgICAgaWYgKCFwcmVzZXRPcHRpb25zR3JvdXApCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8gPSBlZGl0Q2F0ZWdvcmllc1N0YXRlOwotICAgICAgaWYgKHRoaXMuZWRpdENhdGVnb3JpZXNPcGVuZWRfKQotICAgICAgICAgIHByZXNldE9wdGlvbnNHcm91cC5jbGFzc0xpc3QuYWRkKCdjYXRlZ29yaWVzLWV4cGFuZGVkJyk7Ci0gICAgICBlbHNlCi0gICAgICAgICAgcHJlc2V0T3B0aW9uc0dyb3VwLmNsYXNzTGlzdC5yZW1vdmUoJ2NhdGVnb3JpZXMtZXhwYW5kZWQnKTsKLSAgICB9LAotCi0gICAgdXBkYXRlUHJlc2V0RGVzY3JpcHRpb25fOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcignLmNhdGVnb3J5LWRlc2NyaXB0aW9uJyk7Ci0gICAgICBpZiAodGhpcy51c2luZ1ByZXNldF8oKSkgewotICAgICAgICBkZXNjcmlwdGlvbi5pbm5lclRleHQgPSB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF87Ci0gICAgICAgIGRlc2NyaXB0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NhdGVnb3J5LWRlc2NyaXB0aW9uLWhpZGRlbicpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZGVzY3JpcHRpb24uaW5uZXJUZXh0ID0gJyc7Ci0gICAgICAgIGlmICghZGVzY3JpcHRpb24uY2xhc3NMaXN0LmNvbnRhaW5zKCdjYXRlZ29yeS1kZXNjcmlwdGlvbi1oaWRkZW4nKSkKLSAgICAgICAgICBkZXNjcmlwdGlvbi5jbGFzc0xpc3QuYWRkKCdjYXRlZ29yeS1kZXNjcmlwdGlvbi1oaWRkZW4nKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgY2F0ZWdvcnlGaWx0ZXI6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMudXNpbmdQcmVzZXRfKCkpIHsKLSAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBbXTsKLSAgICAgICAgdmFyIGFsbENhdGVnb3JpZXMgPSB0aGlzLmFsbENhdGVnb3JpZXNfKCk7Ci0gICAgICAgIGZvciAodmFyIGNhdGVnb3J5IGluIGFsbENhdGVnb3JpZXMpIHsKLSAgICAgICAgICB2YXIgZGlzYWJsZWQgPSBjYXRlZ29yeS5pbmRleE9mKCdkaXNhYmxlZC1ieS1kZWZhdWx0LScpID09IDA7Ci0gICAgICAgICAgaWYgKHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0Xy5pbmRleE9mKGNhdGVnb3J5KSA+PSAwKSB7Ci0gICAgICAgICAgICBpZiAoZGlzYWJsZWQpCi0gICAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmICghZGlzYWJsZWQpCi0gICAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaCgnLScgKyBjYXRlZ29yeSk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjYXRlZ29yaWVzLmpvaW4oJywnKTsKLSAgICAgIH0KLQotICAgICAgdmFyIGNhdGVnb3JpZXMgPSB0aGlzLnVuc2VsZWN0ZWRDYXRlZ29yaWVzXygpOwotICAgICAgdmFyIGNhdGVnb3JpZXNfbGVuZ3RoID0gY2F0ZWdvcmllcy5sZW5ndGg7Ci0gICAgICB2YXIgbmVnYXRlZF9jYXRlZ29yaWVzID0gW107Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3JpZXNfbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgLy8gU2tpcCBhbnkgY2F0ZWdvcnkgd2l0aCBhICwgYXMgaXQgd2lsbCBjYXVzZSBpc3N1ZXMgd2hlbiB3ZSBuZWdhdGUuCi0gICAgICAgIC8vIEJvdGggc2lkZXMgc2hvdWxkIGhhdmUgYmVlbiBhZGRlZCBhcyBzZXBhcmF0ZSBjYXRlZ29yaWVzLCB0aGVzZSBjYW4KLSAgICAgICAgLy8gb25seSBjb21lIGZyb20gc2V0dGluZ3MuCi0gICAgICAgIGlmIChjYXRlZ29yaWVzW2ldLm1hdGNoKC8sLykpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG5lZ2F0ZWRfY2F0ZWdvcmllcy5wdXNoKCctJyArIGNhdGVnb3JpZXNbaV0pOwotICAgICAgfQotICAgICAgY2F0ZWdvcmllcyA9IG5lZ2F0ZWRfY2F0ZWdvcmllcy5qb2luKCcsJyk7Ci0KLSAgICAgIHZhciBkaXNhYmxlZENhdGVnb3JpZXMgPSB0aGlzLmVuYWJsZWREaXNhYmxlZEJ5RGVmYXVsdENhdGVnb3JpZXNfKCk7Ci0gICAgICBkaXNhYmxlZENhdGVnb3JpZXMgPSBkaXNhYmxlZENhdGVnb3JpZXMuam9pbignLCcpOwotCi0gICAgICB2YXIgcmVzdWx0cyA9IFtdOwotICAgICAgaWYgKGNhdGVnb3JpZXMgIT09ICcnKQotICAgICAgICByZXN1bHRzLnB1c2goY2F0ZWdvcmllcyk7Ci0gICAgICBpZiAoZGlzYWJsZWRDYXRlZ29yaWVzICE9PSAnJykKLSAgICAgICAgcmVzdWx0cy5wdXNoKGRpc2FibGVkQ2F0ZWdvcmllcyk7Ci0gICAgICByZXR1cm4gcmVzdWx0cy5qb2luKCcsJyk7Ci0gICAgfSwKLQotICAgIGNsaWNrUmVjb3JkQnV0dG9uOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmVjb3JkQnV0dG9uRWxfLmNsaWNrKCk7Ci0gICAgfSwKLQotICAgIG9uUmVjb3JkQnV0dG9uQ2xpY2tlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3JlY29yZGNsaWNrJyk7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIGNvbGxlY3RJbnB1dHNfOiBmdW5jdGlvbihpbnB1dHMsIGlzQ2hlY2tlZCkgewotICAgICAgdmFyIGlucHV0c19sZW5ndGggPSBpbnB1dHMubGVuZ3RoOwotICAgICAgdmFyIGNhdGVnb3JpZXMgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzX2xlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBpbnB1dCA9IGlucHV0c1tpXTsKLSAgICAgICAgaWYgKGlucHV0LmNoZWNrZWQgPT09IGlzQ2hlY2tlZCkKLSAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goaW5wdXQudmFsdWUpOwotICAgICAgfQotICAgICAgcmV0dXJuIGNhdGVnb3JpZXM7Ci0gICAgfSwKLQotICAgIHVuc2VsZWN0ZWRDYXRlZ29yaWVzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgaW5wdXRzID0KLSAgICAgICAgICB0aGlzLmVuYWJsZWRDYXRlZ29yaWVzQ29udGFpbmVyRWxfLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0Jyk7Ci0gICAgICByZXR1cm4gdGhpcy5jb2xsZWN0SW5wdXRzXyhpbnB1dHMsIGZhbHNlKTsKLSAgICB9LAotCi0gICAgZW5hYmxlZERpc2FibGVkQnlEZWZhdWx0Q2F0ZWdvcmllc186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGlucHV0cyA9Ci0gICAgICAgICAgdGhpcy5kaXNhYmxlZENhdGVnb3JpZXNDb250YWluZXJFbF8ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKTsKLSAgICAgIHJldHVybiB0aGlzLmNvbGxlY3RJbnB1dHNfKGlucHV0cywgdHJ1ZSk7Ci0gICAgfSwKLQotICAgIG9uVmlzaWJsZUNoYW5nZV86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMudmlzaWJsZSkKLSAgICAgICAgdGhpcy51cGRhdGVGb3JtXygpOwotICAgIH0sCi0KLSAgICBidWlsZElucHV0c186IGZ1bmN0aW9uKGlucHV0cywgY2hlY2tlZERlZmF1bHQsIHBhcmVudCkgewotICAgICAgdmFyIGlucHV0c19sZW5ndGggPSBpbnB1dHMubGVuZ3RoOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHNfbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGNhdGVnb3J5ID0gaW5wdXRzW2ldOwotCi0gICAgICAgIHZhciBpbnB1dEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKLSAgICAgICAgaW5wdXRFbC50eXBlID0gJ2NoZWNrYm94JzsKLSAgICAgICAgaW5wdXRFbC5pZCA9IGNhdGVnb3J5OwotICAgICAgICBpbnB1dEVsLnZhbHVlID0gY2F0ZWdvcnk7Ci0KLSAgICAgICAgaW5wdXRFbC5jaGVja2VkID0gdHIuYi5TZXR0aW5ncy5nZXQoCi0gICAgICAgICAgICBjYXRlZ29yeSwgY2hlY2tlZERlZmF1bHQsIHRoaXMuc2V0dGluZ3Nfa2V5Xyk7Ci0gICAgICAgIGlucHV0RWwub25jbGljayA9IHRoaXMudXBkYXRlU2V0dGluZ18uYmluZCh0aGlzKTsKLQotICAgICAgICB2YXIgbGFiZWxFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7Ci0gICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBjYXRlZ29yeS5yZXBsYWNlKCdkaXNhYmxlZC1ieS1kZWZhdWx0LScsICcnKTsKLSAgICAgICAgbGFiZWxFbC5zZXRBdHRyaWJ1dGUoJ2ZvcicsIGNhdGVnb3J5KTsKLQotICAgICAgICB2YXIgZGl2RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgZGl2RWwuYXBwZW5kQ2hpbGQoaW5wdXRFbCk7Ci0gICAgICAgIGRpdkVsLmFwcGVuZENoaWxkKGxhYmVsRWwpOwotCi0gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChkaXZFbCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFsbENhdGVnb3JpZXNfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIERlZHVwIHRoZSBjYXRlZ29yaWVzLiBXZSBtYXkgaGF2ZSB0aGluZ3MgaW4gc2V0dGluZ3MgdGhhdCBhcmUgYWxzbwotICAgICAgLy8gcmV0dXJuZWQgd2hlbiB3ZSBxdWVyeSB0aGUgY2F0ZWdvcnkgbGlzdC4KLSAgICAgIHZhciBjYXRlZ29yeVNldCA9IHt9OwotICAgICAgdmFyIGFsbENhdGVnb3JpZXMgPQotICAgICAgICAgIHRoaXMuY2F0ZWdvcmllc18uY29uY2F0KHRyLmIuU2V0dGluZ3Mua2V5cyh0aGlzLnNldHRpbmdzX2tleV8pKTsKLSAgICAgIHZhciBhbGxDYXRlZ29yaWVzTGVuZ3RoID0gYWxsQ2F0ZWdvcmllcy5sZW5ndGg7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbENhdGVnb3JpZXNMZW5ndGg7ICsraSkKLSAgICAgICAgY2F0ZWdvcnlTZXRbYWxsQ2F0ZWdvcmllc1tpXV0gPSB0cnVlOwotICAgICAgcmV0dXJuIGNhdGVnb3J5U2V0OwotICAgIH0sCi0KLSAgICB1cGRhdGVGb3JtXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmVuYWJsZWRDYXRlZ29yaWVzQ29udGFpbmVyRWxfLmlubmVySFRNTCA9ICcnOyAvLyBDbGVhciBvbGQgY2F0ZWdvcmllcwotICAgICAgdGhpcy5kaXNhYmxlZENhdGVnb3JpZXNDb250YWluZXJFbF8uaW5uZXJIVE1MID0gJyc7Ci0KLSAgICAgIHRoaXMucmVjb3JkQnV0dG9uRWxfLmZvY3VzKCk7Ci0KLSAgICAgIHZhciBhbGxDYXRlZ29yaWVzID0gdGhpcy5hbGxDYXRlZ29yaWVzXygpOwotICAgICAgdmFyIGNhdGVnb3JpZXMgPSBbXTsKLSAgICAgIHZhciBkaXNhYmxlZENhdGVnb3JpZXMgPSBbXTsKLSAgICAgIGZvciAodmFyIGNhdGVnb3J5IGluIGFsbENhdGVnb3JpZXMpIHsKLSAgICAgICAgaWYgKGNhdGVnb3J5LmluZGV4T2YoJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtJykgPT0gMCkKLSAgICAgICAgICBkaXNhYmxlZENhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpOwotICAgICAgfQotICAgICAgZGlzYWJsZWRDYXRlZ29yaWVzID0gZGlzYWJsZWRDYXRlZ29yaWVzLnNvcnQoKTsKLSAgICAgIGNhdGVnb3JpZXMgPSBjYXRlZ29yaWVzLnNvcnQoKTsKLQotICAgICAgaWYgKHRoaXMuY2F0ZWdvcmllc18ubGVuZ3RoID09IDApIHsKLSAgICAgICAgdGhpcy5pbmZvQmFyR3JvdXBfLmFkZE1lc3NhZ2UoCi0gICAgICAgICAgICAnTm8gY2F0ZWdvcmllcyBmb3VuZDsgcmVjb3JkaW5nIHdpbGwgdXNlIGRlZmF1bHQgY2F0ZWdvcmllcy4nKTsKLSAgICAgIH0KLQotICAgICAgdGhpcy5idWlsZElucHV0c18oY2F0ZWdvcmllcywgdHJ1ZSwgdGhpcy5lbmFibGVkQ2F0ZWdvcmllc0NvbnRhaW5lckVsXyk7Ci0KLSAgICAgIGlmIChkaXNhYmxlZENhdGVnb3JpZXMubGVuZ3RoID4gMCkgewotICAgICAgICB0aGlzLmRpc2FibGVkQ2F0ZWdvcmllc0NvbnRhaW5lckVsXy5oaWRkZW4gPSBmYWxzZTsKLSAgICAgICAgdGhpcy5idWlsZElucHV0c18oZGlzYWJsZWRDYXRlZ29yaWVzLCBmYWxzZSwKLSAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRDYXRlZ29yaWVzQ29udGFpbmVyRWxfKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgdXBkYXRlU2V0dGluZ186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBjaGVja2JveCA9IGUudGFyZ2V0OwotICAgICAgdHIuYi5TZXR0aW5ncy5zZXQoY2hlY2tib3gudmFsdWUsIGNoZWNrYm94LmNoZWNrZWQsIHRoaXMuc2V0dGluZ3Nfa2V5Xyk7Ci0KLSAgICAgIC8vIENoYW5nZSB0aGUgY3VycmVudCByZWNvcmQgbW9kZSB0byAnTWFudWFsbHkgc2VsZWN0IHNldHRpbmdzJyBmcm9tCi0gICAgICAvLyBwcmVzZXQgbW9kZSBpZiBhbmQgb25seSBpZiBjdXJyZW50bHkgdXNlciBpcyBpbiBwcmVzZXQgcmVjb3JkIG1vZGUKLSAgICAgIC8vIGFuZCB1c2VyIHNlbGVjdHMvZGVzZWxlY3RzIGFueSBjYXRlZ29yeSBpbiAnRWRpdCBDYXRlZ29yaWVzJyBtb2RlLgotICAgICAgaWYgKHRoaXMudXNpbmdQcmVzZXRfKCkpIHsKLSAgICAgICAgaWYgKGNoZWNrYm94LmNoZWNrZWQpIHsKLSAgICAgICAgICB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF8ucHVzaChjaGVja2JveC52YWx1ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIHBvcyA9IHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0Xy5sYXN0SW5kZXhPZihjaGVja2JveC52YWx1ZSk7Ci0gICAgICAgICAgdGhpcy5jdXJyZW50bHlDaG9zZW5QcmVzZXRfLnNwbGljZShwb3MsIDEpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBjYXRlZ29yeUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoCi0gICAgICAgICAgICAnY2F0ZWdvcnktcHJlc2V0LU1hbnVhbGx5LXNlbGVjdC1zZXR0aW5ncycpOwotICAgICAgICBjYXRlZ29yeUVsLmNoZWNrZWQgPSB0cnVlOwotICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5jYXRlZ29yeS1kZXNjcmlwdGlvbicpOwotICAgICAgICBkZXNjcmlwdGlvbi5pbm5lclRleHQgPSAnJzsKLSAgICAgICAgZGVzY3JpcHRpb24uY2xhc3NMaXN0LmFkZCgnY2F0ZWdvcnktZGVzY3JpcHRpb24taGlkZGVuJyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGNyZWF0ZUdyb3VwU2VsZWN0QnV0dG9uc186IGZ1bmN0aW9uKHBhcmVudCkgewotICAgICAgdmFyIGZsaXBJbnB1dHMgPSBmdW5jdGlvbihkaXIpIHsKLSAgICAgICAgdmFyIGlucHV0cyA9IHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIGlmIChpbnB1dHNbaV0uY2hlY2tlZCA9PT0gZGlyKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgLy8gY2xpY2soKSBpcyB1c2VkIHNvIHRoZSBzZXR0aW5ncyB3aWxsIGJlIGNvcnJlY2x0eSBzdG9yZWQuIFNldHRpbmcKLSAgICAgICAgICAvLyBjaGVja2VkIGRvZXMgbm90IHRyaWdnZXIgdGhlIG9uY2xpY2sgKG9yIG9uY2hhbmdlKSBjYWxsYmFjay4KLSAgICAgICAgICBpbnB1dHNbaV0uY2xpY2soKTsKLSAgICAgICAgfQotICAgICAgfTsKLQotICAgICAgdmFyIGFsbEJ0biA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKCcuYWxsLWJ0bicpOwotICAgICAgYWxsQnRuLm9uY2xpY2sgPSBmdW5jdGlvbihldnQpIHsKLSAgICAgICAgZmxpcElucHV0cyh0cnVlKTsKLSAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICB9OwotCi0gICAgICB2YXIgbm9uZUJ0biA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKCcubm9uZS1idG4nKTsKLSAgICAgIG5vbmVCdG4ub25jbGljayA9IGZ1bmN0aW9uKGV2dCkgewotICAgICAgICBmbGlwSW5wdXRzKGZhbHNlKTsKLSAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICB9OwotICAgIH0sCi0KLSAgICBzZXRXYXJuaW5nRGlhbG9nT3ZlcmxheVRleHRfOiBmdW5jdGlvbihtZXNzYWdlcykgewotICAgICAgdmFyIGNvbnRlbnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgbWVzc2FnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBtZXNzYWdlRGl2LnRleHRDb250ZW50ID0gbWVzc2FnZXNbaV07Ci0gICAgICAgIGNvbnRlbnREaXYuYXBwZW5kQ2hpbGQobWVzc2FnZURpdik7Ci0gICAgICB9Ci0gICAgICB0aGlzLndhcm5pbmdPdmVybGF5Xy50ZXh0Q29udGVudCA9ICcnOwotICAgICAgdGhpcy53YXJuaW5nT3ZlcmxheV8uYXBwZW5kQ2hpbGQoY29udGVudERpdik7Ci0gICAgfSwKLQotICAgIGNyZWF0ZURlZmF1bHREaXNhYmxlZFdhcm5pbmdEaWFsb2dfOiBmdW5jdGlvbih3YXJuaW5nTGluaykgewotICAgICAgZnVuY3Rpb24gb25DbGlja0hhbmRsZXIoZXZ0KSB7Ci0gICAgICAgIHRoaXMud2FybmluZ092ZXJsYXlfID0gdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgICAgIHRoaXMud2FybmluZ092ZXJsYXlfLnBhcmVudEVsXyA9IHRoaXM7Ci0gICAgICAgIHRoaXMud2FybmluZ092ZXJsYXlfLnRpdGxlID0gJ1dhcm5pbmcuLi4nOwotICAgICAgICB0aGlzLndhcm5pbmdPdmVybGF5Xy51c2VyQ2FuQ2xvc2UgPSB0cnVlOwotICAgICAgICB0aGlzLndhcm5pbmdPdmVybGF5Xy52aXNpYmxlID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLnNldFdhcm5pbmdEaWFsb2dPdmVybGF5VGV4dF8oWwotICAgICAgICAgICdFbmFibGluZyB0aGUgZGVmYXVsdCBkaXNhYmxlZCBjYXRlZ29yaWVzIG1heSBoYXZlJywKLSAgICAgICAgICAncGVyZm9ybWFuY2UgYW5kIG1lbW9yeSBpbXBhY3Qgd2hpbGUgdHIuYy4nCi0gICAgICAgIF0pOwotCi0gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgfQotICAgICAgd2FybmluZ0xpbmsub25jbGljayA9IG9uQ2xpY2tIYW5kbGVyLmJpbmQodGhpcyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUmVjb3JkU2VsZWN0aW9uRGlhbG9nOiBSZWNvcmRTZWxlY3Rpb25EaWFsb2cKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9zZWxlY3Rpb25fZGlhbG9nX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX3NlbGVjdGlvbl9kaWFsb2dfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjA0YjNjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX3NlbGVjdGlvbl9kaWFsb2dfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9zZWxlY3Rpb25fZGlhbG9nLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NldHRpbmdzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICB0ZXN0KCdpbnN0YW50aXRhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgY2F0ZWdvcmllcyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzA7IGkrKykKLSAgICAgIGNhdGVnb3JpZXMucHVzaCgnY2F0LScgKyBpKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwOyBpKyspCi0gICAgICBjYXRlZ29yaWVzLnB1c2goJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2F0LScgKyBpKTsKLSAgICBjYXRlZ29yaWVzLnB1c2goJ3JlYWxseS1yZWFsbHktcmVhbGx5LXJlYWxseS1yZWFsbHktcmVhbGx5LXZlcnktbG9vbmctY2F0Jyk7Ci0gICAgY2F0ZWdvcmllcy5wdXNoKCdmaXJzdCxzZWNvbmQsdGhpcmQnKTsKLSAgICBjYXRlZ29yaWVzLnB1c2goJ2NjLGRpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnKTsKLQotICAgIHZhciBkbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgIGRsZy5jYXRlZ29yaWVzID0gY2F0ZWdvcmllczsKLSAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2tleSc7Ci0gICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOwotCi0gICAgdmFyIHNob3dCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKLSAgICBzaG93QnV0dG9uLnRleHRDb250ZW50ID0gJ1Nob3cgcmVjb3JkIHNlbGVjdGlvbiBkaWFsb2cnOwotICAgIHNob3dCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7Ci0gICAgICBkbGcudmlzaWJsZSA9IHRydWU7Ci0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0pOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChzaG93QnV0dG9uKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX3NwbGl0Q2F0ZWdvcmllcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgIGRsZy5jYXRlZ29yaWVzID0KLSAgICAgICAgWydjYyxkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZSxjYy5kZWJ1ZycsICd0d28sdGhyZWUnLCAndGhyZWUnXTsKLSAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2tleSc7Ci0gICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOwotICAgIGRsZy51cGRhdGVGb3JtXygpOwotCi0gICAgdmFyIGV4cGVjdGVkID0KLSAgICAgICAgWyciY2MiJywgJyJjYy5kZWJ1ZyInLCAnImRpc2FibGVkLWJ5LWRlZmF1bHQtb25lIicsICcidGhyZWUiJywgJyJ0d28iJ107Ci0KLSAgICB2YXIgbGFiZWxzID0gZGxnLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXRlZ29yaWVzIGlucHV0Jyk7Ci0gICAgdmFyIHJlc3VsdHMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhYmVscy5sZW5ndGg7IGkrKykgewotICAgICAgcmVzdWx0cy5wdXNoKCciJyArIGxhYmVsc1tpXS52YWx1ZSArICciJyk7Ci0gICAgfQotICAgIHJlc3VsdHMgPSByZXN1bHRzLnNvcnQoKTsKLQotICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0cywgZXhwZWN0ZWQpOwotICB9KTsKLQotICB0ZXN0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2dfVXBkYXRlRm9ybV9Ob1NldHRpbmdzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRsZyA9IG5ldyB0ci5lLmFib3V0X3RyYWNpbmcuUmVjb3JkU2VsZWN0aW9uRGlhbG9nKCk7Ci0gICAgZGxnLmNhdGVnb3JpZXMgPSBbJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJywgJ3R3bycsICd0aHJlZSddOwotICAgIGRsZy5zZXR0aW5nc19rZXkgPSAna2V5JzsKLSAgICBkbGcuY3VycmVudGx5Q2hvc2VuUHJlc2V0ID0gW107Ci0gICAgZGxnLnVwZGF0ZUZvcm1fKCk7Ci0KLSAgICB2YXIgY2hlY2tib3hlcyA9IGRsZy5xdWVyeVNlbGVjdG9yQWxsKCcuY2F0ZWdvcmllcyBpbnB1dCcpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMF0uaWQsICd0aHJlZScpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzBdLnZhbHVlLCAndGhyZWUnKTsKLSAgICBhc3NlcnQuaXNUcnVlKGNoZWNrYm94ZXNbMF0uY2hlY2tlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMV0uaWQsICd0d28nKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1sxXS52YWx1ZSwgJ3R3bycpOwotICAgIGFzc2VydC5pc1RydWUoY2hlY2tib3hlc1sxXS5jaGVja2VkKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1syXS5pZCwgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMl0udmFsdWUsICdkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZScpOwotICAgIGFzc2VydC5pc0ZhbHNlKGNoZWNrYm94ZXNbMl0uY2hlY2tlZCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICcnKTsKLQotICAgIHZhciBsYWJlbHMgPSBkbGcucXVlcnlTZWxlY3RvckFsbCgnLmNhdGVnb3JpZXMgbGFiZWwnKTsKLSAgICBhc3NlcnQuZXF1YWwobGFiZWxzLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGxhYmVsc1swXS50ZXh0Q29udGVudCwgJ3RocmVlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGxhYmVsc1sxXS50ZXh0Q29udGVudCwgJ3R3bycpOwotICAgIGFzc2VydC5lcXVhbChsYWJlbHNbMl0udGV4dENvbnRlbnQsICdvbmUnKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX1VwZGF0ZUZvcm1fU2V0dGluZ3MnLCBmdW5jdGlvbigpIHsKLSAgICB0ci5iLlNldHRpbmdzLnNldCgndHdvJywgdHJ1ZSwgJ2NhdGVnb3JpZXMnKTsKLSAgICB0ci5iLlNldHRpbmdzLnNldCgndGhyZWUnLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKTsKLQotICAgIHZhciBkbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgIGRsZy5jYXRlZ29yaWVzID0gWydkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZSddOwotICAgIGRsZy5zZXR0aW5nc19rZXkgPSAnY2F0ZWdvcmllcyc7Ci0gICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOwotICAgIGRsZy51cGRhdGVGb3JtXygpOwotCi0gICAgdmFyIGNoZWNrYm94ZXMgPSBkbGcucXVlcnlTZWxlY3RvckFsbCgnLmNhdGVnb3JpZXMgaW5wdXQnKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlcy5sZW5ndGgsIDMpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzBdLmlkLCAndGhyZWUnKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1swXS52YWx1ZSwgJ3RocmVlJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoY2hlY2tib3hlc1swXS5jaGVja2VkKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1sxXS5pZCwgJ3R3bycpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzFdLnZhbHVlLCAndHdvJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjaGVja2JveGVzWzFdLmNoZWNrZWQpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzJdLmlkLCAnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1syXS52YWx1ZSwgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoY2hlY2tib3hlc1syXS5jaGVja2VkKTsKLQotICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJy10aHJlZScpOwotCi0gICAgdmFyIGxhYmVscyA9IGRsZy5xdWVyeVNlbGVjdG9yQWxsKCcuY2F0ZWdvcmllcyBsYWJlbCcpOwotICAgIGFzc2VydC5lcXVhbChsYWJlbHMubGVuZ3RoLCAzKTsKLSAgICBhc3NlcnQuZXF1YWwobGFiZWxzWzBdLnRleHRDb250ZW50LCAndGhyZWUnKTsKLSAgICBhc3NlcnQuZXF1YWwobGFiZWxzWzFdLnRleHRDb250ZW50LCAndHdvJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGxhYmVsc1syXS50ZXh0Q29udGVudCwgJ29uZScpOwotICB9KTsKLQotICB0ZXN0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2dfVXBkYXRlRm9ybV9EaXNhYmxlZEJ5RGVmYXVsdCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgIGRsZy5jYXRlZ29yaWVzID0gWydkaXNhYmxlZC1ieS1kZWZhdWx0LWJhcicsICdiYXonXTsKLSAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOwotICAgIGRsZy5jdXJyZW50bHlDaG9zZW5QcmVzZXQgPSBbXTsKLSAgICBkbGcudXBkYXRlRm9ybV8oKTsKLQotICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJycpOwotCi0gICAgdmFyIGlucHV0cyA9Ci0gICAgICAgIGRsZy5xdWVyeVNlbGVjdG9yKCdpbnB1dCNkaXNhYmxlZC1ieS1kZWZhdWx0LWJhcicpLmNsaWNrKCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICdkaXNhYmxlZC1ieS1kZWZhdWx0LWJhcicpOwotCi0gICAgYXNzZXJ0LmlzRmFsc2UoCi0gICAgICAgIHRyLmIuU2V0dGluZ3MuZ2V0KCdkaXNhYmxlZC1ieS1kZWZhdWx0LWZvbycsIGZhbHNlLCAnY2F0ZWdvcmllcycpKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2VsZWN0QWxsJywgZnVuY3Rpb24oKSB7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3R3bycsIHRydWUsICdjYXRlZ29yaWVzJyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJyk7Ci0KLSAgICB2YXIgZGxnID0gbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5SZWNvcmRTZWxlY3Rpb25EaWFsb2coKTsKLSAgICBkbGcuY2F0ZWdvcmllcyA9IFsnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnXTsKLSAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOwotICAgIGRsZy5jdXJyZW50bHlDaG9zZW5QcmVzZXQgPSBbXTsKLSAgICBkbGcudXBkYXRlRm9ybV8oKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2VsZWN0Tm9uZScsIGZ1bmN0aW9uKCkgewotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0d28nLCB0cnVlLCAnY2F0ZWdvcmllcycpOwotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0aHJlZScsIGZhbHNlLCAnY2F0ZWdvcmllcycpOwotCi0gICAgdmFyIGRsZyA9IG5ldyB0ci5lLmFib3V0X3RyYWNpbmcuUmVjb3JkU2VsZWN0aW9uRGlhbG9nKCk7Ci0gICAgZGxnLmNhdGVnb3JpZXMgPSBbJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJ107Ci0gICAgZGxnLnNldHRpbmdzX2tleSA9ICdjYXRlZ29yaWVzJzsKLSAgICBkbGcuY3VycmVudGx5Q2hvc2VuUHJlc2V0ID0gW107Ci0gICAgZGxnLnVwZGF0ZUZvcm1fKCk7Ci0KLSAgICAvLyBFbmFibGVzIHRoZSB0aHJlZSBvcHRpb24sIHR3byBhbHJlYWR5IGVuYWJsZWQuCi0gICAgZGxnLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWVuYWJsZWQtY2F0ZWdvcmllcyAuYWxsLWJ0bicpLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLCAnJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0ci5iLlNldHRpbmdzLmdldCgndGhyZWUnLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKSk7Ci0KLSAgICAvLyBEaXNhYmxlcyB0aHJlZSBhbmQgdHdvLgotICAgIGRsZy5xdWVyeVNlbGVjdG9yKCcuZGVmYXVsdC1lbmFibGVkLWNhdGVnb3JpZXMgLm5vbmUtYnRuJykuY2xpY2soKTsKLSAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICctdGhyZWUsLXR3bycpOwotICAgIGFzc2VydC5pc0ZhbHNlKHRyLmIuU2V0dGluZ3MuZ2V0KCd0d28nLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodHIuYi5TZXR0aW5ncy5nZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJykpOwotCi0gICAgLy8gVHVybiBjYXRlZ29yaWVzIGJhY2sgb24gc28gdGhleSBjYW4gYmUgaWdub3JlZC4KLSAgICBkbGcucXVlcnlTZWxlY3RvcignLmRlZmF1bHQtZW5hYmxlZC1jYXRlZ29yaWVzIC5hbGwtYnRuJykuY2xpY2soKTsKLQotICAgIC8vIEVuYWJsZXMgZGlzYWJsZWQgY2F0ZWdvcnkuCi0gICAgZGxnLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMgLmFsbC1idG4nKS5jbGljaygpOwotICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSgKLSAgICAgICAgdHIuYi5TZXR0aW5ncy5nZXQoJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJywgZmFsc2UsICdjYXRlZ29yaWVzJykpOwotCi0gICAgLy8gVHVybiBkaXNhYmxlZCBieSBkZWZhdWx0IGJhY2sgb2ZmLgotICAgIGRsZy5xdWVyeVNlbGVjdG9yKCcuZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzIC5ub25lLWJ0bicpLmNsaWNrKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLCAnJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoCi0gICAgICAgIHRyLmIuU2V0dGluZ3MuZ2V0KCdkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZScsIGZhbHNlLCAnY2F0ZWdvcmllcycpKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX25vUHJlc2V0JywgZnVuY3Rpb24oKSB7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ2Fib3V0X3RyYWNpbmcucmVjb3JkX3NlbGVjdGlvbl9kaWFsb2dfcHJlc2V0JywgW10pOwotICAgIHZhciBkbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgIGFzc2VydC5pc0ZhbHNlKGRsZy51c2luZ1ByZXNldF8oKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZ19kZWZhdWx0UHJlc2V0JywgZnVuY3Rpb24oKSB7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3R3bycsIHRydWUsICdjYXRlZ29yaWVzJyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJyk7Ci0KLSAgICB2YXIgZGxnID0gbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5SZWNvcmRTZWxlY3Rpb25EaWFsb2coKTsKLSAgICBkbGcuY2F0ZWdvcmllcyA9IFsnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnXTsKLSAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOwotICAgIC8vIE5vdGU6IGN1cnJlbnRseUNob3NlblByZXNldCBpcyBub3Qgc2V0IGhlcmUsIHNvIHRoZSBkZWZhdWx0IGlzIHVzZWQuCi0gICAgZGxnLnVwZGF0ZUZvcm1fKCk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIGRlZmF1bHQgZmlsdGVyIGlzIHJldHVybmVkLgotICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJy10aHJlZSwtdHdvJyk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIGRlZmF1bHQgdHJhY2luZyB0eXBlcyBhcmUgcmV0dXJuZWQuCi0gICAgYXNzZXJ0LmVxdWFsKGRsZy50cmFjaW5nUmVjb3JkTW9kZSwgJ3JlY29yZC11bnRpbC1mdWxsJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoZGxnLnVzZVN5c3RlbVRyYWNpbmcpOwotICAgIGFzc2VydC5pc0ZhbHNlKGRsZy51c2VTYW1wbGluZyk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIG1hbnVhbCBzZXR0aW5ncyBhcmUgbm90IHZpc2libGUuCi0gICAgdmFyIGNsYXNzTGlzdCA9IGRsZy5jYXRlZ29yaWVzVmlld18uY2xhc3NMaXN0OwotICAgIGFzc2VydC5pc1RydWUoY2xhc3NMaXN0LmNvbnRhaW5zKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpKTsKLQotICAgIC8vIFZlcmlmeSBtYW51YWwgc2V0dGluZ3MgZG8gbm90IG1vZGlmeSB0aGUgY2hlY2tib3hlcy4KLSAgICB2YXIgY2hlY2tib3hlcyA9IGRsZy5xdWVyeVNlbGVjdG9yQWxsKCcuY2F0ZWdvcmllcyBpbnB1dCcpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMF0uaWQsICd0aHJlZScpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzBdLnZhbHVlLCAndGhyZWUnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShjaGVja2JveGVzWzBdLmNoZWNrZWQpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzFdLmlkLCAndHdvJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMV0udmFsdWUsICd0d28nKTsKLSAgICBhc3NlcnQuaXNUcnVlKGNoZWNrYm94ZXNbMV0uY2hlY2tlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMl0uaWQsICdkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZScpOwotICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzJdLnZhbHVlLCAnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShjaGVja2JveGVzWzJdLmNoZWNrZWQpOwotICB9KTsKLQotICB0ZXN0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2dfY2hhbmdlUHJlc2V0cycsIGZ1bmN0aW9uKCkgewotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0d28nLCB0cnVlLCAnY2F0ZWdvcmllcycpOwotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0aHJlZScsIGZhbHNlLCAnY2F0ZWdvcmllcycpOwotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdkaXNhYmxlZC1ieS1kZWZhdWx0LWNjLmRlYnVnJywgdHJ1ZSwgJ2NhdGVnb3JpZXMnKTsKLSAgICB0ci5iLlNldHRpbmdzLnNldCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nLnRyYWNpbmdSZWNvcmRNb2RlJywKLSAgICAgICAgJ3JlY29yZC1hcy1tdWNoLWFzLXBvc3NpYmxlJyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZy51c2VTeXN0ZW1UcmFjaW5nJywgdHJ1ZSk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZy51c2VTYW1wbGluZycsIGZhbHNlKTsKLQotICAgIHZhciBkbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgIGRsZy5jYXRlZ29yaWVzID0gWydkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZSddOwotICAgIGRsZy5zZXR0aW5nc19rZXkgPSAnY2F0ZWdvcmllcyc7Ci0gICAgLy8gTm90ZTogY3VycmVudGx5Q2hvc2VuUHJlc2V0IGlzIG5vdCBzZXQgaGVyZSwgc28gdGhlIGRlZmF1bHQgaXMgdXNlZC4KLSAgICBkbGcudXBkYXRlRm9ybV8oKTsKLQotICAgIC8vIFByZXNldCBtb2RlIGlzIG9uLgotICAgIGFzc2VydC5pc1RydWUoZGxnLnVzaW5nUHJlc2V0XygpKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgZGVmYXVsdCBmaWx0ZXIgaXMgcmV0dXJuZWQuCi0gICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLAotICAgICAgICAnLXRocmVlLC10d28nKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgZGVmYXVsdCB0cmFjaW5nIHR5cGVzIGFyZSByZXR1cm5lZC4KLSAgICBhc3NlcnQuZXF1YWwoZGxnLnRyYWNpbmdSZWNvcmRNb2RlLCAncmVjb3JkLXVudGlsLWZ1bGwnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShkbGcudXNlU3lzdGVtVHJhY2luZyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoZGxnLnVzZVNhbXBsaW5nKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgbWFudWFsIHNldHRpbmdzIGFyZSBub3QgdmlzaWJsZS4KLSAgICB2YXIgY2xhc3NMaXN0ID0gZGxnLmNhdGVnb3JpZXNWaWV3Xy5jbGFzc0xpc3Q7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShjbGFzc0xpc3QuY29udGFpbnMoJ2NhdGVnb3JpZXMtY29sdW1uLXZpZXctaGlkZGVuJykpOwotCi0gICAgLy8gU3dpdGNoIHRvIG1hbnVhbCBzZXR0aW5ncyBhbmQgdmVyaWZ5IHRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgbm90IHJldHVybmVkLgotICAgIGRsZy5jdXJyZW50bHlDaG9zZW5QcmVzZXQgPSBbXTsKLQotICAgIC8vIFByZXNldCBtb2RlIGlzIG9mZi4KLSAgICBhc3NlcnQuaXNGYWxzZShkbGcudXNpbmdQcmVzZXRfKCkpOwotCi0gICAgLy8gTWFrZSBzdXJlIHRoZSBkZWZhdWx0IGZpbHRlciBpcyByZXR1cm5lZC4KLSAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICctdGhyZWUsZGlzYWJsZWQtYnktZGVmYXVsdC1jYy5kZWJ1ZycpOwotCi0gICAgLy8gTWFrZSBzdXJlIHRoZSB0cmFjaW5nIHR5cGVzIHNldCBieSBjYXRhbG9nIGFyZSByZXR1cm5lZC4KLSAgICBhc3NlcnQuZXF1YWwoZGxnLnRyYWNpbmdSZWNvcmRNb2RlLCAncmVjb3JkLWFzLW11Y2gtYXMtcG9zc2libGUnKTsKLSAgICBhc3NlcnQuaXNUcnVlKGRsZy51c2VTeXN0ZW1UcmFjaW5nKTsKLSAgICBhc3NlcnQuaXNGYWxzZShkbGcudXNlU2FtcGxpbmcpOwotICAgIGFzc2VydC5pc0ZhbHNlKGNsYXNzTGlzdC5jb250YWlucygnY2F0ZWdvcmllcy1jb2x1bW4tdmlldy1oaWRkZW4nKSk7Ci0KLSAgICAvLyBTd2l0Y2ggdG8gdGhlIGdyYXBoaWNzLCByZW5kZXJpbmcsIGFuZCByYXN0ZXJpemF0aW9uIHByZXNldC4KLSAgICBkbGcuY3VycmVudGx5Q2hvc2VuUHJlc2V0ID0gWydibGluaycsICdjYycsICdyZW5kZXJlcicsCi0gICAgICAnZGlzYWJsZWQtYnktZGVmYXVsdC1jYy5kZWJ1ZyddOwotICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwKLSAgICAgICAgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcsLXRocmVlLC10d28nKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX3NhdmVkUHJlc2V0JywgZnVuY3Rpb24oKSB7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3R3bycsIHRydWUsICdjYXRlZ29yaWVzJyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZy50cmFjaW5nUmVjb3JkTW9kZScsCi0gICAgICAgICdyZWNvcmQtY29udGludW91c2x5Jyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZy51c2VTeXN0ZW1UcmFjaW5nJywgdHJ1ZSk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZy51c2VTYW1wbGluZycsIHRydWUpOwotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0ci5lLmFib3V0X3RyYWNpbmcucmVjb3JkX3NlbGVjdGlvbl9kaWFsb2dfcHJlc2V0JywKLSAgICAgICAgWydibGluaycsICdjYycsICdyZW5kZXJlcicsICdjYy5kZWJ1ZyddKTsKLQotICAgIHZhciBkbGcgPSBuZXcgdHIuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOwotICAgIGRsZy5jYXRlZ29yaWVzID0gWydkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZSddOwotICAgIGRsZy5zZXR0aW5nc19rZXkgPSAnY2F0ZWdvcmllcyc7Ci0gICAgZGxnLnVwZGF0ZUZvcm1fKCk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIGNvcnJlY3QgZmlsdGVyIGlzIHJldHVybmVkLgotICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJy10aHJlZSwtdHdvJyk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIGNvcnJlY3QgdHJhY2luZyB0eXBlcyBhcmUgcmV0dXJuZWQuCi0gICAgYXNzZXJ0LmVxdWFsKGRsZy50cmFjaW5nUmVjb3JkTW9kZSwgJ3JlY29yZC11bnRpbC1mdWxsJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoZGxnLnVzZVN5c3RlbVRyYWNpbmcpOwotICAgIGFzc2VydC5pc0ZhbHNlKGRsZy51c2VTYW1wbGluZyk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIG1hbnVhbCBzZXR0aW5ncyBhcmUgbm90IHZpc2libGUuCi0gICAgdmFyIGNsYXNzTGlzdCA9IGRsZy5jYXRlZ29yaWVzVmlld18uY2xhc3NMaXN0OwotICAgIGFzc2VydC5pc1RydWUoY2xhc3NMaXN0LmNvbnRhaW5zKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpKTsKLQotICAgIC8vIFN3aXRjaCB0byBtYW51YWwgc2V0dGluZ3MgYW5kIHZlcmlmeSB0aGUgZGVmYXVsdCB2YWx1ZXMgYXJlIG5vdCByZXR1cm5lZC4KLSAgICBkbGcuY3VycmVudGx5Q2hvc2VuUHJlc2V0ID0gW107Ci0gICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLCAnLXRocmVlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGRsZy50cmFjaW5nUmVjb3JkTW9kZSwgJ3JlY29yZC1jb250aW51b3VzbHknKTsKLSAgICBhc3NlcnQuaXNUcnVlKGRsZy51c2VTeXN0ZW1UcmFjaW5nKTsKLSAgICBhc3NlcnQuaXNUcnVlKGRsZy51c2VTYW1wbGluZyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoY2xhc3NMaXN0LmNvbnRhaW5zKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpKTsKLSAgfSk7Ci0KLSAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX2NhdGVnb3J5RmlsdGVycycsIGZ1bmN0aW9uKCkgewotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdkZWZhdWx0MScsIHRydWUsICdjYXRlZ29yaWVzJyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ2Rpc2FibGVkMScsIGZhbHNlLCAnY2F0ZWdvcmllcycpOwotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdkaXNhYmxlZC1ieS1kZWZhdWx0LWNjLmRpc2FibGVkMicsIGZhbHNlLCAnY2F0ZWdvcmllcycpOwotICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdpbnB1dCcsIHRydWUsICdjYXRlZ29yaWVzJyk7Ci0gICAgdHIuYi5TZXR0aW5ncy5zZXQoJ2JsaW5rJywgdHJ1ZSwgJ2NhdGVnb3JpZXMnKTsKLSAgICB0ci5iLlNldHRpbmdzLnNldCgnY2MnLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKTsKLSAgICB0ci5iLlNldHRpbmdzLnNldCgnZGlzYWJsZWQtYnktZGVmYXVsdC1jYy5kZWJ1ZycsIHRydWUsICdjYXRlZ29yaWVzJyk7Ci0KLSAgICB2YXIgZGxnID0gbmV3IHRyLmUuYWJvdXRfdHJhY2luZy5SZWNvcmRTZWxlY3Rpb25EaWFsb2coKTsKLSAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOwotICAgIGRsZy5jYXRlZ29yaWVzID0gW107Ci0gICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOwotICAgIGRsZy51cGRhdGVGb3JtXygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLAotICAgICAgICAnLWNjLC1kaXNhYmxlZDEsZGlzYWJsZWQtYnktZGVmYXVsdC1jYy5kZWJ1ZycpOwotCi0gICAgLy8gU3dpdGNoIHRvIHRoZSBncmFwaGljcywgcmVuZGVyaW5nLCBhbmQgcmFzdGVyaXphdGlvbiBwcmVzZXQuCi0gICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFsnYmxpbmsnLCAnY2MnLCAncmVuZGVyZXInLAotICAgICAgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnXTsKLSAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksCi0gICAgICAgICctZGVmYXVsdDEsZGlzYWJsZWQtYnktZGVmYXVsdC1jYy5kZWJ1ZywtZGlzYWJsZWQxLC1pbnB1dCcpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDViNjkwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcvdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuYWJvdXRfdHJhY2luZycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQ29tbXVuaWNhdGVzIHdpdGggY29udGVudC9icm93c2VyL3RyYWNpbmdfY29udHJvbGxlcl9pbXBsLmNjCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKSB7IH0KLQotICBUcmFjaW5nQ29udHJvbGxlckNsaWVudC5wcm90b3R5cGUgPSB7Ci0gICAgYmVnaW5Nb25pdG9yaW5nOiBmdW5jdGlvbihtb25pdG9yaW5nT3B0aW9ucykgeyB9LAotICAgIGVuZE1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeyB9LAotICAgIGNhcHR1cmVNb25pdG9yaW5nOiBmdW5jdGlvbigpIHsgfSwKLSAgICBnZXRNb25pdG9yaW5nU3RhdHVzOiBmdW5jdGlvbigpIHsgfSwKLSAgICBnZXRDYXRlZ29yaWVzOiBmdW5jdGlvbigpIHsgfSwKLSAgICBiZWdpblJlY29yZGluZzogZnVuY3Rpb24ocmVjb3JkaW5nT3B0aW9ucykgeyB9LAotICAgIGJlZ2luR2V0QnVmZmVyUGVyY2VudEZ1bGw6IGZ1bmN0aW9uKCkgeyB9LAotICAgIGVuZFJlY29yZGluZzogZnVuY3Rpb24oKSB7IH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFRyYWNpbmdDb250cm9sbGVyQ2xpZW50OiBUcmFjaW5nQ29udHJvbGxlckNsaWVudAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcveGhyX2Jhc2VkX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Fib3V0X3RyYWNpbmcveGhyX2Jhc2VkX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBiM2Q5NC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hYm91dF90cmFjaW5nL3hocl9iYXNlZF90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvYWJvdXRfdHJhY2luZy90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5hYm91dF90cmFjaW5nJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIGJlZ2luWGhyKG1ldGhvZCwgcGF0aCwgZGF0YSkgewotICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpCi0gICAgICBkYXRhID0gbnVsbDsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICBpZiAobWV0aG9kICE9ICdQT1NUJyAmJiBkYXRhICE9PSBudWxsKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vbi1QT1NUIHNob3VsZCBoYXZlIGRhdGE9PW51bGwnKTsKLSAgICAgIHJlcS5vcGVuKG1ldGhvZCwgcGF0aCwgdHJ1ZSk7Ci0gICAgICByZXEub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oZSkgewotICAgICAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT0gNCkgewotICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKHJlcS5zdGF0dXMgPT0gMjAwICYmIHJlcS5yZXNwb25zZVRleHQgIT0gJyMjRVJST1IjIycpIHsKLSAgICAgICAgICAgICAgcmVzb2x2ZShyZXEucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0Vycm9yIG9jY3VyZWQgYXQgJyArIHBhdGgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LCAwKTsKLSAgICAgICAgfQotICAgICAgfTsKLSAgICAgIHJlcS5zZW5kKGRhdGEpOwotICAgIH0pOwotICB9Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gWGhyQmFzZWRUcmFjaW5nQ29udHJvbGxlckNsaWVudCgpIHsgfQotCi0gIFhockJhc2VkVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuZS5hYm91dF90cmFjaW5nLlRyYWNpbmdDb250cm9sbGVyQ2xpZW50LnByb3RvdHlwZSwKLQotICAgIGJlZ2luTW9uaXRvcmluZzogZnVuY3Rpb24obW9uaXRvcmluZ09wdGlvbnMpIHsKLSAgICAgIHZhciBtb25pdG9yaW5nT3B0aW9uc0I2NCA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkobW9uaXRvcmluZ09wdGlvbnMpKTsKLSAgICAgIHJldHVybiBiZWdpblhocignR0VUJywgJy9qc29uL2JlZ2luX21vbml0b3Jpbmc/JyArIG1vbml0b3JpbmdPcHRpb25zQjY0KTsKLSAgICB9LAotCi0gICAgZW5kTW9uaXRvcmluZzogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gYmVnaW5YaHIoJ0dFVCcsICcvanNvbi9lbmRfbW9uaXRvcmluZycpOwotICAgIH0sCi0KLSAgICBjYXB0dXJlTW9uaXRvcmluZzogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gYmVnaW5YaHIoJ0dFVCcsICcvanNvbi9jYXB0dXJlX21vbml0b3JpbmcnKTsKLSAgICB9LAotCi0gICAgZ2V0TW9uaXRvcmluZ1N0YXR1czogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gYmVnaW5YaHIoJ0dFVCcsICcvanNvbi9nZXRfbW9uaXRvcmluZ19zdGF0dXMnKS50aGVuKAotICAgICAgICAgIGZ1bmN0aW9uKG1vbml0b3JpbmdPcHRpb25zQjY0KSB7Ci0gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShhdG9iKG1vbml0b3JpbmdPcHRpb25zQjY0KSk7Ci0gICAgICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGdldENhdGVnb3JpZXM6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIGJlZ2luWGhyKCdHRVQnLCAnL2pzb24vY2F0ZWdvcmllcycpLnRoZW4oCi0gICAgICAgICAgZnVuY3Rpb24oanNvbikgewotICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoanNvbik7Ci0gICAgICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGJlZ2luUmVjb3JkaW5nOiBmdW5jdGlvbihyZWNvcmRpbmdPcHRpb25zKSB7Ci0gICAgICB2YXIgcmVjb3JkaW5nT3B0aW9uc0I2NCA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkocmVjb3JkaW5nT3B0aW9ucykpOwotICAgICAgcmV0dXJuIGJlZ2luWGhyKCdHRVQnLCAnL2pzb24vYmVnaW5fcmVjb3JkaW5nPycgKwotICAgICAgICAgICAgICAgICAgICAgIHJlY29yZGluZ09wdGlvbnNCNjQpOwotICAgIH0sCi0KLSAgICBiZWdpbkdldEJ1ZmZlclBlcmNlbnRGdWxsOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiBiZWdpblhocignR0VUJywgJy9qc29uL2dldF9idWZmZXJfcGVyY2VudF9mdWxsJyk7Ci0gICAgfSwKLQotICAgIGVuZFJlY29yZGluZzogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gYmVnaW5YaHIoJ0dFVCcsICcvanNvbi9lbmRfcmVjb3JkaW5nJyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgWGhyQmFzZWRUcmFjaW5nQ29udHJvbGxlckNsaWVudDogWGhyQmFzZWRUcmFjaW5nQ29udHJvbGxlckNsaWVudAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnkuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjczZWM3Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zdGF0aXN0aWNzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3BpZV9jaGFydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9zb3J0YWJsZV90YWJsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9zdW5idXJzdF9jaGFydC5odG1sIj4KLQotPHRlbXBsYXRlIGlkPSJ4LXNhbXBsZS1zdW1tYXJ5LXBhbmVsLXRlbXBsYXRlIj4KLSAgPHN0eWxlPgotICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsIHsKLSAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgICBwYWRkaW5nOiA1cHg7Ci0gICAgfQotICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC10b29sYmFyIHsKLSAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOwotICAgIH0KLQotICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1sZWZ0LXBhbmVsIHsKLSAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgIHdpZHRoOiA2MTBweDsKLSAgICAgIGxlZnQ6IDA7Ci0gICAgICB0b3A6IDA7Ci0gICAgICBoZWlnaHQ6IDYxMHB4OwotICAgICAgcGFkZGluZzogNXB4OwotICAgIH0KLQotICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1sZWZ0LXBhbmVsID4gcmVzdWx0LWFyZWEgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICB3aWR0aDogNjEwcHg7Ci0gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICBsZWZ0OiAwOwotICAgICAgdG9wOiAwOwotICAgICAgaGVpZ2h0OiA2MTBweDsKLSAgICB9Ci0KLSAgICAueC1zYW1wbGUtc3VtbWFyeS1wYW5lbCA+IHgtbGVmdC1wYW5lbCA+IHgtZXhwbGFuYXRpb24gewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICB0b3A6IDMwMHB4OwotICAgICAgbGVmdDogMjUwcHg7Ci0gICAgICB3aWR0aDogMTAwcHg7Ci0gICAgICBoZWlnaHQ6IDEwMHB4OwotICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwotICAgICAgdmVydGljYWwtYWxpZ246bWlkZGxlOwotICAgICAgY29sb3I6ICM2NjY7Ci0gICAgICBmb250LXNpemU6IDEycHg7Ci0gICAgfQotCi0gICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsIHsKLSAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgbWluLWhlaWdodDogNjEwcHg7Ci0gICAgICBtYXJnaW4tbGVmdDogNjEwcHg7Ci0gICAgICBwYWRkaW5nOiA1cHg7Ci0gICAgfQotCi0gICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsIHRkIHsKLSAgICAgIGNvbG9yOiAjZmZmOwotICAgICAgcGFkZGluZzogMXB4IDVweDsKLSAgICAgIGZvbnQtc2l6ZTogMS4wZW07Ci0gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwotICAgIH0KLQotICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1yaWdodC1wYW5lbCA+IHgtc2VxdWVuY2UgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICBvdmVyZmxvdzogYXV0bzsKLSAgICAgIHdpZHRoOiA2MDBweDsKLSAgICAgIGhlaWdodDogNDAwcHg7Ci0gICAgICBmb250LXNpemU6IDE0cHg7Ci0gICAgICBtYXJnaW46IDEwcHg7Ci0gICAgfQotCi0gICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsID4geC1zZXF1ZW5jZSB0YWJsZSB7Ci0gICAgICBtaW4td2lkdGg6IDYwMHB4OwotICAgIH0KLQotICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1yaWdodC1wYW5lbCA+IHgtY2FsbGVlcyB7Ci0gICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgIHdpZHRoOiA2MDBweDsKLSAgICAgIGhlaWdodDogYXV0bzsKLSAgICAgIG92ZXJmbG93OiBhdXRvOwotICAgICAgZm9udC1zaXplOiAxNHB4OwotICAgICAgbWFyZ2luOiAxMHB4OwotICAgIH0KLQotICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1yaWdodC1wYW5lbCA+IHgtY2FsbGVlcyAueC1jb2wtbnVtZXJpYyB7Ci0gICAgICB3aWR0aDogMzBweDsKLSAgICB9Ci0KLSAgICAueC1zYW1wbGUtc3VtbWFyeS1wYW5lbCA+IHgtcmlnaHQtcGFuZWwgPiB4LWNhbGxlZXMgLngtdGQtbnVtZXJpYyB7Ci0gICAgICB0ZXh0LWFsaWduOiByaWdodDsKLSAgICB9Ci0KLSAgICAueC1zYW1wbGUtc3VtbWFyeS1wYW5lbCA+IHgtcmlnaHQtcGFuZWwgPiB4LWNhbGxlZXMgdGFibGUgewotICAgICAgbWluLXdpZHRoOiA2MDBweDsKLSAgICAgIG1heC13aWR0aDogNjAwcHg7Ci0gICAgfQotCi0gICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsID4geC1jYWxsZWVzIHsKLSAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgb3ZlcmZsb3c6IGF1dG87Ci0gICAgICBoZWlnaHQ6IDMwMHB4OwotICAgIH0KLQotICA8L3N0eWxlPgotCi0gIDx4LXRvb2xiYXI+PC94LXRvb2xiYXI+Ci0gIDx4LWxlZnQtcGFuZWw+Ci0gICAgPHJlc3VsdC1hcmVhPjwvcmVzdWx0LWFyZWE+Ci0gICAgPHgtZXhwbGFuYXRpb24+PC94LWV4cGxhbmF0aW9uPgotICA8L3gtbGVmdC1wYW5lbD4KLSAgPHgtcmlnaHQtcGFuZWw+Ci0gICAgPHgtc2VxdWVuY2U+PC94LXNlcXVlbmNlPgotICAgIDx4LWNhbGxlZXM+PC94LWNhbGxlZXM+Ci0gIDwveC1yaWdodC1wYW5lbD4KLTwvdGVtcGxhdGU+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKLQotICB2YXIgUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50ID0gdHIuYy5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ7Ci0gIHZhciBnZXRDb2xvck9mS2V5ID0gdHIuYi51aS5nZXRDb2xvck9mS2V5OwotCi0gIC8qKgotICAgICogQGNvbnN0cnVjdG9yCi0gICAgKi8KLSAgdmFyIENhbGxUcmVlTm9kZSA9IGZ1bmN0aW9uKG5hbWUsIGNhdGVnb3J5KSB7Ci0gICAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5uYW1lID0gbmFtZTsKLSAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnk7Ci0gICAgdGhpcy5zZWxmVGltZSA9IDAuMDsKLSAgICB0aGlzLmNoaWxkcmVuID0gW107Ci0KLSAgICAvLyBEZWZpbmVkIG9ubHkgZm9yIGxlYWYgbm9kZXMsIGxlYWZfbm9kZV9pZCBjb3JyZXNwb25kcyB0bwotICAgIC8vIHRoZSBpZCBvZiB0aGUgbGVhZiBzdGFjayBmcmFtZS4KLSAgICB0aGlzLmxlYWZfbm9kZV9pZCA9IHVuZGVmaW5lZDsKLSAgfTsKLQotICBDYWxsVHJlZU5vZGUucHJvdG90eXBlID0gewotICAgIGFkZENoaWxkOiBmdW5jdGlvbihub2RlKSB7Ci0gICAgICB0aGlzLmNoaWxkcmVuLnB1c2gobm9kZSk7Ci0gICAgICBub2RlLnBhcmVudCA9IHRoaXM7Ci0gICAgfQotICB9OwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBUaHJlYWQgPSBmdW5jdGlvbih0aHJlYWQpIHsKLSAgICB0aGlzLnRocmVhZCA9IHRocmVhZDsKLSAgICB0aGlzLnJvb3ROb2RlID0gbmV3IENhbGxUcmVlTm9kZSgncm9vdCcsICdyb290Jyk7Ci0gICAgdGhpcy5yb290Q2F0ZWdvcmllcyA9IHt9OwotICAgIHRoaXMuc2ZUb05vZGUgPSB7fTsKLSAgICB0aGlzLnNmVG9Ob2RlWydfX3Jvb3QnXSA9IHNlbGYucm9vdE5vZGU7Ci0gIH07Ci0KLSAgVGhyZWFkLnByb3RvdHlwZSA9IHsKLSAgICBnZXRDYWxsVHJlZU5vZGU6IGZ1bmN0aW9uKHN0YWNrRnJhbWUpIHsKLSAgICAgIGlmIChzdGFja0ZyYW1lLmlkIGluIHRoaXMuc2ZUb05vZGUpCi0gICAgICAgIHJldHVybiB0aGlzLnNmVG9Ob2RlW3N0YWNrRnJhbWUuaWRdOwotCi0gICAgICAvLyBDcmVhdGUgJiBzYXZlIHRoZSBub2RlLgotICAgICAgdmFyIG5ld05vZGUgPSBuZXcgQ2FsbFRyZWVOb2RlKHN0YWNrRnJhbWUudGl0bGUsIHN0YWNrRnJhbWUuY2F0ZWdvcnkpOwotICAgICAgdGhpcy5zZlRvTm9kZVtzdGFja0ZyYW1lLmlkXSA9IG5ld05vZGU7Ci0KLSAgICAgIC8vIEFkZCBub2RlIHRvIHBhcmVudCB0cmVlIG5vZGUuCi0gICAgICBpZiAoc3RhY2tGcmFtZS5wYXJlbnRGcmFtZSkgewotICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IHRoaXMuZ2V0Q2FsbFRyZWVOb2RlKHN0YWNrRnJhbWUucGFyZW50RnJhbWUpOwotCi0gICAgICAgIHBhcmVudE5vZGUuYWRkQ2hpbGQobmV3Tm9kZSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAvLyBDcmVhdGluZyBhIHJvb3QgY2F0ZWdvcnkgbm9kZSBmb3IgZWFjaCBjYXRlZ29yeSBoZWxwcyBncm91cCBzYW1wbGVzCi0gICAgICAgIC8vIHRoYXQgbWF5IGJlIG1pc3NpbmcgY2FsbCBzdGFja3MuCi0gICAgICAgIHZhciByb290Q2F0ZWdvcnkgPSB0aGlzLnJvb3RDYXRlZ29yaWVzW3N0YWNrRnJhbWUuY2F0ZWdvcnldOwotICAgICAgICBpZiAoIXJvb3RDYXRlZ29yeSkgewotICAgICAgICAgIHJvb3RDYXRlZ29yeSA9Ci0gICAgICAgICAgICAgIG5ldyBDYWxsVHJlZU5vZGUoc3RhY2tGcmFtZS5jYXRlZ29yeSwgc3RhY2tGcmFtZS5jYXRlZ29yeSk7Ci0gICAgICAgICAgdGhpcy5yb290Tm9kZS5hZGRDaGlsZChyb290Q2F0ZWdvcnkpOwotICAgICAgICAgIHRoaXMucm9vdENhdGVnb3JpZXNbc3RhY2tGcmFtZS5jYXRlZ29yeV0gPSByb290Q2F0ZWdvcnk7Ci0gICAgICAgIH0KLSAgICAgICAgcm9vdENhdGVnb3J5LmFkZENoaWxkKG5ld05vZGUpOwotICAgICAgfQotICAgICAgcmV0dXJuIG5ld05vZGU7Ci0gICAgfSwKLQotICAgIGFkZFNhbXBsZTogZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICB2YXIgbGVhZl9ub2RlID0gdGhpcy5nZXRDYWxsVHJlZU5vZGUoc2FtcGxlLmxlYWZTdGFja0ZyYW1lKTsKLSAgICAgIGxlYWZfbm9kZS5sZWFmX25vZGVfaWQgPSBzYW1wbGUubGVhZlN0YWNrRnJhbWUuaWQ7Ci0gICAgICBsZWFmX25vZGUuc2VsZlRpbWUgKz0gc2FtcGxlLndlaWdodDsKLSAgICB9Ci0gIH07Ci0KLSAgZnVuY3Rpb24gZ2VuQ2FsbFRyZWUobm9kZSwgaXNSb290KSB7Ci0gICAgdmFyIHJldCA9IHsKLSAgICAgIGNhdGVnb3J5OiBub2RlLmNhdGVnb3J5LAotICAgICAgbmFtZTogbm9kZS5uYW1lLAotICAgICAgbGVhZl9ub2RlX2lkOiBub2RlLmxlYWZfbm9kZV9pZAotICAgIH07Ci0KLSAgICBpZiAoaXNSb290IHx8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkgewotICAgICAgcmV0LmNoaWxkcmVuID0gW107Ci0gICAgICBmb3IgKHZhciBjID0gMDsgYyA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBjKyspCi0gICAgICAgIHJldC5jaGlsZHJlbi5wdXNoKGdlbkNhbGxUcmVlKG5vZGUuY2hpbGRyZW5bY10sIGZhbHNlKSk7Ci0gICAgICBpZiAobm9kZS5zZWxmVGltZSA+IDAuMCkgewotICAgICAgICAvLyBzYXksIGNhbGxlciAocikgY2FsbHMgY2FsbGVlIChlKSB3aGljaCBjYWxscyBjYWxsZWUyICgyKQotICAgICAgICAvLyBhbmQgZm9sbG93aW5nIGFyZSB0aGUgc2FtcGxlcwotICAgICAgICAvLyByIHIgciByIHIgciByCi0gICAgICAgIC8vICAgZSBlIGUKLSAgICAgICAgLy8gICAyIDIgMgotICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHIgaGFzIGEgbm9uLXplcm8gc2VsZiB0aW1lICg0IHNhbXBsZXMgdG8gYmUgcHJlY2lzZSkKLSAgICAgICAgLy8gVGhlIDxzZWxmPiBub2RlIG1ha2VzIHRoZSByZXByZXNlbnRhdGlvbiByZXNlbWJsZSB0aGUgZm9sbG93aW5nCi0gICAgICAgIC8vIHdoZXJlIHMgZGVub3RlcyB0aGUgc2VsZnRpbWUuCi0gICAgICAgIC8vIHIgciByIHIgciByIHIKLSAgICAgICAgLy8gcyBlIGUgZSBzIHMgcwotICAgICAgICAvLyAgIDIgMiAyCi0gICAgICAgIC8vCi0gICAgICAgIC8vIEFtb25nIHRoZSBvYnZpb3VzIHZpc3VhbGl6YXRpb24gYmVuZWZpdCwgdGhpcyBhbHNvIGNyZWF0ZXMgdGhlCi0gICAgICAgIC8vIGludmFyaWFuY2UgdGhhdCBhIG5vZGUgY2FuIG5vdCBzaW11bHRhbmVvdXNseSBoYXZlIHNhbXBsZXMgYW5kCi0gICAgICAgIC8vIGNoaWxkcmVuLgotICAgICAgICByZXQuY2hpbGRyZW4ucHVzaCh7Ci0gICAgICAgICAgbmFtZTogJzxzZWxmPicsCi0gICAgICAgICAgY2F0ZWdvcnk6IHJldC5jYXRlZ29yeSwKLSAgICAgICAgICBzaXplOiBub2RlLnNlbGZUaW1lLAotICAgICAgICAgIGxlYWZfbm9kZV9pZDogbm9kZS5sZWFmX25vZGVfaWQKLSAgICAgICAgfSk7Ci0gICAgICAgIGRlbGV0ZSByZXQubGVhZl9ub2RlX2lkOyAgLy8gcmV0IGlzIG5vdCBhIGxlYWYgbm9kZSBhbnltb3JlLgotICAgICAgfQotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgIHJldC5zaXplID0gbm9kZS5zZWxmVGltZTsKLSAgICB9Ci0gICAgaWYgKGlzUm9vdCkKLSAgICAgIHJldHVybiByZXQuY2hpbGRyZW47Ci0gICAgcmV0dXJuIHJldDsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldFNhbXBsZVR5cGVzKHNlbGVjdGlvbikgewotICAgIHZhciBzYW1wbGVEaWN0ID0ge307Ci0gICAgdmFyIHNhbXBsZXMgPSBzZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlCYXNlVHlwZSgpLnNhbXBsZTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNhbXBsZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgIHNhbXBsZURpY3Rbc2FtcGxlc1tpXS50aXRsZV0gPSBudWxsOwotICAgIH0KLSAgICByZXR1cm4gT2JqZWN0LmtleXMoc2FtcGxlRGljdCk7Ci0gIH0KLQotICAvLyBDcmVhdGUgc3VuYnVyc3QgZGF0YSBmcm9tIHRoZSBzZWxlY3Rpb24uCi0gIGZ1bmN0aW9uIGNyZWF0ZVN1bmJ1cnN0RGF0YShzZWxlY3Rpb24sIHNhbXBsZVR5cGUpIHsKLSAgICB2YXIgdGhyZWFkcyA9IHt9OwotICAgIGZ1bmN0aW9uIGdldE9yQ3JlYXRlVGhyZWFkKHRocmVhZCkgewotICAgICAgdmFyIHJldCA9IHVuZGVmaW5lZDsKLSAgICAgIGlmICh0aHJlYWQudGlkIGluIHRocmVhZHMpIHsKLSAgICAgICAgcmV0ID0gdGhyZWFkc1t0aHJlYWQudGlkXTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldCA9IG5ldyBUaHJlYWQodGhyZWFkKTsKLSAgICAgICAgdGhyZWFkc1t0aHJlYWQudGlkXSA9IHJldDsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgLy8gUHJvY2VzcyBzYW1wbGVzLgotICAgIHZhciBzYW1wbGVzID0gc2VsZWN0aW9uLmdldEV2ZW50c09yZ2FuaXplZEJ5QmFzZVR5cGUoKS5zYW1wbGU7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICB2YXIgc2FtcGxlID0gc2FtcGxlc1tpXTsKLSAgICAgIGlmIChzYW1wbGUudGl0bGUgPT0gc2FtcGxlVHlwZSkKLSAgICAgICAgZ2V0T3JDcmVhdGVUaHJlYWQoc2FtcGxlLnRocmVhZCkuYWRkU2FtcGxlKHNhbXBsZSk7Ci0gICAgfQotCi0gICAgLy8gR2VuZXJhdGUgc3VuYnVyc3QgZGF0YS4KLSAgICB2YXIgc3VuYnVyc3REYXRhID0gewotICAgICAgbmFtZTogJzxBbGwgVGhyZWFkcz4nLAotICAgICAgY2F0ZWdvcnk6ICdyb290JywKLSAgICAgIGNoaWxkcmVuOiBbXQotICAgIH07Ci0gICAgZm9yICh2YXIgdCBpbiB0aHJlYWRzKSB7Ci0gICAgICBpZiAoIXRocmVhZHMuaGFzT3duUHJvcGVydHkodCkpIGNvbnRpbnVlOwotICAgICAgdmFyIHRocmVhZCA9IHRocmVhZHNbdF07Ci0gICAgICB2YXIgdGhyZWFkRGF0YSA9IHsKLSAgICAgICAgbmFtZTogJ1RocmVhZCAnICsgdGhyZWFkLnRocmVhZC50aWQgKyAnOiAnICsgdGhyZWFkLnRocmVhZC5uYW1lLAotICAgICAgICBjYXRlZ29yeTogJ1RocmVhZCcsCi0gICAgICAgIGNoaWxkcmVuOiBnZW5DYWxsVHJlZSh0aHJlYWQucm9vdE5vZGUsIHRydWUpCi0gICAgICB9OwotICAgICAgc3VuYnVyc3REYXRhLmNoaWxkcmVuLnB1c2godGhyZWFkRGF0YSk7Ci0gICAgfQotICAgIHJldHVybiBzdW5idXJzdERhdGE7Ci0gIH0KLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgU2FtcGxpbmdTdW1tYXJ5UGFuZWwgPQotICAgICAgdHIuYi51aS5kZWZpbmUoJ3gtc2FtcGxlLXN1bW1hcnktcGFuZWwnKTsKLSAgU2FtcGxpbmdTdW1tYXJ5UGFuZWwudGV4dExhYmVsID0gJ1NhbXBsaW5nIFN1bW1hcnknOwotICBTYW1wbGluZ1N1bW1hcnlQYW5lbC5zdXBwb3J0c01vZGVsID0gZnVuY3Rpb24obSkgewotICAgIGlmIChtID09IHVuZGVmaW5lZCkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSwKLSAgICAgICAgcmVhc29uOiAnVW5rbm93biB0cmFjaW5nIG1vZGVsJwotICAgICAgfTsKLSAgICB9Ci0KLSAgICBpZiAobS5zYW1wbGVzLmxlbmd0aCA9PSAwKSB7Ci0gICAgICByZXR1cm4gewotICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlLAotICAgICAgICByZWFzb246ICdObyBzYW1wbGluZyBkYXRhIGluIHRyYWNlJwotICAgICAgfTsKLSAgICB9Ci0KLSAgICByZXR1cm4gewotICAgICAgc3VwcG9ydGVkOiB0cnVlCi0gICAgfTsKLSAgfTsKLQotICAvLyBSZXR1cm4gYSBkaWN0IHdpdGgga2V5cyBhcyBzdGFjay1mcmFtZSBpZHMKLSAgLy8gYW5kIHZhbHVlcyBhcyBzZWxlY3Rpb24gb2JqZWN0cyB3aGljaCBjb250YWluIGFsbCB0aGUKLSAgLy8gc2FtcGxlcyB3aG9zZSBsZWFmIHN0YWNrLWZyYW1lIGlkIG1hdGNoZXMgdGhlIGtleS4KLSAgZnVuY3Rpb24gZGl2aWRlU2FtcGxlc0Jhc2VkT25MZWFmU3RhY2tGcmFtZShzZWxlY3Rpb24pIHsKLSAgICB2YXIgc3RhY2tGcmFtZUlkVG9TYW1wbGVzID0ge307Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3Rpb24ubGVuZ3RoOyArK2kpIHsKLSAgICAgIHZhciBzYW1wbGUgPSBzZWxlY3Rpb25baV07Ci0gICAgICB2YXIgaWQgPSBzYW1wbGUubGVhZlN0YWNrRnJhbWUuaWQ7Ci0gICAgICBpZiAoIXN0YWNrRnJhbWVJZFRvU2FtcGxlc1tpZF0pCi0gICAgICAgIHN0YWNrRnJhbWVJZFRvU2FtcGxlc1tpZF0gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgIHN0YWNrRnJhbWVJZFRvU2FtcGxlc1tpZF0ucHVzaChzYW1wbGUpOwotICAgIH0KLSAgICByZXR1cm4gc3RhY2tGcmFtZUlkVG9TYW1wbGVzOwotICB9Ci0KLSAgU2FtcGxpbmdTdW1tYXJ5UGFuZWwucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgneC1zYW1wbGUtc3VtbWFyeS1wYW5lbCcpOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoCi0gICAgICAgICAgJyN4LXNhbXBsZS1zdW1tYXJ5LXBhbmVsLXRlbXBsYXRlJywgVEhJU19ET0MpKTsKLQotICAgICAgdGhpcy5zYW1wbGVUeXBlXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuc2FtcGxlVHlwZVNlbGVjdG9yXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuY2hhcnRfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLSAgICAgIHRoaXMuc3RhY2tGcmFtZUlkVG9TYW1wbGVzXyA9IGRpdmlkZVNhbXBsZXNCYXNlZE9uTGVhZlN0YWNrRnJhbWUoCi0gICAgICAgICAgc2VsZWN0aW9uKTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBzYW1wbGVUeXBlKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlVHlwZV87Ci0gICAgfSwKLQotICAgIHNldCBzYW1wbGVUeXBlKHR5cGUpIHsKLSAgICAgIHRoaXMuc2FtcGxlVHlwZV8gPSB0eXBlOwotICAgICAgaWYgKHRoaXMuc2FtcGxlVHlwZVNlbGVjdG9yXykKLSAgICAgICAgdGhpcy5zYW1wbGVUeXBlU2VsZWN0b3JfLnNlbGVjdGVkVmFsdWUgPSB0eXBlOwotICAgICAgdGhpcy51cGRhdGVSZXN1bHRBcmVhXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDYWxsZWVzXzogZnVuY3Rpb24oZCkgewotICAgICAgLy8gVXBkYXRlIGNhbGxlZSB0YWJsZS4KLSAgICAgIHZhciB0aGF0ID0gdGhpczsKLSAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RhYmxlJyk7Ci0KLSAgICAgIC8vIEFkZCBjb2x1bW4gc3R5bGVzLgotICAgICAgdmFyIGNvbDAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2wnKTsKLSAgICAgIHZhciBjb2wxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29sJyk7Ci0gICAgICBjb2wwLmNsYXNzTmFtZSArPSAneC1jb2wtbnVtZXJpYyc7Ci0gICAgICBjb2wxLmNsYXNzTmFtZSArPSAneC1jb2wtbnVtZXJpYyc7Ci0gICAgICB0YWJsZS5hcHBlbmRDaGlsZChjb2wwKTsKLSAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGNvbDEpOwotCi0gICAgICAvLyBBZGQgaGVhZGVycy4KLSAgICAgIHZhciB0aGVhZCA9IHRhYmxlLmNyZWF0ZVRIZWFkKCk7Ci0gICAgICB2YXIgaGVhZGVyUm93ID0gdGhlYWQuaW5zZXJ0Um93KDApOwotICAgICAgaGVhZGVyUm93LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjODg4JzsKLSAgICAgIGhlYWRlclJvdy5pbnNlcnRDZWxsKDApLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdTYW1wbGVzJykpOwotICAgICAgaGVhZGVyUm93Lmluc2VydENlbGwoMSkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1BlcmNlbnQnKSk7Ci0gICAgICBoZWFkZXJSb3cuaW5zZXJ0Q2VsbCgyKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU3ltYm9sJykpOwotCi0gICAgICAvLyBBZGQgYm9keS4KLSAgICAgIHZhciB0Ym9keSA9IHRhYmxlLmNyZWF0ZVRCb2R5KCk7Ci0gICAgICBpZiAoZC5jaGlsZHJlbikgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgYyA9IGQuY2hpbGRyZW5baV07Ci0gICAgICAgICAgdmFyIHJvdyA9IHRib2R5Lmluc2VydFJvdyhpKTsKLSAgICAgICAgICB2YXIgYmdDb2xvciA9IGdldENvbG9yT2ZLZXkoYy5jYXRlZ29yeSk7Ci0gICAgICAgICAgaWYgKGJnQ29sb3IgPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgYmdDb2xvciA9ICcjNDQ0NDQ0JzsKLSAgICAgICAgICByb3cuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmdDb2xvcjsKLSAgICAgICAgICB2YXIgY2VsbDAgPSByb3cuaW5zZXJ0Q2VsbCgwKTsKLSAgICAgICAgICB2YXIgY2VsbDEgPSByb3cuaW5zZXJ0Q2VsbCgxKTsKLSAgICAgICAgICB2YXIgY2VsbDIgPSByb3cuaW5zZXJ0Q2VsbCgyKTsKLSAgICAgICAgICBjZWxsMC5jbGFzc05hbWUgKz0gJ3gtdGQtbnVtZXJpYyc7Ci0gICAgICAgICAgY2VsbDEuY2xhc3NOYW1lICs9ICd4LXRkLW51bWVyaWMnOwotICAgICAgICAgIGNlbGwwLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGMudmFsdWUudG9TdHJpbmcoKSkpOwotICAgICAgICAgIGNlbGwxLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAotICAgICAgICAgICAgICAoMTAwICogYy52YWx1ZSAvIGQudmFsdWUpLnRvRml4ZWQoMikgKyAnJScpKTsKLSAgICAgICAgICBjZWxsMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjLm5hbWUpKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBNYWtlIGl0IHNvcnRhYmxlLgotICAgICAgdHIuYi51aS5Tb3J0YWJsZVRhYmxlLmRlY29yYXRlKHRhYmxlKTsKLQotICAgICAgdmFyIGNhbGxlZUFyZWEgPSB0aGF0LnF1ZXJ5U2VsZWN0b3IoJ3gtY2FsbGVlcycpOwotICAgICAgY2FsbGVlQXJlYS50ZXh0Q29udGVudCA9ICcnOwotICAgICAgY2FsbGVlQXJlYS5hcHBlbmRDaGlsZCh0YWJsZSk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUhpZ2hsaWdodF86IGZ1bmN0aW9uKGQpIHsKLSAgICAgIHZhciB0aGF0ID0gdGhpczsKLQotICAgICAgLy8gVXBkYXRlIGV4cGxhbmF0aW9uLgotICAgICAgdmFyIHBlcmNlbnQgPSAxMDAuMDsKLSAgICAgIGlmICh0aGF0LmNoYXJ0Xy5zZWxlY3RlZE5vZGUgIT0gbnVsbCkKLSAgICAgICAgcGVyY2VudCA9IDEwMC4wICogZC52YWx1ZSAvIHRoYXQuY2hhcnRfLnNlbGVjdGVkTm9kZS52YWx1ZTsKLSAgICAgIHRoYXQucXVlcnlTZWxlY3RvcigneC1leHBsYW5hdGlvbicpLmlubmVySFRNTCA9Ci0gICAgICAgICAgZC52YWx1ZSArICc8YnI+JyArIHBlcmNlbnQudG9GaXhlZCgyKSArICclJzsKLQotICAgICAgLy8gVXBkYXRlIGNhbGwgc3RhY2sgdGFibGUuCi0gICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOwotICAgICAgdmFyIHRoZWFkID0gdGFibGUuY3JlYXRlVEhlYWQoKTsKLSAgICAgIHZhciB0Ym9keSA9IHRhYmxlLmNyZWF0ZVRCb2R5KCk7Ci0gICAgICB2YXIgaGVhZGVyUm93ID0gdGhlYWQuaW5zZXJ0Um93KDApOwotICAgICAgaGVhZGVyUm93LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjODg4JzsKLSAgICAgIGhlYWRlclJvdy5pbnNlcnRDZWxsKDApLmFwcGVuZENoaWxkKAotICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdDYWxsIFN0YWNrJykpOwotCi0gICAgICB2YXIgY2FsbFN0YWNrID0gW107Ci0gICAgICB2YXIgZnJhbWUgPSBkOwotICAgICAgd2hpbGUgKGZyYW1lICYmIGZyYW1lLmlkKSB7Ci0gICAgICAgIGNhbGxTdGFjay5wdXNoKGZyYW1lKTsKLSAgICAgICAgZnJhbWUgPSBmcmFtZS5wYXJlbnQ7Ci0gICAgICB9Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbFN0YWNrLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciByb3cgPSB0Ym9keS5pbnNlcnRSb3coaSk7Ci0gICAgICAgIHZhciBiZ0NvbG9yID0gZ2V0Q29sb3JPZktleShjYWxsU3RhY2tbaV0uY2F0ZWdvcnkpOwotICAgICAgICBpZiAoYmdDb2xvciA9PSB1bmRlZmluZWQpCi0gICAgICAgICAgYmdDb2xvciA9ICcjNDQ0NDQ0JzsKLSAgICAgICAgcm93LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJnQ29sb3I7Ci0gICAgICAgIGlmIChpID09IDApCi0gICAgICAgICAgcm93LnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCc7Ci0gICAgICAgIHJvdy5pbnNlcnRDZWxsKDApLmFwcGVuZENoaWxkKAotICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY2FsbFN0YWNrW2ldLm5hbWUpKTsKLSAgICAgIH0KLQotICAgICAgdmFyIHNlcXVlbmNlQXJlYSA9IHRoYXQucXVlcnlTZWxlY3RvcigneC1zZXF1ZW5jZScpOwotICAgICAgc2VxdWVuY2VBcmVhLnRleHRDb250ZW50ID0gJyc7Ci0gICAgICBzZXF1ZW5jZUFyZWEuYXBwZW5kQ2hpbGQodGFibGUpOwotICAgIH0sCi0KLSAgICBnZXRTYW1wbGVzRnJvbU5vZGVfOiBmdW5jdGlvbihub2RlKSB7Ci0gICAgICAvLyBBIG5vZGUgaGFzIHNhbXBsZXMgYXNzb2NpYXRlZCB3aXRoIGl0LCBpZiBpdCdzIGEgbGVhZiBub2RlLgotICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgaWYgKG5vZGUubGVhZl9ub2RlX2lkICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgc2VsZWN0aW9uLmFkZFNlbGVjdGlvbih0aGlzLnN0YWNrRnJhbWVJZFRvU2FtcGxlc19bbm9kZS5sZWFmX25vZGVfaWRdKTsKLSAgICAgIH0KLSAgICAgIGVsc2UgaWYgKG5vZGUuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fAotICAgICAgICAgICAgICAgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIG5vZGUgc2hvdWxkIGVpdGhlciBoYXZlIHNhbXBsZXMsIG9yIGNoaWxkcmVuJyk7Ci0gICAgICB9Ci0gICAgICBlbHNlIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICAgIHNlbGVjdGlvbi5hZGRTZWxlY3Rpb24odGhpcy5nZXRTYW1wbGVzRnJvbU5vZGVfKG5vZGUuY2hpbGRyZW5baV0pKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBzZWxlY3Rpb247Ci0gICAgfSwKLQotICAgIHVwZGF0ZVJlc3VsdEFyZWFfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbl8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgcmVzdWx0QXJlYSA9IHRoaXMucXVlcnlTZWxlY3RvcigncmVzdWx0LWFyZWEnKTsKLSAgICAgIHRoaXMuY2hhcnRfID0gdW5kZWZpbmVkOwotICAgICAgcmVzdWx0QXJlYS50ZXh0Q29udGVudCA9ICcnOwotCi0gICAgICB2YXIgc3VuYnVyc3REYXRhID0KLSAgICAgICAgICBjcmVhdGVTdW5idXJzdERhdGEodGhpcy5zZWxlY3Rpb25fLCB0aGlzLnNhbXBsZVR5cGVfKTsKLSAgICAgIHRoaXMuY2hhcnRfID0gbmV3IHRyLmIudWkuU3VuYnVyc3RDaGFydCgpOwotICAgICAgdGhpcy5jaGFydF8ud2lkdGggPSA2MDA7Ci0gICAgICB0aGlzLmNoYXJ0Xy5oZWlnaHQgPSA2MDA7Ci0gICAgICB0aGlzLmNoYXJ0Xy5jaGFydFRpdGxlID0gJ1NhbXBsaW5nIFN1bW1hcnknOwotCi0gICAgICB0aGlzLmNoYXJ0Xy5hZGRFdmVudExpc3RlbmVyKCdub2RlLXNlbGVjdGVkJywgKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGhpcy51cGRhdGVDYWxsZWVzXyhlLm5vZGUpOwotICAgICAgfSkuYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuY2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ25vZGUtY2xpY2tlZCcsIChmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhciBldmVudCA9IG5ldyBSZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTsKLSAgICAgICAgdmFyIGRlcHRoID0gZS5ub2RlLmRlcHRoOwotICAgICAgICBpZiAoZS5ub2RlLm5hbWUgPT09ICc8c2VsZj4nKQotICAgICAgICAgIGRlcHRoLS07Ci0gICAgICAgIGV2ZW50LnNlbGVjdGlvbiA9IHRoaXMuZ2V0U2FtcGxlc0Zyb21Ob2RlXyhlLm5vZGUpOwotICAgICAgICBldmVudC5zZWxlY3Rpb24uc3VuYnVyc3Rfem9vbV9sZXZlbCA9IGRlcHRoOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgICAgfSkuYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuY2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ25vZGUtaGlnaGxpZ2h0ZWQnLCAoZnVuY3Rpb24oZSkgewotICAgICAgICB0aGlzLnVwZGF0ZUhpZ2hsaWdodF8oZS5ub2RlKTsKLSAgICAgIH0pLmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLmNoYXJ0Xy5kYXRhID0gewotICAgICAgICBub2Rlczogc3VuYnVyc3REYXRhCi0gICAgICB9OwotCi0gICAgICByZXN1bHRBcmVhLmFwcGVuZENoaWxkKHRoaXMuY2hhcnRfKTsKLSAgICAgIHRoaXMuY2hhcnRfLnNldFNpemUodGhpcy5jaGFydF8uZ2V0TWluU2l6ZSgpKTsKLQotICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXy5zdW5idXJzdF96b29tX2xldmVsICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5jaGFydF8uem9vbVRvRGVwdGgodGhpcy5zZWxlY3Rpb25fLnN1bmJ1cnN0X3pvb21fbGV2ZWwpOwotICAgICAgfQotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuc2VsZWN0aW9uXy5sZW5ndGggPT0gMCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBHZXQgYXZhaWxhYmxlIHNhbXBsZSB0eXBlcyBpbiByYW5nZS4KLSAgICAgIHZhciBzYW1wbGVUeXBlcyA9IGdldFNhbXBsZVR5cGVzKHRoaXMuc2VsZWN0aW9uXyk7Ci0gICAgICBpZiAoc2FtcGxlVHlwZXMuaW5kZXhPZih0aGlzLnNhbXBsZVR5cGVfKSA9PSAtMSkKLSAgICAgICAgdGhpcy5zYW1wbGVUeXBlXyA9IHNhbXBsZVR5cGVzWzBdOwotCi0gICAgICAvLyBDcmVhdGUgc2FtcGxlIHR5cGUgZHJvcGRvd24uCi0gICAgICB2YXIgc2FtcGxlVHlwZU9wdGlvbnMgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2FtcGxlVHlwZXMubGVuZ3RoOyBpKyspCi0gICAgICAgIHNhbXBsZVR5cGVPcHRpb25zLnB1c2goe2xhYmVsOiBzYW1wbGVUeXBlc1tpXSwgdmFsdWU6IHNhbXBsZVR5cGVzW2ldfSk7Ci0KLSAgICAgIHZhciB0b29sYmFyRWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3gtdG9vbGJhcicpOwotICAgICAgdGhpcy5zYW1wbGVUeXBlU2VsZWN0b3JfID0gdHIuYi51aS5jcmVhdGVTZWxlY3RvcigKLSAgICAgICAgICB0aGlzLAotICAgICAgICAgICdzYW1wbGVUeXBlJywKLSAgICAgICAgICAnc2FtcGxpbmdTdW1tYXJ5UGFuZWwuc2FtcGxlVHlwZScsCi0gICAgICAgICAgdGhpcy5zYW1wbGVUeXBlXywKLSAgICAgICAgICBzYW1wbGVUeXBlT3B0aW9ucyk7Ci0gICAgICB0b29sYmFyRWwudGV4dENvbnRlbnQgPSAnU2FtcGxlIFR5cGU6ICc7Ci0gICAgICB0b29sYmFyRWwuYXBwZW5kQ2hpbGQodGhpcy5zYW1wbGVUeXBlU2VsZWN0b3JfKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTYW1wbGluZ1N1bW1hcnlQYW5lbDogU2FtcGxpbmdTdW1tYXJ5UGFuZWwsCi0gICAgY3JlYXRlU3VuYnVyc3REYXRhOiBjcmVhdGVTdW5idXJzdERhdGEKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnlfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODY0OGI0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnlfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFN0YWNrRnJhbWUgPSB0ci5tb2RlbC5TdGFja0ZyYW1lOwotICB2YXIgU2FtcGxlID0gdHIubW9kZWwuU2FtcGxlOwotCi0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0KLSAgZnVuY3Rpb24gY3JlYXRlU2VsZWN0aW9uKCkgewotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOwotICAgIHRocmVhZC5uYW1lID0gJ1RoZSBUaHJlYWQnOwotCi0gICAgdmFyIGZBID0gbmV3IFN0YWNrRnJhbWUodW5kZWZpbmVkLCAwLCAnQ2hyb21lJywgJ2EnLCA3KTsKLSAgICB2YXIgZkFCID0gbmV3IFN0YWNrRnJhbWUoZkEsIDEsICdDaHJvbWUnLCAnYicsIDcpOwotICAgIHZhciBmQUJDID0gbmV3IFN0YWNrRnJhbWUoZkFCLCAyLCAnQ2hyb21lJywgJ2MnLCA3KTsKLSAgICB2YXIgZkFEID0gbmV3IFN0YWNrRnJhbWUoZkEsIDMsICdHUFUgRHJpdmVyJywgJ2QnLCA3KTsKLQotICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIGZBQkMsIDEwKSk7Ci0gICAgc2VsZWN0aW9uLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2N5Y2xlcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCwgZkFCLCAxMCkpOwotICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUsIGZBQiwgMTApKTsKLSAgICBzZWxlY3Rpb24ucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnY3ljbGVzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLCBmQUIsIDEwKSk7Ci0gICAgc2VsZWN0aW9uLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2N5Y2xlcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNSwgZkFELCAxMCkpOwotICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUsIGZBRCwgNSkpOwotICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIGZBRCwgNSkpOwotICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdwYWdlX21pc3NlcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNSwgZkFELCA3KSk7Ci0gICAgc2VsZWN0aW9uLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ3BhZ2VfbWlzc2VzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwLCBmQUQsIDkpKTsKLSAgICByZXR1cm4gc2VsZWN0aW9uOwotICB9Ci0KLSAgdGVzdCgnY3JlYXRlU3VuYnVyc3REYXRhQmFzaWMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcyA9IGNyZWF0ZVNlbGVjdGlvbigpOwotCi0gICAgdmFyIGV4cGVjdCA9IHsKLSAgICAgIG5hbWU6ICc8QWxsIFRocmVhZHM+JywKLSAgICAgIGNhdGVnb3J5OiAncm9vdCcsCi0gICAgICBjaGlsZHJlbjogWwotICAgICAgICB7Ci0gICAgICAgICAgbmFtZTogJ1RocmVhZCAyOiBUaGUgVGhyZWFkJywKLSAgICAgICAgICBjYXRlZ29yeTogJ1RocmVhZCcsCi0gICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAotICAgICAgICAgICAgICBuYW1lOiAnQ2hyb21lJywKLSAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Nocm9tZScsCi0gICAgICAgICAgICAgICAgICBuYW1lOiAnYScsCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAotICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdiJywKLSAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Nocm9tZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdjJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZl9ub2RlX2lkOiAyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxMAotICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJzxzZWxmPicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogMQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnR1BVIERyaXZlcicsCi0gICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2QnLAotICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogMywKLSAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyMAotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgXQotICAgICAgICB9Ci0gICAgICBdCi0gICAgfTsKLQotICAgIHZhciBzdW5idXJzdERhdGEgPSB0ci5lLmFuYWx5c2lzLmNyZWF0ZVN1bmJ1cnN0RGF0YShzLCAnY3ljbGVzJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKEpTT04uc3RyaW5naWZ5KHN1bmJ1cnN0RGF0YSksIEpTT04uc3RyaW5naWZ5KGV4cGVjdCkpOwotICB9KTsKLQotICB0ZXN0KCdwcm9jZXNzT25seVNhbXBsZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB0aHJlYWQubmFtZSA9ICdUaGUgVGhyZWFkJzsKLQotICAgIHZhciBmQSA9IG5ldyBTdGFja0ZyYW1lKHVuZGVmaW5lZCwgMSwgJ0Nocm9tZScsICdhJywgNyk7Ci0gICAgdmFyIGZBQiA9IG5ldyBTdGFja0ZyYW1lKGZBLCAyLCAnQ2hyb21lJywgJ2InLCA3KTsKLSAgICB2YXIgZkFCQyA9IG5ldyBTdGFja0ZyYW1lKGZBQiwgMywgJ0Nocm9tZScsICdjJywgNyk7Ci0gICAgdmFyIGZBRCA9IG5ldyBTdGFja0ZyYW1lKGZBLCA0LCAnR1BVIERyaXZlcicsICdkJywgNyk7Ci0KLSAgICBzZWxlY3Rpb24ucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnY3ljbGVzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLCBmQUJDLCAxMCkpOwotICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAsIGZBQiwgMTApKTsKLSAgICBzZWxlY3Rpb24ucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAncGFnZV9taXNzZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIGZBRCwgOSkpOwotICAgIHZhciBleHBlY3QgPSB7Ci0gICAgICBuYW1lOiAnPEFsbCBUaHJlYWRzPicsCi0gICAgICBjYXRlZ29yeTogJ3Jvb3QnLAotICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgewotICAgICAgICAgIG5hbWU6ICdUaHJlYWQgMjogVGhlIFRocmVhZCcsCi0gICAgICAgICAgY2F0ZWdvcnk6ICdUaHJlYWQnLAotICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKLSAgICAgICAgICAgICAgbmFtZTogJ0Nocm9tZScsCi0gICAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAotICAgICAgICAgICAgICAgICAgbmFtZTogJ2EnLAotICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnR1BVIERyaXZlcicsCi0gICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2QnLAotICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogNCwKLSAgICAgICAgICAgICAgICAgICAgICBzaXplOiA5Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9OwotCi0gICAgLy8gQWxvbmcgd2l0aCB0aGUgc2FtcGxlcywgcHVzaCBzb21lIHNsaWNlcyB0b28uCi0gICAgLy8gVGhlIHBhbmVsIHNob3VsZCBjb21wbGV0ZWx5IGlnbm9yZSB0aGVzZS4KLSAgICBzZWxlY3Rpb24ucHVzaChuZXdTbGljZUV4KHsKLSAgICAgIHR5cGU6IHRyLm1vZGVsLlRocmVhZFNsaWNlLAotICAgICAgdGl0bGU6ICdhJywgc3RhcnQ6IDEsIGR1cmF0aW9uOiAyCi0gICAgfSkpOwotICAgIHNlbGVjdGlvbi5wdXNoKG5ld1NsaWNlRXgoewotICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2UsCi0gICAgICB0aXRsZTogJ2YnLCBzdGFydDogOSwgZHVyYXRpb246IDcKLSAgICB9KSk7Ci0KLSAgICB2YXIgc3VuYnVyc3REYXRhID0gdHIuZS5hbmFseXNpcy5jcmVhdGVTdW5idXJzdERhdGEoCi0gICAgICAgIHNlbGVjdGlvbiwgJ3BhZ2VfbWlzc2VzJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKEpTT04uc3RyaW5naWZ5KHN1bmJ1cnN0RGF0YSksIEpTT04uc3RyaW5naWZ5KGV4cGVjdCkpOwotICB9KTsKLQotICB0ZXN0KCdjcmVhdGVTdW5idXJzdERhdGFTYW1wbGVUeXBlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHMgPSBjcmVhdGVTZWxlY3Rpb24oKTsKLQotICAgIHZhciBleHBlY3QgPSB7Ci0gICAgICBuYW1lOiAnPEFsbCBUaHJlYWRzPicsCi0gICAgICBjYXRlZ29yeTogJ3Jvb3QnLAotICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgewotICAgICAgICAgIG5hbWU6ICdUaHJlYWQgMjogVGhlIFRocmVhZCcsCi0gICAgICAgICAgY2F0ZWdvcnk6ICdUaHJlYWQnLAotICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKLSAgICAgICAgICAgICAgbmFtZTogJ0Nocm9tZScsCi0gICAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAotICAgICAgICAgICAgICAgICAgbmFtZTogJ2EnLAotICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnR1BVIERyaXZlcicsCi0gICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2QnLAotICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogMywKLSAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxNgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgXQotICAgICAgICB9Ci0gICAgICBdCi0gICAgfTsKLQotICAgIHZhciBzdW5idXJzdERhdGEgPSB0ci5lLmFuYWx5c2lzLmNyZWF0ZVN1bmJ1cnN0RGF0YShzLCAncGFnZV9taXNzZXMnKTsKLSAgICBhc3NlcnQuZXF1YWwoSlNPTi5zdHJpbmdpZnkoc3VuYnVyc3REYXRhKSwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0KSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHMgPSBjcmVhdGVTZWxlY3Rpb24oKTsKLQotICAgIHZhciBwYW5lbCA9IG5ldyB0ci5lLmFuYWx5c2lzLlNhbXBsaW5nU3VtbWFyeVBhbmVsKCk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHBhbmVsKTsKLSAgICBwYW5lbC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKLSAgICBwYW5lbC5zZWxlY3Rpb24gPSBzOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXBwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXBwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMjhjOWMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX2FwcC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9mcmFtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZV91dGlscy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IENsYXNzIGZvciBtYW5hZ2luZyBhbmRyb2lkLXNwZWNpZmljIG1vZGVsIG1ldGEgZGF0YSwKLSAqIHN1Y2ggYXMgcmVuZGVyaW5nIGFwcHMsIGFuZCBmcmFtZXMgcmVuZGVyZWQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmF1ZGl0cycsIGZ1bmN0aW9uKCkgewotICB2YXIgRnJhbWUgPSB0ci5tb2RlbC5GcmFtZTsKLSAgdmFyIFN0YXRpc3RpY3MgPSB0ci5iLlN0YXRpc3RpY3M7Ci0KLSAgdmFyIFVJX1RIUkVBRF9EUkFXX05BTUVTID0gewotICAgICdwZXJmb3JtVHJhdmVyc2Fscyc6IHRydWUsCi0gICAgJ0Nob3Jlb2dyYXBoZXIjZG9GcmFtZSc6IHRydWUKLSAgfTsKLSAgdmFyIFJFTkRFUl9USFJFQURfRFJBV19OQU1FID0gJ0RyYXdGcmFtZSc7Ci0gIHZhciBSRU5ERVJfVEhSRUFEX0lOREVQX0RSQVdfTkFNRSA9ICdkb0ZyYW1lJzsKLSAgdmFyIFRIUkVBRF9TWU5DX05BTUUgPSAnc3luY0ZyYW1lU3RhdGUnOwotCi0gIGZ1bmN0aW9uIGdldFNsaWNlc0ZvclRocmVhZFRpbWVSYW5nZXModGhyZWFkVGltZVJhbmdlcykgewotICAgIHZhciByZXQgPSBbXTsKLSAgICB0aHJlYWRUaW1lUmFuZ2VzLmZvckVhY2goZnVuY3Rpb24odGhyZWFkVGltZVJhbmdlKSB7Ci0gICAgICB2YXIgc2xpY2VzID0gW107Ci0KLSAgICAgIHRocmVhZFRpbWVSYW5nZS50aHJlYWQuc2xpY2VHcm91cC5pdGVyU2xpY2VzSW5UaW1lUmFuZ2UoCi0gICAgICAgIGZ1bmN0aW9uKHNsaWNlKSB7IHNsaWNlcy5wdXNoKHNsaWNlKTsgfSwKLSAgICAgICAgdGhyZWFkVGltZVJhbmdlLnN0YXJ0LCB0aHJlYWRUaW1lUmFuZ2UuZW5kKTsKLSAgICAgIHJldC5wdXNoLmFwcGx5KHJldCwgc2xpY2VzKTsKLSAgICB9KTsKLSAgICByZXR1cm4gcmV0OwotICB9Ci0KLSAgZnVuY3Rpb24gbWFrZUZyYW1lKHRocmVhZFRpbWVSYW5nZXMsIHN1cmZhY2VGbGluZ2VyKSB7Ci0gICAgdmFyIGFyZ3MgPSB7fTsKLSAgICBpZiAoc3VyZmFjZUZsaW5nZXIgJiYgc3VyZmFjZUZsaW5nZXIuaGFzVnN5bmNzKSB7Ci0gICAgICB2YXIgc3RhcnQgPSBTdGF0aXN0aWNzLm1pbih0aHJlYWRUaW1lUmFuZ2VzLAotICAgICAgICAgIGZ1bmN0aW9uKHRocmVhZFRpbWVSYW5nZXMpIHsgcmV0dXJuIHRocmVhZFRpbWVSYW5nZXMuc3RhcnQ7IH0pOwotICAgICAgYXJnc1snZGVhZGxpbmUnXSA9IHN1cmZhY2VGbGluZ2VyLmdldEZyYW1lRGVhZGxpbmUoc3RhcnQpOwotICAgICAgYXJnc1snZnJhbWVLaWNrb2ZmJ10gPSBzdXJmYWNlRmxpbmdlci5nZXRGcmFtZUtpY2tvZmYoc3RhcnQpOwotICAgIH0KLSAgICB2YXIgZXZlbnRzID0gZ2V0U2xpY2VzRm9yVGhyZWFkVGltZVJhbmdlcyh0aHJlYWRUaW1lUmFuZ2VzKTsKLSAgICByZXR1cm4gbmV3IEZyYW1lKGV2ZW50cywgdGhyZWFkVGltZVJhbmdlcywgYXJncyk7Ci0gIH0KLQotICBmdW5jdGlvbiBmaW5kT3ZlcmxhcHBpbmdEcmF3RnJhbWUocmVuZGVyVGhyZWFkLCB0aW1lKSB7Ci0gICAgaWYgKCFyZW5kZXJUaHJlYWQpCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgdmFyIHNsaWNlcyA9IHJlbmRlclRocmVhZC5zbGljZUdyb3VwLnNsaWNlczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOwotICAgICAgaWYgKHNsaWNlLnRpdGxlID09IFJFTkRFUl9USFJFQURfRFJBV19OQU1FICYmCi0gICAgICAgICAgc2xpY2Uuc3RhcnQgPD0gdGltZSAmJgotICAgICAgICAgIHRpbWUgPD0gc2xpY2UuZW5kKSB7Ci0gICAgICAgIHJldHVybiBzbGljZTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgfQotCi0gIC8qKgotICAgKiBCdWlsZHMgYW4gYXJyYXkgb2Yge3N0YXJ0LCBlbmR9IHJhbmdlcyBncm91cGluZyBjb21tb24gd29yayBvZiBhIGZyYW1lCi0gICAqIHRoYXQgb2NjdXJzIGp1c3QgYmVmb3JlIHBlcmZvcm1UcmF2ZXJzYWxzKCkuCi0gICAqCi0gICAqIE9ubHkgbmVjZXNzYXJ5IGJlZm9yZSBDaG9yZW9ncmFwaGVyI2RvRnJhbWUgdHJhY2luZyBleGlzdGVkLgotICAgKi8KLSAgZnVuY3Rpb24gZ2V0UHJlVHJhdmVyc2FsV29ya1Jhbmdlcyh1aVRocmVhZCkgewotICAgIGlmICghdWlUaHJlYWQpCi0gICAgICByZXR1cm4gW107Ci0KLSAgICAvLyBnYXRoZXIgYWxsIGZyYW1lIHdvcmsgdGhhdCBvY2N1cnMgb3V0c2lkZSBvZiBwZXJmb3JtVHJhdmVyc2FscwotICAgIHZhciBwcmVGcmFtZUV2ZW50cyA9IFtdOwotICAgIHVpVGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgIGlmIChzbGljZS50aXRsZSA9PSAnb2J0YWluVmlldycgfHwKLSAgICAgICAgICBzbGljZS50aXRsZSA9PSAnc2V0dXBMaXN0SXRlbScgfHwKLSAgICAgICAgICBzbGljZS50aXRsZSA9PSAnZGVsaXZlcklucHV0RXZlbnQnIHx8Ci0gICAgICAgICAgc2xpY2UudGl0bGUgPT0gJ1JWIFNjcm9sbCcpCi0gICAgICAgIHByZUZyYW1lRXZlbnRzLnB1c2goc2xpY2UpOwotICAgIH0pOwotICAgIHVpVGhyZWFkLmFzeW5jU2xpY2VHcm91cC5zbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgewotICAgICAgaWYgKHNsaWNlLnRpdGxlID09ICdkZWxpdmVySW5wdXRFdmVudCcpCi0gICAgICAgIHByZUZyYW1lRXZlbnRzLnB1c2goc2xpY2UpOwotICAgIH0pOwotCi0gICAgcmV0dXJuIHRyLmUuYXVkaXRzLm1lcmdlRXhwbGljaXRSYW5nZXMocHJlRnJhbWVFdmVudHMsIDMsIGZ1bmN0aW9uKGV2ZW50cykgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgc3RhcnQ6IGV2ZW50c1swXS5zdGFydCwKLSAgICAgICAgZW5kOiBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLmVuZAotICAgICAgfTsKLSAgICB9KTsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldEZyYW1lU3RhcnRUaW1lKHRyYXZlcnNhbFN0YXJ0LCBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzKSB7Ci0gICAgdmFyIHByZVRyYXZlcnNhbFdvcmtSYW5nZSA9IHRyLmIuZmluZENsb3Nlc3RJbnRlcnZhbEluU29ydGVkSW50ZXJ2YWxzKAotICAgICAgICBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzLAotICAgICAgICBmdW5jdGlvbihyYW5nZSkgeyByZXR1cm4gcmFuZ2Uuc3RhcnQgfSwKLSAgICAgICAgZnVuY3Rpb24ocmFuZ2UpIHsgcmV0dXJuIHJhbmdlLmVuZCB9LAotICAgICAgICB0cmF2ZXJzYWxTdGFydCwKLSAgICAgICAgMyk7Ci0KLSAgICBpZiAocHJlVHJhdmVyc2FsV29ya1JhbmdlKQotICAgICAgcmV0dXJuIHByZVRyYXZlcnNhbFdvcmtSYW5nZS5zdGFydDsKLSAgICByZXR1cm4gdHJhdmVyc2FsU3RhcnQ7Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRVaVRocmVhZERyaXZlbkZyYW1lcyhhcHApIHsKLSAgICBpZiAoIWFwcC51aVRocmVhZCkKLSAgICAgIHJldHVybiBbXTsKLQotICAgIHZhciBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzID0gZ2V0UHJlVHJhdmVyc2FsV29ya1JhbmdlcyhhcHAudWlUaHJlYWQpOwotCi0gICAgdmFyIGZyYW1lcyA9IFtdOwotICAgIGFwcC51aVRocmVhZC5zbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICBpZiAoIShzbGljZS50aXRsZSBpbiBVSV9USFJFQURfRFJBV19OQU1FUykpIHsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB2YXIgdGhyZWFkVGltZVJhbmdlcyA9IFtdOwotICAgICAgdmFyIHVpVGhyZWFkVGltZVJhbmdlID0gewotICAgICAgICB0aHJlYWQ6IGFwcC51aVRocmVhZCwKLSAgICAgICAgc3RhcnQ6IGdldEZyYW1lU3RhcnRUaW1lKHNsaWNlLnN0YXJ0LCBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzKSwKLSAgICAgICAgZW5kOiBzbGljZS5lbmQKLSAgICAgIH07Ci0gICAgICB0aHJlYWRUaW1lUmFuZ2VzLnB1c2godWlUaHJlYWRUaW1lUmFuZ2UpOwotCi0gICAgICAvLyBvbiBTREsgMjErIGRldmljZXMgd2l0aCBSZW5kZXJUaHJlYWQsCi0gICAgICAvLyBhY2NvdW50IGZvciB0aW1lIHRha2VuIG9uIFJlbmRlclRocmVhZAotICAgICAgdmFyIHJ0RHJhd1NsaWNlID0gZmluZE92ZXJsYXBwaW5nRHJhd0ZyYW1lKAotICAgICAgICAgIGFwcC5yZW5kZXJUaHJlYWQsIHNsaWNlLmVuZCk7Ci0gICAgICBpZiAocnREcmF3U2xpY2UpIHsKLSAgICAgICAgdmFyIHJ0U3luY1NsaWNlID0gcnREcmF3U2xpY2UuZmluZERlc2NlbmRlbnRTbGljZShUSFJFQURfU1lOQ19OQU1FKTsKLSAgICAgICAgaWYgKHJ0U3luY1NsaWNlKSB7Ci0gICAgICAgICAgLy8gR2VuZXJhbGx5LCB0aGUgVUkgdGhyZWFkIGlzIG9ubHkgb24gdGhlIGNyaXRpY2FsIHBhdGgKLSAgICAgICAgICAvLyB1bnRpbCB0aGUgc3RhcnQgb2Ygc3luYy4KLSAgICAgICAgICB1aVRocmVhZFRpbWVSYW5nZS5lbmQgPSBNYXRoLm1pbih1aVRocmVhZFRpbWVSYW5nZS5lbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRTeW5jU2xpY2Uuc3RhcnQpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhyZWFkVGltZVJhbmdlcy5wdXNoKHsKLSAgICAgICAgICB0aHJlYWQ6IGFwcC5yZW5kZXJUaHJlYWQsCi0gICAgICAgICAgc3RhcnQ6IHJ0RHJhd1NsaWNlLnN0YXJ0LAotICAgICAgICAgIGVuZDogcnREcmF3U2xpY2UuZW5kCi0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgZnJhbWVzLnB1c2gobWFrZUZyYW1lKHRocmVhZFRpbWVSYW5nZXMsIGFwcC5zdXJmYWNlRmxpbmdlcikpOwotICAgIH0pOwotICAgIHJldHVybiBmcmFtZXM7Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRSZW5kZXJUaHJlYWREcml2ZW5GcmFtZXMoYXBwKSB7Ci0gICAgaWYgKCFhcHAucmVuZGVyVGhyZWFkKQotICAgICAgcmV0dXJuIFtdOwotCi0gICAgdmFyIGZyYW1lcyA9IFtdOwotICAgIGFwcC5yZW5kZXJUaHJlYWQuc2xpY2VHcm91cC5nZXRTbGljZXNPZk5hbWUoUkVOREVSX1RIUkVBRF9JTkRFUF9EUkFXX05BTUUpCi0gICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICB2YXIgdGhyZWFkVGltZVJhbmdlcyA9IFt7Ci0gICAgICAgIHRocmVhZDogYXBwLnJlbmRlclRocmVhZCwKLSAgICAgICAgc3RhcnQ6IHNsaWNlLnN0YXJ0LAotICAgICAgICBlbmQ6IHNsaWNlLmVuZAotICAgICAgfV07Ci0gICAgICBmcmFtZXMucHVzaChtYWtlRnJhbWUodGhyZWFkVGltZVJhbmdlcywgYXBwLnN1cmZhY2VGbGluZ2VyKSk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGZyYW1lczsKLSAgfQotCi0gIGZ1bmN0aW9uIGhhc1VpRHJhdyh1aVRocmVhZCkgewotICAgIHZhciBzbGljZXMgPSB1aVRocmVhZC5zbGljZUdyb3VwLnNsaWNlczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgaWYgKHNsaWNlc1tpXS50aXRsZSBpbiBVSV9USFJFQURfRFJBV19OQU1FUykgewotICAgICAgICByZXR1cm4gdWlUaHJlYWQ7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gIH0KLQotICBmdW5jdGlvbiBnZXRJbnB1dFNhbXBsZXMocHJvY2VzcykgewotICAgIHZhciBzYW1wbGVzID0gdW5kZWZpbmVkOwotICAgIGZvciAodmFyIGNvdW50ZXJOYW1lIGluIHByb2Nlc3MuY291bnRlcnMpIHsKLSAgICAgICAgICBpZiAoL15hbmRyb2lkXC5hcVw6cGVuZGluZy8udGVzdChjb3VudGVyTmFtZSkgJiYKLSAgICAgICAgcHJvY2Vzcy5jb3VudGVyc1tjb3VudGVyTmFtZV0ubnVtU2VyaWVzID09IDEpIHsKLSAgICAgICAgc2FtcGxlcyA9IHByb2Nlc3MuY291bnRlcnNbY291bnRlck5hbWVdLnNlcmllc1swXS5zYW1wbGVzOwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIXNhbXBsZXMpCi0gICAgICByZXR1cm4gW107Ci0KLSAgICAvLyBvdXRwdXQgcmlzaW5nIGVkZ2VzIG9ubHksIHNpbmNlIHRob3NlIGFyZSB1c2VyIGlucHV0cwotICAgIHZhciBpbnB1dFNhbXBsZXMgPSBbXTsKLSAgICB2YXIgbGFzdFZhbHVlID0gMDsKLSAgICBzYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICBpZiAoc2FtcGxlLnZhbHVlID4gbGFzdFZhbHVlKSB7Ci0gICAgICAgIGlucHV0U2FtcGxlcy5wdXNoKHNhbXBsZSk7Ci0gICAgICB9Ci0gICAgICBsYXN0VmFsdWUgPSBzYW1wbGUudmFsdWU7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGlucHV0U2FtcGxlczsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldEFuaW1hdGlvbkFzeW5jU2xpY2VzKHVpVGhyZWFkKSB7Ci0gICAgaWYgKCF1aVRocmVhZCkKLSAgICAgIHJldHVybiBbXTsKLQotICAgIHZhciBzbGljZXMgPSBbXTsKLSAgICB1aVRocmVhZC5hc3luY1NsaWNlR3JvdXAuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihzbGljZSkgewotICAgICAgaWYgKC9eYW5pbWF0b3JcOi8udGVzdChzbGljZS50aXRsZSkpCi0gICAgICAgIHNsaWNlcy5wdXNoKHNsaWNlKTsKLSAgICB9KTsKLSAgICByZXR1cm4gc2xpY2VzOwotICB9Ci0KLSAgLyoqCi0gICAqIE1vZGVsIGZvciBBbmRyb2lkIEFwcCBzcGVjaWZpYyBkYXRhLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEFuZHJvaWRBcHAocHJvY2VzcywgdWlUaHJlYWQsIHJlbmRlclRocmVhZCwgc3VyZmFjZUZsaW5nZXIpIHsKLSAgICB0aGlzLnByb2Nlc3MgPSBwcm9jZXNzOwotICAgIHRoaXMudWlUaHJlYWQgPSB1aVRocmVhZDsKLSAgICB0aGlzLnJlbmRlclRocmVhZCA9IHJlbmRlclRocmVhZDsKLSAgICB0aGlzLnN1cmZhY2VGbGluZ2VyID0gc3VyZmFjZUZsaW5nZXI7Ci0KLSAgICB0aGlzLmZyYW1lc18gPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5pbnB1dHNfID0gdW5kZWZpbmVkOwotICB9OwotCi0gIEFuZHJvaWRBcHAuY3JlYXRlRm9yUHJvY2Vzc0lmUG9zc2libGUgPSBmdW5jdGlvbihwcm9jZXNzLCBzdXJmYWNlRmxpbmdlcikgewotICAgIHZhciB1aVRocmVhZCA9IHByb2Nlc3MuZ2V0VGhyZWFkKHByb2Nlc3MucGlkKTsKLSAgICBpZiAodWlUaHJlYWQgJiYgIWhhc1VpRHJhdyh1aVRocmVhZCkpIHsKLSAgICAgIHVpVGhyZWFkID0gdW5kZWZpbmVkOwotICAgIH0KLSAgICB2YXIgcmVuZGVyVGhyZWFkcyA9IHByb2Nlc3MuZmluZEFsbFRocmVhZHNOYW1lZCgnUmVuZGVyVGhyZWFkJyk7Ci0gICAgdmFyIHJlbmRlclRocmVhZCA9IHJlbmRlclRocmVhZHMubGVuZ3RoID09IDEgPyByZW5kZXJUaHJlYWRzWzBdIDogdW5kZWZpbmVkOwotCi0gICAgaWYgKHVpVGhyZWFkIHx8IHJlbmRlclRocmVhZCkgewotICAgICAgcmV0dXJuIG5ldyBBbmRyb2lkQXBwKHByb2Nlc3MsIHVpVGhyZWFkLCByZW5kZXJUaHJlYWQsIHN1cmZhY2VGbGluZ2VyKTsKLSAgICB9Ci0gIH0KLQotICBBbmRyb2lkQXBwLnByb3RvdHlwZSA9IHsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBmcmFtZXMgaW4gdGhlIHRyYWNlIGZvciB0aGUgYXBwLAotICAgKiBjb25zdHJ1Y3RlZCBvbiBmaXJzdCBxdWVyeS4KLSAgICovCi0gICAgZ2V0RnJhbWVzOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5mcmFtZXNfKSB7Ci0gICAgICAgIHZhciB1aUZyYW1lcyA9IGdldFVpVGhyZWFkRHJpdmVuRnJhbWVzKHRoaXMpOwotICAgICAgICB2YXIgcnRGcmFtZXMgPSBnZXRSZW5kZXJUaHJlYWREcml2ZW5GcmFtZXModGhpcyk7Ci0gICAgICAgIHRoaXMuZnJhbWVzXyA9IHVpRnJhbWVzLmNvbmNhdChydEZyYW1lcyk7Ci0KLSAgICAgICAgLy8gbWVyZ2UgZnJhbWVzIGJ5IHNvcnRpbmcgYnkgZW5kIHRpbWVzdGFtcAotICAgICAgICB0aGlzLmZyYW1lc18uc29ydChmdW5jdGlvbihhLCBiKSB7IGEuZW5kIC0gYi5lbmQgfSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy5mcmFtZXNfOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGxpc3Qgb2YgQ291bnRlclNhbXBsZXMgZm9yIGVhY2ggaW5wdXQgZXZlbnQgZW5xdWV1ZWQgdG8gdGhlIGFwcC4KLSAgICAgKi8KLSAgICBnZXRJbnB1dFNhbXBsZXM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmlucHV0c18pIHsKLSAgICAgICAgdGhpcy5pbnB1dHNfID0gZ2V0SW5wdXRTYW1wbGVzKHRoaXMucHJvY2Vzcyk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy5pbnB1dHNfOwotICAgIH0sCi0KLSAgICBnZXRBbmltYXRpb25Bc3luY1NsaWNlczogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIXRoaXMuYW5pbWF0aW9uc18pIHsKLSAgICAgICAgdGhpcy5hbmltYXRpb25zXyA9IGdldEFuaW1hdGlvbkFzeW5jU2xpY2VzKHRoaXMudWlUaHJlYWQpOwotICAgICAgfQotICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uc187Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQW5kcm9pZEFwcDogQW5kcm9pZEFwcAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9hdWRpdG9yLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXVkaXRvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDFkYzY5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9hdWRpdG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYXVkaXRvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYWxlcnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2ZyYW1lLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfbW9kZWxfaGVscGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlX3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQ2xhc3MgZm9yIEFuZHJvaWQtc3BlY2lmaWMgQXVkaXRpbmcuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmF1ZGl0cycsIGZ1bmN0aW9uKCkgewotICB2YXIgU0NIRURVTElOR19TVEFURSA9IHRyLm1vZGVsLlNDSEVEVUxJTkdfU1RBVEU7Ci0gIHZhciBBdWRpdG9yID0gdHIuYy5BdWRpdG9yOwotICB2YXIgQW5kcm9pZE1vZGVsSGVscGVyID0gdHIuZS5hdWRpdHMuQW5kcm9pZE1vZGVsSGVscGVyOwotICB2YXIgU3RhdGlzdGljcyA9IHRyLmIuU3RhdGlzdGljczsKLSAgdmFyIEZSQU1FX1BFUkZfQ0xBU1MgPSB0ci5tb2RlbC5GUkFNRV9QRVJGX0NMQVNTOwotICB2YXIgSW50ZXJhY3Rpb25SZWNvcmQgPSB0ci5tb2RlbC5JbnRlcmFjdGlvblJlY29yZDsKLSAgdmFyIEFsZXJ0ID0gdHIubW9kZWwuQWxlcnQ7Ci0gIHZhciBFdmVudEluZm8gPSB0ci5tb2RlbC5FdmVudEluZm87Ci0gIHZhciBUaW1lRHVyYXRpb24gPSB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbjsKLQotICAvLyBUT0RPOiBleHRyYWN0IGZyb20gVlNZTkMsIHNpbmNlIG5vdCBhbGwgZGV2aWNlcyBoYXZlIHZzeW5jIG5lYXIgNjBmcHMKLSAgdmFyIEVYUEVDVEVEX0ZSQU1FX1RJTUVfTVMgPSAxNi42NzsKLQotICBmdW5jdGlvbiBnZXRTdGFydChlKSB7IHJldHVybiBlLnN0YXJ0OyB9Ci0gIGZ1bmN0aW9uIGdldER1cmF0aW9uKGUpIHsgcmV0dXJuIGUuZHVyYXRpb247IH0KLSAgLy8gdXNlZCBmb3IgZ2VuZXJhbCBVSSB0aHJlYWQgcmVzcG9uc2l2ZW5lc3MgYWxlcnRzLCBmYWxscyBiYWNrIHRvIGR1cmF0aW9uCi0gIGZ1bmN0aW9uIGdldENwdUR1cmF0aW9uKGUpIHsKLSAgICByZXR1cm4gKGUuY3B1RHVyYXRpb24gIT09IHVuZGVmaW5lZCkgPyBlLmNwdUR1cmF0aW9uIDogZS5kdXJhdGlvbjsKLSAgfQotCi0gIGZ1bmN0aW9uIGZyYW1lSXNBY3Rpdml0eVN0YXJ0KGZyYW1lKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmcmFtZS5hc3NvY2lhdGVkRXZlbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBpZiAoZnJhbWUuYXNzb2NpYXRlZEV2ZW50c1tpXS50aXRsZSA9PSAnYWN0aXZpdHlTdGFydCcpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICB2YXIgQXVkaXRvciA9IHRyLmMuQXVkaXRvcjsKLSAgdmFyIEFuZHJvaWRNb2RlbEhlbHBlciA9IHRyLmUuYXVkaXRzLkFuZHJvaWRNb2RlbEhlbHBlcjsKLQotICBmdW5jdGlvbiBmcmFtZU1pc3NlZERlYWRsaW5lKGZyYW1lKSB7Ci0gICAgcmV0dXJuIGZyYW1lLmFyZ3NbJ2RlYWRsaW5lJ10gJiYgZnJhbWUuYXJnc1snZGVhZGxpbmUnXSA8IGZyYW1lLmVuZDsKLSAgfQotCi0gIC8qKiBCdWlsZGVyIG9iamVjdCBmb3IgRXZlbnRJbmZvIGRvY0xpbmsgc3RydWN0dXJlcyAqLwotICBmdW5jdGlvbiBEb2NMaW5rQnVpbGRlcigpIHsKLSAgICB0aGlzLmRvY0xpbmtzID0gW107Ci0gIH0KLSAgRG9jTGlua0J1aWxkZXIucHJvdG90eXBlID0gewotICAgIGFkZEFwcFZpZGVvOiBmdW5jdGlvbihuYW1lLCB2aWRlb0lkKSB7Ci0gICAgICB0aGlzLmRvY0xpbmtzLnB1c2goewotICAgICAgICBsYWJlbDogJ1ZpZGVvIExpbmsnLAotICAgICAgICB0ZXh0Q29udGVudDogKCdBbmRyb2lkIFBlcmZvcm1hbmNlIFBhdHRlcm5zOiAnICsgbmFtZSksCi0gICAgICAgIGhyZWY6ICdodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD9saXN0PVBMV3o1ckoyRUtLYzlDQnhyM0JWalBUUG9EUExkUElGQ0Umdj0nICsgdmlkZW9JZCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgfSk7Ci0gICAgICByZXR1cm4gdGhpczsKLSAgICB9LAotICAgIGFkZERhY1JlZjogZnVuY3Rpb24obmFtZSwgbGluaykgewotICAgICAgdGhpcy5kb2NMaW5rcy5wdXNoKHsKLSAgICAgICAgICBsYWJlbDogJ0RvYyBMaW5rJywKLSAgICAgICAgICB0ZXh0Q29udGVudDogKG5hbWUgKyAnIGRvY3VtZW50YXRpb24nKSwKLSAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlLycgKyBsaW5rCi0gICAgICB9KTsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0sCi0gICAgYnVpbGQ6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuZG9jTGlua3M7Ci0gICAgfQotICB9OwotCi0gIC8qKgotICAgKiBBdWRpdG9yIGZvciBBbmRyb2lkLXNwZWNpZmljIHRyYWNlcy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBBbmRyb2lkQXVkaXRvcihtb2RlbCkgewotICAgIHRoaXMubW9kZWwgPSBtb2RlbDsKLSAgICB2YXIgaGVscGVyID0gbmV3IEFuZHJvaWRNb2RlbEhlbHBlcihtb2RlbCk7Ci0gICAgaWYgKGhlbHBlci5hcHBzLmxlbmd0aCB8fCBoZWxwZXIuc3VyZmFjZUZsaW5nZXIpCi0gICAgICB0aGlzLmhlbHBlciA9IGhlbHBlcjsKLSAgfTsKLQotICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAgLy8gUmVuZGVyaW5nIC8gUmVuZGVyVGhyZWFkIGFsZXJ0cyAtIG9ubHkgYXZhaWxhYmxlIG9uIFNESyAyMisKLSAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLSAgQW5kcm9pZEF1ZGl0b3Iudmlld0FscGhhQWxlcnRJbmZvXyA9IG5ldyBFdmVudEluZm8oCi0gICAgICAnSW5lZmZpY2llbnQgVmlldyBhbHBoYSB1c2FnZScsCi0gICAgICAnU2V0dGluZyBhbiBhbHBoYSBiZXR3ZWVuIDAgYW5kIDEgaGFzIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGNvc3RzLCBpZiBvbmUgb2YgdGhlIGZhc3QgYWxwaGEgcGF0aHMgaXMgbm90IHVzZWQuJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIG5ldyBEb2NMaW5rQnVpbGRlcigpCi0gICAgICAgICAgLmFkZEFwcFZpZGVvKCdIaWRkZW4gQ29zdCBvZiBUcmFuc3BhcmVuY3knLCAnd0l5OGc4eU5oTmsnKQotICAgICAgICAgIC5hZGREYWNSZWYoJ1ZpZXcjc2V0QWxwaGEoKScsICdhbmRyb2lkL3ZpZXcvVmlldy5odG1sI3NldEFscGhhKGZsb2F0KScpIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAgICAgLmJ1aWxkKCkpOwotICBBbmRyb2lkQXVkaXRvci5zYXZlTGF5ZXJBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKLSAgICAgICdFeHBlbnNpdmUgcmVuZGVyaW5nIHdpdGggQ2FudmFzI3NhdmVMYXllcigpJywKLSAgICAgICdDYW52YXMjc2F2ZUxheWVyKCkgaW5jdXJzIGV4dHJlbWVseSBoaWdoIHJlbmRlcmluZyBjb3N0LiBUaGV5IGRpc3J1cHQgdGhlIHJlbmRlcmluZyBwaXBlbGluZSB3aGVuIGRyYXduLCBmb3JjaW5nIGEgZmx1c2ggb2YgZHJhd2luZyBjb250ZW50LiBJbnN0ZWFkIHVzZSBWaWV3IGhhcmR3YXJlIGxheWVycywgb3Igc3RhdGljIEJpdG1hcHMuIFRoaXMgZW5hYmxlcyB0aGUgb2Zmc2NyZWVuIGJ1ZmZlcnMgdG8gYmUgcmV1c2VkIGluIGJldHdlZW4gZnJhbWVzLCBhbmQgYXZvaWRzIHRoZSBkaXNydXB0aXZlIHJlbmRlciB0YXJnZXQgc3dpdGNoLicsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICBuZXcgRG9jTGlua0J1aWxkZXIoKQotICAgICAgICAgIC5hZGRBcHBWaWRlbygnSGlkZGVuIENvc3Qgb2YgVHJhbnNwYXJlbmN5JywgJ3dJeThnOHlOaE5rJykKLSAgICAgICAgICAuYWRkRGFjUmVmKCdDYW52YXMjc2F2ZUxheWVyQWxwaGEoKScsICdhbmRyb2lkL2dyYXBoaWNzL0NhbnZhcy5odG1sI3NhdmVMYXllckFscGhhKGFuZHJvaWQuZ3JhcGhpY3MuUmVjdEYsIGludCwgaW50KScpIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAgICAgLmJ1aWxkKCkpOwotICBBbmRyb2lkQXVkaXRvci5nZXRTYXZlTGF5ZXJBbGVydHNfID0gZnVuY3Rpb24oZnJhbWUpIHsKLSAgICB2YXIgYmFkQWxwaGFSZWdFeCA9Ci0gICAgICAgIC9eKC4rKSBhbHBoYSBjYXVzZWQgKHVuY2xpcHBlZCApP3NhdmVMYXllciAoXGQrKXgoXGQrKSQvOwotICAgIHZhciBzYXZlTGF5ZXJSZWdFeCA9IC9eKHVuY2xpcHBlZCApP3NhdmVMYXllciAoXGQrKXgoXGQrKSQvOwotCi0gICAgdmFyIHJldCA9IFtdOwotICAgIHZhciBldmVudHMgPSBbXTsKLQotICAgIGZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgewotICAgICAgdmFyIG1hdGNoID0gYmFkQWxwaGFSZWdFeC5leGVjKHNsaWNlLnRpdGxlKTsKLSAgICAgIGlmIChtYXRjaCkgewotICAgICAgICAvLyBkdWUgdG8gYnVnIGluIHRyYWNpbmcgY29kZSBvbiBTREsgMjIsIGlnbm9yZQotICAgICAgICAvLyBwcmVzZW5jZSBvZiAndW5jbGlwcGVkJyBzdHJpbmcgaW4gVmlldyBhbHBoYSBzbGljZXMKLSAgICAgICAgdmFyIGFyZ3MgPSB7ICd2aWV3IG5hbWUnOiBtYXRjaFsxXSwKLSAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBwYXJzZUludChtYXRjaFszXSksCi0gICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHBhcnNlSW50KG1hdGNoWzRdKSB9OwotICAgICAgICByZXQucHVzaChuZXcgQWxlcnQoQW5kcm9pZEF1ZGl0b3Iudmlld0FscGhhQWxlcnRJbmZvXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWNlLnN0YXJ0LCBbc2xpY2VdLCBhcmdzKSk7Ci0gICAgICB9IGVsc2UgaWYgKHNhdmVMYXllclJlZ0V4LnRlc3Qoc2xpY2UudGl0bGUpKQotICAgICAgICBldmVudHMucHVzaChzbGljZSk7Ci0gICAgfSwgdGhpcyk7Ci0KLSAgICBpZiAoZXZlbnRzLmxlbmd0aCA+IHJldC5sZW5ndGgpIHsKLSAgICAgIC8vIG1vcmUgc2F2ZUxheWVycyB0aGFuIGJhZCBhbHBoYSBjYW4gYWNjb3VudCBmb3IgLSBhZGQgYW5vdGhlciBhbGVydAotCi0gICAgICB2YXIgdW5jbGlwcGVkU2VlbiA9IFN0YXRpc3RpY3Muc3VtKGV2ZW50cywgZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgcmV0dXJuIHNhdmVMYXllclJlZ0V4LmV4ZWMoc2xpY2UudGl0bGUpWzFdID8gMSA6IDA7Ci0gICAgICB9KTsKLSAgICAgIHZhciBjbGlwcGVkU2VlbiA9IGV2ZW50cy5sZW5ndGggLSB1bmNsaXBwZWRTZWVuOwotICAgICAgdmFyIGVhcmxpZXN0U3RhcnQgPSBTdGF0aXN0aWNzLm1pbihldmVudHMsIGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICAgIHJldHVybiBzbGljZS5zdGFydDsKLSAgICAgIH0pOwotCi0gICAgICB2YXIgYXJncyA9IHsKLSAgICAgICAgJ1VuY2xpcHBlZCBzYXZlTGF5ZXIgY291bnQgKGVzcGVjaWFsbHkgYmFkISknOiB1bmNsaXBwZWRTZWVuLAotICAgICAgICAnQ2xpcHBlZCBzYXZlTGF5ZXIgY291bnQnOiBjbGlwcGVkU2VlbgotICAgICAgfTsKLQotICAgICAgZXZlbnRzLnB1c2goZnJhbWUpOwotICAgICAgcmV0LnB1c2gobmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLnNhdmVMYXllckFsZXJ0SW5mb18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZWFybGllc3RTdGFydCwgZXZlbnRzLCBhcmdzKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLSAgfTsKLQotCi0gIEFuZHJvaWRBdWRpdG9yLnBhdGhBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKLSAgICAgICdQYXRoIHRleHR1cmUgY2h1cm4nLAotICAgICAgJ1BhdGhzIGFyZSBkcmF3biB3aXRoIGEgbWFzayB0ZXh0dXJlLCBzbyB3aGVuIGEgcGF0aCBpcyBtb2RpZmllZCAvIG5ld2x5IGRyYXduLCB0aGF0IHRleHR1cmUgbXVzdCBiZSBnZW5lcmF0ZWQgYW5kIHVwbG9hZGVkIHRvIHRoZSBHUFUuIEVuc3VyZSB0aGF0IHlvdSBjYWNoZSBwYXRocyBiZXR3ZWVuIGZyYW1lcyBhbmQgZG8gbm90IHVubmVjZXNzYXJpbHkgY2FsbCBQYXRoI3Jlc2V0KCkuIFlvdSBjYW4gY3V0IGRvd24gb24gdGhpcyBjb3N0IGJ5IHNoYXJpbmcgUGF0aCBvYmplY3QgaW5zdGFuY2VzIGJldHdlZW4gZHJhd2FibGVzL3ZpZXdzLicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICBBbmRyb2lkQXVkaXRvci5nZXRQYXRoQWxlcnRfID0gZnVuY3Rpb24oZnJhbWUpIHsKLSAgICB2YXIgdXBsb2FkUmVnRXggPSAvXkdlbmVyYXRlIFBhdGggVGV4dHVyZSQvOwotCi0gICAgdmFyIGV2ZW50cyA9IGZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZmlsdGVyKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICByZXR1cm4gZXZlbnQudGl0bGUgPT0gJ0dlbmVyYXRlIFBhdGggVGV4dHVyZSc7Ci0gICAgfSk7Ci0gICAgdmFyIHN0YXJ0ID0gU3RhdGlzdGljcy5taW4oZXZlbnRzLCBnZXRTdGFydCk7Ci0gICAgdmFyIGR1cmF0aW9uID0gU3RhdGlzdGljcy5zdW0oZXZlbnRzLCBnZXREdXJhdGlvbik7Ci0KLSAgICBpZiAoZHVyYXRpb24gPCAzKQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgIGV2ZW50cy5wdXNoKGZyYW1lKTsKLSAgICByZXR1cm4gbmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLnBhdGhBbGVydEluZm9fLCBzdGFydCwgZXZlbnRzLAotICAgICAgICAgICAgICAgICAgICAgeyAnVGltZSBzcGVudCc6IG5ldyBUaW1lRHVyYXRpb24oZHVyYXRpb24pIH0pOwotICB9Ci0KLQotICBBbmRyb2lkQXVkaXRvci51cGxvYWRBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKLSAgICAgICdFeHBlbnNpdmUgQml0bWFwIHVwbG9hZHMnLAotICAgICAgJ0JpdG1hcHMgdGhhdCBoYXZlIGJlZW4gbW9kaWZpZWQgLyBuZXdseSBkcmF3biBtdXN0IGJlIHVwbG9hZGVkIHRvIHRoZSBHUFUuIFNpbmNlIHRoaXMgaXMgZXhwZW5zaXZlIGlmIHRoZSB0b3RhbCBudW1iZXIgb2YgcGl4ZWxzIHVwbG9hZGVkIGlzIGxhcmdlLCByZWR1Y2UgdGhlIGFtb3VudCBvZiBCaXRtYXAgY2h1cm4gaW4gdGhpcyBhbmltYXRpb24vY29udGV4dCwgcGVyIGZyYW1lLicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICBBbmRyb2lkQXVkaXRvci5nZXRVcGxvYWRBbGVydF8gPSBmdW5jdGlvbihmcmFtZSkgewotICAgIHZhciB1cGxvYWRSZWdFeCA9IC9eVXBsb2FkIChcZCspeChcZCspIFRleHR1cmUkLzsKLQotICAgIHZhciBldmVudHMgPSBbXTsKLSAgICB2YXIgc3RhcnQgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7Ci0gICAgdmFyIGR1cmF0aW9uID0gMDsKLSAgICB2YXIgcGl4ZWxzVXBsb2FkZWQgPSAwOwotICAgIGZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCkgewotICAgICAgdmFyIG1hdGNoID0gdXBsb2FkUmVnRXguZXhlYyhldmVudC50aXRsZSk7Ci0gICAgICBpZiAobWF0Y2gpIHsKLSAgICAgICAgZXZlbnRzLnB1c2goZXZlbnQpOwotICAgICAgICBzdGFydCA9IE1hdGgubWluKHN0YXJ0LCBldmVudC5zdGFydCk7Ci0gICAgICAgIGR1cmF0aW9uICs9IGV2ZW50LmR1cmF0aW9uOwotICAgICAgICBwaXhlbHNVcGxvYWRlZCArPSBwYXJzZUludChtYXRjaFsxXSkgKiBwYXJzZUludChtYXRjaFsyXSk7Ci0gICAgICB9Ci0gICAgfSk7Ci0gICAgaWYgKGV2ZW50cy5sZW5ndGggPT0gMCB8fCBkdXJhdGlvbiA8IDMpCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgdmFyIG1QaXhlbHMgPSAocGl4ZWxzVXBsb2FkZWQgLyAxMDAwMDAwKS50b0ZpeGVkKDIpICsgJyBtaWxsaW9uJzsKLSAgICB2YXIgYXJncyA9IHsgJ1BpeGVscyB1cGxvYWRlZCc6IG1QaXhlbHMsCi0gICAgICAgICAgICAgICAgICdUaW1lIHNwZW50JzogbmV3IFRpbWVEdXJhdGlvbihkdXJhdGlvbikgfTsKLSAgICBldmVudHMucHVzaChmcmFtZSk7Ci0gICAgcmV0dXJuIG5ldyBBbGVydChBbmRyb2lkQXVkaXRvci51cGxvYWRBbGVydEluZm9fLCBzdGFydCwgZXZlbnRzLCBhcmdzKTsKLSAgfQotCi0gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAvLyBVSSByZXNwb25zaXZlbmVzcyBhbGVydHMKLSAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLSAgQW5kcm9pZEF1ZGl0b3IuTGlzdFZpZXdJbmZsYXRlQWxlcnRJbmZvXyA9IG5ldyBFdmVudEluZm8oCi0gICAgICAnSW5mbGF0aW9uIGR1cmluZyBMaXN0VmlldyByZWN5Y2xpbmcnLAotICAgICAgJ0xpc3RWaWV3IGl0ZW0gcmVjeWNsaW5nIGludm9sdmVkIGluZmxhdGluZyB2aWV3cy4gRW5zdXJlIHlvdXIgQWRhcHRlciNnZXRWaWV3KCkgcmVjeWNsZXMgdGhlIGluY29taW5nIFZpZXcsIGluc3RlYWQgb2YgY29uc3RydWN0aW5nIGEgbmV3IG9uZS4nKTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgQW5kcm9pZEF1ZGl0b3IuTGlzdFZpZXdCaW5kQWxlcnRJbmZvXyA9IG5ldyBFdmVudEluZm8oCi0gICAgICAnSW5lZmZpY2llbnQgTGlzdFZpZXcgcmVjeWNsaW5nL3JlYmluZGluZycsCi0gICAgICAnTGlzdFZpZXcgcmVjeWNsaW5nIHRha2luZyB0b28gbXVjaCB0aW1lIHBlciBmcmFtZS4gRW5zdXJlIHlvdXIgQWRhcHRlciNnZXRWaWV3KCkgYmluZHMgZGF0YSBlZmZpY2llbnRseS4nKTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgQW5kcm9pZEF1ZGl0b3IuZ2V0TGlzdFZpZXdBbGVydF8gPSBmdW5jdGlvbihmcmFtZSkgewotICAgIHZhciBldmVudHMgPSBmcmFtZS5hc3NvY2lhdGVkRXZlbnRzLmZpbHRlcihmdW5jdGlvbihldmVudCkgewotICAgICAgcmV0dXJuIGV2ZW50LnRpdGxlID09ICdvYnRhaW5WaWV3JyB8fCBldmVudC50aXRsZSA9PSAnc2V0dXBMaXN0SXRlbSc7Ci0gICAgfSk7Ci0gICAgdmFyIGR1cmF0aW9uID0gU3RhdGlzdGljcy5zdW0oZXZlbnRzLCBnZXRDcHVEdXJhdGlvbik7Ci0KLSAgICBpZiAoZXZlbnRzLmxlbmd0aCA9PSAwIHx8IGR1cmF0aW9uIDwgMykKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICAvLyBzaW1wbGlmeWluZyBhc3N1bXB0aW9uIC0gY2hlY2sgZm9yICphbnkqIGluZmxhdGlvbi4KLSAgICAvLyBUT0RPKGNjcmFpayk6IG1ha2UgJ2luZmxhdGUnIHNsaWNlcyBhc3NvY2lhdGVkIGV2ZW50cy4KLSAgICB2YXIgaGFzSW5mbGF0aW9uID0gZmFsc2U7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmIChldmVudHNbaV0gaW5zdGFuY2VvZiB0ci5tb2RlbC5TbGljZSAmJgotICAgICAgICAgIGV2ZW50c1tpXS5maW5kRGVzY2VuZGVudFNsaWNlKCdpbmZsYXRlJykpIHsKLSAgICAgICAgaGFzSW5mbGF0aW9uID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgdmFyIHN0YXJ0ID0gU3RhdGlzdGljcy5taW4oZXZlbnRzLCBnZXRTdGFydCk7Ci0gICAgdmFyIGFyZ3MgPSB7ICdUaW1lIHNwZW50JzogbmV3IFRpbWVEdXJhdGlvbihkdXJhdGlvbikgfTsKLSAgICBhcmdzWydMaXN0VmlldyBpdGVtcyAnICsgKGhhc0luZmxhdGlvbiA/ICdpbmZsYXRlZCcgOiAncmVib3VuZCcpXSA9Ci0gICAgICAgIGV2ZW50cy5sZW5ndGggLyAyOwotICAgIHZhciBldmVudEluZm8gPSBoYXNJbmZsYXRpb24gPyBBbmRyb2lkQXVkaXRvci5MaXN0Vmlld0luZmxhdGVBbGVydEluZm9fIDoKLSAgICAgICAgQW5kcm9pZEF1ZGl0b3IuTGlzdFZpZXdCaW5kQWxlcnRJbmZvXzsKLSAgICBldmVudHMucHVzaChmcmFtZSk7Ci0gICAgcmV0dXJuIG5ldyBBbGVydChldmVudEluZm8sIHN0YXJ0LCBldmVudHMsIGFyZ3MpOwotICB9Ci0KLQotICBBbmRyb2lkQXVkaXRvci5tZWFzdXJlTGF5b3V0QWxlcnRJbmZvXyA9IG5ldyBFdmVudEluZm8oCi0gICAgICAnRXhwZW5zaXZlIG1lYXN1cmUvbGF5b3V0IHBhc3MnLAotICAgICAgJ01lYXN1cmUvTGF5b3V0IHRvb2sgYSBzaWduaWZpY2FudCB0aW1lLCBjb250cmlidXRpbmcgdG8gamFuay4gQXZvaWQgdHJpZ2dlcmluZyBsYXlvdXQgZHVyaW5nIGFuaW1hdGlvbnMuJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIG5ldyBEb2NMaW5rQnVpbGRlcigpCi0gICAgICAgICAgLmFkZEFwcFZpZGVvKCdJbnZhbGlkYXRpb25zLCBMYXlvdXRzLCBhbmQgUGVyZm9ybWFuY2UnLCAnd2U2cG9QMGt3NkUnKQotICAgICAgICAgIC5idWlsZCgpKTsKLSAgQW5kcm9pZEF1ZGl0b3IuZ2V0TWVhc3VyZUxheW91dEFsZXJ0XyA9IGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgdmFyIGV2ZW50cyA9IGZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZmlsdGVyKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICByZXR1cm4gZXZlbnQudGl0bGUgPT0gJ21lYXN1cmUnIHx8IGV2ZW50LnRpdGxlID09ICdsYXlvdXQnOwotICAgIH0pOwotICAgIHZhciBkdXJhdGlvbiA9IFN0YXRpc3RpY3Muc3VtKGV2ZW50cywgZ2V0Q3B1RHVyYXRpb24pOwotCi0gICAgaWYgKGV2ZW50cy5sZW5ndGggPT0gMCB8fCBkdXJhdGlvbiA8IDMpCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgdmFyIHN0YXJ0ID0gU3RhdGlzdGljcy5taW4oZXZlbnRzLCBnZXRTdGFydCk7Ci0gICAgZXZlbnRzLnB1c2goZnJhbWUpOwotICAgIHJldHVybiBuZXcgQWxlcnQoQW5kcm9pZEF1ZGl0b3IubWVhc3VyZUxheW91dEFsZXJ0SW5mb18sIHN0YXJ0LCBldmVudHMsCi0gICAgICAgICAgICAgICAgICAgICB7ICdUaW1lIHNwZW50JzogbmV3IFRpbWVEdXJhdGlvbihkdXJhdGlvbikgfSk7Ci0gIH0KLQotCi0gIEFuZHJvaWRBdWRpdG9yLnZpZXdEcmF3QWxlcnRJbmZvXyA9IG5ldyBFdmVudEluZm8oCi0gICAgICAnTG9uZyBWaWV3I2RyYXcoKScsCi0gICAgICAnUmVjb3JkaW5nIHRoZSBkcmF3aW5nIGNvbW1hbmRzIG9mIGludmFsaWRhdGVkIFZpZXdzIHRvb2sgYSBsb25nIHRpbWUuIEF2b2lkIHNpZ25pZmljYW50IHdvcmsgaW4gVmlldyBvciBEcmF3YWJsZSBjdXN0b20gZHJhd2luZywgZXNwZWNpYWxseSBhbGxvY2F0aW9ucyBvciBkcmF3aW5nIHRvIEJpdG1hcHMuJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIG5ldyBEb2NMaW5rQnVpbGRlcigpCi0gICAgICAgICAgLmFkZEFwcFZpZGVvKCdJbnZhbGlkYXRpb25zLCBMYXlvdXRzLCBhbmQgUGVyZm9ybWFuY2UnLCAnd2U2cG9QMGt3NkUnKQotICAgICAgICAgIC5hZGRBcHBWaWRlbygnQXZvaWRpbmcgQWxsb2NhdGlvbnMgaW4gb25EcmF3KCknLCAnSEFLNWFjSFE1M0UnKQotICAgICAgICAgIC5idWlsZCgpKTsKLSAgQW5kcm9pZEF1ZGl0b3IuZ2V0Vmlld0RyYXdBbGVydF8gPSBmdW5jdGlvbihmcmFtZSkgewotICAgIHZhciBzbGljZSA9IHVuZGVmaW5lZDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lLmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmIChmcmFtZS5hc3NvY2lhdGVkRXZlbnRzW2ldLnRpdGxlID09ICdnZXREaXNwbGF5TGlzdCcgfHwKLSAgICAgICAgICBmcmFtZS5hc3NvY2lhdGVkRXZlbnRzW2ldLnRpdGxlID09ICdSZWNvcmQgVmlldyNkcmF3KCknKSB7Ci0gICAgICAgIHNsaWNlID0gZnJhbWUuYXNzb2NpYXRlZEV2ZW50c1tpXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFzbGljZSB8fCBnZXRDcHVEdXJhdGlvbihzbGljZSkgPCAzKQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICByZXR1cm4gbmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLnZpZXdEcmF3QWxlcnRJbmZvXywgc2xpY2Uuc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICBbc2xpY2UsIGZyYW1lXSwKLSAgICAgICAgICAgICAgICAgICAgIHsgJ1RpbWUgc3BlbnQnOiBuZXcgVGltZUR1cmF0aW9uKGdldENwdUR1cmF0aW9uKHNsaWNlKSkgfSk7Ci0gIH0KLQotCi0gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAvLyBSdW50aW1lIGFsZXJ0cwotICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotICBBbmRyb2lkQXVkaXRvci5ibG9ja2luZ0djQWxlcnRJbmZvXyA9IG5ldyBFdmVudEluZm8oCi0gICAgICAnQmxvY2tpbmcgR2FyYmFnZSBDb2xsZWN0aW9uJywKLSAgICAgICdCbG9ja2luZyBHQ3MgYXJlIGNhdXNlZCBieSBvYmplY3QgY2h1cm4sIGFuZCBtYWRlIHdvcnNlIGJ5IGhhdmluZyBsYXJnZSBudW1iZXJzIG9mIG9iamVjdHMgaW4gdGhlIGhlYXAuIEF2b2lkIGFsbG9jYXRpbmcgb2JqZWN0cyBkdXJpbmcgYW5pbWF0aW9ucy9zY3JvbGxpbmcsIGFuZCByZWN5Y2xlIEJpdG1hcHMgdG8gYXZvaWQgdHJpZ2dlcmluZyBnYXJiYWdlIGNvbGxlY3Rpb24uJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIG5ldyBEb2NMaW5rQnVpbGRlcigpCi0gICAgICAgICAgLmFkZEFwcFZpZGVvKCdHYXJiYWdlIENvbGxlY3Rpb24gaW4gQW5kcm9pZCcsICdwemZ6ejUwVzVVbycpCi0gICAgICAgICAgLmFkZEFwcFZpZGVvKCdBdm9pZGluZyBBbGxvY2F0aW9ucyBpbiBvbkRyYXcoKScsICdIQUs1YWNIUTUzRScpCi0gICAgICAgICAgLmJ1aWxkKCkpOwotICBBbmRyb2lkQXVkaXRvci5nZXRCbG9ja2luZ0djQWxlcnRfID0gZnVuY3Rpb24oZnJhbWUpIHsKLSAgICB2YXIgZXZlbnRzID0gZnJhbWUuYXNzb2NpYXRlZEV2ZW50cy5maWx0ZXIoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHJldHVybiBldmVudC50aXRsZSA9PSAnRFZNIFN1c3BlbmQnIHx8Ci0gICAgICAgICAgZXZlbnQudGl0bGUgPT0gJ0dDOiBXYWl0IEZvciBDb25jdXJyZW50JzsKLSAgICB9KTsKLSAgICB2YXIgYmxvY2tlZER1cmF0aW9uID0gU3RhdGlzdGljcy5zdW0oZXZlbnRzLCBnZXREdXJhdGlvbik7Ci0gICAgaWYgKGJsb2NrZWREdXJhdGlvbiA8IDMpCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgdmFyIHN0YXJ0ID0gU3RhdGlzdGljcy5taW4oZXZlbnRzLCBnZXRTdGFydCk7Ci0gICAgZXZlbnRzLnB1c2goZnJhbWUpOwotICAgIHJldHVybiBuZXcgQWxlcnQoQW5kcm9pZEF1ZGl0b3IuYmxvY2tpbmdHY0FsZXJ0SW5mb18sIHN0YXJ0LCBldmVudHMsCi0gICAgICAgICAgICAgICAgICAgICB7ICdCbG9ja2VkIGR1cmF0aW9uJzogbmV3IFRpbWVEdXJhdGlvbihibG9ja2VkRHVyYXRpb24pIH0pOwotICB9OwotCi0KLSAgQW5kcm9pZEF1ZGl0b3IubG9ja0NvbnRlbnRpb25BbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKLSAgICAgICdMb2NrIGNvbnRlbnRpb24nLAotICAgICAgJ1VJIHRocmVhZCBsb2NrIGNvbnRlbnRpb24gaXMgY2F1c2VkIHdoZW4gYW5vdGhlciB0aHJlYWQgaG9sZHMgYSBsb2NrIHRoYXQgdGhlIFVJIHRocmVhZCBpcyB0cnlpbmcgdG8gdXNlLiBVSSB0aHJlYWQgcHJvZ3Jlc3MgaXMgYmxvY2tlZCB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZC4gSW5zcGVjdCBsb2NraW5nIGRvbmUgd2l0aGluIHRoZSBVSSB0aHJlYWQsIGFuZCBlbnN1cmUgY3JpdGljYWwgc2VjdGlvbnMgYXJlIHNob3J0LicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICBBbmRyb2lkQXVkaXRvci5nZXRMb2NrQ29udGVudGlvbkFsZXJ0XyA9IGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgdmFyIGV2ZW50cyA9IGZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZmlsdGVyKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICByZXR1cm4gL15Mb2NrIENvbnRlbnRpb24gb24gLy50ZXN0KGV2ZW50LnRpdGxlKTsKLSAgICB9KTsKLQotICAgIHZhciBibG9ja2VkRHVyYXRpb24gPSBTdGF0aXN0aWNzLnN1bShldmVudHMsIGdldER1cmF0aW9uKTsKLSAgICBpZiAoYmxvY2tlZER1cmF0aW9uIDwgMSkKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICB2YXIgc3RhcnQgPSBTdGF0aXN0aWNzLm1pbihldmVudHMsIGdldFN0YXJ0KTsKLSAgICBldmVudHMucHVzaChmcmFtZSk7Ci0gICAgcmV0dXJuIG5ldyBBbGVydChBbmRyb2lkQXVkaXRvci5sb2NrQ29udGVudGlvbkFsZXJ0SW5mb18sIHN0YXJ0LCBldmVudHMsCi0gICAgICAgICAgICAgICAgICAgICB7ICdCbG9ja2VkIGR1cmF0aW9uJzogbmV3IFRpbWVEdXJhdGlvbihibG9ja2VkRHVyYXRpb24pIH0pOwotICB9OwotCi0gIEFuZHJvaWRBdWRpdG9yLnNjaGVkdWxpbmdBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKLSAgICAgICdTY2hlZHVsaW5nIGRlbGF5JywKLSAgICAgICdXb3JrIHRvIHByb2R1Y2UgdGhpcyBmcmFtZSB3YXMgZGVzY2hlZHVsZWQgZm9yIHNldmVyYWwgbWlsbGlzZWNvbmRzLCBjb250cmlidXRpbmcgdG8gamFuay4gRW5zdXJlIHRoYXQgY29kZSBvbiB0aGUgVUkgdGhyZWFkIGRvZXNuXCd0IGJsb2NrIG9uIHdvcmsgYmVpbmcgZG9uZSBvbiBvdGhlciB0aHJlYWRzLCBhbmQgdGhhdCBiYWNrZ3JvdW5kIHRocmVhZHMgKGRvaW5nIGUuZy4gbmV0d29yayBvciBiaXRtYXAgbG9hZGluZykgYXJlIHJ1bm5pbmcgYXQgYW5kcm9pZC5vcy5Qcm9jZXNzI1RIUkVBRF9QUklPUklUWV9CQUNLR1JPVU5EIG9yIGxvd2VyIHNvIHRoZXkgYXJlIGxlc3MgbGlrZWx5IHRvIGludGVycnVwdCB0aGUgVUkgdGhyZWFkLiBUaGVzZSBiYWNrZ3JvdW5kIHRocmVhZHMgc2hvdWxkIHNob3cgdXAgd2l0aCBhIHByaW9yaXR5IG51bWJlciBvZiAxMzAgb3IgaGlnaGVyIGluIHRoZSBzY2hlZHVsaW5nIHNlY3Rpb24gdW5kZXIgdGhlIEtlcm5lbCBwcm9jZXNzLicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICBBbmRyb2lkQXVkaXRvci5nZXRTY2hlZHVsaW5nQWxlcnRfID0gZnVuY3Rpb24oZnJhbWUpIHsKLSAgICB2YXIgdG90YWxEdXJhdGlvbiA9IDA7Ci0gICAgdmFyIHRvdGFsU3RhdHMgPSB7fTsKLSAgICBmcmFtZS50aHJlYWRUaW1lUmFuZ2VzLmZvckVhY2goZnVuY3Rpb24odHRyKSB7Ci0gICAgICB2YXIgc3RhdHMgPSB0dHIudGhyZWFkLmdldFNjaGVkdWxpbmdTdGF0c0ZvclJhbmdlKHR0ci5zdGFydCwgdHRyLmVuZCk7Ci0gICAgICB0ci5iLml0ZXJJdGVtcyhzdGF0cywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgewotICAgICAgICBpZiAoIShrZXkgaW4gdG90YWxTdGF0cykpCi0gICAgICAgICAgdG90YWxTdGF0c1trZXldID0gMDsKLSAgICAgICAgdG90YWxTdGF0c1trZXldICs9IHZhbHVlOwotICAgICAgICB0b3RhbER1cmF0aW9uICs9IHZhbHVlOwotICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICAvLyBvbmx5IGFsZXJ0IGlmIGZyYW1lIG5vdCBydW5uaW5nIGZvciA+IDNtcy4gTm90ZSB0aGF0IHdlIGV4cGVjdCBhIGZyYW1lCi0gICAgLy8gdG8gbmV2ZXIgZGVzY3JpYmUgaW50ZW50aW9uYWxseSBpZGxlIHRpbWUuCi0gICAgaWYgKCEoU0NIRURVTElOR19TVEFURS5SVU5OSU5HIGluIHRvdGFsU3RhdHMpIHx8Ci0gICAgICAgIHRvdGFsRHVyYXRpb24gPT0gMCB8fAotICAgICAgICB0b3RhbER1cmF0aW9uIC0gdG90YWxTdGF0c1tTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkddIDwgMykKLSAgICAgIHJldHVybjsKLQotICAgIHZhciBhcmdzID0ge307Ci0gICAgdHIuYi5pdGVySXRlbXModG90YWxTdGF0cywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgewotICAgICAgaWYgKGtleSA9PT0gU0NIRURVTElOR19TVEFURS5SVU5OQUJMRSkKLSAgICAgICAga2V5ID0gJ05vdCBzY2hlZHVsZWQsIGJ1dCBydW5uYWJsZSc7Ci0gICAgICBlbHNlIGlmIChrZXkgPT09IFNDSEVEVUxJTkdfU1RBVEUuVU5JTlRSX1NMRUVQKQotICAgICAgICBrZXkgPSAnQmxvY2tpbmcgSS9PIGRlbGF5JzsKLSAgICAgIGFyZ3Nba2V5XSA9IG5ldyBUaW1lRHVyYXRpb24odmFsdWUpOwotICAgIH0pOwotCi0gICAgcmV0dXJuIG5ldyBBbGVydChBbmRyb2lkQXVkaXRvci5zY2hlZHVsaW5nQWxlcnRJbmZvXywgZnJhbWUuc3RhcnQsIFtmcmFtZV0sCi0gICAgICAgICAgICAgICAgICAgICBhcmdzKTsKLSAgfTsKLQotICBBbmRyb2lkQXVkaXRvci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBBdWRpdG9yLnByb3RvdHlwZSwKLQotICAgIHJlbmFtZUFuZFNvcnRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubW9kZWwua2VybmVsLmltcG9ydGFudCA9IGZhbHNlOy8vIGF1dG8gY29sbGFwc2UKLSAgICAgIC8vIFN1cmZhY2VGbGluZ2VyIGZpcnN0LCBvdGhlciBwcm9jZXNzZXMgc29ydGVkIGJ5IHNsaWNlIGNvdW50Ci0gICAgICB0aGlzLm1vZGVsLmdldEFsbFByb2Nlc3NlcygpLmZvckVhY2goZnVuY3Rpb24ocHJvY2VzcykgewotICAgICAgICBpZiAodGhpcy5oZWxwZXIuc3VyZmFjZUZsaW5nZXIgJiYKLSAgICAgICAgICAgIHByb2Nlc3MgPT0gdGhpcy5oZWxwZXIuc3VyZmFjZUZsaW5nZXIucHJvY2VzcykgewotICAgICAgICAgIGlmICghcHJvY2Vzcy5uYW1lKQotICAgICAgICAgICAgcHJvY2Vzcy5uYW1lID0gJ1N1cmZhY2VGbGluZ2VyJzsKLSAgICAgICAgICBwcm9jZXNzLnNvcnRJbmRleCA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKLSAgICAgICAgICBwcm9jZXNzLmltcG9ydGFudCA9IGZhbHNlOyAvLyBhdXRvIGNvbGxhcHNlCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHVpVGhyZWFkID0gcHJvY2Vzcy5nZXRUaHJlYWQocHJvY2Vzcy5waWQpOwotICAgICAgICBpZiAoIXByb2Nlc3MubmFtZSAmJiB1aVRocmVhZCAmJiB1aVRocmVhZC5uYW1lKSB7Ci0gICAgICAgICAgaWYgKC9ebmRyb2lkXC4vLnRlc3QodWlUaHJlYWQubmFtZSkpCi0gICAgICAgICAgICB1aVRocmVhZC5uYW1lID0gJ2EnICsgdWlUaHJlYWQubmFtZTsKLSAgICAgICAgICBwcm9jZXNzLm5hbWUgPSB1aVRocmVhZC5uYW1lOwotCi0gICAgICAgICAgdWlUaHJlYWQubmFtZSA9ICdVSSBUaHJlYWQnOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJvY2Vzcy5zb3J0SW5kZXggPSAwOwotICAgICAgICBmb3IgKHZhciB0aWQgaW4gcHJvY2Vzcy50aHJlYWRzKSB7Ci0gICAgICAgICAgcHJvY2Vzcy5zb3J0SW5kZXggLT0gcHJvY2Vzcy50aHJlYWRzW3RpZF0uc2xpY2VHcm91cC5zbGljZXMubGVuZ3RoOwotICAgICAgICB9Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gZW5zdXJlIHNlcXVlbnRpYWwsIHJlbGF0aXZlIG9yZGVyIGZvciBVSS9SZW5kZXIvV29ya2VyIHRocmVhZHMKLSAgICAgIHRoaXMubW9kZWwuZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICAgIGlmICh0aHJlYWQudGlkID09IHRocmVhZC5wYXJlbnQucGlkKQotICAgICAgICAgIHRocmVhZC5zb3J0SW5kZXggPSAtMzsKLSAgICAgICAgaWYgKHRocmVhZC5uYW1lID09ICdSZW5kZXJUaHJlYWQnKQotICAgICAgICAgIHRocmVhZC5zb3J0SW5kZXggPSAtMjsKLSAgICAgICAgaWYgKC9eaHd1aVRhc2svLnRlc3QodGhyZWFkLm5hbWUpKQotICAgICAgICAgIHRocmVhZC5zb3J0SW5kZXggPSAtMTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBwdXNoRnJhbWVzQW5kSnVkZ2VKYW5rXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYmFkRnJhbWVzT2JzZXJ2ZWQgPSAwOwotICAgICAgdmFyIGZyYW1lc09ic2VydmVkID0gMDsKLSAgICAgIHZhciBzdXJmYWNlRmxpbmdlciA9IHRoaXMuaGVscGVyLnN1cmZhY2VGbGluZ2VyOwotCi0gICAgICB0aGlzLmhlbHBlci5hcHBzLmZvckVhY2goZnVuY3Rpb24oYXBwKSB7Ci0gICAgICAgIC8vIG92ZXJyaWRlIGZyYW1lIGxpc3QKLSAgICAgICAgYXBwLnByb2Nlc3MuZnJhbWVzID0gYXBwLmdldEZyYW1lcygpOwotCi0gICAgICAgIGFwcC5wcm9jZXNzLmZyYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgaWYgKGZyYW1lLnRvdGFsRHVyYXRpb24gPiBFWFBFQ1RFRF9GUkFNRV9USU1FX01TICogMikgewotICAgICAgICAgICAgYmFkRnJhbWVzT2JzZXJ2ZWQgKz0gMjsKLSAgICAgICAgICAgIGZyYW1lLnBlcmZDbGFzcyA9IEZSQU1FX1BFUkZfQ0xBU1MuVEVSUklCTEU7Ci0gICAgICAgICAgfSBlbHNlIGlmIChmcmFtZS50b3RhbER1cmF0aW9uID4gRVhQRUNURURfRlJBTUVfVElNRV9NUyB8fAotICAgICAgICAgICAgICBmcmFtZU1pc3NlZERlYWRsaW5lKGZyYW1lKSkgewotICAgICAgICAgICAgYmFkRnJhbWVzT2JzZXJ2ZWQrKzsKLSAgICAgICAgICAgIGZyYW1lLnBlcmZDbGFzcyA9IEZSQU1FX1BFUkZfQ0xBU1MuQkFEOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmcmFtZS5wZXJmQ2xhc3MgPSBGUkFNRV9QRVJGX0NMQVNTLkdPT0Q7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgZnJhbWVzT2JzZXJ2ZWQgKz0gYXBwLnByb2Nlc3MuZnJhbWVzLmxlbmd0aDsKLSAgICAgIH0pOwotCi0gICAgICBpZiAoZnJhbWVzT2JzZXJ2ZWQpIHsKLSAgICAgICAgdmFyIHBvcnRpb25CYWQgPSBiYWRGcmFtZXNPYnNlcnZlZCAvIGZyYW1lc09ic2VydmVkOwotICAgICAgICBpZiAocG9ydGlvbkJhZCA+IDAuMykKLSAgICAgICAgICB0aGlzLm1vZGVsLmZhdmljb25IdWUgPSAncmVkJzsKLSAgICAgICAgZWxzZSBpZiAocG9ydGlvbkJhZCA+IDAuMDUpCi0gICAgICAgICAgdGhpcy5tb2RlbC5mYXZpY29uSHVlID0gJ3llbGxvdyc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICB0aGlzLm1vZGVsLmZhdmljb25IdWUgPSAnZ3JlZW4nOwotICAgICAgfQotICAgIH0sCi0KLSAgICBwdXNoRXZlbnRJbmZvXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYXBwQW5ub3RhdG9yID0gbmV3IEFwcEFubm90YXRvcigpOwotICAgICAgdGhpcy5oZWxwZXIuYXBwcy5mb3JFYWNoKGZ1bmN0aW9uKGFwcCkgewotICAgICAgICBpZiAoYXBwLnVpVGhyZWFkKQotICAgICAgICAgIGFwcEFubm90YXRvci5hcHBseUV2ZW50SW5mb3MoYXBwLnVpVGhyZWFkLnNsaWNlR3JvdXApOwotICAgICAgICBpZiAoYXBwLnJlbmRlclRocmVhZCkKLSAgICAgICAgICBhcHBBbm5vdGF0b3IuYXBwbHlFdmVudEluZm9zKGFwcC5yZW5kZXJUaHJlYWQuc2xpY2VHcm91cCk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgcnVuQW5ub3RhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmhlbHBlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLnJlbmFtZUFuZFNvcnRfKCk7Ci0gICAgICB0aGlzLnB1c2hGcmFtZXNBbmRKdWRnZUphbmtfKCk7Ci0gICAgICB0aGlzLnB1c2hFdmVudEluZm9fKCk7Ci0KLSAgICAgIHRoaXMuaGVscGVyLml0ZXJhdGVJbXBvcnRhbnRTbGljZXMoZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgc2xpY2UuaW1wb3J0YW50ID0gdHJ1ZTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBydW5BdWRpdDogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIXRoaXMuaGVscGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBhbGVydHMgPSB0aGlzLm1vZGVsLmFsZXJ0czsKLSAgICAgIHRoaXMuaGVscGVyLmFwcHMuZm9yRWFjaChmdW5jdGlvbihhcHApIHsKLSAgICAgICAgYXBwLmdldEZyYW1lcygpLmZvckVhY2goZnVuY3Rpb24oZnJhbWUpIHsKLSAgICAgICAgICBhbGVydHMucHVzaC5hcHBseShhbGVydHMsIEFuZHJvaWRBdWRpdG9yLmdldFNhdmVMYXllckFsZXJ0c18oZnJhbWUpKTsKLQotICAgICAgICAgIC8vIHNraXAgbW9zdCBhbGVydHMgZm9yIG5ldXRyYWwgb3IgZ29vZCBmcmFtZXMKLSAgICAgICAgICBpZiAoZnJhbWUucGVyZkNsYXNzID09IEZSQU1FX1BFUkZfQ0xBU1MuTkVVVFJBTCB8fAotICAgICAgICAgICAgICBmcmFtZS5wZXJmQ2xhc3MgPT0gRlJBTUVfUEVSRl9DTEFTUy5HT09EKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0UGF0aEFsZXJ0XyhmcmFtZSk7Ci0gICAgICAgICAgaWYgKGFsZXJ0KQotICAgICAgICAgICAgYWxlcnRzLnB1c2goYWxlcnQpOwotICAgICAgICAgIHZhciBhbGVydCA9IEFuZHJvaWRBdWRpdG9yLmdldFVwbG9hZEFsZXJ0XyhmcmFtZSk7Ci0gICAgICAgICAgaWYgKGFsZXJ0KQotICAgICAgICAgICAgYWxlcnRzLnB1c2goYWxlcnQpOwotICAgICAgICAgIHZhciBhbGVydCA9IEFuZHJvaWRBdWRpdG9yLmdldExpc3RWaWV3QWxlcnRfKGZyYW1lKTsKLSAgICAgICAgICBpZiAoYWxlcnQpCi0gICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7Ci0gICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0TWVhc3VyZUxheW91dEFsZXJ0XyhmcmFtZSk7Ci0gICAgICAgICAgaWYgKGFsZXJ0KQotICAgICAgICAgICAgYWxlcnRzLnB1c2goYWxlcnQpOwotICAgICAgICAgIHZhciBhbGVydCA9IEFuZHJvaWRBdWRpdG9yLmdldFZpZXdEcmF3QWxlcnRfKGZyYW1lKTsKLSAgICAgICAgICBpZiAoYWxlcnQpCi0gICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7Ci0gICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0QmxvY2tpbmdHY0FsZXJ0XyhmcmFtZSk7Ci0gICAgICAgICAgaWYgKGFsZXJ0KQotICAgICAgICAgICAgYWxlcnRzLnB1c2goYWxlcnQpOwotICAgICAgICAgIHZhciBhbGVydCA9IEFuZHJvaWRBdWRpdG9yLmdldExvY2tDb250ZW50aW9uQWxlcnRfKGZyYW1lKTsKLSAgICAgICAgICBpZiAoYWxlcnQpCi0gICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7Ci0gICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0U2NoZWR1bGluZ0FsZXJ0XyhmcmFtZSk7Ci0gICAgICAgICAgaWYgKGFsZXJ0KQotICAgICAgICAgICAgYWxlcnRzLnB1c2goYWxlcnQpOwotICAgICAgICB9KTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICB0aGlzLmFkZFJlbmRlcmluZ0ludGVyYWN0aW9uUmVjb3JkcygpOwotICAgICAgdGhpcy5hZGRJbnB1dEludGVyYWN0aW9uUmVjb3JkcygpOwotICAgIH0sCi0KLSAgICBhZGRSZW5kZXJpbmdJbnRlcmFjdGlvblJlY29yZHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGV2ZW50cyA9IFtdOwotICAgICAgdGhpcy5oZWxwZXIuYXBwcy5mb3JFYWNoKGZ1bmN0aW9uKGFwcCkgewotICAgICAgICBldmVudHMucHVzaC5hcHBseShldmVudHMsIGFwcC5nZXRBbmltYXRpb25Bc3luY1NsaWNlcygpKTsKLSAgICAgICAgZXZlbnRzLnB1c2guYXBwbHkoZXZlbnRzLCBhcHAuZ2V0RnJhbWVzKCkpOwotICAgICAgfSk7Ci0KLSAgICAgIHZhciBtZXJnZXJGdW5jdGlvbiA9IGZ1bmN0aW9uKGV2ZW50cykgewotICAgICAgICB2YXIgaXIgPSBuZXcgSW50ZXJhY3Rpb25SZWNvcmQoJ1JlbmRlcmluZycsCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygnbXRfcmVuZGVyaW5nJyksCi0gICAgICAgICAgICBldmVudHNbMF0uc3RhcnQsCi0gICAgICAgICAgICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLmVuZCAtIGV2ZW50c1swXS5zdGFydCk7Ci0gICAgICAgIHRoaXMubW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQoaXIpOwotICAgICAgfS5iaW5kKHRoaXMpOwotICAgICAgdHIuZS5hdWRpdHMubWVyZ2VFeHBsaWNpdFJhbmdlcyhldmVudHMsIDMwLCBtZXJnZXJGdW5jdGlvbik7Ci0gICAgfSwKLQotICAgIGFkZElucHV0SW50ZXJhY3Rpb25SZWNvcmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBpbnB1dFNhbXBsZXMgPSBbXTsKLSAgICAgIHRoaXMuaGVscGVyLmFwcHMuZm9yRWFjaChmdW5jdGlvbihhcHApIHsKLSAgICAgICAgaW5wdXRTYW1wbGVzLnB1c2guYXBwbHkoaW5wdXRTYW1wbGVzLCBhcHAuZ2V0SW5wdXRTYW1wbGVzKCkpOwotICAgICAgfSk7Ci0KLSAgICAgIHZhciBtZXJnZXJGdW5jdGlvbiA9IGZ1bmN0aW9uKGV2ZW50cykgewotICAgICAgICB2YXIgaXIgPSBuZXcgSW50ZXJhY3Rpb25SZWNvcmQoJ0lucHV0JywKLSAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKCdtdF9pbnB1dCcpLAotICAgICAgICAgICAgZXZlbnRzWzBdLnRpbWVzdGFtcCwKLSAgICAgICAgICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0udGltZXN0YW1wIC0gZXZlbnRzWzBdLnRpbWVzdGFtcCk7Ci0gICAgICAgIHRoaXMubW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQoaXIpOwotICAgICAgfS5iaW5kKHRoaXMpOwotICAgICAgdmFyIHRpbWVzdGFtcEZ1bmN0aW9uID0gZnVuY3Rpb24oeCkgeyByZXR1cm4geC50aW1lc3RhbXA7IH07Ci0gICAgICB0ci5lLmF1ZGl0cy5tZXJnZUV4cGxpY2l0UmFuZ2VzKGlucHV0U2FtcGxlcywgMzAsIG1lcmdlckZ1bmN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRnVuY3Rpb24sIHRpbWVzdGFtcEZ1bmN0aW9uKTsKLSAgICB9Ci0gIH07Ci0KLSAgQXVkaXRvci5yZWdpc3RlcihBbmRyb2lkQXVkaXRvcik7Ci0KLSAgZnVuY3Rpb24gQXBwQW5ub3RhdG9yKCkgewotICAgIHRoaXMudGl0bGVJbmZvTG9va3VwID0ge307Ci0gICAgdGhpcy50aXRsZVBhcmVudExvb2t1cCA9IHt9OwotICAgIHRoaXMuYnVpbGRfKCk7Ci0gIH0KLQotICBBcHBBbm5vdGF0b3IucHJvdG90eXBlID0gewotICAgIGJ1aWxkXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcmVnaXN0ZXJFdmVudEluZm8gPSBmdW5jdGlvbihkaWN0KSB7Ci0gICAgICAgIHRoaXMudGl0bGVJbmZvTG9va3VwW2RpY3QudGl0bGVdID0gbmV3IEV2ZW50SW5mbygKLSAgICAgICAgICAgIGRpY3QudGl0bGUsIGRpY3QuZGVzY3JpcHRpb24sIGRpY3QuZG9jTGlua3MpOwotICAgICAgICBpZiAoZGljdC5wYXJlbnRzKQotICAgICAgICAgIHRoaXMudGl0bGVQYXJlbnRMb29rdXBbZGljdC50aXRsZV0gPSBkaWN0LnBhcmVudHM7Ci0gICAgICB9LmJpbmQodGhpcyk7Ci0KLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ2luZmxhdGUnLAotICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ29uc3RydWN0aW5nIGEgVmlldyBoaWVyYXJjaHkgZnJvbSBwcmUtcHJvY2Vzc2VkIFhNTCB2aWEgTGF5b3V0SW5mbGF0ZXIjbGF5b3V0LiBUaGlzIGluY2x1ZGVzIGNvbnN0cnVjdGluZyBhbGwgb2YgdGhlIFZpZXcgb2JqZWN0cyBpbiB0aGUgaGllcmFyY2h5LCBhbmQgYXBwbHlpbmcgc3R5bGVkIGF0dHJpYnV0ZXMuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgLy8gQWRhcHRlciB2aWV3Ci0gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAnb2J0YWluVmlldycsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdBZGFwdGVyI2dldFZpZXcoKSBjYWxsZWQgdG8gYmluZCBjb250ZW50IHRvIGEgcmVjeWNsZWQgVmlldyB0aGF0IGlzIGJlaW5nIHByZXNlbnRlZC4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdzZXR1cExpc3RJdGVtJywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ0F0dGFjaGVkIGEgbmV3bHktYm91bmQsIHJlY3ljbGVkIFZpZXcgdG8gaXRzIHBhcmVudCBMaXN0Vmlldy4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdzZXR1cEdyaWRJdGVtJywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ0F0dGFjaGVkIGEgbmV3bHktYm91bmQsIHJlY3ljbGVkIFZpZXcgdG8gaXRzIHBhcmVudCBHcmlkVmlldy4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gICAgICAvLyBDaG9yZW9ncmFwaGVyICh0cmFjaW5nIGVuYWJsZWQgb24gTSspCi0gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgdmFyIGNob3Jlb2dyYXBoZXJMaW5rcyA9IG5ldyBEb2NMaW5rQnVpbGRlcigpCi0gICAgICAgICAgLmFkZERhY1JlZignQ2hvcmVvZ3JhcGhlcicsICdhbmRyb2lkL3ZpZXcvQ2hvcmVvZ3JhcGhlci5odG1sJykgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgICAuYnVpbGQoKTsKLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ0Nob3Jlb2dyYXBoZXIjZG9GcmFtZScsCi0gICAgICAgICAgZG9jTGlua3M6IGNob3Jlb2dyYXBoZXJMaW5rcywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Nob3Jlb2dyYXBoZXIgZXhlY3V0ZXMgZnJhbWUgY2FsbGJhY2tzIGZvciBpbnB1dHMsIGFuaW1hdGlvbnMsIGFuZCByZW5kZXJpbmcgdHJhdmVyc2Fscy4gV2hlbiB0aGlzIHdvcmsgaXMgZG9uZSwgYSBmcmFtZSB3aWxsIGJlIHByZXNlbnRlZCB0byB0aGUgdXNlci4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdpbnB1dCcsCi0gICAgICAgICAgcGFyZW50czogWydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnXSwKLSAgICAgICAgICBkb2NMaW5rczogY2hvcmVvZ3JhcGhlckxpbmtzLAotICAgICAgICAgIGRlc2NyaXB0aW9uOiAnSW5wdXQgY2FsbGJhY2tzIGFyZSBwcm9jZXNzZWQuIFRoaXMgZ2VuZXJhbGx5IGVuY29tcGFzc2VzIGRpc3BhdGNoaW5nIGlucHV0IHRvIFZpZXdzLCBhcyB3ZWxsIGFzIGFueSB3b3JrIHRoZSBWaWV3cyBkbyB0byBwcm9jZXNzIHRoaXMgaW5wdXQvZ2VzdHVyZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdhbmltYXRpb24nLAotICAgICAgICAgIHBhcmVudHM6IFsnQ2hvcmVvZ3JhcGhlciNkb0ZyYW1lJ10sCi0gICAgICAgICAgZG9jTGlua3M6IGNob3Jlb2dyYXBoZXJMaW5rcywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FuaW1hdGlvbiBjYWxsYmFja3MgYXJlIHByb2Nlc3NlZC4gVGhpcyBpcyBnZW5lcmFsbHkgbWluaW1hbCB3b3JrLCBhcyBhbmltYXRpb25zIGRldGVybWluZSBwcm9ncmVzcyBmb3IgdGhlIGZyYW1lLCBhbmQgcHVzaCBuZXcgc3RhdGUgdG8gYW5pbWF0ZWQgb2JqZWN0cyAoc3VjaCBhcyBzZXR0aW5nIFZpZXcgcHJvcGVydGllcykuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAndHJhdmVyc2FscycsCi0gICAgICAgICAgcGFyZW50czogWydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnXSwKLSAgICAgICAgICBkb2NMaW5rczogY2hvcmVvZ3JhcGhlckxpbmtzLAotICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUHJpbWFyeSBkcmF3IHRyYXZlcnNhbHMuIFRoaXMgaXMgdGhlIHByaW1hcnkgdHJhdmVyc2FsIG9mIHRoZSBWaWV3IGhpZXJhcmNoeSwgaW5jbHVkaW5nIGxheW91dCBhbmQgZHJhdyBwYXNzZXMuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgLy8gcGVyZm9ybVRyYXZlcnNhbHMgKyBzdWIgbWV0aG9kcwotICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAgICAgIHZhciB0cmF2ZXJzYWxQYXJlbnRzID0gWydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnLCAncGVyZm9ybVRyYXZlcnNhbHMnXTsKLSAgICAgIHZhciBsYXlvdXRMaW5rcyA9IG5ldyBEb2NMaW5rQnVpbGRlcigpCi0gICAgICAgICAgLmFkZERhY1JlZignVmlldyNMYXlvdXQnLCAnYW5kcm9pZC92aWV3L1ZpZXcuaHRtbCNMYXlvdXQnKQotICAgICAgICAgIC5idWlsZCgpOwotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAncGVyZm9ybVRyYXZlcnNhbHMnLAotICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQSBkcmF3aW5nIHRyYXZlcnNhbCBvZiB0aGUgVmlldyBoaWVyYXJjaHksIGNvbXByaXNlZCBvZiBhbGwgbGF5b3V0IGFuZCBkcmF3aW5nIG5lZWRlZCB0byBwcm9kdWNlIHRoZSBmcmFtZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdtZWFzdXJlJywKLSAgICAgICAgICBwYXJlbnRzOiB0cmF2ZXJzYWxQYXJlbnRzLAotICAgICAgICAgIGRvY0xpbmtzOiBsYXlvdXRMaW5rcywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpcnN0IG9mIHR3byBwaGFzZXMgaW4gdmlldyBoaWVyYXJjaHkgbGF5b3V0LiBWaWV3cyBhcmUgYXNrZWQgdG8gc2l6ZSB0aGVtc2VsdmVzIGFjY29yZGluZyB0byBjb25zdHJhaW50cyBzdXBwbGllZCBieSB0aGVpciBwYXJlbnQuIFNvbWUgVmlld0dyb3VwcyBtYXkgbWVhc3VyZSBhIGNoaWxkIG1vcmUgdGhhbiBvbmNlIHRvIGhlbHAgc2F0aXNmeSB0aGVpciBvd24gY29uc3RyYWludHMuIE5lc3RpbmcgVmlld0dyb3VwcyB0aGF0IG1lYXN1cmUgY2hpbGRyZW4gbW9yZSB0aGFuIG9uY2UgY2FuIGxlYWQgdG8gZXhjZXNzaXZlIGFuZCByZXBlYXRlZCB3b3JrLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ2xheW91dCcsCi0gICAgICAgICAgcGFyZW50czogdHJhdmVyc2FsUGFyZW50cywKLSAgICAgICAgICBkb2NMaW5rczogbGF5b3V0TGlua3MsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdTZWNvbmQgb2YgdHdvIHBoYXNlcyBpbiB2aWV3IGhpZXJhcmNoeSBsYXlvdXQsIHJlcG9zaXRpb25pbmcgY29udGVudCBhbmQgY2hpbGQgVmlld3MgaW50byB0aGVpciBuZXcgbG9jYXRpb25zLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHZhciBkcmF3U3RyaW5nID0gJ0RyYXcgcGFzcyBvdmVyIHRoZSBWaWV3IGhpZXJhcmNoeS4gRXZlcnkgaW52YWxpZGF0ZWQgVmlldyB3aWxsIGhhdmUgaXRzIGRyYXdpbmcgY29tbWFuZHMgcmVjb3JkZWQuIE9uIEFuZHJvaWQgdmVyc2lvbnMgcHJpb3IgdG8gTG9sbGlwb3AsIHRoaXMgd291bGQgYWxzbyBpbmNsdWRlIHRoZSBpc3N1aW5nIG9mIGRyYXcgY29tbWFuZHMgdG8gdGhlIEdQVS4gU3RhcnRpbmcgd2l0aCBMb2xsaXBvcCwgaXQgb25seSBpbmNsdWRlcyB0aGUgcmVjb3JkaW5nIG9mIGNvbW1hbmRzLCBhbmQgc3luY2luZyB0aGF0IGluZm9ybWF0aW9uIHRvIHRoZSBSZW5kZXJUaHJlYWQuJzsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ2RyYXcnLAotICAgICAgICAgIHBhcmVudHM6IHRyYXZlcnNhbFBhcmVudHMsCi0gICAgICAgICAgZGVzY3JpcHRpb246IGRyYXdTdHJpbmd9KTsKLQotICAgICAgdmFyIHJlY29yZFN0cmluZyA9ICdFdmVyeSBpbnZhbGlkYXRlZCBWaWV3XCdzIGRyYXdpbmcgY29tbWFuZHMgYXJlIHJlY29yZGVkLiBFYWNoIHdpbGwgaGF2ZSBWaWV3I2RyYXcoKSBjYWxsZWQsIGFuZCBpcyBwYXNzZWQgYSBDYW52YXMgdGhhdCB3aWxsIHJlY29yZCBhbmQgc3RvcmUgaXRzIGRyYXdpbmcgY29tbWFuZHMgdW50aWwgaXQgaXMgbmV4dCBpbnZhbGlkYXRlZC9yZXJlY29yZGVkLic7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdnZXREaXNwbGF5TGlzdCcsIC8vIExlZ2FjeSBuYW1lIGZvciBjb21wYXRpYmlsaXR5LgotICAgICAgICAgIHBhcmVudHM6IFsnZHJhdyddLAotICAgICAgICAgIGRlc2NyaXB0aW9uOiByZWNvcmRTdHJpbmd9KTsKLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ1JlY29yZCBWaWV3I2RyYXcoKScsCi0gICAgICAgICAgcGFyZW50czogWydkcmF3J10sCi0gICAgICAgICAgZGVzY3JpcHRpb246IHJlY29yZFN0cmluZ30pOwotCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdkcmF3RGlzcGxheUxpc3QnLAotICAgICAgICAgIHBhcmVudHM6IFsnZHJhdyddLAotICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRXhlY3V0aW9uIG9mIHJlY29yZGVkIGRyYXcgY29tbWFuZHMgdG8gZ2VuZXJhdGUgYSBmcmFtZS4gVGhpcyByZXByZXNlbnRzIHRoZSBhY3R1YWwgZm9ybWF0aW9uIGFuZCBpc3N1aW5nIG9mIGRyYXdpbmcgY29tbWFuZHMgdG8gdGhlIEdQVS4gT24gQW5kcm9pZCBMIGFuZCBoaWdoZXIgZGV2aWNlcywgdGhpcyB3b3JrIGlzIGRvbmUgb24gYSBkZWRpY2F0ZWQgUmVuZGVyVGhyZWFkLCBpbnN0ZWFkIG9mIG9uIHRoZSBVSSBUaHJlYWQuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgLy8gUmVuZGVyVGhyZWFkCi0gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAnRHJhd0ZyYW1lJywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlbmRlclRocmVhZCBwb3J0aW9uIG9mIHRoZSBzdGFuZGFyZCBVSS9SZW5kZXJUaHJlYWQgc3BsaXQgZnJhbWUuIFRoaXMgcmVwcmVzZW50cyB0aGUgYWN0dWFsIGZvcm1hdGlvbiBhbmQgaXNzdWluZyBvZiBkcmF3aW5nIGNvbW1hbmRzIHRvIHRoZSBHUFUuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAnZG9GcmFtZScsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdSZW5kZXJUaHJlYWQgYW5pbWF0aW9uIGZyYW1lLiBSZXByZXNlbnRzIGRyYXdpbmcgd29yayBkb25lIGJ5IHRoZSBSZW5kZXJUaHJlYWQgb24gYSBmcmFtZSB3aGVyZSB0aGUgVUkgdGhyZWFkIGRpZCBub3QgcHJvZHVjZSBuZXcgZHJhd2luZyBjb250ZW50Lid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ3N5bmNGcmFtZVN0YXRlJywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N5bmMgc3RhZ2UgYmV0d2VlbiB0aGUgVUkgdGhyZWFkIGFuZCB0aGUgUmVuZGVyVGhyZWFkLCB3aGVyZSB0aGUgVUkgdGhyZWFkIGhhbmRzIG9mZiBhIGZyYW1lIChpbmNsdWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgbW9kaWZpZWQgVmlld3MpLiBUaW1lIGluIHRoaXMgbWV0aG9kIHByaW1hcmlseSBjb25zaXN0cyBvZiB1cGxvYWRpbmcgbW9kaWZpZWQgQml0bWFwcyB0byB0aGUgR1BVLiBBZnRlciB0aGlzIHN5bmMgaXMgY29tcGxldGVkLCB0aGUgVUkgdGhyZWFkIGlzIHVuYmxvY2tlZCwgYW5kIHRoZSBSZW5kZXJUaHJlYWQgc3RhcnRzIHRvIHJlbmRlciB0aGUgZnJhbWUuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAnZmx1c2ggZHJhd2luZyBjb21tYW5kcycsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdJc3N1aW5nIHRoZSBub3cgY29tcGxldGUgZHJhd2luZyBjb21tYW5kcyB0byB0aGUgR1BVLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ2VnbFN3YXBCdWZmZXJzJywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NvbXBsZXRlIEdQVSByZW5kZXJpbmcgb2YgdGhlIGZyYW1lLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAgICAgIC8vIFJlY3ljbGVyVmlldwotICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ1JWIFNjcm9sbCcsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgY2FsY3VsYXRpbmcgYSBzY3JvbGwuIElmIHRoZXJlIGFyZSB0b28gbWFueSBvZiB0aGVzZSBpbiBTeXN0cmFjZSwgc29tZSBWaWV3cyBpbnNpZGUgUmVjeWNsZXJWaWV3IG1pZ2h0IGJlIGNhdXNpbmcgaXQuIFRyeSB0byBhdm9pZCB1c2luZyBFZGl0VGV4dCwgZm9jdXNhYmxlIHZpZXdzIG9yIGhhbmRsZSB0aGVtIHdpdGggY2FyZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdSViBPbkxheW91dCcsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdPbkxheW91dCBoYXMgYmVlbiBjYWxsZWQgYnkgdGhlIFZpZXcgc3lzdGVtLiBJZiB0aGlzIHNob3dzIHVwIHRvbyBtYW55IHRpbWVzIGluIFN5c3RyYWNlLCBtYWtlIHN1cmUgdGhlIGNoaWxkcmVuIG9mIFJlY3ljbGVyVmlldyBkbyBub3QgdXBkYXRlIHRoZW1zZWx2ZXMgZGlyZWN0bHkuIFRoaXMgd2lsbCBjYXVzZSBhIGZ1bGwgcmUtbGF5b3V0IGJ1dCB3aGVuIGl0IGhhcHBlbnMgdmlhIHRoZSBBZGFwdGVyIG5vdGlmeUl0ZW1DaGFuZ2VkLCBSZWN5Y2xlclZpZXcgY2FuIGF2b2lkIGZ1bGwgbGF5b3V0IGNhbGN1bGF0aW9uLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKLSAgICAgICAgICB0aXRsZTogJ1JWIEZ1bGxJbnZhbGlkYXRlJywKLSAgICAgICAgICBkZXNjcmlwdGlvbjogJ05vdGlmeURhdGFTZXRDaGFuZ2VkIG9yIGVxdWFsIGhhcyBiZWVuIGNhbGxlZC4gSWYgdGhpcyBpcyB0YWtpbmcgYSBsb25nIHRpbWUsIHRyeSBzZW5kaW5nIGdyYW51bGFyIG5vdGlmeSBhZGFwdGVyIGNoYW5nZXMgaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgbm90aWZ5RGF0YVNldENoYW5nZWQgb3Igc2V0QWRhcHRlciAvIHN3YXBBZGFwdGVyLiBBZGRpbmcgc3RhYmxlIGlkcyB0byB5b3VyIGFkYXB0ZXIgbWlnaHQgaGVscC4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdSViBQYXJ0aWFsSW52YWxpZGF0ZScsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgcmViaW5kaW5nIGEgVmlldy4gSWYgdGhpcyBpcyB0YWtpbmcgYSBsb3Qgb2YgdGltZSwgY29uc2lkZXIgb3B0aW1pemluZyB5b3VyIGxheW91dCBvciBtYWtlIHN1cmUgeW91IGFyZSBub3QgZG9pbmcgZXh0cmEgb3BlcmF0aW9ucyBpbiBvbkJpbmRWaWV3SG9sZGVyIGNhbGwuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAnUlYgT25CaW5kVmlldycsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgcmViaW5kaW5nIGEgVmlldy4gSWYgdGhpcyBpcyB0YWtpbmcgYSBsb3Qgb2YgdGltZSwgY29uc2lkZXIgb3B0aW1pemluZyB5b3VyIGxheW91dCBvciBtYWtlIHN1cmUgeW91IGFyZSBub3QgZG9pbmcgZXh0cmEgb3BlcmF0aW9ucyBpbiBvbkJpbmRWaWV3SG9sZGVyIGNhbGwuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgcmVnaXN0ZXJFdmVudEluZm8oewotICAgICAgICAgIHRpdGxlOiAnUlYgQ3JlYXRlVmlldycsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgY3JlYXRpbmcgYSBuZXcgVmlldy4gSWYgdG9vIG1hbnkgb2YgdGhlc2UgYXJlIHByZXNlbnQ6IDEpIFRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbSBpbiBSZWN5Y2xpbmcgKGUuZy4gY3VzdG9tIEFuaW1hdGlvbnMgdGhhdCBzZXQgdHJhbnNpZW50IHN0YXRlIGFuZCBwcmV2ZW50IHJlY3ljbGluZyBvciBJdGVtQW5pbWF0b3Igbm90IGltcGxlbWVudGluZyB0aGUgY29udHJhY3QgcHJvcGVybHkuIFNlZSBBZGFwdGVyI29uRmFpbGVkVG9SZWN5Y2xlVmlldyhWaWV3SG9sZGVyKS4gMikgVGhlcmUgbWF5IGJlIHRvbyBtYW55IGl0ZW0gdmlldyB0eXBlcy4gVHJ5IG1lcmdpbmcgdGhlbS4gMykgVGhlcmUgbWlnaHQgYmUgdG9vIG1hbnkgaXRlbUNoYW5nZSBhbmltYXRpb25zIGFuZCBub3QgZW5vdWdoIHNwYWNlIGluIFJlY3ljbGVyUG9vbC4gVHJ5IGluY3JlYXNpbmcgeW91ciBwb29sIHNpemUgYW5kIGl0ZW0gY2FjaGUgc2l6ZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gICAgICAvLyBHcmFwaGljcyArIENvbXBvc2l0aW9uCi0gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgLy8gVE9ETyhjY3JhaWspOiBTdXJmYWNlRmxpbmdlciB3b3JrCi0gICAgICByZWdpc3RlckV2ZW50SW5mbyh7Ci0gICAgICAgICAgdGl0bGU6ICdlZ2xTd2FwQnVmZmVycycsCi0gICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgQ1BVIGhhcyBmaW5pc2hlZCBwcm9kdWNpbmcgZHJhd2luZyBjb21tYW5kcywgYW5kIGlzIGZsdXNoaW5nIGRyYXdpbmcgd29yayB0byB0aGUgR1BVLCBhbmQgcG9zdGluZyB0aGF0IGJ1ZmZlciB0byB0aGUgY29uc3VtZXIgKHdoaWNoIGlzIG9mdGVuIFN1cmZhY2VGbGluZ2VyIHdpbmRvdyBjb21wb3NpdGlvbikuIE9uY2UgdGhpcyBpcyBjb21wbGV0ZWQsIHRoZSBHUFUgY2FuIHByb2R1Y2UgdGhlIGZyYW1lIGNvbnRlbnQgd2l0aG91dCBhbnkgaW52b2x2ZW1lbnQgZnJvbSB0aGUgQ1BVLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICB9LAotCi0gICAgYXBwbHlFdmVudEluZm9zUmVjdXJzaXZlXzogZnVuY3Rpb24ocGFyZW50TmFtZXMsIHNsaWNlKSB7Ci0gICAgICB2YXIgY2hlY2tFeHBlY3RlZFBhcmVudE5hbWVzID0gZnVuY3Rpb24oZXhwZWN0ZWRQYXJlbnROYW1lcykgewotICAgICAgICBpZiAoIWV4cGVjdGVkUGFyZW50TmFtZXMpCi0gICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIHJldHVybiBleHBlY3RlZFBhcmVudE5hbWVzLnNvbWUoZnVuY3Rpb24obmFtZSkgewotICAgICAgICAgIHJldHVybiBuYW1lIGluIHBhcmVudE5hbWVzOwotICAgICAgICB9KTsKLSAgICAgIH0KLQotCi0gICAgICAvLyBTZXQgRXZlbnRJbmZvIG9uIHRoZSBzbGljZSBpZiBpdCBtYXRjaGVzIHRpdGxlLCBhbmQgcGFyZW50LgotICAgICAgaWYgKHNsaWNlLnRpdGxlIGluIHRoaXMudGl0bGVJbmZvTG9va3VwKSB7Ci0gICAgICAgIGlmIChjaGVja0V4cGVjdGVkUGFyZW50TmFtZXModGhpcy50aXRsZVBhcmVudExvb2t1cFtzbGljZS50aXRsZV0pKQotICAgICAgICAgIHNsaWNlLmluZm8gPSB0aGlzLnRpdGxlSW5mb0xvb2t1cFtzbGljZS50aXRsZV07Ci0gICAgICB9Ci0KLSAgICAgIC8vIFB1c2ggc2xpY2UgaW50byBwYXJlbnROYW1lcywgYW5kIHJlY3Vyc2Ugb3ZlciBzdWJTbGljZXMuCi0gICAgICBpZiAoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgLy8gSW5jcmVtZW50IHRpdGxlIGluIHBhcmVudE5hbWUgZGljdC4KLSAgICAgICAgaWYgKCEoc2xpY2UudGl0bGUgaW4gcGFyZW50TmFtZXMpKQotICAgICAgICAgIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXSA9IDA7Ci0gICAgICAgIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXSsrOwotCi0gICAgICAgIC8vIFJlY3Vyc2Ugb3ZlciBzdWJTbGljZXMuCi0gICAgICAgIHNsaWNlLnN1YlNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlNsaWNlKSB7Ci0gICAgICAgICAgdGhpcy5hcHBseUV2ZW50SW5mb3NSZWN1cnNpdmVfKHBhcmVudE5hbWVzLCBzdWJTbGljZSk7Ci0gICAgICAgIH0sIHRoaXMpOwotCi0gICAgICAgIC8vIERlY3JlbWVudCB0aXRsZSBpbiBwYXJlbnROYW1lIGRpY3QuCi0gICAgICAgIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXS0tOwotICAgICAgICBpZiAocGFyZW50TmFtZXNbc2xpY2UudGl0bGVdID09IDApCi0gICAgICAgICAgZGVsZXRlIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgYXBwbHlFdmVudEluZm9zOiBmdW5jdGlvbihzbGljZUdyb3VwKSB7Ci0gICAgICBzbGljZUdyb3VwLnRvcExldmVsU2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgdGhpcy5hcHBseUV2ZW50SW5mb3NSZWN1cnNpdmVfKHt9LCBzbGljZSk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBBbmRyb2lkQXVkaXRvcjogQW5kcm9pZEF1ZGl0b3IKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvY2MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9jYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTI3YWNkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9jYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3RpbGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCI+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlYmE3MzEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9kZWJ1Z2dlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9rZXlfZXZlbnRfbWFuYWdlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kcmFnX2hhbmRsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9pbmZvX2Jhci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9saXN0X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvbW91c2VfbW9kZV9zZWxlY3Rvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9vdmVybGF5Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgotCi08dGVtcGxhdGUgaWQ9ImRpc3BsYXktaXRlbS1kZWJ1Z2dlci10ZW1wbGF0ZSI+Ci0gIDxzdHlsZT4KLSAgKiAvZGVlcC8gZGlzcGxheS1pdGVtLWRlYnVnZ2VyIHsKLSAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgfQotCi0gICogL2RlZXAvIGRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgewotICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgbWluLXdpZHRoOiAzMDBweDsKLSAgICBvdmVyZmxvdy15OiBhdXRvOwotICB9Ci0KLSAgKiAvZGVlcC8gZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gbGVmdC1wYW5lbCA+IGRpc3BsYXktaXRlbS1pbmZvIHsKLSAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAgIHBhZGRpbmctdG9wOiAycHg7Ci0gIH0KLQotICAqIC9kZWVwLyBkaXNwbGF5LWl0ZW0tZGVidWdnZXIgPiBsZWZ0LXBhbmVsID4gZGlzcGxheS1pdGVtLWluZm8gLnRpdGxlIHsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICBtYXJnaW4tbGVmdDogNXB4OwotICAgIG1hcmdpbi1yaWdodDogNXB4OwotICB9Ci0KLSAgKiAvZGVlcC8gZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gbGVmdC1wYW5lbCA+IGRpc3BsYXktaXRlbS1pbmZvIC5leHBvcnQgewotICAgIG1hcmdpbjogNXB4OwotICB9Ci0KLSAgKiAvZGVlcC8gZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4geC1kcmFnLWhhbmRsZSB7Ci0gICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKLSAgfQotCi0gICogL2RlZXAvIGRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IHJpZ2h0LXBhbmVsIHsKLSAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgfQotCi0gICogL2RlZXAvIGRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgPgotICAgICAgZGlzcGxheS1pdGVtLWluZm8gPiBoZWFkZXIgewotICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNTU1OwotICB9Ci0KLSAgKiAvZGVlcC8gZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gbGVmdC1wYW5lbCA+Ci0gICAgICBkaXNwbGF5LWl0ZW0taW5mbyA+IC54LWxpc3QtdmlldyA+IGRpdiB7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1NTU7Ci0gICAgcGFkZGluZy10b3A6IDNweDsKLSAgICBwYWRkaW5nLWJvdHRvbTogM3B4OwotICAgIHBhZGRpbmctbGVmdDogNXB4OwotICB9Ci0KLSAgKiAvZGVlcC8gZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gbGVmdC1wYW5lbCA+IGRpc3BsYXktaXRlbS1pbmZvID4KLSAgICAgIC54LWxpc3QtdmlldyA+IGRpdjpob3ZlciB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsKLSAgICBjdXJzb3I6IHBvaW50ZXI7Ci0gIH0KLQotICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotICAqIC9kZWVwLyBkaXNwbGF5LWl0ZW0tZGVidWdnZXIgPiByaWdodC1wYW5lbCA+Ci0gICAgICBwaWN0dXJlLW9wcy1saXN0LXZpZXcuaGFzUGljdHVyZU9wcyB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gIH0KLQotICAqIC9kZWVwLyBkaXNwbGF5LWl0ZW0tZGVidWdnZXIgPiByaWdodC1wYW5lbCA+IHgtZHJhZy1oYW5kbGUuaGFzUGljdHVyZU9wcyB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gIH0KLQotICAqIC9kZWVwLyBkaXNwbGF5LWl0ZW0tZGVidWdnZXIgPiByaWdodC1wYW5lbCA+IHBpY3R1cmUtb3BzLWxpc3QtdmlldyB7Ci0gICAgZGlzcGxheTogbm9uZTsKLSAgICBvdmVyZmxvdy15OiBhdXRvOwotICB9Ci0KLSAgKiAvZGVlcC8gZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gcmlnaHQtcGFuZWwgPiB4LWRyYWctaGFuZGxlIHsKLSAgICBkaXNwbGF5OiBub25lOwotICB9Ci0KLSAgKiAvZGVlcC8gcmFzdGVyLWFyZWEgewotICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKLSAgICBtaW4taGVpZ2h0OiAyMDBweDsKLSAgICBtaW4td2lkdGg6IDIwMHB4OwotICAgIG92ZXJmbG93LXk6IGF1dG87Ci0gICAgcGFkZGluZy1sZWZ0OiA1cHg7Ci0gIH0KLSAgPC9zdHlsZT4KLQotICA8bGVmdC1wYW5lbD4KLSAgICA8ZGlzcGxheS1pdGVtLWluZm8+Ci0gICAgICA8aGVhZGVyPgotICAgICAgICA8c3BhbiBjbGFzcz0ndGl0bGUnPkRpc3BsYXkgSXRlbSBMaXN0PC9zcGFuPgotICAgICAgICA8c3BhbiBjbGFzcz0nc2l6ZSc+PC9zcGFuPgotICAgICAgICA8ZGl2IGNsYXNzPSdleHBvcnQnPgotICAgICAgICAgIDxpbnB1dCBjbGFzcz0nZGxmaWxlbmFtZScgdHlwZT0ndGV4dCcgdmFsdWU9J2Rpc3BsYXlpdGVtbGlzdC5qc29uJyAvPgotICAgICAgICAgIDxidXR0b24gY2xhc3M9J2RsZXhwb3J0Jz5FeHBvcnQgZGlzcGxheSBpdGVtIGxpc3Q8L2J1dHRvbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9J2V4cG9ydCc+Ci0gICAgICAgICAgPGlucHV0IGNsYXNzPSdza3BmaWxlbmFtZScgdHlwZT0ndGV4dCcgdmFsdWU9J3NrcGljdHVyZS5za3AnIC8+Ci0gICAgICAgICAgPGJ1dHRvbiBjbGFzcz0nc2twZXhwb3J0Jz5FeHBvcnQgbGlzdCBhcyBTa1BpY3R1cmU8L2J1dHRvbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICA8L2hlYWRlcj4KLSAgICA8L2Rpc3BsYXktaXRlbS1pbmZvPgotICA8L2xlZnQtcGFuZWw+Ci0gIDxyaWdodC1wYW5lbD4KLSAgICA8cmFzdGVyLWFyZWE+PGNhbnZhcz48L2NhbnZhcz48L3Jhc3Rlci1hcmVhPgotICA8L3JpZ2h0LXBhbmVsPgotPC90ZW1wbGF0ZT4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotCi0gIC8qKgotICAgKiBEaXNwbGF5SXRlbURlYnVnZ2VyIGlzIGEgdmlldyBvZiBhIERpc3BsYXlJdGVtTGlzdFNuYXBzaG90IGZvciBpbnNwZWN0aW5nCi0gICAqIGEgZGlzcGxheSBpdGVtIGxpc3QgYW5kIHRoZSBwaWN0dXJlcyB3aXRoaW4gaXQuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIERpc3BsYXlJdGVtRGVidWdnZXIgPSB0ci5iLnVpLmRlZmluZSgnZGlzcGxheS1pdGVtLWRlYnVnZ2VyJyk7Ci0KLSAgRGlzcGxheUl0ZW1EZWJ1Z2dlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG5vZGUgPSB0ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNkaXNwbGF5LWl0ZW0tZGVidWdnZXItdGVtcGxhdGUnLAotICAgICAgICAgIFRISVNfRE9DKTsKLQotICAgICAgdGhpcy5hcHBlbmRDaGlsZChub2RlKTsKLQotICAgICAgdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy56b29tU2NhbGVWYWx1ZV8gPSAxOwotCi0gICAgICB0aGlzLnNpemVJbmZvXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLnNpemUnKTsKLSAgICAgIHRoaXMucmFzdGVyQXJlYV8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3Jhc3Rlci1hcmVhJyk7Ci0gICAgICB0aGlzLnJhc3RlckNhbnZhc18gPSB0aGlzLnJhc3RlckFyZWFfLnF1ZXJ5U2VsZWN0b3IoJ2NhbnZhcycpOwotICAgICAgdGhpcy5yYXN0ZXJDdHhfID0gdGhpcy5yYXN0ZXJDYW52YXNfLmdldENvbnRleHQoJzJkJyk7Ci0KLSAgICAgIHRoaXMudHJhY2tNb3VzZV8oKTsKLQotICAgICAgdGhpcy5kaXNwbGF5SXRlbUluZm9fID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdkaXNwbGF5LWl0ZW0taW5mbycpOwotICAgICAgdGhpcy5kaXNwbGF5SXRlbUluZm9fLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ2NsaWNrJywgdGhpcy5vbkRpc3BsYXlJdGVtSW5mb0NsaWNrXy5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0KLSAgICAgIHRoaXMuZGlzcGxheUl0ZW1MaXN0Vmlld18gPSBuZXcgdHIuYi51aS5MaXN0VmlldygpOwotICAgICAgdGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlZCcsCi0gICAgICAgICAgdGhpcy5vbkRpc3BsYXlJdGVtTGlzdFNlbGVjdGlvbl8uYmluZCh0aGlzKSk7Ci0gICAgICB0aGlzLmRpc3BsYXlJdGVtSW5mb18uYXBwZW5kQ2hpbGQodGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xyk7Ci0KLSAgICAgIHRoaXMuZGlzcGxheUxpc3RGaWxlbmFtZV8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kbGZpbGVuYW1lJyk7Ci0gICAgICB0aGlzLmRpc3BsYXlMaXN0RXhwb3J0QnV0dG9uXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLmRsZXhwb3J0Jyk7Ci0gICAgICB0aGlzLmRpc3BsYXlMaXN0RXhwb3J0QnV0dG9uXy5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdjbGljaycsIHRoaXMub25FeHBvcnREaXNwbGF5TGlzdENsaWNrZWRfLmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLnNrcEZpbGVuYW1lXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLnNrcGZpbGVuYW1lJyk7Ci0gICAgICB0aGlzLnNrcEV4cG9ydEJ1dHRvbl8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5za3BleHBvcnQnKTsKLSAgICAgIHRoaXMuc2twRXhwb3J0QnV0dG9uXy5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdjbGljaycsIHRoaXMub25FeHBvcnRTa1BpY3R1cmVDbGlja2VkXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdmFyIGxlZnRQYW5lbCA9IHRoaXMucXVlcnlTZWxlY3RvcignbGVmdC1wYW5lbCcpOwotCi0gICAgICB2YXIgbWlkZGxlRHJhZ0hhbmRsZSA9IG5ldyB0ci5iLnVpLkRyYWdIYW5kbGUoKTsKLSAgICAgIG1pZGRsZURyYWdIYW5kbGUuaG9yaXpvbnRhbCA9IGZhbHNlOwotICAgICAgbWlkZGxlRHJhZ0hhbmRsZS50YXJnZXQgPSBsZWZ0UGFuZWw7Ci0KLSAgICAgIHZhciByaWdodFBhbmVsID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdyaWdodC1wYW5lbCcpOwotCi0gICAgICB0aGlzLmluZm9CYXJfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1pbmZvLWJhcicpOwotICAgICAgdGhpcy5yYXN0ZXJBcmVhXy5pbnNlcnRCZWZvcmUodGhpcy5pbmZvQmFyXywgdGhpcy5yYXN0ZXJDYW52YXNfKTsKLQotICAgICAgdGhpcy5pbnNlcnRCZWZvcmUobWlkZGxlRHJhZ0hhbmRsZSwgcmlnaHRQYW5lbCk7Ci0KLSAgICAgIHRoaXMucGljdHVyZV8gPSB1bmRlZmluZWQ7Ci0KLSAgICAgIHRoaXMucGljdHVyZU9wc0xpc3RWaWV3XyA9IG5ldyB0ci5lLmNjLlBpY3R1cmVPcHNMaXN0VmlldygpOwotICAgICAgcmlnaHRQYW5lbC5pbnNlcnRCZWZvcmUodGhpcy5waWN0dXJlT3BzTGlzdFZpZXdfLCB0aGlzLnJhc3RlckFyZWFfKTsKLQotICAgICAgdGhpcy5waWN0dXJlT3BzTGlzdERyYWdIYW5kbGVfID0gbmV3IHRyLmIudWkuRHJhZ0hhbmRsZSgpOwotICAgICAgdGhpcy5waWN0dXJlT3BzTGlzdERyYWdIYW5kbGVfLmhvcml6b250YWwgPSBmYWxzZTsKLSAgICAgIHRoaXMucGljdHVyZU9wc0xpc3REcmFnSGFuZGxlXy50YXJnZXQgPSB0aGlzLnBpY3R1cmVPcHNMaXN0Vmlld187Ci0gICAgICByaWdodFBhbmVsLmluc2VydEJlZm9yZSh0aGlzLnBpY3R1cmVPcHNMaXN0RHJhZ0hhbmRsZV8sIHRoaXMucmFzdGVyQXJlYV8pOwotICAgIH0sCi0KLSAgICBnZXQgcGljdHVyZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfOwotICAgIH0sCi0KLSAgICBzZXQgZGlzcGxheUl0ZW1MaXN0KGRpc3BsYXlJdGVtTGlzdCkgewotICAgICAgdGhpcy5kaXNwbGF5SXRlbUxpc3RfID0gZGlzcGxheUl0ZW1MaXN0OwotICAgICAgdGhpcy5waWN0dXJlID0gdGhpcy5kaXNwbGF5SXRlbUxpc3RfOwotCi0gICAgICB0aGlzLmRpc3BsYXlJdGVtTGlzdFZpZXdfLmNsZWFyKCk7Ci0gICAgICB0aGlzLmRpc3BsYXlJdGVtTGlzdF8uaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7Ci0gICAgICAgIHZhciBuZXdMaXN0SXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBuZXdMaXN0SXRlbS5pbm5lclRleHQgPSBpdGVtOwotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGltcHJvdmUgb3VyIG91dHB1dCB0byBiZXR0ZXIgZm9ybWF0IHRoaXMuCi0gICAgICAgIHZhciB0ZXh0ID0gaXRlbS5za3A2NCA/IGl0ZW0ubmFtZSA6IGl0ZW07Ci0gICAgICAgIHRoaXMuZGlzcGxheUl0ZW1MaXN0Vmlld18uYWRkSXRlbSh0ZXh0KTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHNldCBwaWN0dXJlKHBpY3R1cmUpIHsKLSAgICAgIHRoaXMucGljdHVyZV8gPSBwaWN0dXJlOwotCi0gICAgICAvLyBIaWRlIHRoZSBvcHMgbGlzdCBpZiB3ZSBhcmUgc2hvd2luZyB0aGUgIm1haW4iIGRpc3BsYXkgaXRlbSBsaXN0LgotICAgICAgdmFyIHNob3dPcHNMaXN0ID0gcGljdHVyZSAmJiBwaWN0dXJlICE9PSB0aGlzLmRpc3BsYXlJdGVtTGlzdF87Ci0gICAgICB0aGlzLnVwZGF0ZURyYXdPcHNMaXN0XyhzaG93T3BzTGlzdCk7Ci0KLSAgICAgIGlmIChwaWN0dXJlKSB7Ci0gICAgICAgIHZhciBzaXplID0gdGhpcy5nZXRSYXN0ZXJDYW52YXNTaXplXygpOwotICAgICAgICB0aGlzLnJhc3RlckNhbnZhc18ud2lkdGggPSBzaXplLndpZHRoOwotICAgICAgICB0aGlzLnJhc3RlckNhbnZhc18uaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBib3VuZHMgPSB0aGlzLnJhc3RlckFyZWFfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdmFyIHNlbGVjdG9yQm91bmRzID0gdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5wb3MgPSB7Ci0gICAgICAgIHg6IChib3VuZHMucmlnaHQgLSBzZWxlY3RvckJvdW5kcy53aWR0aCAtIDEwKSwKLSAgICAgICAgeTogYm91bmRzLnRvcAotICAgICAgfTsKLQotICAgICAgdGhpcy5yYXN0ZXJpemVfKCk7Ci0KLSAgICAgIHRoaXMuc2NoZWR1bGVVcGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0UmFzdGVyQ2FudmFzU2l6ZV86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yYXN0ZXJBcmVhXyk7Ci0gICAgICB2YXIgd2lkdGggPSBwYXJzZUludChzdHlsZS53aWR0aCk7Ci0gICAgICB2YXIgaGVpZ2h0ID0gcGFyc2VJbnQoc3R5bGUuaGVpZ2h0KTsKLSAgICAgIGlmICh0aGlzLnBpY3R1cmVfKSB7Ci0gICAgICAgIHdpZHRoID0gTWF0aC5tYXgod2lkdGgsIHRoaXMucGljdHVyZV8ubGF5ZXJSZWN0LndpZHRoKTsKLSAgICAgICAgaGVpZ2h0ID0gTWF0aC5tYXgoaGVpZ2h0LCB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdC5oZWlnaHQpOwotICAgICAgfQotCi0gICAgICByZXR1cm4gewotICAgICAgICB3aWR0aDogd2lkdGgsCi0gICAgICAgIGhlaWdodDogaGVpZ2h0Ci0gICAgICB9OwotICAgIH0sCi0KLSAgICBzY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy51cGRhdGVDb250ZW50c1BlbmRpbmdfKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzUGVuZGluZ18gPSB0cnVlOwotICAgICAgdHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUoCi0gICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18uYmluZCh0aGlzKQotICAgICAgKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNQZW5kaW5nXyA9IGZhbHNlOwotCi0gICAgICBpZiAodGhpcy5waWN0dXJlXykgewotICAgICAgICB0aGlzLnNpemVJbmZvXy50ZXh0Q29udGVudCA9ICcoJyArCi0gICAgICAgICAgICB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdC53aWR0aCArICcgeCAnICsKLSAgICAgICAgICAgIHRoaXMucGljdHVyZV8ubGF5ZXJSZWN0LmhlaWdodCArICcpJzsKLSAgICAgIH0KLQotICAgICAgLy8gUmV0dXJuIGlmIHBpY3R1cmUgaGFzbid0IGZpbmlzaGVkIHJhc3Rlcml6aW5nLgotICAgICAgaWYgKCF0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5pbmZvQmFyXy52aXNpYmxlID0gZmFsc2U7Ci0gICAgICB0aGlzLmluZm9CYXJfLnJlbW92ZUFsbEJ1dHRvbnMoKTsKLSAgICAgIGlmICh0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uZXJyb3IpIHsKLSAgICAgICAgdGhpcy5pbmZvQmFyXy5tZXNzYWdlID0gJ0Nhbm5vdCByYXN0ZXJpemUuLi4nOwotICAgICAgICB0aGlzLmluZm9CYXJfLmFkZEJ1dHRvbignTW9yZSBpbmZvLi4uJywgZnVuY3Rpb24oZSkgewotICAgICAgICAgIHZhciBvdmVybGF5ID0gbmV3IHRyLmIudWkuT3ZlcmxheSgpOwotICAgICAgICAgIG92ZXJsYXkudGV4dENvbnRlbnQgPSB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uZXJyb3I7Ci0gICAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKLSAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5pbmZvQmFyXy52aXNpYmxlID0gdHJ1ZTsKLSAgICAgIH0KLQotICAgICAgdGhpcy5kcmF3UGljdHVyZV8oKTsKLSAgICB9LAotCi0gICAgZHJhd1BpY3R1cmVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBzaXplID0gdGhpcy5nZXRSYXN0ZXJDYW52YXNTaXplXygpOwotICAgICAgaWYgKHNpemUud2lkdGggIT09IHRoaXMucmFzdGVyQ2FudmFzXy53aWR0aCkKLSAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLndpZHRoID0gc2l6ZS53aWR0aDsKLSAgICAgIGlmIChzaXplLmhlaWdodCAhPT0gdGhpcy5yYXN0ZXJDYW52YXNfLmhlaWdodCkKLSAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLmhlaWdodCA9IHNpemUuaGVpZ2h0OwotCi0gICAgICB0aGlzLnJhc3RlckN0eF8uY2xlYXJSZWN0KDAsIDAsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTsKLQotICAgICAgaWYgKCF0aGlzLnBpY3R1cmVfIHx8ICF0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uaW1hZ2VEYXRhKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBpbWdDYW52YXMgPSB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uYXNDYW52YXMoKTsKLSAgICAgIHZhciB3ID0gaW1nQ2FudmFzLndpZHRoOwotICAgICAgdmFyIGggPSBpbWdDYW52YXMuaGVpZ2h0OwotICAgICAgdGhpcy5yYXN0ZXJDdHhfLmRyYXdJbWFnZShpbWdDYW52YXMsIDAsIDAsIHcsIGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIHcgKiB0aGlzLnpvb21TY2FsZVZhbHVlXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCAqIHRoaXMuem9vbVNjYWxlVmFsdWVfKTsKLSAgICB9LAotCi0gICAgcmFzdGVyaXplXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5waWN0dXJlXykgewotICAgICAgICB0aGlzLnBpY3R1cmVfLnJhc3Rlcml6ZSgKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgc2hvd092ZXJkcmF3OiBmYWxzZQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHRoaXMub25SYXN0ZXJDb21wbGV0ZV8uYmluZCh0aGlzKSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uUmFzdGVyQ29tcGxldGVfOiBmdW5jdGlvbihwaWN0dXJlQXNJbWFnZURhdGEpIHsKLSAgICAgIHRoaXMucGljdHVyZUFzSW1hZ2VEYXRhXyA9IHBpY3R1cmVBc0ltYWdlRGF0YTsKLSAgICAgIHRoaXMuc2NoZWR1bGVVcGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgb25EaXNwbGF5SXRlbUxpc3RTZWxlY3Rpb25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgc2VsZWN0ZWQgPSB0aGlzLmRpc3BsYXlJdGVtTGlzdFZpZXdfLnNlbGVjdGVkRWxlbWVudDsKLQotICAgICAgaWYgKCFzZWxlY3RlZCkgewotICAgICAgICB0aGlzLnBpY3R1cmUgPSB0aGlzLmRpc3BsYXlJdGVtTGlzdF87Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIGluZGV4ID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCgKLSAgICAgICAgICB0aGlzLmRpc3BsYXlJdGVtTGlzdFZpZXdfLmNoaWxkcmVuLCBzZWxlY3RlZCk7Ci0gICAgICB2YXIgZGlzcGxheUl0ZW0gPSB0aGlzLmRpc3BsYXlJdGVtTGlzdF8uaXRlbXNbaW5kZXhdOwotICAgICAgaWYgKGRpc3BsYXlJdGVtICYmIGRpc3BsYXlJdGVtLnNrcDY0KQotICAgICAgICB0aGlzLnBpY3R1cmUgPSBuZXcgdHIuZS5jYy5QaWN0dXJlKAotICAgICAgICAgICAgZGlzcGxheUl0ZW0uc2twNjQsIHRoaXMuZGlzcGxheUl0ZW1MaXN0Xy5sYXllclJlY3QpOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnBpY3R1cmUgPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIG9uRGlzcGxheUl0ZW1JbmZvQ2xpY2tfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoZSAmJiBlLnRhcmdldCA9PSB0aGlzLmRpc3BsYXlJdGVtSW5mb18pIHsKLSAgICAgICAgdGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xy5zZWxlY3RlZEVsZW1lbnQgPSB1bmRlZmluZWQ7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIHVwZGF0ZURyYXdPcHNMaXN0XzogZnVuY3Rpb24oc2hvd09wc0xpc3QpIHsKLSAgICAgIGlmIChzaG93T3BzTGlzdCkgewotICAgICAgICB0aGlzLnBpY3R1cmVPcHNMaXN0Vmlld18ucGljdHVyZSA9IHRoaXMucGljdHVyZV87Ci0gICAgICAgIGlmICh0aGlzLnBpY3R1cmVPcHNMaXN0Vmlld18ubnVtT3BzID4gMCkgewotICAgICAgICAgIHRoaXMucGljdHVyZU9wc0xpc3RWaWV3Xy5jbGFzc0xpc3QuYWRkKCdoYXNQaWN0dXJlT3BzJyk7Ci0gICAgICAgICAgdGhpcy5waWN0dXJlT3BzTGlzdERyYWdIYW5kbGVfLmNsYXNzTGlzdC5hZGQoJ2hhc1BpY3R1cmVPcHMnKTsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5waWN0dXJlT3BzTGlzdFZpZXdfLmNsYXNzTGlzdC5yZW1vdmUoJ2hhc1BpY3R1cmVPcHMnKTsKLSAgICAgICAgdGhpcy5waWN0dXJlT3BzTGlzdERyYWdIYW5kbGVfLmNsYXNzTGlzdC5yZW1vdmUoJ2hhc1BpY3R1cmVPcHMnKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgdHJhY2tNb3VzZV86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8gPSBuZXcgdHIuYi51aS5Nb3VzZU1vZGVTZWxlY3Rvcih0aGlzLnJhc3RlckFyZWFfKTsKLSAgICAgIHRoaXMucmFzdGVyQXJlYV8uYXBwZW5kQ2hpbGQodGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8pOwotCi0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zdXBwb3J0ZWRNb2RlTWFzayA9Ci0gICAgICAgICAgdHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT007Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5tb2RlID0gdHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT007Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5kZWZhdWx0TW9kZSA9IHRyLmIudWkuTU9VU0VfU0VMRUNUT1JfTU9ERS5aT09NOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0dGluZ3NLZXkgPSAncGljdHVyZURlYnVnZ2VyLm1vdXNlTW9kZVNlbGVjdG9yJzsKLQotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW56b29tJywKLSAgICAgICAgICB0aGlzLm9uQmVnaW5ab29tXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXpvb20nLAotICAgICAgICAgIHRoaXMub25VcGRhdGVab29tXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHpvb20nLAotICAgICAgICAgIHRoaXMub25FbmRab29tXy5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgb25CZWdpblpvb21fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLmlzWm9vbWluZ18gPSB0cnVlOwotCi0gICAgICB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKLQotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0sCi0KLSAgICBvblVwZGF0ZVpvb21fOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoIXRoaXMuaXNab29taW5nXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgY3VycmVudE1vdXNlVmlld1BvcyA9IHRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7Ci0KLSAgICAgIC8vIFRha2UgdGhlIGRpc3RhbmNlIHRoZSBtb3VzZSBoYXMgbW92ZWQgYW5kIHdlIHdhbnQgdG8gem9vbSBhdCBhYm91dAotICAgICAgLy8gMS8xMDAwdGggb2YgdGhhdCBzcGVlZC4gMC4wMSBmZWVscyBqdW1weS4gVGhpcyBjb3VsZCBwb3NzaWJseSBiZSB0dW5lZAotICAgICAgLy8gbW9yZSBpZiBwZW9wbGUgZmVlbCBpdCdzIHRvbyBzbG93LgotICAgICAgdGhpcy56b29tU2NhbGVWYWx1ZV8gKz0KLSAgICAgICAgICAoKHRoaXMubGFzdE1vdXNlVmlld1Bvc18ueSAtIGN1cnJlbnRNb3VzZVZpZXdQb3MueSkgKiAwLjAwMSk7Ci0gICAgICB0aGlzLnpvb21TY2FsZVZhbHVlXyA9IE1hdGgubWF4KHRoaXMuem9vbVNjYWxlVmFsdWVfLCAwLjEpOwotCi0gICAgICB0aGlzLmRyYXdQaWN0dXJlXygpOwotCi0gICAgICB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfID0gY3VycmVudE1vdXNlVmlld1BvczsKLSAgICB9LAotCi0gICAgb25FbmRab29tXzogZnVuY3Rpb24oZSkgewotICAgICAgdGhpcy5sYXN0TW91c2VWaWV3UG9zXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuaXNab29taW5nXyA9IGZhbHNlOwotICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0sCi0KLSAgICBleHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXzogZnVuY3Rpb24oZSkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgeDogZS5jbGllbnRYIC0gdGhpcy5yYXN0ZXJBcmVhXy5vZmZzZXRMZWZ0LAotICAgICAgICB5OiBlLmNsaWVudFkgLSB0aGlzLnJhc3RlckFyZWFfLm9mZnNldFRvcAotICAgICAgfTsKLSAgICB9LAotCi0gICAgc2F2ZUZpbGVfOiBmdW5jdGlvbihmaWxlbmFtZSwgcmF3RGF0YSkgewotICAgICAgaWYgKCFyYXdEYXRhKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIC8vIENvbnZlcnQgdGhpcyBTdHJpbmcgaW50byBhbiBVaW50OEFycmF5Ci0gICAgICB2YXIgbGVuZ3RoID0gcmF3RGF0YS5sZW5ndGg7Ci0gICAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIobGVuZ3RoKTsKLSAgICAgIHZhciB1aW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpOwotICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCBsZW5ndGg7IGMrKykKLSAgICAgICAgdWludDhBcnJheVtjXSA9IHJhd0RhdGEuY2hhckNvZGVBdChjKTsKLQotICAgICAgLy8gQ3JlYXRlIGEgYmxvYiBVUkwgZnJvbSB0aGUgYmluYXJ5IGFycmF5LgotICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbdWludDhBcnJheV0sIHt0eXBlOiAnYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5J30pOwotICAgICAgdmFyIGJsb2JVcmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKLQotICAgICAgLy8gQ3JlYXRlIGEgbGluayBhbmQgY2xpY2sgb24gaXQuCi0gICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdhJyk7Ci0gICAgICBsaW5rLmhyZWYgPSBibG9iVXJsOwotICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVuYW1lOwotICAgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnRzJyk7Ci0gICAgICBldmVudC5pbml0TW91c2VFdmVudCgKLSAgICAgICAgICAnY2xpY2snLCB0cnVlLCBmYWxzZSwgd2luZG93LCAwLCAwLCAwLCAwLCAwLAotICAgICAgICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTsKLSAgICAgIGxpbmsuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgfSwKLQotICAgIG9uRXhwb3J0RGlzcGxheUxpc3RDbGlja2VkXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcmF3RGF0YSA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZGlzcGxheUl0ZW1MaXN0Xy5pdGVtcyk7Ci0gICAgICB0aGlzLnNhdmVGaWxlXyh0aGlzLmRpc3BsYXlMaXN0RmlsZW5hbWVfLnZhbHVlLCByYXdEYXRhKTsKLSAgICB9LAotCi0gICAgb25FeHBvcnRTa1BpY3R1cmVDbGlja2VkXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcmF3RGF0YSA9IGF0b2IodGhpcy5waWN0dXJlXy5nZXRCYXNlNjRTa3BEYXRhKCkpOwotICAgICAgdGhpcy5zYXZlRmlsZV8odGhpcy5za3BGaWxlbmFtZV8udmFsdWUsIHJhd0RhdGEpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIERpc3BsYXlJdGVtRGVidWdnZXI6IERpc3BsYXlJdGVtRGVidWdnZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fZGVidWdnZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWNmYzZiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fZGVidWdnZXJfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3QuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZGlzcGxheUl0ZW1MaXN0ID0gbmV3IHRyLmUuY2MuRGlzcGxheUl0ZW1MaXN0U25hcHNob3QoCi0gICAgICB7aWQ6ICczMTQxNSd9LAotICAgICAgMTAsCi0gICAgICB7Ci0gICAgICAgICdwYXJhbXMnOiB7Ci0gICAgICAgICAgJ2xheWVyX3JlY3QnOiBbLTE1LCAtMTUsIDQ2LCA4MzNdLAotICAgICAgICAgICdpdGVtcyc6IFsKLSAgICAgICAgICAgICdCZWdpbkNsaXBEaXNwbGF5SXRlbScsCi0gICAgICAgICAgICAnRW5kQ2xpcERpc3BsYXlJdGVtJwotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgJ3NrcDY0JzogJ1thbm90aGVyIHNraWEgcGljdHVyZSBpbiBiYXNlNjRdJ30pOwotICAgIGRpc3BsYXlJdGVtTGlzdC5wcmVJbml0aWFsaXplKCk7Ci0gICAgZGlzcGxheUl0ZW1MaXN0LmluaXRpYWxpemUoKTsKLQotICAgIHZhciBkYmcgPSBuZXcgdHIuZS5jYy5EaXNwbGF5SXRlbURlYnVnZ2VyKCk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRiZyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGRiZy5kaXNwbGF5SXRlbUxpc3RfKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZGJnLnBpY3R1cmVfKTsKLSAgICBkYmcuZGlzcGxheUl0ZW1MaXN0ID0gZGlzcGxheUl0ZW1MaXN0OwotICAgIGFzc2VydC5pc0RlZmluZWQoZGJnLmRpc3BsYXlJdGVtTGlzdF8pOwotICAgIGFzc2VydC5pc0RlZmluZWQoZGJnLnBpY3R1cmVfKTsKLSAgICBhc3NlcnQuZXF1YWwoZGJnLmRpc3BsYXlJdGVtTGlzdF8uaXRlbXMubGVuZ3RoLCAyKTsKLSAgICBkYmcuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdGlvbnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZGlzcGxheUl0ZW1MaXN0ID0gbmV3IHRyLmUuY2MuRGlzcGxheUl0ZW1MaXN0U25hcHNob3QoCi0gICAgICB7aWQ6ICczMTQxNSd9LAotICAgICAgMTAsCi0gICAgICB7Ci0gICAgICAgICdwYXJhbXMnOiB7Ci0gICAgICAgICAgJ2xheWVyX3JlY3QnOiBbLTE1LCAtMTUsIDQ2LCA4MzNdLAotICAgICAgICAgICdpdGVtcyc6IFsKLSAgICAgICAgICAgICdCZWdpbkNsaXBEaXNwbGF5SXRlbScsCi0gICAgICAgICAgICAnVHJhbnNmb3JtRGlzcGxheUl0ZW0nLAotICAgICAgICAgICAgeyduYW1lJzogJ0RyYXdpbmdEaXNwbGF5SXRlbScsICdza3A2NCc6ICdbc2tpYSBwaWN0dXJlIGluIGJhc2U2NF0nfSwKLSAgICAgICAgICAgICdFbmRUcmFuc2Zvcm1EaXNwbGF5SXRlbScsCi0gICAgICAgICAgICAnRW5kQ2xpcERpc3BsYXlJdGVtJwotICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgJ3NrcDY0JzogJ1thbm90aGVyIHNraWEgcGljdHVyZSBpbiBiYXNlNjRdJ30pOwotICAgIGRpc3BsYXlJdGVtTGlzdC5wcmVJbml0aWFsaXplKCk7Ci0gICAgZGlzcGxheUl0ZW1MaXN0LmluaXRpYWxpemUoKTsKLQotICAgIHZhciBkYmcgPSBuZXcgdHIuZS5jYy5EaXNwbGF5SXRlbURlYnVnZ2VyKCk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRiZyk7Ci0gICAgZGJnLmRpc3BsYXlJdGVtTGlzdCA9IGRpc3BsYXlJdGVtTGlzdDsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGRiZy5kaXNwbGF5SXRlbUxpc3RfKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGRiZy5waWN0dXJlXyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGRiZy5kaXNwbGF5SXRlbUxpc3RfLml0ZW1zLmxlbmd0aCwgNSk7Ci0KLSAgICB2YXIgaW5pdGlhbFBpY3R1cmUgPSBkYmcucGljdHVyZV87Ci0gICAgYXNzZXJ0LmlzQWJvdmUoaW5pdGlhbFBpY3R1cmUuZ3VpZCwgMCk7Ci0KLSAgICAvLyBTZWxlY3QgdGhlIGRyYXdpbmcgZGlzcGxheSBpdGVtIGFuZCBtYWtlIHN1cmUgdGhlIHBpY3R1cmUgdXBkYXRlcy4KLSAgICB2YXIgbGlzdFZpZXcgPSBkYmcuZGlzcGxheUl0ZW1MaXN0Vmlld187Ci0gICAgbGlzdFZpZXcuc2VsZWN0ZWRFbGVtZW50ID0gbGlzdFZpZXcuZ2V0RWxlbWVudEJ5SW5kZXgoMyk7Ci0gICAgdmFyIHVwZGF0ZWRQaWN0dXJlID0gZGJnLnBpY3R1cmVfOwotICAgIGFzc2VydC5pc0Fib3ZlKHVwZGF0ZWRQaWN0dXJlLmd1aWQsIDApOwotICAgIGFzc2VydC5ub3RFcXVhbChpbml0aWFsUGljdHVyZS5ndWlkLCB1cGRhdGVkUGljdHVyZS5ndWlkKTsKLQotICAgIC8vIFNlbGVjdCB0aGUgVHJhbnNmb3JtRGlzcGxheUl0ZW0gYW5kIG1ha2Ugc3VyZSB0aGUgcGljdHVyZSBpcyBibGFuay4KLSAgICBsaXN0Vmlldy5zZWxlY3RlZEVsZW1lbnQgPSBsaXN0Vmlldy5nZXRFbGVtZW50QnlJbmRleCgyKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZGJnLnBpY3R1cmVfKTsKLQotICAgIC8vIERlc2VsZWN0IGEgbGlzdCBpdGVtIGFuZCBtYWtlIHN1cmUgdGhlIHBpY3R1cmUgaXMgcmVzZXQgdG8gdGhlIG9yaWdpbmFsLgotICAgIGxpc3RWaWV3LnNlbGVjdGVkRWxlbWVudCA9IHVuZGVmaW5lZDsKLSAgICB1cGRhdGVkUGljdHVyZSA9IGRiZy5waWN0dXJlXzsKLSAgICBhc3NlcnQuaXNBYm92ZSh1cGRhdGVkUGljdHVyZS5ndWlkLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoaW5pdGlhbFBpY3R1cmUuZ3VpZCwgdXBkYXRlZFBpY3R1cmUuZ3VpZCk7Ci0KLSAgICBkYmcuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7Ci0gIH0pOwotCi0gIHRlc3QoJ2V4cG9ydCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBkaXNwbGF5SXRlbUxpc3QgPSBuZXcgdHIuZS5jYy5EaXNwbGF5SXRlbUxpc3RTbmFwc2hvdCgKLSAgICAgIHtpZDogJzMxNDE1J30sCi0gICAgICAxMCwKLSAgICAgIHsKLSAgICAgICAgJ3BhcmFtcyc6IHsKLSAgICAgICAgICAnbGF5ZXJfcmVjdCc6IFstMTUsIC0xNSwgNDYsIDgzM10sCi0gICAgICAgICAgJ2l0ZW1zJzogWwotICAgICAgICAgICAgJ0JlZ2luQ2xpcERpc3BsYXlJdGVtJywKLSAgICAgICAgICAgICdFbmRDbGlwRGlzcGxheUl0ZW0nCi0gICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICAnc2twNjQnOiAnYzJ0d2FXTjBkWEpsJ30pOwotICAgIGRpc3BsYXlJdGVtTGlzdC5wcmVJbml0aWFsaXplKCk7Ci0gICAgZGlzcGxheUl0ZW1MaXN0LmluaXRpYWxpemUoKTsKLQotICAgIHZhciBkYmcgPSBuZXcgdHIuZS5jYy5EaXNwbGF5SXRlbURlYnVnZ2VyKCk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRiZyk7Ci0gICAgZGJnLmRpc3BsYXlJdGVtTGlzdCA9IGRpc3BsYXlJdGVtTGlzdDsKLQotICAgIHZhciBvblNhdmVEaXNwbGF5TGlzdENhbGxlZCA9IGZhbHNlOwotICAgIGRiZy5zYXZlRmlsZV8gPSBmdW5jdGlvbihmaWxlbmFtZSwgcmF3RGF0YSkgewotICAgICAgb25TYXZlRGlzcGxheUxpc3RDYWxsZWQgPSB0cnVlOwotICAgICAgYXNzZXJ0LmVxdWFsKGZpbGVuYW1lLCAnZGlzcGxheWl0ZW1saXN0Lmpzb24nKTsKLSAgICAgIGFzc2VydC5lcXVhbChyYXdEYXRhLCAnWyJCZWdpbkNsaXBEaXNwbGF5SXRlbSIsIkVuZENsaXBEaXNwbGF5SXRlbSJdJyk7Ci0gICAgfTsKLSAgICBkYmcub25FeHBvcnREaXNwbGF5TGlzdENsaWNrZWRfKCk7Ci0gICAgYXNzZXJ0KG9uU2F2ZURpc3BsYXlMaXN0Q2FsbGVkKTsKLQotICAgIHZhciBvblNhdmVTa1BpY3R1cmVDYWxsZWQgPSBmYWxzZTsKLSAgICBkYmcuc2F2ZUZpbGVfID0gZnVuY3Rpb24oZmlsZW5hbWUsIHJhd0RhdGEpIHsKLSAgICAgIG9uU2F2ZVNrUGljdHVyZUNhbGxlZCA9IHRydWU7Ci0gICAgICBhc3NlcnQuZXF1YWwoZmlsZW5hbWUsICdza3BpY3R1cmUuc2twJyk7Ci0gICAgICBhc3NlcnQuZXF1YWwocmF3RGF0YSwgJ3NrcGljdHVyZScpOwotICAgIH07Ci0gICAgZGJnLm9uRXhwb3J0U2tQaWN0dXJlQ2xpY2tlZF8oKTsKLSAgICBhc3NlcnQob25TYXZlU2tQaWN0dXJlQ2FsbGVkKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fdmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MTIyNmEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV92aWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0qIC9kZWVwLyAuZGlzcGxheS1pdGVtLXZpZXcgewotICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7Ci0gIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MWNlZTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fdmlldy5jc3MiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3QuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvb2JqZWN0X3NuYXBzaG90X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgLyoKLSAgICogRGlzcGxheXMgYSBkaXNwbGF5IGl0ZW0gc25hcHNob3QgaW4gYSBodW1hbiByZWFkYWJsZSBmb3JtLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBEaXNwbGF5SXRlbVNuYXBzaG90VmlldyA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ2Rpc3BsYXktaXRlbS1zbmFwc2hvdC12aWV3JywKLSAgICAgIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3KTsKLQotICBEaXNwbGF5SXRlbVNuYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2Rpc3BsYXktaXRlbS12aWV3Jyk7Ci0gICAgICB0aGlzLmRpc3BsYXlJdGVtRGVidWdnZXJfID0gbmV3IHRyLmUuY2MuRGlzcGxheUl0ZW1EZWJ1Z2dlcigpOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmRpc3BsYXlJdGVtRGVidWdnZXJfKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMub2JqZWN0U25hcHNob3RfICYmIHRoaXMuZGlzcGxheUl0ZW1EZWJ1Z2dlcl8pCi0gICAgICAgIHRoaXMuZGlzcGxheUl0ZW1EZWJ1Z2dlcl8uZGlzcGxheUl0ZW1MaXN0ID0gdGhpcy5vYmplY3RTbmFwc2hvdF87Ci0gICAgfQotICB9OwotCi0gIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAotICAgICAgRGlzcGxheUl0ZW1TbmFwc2hvdFZpZXcsCi0gICAgICB7Ci0gICAgICAgIHR5cGVOYW1lczogWydjYzo6RGlzcGxheUl0ZW1MaXN0J10sCi0gICAgICAgIHNob3dJbnN0YW5jZXM6IGZhbHNlCi0gICAgICB9KTsKLQotICByZXR1cm4gewotICAgIERpc3BsYXlJdGVtU25hcHNob3RWaWV3OiBEaXNwbGF5SXRlbVNuYXBzaG90VmlldwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9pbnB1dF9sYXRlbmN5X2FzeW5jX3NsaWNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvaW5wdXRfbGF0ZW5jeV9hc3luY19zbGljZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2YwMzQ5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9pbnB1dF9sYXRlbmN5X2FzeW5jX3NsaWNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5jYycsIGZ1bmN0aW9uKCkgewotICB2YXIgQXN5bmNTbGljZSA9IHRyLm1vZGVsLkFzeW5jU2xpY2U7Ci0KLQotICB2YXIgVUlfQ09NUF9OQU1FID0gJ0lOUFVUX0VWRU5UX0xBVEVOQ1lfVUlfQ09NUE9ORU5UJzsKLSAgdmFyIE9SSUdJTkFMX0NPTVBfTkFNRSA9ICdJTlBVVF9FVkVOVF9MQVRFTkNZX09SSUdJTkFMX0NPTVBPTkVOVCc7Ci0gIHZhciBCRUdJTl9DT01QX05BTUUgPSAnSU5QVVRfRVZFTlRfTEFURU5DWV9CRUdJTl9SV0hfQ09NUE9ORU5UJzsKLSAgdmFyIEVORF9DT01QX05BTUUgPSAnSU5QVVRfRVZFTlRfTEFURU5DWV9URVJNSU5BVEVEX0ZSQU1FX1NXQVBfQ09NUE9ORU5UJzsKLQotICBmdW5jdGlvbiBJbnB1dExhdGVuY3lBc3luY1NsaWNlKCkgewotICAgIEFzeW5jU2xpY2UuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHNfID0gdW5kZWZpbmVkOwotICB9Ci0KLSAgSW5wdXRMYXRlbmN5QXN5bmNTbGljZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBBc3luY1NsaWNlLnByb3RvdHlwZSwKLQotICAgIGdldCBhc3NvY2lhdGVkRXZlbnRzKCkgewotICAgICAgaWYgKHRoaXMuYXNzb2NpYXRlZEV2ZW50c18gIT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHRoaXMuYXNzb2NpYXRlZEV2ZW50c187Ci0KLSAgICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50c18gPSBbXTsKLSAgICAgIHZhciBtb2RlbEluZGljZXMgPSB0aGlzLnN0YXJ0VGhyZWFkLnBhcmVudC5tb2RlbC5tb2RlbEluZGljZXM7Ci0gICAgICB2YXIgbWF0Y2hlZEZsb3dFdmVudHMgPSBtb2RlbEluZGljZXMuZ2V0Rmxvd0V2ZW50c1dpdGhJZCh0aGlzLmlkKTsKLQotICAgICAgdmFyIGV2ZW50R1VJRHMgPSB7fTsKLSAgICAgIG1hdGNoZWRGbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZmxvd0V2ZW50KSB7Ci0gICAgICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50c18ucHVzaChmbG93RXZlbnQpOwotICAgICAgICBpZiAoZmxvd0V2ZW50LnN0YXJ0U2xpY2UgJiYgIWV2ZW50R1VJRHNbZmxvd0V2ZW50LnN0YXJ0U2xpY2UuZ3VpZF0pIHsKLSAgICAgICAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHNfLnB1c2goZmxvd0V2ZW50LnN0YXJ0U2xpY2UpOwotICAgICAgICAgIGV2ZW50R1VJRHNbZmxvd0V2ZW50LnN0YXJ0U2xpY2UuZ3VpZF0gPSAxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChmbG93RXZlbnQuc3RhcnRTbGljZSAmJiAhZXZlbnRHVUlEc1tmbG93RXZlbnQuZW5kU2xpY2UuZ3VpZF0pIHsKLSAgICAgICAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHNfLnB1c2goZmxvd0V2ZW50LmVuZFNsaWNlKTsKLSAgICAgICAgICBldmVudEdVSURzW2Zsb3dFdmVudC5lbmRTbGljZS5ndWlkXSA9IDE7Ci0gICAgICAgIH0KLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICByZXR1cm4gdGhpcy5hc3NvY2lhdGVkRXZlbnRzXzsKLSAgICB9LAotCi0gICAgZ2V0IGlucHV0TGF0ZW5jeSgpIHsKLSAgICAgIGlmICghKCdkYXRhJyBpbiB0aGlzLmFyZ3MpKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgICB2YXIgZGF0YSA9IHRoaXMuYXJncy5kYXRhOwotICAgICAgaWYgKCEoRU5EX0NPTVBfTkFNRSBpbiBkYXRhKSkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgICAgdmFyIGxhdGVuY3kgPSAwOwotICAgICAgdmFyIGVuZFRpbWUgPSBkYXRhW0VORF9DT01QX05BTUVdLnRpbWU7Ci0gICAgICBpZiAoT1JJR0lOQUxfQ09NUF9OQU1FIGluIGRhdGEpIHsKLSAgICAgICAgbGF0ZW5jeSA9IGVuZFRpbWUgLSBkYXRhW09SSUdJTkFMX0NPTVBfTkFNRV0udGltZTsKLSAgICAgIH0gZWxzZSBpZiAoVUlfQ09NUF9OQU1FIGluIGRhdGEpIHsKLSAgICAgICAgbGF0ZW5jeSA9IGVuZFRpbWUgLSBkYXRhW1VJX0NPTVBfTkFNRV0udGltZTsKLSAgICAgIH0gZWxzZSBpZiAoQkVHSU5fQ09NUF9OQU1FIGluIGRhdGEpIHsKLSAgICAgICAgbGF0ZW5jeSA9IGVuZFRpbWUgLSBkYXRhW0JFR0lOX0NPTVBfTkFNRV0udGltZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsaWQgYmVnaW4gbGF0ZW5jeSBjb21wb25lbnQnKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBsYXRlbmN5OwotICAgIH0KLSAgfTsKLQotICB2YXIgZXZlbnRUeXBlTmFtZXMgPSBbCi0gICAgJ0NoYXInLAotICAgICdHZXN0dXJlRmxpbmdDYW5jZWwnLAotICAgICdHZXN0dXJlRmxpbmdTdGFydCcsCi0gICAgJ0dlc3R1cmVTY3JvbGxCZWdpbicsCi0gICAgJ0dlc3R1cmVTY3JvbGxFbmQnLAotICAgICdHZXN0dXJlU2Nyb2xsVXBkYXRlJywKLSAgICAnR2VzdHVyZVNob3dQcmVzcycsCi0gICAgJ0dlc3R1cmVUYXAnLAotICAgICdHZXN0dXJlVGFwQ2FuY2VsJywKLSAgICAnR2VzdHVyZVRhcERvd24nLAotICAgICdLZXlVcCcsCi0gICAgJ01vdXNlRG93bicsCi0gICAgJ01vdXNlTW92ZScsCi0gICAgJ01vdXNlVXAnLAotICAgICdNb3VzZVdoZWVsJywKLSAgICAnUmF3S2V5RG93bicsCi0gICAgJ1Njcm9sbFVwZGF0ZScsCi0gICAgJ1RvdWNoRW5kJywKLSAgICAnVG91Y2hNb3ZlJywKLSAgICAnVG91Y2hTdGFydCcKLSAgXTsKLSAgdmFyIGFsbFR5cGVOYW1lcyA9IFsnSW5wdXRMYXRlbmN5J107Ci0gIGV2ZW50VHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24oZXZlbnRUeXBlTmFtZSkgewotICAgIC8vIE9sZCBzdHlsZS4KLSAgICBhbGxUeXBlTmFtZXMucHVzaCgnSW5wdXRMYXRlbmN5OicgKyBldmVudFR5cGVOYW1lKTsKLQotICAgIC8vIE5ldyBzdHlsZS4KLSAgICBhbGxUeXBlTmFtZXMucHVzaCgnSW5wdXRMYXRlbmN5OjonICsgZXZlbnRUeXBlTmFtZSk7Ci0gIH0pOwotCi0gIEFzeW5jU2xpY2UucmVnaXN0ZXIoCi0gICAgSW5wdXRMYXRlbmN5QXN5bmNTbGljZSwKLSAgICB7Ci0gICAgICB0eXBlTmFtZXM6IGFsbFR5cGVOYW1lcywKLSAgICAgIGNhdGVnb3J5UGFydHM6IFsnbGF0ZW5jeUluZm8nXQotICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgSW5wdXRMYXRlbmN5QXN5bmNTbGljZTogSW5wdXRMYXRlbmN5QXN5bmNTbGljZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9pbnB1dF9sYXRlbmN5X2FzeW5jX3NsaWNlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9pbnB1dF9sYXRlbmN5X2FzeW5jX3NsaWNlX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjUxOGE5OC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvaW5wdXRfbGF0ZW5jeV9hc3luY19zbGljZV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9pbnB1dF9sYXRlbmN5X2FzeW5jX3NsaWNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbF9pbmRpY2VzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld0FzeW5jU2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXg7Ci0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0gIHZhciBuZXdGbG93RXZlbnRFeCA9IHRyLmMudGVzdF91dGlscy5uZXdGbG93RXZlbnRFeDsKLSAgdmFyIG5ld01vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsOwotCi0gIHRlc3QoJ21hdGNoQnlUeXBlX29sZFN0eWxlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNPdXRlciA9IG5ld0FzeW5jU2xpY2VFeCh7Ci0gICAgICB0aXRsZTogJ0lucHV0TGF0ZW5jeScsCi0gICAgICBjYXQ6ICdiZW5jaG1hcmsnLAotICAgICAgc3RhcnQ6IDAsCi0gICAgICBlbmQ6IDEwLAotICAgICAgaWQ6ICcweDEwMCcsCi0gICAgICBpc1RvcExldmVsOiB0cnVlLAotICAgICAgYXJnczogewotICAgICAgICBkYXRhOiB7Ci0gICAgICAgICAgSU5QVVRfRVZFTlRfTEFURU5DWV9PUklHSU5BTF9DT01QT05FTlQ6IHsndGltZScgOiAwfSwKLSAgICAgICAgICBJTlBVVF9FVkVOVF9MQVRFTkNZX1RFUk1JTkFURURfRlJBTUVfU1dBUF9DT01QT05FTlQ6IHt0aW1lOiAxMH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0pOwotCi0gICAgdmFyIHNJbm5lciA9IG5ld0FzeW5jU2xpY2VFeCh7Ci0gICAgICB0aXRsZTogJ0lucHV0TGF0ZW5jeTpHZXN0dXJlU2Nyb2xsVXBkYXRlJywKLSAgICAgIGNhdDogJ2JlbmNobWFyaycsCi0gICAgICBzdGFydDogMiwKLSAgICAgIGVuZDogMTAsCi0gICAgICBpZDogJzB4MTAwJywKLSAgICAgIGFyZ3M6IHsKLSAgICAgICAgJ3N0ZXAnOiAnR2VzdHVyZVNjcm9sbFVwZGF0ZScKLSAgICAgIH0KLSAgICB9KTsKLSAgICBzT3V0ZXIuc3ViU2xpY2VzLnB1c2goc0lubmVyKTsKLSAgICBhc3NlcnQuaXNUcnVlKHNPdXRlciBpbnN0YW5jZW9mIHRyLmUuY2MuSW5wdXRMYXRlbmN5QXN5bmNTbGljZSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShzSW5uZXIgaW5zdGFuY2VvZiB0ci5lLmNjLklucHV0TGF0ZW5jeUFzeW5jU2xpY2UpOwotICAgIGFzc2VydC5lcXVhbChzT3V0ZXIuaW5wdXRMYXRlbmN5LCAxMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ21hdGNoQnlUeXBlX25ld1N0eWxlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNJbmZvID0gbmV3QXN5bmNTbGljZUV4KHsKLSAgICAgIHRpdGxlOiAnSW5wdXRMYXRlbmN5OjpHZXN0dXJlU2Nyb2xsVXBkYXRlJywKLSAgICAgIGNhdDogJ2JlbmNobWFyaycsCi0gICAgICBzdGFydDogMiwKLSAgICAgIGVuZDogMTAsCi0gICAgICBpZDogJzB4MTAwJywKLSAgICAgIGlzVG9wTGV2ZWw6IHRydWUsCi0gICAgICBhcmdzOiB7Ci0gICAgICAgIGRhdGE6IHsKLSAgICAgICAgICBJTlBVVF9FVkVOVF9MQVRFTkNZX09SSUdJTkFMX0NPTVBPTkVOVDogeyd0aW1lJyA6IDB9LAotICAgICAgICAgIElOUFVUX0VWRU5UX0xBVEVOQ1lfVEVSTUlOQVRFRF9GUkFNRV9TV0FQX0NPTVBPTkVOVDoge3RpbWU6IDEwfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKHNJbmZvIGluc3RhbmNlb2YgdHIuZS5jYy5JbnB1dExhdGVuY3lBc3luY1NsaWNlKTsKLSAgICBhc3NlcnQuZXF1YWwoc0luZm8uaW5wdXRMYXRlbmN5LCAxMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ21hdGNoQnlDYXRlZ29yeScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzSW5mbyA9IG5ld0FzeW5jU2xpY2VFeCh7Ci0gICAgICB0aXRsZTogJ0lucHV0TGF0ZW5jeTo6QmFkVHlwZU5hbWUnLAotICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKLSAgICAgIHN0YXJ0OiAyLAotICAgICAgZW5kOiAxMCwKLSAgICAgIGlkOiAnMHgxMDAnLAotICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKLSAgICAgIGFyZ3M6IHsKLSAgICAgICAgZGF0YTogewotICAgICAgICAgIElOUFVUX0VWRU5UX0xBVEVOQ1lfQkVHSU5fUldIX0NPTVBPTkVOVDogeyd0aW1lJyA6IDB9LAotICAgICAgICAgIElOUFVUX0VWRU5UX0xBVEVOQ1lfT1JJR0lOQUxfQ09NUE9ORU5UOiB7J3RpbWUnIDogMH0sCi0gICAgICAgICAgSU5QVVRfRVZFTlRfTEFURU5DWV9URVJNSU5BVEVEX0ZSQU1FX1NXQVBfQ09NUE9ORU5UOiB7dGltZTogMTB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9KTsKLQotICAgIGFzc2VydC5pc1RydWUoc0luZm8gaW5zdGFuY2VvZiB0ci5lLmNjLklucHV0TGF0ZW5jeUFzeW5jU2xpY2UpOwotICAgIGFzc2VydC5lcXVhbChzSW5mby5pbnB1dExhdGVuY3ksIDEwKTsKLSAgfSk7Ci0KLSAgdGVzdCgndGVzdEdldEFzc29jaWF0ZWRFdmVudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKLQotICAgICAgdmFyIHAgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICAgIHZhciB0ID0gcC5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLQotICAgICAgdmFyIHMwID0gbmV3U2xpY2VFeCh7Ci0gICAgICAgIHRpdGxlOiAnYScsCi0gICAgICAgIHN0YXJ0OiAwLjAsCi0gICAgICAgIGR1cmF0aW9uOiAwLjUKLSAgICAgIH0pOwotCi0gICAgICB2YXIgczEgPSBuZXdTbGljZUV4KHsKLSAgICAgICAgdGl0bGU6ICdiJywKLSAgICAgICAgc3RhcnQ6IDAuNSwKLSAgICAgICAgZHVyYXRpb246IDAuNQotICAgICAgfSk7Ci0KLSAgICAgIHZhciBzMiA9IG5ld1NsaWNlRXgoewotICAgICAgICB0aXRsZTogJ2MnLAotICAgICAgICBzdGFydDogMS4wLAotICAgICAgICBkdXJhdGlvbjogMC41Ci0gICAgICB9KTsKLQotICAgICAgdmFyIGYxID0gbmV3Rmxvd0V2ZW50RXgoewotICAgICAgICAndGl0bGUnOiAndGVzdDEnLAotICAgICAgICBzdGFydDogMCwKLSAgICAgICAgZW5kOiAxMCwKLSAgICAgICAgc3RhcnRTbGljZTogczAsCi0gICAgICAgIGVuZFNsaWNlOiBzMSwKLSAgICAgICAgaWQ6ICcweDEwMCcKLSAgICAgIH0pOwotCi0gICAgICB2YXIgZjIgPSBuZXdGbG93RXZlbnRFeCh7Ci0gICAgICAgICd0aXRsZSc6ICd0ZXN0MicsCi0gICAgICAgIHN0YXJ0OiAyMCwKLSAgICAgICAgZW5kOiAzMCwKLSAgICAgICAgc3RhcnRTbGljZTogczEsCi0gICAgICAgIGVuZFNsaWNlOiBzMiwKLSAgICAgICAgaWQ6ICcweDEwMCcKLSAgICAgIH0pOwotCi0gICAgICBtLmZsb3dFdmVudHMucHVzaChmMSk7Ci0gICAgICBtLmZsb3dFdmVudHMucHVzaChmMik7Ci0KLSAgICAgIG0uYXMwID0gbmV3QXN5bmNTbGljZUV4KHsKLSAgICAgICAgdGl0bGU6ICdJbnB1dExhdGVuY3k6OlRlc3RTaG91bGRSZXR1cm5FbXB0eScsCi0gICAgICAgIGNhdDogJ2JlbmNobWFyayxsYXRlbmN5SW5mbycsCi0gICAgICAgIHN0YXJ0OiAyLAotICAgICAgICBlbmQ6IDEwLAotICAgICAgICBpZDogJzB4MTAxJywKLSAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKLSAgICAgICAgc3RhcnRUaHJlYWQ6IHQKLSAgICAgIH0pOwotCi0gICAgICBtLmFzMSA9IG5ld0FzeW5jU2xpY2VFeCh7Ci0gICAgICAgIHRpdGxlOiAnSW5wdXRMYXRlbmN5OjpUZXN0U2hvdWxkUmV0dXJuVHdvRWxlbWVudHMnLAotICAgICAgICBjYXQ6ICdiZW5jaG1hcmssbGF0ZW5jeUluZm8nLAotICAgICAgICBzdGFydDogMiwKLSAgICAgICAgZW5kOiAxMCwKLSAgICAgICAgaWQ6ICcweDEwMCcsCi0gICAgICAgIGlzVG9wTGV2ZWw6IHRydWUsCi0gICAgICAgIHN0YXJ0VGhyZWFkOiB0Ci0gICAgICB9KTsKLQotICAgIH0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uYXMwLmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwobS5hczEuYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGgsIDUpOwotICAgIGFzc2VydC5lcXVhbChtLmFzMS5hc3NvY2lhdGVkRXZlbnRzWzBdLmlkLCAnMHgxMDAnKTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfcGlja2VyLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMmM5NzE4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0qIC9kZWVwLyBsYXllci1waWNrZXIgewotICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLX0KLQotKiAvZGVlcC8gbGF5ZXItcGlja2VyID4gdG9wLWNvbnRyb2xzIHsKLSAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKLSAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAwLCAxMDAlIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSgjRTVFNUU1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bygjRDFEMUQxKSk7Ci0gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOGU4ZThlOwotICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7Ci0gIGRpc3BsYXk6IGlubGluZTsKLSAgZm9udC1zaXplOiAxNHB4OwotICBwYWRkaW5nLWxlZnQ6IDJweDsKLX0KLQotKiAvZGVlcC8gbGF5ZXItcGlja2VyID4gdG9wLWNvbnRyb2xzIGlucHV0W3R5cGU9J2NoZWNrYm94J10gewotICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4OwotfQotCi0qIC9kZWVwLyBsYXllci1waWNrZXIgPiAueC1saXN0LXZpZXcgewotICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICBvdmVyZmxvdzogYXV0bzsKLX0KLQotKiAvZGVlcC8gbGF5ZXItcGlja2VyID4gdHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcgewotICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOwotICBoZWlnaHQ6IDIwMHB4OwotICBvdmVyZmxvdzogYXV0bzsKLX0KLQotKiAvZGVlcC8gbGF5ZXItcGlja2VyID4gdHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcgKiB7Ci0gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDsKLSAgY3Vyc29yOiB0ZXh0OwotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3BpY2tlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3BpY2tlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTVlMDQyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuY3NzIj4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2NvbnN0YW50cy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kcmFnX2hhbmRsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9saXN0X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZG9tX2hlbHBlcnMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmNjJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBjb25zdGFudHMgPSB0ci5lLmNjLmNvbnN0YW50czsKLSAgdmFyIGJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzID0gdHIuZS5jYy5ieXRlc1RvUm91bmRlZE1lZ2FieXRlczsKLSAgdmFyIFJFTkRFUl9QQVNTX1FVQURTID0KLSAgICAgIE1hdGgubWF4KGNvbnN0YW50cy5BQ1RJVkVfVFJFRSwgY29uc3RhbnRzLlBFTkRJTkdfVFJFRSkgKyAxOwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBMYXllclBpY2tlciA9IHRyLmIudWkuZGVmaW5lKCdsYXllci1waWNrZXInKTsKLQotICBMYXllclBpY2tlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5sdGhpXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuY29udHJvbHNfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndG9wLWNvbnRyb2xzJyk7Ci0gICAgICB0aGlzLnJlbmRlclBhc3NRdWFkc18gPSBmYWxzZTsKLQotCi0gICAgICB0aGlzLml0ZW1MaXN0XyA9IG5ldyB0ci5iLnVpLkxpc3RWaWV3KCk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHNfKTsKLQotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLml0ZW1MaXN0Xyk7Ci0KLSAgICAgIHRoaXMuaXRlbUxpc3RfLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgdGhpcy5vbkl0ZW1TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQodHIuYi51aS5jcmVhdGVTZWxlY3RvcigKLSAgICAgICAgICB0aGlzLCAnd2hpY2hUcmVlJywKLSAgICAgICAgICAnbGF5ZXJQaWNrZXIud2hpY2hUcmVlJywgY29uc3RhbnRzLkFDVElWRV9UUkVFLAotICAgICAgICAgIFt7bGFiZWw6ICdBY3RpdmUgdHJlZScsIHZhbHVlOiBjb25zdGFudHMuQUNUSVZFX1RSRUV9LAotICAgICAgICAgICB7bGFiZWw6ICdQZW5kaW5nIHRyZWUnLCB2YWx1ZTogY29uc3RhbnRzLlBFTkRJTkdfVFJFRX0sCi0gICAgICAgICAgIHtsYWJlbDogJ1JlbmRlciBwYXNzIHF1YWRzJywgdmFsdWU6IFJFTkRFUl9QQVNTX1FVQURTfV0pKTsKLQotICAgICAgdGhpcy5zaG93UHVyZVRyYW5zZm9ybUxheWVyc18gPSBmYWxzZTsKLSAgICAgIHZhciBzaG93UHVyZVRyYW5zZm9ybUxheWVycyA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3goCi0gICAgICAgICAgdGhpcywgJ3Nob3dQdXJlVHJhbnNmb3JtTGF5ZXJzJywKLSAgICAgICAgICAnbGF5ZXJQaWNrZXIuc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnMnLCBmYWxzZSwKLSAgICAgICAgICAnVHJhbnNmb3JtIGxheWVycycpOwotICAgICAgc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnMuY2xhc3NMaXN0LmFkZCgnc2hvdy10cmFuc2Zvcm0tbGF5ZXJzJyk7Ci0gICAgICBzaG93UHVyZVRyYW5zZm9ybUxheWVycy50aXRsZSA9Ci0gICAgICAgICAgJ1doZW4gY2hlY2tlZCwgcHVyZSB0cmFuc2Zvcm0gbGF5ZXJzIGFyZSBzaG93bic7Ci0gICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZChzaG93UHVyZVRyYW5zZm9ybUxheWVycyk7Ci0gICAgfSwKLQotICAgIGdldCBsdGhpU25hcHNob3QoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sdGhpU25hcHNob3RfOwotICAgIH0sCi0KLSAgICBzZXQgbHRoaVNuYXBzaG90KGx0aGlTbmFwc2hvdCkgewotICAgICAgdGhpcy5sdGhpU25hcHNob3RfID0gbHRoaVNuYXBzaG90OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHdoaWNoVHJlZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnJlbmRlclBhc3NRdWFkc18gPyBjb25zdGFudHMuQUNUSVZFX1RSRUUgOiB0aGlzLndoaWNoVHJlZV87Ci0gICAgfSwKLQotICAgIHNldCB3aGljaFRyZWUod2hpY2hUcmVlKSB7Ci0gICAgICB0aGlzLndoaWNoVHJlZV8gPSB3aGljaFRyZWU7Ci0gICAgICB0aGlzLnJlbmRlclBhc3NRdWFkc18gPSAod2hpY2hUcmVlID09IFJFTkRFUl9QQVNTX1FVQURTKTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2UnLCBmYWxzZSk7Ci0gICAgfSwKLQotICAgIGdldCBsYXllclRyZWVJbXBsKCkgewotICAgICAgaWYgKHRoaXMubHRoaVNuYXBzaG90ID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gdGhpcy5sdGhpU25hcHNob3QuZ2V0VHJlZSh0aGlzLndoaWNoVHJlZSk7Ci0gICAgfSwKLQotICAgIGdldCBpc1JlbmRlclBhc3NRdWFkcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnJlbmRlclBhc3NRdWFkc187Ci0gICAgfSwKLQotICAgIGdldCBzaG93UHVyZVRyYW5zZm9ybUxheWVycygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzKHNob3cpIHsKLSAgICAgIGlmICh0aGlzLnNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzXyA9PT0gc2hvdykKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5zaG93UHVyZVRyYW5zZm9ybUxheWVyc18gPSBzaG93OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0UmVuZGVyUGFzc0luZm9zXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIXRoaXMubHRoaVNuYXBzaG90XykKLSAgICAgICAgcmV0dXJuIFtdOwotCi0gICAgICB2YXIgcmVuZGVyUGFzc0luZm8gPSBbXTsKLSAgICAgIGlmICghdGhpcy5sdGhpU25hcHNob3RfLmFyZ3MuZnJhbWUgfHwKLSAgICAgICAgICAhdGhpcy5sdGhpU25hcHNob3RfLmFyZ3MuZnJhbWUucmVuZGVyUGFzc2VzKQotICAgICAgICByZXR1cm4gcmVuZGVyUGFzc0luZm87Ci0KLSAgICAgIHZhciByZW5kZXJQYXNzZXMgPSB0aGlzLmx0aGlTbmFwc2hvdF8uYXJncy5mcmFtZS5yZW5kZXJQYXNzZXM7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbmRlclBhc3Nlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgaW5mbyA9IHtyZW5kZXJQYXNzOiByZW5kZXJQYXNzZXNbaV0sCi0gICAgICAgICAgICAgICAgICAgICBkZXB0aDogMCwKLSAgICAgICAgICAgICAgICAgICAgIGlkOiBpLAotICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NjOjpSZW5kZXJQYXNzJ307Ci0gICAgICAgIHJlbmRlclBhc3NJbmZvLnB1c2goaW5mbyk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmVuZGVyUGFzc0luZm87Ci0gICAgfSwKLQotICAgIGdldExheWVySW5mb3NfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5sdGhpU25hcHNob3RfKQotICAgICAgICByZXR1cm4gW107Ci0KLSAgICAgIHZhciB0cmVlID0gdGhpcy5sdGhpU25hcHNob3RfLmdldFRyZWUodGhpcy53aGljaFRyZWVfKTsKLSAgICAgIGlmICghdHJlZSkKLSAgICAgICAgcmV0dXJuIFtdOwotCi0gICAgICB2YXIgbGF5ZXJJbmZvcyA9IFtdOwotCi0gICAgICB2YXIgc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnMgPSB0aGlzLnNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzXzsKLQotICAgICAgZnVuY3Rpb24gaXNQdXJlVHJhbnNmb3JtTGF5ZXIobGF5ZXIpIHsKLSAgICAgICAgaWYgKGxheWVyLmFyZ3MuY29tcG9zaXRpbmdSZWFzb25zICYmCi0gICAgICAgICAgICBsYXllci5hcmdzLmNvbXBvc2l0aW5nUmVhc29ucy5sZW5ndGggIT0gMSAmJgotICAgICAgICAgICAgbGF5ZXIuYXJncy5jb21wb3NpdGluZ1JlYXNvbnNbMF0gIT0gJ05vIHJlYXNvbnMgZ2l2ZW4nKQotICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAobGF5ZXIuYXJncy5kcmF3c0NvbnRlbnQpCi0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgICAgfQotICAgICAgdmFyIHZpc2l0ZWRMYXllcnMgPSB7fTsKLSAgICAgIGZ1bmN0aW9uIHZpc2l0TGF5ZXIobGF5ZXIsIGRlcHRoLCBpc01hc2ssIGlzUmVwbGljYSkgewotICAgICAgICBpZiAodmlzaXRlZExheWVyc1tsYXllci5sYXllcklkXSkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZpc2l0ZWRMYXllcnNbbGF5ZXIubGF5ZXJJZF0gPSB0cnVlOwotICAgICAgICB2YXIgaW5mbyA9IHtsYXllcjogbGF5ZXIsCi0gICAgICAgICAgZGVwdGg6IGRlcHRofTsKLQotICAgICAgICBpZiAobGF5ZXIuYXJncy5kcmF3c0NvbnRlbnQpCi0gICAgICAgICAgaW5mby5uYW1lID0gbGF5ZXIub2JqZWN0SW5zdGFuY2UubmFtZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIGluZm8ubmFtZSA9ICdjYzo6TGF5ZXJJbXBsJzsKLQotICAgICAgICBpZiAobGF5ZXIudXNpbmdHcHVSYXN0ZXJpemF0aW9uKQotICAgICAgICAgIGluZm8ubmFtZSArPSAnIChHKSc7Ci0KLSAgICAgICAgaW5mby5pc01hc2tMYXllciA9IGlzTWFzazsKLSAgICAgICAgaW5mby5yZXBsaWNhTGF5ZXIgPSBpc1JlcGxpY2E7Ci0KLSAgICAgICAgaWYgKHNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzIHx8ICFpc1B1cmVUcmFuc2Zvcm1MYXllcihsYXllcikpCi0gICAgICAgICAgbGF5ZXJJbmZvcy5wdXNoKGluZm8pOwotCi0gICAgICB9OwotICAgICAgdHJlZS5pdGVyTGF5ZXJzKHZpc2l0TGF5ZXIpOwotICAgICAgcmV0dXJuIGxheWVySW5mb3M7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5yZW5kZXJQYXNzUXVhZHNfKQotICAgICAgICB0aGlzLnVwZGF0ZVJlbmRlclBhc3NDb250ZW50c18oKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy51cGRhdGVMYXllckNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVSZW5kZXJQYXNzQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuaXRlbUxpc3RfLmNsZWFyKCk7Ci0KLSAgICAgIHZhciBzZWxlY3RlZFJlbmRlclBhc3NJZDsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbl8gJiYgdGhpcy5zZWxlY3Rpb25fLmFzc29jaWF0ZWRSZW5kZXJQYXNzSWQpCi0gICAgICAgIHNlbGVjdGVkUmVuZGVyUGFzc0lkID0gdGhpcy5zZWxlY3Rpb25fLmFzc29jaWF0ZWRSZW5kZXJQYXNzSWQ7Ci0KLSAgICAgIHZhciByZW5kZXJQYXNzSW5mb3MgPSB0aGlzLmdldFJlbmRlclBhc3NJbmZvc18oKTsKLSAgICAgIHJlbmRlclBhc3NJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKHJlbmRlclBhc3NJbmZvKSB7Ci0gICAgICAgIHZhciByZW5kZXJQYXNzID0gcmVuZGVyUGFzc0luZm8ucmVuZGVyUGFzczsKLSAgICAgICAgdmFyIGlkID0gcmVuZGVyUGFzc0luZm8uaWQ7Ci0KLSAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZUVsZW1lbnRXaXRoRGVwdGhfKHJlbmRlclBhc3NJbmZvLmRlcHRoKTsKLSAgICAgICAgdmFyIGxhYmVsRWwgPSBpdGVtLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU3BhbigpKTsKLQotICAgICAgICBsYWJlbEVsLnRleHRDb250ZW50ID0gcmVuZGVyUGFzc0luZm8ubmFtZSArICcgJyArIGlkOwotICAgICAgICBpdGVtLnJlbmRlclBhc3MgPSByZW5kZXJQYXNzOwotICAgICAgICBpdGVtLnJlbmRlclBhc3NJZCA9IGlkOwotICAgICAgICB0aGlzLml0ZW1MaXN0Xy5hcHBlbmRDaGlsZChpdGVtKTsKLQotICAgICAgICBpZiAoaWQgPT0gc2VsZWN0ZWRSZW5kZXJQYXNzSWQpIHsKLSAgICAgICAgICByZW5kZXJQYXNzLnNlbGVjdGlvblN0YXRlID0KLSAgICAgICAgICAgICAgdHIubW9kZWwuU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7Ci0gICAgICAgIH0KLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICB1cGRhdGVMYXllckNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNoYW5naW5nSXRlbVNlbGVjdGlvbl8gPSB0cnVlOwotICAgICAgdHJ5IHsKLSAgICAgICAgdGhpcy5pdGVtTGlzdF8uY2xlYXIoKTsKLQotICAgICAgICB2YXIgc2VsZWN0ZWRMYXllcklkOwotICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fICYmIHRoaXMuc2VsZWN0aW9uXy5hc3NvY2lhdGVkTGF5ZXJJZCkKLSAgICAgICAgICBzZWxlY3RlZExheWVySWQgPSB0aGlzLnNlbGVjdGlvbl8uYXNzb2NpYXRlZExheWVySWQ7Ci0KLSAgICAgICAgdmFyIGxheWVySW5mb3MgPSB0aGlzLmdldExheWVySW5mb3NfKCk7Ci0gICAgICAgIGxheWVySW5mb3MuZm9yRWFjaChmdW5jdGlvbihsYXllckluZm8pIHsKLSAgICAgICAgICB2YXIgbGF5ZXIgPSBsYXllckluZm8ubGF5ZXI7Ci0gICAgICAgICAgdmFyIGlkID0gbGF5ZXIubGF5ZXJJZDsKLQotICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVFbGVtZW50V2l0aERlcHRoXyhsYXllckluZm8uZGVwdGgpOwotICAgICAgICAgIHZhciBsYWJlbEVsID0gaXRlbS5hcHBlbmRDaGlsZCh0ci5iLnVpLmNyZWF0ZVNwYW4oKSk7Ci0KLSAgICAgICAgICBsYWJlbEVsLnRleHRDb250ZW50ID0gbGF5ZXJJbmZvLm5hbWUgKyAnICcgKyBpZDsKLQotICAgICAgICAgIHZhciBub3Rlc0VsID0gaXRlbS5hcHBlbmRDaGlsZCh0ci5iLnVpLmNyZWF0ZVNwYW4oKSk7Ci0gICAgICAgICAgaWYgKGxheWVySW5mby5pc01hc2tMYXllcikKLSAgICAgICAgICAgIG5vdGVzRWwudGV4dENvbnRlbnQgKz0gJyhtYXNrKSc7Ci0gICAgICAgICAgaWYgKGxheWVySW5mby5pc1JlcGxpY2FMYXllcikKLSAgICAgICAgICAgIG5vdGVzRWwudGV4dENvbnRlbnQgKz0gJyhyZXBsaWNhKSc7Ci0KLSAgICAgICAgICBpZiAobGF5ZXIuZ3B1TWVtb3J5VXNhZ2VJbkJ5dGVzICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciByb3VuZGVkID0gYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXMobGF5ZXIuZ3B1TWVtb3J5VXNhZ2VJbkJ5dGVzKTsKLSAgICAgICAgICAgIGlmIChyb3VuZGVkICE9PSAwKQotICAgICAgICAgICAgICBub3Rlc0VsLnRleHRDb250ZW50ICs9ICcgKCcgKyByb3VuZGVkICsgJyBNQiknOwotICAgICAgICAgIH0KLQotICAgICAgICAgIGl0ZW0ubGF5ZXIgPSBsYXllcjsKLSAgICAgICAgICB0aGlzLml0ZW1MaXN0Xy5hcHBlbmRDaGlsZChpdGVtKTsKLQotICAgICAgICAgIGlmIChsYXllci5sYXllcklkID09IHNlbGVjdGVkTGF5ZXJJZCkgewotICAgICAgICAgICAgbGF5ZXIuc2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKLSAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSB0cnVlOwotICAgICAgICAgIH0KLSAgICAgICAgfSwgdGhpcyk7Ci0gICAgICB9IGZpbmFsbHkgewotICAgICAgICB0aGlzLmNoYW5naW5nSXRlbVNlbGVjdGlvbl8gPSBmYWxzZTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgY3JlYXRlRWxlbWVudFdpdGhEZXB0aF86IGZ1bmN0aW9uKGRlcHRoKSB7Ci0gICAgICB2YXIgaXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgICB2YXIgaW5kZW50RWwgPSBpdGVtLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU3BhbigpKTsKLSAgICAgIGluZGVudEVsLnN0eWxlLndoaXRlU3BhY2UgPSAncHJlJzsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVwdGg7IGkrKykKLSAgICAgICAgaW5kZW50RWwudGV4dENvbnRlbnQgPSBpbmRlbnRFbC50ZXh0Q29udGVudCArICcgJzsKLSAgICAgIHJldHVybiBpdGVtOwotICAgIH0sCi0KLSAgICBvbkl0ZW1TZWxlY3Rpb25DaGFuZ2VkXzogZnVuY3Rpb24oZSkgewotICAgICAgaWYgKHRoaXMuY2hhbmdpbmdJdGVtU2VsZWN0aW9uXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKHRoaXMucmVuZGVyUGFzc1F1YWRzXykKLSAgICAgICAgdGhpcy5vblJlbmRlclBhc3NTZWxlY3RlZF8oZSk7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMub25MYXllclNlbGVjdGVkXyhlKTsKLSAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnc2VsZWN0aW9uLWNoYW5nZScsIGZhbHNlKTsKLSAgICB9LAotCi0gICAgb25SZW5kZXJQYXNzU2VsZWN0ZWRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB2YXIgc2VsZWN0ZWRSZW5kZXJQYXNzOwotICAgICAgdmFyIHNlbGVjdGVkUmVuZGVyUGFzc0lkOwotICAgICAgaWYgKHRoaXMuaXRlbUxpc3RfLnNlbGVjdGVkRWxlbWVudCkgewotICAgICAgICBzZWxlY3RlZFJlbmRlclBhc3MgPSB0aGlzLml0ZW1MaXN0Xy5zZWxlY3RlZEVsZW1lbnQucmVuZGVyUGFzczsKLSAgICAgICAgc2VsZWN0ZWRSZW5kZXJQYXNzSWQgPQotICAgICAgICAgICAgdGhpcy5pdGVtTGlzdF8uc2VsZWN0ZWRFbGVtZW50LnJlbmRlclBhc3NJZDsKLSAgICAgIH0KLQotICAgICAgaWYgKHNlbGVjdGVkUmVuZGVyUGFzcykgewotICAgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBuZXcgdHIuZS5jYy5SZW5kZXJQYXNzU2VsZWN0aW9uKAotICAgICAgICAgICAgc2VsZWN0ZWRSZW5kZXJQYXNzLCBzZWxlY3RlZFJlbmRlclBhc3NJZCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uTGF5ZXJTZWxlY3RlZF86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBzZWxlY3RlZExheWVyOwotICAgICAgaWYgKHRoaXMuaXRlbUxpc3RfLnNlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgc2VsZWN0ZWRMYXllciA9IHRoaXMuaXRlbUxpc3RfLnNlbGVjdGVkRWxlbWVudC5sYXllcjsKLQotICAgICAgaWYgKHNlbGVjdGVkTGF5ZXIpCi0gICAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IG5ldyB0ci5lLmNjLkxheWVyU2VsZWN0aW9uKHNlbGVjdGVkTGF5ZXIpOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25fOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXyA9PSBzZWxlY3Rpb24pCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgTGF5ZXJQaWNrZXI6IExheWVyUGlja2VyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTY1Mjk4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF92aWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gKi8KLQotKiAvZGVlcC8gLmx0aGktcy12aWV3IHsKLSAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50OwotICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7Ci0gIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLX0KLQotKiAvZGVlcC8gLmx0aGktcy12aWV3ID4gbGF5ZXItcGlja2VyIHsKLSAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKLX0KLQotKiAvZGVlcC8gLmx0aGktcy12aWV3ID4geC1kcmFnLWhhbmRsZSB7Ci0gIC13ZWJraXQtZmxleDogMCAwIGF1dG87Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjUyNmQzYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuY3NzIj4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3BpY2tlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3RpbGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvb2JqZWN0X3NuYXBzaG90X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZHJhZ19oYW5kbGUuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmNjJywgZnVuY3Rpb24oKSB7Ci0gIC8qCi0gICAqIERpc3BsYXlzIGEgTGF5ZXJUcmVlSG9zdEltcGwgc25hcHNob3QgaW4gYSBodW1hbiByZWFkYWJsZSBmb3JtLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBMYXllclRyZWVIb3N0SW1wbFNuYXBzaG90VmlldyA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ2xheWVyLXRyZWUtaG9zdC1pbXBsLXNuYXBzaG90LXZpZXcnLAotICAgICAgdHIuYy5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcpOwotCi0gIExheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnbHRoaS1zLXZpZXcnKTsKLQotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdW5kZWZpbmVkOwotCi0gICAgICB0aGlzLmxheWVyUGlja2VyXyA9IG5ldyB0ci5lLmNjLkxheWVyUGlja2VyKCk7Ci0gICAgICB0aGlzLmxheWVyUGlja2VyXy5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdzZWxlY3Rpb24tY2hhbmdlJywKLSAgICAgICAgICB0aGlzLm9uTGF5ZXJQaWNrZXJTZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5sYXllclZpZXdfID0gbmV3IHRyLmUuY2MuTGF5ZXJWaWV3KCk7Ci0gICAgICB0aGlzLmxheWVyVmlld18uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnc2VsZWN0aW9uLWNoYW5nZScsCi0gICAgICAgICAgdGhpcy5vbkxheWVyVmlld1NlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5kcmFnSGFuZGxlXyA9IG5ldyB0ci5iLnVpLkRyYWdIYW5kbGUoKTsKLSAgICAgIHRoaXMuZHJhZ0hhbmRsZV8uaG9yaXpvbnRhbCA9IGZhbHNlOwotICAgICAgdGhpcy5kcmFnSGFuZGxlXy50YXJnZXQgPSB0aGlzLmxheWVyVmlld187Ci0KLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5sYXllclBpY2tlcl8pOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmRyYWdIYW5kbGVfKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5sYXllclZpZXdfKTsKLQotICAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgdGhlIGN1cnJlbnQgdmFsdWVzIGZyb20gbGF5ZXJWaWV3XyBhbmQgbGF5ZXJQaWNrZXJfLAotICAgICAgLy8gc2luY2UgdGhvc2UgbWlnaHQgaGF2ZSBiZWVuIGNyZWF0ZWQgYmVmb3JlIHdlIGFkZGVkIHRoZSBsaXN0ZW5lci4KLSAgICAgIHRoaXMub25MYXllclZpZXdTZWxlY3Rpb25DaGFuZ2VkXygpOwotICAgICAgdGhpcy5vbkxheWVyUGlja2VyU2VsZWN0aW9uQ2hhbmdlZF8oKTsKLQotICAgIH0sCi0KLSAgICBnZXQgb2JqZWN0U25hcHNob3QoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5vYmplY3RTbmFwc2hvdF87Ci0gICAgfSwKLQotICAgIHNldCBvYmplY3RTbmFwc2hvdChvYmplY3RTbmFwc2hvdCkgewotICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdF8gPSBvYmplY3RTbmFwc2hvdDsKLQotICAgICAgdmFyIGx0aGkgPSB0aGlzLm9iamVjdFNuYXBzaG90OwotICAgICAgdmFyIGxheWVyVHJlZUltcGw7Ci0gICAgICBpZiAobHRoaSkKLSAgICAgICAgbGF5ZXJUcmVlSW1wbCA9IGx0aGkuZ2V0VHJlZSh0aGlzLmxheWVyUGlja2VyXy53aGljaFRyZWUpOwotCi0gICAgICB0aGlzLmxheWVyUGlja2VyXy5sdGhpU25hcHNob3QgPSBsdGhpOwotICAgICAgdGhpcy5sYXllclZpZXdfLmxheWVyVHJlZUltcGwgPSBsYXllclRyZWVJbXBsOwotICAgICAgdGhpcy5sYXllclZpZXdfLnJlZ2VuZXJhdGVDb250ZW50KCk7Ci0KLSAgICAgIGlmICghdGhpcy5zZWxlY3Rpb25fKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uXy5maW5kRXF1aXZhbGVudChsdGhpKTsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAodGhpcy5zZWxlY3Rpb25fID09IHNlbGVjdGlvbikKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotICAgICAgdGhpcy5sYXllclBpY2tlcl8uc2VsZWN0aW9uID0gc2VsZWN0aW9uOwotICAgICAgdGhpcy5sYXllclZpZXdfLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnY2Mtc2VsZWN0aW9uLWNoYW5nZScpOwotICAgIH0sCi0KLSAgICBvbkxheWVyUGlja2VyU2VsZWN0aW9uQ2hhbmdlZF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdGhpcy5sYXllclBpY2tlcl8uc2VsZWN0aW9uOwotICAgICAgdGhpcy5sYXllclZpZXdfLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uOwotICAgICAgdGhpcy5sYXllclZpZXdfLmxheWVyVHJlZUltcGwgPSB0aGlzLmxheWVyUGlja2VyXy5sYXllclRyZWVJbXBsOwotICAgICAgdGhpcy5sYXllclZpZXdfLmlzUmVuZGVyUGFzc1F1YWRzID0gdGhpcy5sYXllclBpY2tlcl8uaXNSZW5kZXJQYXNzUXVhZHM7Ci0gICAgICB0aGlzLmxheWVyVmlld18ucmVnZW5lcmF0ZUNvbnRlbnQoKTsKLSAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnY2Mtc2VsZWN0aW9uLWNoYW5nZScpOwotICAgIH0sCi0KLSAgICBvbkxheWVyVmlld1NlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHRoaXMubGF5ZXJWaWV3Xy5zZWxlY3Rpb247Ci0gICAgICB0aGlzLmxheWVyUGlja2VyXy5zZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbjsKLSAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnY2Mtc2VsZWN0aW9uLWNoYW5nZScpOwotICAgIH0sCi0KLSAgICBnZXQgZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKCkgewotICAgICAgcmV0dXJuIHRoaXMubGF5ZXJWaWV3Xy5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQ7Ci0gICAgfSwKLQotICAgIHNldCBleHRyYUhpZ2hsaWdodHNCeUxheWVySWQoZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKSB7Ci0gICAgICB0aGlzLmxheWVyVmlld18uZXh0cmFIaWdobGlnaHRzQnlMYXllcklkID0gZXh0cmFIaWdobGlnaHRzQnlMYXllcklkOwotICAgIH0KLSAgfTsKLQotICB0ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5yZWdpc3RlcigKLSAgICAgIExheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3LCB7dHlwZU5hbWU6ICdjYzo6TGF5ZXJUcmVlSG9zdEltcGwnfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBMYXllclRyZWVIb3N0SW1wbFNuYXBzaG90VmlldzogTGF5ZXJUcmVlSG9zdEltcGxTbmFwc2hvdFZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MzExZjUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0IHNyYz0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdF9kYXRhLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKLSAgICB2YXIgcCA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcylbMF07Ci0KLSAgICB2YXIgaW5zdGFuY2UgPSBwLm9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzTmFtZWQoJ2NjOjpMYXllclRyZWVIb3N0SW1wbCcpWzBdOwotICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKLQotICAgIHZhciB2aWV3ID0gbmV3IHRyLmUuY2MuTGF5ZXJUcmVlSG9zdEltcGxTbmFwc2hvdFZpZXcoKTsKLSAgICB2aWV3LnN0eWxlLndpZHRoID0gJzkwMHB4JzsKLSAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc0MDBweCc7Ci0gICAgdmlldy5vYmplY3RTbmFwc2hvdCA9IHNuYXBzaG90OwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9xdWFkX3N0YWNrX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX3F1YWRfc3RhY2tfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTNjNjE3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX3F1YWRfc3RhY2tfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTE4NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcmVuZGVyX3Bhc3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdGlsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9kZWJ1Z19jb2xvcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9jb2xvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9wcm9wZXJ0aWVzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9xdWFkLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3F1YWRfc3RhY2tfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9pbmZvX2Jhci5odG1sIj4KLQotPHN0eWxlPgotKiAvZGVlcC8gbGF5ZXItdHJlZS1xdWFkLXN0YWNrLXZpZXcgewotICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLSogL2RlZXAvIGxheWVyLXRyZWUtcXVhZC1zdGFjay12aWV3ID4gdG9wLWNvbnRyb2xzIHsKLSAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKLSAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAwLCAxMDAlIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSgjRTVFNUU1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bygjRDFEMUQxKSk7Ci0gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOGU4ZThlOwotICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7Ci0gIGRpc3BsYXk6IGZsZXg7Ci0gIGZsZXgtZmxvdzogcm93IHdyYXA7Ci0gIGZsZXgtZGlyZWN0aW9uOiByb3c7Ci0gIGZvbnQtc2l6ZTogIDE0cHg7Ci0gIHBhZGRpbmctbGVmdDogMnB4OwotICBvdmVyZmxvdzogaGlkZGVuOwotfQotCi0qIC9kZWVwLyBsYXllci10cmVlLXF1YWQtc3RhY2stdmlldyA+IHRvcC1jb250cm9scyBpbnB1dFt0eXBlPSdjaGVja2JveCddIHsKLSAgdmVydGljYWwtYWxpZ246IC0ycHg7Ci19Ci0KLSogL2RlZXAvIGxheWVyLXRyZWUtcXVhZC1zdGFjay12aWV3ID4gLndoYXQtcmFzdGVyaXplZCB7Ci0gIGNvbG9yOiAtd2Via2l0LWxpbms7Ci0gIGN1cnNvcjogcG9pbnRlcjsKLSAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ci0gIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgYm90dG9tOiAxMHB4OwotICBsZWZ0OiAxMHB4OwotfQotCi0qIC9kZWVwLyBsYXllci10cmVlLXF1YWQtc3RhY2stdmlldyA+ICNpbnB1dC1ldmVudCB7Ci0gIGNvbnRlbnQ6IHVybCgnLi9pbWFnZXMvaW5wdXQtZXZlbnQucG5nJyk7Ci0gIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLTwvc3R5bGU+Ci0KLTx0ZW1wbGF0ZSBpZD0nbGF5ZXItdHJlZS1xdWFkLXN0YWNrLXZpZXctdGVtcGxhdGUnPgotICA8aW1nIGlkPSdpbnB1dC1ldmVudCcvPgotPC90ZW1wbGF0ZT4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEdyYXBoaWNhbCB2aWV3IG9mICBMYXllclRyZWVJbXBsLCB3aXRoIGNvbnRyb2xzIGZvcgotICogdHlwZSBvZiBsYXllciBjb250ZW50IHNob3duIGFuZCBpbmZvIGJhciBmb3IgY29udGVudC1sb2FkaW5nIHdhcm5pbmdzLgotICovCi10ci5leHBvcnRUbygndHIuZS5jYycsIGZ1bmN0aW9uKCkgewotCi0gIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKLSAgdmFyIFRJTEVfSEVBVE1BUF9UWVBFID0ge307Ci0gIFRJTEVfSEVBVE1BUF9UWVBFLk5PTkUgPSAnbm9uZSc7Ci0gIFRJTEVfSEVBVE1BUF9UWVBFLlNDSEVEVUxFRF9QUklPUklUWSA9ICdzY2hlZHVsZWRQcmlvcml0eSc7Ci0gIFRJTEVfSEVBVE1BUF9UWVBFLlVTSU5HX0dQVV9NRU1PUlkgPSAndXNpbmdHcHVNZW1vcnknOwotCi0gIGZ1bmN0aW9uIGNyZWF0ZVRpbGVSZWN0c1NlbGVjdG9yQmFzZU9wdGlvbnMoKSB7Ci0gICAgcmV0dXJuIFt7bGFiZWw6ICdOb25lJywgdmFsdWU6ICdub25lJ30sCi0gICAgICAgICAgICB7bGFiZWw6ICdDb3ZlcmFnZSBSZWN0cycsIHZhbHVlOiAnY292ZXJhZ2UnfV07Ci0gIH0KLQotICB2YXIgYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXMgPSB0ci5lLmNjLmJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzOwotCi0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIExheWVyVHJlZVF1YWRTdGFja1ZpZXcgPSB0ci5iLnVpLmRlZmluZSgnbGF5ZXItdHJlZS1xdWFkLXN0YWNrLXZpZXcnKTsKLQotICBMYXllclRyZWVRdWFkU3RhY2tWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuaXNSZW5kZXJQYXNzUXVhZHNfID0gZmFsc2U7Ci0gICAgICB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8gPSB7fTsgLy8gTWFwcyBwaWN0dXJlLmd1aWQgdG8gUGljdHVyZUFzSW1hZ2VEYXRhLgotICAgICAgdGhpcy5tZXNzYWdlc18gPSBbXTsKLSAgICAgIHRoaXMuY29udHJvbHNfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndG9wLWNvbnRyb2xzJyk7Ci0gICAgICB0aGlzLmluZm9CYXJfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS1pbmZvLWJhcicpOwotICAgICAgdGhpcy5xdWFkU3RhY2tWaWV3XyA9IG5ldyB0ci5iLnVpLlF1YWRTdGFja1ZpZXcoKTsKLSAgICAgIHRoaXMucXVhZFN0YWNrVmlld18uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnc2VsZWN0aW9uY2hhbmdlJywgdGhpcy5vblF1YWRTdGFja1ZpZXdTZWxlY3Rpb25DaGFuZ2VfLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5leHRyYUhpZ2hsaWdodHNCeUxheWVySWRfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5pbnB1dEV2ZW50SW1hZ2VEYXRhXyA9IHVuZGVmaW5lZDsKLQotICAgICAgdmFyIG0gPSB0ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREU7Ci0gICAgICB2YXIgbW1zID0gdGhpcy5xdWFkU3RhY2tWaWV3Xy5tb3VzZU1vZGVTZWxlY3RvcjsKLSAgICAgIG1tcy5zZXR0aW5nc0tleSA9ICd0ci5lLmNjLmxheWVyVHJlZVF1YWRTdGFja1ZpZXcubW91c2VNb2RlU2VsZWN0b3InOwotICAgICAgbW1zLnNldEtleUNvZGVGb3JNb2RlKG0uU0VMRUNUSU9OLCAnWicuY2hhckNvZGVBdCgwKSk7Ci0gICAgICBtbXMuc2V0S2V5Q29kZUZvck1vZGUobS5QQU5TQ0FOLCAnWCcuY2hhckNvZGVBdCgwKSk7Ci0gICAgICBtbXMuc2V0S2V5Q29kZUZvck1vZGUobS5aT09NLCAnQycuY2hhckNvZGVBdCgwKSk7Ci0gICAgICBtbXMuc2V0S2V5Q29kZUZvck1vZGUobS5ST1RBVEUsICdWJy5jaGFyQ29kZUF0KDApKTsKLQotICAgICAgdmFyIG5vZGUgPSB0ci5iLmluc3RhbnRpYXRlVGVtcGxhdGUoCi0gICAgICAgICAgJyNsYXllci10cmVlLXF1YWQtc3RhY2stdmlldy10ZW1wbGF0ZScsIFRISVNfRE9DKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobm9kZSk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHNfKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5pbmZvQmFyXyk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMucXVhZFN0YWNrVmlld18pOwotCi0gICAgICB0aGlzLnRpbGVSZWN0c1NlbGVjdG9yXyA9IHRyLmIudWkuY3JlYXRlU2VsZWN0b3IoCi0gICAgICAgICAgdGhpcywgJ2hvd1RvU2hvd1RpbGVzJywKLSAgICAgICAgICAnbGF5ZXJWaWV3Lmhvd1RvU2hvd1RpbGVzJywgJ25vbmUnLAotICAgICAgICAgIGNyZWF0ZVRpbGVSZWN0c1NlbGVjdG9yQmFzZU9wdGlvbnMoKSk7Ci0gICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZCh0aGlzLnRpbGVSZWN0c1NlbGVjdG9yXyk7Ci0KLSAgICAgIHZhciB0aWxlSGVhdG1hcFRleHQgPSB0ci5iLnVpLmNyZWF0ZVNwYW4oewotICAgICAgICB0ZXh0Q29udGVudDogJ1RpbGUgaGVhdG1hcDonCi0gICAgICB9KTsKLSAgICAgIHRoaXMuY29udHJvbHNfLmFwcGVuZENoaWxkKHRpbGVIZWF0bWFwVGV4dCk7Ci0KLSAgICAgIHZhciB0aWxlSGVhdG1hcFNlbGVjdG9yID0gdHIuYi51aS5jcmVhdGVTZWxlY3RvcigKLSAgICAgICAgICB0aGlzLCAndGlsZUhlYXRtYXBUeXBlJywKLSAgICAgICAgICAnbGF5ZXJWaWV3LnRpbGVIZWF0bWFwVHlwZScsIFRJTEVfSEVBVE1BUF9UWVBFLk5PTkUsCi0gICAgICAgICAgW3tsYWJlbDogJ05vbmUnLAotICAgICAgICAgICAgdmFsdWU6IFRJTEVfSEVBVE1BUF9UWVBFLk5PTkV9LAotICAgICAgICAgICB7bGFiZWw6ICdTY2hlZHVsZWQgUHJpb3JpdHknLAotICAgICAgICAgICAgdmFsdWU6IFRJTEVfSEVBVE1BUF9UWVBFLlNDSEVEVUxFRF9QUklPUklUWX0sCi0gICAgICAgICAgIHtsYWJlbDogJ0lzIHVzaW5nIEdQVSBtZW1vcnknLAotICAgICAgICAgICAgdmFsdWU6IFRJTEVfSEVBVE1BUF9UWVBFLlVTSU5HX0dQVV9NRU1PUll9Ci0gICAgICAgICAgXSk7Ci0gICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZCh0aWxlSGVhdG1hcFNlbGVjdG9yKTsKLQotICAgICAgdmFyIHNob3dPdGhlckxheWVyc0NoZWNrYm94ID0gdHIuYi51aS5jcmVhdGVDaGVja0JveCgKLSAgICAgICAgICB0aGlzLCAnc2hvd090aGVyTGF5ZXJzJywKLSAgICAgICAgICAnbGF5ZXJWaWV3LnNob3dPdGhlckxheWVycycsIHRydWUsCi0gICAgICAgICAgJ090aGVyIGxheWVycy9wYXNzZXMnKTsKLSAgICAgIHNob3dPdGhlckxheWVyc0NoZWNrYm94LnRpdGxlID0KLSAgICAgICAgICAnV2hlbiBjaGVja2VkLCBzaG93IGFsbCBsYXllcnMsIHNlbGVjdGVkIG9yIG5vdC4nOwotICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQoc2hvd090aGVyTGF5ZXJzQ2hlY2tib3gpOwotCi0gICAgICB2YXIgc2hvd0ludmFsaWRhdGlvbnNDaGVja2JveCA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3goCi0gICAgICAgICAgdGhpcywgJ3Nob3dJbnZhbGlkYXRpb25zJywKLSAgICAgICAgICAnbGF5ZXJWaWV3LnNob3dJbnZhbGlkYXRpb25zJywgdHJ1ZSwKLSAgICAgICAgICAnSW52YWxpZGF0aW9ucycpOwotICAgICAgc2hvd0ludmFsaWRhdGlvbnNDaGVja2JveC50aXRsZSA9Ci0gICAgICAgICAgJ1doZW4gY2hlY2tlZCwgY29tcG9zaXRpbmcgaW52YWxpZGF0aW9ucyBhcmUgaGlnaGxpZ2h0ZWQgaW4gcmVkJzsKLSAgICAgIHRoaXMuY29udHJvbHNfLmFwcGVuZENoaWxkKHNob3dJbnZhbGlkYXRpb25zQ2hlY2tib3gpOwotCi0gICAgICB2YXIgc2hvd1VucmVjb3JkZWRSZWdpb25DaGVja2JveCA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3goCi0gICAgICAgICAgdGhpcywgJ3Nob3dVbnJlY29yZGVkUmVnaW9uJywKLSAgICAgICAgICAnbGF5ZXJWaWV3LnNob3dVbnJlY29yZGVkUmVnaW9uJywgdHJ1ZSwKLSAgICAgICAgICAnVW5yZWNvcmRlZCBhcmVhJyk7Ci0gICAgICBzaG93VW5yZWNvcmRlZFJlZ2lvbkNoZWNrYm94LnRpdGxlID0KLSAgICAgICAgICAnV2hlbiBjaGVja2VkLCB1bnJlY29yZGVkIGFyZWFzIGFyZSBoaWdobGlnaHRlZCBpbiB5ZWxsb3cnOwotICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQoc2hvd1VucmVjb3JkZWRSZWdpb25DaGVja2JveCk7Ci0KLSAgICAgIHZhciBzaG93Qm90dGxlbmVja3NDaGVja2JveCA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3goCi0gICAgICAgICAgdGhpcywgJ3Nob3dCb3R0bGVuZWNrcycsCi0gICAgICAgICAgJ2xheWVyVmlldy5zaG93Qm90dGxlbmVja3MnLCB0cnVlLAotICAgICAgICAgICdCb3R0bGVuZWNrcycpOwotICAgICAgc2hvd0JvdHRsZW5lY2tzQ2hlY2tib3gudGl0bGUgPQotICAgICAgICAgICdXaGVuIGNoZWNrZWQsIHNjcm9sbCBib3R0bGVuZWNrcyBhcmUgaGlnaGxpZ2h0ZWQnOwotICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQoc2hvd0JvdHRsZW5lY2tzQ2hlY2tib3gpOwotCi0gICAgICB2YXIgc2hvd0xheW91dFJlY3RzQ2hlY2tib3ggPSB0ci5iLnVpLmNyZWF0ZUNoZWNrQm94KAotICAgICAgICAgIHRoaXMsICdzaG93TGF5b3V0UmVjdHMnLAotICAgICAgICAgICdsYXllclZpZXcuc2hvd0xheW91dFJlY3RzJywgZmFsc2UsCi0gICAgICAgICAgJ0xheW91dCByZWN0cycpOwotICAgICAgc2hvd0xheW91dFJlY3RzQ2hlY2tib3gudGl0bGUgPQotICAgICAgICAgICdXaGVuIGNoZWNrZWQsIHNob3dzIHJlY3RzIGZvciByZWdpb25zIHdoZXJlIGxheW91dCBoYXBwZW5lZCc7Ci0gICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZChzaG93TGF5b3V0UmVjdHNDaGVja2JveCk7Ci0KLSAgICAgIHZhciBzaG93Q29udGVudHNDaGVja2JveCA9IHRyLmIudWkuY3JlYXRlQ2hlY2tCb3goCi0gICAgICAgICAgdGhpcywgJ3Nob3dDb250ZW50cycsCi0gICAgICAgICAgJ2xheWVyVmlldy5zaG93Q29udGVudHMnLCB0cnVlLAotICAgICAgICAgICdDb250ZW50cycpOwotICAgICAgc2hvd0NvbnRlbnRzQ2hlY2tib3gudGl0bGUgPQotICAgICAgICAgICdXaGVuIGNoZWNrZWQsIHNob3cgdGhlIHJlbmRlcmVkIGNvbnRlbnRzIGluc2lkZSB0aGUgbGF5ZXIgb3V0bGluZXMnOwotICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQoc2hvd0NvbnRlbnRzQ2hlY2tib3gpOwotCi0gICAgICB2YXIgc2hvd0FuaW1hdGlvbkJvdW5kc0NoZWNrYm94ID0gdHIuYi51aS5jcmVhdGVDaGVja0JveCgKLSAgICAgICAgICB0aGlzLCAnc2hvd0FuaW1hdGlvbkJvdW5kcycsCi0gICAgICAgICAgJ2xheWVyVmlldy5zaG93QW5pbWF0aW9uQm91bmRzJywgZmFsc2UsCi0gICAgICAgICAgJ0FuaW1hdGlvbiBCb3VuZHMnKTsKLSAgICAgIHNob3dBbmltYXRpb25Cb3VuZHNDaGVja2JveC50aXRsZSA9ICdXaGVuIGNoZWNrZWQsIHNob3cgYSBib3JkZXIgYXJvdW5kJyArCi0gICAgICAgICAgJyBhIGxheWVyIHNob3dpbmcgdGhlIGV4dGVudCBvZiBpdHMgYW5pbWF0aW9uLic7Ci0gICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZChzaG93QW5pbWF0aW9uQm91bmRzQ2hlY2tib3gpOwotCi0gICAgICB2YXIgc2hvd0lucHV0RXZlbnRzQ2hlY2tib3ggPSB0ci5iLnVpLmNyZWF0ZUNoZWNrQm94KAotICAgICAgICAgIHRoaXMsICdzaG93SW5wdXRFdmVudHMnLAotICAgICAgICAgICdsYXllclZpZXcuc2hvd0lucHV0RXZlbnRzJywgdHJ1ZSwKLSAgICAgICAgICAnSW5wdXQgZXZlbnRzJyk7Ci0gICAgICBzaG93SW5wdXRFdmVudHNDaGVja2JveC50aXRsZSA9ICdXaGVuIGNoZWNrZWQsIGlucHV0IGV2ZW50cyBhcmUgJyArCi0gICAgICAgICAgJ2Rpc3BsYXllZCBhcyBjaXJjbGVzLic7Ci0gICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZChzaG93SW5wdXRFdmVudHNDaGVja2JveCk7Ci0KLSAgICAgIHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKLSAgICAgIHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXy5jbGFzc0xpc3QuYWRkKCd3aGF0LXJhc3Rlcml6ZWQnKTsKLSAgICAgIHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXy50ZXh0Q29udGVudCA9ICdXaGF0IHJhc3Rlcml6ZWQ/JzsKLSAgICAgIHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXy5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdjbGljaycsIHRoaXMub25XaGF0UmFzdGVyaXplZExpbmtDbGlja2VkXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy53aGF0UmFzdGVyaXplZExpbmtfKTsKLSAgICB9LAotCi0gICAgZ2V0IGxheWVyVHJlZUltcGwoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sYXllclRyZWVJbXBsXzsKLSAgICB9LAotCi0gICAgc2V0IGlzUmVuZGVyUGFzc1F1YWRzKG5ld1ZhbHVlKSB7Ci0gICAgICB0aGlzLmlzUmVuZGVyUGFzc1F1YWRzXyA9IG5ld1ZhbHVlOwotICAgIH0sCi0KLSAgICBzZXQgbGF5ZXJUcmVlSW1wbChsYXllclRyZWVJbXBsKSB7Ci0gICAgICBpZiAodGhpcy5sYXllclRyZWVJbXBsXyA9PT0gbGF5ZXJUcmVlSW1wbCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICAvLyBGSVhNRShwZHIpOiBXZSBtYXkgd2FudCB0byBjbGVhciBwaWN0dXJlQXNJbWFnZURhdGFfIGhlcmUgdG8gc2F2ZQotICAgICAgLy8gICAgICAgICAgICAgbWVtb3J5IGF0IHRoZSBjb3N0IG9mIHBlcmZvcm1hbmNlLiBOb3RlIHRoYXQKLSAgICAgIC8vICAgICAgICAgICAgIHBpY3R1cmVBc0ltYWdlRGF0YV8gd2lsbCBiZSBjbGVhcmVkIHdoZW4gdGhpcyBpcwotICAgICAgLy8gICAgICAgICAgICAgZGVzdHJ1Y3RlZCwgYnV0IHRoaXMgdmlldyBtaWdodCBsaXZlIGZvciBzZXZlcmFsCi0gICAgICAvLyAgICAgICAgICAgICBsYXllclRyZWVJbXBscy4KLSAgICAgIHRoaXMubGF5ZXJUcmVlSW1wbF8gPSBsYXllclRyZWVJbXBsOwotICAgICAgdGhpcy5zZWxlY3Rpb24gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBleHRyYUhpZ2hsaWdodHNCeUxheWVySWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5leHRyYUhpZ2hsaWdodHNCeUxheWVySWRfOwotICAgIH0sCi0KLSAgICBzZXQgZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZCkgewotICAgICAgdGhpcy5leHRyYUhpZ2hsaWdodHNCeUxheWVySWRfID0gZXh0cmFIaWdobGlnaHRzQnlMYXllcklkOwotICAgICAgdGhpcy5zY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgc2hvd090aGVyTGF5ZXJzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2hvd090aGVyTGF5ZXJzXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dPdGhlckxheWVycyhzaG93KSB7Ci0gICAgICB0aGlzLnNob3dPdGhlckxheWVyc18gPSBzaG93OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHNob3dBbmltYXRpb25Cb3VuZHMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zaG93QW5pbWF0aW9uQm91bmRzXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dBbmltYXRpb25Cb3VuZHMoc2hvdykgewotICAgICAgdGhpcy5zaG93QW5pbWF0aW9uQm91bmRzXyA9IHNob3c7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgc2hvd0lucHV0RXZlbnRzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2hvd0lucHV0RXZlbnRzXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dJbnB1dEV2ZW50cyhzaG93KSB7Ci0gICAgICB0aGlzLnNob3dJbnB1dEV2ZW50c18gPSBzaG93OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHNob3dDb250ZW50cygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNob3dDb250ZW50c187Ci0gICAgfSwKLQotICAgIHNldCBzaG93Q29udGVudHMoc2hvdykgewotICAgICAgdGhpcy5zaG93Q29udGVudHNfID0gc2hvdzsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBzaG93SW52YWxpZGF0aW9ucygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNob3dJbnZhbGlkYXRpb25zXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dJbnZhbGlkYXRpb25zKHNob3cpIHsKLSAgICAgIHRoaXMuc2hvd0ludmFsaWRhdGlvbnNfID0gc2hvdzsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBzaG93VW5yZWNvcmRlZFJlZ2lvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnNob3dVbnJlY29yZGVkUmVnaW9uXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dVbnJlY29yZGVkUmVnaW9uKHNob3cpIHsKLSAgICAgIHRoaXMuc2hvd1VucmVjb3JkZWRSZWdpb25fID0gc2hvdzsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldCBzaG93Qm90dGxlbmVja3MoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zaG93Qm90dGxlbmVja3NfOwotICAgIH0sCi0KLSAgICBzZXQgc2hvd0JvdHRsZW5lY2tzKHNob3cpIHsKLSAgICAgIHRoaXMuc2hvd0JvdHRsZW5lY2tzXyA9IHNob3c7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgc2hvd0xheW91dFJlY3RzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2hvd0xheW91dFJlY3RzXzsKLSAgICB9LAotCi0gICAgc2V0IHNob3dMYXlvdXRSZWN0cyhzaG93KSB7Ci0gICAgICB0aGlzLnNob3dMYXlvdXRSZWN0c18gPSBzaG93OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IGhvd1RvU2hvd1RpbGVzKCkgewotICAgICAgcmV0dXJuIHRoaXMuaG93VG9TaG93VGlsZXNfOwotICAgIH0sCi0KLSAgICBzZXQgaG93VG9TaG93VGlsZXModmFsKSB7Ci0gICAgICAvLyBNYWtlIHN1cmUgdmFsIGlzIHNvbWV0aGluZyB3ZSBleHBlY3QuCi0gICAgICBjb25zb2xlLmFzc2VydCgKLSAgICAgICAgICAodmFsID09PSAnbm9uZScpIHx8Ci0gICAgICAgICAgKHZhbCA9PT0gJ2NvdmVyYWdlJykgfHwKLSAgICAgICAgICAhaXNOYU4ocGFyc2VGbG9hdCh2YWwpKSk7Ci0KLSAgICAgIHRoaXMuaG93VG9TaG93VGlsZXNfID0gdmFsOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgZ2V0IHRpbGVIZWF0bWFwVHlwZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnRpbGVIZWF0bWFwVHlwZV87Ci0gICAgfSwKLQotICAgIHNldCB0aWxlSGVhdG1hcFR5cGUodmFsKSB7Ci0gICAgICB0aGlzLnRpbGVIZWF0bWFwVHlwZV8gPSB2YWw7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbiA9PT0gc2VsZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2UnKTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIHJlZ2VuZXJhdGVDb250ZW50OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudXBkYXRlVGlsZXNTZWxlY3Rvcl8oKTsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGxvYWREYXRhRm9ySW1hZ2VFbGVtZW50XzogZnVuY3Rpb24oaW1hZ2UsIGNhbGxiYWNrKSB7Ci0gICAgICB2YXIgaW1hZ2VDb250ZW50ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoaW1hZ2UpLmNvbnRlbnQ7Ci0gICAgICBpbWFnZS5zcmMgPSBpbWFnZUNvbnRlbnQucmVwbGFjZSgvdXJsXCgoLiopXCkvLCAnJDEnKTsKLSAgICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgICAgY2FudmFzLndpZHRoID0gaW1hZ2Uud2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHQ7Ci0gICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOwotICAgICAgICB2YXIgaW1hZ2VEYXRhID0gY3R4LmdldEltYWdlRGF0YSgKLSAgICAgICAgICAgIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgICAgIGNhbGxiYWNrKGltYWdlRGF0YSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uUXVhZFN0YWNrVmlld1NlbGVjdGlvbkNoYW5nZV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHZhciBzZWxlY3RhYmxlUXVhZHMgPSBlLnF1YWRzLmZpbHRlcihmdW5jdGlvbihxKSB7Ci0gICAgICAgIHJldHVybiBxLnNlbGVjdGlvblRvU2V0SWZDbGlja2VkICE9PSB1bmRlZmluZWQ7Ci0gICAgICB9KTsKLSAgICAgIGlmIChzZWxlY3RhYmxlUXVhZHMubGVuZ3RoID09IDApIHsKLSAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSB1bmRlZmluZWQ7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgLy8gU29ydCB0aGUgcXVhZHMgbG93IHRvIGhpZ2ggb24gc3RhY2tpbmdHcm91cElkLgotICAgICAgc2VsZWN0YWJsZVF1YWRzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICB2YXIgeiA9IHguc3RhY2tpbmdHcm91cElkIC0geS5zdGFja2luZ0dyb3VwSWQ7Ci0gICAgICAgIGlmICh6ICE9IDApCi0gICAgICAgICAgcmV0dXJuIHo7Ci0gICAgICAgIHJldHVybiB4LnNlbGVjdGlvblRvU2V0SWZDbGlja2VkLnNwZWNpY2lmaXR5IC0KLSAgICAgICAgICAgIHkuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQuc3BlY2ljaWZpdHk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gVE9ETyhuZHVjYSk6IFN1cHBvcnQgc2VsZWN0aW5nIE4gdGhpbmdzIGF0IG9uY2UuCi0gICAgICB2YXIgcXVhZFRvU2VsZWN0ID0gc2VsZWN0YWJsZVF1YWRzW3NlbGVjdGFibGVRdWFkcy5sZW5ndGggLSAxXTsKLSAgICAgIHRoaXMuc2VsZWN0aW9uID0gcXVhZFRvU2VsZWN0LnNlbGVjdGlvblRvU2V0SWZDbGlja2VkOwotICAgIH0sCi0KLSAgICBzY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy51cGRhdGVDb250ZW50c1BlbmRpbmdfKQotICAgICAgICByZXR1cm47Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzUGVuZGluZ18gPSB0cnVlOwotICAgICAgdHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUoCi0gICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18sIHRoaXMpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmxheWVyVHJlZUltcGxfKSB7Ci0gICAgICAgIHRoaXMucXVhZFN0YWNrVmlld18uaGVhZGVyVGV4dCA9ICdObyB0cmVlJzsKLSAgICAgICAgdGhpcy5xdWFkU3RhY2tWaWV3Xy5xdWFkcyA9IFtdOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLQotICAgICAgdmFyIHN0YXR1cyA9IHRoaXMuY29tcHV0ZVBpY3R1cmVMb2FkaW5nU3RhdHVzXygpOwotICAgICAgaWYgKCFzdGF0dXMucGljdHVyZXNDb21wbGV0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgbHRoaSA9IHRoaXMubGF5ZXJUcmVlSW1wbF8ubGF5ZXJUcmVlSG9zdEltcGw7Ci0gICAgICB2YXIgbHRoaUluc3RhbmNlID0gbHRoaS5vYmplY3RJbnN0YW5jZTsKLSAgICAgIHZhciB3b3JsZFZpZXdwb3J0UmVjdCA9IHRyLmIuUmVjdC5mcm9tWFlXSCgKLSAgICAgICAgICAwLCAwLAotICAgICAgICAgIGx0aGkuZGV2aWNlVmlld3BvcnRTaXplLndpZHRoLCBsdGhpLmRldmljZVZpZXdwb3J0U2l6ZS5oZWlnaHQpOwotICAgICAgdGhpcy5xdWFkU3RhY2tWaWV3Xy5kZXZpY2VSZWN0ID0gd29ybGRWaWV3cG9ydFJlY3Q7Ci0gICAgICBpZiAodGhpcy5pc1JlbmRlclBhc3NRdWFkc18pCi0gICAgICAgIHRoaXMucXVhZFN0YWNrVmlld18ucXVhZHMgPSB0aGlzLmdlbmVyYXRlUmVuZGVyUGFzc1F1YWRzKCk7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMucXVhZFN0YWNrVmlld18ucXVhZHMgPSB0aGlzLmdlbmVyYXRlTGF5ZXJRdWFkcygpOwotCi0gICAgICB0aGlzLnVwZGF0ZVdoYXRSYXN0ZXJpemVkTGlua1N0YXRlXygpOwotCi0gICAgICB2YXIgbWVzc2FnZSA9ICcnOwotICAgICAgaWYgKGx0aGkudGlsZXNIYXZlR3B1TWVtb3J5VXNhZ2VJbmZvKSB7Ci0gICAgICAgIHZhciB0aGlzVHJlZVVzYWdlSW5CeXRlcyA9IHRoaXMubGF5ZXJUcmVlSW1wbF8uZ3B1TWVtb3J5VXNhZ2VJbkJ5dGVzOwotICAgICAgICB2YXIgb3RoZXJUcmVlVXNhZ2VJbkJ5dGVzID0gbHRoaS5ncHVNZW1vcnlVc2FnZUluQnl0ZXMgLQotICAgICAgICAgICAgdGhpc1RyZWVVc2FnZUluQnl0ZXM7Ci0gICAgICAgIG1lc3NhZ2UgKz0gYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXModGhpc1RyZWVVc2FnZUluQnl0ZXMpICsKLSAgICAgICAgICAgICAgICAnTUIgb24gdGhpcyB0cmVlJzsKLSAgICAgICAgaWYgKG90aGVyVHJlZVVzYWdlSW5CeXRlcykgewotICAgICAgICAgIG1lc3NhZ2UgKz0gJywgJyArCi0gICAgICAgICAgICAgIGJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzKG90aGVyVHJlZVVzYWdlSW5CeXRlcykgKwotICAgICAgICAgICAgICAnTUIgb24gdGhlIG90aGVyIHRyZWUnOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBpZiAodGhpcy5sYXllclRyZWVJbXBsXykgewotICAgICAgICAgIHZhciB0aGlzVHJlZVVzYWdlSW5CeXRlcyA9IHRoaXMubGF5ZXJUcmVlSW1wbF8uZ3B1TWVtb3J5VXNhZ2VJbkJ5dGVzOwotICAgICAgICAgIG1lc3NhZ2UgKz0gYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXModGhpc1RyZWVVc2FnZUluQnl0ZXMpICsKLSAgICAgICAgICAgICAgJ01CIG9uIHRoaXMgdHJlZSc7Ci0KLSAgICAgICAgICBpZiAodGhpcy5sYXllclRyZWVJbXBsXy5vdGhlclRyZWUpIHsKLSAgICAgICAgICAgIC8vIE9sZGVyIENocm9tZXMgZG9uJ3QgcmVwb3J0IGVub3VnaCBkYXRhIHRvIGtub3cgaG93IG11Y2ggbWVtb3J5IGlzCi0gICAgICAgICAgICAvLyBiZWluZyB1c2VkIGFjcm9zcyBib3RoIHRyZWVzLiBXZSBrbm93IHRoZSBtZW1vcnkgY29uc3VtZWQgYnkgZWFjaAotICAgICAgICAgICAgLy8gdHJlZSwgYnV0IHRoZXJlIGlzIHJlc291cmNlIHNoYXJpbmcgKmJldHdlZW4gdGhlIHRyZWVzKiBzbyB3ZQotICAgICAgICAgICAgLy8gY2FuJ3Qgc2ltcGx5IHN1bSB1cCB0aGUgcGVyLXRyZWUgY29zdHMuIFdlIG5lZWQgZWl0aGVyIHRoZSB0b3RhbAotICAgICAgICAgICAgLy8gcGx1cyBvbmUgdHJlZSwgdG8gZ3Vlc3MgdGhlIHVuaXF1ZSBvbiB0aGUgb3RoZXIgdHJlZSwgZXRjLiBOZXdlcgotICAgICAgICAgICAgLy8gY2hyb21lcyByZXBvcnQgbWVtb3J5IHBlciB0aWxlLCB3aGljaCBhbGxvd3MgTFRISSB0byBjb21wdXRlIHRoZQotICAgICAgICAgICAgLy8gdG90YWwgdGlsZSBtZW1vcnkgdXNhZ2UsIGxldHRpbmcgdXMgZmlndXJlIHRoaW5ncyBvdXQgcHJvcGVybHkuCi0gICAgICAgICAgICBtZXNzYWdlICs9ICcsID8/P01CIG9uIG90aGVyIHRyZWUuICc7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGlmIChsdGhpLmFyZ3MudGlsZU1hbmFnZXJCYXNpY1N0YXRlKSB7Ci0gICAgICAgIHZhciB0bWdzID0gbHRoaS5hcmdzLnRpbGVNYW5hZ2VyQmFzaWNTdGF0ZS5nbG9iYWxTdGF0ZTsKLSAgICAgICAgbWVzc2FnZSArPSAnIChzb2Z0TWF4PScgKwotICAgICAgICAgIGJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzKHRtZ3Muc29mdE1lbW9yeUxpbWl0SW5CeXRlcykgKwotICAgICAgICAgICdNQiwgaGFyZE1heD0nICsKLSAgICAgICAgICBieXRlc1RvUm91bmRlZE1lZ2FieXRlcyh0bWdzLmhhcmRNZW1vcnlMaW1pdEluQnl0ZXMpICsgJ01CLCAnICsKLSAgICAgICAgICB0bWdzLm1lbW9yeUxpbWl0UG9saWN5ICsgJyknOwotCi0gICAgICB9IGVsc2UgewotICAgICAgICAvLyBPbGQgQ2hyb21lcyBkbyBub3QgaGF2ZSBhIGdsb2JhbFN0YXRlIG9uIHRoZSBMVEhJIGR1bXAuCi0gICAgICAgIC8vIEJ1dCB0aGV5IGRvIGlzc3VlIGEgRGlkTWFuYWdlIGV2ZW50IHdpaHQgdGhlIGdsb2JhbHN0YXRlLiBGaW5kIHRoYXQKLSAgICAgICAgLy8gZXZlbnQgc28gdGhhdCB3ZSBzaG93IHNvbWUgZ2xvYmFsIHN0YXRlLgotICAgICAgICB2YXIgdGhyZWFkID0gbHRoaS5zbmFwc2hvdHRlZE9uVGhyZWFkOwotICAgICAgICB2YXIgZGlkTWFuYWdlVGlsZXNTbGljZXMgPSB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXMuZmlsdGVyKGZ1bmN0aW9uKHMpIHsKLSAgICAgICAgICBpZiAocy5jYXRlZ29yeSAhPT0gJ3RyLmUuY2MnKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgIGlmIChzLnRpdGxlICE9PSAnRGlkTWFuYWdlJykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICBpZiAocy5lbmQgPiBsdGhpLnRzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9KTsKLSAgICAgICAgZGlkTWFuYWdlVGlsZXNTbGljZXMuc29ydChmdW5jdGlvbih4LCB5KSB7Ci0gICAgICAgICAgcmV0dXJuIHguZW5kIC0geS5lbmQ7Ci0gICAgICAgIH0pOwotICAgICAgICBpZiAoZGlkTWFuYWdlVGlsZXNTbGljZXMubGVuZ3RoID4gMCkgewotICAgICAgICAgIHZhciBuZXdlc3QgPSBkaWRNYW5hZ2VUaWxlc1NsaWNlc1tkaWRNYW5hZ2VUaWxlc1NsaWNlcy5sZW5ndGggLSAxXTsKLSAgICAgICAgICB2YXIgdG1ncyA9IG5ld2VzdC5hcmdzLnN0YXRlLmdsb2JhbF9zdGF0ZTsKLSAgICAgICAgICBtZXNzYWdlICs9ICcgKHNvZnRNYXg9JyArCi0gICAgICAgICAgICBieXRlc1RvUm91bmRlZE1lZ2FieXRlcyh0bWdzLnNvZnRfbWVtb3J5X2xpbWl0X2luX2J5dGVzKSArCi0gICAgICAgICAgICAnTUIsIGhhcmRNYXg9JyArCi0gICAgICAgICAgICBieXRlc1RvUm91bmRlZE1lZ2FieXRlcyh0bWdzLmhhcmRfbWVtb3J5X2xpbWl0X2luX2J5dGVzKSArICdNQiwgJyArCi0gICAgICAgICAgICB0bWdzLm1lbW9yeV9saW1pdF9wb2xpY3kgKyAnKSc7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgKHRoaXMubGF5ZXJUcmVlSW1wbF8ub3RoZXJUcmVlKQotICAgICAgICBtZXNzYWdlICs9ICcgKEFub3RoZXIgdHJlZSBleGlzdHMpJzsKLQotCi0gICAgICBpZiAobWVzc2FnZS5sZW5ndGgpCi0gICAgICAgIHRoaXMucXVhZFN0YWNrVmlld18uaGVhZGVyVGV4dCA9IG1lc3NhZ2U7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMucXVhZFN0YWNrVmlld18uaGVhZGVyVGV4dCA9IHVuZGVmaW5lZDsKLQotICAgICAgdGhpcy51cGRhdGVJbmZvQmFyXyhzdGF0dXMubWVzc2FnZXMpOwotICAgIH0sCi0KLSAgICB1cGRhdGVUaWxlc1NlbGVjdG9yXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZGF0YSA9IGNyZWF0ZVRpbGVSZWN0c1NlbGVjdG9yQmFzZU9wdGlvbnMoKTsKLQotICAgICAgaWYgKHRoaXMubGF5ZXJUcmVlSW1wbF8pIHsKLSAgICAgICAgLy8gRmlyc3QgZ2V0IGFsbCBvZiB0aGUgc2NhbGVzIGluZm9ybWF0aW9uIGZyb20gTFRISS4KLSAgICAgICAgdmFyIGx0aGkgPSB0aGlzLmxheWVyVHJlZUltcGxfLmxheWVyVHJlZUhvc3RJbXBsOwotICAgICAgICB2YXIgc2NhbGVOYW1lcyA9IGx0aGkuZ2V0Q29udGVudHNTY2FsZU5hbWVzKCk7Ci0gICAgICAgIGZvciAodmFyIHNjYWxlIGluIHNjYWxlTmFtZXMpIHsKLSAgICAgICAgICBkYXRhLnB1c2goewotICAgICAgICAgICAgbGFiZWw6ICdTY2FsZSAnICsgc2NhbGUgKyAnICgnICsgc2NhbGVOYW1lc1tzY2FsZV0gKyAnKScsCi0gICAgICAgICAgICB2YWx1ZTogc2NhbGUKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBUaGVuIGNyZWF0ZSBhIG5ldyBzZWxlY3RvciBhbmQgcmVwbGFjZSB0aGUgb2xkIG9uZS4KLSAgICAgIHZhciBuZXdfc2VsZWN0b3IgPSB0ci5iLnVpLmNyZWF0ZVNlbGVjdG9yKAotICAgICAgICAgIHRoaXMsICdob3dUb1Nob3dUaWxlcycsCi0gICAgICAgICAgJ2xheWVyVmlldy5ob3dUb1Nob3dUaWxlcycsICdub25lJywKLSAgICAgICAgICBkYXRhKTsKLSAgICAgIHRoaXMuY29udHJvbHNfLnJlcGxhY2VDaGlsZChuZXdfc2VsZWN0b3IsIHRoaXMudGlsZVJlY3RzU2VsZWN0b3JfKTsKLSAgICAgIHRoaXMudGlsZVJlY3RzU2VsZWN0b3JfID0gbmV3X3NlbGVjdG9yOwotICAgIH0sCi0KLSAgICBjb21wdXRlUGljdHVyZUxvYWRpbmdTdGF0dXNfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2UgY2FuIGRyYXcgdGhlIHF1YWRzIHlldC4gV2hpbGUgd2UncmUgYXQgaXQsIGZpZ3VyZSBvdXQKLSAgICAgIC8vIGlmIHdlIGhhdmUgYW55IHdhcm5pbmdzIHdlIG5lZWQgdG8gc2hvdy4KLSAgICAgIHZhciBsYXllcnMgPSB0aGlzLmxheWVyczsKLSAgICAgIHZhciBzdGF0dXMgPSB7Ci0gICAgICAgIG1lc3NhZ2VzOiBbXSwKLSAgICAgICAgcGljdHVyZXNDb21wbGV0ZTogdHJ1ZQotICAgICAgfTsKLSAgICAgIGlmICh0aGlzLnNob3dDb250ZW50cykgewotICAgICAgICB2YXIgaGFzUGVuZGluZ1Jhc3Rlcml6ZUltYWdlID0gZmFsc2U7Ci0gICAgICAgIHZhciBmaXJzdFBpY3R1cmVFcnJvciA9IHVuZGVmaW5lZDsKLSAgICAgICAgdmFyIGhhc01pc3NpbmdMYXllclJlY3QgPSBmYWxzZTsKLSAgICAgICAgdmFyIGhhc1VucmVzb2x2ZWRQaWN0dXJlUmVmID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGF5ZXJzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGxheWVyID0gbGF5ZXJzW2ldOwotICAgICAgICAgIGZvciAodmFyIGlyID0gMDsgaXIgPCBsYXllci5waWN0dXJlcy5sZW5ndGg7ICsraXIpIHsKLSAgICAgICAgICAgIHZhciBwaWN0dXJlID0gbGF5ZXIucGljdHVyZXNbaXJdOwotCi0gICAgICAgICAgICBpZiAocGljdHVyZS5pZFJlZikgewotICAgICAgICAgICAgICBoYXNVbnJlc29sdmVkUGljdHVyZVJlZiA9IHRydWU7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFwaWN0dXJlLmxheWVyUmVjdCkgewotICAgICAgICAgICAgICBoYXNNaXNzaW5nTGF5ZXJSZWN0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBwaWN0dXJlQXNJbWFnZURhdGEgPSB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV9bcGljdHVyZS5ndWlkXTsKLSAgICAgICAgICAgIGlmICghcGljdHVyZUFzSW1hZ2VEYXRhKSB7Ci0gICAgICAgICAgICAgIGhhc1BlbmRpbmdSYXN0ZXJpemVJbWFnZSA9IHRydWU7Ci0gICAgICAgICAgICAgIHRoaXMucGljdHVyZUFzSW1hZ2VEYXRhX1twaWN0dXJlLmd1aWRdID0KLSAgICAgICAgICAgICAgICAgIHRyLmUuY2MuUGljdHVyZUFzSW1hZ2VEYXRhLlBlbmRpbmcodGhpcyk7Ci0gICAgICAgICAgICAgIHBpY3R1cmUucmFzdGVyaXplKAotICAgICAgICAgICAgICAgICAge3N0b3BJbmRleDogdW5kZWZpbmVkfSwKLSAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHBpY3R1cmVJbWFnZURhdGEpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHBpY3R1cmVfID0gcGljdHVyZUltYWdlRGF0YS5waWN0dXJlOwotICAgICAgICAgICAgICAgICAgICB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV9bcGljdHVyZV8uZ3VpZF0gPSBwaWN0dXJlSW1hZ2VEYXRhOwotICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlQ29udGVudHNfKCk7Ci0gICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwaWN0dXJlQXNJbWFnZURhdGEuaXNQZW5kaW5nKCkpIHsKLSAgICAgICAgICAgICAgaGFzUGVuZGluZ1Jhc3Rlcml6ZUltYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocGljdHVyZUFzSW1hZ2VEYXRhLmVycm9yKSB7Ci0gICAgICAgICAgICAgIGlmICghZmlyc3RQaWN0dXJlRXJyb3IpCi0gICAgICAgICAgICAgICAgZmlyc3RQaWN0dXJlRXJyb3IgPSBwaWN0dXJlQXNJbWFnZURhdGEuZXJyb3I7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoaGFzUGVuZGluZ1Jhc3Rlcml6ZUltYWdlKSB7Ci0gICAgICAgICAgc3RhdHVzLnBpY3R1cmVzQ29tcGxldGUgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAoaGFzVW5yZXNvbHZlZFBpY3R1cmVSZWYpIHsKLSAgICAgICAgICAgIHN0YXR1cy5tZXNzYWdlcy5wdXNoKHsKLSAgICAgICAgICAgICAgaGVhZGVyOiAnTWlzc2luZyBwaWN0dXJlJywKLSAgICAgICAgICAgICAgZGV0YWlsczogJ1lvdXIgdHJhY2UgZGlkbnQgaGF2ZSBwaWN0dXJlcyBmb3IgZXZlcnkgbGF5ZXIuICcgKwotICAgICAgICAgICAgICAgICAgJ09sZCBjaHJvbWUgdmVyc2lvbnMgaGFkIHRoaXMgcHJvYmxlbSd9KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGhhc01pc3NpbmdMYXllclJlY3QpIHsKLSAgICAgICAgICAgIHN0YXR1cy5tZXNzYWdlcy5wdXNoKHsKLSAgICAgICAgICAgICAgaGVhZGVyOiAnTWlzc2luZyBsYXllciByZWN0JywKLSAgICAgICAgICAgICAgZGV0YWlsczogJ1lvdXIgdHJhY2UgbWF5IGJlIGNvcnJ1cHQgb3IgZnJvbSBhIHZlcnkgb2xkICcgKwotICAgICAgICAgICAgICAgICAgJ0Nocm9tZSByZXZpc2lvbi4nfSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChmaXJzdFBpY3R1cmVFcnJvcikgewotICAgICAgICAgICAgc3RhdHVzLm1lc3NhZ2VzLnB1c2goewotICAgICAgICAgICAgICBoZWFkZXI6ICdDYW5ub3QgcmFzdGVyaXplJywKLSAgICAgICAgICAgICAgZGV0YWlsczogZmlyc3RQaWN0dXJlRXJyb3J9KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmICh0aGlzLnNob3dJbnB1dEV2ZW50cyAmJiB0aGlzLmxheWVyVHJlZUltcGwudHJhY2VkSW5wdXRMYXRlbmNpZXMgJiYKLSAgICAgICAgICB0aGlzLmlucHV0RXZlbnRJbWFnZURhdGFfID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdmFyIGltYWdlID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjaW5wdXQtZXZlbnQnKTsKLSAgICAgICAgaWYgKCFpbWFnZS5zcmMpIHsKLSAgICAgICAgICB0aGlzLmxvYWREYXRhRm9ySW1hZ2VFbGVtZW50XyhpbWFnZSwgZnVuY3Rpb24oaW1hZ2VEYXRhKSB7Ci0gICAgICAgICAgICB0aGlzLmlucHV0RXZlbnRJbWFnZURhdGFfID0gaW1hZ2VEYXRhOwotICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c1BlbmRpbmdfID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlQ29udGVudHNfKCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgfQotICAgICAgICBzdGF0dXMucGljdHVyZXNDb21wbGV0ZSA9IGZhbHNlOwotICAgICAgfQotICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGVkUmVuZGVyUGFzcygpIHsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikKLSAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLnJlbmRlclBhc3NfOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0ZWRMYXllcigpIHsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikgewotICAgICAgICB2YXIgc2VsZWN0ZWRMYXllcklkID0gdGhpcy5zZWxlY3Rpb24uYXNzb2NpYXRlZExheWVySWQ7Ci0gICAgICAgIHJldHVybiB0aGlzLmxheWVyVHJlZUltcGxfLmZpbmRMYXllcldpdGhJZChzZWxlY3RlZExheWVySWQpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBnZXQgcmVuZGVyUGFzc2VzKCkgewotICAgICAgdmFyIHJlbmRlclBhc3NlcyA9Ci0gICAgICAgICAgdGhpcy5sYXllclRyZWVJbXBsLmxheWVyVHJlZUhvc3RJbXBsLmFyZ3MuZnJhbWUucmVuZGVyUGFzc2VzOwotICAgICAgaWYgKCF0aGlzLnNob3dPdGhlckxheWVycykgewotICAgICAgICB2YXIgc2VsZWN0ZWRSZW5kZXJQYXNzID0gdGhpcy5zZWxlY3RlZFJlbmRlclBhc3M7Ci0gICAgICAgIGlmIChzZWxlY3RlZFJlbmRlclBhc3MpCi0gICAgICAgICAgcmVuZGVyUGFzc2VzID0gW3NlbGVjdGVkUmVuZGVyUGFzc107Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcmVuZGVyUGFzc2VzOwotICAgIH0sCi0KLSAgICBnZXQgbGF5ZXJzKCkgewotICAgICAgdmFyIGxheWVycyA9IHRoaXMubGF5ZXJUcmVlSW1wbC5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0OwotICAgICAgaWYgKCF0aGlzLnNob3dPdGhlckxheWVycykgewotICAgICAgICB2YXIgc2VsZWN0ZWRMYXllciA9IHRoaXMuc2VsZWN0ZWRMYXllcjsKLSAgICAgICAgaWYgKHNlbGVjdGVkTGF5ZXIpCi0gICAgICAgICAgbGF5ZXJzID0gW3NlbGVjdGVkTGF5ZXJdOwotICAgICAgfQotICAgICAgcmV0dXJuIGxheWVyczsKLSAgICB9LAotCi0gICAgYXBwZW5kSW1hZ2VRdWFkc186IGZ1bmN0aW9uKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkKSB7Ci0gICAgICAvLyBHZW5lcmF0ZSBpbWFnZSBxdWFkcyBmb3IgdGhlIGxheWVyCi0gICAgICBmb3IgKHZhciBpciA9IDA7IGlyIDwgbGF5ZXIucGljdHVyZXMubGVuZ3RoOyArK2lyKSB7Ci0gICAgICAgIHZhciBwaWN0dXJlID0gbGF5ZXIucGljdHVyZXNbaXJdOwotICAgICAgICBpZiAoIXBpY3R1cmUubGF5ZXJSZWN0KQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHZhciB1bml0UmVjdCA9IHBpY3R1cmUubGF5ZXJSZWN0LmFzVVZSZWN0SW5zaWRlKGxheWVyLmJvdW5kcyk7Ci0gICAgICAgIHZhciBpcSA9IGxheWVyUXVhZC5wcm9qZWN0VW5pdFJlY3QodW5pdFJlY3QpOwotCi0gICAgICAgIHZhciBwaWN0dXJlRGF0YSA9IHRoaXMucGljdHVyZUFzSW1hZ2VEYXRhX1twaWN0dXJlLmd1aWRdOwotICAgICAgICBpZiAodGhpcy5zaG93Q29udGVudHMgJiYgcGljdHVyZURhdGEgJiYgcGljdHVyZURhdGEuaW1hZ2VEYXRhKSB7Ci0gICAgICAgICAgaXEuaW1hZ2VEYXRhID0gcGljdHVyZURhdGEuaW1hZ2VEYXRhOwotICAgICAgICAgIGlxLmJvcmRlckNvbG9yID0gJ3JnYmEoMCwwLDAsMCknOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlxLmltYWdlRGF0YSA9IHVuZGVmaW5lZDsKLSAgICAgICAgfQotCi0gICAgICAgIGlxLnN0YWNraW5nR3JvdXBJZCA9IGxheWVyUXVhZC5zdGFja2luZ0dyb3VwSWQ7Ci0gICAgICAgIHF1YWRzLnB1c2goaXEpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhcHBlbmRBbmltYXRpb25RdWFkc186IGZ1bmN0aW9uKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkKSB7Ci0gICAgICBpZiAoIWxheWVyLmFuaW1hdGlvbkJvdW5kc1JlY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHJlY3QgPSBsYXllci5hbmltYXRpb25Cb3VuZHNSZWN0OwotICAgICAgdmFyIGFicSA9IHRyLmIuUXVhZC5mcm9tUmVjdChyZWN0KTsKLQotICAgICAgYWJxLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDE2NCwxOTEsNDgsMC41KSc7Ci0gICAgICBhYnEuYm9yZGVyQ29sb3IgPSAncmdiYSgyMDUsMjU1LDAsMC43NSknOwotICAgICAgYWJxLmJvcmRlcldpZHRoID0gMy4wOwotICAgICAgYWJxLnN0YWNraW5nR3JvdXBJZCA9IGxheWVyUXVhZC5zdGFja2luZ0dyb3VwSWQ7Ci0gICAgICBhYnEuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQgPSBuZXcgdHIuZS5jYy5BbmltYXRpb25SZWN0U2VsZWN0aW9uKAotICAgICAgICAgIGxheWVyLCByZWN0KTsKLSAgICAgIHF1YWRzLnB1c2goYWJxKTsKLSAgICB9LAotCi0gICAgYXBwZW5kSW52YWxpZGF0aW9uUXVhZHNfOiBmdW5jdGlvbihxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCkgewotICAgICAgaWYgKGxheWVyLmxheWVyVHJlZUltcGwuaGFzU291cmNlRnJhbWVCZWVuRHJhd25CZWZvcmUpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgLy8gR2VuZXJhdGUgdGhlIGludmFsaWRhdGlvbiByZWN0IHF1YWRzLgotICAgICAgZm9yICh2YXIgaXIgPSAwOyBpciA8IGxheWVyLmFubm90YXRlZEludmFsaWRhdGlvbi5yZWN0cy5sZW5ndGg7IGlyKyspIHsKLSAgICAgICAgdmFyIHJlY3QgPSBsYXllci5hbm5vdGF0ZWRJbnZhbGlkYXRpb24ucmVjdHNbaXJdOwotICAgICAgICB2YXIgdW5pdFJlY3QgPSByZWN0LmFzVVZSZWN0SW5zaWRlKGxheWVyLmJvdW5kcyk7Ci0gICAgICAgIHZhciBpcSA9IGxheWVyUXVhZC5wcm9qZWN0VW5pdFJlY3QodW5pdFJlY3QpOwotICAgICAgICBpcS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAyNTUsIDAsIDAuMSknOwotICAgICAgICBpZiAocmVjdC5yZWFzb24gPT09ICdyZW5kZXJlciBpbnNlcnRpb24nKQotICAgICAgICAgICAgaXEuYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoMCwgMjU1LCAxMjgsIDAuMSknOwotICAgICAgICBpcS5ib3JkZXJDb2xvciA9ICdyZ2JhKDAsIDI1NSwgMCwgMSknOwotICAgICAgICBpcS5zdGFja2luZ0dyb3VwSWQgPSBsYXllclF1YWQuc3RhY2tpbmdHcm91cElkOwotICAgICAgICBpcS5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyB0ci5lLmNjLkxheWVyUmVjdFNlbGVjdGlvbigKLSAgICAgICAgICAgIGxheWVyLCAnSW52YWxpZGF0aW9uIHJlY3QgKCcgKyByZWN0LnJlYXNvbiArICcpJywgcmVjdCwgcmVjdCk7Ci0gICAgICAgIHF1YWRzLnB1c2goaXEpOwotICAgICAgfQotCi0gICAgICAvLyBTaG93IHVuYW5ub3RhdGVkIGludmFsaWRhdGlvbiByZWN0IHF1YWRzIGlmIG5vIGFubm90YXRlZCByZWN0cyBhcmUKLSAgICAgIC8vIGF2YWlsYWJsZS4KLSAgICAgIGlmIChsYXllci5hbm5vdGF0ZWRJbnZhbGlkYXRpb24ucmVjdHMubGVuZ3RoID09PSAwKSB7Ci0gICAgICAgIGZvciAodmFyIGlyID0gMDsgaXIgPCBsYXllci5pbnZhbGlkYXRpb24ucmVjdHMubGVuZ3RoOyBpcisrKSB7Ci0gICAgICAgICAgdmFyIHJlY3QgPSBsYXllci5pbnZhbGlkYXRpb24ucmVjdHNbaXJdOwotICAgICAgICAgIHZhciB1bml0UmVjdCA9IHJlY3QuYXNVVlJlY3RJbnNpZGUobGF5ZXIuYm91bmRzKTsKLSAgICAgICAgICB2YXIgaXEgPSBsYXllclF1YWQucHJvamVjdFVuaXRSZWN0KHVuaXRSZWN0KTsKLSAgICAgICAgICBpcS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAyNTUsIDAsIDAuMSknOwotICAgICAgICAgIGlxLmJvcmRlckNvbG9yID0gJ3JnYmEoMCwgMjU1LCAwLCAxKSc7Ci0gICAgICAgICAgaXEuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKLSAgICAgICAgICBpcS5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyB0ci5lLmNjLkxheWVyUmVjdFNlbGVjdGlvbigKLSAgICAgICAgICAgICAgbGF5ZXIsICdJbnZhbGlkYXRpb24gcmVjdCcsIHJlY3QsIHJlY3QpOwotICAgICAgICAgIHF1YWRzLnB1c2goaXEpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFwcGVuZFVucmVjb3JkZWRSZWdpb25RdWFkc186IGZ1bmN0aW9uKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkKSB7Ci0gICAgICAvLyBHZW5lcmF0ZSB0aGUgdW5yZWNvcmRlZCByZWdpb24gcXVhZHMuCi0gICAgICBmb3IgKHZhciBpciA9IDA7IGlyIDwgbGF5ZXIudW5yZWNvcmRlZFJlZ2lvbi5yZWN0cy5sZW5ndGg7IGlyKyspIHsKLSAgICAgICAgdmFyIHJlY3QgPSBsYXllci51bnJlY29yZGVkUmVnaW9uLnJlY3RzW2lyXTsKLSAgICAgICAgdmFyIHVuaXRSZWN0ID0gcmVjdC5hc1VWUmVjdEluc2lkZShsYXllci5ib3VuZHMpOwotICAgICAgICB2YXIgaXEgPSBsYXllclF1YWQucHJvamVjdFVuaXRSZWN0KHVuaXRSZWN0KTsKLSAgICAgICAgaXEuYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoMjQwLCAyMzAsIDE0MCwgMC4zKSc7Ci0gICAgICAgIGlxLmJvcmRlckNvbG9yID0gJ3JnYmEoMjQwLCAyMzAsIDE0MCwgMSknOwotICAgICAgICBpcS5zdGFja2luZ0dyb3VwSWQgPSBsYXllclF1YWQuc3RhY2tpbmdHcm91cElkOwotICAgICAgICBpcS5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyB0ci5lLmNjLkxheWVyUmVjdFNlbGVjdGlvbigKLSAgICAgICAgICAgIGxheWVyLCAnVW5yZWNvcmRlZCBhcmVhJywgcmVjdCwgcmVjdCk7Ci0gICAgICAgIHF1YWRzLnB1c2goaXEpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhcHBlbmRCb3R0bGVuZWNrUXVhZHNfOiBmdW5jdGlvbihxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCwgc3RhY2tpbmdHcm91cElkKSB7Ci0gICAgICBmdW5jdGlvbiBwcm9jZXNzUmVnaW9uKHJlZ2lvbiwgbGFiZWwsIGJvcmRlckNvbG9yKSB7Ci0gICAgICAgIHZhciBiYWNrZ3JvdW5kQ29sb3IgPSBib3JkZXJDb2xvci5jbG9uZSgpOwotICAgICAgICBiYWNrZ3JvdW5kQ29sb3IuYSA9IDAuNCAqIChib3JkZXJDb2xvci5hIHx8IDEuMCk7Ci0KLSAgICAgICAgaWYgKCFyZWdpb24gfHwgIXJlZ2lvbi5yZWN0cykKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZm9yICh2YXIgaXIgPSAwOyBpciA8IHJlZ2lvbi5yZWN0cy5sZW5ndGg7IGlyKyspIHsKLSAgICAgICAgICB2YXIgcmVjdCA9IHJlZ2lvbi5yZWN0c1tpcl07Ci0gICAgICAgICAgdmFyIHVuaXRSZWN0ID0gcmVjdC5hc1VWUmVjdEluc2lkZShsYXllci5ib3VuZHMpOwotICAgICAgICAgIHZhciBpcSA9IGxheWVyUXVhZC5wcm9qZWN0VW5pdFJlY3QodW5pdFJlY3QpOwotICAgICAgICAgIGlxLmJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmRDb2xvci50b1N0cmluZygpOwotICAgICAgICAgIGlxLmJvcmRlckNvbG9yID0gYm9yZGVyQ29sb3IudG9TdHJpbmcoKTsKLSAgICAgICAgICBpcS5ib3JkZXJXaWR0aCA9IDQuMDsKLSAgICAgICAgICBpcS5zdGFja2luZ0dyb3VwSWQgPSBzdGFja2luZ0dyb3VwSWQ7Ci0gICAgICAgICAgaXEuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQgPSBuZXcgdHIuZS5jYy5MYXllclJlY3RTZWxlY3Rpb24oCi0gICAgICAgICAgICAgIGxheWVyLCBsYWJlbCwgcmVjdCwgcmVjdCk7Ci0gICAgICAgICAgcXVhZHMucHVzaChpcSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgcHJvY2Vzc1JlZ2lvbihsYXllci50b3VjaEV2ZW50SGFuZGxlclJlZ2lvbiwgJ1RvdWNoIGxpc3RlbmVyJywKLSAgICAgICAgICAgICAgICAgICAgdHIuYi5Db2xvci5mcm9tU3RyaW5nKCdyZ2IoMjI4LCAyMjYsIDI3KScpKTsKLSAgICAgIHByb2Nlc3NSZWdpb24obGF5ZXIud2hlZWxFdmVudEhhbmRsZXJSZWdpb24sICdXaGVlbCBsaXN0ZW5lcicsCi0gICAgICAgICAgICAgICAgICAgIHRyLmIuQ29sb3IuZnJvbVN0cmluZygncmdiKDE3NiwgMjA1LCAyOSknKSk7Ci0gICAgICBwcm9jZXNzUmVnaW9uKGxheWVyLm5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLCAnUmVwYWludHMgb24gc2Nyb2xsJywKLSAgICAgICAgICAgICAgICAgICAgdHIuYi5Db2xvci5mcm9tU3RyaW5nKCdyZ2IoMjEzLCAxMzQsIDMyKScpKTsKLSAgICB9LAotCi0gICAgYXBwZW5kVGlsZUNvdmVyYWdlUmVjdFF1YWRzXzogZnVuY3Rpb24oCi0gICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBoZWF0bWFwVHlwZSkgewotICAgICAgaWYgKCFsYXllci50aWxlQ292ZXJhZ2VSZWN0cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdGlsZXMgPSBbXTsKLSAgICAgIGZvciAodmFyIGN0ID0gMDsgY3QgPCBsYXllci50aWxlQ292ZXJhZ2VSZWN0cy5sZW5ndGg7ICsrY3QpIHsKLSAgICAgICAgdmFyIHRpbGUgPSBsYXllci50aWxlQ292ZXJhZ2VSZWN0c1tjdF0udGlsZTsKLSAgICAgICAgaWYgKHRpbGUgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICB0aWxlcy5wdXNoKHRpbGUpOwotICAgICAgfQotCi0gICAgICB2YXIgbHRoaSA9IHRoaXMubGF5ZXJUcmVlSW1wbF8ubGF5ZXJUcmVlSG9zdEltcGw7Ci0gICAgICB2YXIgbWluTWF4ID0KLSAgICAgICAgICB0aGlzLmdldE1pbk1heEZvckhlYXRtYXBfKGx0aGkuYWN0aXZlVGlsZXMsIGhlYXRtYXBUeXBlKTsKLSAgICAgIHZhciBoZWF0bWFwUmVzdWx0ID0KLSAgICAgICAgICB0aGlzLmNvbXB1dGVIZWF0bWFwQ29sb3JzXyh0aWxlcywgbWluTWF4LCBoZWF0bWFwVHlwZSk7Ci0gICAgICB2YXIgaGVhdEluZGV4ID0gMDsKLQotICAgICAgZm9yICh2YXIgY3QgPSAwOyBjdCA8IGxheWVyLnRpbGVDb3ZlcmFnZVJlY3RzLmxlbmd0aDsgKytjdCkgewotICAgICAgICB2YXIgcmVjdCA9IGxheWVyLnRpbGVDb3ZlcmFnZVJlY3RzW2N0XS5nZW9tZXRyeVJlY3Q7Ci0gICAgICAgIHJlY3QgPSByZWN0LnNjYWxlKDEuMCAvIGxheWVyLmdlb21ldHJ5Q29udGVudHNTY2FsZSk7Ci0KLSAgICAgICAgdmFyIHRpbGUgPSBsYXllci50aWxlQ292ZXJhZ2VSZWN0c1tjdF0udGlsZTsKLQotICAgICAgICB2YXIgdW5pdFJlY3QgPSByZWN0LmFzVVZSZWN0SW5zaWRlKGxheWVyLmJvdW5kcyk7Ci0gICAgICAgIHZhciBxdWFkID0gbGF5ZXJRdWFkLnByb2plY3RVbml0UmVjdCh1bml0UmVjdCk7Ci0KLSAgICAgICAgcXVhZC5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAwLCAwLCAwKSc7Ci0gICAgICAgIHF1YWQuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKLSAgICAgICAgdmFyIHR5cGUgPSB0ci5lLmNjLnRpbGVUeXBlcy5taXNzaW5nOwotICAgICAgICBpZiAodGlsZSkgewotICAgICAgICAgIHR5cGUgPSB0aWxlLmdldFR5cGVGb3JMYXllcihsYXllcik7Ci0gICAgICAgICAgcXVhZC5iYWNrZ3JvdW5kQ29sb3IgPSBoZWF0bWFwUmVzdWx0W2hlYXRJbmRleF0uY29sb3I7Ci0gICAgICAgICAgKytoZWF0SW5kZXg7Ci0gICAgICAgIH0KLQotICAgICAgICBxdWFkLmJvcmRlckNvbG9yID0gdHIuZS5jYy50aWxlQm9yZGVyW3R5cGVdLmNvbG9yOwotICAgICAgICBxdWFkLmJvcmRlcldpZHRoID0gdHIuZS5jYy50aWxlQm9yZGVyW3R5cGVdLndpZHRoOwotICAgICAgICB2YXIgbGFiZWw7Ci0gICAgICAgIGlmICh0aWxlKQotICAgICAgICAgIGxhYmVsID0gJ2NvdmVyYWdlUmVjdCc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBsYWJlbCA9ICdjaGVja2VyYm9hcmQgY292ZXJhZ2VSZWN0JzsKLSAgICAgICAgcXVhZC5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyB0ci5lLmNjLkxheWVyUmVjdFNlbGVjdGlvbigKLSAgICAgICAgICAgIGxheWVyLCBsYWJlbCwgcmVjdCwgbGF5ZXIudGlsZUNvdmVyYWdlUmVjdHNbY3RdKTsKLQotICAgICAgICBxdWFkcy5wdXNoKHF1YWQpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhcHBlbmRMYXlvdXRSZWN0UXVhZHNfOiBmdW5jdGlvbihxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCkgewotICAgICAgaWYgKCFsYXllci5sYXlvdXRSZWN0cykgewotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIGZvciAodmFyIGN0ID0gMDsgY3QgPCBsYXllci5sYXlvdXRSZWN0cy5sZW5ndGg7ICsrY3QpIHsKLSAgICAgICAgdmFyIHJlY3QgPSBsYXllci5sYXlvdXRSZWN0c1tjdF0uZ2VvbWV0cnlSZWN0OwotICAgICAgICByZWN0ID0gcmVjdC5zY2FsZSgxLjAgLyBsYXllci5nZW9tZXRyeUNvbnRlbnRzU2NhbGUpOwotCi0gICAgICAgIHZhciB1bml0UmVjdCA9IHJlY3QuYXNVVlJlY3RJbnNpZGUobGF5ZXIuYm91bmRzKTsKLSAgICAgICAgdmFyIHF1YWQgPSBsYXllclF1YWQucHJvamVjdFVuaXRSZWN0KHVuaXRSZWN0KTsKLQotICAgICAgICBxdWFkLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDAsIDAsIDAsIDApJzsKLSAgICAgICAgcXVhZC5zdGFja2luZ0dyb3VwSWQgPSBsYXllclF1YWQuc3RhY2tpbmdHcm91cElkOwotCi0gICAgICAgIHF1YWQuYm9yZGVyQ29sb3IgPSAncmdiYSgwLCAwLCAyMDAsIDAuNyknOwotICAgICAgICBxdWFkLmJvcmRlcldpZHRoID0gMjsKLSAgICAgICAgdmFyIGxhYmVsOwotICAgICAgICBsYWJlbCA9ICdMYXlvdXQgcmVjdCc7Ci0gICAgICAgIHF1YWQuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQgPSBuZXcgdHIuZS5jYy5MYXllclJlY3RTZWxlY3Rpb24oCi0gICAgICAgICAgICBsYXllciwgbGFiZWwsIHJlY3QpOwotCi0gICAgICAgIHF1YWRzLnB1c2gocXVhZCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGdldFZhbHVlRm9ySGVhdG1hcF86IGZ1bmN0aW9uKHRpbGUsIGhlYXRtYXBUeXBlKSB7Ci0gICAgICBpZiAoaGVhdG1hcFR5cGUgPT0gVElMRV9IRUFUTUFQX1RZUEUuU0NIRURVTEVEX1BSSU9SSVRZKSB7Ci0gICAgICAgIHJldHVybiB0aWxlLnNjaGVkdWxlZFByaW9yaXR5ID09IDAgPwotICAgICAgICAgICAgdW5kZWZpbmVkIDoKLSAgICAgICAgICAgIHRpbGUuc2NoZWR1bGVkUHJpb3JpdHk7Ci0gICAgICB9IGVsc2UgaWYgKGhlYXRtYXBUeXBlID09IFRJTEVfSEVBVE1BUF9UWVBFLlVTSU5HX0dQVV9NRU1PUlkpIHsKLSAgICAgICAgaWYgKHRpbGUuaXNTb2xpZENvbG9yKQotICAgICAgICAgIHJldHVybiAwLjU7Ci0gICAgICAgIHJldHVybiB0aWxlLmlzVXNpbmdHcHVNZW1vcnkgPyAwIDogMTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0TWluTWF4Rm9ySGVhdG1hcF86IGZ1bmN0aW9uKHRpbGVzLCBoZWF0bWFwVHlwZSkgewotICAgICAgdmFyIHJhbmdlID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICAgIGlmIChoZWF0bWFwVHlwZSA9PSBUSUxFX0hFQVRNQVBfVFlQRS5VU0lOR19HUFVfTUVNT1JZKSB7Ci0gICAgICAgIHJhbmdlLmFkZFZhbHVlKDApOwotICAgICAgICByYW5nZS5hZGRWYWx1ZSgxKTsKLSAgICAgICAgcmV0dXJuIHJhbmdlOwotICAgICAgfQotCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGb3JIZWF0bWFwXyh0aWxlc1tpXSwgaGVhdG1hcFR5cGUpOwotICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgcmFuZ2UuYWRkVmFsdWUodmFsdWUpOwotICAgICAgfQotICAgICAgaWYgKHJhbmdlLnJhbmdlID09PSAwKQotICAgICAgICByYW5nZS5hZGRWYWx1ZSgxKTsKLSAgICAgIHJldHVybiByYW5nZTsKLSAgICB9LAotCi0gICAgY29tcHV0ZUhlYXRtYXBDb2xvcnNfOiBmdW5jdGlvbih0aWxlcywgbWluTWF4LCBoZWF0bWFwVHlwZSkgewotICAgICAgdmFyIG1pbiA9IG1pbk1heC5taW47Ci0gICAgICB2YXIgbWF4ID0gbWluTWF4Lm1heDsKLQotICAgICAgdmFyIGNvbG9yID0gZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgdmFyIGh1ZSA9IDEyMCAqICgxIC0gKHZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pKTsKLSAgICAgICAgaWYgKGh1ZSA8IDApCi0gICAgICAgICAgaHVlID0gMDsKLSAgICAgICAgcmV0dXJuICdoc2xhKCcgKyBodWUgKyAnLCAxMDAlLCA1MCUsIDAuNSknOwotICAgICAgfTsKLQotICAgICAgdmFyIHZhbHVlcyA9IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmdldFZhbHVlRm9ySGVhdG1hcF8odGlsZSwgaGVhdG1hcFR5cGUpOwotICAgICAgICB2YXIgcmVzID0gewotICAgICAgICAgIHZhbHVlOiB2YWx1ZSwKLSAgICAgICAgICBjb2xvcjogdmFsdWUgIT09IHVuZGVmaW5lZCA/IGNvbG9yKHZhbHVlKSA6IHVuZGVmaW5lZAotICAgICAgICB9OwotICAgICAgICB2YWx1ZXMucHVzaChyZXMpOwotICAgICAgfQotCi0gICAgICByZXR1cm4gdmFsdWVzOwotICAgIH0sCi0KLSAgICBhcHBlbmRUaWxlc1dpdGhTY2FsZVF1YWRzXzogZnVuY3Rpb24oCi0gICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBzY2FsZSwgaGVhdG1hcFR5cGUpIHsKLSAgICAgIHZhciBsdGhpID0gdGhpcy5sYXllclRyZWVJbXBsXy5sYXllclRyZWVIb3N0SW1wbDsKLQotICAgICAgdmFyIHRpbGVzID0gW107Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGx0aGkuYWN0aXZlVGlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHRpbGUgPSBsdGhpLmFjdGl2ZVRpbGVzW2ldOwotCi0gICAgICAgIGlmIChNYXRoLmFicyh0aWxlLmNvbnRlbnRzU2NhbGUgLSBzY2FsZSkgPiAxZS02KQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIC8vIFRPRE8odm1wc3RyKTogTWFrZSB0aGUgc3RpY2hpbmcgb2YgdGlsZXMgYW5kIGxheWVycyBhIHBhcnQgb2YKLSAgICAgICAgLy8gdGlsZSBjb25zdHJ1Y3Rpb24gKGlzc3VlIDM0NikKLSAgICAgICAgaWYgKGxheWVyLmxheWVySWQgIT0gdGlsZS5sYXllcklkKQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRpbGVzLnB1c2godGlsZSk7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBtaW5NYXggPQotICAgICAgICAgIHRoaXMuZ2V0TWluTWF4Rm9ySGVhdG1hcF8obHRoaS5hY3RpdmVUaWxlcywgaGVhdG1hcFR5cGUpOwotICAgICAgdmFyIGhlYXRtYXBSZXN1bHQgPQotICAgICAgICAgIHRoaXMuY29tcHV0ZUhlYXRtYXBDb2xvcnNfKHRpbGVzLCBtaW5NYXgsIGhlYXRtYXBUeXBlKTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB2YXIgcmVjdCA9IHRpbGUubGF5ZXJSZWN0OwotICAgICAgICBpZiAoIXRpbGUubGF5ZXJSZWN0KQotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB2YXIgdW5pdFJlY3QgPSByZWN0LmFzVVZSZWN0SW5zaWRlKGxheWVyLmJvdW5kcyk7Ci0gICAgICAgIHZhciBxdWFkID0gbGF5ZXJRdWFkLnByb2plY3RVbml0UmVjdCh1bml0UmVjdCk7Ci0KLSAgICAgICAgcXVhZC5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAwLCAwLCAwKSc7Ci0gICAgICAgIHF1YWQuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKLQotICAgICAgICB2YXIgdHlwZSA9IHRpbGUuZ2V0VHlwZUZvckxheWVyKGxheWVyKTsKLSAgICAgICAgcXVhZC5ib3JkZXJDb2xvciA9IHRyLmUuY2MudGlsZUJvcmRlclt0eXBlXS5jb2xvcjsKLSAgICAgICAgcXVhZC5ib3JkZXJXaWR0aCA9IHRyLmUuY2MudGlsZUJvcmRlclt0eXBlXS53aWR0aDsKLQotICAgICAgICBxdWFkLmJhY2tncm91bmRDb2xvciA9IGhlYXRtYXBSZXN1bHRbaV0uY29sb3I7Ci0gICAgICAgIHZhciBkYXRhID0gewotICAgICAgICAgIHRpbGVUeXBlOiB0eXBlCi0gICAgICAgIH07Ci0gICAgICAgIGlmIChoZWF0bWFwVHlwZSAhPT0gVElMRV9IRUFUTUFQX1RZUEUuTk9ORSkKLSAgICAgICAgICBkYXRhW2hlYXRtYXBUeXBlXSA9IGhlYXRtYXBSZXN1bHRbaV0udmFsdWU7Ci0gICAgICAgIHF1YWQuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQgPSBuZXcgdHIuZS5jYy5UaWxlU2VsZWN0aW9uKHRpbGUsIGRhdGEpOwotICAgICAgICBxdWFkcy5wdXNoKHF1YWQpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhcHBlbmRIaWdobGlnaHRRdWFkc0ZvckxheWVyXzogZnVuY3Rpb24oCi0gICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBoaWdobGlnaHRzKSB7Ci0gICAgICBoaWdobGlnaHRzLmZvckVhY2goZnVuY3Rpb24oaGlnaGxpZ2h0KSB7Ci0gICAgICAgIHZhciByZWN0ID0gaGlnaGxpZ2h0LnJlY3Q7Ci0KLSAgICAgICAgdmFyIHVuaXRSZWN0ID0gcmVjdC5hc1VWUmVjdEluc2lkZShsYXllci5ib3VuZHMpOwotICAgICAgICB2YXIgcXVhZCA9IGxheWVyUXVhZC5wcm9qZWN0VW5pdFJlY3QodW5pdFJlY3QpOwotCi0gICAgICAgIHZhciBjb2xvcklkID0gdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCi0gICAgICAgICAgICBoaWdobGlnaHQuY29sb3JLZXkpOwotICAgICAgICBjb2xvcklkICs9IHRyLmIudWkuZ2V0Q29sb3JQYWxldHRlSGlnaGxpZ2h0SWRCb29zdCgpOwotCi0gICAgICAgIHZhciBjb2xvciA9IHRyLmIuQ29sb3IuZnJvbVN0cmluZyh0ci5iLnVpLmdldENvbG9yUGFsZXR0ZSgpW2NvbG9ySWRdKTsKLQotICAgICAgICB2YXIgcXVhZEZvckRyYXdpbmcgPSBxdWFkLmNsb25lKCk7Ci0gICAgICAgIHF1YWRGb3JEcmF3aW5nLmJhY2tncm91bmRDb2xvciA9IGNvbG9yLndpdGhBbHBoYSgwLjUpLnRvU3RyaW5nKCk7Ci0gICAgICAgIHF1YWRGb3JEcmF3aW5nLmJvcmRlckNvbG9yID0gY29sb3Iud2l0aEFscGhhKDEuMCkuZGFya2VuKCkudG9TdHJpbmcoKTsKLSAgICAgICAgcXVhZEZvckRyYXdpbmcuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKLSAgICAgICAgcXVhZHMucHVzaChxdWFkRm9yRHJhd2luZyk7Ci0KLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBnZW5lcmF0ZVJlbmRlclBhc3NRdWFkczogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIXRoaXMubGF5ZXJUcmVlSW1wbC5sYXllclRyZWVIb3N0SW1wbC5hcmdzLmZyYW1lKQotICAgICAgICByZXR1cm4gW107Ci0gICAgICB2YXIgcmVuZGVyUGFzc2VzID0gdGhpcy5yZW5kZXJQYXNzZXM7Ci0gICAgICBpZiAoIXJlbmRlclBhc3NlcykKLSAgICAgICAgcmV0dXJuIFtdOwotCi0gICAgICB2YXIgcXVhZHMgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVuZGVyUGFzc2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBxdWFkTGlzdCA9IHJlbmRlclBhc3Nlc1tpXS5xdWFkTGlzdDsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBxdWFkTGlzdC5sZW5ndGg7ICsraikgewotICAgICAgICAgIHZhciBkcmF3UXVhZCA9IHF1YWRMaXN0W2pdOwotICAgICAgICAgIHZhciBxdWFkID0gZHJhd1F1YWQucmVjdEFzVGFyZ2V0U3BhY2VRdWFkLmNsb25lKCk7Ci0gICAgICAgICAgcXVhZC5ib3JkZXJDb2xvciA9ICdyZ2IoMTcwLCAyMDQsIDIzOCknOwotICAgICAgICAgIHF1YWQuYm9yZGVyV2lkdGggPSAyOwotICAgICAgICAgIHF1YWQuc3RhY2tpbmdHcm91cElkID0gaTsKLSAgICAgICAgICBxdWFkcy5wdXNoKHF1YWQpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gcXVhZHM7Ci0gICAgfSwKLQotICAgIGdlbmVyYXRlTGF5ZXJRdWFkczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzUGVuZGluZ18gPSBmYWxzZTsKLQotICAgICAgLy8gR2VuZXJhdGUgdGhlIHF1YWRzIGZvciB0aGUgdmlldy4KLSAgICAgIHZhciBsYXllcnMgPSB0aGlzLmxheWVyczsKLSAgICAgIHZhciBxdWFkcyA9IFtdOwotICAgICAgdmFyIG5leHRTdGFja2luZ0dyb3VwSWQgPSAwOwotICAgICAgdmFyIGFscmVhZHlWaXNpdGVkTGF5ZXJJZHMgPSB7fTsKLQotCi0gICAgICB2YXIgc2VsZWN0aW9uSGlnaGxpZ2h0c0J5TGF5ZXJJZDsKLSAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikKLSAgICAgICAgc2VsZWN0aW9uSGlnaGxpZ2h0c0J5TGF5ZXJJZCA9IHRoaXMuc2VsZWN0aW9uLmhpZ2hsaWdodHNCeUxheWVySWQ7Ci0gICAgICBlbHNlCi0gICAgICAgIHNlbGVjdGlvbkhpZ2hsaWdodHNCeUxheWVySWQgPSB7fTsKLQotICAgICAgdmFyIGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZCA9IHRoaXMuZXh0cmFIaWdobGlnaHRzQnlMYXllcklkIHx8IHt9OwotCi0gICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBsYXllcnMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgLy8gR2VuZXJhdGUgcXVhZHMgYmFjay10by1mcm9udC4KLSAgICAgICAgdmFyIGxheWVyID0gbGF5ZXJzW2xheWVycy5sZW5ndGggLSBpXTsKLSAgICAgICAgYWxyZWFkeVZpc2l0ZWRMYXllcklkc1tsYXllci5sYXllcklkXSA9IHRydWU7Ci0gICAgICAgIGlmIChsYXllci5vYmplY3RJbnN0YW5jZS5uYW1lID09ICdjYzo6TmluZVBhdGNoTGF5ZXJJbXBsJykKLSAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICB2YXIgbGF5ZXJRdWFkID0gbGF5ZXIubGF5ZXJRdWFkLmNsb25lKCk7Ci0gICAgICAgIGlmIChsYXllci51c2luZ0dwdVJhc3Rlcml6YXRpb24pIHsKLSAgICAgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICAgICAgbGF5ZXJRdWFkLmJvcmRlcldpZHRoID0gMi4wICogcGl4ZWxSYXRpbzsKLSAgICAgICAgICBsYXllclF1YWQuYm9yZGVyQ29sb3IgPSAncmdiYSgxNTQsMjA1LDUwLDAuNzUpJzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBsYXllclF1YWQuYm9yZGVyQ29sb3IgPSAncmdiYSgwLDAsMCwwLjc1KSc7Ci0gICAgICAgIH0KLSAgICAgICAgbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZCA9IG5leHRTdGFja2luZ0dyb3VwSWQrKzsKLSAgICAgICAgbGF5ZXJRdWFkLnNlbGVjdGlvblRvU2V0SWZDbGlja2VkID0gbmV3IHRyLmUuY2MuTGF5ZXJTZWxlY3Rpb24obGF5ZXIpOwotICAgICAgICBsYXllclF1YWQubGF5ZXIgPSBsYXllcjsKLSAgICAgICAgaWYgKHRoaXMuc2hvd090aGVyTGF5ZXJzICYmIHRoaXMuc2VsZWN0ZWRMYXllciA9PSBsYXllcikKLSAgICAgICAgICBsYXllclF1YWQudXBwZXJCb3JkZXJDb2xvciA9ICdyZ2IoMTU2LDE4OSw0NSknOwotCi0gICAgICAgIGlmICh0aGlzLnNob3dBbmltYXRpb25Cb3VuZHMpCi0gICAgICAgICAgdGhpcy5hcHBlbmRBbmltYXRpb25RdWFkc18ocXVhZHMsIGxheWVyLCBsYXllclF1YWQpOwotCi0gICAgICAgIHRoaXMuYXBwZW5kSW1hZ2VRdWFkc18ocXVhZHMsIGxheWVyLCBsYXllclF1YWQpOwotICAgICAgICBxdWFkcy5wdXNoKGxheWVyUXVhZCk7Ci0KLQotICAgICAgICBpZiAodGhpcy5zaG93SW52YWxpZGF0aW9ucykKLSAgICAgICAgICB0aGlzLmFwcGVuZEludmFsaWRhdGlvblF1YWRzXyhxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCk7Ci0gICAgICAgIGlmICh0aGlzLnNob3dVbnJlY29yZGVkUmVnaW9uKQotICAgICAgICAgIHRoaXMuYXBwZW5kVW5yZWNvcmRlZFJlZ2lvblF1YWRzXyhxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCk7Ci0gICAgICAgIGlmICh0aGlzLnNob3dCb3R0bGVuZWNrcykKLSAgICAgICAgICB0aGlzLmFwcGVuZEJvdHRsZW5lY2tRdWFkc18ocXVhZHMsIGxheWVyLCBsYXllclF1YWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyUXVhZC5zdGFja2luZ0dyb3VwSWQpOwotICAgICAgICBpZiAodGhpcy5zaG93TGF5b3V0UmVjdHMpCi0gICAgICAgICAgdGhpcy5hcHBlbmRMYXlvdXRSZWN0UXVhZHNfKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkKTsKLQotICAgICAgICBpZiAodGhpcy5ob3dUb1Nob3dUaWxlcyA9PT0gJ2NvdmVyYWdlJykgewotICAgICAgICAgIHRoaXMuYXBwZW5kVGlsZUNvdmVyYWdlUmVjdFF1YWRzXygKLSAgICAgICAgICAgICAgcXVhZHMsIGxheWVyLCBsYXllclF1YWQsIHRoaXMudGlsZUhlYXRtYXBUeXBlKTsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhvd1RvU2hvd1RpbGVzICE9PSAnbm9uZScpIHsKLSAgICAgICAgICB0aGlzLmFwcGVuZFRpbGVzV2l0aFNjYWxlUXVhZHNfKAotICAgICAgICAgICAgICBxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCwKLSAgICAgICAgICAgICAgdGhpcy5ob3dUb1Nob3dUaWxlcywgdGhpcy50aWxlSGVhdG1hcFR5cGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGhpZ2hsaWdodHM7Ci0gICAgICAgIGhpZ2hsaWdodHMgPSBleHRyYUhpZ2hsaWdodHNCeUxheWVySWRbbGF5ZXIubGF5ZXJJZF07Ci0gICAgICAgIGlmIChoaWdobGlnaHRzKSB7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRIaWdobGlnaHRRdWFkc0ZvckxheWVyXygKLSAgICAgICAgICAgICAgcXVhZHMsIGxheWVyLCBsYXllclF1YWQsIGhpZ2hsaWdodHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgaGlnaGxpZ2h0cyA9IHNlbGVjdGlvbkhpZ2hsaWdodHNCeUxheWVySWRbbGF5ZXIubGF5ZXJJZF07Ci0gICAgICAgIGlmIChoaWdobGlnaHRzKSB7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRIaWdobGlnaHRRdWFkc0ZvckxheWVyXygKLSAgICAgICAgICAgICAgcXVhZHMsIGxheWVyLCBsYXllclF1YWQsIGhpZ2hsaWdodHMpOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMubGF5ZXJUcmVlSW1wbC5pdGVyTGF5ZXJzKGZ1bmN0aW9uKGxheWVyLCBkZXB0aCwgaXNNYXNrLCBpc1JlcGxpY2EpIHsKLSAgICAgICAgaWYgKCF0aGlzLnNob3dPdGhlckxheWVycyAmJiB0aGlzLnNlbGVjdGVkTGF5ZXIgIT0gbGF5ZXIpCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoYWxyZWFkeVZpc2l0ZWRMYXllcklkc1tsYXllci5sYXllcklkXSkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciBsYXllclF1YWQgPSBsYXllci5sYXllclF1YWQ7Ci0gICAgICAgIHZhciBzdGFja2luZ0dyb3VwSWQgPSBuZXh0U3RhY2tpbmdHcm91cElkKys7Ci0gICAgICAgIGlmICh0aGlzLnNob3dCb3R0bGVuZWNrcykKLSAgICAgICAgICB0aGlzLmFwcGVuZEJvdHRsZW5lY2tRdWFkc18ocXVhZHMsIGxheWVyLCBsYXllclF1YWQsIHN0YWNraW5nR3JvdXBJZCk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgdmFyIHRyYWNlZElucHV0TGF0ZW5jaWVzID0gdGhpcy5sYXllclRyZWVJbXBsLnRyYWNlZElucHV0TGF0ZW5jaWVzOwotICAgICAgaWYgKHRoaXMuc2hvd0lucHV0RXZlbnRzICYmIHRyYWNlZElucHV0TGF0ZW5jaWVzKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJhY2VkSW5wdXRMYXRlbmNpZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgY29vcmRpbmF0ZXNBcnJheSA9IHRyYWNlZElucHV0TGF0ZW5jaWVzW2ldLmFyZ3MuZGF0YS5jb29yZGluYXRlczsKLSAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvb3JkaW5hdGVzQXJyYXkubGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgIHZhciBpbnB1dFF1YWQgPSB0ci5iLlF1YWQuZnJvbVhZV0goCi0gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXNBcnJheVtqXS54IC0gMjUsCi0gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXNBcnJheVtqXS55IC0gMjUsCi0gICAgICAgICAgICAgICAgNTAsCi0gICAgICAgICAgICAgICAgNTApOwotICAgICAgICAgICAgaW5wdXRRdWFkLmJvcmRlckNvbG9yID0gJ3JnYmEoMCwgMCwgMCwgMCknOwotICAgICAgICAgICAgaW5wdXRRdWFkLmltYWdlRGF0YSA9IHRoaXMuaW5wdXRFdmVudEltYWdlRGF0YV87Ci0gICAgICAgICAgICBxdWFkcy5wdXNoKGlucHV0UXVhZCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiBxdWFkczsKLSAgICB9LAotCi0gICAgdXBkYXRlSW5mb0Jhcl86IGZ1bmN0aW9uKGluZm9CYXJNZXNzYWdlcykgewotICAgICAgaWYgKGluZm9CYXJNZXNzYWdlcy5sZW5ndGgpIHsKLSAgICAgICAgdGhpcy5pbmZvQmFyXy5yZW1vdmVBbGxCdXR0b25zKCk7Ci0gICAgICAgIHRoaXMuaW5mb0Jhcl8ubWVzc2FnZSA9ICdTb21lIHByb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQuLi4nOwotICAgICAgICB0aGlzLmluZm9CYXJfLmFkZEJ1dHRvbignTW9yZSBpbmZvLi4uJywgZnVuY3Rpb24oZSkgewotICAgICAgICAgIHZhciBvdmVybGF5ID0gbmV3IHRyLmIudWkuT3ZlcmxheSgpOwotICAgICAgICAgIG92ZXJsYXkudGV4dENvbnRlbnQgPSAnJzsKLSAgICAgICAgICBpbmZvQmFyTWVzc2FnZXMuZm9yRWFjaChmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAgICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpOwotICAgICAgICAgICAgdGl0bGUudGV4dENvbnRlbnQgPSBtZXNzYWdlLmhlYWRlcjsKLQotICAgICAgICAgICAgdmFyIGRldGFpbHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgIGRldGFpbHMudGV4dENvbnRlbnQgPSBtZXNzYWdlLmRldGFpbHM7Ci0KLSAgICAgICAgICAgIG92ZXJsYXkuYXBwZW5kQ2hpbGQodGl0bGUpOwotICAgICAgICAgICAgb3ZlcmxheS5hcHBlbmRDaGlsZChkZXRhaWxzKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgICBvdmVybGF5LnZpc2libGUgPSB0cnVlOwotCi0gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLmluZm9CYXJfLnZpc2libGUgPSB0cnVlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5pbmZvQmFyXy5yZW1vdmVBbGxCdXR0b25zKCk7Ci0gICAgICAgIHRoaXMuaW5mb0Jhcl8ubWVzc2FnZSA9ICcnOwotICAgICAgICB0aGlzLmluZm9CYXJfLnZpc2libGUgPSBmYWxzZTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0V2hhdFJhc3Rlcml6ZWRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBsdGhpID0gdGhpcy5sYXllclRyZWVJbXBsXy5sYXllclRyZWVIb3N0SW1wbDsKLSAgICAgIHZhciByZW5kZXJQcm9jZXNzID0gbHRoaS5vYmplY3RJbnN0YW5jZS5wYXJlbnQ7Ci0gICAgICB2YXIgdGFza3MgPSBbXTsKLSAgICAgIHJlbmRlclByb2Nlc3MuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihldmVudCkgewotICAgICAgICBpZiAoIShldmVudCBpbnN0YW5jZW9mIHRyLm1vZGVsLlNsaWNlKSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHRpbGUgPSB0ci5lLmNjLmdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKGV2ZW50KTsKLSAgICAgICAgaWYgKHRpbGUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKHRpbGUuY29udGFpbmluZ1NuYXBzaG90ID09IGx0aGkpCi0gICAgICAgICAgdGFza3MucHVzaChldmVudCk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICAgIHJldHVybiB0YXNrczsKLSAgICB9LAotCi0gICAgdXBkYXRlV2hhdFJhc3Rlcml6ZWRMaW5rU3RhdGVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0YXNrcyA9IHRoaXMuZ2V0V2hhdFJhc3Rlcml6ZWRfKCk7Ci0gICAgICBpZiAodGFza3MubGVuZ3RoKSB7Ci0gICAgICAgIHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXy50ZXh0Q29udGVudCA9IHRhc2tzLmxlbmd0aCArICcgcmFzdGVyIHRhc2tzJzsKLSAgICAgICAgdGhpcy53aGF0UmFzdGVyaXplZExpbmtfLnN0eWxlLmRpc3BsYXkgPSAnJzsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXy50ZXh0Q29udGVudCA9ICcnOwotICAgICAgICB0aGlzLndoYXRSYXN0ZXJpemVkTGlua18uc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgb25XaGF0UmFzdGVyaXplZExpbmtDbGlja2VkXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgdGFza3MgPSB0aGlzLmdldFdoYXRSYXN0ZXJpemVkXygpOwotICAgICAgdmFyIGV2ZW50ID0gbmV3IHRyLmMuUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7Ci0gICAgICBldmVudC5zZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24odGFza3MpOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBMYXllclRyZWVRdWFkU3RhY2tWaWV3OiBMYXllclRyZWVRdWFkU3RhY2tWaWV3Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfcXVhZF9zdGFja192aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX3F1YWRfc3RhY2tfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MjJiMDUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfcXVhZF9zdGFja192aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvY2MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9xdWFkX3N0YWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQgc3JjPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF90ZXN0X2RhdGEuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgndGlsZUNvdmVyYWdlUmVjdENvdW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotCi0gICAgdmFyIGluc3RhbmNlID0gcC5vYmplY3RzLmdldEFsbEluc3RhbmNlc05hbWVkKCdjYzo6TGF5ZXJUcmVlSG9zdEltcGwnKVswXTsKLSAgICB2YXIgbHRoaSA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKLSAgICB2YXIgbnVtTGF5ZXJzID0gbHRoaS5hY3RpdmVUcmVlLnJlbmRlclN1cmZhY2VMYXllckxpc3QubGVuZ3RoOwotICAgIHZhciBsYXllciA9IGx0aGkuYWN0aXZlVHJlZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0W251bUxheWVycyAtIDFdOwotCi0gICAgdmFyIHZpZXcgPSBuZXcgdHIuZS5jYy5MYXllclRyZWVRdWFkU3RhY2tWaWV3KCk7Ci0gICAgdmlldy5sYXllclRyZWVJbXBsID0gbHRoaS5hY3RpdmVUcmVlOwotICAgIHZpZXcuc2VsZWN0aW9uID0gbmV3IHRyLmUuY2MuTGF5ZXJTZWxlY3Rpb24obGF5ZXIpOwotICAgIHZpZXcuaG93VG9TaG93VGlsZXMgPSAnbm9uZSc7Ci0gICAgdmlldy5zaG93SW52YWxpZGF0aW9ucyA9IGZhbHNlOwotICAgIHZpZXcuc2hvd0NvbnRlbnRzID0gZmFsc2U7Ci0gICAgdmlldy5zaG93T3RoZXJMQXllcnMgPSBmYWxzZTsKLQotICAgIC8vIFRoZXJlIHNob3VsZCBiZSBzb21lIHF1YWRzIGRyYXduIHdpdGggYWxsICJzaG93IiBjaGVja2JveGVzIG9mZiwKLSAgICAvLyBidXQgdGhhdCBudW1iZXIgY2FuIGNoYW5nZSB3aXRoIG5ldyBmZWF0dXJlcyBhZGRlZC4KLSAgICB2YXIgYVF1YWRzID0gdmlldy5nZW5lcmF0ZUxheWVyUXVhZHMoKTsKLSAgICB2aWV3Lmhvd1RvU2hvd1RpbGVzID0gJ2NvdmVyYWdlJzsKLSAgICB2YXIgYlF1YWRzID0gdmlldy5nZW5lcmF0ZUxheWVyUXVhZHMoKTsKLSAgICB2YXIgbnVtQ292ZXJhZ2VSZWN0cyA9IGJRdWFkcy5sZW5ndGggLSBhUXVhZHMubGVuZ3RoOwotCi0gICAgLy8gV2Uga25vdyB3ZSBoYXZlIDUgY292ZXJhZ2UgcmVjdHMgaW4gbHRoaSBjYXRzLgotICAgIGFzc2VydC5lcXVhbChudW1Db3ZlcmFnZVJlY3RzLCA1KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzMwZDMzLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gKi8KLQotKiAvZGVlcC8gbGF5ZXItdmlldyB7Ci0gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgZGlzcGxheTogIC13ZWJraXQtZmxleDsKLSAgbGVmdDogMDsKLSAgcG9zaXRpb246IHJlbGF0aXZlOwotICB0b3A6IDA7Ci19Ci0KLSogL2RlZXAvIGxheWVyLXZpZXcgPiBsYXllci10cmVlLXF1YWQtc3RhY2stdmlldyB7Ci0gIC13ZWJraXQtZmxleDogMSAxIDEwMCU7Ci0gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgbWluLWhlaWdodDogMDsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICB3aWR0aDogMTAwJTsKLX0KLQotKiAvZGVlcC8gbGF5ZXItdmlldyA+IGxheWVyLXZpZXctYW5hbHlzaXMgewotICBoZWlnaHQ6IDE1MHB4OyAvKiBmaXhlZCBoZWlnaHQgZ2l2ZW4gYnkgZHJhZyBjb250cm9sICovCi0gIG92ZXJmbG93LXk6IGF1dG87Ci19Ci0KLSogL2RlZXAvIGxheWVyLXZpZXcgPiBsYXllci12aWV3LWFuYWx5c2lzICogewotICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotfQotCi0qIC9kZWVwLyAubGFiZWxlZC1vcHRpb24tZ3JvdXAgewotICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOwotICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gIC13ZWJraXQtYWxpZ24taXRlbXM6IGxlZnQ7Ci0gIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLX0KLQotKiAvZGVlcC8gLmxhYmVsZWQtb3B0aW9uIHsKLSAgYm9yZGVyLXRvcDogNXB4IHNvbGlkIHdoaXRlOwotICBib3JkZXItYm90dG9tOiA1cHggc29saWQgd2hpdGU7Ci19Ci0KLSogL2RlZXAvIC5lZGl0LWNhdGVnb3JpZXMgewotICBwYWRkaW5nLWxlZnQ6IDZweDsKLX0KLQotKiAvZGVlcC8gLmVkaXQtY2F0ZWdvcmllczphZnRlciB7Ci0gIHBhZGRpbmctbGVmdDogMTVweDsKLSAgZm9udC1zaXplOiAxMjUlOwotfQotCi0qIC9kZWVwLyAubGFiZWxlZC1vcHRpb24tZ3JvdXA6bm90KC5jYXRlZ29yaWVzLWV4cGFuZGVkKQotICAgIC5lZGl0LWNhdGVnb3JpZXM6YWZ0ZXIgewotICBjb250ZW50OiAnXDI1QjgnOyAvKiBSaWdodCB0cmlhbmdsZSAqLwotfQotCi0qIC9kZWVwLyAubGFiZWxlZC1vcHRpb24tZ3JvdXAuY2F0ZWdvcmllcy1leHBhbmRlZCAuZWRpdC1jYXRlZ29yaWVzOmFmdGVyIHsKLSAgY29udGVudDogJ1wyNUJFJzsgLyogRG93biB0cmlhbmdsZSAqLwotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlYzRlZmIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3LmNzcyI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9jb25zdGFudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9xdWFkX3N0YWNrX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYWYuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZHJhZ19oYW5kbGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IExheWVyVmlldyBjb29yZGluYXRlcyBncmFwaGljYWwgYW5kIGFuYWx5c2lzIHZpZXdzIG9mIGxheWVycy4KLSAqLwotCi10ci5leHBvcnRUbygndHIuZS5jYycsIGZ1bmN0aW9uKCkgewotICB2YXIgY29uc3RhbnRzID0gdHIuZS5jYy5jb25zdGFudHM7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIExheWVyVmlldyA9IHRyLmIudWkuZGVmaW5lKCdsYXllci12aWV3Jyk7Ci0KLSAgTGF5ZXJWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfID0gbmV3IHRyLmUuY2MuTGF5ZXJUcmVlUXVhZFN0YWNrVmlldygpOwotICAgICAgdGhpcy5kcmFnQmFyXyA9IG5ldyB0ci5iLnVpLkRyYWdIYW5kbGUoKTsKLSAgICAgIHRoaXMuYW5hbHlzaXNFbF8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYXllci12aWV3LWFuYWx5c2lzJyk7Ci0gICAgICB0aGlzLmFuYWx5c2lzRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLAotICAgICAgICAgIHRoaXMub25SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRnJvbUFuYWx5c2lzRWxfLmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLmRyYWdCYXJfLnRhcmdldCA9IHRoaXMuYW5hbHlzaXNFbF87Ci0KLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xyk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuZHJhZ0Jhcl8pOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmFuYWx5c2lzRWxfKTsKLQotICAgICAgdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlJywKLSAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld1NlbGVjdGlvbkNoYW5nZWRfKCk7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld1NlbGVjdGlvbkNoYW5nZWRfKCk7Ci0gICAgfSwKLQotICAgIGdldCBsYXllclRyZWVJbXBsKCkgewotICAgICAgcmV0dXJuIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld18ubGF5ZXJUcmVlSW1wbDsKLSAgICB9LAotCi0gICAgc2V0IGxheWVyVHJlZUltcGwobmV3VmFsdWUpIHsKLSAgICAgIHJldHVybiB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLmxheWVyVHJlZUltcGwgPSBuZXdWYWx1ZTsKLSAgICB9LAotCi0gICAgc2V0IGlzUmVuZGVyUGFzc1F1YWRzKG5ld1ZhbHVlKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xy5pc1JlbmRlclBhc3NRdWFkcyA9IG5ld1ZhbHVlOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld18uc2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKG5ld1ZhbHVlKSB7Ci0gICAgICB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLnNlbGVjdGlvbiA9IG5ld1ZhbHVlOwotICAgIH0sCi0KLSAgICByZWdlbmVyYXRlQ29udGVudDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLnJlZ2VuZXJhdGVDb250ZW50KCk7Ci0gICAgfSwKLQotICAgIGxheWVyVHJlZVF1YWRTdGFja1ZpZXdTZWxlY3Rpb25DaGFuZ2VkXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xy5zZWxlY3Rpb247Ci0gICAgICBpZiAoc2VsZWN0aW9uKSB7Ci0gICAgICAgIHRoaXMuZHJhZ0Jhcl8uc3R5bGUuZGlzcGxheSA9ICcnOwotICAgICAgICB0aGlzLmFuYWx5c2lzRWxfLnN0eWxlLmRpc3BsYXkgPSAnJzsKLSAgICAgICAgdGhpcy5hbmFseXNpc0VsXy50ZXh0Q29udGVudCA9ICcnOwotCi0gICAgICAgIHZhciBsYXllciA9IHNlbGVjdGlvbi5sYXllcjsKLSAgICAgICAgaWYgKGxheWVyICYmIGxheWVyLmFyZ3MgJiYgbGF5ZXIuYXJncy5waWN0dXJlcykgewotICAgICAgICAgIHRoaXMuYW5hbHlzaXNFbF8uYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGljdHVyZUJ0bl8obGF5ZXIuYXJncy5waWN0dXJlcykpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGFuYWx5c2lzID0gc2VsZWN0aW9uLmNyZWF0ZUFuYWx5c2lzKCk7Ci0gICAgICAgIHRoaXMuYW5hbHlzaXNFbF8uYXBwZW5kQ2hpbGQoYW5hbHlzaXMpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5kcmFnQmFyXy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgICB0aGlzLmFuYWx5c2lzRWxfLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgIHZhciBhbmFseXNpcyA9IHRoaXMuYW5hbHlzaXNFbF8uZmlyc3RDaGlsZDsKLSAgICAgICAgaWYgKGFuYWx5c2lzKQotICAgICAgICAgIHRoaXMuYW5hbHlzaXNFbF8ucmVtb3ZlQ2hpbGQoYW5hbHlzaXMpOwotICAgICAgICB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLnN0eWxlLmhlaWdodCA9Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7Ci0gICAgICB9Ci0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2UnKTsKLSAgICB9LAotCi0gICAgY3JlYXRlUGljdHVyZUJ0bl86IGZ1bmN0aW9uKHBpY3R1cmVzKSB7Ci0gICAgICBpZiAoIShwaWN0dXJlcyBpbnN0YW5jZW9mIEFycmF5KSkKLSAgICAgICAgcGljdHVyZXMgPSBbcGljdHVyZXNdOwotCi0gICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICBsaW5rLnNlbGVjdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgbGF5ZXJlZFBpY3R1cmUgPSBuZXcgdHIuZS5jYy5MYXllcmVkUGljdHVyZShwaWN0dXJlcyk7Ci0gICAgICAgIHZhciBzbmFwc2hvdCA9IG5ldyB0ci5lLmNjLlBpY3R1cmVTbmFwc2hvdChsYXllcmVkUGljdHVyZSk7Ci0gICAgICAgIHNuYXBzaG90LnBpY3R1cmUgPSBsYXllcmVkUGljdHVyZTsKLQotICAgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKCk7Ci0gICAgICAgIHNlbGVjdGlvbi5wdXNoKHNuYXBzaG90KTsKLSAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKLSAgICAgIH07Ci0gICAgICBsaW5rLnRleHRDb250ZW50ID0gJ1ZpZXcgaW4gUGljdHVyZSBEZWJ1Z2dlcic7Ci0gICAgICByZXR1cm4gbGluazsKLSAgICB9LAotCi0gICAgb25SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRnJvbUFuYWx5c2lzRWxfOiBmdW5jdGlvbihlKSB7Ci0gICAgICBpZiAoIShlLnNlbGVjdGlvbiBpbnN0YW5jZW9mIHRyLmUuY2MuU2VsZWN0aW9uKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgdGhpcy5zZWxlY3Rpb24gPSBlLnNlbGVjdGlvbjsKLSAgICB9LAotCi0gICAgZ2V0IGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLmV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZDsKLSAgICB9LAotCi0gICAgc2V0IGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZChleHRyYUhpZ2hsaWdodHNCeUxheWVySWQpIHsKLSAgICAgIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld18uZXh0cmFIaWdobGlnaHRzQnlMYXllcklkID0KLSAgICAgICAgICBleHRyYUhpZ2hsaWdodHNCeUxheWVySWQ7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgTGF5ZXJWaWV3OiBMYXllclZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5NzAwN2QuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXdfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9jYy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0IHNyYz0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdF9kYXRhLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotCi0gICAgdmFyIGluc3RhbmNlID0gcC5vYmplY3RzLmdldEFsbEluc3RhbmNlc05hbWVkKCdjYzo6TGF5ZXJUcmVlSG9zdEltcGwnKVswXTsKLSAgICB2YXIgbHRoaSA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKLSAgICB2YXIgbnVtTGF5ZXJzID0gbHRoaS5hY3RpdmVUcmVlLnJlbmRlclN1cmZhY2VMYXllckxpc3QubGVuZ3RoOwotICAgIHZhciBsYXllciA9IGx0aGkuYWN0aXZlVHJlZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0W251bUxheWVycyAtIDFdOwotCi0gICAgdmFyIHZpZXcgPSBuZXcgdHIuZS5jYy5MYXllclZpZXcoKTsKLSAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc1MDBweCc7Ci0gICAgdmlldy5sYXllclRyZWVJbXBsID0gbHRoaS5hY3RpdmVUcmVlOwotICAgIHZpZXcuc2VsZWN0aW9uID0gbmV3IHRyLmUuY2MuTGF5ZXJTZWxlY3Rpb24obGF5ZXIpOwotCi0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOwotICB9KTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoVGlsZUhpZ2hsaWdodCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKLQotICAgIHZhciBpbnN0YW5jZSA9IHAub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNOYW1lZCgnY2M6OkxheWVyVHJlZUhvc3RJbXBsJylbMF07Ci0gICAgdmFyIGx0aGkgPSBpbnN0YW5jZS5zbmFwc2hvdHNbMF07Ci0gICAgdmFyIG51bUxheWVycyA9IGx0aGkuYWN0aXZlVHJlZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0Lmxlbmd0aDsKLSAgICB2YXIgbGF5ZXIgPSBsdGhpLmFjdGl2ZVRyZWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdFtudW1MYXllcnMgLSAxXTsKLSAgICB2YXIgdGlsZSA9IGx0aGkuYWN0aXZlVGlsZXNbMF07Ci0KLSAgICB2YXIgdmlldyA9IG5ldyB0ci5lLmNjLkxheWVyVmlldygpOwotICAgIHZpZXcuc3R5bGUuaGVpZ2h0ID0gJzUwMHB4JzsKLSAgICB2aWV3LmxheWVyVHJlZUltcGwgPSBsdGhpLmFjdGl2ZVRyZWU7Ci0gICAgdmlldy5zZWxlY3Rpb24gPSBuZXcgdHIuZS5jYy5UaWxlU2VsZWN0aW9uKHRpbGUpOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5MzkyMTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfYXNfaW1hZ2VfZGF0YS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy91dGlsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmVjdC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYWYuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL29iamVjdF9pbnN0YW5jZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIE9iamVjdFNuYXBzaG90ID0gdHIubW9kZWwuT2JqZWN0U25hcHNob3Q7Ci0KLSAgLy8gTnVtYmVyIG9mIHBpY3R1cmVzIGNyZWF0ZWQuIFVzZWQgYXMgYW4gdW5pcXVlSWQgYmVjYXVzZSB3ZSBhcmUgaW1tdXRhYmxlLgotICB2YXIgUGljdHVyZUNvdW50ID0gMDsKLSAgdmFyIE9QU19USU1JTkdfSVRFUkFUSU9OUyA9IDM7Ci0KLSAgZnVuY3Rpb24gUGljdHVyZShza3A2NCwgbGF5ZXJSZWN0KSB7Ci0gICAgdGhpcy5za3A2NF8gPSBza3A2NDsKLSAgICB0aGlzLmxheWVyUmVjdF8gPSBsYXllclJlY3Q7Ci0KLSAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7Ci0gIH0KLQotICBQaWN0dXJlLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgY2FuU2F2ZSgpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBnZXQgbGF5ZXJSZWN0KCkgewotICAgICAgcmV0dXJuIHRoaXMubGF5ZXJSZWN0XzsKLSAgICB9LAotCi0gICAgZ2V0IGd1aWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ndWlkXzsKLSAgICB9LAotCi0gICAgZ2V0QmFzZTY0U2twRGF0YTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5za3A2NF87Ci0gICAgfSwKLQotICAgIGdldE9wczogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAoIVBpY3R1cmVTbmFwc2hvdC5DYW5HZXRPcHMoKSkgewotICAgICAgICBjb25zb2xlLmVycm9yKFBpY3R1cmVTbmFwc2hvdC5Ib3dUb0VuYWJsZVBpY3R1cmVEZWJ1Z2dpbmcoKSk7Ci0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBvcHMgPSB3aW5kb3cuY2hyb21lLnNraWFCZW5jaG1hcmtpbmcuZ2V0T3BzKHsKLSAgICAgICAgc2twNjQ6IHRoaXMuc2twNjRfLAotICAgICAgICBwYXJhbXM6IHsKLSAgICAgICAgICBsYXllcl9yZWN0OiB0aGlzLmxheWVyUmVjdF8udG9BcnJheSgpCi0gICAgICAgIH0KLSAgICAgIH0pOwotCi0gICAgICBpZiAoIW9wcykKLSAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGdldCBwaWN0dXJlIG9wcy4nKTsKLQotICAgICAgcmV0dXJuIG9wczsKLSAgICB9LAotCi0gICAgZ2V0T3BUaW1pbmdzOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghUGljdHVyZVNuYXBzaG90LkNhbkdldE9wVGltaW5ncygpKSB7Ci0gICAgICAgIGNvbnNvbGUuZXJyb3IoUGljdHVyZVNuYXBzaG90Lkhvd1RvRW5hYmxlUGljdHVyZURlYnVnZ2luZygpKTsKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIH0KLQotICAgICAgdmFyIG9wVGltaW5ncyA9IHdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRPcFRpbWluZ3MoewotICAgICAgICBza3A2NDogdGhpcy5za3A2NF8sCi0gICAgICAgIHBhcmFtczogewotICAgICAgICAgIGxheWVyX3JlY3Q6IHRoaXMubGF5ZXJSZWN0Xy50b0FycmF5KCkKLSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIGlmICghb3BUaW1pbmdzKQotICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZ2V0IHBpY3R1cmUgb3AgdGltaW5ncy4nKTsKLQotICAgICAgcmV0dXJuIG9wVGltaW5nczsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogVGFnIGVhY2ggb3Agd2l0aCB0aGUgdGltZSBpdCB0YWtlcyB0byByYXN0ZXJpemUuCi0gICAgICoKLSAgICAgKiBGSVhNRTogV2Ugc2hvdWxkIHVzZSByZWFsIHN0YXRpc3RpY3MgdG8gZ2V0IGJldHRlciBudW1iZXJzIGhlcmUsIHNlZQotICAgICAqICAgICAgICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3RyYWNlLXZpZXdlci9pc3N1ZXMvZGV0YWlsP2lkPTM1NwotICAgICAqCi0gICAgICogQHBhcmFtIHtBcnJheX0gb3BzIEFycmF5IG9mIFNraWEgb3BlcmF0aW9ucy4KLSAgICAgKiBAcmV0dXJuIHtBcnJheX0gU2tpYSBvcHMgd2hlcmUgb3AuY21kX3RpbWUgY29udGFpbnMgdGhlIGFzc29jaWF0ZWQgdGltZQotICAgICAqICAgICAgICAgZm9yIGEgZ2l2ZW4gb3AuCi0gICAgICovCi0gICAgdGFnT3BzV2l0aFRpbWluZ3M6IGZ1bmN0aW9uKG9wcykgewotICAgICAgdmFyIG9wVGltaW5ncyA9IG5ldyBBcnJheSgpOwotICAgICAgZm9yICh2YXIgaXRlcmF0aW9uID0gMDsgaXRlcmF0aW9uIDwgT1BTX1RJTUlOR19JVEVSQVRJT05TOyBpdGVyYXRpb24rKykgewotICAgICAgICBvcFRpbWluZ3NbaXRlcmF0aW9uXSA9IHRoaXMuZ2V0T3BUaW1pbmdzKCk7Ci0gICAgICAgIGlmICghb3BUaW1pbmdzW2l0ZXJhdGlvbl0gfHwgIW9wVGltaW5nc1tpdGVyYXRpb25dLmNtZF90aW1lcykKLSAgICAgICAgICByZXR1cm4gb3BzOwotICAgICAgICBpZiAob3BUaW1pbmdzW2l0ZXJhdGlvbl0uY21kX3RpbWVzLmxlbmd0aCAhPSBvcHMubGVuZ3RoKQotICAgICAgICAgIHJldHVybiBvcHM7Ci0gICAgICB9Ci0KLSAgICAgIGZvciAodmFyIG9wSW5kZXggPSAwOyBvcEluZGV4IDwgb3BzLmxlbmd0aDsgb3BJbmRleCsrKSB7Ci0gICAgICAgIHZhciBtaW4gPSBOdW1iZXIuTUFYX1ZBTFVFOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IE9QU19USU1JTkdfSVRFUkFUSU9OUzsgaSsrKQotICAgICAgICAgIG1pbiA9IE1hdGgubWluKG1pbiwgb3BUaW1pbmdzW2ldLmNtZF90aW1lc1tvcEluZGV4XSk7Ci0gICAgICAgIG9wc1tvcEluZGV4XS5jbWRfdGltZSA9IG1pbjsKLSAgICAgIH0KLQotICAgICAgcmV0dXJuIG9wczsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUmFzdGVyaXplIHRoZSBwaWN0dXJlLgotICAgICAqCi0gICAgICogQHBhcmFtIHt7b3B0X3N0b3BJbmRleDogbnVtYmVyLCBwYXJhbXN9fSBUaGUgU2tQaWN0dXJlIG9wZXJhdGlvbiB0bwotICAgICAqICAgICByYXN0ZXJpemUgdXAgdG8uIElmIG5vdCBkZWZpbmVkLCB0aGUgZW50aXJlIFNrUGljdHVyZSBpcyByYXN0ZXJpemVkLgotICAgICAqIEBwYXJhbSB7e29wdF9zaG93T3ZlcmRyYXc6IGJvb2wsIHBhcmFtc319IERlZmluZXMgd2hldGhlciBwaXhlbCBvdmVyZHJhdwotICAgICAgICAgICBzaG91bGQgYmUgdmlzdWFsaXplZCBpbiB0aGUgaW1hZ2UuCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbih0ci5lLmNjLlBpY3R1cmVBc0ltYWdlRGF0YSl9IFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0Ci0gICAgICogICAgIGlzIGNhbGxlZCBhZnRlciByYXN0ZXJpemF0aW9uIGlzIGNvbXBsZXRlIG9yIGZhaWxzLgotICAgICAqLwotICAgIHJhc3Rlcml6ZTogZnVuY3Rpb24ocGFyYW1zLCByYXN0ZXJDb21wbGV0ZUNhbGxiYWNrKSB7Ci0gICAgICBpZiAoIVBpY3R1cmVTbmFwc2hvdC5DYW5SYXN0ZXJpemUoKSB8fCAhUGljdHVyZVNuYXBzaG90LkNhbkdldE9wcygpKSB7Ci0gICAgICAgIHJhc3RlckNvbXBsZXRlQ2FsbGJhY2sobmV3IHRyLmUuY2MuUGljdHVyZUFzSW1hZ2VEYXRhKAotICAgICAgICAgICAgdGhpcywgdHIuZS5jYy5QaWN0dXJlU25hcHNob3QuSG93VG9FbmFibGVQaWN0dXJlRGVidWdnaW5nKCkpKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB2YXIgcmFzdGVyID0gd2luZG93LmNocm9tZS5za2lhQmVuY2htYXJraW5nLnJhc3Rlcml6ZSgKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBza3A2NDogdGhpcy5za3A2NF8sCi0gICAgICAgICAgICBwYXJhbXM6IHsKLSAgICAgICAgICAgICAgbGF5ZXJfcmVjdDogdGhpcy5sYXllclJlY3RfLnRvQXJyYXkoKQotICAgICAgICAgICAgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgc3RvcDogcGFyYW1zLnN0b3BJbmRleCA9PT0gdW5kZWZpbmVkID8gLTEgOiBwYXJhbXMuc3RvcEluZGV4LAotICAgICAgICAgICAgb3ZlcmRyYXc6ICEhcGFyYW1zLnNob3dPdmVyZHJhdywKLSAgICAgICAgICAgIHBhcmFtczogeyB9Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIGlmIChyYXN0ZXIpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9IHJhc3Rlci53aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IHJhc3Rlci5oZWlnaHQ7Ci0gICAgICAgIHZhciBpbWFnZURhdGEgPSBjdHguY3JlYXRlSW1hZ2VEYXRhKHJhc3Rlci53aWR0aCwgcmFzdGVyLmhlaWdodCk7Ci0gICAgICAgIGltYWdlRGF0YS5kYXRhLnNldChuZXcgVWludDhDbGFtcGVkQXJyYXkocmFzdGVyLmRhdGEpKTsKLSAgICAgICAgcmFzdGVyQ29tcGxldGVDYWxsYmFjayhuZXcgdHIuZS5jYy5QaWN0dXJlQXNJbWFnZURhdGEodGhpcywgaW1hZ2VEYXRhKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB2YXIgZXJyb3IgPSAnRmFpbGVkIHRvIHJhc3Rlcml6ZSBwaWN0dXJlLiAnICsKLSAgICAgICAgICAgICAgICAnWW91ciByZWNvcmRpbmcgbWF5IGJlIGZyb20gYW4gb2xkIENocm9tZSB2ZXJzaW9uLiAnICsKLSAgICAgICAgICAgICAgICAnVGhlIFNrUGljdHVyZSBmb3JtYXQgaXMgbm90IGJhY2t3YXJkIGNvbXBhdGlibGUuJzsKLSAgICAgICAgcmFzdGVyQ29tcGxldGVDYWxsYmFjayhuZXcgdHIuZS5jYy5QaWN0dXJlQXNJbWFnZURhdGEodGhpcywgZXJyb3IpKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0KLSAgZnVuY3Rpb24gTGF5ZXJlZFBpY3R1cmUocGljdHVyZXMpIHsKLSAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7Ci0gICAgdGhpcy5waWN0dXJlc18gPSBwaWN0dXJlczsKLSAgICB0aGlzLmxheWVyUmVjdF8gPSB1bmRlZmluZWQ7Ci0gIH0KLQotICBMYXllcmVkUGljdHVyZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQaWN0dXJlLnByb3RvdHlwZSwKLQotICAgIGdldCBjYW5TYXZlKCkgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBnZXQgdHlwZU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ2NjOjpMYXllcmVkUGljdHVyZSc7Ci0gICAgfSwKLQotICAgIGdldCBsYXllclJlY3QoKSB7Ci0gICAgICBpZiAodGhpcy5sYXllclJlY3RfICE9PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybiB0aGlzLmxheWVyUmVjdF87Ci0KLSAgICAgIHRoaXMubGF5ZXJSZWN0XyA9IHsKLSAgICAgICAgeDogMCwKLSAgICAgICAgeTogMCwKLSAgICAgICAgd2lkdGg6IDAsCi0gICAgICAgIGhlaWdodDogMAotICAgICAgfTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBpY3R1cmVzXy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgcmVjdCA9IHRoaXMucGljdHVyZXNfW2ldLmxheWVyUmVjdDsKLSAgICAgICAgdGhpcy5sYXllclJlY3RfLnggPSBNYXRoLm1pbih0aGlzLmxheWVyUmVjdF8ueCwgcmVjdC54KTsKLSAgICAgICAgdGhpcy5sYXllclJlY3RfLnkgPSBNYXRoLm1pbih0aGlzLmxheWVyUmVjdF8ueSwgcmVjdC55KTsKLSAgICAgICAgdGhpcy5sYXllclJlY3RfLndpZHRoID0KLSAgICAgICAgICAgIE1hdGgubWF4KHRoaXMubGF5ZXJSZWN0Xy53aWR0aCwgcmVjdC54ICsgcmVjdC53aWR0aCk7Ci0gICAgICAgIHRoaXMubGF5ZXJSZWN0Xy5oZWlnaHQgPQotICAgICAgICAgICAgTWF0aC5tYXgodGhpcy5sYXllclJlY3RfLmhlaWdodCwgcmVjdC55ICsgcmVjdC5oZWlnaHQpOwotICAgICAgfQotICAgICAgcmV0dXJuIHRoaXMubGF5ZXJSZWN0XzsKLSAgICB9LAotCi0gICAgZ2V0IGd1aWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ndWlkXzsKLSAgICB9LAotCi0gICAgZ2V0QmFzZTY0U2twRGF0YTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhdmFpbGFibGUgd2l0aCBhIExheWVyZWRQaWN0dXJlLicpOwotICAgIH0sCi0KLSAgICBnZXRPcHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG9wcyA9IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBpY3R1cmVzXy5sZW5ndGg7ICsraSkKLSAgICAgICAgb3BzID0gb3BzLmNvbmNhdCh0aGlzLnBpY3R1cmVzX1tpXS5nZXRPcHMoKSk7Ci0gICAgICByZXR1cm4gb3BzOwotICAgIH0sCi0KLSAgICBnZXRPcFRpbWluZ3M6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG9wVGltaW5ncyA9IHRoaXMucGljdHVyZXNfWzBdLmdldE9wVGltaW5ncygpOwotICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0aGlzLnBpY3R1cmVzXy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgdGltaW5ncyA9IHRoaXMucGljdHVyZXNfW2ldLmdldE9wVGltaW5ncygpOwotICAgICAgICBvcFRpbWluZ3MuY21kX3RpbWVzID0gb3BUaW1pbmdzLmNtZF90aW1lcy5jb25jYXQodGltaW5ncy5jbWRfdGltZXMpOwotICAgICAgICBvcFRpbWluZ3MudG90YWxfdGltZSArPSB0aW1pbmdzLnRvdGFsX3RpbWU7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gb3BUaW1pbmdzOwotICAgIH0sCi0KLSAgICB0YWdPcHNXaXRoVGltaW5nczogZnVuY3Rpb24ob3BzKSB7Ci0gICAgICB2YXIgb3BUaW1pbmdzID0gbmV3IEFycmF5KCk7Ci0gICAgICBmb3IgKHZhciBpdGVyYXRpb24gPSAwOyBpdGVyYXRpb24gPCBPUFNfVElNSU5HX0lURVJBVElPTlM7IGl0ZXJhdGlvbisrKSB7Ci0gICAgICAgIG9wVGltaW5nc1tpdGVyYXRpb25dID0gdGhpcy5nZXRPcFRpbWluZ3MoKTsKLSAgICAgICAgaWYgKCFvcFRpbWluZ3NbaXRlcmF0aW9uXSB8fCAhb3BUaW1pbmdzW2l0ZXJhdGlvbl0uY21kX3RpbWVzKQotICAgICAgICAgIHJldHVybiBvcHM7Ci0gICAgICB9Ci0KLSAgICAgIGZvciAodmFyIG9wSW5kZXggPSAwOyBvcEluZGV4IDwgb3BzLmxlbmd0aDsgb3BJbmRleCsrKSB7Ci0gICAgICAgIHZhciBtaW4gPSBOdW1iZXIuTUFYX1ZBTFVFOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IE9QU19USU1JTkdfSVRFUkFUSU9OUzsgaSsrKQotICAgICAgICAgIG1pbiA9IE1hdGgubWluKG1pbiwgb3BUaW1pbmdzW2ldLmNtZF90aW1lc1tvcEluZGV4XSk7Ci0gICAgICAgIG9wc1tvcEluZGV4XS5jbWRfdGltZSA9IG1pbjsKLSAgICAgIH0KLSAgICAgIHJldHVybiBvcHM7Ci0gICAgfSwKLQotICAgIHJhc3Rlcml6ZTogZnVuY3Rpb24ocGFyYW1zLCByYXN0ZXJDb21wbGV0ZUNhbGxiYWNrKSB7Ci0gICAgICB0aGlzLnBpY3R1cmVzQXNJbWFnZURhdGFfID0gW107Ci0gICAgICB2YXIgcmFzdGVyQ2FsbGJhY2sgPSBmdW5jdGlvbihwaWN0dXJlQXNJbWFnZURhdGEpIHsKLSAgICAgICAgdGhpcy5waWN0dXJlc0FzSW1hZ2VEYXRhXy5wdXNoKHBpY3R1cmVBc0ltYWdlRGF0YSk7Ci0gICAgICAgIGlmICh0aGlzLnBpY3R1cmVzQXNJbWFnZURhdGFfLmxlbmd0aCAhPT0gdGhpcy5waWN0dXJlc18ubGVuZ3RoKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy5sYXllclJlY3Qud2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLmxheWVyUmVjdC5oZWlnaHQ7Ci0KLSAgICAgICAgLy8gVE9ETyhkc2luY2xhaXIpOiBWZXJpZnkgdGhlc2UgZmluaXNoIGluIHRoZSBvcmRlciBzdGFydGVkLgotICAgICAgICAvLyAgIERvIHRoZSByYXN0ZXJpemUgY2FsbHMgcnVuIHN5bmMgb3IgYXN5bj8gQXMgdGhlIGltYWdlRGF0YQotICAgICAgICAvLyAgIGdvaW5nIHRvIGJlIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBwaWN0dXJlc18gbGlzdD8KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBpY3R1cmVzQXNJbWFnZURhdGFfLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgY3R4LnB1dEltYWdlRGF0YSh0aGlzLnBpY3R1cmVzQXNJbWFnZURhdGFfW2ldLmltYWdlRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGljdHVyZXNfW2ldLmxheWVyUmVjdC54LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5waWN0dXJlc19baV0ubGF5ZXJSZWN0LnkpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMucGljdHVyZXNBc0ltYWdlRGF0YV8gPSBbXTsKLQotICAgICAgICByYXN0ZXJDb21wbGV0ZUNhbGxiYWNrKG5ldyB0ci5lLmNjLlBpY3R1cmVBc0ltYWdlRGF0YSh0aGlzLAotICAgICAgICAgICAgY3R4LmdldEltYWdlRGF0YSh0aGlzLmxheWVyUmVjdC54LCB0aGlzLmxheWVyUmVjdC55LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVyUmVjdC53aWR0aCwgdGhpcy5sYXllclJlY3QuaGVpZ2h0KSkpOwotICAgICAgfS5iaW5kKHRoaXMpOwotCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGljdHVyZXNfLmxlbmd0aDsgKytpKQotICAgICAgICB0aGlzLnBpY3R1cmVzX1tpXS5yYXN0ZXJpemUocGFyYW1zLCByYXN0ZXJDYWxsYmFjayk7Ci0gICAgfQotICB9OwotCi0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gUGljdHVyZVNuYXBzaG90KCkgewotICAgIE9iamVjdFNuYXBzaG90LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gIH0KLQotICBQaWN0dXJlU25hcHNob3QuSGFzU2tpYUJlbmNobWFya2luZyA9IGZ1bmN0aW9uKCkgewotICAgIGlmICghd2luZG93LmNocm9tZSkKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIXdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZykKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotCi0gIFBpY3R1cmVTbmFwc2hvdC5DYW5SYXN0ZXJpemUgPSBmdW5jdGlvbigpIHsKLSAgICBpZiAoIVBpY3R1cmVTbmFwc2hvdC5IYXNTa2lhQmVuY2htYXJraW5nKCkpCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCF3aW5kb3cuY2hyb21lLnNraWFCZW5jaG1hcmtpbmcucmFzdGVyaXplKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotICB9Ci0KLSAgUGljdHVyZVNuYXBzaG90LkNhbkdldE9wcyA9IGZ1bmN0aW9uKCkgewotICAgIGlmICghUGljdHVyZVNuYXBzaG90Lkhhc1NraWFCZW5jaG1hcmtpbmcoKSkKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIXdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRPcHMpCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLQotICBQaWN0dXJlU25hcHNob3QuQ2FuR2V0T3BUaW1pbmdzID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKCFQaWN0dXJlU25hcHNob3QuSGFzU2tpYUJlbmNobWFya2luZygpKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghd2luZG93LmNocm9tZS5za2lhQmVuY2htYXJraW5nLmdldE9wVGltaW5ncykKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLSAgfQotCi0gIFBpY3R1cmVTbmFwc2hvdC5DYW5HZXRJbmZvID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKCFQaWN0dXJlU25hcHNob3QuSGFzU2tpYUJlbmNobWFya2luZygpKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghd2luZG93LmNocm9tZS5za2lhQmVuY2htYXJraW5nLmdldEluZm8pCi0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLQotICBQaWN0dXJlU25hcHNob3QuSG93VG9FbmFibGVQaWN0dXJlRGVidWdnaW5nID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHVzdWFsUmVhc29uID0gWwotICAgICAgJ0ZvciBwaWN0dXJlcyB0byBzaG93IHVwLCB5b3UgbmVlZCB0byBoYXZlIENocm9tZSBydW5uaW5nIHdpdGggJywKLSAgICAgICctLWVuYWJsZS1za2lhLWJlbmNobWFya2luZy4gUGxlYXNlIHJlc3RhcnQgY2hyb21lIHdpdGggdGhpcyBmbGFnICcsCi0gICAgICAnYW5kIHRyeSBhZ2Fpbi4nCi0gICAgXS5qb2luKCcnKTsKLQotICAgIGlmICghd2luZG93LmNocm9tZSkKLSAgICAgIHJldHVybiB1c3VhbFJlYXNvbjsKLSAgICBpZiAoIXdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZykKLSAgICAgIHJldHVybiB1c3VhbFJlYXNvbjsKLSAgICBpZiAoIXdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5yYXN0ZXJpemUpCi0gICAgICByZXR1cm4gJ1lvdXIgY2hyb21lIGlzIG9sZCc7Ci0gICAgaWYgKCF3aW5kb3cuY2hyb21lLnNraWFCZW5jaG1hcmtpbmcuZ2V0T3BzKQotICAgICAgcmV0dXJuICdZb3VyIGNocm9tZSBpcyBvbGQ6IHNraWFCZW5jaG1hcmtpbmcuZ2V0T3BzIG5vdCBmb3VuZCc7Ci0gICAgaWYgKCF3aW5kb3cuY2hyb21lLnNraWFCZW5jaG1hcmtpbmcuZ2V0T3BUaW1pbmdzKQotICAgICAgcmV0dXJuICdZb3VyIGNocm9tZSBpcyBvbGQ6IHNraWFCZW5jaG1hcmtpbmcuZ2V0T3BUaW1pbmdzIG5vdCBmb3VuZCc7Ci0gICAgaWYgKCF3aW5kb3cuY2hyb21lLnNraWFCZW5jaG1hcmtpbmcuZ2V0SW5mbykKLSAgICAgIHJldHVybiAnWW91ciBjaHJvbWUgaXMgb2xkOiBza2lhQmVuY2htYXJraW5nLmdldEluZm8gbm90IGZvdW5kJzsKLSAgICByZXR1cm4gJ1Jhc3Rlcml6aW5nIGlzIG9uJzsKLSAgfQotCi0gIFBpY3R1cmVTbmFwc2hvdC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBPYmplY3RTbmFwc2hvdC5wcm90b3R5cGUsCi0KLSAgICBwcmVJbml0aWFsaXplOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmUuY2MucHJlSW5pdGlhbGl6ZU9iamVjdCh0aGlzKTsKLSAgICAgIHRoaXMucmFzdGVyUmVzdWx0XyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7Ci0gICAgICAvLyBJZiB3ZSBoYXZlIGFuIGFsaWFzIGFyZ3MsIHRoYXQgbWVhbnMgdGhpcyBwaWN0dXJlIHdhcyByZXByZXNlbnRlZAotICAgICAgLy8gYnkgYW4gYWxpYXMsIGFuZCB0aGUgcmVhbCBhcmdzIGlzIGluIGFsaWFzLmFyZ3MuCi0gICAgICBpZiAodGhpcy5hcmdzLmFsaWFzKQotICAgICAgICB0aGlzLmFyZ3MgPSB0aGlzLmFyZ3MuYWxpYXMuYXJnczsKLQotICAgICAgaWYgKCF0aGlzLmFyZ3MucGFyYW1zLmxheWVyUmVjdCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGxheWVyIHJlY3QnKTsKLQotICAgICAgdGhpcy5sYXllclJlY3RfID0gdGhpcy5hcmdzLnBhcmFtcy5sYXllclJlY3Q7Ci0gICAgICB0aGlzLnBpY3R1cmVfID0gbmV3IFBpY3R1cmUodGhpcy5hcmdzLnNrcDY0LCB0aGlzLmFyZ3MucGFyYW1zLmxheWVyUmVjdCk7Ci0gICAgfSwKLQotICAgIHNldCBwaWN0dXJlKHBpY3R1cmUpIHsKLSAgICAgIHRoaXMucGljdHVyZV8gPSBwaWN0dXJlOwotICAgIH0sCi0KLSAgICBnZXQgY2FuU2F2ZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfLmNhblNhdmU7Ci0gICAgfSwKLQotICAgIGdldCBsYXllclJlY3QoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sYXllclJlY3RfID8gdGhpcy5sYXllclJlY3RfIDogdGhpcy5waWN0dXJlXy5sYXllclJlY3Q7Ci0gICAgfSwKLQotICAgIGdldCBndWlkKCkgewotICAgICAgcmV0dXJuIHRoaXMucGljdHVyZV8uZ3VpZDsKLSAgICB9LAotCi0gICAgZ2V0QmFzZTY0U2twRGF0YTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5waWN0dXJlXy5nZXRCYXNlNjRTa3BEYXRhKCk7Ci0gICAgfSwKLQotICAgIGdldE9wczogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5waWN0dXJlXy5nZXRPcHMoKTsKLSAgICB9LAotCi0gICAgZ2V0T3BUaW1pbmdzOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfLmdldE9wVGltaW5ncygpOwotICAgIH0sCi0KLSAgICB0YWdPcHNXaXRoVGltaW5nczogZnVuY3Rpb24ob3BzKSB7Ci0gICAgICByZXR1cm4gdGhpcy5waWN0dXJlXy50YWdPcHNXaXRoVGltaW5ncyhvcHMpOwotICAgIH0sCi0KLSAgICByYXN0ZXJpemU6IGZ1bmN0aW9uKHBhcmFtcywgcmFzdGVyQ29tcGxldGVDYWxsYmFjaykgewotICAgICAgdGhpcy5waWN0dXJlXy5yYXN0ZXJpemUocGFyYW1zLCByYXN0ZXJDb21wbGV0ZUNhbGxiYWNrKTsKLSAgICB9Ci0gIH07Ci0KLSAgT2JqZWN0U25hcHNob3QucmVnaXN0ZXIoCi0gICAgICBQaWN0dXJlU25hcHNob3QsCi0gICAgICB7dHlwZU5hbWVzOiBbJ2NjOjpQaWN0dXJlJ119KTsKLQotICByZXR1cm4gewotICAgIFBpY3R1cmVTbmFwc2hvdDogUGljdHVyZVNuYXBzaG90LAotICAgIFBpY3R1cmU6IFBpY3R1cmUsCi0gICAgTGF5ZXJlZFBpY3R1cmU6IExheWVyZWRQaWN0dXJlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX2RlYnVnZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNjNlMDguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uva2V5X2V2ZW50X21hbmFnZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZHJhZ19oYW5kbGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvaW5mb19iYXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvbGlzdF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL21vdXNlX21vZGVfc2VsZWN0b3IuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvb3ZlcmxheS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KLQotPHRlbXBsYXRlIGlkPSJwaWN0dXJlLWRlYnVnZ2VyLXRlbXBsYXRlIj4KLSAgPHN0eWxlPgotICAqIC9kZWVwLyBwaWN0dXJlLWRlYnVnZ2VyIHsKLSAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gIH0KLQotICAqIC9kZWVwLyBwaWN0dXJlLWRlYnVnZ2VyID4gdHItYy1hLWdlbmVyaWMtb2JqZWN0LXZpZXcgewotICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgd2lkdGg6IDQwMHB4OwotICB9Ci0KLSAgKiAvZGVlcC8gcGljdHVyZS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgewotICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Ci0gICAgbWluLXdpZHRoOiAzMDBweDsKLSAgfQotCi0gICogL2RlZXAvIHBpY3R1cmUtZGVidWdnZXIgPiBsZWZ0LXBhbmVsID4gcGljdHVyZS1pbmZvIHsKLSAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOwotICAgIHBhZGRpbmctdG9wOiAycHg7Ci0gIH0KLQotICAqIC9kZWVwLyBwaWN0dXJlLWRlYnVnZ2VyID4gbGVmdC1wYW5lbCA+IHBpY3R1cmUtaW5mbyAudGl0bGUgewotICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgIG1hcmdpbi1sZWZ0OiA1cHg7Ci0gICAgbWFyZ2luLXJpZ2h0OiA1cHg7Ci0gIH0KLQotICAqIC9kZWVwLyBwaWN0dXJlLWRlYnVnZ2VyID4geC1kcmFnLWhhbmRsZSB7Ci0gICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKLSAgfQotCi0gICogL2RlZXAvIHBpY3R1cmUtZGVidWdnZXIgLmZpbGVuYW1lIHsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotICAgIG1hcmdpbi1sZWZ0OiA1cHg7Ci0gIH0KLQotICAqIC9kZWVwLyBwaWN0dXJlLWRlYnVnZ2VyID4gcmlnaHQtcGFuZWwgewotICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKLSAgfQotCi0gICogL2RlZXAvIHBpY3R1cmUtZGVidWdnZXIgPiByaWdodC1wYW5lbCA+IHBpY3R1cmUtb3BzLWNoYXJ0LXZpZXcgewotICAgIG1pbi1oZWlnaHQ6IDE1MHB4OwotICAgIG1pbi13aWR0aCA6IDA7Ci0gICAgb3ZlcmZsb3cteDogYXV0bzsKLSAgICBvdmVyZmxvdy15OiBoaWRkZW47Ci0gIH0KLQotICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotICAqIC9kZWVwLyByYXN0ZXItYXJlYSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKLSAgICBtaW4taGVpZ2h0OiAyMDBweDsKLSAgICBtaW4td2lkdGg6IDIwMHB4OwotICAgIG92ZXJmbG93LXk6IGF1dG87Ci0gICAgcGFkZGluZy1sZWZ0OiA1cHg7Ci0gIH0KLSAgPC9zdHlsZT4KLQotICA8bGVmdC1wYW5lbD4KLSAgICA8cGljdHVyZS1pbmZvPgotICAgICAgPGRpdj4KLSAgICAgICAgPHNwYW4gY2xhc3M9J3RpdGxlJz5Ta2lhIFBpY3R1cmU8L3NwYW4+Ci0gICAgICAgIDxzcGFuIGNsYXNzPSdzaXplJz48L3NwYW4+Ci0gICAgICA8L2Rpdj4KLSAgICAgIDxkaXY+Ci0gICAgICAgIDxpbnB1dCBjbGFzcz0nZmlsZW5hbWUnIHR5cGU9J3RleHQnIHZhbHVlPSdza3BpY3R1cmUuc2twJyAvPgotICAgICAgICA8YnV0dG9uIGNsYXNzPSdleHBvcnQnPkV4cG9ydDwvYnV0dG9uPgotICAgICAgPC9kaXY+Ci0gICAgPC9waWN0dXJlLWluZm8+Ci0gIDwvbGVmdC1wYW5lbD4KLSAgPHJpZ2h0LXBhbmVsPgotICAgIDxwaWN0dXJlLW9wcy1jaGFydC12aWV3PjwvcGljdHVyZS1vcHMtY2hhcnQtdmlldz4KLSAgICA8cmFzdGVyLWFyZWE+PGNhbnZhcz48L2NhbnZhcz48L3Jhc3Rlci1hcmVhPgotICA8L3JpZ2h0LXBhbmVsPgotPC90ZW1wbGF0ZT4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OwotCi0gIC8qKgotICAgKiBQaWN0dXJlRGVidWdnZXIgaXMgYSB2aWV3IG9mIGEgUGljdHVyZVNuYXBzaG90IGZvciBpbnNwZWN0aW5nCi0gICAqIHRoZSBwaWN0dXJlIGluIGRldGFpbC4gKGUuZy4sIHRpbWluZyBpbmZvcm1hdGlvbiwgZXRjLikKLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgUGljdHVyZURlYnVnZ2VyID0gdHIuYi51aS5kZWZpbmUoJ3BpY3R1cmUtZGVidWdnZXInKTsKLQotICBQaWN0dXJlRGVidWdnZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBub2RlID0gdHIuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjcGljdHVyZS1kZWJ1Z2dlci10ZW1wbGF0ZScsCi0gICAgICAgICAgVEhJU19ET0MpOwotCi0gICAgICB0aGlzLmFwcGVuZENoaWxkKG5vZGUpOwotCi0gICAgICB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnNob3dPdmVyZHJhd18gPSBmYWxzZTsKLSAgICAgIHRoaXMuem9vbVNjYWxlVmFsdWVfID0gMTsKLQotICAgICAgdGhpcy5zaXplSW5mb18gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5zaXplJyk7Ci0gICAgICB0aGlzLnJhc3RlckFyZWFfID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdyYXN0ZXItYXJlYScpOwotICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfID0gdGhpcy5yYXN0ZXJBcmVhXy5xdWVyeVNlbGVjdG9yKCdjYW52YXMnKTsKLSAgICAgIHRoaXMucmFzdGVyQ3R4XyA9IHRoaXMucmFzdGVyQ2FudmFzXy5nZXRDb250ZXh0KCcyZCcpOwotCi0gICAgICB0aGlzLmZpbGVuYW1lXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLmZpbGVuYW1lJyk7Ci0KLSAgICAgIHRoaXMuZHJhd09wc0NoYXJ0U3VtbWFyeVZpZXdfID0gbmV3IHRyLmUuY2MuUGljdHVyZU9wc0NoYXJ0U3VtbWFyeVZpZXcoKTsKLSAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18gPSBuZXcgdHIuZS5jYy5QaWN0dXJlT3BzQ2hhcnRWaWV3KCk7Ci0gICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgdGhpcy5vbkNoYXJ0QmFyQ2xpY2tlZF8uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHRoaXMuZXhwb3J0QnV0dG9uXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLmV4cG9ydCcpOwotICAgICAgdGhpcy5leHBvcnRCdXR0b25fLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgJ2NsaWNrJywgdGhpcy5vblNhdmVBc1NrUGljdHVyZUNsaWNrZWRfLmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLnRyYWNrTW91c2VfKCk7Ci0KLSAgICAgIHZhciBvdmVyZHJhd0NoZWNrYm94ID0gdHIuYi51aS5jcmVhdGVDaGVja0JveCgKLSAgICAgICAgICB0aGlzLCAnc2hvd092ZXJkcmF3JywKLSAgICAgICAgICAncGljdHVyZVZpZXcuc2hvd092ZXJkcmF3JywgZmFsc2UsCi0gICAgICAgICAgJ1Nob3cgb3ZlcmRyYXcnKTsKLQotICAgICAgdmFyIGNoYXJ0Q2hlY2tib3ggPSB0ci5iLnVpLmNyZWF0ZUNoZWNrQm94KAotICAgICAgICAgIHRoaXMsICdzaG93U3VtbWFyeUNoYXJ0JywKLSAgICAgICAgICAncGljdHVyZVZpZXcuc2hvd1N1bW1hcnlDaGFydCcsIGZhbHNlLAotICAgICAgICAgICdTaG93IHRpbWluZyBzdW1tYXJ5Jyk7Ci0KLSAgICAgIHZhciBwaWN0dXJlSW5mbyA9IHRoaXMucXVlcnlTZWxlY3RvcigncGljdHVyZS1pbmZvJyk7Ci0gICAgICBwaWN0dXJlSW5mby5hcHBlbmRDaGlsZChvdmVyZHJhd0NoZWNrYm94KTsKLSAgICAgIHBpY3R1cmVJbmZvLmFwcGVuZENoaWxkKGNoYXJ0Q2hlY2tib3gpOwotCi0gICAgICB0aGlzLmRyYXdPcHNWaWV3XyA9IG5ldyB0ci5lLmNjLlBpY3R1cmVPcHNMaXN0VmlldygpOwotICAgICAgdGhpcy5kcmF3T3BzVmlld18uYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICAgICAnc2VsZWN0aW9uLWNoYW5nZWQnLCB0aGlzLm9uQ2hhbmdlRHJhd09wc18uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHZhciBsZWZ0UGFuZWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ2xlZnQtcGFuZWwnKTsKLSAgICAgIGxlZnRQYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmRyYXdPcHNDaGFydFN1bW1hcnlWaWV3Xyk7Ci0gICAgICBsZWZ0UGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5kcmF3T3BzVmlld18pOwotCi0gICAgICB2YXIgbWlkZGxlRHJhZ0hhbmRsZSA9IG5ldyB0ci5iLnVpLkRyYWdIYW5kbGUoKTsKLSAgICAgIG1pZGRsZURyYWdIYW5kbGUuaG9yaXpvbnRhbCA9IGZhbHNlOwotICAgICAgbWlkZGxlRHJhZ0hhbmRsZS50YXJnZXQgPSBsZWZ0UGFuZWw7Ci0KLSAgICAgIHZhciByaWdodFBhbmVsID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdyaWdodC1wYW5lbCcpOwotICAgICAgcmlnaHRQYW5lbC5yZXBsYWNlQ2hpbGQoCi0gICAgICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRWaWV3XywKLSAgICAgICAgICByaWdodFBhbmVsLnF1ZXJ5U2VsZWN0b3IoJ3BpY3R1cmUtb3BzLWNoYXJ0LXZpZXcnKSk7Ci0KLSAgICAgIHRoaXMuaW5mb0Jhcl8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1iLXVpLWluZm8tYmFyJyk7Ci0gICAgICB0aGlzLnJhc3RlckFyZWFfLmFwcGVuZENoaWxkKHRoaXMuaW5mb0Jhcl8pOwotCi0gICAgICB0aGlzLmluc2VydEJlZm9yZShtaWRkbGVEcmFnSGFuZGxlLCByaWdodFBhbmVsKTsKLQotICAgICAgdGhpcy5waWN0dXJlXyA9IHVuZGVmaW5lZDsKLQotICAgICAgdHIuYi5LZXlFdmVudE1hbmFnZXIuaW5zdGFuY2UuYWRkTGlzdGVuZXIoCi0gICAgICAgICAgJ2tleXByZXNzJywgdGhpcy5vbktleVByZXNzXywgdGhpcyk7Ci0KLSAgICAgIC8vIEFkZCBhIG11dGF0aW9uIG9ic2VydmVyIHNvIHRoYXQgd2hlbiB0aGUgdmlldyBpcyByZXNpemVkIHdlIGNhbgotICAgICAgLy8gdXBkYXRlIHRoZSBjaGFydCBzdW1tYXJ5IHZpZXcuCi0gICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXJfID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoCi0gICAgICAgICAgdGhpcy5vbk11dGF0aW9uXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlcl8ub2JzZXJ2ZShsZWZ0UGFuZWwsIHsgYXR0cmlidXRlczogdHJ1ZSB9KTsKLSAgICB9LAotCi0gICAgb25LZXlQcmVzc186IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmIChlLmtleUNvZGUgPT0gJ2gnLmNoYXJDb2RlQXQoMCkpIHsKLSAgICAgICAgdGhpcy5tb3ZlU2VsZWN0ZWRPcEJ5KC0xKTsKLSAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT0gJ2wnLmNoYXJDb2RlQXQoMCkpIHsKLSAgICAgICAgdGhpcy5tb3ZlU2VsZWN0ZWRPcEJ5KDEpOwotICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG9uTXV0YXRpb25fOiBmdW5jdGlvbihtdXRhdGlvbnMpIHsKLQotICAgICAgZm9yICh2YXIgbSA9IDA7IG0gPCBtdXRhdGlvbnMubGVuZ3RoOyBtKyspIHsKLSAgICAgICAgLy8gQSBzdHlsZSBjaGFuZ2Ugd291bGQgaW5kaWNhdGUgdGhhdCB0aGUgZWxlbWVudCBoYXMgcmVzaXplZAotICAgICAgICAvLyBzbyB3ZSBzaG91bGQgcmUtcmVuZGVyIHRoZSBjaGFydC4KLSAgICAgICAgaWYgKG11dGF0aW9uc1ttXS5hdHRyaWJ1dGVOYW1lID09PSAnc3R5bGUnKSB7Ci0gICAgICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRTdW1tYXJ5Vmlld18ucmVxdWlyZXNSZWRyYXcgPSB0cnVlOwotICAgICAgICAgIHRoaXMuZHJhd09wc0NoYXJ0U3VtbWFyeVZpZXdfLnVwZGF0ZUNoYXJ0Q29udGVudHMoKTsKLQotICAgICAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18uZGltZW5zaW9uc0hhdmVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLnVwZGF0ZUNoYXJ0Q29udGVudHMoKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICBvblNhdmVBc1NrUGljdHVyZUNsaWNrZWRfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIERlY29kZSBiYXNlNjQgZGF0YSBpbnRvIGEgU3RyaW5nCi0gICAgICB2YXIgcmF3RGF0YSA9IGF0b2IodGhpcy5waWN0dXJlXy5nZXRCYXNlNjRTa3BEYXRhKCkpOwotCi0gICAgICAvLyBDb252ZXJ0IHRoaXMgU3RyaW5nIGludG8gYW4gVWludDhBcnJheQotICAgICAgdmFyIGxlbmd0aCA9IHJhd0RhdGEubGVuZ3RoOwotICAgICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbmd0aCk7Ci0gICAgICB2YXIgdWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTsKLSAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgbGVuZ3RoOyBjKyspCi0gICAgICAgIHVpbnQ4QXJyYXlbY10gPSByYXdEYXRhLmNoYXJDb2RlQXQoYyk7Ci0KLSAgICAgIC8vIENyZWF0ZSBhIGJsb2IgVVJMIGZyb20gdGhlIGJpbmFyeSBhcnJheS4KLSAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3VpbnQ4QXJyYXldLCB7dHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LWJpbmFyeSd9KTsKLSAgICAgIHZhciBibG9iVXJsID0gd2luZG93LndlYmtpdFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7Ci0KLSAgICAgIC8vIENyZWF0ZSBhIGxpbmsgYW5kIGNsaWNrIG9uIGl0LiBCRVNUIEFQSSBFVkFSIQotICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnYScpOwotICAgICAgbGluay5ocmVmID0gYmxvYlVybDsKLSAgICAgIGxpbmsuZG93bmxvYWQgPSB0aGlzLmZpbGVuYW1lXy52YWx1ZTsKLSAgICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50cycpOwotICAgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoCi0gICAgICAgICAgJ2NsaWNrJywgdHJ1ZSwgZmFsc2UsIHdpbmRvdywgMCwgMCwgMCwgMCwgMCwKLSAgICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgbnVsbCk7Ci0gICAgICBsaW5rLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgIH0sCi0KLSAgICBnZXQgcGljdHVyZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfOwotICAgIH0sCi0KLSAgICBzZXQgcGljdHVyZShwaWN0dXJlKSB7Ci0gICAgICB0aGlzLmRyYXdPcHNWaWV3Xy5waWN0dXJlID0gcGljdHVyZTsKLSAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18ucGljdHVyZSA9IHBpY3R1cmU7Ci0gICAgICB0aGlzLmRyYXdPcHNDaGFydFN1bW1hcnlWaWV3Xy5waWN0dXJlID0gcGljdHVyZTsKLSAgICAgIHRoaXMucGljdHVyZV8gPSBwaWN0dXJlOwotCi0gICAgICB0aGlzLmV4cG9ydEJ1dHRvbl8uZGlzYWJsZWQgPSAhdGhpcy5waWN0dXJlXy5jYW5TYXZlOwotCi0gICAgICBpZiAocGljdHVyZSkgewotICAgICAgICB2YXIgc2l6ZSA9IHRoaXMuZ2V0UmFzdGVyQ2FudmFzU2l6ZV8oKTsKLSAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLndpZHRoID0gc2l6ZS53aWR0aDsKLSAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLmhlaWdodCA9IHNpemUuaGVpZ2h0OwotICAgICAgfQotCi0gICAgICB2YXIgYm91bmRzID0gdGhpcy5yYXN0ZXJBcmVhXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciBzZWxlY3RvckJvdW5kcyA9IHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8ucG9zID0gewotICAgICAgICB4OiAoYm91bmRzLnJpZ2h0IC0gc2VsZWN0b3JCb3VuZHMud2lkdGggLSAxMCksCi0gICAgICAgIHk6IGJvdW5kcy50b3AKLSAgICAgIH07Ci0KLSAgICAgIHRoaXMucmFzdGVyaXplXygpOwotCi0gICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIGdldFJhc3RlckNhbnZhc1NpemVfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmFzdGVyQXJlYV8pOwotICAgICAgdmFyIHdpZHRoID0KLSAgICAgICAgICBNYXRoLm1heChwYXJzZUludChzdHlsZS53aWR0aCksIHRoaXMucGljdHVyZV8ubGF5ZXJSZWN0LndpZHRoKTsKLSAgICAgIHZhciBoZWlnaHQgPQotICAgICAgICAgIE1hdGgubWF4KHBhcnNlSW50KHN0eWxlLmhlaWdodCksIHRoaXMucGljdHVyZV8ubGF5ZXJSZWN0LmhlaWdodCk7Ci0KLSAgICAgIHJldHVybiB7Ci0gICAgICAgIHdpZHRoOiB3aWR0aCwKLSAgICAgICAgaGVpZ2h0OiBoZWlnaHQKLSAgICAgIH07Ci0gICAgfSwKLQotICAgIHNjaGVkdWxlVXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnVwZGF0ZUNvbnRlbnRzUGVuZGluZ18pCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNQZW5kaW5nXyA9IHRydWU7Ci0gICAgICB0ci5iLnJlcXVlc3RBbmltYXRpb25GcmFtZUluVGhpc0ZyYW1lSWZQb3NzaWJsZSgKLSAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXy5iaW5kKHRoaXMpCi0gICAgICApOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy51cGRhdGVDb250ZW50c1BlbmRpbmdfID0gZmFsc2U7Ci0KLSAgICAgIGlmICh0aGlzLnBpY3R1cmVfKSB7Ci0gICAgICAgIHRoaXMuc2l6ZUluZm9fLnRleHRDb250ZW50ID0gJygnICsKLSAgICAgICAgICAgIHRoaXMucGljdHVyZV8ubGF5ZXJSZWN0LndpZHRoICsgJyB4ICcgKwotICAgICAgICAgICAgdGhpcy5waWN0dXJlXy5sYXllclJlY3QuaGVpZ2h0ICsgJyknOwotICAgICAgfQotCi0gICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLnVwZGF0ZUNoYXJ0Q29udGVudHMoKTsKLSAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18uc2Nyb2xsU2VsZWN0ZWRJdGVtSW50b1ZpZXdJZk5lY2Vzc2FyeSgpOwotCi0gICAgICAvLyBSZXR1cm4gaWYgcGljdHVyZSBoYXNuJ3QgZmluaXNoZWQgcmFzdGVyaXppbmcuCi0gICAgICBpZiAoIXRoaXMucGljdHVyZUFzSW1hZ2VEYXRhXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmluZm9CYXJfLnZpc2libGUgPSBmYWxzZTsKLSAgICAgIHRoaXMuaW5mb0Jhcl8ucmVtb3ZlQWxsQnV0dG9ucygpOwotICAgICAgaWYgKHRoaXMucGljdHVyZUFzSW1hZ2VEYXRhXy5lcnJvcikgewotICAgICAgICB0aGlzLmluZm9CYXJfLm1lc3NhZ2UgPSAnQ2Fubm90IHJhc3Rlcml6ZS4uLic7Ci0gICAgICAgIHRoaXMuaW5mb0Jhcl8uYWRkQnV0dG9uKCdNb3JlIGluZm8uLi4nLCBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgdmFyIG92ZXJsYXkgPSBuZXcgdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgICAgICAgb3ZlcmxheS50ZXh0Q29udGVudCA9IHRoaXMucGljdHVyZUFzSW1hZ2VEYXRhXy5lcnJvcjsKLSAgICAgICAgICBvdmVybGF5LnZpc2libGUgPSB0cnVlOwotICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLmluZm9CYXJfLnZpc2libGUgPSB0cnVlOwotICAgICAgfQotCi0gICAgICB0aGlzLmRyYXdQaWN0dXJlXygpOwotICAgIH0sCi0KLSAgICBkcmF3UGljdHVyZV86IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNpemUgPSB0aGlzLmdldFJhc3RlckNhbnZhc1NpemVfKCk7Ci0gICAgICBpZiAoc2l6ZS53aWR0aCAhPT0gdGhpcy5yYXN0ZXJDYW52YXNfLndpZHRoKQotICAgICAgICB0aGlzLnJhc3RlckNhbnZhc18ud2lkdGggPSBzaXplLndpZHRoOwotICAgICAgaWYgKHNpemUuaGVpZ2h0ICE9PSB0aGlzLnJhc3RlckNhbnZhc18uaGVpZ2h0KQotICAgICAgICB0aGlzLnJhc3RlckNhbnZhc18uaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7Ci0KLSAgICAgIHRoaXMucmFzdGVyQ3R4Xy5jbGVhclJlY3QoMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOwotCi0gICAgICBpZiAoIXRoaXMucGljdHVyZUFzSW1hZ2VEYXRhXy5pbWFnZURhdGEpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGltZ0NhbnZhcyA9IHRoaXMucGljdHVyZUFzSW1hZ2VEYXRhXy5hc0NhbnZhcygpOwotICAgICAgdmFyIHcgPSBpbWdDYW52YXMud2lkdGg7Ci0gICAgICB2YXIgaCA9IGltZ0NhbnZhcy5oZWlnaHQ7Ci0gICAgICB0aGlzLnJhc3RlckN0eF8uZHJhd0ltYWdlKGltZ0NhbnZhcywgMCwgMCwgdywgaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgdyAqIHRoaXMuem9vbVNjYWxlVmFsdWVfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoICogdGhpcy56b29tU2NhbGVWYWx1ZV8pOwotICAgIH0sCi0KLSAgICByYXN0ZXJpemVfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLnBpY3R1cmVfKSB7Ci0gICAgICAgIHRoaXMucGljdHVyZV8ucmFzdGVyaXplKAotICAgICAgICAgICAgewotICAgICAgICAgICAgICBzdG9wSW5kZXg6IHRoaXMuZHJhd09wc1ZpZXdfLnNlbGVjdGVkT3BJbmRleCwKLSAgICAgICAgICAgICAgc2hvd092ZXJkcmF3OiB0aGlzLnNob3dPdmVyZHJhd18KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB0aGlzLm9uUmFzdGVyQ29tcGxldGVfLmJpbmQodGhpcykpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBvblJhc3RlckNvbXBsZXRlXzogZnVuY3Rpb24ocGljdHVyZUFzSW1hZ2VEYXRhKSB7Ci0gICAgICB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8gPSBwaWN0dXJlQXNJbWFnZURhdGE7Ci0gICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIG1vdmVTZWxlY3RlZE9wQnk6IGZ1bmN0aW9uKGluY3JlbWVudCkgewotICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcEluZGV4ID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXggPSAwOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICB0aGlzLnNlbGVjdGVkT3BJbmRleCA9IHRyLmIuY2xhbXAoCi0gICAgICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXggKyBpbmNyZW1lbnQsCi0gICAgICAgICAgMCwgdGhpcy5udW1PcHMpOwotICAgIH0sCi0KLSAgICBnZXQgbnVtT3BzKCkgewotICAgICAgcmV0dXJuIHRoaXMuZHJhd09wc1ZpZXdfLm51bU9wczsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGVkT3BJbmRleCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmRyYXdPcHNWaWV3Xy5zZWxlY3RlZE9wSW5kZXg7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3RlZE9wSW5kZXgoaW5kZXgpIHsKLSAgICAgIHRoaXMuZHJhd09wc1ZpZXdfLnNlbGVjdGVkT3BJbmRleCA9IGluZGV4OwotICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRWaWV3Xy5zZWxlY3RlZE9wSW5kZXggPSBpbmRleDsKLSAgICB9LAotCi0gICAgb25DaGFydEJhckNsaWNrZWRfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLmRyYXdPcHNWaWV3Xy5zZWxlY3RlZE9wSW5kZXggPQotICAgICAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18uc2VsZWN0ZWRPcEluZGV4OwotICAgIH0sCi0KLSAgICBvbkNoYW5nZURyYXdPcHNfOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLnJhc3Rlcml6ZV8oKTsKLSAgICAgIHRoaXMuc2NoZWR1bGVVcGRhdGVDb250ZW50c18oKTsKLQotICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRWaWV3Xy5zZWxlY3RlZE9wSW5kZXggPQotICAgICAgICAgIHRoaXMuZHJhd09wc1ZpZXdfLnNlbGVjdGVkT3BJbmRleDsKLSAgICB9LAotCi0gICAgc2V0IHNob3dPdmVyZHJhdyh2KSB7Ci0gICAgICB0aGlzLnNob3dPdmVyZHJhd18gPSB2OwotICAgICAgdGhpcy5yYXN0ZXJpemVfKCk7Ci0gICAgfSwKLQotICAgIHNldCBzaG93U3VtbWFyeUNoYXJ0KGNoYXJ0U2hvdWxkQmVWaXNpYmxlKSB7Ci0gICAgICBpZiAoY2hhcnRTaG91bGRCZVZpc2libGUpCi0gICAgICAgIHRoaXMuZHJhd09wc0NoYXJ0U3VtbWFyeVZpZXdfLnNob3coKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRTdW1tYXJ5Vmlld18uaGlkZSgpOwotICAgIH0sCi0KLSAgICB0cmFja01vdXNlXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyA9IG5ldyB0ci5iLnVpLk1vdXNlTW9kZVNlbGVjdG9yKHRoaXMucmFzdGVyQXJlYV8pOwotICAgICAgdGhpcy5yYXN0ZXJBcmVhXy5hcHBlbmRDaGlsZCh0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyk7Ci0KLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnN1cHBvcnRlZE1vZGVNYXNrID0KLSAgICAgICAgICB0ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREUuWk9PTTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLm1vZGUgPSB0ci5iLnVpLk1PVVNFX1NFTEVDVE9SX01PREUuWk9PTTsKLSAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmRlZmF1bHRNb2RlID0gdHIuYi51aS5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT007Ci0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXR0aW5nc0tleSA9ICdwaWN0dXJlRGVidWdnZXIubW91c2VNb2RlU2VsZWN0b3InOwotCi0gICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnpvb20nLAotICAgICAgICAgIHRoaXMub25CZWdpblpvb21fLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlem9vbScsCi0gICAgICAgICAgdGhpcy5vblVwZGF0ZVpvb21fLmJpbmQodGhpcykpOwotICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW5kem9vbScsCi0gICAgICAgICAgdGhpcy5vbkVuZFpvb21fLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICBvbkJlZ2luWm9vbV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIHRoaXMuaXNab29taW5nXyA9IHRydWU7Ci0KLSAgICAgIHRoaXMubGFzdE1vdXNlVmlld1Bvc18gPSB0aGlzLmV4dHJhY3RSZWxhdGl2ZU1vdXNlUG9zaXRpb25fKGUpOwotCi0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfSwKLQotICAgIG9uVXBkYXRlWm9vbV86IGZ1bmN0aW9uKGUpIHsKLSAgICAgIGlmICghdGhpcy5pc1pvb21pbmdfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBjdXJyZW50TW91c2VWaWV3UG9zID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKLQotICAgICAgLy8gVGFrZSB0aGUgZGlzdGFuY2UgdGhlIG1vdXNlIGhhcyBtb3ZlZCBhbmQgd2Ugd2FudCB0byB6b29tIGF0IGFib3V0Ci0gICAgICAvLyAxLzEwMDB0aCBvZiB0aGF0IHNwZWVkLiAwLjAxIGZlZWxzIGp1bXB5LiBUaGlzIGNvdWxkIHBvc3NpYmx5IGJlIHR1bmVkCi0gICAgICAvLyBtb3JlIGlmIHBlb3BsZSBmZWVsIGl0J3MgdG9vIHNsb3cuCi0gICAgICB0aGlzLnpvb21TY2FsZVZhbHVlXyArPQotICAgICAgICAgICgodGhpcy5sYXN0TW91c2VWaWV3UG9zXy55IC0gY3VycmVudE1vdXNlVmlld1Bvcy55KSAqIDAuMDAxKTsKLSAgICAgIHRoaXMuem9vbVNjYWxlVmFsdWVfID0gTWF0aC5tYXgodGhpcy56b29tU2NhbGVWYWx1ZV8sIDAuMSk7Ci0KLSAgICAgIHRoaXMuZHJhd1BpY3R1cmVfKCk7Ci0KLSAgICAgIHRoaXMubGFzdE1vdXNlVmlld1Bvc18gPSBjdXJyZW50TW91c2VWaWV3UG9zOwotICAgIH0sCi0KLSAgICBvbkVuZFpvb21fOiBmdW5jdGlvbihlKSB7Ci0gICAgICB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5pc1pvb21pbmdfID0gZmFsc2U7Ci0gICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfSwKLQotICAgIGV4dHJhY3RSZWxhdGl2ZU1vdXNlUG9zaXRpb25fOiBmdW5jdGlvbihlKSB7Ci0gICAgICByZXR1cm4gewotICAgICAgICB4OiBlLmNsaWVudFggLSB0aGlzLnJhc3RlckFyZWFfLm9mZnNldExlZnQsCi0gICAgICAgIHk6IGUuY2xpZW50WSAtIHRoaXMucmFzdGVyQXJlYV8ub2Zmc2V0VG9wCi0gICAgICB9OwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFBpY3R1cmVEZWJ1Z2dlcjogUGljdHVyZURlYnVnZ2VyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTgzOWJhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX2RlYnVnZ2VyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX2RlYnVnZ2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcGljdHVyZSA9IG5ldyB0ci5lLmNjLlBpY3R1cmVTbmFwc2hvdCh7aWQ6ICczMTQxNSd9LCAxMCwgewotICAgICAgJ3BhcmFtcyc6IHsKLSAgICAgICAgJ29wYXF1ZV9yZWN0JzogWy0xNSwgLTE1LCAwLCAwXSwKLSAgICAgICAgJ2xheWVyX3JlY3QnOiBbLTE1LCAtMTUsIDQ2LCA4MzNdCi0gICAgICB9LAotICAgICAgJ3NrcDY0JzogJ0RBQUFBSFlFQUFEekFRQUFCd0FBQUFGa1lXVnk4QUFBQUFnQUFCNERBQUFBREFBQUlBQUFnRDhBQUlBL0NBQUFIZ01BQUFBY0FBQURBQUFBQUFBQUFBQUF3STVFQUlENVF3RUFBQURvQUFBQUNBQUFIZ01BQUFBTUFBQWpBQUFBQUFBQUFBQU1BQUFqQUFBQUFBQUFBQUFjQUFBREFBQUFBQUFBQUFBQXdJNUVBSUQ1UXdFQUFBRGtBQUFBR0FBQUZRRUFBQUFBQUFBQUFBQUFBQURBamtRQWdQbERHQUFBRlFJQUFBQUFBQUFBQUFBQUFBREFqa1FBZ1BsRENBQUFIZ01BQUFBY0FBQURBQUFBQUFBQUFBQUF3STVFQUlENVF3RUFBQURnQUFBQUdBQUFGUU1BQUFBQUFLQkFBQUNnUUFBQWdFSUFBSUJDQkFBQUhBUUFBQndFQUFBY0JBQUFISFJqWVdZQkFBQUFEVk5yVTNKaldHWmxjbTF2WkdWalpuQjBBQUFBQUhsaGNtR2dBQUFBSUhSdWNBTUFBQUFBQUVCQkFBQ0FQd0FBQUFBQUFJQS9BQUFBQUFBQWdFQUFBUC8vQURBQkFBQUFBQUFBQUVCQkFBQ0FQd0FBQUFBQUFJQS9BQUFBQUFBQWdFRC8vLy8vQWpBQkFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUVFQUFJQS9BQUFBQUFBQWdEOEFBQUFBQUFDQVFQOEFBUDhBTUFFQUFBQUFBQ0JtYjJVPScgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICB9KTsKLSAgICBwaWN0dXJlLnByZUluaXRpYWxpemUoKTsKLSAgICBwaWN0dXJlLmluaXRpYWxpemUoKTsKLQotICAgIHZhciBkYmcgPSBuZXcgdHIuZS5jYy5QaWN0dXJlRGVidWdnZXIoKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGJnKTsKLSAgICBkYmcucGljdHVyZSA9IHBpY3R1cmU7Ci0gICAgZGJnLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF9zdW1tYXJ5X3ZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWI2ZjNiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF9zdW1tYXJ5X3ZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0qIC9kZWVwLyBwaWN0dXJlLW9wcy1jaGFydC1zdW1tYXJ5LXZpZXcgewotICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOwotICBmb250LXNpemU6IDA7Ci0gIG1hcmdpbjogMDsKLSAgbWluLWhlaWdodDogMjAwcHg7Ci0gIG1pbi13aWR0aDogMjAwcHg7Ci0gIG92ZXJmbG93OiBoaWRkZW47Ci0gIHBhZGRpbmc6IDA7Ci19Ci0KLSogL2RlZXAvIHBpY3R1cmUtb3BzLWNoYXJ0LXN1bW1hcnktdmlldy5oaWRkZW4gewotICBkaXNwbGF5OiBub25lOwotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3N1bW1hcnlfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3N1bW1hcnlfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzM5ZGQyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF9zdW1tYXJ5X3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IgotaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3LmNzcyI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmNjJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBPUFNfVElNSU5HX0lURVJBVElPTlMgPSAzOwotICB2YXIgQ0hBUlRfUEFERElOR19MRUZUID0gNjU7Ci0gIHZhciBDSEFSVF9QQURESU5HX1JJR0hUID0gNDA7Ci0gIHZhciBBWElTX1BBRERJTkdfTEVGVCA9IDYwOwotICB2YXIgQVhJU19QQURESU5HX1JJR0hUID0gMzU7Ci0gIHZhciBBWElTX1BBRERJTkdfVE9QID0gMjU7Ci0gIHZhciBBWElTX1BBRERJTkdfQk9UVE9NID0gNDU7Ci0gIHZhciBBWElTX0xBQkVMX1BBRERJTkcgPSA1OwotICB2YXIgQVhJU19USUNLX1NJWkUgPSAxMDsKLSAgdmFyIExBQkVMX1BBRERJTkcgPSA1OwotICB2YXIgTEFCRUxfSU5URVJMRUFWRV9PRkZTRVQgPSAxNTsKLSAgdmFyIEJBUl9QQURESU5HID0gNTsKLSAgdmFyIFZFUlRJQ0FMX1RJQ0tTID0gNTsKLSAgdmFyIEhVRV9DSEFSX0NPREVfQURKVVNUTUVOVCA9IDUuNzsKLQotICAvKioKLSAgICogUHJvdmlkZXMgYSBjaGFydCBzaG93aW5nIHRoZSBjdW11bGF0aXZlIHRpbWUgc3BlbnQgaW4gU2tpYSBvcGVyYXRpb25zCi0gICAqIGR1cmluZyBwaWN0dXJlIHJhc3Rlcml6YXRpb24uCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIFBpY3R1cmVPcHNDaGFydFN1bW1hcnlWaWV3ID0gdHIuYi51aS5kZWZpbmUoCi0gICAgICAncGljdHVyZS1vcHMtY2hhcnQtc3VtbWFyeS12aWV3Jyk7Ci0KLSAgUGljdHVyZU9wc0NoYXJ0U3VtbWFyeVZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucGljdHVyZV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnBpY3R1cmVEYXRhUHJvY2Vzc2VkXyA9IGZhbHNlOwotCi0gICAgICB0aGlzLmNoYXJ0U2NhbGVfID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87Ci0KLSAgICAgIHRoaXMuY2hhcnRfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4XyA9IHRoaXMuY2hhcnRfLmdldENvbnRleHQoJzJkJyk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuY2hhcnRfKTsKLQotICAgICAgdGhpcy5vcHNUaW1pbmdEYXRhXyA9IFtdOwotCi0gICAgICB0aGlzLmNoYXJ0V2lkdGhfID0gMDsKLSAgICAgIHRoaXMuY2hhcnRIZWlnaHRfID0gMDsKLSAgICAgIHRoaXMucmVxdWlyZXNSZWRyYXdfID0gdHJ1ZTsKLQotICAgICAgdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9IG51bGw7Ci0KLSAgICAgIHRoaXMuY2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICBnZXQgcmVxdWlyZXNSZWRyYXcoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yZXF1aXJlc1JlZHJhd187Ci0gICAgfSwKLQotICAgIHNldCByZXF1aXJlc1JlZHJhdyhyZXF1aXJlc1JlZHJhdykgewotICAgICAgdGhpcy5yZXF1aXJlc1JlZHJhd18gPSByZXF1aXJlc1JlZHJhdzsKLSAgICB9LAotCi0gICAgZ2V0IHBpY3R1cmUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5waWN0dXJlXzsKLSAgICB9LAotCi0gICAgc2V0IHBpY3R1cmUocGljdHVyZSkgewotICAgICAgdGhpcy5waWN0dXJlXyA9IHBpY3R1cmU7Ci0gICAgICB0aGlzLnBpY3R1cmVEYXRhUHJvY2Vzc2VkXyA9IGZhbHNlOwotCi0gICAgICBpZiAodGhpcy5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMucHJvY2Vzc1BpY3R1cmVEYXRhXygpOwotICAgICAgdGhpcy5yZXF1aXJlc1JlZHJhdyA9IHRydWU7Ci0gICAgICB0aGlzLnVwZGF0ZUNoYXJ0Q29udGVudHMoKTsKLSAgICB9LAotCi0gICAgaGlkZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOwotICAgIH0sCi0KLSAgICBzaG93OiBmdW5jdGlvbigpIHsKLQotICAgICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKLQotICAgICAgaWYgKHRoaXMucGljdHVyZURhdGFQcm9jZXNzZWRfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMucHJvY2Vzc1BpY3R1cmVEYXRhXygpOwotICAgICAgdGhpcy5yZXF1aXJlc1JlZHJhdyA9IHRydWU7Ci0gICAgICB0aGlzLnVwZGF0ZUNoYXJ0Q29udGVudHMoKTsKLQotICAgIH0sCi0KLSAgICBvbk1vdXNlTW92ZV86IGZ1bmN0aW9uKGUpIHsKLQotICAgICAgdmFyIGxhc3RCYXJNb3VzZU92ZXJUYXJnZXQgPSB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfOwotICAgICAgdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9IG51bGw7Ci0KLSAgICAgIHZhciB4ID0gZS5vZmZzZXRYOwotICAgICAgdmFyIHkgPSBlLm9mZnNldFk7Ci0KLSAgICAgIHZhciBjaGFydExlZnQgPSBDSEFSVF9QQURESU5HX0xFRlQ7Ci0gICAgICB2YXIgY2hhcnRSaWdodCA9IHRoaXMuY2hhcnRXaWR0aF8gLSBDSEFSVF9QQURESU5HX1JJR0hUOwotICAgICAgdmFyIGNoYXJ0VG9wID0gQVhJU19QQURESU5HX1RPUDsKLSAgICAgIHZhciBjaGFydEJvdHRvbSA9IHRoaXMuY2hhcnRIZWlnaHRfIC0gQVhJU19QQURESU5HX0JPVFRPTTsKLSAgICAgIHZhciBjaGFydElubmVyV2lkdGggPSBjaGFydFJpZ2h0IC0gY2hhcnRMZWZ0OwotCi0gICAgICBpZiAoeCA+IGNoYXJ0TGVmdCAmJiB4IDwgY2hhcnRSaWdodCAmJiB5ID4gY2hhcnRUb3AgJiYgeSA8IGNoYXJ0Qm90dG9tKSB7Ci0KLSAgICAgICAgdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9IE1hdGguZmxvb3IoCi0gICAgICAgICAgICAoeCAtIGNoYXJ0TGVmdCkgLyBjaGFydElubmVyV2lkdGggKiB0aGlzLm9wc1RpbWluZ0RhdGFfLmxlbmd0aCk7Ci0KLSAgICAgICAgdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9IHRyLmIuY2xhbXAoCi0gICAgICAgICAgICB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfLCAwLCB0aGlzLm9wc1RpbWluZ0RhdGFfLmxlbmd0aCAtIDEpOwotCi0gICAgICB9Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID09PSBsYXN0QmFyTW91c2VPdmVyVGFyZ2V0KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuZHJhd0NoYXJ0Q29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNoYXJ0Q29udGVudHM6IGZ1bmN0aW9uKCkgewotCi0gICAgICBpZiAodGhpcy5yZXF1aXJlc1JlZHJhdykKLSAgICAgICAgdGhpcy51cGRhdGVDaGFydERpbWVuc2lvbnNfKCk7Ci0KLSAgICAgIHRoaXMuZHJhd0NoYXJ0Q29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNoYXJ0RGltZW5zaW9uc186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jaGFydFdpZHRoXyA9IHRoaXMub2Zmc2V0V2lkdGg7Ci0gICAgICB0aGlzLmNoYXJ0SGVpZ2h0XyA9IHRoaXMub2Zmc2V0SGVpZ2h0OwotCi0gICAgICAvLyBTY2FsZSB1cCB0aGUgY2FudmFzIGFjY29yZGluZyB0byB0aGUgZGV2aWNlUGl4ZWxSYXRpbywgdGhlbiByZWR1Y2UgaXQKLSAgICAgIC8vIGRvd24gYWdhaW4gdmlhIENTUy4gRmluYWxseSB3ZSBhcHBseSBhIHNjYWxlIHRvIHRoZSBjYW52YXMgc28gdGhhdAotICAgICAgLy8gdGhpbmdzIGFyZSBkcmF3biBhdCB0aGUgY29ycmVjdCBzaXplLgotICAgICAgdGhpcy5jaGFydF8ud2lkdGggPSB0aGlzLmNoYXJ0V2lkdGhfICogdGhpcy5jaGFydFNjYWxlXzsKLSAgICAgIHRoaXMuY2hhcnRfLmhlaWdodCA9IHRoaXMuY2hhcnRIZWlnaHRfICogdGhpcy5jaGFydFNjYWxlXzsKLQotICAgICAgdGhpcy5jaGFydF8uc3R5bGUud2lkdGggPSB0aGlzLmNoYXJ0V2lkdGhfICsgJ3B4JzsKLSAgICAgIHRoaXMuY2hhcnRfLnN0eWxlLmhlaWdodCA9IHRoaXMuY2hhcnRIZWlnaHRfICsgJ3B4JzsKLQotICAgICAgdGhpcy5jaGFydEN0eF8uc2NhbGUodGhpcy5jaGFydFNjYWxlXywgdGhpcy5jaGFydFNjYWxlXyk7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NQaWN0dXJlRGF0YV86IGZ1bmN0aW9uKCkgewotCi0gICAgICB0aGlzLnJlc2V0T3BzVGltaW5nRGF0YV8oKTsKLSAgICAgIHRoaXMucGljdHVyZURhdGFQcm9jZXNzZWRfID0gdHJ1ZTsKLQotICAgICAgaWYgKCF0aGlzLnBpY3R1cmVfKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBvcHMgPSB0aGlzLnBpY3R1cmVfLmdldE9wcygpOwotICAgICAgaWYgKCFvcHMpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgb3BzID0gdGhpcy5waWN0dXJlXy50YWdPcHNXaXRoVGltaW5ncyhvcHMpOwotCi0gICAgICAvLyBDaGVjayB0aGF0IHRoZXJlIGFyZSB2YWxpZCB0aW1lcy4KLSAgICAgIGlmIChvcHNbMF0uY21kX3RpbWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmNvbGxhcHNlT3BzVG9UaW1pbmdCdWNrZXRzXyhvcHMpOwotICAgIH0sCi0KLSAgICBkcmF3Q2hhcnRDb250ZW50c186IGZ1bmN0aW9uKCkgewotCi0gICAgICB0aGlzLmNsZWFyQ2hhcnRDb250ZW50c18oKTsKLQotICAgICAgaWYgKHRoaXMub3BzVGltaW5nRGF0YV8ubGVuZ3RoID09PSAwKSB7Ci0gICAgICAgIHRoaXMuc2hvd05vVGltaW5nRGF0YU1lc3NhZ2VfKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdGhpcy5kcmF3Q2hhcnRBeGVzXygpOwotICAgICAgdGhpcy5kcmF3QmFyc18oKTsKLSAgICAgIHRoaXMuZHJhd0xpbmVBdEJvdHRvbU9mQ2hhcnRfKCk7Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID09PSBudWxsKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuZHJhd1Rvb2x0aXBfKCk7Ci0gICAgfSwKLQotICAgIGRyYXdMaW5lQXRCb3R0b21PZkNoYXJ0XzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2VTdHlsZSA9ICcjQUFBJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLm1vdmVUbygwLCB0aGlzLmNoYXJ0SGVpZ2h0XyAtIDAuNSk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5saW5lVG8odGhpcy5jaGFydFdpZHRoXywgdGhpcy5jaGFydEhlaWdodF8gLSAwLjUpOwotICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlKCk7Ci0gICAgfSwKLQotICAgIGRyYXdUb29sdGlwXzogZnVuY3Rpb24oKSB7Ci0KLSAgICAgIHZhciB0b29sdGlwRGF0YSA9IHRoaXMub3BzVGltaW5nRGF0YV9bdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0X107Ci0gICAgICB2YXIgdG9vbHRpcFRpdGxlID0gdG9vbHRpcERhdGEuY21kX3N0cmluZzsKLSAgICAgIHZhciB0b29sdGlwVGltZSA9IHRvb2x0aXBEYXRhLmNtZF90aW1lLnRvRml4ZWQoNCk7Ci0KLSAgICAgIHZhciB0b29sdGlwV2lkdGggPSAxMTA7Ci0gICAgICB2YXIgdG9vbHRpcEhlaWdodCA9IDQwOwotICAgICAgdmFyIGNoYXJ0SW5uZXJXaWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gLSBDSEFSVF9QQURESU5HX1JJR0hUIC0KLSAgICAgICAgICBDSEFSVF9QQURESU5HX0xFRlQ7Ci0gICAgICB2YXIgYmFyV2lkdGggPSBjaGFydElubmVyV2lkdGggLyB0aGlzLm9wc1RpbWluZ0RhdGFfLmxlbmd0aDsKLSAgICAgIHZhciB0b29sdGlwT2Zmc2V0ID0gTWF0aC5yb3VuZCgodG9vbHRpcFdpZHRoIC0gYmFyV2lkdGgpICogMC41KTsKLQotICAgICAgdmFyIGxlZnQgPSBDSEFSVF9QQURESU5HX0xFRlQgKyB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfICoKLSAgICAgICAgICBiYXJXaWR0aCAtIHRvb2x0aXBPZmZzZXQ7Ci0gICAgICB2YXIgdG9wID0gTWF0aC5yb3VuZCgodGhpcy5jaGFydEhlaWdodF8gLSB0b29sdGlwSGVpZ2h0KSAqIDAuNSk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNhdmUoKTsKLQotICAgICAgdGhpcy5jaGFydEN0eF8uc2hhZG93T2Zmc2V0WCA9IDA7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zaGFkb3dPZmZzZXRZID0gNTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNoYWRvd0JsdXIgPSA0OwotICAgICAgdGhpcy5jaGFydEN0eF8uc2hhZG93Q29sb3IgPSAncmdiYSgwLDAsMCwwLjQpJzsKLQotICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlU3R5bGUgPSAnIzg4OCc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAnI0VFRSc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsUmVjdChsZWZ0LCB0b3AsIHRvb2x0aXBXaWR0aCwgdG9vbHRpcEhlaWdodCk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNoYWRvd0NvbG9yID0gJ3RyYW5zcGFyZW50JzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRyYW5zbGF0ZSgwLjUsIDAuNSk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2VSZWN0KGxlZnQsIHRvcCwgdG9vbHRpcFdpZHRoLCB0b29sdGlwSGVpZ2h0KTsKLQotICAgICAgdGhpcy5jaGFydEN0eF8ucmVzdG9yZSgpOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAnIzIyMic7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QmFzZWxpbmUgPSAndG9wJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZvbnQgPSAnODAwIDEycHggQXJpYWwnOwotICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFRleHQodG9vbHRpcFRpdGxlLCBsZWZ0ICsgOCwgdG9wICsgOCk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjNTU1JzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRCYXNlbGluZSA9ICd0b3AnOwotICAgICAgdGhpcy5jaGFydEN0eF8uZm9udCA9ICc0MDAgaXRhbGljIDEwcHggQXJpYWwnOwotICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFRleHQoJ1RvdGFsOiAnICsgdG9vbHRpcFRpbWUgKyAnbXMnLAotICAgICAgICAgIGxlZnQgKyA4LCB0b3AgKyAyMik7Ci0gICAgfSwKLQotICAgIGRyYXdCYXJzXzogZnVuY3Rpb24oKSB7Ci0KLSAgICAgIHZhciBsZW4gPSB0aGlzLm9wc1RpbWluZ0RhdGFfLmxlbmd0aDsKLSAgICAgIHZhciBtYXggPSB0aGlzLm9wc1RpbWluZ0RhdGFfWzBdLmNtZF90aW1lOwotICAgICAgdmFyIG1pbiA9IHRoaXMub3BzVGltaW5nRGF0YV9bbGVuIC0gMV0uY21kX3RpbWU7Ci0KLSAgICAgIHZhciB3aWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gLSBDSEFSVF9QQURESU5HX0xFRlQgLSBDSEFSVF9QQURESU5HX1JJR0hUOwotICAgICAgdmFyIGhlaWdodCA9IHRoaXMuY2hhcnRIZWlnaHRfIC0gQVhJU19QQURESU5HX1RPUCAtIEFYSVNfUEFERElOR19CT1RUT007Ci0gICAgICB2YXIgYmFyV2lkdGggPSBNYXRoLmZsb29yKHdpZHRoIC8gbGVuKTsKLQotICAgICAgdmFyIG9wRGF0YTsKLSAgICAgIHZhciBvcFRpbWluZzsKLSAgICAgIHZhciBvcEhlaWdodDsKLSAgICAgIHZhciBvcExhYmVsOwotICAgICAgdmFyIGJhckxlZnQ7Ci0KLSAgICAgIGZvciAodmFyIGIgPSAwOyBiIDwgbGVuOyBiKyspIHsKLQotICAgICAgICBvcERhdGEgPSB0aGlzLm9wc1RpbWluZ0RhdGFfW2JdOwotICAgICAgICBvcFRpbWluZyA9IG9wRGF0YS5jbWRfdGltZSAvIG1heDsKLQotICAgICAgICBvcEhlaWdodCA9IE1hdGgucm91bmQoTWF0aC5tYXgoMSwgb3BUaW1pbmcgKiBoZWlnaHQpKTsKLSAgICAgICAgb3BMYWJlbCA9IG9wRGF0YS5jbWRfc3RyaW5nOwotICAgICAgICBiYXJMZWZ0ID0gQ0hBUlRfUEFERElOR19MRUZUICsgYiAqIGJhcldpZHRoOwotCi0gICAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9IHRoaXMuZ2V0T3BDb2xvcl8ob3BMYWJlbCk7Ci0KLSAgICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFJlY3QoYmFyTGVmdCArIEJBUl9QQURESU5HLCBBWElTX1BBRERJTkdfVE9QICsKLSAgICAgICAgICAgIGhlaWdodCAtIG9wSGVpZ2h0LCBiYXJXaWR0aCAtIDIgKiBCQVJfUEFERElORywgb3BIZWlnaHQpOwotICAgICAgfQotCi0gICAgfSwKLQotICAgIGdldE9wQ29sb3JfOiBmdW5jdGlvbihvcE5hbWUpIHsKLQotICAgICAgdmFyIGNoYXJhY3RlcnMgPSBvcE5hbWUuc3BsaXQoJycpOwotICAgICAgdmFyIGh1ZSA9IGNoYXJhY3RlcnMucmVkdWNlKHRoaXMucmVkdWNlTmFtZVRvSHVlLCAwKSAlIDM2MDsKLQotICAgICAgcmV0dXJuICdoc2woJyArIGh1ZSArICcsIDMwJSwgNTAlKSc7Ci0gICAgfSwKLQotICAgIHJlZHVjZU5hbWVUb0h1ZTogZnVuY3Rpb24ocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlLCBpbmRleCwgYXJyYXkpIHsKLSAgICAgIC8vIEdldCB0aGUgY2hhciBjb2RlIGFuZCBhcHBseSBhIG1hZ2ljIGFkanVzdG1lbnQgdmFsdWUgc28gd2UgZ2V0Ci0gICAgICAvLyBwcmV0dHkgY29sb3JzIGZyb20gYXJvdW5kIHRoZSByYWluYm93LgotICAgICAgcmV0dXJuIE1hdGgucm91bmQocHJldmlvdXNWYWx1ZSArIGN1cnJlbnRWYWx1ZS5jaGFyQ29kZUF0KDApICoKLSAgICAgICAgICBIVUVfQ0hBUl9DT0RFX0FESlVTVE1FTlQpOwotICAgIH0sCi0KLSAgICBkcmF3Q2hhcnRBeGVzXzogZnVuY3Rpb24oKSB7Ci0KLSAgICAgIHZhciBsZW4gPSB0aGlzLm9wc1RpbWluZ0RhdGFfLmxlbmd0aDsKLSAgICAgIHZhciBtYXggPSB0aGlzLm9wc1RpbWluZ0RhdGFfWzBdLmNtZF90aW1lOwotICAgICAgdmFyIG1pbiA9IHRoaXMub3BzVGltaW5nRGF0YV9bbGVuIC0gMV0uY21kX3RpbWU7Ci0KLSAgICAgIHZhciB3aWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gLSBBWElTX1BBRERJTkdfTEVGVCAtIEFYSVNfUEFERElOR19SSUdIVDsKLSAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmNoYXJ0SGVpZ2h0XyAtIEFYSVNfUEFERElOR19UT1AgLSBBWElTX1BBRERJTkdfQk9UVE9NOwotCi0gICAgICB2YXIgdG90YWxCYXJXaWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gLSBDSEFSVF9QQURESU5HX0xFRlQgLQotICAgICAgICAgIENIQVJUX1BBRERJTkdfUklHSFQ7Ci0gICAgICB2YXIgYmFyV2lkdGggPSBNYXRoLmZsb29yKHRvdGFsQmFyV2lkdGggLyBsZW4pOwotICAgICAgdmFyIHRpY2tZSW50ZXJ2YWwgPSBoZWlnaHQgLyAoVkVSVElDQUxfVElDS1MgLSAxKTsKLSAgICAgIHZhciB0aWNrWVBvc2l0aW9uID0gMDsKLSAgICAgIHZhciB0aWNrVmFsSW50ZXJ2YWwgPSAobWF4IC0gbWluKSAvIChWRVJUSUNBTF9USUNLUyAtIDEpOwotICAgICAgdmFyIHRpY2tWYWwgPSAwOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAnIzMzMyc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2VTdHlsZSA9ICcjNzc3JzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNhdmUoKTsKLQotICAgICAgLy8gVHJhbnNsYXRlIGhhbGYgYSBwaXhlbCB0byBhdm9pZCBibHVycnkgbGluZXMuCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50cmFuc2xhdGUoMC41LCAwLjUpOwotCi0gICAgICAvLyBTaWRlcy4KLQotICAgICAgdGhpcy5jaGFydEN0eF8uc2F2ZSgpOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50cmFuc2xhdGUoQVhJU19QQURESU5HX0xFRlQsIEFYSVNfUEFERElOR19UT1ApOwotICAgICAgdGhpcy5jaGFydEN0eF8ubW92ZVRvKDAsIDApOwotICAgICAgdGhpcy5jaGFydEN0eF8ubGluZVRvKDAsIGhlaWdodCk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5saW5lVG8od2lkdGgsIGhlaWdodCk7Ci0KLSAgICAgIC8vIFktYXhpcyB0aWNrcy4KLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZvbnQgPSAnMTBweCBBcmlhbCc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QWxpZ24gPSAncmlnaHQnOwotICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7Ci0KLSAgICAgIGZvciAodmFyIHQgPSAwOyB0IDwgVkVSVElDQUxfVElDS1M7IHQrKykgewotCi0gICAgICAgIHRpY2tZUG9zaXRpb24gPSBNYXRoLnJvdW5kKHQgKiB0aWNrWUludGVydmFsKTsKLSAgICAgICAgdGlja1ZhbCA9IChtYXggLSB0ICogdGlja1ZhbEludGVydmFsKS50b0ZpeGVkKDQpOwotCi0gICAgICAgIHRoaXMuY2hhcnRDdHhfLm1vdmVUbygwLCB0aWNrWVBvc2l0aW9uKTsKLSAgICAgICAgdGhpcy5jaGFydEN0eF8ubGluZVRvKC1BWElTX1RJQ0tfU0laRSwgdGlja1lQb3NpdGlvbik7Ci0gICAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxUZXh0KHRpY2tWYWwsCi0gICAgICAgICAgICAtQVhJU19USUNLX1NJWkUgLSBBWElTX0xBQkVMX1BBRERJTkcsIHRpY2tZUG9zaXRpb24pOwotCi0gICAgICB9Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZSgpOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5yZXN0b3JlKCk7Ci0KLQotICAgICAgLy8gTGFiZWxzLgotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zYXZlKCk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRyYW5zbGF0ZShDSEFSVF9QQURESU5HX0xFRlQgKyBNYXRoLnJvdW5kKGJhcldpZHRoICogMC41KSwKLSAgICAgICAgICBBWElTX1BBRERJTkdfVE9QICsgaGVpZ2h0ICsgTEFCRUxfUEFERElORyk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZvbnQgPSAnMTBweCBBcmlhbCc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QWxpZ24gPSAnY2VudGVyJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRCYXNlbGluZSA9ICd0b3AnOwotCi0gICAgICB2YXIgbGFiZWxUaWNrTGVmdDsKLSAgICAgIHZhciBsYWJlbFRpY2tCb3R0b207Ci0gICAgICBmb3IgKHZhciBsID0gMDsgbCA8IGxlbjsgbCsrKSB7Ci0KLSAgICAgICAgbGFiZWxUaWNrTGVmdCA9IE1hdGgucm91bmQobCAqIGJhcldpZHRoKTsKLSAgICAgICAgbGFiZWxUaWNrQm90dG9tID0gbCAlIDIgKiBMQUJFTF9JTlRFUkxFQVZFX09GRlNFVDsKLQotICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zYXZlKCk7Ci0gICAgICAgIHRoaXMuY2hhcnRDdHhfLm1vdmVUbyhsYWJlbFRpY2tMZWZ0LCAtTEFCRUxfUEFERElORyk7Ci0gICAgICAgIHRoaXMuY2hhcnRDdHhfLmxpbmVUbyhsYWJlbFRpY2tMZWZ0LCBsYWJlbFRpY2tCb3R0b20pOwotICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2UoKTsKLSAgICAgICAgdGhpcy5jaGFydEN0eF8ucmVzdG9yZSgpOwotCi0gICAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxUZXh0KHRoaXMub3BzVGltaW5nRGF0YV9bbF0uY21kX3N0cmluZywKLSAgICAgICAgICAgIGxhYmVsVGlja0xlZnQsIGxhYmVsVGlja0JvdHRvbSk7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnJlc3RvcmUoKTsKLQotICAgICAgdGhpcy5jaGFydEN0eF8ucmVzdG9yZSgpOwotICAgIH0sCi0KLSAgICBjbGVhckNoYXJ0Q29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNoYXJ0V2lkdGhfLCB0aGlzLmNoYXJ0SGVpZ2h0Xyk7Ci0gICAgfSwKLQotICAgIHNob3dOb1RpbWluZ0RhdGFNZXNzYWdlXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5mb250ID0gJzgwMCBpdGFsaWMgMTRweCBBcmlhbCc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAnIzMzMyc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QWxpZ24gPSAnY2VudGVyJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwotICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFRleHQoJ05vIHRpbWluZyBkYXRhIGF2YWlsYWJsZS4nLAotICAgICAgICAgIHRoaXMuY2hhcnRXaWR0aF8gKiAwLjUsIHRoaXMuY2hhcnRIZWlnaHRfICogMC41KTsKLSAgICB9LAotCi0gICAgY29sbGFwc2VPcHNUb1RpbWluZ0J1Y2tldHNfOiBmdW5jdGlvbihvcHMpIHsKLQotICAgICAgdmFyIG9wc1RpbWluZ0RhdGFJbmRleEhhc2hfID0ge307Ci0gICAgICB2YXIgdGltaW5nRGF0YSA9IHRoaXMub3BzVGltaW5nRGF0YV87Ci0gICAgICB2YXIgb3A7Ci0gICAgICB2YXIgb3BJbmRleDsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHsKLQotICAgICAgICBvcCA9IG9wc1tpXTsKLQotICAgICAgICBpZiAob3AuY21kX3RpbWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAvLyBUcnkgdG8gbG9jYXRlIHRoZSBlbnRyeSBmb3IgdGhlIGN1cnJlbnQgb3BlcmF0aW9uCi0gICAgICAgIC8vIGJhc2VkIG9uIGl0cyBuYW1lLiBJZiB0aGF0IGZhaWxzLCB0aGVuIGNyZWF0ZSBvbmUgZm9yIGl0LgotICAgICAgICBvcEluZGV4ID0gb3BzVGltaW5nRGF0YUluZGV4SGFzaF9bb3AuY21kX3N0cmluZ10gfHwgbnVsbDsKLQotICAgICAgICBpZiAob3BJbmRleCA9PT0gbnVsbCkgewotICAgICAgICAgIHRpbWluZ0RhdGEucHVzaCh7Ci0gICAgICAgICAgICBjbWRfdGltZTogMCwKLSAgICAgICAgICAgIGNtZF9zdHJpbmc6IG9wLmNtZF9zdHJpbmcKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIG9wSW5kZXggPSB0aW1pbmdEYXRhLmxlbmd0aCAtIDE7Ci0gICAgICAgICAgb3BzVGltaW5nRGF0YUluZGV4SGFzaF9bb3AuY21kX3N0cmluZ10gPSBvcEluZGV4OwotICAgICAgICB9Ci0KLSAgICAgICAgdGltaW5nRGF0YVtvcEluZGV4XS5jbWRfdGltZSArPSBvcC5jbWRfdGltZTsKLQotICAgICAgfQotCi0gICAgICB0aW1pbmdEYXRhLnNvcnQodGhpcy5zb3J0VGltaW5nQnVja2V0c0J5T3BUaW1lRGVzY2VuZGluZ18pOwotCi0gICAgICB0aGlzLmNvbGxhcHNlVGltaW5nQnVja2V0c1RvT3RoZXJfKDQpOwotICAgIH0sCi0KLSAgICBjb2xsYXBzZVRpbWluZ0J1Y2tldHNUb090aGVyXzogZnVuY3Rpb24oY291bnQpIHsKLQotICAgICAgdmFyIHRpbWluZ0RhdGEgPSB0aGlzLm9wc1RpbWluZ0RhdGFfOwotICAgICAgdmFyIG90aGVyU291cmNlID0gdGltaW5nRGF0YS5zcGxpY2UoY291bnQsIHRpbWluZ0RhdGEubGVuZ3RoIC0gY291bnQpOwotICAgICAgdmFyIG90aGVyRGVzdGluYXRpb24gPSBudWxsOwotCi0gICAgICBpZiAoIW90aGVyU291cmNlLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aW1pbmdEYXRhLnB1c2goewotICAgICAgICBjbWRfdGltZTogMCwKLSAgICAgICAgY21kX3N0cmluZzogJ090aGVyJwotICAgICAgfSk7Ci0KLSAgICAgIG90aGVyRGVzdGluYXRpb24gPSB0aW1pbmdEYXRhW3RpbWluZ0RhdGEubGVuZ3RoIC0gMV07Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG90aGVyU291cmNlLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIG90aGVyRGVzdGluYXRpb24uY21kX3RpbWUgKz0gb3RoZXJTb3VyY2VbaV0uY21kX3RpbWU7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIHNvcnRUaW1pbmdCdWNrZXRzQnlPcFRpbWVEZXNjZW5kaW5nXzogZnVuY3Rpb24oYSwgYikgewotICAgICAgcmV0dXJuIGIuY21kX3RpbWUgLSBhLmNtZF90aW1lOwotICAgIH0sCi0KLSAgICByZXNldE9wc1RpbWluZ0RhdGFfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMub3BzVGltaW5nRGF0YV8ubGVuZ3RoID0gMDsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBQaWN0dXJlT3BzQ2hhcnRTdW1tYXJ5VmlldzogUGljdHVyZU9wc0NoYXJ0U3VtbWFyeVZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfdmlldy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfdmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwMzAzZmEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0qIC9kZWVwLyBwaWN0dXJlLW9wcy1jaGFydC12aWV3IHsKLSAgZGlzcGxheTogYmxvY2s7Ci0gIGhlaWdodDogMTgwcHg7Ci0gIG1hcmdpbjogMDsKLSAgcGFkZGluZzogMDsKLSAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0qIC9kZWVwLyBwaWN0dXJlLW9wcy1jaGFydC12aWV3ID4gLnVzZS1wZXJjZW50aWxlLXNjYWxlIHsKLSAgbGVmdDogMDsKLSAgcG9zaXRpb246IGFic29sdXRlOwotICB0b3A6IDA7Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI3M2QxOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDk4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuY3NzIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIEJBUl9QQURESU5HID0gMTsKLSAgdmFyIEJBUl9XSURUSCA9IDU7Ci0gIHZhciBDSEFSVF9QQURESU5HX0xFRlQgPSA2NTsKLSAgdmFyIENIQVJUX1BBRERJTkdfUklHSFQgPSAzMDsKLSAgdmFyIENIQVJUX1BBRERJTkdfQk9UVE9NID0gMzU7Ci0gIHZhciBDSEFSVF9QQURESU5HX1RPUCA9IDIwOwotICB2YXIgQVhJU19QQURESU5HX0xFRlQgPSA1NTsKLSAgdmFyIEFYSVNfUEFERElOR19SSUdIVCA9IDMwOwotICB2YXIgQVhJU19QQURESU5HX0JPVFRPTSA9IDM1OwotICB2YXIgQVhJU19QQURESU5HX1RPUCA9IDIwOwotICB2YXIgQVhJU19USUNLX1NJWkUgPSA1OwotICB2YXIgQVhJU19MQUJFTF9QQURESU5HID0gNTsKLSAgdmFyIFZFUlRJQ0FMX1RJQ0tTID0gNTsKLSAgdmFyIEhVRV9DSEFSX0NPREVfQURKVVNUTUVOVCA9IDUuNzsKLQotICAvKioKLSAgICogUHJvdmlkZXMgYSBjaGFydCBzaG93aW5nIHRoZSBjdW11bGF0aXZlIHRpbWUgc3BlbnQgaW4gU2tpYSBvcGVyYXRpb25zCi0gICAqIGR1cmluZyBwaWN0dXJlIHJhc3Rlcml6YXRpb24uCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIFBpY3R1cmVPcHNDaGFydFZpZXcgPSB0ci5iLnVpLmRlZmluZSgncGljdHVyZS1vcHMtY2hhcnQtdmlldycpOwotCi0gIFBpY3R1cmVPcHNDaGFydFZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucGljdHVyZV8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLnBpY3R1cmVPcHNfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5vcENvc3RzXyA9IHVuZGVmaW5lZDsKLQotICAgICAgdGhpcy5jaGFydFNjYWxlXyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOwotCi0gICAgICB0aGlzLmNoYXJ0XyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwotICAgICAgdGhpcy5jaGFydEN0eF8gPSB0aGlzLmNoYXJ0Xy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmNoYXJ0Xyk7Ci0KLSAgICAgIHRoaXMuc2VsZWN0ZWRPcEluZGV4XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuY2hhcnRXaWR0aF8gPSAwOwotICAgICAgdGhpcy5jaGFydEhlaWdodF8gPSAwOwotICAgICAgdGhpcy5kaW1lbnNpb25zSGF2ZUNoYW5nZWRfID0gdHJ1ZTsKLQotICAgICAgdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9IHVuZGVmaW5lZDsKLQotICAgICAgdGhpcy5uaW5ldHlGaWZ0aFBlcmNlbnRpbGVDb3N0XyA9IDA7Ci0gICAgICB0aGlzLnRvdGFsT3BDb3N0XyA9IDA7Ci0KLSAgICAgIHRoaXMuY2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkNsaWNrXy5iaW5kKHRoaXMpKTsKLSAgICAgIHRoaXMuY2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLnVzZVBlcmNlbnRpbGVTY2FsZV8gPSBmYWxzZTsKLSAgICAgIHRoaXMudXNlUGVyY2VudGlsZVNjYWxlQ2hlY2tib3hfID0gdHIuYi51aS5jcmVhdGVDaGVja0JveCgKLSAgICAgICAgICB0aGlzLCAndXNlUGVyY2VudGlsZVNjYWxlJywKLSAgICAgICAgICAnUGljdHVyZU9wc0NoYXJ0Vmlldy51c2VQZXJjZW50aWxlU2NhbGUnLCBmYWxzZSwKLSAgICAgICAgICAnTGltaXQgdG8gOTUlLWlsZScpOwotICAgICAgdGhpcy51c2VQZXJjZW50aWxlU2NhbGVDaGVja2JveF8uY2xhc3NMaXN0LmFkZCgndXNlLXBlcmNlbnRpbGUtc2NhbGUnKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy51c2VQZXJjZW50aWxlU2NhbGVDaGVja2JveF8pOwotICAgIH0sCi0KLSAgICBnZXQgZGltZW5zaW9uc0hhdmVDaGFuZ2VkKCkgewotICAgICAgcmV0dXJuIHRoaXMuZGltZW5zaW9uc0hhdmVDaGFuZ2VkXzsKLSAgICB9LAotCi0gICAgc2V0IGRpbWVuc2lvbnNIYXZlQ2hhbmdlZChkaW1lbnNpb25zSGF2ZUNoYW5nZWQpIHsKLSAgICAgIHRoaXMuZGltZW5zaW9uc0hhdmVDaGFuZ2VkXyA9IGRpbWVuc2lvbnNIYXZlQ2hhbmdlZDsKLSAgICB9LAotCi0gICAgZ2V0IHVzZVBlcmNlbnRpbGVTY2FsZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnVzZVBlcmNlbnRpbGVTY2FsZV87Ci0gICAgfSwKLQotICAgIHNldCB1c2VQZXJjZW50aWxlU2NhbGUodXNlUGVyY2VudGlsZVNjYWxlKSB7Ci0gICAgICB0aGlzLnVzZVBlcmNlbnRpbGVTY2FsZV8gPSB1c2VQZXJjZW50aWxlU2NhbGU7Ci0gICAgICB0aGlzLmRyYXdDaGFydENvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgbnVtT3BzKCkgewotICAgICAgcmV0dXJuIHRoaXMub3BDb3N0c18ubGVuZ3RoOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0ZWRPcEluZGV4KCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcEluZGV4XzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGVkT3BJbmRleChzZWxlY3RlZE9wSW5kZXgpIHsKLSAgICAgIGlmIChzZWxlY3RlZE9wSW5kZXggPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5kZXgnKTsKLSAgICAgIGlmIChzZWxlY3RlZE9wSW5kZXggPj0gdGhpcy5udW1PcHMpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbmRleCcpOwotCi0gICAgICB0aGlzLnNlbGVjdGVkT3BJbmRleF8gPSBzZWxlY3RlZE9wSW5kZXg7Ci0gICAgfSwKLQotICAgIGdldCBwaWN0dXJlKCkgewotICAgICAgcmV0dXJuIHRoaXMucGljdHVyZV87Ci0gICAgfSwKLQotICAgIHNldCBwaWN0dXJlKHBpY3R1cmUpIHsKLSAgICAgIHRoaXMucGljdHVyZV8gPSBwaWN0dXJlOwotICAgICAgdGhpcy5waWN0dXJlT3BzXyA9IHBpY3R1cmUudGFnT3BzV2l0aFRpbWluZ3MocGljdHVyZS5nZXRPcHMoKSk7Ci0gICAgICB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5wcm9jZXNzUGljdHVyZURhdGFfKCk7Ci0gICAgICB0aGlzLmRpbWVuc2lvbnNIYXZlQ2hhbmdlZCA9IHRydWU7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NQaWN0dXJlRGF0YV86IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMucGljdHVyZU9wc18gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdG90YWxPcENvc3QgPSAwOwotCi0gICAgICAvLyBUYWtlIGEgY29weSBvZiB0aGUgcGljdHVyZSBvcHMgZGF0YSBmb3Igc29ydGluZy4KLSAgICAgIHRoaXMub3BDb3N0c18gPSB0aGlzLnBpY3R1cmVPcHNfLm1hcChmdW5jdGlvbihvcCkgewotICAgICAgICB0b3RhbE9wQ29zdCArPSBvcC5jbWRfdGltZTsKLSAgICAgICAgcmV0dXJuIG9wLmNtZF90aW1lOwotICAgICAgfSk7Ci0gICAgICB0aGlzLm9wQ29zdHNfLnNvcnQoKTsKLQotICAgICAgdmFyIG5pbmV0eUZpZnRoUGVyY2VudGlsZUNvc3RJbmRleCA9IE1hdGguZmxvb3IoCi0gICAgICAgICAgdGhpcy5vcENvc3RzXy5sZW5ndGggKiAwLjk1KTsKLSAgICAgIHRoaXMubmluZXR5RmlmdGhQZXJjZW50aWxlQ29zdF8gPQotICAgICAgICAgIHRoaXMub3BDb3N0c19bbmluZXR5RmlmdGhQZXJjZW50aWxlQ29zdEluZGV4XTsKLSAgICAgIHRoaXMubWF4Q29zdF8gPSB0aGlzLm9wQ29zdHNfW3RoaXMub3BDb3N0c18ubGVuZ3RoIC0gMV07Ci0KLSAgICAgIHRoaXMudG90YWxPcENvc3RfID0gdG90YWxPcENvc3Q7Ci0gICAgfSwKLQotICAgIGV4dHJhY3RCYXJJbmRleF86IGZ1bmN0aW9uKGUpIHsKLQotICAgICAgdmFyIGluZGV4ID0gdW5kZWZpbmVkOwotCi0gICAgICBpZiAodGhpcy5waWN0dXJlT3BzXyA9PT0gdW5kZWZpbmVkIHx8Ci0gICAgICAgICAgdGhpcy5waWN0dXJlT3BzXy5sZW5ndGggPT09IDApCi0gICAgICAgIHJldHVybiBpbmRleDsKLQotICAgICAgdmFyIHggPSBlLm9mZnNldFg7Ci0gICAgICB2YXIgeSA9IGUub2Zmc2V0WTsKLQotICAgICAgdmFyIHRvdGFsQmFyV2lkdGggPSAoQkFSX1dJRFRIICsgQkFSX1BBRERJTkcpICogdGhpcy5waWN0dXJlT3BzXy5sZW5ndGg7Ci0KLSAgICAgIHZhciBjaGFydExlZnQgPSBDSEFSVF9QQURESU5HX0xFRlQ7Ci0gICAgICB2YXIgY2hhcnRUb3AgPSAwOwotICAgICAgdmFyIGNoYXJ0Qm90dG9tID0gdGhpcy5jaGFydEhlaWdodF8gLSBDSEFSVF9QQURESU5HX0JPVFRPTTsKLSAgICAgIHZhciBjaGFydFJpZ2h0ID0gY2hhcnRMZWZ0ICsgdG90YWxCYXJXaWR0aDsKLQotICAgICAgaWYgKHggPCBjaGFydExlZnQgfHwgeCA+IGNoYXJ0UmlnaHQgfHwgeSA8IGNoYXJ0VG9wIHx8IHkgPiBjaGFydEJvdHRvbSkKLSAgICAgICAgcmV0dXJuIGluZGV4OwotCi0gICAgICBpbmRleCA9IE1hdGguZmxvb3IoKHggLSBjaGFydExlZnQpIC8gdG90YWxCYXJXaWR0aCAqCi0gICAgICAgICAgdGhpcy5waWN0dXJlT3BzXy5sZW5ndGgpOwotCi0gICAgICBpbmRleCA9IHRyLmIuY2xhbXAoaW5kZXgsIDAsIHRoaXMucGljdHVyZU9wc18ubGVuZ3RoIC0gMSk7Ci0KLSAgICAgIHJldHVybiBpbmRleDsKLSAgICB9LAotCi0gICAgb25DbGlja186IGZ1bmN0aW9uKGUpIHsKLQotICAgICAgdmFyIGJhckNsaWNrZWQgPSB0aGlzLmV4dHJhY3RCYXJJbmRleF8oZSk7Ci0KLSAgICAgIGlmIChiYXJDbGlja2VkID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgLy8gSWYgd2UgY2xpY2sgb24gdGhlIGFscmVhZHkgc2VsZWN0ZWQgaXRlbSB3ZSBzaG91bGQgZGVzZWxlY3QuCi0gICAgICBpZiAoYmFyQ2xpY2tlZCA9PT0gdGhpcy5zZWxlY3RlZE9wSW5kZXgpCi0gICAgICAgIHRoaXMuc2VsZWN0ZWRPcEluZGV4ID0gdW5kZWZpbmVkOwotICAgICAgZWxzZQotICAgICAgICB0aGlzLnNlbGVjdGVkT3BJbmRleCA9IGJhckNsaWNrZWQ7Ci0KLSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLQotICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzZWxlY3Rpb24tY2hhbmdlZCcsIGZhbHNlKTsKLSAgICB9LAotCi0gICAgb25Nb3VzZU1vdmVfOiBmdW5jdGlvbihlKSB7Ci0KLSAgICAgIHZhciBsYXN0QmFyTW91c2VPdmVyVGFyZ2V0ID0gdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XzsKLSAgICAgIHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF8gPSB0aGlzLmV4dHJhY3RCYXJJbmRleF8oZSk7Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID09PSBsYXN0QmFyTW91c2VPdmVyVGFyZ2V0KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuZHJhd0NoYXJ0Q29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIHNjcm9sbFNlbGVjdGVkSXRlbUludG9WaWV3SWZOZWNlc3Nhcnk6IGZ1bmN0aW9uKCkgewotCi0gICAgICBpZiAodGhpcy5zZWxlY3RlZE9wSW5kZXggPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgd2lkdGggPSB0aGlzLm9mZnNldFdpZHRoOwotICAgICAgdmFyIGxlZnQgPSB0aGlzLnNjcm9sbExlZnQ7Ci0gICAgICB2YXIgcmlnaHQgPSBsZWZ0ICsgd2lkdGg7Ci0gICAgICB2YXIgdGFyZ2V0TGVmdCA9IENIQVJUX1BBRERJTkdfTEVGVCArCi0gICAgICAgICAgKEJBUl9XSURUSCArIEJBUl9QQURESU5HKSAqIHRoaXMuc2VsZWN0ZWRPcEluZGV4OwotCi0gICAgICBpZiAodGFyZ2V0TGVmdCA+IGxlZnQgJiYgdGFyZ2V0TGVmdCA8IHJpZ2h0KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuc2Nyb2xsTGVmdCA9ICh0YXJnZXRMZWZ0IC0gd2lkdGggKiAwLjUpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDaGFydENvbnRlbnRzOiBmdW5jdGlvbigpIHsKLQotICAgICAgaWYgKHRoaXMuZGltZW5zaW9uc0hhdmVDaGFuZ2VkKQotICAgICAgICB0aGlzLnVwZGF0ZUNoYXJ0RGltZW5zaW9uc18oKTsKLQotICAgICAgdGhpcy5kcmF3Q2hhcnRDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ2hhcnREaW1lbnNpb25zXzogZnVuY3Rpb24oKSB7Ci0KLSAgICAgIGlmICghdGhpcy5waWN0dXJlT3BzXykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgd2lkdGggPSBDSEFSVF9QQURESU5HX0xFRlQgKyBDSEFSVF9QQURESU5HX1JJR0hUICsKLSAgICAgICAgICAoKEJBUl9XSURUSCArIEJBUl9QQURESU5HKSAqIHRoaXMucGljdHVyZU9wc18ubGVuZ3RoKTsKLQotICAgICAgaWYgKHdpZHRoIDwgdGhpcy5vZmZzZXRXaWR0aCkKLSAgICAgICAgd2lkdGggPSB0aGlzLm9mZnNldFdpZHRoOwotCi0gICAgICAvLyBBbGxvdyB0aGUgZWxlbWVudCB0byBiZSBpdHMgbmF0dXJhbCBzaXplIGFzIHNldCBieSBmbGV4Ym94LCB0aGVuIGxvY2sKLSAgICAgIC8vIHRoZSB3aWR0aCBpbiBiZWZvcmUgd2Ugc2V0IHRoZSB3aWR0aCBvZiB0aGUgY2FudmFzLgotICAgICAgdGhpcy5jaGFydFdpZHRoXyA9IHdpZHRoOwotICAgICAgdGhpcy5jaGFydEhlaWdodF8gPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDsKLQotICAgICAgLy8gU2NhbGUgdXAgdGhlIGNhbnZhcyBhY2NvcmRpbmcgdG8gdGhlIGRldmljZVBpeGVsUmF0aW8sIHRoZW4gcmVkdWNlIGl0Ci0gICAgICAvLyBkb3duIGFnYWluIHZpYSBDU1MuIEZpbmFsbHkgd2UgYXBwbHkgYSBzY2FsZSB0byB0aGUgY2FudmFzIHNvIHRoYXQKLSAgICAgIC8vIHRoaW5ncyBhcmUgZHJhd24gYXQgdGhlIGNvcnJlY3Qgc2l6ZS4KLSAgICAgIHRoaXMuY2hhcnRfLndpZHRoID0gdGhpcy5jaGFydFdpZHRoXyAqIHRoaXMuY2hhcnRTY2FsZV87Ci0gICAgICB0aGlzLmNoYXJ0Xy5oZWlnaHQgPSB0aGlzLmNoYXJ0SGVpZ2h0XyAqIHRoaXMuY2hhcnRTY2FsZV87Ci0KLSAgICAgIHRoaXMuY2hhcnRfLnN0eWxlLndpZHRoID0gdGhpcy5jaGFydFdpZHRoXyArICdweCc7Ci0gICAgICB0aGlzLmNoYXJ0Xy5zdHlsZS5oZWlnaHQgPSB0aGlzLmNoYXJ0SGVpZ2h0XyArICdweCc7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNjYWxlKHRoaXMuY2hhcnRTY2FsZV8sIHRoaXMuY2hhcnRTY2FsZV8pOwotCi0gICAgICB0aGlzLmRpbWVuc2lvbnNIYXZlQ2hhbmdlZCA9IGZhbHNlOwotICAgIH0sCi0KLSAgICBkcmF3Q2hhcnRDb250ZW50c186IGZ1bmN0aW9uKCkgewotCi0gICAgICB0aGlzLmNsZWFyQ2hhcnRDb250ZW50c18oKTsKLQotICAgICAgaWYgKHRoaXMucGljdHVyZU9wc18gPT09IHVuZGVmaW5lZCB8fAotICAgICAgICAgIHRoaXMucGljdHVyZU9wc18ubGVuZ3RoID09PSAwIHx8Ci0gICAgICAgICAgdGhpcy5waWN0dXJlT3BzX1swXS5jbWRfdGltZSA9PT0gdW5kZWZpbmVkKSB7Ci0KLSAgICAgICAgdGhpcy5zaG93Tm9UaW1pbmdEYXRhTWVzc2FnZV8oKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB0aGlzLmRyYXdTZWxlY3Rpb25fKCk7Ci0gICAgICB0aGlzLmRyYXdCYXJzXygpOwotICAgICAgdGhpcy5kcmF3Q2hhcnRBeGVzXygpOwotICAgICAgdGhpcy5kcmF3TGluZXNBdFRpY2tNYXJrc18oKTsKLSAgICAgIHRoaXMuZHJhd0xpbmVBdEJvdHRvbU9mQ2hhcnRfKCk7Ci0KLSAgICAgIGlmICh0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdGhpcy5kcmF3VG9vbHRpcF8oKTsKLSAgICB9LAotCi0gICAgZHJhd1NlbGVjdGlvbl86IGZ1bmN0aW9uKCkgewotCi0gICAgICBpZiAodGhpcy5zZWxlY3RlZE9wSW5kZXggPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgd2lkdGggPSAoQkFSX1dJRFRIICsgQkFSX1BBRERJTkcpICogdGhpcy5zZWxlY3RlZE9wSW5kZXg7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAncmdiKDIyMywgMjM1LCAyMzApJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxSZWN0KENIQVJUX1BBRERJTkdfTEVGVCwgQ0hBUlRfUEFERElOR19UT1AsCi0gICAgICAgICAgd2lkdGgsIHRoaXMuY2hhcnRIZWlnaHRfIC0gQ0hBUlRfUEFERElOR19UT1AgLSBDSEFSVF9QQURESU5HX0JPVFRPTSk7Ci0gICAgfSwKLQotICAgIGRyYXdDaGFydEF4ZXNfOiBmdW5jdGlvbigpIHsKLQotICAgICAgdmFyIG1pbiA9IHRoaXMub3BDb3N0c19bMF07Ci0gICAgICB2YXIgbWF4ID0gdGhpcy5vcENvc3RzX1t0aGlzLm9wQ29zdHNfLmxlbmd0aCAtIDFdOwotICAgICAgdmFyIGhlaWdodCA9IHRoaXMuY2hhcnRIZWlnaHRfIC0gQVhJU19QQURESU5HX1RPUCAtIEFYSVNfUEFERElOR19CT1RUT007Ci0KLSAgICAgIHZhciB0aWNrWUludGVydmFsID0gaGVpZ2h0IC8gKFZFUlRJQ0FMX1RJQ0tTIC0gMSk7Ci0gICAgICB2YXIgdGlja1lQb3NpdGlvbiA9IDA7Ci0gICAgICB2YXIgdGlja1ZhbEludGVydmFsID0gKG1heCAtIG1pbikgLyAoVkVSVElDQUxfVElDS1MgLSAxKTsKLSAgICAgIHZhciB0aWNrVmFsID0gMDsKLQotICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gJyMzMzMnOwotICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlU3R5bGUgPSAnIzc3Nyc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zYXZlKCk7Ci0KLSAgICAgIC8vIFRyYW5zbGF0ZSBoYWxmIGEgcGl4ZWwgdG8gYXZvaWQgYmx1cnJ5IGxpbmVzLgotICAgICAgdGhpcy5jaGFydEN0eF8udHJhbnNsYXRlKDAuNSwgMC41KTsKLQotICAgICAgLy8gU2lkZXMuCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5iZWdpblBhdGgoKTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLm1vdmVUbyhBWElTX1BBRERJTkdfTEVGVCwgQVhJU19QQURESU5HX1RPUCk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5saW5lVG8oQVhJU19QQURESU5HX0xFRlQsIHRoaXMuY2hhcnRIZWlnaHRfIC0KLSAgICAgICAgICBBWElTX1BBRERJTkdfQk9UVE9NKTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmxpbmVUbyh0aGlzLmNoYXJ0V2lkdGhfIC0gQVhJU19QQURESU5HX1JJR0hULAotICAgICAgICAgIHRoaXMuY2hhcnRIZWlnaHRfIC0gQVhJU19QQURESU5HX0JPVFRPTSk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2UoKTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmNsb3NlUGF0aCgpOwotCi0gICAgICAvLyBZLWF4aXMgdGlja3MuCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50cmFuc2xhdGUoQVhJU19QQURESU5HX0xFRlQsIEFYSVNfUEFERElOR19UT1ApOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5mb250ID0gJzEwcHggQXJpYWwnOwotICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEFsaWduID0gJ3JpZ2h0JzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5iZWdpblBhdGgoKTsKLSAgICAgIGZvciAodmFyIHQgPSAwOyB0IDwgVkVSVElDQUxfVElDS1M7IHQrKykgewotCi0gICAgICAgIHRpY2tZUG9zaXRpb24gPSBNYXRoLnJvdW5kKHQgKiB0aWNrWUludGVydmFsKTsKLSAgICAgICAgdGlja1ZhbCA9IChtYXggLSB0ICogdGlja1ZhbEludGVydmFsKS50b0ZpeGVkKDQpOwotCi0gICAgICAgIHRoaXMuY2hhcnRDdHhfLm1vdmVUbygwLCB0aWNrWVBvc2l0aW9uKTsKLSAgICAgICAgdGhpcy5jaGFydEN0eF8ubGluZVRvKC1BWElTX1RJQ0tfU0laRSwgdGlja1lQb3NpdGlvbik7Ci0gICAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxUZXh0KHRpY2tWYWwsCi0gICAgICAgICAgICAtQVhJU19USUNLX1NJWkUgLSBBWElTX0xBQkVMX1BBRERJTkcsIHRpY2tZUG9zaXRpb24pOwotCi0gICAgICB9Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZSgpOwotICAgICAgdGhpcy5jaGFydEN0eF8uY2xvc2VQYXRoKCk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnJlc3RvcmUoKTsKLSAgICB9LAotCi0gICAgZHJhd0xpbmVzQXRUaWNrTWFya3NfOiBmdW5jdGlvbigpIHsKLQotICAgICAgdmFyIGhlaWdodCA9IHRoaXMuY2hhcnRIZWlnaHRfIC0gQVhJU19QQURESU5HX1RPUCAtIEFYSVNfUEFERElOR19CT1RUT007Ci0gICAgICB2YXIgd2lkdGggPSB0aGlzLmNoYXJ0V2lkdGhfIC0gQVhJU19QQURESU5HX0xFRlQgLSBBWElTX1BBRERJTkdfUklHSFQ7Ci0gICAgICB2YXIgdGlja1lJbnRlcnZhbCA9IGhlaWdodCAvIChWRVJUSUNBTF9USUNLUyAtIDEpOwotICAgICAgdmFyIHRpY2tZUG9zaXRpb24gPSAwOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zYXZlKCk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRyYW5zbGF0ZShBWElTX1BBRERJTkdfTEVGVCArIDAuNSwgQVhJU19QQURESU5HX1RPUCArIDAuNSk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5iZWdpblBhdGgoKTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZVN0eWxlID0gJ3JnYmEoMCwwLDAsMC4wNSknOwotCi0gICAgICBmb3IgKHZhciB0ID0gMDsgdCA8IFZFUlRJQ0FMX1RJQ0tTOyB0KyspIHsKLSAgICAgICAgdGlja1lQb3NpdGlvbiA9IE1hdGgucm91bmQodCAqIHRpY2tZSW50ZXJ2YWwpOwotCi0gICAgICAgIHRoaXMuY2hhcnRDdHhfLm1vdmVUbygwLCB0aWNrWVBvc2l0aW9uKTsKLSAgICAgICAgdGhpcy5jaGFydEN0eF8ubGluZVRvKHdpZHRoLCB0aWNrWVBvc2l0aW9uKTsKLSAgICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlKCk7Ci0gICAgICB9Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnJlc3RvcmUoKTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmNsb3NlUGF0aCgpOwotICAgIH0sCi0KLSAgICBkcmF3TGluZUF0Qm90dG9tT2ZDaGFydF86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlU3R5bGUgPSAnI0FBQSc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5iZWdpblBhdGgoKTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLm1vdmVUbygwLCB0aGlzLmNoYXJ0SGVpZ2h0XyAtIDAuNSk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5saW5lVG8odGhpcy5jaGFydFdpZHRoXywgdGhpcy5jaGFydEhlaWdodF8gLSAwLjUpOwotICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlKCk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5jbG9zZVBhdGgoKTsKLSAgICB9LAotCi0gICAgZHJhd1Rvb2x0aXBfOiBmdW5jdGlvbigpIHsKLQotICAgICAgdmFyIHRvb2x0aXBEYXRhID0gdGhpcy5waWN0dXJlT3BzX1t0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfXTsKLSAgICAgIHZhciB0b29sdGlwVGl0bGUgPSB0b29sdGlwRGF0YS5jbWRfc3RyaW5nOwotICAgICAgdmFyIHRvb2x0aXBUaW1lID0gdG9vbHRpcERhdGEuY21kX3RpbWUudG9GaXhlZCg0KTsKLSAgICAgIHZhciB0b29sVGlwVGltZVBlcmNlbnRhZ2UgPQotICAgICAgICAgICgodG9vbHRpcERhdGEuY21kX3RpbWUgLyB0aGlzLnRvdGFsT3BDb3N0XykgKiAxMDApLnRvRml4ZWQoMik7Ci0KLSAgICAgIHZhciB0b29sdGlwV2lkdGggPSAxMjA7Ci0gICAgICB2YXIgdG9vbHRpcEhlaWdodCA9IDQwOwotICAgICAgdmFyIGNoYXJ0SW5uZXJXaWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gLSBDSEFSVF9QQURESU5HX1JJR0hUIC0KLSAgICAgICAgICBDSEFSVF9QQURESU5HX0xFRlQ7Ci0gICAgICB2YXIgYmFyV2lkdGggPSBCQVJfV0lEVEggKyBCQVJfUEFERElORzsKLSAgICAgIHZhciB0b29sdGlwT2Zmc2V0ID0gTWF0aC5yb3VuZCgodG9vbHRpcFdpZHRoIC0gYmFyV2lkdGgpICogMC41KTsKLQotICAgICAgdmFyIGxlZnQgPSBDSEFSVF9QQURESU5HX0xFRlQgKyB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfICoKLSAgICAgICAgICBiYXJXaWR0aCAtIHRvb2x0aXBPZmZzZXQ7Ci0gICAgICB2YXIgdG9wID0gTWF0aC5yb3VuZCgodGhpcy5jaGFydEhlaWdodF8gLSB0b29sdGlwSGVpZ2h0KSAqIDAuNSk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNhdmUoKTsKLQotICAgICAgdGhpcy5jaGFydEN0eF8uc2hhZG93T2Zmc2V0WCA9IDA7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zaGFkb3dPZmZzZXRZID0gNTsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNoYWRvd0JsdXIgPSA0OwotICAgICAgdGhpcy5jaGFydEN0eF8uc2hhZG93Q29sb3IgPSAncmdiYSgwLDAsMCwwLjQpJzsKLQotICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlU3R5bGUgPSAnIzg4OCc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAnI0VFRSc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsUmVjdChsZWZ0LCB0b3AsIHRvb2x0aXBXaWR0aCwgdG9vbHRpcEhlaWdodCk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLnNoYWRvd0NvbG9yID0gJ3RyYW5zcGFyZW50JzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLnRyYW5zbGF0ZSgwLjUsIDAuNSk7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2VSZWN0KGxlZnQsIHRvcCwgdG9vbHRpcFdpZHRoLCB0b29sdGlwSGVpZ2h0KTsKLQotICAgICAgdGhpcy5jaGFydEN0eF8ucmVzdG9yZSgpOwotCi0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAnIzIyMic7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QWxpZ24gPSAnbGVmdCc7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QmFzZWxpbmUgPSAndG9wJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZvbnQgPSAnODAwIDEycHggQXJpYWwnOwotICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFRleHQodG9vbHRpcFRpdGxlLCBsZWZ0ICsgOCwgdG9wICsgOCk7Ci0KLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjNTU1JzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZvbnQgPSAnNDAwIGl0YWxpYyAxMHB4IEFyaWFsJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxUZXh0KHRvb2x0aXBUaW1lICsgJ21zICgnICsKLSAgICAgICAgICB0b29sVGlwVGltZVBlcmNlbnRhZ2UgKyAnJSknLCBsZWZ0ICsgOCwgdG9wICsgMjIpOwotICAgIH0sCi0KLSAgICBkcmF3QmFyc186IGZ1bmN0aW9uKCkgewotCi0gICAgICB2YXIgb3A7Ci0gICAgICB2YXIgb3BDb2xvciA9IDA7Ci0gICAgICB2YXIgb3BIZWlnaHQgPSAwOwotICAgICAgdmFyIG9wV2lkdGggPSBCQVJfV0lEVEggKyBCQVJfUEFERElORzsKLSAgICAgIHZhciBvcEhvdmVyID0gZmFsc2U7Ci0KLSAgICAgIHZhciBib3R0b20gPSB0aGlzLmNoYXJ0SGVpZ2h0XyAtIENIQVJUX1BBRERJTkdfQk9UVE9NOwotICAgICAgdmFyIG1heEhlaWdodCA9IHRoaXMuY2hhcnRIZWlnaHRfIC0gQ0hBUlRfUEFERElOR19CT1RUT00gLQotICAgICAgICAgIENIQVJUX1BBRERJTkdfVE9QOwotCi0gICAgICB2YXIgbWF4VmFsdWU7Ci0gICAgICBpZiAodGhpcy51c2VQZXJjZW50aWxlU2NhbGUpCi0gICAgICAgIG1heFZhbHVlID0gdGhpcy5uaW5ldHlGaWZ0aFBlcmNlbnRpbGVDb3N0XzsKLSAgICAgIGVsc2UKLSAgICAgICAgbWF4VmFsdWUgPSB0aGlzLm1heENvc3RfOwotCi0gICAgICBmb3IgKHZhciBiID0gMDsgYiA8IHRoaXMucGljdHVyZU9wc18ubGVuZ3RoOyBiKyspIHsKLQotICAgICAgICBvcCA9IHRoaXMucGljdHVyZU9wc19bYl07Ci0gICAgICAgIG9wSGVpZ2h0ID0gTWF0aC5yb3VuZCgKLSAgICAgICAgICAgIChvcC5jbWRfdGltZSAvIG1heFZhbHVlKSAqIG1heEhlaWdodCk7Ci0gICAgICAgIG9wSGVpZ2h0ID0gTWF0aC5tYXgob3BIZWlnaHQsIDEpOwotICAgICAgICBvcEhvdmVyID0gKGIgPT09IHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF8pOwotICAgICAgICBvcENvbG9yID0gdGhpcy5nZXRPcENvbG9yXyhvcC5jbWRfc3RyaW5nLCBvcEhvdmVyKTsKLQotICAgICAgICBpZiAoYiA9PT0gdGhpcy5zZWxlY3RlZE9wSW5kZXgpCi0gICAgICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gJyNGRkZGMDAnOwotICAgICAgICBlbHNlCi0gICAgICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gb3BDb2xvcjsKLQotICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsUmVjdChDSEFSVF9QQURESU5HX0xFRlQgKyBiICogb3BXaWR0aCwKLSAgICAgICAgICAgIGJvdHRvbSAtIG9wSGVpZ2h0LCBCQVJfV0lEVEgsIG9wSGVpZ2h0KTsKLSAgICAgIH0KLQotICAgIH0sCi0KLSAgICBnZXRPcENvbG9yXzogZnVuY3Rpb24ob3BOYW1lLCBob3ZlcikgewotCi0gICAgICB2YXIgY2hhcmFjdGVycyA9IG9wTmFtZS5zcGxpdCgnJyk7Ci0KLSAgICAgIHZhciBodWUgPSBjaGFyYWN0ZXJzLnJlZHVjZSh0aGlzLnJlZHVjZU5hbWVUb0h1ZSwgMCkgJSAzNjA7Ci0gICAgICB2YXIgc2F0dXJhdGlvbiA9IDMwOwotICAgICAgdmFyIGxpZ2h0bmVzcyA9IGhvdmVyID8gJzc1JScgOiAnNTAlJzsKLQotICAgICAgcmV0dXJuICdoc2woJyArIGh1ZSArICcsICcgKyBzYXR1cmF0aW9uICsgJyUsICcgKyBsaWdodG5lc3MgKyAnJSknOwotICAgIH0sCi0KLSAgICByZWR1Y2VOYW1lVG9IdWU6IGZ1bmN0aW9uKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSwgaW5kZXgsIGFycmF5KSB7Ci0gICAgICAvLyBHZXQgdGhlIGNoYXIgY29kZSBhbmQgYXBwbHkgYSBtYWdpYyBhZGp1c3RtZW50IHZhbHVlIHNvIHdlIGdldAotICAgICAgLy8gcHJldHR5IGNvbG9ycyBmcm9tIGFyb3VuZCB0aGUgcmFpbmJvdy4KLSAgICAgIHJldHVybiBNYXRoLnJvdW5kKHByZXZpb3VzVmFsdWUgKyBjdXJyZW50VmFsdWUuY2hhckNvZGVBdCgwKSAqCi0gICAgICAgICAgSFVFX0NIQVJfQ09ERV9BREpVU1RNRU5UKTsKLSAgICB9LAotCi0gICAgY2xlYXJDaGFydENvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy5jbGVhclJlY3QoMCwgMCwgdGhpcy5jaGFydFdpZHRoXywgdGhpcy5jaGFydEhlaWdodF8pOwotICAgIH0sCi0KLSAgICBzaG93Tm9UaW1pbmdEYXRhTWVzc2FnZV86IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jaGFydEN0eF8uZm9udCA9ICc4MDAgaXRhbGljIDE0cHggQXJpYWwnOwotICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gJyMzMzMnOwotICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEFsaWduID0gJ2NlbnRlcic7Ci0gICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJzsKLSAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxUZXh0KCdObyB0aW1pbmcgZGF0YSBhdmFpbGFibGUuJywKLSAgICAgICAgICB0aGlzLmNoYXJ0V2lkdGhfICogMC41LCB0aGlzLmNoYXJ0SGVpZ2h0XyAqIDAuNSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUGljdHVyZU9wc0NoYXJ0VmlldzogUGljdHVyZU9wc0NoYXJ0VmlldwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ZTBkOGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotICovCi0KLSogKiAvZGVlcC8gcGljdHVyZS1vcHMtbGlzdC12aWV3IHsKLSAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JleTsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotfQotCi0qIC9kZWVwLyBwaWN0dXJlLW9wcy1saXN0LXZpZXcgPiAueC1saXN0LXZpZXcgewotICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwotICBvdmVyZmxvdzogYXV0bzsKLX0KLQotKiAvZGVlcC8gcGljdHVyZS1vcHMtbGlzdC12aWV3ID4gLngtbGlzdC12aWV3IC5saXN0LWl0ZW0gewotICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU1NTsKLSAgZm9udC1zaXplOiBzbWFsbDsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gIHBhZGRpbmctYm90dG9tOiA1cHg7Ci0gIHBhZGRpbmctbGVmdDogNXB4OwotfQotCi0qIC9kZWVwLyBwaWN0dXJlLW9wcy1saXN0LXZpZXcgPiAueC1saXN0LXZpZXcgLmxpc3QtaXRlbTpob3ZlciB7Ci0gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7Ci0gIGN1cnNvcjogcG9pbnRlcjsKLX0KLQotKiAvZGVlcC8gcGljdHVyZS1vcHMtbGlzdC12aWV3ID4gLngtbGlzdC12aWV3IC5saXN0LWl0ZW0gPiAqIHsKLSAgY29sb3I6ICM3Nzc7Ci0gIGZvbnQtc2l6ZTogeC1zbWFsbDsKLSAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKLSAgbWFyZ2luLWxlZnQ6IDFlbTsKLSAgbWF4LXdpZHRoOiAzMDBweDsgLyogZm9yY2UgbG9uZyBzdHJpbmdzIHRvIHdyYXAgKi8KLX0KLQotKiAvZGVlcC8gcGljdHVyZS1vcHMtbGlzdC12aWV3ID4gLngtbGlzdC12aWV3IC5saXN0LWl0ZW0gPiAuZWxlbWVudEluZm8gewotICBjb2xvcjogcHVycGxlOwotICBmb250LXNpemU6IHNtYWxsOwotICBmb250LXdlaWdodDogYm9sZDsKLX0KLQotKiAvZGVlcC8gcGljdHVyZS1vcHMtbGlzdC12aWV3ID4gLngtbGlzdC12aWV3IC5saXN0LWl0ZW0gPiAudGltZSB7Ci0gIGNvbG9yOiByZ2IoMTM2LCAwLCAwKTsKLX0KLQotKiAvZGVlcC8gLngtbGlzdC12aWV3OmZvY3VzID4gLmxpc3QtaXRlbVtiZWZvcmVTZWxlY3Rpb25dIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MSwgMjE3LCAyMDIpOwotICBvdXRsaW5lOiAxcHggZG90dGVkIHJnYmEoMCwgMCwgMCwgMC4xKTsKLSAgb3V0bGluZS1vZmZzZXQ6IDA7Ci19Ci0KLSogL2RlZXAvIC54LWxpc3QtdmlldyA+IC5saXN0LWl0ZW1bYmVmb3JlU2VsZWN0aW9uXSB7Ci0gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDMsIDE5OSwgMTY1KTsKLX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNlOWJkOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3LmNzcyI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9jb25zdGFudHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2Mvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2xpc3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS9kb21faGVscGVycy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIE9QU19USU1JTkdfSVRFUkFUSU9OUyA9IDM7IC8vIEl0ZXJhdGlvbnMgdG8gYXZlcmFnZSBvcCB0aW1pbmcgaW5mbyBvdmVyLgotICB2YXIgQU5OT1RBVElPTiA9ICdDb21tZW50JzsKLSAgdmFyIEJFR0lOX0FOTk9UQVRJT04gPSAnQmVnaW5Db21tZW50R3JvdXAnOwotICB2YXIgRU5EX0FOTk9UQVRJT04gPSAnRW5kQ29tbWVudEdyb3VwJzsKLSAgdmFyIEFOTk9UQVRJT05fSUQgPSAnSUQ6ICc7Ci0gIHZhciBBTk5PVEFUSU9OX0NMQVNTID0gJ0NMQVNTOiAnOwotICB2YXIgQU5OT1RBVElPTl9UQUcgPSAnVEFHOiAnOwotCi0gIHZhciBjb25zdGFudHMgPSB0ci5lLmNjLmNvbnN0YW50czsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgUGljdHVyZU9wc0xpc3RWaWV3ID0gdHIuYi51aS5kZWZpbmUoJ3BpY3R1cmUtb3BzLWxpc3QtdmlldycpOwotCi0gIFBpY3R1cmVPcHNMaXN0Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5vcHNMaXN0XyA9IG5ldyB0ci5iLnVpLkxpc3RWaWV3KCk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMub3BzTGlzdF8pOwotCi0gICAgICB0aGlzLnNlbGVjdGVkT3BfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXhfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5vcHNMaXN0Xy5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICdzZWxlY3Rpb24tY2hhbmdlZCcsIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpKTsKLQotICAgICAgdGhpcy5waWN0dXJlXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHBpY3R1cmUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5waWN0dXJlXzsKLSAgICB9LAotCi0gICAgc2V0IHBpY3R1cmUocGljdHVyZSkgewotICAgICAgdGhpcy5waWN0dXJlXyA9IHBpY3R1cmU7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5vcHNMaXN0Xy5jbGVhcigpOwotCi0gICAgICBpZiAoIXRoaXMucGljdHVyZV8pCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIG9wcyA9IHRoaXMucGljdHVyZV8uZ2V0T3BzKCk7Ci0gICAgICBpZiAoIW9wcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBvcHMgPSB0aGlzLnBpY3R1cmVfLnRhZ09wc1dpdGhUaW1pbmdzKG9wcyk7Ci0KLSAgICAgIG9wcyA9IHRoaXMub3BzVGFnZ2VkV2l0aEFubm90YXRpb25zXyhvcHMpOwotCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgb3AgPSBvcHNbaV07Ci0gICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIGl0ZW0ub3BJbmRleCA9IG9wLm9wSW5kZXg7Ci0gICAgICAgIGl0ZW0udGV4dENvbnRlbnQgPSBpICsgJykgJyArIG9wLmNtZF9zdHJpbmc7Ci0KLSAgICAgICAgLy8gRGlzcGxheSB0aGUgZWxlbWVudCBpbmZvIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3AsIGlmIGF2YWlsYWJsZS4KLSAgICAgICAgaWYgKG9wLmVsZW1lbnRJbmZvLnRhZyB8fCBvcC5lbGVtZW50SW5mby5pZCB8fCBvcC5lbGVtZW50SW5mby5jbGFzcykgewotICAgICAgICAgIHZhciBlbGVtZW50SW5mbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgICAgICBlbGVtZW50SW5mby5jbGFzc0xpc3QuYWRkKCdlbGVtZW50SW5mbycpOwotICAgICAgICAgIHZhciB0YWcgPSBvcC5lbGVtZW50SW5mby50YWcgPyBvcC5lbGVtZW50SW5mby50YWcgOiAndW5rbm93bic7Ci0gICAgICAgICAgdmFyIGlkID0gb3AuZWxlbWVudEluZm8uaWQgPyAnaWQ9JyArIG9wLmVsZW1lbnRJbmZvLmlkIDogdW5kZWZpbmVkOwotICAgICAgICAgIHZhciBjbGFzc05hbWUgPSBvcC5lbGVtZW50SW5mby5jbGFzcyA/ICdjbGFzcz0nICsKLSAgICAgICAgICAgICAgb3AuZWxlbWVudEluZm8uY2xhc3MgOiB1bmRlZmluZWQ7Ci0gICAgICAgICAgZWxlbWVudEluZm8udGV4dENvbnRlbnQgPQotICAgICAgICAgICAgICAnPCcgKyB0YWcgKyAoaWQgPyAnICcgOiAnJykgKwotICAgICAgICAgICAgICAoaWQgPyBpZCA6ICcnKSArIChjbGFzc05hbWUgPyAnICcgOiAnJykgKwotICAgICAgICAgICAgICAoY2xhc3NOYW1lID8gY2xhc3NOYW1lIDogJycpICsgJz4nOwotICAgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZWxlbWVudEluZm8pOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRGlzcGxheSB0aGUgU2tpYSBwYXJhbXMuCi0gICAgICAgIC8vIEZJWE1FOiBub3cgdGhhdCB3ZSBoYXZlIHN0cnVjdHVyZWQgZGF0YSwgd2Ugc2hvdWxkIGZvcm1hdCBpdC4KLSAgICAgICAgLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvdHJhY2Utdmlld2VyL2lzc3Vlcy83ODIpCi0gICAgICAgIGlmIChvcC5pbmZvLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICB2YXIgaW5mb0l0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICBpbmZvSXRlbS50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KG9wLmluZm8pOwotICAgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW5mb0l0ZW0pOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRGlzcGxheSB0aGUgb3AgdGltaW5nLCBpZiBhdmFpbGFibGUuCi0gICAgICAgIGlmIChvcC5jbWRfdGltZSAmJiBvcC5jbWRfdGltZSA+PSAwLjAwMDEpIHsKLSAgICAgICAgICB2YXIgdGltZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICAgICAgICB0aW1lLmNsYXNzTGlzdC5hZGQoJ3RpbWUnKTsKLSAgICAgICAgICB2YXIgcm91bmRlZCA9IG9wLmNtZF90aW1lLnRvRml4ZWQoNCk7Ci0gICAgICAgICAgdGltZS50ZXh0Q29udGVudCA9ICcoJyArIHJvdW5kZWQgKyAnbXMpJzsKLSAgICAgICAgICBpdGVtLmFwcGVuZENoaWxkKHRpbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5vcHNMaXN0Xy5hcHBlbmRDaGlsZChpdGVtKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgb25TZWxlY3Rpb25DaGFuZ2VkXzogZnVuY3Rpb24oZSkgewotICAgICAgdmFyIGJlZm9yZVNlbGVjdGVkT3AgPSB0cnVlOwotCi0gICAgICAvLyBEZXNlbGVjdCBvbiByZS1zZWxlY3Rpb24uCi0gICAgICBpZiAodGhpcy5vcHNMaXN0Xy5zZWxlY3RlZEVsZW1lbnQgPT09IHRoaXMuc2VsZWN0ZWRPcF8pIHsKLSAgICAgICAgdGhpcy5vcHNMaXN0Xy5zZWxlY3RlZEVsZW1lbnQgPSB1bmRlZmluZWQ7Ci0gICAgICAgIGJlZm9yZVNlbGVjdGVkT3AgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXhfID0gdW5kZWZpbmVkOwotICAgICAgfQotCi0gICAgICB0aGlzLnNlbGVjdGVkT3BfID0gdGhpcy5vcHNMaXN0Xy5zZWxlY3RlZEVsZW1lbnQ7Ci0KLSAgICAgIC8vIFNldCBzZWxlY3Rpb24gb24gYWxsIHByZXZpb3VzIG9wcy4KLSAgICAgIHZhciBvcHMgPSB0aGlzLm9wc0xpc3RfLmNoaWxkcmVuOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIG9wID0gb3BzW2ldOwotICAgICAgICBpZiAob3AgPT09IHRoaXMuc2VsZWN0ZWRPcF8pIHsKLSAgICAgICAgICBiZWZvcmVTZWxlY3RlZE9wID0gZmFsc2U7Ci0gICAgICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXhfID0gb3Aub3BJbmRleDsKLSAgICAgICAgfSBlbHNlIGlmIChiZWZvcmVTZWxlY3RlZE9wKSB7Ci0gICAgICAgICAgb3Auc2V0QXR0cmlidXRlKCdiZWZvcmVTZWxlY3Rpb24nLCAnYmVmb3JlU2VsZWN0aW9uJyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgb3AucmVtb3ZlQXR0cmlidXRlKCdiZWZvcmVTZWxlY3Rpb24nKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgZmFsc2UpOwotICAgIH0sCi0KLSAgICBnZXQgbnVtT3BzKCkgewotICAgICAgcmV0dXJuIHRoaXMub3BzTGlzdF8uY2hpbGRyZW4ubGVuZ3RoOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0ZWRPcEluZGV4KCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcEluZGV4XzsKLSAgICB9LAotCi0gICAgc2V0IHNlbGVjdGVkT3BJbmRleChzKSB7Ci0gICAgICB0aGlzLnNlbGVjdGVkT3BJbmRleF8gPSBzOwotCi0gICAgICBpZiAocyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHRoaXMub3BzTGlzdF8uc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5zZWxlY3RlZE9wXzsKLSAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBpZiAocyA8IDApIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbmRleCcpOwotICAgICAgICBpZiAocyA+PSB0aGlzLm51bU9wcykgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGluZGV4Jyk7Ci0gICAgICAgIHRoaXMub3BzTGlzdF8uc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5vcHNMaXN0Xy5nZXRFbGVtZW50QnlJbmRleChzICsgMSk7Ci0gICAgICAgIHRyLmIuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCh0aGlzLm9wc0xpc3RfLnNlbGVjdGVkRWxlbWVudCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFJldHVybiBTa2lhIG9wZXJhdGlvbnMgdGFnZ2VkIGJ5IGFubm90YXRpb24uCi0gICAgICoKLSAgICAgKiBUaGUgb3BzIHJldHVybmVkIGZyb20gUGljdHVyZS5nZXRPcHMoKSBjb250YWluIGJvdGggU2tpYSBvcHMgYW5kCi0gICAgICogYW5ub3RhdGlvbnMgdGhyZWFkZWQgdG9nZXRoZXIuIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyBhbGwgYW5ub3RhdGlvbnMKLSAgICAgKiBmcm9tIHRoZSBsaXN0IGFuZCB0YWdzIGVhY2ggb3Agd2l0aCB0aGUgYXNzb2NpYXRlZCBhbm5vdGF0aW9ucy4KLSAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSBsYXN0IHt0YWcsIGlkLCBjbGFzc30gaXMgc3RvcmVkIGFzIGVsZW1lbnRJbmZvIG9uCi0gICAgICogZWFjaCBvcC4KLSAgICAgKgotICAgICAqIEBwYXJhbSB7QXJyYXl9IG9wcyBBcnJheSBvZiBTa2lhIG9wZXJhdGlvbnMgYW5kIGFubm90YXRpb25zLgotICAgICAqIEByZXR1cm4ge0FycmF5fSBTa2lhIG9wcyB3aGVyZSBvcC5hbm5vdGF0aW9ucyBjb250YWlucyB0aGUgYXNzb2NpYXRlZAotICAgICAqICAgICAgICAgYW5ub3RhdGlvbnMgZm9yIGEgZ2l2ZW4gb3AuCi0gICAgICovCi0gICAgb3BzVGFnZ2VkV2l0aEFubm90YXRpb25zXzogZnVuY3Rpb24ob3BzKSB7Ci0gICAgICAvLyBUaGlzIGFsZ29yaXRobSB3b3JrcyBieSB3YWxraW5nIGFsbCB0aGUgb3BzIGFuZCBwdXNoaW5nIGFueQotICAgICAgLy8gYW5ub3RhdGlvbnMgb250byBhIHN0YWNrLiBXaGVuIGEgbm9uLWFubm90YXRpb24gb3AgaXMgZm91bmQsIHRoZQotICAgICAgLy8gYW5ub3RhdGlvbnMgc3RhY2sgaXMgdHJhdmVyc2VkIGFuZCBzdG9yZWQgd2l0aCB0aGUgb3AuCi0gICAgICB2YXIgYW5ub3RhdGlvbkdyb3VwcyA9IG5ldyBBcnJheSgpOwotICAgICAgdmFyIG9wc1dpdGhvdXRBbm5vdGF0aW9ucyA9IG5ldyBBcnJheSgpOwotICAgICAgZm9yICh2YXIgb3BJbmRleCA9IDA7IG9wSW5kZXggPCBvcHMubGVuZ3RoOyBvcEluZGV4KyspIHsKLSAgICAgICAgdmFyIG9wID0gb3BzW29wSW5kZXhdOwotICAgICAgICBvcC5vcEluZGV4ID0gb3BJbmRleDsKLSAgICAgICAgc3dpdGNoIChvcC5jbWRfc3RyaW5nKSB7Ci0gICAgICAgICAgY2FzZSBCRUdJTl9BTk5PVEFUSU9OOgotICAgICAgICAgICAgYW5ub3RhdGlvbkdyb3Vwcy5wdXNoKG5ldyBBcnJheSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgRU5EX0FOTk9UQVRJT046Ci0gICAgICAgICAgICBhbm5vdGF0aW9uR3JvdXBzLnBvcCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgY2FzZSBBTk5PVEFUSU9OOgotICAgICAgICAgICAgYW5ub3RhdGlvbkdyb3Vwc1thbm5vdGF0aW9uR3JvdXBzLmxlbmd0aCAtIDFdLnB1c2gob3ApOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHZhciBhbm5vdGF0aW9ucyA9IG5ldyBBcnJheSgpOwotICAgICAgICAgICAgdmFyIGVsZW1lbnRJbmZvID0ge307Ci0gICAgICAgICAgICBhbm5vdGF0aW9uR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oYW5ub3RhdGlvbkdyb3VwKSB7Ci0gICAgICAgICAgICAgIGVsZW1lbnRJbmZvID0ge307Ci0gICAgICAgICAgICAgIGFubm90YXRpb25Hcm91cC5mb3JFYWNoKGZ1bmN0aW9uKGFubm90YXRpb24pIHsKLSAgICAgICAgICAgICAgICBhbm5vdGF0aW9uLmluZm8uZm9yRWFjaChmdW5jdGlvbihpbmZvKSB7Ci0gICAgICAgICAgICAgICAgICBpZiAoaW5mby5pbmRleE9mKEFOTk9UQVRJT05fVEFHKSAhPSAtMSkKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudEluZm8udGFnID0gaW5mby5zdWJzdHJpbmcoCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmluZGV4T2YoQU5OT1RBVElPTl9UQUcpICsKLSAgICAgICAgICAgICAgICAgICAgICAgIEFOTk9UQVRJT05fVEFHLmxlbmd0aCkudG9Mb3dlckNhc2UoKTsKLSAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGluZm8uaW5kZXhPZihBTk5PVEFUSU9OX0lEKSAhPSAtMSkKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudEluZm8uaWQgPSBpbmZvLnN1YnN0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uaW5kZXhPZihBTk5PVEFUSU9OX0lEKSArCi0gICAgICAgICAgICAgICAgICAgICAgICBBTk5PVEFUSU9OX0lELmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICBlbHNlIGlmIChpbmZvLmluZGV4T2YoQU5OT1RBVElPTl9DTEFTUykgIT0gLTEpCi0gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRJbmZvLmNsYXNzID0gaW5mby5zdWJzdHJpbmcoCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmluZGV4T2YoQU5OT1RBVElPTl9DTEFTUykgKwotICAgICAgICAgICAgICAgICAgICAgICAgQU5OT1RBVElPTl9DTEFTUy5sZW5ndGgpOwotCi0gICAgICAgICAgICAgICAgICBhbm5vdGF0aW9ucy5wdXNoKGluZm8pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgb3AuYW5ub3RhdGlvbnMgPSBhbm5vdGF0aW9uczsKLSAgICAgICAgICAgIG9wLmVsZW1lbnRJbmZvID0gZWxlbWVudEluZm87Ci0gICAgICAgICAgICBvcHNXaXRob3V0QW5ub3RhdGlvbnMucHVzaChvcCk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgcmV0dXJuIG9wc1dpdGhvdXRBbm5vdGF0aW9uczsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBQaWN0dXJlT3BzTGlzdFZpZXc6IFBpY3R1cmVPcHNMaXN0VmlldwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlld190ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3Nzc3ZTIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlld190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0IHNyYz0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdF9kYXRhLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBQaWN0dXJlT3BzTGlzdFZpZXcgPSB0ci5lLmNjLlBpY3R1cmVPcHNMaXN0VmlldzsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIGlmICghdHIuZS5jYy5QaWN0dXJlU25hcHNob3QuQ2FuUmFzdGVyaXplKCkpCi0gICAgICByZXR1cm47Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKLSAgICB2YXIgcCA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcylbMF07Ci0KLSAgICB2YXIgaW5zdGFuY2UgPSBwLm9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzTmFtZWQoJ2NjOjpQaWN0dXJlJylbMF07Ci0gICAgdmFyIHNuYXBzaG90ID0gaW5zdGFuY2Uuc25hcHNob3RzWzBdOwotCi0gICAgdmFyIHZpZXcgPSBuZXcgUGljdHVyZU9wc0xpc3RWaWV3KCk7Ci0gICAgdmlldy5waWN0dXJlID0gc25hcHNob3Q7Ci0gICAgYXNzZXJ0LmVxdWFsKHZpZXcub3BzTGlzdF8uY2hpbGRyZW4ubGVuZ3RoLCAxNDIpOwotICB9KTsKLQotICB0ZXN0KCdzZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKLSAgICBpZiAoIXRyLmUuY2MuUGljdHVyZVNuYXBzaG90LkNhblJhc3Rlcml6ZSgpKQotICAgICAgcmV0dXJuOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7Ci0gICAgdmFyIHAgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMobS5wcm9jZXNzZXMpWzBdOwotCi0gICAgdmFyIGluc3RhbmNlID0gcC5vYmplY3RzLmdldEFsbEluc3RhbmNlc05hbWVkKCdjYzo6UGljdHVyZScpWzBdOwotICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKLQotICAgIHZhciB2aWV3ID0gbmV3IFBpY3R1cmVPcHNMaXN0VmlldygpOwotICAgIHZpZXcucGljdHVyZSA9IHNuYXBzaG90OwotICAgIHZhciBkaWRTZWxlY3Rpb25DaGFuZ2UgPSAwOwotICAgIHZpZXcuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uLWNoYW5nZWQnLCBmdW5jdGlvbigpIHsKLSAgICAgIGRpZFNlbGVjdGlvbkNoYW5nZSA9IHRydWU7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoZGlkU2VsZWN0aW9uQ2hhbmdlKTsKLSAgICB2aWV3Lm9wc0xpc3RfLnNlbGVjdGVkRWxlbWVudCA9IHZpZXcub3BzTGlzdF8uY2hpbGRyZW5bM107Ci0gICAgYXNzZXJ0LmlzVHJ1ZShkaWRTZWxlY3Rpb25DaGFuZ2UpOwotICB9KTsKLQotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlldy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlNzBmMzUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlldy5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gKi8KLQotKiAvZGVlcC8gLnBpY3R1cmUtc25hcHNob3QtdmlldyB7Ci0gIC13ZWJraXQtZmxleDogMCAxIGF1dG8gIWltcG9ydGFudDsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDFhOTRkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlldy5jc3MiPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX2RlYnVnZ2VyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvb2JqZWN0X3NuYXBzaG90X3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgLyoKLSAgICogRGlzcGxheXMgYSBwaWN0dXJlIHNuYXBzaG90IGluIGEgaHVtYW4gcmVhZGFibGUgZm9ybS4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgUGljdHVyZVNuYXBzaG90VmlldyA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ3BpY3R1cmUtc25hcHNob3QtdmlldycsCi0gICAgICB0ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldyk7Ci0KLSAgUGljdHVyZVNuYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3BpY3R1cmUtc25hcHNob3QtdmlldycpOwotICAgICAgdGhpcy5waWN0dXJlRGVidWdnZXJfID0gbmV3IHRyLmUuY2MuUGljdHVyZURlYnVnZ2VyKCk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMucGljdHVyZURlYnVnZ2VyXyk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLm9iamVjdFNuYXBzaG90XyAmJiB0aGlzLnBpY3R1cmVEZWJ1Z2dlcl8pCi0gICAgICAgIHRoaXMucGljdHVyZURlYnVnZ2VyXy5waWN0dXJlID0gdGhpcy5vYmplY3RTbmFwc2hvdF87Ci0gICAgfQotICB9OwotCi0gIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAotICAgICAgUGljdHVyZVNuYXBzaG90VmlldywKLSAgICAgIHsKLSAgICAgICAgdHlwZU5hbWVzOiBbJ2NjOjpQaWN0dXJlJywgJ2NjOjpMYXllcmVkUGljdHVyZSddLAotICAgICAgICBzaG93SW5zdGFuY2VzOiBmYWxzZQotICAgICAgfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBQaWN0dXJlU25hcHNob3RWaWV3OiBQaWN0dXJlU25hcHNob3RWaWV3Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlld190ZXN0X2RhdGEuanMgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV92aWV3X3Rlc3RfZGF0YS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU3NTg2ZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV92aWV3X3Rlc3RfZGF0YS5qcworKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLSd1c2Ugc3RyaWN0JzsKLQotdmFyIGdfcGljdHVyZV90cmFjZSA9IHsKLSAgJ2NhdCc6ICdkaXNhYmxlZC1ieS1kZWZhdWx0LWNjLmRlYnVnJywKLSAgJ3BpZCc6IDIzOTY5LAotICAndGlkJzogMTc5OSwKLSAgJ3RzJzogMTQyNzAxMjg0NzM0MCwKLSAgJ3BoJzogJ08nLAotICAnbmFtZSc6ICdjYzo6UGljdHVyZScsCi0gICdhcmdzJzogewotICAgICdzbmFwc2hvdCc6IHsKLSAgICAgICdwYXJhbXMnOiB7Ci0gICAgICAgICdsYXllcl9yZWN0JzogWwotICAgICAgICAgIDU1NywKLSAgICAgICAgICAxOTQsCi0gICAgICAgICAgMzMsCi0gICAgICAgICAgMzEKLSAgICAgICAgXSwKLSAgICAgICAgJ29wYXF1ZV9yZWN0JzogWwotICAgICAgICAgIDAsCi0gICAgICAgICAgMCwKLSAgICAgICAgICAwLAotICAgICAgICAgIDAKLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgICdza3A2NCc6ICdBUUFBQUpBQkFBQ1FBQUFBSVFBQUFCOEFBQUNRQVFBQWtBQUFBQUFBQUFBQUFBQUFDd0FBQUNFQUFBQWZBQUFBQXdBQUFBRmtZV1Z5VEFFQUFBZ0FBQjREQUFBQUNBQUFIZ01BQUFBTUFBQWpBQURJd3dBQUVNTWNBQUFEQUFESVF3QUFFRU1BZ05oREFBQXZRd0VBQUFCRUFRQUFHQUFBRlFFQUFBQUFBTWhEQUFBUVF3Q0EyRU1BQUM5RERBQUFJd0FBQUFBQUFBQUFEQUFBSXdBQUFBQUFBQUFBR0FBQUZRSUFBQUFBQU1oREFBQVFRd0NBMkVNQUFDOURHQUFBRlFJQUFBQUFBTWhEQUFBUVF3Q0EyRU1BQUM5RENBQUFIZ01BQUFBY0FBQURBQURRUXdBQUlFTUFnQUZFQUFBeFF3RUFBQURVQUFBQUdBQUFGUU1BQUFBQUFOQkRBQUFnUXdDQUFVUUFBREZEQkFBQUhHd0FBQlFFQUFBQUdnQUFBRE1BU3dCTUFFOEFUQUJUQUFNQU5RQlNBRW9BU0FCVkFGWUFBQUFOQUFBQUFOWWRRd0FHTkVNQUFDNURBQURRUXdDQTFVTUFnTnBEQUlEY1F3Q0Eza01BZ09CREFJRGxRd0FBNTBNQUFPMURBQUR5UXdBQTkwTUFnUHREQUlEK1F3UUFBQndFQUFBY2RHTmhaZ0lBQUFBUFUydERiR1ZoY2xobVpYSnRiMlJsRFZOclUzSmpXR1psY20xdlpHVmpabkIwQVFBQUFBRUJCVUZ5YVdGc0JBcEJjbWxoYkNCQ2IyeGtCZ3hCY21saGJDMUNiMnhrVFZUK1wvd0FBZVdGeVlmUUFBQUFnZEc1d0JBQUFBQUFBUUVFQUFJQVwvQUFBQUFBQUFnRDhBQUFBQUFBQ0FRQUFBQVA4Q01BQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQVFRQUFnRDhBQUFBQUFBQ0FQd0FBQUFBQUFJQkFcL1wvXC9cL1wvd0l3QVFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBQkFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUJCQUFDQVB3QUFBQUFBQUlBXC9BQUFBQUFBQWdFRCt1WUtaQURBQkFBQUFBQUFBQUlCQkFBQ0FQd0FBQUFBQUFJQVwvQUFBQUFBQUFnRUF6TXpQXC9BUkNCQUFNQUFBQUJBQUFBSUdadlpRPT0nIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgfQotICB9LAotICAnaWQnOiAnMHg3ZDIyOWJjMCcKLX07CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzExMDhhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdGlsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmNjJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIGtub3duUmFzdGVyVGFza05hbWVzID0gWwotICAgICAgJ1RpbGVNYW5hZ2VyOjpSdW5SYXN0ZXJUYXNrJywKLSAgICAgICdSYXN0ZXJXb3JrZXJQb29sVGFza0ltcGw6OlJ1blJhc3Rlck9uVGhyZWFkJywKLSAgICAgICdSYXN0ZXJXb3JrZXJQb29sVGFza0ltcGw6OlJhc3RlcicsCi0gICAgICAnUmFzdGVyVGFza0ltcGw6OlJhc3RlcicsCi0gICAgICAnY2M6OlJhc3RlclRhc2snLAotICAgICAgJ1Jhc3RlclRhc2snCi0gIF07Ci0KLSAgdmFyIGtub3duQW5hbHlzaXNUYXNrTmFtZXMgPSBbCi0gICAgICAnVGlsZU1hbmFnZXI6OlJ1bkFuYWx5emVUYXNrJywKLSAgICAgICdSYXN0ZXJXb3JrZXJQb29sVGFza0ltcGw6OlJ1bkFuYWx5c2lzT25UaHJlYWQnLAotICAgICAgJ1Jhc3RlcldvcmtlclBvb2xUYXNrSW1wbDo6QW5hbHl6ZScsCi0gICAgICAnUmFzdGVyVGFza0ltcGw6OkFuYWx5emUnLAotICAgICAgJ2NjOjpBbmFseXplVGFzaycsCi0gICAgICAnQW5hbHl6ZVRhc2snCi0gIF07Ci0KLSAgZnVuY3Rpb24gZ2V0VGlsZUZyb21SYXN0ZXJUYXNrU2xpY2Uoc2xpY2UpIHsKLSAgICBpZiAoIShpc1NsaWNlRG9pbmdSYXN0ZXJpemF0aW9uKHNsaWNlKSB8fCBpc1NsaWNlRG9pbmdBbmFseXNpcyhzbGljZSkpKQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgIHZhciB0aWxlRGF0YTsKLSAgICBpZiAoc2xpY2UuYXJncy5kYXRhKQotICAgICAgdGlsZURhdGEgPSBzbGljZS5hcmdzLmRhdGE7Ci0gICAgZWxzZQotICAgICAgdGlsZURhdGEgPSBzbGljZS5hcmdzLnRpbGVEYXRhOwotICAgIGlmICh0aWxlRGF0YSA9PT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICBpZiAodGlsZURhdGEudGlsZV9pZCkKLSAgICAgIHJldHVybiB0aWxlRGF0YS50aWxlX2lkOwotCi0gICAgdmFyIHRpbGUgPSB0aWxlRGF0YS50aWxlSWQ7Ci0gICAgaWYgKCEodGlsZSBpbnN0YW5jZW9mIHRyLmUuY2MuVGlsZVNuYXBzaG90KSkKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgcmV0dXJuIHRpbGVEYXRhLnRpbGVJZDsKLSAgfQotCi0gIGZ1bmN0aW9uIGlzU2xpY2VEb2luZ1Jhc3Rlcml6YXRpb24oc2xpY2UpIHsKLSAgICBpZiAoa25vd25SYXN0ZXJUYXNrTmFtZXMuaW5kZXhPZihzbGljZS50aXRsZSkgIT09IC0xKQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgZnVuY3Rpb24gaXNTbGljZURvaW5nQW5hbHlzaXMoc2xpY2UpIHsKLSAgICBpZiAoa25vd25BbmFseXNpc1Rhc2tOYW1lcy5pbmRleE9mKHNsaWNlLnRpdGxlKSAhPT0gLTEpCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICByZXR1cm4gewotICAgIGdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlOiBnZXRUaWxlRnJvbVJhc3RlclRhc2tTbGljZSwKLSAgICBpc1NsaWNlRG9pbmdSYXN0ZXJpemF0aW9uOiBpc1NsaWNlRG9pbmdSYXN0ZXJpemF0aW9uLAotICAgIGlzU2xpY2VEb2luZ0FuYWx5c2lzOiBpc1NsaWNlRG9pbmdBbmFseXNpcwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza19zZWxlY3Rpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza19zZWxlY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTUzMjUxMC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza192aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5jYycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBSYXN0ZXJUYXNrU2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgIHRyLmUuY2MuU2VsZWN0aW9uLmNhbGwodGhpcyk7Ci0gICAgdmFyIHdoeVN1cHBvcnRlZCA9IFJhc3RlclRhc2tTZWxlY3Rpb24ud2h5U3Vwb3J0ZWQoc2VsZWN0aW9uKTsKLSAgICBpZiAoIXdoeVN1cHBvcnRlZC5vaykKLSAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbDogJyArIHdoeVN1cHBvcnRlZC53aHkpOwotICAgIHRoaXMuc2xpY2VzXyA9IHRyLmIuYXNBcnJheShzZWxlY3Rpb24pOwotICAgIHRoaXMudGlsZXNfID0gdGhpcy5zbGljZXNfLm1hcChmdW5jdGlvbihzbGljZSkgewotICAgICAgdmFyIHRpbGUgPSB0ci5lLmNjLmdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKHNsaWNlKTsKLSAgICAgIGlmICh0aWxlID09PSB1bmRlZmluZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIGR1ZSB0byAuc3VwcG9ydHMgY2hlY2suJyk7Ci0gICAgICByZXR1cm4gdGlsZTsKLSAgICB9KTsKLSAgfQotICBSYXN0ZXJUYXNrU2VsZWN0aW9uLndoeVN1cG9ydGVkID0gZnVuY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgaWYgKCEoc2VsZWN0aW9uIGluc3RhbmNlb2YgdHIuYy5TZWxlY3Rpb24pKQotICAgICAgcmV0dXJuIHtvazogZmFsc2UsIHdoeTogJ011c3QgYmUgc2VsZWN0aW9uJ307Ci0KLSAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCA9PT0gMCkKLSAgICAgIHJldHVybiB7b2s6IGZhbHNlLCB3aHk6ICdTZWxlY3Rpb24gbXVzdCBiZSBub24gZW1wdHknfTsKLQotICAgIHZhciB0aWxlMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdGlvbi5sZW5ndGg7IGkrKykgewotICAgICAgdmFyIGV2ZW50ID0gc2VsZWN0aW9uW2ldOwotICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiB0ci5tb2RlbC5TbGljZSkpCi0gICAgICAgIHJldHVybiB7b2s6IGZhbHNlLCB3aHk6ICdOb3QgYSBzbGljZSd9OwotCi0gICAgICB2YXIgdGlsZSA9IHRyLmUuY2MuZ2V0VGlsZUZyb21SYXN0ZXJUYXNrU2xpY2Uoc2VsZWN0aW9uW2ldKTsKLSAgICAgIGlmICh0aWxlID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybiB7b2s6IGZhbHNlLCB3aHk6ICdObyB0aWxlIGZvdW5kJ307Ci0KLSAgICAgIGlmIChpID09PSAwKSB7Ci0gICAgICAgIHRpbGUwID0gdGlsZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICh0aWxlLmNvbnRhaW5pbmdTbmFwc2hvdCAhPSB0aWxlMC5jb250YWluaW5nU25hcHNob3QpIHsKLSAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgb2s6IGZhbHNlLAotICAgICAgICAgICAgd2h5OiAnUmFzdGVyIHRhc2tzIGFyZSBmcm9tIGRpZmZlcmVudCBjb21wb3NpdG9yIGluc3RhbmNlcycKLSAgICAgICAgICB9OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiB7b2s6IHRydWV9OwotICB9Ci0KLSAgUmFzdGVyVGFza1NlbGVjdGlvbi5zdXBwb3J0cyA9IGZ1bmN0aW9uKHNlbGVjdGlvbikgewotICAgIHJldHVybiBSYXN0ZXJUYXNrU2VsZWN0aW9uLndoeVN1cG9ydGVkKHNlbGVjdGlvbikub2s7Ci0gIH07Ci0KLSAgUmFzdGVyVGFza1NlbGVjdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5lLmNjLlNlbGVjdGlvbi5wcm90b3R5cGUsCi0KLSAgICBnZXQgc3BlY2ljaWZpdHkoKSB7Ci0gICAgICByZXR1cm4gMzsKLSAgICB9LAotCi0gICAgZ2V0IGFzc29jaWF0ZWRMYXllcklkKCkgewotICAgICAgdmFyIHRpbGUwID0gdGhpcy50aWxlc19bMF07Ci0gICAgICB2YXIgYWxsU2FtZUxheWVyID0gdGhpcy50aWxlc18uZXZlcnkoZnVuY3Rpb24odGlsZSkgewotICAgICAgICB0aWxlLmxheWVySWQgPT0gdGlsZTAubGF5ZXJJZDsKLSAgICAgIH0pOwotICAgICAgaWYgKGFsbFNhbWVMYXllcikKLSAgICAgICAgcmV0dXJuIHRpbGUwLmxheWVySWQ7Ci0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBnZXQgZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKCkgewotICAgICAgdmFyIGhpZ2hsaWdodHMgPSB7fTsKLSAgICAgIHRoaXMudGlsZXNfLmZvckVhY2goZnVuY3Rpb24odGlsZSwgaSkgewotICAgICAgICBpZiAoaGlnaGxpZ2h0c1t0aWxlLmxheWVySWRdID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgaGlnaGxpZ2h0c1t0aWxlLmxheWVySWRdID0gW107Ci0gICAgICAgIHZhciBzbGljZSA9IHRoaXMuc2xpY2VzX1tpXTsKLSAgICAgICAgaGlnaGxpZ2h0c1t0aWxlLmxheWVySWRdLnB1c2goewotICAgICAgICAgIGNvbG9yS2V5OiBzbGljZS50aXRsZSwKLSAgICAgICAgICByZWN0OiB0aWxlLmxheWVyUmVjdAotICAgICAgICB9KTsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgcmV0dXJuIGhpZ2hsaWdodHM7Ci0gICAgfSwKLQotICAgIGNyZWF0ZUFuYWx5c2lzOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBzZWwgPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgIHRoaXMuc2xpY2VzXy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICAgIHNlbC5wdXNoKHNsaWNlKTsKLSAgICAgIH0pOwotCi0gICAgICB2YXIgYW5hbHlzaXM7Ci0gICAgICBpZiAoc2VsLmxlbmd0aCA9PSAxKQotICAgICAgICBhbmFseXNpcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKLSAgICAgIGVsc2UKLSAgICAgICAgYW5hbHlzaXMgPSBuZXcgUmFzdGVyVGFza1ZpZXcoKTsKLSAgICAgIGFuYWx5c2lzLnNlbGVjdGlvbiA9IHNlbDsKLSAgICAgIHJldHVybiBhbmFseXNpczsKLSAgICB9LAotCi0gICAgZmluZEVxdWl2YWxlbnQ6IGZ1bmN0aW9uKGx0aGkpIHsKLSAgICAgIC8vIFJhc3RlciB0YXNrcyBhcmUgb25seSB2YWxpZCBpbiBvbmUgTFRISS4KLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIC8vIFJhc3RlclRhc2tTZWxlY3Rpb24gc3BlY2lmaWMgc3R1ZmYgZm9sbG93cy4KLSAgICBnZXQgY29udGFpbmluZ1NuYXBzaG90KCkgewotICAgICAgcmV0dXJuIHRoaXMudGlsZXNfWzBdLmNvbnRhaW5pbmdTbmFwc2hvdDsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBSYXN0ZXJUYXNrU2VsZWN0aW9uOiBSYXN0ZXJUYXNrU2VsZWN0aW9uCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3NlbGVjdGlvbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ0OTEwOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdCBzcmM9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdiYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKLSAgICB2YXIgcmFzdGVyVGFza3MgPSBwLnRocmVhZHNbMV0uc2xpY2VHcm91cC5zbGljZXMuZmlsdGVyKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICByZXR1cm4gc2xpY2UudGl0bGUgPT0gJ1Jhc3RlclRhc2snOwotICAgIH0pOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKHJhc3RlclRhc2tzWzBdKTsKLSAgICBzZWxlY3Rpb24ucHVzaChyYXN0ZXJUYXNrc1sxXSk7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKHRyLmUuY2MuUmFzdGVyVGFza1NlbGVjdGlvbi5zdXBwb3J0cyhzZWxlY3Rpb24pKTsKLSAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLmUuY2MuUmFzdGVyVGFza1NlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgIHZhciBoaWdobGlnaHRzID0gc2VsZWN0aW9uLmV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZDsKLSAgICBhc3NlcnQuZXF1YWwodHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKGhpZ2hsaWdodHMpLCAxKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza192aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyNmViNmQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWUtY2MtcmFzdGVyLXRhc2stdmlldyIKLSAgICBjb25zdHJ1Y3Rvcj0iUmFzdGVyVGFza1ZpZXciPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIH0KLSAgICAjaGVhZGluZyB7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2IGlkPSJoZWFkaW5nIj4KLSAgICAgIFJhc3Rlcml6YXRpb24gY29zdHMgaW4KLSAgICAgIDx0ci1jLWEtYW5hbHlzaXMtbGluayBpZD0ibGluayI+PC90ci1jLWEtYW5hbHlzaXMtbGluaz4KLSAgICA8L2Rpdj4KLSAgICA8dHItYi11aS10YWJsZSBpZD0iY29udGVudCI+PC90ci1iLXVpLXRhYmxlPgotICA8L3RlbXBsYXRlPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotCi0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb2x1bW5zXzogZnVuY3Rpb24oaGFkQ3B1RHVyYXRpb25zKSB7Ci0gICAgICB2YXIgY29sdW1ucyA9IFsKLSAgICAgICAgewotICAgICAgICAgIHRpdGxlOiAnTGF5ZXInLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICAgIGlmIChyb3cuaXNUb3RhbHMpCi0gICAgICAgICAgICAgIHJldHVybiAnVG90YWxzJzsKLSAgICAgICAgICAgIGlmIChyb3cubGF5ZXIpIHsKLSAgICAgICAgICAgICAgdmFyIGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1hbmFseXNpcy1saW5rJyk7Ci0gICAgICAgICAgICAgIGxpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci5lLmNjLkxheWVyU2VsZWN0aW9uKGNvc3RzLmxheWVyKTsKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICdMYXllciAnICsgcm93LmxheWVySWQpOwotICAgICAgICAgICAgICByZXR1cm4gbGlua0VsOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgcmV0dXJuICdMYXllciAnICsgcm93LmxheWVySWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB3aWR0aDogJzI1MHB4JwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdOdW0gVGlsZXMnLAotICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5udW1UaWxlczsgfSwKLSAgICAgICAgICBjbXA6IGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEubnVtVGlsZXMgLSBiLm51bVRpbGVzOyB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICB0aXRsZTogJ051bSBBbmFseXNpcyBUYXNrcycsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93Lm51bUFuYWx5c2lzVGFza3M7IH0sCi0gICAgICAgICAgY21wOiBmdW5jdGlvbihhLCBiKSB7Ci0gICAgICAgICAgICByZXR1cm4gYS5udW1BbmFseXNpc1Rhc2tzIC0gYi5udW1BbmFseXNpc1Rhc2tzOwotICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIHRpdGxlOiAnTnVtIFJhc3RlciBUYXNrcycsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93Lm51bVJhc3RlclRhc2tzOyB9LAotICAgICAgICAgIGNtcDogZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS5udW1SYXN0ZXJUYXNrcyAtIGIubnVtUmFzdGVyVGFza3M7IH0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIHRpdGxlOiAnV2FsbCBEdXJhdGlvbiAobXMpJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7Ci0gICAgICAgICAgICByZXR1cm4gdHIuYi51bml0cy5jcmVhdGVUaW1lU3Bhbihyb3cuZHVyYXRpb24pOwotICAgICAgICAgIH0sCi0gICAgICAgICAgY21wOiBmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhLmR1cmF0aW9uIC0gYi5kdXJhdGlvbjsgfQotICAgICAgICB9Ci0gICAgICBdOwotCi0gICAgICBpZiAoaGFkQ3B1RHVyYXRpb25zKSB7Ci0gICAgICAgIGNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAgdGl0bGU6ICdDUFUgRHVyYXRpb24gKG1zKScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgewotICAgICAgICAgICAgcmV0dXJuIHRyLmIudW5pdHMuY3JlYXRlVGltZVNwYW4ocm93LmR1cmF0aW9uKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIGNtcDogZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS5jcHVEdXJhdGlvbiAtIGIuY3B1RHVyYXRpb247IH0KLSAgICAgICAgfSk7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBjb2xXaWR0aFBlcmNlbnRhZ2U7Ci0gICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT0gMSkKLSAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gJzEwMCUnOwotICAgICAgZWxzZQotICAgICAgICBjb2xXaWR0aFBlcmNlbnRhZ2UgPSAoMTAwIC8gKGNvbHVtbnMubGVuZ3RoIC0gMSkpLnRvRml4ZWQoMykgKyAnJSc7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykKLSAgICAgICAgY29sdW1uc1tpXS53aWR0aCA9IGNvbFdpZHRoUGVyY2VudGFnZTsKLQotICAgICAgdGhpcy4kLmNvbnRlbnQudGFibGVDb2x1bW5zID0gY29sdW1uczsKLSAgICAgIHRoaXMuJC5jb250ZW50LnNvcnRDb2x1bW5JbmRleCA9IGNvbHVtbnMubGVuZ3RoIC0gMTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC5jb250ZW50OwotCi0gICAgICBpZiAodGhpcy5zZWxlY3Rpb25fLmxlbmd0aCA9PT0gMCkgewotICAgICAgICB0aGlzLiQubGluay5zZXRTZWxlY3Rpb25BbmRDb250ZW50KHVuZGVmaW5lZCwgJycpOwotICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSBbXTsKLSAgICAgICAgdGFibGUuZm9vdGVyUm93cyA9IFtdOwotICAgICAgICB0YWJsZS5yZWJ1aWxkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgLy8gTFRISSBsaW5rLgotICAgICAgdmFyIGx0aGkgPSB0ci5lLmNjLmdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKAotICAgICAgICAgIHRoaXMuc2VsZWN0aW9uX1swXSkuY29udGFpbmluZ1NuYXBzaG90OwotICAgICAgdGhpcy4kLmxpbmsuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gbmV3IHRyLmMuU2VsZWN0aW9uKGx0aGkpOwotICAgICAgfSwgbHRoaS51c2VyRnJpZW5kbHlOYW1lKTsKLQotICAgICAgLy8gR2V0IGNvc3RzIGJ5IGxheWVyLgotICAgICAgdmFyIGNvc3RzQnlMYXllcklkID0ge307Ci0gICAgICBmdW5jdGlvbiBnZXRDdXJyZW50Q29zdHNGb3JMYXllcklkKHRpbGUpIHsKLSAgICAgICAgdmFyIGxheWVySWQgPSB0aWxlLmxheWVySWQ7Ci0gICAgICAgIHZhciBsdGhpID0gdGlsZS5jb250YWluaW5nU25hcHNob3Q7Ci0gICAgICAgIHZhciBsYXllcjsKLSAgICAgICAgaWYgKGx0aGkuYWN0aXZlVHJlZSkKLSAgICAgICAgICBsYXllciA9IGx0aGkuYWN0aXZlVHJlZS5maW5kTGF5ZXJXaXRoSWQobGF5ZXJJZCk7Ci0gICAgICAgIGlmIChsYXllciA9PT0gdW5kZWZpbmVkICYmIGx0aGkucGVuZGluZ1RyZWUpCi0gICAgICAgICAgbGF5ZXIgPSBsdGhpLnBlbmRpbmdUcmVlLmZpbmRMYXllcldpdGhJZChsYXllcklkKTsKLSAgICAgICAgaWYgKGNvc3RzQnlMYXllcklkW2xheWVySWRdID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICBjb3N0c0J5TGF5ZXJJZFtsYXllcklkXSA9IHsKLSAgICAgICAgICAgIGxheWVySWQ6IGxheWVySWQsCi0gICAgICAgICAgICBsYXllcjogbGF5ZXIsCi0gICAgICAgICAgICBudW1UaWxlczogMCwKLSAgICAgICAgICAgIG51bUFuYWx5c2lzVGFza3M6IDAsCi0gICAgICAgICAgICBudW1SYXN0ZXJUYXNrczogMCwKLSAgICAgICAgICAgIGR1cmF0aW9uOiAwLAotICAgICAgICAgICAgY3B1RHVyYXRpb246IDAKLSAgICAgICAgICB9OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjb3N0c0J5TGF5ZXJJZFtsYXllcklkXTsKLSAgICAgIH0KLQotICAgICAgdmFyIHRvdGFsRHVyYXRpb24gPSAwOwotICAgICAgdmFyIHRvdGFsQ3B1RHVyYXRpb24gPSAwOwotICAgICAgdmFyIHRvdGFsTnVtQW5hbHl6ZVRhc2tzID0gMDsKLSAgICAgIHZhciB0b3RhbE51bVJhc3Rlcml6ZVRhc2tzID0gMDsKLSAgICAgIHZhciBoYWRDcHVEdXJhdGlvbnMgPSBmYWxzZTsKLQotICAgICAgdmFyIHRpbGVzVGhhdFdlSGF2ZVNlZW4gPSB7fTsKLQotICAgICAgdGhpcy5zZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgdmFyIHRpbGUgPSB0ci5lLmNjLmdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKHNsaWNlKTsKLSAgICAgICAgdmFyIGN1ckNvc3RzID0gZ2V0Q3VycmVudENvc3RzRm9yTGF5ZXJJZCh0aWxlKTsKLQotICAgICAgICBpZiAoIXRpbGVzVGhhdFdlSGF2ZVNlZW5bdGlsZS5vYmplY3RJbnN0YW5jZS5pZF0pIHsKLSAgICAgICAgICB0aWxlc1RoYXRXZUhhdmVTZWVuW3RpbGUub2JqZWN0SW5zdGFuY2UuaWRdID0gdHJ1ZTsKLSAgICAgICAgICBjdXJDb3N0cy5udW1UaWxlcyArPSAxOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRyLmUuY2MuaXNTbGljZURvaW5nQW5hbHlzaXMoc2xpY2UpKSB7Ci0gICAgICAgICAgY3VyQ29zdHMubnVtQW5hbHlzaXNUYXNrcyArPSAxOwotICAgICAgICAgIHRvdGFsTnVtQW5hbHl6ZVRhc2tzICs9IDE7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgY3VyQ29zdHMubnVtUmFzdGVyVGFza3MgKz0gMTsKLSAgICAgICAgICB0b3RhbE51bVJhc3Rlcml6ZVRhc2tzICs9IDE7Ci0gICAgICAgIH0KLSAgICAgICAgY3VyQ29zdHMuZHVyYXRpb24gKz0gc2xpY2UuZHVyYXRpb247Ci0gICAgICAgIHRvdGFsRHVyYXRpb24gKz0gc2xpY2UuZHVyYXRpb247Ci0gICAgICAgIGlmIChzbGljZS5jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgY3VyQ29zdHMuY3B1RHVyYXRpb24gKz0gc2xpY2UuY3B1RHVyYXRpb247Ci0gICAgICAgICAgdG90YWxDcHVEdXJhdGlvbiArPSBzbGljZS5jcHVEdXJhdGlvbjsKLSAgICAgICAgICBoYWRDcHVEdXJhdGlvbnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICB9KTsKLQotICAgICAgLy8gQXBwbHkgdG8gdGhlIHRhYmxlLgotICAgICAgdGhpcy51cGRhdGVDb2x1bW5zXyhoYWRDcHVEdXJhdGlvbnMpOwotICAgICAgdGFibGUudGFibGVSb3dzID0gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKGNvc3RzQnlMYXllcklkKTsKLSAgICAgIHRhYmxlLnJlYnVpbGQoKTsKLQotICAgICAgLy8gRm9vdGVyLgotICAgICAgdGFibGUuZm9vdGVyUm93cyA9IFsKLSAgICAgICAgewotICAgICAgICAgIGlzVG90YWxzOiB0cnVlLAotICAgICAgICAgIG51bVRpbGVzOiB0ci5iLmRpY3Rpb25hcnlMZW5ndGgodGlsZXNUaGF0V2VIYXZlU2VlbiksCi0gICAgICAgICAgbnVtQW5hbHlzaXNUYXNrczogdG90YWxOdW1BbmFseXplVGFza3MsCi0gICAgICAgICAgbnVtUmFzdGVyVGFza3M6IHRvdGFsTnVtUmFzdGVyaXplVGFza3MsCi0gICAgICAgICAgZHVyYXRpb246IHRvdGFsRHVyYXRpb24sCi0gICAgICAgICAgY3B1RHVyYXRpb246IHRvdGFsQ3B1RHVyYXRpb24KLSAgICAgICAgfQotICAgICAgXTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjFiMjMwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza192aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50X3RhcmdldC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbl9jb250cm9sbGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza19zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdCBzcmM9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBjcmVhdGVTZWxlY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIHZhciByYXN0ZXJUYXNrcyA9IHAudGhyZWFkc1sxXS5zbGljZUdyb3VwLnNsaWNlcy5maWx0ZXIoZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgIHJldHVybiBzbGljZS50aXRsZSA9PSAnUmFzdGVyVGFzaycgfHwgc2xpY2UudGl0bGUgPT0gJ0FuYWx5emVUYXNrJzsKLSAgICB9KTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ubW9kZWwgPSBtOwotCi0gICAgc2VsZWN0aW9uLnB1c2gocmFzdGVyVGFza3NbMF0pOwotICAgIHNlbGVjdGlvbi5wdXNoKHJhc3RlclRhc2tzWzFdKTsKLSAgICByZXR1cm4gc2VsZWN0aW9uOwotICB9Ci0KLSAgdGVzdCgnYmFzaWMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uKCk7Ci0gICAgdmFyIHZpZXcgPSBuZXcgUmFzdGVyVGFza1ZpZXcoKTsKLSAgICB2aWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7Ci0gIH0pOwotCi0KLSAgdGVzdCgnYW5hbHlzaXNWaWV3SW50ZWdyYXRpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uKCk7Ci0KLSAgICB2YXIgdGltZWxpbmVWaWV3ID0ge21vZGVsOiBzZWxlY3Rpb24ubW9kZWx9OwotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IHRyLmMuU2VsZWN0aW9uQ29udHJvbGxlcih0aW1lbGluZVZpZXcpOwotCi0gICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtYW5hbHlzaXMtdmlldycpOwotICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uQ29udHJvbGxlciA9IHNlbGVjdGlvbkNvbnRyb2xsZXI7Ci0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsZWN0aW9uKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQoYW5hbHlzaXNFbC5xdWVyeVNlbGVjdG9yKCdSYXN0ZXJUYXNrVmlldycpKTsKLSAgICB2YXIgc3YgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAotICAgICAgICBhbmFseXNpc0VsLCAndHItYy1hLW11bHRpLXRocmVhZC1zbGljZS1zdWItdmlldycpOwotICAgIGFzc2VydC5pc1RydWUoc3YucmVxdWlyZXNUYWxsVmlldyk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2Mvc2VsZWN0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2Mvc2VsZWN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzMjMwYzAuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3NlbGVjdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gU2VsZWN0aW9uKCkgewotICAgIHRoaXMuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQgPSB1bmRlZmluZWQ7Ci0gIH07Ci0gIFNlbGVjdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogV2hlbiB0d28gdGhpbmdzIGFyZSBwaWNrZWQgaW4gdGhlIFVJLCBvbmUgbXVzdCBvY2Nhc2lvbmFsbHkgdGllLWJyZWFrCi0gICAgICogYmV0d2VlbiB0aGVtIHRvIGRlY2lkZSB3aGF0IHdhcyByZWFsbHkgY2xpY2tlZC4gVGhpbmdzIHdpdGggaGlnaGVyCi0gICAgICogc3BlY2ljaWZpdHkgd2lsbCB3aW4uCi0gICAgICovCi0gICAgZ2V0IHNwZWNpY2lmaXR5KCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSWYgYSBzZWxlY3Rpb24gaXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIGxheWVyLCB0aGVuIHRoaXMgcmV0dXJucyB0aGUKLSAgICAgKiBsYXllcklkIG9mIHRoYXQgbGF5ZXIuIElmIHRoZSBzZWxlY3Rpb24gaXMgbm90IHJlbGF0ZWQgdG8gYSBsYXllciwgZm9yCi0gICAgICogZXhhbXBsZSBpZiB0aGUgZGV2aWNlIHZpZXdwb3J0IGlzIHNlbGVjdGVkLCB0aGVuIHRoaXMgcmV0dXJucyB1bmRlZmluZWQuCi0gICAgICovCi0gICAgZ2V0IGFzc29jaWF0ZWRMYXllcklkKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSWYgYSBzZWxlY3Rpb24gaXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIHJlbmRlciBwYXNzLCB0aGVuIHRoaXMgcmV0dXJucwotICAgICAqIHRoZSBsYXllcklkIG9mIHRoYXQgbGF5ZXIuIElmIHRoZSBzZWxlY3Rpb24gaXMgbm90IHJlbGF0ZWQgdG8gYSBsYXllciwKLSAgICAgKiBmb3IgZXhhbXBsZSBpZiB0aGUgZGV2aWNlIHZpZXdwb3J0IGlzIHNlbGVjdGVkLCB0aGVuIHRoaXMgcmV0dXJucwotICAgICAqIHVuZGVmaW5lZC4KLSAgICAgKi8KLSAgICBnZXQgYXNzb2NpYXRlZFJlbmRlclBhc3NJZCgpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotCi0gICAgZ2V0IGhpZ2hsaWdodHNCeUxheWVySWQoKSB7Ci0gICAgICByZXR1cm4ge307Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENhbGxlZCB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgbWFkZSBhY3RpdmUgaW4gdGhlIGxheWVyIHZpZXcuIE11c3QgcmV0dXJuCi0gICAgICogYW4gSFRNTEVsZW1lbnQgdGhhdCBleHBsYWlucyB0aGlzIHNlbGVjdGlvbiBpbiBkZXRhaWwuCi0gICAgICovCi0gICAgY3JlYXRlQW5hbHlzaXM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogU2hvdWxkIHRyeSB0byBjcmVhdGUgdGhlIGVxdWl2YWxlbnQgc2VsZWN0aW9uIGluIHRoZSBwcm92aWRlZCBMVEhJLAotICAgICAqIG9yIHVuZGVmaW5lZCBpZiBpdCBjYW4ndCBiZSBkb25lLgotICAgICAqLwotICAgIGZpbmRFcXVpdmFsZW50OiBmdW5jdGlvbihsdGhpKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBSZW5kZXJQYXNzU2VsZWN0aW9uKHJlbmRlclBhc3MsIHJlbmRlclBhc3NJZCkgewotICAgIGlmICghcmVuZGVyUGFzcyB8fCAocmVuZGVyUGFzc0lkID09PSB1bmRlZmluZWQpKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZW5kZXIgcGFzcyAod2l0aCBpZCkgaXMgcmVxdWlyZWQnKTsKLSAgICB0aGlzLnJlbmRlclBhc3NfID0gcmVuZGVyUGFzczsKLSAgICB0aGlzLnJlbmRlclBhc3NJZF8gPSByZW5kZXJQYXNzSWQ7Ci0gIH0KLQotICBSZW5kZXJQYXNzU2VsZWN0aW9uLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFNlbGVjdGlvbi5wcm90b3R5cGUsCi0KLSAgICBnZXQgc3BlY2ljaWZpdHkoKSB7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9LAotCi0gICAgZ2V0IGFzc29jaWF0ZWRMYXllcklkKCkgewotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IGFzc29jaWF0ZWRSZW5kZXJQYXNzSWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yZW5kZXJQYXNzSWRfOwotICAgIH0sCi0KLSAgICBnZXQgcmVuZGVyUGFzcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnJlbmRlclBhc3NfOwotICAgIH0sCi0KLSAgICBjcmVhdGVBbmFseXNpczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZGF0YVZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICd0ci1jLWEtZ2VuZXJpYy1vYmplY3Qtdmlldy13aXRoLWxhYmVsJyk7Ci0gICAgICBkYXRhVmlldy5sYWJlbCA9ICdSZW5kZXJQYXNzICcgKyB0aGlzLnJlbmRlclBhc3NJZF87Ci0gICAgICBkYXRhVmlldy5vYmplY3QgPSB0aGlzLnJlbmRlclBhc3NfLmFyZ3M7Ci0gICAgICByZXR1cm4gZGF0YVZpZXc7Ci0gICAgfSwKLQotICAgIGdldCB0aXRsZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnJlbmRlclBhc3NfLm9iamVjdEluc3RhbmNlLnR5cGVOYW1lOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBMYXllclNlbGVjdGlvbihsYXllcikgewotICAgIGlmICghbGF5ZXIpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xheWVyIGlzIHJlcXVpcmVkJyk7Ci0gICAgdGhpcy5sYXllcl8gPSBsYXllcjsKLSAgfQotCi0gIExheWVyU2VsZWN0aW9uLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFNlbGVjdGlvbi5wcm90b3R5cGUsCi0KLSAgICBnZXQgc3BlY2ljaWZpdHkoKSB7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9LAotCi0gICAgZ2V0IGFzc29jaWF0ZWRMYXllcklkKCkgewotICAgICAgcmV0dXJuIHRoaXMubGF5ZXJfLmxheWVySWQ7Ci0gICAgfSwKLQotICAgIGdldCBhc3NvY2lhdGVkUmVuZGVyUGFzc0lkKCkgewotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IGxheWVyKCkgewotICAgICAgcmV0dXJuIHRoaXMubGF5ZXJfOwotICAgIH0sCi0KLSAgICBjcmVhdGVBbmFseXNpczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZGF0YVZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICd0ci1jLWEtZ2VuZXJpYy1vYmplY3Qtdmlldy13aXRoLWxhYmVsJyk7Ci0gICAgICBkYXRhVmlldy5sYWJlbCA9ICdMYXllciAnICsgdGhpcy5sYXllcl8ubGF5ZXJJZDsKLSAgICAgIGlmICh0aGlzLmxheWVyXy51c2luZ0dwdVJhc3Rlcml6YXRpb24pCi0gICAgICAgIGRhdGFWaWV3LmxhYmVsICs9ICcgKEdQVS1yYXN0ZXJpemVkKSc7Ci0gICAgICBkYXRhVmlldy5vYmplY3QgPSB0aGlzLmxheWVyXy5hcmdzOwotICAgICAgcmV0dXJuIGRhdGFWaWV3OwotICAgIH0sCi0KLSAgICBnZXQgdGl0bGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sYXllcl8ub2JqZWN0SW5zdGFuY2UudHlwZU5hbWU7Ci0gICAgfSwKLQotICAgIGZpbmRFcXVpdmFsZW50OiBmdW5jdGlvbihsdGhpKSB7Ci0gICAgICB2YXIgbGF5ZXIgPSBsdGhpLmFjdGl2ZVRyZWUuZmluZExheWVyV2l0aElkKHRoaXMubGF5ZXJfLmxheWVySWQpIHx8Ci0gICAgICAgICAgbHRoaS5wZW5kaW5nVHJlZS5maW5kTGF5ZXJXaXRoSWQodGhpcy5sYXllcl8ubGF5ZXJJZCk7Ci0gICAgICBpZiAoIWxheWVyKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIG5ldyBMYXllclNlbGVjdGlvbihsYXllcik7Ci0gICAgfQotICB9OwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFRpbGVTZWxlY3Rpb24odGlsZSwgb3B0X2RhdGEpIHsKLSAgICB0aGlzLnRpbGVfID0gdGlsZTsKLSAgICB0aGlzLmRhdGFfID0gb3B0X2RhdGEgfHwge307Ci0gIH0KLQotICBUaWxlU2VsZWN0aW9uLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFNlbGVjdGlvbi5wcm90b3R5cGUsCi0KLSAgICBnZXQgc3BlY2ljaWZpdHkoKSB7Ci0gICAgICByZXR1cm4gMjsKLSAgICB9LAotCi0gICAgZ2V0IGFzc29jaWF0ZWRMYXllcklkKCkgewotICAgICAgcmV0dXJuIHRoaXMudGlsZV8ubGF5ZXJJZDsKLSAgICB9LAotCi0gICAgZ2V0IGhpZ2hsaWdodHNCeUxheWVySWQoKSB7Ci0gICAgICB2YXIgaGlnaGxpZ2h0cyA9IHt9OwotICAgICAgaGlnaGxpZ2h0c1t0aGlzLnRpbGVfLmxheWVySWRdID0gWwotICAgICAgICB7Ci0gICAgICAgICAgY29sb3JLZXk6IHRoaXMudGlsZV8ub2JqZWN0SW5zdGFuY2UudHlwZU5hbWUsCi0gICAgICAgICAgcmVjdDogdGhpcy50aWxlXy5sYXllclJlY3QKLSAgICAgICAgfQotICAgICAgXTsKLSAgICAgIHJldHVybiBoaWdobGlnaHRzOwotICAgIH0sCi0KLSAgICBjcmVhdGVBbmFseXNpczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYW5hbHlzaXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICd0ci1jLWEtZ2VuZXJpYy1vYmplY3Qtdmlldy13aXRoLWxhYmVsJyk7Ci0gICAgICBhbmFseXNpcy5sYWJlbCA9ICdUaWxlICcgKyB0aGlzLnRpbGVfLm9iamVjdEluc3RhbmNlLmlkICsgJyBvbiBsYXllciAnICsKLSAgICAgICAgICB0aGlzLnRpbGVfLmxheWVySWQ7Ci0gICAgICBpZiAodGhpcy5kYXRhXykgewotICAgICAgICBhbmFseXNpcy5vYmplY3QgPSB7Ci0gICAgICAgICAgbW9yZUluZm86IHRoaXMuZGF0YV8sCi0gICAgICAgICAgdGlsZUFyZ3M6IHRoaXMudGlsZV8uYXJncwotICAgICAgICB9OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgYW5hbHlzaXMub2JqZWN0ID0gdGhpcy50aWxlXy5hcmdzOwotICAgICAgfQotICAgICAgcmV0dXJuIGFuYWx5c2lzOwotICAgIH0sCi0KLSAgICBmaW5kRXF1aXZhbGVudDogZnVuY3Rpb24obHRoaSkgewotICAgICAgdmFyIHRpbGVJbnN0YW5jZSA9IHRoaXMudGlsZV8udGlsZUluc3RhbmNlOwotICAgICAgaWYgKGx0aGkudHMgPCB0aWxlSW5zdGFuY2UuY3JlYXRpb25UcyB8fAotICAgICAgICAgIGx0aGkudHMgPj0gdGlsZUluc3RhbmNlLmRlbGV0aW9uVHMpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICB2YXIgdGlsZVNuYXBzaG90ID0gdGlsZUluc3RhbmNlLmdldFNuYXBzaG90QXQobHRoaS50cyk7Ci0gICAgICBpZiAoIXRpbGVTbmFwc2hvdCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiBuZXcgVGlsZVNlbGVjdGlvbih0aWxlU25hcHNob3QpOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBMYXllclJlY3RTZWxlY3Rpb24obGF5ZXIsIHJlY3RUeXBlLCByZWN0LCBvcHRfZGF0YSkgewotICAgIHRoaXMubGF5ZXJfID0gbGF5ZXI7Ci0gICAgdGhpcy5yZWN0VHlwZV8gPSByZWN0VHlwZTsKLSAgICB0aGlzLnJlY3RfID0gcmVjdDsKLSAgICB0aGlzLmRhdGFfID0gb3B0X2RhdGEgIT09IHVuZGVmaW5lZCA/IG9wdF9kYXRhIDogcmVjdDsKLSAgfQotCi0gIExheWVyUmVjdFNlbGVjdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBTZWxlY3Rpb24ucHJvdG90eXBlLAotCi0gICAgZ2V0IHNwZWNpY2lmaXR5KCkgewotICAgICAgcmV0dXJuIDI7Ci0gICAgfSwKLQotICAgIGdldCBhc3NvY2lhdGVkTGF5ZXJJZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmxheWVyXy5sYXllcklkOwotICAgIH0sCi0KLQotICAgIGdldCBoaWdobGlnaHRzQnlMYXllcklkKCkgewotICAgICAgdmFyIGhpZ2hsaWdodHMgPSB7fTsKLSAgICAgIGhpZ2hsaWdodHNbdGhpcy5sYXllcl8ubGF5ZXJJZF0gPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBjb2xvcktleTogdGhpcy5yZWN0VHlwZV8sCi0gICAgICAgICAgcmVjdDogdGhpcy5yZWN0XwotICAgICAgICB9Ci0gICAgICBdOwotICAgICAgcmV0dXJuIGhpZ2hsaWdodHM7Ci0gICAgfSwKLQotICAgIGNyZWF0ZUFuYWx5c2lzOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBhbmFseXNpcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCi0gICAgICAgICAgJ3RyLWMtYS1nZW5lcmljLW9iamVjdC12aWV3LXdpdGgtbGFiZWwnKTsKLSAgICAgIGFuYWx5c2lzLmxhYmVsID0gdGhpcy5yZWN0VHlwZV8gKyAnIG9uIGxheWVyICcgKyB0aGlzLmxheWVyXy5sYXllcklkOwotICAgICAgYW5hbHlzaXMub2JqZWN0ID0gdGhpcy5kYXRhXzsKLSAgICAgIHJldHVybiBhbmFseXNpczsKLSAgICB9LAotCi0gICAgZmluZEVxdWl2YWxlbnQ6IGZ1bmN0aW9uKGx0aGkpIHsKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfQotICB9OwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEFuaW1hdGlvblJlY3RTZWxlY3Rpb24obGF5ZXIsIHJlY3QpIHsKLSAgICB0aGlzLmxheWVyXyA9IGxheWVyOwotICAgIHRoaXMucmVjdF8gPSByZWN0OwotICB9Ci0KLSAgQW5pbWF0aW9uUmVjdFNlbGVjdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBTZWxlY3Rpb24ucHJvdG90eXBlLAotCi0gICAgZ2V0IHNwZWNpY2lmaXR5KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfSwKLQotICAgIGdldCBhc3NvY2lhdGVkTGF5ZXJJZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmxheWVyXy5sYXllcklkOwotICAgIH0sCi0KLSAgICBjcmVhdGVBbmFseXNpczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYW5hbHlzaXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAotICAgICAgICAgICd0ci1jLWEtZ2VuZXJpYy1vYmplY3Qtdmlldy13aXRoLWxhYmVsJyk7Ci0gICAgICBhbmFseXNpcy5sYWJlbCA9ICdBbmltYXRpb24gQm91bmRzIG9mIGxheWVyICcgKyB0aGlzLmxheWVyXy5sYXllcklkOwotICAgICAgYW5hbHlzaXMub2JqZWN0ID0gdGhpcy5yZWN0XzsKLSAgICAgIHJldHVybiBhbmFseXNpczsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTZWxlY3Rpb246IFNlbGVjdGlvbiwKLSAgICBSZW5kZXJQYXNzU2VsZWN0aW9uOiBSZW5kZXJQYXNzU2VsZWN0aW9uLAotICAgIExheWVyU2VsZWN0aW9uOiBMYXllclNlbGVjdGlvbiwKLSAgICBUaWxlU2VsZWN0aW9uOiBUaWxlU2VsZWN0aW9uLAotICAgIExheWVyUmVjdFNlbGVjdGlvbjogTGF5ZXJSZWN0U2VsZWN0aW9uLAotICAgIEFuaW1hdGlvblJlY3RTZWxlY3Rpb246IEFuaW1hdGlvblJlY3RTZWxlY3Rpb24KLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3NTBkZGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3RpbGVfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy90aWxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3RpbGVfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdCBzcmM9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2Jhc2ljJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKLSAgICB2YXIgcCA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcylbMF07Ci0gICAgdmFyIGluc3RhbmNlID0gcC5vYmplY3RzLmdldEFsbEluc3RhbmNlc05hbWVkKCdjYzo6VGlsZScpWzBdOwotICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKLQotICAgIGFzc2VydC5pbnN0YW5jZU9mKHNuYXBzaG90LCB0ci5lLmNjLlRpbGVTbmFwc2hvdCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3ZpZXcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGNkMTNmNi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV92aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3RpbGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08c2NyaXB0PgotCi0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmNjJywgZnVuY3Rpb24oKSB7Ci0gIC8qCi0gICAqIERpc3BsYXlzIGEgdGlsZSBpbiBhIGh1bWFuIHJlYWRhYmxlIGZvcm0uCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgdmFyIFRpbGVTbmFwc2hvdFZpZXcgPSB0ci5iLnVpLmRlZmluZSgKLSAgICAgICd0aWxlLXNuYXBzaG90LXZpZXcnLAotICAgICAgdHIuYy5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcpOwotCi0gIFRpbGVTbmFwc2hvdFZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0aWxlLXNuYXBzaG90LXZpZXcnKTsKLSAgICAgIHRoaXMubGF5ZXJUcmVlVmlld18gPSBuZXcgdHIuZS5jYy5MYXllclRyZWVIb3N0SW1wbFNuYXBzaG90VmlldygpOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmxheWVyVHJlZVZpZXdfKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHRpbGUgPSB0aGlzLm9iamVjdFNuYXBzaG90XzsKLSAgICAgIHZhciBsYXllclRyZWVIb3N0SW1wbCA9IHRpbGUuY29udGFpbmluZ1NuYXBzaG90OwotICAgICAgaWYgKCFsYXllclRyZWVIb3N0SW1wbCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB0aGlzLmxheWVyVHJlZVZpZXdfLm9iamVjdFNuYXBzaG90ID0gbGF5ZXJUcmVlSG9zdEltcGw7Ci0gICAgICB0aGlzLmxheWVyVHJlZVZpZXdfLnNlbGVjdGlvbiA9IG5ldyB0ci5lLmNjLlRpbGVTZWxlY3Rpb24odGlsZSk7Ci0gICAgfQotICB9OwotCi0gIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAotICAgICAgVGlsZVNuYXBzaG90VmlldywKLSAgICAgIHsKLSAgICAgICAgdHlwZU5hbWU6ICdjYzo6VGlsZScsCi0gICAgICAgIHNob3dJblRyYWNrVmlldzogZmFsc2UKLSAgICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgVGlsZVNuYXBzaG90VmlldzogVGlsZVNuYXBzaG90VmlldwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYXVkaXRvci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2Nocm9tZV9hdWRpdG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZDYzN2IuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2Nocm9tZV9hdWRpdG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hdWRpdG9yLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9pbmZvLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlX3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV9tb2RlbF9oZWxwZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3JhaWxfaXJfZmluZGVyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQmFzZSBjbGFzcyBmb3IgdHJhY2UgZGF0YSBBdWRpdG9ycy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmUuYXVkaXRzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBBdWRpdG9yID0gdHIuYy5BdWRpdG9yOwotCi0gIC8qKgotICAgKiBBdWRpdG9yIGZvciBDaHJvbWUtc3BlY2lmaWMgdHJhY2VzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENocm9tZUF1ZGl0b3IobW9kZWwpIHsKLSAgICB0aGlzLm1vZGVsID0gbW9kZWw7Ci0gICAgaWYgKHRyLmUuYXVkaXRzLkNocm9tZU1vZGVsSGVscGVyLnN1cHBvcnRzTW9kZWwodGhpcy5tb2RlbCkpIHsKLSAgICAgIHZhciBtb2RlbEhlbHBlciA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcih0aGlzLm1vZGVsKTsKLQotICAgICAgLy8gTXVzdCBiZSBhIGJyb3dzZXJIZWxwZXIgaW4gb3JkZXIgdG8gZG8gYXVkaXRzLgotICAgICAgaWYgKG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgdGhpcy5tb2RlbEhlbHBlciA9IHVuZGVmaW5lZDsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5tb2RlbEhlbHBlciA9IG1vZGVsSGVscGVyOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aGlzLm1vZGVsSGVscGVyID0gdW5kZWZpbmVkOwotICAgIH0KLSAgfTsKLQotICBDaHJvbWVBdWRpdG9yLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEF1ZGl0b3IucHJvdG90eXBlLAotCi0gICAgcnVuQW5ub3RhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLm1vZGVsSGVscGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMubW9kZWwuZ2V0QWxsUHJvY2Vzc2VzKCkuZm9yRWFjaChmdW5jdGlvbihwcm9jZXNzKSB7Ci0gICAgICAgIGlmIChwcm9jZXNzLmxhYmVscyAhPT0gdW5kZWZpbmVkICYmCi0gICAgICAgICAgICBwcm9jZXNzLmxhYmVscy5sZW5ndGggPT0gMSAmJgotICAgICAgICAgICAgcHJvY2Vzcy5sYWJlbHNbMF0gPT0gJ2Nocm9tZTovL3RyYWNpbmcnKQotICAgICAgICAgIHByb2Nlc3MuaW1wb3J0YW50ID0gZmFsc2U7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgcnVuQXVkaXQ6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLm1vZGVsSGVscGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIC8vIENocm9tZUF1ZGl0b3IgaXMgZGlzYWJsZWQgd2hlbiB1c2VkIGRpcmVjdGx5IGluc2lkZSBhYm91dDovL3RyYWNpbmcsCi0gICAgICAvLyBmb3Igbm93LgotICAgICAgaWYgKHdpbmRvdy5wcm9maWxpbmdWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGlmICh0ci5lLnJhaWwuUkFJTElSRmluZGVyLnN1cHBvcnRzTW9kZWxIZWxwZXIodGhpcy5tb2RlbEhlbHBlcikpIHsKLSAgICAgICAgdmFyIHJpcmYgPSBuZXcgdHIuZS5yYWlsLlJBSUxJUkZpbmRlcih0aGlzLm1vZGVsLCB0aGlzLm1vZGVsSGVscGVyKTsKLSAgICAgICAgcmlyZi5maW5kQWxsSW50ZXJhY3Rpb25SZWNvcmRzKCkuZm9yRWFjaChmdW5jdGlvbihpcikgewotICAgICAgICAgIHRoaXMubW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQoaXIpOwotICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgfQotCi0gICAgICB0aGlzLmFkZEJpZ1Rhc2tBbGVydHMoKTsKLSAgICB9LAotCi0gICAgYWRkQmlnVGFza0FsZXJ0czogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgbW9kZWwgPSB0aGlzLm1vZGVsOwotICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5tb2RlbEhlbHBlci5yZW5kZXJlckhlbHBlcnMsIGZ1bmN0aW9uKHBpZCwgcmVuZGVyZXIpIHsKLSAgICAgICAgdmFyIHNsaWNlcyA9IHJlbmRlcmVyLm1haW5UaHJlYWQuc2xpY2VHcm91cC5zbGljZXM7Ci0gICAgICAgIHNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICAgICAgaWYgKHNsaWNlLmNhdGVnb3J5ICE9ICd0b3BsZXZlbCcpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgaWYgKHNsaWNlLmR1cmF0aW9uID4gNzUuMCkgewotICAgICAgICAgICAgdmFyIGFsZXJ0SW5mbyA9IG5ldyB0ci5tb2RlbC5FdmVudEluZm8oCi0gICAgICAgICAgICAgICAgJ1Rhc2sgdG9vIGxvbmcnLAotICAgICAgICAgICAgICAgICdUYXNrcyB0YWtpbmcgPj0gNzVtcyBhcmUgYmFkLCBhbmQgc2hvdWxkIGJlIGJyb2tlbiB1cCB0byAnICsKLSAgICAgICAgICAgICAgICAnZW5zdXJlIHRoZSBtYWluIHRocmVhZCBpcyByZXNwb25zaXZlJyk7Ci0gICAgICAgICAgICB2YXIgY2VudGVyID0gc2xpY2Uuc3RhcnQgKyAwLjUgKiBzbGljZS5kdXJhdGlvbjsKLSAgICAgICAgICAgIHZhciBhbGVydCA9IG5ldyB0ci5tb2RlbC5BbGVydCgKLSAgICAgICAgICAgICAgICBhbGVydEluZm8sIGNlbnRlciwgW3NsaWNlXSk7Ci0gICAgICAgICAgICBtb2RlbC5hbGVydHMucHVzaChhbGVydCk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgIH0pOwotICAgIH0KLSAgfTsKLQotICBBdWRpdG9yLnJlZ2lzdGVyKENocm9tZUF1ZGl0b3IpOwotCi0gIHJldHVybiB7Ci0gICAgQ2hyb21lQXVkaXRvcjogQ2hyb21lQXVkaXRvcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYXVkaXRvcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX2F1ZGl0b3JfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWQzOTkxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYXVkaXRvcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYXVkaXRvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIGNyZWF0ZU1vZGVsV2l0aENocm9tZUF1ZGl0b3IoY3VzdG9taXplTW9kZWxDYWxsYmFjaykgewotICAgIHJldHVybiB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWxXaXRoQXVkaXRvcihmdW5jdGlvbihtKSB7Ci0gICAgICBtLmJyb3dzZXJQcm9jZXNzID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgICBtLmJyb3dzZXJNYWluID0gbS5icm93c2VyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICAgIG0uYnJvd3Nlck1haW4ubmFtZSA9ICdDckJyb3dzZXJNYWluJzsKLQotICAgICAgbS5yZW5kZXJlcjEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygzKTsKLSAgICAgIG0ucmVuZGVyZXIxTWFpbiA9IG0ucmVuZGVyZXIxLmdldE9yQ3JlYXRlVGhyZWFkKDQpOwotICAgICAgbS5yZW5kZXJlcjFNYWluLm5hbWUgPSAnQ3JSZW5kZXJlck1haW4nOwotCi0gICAgICBtLnJlbmRlcmVyMUNvbXBvc2l0b3IgPSBtLnJlbmRlcmVyMS5nZXRPckNyZWF0ZVRocmVhZCg0KTsKLSAgICAgIG0ucmVuZGVyZXIxQ29tcG9zaXRvci5uYW1lID0gJ0NvbXBvc2l0b3InOwotCi0gICAgICBjdXN0b21pemVNb2RlbENhbGxiYWNrKG0pOwotICAgIH0sIHRyLmUuYXVkaXRzLkNocm9tZUF1ZGl0b3IpOwotICB9Ci0KLSAgZnVuY3Rpb24gbmV3SW5wdXRMYXRlbmN5RXZlbnQodHNTdGFydCwgdHNFbmQsIG9wdF9hcmdzKSB7Ci0gICAgdmFyIGUgPSBuZXcgdHIubW9kZWwuQXN5bmNTbGljZSgKLSAgICAgICAgJ2JlbmNobWFyaycsICdJbnB1dExhdGVuY3knLAotICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygnSW5wdXRMYXRlbmN5JyksCi0gICAgICAgIHRzU3RhcnQsIG9wdF9hcmdzKTsKLSAgICBlLmR1cmF0aW9uID0gdHNFbmQgLSB0c1N0YXJ0OwotICAgIHJldHVybiBlOwotICB9Ci0KLSAgZnVuY3Rpb24gbmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQodHMsIG9wdF9hcmdzKSB7Ci0gICAgdmFyIGUgPSBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoCi0gICAgICAgICdiZW5jaG1hcmsnLCAnQmVuY2htYXJrSW5zdHJ1bWVudGF0aW9uOjpJbXBsVGhyZWFkUmVuZGVyaW5nU3RhdHMnLAotICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygneCcpLAotICAgICAgICB0cywgb3B0X2FyZ3MsIDApOwotICAgIHJldHVybiBlOwotICB9Ci0KLSAgdGVzdCgnc2ltcGxlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBjcmVhdGVNb2RlbFdpdGhDaHJvbWVBdWRpdG9yKGZ1bmN0aW9uKG0pIHsKLSAgICAgIHZhciBiQXN5bmNTbGljZXMgPSBtLmJyb3dzZXJNYWluLmFzeW5jU2xpY2VHcm91cDsKLSAgICAgIGJBc3luY1NsaWNlcy5wdXNoKG5ld0lucHV0TGF0ZW5jeUV2ZW50KDEwMCwgMTMwKSk7Ci0gICAgICBiQXN5bmNTbGljZXMucHVzaChuZXdJbnB1dExhdGVuY3lFdmVudCgxMTYsIDE1MCkpOwotICAgICAgYkFzeW5jU2xpY2VzLnB1c2gobmV3SW5wdXRMYXRlbmN5RXZlbnQoMTMzLCAxNjYpKTsKLSAgICAgIGJBc3luY1NsaWNlcy5wdXNoKG5ld0lucHV0TGF0ZW5jeUV2ZW50KDE1MCwgMTgzKSk7Ci0gICAgICBiQXN5bmNTbGljZXMucHVzaChuZXdJbnB1dExhdGVuY3lFdmVudCgxNjYsIDIwMCkpOwotICAgICAgYkFzeW5jU2xpY2VzLnB1c2gobmV3SW5wdXRMYXRlbmN5RXZlbnQoMTgzLCAyMTYpKTsKLQotICAgICAgdmFyIHJtMVNsaWNlcyA9IG0ucmVuZGVyZXIxQ29tcG9zaXRvci5zbGljZUdyb3VwOwotICAgICAgcm0xU2xpY2VzLnB1c2hTbGljZShuZXdJbXBsUmVuZGVyaW5nU3RhdHNFdmVudCgxMTMpKTsKLSAgICAgIHJtMVNsaWNlcy5wdXNoU2xpY2UobmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQoMTMwKSk7Ci0gICAgICBybTFTbGljZXMucHVzaFNsaWNlKG5ld0ltcGxSZW5kZXJpbmdTdGF0c0V2ZW50KDE0NykpOwotICAgICAgcm0xU2xpY2VzLnB1c2hTbGljZShuZXdJbXBsUmVuZGVyaW5nU3RhdHNFdmVudCgxNjMpKTsKLSAgICAgIHJtMVNsaWNlcy5wdXNoU2xpY2UobmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQoMTgwKSk7Ci0gICAgICBybTFTbGljZXMucHVzaFNsaWNlKG5ld0ltcGxSZW5kZXJpbmdTdGF0c0V2ZW50KDE5NykpOwotICAgICAgcm0xU2xpY2VzLnB1c2hTbGljZShuZXdJbXBsUmVuZGVyaW5nU3RhdHNFdmVudCgyMTMpKTsKLSAgICAgIHJtMVNsaWNlcy5wdXNoU2xpY2UobmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQoMjMwKSk7Ci0gICAgICBybTFTbGljZXMucHVzaFNsaWNlKG5ld0ltcGxSZW5kZXJpbmdTdGF0c0V2ZW50KDI0NykpOwotICAgIH0pOwotCi0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYnJvd3Nlcl9oZWxwZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYnJvd3Nlcl9oZWxwZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDg3MDNjZi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX2Jyb3dzZXJfaGVscGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfcHJvY2Vzc19oZWxwZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvaW5wdXRfbGF0ZW5jeV9hc3luY19zbGljZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFV0aWxpdGllcyBmb3IgYWNjZXNzaW5nIHRyYWNlIGRhdGEgYWJvdXQgdGhlIENocm9tZSBicm93c2VyLgotICovCi10ci5leHBvcnRUbygndHIuZS5hdWRpdHMnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gQ2hyb21lQnJvd3NlckhlbHBlcihtb2RlbEhlbHBlciwgcHJvY2VzcykgewotICAgIHRyLmUuYXVkaXRzLkNocm9tZVByb2Nlc3NIZWxwZXIuY2FsbCh0aGlzLCBtb2RlbEhlbHBlciwgcHJvY2Vzcyk7Ci0gICAgdGhpcy5tYWluVGhyZWFkXyA9IHByb2Nlc3MuZmluZEF0TW9zdE9uZVRocmVhZE5hbWVkKCdDckJyb3dzZXJNYWluJyk7Ci0gIH0KLQotICBDaHJvbWVCcm93c2VySGVscGVyLmlzQnJvd3NlclByb2Nlc3MgPSBmdW5jdGlvbihwcm9jZXNzKSB7Ci0gICAgaWYgKCFwcm9jZXNzLmZpbmRBdE1vc3RPbmVUaHJlYWROYW1lZCgnQ3JCcm93c2VyTWFpbicpKQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotICB9OwotCi0gIENocm9tZUJyb3dzZXJIZWxwZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuZS5hdWRpdHMuQ2hyb21lUHJvY2Vzc0hlbHBlci5wcm90b3R5cGUsCi0KLSAgICBnZXQgcmVuZGVyZXJIZWxwZXJzKCkgewotICAgICAgcmV0dXJuIHRoaXMubW9kZWxIZWxwZXIucmVuZGVyZXJIZWxwZXJzOwotICAgIH0sCi0KLSAgICBnZXRMb2FkaW5nRXZlbnRzSW5SYW5nZTogZnVuY3Rpb24ocmFuZ2VPZkludGVyZXN0KSB7Ci0gICAgICByZXR1cm4gdGhpcy5nZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICAgIHJldHVybiBzbGljZS50aXRsZS5pbmRleE9mKCdXZWJDb250ZW50c0ltcGwgTG9hZGluZycpID09PSAwICYmCi0gICAgICAgICAgICByYW5nZU9mSW50ZXJlc3QuaW50ZXJzZWN0c0V4cGxpY2l0UmFuZ2Uoc2xpY2Uuc3RhcnQsIHNsaWNlLmVuZCk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgZ2V0Q29tbWl0UHJvdmlzaW9uYWxMb2FkRXZlbnRzSW5SYW5nZTogZnVuY3Rpb24ocmFuZ2VPZkludGVyZXN0KSB7Ci0gICAgICByZXR1cm4gdGhpcy5nZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICAgIHJldHVybiBzbGljZS50aXRsZSA9PT0gJ1JlbmRlckZyYW1lSW1wbDo6ZGlkQ29tbWl0UHJvdmlzaW9uYWxMb2FkJyAmJgotICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LCBzbGljZS5lbmQpOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGdldCBoYXNMYXRlbmN5RXZlbnRzKCkgewotICAgICAgdmFyIGhhc0xhdGVuY3kgPSBmYWxzZTsKLSAgICAgIHRoaXMubW9kZWxIZWxwZXIubW9kZWwuZ2V0QWxsVGhyZWFkcygpLnNvbWUoZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICAgIHRocmVhZC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgaWYgKCFldmVudC5pc1RvcExldmVsKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2YgdHIuZS5jYy5JbnB1dExhdGVuY3lBc3luY1NsaWNlKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICBoYXNMYXRlbmN5ID0gdHJ1ZTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBoYXNMYXRlbmN5OwotICAgICAgfSk7Ci0gICAgICByZXR1cm4gaGFzTGF0ZW5jeTsKLSAgICB9LAotCi0gICAgZ2V0TGF0ZW5jeUV2ZW50c0luUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlT2ZJbnRlcmVzdCkgewotICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsQXN5bmNTbGljZXNNYXRjaGluZyhmdW5jdGlvbihzbGljZSkgewotICAgICAgICByZXR1cm4gKHNsaWNlLnRpdGxlLmluZGV4T2YoJ0lucHV0TGF0ZW5jeScpID09PSAwKSAmJgotICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LCBzbGljZS5lbmQpOwotICAgICAgfSk7Ci0gICAgICByZXR1cm4gbGF0ZW5jeUV2ZW50czsKLSAgICB9LAotCi0gICAgZ2V0QWxsQXN5bmNTbGljZXNNYXRjaGluZzogZnVuY3Rpb24ocHJlZCwgb3B0X3RoaXMpIHsKLSAgICAgIHZhciBldmVudHMgPSBbXTsKLSAgICAgIHRoaXMuaXRlckFsbFRocmVhZHMoZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICAgIHRocmVhZC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICAgICAgaWYgKHByZWQuY2FsbChvcHRfdGhpcywgc2xpY2UpKQotICAgICAgICAgICAgZXZlbnRzLnB1c2goc2xpY2UpOwotICAgICAgICB9KTsKLSAgICAgIH0pOwotICAgICAgcmV0dXJuIGV2ZW50czsKLSAgICB9LAotCi0gICAgZ2V0QWxsTmV0d29ya0V2ZW50c0luUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlT2ZJbnRlcmVzdCkgewotICAgICAgdmFyIG5ldHdvcmtFdmVudHMgPSBbXTsKLSAgICAgIHRoaXMubW9kZWxIZWxwZXIubW9kZWwuZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICAgIHRocmVhZC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgICB2YXIgbWF0Y2ggPSBmYWxzZTsKLSAgICAgICAgICBpZiAoc2xpY2UuY2F0ID09ICduZXQnIHx8IC8vIG9sZC1zdHlsZSBVUkxSZXF1ZXN0L1Jlc291cmNlIHNsaWNlcy4KLSAgICAgICAgICAgICAgc2xpY2UuY2F0ID09ICdkaXNhYmxlZC1ieS1kZWZhdWx0LW5ldGxvZycgfHwgLy8gZWFybHkgbmV0bG9nLgotICAgICAgICAgICAgICBzbGljZS5jYXQgPT0gJ25ldGxvZycpIHsKLSAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICBpZiAoIW1hdGNoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgaWYgKHJhbmdlT2ZJbnRlcmVzdC5pbnRlcnNlY3RzRXhwbGljaXRSYW5nZShzbGljZS5zdGFydCwgc2xpY2UuZW5kKSkKLSAgICAgICAgICAgIG5ldHdvcmtFdmVudHMucHVzaChzbGljZSk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgICByZXR1cm4gbmV0d29ya0V2ZW50czsKLSAgICB9LAotCi0gICAgaXRlckFsbFRocmVhZHM6IGZ1bmN0aW9uKGZ1bmMsIG9wdF90aGlzKSB7Ci0gICAgICB0ci5iLml0ZXJJdGVtcyh0aGlzLnByb2Nlc3MudGhyZWFkcywgZnVuY3Rpb24odGlkLCB0aHJlYWQpIHsKLSAgICAgICAgZnVuYy5jYWxsKG9wdF90aGlzLCB0aHJlYWQpOwotICAgICAgfSk7Ci0KLSAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMucmVuZGVyZXJIZWxwZXJzLCBmdW5jdGlvbihwaWQsIHJlbmRlcmVySGVscGVyKSB7Ci0gICAgICAgIHZhciByZW5kZXJlclByb2Nlc3MgPSByZW5kZXJlckhlbHBlci5wcm9jZXNzOwotICAgICAgICB0ci5iLml0ZXJJdGVtcyhyZW5kZXJlclByb2Nlc3MudGhyZWFkcywgZnVuY3Rpb24odGlkLCB0aHJlYWQpIHsKLSAgICAgICAgICBmdW5jLmNhbGwob3B0X3RoaXMsIHRocmVhZCk7Ci0gICAgICAgIH0pOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQ2hyb21lQnJvd3NlckhlbHBlcjogQ2hyb21lQnJvd3NlckhlbHBlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYnJvd3Nlcl9oZWxwZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2Nocm9tZV9icm93c2VyX2hlbHBlcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5Y2UwMzEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2Nocm9tZV9icm93c2VyX2hlbHBlcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV9icm93c2VyX2hlbHBlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfbW9kZWxfaGVscGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgYXVkaXRzID0gdHIuZS5hdWRpdHM7Ci0KLSAgZnVuY3Rpb24gZ2V0UmFuZ2UobWluLCBtYXgpIHsKLSAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgIHJhbmdlLm1pbiA9IG1pbjsKLSAgICByYW5nZS5tYXggPSBtYXg7Ci0gICAgcmV0dXJuIHJhbmdlOwotICB9Ci0KLSAgdGVzdCgnTG9hZGluZ0V2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gdHIuZS5hdWRpdHMubmV3Q2hyb21lTW9kZWwoZnVuY3Rpb24oKSB7IH0pOwotICAgIHZhciBtb2RlbEhlbHBlciA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtb2RlbCk7Ci0gICAgYXVkaXRzLmFkZExvYWRpbmdFdmVudChtb2RlbCwge3N0YXJ0OiAxLCBlbmQ6IDEwfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0TG9hZGluZ0V2ZW50c0luUmFuZ2UoCi0gICAgICBnZXRSYW5nZSgwLCAxMDApKS5sZW5ndGgpOwotICB9KTsKLQotICB0ZXN0KCdQcm92aXNpb25hbExvYWRFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IHRyLmUuYXVkaXRzLm5ld0Nocm9tZU1vZGVsKGZ1bmN0aW9uKCkgeyB9KTsKLSAgICB2YXIgbW9kZWxIZWxwZXIgPSBuZXcgdHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIobW9kZWwpOwotICAgIGF1ZGl0cy5hZGRQcm92aXNpb25hbExvYWRFdmVudChtb2RlbCwge3N0YXJ0OiAxLCBlbmQ6IDEwfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsCi0gICAgICBtb2RlbEhlbHBlci5icm93c2VySGVscGVyLmdldENvbW1pdFByb3Zpc2lvbmFsTG9hZEV2ZW50c0luUmFuZ2UoCi0gICAgICAgIGdldFJhbmdlKDAsIDEwMCkpLmxlbmd0aCk7Ci0gIH0pOwotCi0gIHRlc3QoJ0xhdGVuY3lFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IHRyLmUuYXVkaXRzLm5ld0Nocm9tZU1vZGVsKGZ1bmN0aW9uKCkgeyB9KTsKLSAgICB2YXIgbW9kZWxIZWxwZXIgPSBuZXcgdHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIobW9kZWwpOwotICAgIGF1ZGl0cy5hZGRHZW5lcmFsTGF0ZW5jeUluZm9FdmVudChtb2RlbCwge3N0YXJ0OiAxLCBlbmQ6IDEwfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0TGF0ZW5jeUV2ZW50c0luUmFuZ2UoCi0gICAgICBnZXRSYW5nZSgwLCAxMDApKS5sZW5ndGgpOwotICB9KTsKLQotICB0ZXN0KCdOZXR3b3JrRXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSB0ci5lLmF1ZGl0cy5uZXdDaHJvbWVNb2RlbChmdW5jdGlvbigpIHsgfSk7Ci0gICAgdmFyIG1vZGVsSGVscGVyID0gbmV3IHRyLmUuYXVkaXRzLkNocm9tZU1vZGVsSGVscGVyKG1vZGVsKTsKLSAgICBhdWRpdHMuYWRkTmV0d29ya0V2ZW50KG1vZGVsLCB7c3RhcnQ6IDEsIGVuZDogMTB9KTsKLSAgICBhc3NlcnQuZXF1YWwoMSwgbW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci5nZXRBbGxOZXR3b3JrRXZlbnRzSW5SYW5nZSgKLSAgICAgIGdldFJhbmdlKDAsIDEwMCkpLmxlbmd0aCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfdGVzdF91dGlscy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3MWQ2NDIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV9wcm9jZXNzX2hlbHBlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBCYXNlIGNsYXNzIGZvciB0cmFjZSBkYXRhIEF1ZGl0b3JzLgotICovCi10ci5leHBvcnRUbygndHIuZS5hdWRpdHMnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gbmV3Q2hyb21lTW9kZWwoY3VzdG9taXplTW9kZWxDYWxsYmFjaykgewotICAgIHJldHVybiB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgIG1vZGVsLmJyb3dzZXJQcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgICAgbW9kZWwuYnJvd3Nlck1haW4gPSBtb2RlbC5icm93c2VyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICAgIG1vZGVsLmJyb3dzZXJNYWluLm5hbWUgPSAnQ3JCcm93c2VyTWFpbic7Ci0KLSAgICAgIG1vZGVsLnJlbmRlcmVyUHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygyKTsKLSAgICAgIG1vZGVsLnJlbmRlcmVyTWFpbiA9IG1vZGVsLnJlbmRlcmVyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgzKTsKLSAgICAgIG1vZGVsLnJlbmRlcmVyTWFpbi5uYW1lID0gJ0NyUmVuZGVyZXJNYWluJzsKLQotICAgICAgbW9kZWwucmVuZGVyZXJDb21wb3NpdG9yID0gbW9kZWwucmVuZGVyZXJQcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQpOwotICAgICAgbW9kZWwucmVuZGVyZXJDb21wb3NpdG9yLm5hbWUgPSAnQ29tcG9zaXRvcic7Ci0KLSAgICAgIG1vZGVsLnJhc3RlcldvcmtlcjEgPSBtb2RlbC5yZW5kZXJlclByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNSk7Ci0gICAgICBtb2RlbC5yYXN0ZXJXb3JrZXIxLm5hbWUgPSAnQ29tcG9zaXRvclRpbGVXb3JrZXIxJzsKLQotICAgICAgY3VzdG9taXplTW9kZWxDYWxsYmFjayhtb2RlbCk7Ci0gICAgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBhZGRHZW5lcmFsTGF0ZW5jeUluZm9FdmVudChtb2RlbCwgZGljdCkgewotICAgIGRpY3QudGl0bGUgPSAnSW5wdXRMYXRlbmN5JzsKLSAgICBkaWN0LmlzVG9wTGV2ZWwgPSB0cnVlOwotICAgIHZhciBzbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXgoZGljdCk7Ci0gICAgbW9kZWwucmVuZGVyZXJNYWluLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKLSAgICByZXR1cm4gc2xpY2U7Ci0gIH0KLQotICBmdW5jdGlvbiBhZGRGbGluZ1N0YXJ0TGF0ZW5jeUluZm9FdmVudChtb2RlbCwgZGljdCkgewotICAgIHZhciB0b3BFdmVudCA9IGFkZEdlbmVyYWxMYXRlbmN5SW5mb0V2ZW50KG1vZGVsLCBkaWN0KTsKLQotICAgIGRpY3Quc3RhcnQgPSBkaWN0LmZsaW5nU3RhcnQ7Ci0gICAgZGljdC5lbmQgPSB0b3BFdmVudC5lbmQ7Ci0gICAgZGljdC50aXRsZSA9ICdJbnB1dExhdGVuY3k6R2VzdHVyZUZsaW5nU3RhcnQnOwotICAgIHZhciBmbGluZ1N0YXJ0RXZlbnQgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZUV4KGRpY3QpOwotICAgIHRvcEV2ZW50LnN1YlNsaWNlcy5wdXNoKGZsaW5nU3RhcnRFdmVudCk7Ci0gICAgcmV0dXJuIHRvcEV2ZW50OwotICB9Ci0KLSAgZnVuY3Rpb24gYWRkRmxpbmdDYW5jZWxMYXRlbmN5SW5mb0V2ZW50KG1vZGVsLCBkaWN0KSB7Ci0gICAgdmFyIHRvcEV2ZW50ID0gYWRkR2VuZXJhbExhdGVuY3lJbmZvRXZlbnQobW9kZWwsIGRpY3QpOwotCi0gICAgZGljdC5zdGFydCA9IGRpY3QuZmxpbmdDYW5jZWw7Ci0gICAgZGljdC5lbmQgPSB0b3BFdmVudC5lbmQ7Ci0gICAgZGljdC50aXRsZSA9ICdJbnB1dExhdGVuY3k6R2VzdHVyZUZsaW5nQ2FuY2VsJzsKLSAgICB2YXIgZmxpbmdDYW5jZWxFdmVudCA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXgoZGljdCk7Ci0gICAgdG9wRXZlbnQuc3ViU2xpY2VzLnB1c2goZmxpbmdDYW5jZWxFdmVudCk7Ci0gICAgcmV0dXJuIHRvcEV2ZW50OwotICB9Ci0KLSAgZnVuY3Rpb24gYWRkRmxpbmdBbmltYXRpb25FdmVudChtb2RlbCwgZGljdCkgewotICAgIGRpY3QudGl0bGUgPSAnSW5wdXRIYW5kbGVyUHJveHk6OkhhbmRsZUdlc3R1cmVGbGluZzo6c3RhcnRlZCc7Ci0gICAgdmFyIHNsaWNlID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VFeChkaWN0KTsKLSAgICBtb2RlbC5yZW5kZXJlckNvbXBvc2l0b3IuYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOwotICAgIHJldHVybiBzbGljZTsKLSAgfQotCi0gIGZ1bmN0aW9uIGFkZEZyYW1lRXZlbnQobW9kZWwsIGRpY3QpIHsKLSAgICBkaWN0LnRpdGxlID0gdHIuZS5hdWRpdHMuSU1QTF9SRU5ERVJJTkdfU1RBVFM7Ci0gICAgdmFyIHNsaWNlID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VFeChkaWN0KTsKLSAgICBtb2RlbC5yZW5kZXJlck1haW4uYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOwotICAgIHJldHVybiBzbGljZTsKLSAgfQotCi0gIGZ1bmN0aW9uIGFkZExvYWRpbmdFdmVudChtb2RlbCwgZGljdCkgewotICAgIGRpY3QudGl0bGUgPSAnV2ViQ29udGVudHNJbXBsIExvYWRpbmcnOwotICAgIHZhciBzbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXgoZGljdCk7Ci0gICAgbW9kZWwucmVuZGVyZXJNYWluLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKLSAgICByZXR1cm4gc2xpY2U7Ci0gIH0KLQotICBmdW5jdGlvbiBhZGROZXR3b3JrRXZlbnQobW9kZWwsIGRpY3QpIHsKLSAgICBkaWN0LnRpdGxlID0gJ0dlbmVyaWMgTmV0d29yayBldmVudCc7Ci0gICAgdmFyIHNsaWNlID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VFeChkaWN0KTsKLSAgICBtb2RlbC5icm93c2VyTWFpbi5hc3luY1NsaWNlR3JvdXAucHVzaChzbGljZSk7Ci0gICAgLy8gVE9ETyBXaHkgY2FuJ3QgdGhpcyBiZSBkaWN0LmNhdD8KLSAgICBzbGljZS5jYXQgPSAnbmV0bG9nJzsKLSAgICByZXR1cm4gc2xpY2U7Ci0gIH0KLQotICBmdW5jdGlvbiBhZGRQcm92aXNpb25hbExvYWRFdmVudChtb2RlbCwgZGljdCkgewotICAgIGRpY3QudGl0bGUgPSAnUmVuZGVyRnJhbWVJbXBsOjpkaWRDb21taXRQcm92aXNpb25hbExvYWQnOwotICAgIHZhciBzbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXgoZGljdCk7Ci0gICAgbW9kZWwucmVuZGVyZXJNYWluLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKLSAgICByZXR1cm4gc2xpY2U7Ci0gIH0KLQotICByZXR1cm4gewotICAgIG5ld0Nocm9tZU1vZGVsOiBuZXdDaHJvbWVNb2RlbCwKLSAgICBhZGRGcmFtZUV2ZW50OiBhZGRGcmFtZUV2ZW50LAotICAgIGFkZExvYWRpbmdFdmVudDogYWRkTG9hZGluZ0V2ZW50LAotICAgIGFkZE5ldHdvcmtFdmVudDogYWRkTmV0d29ya0V2ZW50LAotICAgIGFkZFByb3Zpc2lvbmFsTG9hZEV2ZW50OiBhZGRQcm92aXNpb25hbExvYWRFdmVudCwKLSAgICBhZGRHZW5lcmFsTGF0ZW5jeUluZm9FdmVudDogYWRkR2VuZXJhbExhdGVuY3lJbmZvRXZlbnQsCi0gICAgYWRkRmxpbmdTdGFydExhdGVuY3lJbmZvRXZlbnQ6IGFkZEZsaW5nU3RhcnRMYXRlbmN5SW5mb0V2ZW50LAotICAgIGFkZEZsaW5nQ2FuY2VsTGF0ZW5jeUluZm9FdmVudDogYWRkRmxpbmdDYW5jZWxMYXRlbmN5SW5mb0V2ZW50LAotICAgIGFkZEZsaW5nQW5pbWF0aW9uRXZlbnQ6IGFkZEZsaW5nQW5pbWF0aW9uRXZlbnQKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2dwdS9ncHUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ExODc5Zi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZS5odG1sIj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvZ3B1X2FzeW5jX3NsaWNlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvZ3B1X2FzeW5jX3NsaWNlX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQxNzQxYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBBc3luY1NsaWNlID0gdHIubW9kZWwuQXN5bmNTbGljZTsKLSAgdmFyIEdwdUFzeW5jU2xpY2UgPSB0ci5lLmdwdS5HcHVBc3luY1NsaWNlOwotCi0gIHRlc3QoJ2NvbnN0cnVjdCcsIGZ1bmN0aW9uKCkgewotICAgIGFzc2VydC5lcXVhbChBc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKCdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5kZXZpY2UnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncHUxJyksCi0gICAgICAgICAgICAgICAgIEdwdUFzeW5jU2xpY2UpOwotICAgIGFzc2VydC5lcXVhbChBc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKCdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5zZXJ2aWNlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3B1MicpLAotICAgICAgICAgICAgICAgICBHcHVBc3luY1NsaWNlKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViZ3JvdXAnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc19kZXZpY2UgPSBuZXcgR3B1QXN5bmNTbGljZSgnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuZGV2aWNlJywgJ2dwdTEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsIDAsIHsnY2hhbm5lbCc6ICd0ZXN0X2NoYW5uZWwxJ30pOwotCi0gICAgdmFyIHNfc2VydmljZSA9IG5ldyBHcHVBc3luY1NsaWNlKCdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5zZXJ2aWNlJywgJ2dwdTInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAwLCB7J2NoYW5uZWwnOiAndGVzdF9jaGFubmVsMid9KTsKLQotICAgIGFzc2VydC5lcXVhbChzX2RldmljZS52aWV3U3ViR3JvdXBUaXRsZSwgJ0RldmljZS50ZXN0X2NoYW5uZWwxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNfc2VydmljZS52aWV3U3ViR3JvdXBUaXRsZSwgJ1NlcnZpY2UudGVzdF9jaGFubmVsMicpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICd0cmFjZTEnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMTAwLAotICAgICAgIGNhdDogJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtZ3B1LnNlcnZpY2UnLCB0aWQ6IDIsIHBoOiAnYicsIGlkOiA3MX0sCi0gICAgICB7bmFtZTogJ3RyYWNlMScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAyMDAsCi0gICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuc2VydmljZScsIHRpZDogMiwgcGg6ICdlJywgaWQ6IDcxfSwKLSAgICAgIHtuYW1lOiAndHJhY2UyJywgYXJnczogeydjaGFubmVsJzogJ3Rlc3RfY2hhbm5lbCd9LCBwaWQ6IDEsIHRzOiAxMDAsCi0gICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuc2VydmljZScsIHRpZDogMiwgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAndHJhY2UyJywgYXJnczogeydjaGFubmVsJzogJ3Rlc3RfY2hhbm5lbCd9LCBwaWQ6IDEsIHRzOiAyMDAsCi0gICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuc2VydmljZScsIHRpZDogMiwgcGg6ICdlJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAndHJhY2UzJywgYXJnczogeydjaGFubmVsJzogJ3Rlc3RfY2hhbm5lbCd9LCBwaWQ6IDEsIHRzOiAxMDAsCi0gICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuZGV2aWNlJywgdGlkOiAyLCBwaDogJ2InLCBpZDogNzN9LAotICAgICAge25hbWU6ICd0cmFjZTMnLCBhcmdzOiB7J2NoYW5uZWwnOiAndGVzdF9jaGFubmVsJ30sIHBpZDogMSwgdHM6IDIwMCwKLSAgICAgICBjYXQ6ICdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5kZXZpY2UnLCB0aWQ6IDIsIHBoOiAnZScsIGlkOiA3M30KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgdmFyIHQyID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHQyLmFzeW5jU2xpY2VHcm91cC5sZW5ndGgsIDMpOwotCi0gICAgdmFyIHNsaWNlMSA9IHQyLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgdmFyIHNsaWNlMiA9IHQyLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV07Ci0gICAgdmFyIHNsaWNlMyA9IHQyLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMl07Ci0KLSAgICBhc3NlcnQuaW5zdGFuY2VPZihzbGljZTEsIEdwdUFzeW5jU2xpY2UpOwotICAgIGFzc2VydC5pbnN0YW5jZU9mKHNsaWNlMiwgR3B1QXN5bmNTbGljZSk7Ci0gICAgYXNzZXJ0Lmluc3RhbmNlT2Yoc2xpY2UzLCBHcHVBc3luY1NsaWNlKTsKLQotICAgIGFzc2VydC5lcXVhbChzbGljZTEudmlld1N1Ykdyb3VwVGl0bGUsICd0cmFjZTEnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UyLnZpZXdTdWJHcm91cFRpdGxlLCAnU2VydmljZS50ZXN0X2NoYW5uZWwnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UzLnZpZXdTdWJHcm91cFRpdGxlLCAnRGV2aWNlLnRlc3RfY2hhbm5lbCcpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTcyMTFiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9ncHUvZ3B1Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0IHNyYz0iL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3Rlc3RfZGF0YS5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdiYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfZ3B1X3N0YXRlX3RyYWNlKTsKLSAgICB2YXIgcCA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcylbMF07Ci0KLSAgICB2YXIgaW5zdGFuY2UgPSBwLm9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzTmFtZWQoJ2dwdTo6U3RhdGUnKVswXTsKLSAgICB2YXIgc25hcHNob3QgPSBpbnN0YW5jZS5zbmFwc2hvdHNbMF07Ci0KLSAgICBhc3NlcnQuaW5zdGFuY2VPZihzbmFwc2hvdCwgdHIuZS5ncHUuU3RhdGVTbmFwc2hvdCk7Ci0gICAgYXNzZXJ0LnR5cGVPZihzbmFwc2hvdC5zY3JlZW5zaG90LCAnc3RyaW5nJyk7Ci0gICAgaW5zdGFuY2Uud2FzRGVsZXRlZCgxNTApOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV92aWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWIzYzJiMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0uZ3B1LXN0YXRlLXNuYXBzaG90LXZpZXcgewotICBiYWNrZ3JvdW5kOiB1cmwoJy4vaW1hZ2VzL2NoZWNrZXJib2FyZC5wbmcnKTsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICBvdmVyZmxvdzogYXV0bzsKLX0KLQotLmdwdS1zdGF0ZS1zbmFwc2hvdC12aWV3IGltZyB7Ci0gIGRpc3BsYXk6IGJsb2NrOwotICBtYXJnaW46IDE2cHggYXV0byAxNnB4IGF1dG87Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWM2MTg0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuY3NzIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5ncHUnLCBmdW5jdGlvbigpIHsKLSAgLyoKLSAgICogRGlzcGxheXMgYSBHUFUgc3RhdGUgc25hcHNob3QgaW4gYSBodW1hbiByZWFkYWJsZSBmb3JtLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBTdGF0ZVNuYXBzaG90VmlldyA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ2dwdS1zdGF0ZS1zbmFwc2hvdC12aWV3JywKLSAgICAgIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3KTsKLQotICBTdGF0ZVNuYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUsCi0KLSAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2dwdS1zdGF0ZS1zbmFwc2hvdC12aWV3Jyk7Ci0gICAgICB0aGlzLnNjcmVlbnNob3RJbWFnZV8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5zY3JlZW5zaG90SW1hZ2VfKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMub2JqZWN0U25hcHNob3RfICYmIHRoaXMub2JqZWN0U25hcHNob3RfLnNjcmVlbnNob3QpIHsKLSAgICAgICAgdGhpcy5zY3JlZW5zaG90SW1hZ2VfLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArCi0gICAgICAgICAgICB0aGlzLm9iamVjdFNuYXBzaG90Xy5zY3JlZW5zaG90OwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgdHIuYy5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcucmVnaXN0ZXIoCi0gICAgU3RhdGVTbmFwc2hvdFZpZXcsCi0gICAge3R5cGVOYW1lOiAnZ3B1OjpTdGF0ZSd9KTsKLQotICByZXR1cm4gewotICAgIFN0YXRlU25hcHNob3RWaWV3OiBTdGF0ZVNuYXBzaG90VmlldwotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZV9jb25maWcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZV9jb25maWcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI4YzQ2ZC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWVfY29uZmlnLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPCEtLQotVGhlIGNocm9tZSBjb25maWcgaXMgaGVhdmlseSB1c2VkOgotICAtIGNocm9tZTovL3RyYWNpbmcsCi0gIC0gdHJhY2UyaHRtbCwgd2hpY2ggaW4gdHVybiBpbXBsaWVzCi0gICAgLSBhZGJfcHJvZmlsZV9jaHJvbWUKLSAgICAtIHRlbGVtZXRyeQotLS0+Ci0KLTwhLS0gQ2hyb21lIGFsc28gc3VwcG9ydHMgc3lzdHJhY2UgJiBsZWFuIGNvbmZpZyAtLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3N5c3RyYWNlX2NvbmZpZy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2xlYW5fY29uZmlnLmh0bWwiPgotCi08IS0tIEdlbmVyYWwgaW1wb3J0ZXJzIC0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvZ3ppcF9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3ppcF9pbXBvcnRlci5odG1sIj4KLQotPCEtLS0gRG9tYWluIHNwZWNpZmljIGltcG9ydGVycyAtLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3Y4L3Y4X2xvZ19pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldHdfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZTJodG1sX2ltcG9ydGVyLmh0bWwiPgotCi08IS0tIExvdHMgb2YgY2hyb21lLXNwZWNpZmljIGV4dHJhcyAtLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9jYy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvbmV0L25ldC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdS5odG1sIj4KLQotPCEtLSBTaWRlIHBhbmVscyBhcmUgY2hyb21lLW9ubHkgZm9yIG5vdyAtLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvc2lkZV9wYW5lbC90aW1lX3N1bW1hcnlfc2lkZV9wYW5lbC5odG1sIj4KLQotPCEtLSBTYW1wbGUgYW5hbHlzaXMgaXMgY2hyb21lLW9ubHkgYmVjYXVzZSBpdCBicmluZ3MgaW4gRDMgd2hpY2ggaXMgSFVHRSAtLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnkuaHRtbCI+Ci0KLTwhLS0gQXVkaXRvcnMgYXJlIGZ1biAtLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYXVkaXRvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9hdWRpdG9yLmh0bWwiPgotCi08IS0tIFJBSUwgaXMgZnVuIHRvbyAtLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zaWRlX3BhbmVsLmh0bWwiPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZGVlcF9yZXBvcnRzL2h0bWxfcmVzdWx0cy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZGVlcF9yZXBvcnRzL2h0bWxfcmVzdWx0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzA5ZjNjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2RlZXBfcmVwb3J0cy9odG1sX3Jlc3VsdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL3RhYmxlLmh0bWwiPgotPCEtLQotVGhpcyBjbGFzcyB0cmllcyB0byAoc2ltcGx5KSBjb3B5IHRoZSB0ZWxlbWV0cnkgUmVzdWx0cyBvYmplY3QsIGJ1dCBvdXRwdXRzCi1kaXJlY3RseSB0byBhbiBIVE1MIHRhYmxlLiBJdCB0YWtlcyB0aGluZ3MgdGhhdCBsb29rIGxpa2UgVGVsZW1ldHJ5IHZhbHVlcywKLWFuZCB1cGRhdGVzIHRoZSB0YWJsZSBpbnRlcm5hbGx5LgotLS0+Ci08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWUtZHItaHRtbC1yZXN1bHRzIj4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDx0ci1iLXVpLXRhYmxlIGlkPSJ0YWJsZSI+PC90ci1iLXVpLXRhYmxlPgotICA8L3RlbXBsYXRlPgotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmhhc0NvbHVtbk5hbWVkXyA9IHt9OwotICAgICAgdGhpcy5wYWdlVG9Sb3dNYXBfID0gbmV3IFdlYWtNYXAoKTsKLSAgICB9LAotCi0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLnRhYmxlOwotICAgICAgdGFibGUudGFibGVDb2x1bW5zID0gWwotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdMYWJlbCcsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmxhYmVsOyB9LAotICAgICAgICAgIHdpZHRoOiAnMzUwcHgnCi0gICAgICAgIH0KLSAgICAgIF07Ci0gICAgICB0aGlzLmNsZWFyKCk7Ci0gICAgfSwKLQotICAgIGNsZWFyOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSBbXTsKLSAgICB9LAotCi0gICAgYWRkQ29sdW1uSWZOZWVkZWRfOiBmdW5jdGlvbihjb2x1bW5OYW1lKSB7Ci0gICAgICBpZiAodGhpcy5oYXNDb2x1bW5OYW1lZF9bY29sdW1uTmFtZV0pCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuaGFzQ29sdW1uTmFtZWRfW2NvbHVtbk5hbWVdID0gdHJ1ZTsKLQotICAgICAgdmFyIGNvbHVtbiA9IHsKLSAgICAgICAgdGl0bGU6IGNvbHVtbk5hbWUsCi0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKLSAgICAgICAgICBpZiAocm93W2NvbHVtbk5hbWVdID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICByZXR1cm4gJyc7Ci0gICAgICAgICAgcmV0dXJuIHJvd1tjb2x1bW5OYW1lXTsKLSAgICAgICAgfQotICAgICAgfTsKLQotICAgICAgdmFyIGNvbHVtbnMgPSB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zOwotICAgICAgY29sdW1ucy5wdXNoKGNvbHVtbik7Ci0KLSAgICAgIC8vIFVwZGF0ZSB3aWR0aHMuCi0gICAgICB2YXIgY29sV2lkdGhQZXJjZW50YWdlOwotICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09IDEpCi0gICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICcxMDAlJzsKLSAgICAgIGVsc2UKLSAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gKDEwMCAvIChjb2x1bW5zLmxlbmd0aCAtIDEpKS50b0ZpeGVkKDMpICsgJyUnOwotCi0gICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspCi0gICAgICAgIGNvbHVtbnNbaV0ud2lkdGggPSBjb2xXaWR0aFBlcmNlbnRhZ2U7Ci0KLSAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOwotICAgIH0sCi0KLSAgICBnZXRSb3dGb3JQYWdlXzogZnVuY3Rpb24ocGFnZSkgewotICAgICAgaWYgKCF0aGlzLnBhZ2VUb1Jvd01hcF8uaGFzKHBhZ2UpKSB7Ci0gICAgICAgIHZhciBpID0gcGFnZS51cmwubGFzdEluZGV4T2YoJy8nKTsKLSAgICAgICAgdmFyIGJhc2VOYW1lID0gcGFnZS51cmwuc3Vic3RyaW5nKGkgKyAxKTsKLQotICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKLSAgICAgICAgbGluay5ocmVmID0gJ3RyYWNlX3ZpZXdlci5odG1sIycgKyBwYWdlLnVybDsKLSAgICAgICAgbGluay50ZXh0Q29udGVudCA9IGJhc2VOYW1lOwotCi0gICAgICAgIHZhciByb3cgPSB7Ci0gICAgICAgICAgbGFiZWw6IGxpbmssCi0gICAgICAgICAgdmFsdWU6ICcnLAotICAgICAgICAgIHN1YlJvd3M6IFtdLAotICAgICAgICAgIGlzRXhwYW5kZWQ6IHRydWUKLSAgICAgICAgfTsKLSAgICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cy5wdXNoKHJvdyk7Ci0gICAgICAgIHRoaXMucGFnZVRvUm93TWFwXy5zZXQocGFnZSwgcm93KTsKLQotICAgICAgICAvLyBLaWNrIHRhYmxlIHJlYnVpbGQuCi0gICAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSB0aGlzLiQudGFibGUudGFibGVSb3dzOwotICAgICAgfQotICAgICAgcmV0dXJuIHRoaXMucGFnZVRvUm93TWFwXy5nZXQocGFnZSk7Ci0gICAgfSwKLQotICAgIGFkZFZhbHVlOiBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgLyogVmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgYSBzY2FsYXIgdGVsZW1ldHJ5LXN0eWxlIFZhbHVlLiAqLwotICAgICAgaWYgKHZhbHVlLnR5cGUgIT09ICdzY2FsYXInKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dhdCcpOwotCi0gICAgICB0aGlzLmFkZENvbHVtbklmTmVlZGVkXyh2YWx1ZS5uYW1lKTsKLSAgICAgIHZhciByb3dGb3JQYWdlID0gdGhpcy5nZXRSb3dGb3JQYWdlXyh2YWx1ZS5wYWdlKTsKLSAgICAgIHJvd0ZvclBhZ2VbdmFsdWUubmFtZV0gPSB2YWx1ZS52YWx1ZTsKLQotICAgICAgLy8gS2ljayB0YWJsZSByZWJ1aWxkLgotICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IHRoaXMuJC50YWJsZS50YWJsZVJvd3M7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2RlZXBfcmVwb3J0cy9tYWluLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kZWVwX3JlcG9ydHMvbWFpbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTc2MTNjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2RlZXBfcmVwb3J0cy9tYWluLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZGVlcF9yZXBvcnRzL3NjYWxhcl92YWx1ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2RlZXBfcmVwb3J0cy9yYWlsX2RlZXBfcmVwb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmRlZXBfcmVwb3J0cycsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogUnVucyBkZWVwIHJlcG9ydHMgb24gdGhlIHByb3ZpZGVkIGZpbGVzLCBhbmQgcHVzaGVzIHRlbGVtZXRyeS1zdHlsZQotICAgKiB2YWx1ZXMgdG8gdGhlIHJlc3VsdHMgb2JqZWN0LgotICAgKi8KLSAgZnVuY3Rpb24gbWFpbihyZXN1bHRzLCBmaWxlc0luRGlyKSB7Ci0gICAgdmFyIGxhc3RQID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeyByZXNvbHZlKCk7IH0pOwotCi0gICAgZmlsZXNJbkRpci5mb3JFYWNoKGZ1bmN0aW9uKGZpbGVuYW1lKSB7Ci0gICAgICAvLyBUT0RPKG5kdWNhKTogTWFrZSB0aGlzIGxpa2UgdGVsZW1ldHJ5IHBhZ2UuCi0gICAgICB2YXIgcGFnZSA9IHsKLSAgICAgICAgdXJsOiBmaWxlbmFtZQotICAgICAgfTsKLSAgICAgIGxhc3RQID0gbGFzdFAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIGxvYWRNb2RlbEZyb21GaWxlQXN5bmMoZmlsZW5hbWUpOwotICAgICAgfSk7Ci0gICAgICBsYXN0UCA9IGxhc3RQLnRoZW4oZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgICAgcHJvY2Vzc01vZGVsKHJlc3VsdHMsIHBhZ2UsIG1vZGVsKTsKLSAgICAgIH0pOwotICAgIH0pOwotICAgIHJldHVybiBsYXN0UDsKLSAgfQotCi0gIGZ1bmN0aW9uIGxvYWRNb2RlbEZyb21GaWxlQXN5bmMoZmlsZW5hbWUpIHsKLSAgICByZXR1cm4gdHIuYi5nZXRBc3luYyhmaWxlbmFtZSkudGhlbihmdW5jdGlvbih0cmFjZSkgewotICAgICAgdmFyIGlvID0gbmV3IHRyLkltcG9ydE9wdGlvbnMoKTsKLSAgICAgIGlvLnNoaWZ0V29ybGRUb1plcm8gPSB0cnVlOwotICAgICAgaW8ucHJ1bmVFbXB0eUNvbnRhaW5lcnMgPSBmYWxzZTsKLQotICAgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICAgIHRyeSB7Ci0gICAgICAgIG0uaW1wb3J0VHJhY2VzKFt0cmFjZV0sIGlvKTsKLSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXaGlsZSBsb2FkaW5nICcgKyBmaWxlbmFtZSArICcgZ290OiAnICsgZS50b1N0cmluZygpKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtOwotICAgIH0pOwotICB9Ci0KLSAgZnVuY3Rpb24gcHJvY2Vzc01vZGVsKHJlc3VsdHMsIHBhZ2UsIG1vZGVsKSB7Ci0gICAgLyogVE9ETyhuZHVjYSk6IE5lZWQgZWFrZXVmbmVyJ3MgVGVsZW1ldHJ5IHZhbHVlIHN5c3RlbSBoZXJlIHNvIHdlIGNhbgotICAgICAqIGJlIHNtYXJ0IGluIGFnZ3JlZ2F0aW5nIHJlc3VsdHMuCi0gICAgKi8KLSAgICByZXN1bHRzLmFkZFZhbHVlKHRyLmUuZGVlcF9yZXBvcnRzLlNjYWxhclZhbHVlLmZyb21EaWN0KHBhZ2UsIHsKLSAgICAgIHR5cGU6ICdzY2FsYXInLAotICAgICAgbmFtZTogJ251bVByb2Nlc3NlcycsIHVuaXRzOiAncHJvY2Vzc2VzJywgaW1wb3J0YW50OiB0cnVlLAotICAgICAgdmFsdWU6IG1vZGVsLm51bVByb2Nlc3NlcwotICAgIH0pKTsKLQotICAgIHRyLmUuZGVlcF9yZXBvcnRzLlJBSUxEZWVwUmVwb3J0ZXIuYWRkUmVzdWx0c0Zvck1vZGVsKHJlc3VsdHMsIHBhZ2UsIG1vZGVsKTsKLQotICAgIGlmICh0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlci5zdXBwb3J0c01vZGVsKG1vZGVsKSkgewotICAgICAgdmFyIGhlbHBlciA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtb2RlbCk7Ci0gICAgICBpZiAoZmFsc2UpIHsKLSAgICAgICAgdmFyIGxhdGVuY3lFdmVudHMgPSBoZWxwZXIuYnJvd3NlckhlbHBlci5nZXRMYXRlbmN5RXZlbnRzSW5SYW5nZSgKLSAgICAgICAgICBtb2RlbC5ib3VuZHMpOwotICAgICAgICB3aW5kb3cuYWxsVGl0bGVzID0gd2luZG93LmFsbFRpdGxlcyB8fCB7fTsKLSAgICAgICAgbGF0ZW5jeUV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgd2luZG93LmFsbFRpdGxlc1tldmVudC50aXRsZV0gPSB0cnVlOwotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICByZXR1cm4gewotICAgIG1haW46IG1haW4KLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kZWVwX3JlcG9ydHMvcmFpbF9kZWVwX3JlcG9ydGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kZWVwX3JlcG9ydHMvcmFpbF9kZWVwX3JlcG9ydGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhMmY2NWQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZGVlcF9yZXBvcnRzL3JhaWxfZGVlcF9yZXBvcnRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZGVlcF9yZXBvcnRzL3NjYWxhcl92YWx1ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5kZWVwX3JlcG9ydHMnLCBmdW5jdGlvbigpIHsKLQotICBmdW5jdGlvbiBSQUlMRGVlcFJlcG9ydGVyKCkgewotICB9OwotCi0gIFJBSUxEZWVwUmVwb3J0ZXIuYWRkUmVzdWx0c0Zvck1vZGVsID0gZnVuY3Rpb24ocmVzdWx0cywgcGFnZSwgbW9kZWwpIHsKLSAgICB2YXIgcmlycyA9IFtdOwotICAgIG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMuZm9yRWFjaChmdW5jdGlvbihpcikgewotICAgICAgaWYgKGlyIGluc3RhbmNlb2YgdHIuZS5yYWlsLlJBSUxJbnRlcmFjdGlvblJlY29yZCkKLSAgICAgICAgcmlycy5wdXNoKGlyKTsKLSAgICB9KTsKLQotICAgIGlmIChyaXJzLmxlbmd0aCA9PT0gMCkKLSAgICAgIHJldHVybjsKLQotICAgIHZhciByYWlsU2NvcmUgPSB0ci5lLnJhaWwuUkFJTFNjb3JlLmNvbXB1dGUocmlycyk7Ci0KLSAgICByZXN1bHRzLmFkZFZhbHVlKAotICAgICAgICBuZXcgdHIuZS5kZWVwX3JlcG9ydHMuU2NhbGFyVmFsdWUoCi0gICAgICAgICAgICBwYWdlLCAnbnVtUmFpbElScycsICdtcycsIHJpcnMubGVuZ3RoKSk7Ci0KLSAgICB0ci5iLml0ZXJJdGVtcyhyYWlsU2NvcmUsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKLSAgICAgIGlmIChrZXkgPT09ICdzY29yZScpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHJlc3VsdHMuYWRkVmFsdWUoCi0gICAgICAgIG5ldyB0ci5lLmRlZXBfcmVwb3J0cy5TY2FsYXJWYWx1ZSgKLSAgICAgICAgICBwYWdlLCBrZXksICdyYWlscycsIHZhbHVlKSk7Ci0gICAgfSk7Ci0KLSAgICByZXN1bHRzLmFkZFZhbHVlKAotICAgICAgbmV3IHRyLmUuZGVlcF9yZXBvcnRzLlNjYWxhclZhbHVlKAotICAgICAgICBwYWdlLCAncmFpbFNjb3JlJywgJ3JhaWxzJywgcmFpbFNjb3JlLnNjb3JlKSk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIFJBSUxEZWVwUmVwb3J0ZXI6IFJBSUxEZWVwUmVwb3J0ZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kZWVwX3JlcG9ydHMvc2NhbGFyX3ZhbHVlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kZWVwX3JlcG9ydHMvc2NhbGFyX3ZhbHVlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MjJlNjYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZGVlcF9yZXBvcnRzL3NjYWxhcl92YWx1ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuZGVlcF9yZXBvcnRzJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIFNjYWxhclZhbHVlKHBhZ2UsIG5hbWUsIHVuaXRzLCB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgb3B0X2ltcG9ydGFudCwgb3B0X2Rlc2NyaXB0aW9uKSB7Ci0gICAgdGhpcy50eXBlID0gJ3NjYWxhcic7Ci0gICAgdGhpcy5wYWdlID0gcGFnZTsKLSAgICB0aGlzLm5hbWUgPSBuYW1lOwotICAgIHRoaXMudW5pdHMgPSB1bml0czsKLSAgICB0aGlzLnZhbHVlID0gdmFsdWU7Ci0gICAgdGhpcy5pbXBvcnRhbnQgPSBvcHRfaW1wb3J0YW50ICE9PSB1bmRlZmluZWQgPyBvcHRfaW1wb3J0YW50IDogZmFsc2U7Ci0gICAgdGhpcy5kZXNjcmlwdGlvbiA9IG9wdF9kZXNjcmlwdGlvbiB8fCAnJzsKLSAgfQotICBTY2FsYXJWYWx1ZS5mcm9tRGljdCA9IGZ1bmN0aW9uKHBhZ2UsIGRpY3QpIHsKLSAgICBpZiAoZGljdC50eXBlICE9PSAnc2NhbGFyJykKLSAgICAgIHRocm93IG5ldyBFcnJvcignd2F0Jyk7Ci0gICAgdmFyIHYgPSBuZXcgU2NhbGFyVmFsdWUocGFnZSwgZGljdC5uYW1lLCBkaWN0LnVuaXRzLCBkaWN0LnZhbHVlKTsKLSAgICB2LmltcG9ydGFudCA9IGRpY3QuaW1wb3J0YW50OwotICAgIHYuZGVzY3JpcHRpb24gPSBkaWN0LmRlc2NyaXB0aW9uOwotICAgIHYudmFsdWUgPSBkaWN0LnZhbHVlOwotICAgIHJldHVybiB2OwotICB9Ci0KLSAgU2NhbGFyVmFsdWUucHJvdG90eXBlID0gewotCi0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTY2FsYXJWYWx1ZTogU2NhbGFyVmFsdWUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kcml2ZS9jb21tZW50X2VsZW1lbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2RyaXZlL2NvbW1lbnRfZWxlbWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTczMzU5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2RyaXZlL2NvbW1lbnRfZWxlbWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSJjb21tZW50LWVsZW1lbnQiIGF0dHJpYnV0ZXM9ImNvbW1lbnQiPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIH0KLSAgICAjY29tbWVudC1hcmVhIHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOGU4ZTg7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLSAgICAgIHBhZGRpbmc6IDZweDsKLSAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKLSAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMyk7Ci0gICAgICBib3JkZXItcmFkaXVzOiAycHg7Ci0gICAgICBmb250LXNpemU6IHNtYWxsOwotICAgIH0KLSAgICAjY29tbWVudC1oZWFkZXIgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Ci0gICAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwotICAgIH0KLSAgICAjY29tbWVudC1oZWFkZXItdGV4dCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICAgIHBhZGRpbmctbGVmdDogMTBweDsKLSAgICB9Ci0gICAgI2NvbW1lbnQtaW1nIHsKLSAgICAgIHdpZHRoOiAzMnB4OwotICAgICAgaGVpZ2h0OiAzMnB4OwotICAgIH0KLSAgICAjY29tbWVudC10ZXh0LWF1dGhvciB7Ci0gICAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwotICAgIH0KLSAgICAjY29tbWVudC1kYXRlIHsKLSAgICAgIGNvbG9yOiAjNzc3OwotICAgICAgZm9udC1zaXplOiAxMXB4OwotICAgIH0KLSAgICAjY29tbWVudC1jb250ZW50IHsKLSAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2IGlkPSJjb21tZW50LWFyZWEiPgotICAgICAgPGRpdiBpZD0iY29tbWVudC1oZWFkZXIiPgotICAgICAgICA8aW1nIGlkPSJjb21tZW50LWltZyIgc3JjPSJ7eyBjb21tZW50LmF1dGhvci5waWN0dXJlLnVybCB9fSIgLz4KLSAgICAgICAgPGRpdiBpZD0iY29tbWVudC1oZWFkZXItdGV4dCI+Ci0gICAgICAgICAgPGRpdiBpZD0iY29tbWVudC10ZXh0LWF1dGhvciI+e3sgY29tbWVudC5hdXRob3IuZGlzcGxheU5hbWUgfX08L2Rpdj4KLSAgICAgICAgICA8ZGl2IGlkPSJjb21tZW50LWRhdGUiPnt7IGNyZWF0ZWREYXRlIH19PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgPC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjb21tZW50LWNvbnRlbnQiPnt7IGNvbW1lbnQuYW5jaG9yID8gJyYjOTg3NTsmbmJzcDsnIDogJycgfX0KLSAgICAgICAgICB7eyBjb21tZW50LmNvbnRlbnQgfX08L2Rpdj4KLSAgICA8L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotICBQb2x5bWVyKHsKLSAgICBjb21tZW50Q2hhbmdlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNyZWF0ZWREYXRlID0gbmV3IERhdGUodGhpcy5jb21tZW50LmNyZWF0ZWREYXRlKS50b0xvY2FsZVN0cmluZygpOwotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1OGFlNjUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZHJpdmUvY29tbWVudHNfc2lkZV9wYW5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTgwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2RyaXZlL2NvbW1lbnRfZWxlbWVudC5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci1lLWQtY29tbWVudHMtc2lkZS1wYW5lbCcKLSAgICBleHRlbmRzPSd0ci1jLXNpZGUtcGFuZWwnPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgd2lkdGg6IDI5MHB4OwotICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwotICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwotICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKLSAgICB9Ci0gICAgdG9vbGJhciB7Ci0gICAgICBmbGV4OiAwIDAgYXV0bzsKLSAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgIHJlc3VsdC1hcmVhIHsKLSAgICAgIGZsZXg6IDEgMSBhdXRvOwotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICBtaW4taGVpZ2h0OiAwOwotICAgICAgcGFkZGluZzogNHB4OwotICAgIH0KLSAgICAjY29tbWVudHMtdGV4dGFyZWEtY29udGFpbmVyIHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgICNjb21tZW50aW5wdXQgewotICAgICAgd2lkdGg6IDEwMCU7Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0KLSAgICA8dG9vbGJhciBpZD0ndG9vbGJhcic+PC90b29sYmFyPgotICAgIDxyZXN1bHQtYXJlYSBpZD0ncmVzdWx0X2FyZWEnPgotICAgICAgPHRlbXBsYXRlIHJlcGVhdD0ie3sgY29tbWVudCBpbiBjb21tZW50c18gfX0iPgotICAgICAgICA8Y29tbWVudC1lbGVtZW50IGNvbW1lbnQ9Int7Y29tbWVudH19IgotICAgICAgICAgICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJ7e2NvbW1lbnRDbGlja319Ij48L2NvbW1lbnQtZWxlbWVudD4KLSAgICAgIDwvdGVtcGxhdGU+Ci0gICAgICA8ZGl2IGlkPSJjb21tZW50cy10ZXh0YXJlYS1jb250YWluZXIiPgotICAgICAgICA8dGV4dGFyZWEgaWQ9ImNvbW1lbnRpbnB1dCIgb24tZm9jdXM9J3t7dGV4dEFyZWFGb2N1c319JwotICAgICAgICAgICAgb24tYmx1cj0ne3t0ZXh0QXJlYUJsdXJ9fScKLSAgICAgICAgICAgIG9uLWtleXByZXNzPSJ7e3RleHRhcmVhS2V5cHJlc3N9fSI+PC90ZXh0YXJlYT4KLSAgICAgIDwvZGl2PgotICAgIDwvcmVzdWx0LWFyZWE+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLmNvbW1lbnRzXyA9IFtdOwotICAgICAgdGhpcy5hbm5vdGF0aW9uRnJvbUNvbW1lbnRfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy50ZXh0QXJlYUZvY3VzZWQgPSBmYWxzZTsKLSAgICB9LAotCi0gICAgc2V0Q29tbWVudFByb3ZpZGVyOiBmdW5jdGlvbihjb21tZW50UHJvdmlkZXIpIHsKLSAgICAgIHRoaXMuY29tbWVudFByb3ZpZGVyXyA9IGNvbW1lbnRQcm92aWRlcjsKLSAgICB9LAotCi0gICAgYXR0YWNoZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuY29tbWVudFByb3ZpZGVyXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICB0aGlzLmNvbW1lbnRQcm92aWRlcl8gPSBuZXcgdHIuZS5hbmFseXNpcy5EZWZhdWx0Q29tbWVudFByb3ZpZGVyKCk7Ci0gICAgICB0aGlzLmNvbW1lbnRQcm92aWRlcl8uYXR0YWNoVG9FbGVtZW50KHRoaXMpOwotICAgIH0sCi0KLSAgICBkZXRhY2hlZDogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmNvbW1lbnRQcm92aWRlcl8uZGV0YWNoRnJvbUVsZW1lbnQoKTsKLSAgICB9LAotCi0gICAgY29tbWVudENsaWNrOiBmdW5jdGlvbihldmVudCwgZGV0YWlsLCBzZW5kZXIpIHsKLSAgICAgIHZhciBhbmNob3IgPSBzZW5kZXIuY29tbWVudC5hbmNob3I7Ci0gICAgICBpZiAoYW5jaG9yID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHVpU3RhdGUgPSBKU09OLnBhcnNlKGFuY2hvcikuYVswXVt0ci5lLmRyaXZlLmNvbnN0YW50cy5BTkNIT1JfTkFNRV07Ci0KLSAgICAgIHZhciBteUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCduYXZpZ2F0ZVRvVUlTdGF0ZScsIHsgZGV0YWlsOgotICAgICAgICAgIG5ldyB0ci5jLlVJU3RhdGUobmV3IHRyLmMuTG9jYXRpb24odWlTdGF0ZS5sb2NhdGlvbi54V29ybGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aVN0YXRlLmxvY2F0aW9uLnlDb21wb25lbnRzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpU3RhdGUuc2NhbGVYKQotICAgICAgICAgIH0pOwotICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChteUV2ZW50KTsKLQotICAgICAgaWYgKHRoaXMuYW5ub3RhdGlvbkZyb21Db21tZW50XykKLSAgICAgICAgdGhpcy5tb2RlbC5yZW1vdmVBbm5vdGF0aW9uKHRoaXMuYW5ub3RhdGlvbkZyb21Db21tZW50Xyk7Ci0gICAgICB2YXIgbG9jID0gbmV3IHRyLmMuTG9jYXRpb24odWlTdGF0ZS5sb2NhdGlvbi54V29ybGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlTdGF0ZS5sb2NhdGlvbi55Q29tcG9uZW50cyk7Ci0KLSAgICAgIHZhciB0ZXh0ID0gc2VuZGVyLmNvbW1lbnQuYXV0aG9yLmRpc3BsYXlOYW1lICsgJzogJyArCi0gICAgICAgICAgc2VuZGVyLmNvbW1lbnQuY29udGVudDsKLSAgICAgIHRoaXMuYW5ub3RhdGlvbkZyb21Db21tZW50XyA9Ci0gICAgICAgICAgbmV3IHRyLm1vZGVsLkNvbW1lbnRCb3hBbm5vdGF0aW9uKGxvYywgdGV4dCk7Ci0gICAgICB0aGlzLm1vZGVsLmFkZEFubm90YXRpb24odGhpcy5hbm5vdGF0aW9uRnJvbUNvbW1lbnRfKTsKLSAgICB9LAotCi0gICAgdGV4dGFyZWFLZXlwcmVzczogZnVuY3Rpb24oZXZlbnQsIGRldGFpbCwgc2VuZGVyKSB7Ci0gICAgICAvLyBDaGVjayBmb3IgcmV0dXJuIGtleS4KLSAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMyAmJiAhZXZlbnQuY3RybEtleSkgewotICAgICAgICB0aGlzLmNvbW1lbnRQcm92aWRlcl8uYWRkQ29tbWVudCh0aGlzLiQuY29tbWVudGlucHV0LnZhbHVlKTsKLSAgICAgICAgdGhpcy4kLmNvbW1lbnRpbnB1dC52YWx1ZSA9ICcnOwotICAgICAgfQotICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgdGV4dEFyZWFGb2N1czogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHRoaXMudGV4dEFyZWFGb2N1c2VkID0gdHJ1ZTsKLSAgICB9LAotCi0gICAgdGV4dEFyZWFCbHVyOiBmdW5jdGlvbihldmVudCkgewotICAgICAgdGhpcy50ZXh0QXJlYUZvY3VzZWQgPSBmYWxzZTsKLSAgICB9LAotCi0gICAgZ2V0IHJhbmdlT2ZJbnRlcmVzdCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnJhbmdlT2ZJbnRlcmVzdF87Ci0gICAgfSwKLQotICAgIHNldCByYW5nZU9mSW50ZXJlc3QocmFuZ2VPZkludGVyZXN0KSB7Ci0gICAgICB0aGlzLnJhbmdlT2ZJbnRlcmVzdF8gPSByYW5nZU9mSW50ZXJlc3Q7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgY3VycmVudFJhbmdlT2ZJbnRlcmVzdCgpIHsKLSAgICAgIGlmICh0aGlzLnJhbmdlT2ZJbnRlcmVzdF8uaXNFbXB0eSkKLSAgICAgICAgcmV0dXJuIHRoaXMubW9kZWxfLmJvdW5kczsKLSAgICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2VPZkludGVyZXN0XzsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsKCkgewotICAgICAgcmV0dXJuIHRoaXMubW9kZWxfOwotICAgIH0sCi0KLSAgICBzZXQgbW9kZWwobW9kZWwpIHsKLSAgICAgIHRoaXMubW9kZWxfID0gbW9kZWw7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotICAgIH0sCi0KLSAgICBnZXQgbGlzdGVuaW5nVG9LZXlzKCkgewotICAgICAgcmV0dXJuIHRoaXMudGV4dEFyZWFGb2N1c2VkOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jb21tZW50UHJvdmlkZXJfLnVwZGF0ZUNvbW1lbnRzKCk7Ci0gICAgfSwKLQotICAgIHN1cHBvcnRzTW9kZWw6IGZ1bmN0aW9uKG0pIHsKLSAgICAgIGlmIChtID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlLAotICAgICAgICAgIHJlYXNvbjogJ1Vua25vd24gdHJhY2luZyBtb2RlbCcKLSAgICAgICAgfTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB7Ci0gICAgICAgIHN1cHBvcnRlZDogdHJ1ZQotICAgICAgfTsKLSAgICB9LAotCi0gICAgZ2V0IHRleHRMYWJlbCgpIHsKLSAgICAgIHJldHVybiAnQ29tbWVudHMnOwotICAgIH0KLSAgfSk7Ci0KLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2RyaXZlL2NvbW1lbnRzX3NpZGVfcGFuZWxfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZHJpdmUvY29tbWVudHNfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNGZhNWYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZHJpdmUvY29tbWVudHNfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBTdHViQ29tbWVudFByb3ZpZGVyKCkgewotICAgIHRoaXMuYWRkRHVtbXlDb21tZW50KCdMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCcpOwotICAgIHRoaXMuYWRkRHVtbXlDb21tZW50KCdjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQnKTsKLSAgICB0aGlzLmFkZER1bW15Q29tbWVudCgnc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0ICcgKwotICAgICAgICAnZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCAnICsKLSAgICAgICAgJ2V4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gJyArCi0gICAgICAgICdjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSAnICsKLSAgICAgICAgJ3ZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50ICcgKwotICAgICAgICAnb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCAnICsKLSAgICAgICAgJ21vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLicpOwotICB9Ci0KLSAgU3R1YkNvbW1lbnRQcm92aWRlci5wcm90b3R5cGUgPSB7Ci0gICAgY29tbWVudHNfOiBbXSwKLQotICAgIGF0dGFjaFRvRWxlbWVudDogZnVuY3Rpb24oYXR0YWNoZWRFbGVtZW50KSB7Ci0gICAgICB0aGlzLmF0dGFjaGVkRWxlbWVudF8gPSBhdHRhY2hlZEVsZW1lbnQ7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbW1lbnRzKCk7Ci0gICAgfSwKLQotICAgIGRldGFjaEZyb21FbGVtZW50OiBmdW5jdGlvbigpIHsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29tbWVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5hdHRhY2hlZEVsZW1lbnRfLmNvbW1lbnRzXyA9IHRoaXMuY29tbWVudHNfOwotICAgIH0sCi0KLSAgICBhZGREdW1teUNvbW1lbnQ6IGZ1bmN0aW9uKGNvbnRlbnQpIHsKLSAgICAgIHZhciBuZXdDb21tZW50ID0gewotICAgICAgICAgIGF1dGhvcjogewotICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdDYXNwZXIgdGhlIEZyaWVuZGx5IEdob3N0JywKLSAgICAgICAgICAgIHBpY3R1cmU6IHsKLSAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy1YZFVJcWRNa0NXQS8nICsKLSAgICAgICAgICAgICAgICAgICAgICAnQUFBQUFBQUFBQUkvQUFBQUFBQUFBQUEvNDI1MnJzY2J2NU0vczEyOC9waG90by5qcGcnCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBjcmVhdGVkRGF0ZTogRGF0ZS5ub3coKSwKLSAgICAgICAgICBhbmNob3I6ICh0aGlzLmNvbW1lbnRzXy5sZW5ndGgpICUgMiA/IDEgOiAwLAotICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQKLSAgICAgIH07Ci0KLSAgICAgIHRoaXMuY29tbWVudHNfLnB1c2gobmV3Q29tbWVudCk7Ci0gICAgfSwKLQotICAgIGFkZENvbW1lbnQ6IGZ1bmN0aW9uKGJvZHkpIHsKLSAgICAgIHRoaXMuYWRkRHVtbXlDb21tZW50KGJvZHkpOwotICAgICAgdGhpcy51cGRhdGVDb21tZW50cygpOwotICAgIH0KLSAgfTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtZC1jb21tZW50cy1zaWRlLXBhbmVsJyk7Ci0gICAgcGFuZWwuc2V0Q29tbWVudFByb3ZpZGVyKG5ldyBTdHViQ29tbWVudFByb3ZpZGVyKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kcml2ZS9kcml2ZV9jb21tZW50X3Byb3ZpZGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9kcml2ZS9kcml2ZV9jb21tZW50X3Byb3ZpZGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlMTNjNzkuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZHJpdmUvZHJpdmVfY29tbWVudF9wcm92aWRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbCI+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2RyaXZlL2NvbW1lbnRzX3NpZGVfcGFuZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLShmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gYWRkRHJpdmVDb21tZW50V2l0aFVJU3RhdGVfKHRleHQsIHVpU3RhdGUpIHsKLSAgICBnYXBpLmNsaWVudC5sb2FkKCdkcml2ZScsICd2MicsIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHJlcXVlc3QgPSBnYXBpLmNsaWVudC5kcml2ZS5yZXZpc2lvbnMuZ2V0KHsKLSAgICAgICAgJ2ZpbGVJZCc6IHRyLmUuZHJpdmUuZ2V0RHJpdmVGaWxlSWQoKSwKLSAgICAgICAgJ3JldmlzaW9uSWQnOiAnaGVhZCcKLSAgICAgIH0pOwotICAgICAgcmVxdWVzdC5leGVjdXRlKGZ1bmN0aW9uKHJlc3ApIHsKLSAgICAgICAgdmFyIGFuY2hvck9iamVjdCA9IHt9OwotICAgICAgICBhbmNob3JPYmplY3RbdHIuZS5kcml2ZS5jb25zdGFudHMuQU5DSE9SX05BTUVdID0gdWlTdGF0ZTsKLSAgICAgICAgdmFyIGFuY2hvciA9IHsKLSAgICAgICAgICAncic6IHJlc3AuaWQsCi0gICAgICAgICAgJ2EnOiBbYW5jaG9yT2JqZWN0XQotICAgICAgICB9OwotICAgICAgICBhbmNob3IgPSBKU09OLnN0cmluZ2lmeShhbmNob3IpOwotICAgICAgICBnYXBpLmNsaWVudC5sb2FkKCdkcml2ZScsICd2MicsIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciByZXF1ZXN0ID0gZ2FwaS5jbGllbnQuZHJpdmUuY29tbWVudHMuaW5zZXJ0KHsKLSAgICAgICAgICAgICdmaWxlSWQnOiB0ci5lLmRyaXZlLmdldERyaXZlRmlsZUlkKCksCi0gICAgICAgICAgICAncmVzb3VyY2UnOiB7J2NvbnRlbnQnOiB0ZXh0LCAnYW5jaG9yJzogYW5jaG9yfQotICAgICAgICAgIH0pOwotICAgICAgICAgIHJlcXVlc3QuZXhlY3V0ZSgpOwotICAgICAgICB9KTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9OwotCi0gIGZ1bmN0aW9uIG9uQ29tbWVudFdpdGhVSVN0YXRlKGUpIHsKLSAgICBhZGREcml2ZUNvbW1lbnRXaXRoVUlTdGF0ZV8oZS5kZXRhaWwubmFtZSwgZS5kZXRhaWwubG9jYXRpb24pOwotICB9OwotCi0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbW1lbnRXaXRoVUlTdGF0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Db21tZW50V2l0aFVJU3RhdGUuYmluZCh0aGlzKSk7Ci19KCkpOwotCi10ci5leHBvcnRUbygndHIuZS5hbmFseXNpcycsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBEZWZhdWx0Q29tbWVudFByb3ZpZGVyKCkgeyB9Ci0KLSAgRGVmYXVsdENvbW1lbnRQcm92aWRlci5wcm90b3R5cGUgPSB7Ci0gICAgYXR0YWNoVG9FbGVtZW50OiBmdW5jdGlvbihhdHRhY2hlZEVsZW1lbnQpIHsKLSAgICAgIHRoaXMuYXR0YWNoZWRFbGVtZW50XyA9IGF0dGFjaGVkRWxlbWVudDsKLSAgICAgIHRoaXMuY29tbWVudHNDaGVja1RpbWVyXyA9IHNldFRpbWVvdXQodGhpcy5jaGVja0ZvckNvbW1lbnRzXy5iaW5kKHRoaXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDAwKTsKLSAgICB9LAotCi0gICAgZGV0YWNoRnJvbUVsZW1lbnQ6IGZ1bmN0aW9uKCkgewotICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY29tbWVudHNDaGVja1RpbWVyXyk7Ci0gICAgfSwKLQotICAgIGNoZWNrRm9yQ29tbWVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMudXBkYXRlQ29tbWVudHMoKTsKLSAgICAgIHRoaXMuY29tbWVudHNDaGVja1RpbWVyXyA9IHNldFRpbWVvdXQodGhpcy5jaGVja0ZvckNvbW1lbnRzXy5iaW5kKHRoaXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDAwKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29tbWVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgZ2FwaS5jbGllbnQubG9hZCgnZHJpdmUnLCAndjInLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBnYXBpLmNsaWVudC5kcml2ZS5jb21tZW50cy5saXN0KHsKLSAgICAgICAgICAnZmlsZUlkJzogdHIuZS5kcml2ZS5nZXREcml2ZUZpbGVJZCgpCi0gICAgICAgIH0pOwotICAgICAgICByZXF1ZXN0LmV4ZWN1dGUoZnVuY3Rpb24ocmVzdWx0cykgewotICAgICAgICAgIHNlbGYuYXR0YWNoZWRFbGVtZW50Xy5jb21tZW50c18gPSByZXN1bHRzLml0ZW1zOwotICAgICAgICB9KTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBhZGRDb21tZW50OiBmdW5jdGlvbihib2R5KSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICBnYXBpLmNsaWVudC5sb2FkKCdkcml2ZScsICd2MicsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9IGdhcGkuY2xpZW50LmRyaXZlLmNvbW1lbnRzLmluc2VydCh7Ci0gICAgICAgICAgJ2ZpbGVJZCc6IHRyLmUuZHJpdmUuZ2V0RHJpdmVGaWxlSWQoKSwKLSAgICAgICAgICAncmVzb3VyY2UnOiB7J2NvbnRlbnQnOiBib2R5fQotICAgICAgICB9KTsKLSAgICAgICAgcmVxdWVzdC5leGVjdXRlKGZ1bmN0aW9uKHJlc3ApIHsKLSAgICAgICAgICBzZWxmLnVwZGF0ZUNvbW1lbnRzKCk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgRGVmYXVsdENvbW1lbnRQcm92aWRlcjogRGVmYXVsdENvbW1lbnRQcm92aWRlcgotICB9OwotfSk7Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZHJpdmUvaW5kZXguaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2RyaXZlL2luZGV4Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjYzRkZWQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZHJpdmUvaW5kZXguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGhlYWQ+Ci0gIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KLQotICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2FwaXMuZ29vZ2xlLmNvbS9qcy9hcGkuanMiPjwvc2NyaXB0PgotICA8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLmh0bWwiPgotICA8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlldy5odG1sIj4KLSAgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZnVsbF9jb25maWcuaHRtbCI+Ci0gIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2RyaXZlL2RyaXZlX2NvbW1lbnRfcHJvdmlkZXIuaHRtbCI+Ci0KLSAgPHN0eWxlPgotICAgIGJvZHkgewotICAgICAgbWFyZ2luOiAwOwotICAgICAgcGFkZGluZzogMDsKLSAgICAgIHdpZHRoOiAxMDAlOwotICAgICAgaGVpZ2h0OiAxMDAlOwotICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIH0KLSAgICBib2R5ID4geC10aW1lbGluZS12aWV3IHsKLSAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87Ci0gICAgICBvdmVyZmxvdzogaGlkZGVuOwotICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgdG9wOiAwcHg7Ci0gICAgICBib3R0b206IDA7Ci0gICAgICBsZWZ0OiAwOwotICAgICAgcmlnaHQ6IDA7Ci0gICAgfQotICAgIG5hdiB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7Ci0gICAgfQotICAgICNuYXZiYXIgYnV0dG9uIHsKLSAgICAgIGhlaWdodDogMjRweDsKLSAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7Ci0gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgICAgYm94LXNoYWRvdzogbm9uZTsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDkwZmU7Ci0gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjNDc4N2VkKTsKLSAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMDc5ZWQ7Ci0gICAgICBjb2xvcjogI2ZmZjsKLSAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKLSAgICAgIGN1cnNvcjogZGVmYXVsdDsKLSAgICAgIGZvbnQtc2l6ZTogMTFweDsKLSAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwotICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKLSAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4OwotICAgICAgbWluLXdpZHRoOiA1NHB4OwotICAgICAgb3V0bGluZTogMHB4OwotICAgICAgcGFkZGluZzogMCA4cHg7Ci0gICAgICBmb250OiBub3JtYWwgMTNweCBhcmlhbCxzYW5zLXNlcmlmOwotICAgICAgbWFyZ2luOiA1cHg7Ci0gICAgfQotICAgICNjb2xsYWJzIHsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwotICAgIH0KLSAgICAuY29sbGFib3JhdG9yLWRpdiB7Ci0gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgICAgbWluLWhlaWdodDogMDsKLSAgICAgIHdpZHRoOiAxMDBweDsKLSAgICAgIGZvbnQtc2l6ZTogMTFweDsKLSAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgZm9udDogbm9ybWFsIDEzcHggYXJpYWwsc2Fucy1zZXJpZjsKLSAgICAgIG1hcmdpbjogMTBweDsKLSAgICB9Ci0gICAgLmNvbGxhYm9yYXRvci1pbWcgewotICAgICAgbWFyZ2luOiAycHg7Ci0gICAgfQotICAgIC5jb2xsYWJvcmF0b3ItdG9vbHRpcCB7Ci0gICAgICB6LWluZGV4OiAxMDAwMDsKLSAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMCxvcGFjaXR5IC4xM3MgZWFzZS1pbjsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYTJhMmE7Ci0gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmOwotICAgICAgY29sb3I6ICNmZmY7Ci0gICAgICBjdXJzb3I6IGRlZmF1bHQ7Ci0gICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgc2Fucy1zZXJpZjsKLSAgICAgIGZvbnQtc2l6ZTogMTFweDsKLSAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7Ci0gICAgICBvcGFjaXR5OiAxOwotICAgICAgcGFkZGluZzogN3B4IDlweDsKLSAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7Ci0gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgfQotICAgIC5jb2xsYWJvcmF0b3ItdG9vbHRpcC1jb250ZW50IHsKLSAgICAgIGNvbG9yOiAjZmZmOwotICAgIH0KLSAgICAuY29sbGFib3JhdG9yLXRvb2x0aXAtYXJyb3cgewotICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgdG9wOiAtNnB4OwotICAgIH0KLSAgICAuY29sbGFib3JhdG9yLXRvb2x0aXAtYXJyb3ctYmVmb3JlIHsKLSAgICAgIGJvcmRlci1jb2xvcjogI2ZmZiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwotICAgICAgbGVmdDogLTZweDsKLSAgICAgIGJvcmRlcjogNnB4IHNvbGlkOwotICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDsKLSAgICAgIGNvbnRlbnQ6ICcnOwotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICBoZWlnaHQ6IDA7Ci0gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICB3aWR0aDogMDsKLSAgICB9Ci0gICAgLmNvbGxhYm9yYXRvci10b29sdGlwLWFycm93LWFmdGVyIHsKLSAgICAgIHRvcDogMXB4OwotICAgICAgYm9yZGVyLWNvbG9yOiAjMmEyYTJhIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Ci0gICAgICBsZWZ0OiAtNXB4OwotICAgICAgYm9yZGVyOiA1cHggc29saWQ7Ci0gICAgICBib3JkZXItdG9wLXdpZHRoOiAwOwotICAgICAgY29udGVudDogJyc7Ci0gICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgIGhlaWdodDogMDsKLSAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgIHdpZHRoOiAwOwotICAgIH0KLQotICA8L3N0eWxlPgotICA8dGl0bGU+VHJhY2UgVmlld2VyPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8bmF2IGlkPSJuYXZiYXIiPgotICAgIDxkaXYgaWQ9ImNvbGxhYnMiPjwvZGl2PgotICAgIDxidXR0b24gaWQ9IngtZHJpdmUtc2F2ZS10by1kaXNrIj5TYXZlIHRvIGRpc2s8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJ4LWRyaXZlLXNhdmUtdG8tZHJpdmUiPlNhdmUgdG8gRHJpdmU8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJ4LWRyaXZlLWxvYWQtZnJvbS1kcml2ZSI+TG9hZCBmcm9tIERyaXZlPC9idXR0b24+Ci0gICAgPGJ1dHRvbiBpZD0ieC1kcml2ZS1zaGFyZSI+U2hhcmU8L2J1dHRvbj4KLSAgPC9uYXY+Ci0gIDx4LXRpbWVsaW5lLXZpZXc+Ci0gIDwveC10aW1lbGluZS12aWV3PgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAvLyBOZWVkcyB0byBiZSBnbG9iYWwgYXMgaXQncyBwYXNzZWQgdGhyb3VnaCB0aGUgR29vZ2xlIEFQSSBhcyBhCi0gIC8vIEdFVCBwYXJhbWV0ZXIuCi0gIHZhciBvbkFQSUNsaWVudExvYWRlZF8gPSBudWxsOwotCi0gIChmdW5jdGlvbigpIHsKLQotICAgIHRyLmV4cG9ydFRvKCd0ci5lLmRyaXZlJywgZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYXBwSWQgPSAnMjM5ODY0MDY4ODQ0JzsKLSAgICAgIHZhciBjb25zdGFudHMgPSB7Ci0gICAgICAgIEFQUF9JRDogYXBwSWQsCi0gICAgICAgIEFOQ0hPUl9OQU1FOiBhcHBJZCArICcudHJhY2Vfdmlld2VyJywKLSAgICAgICAgREVWRUxPUEVSX0tFWTogJ0FJemFTeURSLTZfd0w5dkhnMV9vejRKSGs4SVFBa3YyX1kwWTgtTScsCi0gICAgICAgIENMSUVOVF9JRDogJzIzOTg2NDA2ODg0NC1jN2dlZmJmZGNwMGo2Z3JsdHVsaDJyODh0c3ZsMThjMS5hcHBzLicgKwotICAgICAgICAgICAgJ2dvb2dsZXVzZXJjb250ZW50LmNvbScsCi0gICAgICAgIFNDT1BFOiBbCi0gICAgICAgICAgICAnaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kcml2ZScsCi0gICAgICAgICAgICAnaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kcml2ZS5pbnN0YWxsJywKLSAgICAgICAgICAgICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RyaXZlLmZpbGUnLAotICAgICAgICAgICAgJ3Byb2ZpbGUnCi0gICAgICAgIF0KLSAgICAgIH07Ci0KLSAgICAgIHJldHVybiB7Ci0gICAgICAgIGdldERyaXZlRmlsZUlkOiBmdW5jdGlvbigpIHsgcmV0dXJuIGRyaXZlRmlsZUlkXzsgfSwKLSAgICAgICAgY29uc3RhbnRzOiBjb25zdGFudHMKLSAgICAgIH07Ci0gICAgfSk7Ci0KLQotICAgIHZhciBwaWNrZXJBcGlMb2FkZWRfID0gZmFsc2U7Ci0gICAgdmFyIG9hdXRoVG9rZW5fID0gbnVsbDsKLQotICAgIHZhciB0aW1lbGluZVZpZXdFbF8gPSBudWxsOwotICAgIHZhciBkcml2ZURvY3VtZW50XyA9IG51bGw7Ci0gICAgdmFyIHNoYXJlQ2xpZW50XyA9IG51bGw7Ci0gICAgdmFyIGZpbGVJZFRvTG9hZF8gPSBudWxsOwotICAgIHZhciBkcml2ZUZpbGVJZF8gPSBudWxsOwotCi0gICAgZnVuY3Rpb24gcGFyc2VHRVRQYXJhbWV0ZXIodmFsKSB7Ci0gICAgICB2YXIgcmVzdWx0ID0gbnVsbDsKLSAgICAgIHZhciB0bXAgPSBbXTsKLSAgICAgIGxvY2F0aW9uLnNlYXJjaC5zdWJzdHIoMSkuc3BsaXQoJyYnKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgICAgdG1wID0gaXRlbS5zcGxpdCgnPScpOwotICAgICAgICBpZiAodG1wWzBdID09PSB2YWwpCi0gICAgICAgICAgcmVzdWx0ID0gZGVjb2RlVVJJQ29tcG9uZW50KHRtcFsxXSk7Ci0gICAgICB9KTsKLSAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoZSBHb29nbGUgQVBJIExvYWRlciBzY3JpcHQgdG8gbG9hZCB0aGUgZ29vZ2xlLnBpY2tlciBzY3JpcHQuCi0gICAgb25BUElDbGllbnRMb2FkZWRfID0gZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZHJpdmVTdGF0ZSA9IHBhcnNlR0VUUGFyYW1ldGVyKCdzdGF0ZScpOwotICAgICAgaWYgKGRyaXZlU3RhdGUgIT0gbnVsbCkgewotICAgICAgICB2YXIgZHJpdmVTdGF0ZUpzb24gPSBKU09OLnBhcnNlKGRyaXZlU3RhdGUpOwotICAgICAgICBmaWxlSWRUb0xvYWRfID0gU3RyaW5nKGRyaXZlU3RhdGVKc29uLmlkcyk7Ci0gICAgICB9Ci0KLSAgICAgIGdhcGkubG9hZCgncGlja2VyJywgeydjYWxsYmFjayc6IG9uUGlja2VyQXBpTG9hZH0pOwotICAgICAgZ2FwaS5sb2FkKCdhdXRoJywgeydjYWxsYmFjayc6IGZ1bmN0aW9uKCkgewotICAgICAgICBvbkF1dGhBcGlMb2FkKHRydWUsIG9uQXV0aFJlc3VsdFN1Y2Nlc3MpOwotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIG9uUmVwZWF0QXV0aEFwaUxvYWQoKSB7Ci0gICAgICAgICAgb25BdXRoQXBpTG9hZCh0cnVlLCBmdW5jdGlvbigpIHt9KTsKLSAgICAgICAgICBzZXRUaW1lb3V0KG9uUmVwZWF0QXV0aEFwaUxvYWQsIDMwMDAwKTsKLSAgICAgICAgfSwgMzAwMDApOwotICAgICAgfX0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uQXV0aEFwaUxvYWQodHJ5SW1tZWRpYXRlLCByZXN1bHRDYWxsYmFjaykgewotICAgICAgd2luZG93LmdhcGkuYXV0aC5hdXRob3JpemUoCi0gICAgICAgICAgeydjbGllbnRfaWQnOiB0ci5lLmRyaXZlLmNvbnN0YW50cy5DTElFTlRfSUQsCi0gICAgICAgICAgICAgICdzY29wZSc6IHRyLmUuZHJpdmUuY29uc3RhbnRzLlNDT1BFLCAnaW1tZWRpYXRlJzogdHJ5SW1tZWRpYXRlfSwKLSAgICAgICAgICBmdW5jdGlvbihhdXRoUmVzdWx0KSB7Ci0gICAgICAgICAgICBoYW5kbGVBdXRoUmVzdWx0KGF1dGhSZXN1bHQsIHRyeUltbWVkaWF0ZSwgcmVzdWx0Q2FsbGJhY2spOwotICAgICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uUGlja2VyQXBpTG9hZCgpIHsKLSAgICAgIHBpY2tlckFwaUxvYWRlZF8gPSB0cnVlOwotICAgICAgaWYgKGZpbGVJZFRvTG9hZF8gPT0gbnVsbCkKLSAgICAgICAgY3JlYXRlUGlja2VyKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25BdXRoUmVzdWx0U3VjY2VzcygpIHsKLSAgICAgIGlmIChmaWxlSWRUb0xvYWRfID09IG51bGwpCi0gICAgICAgIGNyZWF0ZVBpY2tlcigpOwotICAgICAgZWxzZQotICAgICAgICBsb2FkRmlsZUZyb21Ecml2ZShmaWxlSWRUb0xvYWRfKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBoYW5kbGVBdXRoUmVzdWx0KGF1dGhSZXN1bHQsIHdhc0ltbWVkaWF0ZSwgcmVzdWx0Q2FsbGJhY2spIHsKLSAgICAgIGlmIChhdXRoUmVzdWx0ICYmICFhdXRoUmVzdWx0LmVycm9yKSB7Ci0gICAgICAgIG9hdXRoVG9rZW5fID0gYXV0aFJlc3VsdC5hY2Nlc3NfdG9rZW47Ci0gICAgICAgIHJlc3VsdENhbGxiYWNrKCk7Ci0gICAgICB9IGVsc2UgaWYgKHdhc0ltbWVkaWF0ZSkgewotICAgICAgICBvbkF1dGhBcGlMb2FkKGZhbHNlKTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVQaWNrZXIoKSB7Ci0gICAgICBpZiAocGlja2VyQXBpTG9hZGVkXyAmJiBvYXV0aFRva2VuXykgewotICAgICAgICB2YXIgdmlldyA9IG5ldyBnb29nbGUucGlja2VyLlZpZXcoZ29vZ2xlLnBpY2tlci5WaWV3SWQuRE9DUyk7Ci0gICAgICAgIHZpZXcuc2V0TWltZVR5cGVzKCdhcHBsaWNhdGlvbi9qc29uLGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOwotICAgICAgICB2YXIgcGlja2VyID0gbmV3IGdvb2dsZS5waWNrZXIuUGlja2VyQnVpbGRlcigpCi0gICAgICAgICAgICAgICAgICAgICAgIC5lbmFibGVGZWF0dXJlKGdvb2dsZS5waWNrZXIuRmVhdHVyZS5OQVZfSElEREVOKQotICAgICAgICAgICAgICAgICAgICAgICAuZW5hYmxlRmVhdHVyZShnb29nbGUucGlja2VyLkZlYXR1cmUuTVVMVElTRUxFQ1RfRU5BQkxFRCkKLSAgICAgICAgICAgICAgICAgICAgICAgLnNldEFwcElkKHRyLmUuZHJpdmUuY29uc3RhbnRzLkFQUF9JRCkKLSAgICAgICAgICAgICAgICAgICAgICAgLnNldE9BdXRoVG9rZW4ob2F1dGhUb2tlbl8pCi0gICAgICAgICAgICAgICAgICAgICAgIC5hZGRWaWV3KHZpZXcpCi0gICAgICAgICAgICAgICAgICAgICAgIC5hZGRWaWV3KG5ldyBnb29nbGUucGlja2VyLkRvY3NVcGxvYWRWaWV3KCkpCi0gICAgICAgICAgICAgICAgICAgICAgIC5zZXREZXZlbG9wZXJLZXkodHIuZS5kcml2ZS5jb25zdGFudHMuREVWRUxPUEVSX0tFWSkKLSAgICAgICAgICAgICAgICAgICAgICAgLnNldENhbGxiYWNrKHBpY2tlckNhbGxiYWNrKQotICAgICAgICAgICAgICAgICAgICAgICAuYnVpbGQoKTsKLSAgICAgICAgcGlja2VyLnNldFZpc2libGUodHJ1ZSk7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcGlja2VyQ2FsbGJhY2soZGF0YSkgewotICAgICAgaWYgKGRhdGEuYWN0aW9uID09IGdvb2dsZS5waWNrZXIuQWN0aW9uLlBJQ0tFRCkgewotICAgICAgICBsb2FkRmlsZUZyb21Ecml2ZShkYXRhLmRvY3NbMF0uaWQpOwotICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGluaXRTaGFyZUJ1dHRvbigpIHsKLSAgICAgIHNoYXJlQ2xpZW50XyA9IG5ldyBnYXBpLmRyaXZlLnNoYXJlLlNoYXJlQ2xpZW50KAotICAgICAgICAgIHRyLmUuZHJpdmUuY29uc3RhbnRzLkFQUF9JRCk7Ci0gICAgICBzaGFyZUNsaWVudF8uc2V0SXRlbUlkcyhbZHJpdmVGaWxlSWRfXSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9hZEZpbGVGcm9tRHJpdmUoZmlsZUlkKSB7Ci0gICAgICBnYXBpLmNsaWVudC5sb2FkKCdkcml2ZScsICd2MicsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9IGdhcGkuY2xpZW50LmRyaXZlLmZpbGVzLmdldCh7J2ZpbGVJZCc6IGZpbGVJZH0pOwotICAgICAgICByZXF1ZXN0LmV4ZWN1dGUoZnVuY3Rpb24ocmVzcCkgeyBkb3dubG9hZEZpbGUocmVzcCk7IH0pOwotICAgICAgICBkcml2ZUZpbGVJZF8gPSBmaWxlSWQ7Ci0gICAgICAgIGdhcGkubG9hZCgnZHJpdmUtc2hhcmUnLCBpbml0U2hhcmVCdXR0b24pOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZG93bmxvYWRGaWxlKGZpbGUpIHsKLSAgICAgIGlmIChmaWxlLmRvd25sb2FkVXJsKSB7Ci0gICAgICAgIHZhciBkb3dubG9hZGluZ092ZXJsYXkgPSB0ci5iLnVpLk92ZXJsYXkoKTsKLSAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnRpdGxlID0gJ0Rvd25sb2FkaW5nLi4uJzsKLSAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnVzZXJDYW5DbG9zZSA9IGZhbHNlOwotICAgICAgICBkb3dubG9hZGluZ092ZXJsYXkubXNnRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LmFwcGVuZENoaWxkKGRvd25sb2FkaW5nT3ZlcmxheS5tc2dFbCk7Ci0gICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS5tc2dFbC5zdHlsZS5tYXJnaW4gPSAnMjBweCc7Ci0gICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS51cGRhdGUgPSBmdW5jdGlvbihtc2cpIHsKLSAgICAgICAgICB0aGlzLm1zZ0VsLnRleHRDb250ZW50ID0gbXNnOwotICAgICAgICB9Ci0gICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKLQotICAgICAgICB2YXIgYWNjZXNzVG9rZW4gPSBnYXBpLmF1dGguZ2V0VG9rZW4oKS5hY2Nlc3NfdG9rZW47Ci0gICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIGZpbGUuZG93bmxvYWRVcmwpOwotICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuKTsKLSAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS52aXNpYmxlID0gZmFsc2U7Ci0gICAgICAgICAgb25Eb3dubG9hZGVkKGZpbGUudGl0bGUsIHhoci5yZXNwb25zZVRleHQpOwotICAgICAgICB9OwotICAgICAgICB4aHIub25wcm9ncmVzcyA9IGZ1bmN0aW9uKGV2dCkgewotICAgICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS51cGRhdGUoCi0gICAgICAgICAgICAgIE1hdGguZmxvb3IoZXZ0LnBvc2l0aW9uICogMTAwIC8gZmlsZS5maWxlU2l6ZSkgKyAnJSBjb21wbGV0ZScpOwotICAgICAgICB9OwotICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBhbGVydCgnRmFpbGVkIGRvd25sb2FkaW5nIScpOyB9OwotICAgICAgICB4aHIuc2VuZCgpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgYWxlcnQoJ05vIFVSTCEnKTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaXNwbGF5QWxsQ29sbGFib3JhdG9ycygpIHsKLSAgICAgIHZhciBhbGxDb2xsYWJvcmF0b3JzID0gZHJpdmVEb2N1bWVudF8uZ2V0Q29sbGFib3JhdG9ycygpOwotICAgICAgdmFyIGNvbGxhYm9yYXRvckNvdW50ID0gYWxsQ29sbGFib3JhdG9ycy5sZW5ndGg7Ci0gICAgICB2YXIgY29sbGFic3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb2xsYWJzJyk7Ci0gICAgICBjb2xsYWJzcGFuLmlubmVySFRNTCA9ICcnOwotICAgICAgdmFyIGltYWdlTGlzdCA9IFtdOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2xsYWJvcmF0b3JDb3VudDsgaSsrKSB7Ci0gICAgICAgIHZhciB1c2VyID0gYWxsQ29sbGFib3JhdG9yc1tpXTsKLQotICAgICAgICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAgICAgIGltZy5zcmMgPSB1c2VyLnBob3RvVXJsOwotICAgICAgICBpbWcuYWx0ID0gdXNlci5kaXNwbGF5TmFtZTsKLSAgICAgICAgaW1nLmhlaWdodCA9IDMwOwotICAgICAgICBpbWcud2lkdGggPSAzMDsKLSAgICAgICAgaW1nLmNsYXNzTmFtZSA9ICdjb2xsYWJvcmF0b3ItaW1nJzsKLSAgICAgICAgY29sbGFic3Bhbi5hcHBlbmRDaGlsZChpbWcpOwotICAgICAgICBpbWFnZUxpc3QucHVzaCh7J2ltYWdlJzogaW1nLCAnbmFtZSc6IHVzZXIuZGlzcGxheU5hbWV9KTsKLSAgICAgIH0KLSAgICAgIGZvciAoaSA9IDA7IGkgPCBpbWFnZUxpc3QubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGNvbGxhYlRvb2x0aXAgPSB0ci5iLnVpLmNyZWF0ZURpdih7Ci0gICAgICAgICAgICBjbGFzc05hbWU6ICdjb2xsYWJvcmF0b3ItdG9vbHRpcCcKLSAgICAgICAgfSk7Ci0gICAgICAgIHZhciBjb2xsYWJUb29sdGlwQ29udGVudCA9IHRyLmIudWkuY3JlYXRlRGl2KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NvbGxhYm9yYXRvci10b29sdGlwLWNvbnRlbnQnCi0gICAgICAgIH0pOwotICAgICAgICBjb2xsYWJUb29sdGlwQ29udGVudC50ZXh0Q29udGVudCA9IGltYWdlTGlzdFtpXS5uYW1lOwotICAgICAgICBjb2xsYWJUb29sdGlwLmFwcGVuZENoaWxkKGNvbGxhYlRvb2x0aXBDb250ZW50KTsKLSAgICAgICAgY29sbGFic3Bhbi5hcHBlbmRDaGlsZChjb2xsYWJUb29sdGlwKTsKLSAgICAgICAgdmFyIGNvbGxhYlRvb2x0aXBBcnJvdyA9IHRyLmIudWkuY3JlYXRlRGl2KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NvbGxhYm9yYXRvci10b29sdGlwLWFycm93J30pOwotICAgICAgICBjb2xsYWJUb29sdGlwLmFwcGVuZENoaWxkKGNvbGxhYlRvb2x0aXBBcnJvdyk7Ci0gICAgICAgIHZhciBjb2xsYWJUb29sdGlwQXJyb3dCZWZvcmUgPSB0ci5iLnVpLmNyZWF0ZURpdih7Ci0gICAgICAgICAgICBjbGFzc05hbWU6ICdjb2xsYWJvcmF0b3ItdG9vbHRpcC1hcnJvdy1iZWZvcmUnfSk7Ci0gICAgICAgIGNvbGxhYlRvb2x0aXBBcnJvdy5hcHBlbmRDaGlsZChjb2xsYWJUb29sdGlwQXJyb3dCZWZvcmUpOwotICAgICAgICB2YXIgY29sbGFiVG9vbHRpcEFycm93QWZ0ZXIgPSB0ci5iLnVpLmNyZWF0ZURpdih7Ci0gICAgICAgICAgICBjbGFzc05hbWU6ICdjb2xsYWJvcmF0b3ItdG9vbHRpcC1hcnJvdy1hZnRlcid9KTsKLSAgICAgICAgY29sbGFiVG9vbHRpcEFycm93LmFwcGVuZENoaWxkKGNvbGxhYlRvb2x0aXBBcnJvd0FmdGVyKTsKLQotICAgICAgICB2YXIgcmVjdCA9IGltYWdlTGlzdFtpXS5pbWFnZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgY29sbGFiVG9vbHRpcC5zdHlsZS50b3AgPSAocmVjdC5ib3R0b20gLSA2KSArICdweCc7Ci0gICAgICAgIGNvbGxhYlRvb2x0aXAuc3R5bGUubGVmdCA9Ci0gICAgICAgICAgICAocmVjdC5sZWZ0ICsgMTYgLSAoY29sbGFiVG9vbHRpcC5vZmZzZXRXaWR0aCAvIDIpKSArICdweCc7Ci0gICAgICAgIGNvbGxhYlRvb2x0aXBBcnJvdy5zdHlsZS5sZWZ0ID0gKGNvbGxhYlRvb2x0aXAub2Zmc2V0V2lkdGggLyAyKSArICdweCc7Ci0gICAgICAgIGNvbGxhYlRvb2x0aXAuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwotICAgICAgICBmdW5jdGlvbiB2aXNpYmlsaXR5RGVsZWdhdGUoZWxlbWVudCwgdmlzaWJpbGl0eSkgewotICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IHZpc2liaWxpdHk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGltYWdlTGlzdFtpXS5pbWFnZS5hZGRFdmVudExpc3RlbmVyKAotICAgICAgICAgICAgJ21vdXNlb3ZlcicsIHZpc2liaWxpdHlEZWxlZ2F0ZShjb2xsYWJUb29sdGlwLCAndmlzaWJsZScpKTsKLSAgICAgICAgaW1hZ2VMaXN0W2ldLmltYWdlLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgICAnbW91c2VvdXQnLCB2aXNpYmlsaXR5RGVsZWdhdGUoY29sbGFiVG9vbHRpcCwgJ2hpZGRlbicpKTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvblJlYWx0aW1lRmlsZUxvYWRlZChkb2MpIHsKLSAgICAgIGlmIChkcml2ZURvY3VtZW50XykKLSAgICAgICAgZHJpdmVEb2N1bWVudF8uY2xvc2UoKTsKLSAgICAgIGRyaXZlRG9jdW1lbnRfID0gZG9jOwotICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoZ2FwaS5kcml2ZS5yZWFsdGltZS5FdmVudFR5cGUuQ09MTEFCT1JBVE9SX0pPSU5FRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlBbGxDb2xsYWJvcmF0b3JzKTsKLSAgICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKGdhcGkuZHJpdmUucmVhbHRpbWUuRXZlbnRUeXBlLkNPTExBQk9SQVRPUl9MRUZULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUFsbENvbGxhYm9yYXRvcnMpOwotCi0gICAgICBkaXNwbGF5QWxsQ29sbGFib3JhdG9ycyhkb2MpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uUmVhbHRpbWVFcnJvcihlKSB7Ci0gICAgICBhbGVydCgnRXJyb3IgbG9hZGluZyByZWFsdGltZTogJyArIGUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uRG93bmxvYWRlZChmaWxlbmFtZSwgY29udGVudCkgewotICAgICAgZ2FwaS5sb2FkKCdhdXRoOmNsaWVudCxkcml2ZS1yZWFsdGltZSxkcml2ZS1zaGFyZScsIGZ1bmN0aW9uKCkgewotICAgICAgICBnYXBpLmRyaXZlLnJlYWx0aW1lLmxvYWQoZHJpdmVGaWxlSWRfLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25SZWFsdGltZUZpbGVMb2FkZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25SZWFsdGltZUVycm9yKTsKLQotICAgICAgfSk7Ci0KLSAgICAgIHZhciB0cmFjZXMgPSBbXTsKLSAgICAgIHZhciBmaWxlbmFtZXMgPSBbXTsKLSAgICAgIGZpbGVuYW1lcy5wdXNoKGZpbGVuYW1lKTsKLSAgICAgIHRyYWNlcy5wdXNoKGNvbnRlbnQpOwotICAgICAgY3JlYXRlVmlld0Zyb21UcmFjZXMoZmlsZW5hbWVzLCB0cmFjZXMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNyZWF0ZVZpZXdGcm9tVHJhY2VzKGZpbGVuYW1lcywgdHJhY2VzKSB7Ci0gICAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgICAgdmFyIHAgPSBtLmltcG9ydFRyYWNlc1dpdGhQcm9ncmVzc0RpYWxvZyh0cmFjZXMsIHRydWUpOwotICAgICAgcC50aGVuKAotICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGltZWxpbmVWaWV3RWxfLm1vZGVsID0gbTsKLSAgICAgICAgICAgIHRpbWVsaW5lVmlld0VsXy51cGRhdGVEb2N1bWVudEZhdmljb24oKTsKLSAgICAgICAgICAgIHRpbWVsaW5lVmlld0VsXy50YWJJbmRleCA9IDE7Ci0gICAgICAgICAgICBpZiAodGltZWxpbmVWaWV3RWxfLnRpbWVsaW5lKQotICAgICAgICAgICAgICB0aW1lbGluZVZpZXdFbF8udGltZWxpbmUuZm9jdXNFbGVtZW50ID0gdGltZWxpbmVWaWV3RWxfOwotICAgICAgICAgICAgdGltZWxpbmVWaWV3RWxfLnZpZXdUaXRsZSA9ICcnOwotICAgICAgICAgIH0sCi0gICAgICAgICAgZnVuY3Rpb24oZXJyKSB7Ci0gICAgICAgICAgICB2YXIgZG93bmxvYWRpbmdPdmVybGF5ID0gbmV3IHRyLmIudWkuT3ZlcmxheSgpOwotICAgICAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnRleHRDb250ZW50ID0KLSAgICAgICAgICAgICAgICB0ci5iLm5vcm1hbGl6ZUV4Y2VwdGlvbihlcnIpLm1lc3NhZ2U7Ci0gICAgICAgICAgICBkb3dubG9hZGluZ092ZXJsYXkudGl0bGUgPSAnSW1wb3J0IGVycm9yJzsKLSAgICAgICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKLSAgICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvblNhdmVUb0Rpc2tDbGlja2VkKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvblNhdmVUb0RyaXZlQ2xpY2tlZCgpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25Mb2FkRnJvbURyaXZlQ2xpY2tlZCgpIHsKLSAgICAgIGNyZWF0ZVBpY2tlcigpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uTG9hZCgpIHsKLSAgICAgIHRpbWVsaW5lVmlld0VsXyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3gtdGltZWxpbmUtdmlldycpOwotICAgICAgdmFyIG5hdmJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZiYXInKTsKLSAgICAgIHRpbWVsaW5lVmlld0VsXy5zdHlsZS50b3AgPSBuYXZiYXIub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsKLSAgICAgIHRyLmIudWkuZGVjb3JhdGUodGltZWxpbmVWaWV3RWxfLCB0ci5jLlRpbWVsaW5lVmlldyk7Ci0gICAgfQotCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkxvYWQpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gtZHJpdmUtc2F2ZS10by1kaXNrJykub25jbGljayA9Ci0gICAgICAgIG9uU2F2ZVRvRGlza0NsaWNrZWQ7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gtZHJpdmUtc2F2ZS10by1kcml2ZScpLm9uY2xpY2sgPQotICAgICAgICBvblNhdmVUb0RyaXZlQ2xpY2tlZDsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneC1kcml2ZS1sb2FkLWZyb20tZHJpdmUnKS5vbmNsaWNrID0KLSAgICAgICAgb25Mb2FkRnJvbURyaXZlQ2xpY2tlZDsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneC1kcml2ZS1zaGFyZScpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKLSAgICAgIHNoYXJlQ2xpZW50Xy5zaG93U2V0dGluZ3NEaWFsb2coKTsKLSAgICB9OwotCi0gIH0oKSk7Ci0KLSAgPC9zY3JpcHQ+Ci0gIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IgotICAgICAgICAgIHNyYz0iaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvY2xpZW50LmpzP29ubG9hZD1vbkFQSUNsaWVudExvYWRlZF8iPgotICA8L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2hpZ2hsaWdodGVyL3ZzeW5jX2hpZ2hsaWdodGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9oaWdobGlnaHRlci92c3luY19oaWdobGlnaHRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGM0Nzc2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2hpZ2hsaWdodGVyL3ZzeW5jX2hpZ2hsaWdodGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvaGlnaGxpZ2h0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvbW9kZWxfdHJhY2suaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgVlN5bmNIaWdobGlnaHRlciBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmUuaGlnaGxpZ2h0ZXInLCBmdW5jdGlvbigpIHsKLQotICB2YXIgSGlnaGxpZ2h0ZXIgPSB0ci5jLnRyYWNrcy5IaWdobGlnaHRlcjsKLQotICAvKioKLSAgICogSGlnaGxpZ2h0cyBWU3luYyBldmVudHMgb24gdGhlIG1vZGVsIHRyYWNrICh1c2luZyAiemVicmEiIHN0cmlwaW5nKS4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBWU3luY0hpZ2hsaWdodGVyKHZpZXdwb3J0KSB7Ci0gICAgSGlnaGxpZ2h0ZXIuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgdGhpcy50aW1lc18gPSBbXTsKLSAgfQotCi0gIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfSElHSExJR0hUX0NPTE9SID0ge3I6IDAsIGc6IDAsIGI6IDI1NX07Ci0gIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfSElHSExJR0hUX0FMUEhBID0gMC4xOwotCi0gIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfREVOU0lUWV9UUkFOU1BBUkVOVCA9IDAuMjA7Ci0gIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfREVOU0lUWV9PUEFRVUUgPSAwLjEwOwotICBWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0RFTlNJVFlfUkFOR0UgPQotICAgICAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ERU5TSVRZX1RSQU5TUEFSRU5UIC0KLSAgICAgIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfREVOU0lUWV9PUEFRVUU7Ci0KLSAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19DT1VOVEVSX1BSRUNJU0lPTlMgPSB7Ci0gICAgJ2FuZHJvaWQuVlNZTkMtYXBwJzogMTUsCi0gICAgJ2FuZHJvaWQuVlNZTkMnOiAxNQotICB9OwotCi0gIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfU0xJQ0VfUFJFQ0lTSU9OUyA9IHsKLSAgICAvLyBBbmRyb2lkLgotICAgICdSZW5kZXJXaWRnZXRIb3N0Vmlld0FuZHJvaWQ6Ok9uVlN5bmMnOiA1LAotCi0gICAgLy8gQW5kcm9pZC4gVmVyeSBwcmVjaXNlLiBSZXF1aXJlcyAiZ2Z4IiBzeXN0cmFjZSBjYXRlZ29yeSB0byBiZSBlbmFibGVkLgotICAgICdWU1lOQyc6IDEwLAotCi0gICAgLy8gTGludXguIFZlcnkgcHJlY2lzZS4gUmVxdWlyZXMgImdwdSIgdHJhY2luZyBjYXRlZ29yeSB0byBiZSBlbmFibGVkLgotICAgICd2YmxhbmsnOiAxMCwKLQotICAgIC8vIE1hYy4gRGVyaXZlZCBmcm9tIGEgTWFjIGNhbGxiYWNrIChDVkRpc3BsYXlMaW5rU2V0T3V0cHV0Q2FsbGJhY2spLgotICAgICdEaXNwbGF5TGlua01hYzo6R2V0VlN5bmNQYXJhbWV0ZXJzJzogNQotICB9OwotCi0gIC8qKgotICAgKiBGaW5kIHRoZSBtb3N0IHByZWNpc2UgVlN5bmMgZXZlbnQgdGltZXMgaW4gYSBtb2RlbC4KLSAgICovCi0gIFZTeW5jSGlnaGxpZ2h0ZXIuZmluZFZTeW5jVGltZXMgPSBmdW5jdGlvbihtb2RlbCkgewotICAgIHZhciB0aW1lcyA9IFtdOwotCi0gICAgLy8gT25seSBrZWVwIHRoZSBtb3N0IHByZWNpc2UgVlN5bmMgZGF0YS4KLSAgICB2YXIgbWF4UHJlY2lzaW9uID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwotICAgIHZhciBtYXhUaXRsZSA9IHVuZGVmaW5lZDsKLSAgICB2YXIgdXNlSW5zdGVhZCA9IGZ1bmN0aW9uKHRpdGxlLCBwcmVjaXNpb25zKSB7Ci0gICAgICBpZiAodGl0bGUgIT0gbWF4VGl0bGUpIHsKLSAgICAgICAgdmFyIHByZWNpc2lvbiA9IHByZWNpc2lvbnNbdGl0bGVdOwotICAgICAgICBpZiAocHJlY2lzaW9uID09PSB1bmRlZmluZWQgfHwgcHJlY2lzaW9uIDw9IG1heFByZWNpc2lvbikgewotICAgICAgICAgIGlmIChwcmVjaXNpb24gPT09IG1heFByZWNpc2lvbikgewotICAgICAgICAgICAgY29uc29sZS53YXJuKCdFbmNvdW50ZXJlZCB0d28gZGlmZmVyZW50IFZTeW5jIGV2ZW50cyAoJyArCi0gICAgICAgICAgICAgICAgbWF4VGl0bGUgKyAnLCAnICsgdGl0bGUgKyAnKSB3aXRoIHRoZSBzYW1lIHByZWNpc2lvbiwgJyArCi0gICAgICAgICAgICAgICAgJ2lnbm9yaW5nIHRoZSBuZXdlciBvbmUgKCcgKyB0aXRsZSArICcpJyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBtYXhQcmVjaXNpb24gPSBwcmVjaXNpb247Ci0gICAgICAgIG1heFRpdGxlID0gdGl0bGU7Ci0gICAgICAgIHRpbWVzID0gW107Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBmb3IgKHZhciBwaWQgaW4gbW9kZWwucHJvY2Vzc2VzKSB7Ci0gICAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLnByb2Nlc3Nlc1twaWRdOwotCi0gICAgICAvLyBUcmF2ZXJzZSBwcm9jZXNzIGNvdW50ZXJzLgotICAgICAgZm9yICh2YXIgY2lkIGluIHByb2Nlc3MuY291bnRlcnMpIHsKLSAgICAgICAgaWYgKHVzZUluc3RlYWQoY2lkLCBWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0NPVU5URVJfUFJFQ0lTSU9OUykpIHsKLSAgICAgICAgICB2YXIgY291bnRlciA9IHByb2Nlc3MuY291bnRlcnNbY2lkXTsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50ZXIuc2VyaWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgc2VyaWVzID0gY291bnRlci5zZXJpZXNbaV07Ci0gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aW1lcywgc2VyaWVzLnRpbWVzdGFtcHMpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBUcmF2ZXJzZSB0aHJlYWQgc2xpY2VzLgotICAgICAgZm9yICh2YXIgdGlkIGluIHByb2Nlc3MudGhyZWFkcykgewotICAgICAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy50aHJlYWRzW3RpZF07Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzW2ldOwotICAgICAgICAgIGlmICh1c2VJbnN0ZWFkKHNsaWNlLnRpdGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfU0xJQ0VfUFJFQ0lTSU9OUykpIHsKLSAgICAgICAgICAgIHRpbWVzLnB1c2goc2xpY2Uuc3RhcnQpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLQotICAgIHRpbWVzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCAtIHk7IH0pOwotICAgIHJldHVybiB0aW1lczsKLSAgfTsKLQotICAvKioKLSAgICogR2VuZXJhdGUgYSB6ZWJyYSBzdHJpcGluZyBmcm9tIGEgbGlzdCBvZiB0aW1lcy4KLSAgICovCi0gIFZTeW5jSGlnaGxpZ2h0ZXIuZ2VuZXJhdGVTdHJpcGVzID0gZnVuY3Rpb24odGltZXMsIG1pblRpbWUsIG1heFRpbWUpIHsKLSAgICB2YXIgc3RyaXBlcyA9IFtdOwotCi0gICAgLy8gRmluZCB0aGUgbG93ZXN0IGFuZCBoaWdoZXN0IGluZGV4IHdpdGhpbiB0aGUgdmlld3BvcnQuCi0gICAgdmFyIGxvd0luZGV4ID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAotICAgICAgICB0aW1lcywKLSAgICAgICAgZnVuY3Rpb24odGltZSkgeyByZXR1cm4gdGltZTsgfSwKLSAgICAgICAgbWluVGltZSk7Ci0gICAgaWYgKGxvd0luZGV4ID4gdGltZXMubGVuZ3RoKSB7Ci0gICAgICBsb3dJbmRleCA9IHRpbWVzLmxlbmd0aDsKLSAgICB9Ci0gICAgdmFyIGhpZ2hJbmRleCA9IGxvd0luZGV4IC0gMTsKLSAgICB3aGlsZSAodGltZXNbaGlnaEluZGV4ICsgMV0gPD0gbWF4VGltZSkgewotICAgICAgaGlnaEluZGV4Kys7Ci0gICAgfQotCi0gICAgLy8gTXVzdCBzdGFydCBhdCBhbiBldmVuIGluZGV4IGFuZCBlbmQgYXQgYW4gb2RkIGluZGV4LgotICAgIGZvciAodmFyIGkgPSBsb3dJbmRleCAtIChsb3dJbmRleCAlIDIpOyBpIDw9IGhpZ2hJbmRleDsgaSArPSAyKSB7Ci0gICAgICB2YXIgbGVmdCA9IGkgPCBsb3dJbmRleCA/IG1pblRpbWUgOiB0aW1lc1tpXTsKLSAgICAgIHZhciByaWdodCA9IGkgKyAxID4gaGlnaEluZGV4ID8gbWF4VGltZSA6IHRpbWVzW2kgKyAxXTsKLSAgICAgIHN0cmlwZXMucHVzaChbbGVmdCwgcmlnaHRdKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RyaXBlczsKLSAgfQotCi0gIFZTeW5jSGlnaGxpZ2h0ZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogSGlnaGxpZ2h0ZXIucHJvdG90eXBlLAotCi0gICAgcHJvY2Vzc01vZGVsOiBmdW5jdGlvbihtb2RlbCkgewotICAgICAgdGhpcy50aW1lc18gPSBWU3luY0hpZ2hsaWdodGVyLmZpbmRWU3luY1RpbWVzKG1vZGVsKTsKLSAgICB9LAotCi0gICAgZHJhd0hpZ2hsaWdodDogZnVuY3Rpb24oY3R4LCBkdCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwgdmlld0hlaWdodCkgewotICAgICAgaWYgKCF0aGlzLnZpZXdwb3J0Xy5oaWdobGlnaHRWU3luYykgewotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHZhciBzdHJpcGVzID0gVlN5bmNIaWdobGlnaHRlci5nZW5lcmF0ZVN0cmlwZXMoCi0gICAgICAgICAgdGhpcy50aW1lc18sIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOwotICAgICAgaWYgKHN0cmlwZXMubGVuZ3RoID09IDApIHsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB2YXIgc3RyaXBlUmFuZ2UgPSBzdHJpcGVzW3N0cmlwZXMubGVuZ3RoIC0gMV1bMV0gLSBzdHJpcGVzWzBdWzBdOwotICAgICAgdmFyIHN0cmlwZURlbnNpdHkgPSBzdHJpcGVzLmxlbmd0aCAvIChkdC5zY2FsZVggKiBzdHJpcGVSYW5nZSk7Ci0gICAgICB2YXIgY2xhbXBlZFN0cmlwZURlbnNpdHkgPSB0ci5iLmNsYW1wKHN0cmlwZURlbnNpdHksCi0gICAgICAgICAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ERU5TSVRZX09QQVFVRSwKLSAgICAgICAgICBWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0RFTlNJVFlfVFJBTlNQQVJFTlQpOwotICAgICAgdmFyIG9wYWNpdHkgPQotICAgICAgICAgIChWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0RFTlNJVFlfVFJBTlNQQVJFTlQgLSBjbGFtcGVkU3RyaXBlRGVuc2l0eSkgLwotICAgICAgICAgIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfREVOU0lUWV9SQU5HRTsKLSAgICAgIGlmIChvcGFjaXR5ID09IDApIHsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7Ci0gICAgICB2YXIgaGVpZ2h0ID0gdmlld0hlaWdodCAqIHBpeGVsUmF0aW87Ci0gICAgICBjdHguZmlsbFN0eWxlID0gdHIuYi51aS5jb2xvclRvUkdCQVN0cmluZygKLSAgICAgICAgICBWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0hJR0hMSUdIVF9DT0xPUiwKLSAgICAgICAgICBWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0hJR0hMSUdIVF9BTFBIQSAqIG9wYWNpdHkpOwotCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmlwZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHhMZWZ0VmlldyA9IGR0LnhXb3JsZFRvVmlldyhzdHJpcGVzW2ldWzBdKTsKLSAgICAgICAgdmFyIHhSaWdodFZpZXcgPSBkdC54V29ybGRUb1ZpZXcoc3RyaXBlc1tpXVsxXSk7Ci0gICAgICAgIGN0eC5maWxsUmVjdCh4TGVmdFZpZXcsIDAsIHhSaWdodFZpZXcgLSB4TGVmdFZpZXcsIGhlaWdodCk7Ci0gICAgICB9Ci0gICAgfQotICB9OwotCi0gIC8vIFJlZ2lzdGVyIHRoZSBoaWdobGlnaHRlci4KLSAgdHIuYy50cmFja3MuSGlnaGxpZ2h0ZXIucmVnaXN0ZXIoVlN5bmNIaWdobGlnaHRlcik7Ci0KLSAgcmV0dXJuIHsKLSAgICBWU3luY0hpZ2hsaWdodGVyOiBWU3luY0hpZ2hsaWdodGVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaGlnaGxpZ2h0ZXIvdnN5bmNfaGlnaGxpZ2h0ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaGlnaGxpZ2h0ZXIvdnN5bmNfaGlnaGxpZ2h0ZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Y2Y1YjhmLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2hpZ2hsaWdodGVyL3ZzeW5jX2hpZ2hsaWdodGVyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aHJlYWQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9oaWdobGlnaHRlci92c3luY19oaWdobGlnaHRlci5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIFZTeW5jSGlnaGxpZ2h0ZXIgPSB0ci5lLmhpZ2hsaWdodGVyLlZTeW5jSGlnaGxpZ2h0ZXI7Ci0KLSAgdmFyIFZJRVdfTF9XT1JMRCA9IDEwMDsKLSAgdmFyIFZJRVdfUl9XT1JMRCA9IDEwMDA7Ci0KLSAgZnVuY3Rpb24gYnVpbGRNb2RlbChzbGljZXMpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoaSk7Ci0gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNsaWNlc1tpXS5sZW5ndGg7IGorKykgewotICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2VzW2ldW2pdKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIG1vZGVsOwotICB9Ci0KLSAgZnVuY3Rpb24gYnVpbGRTbGljZSh0aXRsZSwgdGltZSkgewotICAgIHJldHVybiBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsIHRpdGxlLCAwLCB0aW1lLCB7fSk7Ci0gIH0KLQotICBmdW5jdGlvbiB0ZXN0RmluZFZTeW5jVGltZXMoc2xpY2VzLCBleHBlY3RlZFRpbWVzKSB7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgZXhwZWN0ZWRUaW1lcywgVlN5bmNIaWdobGlnaHRlci5maW5kVlN5bmNUaW1lcyhidWlsZE1vZGVsKHNsaWNlcykpKTsKLSAgfQotCi0gIGZ1bmN0aW9uIHRlc3RHZW5lcmF0ZVN0cmlwZXModGltZXMsIGV4cGVjdGVkUmFuZ2VzKSB7Ci0gICAgdmFyIHJhbmdlcyA9IFZTeW5jSGlnaGxpZ2h0ZXIuZ2VuZXJhdGVTdHJpcGVzKAotICAgICAgICB0aW1lcywgVklFV19MX1dPUkxELCBWSUVXX1JfV09STEQpOwotICAgIHJhbmdlcy5zb3J0KCk7Ci0gICAgZXhwZWN0ZWRSYW5nZXMuc29ydCgpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHJhbmdlcy5sZW5ndGgsIGV4cGVjdGVkUmFuZ2VzLmxlbmd0aCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFJhbmdlcy5sZW5ndGg7IGkrKykgewotICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyYW5nZXNbaV0sIGV4cGVjdGVkUmFuZ2VzW2ldKTsKLSAgICB9Ci0gIH0KLQotICB0ZXN0KCdmaW5kRW1wdHknLCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0RmluZFZTeW5jVGltZXMoW10sIFtdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZE5vVnN5bmMnLCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0RmluZFZTeW5jVGltZXMoWwotICAgICAgICBbYnVpbGRTbGljZSgnTWVzc2FnZUxvb3A6OlJ1blRhc2snLCAxMCksCi0gICAgICAgICBidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDIwKV0sCi0gICAgICAgIFtidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDE1KV0KLSAgICBdLCBbXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ZpbmRPbmVWc3luYycsIGZ1bmN0aW9uKCkgewotICAgIHRlc3RGaW5kVlN5bmNUaW1lcyhbW2J1aWxkU2xpY2UoJ3ZibGFuaycsIDQyKV1dLCBbNDJdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZE11bHRpcGxlVnN5bmNzJywgZnVuY3Rpb24oKSB7Ci0gICAgdGVzdEZpbmRWU3luY1RpbWVzKFsKLSAgICAgICAgW2J1aWxkU2xpY2UoJ1ZTWU5DJywgMSksIGJ1aWxkU2xpY2UoJ01lc3NhZ2VMb29wOjpSdW5UYXNrJywgMildLAotICAgICAgICBbYnVpbGRTbGljZSgnTWVzc2FnZUxvb3A6OlJ1blRhc2snLCAzKV0sCi0gICAgICAgIFtidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDQpLCBidWlsZFNsaWNlKCdWU1lOQycsIDUpXSwKLSAgICAgICAgW2J1aWxkU2xpY2UoJ1ZTWU5DJywgNiksIGJ1aWxkU2xpY2UoJ1ZTWU5DJywgNyldCi0gICAgXSwgWzEsIDUsIDYsIDddKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmluZFVuc29ydGVkJywgZnVuY3Rpb24oKSB7Ci0gICAgdGVzdEZpbmRWU3luY1RpbWVzKFsKLSAgICAgICAgW2J1aWxkU2xpY2UoJ1JlbmRlcldpZGdldEhvc3RWaWV3QW5kcm9pZDo6T25WU3luYycsIDQpLAotICAgICAgICAgYnVpbGRTbGljZSgnTWVzc2FnZUxvb3A6OlJ1blRhc2snLCAyKV0sCi0gICAgICAgIFtidWlsZFNsaWNlKCdSZW5kZXJXaWRnZXRIb3N0Vmlld0FuZHJvaWQ6Ok9uVlN5bmMnLCAxKSwKLSAgICAgICAgIGJ1aWxkU2xpY2UoJ1JlbmRlcldpZGdldEhvc3RWaWV3QW5kcm9pZDo6T25WU3luYycsIDMpXQotICAgIF0sIFsxLCAzLCA0XSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ZpbmREaWZmZXJlbnRQcmVjaXNpb25zJywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gdmJsYW5rIGhhcyBoaWdoZXIgcHJlY2lzaW9uIHRoYW4gUmVuZGVyV2lkZ2V0SG9zdFZpZXdBbmRyb2lkOjpPblZTeW5jLgotICAgIHRlc3RGaW5kVlN5bmNUaW1lcyhbCi0gICAgICAgIFtidWlsZFNsaWNlKCdSZW5kZXJXaWRnZXRIb3N0Vmlld0FuZHJvaWQ6Ok9uVlN5bmMnLCAxKSwKLSAgICAgICAgIGJ1aWxkU2xpY2UoJ3ZibGFuaycsIDIpLAotICAgICAgICAgYnVpbGRTbGljZSgnUmVuZGVyV2lkZ2V0SG9zdFZpZXdBbmRyb2lkOjpPblZTeW5jJywgMyldCi0gICAgXSwgWzJdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZ2VuZXJhdGVJbnNpZGUnLCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFtdLCBbXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMjAwLCA1MDBdLCBbWzIwMCwgNTAwXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzIwMCwgNTAwLCA4MDAsIDkwMF0sIFtbMjAwLCA1MDBdLCBbODAwLCA5MDBdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgWzIwMCwgNTAwLCA4MDAsIDkwMCwgOTk4LCA5OTldLAotICAgICAgICBbWzIwMCwgNTAwXSwgWzgwMCwgOTAwXSwgWzk5OCwgOTk5XV0pOwotICB9KTsKLQotICB0ZXN0KCdnZW5lcmF0ZU91dHNpZGUnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBGYXIgbGVmdC4KLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCA5OV0sIFtdKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAxMCwgNTAsIDk5XSwgW10pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDk5LCAxMDEsIDk5OV0sIFtbMTAxLCA5OTldXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgMTAsIDUwLCA5OSwgMTAxLCA5OTldLCBbWzEwMSwgOTk5XV0pOwotCi0gICAgLy8gRmFyIHJpZ2h0LgotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzEwMDEsIDIwMDBdLCBbXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMTAwMSwgMjAwMCwgMzAwMCwgNDAwMF0sIFtdKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFsxMDEsIDk5OSwgMTAwMSwgMjAwMF0sIFtbMTAxLCA5OTldXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMTAxLCA5OTksIDEwMDEsIDIwMDAsIDMwMDAsIDQwMDBdLCBbWzEwMSwgOTk5XV0pOwotCi0gICAgLy8gRmFyIGJvdGguCi0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgOTksIDEwMDEsIDIwMDBdLCBbXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgMTAsIDUwLCA5OSwgMTAwMSwgMjAwMF0sIFtdKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAxMCwgNTAsIDk5LCAxMDAxLCAyMDAwLCAzMDAwLCA0MDAwXSwgW10pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDk5LCAxMDEsIDk5OSwgMTAwMSwgMjAwMF0sIFtbMTAxLCA5OTldXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2dlbmVyYXRlT3ZlcmxhcCcsIGZ1bmN0aW9uKCkgewotICAgIC8vIExlZnQgb3ZlcmxhcC4KLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAxMDFdLCBbW1ZJRVdfTF9XT1JMRCwgMTAxXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDEsIDIsIDEwMV0sIFtbVklFV19MX1dPUkxELCAxMDFdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgWzIsIDEwMSwgMTAyLCAxMDNdLAotICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMTAxXSwgWzEwMiwgMTAzXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCi0gICAgICAgIFswLCAxLCAyLCAxMDEsIDEwMiwgMTAzXSwKLSAgICAgICAgW1tWSUVXX0xfV09STEQsIDEwMV0sIFsxMDIsIDEwM11dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAotICAgICAgICBbMCwgMSwgMiwgMTAxLCAxMDIsIDEwMywgMTAwMSwgMzAwMF0sCi0gICAgICAgIFtbVklFV19MX1dPUkxELCAxMDFdLCBbMTAyLCAxMDNdXSk7Ci0KLSAgICAvLyBSaWdodCBvdmVybGFwLgotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzk5OSwgMjAwMF0sIFtbOTk5LCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbOTk5LCAyMDAwLCAzMDAwLCA0MDAwXSwgW1s5OTksIFZJRVdfUl9XT1JMRF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAotICAgICAgICBbOTk3LCA5OTgsIDk5OSwgMjAwMF0sCi0gICAgICAgIFtbOTk3LCA5OThdLCBbOTk5LCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgWzk5NywgOTk4LCA5OTksIDIwMDAsIDMwMDAsIDQwMDBdLAotICAgICAgICBbWzk5NywgOTk4XSwgWzk5OSwgVklFV19SX1dPUkxEXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCi0gICAgICAgIFswLCAxMCwgOTk3LCA5OTgsIDk5OSwgMjAwMCwgMzAwMCwgNDAwMF0sCi0gICAgICAgIFtbOTk3LCA5OThdLCBbOTk5LCBWSUVXX1JfV09STERdXSk7Ci0KLSAgICAvLyBCb3RoIG92ZXJsYXAuCi0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgMjAwMF0sIFtbVklFV19MX1dPUkxELCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgWzAsIDEwMSwgOTk5LCAyMDAwXSwKLSAgICAgICAgW1tWSUVXX0xfV09STEQsIDEwMV0sIFs5OTksIFZJRVdfUl9XT1JMRF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAotICAgICAgICBbMCwgMTAxLCAyMDAsIDkwMCwgOTk5LCAyMDAwXSwKLSAgICAgICAgW1tWSUVXX0xfV09STEQsIDEwMV0sIFsyMDAsIDkwMF0sIFs5OTksIFZJRVdfUl9XT1JMRF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAotICAgICAgICBbMCwgMTAsIDkwLCAxMDEsIDk5OSwgMjAwMCwgMzAwMCwgNDAwMF0sCi0gICAgICAgIFtbVklFV19MX1dPUkxELCAxMDFdLCBbOTk5LCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgWzAsIDEwLCA5MCwgMTAxLCAyMDAsIDkwMCwgOTk5LCAyMDAwLCAzMDAwLCA0MDAwXSwKLSAgICAgICAgW1tWSUVXX0xfV09STEQsIDEwMV0sIFsyMDAsIDkwMF0sIFs5OTksIFZJRVdfUl9XT1JMRF1dKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZ2VuZXJhdGVPZGQnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBPbmUgVlN5bmMuCi0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMF0sIFtbVklFV19MX1dPUkxELCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbNTAwXSwgW1s1MDAsIFZJRVdfUl9XT1JMRF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFsxNTAwXSwgW10pOwotCi0gICAgLy8gTXVsdGlwbGUgVlN5bmNzLgotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDEwLCAyMF0sIFtbVklFV19MX1dPUkxELCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgNTAwLCAyMDAwXSwgW1tWSUVXX0xfV09STEQsIDUwMF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAxMCwgNTAwXSwgW1s1MDAsIFZJRVdfUl9XT1JMRF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAxMCwgMjAwMF0sIFtdKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAotICAgICAgICBbMCwgMjAwLCA1MDBdLAotICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMjAwXSwgWzUwMCwgVklFV19SX1dPUkxEXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCi0gICAgICAgIFswLCAyMDAsIDUwMCwgOTAwXSwKLSAgICAgICAgW1tWSUVXX0xfV09STEQsIDIwMF0sIFs1MDAsIDkwMF1dKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZ2VuZXJhdGVCb3JkZXInLCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCBWSUVXX0xfV09STERdLCBbW1ZJRVdfTF9XT1JMRCwgVklFV19MX1dPUkxEXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCi0gICAgICAgIFtWSUVXX0xfV09STEQsIFZJRVdfTF9XT1JMRF0sCi0gICAgICAgIFtbVklFV19MX1dPUkxELCBWSUVXX0xfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgW1ZJRVdfUl9XT1JMRCwgMjAwMF0sCi0gICAgICAgIFtbVklFV19SX1dPUkxELCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgW1ZJRVdfUl9XT1JMRCwgVklFV19SX1dPUkxEXSwKLSAgICAgICAgW1tWSUVXX1JfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAotICAgICAgICBbVklFV19MX1dPUkxELCBWSUVXX1JfV09STERdLAotICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgVklFV19SX1dPUkxEXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCi0gICAgICAgIFtWSUVXX0xfV09STEQsIDIwMCwgNTAwLCBWSUVXX1JfV09STERdLAotICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMjAwXSwgWzUwMCwgVklFV19SX1dPUkxEXV0pOwotICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCi0gICAgICAgIFswLCBWSUVXX0xfV09STEQsIFZJRVdfUl9XT1JMRCwgMjAwMF0sCi0gICAgICAgIFtbVklFV19MX1dPUkxELCBWSUVXX0xfV09STERdLCBbVklFV19SX1dPUkxELCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgWzAsIFZJRVdfTF9XT1JMRCwgVklFV19SX1dPUkxELCAyMDAwXSwKLSAgICAgICAgW1tWSUVXX0xfV09STEQsIFZJRVdfTF9XT1JMRF0sIFtWSUVXX1JfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKLSAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAotICAgICAgICBbMCwgVklFV19MX1dPUkxELCAyMDAsIDUwMCwgVklFV19SX1dPUkxELCAyMDAwXSwKLSAgICAgICAgW1tWSUVXX0xfV09STEQsIFZJRVdfTF9XT1JMRF0sIFsyMDAsIDUwMF0sCi0gICAgICAgICBbVklFV19SX1dPUkxELCBWSUVXX1JfV09STERdXSk7Ci0gICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKLSAgICAgICAgWzAsIDEwLCBWSUVXX0xfV09STEQsIFZJRVdfUl9XT1JMRCwgMjAwMCwgMzAwMF0sCi0gICAgICAgIFtbVklFV19MX1dPUkxELCBWSUVXX1JfV09STERdXSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2JhdHRvcl9pbXBvcnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzZmQyOTcuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvaW1wb3J0ZXIvaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEltcG9ydHMgdGV4dCBmaWxlcyBpbiB0aGUgQmF0dE9yIGZvcm1hdCBpbnRvIHRoZQotICogTW9kZWwuIFRoaXMgZm9ybWF0IGlzIG91dHB1dCBieSB0aGUgQmF0dE9yIGV4ZWN1dGFibGUuCi0gKgotICogVGhpcyBpbXBvcnRlciBhc3N1bWVzIHRoZSBldmVudHMgYXJyaXZlIGFzIGEgc3RyaW5nLiBUaGUgdW5pdCB0ZXN0cyBwcm92aWRlCi0gKiBleGFtcGxlcyBvZiB0aGUgdHJhY2UgZm9ybWF0LgotICovCi0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmJhdHRvcicsIGZ1bmN0aW9uKCkgewotICB2YXIgSW1wb3J0ZXIgPSB0ci5pbXBvcnRlci5JbXBvcnRlcjsKLQotICAvKioKLSAgICogSW1wb3J0cyBsaW51eCBwZXJmIGV2ZW50cyBpbnRvIGEgc3BlY2lmaWVkIG1vZGVsLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEJhdHRvckltcG9ydGVyKG1vZGVsLCBldmVudHMpIHsKLSAgICB0aGlzLmltcG9ydFByaW9yaXR5ID0gMzsgLy8gcnVucyBhZnRlciB0aGUgbGludXhfcGVyZiBpbXBvcnRlcgotICAgIHRoaXMuc2FtcGxlUmF0ZV8gPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5tb2RlbF8gPSBtb2RlbDsKLSAgICB0aGlzLmV2ZW50c18gPSBldmVudHM7Ci0gIH0KLQotICB2YXIgVGVzdEV4cG9ydHMgPSB7fTsKLQotICB2YXIgYmF0dG9yRGF0YUxpbmVSRSA9IC9eKFxkK1wuXGQrKVxzKyhcZCtcLlxkKylccysoXGQrXC5cZCspJC87Ci0gIHZhciBiYXR0b3JIZWFkZXJMaW5lUkUgPSAvXiMgQmF0dE9yLzsKLSAgdmFyIHNhbXBsZVJhdGVMaW5lUkUgPSAvXiMgc2FtcGxlX3JhdGU9KFxkKylIei87Ci0KLSAgLyoqCi0gICAqIEd1ZXNzZXMgd2hldGhlciB0aGUgcHJvdmlkZWQgZXZlbnRzIGlzIGEgQmF0dE9yIHN0cmluZy4KLSAgICogTG9va3MgZm9yIHRoZSBtYWdpYyBzdHJpbmcgIiMgQmF0dE9yIiBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUsCi0gICAqCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgd2hlbiBldmVudHMgaXMgYSBCYXR0T3IgYXJyYXkuCi0gICAqLwotICBCYXR0b3JJbXBvcnRlci5jYW5JbXBvcnQgPSBmdW5jdGlvbihldmVudHMpIHsKLSAgICBpZiAoISh0eXBlb2YoZXZlbnRzKSA9PT0gJ3N0cmluZycgfHwgZXZlbnRzIGluc3RhbmNlb2YgU3RyaW5nKSkKLSAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBiYXR0b3JIZWFkZXJMaW5lUkUudGVzdChldmVudHMpOwotICB9OwotCi0gIEJhdHRvckltcG9ydGVyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEltcG9ydGVyLnByb3RvdHlwZSwKLQotICAgIGdldCBtb2RlbCgpIHsKLSAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSW1wb3J0cyB0aGUgZGF0YSBpbiB0aGlzLmV2ZW50c18gaW50byBtb2RlbF8uCi0gICAgICovCi0gICAgaW1wb3J0RXZlbnRzOiBmdW5jdGlvbihpc1NlY29uZGFyeUltcG9ydCkgewotICAgICAgLy8gQ3JlYXRlIHNlcmllcyBhbmQgaW1wb3J0IHBvd2VyIHNhbXBsZXMgaW50byBpdC4KLSAgICAgIHZhciBuYW1lID0gJ3Bvd2VyJzsKLSAgICAgIHZhciBzZXJpZXMgPSBuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygndmFsdWUnLAotICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUgKyAnLicgKyAndmFsdWUnKSk7Ci0gICAgICB0aGlzLmltcG9ydFBvd2VyU2FtcGxlcyhzZXJpZXMpOwotCi0gICAgICAvLyBGaW5kIHRoZSBzeW5jIG1hcmtlcnMuCi0gICAgICB2YXIgc3luY01hcmtzID0gdGhpcy5tb2RlbF8uZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkKCdiYXR0b3InKTsKLSAgICAgIGlmIChzeW5jTWFya3MubGVuZ3RoIDwgMSkgewotICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnY2xvY2tfc3luYycsCi0gICAgICAgICAgbWVzc2FnZTogJ0Nhbm5vdCBpbXBvcnQgQmF0dE9yIHBvd2VyIHRyYWNlIHdpdGhvdXQgYSBzeW5jIHNpZ25hbC4nCi0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIC8vIFRyeSBlYWNoIG9mIHRoZSBjbG9jayBzeW5jIHRlY2hpbnF1ZXMgaW4gb3JkZXIgb2YgdGhlaXIgYWNjdXJhY3kuCi0gICAgICB2YXIgc2hpZnRUcyA9IHRoaXMuY29ycmVsYXRpb25DbG9ja1N5bmMoc3luY01hcmtzLCBzZXJpZXMpOwotCi0gICAgICBpZiAoc2hpZnRUcyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgIHR5cGU6ICdjbG9ja19zeW5jJywKLSAgICAgICAgICBtZXNzYWdlOiAnQWxsIG9mIHRoZSBCYXR0T3IgcG93ZXIgdHJhY2UgY2xvY2sgc3luYyB0ZWNoaW5xdWVzIGZhaWxlZC4nCi0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIC8vIEFkZCBhIGNvdW50ZXIgZm9yIHBvd2VyIHRvIHRoZSBHVUkuCi0gICAgICB2YXIgY3RyID0gdGhpcy5tb2RlbF8ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCAnUG93ZXInKTsKLSAgICAgIGlmIChjdHIubnVtU2VyaWVzID09PSAwKSB7Ci0gICAgICAgIGN0ci5hZGRTZXJpZXMoc2VyaWVzKTsKLSAgICAgIH0KLQotICAgICAgY3RyLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoc2hpZnRUcyk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFdhbGtzIHRoZSBldmVudHMgYW5kIHBvcHVsYXRlcyBhIHRpbWUgc2VyaWVzIHdpdGggcG93ZXIgc2FtcGxlcy4KLSAgICAgKi8KLSAgICBpbXBvcnRQb3dlclNhbXBsZXM6IGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgdmFyIGxpbmVzID0gdGhpcy5ldmVudHNfLnNwbGl0KCdcbicpOwotCi0gICAgICAvLyBVcGRhdGUgdGhlIG1vZGVsJ3MgYm91bmRzLgotICAgICAgdGhpcy5tb2RlbF8udXBkYXRlQm91bmRzKCk7Ci0gICAgICB2YXIgbWluVHMgPSAwOwotICAgICAgaWYgKHRoaXMubW9kZWxfLmJvdW5kcy5taW4gIT09IHVuZGVmaW5lZCkKLSAgICAgICAgbWluVHMgPSB0aGlzLm1vZGVsXy5ib3VuZHMubWluOwotCi0gICAgICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUpIHsKLSAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoL14jLy50ZXN0KGxpbmUpKSB7Ci0gICAgICAgICAgLy8gUGFyc2Ugc2FtcGxlIHJhdGUuCi0gICAgICAgICAgZ3JvdXBzID0gc2FtcGxlUmF0ZUxpbmVSRS5leGVjKGxpbmUpOwotICAgICAgICAgIGlmICghZ3JvdXBzKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIHRoaXMuc2FtcGxlUmF0ZV8gPSBwYXJzZUludChncm91cHNbMV0pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIFBhcnNlIHBvd2VyIHNhbXBsZS4KLSAgICAgICAgICB2YXIgZ3JvdXBzID0gYmF0dG9yRGF0YUxpbmVSRS5leGVjKGxpbmUpOwotICAgICAgICAgIGlmICghZ3JvdXBzKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgbWVzc2FnZTogJ1VucmVjb2duaXplZCBsaW5lOiAnICsgbGluZQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgdmFyIHRpbWUgPSBwYXJzZUZsb2F0KGdyb3Vwc1sxXSkgKyBtaW5UczsKLSAgICAgICAgICB2YXIgdm9sdGFnZV9tViA9IHBhcnNlRmxvYXQoZ3JvdXBzWzJdKTsKLSAgICAgICAgICB2YXIgY3VycmVudF9tQSA9IHBhcnNlRmxvYXQoZ3JvdXBzWzNdKTsKLSAgICAgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0aW1lLCAodm9sdGFnZV9tViAqIGN1cnJlbnRfbUEpIC8gMTAwMCk7Ci0gICAgICAgIH0KLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBjb3JyZWxhdGlvbkNsb2NrU3luYzogZnVuY3Rpb24oc3luY01hcmtzLCBzZXJpZXMpIHsKLSAgICAgIC8vIEZpbmQgdGhlIHJlZ3VsYXRvciBjb3VudGVyIGZvciB0aGUgc3luYy4KLSAgICAgIHZhciBzeW5jQ3RyID0gdGhpcy5tb2RlbF8ua2VybmVsLmNvdW50ZXJzWwotICAgICAgICAgICdudWxsLnZyZWcgJyArIHN5bmNNYXJrc1swXS5hcmdzWydyZWd1bGF0b3InXSArICcgZW5hYmxlZCddOwotICAgICAgaWYgKHN5bmNDdHIgPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnY2xvY2tfc3luYycsCi0gICAgICAgICAgbWVzc2FnZTogJ0Nhbm5vdCBjb3JyZWxhdGUgQmF0dE9yIHBvd2VyIHRyYWNlIHdpdGhvdXQgc3luYyB2cmVnLicKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFN0b3JlIHRoZSBzeW5jIGV2ZW50cyBmcm9tIHRoZSByZWd1bGF0b3IgY291bnRlci4KLSAgICAgIHZhciBzeW5jRXZlbnRzID0gW107Ci0gICAgICB2YXIgZmlyc3RTeW5jRXZlbnRUcyA9IHVuZGVmaW5lZDsKLSAgICAgIHN5bmNDdHIuc2VyaWVzWzBdLml0ZXJhdGVBbGxFdmVudHMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgaWYgKGV2ZW50LnRpbWVzdGFtcCA+PSBzeW5jTWFya3NbMF0udHMgJiYKLSAgICAgICAgICAgIGV2ZW50LnRpbWVzdGFtcCA8PSBzeW5jTWFya3NbMV0udHMpIHsKLSAgICAgICAgICBpZiAoZmlyc3RTeW5jRXZlbnRUcyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgZmlyc3RTeW5jRXZlbnRUcyA9IGV2ZW50LnRpbWVzdGFtcDsKLSAgICAgICAgICB2YXIgbmV3RXZlbnQgPSB7Ci0gICAgICAgICAgICAgICd0cyc6IChldmVudC50aW1lc3RhbXAgLSBmaXJzdFN5bmNFdmVudFRzKSAvIDEwMDAsIC8vIG1zZWMgLT4gc2VjCi0gICAgICAgICAgICAgICd2YWwnOiBldmVudC52YWx1ZX07Ci0gICAgICAgICAgc3luY0V2ZW50cy5wdXNoKG5ld0V2ZW50KTsKLSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIC8vIEdlbmVyYXRlIHNhbXBsZXMgZnJvbSBzeW5jIGV2ZW50cyB0byBiZSBjcm9zcy1jb3JyZWxhdGVkIHdpdGggcG93ZXIuCi0gICAgICB2YXIgc3luY1NhbXBsZXMgPSBbXTsKLSAgICAgIHZhciBzeW5jTnVtU2FtcGxlcyA9IE1hdGguY2VpbCgKLSAgICAgICAgICBzeW5jRXZlbnRzW3N5bmNFdmVudHMubGVuZ3RoIC0gMV0udHMgKiB0aGlzLnNhbXBsZVJhdGVfCi0gICAgICApOwotCi0gICAgICBmb3IgKHZhciBpID0gMTsgaSA8IHN5bmNFdmVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHNhbXBsZVN0YXJ0SWR4ID0gTWF0aC5jZWlsKAotICAgICAgICAgICAgc3luY0V2ZW50c1tpIC0gMV0udHMgKiB0aGlzLnNhbXBsZVJhdGVfCi0gICAgICAgICk7Ci0gICAgICAgIHZhciBzYW1wbGVFbmRJZHggPSBNYXRoLmNlaWwoCi0gICAgICAgICAgICBzeW5jRXZlbnRzW2ldLnRzICogdGhpcy5zYW1wbGVSYXRlXwotICAgICAgICApOwotCi0gICAgICAgIGZvciAodmFyIGogPSBzYW1wbGVTdGFydElkeDsgaiA8IHNhbXBsZUVuZElkeDsgaisrKSB7Ci0gICAgICAgICAgc3luY1NhbXBsZXNbal0gPSBzeW5jRXZlbnRzW2kgLSAxXS52YWw7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgLy8gVE9ETyhhc2NodWxtYW4pIExvdy1wYXNzIHRoZSBzYW1wbGVzIHRvIGltcHJvdmUgdGhlIGNyb3NzLWNvcnJlbGF0aW9uLgotCi0gICAgICB2YXIgcG93ZXJTYW1wbGVzID0gc2VyaWVzLnNhbXBsZXM7Ci0gICAgICAvLyBDaGVjayB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIGVub3VnaCBwb3dlciBzYW1wbGVzLgotICAgICAgaWYgKHBvd2VyU2FtcGxlcy5sZW5ndGggPCBzeW5jU2FtcGxlcy5sZW5ndGgpIHsKLSAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgdHlwZTogJ25vdF9lbm91Z2hfc2FtcGxlcycsCi0gICAgICAgICAgbWVzc2FnZTogJ05vdCBlbm91Z2ggcG93ZXIgc2FtcGxlcyB0byBjb3JyZWxhdGUgd2l0aCBzeW5jIHNpZ25hbC4nCi0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgfQotCi0gICAgICAvLyBDcm9zcy1jb3JyZWxhdGUgdGhlIGdyb3VuZCB0cnV0aCB3aXRoIHRoZSBsYXN0IDVzIG9mIHBvd2VyIHNhbXBsZXMuCi0gICAgICB2YXIgbWF4U2hpZnQgPSBwb3dlclNhbXBsZXMubGVuZ3RoIC0gc3luY1NhbXBsZXMubGVuZ3RoOwotICAgICAgdmFyIG1pblNoaWZ0ID0gMDsKLSAgICAgIHZhciBjb3JyTnVtU2FtcGxlcyA9IHRoaXMuc2FtcGxlUmF0ZV8gKiA1LjA7Ci0gICAgICBpZiAocG93ZXJTYW1wbGVzLmxlbmd0aCA+IGNvcnJOdW1TYW1wbGVzKQotICAgICAgICBtaW5TaGlmdCA9IHBvd2VyU2FtcGxlcy5sZW5ndGggLSBjb3JyTnVtU2FtcGxlczsKLQotICAgICAgdmFyIGNvcnIgPSBbXTsKLSAgICAgIGZvciAodmFyIHNoaWZ0ID0gbWluU2hpZnQ7IHNoaWZ0IDw9IG1heFNoaWZ0OyBzaGlmdCsrKSB7Ci0gICAgICAgIHZhciBjb3JyU3VtID0gMDsKLSAgICAgICAgdmFyIHBvd2VyQXZnID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzeW5jU2FtcGxlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIGNvcnJTdW0gKz0gKHBvd2VyU2FtcGxlc1tpICsgc2hpZnRdLnZhbHVlICogc3luY1NhbXBsZXNbaV0pOwotICAgICAgICAgIHBvd2VyQXZnICs9IHBvd2VyU2FtcGxlc1tpICsgc2hpZnRdLnZhbHVlOwotICAgICAgICB9Ci0gICAgICAgIHBvd2VyQXZnID0gcG93ZXJBdmcgLyBzeW5jU2FtcGxlcy5sZW5ndGg7Ci0gICAgICAgIGNvcnIucHVzaChjb3JyU3VtIC8gcG93ZXJBdmcpOwotICAgICAgfQotCi0gICAgICAvLyBGaW5kIHRoZSBzeW5jIHN0YXJ0IHRpbWUgKHBlYWsgb2YgdGhlIGNyb3NzLWNvcnJlbGF0aW9uKS4KLSAgICAgIHZhciBjb3JyUGVha0lkeCA9IDA7Ci0gICAgICB2YXIgY29yclBlYWsgPSAwOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3dlclNhbXBsZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKGNvcnJbaV0gPiBjb3JyUGVhaykgewotICAgICAgICAgIGNvcnJQZWFrID0gY29ycltpXTsKLSAgICAgICAgICBjb3JyUGVha0lkeCA9IGk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgLy8gU2hpZnQgdGhlIHRpbWUgb2YgdGhlIHBvd2VyIHNhbXBsZXMgYnkgdGhlIHJlY292ZXJlZCBzeW5jIHN0YXJ0IHRpbWUuCi0gICAgICB2YXIgY29yclBlYWtUcyA9ICgobWluU2hpZnQgKyBjb3JyUGVha0lkeCkgLyB0aGlzLnNhbXBsZVJhdGVfKTsKLSAgICAgIGNvcnJQZWFrVHMgKj0gMTAwMDsgLy8gc2VjIC0+IG1zZWMKLSAgICAgIHZhciBzeW5jU3RhcnRUcyA9IGZpcnN0U3luY0V2ZW50VHMgLSB0aGlzLm1vZGVsXy5ib3VuZHMubWluOwotICAgICAgdmFyIHNoaWZ0VHMgPSBzeW5jU3RhcnRUcyAtIGNvcnJQZWFrVHM7Ci0KLSAgICAgIHJldHVybiBzaGlmdFRzOwotICAgIH0KLSAgfTsKLQotICB0ci5pbXBvcnRlci5JbXBvcnRlci5yZWdpc3RlcihCYXR0b3JJbXBvcnRlcik7Ci0KLSAgcmV0dXJuIHsKLSAgICBCYXR0b3JJbXBvcnRlcjogQmF0dG9ySW1wb3J0ZXIsCi0gICAgX0JhdHRvckltcG9ydGVyVGVzdEV4cG9ydHM6IFRlc3RFeHBvcnRzCi0gIH07Ci19KTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9iYXR0b3JfaW1wb3J0ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA5Y2QzOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9iYXR0b3JfaW1wb3J0ZXJfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotCi0gIHZhciBCQVRUT1JfTElORVMgPSBbCi0gICAgJyMgQmF0dE9yJywKLSAgICAnIyB2b2x0YWdlIHJhbmdlIFswLjAwMDAwMCwgNjE0NC4wMDAwMDBdIG1WJywKLSAgICAnIyBjdXJyZW50IHJhbmdlIFswLjAwMDAwMCwgMjI3NS41NTU1NTZdIG1BJywKLSAgICAnIyBzYW1wbGVfcmF0ZT0yMDAwSHosIGdhaW49NS4wMDAwMDB4JywKLSAgICAnIyBmaWxwb3RfcG9zPTQsIGFtcHBvdF9wb3M9MjU2LCB0aW1lcl9vdmY9NDk5LCB0aW1lcl9kaXY9NCBvdnNfYml0cz0xJywKLSAgICAnMC4wMDAwMDAgMC4wMDAwMDAgNDAwMC4wMDAwMDAnLAotICAgICcwLjUwMDAwMCAwLjAwMDAwMCA0MDAwLjAwMDAwMCcsCi0gICAgJzEuMDAwMDAwIDAuMDAwMDAwIDQwMDAuMDAwMDAwJywKLSAgICAnMS41MDAwMDAgMC4wMDAwMDAgNDAwMC4wMDAwMDAnLAotICAgICcyLjAwMDAwMCAxLjAwMDAwMCA0MDAwLjAwMDAwMCcKLSAgXTsKLQotICB2YXIgU1lTVFJBQ0VfTElORVMgPSBbCi0gICAgJyMgdHJhY2VyOiBub3AnLAotICAgICcjJywKLSAgICAnIyBlbnRyaWVzLWluLWJ1ZmZlci9lbnRyaWVzLXdyaXR0ZW46IDg4ODE5LzEzNDIxMCAgICNQOjEnLAotICAgICcjJywKLSAgICAnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8tLS0tLT0+IGlycXMtb2ZmJywKLSAgICAnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZCcsCi0gICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEnLAotICAgICcjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aCcsCi0gICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHx8IC8gICAgIGRlbGF5JywKLSAgICAnIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICB8fHx8ICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04nLAotICAgICcjICAgICAgICAgICAgICB8IHwgICAgICAgfCAgIHx8fHwgICAgICAgfCAgICAgICAgIHwnLAotICAgICdzaC04NTUwICBbMDAxXSAuLi4xIDAuMDAwMDAwOiB0cmFjaW5nX21hcmtfd3JpdGU6ICcgKwotICAgICd0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBuYW1lPWJhdHRvciByZWd1bGF0b3I9dGVzdF9yZWd1bGF0b3InLAotICAgICc8ODUyMD4tODUyMCAgWzAwMV0gLi4uMSAwLjAwMDAwMDogcmVndWxhdG9yX2VuYWJsZTogbmFtZT10ZXN0X3JlZ3VsYXRvcicsCi0gICAgJzw4NTIwPi04NTIwICBbMDAxXSAuLi4xIDAuMDAwMTAwOiByZWd1bGF0b3JfZGlzYWJsZTogbmFtZT10ZXN0X3JlZ3VsYXRvcicsCi0gICAgJ3NoLTg1NTAgIFswMDFdIC4uLjEgICAgIDAuMDAxMDAwOiB0cmFjaW5nX21hcmtfd3JpdGU6ICcgKwotICAgICd0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBuYW1lPWJhdHRvciByZWd1bGF0b3I9dGVzdF9yZWd1bGF0b3InCi0gIF07Ci0KLSAgdGVzdCgnY2FuSW1wb3J0JywgZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodHIuZS5pbXBvcnRlci5iYXR0b3IuQmF0dG9ySW1wb3J0ZXIuY2FuSW1wb3J0KCdzdHJpbmcnKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodHIuZS5pbXBvcnRlci5iYXR0b3IuQmF0dG9ySW1wb3J0ZXIuY2FuSW1wb3J0KFtdKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0ci5lLmltcG9ydGVyLmJhdHRvci5CYXR0b3JJbXBvcnRlci5jYW5JbXBvcnQoCi0gICAgICAgIEJBVFRPUl9MSU5FUy5qb2luKCdcbicpKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydFBvd2VyU2FtcGxlc0FuZFRyYWNlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoU1lTVFJBQ0VfTElORVMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtCQVRUT1JfTElORVMuam9pbignXG4nKV0pOwotICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QWxsQ291bnRlcnMoKS5sZW5ndGgsIDIpOwotCi0gICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRpbWUgc2hpZnRlZCBjb3JyZWN0bHkKLSAgICBtLmdldEFsbENvdW50ZXJzKCkuZm9yRWFjaChmdW5jdGlvbihjb3VudGVyKSB7Ci0gICAgICB2YXIgc2VyaWVzID0gY291bnRlci5nZXRTZXJpZXMoMCk7Ci0gICAgICBpZiAoY291bnRlci5pZCA9PSAnbnVsbC52cmVnIHRlc3RfcmVndWxhdG9yIGVuYWJsZWQnKQotICAgICAgICBhc3NlcnQuZXF1YWwoc2VyaWVzLmdldFRpbWVzdGFtcCgwKSwgMi4wKTsKLSAgICAgIGVsc2UgaWYgKGNvdW50ZXIuaWQgPT0gJ251bGwuUG93ZXInKQotICAgICAgICBhc3NlcnQuZXF1YWwoc2VyaWVzLmdldFRpbWVzdGFtcCgwKSwgMC4wKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0TWlzc2luZ0xpbnV4VHJhY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChCQVRUT1JfTElORVMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydE5vdEVub3VnaFNhbXBsZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2hvcnRMaW5lcyA9IEJBVFRPUl9MSU5FUy5zbGljZSgwLCA1KTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChTWVNUUkFDRV9MSU5FUy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW3Nob3J0TGluZXMuam9pbignXG4nKV0pOwotICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2d6aXBfaW1wb3J0ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZ3ppcF9pbXBvcnRlcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2NDlkMmMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZ3ppcF9pbXBvcnRlcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvZ3ppcF9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgZmluZFNsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMuZmluZFNsaWNlTmFtZWQ7Ci0gIHZhciBvcmlnaW5hbF9kYXRhID0KLSAgICAgICdbeyJuYW1lIjoiYSIsImFyZ3MiOnt9LCJwaWQiOjUyLCJ0cyI6NTIwLCJjYXQiOiJmb28iLCJ0aWQiOjUzLCcgKwotICAgICAgJyJwaCI6IkIifSx7Im5hbWUiOiJhIiwiYXJncyI6e30sInBpZCI6NTIsInRzIjo1MjAsImNhdCI6ImZvbyIsJyArCi0gICAgICAnInRpZCI6NTMsInBoIjoiRSJ9XVxuJzsKLSAgdmFyIGd6aXBfZGF0YV9iYXNlNjQgPQotICAgICAgJ0g0c0lDSHI0SFZJQUEzUnlZV05sQUl1dVZzcEx6RTFWc2xKS1ZOSlJTaXhLTDFheXFxN1ZVU3JJVEZHeScgKwotICAgICAgJ01qWFNVU29wQnRFR09rckppU1ZBVlduNStVQjFKV0JaWTZDeURLQ1lrMUt0RGhXTWNWV3FqZVVDQUxhaycgKwotICAgICAgJ0VIK1FBQUFBJzsKLQotICB0ZXN0KCdmYWlsSW1wb3J0RW1wdHknLCBmdW5jdGlvbigpIHsKLSAgICBhc3NlcnQuaXNGYWxzZSh0ci5lLmltcG9ydGVyLkd6aXBJbXBvcnRlci5jYW5JbXBvcnQoW10pKTsKLSAgICBhc3NlcnQuaXNGYWxzZSh0ci5lLmltcG9ydGVyLkd6aXBJbXBvcnRlci5jYW5JbXBvcnQoJycpKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5mbGF0ZVN0cmluZycsIGZ1bmN0aW9uKCkgewotICAgIC8vIFRlc3QgaW5mbGF0aW5nIHRoZSBkYXRhIGZyb20gYSBzdHJpbmcuCi0gICAgdmFyIGd6aXBfZGF0YSA9IGF0b2IoZ3ppcF9kYXRhX2Jhc2U2NCk7Ci0gICAgdmFyIGltcG9ydGVyID0gbmV3IHRyLmUuaW1wb3J0ZXIuR3ppcEltcG9ydGVyKG51bGwsIGd6aXBfZGF0YSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0ci5lLmltcG9ydGVyLkd6aXBJbXBvcnRlci5jYW5JbXBvcnQoZ3ppcF9kYXRhKSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGltcG9ydGVyLmV4dHJhY3RTdWJ0cmFjZXMoKVswXSwgb3JpZ2luYWxfZGF0YSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2luZmxhdGVBcnJheUJ1ZmZlcicsIGZ1bmN0aW9uKCkgewotICAgIC8vIFRlc3QgaW5mbGF0aW5nIHRoZSBkYXRhIGZyb20gYW4gQXJyYXlCdWZmZXIuCi0gICAgdmFyIGd6aXBfZGF0YSA9IGF0b2IoZ3ppcF9kYXRhX2Jhc2U2NCk7Ci0gICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihnemlwX2RhdGEubGVuZ3RoKTsKLSAgICB2YXIgdmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBnemlwX2RhdGEubGVuZ3RoOyBpKyspCi0gICAgICB2aWV3W2ldID0gZ3ppcF9kYXRhLmNoYXJDb2RlQXQoaSk7Ci0gICAgdmFyIGltcG9ydGVyID0gbmV3IHRyLmUuaW1wb3J0ZXIuR3ppcEltcG9ydGVyKG51bGwsIGJ1ZmZlcik7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0ci5lLmltcG9ydGVyLkd6aXBJbXBvcnRlci5jYW5JbXBvcnQoYnVmZmVyKSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGltcG9ydGVyLmV4dHJhY3RTdWJ0cmFjZXMoKVswXSwgb3JpZ2luYWxfZGF0YSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBnemlwX2RhdGEgPSBhdG9iKGd6aXBfZGF0YV9iYXNlNjQpOwotICAgIGFzc2VydC5pc1RydWUodHIuZS5pbXBvcnRlci5HemlwSW1wb3J0ZXIuY2FuSW1wb3J0KGd6aXBfZGF0YSkpOwotCi0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKGd6aXBfZGF0YSk7Ci0gICAgdmFyIHRocmVhZHMgPSBtb2RlbC5nZXRBbGxUaHJlYWRzKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRocmVhZHMubGVuZ3RoLCAxKTsKLQotICAgIHZhciBzbGljZSA9IGZpbmRTbGljZU5hbWVkKHRocmVhZHNbMF0uc2xpY2VHcm91cCwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0WE1MSHR0cFJlcXVlc3QnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgdmFyIHVybCA9ICcvdGVzdF9kYXRhL3NpbXBsZV90cmFjZV9nei5neic7Ci0gICAgcmVxLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOwotICAgIHJlcS5vdmVycmlkZU1pbWVUeXBlKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7Ci0gICAgcmVxLnNlbmQobnVsbCk7Ci0gICAgdmFyIGd6aXBfZGF0YSA9IHJlcS5yZXNwb25zZVRleHQ7Ci0gICAgYXNzZXJ0LmlzVHJ1ZSh0ci5lLmltcG9ydGVyLkd6aXBJbXBvcnRlci5jYW5JbXBvcnQoZ3ppcF9kYXRhKSk7Ci0KLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoZ3ppcF9kYXRhKTsKLSAgICB2YXIgdGhyZWFkcyA9IG1vZGVsLmdldEFsbFRocmVhZHMoKTsKLSAgICBhc3NlcnQuZXF1YWwodGhyZWFkcy5sZW5ndGgsIDIpOwotCi0gICAgdmFyIHNsaWNlID0gZmluZFNsaWNlTmFtZWQodGhyZWFkc1swXS5zbGljZUdyb3VwLCAnQicpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ1BFUkYnKTsKLQotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2pzemlwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9qc3ppcC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjkzZjI3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2pzemlwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08c2NyaXB0IHNyYz0iL2pzemlwLm1pbi5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2FuZHJvaWRfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2FuZHJvaWRfcGFyc2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3ZDNlNTQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9hbmRyb2lkX3BhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlcl9zZXJpZXMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQYXJzZXMgdHJhY2VfbWFya2VyIGV2ZW50cyB0aGF0IHdlcmUgaW5zZXJ0ZWQgaW4gdGhlIHRyYWNlIGJ5Ci0gKiB1c2VybGFuZC4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsIGZ1bmN0aW9uKCkgewotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IHRyYWNlIG1hcmsgZXZlbnRzIHRoYXQgd2VyZSBpbnNlcnRlZCBpbiB0aGUgdHJhY2UgYnkgdXNlcmxhbmQuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gQW5kcm9pZFBhcnNlcihpbXBvcnRlcikgewotICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKLQotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd0cmFjaW5nX21hcmtfd3JpdGU6YW5kcm9pZCcsCi0gICAgICAgIEFuZHJvaWRQYXJzZXIucHJvdG90eXBlLnRyYWNlTWFya1dyaXRlQW5kcm9pZEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCcwOmFuZHJvaWQnLAotICAgICAgICBBbmRyb2lkUGFyc2VyLnByb3RvdHlwZS50cmFjZU1hcmtXcml0ZUFuZHJvaWRFdmVudC5iaW5kKHRoaXMpKTsKLQotICAgIHRoaXMubW9kZWxfID0gaW1wb3J0ZXIubW9kZWxfOwotICAgIHRoaXMucHBpZHNfID0ge307Ci0gIH0KLQotICBmdW5jdGlvbiBwYXJzZUFyZ3MoYXJnc1N0cmluZykgewotICAgIHZhciBhcmdzID0ge307Ci0gICAgaWYgKGFyZ3NTdHJpbmcpIHsKLSAgICAgIHZhciBhcmdzQXJyYXkgPSBhcmdzU3RyaW5nLnNwbGl0KCc7Jyk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3NBcnJheS5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgcGFydHMgPSBhcmdzQXJyYXlbaV0uc3BsaXQoJz0nKTsKLSAgICAgICAgaWYgKHBhcnRzWzBdKQotICAgICAgICAgIGFyZ3NbcGFydHMuc2hpZnQoKV0gPSBwYXJ0cy5qb2luKCc9Jyk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiBhcmdzOwotICB9Ci0KLSAgQW5kcm9pZFBhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAotCi0gICAgb3BlbkFzeW5jU2xpY2U6IGZ1bmN0aW9uKHRocmVhZCwgY2F0ZWdvcnksIG5hbWUsIGNvb2tpZSwgdHMsIGFyZ3MpIHsKLSAgICAgIHZhciBhc3luY1NsaWNlQ29uc3RydWN0b3IgPQotICAgICAgICAgdHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcigKLSAgICAgICAgICAgIGNhdGVnb3J5LCBuYW1lKTsKLSAgICAgIHZhciBzbGljZSA9IG5ldyBhc3luY1NsaWNlQ29uc3RydWN0b3IoCi0gICAgICAgICAgY2F0ZWdvcnksIG5hbWUsCi0gICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcobmFtZSksIHRzLCBhcmdzKTsKLSAgICAgIHZhciBrZXkgPSBjYXRlZ29yeSArICc6JyArIG5hbWUgKyAnOicgKyBjb29raWU7Ci0gICAgICBzbGljZS5pZCA9IGNvb2tpZTsKLSAgICAgIHNsaWNlLnN0YXJ0VGhyZWFkID0gdGhyZWFkOwotCi0gICAgICBpZiAoIXRoaXMub3BlbkFzeW5jU2xpY2VzKSB7Ci0gICAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2VzID0geyB9OwotICAgICAgfQotICAgICAgdGhpcy5vcGVuQXN5bmNTbGljZXNba2V5XSA9IHNsaWNlOwotICAgIH0sCi0KLSAgICBjbG9zZUFzeW5jU2xpY2U6IGZ1bmN0aW9uKHRocmVhZCwgY2F0ZWdvcnksIG5hbWUsIGNvb2tpZSwgdHMsIGFyZ3MpIHsKLSAgICAgIGlmICghdGhpcy5vcGVuQXN5bmNTbGljZXMpIHsKLSAgICAgICAgLy8gTm8gYXN5bmMgc2xpY2VzIGhhdmUgYmVlbiBzdGFydGVkLgotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHZhciBrZXkgPSBjYXRlZ29yeSArICc6JyArIG5hbWUgKyAnOicgKyBjb29raWU7Ci0gICAgICB2YXIgc2xpY2UgPSB0aGlzLm9wZW5Bc3luY1NsaWNlc1trZXldOwotICAgICAgaWYgKCFzbGljZSkgewotICAgICAgICAvLyBObyBhc3luYyBzbGljZXMgdy8gdGhpcyBrZXkgaGF2ZSBiZWVuIHN0YXJ0ZWQuCi0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgZm9yICh2YXIgYXJnIGluIGFyZ3MpIHsKLSAgICAgICAgaWYgKHNsaWNlLmFyZ3NbYXJnXSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAotICAgICAgICAgICAgbWVzc2FnZTogJ0JvdGggdGhlIFMgYW5kIEYgZXZlbnRzIG9mICcgKyBzbGljZS50aXRsZSArCi0gICAgICAgICAgICAgICAgJyBwcm92aWRlZCB2YWx1ZXMgZm9yIGFyZ3VtZW50ICcgKyBhcmcgKyAnLicgKwotICAgICAgICAgICAgICAgICcgVGhlIHZhbHVlIG9mIHRoZSBGIGV2ZW50IHdpbGwgYmUgdXNlZC4nCi0gICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgc2xpY2UuYXJnc1thcmddID0gYXJnc1thcmddOwotICAgICAgfQotCi0gICAgICBzbGljZS5lbmRUaHJlYWQgPSB0aHJlYWQ7Ci0gICAgICBzbGljZS5kdXJhdGlvbiA9IHRzIC0gc2xpY2Uuc3RhcnQ7Ci0gICAgICBzbGljZS5zdGFydFRocmVhZC5hc3luY1NsaWNlR3JvdXAucHVzaChzbGljZSk7Ci0gICAgICBzbGljZS5zdWJTbGljZXMgPSBbbmV3IHRyLm1vZGVsLkFzeW5jU2xpY2Uoc2xpY2UuY2F0ZWdvcnksCi0gICAgICAgICAgc2xpY2UudGl0bGUsIHNsaWNlLmNvbG9ySWQsIHNsaWNlLnN0YXJ0LCBzbGljZS5hcmdzLCBzbGljZS5kdXJhdGlvbildOwotICAgICAgZGVsZXRlIHRoaXMub3BlbkFzeW5jU2xpY2VzW2tleV07Ci0gICAgfSwKLQotICAgIHRyYWNlTWFya1dyaXRlQW5kcm9pZEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudERhdGEgPSBldmVudEJhc2UuZGV0YWlscy5zcGxpdCgnfCcpOwotICAgICAgc3dpdGNoIChldmVudERhdGFbMF0pIHsKLSAgICAgICAgY2FzZSAnQic6Ci0gICAgICAgICAgdmFyIHBwaWQgPSBwYXJzZUludChldmVudERhdGFbMV0pOwotICAgICAgICAgIHZhciB0aXRsZSA9IGV2ZW50RGF0YVsyXTsKLSAgICAgICAgICB2YXIgYXJncyA9IHBhcnNlQXJncyhldmVudERhdGFbM10pOwotICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGV2ZW50RGF0YVs0XTsKLSAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIGNhdGVnb3J5ID0gJ2FuZHJvaWQnOwotCi0gICAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwcGlkKQotICAgICAgICAgICAgICAuZ2V0T3JDcmVhdGVUaHJlYWQocGlkKTsKLSAgICAgICAgICB0aHJlYWQubmFtZSA9IGV2ZW50QmFzZS50aHJlYWROYW1lOwotICAgICAgICAgIGlmICghdGhyZWFkLnNsaWNlR3JvdXAuaXNUaW1lc3RhbXBWYWxpZEZvckJlZ2luT3JFbmQodHMpKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgbWVzc2FnZTogJ1RpbWVzdGFtcHMgYXJlIG1vdmluZyBiYWNrd2FyZC4nCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB0aGlzLnBwaWRzX1twaWRdID0gcHBpZDsKLSAgICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5iZWdpblNsaWNlKGNhdGVnb3J5LCB0aXRsZSwgdHMsIGFyZ3MpOwotCi0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSAnRSc6Ci0gICAgICAgICAgdmFyIHBwaWQgPSB0aGlzLnBwaWRzX1twaWRdOwotICAgICAgICAgIGlmIChwcGlkID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIC8vIFNpbGVudGx5IGlnbm9yZSB1bm1hdGNoZWQgRSBldmVudHMuCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHBwaWQpCi0gICAgICAgICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZChwaWQpOwotICAgICAgICAgIGlmICghdGhyZWFkLnNsaWNlR3JvdXAub3BlblNsaWNlQ291bnQpIHsKLSAgICAgICAgICAgIC8vIFNpbGVudGx5IGlnbm9yZSB1bm1hdGNoZWQgRSBldmVudHMuCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB2YXIgc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5lbmRTbGljZSh0cyk7Ci0KLSAgICAgICAgICB2YXIgYXJncyA9IHBhcnNlQXJncyhldmVudERhdGFbM10pOwotICAgICAgICAgIGZvciAodmFyIGFyZyBpbiBhcmdzKSB7Ci0gICAgICAgICAgICBpZiAoc2xpY2UuYXJnc1thcmddICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQm90aCB0aGUgQiBhbmQgRSBldmVudHMgb2YgJyArIHNsaWNlLnRpdGxlICsKLSAgICAgICAgICAgICAgICAgICAgJyBwcm92aWRlZCB2YWx1ZXMgZm9yIGFyZ3VtZW50ICcgKyBhcmcgKyAnLicgKwotICAgICAgICAgICAgICAgICAgICAnIFRoZSB2YWx1ZSBvZiB0aGUgRSBldmVudCB3aWxsIGJlIHVzZWQuJwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNsaWNlLmFyZ3NbYXJnXSA9IGFyZ3NbYXJnXTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlICdDJzoKLSAgICAgICAgICB2YXIgcHBpZCA9IHBhcnNlSW50KGV2ZW50RGF0YVsxXSk7Ci0gICAgICAgICAgdmFyIG5hbWUgPSBldmVudERhdGFbMl07Ci0gICAgICAgICAgdmFyIHZhbHVlID0gcGFyc2VJbnQoZXZlbnREYXRhWzNdKTsKLSAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBldmVudERhdGFbNF07Ci0gICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICBjYXRlZ29yeSA9ICdhbmRyb2lkJzsKLQotICAgICAgICAgIHZhciBjdHIgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocHBpZCkKLSAgICAgICAgICAgICAgLmdldE9yQ3JlYXRlQ291bnRlcihjYXRlZ29yeSwgbmFtZSk7Ci0gICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY291bnRlcidzIHNlcmllcyBmaWVsZHMgaWYgbmVlZGVkLgotICAgICAgICAgIGlmIChjdHIubnVtU2VyaWVzID09PSAwKSB7Ci0gICAgICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHZhbHVlLAotICAgICAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKAotICAgICAgICAgICAgICAgICAgICBjdHIubmFtZSArICcuJyArICd2YWx1ZScpKSk7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgY3RyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIHZhbHVlKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgJ1MnOgotICAgICAgICAgIHZhciBwcGlkID0gcGFyc2VJbnQoZXZlbnREYXRhWzFdKTsKLSAgICAgICAgICB2YXIgbmFtZSA9IGV2ZW50RGF0YVsyXTsKLSAgICAgICAgICB2YXIgY29va2llID0gcGFyc2VJbnQoZXZlbnREYXRhWzNdKTsKLSAgICAgICAgICB2YXIgYXJncyA9IHBhcnNlQXJncyhldmVudERhdGFbNF0pOwotICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGV2ZW50RGF0YVs1XTsKLSAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIGNhdGVnb3J5ID0gJ2FuZHJvaWQnOwotCi0KLSAgICAgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHBwaWQpCi0gICAgICAgICAgICAuZ2V0T3JDcmVhdGVUaHJlYWQocGlkKTsKLSAgICAgICAgICB0aHJlYWQubmFtZSA9IGV2ZW50QmFzZS50aHJlYWROYW1lOwotCi0gICAgICAgICAgdGhpcy5wcGlkc19bcGlkXSA9IHBwaWQ7Ci0gICAgICAgICAgdGhpcy5vcGVuQXN5bmNTbGljZSh0aHJlYWQsIGNhdGVnb3J5LCBuYW1lLCBjb29raWUsIHRzLCBhcmdzKTsKLQotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgJ0YnOgotICAgICAgICAgIC8vIE5vdGU6IEFuIGFzeW5jIHNsaWNlIG1heSBlbmQgb24gYSBkaWZmZXJlbnQgdGhyZWFkIGZyb20gdGhlIG9uZQotICAgICAgICAgIC8vIHRoYXQgc3RhcnRlZCBpdCBzbyB0aGlzIHRocmVhZCBtYXkgbm90IGhhdmUgYmVlbiBzZWVuIHlldC4KLSAgICAgICAgICB2YXIgcHBpZCA9IHBhcnNlSW50KGV2ZW50RGF0YVsxXSk7Ci0KLSAgICAgICAgICB2YXIgbmFtZSA9IGV2ZW50RGF0YVsyXTsKLSAgICAgICAgICB2YXIgY29va2llID0gcGFyc2VJbnQoZXZlbnREYXRhWzNdKTsKLSAgICAgICAgICB2YXIgYXJncyA9IHBhcnNlQXJncyhldmVudERhdGFbNF0pOwotICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGV2ZW50RGF0YVs1XTsKLSAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIGNhdGVnb3J5ID0gJ2FuZHJvaWQnOwotCi0gICAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwcGlkKQotICAgICAgICAgICAgLmdldE9yQ3JlYXRlVGhyZWFkKHBpZCk7Ci0gICAgICAgICAgdGhyZWFkLm5hbWUgPSBldmVudEJhc2UudGhyZWFkTmFtZTsKLQotICAgICAgICAgIHRoaXMucHBpZHNfW3BpZF0gPSBwcGlkOwotICAgICAgICAgIHRoaXMuY2xvc2VBc3luY1NsaWNlKHRocmVhZCwgY2F0ZWdvcnksIG5hbWUsIGNvb2tpZSwgdHMsIGFyZ3MpOwotCi0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgfTsKLQotICBQYXJzZXIucmVnaXN0ZXIoQW5kcm9pZFBhcnNlcik7Ci0KLSAgcmV0dXJuIHsKLSAgICBBbmRyb2lkUGFyc2VyOiBBbmRyb2lkUGFyc2VyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9idXNfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2J1c19wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUwMzllMi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2J1c19wYXJzZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlcl9zZXJpZXMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQYXJzZXMgdHJhY2VfbWFya2VyIGV2ZW50cyB0aGF0IHdlcmUgaW5zZXJ0ZWQgaW4gdGhlIHRyYWNlIGJ5Ci0gKiB1c2VybGFuZC4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsIGZ1bmN0aW9uKCkgewotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IHRyYWNlIG1hcmsgZXZlbnRzIHRoYXQgd2VyZSBpbnNlcnRlZCBpbiB0aGUgdHJhY2UgYnkgdXNlcmxhbmQuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gQnVzUGFyc2VyKGltcG9ydGVyKSB7Ci0gICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOwotCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21lbW9yeV9idXNfdXNhZ2UnLAotICAgICAgICBCdXNQYXJzZXIucHJvdG90eXBlLnRyYWNlTWFya1dyaXRlQnVzRXZlbnQuYmluZCh0aGlzKSk7Ci0KLSAgICB0aGlzLm1vZGVsXyA9IGltcG9ydGVyLm1vZGVsXzsKLSAgICB0aGlzLnBwaWRzXyA9IHt9OwotICB9Ci0KLSAgQnVzUGFyc2VyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCi0KLSAgICB0cmFjZU1hcmtXcml0ZUJ1c0V2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UsIHRocmVhZE5hbWUpIHsKLSAgICAgIHZhciByZSA9IG5ldyBSZWdFeHAoJ2J1cz0oXFxTKykgcndfYnl0ZXM9KFxcZCspIHJfYnl0ZXM9KFxcZCspICcgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3X2J5dGVzPShcXGQrKSBjeWNsZXM9KFxcZCspIG5zPShcXGQrKScpOwotICAgICAgdmFyIGV2ZW50ID0gcmUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0KLSAgICAgIHZhciBuYW1lID0gZXZlbnRbMV07Ci0gICAgICB2YXIgcndfYnl0ZXMgPSBwYXJzZUludChldmVudFsyXSk7Ci0gICAgICB2YXIgcl9ieXRlcyA9IHBhcnNlSW50KGV2ZW50WzNdKTsKLSAgICAgIHZhciB3X2J5dGVzID0gcGFyc2VJbnQoZXZlbnRbNF0pOwotICAgICAgdmFyIGN5Y2xlcyA9IHBhcnNlSW50KGV2ZW50WzVdKTsKLSAgICAgIHZhciBucyA9IHBhcnNlSW50KGV2ZW50WzZdKTsKLQotICAgICAgLy8gQlcgaW4gTUIvcwotICAgICAgdmFyIHJfYncgPSByX2J5dGVzICogMTAwMDAwMDAwMCAvIG5zOwotICAgICAgcl9idyAvPSAxMDI0ICogMTAyNDsKLSAgICAgIHZhciB3X2J3ID0gd19ieXRlcyAqIDEwMDAwMDAwMDAgLyBuczsKLSAgICAgIHdfYncgLz0gMTAyNCAqIDEwMjQ7Ci0KLSAgICAgIHZhciBjdHIgPSB0aGlzLm1vZGVsXy5rZXJuZWwKLSAgICAgICAgICAgICAgLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCAnYnVzICcgKyBuYW1lICsgJyByZWFkJyk7Ci0gICAgICBpZiAoY3RyLm51bVNlcmllcyA9PT0gMCkgewotICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZScsCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKLSAgICAgICAgICAgICAgICBjdHIubmFtZSArICcuJyArICd2YWx1ZScpKSk7Ci0gICAgICB9Ci0gICAgICBjdHIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7Ci0gICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCByX2J3KTsKLSAgICAgIH0pOwotCi0gICAgICBjdHIgPSB0aGlzLm1vZGVsXy5rZXJuZWwKLSAgICAgICAgICAgICAgLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCAnYnVzICcgKyBuYW1lICsgJyB3cml0ZScpOwotICAgICAgaWYgKGN0ci5udW1TZXJpZXMgPT09IDApIHsKLSAgICAgICAgY3RyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygndmFsdWUnLAotICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCi0gICAgICAgICAgICAgICAgY3RyLm5hbWUgKyAnLicgKyAndmFsdWUnKSkpOwotICAgICAgfQotICAgICAgY3RyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cywgcl9idyk7Ci0gICAgICB9KTsKLQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9OwotCi0gIFBhcnNlci5yZWdpc3RlcihCdXNQYXJzZXIpOwotCi0gIHJldHVybiB7Ci0gICAgQnVzUGFyc2VyOiBCdXNQYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Nsb2NrX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9jbG9ja19wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhmYTE0Yy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Nsb2NrX3BhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFBhcnNlcyB0cmFjZV9tYXJrZXIgZXZlbnRzIHRoYXQgd2VyZSBpbnNlcnRlZCBpbiB0aGUgdHJhY2UgYnkKLSAqIHVzZXJsYW5kLgotICovCi10ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7Ci0KLSAgLyoqCi0gICAqIFBhcnNlcyBsaW51eCB0cmFjZSBtYXJrIGV2ZW50cyB0aGF0IHdlcmUgaW5zZXJ0ZWQgaW4gdGhlIHRyYWNlIGJ5IHVzZXJsYW5kLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENsb2NrUGFyc2VyKGltcG9ydGVyKSB7Ci0gICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOwotCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2Nsb2NrX3NldF9yYXRlJywKLSAgICAgICAgQ2xvY2tQYXJzZXIucHJvdG90eXBlLnRyYWNlTWFya1dyaXRlQ2xvY2tFdmVudC5iaW5kKHRoaXMpKTsKLQotICAgIHRoaXMubW9kZWxfID0gaW1wb3J0ZXIubW9kZWxfOwotICAgIHRoaXMucHBpZHNfID0ge307Ci0gIH0KLQotICBDbG9ja1BhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAotCi0gICAgdHJhY2VNYXJrV3JpdGVDbG9ja0V2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSwgdGhyZWFkTmFtZSkgewotICAgICAgdmFyIGV2ZW50ID0gLyhcUyspIHN0YXRlPShcZCspIGNwdV9pZD0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0KLQotICAgICAgdmFyIG5hbWUgPSBldmVudFsxXTsKLSAgICAgIHZhciByYXRlID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotCi0gICAgICB2YXIgY3RyID0gdGhpcy5tb2RlbF8ua2VybmVsCi0gICAgICAgICAgICAgIC5nZXRPckNyZWF0ZUNvdW50ZXIobnVsbCwgbmFtZSk7Ci0gICAgICAvLyBJbml0aWFsaXplIHRoZSBjb3VudGVyJ3Mgc2VyaWVzIGZpZWxkcyBpZiBuZWVkZWQuCi0gICAgICBpZiAoY3RyLm51bVNlcmllcyA9PT0gMCkgewotICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZScsCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKLSAgICAgICAgICAgICAgICBjdHIubmFtZSArICcuJyArICd2YWx1ZScpKSk7Ci0gICAgICB9Ci0gICAgICBjdHIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7Ci0gICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCByYXRlKTsKLSAgICAgIH0pOwotCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgUGFyc2VyLnJlZ2lzdGVyKENsb2NrUGFyc2VyKTsKLQotICByZXR1cm4gewotICAgIENsb2NrUGFyc2VyOiBDbG9ja1BhcnNlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQyMzVlNS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2NwdWZyZXFfcGFyc2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGNwdWZyZXEgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IGNwdWZyZXEgdHJhY2UgZXZlbnRzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENwdWZyZXFQYXJzZXIoaW1wb3J0ZXIpIHsKLSAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7Ci0KLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1ZnJlcV9pbnRlcmFjdGl2ZV91cCcsCi0gICAgICAgIENwdWZyZXFQYXJzZXIucHJvdG90eXBlLmNwdWZyZXFVcERvd25FdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1ZnJlcV9pbnRlcmFjdGl2ZV9kb3duJywKLSAgICAgICAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVVwRG93bkV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX2FscmVhZHknLAotICAgICAgICBDcHVmcmVxUGFyc2VyLnByb3RvdHlwZS5jcHVmcmVxVGFyZ2V0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdWZyZXFfaW50ZXJhY3RpdmVfbm90eWV0JywKLSAgICAgICAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVRhcmdldEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX3NldHNwZWVkJywKLSAgICAgICAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVRhcmdldEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX3RhcmdldCcsCi0gICAgICAgIENwdWZyZXFQYXJzZXIucHJvdG90eXBlLmNwdWZyZXFUYXJnZXRFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1ZnJlcV9pbnRlcmFjdGl2ZV9ib29zdCcsCi0gICAgICAgIENwdWZyZXFQYXJzZXIucHJvdG90eXBlLmNwdWZyZXFCb29zdFVuYm9vc3RFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1ZnJlcV9pbnRlcmFjdGl2ZV91bmJvb3N0JywKLSAgICAgICAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcUJvb3N0VW5ib29zdEV2ZW50LmJpbmQodGhpcykpOwotICB9Ci0KLSAgZnVuY3Rpb24gc3BsaXREYXRhKGlucHV0KSB7Ci0gICAgLy8gVE9ETyhzbGVmZmxlcikgc3BsaXQgYnkgY3B1Ci0gICAgdmFyIGRhdGEgPSB7fTsKLSAgICB2YXIgYXJncyA9IGlucHV0LnNwbGl0KC9ccysvKTsKLSAgICB2YXIgbGVuID0gYXJncy5sZW5ndGg7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewotICAgICAgdmFyIGl0ZW0gPSBhcmdzW2ldLnNwbGl0KCc9Jyk7Ci0gICAgICBkYXRhW2l0ZW1bMF1dID0gcGFyc2VJbnQoaXRlbVsxXSk7Ci0gICAgfQotICAgIHJldHVybiBkYXRhOwotICB9Ci0KLSAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAotCi0gICAgY3B1ZnJlcVNsaWNlOiBmdW5jdGlvbih0cywgZXZlbnROYW1lLCBjcHUsIGFyZ3MpIHsKLSAgICAgIC8vIFRPRE8oc2xlZmZsZXIpIHNob3VsZCBiZSBwZXItY3B1Ci0gICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2NwdWZyZXEnKTsKLSAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gZXZlbnROYW1lOwotICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLlNsaWNlKCcnLCBrdGhyZWFkLm9wZW5TbGljZSwKLSAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksCi0gICAgICAgICAgdHMsIGFyZ3MsIDApOwotCi0gICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgfSwKLQotICAgIGNwdWZyZXFCb29zdFNsaWNlOiBmdW5jdGlvbih0cywgZXZlbnROYW1lLCBhcmdzKSB7Ci0gICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2NwdWZyZXFfYm9vc3QnKTsKLSAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gZXZlbnROYW1lOwotICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLlNsaWNlKCcnLCBrdGhyZWFkLm9wZW5TbGljZSwKLSAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksCi0gICAgICAgICAgdHMsIGFyZ3MsIDApOwotCi0gICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFBhcnNlcyBjcHVmcmVxIGV2ZW50cyBhbmQgc2V0cyB1cCBzdGF0ZSBpbiB0aGUgaW1wb3J0ZXIuCi0gICAgICovCi0gICAgY3B1ZnJlcVVwRG93bkV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZGF0YSA9IHNwbGl0RGF0YShldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICB0aGlzLmNwdWZyZXFTbGljZSh0cywgZXZlbnROYW1lLCBkYXRhLmNwdSwgZGF0YSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgY3B1ZnJlcVRhcmdldEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGRhdGEgPSBzcGxpdERhdGEoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgdGhpcy5jcHVmcmVxU2xpY2UodHMsIGV2ZW50TmFtZSwgZGF0YS5jcHUsIGRhdGEpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGNwdWZyZXFCb29zdFVuYm9vc3RFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UpIHsKLSAgICAgIHRoaXMuY3B1ZnJlcUJvb3N0U2xpY2UodHMsIGV2ZW50TmFtZSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0eXBlOiBldmVudEJhc2UuZGV0YWlscwotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9OwotCi0gIFBhcnNlci5yZWdpc3RlcihDcHVmcmVxUGFyc2VyKTsKLQotICByZXR1cm4gewotICAgIENwdWZyZXFQYXJzZXI6IENwdWZyZXFQYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZGlza19wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZGlza19wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYyMTk4My4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Rpc2tfcGFyc2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGZpbGVzeXN0ZW0gYW5kIGJsb2NrIGRldmljZSBldmVudHMgaW4gdGhlIExpbnV4IGV2ZW50Ci0gKiB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IGZpbGVzeXN0ZW0gYW5kIGJsb2NrIGRldmljZSB0cmFjZSBldmVudHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gRGlza1BhcnNlcihpbXBvcnRlcikgewotICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKLQotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3dyaXRlX2JlZ2luJywKLSAgICAgICAgRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1dyaXRlQmVnaW5FdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZjJmc193cml0ZV9lbmQnLAotICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5mMmZzV3JpdGVFbmRFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZjJmc19zeW5jX2ZpbGVfZW50ZXInLAotICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5mMmZzU3luY0ZpbGVFbnRlckV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3N5bmNfZmlsZV9leGl0JywKLSAgICAgICAgRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1N5bmNGaWxlRXhpdEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X3N5bmNfZmlsZV9lbnRlcicsCi0gICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmV4dDRTeW5jRmlsZUVudGVyRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4dDRfc3luY19maWxlX2V4aXQnLAotICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0U3luY0ZpbGVFeGl0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4dDRfZGFfd3JpdGVfYmVnaW4nLAotICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0V3JpdGVCZWdpbkV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X2RhX3dyaXRlX2VuZCcsCi0gICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmV4dDRXcml0ZUVuZEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdibG9ja19ycV9pc3N1ZScsCi0gICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmJsb2NrUnFJc3N1ZUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdibG9ja19ycV9jb21wbGV0ZScsCi0gICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmJsb2NrUnFDb21wbGV0ZUV2ZW50LmJpbmQodGhpcykpOwotICB9Ci0KLSAgRGlza1BhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAotCi0gICAgb3BlbkFzeW5jU2xpY2U6IGZ1bmN0aW9uKHRzLCBjYXRlZ29yeSwgdGhyZWFkTmFtZSwgcGlkLCBrZXksIG5hbWUpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKLSAgICAgICAgICBjYXRlZ29yeSArICc6JyArIHRocmVhZE5hbWUsIHBpZCk7Ci0gICAgICB2YXIgYXN5bmNTbGljZUNvbnN0cnVjdG9yID0KLSAgICAgICAgIHRyLm1vZGVsLkFzeW5jU2xpY2UuZ2V0Q29uc3RydWN0b3IoCi0gICAgICAgICAgICBjYXRlZ29yeSwgbmFtZSk7Ci0gICAgICB2YXIgc2xpY2UgPSBuZXcgYXN5bmNTbGljZUNvbnN0cnVjdG9yKAotICAgICAgICAgIGNhdGVnb3J5LCBuYW1lLAotICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUpLAotICAgICAgICAgIHRzKTsKLSAgICAgIHNsaWNlLnN0YXJ0VGhyZWFkID0ga3RocmVhZC50aHJlYWQ7Ci0KLSAgICAgIGlmICgha3RocmVhZC5vcGVuQXN5bmNTbGljZXMpIHsKLSAgICAgICAga3RocmVhZC5vcGVuQXN5bmNTbGljZXMgPSB7IH07Ci0gICAgICB9Ci0gICAgICBrdGhyZWFkLm9wZW5Bc3luY1NsaWNlc1trZXldID0gc2xpY2U7Ci0gICAgfSwKLQotICAgIGNsb3NlQXN5bmNTbGljZTogZnVuY3Rpb24odHMsIGNhdGVnb3J5LCB0aHJlYWROYW1lLCBwaWQsIGtleSwgYXJncykgewotICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKAotICAgICAgICAgIGNhdGVnb3J5ICsgJzonICsgdGhyZWFkTmFtZSwgcGlkKTsKLSAgICAgIGlmIChrdGhyZWFkLm9wZW5Bc3luY1NsaWNlcykgewotICAgICAgICB2YXIgc2xpY2UgPSBrdGhyZWFkLm9wZW5Bc3luY1NsaWNlc1trZXldOwotICAgICAgICBpZiAoc2xpY2UpIHsKLSAgICAgICAgICBzbGljZS5kdXJhdGlvbiA9IHRzIC0gc2xpY2Uuc3RhcnQ7Ci0gICAgICAgICAgc2xpY2UuYXJncyA9IGFyZ3M7Ci0gICAgICAgICAgc2xpY2UuZW5kVGhyZWFkID0ga3RocmVhZC50aHJlYWQ7Ci0gICAgICAgICAgc2xpY2Uuc3ViU2xpY2VzID0gWwotICAgICAgICAgICAgbmV3IHRyLm1vZGVsLkFzeW5jU2xpY2UoY2F0ZWdvcnksIHNsaWNlLnRpdGxlLAotICAgICAgICAgICAgICAgIHNsaWNlLmNvbG9ySWQsIHNsaWNlLnN0YXJ0LCBzbGljZS5hcmdzLCBzbGljZS5kdXJhdGlvbikKLSAgICAgICAgICBdOwotICAgICAgICAgIGt0aHJlYWQudGhyZWFkLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKLSAgICAgICAgICBkZWxldGUga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KLSAgICAgKi8KLSAgICBmMmZzV3JpdGVCZWdpbkV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvZGV2ID0gXCgoXGQrLFxkKylcKSwgaW5vID0gKFxkKyksIHBvcyA9IChcZCspLCBsZW4gPSAoXGQrKSwgZmxhZ3MgPSAoXGQrKS8uIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAgICAgZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07Ci0gICAgICB2YXIgaW5vZGUgPSBwYXJzZUludChldmVudFsyXSk7Ci0gICAgICB2YXIgcG9zID0gcGFyc2VJbnQoZXZlbnRbM10pOwotICAgICAgdmFyIGxlbiA9IHBhcnNlSW50KGV2ZW50WzRdKTsKLSAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZSArICctJyArIHBvcyArICctJyArIGxlbjsKLSAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2UodHMsICdmMmZzJywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCi0gICAgICAgICAga2V5LCAnZjJmc193cml0ZScpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGYyZnNXcml0ZUVuZEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvZGV2ID0gXCgoXGQrLFxkKylcKSwgaW5vID0gKFxkKyksIHBvcyA9IChcZCspLCBsZW4gPSAoXGQrKSwgY29waWVkID0gKFxkKykvLiAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgICAgIGV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07Ci0gICAgICB2YXIgaW5vZGUgPSBwYXJzZUludChldmVudFsyXSk7Ci0gICAgICB2YXIgcG9zID0gcGFyc2VJbnQoZXZlbnRbM10pOwotICAgICAgdmFyIGxlbiA9IHBhcnNlSW50KGV2ZW50WzRdKTsKLSAgICAgIHZhciBlcnJvciA9IHBhcnNlSW50KGV2ZW50WzVdKSAhPT0gbGVuOwotICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIGlub2RlICsgJy0nICsgcG9zICsgJy0nICsgbGVuOwotICAgICAgdGhpcy5jbG9zZUFzeW5jU2xpY2UodHMsICdmMmZzJywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCi0gICAgICAgICAga2V5LCB7Ci0gICAgICAgICAgICBkZXZpY2U6IGRldmljZSwKLSAgICAgICAgICAgIGlub2RlOiBpbm9kZSwKLSAgICAgICAgICAgIGVycm9yOiBlcnJvcgotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGV4dDRXcml0ZUJlZ2luRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9kZXYgKFxkKyxcZCspIGlubyAoXGQrKSBwb3MgKFxkKykgbGVuIChcZCspIGZsYWdzIChcZCspLy4KLSAgICAgICAgICBleGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKLSAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHZhciBwb3MgPSBwYXJzZUludChldmVudFszXSk7Ci0gICAgICB2YXIgbGVuID0gcGFyc2VJbnQoZXZlbnRbNF0pOwotICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIGlub2RlICsgJy0nICsgcG9zICsgJy0nICsgbGVuOwotICAgICAgdGhpcy5vcGVuQXN5bmNTbGljZSh0cywgJ2V4dDQnLCBldmVudEJhc2UudGhyZWFkTmFtZSwgZXZlbnRCYXNlLnBpZCwKLSAgICAgICAgICBrZXksICdleHQ0X3dyaXRlJyk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgZXh0NFdyaXRlRW5kRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9kZXYgKFxkKyxcZCspIGlubyAoXGQrKSBwb3MgKFxkKykgbGVuIChcZCspIGNvcGllZCAoXGQrKS8uCi0gICAgICAgICAgZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKLSAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHZhciBwb3MgPSBwYXJzZUludChldmVudFszXSk7Ci0gICAgICB2YXIgbGVuID0gcGFyc2VJbnQoZXZlbnRbNF0pOwotICAgICAgdmFyIGVycm9yID0gcGFyc2VJbnQoZXZlbnRbNV0pICE9PSBsZW47Ci0gICAgICB2YXIga2V5ID0gZGV2aWNlICsgJy0nICsgaW5vZGUgKyAnLScgKyBwb3MgKyAnLScgKyBsZW47Ci0gICAgICB0aGlzLmNsb3NlQXN5bmNTbGljZSh0cywgJ2V4dDQnLCBldmVudEJhc2UudGhyZWFkTmFtZSwgZXZlbnRCYXNlLnBpZCwKLSAgICAgICAgICBrZXksIHsKLSAgICAgICAgICAgIGRldmljZTogZGV2aWNlLAotICAgICAgICAgICAgaW5vZGU6IGlub2RlLAotICAgICAgICAgICAgZXJyb3I6IGVycm9yCi0gICAgICAgICAgfSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgZjJmc1N5bmNGaWxlRW50ZXJFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgKLSAgICAgICAgICAnZGV2ID0gXFwoKFxcZCssXFxkKylcXCksIGlubyA9IChcXGQrKSwgcGlubyA9IChcXGQrKSwgaV9tb2RlID0gKFxcUyspLCAnICsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgICAnaV9zaXplID0gKFxcZCspLCBpX25saW5rID0gKFxcZCspLCBpX2Jsb2NrcyA9IChcXGQrKSwgaV9hZHZpc2UgPSAoXFxkKyknKS4gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgICBleGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIGRldmljZSA9IGV2ZW50WzFdOwotICAgICAgdmFyIGlub2RlID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIGlub2RlOwotICAgICAgdGhpcy5vcGVuQXN5bmNTbGljZSh0cywgJ2YyZnMnLCBldmVudEJhc2UudGhyZWFkTmFtZSwgZXZlbnRCYXNlLnBpZCwKLSAgICAgICAgICBrZXksICdmc3luYycpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGYyZnNTeW5jRmlsZUV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgnZGV2ID0gXFwoKFxcZCssXFxkKylcXCksIGlubyA9IChcXGQrKSwgY2hlY2twb2ludCBpcyAoXFxTKyksICcgKyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgICAgICdkYXRhc3luYyA9IChcXGQrKSwgcmV0ID0gKFxcZCspJykuCi0gICAgICAgICAgZXhlYyhldmVudEJhc2UuZGV0YWlscy5yZXBsYWNlKCdub3QgbmVlZGVkJywgJ25vdF9uZWVkZWQnKSk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKLSAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHZhciBlcnJvciA9IHBhcnNlSW50KGV2ZW50WzVdKTsKLSAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZTsKLSAgICAgIHRoaXMuY2xvc2VBc3luY1NsaWNlKHRzLCAnZjJmcycsIGV2ZW50QmFzZS50aHJlYWROYW1lLCBldmVudEJhc2UucGlkLAotICAgICAgICAgIGtleSwgewotICAgICAgICAgICAgZGV2aWNlOiBkZXZpY2UsCi0gICAgICAgICAgICBpbm9kZTogaW5vZGUsCi0gICAgICAgICAgICBlcnJvcjogZXJyb3IKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBleHQ0U3luY0ZpbGVFbnRlckV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvZGV2IChcZCssXGQrKSBpbm8gKFxkKykgcGFyZW50IChcZCspIGRhdGFzeW5jIChcZCspLy4KLSAgICAgICAgICBleGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIGRldmljZSA9IGV2ZW50WzFdOwotICAgICAgdmFyIGlub2RlID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotICAgICAgdmFyIGRhdGFzeW5jID0gZXZlbnRbNF0gPT0gMTsKLSAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZTsKLSAgICAgIHZhciBhY3Rpb24gPSBkYXRhc3luYyA/ICdmZGF0YXN5bmMnIDogJ2ZzeW5jJzsKLSAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2UodHMsICdleHQ0JywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCi0gICAgICAgICAga2V5LCBhY3Rpb24pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGV4dDRTeW5jRmlsZUV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL2RldiAoXGQrLFxkKykgaW5vIChcZCspIHJldCAoXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKLSAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHZhciBlcnJvciA9IHBhcnNlSW50KGV2ZW50WzNdKTsKLSAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZTsKLSAgICAgIHRoaXMuY2xvc2VBc3luY1NsaWNlKHRzLCAnZXh0NCcsIGV2ZW50QmFzZS50aHJlYWROYW1lLCBldmVudEJhc2UucGlkLAotICAgICAgICAgIGtleSwgewotICAgICAgICAgICAgZGV2aWNlOiBkZXZpY2UsCi0gICAgICAgICAgICBpbm9kZTogaW5vZGUsCi0gICAgICAgICAgICBlcnJvcjogZXJyb3IKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBibG9ja1JxSXNzdWVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgnKFxcZCssXFxkKykgKEYpPyhbRFdSTl0pKEYpPyhBKT8oUyk/KE0pPyAnICsKLSAgICAgICAgICAnXFxkKyBcXCguKlxcKSAoXFxkKykgXFwrIChcXGQrKSBcXFsuKlxcXScpLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgYWN0aW9uOwotICAgICAgc3dpdGNoIChldmVudFszXSkgewotICAgICAgICBjYXNlICdEJzoKLSAgICAgICAgICBhY3Rpb24gPSAnZGlzY2FyZCc7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ1cnOgotICAgICAgICAgIGFjdGlvbiA9ICd3cml0ZSc7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ1InOgotICAgICAgICAgIGFjdGlvbiA9ICdyZWFkJzsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAnTic6Ci0gICAgICAgICAgYWN0aW9uID0gJ25vbmUnOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIGFjdGlvbiA9ICd1bmtub3duJzsKLSAgICAgICAgICBicmVhazsKLSAgICAgIH0KLQotICAgICAgaWYgKGV2ZW50WzJdKSB7Ci0gICAgICAgIGFjdGlvbiArPSAnIGZsdXNoJzsKLSAgICAgIH0KLSAgICAgIGlmIChldmVudFs0XSA9PSAnRicpIHsKLSAgICAgICAgYWN0aW9uICs9ICcgZnVhJzsKLSAgICAgIH0KLSAgICAgIGlmIChldmVudFs1XSA9PSAnQScpIHsKLSAgICAgICAgYWN0aW9uICs9ICcgYWhlYWQnOwotICAgICAgfQotICAgICAgaWYgKGV2ZW50WzZdID09ICdTJykgewotICAgICAgICBhY3Rpb24gKz0gJyBzeW5jJzsKLSAgICAgIH0KLSAgICAgIGlmIChldmVudFs3XSA9PSAnTScpIHsKLSAgICAgICAgYWN0aW9uICs9ICcgbWV0YSc7Ci0gICAgICB9Ci0gICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07Ci0gICAgICB2YXIgc2VjdG9yID0gcGFyc2VJbnQoZXZlbnRbOF0pOwotICAgICAgdmFyIG51bVNlY3RvcnMgPSBwYXJzZUludChldmVudFs5XSk7Ci0gICAgICB2YXIga2V5ID0gZGV2aWNlICsgJy0nICsgc2VjdG9yICsgJy0nICsgbnVtU2VjdG9yczsKLSAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2UodHMsICdibG9jaycsIGV2ZW50QmFzZS50aHJlYWROYW1lLCBldmVudEJhc2UucGlkLAotICAgICAgICAgIGtleSwgYWN0aW9uKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBibG9ja1JxQ29tcGxldGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgnKFxcZCssXFxkKykgKEYpPyhbRFdSTl0pKEYpPyhBKT8oUyk/KE0pPyAnICsKLSAgICAgICAgICAnXFwoLipcXCkgKFxcZCspIFxcKyAoXFxkKykgXFxbKC4qKVxcXScpLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07Ci0gICAgICB2YXIgc2VjdG9yID0gcGFyc2VJbnQoZXZlbnRbOF0pOwotICAgICAgdmFyIG51bVNlY3RvcnMgPSBwYXJzZUludChldmVudFs5XSk7Ci0gICAgICB2YXIgZXJyb3IgPSBwYXJzZUludChldmVudFsxMF0pOwotICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIHNlY3RvciArICctJyArIG51bVNlY3RvcnM7Ci0gICAgICB0aGlzLmNsb3NlQXN5bmNTbGljZSh0cywgJ2Jsb2NrJywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCi0gICAgICAgICAga2V5LCB7Ci0gICAgICAgICAgICBkZXZpY2U6IGRldmljZSwKLSAgICAgICAgICAgIHNlY3Rvcjogc2VjdG9yLAotICAgICAgICAgICAgbnVtU2VjdG9yczogbnVtU2VjdG9ycywKLSAgICAgICAgICAgIGVycm9yOiBlcnJvcgotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9OwotCi0gIFBhcnNlci5yZWdpc3RlcihEaXNrUGFyc2VyKTsKLQotICByZXR1cm4gewotICAgIERpc2tQYXJzZXI6IERpc2tQYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2RybV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZHJtX3BhcnNlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODBiODFiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZHJtX3BhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGRybSBkcml2ZXIgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IGRybSB0cmFjZSBldmVudHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gRHJtUGFyc2VyKGltcG9ydGVyKSB7Ci0gICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOwotCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2RybV92YmxhbmtfZXZlbnQnLAotICAgICAgICBEcm1QYXJzZXIucHJvdG90eXBlLnZibGFua0V2ZW50LmJpbmQodGhpcykpOwotICB9Ci0KLSAgRHJtUGFyc2VyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCi0KLSAgICBkcm1WYmxhbmtTbGljZTogZnVuY3Rpb24odHMsIGV2ZW50TmFtZSwgYXJncykgewotICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdkcm1fdmJsYW5rJyk7Ci0gICAgICBrdGhyZWFkLm9wZW5TbGljZSA9IGV2ZW50TmFtZTsKLSAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgnJywga3RocmVhZC5vcGVuU2xpY2UsCi0gICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLAotICAgICAgICAgIHRzLCBhcmdzLCAwKTsKLQotICAgICAga3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgZHJtIGRyaXZlciBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUgaW4gdGhlIGltcG9ydGVyLgotICAgICAqLwotICAgIHZibGFua0V2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvY3J0Yz0oXGQrKSwgc2VxPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIGNydGMgPSBwYXJzZUludChldmVudFsxXSk7Ci0gICAgICB2YXIgc2VxID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotICAgICAgdGhpcy5kcm1WYmxhbmtTbGljZSh0cywgJ3ZibGFuazonICsgY3J0YywKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBjcnRjOiBjcnRjLAotICAgICAgICAgICAgc2VxOiBzZXEKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgfTsKLQotICBQYXJzZXIucmVnaXN0ZXIoRHJtUGFyc2VyKTsKLQotICByZXR1cm4gewotICAgIERybVBhcnNlcjogRHJtUGFyc2VyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2V4eW5vc19wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZXh5bm9zX3BhcnNlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTgwY2E1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZXh5bm9zX3BhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFBhcnNlcyBleHlub3MgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IGV4eW5vcyB0cmFjZSBldmVudHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gRXh5bm9zUGFyc2VyKGltcG9ydGVyKSB7Ci0gICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOwotCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4eW5vc19idXNmcmVxX3RhcmdldF9pbnQnLAotICAgICAgICBFeHlub3NQYXJzZXIucHJvdG90eXBlLmJ1c2ZyZXFUYXJnZXRJbnRFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZXh5bm9zX2J1c2ZyZXFfdGFyZ2V0X21pZicsCi0gICAgICAgIEV4eW5vc1BhcnNlci5wcm90b3R5cGUuYnVzZnJlcVRhcmdldE1pZkV2ZW50LmJpbmQodGhpcykpOwotCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGUnLAotICAgICAgICBFeHlub3NQYXJzZXIucHJvdG90eXBlLnBhZ2VGbGlwU3RhdGVFdmVudC5iaW5kKHRoaXMpKTsKLSAgfQotCi0gIEV4eW5vc1BhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAotCi0gICAgZXh5bm9zQnVzZnJlcVNhbXBsZTogZnVuY3Rpb24obmFtZSwgdHMsIGZyZXF1ZW5jeSkgewotICAgICAgdmFyIHRhcmdldENwdSA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVDcHUoMCk7Ci0gICAgICB2YXIgY291bnRlciA9IHRhcmdldENwdS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsIG5hbWUpOwotICAgICAgaWYgKGNvdW50ZXIubnVtU2VyaWVzID09PSAwKSB7Ci0gICAgICAgIGNvdW50ZXIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdmcmVxdWVuY3knLAotICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCi0gICAgICAgICAgICAgICAgY291bnRlci5uYW1lICsgJy4nICsgJ2ZyZXF1ZW5jeScpKSk7Ci0gICAgICB9Ci0gICAgICBjb3VudGVyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cywgZnJlcXVlbmN5KTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgZXh5bm9zX2J1c2ZyZXFfdGFyZ2V0X2ludCBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUuCi0gICAgICovCi0gICAgYnVzZnJlcVRhcmdldEludEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvZnJlcXVlbmN5PShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdGhpcy5leHlub3NCdXNmcmVxU2FtcGxlKCdJTlQgRnJlcXVlbmN5JywgdHMsIHBhcnNlSW50KGV2ZW50WzFdKSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUGFyc2VzIGV4eW5vc19idXNmcmVxX3RhcmdldF9taWYgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlLgotICAgICAqLwotICAgIGJ1c2ZyZXFUYXJnZXRNaWZFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL2ZyZXF1ZW5jeT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHRoaXMuZXh5bm9zQnVzZnJlcVNhbXBsZSgnTUlGIEZyZXF1ZW5jeScsIHRzLCBwYXJzZUludChldmVudFsxXSkpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGV4eW5vc1BhZ2VGbGlwU3RhdGVPcGVuU2xpY2U6IGZ1bmN0aW9uKHRzLCBwaXBlLCBmYiwgc3RhdGUpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgKLSAgICAgICAgICAnZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6JyArIHBpcGUgKyAnLCBmYjonICsgZmIgKyAnKScpOwotICAgICAga3RocmVhZC5vcGVuU2xpY2VUUyA9IHRzOwotICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBzdGF0ZTsKLSAgICB9LAotCi0gICAgZXh5bm9zUGFnZUZsaXBTdGF0ZUNsb3NlU2xpY2U6IGZ1bmN0aW9uKHRzLCBwaXBlLCBmYiwgYXJncykgewotICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKAotICAgICAgICAgICdleHlub3NfZmxpcF9zdGF0ZSAocGlwZTonICsgcGlwZSArICcsIGZiOicgKyBmYiArICcpJyk7Ci0gICAgICBpZiAoa3RocmVhZC5vcGVuU2xpY2UpIHsKLSAgICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLlNsaWNlKCcnLCBrdGhyZWFkLm9wZW5TbGljZSwKLSAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKLSAgICAgICAgICAgIGt0aHJlYWQub3BlblNsaWNlVFMsCi0gICAgICAgICAgICBhcmdzLAotICAgICAgICAgICAgdHMgLSBrdGhyZWFkLm9wZW5TbGljZVRTKTsKLSAgICAgICAga3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOwotICAgICAgfQotICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFBhcnNlcyBwYWdlX2ZsaXBfc3RhdGUgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KLSAgICAgKi8KLSAgICBwYWdlRmxpcFN0YXRlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9waXBlPShcZCspLCBmYj0oXGQrKSwgc3RhdGU9KC4qKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBwaXBlID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotICAgICAgdmFyIGZiID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotICAgICAgdmFyIHN0YXRlID0gZXZlbnRbM107Ci0KLSAgICAgIHRoaXMuZXh5bm9zUGFnZUZsaXBTdGF0ZUNsb3NlU2xpY2UodHMsIHBpcGUsIGZiLAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHBpcGU6IHBpcGUsCi0gICAgICAgICAgICBmYjogZmIKLSAgICAgICAgICB9KTsKLSAgICAgIGlmIChzdGF0ZSAhPT0gJ2ZsaXBwZWQnKQotICAgICAgICB0aGlzLmV4eW5vc1BhZ2VGbGlwU3RhdGVPcGVuU2xpY2UodHMsIHBpcGUsIGZiLCBzdGF0ZSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgUGFyc2VyLnJlZ2lzdGVyKEV4eW5vc1BhcnNlcik7Ci0KLSAgcmV0dXJuIHsKLSAgICBFeHlub3NQYXJzZXI6IEV4eW5vc1BhcnNlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9leHlub3NfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZXh5bm9zX3BhcnNlcl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1ZDgzNzMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9leHlub3NfcGFyc2VyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlci5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHRlc3QoJ2V4eW5vc0J1c2ZyZXFJbXBvcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnICAgICBrd29ya2VyLzE6MC00MTc3ICBbMDAxXSAuLi4uICAyODAzLjEyOTgwNjogJyArCi0gICAgICAgICAgJ2V4eW5vc19idXNmcmVxX3RhcmdldF9pbnQ6IGZyZXF1ZW5jeT0yMDAwMDAnLAotICAgICAgJyAgICAga3dvcmtlci8xOjAtNDE3NyAgWzAwMV0gLi4uLiAgMjgwMy4yMjkyMDc6ICcgKwotICAgICAgICAgICdleHlub3NfYnVzZnJlcV90YXJnZXRfaW50OiBmcmVxdWVuY3k9MjY3MDAwJywKLSAgICAgICcgICAgIGt3b3JrZXIvMTowLTQxNzcgIFswMDFdIC4uLi4gIDI4MDMuMzI5MDMxOiAnICsKLSAgICAgICAgICAnZXh5bm9zX2J1c2ZyZXFfdGFyZ2V0X2ludDogZnJlcXVlbmN5PTE2MDAwMCcsCi0gICAgICAnICAgICBrd29ya2VyLzE6MC00MTc3ICBbMDAxXSAuLi4uICAyODA1LjcyOTAzOTogJyArCi0gICAgICAgICAgJ2V4eW5vc19idXNmcmVxX3RhcmdldF9taWY6IGZyZXF1ZW5jeT0yMDAwMDAnCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICB2YXIgYzAgPSBtLmtlcm5lbC5jcHVzWzBdOwotICAgIGFzc2VydC5lcXVhbChjMC5zbGljZXMubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoYzAuY291bnRlcnNbJ0lOVCBGcmVxdWVuY3knXS5zZXJpZXNbMF0uc2FtcGxlcy5sZW5ndGgsIDMpOwotICAgIGFzc2VydC5lcXVhbChjMC5jb3VudGVyc1snTUlGIEZyZXF1ZW5jeSddLnNlcmllc1swXS5zYW1wbGVzLmxlbmd0aCwgMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2V4eW5vc1BhZ2VGbGlwU2xvd1JlcXVlc3RJbXBvcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAwXSBkLmguIDEwMDAuMDAwMDAwOiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9d2FpdF9rZHMnLAotICAgICAgJyBDaHJvbWVfSU9UaHJlYWQtMjE2MDMgWzAwMF0gZC5oLiAxMDAwLjAwMDAwMTogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjYsIHN0YXRlPXdhaXRfYXBwbHknLAotICAgICAgJyAgICAga3dvcmtlci8wOjEtMjU5MzEgWzAwMF0gLi4uLiAxMDAwLjAwMDAwMjogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjYsIHN0YXRlPXdhaXRfZmxpcCcsCi0gICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDAzOiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9ZmxpcHBlZCcsCi0gICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAwXSBkLmguIDEwMDAuMDAwMDA0OiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9rZHMnLAotICAgICAgJyBDaHJvbWVfSU9UaHJlYWQtMjE2MDMgWzAwMF0gZC5oLiAxMDAwLjAwMDAwNTogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjUsIHN0YXRlPXdhaXRfYXBwbHknLAotICAgICAgJyAgICAga3dvcmtlci8wOjEtMjU5MzEgWzAwMF0gLi4uLiAxMDAwLjAwMDAwNjogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjUsIHN0YXRlPXdhaXRfZmxpcCcsCi0gICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDA3OiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9ZmxpcHBlZCcKLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLQotICAgIHZhciB0aHJlYWRzID0gbS5nZXRBbGxUaHJlYWRzKCk7Ci0gICAgLy8gdGhlcmUgYXJlIDIgdGhyZWFkczoKLSAgICAvLyAgICgxKSAiZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6MCwgZmI6MjUpIgotICAgIC8vICAgKDIpICJleHlub3NfZmxpcF9zdGF0ZSAocGlwZTowLCBmYjoyNikiCi0gICAgYXNzZXJ0LmVxdWFsKHRocmVhZHMubGVuZ3RoLCAyKTsKLQotICAgIC8vIGluIHRoZSB0ZXN0IGRhdGEsIGV2ZW50IG9mIGZiPTI2IG9jY3VycyBmaXJzdCwgc28gaXQncyB0aHJlYWRbMF0KLSAgICB2YXIgZ2Z4RmJJZDI2VGhyZWFkID0gdGhyZWFkc1swXTsgLy8gdGhyZWFkIHdoZXJlIGZiID09IDI2Ci0gICAgdmFyIGdmeEZiSWQyNVRocmVhZCA9IHRocmVhZHNbMV07IC8vIHRocmVhZCB3aGVyZSBmYiA9PSAyNQotICAgIGFzc2VydC5lcXVhbChnZnhGYklkMjVUaHJlYWQubmFtZSwgJ2V4eW5vc19mbGlwX3N0YXRlIChwaXBlOjAsIGZiOjI1KScpOwotICAgIGFzc2VydC5lcXVhbChnZnhGYklkMjZUaHJlYWQubmFtZSwgJ2V4eW5vc19mbGlwX3N0YXRlIChwaXBlOjAsIGZiOjI2KScpOwotICAgIC8vIEV2ZXJ5IHN0YXRlIChleGNlcHQgZm9yICdmbGlwcGVkJykgd2lsbCBzdGFydCBhIG5ldyBzbGljZS4KLSAgICAvLyBUaGUgbGFzdCBldmVudCB3aWxsIG5vdCBiZSBjbG9zZWQsIHNvIGl0J3Mgbm90IGEgc2xpY2UKLSAgICBhc3NlcnQuZXF1YWwoZ2Z4RmJJZDI1VGhyZWFkLnNsaWNlR3JvdXAubGVuZ3RoLCAzKTsKLSAgICBhc3NlcnQuZXF1YWwoZ2Z4RmJJZDI2VGhyZWFkLnNsaWNlR3JvdXAubGVuZ3RoLCAzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZXh5bm9zUGFnZUZsaXBGYXN0UmVxdWVzdEltcG9ydCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDBdIGQuaC4gMTAwMC4wMDAwMDA6ICcgKwotICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI2LCBzdGF0ZT13YWl0X2tkcycsCi0gICAgICAnIENocm9tZV9JT1RocmVhZC0yMTYwMyBbMDAwXSBkLmguIDEwMDAuMDAwMDAxOiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9rZHMnLAotICAgICAgJyAgICAgICAgICAgICAgIFgtMjEzODUgWzAwMF0gLi4uLiAxMDAwLjAwMDAwMjogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjYsIHN0YXRlPXdhaXRfYXBwbHknLAotICAgICAgJyAgICAga3dvcmtlci8wOjEtMjU5MzEgWzAwMF0gLi4uLiAxMDAwLjAwMDAwMzogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjYsIHN0YXRlPXdhaXRfZmxpcCcsCi0gICAgICAnICAgICAgICAgICAgICAgWC0yMTM4NSBbMDAxXSAuLi4uIDEwMDAuMDAwMDA0OiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9hcHBseScsCi0gICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDA1OiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9ZmxpcHBlZCcsCi0gICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAwXSBkLmguIDEwMDAuMDAwMDA2OiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9d2FpdF9rZHMnLAotICAgICAgJyAgICAgICAgICAgICAgIFgtMjEzODUgWzAwMF0gLi4uLiAxMDAwLjAwMDAwNzogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjUsIHN0YXRlPXdhaXRfZmxpcCcsCi0gICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDA4OiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9ZmxpcHBlZCcsCi0gICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDA5OiAnICsKLSAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9rZHMnLAotICAgICAgJyBDaHJvbWVfSU9UaHJlYWQtMjE2MDMgWzAwMF0gZC5oLiAxMDAwLjAwMDAxMDogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjUsIHN0YXRlPXdhaXRfYXBwbHknLAotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMF0gZC5oLiAxMDAwLjAwMDAxMTogJyArCi0gICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjYsIHN0YXRlPXdhaXRfYXBwbHknCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICB2YXIgdGhyZWFkcyA9IG0uZ2V0QWxsVGhyZWFkcygpOwotICAgIC8vIHRoZXJlIGFyZSAyIHRocmVhZHM6Ci0gICAgLy8gICAoMSkgImV4eW5vc19mbGlwX3N0YXRlIChwaXBlOjAsIGZiOjI1KSIKLSAgICAvLyAgICgyKSAiZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6MCwgZmI6MjYpIgotICAgIGFzc2VydC5lcXVhbCh0aHJlYWRzLmxlbmd0aCwgMik7Ci0KLSAgICAvLyBpbiB0aGUgdGVzdCBkYXRhLCBldmVudCBvZiBmYj0yNiBvY2N1cnMgZmlyc3QsIHNvIGl0J3MgdGhyZWFkWzBdCi0gICAgdmFyIGdmeEZiSWQyNlRocmVhZCA9IHRocmVhZHNbMF07IC8vIHRocmVhZCB3aGVyZSBmYiA9PSAyNgotICAgIHZhciBnZnhGYklkMjVUaHJlYWQgPSB0aHJlYWRzWzFdOyAvLyB0aHJlYWQgd2hlcmUgZmIgPT0gMjUKLSAgICBhc3NlcnQuZXF1YWwoZ2Z4RmJJZDI1VGhyZWFkLm5hbWUsICdleHlub3NfZmxpcF9zdGF0ZSAocGlwZTowLCBmYjoyNSknKTsKLSAgICBhc3NlcnQuZXF1YWwoZ2Z4RmJJZDI2VGhyZWFkLm5hbWUsICdleHlub3NfZmxpcF9zdGF0ZSAocGlwZTowLCBmYjoyNiknKTsKLSAgICAvLyBFdmVyeSBzdGF0ZSAoZXhjZXB0IGZvciAnZmxpcHBlZCcpIHdpbGwgc3RhcnQgYSBuZXcgc2xpY2UuCi0gICAgLy8gVGhlIGxhc3QgZXZlbnQgd2lsbCBub3QgYmUgY2xvc2VkLCBzbyBpdCdzIG5vdCBhIHNsaWNlCi0gICAgYXNzZXJ0LmVxdWFsKGdmeEZiSWQyNVRocmVhZC5zbGljZUdyb3VwLmxlbmd0aCwgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdmeEZiSWQyNlRocmVhZC5zbGljZUdyb3VwLmxlbmd0aCwgNCk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhZjlmOTQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYnVzX3BhcnNlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY2xvY2tfcGFyc2VyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9jcHVmcmVxX3BhcnNlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZGlza19wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2RybV9wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2lycV9wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2V4eW5vc19wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2dlc3R1cmVfcGFyc2VyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pOTE1X3BhcnNlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWFsaV9wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL21lbXJlY2xhaW1fcGFyc2VyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wb3dlcl9wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3JlZ3VsYXRvcl9wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3NjaGVkX3BhcnNlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvc3luY19wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3dvcmtxdWV1ZV9wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2FuZHJvaWRfcGFyc2VyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9rZnVuY19wYXJzZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2ltcG9ydGVyL2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9pbXBvcnRlci9zaW1wbGVfbGluZV9yZWFkZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEltcG9ydHMgdGV4dCBmaWxlcyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0IGludG8gdGhlCi0gKiBNb2RlbC4gVGhpcyBmb3JtYXQgaXMgb3V0cHV0IGJvdGggYnkgc2NoZWRfdHJhY2UgYW5kIGJ5IExpbnV4J3MgcGVyZiB0b29sLgotICoKLSAqIFRoaXMgaW1wb3J0ZXIgYXNzdW1lcyB0aGUgZXZlbnRzIGFycml2ZSBhcyBhIHN0cmluZy4gVGhlIHVuaXQgdGVzdHMgcHJvdmlkZQotICogZXhhbXBsZXMgb2YgdGhlIHRyYWNlIGZvcm1hdC4KLSAqCi0gKiBMaW51eCBzY2hlZHVsZXIgdHJhY2VzIHVzZSBhIGRlZmluaXRpb24gZm9yICdwaWQnIHRoYXQgaXMgZGlmZmVyZW50IHRoYW4KLSAqIHRyYWNpbmcgdXNlcy4gV2hlcmVhcyB0cmFjaW5nIHVzZXMgcGlkIHRvIGlkZW50aWZ5IGEgc3BlY2lmaWMgcHJvY2VzcywgYSBwaWQKLSAqIGluIGEgbGludXggdHJhY2UgcmVmZXJzIHRvIGEgc3BlY2lmaWMgdGhyZWFkIHdpdGhpbiBhIHByb2Nlc3MuIFdpdGhpbiB0aGlzCi0gKiBmaWxlLCB3ZSB0aGUgZGVmaW5pdGlvbiB1c2VkIGluIExpbnV4IHRyYWNlcywgYXMgaXQgaW1wcm92ZXMgdGhlIGltcG9ydGluZwotICogY29kZSdzIHJlYWRhYmlsaXR5LgotICovCi0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLSAgdmFyIEltcG9ydGVyID0gdHIuaW1wb3J0ZXIuSW1wb3J0ZXI7Ci0gIHZhciBDbG9ja1N5bmNSZWNvcmQgPSB0ci5DbG9ja1N5bmNSZWNvcmQ7Ci0KLSAgLyoqCi0gICAqIEltcG9ydHMgbGludXggcGVyZiBldmVudHMgaW50byBhIHNwZWNpZmllZCBtb2RlbC4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBMaW51eFBlcmZJbXBvcnRlcihtb2RlbCwgZXZlbnRzKSB7Ci0gICAgdGhpcy5pbXBvcnRQcmlvcml0eSA9IDI7Ci0gICAgdGhpcy5tb2RlbF8gPSBtb2RlbDsKLSAgICB0aGlzLmV2ZW50c18gPSBldmVudHM7Ci0gICAgdGhpcy5uZXdseUFkZGVkQ2xvY2tTeW5jUmVjb3Jkc18gPSBbXTsKLSAgICB0aGlzLndha2V1cHNfID0gW107Ci0gICAgdGhpcy5rZXJuZWxUaHJlYWRTdGF0ZXNfID0ge307Ci0gICAgdGhpcy5idWlsZE1hcEZyb21MaW51eFBpZHNUb1RocmVhZHMoKTsKLSAgICB0aGlzLmxpbmVzXyA9IFtdOwotICAgIHRoaXMucHNldWRvVGhyZWFkQ291bnRlciA9IDE7Ci0gICAgdGhpcy5wYXJzZXJzXyA9IFtdOwotICAgIHRoaXMuZXZlbnRIYW5kbGVyc18gPSB7fTsKLSAgfQotCi0gIHZhciBUZXN0RXhwb3J0cyA9IHt9OwotCi0gIC8vIE1hdGNoZXMgdGhlIHRyYWNlIHJlY29yZCBpbiAzLjIgYW5kIGxhdGVyIHdpdGggdGhlIHByaW50LXRnaWQgb3B0aW9uOgotICAvLyAgICAgICAgICA8aWRsZT4tMCAgICAwIFswMDFdIGQuLi4gIDEuMjM6IHNjaGVkX3N3aXRjaAotICAvLwotICAvLyBBIFRHSUQgKFRocmVhZCBHcm91cCBJRCkgaXMgYmFzaWNhbGx5IHdoYXQgdGhlIExpbnV4IGtlcm5lbCBjYWxscyB3aGF0Ci0gIC8vIHVzZXJsYW5kIHJlZmVycyB0byBhcyBhIHByb2Nlc3MgSUQgKGFzIG9wcG9zZWQgdG8gYSBMaW51eCBwaWQsIHdoaWNoIGlzCi0gIC8vIHdoYXQgdXNlcmxhbmQgY2FsbHMgYSB0aHJlYWQgSUQpLgotICB2YXIgbGluZVJFV2l0aFRHSUQgPSBuZXcgUmVnRXhwKAotICAgICAgJ15cXHMqKC4rKS0oXFxkKylcXHMrXFwoXFxzKihcXGQrfC0rKVxcKVxcc1xcWyhcXGQrKVxcXScgKwotICAgICAgJ1xccytbZFguXVtOLl1bSGhzLl1bMC05YS1mLl0nICsKLSAgICAgICdcXHMrKFxcZCtcXC5cXGQrKTpcXHMrKFxcUyspOlxccyguKikkJyk7Ci0gIHZhciBsaW5lUGFyc2VyV2l0aFRHSUQgPSBmdW5jdGlvbihsaW5lKSB7Ci0gICAgdmFyIGdyb3VwcyA9IGxpbmVSRVdpdGhUR0lELmV4ZWMobGluZSk7Ci0gICAgaWYgKCFncm91cHMpIHsKLSAgICAgIHJldHVybiBncm91cHM7Ci0gICAgfQotCi0gICAgdmFyIHRnaWQgPSBncm91cHNbM107Ci0gICAgaWYgKHRnaWRbMF0gPT09ICctJykKLSAgICAgIHRnaWQgPSB1bmRlZmluZWQ7Ci0KLSAgICByZXR1cm4gewotICAgICAgdGhyZWFkTmFtZTogZ3JvdXBzWzFdLAotICAgICAgcGlkOiBncm91cHNbMl0sCi0gICAgICB0Z2lkOiB0Z2lkLAotICAgICAgY3B1TnVtYmVyOiBncm91cHNbNF0sCi0gICAgICB0aW1lc3RhbXA6IGdyb3Vwc1s1XSwKLSAgICAgIGV2ZW50TmFtZTogZ3JvdXBzWzZdLAotICAgICAgZGV0YWlsczogZ3JvdXBzWzddCi0gICAgfTsKLSAgfTsKLSAgVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhUR0lEID0gbGluZVBhcnNlcldpdGhUR0lEOwotCi0gIC8vIE1hdGNoZXMgdGhlIGRlZmF1bHQgdHJhY2UgcmVjb3JkIGluIDMuMiBhbmQgbGF0ZXIgKGluY2x1ZGVzIGlycS1pbmZvKToKLSAgLy8gICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdIGQuLi4gIDEuMjM6IHNjaGVkX3N3aXRjaAotICB2YXIgbGluZVJFV2l0aElSUUluZm8gPSBuZXcgUmVnRXhwKAotICAgICAgJ15cXHMqKC4rKS0oXFxkKylcXHMrXFxbKFxcZCspXFxdJyArCi0gICAgICAnXFxzK1tkWC5dW04uXVtIaHMuXVswLTlhLWYuXScgKwotICAgICAgJ1xccysoXFxkK1xcLlxcZCspOlxccysoXFxTKyk6XFxzKC4qKSQnKTsKLSAgdmFyIGxpbmVQYXJzZXJXaXRoSVJRSW5mbyA9IGZ1bmN0aW9uKGxpbmUpIHsKLSAgICB2YXIgZ3JvdXBzID0gbGluZVJFV2l0aElSUUluZm8uZXhlYyhsaW5lKTsKLSAgICBpZiAoIWdyb3VwcykgewotICAgICAgcmV0dXJuIGdyb3VwczsKLSAgICB9Ci0gICAgcmV0dXJuIHsKLSAgICAgIHRocmVhZE5hbWU6IGdyb3Vwc1sxXSwKLSAgICAgIHBpZDogZ3JvdXBzWzJdLAotICAgICAgY3B1TnVtYmVyOiBncm91cHNbM10sCi0gICAgICB0aW1lc3RhbXA6IGdyb3Vwc1s0XSwKLSAgICAgIGV2ZW50TmFtZTogZ3JvdXBzWzVdLAotICAgICAgZGV0YWlsczogZ3JvdXBzWzZdCi0gICAgfTsKLSAgfTsKLSAgVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhJUlFJbmZvID0gbGluZVBhcnNlcldpdGhJUlFJbmZvOwotCi0gIC8vIE1hdGNoZXMgdGhlIGRlZmF1bHQgdHJhY2UgcmVjb3JkIHByZS0zLjI6Ci0gIC8vICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAxXSAgMS4yMzogc2NoZWRfc3dpdGNoCi0gIHZhciBsaW5lUkVXaXRoTGVnYWN5Rm10ID0KLSAgICAgIC9eXHMqKC4rKS0oXGQrKVxzK1xbKFxkKylcXVxzKihcZCtcLlxkKyk6XHMrKFxTKyk6XHMoLiopJC87Ci0gIHZhciBsaW5lUGFyc2VyV2l0aExlZ2FjeUZtdCA9IGZ1bmN0aW9uKGxpbmUpIHsKLSAgICB2YXIgZ3JvdXBzID0gbGluZVJFV2l0aExlZ2FjeUZtdC5leGVjKGxpbmUpOwotICAgIGlmICghZ3JvdXBzKSB7Ci0gICAgICByZXR1cm4gZ3JvdXBzOwotICAgIH0KLSAgICByZXR1cm4gewotICAgICAgdGhyZWFkTmFtZTogZ3JvdXBzWzFdLAotICAgICAgcGlkOiBncm91cHNbMl0sCi0gICAgICBjcHVOdW1iZXI6IGdyb3Vwc1szXSwKLSAgICAgIHRpbWVzdGFtcDogZ3JvdXBzWzRdLAotICAgICAgZXZlbnROYW1lOiBncm91cHNbNV0sCi0gICAgICBkZXRhaWxzOiBncm91cHNbNl0KLSAgICB9OwotICB9OwotICBUZXN0RXhwb3J0cy5saW5lUGFyc2VyV2l0aExlZ2FjeUZtdCA9IGxpbmVQYXJzZXJXaXRoTGVnYWN5Rm10OwotCi0gIC8vIE1hdGNoZXMgdGhlIHRyYWNlX2V2ZW50X2Nsb2NrX3N5bmMgcmVjb3JkCi0gIC8vICAwOiB0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBwYXJlbnRfdHM9MTk1ODE0Nzc1MDgKLSAgdmFyIHRyYWNlRXZlbnRDbG9ja1N5bmNSRSA9IC90cmFjZV9ldmVudF9jbG9ja19zeW5jOiBwYXJlbnRfdHM9KFxkK1wuP1xkKikvOwotICBUZXN0RXhwb3J0cy50cmFjZUV2ZW50Q2xvY2tTeW5jUkUgPSB0cmFjZUV2ZW50Q2xvY2tTeW5jUkU7Ci0KLSAgdmFyIGdlbmVyaWNDbG9ja1N5bmNSRSA9IC90cmFjZV9ldmVudF9jbG9ja19zeW5jOiBuYW1lPShcdyspLzsKLQotICAvLyBTb21lIGtlcm5lbCB0cmFjZSBldmVudHMgYXJlIG1hbnVhbGx5IGNsYXNzaWZpZWQgaW4gc2xpY2VzIGFuZAotICAvLyBoYW5kLWFzc2lnbmVkIGEgcHNldWRvIFBJRC4KLSAgdmFyIHBzZXVkb0tlcm5lbFBJRCA9IDA7Ci0KLSAgLyoqCi0gICAqIERlZHVjZSB0aGUgZm9ybWF0IG9mIHRyYWNlIGRhdGEuIExpbnV4IGtlcm5lbHMgcHJpb3IgdG8gMy4zIHVzZWQgb25lCi0gICAqIGZvcm1hdCAoYnkgZGVmYXVsdCk7IDMuNCBhbmQgbGF0ZXIgdXNlZCBhbm90aGVyLiAgQWRkaXRpb25hbGx5LCBuZXdlcgotICAgKiBrZXJuZWxzIGNhbiBvcHRpb25hbGx5IHRyYWNlIHRoZSBUR0lELgotICAgKgotICAgKiBAcmV0dXJuIHtmdW5jdGlvbn0gdGhlIGZ1bmN0aW9uIGZvciBwYXJzaW5nIGRhdGEgd2hlbiB0aGUgZm9ybWF0IGlzCi0gICAqIHJlY29nbml6ZWQ7IG90aGVyd2lzZSBudWxsLgotICAgKi8KLSAgZnVuY3Rpb24gYXV0b0RldGVjdExpbmVQYXJzZXIobGluZSkgewotICAgIGlmIChsaW5lWzBdID09ICd7JykKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobGluZVJFV2l0aFRHSUQudGVzdChsaW5lKSkKLSAgICAgIHJldHVybiBsaW5lUGFyc2VyV2l0aFRHSUQ7Ci0gICAgaWYgKGxpbmVSRVdpdGhJUlFJbmZvLnRlc3QobGluZSkpCi0gICAgICByZXR1cm4gbGluZVBhcnNlcldpdGhJUlFJbmZvOwotICAgIGlmIChsaW5lUkVXaXRoTGVnYWN5Rm10LnRlc3QobGluZSkpCi0gICAgICByZXR1cm4gbGluZVBhcnNlcldpdGhMZWdhY3lGbXQ7Ci0gICAgcmV0dXJuIG51bGw7Ci0gIH07Ci0gIFRlc3RFeHBvcnRzLmF1dG9EZXRlY3RMaW5lUGFyc2VyID0gYXV0b0RldGVjdExpbmVQYXJzZXI7Ci0KLSAgLyoqCi0gICAqIEd1ZXNzZXMgd2hldGhlciB0aGUgcHJvdmlkZWQgZXZlbnRzIGlzIGEgTGludXggcGVyZiBzdHJpbmcuCi0gICAqIExvb2tzIGZvciB0aGUgbWFnaWMgc3RyaW5nICIjIHRyYWNlciIgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLAotICAgKiBvciB0aGUgdHlwaWNhbCB0YXNrLXBpZC1jcHUtdGltZXN0YW1wLWZ1bmN0aW9uIHNlcXVlbmNlIG9mIGEgdHlwaWNhbAotICAgKiB0cmFjZSdzIGJvZHkuCi0gICAqCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgd2hlbiBldmVudHMgaXMgYSBsaW51eCBwZXJmIGFycmF5LgotICAgKi8KLSAgTGludXhQZXJmSW1wb3J0ZXIuY2FuSW1wb3J0ID0gZnVuY3Rpb24oZXZlbnRzKSB7Ci0gICAgaWYgKCEodHlwZW9mKGV2ZW50cykgPT09ICdzdHJpbmcnIHx8IGV2ZW50cyBpbnN0YW5jZW9mIFN0cmluZykpCi0gICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoTGludXhQZXJmSW1wb3J0ZXIuX2V4dHJhY3RFdmVudHNGcm9tU3lzdHJhY2VIVE1MKGV2ZW50cywgZmFsc2UpLm9rKQotICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoTGludXhQZXJmSW1wb3J0ZXIuX2V4dHJhY3RFdmVudHNGcm9tU3lzdHJhY2VNdWx0aUhUTUwoZXZlbnRzLCBmYWxzZSkub2spCi0gICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICgvXiMgdHJhY2VyOi8udGVzdChldmVudHMpKQotICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICB2YXIgbGluZUJyZWFrSW5kZXggPSBldmVudHMuaW5kZXhPZignXG4nKTsKLSAgICBpZiAobGluZUJyZWFrSW5kZXggPiAtMSkKLSAgICAgIGV2ZW50cyA9IGV2ZW50cy5zdWJzdHJpbmcoMCwgbGluZUJyZWFrSW5kZXgpOwotCi0gICAgaWYgKGF1dG9EZXRlY3RMaW5lUGFyc2VyKGV2ZW50cykpCi0gICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKLSAgfTsKLQotICBMaW51eFBlcmZJbXBvcnRlci5fZXh0cmFjdEV2ZW50c0Zyb21TeXN0cmFjZUhUTUwgPSBmdW5jdGlvbigKLSAgICAgIGluY29taW5nX2V2ZW50cywgcHJvZHVjZV9yZXN1bHQpIHsKLSAgICB2YXIgZmFpbHVyZSA9IHtvazogZmFsc2V9OwotICAgIGlmIChwcm9kdWNlX3Jlc3VsdCA9PT0gdW5kZWZpbmVkKQotICAgICAgcHJvZHVjZV9yZXN1bHQgPSB0cnVlOwotCi0gICAgaWYgKC9ePCFET0NUWVBFIEhUTUw+Ly50ZXN0KGluY29taW5nX2V2ZW50cykgPT0gZmFsc2UpCi0gICAgICByZXR1cm4gZmFpbHVyZTsKLSAgICB2YXIgciA9IG5ldyB0ci5pbXBvcnRlci5TaW1wbGVMaW5lUmVhZGVyKGluY29taW5nX2V2ZW50cyk7Ci0KLSAgICAvLyBUcnkgdG8gZmluZCB0aGUgZGF0YS4uLgotICAgIGlmICghci5hZHZhbmNlVG9MaW5lTWF0Y2hpbmcoL14gIDxzY3JpcHQ+JC8pKQotICAgICAgcmV0dXJuIGZhaWx1cmU7Ci0gICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXiAgdmFyIGxpbnV4UGVyZkRhdGEgPSAiXFwkLykpCi0gICAgICByZXR1cm4gZmFpbHVyZTsKLQotICAgIHZhciBldmVudHNfYmVnaW5fYXRfbGluZSA9IHIuY3VyTGluZU51bWJlciArIDE7Ci0gICAgci5iZWdpblNhdmluZ0xpbmVzKCk7Ci0gICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXiAgPFwvc2NyaXB0PiQvKSkKLSAgICAgIHJldHVybiBmYWlsdXJlOwotCi0gICAgdmFyIHJhd19ldmVudHMgPSByLmVuZFNhdmluZ0xpbmVzQW5kR2V0UmVzdWx0KCk7Ci0KLSAgICAvLyBEcm9wIG9mZiBmaXJzdCBhbmQgbGFzdCBldmVudCBhcyBpdCBjb250YWlucyB0aGUgdGFnLgotICAgIHJhd19ldmVudHMgPSByYXdfZXZlbnRzLnNsaWNlKDEsIHJhd19ldmVudHMubGVuZ3RoIC0gMSk7Ci0KLSAgICBpZiAoIXIuYWR2YW5jZVRvTGluZU1hdGNoaW5nKC9ePFwvYm9keT4kLykpCi0gICAgICByZXR1cm4gZmFpbHVyZTsKLSAgICBpZiAoIXIuYWR2YW5jZVRvTGluZU1hdGNoaW5nKC9ePFwvaHRtbD4kLykpCi0gICAgICByZXR1cm4gZmFpbHVyZTsKLQotICAgIGZ1bmN0aW9uIGVuZHNXaXRoKHN0ciwgc3VmZml4KSB7Ci0gICAgICByZXR1cm4gc3RyLmluZGV4T2Yoc3VmZml4LCBzdHIubGVuZ3RoIC0gc3VmZml4Lmxlbmd0aCkgIT09IC0xOwotICAgIH0KLSAgICBmdW5jdGlvbiBzdHJpcFN1ZmZpeChzdHIsIHN1ZmZpeCkgewotICAgICAgaWYgKCFlbmRzV2l0aChzdHIsIHN1ZmZpeCkpCi0gICAgICAgIHJldHVybiBzdHI7Ci0gICAgICByZXR1cm4gc3RyLnN1YnN0cmluZyhzdHIsIHN0ci5sZW5ndGggLSBzdWZmaXgubGVuZ3RoKTsKLSAgICB9Ci0KLSAgICAvLyBTdHJpcCBvZmYgZXNjYXBpbmcgaW4gdGhlIGZpbGUgbmVlZGVkIHRvIHByZXNlcnZlIGxpbmVicmVha3MuCi0gICAgdmFyIGV2ZW50cyA9IFtdOwotICAgIGlmIChwcm9kdWNlX3Jlc3VsdCkgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYXdfZXZlbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBldmVudCA9IHJhd19ldmVudHNbaV07Ci0gICAgICAgIGV2ZW50ID0gc3RyaXBTdWZmaXgoZXZlbnQsICdcXG5cXCcpOwotICAgICAgICBldmVudHMucHVzaChldmVudCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGV2ZW50cyA9IFtyYXdfZXZlbnRzW3Jhd19ldmVudHMubGVuZ3RoIC0gMV1dOwotICAgIH0KLQotICAgIC8vIExhc3QgZXZlbnQgZW5kcyBkaWZmZXJlbnRseS4gU3RyaXAgdGhhdCBvZmYgdG9vLAotICAgIC8vIHRyZWF0aW5nIGFic2VuY2Ugb2YgdGhhdCB0cmFpbGluZyBzdHJpbmcgYXMgYSBmYWlsdXJlLgotICAgIHZhciBvbGRMYXN0RXZlbnQgPSBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdOwotICAgIHZhciBuZXdMYXN0RXZlbnQgPSBzdHJpcFN1ZmZpeChvbGRMYXN0RXZlbnQsICdcXG4iOycpOwotICAgIGlmIChuZXdMYXN0RXZlbnQgPT0gb2xkTGFzdEV2ZW50KQotICAgICAgcmV0dXJuIGZhaWx1cmU7Ci0gICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXSA9IG5ld0xhc3RFdmVudDsKLQotICAgIHJldHVybiB7b2s6IHRydWUsCi0gICAgICBsaW5lczogcHJvZHVjZV9yZXN1bHQgPyBldmVudHMgOiB1bmRlZmluZWQsCi0gICAgICBldmVudHNfYmVnaW5fYXRfbGluZTogZXZlbnRzX2JlZ2luX2F0X2xpbmV9OwotICB9OwotCi0gIExpbnV4UGVyZkltcG9ydGVyLl9leHRyYWN0RXZlbnRzRnJvbVN5c3RyYWNlTXVsdGlIVE1MID0gZnVuY3Rpb24oCi0gICAgICBpbmNvbWluZ19ldmVudHMsIHByb2R1Y2VfcmVzdWx0KSB7Ci0gICAgdmFyIGZhaWx1cmUgPSB7b2s6IGZhbHNlfTsKLSAgICBpZiAocHJvZHVjZV9yZXN1bHQgPT09IHVuZGVmaW5lZCkKLSAgICAgIHByb2R1Y2VfcmVzdWx0ID0gdHJ1ZTsKLQotICAgIGlmICgvXjwhRE9DVFlQRSBIVE1MPi8udGVzdChpbmNvbWluZ19ldmVudHMpID09IGZhbHNlKQotICAgICAgcmV0dXJuIGZhaWx1cmU7Ci0gICAgdmFyIHIgPSBuZXcgdHIuaW1wb3J0ZXIuU2ltcGxlTGluZVJlYWRlcihpbmNvbWluZ19ldmVudHMpOwotCi0gICAgLy8gVHJ5IHRvIGZpbmQgdGhlIExpbnV4IHBlcmYgdHJhY2UgaW4gYW55IG9mIHRoZSB0cmFjZS1kYXRhIHRhZ3MKLSAgICB2YXIgZXZlbnRzID0gW107Ci0gICAgd2hpbGUgKCEvXiMgdHJhY2VyOi8udGVzdChldmVudHMpKSB7Ci0gICAgICBpZiAoIXIuYWR2YW5jZVRvTGluZU1hdGNoaW5nKAotICAgICAgICAgIC9eICA8c2NyaXB0IGNsYXNzPSJ0cmFjZS1kYXRhIiB0eXBlPSJhcHBsaWNhdGlvblwvdGV4dCI+JC8pKQotICAgICAgICByZXR1cm4gZmFpbHVyZTsKLQotICAgICAgdmFyIGV2ZW50c19iZWdpbl9hdF9saW5lID0gci5jdXJMaW5lTnVtYmVyICsgMTsKLQotICAgICAgci5iZWdpblNhdmluZ0xpbmVzKCk7Ci0gICAgICBpZiAoIXIuYWR2YW5jZVRvTGluZU1hdGNoaW5nKC9eICA8XC9zY3JpcHQ+JC8pKQotICAgICAgICByZXR1cm4gZmFpbHVyZTsKLQotICAgICAgZXZlbnRzID0gci5lbmRTYXZpbmdMaW5lc0FuZEdldFJlc3VsdCgpOwotCi0gICAgICAvLyBEcm9wIG9mZiBmaXJzdCBhbmQgbGFzdCBldmVudCBhcyBpdCBjb250YWlucyB0aGUgdGFnLgotICAgICAgZXZlbnRzID0gZXZlbnRzLnNsaWNlKDEsIGV2ZW50cy5sZW5ndGggLSAxKTsKLSAgICB9Ci0KLSAgICBpZiAoIXIuYWR2YW5jZVRvTGluZU1hdGNoaW5nKC9ePFwvYm9keT4kLykpCi0gICAgICByZXR1cm4gZmFpbHVyZTsKLSAgICBpZiAoIXIuYWR2YW5jZVRvTGluZU1hdGNoaW5nKC9ePFwvaHRtbD4kLykpCi0gICAgICByZXR1cm4gZmFpbHVyZTsKLQotICAgIHJldHVybiB7b2s6IHRydWUsCi0gICAgICBsaW5lczogcHJvZHVjZV9yZXN1bHQgPyBldmVudHMgOiB1bmRlZmluZWQsCi0gICAgICBldmVudHNfYmVnaW5fYXRfbGluZTogZXZlbnRzX2JlZ2luX2F0X2xpbmV9OwotICB9OwotCi0gIExpbnV4UGVyZkltcG9ydGVyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEltcG9ydGVyLnByb3RvdHlwZSwKLQotICAgIGdldCBtb2RlbCgpIHsKLSAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUHJlY29tcHV0ZXMgYSBsb29rdXAgdGFibGUgZnJvbSBsaW51eCBwaWRzIGJhY2sgdG8gZXhpc3RpbmcKLSAgICAgKiBUaHJlYWRzLiBUaGlzIGlzIHVzZWQgZHVyaW5nIGltcG9ydGluZyB0byBhZGQgaW5mb3JtYXRpb24gdG8gZWFjaAotICAgICAqIHRocmVhZCBhYm91dCB3aGV0aGVyIGl0IHdhcyBydW5uaW5nLCBkZXNjaGVkdWxlZCwgc2xlZXBpbmcsIGV0Ci0gICAgICogY2V0ZXJhLgotICAgICAqLwotICAgIGJ1aWxkTWFwRnJvbUxpbnV4UGlkc1RvVGhyZWFkczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnRocmVhZHNCeUxpbnV4UGlkID0ge307Ci0gICAgICB0aGlzLm1vZGVsXy5nZXRBbGxUaHJlYWRzKCkuZm9yRWFjaCgKLSAgICAgICAgICBmdW5jdGlvbih0aHJlYWQpIHsKLSAgICAgICAgICAgIHRoaXMudGhyZWFkc0J5TGludXhQaWRbdGhyZWFkLnRpZF0gPSB0aHJlYWQ7Ci0gICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7Q3B1fSBBIENwdSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBjcHVOdW1iZXIuCi0gICAgICovCi0gICAgZ2V0T3JDcmVhdGVDcHU6IGZ1bmN0aW9uKGNwdU51bWJlcikgewotICAgICAgcmV0dXJuIHRoaXMubW9kZWxfLmtlcm5lbC5nZXRPckNyZWF0ZUNwdShjcHVOdW1iZXIpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtUaW1lbGluZVRocmVhZH0gQSB0aHJlYWQgY29ycmVzcG9uZGluZyB0byB0aGUga2VybmVsVGhyZWFkTmFtZS4KLSAgICAgKi8KLSAgICBnZXRPckNyZWF0ZUtlcm5lbFRocmVhZDogZnVuY3Rpb24oa2VybmVsVGhyZWFkTmFtZSwgcGlkLCB0aWQpIHsKLSAgICAgIGlmICghdGhpcy5rZXJuZWxUaHJlYWRTdGF0ZXNfW2tlcm5lbFRocmVhZE5hbWVdKSB7Ci0gICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocGlkKS5nZXRPckNyZWF0ZVRocmVhZCh0aWQpOwotICAgICAgICB0aHJlYWQubmFtZSA9IGtlcm5lbFRocmVhZE5hbWU7Ci0gICAgICAgIHRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXJuZWxUaHJlYWROYW1lXSA9IHsKLSAgICAgICAgICBwaWQ6IHBpZCwKLSAgICAgICAgICB0aHJlYWQ6IHRocmVhZCwKLSAgICAgICAgICBvcGVuU2xpY2U6IHVuZGVmaW5lZCwKLSAgICAgICAgICBvcGVuU2xpY2VUUzogdW5kZWZpbmVkCi0gICAgICAgIH07Ci0gICAgICAgIHRoaXMudGhyZWFkc0J5TGludXhQaWRbcGlkXSA9IHRocmVhZDsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLmtlcm5lbFRocmVhZFN0YXRlc19ba2VybmVsVGhyZWFkTmFtZV07Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge1RpbWVsaW5lVGhyZWFkfSBBIHBzZXVkbyB0aHJlYWQgY29ycmVzcG9uZGluZyB0byB0aGUKLSAgICAgKiB0aHJlYWROYW1lLiAgUHNldWRvIHRocmVhZHMgYXJlIGZvciBldmVudHMgdGhhdCB3ZSB3YW50IHRvIGJyZWFrCi0gICAgICogb3V0IHRvIGEgc2VwYXJhdGUgdGltZWxpbmUgYnV0IHdvdWxkIG5vdCBvdGhlcndpc2UgaGFwcGVuLgotICAgICAqIFRoZXNlIHRocmVhZHMgYXJlIGFzc2lnbmVkIHRvIHBzZXVkb0tlcm5lbFBJRCBhbmQgZ2l2ZW4gYQotICAgICAqIHVuaXF1ZSAoaW5jcmVtZW50aW5nKSBUSUQuCi0gICAgICovCi0gICAgZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQ6IGZ1bmN0aW9uKHRocmVhZE5hbWUpIHsKLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmtlcm5lbFRocmVhZFN0YXRlc19bdGhyZWFkTmFtZV07Ci0gICAgICBpZiAoIXRocmVhZCkgewotICAgICAgICB0aHJlYWQgPSB0aGlzLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKHRocmVhZE5hbWUsIHBzZXVkb0tlcm5lbFBJRCwKLSAgICAgICAgICAgIHRoaXMucHNldWRvVGhyZWFkQ291bnRlcik7Ci0gICAgICAgIHRoaXMucHNldWRvVGhyZWFkQ291bnRlcisrOwotICAgICAgfQotICAgICAgcmV0dXJuIHRocmVhZDsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSW1wb3J0cyB0aGUgZGF0YSBpbiB0aGlzLmV2ZW50c18gaW50byBtb2RlbF8uCi0gICAgICovCi0gICAgaW1wb3J0RXZlbnRzOiBmdW5jdGlvbihpc1NlY29uZGFyeUltcG9ydCkgewotICAgICAgdGhpcy5wYXJzZXJzXyA9IHRoaXMuY3JlYXRlUGFyc2Vyc18oKTsKLSAgICAgIHRoaXMucmVnaXN0ZXJEZWZhdWx0SGFuZGxlcnNfKCk7Ci0gICAgICB0aGlzLnBhcnNlTGluZXMoKTsKLSAgICAgIHRoaXMuaW1wb3J0Q2xvY2tTeW5jUmVjb3JkcygpOwotICAgICAgdmFyIHRpbWVTaGlmdCA9IHRoaXMuY29tcHV0ZVRpbWVUcmFuc2Zvcm0oKTsKLSAgICAgIGlmICh0aW1lU2hpZnQgPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnY2xvY2tfc3luYycsCi0gICAgICAgICAgbWVzc2FnZTogJ0Nhbm5vdCBpbXBvcnQga2VybmVsIHRyYWNlIHdpdGhvdXQgYSBjbG9jayBzeW5jLicKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIHRoaXMuc2hpZnROZXdseUFkZGVkQ2xvY2tTeW5jUmVjb3Jkcyh0aW1lU2hpZnQpOwotICAgICAgdGhpcy5pbXBvcnRDcHVEYXRhKHRpbWVTaGlmdCk7Ci0gICAgICB0aGlzLmJ1aWxkTWFwRnJvbUxpbnV4UGlkc1RvVGhyZWFkcygpOwotICAgICAgdGhpcy5idWlsZFBlclRocmVhZENwdVNsaWNlc0Zyb21DcHVTdGF0ZSgpOwotICAgICAgdGhpcy5jb21wdXRlQ3B1VGltZXN0YW1wc0ZvclNsaWNlc0FzTmVlZGVkKCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEJ1aWxkcyB0aGUgdGltZVNsaWNlcyBhcnJheSBvbiBlYWNoIHRocmVhZCBiYXNlZCBvbiBvdXIga25vd2xlZGdlIG9mIHdoYXQKLSAgICAgKiBlYWNoIENwdSBpcyBkb2luZy4gIFRoaXMgaXMgZG9uZSBvbmx5IGZvciBUaHJlYWRzIHRoYXQgYXJlCi0gICAgICogYWxyZWFkeSBpbiB0aGUgbW9kZWwsIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgbm90IGhhdmluZyBhbnkgdHJhY2VkIGRhdGEKLSAgICAgKiBvbiBhIHRocmVhZCBtZWFucyB0aGF0IGl0IGlzIG5vdCBvZiBpbnRlcmVzdCB0byB0aGUgdXNlci4KLSAgICAgKi8KLSAgICBidWlsZFBlclRocmVhZENwdVNsaWNlc0Zyb21DcHVTdGF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgU0NIRURVTElOR19TVEFURSA9IHRyLm1vZGVsLlNDSEVEVUxJTkdfU1RBVEU7Ci0KLSAgICAgIC8vIFB1c2ggdGhlIGNwdSBzbGljZXMgdG8gdGhlIHRocmVhZHMgdGhhdCB0aGV5IHJ1biBvbi4KLSAgICAgIGZvciAodmFyIGNwdU51bWJlciBpbiB0aGlzLm1vZGVsXy5rZXJuZWwuY3B1cykgewotICAgICAgICB2YXIgY3B1ID0gdGhpcy5tb2RlbF8ua2VybmVsLmNwdXNbY3B1TnVtYmVyXTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNwdS5zbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgY3B1U2xpY2UgPSBjcHUuc2xpY2VzW2ldOwotCi0gICAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMudGhyZWFkc0J5TGludXhQaWRbY3B1U2xpY2UuYXJncy50aWRdOwotICAgICAgICAgIGlmICghdGhyZWFkKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICBjcHVTbGljZS50aHJlYWRUaGF0V2FzUnVubmluZyA9IHRocmVhZDsKLQotICAgICAgICAgIGlmICghdGhyZWFkLnRlbXBDcHVTbGljZXMpCi0gICAgICAgICAgICB0aHJlYWQudGVtcENwdVNsaWNlcyA9IFtdOwotICAgICAgICAgIHRocmVhZC50ZW1wQ3B1U2xpY2VzLnB1c2goY3B1U2xpY2UpOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGZvciAodmFyIGkgaW4gdGhpcy53YWtldXBzXykgewotICAgICAgICB2YXIgd2FrZXVwID0gdGhpcy53YWtldXBzX1tpXTsKLSAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMudGhyZWFkc0J5TGludXhQaWRbd2FrZXVwLnRpZF07Ci0gICAgICAgIGlmICghdGhyZWFkKQotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB0aHJlYWQudGVtcFdha2V1cHMgPSB0aHJlYWQudGVtcFdha2V1cHMgfHwgW107Ci0gICAgICAgIHRocmVhZC50ZW1wV2FrZXVwcy5wdXNoKHdha2V1cCk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIENyZWF0ZSBzbGljZXMgZm9yIHdoZW4gdGhlIHRocmVhZCBpcyBub3QgcnVubmluZy4KLSAgICAgIHRoaXMubW9kZWxfLmdldEFsbFRocmVhZHMoKS5mb3JFYWNoKGZ1bmN0aW9uKHRocmVhZCkgewotICAgICAgICBpZiAodGhyZWFkLnRlbXBDcHVTbGljZXMgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciBvcmlnU2xpY2VzID0gdGhyZWFkLnRlbXBDcHVTbGljZXM7Ci0gICAgICAgIGRlbGV0ZSB0aHJlYWQudGVtcENwdVNsaWNlczsKLQotICAgICAgICBvcmlnU2xpY2VzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICAgIHJldHVybiB4LnN0YXJ0IC0geS5zdGFydDsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgdmFyIHdha2V1cHMgPSB0aHJlYWQudGVtcFdha2V1cHMgfHwgW107Ci0gICAgICAgIGRlbGV0ZSB0aHJlYWQudGVtcFdha2V1cHM7Ci0gICAgICAgIHdha2V1cHMuc29ydChmdW5jdGlvbih4LCB5KSB7Ci0gICAgICAgICAgcmV0dXJuIHgudHMgLSB5LnRzOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyBXYWxrIHRoZSBzbGljZSBsaXN0IGFuZCBwdXQgc2xpY2VzIGJldHdlZW4gZWFjaCBvcmlnaW5hbCBzbGljZSB0bwotICAgICAgICAvLyBzaG93IHdoZW4gdGhlIHRocmVhZCBpc24ndCBydW5uaW5nLgotICAgICAgICB2YXIgc2xpY2VzID0gW107Ci0KLSAgICAgICAgaWYgKG9yaWdTbGljZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgdmFyIHNsaWNlID0gb3JpZ1NsaWNlc1swXTsKLQotICAgICAgICAgIGlmICh3YWtldXBzLmxlbmd0aCAmJiB3YWtldXBzWzBdLnRzIDwgc2xpY2Uuc3RhcnQpIHsKLSAgICAgICAgICAgIHZhciB3YWtldXAgPSB3YWtldXBzLnNoaWZ0KCk7Ci0gICAgICAgICAgICB2YXIgd2FrZXVwRHVyYXRpb24gPSBzbGljZS5zdGFydCAtIHdha2V1cC50czsKLSAgICAgICAgICAgIHZhciBhcmdzID0geyd3YWtldXAgZnJvbSB0aWQnOiB3YWtldXAuZnJvbVRpZH07Ci0gICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAotICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5SVU5OQUJMRSwgJycsCi0gICAgICAgICAgICAgICAgd2FrZXVwLnRzLCBhcmdzLCB3YWtldXBEdXJhdGlvbikpOwotICAgICAgICAgIH0KLQotICAgICAgICAgIHZhciBydW5uaW5nU2xpY2UgPSBuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAotICAgICAgICAgICAgICB0aHJlYWQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgJycsCi0gICAgICAgICAgICAgIHNsaWNlLnN0YXJ0LCB7fSwgc2xpY2UuZHVyYXRpb24pOwotICAgICAgICAgIHJ1bm5pbmdTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZyA9IHNsaWNlLmNwdTsKLSAgICAgICAgICBzbGljZXMucHVzaChydW5uaW5nU2xpY2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHdha2V1cCA9IHVuZGVmaW5lZDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBvcmlnU2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHByZXZTbGljZSA9IG9yaWdTbGljZXNbaSAtIDFdOwotICAgICAgICAgIHZhciBuZXh0U2xpY2UgPSBvcmlnU2xpY2VzW2ldOwotICAgICAgICAgIHZhciBtaWREdXJhdGlvbiA9IG5leHRTbGljZS5zdGFydCAtIHByZXZTbGljZS5lbmQ7Ci0gICAgICAgICAgd2hpbGUgKHdha2V1cHMubGVuZ3RoICYmIHdha2V1cHNbMF0udHMgPCBuZXh0U2xpY2Uuc3RhcnQpIHsKLSAgICAgICAgICAgIHZhciB3ID0gd2FrZXVwcy5zaGlmdCgpOwotICAgICAgICAgICAgaWYgKHdha2V1cCA9PT0gdW5kZWZpbmVkICYmIHcudHMgPiBwcmV2U2xpY2UuZW5kKSB7Ci0gICAgICAgICAgICAgIHdha2V1cCA9IHc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gUHVzaCBhIHNsZWVwIHNsaWNlIG9udG8gdGhlIHNsaWNlcyBsaXN0LCBpbnRlcnJ1cHRpbmcgaXQgd2l0aCBhCi0gICAgICAgICAgLy8gd2FrZXVwIGlmIGFwcHJvcHJpYXRlLgotICAgICAgICAgIHZhciBwdXNoU2xlZXAgPSBmdW5jdGlvbihzdGF0ZSkgewotICAgICAgICAgICAgaWYgKHdha2V1cCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgIG1pZER1cmF0aW9uID0gd2FrZXVwLnRzIC0gcHJldlNsaWNlLmVuZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLAotICAgICAgICAgICAgICAgIHN0YXRlLCAnJywgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7Ci0gICAgICAgICAgICBpZiAod2FrZXVwICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgdmFyIHdha2V1cER1cmF0aW9uID0gbmV4dFNsaWNlLnN0YXJ0IC0gd2FrZXVwLnRzOwotICAgICAgICAgICAgICB2YXIgYXJncyA9IHsnd2FrZXVwIGZyb20gdGlkJzogd2FrZXVwLmZyb21UaWR9OwotICAgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAotICAgICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5BQkxFLCAnJywKLSAgICAgICAgICAgICAgICAgIHdha2V1cC50cywgYXJncywgd2FrZXVwRHVyYXRpb24pKTsKLSAgICAgICAgICAgICAgd2FrZXVwID0gdW5kZWZpbmVkOwotICAgICAgICAgICAgfQotICAgICAgICAgIH07Ci0KLSAgICAgICAgICBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ1MnKSB7Ci0gICAgICAgICAgICBwdXNoU2xlZXAoU0NIRURVTElOR19TVEFURS5TTEVFUElORyk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnUicgfHwKLSAgICAgICAgICAgICAgICAgICAgIHByZXZTbGljZS5hcmdzLnN0YXRlV2hlbkRlc2NoZWR1bGVkID09ICdSKycpIHsKLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5BQkxFLCAnJywKLSAgICAgICAgICAgICAgICBwcmV2U2xpY2UuZW5kLCB7fSwgbWlkRHVyYXRpb24pKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKHByZXZTbGljZS5hcmdzLnN0YXRlV2hlbkRlc2NoZWR1bGVkID09ICdEJykgewotICAgICAgICAgICAgcHVzaFNsZWVwKFNDSEVEVUxJTkdfU1RBVEUuVU5JTlRSX1NMRUVQKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKHByZXZTbGljZS5hcmdzLnN0YXRlV2hlbkRlc2NoZWR1bGVkID09ICdUJykgewotICAgICAgICAgICAgc2xpY2VzLnB1c2gobmV3IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSgKLSAgICAgICAgICAgICAgICB0aHJlYWQsIFNDSEVEVUxJTkdfU1RBVEUuU1RPUFBFRCwgJycsCi0gICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAndCcpIHsKLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLkRFQlVHLCAnJywKLSAgICAgICAgICAgICAgICBwcmV2U2xpY2UuZW5kLCB7fSwgbWlkRHVyYXRpb24pKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKHByZXZTbGljZS5hcmdzLnN0YXRlV2hlbkRlc2NoZWR1bGVkID09ICdaJykgewotICAgICAgICAgICAgc2xpY2VzLnB1c2gobmV3IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSgKLSAgICAgICAgICAgICAgICB0aHJlYWQsIFNDSEVEVUxJTkdfU1RBVEUuWk9NQklFLCAnJywgaW9XYWl0SWQsCi0gICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnWCcpIHsKLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLkVYSVRfREVBRCwgJycsCi0gICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAneCcpIHsKLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlRBU0tfREVBRCwgJycsCi0gICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnSycpIHsKLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLldBS0VfS0lMTCwgJycsCi0gICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnVycpIHsKLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLldBS0lORywgJycsCi0gICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnRHxLJykgewotICAgICAgICAgICAgcHVzaFNsZWVwKFNDSEVEVUxJTkdfU1RBVEUuVU5JTlRSX1NMRUVQX1dBS0VfS0lMTCk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnRHxXJykgewotICAgICAgICAgICAgcHVzaFNsZWVwKFNDSEVEVUxJTkdfU1RBVEUuVU5JTlRSX1NMRUVQX1dBS0lORyk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCi0gICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlVOS05PV04sICcnLAotICAgICAgICAgICAgICAgIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOwotICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdVbnJlY29nbml6ZWQgc2xlZXAgc3RhdGU6ICcgKwotICAgICAgICAgICAgICAgICAgcHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0KLQotICAgICAgICAgIHZhciBydW5uaW5nU2xpY2UgPSBuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAotICAgICAgICAgICAgICB0aHJlYWQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgJycsCi0gICAgICAgICAgICAgIG5leHRTbGljZS5zdGFydCwge30sIG5leHRTbGljZS5kdXJhdGlvbik7Ci0gICAgICAgICAgcnVubmluZ1NsaWNlLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nID0gcHJldlNsaWNlLmNwdTsKLSAgICAgICAgICBzbGljZXMucHVzaChydW5uaW5nU2xpY2UpOwotICAgICAgICB9Ci0gICAgICAgIHRocmVhZC50aW1lU2xpY2VzID0gc2xpY2VzOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIGNvbXB1dGVDcHVUaW1lc3RhbXBzRm9yU2xpY2VzQXNOZWVkZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgLyogaXRlcmF0ZSBhbGwgc2xpY2VzIGFuZCB0cnkgdG8gZmlndXJlIG91dCBjcHVTdGFydC9lbmRUaW1lcyAqLwotCi0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENvbXB1dGVzIGEgdGltZSB0cmFuc2Zvcm0gZnJvbSBwZXJmIHRpbWUgdG8gcGFyZW50IHRpbWUgYmFzZWQgb24gdGhlCi0gICAgICogaW1wb3J0ZWQgY2xvY2sgc3luYyByZWNvcmRzLgotICAgICAqIEByZXR1cm4ge251bWJlcn0gb2Zmc2V0IGZyb20gcGVyZiB0aW1lIHRvIHBhcmVudCB0aW1lIG9yIHVuZGVmaW5lZCBpZgotICAgICAqIHRoZSBuZWNlc3Nhcnkgc3luYyByZWNvcmRzIHdlcmUgbm90IGZvdW5kLgotICAgICAqLwotICAgIGNvbXB1dGVUaW1lVHJhbnNmb3JtOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBpc1NlY29uZGFyeUltcG9ydCA9IHRoaXMubW9kZWwuZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkKAotICAgICAgICAgICdmdHJhY2VfaW1wb3J0ZXInKS5sZW5ndGggIT09IDA7Ci0KLSAgICAgIHZhciBtU3luY3MgPSB0aGlzLm1vZGVsXy5nZXRDbG9ja1N5bmNSZWNvcmRzTmFtZWQoJ21vbm90b25pYycpOwotICAgICAgLy8gSWYgdGhpcyBpcyBhIHNlY29uZGFyeSBpbXBvcnQsIGFuZCBubyBjbG9jayBzeW5jaW5nIHJlY29yZHMgd2VyZQotICAgICAgLy8gZm91bmQsIHRoZW4gYWJvcnQgdGhlIGltcG9ydC4gT3RoZXJ3aXNlLCBqdXN0IHNraXAgY2xvY2sgYWxpZ25tZW50LgotICAgICAgaWYgKG1TeW5jcy5sZW5ndGggPT0gMCkKLSAgICAgICAgcmV0dXJuIGlzU2Vjb25kYXJ5SW1wb3J0ID8gdW5kZWZpbmVkIDogMDsKLQotICAgICAgLy8gU2hpZnQgYWxsIHRoZSBzbGljZSB0aW1lcyBiYXNlZCBvbiB0aGUgc3luYyByZWNvcmQuCi0gICAgICAvLyBUT0RPKHNreW9zdGlsKTogQ29tcHV0ZSBhIHNjYWxpbmcgZmFjdG9yIGlmIHdlIGhhdmUgbXVsdGlwbGUgY2xvY2sgc3luYwotICAgICAgLy8gcmVjb3Jkcy4KLSAgICAgIHZhciBzeW5jID0gbVN5bmNzWzBdLmFyZ3M7Ci0gICAgICAvLyBOQjogcGFyZW50VFMgb2YgemVybyBkZW5vdGVzIG5vIHRpbWVzLXNoaWZ0OyB0aGlzIGlzCi0gICAgICAvLyB1c2VkIHdoZW4gdXNlciBhbmQga2VybmVsIGV2ZW50IGNsb2NrcyBhcmUgaWRlbnRpY2FsLgotICAgICAgaWYgKHN5bmMucGFyZW50VFMgPT0gMCB8fCBzeW5jLnBhcmVudFRTID09IHN5bmMucGVyZlRTKQotICAgICAgICByZXR1cm4gMDsKLSAgICAgIHJldHVybiBzeW5jLnBhcmVudFRTIC0gc3luYy5wZXJmVFM7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgZWFjaCByZWdpc3RlcmVkIGxpbnV4IHBlcmYgZXZlbnQgcGFyc2VyLgotICAgICAqIFRoaXMgYWxsb3dzIHRoZSBwYXJzZXJzIHRvIHJlZ2lzdGVyIGhhbmRsZXJzIGZvciB0aGUgZXZlbnRzIHRoZXkKLSAgICAgKiB1bmRlcnN0YW5kLiAgV2UgYWxzbyByZWdpc3RlciBvdXIgb3duIHNwZWNpYWwgaGFuZGxlcnMgKGZvciB0aGUKLSAgICAgKiB0aW1lc3RhbXAgc3luY2hyb25pemF0aW9uIG1hcmtlcnMpLgotICAgICAqLwotICAgIGNyZWF0ZVBhcnNlcnNfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIEluc3RhbnRpYXRlIHRoZSBwYXJzZXJzOyB0aGlzIHdpbGwgcmVnaXN0ZXIgaGFuZGxlcnMgZm9yIGtub3duIGV2ZW50cwotICAgICAgdmFyIGFsbFR5cGVJbmZvcyA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi4KLSAgICAgICAgICBQYXJzZXIuZ2V0QWxsUmVnaXN0ZXJlZFR5cGVJbmZvcygpOwotICAgICAgdmFyIHBhcnNlcnMgPSBhbGxUeXBlSW5mb3MubWFwKAotICAgICAgICAgIGZ1bmN0aW9uKHR5cGVJbmZvKSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IHR5cGVJbmZvLmNvbnN0cnVjdG9yKHRoaXMpOwotICAgICAgICAgIH0sIHRoaXMpOwotCi0gICAgICByZXR1cm4gcGFyc2VyczsKLSAgICB9LAotCi0gICAgcmVnaXN0ZXJEZWZhdWx0SGFuZGxlcnNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3RyYWNpbmdfbWFya193cml0ZScsCi0gICAgICAgICAgTGludXhQZXJmSW1wb3J0ZXIucHJvdG90eXBlLnRyYWNlTWFya2luZ1dyaXRlRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgICAvLyBOQjogb2xkLXN0eWxlIHRyYWNlIG1hcmtlcnM7IGRlcHJlY2F0ZWQKLSAgICAgIHRoaXMucmVnaXN0ZXJFdmVudEhhbmRsZXIoJzAnLAotICAgICAgICAgIExpbnV4UGVyZkltcG9ydGVyLnByb3RvdHlwZS50cmFjZU1hcmtpbmdXcml0ZUV2ZW50LmJpbmQodGhpcykpOwotICAgICAgLy8gUmVnaXN0ZXIgZHVtbXkgY2xvY2sgc3luYyBoYW5kbGVycyB0byBhdm9pZCB3YXJuaW5ncyBpbiB0aGUgbG9nLgotICAgICAgdGhpcy5yZWdpc3RlckV2ZW50SGFuZGxlcigndHJhY2luZ19tYXJrX3dyaXRlOnRyYWNlX2V2ZW50X2Nsb2NrX3N5bmMnLAotICAgICAgICAgIGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfSk7Ci0gICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCcwOnRyYWNlX2V2ZW50X2Nsb2NrX3N5bmMnLAotICAgICAgICAgIGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFJlZ2lzdGVycyBhIGxpbnV4IHBlcmYgZXZlbnQgcGFyc2VyIHVzZWQgYnkgaW1wb3J0Q3B1RGF0YS4KLSAgICAgKi8KLSAgICByZWdpc3RlckV2ZW50SGFuZGxlcjogZnVuY3Rpb24oZXZlbnROYW1lLCBoYW5kbGVyKSB7Ci0gICAgICAvLyBUT0RPKHNsZWZmbGVyKSBob3cgdG8gaGFuZGxlIGNvbmZsaWN0cz8KLSAgICAgIHRoaXMuZXZlbnRIYW5kbGVyc19bZXZlbnROYW1lXSA9IGhhbmRsZXI7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFJlY29yZHMgdGhlIGZhY3QgdGhhdCBhIHBpZCBoYXMgYmVjb21lIHJ1bm5hYmxlLiBUaGlzIGRhdGEgd2lsbAotICAgICAqIGV2ZW50dWFsbHkgZ2V0IHVzZWQgdG8gZGVyaXZlIGVhY2ggdGhyZWFkJ3MgdGltZVNsaWNlcyBhcnJheS4KLSAgICAgKi8KLSAgICBtYXJrUGlkUnVubmFibGU6IGZ1bmN0aW9uKHRzLCBwaWQsIGNvbW0sIHByaW8sIGZyb21QaWQpIHsKLSAgICAgIC8vIFRoZSB0aGUgcGlkcyB0aGF0IGdldCBwYXNzZWQgaW4gdG8gdGhpcyBmdW5jdGlvbiBhcmUgTGludXgga2VybmVsCi0gICAgICAvLyBwaWRzLCB3aGljaCBpZGVudGlmeSB0aHJlYWRzLiAgVGhlIHJlc3Qgb2YgdHJhY2Utdmlld2VyIHJlZmVycyB0bwotICAgICAgLy8gdGhlc2UgYXMgdGlkcywgc28gdGhlIGNoYW5nZSBvZiBub21lbmNsYXR1cmUgaGFwcGVucyBpbiB0aGUgZm9sbG93aW5nCi0gICAgICAvLyBjb25zdHJ1Y3Rpb24gb2YgdGhlIHdha2V1cCBvYmplY3QuCi0gICAgICB0aGlzLndha2V1cHNfLnB1c2goe3RzOiB0cywgdGlkOiBwaWQsIGZyb21UaWQ6IGZyb21QaWR9KTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUHJvY2Vzc2VzIGEgdHJhY2VfZXZlbnRfY2xvY2tfc3luYyBldmVudC4KLSAgICAgKi8KLSAgICB0cmFjZUNsb2NrU3luY0V2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICAvLyBDaGVjayBmb3IgbmV3LXN0eWxlIGNsb2NrIHN5bmMgcmVjb3Jkcy4KLSAgICAgIHZhciBldmVudCA9IC9uYW1lPShcdys/KVxzKC4rKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoZXZlbnQpIHsKLSAgICAgICAgdmFyIG5hbWUgPSBldmVudFsxXTsKLSAgICAgICAgdmFyIHBpZWNlcyA9IGV2ZW50WzJdLnNwbGl0KCcgJyk7Ci0gICAgICAgIHZhciBhcmdzID0gewotICAgICAgICAgIHBlcmZUUzogdHMKLSAgICAgICAgfTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwaWVjZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgcGFydHMgPSBwaWVjZXNbaV0uc3BsaXQoJz0nKTsKLSAgICAgICAgICBpZiAocGFydHMubGVuZ3RoICE9IDIpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ29tZ2JicScpOwotICAgICAgICAgIGFyZ3NbcGFydHNbMF1dID0gcGFydHNbMV07Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5hZGRDbG9ja1N5bmNSZWNvcmQobmV3IENsb2NrU3luY1JlY29yZChuYW1lLCB0cywgYXJncykpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0KLQotICAgICAgLy8gT2xkLXN0eWxlIGNsb2NrIHN5bmMgcmVjb3JkcyBmcm9tIGNocm9taXVtCi0gICAgICBldmVudCA9IC9wYXJlbnRfdHM9KFxkK1wuP1xkKikvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB0aGlzLmFkZENsb2NrU3luY1JlY29yZChuZXcgQ2xvY2tTeW5jUmVjb3JkKCdtb25vdG9uaWMnLCB0cywgewotICAgICAgICBwZXJmVFM6IHRzLAotICAgICAgICBwYXJlbnRUUzogZXZlbnRbMV0gKiAxMDAwCi0gICAgICB9KSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUHJvY2Vzc2VzIGEgdHJhY2VfbWFya2luZ193cml0ZSBldmVudC4KLSAgICAgKi8KLSAgICB0cmFjZU1hcmtpbmdXcml0ZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZE5hbWUpIHsKLQotICAgICAgLy8gU29tZSBwcm9maWxlcyBlbmQgdXAgd2l0aCBhIFxuXCBvbiB0aGUgZW5kIG9mIGVhY2ggbGluZS4gU3RyaXAgaXQKLSAgICAgIC8vIGJlZm9yZSB3ZSBkbyB0aGUgY29tcGFyaXNvbnMuCi0gICAgICBldmVudEJhc2UuZGV0YWlscyA9IGV2ZW50QmFzZS5kZXRhaWxzLnJlcGxhY2UoL1xcbi4qJC8sICcnKTsKLQotICAgICAgdmFyIGV2ZW50ID0gL15ccyooXHcrKTpccyooLiopJC8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KSB7Ci0gICAgICAgIC8vIENoZWNrIGlmIHRoZSBldmVudCBtYXRjaGVzIGV2ZW50cyB0cmFjZWQgYnkgdGhlIEFuZHJvaWQgZnJhbWV3b3JrCi0gICAgICAgIHZhciB0YWcgPSBldmVudEJhc2UuZGV0YWlscy5zdWJzdHJpbmcoMCwgMik7Ci0gICAgICAgIGlmICh0YWcgPT0gJ0J8JyB8fCB0YWcgPT0gJ0UnIHx8IHRhZyA9PSAnRXwnIHx8IHRhZyA9PSAnWHwnIHx8Ci0gICAgICAgICAgICB0YWcgPT0gJ0N8JyB8fCB0YWcgPT0gJ1N8JyB8fCB0YWcgPT0gJ0Z8JykgewotICAgICAgICAgIGV2ZW50QmFzZS5zdWJFdmVudE5hbWUgPSAnYW5kcm9pZCc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBldmVudEJhc2Uuc3ViRXZlbnROYW1lID0gZXZlbnRbMV07Ci0gICAgICAgIGV2ZW50QmFzZS5kZXRhaWxzID0gZXZlbnRbMl07Ci0gICAgICB9Ci0KLSAgICAgIHZhciB3cml0ZUV2ZW50TmFtZSA9IGV2ZW50TmFtZSArICc6JyArIGV2ZW50QmFzZS5zdWJFdmVudE5hbWU7Ci0gICAgICB2YXIgaGFuZGxlciA9IHRoaXMuZXZlbnRIYW5kbGVyc19bd3JpdGVFdmVudE5hbWVdOwotICAgICAgaWYgKCFoYW5kbGVyKSB7Ci0gICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCi0gICAgICAgICAgbWVzc2FnZTogJ1Vua25vd24gdHJhY2VfbWFya2luZ193cml0ZSBldmVudCAnICsgd3JpdGVFdmVudE5hbWUKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgICAgfQotICAgICAgcmV0dXJuIGhhbmRsZXIod3JpdGVFdmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlLCB0aHJlYWROYW1lKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUG9wdWxhdGVzIG1vZGVsIGNsb2NrU3luY1JlY29yZHMgd2l0aCBmb3VuZCBjbG9jayBzeW5jIG1hcmtlcnMuCi0gICAgICovCi0gICAgaW1wb3J0Q2xvY2tTeW5jUmVjb3JkczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmZvckVhY2hMaW5lKGZ1bmN0aW9uKHRleHQsIGV2ZW50QmFzZSwgY3B1TnVtYmVyLCBwaWQsIHRzKSB7Ci0gICAgICAgIHZhciBldmVudE5hbWUgPSBldmVudEJhc2UuZXZlbnROYW1lOwotICAgICAgICBpZiAoZXZlbnROYW1lICE9PSAndHJhY2luZ19tYXJrX3dyaXRlJyAmJiBldmVudE5hbWUgIT09ICcwJykKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh0cmFjZUV2ZW50Q2xvY2tTeW5jUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscykpCi0gICAgICAgICAgdGhpcy50cmFjZUNsb2NrU3luY0V2ZW50KGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpOwotICAgICAgICBpZiAoZ2VuZXJpY0Nsb2NrU3luY1JFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpKQotICAgICAgICAgIHRoaXMudHJhY2VDbG9ja1N5bmNFdmVudChldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLSAgICBhZGRDbG9ja1N5bmNSZWNvcmQ6IGZ1bmN0aW9uKGNzcikgewotICAgICAgdGhpcy5uZXdseUFkZGVkQ2xvY2tTeW5jUmVjb3Jkc18ucHVzaChjc3IpOwotICAgICAgdGhpcy5tb2RlbF8uY2xvY2tTeW5jUmVjb3Jkcy5wdXNoKGNzcik7Ci0gICAgfSwKLQotICAgIHNoaWZ0TmV3bHlBZGRlZENsb2NrU3luY1JlY29yZHM6IGZ1bmN0aW9uKHRpbWVTaGlmdCkgewotICAgICAgdGhpcy5uZXdseUFkZGVkQ2xvY2tTeW5jUmVjb3Jkc18uZm9yRWFjaChmdW5jdGlvbihjc3IpIHsKLSAgICAgICAgY3NyLnRzICs9IHRpbWVTaGlmdDsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBXYWxrcyB0aGUgdGhpcy5ldmVudHNfIHN0cnVjdHVyZSBhbmQgY3JlYXRlcyBDcHUgb2JqZWN0cy4KLSAgICAgKi8KLSAgICBpbXBvcnRDcHVEYXRhOiBmdW5jdGlvbih0aW1lU2hpZnQpIHsKLSAgICAgIHRoaXMuZm9yRWFjaExpbmUoZnVuY3Rpb24odGV4dCwgZXZlbnRCYXNlLCBjcHVOdW1iZXIsIHBpZCwgdHMpIHsKLSAgICAgICAgdmFyIGV2ZW50TmFtZSA9IGV2ZW50QmFzZS5ldmVudE5hbWU7Ci0gICAgICAgIHZhciBoYW5kbGVyID0gdGhpcy5ldmVudEhhbmRsZXJzX1tldmVudE5hbWVdOwotICAgICAgICBpZiAoIWhhbmRsZXIpIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnVW5rbm93biBldmVudCAnICsgZXZlbnROYW1lICsgJyAoJyArIHRleHQgKyAnKScKLSAgICAgICAgICB9KTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdHMgKz0gdGltZVNoaWZ0OwotICAgICAgICBpZiAoIWhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkpIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnTWFsZm9ybWVkICcgKyBldmVudE5hbWUgKyAnIGV2ZW50ICgnICsgdGV4dCArICcpJwotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICB9LmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBXYWxrcyB0aGUgdGhpcy5ldmVudHNfIHN0cnVjdHVyZSBhbmQgcG9wdWxhdGVzIHRoaXMubGluZXNfLgotICAgICAqLwotICAgIHBhcnNlTGluZXM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGxpbmVzID0gW107Ci0gICAgICB2YXIgZXh0cmFjdFJlc3VsdCA9IExpbnV4UGVyZkltcG9ydGVyLl9leHRyYWN0RXZlbnRzRnJvbVN5c3RyYWNlSFRNTCgKLSAgICAgICAgICB0aGlzLmV2ZW50c18sIHRydWUpOwotICAgICAgaWYgKCFleHRyYWN0UmVzdWx0Lm9rKQotICAgICAgICBleHRyYWN0UmVzdWx0ID0gTGludXhQZXJmSW1wb3J0ZXIuX2V4dHJhY3RFdmVudHNGcm9tU3lzdHJhY2VNdWx0aUhUTUwoCi0gICAgICAgICAgICB0aGlzLmV2ZW50c18sIHRydWUpOwotICAgICAgdmFyIGxpbmVzID0gZXh0cmFjdFJlc3VsdC5vayA/Ci0gICAgICAgIGV4dHJhY3RSZXN1bHQubGluZXMgOiB0aGlzLmV2ZW50c18uc3BsaXQoJ1xuJyk7Ci0KLSAgICAgIHZhciBsaW5lUGFyc2VyID0gbnVsbDsKLSAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgPSAwOyBsaW5lTnVtYmVyIDwgbGluZXMubGVuZ3RoOyArK2xpbmVOdW1iZXIpIHsKLSAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1tsaW5lTnVtYmVyXTsKLSAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09IDAgfHwgL14jLy50ZXN0KGxpbmUpKQotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAobGluZVBhcnNlciA9PSBudWxsKSB7Ci0gICAgICAgICAgbGluZVBhcnNlciA9IGF1dG9EZXRlY3RMaW5lUGFyc2VyKGxpbmUpOwotICAgICAgICAgIGlmIChsaW5lUGFyc2VyID09IG51bGwpIHsKLSAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICBtZXNzYWdlOiAnQ2Fubm90IHBhcnNlIGxpbmU6ICcgKyBsaW5lCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB2YXIgZXZlbnRCYXNlID0gbGluZVBhcnNlcihsaW5lKTsKLSAgICAgICAgaWYgKCFldmVudEJhc2UpIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnVW5yZWNvZ25pemVkIGxpbmU6ICcgKyBsaW5lCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLmxpbmVzXy5wdXNoKFsKLSAgICAgICAgICBsaW5lLAotICAgICAgICAgIGV2ZW50QmFzZSwKLSAgICAgICAgICBwYXJzZUludChldmVudEJhc2UuY3B1TnVtYmVyKSwKLSAgICAgICAgICBwYXJzZUludChldmVudEJhc2UucGlkKSwKLSAgICAgICAgICBwYXJzZUZsb2F0KGV2ZW50QmFzZS50aW1lc3RhbXApICogMTAwMAotICAgICAgICBdKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ2FsbHMgfGhhbmRsZXJ8IGZvciBldmVyeSBwYXJzZWQgbGluZS4KLSAgICAgKi8KLSAgICBmb3JFYWNoTGluZTogZnVuY3Rpb24oaGFuZGxlcikgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxpbmVzXy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgbGluZSA9IHRoaXMubGluZXNfW2ldOwotICAgICAgICBoYW5kbGVyLmFwcGx5KHRoaXMsIGxpbmUpOwotICAgICAgfQotICAgIH0KLSAgfTsKLQotICB0ci5pbXBvcnRlci5JbXBvcnRlci5yZWdpc3RlcihMaW51eFBlcmZJbXBvcnRlcik7Ci0KLSAgcmV0dXJuIHsKLSAgICBMaW51eFBlcmZJbXBvcnRlcjogTGludXhQZXJmSW1wb3J0ZXIsCi0gICAgX0xpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHM6IFRlc3RFeHBvcnRzCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTY5ZmU0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICB2YXIgTGludXhQZXJmSW1wb3J0ZXIgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuTGludXhQZXJmSW1wb3J0ZXI7Ci0gIHZhciBMaW51eFBlcmZJbXBvcnRlclRlc3RFeHBvcnRzID0KLSAgICAgIHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5fTGludXhQZXJmSW1wb3J0ZXJUZXN0RXhwb3J0czsKLSAgdGVzdCgnbGluZVBhcnNlcldpdGhMZWdhY3lGbXQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcCA9IExpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhMZWdhY3lGbXQ7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgdmFyIHggPSBwKCcgICA8aWRsZT4tMCAgICAgWzAwMV0gIDQ0NjcuODQzNDc1OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAncHJldl9jb21tPXN3YXBwZXIgcHJldl9waWQ9MCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UiA9PT4gJyArCi0gICAgICAgICduZXh0X2NvbW09U3VyZmFjZUZsaW5nZXIgbmV4dF9waWQ9MTc4IG5leHRfcHJpbz0xMTInKTsKLSAgICBhc3NlcnQuaXNOb3ROdWxsKHgpOwotICAgIGFzc2VydC5lcXVhbCh4LnRocmVhZE5hbWUsICc8aWRsZT4nKTsKLSAgICBhc3NlcnQuZXF1YWwoeC5waWQsICcwJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHguY3B1TnVtYmVyLCAnMDAxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgudGltZXN0YW1wLCAnNDQ2Ny44NDM0NzUnKTsKLSAgICBhc3NlcnQuZXF1YWwoeC5ldmVudE5hbWUsICdzY2hlZF9zd2l0Y2gnKTsKLSAgICBhc3NlcnQuZXF1YWwoJ3ByZXZfY29tbT1zd2FwcGVyIHByZXZfcGlkPTAgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVInICsKLSAgICAgICAgJyA9PT4gbmV4dF9jb21tPVN1cmZhY2VGbGluZ2VyIG5leHRfcGlkPTE3OCBuZXh0X3ByaW89MTEyJywgeC5kZXRhaWxzKTsKLQotICAgIHZhciB4ID0gcCgnQmluZGVyLVRocmVhZCAjLTY0NyAgIFswMDFdICAgMjYwLjQ2NDI5NDogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgJ3ByZXZfY29tbT1CaW5kZXIgVGhyZWFkICMgcHJldl9waWQ9NjQ3IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1EICcgKwotICAgICAgICAnID09PiBuZXh0X2NvbW09LmFuZHJvaWQuY2hyb21lIG5leHRfcGlkPTE1NjIgbmV4dF9wcmlvPTEyMCcpOwotICAgIGFzc2VydC5pc05vdE51bGwoeCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgudGhyZWFkTmFtZSwgJ0JpbmRlci1UaHJlYWQgIycpOwotICAgIGFzc2VydC5lcXVhbCh4LnBpZCwgJzY0NycpOwotICB9KTsKLQotICB0ZXN0KCdsaW5lUGFyc2VyV2l0aElSUUluZm8nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcCA9IExpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhJUlFJbmZvOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIHZhciB4ID0gcCgnICAgICBzeXN0cmFjZS5zaC01NDQxICBbMDAxXSBkLi4uICAxMDMxLjA5MTU3MDogJyArCi0gICAgICAgICdzY2hlZF93YWtldXA6IGNvbW09ZGVidWdkIHBpZD00OTc4IHByaW89MTIwIHN1Y2Nlc3M9MSB0YXJnZXRfY3B1PTAwMCcpOwotICAgIGFzc2VydC5pc05vdE51bGwoeCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgudGhyZWFkTmFtZSwgJ3N5c3RyYWNlLnNoJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgucGlkLCAnNTQ0MScpOwotICAgIGFzc2VydC5lcXVhbCh4LmNwdU51bWJlciwgJzAwMScpOwotICAgIGFzc2VydC5lcXVhbCh4LnRpbWVzdGFtcCwgJzEwMzEuMDkxNTcwJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHguZXZlbnROYW1lLCAnc2NoZWRfd2FrZXVwJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHguZGV0YWlscywgJ2NvbW09ZGVidWdkIHBpZD00OTc4IHByaW89MTIwIHN1Y2Nlc3M9MSB0YXJnZXRfY3B1PTAwMCcpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICB9KTsKLQotICB0ZXN0KCdsaW5lUGFyc2VyV2l0aFRHSUQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcCA9IExpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhUR0lEOwotICAgIHZhciB4ID0gcCgnICAgICBzeXN0cmFjZS5zaC01NDQxICAoNTQzMjEpIFswMDFdIGQuLi4gIDEwMzEuMDkxNTcwOiAnICsKLSAgICAgICAgJ3NjaGVkX3dha2V1cDogY29tbT1kZWJ1Z2QgcGlkPTQ5NzggcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAwJyk7Ci0gICAgYXNzZXJ0LmlzTm90TnVsbCh4KTsKLSAgICBhc3NlcnQuZXF1YWwoeC50aHJlYWROYW1lLCAnc3lzdHJhY2Uuc2gnKTsKLSAgICBhc3NlcnQuZXF1YWwoeC5waWQsICc1NDQxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgudGdpZCwgJzU0MzIxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHguY3B1TnVtYmVyLCAnMDAxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgudGltZXN0YW1wLCAnMTAzMS4wOTE1NzAnKTsKLSAgICBhc3NlcnQuZXF1YWwoeC5ldmVudE5hbWUsICdzY2hlZF93YWtldXAnKTsKLSAgICBhc3NlcnQuZXF1YWwoeC5kZXRhaWxzLCAnY29tbT1kZWJ1Z2QgcGlkPTQ5NzggcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAwJyk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICB2YXIgeCA9IHAoJyAgICAgc3lzdHJhY2Uuc2gtNTQ0MSAgKCAgMzIxKSBbMDAxXSBkLi4uICAxMDMxLjA5MTU3MDogJyArCi0gICAgICAgICdzY2hlZF93YWtldXA6IGNvbW09ZGVidWdkIHBpZD00OTc4IHByaW89MTIwIHN1Y2Nlc3M9MSB0YXJnZXRfY3B1PTAwMCcpOwotICAgIGFzc2VydC5pc05vdE51bGwoeCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHgudGdpZCwgJzMyMScpOwotCi0gICAgdmFyIHggPSBwKCcgICAgIHN5c3RyYWNlLnNoLTU0NDEgICgtLS0tLSkgWzAwMV0gZC4uLiAgMTAzMS4wOTE1NzA6ICcgKwotICAgICAgICAnc2NoZWRfd2FrZXVwOiBjb21tPWRlYnVnZCBwaWQ9NDk3OCBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDAnKTsKLSAgICBhc3NlcnQuaXNOb3ROdWxsKHgpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZCh4LnRnaWQpOwotICB9KTsKLQotICB0ZXN0KCdhdXRvZGV0ZWN0TGluZUNvcm5lckNhc2VzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGRldGVjdFBhcnNlciA9Ci0gICAgICAgIExpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHMuYXV0b0RldGVjdExpbmVQYXJzZXI7Ci0gICAgdmFyIGxpbmVQYXJzZXJXaXRoTGVnYWN5Rm10ID0KLSAgICAgICAgTGludXhQZXJmSW1wb3J0ZXJUZXN0RXhwb3J0cy5saW5lUGFyc2VyV2l0aExlZ2FjeUZtdDsKLSAgICB2YXIgbGluZVBhcnNlcldpdGhJUlFJbmZvID0KLSAgICAgICAgTGludXhQZXJmSW1wb3J0ZXJUZXN0RXhwb3J0cy5saW5lUGFyc2VyV2l0aElSUUluZm87Ci0gICAgdmFyIGxpbmVQYXJzZXJXaXRoVEdJRCA9Ci0gICAgICAgIExpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhUR0lEOwotCi0gICAgdmFyIGxpbmVXaXRoTGVnYWN5Rm10ID0KLSAgICAgICAgJ3N5c3RyYWNlLnNoLTgxNzAgIFswMDFdIDE1MTgwLjk3ODgxMzogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgJ3ByZXZfY29tbT1zeXN0cmFjZS5zaCBwcmV2X3BpZD04MTcwIHByZXZfcHJpbz0xMjAgJyArCi0gICAgICAgICdwcmV2X3N0YXRlPXggPT0+IG5leHRfY29tbT1rd29ya2VyLzE6MCBuZXh0X3BpZD03ODczICcgKwotICAgICAgICAnbmV4dF9wcmlvPTEyMCc7Ci0gICAgdmFyIGRldGVjdGVkID0gZGV0ZWN0UGFyc2VyKGxpbmVXaXRoTGVnYWN5Rm10KTsKLSAgICBhc3NlcnQuZXF1YWwobGluZVBhcnNlcldpdGhMZWdhY3lGbXQsIGRldGVjdGVkKTsKLQotICAgIHZhciBsaW5lV2l0aElSUUluZm8gPQotICAgICAgICAnc3lzdHJhY2Uuc2gtODE3MCAgWzAwMV0gZC4uLiAxNTE4MC45Nzg4MTM6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICdwcmV2X2NvbW09c3lzdHJhY2Uuc2ggcHJldl9waWQ9ODE3MCBwcmV2X3ByaW89MTIwICcgKwotICAgICAgICAncHJldl9zdGF0ZT14ID09PiBuZXh0X2NvbW09a3dvcmtlci8xOjAgbmV4dF9waWQ9Nzg3MyAnICsKLSAgICAgICAgJ25leHRfcHJpbz0xMjAnOwotICAgIHZhciBkZXRlY3RlZCA9IGRldGVjdFBhcnNlcihsaW5lV2l0aElSUUluZm8pOwotICAgIGFzc2VydC5lcXVhbChsaW5lUGFyc2VyV2l0aElSUUluZm8sIGRldGVjdGVkKTsKLQotICAgIHZhciBsaW5lV2l0aFRHSUQgPQotICAgICAgICAnc3lzdHJhY2Uuc2gtODE3MCAgKDU0MzIxKSBbMDAxXSBkLi4uIDE1MTgwLjk3ODgxMzogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgJ3ByZXZfY29tbT1zeXN0cmFjZS5zaCBwcmV2X3BpZD04MTcwIHByZXZfcHJpbz0xMjAgJyArCi0gICAgICAgICdwcmV2X3N0YXRlPXggPT0+IG5leHRfY29tbT1rd29ya2VyLzE6MCBuZXh0X3BpZD03ODczICcgKwotICAgICAgICAnbmV4dF9wcmlvPTEyMCc7Ci0gICAgdmFyIGRldGVjdGVkID0gZGV0ZWN0UGFyc2VyKGxpbmVXaXRoVEdJRCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGxpbmVQYXJzZXJXaXRoVEdJRCwgZGV0ZWN0ZWQpOwotICB9KTsKLQotICB0ZXN0KCd0cmFjZUV2ZW50Q2xvY2tTeW5jUkUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcmUgPSBMaW51eFBlcmZJbXBvcnRlclRlc3RFeHBvcnRzLnRyYWNlRXZlbnRDbG9ja1N5bmNSRTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICB2YXIgeCA9IHJlLmV4ZWMoJ3RyYWNlX2V2ZW50X2Nsb2NrX3N5bmM6IHBhcmVudF90cz0xOTU4MTQ3NzUwOCcpOwotICAgIGFzc2VydC5pc05vdE51bGwoeCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHhbMV0sICcxOTU4MTQ3NzUwOCcpOwotCi0gICAgdmFyIHggPSByZS5leGVjKCd0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBwYXJlbnRfdHM9MTIzLjQ1NicpOwotICAgIGFzc2VydC5pc05vdE51bGwoeCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHhbMV0sICcxMjMuNDU2Jyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2dlbmVyaWNDbG9ja1N5bmMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnIyB0cmFjZXI6IG5vcCcsCi0gICAgICAnIycsCi0gICAgICAnIyAgICAgICAgICAgVEFTSy1QSUQgICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OJywKLSAgICAgICcjICAgICAgICAgICAgICB8IHwgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCcsCi0gICAgICAnc2gtMjYxMjEgWzAwMF0gLi4uMSAxMDc0NjQuMDogdHJhY2luZ19tYXJrX3dyaXRlOiB0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBuYW1lPWJhdHRvciByZWd1bGF0b3I9ODk0MV9zbWJiX2Jvb3N0JyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOwotCi0gICAgdmFyIGJhdHRvclN5bmNzID0gbS5nZXRDbG9ja1N5bmNSZWNvcmRzTmFtZWQoJ2JhdHRvcicpOwotICAgIGFzc2VydC5lcXVhbChiYXR0b3JTeW5jcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChiYXR0b3JTeW5jc1swXS50cywgMTA3NDY0MDAwLjApOwotICAgIGFzc2VydC5lcXVhbChiYXR0b3JTeW5jc1swXS5hcmdzLnBlcmZUUywgMTA3NDY0MDAwLjApOwotICAgIGFzc2VydC5lcXVhbChiYXR0b3JTeW5jc1swXS5hcmdzLnJlZ3VsYXRvciwgJzg5NDFfc21iYl9ib29zdCcpOwotICB9KTsKLQotICB0ZXN0KCdjYW5JbXBvcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnIyB0cmFjZXI6IG5vcCcsCi0gICAgICAnIycsCi0gICAgICAnIyAgICAgICAgICAgVEFTSy1QSUQgICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OJywKLSAgICAgICcjICAgICAgICAgICAgICB8IHwgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCcsCi0gICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAxXSAgNDQ2Ny44NDM0NzU6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICAgJ3ByZXZfY29tbT1zd2FwcGVyIHByZXZfcGlkPTAgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIgPT0+ICcgKwotICAgICAgICAgICduZXh0X2NvbW09U3VyZmFjZUZsaW5nZXIgbmV4dF9waWQ9MTc4IG5leHRfcHJpbz0xMTInLAotCi0gICAgICAnICBTdXJmYWNlRmxpbmdlci0xNzggICBbMDAxXSAgNDQ2Ny44NDM1MzY6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICAgJ3ByZXZfY29tbT1TdXJmYWNlRmxpbmdlciBwcmV2X3BpZD0xNzggcHJldl9wcmlvPTExMiBwcmV2X3N0YXRlPVMgJyArCi0gICAgICAgICAgJz09PiBuZXh0X2NvbW09a3dvcmtlci91OjIgbmV4dF9waWQ9Mjg0NCBuZXh0X3ByaW89MTIwJywKLQotICAgICAgJyAgICAga3dvcmtlci91OjItMjg0NCAgWzAwMV0gIDQ0NjcuODQzNTY3OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAgICdwcmV2X2NvbW09a3dvcmtlci91OjIgcHJldl9waWQ9Mjg0NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UyAnICsKLSAgICAgICAgICAnPT0+IG5leHRfY29tbT1zd2FwcGVyIG5leHRfcGlkPTAgbmV4dF9wcmlvPTEyMCcsCi0KLSAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdICA0NDY3Ljg0NDIwODogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPXN3YXBwZXIgcHJldl9waWQ9MCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UiA9PT4gJyArCi0gICAgICAgICAgJ25leHRfY29tbT1rd29ya2VyL3U6MiBuZXh0X3BpZD0yODQ0IG5leHRfcHJpbz0xMjAnCi0gICAgXTsKLSAgICBhc3NlcnQuaXNUcnVlKExpbnV4UGVyZkltcG9ydGVyLmNhbkltcG9ydChsaW5lcy5qb2luKCdcbicpKSk7Ci0KLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAxXSAgNDQ2Ny44NDM0NzU6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICAgJ3ByZXZfY29tbT1zd2FwcGVyIHByZXZfcGlkPTAgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIgPT0+ICcgKwotICAgICAgICAgICAgICAnbmV4dF9jb21tPVN1cmZhY2VGbGluZ2VyIG5leHRfcGlkPTE3OCBuZXh0X3ByaW89MTEyJwotICAgIF07Ci0gICAgYXNzZXJ0LmlzVHJ1ZShMaW51eFBlcmZJbXBvcnRlci5jYW5JbXBvcnQobGluZXMuam9pbignXG4nKSkpOwotCi0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gIDQ0NjcuODQzNDc1OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAgICdwcmV2X2NvbW09c3dhcHBlciBwcmV2X3BpZD0wIHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SID09PiAnICsKLSAgICAgICAgICAnbmV4dF9jb21tPVN1cmZhY2VGbGluZ2VyIG5leHRfcGlkPTE3OCBuZXh0X3ByaW89MTEyJywKLQotICAgICAgJyAgU3VyZmFjZUZsaW5nZXItMTc4ICAgWzAwMV0gIDQ0NjcuODQzNTM2OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAgICdwcmV2X2NvbW09U3VyZmFjZUZsaW5nZXIgcHJldl9waWQ9MTc4IHByZXZfcHJpbz0xMTIgJyArCi0gICAgICAgICAgJ3ByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPWt3b3JrZXIvdToyIG5leHRfcGlkPTI4NDQgJyArCi0gICAgICAgICAgJ25leHRfcHJpbz0xMjAnCi0gICAgXTsKLSAgICBhc3NlcnQuaXNUcnVlKExpbnV4UGVyZkltcG9ydGVyLmNhbkltcG9ydChsaW5lcy5qb2luKCdcbicpKSk7Ci0KLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnU29tZVJhbmRvbVRleHQnLAotICAgICAgJ01vcmUgcmFuZG9tIHRleHQnCi0gICAgXTsKLSAgICBhc3NlcnQuaXNGYWxzZShMaW51eFBlcmZJbXBvcnRlci5jYW5JbXBvcnQobGluZXMuam9pbignXG4nKSkpOwotICB9KTsKLQotICB0ZXN0KCdjYW5JbXBvcnQzNEFuZExhdGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJyMgdHJhY2VyOiBub3AnLAotICAgICAgJyMnLAotICAgICAgJyMgZW50cmllcy1pbi1idWZmZXIvZW50cmllcy13cml0dGVuOiA1NTE5MS81NTE5MSAgICNQOjInLAotICAgICAgJyMnLAotICAgICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLS0tLS09PiBpcnFzLW9mZicsCi0gICAgICAnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZCcsCi0gICAgICAnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycScsCi0gICAgICAnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgnLAotICAgICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHx8IC8gICAgIGRlbGF5JywKLSAgICAgICcjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgIHx8fHwgICAgVElNRVNUQU1QICBGVU5DVElPTicsCi0gICAgICAnIyAgICAgICAgICAgICAgfCB8ICAgICAgIHwgICB8fHx8ICAgICAgIHwgICAgICAgICB8JywKLSAgICAgICcgICAgIHN5c3RyYWNlLnNoLTU0NDEgIFswMDFdIGQuLi4gIDEwMzEuMDkxNTcwOiBzY2hlZF93YWtldXA6ICcgKwotICAgICAgICAgICdjb21tPWRlYnVnZCBwaWQ9NDk3OCBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDAnLAotICAgICAgJyAgICAgc3lzdHJhY2Uuc2gtNTQ0MSAgWzAwMV0gZC4uLiAgMTAzMS4wOTE1ODQ6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICAgJ3ByZXZfY29tbT1zeXN0cmFjZS5zaCBwcmV2X3BpZD01NDQxIHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT14ICcgKwotICAgICAgICAgICc9PT4gbmV4dF9jb21tPWNocm9tZSBuZXh0X3BpZD01NDE4IG5leHRfcHJpbz0xMjAnCi0gICAgXTsKLSAgICBhc3NlcnQuaXNUcnVlKExpbnV4UGVyZkltcG9ydGVyLmNhbkltcG9ydChsaW5lcy5qb2luKCdcbicpKSk7Ci0KLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnICAgICBzeXN0cmFjZS5zaC01NDQxICBbMDAxXSBkLi4uICAxMDMxLjA5MTU3MDogc2NoZWRfd2FrZXVwOiAnICsKLSAgICAgICAgICAnY29tbT1kZWJ1Z2QgcGlkPTQ5NzggcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAwJywKLSAgICAgICcgICAgIHN5c3RyYWNlLnNoLTU0NDEgIFswMDFdIGQuLi4gIDEwMzEuMDkxNTg0OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAgICdwcmV2X2NvbW09c3lzdHJhY2Uuc2ggcHJldl9waWQ9NTQ0MSBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9eCAnICsKLSAgICAgICAgICAnPT0+IG5leHRfY29tbT1jaHJvbWUgbmV4dF9waWQ9NTQxOCBuZXh0X3ByaW89MTIwJwotICAgIF07Ci0gICAgYXNzZXJ0LmlzVHJ1ZShMaW51eFBlcmZJbXBvcnRlci5jYW5JbXBvcnQobGluZXMuam9pbignXG4nKSkpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRPbmVTZXF1ZW5jZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdICA0NDY3Ljg0MzQ3NTogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPXN3YXBwZXIgcHJldl9waWQ9MCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UiA9PT4gJyArCi0gICAgICAgICAgJ25leHRfY29tbT1TdXJmYWNlRmxpbmdlciBuZXh0X3BpZD0xNzggbmV4dF9wcmlvPTExMicsCi0KLSAgICAgICcgIFN1cmZhY2VGbGluZ2VyLTE3OCAgIFswMDFdICA0NDY3Ljg0MzUzNjogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPVN1cmZhY2VGbGluZ2VyIHByZXZfcGlkPTE3OCBwcmV2X3ByaW89MTEyICcgKwotICAgICAgICAgICdwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1rd29ya2VyL3U6MiBuZXh0X3BpZD0yODQ0ICcgKwotICAgICAgICAgICduZXh0X3ByaW89MTIwJywKLQotICAgICAgJyAgICAga3dvcmtlci91OjItMjg0NCAgWzAwMV0gIDQ0NjcuODQzNTY3OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAgICdwcmV2X2NvbW09a3dvcmtlci91OjIgcHJldl9waWQ9Mjg0NCBwcmV2X3ByaW89MTIwICcgKwotICAgICAgICAgICdwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1zd2FwcGVyIG5leHRfcGlkPTAgbmV4dF9wcmlvPTEyMCcKLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLQotICAgIHZhciBjID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoYy5zbGljZXMubGVuZ3RoLCAyKTsKLQotICAgIGFzc2VydC5lcXVhbChjLnNsaWNlc1swXS50aXRsZSwgJ1N1cmZhY2VGbGluZ2VyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGMuc2xpY2VzWzBdLnN0YXJ0LCA0NDY3ODQzLjQ3NSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oLjUzNiAtIC40NzUsIGMuc2xpY2VzWzBdLmR1cmF0aW9uLCAxZS01KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0T25lU2VxdWVuY2VXaXRoU3BhY3lUaHJlYWROYW1lJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gIDQ0NjcuODQzNDc1OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAgICdwcmV2X2NvbW09c3dhcHBlciBwcmV2X3BpZD0wIHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SID09PiAnICsKLSAgICAgICAgICAnbmV4dF9jb21tPVN1cmZhY2UgRmxpbmdlciAgbmV4dF9waWQ9MTc4IG5leHRfcHJpbz0xMTInLAotCi0gICAgICAnU3VyZmFjZSBGbGluZ2VyIC0xNzggICBbMDAxXSAgNDQ2Ny44NDM1MzY6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICAgJ3ByZXZfY29tbT1TdXJmYWNlIEZsaW5nZXIgIHByZXZfcGlkPTE3OCBwcmV2X3ByaW89MTEyICcgKwotICAgICAgICAgICdwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1rd29ya2VyL3U6MiBuZXh0X3BpZD0yODQ0ICcgKwotICAgICAgICAgICduZXh0X3ByaW89MTIwJywKLQotICAgICAgJyAgICAga3dvcmtlci91OjItMjg0NCAgWzAwMV0gIDQ0NjcuODQzNTY3OiBzY2hlZF9zd2l0Y2g6ICcgKwotICAgICAgICAgICdwcmV2X2NvbW09a3dvcmtlci91OjIgcHJldl9waWQ9Mjg0NCBwcmV2X3ByaW89MTIwICcgKwotICAgICAgICAgICdwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1zd2FwcGVyIG5leHRfcGlkPTAgbmV4dF9wcmlvPTEyMCcKLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLQotICAgIHZhciBjID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoYy5zbGljZXMubGVuZ3RoLCAyKTsKLQotICAgIGFzc2VydC5lcXVhbChjLnNsaWNlc1swXS50aXRsZSwgJ1N1cmZhY2UgRmxpbmdlciAnKTsKLSAgICBhc3NlcnQuZXF1YWwoYy5zbGljZXNbMF0uc3RhcnQsIDQ0Njc4NDMuNDc1KTsKLSAgICBhc3NlcnQuY2xvc2VUbyguNTM2IC0gLjQ3NSwgYy5zbGljZXNbMF0uZHVyYXRpb24sIDFlLTUpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRXaXRoTmV3bGluZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICcnCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U3lzdHJhY2VIdG1sJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHAgPSB0ci5iLmdldEFzeW5jKAotICAgICAgICAnL3Rlc3RfZGF0YS90cml2aWFsX3N5c3RyYWNlLmh0bWwnKTsKLSAgICByZXR1cm4gcC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGRhdGEsIGZhbHNlKTsKLSAgICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOwotCi0gICAgICBhc3NlcnQuaXNEZWZpbmVkKG0ucHJvY2Vzc2VzWzEyNF0pOwotICAgICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1szNjBdKTsKLQotICAgICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1sxMjRdLmNvdW50ZXJzWydhbmRyb2lkLlN0YXR1c0JhciddKTsKLSAgICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1sxMjRdLmNvdW50ZXJzWydhbmRyb2lkLlN0YXR1c0JhciddLm51bVNhbXBsZXMsCi0gICAgICAgICAgICAgICAgICAgMSk7Ci0gICAgICBhc3NlcnQuaXNEZWZpbmVkKG0ucHJvY2Vzc2VzWzEyNF0uY291bnRlcnNbJ2FuZHJvaWQuVlNZTkMnXSk7Ci0gICAgICBhc3NlcnQuZXF1YWwoMiwgbS5wcm9jZXNzZXNbMTI0XS5jb3VudGVyc1snYW5kcm9pZC5WU1lOQyddLm51bVNhbXBsZXMpOwotICAgICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1szNjBdLmNvdW50ZXJzWydhbmRyb2lkLmlxJ10pOwotICAgICAgYXNzZXJ0LmVxdWFsKDEsIG0ucHJvY2Vzc2VzWzM2MF0uY291bnRlcnNbJ2FuZHJvaWQuaXEnXS5udW1TYW1wbGVzKTsKLSAgICB9LCBmdW5jdGlvbihlcnIpIHsKLSAgICAgIHRocm93IGVycjsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0TXVsdGlUcmFjZUh0bWwnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnPCFET0NUWVBFIEhUTUw+JywKLSAgICAgICc8Ym9keT4nLAotICAgICAgJyAgPGRpdiBjbGFzcz0idmlldyI+JywKLSAgICAgICcgIDxcL2Rpdj4nLAotICAgICAgJyAgPHNjcmlwdCBjbGFzcz0idHJhY2UtZGF0YSIgdHlwZT0iYXBwbGljYXRpb24vdGV4dCI+JywKLSAgICAgICd0ZXN0MScsCi0gICAgICAndGVzdDInLAotICAgICAgJyAgPFwvc2NyaXB0PicsCi0gICAgICAnICA8c2NyaXB0IGNsYXNzPSJ0cmFjZS1kYXRhIiB0eXBlPSJhcHBsaWNhdGlvbi90ZXh0Ij4nLAotICAgICAgJyMgdHJhY2VyOiBub3AnLAotICAgICAgJyMnLAotICAgICAgJyMgICAgICAgICAgICBUQVNLLVBJRCAgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04nLAotICAgICAgJyMgICAgICAgICAgICAgICB8IHwgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCcsCi0gICAgICAnICAgICBod2NfZXZlbnRtb24tMzM2ICAgWzAwMF0gNTAyNjAuOTI5OTI1OiAwOiBDfDEyNHxWU1lOQ3wxJywKLSAgICAgICcgICAgICAgICBCaW5kZXJfMS0zNDAgICBbMDAwXSA1MDI2MC45MzU2NTY6IDA6IEN8MTI0fFN0YXR1c0JhcnwxJywKLSAgICAgICcgICAgIGh3Y19ldmVudG1vbi0zMzYgICBbMDAwXSA1MDI2MC45NDY1NzM6IDA6IEN8MTI0fFZTWU5DfDAnLAotICAgICAgJyAgICAgIElucHV0UmVhZGVyLTQxOSAgIFswMDBdIDUwMjYyLjUzODU3ODogMDogQ3wzNjB8aXF8MScsCi0gICAgICAnICA8XC9zY3JpcHQ+JywKLSAgICAgICc8XC9ib2R5PicsCi0gICAgICAnPFwvaHRtbD4nCi0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMTI0XSk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1szNjBdKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMTI0XS5jb3VudGVyc1snYW5kcm9pZC5TdGF0dXNCYXInXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ucHJvY2Vzc2VzWzEyNF0uY291bnRlcnNbJ2FuZHJvaWQuU3RhdHVzQmFyJ10ubnVtU2FtcGxlcywKLSAgICAgICAgICAgICAgICAgMSk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1sxMjRdLmNvdW50ZXJzWydhbmRyb2lkLlZTWU5DJ10pOwotICAgIGFzc2VydC5lcXVhbCgyLCBtLnByb2Nlc3Nlc1sxMjRdLmNvdW50ZXJzWydhbmRyb2lkLlZTWU5DJ10ubnVtU2FtcGxlcyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1szNjBdLmNvdW50ZXJzWydhbmRyb2lkLmlxJ10pOwotICAgIGFzc2VydC5lcXVhbCgxLCBtLnByb2Nlc3Nlc1szNjBdLmNvdW50ZXJzWydhbmRyb2lkLmlxJ10ubnVtU2FtcGxlcyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Nsb2NrU3luYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdICA0NDY3Ljg0MzQ3NTogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPXN3YXBwZXIgcHJldl9waWQ9MCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UiAnICsKLSAgICAgICAgICAnPT0+IG5leHRfY29tbT1TdXJmYWNlRmxpbmdlciBuZXh0X3BpZD0xNzggbmV4dF9wcmlvPTExMicsCi0gICAgICAnICBTdXJmYWNlRmxpbmdlci0xNzggICBbMDAxXSAgNDQ2Ny44NDM1MzY6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICAgJ3ByZXZfY29tbT1TdXJmYWNlRmxpbmdlciBwcmV2X3BpZD0xNzggcHJldl9wcmlvPTExMiAnICsKLSAgICAgICAgICAncHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09a3dvcmtlci91OjIgbmV4dF9waWQ9Mjg0NCAnICsKLSAgICAgICAgICAnbmV4dF9wcmlvPTEyMCcsCi0gICAgICAnICAgICBrd29ya2VyL3U6Mi0yODQ0ICBbMDAxXSAgNDQ2Ny44NDM1Njc6IHNjaGVkX3N3aXRjaDogJyArCi0gICAgICAgICAgJ3ByZXZfY29tbT1rd29ya2VyL3U6MiBwcmV2X3BpZD0yODQ0IHByZXZfcHJpbz0xMjAgJyArCi0gICAgICAgICAgJ3ByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPXN3YXBwZXIgbmV4dF9waWQ9MCAnICsKLSAgICAgICAgICAnbmV4dF9wcmlvPTEyMCcsCi0gICAgICAnICAgICBrd29ya2VyL3U6Mi0yODQ0ICBbMDAxXSAgNDQ2Ny44NDMwMDA6IDA6ICcgKwotICAgICAgICAgICd0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBwYXJlbnRfdHM9MC4xJwotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOwotCi0gICAgdmFyIGMgPSBtLmtlcm5lbC5jcHVzWzFdOwotICAgIGFzc2VydC5lcXVhbChjLnNsaWNlcy5sZW5ndGgsIDIpOwotCi0gICAgYXNzZXJ0LmNsb3NlVG8oCi0gICAgICAgICg0NjcuODQzNDc1IC0gKDQ2Ny44NDMgLSAwLjEpKSAqIDEwMDAsCi0gICAgICAgIGMuc2xpY2VzWzBdLnN0YXJ0LAotICAgICAgICAxZS01KTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2xvY2tTeW5jTWFya1dyaXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ3N5c3RyYWNlLnNoLTgxNzAgIFswMDFdIDE1MTgwLjk3ODgxMzogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPXN5c3RyYWNlLnNoIHByZXZfcGlkPTgxNzAgcHJldl9wcmlvPTEyMCAnICsKLSAgICAgICAgICAncHJldl9zdGF0ZT14ID09PiBuZXh0X2NvbW09a3dvcmtlci8xOjAgbmV4dF9waWQ9Nzg3MyAnICsKLSAgICAgICAgICAnbmV4dF9wcmlvPTEyMCcsCi0gICAgICAnIGt3b3JrZXIvMTowLTc4NzMgIFswMDFdIDE1MTgwLjk3ODgzNjogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPWt3b3JrZXIvMTowIHByZXZfcGlkPTc4NzMgcHJldl9wcmlvPTEyMCAnICsKLSAgICAgICAgICAncHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09ZGVidWdkIG5leHRfcGlkPTQ0MDQgbmV4dF9wcmlvPTEyMCcsCi0gICAgICAnICAgICBkZWJ1Z2QtNDQwNCAgWzAwMV0gMTUxODAuOTc5MDEwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1kZWJ1Z2QgJyArCi0gICAgICAgICAgJ3ByZXZfcGlkPTQ0MDQgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVMgPT0+ICcgKwotICAgICAgICAgICduZXh0X2NvbW09ZGJ1cy1kYWVtb24gbmV4dF9waWQ9NTEwIG5leHRfcHJpbz0xMjAnLAotICAgICAgJ3N5c3RyYWNlLnNoLTgxODIgIFswMDBdIDE1MTg2LjIwMzkwMDogdHJhY2luZ19tYXJrX3dyaXRlOiAnICsKLSAgICAgICAgICAndHJhY2VfZXZlbnRfY2xvY2tfc3luYzogcGFyZW50X3RzPTAnCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICB2YXIgYyA9IG0ua2VybmVsLmNwdXNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKGMuc2xpY2VzLmxlbmd0aCwgMik7Ci0KLSAgICBhc3NlcnQuY2xvc2VUbygoMTUxODAuOTc4ODEzIC0gMCkgKiAxMDAwLCBjLnNsaWNlc1swXS5zdGFydCwgMWUtNSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3RyYWNpbmdNYXJrV3JpdGVFT0xDbGVhbnVwJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ3N5c3RyYWNlLnNoLTgxODIgIFswMDFdIC4uLjEgMjA2ODAwMS42Nzc4OTI6IHRyYWNpbmdfbWFya193cml0ZTogJyArCi0gICAgICAgICAgJ0J8OTMwNHx0ZXN0XFxuXFwnLAotICAgICAgJ3N5c3RyYWNlLnNoLTgxODIgIFswMDJdIC4uLjEgMjA2ODk5MS42ODY0MTU6IHRyYWNpbmdfbWFya193cml0ZTogRVxcblxcJwotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICB2YXIgYyA9IG0ucHJvY2Vzc2VzWzkzMDRdLnRocmVhZHNbODE4Ml0uc2xpY2VHcm91cDsKLSAgICBhc3NlcnQuZXF1YWwoYy5zbGljZXMubGVuZ3RoLCAxKTsKLQotICAgIGFzc2VydC5jbG9zZVRvKCgyMDY4MDAxLjY3Nzg5MiAtIDApICogMTAwMCwgYy5zbGljZXNbMF0uc3RhcnQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKAotICAgICAgICAoMjA2ODk5MS42ODY0MTUgLSAyMDY4MDAxLjY3Nzg5MikgKiAxMDAwLAotICAgICAgICBjLnNsaWNlc1swXS5kdXJhdGlvbiwKLSAgICAgICAgMWUtNSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NwdUNvdW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ3N5c3RyYWNlLnNoLTgxNzAgIFswMDFdIDE1MTgwLjk3ODgxMzogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPXN5c3RyYWNlLnNoIHByZXZfcGlkPTgxNzAgcHJldl9wcmlvPTEyMCAnICsKLSAgICAgICAgICAncHJldl9zdGF0ZT14ID09PiBuZXh0X2NvbW09a3dvcmtlci8xOjAgbmV4dF9waWQ9Nzg3MyAnICsKLSAgICAgICAgICAnbmV4dF9wcmlvPTEyMCcsCi0gICAgICAnIGt3b3JrZXIvMTowLTc4NzMgIFswMDFdIDE1MTgwLjk3ODgzNjogc2NoZWRfc3dpdGNoOiAnICsKLSAgICAgICAgICAncHJldl9jb21tPWt3b3JrZXIvMTowIHByZXZfcGlkPTc4NzMgcHJldl9wcmlvPTEyMCAnICsKLSAgICAgICAgICAncHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09ZGVidWdkIG5leHRfcGlkPTQ0MDQgbmV4dF9wcmlvPTEyMCcsCi0gICAgICAnICAgICBkZWJ1Z2QtNDQwNCAgWzAwMF0gMTUxODAuOTc5MDEwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1kZWJ1Z2QgJyArCi0gICAgICAgICAgJ3ByZXZfcGlkPTQ0MDQgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVMgPT0+ICcgKwotICAgICAgICAgICduZXh0X2NvbW09ZGJ1cy1kYWVtb24gbmV4dF9waWQ9NTEwIG5leHRfcHJpbz0xMjAnCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKG0ua2VybmVsLmNwdXMpLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwobS5rZXJuZWwuYmVzdEd1ZXNzQXRDcHVDb3VudCwgMik7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaTkxNV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaTkxNV9wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM5M2Q1ZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2k5MTVfcGFyc2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGk5MTUgZHJpdmVyIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgotICovCi10ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBQYXJzZXIgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyOwotCi0gIC8qKgotICAgKiBQYXJzZXMgbGludXggaTkxNSB0cmFjZSBldmVudHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gSTkxNVBhcnNlcihpbXBvcnRlcikgewotICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKLQotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9vYmplY3RfY3JlYXRlJywKLSAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0Q3JlYXRlRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9iaW5kJywKLSAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0QmluZEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9vYmplY3RfdW5iaW5kJywKLSAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0QmluZEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9vYmplY3RfY2hhbmdlX2RvbWFpbicsCi0gICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdENoYW5nZURvbWFpbkV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9vYmplY3RfcHJlYWQnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3RQcmVhZFdyaXRlRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9wd3JpdGUnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3RQcmVhZFdyaXRlRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9mYXVsdCcsCi0gICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdEZhdWx0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9jbGZsdXNoJywKLSAgICAgICAgLy8gTkI6IHJldXNlIGRlc3Ryb3kgaGFuZGxlcgotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3REZXN0cm95RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9kZXN0cm95JywKLSAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0RGVzdHJveUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yaW5nX2Rpc3BhdGNoJywKLSAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmluZ0Rpc3BhdGNoRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JpbmdfZmx1c2gnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SaW5nRmx1c2hFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmVxdWVzdCcsCi0gICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJlcXVlc3RFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmVxdWVzdF9hZGQnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGUnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlJywKLSAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmVxdWVzdEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yZXF1ZXN0X3dhaXRfYmVnaW4nLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JlcXVlc3Rfd2FpdF9lbmQnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3Jpbmdfd2FpdF9iZWdpbicsCi0gICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJpbmdXYWl0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3Jpbmdfd2FpdF9lbmQnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SaW5nV2FpdEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X3JlZ19ydycsCi0gICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLnJlZ1JXRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZmxpcF9yZXF1ZXN0JywKLSAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZmxpcEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2ZsaXBfY29tcGxldGUnLAotICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5mbGlwRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2ludGVsX2dwdV9mcmVxX2NoYW5nZScsCi0gICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdwdUZyZXF1ZW5jeS5iaW5kKHRoaXMpKTsKLSAgfQotCi0gIEk5MTVQYXJzZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKLQotICAgIGk5MTVGbGlwT3BlblNsaWNlOiBmdW5jdGlvbih0cywgb2JqLCBwbGFuZSkgewotICAgICAgLy8gdXNlIGk5MTVfZmxpcF9vYmpfcGxhbmU/Ci0gICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2k5MTVfZmxpcCcpOwotICAgICAga3RocmVhZC5vcGVuU2xpY2VUUyA9IHRzOwotICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSAnZmxpcDonICsgb2JqICsgJy8nICsgcGxhbmU7Ci0gICAgfSwKLQotICAgIGk5MTVGbGlwQ2xvc2VTbGljZTogZnVuY3Rpb24odHMsIGFyZ3MpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9mbGlwJyk7Ci0gICAgICBpZiAoa3RocmVhZC5vcGVuU2xpY2UpIHsKLSAgICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLlNsaWNlKCcnLCBrdGhyZWFkLm9wZW5TbGljZSwKLSAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKLSAgICAgICAgICAgIGt0aHJlYWQub3BlblNsaWNlVFMsCi0gICAgICAgICAgICBhcmdzLAotICAgICAgICAgICAgdHMgLSBrdGhyZWFkLm9wZW5TbGljZVRTKTsKLQotICAgICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgICB9Ci0gICAgICBrdGhyZWFkLm9wZW5TbGljZSA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgaTkxNUdlbU9iamVjdFNsaWNlOiBmdW5jdGlvbih0cywgZXZlbnROYW1lLCBvYmosIGFyZ3MpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9nZW0nKTsKLSAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gZXZlbnROYW1lICsgJzonICsgb2JqOwotICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLlNsaWNlKCcnLCBrdGhyZWFkLm9wZW5TbGljZSwKLSAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksCi0gICAgICAgICAgdHMsIGFyZ3MsIDApOwotCi0gICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgfSwKLQotICAgIGk5MTVHZW1SaW5nU2xpY2U6IGZ1bmN0aW9uKHRzLCBldmVudE5hbWUsIGRldiwgcmluZywgYXJncykgewotICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2dlbV9yaW5nJyk7Ci0gICAgICBrdGhyZWFkLm9wZW5TbGljZSA9IGV2ZW50TmFtZSArICc6JyArIGRldiArICcuJyArIHJpbmc7Ci0gICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAotICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKLSAgICAgICAgICB0cywgYXJncywgMCk7Ci0KLSAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKLSAgICB9LAotCi0gICAgaTkxNVJlZ1NsaWNlOiBmdW5jdGlvbih0cywgZXZlbnROYW1lLCByZWcsIGFyZ3MpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9yZWcnKTsKLSAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gZXZlbnROYW1lICsgJzonICsgcmVnOwotICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLlNsaWNlKCcnLCBrdGhyZWFkLm9wZW5TbGljZSwKLSAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksCi0gICAgICAgICAgdHMsIGFyZ3MsIDApOwotCi0gICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgfSwKLQotICAgIGk5MTVGcmVxQ2hhbmdlU2xpY2U6IGZ1bmN0aW9uKHRzLCBldmVudE5hbWUsIGFyZ3MpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9ncHVfZnJlcScpOwotICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBldmVudE5hbWU7Ci0gICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAotICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKLSAgICAgICAgICB0cywgYXJncywgMCk7Ci0KLSAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUGFyc2VzIGk5MTUgZHJpdmVyIGV2ZW50cyBhbmQgc2V0cyB1cCBzdGF0ZSBpbiB0aGUgaW1wb3J0ZXIuCi0gICAgICovCi0gICAgZ2VtT2JqZWN0Q3JlYXRlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9vYmo9KFx3KyksIHNpemU9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgb2JqID0gZXZlbnRbMV07Ci0gICAgICB2YXIgc2l6ZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHRoaXMuaTkxNUdlbU9iamVjdFNsaWNlKHRzLCBldmVudE5hbWUsIG9iaiwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBvYmo6IG9iaiwKLSAgICAgICAgICAgIHNpemU6IHNpemUKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBnZW1PYmplY3RCaW5kRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIC8vIFRPRE8oc2xlZmZsZXIpIG1hcHBhYmxlCi0gICAgICB2YXIgZXZlbnQgPSAvb2JqPShcdyspLCBvZmZzZXQ9KFx3KyksIHNpemU9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgb2JqID0gZXZlbnRbMV07Ci0gICAgICB2YXIgb2Zmc2V0ID0gZXZlbnRbMl07Ci0gICAgICB2YXIgc2l6ZSA9IHBhcnNlSW50KGV2ZW50WzNdKTsKLSAgICAgIHRoaXMuaTkxNU9iamVjdEdlbVNsaWNlKHRzLCBldmVudE5hbWUgKyAnOicgKyBvYmosCi0gICAgICAgICAgewotICAgICAgICAgICAgb2JqOiBvYmosCi0gICAgICAgICAgICBvZmZzZXQ6IG9mZnNldCwKLSAgICAgICAgICAgIHNpemU6IHNpemUKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBnZW1PYmplY3RDaGFuZ2VEb21haW5FdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL29iaj0oXHcrKSwgcmVhZD0oXHcrPT5cdyspLCB3cml0ZT0oXHcrPT5cdyspLwotICAgICAgICAgIC5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIG9iaiA9IGV2ZW50WzFdOwotICAgICAgdmFyIHJlYWQgPSBldmVudFsyXTsKLSAgICAgIHZhciB3cml0ZSA9IGV2ZW50WzNdOwotICAgICAgdGhpcy5pOTE1R2VtT2JqZWN0U2xpY2UodHMsIGV2ZW50TmFtZSwgb2JqLAotICAgICAgICAgIHsKLSAgICAgICAgICAgIG9iajogb2JqLAotICAgICAgICAgICAgcmVhZDogcmVhZCwKLSAgICAgICAgICAgIHdyaXRlOiB3cml0ZQotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGdlbU9iamVjdFByZWFkV3JpdGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9vYmo9KFx3KyksIG9mZnNldD0oXGQrKSwgbGVuPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIG9iaiA9IGV2ZW50WzFdOwotICAgICAgdmFyIG9mZnNldCA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHZhciBsZW4gPSBwYXJzZUludChldmVudFszXSk7Ci0gICAgICB0aGlzLmk5MTVHZW1PYmplY3RTbGljZSh0cywgZXZlbnROYW1lLCBvYmosCi0gICAgICAgICAgewotICAgICAgICAgICAgb2JqOiBvYmosCi0gICAgICAgICAgICBvZmZzZXQ6IG9mZnNldCwKLSAgICAgICAgICAgIGxlbjogbGVuCi0gICAgICAgICAgfSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgZ2VtT2JqZWN0RmF1bHRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgLy8gVE9ETyhzbGVmZmxlcikgd3JpdGFibGUKLSAgICAgIHZhciBldmVudCA9IC9vYmo9KFx3KyksIChcdyspIGluZGV4PShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIG9iaiA9IGV2ZW50WzFdOwotICAgICAgdmFyIHR5cGUgPSBldmVudFsyXTsKLSAgICAgIHZhciBpbmRleCA9IHBhcnNlSW50KGV2ZW50WzNdKTsKLSAgICAgIHRoaXMuaTkxNUdlbU9iamVjdFNsaWNlKHRzLCBldmVudE5hbWUsIG9iaiwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBvYmo6IG9iaiwKLSAgICAgICAgICAgIHR5cGU6IHR5cGUsCi0gICAgICAgICAgICBpbmRleDogaW5kZXgKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBnZW1PYmplY3REZXN0cm95RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9vYmo9KFx3KykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgb2JqID0gZXZlbnRbMV07Ci0gICAgICB0aGlzLmk5MTVHZW1PYmplY3RTbGljZSh0cywgZXZlbnROYW1lLCBvYmosCi0gICAgICAgICAgewotICAgICAgICAgICAgb2JqOiBvYmoKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBnZW1SaW5nRGlzcGF0Y2hFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL2Rldj0oXGQrKSwgcmluZz0oXGQrKSwgc2Vxbm89KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgZGV2ID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotICAgICAgdmFyIHJpbmcgPSBwYXJzZUludChldmVudFsyXSk7Ci0gICAgICB2YXIgc2Vxbm8gPSBwYXJzZUludChldmVudFszXSk7Ci0gICAgICB0aGlzLmk5MTVHZW1SaW5nU2xpY2UodHMsIGV2ZW50TmFtZSwgZGV2LCByaW5nLAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGRldjogZGV2LAotICAgICAgICAgICAgcmluZzogcmluZywKLSAgICAgICAgICAgIHNlcW5vOiBzZXFubwotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGdlbVJpbmdGbHVzaEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvZGV2PShcZCspLCByaW5nPShcdyspLCBpbnZhbGlkYXRlPShcdyspLCBmbHVzaD0oXHcrKS8KLSAgICAgICAgICAuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBkZXYgPSBwYXJzZUludChldmVudFsxXSk7Ci0gICAgICB2YXIgcmluZyA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHZhciBpbnZhbGlkYXRlID0gZXZlbnRbM107Ci0gICAgICB2YXIgZmx1c2ggPSBldmVudFs0XTsKLSAgICAgIHRoaXMuaTkxNUdlbVJpbmdTbGljZSh0cywgZXZlbnROYW1lLCBkZXYsIHJpbmcsCi0gICAgICAgICAgewotICAgICAgICAgICAgZGV2OiBkZXYsCi0gICAgICAgICAgICByaW5nOiByaW5nLAotICAgICAgICAgICAgaW52YWxpZGF0ZTogaW52YWxpZGF0ZSwKLSAgICAgICAgICAgIGZsdXNoOiBmbHVzaAotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGdlbVJlcXVlc3RFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL2Rldj0oXGQrKSwgcmluZz0oXGQrKSwgc2Vxbm89KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgZGV2ID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotICAgICAgdmFyIHJpbmcgPSBwYXJzZUludChldmVudFsyXSk7Ci0gICAgICB2YXIgc2Vxbm8gPSBwYXJzZUludChldmVudFszXSk7Ci0gICAgICB0aGlzLmk5MTVHZW1SaW5nU2xpY2UodHMsIGV2ZW50TmFtZSwgZGV2LCByaW5nLAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGRldjogZGV2LAotICAgICAgICAgICAgcmluZzogcmluZywKLSAgICAgICAgICAgIHNlcW5vOiBzZXFubwotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGdlbVJpbmdXYWl0RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9kZXY9KFxkKyksIHJpbmc9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgZGV2ID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotICAgICAgdmFyIHJpbmcgPSBwYXJzZUludChldmVudFsyXSk7Ci0gICAgICB0aGlzLmk5MTVHZW1SaW5nU2xpY2UodHMsIGV2ZW50TmFtZSwgZGV2LCByaW5nLAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGRldjogZGV2LAotICAgICAgICAgICAgcmluZzogcmluZwotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIHJlZ1JXRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC8oXHcrKSByZWc9KFx3KyksIGxlbj0oXGQrKSwgdmFsPShcKFx3KywgXHcrXCkpLwotICAgICAgICAgIC5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIHJ3ID0gZXZlbnRbMV07Ci0gICAgICB2YXIgcmVnID0gZXZlbnRbMl07Ci0gICAgICB2YXIgbGVuID0gZXZlbnRbM107Ci0gICAgICB2YXIgZGF0YSA9IGV2ZW50WzNdOwotICAgICAgdGhpcy5pOTE1UmVnU2xpY2UodHMsIHJ3LCByZWcsCi0gICAgICAgICAgewotICAgICAgICAgICAgcnc6IHJ3LAotICAgICAgICAgICAgcmVnOiByZWcsCi0gICAgICAgICAgICBsZW46IGxlbiwKLSAgICAgICAgICAgIGRhdGE6IGRhdGEKLSAgICAgICAgICB9KTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBmbGlwRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IC9wbGFuZT0oXGQrKSwgb2JqPShcdyspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIHBsYW5lID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotICAgICAgdmFyIG9iaiA9IGV2ZW50WzJdOwotICAgICAgaWYgKGV2ZW50TmFtZSA9PSAnaTkxNV9mbGlwX3JlcXVlc3QnKQotICAgICAgICB0aGlzLmk5MTVGbGlwT3BlblNsaWNlKHRzLCBvYmosIHBsYW5lKTsKLSAgICAgIGVsc2UKLSAgICAgICAgdGhpcy5pOTE1RmxpcENsb3NlU2xpY2UodHMsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG9iajogb2JqLAotICAgICAgICAgICAgICBwbGFuZTogcGxhbmUKLSAgICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGdwdUZyZXF1ZW5jeTogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW12ZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL25ld19mcmVxPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIHZhciBmcmVxID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotCi0gICAgICB0aGlzLmk5MTVGcmVxQ2hhbmdlU2xpY2UodHMsIGV2ZW50TmFtZSwgewotICAgICAgICAgICAgZnJlcTogZnJlcQotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9OwotCi0gIFBhcnNlci5yZWdpc3RlcihJOTE1UGFyc2VyKTsKLQotICByZXR1cm4gewotICAgIEk5MTVQYXJzZXI6IEk5MTVQYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaXJxX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pcnFfcGFyc2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlNDUyNjIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pcnFfcGFyc2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGRybSBkcml2ZXIgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IGlycSB0cmFjZSBldmVudHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gSXJxUGFyc2VyKGltcG9ydGVyKSB7Ci0gICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOwotCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2lycV9oYW5kbGVyX2VudHJ5JywKLSAgICAgICAgSXJxUGFyc2VyLnByb3RvdHlwZS5pcnFIYW5kbGVyRW50cnlFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaXJxX2hhbmRsZXJfZXhpdCcsCi0gICAgICAgIElycVBhcnNlci5wcm90b3R5cGUuaXJxSGFuZGxlckV4aXRFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignc29mdGlycV9yYWlzZScsCi0gICAgICAgIElycVBhcnNlci5wcm90b3R5cGUuc29mdGlycVJhaXNlRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3NvZnRpcnFfZW50cnknLAotICAgICAgICBJcnFQYXJzZXIucHJvdG90eXBlLnNvZnRpcnFFbnRyeUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdzb2Z0aXJxX2V4aXQnLAotICAgICAgICBJcnFQYXJzZXIucHJvdG90eXBlLnNvZnRpcnFFeGl0RXZlbnQuYmluZCh0aGlzKSk7Ci0gIH0KLQotICAvLyBNYXRjaGVzIHRoZSBpcnFfaGFuZGxlcl9lbnRyeSByZWNvcmQKLSAgdmFyIGlycUhhbmRsZXJFbnRyeVJFID0gL2lycT0oXGQrKSBuYW1lPSguKykvOwotCi0gIC8vIE1hdGNoZXMgdGhlIGlycV9oYW5kbGVyX2V4aXQgcmVjb3JkCi0gIHZhciBpcnFIYW5kbGVyRXhpdFJFID0gL2lycT0oXGQrKSByZXQ9KC4rKS87Ci0KLSAgLy8gTWF0Y2hlcyB0aGUgc29mdGlycV9yYWlzZSByZWNvcmQKLSAgdmFyIHNvZnRpcnFSRSA9IC92ZWM9KFxkKykgXFthY3Rpb249KC4rKVxdLzsKLQotICBJcnFQYXJzZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKLQotICAgIC8qKgotICAgICAqIFBhcnNlcyBpcnEgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBtcG9ydGVyLgotICAgICAqLwotICAgIGlycUhhbmRsZXJFbnRyeUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSBpcnFIYW5kbGVyRW50cnlSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIGlycSA9IHBhcnNlSW50KGV2ZW50WzFdKTsKLSAgICAgIHZhciBuYW1lID0gZXZlbnRbMl07Ci0KLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKAotICAgICAgICAgICdpcnFzIGNwdSAnICsgY3B1TnVtYmVyKTsKLSAgICAgIHRocmVhZC5sYXN0RW50cnlUcyA9IHRzOwotICAgICAgdGhyZWFkLmlycU5hbWUgPSBuYW1lOwotCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgaXJxSGFuZGxlckV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gaXJxSGFuZGxlckV4aXRSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIGlycSA9IHBhcnNlSW50KGV2ZW50WzFdKTsKLSAgICAgIHZhciByZXQgPSBldmVudFsyXTsKLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKAotICAgICAgICAgICdpcnFzIGNwdSAnICsgY3B1TnVtYmVyKTsKLQotICAgICAgaWYgKHRocmVhZC5sYXN0RW50cnlUcyAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHZhciBkdXJhdGlvbiA9IHRzIC0gdGhyZWFkLmxhc3RFbnRyeVRzOwotICAgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoCi0gICAgICAgICAgICAnJywgdGhyZWFkLmlycU5hbWUsCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudFsxXSksCi0gICAgICAgICAgICB0aHJlYWQubGFzdEVudHJ5VHMsIHsgcmV0OiByZXQgfSwKLSAgICAgICAgICAgIGR1cmF0aW9uKTsKLSAgICAgICAgdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgICB9Ci0gICAgICB0aHJlYWQubGFzdEVudHJ5VHMgPSB1bmRlZmluZWQ7Ci0gICAgICB0aHJlYWQuaXJxTmFtZSA9IHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBzb2Z0aXJxUmFpc2VFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIHNvZnRpcnFFbnRyeUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSBzb2Z0aXJxUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBhY3Rpb24gPSBldmVudFsyXTsKLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKAotICAgICAgICAgICdzb2Z0aXJxIGNwdSAnICsgY3B1TnVtYmVyKTsKLSAgICAgIHRocmVhZC5sYXN0RW50cnlUcyA9IHRzOwotCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgc29mdGlycUV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gc29mdGlycVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgdmVjID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotICAgICAgdmFyIGFjdGlvbiA9IGV2ZW50WzJdOwotICAgICAgdmFyIHRocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoCi0gICAgICAgICAgJ3NvZnRpcnEgY3B1ICcgKyBjcHVOdW1iZXIpOwotCi0gICAgICBpZiAodGhyZWFkLmxhc3RFbnRyeVRzICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdmFyIGR1cmF0aW9uID0gdHMgLSB0aHJlYWQubGFzdEVudHJ5VHM7Ci0gICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgKLSAgICAgICAgICAgICcnLCBhY3Rpb24sCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudFsxXSksCi0gICAgICAgICAgICB0aHJlYWQubGFzdEVudHJ5VHMsIHsgdmVjOiB2ZWMgfSwKLSAgICAgICAgICAgIGR1cmF0aW9uKTsKLSAgICAgICAgdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgICB9Ci0gICAgICB0aHJlYWQubGFzdEVudHJ5VHMgPSB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgUGFyc2VyLnJlZ2lzdGVyKElycVBhcnNlcik7Ci0KLSAgcmV0dXJuIHsKLSAgICBJcnFQYXJzZXI6IElycVBhcnNlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYva2Z1bmNfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYva2Z1bmNfcGFyc2VyX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2JkYmFlNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2tmdW5jX3BhcnNlcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlci5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gIHRlc3QoJ2tlcm5lbEZ1bmN0aW9uUGFyc2VyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ0JpbmRlcl8yLTEyNyAgKCAxMjcpIFswMDFdIC4uLi4gIDM0MzEuOTA2NzU5OiBncmFwaF9lbnQ6IGZ1bmM9c3lzX3dyaXRlJywKLSAgICAgICdCaW5kZXJfMi0xMjcgICggMTI3KSBbMDAxXSAuLi4uICAzNDMxLjkwNjc2OTogZ3JhcGhfcmV0OiBmdW5jPXN5c193cml0ZScsCi0gICAgICAnQmluZGVyXzItMTI3ICAoIDEyNykgWzAwMV0gLi4uLiAgMzQzMS45MDY3ODU6IGdyYXBoX2VudDogZnVuYz1zeXNfd3JpdGUnLAotICAgICAgJ0JpbmRlcl8yLTEyNyAgKCAxMjcpIFswMDFdIC4uLjEgIDM0MzEuOTA2Nzk4OiB0cmFjaW5nX21hcmtfd3JpdGU6IEJ8JyArCi0gICAgICAgICAgJzEyN3xkZXF1ZXVlQnVmZmVyJywKLSAgICAgICdCaW5kZXJfMi0xMjcgICggMTI3KSBbMDAxXSAuLi4uICAzNDMxLjkwNjgwMjogZ3JhcGhfcmV0OiBmdW5jPXN5c193cml0ZScsCi0gICAgICAnQmluZGVyXzItMTI3ICAoIDEyNykgWzAwMV0gLi4uLiAgMzQzMS45MDY4NDI6IGdyYXBoX2VudDogZnVuYz1zeXNfd3JpdGUnLAotICAgICAgJ0JpbmRlcl8yLTEyNyAgKCAxMjcpIFswMDFdIC4uLjEgIDM0MzEuOTA2ODQ5OiB0cmFjaW5nX21hcmtfd3JpdGU6IEUnLAotICAgICAgJ0JpbmRlcl8yLTEyNyAgKCAxMjcpIFswMDFdIC4uLi4gIDM0MzEuOTA2ODUzOiBncmFwaF9yZXQ6IGZ1bmM9c3lzX3dyaXRlJywKLSAgICAgICdCaW5kZXJfMi0xMjcgICggMTI3KSBbMDAxXSAuLi4uICAzNDMxLjkwNjg5NjogZ3JhcGhfZW50OiBmdW5jPXN5c193cml0ZScsCi0gICAgICAnQmluZGVyXzItMTI3ICAoIDEyNykgWzAwMV0gLi4uLiAgMzQzMS45MDY5MDY6IGdyYXBoX3JldDogZnVuYz1zeXNfd3JpdGUnCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICB2YXIgcHJvY2VzcyA9IG0ucHJvY2Vzc2VzWzEyN107Ci0gICAgYXNzZXJ0LmlzTm90TnVsbChwcm9jZXNzKTsKLQotICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLnRocmVhZHNbMTI3XTsKLSAgICBhc3NlcnQuaXNOb3ROdWxsKHRocmVhZCk7Ci0KLSAgICB2YXIgc2xpY2VzID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzOwotICAgIGFzc2VydC5lcXVhbCh0aHJlYWQuc2xpY2VHcm91cC5sZW5ndGgsIDcpOwotCi0gICAgLy8gU2xpY2UgMCBpcyBhbiB1bi1zcGxpdCBzeXNfd3JpdGUKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2VzWzBdLnRpdGxlLCAnc3lzX3dyaXRlJyk7Ci0KLSAgICAvLyBTbGljZXMgMSAmIDMgYXJlIGEgc3BsaXQgc3lzX3dyaXRlCi0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlc1sxXS50aXRsZSwgJ3N5c193cml0ZScpOwotICAgIGFzc2VydC5lcXVhbChzbGljZXNbMl0udGl0bGUsICdkZXF1ZXVlQnVmZmVyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlc1szXS50aXRsZSwgJ3N5c193cml0ZSAoY29udC4pJyk7Ci0KLSAgICAvLyBTbGljZXMgNCAmIDUgYXJlIGEgc3BsaXQgc3lzX3dyaXRlIHdpdGggdGhlIGRlcXVldWVCdWZmZXIgaW4gYmV0d2VlbgotICAgIGFzc2VydC5lcXVhbChzbGljZXNbNF0udGl0bGUsICdzeXNfd3JpdGUnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2VzWzVdLnRpdGxlLCAnc3lzX3dyaXRlIChjb250LiknKTsKLQotICAgIC8vIFNsaWNlIDYgaXMgYW5vdGhlciB1bi1zcGxpdCBzeXNfd3JpdGUKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2VzWzZdLnRpdGxlLCAnc3lzX3dyaXRlJyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tYWxpX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tYWxpX3BhcnNlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWYxNzQ4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWFsaV9wYXJzZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQYXJzZXMgTWFsaSBEREsva2VybmVsIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgotICovCi10ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7Ci0KLSAgLyoqCi0gICAqIFBhcnNlcyBNYWxpIERESy9rZXJuZWwgdHJhY2UgZXZlbnRzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIE1hbGlQYXJzZXIoaW1wb3J0ZXIpIHsKLSAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7Ci0KLSAgICAvLyBrZXJuZWwgRFZGUyBldmVudHMKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbWFsaV9kdmZzX2V2ZW50JywKLSAgICAgICAgTWFsaVBhcnNlci5wcm90b3R5cGUuZHZmc0V2ZW50RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21hbGlfZHZmc19zZXRfY2xvY2snLAotICAgICAgICBNYWxpUGFyc2VyLnByb3RvdHlwZS5kdmZzU2V0Q2xvY2tFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbWFsaV9kdmZzX3NldF92b2x0YWdlJywKLSAgICAgICAgTWFsaVBhcnNlci5wcm90b3R5cGUuZHZmc1NldFZvbHRhZ2VFdmVudC5iaW5kKHRoaXMpKTsKLQotICAgIC8vIGtlcm5lbCBNYWxpIGh3IGNvdW50ZXIgZXZlbnRzCi0gICAgdGhpcy5hZGRKTUNvdW50ZXIoJ21hbGlfaHdjX01FU1NBR0VTX1NFTlQnLCAnTWVzc2FnZXMgU2VudCcpOwotICAgIHRoaXMuYWRkSk1Db3VudGVyKCdtYWxpX2h3Y19NRVNTQUdFU19SRUNFSVZFRCcsICdNZXNzYWdlcyBSZWNlaXZlZCcpOwotICAgIHRoaXMuYWRkSk1DeWNsZXMoJ21hbGlfaHdjX0dQVV9BQ1RJVkUnLCAnR1BVIEFjdGl2ZScpOwotICAgIHRoaXMuYWRkSk1DeWNsZXMoJ21hbGlfaHdjX0lSUV9BQ1RJVkUnLCAnSVJRIEFjdGl2ZScpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA3OyBpKyspIHsKLSAgICAgIHZhciBqb2JTdHIgPSAnSlMnICsgaTsKLSAgICAgIHZhciBqb2JIV0NTdHIgPSAnbWFsaV9od2NfJyArIGpvYlN0cjsKLSAgICAgIHRoaXMuYWRkSk1Db3VudGVyKGpvYkhXQ1N0ciArICdfSk9CUycsIGpvYlN0ciArICcgSm9icycpOwotICAgICAgdGhpcy5hZGRKTUNvdW50ZXIoam9iSFdDU3RyICsgJ19UQVNLUycsIGpvYlN0ciArICcgVGFza3MnKTsKLSAgICAgIHRoaXMuYWRkSk1DeWNsZXMoam9iSFdDU3RyICsgJ19BQ1RJVkUnLCBqb2JTdHIgKyAnIEFjdGl2ZScpOwotICAgICAgdGhpcy5hZGRKTUN5Y2xlcyhqb2JIV0NTdHIgKyAnX1dBSVRfUkVBRCcsIGpvYlN0ciArICcgV2FpdCBSZWFkJyk7Ci0gICAgICB0aGlzLmFkZEpNQ3ljbGVzKGpvYkhXQ1N0ciArICdfV0FJVF9JU1NVRScsIGpvYlN0ciArICcgV2FpdCBJc3N1ZScpOwotICAgICAgdGhpcy5hZGRKTUN5Y2xlcyhqb2JIV0NTdHIgKyAnX1dBSVRfREVQRU5EJywgam9iU3RyICsgJyBXYWl0IERlcGVuZCcpOwotICAgICAgdGhpcy5hZGRKTUN5Y2xlcyhqb2JIV0NTdHIgKyAnX1dBSVRfRklOSVNIJywgam9iU3RyICsgJyBXYWl0IEZpbmlzaCcpOwotICAgIH0KLQotICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19UUklBTkdMRVMnLCAnVHJpYW5nbGVzJyk7Ci0gICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1FVQURTJywgJ1F1YWRzJyk7Ci0gICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1BPTFlHT05TJywgJ1BvbHlnb25zJyk7Ci0gICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1BPSU5UUycsICdQb2ludHMnKTsKLSAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfTElORVMnLCAnTGluZXMnKTsKLSAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfVkNBQ0hFX0hJVCcsICdWQ2FjaGUgSGl0Jyk7Ci0gICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1ZDQUNIRV9NSVNTJywgJ1ZDYWNoZSBNaXNzJyk7Ci0gICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX0ZST05UX0ZBQ0lORycsICdGcm9udCBGYWNpbmcnKTsKLSAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfQkFDS19GQUNJTkcnLCAnQmFjayBGYWNpbmcnKTsKLSAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfUFJJTV9WSVNJQkxFJywgJ1ByaW0gVmlzaWJsZScpOwotICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19QUklNX0NVTExFRCcsICdQcmltIEN1bGxlZCcpOwotICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19QUklNX0NMSVBQRUQnLCAnUHJpbSBDbGlwcGVkJyk7Ci0KLSAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfV1JCVUZfSElUJywgJ1dyYnVmIEhpdCcpOwotICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19XUkJVRl9NSVNTJywgJ1dyYnVmIE1pc3MnKTsKLSAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfV1JCVUZfTElORScsICdXcmJ1ZiBMaW5lJyk7Ci0gICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1dSQlVGX1BBUlRJQUwnLCAnV3JidWYgUGFydGlhbCcpOwotICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19XUkJVRl9TVEFMTCcsICdXcmJ1ZiBTdGFsbCcpOwotCi0gICAgdGhpcy5hZGRUaWxlckN5Y2xlcygnbWFsaV9od2NfQUNUSVZFJywgJ1RpbGVyIEFjdGl2ZScpOwotICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX0lOREVYX1dBSVQnLCAnSW5kZXggV2FpdCcpOwotICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX0lOREVYX1JBTkdFX1dBSVQnLCAnSW5kZXggUmFuZ2UgV2FpdCcpOwotICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX1ZFUlRFWF9XQUlUJywgJ1ZlcnRleCBXYWl0Jyk7Ci0gICAgdGhpcy5hZGRUaWxlckN5Y2xlcygnbWFsaV9od2NfUENBQ0hFX1dBSVQnLCAnUGNhY2hlIFdhaXQnKTsKLSAgICB0aGlzLmFkZFRpbGVyQ3ljbGVzKCdtYWxpX2h3Y19XUkJVRl9XQUlUJywgJ1dyYnVmIFdhaXQnKTsKLSAgICB0aGlzLmFkZFRpbGVyQ3ljbGVzKCdtYWxpX2h3Y19CVVNfUkVBRCcsICdCdXMgUmVhZCcpOwotICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX0JVU19XUklURScsICdCdXMgV3JpdGUnKTsKLQotICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX1RJTEVSX1VUTEJfU1RBTEwnLCAnVGlsZXIgVVRMQiBTdGFsbCcpOwotICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX1RJTEVSX1VUTEJfSElUJywgJ1RpbGVyIFVUTEIgSGl0Jyk7Ci0KLSAgICB0aGlzLmFkZEZyYWdDeWNsZXMoJ21hbGlfaHdjX0ZSQUdfQUNUSVZFJywgJ0FjdGl2ZScpOwotICAgIC8qIE5COiBkb24ndCBwcm9wYWdhdGUgc3BlbGxpbmcgbWlzdGFrZXMgdG8gbGFiZWxzICovCi0gICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19QUklNQVRJVkVTJywgJ1ByaW1pdGl2ZXMnKTsKLSAgICB0aGlzLmFkZEZyYWdDb3VudGVyKCdtYWxpX2h3Y19GUkFHX1BSSU1BVElWRVNfRFJPUFBFRCcsCi0gICAgICAgICdQcmltaXRpdmVzIERyb3BwZWQnKTsKLSAgICB0aGlzLmFkZEZyYWdDeWNsZXMoJ21hbGlfaHdjX0ZSQUdfQ1lDTEVfREVTQycsICdEZXNjcmlwdG9yIFByb2Nlc3NpbmcnKTsKLSAgICB0aGlzLmFkZEZyYWdDeWNsZXMoJ21hbGlfaHdjX0ZSQUdfQ1lDTEVTX1BMUicsICdQTFIgUHJvY2Vzc2luZz8/Jyk7Ci0gICAgdGhpcy5hZGRGcmFnQ3ljbGVzKCdtYWxpX2h3Y19GUkFHX0NZQ0xFU19WRVJUJywgJ1ZlcnRleCBQcm9jZXNzaW5nJyk7Ci0gICAgdGhpcy5hZGRGcmFnQ3ljbGVzKCdtYWxpX2h3Y19GUkFHX0NZQ0xFU19UUklTRVRVUCcsICdUcmlhbmdsZSBTZXR1cCcpOwotICAgIHRoaXMuYWRkRnJhZ0N5Y2xlcygnbWFsaV9od2NfRlJBR19DWUNMRVNfUkFTVCcsICdSYXN0ZXJpemF0aW9uPz8/Jyk7Ci0gICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19USFJFQURTJywgJ1RocmVhZHMnKTsKLSAgICB0aGlzLmFkZEZyYWdDb3VudGVyKCdtYWxpX2h3Y19GUkFHX0RVTU1ZX1RIUkVBRFMnLCAnRHVtbXkgVGhyZWFkcycpOwotICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfUVVBRFNfUkFTVCcsICdRdWFkcyBSYXN0Jyk7Ci0gICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19RVUFEU19FWlNfVEVTVCcsICdRdWFkcyBFWlMgVGVzdCcpOwotICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfUVVBRFNfRVpTX0tJTExFRCcsICdRdWFkcyBFWlMgS2lsbGVkJyk7Ci0gICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19RVUFEU19MWlNfVEVTVCcsICdRdWFkcyBMWlMgVGVzdCcpOwotICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfUVVBRFNfTFpTX0tJTExFRCcsICdRdWFkcyBMWlMgS2lsbGVkJyk7Ci0gICAgdGhpcy5hZGRGcmFnQ3ljbGVzKCdtYWxpX2h3Y19GUkFHX0NZQ0xFX05PX1RJTEUnLCAnTm8gVGlsZXMnKTsKLSAgICB0aGlzLmFkZEZyYWdDb3VudGVyKCdtYWxpX2h3Y19GUkFHX05VTV9USUxFUycsICdUaWxlcycpOwotICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfVFJBTlNfRUxJTScsICdUcmFuc2FjdGlvbnMgRWxpbWluYXRlZCcpOwotCi0gICAgdGhpcy5hZGRDb21wdXRlQ3ljbGVzKCdtYWxpX2h3Y19DT01QVVRFX0FDVElWRScsICdBY3RpdmUnKTsKLSAgICB0aGlzLmFkZENvbXB1dGVDb3VudGVyKCdtYWxpX2h3Y19DT01QVVRFX1RBU0tTJywgJ1Rhc2tzJyk7Ci0gICAgdGhpcy5hZGRDb21wdXRlQ291bnRlcignbWFsaV9od2NfQ09NUFVURV9USFJFQURTJywgJ1RocmVhZHMgU3RhcnRlZCcpOwotICAgIHRoaXMuYWRkQ29tcHV0ZUN5Y2xlcygnbWFsaV9od2NfQ09NUFVURV9DWUNMRVNfREVTQycsCi0gICAgICAgICdXYWl0aW5nIGZvciBEZXNjcmlwdG9ycycpOwotCi0gICAgdGhpcy5hZGRUcmlwaXBlQ3ljbGVzKCdtYWxpX2h3Y19UUklQSVBFX0FDVElWRScsICdBY3RpdmUnKTsKLQotICAgIHRoaXMuYWRkQXJpdGhDb3VudGVyKCdtYWxpX2h3Y19BUklUSF9XT1JEUycsICdJbnN0cnVjdGlvbnMgKC9QaXBlcyknKTsKLSAgICB0aGlzLmFkZEFyaXRoQ3ljbGVzKCdtYWxpX2h3Y19BUklUSF9DWUNMRVNfUkVHJywKLSAgICAgICAgJ1JlZyBzY2hlZHVsaW5nIHN0YWxscyAoL1BpcGVzKScpOwotICAgIHRoaXMuYWRkQXJpdGhDeWNsZXMoJ21hbGlfaHdjX0FSSVRIX0NZQ0xFU19MMCcsCi0gICAgICAgICdMMCBjYWNoZSBtaXNzIHN0YWxscyAoL1BpcGVzKScpOwotICAgIHRoaXMuYWRkQXJpdGhDb3VudGVyKCdtYWxpX2h3Y19BUklUSF9GUkFHX0RFUEVORCcsCi0gICAgICAgICdGcmFnIGRlcCBjaGVjayBmYWlsdXJlcyAoL1BpcGVzKScpOwotCi0gICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1dPUkRTJywgJ0luc3RydWN0aW9uIFdvcmRzIENvbXBsZXRlZCcpOwotICAgIHRoaXMuYWRkTFNDb3VudGVyKCdtYWxpX2h3Y19MU19JU1NVRVMnLCAnRnVsbCBQaXBlbGluZSBJc3N1ZXMnKTsKLSAgICB0aGlzLmFkZExTQ291bnRlcignbWFsaV9od2NfTFNfUkVTVEFSVFMnLCAnUmVzdGFydHMgKHVucGFpcmFibGUgaW5zdHMpJyk7Ci0gICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1JFSVNTVUVTX01JU1MnLAotICAgICAgICAnUGlwZWxpbmUgcmVpc3N1ZSAoY2FjaGUgbWlzcy91VExCKScpOwotICAgIHRoaXMuYWRkTFNDb3VudGVyKCdtYWxpX2h3Y19MU19SRUlTU1VFU19WRCcsCi0gICAgICAgICdQaXBlbGluZSByZWlzc3VlICh2YXJ5aW5nIGRhdGEpJyk7Ci0gICAgLyogVE9ETyhzbGVmZmxlcikgZml4IGtlcm5lbCBldmVudCB0eXBvICovCi0gICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1JFSVNTVUVfQVRUUklCX01JU1MnLAotICAgICAgICAnUGlwZWxpbmUgcmVpc3N1ZSAoYXR0cmlidXRlIGNhY2hlIG1pc3MpJyk7Ci0gICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1JFSVNTVUVfTk9fV0InLCAnV3JpdGViYWNrIG5vdCB1c2VkJyk7Ci0KLSAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9XT1JEUycsICdXb3JkcycpOwotICAgIHRoaXMuYWRkVGV4Q291bnRlcignbWFsaV9od2NfVEVYX0JVQkJMRVMnLCAnQnViYmxlcycpOwotICAgIHRoaXMuYWRkVGV4Q291bnRlcignbWFsaV9od2NfVEVYX1dPUkRTX0wwJywgJ1dvcmRzIEwwJyk7Ci0gICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfV09SRFNfREVTQycsICdXb3JkcyBEZXNjJyk7Ci0gICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfVEhSRUFEUycsICdUaHJlYWRzJyk7Ci0gICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfUkVDSVJDX0ZNSVNTJywgJ1JlY2lyYyBkdWUgdG8gRnVsbCBNaXNzJyk7Ci0gICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfUkVDSVJDX0RFU0MnLCAnUmVjaXJjIGR1ZSB0byBEZXNjIE1pc3MnKTsKLSAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9SRUNJUkNfTVVMVEknLCAnUmVjaXJjIGR1ZSB0byBNdWx0aXBhc3MnKTsKLSAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9SRUNJUkNfUE1JU1MnLAotICAgICAgICAnUmVjaXJjIGR1ZSB0byBQYXJ0aWFsIENhY2hlIE1pc3MnKTsKLSAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9SRUNJUkNfQ09ORicsCi0gICAgICAgICdSZWNpcmMgZHVlIHRvIENhY2hlIENvbmZsaWN0Jyk7Ci0KLSAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19SRUFEX0hJVFMnLCAnUmVhZCBIaXRzJyk7Ci0gICAgdGhpcy5hZGRMU0NDb3VudGVyKCdtYWxpX2h3Y19MU0NfUkVBRF9NSVNTRVMnLCAnUmVhZCBNaXNzZXMnKTsKLSAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19XUklURV9ISVRTJywgJ1dyaXRlIEhpdHMnKTsKLSAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19XUklURV9NSVNTRVMnLCAnV3JpdGUgTWlzc2VzJyk7Ci0gICAgdGhpcy5hZGRMU0NDb3VudGVyKCdtYWxpX2h3Y19MU0NfQVRPTUlDX0hJVFMnLCAnQXRvbWljIEhpdHMnKTsKLSAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19BVE9NSUNfTUlTU0VTJywgJ0F0b21pYyBNaXNzZXMnKTsKLSAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19MSU5FX0ZFVENIRVMnLCAnTGluZSBGZXRjaGVzJyk7Ci0gICAgdGhpcy5hZGRMU0NDb3VudGVyKCdtYWxpX2h3Y19MU0NfRElSVFlfTElORScsICdEaXJ0eSBMaW5lcycpOwotICAgIHRoaXMuYWRkTFNDQ291bnRlcignbWFsaV9od2NfTFNDX1NOT09QUycsICdTbm9vcHMnKTsKLQotICAgIHRoaXMuYWRkQVhJQ291bnRlcignbWFsaV9od2NfQVhJX1RMQl9TVEFMTCcsICdBZGRyZXNzIGNoYW5uZWwgc3RhbGwnKTsKLSAgICB0aGlzLmFkZEFYSUNvdW50ZXIoJ21hbGlfaHdjX0FYSV9UTEJfTUlTUycsICdDYWNoZSBNaXNzJyk7Ci0gICAgdGhpcy5hZGRBWElDb3VudGVyKCdtYWxpX2h3Y19BWElfVExCX1RSQU5TQUNUSU9OJywgJ1RyYW5zYWN0aW9ucycpOwotICAgIHRoaXMuYWRkQVhJQ291bnRlcignbWFsaV9od2NfTFNfVExCX01JU1MnLCAnTFMgQ2FjaGUgTWlzcycpOwotICAgIHRoaXMuYWRkQVhJQ291bnRlcignbWFsaV9od2NfTFNfVExCX0hJVCcsICdMUyBDYWNoZSBIaXQnKTsKLSAgICB0aGlzLmFkZEFYSUNvdW50ZXIoJ21hbGlfaHdjX0FYSV9CRUFUU19SRUFEJywgJ1JlYWQgQmVhdHMnKTsKLSAgICB0aGlzLmFkZEFYSUNvdW50ZXIoJ21hbGlfaHdjX0FYSV9CRUFUU19XUklURScsICdXcml0ZSBCZWF0cycpOwotCi0gICAgdGhpcy5hZGRNTVVDb3VudGVyKCdtYWxpX2h3Y19NTVVfVEFCTEVfV0FMSycsICdQYWdlIFRhYmxlIFdhbGtzJyk7Ci0gICAgdGhpcy5hZGRNTVVDb3VudGVyKCdtYWxpX2h3Y19NTVVfUkVQTEFZX01JU1MnLAotICAgICAgICAnQ2FjaGUgTWlzcyBmcm9tIFJlcGxheSBCdWZmZXInKTsKLSAgICB0aGlzLmFkZE1NVUNvdW50ZXIoJ21hbGlfaHdjX01NVV9SRVBMQVlfRlVMTCcsICdSZXBsYXkgQnVmZmVyIEZ1bGwnKTsKLSAgICB0aGlzLmFkZE1NVUNvdW50ZXIoJ21hbGlfaHdjX01NVV9ORVdfTUlTUycsICdDYWNoZSBNaXNzIG9uIE5ldyBSZXF1ZXN0Jyk7Ci0gICAgdGhpcy5hZGRNTVVDb3VudGVyKCdtYWxpX2h3Y19NTVVfSElUJywgJ0NhY2hlIEhpdCcpOwotCi0gICAgdGhpcy5hZGRNTVVDeWNsZXMoJ21hbGlfaHdjX1VUTEJfU1RBTEwnLCAnVVRMQiBTdGFsbGVkJyk7Ci0gICAgdGhpcy5hZGRNTVVDeWNsZXMoJ21hbGlfaHdjX1VUTEJfUkVQTEFZX01JU1MnLCAnVVRMQiBSZXBsYXkgTWlzcycpOwotICAgIHRoaXMuYWRkTU1VQ3ljbGVzKCdtYWxpX2h3Y19VVExCX1JFUExBWV9GVUxMJywgJ1VUTEIgUmVwbGF5IEZ1bGwnKTsKLSAgICB0aGlzLmFkZE1NVUN5Y2xlcygnbWFsaV9od2NfVVRMQl9ORVdfTUlTUycsICdVVExCIE5ldyBNaXNzJyk7Ci0gICAgdGhpcy5hZGRNTVVDeWNsZXMoJ21hbGlfaHdjX1VUTEJfSElUJywgJ1VUTEIgSGl0Jyk7Ci0KLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfUkVBRF9CRUFUUycsICdSZWFkIEJlYXRzJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1dSSVRFX0JFQVRTJywgJ1dyaXRlIEJlYXRzJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0FOWV9MT09LVVAnLCAnQW55IExvb2t1cCcpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9SRUFEX0xPT0tVUCcsICdSZWFkIExvb2t1cCcpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9TUkVBRF9MT09LVVAnLCAnU2hhcmVhYmxlIFJlYWQgTG9va3VwJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1JFQURfUkVQTEFZJywgJ1JlYWQgUmVwbGF5ZWQnKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfUkVBRF9TTk9PUCcsICdSZWFkIFNub29wJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1JFQURfSElUJywgJ1JlYWQgQ2FjaGUgSGl0Jyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0NMRUFOX01JU1MnLCAnQ2xlYW5VbmlxdWUgTWlzcycpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9XUklURV9MT09LVVAnLCAnV3JpdGUgTG9va3VwJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1NXUklURV9MT09LVVAnLCAnU2hhcmVhYmxlIFdyaXRlIExvb2t1cCcpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9XUklURV9SRVBMQVknLCAnV3JpdGUgUmVwbGF5ZWQnKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfV1JJVEVfU05PT1AnLCAnV3JpdGUgU25vb3AnKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfV1JJVEVfSElUJywgJ1dyaXRlIENhY2hlIEhpdCcpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfUkVBRF9GVUxMJywgJ0V4dFJEIHdpdGggQklVIEZ1bGwnKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1JFQURfSEFMRicsICdFeHRSRCB3aXRoIEJJVSA+MS8yIEZ1bGwnKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1dSSVRFX0ZVTEwnLCAnRXh0V1Igd2l0aCBCSVUgRnVsbCcpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfV1JJVEVfSEFMRicsICdFeHRXUiB3aXRoIEJJVSA+MS8yIEZ1bGwnKTsKLQotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfUkVBRCcsICdFeHRlcm5hbCBSZWFkIChFeHRSRCknKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1JFQURfTElORScsICdFeHRSRCAobGluZWZpbGwpJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9XUklURScsICdFeHRlcm5hbCBXcml0ZSAoRXh0V1IpJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9XUklURV9MSU5FJywgJ0V4dFdSIChsaW5lZmlsbCknKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1dSSVRFX1NNQUxMJywgJ0V4dFdSIChidXJzdCBzaXplIDw2NEIpJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9CQVJSSUVSJywgJ0V4dGVybmFsIEJhcnJpZXInKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX0FSX1NUQUxMJywgJ0FkZHJlc3MgUmVhZCBzdGFsbHMnKTsKLSAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1JfQlVGX0ZVTEwnLAotICAgICAgICAnUmVzcG9uc2UgQnVmZmVyIGZ1bGwgc3RhbGxzJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9SRF9CVUZfRlVMTCcsCi0gICAgICAgICdSZWFkIERhdGEgQnVmZmVyIGZ1bGwgc3RhbGxzJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9SX1JBVycsICdSQVcgaGF6YXJkIHN0YWxscycpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfV19TVEFMTCcsICdXcml0ZSBEYXRhIHN0YWxscycpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfV19CVUZfRlVMTCcsICdXcml0ZSBEYXRhIEJ1ZmZlciBmdWxsJyk7Ci0gICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9SX1dfSEFaQVJEJywgJ1dBVyBvciBXQVIgaGF6YXJkIHN0YWxscycpOwotICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9UQUdfSEFaQVJEJywgJ1RhZyBoYXphcmQgcmVwbGF5cycpOwotICAgIHRoaXMuYWRkTDJDeWNsZXMoJ21hbGlfaHdjX0wyX1NOT09QX0ZVTEwnLCAnU25vb3AgYnVmZmVyIGZ1bGwnKTsKLSAgICB0aGlzLmFkZEwyQ3ljbGVzKCdtYWxpX2h3Y19MMl9SRVBMQVlfRlVMTCcsICdSZXBsYXkgYnVmZmVyIGZ1bGwnKTsKLQotICAgIC8vIERESyBldmVudHMgKGZyb20gWCBzZXJ2ZXIpCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3RyYWNpbmdfbWFya193cml0ZTptYWxpX2RyaXZlcicsCi0gICAgICAgIE1hbGlQYXJzZXIucHJvdG90eXBlLm1hbGlEREtFdmVudC5iaW5kKHRoaXMpKTsKLQotICAgIHRoaXMubW9kZWxfID0gaW1wb3J0ZXIubW9kZWxfOwotICB9Ci0KLSAgTWFsaVBhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAotCi0gICAgbWFsaURES09wZW5TbGljZTogZnVuY3Rpb24ocGlkLCB0aWQsIHRzLCBmdW5jLCBibG9ja2luZm8pIHsKLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocGlkKQotICAgICAgICAuZ2V0T3JDcmVhdGVUaHJlYWQodGlkKTsKLSAgICAgIHZhciBmdW5jQXJncyA9IC9eKFtcd1xkX10qKSg/OlwoXCkpPzo/XHMqKC4qKSQvLmV4ZWMoZnVuYyk7Ci0gICAgICB0aHJlYWQuc2xpY2VHcm91cC5iZWdpblNsaWNlKCdncHUtZHJpdmVyJywgZnVuY0FyZ3NbMV0sIHRzLAotICAgICAgICAgIHsgJ2FyZ3MnOiBmdW5jQXJnc1syXSwKLSAgICAgICAgICAgICdibG9ja2luZm8nOiBibG9ja2luZm8gfSk7Ci0gICAgfSwKLQotICAgIG1hbGlEREtDbG9zZVNsaWNlOiBmdW5jdGlvbihwaWQsIHRpZCwgdHMsIGFyZ3MsIGJsb2NraW5mbykgewotICAgICAgdmFyIHRocmVhZCA9IHRoaXMuaW1wb3J0ZXIubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwaWQpCi0gICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZCh0aWQpOwotICAgICAgaWYgKCF0aHJlYWQuc2xpY2VHcm91cC5vcGVuU2xpY2VDb3VudCkgewotICAgICAgICAvLyBEaXNjYXJkIHVubWF0Y2hlZCBlbmRzLgotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICB0aHJlYWQuc2xpY2VHcm91cC5lbmRTbGljZSh0cyk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIERlZHVjZSB0aGUgZm9ybWF0IG9mIE1hbGkgcGVyZiBldmVudHMuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIHtSZWdFeHB9IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHBhcnNpbmcgZGF0YSB3aGVuIHRoZSBmb3JtYXQKLSAgICAgKiBpcyByZWNvZ25pemVkOyBvdGhlcndpc2UgbnVsbC4KLSAgICAgKi8KLSAgICBhdXRvRGV0ZWN0TGluZVJFOiBmdW5jdGlvbihsaW5lKSB7Ci0gICAgICAvLyBNYXRjaGVzIE1hbGkgcGVyZiBldmVudHMgd2l0aCB0aHJlYWQgaW5mbwotICAgICAgdmFyIGxpbmVSRVdpdGhUaHJlYWQgPQotICAgICAgICAgIC9eXHMqXCgoW1x3XC1dKilcKVxzKihcdyspOlxzKihbXHdcXFwvXC5cLV0qQFxkKik6P1xzKiguKikkLzsKLSAgICAgIGlmIChsaW5lUkVXaXRoVGhyZWFkLnRlc3QobGluZSkpCi0gICAgICAgIHJldHVybiBsaW5lUkVXaXRoVGhyZWFkOwotCi0gICAgICAvLyBNYXRjaGVzIG9sZC1zdHlsZSBNYWxpIHBlcmYgZXZlbnRzCi0gICAgICB2YXIgbGluZVJFTm9UaHJlYWQgPSAvXnMqKCkoXHcrKTpccyooW1x3XFxcLy5cLV0qKTo/XHMqKC4qKSQvOwotICAgICAgaWYgKGxpbmVSRU5vVGhyZWFkLnRlc3QobGluZSkpCi0gICAgICAgIHJldHVybiBsaW5lUkVOb1RocmVhZDsKLSAgICAgIHJldHVybiBudWxsOwotICAgIH0sCi0KLSAgICBsaW5lUkU6IG51bGwsCi0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgbWFsaURESyBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUgaW4gdGhlIGltcG9ydGVyLgotICAgICAqIGV2ZW50cyB3aWxsIGNvbWUgaW4gcGFpcnMgd2l0aCBhIGNyb3NfdHJhY2VfcHJpbnRfZW50ZXIKLSAgICAgKiBsaWtlIHRoaXMgKGxpbmUgYnJva2VuIGhlcmUgZm9yIGZvcm1hdHRpbmcpOgotICAgICAqCi0gICAgICogdHJhY2luZ19tYXJrX3dyaXRlOiBtYWxpX2RyaXZlcjogKG1hbGktMDEyMzQ1KSBjcm9zX3RyYWNlX3ByaW50X2VudGVyOiBcCi0gICAgICogICBnbGVzL3NyYy90ZXh0dXJlL21hbGlfZ2xlc190ZXh0dXJlX3NsYXZlLmNAMTUwNTogZ2xlczJfdGV4dHVyZXBfdXBsb2FkCi0gICAgICoKLSAgICAgKiBhbmQgYSBjcm9zX3RyYWNlX3ByaW50X2V4aXQgbGlrZSB0aGlzOgotICAgICAqCi0gICAgICogdHJhY2luZ19tYXJrX3dyaXRlOiBtYWxpX2RyaXZlcjogKG1hbGktMDEyMzQ1KSBjcm9zX3RyYWNlX3ByaW50X2V4aXQ6IFwKLSAgICAgKiAgIGdsZXMvc3JjL3RleHR1cmUvbWFsaV9nbGVzX3RleHR1cmVfc2xhdmUuY0AxNTA1OgotICAgICAqLwotICAgIG1hbGlEREtFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgaWYgKHRoaXMubGluZVJFID09IG51bGwpIHsKLSAgICAgICAgdGhpcy5saW5lUkUgPSB0aGlzLmF1dG9EZXRlY3RMaW5lUkUoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgICBpZiAodGhpcy5saW5lUkUgPT0gbnVsbCkKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0gICAgICB2YXIgbWFsaUV2ZW50ID0gdGhpcy5saW5lUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICAvLyBPbGQtc3R5bGUgTWFsaSBwZXJmIGV2ZW50cyBoYXZlIG5vIHRocmVhZCBpZCwgc28gbWFrZSBvbmUuCi0gICAgICB2YXIgdGlkID0gKG1hbGlFdmVudFsxXSA9PT0gJycgPyAnbWFsaScgOiBtYWxpRXZlbnRbMV0pOwotICAgICAgc3dpdGNoIChtYWxpRXZlbnRbMl0pIHsKLSAgICAgICAgY2FzZSAnY3Jvc190cmFjZV9wcmludF9lbnRlcic6Ci0gICAgICAgICAgdGhpcy5tYWxpRERLT3BlblNsaWNlKHBpZCwgdGlkLCB0cywgbWFsaUV2ZW50WzRdLAotICAgICAgICAgICAgICBtYWxpRXZlbnRbM10pOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICdjcm9zX3RyYWNlX3ByaW50X2V4aXQnOgotICAgICAgICAgIHRoaXMubWFsaURES0Nsb3NlU2xpY2UocGlkLCB0aWQsIHRzLCBbXSwgbWFsaUV2ZW50WzNdKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICAvKgotICAgICAqIEtlcm5lbCBldmVudCBzdXBwb3J0LgotICAgICAqLwotCi0gICAgZHZmc1NhbXBsZTogZnVuY3Rpb24oY291bnRlck5hbWUsIHNlcmllc05hbWUsIHRzLCBzKSB7Ci0gICAgICB2YXIgdmFsdWUgPSBwYXJzZUludChzKTsKLSAgICAgIHZhciBjb3VudGVyID0gdGhpcy5tb2RlbF8ua2VybmVsLgotICAgICAgICAgIGdldE9yQ3JlYXRlQ291bnRlcignRFZGUycsIGNvdW50ZXJOYW1lKTsKLSAgICAgIGlmIChjb3VudGVyLm51bVNlcmllcyA9PT0gMCkgewotICAgICAgICBjb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcyhzZXJpZXNOYW1lLAotICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY291bnRlci5uYW1lKSkpOwotICAgICAgfQotICAgICAgY291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKLSAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIHZhbHVlKTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBkdmZzRXZlbnRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL3V0aWxpemF0aW9uPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdGhpcy5kdmZzU2FtcGxlKCdEVkZTIFV0aWxpemF0aW9uJywgJ3V0aWxpemF0aW9uJywgdHMsIGV2ZW50WzFdKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBkdmZzU2V0Q2xvY2tFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL2ZyZXF1ZW5jeT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHRoaXMuZHZmc1NhbXBsZSgnRFZGUyBGcmVxdWVuY3knLCAnZnJlcXVlbmN5JywgdHMsIGV2ZW50WzFdKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBkdmZzU2V0Vm9sdGFnZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvdm9sdGFnZT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHRoaXMuZHZmc1NhbXBsZSgnRFZGUyBWb2x0YWdlJywgJ3ZvbHRhZ2UnLCB0cywgZXZlbnRbMV0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGh3Y1NhbXBsZTogZnVuY3Rpb24oY2F0LCBjb3VudGVyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL3ZhbD0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB2YXIgdmFsdWUgPSBwYXJzZUludChldmVudFsxXSk7Ci0KLSAgICAgIHZhciBjb3VudGVyID0gdGhpcy5tb2RlbF8ua2VybmVsLgotICAgICAgICAgIGdldE9yQ3JlYXRlQ291bnRlcihjYXQsIGNvdW50ZXJOYW1lKTsKLSAgICAgIGlmIChjb3VudGVyLm51bVNlcmllcyA9PT0gMCkgewotICAgICAgICBjb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcyhzZXJpZXNOYW1lLAotICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY291bnRlci5uYW1lKSkpOwotICAgICAgfQotICAgICAgY291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKLSAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIHZhbHVlKTsKLSAgICAgIH0pOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogSm9iIE1hbmFnZXIgYmxvY2sgY291bnRlcnMuCi0gICAgICovCi0gICAgam1TYW1wbGU6IGZ1bmN0aW9uKGN0ck5hbWUsIHNlcmllc05hbWUsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHJldHVybiB0aGlzLmh3Y1NhbXBsZSgnbWFsaTpqbScsICdKTTogJyArIGN0ck5hbWUsIHNlcmllc05hbWUsIHRzLAotICAgICAgICAgIGV2ZW50QmFzZSk7Ci0gICAgfSwKLSAgICBhZGRKTUNvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKLSAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgICByZXR1cm4gdGhpcy5qbVNhbXBsZShod2NUaXRsZSwgJ2NvdW50JywgdHMsIGV2ZW50QmFzZSk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKLSAgICB9LAotICAgIGFkZEpNQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7Ci0gICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuam1TYW1wbGUoaHdjVGl0bGUsICdjeWNsZXMnLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICAvKgotICAgICAqIFRpbGVyIGJsb2NrIGNvdW50ZXJzLgotICAgICAqLwotICAgIHRpbGVyU2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6dGlsZXInLCAnVGlsZXI6ICcgKyBjdHJOYW1lLCBzZXJpZXNOYW1lLAotICAgICAgICAgIHRzLCBldmVudEJhc2UpOwotICAgIH0sCi0gICAgYWRkVGlsZXJDb3VudGVyOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7Ci0gICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudGlsZXJTYW1wbGUoaHdjVGl0bGUsICdjb3VudCcsIHRzLCBldmVudEJhc2UpOwotICAgICAgfQotICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgfSwKLSAgICBhZGRUaWxlckN5Y2xlczogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgewotICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnRpbGVyU2FtcGxlKGh3Y1RpdGxlLCAnY3ljbGVzJywgdHMsIGV2ZW50QmFzZSk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgLyoKLSAgICAgKiBGcmFnbWVudCBjb3VudGVycy4KLSAgICAgKi8KLSAgICBmcmFnU2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6ZnJhZ21lbnQnLCAnRnJhZ21lbnQ6ICcgKyBjdHJOYW1lLAotICAgICAgICAgIHNlcmllc05hbWUsIHRzLCBldmVudEJhc2UpOwotICAgIH0sCi0gICAgYWRkRnJhZ0NvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKLSAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgICByZXR1cm4gdGhpcy5mcmFnU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOwotICAgIH0sCi0gICAgYWRkRnJhZ0N5Y2xlczogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgewotICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmZyYWdTYW1wbGUoaHdjVGl0bGUsICdjeWNsZXMnLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICAvKgotICAgICAqIENvbXB1dGUgY291bnRlcnMuCi0gICAgICovCi0gICAgY29tcHV0ZVNhbXBsZTogZnVuY3Rpb24oY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmNvbXB1dGUnLCAnQ29tcHV0ZTogJyArIGN0ck5hbWUsCi0gICAgICAgICAgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSk7Ci0gICAgfSwKLSAgICBhZGRDb21wdXRlQ291bnRlcjogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgewotICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVTYW1wbGUoaHdjVGl0bGUsICdjb3VudCcsIHRzLCBldmVudEJhc2UpOwotICAgICAgfQotICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgfSwKLSAgICBhZGRDb21wdXRlQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7Ci0gICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZVNhbXBsZShod2NUaXRsZSwgJ2N5Y2xlcycsIHRzLCBldmVudEJhc2UpOwotICAgICAgfQotICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogVHJpcGlwZSBjb3VudGVycy4KLSAgICAgKi8KLSAgICBhZGRUcmlwaXBlQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7Ci0gICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOnNoYWRlcicsICdUcmlwaXBlOiAnICsgaHdjVGl0bGUsICdjeWNsZXMnLAotICAgICAgICAgICAgdHMsIGV2ZW50QmFzZSk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgLyoKLSAgICAgKiBBcml0aCBjb3VudGVycy4KLSAgICAgKi8KLSAgICBhcml0aFNhbXBsZTogZnVuY3Rpb24oY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmFyaXRoJywgJ0FyaXRoOiAnICsgY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsCi0gICAgICAgICAgZXZlbnRCYXNlKTsKLSAgICB9LAotICAgIGFkZEFyaXRoQ291bnRlcjogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgewotICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmFyaXRoU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOwotICAgIH0sCi0gICAgYWRkQXJpdGhDeWNsZXM6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKLSAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgICByZXR1cm4gdGhpcy5hcml0aFNhbXBsZShod2NUaXRsZSwgJ2N5Y2xlcycsIHRzLCBldmVudEJhc2UpOwotICAgICAgfQotICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogTG9hZC9TdG9yZSBjb3VudGVycy4KLSAgICAgKi8KLSAgICBhZGRMU0NvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKLSAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6bHMnLCAnTFM6ICcgKyBod2NUaXRsZSwgJ2NvdW50JywgdHMsCi0gICAgICAgICAgICBldmVudEJhc2UpOwotICAgICAgfQotICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogVGV4dHVyZSBjb3VudGVycy4KLSAgICAgKi8KLSAgICB0ZXh0dXJlU2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6dGV4dHVyZScsICdUZXh0dXJlOiAnICsgY3RyTmFtZSwKLSAgICAgICAgICBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKTsKLSAgICB9LAotICAgIGFkZFRleENvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKLSAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgICByZXR1cm4gdGhpcy50ZXh0dXJlU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICAvKgotICAgICAqIExTQyBjb3VudGVycy4KLSAgICAgKi8KLSAgICBhZGRMU0NDb3VudGVyOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7Ci0gICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmxzYycsICdMU0M6ICcgKyBod2NUaXRsZSwgJ2NvdW50JywgdHMsCi0gICAgICAgICAgICBldmVudEJhc2UpOwotICAgICAgfQotICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogVExCIGNvdW50ZXJzLgotICAgICAqLwotICAgIGFkZEFYSUNvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKLSAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6YXhpJywgJ0FYSTogJyArIGh3Y1RpdGxlLCAnY291bnQnLCB0cywKLSAgICAgICAgICAgIGV2ZW50QmFzZSk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgLyoKLSAgICAgKiBNTVUgY291bnRlcnMuCi0gICAgICovCi0gICAgbW11U2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6bW11JywgJ01NVTogJyArIGN0ck5hbWUsIHNlcmllc05hbWUsIHRzLAotICAgICAgICAgIGV2ZW50QmFzZSk7Ci0gICAgfSwKLSAgICBhZGRNTVVDb3VudGVyOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7Ci0gICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubW11U2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOwotICAgIH0sCi0gICAgYWRkTU1VQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7Ci0gICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubW11U2FtcGxlKGh3Y1RpdGxlLCAnY3ljbGVzJywgdHMsIGV2ZW50QmFzZSk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgLyoKLSAgICAgKiBMMiBjb3VudGVycy4KLSAgICAgKi8KLSAgICBsMlNhbXBsZTogZnVuY3Rpb24oY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmwyJywgJ0wyOiAnICsgY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsCi0gICAgICAgICAgZXZlbnRCYXNlKTsKLSAgICB9LAotICAgIGFkZEwyQ291bnRlcjogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgewotICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmwyU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKLSAgICAgIH0KLSAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOwotICAgIH0sCi0gICAgYWRkTDJDeWNsZXM6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKLSAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgICByZXR1cm4gdGhpcy5sMlNhbXBsZShod2NUaXRsZSwgJ2N5Y2xlcycsIHRzLCBldmVudEJhc2UpOwotICAgICAgfQotICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgfQotICB9OwotCi0gIFBhcnNlci5yZWdpc3RlcihNYWxpUGFyc2VyKTsKLQotICByZXR1cm4gewotICAgIE1hbGlQYXJzZXI6IE1hbGlQYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWVtcmVjbGFpbV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWVtcmVjbGFpbV9wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZkMjg5Yi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL21lbXJlY2xhaW1fcGFyc2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGRybSBkcml2ZXIgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7Ci0KLSAgLyoqCi0gICAqIFBhcnNlcyBsaW51eCB2bXNjYW4gdHJhY2UgZXZlbnRzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIE1lbVJlY2xhaW1QYXJzZXIoaW1wb3J0ZXIpIHsKLSAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7Ci0KLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbW1fdm1zY2FuX2tzd2FwZF93YWtlJywKLSAgICAgICAgTWVtUmVjbGFpbVBhcnNlci5wcm90b3R5cGUua3N3YXBkV2FrZS5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbW1fdm1zY2FuX2tzd2FwZF9zbGVlcCcsCi0gICAgICAgIE1lbVJlY2xhaW1QYXJzZXIucHJvdG90eXBlLmtzd2FwZFNsZWVwLmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdtbV92bXNjYW5fZGlyZWN0X3JlY2xhaW1fYmVnaW4nLAotICAgICAgICBNZW1SZWNsYWltUGFyc2VyLnByb3RvdHlwZS5yZWNsYWltQmVnaW4uYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21tX3Ztc2Nhbl9kaXJlY3RfcmVjbGFpbV9lbmQnLAotICAgICAgICBNZW1SZWNsYWltUGFyc2VyLnByb3RvdHlwZS5yZWNsYWltRW5kLmJpbmQodGhpcykpOwotICB9Ci0KLSAgLy8gTWF0Y2hlcyB0aGUgbW1fdm1zY2FuX2tzd2FwZF93YWtlIHJlY29yZAotICAvLyAgbW1fdm1zY2FuX2tzd2FwZF93YWtlOiBuaWQ9JWQgb3JkZXI9JWQKLSAgdmFyIGtzd2FwZFdha2VSRSA9IC9uaWQ9KFxkKykgb3JkZXI9KFxkKykvOwotCi0gIC8vIE1hdGNoZXMgdGhlIG1tX3Ztc2Nhbl9rc3dhcGRfc2xlZXAgcmVjb3JkCi0gIC8vICBtbV92bXNjYW5fa3N3YXBkX3NsZWVwOiBvcmRlcj0lZAotICB2YXIga3N3YXBkU2xlZXBSRSA9IC9uaWQ9KFxkKykvOwotCi0gIC8vIE1hdGNoZXMgdGhlIG1tX3Ztc2Nhbl9kaXJlY3RfcmVjbGFpbV9iZWdpbiByZWNvcmQKLSAgLy8gIG1tX3Ztc2Nhbl9kaXJlY3RfcmVjbGFpbV9iZWdpbjogb3JkZXI9JWQgbWF5X3dyaXRlcGFnZT0lZCBnZnBfZmxhZ3M9JXMKLSAgdmFyIHJlY2xhaW1CZWdpblJFID0gL29yZGVyPShcZCspIG1heV93cml0ZXBhZ2U9XGQrIGdmcF9mbGFncz0oLispLzsKLQotICAvLyBNYXRjaGVzIHRoZSBtbV92bXNjYW5fZGlyZWN0X3JlY2xhaW1fZW5kIHJlY29yZAotICAvLyAgbW1fdm1zY2FuX2RpcmVjdF9yZWNsYWltX2VuZDogbnJfcmVjbGFpbWVkPSVsdQotICB2YXIgcmVjbGFpbUVuZFJFID0gL25yX3JlY2xhaW1lZD0oXGQrKS87Ci0KLSAgTWVtUmVjbGFpbVBhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAotCi0gICAgb3BlbkFzeW5jU2xpY2U6IGZ1bmN0aW9uKHRzLCBjYXRlZ29yeSwgdGhyZWFkTmFtZSwgcGlkLCBrZXksIG5hbWUpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKLSAgICAgICAgICBjYXRlZ29yeSArICc6JyArIHRocmVhZE5hbWUsIHBpZCk7Ci0gICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuQXN5bmNTbGljZSgKLSAgICAgICAgICBjYXRlZ29yeSwgbmFtZSwKLSAgICAgICAgICB0ci5jLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhuYW1lKSwKLSAgICAgICAgICB0cyk7Ci0gICAgICBzbGljZS5zdGFydFRocmVhZCA9IGt0aHJlYWQudGhyZWFkOwotCi0gICAgICBpZiAoIWt0aHJlYWQub3BlbkFzeW5jU2xpY2VzKSB7Ci0gICAgICAgIGt0aHJlYWQub3BlbkFzeW5jU2xpY2VzID0geyB9OwotICAgICAgfQotICAgICAga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XSA9IHNsaWNlOwotICAgIH0sCi0KLSAgICBjbG9zZUFzeW5jU2xpY2U6IGZ1bmN0aW9uKHRzLCBjYXRlZ29yeSwgdGhyZWFkTmFtZSwgcGlkLCBrZXksIGFyZ3MpIHsKLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKLSAgICAgICAgICBjYXRlZ29yeSArICc6JyArIHRocmVhZE5hbWUsIHBpZCk7Ci0gICAgICBpZiAoa3RocmVhZC5vcGVuQXN5bmNTbGljZXMpIHsKLSAgICAgICAgdmFyIHNsaWNlID0ga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XTsKLSAgICAgICAgaWYgKHNsaWNlKSB7Ci0gICAgICAgICAgc2xpY2UuZHVyYXRpb24gPSB0cyAtIHNsaWNlLnN0YXJ0OwotICAgICAgICAgIHNsaWNlLmFyZ3MgPSBhcmdzOwotICAgICAgICAgIHNsaWNlLmVuZFRocmVhZCA9IGt0aHJlYWQudGhyZWFkOwotICAgICAgICAgIHNsaWNlLnN1YlNsaWNlcyA9IFsKLSAgICAgICAgICAgIG5ldyB0ci5tb2RlbC5TbGljZShjYXRlZ29yeSwgc2xpY2UudGl0bGUsCi0gICAgICAgICAgICAgICAgc2xpY2UuY29sb3JJZCwgc2xpY2Uuc3RhcnQsIHNsaWNlLmFyZ3MsIHNsaWNlLmR1cmF0aW9uKQotICAgICAgICAgIF07Ci0gICAgICAgICAga3RocmVhZC50aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOwotICAgICAgICAgIGRlbGV0ZSBrdGhyZWFkLm9wZW5Bc3luY1NsaWNlc1trZXldOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFBhcnNlcyBtZW1yZWNsYWltIGV2ZW50cyBhbmQgc2V0cyB1cCBzdGF0ZSBpbiB0aGUgaW1wb3J0ZXIuCi0gICAgICovCi0gICAga3N3YXBkV2FrZTogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0ga3N3YXBkV2FrZVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgbmlkID0gcGFyc2VJbnQoZXZlbnRbMV0pOwotICAgICAgdmFyIG9yZGVyID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotCi0gICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoCi0gICAgICAgICAgJ2tzd2FwZDogJyArIGV2ZW50QmFzZS50aHJlYWROYW1lLAotICAgICAgICAgIHBpZCwgcGlkKTsKLSAgICAgIGlmIChrdGhyZWFkLm9wZW5TbGljZVRTKSB7Ci0gICAgICAgIGlmIChvcmRlciA+IGt0aHJlYWQub3JkZXIpIHsKLSAgICAgICAgICBrdGhyZWFkLm9yZGVyID0gb3JkZXI7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGt0aHJlYWQub3BlblNsaWNlVFMgPSB0czsKLSAgICAgICAga3RocmVhZC5vcmRlciA9IG9yZGVyOwotICAgICAgfQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGtzd2FwZFNsZWVwOiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoCi0gICAgICAgICAgJ2tzd2FwZDogJyArIGV2ZW50QmFzZS50aHJlYWROYW1lLAotICAgICAgICAgIHBpZCwgcGlkKTsKLSAgICAgIGlmIChrdGhyZWFkLm9wZW5TbGljZVRTKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgnJywgZXZlbnRCYXNlLnRocmVhZE5hbWUsCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudEJhc2UudGhyZWFkTmFtZSksCi0gICAgICAgICAgICBrdGhyZWFkLm9wZW5TbGljZVRTLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG9yZGVyOiBrdGhyZWFkLm9yZGVyCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgdHMgLSBrdGhyZWFkLm9wZW5TbGljZVRTKTsKLQotICAgICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgICB9Ci0gICAgICBrdGhyZWFkLm9wZW5TbGljZVRTID0gdW5kZWZpbmVkOwotICAgICAga3RocmVhZC5vcmRlciA9IHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICByZWNsYWltQmVnaW46IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IHJlY2xhaW1CZWdpblJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgb3JkZXIgPSBwYXJzZUludChldmVudFsxXSk7Ci0gICAgICB2YXIgZ2ZwID0gZXZlbnRbMl07Ci0KLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKLSAgICAgICAgICAnZGlyZWN0IHJlY2xhaW06ICcgKyBldmVudEJhc2UudGhyZWFkTmFtZSwKLSAgICAgICAgICBwaWQsIHBpZCk7Ci0gICAgICBrdGhyZWFkLm9wZW5TbGljZVRTID0gdHM7Ci0gICAgICBrdGhyZWFkLm9yZGVyID0gb3JkZXI7Ci0gICAgICBrdGhyZWFkLmdmcCA9IGdmcDsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICByZWNsYWltRW5kOiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSByZWNsYWltRW5kUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBucl9yZWNsYWltZWQgPSBwYXJzZUludChldmVudFsxXSk7Ci0KLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKLSAgICAgICAgICAnZGlyZWN0IHJlY2xhaW06ICcgKyBldmVudEJhc2UudGhyZWFkTmFtZSwKLSAgICAgICAgICBwaWQsIHBpZCk7Ci0gICAgICBpZiAoa3RocmVhZC5vcGVuU2xpY2VUUyAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgKLSAgICAgICAgICAgICcnLCAnZGlyZWN0IHJlY2xhaW0nLAotICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZXZlbnRCYXNlLnRocmVhZE5hbWUpLAotICAgICAgICAgICAga3RocmVhZC5vcGVuU2xpY2VUUywKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBvcmRlcjoga3RocmVhZC5vcmRlciwKLSAgICAgICAgICAgICAgICBnZnA6IGt0aHJlYWQuZ2ZwLAotICAgICAgICAgICAgICAgIG5yX3JlY2xhaW1lZDogbnJfcmVjbGFpbWVkCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgdHMgLSBrdGhyZWFkLm9wZW5TbGljZVRTKTsKLSAgICAgICAga3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOwotICAgICAgfQotICAgICAga3RocmVhZC5vcGVuU2xpY2VUUyA9IHVuZGVmaW5lZDsKLSAgICAgIGt0aHJlYWQub3JkZXIgPSB1bmRlZmluZWQ7Ci0gICAgICBrdGhyZWFkLmdmcCA9IHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICB9OwotCi0gIFBhcnNlci5yZWdpc3RlcihNZW1SZWNsYWltUGFyc2VyKTsKLQotICByZXR1cm4gewotICAgIE1lbVJlY2xhaW1QYXJzZXI6IE1lbVJlY2xhaW1QYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUxZWMzZi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQmFzZSBjbGFzcyBmb3IgbGludXggcGVyZiBldmVudCBwYXJzZXJzLgotICoKLSAqIFRoZSBsaW51eCBwZXJmIHRyYWNlIGV2ZW50IGltcG9ydGVyIGRlcGVuZHMgb24gc3ViY2xhc3NlcyBvZgotICogUGFyc2VyIHRvIHBhcnNlIGV2ZW50IGRhdGEuICBFYWNoIHN1YmNsYXNzIGNvcnJlc3BvbmRzCi0gKiB0byBhIGdyb3VwIG9mIHRyYWNlIGV2ZW50czsgZS5nLiBTY2hlZFBhcnNlciBpbXBsZW1lbnRzCi0gKiBwYXJzaW5nIG9mIHNjaGVkOioga2VybmVsIHRyYWNlIGV2ZW50cy4gIFBhcnNlciBzdWJjbGFzc2VzIG11c3QKLSAqIGNhbGwgUGFyc2VyLnJlZ2lzdGVyIHRvIGFycmFuZ2UgdG8gYmUgaW5zdGFudGlhdGVkCi0gKiBhbmQgdGhlaXIgY29uc3RydWN0b3IgbXVzdCByZWdpc3RlciB0aGVpciBldmVudCBoYW5kbGVycyB3aXRoIHRoZQotICogaW1wb3J0ZXIuICBGb3IgZXhhbXBsZSwKLSAqCi0gKiB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLSAqCi0gKiBmdW5jdGlvbiBXb3JrcXVldWVQYXJzZXIoaW1wb3J0ZXIpIHsKLSAqICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOwotICoKLSAqICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3dvcmtxdWV1ZV9leGVjdXRlX3N0YXJ0JywKLSAqICAgICAgIFdvcmtxdWV1ZVBhcnNlci5wcm90b3R5cGUuZXhlY3V0ZVN0YXJ0RXZlbnQuYmluZCh0aGlzKSk7Ci0gKiAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd3b3JrcXVldWVfZXhlY3V0ZV9lbmQnLAotICogICAgICAgV29ya3F1ZXVlUGFyc2VyLnByb3RvdHlwZS5leGVjdXRlRW5kRXZlbnQuYmluZCh0aGlzKSk7Ci0gKiB9Ci0gKgotICogUGFyc2VyLnJlZ2lzdGVyKFdvcmtxdWV1ZVBhcnNlcik7Ci0gKgotICogV2hlbiBhIHJlZ2lzdGVyZWQgZXZlbnQgbmFtZSBpcyBmb3VuZCBpbiB0aGUgZGF0YSBzdHJlYW0gdGhlIGFzc29jaWF0ZWQKLSAqIGV2ZW50IGhhbmRsZXIgaXMgaW52b2tlZDoKLSAqCi0gKiAgIGV4ZWN1dGVTdGFydEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgdHMsIGV2ZW50QmFzZSkKLSAqCi0gKiBJZiB0aGUgcm91dGluZSByZXR1cm5zIGZhbHNlIHRoZSBjYWxsZXIgd2lsbCBnZW5lcmF0ZSBhbiBpbXBvcnQgZXJyb3IKLSAqIHNheWluZyB0aGVyZSB3YXMgYSBwcm9ibGVtIHBhcnNpbmcgaXQuICBIYW5kbGVycyBjYW4gYWxzbyBlbWl0IGltcG9ydAotICogbWVzc2FnZXMgdXNpbmcgdGhpcy5pbXBvcnRlci5tb2RlbC5pbXBvcnRXYXJuaW5nLiAgSWYgdGhpcyBpcyBkb25lIGluIGxpZXUgb2YKLSAqIHRoZSBnZW5lcmljIGltcG9ydCBlcnJvciBpdCBtYXkgYmUgZGVzaXJhYmxlIGZvciB0aGUgaGFuZGxlciB0byByZXR1cm4KLSAqIHRydWUuCi0gKgotICogVHJhY2UgZXZlbnRzIGdlbmVyYXRlZCBieSB3cml0aW5nIHRvIHRoZSB0cmFjZV9tYXJrZXIgZmlsZSBhcmUgZXhwZWN0ZWQKLSAqIHRvIGhhdmUgYSBsZWFkaW5nIHRleHQgbWFya2VyIGZvbGxvd2VkIGJ5IGEgJzonOyBlLmcuIHRoZSB0cmFjZSBjbG9jawotICogc3luY2hyb25pemF0aW9uIGV2ZW50IGlzOgotICoKLSAqICB0cmFjaW5nX21hcmtfd3JpdGU6IHRyYWNlX2V2ZW50X2Nsb2NrX3N5bmM6IHBhcmVudF90cz0wCi0gKgotICogVG8gcmVnaXN0ZXIgYW4gZXZlbnQgaGFuZGxlciBmb3IgdGhlc2UgZXZlbnRzLCBwcmVwZW5kIHRoZSBtYXJrZXIgd2l0aAotICogJ3RyYWNpbmdfbWFya193cml0ZTonOyBlLmcuCi0gKgotICogICAgdGhpcy5yZWdpc3RlckV2ZW50SGFuZGxlcigndHJhY2luZ19tYXJrX3dyaXRlOnRyYWNlX2V2ZW50X2Nsb2NrX3N5bmMnLAotICoKLSAqIEFsbCBzdWJjbGFzc2VzIHNob3VsZCBkZXBlbmQgb24gaW1wb3J0ZXIubGludXhfcGVyZi5wYXJzZXIsIGUuZy4KLSAqCi0gKiB0ci5kZWZpbmVNb2R1bGUoJ2ltcG9ydGVyLmxpbnV4X3BlcmYud29ya3F1ZXVlX3BhcnNlcicpCi0gKiAgIC5kZXBlbmRzT24oJ2ltcG9ydGVyLmxpbnV4X3BlcmYucGFyc2VyJykKLSAqICAgLmV4cG9ydHNUbygndHJhY2luZycsIGZ1bmN0aW9uKCkKLSAqCi0gKiBhbmQgYmUgbGlzdGVkIGluIHRoZSBkZXBlbmRzT24gb2YgTGludXhQZXJmSW1wb3J0ZXIuICBCZXdhcmUgdGhhdCBhZnRlcgotICogYWRkaW5nIGEgbmV3IHN1YmNsYXNzIHlvdSBtdXN0IHJ1biBidWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLnB5Ci0gKiB0byByZWdlbmVyYXRlIHRyLmUuYWJvdXRfdHJhY2luZy4qLgotICovCi10ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBQYXJzZXMgbGludXggcGVyZiBldmVudHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gUGFyc2VyKGltcG9ydGVyKSB7Ci0gICAgdGhpcy5pbXBvcnRlciA9IGltcG9ydGVyOwotICAgIHRoaXMubW9kZWwgPSBpbXBvcnRlci5tb2RlbDsKLSAgfQotCi0gIFBhcnNlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBPYmplY3QucHJvdG90eXBlCi0gIH07Ci0KLSAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTsKLSAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBQYXJzZXI7Ci0gIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShQYXJzZXIsIG9wdGlvbnMpOwotCi0gIHJldHVybiB7Ci0gICAgUGFyc2VyOiBQYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3Bvd2VyX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wb3dlcl9wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNlY2NjNi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3Bvd2VyX3BhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlcl9zZXJpZXMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQYXJzZXMgcG93ZXIgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IHBvd2VyIHRyYWNlIGV2ZW50cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBQb3dlclBhcnNlcihpbXBvcnRlcikgewotICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKLQotICAgIC8vIE5COiBvbGQtc3R5bGUgcG93ZXIgZXZlbnRzLCBkZXByZWNhdGVkCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3Bvd2VyX3N0YXJ0JywKLSAgICAgICAgUG93ZXJQYXJzZXIucHJvdG90eXBlLnBvd2VyU3RhcnRFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncG93ZXJfZnJlcXVlbmN5JywKLSAgICAgICAgUG93ZXJQYXJzZXIucHJvdG90eXBlLnBvd2VyRnJlcXVlbmN5RXZlbnQuYmluZCh0aGlzKSk7Ci0KLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1X2ZyZXF1ZW5jeScsCi0gICAgICAgIFBvd2VyUGFyc2VyLnByb3RvdHlwZS5jcHVGcmVxdWVuY3lFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1X2lkbGUnLAotICAgICAgICBQb3dlclBhcnNlci5wcm90b3R5cGUuY3B1SWRsZUV2ZW50LmJpbmQodGhpcykpOwotICB9Ci0KLSAgUG93ZXJQYXJzZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKLQotICAgIGNwdVN0YXRlU2xpY2U6IGZ1bmN0aW9uKHRzLCB0YXJnZXRDcHVOdW1iZXIsIGV2ZW50VHlwZSwgY3B1U3RhdGUpIHsKLSAgICAgIHZhciB0YXJnZXRDcHUgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KHRhcmdldENwdU51bWJlcik7Ci0gICAgICB2YXIgcG93ZXJDb3VudGVyOwotICAgICAgaWYgKGV2ZW50VHlwZSAhPSAnMScpIHsKLSAgICAgICAgdGhpcy5pbXBvcnRlci5tb2RlbC5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAotICAgICAgICAgIG1lc3NhZ2U6ICdEb25cJ3QgdW5kZXJzdGFuZCBwb3dlcl9zdGFydCBldmVudHMgb2YgJyArCi0gICAgICAgICAgICAgICd0eXBlICcgKyBldmVudFR5cGUKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIHBvd2VyQ291bnRlciA9IHRhcmdldENwdS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsICdDLVN0YXRlJyk7Ci0gICAgICBpZiAocG93ZXJDb3VudGVyLm51bVNlcmllcyA9PT0gMCkgewotICAgICAgICBwb3dlckNvdW50ZXIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdzdGF0ZScsCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKLSAgICAgICAgICAgICAgICBwb3dlckNvdW50ZXIubmFtZSArICcuJyArICdzdGF0ZScpKSk7Ci0gICAgICB9Ci0gICAgICBwb3dlckNvdW50ZXIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7Ci0gICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCBjcHVTdGF0ZSk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgY3B1SWRsZVNsaWNlOiBmdW5jdGlvbih0cywgdGFyZ2V0Q3B1TnVtYmVyLCBjcHVTdGF0ZSkgewotICAgICAgdmFyIHRhcmdldENwdSA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVDcHUodGFyZ2V0Q3B1TnVtYmVyKTsKLSAgICAgIHZhciBwb3dlckNvdW50ZXIgPSB0YXJnZXRDcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCAnQy1TdGF0ZScpOwotICAgICAgaWYgKHBvd2VyQ291bnRlci5udW1TZXJpZXMgPT09IDApIHsKLSAgICAgICAgcG93ZXJDb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnc3RhdGUnLAotICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcocG93ZXJDb3VudGVyLm5hbWUpKSk7Ci0gICAgICB9Ci0gICAgICAvLyBOQjogNDI5NDk2NzI5NS8tMSBtZWFucyBhbiBleGl0IGZyb20gdGhlIGN1cnJlbnQgc3RhdGUKLSAgICAgIHZhciB2YWwgPSAoY3B1U3RhdGUgIT0gNDI5NDk2NzI5NSA/IGNwdVN0YXRlICsgMSA6IDApOwotICAgICAgcG93ZXJDb3VudGVyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cywgdmFsKTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBjcHVGcmVxdWVuY3lTbGljZTogZnVuY3Rpb24odHMsIHRhcmdldENwdU51bWJlciwgcG93ZXJTdGF0ZSkgewotICAgICAgdmFyIHRhcmdldENwdSA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVDcHUodGFyZ2V0Q3B1TnVtYmVyKTsKLSAgICAgIHZhciBwb3dlckNvdW50ZXIgPQotICAgICAgICAgIHRhcmdldENwdS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsICdDbG9jayBGcmVxdWVuY3knKTsKLSAgICAgIGlmIChwb3dlckNvdW50ZXIubnVtU2VyaWVzID09PSAwKSB7Ci0gICAgICAgIHBvd2VyQ291bnRlci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3N0YXRlJywKLSAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKAotICAgICAgICAgICAgICAgIHBvd2VyQ291bnRlci5uYW1lICsgJy4nICsgJ3N0YXRlJykpKTsKLSAgICAgIH0KLSAgICAgIHBvd2VyQ291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKLSAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIHBvd2VyU3RhdGUpOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFBhcnNlcyBwb3dlciBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUgaW4gdGhlIGltcG9ydGVyLgotICAgICAqLwotICAgIHBvd2VyU3RhcnRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL3R5cGU9KFxkKykgc3RhdGU9KFxkKSBjcHVfaWQ9KFxkKSsvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgdGFyZ2V0Q3B1TnVtYmVyID0gcGFyc2VJbnQoZXZlbnRbM10pOwotICAgICAgdmFyIGNwdVN0YXRlID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotICAgICAgdGhpcy5jcHVTdGF0ZVNsaWNlKHRzLCB0YXJnZXRDcHVOdW1iZXIsIGV2ZW50WzFdLCBjcHVTdGF0ZSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgcG93ZXJGcmVxdWVuY3lFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL3R5cGU9KFxkKykgc3RhdGU9KFxkKykgY3B1X2lkPShcZCkrLwotICAgICAgICAgIC5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIHRhcmdldENwdU51bWJlciA9IHBhcnNlSW50KGV2ZW50WzNdKTsKLSAgICAgIHZhciBwb3dlclN0YXRlID0gcGFyc2VJbnQoZXZlbnRbMl0pOwotICAgICAgdGhpcy5jcHVGcmVxdWVuY3lTbGljZSh0cywgdGFyZ2V0Q3B1TnVtYmVyLCBwb3dlclN0YXRlKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBjcHVGcmVxdWVuY3lFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gL3N0YXRlPShcZCspIGNwdV9pZD0oXGQpKy8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciB0YXJnZXRDcHVOdW1iZXIgPSBwYXJzZUludChldmVudFsyXSk7Ci0gICAgICB2YXIgcG93ZXJTdGF0ZSA9IHBhcnNlSW50KGV2ZW50WzFdKTsKLSAgICAgIHRoaXMuY3B1RnJlcXVlbmN5U2xpY2UodHMsIHRhcmdldENwdU51bWJlciwgcG93ZXJTdGF0ZSk7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgY3B1SWRsZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7Ci0gICAgICB2YXIgZXZlbnQgPSAvc3RhdGU9KFxkKykgY3B1X2lkPShcZCkrLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKLSAgICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgdmFyIHRhcmdldENwdU51bWJlciA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLSAgICAgIHZhciBjcHVTdGF0ZSA9IHBhcnNlSW50KGV2ZW50WzFdKTsKLSAgICAgIHRoaXMuY3B1SWRsZVNsaWNlKHRzLCB0YXJnZXRDcHVOdW1iZXIsIGNwdVN0YXRlKTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgfTsKLQotICBQYXJzZXIucmVnaXN0ZXIoUG93ZXJQYXJzZXIpOwotCi0gIHJldHVybiB7Ci0gICAgUG93ZXJQYXJzZXI6IFBvd2VyUGFyc2VyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wb3dlcl9wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wb3dlcl9wYXJzZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWEzNTU5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcG93ZXJfcGFyc2VyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgdGVzdCgncG93ZXJGcmVxdWVuY3lJbXBvcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnIGt3b3JrZXIvMDozLTY4ODAgIFswMDBdICAyNzg0Ljc4MzAxNTogcG93ZXJfZnJlcXVlbmN5OiAnICsKLSAgICAgICAgICAgICAgICAgJ3R5cGU9MiBzdGF0ZT0xMDAwMDAwIGNwdV9pZD0wJywKLSAgICAgICcga3dvcmtlci8xOjItNzI2OSAgWzAwMV0gIDI3ODQuNzg4OTkzOiBwb3dlcl9mcmVxdWVuY3k6ICcgKwotICAgICAgICAgICAgICAgICAndHlwZT0yIHN0YXRlPTgwMDAwMCBjcHVfaWQ9MScsCi0gICAgICAnIGt3b3JrZXIvMToyLTcyNjkgIFswMDFdICAyNzg0Ljk5MzEyMDogcG93ZXJfZnJlcXVlbmN5OiAnICsKLSAgICAgICAgICAgICAgICAgJ3R5cGU9MiBzdGF0ZT0xMzAwMDAwIGNwdV9pZD0xJwotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOwotCi0gICAgdmFyIGMwID0gbS5rZXJuZWwuY3B1c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoYzAuc2xpY2VzLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGMwLmNvdW50ZXJzWydDbG9jayBGcmVxdWVuY3knXS5zZXJpZXNbMF0uc2FtcGxlcy5sZW5ndGgsIDEpOwotCi0gICAgdmFyIGMxID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoYzEuc2xpY2VzLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGMxLmNvdW50ZXJzWydDbG9jayBGcmVxdWVuY3knXS5zZXJpZXNbMF0uc2FtcGxlcy5sZW5ndGgsIDIpOwotICB9KTsKLQotICB0ZXN0KCdjcHVGcmVxdWVuY3lJbXBvcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnICAgICBrd29ya2VyLzE6MC05NjY1ICBbMDAxXSAxNTA1MS4wMDczMDE6IGNwdV9mcmVxdWVuY3k6ICcgKwotICAgICAgICAgICAgICAgICAgICAgJ3N0YXRlPTgwMDAwMCBjcHVfaWQ9MScsCi0gICAgICAnICAgICBrd29ya2VyLzE6MC05NjY1ICBbMDAxXSAxNTA1MS4wMTAyNzg6IGNwdV9mcmVxdWVuY3k6ICcgKwotICAgICAgICAgICAgICAgICAgICAgJ3N0YXRlPTEzMDAwMDAgY3B1X2lkPTEnLAotICAgICAgJyAgICAga3dvcmtlci8wOjItNzk3MiAgWzAwMF0gMTUwNTEuMDEwMjc4OiBjcHVfZnJlcXVlbmN5OiAnICsKLSAgICAgICAgICAgICAgICAgICAgICdzdGF0ZT0xMDAwMDAwIGNwdV9pZD0wJywKLSAgICAgICcgICAgIGt3b3JrZXIvMDoyLTc5NzIgIFswMDBdIDE1MDUxLjAyMDMwNDogY3B1X2ZyZXF1ZW5jeTogJyArCi0gICAgICAgICAgICAgICAgICAgICAnc3RhdGU9ODAwMDAwIGNwdV9pZD0wJwotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOwotCi0gICAgdmFyIGMwID0gbS5rZXJuZWwuY3B1c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoYzAuc2xpY2VzLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGMwLmNvdW50ZXJzWydDbG9jayBGcmVxdWVuY3knXS5zZXJpZXNbMF0uc2FtcGxlcy5sZW5ndGgsIDIpOwotCi0gICAgdmFyIGMxID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoYzEuc2xpY2VzLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGMxLmNvdW50ZXJzWydDbG9jayBGcmVxdWVuY3knXS5zZXJpZXNbMF0uc2FtcGxlcy5sZW5ndGgsIDIpOwotICB9KTsKLQotICB0ZXN0KCdjcHVJZGxlSW1wb3J0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMF0gMTUwNTAuOTkyODgzOiBjcHVfaWRsZTogJyArCi0gICAgICAgICAgJ3N0YXRlPTEgY3B1X2lkPTAnLAotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMF0gMTUwNTAuOTkzMDI3OiBjcHVfaWRsZTogJyArCi0gICAgICAgICAgJ3N0YXRlPTQyOTQ5NjcyOTUgY3B1X2lkPTAnLAotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gMTUwNTAuOTkzMTMyOiBjcHVfaWRsZTogJyArCi0gICAgICAgICAgJ3N0YXRlPTEgY3B1X2lkPTEnLAotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gMTUwNTAuOTkzMjc2OiBjcHVfaWRsZTogJyArCi0gICAgICAgICAgJ3N0YXRlPTQyOTQ5NjcyOTUgY3B1X2lkPTEnLAotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gMTUwNTAuOTkzMjc5OiBjcHVfaWRsZTogJyArCi0gICAgICAgICAgJ3N0YXRlPTMgY3B1X2lkPTEnLAotICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gMTUwNTAuOTkzNDU3OiBjcHVfaWRsZTogJyArCi0gICAgICAgICAgJ3N0YXRlPTQyOTQ5NjcyOTUgY3B1X2lkPTEnCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICB2YXIgYzAgPSBtLmtlcm5lbC5jcHVzWzBdOwotICAgIGFzc2VydC5lcXVhbChjMC5zbGljZXMubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoYzAuY291bnRlcnNbJ0MtU3RhdGUnXS5zZXJpZXNbMF0uc2FtcGxlcy5sZW5ndGgsIDIpOwotCi0gICAgdmFyIGMxID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoYzEuc2xpY2VzLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGMxLmNvdW50ZXJzWydDLVN0YXRlJ10uc2VyaWVzWzBdLnNhbXBsZXMubGVuZ3RoLCA0KTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3JlZ3VsYXRvcl9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcmVndWxhdG9yX3BhcnNlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDUxNDk4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcmVndWxhdG9yX3BhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFBhcnNlcyByZWd1bGF0b3IgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IHJlZ3VsYXRvciB0cmFjZSBldmVudHMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gUmVndWxhdG9yUGFyc2VyKGltcG9ydGVyKSB7Ci0gICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOwotCi0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9lbmFibGUnLAotICAgICAgICBSZWd1bGF0b3JQYXJzZXIucHJvdG90eXBlLnJlZ3VsYXRvckVuYWJsZUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdyZWd1bGF0b3JfZW5hYmxlX2RlbGF5JywKLSAgICAgICAgUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JFbmFibGVEZWxheUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdyZWd1bGF0b3JfZW5hYmxlX2NvbXBsZXRlJywKLSAgICAgICAgUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JFbmFibGVDb21wbGV0ZUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdyZWd1bGF0b3JfZGlzYWJsZScsCi0gICAgICAgIFJlZ3VsYXRvclBhcnNlci5wcm90b3R5cGUucmVndWxhdG9yRGlzYWJsZUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdyZWd1bGF0b3JfZGlzYWJsZV9jb21wbGV0ZScsCi0gICAgICAgIFJlZ3VsYXRvclBhcnNlci5wcm90b3R5cGUucmVndWxhdG9yRGlzYWJsZUNvbXBsZXRlRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9zZXRfdm9sdGFnZScsCi0gICAgICAgIFJlZ3VsYXRvclBhcnNlci5wcm90b3R5cGUucmVndWxhdG9yU2V0Vm9sdGFnZUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdyZWd1bGF0b3Jfc2V0X3ZvbHRhZ2VfY29tcGxldGUnLAotICAgICAgICBSZWd1bGF0b3JQYXJzZXIucHJvdG90eXBlLnJlZ3VsYXRvclNldFZvbHRhZ2VDb21wbGV0ZUV2ZW50LmJpbmQodGhpcykpOwotCi0gICAgdGhpcy5tb2RlbF8gPSBpbXBvcnRlci5tb2RlbF87Ci0gIH0KLQotICAvLyBNYXRjaGVzIHRoZSByZWd1bGF0b3JfZW5hYmxlIHJlY29yZAotICB2YXIgcmVndWxhdG9yRW5hYmxlUkUgPSAvbmFtZT0oLispLzsKLQotICAvLyBNYXRjaGVzIHRoZSByZWd1bGF0b3JfZGlzYWJsZSByZWNvcmQKLSAgdmFyIHJlZ3VsYXRvckRpc2FibGVSRSA9IC9uYW1lPSguKykvOwotCi0gIC8vIE1hdGNoZXMgdGhlIHJlZ3VsYXRvcl9zZXRfdm9sdGFnZV9jb21wbGV0ZSByZWNvcmQKLSAgdmFyIHJlZ3VsYXRvclNldFZvbHRhZ2VDb21wbGV0ZVJFID0gL25hbWU9KFxTKyksIHZhbD0oXGQrKS87Ci0KLSAgUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCi0KLSAgICAvKioKLSAgICAgKiBHZXQgb3IgY3JlYXRlIGEgY291bnRlciB3aXRoIG9uZSBzZXJpZXMuCi0gICAgICovCi0gICAgZ2V0Q3RyXzogZnVuY3Rpb24oY3RyTmFtZSwgdmFsdWVOYW1lKSB7Ci0gICAgICB2YXIgY3RyID0gdGhpcy5tb2RlbF8ua2VybmVsCi0gICAgICAgIC5nZXRPckNyZWF0ZUNvdW50ZXIobnVsbCwgJ3ZyZWcgJyArIGN0ck5hbWUgKyAnICcgKyB2YWx1ZU5hbWUpOwotICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY291bnRlcidzIHNlcmllcyBmaWVsZHMgaWYgbmVlZGVkLgotICAgICAgaWYgKGN0ci5zZXJpZXNbMF0gPT09IHVuZGVmaW5lZCkgewotICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHZhbHVlTmFtZSwKLSAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCi0gICAgICAgIGN0ck5hbWUgKyAnLicgKyB2YWx1ZU5hbWUpKSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gY3RyOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgcmVndWxhdG9yIGV2ZW50cyBhbmQgc2V0cyB1cCBzdGF0ZSBpbiB0aGUgaW1wb3J0ZXIuCi0gICAgICovCi0gICAgcmVndWxhdG9yRW5hYmxlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IHJlZ3VsYXRvckVuYWJsZVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgbmFtZSA9IGV2ZW50WzFdOwotCi0gICAgICB2YXIgY3RyID0gdGhpcy5nZXRDdHJfKG5hbWUsICdlbmFibGVkJyk7Ci0gICAgICBjdHIuc2VyaWVzWzBdLmFkZENvdW50ZXJTYW1wbGUodHMsIDEpOwotCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgcmVndWxhdG9yRW5hYmxlRGVsYXlFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW0sIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIHJlZ3VsYXRvckVuYWJsZUNvbXBsZXRlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtLCBwaWQsIHRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgewotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIHJlZ3VsYXRvckRpc2FibGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW0sIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gcmVndWxhdG9yRGlzYWJsZVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIgbmFtZSA9IGV2ZW50WzFdOwotCi0gICAgICB2YXIgY3RyID0gdGhpcy5nZXRDdHJfKG5hbWUsICdlbmFibGVkJyk7Ci0gICAgICBjdHIuc2VyaWVzWzBdLmFkZENvdW50ZXJTYW1wbGUodHMsIDApOwotCi0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgcmVndWxhdG9yRGlzYWJsZUNvbXBsZXRlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtLCBwaWQsIHRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICByZWd1bGF0b3JTZXRWb2x0YWdlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICByZWd1bGF0b3JTZXRWb2x0YWdlQ29tcGxldGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW0sIHBpZCwgdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gcmVndWxhdG9yU2V0Vm9sdGFnZUNvbXBsZXRlUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBuYW1lID0gZXZlbnRbMV07Ci0gICAgICB2YXIgdm9sdGFnZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKLQotICAgICAgdmFyIGN0ciA9IHRoaXMuZ2V0Q3RyXyhuYW1lLCAndm9sdGFnZScpOwotICAgICAgY3RyLnNlcmllc1swXS5hZGRDb3VudGVyU2FtcGxlKHRzLCB2b2x0YWdlKTsKLQotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gIH07Ci0KLSAgUGFyc2VyLnJlZ2lzdGVyKFJlZ3VsYXRvclBhcnNlcik7Ci0KLSAgcmV0dXJuIHsKLSAgICBSZWd1bGF0b3JQYXJzZXI6IFJlZ3VsYXRvclBhcnNlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvc3luY19wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvc3luY19wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjEzMDEzZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3N5bmNfcGFyc2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIHN5bmMgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKLQotICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKLQotICAvKioKLSAgICogUGFyc2VzIGxpbnV4IHN5bmMgdHJhY2UgZXZlbnRzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFN5bmNQYXJzZXIoaW1wb3J0ZXIpIHsKLSAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7Ci0KLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigKLSAgICAgICAgJ3N5bmNfdGltZWxpbmUnLAotICAgICAgICBTeW5jUGFyc2VyLnByb3RvdHlwZS50aW1lbGluZUV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKAotICAgICAgICAnc3luY193YWl0JywKLSAgICAgICAgU3luY1BhcnNlci5wcm90b3R5cGUuc3luY1dhaXRFdmVudC5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigKLSAgICAgICAgJ3N5bmNfcHQnLAotICAgICAgICBTeW5jUGFyc2VyLnByb3RvdHlwZS5zeW5jUHRFdmVudC5iaW5kKHRoaXMpKTsKLSAgICB0aGlzLm1vZGVsXyA9IGltcG9ydGVyLm1vZGVsXzsKLSAgfQotCi0gIHZhciBzeW5jVGltZWxpbmVSRSA9IC9uYW1lPShcUyspIHZhbHVlPShcUyopLzsKLSAgdmFyIHN5bmNXYWl0UkUgPSAvKFxTKykgbmFtZT0oXFMrKSBzdGF0ZT0oXGQrKS87Ci0gIHZhciBzeW5jUHRSRSA9IC9uYW1lPShcUyspIHZhbHVlPShcUyopLzsKLQotICBTeW5jUGFyc2VyLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCi0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgc3luYyBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUgaW4gdGhlIGltcG9ydGVyLgotICAgICAqLwotICAgIHRpbWVsaW5lRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gc3luY1RpbWVsaW5lUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKGV2ZW50WzFdKTsKLQotICAgICAgaWYgKHRocmVhZC5sYXN0QWN0aXZlVHMgIT09IHVuZGVmaW5lZCkgewotICAgICAgICB2YXIgZHVyYXRpb24gPSB0cyAtIHRocmVhZC5sYXN0QWN0aXZlVHM7Ci0gICAgICAgIHZhciB2YWx1ZSA9IHRocmVhZC5sYXN0QWN0aXZlVmFsdWU7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCi0gICAgICAgICAgdmFsdWUgPSAnICc7Ci0gICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgKLSAgICAgICAgICAgICcnLCB2YWx1ZSwKLSAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHZhbHVlKSwKLSAgICAgICAgICAgIHRocmVhZC5sYXN0QWN0aXZlVHMsIHt9LAotICAgICAgICAgICAgZHVyYXRpb24pOwotICAgICAgICB0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKLSAgICAgIH0KLSAgICAgIHRocmVhZC5sYXN0QWN0aXZlVHMgPSB0czsKLSAgICAgIHRocmVhZC5sYXN0QWN0aXZlVmFsdWUgPSBldmVudFsyXTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBzeW5jV2FpdEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UpIHsKLSAgICAgIHZhciBldmVudCA9IHN5bmNXYWl0UkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIGlmIChldmVudEJhc2UudGdpZCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIH0KLQotICAgICAgdmFyIHRnaWQgPSBwYXJzZUludChldmVudEJhc2UudGdpZCk7Ci0gICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHRnaWQpCi0gICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZChwaWQpOwotICAgICAgdGhyZWFkLm5hbWUgPSBldmVudEJhc2UudGhyZWFkTmFtZTsKLSAgICAgIHZhciBzbGljZXMgPSB0aHJlYWQua2VybmVsU2xpY2VHcm91cDsKLSAgICAgIGlmICghc2xpY2VzLmlzVGltZXN0YW1wVmFsaWRGb3JCZWdpbk9yRW5kKHRzKSkgewotICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAotICAgICAgICAgIG1lc3NhZ2U6ICdUaW1lc3RhbXBzIGFyZSBtb3ZpbmcgYmFja3dhcmQuJwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgfQotCi0gICAgICB2YXIgbmFtZSA9ICdmZW5jZV93YWl0KCInICsgZXZlbnRbMl0gKyAnIiknOwotICAgICAgaWYgKGV2ZW50WzFdID09ICdiZWdpbicpIHsKLSAgICAgICAgdmFyIHNsaWNlID0gc2xpY2VzLmJlZ2luU2xpY2UobnVsbCwgbmFtZSwgdHMsIHsKLSAgICAgICAgICAnU3RhcnQgc3RhdGUnOiBldmVudFszXQotICAgICAgICB9KTsKLSAgICAgIH0gZWxzZSBpZiAoZXZlbnRbMV0gPT0gJ2VuZCcpIHsKLSAgICAgICAgaWYgKHNsaWNlcy5vcGVuU2xpY2VDb3VudCA+IDApIHsKLSAgICAgICAgICBzbGljZXMuZW5kU2xpY2UodHMpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICBzeW5jUHRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gc3luY1B0UkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICB2YXIgdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKLSAgICAgICAgICBldmVudEJhc2VbMV0pLnRocmVhZDsKLSAgICAgIHRocmVhZC5zeW5jV2FpdFN5bmNQdHNbZXZlbnRbMV1dID0gZXZlbnRbMl07Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gIH07Ci0KLSAgUGFyc2VyLnJlZ2lzdGVyKFN5bmNQYXJzZXIpOwotCi0gIHJldHVybiB7Ci0gICAgU3luY1BhcnNlcjogU3luY1BhcnNlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi93b3JrcXVldWVfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3dvcmtxdWV1ZV9wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWU1YzliOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3dvcmtxdWV1ZV9wYXJzZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQYXJzZXMgd29ya3F1ZXVlIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgotICovCi10ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7Ci0KLSAgLyoqCi0gICAqIFBhcnNlcyBsaW51eCB3b3JrcXVldWUgdHJhY2UgZXZlbnRzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFdvcmtxdWV1ZVBhcnNlcihpbXBvcnRlcikgewotICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKLQotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd3b3JrcXVldWVfZXhlY3V0ZV9zdGFydCcsCi0gICAgICAgIFdvcmtxdWV1ZVBhcnNlci5wcm90b3R5cGUuZXhlY3V0ZVN0YXJ0RXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3dvcmtxdWV1ZV9leGVjdXRlX2VuZCcsCi0gICAgICAgIFdvcmtxdWV1ZVBhcnNlci5wcm90b3R5cGUuZXhlY3V0ZUVuZEV2ZW50LmJpbmQodGhpcykpOwotICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd3b3JrcXVldWVfcXVldWVfd29yaycsCi0gICAgICAgIFdvcmtxdWV1ZVBhcnNlci5wcm90b3R5cGUuZXhlY3V0ZVF1ZXVlV29yay5iaW5kKHRoaXMpKTsKLSAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignd29ya3F1ZXVlX2FjdGl2YXRlX3dvcmsnLAotICAgICAgICBXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlLmV4ZWN1dGVBY3RpdmF0ZVdvcmsuYmluZCh0aGlzKSk7Ci0gIH0KLQotICAvLyBNYXRjaGVzIHRoZSB3b3JrcXVldWVfZXhlY3V0ZV9zdGFydCByZWNvcmQKLSAgLy8gIHdvcmtxdWV1ZV9leGVjdXRlX3N0YXJ0OiB3b3JrIHN0cnVjdCBjN2E4YTg5YzogZnVuY3Rpb24gTUlTUldyYXBwZXIKLSAgdmFyIHdvcmtxdWV1ZUV4ZWN1dGVTdGFydFJFID0gL3dvcmsgc3RydWN0ICguKyk6IGZ1bmN0aW9uIChcUyspLzsKLQotICAvLyBNYXRjaGVzIHRoZSB3b3JrcXVldWVfZXhlY3V0ZV9zdGFydCByZWNvcmQKLSAgLy8gIHdvcmtxdWV1ZV9leGVjdXRlX2VuZDogd29yayBzdHJ1Y3QgYzdhOGE4OWMKLSAgdmFyIHdvcmtxdWV1ZUV4ZWN1dGVFbmRSRSA9IC93b3JrIHN0cnVjdCAoLispLzsKLQotICBXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKLQotICAgIC8qKgotICAgICAqIFBhcnNlcyB3b3JrcXVldWUgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KLSAgICAgKi8KLSAgICBleGVjdXRlU3RhcnRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gd29ya3F1ZXVlRXhlY3V0ZVN0YXJ0UkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7Ci0gICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZChldmVudEJhc2UudGhyZWFkTmFtZSwKLSAgICAgICAgICBwaWQsIHBpZCk7Ci0gICAgICBrdGhyZWFkLm9wZW5TbGljZVRTID0gdHM7Ci0gICAgICBrdGhyZWFkLm9wZW5TbGljZSA9IGV2ZW50WzJdOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGV4ZWN1dGVFbmRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgdmFyIGV2ZW50ID0gd29ya3F1ZXVlRXhlY3V0ZUVuZFJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOwotICAgICAgaWYgKCFldmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUsCi0gICAgICAgICAgcGlkLCBwaWQpOwotICAgICAgaWYgKGt0aHJlYWQub3BlblNsaWNlKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgnJywga3RocmVhZC5vcGVuU2xpY2UsCi0gICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksCi0gICAgICAgICAgICBrdGhyZWFkLm9wZW5TbGljZVRTLAotICAgICAgICAgICAge30sCi0gICAgICAgICAgICB0cyAtIGt0aHJlYWQub3BlblNsaWNlVFMpOwotCi0gICAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKLSAgICAgIH0KLSAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gdW5kZWZpbmVkOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSwKLQotICAgIGV4ZWN1dGVRdWV1ZVdvcms6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKLSAgICAgIC8vIFRPRE86IERvIHNvbWV0aGluZyB3aXRoIHRoaXMgZXZlbnQ/Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgZXhlY3V0ZUFjdGl2YXRlV29yazogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgewotICAgICAgLy8gVE9ETzogRG8gc29tZXRoaW5nIHdpdGggdGhpcyBldmVudD8KLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICB9OwotCi0gIFBhcnNlci5yZWdpc3RlcihXb3JrcXVldWVQYXJzZXIpOwotCi0gIHJldHVybiB7Ci0gICAgV29ya3F1ZXVlUGFyc2VyOiBXb3JrcXVldWVQYXJzZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzc0ZGJlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOTAxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvY29sb3Jfc2NoZW1lLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3F1YWQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2ltcG9ydGVyL2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2luc3RhbnRfZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2Zsb3dfZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZV9ncm91cC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3Byb2Nlc3NfbWVtb3J5X2R1bXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3JlY3RfYW5ub3RhdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwveF9tYXJrZXJfYW5ub3RhdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBUcmFjZUV2ZW50SW1wb3J0ZXIgaW1wb3J0cyBUcmFjZUV2ZW50LWZvcm1hdHRlZCBkYXRhCi0gKiBpbnRvIHRoZSBwcm92aWRlZCBtb2RlbC4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXInLCBmdW5jdGlvbigpIHsKLQotICB2YXIgSW1wb3J0ZXIgPSB0ci5pbXBvcnRlci5JbXBvcnRlcjsKLQotICBmdW5jdGlvbiBkZWVwQ29weSh2YWx1ZSkgewotICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSkgewotICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpCi0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpCi0gICAgICAgIHJldHVybiB2YWx1ZS5zdWJzdHJpbmcoKTsKLSAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Jvb2xlYW4nKQotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKQotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZDogJyArIHR5cGVvZiB2YWx1ZSk7Ci0gICAgfQotCi0gICAgdmFyIG9iamVjdCA9IHZhbHVlOwotICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiBBcnJheSkgewotICAgICAgdmFyIHJlcyA9IG5ldyBBcnJheShvYmplY3QubGVuZ3RoKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0Lmxlbmd0aDsgaSsrKQotICAgICAgICByZXNbaV0gPSBkZWVwQ29weShvYmplY3RbaV0pOwotICAgICAgcmV0dXJuIHJlczsKLSAgICB9Ci0KLSAgICBpZiAob2JqZWN0Ll9fcHJvdG9fXyAhPSBPYmplY3QucHJvdG90eXBlKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gb25seSBjbG9uZSBzaW1wbGUgdHlwZXMnKTsKLSAgICB2YXIgcmVzID0ge307Ci0gICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkgewotICAgICAgcmVzW2tleV0gPSBkZWVwQ29weShvYmplY3Rba2V5XSk7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci0gIH0KLQotICBmdW5jdGlvbiBUcmFjZUV2ZW50SW1wb3J0ZXIobW9kZWwsIGV2ZW50RGF0YSkgewotICAgIHRoaXMuaW1wb3J0UHJpb3JpdHkgPSAxOwotICAgIHRoaXMubW9kZWxfID0gbW9kZWw7Ci0gICAgdGhpcy5ldmVudHNfID0gdW5kZWZpbmVkOwotICAgIHRoaXMuc2FtcGxlRXZlbnRzXyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnN0YWNrRnJhbWVFdmVudHNfID0gdW5kZWZpbmVkOwotICAgIHRoaXMuc3lzdGVtVHJhY2VFdmVudHNfID0gdW5kZWZpbmVkOwotICAgIHRoaXMuZXZlbnRzV2VyZUZyb21TdHJpbmdfID0gZmFsc2U7Ci0gICAgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfID0gdW5kZWZpbmVkOwotICAgIHRoaXMuYWxsQXN5bmNFdmVudHNfID0gW107Ci0gICAgdGhpcy5hbGxGbG93RXZlbnRzXyA9IFtdOwotICAgIHRoaXMuYWxsT2JqZWN0RXZlbnRzXyA9IFtdOwotICAgIHRoaXMudHJhY2VFdmVudFNhbXBsZVN0YWNrRnJhbWVzQnlOYW1lXyA9IHt9OwotCi0gICAgLy8gRHVtcCBJRCAtPiB7Z2xvYmFsOiAoZXZlbnQgfCB1bmRlZmluZWQpLCBwcm9jZXNzOiBbZXZlbnRzXX0KLSAgICB0aGlzLmFsbE1lbW9yeUR1bXBFdmVudHNfID0ge307Ci0KLQotICAgIGlmICh0eXBlb2YoZXZlbnREYXRhKSA9PT0gJ3N0cmluZycgfHwgZXZlbnREYXRhIGluc3RhbmNlb2YgU3RyaW5nKSB7Ci0gICAgICBldmVudERhdGEgPSBldmVudERhdGEudHJpbSgpOwotICAgICAgLy8gSWYgdGhlIGV2ZW50IGRhdGEgYmVnaW5zIHdpdGggYSBbLCB0aGVuIHdlIGtub3cgaXQgc2hvdWxkIGVuZCB3aXRoIGEgXS4KLSAgICAgIC8vIFRoZSByZWFzb24gd2UgY2hlY2sgZm9yIHRoaXMgaXMgYmVjYXVzZSBzb21lIHRyYWNpbmcgaW1wbGVtZW50YXRpb25zCi0gICAgICAvLyBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgYSAnXScgZ2V0cyB3cml0dGVuIHRvIHRoZSB0cmFjZSBmaWxlLiBTbywgd2UgYXJlCi0gICAgICAvLyBmb3JnaXZpbmcgYW5kIGlmIHRoaXMgaXMgb2J2aW91c2x5IHRoZSBjYXNlLCB3ZSBmaXggaXQgdXAgYmVmb3JlCi0gICAgICAvLyB0aHJvd2luZyB0aGUgc3RyaW5nIGF0IEpTT04ucGFyc2UuCi0gICAgICBpZiAoZXZlbnREYXRhWzBdID09PSAnWycpIHsKLSAgICAgICAgZXZlbnREYXRhID0gZXZlbnREYXRhLnJlcGxhY2UoL1xzKixccyokLywgJycpOwotICAgICAgICBpZiAoZXZlbnREYXRhW2V2ZW50RGF0YS5sZW5ndGggLSAxXSAhPT0gJ10nKQotICAgICAgICAgIGV2ZW50RGF0YSA9IGV2ZW50RGF0YSArICddJzsKLSAgICAgIH0KLSAgICAgIHRoaXMuZXZlbnRzXyA9IEpTT04ucGFyc2UoZXZlbnREYXRhKTsKLSAgICAgIHRoaXMuZXZlbnRzV2VyZUZyb21TdHJpbmdfID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgdGhpcy5ldmVudHNfID0gZXZlbnREYXRhOwotICAgIH0KLQotICAgIHRoaXMudHJhY2VBbm5vdGF0aW9uc18gPSB0aGlzLmV2ZW50c18udHJhY2VBbm5vdGF0aW9uczsKLQotICAgIC8vIFNvbWUgdHJhY2VfZXZlbnQgaW1wbGVtZW50YXRpb25zIHB1dCB0aGUgYWN0dWFsIHRyYWNlIGV2ZW50cwotICAgIC8vIGluc2lkZSBhIGNvbnRhaW5lci4gRS5nIHsgLi4uICwgdHJhY2VFdmVudHM6IFsgXSB9Ci0gICAgLy8gSWYgd2Ugc2VlIHRoYXQsIGp1c3QgcHVsbCBvdXQgdGhlIHRyYWNlIGV2ZW50cy4KLSAgICBpZiAodGhpcy5ldmVudHNfLnRyYWNlRXZlbnRzKSB7Ci0gICAgICB2YXIgY29udGFpbmVyID0gdGhpcy5ldmVudHNfOwotICAgICAgdGhpcy5ldmVudHNfID0gdGhpcy5ldmVudHNfLnRyYWNlRXZlbnRzOwotCi0gICAgICAvLyBTb21lIHRyYWNlX2V2ZW50IGltcGxlbWVudGF0aW9ucyBwdXQgZnRyYWNlX2ltcG9ydGVyIHRyYWNlcyBhcyBhCi0gICAgICAvLyBodWdlIHN0cmluZyBpbnNpZGUgY29udGFpbmVyLnN5c3RlbVRyYWNlRXZlbnRzLiBJZiB3ZSBzZWUgdGhhdCwgcHVsbCBpdAotICAgICAgLy8gb3V0LiBJdCB3aWxsIGJlIHBpY2tlZCB1cCBieSBleHRyYWN0U3VidHJhY2VzIGxhdGVyIG9uLgotICAgICAgdGhpcy5zeXN0ZW1UcmFjZUV2ZW50c18gPSBjb250YWluZXIuc3lzdGVtVHJhY2VFdmVudHM7Ci0KLSAgICAgIC8vIFNhbXBsaW5nIGRhdGEuCi0gICAgICB0aGlzLnNhbXBsZUV2ZW50c18gPSBjb250YWluZXIuc2FtcGxlczsKLSAgICAgIHRoaXMuc3RhY2tGcmFtZUV2ZW50c18gPSBjb250YWluZXIuc3RhY2tGcmFtZXM7Ci0KLSAgICAgIC8vIEFueSBvdGhlciBmaWVsZHMgaW4gdGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdHJlYXRlZCBhcyBtZXRhZGF0YS4KLSAgICAgIGZvciAodmFyIGZpZWxkTmFtZSBpbiBjb250YWluZXIpIHsKLSAgICAgICAgaWYgKGZpZWxkTmFtZSA9PT0gJ3RyYWNlRXZlbnRzJyB8fCBmaWVsZE5hbWUgPT09ICdzeXN0ZW1UcmFjZUV2ZW50cycgfHwKLSAgICAgICAgICAgIGZpZWxkTmFtZSA9PT0gJ3NhbXBsZXMnIHx8IGZpZWxkTmFtZSA9PT0gJ3N0YWNrRnJhbWVzJyB8fAotICAgICAgICAgICAgZmllbGROYW1lID09PSAndHJhY2VBbm5vdGF0aW9ucycpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHRoaXMubW9kZWxfLm1ldGFkYXRhLnB1c2goe25hbWU6IGZpZWxkTmFtZSwKLSAgICAgICAgICB2YWx1ZTogY29udGFpbmVyW2ZpZWxkTmFtZV19KTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICAvKioKLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciBvYmogaXMgYSBUcmFjZUV2ZW50IGFycmF5LgotICAgKi8KLSAgVHJhY2VFdmVudEltcG9ydGVyLmNhbkltcG9ydCA9IGZ1bmN0aW9uKGV2ZW50RGF0YSkgewotICAgIC8vIE1heSBiZSBlbmNvZGVkIEpTT04uIEJ1dCB3ZSBkb250IHdhbnQgdG8gcGFyc2UgaXQgZnVsbHkgeWV0LgotICAgIC8vIFVzZSBhIHNpbXBsZSBoZXVyaXN0aWM6Ci0gICAgLy8gICAtIGV2ZW50RGF0YSB0aGF0IHN0YXJ0cyB3aXRoIFsgYXJlIHByb2JhYmx5IHRyYWNlX2V2ZW50Ci0gICAgLy8gICAtIGV2ZW50RGF0YSB0aGF0IHN0YXJ0cyB3aXRoIHsgYXJlIHByb2JhYmx5IHRyYWNlX2V2ZW50Ci0gICAgLy8gTWF5IGJlIGVuY29kZWQgSlNPTi4gVHJlYXQgZmlsZXMgdGhhdCBzdGFydCB3aXRoIHsgYXMgaW1wb3J0YWJsZSBieSB1cy4KLSAgICBpZiAodHlwZW9mKGV2ZW50RGF0YSkgPT09ICdzdHJpbmcnIHx8IGV2ZW50RGF0YSBpbnN0YW5jZW9mIFN0cmluZykgewotICAgICAgZXZlbnREYXRhID0gZXZlbnREYXRhLnRyaW0oKTsKLSAgICAgIHJldHVybiBldmVudERhdGFbMF0gPT0gJ3snIHx8IGV2ZW50RGF0YVswXSA9PSAnWyc7Ci0gICAgfQotCi0gICAgLy8gTWlnaHQganVzdCBiZSBhbiBhcnJheSBvZiBldmVudHMKLSAgICBpZiAoZXZlbnREYXRhIGluc3RhbmNlb2YgQXJyYXkgJiYgZXZlbnREYXRhLmxlbmd0aCAmJiBldmVudERhdGFbMF0ucGgpCi0gICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8vIE1pZ2h0IGJlIGFuIG9iamVjdCB3aXRoIGEgdHJhY2VFdmVudHMgZmllbGQgaW4gaXQuCi0gICAgaWYgKGV2ZW50RGF0YS50cmFjZUV2ZW50cykgewotICAgICAgaWYgKGV2ZW50RGF0YS50cmFjZUV2ZW50cyBpbnN0YW5jZW9mIEFycmF5KSB7Ci0gICAgICAgIGlmIChldmVudERhdGEudHJhY2VFdmVudHMubGVuZ3RoICYmIGV2ZW50RGF0YS50cmFjZUV2ZW50c1swXS5waCkKLSAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGV2ZW50RGF0YS5zYW1wbGVzLmxlbmd0aCAmJiBldmVudERhdGEuc3RhY2tGcmFtZXMgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci0gIH07Ci0KLSAgVHJhY2VFdmVudEltcG9ydGVyLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogSW1wb3J0ZXIucHJvdG90eXBlLAotCi0gICAgZXh0cmFjdFN1YnRyYWNlczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgdG1wID0gdGhpcy5zeXN0ZW1UcmFjZUV2ZW50c187Ci0gICAgICB0aGlzLnN5c3RlbVRyYWNlRXZlbnRzXyA9IHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiB0bXAgPyBbdG1wXSA6IFtdOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBEZWVwIGNvcHlpbmcgaXMgb25seSBuZWVkZWQgaWYgdGhlIHRyYWNlIHdhcyBnaXZlbiB0byB1cyBhcyBldmVudHMuCi0gICAgICovCi0gICAgZGVlcENvcHlJZk5lZWRlZF86IGZ1bmN0aW9uKG9iaikgewotICAgICAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKQotICAgICAgICBvYmogPSB7fTsKLSAgICAgIGlmICh0aGlzLmV2ZW50c1dlcmVGcm9tU3RyaW5nXykKLSAgICAgICAgcmV0dXJuIG9iajsKLSAgICAgIHJldHVybiBkZWVwQ29weShvYmopOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBIZWxwZXIgdG8gcHJvY2VzcyBhbiBhc3luYyBldmVudC4KLSAgICAgKi8KLSAgICBwcm9jZXNzQXN5bmNFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKS4KLSAgICAgICAgICBnZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOwotICAgICAgdGhpcy5hbGxBc3luY0V2ZW50c18ucHVzaCh7Ci0gICAgICAgIHNlcXVlbmNlTnVtYmVyOiB0aGlzLmFsbEFzeW5jRXZlbnRzXy5sZW5ndGgsCi0gICAgICAgIGV2ZW50OiBldmVudCwKLSAgICAgICAgdGhyZWFkOiB0aHJlYWR9KTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSGVscGVyIHRvIHByb2Nlc3MgYSBmbG93IGV2ZW50LgotICAgICAqLwotICAgIHByb2Nlc3NGbG93RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCkuCi0gICAgICAgICAgZ2V0T3JDcmVhdGVUaHJlYWQoZXZlbnQudGlkKTsKLSAgICAgIHRoaXMuYWxsRmxvd0V2ZW50c18ucHVzaCh7Ci0gICAgICAgIHJlZkd1aWQ6IHRyLmIuR1VJRC5nZXRMYXN0R3VpZCgpLAotICAgICAgICBzZXF1ZW5jZU51bWJlcjogdGhpcy5hbGxGbG93RXZlbnRzXy5sZW5ndGgsCi0gICAgICAgIGV2ZW50OiBldmVudCwKLSAgICAgICAgdGhyZWFkOiB0aHJlYWQKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBIZWxwZXIgdGhhdCBjcmVhdGVzIGFuZCBhZGRzIHNhbXBsZXMgdG8gYSBDb3VudGVyIG9iamVjdCBiYXNlZCBvbgotICAgICAqICdDJyBwaGFzZSBldmVudHMuCi0gICAgICovCi0gICAgcHJvY2Vzc0NvdW50ZXJFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHZhciBjdHJfbmFtZTsKLSAgICAgIGlmIChldmVudC5pZCAhPT0gdW5kZWZpbmVkKQotICAgICAgICBjdHJfbmFtZSA9IGV2ZW50Lm5hbWUgKyAnWycgKyBldmVudC5pZCArICddJzsKLSAgICAgIGVsc2UKLSAgICAgICAgY3RyX25hbWUgPSBldmVudC5uYW1lOwotCi0gICAgICB2YXIgY3RyID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCkKLSAgICAgICAgICAuZ2V0T3JDcmVhdGVDb3VudGVyKGV2ZW50LmNhdCwgY3RyX25hbWUpOwotCi0gICAgICAvLyBJbml0aWFsaXplIHRoZSBjb3VudGVyJ3Mgc2VyaWVzIGZpZWxkcyBpZiBuZWVkZWQuCi0gICAgICBpZiAoY3RyLm51bVNlcmllcyA9PT0gMCkgewotICAgICAgICBmb3IgKHZhciBzZXJpZXNOYW1lIGluIGV2ZW50LmFyZ3MpIHsKLSAgICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKAotICAgICAgICAgICAgICBzZXJpZXNOYW1lLAotICAgICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKLSAgICAgICAgICAgICAgICAgIGN0ci5uYW1lICsgJy4nICsgc2VyaWVzTmFtZSkpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjdHIubnVtU2VyaWVzID09PSAwKSB7Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAnY291bnRlcl9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnRXhwZWN0ZWQgY291bnRlciAnICsgZXZlbnQubmFtZSArCi0gICAgICAgICAgICAgICAgJyB0byBoYXZlIGF0IGxlYXN0IG9uZSBhcmd1bWVudCB0byB1c2UgYXMgYSB2YWx1ZS4nCi0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAvLyBEcm9wIHRoZSBjb3VudGVyLgotICAgICAgICAgIGRlbGV0ZSBjdHIucGFyZW50LmNvdW50ZXJzW2N0ci5uYW1lXTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgdmFyIHRzID0gZXZlbnQudHMgLyAxMDAwOwotICAgICAgY3RyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgICB2YXIgdmFsID0gZXZlbnQuYXJnc1tzZXJpZXMubmFtZV0gPyBldmVudC5hcmdzW3Nlcmllcy5uYW1lXSA6IDA7Ci0gICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCB2YWwpOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NPYmplY3RFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKS4KLSAgICAgICAgICBnZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOwotICAgICAgdGhpcy5hbGxPYmplY3RFdmVudHNfLnB1c2goewotICAgICAgICBzZXF1ZW5jZU51bWJlcjogdGhpcy5hbGxPYmplY3RFdmVudHNfLmxlbmd0aCwKLSAgICAgICAgZXZlbnQ6IGV2ZW50LAotICAgICAgICB0aHJlYWQ6IHRocmVhZH0pOwotICAgIH0sCi0KLSAgICBwcm9jZXNzRHVyYXRpb25FdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKQotICAgICAgICAuZ2V0T3JDcmVhdGVUaHJlYWQoZXZlbnQudGlkKTsKLSAgICAgIGlmICghdGhyZWFkLnNsaWNlR3JvdXAuaXNUaW1lc3RhbXBWYWxpZEZvckJlZ2luT3JFbmQoZXZlbnQudHMgLyAxMDAwKSkgewotICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnZHVyYXRpb25fcGFyc2VfZXJyb3InLAotICAgICAgICAgIG1lc3NhZ2U6ICdUaW1lc3RhbXBzIGFyZSBtb3ZpbmcgYmFja3dhcmQuJwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAoZXZlbnQucGggPT0gJ0InKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IHRocmVhZC5zbGljZUdyb3VwLmJlZ2luU2xpY2UoCi0gICAgICAgICAgICBldmVudC5jYXQsIGV2ZW50Lm5hbWUsIGV2ZW50LnRzIC8gMTAwMCwKLSAgICAgICAgICAgIHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oZXZlbnQuYXJncyksCi0gICAgICAgICAgICBldmVudC50dHMgLyAxMDAwKTsKLSAgICAgICAgc2xpY2Uuc3RhcnRTdGFja0ZyYW1lID0gdGhpcy5nZXRTdGFja0ZyYW1lRm9yRXZlbnRfKGV2ZW50KTsKLSAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT0gJ0knIHx8IGV2ZW50LnBoID09ICdpJykgewotICAgICAgICBpZiAoZXZlbnQucyAhPT0gdW5kZWZpbmVkICYmIGV2ZW50LnMgIT09ICd0JykKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbicpOwotCi0gICAgICAgIHRocmVhZC5zbGljZUdyb3VwLmJlZ2luU2xpY2UoZXZlbnQuY2F0LCBldmVudC5uYW1lLCBldmVudC50cyAvIDEwMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWVwQ29weUlmTmVlZGVkXyhldmVudC5hcmdzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC50dHMgLyAxMDAwKTsKLSAgICAgICAgdmFyIHNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuZW5kU2xpY2UoZXZlbnQudHMgLyAxMDAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC50dHMgLyAxMDAwKTsKLSAgICAgICAgc2xpY2Uuc3RhcnRTdGFja0ZyYW1lID0gdGhpcy5nZXRTdGFja0ZyYW1lRm9yRXZlbnRfKGV2ZW50KTsKLSAgICAgICAgc2xpY2UuZW5kU3RhY2tGcmFtZSA9IHVuZGVmaW5lZDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghdGhyZWFkLnNsaWNlR3JvdXAub3BlblNsaWNlQ291bnQpIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdkdXJhdGlvbl9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnRSBwaGFzZSBldmVudCB3aXRob3V0IGEgbWF0Y2hpbmcgQiBwaGFzZSBldmVudC4nCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuZW5kU2xpY2UoZXZlbnQudHMgLyAxMDAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC50dHMgLyAxMDAwKTsKLSAgICAgICAgaWYgKGV2ZW50Lm5hbWUgJiYgc2xpY2UudGl0bGUgIT0gZXZlbnQubmFtZSkgewotICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ3RpdGxlX21hdGNoX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdUaXRsZXMgZG8gbm90IG1hdGNoLiBUaXRsZSBpcyAnICsKLSAgICAgICAgICAgICAgICBzbGljZS50aXRsZSArICcgaW4gb3BlblNsaWNlLCBhbmQgaXMgJyArCi0gICAgICAgICAgICAgICAgZXZlbnQubmFtZSArICcgaW4gZW5kU2xpY2UnCi0gICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgc2xpY2UuZW5kU3RhY2tGcmFtZSA9IHRoaXMuZ2V0U3RhY2tGcmFtZUZvckV2ZW50XyhldmVudCk7Ci0KLSAgICAgICAgdGhpcy5tZXJnZUFyZ3NJbnRvXyhzbGljZS5hcmdzLCBldmVudC5hcmdzLCBzbGljZS50aXRsZSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIG1lcmdlQXJnc0ludG9fOiBmdW5jdGlvbihkc3RBcmdzLCBzcmNBcmdzLCBldmVudE5hbWUpIHsKLSAgICAgIGZvciAodmFyIGFyZyBpbiBzcmNBcmdzKSB7Ci0gICAgICAgIGlmIChkc3RBcmdzW2FyZ10gIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ2FyZ19tZXJnZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnRGlmZmVyZW50IHBoYXNlcyBvZiAnICsgZXZlbnROYW1lICsKLSAgICAgICAgICAgICAgICAnIHByb3ZpZGVkIHZhbHVlcyBmb3IgYXJndW1lbnQgJyArIGFyZyArICcuJyArCi0gICAgICAgICAgICAgICAgJyBUaGUgbGFzdCBwcm92aWRlZCB2YWx1ZSB3aWxsIGJlIHVzZWQuJwotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIGRzdEFyZ3NbYXJnXSA9IHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oc3JjQXJnc1thcmddKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgcHJvY2Vzc0NvbXBsZXRlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCkKLSAgICAgICAgICAuZ2V0T3JDcmVhdGVUaHJlYWQoZXZlbnQudGlkKTsKLSAgICAgIHZhciBzbGljZSA9IHRocmVhZC5zbGljZUdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKGV2ZW50LmNhdCwgZXZlbnQubmFtZSwKLSAgICAgICAgICBldmVudC50cyAvIDEwMDAsCi0gICAgICAgICAgZXZlbnQuZHVyID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBldmVudC5kdXIgLyAxMDAwLAotICAgICAgICAgIGV2ZW50LnR0cyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogZXZlbnQudHRzIC8gMTAwMCwKLSAgICAgICAgICBldmVudC50ZHVyID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBldmVudC50ZHVyIC8gMTAwMCwKLSAgICAgICAgICB0aGlzLmRlZXBDb3B5SWZOZWVkZWRfKGV2ZW50LmFyZ3MpKTsKLSAgICAgIHNsaWNlLnN0YXJ0U3RhY2tGcmFtZSA9IHRoaXMuZ2V0U3RhY2tGcmFtZUZvckV2ZW50XyhldmVudCk7Ci0gICAgICBzbGljZS5lbmRTdGFja0ZyYW1lID0gdGhpcy5nZXRTdGFja0ZyYW1lRm9yRXZlbnRfKGV2ZW50LCB0cnVlKTsKLSAgICB9LAotCi0gICAgcHJvY2Vzc01ldGFkYXRhRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICBpZiAoZXZlbnQubmFtZSA9PSAncHJvY2Vzc19uYW1lJykgewotICAgICAgICB2YXIgcHJvY2VzcyA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC5waWQpOwotICAgICAgICBwcm9jZXNzLm5hbWUgPSBldmVudC5hcmdzLm5hbWU7Ci0gICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ3Byb2Nlc3NfbGFiZWxzJykgewotICAgICAgICB2YXIgcHJvY2VzcyA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC5waWQpOwotICAgICAgICB2YXIgbGFiZWxzID0gZXZlbnQuYXJncy5sYWJlbHMuc3BsaXQoJywnKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYWJlbHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgcHJvY2Vzcy5hZGRMYWJlbElmTmVlZGVkKGxhYmVsc1tpXSk7Ci0gICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ3Byb2Nlc3Nfc29ydF9pbmRleCcpIHsKLSAgICAgICAgdmFyIHByb2Nlc3MgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKTsKLSAgICAgICAgcHJvY2Vzcy5zb3J0SW5kZXggPSBldmVudC5hcmdzLnNvcnRfaW5kZXg7Ci0gICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ3RocmVhZF9uYW1lJykgewotICAgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCkuCi0gICAgICAgICAgICBnZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOwotICAgICAgICB0aHJlYWQubmFtZSA9IGV2ZW50LmFyZ3MubmFtZTsKLSAgICAgIH0gZWxzZSBpZiAoZXZlbnQubmFtZSA9PSAndGhyZWFkX3NvcnRfaW5kZXgnKSB7Ci0gICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKS4KLSAgICAgICAgICAgIGdldE9yQ3JlYXRlVGhyZWFkKGV2ZW50LnRpZCk7Ci0gICAgICAgIHRocmVhZC5zb3J0SW5kZXggPSBldmVudC5hcmdzLnNvcnRfaW5kZXg7Ci0gICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ251bV9jcHVzJykgewotICAgICAgICB2YXIgbiA9IGV2ZW50LmFyZ3MubnVtYmVyOwotICAgICAgICAvLyBOb3QgYWxsIHJlbmRlciBwcm9jZXNzZXMgYWdyZWUgb24gdGhlIGNwdSBjb3VudCBpbiB0cmFjZV9ldmVudC4gU29tZQotICAgICAgICAvLyBwcm9jZXNzZXMgd2lsbCByZXBvcnQgMSwgd2hpbGUgb3RoZXJzIHdpbGwgcmVwb3J0IHRoZSBhY3R1YWwgY3B1Ci0gICAgICAgIC8vIGNvdW50LiBUbyBkZWFsIHdpdGggdGhpcywgdGFrZSB0aGUgbWF4IG9mIHdoYXQgaXMgcmVwb3J0ZWQuCi0gICAgICAgIGlmICh0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF8gIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBuID0gTWF0aC5tYXgobiwgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfKTsKLSAgICAgICAgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfID0gbjsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgIHR5cGU6ICdtZXRhZGF0YV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgbWVzc2FnZTogJ1VucmVjb2duaXplZCBtZXRhZGF0YSBuYW1lOiAnICsgZXZlbnQubmFtZQotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgcHJvY2Vzc0luc3RhbnRFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIC8vIFRocmVhZC1sZXZlbCBpbnN0YW50IGV2ZW50cyBhcmUgdHJlYXRlZCBhcyB6ZXJvLWR1cmF0aW9uIHNsaWNlcy4KLSAgICAgIGlmIChldmVudC5zID09ICd0JyB8fCBldmVudC5zID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5wcm9jZXNzRHVyYXRpb25FdmVudChldmVudCk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgdmFyIGNvbnN0cnVjdG9yOwotICAgICAgc3dpdGNoIChldmVudC5zKSB7Ci0gICAgICAgIGNhc2UgJ2cnOgotICAgICAgICAgIGNvbnN0cnVjdG9yID0gdHIubW9kZWwuR2xvYmFsSW5zdGFudEV2ZW50OwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICdwJzoKLSAgICAgICAgICBjb25zdHJ1Y3RvciA9IHRyLm1vZGVsLlByb2Nlc3NJbnN0YW50RXZlbnQ7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAnaW5zdGFudF9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnSSBwaGFzZSBldmVudCB3aXRoIHVua25vd24gInMiIGZpZWxkIHZhbHVlLicKLSAgICAgICAgICB9KTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0KLSAgICAgIHZhciBjb2xvcklkID0gdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZXZlbnQubmFtZSk7Ci0gICAgICB2YXIgaW5zdGFudEV2ZW50ID0gbmV3IGNvbnN0cnVjdG9yKGV2ZW50LmNhdCwgZXZlbnQubmFtZSwKLSAgICAgICAgICBjb2xvcklkLCBldmVudC50cyAvIDEwMDAsIHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oZXZlbnQuYXJncykpOwotCi0gICAgICBzd2l0Y2ggKGluc3RhbnRFdmVudC50eXBlKSB7Ci0gICAgICAgIGNhc2UgdHIubW9kZWwuSW5zdGFudEV2ZW50VHlwZS5HTE9CQUw6Ci0gICAgICAgICAgdGhpcy5tb2RlbF8ucHVzaEluc3RhbnRFdmVudChpbnN0YW50RXZlbnQpOwotICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgdHIubW9kZWwuSW5zdGFudEV2ZW50VHlwZS5QUk9DRVNTOgotICAgICAgICAgIHZhciBwcm9jZXNzID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCk7Ci0gICAgICAgICAgcHJvY2Vzcy5wdXNoSW5zdGFudEV2ZW50KGluc3RhbnRFdmVudCk7Ci0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gaW5zdGFudCBldmVudCB0eXBlOiAnICsgZXZlbnQucyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIHByb2Nlc3NUcmFjZVNhbXBsZUV2ZW50OiBmdW5jdGlvbihldmVudCkgewotICAgICAgdmFyIHRocmVhZCA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC5waWQpCi0gICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOwotCi0gICAgICB2YXIgc3RhY2tGcmFtZSA9IHRoaXMuZ2V0U3RhY2tGcmFtZUZvckV2ZW50XyhldmVudCk7Ci0gICAgICBpZiAoc3RhY2tGcmFtZSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHN0YWNrRnJhbWUgPSB0aGlzLnRyYWNlRXZlbnRTYW1wbGVTdGFja0ZyYW1lc0J5TmFtZV9bCi0gICAgICAgICAgICBldmVudC5uYW1lXTsKLSAgICAgIH0KLSAgICAgIGlmIChzdGFja0ZyYW1lID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdmFyIGlkID0gJ3RlLScgKyB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKLSAgICAgICAgc3RhY2tGcmFtZSA9IG5ldyB0ci5tb2RlbC5TdGFja0ZyYW1lKAotICAgICAgICAgICAgdW5kZWZpbmVkLCBpZCwKLSAgICAgICAgICAgIGV2ZW50LmNhdCwgZXZlbnQubmFtZSwKLSAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGV2ZW50Lm5hbWUpKTsKLSAgICAgICAgdGhpcy5tb2RlbF8uYWRkU3RhY2tGcmFtZShzdGFja0ZyYW1lKTsKLSAgICAgICAgdGhpcy50cmFjZUV2ZW50U2FtcGxlU3RhY2tGcmFtZXNCeU5hbWVfW2V2ZW50Lm5hbWVdID0gc3RhY2tGcmFtZTsKLSAgICAgIH0KLQotICAgICAgdmFyIHNhbXBsZSA9IG5ldyB0ci5tb2RlbC5TYW1wbGUoCi0gICAgICAgICAgdW5kZWZpbmVkLCB0aHJlYWQsICdUUkFDRV9FVkVOVF9TQU1QTEUnLAotICAgICAgICAgIGV2ZW50LnRzIC8gMTAwMCwgc3RhY2tGcmFtZSwgMSwKLSAgICAgICAgICB0aGlzLmRlZXBDb3B5SWZOZWVkZWRfKGV2ZW50LmFyZ3MpKTsKLSAgICAgIHRoaXMubW9kZWxfLnNhbXBsZXMucHVzaChzYW1wbGUpOwotICAgIH0sCi0KLSAgICBnZXRPckNyZWF0ZU1lbW9yeUR1bXBFdmVudHNfOiBmdW5jdGlvbihkdW1wSWQpIHsKLSAgICAgIGlmICh0aGlzLmFsbE1lbW9yeUR1bXBFdmVudHNfW2R1bXBJZF0gPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLmFsbE1lbW9yeUR1bXBFdmVudHNfW2R1bXBJZF0gPSB7Ci0gICAgICAgICAgZ2xvYmFsOiB1bmRlZmluZWQsCi0gICAgICAgICAgcHJvY2VzczogW10KLSAgICAgICAgfTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0aGlzLmFsbE1lbW9yeUR1bXBFdmVudHNfW2R1bXBJZF07Ci0gICAgfSwKLQotICAgIHByb2Nlc3NNZW1vcnlEdW1wRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICBpZiAoZXZlbnQuaWQgPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAotICAgICAgICAgIG1lc3NhZ2U6IGV2ZW50LnBoICsgJyBwaGFzZSBldmVudCB3aXRob3V0IGEgZHVtcCBJRC4nCi0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICB2YXIgZXZlbnRzID0gdGhpcy5nZXRPckNyZWF0ZU1lbW9yeUR1bXBFdmVudHNfKGV2ZW50LmlkKTsKLQotICAgICAgaWYgKGV2ZW50LnBoID09PSAndicpIHsKLSAgICAgICAgLy8gQWRkIGEgcHJvY2VzcyBtZW1vcnkgZHVtcC4KLSAgICAgICAgZXZlbnRzLnByb2Nlc3MucHVzaChldmVudCk7Ci0gICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09PSAnVicpIHsKLSAgICAgICAgLy8gQWRkIGEgZ2xvYmFsIG1lbW9yeSBkdW1wICh1bmxlc3MgYWxyZWFkeSBwcmVzZW50KS4KLSAgICAgICAgaWYgKGV2ZW50cy5nbG9iYWwgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdNdWx0aXBsZSBWIHBoYXNlIGV2ZW50cyB3aXRoIHRoZSBzYW1lIGR1bXAgSUQuJwotICAgICAgICAgIH0pOwotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBldmVudHMuZ2xvYmFsID0gZXZlbnQ7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbWVtb3J5IGR1bXAgZXZlbnQgcGhhc2UgIicgKyBldmVudC5waCArICciLicpOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBXYWxrcyB0aHJvdWdoIHRoZSBldmVudHNfIGxpc3QgYW5kIG91dHB1dHMgdGhlIHN0cnVjdHVyZXMgZGlzY292ZXJlZCB0bwotICAgICAqIG1vZGVsXy4KLSAgICAgKi8KLSAgICBpbXBvcnRFdmVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGNzciA9IG5ldyB0ci5DbG9ja1N5bmNSZWNvcmQoJ2Z0cmFjZV9pbXBvcnRlcicsIDAsIHt9KTsKLSAgICAgIHRoaXMubW9kZWxfLmNsb2NrU3luY1JlY29yZHMucHVzaChjc3IpOwotICAgICAgaWYgKHRoaXMuc3RhY2tGcmFtZUV2ZW50c18pCi0gICAgICAgIHRoaXMuaW1wb3J0U3RhY2tGcmFtZXNfKCk7Ci0KLSAgICAgIGlmICh0aGlzLnRyYWNlQW5ub3RhdGlvbnNfKQotICAgICAgICB0aGlzLmltcG9ydEFubm90YXRpb25zXygpOwotCi0gICAgICB2YXIgZXZlbnRzID0gdGhpcy5ldmVudHNfOwotICAgICAgZm9yICh2YXIgZUkgPSAwOyBlSSA8IGV2ZW50cy5sZW5ndGg7IGVJKyspIHsKLSAgICAgICAgdmFyIGV2ZW50ID0gZXZlbnRzW2VJXTsKLSAgICAgICAgaWYgKGV2ZW50LnBoID09PSAnQicgfHwgZXZlbnQucGggPT09ICdFJykgewotICAgICAgICAgIHRoaXMucHJvY2Vzc0R1cmF0aW9uRXZlbnQoZXZlbnQpOwotCi0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT09ICdYJykgewotICAgICAgICAgIHRoaXMucHJvY2Vzc0NvbXBsZXRlRXZlbnQoZXZlbnQpOwotCi0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT09ICdiJyB8fCBldmVudC5waCA9PT0gJ2UnIHx8IGV2ZW50LnBoID09PSAnbicgfHwKLSAgICAgICAgICAgICAgICAgICBldmVudC5waCA9PT0gJ1MnIHx8IGV2ZW50LnBoID09PSAnRicgfHwgZXZlbnQucGggPT09ICdUJyB8fAotICAgICAgICAgICAgICAgICAgIGV2ZW50LnBoID09PSAncCcpIHsKLSAgICAgICAgICB0aGlzLnByb2Nlc3NBc3luY0V2ZW50KGV2ZW50KTsKLQotICAgICAgICAvLyBOb3RlLCBJIGlzIGhpc3RvcmljLiBUaGUgaW5zdGFudCBldmVudCBtYXJrZXIgZ290IGNoYW5nZWQsIGJ1dCB3ZQotICAgICAgICAvLyB3YW50IHRvIHN1cHBvcnQgbG9hZGluZyBvbGQgdHJhY2UgZmlsZXMgc28gd2UgaGF2ZSBib3RoIEkgYW5kIGkuCi0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT0gJ0knIHx8IGV2ZW50LnBoID09ICdpJykgewotICAgICAgICAgIHRoaXMucHJvY2Vzc0luc3RhbnRFdmVudChldmVudCk7Ci0KLSAgICAgICAgfSBlbHNlIGlmIChldmVudC5waCA9PSAnUCcpIHsKLSAgICAgICAgICB0aGlzLnByb2Nlc3NUcmFjZVNhbXBsZUV2ZW50KGV2ZW50KTsKLQotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09ICdDJykgewotICAgICAgICAgIHRoaXMucHJvY2Vzc0NvdW50ZXJFdmVudChldmVudCk7Ci0KLSAgICAgICAgfSBlbHNlIGlmIChldmVudC5waCA9PSAnTScpIHsKLSAgICAgICAgICB0aGlzLnByb2Nlc3NNZXRhZGF0YUV2ZW50KGV2ZW50KTsKLQotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09PSAnTicgfHwgZXZlbnQucGggPT09ICdEJyB8fCBldmVudC5waCA9PT0gJ08nKSB7Ci0gICAgICAgICAgdGhpcy5wcm9jZXNzT2JqZWN0RXZlbnQoZXZlbnQpOwotCi0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT09ICdzJyB8fCBldmVudC5waCA9PT0gJ3QnIHx8IGV2ZW50LnBoID09PSAnZicpIHsKLSAgICAgICAgICB0aGlzLnByb2Nlc3NGbG93RXZlbnQoZXZlbnQpOwotCi0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT09ICd2JyB8fCBldmVudC5waCA9PT0gJ1YnKSB7Ci0gICAgICAgICAgdGhpcy5wcm9jZXNzTWVtb3J5RHVtcEV2ZW50KGV2ZW50KTsKLQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdVbnJlY29nbml6ZWQgZXZlbnQgcGhhc2U6ICcgKwotICAgICAgICAgICAgICAgIGV2ZW50LnBoICsgJyAoJyArIGV2ZW50Lm5hbWUgKyAnKScKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICBpbXBvcnRTdGFja0ZyYW1lc186IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG0gPSB0aGlzLm1vZGVsXzsKLSAgICAgIHZhciBldmVudHMgPSB0aGlzLnN0YWNrRnJhbWVFdmVudHNfOwotCi0gICAgICBmb3IgKHZhciBpZCBpbiBldmVudHMpIHsKLSAgICAgICAgdmFyIGV2ZW50ID0gZXZlbnRzW2lkXTsKLSAgICAgICAgdmFyIHRleHRGb3JDb2xvciA9IGV2ZW50LmNhdGVnb3J5ID8gZXZlbnQuY2F0ZWdvcnkgOiBldmVudC5uYW1lOwotICAgICAgICB2YXIgZnJhbWUgPSBuZXcgdHIubW9kZWwuU3RhY2tGcmFtZSgKLSAgICAgICAgICAgIHVuZGVmaW5lZCwgJ2cnICsgaWQsCi0gICAgICAgICAgICBldmVudC5jYXRlZ29yeSwgZXZlbnQubmFtZSwKLSAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHRleHRGb3JDb2xvcikpOwotICAgICAgICBtLmFkZFN0YWNrRnJhbWUoZnJhbWUpOwotICAgICAgfQotICAgICAgZm9yICh2YXIgaWQgaW4gZXZlbnRzKSB7Ci0gICAgICAgIHZhciBldmVudCA9IGV2ZW50c1tpZF07Ci0gICAgICAgIGlmIChldmVudC5wYXJlbnQgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICB2YXIgZnJhbWUgPSBtLnN0YWNrRnJhbWVzWydnJyArIGlkXTsKLSAgICAgICAgaWYgKGZyYW1lID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdvbWcnKTsKLSAgICAgICAgdmFyIHBhcmVudEZyYW1lOwotICAgICAgICBpZiAoZXZlbnQucGFyZW50ID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICBwYXJlbnRGcmFtZSA9IHVuZGVmaW5lZDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwYXJlbnRGcmFtZSA9IG0uc3RhY2tGcmFtZXNbJ2cnICsgZXZlbnQucGFyZW50XTsKLSAgICAgICAgICBpZiAocGFyZW50RnJhbWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignb21nJyk7Ci0gICAgICAgIH0KLSAgICAgICAgZnJhbWUucGFyZW50RnJhbWUgPSBwYXJlbnRGcmFtZTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgaW1wb3J0QW5ub3RhdGlvbnNfOiBmdW5jdGlvbigpIHsKLSAgICAgIGZvciAodmFyIGlkIGluIHRoaXMudHJhY2VBbm5vdGF0aW9uc18pIHsKLSAgICAgICAgdmFyIGFubm90YXRpb24gPSB0ci5tb2RlbC5Bbm5vdGF0aW9uLmZyb21EaWN0SWZQb3NzaWJsZSgKLSAgICAgICAgICAgdGhpcy50cmFjZUFubm90YXRpb25zX1tpZF0pOwotICAgICAgICBpZiAoIWFubm90YXRpb24pIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdhbm5vdGF0aW9uX3dhcm5pbmcnLAotICAgICAgICAgICAgbWVzc2FnZTogJ1VucmVjb2duaXplZCB0cmFjZUFubm90YXRpb24gdHlwZU5hbWUgXCInICsKLSAgICAgICAgICAgICAgICB0aGlzLnRyYWNlQW5ub3RhdGlvbnNfW2lkXS50eXBlTmFtZSArICdcIicKLSAgICAgICAgICB9KTsKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLm1vZGVsXy5hZGRBbm5vdGF0aW9uKGFubm90YXRpb24pOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDYWxsZWQgYnkgdGhlIE1vZGVsIGFmdGVyIGFsbCBvdGhlciBpbXBvcnRlcnMgaGF2ZSBpbXBvcnRlZCB0aGVpcgotICAgICAqIGV2ZW50cy4KLSAgICAgKi8KLSAgICBmaW5hbGl6ZUltcG9ydDogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy5tb2RlbF8ua2VybmVsLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCA9Ci0gICAgICAgICAgICB0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF87Ci0gICAgICB9Ci0gICAgICB0aGlzLmNyZWF0ZUFzeW5jU2xpY2VzXygpOwotICAgICAgdGhpcy5jcmVhdGVGbG93U2xpY2VzXygpOwotICAgICAgdGhpcy5jcmVhdGVFeHBsaWNpdE9iamVjdHNfKCk7Ci0gICAgICB0aGlzLmNyZWF0ZUltcGxpY2l0T2JqZWN0c18oKTsKLSAgICAgIHRoaXMuY3JlYXRlTWVtb3J5RHVtcHNfKCk7Ci0gICAgfSwKLQotICAgIC8qIEV2ZW50cyBjYW4gaGF2ZSBvbmUgb3IgbW9yZSBzdGFjayBmcmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZW0sIGJ1dAotICAgICAqIHRoYXQgZnJhbWUgbWlnaHQgYmUgZW5jb2RlZCBlaXRoZXIgYXMgYSBzdGFjayB0cmFjZSBvZiBwcm9ncmFtIGNvdW50ZXJzLAotICAgICAqIG9yIGFzIGEgZGlyZWN0IHN0YWNrIGZyYW1lIHJlZmVyZW5jZS4gVGhpcyBoYW5kbGVzIGVpdGhlciBjYXNlIGFuZAotICAgICAqIGlmIGZvdW5kLCByZXR1cm5zIHRoZSBzdGFja2ZyYW1lLgotICAgICAqLwotICAgIGdldFN0YWNrRnJhbWVGb3JFdmVudF86IGZ1bmN0aW9uKGV2ZW50LCBvcHRfbG9va0ZvckVuZEV2ZW50KSB7Ci0gICAgICB2YXIgc2Y7Ci0gICAgICB2YXIgc3RhY2s7Ci0gICAgICBpZiAob3B0X2xvb2tGb3JFbmRFdmVudCkgewotICAgICAgICBzZiA9IGV2ZW50LmVzZjsKLSAgICAgICAgc3RhY2sgPSBldmVudC5lc3RhY2s7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBzZiA9IGV2ZW50LnNmOwotICAgICAgICBzdGFjayA9IGV2ZW50LnN0YWNrOwotICAgICAgfQotICAgICAgaWYgKHN0YWNrICE9PSB1bmRlZmluZWQgJiYgc2YgIT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnc3RhY2tfZnJhbWVfYW5kX3N0YWNrX2Vycm9yJywKLSAgICAgICAgICBtZXNzYWdlOiAnRXZlbnQgYXQgJyArIGV2ZW50LnRzICsKLSAgICAgICAgICAgICAgJyBjYW5ub3QgaGF2ZSBib3RoIGEgc3RhY2sgYW5kIGEgc3RhY2tmcmFtZS4nCi0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgfQotCi0gICAgICBpZiAoc3RhY2sgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHRoaXMubW9kZWxfLnJlc29sdmVTdGFja1RvU3RhY2tGcmFtZV8oZXZlbnQucGlkLCBzdGFjayk7Ci0gICAgICBpZiAoc2YgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgICAgdmFyIHN0YWNrRnJhbWUgPSB0aGlzLm1vZGVsXy5zdGFja0ZyYW1lc1snZycgKyBzZl07Ci0gICAgICBpZiAoc3RhY2tGcmFtZSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgIHR5cGU6ICdzYW1wbGVfaW1wb3J0X2Vycm9yJywKLSAgICAgICAgICBtZXNzYWdlOiAnTm8gZnJhbWUgZm9yICcgKyBzZgotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgcmV0dXJuIHN0YWNrRnJhbWU7Ci0gICAgfSwKLQotICAgIHJlc29sdmVTdGFja1RvU3RhY2tGcmFtZV86IGZ1bmN0aW9uKHBpZCwgc3RhY2spIHsKLSAgICAgIC8vIFRPRE8oYWxwaCxmbWVhd2FkKTogQWRkIGNvZGVtYXAgcmVzb2x1dGlvbiBjb2RlIGhlcmUuCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBpbXBvcnRTYW1wbGVEYXRhOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5zYW1wbGVFdmVudHNfKQotICAgICAgICByZXR1cm47Ci0gICAgICB2YXIgbSA9IHRoaXMubW9kZWxfOwotCi0gICAgICAvLyBJZiB0aGlzIGlzIHRoZSBvbmx5IGltcG9ydGVyLCB0aGVuIGZha2UtY3JlYXRlIHRoZSB0aHJlYWRzLgotICAgICAgdmFyIGV2ZW50cyA9IHRoaXMuc2FtcGxlRXZlbnRzXzsKLSAgICAgIGlmICh0aGlzLmV2ZW50c18ubGVuZ3RoID09PSAwKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIGV2ZW50ID0gZXZlbnRzW2ldOwotICAgICAgICAgIG0uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnRpZCkuZ2V0T3JDcmVhdGVUaHJlYWQoZXZlbnQudGlkKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICB2YXIgdGhyZWFkc0J5VGlkID0ge307Ci0gICAgICBtLmdldEFsbFRocmVhZHMoKS5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKLSAgICAgICAgdGhyZWFkc0J5VGlkW3QudGlkXSA9IHQ7Ci0gICAgICB9KTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGV2ZW50ID0gZXZlbnRzW2ldOwotICAgICAgICB2YXIgdGhyZWFkID0gdGhyZWFkc0J5VGlkW2V2ZW50LnRpZF07Ci0gICAgICAgIGlmICh0aHJlYWQgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIG0uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAnc2FtcGxlX2ltcG9ydF9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnVGhyZWFkICcgKyBldmVudHMudGlkICsgJ25vdCBmb3VuZCcKLSAgICAgICAgICB9KTsKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBjcHU7Ci0gICAgICAgIGlmIChldmVudC5jcHUgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBjcHUgPSBtLmtlcm5lbC5nZXRPckNyZWF0ZUNwdShldmVudC5jcHUpOwotCi0gICAgICAgIHZhciBzdGFja0ZyYW1lID0gdGhpcy5nZXRTdGFja0ZyYW1lRm9yRXZlbnRfKGV2ZW50KTsKLQotICAgICAgICB2YXIgc2FtcGxlID0gbmV3IHRyLm1vZGVsLlNhbXBsZSgKLSAgICAgICAgICAgIGNwdSwgdGhyZWFkLAotICAgICAgICAgICAgZXZlbnQubmFtZSwgZXZlbnQudHMgLyAxMDAwLAotICAgICAgICAgICAgc3RhY2tGcmFtZSwKLSAgICAgICAgICAgIGV2ZW50LndlaWdodCk7Ci0gICAgICAgIG0uc2FtcGxlcy5wdXNoKHNhbXBsZSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENhbGxlZCBieSB0aGUgbW9kZWwgdG8gam9pbiByZWZlcmVuY2VzIGJldHdlZW4gb2JqZWN0cywgYWZ0ZXIgZmluYWwgbW9kZWwKLSAgICAgKiBib3VuZHMgaGF2ZSBiZWVuIGNvbXB1dGVkLgotICAgICAqLwotICAgIGpvaW5SZWZzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuam9pbk9iamVjdFJlZnNfKCk7Ci0gICAgfSwKLQotICAgIGNyZWF0ZUFzeW5jU2xpY2VzXzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5hbGxBc3luY0V2ZW50c18ubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuYWxsQXN5bmNFdmVudHNfLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICB2YXIgZCA9IHguZXZlbnQudHMgLSB5LmV2ZW50LnRzOwotICAgICAgICBpZiAoZCAhPT0gMCkKLSAgICAgICAgICByZXR1cm4gZDsKLSAgICAgICAgcmV0dXJuIHguc2VxdWVuY2VOdW1iZXIgLSB5LnNlcXVlbmNlTnVtYmVyOwotICAgICAgfSk7Ci0KLSAgICAgIHZhciBsZWdhY3lFdmVudHMgPSBbXTsKLSAgICAgIC8vIEdyb3VwIG5lc3RhYmxlIGFzeW5jIGV2ZW50cyBieSBJRC4gRXZlbnRzIHdpdGggdGhlIHNhbWUgSUQgc2hvdWxkCi0gICAgICAvLyBiZWxvbmcgdG8gdGhlIHNhbWUgcGFyZW50IGFzeW5jIGV2ZW50LgotICAgICAgdmFyIG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleSA9IHt9OwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFsbEFzeW5jRXZlbnRzXy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgYXN5bmNFdmVudFN0YXRlID0gdGhpcy5hbGxBc3luY0V2ZW50c19baV07Ci0gICAgICAgIHZhciBldmVudCA9IGFzeW5jRXZlbnRTdGF0ZS5ldmVudDsKLSAgICAgICAgaWYgKGV2ZW50LnBoID09PSAnUycgfHwgZXZlbnQucGggPT09ICdGJyB8fCBldmVudC5waCA9PT0gJ1QnIHx8Ci0gICAgICAgICAgICBldmVudC5waCA9PT0gJ3AnKSB7Ci0gICAgICAgICAgbGVnYWN5RXZlbnRzLnB1c2goYXN5bmNFdmVudFN0YXRlKTsKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZXZlbnQuY2F0ID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnTmVzdGFibGUgYXN5bmMgZXZlbnRzIChwaDogYiwgZSwgb3IgbikgcmVxdWlyZSBhICcgKwotICAgICAgICAgICAgICAgICdjYXQgcGFyYW1ldGVyLicKLSAgICAgICAgICB9KTsKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChldmVudC5uYW1lID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnTmVzdGFibGUgYXN5bmMgZXZlbnRzIChwaDogYiwgZSwgb3IgbikgcmVxdWlyZSBhICcgKwotICAgICAgICAgICAgICAgICduYW1lIHBhcmFtZXRlci4nCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXZlbnQuaWQgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdOZXN0YWJsZSBhc3luYyBldmVudHMgKHBoOiBiLCBlLCBvciBuKSByZXF1aXJlIGFuICcgKwotICAgICAgICAgICAgICAgICdpZCBwYXJhbWV0ZXIuJwotICAgICAgICAgIH0pOwotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIHZhciBrZXkgPSBldmVudC5jYXQgKyAnOicgKyBldmVudC5pZDsKLSAgICAgICAgaWYgKG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgIG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldID0gW107Ci0gICAgICAgIG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldLnB1c2goYXN5bmNFdmVudFN0YXRlKTsKLSAgICAgIH0KLSAgICAgIC8vIEhhbmRsZSBsZWdhY3kgYXN5bmMgZXZlbnRzLgotICAgICAgdGhpcy5jcmVhdGVMZWdhY3lBc3luY1NsaWNlc18obGVnYWN5RXZlbnRzKTsKLQotICAgICAgLy8gUGFyc2UgbmVzdGFibGUgYXN5bmMgZXZlbnRzIGludG8gQXN5bmNTbGljZXMuCi0gICAgICBmb3IgKHZhciBrZXkgaW4gbmVzdGFibGVBc3luY0V2ZW50c0J5S2V5KSB7Ci0gICAgICAgIHZhciBldmVudFN0YXRlRW50cmllcyA9IG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldOwotICAgICAgICAvLyBTdGFjayBvZiBlbmNsb3NpbmcgQkVHSU4gZXZlbnRzLgotICAgICAgICB2YXIgcGFyZW50U3RhY2sgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudFN0YXRlRW50cmllcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgIHZhciBldmVudFN0YXRlRW50cnkgPSBldmVudFN0YXRlRW50cmllc1tpXTsKLSAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBlbmQgb2YgYW4gZXZlbnQsIG1hdGNoIGl0IHRvIHRoZSBzdGFydC4KLSAgICAgICAgICBpZiAoZXZlbnRTdGF0ZUVudHJ5LmV2ZW50LnBoID09PSAnZScpIHsKLSAgICAgICAgICAgIC8vIFdhbGsgdXAgdGhlIHBhcmVudCBzdGFjayB0byBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIEJFR0lOIGZvcgotICAgICAgICAgICAgLy8gdGhpcyBFTkQuCi0gICAgICAgICAgICB2YXIgcGFyZW50SW5kZXggPSAtMTsKLSAgICAgICAgICAgIGZvciAodmFyIGsgPSBwYXJlbnRTdGFjay5sZW5ndGggLSAxOyBrID49IDA7IC0taykgewotICAgICAgICAgICAgICBpZiAocGFyZW50U3RhY2tba10uZXZlbnQubmFtZSA9PT0gZXZlbnRTdGF0ZUVudHJ5LmV2ZW50Lm5hbWUpIHsKLSAgICAgICAgICAgICAgICBwYXJlbnRJbmRleCA9IGs7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwYXJlbnRJbmRleCA9PT0gLTEpIHsKLSAgICAgICAgICAgICAgLy8gVW5tYXRjaGVkIGVuZC4KLSAgICAgICAgICAgICAgZXZlbnRTdGF0ZUVudHJ5LmZpbmlzaGVkID0gZmFsc2U7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBwYXJlbnRTdGFja1twYXJlbnRJbmRleF0uZW5kID0gZXZlbnRTdGF0ZUVudHJ5OwotICAgICAgICAgICAgICAvLyBQb3Agb2ZmIGFsbCBlbmNsb3NpbmcgdW5tYXRjaGVkIEJFR0lOcyB1dGlsIHBhcmVudEluZGV4LgotICAgICAgICAgICAgICB3aGlsZSAocGFyZW50SW5kZXggPCBwYXJlbnRTdGFjay5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBwYXJlbnRTdGFjay5wb3AoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBJbmhlcml0IHRoZSBjdXJyZW50IHBhcmVudC4KLSAgICAgICAgICBpZiAocGFyZW50U3RhY2subGVuZ3RoID4gMCkKLSAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5wYXJlbnRFbnRyeSA9IHBhcmVudFN0YWNrW3BhcmVudFN0YWNrLmxlbmd0aCAtIDFdOwotICAgICAgICAgIGlmIChldmVudFN0YXRlRW50cnkuZXZlbnQucGggPT09ICdiJykKLSAgICAgICAgICAgIHBhcmVudFN0YWNrLnB1c2goZXZlbnRTdGF0ZUVudHJ5KTsKLSAgICAgICAgfQotICAgICAgICB2YXIgdG9wTGV2ZWxTbGljZXMgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudFN0YXRlRW50cmllcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgIHZhciBldmVudFN0YXRlRW50cnkgPSBldmVudFN0YXRlRW50cmllc1tpXTsKLSAgICAgICAgICAvLyBTa2lwIG1hdGNoZWQgRU5ELCBhcyBpdHMgc2xpY2Ugd2lsbCBiZSBjcmVhdGVkIHdoZW4gd2UKLSAgICAgICAgICAvLyBlbmNvdW50ZXIgaXRzIGNvcnJlc3BvbmRpbmcgQkVHSU4uCi0gICAgICAgICAgaWYgKGV2ZW50U3RhdGVFbnRyeS5ldmVudC5waCA9PT0gJ2UnICYmCi0gICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5maW5pc2hlZCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIHN0YXJ0U3RhdGUgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgdmFyIGVuZFN0YXRlID0gdW5kZWZpbmVkOwotICAgICAgICAgIHZhciBzbGljZUFyZ3MgPSBldmVudFN0YXRlRW50cnkuZXZlbnQuYXJncyB8fCB7fTsKLSAgICAgICAgICB2YXIgc2xpY2VFcnJvciA9IHVuZGVmaW5lZDsKLSAgICAgICAgICBpZiAoZXZlbnRTdGF0ZUVudHJ5LmV2ZW50LnBoID09PSAnbicpIHsKLSAgICAgICAgICAgIHN0YXJ0U3RhdGUgPSBldmVudFN0YXRlRW50cnk7Ci0gICAgICAgICAgICBlbmRTdGF0ZSA9IGV2ZW50U3RhdGVFbnRyeTsKLSAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50U3RhdGVFbnRyeS5ldmVudC5waCA9PT0gJ2InKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnRTdGF0ZUVudHJ5LmVuZCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgIC8vIFVubWF0Y2hlZCBCRUdJTi4gRW5kIGl0IHdoZW4gbGFzdCBldmVudCB3aXRoIHRoaXMgSUQgZW5kcy4KLSAgICAgICAgICAgICAgZXZlbnRTdGF0ZUVudHJ5LmVuZCA9Ci0gICAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cmllc1tldmVudFN0YXRlRW50cmllcy5sZW5ndGggLSAxXTsKLSAgICAgICAgICAgICAgc2xpY2VFcnJvciA9Ci0gICAgICAgICAgICAgICAgICAnU2xpY2UgaGFzIG5vIG1hdGNoaW5nIEVORC4gRW5kIHRpbWUgaGFzIGJlZW4gYWRqdXN0ZWQuJzsKLSAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgICBtZXNzYWdlOiAnTmVzdGFibGUgYXN5bmMgQkVHSU4gZXZlbnQgYXQgJyArCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC50cyArICcgd2l0aCBuYW1lPScgKwotICAgICAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQubmFtZSArCi0gICAgICAgICAgICAgICAgICAgICcgYW5kIGlkPScgKyBldmVudFN0YXRlRW50cnkuZXZlbnQuaWQgKyAnIHdhcyB1bm1hdGNoZWQuJwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIC8vIEluY2x1ZGUgYXJncyBmb3IgYm90aCBFTkQgYW5kIEJFR0lOIGZvciBhIG1hdGNoZWQgcGFpci4KLSAgICAgICAgICAgICAgdmFyIGNvbmNhdGVuYXRlQXJndW1lbnRzID0gZnVuY3Rpb24oYXJnczEsIGFyZ3MyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ3MxLnBhcmFtcyA9PT0gdW5kZWZpbmVkIHx8IGFyZ3MyLnBhcmFtcyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyLmIuY29uY2F0ZW5hdGVPYmplY3RzKGFyZ3MxLCBhcmdzMik7Ci0gICAgICAgICAgICAgICAgLy8gTWFrZSBhbiBhcmd1bWVudCBvYmplY3QgdG8gaG9sZCB0aGUgY29tYmluZWQgcGFyYW1zLgotICAgICAgICAgICAgICAgIHZhciBhcmdzMyA9IHt9OwotICAgICAgICAgICAgICAgIGFyZ3MzLnBhcmFtcyA9IHRyLmIuY29uY2F0ZW5hdGVPYmplY3RzKGFyZ3MxLnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzMi5wYXJhbXMpOwotICAgICAgICAgICAgICAgIHJldHVybiB0ci5iLmNvbmNhdGVuYXRlT2JqZWN0cyhhcmdzMSwgYXJnczIsIGFyZ3MzKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB2YXIgZW5kQXJncyA9IGV2ZW50U3RhdGVFbnRyeS5lbmQuZXZlbnQuYXJncyB8fCB7fTsKLSAgICAgICAgICAgICAgc2xpY2VBcmdzID0gY29uY2F0ZW5hdGVBcmd1bWVudHMoc2xpY2VBcmdzLCBlbmRBcmdzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0YXJ0U3RhdGUgPSBldmVudFN0YXRlRW50cnk7Ci0gICAgICAgICAgICBlbmRTdGF0ZSA9IGV2ZW50U3RhdGVFbnRyeS5lbmQ7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFVubWF0Y2hlZCBFTkQuIFN0YXJ0IGl0IGF0IHRoZSBmaXJzdCBldmVudCB3aXRoIHRoaXMgSUQgc3RhcnRzLgotICAgICAgICAgICAgc2xpY2VFcnJvciA9Ci0gICAgICAgICAgICAgICAgJ1NsaWNlIGhhcyBubyBtYXRjaGluZyBCRUdJTi4gU3RhcnQgdGltZSBoYXMgYmVlbiBhZGp1c3RlZC4nOwotICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdOZXN0YWJsZSBhc3luYyBFTkQgZXZlbnQgYXQgJyArCi0gICAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQudHMgKyAnIHdpdGggbmFtZT0nICsKLSAgICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC5uYW1lICsKLSAgICAgICAgICAgICAgICAgICcgYW5kIGlkPScgKyBldmVudFN0YXRlRW50cnkuZXZlbnQuaWQgKyAnIHdhcyB1bm1hdGNoZWQuJwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBzdGFydFN0YXRlID0gZXZlbnRTdGF0ZUVudHJpZXNbMF07Ci0gICAgICAgICAgICBlbmRTdGF0ZSA9IGV2ZW50U3RhdGVFbnRyeTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB2YXIgaXNUb3BMZXZlbCA9IChldmVudFN0YXRlRW50cnkucGFyZW50RW50cnkgPT09IHVuZGVmaW5lZCk7Ci0gICAgICAgICAgdmFyIGFzeW5jU2xpY2VDb25zdHJ1Y3RvciA9Ci0gICAgICAgICAgICAgdHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcigKLSAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQuY2F0LAotICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC5uYW1lKTsKLQotICAgICAgICAgIHZhciB0aHJlYWRfc3RhcnQgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgdmFyIHRocmVhZF9kdXJhdGlvbiA9IHVuZGVmaW5lZDsKLSAgICAgICAgICBpZiAoc3RhcnRTdGF0ZS5ldmVudC50dHMgJiYgc3RhcnRTdGF0ZS5ldmVudC51c2VfYXN5bmNfdHRzKSB7Ci0gICAgICAgICAgICB0aHJlYWRfc3RhcnQgPSBzdGFydFN0YXRlLmV2ZW50LnR0cyAvIDEwMDA7Ci0gICAgICAgICAgICBpZiAoZW5kU3RhdGUuZXZlbnQudHRzKSB7Ci0gICAgICAgICAgICAgIHZhciB0aHJlYWRfZW5kID0gZW5kU3RhdGUuZXZlbnQudHRzIC8gMTAwMDsKLSAgICAgICAgICAgICAgdGhyZWFkX2R1cmF0aW9uID0gdGhyZWFkX2VuZCAtIHRocmVhZF9zdGFydDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB2YXIgc2xpY2UgPSBuZXcgYXN5bmNTbGljZUNvbnN0cnVjdG9yKAotICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQuY2F0LAotICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQubmFtZSwKLSAgICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCi0gICAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQubmFtZSksCi0gICAgICAgICAgICAgIHN0YXJ0U3RhdGUuZXZlbnQudHMgLyAxMDAwLAotICAgICAgICAgICAgICBzbGljZUFyZ3MsCi0gICAgICAgICAgICAgIChlbmRTdGF0ZS5ldmVudC50cyAtIHN0YXJ0U3RhdGUuZXZlbnQudHMpIC8gMTAwMCwKLSAgICAgICAgICAgICAgaXNUb3BMZXZlbCwKLSAgICAgICAgICAgICAgdGhyZWFkX3N0YXJ0LAotICAgICAgICAgICAgICB0aHJlYWRfZHVyYXRpb24pOwotCi0gICAgICAgICAgc2xpY2Uuc3RhcnRUaHJlYWQgPSBzdGFydFN0YXRlLnRocmVhZDsKLSAgICAgICAgICBzbGljZS5lbmRUaHJlYWQgPSBlbmRTdGF0ZS50aHJlYWQ7Ci0gICAgICAgICAgc2xpY2UuaWQgPSBrZXk7Ci0gICAgICAgICAgaWYgKHNsaWNlRXJyb3IgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHNsaWNlLmVycm9yID0gc2xpY2VFcnJvcjsKLSAgICAgICAgICBldmVudFN0YXRlRW50cnkuc2xpY2UgPSBzbGljZTsKLSAgICAgICAgICAvLyBBZGQgdGhlIHNsaWNlIHRvIHRoZSB0b3BMZXZlbFNsaWNlcyBhcnJheSBpZiB0aGVyZSBpcyBubyBwYXJlbnQuCi0gICAgICAgICAgLy8gT3RoZXJ3aXNlLCBhZGQgdGhlIHNsaWNlIHRvIHRoZSBzdWJTbGljZXMgb2YgaXRzIHBhcmVudC4KLSAgICAgICAgICBpZiAoaXNUb3BMZXZlbCkgewotICAgICAgICAgICAgdG9wTGV2ZWxTbGljZXMucHVzaChzbGljZSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChldmVudFN0YXRlRW50cnkucGFyZW50RW50cnkuc2xpY2UgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgZXZlbnRTdGF0ZUVudHJ5LnBhcmVudEVudHJ5LnNsaWNlLnN1YlNsaWNlcy5wdXNoKHNsaWNlKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZm9yICh2YXIgc2kgPSAwOyBzaSA8IHRvcExldmVsU2xpY2VzLmxlbmd0aDsgc2krKykgewotICAgICAgICAgIHRvcExldmVsU2xpY2VzW3NpXS5zdGFydFRocmVhZC5hc3luY1NsaWNlR3JvdXAucHVzaCgKLSAgICAgICAgICAgICAgdG9wTGV2ZWxTbGljZXNbc2ldKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICBjcmVhdGVMZWdhY3lBc3luY1NsaWNlc186IGZ1bmN0aW9uKGxlZ2FjeUV2ZW50cykgewotICAgICAgaWYgKGxlZ2FjeUV2ZW50cy5sZW5ndGggPT09IDApCi0gICAgICAgIHJldHVybjsKLQotICAgICAgbGVnYWN5RXZlbnRzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICB2YXIgZCA9IHguZXZlbnQudHMgLSB5LmV2ZW50LnRzOwotICAgICAgICBpZiAoZCAhPSAwKQotICAgICAgICAgIHJldHVybiBkOwotICAgICAgICByZXR1cm4geC5zZXF1ZW5jZU51bWJlciAtIHkuc2VxdWVuY2VOdW1iZXI7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIGFzeW5jRXZlbnRTdGF0ZXNCeU5hbWVUaGVuSUQgPSB7fTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZWdhY3lFdmVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGFzeW5jRXZlbnRTdGF0ZSA9IGxlZ2FjeUV2ZW50c1tpXTsKLQotICAgICAgICB2YXIgZXZlbnQgPSBhc3luY0V2ZW50U3RhdGUuZXZlbnQ7Ci0gICAgICAgIHZhciBuYW1lID0gZXZlbnQubmFtZTsKLSAgICAgICAgaWYgKG5hbWUgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdBc3luYyBldmVudHMgKHBoOiBTLCBULCBwLCBvciBGKSByZXF1aXJlIGEgbmFtZSAnICsKLSAgICAgICAgICAgICAgICAnIHBhcmFtZXRlci4nCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgaWQgPSBldmVudC5pZDsKLSAgICAgICAgaWYgKGlkID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnQXN5bmMgZXZlbnRzIChwaDogUywgVCwgcCwgb3IgRikgcmVxdWlyZSBhbiBpZCBwYXJhbWV0ZXIuJwotICAgICAgICAgIH0pOwotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVE9ETyhzaW1vbmphbSk6IEFkZCBhIHN5bmNocm9ub3VzIHRpY2sgb24gdGhlIGFwcHJvcHJpYXRlIHRocmVhZC4KLQotICAgICAgICBpZiAoZXZlbnQucGggPT09ICdTJykgewotICAgICAgICAgIGlmIChhc3luY0V2ZW50U3RhdGVzQnlOYW1lVGhlbklEW25hbWVdID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICBhc3luY0V2ZW50U3RhdGVzQnlOYW1lVGhlbklEW25hbWVdID0ge307Ci0gICAgICAgICAgaWYgKGFzeW5jRXZlbnRTdGF0ZXNCeU5hbWVUaGVuSURbbmFtZV1baWRdKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgbWVzc2FnZTogJ0F0ICcgKyBldmVudC50cyArICcsIGEgc2xpY2Ugb2YgdGhlIHNhbWUgaWQgJyArIGlkICsKLSAgICAgICAgICAgICAgICAgICcgd2FzIGFscmFkeSBvcGVuLicKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAgICAgICAgIGFzeW5jRXZlbnRTdGF0ZXNCeU5hbWVUaGVuSURbbmFtZV1baWRdID0gW107Ci0gICAgICAgICAgYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF0ucHVzaChhc3luY0V2ZW50U3RhdGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmIChhc3luY0V2ZW50U3RhdGVzQnlOYW1lVGhlbklEW25hbWVdID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICB0eXBlOiAnYXN5bmNfc2xpY2VfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICBtZXNzYWdlOiAnQXQgJyArIGV2ZW50LnRzICsgJywgbm8gc2xpY2UgbmFtZWQgJyArIG5hbWUgKwotICAgICAgICAgICAgICAgICAgJyB3YXMgb3Blbi4nCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF0gPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdBdCAnICsgZXZlbnQudHMgKyAnLCBubyBzbGljZSBuYW1lZCAnICsgbmFtZSArCi0gICAgICAgICAgICAgICAgICAnIHdpdGggaWQ9JyArIGlkICsgJyB3YXMgb3Blbi4nCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgZXZlbnRzID0gYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF07Ci0gICAgICAgICAgZXZlbnRzLnB1c2goYXN5bmNFdmVudFN0YXRlKTsKLQotICAgICAgICAgIGlmIChldmVudC5waCA9PT0gJ0YnKSB7Ci0gICAgICAgICAgICAvLyBDcmVhdGUgYSBzbGljZSBmcm9tIHN0YXJ0IHRvIGVuZC4KLSAgICAgICAgICAgIHZhciBhc3luY1NsaWNlQ29uc3RydWN0b3IgPQotICAgICAgICAgICAgICAgdHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcigKLSAgICAgICAgICAgICAgICAgIGV2ZW50c1swXS5ldmVudC5jYXQsCi0gICAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgICAgIHZhciBzbGljZSA9IG5ldyBhc3luY1NsaWNlQ29uc3RydWN0b3IoCi0gICAgICAgICAgICAgICAgZXZlbnRzWzBdLmV2ZW50LmNhdCwKLSAgICAgICAgICAgICAgICBuYW1lLAotICAgICAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUpLAotICAgICAgICAgICAgICAgIGV2ZW50c1swXS5ldmVudC50cyAvIDEwMDAsCi0gICAgICAgICAgICAgICAgdHIuYi5jb25jYXRlbmF0ZU9iamVjdHMoZXZlbnRzWzBdLmV2ZW50LmFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0uZXZlbnQuYXJncyksCi0gICAgICAgICAgICAgICAgKGV2ZW50LnRzIC0gZXZlbnRzWzBdLmV2ZW50LnRzKSAvIDEwMDAsCi0gICAgICAgICAgICAgICAgdHJ1ZSk7Ci0gICAgICAgICAgICBzbGljZS5zdGFydFRocmVhZCA9IGV2ZW50c1swXS50aHJlYWQ7Ci0gICAgICAgICAgICBzbGljZS5lbmRUaHJlYWQgPSBhc3luY0V2ZW50U3RhdGUudGhyZWFkOwotICAgICAgICAgICAgc2xpY2UuaWQgPSBpZDsKLQotICAgICAgICAgICAgdmFyIHN0ZXBUeXBlID0gZXZlbnRzWzFdLmV2ZW50LnBoOwotICAgICAgICAgICAgdmFyIGlzVmFsaWQgPSB0cnVlOwotCi0gICAgICAgICAgICAvLyBDcmVhdGUgc3ViU2xpY2VzIGZvciBlYWNoIHN0ZXAuIFNraXAgdGhlIHN0YXJ0IGFuZCBmaW5pc2ggZXZlbnRzLAotICAgICAgICAgICAgLy8gd2hpY2ggYXJlIGFsd2F5cyBmaXJzdCBhbmQgbGFzdCByZXNwZWN0aXZlbHkuCi0gICAgICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IGV2ZW50cy5sZW5ndGggLSAxOyArK2opIHsKLSAgICAgICAgICAgICAgaWYgKGV2ZW50c1tqXS5ldmVudC5waCA9PT0gJ1QnIHx8IGV2ZW50c1tqXS5ldmVudC5waCA9PT0gJ3AnKSB7Ci0gICAgICAgICAgICAgICAgaXNWYWxpZCA9IHRoaXMuYXNzZXJ0U3RlcFR5cGVNYXRjaGVzXyhzdGVwVHlwZSwgZXZlbnRzW2pdKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQpCi0gICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIGlmIChldmVudHNbal0uZXZlbnQucGggPT09ICdTJykgewotICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBdCAnICsgZXZlbnQuZXZlbnQudHMgKyAnLCBhIHNsaWNlIG5hbWVkICcgKwotICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmV2ZW50Lm5hbWUgKyAnIHdpdGggaWQ9JyArIGV2ZW50LmV2ZW50LmlkICsKLSAgICAgICAgICAgICAgICAgICAgICAnIGhhZCBhIHN0ZXAgYmVmb3JlIHRoZSBzdGFydCBldmVudC4nCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICBpZiAoZXZlbnRzW2pdLmV2ZW50LnBoID09PSAnRicpIHsKLSAgICAgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQXQgJyArIGV2ZW50LmV2ZW50LnRzICsgJywgYSBzbGljZSBuYW1lZCAnICsKLSAgICAgICAgICAgICAgICAgICAgICBldmVudC5ldmVudC5uYW1lICsgJyB3aXRoIGlkPScgKyBldmVudC5ldmVudC5pZCArCi0gICAgICAgICAgICAgICAgICAgICAgJyBoYWQgYSBzdGVwIGFmdGVyIHRoZSBmaW5pc2ggZXZlbnQuJwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSBqICsgKHN0ZXBUeXBlID09PSAnVCcgPyAwIDogLTEpOwotICAgICAgICAgICAgICB2YXIgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgMTsKLQotICAgICAgICAgICAgICB2YXIgc3ViTmFtZSA9IGV2ZW50c1tqXS5ldmVudC5uYW1lOwotICAgICAgICAgICAgICBpZiAoZXZlbnRzW2pdLmV2ZW50LnBoID09PSAnVCcgfHwgZXZlbnRzW2pdLmV2ZW50LnBoID09PSAncCcpCi0gICAgICAgICAgICAgICAgc3ViTmFtZSA9IHN1Yk5hbWUgKyAnOicgKyBldmVudHNbal0uZXZlbnQuYXJncy5zdGVwOwotCi0gICAgICAgICAgICAgIHZhciBhc3luY1NsaWNlQ29uc3RydWN0b3IgPQotICAgICAgICAgICAgICAgICB0ci5tb2RlbC5Bc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKAotICAgICAgICAgICAgICAgICAgICBldmVudHNbMF0uZXZlbnQuY2F0LAotICAgICAgICAgICAgICAgICAgICBzdWJOYW1lKTsKLSAgICAgICAgICAgICAgdmFyIHN1YlNsaWNlID0gbmV3IGFzeW5jU2xpY2VDb25zdHJ1Y3RvcigKLSAgICAgICAgICAgICAgICAgIGV2ZW50c1swXS5ldmVudC5jYXQsCi0gICAgICAgICAgICAgICAgICBzdWJOYW1lLAotICAgICAgICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoc3ViTmFtZSArIGopLAotICAgICAgICAgICAgICAgICAgZXZlbnRzW3N0YXJ0SW5kZXhdLmV2ZW50LnRzIC8gMTAwMCwKLSAgICAgICAgICAgICAgICAgIHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oZXZlbnRzW2pdLmV2ZW50LmFyZ3MpLAotICAgICAgICAgICAgICAgICAgKGV2ZW50c1tlbmRJbmRleF0uZXZlbnQudHMgLSBldmVudHNbc3RhcnRJbmRleF0uZXZlbnQudHMpIC8KLSAgICAgICAgICAgICAgICAgICAgICAxMDAwKTsKLSAgICAgICAgICAgICAgc3ViU2xpY2Uuc3RhcnRUaHJlYWQgPSBldmVudHNbc3RhcnRJbmRleF0udGhyZWFkOwotICAgICAgICAgICAgICBzdWJTbGljZS5lbmRUaHJlYWQgPSBldmVudHNbZW5kSW5kZXhdLnRocmVhZDsKLSAgICAgICAgICAgICAgc3ViU2xpY2UuaWQgPSBpZDsKLQotICAgICAgICAgICAgICBzbGljZS5zdWJTbGljZXMucHVzaChzdWJTbGljZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7Ci0gICAgICAgICAgICAgIC8vIEFkZCB8c2xpY2V8IHRvIHRoZSBzdGFydC10aHJlYWQncyBhc3luY1NsaWNlcy4KLSAgICAgICAgICAgICAgc2xpY2Uuc3RhcnRUaHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBkZWxldGUgYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF07Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFzc2VydFN0ZXBUeXBlTWF0Y2hlc186IGZ1bmN0aW9uKHN0ZXBUeXBlLCBldmVudCkgewotICAgICAgaWYgKHN0ZXBUeXBlICE9IGV2ZW50LmV2ZW50LnBoKSB7Ci0gICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgbWVzc2FnZTogJ0F0ICcgKyBldmVudC5ldmVudC50cyArICcsIGEgc2xpY2UgbmFtZWQgJyArCi0gICAgICAgICAgICAgIGV2ZW50LmV2ZW50Lm5hbWUgKyAnIHdpdGggaWQ9JyArIGV2ZW50LmV2ZW50LmlkICsKLSAgICAgICAgICAgICAgJyBoYWQgYm90aCBiZWdpbiBhbmQgZW5kIHN0ZXBzLCB3aGljaCBpcyBub3QgYWxsb3dlZC4nCi0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgY3JlYXRlRmxvd1NsaWNlc186IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuYWxsRmxvd0V2ZW50c18ubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciB0aGF0ID0gdGhpczsKLQotICAgICAgZnVuY3Rpb24gdmFsaWRhdGVGbG93RXZlbnQoKSB7Ci0gICAgICAgIGlmIChldmVudC5uYW1lID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICB0aGF0Lm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgIHR5cGU6ICdmbG93X3NsaWNlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdGbG93IGV2ZW50cyAocGg6IHMsIHQgb3IgZikgcmVxdWlyZSBhIG5hbWUgcGFyYW1ldGVyLicKLSAgICAgICAgICB9KTsKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXZlbnQuaWQgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHRoYXQubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ2Zsb3dfc2xpY2VfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgbWVzc2FnZTogJ0Zsb3cgZXZlbnRzIChwaDogcywgdCBvciBmKSByZXF1aXJlIGFuIGlkIHBhcmFtZXRlci4nCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgICAgfQotCi0gICAgICBmdW5jdGlvbiBjcmVhdGVGbG93RXZlbnQodGhyZWFkLCBldmVudCwgcmVmR3VpZCkgewotICAgICAgICB2YXIgc3RhcnRTbGljZSA9IHRocmVhZC5zbGljZUdyb3VwLmZpbmRTbGljZUF0VHMoZXZlbnQudHMgLyAxMDAwKTsKLSAgICAgICAgaWYgKHN0YXJ0U2xpY2UgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgICAgIHZhciBmbG93RXZlbnQgPSBuZXcgdHIubW9kZWwuRmxvd0V2ZW50KAotICAgICAgICAgICAgZXZlbnQuY2F0LAotICAgICAgICAgICAgZXZlbnQuaWQsCi0gICAgICAgICAgICBldmVudC5uYW1lLAotICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZXZlbnQubmFtZSksCi0gICAgICAgICAgICBldmVudC50cyAvIDEwMDAsCi0gICAgICAgICAgICB0aGF0LmRlZXBDb3B5SWZOZWVkZWRfKGV2ZW50LmFyZ3MpKTsKLSAgICAgICAgZmxvd0V2ZW50LnN0YXJ0U2xpY2UgPSBzdGFydFNsaWNlOwotICAgICAgICBzdGFydFNsaWNlLm91dEZsb3dFdmVudHMucHVzaChmbG93RXZlbnQpOwotICAgICAgICByZXR1cm4gZmxvd0V2ZW50OwotICAgICAgfQotCi0gICAgICBmdW5jdGlvbiBmaW5pc2hGbG93RXZlbnRXaXRoKGZsb3dFdmVudCwgdGhyZWFkLCBldmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmR3VpZCwgYmluZFRvUGFyZW50KSB7Ci0gICAgICAgIC8vIFRPRE8obmR1Y2EpOiBGaWd1cmUgb3V0IGVuZFNsaWNlIGZyb20gdHMgYW5kIGJpbmRpbmcgcG9pbnQuCi0gICAgICAgIHZhciBlbmRTbGljZTsKLSAgICAgICAgaWYgKGJpbmRUb1BhcmVudCkgewotICAgICAgICAgIGVuZFNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuZmluZFNsaWNlQXRUcyhldmVudC50cyAvIDEwMDApOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGVuZFNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuZmluZE5leHRTbGljZUFmdGVyKAotICAgICAgICAgICAgICBldmVudC50cyAvIDEwMDAsIHJlZkd1aWQpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChlbmRTbGljZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZW5kU2xpY2UuaW5GbG93RXZlbnRzLnB1c2goZmxvd0V2ZW50KTsKLQotICAgICAgICAvLyBNb2RpZnkgdGhlIGZsb3dFdmVudCB3aXRoIHRoZSBuZXcgZGF0YS4KLSAgICAgICAgZmxvd0V2ZW50LmVuZFNsaWNlID0gZW5kU2xpY2U7Ci0gICAgICAgIGZsb3dFdmVudC5kdXJhdGlvbiA9IChldmVudC50cyAvIDEwMDApIC0gZmxvd0V2ZW50LnN0YXJ0OwotICAgICAgICB0aGF0Lm1lcmdlQXJnc0ludG9fKGZsb3dFdmVudC5hcmdzLCBldmVudC5hcmdzLCBmbG93RXZlbnQudGl0bGUpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgIH0KLQotICAgICAgLy8gQWN0dWFsIGltcG9ydC4KLSAgICAgIHRoaXMuYWxsRmxvd0V2ZW50c18uc29ydChmdW5jdGlvbih4LCB5KSB7Ci0gICAgICAgIHZhciBkID0geC5ldmVudC50cyAtIHkuZXZlbnQudHM7Ci0gICAgICAgIGlmIChkICE9IDApCi0gICAgICAgICAgcmV0dXJuIGQ7Ci0gICAgICAgIHJldHVybiB4LnNlcXVlbmNlTnVtYmVyIC0geS5zZXF1ZW5jZU51bWJlcjsKLSAgICAgIH0pOwotCi0gICAgICB2YXIgZmxvd0lkVG9FdmVudCA9IHt9OwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFsbEZsb3dFdmVudHNfLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBkYXRhID0gdGhpcy5hbGxGbG93RXZlbnRzX1tpXTsKLSAgICAgICAgdmFyIHJlZkd1aWQgPSBkYXRhLnJlZkd1aWQ7Ci0gICAgICAgIHZhciBldmVudCA9IGRhdGEuZXZlbnQ7Ci0gICAgICAgIHZhciB0aHJlYWQgPSBkYXRhLnRocmVhZDsKLSAgICAgICAgaWYgKCF2YWxpZGF0ZUZsb3dFdmVudChldmVudCkpCi0gICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgdmFyIGZsb3dFdmVudDsKLSAgICAgICAgaWYgKGV2ZW50LnBoID09PSAncycpIHsKLSAgICAgICAgICBpZiAoZmxvd0lkVG9FdmVudFtldmVudC5pZF0pIHsKLSAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICB0eXBlOiAnZmxvd19zbGljZV9zdGFydF9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdldmVudCBpZCAnICsgZXZlbnQuaWQgKyAnIGFscmVhZHkgc2VlbiB3aGVuICcgKwotICAgICAgICAgICAgICAgICAgJ2VuY291bnRlcmluZyBzdGFydCBvZiBmbG93IGV2ZW50Lid9KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICBmbG93RXZlbnQgPSBjcmVhdGVGbG93RXZlbnQodGhyZWFkLCBldmVudCwgcmVmR3VpZCk7Ci0gICAgICAgICAgaWYgKCFmbG93RXZlbnQpIHsKLSAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICB0eXBlOiAnZmxvd19zbGljZV9zdGFydF9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdldmVudCBpZCAnICsgZXZlbnQuaWQgKyAnIGRvZXMgbm90IHN0YXJ0ICcgKwotICAgICAgICAgICAgICAgICAgJ2F0IGFuIGFjdHVhbCBzbGljZSwgc28gY2Fubm90IGJlIGNyZWF0ZWQuJ30pOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZsb3dJZFRvRXZlbnRbZXZlbnQuaWRdID0gZmxvd0V2ZW50OwotCi0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT09ICd0JyB8fCBldmVudC5waCA9PT0gJ2YnKSB7Ci0gICAgICAgICAgZmxvd0V2ZW50ID0gZmxvd0lkVG9FdmVudFtldmVudC5pZF07Ci0gICAgICAgICAgaWYgKGZsb3dFdmVudCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgdHlwZTogJ2Zsb3dfc2xpY2Vfb3JkZXJpbmdfZXJyb3InLAotICAgICAgICAgICAgICBtZXNzYWdlOiAnRm91bmQgZmxvdyBwaGFzZSAnICsgZXZlbnQucGggKyAnIGZvciBpZDogJyArIGV2ZW50LmlkICsKLSAgICAgICAgICAgICAgICAgICcgYnV0IG5vIGZsb3cgc3RhcnQgZm91bmQuJwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB2YXIgYmluZFRvUGFyZW50ID0gZXZlbnQucGggPT09ICd0JzsKLQotICAgICAgICAgIGlmIChldmVudC5waCA9PT0gJ2YnKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQuYnAgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICAvLyBIYWNrOiBpbnB1dCBsYXRlbmN5IGZsb3cgZXZlbnRzIHVzZWQgdG8gYmUgaXNzdWVkIHdpdGhvdXQKLSAgICAgICAgICAgICAgLy8gYnA9J2UnIGxldHRlciBpbiBvbGQgdHJhY2VzLiBCdXQsIHdlIHN0aWxsIHdhbnQgdGhlaXIgZmxvdwotICAgICAgICAgICAgICAvLyBldmVudHMgdG8gcGFyc2UgInByb3Blcmx5LiIgVGhpcyBhZGp1c3RzIHRoZWlyIGJpbmRpbmcgcG9pbnQKLSAgICAgICAgICAgICAgLy8gc28gdGhhdCB0aGV5IHBhcnNlLgotICAgICAgICAgICAgICAvLwotICAgICAgICAgICAgICAvLyBUT0RPKG5kdWNhKTogUmVtb3ZhbCBvZiB0aGlzIGhhY2sgaXMgdHJhY2tlZCBpbgotICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci9pc3N1ZXMvOTkxLgotICAgICAgICAgICAgICBpZiAoZXZlbnQuY2F0LmluZGV4T2YoJ2lucHV0JykgPiAtMSkKLSAgICAgICAgICAgICAgICBiaW5kVG9QYXJlbnQgPSB0cnVlOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgaWYgKGV2ZW50LmJwICE9PSAnZScpIHsKLSAgICAgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgICAgdHlwZTogJ2Zsb3dfc2xpY2VfYmluZF9wb2ludF9lcnJvcicsCi0gICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdGbG93IGV2ZW50IHdpdGggaW52YWxpZCBiaW5kaW5nIHBvaW50IChldmVudC5icCkuJwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJpbmRUb1BhcmVudCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgdmFyIG9rID0gZmluaXNoRmxvd0V2ZW50V2l0aChmbG93RXZlbnQsIHRocmVhZCwgZXZlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZHdWlkLCBiaW5kVG9QYXJlbnQpOwotICAgICAgICAgIGlmIChvaykgewotICAgICAgICAgICAgdGhhdC5tb2RlbF8uZmxvd0V2ZW50cy5wdXNoKGZsb3dFdmVudCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICB0eXBlOiAnZmxvd19zbGljZV9zdGFydF9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdldmVudCBpZCAnICsgZXZlbnQuaWQgKyAnIGRvZXMgbm90IGVuZCAnICsKLSAgICAgICAgICAgICAgICAgICdhdCBhbiBhY3R1YWwgc2xpY2UsIHNvIGNhbm5vdCBiZSBjcmVhdGVkLid9KTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICBmbG93SWRUb0V2ZW50W2V2ZW50LmlkXSA9IHVuZGVmaW5lZDsKLQotICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBzdGVwLCB0aGVuIGNyZWF0ZSBhbm90aGVyIGZsb3cgZXZlbnQuCi0gICAgICAgICAgaWYgKG9rICYmIGV2ZW50LnBoID09PSAndCcpIHsKLSAgICAgICAgICAgIGZsb3dFdmVudCA9IGNyZWF0ZUZsb3dFdmVudCh0aHJlYWQsIGV2ZW50KTsKLSAgICAgICAgICAgIGZsb3dJZFRvRXZlbnRbZXZlbnQuaWRdID0gZmxvd0V2ZW50OwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgb2JqZWN0cyBkZXNjcmliZWQgdmlhIHRoZSBOLCBELCBhbmQgTyBwaGFzZQotICAgICAqIGV2ZW50cy4KLSAgICAgKi8KLSAgICBjcmVhdGVFeHBsaWNpdE9iamVjdHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmFsbE9iamVjdEV2ZW50c18ubGVuZ3RoID09IDApCi0gICAgICAgIHJldHVybjsKLQotICAgICAgZnVuY3Rpb24gcHJvY2Vzc0V2ZW50KG9iamVjdEV2ZW50U3RhdGUpIHsKLSAgICAgICAgdmFyIGV2ZW50ID0gb2JqZWN0RXZlbnRTdGF0ZS5ldmVudDsKLSAgICAgICAgdmFyIHRocmVhZCA9IG9iamVjdEV2ZW50U3RhdGUudGhyZWFkOwotICAgICAgICBpZiAoZXZlbnQubmFtZSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nICcgKyBKU09OLnN0cmluZ2lmeShldmVudCkgKyAnOiAnICsKLSAgICAgICAgICAgICAgICAnT2JqZWN0IGV2ZW50cyByZXF1aXJlIGFuIG5hbWUgcGFyYW1ldGVyLicKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChldmVudC5pZCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nICcgKyBKU09OLnN0cmluZ2lmeShldmVudCkgKyAnOiAnICsKLSAgICAgICAgICAgICAgICAnT2JqZWN0IGV2ZW50cyByZXF1aXJlIGFuIGlkIHBhcmFtZXRlci4nCi0gICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHByb2Nlc3MgPSB0aHJlYWQucGFyZW50OwotICAgICAgICB2YXIgdHMgPSBldmVudC50cyAvIDEwMDA7Ci0gICAgICAgIHZhciBpbnN0YW5jZTsKLSAgICAgICAgaWYgKGV2ZW50LnBoID09ICdOJykgewotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBpbnN0YW5jZSA9IHByb2Nlc3Mub2JqZWN0cy5pZFdhc0NyZWF0ZWQoCi0gICAgICAgICAgICAgICAgZXZlbnQuaWQsIGV2ZW50LmNhdCwgZXZlbnQubmFtZSwgdHMpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgbWVzc2FnZTogJ1doaWxlIHByb2Nlc3NpbmcgY3JlYXRlIG9mICcgKwotICAgICAgICAgICAgICAgICAgZXZlbnQuaWQgKyAnIGF0IHRzPScgKyB0cyArICc6ICcgKyBlCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT0gJ08nKSB7Ci0gICAgICAgICAgaWYgKGV2ZW50LmFyZ3Muc25hcHNob3QgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3RfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICBtZXNzYWdlOiAnV2hpbGUgcHJvY2Vzc2luZyAnICsgZXZlbnQuaWQgKyAnIGF0IHRzPScgKyB0cyArICc6ICcgKwotICAgICAgICAgICAgICAgICAgJ1NuYXBzaG90cyBtdXN0IGhhdmUgYXJnczoge3NuYXBzaG90OiAuLi59JwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBzbmFwc2hvdDsKLSAgICAgICAgICB0cnkgewotICAgICAgICAgICAgdmFyIGFyZ3MgPSB0aGlzLmRlZXBDb3B5SWZOZWVkZWRfKGV2ZW50LmFyZ3Muc25hcHNob3QpOwotICAgICAgICAgICAgdmFyIGNhdDsKLSAgICAgICAgICAgIGlmIChhcmdzLmNhdCkgewotICAgICAgICAgICAgICBjYXQgPSBhcmdzLmNhdDsKLSAgICAgICAgICAgICAgZGVsZXRlIGFyZ3MuY2F0OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgY2F0ID0gZXZlbnQuY2F0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgYmFzZVR5cGVuYW1lOwotICAgICAgICAgICAgaWYgKGFyZ3MuYmFzZV90eXBlKSB7Ci0gICAgICAgICAgICAgIGJhc2VUeXBlbmFtZSA9IGFyZ3MuYmFzZV90eXBlOwotICAgICAgICAgICAgICBkZWxldGUgYXJncy5iYXNlX3R5cGU7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBiYXNlVHlwZW5hbWUgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzbmFwc2hvdCA9IHByb2Nlc3Mub2JqZWN0cy5hZGRTbmFwc2hvdCgKLSAgICAgICAgICAgICAgICBldmVudC5pZCwgY2F0LCBldmVudC5uYW1lLCB0cywKLSAgICAgICAgICAgICAgICBhcmdzLCBiYXNlVHlwZW5hbWUpOwotICAgICAgICAgICAgc25hcHNob3Quc25hcHNob3R0ZWRPblRocmVhZCA9IHRocmVhZDsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgdHlwZTogJ29iamVjdF9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nIHNuYXBzaG90IG9mICcgKwotICAgICAgICAgICAgICAgICAgZXZlbnQuaWQgKyAnIGF0IHRzPScgKyB0cyArICc6ICcgKyBlCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaW5zdGFuY2UgPSBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZTsKLSAgICAgICAgfSBlbHNlIGlmIChldmVudC5waCA9PSAnRCcpIHsKLSAgICAgICAgICB0cnkgewotICAgICAgICAgICAgaW5zdGFuY2UgPSBwcm9jZXNzLm9iamVjdHMuaWRXYXNEZWxldGVkKAotICAgICAgICAgICAgICAgIGV2ZW50LmlkLCBldmVudC5jYXQsIGV2ZW50Lm5hbWUsIHRzKTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgdHlwZTogJ29iamVjdF9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nIGRlbGV0ZSBvZiAnICsKLSAgICAgICAgICAgICAgICAgIGV2ZW50LmlkICsgJyBhdCB0cz0nICsgdHMgKyAnOiAnICsgZQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGluc3RhbmNlKSB7Ci0gICAgICAgICAgaW5zdGFuY2UuY29sb3JJZCA9IHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKAotICAgICAgICAgICAgICBpbnN0YW5jZS50eXBlTmFtZSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgdGhpcy5hbGxPYmplY3RFdmVudHNfLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICB2YXIgZCA9IHguZXZlbnQudHMgLSB5LmV2ZW50LnRzOwotICAgICAgICBpZiAoZCAhPSAwKQotICAgICAgICAgIHJldHVybiBkOwotICAgICAgICByZXR1cm4geC5zZXF1ZW5jZU51bWJlciAtIHkuc2VxdWVuY2VOdW1iZXI7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIGFsbE9iamVjdEV2ZW50cyA9IHRoaXMuYWxsT2JqZWN0RXZlbnRzXzsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsT2JqZWN0RXZlbnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBvYmplY3RFdmVudFN0YXRlID0gYWxsT2JqZWN0RXZlbnRzW2ldOwotICAgICAgICB0cnkgewotICAgICAgICAgIHByb2Nlc3NFdmVudC5jYWxsKHRoaXMsIG9iamVjdEV2ZW50U3RhdGUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZQotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGNyZWF0ZUltcGxpY2l0T2JqZWN0c186IGZ1bmN0aW9uKCkgewotICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5tb2RlbF8ucHJvY2Vzc2VzLCBmdW5jdGlvbihwaWQsIHByb2Nlc3MpIHsKLSAgICAgICAgdGhpcy5jcmVhdGVJbXBsaWNpdE9iamVjdHNGb3JQcm9jZXNzXyhwcm9jZXNzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICAvLyBIZXJlLCB3ZSBjb2xsZWN0IGFsbCB0aGUgc25hcHNob3RzIHRoYXQgaW50ZXJuYWxseSBjb250YWluIGEKLSAgICAvLyBKYXZhc2NyaXB0LWxldmVsIG9iamVjdCBpbnNpZGUgdGhlaXIgYXJncyBsaXN0IHRoYXQgaGFzIGFuICJpZCIgZmllbGQsCi0gICAgLy8gYW5kIHR1cm4gdGhhdCBpbnRvIGEgc25hcHNob3Qgb2YgdGhlIGluc3RhbmNlIHJlZmVycmVkIHRvIGJ5IGlkLgotICAgIGNyZWF0ZUltcGxpY2l0T2JqZWN0c0ZvclByb2Nlc3NfOiBmdW5jdGlvbihwcm9jZXNzKSB7Ci0KLSAgICAgIGZ1bmN0aW9uIHByb2Nlc3NGaWVsZChyZWZlcmVuY2luZ09iamVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2luZ09iamVjdEZpZWxkTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2luZ09iamVjdEZpZWxkVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmluZ1NuYXBzaG90KSB7Ci0gICAgICAgIGlmICghcmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAocmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlIGluc3RhbmNlb2YKLSAgICAgICAgICAgIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KQotICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICBpZiAocmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlLmlkID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBpbXBsaWNpdFNuYXBzaG90ID0gcmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlOwotCi0gICAgICAgIHZhciByYXdJZCA9IGltcGxpY2l0U25hcHNob3QuaWQ7Ci0gICAgICAgIHZhciBtID0gLyguKylcLyguKykvLmV4ZWMocmF3SWQpOwotICAgICAgICBpZiAoIW0pCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbXBsaWNpdCBzbmFwc2hvdHMgbXVzdCBoYXZlIG5hbWVzLicpOwotICAgICAgICBkZWxldGUgaW1wbGljaXRTbmFwc2hvdC5pZDsKLSAgICAgICAgdmFyIG5hbWUgPSBtWzFdOwotICAgICAgICB2YXIgaWQgPSBtWzJdOwotICAgICAgICB2YXIgcmVzOwotCi0gICAgICAgIHZhciBjYXQ7Ci0gICAgICAgIGlmIChpbXBsaWNpdFNuYXBzaG90LmNhdCAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgIGNhdCA9IGltcGxpY2l0U25hcHNob3QuY2F0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgY2F0ID0gY29udGFpbmluZ1NuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNhdGVnb3J5OwotCi0gICAgICAgIHZhciBiYXNlVHlwZW5hbWU7Ci0gICAgICAgIGlmIChpbXBsaWNpdFNuYXBzaG90LmJhc2VfdHlwZSkKLSAgICAgICAgICBiYXNlVHlwZW5hbWUgPSBpbXBsaWNpdFNuYXBzaG90LmJhc2VfdHlwZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIGJhc2VUeXBlbmFtZSA9IHVuZGVmaW5lZDsKLQotICAgICAgICB0cnkgewotICAgICAgICAgIHJlcyA9IHByb2Nlc3Mub2JqZWN0cy5hZGRTbmFwc2hvdCgKLSAgICAgICAgICAgICAgaWQsIGNhdCwKLSAgICAgICAgICAgICAgbmFtZSwgY29udGFpbmluZ1NuYXBzaG90LnRzLAotICAgICAgICAgICAgICBpbXBsaWNpdFNuYXBzaG90LCBiYXNlVHlwZW5hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3NuYXBzaG90X3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nIGltcGxpY2l0IHNuYXBzaG90IG9mICcgKwotICAgICAgICAgICAgICAgIHJhd0lkICsgJyBhdCB0cz0nICsgY29udGFpbmluZ1NuYXBzaG90LnRzICsgJzogJyArIGUKLSAgICAgICAgICB9KTsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcmVzLm9iamVjdEluc3RhbmNlLmhhc0ltcGxpY2l0U25hcHNob3RzID0gdHJ1ZTsKLSAgICAgICAgcmVzLmNvbnRhaW5pbmdTbmFwc2hvdCA9IGNvbnRhaW5pbmdTbmFwc2hvdDsKLSAgICAgICAgcmVzLnNuYXBzaG90dGVkT25UaHJlYWQgPSBjb250YWluaW5nU25hcHNob3Quc25hcHNob3R0ZWRPblRocmVhZDsKLSAgICAgICAgcmVmZXJlbmNpbmdPYmplY3RbcmVmZXJlbmNpbmdPYmplY3RGaWVsZE5hbWVdID0gcmVzOwotICAgICAgICBpZiAoIShyZXMgaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCkpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDcmVhdGVkIG9iamVjdCBtdXN0IGJlIGluc3RhbmNlb2Ygc25hcHNob3QnKTsKLSAgICAgICAgcmV0dXJuIHJlcy5hcmdzOwotICAgICAgfQotCi0gICAgICAvKioKLSAgICAgICAqIEl0ZXJhdGVzIG92ZXIgdGhlIGZpZWxkcyBpbiB0aGUgb2JqZWN0LCBjYWxsaW5nIGZ1bmMgZm9yIGV2ZXJ5Ci0gICAgICAgKiBmaWVsZC92YWx1ZSBmb3VuZC4KLSAgICAgICAqCi0gICAgICAgKiBAcmV0dXJuIHtvYmplY3R9IElmIHRoZSBmdW5jdGlvbiBkb2VzIG5vdCB3YW50IHRoZSBmaWVsZCdzIHZhbHVlIHRvIGJlCi0gICAgICAgKiBpdGVyYXRlZCwgcmV0dXJuIG51bGwuIElmIGl0ZXJhdGlvbiBvZiB0aGUgZmllbGQgdmFsdWUgaXMgZGVzaXJlZCwgdGhlbgotICAgICAgICogcmV0dXJuIGVpdGhlciB1bmRlZmluZWQgKGlmIHRoZSBmaWVsZCB2YWx1ZSBkaWQgbm90IGNoYW5nZSkgb3IgdGhlIG5ldwotICAgICAgICogZmllbGQgdmFsdWUgaWYgaXQgd2FzIGNoYW5nZWQuCi0gICAgICAgKi8KLSAgICAgIGZ1bmN0aW9uIGl0ZXJPYmplY3Qob2JqZWN0LCBmdW5jLCBjb250YWluaW5nU25hcHNob3QsIHRoaXNBcmcpIHsKLSAgICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciByZXMgPSBmdW5jLmNhbGwodGhpc0FyZywgb2JqZWN0LCBpLCBvYmplY3RbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5pbmdTbmFwc2hvdCk7Ci0gICAgICAgICAgICBpZiAocmVzID09PSBudWxsKQotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChyZXMpCi0gICAgICAgICAgICAgIGl0ZXJPYmplY3QocmVzLCBmdW5jLCBjb250YWluaW5nU25hcHNob3QsIHRoaXNBcmcpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICBpdGVyT2JqZWN0KG9iamVjdFtpXSwgZnVuYywgY29udGFpbmluZ1NuYXBzaG90LCB0aGlzQXJnKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkgewotICAgICAgICAgIHZhciByZXMgPSBmdW5jLmNhbGwodGhpc0FyZywgb2JqZWN0LCBrZXksIG9iamVjdFtrZXldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmluZ1NuYXBzaG90KTsKLSAgICAgICAgICBpZiAocmVzID09PSBudWxsKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgaWYgKHJlcykKLSAgICAgICAgICAgIGl0ZXJPYmplY3QocmVzLCBmdW5jLCBjb250YWluaW5nU25hcHNob3QsIHRoaXNBcmcpOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGl0ZXJPYmplY3Qob2JqZWN0W2tleV0sIGZ1bmMsIGNvbnRhaW5pbmdTbmFwc2hvdCwgdGhpc0FyZyk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgLy8gVE9ETyhuZHVjYSk6IFdlIG1heSBuZWVkIHRvIGl0ZXJhdGUgdGhlIGluc3RhbmNlcyBpbiBzb3J0ZWQgb3JkZXIgYnkKLSAgICAgIC8vIGNyZWF0aW9uVHMuCi0gICAgICBwcm9jZXNzLm9iamVjdHMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgICBpbnN0YW5jZS5zbmFwc2hvdHMuZm9yRWFjaChmdW5jdGlvbihzbmFwc2hvdCkgewotICAgICAgICAgIGlmIChzbmFwc2hvdC5hcmdzLmlkICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FyZ3MgY2Fubm90IGhhdmUgYW4gaWQgZmllbGQgaW5zaWRlIGl0Jyk7Ci0gICAgICAgICAgaXRlck9iamVjdChzbmFwc2hvdC5hcmdzLCBwcm9jZXNzRmllbGQsIHNuYXBzaG90LCB0aGlzKTsKLSAgICAgICAgfSwgdGhpcyk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9LAotCi0gICAgY3JlYXRlTWVtb3J5RHVtcHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMuYWxsTWVtb3J5RHVtcEV2ZW50c18sIGZ1bmN0aW9uKGlkLCBldmVudHMpIHsKLSAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSByYW5nZSBvZiB0aGUgZ2xvYmFsIG1lbW9yeSBkdW1wLgotICAgICAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgICAgICBpZiAoZXZlbnRzLmdsb2JhbCAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJhbmdlLmFkZFZhbHVlKGV2ZW50cy5nbG9iYWwudHMgLyAxMDAwKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMucHJvY2Vzcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICByYW5nZS5hZGRWYWx1ZShldmVudHMucHJvY2Vzc1tpXS50cyAvIDEwMDApOwotCi0gICAgICAgIC8vIENyZWF0ZSB0aGUgZ2xvYmFsIG1lbW9yeSBkdW1wLgotICAgICAgICB2YXIgZ2xvYmFsTWVtb3J5RHVtcCA9IG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKAotICAgICAgICAgICAgdGhpcy5tb2RlbF8sIHJhbmdlLm1pbik7Ci0gICAgICAgIGdsb2JhbE1lbW9yeUR1bXAuZHVyYXRpb24gPSByYW5nZS5yYW5nZTsKLSAgICAgICAgdGhpcy5tb2RlbF8uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnbG9iYWxNZW1vcnlEdW1wKTsKLQotICAgICAgICAvLyBDcmVhdGUgaW5kaXZpZHVhbCBwcm9jZXNzIG1lbW9yeSBkdW1wcy4KLSAgICAgICAgaWYgKGV2ZW50cy5wcm9jZXNzLmxlbmd0aCA9PT0gMCkgewotICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICBtZXNzYWdlOiAnTm8gcHJvY2VzcyBtZW1vcnkgZHVtcHMgYXNzb2NpYXRlZCB3aXRoIGdsb2JhbCBtZW1vcnknICsKLSAgICAgICAgICAgICAgICAgICcgZHVtcCAnICsgaWQgKyAnLicKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBhbGxNZW1vcnlBbGxvY2F0b3JEdW1wc0J5R3VpZCA9IHt9OwotICAgICAgICB2YXIgZ2xvYmFsTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lID0ge307Ci0KLSAgICAgICAgZXZlbnRzLnByb2Nlc3MuZm9yRWFjaChmdW5jdGlvbihwcm9jZXNzRXZlbnQpIHsKLSAgICAgICAgICB2YXIgcGlkID0gcHJvY2Vzc0V2ZW50LnBpZDsKLSAgICAgICAgICBpZiAocGlkIGluIGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgbWVzc2FnZTogJ011bHRpcGxlIHByb2Nlc3MgbWVtb3J5IGR1bXBzIHdpdGggcGlkPScgKyBwaWQgKwotICAgICAgICAgICAgICAgICAgJyBmb3IgZHVtcCBpZCAnICsgaWQgKyAnLicKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLQotICAgICAgICAgIHZhciBkdW1wcyA9IHByb2Nlc3NFdmVudC5hcmdzLmR1bXBzOwotICAgICAgICAgIGlmIChkdW1wcyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdkdW1wcyBub3QgZm91bmQgaW4gcHJvY2VzcyBtZW1vcnkgZHVtcCBmb3IgJyArCi0gICAgICAgICAgICAgICAgICAgICdwaWQ9JyArIHBpZCArICcgYW5kIGR1bXAgaWQ9JyArIGlkICsgJy4nCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICB2YXIgcHJvY2VzcyA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwaWQpOwotICAgICAgICAgIHZhciBwcm9jZXNzTWVtb3J5RHVtcCA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcCgKLSAgICAgICAgICAgICAgZ2xvYmFsTWVtb3J5RHVtcCwgcHJvY2VzcywgcHJvY2Vzc0V2ZW50LnRzIC8gMTAwMCk7Ci0KLSAgICAgICAgICAvLyBQYXJzZSB0aGUgdG90YWxzLCB3aGljaCBhcmUgbWFuZGF0b3J5LgotICAgICAgICAgIGlmIChkdW1wcy5wcm9jZXNzX3RvdGFscyA9PT0gdW5kZWZpbmVkIHx8Ci0gICAgICAgICAgICAgIGR1bXBzLnByb2Nlc3NfdG90YWxzLnJlc2lkZW50X3NldF9ieXRlcyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNYW5kYXRvcnkgZmllbGQgcmVzaWRlbnRfc2V0X2J5dGVzIG5vdCBmb3VuZCBpbicgKwotICAgICAgICAgICAgICAgICAgICAnIHByb2Nlc3MgbWVtb3J5IGR1bXAgZm9yIHBpZD0nICsgcGlkICsKLSAgICAgICAgICAgICAgICAgICAgJyBhbmQgZHVtcCBpZD0nICsgaWQgKyAnLicKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUR1bXAudG90YWxSZXNpZGVudEJ5dGVzID0gdW5kZWZpbmVkOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcm9jZXNzTWVtb3J5RHVtcC50b3RhbFJlc2lkZW50Qnl0ZXMgPSBwYXJzZUludCgKLSAgICAgICAgICAgICAgICBkdW1wcy5wcm9jZXNzX3RvdGFscy5yZXNpZGVudF9zZXRfYnl0ZXMsIDE2KTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICAvLyBQb3B1bGF0ZSB0aGUgdm1SZWdpb25zLCBpZiBwcmVzZW50LgotICAgICAgICAgIGlmIChkdW1wcy5wcm9jZXNzX21tYXBzICYmIGR1bXBzLnByb2Nlc3NfbW1hcHMudm1fcmVnaW9ucykgewotICAgICAgICAgICAgZnVuY3Rpb24gcGFyc2VCeXRlU3RhdChyYXdWYWx1ZSkgewotICAgICAgICAgICAgICBpZiAocmF3VmFsdWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQocmF3VmFsdWUsIDE2KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUR1bXAudm1SZWdpb25zID0gZHVtcHMucHJvY2Vzc19tbWFwcy52bV9yZWdpb25zLm1hcCgKLSAgICAgICAgICAgICAgZnVuY3Rpb24ocmF3UmVnaW9uKSB7Ci0gICAgICAgICAgICAgICAgLy8gU2VlIC8vYmFzZS90cmFjZV9ldmVudC9wcm9jZXNzX21lbW9yeV9tYXBzLmNjIGluIENocm9taXVtLgotICAgICAgICAgICAgICAgIHZhciBieXRlU3RhdHMgPSBuZXcgdHIubW9kZWwuVk1SZWdpb25CeXRlU3RhdHMoCi0gICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5wYyksCi0gICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5wZCksCi0gICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5zYyksCi0gICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5zZCksCi0gICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5wc3MpLAotICAgICAgICAgICAgICAgICAgcGFyc2VCeXRlU3RhdChyYXdSZWdpb24uYnMuc3cpCi0gICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHRyLm1vZGVsLlZNUmVnaW9uKAotICAgICAgICAgICAgICAgICAgICBwYXJzZUludChyYXdSZWdpb24uc2EsIDE2KSwgIC8vIHN0YXJ0QWRkcmVzcwotICAgICAgICAgICAgICAgICAgICBwYXJzZUludChyYXdSZWdpb24uc3osIDE2KSwgIC8vIHNpemVJbkJ5dGVzCi0gICAgICAgICAgICAgICAgICAgIHJhd1JlZ2lvbi5wZiwgIC8vIHByb3RlY3Rpb25GbGFncwotICAgICAgICAgICAgICAgICAgICByYXdSZWdpb24ubWYsICAvLyBtYXBwZWRGaWxlCi0gICAgICAgICAgICAgICAgICAgIGJ5dGVTdGF0cwotICAgICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gR2F0aGVyIHRoZSBwcm9jZXNzIGFuZCBnbG9iYWwgbWVtb3J5IGFsbG9jYXRvciBkdW1wcywgaWYgcHJlc2VudC4KLSAgICAgICAgICB2YXIgcHJvY2Vzc01lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZSA9IHt9OwotICAgICAgICAgIGlmIChkdW1wcy5hbGxvY2F0b3JzICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIC8vIENvbnN0cnVjdCB0aGUgTWVtb3J5QWxsb2NhdG9yRHVtcCBvYmplY3RzIHdpdGhvdXQgcGFyZW50IGxpbmtzCi0gICAgICAgICAgICAvLyBhbmQgYWRkIHRoZW0gdG8gdGhlIHByb2Nlc3NNZW1vcnlBbGxvY2F0b3JEdW1wc0J5TmFtZSBhbmQKLSAgICAgICAgICAgIC8vIGdsb2JhbE1lbW9yeUFsbG9jYXRvckR1bXBzQnlOYW1lIGluZGljZXMgYXBwcm9wcmlhdGVseS4KLSAgICAgICAgICAgIHRyLmIuaXRlckl0ZW1zKGR1bXBzLmFsbG9jYXRvcnMsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oZnVsbE5hbWUsIHJhd0FsbG9jYXRvckR1bXApIHsKLSAgICAgICAgICAgICAgLy8gRXZlcnkgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHNob3VsZCBoYXZlIGEgR1VJRC4gSWYgbm90LCB0aGVuCi0gICAgICAgICAgICAgIC8vIGl0IGNhbm5vdCBiZSBhc3NvY2lhdGVkIHdpdGggYW55IGVkZ2VzLgotICAgICAgICAgICAgICB2YXIgZ3VpZCA9IHJhd0FsbG9jYXRvckR1bXAuZ3VpZDsKLSAgICAgICAgICAgICAgaWYgKGd1aWQgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNZW1vcnkgYWxsb2NhdG9yIGR1bXAgJyArIGZ1bGxOYW1lICsKLSAgICAgICAgICAgICAgICAgICAgICAnIGZyb20gcGlkPScgKyBwaWQgKyAnIGRvZXMgbm90IGhhdmUgYSBHVUlELicKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIGEgZ2xvYmFsIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCAoY2hlY2sgaWYKLSAgICAgICAgICAgICAgLy8gaXQncyBwcmVmaXhlZCB3aXRoICdnbG9iYWwvJykuCi0gICAgICAgICAgICAgIHZhciBHTE9CQUxfTUVNT1JZX0FMTE9DQVRPUl9EVU1QX1BSRUZJWCA9ICdnbG9iYWwvJzsKLSAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lck1lbW9yeUR1bXA7Ci0gICAgICAgICAgICAgIHZhciBkc3RJbmRleDsKLSAgICAgICAgICAgICAgaWYgKGZ1bGxOYW1lLnN0YXJ0c1dpdGgoR0xPQkFMX01FTU9SWV9BTExPQ0FUT1JfRFVNUF9QUkVGSVgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gR2xvYmFsIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KLSAgICAgICAgICAgICAgICBmdWxsTmFtZSA9IGZ1bGxOYW1lLnN1YnN0cmluZygKLSAgICAgICAgICAgICAgICAgICAgR0xPQkFMX01FTU9SWV9BTExPQ0FUT1JfRFVNUF9QUkVGSVgubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBjb250YWluZXJNZW1vcnlEdW1wID0gZ2xvYmFsTWVtb3J5RHVtcDsKLSAgICAgICAgICAgICAgICBkc3RJbmRleCA9IGdsb2JhbE1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KLSAgICAgICAgICAgICAgICBjb250YWluZXJNZW1vcnlEdW1wID0gcHJvY2Vzc01lbW9yeUR1bXA7Ci0gICAgICAgICAgICAgICAgZHN0SW5kZXggPSBwcm9jZXNzTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgLy8gQ29uc3RydWN0IG9yIHJldHJpZXZlIGEgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHdpdGggdGhlIHByb3ZpZGVkCi0gICAgICAgICAgICAgIC8vIEdVSUQuCi0gICAgICAgICAgICAgIHZhciBhbGxvY2F0b3JEdW1wID0gYWxsTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUd1aWRbZ3VpZF07Ci0gICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JEdW1wID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAoZnVsbE5hbWUgaW4gZHN0SW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnTXVsdGlwbGUgR1VJRHMgcHJvdmlkZWQgZm9yJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAnIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCAnICsgZnVsbE5hbWUgKyAnOiAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRzdEluZGV4W2Z1bGxOYW1lXS5ndWlkICsgJywgJyArIGd1aWQgKyAnIChpZ25vcmVkKS4nCi0gICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYWxsb2NhdG9yRHVtcCA9IG5ldyB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wKAotICAgICAgICAgICAgICAgICAgICBjb250YWluZXJNZW1vcnlEdW1wLCBmdWxsTmFtZSwgZ3VpZCk7Ci0gICAgICAgICAgICAgICAgZHN0SW5kZXhbZnVsbE5hbWVdID0gYWxsb2NhdG9yRHVtcDsKLSAgICAgICAgICAgICAgICBpZiAoZ3VpZCAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICAgICAgYWxsTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUd1aWRbZ3VpZF0gPSBhbGxvY2F0b3JEdW1wOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIEEgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHdpdGggdGhpcyBHVUlEIGhhcyBhbHJlYWR5IGJlZW4KLSAgICAgICAgICAgICAgICAvLyBkdW1wZWQgKHNvIHdlIHdpbGwgb25seSBhZGQgbmV3IGF0dHJpYnV0ZXMpLiBDaGVjayB0aGF0IGl0Ci0gICAgICAgICAgICAgICAgLy8gYmVsb25nZWQgdG8gdGhlIHNhbWUgcHJvY2VzcyBvciB3YXMgYWxzbyBnbG9iYWwuCi0gICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvckR1bXAuY29udGFpbmVyTWVtb3J5RHVtcCAhPT0gY29udGFpbmVyTWVtb3J5RHVtcCkgewotICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ01lbW9yeSBhbGxvY2F0b3IgZHVtcCAnICsgZnVsbE5hbWUgKwotICAgICAgICAgICAgICAgICAgICAgICcgKEdVSUQ9JyArIGd1aWQgKyAnKSBkdW1wZWQgaW4gZGlmZmVyZW50IGNvbnRleHRzLicKLSAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBuYW1lcyBvZiB0aGUgbWVtb3J5IGFsbG9jYXRvciBkdW1wcyBtYXRjaC4KLSAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yRHVtcC5mdWxsTmFtZSAhPT0gZnVsbE5hbWUpIHsKLSAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNZW1vcnkgYWxsb2NhdG9yIGR1bXAgd2l0aCBHVUlEPScgKyBndWlkICsKLSAgICAgICAgICAgICAgICAgICAgICAnIGhhcyBtdWx0aXBsZSBuYW1lczogJyArIGFsbG9jYXRvckR1bXAuZnVsbE5hbWUgKwotICAgICAgICAgICAgICAgICAgICAgICcsICcgKyBmdWxsTmFtZSArICcgKGlnbm9yZWQpLicKLSAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIC8vIEFkZCBhbGwgbmV3IGF0dHJpYnV0ZXMgdG8gdGhlIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KLSAgICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZXMgPSByYXdBbGxvY2F0b3JEdW1wLmF0dHJzOwotICAgICAgICAgICAgICB0ci5iLml0ZXJJdGVtcyhhdHRyaWJ1dGVzLCBmdW5jdGlvbihhdHRyTmFtZSwgYXR0ckFyZ3MpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXR0ck5hbWUgaW4gYWxsb2NhdG9yRHVtcC5hdHRyaWJ1dGVzKSB7Ci0gICAgICAgICAgICAgICAgICAvLyBTa2lwIGV4aXN0aW5nIGF0dHJpYnV0ZXMgb2YgdGhlIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KLSAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNdWx0aXBsZSB2YWx1ZXMgcHJvdmlkZWQgZm9yIGF0dHJpYnV0ZSAnICsKLSAgICAgICAgICAgICAgICAgICAgICBhdHRyTmFtZSArICcgb2YgbWVtb3J5IGFsbG9jYXRvciBkdW1wICcgKyBmdWxsTmFtZSArCi0gICAgICAgICAgICAgICAgICAgICAgJyAoR1VJRD0nICsgZ3VpZCArICcpLicKLSAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgYXR0clZhbHVlID0KLSAgICAgICAgICAgICAgICAgICAgdHIubW9kZWwuQXR0cmlidXRlLmZyb21EaWN0SWZQb3NzaWJsZShhdHRyQXJncyk7Ci0gICAgICAgICAgICAgICAgYWxsb2NhdG9yRHVtcC5hZGRBdHRyaWJ1dGUoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7Ci0gICAgICAgICAgICAgIH0sIHRoaXMpOwotICAgICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gRmluZCB0aGUgcm9vdCBhbGxvY2F0b3IgZHVtcHMgYW5kIGVzdGFibGlzaCB0aGUgcGFyZW50IGxpbmtzIG9mCi0gICAgICAgICAgLy8gdGhlIHByb2Nlc3MgbWVtb3J5IGR1bXAuCi0gICAgICAgICAgcHJvY2Vzc01lbW9yeUR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMgPQotICAgICAgICAgICAgICB0aGlzLmluZmVyTWVtb3J5QWxsb2NhdG9yRHVtcFRyZWVfKAotICAgICAgICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZSk7Ci0KLSAgICAgICAgICBwcm9jZXNzLm1lbW9yeUR1bXBzLnB1c2gocHJvY2Vzc01lbW9yeUR1bXApOwotICAgICAgICAgIGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3BpZF0gPSBwcm9jZXNzTWVtb3J5RHVtcDsKLSAgICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgICAgLy8gRmluZCB0aGUgcm9vdCBhbGxvY2F0b3IgZHVtcHMgYW5kIGVzdGFibGlzaCB0aGUgcGFyZW50IGxpbmtzIG9mCi0gICAgICAgIC8vIHRoZSBnbG9iYWwgbWVtb3J5IGR1bXAuCi0gICAgICAgIGdsb2JhbE1lbW9yeUR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMgPQotICAgICAgICAgICAgdGhpcy5pbmZlck1lbW9yeUFsbG9jYXRvckR1bXBUcmVlXygKLSAgICAgICAgICAgICAgICBnbG9iYWxNZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWUpOwotCi0gICAgICAgIC8vIFNldCB1cCBlZGdlcyBiZXR3ZWVuIG1lbW9yeSBhbGxvY2F0b3IgZHVtcHMuCi0gICAgICAgIGV2ZW50cy5wcm9jZXNzLmZvckVhY2goZnVuY3Rpb24ocHJvY2Vzc0V2ZW50KSB7Ci0gICAgICAgICAgdmFyIGR1bXBzID0gcHJvY2Vzc0V2ZW50LmFyZ3MuZHVtcHM7Ci0gICAgICAgICAgaWYgKGR1bXBzID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICB2YXIgZWRnZXMgPSBkdW1wcy5lZGdlczsKLSAgICAgICAgICBpZiAoZWRnZXMgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgIGVkZ2VzLmZvckVhY2goZnVuY3Rpb24ocmF3RWRnZSkgewotICAgICAgICAgICAgdmFyIHNvdXJjZUd1aWQgPSByYXdFZGdlLnNvdXJjZTsKLSAgICAgICAgICAgIHZhciBzb3VyY2VEdW1wID0gYWxsTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUd1aWRbc291cmNlR3VpZF07Ci0gICAgICAgICAgICBpZiAoc291cmNlRHVtcCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICAgIHR5cGU6ICdtZW1vcnlfZHVtcF9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0VkZ2UgaXMgbWlzc2luZyBzb3VyY2UgbWVtb3J5IGFsbG9jYXRvciBkdW1wIChHVUlEPScgKwotICAgICAgICAgICAgICAgICAgICBzb3VyY2VHdWlkICsgJyknCi0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciB0YXJnZXRHdWlkID0gcmF3RWRnZS50YXJnZXQ7Ci0gICAgICAgICAgICB2YXIgdGFyZ2V0RHVtcCA9IGFsbE1lbW9yeUFsbG9jYXRvckR1bXBzQnlHdWlkW3RhcmdldEd1aWRdOwotICAgICAgICAgICAgaWYgKHRhcmdldER1bXAgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAotICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdFZGdlIGlzIG1pc3NpbmcgdGFyZ2V0IG1lbW9yeSBhbGxvY2F0b3IgZHVtcCAoR1VJRD0nICsKLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0R3VpZCArICcpJwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgaW1wb3J0YW5jZSA9IHJhd0VkZ2UuaW1wb3J0YW5jZTsKLSAgICAgICAgICAgIHZhciBlZGdlID0gbmV3IHRyLm1vZGVsLk1lbW9yeUFsbG9jYXRvckR1bXBMaW5rKAotICAgICAgICAgICAgICAgIHNvdXJjZUR1bXAsIHRhcmdldER1bXAsIGltcG9ydGFuY2UpOwotCi0gICAgICAgICAgICBzd2l0Y2ggKHJhd0VkZ2UudHlwZSkgewotICAgICAgICAgICAgICBjYXNlICdvd25lcnNoaXAnOgotICAgICAgICAgICAgICAgIGlmIChzb3VyY2VEdW1wLm93bnMgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdtZW1vcnlfZHVtcF9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNZW1vcnkgYWxsb2NhdG9yIGR1bXAgJyArIHNvdXJjZUR1bXAuZnVsbE5hbWUgKwotICAgICAgICAgICAgICAgICAgICAgICAgJyAoR1VJRD0nICsgc291cmNlR3VpZCArICcpIGFscmVhZHkgb3ducyBhIG1lbW9yeScgKwotICAgICAgICAgICAgICAgICAgICAgICAgJyBhbGxvY2F0b3IgZHVtcCAoJyArCi0gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VEdW1wLm93bnMudGFyZ2V0LmZ1bGxOYW1lICsgJykuJwotICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHNvdXJjZUR1bXAub3ducyA9IGVkZ2U7Ci0gICAgICAgICAgICAgICAgdGFyZ2V0RHVtcC5vd25lZEJ5LnB1c2goZWRnZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgY2FzZSAncmV0ZW50aW9uJzoKLSAgICAgICAgICAgICAgICBzb3VyY2VEdW1wLnJldGFpbnMucHVzaChlZGdlKTsKLSAgICAgICAgICAgICAgICB0YXJnZXREdW1wLnJldGFpbmVkQnkucHVzaChlZGdlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdJbnZhbGlkIGVkZ2UgdHlwZTogJyArIHJhd0VkZ2UudHlwZSArCi0gICAgICAgICAgICAgICAgICAgICAgJyAoc291cmNlPScgKyBzb3VyY2VHdWlkICsgJywgdGFyZ2V0PScgKyB0YXJnZXRHdWlkICsKLSAgICAgICAgICAgICAgICAgICAgICAnLCBpbXBvcnRhbmNlPScgKyBpbXBvcnRhbmNlICsgJykuJwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0sIHRoaXMpOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBpbmZlck1lbW9yeUFsbG9jYXRvckR1bXBUcmVlXzogZnVuY3Rpb24obWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lKSB7Ci0gICAgICB2YXIgcm9vdEFsbG9jYXRvckR1bXBzID0gW107Ci0KLSAgICAgIHZhciBmdWxsTmFtZXMgPSBPYmplY3Qua2V5cyhtZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWUpOwotICAgICAgZnVsbE5hbWVzLnNvcnQoKTsKLSAgICAgIGZ1bGxOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGZ1bGxOYW1lKSB7Ci0gICAgICAgIHZhciBhbGxvY2F0b3JEdW1wID0gbWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lW2Z1bGxOYW1lXTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgbG9vcCBiZWNhdXNlIHdlIG1pZ2h0IG5lZWQgdG8gYnVpbGQgaW1wbGljaXQKLSAgICAgICAgLy8gYW5jZXN0b3JzIGluIGNhc2UgdGhleSB3ZXJlIG5vdCBwcmVzZW50IGluIHRoZSB0cmFjZS4KLSAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICB2YXIgbGFzdFNsYXNoSW5kZXggPSBmdWxsTmFtZS5sYXN0SW5kZXhPZignLycpOwotICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCA9PT0gLTEpIHsKLSAgICAgICAgICAgIC8vIElmIHRoZSBkdW1wIGlzIGEgcm9vdCwgYWRkIGl0IHRvIHRoZSB0b3AtbGV2ZWwKLSAgICAgICAgICAgIC8vIHJvb3RBbGxvY2F0b3JEdW1wcyBsaXN0LgotICAgICAgICAgICAgcm9vdEFsbG9jYXRvckR1bXBzLnB1c2goYWxsb2NhdG9yRHVtcCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICAvLyBJZiB0aGUgZHVtcCBpcyBub3QgYSByb290LCBmaW5kIGl0cyBwYXJlbnQuCi0gICAgICAgICAgdmFyIHBhcmVudEZ1bGxOYW1lID0gZnVsbE5hbWUuc3Vic3RyaW5nKDAsIGxhc3RTbGFzaEluZGV4KTsKLSAgICAgICAgICB2YXIgcGFyZW50QWxsb2NhdG9yRHVtcCA9Ci0gICAgICAgICAgICAgIG1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZVtwYXJlbnRGdWxsTmFtZV07Ci0KLSAgICAgICAgICAvLyBJZiB0aGUgcGFyZW50IGR1bXAgZG9lcyBub3QgZXhpc3QgeWV0LCB3ZSBidWlsZCBhbiBpbXBsaWNpdAotICAgICAgICAgIC8vIG9uZSBhbmQgY29udGludWUgdXAgdGhlIGFuY2VzdG9yIGNoYWluLgotICAgICAgICAgIHZhciBwYXJlbnRBbHJlYWR5RXhpc3RlZCA9IHRydWU7Ci0gICAgICAgICAgaWYgKHBhcmVudEFsbG9jYXRvckR1bXAgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgcGFyZW50QWxyZWFkeUV4aXN0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHBhcmVudEFsbG9jYXRvckR1bXAgPSBuZXcgdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcCgKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3JEdW1wLmNvbnRhaW5lck1lbW9yeUR1bXAsIHBhcmVudEZ1bGxOYW1lKTsKLSAgICAgICAgICAgIG1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZVtwYXJlbnRGdWxsTmFtZV0gPQotICAgICAgICAgICAgICAgIHBhcmVudEFsbG9jYXRvckR1bXA7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gU2V0dXAgdGhlIHBhcmVudCA8LT4gY2hpbGRyZW4gcmVsYXRpb25zaGlwcwotICAgICAgICAgIGFsbG9jYXRvckR1bXAucGFyZW50ID0gcGFyZW50QWxsb2NhdG9yRHVtcDsKLSAgICAgICAgICBwYXJlbnRBbGxvY2F0b3JEdW1wLmNoaWxkcmVuLnB1c2goYWxsb2NhdG9yRHVtcCk7Ci0KLSAgICAgICAgICAvLyBJZiB0aGUgcGFyZW50IGFscmVhZHkgZXhpc3RlZCwgdGhlbiBpdHMgYW5jZXN0b3JzIHdlcmUvd2lsbCBiZQotICAgICAgICAgIC8vIGNvbnN0cnVjdGVkIGluIGFub3RoZXIgaXRlcmF0aW9uIG9mIHRoZSBmb3JFYWNoIGxvb3AuCi0gICAgICAgICAgaWYgKHBhcmVudEFscmVhZHlFeGlzdGVkKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBmdWxsTmFtZSA9IHBhcmVudEZ1bGxOYW1lOwotICAgICAgICAgIGFsbG9jYXRvckR1bXAgPSBwYXJlbnRBbGxvY2F0b3JEdW1wOwotICAgICAgICB9Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgcmV0dXJuIHJvb3RBbGxvY2F0b3JEdW1wczsKLSAgICB9LAotCi0gICAgam9pbk9iamVjdFJlZnNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMubW9kZWxfLnByb2Nlc3NlcywgZnVuY3Rpb24ocGlkLCBwcm9jZXNzKSB7Ci0gICAgICAgIHRoaXMuam9pbk9iamVjdFJlZnNGb3JQcm9jZXNzXyhwcm9jZXNzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBqb2luT2JqZWN0UmVmc0ZvclByb2Nlc3NfOiBmdW5jdGlvbihwcm9jZXNzKSB7Ci0gICAgICAvLyBJdGVyYXRlIHRoZSB3b3JsZCwgbG9va2luZyBmb3IgaWRfcmVmcwotICAgICAgdmFyIHBhdGNodXBzVG9BcHBseSA9IFtdOwotICAgICAgdHIuYi5pdGVySXRlbXMocHJvY2Vzcy50aHJlYWRzLCBmdW5jdGlvbih0aWQsIHRocmVhZCkgewotICAgICAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgICAgICB0aGlzLnNlYXJjaEl0ZW1Gb3JJRFJlZnNfKAotICAgICAgICAgICAgICBwYXRjaHVwc1RvQXBwbHksIHByb2Nlc3Mub2JqZWN0cywgJ3N0YXJ0JywgaXRlbSk7Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXMuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7Ci0gICAgICAgICAgdGhpcy5zZWFyY2hJdGVtRm9ySURSZWZzXygKLSAgICAgICAgICAgICAgcGF0Y2h1cHNUb0FwcGx5LCBwcm9jZXNzLm9iamVjdHMsICdzdGFydCcsIGl0ZW0pOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgcHJvY2Vzcy5vYmplY3RzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2UpIHsKLSAgICAgICAgaW5zdGFuY2Uuc25hcHNob3RzLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgewotICAgICAgICAgIHRoaXMuc2VhcmNoSXRlbUZvcklEUmVmc18oCi0gICAgICAgICAgICAgIHBhdGNodXBzVG9BcHBseSwgcHJvY2Vzcy5vYmplY3RzLCAndHMnLCBpdGVtKTsKLSAgICAgICAgfSwgdGhpcyk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gQ2hhbmdlIGFsbCB0aGUgZmllbGRzIHBvaW50aW5nIGF0IGlkX3JlZnMgdG8gdGhlaXIgcmVhbCB2YWx1ZXMuCi0gICAgICBwYXRjaHVwc1RvQXBwbHkuZm9yRWFjaChmdW5jdGlvbihwYXRjaHVwKSB7Ci0gICAgICAgIHBhdGNodXAub2JqZWN0W3BhdGNodXAuZmllbGRdID0gcGF0Y2h1cC52YWx1ZTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBzZWFyY2hJdGVtRm9ySURSZWZzXzogZnVuY3Rpb24ocGF0Y2h1cHNUb0FwcGx5LCBvYmplY3RDb2xsZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtVGltZXN0YW1wRmllbGQsIGl0ZW0pIHsKLSAgICAgIGlmICghaXRlbS5hcmdzKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2l0ZW0gaXMgbWlzc2luZyBpdHMgYXJncycpOwotCi0gICAgICBmdW5jdGlvbiBoYW5kbGVGaWVsZChvYmplY3QsIGZpZWxkTmFtZSwgZmllbGRWYWx1ZSkgewotICAgICAgICBpZiAoIWZpZWxkVmFsdWUgfHwgKCFmaWVsZFZhbHVlLmlkX3JlZiAmJiAhZmllbGRWYWx1ZS5pZFJlZikpCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBpZCA9IGZpZWxkVmFsdWUuaWRfcmVmIHx8IGZpZWxkVmFsdWUuaWRSZWY7Ci0gICAgICAgIHZhciB0cyA9IGl0ZW1baXRlbVRpbWVzdGFtcEZpZWxkXTsKLSAgICAgICAgdmFyIHNuYXBzaG90ID0gb2JqZWN0Q29sbGVjdGlvbi5nZXRTbmFwc2hvdEF0KGlkLCB0cyk7Ci0gICAgICAgIGlmICghc25hcHNob3QpCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIFdlIGhhdmUgdG8gZGVsYXkgdGhlIGFjdHVhbCBjaGFuZ2UgdG8gdGhlIG5ldyB2YWx1ZSB1bnRpbCBhZnRlciBhbGwKLSAgICAgICAgLy8gcmVmcyBoYXZlIGJlZW4gbG9jYXRlZC4gT3RoZXJ3aXNlLCB3ZSBjb3VsZCBlbmQgdXAgcmVjdXJzaW5nIGluCi0gICAgICAgIC8vIHdheXMgd2UgZGVmaW5pdGVseSBkaWRuJ3QgaW50ZW5kLgotICAgICAgICBwYXRjaHVwc1RvQXBwbHkucHVzaCh7b2JqZWN0OiBvYmplY3QsCi0gICAgICAgICAgZmllbGQ6IGZpZWxkTmFtZSwKLSAgICAgICAgICB2YWx1ZTogc25hcHNob3R9KTsKLSAgICAgIH0KLSAgICAgIGZ1bmN0aW9uIGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseShvYmplY3QpIHsKLSAgICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKChvYmplY3QgaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCkgfHwKLSAgICAgICAgICAgIChvYmplY3QgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpIHx8Ci0gICAgICAgICAgICAob2JqZWN0IGluc3RhbmNlb2YgdHIuYi5RdWFkKSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGhhbmRsZUZpZWxkKG9iamVjdCwgaSwgb2JqZWN0W2ldKTsKLSAgICAgICAgICAgIGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseShvYmplY3RbaV0pOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7Ci0gICAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0W2tleV07Ci0gICAgICAgICAgaGFuZGxlRmllbGQob2JqZWN0LCBrZXksIHZhbHVlKTsKLSAgICAgICAgICBpdGVyT2JqZWN0RmllbGRzUmVjdXJzaXZlbHkodmFsdWUpOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseShpdGVtLmFyZ3MpOwotICAgIH0KLSAgfTsKLQotICB0ci5pbXBvcnRlci5JbXBvcnRlci5yZWdpc3RlcihUcmFjZUV2ZW50SW1wb3J0ZXIpOwotCi0gIHJldHVybiB7Ci0gICAgVHJhY2VFdmVudEltcG9ydGVyOiBUcmFjZUV2ZW50SW1wb3J0ZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlcl9wZXJmX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3BlcmZfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYWM5ZmQ3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3BlcmZfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZnVsbF9jb25maWcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgdmFyIGV2ZW50U3RyaW5ncyA9IHt9OwotCi0gIC8vIEBjb25zdAotICB2YXIgVEVTVF9OQU1FUyA9IFsnc2ltcGxlX3RyYWNlJywgJ2x0aGlfY2F0cyddOwotICAvLyBAY29uc3QKLSAgdmFyIFRFU1RfRklMRVNfUEFUSFMgPSBbJy90ZXN0X2RhdGEvc2ltcGxlX3RyYWNlLmpzb24nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnL3Rlc3RfZGF0YS9sdGhpX2NhdHMuanNvbi5neiddOwotCi0gIGZ1bmN0aW9uIGdldFN5bmNocm9ub3VzKHVybCkgewotICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3BlbignR0VUJywgdXJsLCBmYWxzZSk7Ci0gICAgLy8gV2l0aG91dCB0aGUgbWltZSB0eXBlIHNwZWNpZmllZCBsaWtlIHRoaXMsIHRoZSBmaWxlJ3MgYnl0ZXMgYXJlIG5vdAotICAgIC8vIHJldHJpZXZlZCBjb3JyZWN0bHkuCi0gICAgcmVxLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQnKTsKLSAgICByZXEuc2VuZChudWxsKTsKLSAgICByZXR1cm4gcmVxLnJlc3BvbnNlVGV4dDsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldEV2ZW50cyh1cmwpIHsKLSAgICBpZiAodXJsIGluIGV2ZW50U3RyaW5ncykKLSAgICAgIHJldHVybiBldmVudFN0cmluZ3NbdXJsXTsKLSAgICBldmVudFN0cmluZ3NbdXJsXSA9IGdldFN5bmNocm9ub3VzKHVybCk7Ci0gICAgcmV0dXJuIGV2ZW50U3RyaW5nc1t1cmxdOwotICB9Ci0KLSAgZnVuY3Rpb24gdGltZWRQZXJmVGVzdFdpdGhFdmVudHMobmFtZSwgdGVzdEZuLCBpbml0aWFsT3B0aW9ucykgewotICAgIGlmIChpbml0aWFsT3B0aW9ucy5zZXRVcCkKLSAgICAgIHRocm93IG5ldyBFcnJvcigKLSAgICAgICAgICAnUGVyLXRlc3Qgc2V0VXAgbm90IHN1cHBvcnRlZC4gVHJpdmlhbCB0byBmaXggaWYgbmVlZGVkLicpOwotCi0gICAgdmFyIG9wdGlvbnMgPSB7fTsKLSAgICBmb3IgKHZhciBrIGluIGluaXRpYWxPcHRpb25zKQotICAgICAgb3B0aW9uc1trXSA9IGluaXRpYWxPcHRpb25zW2tdOwotICAgIG9wdGlvbnMuc2V0VXAgPSBmdW5jdGlvbigpIHsKLSAgICAgIFRFU1RfRklMRVNfUEFUSFMuZm9yRWFjaCgKLSAgICAgICAgICBmdW5jdGlvbiB3YXJtdXAodXJsKSB7Ci0gICAgICAgICAgICBnZXRFdmVudHModXJsKTsKLSAgICAgICAgICB9KTsKLSAgICB9OwotICAgIHRpbWVkUGVyZlRlc3QobmFtZSwgdGVzdEZuLCBvcHRpb25zKTsKLSAgfQotCi0gIHZhciBuMTEwMTAwID0gWzEsIDEwLCAxMDBdOwotICBuMTEwMTAwLmZvckVhY2goZnVuY3Rpb24odmFsKSB7Ci0gICAgdGltZWRQZXJmVGVzdFdpdGhFdmVudHMoVEVTVF9OQU1FU1swXSArICdfJyArIHZhbCwgZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZXZlbnRzID0gZ2V0RXZlbnRzKFRFU1RfRklMRVNfUEFUSFNbMF0pOwotICAgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSwgZmFsc2UpOwotICAgIH0sIHtpdGVyYXRpb25zOiB2YWx9KTsKLSAgfSk7Ci0KLSAgdGltZWRQZXJmVGVzdFdpdGhFdmVudHMoVEVTVF9OQU1FU1sxXSArICdfMScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBnZXRFdmVudHMoVEVTVF9GSUxFU19QQVRIU1sxXSk7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKLSAgfSwge2l0ZXJhdGlvbnM6IDF9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU1ZmRhOS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMzU2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgdmFyIGZpbmRTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLmZpbmRTbGljZU5hbWVkOwotCi0gIHRlc3QoJ2NhbkltcG9ydEVtcHR5JywgZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodHIuZS5pbXBvcnRlci5UcmFjZUV2ZW50SW1wb3J0ZXIuY2FuSW1wb3J0KFtdKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UodHIuZS5pbXBvcnRlci5UcmFjZUV2ZW50SW1wb3J0ZXIuY2FuSW1wb3J0KCcnKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Jhc2ljU2luZ2xlVGhyZWFkTm9ubmVzdGVkUGFyc2luZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYyOSwgY2F0OiAnYmFyJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzMSwgY2F0OiAnYmFyJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOwotICAgIGFzc2VydC5pc0RlZmluZWQocCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKLSAgICB2YXIgdCA9IHAudGhyZWFkc1s1M107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHQudGlkLCA1Myk7Ci0gICAgdmFyIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN0YXJ0LCAwKTsKLSAgICBhc3NlcnQuY2xvc2VUbygoNTYwIC0gNTIwKSAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7Ci0KLSAgICBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2JhcicpOwotICAgIGFzc2VydC5jbG9zZVRvKCg2MjkgLSA1MjApIC8gMTAwMCwgc2xpY2Uuc3RhcnQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKCg2MzEgLSA2MjkpIC8gMTAwMCwgc2xpY2UuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYmFzaWNTaW5nbGVUaHJlYWROb25uZXN0ZWRQYXJzaW5nV2l0aENwdUR1cmF0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InLCB0dHM6IDIyMX0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJywgdHRzOiAyNTl9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MjksIGNhdDogJ2JhcicsIHRpZDogNTMsIHBoOiAnQicsIHR0czogMzI5fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNjMxLCBjYXQ6ICdiYXInLCB0aWQ6IDUzLCBwaDogJ0UnLCB0dHM6IDMzMX0gIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzUyXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHApOwotCi0gICAgYXNzZXJ0LmVxdWFsKHAubnVtVGhyZWFkcywgMSk7Ci0gICAgdmFyIHQgPSBwLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgNTMpOwotICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oKDU2MCAtIDUyMCkgLyAxMDAwLCBzbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oKDI1OSAtIDIyMSkgLyAxMDAwLCBzbGljZS5jcHVEdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOwotCi0gICAgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzFdOwotICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdiYXInKTsKLSAgICBhc3NlcnQuY2xvc2VUbygoNjI5IC0gNTIwKSAvIDEwMDAsIHNsaWNlLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygoNjMxIC0gNjI5KSAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygoMzMxIC0gMzI5KSAvIDEwMDAsIHNsaWNlLmNwdUR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2FyZ3VtZW50RHVwZUNyZWF0ZXNOb25GYWlsaW5nSW1wb3J0RXJyb3InLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdhJywKLSAgICAgICAgYXJnczogeyd4JzogMX0sCi0gICAgICAgIHBpZDogMSwKLSAgICAgICAgdHM6IDUyMCwKLSAgICAgICAgY2F0OiAnZm9vJywKLSAgICAgICAgdGlkOiAxLAotICAgICAgICBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYScsCi0gICAgICAgIGFyZ3M6IHsneCc6IDJ9LAotICAgICAgICBwaWQ6IDEsCi0gICAgICAgIHRzOiA1NjAsCi0gICAgICAgIGNhdDogJ2ZvbycsCi0gICAgICAgIHRpZDogMSwKLSAgICAgICAgcGg6ICdFJ30KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV07Ci0gICAgdmFyIHNBID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYScpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLmFyZ3MueCwgMik7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLSAgICBhc3NlcnQuZXF1YWwoMSwgbS5pbXBvcnRXYXJuaW5ncy5sZW5ndGgpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRNaXNzaW5nQXJncycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBwaWQ6IDUyLCB0czogNTIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYScsIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9LAotICAgICAge25hbWU6ICdiJywgcGlkOiA1MiwgdHM6IDYyOSwgY2F0OiAnYmFyJywgdGlkOiA1MywgcGg6ICdJJ30KLSAgICBdOwotCi0gICAgLy8gVGhpcyBzaG91bGQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KLSAgICBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0RG9lc05vdENob2tlT25OdWxscycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7IGZvbzogbnVsbCB9LCBwaWQ6IDUyLCB0czogNTIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHtuYW1lOiAnYScsIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9Ci0gICAgXTsKLQotICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCi0gICAgbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NhdGVnb3J5QmVnaW5FbmRNaXNtYXRjaFByZWZlcnNCZWdpbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnYmFyJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOwotICAgIGFzc2VydC5pc0RlZmluZWQocCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKLSAgICB2YXIgdCA9IHAudGhyZWFkc1s1M107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQudGlkLCA1Myk7Ci0gICAgdmFyIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2JlZ2luRW5kTmFtZU1pc21hdGNoJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uaW1wb3J0V2FybmluZ3MubGVuZ3RoLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbmVzdGVkUGFyc2luZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgdHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIHR0czogMiwgY2F0OiAnYmFyJywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAzLCB0dHM6IDMsIGNhdDogJ2JhcicsIHRpZDogMSwgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNCwgdHRzOiAzLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRSd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV07Ci0KLSAgICB2YXIgc0EgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdhJyk7Ci0gICAgdmFyIHNCID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYicpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5lcXVhbChzQS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChzQS5zdGFydCwgMC4wMDEpOwotICAgIGFzc2VydC5lcXVhbChzQS5kdXJhdGlvbiwgMC4wMDMpOwotICAgIGFzc2VydC5lcXVhbChzQS5zZWxmVGltZSwgMC4wMDIpOwotICAgIGFzc2VydC5lcXVhbChzQS5jcHVTZWxmVGltZSwgMC4wMDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNCLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5lcXVhbChzQi5jYXRlZ29yeSwgJ2JhcicpOwotICAgIGFzc2VydC5lcXVhbChzQi5zdGFydCwgMC4wMDIpOwotICAgIGFzc2VydC5lcXVhbChzQi5kdXJhdGlvbiwgMC4wMDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKDEsIHNBLnN1YlNsaWNlcy5sZW5ndGgpOwotICAgIGFzc2VydC5lcXVhbChzQiwgc0Euc3ViU2xpY2VzWzBdKTsKLSAgICBhc3NlcnQuZXF1YWwoc0EsIHNCLnBhcmVudFNsaWNlKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbmVzdGVkUGFyc2luZ1dpdGhUd29TdWJTbGljZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIHR0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAyLCB0dHM6IDIsIGNhdDogJ2JhcicsIHRpZDogMSwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMywgdHRzOiAzLCBjYXQ6ICdiYXInLCB0aWQ6IDEsIHBoOiAnRSd9LAotICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogMSwgdHM6IDUsIHR0czogNSwgY2F0OiAnYmF6JywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA3LCB0dHM6IDYsIGNhdDogJ2JheicsIHRpZDogMSwgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogOCwgdHRzOiA4LCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRSd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV07Ci0KLSAgICB2YXIgc0EgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdhJyk7Ci0gICAgdmFyIHNCID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYicpOwotICAgIHZhciBzQyA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2MnKTsKLQotICAgIGFzc2VydC5lcXVhbChzQS50aXRsZSwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc0EuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc3RhcnQsIDAuMDAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc0EuZHVyYXRpb24sIDAuMDA3KTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDAuMDA0KTsKLSAgICBhc3NlcnQuZXF1YWwoc0EuY3B1U2VsZlRpbWUsIDAuMDA1KTsKLQotICAgIGFzc2VydC5lcXVhbChzQi50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwoc0IuY2F0ZWdvcnksICdiYXInKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Iuc3RhcnQsIDAuMDAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc0IuZHVyYXRpb24sIDAuMDAxKTsKLQotICAgIGFzc2VydC5lcXVhbChzQy50aXRsZSwgJ2MnKTsKLSAgICBhc3NlcnQuZXF1YWwoc0MuY2F0ZWdvcnksICdiYXonKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Muc3RhcnQsIDAuMDA1KTsKLSAgICBhc3NlcnQuZXF1YWwoc0MuZHVyYXRpb24sIDAuMDAyKTsKLQotICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXMubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc3ViU2xpY2VzWzBdLCBzQik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlc1sxXSwgc0MpOwotICAgIGFzc2VydC5lcXVhbChzQi5wYXJlbnRTbGljZSwgc0EpOwotICAgIGFzc2VydC5lcXVhbChzQy5wYXJlbnRTbGljZSwgc0EpOwotICB9KTsKLQotICB0ZXN0KCduZXN0ZWRQYXJzaW5nV2l0aERvdWJsZU5lc3RpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnYmFyJywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAzLCBjYXQ6ICdiYXonLCB0aWQ6IDEsIHBoOiAnQid9LAotICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogMSwgdHM6IDUsIGNhdDogJ2JheicsIHRpZDogMSwgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNywgY2F0OiAnYmFyJywgdGlkOiAxLCBwaDogJ0UnfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA4LCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRSd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV07Ci0KLSAgICB2YXIgc0EgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdhJyk7Ci0gICAgdmFyIHNCID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYicpOwotICAgIHZhciBzQyA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2MnKTsKLQotICAgIGFzc2VydC5lcXVhbChzQS50aXRsZSwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc0EuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc3RhcnQsIDAuMDAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc0EuZHVyYXRpb24sIDAuMDA3KTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDAuMDAyKTsKLQotICAgIGFzc2VydC5lcXVhbChzQi50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwoc0IuY2F0ZWdvcnksICdiYXInKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Iuc3RhcnQsIDAuMDAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc0IuZHVyYXRpb24sIDAuMDA1KTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDAuMDAyKTsKLQotICAgIGFzc2VydC5lcXVhbChzQy50aXRsZSwgJ2MnKTsKLSAgICBhc3NlcnQuZXF1YWwoc0MuY2F0ZWdvcnksICdiYXonKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Muc3RhcnQsIDAuMDAzKTsKLSAgICBhc3NlcnQuZXF1YWwoc0MuZHVyYXRpb24sIDAuMDAyKTsKLQotICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc3ViU2xpY2VzWzBdLCBzQik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNCLnBhcmVudFNsaWNlLCBzQSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc0Iuc3ViU2xpY2VzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNCLnN1YlNsaWNlc1swXSwgc0MpOwotICAgIGFzc2VydC5lcXVhbChzQy5wYXJlbnRTbGljZSwgc0IpOwotICB9KTsKLQotCi0gIHRlc3QoJ2F1dG9jbG9zaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIFNsaWNlIHRoYXQgZG9lc24ndCBmaW5pc2guCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKLQotICAgICAgLy8gU2xpY2UgdGhhdCBkb2VzIGZpbmlzaCB0byBnaXZlIGFuICdlbmQgdGltZScgdG8gbWFrZSBhdXRvY2xvc2luZyB3b3JrLgotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2JhcicsIHRpZDogMiwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnYmFyJywgdGlkOiAyLCBwaDogJ0UnfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIHZhciB0ID0gcC50aHJlYWRzWzFdOwotICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5pc1RydWUoc2xpY2UuZGlkTm90RmluaXNoKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3RhcnQsIDApOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5kdXJhdGlvbiwgKDIgLSAxKSAvIDEwMDApOwotICB9KTsKLQotICB0ZXN0KCdhdXRvY2xvc2luZ0xvbmVCZWdpbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICAvLyBTbGljZSB0aGF0IGRvZXNuJ3QgZmluaXNoLgotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKLSAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKLSAgICB2YXIgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuaXNUcnVlKHNsaWNlLmRpZE5vdEZpbmlzaCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN0YXJ0LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuZHVyYXRpb24sIDApOwotICB9KTsKLQotICB0ZXN0KCdhdXRvY2xvc2luZ1dpdGhTdWJUYXNrcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYjEnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYjEnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMywgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfSwKLSAgICAgIHtuYW1lOiAnYjInLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMywgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7Ci0gICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzFdOwotCi0gICAgdmFyIHNBID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYScpOwotICAgIHZhciBzQjEgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdiMScpOwotICAgIHZhciBzQjIgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdiMicpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLmVuZCwgMC4wMDMpOwotICAgIGFzc2VydC5lcXVhbChzQjEuZW5kLCAwLjAwMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNCMi5lbmQsIDAuMDAzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYXV0b2Nsb3NpbmdXaXRoRXZlbnRzT3V0c2lkZUJvdW5kcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICAvLyBTbGljZSB0aGF0IGJlZ2lucyBiZWZvcmUgbWluIGFuZCBlbmRzIGFmdGVyIG1heCBvZiB0aGUgb3RoZXIgdGhyZWFkcy4KLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAwLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDMsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCi0KLSAgICAgIC8vIFNsaWNlIHRoYXQgZG9lcyBmaW5pc2ggdG8gZ2l2ZSBhbiAnZW5kIHRpbWUnIHRvIGVzdGFibGlzaCBhIGJhc2lzCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnYmFyJywgdGlkOiAyLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAyLCBjYXQ6ICdiYXInLCB0aWQ6IDIsIHBoOiAnRSd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIHZhciB0ID0gcC50aHJlYWRzWzFdOwotICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAubGVuZ3RoLCAyKTsKLQotICAgIHZhciBzbGljZSA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN0YXJ0LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuZHVyYXRpb24sIDAuMDAzKTsKLQotICAgIHZhciB0MiA9IHAudGhyZWFkc1syXTsKLSAgICB2YXIgc2xpY2UyID0gZmluZFNsaWNlTmFtZWQodDIuc2xpY2VHcm91cCwgJ2MnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UyLnRpdGxlLCAnYycpOwotICAgIGFzc2VydC5lcXVhbChzbGljZTIuY2F0ZWdvcnksICdiYXInKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UyLnN0YXJ0LCAwLjAwMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlMi5kdXJhdGlvbiwgMC4wMDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1pbiwgMC4wMDApOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDAuMDAzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbmVzdGVkQXV0b2Nsb3NpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAgLy8gVGFza3MgdGhhdCBkb24ndCBmaW5pc2guCi0gICAgICB7bmFtZTogJ2ExJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EyJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEuNSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKLQotICAgICAgLy8gU2xpY2UgdGhhdCBkb2VzIGZpbmlzaCB0byBnaXZlIGFuICdlbmQgdGltZScgdG8gbWFrZSBhdXRvY2xvc2luZyB3b3JrLgotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMiwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnZm9vJywgdGlkOiAyLCBwaDogJ0UnfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7Ci0gICAgdmFyIHQxID0gbS5wcm9jZXNzZXNbMV0udGhyZWFkc1sxXTsKLSAgICB2YXIgdDIgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzJdOwotCi0gICAgdmFyIHNBMSA9IGZpbmRTbGljZU5hbWVkKHQxLnNsaWNlR3JvdXAsICdhMScpOwotICAgIHZhciBzQTIgPSBmaW5kU2xpY2VOYW1lZCh0MS5zbGljZUdyb3VwLCAnYTInKTsKLSAgICB2YXIgc0IgPSBmaW5kU2xpY2VOYW1lZCh0Mi5zbGljZUdyb3VwLCAnYicpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBMS5lbmQsIDAuMDAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc0EyLmVuZCwgMC4wMDIpOwotICB9KTsKLQotICB0ZXN0KCd0YXNrQ29sb3JpbmcnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBUaGUgdGVzdCBiZWxvdyBkZXBlbmRzIG9uIGhhc2hpbmcgb2YgJ2EnICE9ICdiJy4gRmFpbCBlYXJseSBpZiB0aGF0Ci0gICAgLy8gYXNzdW1wdGlvbiBpcyBpbmNvcnJlY3QuCi0gICAgYXNzZXJ0Lm5vdEVxdWFsKHRyLmIudWkuZ2V0U3RyaW5nSGFzaCgnYScpLCB0ci5iLnVpLmdldFN0cmluZ0hhc2goJ2InKSk7Ci0KLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAzLCBjYXQ6ICdiYXInLCB0aWQ6IDEsIHBoOiAnQid9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDQsIGNhdDogJ2JhcicsIHRpZDogMSwgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNSwgY2F0OiAnYmF6JywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA2LCBjYXQ6ICdiYXonLCB0aWQ6IDEsIHBoOiAnRSd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07Ci0gICAgdmFyIHQgPSBwLnRocmVhZHNbMV07Ci0gICAgdmFyIGExID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoYTEudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGExLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgdmFyIGIgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzFdOwotICAgIGFzc2VydC5lcXVhbChiLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5lcXVhbChiLmNhdGVnb3J5LCAnYmFyJyk7Ci0gICAgYXNzZXJ0Lm5vdEVxdWFsKGIuY29sb3JJZCwgYTEuY29sb3JJZCk7Ci0gICAgdmFyIGEyID0gdC5zbGljZUdyb3VwLnNsaWNlc1syXTsKLSAgICBhc3NlcnQuZXF1YWwoYTIudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGEyLmNhdGVnb3J5LCAnYmF6Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGExLmNvbG9ySWQsIGEyLmNvbG9ySWQpOwotICB9KTsKLQotICB0ZXN0KCdtdWx0aXBsZVRocmVhZFBhcnNpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAzLCBjYXQ6ICdiYXInLCB0aWQ6IDIsIHBoOiAnQid9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDQsIGNhdDogJ2JhcicsIHRpZDogMiwgcGg6ICdFJ30KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIGFzc2VydC5pc0RlZmluZWQocCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAyKTsKLQotICAgIC8vIENoZWNrIHRocmVhZCAxLgotICAgIHZhciB0ID0gcC50aHJlYWRzWzFdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgMSk7Ci0KLSAgICB2YXIgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3RhcnQsIDApOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5kdXJhdGlvbiwgKDIgLSAxKSAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKLQotICAgIC8vIENoZWNrIHRocmVhZCAyLgotICAgIHZhciB0ID0gcC50aHJlYWRzWzJdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgMik7Ci0KLSAgICBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2JhcicpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgKDMgLSAxKSAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5kdXJhdGlvbiwgKDQgLSAzKSAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbXVsdGlwbGVQaWRQYXJzaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdFJ30sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAyLCB0czogMywgY2F0OiAnYmFyJywgdGlkOiAyLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDIsIHRzOiA0LCBjYXQ6ICdiYXInLCB0aWQ6IDIsIHBoOiAnRSd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMik7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHApOwotCi0gICAgYXNzZXJ0LmVxdWFsKHAubnVtVGhyZWFkcywgMSk7Ci0KLSAgICAvLyBDaGVjayBwcm9jZXNzIDEgdGhyZWFkIDEuCi0gICAgdmFyIHQgPSBwLnRocmVhZHNbMV07Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQudGlkLCAxKTsKLQotICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmR1cmF0aW9uLCAoMiAtIDEpIC8gMTAwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOwotCi0gICAgLy8gQ2hlY2sgcHJvY2VzcyAyIHRocmVhZCAyLgotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMl07Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKLSAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKLSAgICB2YXIgdCA9IHAudGhyZWFkc1syXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwodC50aWQsIDIpOwotCi0gICAgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdiYXInKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3RhcnQsICgzIC0gMSkgLyAxMDAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuZHVyYXRpb24sICg0IC0gMykgLyAxMDAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7Ci0KLSAgICAvLyBDaGVjayBnZXRBbGxUaHJlYWRzLgotICAgIGFzc2VydC5kZWVwRXF1YWwobS5nZXRBbGxUaHJlYWRzKCksCi0gICAgICAgICAgICAgICAgICAgICAgW20ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV0sIG0ucHJvY2Vzc2VzWzJdLnRocmVhZHNbMl1dKTsKLSAgfSk7Ci0KLSAgLy8gUHJvY2VzcyBuYW1lcy4KLSAgdGVzdCgncHJvY2Vzc05hbWVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAncHJvY2Vzc19uYW1lJywgYXJnczoge25hbWU6ICdTb21lUHJvY2Vzc05hbWUnfSwKLSAgICAgICAgcGlkOiAxLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfSwKLSAgICAgIHtuYW1lOiAncHJvY2Vzc19uYW1lJywgYXJnczoge25hbWU6ICdTb21lUHJvY2Vzc05hbWUnfSwKLSAgICAgICAgcGlkOiAyLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKLSAgICBhc3NlcnQuZXF1YWwobS5wcm9jZXNzZXNbMV0ubmFtZSwgJ1NvbWVQcm9jZXNzTmFtZScpOwotICB9KTsKLQotICAvLyBQcm9jZXNzIGxhYmVscy4KLSAgdGVzdCgncHJvY2Vzc0xhYmVscycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ3Byb2Nlc3NfbGFiZWxzJywgYXJnczoge2xhYmVsczogJ2ZvbyxiYXIsYmFyLGZvbyxiYXonfSwKLSAgICAgICAgcGlkOiAxLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfSwKLSAgICAgIHtuYW1lOiAncHJvY2Vzc19sYWJlbHMnLCBhcmdzOiB7bGFiZWxzOiAnYmF6J30sCi0gICAgICAgIHBpZDogMiwgdHM6IDAsIHRpZDogMSwgcGg6ICdNJ30KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlLCBmYWxzZSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChtLnByb2Nlc3Nlc1sxXS5sYWJlbHMsIFsnZm9vJywgJ2JhcicsICdiYXonXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChtLnByb2Nlc3Nlc1syXS5sYWJlbHMsIFsnYmF6J10pOwotICB9KTsKLQotICAvLyBQcm9jZXNzIHNvcnQgaW5kZXguCi0gIHRlc3QoJ3Byb2Nlc3NTb3J0SW5kZXgnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdwcm9jZXNzX25hbWUnLCBhcmdzOiB7bmFtZTogJ0ZpcnN0J30sCi0gICAgICAgIHBpZDogMiwgdHM6IDAsIHRpZDogMSwgcGg6ICdNJ30sCi0gICAgICB7bmFtZTogJ3Byb2Nlc3NfbmFtZScsIGFyZ3M6IHtuYW1lOiAnU2Vjb25kJ30sCi0gICAgICAgIHBpZDogMiwgdHM6IDAsIHRpZDogMSwgcGg6ICdNJ30sCi0gICAgICB7bmFtZTogJ3Byb2Nlc3Nfc29ydF9pbmRleCcsIGFyZ3M6IHtzb3J0X2luZGV4OiAxfSwKLSAgICAgICAgcGlkOiAxLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKLQotICAgIC8vIEJ5IG5hbWUsIHAxIGlzIGJlZm9yZSBwMi4gQnV0LCBpdHMgc29ydCBpbmRleCBvdmVycmlkZXMgdGhhdC4KLSAgICBhc3NlcnQuaXNBYm92ZShtLnByb2Nlc3Nlc1sxXS5jb21wYXJlVG8obS5wcm9jZXNzZXNbMl0pLCAwKTsKLSAgfSk7Ci0KLSAgLy8gVGhyZWFkIG5hbWVzLgotICB0ZXN0KCd0aHJlYWROYW1lcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ3RocmVhZF9uYW1lJywgYXJnczoge25hbWU6ICdUaHJlYWQgMSd9LAotICAgICAgICBwaWQ6IDEsIHRzOiAwLCB0aWQ6IDEsIHBoOiAnTSd9LAotICAgICAge25hbWU6ICd0aHJlYWRfbmFtZScsIGFyZ3M6IHtuYW1lOiAnVGhyZWFkIDInfSwKLSAgICAgICAgcGlkOiAyLCB0czogMCwgdGlkOiAyLCBwaDogJ00nfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKLSAgICBhc3NlcnQuZXF1YWwobS5wcm9jZXNzZXNbMV0udGhyZWFkc1sxXS5uYW1lLCAnVGhyZWFkIDEnKTsKLSAgICBhc3NlcnQuZXF1YWwobS5wcm9jZXNzZXNbMl0udGhyZWFkc1syXS5uYW1lLCAnVGhyZWFkIDInKTsKLSAgfSk7Ci0KLSAgLy8gVGhyZWFkIHNvcnQgaW5kZXguCi0gIHRlc3QoJ3RocmVhZFNvcnRJbmRleCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ3RocmVhZF9uYW1lJywgYXJnczoge25hbWU6ICdUaHJlYWQgMSd9LAotICAgICAgICBwaWQ6IDEsIHRzOiAwLCB0aWQ6IDEsIHBoOiAnTSd9LAotICAgICAge25hbWU6ICd0aHJlYWRfbmFtZScsIGFyZ3M6IHtuYW1lOiAnVGhyZWFkIDInfSwKLSAgICAgICAgcGlkOiAxLCB0czogMCwgdGlkOiAyLCBwaDogJ00nfSwKLSAgICAgIHtuYW1lOiAndGhyZWFkX3NvcnRfaW5kZXgnLCBhcmdzOiB7c29ydF9pbmRleDogMX0sCi0gICAgICAgIHBpZDogMSwgdHM6IDAsIHRpZDogMSwgcGg6ICdNJ30KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlLCBmYWxzZSk7Ci0KLSAgICAvLyBCeSBuYW1lLCB0MSBpcyBiZWZvcmUgdDIuIEJ1dCwgaXRzIHNvcnQgaW5kZXggb3ZlcnJpZGVzIHRoYXQuCi0gICAgdmFyIHQxID0gbS5wcm9jZXNzZXNbMV0udGhyZWFkc1sxXTsKLSAgICB2YXIgdDIgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzJdOwotICAgIGFzc2VydC5pc0Fib3ZlKHQxLmNvbXBhcmVUbyh0MiksIDApOwotICB9KTsKLQotICAvLyBDUFUgY291bnRzLgotICB0ZXN0KCdjcHVDb3VudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdudW1fY3B1cycsIGFyZ3M6IHtudW1iZXI6IDR9LAotICAgICAgICBwaWQ6IDcsIHRzOiAwLCB0aWQ6IDAsIHBoOiAnTSd9LAotICAgICAge25hbWU6ICdudW1fY3B1cycsIGFyZ3M6IHtudW1iZXI6IDR9LAotICAgICAgICBwaWQ6IDE0LCB0czogMCwgdGlkOiAwLCBwaDogJ00nfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKLSAgICBhc3NlcnQuZXF1YWwobS5rZXJuZWwuc29mdHdhcmVNZWFzdXJlZENwdUNvdW50LCA0KTsKLSAgICBhc3NlcnQuZXF1YWwobS5rZXJuZWwuYmVzdEd1ZXNzQXRDcHVDb3VudCwgNCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NwdUNvdW50c1dpdGhTYW5kYm94QmVpbmdDb25mdXNlZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ251bV9jcHVzJywgYXJnczoge251bWJlcjogNH0sCi0gICAgICAgIHBpZDogNywgdHM6IDAsIHRpZDogMCwgcGg6ICdNJ30sCi0gICAgICB7bmFtZTogJ251bV9jcHVzJywgYXJnczoge251bWJlcjogMX0sCi0gICAgICAgIHBpZDogMTQsIHRzOiAwLCB0aWQ6IDAsIHBoOiAnTSd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSwgZmFsc2UpOwotICAgIGFzc2VydC5lcXVhbChtLmtlcm5lbC5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQsIDQpOwotICAgIGFzc2VydC5lcXVhbChtLmtlcm5lbC5iZXN0R3Vlc3NBdENwdUNvdW50LCA0KTsKLSAgfSk7Ci0KLSAgdGVzdCgncGFyc2luZ1doZW5FbmRDb21lc0ZpcnN0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRSd9LAotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDQsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKLSAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMF0udGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMF0uY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1swXS5zdGFydCwgMC4wMDQpOwotICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzWzBdLmR1cmF0aW9uLCAwLjAwMSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5pbXBvcnRXYXJuaW5ncy5sZW5ndGgsIDEpOwotICB9KTsKLQotICB0ZXN0KCdpbW1lZGlhdGVQYXJzaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIE5lZWQgdG8gaW5jbHVkZSBpbW1lZGlhdGVzIGluc2lkZSBhIHRhc2sgc28gdGhlIHRpbWVsaW5lCi0gICAgICAvLyByZWNlbnRlcmluZy96ZXJvaW5nIGRvZXNuJ3QgY2xvYmJlciB0aGVpciB0aW1lc3RhbXAuCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnaW1tZWRpYXRlJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2JhcicsIHRpZDogMSwgcGg6ICdJJ30sCi0gICAgICB7bmFtZTogJ3Nsb3dlcicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA0LCBjYXQ6ICdiYXonLCB0aWQ6IDEsIHBoOiAnaSd9LAotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDQsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdFJ30KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07Ci0gICAgdmFyIHQgPSBwLnRocmVhZHNbMV07Ci0KLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMF0uc3RhcnQsIDAuMDAxKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1swXS5kdXJhdGlvbiwgMC4wMDMpOwotICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzWzFdLnN0YXJ0LCAwLjAwMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMV0uZHVyYXRpb24sIDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzWzJdLnN0YXJ0LCAwLjAwNCk7Ci0KLSAgICB2YXIgc2xpY2UgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5kdXJhdGlvbiwgMC4wMDMpOwotCi0gICAgdmFyIGltbWVkID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnaW1tZWRpYXRlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGltbWVkLnRpdGxlLCAnaW1tZWRpYXRlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGltbWVkLmNhdGVnb3J5LCAnYmFyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGltbWVkLnN0YXJ0LCAwLjAwMik7Ci0gICAgYXNzZXJ0LmVxdWFsKGltbWVkLmR1cmF0aW9uLCAwKTsKLQotICAgIHZhciBzbG93ZXIgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdzbG93ZXInKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xvd2VyLnRpdGxlLCAnc2xvd2VyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsb3dlci5jYXRlZ29yeSwgJ2JheicpOwotICAgIGFzc2VydC5lcXVhbChzbG93ZXIuc3RhcnQsIDAuMDA0KTsKLSAgICBhc3NlcnQuZXF1YWwoc2xvd2VyLmR1cmF0aW9uLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2ltcGxlQ291bnRlcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUnOiAwfSwgcGlkOiAxLCB0czogMCwgY2F0OiAnZm9vJywgdGlkOiAxLAotICAgICAgICBwaDogJ0MnfSwKLSAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZSc6IDEwfSwgcGlkOiAxLCB0czogMTAsIGNhdDogJ2ZvbycsIHRpZDogMSwKLSAgICAgICAgcGg6ICdDJ30sCi0gICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUnOiAwfSwgcGlkOiAxLCB0czogMjAsIGNhdDogJ2ZvbycsIHRpZDogMSwKLSAgICAgICAgcGg6ICdDJ30KLQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIHZhciBjdHIgPSBtLnByb2Nlc3Nlc1sxXS5jb3VudGVyc1snZm9vLmN0ciddOwotCi0gICAgYXNzZXJ0LmVxdWFsKGN0ci5uYW1lLCAnY3RyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChjdHIubnVtU2FtcGxlcywgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5udW1TZXJpZXMsIDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGN0ci5zZXJpZXNbMF0ubmFtZSwgJ3ZhbHVlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5zZXJpZXNbMF0uY29sb3IsCi0gICAgICAgICAgICAgICAgIHRyLmIudWkuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKCdjdHIudmFsdWUnKSk7Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKGN0ci50aW1lc3RhbXBzLCBbMCwgMC4wMSwgMC4wMl0pOwotCi0gICAgdmFyIHNhbXBsZXMgPSBbXTsKLSAgICBjdHIuc2VyaWVzWzBdLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihzYW1wbGUpIHsKLSAgICAgIHNhbXBsZXMucHVzaChzYW1wbGUudmFsdWUpOwotICAgIH0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc2FtcGxlcywgWzAsIDEwLCAwXSk7Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKGN0ci50b3RhbHMsIFswLCAxMCwgMF0pOwotICAgIGFzc2VydC5lcXVhbChjdHIubWF4VG90YWwsIDEwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW5zdGFuY2VDb3VudGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZSc6IDB9LCBwaWQ6IDEsIHRzOiAwLCBjYXQ6ICdmb28nLCB0aWQ6IDEsCi0gICAgICAgIHBoOiAnQycsIGlkOiAwfSwKLSAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZSc6IDEwfSwgcGlkOiAxLCB0czogMTAsIGNhdDogJ2ZvbycsIHRpZDogMSwKLSAgICAgICAgcGg6ICdDJywgaWQ6IDB9LAotICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlJzogMTB9LCBwaWQ6IDEsIHRzOiAxMCwgY2F0OiAnZm9vJywgdGlkOiAxLAotICAgICAgICBwaDogJ0MnLCBpZDogMX0sCi0gICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUnOiAyMH0sIHBpZDogMSwgdHM6IDE1LCBjYXQ6ICdmb28nLCB0aWQ6IDEsCi0gICAgICAgIHBoOiAnQycsIGlkOiAxfSwKLSAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZSc6IDMwfSwgcGlkOiAxLCB0czogMTgsIGNhdDogJ2ZvbycsIHRpZDogMSwKLSAgICAgICAgcGg6ICdDJywgaWQ6IDF9LAotICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlJzogNDB9LCBwaWQ6IDEsIHRzOiAyMCwgY2F0OiAnYmFyJywgdGlkOiAxLAotICAgICAgICBwaDogJ0MnLCBpZDogMn0KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKLSAgICB2YXIgY3RyID0gbS5wcm9jZXNzZXNbMV0uY291bnRlcnNbJ2Zvby5jdHJbMF0nXTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm5hbWUsICdjdHJbMF0nKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5udW1TYW1wbGVzLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNlcmllcywgMSk7Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKGN0ci50aW1lc3RhbXBzLCBbMCwgMC4wMV0pOwotICAgIHZhciBzYW1wbGVzID0gW107Ci0gICAgY3RyLnNlcmllc1swXS5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICBzYW1wbGVzLnB1c2goc2FtcGxlLnZhbHVlKTsKLSAgICB9KTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHNhbXBsZXMsIFswLCAxMF0pOwotCi0gICAgY3RyID0gbS5wcm9jZXNzZXNbMV0uY291bnRlcnNbJ2Zvby5jdHJbMV0nXTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm5hbWUsICdjdHJbMV0nKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5udW1TYW1wbGVzLCAzKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNlcmllcywgMSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChjdHIudGltZXN0YW1wcywgWzAuMDEsIDAuMDE1LCAwLjAxOF0pOwotCi0gICAgc2FtcGxlcyA9IFtdOwotICAgIGN0ci5zZXJpZXNbMF0uc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZSkgewotICAgICAgc2FtcGxlcy5wdXNoKHNhbXBsZS52YWx1ZSk7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzYW1wbGVzLCBbMTAsIDIwLCAzMF0pOwotCi0gICAgY3RyID0gbS5wcm9jZXNzZXNbMV0uY291bnRlcnNbJ2Jhci5jdHJbMl0nXTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm5hbWUsICdjdHJbMl0nKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLmNhdGVnb3J5LCAnYmFyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5udW1TYW1wbGVzLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNlcmllcywgMSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChjdHIudGltZXN0YW1wcywgWzAuMDJdKTsKLSAgICB2YXIgc2FtcGxlcyA9IFtdOwotICAgIGN0ci5zZXJpZXNbMF0uc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZSkgewotICAgICAgc2FtcGxlcy5wdXNoKHNhbXBsZS52YWx1ZSk7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzYW1wbGVzLCBbNDBdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbXVsdGlDb3VudGVyVXBkYXRlQm91bmRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGN0ciA9IG5ldyB0ci5tb2RlbC5Db3VudGVyKHVuZGVmaW5lZCwgJ3Rlc3RCYXNpY0NvdW50ZXInLAotICAgICAgICAnJywgJ3Rlc3RCYXNpY0NvdW50ZXInKTsKLSAgICB2YXIgdmFsdWUxU2VyaWVzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoCi0gICAgICAgICd2YWx1ZTEnLCAndGVzdEJhc2ljQ291bnRlci52YWx1ZTEnKTsKLSAgICB2YXIgdmFsdWUyU2VyaWVzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoCi0gICAgICAgICd2YWx1ZTInLCAndGVzdEJhc2ljQ291bnRlci52YWx1ZTInKTsKLSAgICBjdHIuYWRkU2VyaWVzKHZhbHVlMVNlcmllcyk7Ci0gICAgY3RyLmFkZFNlcmllcyh2YWx1ZTJTZXJpZXMpOwotCi0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMCwgMCk7Ci0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgMSk7Ci0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMiwgMSk7Ci0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMywgMik7Ci0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNCwgMyk7Ci0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNSwgMSk7Ci0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNiwgMyk7Ci0gICAgdmFsdWUxU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNywgMy4xKTsKLQotICAgIHZhbHVlMlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDApOwotICAgIHZhbHVlMlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDEsIDApOwotICAgIHZhbHVlMlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDIsIDEpOwotICAgIHZhbHVlMlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDMsIDEuMSk7Ci0gICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNCwgMCk7Ci0gICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNSwgNyk7Ci0gICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNiwgMCk7Ci0gICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoNywgMC41KTsKLQotICAgIGN0ci51cGRhdGVCb3VuZHMoKTsKLQotICAgIGFzc2VydC5lcXVhbChjdHIuYm91bmRzLm1pbiwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5ib3VuZHMubWF4LCA3KTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm1heFRvdGFsLCA4KTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKFswLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAxLCAxLAotICAgICAgICAgICAgICAgICAgICAgICAxLCAyLAotICAgICAgICAgICAgICAgICAgICAgICAyLCAzLjEsCi0gICAgICAgICAgICAgICAgICAgICAgIDMsIDMsCi0gICAgICAgICAgICAgICAgICAgICAgIDEsIDgsCi0gICAgICAgICAgICAgICAgICAgICAgIDMsIDMsCi0gICAgICAgICAgICAgICAgICAgICAgIDMuMSwgMy42XSwgY3RyLnRvdGFscyk7Ci0gIH0pOwotCi0gIHRlc3QoJ211bHRpQ291bnRlcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUxJzogMCwgJ3ZhbHVlMic6IDd9LCBwaWQ6IDEsIHRzOiAwLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQyd9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlMSc6IDEwLCAndmFsdWUyJzogNH0sIHBpZDogMSwgdHM6IDEwLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQyd9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlMSc6IDAsICd2YWx1ZTInOiAxIH0sIHBpZDogMSwgdHM6IDIwLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQyd9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07Ci0gICAgdmFyIGN0ciA9IG0ucHJvY2Vzc2VzWzFdLmNvdW50ZXJzWydmb28uY3RyJ107Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5uYW1lLCAnY3RyJyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoY3RyLm5hbWUsICdjdHInKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5udW1TYW1wbGVzLCAzKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNlcmllcywgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwoY3RyLnNlcmllc1swXS5uYW1lLCAndmFsdWUxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGN0ci5zZXJpZXNbMV0ubmFtZSwgJ3ZhbHVlMicpOwotICAgIGFzc2VydC5lcXVhbChjdHIuc2VyaWVzWzBdLmNvbG9yLAotICAgICAgICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygnY3RyLnZhbHVlMScpKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLnNlcmllc1sxXS5jb2xvciwKLSAgICAgICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoJ2N0ci52YWx1ZTInKSk7Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKGN0ci50aW1lc3RhbXBzLCBbMCwgMC4wMSwgMC4wMl0pOwotICAgIHZhciBzYW1wbGVzID0gW107Ci0gICAgY3RyLnNlcmllc1swXS5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICBzYW1wbGVzLnB1c2goc2FtcGxlLnZhbHVlKTsKLSAgICB9KTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHNhbXBsZXMsIFswLCAxMCwgMF0pOwotCi0gICAgdmFyIHNhbXBsZXMxID0gW107Ci0gICAgY3RyLnNlcmllc1sxXS5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICBzYW1wbGVzMS5wdXNoKHNhbXBsZS52YWx1ZSk7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzYW1wbGVzMSwgWzcsIDQsIDFdKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKFswLCA3LAotICAgICAgICAgICAgICAgICAgICAgICAxMCwgMTQsCi0gICAgICAgICAgICAgICAgICAgICAgIDAsIDFdLCBjdHIudG90YWxzKTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLm1heFRvdGFsLCAxNCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydE9iamVjdEluc3RlYWRPZkFycmF5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IHsgdHJhY2VFdmVudHM6IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQotICAgIF0gfTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U3RyaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChKU09OLnN0cmluZ2lmeShldmVudHMpKTsKLSAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRTdHJpbmdXaXRoTGVhZGluZ1NwYWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoJyAnICsgSlNPTi5zdHJpbmdpZnkoZXZlbnRzKSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U3RyaW5nV2l0aFRyYWlsaW5nTmV3TGluZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoSlNPTi5zdHJpbmdpZnkoZXZlbnRzKSArICdcbicpOwotICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydFN0cmluZ1dpdGhNaXNzaW5nQ2xvc2VTcXVhcmVCcmFja2V0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQotICAgIF07Ci0KLSAgICB2YXIgdG1wID0gSlNPTi5zdHJpbmdpZnkoZXZlbnRzKTsKLSAgICBhc3NlcnQuZXF1YWwodG1wW3RtcC5sZW5ndGggLSAxXSwgJ10nKTsKLQotICAgIC8vIERyb3Agb2ZmIHRoZSB0cmFpbGluZyBdCi0gICAgdmFyIGRyb3BwZWQgPSB0bXAuc3Vic3RyaW5nKDAsIHRtcC5sZW5ndGggLSAxKTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChkcm9wcGVkKTsKLSAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRTdHJpbmdXaXRoRW5kaW5nQ29tbWFCdXRNaXNzaW5nQ2xvc2VTcXVhcmVCcmFja2V0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ1snLAotICAgICAgJ3sibmFtZSI6ICJhIiwgImFyZ3MiOiB7fSwgInBpZCI6IDUyLCAidHMiOiA1MjQsICJjYXQiOiAiZm9vIiwgInRpZCI6IDUzLCAicGgiOiAiQiJ9LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAneyJuYW1lIjogImEiLCAiYXJncyI6IHt9LCAicGlkIjogNTIsICJ0cyI6IDU2MCwgImNhdCI6ICJmb28iLCAidGlkIjogNTMsICJwaCI6ICJFIn0sJyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0gICAgdmFyIHRleHQgPSBsaW5lcy5qb2luKCdcbicpOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwodGV4dCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwobS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdLnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U3RyaW5nV2l0aE1pc3NpbmdDbG9zZVNxdWFyZUJyYWNrZXRBbmROZXdsaW5lJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQotICAgIF07Ci0KLSAgICB2YXIgdG1wID0gSlNPTi5zdHJpbmdpZnkoZXZlbnRzKTsKLSAgICBhc3NlcnQuZXF1YWwodG1wW3RtcC5sZW5ndGggLSAxXSwgJ10nKTsKLQotICAgIC8vIERyb3Agb2ZmIHRoZSB0cmFpbGluZyBdIGFuZCBhZGQgYSBuZXdsaW5lCi0gICAgdmFyIGRyb3BwZWQgPSB0bXAuc3Vic3RyaW5nKDAsIHRtcC5sZW5ndGggLSAxKTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChkcm9wcGVkICsgJ1xuJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnSW1wb3J0U3RyaW5nRW5kaW5nQ29tbWFCdXRNaXNzaW5nQ2xvc2VTcXVhcmVCcmFja2V0Q1JMRicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICdbJywKLSAgICAgICd7Im5hbWUiOiAiYSIsICJhcmdzIjoge30sICJwaWQiOiA1MiwgInRzIjogNTI0LCAiY2F0IjogImZvbyIsICJ0aWQiOiA1MywgInBoIjogIkIifSwnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJ3sibmFtZSI6ICJhIiwgImFyZ3MiOiB7fSwgInBpZCI6IDUyLCAidHMiOiA1NjAsICJjYXQiOiAiZm9vIiwgInRpZCI6IDUzLCAicGgiOiAiRSJ9LCcgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICBdOwotICAgIHZhciB0ZXh0ID0gbGluZXMuam9pbignXHJcbicpOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwodGV4dCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwobS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdLnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0T2xkRm9ybWF0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ1snLAotICAgICAgJ3siY2F0IjoiYSIsInBpZCI6OSwidGlkIjo4LCJ0cyI6MTk0LCJwaCI6IkUiLCJuYW1lIjoiSSIsImFyZ3MiOnt9fSwnLAotICAgICAgJ3siY2F0IjoiYiIsInBpZCI6OSwidGlkIjo4LCJ0cyI6MTk0LCJwaCI6IkIiLCJuYW1lIjoiSSIsImFyZ3MiOnt9fScsCi0gICAgICAnXScKLSAgICBdOwotICAgIHZhciB0ZXh0ID0gbGluZXMuam9pbignXG4nKTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCh0ZXh0KTsKLSAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOwotICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1s5XS50aHJlYWRzWzhdLnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3RhcnRGaW5pc2hPbmVTbGljZU9uZVRocmVhZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICAvLyBUaW1lIGlzIGludGVudGlvbmFsbHkgb3V0IG9mIG9yZGVyLgotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2NhdCcsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnRicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2EnLCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdjYXQnLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ1MnLCBpZDogNzIsIGFyZ3M6IHsnZm9vJzogJ2Jhcid9fQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0udGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXS5jYXRlZ29yeSwgJ2NhdCcpOwotICAgIGFzc2VydC5pc1RydWUodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLmlzVG9wTGV2ZWwpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0uaWQsIDcyKTsKLSAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLmFyZ3MuZm9vLCAnYmFyJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oCi0gICAgICAgICg2MCAtIDI0KSAvIDEwMDAsIHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXS5zdGFydFRocmVhZCwgdCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXS5lbmRUaHJlYWQsIHQpOwotICB9KTsKLQotICB0ZXN0KCdlbmRBcmdzQWRkZWRUb1NsaWNlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9Ci0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzUyXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHApOwotCi0gICAgYXNzZXJ0LmVxdWFsKHAubnVtVGhyZWFkcywgMSk7Ci0gICAgdmFyIHQgPSBwLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgNTMpOwotICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5hcmdzWyd4J10sIDEpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5hcmdzWyd5J10sIDIpOwotICB9KTsKLQotICB0ZXN0KCdlbmRBcmdPdmVycndyaXRlc09yaWdpbmFsQXJnVmFsdWVJZkR1cGxpY2F0ZWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdiJywgYXJnczoge3o6IDN9LCBwaWQ6IDUyLCB0czogNjI5LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt6OiA0fSwgcGlkOiA1MiwgdHM6IDYzMSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOwotICAgIGFzc2VydC5pc0RlZmluZWQocCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKLSAgICB2YXIgdCA9IHAudGhyZWFkc1s1M107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICB2YXIgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3RhcnQsIDApOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuYXJnc1sneiddLCA0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYXN5bmNFbmRBcmdzQWRkZWRUb1NsaWNlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIFRpbWUgaXMgaW50ZW50aW9uYWxseSBvdXQgb2Ygb3JkZXIuCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnRicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7eDogMX0sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnUycsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgcGFyZW50U2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnRpdGxlLCAnYycpOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5pc1RydWUocGFyZW50U2xpY2UuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3gnXSwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3knXSwgMik7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmVudFNsaWNlLnN1YlNsaWNlcyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOwotICB9KTsKLQotICB0ZXN0KCdhc3luY0VuZEFyZ092ZXJ3cml0ZXNPcmlnaW5hbEFyZ1ZhbHVlSWZEdXBsaWNhdGVkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIFRpbWUgaXMgaW50ZW50aW9uYWxseSBvdXQgb2Ygb3JkZXIuCi0gICAgICB7bmFtZTogJ2QnLCBhcmdzOiB7ejogNH0sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnRicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2QnLCBhcmdzOiB7ejogM30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnUycsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgcGFyZW50U2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnRpdGxlLCAnZCcpOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5pc1RydWUocGFyZW50U2xpY2UuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3onXSwgNCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmVudFNsaWNlLnN1YlNsaWNlcyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOwotICB9KTsKLQotICB0ZXN0KCdhc3luY1N0ZXBzSW5PbmVUaHJlYWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAgLy8gVGltZSBpcyBpbnRlbnRpb25hbGx5IG91dCBvZiBvcmRlci4KLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdGJywgaWQ6IDcyfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtzdGVwOiAnczEnLCB5OiAyfSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdUJywgaWQ6IDcyfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdTJywgaWQ6IDcyfSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2Uuc3RhcnQsIDApOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd4J10sIDEpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChwYXJlbnRTbGljZS5hcmdzWyd5J10pOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd6J10sIDMpOwotCi0gICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJlbnRTbGljZS5zdWJTbGljZXMpOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLQotICAgIHZhciBzdWJTbGljZSA9IHBhcmVudFNsaWNlLnN1YlNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UudGl0bGUsICdhOnMxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2Uoc3ViU2xpY2UuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oKDU0OCAtIDUyNCkgLyAxMDAwLCBzdWJTbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oKDU2MCAtIDU0OCkgLyAxMDAwLCBzdWJTbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlNsaWNlLmFyZ3NbJ3gnXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLmFyZ3NbJ3knXSwgMik7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlNsaWNlLmFyZ3NbJ3onXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2FzeW5jU3RlcHNNaXNzaW5nU3RhcnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAgLy8gVGltZSBpcyBpbnRlbnRpb25hbGx5IG91dCBvZiBvcmRlci4KLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdGJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtzdGVwOiAnczEnLCB5OiAyfSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAnZm9vJywKLSAgICAgICAgdGlkOiA1MywgcGg6ICdUJywgaWQ6IDcyfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYXN5bmNTdGVwc01pc3NpbmdGaW5pc2gnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAgLy8gVGltZSBpcyBpbnRlbnRpb25hbGx5IG91dCBvZiBvcmRlci4KLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtzdGVwOiAnczEnLCB5OiAyfSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAnZm9vJywKLSAgICAgICAgdGlkOiA1MywgcGg6ICdUJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdTJywgaWQ6IDcyfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYXN5bmNTdGVwRW5kRXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAgLy8gVGltZSBpcyBpbnRlbnRpb25hbGx5IG91dCBvZiBvcmRlci4KLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdGJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtzdGVwOiAnczEnLCB5OiAyfSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAnZm9vJywKLSAgICAgICAgdGlkOiA1MywgcGg6ICdwJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdTJywgaWQ6IDcyfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2Uuc3RhcnQsIDApOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd4J10sIDEpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChwYXJlbnRTbGljZS5hcmdzWyd5J10pOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd6J10sIDMpOwotCi0gICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJlbnRTbGljZS5zdWJTbGljZXMpOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgc3ViU2xpY2UgPSBwYXJlbnRTbGljZS5zdWJTbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLnRpdGxlLCAnYTpzMScpOwotICAgIGFzc2VydC5lcXVhbChzdWJTbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlLmlzVG9wTGV2ZWwpOwotICAgIGFzc2VydC5lcXVhbChzdWJTbGljZS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oKDU0OCAtIDUyNCkgLyAxMDAwLCBzdWJTbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlNsaWNlLmFyZ3NbJ3gnXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLmFyZ3NbJ3knXSwgMik7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlNsaWNlLmFyZ3NbJ3onXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2FzeW5jU3RlcE1pc21hdGNoJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIFRpbWUgaXMgaW50ZW50aW9uYWxseSBvdXQgb2Ygb3JkZXIuCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7ejogM30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnRicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7c3RlcDogJ3MyJ30sIHBpZDogNTIsIHRzOiA1NDgsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnVCcsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7c3RlcDogJ3MxJ30sIHBpZDogNTIsIHRzOiA1NDgsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAncCcsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7eDogMX0sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnUycsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYXN5bmNTbGljZVdpdGhvdXRDUFVEdXJhdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICAvLyBBc3luYyBzbGljZSB3aXRob3V0IHR0cyBmaWVsZC4KLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtwYXJhbXM6ICcnfSwgcGlkOiA1MiwgdHM6IDEwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBpZDogNzIsIHBoOiAnYid9LAotICAgICAge25hbWU6ICdhJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogMjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIGlkOiA3MiwgcGg6ICdlJ30sCi0gICAgICAvLyBBc3luYyBzbGljZSB3aXRoIHR0cyBmaWVsZCBidXQgd2l0aG91dCB1c2VfYXN5bmNfdHRzIG1hcmtlciBmaWVsZC4KLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHtwYXJhbXM6ICcnfSwgcGlkOiA1MiwgdHM6IDMwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBpZDogNzIsIHBoOiAnYicsIHR0czogMzAwMDB9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogNDAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIGlkOiA3MiwgcGg6ICdlJywgdHRzOiA0MDAwMH0sCi0gICAgICAvLyBBc3luYyBzbGljZSB3aXRoIHR0cyBmaWVsZCBidXQgd2l0aCB1c2VfYXN5bmNfdHRzIG1hcmtlciBzZXQgdG8gMC4KLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHtwYXJhbXM6ICcnfSwgcGlkOiA1MiwgdHM6IDUwMDAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgIGlkOiA3MiwgcGg6ICdiJywgdHRzOiA1MDAwMCwgdXNlX2FzeW5jX3R0czogMH0sCi0gICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7cGFyYW1zOiAnJ30sIHBpZDogNTIsIHRzOiA2MDAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgaWQ6IDcyLCBwaDogJ2UnLCB0dHM6IDYwMDAwLCB1c2VfYXN5bmNfdHRzOiAwfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDMpOwotCi0gICAgdmFyIG5vVFRTTm9GaWVsZCA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQobm9UVFNOb0ZpZWxkLmNwdVN0YXJ0KTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQobm9UVFNOb0ZpZWxkLmNwdUR1cmF0aW9uKTsKLQotICAgIHZhciBUVFNOb0ZpZWxkID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzFdOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChUVFNOb0ZpZWxkLmNwdVN0YXJ0KTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoVFRTTm9GaWVsZC5jcHVEdXJhdGlvbik7Ci0KLSAgICB2YXIgVFRTWmVyb0ZpZWxkID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzJdOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChUVFNaZXJvRmllbGQuY3B1U3RhcnQpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChUVFNaZXJvRmllbGQuY3B1RHVyYXRpb24pOwotICB9KTsKLQotICB0ZXN0KCdhc3luY1NsaWNlV2l0aENQVUR1cmF0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtwYXJhbXM6ICcnfSwgcGlkOiA1MiwgdHM6IDUwMDAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgIGlkOiA3MiwgcGg6ICdiJywgdHRzOiAxMDAwMDAsIHVzZV9hc3luY190dHM6IDF9LAotICAgICAge25hbWU6ICdhJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogNjAwMDAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIGlkOiA3MiwgcGg6ICdlJywgdHRzOiAxMDUwMDAsIHVzZV9hc3luY190dHM6IDF9Ci0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7Ci0KLSAgICB2YXIgYXN5bmNTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGFzeW5jU2xpY2UpOwotICAgIGFzc2VydC5lcXVhbChhc3luY1NsaWNlLmR1cmF0aW9uLCAxMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGFzeW5jU2xpY2UuY3B1U3RhcnQsIDEwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGFzeW5jU2xpY2UuY3B1RHVyYXRpb24sIDUpOwotICB9KTsKLQotICB0ZXN0KCduZXN0YWJsZUFzeW5jQmFzaWMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7eDogMX0sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2NSwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdlJywgaWQ6IDcyfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQocGFyZW50U2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMSk7Ci0gICAgdmFyIHN1YlNsaWNlID0gcGFyZW50U2xpY2Uuc3ViU2xpY2VzWzBdOwotICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlLmlzVG9wTGV2ZWwpOwotICAgIC8vIEFyZ3VtZW50cyBzaG91bGQgaW5jbHVkZSBib3RoIEJFR0lOIGFuZCBFTkQgZXZlbnQuCi0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLmFyZ3NbJ3gnXSwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLmFyZ3NbJ3knXSwgMik7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHN1YlNsaWNlLnN1YlNsaWNlcywgW10pOwotICB9KTsKLQotCi0gIHRlc3QoJ25lc3RhYmxlQXN5bmNOb0FyZ3MnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICduYW1lJywgcGlkOiA1MiwgdHM6IDUyNSwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbmFtZScsIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgc2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnbmFtZScpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5pc1RydWUoc2xpY2UuaXNUb3BMZXZlbCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKHNsaWNlLnN1YlNsaWNlcyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOwotCi0gICAgYXNzZXJ0LmRlZXBFcXVhbChzbGljZS5hcmdzLCB7fSk7Ci0gIH0pOwotCi0gIHRlc3QoJ25lc3RhYmxlQXN5bmNDb21iaW5lZFBhcmFtcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7eDogMSwgcGFyYW1zOiB7cDE6ICdoZWxsbycsIHAyOiAxMjN9fSwKLSAgICAgICAgcGlkOiA1MiwgdHM6IDUyNSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt5OiAyLCBwYXJhbXM6IHtwMzogJ2hpJ319LCBwaWQ6IDUyLCB0czogNTYwLAotICAgICAgICBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ2UnLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge3BhcmFtczoge3A0OiAnZm9vJ319LAotICAgICAgICBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ2InLCBpZDogNzN9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogNTYwLAotICAgICAgICBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ2UnLCBpZDogNzN9LAotICAgICAge25hbWU6ICdjJywgYXJnczoge3BhcmFtczoge3A1OiAnYmFyJ319LAotICAgICAgICBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ2InLCBpZDogNzR9LAotICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsCi0gICAgICAgIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnZScsIGlkOiA3NH0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAzKTsKLQotICAgIHZhciBzbGljZUEgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIGJvdGggQkVHSU4gYW5kIEVORCBldmVudC4KLSAgICBhc3NlcnQuZXF1YWwoc2xpY2VBLmFyZ3NbJ3gnXSwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlQS5hcmdzWyd5J10sIDIpOwotICAgIHZhciBwYXJhbXNBID0gc2xpY2VBLmFyZ3NbJ3BhcmFtcyddOwotICAgIGFzc2VydC5pc0RlZmluZWQocGFyYW1zQSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmFtc0EucDEsICdoZWxsbycpOwotICAgIGFzc2VydC5lcXVhbChwYXJhbXNBLnAyLCAxMjMpOwotICAgIGFzc2VydC5lcXVhbChwYXJhbXNBLnAzLCAnaGknKTsKLSAgICBhc3NlcnQuaXNUcnVlKHNsaWNlQS5pc1RvcExldmVsKTsKLQotICAgIHZhciBzbGljZUIgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV07Ci0gICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIGJvdGggQkVHSU4gYW5kIEVORCBldmVudC4KLSAgICB2YXIgcGFyYW1zQiA9IHNsaWNlQi5hcmdzWydwYXJhbXMnXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmFtc0IpOwotICAgIGFzc2VydC5lcXVhbChwYXJhbXNCLnA0LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShzbGljZUIuaXNUb3BMZXZlbCk7Ci0KLSAgICB2YXIgc2xpY2VDID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzJdOwotICAgIC8vIEFyZ3VtZW50cyBzaG91bGQgaW5jbHVkZSBib3RoIEJFR0lOIGFuZCBFTkQgZXZlbnQuCi0gICAgdmFyIHBhcmFtc0MgPSBzbGljZUMuYXJnc1sncGFyYW1zJ107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJhbXNDKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyYW1zQy5wNSwgJ2JhcicpOwotICAgIGFzc2VydC5pc1RydWUoc2xpY2VDLmlzVG9wTGV2ZWwpOwotICB9KTsKLQotICB0ZXN0KCduZXN0YWJsZUFzeW5jTWFueUxldmVscycsIGZ1bmN0aW9uKCkgewotICAgIC8vIFRoZXJlIGFyZSA1IG5lc3RlZCBsZXZlbHMuCi0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnbDEnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDInLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNSwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDMnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNiwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDQnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNywgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDUnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyOCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDUnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyOSwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDQnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUzMCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDMnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUzMSwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDInLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUzMiwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnbDEnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUzMywgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdlJywgaWQ6IDcyfQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgLy8gUGVyZmVjdGx5IG1hdGNoZWQgZXZlbnRzIHNob3VsZCBub3QgcHJvZHVjZSBhIHdhcm5pbmcuCi0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotCi0gICAgdmFyIGwxU2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGwxU2xpY2UudGl0bGUsICdsMScpOwotICAgIGFzc2VydC5jbG9zZVRvKDAsIGwxU2xpY2Uuc3RhcnQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKDkgLyAxMDAwLCBsMVNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuaXNUcnVlKGwxU2xpY2UuaXNUb3BMZXZlbCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKGwxU2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwobDFTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgbDJTbGljZSA9IGwxU2xpY2Uuc3ViU2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChsMlNsaWNlLnRpdGxlLCAnbDInKTsKLSAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgbDJTbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oNyAvIDEwMDAsIGwyU2xpY2UuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5pc0ZhbHNlKGwyU2xpY2UuaXNUb3BMZXZlbCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKGwyU2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwobDJTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgbDNTbGljZSA9IGwyU2xpY2Uuc3ViU2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChsM1NsaWNlLnRpdGxlLCAnbDMnKTsKLSAgICBhc3NlcnQuY2xvc2VUbygyIC8gMTAwMCwgbDNTbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oNSAvIDEwMDAsIGwzU2xpY2UuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5pc0ZhbHNlKGwzU2xpY2UuaXNUb3BMZXZlbCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKGwzU2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwobDNTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgbDRTbGljZSA9IGwzU2xpY2Uuc3ViU2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChsNFNsaWNlLnRpdGxlLCAnbDQnKTsKLSAgICBhc3NlcnQuY2xvc2VUbygzIC8gMTAwMCwgbDRTbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMyAvIDEwMDAsIGw0U2xpY2UuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5pc0ZhbHNlKGw0U2xpY2UuaXNUb3BMZXZlbCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKGw0U2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwobDRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgbDVTbGljZSA9IGw0U2xpY2Uuc3ViU2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChsNVNsaWNlLnRpdGxlLCAnbDUnKTsKLSAgICBhc3NlcnQuY2xvc2VUbyg0IC8gMTAwMCwgbDVTbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIGw1U2xpY2UuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5pc0ZhbHNlKGw1U2xpY2UuaXNUb3BMZXZlbCk7Ci0gIH0pOwotCi0gIHRlc3QoJ25lc3RhYmxlQXN5bmNJbnN0YW50RXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnbicsIGlkOiA3MX0sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnZCcsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ24nLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAyKTsKLSAgICB2YXIgaW5zdGFudFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChpbnN0YW50U2xpY2UudGl0bGUsICdjJyk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMCwgaW5zdGFudFNsaWNlLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygwLCBpbnN0YW50U2xpY2UuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5zYW1lTWVtYmVycyhpbnN0YW50U2xpY2Uuc3ViU2xpY2VzLCBbXSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShpbnN0YW50U2xpY2UuaXNUb3BMZXZlbCk7Ci0KLSAgICB2YXIgbmVzdGVkU2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKG5lc3RlZFNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5jbG9zZVRvKDAsIG5lc3RlZFNsaWNlLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygoNTY1IC0gNTI0KSAvIDEwMDAsIG5lc3RlZFNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuaXNUcnVlKG5lc3RlZFNsaWNlLmlzVG9wTGV2ZWwpOwotICAgIGFzc2VydC5pc0RlZmluZWQobmVzdGVkU2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwobmVzdGVkU2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMSk7Ci0gICAgdmFyIG5lc3RlZEluc3RhbnRTbGljZSA9IG5lc3RlZFNsaWNlLnN1YlNsaWNlc1swXTsKLSAgICBhc3NlcnQuc2FtZU1lbWJlcnMobmVzdGVkSW5zdGFudFNsaWNlLnN1YlNsaWNlcywgW10pOwotICAgIGFzc2VydC5lcXVhbChuZXN0ZWRJbnN0YW50U2xpY2UudGl0bGUsICdkJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobmVzdGVkSW5zdGFudFNsaWNlLmlzVG9wTGV2ZWwpOwotICB9KTsKLQotICB0ZXN0KCduZXN0YWJsZUFzeW5jVW5tYXRjaGVkT3V0ZXJCZWdpbkV2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge3k6IDJ9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ2UnLCBpZDogNzJ9Ci0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICAvLyBVbm1hdGNoZWQgQkVHSU4gc2hvdWxkIHByb2R1Y2UgYSB3YXJuaW5nLgotICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKLSAgICBhc3NlcnQuY2xvc2VUbygwLCBwYXJlbnRTbGljZS5zdGFydCwgMC4wMDAxKTsKLSAgICAvLyBVbm1hdGNoZWQgQkVHSU4gZXZlbnQgZW5kcyBhdCB0aGUgbGFzdCBldmVudCBvZiB0aGF0IElELgotICAgIGFzc2VydC5jbG9zZVRvKDM2IC8gMTAwMCwgcGFyZW50U2xpY2UuZHVyYXRpb24sIDAuMDAwMSk7Ci0gICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIG9ubHkgaW5jbHVkZSBpdHMgYXJndW1lbnRzLgotICAgIGFzc2VydC5pc1VuZGVmaW5lZChwYXJlbnRTbGljZS5hcmdzWyd5J10pOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd4J10sIDEpOwotICAgIGFzc2VydC5pc0RlZmluZWQocGFyZW50U2xpY2UuZXJyb3IpOwotCi0gICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJlbnRTbGljZS5zdWJTbGljZXMpOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgc3ViU2xpY2UgPSBwYXJlbnRTbGljZS5zdWJTbGljZXNbMF07Ci0gICAgYXNzZXJ0LmlzRmFsc2Uoc3ViU2xpY2UuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHN1YlNsaWNlLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygzNSAvIDEwMDAsIHN1YlNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuc2FtZU1lbWJlcnMoc3ViU2xpY2Uuc3ViU2xpY2VzLCBbXSk7Ci0gICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIHRob3NlIG9mIHRoZSBFTkQgZXZlbnQuCi0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLmFyZ3NbJ3knXSwgMik7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHN1YlNsaWNlLnN1YlNsaWNlcywgW10pOwotICB9KTsKLQotICB0ZXN0KCduZXN0YWJsZUFzeW5jVW5tYXRjaGVkSW5uZXJCZWdpbkV2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKLSAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ24nLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge3g6IDF9LCBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdhJywgYXJnczoge3k6IDJ9LCBwaWQ6IDUyLCB0czogNTY1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ2UnLCBpZDogNzJ9Ci0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICAvLyBVbm1hdGNoZWQgQkVHSU4gc2hvdWxkIHByb2R1Y2UgYSB3YXJuaW5nLgotICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKLSAgICBhc3NlcnQuY2xvc2VUbygwLCBwYXJlbnRTbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oNDEgLyAxMDAwLCBwYXJlbnRTbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIGJvdGggQkVHSU4gYW5kIEVORCBldmVudC4KLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuYXJnc1sneSddLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuYXJnc1sneiddLCAzKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQocGFyZW50U2xpY2UuYXJnc1sneCddKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQocGFyZW50U2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMik7Ci0gICAgdmFyIHN1YlNsaWNlSW5zdGFudCA9IHBhcmVudFNsaWNlLnN1YlNsaWNlc1swXTsKLSAgICB2YXIgc3ViU2xpY2VVbm1hdGNoZWQgPSBwYXJlbnRTbGljZS5zdWJTbGljZXNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlSW5zdGFudC50aXRsZSwgJ2MnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShzdWJTbGljZUluc3RhbnQuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlVW5tYXRjaGVkLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlVW5tYXRjaGVkLmlzVG9wTGV2ZWwpOwotICAgIC8vIFVubWF0Y2hlZCBCRUdJTiBlbmRzIGF0IHRoZSBsYXN0IGV2ZW50IG9mIHRoYXQgSUQuCi0gICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHN1YlNsaWNlVW5tYXRjaGVkLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbyg0MCAvIDEwMDAsIHN1YlNsaWNlVW5tYXRjaGVkLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuc2FtZU1lbWJlcnMoc3ViU2xpY2VVbm1hdGNoZWQuc3ViU2xpY2VzLCBbXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlVW5tYXRjaGVkLmFyZ3NbJ3gnXSwgMSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlNsaWNlVW5tYXRjaGVkWyd5J10pOwotICAgIGFzc2VydC5pc0RlZmluZWQoc3ViU2xpY2VVbm1hdGNoZWQuZXJyb3IpOwotICAgIGFzc2VydC5jbG9zZVRvKDEgLyAxMDAwLCBzdWJTbGljZUluc3RhbnQuc3RhcnQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKDAsIHN1YlNsaWNlSW5zdGFudC5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHN1YlNsaWNlSW5zdGFudC5zdWJTbGljZXMsIFtdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbmVzdGFibGVBc3luY1VubWF0Y2hlZE91dGVyRW5kRXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBFdmVudHMgYXJlIGludGVudGlvbmFsbHkgb3V0LW9mLW9yZGVyLgotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7eDogMX0sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7ejogM30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIC8vIFVubWF0Y2hlZCBFTkQgc2hvdWxkIHByb2R1Y2UgYSB3YXJuaW5nLgotICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDIpOwotICAgIHZhciB1bm1hdGNoZWRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICB2YXIgc2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHVubWF0Y2hlZFNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5jbG9zZVRvKDAsIHVubWF0Y2hlZFNsaWNlLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuaXNUcnVlKHVubWF0Y2hlZFNsaWNlLmlzVG9wTGV2ZWwpOwotICAgIC8vIFVubWF0Y2hlZCBFTkQgZXZlbnQgYmVnaW5zIGF0IHRoZSBmaXJzdCBldmVudCBvZiB0aGF0IElELiBJbiB0aGlzCi0gICAgLy8gY2FzZSwgdGhlIGZpcnN0IGV2ZW50IGhhcHBlbnMgdG8gYmUgdGhlIHNhbWUgdW5tYXRjaGVkIGV2ZW50LgotICAgIGFzc2VydC5jbG9zZVRvKDAgLyAxMDAwLCB1bm1hdGNoZWRTbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHVubWF0Y2hlZFNsaWNlLmFyZ3NbJ3gnXSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHVubWF0Y2hlZFNsaWNlLmFyZ3NbJ3knXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHVubWF0Y2hlZFNsaWNlLmFyZ3NbJ3onXSwgMyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh1bm1hdGNoZWRTbGljZS5lcnJvcik7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHVubWF0Y2hlZFNsaWNlLnN1YlNsaWNlcywgW10pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5pc1RydWUoc2xpY2UuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHNsaWNlLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygzNSAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgYm90aCBCRUdJTiBhbmQgRU5EIGV2ZW50LgotICAgIGFzc2VydC5lcXVhbChzbGljZS5hcmdzWyd4J10sIDEpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5hcmdzWyd5J10sIDIpOwotICAgIGFzc2VydC5zYW1lTWVtYmVycyhzbGljZS5zdWJTbGljZXMsIFtdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbmVzdGFibGVBc3luY1VubWF0Y2hlZElubmVyRW5kRXZlbnQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge25hbWU6ICdhJywgYXJnczoge3g6IDF9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnbicsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2InLCBhcmdzOiB7ejogM30sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIC8vIFVubWF0Y2hlZCBFTkQgc2hvdWxkIHByb2R1Y2UgYSB3YXJuaW5nLgotICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKLSAgICBhc3NlcnQuY2xvc2VUbygwLCBwYXJlbnRTbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oNDEgLyAxMDAwLCBwYXJlbnRTbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIGJvdGggQkVHSU4gYW5kIEVORCBldmVudC4KLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuYXJnc1sneCddLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuYXJnc1sneSddLCAyKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQocGFyZW50U2xpY2Uuc3ViU2xpY2VzKTsKLSAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMik7Ci0gICAgdmFyIHN1YlNsaWNlSW5zdGFudCA9IHBhcmVudFNsaWNlLnN1YlNsaWNlc1swXTsKLSAgICB2YXIgc3ViU2xpY2VVbm1hdGNoZWQgPSBwYXJlbnRTbGljZS5zdWJTbGljZXNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlSW5zdGFudC50aXRsZSwgJ2MnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShzdWJTbGljZUluc3RhbnQuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlVW5tYXRjaGVkLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlVW5tYXRjaGVkLmlzVG9wTGV2ZWwpOwotICAgIC8vIFVubWF0Y2hlZCBFTkQgYmVnaW5zIGF0IHRoZSBmaXJzdCBldmVudCBvZiB0aGF0IElELgotICAgIGFzc2VydC5jbG9zZVRvKDAgLyAxMDAwLCBzdWJTbGljZVVubWF0Y2hlZC5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHN1YlNsaWNlVW5tYXRjaGVkLmR1cmF0aW9uLCAxZS01KTsKLSAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgYm90aCBCRUdJTiBhbmQgRU5EIGV2ZW50LgotICAgIGFzc2VydC5pc1VuZGVmaW5lZChzdWJTbGljZVVubWF0Y2hlZC5hcmdzWyd4J10pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChzdWJTbGljZVVubWF0Y2hlZC5hcmdzWyd5J10pOwotICAgIGFzc2VydC5lcXVhbChzdWJTbGljZVVubWF0Y2hlZC5hcmdzWyd6J10sIDMpOwotICAgIGFzc2VydC5pc0RlZmluZWQoc3ViU2xpY2VVbm1hdGNoZWQuZXJyb3IpOwotCi0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHN1YlNsaWNlVW5tYXRjaGVkLnN1YlNsaWNlcywgW10pOwotICAgIGFzc2VydC5jbG9zZVRvKDEgLyAxMDAwLCBzdWJTbGljZUluc3RhbnQuc3RhcnQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKDAsIHN1YlNsaWNlSW5zdGFudC5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHN1YlNsaWNlSW5zdGFudC5zdWJTbGljZXMsIFtdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbmVzdGFibGVBc3luY1NhbWVJRERpZmZlcmVudENhdGVnb3J5JywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gRXZlbnRzIHdpdGggdGhlIHNhbWUgSUQsIGJ1dCBkaWZmZXJlbnQgY2F0ZWdvcmllcyBzaG91bGQgbm90IGJlCi0gICAgLy8gY29uc2lkZXJlZCBhcyBuZXN0ZWQuCi0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnRVZFTlRfQScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdFVkVOVF9CJywgYXJnczoge3k6IDJ9LCBwaWQ6IDUyLCB0czogNTUwLCBjYXQ6ICdiYXInLCB0aWQ6IDUzLAotICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAotICAgICAge25hbWU6ICdFVkVOVF9CJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MDAsIGNhdDogJ2JhcicsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0sCi0gICAgICB7bmFtZTogJ0VWRU5UX0EnLCBhcmdzOiB7eDogMX0sIHBpZDogNTIsIHRzOiA2NTAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCi0gICAgICAgIHBoOiAnZScsIGlkOiA3Mn0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAyKTsKLSAgICB2YXIgZXZlbnRBU2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGV2ZW50QVNsaWNlLnRpdGxlLCAnRVZFTlRfQScpOwotICAgIGFzc2VydC5lcXVhbChldmVudEFTbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChldmVudEFTbGljZS5pZCwgJ2Zvbzo3MicpOwotICAgIGFzc2VydC5pc1RydWUoZXZlbnRBU2xpY2UuaXNUb3BMZXZlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGV2ZW50QVNsaWNlLmFyZ3NbJ3gnXSwgMSk7Ci0gICAgYXNzZXJ0LnNhbWVNZW1iZXJzKGV2ZW50QVNsaWNlLnN1YlNsaWNlcywgW10pOwotCi0gICAgdmFyIGV2ZW50QlNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzFdOwotICAgIGFzc2VydC5lcXVhbChldmVudEJTbGljZS50aXRsZSwgJ0VWRU5UX0InKTsKLSAgICBhc3NlcnQuZXF1YWwoZXZlbnRCU2xpY2UuY2F0ZWdvcnksICdiYXInKTsKLSAgICBhc3NlcnQuZXF1YWwoZXZlbnRCU2xpY2UuaWQsICdiYXI6NzInKTsKLSAgICBhc3NlcnQuaXNUcnVlKGV2ZW50QlNsaWNlLmlzVG9wTGV2ZWwpOwotICAgIGFzc2VydC5lcXVhbChldmVudEJTbGljZS5hcmdzWyd5J10sIDIpOwotICAgIGFzc2VydC5zYW1lTWVtYmVycyhldmVudEJTbGljZS5zdWJTbGljZXMsIFtdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U2FtcGxlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAndGVzdCcsIHRpZDogNTMsIHBoOiAnUCd9LAotICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NDgsIGNhdDogJ3Rlc3QnLCB0aWQ6IDUzLCBwaDogJ1AnfSwKLSAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTU4LCBjYXQ6ICd0ZXN0JywgdGlkOiA1MywgcGg6ICdQJ30sCi0gICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2OCwgY2F0OiAndGVzdCcsIHRpZDogNTMsIHBoOiAnUCd9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOwotICAgIGFzc2VydC5pc0RlZmluZWQocCk7Ci0gICAgdmFyIHQgPSBwLnRocmVhZHNbNTNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc18ubGVuZ3RoLCA0KTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1swXS5zdGFydCwgMC4wKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1sxXS5zdGFydCwgMC4wKTsKLSAgICBhc3NlcnQuY2xvc2VUbygwLjAxLCB0LnNhbXBsZXNfWzJdLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1swXS5sZWFmU3RhY2tGcmFtZS50aXRsZSwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1sxXS5sZWFmU3RhY2tGcmFtZS50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1syXS5sZWFmU3RhY2tGcmFtZS50aXRsZSwgJ2MnKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1szXS5sZWFmU3RhY2tGcmFtZSwgdC5zYW1wbGVzWzBdLmxlYWZTdGFja0ZyYW1lKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U2FtcGxlc1dpdGhTdGFja0ZyYW1lcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudERhdGEgPSB7Ci0gICAgICB0cmFjZUV2ZW50czogWwotICAgICAgICB7IG5hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDAsIGNhdDogJ3Rlc3QnLCB0aWQ6IDIsIHBoOiAnUCcsIHNmOiA3IH0gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIF0sCi0gICAgICBzdGFja0ZyYW1lczogewotICAgICAgICAnMSc6IHsKLSAgICAgICAgICBjYXRlZ29yeTogJ20xJywKLSAgICAgICAgICBuYW1lOiAnbWFpbicKLSAgICAgICAgfSwKLSAgICAgICAgJzcnOiB7Ci0gICAgICAgICAgY2F0ZWdvcnk6ICdtMicsCi0gICAgICAgICAgbmFtZTogJ2ZyYW1lNycsCi0gICAgICAgICAgcGFyZW50OiAnMScKLSAgICAgICAgfQotICAgICAgfQotICAgIH07Ci0KLSAgICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5JbXBvcnRPcHRpb25zKCk7Ci0gICAgb3B0aW9ucy5zaGlmdFdvcmxkVG9aZXJvID0gZmFsc2U7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnREYXRhLCBvcHRpb25zKTsKLQotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07Ci0gICAgdmFyIHQgPSBwLnRocmVhZHNbMl07Ci0KLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc19bMF0uc3RhcnQsIDAuMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc19bMF0ubGVhZlN0YWNrRnJhbWUudGl0bGUsICdmcmFtZTcnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U2FtcGxlc01pc3NpbmdBcmdzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHtuYW1lOiAnYScsIHBpZDogNTIsIHRzOiA1NDgsIGNhdDogJ3Rlc3QnLCB0aWQ6IDUzLCBwaDogJ1AnfSwKLSAgICAgIHtuYW1lOiAnYicsIHBpZDogNTIsIHRzOiA1NDgsIGNhdDogJ3Rlc3QnLCB0aWQ6IDUzLCBwaDogJ1AnfSwKLSAgICAgIHtuYW1lOiAnYycsIHBpZDogNTIsIHRzOiA1NDksIGNhdDogJ3Rlc3QnLCB0aWQ6IDUzLCBwaDogJ1AnfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzUyXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHApOwotICAgIHZhciB0ID0gcC50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc18ubGVuZ3RoLCAzKTsKLSAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0U2ltcGxlT2JqZWN0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHt0czogMTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ04nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogMTUwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHtzbmFwc2hvdDogMTV9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogMjAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHtzbmFwc2hvdDogMjB9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogNTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0QnLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UpOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWF4LCA1MCk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIGFzc2VydC5pc0RlZmluZWQocCk7Ci0KLSAgICB2YXIgaTEwID0gcC5vYmplY3RzLmdldE9iamVjdEluc3RhbmNlQXQoJzB4MTAwMCcsIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwoaTEwLmNhdGVnb3J5LCAnYycpOwotICAgIGFzc2VydC5lcXVhbChpMTAuY3JlYXRpb25UcywgMTApOwotICAgIGFzc2VydC5lcXVhbChpMTAuZGVsZXRpb25UcywgNTApOwotICAgIGFzc2VydC5lcXVhbChpMTAuc25hcHNob3RzLmxlbmd0aCwgMik7Ci0KLSAgICB2YXIgczE1ID0gaTEwLnNuYXBzaG90c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoczE1LnRzLCAxNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHMxNS5hcmdzLCAxNSk7Ci0KLSAgICB2YXIgczIwID0gaTEwLnNuYXBzaG90c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoczIwLnRzLCAyMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHMyMC5hcmdzLCAyMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydEltcGxpY2l0T2JqZWN0cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7dHM6IDEwMDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdOJywgY2F0OiAnYycsIGlkOiAnMHgxMDAwJywgbmFtZTogJ2EnLCBhcmdzOiB7fX0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7dHM6IDE1MDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdPJywgY2F0OiAnYycsIGlkOiAnMHgxMDAwJywgbmFtZTogJ2EnLAotICAgICAgICBhcmdzOiB7IHNuYXBzaG90OiBbCi0gICAgICAgICAgeyBpZDogJ3N1Yk9iamVjdC8weDEnLAotICAgICAgICAgICAgZm9vOiAxCi0gICAgICAgICAgfQotICAgICAgICBdfX0sCi0gICAgICB7dHM6IDIwMDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdPJywgY2F0OiAnYycsIGlkOiAnMHgxMDAwJywgbmFtZTogJ2EnLAotICAgICAgICBhcmdzOiB7IHNuYXBzaG90OiBbCi0gICAgICAgICAgeyBpZDogJ3N1Yk9iamVjdC8weDEnLAotICAgICAgICAgICAgZm9vOiAyCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7IGlkOiAnc3ViT2JqZWN0LzB4MicsCi0gICAgICAgICAgICBmb286IDEKLSAgICAgICAgICB9Ci0gICAgICAgIF19fQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSk7Ci0gICAgdmFyIHAxID0gbS5wcm9jZXNzZXNbMV07Ci0KLSAgICB2YXIgaUEgPSBwMS5vYmplY3RzLmdldE9iamVjdEluc3RhbmNlQXQoJzB4MTAwMCcsIDEwKTsKLSAgICB2YXIgc3ViT2JqZWN0SW5zdGFuY2VzID0gcDEub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lKClbCi0gICAgICAgICdzdWJPYmplY3QnXTsKLQotICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3RJbnN0YW5jZXMubGVuZ3RoLCAyKTsKLSAgICB2YXIgc3ViT2JqZWN0MSA9IHAxLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgxJywgMTUpOwotICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QxLm5hbWUsICdzdWJPYmplY3QnKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViT2JqZWN0MS5jcmVhdGlvblRzLCAxNSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc3ViT2JqZWN0MS5zbmFwc2hvdHMubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViT2JqZWN0MS5zbmFwc2hvdHNbMF0udHMsIDE1KTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViT2JqZWN0MS5zbmFwc2hvdHNbMF0uYXJncy5mb28sIDEpOwotICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QxLnNuYXBzaG90c1sxXS50cywgMjApOwotICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QxLnNuYXBzaG90c1sxXS5hcmdzLmZvbywgMik7Ci0KLSAgICB2YXIgc3ViT2JqZWN0MiA9IHAxLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgyJywgMjApOwotICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QyLm5hbWUsICdzdWJPYmplY3QnKTsKLSAgICBhc3NlcnQuZXF1YWwoc3ViT2JqZWN0Mi5jcmVhdGlvblRzLCAyMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdDIuc25hcHNob3RzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdDIuc25hcHNob3RzWzBdLnRzLCAyMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydEltcGxpY2l0T2JqZWN0V2l0aENhdGVnb3J5T3ZlcnJpZGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAge3RzOiAxMDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTicsIGNhdDogJ2NhdCcsIGlkOiAnMHgxMDAwJywgbmFtZTogJ2EnLCBhcmdzOiB7fX0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7dHM6IDE1MDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdPJywgY2F0OiAnb3RoZXJDYXQnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgYXJnczogeyBzbmFwc2hvdDogWwotICAgICAgICAgIHsgaWQ6ICdzdWJPYmplY3QvMHgxJywKLSAgICAgICAgICAgIGNhdDogJ2NhdCcsCi0gICAgICAgICAgICBmb286IDEKLSAgICAgICAgICB9Ci0gICAgICAgIF19fQotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSk7Ci0gICAgdmFyIHAxID0gbS5wcm9jZXNzZXNbMV07Ci0KLSAgICB2YXIgaUEgPSBwMS5vYmplY3RzLmdldE9iamVjdEluc3RhbmNlQXQoJzB4MTAwMCcsIDEwKTsKLSAgICB2YXIgc3ViT2JqZWN0SW5zdGFuY2VzID0gcDEub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lKClbCi0gICAgICAgICdzdWJPYmplY3QnXTsKLQotICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3RJbnN0YW5jZXMubGVuZ3RoLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0SW1wbGljaXRPYmplY3RXaXRoQmFzZVR5cGVPdmVycmlkZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7dHM6IDEwMDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdPJywgY2F0OiAnYycsIGlkOiAnMHgxMDAwJywgbmFtZTogJ1BpY3R1cmVMYXllckltcGwnLCBhcmdzOiB7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAgIHNuYXBzaG90OiB7Ci0gICAgICAgICAgYmFzZV90eXBlOiAnTGF5ZXJJbXBsJwotICAgICAgICB9Ci0gICAgICB9fSwKLSAgICAgIHt0czogNTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0QnLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnTGF5ZXJJbXBsJywgYXJnczoge319IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlKTsKLSAgICB2YXIgcDEgPSBtLnByb2Nlc3Nlc1sxXTsKLSAgICBhc3NlcnQuZXF1YWwobS5pbXBvcnRXYXJuaW5ncy5sZW5ndGgsIDApOwotCi0gICAgdmFyIGlBID0gcDEub2JqZWN0cy5nZXRPYmplY3RJbnN0YW5jZUF0KCcweDEwMDAnLCAxMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGlBLnNuYXBzaG90cy5sZW5ndGgsIDEpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRJRFJlZnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAgLy8gQW4gb2JqZWN0IHdpdGggdHdvIHNuYXBzaG90cy4KLSAgICAgIHt0czogMTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ04nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogMTUwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHtzbmFwc2hvdDogMTV9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogMjAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHtzbmFwc2hvdDogMjB9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogNTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0QnLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgLy8gQSBzbGljZSB0aGF0IHJlZmVyZW5jZXMgdGhlIG9iamVjdC4KLSAgICAgIHt0czogMTcwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0InLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tTbGljZScsIGFyZ3M6IHtteV9vYmplY3Q6IHtpZF9yZWY6ICcweDEwMDAnfX19LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAge3RzOiAxNzUwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnRScsIGNhdDogJ2MnLCBuYW1lOiAndGFza1NsaWNlJywgYXJnczoge319IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlKTsKLSAgICB2YXIgcDEgPSBtLnByb2Nlc3Nlc1sxXTsKLQotICAgIHZhciBpQSA9IHAxLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgxMDAwJywgMTApOwotICAgIHZhciBzMTUgPSBpQS5nZXRTbmFwc2hvdEF0KDE1KTsKLQotICAgIHZhciB0YXNrU2xpY2UgPSBwMS50aHJlYWRzWzFdLnNsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbCh0YXNrU2xpY2UuYXJncy5teV9vYmplY3QsIHMxNSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydElEUmVmc1RoYXRQb2ludEF0RWFjaE90aGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIEFuIG9iamVjdC4KLSAgICAgIHt0czogMTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ04nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogMTUwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgc25hcHNob3Q6IHsgeDogewotICAgICAgICAgIGlkOiAnZm9vLzB4MTAwMScsCi0gICAgICAgICAgdmFsdWU6ICdiYXInCi0gICAgICAgIH19fX0sCi0gICAgICB7dHM6IDUwMDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdEJywgY2F0OiAnYycsIGlkOiAnMHgxMDAwJywgbmFtZTogJ2EnLCBhcmdzOiB7fX0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICAgIC8vIEEgc2xpY2UgdGhhdCByZWZlcmVuY2VzIHRoZSBvYmplY3QuCi0gICAgICB7dHM6IDE3MDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdCJywgY2F0OiAnYycsIG5hbWU6ICd0YXNrU2xpY2UnLCBhcmdzOiB7bXlfb2JqZWN0OiB7aWRfcmVmOiAnMHgxMDAxJ319fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogMTc1MDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0UnLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tTbGljZScsIGFyZ3M6IHt9fSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSk7Ci0gICAgdmFyIHAxID0gbS5wcm9jZXNzZXNbMV07Ci0KLSAgICB2YXIgaUEgPSBwMS5vYmplY3RzLmdldE9iamVjdEluc3RhbmNlQXQoJzB4MTAwMCcsIDE1KTsKLSAgICB2YXIgaUZvbyA9IHAxLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgxMDAxJywgMTUpOwotICAgIGFzc2VydC5pc0RlZmluZWQoaUEpOwotICAgIGFzc2VydC5pc0RlZmluZWQoaUZvbyk7Ci0KLSAgICB2YXIgYTE1ID0gaUEuZ2V0U25hcHNob3RBdCgxNSk7Ci0gICAgdmFyIGZvbzE1ID0gaUZvby5nZXRTbmFwc2hvdEF0KDE1KTsKLQotICAgIHZhciB0YXNrU2xpY2UgPSBwMS50aHJlYWRzWzFdLnNsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbCh0YXNrU2xpY2UuYXJncy5teV9vYmplY3QsIGZvbzE1KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0QXJyYXlXaXRoSURzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHt0czogMTUwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgc25hcHNob3Q6IHsgeDogWwotICAgICAgICAgIHtpZDogJ2Zvby8weDEwMDEnLCB2YWx1ZTogJ2JhcjEnfSwKLSAgICAgICAgICB7aWQ6ICdmb28vMHgxMDAyJywgdmFsdWU6ICdiYXIyJ30sCi0gICAgICAgICAge2lkOiAnZm9vLzB4MTAwMycsIHZhbHVlOiAnYmFyMyd9Ci0gICAgICAgIF19fX0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UpOwotICAgIHZhciBwMSA9IG0ucHJvY2Vzc2VzWzFdOwotCi0gICAgdmFyIHNBID0gcDEub2JqZWN0cy5nZXRTbmFwc2hvdEF0KCcweDEwMDAnLCAxNSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShzQS5hcmdzLnggaW5zdGFuY2VvZiBBcnJheSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNBLmFyZ3MueC5sZW5ndGgsIDMpOwotICAgIGFzc2VydC5pc1RydWUoc0EuYXJncy54WzBdIGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpOwotICAgIGFzc2VydC5pc1RydWUoc0EuYXJncy54WzFdIGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpOwotICAgIGFzc2VydC5pc1RydWUoc0EuYXJncy54WzJdIGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnREb2VzTm90TXV0YXRlRXZlbnRMaXN0JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIEFuIG9iamVjdC4KLSAgICAgIHt0czogMTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ04nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHt0czogMTUwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgc25hcHNob3Q6IHtmb286IDE1fX19LAotICAgICAge3RzOiA1MDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnRCcsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge319LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICAvLyBBIHNsaWNlIHRoYXQgcmVmZXJlbmNlcyB0aGUgb2JqZWN0LgotICAgICAge3RzOiAxNzAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnQicsIGNhdDogJ2MnLCBuYW1lOiAndGFza1NsaWNlJywgYXJnczogewotICAgICAgICBteV9vYmplY3Q6IHtpZF9yZWY6ICcweDEwMDAnfX0KLSAgICAgIH0sCi0gICAgICB7dHM6IDE3NTAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdFJywgY2F0OiAnYycsIG5hbWU6ICd0YXNrU2xpY2UnLCBhcmdzOiB7fX0gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICBdOwotCi0gICAgLy8gVGhlIEEgdHlwZSBmYW1pbHkgZXhpc3RzIHRvIG11dGF0ZSB0aGUgYXJncyBsaXN0IHByb3ZpZGVkIHRvCi0gICAgLy8gc25hcHNob3RzLgotICAgIGZ1bmN0aW9uIEFTbmFwc2hvdCgpIHsKLSAgICAgIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgICB0aGlzLmFyZ3MuZm9vID0gNzsKLSAgICB9Ci0gICAgQVNuYXBzaG90LnByb3RvdHlwZSA9IHsKLSAgICAgIF9fcHJvdG9fXzogdHIubW9kZWwuT2JqZWN0U25hcHNob3QucHJvdG90eXBlCi0gICAgfTsKLQotICAgIC8vIEltcG9ydCBldmVudCB3aGlsZSB0aGUgQSB0eXBlcyBhcmUgcmVnaXN0ZXJlZCwgY2F1c2luZyB0aGUKLSAgICAvLyBhcmd1bWVudHMgb2YgdGhlIHNuYXBzaG90cyB0byBiZSBtdXRhdGVkLgotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdHJ5IHsKLSAgICAgIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90LnJlZ2lzdGVyKEFTbmFwc2hvdCwge3R5cGVOYW1lOiAnYSd9KTsKLSAgICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSk7Ci0gICAgfSBmaW5hbGx5IHsKLSAgICAgIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90LnVucmVnaXN0ZXIoQVNuYXBzaG90KTsKLSAgICB9Ci0gICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7Ci0KLSAgICAvLyBWZXJpZnkgdGhhdCB0aGUgZXZlbnRzIGFycmF5IHdhc24ndCBtb2RpZmllZC4KLSAgICBhc3NlcnQuZGVlcEVxdWFsKAotICAgICAgICBldmVudHNbMV0uYXJncywKLSAgICAgICAge3NuYXBzaG90OiB7Zm9vOiAxNX19KTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKAotICAgICAgICBldmVudHNbM10uYXJncywKLSAgICAgICAge215X29iamVjdDoge2lkX3JlZjogJzB4MTAwMCd9fSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydEZsb3dFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7IG5hbWU6ICdhU2xpY2UnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDcsIHBoOiAnQicsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnYScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0OCwgcGg6ICdzJywgYXJnczoge30gfSwgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7IGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0OSwgcGg6ICdFJywgYXJnczoge30gfSwgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICAgIHsgbmFtZTogJ2JTbGljZScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU1OSwgcGg6ICdCJywgYXJnczoge30gfSwgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7IG5hbWU6ICdhJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTYwLCBwaDogJ3QnLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTYxLCBwaDogJ0UnLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgeyBuYW1lOiAnYScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU4MCwgcGg6ICdmJywgYXJnczoge30gfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnY1NsaWNlJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTgxLCBwaDogJ0InLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTgyLCBwaDogJ0UnLCBhcmdzOiB7fSB9ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOwotCi0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICBhc3NlcnQuZXF1YWwobS5mbG93RXZlbnRzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uZmxvd0ludGVydmFsVHJlZS5zaXplLCAyKTsKLQotICAgIHZhciBmMCA9IG0uZmxvd0V2ZW50c1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZjAudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYwLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYwLmlkLCA3Mik7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oZjAuc3RhcnQsIDAuMDAxLCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygxMiAvIDEwMDAsIGYwLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnRTbGljZS50aXRsZSwgJ2FTbGljZScpOwotICAgIGFzc2VydC5lcXVhbChmMC5lbmRTbGljZS50aXRsZSwgJ2JTbGljZScpOwotCi0gICAgLy8gVE9ETyhuZHVjYSk6IFJlcGxhY2UgdGhpcyBhc3NlcnRpb24gd2l0aCBzb21ldGhpbmcgYmV0dGVyIHdoZW4KLSAgICAvLyBmbG93IGV2ZW50cyBkb24ndCBjcmVhdGUgc3ludGhldGljIHNsaWNlcyBvbiB0aGVpciBvd24uCi0gICAgYXNzZXJ0LmlzRGVmaW5lZChmMC5zdGFydFNsaWNlKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGYwLmVuZFNsaWNlKTsKLQotICAgIHZhciBmMSA9IG0uZmxvd0V2ZW50c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoZjEudGl0bGUsIGYwLnRpdGxlKTsKLSAgICBhc3NlcnQuZXF1YWwoZjEuY2F0ZWdvcnksIGYwLmNhdGVnb3J5KTsKLSAgICBhc3NlcnQuZXF1YWwoZjEuaWQsIGYwLmlkKTsKLSAgICBhc3NlcnQuY2xvc2VUbygyMCAvIDEwMDAsIGYxLmR1cmF0aW9uLCAxZS01KTsKLQotICAgIGFzc2VydC5lcXVhbChmMS5zdGFydFNsaWNlLnRpdGxlLCAnYlNsaWNlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYxLmVuZFNsaWNlLnRpdGxlLCAnY1NsaWNlJyk7Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLnN0YXJ0U2xpY2Uub3V0Rmxvd0V2ZW50cywgW2YwXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChmMC5lbmRTbGljZS5pbkZsb3dFdmVudHMsIFtmMF0pOwotICAgIGFzc2VydC5kZWVwRXF1YWwoZjEuc3RhcnRTbGljZS5vdXRGbG93RXZlbnRzLCBbZjFdKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGYxLmVuZFNsaWNlLmluRmxvd0V2ZW50cywgW2YxXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydE9sZEZsb3dFdmVudEJpbmR0b05leHQnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBPbGQgdHJhY2UgZm9ybWF0IHdpdGhvdXQgZXZlbnQuYnAsIGFuZCBldmVudC5jYXQgZG9lc24ndCBjb250YWluIGlucHV0Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHsgbmFtZTogJ3NsaWNlMScsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDcsIHBoOiAnWCcsICdkdXInOiAxMDB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7IG5hbWU6ICdmbG93JywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ4LCBwaDogJ3MnLCBhcmdzOiB7fX0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICB7IG5hbWU6ICdmbG93JywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTgwLCBwaDogJ2YnLCBhcmdzOiB7fX0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ3NsaWNlMicsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA1NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnc2xpY2UzJywgY2F0OiAnZm9vJywgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDc3MCwgcGg6ICdYJywgYXJnczoge30sICdkdXInOiAxMDAwfSAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSwgZmFsc2UpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZmxvd0V2ZW50cy5sZW5ndGgsIDEpOwotCi0gICAgdmFyIGYwID0gbS5mbG93RXZlbnRzWzBdOwotCi0gICAgYXNzZXJ0LmVxdWFsKGYwLnRpdGxlLCAnZmxvdycpOwotICAgIGFzc2VydC5lcXVhbChmMC5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChmMC5pZCwgNzIpOwotICAgIGFzc2VydC5lcXVhbChmMC5zdGFydCwgLjU0OCk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMzIgLyAxMDAwLCBmMC5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYwLnN0YXJ0U2xpY2UudGl0bGUsICdzbGljZTEnKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLnN0YXJ0U2xpY2Uub3V0Rmxvd0V2ZW50cywgW2YwXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYwLmVuZFNsaWNlLnRpdGxlLCAnc2xpY2UzJyk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChmMC5lbmRTbGljZS5pbkZsb3dFdmVudHMsIFtmMF0pOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRPbGRGbG93RXZlbnRCaW5kdG9QYXJlbnQnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBPbGQgdHJhY2UgZm9ybWF0IHdpdGhvdXQgZXZlbnQuYnAsIGJ1dCBldmVudC5jYXQgY29udGFpbnMgaW5wdXQKLSAgICB2YXIgZXZlbnRzID0gWwotICAgICAgeyBuYW1lOiAnc2xpY2UxJywgY2F0OiAnZm9vJywgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0NywgcGg6ICdYJywgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ2Zsb3cnLCBjYXQ6ICdpbnB1dCcsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0OCwgcGg6ICdzJywgYXJnczoge319LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2lucHV0JywgaWQ6IDcyLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTgwLCBwaDogJ2YnLCBhcmdzOiB7fX0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ3NsaWNlMicsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA1NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnc2xpY2UzJywgY2F0OiAnZm9vJywgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDc3MCwgcGg6ICdYJywgYXJnczoge30sICdkdXInOiAxMDAwfSAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSwgZmFsc2UpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZmxvd0V2ZW50cy5sZW5ndGgsIDEpOwotCi0gICAgdmFyIGYwID0gbS5mbG93RXZlbnRzWzBdOwotCi0gICAgYXNzZXJ0LmVxdWFsKGYwLnRpdGxlLCAnZmxvdycpOwotICAgIGFzc2VydC5lcXVhbChmMC5jYXRlZ29yeSwgJ2lucHV0Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYwLmlkLCA3Mik7Ci0gICAgYXNzZXJ0LmVxdWFsKGYwLnN0YXJ0LCAuNTQ4KTsKLSAgICBhc3NlcnQuY2xvc2VUbygzMiAvIDEwMDAsIGYwLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnRTbGljZS50aXRsZSwgJ3NsaWNlMScpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuc3RhcnRTbGljZS5vdXRGbG93RXZlbnRzLCBbZjBdKTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuZW5kU2xpY2UudGl0bGUsICdzbGljZTInKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLmVuZFNsaWNlLmluRmxvd0V2ZW50cywgW2YwXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydE5ld0Zsb3dFdmVudEJpbmR0b1BhcmVudCcsIGZ1bmN0aW9uKCkgewotICAgIC8vIE5ldyB0cmFjZSBmb3JtYXQgd2l0aCBldmVudC5icAotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7IG5hbWU6ICdzbGljZTEnLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ3LCBwaDogJ1gnLCAnZHVyJzogMTAwfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0OCwgcGg6ICdzJywgYnA6ICdlJywgYXJnczoge319LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYnA6ICdlJywgYXJnczoge319LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7IG5hbWU6ICdzbGljZTInLCBjYXQ6ICdmb28nLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTcwLCBwaDogJ1gnLCBhcmdzOiB7fSwgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ3NsaWNlMycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA3NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwMH0gICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UsIGZhbHNlKTsKLQotICAgIGFzc2VydC5lcXVhbChtLmZsb3dFdmVudHMubGVuZ3RoLCAxKTsKLQotICAgIHZhciBmMCA9IG0uZmxvd0V2ZW50c1swXTsKLQotICAgIGFzc2VydC5lcXVhbChmMC50aXRsZSwgJ2Zsb3cnKTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuaWQsIDcyKTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnQsIC41NDgpOwotICAgIGFzc2VydC5jbG9zZVRvKDMyIC8gMTAwMCwgZjAuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5lcXVhbChmMC5zdGFydFNsaWNlLnRpdGxlLCAnc2xpY2UxJyk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChmMC5zdGFydFNsaWNlLm91dEZsb3dFdmVudHMsIFtmMF0pOwotICAgIGFzc2VydC5lcXVhbChmMC5lbmRTbGljZS50aXRsZSwgJ3NsaWNlMicpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuZW5kU2xpY2UuaW5GbG93RXZlbnRzLCBbZjBdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0TmV3Rmxvd0V2ZW50V2l0aEludmFsaWRCaW5kaW5nUG9pbnQnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBOZXcgdHJhY2UgZm9ybWF0IHdpdGggZXZlbnQuYnAsIHdoaWNoIGhvd2V2ZXIgIT09ICdlJwotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7IG5hbWU6ICdzbGljZTEnLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ3LCBwaDogJ1gnLCAnZHVyJzogMTAwfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0OCwgcGg6ICdzJywgYnA6ICd6JywgYXJnczoge319LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYnA6ICd6JywgYXJnczoge319LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7IG5hbWU6ICdzbGljZTInLCBjYXQ6ICdmb28nLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTcwLCBwaDogJ1gnLCBhcmdzOiB7fSwgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ3NsaWNlMycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA3NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwMH0gICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgXTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UsIGZhbHNlKTsKLQotICAgIGFzc2VydC5lcXVhbChtLmZsb3dFdmVudHMubGVuZ3RoLCAwKTsKLSAgfSk7Ci0KLSAgLy8gVGhpcyB0ZXN0IGNyZWF0ZXMgYSBmbG93IGV2ZW50IHRoYXQgc3RvcHMgb24gdGhlIHNhbWUgdGltZXN0YW1wIHRoYXQKLSAgLy8gdGhlICdYJyBldmVudCB3aGljaCBpdCB0cmlnZ2VycyBiZWdpbnMuCi0gIHRlc3QoJ2ltcG9ydEZsb3dFdmVudE92ZXJsYXBzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHsgbmFtZTogJ1NvbWVUYXNrJywgY2F0OiAnZm9vJywgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0NywgcGg6ICdYJywgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ1Bvc3RUYXNrJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ4LCBwaDogJ3MnLCBhcmdzOiB7fX0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICB7IG5hbWU6ICdQb3N0VGFzaycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYXJnczogeyAncXVldWVfZHVyYXRpb24nOiAwfX0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIC8vIE5vdGUgdGhhdCBSdW5UYXNrIGhhcyB0aGUgc2FtZSB0aW1lLXN0YW1wIGFzIFBvc3RUYXNrICdmJwotICAgICAgeyBuYW1lOiAnUnVuVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA1ODAsIHBoOiAnWCcsIGFyZ3M6IHsnc3JjX2Z1bmMnOiAnUG9zdFJ1blRhc2snfSwgJ2R1cic6IDEwMDB9ICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSwgZmFsc2UpOwotICAgIHZhciBzdGFydFQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107Ci0gICAgdmFyIGVuZFQgPSBtLnByb2Nlc3Nlc1s3MF0udGhyZWFkc1s3MV07Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKHN0YXJ0VCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHN0YXJ0VC5zbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotCi0gICAgYXNzZXJ0LmlzRGVmaW5lZChlbmRUKTsKLSAgICBhc3NlcnQuZXF1YWwoZW5kVC5zbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZmxvd0V2ZW50cy5sZW5ndGgsIDEpOwotCi0gICAgLy8gZjAgcmVwcmVzZW50cyAncycgdG8gJ2YnCi0gICAgdmFyIGYwID0gbS5mbG93RXZlbnRzWzBdOwotCi0gICAgYXNzZXJ0LmVxdWFsKGYwLnRpdGxlLCAnUG9zdFRhc2snKTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuaWQsIDcyKTsKLSAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnQsIC41NDgpOwotICAgIGFzc2VydC5jbG9zZVRvKDMyIC8gMTAwMCwgZjAuZHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5lcXVhbChmMC5zdGFydFNsaWNlLnRpdGxlLCAnU29tZVRhc2snKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLnN0YXJ0U2xpY2Uub3V0Rmxvd0V2ZW50cywgW2YwXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYwLmVuZFNsaWNlLnRpdGxlLCAnUnVuVGFzaycpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuZW5kU2xpY2UuaW5GbG93RXZlbnRzLCBbZjBdKTsKLQotICAgIC8vIFRPRE8obmR1Y2EpOiBBZGQgYXNzZXJ0aW9ucyBhYm91dCB0aGUgZmxvdyBzbGljZXMsIGVzcCB0aGF0IHRoZXkgd2VyZQotICAgIC8vIGZvdW5kIGNvcnJlY3RseS4KLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0T3V0T2ZPcmRlckZsb3dFdmVudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7IG5hbWU6ICdTb21lVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDgsIHBoOiAnWCcsICdkdXInOiAxMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ2EnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDgsIHBoOiAncycsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICB7IG5hbWU6ICdTb21lVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiAxNDgsIHBoOiAnWCcsICdkdXInOiAxMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ2InLCBjYXQ6ICdmb28nLCBpZDogNzMsIHBpZDogNTIsIHRpZDogNTMsIHRzOiAxNDgsIHBoOiAncycsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgICB7IG5hbWU6ICdiJywgY2F0OiAnZm9vJywgaWQ6IDczLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTcwLCBwaDogJ2YnLCBhcmdzOiB7fSB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7IG5hbWU6ICdTb21lVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NzEsIHBoOiAnWCcsICdkdXInOiAxMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgeyBuYW1lOiAnU29tZVRhc2snLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTYwLCBwaDogJ1gnLCAnZHVyJzogMTB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICB7IG5hbWU6ICdhJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTYwLCBwaDogJ3QnLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLQotICAgICAgeyBuYW1lOiAnYScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU4MCwgcGg6ICdmJywgYXJnczoge30gfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnU29tZVRhc2snLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTgxLCBwaDogJ1gnLCAnZHVyJzogMTB9ICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICBdOwotCi0gICAgdmFyIGV4cGVjdGVkID0gWzAuNCwgMC4wLCAwLjQxMl07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5mbG93SW50ZXJ2YWxUcmVlLnNpemUsIDMpOwotCi0gICAgdmFyIG9yZGVyID0gbS5mbG93RXZlbnRzLm1hcChmdW5jdGlvbih4KSB7IHJldHVybiB4LnN0YXJ0IH0pOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2kpCi0gICAgICBhc3NlcnQuY2xvc2VUbyhleHBlY3RlZFtpXSwgb3JkZXJbaV0sIDFlLTUpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRDb21wbGV0ZUV2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHsgbmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYyOSwgZHVyOiAxLCBjYXQ6ICdiYXonLCB0aWQ6IDUzLCBwaDogJ1gnIH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNzMwLCBkdXI6IDIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ1gnIH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNzQwLCBjYXQ6ICdiYXonLCB0aWQ6IDUzLCBwaDogJ1gnIH0KLSAgICBdOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOwotICAgIGFzc2VydC5pc0RlZmluZWQocCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKLSAgICB2YXIgdCA9IHAudGhyZWFkc1s1M107Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKLSAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDMpOwotICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgNTMpOwotCi0gICAgdmFyIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnYmF6Jyk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMCwgc2xpY2Uuc3RhcnQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKDEgLyAxMDAwLCBzbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOwotCi0gICAgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzFdOwotICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKLSAgICBhc3NlcnQuY2xvc2VUbygoNzMwIC0gNjI5KSAvIDEwMDAsIHNsaWNlLnN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygyMCAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMSk7Ci0KLSAgICBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMl07Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYycpOwotICAgIGFzc2VydC5pc1RydWUoc2xpY2UuZGlkTm90RmluaXNoKTsKLSAgICBhc3NlcnQuY2xvc2VUbygxMCAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0Q29tcGxldGVFdmVudFdpdGhDcHVEdXJhdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7IG5hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MjksIGR1cjogMSwgY2F0OiAnYmF6JywgdGlkOiA1MywgcGg6ICdYJywgdHRzOiAxMiwgdGR1cjogMSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDczMCwgZHVyOiAyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdYJywgdHRzOiAxMTAsIHRkdXI6IDE2IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgeyBuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNzQwLCBjYXQ6ICdiYXonLCB0aWQ6IDUzLCBwaDogJ1gnLCB0dHM6IDExNSB9ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOwotICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1s1Ml07Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKLQotICAgIGFzc2VydC5lcXVhbChwLm51bVRocmVhZHMsIDEpOwotICAgIHZhciB0ID0gcC50aHJlYWRzWzUzXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOwotICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQudGlkLCA1Myk7Ci0KLSAgICB2YXIgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOwotICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdiYXonKTsKLSAgICBhc3NlcnQuY2xvc2VUbygwLCBzbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygxMiAvIDEwMDAsIHNsaWNlLmNwdVN0YXJ0LCAxZS01KTsKLSAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgc2xpY2UuY3B1RHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKLQotICAgIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdiJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oKDczMCAtIDYyOSkgLyAxMDAwLCBzbGljZS5zdGFydCwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMjAgLyAxMDAwLCBzbGljZS5kdXJhdGlvbiwgMWUtNSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMTEwIC8gMTAwMCwgc2xpY2UuY3B1U3RhcnQsIDFlLTUpOwotICAgIGFzc2VydC5jbG9zZVRvKDE2IC8gMTAwMCwgc2xpY2UuY3B1RHVyYXRpb24sIDFlLTUpOwotICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLQotICAgIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1syXTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdjJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShzbGljZS5kaWROb3RGaW5pc2gpOwotICAgIGFzc2VydC5jbG9zZVRvKDEwIC8gMTAwMCwgc2xpY2UuZHVyYXRpb24sIDFlLTUpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnROZXN0ZWRDb21wbGV0ZUV2ZW50V2l0aFRpZ2h0Qm91bmRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHsgbmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDI0NDY1NDIyNzA2NSwgZHVyOiAzNjA3NSwgY2F0OiAnYmF6JywgdGlkOiA1MywgcGg6ICdYJyB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgIHsgbmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDI0NDY1NDIyNzA5NSwgZHVyOiAzNjA0NSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdYJyB9ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgIF07Ci0KLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLQotICAgIHZhciBzQSA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2EnKTsKLSAgICB2YXIgc0IgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdiJyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc0EudGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNBLmNhdGVnb3J5LCAnYmF6Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNBLnN0YXJ0LCAyNDQ2NTQyMjcuMDY1KTsKLSAgICBhc3NlcnQuZXF1YWwoc0EuZHVyYXRpb24sIDM2LjA3NSk7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oMC4wMywgc0Euc2VsZlRpbWUsIDFlLTUpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNCLnRpdGxlLCAnYicpOwotICAgIGFzc2VydC5lcXVhbChzQi5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5lcXVhbChzQi5zdGFydCwgMjQ0NjU0MjI3LjA5NSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNCLmR1cmF0aW9uLCAzNi4wNDUpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXNbMF0sIHNCKTsKLSAgICBhc3NlcnQuZXF1YWwoc0IucGFyZW50U2xpY2UsIHNBKTsKLSAgfSk7Ci0KLQotICB0ZXN0KCdpbXBvcnRDb21wbGV0ZUV2ZW50V2l0aFN0YWNrRnJhbWUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnREYXRhID0gewotICAgICAgdHJhY2VFdmVudHM6IFsKLSAgICAgICAgeyBuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAwLCBkdXI6IDEsIGNhdDogJ2JheicsIHRpZDogMiwgcGg6ICdYJywgc2Y6IDcgfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICAgeyBuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA1LCBkdXI6IDEsIGNhdDogJ2JheicsIHRpZDogMiwgcGg6ICdYJywgc2Y6IDgsIGVzZjogOSB9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICBdLAotICAgICAgc3RhY2tGcmFtZXM6IHsKLSAgICAgICAgJzEnOiB7Ci0gICAgICAgICAgY2F0ZWdvcnk6ICdtMScsCi0gICAgICAgICAgbmFtZTogJ21haW4nCi0gICAgICAgIH0sCi0gICAgICAgICc3JzogewotICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAotICAgICAgICAgIG5hbWU6ICdmcmFtZTcnLAotICAgICAgICAgIHBhcmVudDogJzEnCi0gICAgICAgIH0sCi0gICAgICAgICc4JzogewotICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAotICAgICAgICAgIG5hbWU6ICdmcmFtZTgnLAotICAgICAgICAgIHBhcmVudDogJzEnCi0gICAgICAgIH0sCi0gICAgICAgICc5JzogewotICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAotICAgICAgICAgIG5hbWU6ICdmcmFtZTknLAotICAgICAgICAgIHBhcmVudDogJzEnCi0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9OwotCi0gICAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuSW1wb3J0T3B0aW9ucygpOwotICAgIG9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybyA9IGZhbHNlOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50RGF0YSwgb3B0aW9ucyk7Ci0KLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIHZhciB0ID0gcC50aHJlYWRzWzJdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAyKTsKLQotICAgIHZhciBzMCA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHMwLnN0YXJ0U3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lNycpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChzMC5lbmRTdGFja0ZyYW1lKTsKLQotICAgIHZhciBzMSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHMxLnN0YXJ0U3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lOCcpOwotICAgIGFzc2VydC5lcXVhbChzMS5lbmRTdGFja0ZyYW1lLnRpdGxlLCAnZnJhbWU5Jyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydEFzeW5jRXZlbnRXaXRoU2FtZVRpbWVzdGFtcCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbXTsKLSAgICAvLyBFdmVudHMgYXJlIGFkZGVkIHdpdGggdHMgMCwgMSwgMSwgMiwgMiwgMywgMyAuLi41MDAsIDUwMCwgMTAwMAotICAgIC8vIGFuZCB1c2UgJ3NlcScgdG8gdHJhY2sgdGhlIG9yZGVyIG9mIHdoZW4gdGhlIGV2ZW50IGlzIHJlY29yZGVkLgotICAgIGV2ZW50cy5wdXNoKHtuYW1lOiAnYScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDAsIHBoOiAnUycsIGFyZ3M6IHsnc2VxJzogMH19KTsgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDAwOyBpKyspCi0gICAgICBldmVudHMucHVzaCh7bmFtZTogJ2EnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiBNYXRoLnJvdW5kKGkgLyAyKSAsIHBoOiAnVCcsIGFyZ3M6IHsnc2VxJzogaX19KTsgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0KLSAgICBldmVudHMucHVzaCh7bmFtZTogJ2EnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiAxMDAwLCBwaDogJ0YnLCBhcmdzOiB7J3NlcSc6IDEwMDF9fSk7ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKLSAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKLQotICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKLSAgICB2YXIgcGFyZW50U2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5jYXRlZ29yeSwgJ2ZvbycpOwotICAgIGFzc2VydC5pc1RydWUocGFyZW50U2xpY2UuaXNUb3BMZXZlbCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmVudFNsaWNlLnN1YlNsaWNlcyk7Ci0gICAgdmFyIHN1YlNsaWNlcyA9IHBhcmVudFNsaWNlLnN1YlNsaWNlczsKLSAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2VzLmxlbmd0aCwgMTAwMCk7Ci0gICAgLy8gU2xpY2VzIHNob3VsZCBiZSBzb3J0ZWQgYWNjb3JkaW5nIHRvICd0cycuIEFuZCBpZiAndHMnIGlzIHRoZSBzYW1lLAotICAgIC8vIHNsaWNlcyBzaG91bGQga2VlcCB0aGUgb3JkZXIgdGhhdCB0aGV5IHdlcmUgcmVjb3JkZWQuCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKLSAgICAgIGFzc2VydC5lcXVhbChpICsgMSwgc3ViU2xpY2VzW2ldLmFyZ3NbJ3NlcSddKTsKLSAgICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlc1tpXS5pc1RvcExldmVsKTsKLSAgICB9Ci0gIH0pOwotCi0gIHRlc3QoJ3NhbXBsZURhdGFTaW1wbGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnRzID0gewotICAgICAgJ3RyYWNlRXZlbnRzJzogW10sCi0gICAgICAnc3RhY2tGcmFtZXMnOiB7Ci0gICAgICAgICcxJzogewotICAgICAgICAgICdjYXRlZ29yeSc6ICdtb2QnLAotICAgICAgICAgICduYW1lJzogJ21haW4nCi0gICAgICAgIH0sCi0gICAgICAgICcyJzogewotICAgICAgICAgICdjYXRlZ29yeSc6ICdtb2QnLAotICAgICAgICAgICduYW1lJzogJ2EnLAotICAgICAgICAgICdwYXJlbnQnOiAxCi0gICAgICAgIH0sCi0gICAgICAgICczJzogewotICAgICAgICAgICdjYXRlZ29yeSc6ICdtb2QnLAotICAgICAgICAgICduYW1lJzogJ2Ffc3ViJywKLSAgICAgICAgICAncGFyZW50JzogMgotICAgICAgICB9LAotICAgICAgICAnNCc6IHsKLSAgICAgICAgICAnY2F0ZWdvcnknOiAnbW9kJywKLSAgICAgICAgICAnbmFtZSc6ICdiJywKLSAgICAgICAgICAncGFyZW50JzogMQotICAgICAgICB9Ci0gICAgICB9LAotICAgICAgJ3NhbXBsZXMnOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAnY3B1JzogMCwgJ3RpZCc6IDEsICd0cyc6IDEwMDAuMCwKLSAgICAgICAgICAnbmFtZSc6ICdjeWNsZXM6SEcnLCAnc2YnOiAzLCAnd2VpZ2h0JzogMQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgJ2NwdSc6IDAsICd0aWQnOiAxLCAndHMnOiAyMDAwLjAsCi0gICAgICAgICAgJ25hbWUnOiAnY3ljbGVzOkhHJywgJ3NmJzogMiwgJ3dlaWdodCc6IDEKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICdjcHUnOiAxLCAndGlkJzogMSwgJ3RzJzogMzAwMC4wLAotICAgICAgICAgICduYW1lJzogJ2N5Y2xlczpIRycsICdzZic6IDMsICd3ZWlnaHQnOiAxCi0gICAgICAgIH0KLSAgICAgIF0KLSAgICB9OwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOwotICAgIGFzc2VydC5pc0RlZmluZWQobS5rZXJuZWwuY3B1c1swXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QWxsVGhyZWFkcygpLmxlbmd0aCwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodHIuYi5kaWN0aW9uYXJ5S2V5cyhtLnN0YWNrRnJhbWVzKS5sZW5ndGgsIDQpOwotICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXMubGVuZ3RoLCAzKTsKLQotICAgIHZhciB0MSA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV07Ci0gICAgYXNzZXJ0LmVxdWFsKHQxLnNhbXBsZXMubGVuZ3RoLCAzKTsKLQotICAgIHZhciBjMCA9IG0ua2VybmVsLmNwdXNbMF07Ci0gICAgdmFyIGMxID0gbS5rZXJuZWwuY3B1c1sxXTsKLSAgICBhc3NlcnQuZXF1YWwoYzAuc2FtcGxlcy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbChjMS5zYW1wbGVzLmxlbmd0aCwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zYW1wbGVzWzBdLmNwdSwgYzApOwotICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXNbMF0udGhyZWFkLCB0MSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2FtcGxlc1swXS50aXRsZSwgJ2N5Y2xlczpIRycpOwotICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXNbMF0uc3RhcnQsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoCi0gICAgICAgIFsnbWFpbicsICdhJywgJ2Ffc3ViJ10sCi0gICAgICAgIG0uc2FtcGxlc1swXS5zdGFja1RyYWNlLm1hcChmdW5jdGlvbih4KSB7IHJldHVybiB4LnRpdGxlOyB9KSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2FtcGxlc1swXS53ZWlnaHQsIDEpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRNZW1vcnlEdW1wc192ZXJpZnlQcm9jZXNzQW5kR2xvYmFsTWVtb3J5RHVtcExpbmtzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIC8vIDIgcHJvY2VzcyBtZW1vcnkgZHVtcCBldmVudHMgd2l0aG91dCBhIGdsb2JhbCBtZW1vcnkgZHVtcCBldmVudC4KLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ2EnLAotICAgICAgICBwaWQ6IDQyLAotICAgICAgICB0czogMTAwMDAsCi0gICAgICAgIGNhdDogJ3Rlc3QnLAotICAgICAgICB0aWQ6IDUzLAotICAgICAgICBwaDogJ3YnLAotICAgICAgICBpZDogJzB4MDAwMScsCi0gICAgICAgIGFyZ3M6IHsKLSAgICAgICAgICBkdW1wczogewotICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKLSAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMTAwJwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ2InLAotICAgICAgICBwaWQ6IDQzLAotICAgICAgICB0czogMTEwMDAsCi0gICAgICAgIGNhdDogJ3Rlc3QnLAotICAgICAgICB0aWQ6IDU0LAotICAgICAgICBwaDogJ3YnLAotICAgICAgICBpZDogJzB4MDAwMScsCi0gICAgICAgIGFyZ3M6IHsKLSAgICAgICAgICBkdW1wczogewotICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKLSAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMjAwJwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSwKLSAgICAgIC8vIDEgZ2xvYmFsIG1lbW9yeSBkdW1wIGV2ZW50IGFuZCAxIHByb2Nlc3MgbWVtb3J5IGR1bXAgZXZlbnQuCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdjJywKLSAgICAgICAgcGlkOiA0NCwKLSAgICAgICAgdHM6IDEyMDAwLAotICAgICAgICBjYXQ6ICd0ZXN0JywKLSAgICAgICAgdGlkOiA1NSwKLSAgICAgICAgcGg6ICdWJywKLSAgICAgICAgaWQ6ICcweGZmZmZmZmYxMjM0NTY3OCcsCi0gICAgICAgIGFyZ3M6IHt9Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnZCcsCi0gICAgICAgIHBpZDogNDIsCi0gICAgICAgIHRzOiAxMzAwMCwKLSAgICAgICAgY2F0OiAndGVzdCcsCi0gICAgICAgIHRpZDogNTYsCi0gICAgICAgIHBoOiAndicsCi0gICAgICAgIGlkOiAnMHhmZmZmZmZmMTIzNDU2NzgnLAotICAgICAgICBhcmdzOiB7Ci0gICAgICAgICAgZHVtcHM6IHsKLSAgICAgICAgICAgIHByb2Nlc3NfdG90YWxzOiB7Ci0gICAgICAgICAgICAgIHJlc2lkZW50X3NldF9ieXRlczogJzMwMCcKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOwotICAgIHZhciBwMSA9IG0uZ2V0UHJvY2Vzcyg0Mik7Ci0gICAgdmFyIHAyID0gbS5nZXRQcm9jZXNzKDQzKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHAxKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHAyKTsKLQotICAgIC8vIENoZWNrIHRoYXQgTW9kZWwgYW5kIFByb2Nlc3Mgb2JqZWN0cyBjb250YWluIHRoZSByaWdodCBkdW1wcy4KLSAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wcy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbChwMS5tZW1vcnlEdW1wcy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbChwMi5tZW1vcnlEdW1wcy5sZW5ndGgsIDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZ2xvYmFsTWVtb3J5RHVtcHNbMF0uc3RhcnQsIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwocDEubWVtb3J5RHVtcHNbMF0uc3RhcnQsIDEwKTsKLSAgICBhc3NlcnQuZXF1YWwocDIubWVtb3J5RHVtcHNbMF0uc3RhcnQsIDExKTsKLSAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wc1swXS5kdXJhdGlvbiwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzBdLmR1cmF0aW9uLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwocDIubWVtb3J5RHVtcHNbMF0uZHVyYXRpb24sIDApOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZ2xvYmFsTWVtb3J5RHVtcHNbMV0uc3RhcnQsIDEyKTsKLSAgICBhc3NlcnQuZXF1YWwocDEubWVtb3J5RHVtcHNbMV0uc3RhcnQsIDEzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wc1sxXS5kdXJhdGlvbiwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzFdLmR1cmF0aW9uLCAwKTsKLQotICAgIC8vIENoZWNrIHRoYXQgR2xvYmFsTWVtb3J5RHVtcCBhbmQgUHJvY2Vzc01lbW9yeUR1bXAgb2JqZWN0cyBhcmUKLSAgICAvLyBpbnRlcmNvbm5lY3RlZCBjb3JyZWN0bHkuCi0gICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzBdLAotICAgICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzWzBdLnByb2Nlc3NNZW1vcnlEdW1wc1s0Ml0pOwotICAgIGFzc2VydC5lcXVhbChwMi5tZW1vcnlEdW1wc1swXSwKLSAgICAgICAgbS5nbG9iYWxNZW1vcnlEdW1wc1swXS5wcm9jZXNzTWVtb3J5RHVtcHNbNDNdKTsKLSAgICBhc3NlcnQuZXF1YWwocDEubWVtb3J5RHVtcHNbMF0uZ2xvYmFsTWVtb3J5RHVtcCwgbS5nbG9iYWxNZW1vcnlEdW1wc1swXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHAyLm1lbW9yeUR1bXBzWzBdLmdsb2JhbE1lbW9yeUR1bXAsIG0uZ2xvYmFsTWVtb3J5RHVtcHNbMF0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzFdLAotICAgICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzWzFdLnByb2Nlc3NNZW1vcnlEdW1wc1s0Ml0pOwotICAgIGFzc2VydC5lcXVhbChwMS5tZW1vcnlEdW1wc1sxXS5nbG9iYWxNZW1vcnlEdW1wLCBtLmdsb2JhbE1lbW9yeUR1bXBzWzFdKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0TWVtb3J5RHVtcHNfdG90YWxSZXNpZGVudEJ5dGVzT25seScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdzb21lX2R1bXBfbmFtZScsCi0gICAgICAgIHBpZDogNDIsCi0gICAgICAgIHRzOiAxMCwKLSAgICAgICAgY2F0OiAndGVzdCcsCi0gICAgICAgIHRpZDogNTMsCi0gICAgICAgIHBoOiAndicsCi0gICAgICAgIGlkOiAnMHgwMScsCi0gICAgICAgIGFyZ3M6IHsKLSAgICAgICAgICBkdW1wczogewotICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKLSAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMWZmZmZmZmZmZmZmZmYnCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0uZ2V0UHJvY2Vzcyg0Mik7Ci0gICAgdmFyIGQgPSBwLm1lbW9yeUR1bXBzWzBdOwotCi0gICAgYXNzZXJ0LmVxdWFsKGQudG90YWxSZXNpZGVudEJ5dGVzLCA5MDA3MTk5MjU0NzQwOTkxKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZC5tb3N0UmVjZW50Vm1SZWdpb25zKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoZC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydE1lbW9yeUR1bXBzX3ZtUmVnaW9ucycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdzb21lX2R1bXBfbmFtZScsCi0gICAgICAgIHBpZDogNDIsCi0gICAgICAgIHRzOiAxMCwKLSAgICAgICAgY2F0OiAndGVzdCcsCi0gICAgICAgIHRpZDogNTMsCi0gICAgICAgIHBoOiAndicsCi0gICAgICAgIGlkOiAnMDAwJywKLSAgICAgICAgYXJnczogewotICAgICAgICAgIGR1bXBzOiB7Ci0gICAgICAgICAgICBwcm9jZXNzX3RvdGFsczogewotICAgICAgICAgICAgICByZXNpZGVudF9zZXRfYnl0ZXM6ICcwJwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHByb2Nlc3NfbW1hcHM6IHsKLSAgICAgICAgICAgICAgdm1fcmVnaW9uczogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIHNhOiAnZjAnLAotICAgICAgICAgICAgICAgICAgc3o6ICcxNTAnLAotICAgICAgICAgICAgICAgICAgcGY6IDYsCi0gICAgICAgICAgICAgICAgICBtZjogJ1tzdGFjazoyMDMxMF0nLAotICAgICAgICAgICAgICAgICAgYnM6IHsKLSAgICAgICAgICAgICAgICAgICAgcHNzOiAnOWUnLAotICAgICAgICAgICAgICAgICAgICBwYzogJzQwJywKLSAgICAgICAgICAgICAgICAgICAgcGQ6ICcyMCcsCi0gICAgICAgICAgICAgICAgICAgIHNjOiAnMTAwJywKLSAgICAgICAgICAgICAgICAgICAgc2Q6ICcwJywKLSAgICAgICAgICAgICAgICAgICAgc3c6ICc1MCcKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIHNhOiAnMzUwJywKLSAgICAgICAgICAgICAgICAgIHN6OiAnMjUwJywKLSAgICAgICAgICAgICAgICAgIHBmOiA1LAotICAgICAgICAgICAgICAgICAgbWY6ICcvZGV2L2FzaG1lbS9kYWx2aWsnLAotICAgICAgICAgICAgICAgICAgYnM6IHsKLSAgICAgICAgICAgICAgICAgICAgcHNzOiAnY2QnLAotICAgICAgICAgICAgICAgICAgICBwZDogJ2NkJywKLSAgICAgICAgICAgICAgICAgICAgc3c6ICcwJwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7Ci0gICAgdmFyIHAgPSBtLmdldFByb2Nlc3MoNDIpOwotICAgIHZhciBkID0gcC5tZW1vcnlEdW1wc1swXTsKLQotICAgIGFzc2VydC5lcXVhbChkLm1vc3RSZWNlbnRWbVJlZ2lvbnMubGVuZ3RoLCAyKTsKLQotICAgIHZhciB2cjEgPSBkLm1vc3RSZWNlbnRWbVJlZ2lvbnNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHZyMS5zdGFydEFkZHJlc3MsIDI0MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZyMS5zaXplSW5CeXRlcywgMzM2KTsKLSAgICBhc3NlcnQuZXF1YWwodnIxLnByb3RlY3Rpb25GbGFncywgNik7Ci0gICAgYXNzZXJ0LmVxdWFsKHZyMS5wcm90ZWN0aW9uRmxhZ3NUb1N0cmluZywgJ3J3LScpOwotICAgIGFzc2VydC5lcXVhbCh2cjEubWFwcGVkRmlsZSwgJ1tzdGFjazoyMDMxMF0nKTsKLSAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5wcml2YXRlQ2xlYW5SZXNpZGVudCwgNjQpOwotICAgIGFzc2VydC5lcXVhbCh2cjEuYnl0ZVN0YXRzLnByaXZhdGVEaXJ0eVJlc2lkZW50LCAzMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHZyMS5ieXRlU3RhdHMuc2hhcmVkQ2xlYW5SZXNpZGVudCwgMjU2KTsKLSAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5zaGFyZWREaXJ0eVJlc2lkZW50LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5wcm9wb3J0aW9uYWxSZXNpZGVudCwgMTU4KTsKLSAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5zd2FwcGVkLCA4MCk7Ci0KLSAgICB2YXIgdnIyID0gZC5tb3N0UmVjZW50Vm1SZWdpb25zWzFdOwotICAgIGFzc2VydC5lcXVhbCh2cjIuc3RhcnRBZGRyZXNzLCA4NDgpOwotICAgIGFzc2VydC5lcXVhbCh2cjIuc2l6ZUluQnl0ZXMsIDU5Mik7Ci0gICAgYXNzZXJ0LmVxdWFsKHZyMi5wcm90ZWN0aW9uRmxhZ3MsIDUpOwotICAgIGFzc2VydC5lcXVhbCh2cjIucHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcsICdyLXgnKTsKLSAgICBhc3NlcnQuZXF1YWwodnIyLm1hcHBlZEZpbGUsICcvZGV2L2FzaG1lbS9kYWx2aWsnKTsKLSAgICBhc3NlcnQuZXF1YWwodnIyLmJ5dGVTdGF0cy5wcm9wb3J0aW9uYWxSZXNpZGVudCwgMjA1KTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQodnIyLmJ5dGVTdGF0cy5wcml2YXRlQ2xlYW5SZXNpZGVudCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZyMi5ieXRlU3RhdHMucHJpdmF0ZURpcnR5UmVzaWRlbnQsIDIwNSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHZyMi5ieXRlU3RhdHMuc2hhcmVkQ2xlYW5SZXNpZGVudCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHZyMi5ieXRlU3RhdHMuc2hhcmVkRGlydHlSZXNpZGVudCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHZyMi5ieXRlU3RhdHMuc3dhcHBlZCwgMCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZC50b3RhbFJlc2lkZW50Qnl0ZXMsIDApOwotICAgIGFzc2VydC5sZW5ndGhPZihkLm1lbW9yeUFsbG9jYXRvckR1bXBzLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0TWVtb3J5RHVtcHNfZXhwbGljaXRNZW1vcnlBbGxvY2F0b3JEdW1wcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdhJywKLSAgICAgICAgcGlkOiA0MiwKLSAgICAgICAgdHM6IDEwLAotICAgICAgICBjYXQ6ICd0ZXN0JywKLSAgICAgICAgdGlkOiA1MywKLSAgICAgICAgcGg6ICd2JywKLSAgICAgICAgaWQ6ICcweDAwMDEnLAotICAgICAgICBhcmdzOiB7Ci0gICAgICAgICAgZHVtcHM6IHsKLSAgICAgICAgICAgIHByb2Nlc3NfdG90YWxzOiB7Ci0gICAgICAgICAgICAgIHJlc2lkZW50X3NldF9ieXRlczogJzEwMCcKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBhbGxvY2F0b3JzOiB7Ci0gICAgICAgICAgICAgICdvaWxwYW4nOiB7Ci0gICAgICAgICAgICAgICAgZ3VpZDogJzFhJywKLSAgICAgICAgICAgICAgICBhdHRyczogewotICAgICAgICAgICAgICAgICAgb2JqZWN0c19jb3VudDogewotICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdvYmplY3RzJywgdmFsdWU6ICcyZicKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICBpbm5lcl9zaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzEwMDAnfSwKLSAgICAgICAgICAgICAgICAgIHNpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnNDAwMCd9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAnb2lscGFuL2hlYXAxJzogewotICAgICAgICAgICAgICAgIGd1aWQ6ICcyYicsCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnM2YnCi0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICczMDAwJ30sCi0gICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzQwMDAnfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgJ29pbHBhbi9oZWFwMic6IHsKLSAgICAgICAgICAgICAgICBndWlkOiAnM2MnLAotICAgICAgICAgICAgICAgIGF0dHJzOiB7Ci0gICAgICAgICAgICAgICAgICBvYmplY3RzX2NvdW50OiB7Ci0gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzY2FsYXInLCB1bml0czogJ29iamVjdHMnLCB2YWx1ZTogJzRmJwotICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgIGlubmVyX3NpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnNDAwMCd9LAotICAgICAgICAgICAgICAgICAgc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc0MDAwJ30KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICdvaWxwYW4vaGVhcDIvYnVja2V0MSc6IHsKLSAgICAgICAgICAgICAgICAvLyBEZWxpYmVyYXRlbHkgbWlzc2luZyBHVUlEICh0byBjaGVjayB0aGF0IHRoZSBpbXBvcnRlciBkb2VzCi0gICAgICAgICAgICAgICAgLy8gbm90IHNraXAgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHdpdGhvdXQgR1VJRCkuCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnMWYnCi0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICcyMDAwJ30sCi0gICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzIwMDAnfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgJ3Y4JzogewotICAgICAgICAgICAgICAgIGd1aWQ6ICc1ZScsCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnNWYnCi0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc1MDAwJ30sCi0gICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzYwMDAnfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIF07Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7Ci0gICAgdmFyIHAgPSBtLmdldFByb2Nlc3MoNDIpOwotICAgIHZhciBkID0gcC5tZW1vcnlEdW1wc1swXTsKLQotICAgIGFzc2VydC5lcXVhbChkLm1lbW9yeUFsbG9jYXRvckR1bXBzLmxlbmd0aCwgMik7Ci0KLSAgICB2YXIgb2lscGFuUm9vdCA9IGQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ29pbHBhbicpOwotICAgIHZhciB2OFJvb3QgPSBkLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd2OCcpOwotICAgIGFzc2VydC5pc0RlZmluZWQob2lscGFuUm9vdCk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZCh2OFJvb3QpOwotICAgIGFzc2VydC5pbmNsdWRlKGQubWVtb3J5QWxsb2NhdG9yRHVtcHMsIG9pbHBhblJvb3QpOwotICAgIGFzc2VydC5pbmNsdWRlKGQubWVtb3J5QWxsb2NhdG9yRHVtcHMsIHY4Um9vdCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwob2lscGFuUm9vdC5hdHRyaWJ1dGVzWydvYmplY3RzX2NvdW50J10udmFsdWUsIDQ3KTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuUm9vdC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDE2Mzg0KTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuUm9vdC5hdHRyaWJ1dGVzWydpbm5lcl9zaXplJ10udmFsdWUsIDQwOTYpOwotICAgIGFzc2VydC5lcXVhbChvaWxwYW5Sb290LmNoaWxkcmVuLmxlbmd0aCwgMik7Ci0KLSAgICB2YXIgb2lscGFuQnVja2V0MSA9IGQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoCi0gICAgICAgICdvaWxwYW4vaGVhcDIvYnVja2V0MScpOwotICAgIGFzc2VydC5pc0RlZmluZWQob2lscGFuQnVja2V0MSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuZnVsbE5hbWUsICdvaWxwYW4vaGVhcDIvYnVja2V0MScpOwotICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLm5hbWUsICdidWNrZXQxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCAzMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCA4MTkyKTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5hdHRyaWJ1dGVzWydpbm5lcl9zaXplJ10udmFsdWUsIDgxOTIpOwotICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLmNoaWxkcmVuLmxlbmd0aCwgMCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKG9pbHBhbkJ1Y2tldDEucGFyZW50KTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5wYXJlbnQuZnVsbE5hbWUsICdvaWxwYW4vaGVhcDInKTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5wYXJlbnQubmFtZSwgJ2hlYXAyJyk7Ci0gICAgYXNzZXJ0LmluY2x1ZGUob2lscGFuQnVja2V0MS5wYXJlbnQuY2hpbGRyZW4sIG9pbHBhbkJ1Y2tldDEpOwotCi0gICAgYXNzZXJ0LmlzRGVmaW5lZChvaWxwYW5CdWNrZXQxLnBhcmVudC5wYXJlbnQpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbChvaWxwYW5CdWNrZXQxLnBhcmVudC5wYXJlbnQsIG9pbHBhblJvb3QpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGQudG90YWxSZXNpZGVudEJ5dGVzLCAyNTYpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChkLm1vc3RSZWNlbnRWbVJlZ2lvbnMpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRNZW1vcnlEdW1wc19pbXBsaWNpdE1lbW9yeUFsbG9jYXRvckR1bXBzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ2EnLAotICAgICAgICBwaWQ6IDQyLAotICAgICAgICB0czogMTAsCi0gICAgICAgIGNhdDogJ3Rlc3QnLAotICAgICAgICB0aWQ6IDUzLAotICAgICAgICBwaDogJ3YnLAotICAgICAgICBpZDogJzB4MDAwMScsCi0gICAgICAgIGFyZ3M6IHsKLSAgICAgICAgICBkdW1wczogewotICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKLSAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMTAwJwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGFsbG9jYXRvcnM6IHsKLSAgICAgICAgICAgICAgJ29pbHBhbi9oZWFwMSc6IHsKLSAgICAgICAgICAgICAgICBndWlkOiAnOTk5JywKLSAgICAgICAgICAgICAgICBhdHRyczogewotICAgICAgICAgICAgICAgICAgb2JqZWN0c19jb3VudDogewotICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdvYmplY3RzJywgdmFsdWU6ICczZicKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICBpbm5lcl9zaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzMwMDAnfSwKLSAgICAgICAgICAgICAgICAgIHNpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnNDAwMCd9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAnb2lscGFuL2hlYXAyL2J1Y2tldDEnOiB7Ci0gICAgICAgICAgICAgICAgZ3VpZDogJzg4OCcsCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnMWYnCi0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICcyMDAwJ30sCi0gICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzIwMDAnfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgJ3Y4JzogewotICAgICAgICAgICAgICAgIGd1aWQ6ICc3NzcnLAotICAgICAgICAgICAgICAgIGF0dHJzOiB7Ci0gICAgICAgICAgICAgICAgICBvYmplY3RzX2NvdW50OiB7Ci0gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzY2FsYXInLCB1bml0czogJ29iamVjdHMnLCB2YWx1ZTogJzVmJwotICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgIGlubmVyX3NpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnNTAwMCd9LAotICAgICAgICAgICAgICAgICAgc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc2MDAwJ30KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOwotICAgIHZhciBwID0gbS5nZXRQcm9jZXNzKDQyKTsKLSAgICB2YXIgZCA9IHAubWVtb3J5RHVtcHNbMF07Ci0KLSAgICBhc3NlcnQuZXF1YWwoZC5tZW1vcnlBbGxvY2F0b3JEdW1wcy5sZW5ndGgsIDIpOwotCi0gICAgdmFyIG9pbHBhblJvb3QgPSBkLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdvaWxwYW4nKTsKLSAgICB2YXIgdjhSb290ID0gZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgndjgnKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKG9pbHBhblJvb3QpOwotICAgIGFzc2VydC5pc0RlZmluZWQodjhSb290KTsKLSAgICBhc3NlcnQuaW5jbHVkZShkLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBvaWxwYW5Sb290KTsKLSAgICBhc3NlcnQuaW5jbHVkZShkLm1lbW9yeUFsbG9jYXRvckR1bXBzLCB2OFJvb3QpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCA5NCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAyNDU3Nik7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuYXR0cmlidXRlc1snaW5uZXJfc2l6ZSddLnZhbHVlLCAyMDQ4MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuY2hpbGRyZW4ubGVuZ3RoLCAyKTsKLQotICAgIHZhciBvaWxwYW5CdWNrZXQxID0gZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKLSAgICAgICAgJ29pbHBhbi9oZWFwMi9idWNrZXQxJyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChvaWxwYW5CdWNrZXQxKTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5mdWxsTmFtZSwgJ29pbHBhbi9oZWFwMi9idWNrZXQxJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEubmFtZSwgJ2J1Y2tldDEnKTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5hdHRyaWJ1dGVzWydvYmplY3RzX2NvdW50J10udmFsdWUsIDMxKTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDgxOTIpOwotICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgODE5Mik7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQob2lscGFuQnVja2V0MS5wYXJlbnQpOwotICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLnBhcmVudC5mdWxsTmFtZSwgJ29pbHBhbi9oZWFwMicpOwotICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLnBhcmVudC5uYW1lLCAnaGVhcDInKTsKLSAgICBhc3NlcnQuaW5jbHVkZShvaWxwYW5CdWNrZXQxLnBhcmVudC5jaGlsZHJlbiwgb2lscGFuQnVja2V0MSk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKG9pbHBhbkJ1Y2tldDEucGFyZW50LnBhcmVudCk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9pbHBhbkJ1Y2tldDEucGFyZW50LnBhcmVudCwgb2lscGFuUm9vdCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZC50b3RhbFJlc2lkZW50Qnl0ZXMsIDI1Nik7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGQubW9zdFJlY2VudFZtUmVnaW9ucyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydE1lbW9yeUR1bXBzX2dsb2JhbE1lbW9yeUFsbG9jYXRvckR1bXBzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFsKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ2EnLAotICAgICAgICBwaWQ6IDQyLAotICAgICAgICB0czogMTAsCi0gICAgICAgIGNhdDogJ3Rlc3QnLAotICAgICAgICB0aWQ6IDUzLAotICAgICAgICBwaDogJ3YnLAotICAgICAgICBpZDogJzB4MDAwMScsCi0gICAgICAgIGFyZ3M6IHsKLSAgICAgICAgICBkdW1wczogewotICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKLSAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMTAwJwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGFsbG9jYXRvcnM6IHsKLSAgICAgICAgICAgICAgJ3RpbGVfbWFuYWdlci90aWxlMSc6IHsKLSAgICAgICAgICAgICAgICBndWlkOiAnMjEnLAotICAgICAgICAgICAgICAgIGF0dHJzOiB7Ci0gICAgICAgICAgICAgICAgICBvYmplY3RzX2NvdW50OiB7Ci0gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzY2FsYXInLCB1bml0czogJ29iamVjdHMnLCB2YWx1ZTogJzNmJwotICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgIGlubmVyX3NpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnMzAwMCd9LAotICAgICAgICAgICAgICAgICAgc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc0MDAwJ30sCi0gICAgICAgICAgICAgICAgICB3ZWF0aGVyOiB7dHlwZTogJ3N0cmluZycsIHVuaXRzOiAnJywgdmFsdWU6ICdyYWlueSd9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAnZ2xvYmFsL3NoYXJlZF9iaXRtYXBfbWFuYWdlci9iaXRtYXAyJzogewotICAgICAgICAgICAgICAgIGd1aWQ6ICc0MicsCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnMWYnCi0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICcyMDAwJ30sCi0gICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzIwMDAnfSwKLSAgICAgICAgICAgICAgICAgIHdlYXRoZXI6IHt0eXBlOiAnc3RyaW5nJywgdW5pdHM6ICcnLCB2YWx1ZTogJ3N1bm55J30KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOwotICAgIHZhciBwID0gbS5nZXRQcm9jZXNzKDQyKTsKLSAgICB2YXIgZ21kID0gbS5nbG9iYWxNZW1vcnlEdW1wc1swXTsKLSAgICB2YXIgcG1kID0gcC5tZW1vcnlEdW1wc1swXTsKLQotICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbWQudG90YWxSZXNpZGVudEJ5dGVzKTsKLSAgICBhc3NlcnQuZXF1YWwocG1kLnRvdGFsUmVzaWRlbnRCeXRlcywgMjU2KTsKLQotICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbWQubW9zdFJlY2VudFZtUmVnaW9ucyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBtZC5tb3N0UmVjZW50Vm1SZWdpb25zKTsKLQotICAgIGFzc2VydC5lcXVhbChnbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwocG1kLm1lbW9yeUFsbG9jYXRvckR1bXBzLmxlbmd0aCwgMSk7Ci0KLSAgICAvLyBHbG9iYWwgbWVtb3J5IGFsbG9jYXRvciBkdW1wcy4KLSAgICB2YXIgc2hhcmVkQml0bWFwTWFuYWdlciA9IGdtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKLSAgICAgICAgJ3NoYXJlZF9iaXRtYXBfbWFuYWdlcicpOwotICAgIGFzc2VydC5pc0RlZmluZWQoc2hhcmVkQml0bWFwTWFuYWdlcik7Ci0gICAgYXNzZXJ0LmluY2x1ZGUoZ21kLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBzaGFyZWRCaXRtYXBNYW5hZ2VyKTsKLQotICAgIGFzc2VydC5lcXVhbChzaGFyZWRCaXRtYXBNYW5hZ2VyLmF0dHJpYnV0ZXNbJ29iamVjdHNfY291bnQnXS52YWx1ZSwgMzEpOwotICAgIGFzc2VydC5lcXVhbChzaGFyZWRCaXRtYXBNYW5hZ2VyLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgODE5Mik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNoYXJlZEJpdG1hcE1hbmFnZXIuYXR0cmlidXRlc1snaW5uZXJfc2l6ZSddLnZhbHVlLCA4MTkyKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoc2hhcmVkQml0bWFwTWFuYWdlci5hdHRyaWJ1dGVzWyd3ZWF0aGVyJ10pOwotICAgIGFzc2VydC5sZW5ndGhPZihzaGFyZWRCaXRtYXBNYW5hZ2VyLmNoaWxkcmVuLCAxKTsKLQotICAgIHZhciBiaXRtYXAyID0gZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKAotICAgICAgICAnc2hhcmVkX2JpdG1hcF9tYW5hZ2VyL2JpdG1hcDInKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKGJpdG1hcDIpOwotICAgIGFzc2VydC5pbmNsdWRlKHNoYXJlZEJpdG1hcE1hbmFnZXIuY2hpbGRyZW4sIGJpdG1hcDIpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbChiaXRtYXAyLnBhcmVudCwgc2hhcmVkQml0bWFwTWFuYWdlcik7Ci0KLSAgICBhc3NlcnQuZXF1YWwoYml0bWFwMi5hdHRyaWJ1dGVzWydvYmplY3RzX2NvdW50J10udmFsdWUsIDMxKTsKLSAgICBhc3NlcnQuZXF1YWwoYml0bWFwMi5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDgxOTIpOwotICAgIGFzc2VydC5lcXVhbChiaXRtYXAyLmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgODE5Mik7Ci0gICAgYXNzZXJ0LmVxdWFsKGJpdG1hcDIuYXR0cmlidXRlc1snd2VhdGhlciddLnZhbHVlLCAnc3VubnknKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoYml0bWFwMi5jaGlsZHJlbiwgMCk7Ci0KLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0aWxlX21hbmFnZXInKSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAotICAgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3RpbGVfbWFuYWdlci90aWxlMScpKTsKLQotICAgIC8vIFByb2Nlc3MgbWVtb3J5IGFsbG9jYXRvciBkdW1wcy4KLSAgICB2YXIgdGlsZU1hbmFnZXJSb290ID0gcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0aWxlX21hbmFnZXInKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHRpbGVNYW5hZ2VyUm9vdCk7Ci0gICAgYXNzZXJ0LmluY2x1ZGUocG1kLm1lbW9yeUFsbG9jYXRvckR1bXBzLCB0aWxlTWFuYWdlclJvb3QpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0aWxlTWFuYWdlclJvb3QucGFyZW50KTsKLQotICAgIGFzc2VydC5lcXVhbCh0aWxlTWFuYWdlclJvb3QuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCA2Myk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRpbGVNYW5hZ2VyUm9vdC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDE2Mzg0KTsKLSAgICBhc3NlcnQuZXF1YWwodGlsZU1hbmFnZXJSb290LmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgMTIyODgpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0aWxlTWFuYWdlclJvb3QuYXR0cmlidXRlc1snd2VhdGhlciddKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YodGlsZU1hbmFnZXJSb290LmNoaWxkcmVuLCAxKTsKLQotICAgIHZhciB0aWxlMSA9IHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKLSAgICAgICAgJ3RpbGVfbWFuYWdlci90aWxlMScpOwotICAgIGFzc2VydC5pc0RlZmluZWQodGlsZTEpOwotICAgIGFzc2VydC5pbmNsdWRlKHRpbGVNYW5hZ2VyUm9vdC5jaGlsZHJlbiwgdGlsZTEpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0aWxlMS5wYXJlbnQsIHRpbGVNYW5hZ2VyUm9vdCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwodGlsZTEuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCA2Myk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRpbGUxLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgMTYzODQpOwotICAgIGFzc2VydC5lcXVhbCh0aWxlMS5hdHRyaWJ1dGVzWydpbm5lcl9zaXplJ10udmFsdWUsIDEyMjg4KTsKLSAgICBhc3NlcnQuZXF1YWwodGlsZTEuYXR0cmlidXRlc1snd2VhdGhlciddLnZhbHVlLCAncmFpbnknKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YodGlsZTEuY2hpbGRyZW4sIDApOwotCi0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAotICAgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3NoYXJlZF9iaXRtYXBfbWFuYWdlcicpKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoCi0gICAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnc2hhcmVkX2JpdG1hcF9tYW5hZ2VyL2JpdG1hcDInKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ltcG9ydE1lbW9yeUR1bXBzX21lbW9yeUFsbG9jYXRvckR1bXBFZGdlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdicm93c2VyJywKLSAgICAgICAgcGlkOiA0MiwKLSAgICAgICAgdHM6IDEwLAotICAgICAgICBjYXQ6ICd0ZXN0JywKLSAgICAgICAgdGlkOiA1MywKLSAgICAgICAgcGg6ICd2JywKLSAgICAgICAgaWQ6ICcweDAwMDEnLAotICAgICAgICBhcmdzOiB7Ci0gICAgICAgICAgZHVtcHM6IHsKLSAgICAgICAgICAgIHByb2Nlc3NfdG90YWxzOiB7Ci0gICAgICAgICAgICAgIHJlc2lkZW50X3NldF9ieXRlczogJzEwMCcKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBhbGxvY2F0b3JzOiB7Ci0gICAgICAgICAgICAgICdsb2NhbCc6IHsKLSAgICAgICAgICAgICAgICBndWlkOiAnMycsCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIG1vb2Q6IHt0eXBlOiAnc3RyaW5nJywgdW5pdHM6ICcnLCB2YWx1ZTogJ3ZlcnkgZ29vZCd9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAnZ2xvYmFsL3NoYXJlZCc6IHsKLSAgICAgICAgICAgICAgICBndWlkOiAnNycsCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIGNvbG9yOiB7dHlwZTogJ3N0cmluZycsIHVuaXRzOiAnJywgdmFsdWU6ICdibHVlJ30KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBlZGdlczogWwotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc291cmNlOiAnMycsCi0gICAgICAgICAgICAgICAgdGFyZ2V0OiAnNycsCi0gICAgICAgICAgICAgICAgdHlwZTogJ293bmVyc2hpcCcsCi0gICAgICAgICAgICAgICAgaW1wb3J0YW5jZTogMAotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAncmVuZGVyZXInLAotICAgICAgICBwaWQ6IDQzLAotICAgICAgICB0czogMTEsCi0gICAgICAgIGNhdDogJ3Rlc3QnLAotICAgICAgICB0aWQ6IDUzLAotICAgICAgICBwaDogJ3YnLAotICAgICAgICBpZDogJzB4MDAwMScsCi0gICAgICAgIGFyZ3M6IHsKLSAgICAgICAgICBkdW1wczogewotICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKLSAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMjAwJwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGFsbG9jYXRvcnM6IHsKLSAgICAgICAgICAgICAgJ2xvY2FsJzogewotICAgICAgICAgICAgICAgIGd1aWQ6ICc0JywKLSAgICAgICAgICAgICAgICBhdHRyczogewotICAgICAgICAgICAgICAgICAgc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2Z0JywgdmFsdWU6ICczJ30KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICdnbG9iYWwvc2hhcmVkJzogewotICAgICAgICAgICAgICAgIGd1aWQ6ICc3JywKLSAgICAgICAgICAgICAgICBhdHRyczogewotICAgICAgICAgICAgICAgICAgYXJlYToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ3NxIGZ0JywgdmFsdWU6ICc5J30KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBlZGdlczogWwotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc291cmNlOiAnNCcsCi0gICAgICAgICAgICAgICAgdGFyZ2V0OiAnNycsCi0gICAgICAgICAgICAgICAgdHlwZTogJ293bmVyc2hpcCcsCi0gICAgICAgICAgICAgICAgaW1wb3J0YW5jZTogMQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnZ3B1JywKLSAgICAgICAgcGlkOiA0NCwKLSAgICAgICAgdHM6IDEwLjUsCi0gICAgICAgIGNhdDogJ3Rlc3QnLAotICAgICAgICB0aWQ6IDUzLAotICAgICAgICBwaDogJ3YnLAotICAgICAgICBpZDogJzB4MDAwMScsCi0gICAgICAgIGFyZ3M6IHsKLSAgICAgICAgICBkdW1wczogewotICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKLSAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMzAwJwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGFsbG9jYXRvcnM6IHsKLSAgICAgICAgICAgICAgJ2xvY2FsMSc6IHsKLSAgICAgICAgICAgICAgICBndWlkOiAnNScsCi0gICAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAgICAgICAgIHN0YXRlOiB7dHlwZTogJ3N0cmluZycsIHVuaXRzOiAnJywgdmFsdWU6ICdPTid9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAnbG9jYWwyJzogewotICAgICAgICAgICAgICAgIGd1aWQ6ICc2JywKLSAgICAgICAgICAgICAgICBhdHRyczogewotICAgICAgICAgICAgICAgICAgdGVtcGVyYXR1cmU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdDJywgdmFsdWU6ICc2NCd9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZWRnZXM6IFsKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNvdXJjZTogJzUnLAotICAgICAgICAgICAgICAgIHRhcmdldDogJzcnLAotICAgICAgICAgICAgICAgIHR5cGU6ICdvd25lcnNoaXAnLAotICAgICAgICAgICAgICAgIGltcG9ydGFuY2U6IC0xCi0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzb3VyY2U6ICc2JywKLSAgICAgICAgICAgICAgICB0YXJnZXQ6ICc1JywKLSAgICAgICAgICAgICAgICB0eXBlOiAnb3duZXJzaGlwJywKLSAgICAgICAgICAgICAgICBpbXBvcnRhbmNlOiAxCi0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzb3VyY2U6ICc1JywKLSAgICAgICAgICAgICAgICB0YXJnZXQ6ICc0JywKLSAgICAgICAgICAgICAgICB0eXBlOiAncmV0ZW50aW9uJwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgXTsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7Ci0gICAgdmFyIGJyb3dzZXJQcm9jZXNzID0gbW9kZWwuZ2V0UHJvY2Vzcyg0Mik7Ci0gICAgdmFyIHJlbmRlcmVyUHJvY2VzcyA9IG1vZGVsLmdldFByb2Nlc3MoNDMpOwotICAgIHZhciBncHVQcm9jZXNzID0gbW9kZWwuZ2V0UHJvY2Vzcyg0NCk7Ci0KLSAgICBhc3NlcnQubGVuZ3RoT2YobW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHMsIDEpOwotICAgIGFzc2VydC5sZW5ndGhPZihicm93c2VyUHJvY2Vzcy5tZW1vcnlEdW1wcywgMSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHJlbmRlcmVyUHJvY2Vzcy5tZW1vcnlEdW1wcywgMSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGdwdVByb2Nlc3MubWVtb3J5RHVtcHMsIDEpOwotCi0gICAgdmFyIGdsb2JhbER1bXAgPSBtb2RlbC5nbG9iYWxNZW1vcnlEdW1wc1swXTsKLSAgICB2YXIgYnJvd3NlckR1bXAgPSBicm93c2VyUHJvY2Vzcy5tZW1vcnlEdW1wc1swXTsKLSAgICB2YXIgcmVuZGVyZXJEdW1wID0gcmVuZGVyZXJQcm9jZXNzLm1lbW9yeUR1bXBzWzBdOwotICAgIHZhciBncHVEdW1wID0gZ3B1UHJvY2Vzcy5tZW1vcnlEdW1wc1swXTsKLQotICAgIC8vIEdsb2JhbCBtZW1vcnkgYWxsb2NhdG9yIGR1bXAuCi0gICAgYXNzZXJ0Lmxlbmd0aE9mKGdsb2JhbER1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMsIDEpOwotCi0gICAgdmFyIGdsb2JhbER1bXBTaGFyZWQgPSBnbG9iYWxEdW1wLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKAotICAgICAgICAnc2hhcmVkJyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChnbG9iYWxEdW1wU2hhcmVkKTsKLSAgICBhc3NlcnQuaW5jbHVkZShnbG9iYWxEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBnbG9iYWxEdW1wU2hhcmVkKTsKLSAgICBhc3NlcnQuZXF1YWwoZ2xvYmFsRHVtcFNoYXJlZC5hdHRyaWJ1dGVzWydjb2xvciddLnZhbHVlLCAnYmx1ZScpOwotICAgIGFzc2VydC5lcXVhbChnbG9iYWxEdW1wU2hhcmVkLmF0dHJpYnV0ZXNbJ2FyZWEnXS52YWx1ZSwgOSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdsb2JhbER1bXBTaGFyZWQuYXR0cmlidXRlc1snbW9vZCddKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ2xvYmFsRHVtcFNoYXJlZC5hdHRyaWJ1dGVzWydzaXplJ10pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbG9iYWxEdW1wU2hhcmVkLmF0dHJpYnV0ZXNbJ3N0YXRlJ10pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbG9iYWxEdW1wU2hhcmVkLmF0dHJpYnV0ZXNbJ3RlbXBlcmF0dXJlJ10pOwotICAgIGFzc2VydC5sZW5ndGhPZihnbG9iYWxEdW1wU2hhcmVkLmNoaWxkcmVuLCAwKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ2xvYmFsRHVtcFNoYXJlZC5wYXJlbnQpOwotCi0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdsb2JhbER1bXBTaGFyZWQub3ducyk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGdsb2JhbER1bXBTaGFyZWQub3duZWRCeSwgMyk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGdsb2JhbER1bXBTaGFyZWQucmV0YWlucywgMCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGdsb2JhbER1bXBTaGFyZWQucmV0YWluZWRCeSwgMCk7Ci0KLSAgICAvLyBCcm93c2VyIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KLSAgICBhc3NlcnQubGVuZ3RoT2YoYnJvd3NlckR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMsIDEpOwotCi0gICAgdmFyIGJyb3dzZXJEdW1wTG9jYWwgPSBicm93c2VyRHVtcC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKLSAgICAgICAgJ2xvY2FsJyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChicm93c2VyRHVtcExvY2FsKTsKLSAgICBhc3NlcnQuaW5jbHVkZShicm93c2VyRHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgYnJvd3NlckR1bXBMb2NhbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGJyb3dzZXJEdW1wTG9jYWwuYXR0cmlidXRlc1snbW9vZCddLnZhbHVlLCAndmVyeSBnb29kJyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGJyb3dzZXJEdW1wTG9jYWwuYXR0cmlidXRlc1snY29sb3InXSk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGJyb3dzZXJEdW1wTG9jYWwuY2hpbGRyZW4sIDApOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChicm93c2VyRHVtcExvY2FsLnBhcmVudCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKGJyb3dzZXJEdW1wTG9jYWwub3ducyk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGJyb3dzZXJEdW1wTG9jYWwub3duZWRCeSwgMCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGJyb3dzZXJEdW1wTG9jYWwucmV0YWlucywgMCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKGJyb3dzZXJEdW1wTG9jYWwucmV0YWluZWRCeSwgMCk7Ci0KLSAgICB2YXIgYnJvd3NlckR1bXBMb2NhbE93bnNMaW5rID0gYnJvd3NlckR1bXBMb2NhbC5vd25zOwotICAgIGFzc2VydC5pbmNsdWRlKGdsb2JhbER1bXBTaGFyZWQub3duZWRCeSwgYnJvd3NlckR1bXBMb2NhbE93bnNMaW5rKTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnJvd3NlckR1bXBMb2NhbE93bnNMaW5rLnNvdXJjZSwgYnJvd3NlckR1bXBMb2NhbCk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJyb3dzZXJEdW1wTG9jYWxPd25zTGluay50YXJnZXQsIGdsb2JhbER1bXBTaGFyZWQpOwotICAgIGFzc2VydC5lcXVhbChicm93c2VyRHVtcExvY2FsT3duc0xpbmsuaW1wb3J0YW5jZSwgMCk7Ci0KLSAgICAvLyBSZW5kZXJlciBtZW1vcnkgYWxsb2NhdG9yIGR1bXAuCi0gICAgYXNzZXJ0Lmxlbmd0aE9mKHJlbmRlcmVyRHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgMSk7Ci0KLSAgICB2YXIgcmVuZGVyZXJEdW1wTG9jYWwgPSByZW5kZXJlckR1bXAuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoCi0gICAgICAgICdsb2NhbCcpOwotICAgIGFzc2VydC5pc0RlZmluZWQocmVuZGVyZXJEdW1wTG9jYWwpOwotICAgIGFzc2VydC5pbmNsdWRlKHJlbmRlcmVyRHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgcmVuZGVyZXJEdW1wTG9jYWwpOwotICAgIGFzc2VydC5lcXVhbChyZW5kZXJlckR1bXBMb2NhbC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDMpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChyZW5kZXJlckR1bXBMb2NhbC5hdHRyaWJ1dGVzWydhcmVhJ10pOwotICAgIGFzc2VydC5sZW5ndGhPZihyZW5kZXJlckR1bXBMb2NhbC5jaGlsZHJlbiwgMCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHJlbmRlcmVyRHVtcExvY2FsLnBhcmVudCk7Ci0KLSAgICBhc3NlcnQuaXNEZWZpbmVkKHJlbmRlcmVyRHVtcExvY2FsLm93bnMpOwotICAgIGFzc2VydC5sZW5ndGhPZihyZW5kZXJlckR1bXBMb2NhbC5vd25lZEJ5LCAwKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YocmVuZGVyZXJEdW1wTG9jYWwucmV0YWlucywgMCk7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHJlbmRlcmVyRHVtcExvY2FsLnJldGFpbmVkQnksIDEpOwotCi0gICAgdmFyIHJlbmRlcmVyRHVtcExvY2FsT3duc0xpbmsgPSByZW5kZXJlckR1bXBMb2NhbC5vd25zOwotICAgIGFzc2VydC5pbmNsdWRlKGdsb2JhbER1bXBTaGFyZWQub3duZWRCeSwgcmVuZGVyZXJEdW1wTG9jYWxPd25zTGluayk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlbmRlcmVyRHVtcExvY2FsT3duc0xpbmsuc291cmNlLCByZW5kZXJlckR1bXBMb2NhbCk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlbmRlcmVyRHVtcExvY2FsT3duc0xpbmsudGFyZ2V0LCBnbG9iYWxEdW1wU2hhcmVkKTsKLSAgICBhc3NlcnQuZXF1YWwocmVuZGVyZXJEdW1wTG9jYWxPd25zTGluay5pbXBvcnRhbmNlLCAxKTsKLQotICAgIC8vIEdQVSBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgotICAgIGFzc2VydC5sZW5ndGhPZihncHVEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLCAyKTsKLQotICAgIHZhciBncHVEdW1wTG9jYWwxID0gZ3B1RHVtcC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnbG9jYWwxJyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChncHVEdW1wTG9jYWwxKTsKLSAgICBhc3NlcnQuaW5jbHVkZShncHVEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBncHVEdW1wTG9jYWwxKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3B1RHVtcExvY2FsMS5hdHRyaWJ1dGVzWydzdGF0ZSddLnZhbHVlLCAnT04nKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ3B1RHVtcExvY2FsMS5hdHRyaWJ1dGVzWyd0ZW1wZXJhdHVyZSddKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMS5jaGlsZHJlbiwgMCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdwdUR1bXBMb2NhbDEucGFyZW50KTsKLQotICAgIGFzc2VydC5pc0RlZmluZWQoZ3B1RHVtcExvY2FsMS5vd25zKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMS5vd25lZEJ5LCAxKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMS5yZXRhaW5zLCAxKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMS5yZXRhaW5lZEJ5LCAwKTsKLQotICAgIHZhciBncHVEdW1wTG9jYWwxT3duc0xpbmsgPSBncHVEdW1wTG9jYWwxLm93bnM7Ci0gICAgYXNzZXJ0LmluY2x1ZGUoZ2xvYmFsRHVtcFNoYXJlZC5vd25lZEJ5LCBncHVEdW1wTG9jYWwxT3duc0xpbmspOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbChncHVEdW1wTG9jYWwxT3duc0xpbmsuc291cmNlLCBncHVEdW1wTG9jYWwxKTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3B1RHVtcExvY2FsMU93bnNMaW5rLnRhcmdldCwgZ2xvYmFsRHVtcFNoYXJlZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdwdUR1bXBMb2NhbDFPd25zTGluay5pbXBvcnRhbmNlLCAtMSk7Ci0KLSAgICB2YXIgZ3B1RHVtcExvY2FsMVJldGFpbnNMaW5rID0gZ3B1RHVtcExvY2FsMS5yZXRhaW5zWzBdOwotICAgIGFzc2VydC5pbmNsdWRlKHJlbmRlcmVyRHVtcExvY2FsLnJldGFpbmVkQnksIGdwdUR1bXBMb2NhbDFSZXRhaW5zTGluayk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdwdUR1bXBMb2NhbDFSZXRhaW5zTGluay5zb3VyY2UsIGdwdUR1bXBMb2NhbDEpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbChncHVEdW1wTG9jYWwxUmV0YWluc0xpbmsudGFyZ2V0LCByZW5kZXJlckR1bXBMb2NhbCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdwdUR1bXBMb2NhbDFSZXRhaW5zTGluay5pbXBvcnRhbmNlKTsKLQotICAgIHZhciBncHVEdW1wTG9jYWwyID0gZ3B1RHVtcC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnbG9jYWwyJyk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChncHVEdW1wTG9jYWwyKTsKLSAgICBhc3NlcnQuaW5jbHVkZShncHVEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBncHVEdW1wTG9jYWwyKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3B1RHVtcExvY2FsMi5hdHRyaWJ1dGVzWyd0ZW1wZXJhdHVyZSddLnZhbHVlLCAxMDApOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChncHVEdW1wTG9jYWwyLmF0dHJpYnV0ZXNbJ3N0YXRlJ10pOwotICAgIGFzc2VydC5sZW5ndGhPZihncHVEdW1wTG9jYWwyLmNoaWxkcmVuLCAwKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ3B1RHVtcExvY2FsMi5wYXJlbnQpOwotCi0gICAgYXNzZXJ0LmlzRGVmaW5lZChncHVEdW1wTG9jYWwyLm93bnMpOwotICAgIGFzc2VydC5sZW5ndGhPZihncHVEdW1wTG9jYWwyLm93bmVkQnksIDApOwotICAgIGFzc2VydC5sZW5ndGhPZihncHVEdW1wTG9jYWwyLnJldGFpbnMsIDApOwotICAgIGFzc2VydC5sZW5ndGhPZihncHVEdW1wTG9jYWwyLnJldGFpbmVkQnksIDApOwotCi0gICAgdmFyIGdwdUR1bXBMb2NhbDJPd25zTGluayA9IGdwdUR1bXBMb2NhbDIub3duczsKLSAgICBhc3NlcnQuaW5jbHVkZShncHVEdW1wTG9jYWwxLm93bmVkQnksIGdwdUR1bXBMb2NhbDJPd25zTGluayk7Ci0gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdwdUR1bXBMb2NhbDJPd25zTGluay5zb3VyY2UsIGdwdUR1bXBMb2NhbDIpOwotICAgIGFzc2VydC5zdHJpY3RFcXVhbChncHVEdW1wTG9jYWwyT3duc0xpbmsudGFyZ2V0LCBncHVEdW1wTG9jYWwxKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3B1RHVtcExvY2FsMk93bnNMaW5rLmltcG9ydGFuY2UsIDEpOwotICB9KTsKLQotICB0ZXN0KCdpbXBvcnRUaHJlYWRJbnN0YW50U2xpY2VXaXRoU3RhY2tGcmFtZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudERhdGEgPSB7Ci0gICAgICB0cmFjZUV2ZW50czogWwotICAgICAgICB7IG5hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDAsIGNhdDogJ2JheicsIHRpZDogMiwgcGg6ICdJJywgczogJ3QnLCBzZjogNyB9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICBdLAotICAgICAgc3RhY2tGcmFtZXM6IHsKLSAgICAgICAgJzEnOiB7Ci0gICAgICAgICAgY2F0ZWdvcnk6ICdtMScsCi0gICAgICAgICAgbmFtZTogJ21haW4nCi0gICAgICAgIH0sCi0gICAgICAgICc3JzogewotICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAotICAgICAgICAgIG5hbWU6ICdmcmFtZTcnLAotICAgICAgICAgIHBhcmVudDogJzEnCi0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9OwotCi0gICAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuSW1wb3J0T3B0aW9ucygpOwotICAgIG9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybyA9IGZhbHNlOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50RGF0YSwgb3B0aW9ucyk7Ci0KLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIHZhciB0ID0gcC50aHJlYWRzWzJdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKLQotICAgIHZhciBzMCA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHMwLnN0YXJ0U3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lNycpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChzMC5lbmRTdGFja0ZyYW1lKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaW1wb3J0RHVyYXRpb25FdmVudHNXaXRoU3RhY2tGcmFtZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZXZlbnREYXRhID0gewotICAgICAgdHJhY2VFdmVudHM6IFsKLSAgICAgICAgeyBuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAwLCBjYXQ6ICdiYXonLCB0aWQ6IDIsIHBoOiAnQicsIHNmOiA3IH0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAgIHsgbmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNSwgY2F0OiAnYmF6JywgdGlkOiAyLCBwaDogJ0UnLCBzZjogOCB9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICBdLAotICAgICAgc3RhY2tGcmFtZXM6IHsKLSAgICAgICAgJzEnOiB7Ci0gICAgICAgICAgY2F0ZWdvcnk6ICdtMScsCi0gICAgICAgICAgbmFtZTogJ21haW4nCi0gICAgICAgIH0sCi0gICAgICAgICc3JzogewotICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAotICAgICAgICAgIG5hbWU6ICdmcmFtZTcnLAotICAgICAgICAgIHBhcmVudDogJzEnCi0gICAgICAgIH0sCi0gICAgICAgICc4JzogewotICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAotICAgICAgICAgIG5hbWU6ICdmcmFtZTgnLAotICAgICAgICAgIHBhcmVudDogJzEnCi0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9OwotCi0gICAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuSW1wb3J0T3B0aW9ucygpOwotICAgIG9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybyA9IGZhbHNlOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50RGF0YSwgb3B0aW9ucyk7Ci0KLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIHZhciB0ID0gcC50aHJlYWRzWzJdOwotICAgIGFzc2VydC5pc0RlZmluZWQodCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKLQotICAgIHZhciBzMCA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHMwLnN0YXJ0U3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lNycpOwotICAgIGFzc2VydC5lcXVhbChzMC5lbmRTdGFja0ZyYW1lLnRpdGxlLCAnZnJhbWU4Jyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Fubm90YXRpb25QYXJzaW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHlDb21wb25lbnRzMSA9IFt7c3RhYmxlSWQ6ICc1Mi41MycsIHlQZXJjZW50T2Zmc2V0OiAwLjV9LAotICAgICAge3N0YWJsZUlkOiAnNTInLCB5UGVyY2VudE9mZnNldDogMC4zfV07Ci0gICAgdmFyIHlDb21wb25lbnRzMiA9IFt7c3RhYmxlSWQ6ICc1Mi41MycsIHlQZXJjZW50T2Zmc2V0OiAwLjd9LAotICAgICAge3N0YWJsZUlkOiAnNTInLCB5UGVyY2VudE9mZnNldDogMC40fV07Ci0gICAgdmFyIGxvY2F0aW9uMSA9IG5ldyB0ci5jLkxvY2F0aW9uKDAuMSwgeUNvbXBvbmVudHMxKTsKLSAgICB2YXIgbG9jYXRpb24yID0gbmV3IHRyLmMuTG9jYXRpb24oMC4yLCB5Q29tcG9uZW50czIpOwotCi0gICAgdmFyIGV2ZW50RGF0YSA9IHsgdHJhY2VFdmVudHM6IFsKLSAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfV0sCi0gICAgICB0cmFjZUFubm90YXRpb25zOiBbCi0gICAgICAgIHt0eXBlTmFtZTogJ3htYXJrZXInLCBhcmdzOiB7dGltZXN0YW1wOiAxMn19LAotICAgICAgICB7dHlwZU5hbWU6ICdyZWN0JywgYXJnczogewotICAgICAgICAgIHN0YXJ0OiBsb2NhdGlvbjEudG9EaWN0KCksIGVuZDogbG9jYXRpb24yLnRvRGljdCgpfX0sCi0gICAgICAgIHt0eXBlTmFtZTogJ2NvbW1lbnRfYm94JywgYXJnczoge3RleHQ6ICd0ZXN0JywKLSAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24xLnRvRGljdCgpfX0KLSAgICAgIF19OwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnREYXRhKTsKLSAgICB2YXIgYW5ub3RhdGlvbnMgPSBtLmdldEFsbEFubm90YXRpb25zKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGFubm90YXRpb25zLmxlbmd0aCwgMyk7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKGFubm90YXRpb25zWzBdIGluc3RhbmNlb2YgdHIubW9kZWwuWE1hcmtlckFubm90YXRpb24pOwotICAgIGFzc2VydC5lcXVhbChhbm5vdGF0aW9uc1swXS50aW1lc3RhbXAsIDEyKTsKLQotICAgIGFzc2VydC5pc1RydWUoYW5ub3RhdGlvbnNbMV0gaW5zdGFuY2VvZiB0ci5tb2RlbC5SZWN0QW5ub3RhdGlvbik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChhbm5vdGF0aW9uc1sxXS5zdGFydExvY2F0aW9uLCBsb2NhdGlvbjEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoYW5ub3RhdGlvbnNbMV0uZW5kTG9jYXRpb24sIGxvY2F0aW9uMik7Ci0KLSAgICBhc3NlcnQuaXNUcnVlKAotICAgICAgICBhbm5vdGF0aW9uc1syXSBpbnN0YW5jZW9mIHRyLm1vZGVsLkNvbW1lbnRCb3hBbm5vdGF0aW9uKTsKLSAgICBhc3NlcnQuZXF1YWwoYW5ub3RhdGlvbnNbMl0udGV4dCwgJ3Rlc3QnKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGFubm90YXRpb25zWzJdLmxvY2F0aW9uLCBsb2NhdGlvbjEpOwotICB9KTsKLQotICAvLyBUT0RPKG5kdWNhKTogb25lIHNsaWNlLCB0d28gdGhyZWFkcwotICAvLyBUT0RPKG5kdWNhKTogb25lIHNsaWNlLCB0d28gcGlkcwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvdjgvdjhfbG9nX2ltcG9ydGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC92OF9sb2dfaW1wb3J0ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE1N2I2MC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC92OF9sb2dfaW1wb3J0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3Y4L2xvZ19yZWFkZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci92OC9jb2RlbWFwLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9pbXBvcnRlci9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NsaWNlLmh0bWwiPgotCi08c2NyaXB0PgotCi0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBWOExvZ0ltcG9ydGVyIGltcG9ydHMgdjgubG9nIGZpbGVzIGludG8gdGhlIHByb3ZpZGVkIG1vZGVsLgotICovCi10ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci52OCcsIGZ1bmN0aW9uKCkgewotICB2YXIgSW1wb3J0ZXIgPSB0ci5pbXBvcnRlci5JbXBvcnRlcjsKLQotICBmdW5jdGlvbiBWOExvZ0ltcG9ydGVyKG1vZGVsLCBldmVudERhdGEpIHsKLSAgICB0aGlzLmltcG9ydFByaW9yaXR5ID0gMzsKLSAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOwotCi0gICAgdGhpcy5sb2dEYXRhXyA9IGV2ZW50RGF0YTsKLQotICAgIHRoaXMuY29kZV9tYXBfID0gbmV3IHRyLmUuaW1wb3J0ZXIudjguQ29kZU1hcCgpOwotICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnY4X3RocmVhZF8gPSB1bmRlZmluZWQ7Ci0KLSAgICB0aGlzLnJvb3Rfc3RhY2tfZnJhbWVfID0gbmV3IHRyLm1vZGVsLlN0YWNrRnJhbWUoCi0gICAgICAgIHVuZGVmaW5lZCwgJ3Y4LXJvb3Qtc3RhY2stZnJhbWUnLAotICAgICAgICAndjgtcm9vdC1zdGFjay1mcmFtZScsICd2OC1yb290LXN0YWNrLWZyYW1lJywgMCk7Ci0KLSAgICAvLyBXZSByZWNvbnN0cnVjdCB0aGUgc3RhY2sgdGltZWxpbmUgZnJvbSB0aWNrcy4KLSAgICB0aGlzLnY4X3N0YWNrX3RpbWVsaW5lXyA9IG5ldyBBcnJheSgpOwotICB9Ci0KLSAgdmFyIGtWOEJpbmFyeVN1ZmZpeGVzID0gWycvZDgnLCAnL2xpYnY4LnNvJ107Ci0KLQotICB2YXIgVGltZXJFdmVudERlZmF1bHRBcmdzID0gewotICAgICdWOC5FeGVjdXRlJzogeyBwYXVzZTogZmFsc2UsIG5vX2V4ZWN1dGlvbjogZmFsc2V9LAotICAgICdWOC5FeHRlcm5hbCc6IHsgcGF1c2U6IGZhbHNlLCBub19leGVjdXRpb246IHRydWV9LAotICAgICdWOC5Db21waWxlRnVsbENvZGUnOiB7IHBhdXNlOiB0cnVlLCBub19leGVjdXRpb246IHRydWV9LAotICAgICdWOC5SZWNvbXBpbGVTeW5jaHJvbm91cyc6IHsgcGF1c2U6IHRydWUsIG5vX2V4ZWN1dGlvbjogdHJ1ZX0sCi0gICAgJ1Y4LlJlY29tcGlsZVBhcmFsbGVsJzogeyBwYXVzZTogZmFsc2UsIG5vX2V4ZWN1dGlvbjogZmFsc2V9LAotICAgICdWOC5Db21waWxlRXZhbCc6IHsgcGF1c2U6IHRydWUsIG5vX2V4ZWN1dGlvbjogdHJ1ZX0sCi0gICAgJ1Y4LlBhcnNlJzogeyBwYXVzZTogdHJ1ZSwgbm9fZXhlY3V0aW9uOiB0cnVlfSwKLSAgICAnVjguUHJlUGFyc2UnOiB7IHBhdXNlOiB0cnVlLCBub19leGVjdXRpb246IHRydWV9LAotICAgICdWOC5QYXJzZUxhenknOiB7IHBhdXNlOiB0cnVlLCBub19leGVjdXRpb246IHRydWV9LAotICAgICdWOC5HQ1NjYXZlbmdlcic6IHsgcGF1c2U6IHRydWUsIG5vX2V4ZWN1dGlvbjogdHJ1ZX0sCi0gICAgJ1Y4LkdDQ29tcGFjdG9yJzogeyBwYXVzZTogdHJ1ZSwgbm9fZXhlY3V0aW9uOiB0cnVlfSwKLSAgICAnVjguR0NDb250ZXh0JzogeyBwYXVzZTogdHJ1ZSwgbm9fZXhlY3V0aW9uOiB0cnVlfQotICB9OwotCi0gIC8qKgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIG9iaiBpcyBhIFY4IGxvZyBzdHJpbmcuCi0gICAqLwotICBWOExvZ0ltcG9ydGVyLmNhbkltcG9ydCA9IGZ1bmN0aW9uKGV2ZW50RGF0YSkgewotICAgIGlmICh0eXBlb2YoZXZlbnREYXRhKSAhPT0gJ3N0cmluZycgJiYgIShldmVudERhdGEgaW5zdGFuY2VvZiBTdHJpbmcpKQotICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGV2ZW50RGF0YS5zdWJzdHJpbmcoMCwgMTEpID09ICd2OC12ZXJzaW9uLCcgfHwKLSAgICAgICAgICAgZXZlbnREYXRhLnN1YnN0cmluZygwLCAxMikgPT0gJ3RpbWVyLWV2ZW50LCcgfHwKLSAgICAgICAgICAgZXZlbnREYXRhLnN1YnN0cmluZygwLCA1KSA9PSAndGljaywnIHx8Ci0gICAgICAgICAgIGV2ZW50RGF0YS5zdWJzdHJpbmcoMCwgMTUpID09ICdzaGFyZWQtbGlicmFyeSwnIHx8Ci0gICAgICAgICAgIGV2ZW50RGF0YS5zdWJzdHJpbmcoMCwgOSkgPT0gJ3Byb2ZpbGVyLCcgfHwKLSAgICAgICAgICAgZXZlbnREYXRhLnN1YnN0cmluZygwLCAxNCkgPT0gJ2NvZGUtY3JlYXRpb24sJzsKLSAgfTsKLQotICBWOExvZ0ltcG9ydGVyLnByb3RvdHlwZSA9IHsKLQotICAgIF9fcHJvdG9fXzogSW1wb3J0ZXIucHJvdG90eXBlLAotCi0gICAgcHJvY2Vzc1RpbWVyRXZlbnRfOiBmdW5jdGlvbihuYW1lLCBzdGFydCwgbGVuZ3RoKSB7Ci0gICAgICB2YXIgYXJncyA9IFRpbWVyRXZlbnREZWZhdWx0QXJnc1tuYW1lXTsKLSAgICAgIGlmIChhcmdzID09PSB1bmRlZmluZWQpIHJldHVybjsKLSAgICAgIHN0YXJ0IC89IDEwMDA7ICAvLyBDb252ZXJ0IHRvIG1pbGxpc2Vjb25kcy4KLSAgICAgIGxlbmd0aCAvPSAxMDAwOwotICAgICAgdmFyIGNvbG9ySWQgPSB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhuYW1lKTsKLSAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgndjgnLCBuYW1lLCBjb2xvcklkLCBzdGFydCwKLSAgICAgICAgICBhcmdzLCBsZW5ndGgpOwotICAgICAgdGhpcy52OF90aW1lcl90aHJlYWRfLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKLSAgICB9LAotCi0gICAgcHJvY2Vzc1RpbWVyRXZlbnRTdGFydF86IGZ1bmN0aW9uKG5hbWUsIHN0YXJ0KSB7Ci0gICAgICB2YXIgYXJncyA9IFRpbWVyRXZlbnREZWZhdWx0QXJnc1tuYW1lXTsKLSAgICAgIGlmIChhcmdzID09PSB1bmRlZmluZWQpIHJldHVybjsKLSAgICAgIHN0YXJ0IC89IDEwMDA7ICAvLyBDb252ZXJ0IHRvIG1pbGxpc2Vjb25kcy4KLSAgICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXy5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ3Y4JywgbmFtZSwgc3RhcnQsIGFyZ3MpOwotICAgIH0sCi0KLSAgICBwcm9jZXNzVGltZXJFdmVudEVuZF86IGZ1bmN0aW9uKG5hbWUsIGVuZCkgewotICAgICAgZW5kIC89IDEwMDA7ICAvLyBDb252ZXJ0IHRvIG1pbGxpc2Vjb25kcy4KLSAgICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXy5zbGljZUdyb3VwLmVuZFNsaWNlKGVuZCk7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NDb2RlQ3JlYXRlRXZlbnRfOiBmdW5jdGlvbih0eXBlLCBraW5kLCBhZGRyZXNzLCBzaXplLCBuYW1lKSB7Ci0gICAgICB2YXIgY29kZV9lbnRyeSA9IG5ldyB0ci5lLmltcG9ydGVyLnY4LkNvZGVNYXAuQ29kZUVudHJ5KHNpemUsIG5hbWUpOwotICAgICAgY29kZV9lbnRyeS5raW5kID0ga2luZDsKLSAgICAgIHRoaXMuY29kZV9tYXBfLmFkZENvZGUoYWRkcmVzcywgY29kZV9lbnRyeSk7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NDb2RlTW92ZUV2ZW50XzogZnVuY3Rpb24oZnJvbSwgdG8pIHsKLSAgICAgIHRoaXMuY29kZV9tYXBfLm1vdmVDb2RlKGZyb20sIHRvKTsKLSAgICB9LAotCi0gICAgcHJvY2Vzc0NvZGVEZWxldGVFdmVudF86IGZ1bmN0aW9uKGFkZHJlc3MpIHsKLSAgICAgIHRoaXMuY29kZV9tYXBfLmRlbGV0ZUNvZGUoYWRkcmVzcyk7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NTaGFyZWRMaWJyYXJ5XzogZnVuY3Rpb24obmFtZSwgc3RhcnQsIGVuZCkgewotICAgICAgdmFyIGNvZGVfZW50cnkgPSBuZXcgdHIuZS5pbXBvcnRlci52OC5Db2RlTWFwLkNvZGVFbnRyeSgKLSAgICAgICAgICBlbmQgLSBzdGFydCwgbmFtZSk7Ci0gICAgICBjb2RlX2VudHJ5LmtpbmQgPSAtMzsgIC8vIEV4dGVybmFsIGNvZGUga2luZC4KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga1Y4QmluYXJ5U3VmZml4ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHN1ZmZpeCA9IGtWOEJpbmFyeVN1ZmZpeGVzW2ldOwotICAgICAgICBpZiAobmFtZS5pbmRleE9mKHN1ZmZpeCwgbmFtZS5sZW5ndGggLSBzdWZmaXgubGVuZ3RoKSA+PSAwKSB7Ci0gICAgICAgICAgY29kZV9lbnRyeS5raW5kID0gLTE7ICAvLyBWOCBydW50aW1lIGNvZGUga2luZC4KLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgdGhpcy5jb2RlX21hcF8uYWRkTGlicmFyeShzdGFydCwgY29kZV9lbnRyeSk7Ci0gICAgfSwKLQotICAgIGZpbmRDb2RlS2luZF86IGZ1bmN0aW9uKGtpbmQpIHsKLSAgICAgIGZvciAobmFtZSBpbiBDb2RlS2luZHMpIHsKLSAgICAgICAgaWYgKENvZGVLaW5kc1tuYW1lXS5raW5kcy5pbmRleE9mKGtpbmQpID49IDApIHsKLSAgICAgICAgICByZXR1cm4gQ29kZUtpbmRzW25hbWVdOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIHByb2Nlc3NUaWNrRXZlbnRfOiBmdW5jdGlvbihwYywgc3RhcnQsIHVudXNlZF94LCB1bnVzZWRfeSwgdm1zdGF0ZSwgc3RhY2spIHsKLSAgICAgIHN0YXJ0IC89IDEwMDA7Ci0KLSAgICAgIGZ1bmN0aW9uIGZpbmRDaGlsZFdpdGhFbnRyeUlEKHN0YWNrRnJhbWUsIGVudHJ5SUQpIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFja0ZyYW1lLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKHN0YWNrRnJhbWUuY2hpbGRyZW5baV0uZW50cnlJRCA9PSBlbnRyeUlEKQotICAgICAgICAgICAgcmV0dXJuIHN0YWNrRnJhbWUuY2hpbGRyZW5baV07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIH0KLQotICAgICAgdmFyIGxhc3RTdGFja0ZyYW1lOwotICAgICAgaWYgKHN0YWNrICYmIHN0YWNrLmxlbmd0aCkgewotCi0gICAgICAgIGxhc3RTdGFja0ZyYW1lID0gdGhpcy5yb290X3N0YWNrX2ZyYW1lXzsKLSAgICAgICAgLy8gdjggbG9nIHN0YWNrcyBhcmUgaW52ZXJ0ZWQsIGxlYWYgZmlyc3QgYW5kIHRoZSByb290IGF0IHRoZSBlbmQuCi0gICAgICAgIHN0YWNrID0gc3RhY2sucmV2ZXJzZSgpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKCFzdGFja1tpXSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuY29kZV9tYXBfLmZpbmRFbnRyeShzdGFja1tpXSk7Ci0KLSAgICAgICAgICB2YXIgZW50cnlJRCA9IGVudHJ5ID8gZW50cnkuaWQgOiAnVW5rbm93bic7Ci0gICAgICAgICAgdmFyIGNoaWxkRnJhbWUgPSBmaW5kQ2hpbGRXaXRoRW50cnlJRChsYXN0U3RhY2tGcmFtZSwgZW50cnlJRCk7Ci0gICAgICAgICAgaWYgKGNoaWxkRnJhbWUgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgdmFyIGVudHJ5TmFtZSA9IGVudHJ5ID8gZW50cnkubmFtZSA6ICdVbmtub3duJzsKLSAgICAgICAgICAgIGxhc3RTdGFja0ZyYW1lID0gbmV3IHRyLm1vZGVsLlN0YWNrRnJhbWUoCi0gICAgICAgICAgICAgICAgbGFzdFN0YWNrRnJhbWUsICd2OHNmLScgKyB0ci5iLkdVSUQuYWxsb2NhdGUoKSwKLSAgICAgICAgICAgICAgICAndjgnLCBlbnRyeU5hbWUsCi0gICAgICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZW50cnlOYW1lKSk7Ci0gICAgICAgICAgICBsYXN0U3RhY2tGcmFtZS5lbnRyeUlEID0gZW50cnlJRDsKLSAgICAgICAgICAgIHRoaXMubW9kZWxfLmFkZFN0YWNrRnJhbWUobGFzdFN0YWNrRnJhbWUpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsYXN0U3RhY2tGcmFtZSA9IGNoaWxkRnJhbWU7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICB2YXIgcGNFbnRyeSA9IHRoaXMuY29kZV9tYXBfLmZpbmRFbnRyeShwYyk7Ci0gICAgICAgIHZhciBwY0VudHJ5SUQgPSAndjhwYy0nICsgKHBjRW50cnkgPyBwY0VudHJ5LmlkIDogJ1Vua25vd24nKTsKLSAgICAgICAgaWYgKHRoaXMubW9kZWxfLnN0YWNrRnJhbWVzW3BjRW50cnlJRF0gPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHZhciBwY0VudHJ5TmFtZSA9IHBjRW50cnkgPyBwY0VudHJ5Lm5hbWUgOiAnVW5rbm93bic7Ci0gICAgICAgICAgbGFzdFN0YWNrRnJhbWUgPSBuZXcgdHIubW9kZWwuU3RhY2tGcmFtZSgKLSAgICAgICAgICAgICAgdW5kZWZpbmVkLCBwY0VudHJ5SUQsCi0gICAgICAgICAgICAgICd2OCcsIHBjRW50cnlOYW1lLAotICAgICAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhwY0VudHJ5TmFtZSkpOwotICAgICAgICAgIHRoaXMubW9kZWxfLmFkZFN0YWNrRnJhbWUobGFzdFN0YWNrRnJhbWUpOwotICAgICAgICB9Ci0gICAgICAgIGxhc3RTdGFja0ZyYW1lID0gdGhpcy5tb2RlbF8uc3RhY2tGcmFtZXNbcGNFbnRyeUlEXTsKLSAgICAgIH0KLQotICAgICAgdmFyIHNhbXBsZSA9IG5ldyB0ci5tb2RlbC5TYW1wbGUoCi0gICAgICAgICAgdW5kZWZpbmVkLCB0aGlzLnY4X3RocmVhZF8sICdWOCBQQycsCi0gICAgICAgICAgc3RhcnQsIGxhc3RTdGFja0ZyYW1lLCAxKTsKLSAgICAgIHRoaXMubW9kZWxfLnNhbXBsZXMucHVzaChzYW1wbGUpOwotICAgIH0sCi0KLSAgICBwcm9jZXNzRGlzdG9ydGlvbl86IGZ1bmN0aW9uKGRpc3RvcnRpb25faW5fcGljb3NlY29uZHMpIHsKLSAgICAgIGRpc3RvcnRpb25fcGVyX2VudHJ5ID0gZGlzdG9ydGlvbl9pbl9waWNvc2Vjb25kcyAvIDEwMDAwMDA7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NQbG90UmFuZ2VfOiBmdW5jdGlvbihzdGFydCwgZW5kKSB7Ci0gICAgICB4cmFuZ2Vfc3RhcnRfb3ZlcnJpZGUgPSBzdGFydDsKLSAgICAgIHhyYW5nZV9lbmRfb3ZlcnJpZGUgPSBlbmQ7Ci0gICAgfSwKLQotICAgIHByb2Nlc3NWOFZlcnNpb25fOiBmdW5jdGlvbihtYWpvciwgbWlub3IsIGJ1aWxkLCBwYXRjaCwgY2FuZGlkYXRlKSB7Ci0gICAgICAvLyBkbyBub3RoaW5nLgotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBXYWxrcyB0aHJvdWdoIHRoZSBldmVudHNfIGxpc3QgYW5kIG91dHB1dHMgdGhlIHN0cnVjdHVyZXMgZGlzY292ZXJlZCB0bwotICAgICAqIG1vZGVsXy4KLSAgICAgKi8KLSAgICBpbXBvcnRFdmVudHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGxvZ3JlYWRlciA9IG5ldyB0ci5lLmltcG9ydGVyLnY4LkxvZ1JlYWRlcigKLSAgICAgICAgICB7ICd0aW1lci1ldmVudCcgOiB7Ci0gICAgICAgICAgICBwYXJzZXJzOiBbbnVsbCwgcGFyc2VJbnQsIHBhcnNlSW50XSwKLSAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzVGltZXJFdmVudF8uYmluZCh0aGlzKQotICAgICAgICAgIH0sCi0gICAgICAgICAgJ3NoYXJlZC1saWJyYXJ5JzogewotICAgICAgICAgICAgcGFyc2VyczogW251bGwsIHBhcnNlSW50LCBwYXJzZUludF0sCi0gICAgICAgICAgICBwcm9jZXNzb3I6IHRoaXMucHJvY2Vzc1NoYXJlZExpYnJhcnlfLmJpbmQodGhpcykKLSAgICAgICAgICB9LAotICAgICAgICAgICd0aW1lci1ldmVudC1zdGFydCcgOiB7Ci0gICAgICAgICAgICBwYXJzZXJzOiBbbnVsbCwgcGFyc2VJbnRdLAotICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NUaW1lckV2ZW50U3RhcnRfLmJpbmQodGhpcykKLSAgICAgICAgICB9LAotICAgICAgICAgICd0aW1lci1ldmVudC1lbmQnIDogewotICAgICAgICAgICAgcGFyc2VyczogW251bGwsIHBhcnNlSW50XSwKLSAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzVGltZXJFdmVudEVuZF8uYmluZCh0aGlzKQotICAgICAgICAgIH0sCi0gICAgICAgICAgJ2NvZGUtY3JlYXRpb24nOiB7Ci0gICAgICAgICAgICBwYXJzZXJzOiBbbnVsbCwgcGFyc2VJbnQsIHBhcnNlSW50LCBwYXJzZUludCwgbnVsbF0sCi0gICAgICAgICAgICBwcm9jZXNzb3I6IHRoaXMucHJvY2Vzc0NvZGVDcmVhdGVFdmVudF8uYmluZCh0aGlzKQotICAgICAgICAgIH0sCi0gICAgICAgICAgJ2NvZGUtbW92ZSc6IHsKLSAgICAgICAgICAgIHBhcnNlcnM6IFtwYXJzZUludCwgcGFyc2VJbnRdLAotICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NDb2RlTW92ZUV2ZW50Xy5iaW5kKHRoaXMpCi0gICAgICAgICAgfSwKLSAgICAgICAgICAnY29kZS1kZWxldGUnOiB7Ci0gICAgICAgICAgICBwYXJzZXJzOiBbcGFyc2VJbnRdLAotICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NDb2RlRGVsZXRlRXZlbnRfLmJpbmQodGhpcykKLSAgICAgICAgICB9LAotICAgICAgICAgICd0aWNrJzogewotICAgICAgICAgICAgcGFyc2VyczogW3BhcnNlSW50LCBwYXJzZUludCwgbnVsbCwgbnVsbCwgcGFyc2VJbnQsICd2YXItYXJncyddLAotICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NUaWNrRXZlbnRfLmJpbmQodGhpcykKLSAgICAgICAgICB9LAotICAgICAgICAgICdkaXN0b3J0aW9uJzogewotICAgICAgICAgICAgcGFyc2VyczogW3BhcnNlSW50XSwKLSAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzRGlzdG9ydGlvbl8uYmluZCh0aGlzKQotICAgICAgICAgIH0sCi0gICAgICAgICAgJ3Bsb3QtcmFuZ2UnOiB7Ci0gICAgICAgICAgICBwYXJzZXJzOiBbcGFyc2VJbnQsIHBhcnNlSW50XSwKLSAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzUGxvdFJhbmdlXy5iaW5kKHRoaXMpCi0gICAgICAgICAgfSwKLSAgICAgICAgICAndjgtdmVyc2lvbic6IHsKLSAgICAgICAgICAgIHBhcnNlcnM6IFtwYXJzZUludCwgcGFyc2VJbnQsIHBhcnNlSW50LCBwYXJzZUludCwgcGFyc2VJbnRdLAotICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NWOFZlcnNpb25fLmJpbmQodGhpcykKLSAgICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXyA9Ci0gICAgICAgICAgdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKC0zMikuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0gICAgICB0aGlzLnY4X3RpbWVyX3RocmVhZF8ubmFtZSA9ICdWOCBUaW1lcnMnOwotICAgICAgdGhpcy52OF90aHJlYWRfID0KLSAgICAgICAgICB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoLTMyKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICAgIHRoaXMudjhfdGhyZWFkXy5uYW1lID0gJ1Y4JzsKLQotICAgICAgdmFyIGxpbmVzID0gdGhpcy5sb2dEYXRhXy5zcGxpdCgnXG4nKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgbG9ncmVhZGVyLnByb2Nlc3NMb2dMaW5lKGxpbmVzW2ldKTsKLSAgICAgIH0KLQotICAgICAgLy8gVGhlIHByb2Nlc3Npbmcgb2Ygc2FtcGxlcyBhZGRzIGFsbCB0aGUgcm9vdCBzdGFjayBmcmFtZSB0bwotICAgICAgLy8gdGhpcy5yb290X3N0YWNrX2ZyYW1lXy4gQnV0LCB3ZSBkb24ndCB3YW50IHRoYXQgc3RhY2sgZnJhbWUgaW4gdGhlIHJlYWwKLSAgICAgIC8vIG1vZGVsLiBTbyBnZXQgcmlkIG9mIGl0LgotICAgICAgdGhpcy5yb290X3N0YWNrX2ZyYW1lXy5yZW1vdmVBbGxDaGlsZHJlbigpOwotCi0gICAgICBmdW5jdGlvbiBhZGRTbGljZXMoc2xpY2VzLCB0aHJlYWQpIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgZHVyYXRpb24gPSBzbGljZXNbaV0uZW5kIC0gc2xpY2VzW2ldLnN0YXJ0OwotICAgICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgndjgnLCBzbGljZXNbaV0ubmFtZSwKLSAgICAgICAgICAgICAgdHIuYi51aS5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoc2xpY2VzW2ldLm5hbWUpLAotICAgICAgICAgICAgICBzbGljZXNbaV0uc3RhcnQsIHt9LCBkdXJhdGlvbik7Ci0gICAgICAgICAgdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKLSAgICAgICAgICBhZGRTbGljZXMoc2xpY2VzW2ldLmNoaWxkcmVuLCB0aHJlYWQpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICBhZGRTbGljZXModGhpcy52OF9zdGFja190aW1lbGluZV8sIHRoaXMudjhfdGhyZWFkXyk7Ci0gICAgfQotICB9OwotCi0gIHRyLmltcG9ydGVyLkltcG9ydGVyLnJlZ2lzdGVyKFY4TG9nSW1wb3J0ZXIpOwotCi0gIHJldHVybiB7Ci0gICAgVjhMb2dJbXBvcnRlcjogVjhMb2dJbXBvcnRlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3Y4L3Y4X2xvZ19pbXBvcnRlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC92OF9sb2dfaW1wb3J0ZXJfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDIyZTI3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3Y4L3Y4X2xvZ19pbXBvcnRlcl90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdjgvdjhfbG9nX2ltcG9ydGVyLmh0bWwiPgotCi08c2NyaXB0PgotCi0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgVjhMb2dJbXBvcnRlciA9IHRyLmUuaW1wb3J0ZXIudjguVjhMb2dJbXBvcnRlcjsKLQotICB0ZXN0KCd0aWNrRXZlbnRJblNoYXJlZExpYnJhcnknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnc2hhcmVkLWxpYnJhcnksIi91c3IvbGliL2xpYmMrKy4xLmR5bGliIiwweDk5ZDhhYWUwLDB4OTlkY2U3MjknLAotICAgICAgJ3RpY2ssMHg5OWQ4YWFlNCwxMjE1OCwwLDB4MCw1J107Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbLTMyXTsKLSAgICB2YXIgdCA9IHAuZmluZEFsbFRocmVhZHNOYW1lZCgnVjgnKVswXTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc1swXS50aXRsZSwgJ1Y4IFBDJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc1swXS5zdGFydCwgMTIxNTggLyAxMDAwKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzBdLmxlYWZTdGFja0ZyYW1lLnRpdGxlLCAnL3Vzci9saWIvbGliYysrLjEuZHlsaWInKTsKLSAgfSk7Ci0KLSAgdGVzdCgndGlja0V2ZW50SW5HZW5lcmF0ZWRDb2RlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ3NoYXJlZC1saWJyYXJ5LCIvdXNyL2xpYi9saWJjKysuMS5keWxpYiIsMHg5OWQ4YWFlMCwweDk5ZGNlNzI5JywKLSAgICAgICdjb2RlLWNyZWF0aW9uLFN0dWIsMiwweDViNjBjZTgwLDEyNTksIlN0cmluZ0FkZFN0dWIiJywKLSAgICAgICd0aWNrLDB4NWI2MGNlODQsMTIxNTgsMCwweDAsNSddOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07Ci0gICAgdmFyIHRocmVhZHMgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4Jyk7Ci0gICAgdmFyIHQgPSB0aHJlYWRzWzBdOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzBdLmxlYWZTdGFja0ZyYW1lLnRpdGxlLCAnU3RyaW5nQWRkU3R1YicpOwotICB9KTsKLQotICB0ZXN0KCd0aWNrRXZlbnRJblVrbm93bkNvZGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnc2hhcmVkLWxpYnJhcnksIi91c3IvbGliL2xpYmMrKy4xLmR5bGliIiwweDk5ZDhhYWUwLDB4OTlkY2U3MjknLAotICAgICAgJ2NvZGUtY3JlYXRpb24sU3R1YiwyLDB4NWI2MGNlODAsMTI1OSwiU3RyaW5nQWRkU3R1YiInLAotICAgICAgJ3RpY2ssMHg0LDB4YmZmMDJmMDgsMTIxNTgsMCwweDAsNSddOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07Ci0gICAgdmFyIHRocmVhZHMgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4Jyk7Ci0gICAgdmFyIHQgPSB0aHJlYWRzWzBdOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzBdLmxlYWZTdGFja0ZyYW1lLnRpdGxlLCAnVW5rbm93bicpOwotICB9KTsKLQotICB0ZXN0KCd0aWNrRXZlbnRXaXRoU3RhY2snLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbCi0gICAgICAnY29kZS1jcmVhdGlvbixMYXp5Q29tcGlsZSwwLDB4MjkwNWQwYzAsMTgwMCwiSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOSIsMHg1NmIxOTEyNCwnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjawotICAgICAgJ3RpY2ssMHg3ZmM2ZmUzNCw1Mjg2NzQsMCwweDMsMCwweDI5MDVkMzA0J107Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbLTMyXTsKLSAgICB2YXIgdCA9IHAuZmluZEFsbFRocmVhZHNOYW1lZCgnVjgnKVswXTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgWyd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOSddLAotICAgICAgICB0LnNhbXBsZXNbMF0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKLSAgfSk7Ci0KLSAgdGVzdCgndHdvVGlja0V2ZW50c1dpdGhTdGFjaycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsaW5lcyA9IFsKLSAgICAgICdjb2RlLWNyZWF0aW9uLExhenlDb21waWxlLDAsMHgyOTA1ZDBjMCwxODAwLCJJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5IiwweDU2YjE5MTI0LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAndGljaywweDdmYzZmZTM0LDUyODY3NCwwLDB4MywwLDB4MjkwNWQzMDQnLAotICAgICAgJ3RpY2ssMHg3ZmQyYTUzNCw1MzYyMTMsMCwweDgxZDhkMDgwLDAsMHgyOTA1ZDMwNCddOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07Ci0gICAgdmFyIHQgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4JylbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlcy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0uc3RhcnQsIDUyODY3NCAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMV0uc3RhcnQsIDUzNjIxMyAvIDEwMDApOwotICAgIGFzc2VydC5kZWVwRXF1YWwoCi0gICAgICAgIFsndjg6IEluc3RhbnRpYXRlRnVuY3Rpb24gbmF0aXZlIGFwaW5hdGl2ZXMuanM6MjY6MjknXSwKLSAgICAgICAgdC5zYW1wbGVzWzBdLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgWyd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOSddLAotICAgICAgICB0LnNhbXBsZXNbMV0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKLSAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzBdLmxlYWZTdGFja0ZyYW1lLAotICAgICAgICAgICAgICAgICB0LnNhbXBsZXNbMV0ubGVhZlN0YWNrRnJhbWUpOwotICB9KTsKLQotICB0ZXN0KCd0d29UaWNrRXZlbnRzV2l0aFR3b1N0YWNrRnJhbWVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ2NvZGUtY3JlYXRpb24sTGF6eUNvbXBpbGUsMCwweDI5MDRkNTYwLDg3NiwiSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSIsMHg1NmIxOTBjOCx+JywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICdjb2RlLWNyZWF0aW9uLExhenlDb21waWxlLDAsMHgyOTA1ZDBjMCwxODAwLCJJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5IiwweDU2YjE5MTI0LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAndGljaywweDdmYzZmZTM0LDUyODY3NCwwLDB4MywwLDB4MjkwNWQzMDQsMHgyOTA0ZDZlOCcsCi0gICAgICAndGljaywweDdmZDJhNTM0LDUzNjIxMywwLDB4ODFkOGQwODAsMCwweDI5MDVkMzA0LDB4MjkwNGQ2ZTgnXTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7Ci0gICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1stMzJdOwotICAgIHZhciB0ID0gcC5maW5kQWxsVGhyZWFkc05hbWVkKCdWOCcpWzBdOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXMubGVuZ3RoLCAyKTsKLQotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0uc3RhcnQsIDUyODY3NCAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMV0uc3RhcnQsIDUzNjIxMyAvIDEwMDApOwotICAgIGFzc2VydC5kZWVwRXF1YWwoCi0gICAgICAgIFsndjg6IEluc3RhbnRpYXRlIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjk6MjEnLAotICAgICAgICAgJ3Y4OiBJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5J10sCi0gICAgICAgIHQuc2FtcGxlc1swXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoCi0gICAgICAgIFsndjg6IEluc3RhbnRpYXRlIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjk6MjEnLAotICAgICAgICAgJ3Y4OiBJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5J10sCi0gICAgICAgIHQuc2FtcGxlc1sxXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOwotCi0gICAgdmFyIGNoaWxkU3RhY2tGcmFtZSA9IHQuc2FtcGxlc1swXS5sZWFmU3RhY2tGcmFtZTsKLSAgICBhc3NlcnQuZXF1YWwoY2hpbGRTdGFja0ZyYW1lLCB0LnNhbXBsZXNbMV0ubGVhZlN0YWNrRnJhbWUpOwotICAgIGFzc2VydC5lcXVhbChjaGlsZFN0YWNrRnJhbWUuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKLQotICAgIHZhciBwYXJlbnRTdGFja0ZyYW1lID0gY2hpbGRTdGFja0ZyYW1lLnBhcmVudEZyYW1lOwotICAgIGFzc2VydC5lcXVhbChwYXJlbnRTdGFja0ZyYW1lLmNoaWxkcmVuLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoaWxkU3RhY2tGcmFtZSwgcGFyZW50U3RhY2tGcmFtZS5jaGlsZHJlblswXSk7Ci0KLSAgfSk7Ci0KLSAgdGVzdCgndGhyZWVUaWNrRXZlbnRzV2l0aFR3b1N0YWNrRnJhbWVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ2NvZGUtY3JlYXRpb24sTGF6eUNvbXBpbGUsMCwweDI5MDRkNTYwLDg3NiwiSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSIsMHg1NmIxOTBjOCx+JywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICdjb2RlLWNyZWF0aW9uLExhenlDb21waWxlLDAsMHgyOTA1ZDBjMCwxODAwLCJJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5IiwweDU2YjE5MTI0LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAndGljaywweDdmZDdmNzVjLDUxODMyOCwwLDB4ODFkODZkYTgsMiwweDI5MDRkNmU4JywKLSAgICAgICd0aWNrLDB4N2ZjNmZlMzQsNTI4Njc0LDAsMHgzLDAsMHgyOTA1ZDMwNCwweDI5MDRkNmU4JywKLSAgICAgICd0aWNrLDB4N2ZkMmE1MzQsNTM2MjEzLDAsMHg4MWQ4ZDA4MCwwLDB4MjkwNWQzMDQsMHgyOTA0ZDZlOCddOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07Ci0gICAgdmFyIHRocmVhZHMgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4Jyk7Ci0KLSAgICB2YXIgdCA9IHRocmVhZHNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlcy5sZW5ndGgsIDMpOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0uc3RhcnQsIDUxODMyOCAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMV0uc3RhcnQsIDUyODY3NCAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMl0uc3RhcnQsIDUzNjIxMyAvIDEwMDApOwotICAgIGFzc2VydC5kZWVwRXF1YWwoCi0gICAgICAgIFsndjg6IEluc3RhbnRpYXRlIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjk6MjEnXSwKLSAgICAgICAgdC5zYW1wbGVzWzBdLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgWyd2ODogSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMScsCi0gICAgICAgICAndjg6IEluc3RhbnRpYXRlRnVuY3Rpb24gbmF0aXZlIGFwaW5hdGl2ZXMuanM6MjY6MjknXSwKLSAgICAgICAgdC5zYW1wbGVzWzFdLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgWyd2ODogSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMScsCi0gICAgICAgICAndjg6IEluc3RhbnRpYXRlRnVuY3Rpb24gbmF0aXZlIGFwaW5hdGl2ZXMuanM6MjY6MjknXSwKLSAgICAgICAgdC5zYW1wbGVzWzJdLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKSk7Ci0KLSAgICB2YXIgdG9wTGV2ZWxTdGFja0ZyYW1lID0gdC5zYW1wbGVzWzBdLmxlYWZTdGFja0ZyYW1lOwotICAgIHZhciBjaGlsZFN0YWNrRnJhbWUgPSB0LnNhbXBsZXNbMV0ubGVhZlN0YWNrRnJhbWU7Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc1syXS5sZWFmU3RhY2tGcmFtZSwgY2hpbGRTdGFja0ZyYW1lKTsKLSAgICBhc3NlcnQuZXF1YWwodG9wTGV2ZWxTdGFja0ZyYW1lLCBjaGlsZFN0YWNrRnJhbWUucGFyZW50RnJhbWUpOwotICAgIGFzc2VydC5lcXVhbCh0b3BMZXZlbFN0YWNrRnJhbWUuY2hpbGRyZW4ubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoY2hpbGRTdGFja0ZyYW1lLmNoaWxkcmVuLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoaWxkU3RhY2tGcmFtZSwgdG9wTGV2ZWxTdGFja0ZyYW1lLmNoaWxkcmVuWzBdKTsKLSAgfSk7Ci0KLSAgdGVzdCgndHdvU3ViU3RhY2tzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGxpbmVzID0gWwotICAgICAgJ2NvZGUtY3JlYXRpb24sTGF6eUNvbXBpbGUsMCwweDI5MDRkNTYwLDg3NiwiSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSIsMHg1NmIxOTBjOCx+JywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICdjb2RlLWNyZWF0aW9uLExhenlDb21waWxlLDAsMHgyOTA1ZDBjMCwxODAwLCJJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5IiwweDU2YjE5MTI0LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCi0gICAgICAndGljaywweDdmZDdmNzVjLDUxODMyOCwwLDB4ODFkODZkYTgsMiwweDI5MDRkNmU4JywKLSAgICAgICd0aWNrLDB4N2ZjNmZlMzQsNTI4Njc0LDAsMHgzLDAsMHgyOTA1ZDMwNCwweDI5MDRkNmU4JywKLSAgICAgICd0aWNrLDB4N2ZkMmE1MzQsNTM2MjEzLDAsMHg4MWQ4ZDA4MCwwLDB4MjkwNWQzMDQsMHgyOTA0ZDZlOCcsCi0gICAgICAnY29kZS1jcmVhdGlvbixTY3JpcHQsMCwweDI5MDZhN2MwLDc5MiwiaHR0cDovL3d3dy5nb29nbGUuY29tLyIsMHg1YjEyZmU1MCx+JywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgICAgICd0aWNrLDB4YjZmNTFkMzAsNzk0MDQ5LDAsMHhiNmY3YjM2OCwyLDB4MjkwNmE5MTQnLAotICAgICAgJ3RpY2ssMHhiNmY1MWQzMCw3OTkxNDYsMCwweGI2ZjdiMzY4LDAsMHgyOTA2YTkxNCcKLSAgICBdOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07Ci0gICAgdmFyIHRocmVhZHMgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4Jyk7Ci0gICAgdmFyIHQgPSB0aHJlYWRzWzBdOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXMubGVuZ3RoLCA1KTsKLQotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0uc3RhcnQsIDUxODMyOCAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMV0uc3RhcnQsIDUyODY3NCAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMl0uc3RhcnQsIDUzNjIxMyAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbM10uc3RhcnQsIDc5NDA0OSAvIDEwMDApOwotICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbNF0uc3RhcnQsIDc5OTE0NiAvIDEwMDApOwotCi0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgWyd2ODogSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSddLAotICAgICAgICB0LnNhbXBsZXNbMF0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKAotICAgICAgICBbJ3Y4OiBJbnN0YW50aWF0ZSBuYXRpdmUgYXBpbmF0aXZlcy5qczo5OjIxJywKLSAgICAgICAgICd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOSddLAotICAgICAgICB0LnNhbXBsZXNbMV0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKAotICAgICAgICBbJ3Y4OiBJbnN0YW50aWF0ZSBuYXRpdmUgYXBpbmF0aXZlcy5qczo5OjIxJywKLSAgICAgICAgICd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOSddLAotICAgICAgICB0LnNhbXBsZXNbMl0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKFsndjg6IGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8nXSwKLSAgICAgICAgICAgICAgICAgICAgICB0LnNhbXBsZXNbM10uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKFsndjg6IGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8nXSwKLSAgICAgICAgICAgICAgICAgICAgICB0LnNhbXBsZXNbNF0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKLQotICAgIHZhciBmaXJzU3RhY2tUb3BMZXZlbFN0YWNrRnJhbWUgPSB0LnNhbXBsZXNbMF0ubGVhZlN0YWNrRnJhbWU7Ci0gICAgdmFyIGZpcnNTdGFja0NoaWxkU3RhY2tGcmFtZSA9IHQuc2FtcGxlc1sxXS5sZWFmU3RhY2tGcmFtZTsKLSAgICBhc3NlcnQuZXF1YWwoZmlyc1N0YWNrQ2hpbGRTdGFja0ZyYW1lLCB0LnNhbXBsZXNbMl0ubGVhZlN0YWNrRnJhbWUpOwotICAgIGFzc2VydC5lcXVhbChmaXJzU3RhY2tUb3BMZXZlbFN0YWNrRnJhbWUsCi0gICAgICAgICAgICAgICAgIGZpcnNTdGFja0NoaWxkU3RhY2tGcmFtZS5wYXJlbnRGcmFtZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGZpcnNTdGFja1RvcExldmVsU3RhY2tGcmFtZS5jaGlsZHJlbi5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChmaXJzU3RhY2tDaGlsZFN0YWNrRnJhbWUuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoZmlyc1N0YWNrQ2hpbGRTdGFja0ZyYW1lLAotICAgICAgICAgICAgICAgICBmaXJzU3RhY2tUb3BMZXZlbFN0YWNrRnJhbWUuY2hpbGRyZW5bMF0pOwotCi0gICAgdmFyIHNlY29uZFN0YWNrU3RhY2tGcmFtZSA9IHQuc2FtcGxlc1szXS5sZWFmU3RhY2tGcmFtZTsKLSAgICBhc3NlcnQuZXF1YWwoc2Vjb25kU3RhY2tTdGFja0ZyYW1lLCB0LnNhbXBsZXNbNF0ubGVhZlN0YWNrRnJhbWUpOwotICAgIGFzc2VydC5lcXVhbChzZWNvbmRTdGFja1N0YWNrRnJhbWUuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoc2Vjb25kU3RhY2tTdGFja0ZyYW1lLnBhcmVudEZyYW1lKTsKLSAgfSk7Ci0KLSAgdGVzdCgndGltZXJFdmVudFNsaWNlQ3JlYXRpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbJ3RpbWVyLWV2ZW50LCJWOC5FeHRlcm5hbCIsMzgxODk0ODMsMyddOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07Ci0gICAgdmFyIHRocmVhZHMgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4IFRpbWVycycpOwotICAgIGFzc2VydC5pc0RlZmluZWQodGhyZWFkcyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRocmVhZHMubGVuZ3RoLCAxKTsKLSAgICB2YXIgdCA9IHRocmVhZHNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDEpOwotICB9KTsKLQotICB0ZXN0KCdwcm9jZXNzVGhyZWFkQ3JlYXRpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbGluZXMgPSBbJ3RpbWVyLWV2ZW50LCJWOC5FeHRlcm5hbCIsMzgxODk0ODMsMyddOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKG0pOwotICAgIHZhciBwID0gbS5wcm9jZXNzZXNbLTMyXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHApOwotICAgIHZhciB0aHJlYWRzID0gcC5maW5kQWxsVGhyZWFkc05hbWVkKCdWOCBUaW1lcnMnKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHRocmVhZHMpOwotICAgIGFzc2VydC5lcXVhbCgxLCB0aHJlYWRzLmxlbmd0aCk7Ci0gICAgdmFyIHQgPSB0aHJlYWRzWzBdOwotICAgIGFzc2VydC5lcXVhbCgnVjggVGltZXJzJywgdC5uYW1lKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2FuSW1wb3J0JywgZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShWOExvZ0ltcG9ydGVyLmNhbkltcG9ydCgKLSAgICAgICAgJ3RpbWVyLWV2ZW50LCJWOC5FeHRlcm5hbCIsMzgxODk0ODMsMycpKTsKLSAgICBhc3NlcnQuaXNUcnVlKFY4TG9nSW1wb3J0ZXIuY2FuSW1wb3J0KCd2OC12ZXJzaW9uLDQsMyw2NiwwLDAnKSk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoVjhMb2dJbXBvcnRlci5jYW5JbXBvcnQoJycpKTsKLSAgICBhc3NlcnQuaXNGYWxzZShWOExvZ0ltcG9ydGVyLmNhbkltcG9ydChbXSkpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2xlYW5fY29uZmlnLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9sZWFuX2NvbmZpZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDUxMzE5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2xlYW5fY29uZmlnLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPCEtLQotVGhlIGxlYW4gY29uZmlnIGlzIGp1c3QgZW5vdWdoIHRvIGltcG9ydCB1bmNvbXByZXNzZWQsIHRyYWNlLWV2ZW50LWZvcm1hdHRlZAotanNvbiBibG9icy4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9oaWdobGlnaHRlci92c3luY19oaWdobGlnaHRlci5odG1sIj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y0YjU3OC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYXVkaXRvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2VfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEJhc2UgY2xhc3MgZm9yIHRyYWNlIGRhdGEgQXVkaXRvcnMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLnJhaWwnLCBmdW5jdGlvbigpIHsKLQotICBmdW5jdGlvbiBSQUlMSW50ZXJhY3Rpb25SZWNvcmQodGl0bGUsIHJhaWxUeXBlTmFtZSwgc3RhcnQsIGR1cmF0aW9uKSB7Ci0gICAgdmFyIGNvbG9ySWQgPSB0ci5iLnVpLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUocmFpbFR5cGVOYW1lKTsKLSAgICB0aGlzLnJhaWxUeXBlTmFtZV8gPSByYWlsVHlwZU5hbWU7Ci0gICAgdHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQuY2FsbCh0aGlzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBkdXJhdGlvbik7Ci0gIH0KLQotICBSQUlMSW50ZXJhY3Rpb25SZWNvcmQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQucHJvdG90eXBlLAotCi0gICAgdXBkYXRlQXJnczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYXJncyA9IHt9OwotCi0gICAgICB2YXIgbGF5b3V0U2xpY2VzID0gdGhpcy5hc3NvY2lhdGVkRXZlbnRzLmZpbHRlcihmdW5jdGlvbihldmVudCkgewotICAgICAgICByZXR1cm4gZXZlbnQudGl0bGUgPT09ICdGcmFtZVZpZXc6OmxheW91dCc7Ci0gICAgICB9KTsKLSAgICAgIHZhciB0aW1lSW5MYXlvdXQgPSB0ci5iLlN0YXRpc3RpY3Muc3VtKGxheW91dFNsaWNlcywgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgcmV0dXJuIGV2ZW50LmR1cmF0aW9uOwotICAgICAgfSk7Ci0KLSAgICAgIGFyZ3NbJ2xheW91dEluZm8nXSA9IHsKLSAgICAgICAgJ3RpbWVJbkxheW91dCc6IHRpbWVJbkxheW91dAotICAgICAgfTsKLQotICAgICAgdGhpcy5hcmdzID0gYXJnczsKLSAgICB9LAotCi0gICAgZ2V0IHJhaWxUeXBlTmFtZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnJhaWxUeXBlTmFtZV87Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG92ZXJhbGwgcmFpbCBzY29yZSwgZnJvbSAwIHRvIDEuCi0gICAgICoKLSAgICAgKiBSQUlMU2NvcmUgZm9yIGFuIGludGVyYWN0aW9uIG1lcmdlcyB0aGUgdXNlcidzIHBhaW4gd2l0aCB0aGUKLSAgICAgKiBlZmZpY2llbmN5LCBpbiBvcmRlciB0byBjcmVhdGUgYSBwZXJjZXB0aW9uLW9yaWVudGVkIG1lYXN1cmUKLSAgICAgKiBvZiBob3cgdXNlcnMgcGVyY2lldmUgc3BlZWQgZHVyaW5nIHRoaXMgaW50ZXJhY3Rpb24uCi0gICAgICoKLSAgICAgKiAgMCBtZWFucyBhIGJhZCB1c2VyIGV4cGVyaWVuY2UuCi0gICAgICogIDEgbWVhbnMgYSBwZXJmZWN0IHVzZXIgZXhwZXJpZW5jZS4KLSAgICAgKi8KLSAgICBnZXQgcmFpbFNjb3JlKCkgewotICAgICAgLy8gVE9ETyhiZW5qaGF5ZGVuLCBuZHVjYSkgQmV0dGVyIHNjb3JpbmcgYWxnb3JpdGhtLgotICAgICAgdmFyIGhhcHBpbmVzcyA9IDEgLSB0aGlzLm5vcm1hbGl6ZWRVc2VyUGFpbjsKLSAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZWRFZmZpY2llbmN5ICogaGFwcGluZXNzOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBNZWFzdXJlcyB0aGUgcGFpbiB0aGUgdXNlciBleHBlcmllbmNlZCwgZnJvbSAwIHRvIDEuCi0gICAgICoKLSAgICAgKiBBIHVzZXIgcGVyZm9ybXMgYW4gaW50ZXJhY3Rpb24gd2l0aCBhbiBleHBlY3RhdGlvbiBpbiBtaW5kLgotICAgICAqIFdoZW4gd2UgZXhjZWVkIHRoZWlyIGV4cGVjdGF0aW9ucywgd2UgZ2V0IHplcm8gcGFpbi4KLSAgICAgKiBXaGVuIHdlIG1lZXQgdGhlaXIgZXhwZWN0YXRpb25zLCB3ZSBnZXQgemVybyBwYWluLgotICAgICAqIEFzIHdlIGV4Y2VlZCB0aGVpciBleHBlY3RhdGlvbnMsIHBhaW4gZ29lcyB1cC4gTWF4aW11bSBwYWluCi0gICAgICogaXMgMS4wLCBha2EgIlN3aXRjaCB0byBGaXJlRm94Ii4KLSAgICAgKi8KLSAgICBnZXQgbm9ybWFsaXplZFVzZXJQYWluKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogTWVhc3VyZXMgdGhlIGVmZmljaWVuY3kgb2YgdGhlIGludGVyYWN0aW9uIGZyb20gMCB0byAxLgotICAgICAqCi0gICAgICogRWZmaWNpZW5jeSBpcyBhIG5vdGlvbiBvZiBob3cgd2VsbCB3ZSB1c2VkIHRoZSBtYWNoaW5lJ3MgbGltaXRlZAotICAgICAqIHJlc291cmNlcyBpbiBzZXJ2aWNlIG9mIHRoaXMgaW50ZXJhY3Rpb24uIElmIHdlIHVzZWQgaXQgcGVyZmVjdGx5LAotICAgICAqIHdlIHdvdWxkIGdldCBhIDEuMC4gSWYgd2UgdXNlZCBldmVyeXRoaW5nIHRoYXQgdGhlcmUgd2FzIHRvIHVzZSAtLS0KLSAgICAgKiBwb3dlciwgbWVtb3J5LCBjcHUsIHRoZW4gd2UnZCBnZXQgYSB6ZXJvLgotICAgICAqLwotICAgIGdldCBub3JtYWxpemVkRWZmaWNpZW5jeSgpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUkFJTEludGVyYWN0aW9uUmVjb3JkOiBSQUlMSW50ZXJhY3Rpb25SZWNvcmQKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmRfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmE1MGRlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmRfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciB0ZXN0X3V0aWxzID0gdHIuYy50ZXN0X3V0aWxzOwotCi0gIHRlc3QoJ2xheW91dEluZm8nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSB0ci5lLmF1ZGl0cy5uZXdDaHJvbWVNb2RlbChmdW5jdGlvbihtb2RlbCkgewotICAgICAgLy8gVE9ETyhiZW5qaGF5ZGVuKTogQ3JlYXRlCi0gICAgICBtb2RlbC5yZW5kZXJlck1haW4uc2xpY2VHcm91cC5wdXNoU2xpY2UodGVzdF91dGlscy5uZXdTbGljZUV4KHsKLSAgICAgICAgdGl0bGU6ICdGcmFtZVZpZXc6OmxheW91dCcsCi0gICAgICAgIHN0YXJ0OiAwLAotICAgICAgICBkdXJhdGlvbjogMTAwCi0gICAgICB9KSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgbW9kZWxIZWxwZXIgPSBuZXcgdHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIobW9kZWwpOwotICAgIHZhciByaXIgPSBuZXcgdHIuZS5yYWlsLlJBSUxJbnRlcmFjdGlvblJlY29yZCgKLSAgICAgICAgJ3NpbXBsZScsICdyYWlsX3Jlc3BvbnNlJywgMCwgMTAwKTsKLSAgICByaXIuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKG1vZGVsLnJlbmRlcmVyTWFpbi5zbGljZUdyb3VwLnNsaWNlc1swXSk7Ci0gICAgcmlyLnVwZGF0ZUFyZ3MoKTsKLQotICAgIGFzc2VydC5lcXVhbChyaXIuYXJncy5sYXlvdXRJbmZvLnRpbWVJbkxheW91dCwgMTAwKTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfaXJfZmluZGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfaXJfZmluZGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkMjhiMWMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjYyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYXVkaXRvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfaW5mby5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZV91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfbW9kZWxfaGVscGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9hbmltYXRpb25faW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9pZGxlX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvbG9hZF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3Jlc3BvbnNlX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IEJhc2UgY2xhc3MgZm9yIHRyYWNlIGRhdGEgQXVkaXRvcnMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5lLnJhaWwnLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gUkFJTElSRmluZGVyKG1vZGVsLCBtb2RlbEhlbHBlcikgewotICAgIHRoaXMubW9kZWwgPSBtb2RlbDsKLSAgICB0aGlzLm1vZGVsSGVscGVyID0gbW9kZWxIZWxwZXI7Ci0gIH07Ci0KLSAgUkFJTElSRmluZGVyLnN1cHBvcnRzTW9kZWxIZWxwZXIgPSBmdW5jdGlvbihtb2RlbEhlbHBlcikgewotICAgIHJldHVybiBtb2RlbEhlbHBlci5icm93c2VySGVscGVyICE9PSB1bmRlZmluZWQ7Ci0gIH07Ci0KLSAgUkFJTElSRmluZGVyLnByb3RvdHlwZSA9IHsKLSAgICBnZXRBbGxMYXRlbmN5RXZlbnRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLm1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0TGF0ZW5jeUV2ZW50c0luUmFuZ2UoCi0gICAgICAgICAgdGhpcy5tb2RlbC5ib3VuZHMpOwotICAgIH0sCi0KLSAgICBnZXRBbGxGcmFtZUV2ZW50czogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgZnJhbWVFdmVudHMgPSBbXTsKLSAgICAgIGlmICh0aGlzLm1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIpIHsKLSAgICAgICAgdmFyIGZlID0gdGhpcy5tb2RlbEhlbHBlci5icm93c2VySGVscGVyLmdldEZyYW1lRXZlbnRzSW5SYW5nZSgKLSAgICAgICAgICAgIHRyLmUuYXVkaXRzLklNUExfRlJBTUVUSU1FX1RZUEUsCi0gICAgICAgICAgICB0aGlzLm1vZGVsLmJvdW5kcyk7Ci0gICAgICAgIGZyYW1lRXZlbnRzLnB1c2guYXBwbHkoZnJhbWVFdmVudHMsIGZlKTsKLSAgICAgIH0KLSAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMubW9kZWxIZWxwZXIucmVuZGVyZXJIZWxwZXJzLCBmdW5jdGlvbihwaWQsIHJlbmRlcmVyKSB7Ci0gICAgICAgIHZhciBmZSA9IHJlbmRlcmVyLmdldEZyYW1lRXZlbnRzSW5SYW5nZSh0ci5lLmF1ZGl0cy5JTVBMX0ZSQU1FVElNRV9UWVBFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5ib3VuZHMpOwotICAgICAgICBmcmFtZUV2ZW50cy5wdXNoLmFwcGx5KGZyYW1lRXZlbnRzLCBmZSk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICAgIGZyYW1lRXZlbnRzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7IH0pOwotICAgICAgcmV0dXJuIGZyYW1lRXZlbnRzOwotICAgIH0sCi0KLSAgICBnZXRBbGxHZXN0dXJlczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgYWxsTGF0ZW5jeUV2ZW50cyA9IHRoaXMuZ2V0QWxsTGF0ZW5jeUV2ZW50cygpOwotCi0gICAgICBmdW5jdGlvbiBsYXRlbmN5RXZlbnRUb1N0YXJ0UG9pbnQobGF0ZW5jeUV2ZW50KSB7Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgc3RhcnQ6IGxhdGVuY3lFdmVudC5zdGFydCwKLSAgICAgICAgICBlbmQ6IGxhdGVuY3lFdmVudC5zdGFydCwKLSAgICAgICAgICBsYXRlbmN5RXZlbnQ6IGxhdGVuY3lFdmVudAotICAgICAgICB9OwotICAgICAgfQotICAgICAgdmFyIGxhdGVuY3lTdGFydFBvaW50cyA9IGFsbExhdGVuY3lFdmVudHMubWFwKGxhdGVuY3lFdmVudFRvU3RhcnRQb2ludCk7Ci0KLSAgICAgIGZ1bmN0aW9uIGpvaW5TdGFydFBvaW50c0ludG9HZXN0dXJlKHN0YXJ0UG9pbnRzKSB7Ci0gICAgICAgIHZhciBsYXRlbmN5RXZlbnRzID0gc3RhcnRQb2ludHMubWFwKGZ1bmN0aW9uKHN0YXJ0UG9pbnQpIHsKLSAgICAgICAgICByZXR1cm4gc3RhcnRQb2ludC5sYXRlbmN5RXZlbnQ7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHZhciBlMCA9IGxhdGVuY3lFdmVudHNbMF07Ci0gICAgICAgIHZhciBlTiA9IGxhdGVuY3lFdmVudHNbbGF0ZW5jeUV2ZW50cy5sZW5ndGggLSAxXTsKLQotICAgICAgICB2YXIgZ2VzdHVyZSA9IHsKLSAgICAgICAgICBleHBlY3RlZFN0YXJ0OiBlMC5zdGFydCwKLSAgICAgICAgICBleHBlY3RlZEVuZDogZU4uc3RhcnQsCi0gICAgICAgICAgbGF0ZW5jeUV2ZW50czogbGF0ZW5jeUV2ZW50cwotICAgICAgICB9OwotICAgICAgICByZXR1cm4gZ2VzdHVyZTsKLSAgICAgIH0KLQotICAgICAgcmV0dXJuIHRyLmUuYXVkaXRzLm1lcmdlRXhwbGljaXRSYW5nZXMoCi0gICAgICAgICAgbGF0ZW5jeVN0YXJ0UG9pbnRzLCAyNTAsIGpvaW5TdGFydFBvaW50c0ludG9HZXN0dXJlKTsKLSAgICB9LAotCi0gICAgZ2V0QWxsRXhwZWN0ZWRGbGluZ2luZ1JhbmdlczogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5tb2RlbEhlbHBlci5icm93c2VySGVscGVyID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHZhciBvcHMgPSBbXTsKLSAgICAgIHZhciBGTElOR19PUF9TVEFSVCA9ICdzdGFydCc7Ci0gICAgICB2YXIgRkxJTkdfT1BfQ0FOQ0VMID0gJ2NhbmNlbCc7Ci0gICAgICB2YXIgRkxJTkdfT1BfQU5JTV9FTkQgPSAnYW5pbS1lbmQnOwotCi0KLSAgICAgIC8vIEFkZCBvcHMgZm9yIGlucHV0IGZsaW5nIHN0YXJ0ICYgY2FuY2VsLgotICAgICAgdmFyIGFsbExhdGVuY3lFdmVudHMgPSB0aGlzLmdldEFsbExhdGVuY3lFdmVudHMoKTsKLSAgICAgIGFsbExhdGVuY3lFdmVudHMuZm9yRWFjaChmdW5jdGlvbihsYXRlbmN5RXZlbnQpIHsKLSAgICAgICAgaWYgKGxhdGVuY3lFdmVudC5zdWJTbGljZXMubGVuZ3RoID09IDApCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgczB0aXRsZSA9IGxhdGVuY3lFdmVudC5zdWJTbGljZXNbMF0udGl0bGU7Ci0gICAgICAgIGlmIChzMHRpdGxlID09PSAnSW5wdXRMYXRlbmN5Okdlc3R1cmVGbGluZ1N0YXJ0JykgewotICAgICAgICAgIG9wcy5wdXNoKHsKLSAgICAgICAgICAgIG9wOiBGTElOR19PUF9TVEFSVCwgZ3VpZDogbGF0ZW5jeUV2ZW50Lmd1aWQsCi0gICAgICAgICAgICBvcFRzOiBsYXRlbmN5RXZlbnQuc3RhcnQsCi0gICAgICAgICAgICBsYXRlbmN5RXZlbnQ6IGxhdGVuY3lFdmVudAotICAgICAgICAgIH0pOwotICAgICAgICB9IGVsc2UgaWYgKHMwdGl0bGUgPT09ICdJbnB1dExhdGVuY3k6R2VzdHVyZUZsaW5nQ2FuY2VsJykgewotICAgICAgICAgIG9wcy5wdXNoKHsKLSAgICAgICAgICAgIG9wOiBGTElOR19PUF9DQU5DRUwsIGd1aWQ6IGxhdGVuY3lFdmVudC5ndWlkLAotICAgICAgICAgICAgb3BUczogbGF0ZW5jeUV2ZW50LnN0YXJ0LAotICAgICAgICAgICAgbGF0ZW5jeUV2ZW50OiBsYXRlbmN5RXZlbnQKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIC8vIEFkZCBvcHMgZm9yIGZsaW5nIGFuaW1hdGlvbnMuCi0gICAgICB0aGlzLm1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0QWxsQXN5bmNTbGljZXNNYXRjaGluZyhmdW5jdGlvbihldmVudCkgewotICAgICAgICBpZiAoZXZlbnQudGl0bGUgIT09ICdJbnB1dEhhbmRsZXJQcm94eTo6SGFuZGxlR2VzdHVyZUZsaW5nOjpzdGFydGVkJykKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG9wcy5wdXNoKHsKLSAgICAgICAgICAgIG9wOiBGTElOR19PUF9BTklNX0VORCwKLSAgICAgICAgICAgIGd1aWQ6IGV2ZW50Lmd1aWQsCi0gICAgICAgICAgICBvcFRzOiBldmVudC5lbmQsCi0gICAgICAgICAgICBmbGluZ0FuaW1hdGlvbkV2ZW50OiBldmVudAotICAgICAgICB9KTsKLSAgICAgIH0pOwotCi0gICAgICAvLyBTb3J0IG9wcywgc3RhYmx5LgotICAgICAgb3BzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICB2YXIgZGVsdGEgPSB4Lm9wVHMgLSB5Lm9wVHM7Ci0gICAgICAgIGlmIChkZWx0YSAhPSAwKQotICAgICAgICAgIHJldHVybiBkZWx0YTsKLSAgICAgICAgcmV0dXJuIHguZ3VpZCAtIHkuZ3VpZDsKLSAgICAgIH0pOwotCi0gICAgICAvLyBDcmVhdGUgZXhwZWN0ZWQtdG8tZmxpbmcgcmFuZ2VzIGJhc2VkIG9uIFVYIGV4cGVjdGF0aW9ucy4KLSAgICAgIHZhciBhbGxFeHBlY3RlZEZsaW5nUmFuZ2VzID0gW107Ci0gICAgICB2YXIgY3VycmVudEZsaW5nID0gdW5kZWZpbmVkOwotICAgICAgb3BzLmZvckVhY2goZnVuY3Rpb24ob3ApIHsKLSAgICAgICAgc3dpdGNoIChvcC5vcCkgewotICAgICAgICBjYXNlIEZMSU5HX09QX1NUQVJUOgotICAgICAgICAgIGlmIChjdXJyZW50RmxpbmcpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09NRyBUSEVSRSBJUyBBTFJFQURZIEEgRkxJTkcnKTsKLSAgICAgICAgICBjdXJyZW50RmxpbmcgPSB7Ci0gICAgICAgICAgICBleHBlY3RlZFN0YXJ0OiBvcC5sYXRlbmN5RXZlbnQuc3RhcnQsCi0gICAgICAgICAgICBhY3R1YWxTdGFydDogb3AubGF0ZW5jeUV2ZW50LmVuZCwKLSAgICAgICAgICAgIGV4cGVjdGVkRW5kOiB1bmRlZmluZWQsCi0gICAgICAgICAgICBhY3R1YWxFbmQ6IHVuZGVmaW5lZAotICAgICAgICAgIH07Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRkxJTkdfT1BfQ0FOQ0VMOgotICAgICAgICAgIGlmICghY3VycmVudEZsaW5nKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIGN1cnJlbnRGbGluZy5leHBlY3RlZEVuZCA9IG9wLmxhdGVuY3lFdmVudC5zdGFydDsKLSAgICAgICAgICBjdXJyZW50RmxpbmcuYWN0dWFsRW5kID0gb3AubGF0ZW5jeUV2ZW50LmVuZDsKLSAgICAgICAgICBhbGxFeHBlY3RlZEZsaW5nUmFuZ2VzLnB1c2goY3VycmVudEZsaW5nKTsKLSAgICAgICAgICBjdXJyZW50RmxpbmcgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRkxJTkdfT1BfQU5JTV9FTkQ6Ci0gICAgICAgICAgaWYgKCFjdXJyZW50RmxpbmcpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgY3VycmVudEZsaW5nLmV4cGVjdGVkRW5kID0gb3AuZmxpbmdBbmltYXRpb25FdmVudC5lbmQ7Ci0gICAgICAgICAgY3VycmVudEZsaW5nLmFjdHVhbEVuZCA9IG9wLmZsaW5nQW5pbWF0aW9uRXZlbnQuZW5kOwotICAgICAgICAgIGFsbEV4cGVjdGVkRmxpbmdSYW5nZXMucHVzaChjdXJyZW50RmxpbmcpOwotICAgICAgICAgIGN1cnJlbnRGbGluZyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIGlmIChjdXJyZW50RmxpbmcpIHsKLSAgICAgICAgY3VycmVudEZsaW5nLmV4cGVjdGVkRW5kID0gdGhpcy5tb2RlbC5ib3VuZHMubWF4OwotICAgICAgICBjdXJyZW50RmxpbmcuYWN0dWFsRW5kID0gdGhpcy5tb2RlbC5ib3VuZHMubWF4OwotICAgICAgICBhbGxFeHBlY3RlZEZsaW5nUmFuZ2VzLnB1c2goY3VycmVudEZsaW5nKTsKLSAgICAgICAgY3VycmVudEZsaW5nID0gdW5kZWZpbmVkOwotICAgICAgfQotICAgICAgcmV0dXJuIGFsbEV4cGVjdGVkRmxpbmdSYW5nZXM7Ci0gICAgfSwKLQotICAgIGdldEFsbEV4cGVjdGVkNjBSYW5nZXM6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsRXhwZWN0ZWRGbGluZ2luZ1JhbmdlcygpOwotICAgIH0sCi0KLSAgICBmaW5kR2VzdHVyZVRhcERvd25zOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIElucHV0TGF0ZW5jeTpHZXN0dXJlVGFwRG93bi8KLSAgICB9LAotCi0gICAgZmluZExvYWRJbnRlcmFjdGlvblJlY29yZHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGNvbW1pdHMgPQotICAgICAgICB0aGlzLm1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0Q29tbWl0UHJvdmlzaW9uYWxMb2FkRXZlbnRzSW5SYW5nZSgKLSAgICAgICAgICAgIHRoaXMubW9kZWwuYm91bmRzKTsKLSAgICAgIHZhciBmcmFtZXMgPSB0aGlzLmdldEFsbEZyYW1lRXZlbnRzKCk7Ci0KLSAgICAgIGNvbW1pdHMuZm9yRWFjaChmdW5jdGlvbihjb21taXRMb2FkLCBjb21taXRMb2FkSW5kZXgpIHsKLSAgICAgICAgZnJhbWVzLnNvbWUoZnVuY3Rpb24oZnJhbWUpIHsKLSAgICAgICAgICBpZiAoKGZyYW1lLnN0YXJ0ID4gY29tbWl0TG9hZC5zdGFydCkgJiYKLSAgICAgICAgICAgICAgKGZyYW1lLnBhcmVudENvbnRhaW5lci5wYXJlbnQucGlkID09Ci0gICAgICAgICAgICAgICAgICBjb21taXRMb2FkLnBhcmVudENvbnRhaW5lci5wYXJlbnQucGlkKSkgewotICAgICAgICAgICAgaWYgKGZyYW1lLmNvbW1pdFByb3Zpc2lvbmFsTG9hZCkgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZygnY29tbWl0IGZpcnN0IGZyYW1lJywgY29tbWl0TG9hZC5zdGFydCwgZnJhbWUuc3RhcnQsCi0gICAgICAgICAgICAgICAgZnJhbWUuc3RhcnQgLSBjb21taXRMb2FkLnN0YXJ0KTsKLSAgICAgICAgICAgIGNvbW1pdExvYWQuZmlyc3RGcmFtZSA9IGZyYW1lOwotICAgICAgICAgICAgZnJhbWUuY29tbWl0UHJvdmlzaW9uYWxMb2FkID0gY29tbWl0TG9hZDsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0pOwotICAgICAgICBpZiAoIWNvbW1pdExvYWQuZmlyc3RGcmFtZSkgewotICAgICAgICAgIGNvbnNvbGUubG9nKCdtaXNzaW5nIGZpcnN0IGZyYW1lJywgY29tbWl0TG9hZCk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotCi0gICAgICB2YXIgbGlycyA9IFtdOwotICAgICAgY29tbWl0cy5mb3JFYWNoKGZ1bmN0aW9uKGNvbW1pdExvYWQsIGNvbW1pdExvYWRJbmRleCkgewotICAgICAgICBpZiAoIWNvbW1pdExvYWQuZmlyc3RGcmFtZSkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGxpcnMucHVzaChuZXcgdHIuZS5yYWlsLkxvYWRJbnRlcmFjdGlvblJlY29yZCgKLSAgICAgICAgICAgIGNvbW1pdExvYWQuc3RhcnQsIGNvbW1pdExvYWQuZmlyc3RGcmFtZS5lbmQgLSBjb21taXRMb2FkLnN0YXJ0KSk7Ci0gICAgICB9KTsKLSAgICAgIHJldHVybiBsaXJzOwotICAgIH0sCi0KLSAgICBmaW5kUmVzcG9uc2VJbnRlcmFjdGlvblJlY29yZHM6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsR2VzdHVyZXMoKS5tYXAoZnVuY3Rpb24oZ2VzdHVyZSkgewotICAgICAgICByZXR1cm4gbmV3IHRyLmUucmFpbC5SZXNwb25zZUludGVyYWN0aW9uUmVjb3JkKAotICAgICAgICAgICAgZ2VzdHVyZS5leHBlY3RlZFN0YXJ0LCBnZXN0dXJlLmV4cGVjdGVkRW5kIC0gZ2VzdHVyZS5leHBlY3RlZFN0YXJ0KTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBmaW5kQW5pbWF0aW9uSW50ZXJhY3Rpb25SZWNvcmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmdldEFsbEV4cGVjdGVkNjBSYW5nZXMoKS5tYXAoZnVuY3Rpb24oZmxpbmcpIHsKLSAgICAgICAgcmV0dXJuIG5ldyB0ci5lLnJhaWwuQW5pbWF0aW9uSW50ZXJhY3Rpb25SZWNvcmQoCi0gICAgICAgICAgICBmbGluZy5leHBlY3RlZFN0YXJ0LCBmbGluZy5leHBlY3RlZEVuZCAtIGZsaW5nLmV4cGVjdGVkU3RhcnQpOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGZpbmRJZGxlSW50ZXJhY3Rpb25SZWNvcmRzOiBmdW5jdGlvbihvdGhlcklScykgewotICAgICAgdmFyIGVtcHR5UmFuZ2VzID0gdHIuZS5hdWRpdHMuZmluZEVtcHR5UmFuZ2VzQmV0d2VlbkV4cGxpY2l0UmFuZ2VzKAotICAgICAgICAgIG90aGVySVJzLCB0aGlzLm1vZGVsLmJvdW5kcyk7Ci0gICAgICByZXR1cm4gZW1wdHlSYW5nZXMubWFwKGZ1bmN0aW9uKHJhbmdlKSB7Ci0gICAgICAgIHJldHVybiBuZXcgdHIuZS5yYWlsLklkbGVJbnRlcmFjdGlvblJlY29yZCgKLSAgICAgICAgICAgIHJhbmdlLm1pbiwgcmFuZ2UubWF4IC0gcmFuZ2UubWluKTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBmaW5kQWxsSW50ZXJhY3Rpb25SZWNvcmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciByaXJzID0gW107Ci0gICAgICByaXJzLnB1c2guYXBwbHkocmlycywgdGhpcy5maW5kTG9hZEludGVyYWN0aW9uUmVjb3JkcygpKTsKLSAgICAgIHJpcnMucHVzaC5hcHBseShyaXJzLCB0aGlzLmZpbmRSZXNwb25zZUludGVyYWN0aW9uUmVjb3JkcygpKTsKLSAgICAgIHJpcnMucHVzaC5hcHBseShyaXJzLCB0aGlzLmZpbmRBbmltYXRpb25JbnRlcmFjdGlvblJlY29yZHMoKSk7Ci0gICAgICAvLyBUT0RPKGJlbmpoYXlkZW4pOiBSZWludHJvZHVjZSB0aGlzIHdpdGhvdXQgcmVpbnRyb2R1Y2luZyAjMTAyMC4KLSAgICAgIC8vIHJpcnMucHVzaC5hcHBseShyaXJzLCB0aGlzLmZpbmRJZGxlSW50ZXJhY3Rpb25SZWNvcmRzKHJpcnMpKTsKLSAgICAgIHJldHVybiByaXJzOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFJBSUxJUkZpbmRlcjogUkFJTElSRmluZGVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfaXJfZmluZGVyX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM1NzY1MC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfaXJfZmluZGVyX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIGF1ZGl0cyA9IHRyLmUuYXVkaXRzOwotCi0gIGZ1bmN0aW9uIG5ld1JJUkYoY3VzdG9taXplTW9kZWxDYWxsYmFjaykgewotICAgIHZhciBtb2RlbCA9IHRyLmUuYXVkaXRzLm5ld0Nocm9tZU1vZGVsKGN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2spOwotICAgIHZhciBtb2RlbEhlbHBlciA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtb2RlbCk7Ci0gICAgcmV0dXJuIG5ldyB0ci5lLnJhaWwuUkFJTElSRmluZGVyKG1vZGVsLCBtb2RlbEhlbHBlcik7Ci0gIH0KLQotICB0ZXN0KCd0d29TY3JvbGxzTm9GbGluZycsIGZ1bmN0aW9uKCkgewotICAgIHZhciByaXJmID0gbmV3UklSRihmdW5jdGlvbihtb2RlbCkgewotICAgICAgYXVkaXRzLmFkZEdlbmVyYWxMYXRlbmN5SW5mb0V2ZW50KG1vZGVsLCB7c3RhcnQ6IDAsIGVuZDogMTAwfSk7Ci0gICAgICBhdWRpdHMuYWRkR2VuZXJhbExhdGVuY3lJbmZvRXZlbnQobW9kZWwsIHtzdGFydDogMTYsIGVuZDogMTAwfSk7Ci0gICAgICBhdWRpdHMuYWRkR2VuZXJhbExhdGVuY3lJbmZvRXZlbnQobW9kZWwsIHtzdGFydDogMzIsIGVuZDogMTAwfSk7Ci0KLSAgICAgIGF1ZGl0cy5hZGRHZW5lcmFsTGF0ZW5jeUluZm9FdmVudChtb2RlbCwge3N0YXJ0OiAzMDAsIGVuZDogMzMwfSk7Ci0gICAgICBhdWRpdHMuYWRkR2VuZXJhbExhdGVuY3lJbmZvRXZlbnQobW9kZWwsIHtzdGFydDogMzE2LCBlbmQ6IDM0Nn0pOwotICAgICAgYXVkaXRzLmFkZEdlbmVyYWxMYXRlbmN5SW5mb0V2ZW50KG1vZGVsLCB7c3RhcnQ6IDMzMiwgZW5kOiAzNjh9KTsKLSAgICB9KTsKLQotICAgIHZhciBnZXN0dXJlcyA9IHJpcmYuZ2V0QWxsR2VzdHVyZXMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ2VzdHVyZXMubGVuZ3RoLCAyKTsKLQotICAgIGFzc2VydC5lcXVhbChnZXN0dXJlc1swXS5leHBlY3RlZFN0YXJ0LCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoZ2VzdHVyZXNbMF0uZXhwZWN0ZWRFbmQsIDMyKTsKLQotICAgIGFzc2VydC5lcXVhbChnZXN0dXJlc1sxXS5leHBlY3RlZFN0YXJ0LCAzMDApOwotICAgIGFzc2VydC5lcXVhbChnZXN0dXJlc1sxXS5leHBlY3RlZEVuZCwgMzMyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZmxpbmdUaGF0SXNudHN0b3BwZWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcmlyZiA9IG5ld1JJUkYoZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgIGF1ZGl0cy5hZGRHZW5lcmFsTGF0ZW5jeUluZm9FdmVudChtb2RlbCwge3N0YXJ0OiAwLCBlbmQ6IDEwMH0pOwotICAgICAgYXVkaXRzLmFkZEdlbmVyYWxMYXRlbmN5SW5mb0V2ZW50KG1vZGVsLCB7c3RhcnQ6IDE2LCBlbmQ6IDEwMH0pOwotICAgICAgYXVkaXRzLmFkZEZsaW5nU3RhcnRMYXRlbmN5SW5mb0V2ZW50KG1vZGVsLCB7c3RhcnQ6IDMyLCBlbmQ6IDEwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsaW5nU3RhcnQ6IDM4fSk7Ci0gICAgICBhdWRpdHMuYWRkRmxpbmdBbmltYXRpb25FdmVudChtb2RlbCwge3N0YXJ0OiAzOCwgZW5kOiAyMDB9KTsKLSAgICB9KTsKLQotICAgIHZhciBlNjByYW5nZXMgPSByaXJmLmdldEFsbEV4cGVjdGVkNjBSYW5nZXMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZTYwcmFuZ2VzLmxlbmd0aCwgMSk7Ci0KLSAgICB2YXIgZTYwciA9IGU2MHJhbmdlc1swXTsKLSAgICBhc3NlcnQuZXF1YWwoZTYwci5leHBlY3RlZFN0YXJ0LCAzMik7Ci0gICAgYXNzZXJ0LmVxdWFsKGU2MHIuZXhwZWN0ZWRFbmQsIDIwMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2ZsaW5nVGhhdElzU3RvcHBlZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciByaXJmID0gbmV3UklSRihmdW5jdGlvbihtb2RlbCkgewotICAgICAgYXVkaXRzLmFkZEdlbmVyYWxMYXRlbmN5SW5mb0V2ZW50KG1vZGVsLCB7c3RhcnQ6IDAsIGVuZDogMTAwfSk7Ci0gICAgICBhdWRpdHMuYWRkR2VuZXJhbExhdGVuY3lJbmZvRXZlbnQobW9kZWwsIHtzdGFydDogMTYsIGVuZDogMTAwfSk7Ci0gICAgICBhdWRpdHMuYWRkRmxpbmdTdGFydExhdGVuY3lJbmZvRXZlbnQobW9kZWwsIHtzdGFydDogMzIsIGVuZDogMTAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxpbmdTdGFydDogMzh9KTsKLSAgICAgIGF1ZGl0cy5hZGRGbGluZ0FuaW1hdGlvbkV2ZW50KG1vZGVsLCB7c3RhcnQ6IDM4LCBlbmQ6IDIwMH0pOwotICAgICAgYXVkaXRzLmFkZEZsaW5nQ2FuY2VsTGF0ZW5jeUluZm9FdmVudChtb2RlbCwge3N0YXJ0OiAxMDAsIGVuZDogMTUwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsaW5nQ2FuY2VsOiAxMDV9KTsKLQotICAgIH0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKDYsIHJpcmYuZ2V0QWxsTGF0ZW5jeUV2ZW50cygpLmxlbmd0aCk7Ci0KLSAgICB2YXIgZTYwcmFuZ2VzID0gcmlyZi5nZXRBbGxFeHBlY3RlZDYwUmFuZ2VzKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGU2MHJhbmdlcy5sZW5ndGgsIDEpOwotCi0gICAgdmFyIGU2MHIgPSBlNjByYW5nZXNbMF07Ci0gICAgYXNzZXJ0LmVxdWFsKGU2MHIuZXhwZWN0ZWRTdGFydCwgMzIpOwotICAgIGFzc2VydC5lcXVhbChlNjByLmV4cGVjdGVkRW5kLCAxMDApOwotICB9KTsKLQotICB0ZXN0KCdGcmFtZUV2ZW50JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHJpcmYgPSBuZXdSSVJGKGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICBhdWRpdHMuYWRkR2VuZXJhbExhdGVuY3lJbmZvRXZlbnQobW9kZWwsIHtzdGFydDogMCwgZW5kOiAxMDB9KTsKLSAgICAgIGF1ZGl0cy5hZGRGcmFtZUV2ZW50KG1vZGVsLCB7c3RhcnQ6IDEsIGVuZDogMTB9KTsKLSAgICB9KTsKLSAgICBhc3NlcnQuZXF1YWwoMSwgcmlyZi5nZXRBbGxGcmFtZUV2ZW50cygpLmxlbmd0aCk7Ci0gIH0pOwotCi0gIHRlc3QoJ0xvYWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcmlyZiA9IG5ld1JJUkYoZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgIGF1ZGl0cy5hZGRQcm92aXNpb25hbExvYWRFdmVudChtb2RlbCwge3N0YXJ0OiAxLCBlbmQ6IDEwfSk7Ci0gICAgICBhdWRpdHMuYWRkRnJhbWVFdmVudChtb2RlbCwge3N0YXJ0OiAxMSwgZW5kOiAyMH0pOwotICAgIH0pOwotICAgIHZhciBsb2FkcyA9IHJpcmYubW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci4KLSAgICAgIGdldENvbW1pdFByb3Zpc2lvbmFsTG9hZEV2ZW50c0luUmFuZ2UoCi0gICAgICAgIHJpcmYubW9kZWwuYm91bmRzKTsKLSAgICBhc3NlcnQuZXF1YWwoMSwgbG9hZHMubGVuZ3RoKTsKLSAgICB2YXIgaXJzID0gcmlyZi5maW5kQWxsSW50ZXJhY3Rpb25SZWNvcmRzKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIGlycy5sZW5ndGgpOwotICAgIGFzc2VydC5lcXVhbCgnTG9hZCcsIGlyc1swXS50aXRsZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIGlyc1swXS5zdGFydCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDIwLCBpcnNbMF0uZW5kKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgwOGJlYy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5yYWlsJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIFJBSUxTY29yZShvcHRfaXJzKSB7Ci0gICAgdGhpcy5pbnRlcmFjdGlvblJlY29yZHNfID0gW107Ci0gICAgaWYgKG9wdF9pcnMpCi0gICAgICB0aGlzLmludGVyYWN0aW9uUmVjb3Jkc18ucHVzaC5hcHBseSh0aGlzLmludGVyYWN0aW9uUmVjb3Jkc18sIG9wdF9pcnMpOwotICB9OwotCi0gIFJBSUxTY29yZS5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IGludGVyYWN0aW9uUmVjb3JkcygpIHsKLSAgICAgIHJldHVybiB0aGlzLmludGVyYWN0aW9uUmVjb3Jkc187Ci0gICAgfSwKLQotICAgIGdldCBvdmVyYWxsU2NvcmUoKSB7Ci0gICAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25SZWNvcmRzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHZhciBvdmVyYWxsID0gMDsKLSAgICAgIHRoaXMuaW50ZXJhY3Rpb25SZWNvcmRzLmZvckVhY2goZnVuY3Rpb24oaXIpIHsKLSAgICAgICAgb3ZlcmFsbCArPSBNYXRoLnBvdyhpci5yYWlsU2NvcmUsIDIpIC8gdGhpcy5pbnRlcmFjdGlvblJlY29yZHMubGVuZ3RoOwotICAgICAgICAvLyBUT0RPKGJlbmpoYXlkZW4pIEltcGxlbWVudCBhIGJldHRlciBhbGdvcml0aG0gYXMgZGlzY3Vzc2VkIGluIHRoZQotICAgICAgICAvLyBmb2xsb3dpbmcgZG9jdW1lbnQuCi0gICAgICAgIC8vIGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL2RvY3VtZW50L2QvMWQ2Y3l3eWZSNTh1WUJHSnZxNWVCZWJ3S2NWVnZhYUh4VTFkSkVqM0xYM0UKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICByZXR1cm4gb3ZlcmFsbDsKLSAgICB9Ci0gIH07Ci0KLSAgUkFJTFNjb3JlLmZyb21Nb2RlbCA9IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgdmFyIHJpcnMgPSBtb2RlbC5pbnRlcmFjdGlvbl9yZWNvcmRzLmZpbHRlcihmdW5jdGlvbihpcikgewotICAgICAgcmV0dXJuIGlyIGluc3RhbmNlb2YgdHIuZS5yYWlsLlJBSUxJbnRlcmFjdGlvblJlY29yZDsKLSAgICB9KTsKLSAgICBpZiAocmlycy5sZW5ndGggPT09IDApCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgIHJldHVybiBuZXcgUkFJTFNjb3JlKHJpcnMpOwotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUkFJTFNjb3JlOiBSQUlMU2NvcmUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfc2lkZV9wYW5lbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NpZGVfcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTk3YzM2MC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfc2lkZV9wYW5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX3Njb3JlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NwYW4uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2lkZV9wYW5lbC9zaWRlX3BhbmVsLmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLWUtcmFpbC1yYWlsLXNjb3JlLXNpZGUtcGFuZWwnCi0gICAgZXh0ZW5kcz0ndHItYy1zaWRlLXBhbmVsJz4KLSAgPHRlbXBsYXRlPgotICAgIDxzdHlsZT4KLSAgICA6aG9zdCB7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgd2lkdGg6IDI1MHB4OwotICAgIH0KLSAgICAjY29udGVudCB7Ci0gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgZGlzcGxheTogZmxleDsKLSAgICB9Ci0gICAgPC9zdHlsZT4KLQotICAgIDx0ci1lLXJhaWwtcmFpbC1zY29yZS1zcGFuIGlkPSdzY29yZSc+PC90ci1lLXJhaWwtcmFpbC1zY29yZS1zcGFuPgotICAgIDx0ci11aS10YWJsZSBpZD0idGFibGUiPjwvdHItdWktdGFibGU+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICB0aGlzLm1vZGVsXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMucmFpbFNjb3JlXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHRleHRMYWJlbCgpIHsKLSAgICAgIHJldHVybiAnUkFJTCBJbmZvJzsKLSAgICB9LAotCi0gICAgc3VwcG9ydHNNb2RlbDogZnVuY3Rpb24obSkgewotICAgICAgaWYgKG0gPT09IHVuZGVmaW5lZCkgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCi0gICAgICAgICAgcmVhc29uOiAnVW5rbm93biB0cmFjaW5nIG1vZGVsJwotICAgICAgICB9OwotICAgICAgfQotCi0gICAgICB2YXIgcmFpbFNjb3JlID0gdHIuZS5yYWlsLlJBSUxTY29yZS5mcm9tTW9kZWwobSk7Ci0gICAgICBpZiAocmFpbFNjb3JlID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlLAotICAgICAgICAgIHJlYXNvbjogJ1JBSUwgaW50ZXJhY3Rpb25zIHdlcmUgbm90IGZvdW5kIG9uIHRoZSBtb2RlbCcKLSAgICAgICAgfTsKLSAgICAgIH0KLQotICAgICAgcmV0dXJuIHsKLSAgICAgICAgc3VwcG9ydGVkOiB0cnVlCi0gICAgICB9OwotICAgIH0sCi0KLSAgICBnZXQgbW9kZWwoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5tb2RlbF87Ci0gICAgfSwKLQotICAgIHNldCBtb2RlbChtb2RlbCkgewotICAgICAgdGhpcy5tb2RlbF8gPSBtb2RlbDsKLSAgICAgIHRoaXMucmFpbFNjb3JlXyA9IHRyLmUucmFpbC5SQUlMU2NvcmUuZnJvbU1vZGVsKG1vZGVsKTsKLSAgICAgIHRoaXMuJC5zY29yZS5yYWlsU2NvcmUgPSB0aGlzLnJhaWxTY29yZV87Ci0gICAgICB0aGlzLnVwZGF0ZVRhYmxlXygpOwotICAgIH0sCi0KLSAgICBnZXQgbGlzdGVuaW5nVG9LZXlzKCkgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgIH0sCi0KLSAgICBzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlT2ZJbnRlcmVzdCkgewotICAgIH0sCi0KLSAgICB1cGRhdGVUYWJsZV86IGZ1bmN0aW9uKCkgewotICAgIH0KLSAgfSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfc2lkZV9wYW5lbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4OTBlYjEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NpZGVfcGFuZWxfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIHRlc3RfdXRpbHMgPSB0ci5jLnRlc3RfdXRpbHM7Ci0KLQotICBmdW5jdGlvbiBTdHViUkFJTEludGVyYWN0aW9uUmVjb3JkKGFyZ3MpIHsKLSAgICB2YXIgc2QgPSB0ZXN0X3V0aWxzLmdldFN0YXJ0QW5kRHVyYXRpb25Gcm9tRGljdChhcmdzKTsKLSAgICB0ci5lLnJhaWwuUkFJTEludGVyYWN0aW9uUmVjb3JkLmNhbGwoCi0gICAgICAgICB0aGlzLCBhcmdzLnJhaWxUeXBlTmFtZSwgYXJncy5yYWlsVHlwZU5hbWUsCi0gICAgICAgICBzZC5zdGFydCwgc2QuZHVyYXRpb24pOwotCi0gICAgdGhpcy5hcmdzID0gYXJnczsKLSAgfQotCi0gIFN0dWJSQUlMSW50ZXJhY3Rpb25SZWNvcmQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuZS5yYWlsLlJBSUxJbnRlcmFjdGlvblJlY29yZC5wcm90b3R5cGUsCi0KLSAgICBnZXQgbm9ybWFsaXplZFVzZXJQYWluKCkgewotICAgICAgcmV0dXJuIHRoaXMuYXJncy5ub3JtYWxpemVkVXNlclBhaW47Ci0gICAgfSwKLQotICAgIGdldCBub3JtYWxpemVkRWZmaWNpZW5jeSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmFyZ3Mubm9ybWFsaXplZEVmZmljaWVuY3k7Ci0gICAgfQotICB9OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLXJhaWwtc2NvcmUtc2lkZS1wYW5lbCcpOwotICAgIHBhbmVsLm1vZGVsID0gdGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgewotICAgICAgbW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQobmV3IFN0dWJSQUlMSW50ZXJhY3Rpb25SZWNvcmQoewotICAgICAgICBzdGFydDogMCwgZW5kOiAxMDAsCi0gICAgICAgIHJhaWxUeXBlTmFtZTogJ3JhaWxfaWRsZScsCi0gICAgICAgIG5vcm1hbGl6ZWRFZmZpY2llbmN5OiAwLjgsCi0gICAgICAgIG5vcm1hbGl6ZWRVc2VyUGFpbjogMC4wCi0gICAgICB9KSk7Ci0gICAgICBtb2RlbC5hZGRJbnRlcmFjdGlvblJlY29yZChuZXcgU3R1YlJBSUxJbnRlcmFjdGlvblJlY29yZCh7Ci0gICAgICAgIHN0YXJ0OiAxMDAsIGVuZDogMjAwLAotICAgICAgICByYWlsVHlwZU5hbWU6ICdyYWlsX3Jlc3BvbnNlJywKLSAgICAgICAgbm9ybWFsaXplZEVmZmljaWVuY3k6IDEuLAotICAgICAgICBub3JtYWxpemVkVXNlclBhaW46IDAuMAotICAgICAgfSkpOwotICAgIH0pOwotICAgIHBhbmVsLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NwYW4uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zcGFuLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ZDNkNDUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NwYW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX3Njb3JlLmh0bWwiPgotPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci1lLXJhaWwtcmFpbC1zY29yZS1zcGFuIj4KLSAgPHRlbXBsYXRlPgotICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogc3BhbjsKLSAgICB9Ci0gIDwvc3R5bGU+Ci0gIDxzcGFuIGlkPSJjb250ZW50Ij4KLSAgICA8c3Bhbj5SQUlMIFNjb3JlOiA8L3NwYW4+PHNwYW4gaWQ9InNjb3JlIj48L3NwYW4+Ci0gIDwvc3Bhbj4KLSAgPC90ZW1wbGF0ZT4KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5yYWlsU2NvcmVfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRfKCk7Ci0gICAgfSwKLQotICAgIGdldCByYWlsU2NvcmUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yYWlsU2NvcmVfOwotICAgIH0sCi0KLSAgICBzZXQgcmFpbFNjb3JlKHJhaWxTY29yZSkgewotICAgICAgdGhpcy5yYWlsU2NvcmVfID0gcmFpbFNjb3JlOwotICAgICAgdGhpcy51cGRhdGVDb250ZW50XygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50XzogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5yYWlsU2NvcmVfID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdGhpcy4kLmNvbnRlbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgdGhpcy4kLmNvbnRlbnQuc3R5bGUuZGlzcGxheSA9ICcnOwotICAgICAgdmFyIG92ZXJhbGxTY29yZSA9IHRoaXMucmFpbFNjb3JlXy5vdmVyYWxsU2NvcmU7Ci0gICAgICB0aGlzLiQuc2NvcmUudGV4dENvbnRlbnQgPSBvdmVyYWxsU2NvcmUudG9Mb2NhbGVTdHJpbmcoCi0gICAgICAgICAgdW5kZWZpbmVkLAotICAgICAgICAgIHttaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDN9KTsKLSAgICB9Ci0gIH0pOwotICA8L3NjcmlwdD4KLTwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzYmE5NzguLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCd6ZXJvSW50ZXJhY3Rpb25SZWNvcmRzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNjb3JlID0gbmV3IHRyLmUucmFpbC5SQUlMU2NvcmUoKTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgc2NvcmUuaW50ZXJhY3Rpb25SZWNvcmRzLmxlbmd0aCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHNjb3JlLm92ZXJhbGxTY29yZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ292ZXJhbGxTY29yZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzY29yZSA9IG5ldyB0ci5lLnJhaWwuUkFJTFNjb3JlKFsKLSAgICAgIHtyYWlsU2NvcmU6IDAuOX0sCi0gICAgICB7cmFpbFNjb3JlOiAxLjB9LAotICAgICAge3JhaWxTY29yZTogMC44OX0sCi0gICAgICB7cmFpbFNjb3JlOiAxLjB9LAotICAgICAge3JhaWxTY29yZTogMC4xfQotICAgIF0pOwotICAgIGFzc2VydC5lcXVhbCg1LCBzY29yZS5pbnRlcmFjdGlvblJlY29yZHMubGVuZ3RoKTsKLQotICAgIHZhciBleHBlY3RlZE92ZXJhbGxTY29yZSA9IDAuNzI7Ci0gICAgYXNzZXJ0LmNsb3NlVG8oc2NvcmUub3ZlcmFsbFNjb3JlLCAwLjcyLCAwLjAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZnJvbU1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gdHIuZS5hdWRpdHMubmV3Q2hyb21lTW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgIG1vZGVsLmFkZEludGVyYWN0aW9uUmVjb3JkKG5ldyB0ci5lLnJhaWwuUkFJTEludGVyYWN0aW9uUmVjb3JkKAotICAgICAgICAgICdJZGxlJywgJ3JhaWxfaWRsZScsIDAsIDEpKTsKLSAgICB9KTsKLSAgICB2YXIgc2NvcmUgPSB0ci5lLnJhaWwuUkFJTFNjb3JlLmZyb21Nb2RlbChtb2RlbCk7Ci0gICAgYXNzZXJ0LmVxdWFsKDEsIHNjb3JlLmludGVyYWN0aW9uUmVjb3Jkcy5sZW5ndGgpOwotICB9KTsKLQotICB0ZXN0KCdmcm9tRW1wdHlNb2RlbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IHRyLmUuYXVkaXRzLm5ld0Nocm9tZU1vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHRyLmUucmFpbC5SQUlMU2NvcmUuZnJvbU1vZGVsKG1vZGVsKSk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmVzcG9uc2VfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL3Jlc3BvbnNlX2ludGVyYWN0aW9uX3JlY29yZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDdhMzg5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvcmVzcG9uc2VfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBUaGUgUmVzcG9uc2UgcGhhc2Ugb2YgUkFJTC4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLmUucmFpbCcsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBSZXNwb25zZUludGVyYWN0aW9uUmVjb3JkKHN0YXJ0LCBkdXJhdGlvbikgewotICAgIHRyLmUucmFpbC5SQUlMSW50ZXJhY3Rpb25SZWNvcmQuY2FsbCgKLSAgICAgICAgdGhpcywgJ1Jlc3BvbnNlJywgJ3JhaWxfcmVzcG9uc2UnLAotICAgICAgICBzdGFydCwgZHVyYXRpb24pOwotICB9Ci0KLSAgUmVzcG9uc2VJbnRlcmFjdGlvblJlY29yZC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5lLnJhaWwuUkFJTEludGVyYWN0aW9uUmVjb3JkLnByb3RvdHlwZSwKLQotICAgIGdldCBub3JtYWxpemVkVXNlclBhaW4oKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9LAotCi0gICAgZ2V0IG5vcm1hbGl6ZWRFZmZpY2llbmN5KCkgewotICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgUmVzcG9uc2VJbnRlcmFjdGlvblJlY29yZDogUmVzcG9uc2VJbnRlcmFjdGlvblJlY29yZAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvYWxlcnRzX3NpZGVfcGFuZWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvYWxlcnRzX3NpZGVfcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTllYjJlMS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zaWRlX3BhbmVsL2FsZXJ0c19zaWRlX3BhbmVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV9tb2RlbF9oZWxwZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvdGFibGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2lkZV9wYW5lbC9zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NlbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zdGF0aXN0aWNzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2RvbV9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2xpbmVfY2hhcnQuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItZS1zLWFsZXJ0cy1zaWRlLXBhbmVsJwotICAgIGV4dGVuZHM9J3RyLWMtc2lkZS1wYW5lbCc+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICB3aWR0aDogMjUwcHg7Ci0gICAgfQotICAgICNjb250ZW50IHsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICA8L3N0eWxlPgotCi0gICAgPGRpdiBpZD0nY29udGVudCc+Ci0gICAgICA8dG9vbGJhciBpZD0ndG9vbGJhcic+PC90b29sYmFyPgotICAgICAgPHJlc3VsdC1hcmVhIGlkPSdyZXN1bHRfYXJlYSc+PC9yZXN1bHQtYXJlYT4KLSAgICA8L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLQotICA8c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgUG9seW1lcih7Ci0gICAgcmVhZHk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5yYW5nZU9mSW50ZXJlc3RfID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IG1vZGVsKCkgewotICAgICAgcmV0dXJuIHRoaXMubW9kZWxfOwotICAgIH0sCi0KLSAgICBzZXQgbW9kZWwobW9kZWwpIHsKLSAgICAgIHRoaXMubW9kZWxfID0gbW9kZWw7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgbGlzdGVuaW5nVG9LZXlzKCkgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgewotICAgIH0sCi0KLSAgICBzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlT2ZJbnRlcmVzdCkgewotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBGaXJlcyBhIHNlbGVjdGlvbiBldmVudCBzZWxlY3RpbmcgYWxsIGFsZXJ0cyBvZiB0aGUgc3BlY2lmaWVkCi0gICAgICogdHlwZS4KLSAgICAgKi8KLSAgICBzZWxlY3RBbGVydHNPZlR5cGU6IGZ1bmN0aW9uKGFsZXJ0VHlwZVN0cmluZykgewotICAgICAgdmFyIGFsZXJ0c09mVHlwZSA9IHRoaXMubW9kZWxfLmFsZXJ0cy5maWx0ZXIoZnVuY3Rpb24oYWxlcnQpIHsKLSAgICAgICAgcmV0dXJuIGFsZXJ0LnRpdGxlID09PSBhbGVydFR5cGVTdHJpbmc7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIGV2ZW50ID0gbmV3IHRyLmMuUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7Ci0gICAgICBldmVudC5zZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oYWxlcnRzT2ZUeXBlKTsKLSAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgYSBtYXAgZm9yIHRoZSBzcGVjaWZpZWQgYWxlcnRzIHdoZXJlIGVhY2gga2V5IGlzIHRoZQotICAgICAqIGFsZXJ0IHR5cGUgc3RyaW5nIGFuZCBlYWNoIHZhbHVlIGlzIGEgbGlzdCBvZiBhbGVydHMgd2l0aCB0aGF0Ci0gICAgICogdHlwZS4KLSAgICAgKi8KLSAgICBhbGVydHNCeVR5cGVfOiBmdW5jdGlvbihhbGVydHMpIHsKLSAgICAgIHZhciBhbGVydHNCeVR5cGUgPSB7fTsKLSAgICAgIGFsZXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKGFsZXJ0KSB7Ci0gICAgICAgIGlmICghYWxlcnRzQnlUeXBlW2FsZXJ0LnRpdGxlXSkKLSAgICAgICAgICBhbGVydHNCeVR5cGVbYWxlcnQudGl0bGVdID0gW107Ci0KLSAgICAgICAgYWxlcnRzQnlUeXBlW2FsZXJ0LnRpdGxlXS5wdXNoKGFsZXJ0KTsKLSAgICAgIH0pOwotICAgICAgcmV0dXJuIGFsZXJ0c0J5VHlwZTsKLSAgICB9LAotCi0gICAgYWxlcnRzVGFibGVSb3dzXzogZnVuY3Rpb24oYWxlcnRzQnlUeXBlKSB7Ci0gICAgICByZXR1cm4gT2JqZWN0LmtleXMoYWxlcnRzQnlUeXBlKS5tYXAoZnVuY3Rpb24oa2V5KSB7Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgYWxlcnRUeXBlOiBrZXksCi0gICAgICAgICAgY291bnQ6IGFsZXJ0c0J5VHlwZVtrZXldLmxlbmd0aAotICAgICAgICB9OwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGFsZXJ0c1RhYmxlQ29sdW1uc186IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIFsKLSAgICAgICAgewotICAgICAgICAgIHRpdGxlOiAnQWxlcnQgdHlwZScsCi0gICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmFsZXJ0VHlwZTsgfSwKLSAgICAgICAgICB3aWR0aDogJzE4MHB4JwotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgdGl0bGU6ICdDb3VudCcsCi0gICAgICAgICAgd2lkdGg6ICcxMDAlJywKLSAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuY291bnQ7IH0KLSAgICAgICAgfQotICAgICAgXTsKLSAgICB9LAotCi0gICAgY3JlYXRlQWxlcnRzVGFibGVfOiBmdW5jdGlvbihhbGVydHMpIHsKLSAgICAgIHZhciBhbGVydHNCeVR5cGUgPSB0aGlzLmFsZXJ0c0J5VHlwZV8oYWxlcnRzKTsKLQotICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYi11aS10YWJsZScpOwotICAgICAgdGFibGUudGFibGVDb2x1bW5zID0gdGhpcy5hbGVydHNUYWJsZUNvbHVtbnNfKCk7Ci0gICAgICB0YWJsZS50YWJsZVJvd3MgPSB0aGlzLmFsZXJ0c1RhYmxlUm93c18oYWxlcnRzQnlUeXBlKTsKLSAgICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKLSAgICAgIHRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbi1jaGFuZ2VkJywgZnVuY3Rpb24oZSkgewotICAgICAgICB2YXIgcm93ID0gdGFibGUuc2VsZWN0ZWRUYWJsZVJvdzsKLSAgICAgICAgaWYgKHJvdykKLSAgICAgICAgICB0aGlzLnNlbGVjdEFsZXJ0c09mVHlwZShyb3cuYWxlcnRUeXBlKTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0KLSAgICAgIHJldHVybiB0YWJsZTsKLSAgICB9LAotCi0gICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuJC5yZXN1bHRfYXJlYS50ZXh0Q29udGVudCA9ICcnOwotICAgICAgaWYgKHRoaXMubW9kZWxfID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHBhbmVsID0gdGhpcy5jcmVhdGVBbGVydHNUYWJsZV8odGhpcy5tb2RlbF8uYWxlcnRzKTsKLSAgICAgIHRoaXMuJC5yZXN1bHRfYXJlYS5hcHBlbmRDaGlsZChwYW5lbCk7Ci0gICAgfSwKLQotICAgIHN1cHBvcnRzTW9kZWw6IGZ1bmN0aW9uKG0pIHsKLSAgICAgIGlmIChtID09IHVuZGVmaW5lZCkgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCi0gICAgICAgICAgcmVhc29uOiAnVW5rbm93biB0cmFjaW5nIG1vZGVsJwotICAgICAgICB9OwotICAgICAgfSBlbHNlIGlmIChtLmFsZXJ0cy5sZW5ndGggPT09IDApIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlLAotICAgICAgICAgIHJlYXNvbjogJ05vIGFsZXJ0cyBpbiB0cmFjaW5nIG1vZGVsJwotICAgICAgICB9OwotICAgICAgfQotCi0gICAgICByZXR1cm4gewotICAgICAgICBzdXBwb3J0ZWQ6IHRydWUKLSAgICAgIH07Ci0gICAgfSwKLQotICAgIGdldCB0ZXh0TGFiZWwoKSB7Ci0gICAgICByZXR1cm4gJ0FsZXJ0cyc7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvYWxlcnRzX3NpZGVfcGFuZWxfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc2lkZV9wYW5lbC9hbGVydHNfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyNjQ0OTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc2lkZV9wYW5lbC9hbGVydHNfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvc2lkZV9wYW5lbC9hbGVydHNfc2lkZV9wYW5lbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBBTEVSVF9JTkZPXzEgPSBuZXcgdHIubW9kZWwuRXZlbnRJbmZvKAotICAgICdBbGVydCAxJywgJ0NyaXRpY2FsIGFsZXJ0Jyk7Ci0gIHZhciBBTEVSVF9JTkZPXzIgPSBuZXcgdHIubW9kZWwuRXZlbnRJbmZvKAotICAgICdBbGVydCAyJywgJ1dhcm5pbmcgYWxlcnQnKTsKLQotICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcy1hbGVydHMtc2lkZS1wYW5lbCcpOwotICAgIHBhbmVsLm1vZGVsID0gY3JlYXRlTW9kZWxXaXRoQWxlcnRzKFsKLSAgICAgIG5ldyB0ci5tb2RlbC5BbGVydChBTEVSVF9JTkZPXzEsIDUpLAotICAgICAgbmV3IHRyLm1vZGVsLkFsZXJ0KEFMRVJUX0lORk9fMiwgMzUpCi0gICAgXSk7Ci0gICAgcGFuZWwuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsKLQotICAgIHRoaXMuYWRkSFRNTE91dHB1dChwYW5lbCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NlbGVjdEFsZXJ0c09mVHlwZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcy1hbGVydHMtc2lkZS1wYW5lbCcpOwotICAgIHZhciBhbGVydHMgPSBbCi0gICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCAxKSwKLSAgICAgIG5ldyB0ci5tb2RlbC5BbGVydChBTEVSVF9JTkZPXzEsIDIpLAotICAgICAgbmV3IHRyLm1vZGVsLkFsZXJ0KEFMRVJUX0lORk9fMiwgMykKLSAgICBdOwotICAgIHBhbmVsLm1vZGVsID0gY3JlYXRlTW9kZWxXaXRoQWxlcnRzKGFsZXJ0cyk7Ci0gICAgcGFuZWwuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOwotCi0gICAgdmFyIHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKLSAgICBwYW5lbC5hZGRFdmVudExpc3RlbmVyKCdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywgZnVuY3Rpb24oZSkgewotICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7Ci0gICAgICBhc3NlcnQubGVuZ3RoT2YoZS5zZWxlY3Rpb24sIDIpOwotICAgICAgYXNzZXJ0LmVxdWFsKGFsZXJ0c1swXSwgZS5zZWxlY3Rpb25bMF0pOwotICAgICAgYXNzZXJ0LmVxdWFsKGFsZXJ0c1sxXSwgZS5zZWxlY3Rpb25bMV0pOwotICAgIH0pOwotICAgIHBhbmVsLnNlbGVjdEFsZXJ0c09mVHlwZShBTEVSVF9JTkZPXzEudGl0bGUpOwotCi0gICAgYXNzZXJ0LmlzVHJ1ZShzZWxlY3Rpb25DaGFuZ2VkKTsKLSAgfSk7Ci0KLSAgZnVuY3Rpb24gY3JlYXRlTW9kZWxXaXRoQWxlcnRzKGFsZXJ0cykgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5hbGVydHMgPSBhbGVydHM7Ci0gICAgcmV0dXJuIG07Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc2lkZV9wYW5lbC9pbnB1dF9sYXRlbmN5X3NpZGVfcGFuZWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNjNlNGUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc2lkZV9wYW5lbC9pbnB1dF9sYXRlbmN5X3NpZGVfcGFuZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZG9tX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvbGluZV9jaGFydC5odG1sIj4KLQotPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci1lLXMtaW5wdXQtbGF0ZW5jeS1zaWRlLXBhbmVsJwotICAgIGV4dGVuZHM9J3RyLWMtc2lkZS1wYW5lbCc+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8c3R5bGU+Ci0gICAgOmhvc3QgewotICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgfQotICAgIHRvb2xiYXIgewotICAgICAgZmxleDogMCAwIGF1dG87Ci0gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICByZXN1bHQtYXJlYSB7Ci0gICAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgbWluLWhlaWdodDogMDsKLSAgICAgIG92ZXJmbG93LXk6IGF1dG87Ci0gICAgfQotICAgIDwvc3R5bGU+Ci0KLSAgICA8dG9vbGJhciBpZD0ndG9vbGJhcic+PC90b29sYmFyPgotICAgIDxyZXN1bHQtYXJlYSBpZD0ncmVzdWx0X2FyZWEnPjwvcmVzdWx0LWFyZWE+Ci0gIDwvdGVtcGxhdGU+Ci0KLSAgPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIFBvbHltZXIoewotICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICB0aGlzLmZyYW1ldGltZVR5cGVfID0gdHIuZS5hdWRpdHMuSU1QTF9GUkFNRVRJTUVfVFlQRTsKLSAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuZnJhbWV0aW1lQ2hhcnRfID0gdW5kZWZpbmVkOwotICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3NJZF8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLm1vdXNlRG93bkluZGV4XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuY3VyTW91c2VJbmRleF8gPSB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIGdldCBtb2RlbCgpIHsKLSAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKLSAgICB9LAotCi0gICAgc2V0IG1vZGVsKG1vZGVsKSB7Ci0gICAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOwotICAgICAgaWYgKHRoaXMubW9kZWxfKQotICAgICAgICB0aGlzLm1vZGVsSGVscGVyXyA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtb2RlbCk7Ci0gICAgICBlbHNlCi0gICAgICAgIHRoaXMubW9kZWxIZWxwZXJfID0gdW5kZWZpbmVkOwotCi0gICAgICB0aGlzLnVwZGF0ZVRvb2xiYXJfKCk7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgZnJhbWV0aW1lVHlwZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmZyYW1ldGltZVR5cGVfOwotICAgIH0sCi0KLSAgICBzZXQgZnJhbWV0aW1lVHlwZSh0eXBlKSB7Ci0gICAgICBpZiAodGhpcy5mcmFtZXRpbWVUeXBlXyA9PT0gdHlwZSkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5mcmFtZXRpbWVUeXBlXyA9IHR5cGU7Ci0gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0ZWRQcm9jZXNzSWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFByb2Nlc3NJZF87Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3RlZFByb2Nlc3NJZChwcm9jZXNzKSB7Ci0gICAgICBpZiAodGhpcy5zZWxlY3RlZFByb2Nlc3NJZF8gPT09IHByb2Nlc3MpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzSWRfID0gcHJvY2VzczsKLSAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7Ci0gICAgfSwKLQotICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICBpZiAodGhpcy5sYXRlbmN5Q2hhcnRfID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0Xy5icnVzaGVkUmFuZ2UgPSBzZWxlY3Rpb24uYm91bmRzOwotICAgIH0sCi0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGZvciB0ZXN0aW5nIHB1cnBvc2UuCi0gICAgc2V0QnJ1c2hlZEluZGljZXM6IGZ1bmN0aW9uKG1vdXNlRG93bkluZGV4LCBjdXJJbmRleCkgewotICAgICAgdGhpcy5tb3VzZURvd25JbmRleF8gPSBtb3VzZURvd25JbmRleDsKLSAgICAgIHRoaXMuY3VyTW91c2VJbmRleF8gPSBjdXJJbmRleDsKLSAgICAgIHRoaXMudXBkYXRlQnJ1c2hlZFJhbmdlXygpOwotICAgIH0sCi0KLSAgICB1cGRhdGVCcnVzaGVkUmFuZ2VfOiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICh0aGlzLmxhdGVuY3lDaGFydF8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgciA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICBpZiAodGhpcy5tb3VzZURvd25JbmRleF8gPT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLmxhdGVuY3lDaGFydF8uYnJ1c2hlZFJhbmdlID0gcjsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgciA9IHRoaXMubGF0ZW5jeUNoYXJ0Xy5jb21wdXRlQnJ1c2hSYW5nZUZyb21JbmRpY2VzKAotICAgICAgICAgIHRoaXMubW91c2VEb3duSW5kZXhfLCB0aGlzLmN1ck1vdXNlSW5kZXhfKTsKLSAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0Xy5icnVzaGVkUmFuZ2UgPSByOwotCi0gICAgICAvLyBCYXNlZCBvbiB0aGUgYnJ1c2hlZCByYW5nZSwgdXBkYXRlIHRoZSBzZWxlY3Rpb24gb2YgTGF0ZW5jeUluZm8gaW4KLSAgICAgIC8vIHRoZSB0aW1lbGluZSB2aWV3IGJ5IHNlbmRpbmcgYSBzZWxlY3Rpb25DaGFuZ2UgZXZlbnQuCi0gICAgICB2YXIgbGF0ZW5jeVNsaWNlcyA9IFtdOwotICAgICAgdGhpcy5tb2RlbF8uZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICAgIHRocmVhZC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgaWYgKGV2ZW50LnRpdGxlLmluZGV4T2YoJ0lucHV0TGF0ZW5jeTonKSA9PT0gMCkKLSAgICAgICAgICAgIGxhdGVuY3lTbGljZXMucHVzaChldmVudCk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgICBsYXRlbmN5U2xpY2VzID0gdHIuZS5hdWRpdHMuZ2V0U2xpY2VzSW50ZXJzZWN0aW5nUmFuZ2UociwgbGF0ZW5jeVNsaWNlcyk7Ci0KLSAgICAgIHZhciBldmVudCA9IG5ldyB0ci5jLlJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOwotICAgICAgZXZlbnQuc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKGxhdGVuY3lTbGljZXMpOwotICAgICAgdGhpcy5sYXRlbmN5Q2hhcnRfLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgIH0sCi0KLSAgICByZWdpc3Rlck1vdXNlRXZlbnRGb3JMYXRlbmN5Q2hhcnRfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0Xy5hZGRFdmVudExpc3RlbmVyKCdpdGVtLW1vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGhpcy5tb3VzZURvd25JbmRleF8gPSBlLmluZGV4OwotICAgICAgICB0aGlzLmN1ck1vdXNlSW5kZXhfID0gZS5pbmRleDsKLSAgICAgICAgdGhpcy51cGRhdGVCcnVzaGVkUmFuZ2VfKCk7Ci0gICAgICB9LmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLmxhdGVuY3lDaGFydF8uYWRkRXZlbnRMaXN0ZW5lcignaXRlbS1tb3VzZW1vdmUnLCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGlmIChlLmJ1dHRvbiA9PSB1bmRlZmluZWQpCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLmN1ck1vdXNlSW5kZXhfID0gZS5pbmRleDsKLSAgICAgICAgdGhpcy51cGRhdGVCcnVzaGVkUmFuZ2VfKCk7Ci0gICAgICB9LmJpbmQodGhpcykpOwotCi0gICAgICB0aGlzLmxhdGVuY3lDaGFydF8uYWRkRXZlbnRMaXN0ZW5lcignaXRlbS1tb3VzZXVwJywgZnVuY3Rpb24oZSkgewotICAgICAgICB0aGlzLmN1ck1vdXNlSW5kZXggPSBlLmluZGV4OwotICAgICAgICB0aGlzLnVwZGF0ZUJydXNoZWRSYW5nZV8oKTsKLSAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZVRvb2xiYXJfOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBicm93c2VyUHJvY2VzcyA9IHRoaXMubW9kZWxIZWxwZXJfLmJyb3dzZXJQcm9jZXNzOwotICAgICAgdmFyIGxhYmVscyA9IFtdOwotCi0gICAgICBpZiAoYnJvd3NlclByb2Nlc3MgIT09IHVuZGVmaW5lZCkgewotICAgICAgICB2YXIgbGFiZWxfc3RyID0gJ0Jyb3dzZXI6ICcgKyBicm93c2VyUHJvY2Vzcy5waWQ7Ci0gICAgICAgIGxhYmVscy5wdXNoKHtsYWJlbDogbGFiZWxfc3RyLCB2YWx1ZTogYnJvd3NlclByb2Nlc3MucGlkfSk7Ci0gICAgICB9Ci0KLSAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMubW9kZWxIZWxwZXJfLnJlbmRlcmVySGVscGVycywKLSAgICAgICAgZnVuY3Rpb24ocGlkLCByZW5kZXJlckhlbHBlcikgewotICAgICAgICAgIHZhciByZW5kZXJlclByb2Nlc3MgPSByZW5kZXJlckhlbHBlci5wcm9jZXNzOwotICAgICAgICAgIHZhciBsYWJlbF9zdHIgPSAnUmVuZGVyZXI6ICcgKyByZW5kZXJlclByb2Nlc3MudXNlckZyaWVuZGx5TmFtZTsKLSAgICAgICAgICBsYWJlbHMucHVzaCh7bGFiZWw6IGxhYmVsX3N0ciwgdmFsdWU6IHJlbmRlcmVyUHJvY2Vzcy51c2VyRnJpZW5kbHlOYW1lCi0gICAgICAgIH0pOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIGlmIChsYWJlbHMubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzSWRfID0gbGFiZWxzWzBdLnZhbHVlOwotICAgICAgdmFyIHRvb2xiYXJFbCA9IHRoaXMuJC50b29sYmFyOwotICAgICAgdG9vbGJhckVsLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU2VsZWN0b3IoCi0gICAgICAgICAgdGhpcywgJ2ZyYW1ldGltZVR5cGUnLAotICAgICAgICAgICdpbnB1dExhdGVuY3lTaWRlUGFuZWwuZnJhbWV0aW1lVHlwZScsIHRoaXMuZnJhbWV0aW1lVHlwZV8sCi0gICAgICAgICAgW3tsYWJlbDogJ01haW4gVGhyZWFkIEZyYW1lIFRpbWVzJywKLSAgICAgICAgICAgIHZhbHVlOiB0ci5lLmF1ZGl0cy5NQUlOX0ZSQU1FVElNRV9UWVBFfSwKLSAgICAgICAgICAge2xhYmVsOiAnSW1wbCBUaHJlYWQgRnJhbWUgVGltZXMnLAotICAgICAgICAgICAgdmFsdWU6IHRyLmUuYXVkaXRzLklNUExfRlJBTUVUSU1FX1RZUEV9Ci0gICAgICAgICAgXSkpOwotICAgICAgdG9vbGJhckVsLmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU2VsZWN0b3IoCi0gICAgICAgICAgdGhpcywgJ3NlbGVjdGVkUHJvY2Vzc0lkJywKLSAgICAgICAgICAnaW5wdXRMYXRlbmN5U2lkZVBhbmVsLnNlbGVjdGVkUHJvY2Vzc0lkJywKLSAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzc0lkXywKLSAgICAgICAgICBsYWJlbHMpKTsKLSAgICB9LAotCi0gICAgZ2V0IGN1cnJlbnRSYW5nZU9mSW50ZXJlc3QoKSB7Ci0gICAgICBpZiAodGhpcy5yYW5nZU9mSW50ZXJlc3RfLmlzRW1wdHkpCi0gICAgICAgIHJldHVybiB0aGlzLm1vZGVsXy5ib3VuZHM7Ci0gICAgICBlbHNlCi0gICAgICAgIHJldHVybiB0aGlzLnJhbmdlT2ZJbnRlcmVzdF87Ci0gICAgfSwKLQotICAgIGNyZWF0ZUxhdGVuY3lMaW5lQ2hhcnQ6IGZ1bmN0aW9uKGRhdGEsIHRpdGxlKSB7Ci0gICAgICB2YXIgY2hhcnQgPSBuZXcgdHIuYi51aS5MaW5lQ2hhcnQoKTsKLSAgICAgIHZhciB3aWR0aCA9IDYwMDsKLSAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICE9IHVuZGVmaW5lZCkKLSAgICAgICAgd2lkdGggPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICogMC41OwotICAgICAgY2hhcnQuc2V0U2l6ZSh7d2lkdGg6IHdpZHRoLCBoZWlnaHQ6IGNoYXJ0LmhlaWdodH0pOwotICAgICAgY2hhcnQuY2hhcnRUaXRsZSA9IHRpdGxlOwotICAgICAgY2hhcnQuZGF0YSA9IGRhdGE7Ci0gICAgICByZXR1cm4gY2hhcnQ7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgcmVzdWx0QXJlYSA9IHRoaXMuJC5yZXN1bHRfYXJlYTsKLSAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0XyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuZnJhbWV0aW1lQ2hhcnRfID0gdW5kZWZpbmVkOwotICAgICAgcmVzdWx0QXJlYS50ZXh0Q29udGVudCA9ICcnOwotCi0gICAgICBpZiAodGhpcy5tb2RlbEhlbHBlcl8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgcmFuZ2VPZkludGVyZXN0ID0gdGhpcy5jdXJyZW50UmFuZ2VPZkludGVyZXN0OwotCi0gICAgICB2YXIgY2hyb21lUHJvY2VzczsKLSAgICAgIGlmICh0aGlzLm1vZGVsSGVscGVyXy5yZW5kZXJlckhlbHBlcnNbdGhpcy5zZWxlY3RlZFByb2Nlc3NJZF9dKQotICAgICAgICBjaHJvbWVQcm9jZXNzID0gdGhpcy5tb2RlbEhlbHBlcl8ucmVuZGVyZXJIZWxwZXJzWwotICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzSWRfCi0gICAgICAgIF07Ci0gICAgICBlbHNlCi0gICAgICAgIGNocm9tZVByb2Nlc3MgPSB0aGlzLm1vZGVsSGVscGVyXy5icm93c2VySGVscGVyOwotCi0gICAgICB2YXIgZnJhbWVFdmVudHMgPSBjaHJvbWVQcm9jZXNzLmdldEZyYW1lRXZlbnRzSW5SYW5nZSgKLSAgICAgICAgICB0aGlzLmZyYW1ldGltZVR5cGUsIHJhbmdlT2ZJbnRlcmVzdCk7Ci0KLSAgICAgIHZhciBmcmFtZXRpbWVEYXRhID0gdHIuZS5hdWRpdHMuZ2V0RnJhbWV0aW1lRGF0YUZyb21FdmVudHMoZnJhbWVFdmVudHMpOwotICAgICAgdmFyIGF2ZXJhZ2VGcmFtZXRpbWUgPSB0ci5iLlN0YXRpc3RpY3MubWVhbihmcmFtZXRpbWVEYXRhLCBmdW5jdGlvbihkKSB7Ci0gICAgICAgIHJldHVybiBkLmZyYW1ldGltZTsKLSAgICAgIH0pOwotCi0gICAgICB2YXIgbGF0ZW5jeUV2ZW50cyA9IHRoaXMubW9kZWxIZWxwZXJfLmJyb3dzZXJIZWxwZXIuCi0gICAgICAgIGdldExhdGVuY3lFdmVudHNJblJhbmdlKAotICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdCk7Ci0KLSAgICAgIHZhciBsYXRlbmN5RGF0YSA9IFtdOwotICAgICAgbGF0ZW5jeUV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGlmIChldmVudC5pbnB1dExhdGVuY3kgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGxhdGVuY3lEYXRhLnB1c2goewotICAgICAgICAgIHg6IGV2ZW50LnN0YXJ0LAotICAgICAgICAgIGxhdGVuY3k6IGV2ZW50LmlucHV0TGF0ZW5jeSAvIDEwMDAKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIGF2ZXJhZ2VMYXRlbmN5ID0gdHIuYi5TdGF0aXN0aWNzLm1lYW4obGF0ZW5jeURhdGEsIGZ1bmN0aW9uKGQpIHsKLSAgICAgICAgcmV0dXJuIGQubGF0ZW5jeTsKLSAgICAgIH0pOwotCi0gICAgICAvLyBDcmVhdGUgc3VtbWFyeS4KLSAgICAgIHZhciBsYXRlbmN5U3VtbWFyeVRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgIGxhdGVuY3lTdW1tYXJ5VGV4dC5hcHBlbmRDaGlsZCh0ci5iLnVpLmNyZWF0ZVNwYW4oewotICAgICAgICB0ZXh0Q29udGVudDogJ0F2ZXJhZ2UgTGF0ZW5jeSAnICsgYXZlcmFnZUxhdGVuY3kgKyAnIG1zJywKLSAgICAgICAgYm9sZDogdHJ1ZX0pKTsKLSAgICAgIHJlc3VsdEFyZWEuYXBwZW5kQ2hpbGQobGF0ZW5jeVN1bW1hcnlUZXh0KTsKLQotICAgICAgdmFyIGZyYW1ldGltZVN1bW1hcnlUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICBmcmFtZXRpbWVTdW1tYXJ5VGV4dC5hcHBlbmRDaGlsZCh0ci5iLnVpLmNyZWF0ZVNwYW4oewotICAgICAgICB0ZXh0Q29udGVudDogJ0F2ZXJhZ2UgRnJhbWUgVGltZSAnICsgYXZlcmFnZUZyYW1ldGltZSArICcgbXMnLAotICAgICAgICBib2xkOiB0cnVlfSkpOwotICAgICAgcmVzdWx0QXJlYS5hcHBlbmRDaGlsZChmcmFtZXRpbWVTdW1tYXJ5VGV4dCk7Ci0KLSAgICAgIGlmIChsYXRlbmN5RGF0YS5sZW5ndGggIT09IDApIHsKLSAgICAgICAgdGhpcy5sYXRlbmN5Q2hhcnRfID0gdGhpcy5jcmVhdGVMYXRlbmN5TGluZUNoYXJ0KAotICAgICAgICAgICAgbGF0ZW5jeURhdGEsICdMYXRlbmN5IE92ZXIgVGltZScpOwotICAgICAgICB0aGlzLnJlZ2lzdGVyTW91c2VFdmVudEZvckxhdGVuY3lDaGFydF8oKTsKLSAgICAgICAgcmVzdWx0QXJlYS5hcHBlbmRDaGlsZCh0aGlzLmxhdGVuY3lDaGFydF8pOwotICAgICAgfQotCi0gICAgICBpZiAoZnJhbWV0aW1lRGF0YS5sZW5ndGggIT0gMCkgewotICAgICAgICB0aGlzLmZyYW1ldGltZUNoYXJ0XyA9IHRoaXMuY3JlYXRlTGF0ZW5jeUxpbmVDaGFydCgKLSAgICAgICAgICAgIGZyYW1ldGltZURhdGEsICdGcmFtZSBUaW1lcycpOwotICAgICAgICB0aGlzLmZyYW1ldGltZUNoYXJ0Xy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKLSAgICAgICAgcmVzdWx0QXJlYS5hcHBlbmRDaGlsZCh0aGlzLmZyYW1ldGltZUNoYXJ0Xyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGdldCByYW5nZU9mSW50ZXJlc3QoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOwotICAgIH0sCi0KLSAgICBzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlT2ZJbnRlcmVzdCkgewotICAgICAgdGhpcy5yYW5nZU9mSW50ZXJlc3RfID0gcmFuZ2VPZkludGVyZXN0OwotICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICB9LAotCi0gICAgc3VwcG9ydHNNb2RlbDogZnVuY3Rpb24obSkgewotICAgICAgaWYgKG0gPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSwKLSAgICAgICAgICByZWFzb246ICdVbmtub3duIHRyYWNpbmcgbW9kZWwnCi0gICAgICAgIH07Ci0gICAgICB9Ci0KLSAgICAgIGlmICghdHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIuc3VwcG9ydHNNb2RlbChtKSkgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCi0gICAgICAgICAgcmVhc29uOiAnTm8gQ2hyb21lIGJyb3dzZXIgb3IgcmVuZGVyZXIgcHJvY2VzcyBmb3VuZCcKLSAgICAgICAgfTsKLSAgICAgIH0KLQotICAgICAgdmFyIG1vZGVsSGVscGVyID0gbmV3IHRyLmUuYXVkaXRzLkNocm9tZU1vZGVsSGVscGVyKG0pOwotICAgICAgaWYgKG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIgJiYKLSAgICAgICAgbW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci5oYXNMYXRlbmN5RXZlbnRzKSB7Ci0gICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHN1cHBvcnRlZDogdHJ1ZQotICAgICAgICAgIH07Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiB7Ci0gICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCi0gICAgICAgIHJlYXNvbjogJ05vIElucHV0TGF0ZW5jeSBldmVudHMgdHJhY2UuIENvbnNpZGVyIGVuYWJsaW5nICcgKwotICAgICAgICAgICAgJ2JlbmNobWFyayIgYW5kICJpbnB1dCIgY2F0ZWdvcnkgd2hlbiByZWNvcmRpbmcgdGhlIHRyYWNlJwotICAgICAgfTsKLSAgICB9LAotCi0gICAgZ2V0IHRleHRMYWJlbCgpIHsKLSAgICAgIHJldHVybiAnSW5wdXQgTGF0ZW5jeSc7Ci0gICAgfQotICB9KTsKLSAgPC9zY3JpcHQ+Ci08L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIxOTAxMC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zaWRlX3BhbmVsL2lucHV0X2xhdGVuY3lfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdiYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBsYXRlbmN5RGF0YSA9IFsKLSAgICAgIHsKLSAgICAgICAgeDogMTAwMCwKLSAgICAgICAgbGF0ZW5jeTogMTYKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHg6IDIwMDAsCi0gICAgICAgIGxhdGVuY3k6IDE3Ci0gICAgICB9LAotICAgICAgewotICAgICAgICB4OiAzMDAwLAotICAgICAgICBsYXRlbmN5OiAxNAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgeDogNDAwMCwKLSAgICAgICAgbGF0ZW5jeTogMjMKLSAgICAgIH0KLSAgICBdOwotICAgIHZhciBsYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcy1pbnB1dC1sYXRlbmN5LXNpZGUtcGFuZWwnKTsKLSAgICB2YXIgbGF0ZW5jeUNoYXJ0ID0gbGMuY3JlYXRlTGF0ZW5jeUxpbmVDaGFydChsYXRlbmN5RGF0YSwgJ2xhdGVuY3knKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQobGF0ZW5jeUNoYXJ0KTsKLQotICAgIHZhciBmcmFtZXRpbWVEYXRhID0gWwotICAgICAgewotICAgICAgICB4OiAxMDAwLAotICAgICAgICBmcmFtZXRpbWU6IDE2Ci0gICAgICB9LAotICAgICAgewotICAgICAgICB4OiAyMDAwLAotICAgICAgICBmcmFtZXRpbWU6IDE3Ci0gICAgICB9LAotICAgICAgewotICAgICAgICB4OiAzMDAwLAotICAgICAgICBmcmFtZXRpbWU6IDE0Ci0gICAgICB9LAotICAgICAgewotICAgICAgICB4OiA0MDAwLAotICAgICAgICBmcmFtZXRpbWU6IDIzCi0gICAgICB9Ci0gICAgXTsKLSAgICB2YXIgbGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXMtaW5wdXQtbGF0ZW5jeS1zaWRlLXBhbmVsJyk7Ci0gICAgdmFyIGZyYW1ldGltZUNoYXJ0ID0gbGMuY3JlYXRlTGF0ZW5jeUxpbmVDaGFydChmcmFtZXRpbWVEYXRhLCAnZnJhbWV0aW1lJyk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGZyYW1ldGltZUNoYXJ0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnYnJ1c2hlZFJhbmdlQ2hhbmdlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGV2ZW50cyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewotICAgICAgdmFyIHN0YXJ0X3RzID0gaSAqIDEwMDAwOwotICAgICAgdmFyIGVuZF90cyA9IHN0YXJ0X3RzICsgMTAwMCAqIChpICUgMik7Ci0gICAgICBldmVudHMucHVzaCgKLSAgICAgICAgewotICAgICAgICAgICdjYXQnOiAnYmVuY2htYXJrJywKLSAgICAgICAgICAncGlkJzogMzUwNywKLSAgICAgICAgICAndGlkJzogMzUwNywKLSAgICAgICAgICAndHMnOiBzdGFydF90cywKLSAgICAgICAgICAncGgnOiAnUycsCi0gICAgICAgICAgJ25hbWUnOiAnSW5wdXRMYXRlbmN5JywKLSAgICAgICAgICAnaWQnOiBpCi0gICAgICAgIH0pOwotICAgICAgZXZlbnRzLnB1c2goCi0gICAgICAgIHsKLSAgICAgICAgICAnY2F0JzogJ2JlbmNobWFyaycsCi0gICAgICAgICAgJ3BpZCc6IDM1MDcsCi0gICAgICAgICAgJ3RpZCc6IDM1MDcsCi0gICAgICAgICAgJ3RzJzogZW5kX3RzLAotICAgICAgICAgICdwaCc6ICdUJywKLSAgICAgICAgICAnbmFtZSc6ICdJbnB1dExhdGVuY3knLAotICAgICAgICAgICdhcmdzJzogeydzdGVwJzogJ0dlc3R1cmVTY3JvbGxVcGRhdGUnfSwKLSAgICAgICAgICAnaWQnOiBpCi0gICAgICAgIH0pOwotICAgICAgZXZlbnRzLnB1c2goCi0gICAgICAgIHsKLSAgICAgICAgICAnY2F0JzogJ2JlbmNobWFyaycsCi0gICAgICAgICAgJ3BpZCc6IDM1MDcsCi0gICAgICAgICAgJ3RpZCc6IDM1MDcsCi0gICAgICAgICAgJ3RzJzogZW5kX3RzLAotICAgICAgICAgICdwaCc6ICdGJywKLSAgICAgICAgICAnbmFtZSc6ICdJbnB1dExhdGVuY3knLAotICAgICAgICAgICdhcmdzJzogewotICAgICAgICAgICAgJ2RhdGEnOiB7Ci0gICAgICAgICAgICAgICdJTlBVVF9FVkVOVF9MQVRFTkNZX09SSUdJTkFMX0NPTVBPTkVOVCc6IHsKLSAgICAgICAgICAgICAgICAndGltZSc6IHN0YXJ0X3RzCi0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICdJTlBVVF9FVkVOVF9MQVRFTkNZX1RFUk1JTkFURURfRlJBTUVfU1dBUF9DT01QT05FTlQnOiB7Ci0gICAgICAgICAgICAgICAgJ3RpbWUnOiBlbmRfdHMKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIH0sCi0gICAgICAgICAgJ2lkJzogaQotICAgICAgICB9KTsKLSAgICB9Ci0gICAgZXZlbnRzLnB1c2goeydjYXQnOiAnX19tZXRhZGF0YScsCi0gICAgICAncGlkJzogMzUwNywKLSAgICAgICd0aWQnOiAzNTA3LAotICAgICAgJ3RzJzogMCwKLSAgICAgICdwaCc6ICdNJywKLSAgICAgICduYW1lJzogJ3RocmVhZF9uYW1lJywKLSAgICAgICdhcmdzJzogeyduYW1lJzogJ0NyQnJvd3Nlck1haW4nfX0pOwotCi0gICAgdmFyIHBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1zLWlucHV0LWxhdGVuY3ktc2lkZS1wYW5lbCcpOwotICAgIHRoaXMuYWRkSFRNTE91dHB1dChwYW5lbCk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgIHBhbmVsLm1vZGVsID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7Ci0gICAgZnVuY3Rpb24gbGlzdGVuZXIoZSkgewotICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7Ci0gICAgICBhc3NlcnQuZXF1YWwoZS5zZWxlY3Rpb24ubGVuZ3RoLCAzKTsKLSAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblswXS5zdGFydCwgMjApOwotICAgICAgYXNzZXJ0LmVxdWFsKGUuc2VsZWN0aW9uWzFdLnN0YXJ0LCAzMSk7Ci0gICAgICBhc3NlcnQuZXF1YWwoZS5zZWxlY3Rpb25bMl0uc3RhcnQsIDQwKTsKLSAgICB9Ci0gICAgcGFuZWwub3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywgbGlzdGVuZXIpOwotICAgIHRyeSB7Ci0gICAgICBwYW5lbC5zZXRCcnVzaGVkSW5kaWNlcygyLCA0KTsKLSAgICB9IGZpbmFsbHkgewotICAgICAgcGFuZWwub3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKAotICAgICAgICAgICdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywgbGlzdGVuZXIpOwotICAgIH0KLSAgICBhc3NlcnQuaXNUcnVlKHNlbGVjdGlvbkNoYW5nZWQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zaWRlX3BhbmVsL3RpbWVfc3VtbWFyeV9zaWRlX3BhbmVsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zaWRlX3BhbmVsL3RpbWVfc3VtbWFyeV9zaWRlX3BhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmZWNiZWIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc2lkZV9wYW5lbC90aW1lX3N1bW1hcnlfc2lkZV9wYW5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2lkZV9wYW5lbC9zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvZG9tX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvcGllX2NoYXJ0Lmh0bWwiPgotCi08cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWUtcy10aW1lLXN1bW1hcnktc2lkZS1wYW5lbCIKLSAgICBleHRlbmRzPSJ0ci1jLXNpZGUtcGFuZWwiPgotICA8dGVtcGxhdGU+Ci0gICAgPHN0eWxlPgotICAgIDpob3N0IHsKLSAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAgICBkaXNwbGF5OiBmbGV4OwotICAgIH0KLSAgICB0b29sYmFyIHsKLSAgICAgIGZsZXg6IDAgMCBhdXRvOwotICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOwotICAgICAgZGlzcGxheTogZmxleDsKLSAgICB9Ci0gICAgcmVzdWx0LWFyZWEgewotICAgICAgZmxleDogMSAxIGF1dG87Ci0gICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgIG1pbi1oZWlnaHQ6IDA7Ci0gICAgICBvdmVyZmxvdy15OiBhdXRvOwotICAgIH0KLSAgICA8L3N0eWxlPgotCi0gICAgPHRvb2xiYXIgaWQ9J3Rvb2xiYXInPjwvdG9vbGJhcj4KLSAgICA8cmVzdWx0LWFyZWEgaWQ9J3Jlc3VsdF9hcmVhJz48L3Jlc3VsdC1hcmVhPgotICA8L3RlbXBsYXRlPgotCi0gIDxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLSAgKGZ1bmN0aW9uKCkgewotICAgIHZhciBHUk9VUF9CWV9QUk9DRVNTX05BTUUgPSAncHJvY2Vzcyc7Ci0gICAgdmFyIEdST1VQX0JZX1RIUkVBRF9OQU1FID0gJ3RocmVhZCc7Ci0KLSAgICB2YXIgV0FMTF9USU1FX0dST1VQSU5HX1VOSVQgPSAnV2FsbCB0aW1lJzsKLSAgICB2YXIgQ1BVX1RJTUVfR1JPVVBJTkdfVU5JVCA9ICdDUFUgdGltZSc7Ci0KLSAgICAvKioKLSAgICAgKiBAY29uc3RydWN0b3IKLSAgICAgKi8KLSAgICBmdW5jdGlvbiBSZXN1bHRzRm9yR3JvdXAobW9kZWwsIG5hbWUpIHsKLSAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDsKLSAgICAgIHRoaXMubmFtZSA9IG5hbWU7Ci0gICAgICB0aGlzLnRvcExldmVsU2xpY2VzID0gW107Ci0gICAgICB0aGlzLmFsbFNsaWNlcyA9IFtdOwotICAgIH0KLQotICAgIFJlc3VsdHNGb3JHcm91cC5wcm90b3R5cGUgPSB7Ci0gICAgICBnZXQgd2FsbFRpbWUoKSB7Ci0gICAgICAgIHZhciB3YWxsU3VtID0gdHIuYi5TdGF0aXN0aWNzLnN1bSgKLSAgICAgICAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMsIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguZHVyYXRpb247IH0pOwotICAgICAgICByZXR1cm4gd2FsbFN1bTsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBjcHVUaW1lKCkgewotICAgICAgICB2YXIgY3B1RHVyYXRpb24gPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudG9wTGV2ZWxTbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgeCA9IHRoaXMudG9wTGV2ZWxTbGljZXNbaV07Ci0gICAgICAgICAgLy8gT25seSByZXBvcnQgdGhyZWFkLWR1cmF0aW9uIGlmIHdlIGhhdmUgaXQgZm9yIGFsbCBldmVudHMuCi0gICAgICAgICAgLy8KLSAgICAgICAgICAvLyBBIHRocmVhZF9kdXJhdGlvbiBvZiAwIGlzIHZhbGlkLCBzbyB0aGlzIG9ubHkgcmV0dXJucyAwIGlmIGl0IGlzCi0gICAgICAgICAgLy8gTm9uZS4KLSAgICAgICAgICBpZiAoeC5jcHVEdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICBpZiAoeC5kdXJhdGlvbiA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgIH0KLSAgICAgICAgICBjcHVEdXJhdGlvbiArPSB4LmNwdUR1cmF0aW9uOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjcHVEdXJhdGlvbjsKLSAgICAgIH0sCi0KLSAgICAgIGFwcGVuZEdyb3VwQ29udGVudHM6IGZ1bmN0aW9uKGdyb3VwKSB7Ci0gICAgICAgIGlmIChncm91cC5tb2RlbCAhPSB0aGlzLm1vZGVsKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kZWxzIG11c3QgYmUgdGhlIHNhbWUnKTsKLQotICAgICAgICBncm91cC5hbGxTbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgewotICAgICAgICAgIHRoaXMuYWxsU2xpY2VzLnB1c2goc2xpY2UpOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgICAgZ3JvdXAudG9wTGV2ZWxTbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgewotICAgICAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMucHVzaChzbGljZSk7Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgfSwKLQotICAgICAgYXBwZW5kVGhyZWFkU2xpY2VzOiBmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3QsIHRocmVhZCkgewotICAgICAgICB2YXIgdG1wID0gdGhpcy5nZXRTbGljZXNJbnRlcnNlY3RpbmdSYW5nZSgKLSAgICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdCwgdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzKTsKLSAgICAgICAgdG1wLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgICB0aGlzLmFsbFNsaWNlcy5wdXNoKHNsaWNlKTsKLSAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgIHRtcCA9IHRoaXMuZ2V0U2xpY2VzSW50ZXJzZWN0aW5nUmFuZ2UoCi0gICAgICAgICAgICByYW5nZU9mSW50ZXJlc3QsIHRocmVhZC5zbGljZUdyb3VwLnRvcExldmVsU2xpY2VzKTsKLSAgICAgICAgdG1wLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgICB0aGlzLnRvcExldmVsU2xpY2VzLnB1c2goc2xpY2UpOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0sCi0KLSAgICAgIGdldFNsaWNlc0ludGVyc2VjdGluZ1JhbmdlOiBmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3QsIHNsaWNlcykgewotICAgICAgICB2YXIgc2xpY2VzSW5GaWx0ZXJSYW5nZSA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBzbGljZSA9IHNsaWNlc1tpXTsKLSAgICAgICAgICBpZiAocmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LCBzbGljZS5lbmQpKQotICAgICAgICAgICAgc2xpY2VzSW5GaWx0ZXJSYW5nZS5wdXNoKHNsaWNlKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc2xpY2VzSW5GaWx0ZXJSYW5nZTsKLSAgICAgIH0KLSAgICB9OwotCi0gICAgUG9seW1lcih7Ci0gICAgICByZWFkeTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICAgICAgdGhpcy5ncm91cEJ5XyA9IEdST1VQX0JZX1BST0NFU1NfTkFNRTsKLSAgICAgICAgdGhpcy5ncm91cGluZ1VuaXRfID0gQ1BVX1RJTUVfR1JPVVBJTkdfVU5JVDsKLSAgICAgICAgdGhpcy5zaG93Q3B1SWRsZVRpbWVfID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5jaGFydF8gPSB1bmRlZmluZWQ7Ci0KLSAgICAgICAgdmFyIHRvb2xiYXJFbCA9IHRoaXMuJC50b29sYmFyOwotICAgICAgICB0aGlzLmdyb3VwQnlTZWxlY3Rvcl8gPSB0ci5iLnVpLmNyZWF0ZVNlbGVjdG9yKAotICAgICAgICAgICAgdGhpcywgJ2dyb3VwQnknLAotICAgICAgICAgICAgJ3RpbWVTdW1tYXJ5U2lkZVBhbmVsLmdyb3VwQnknLCB0aGlzLmdyb3VwQnlfLAotICAgICAgICAgICAgW3tsYWJlbDogJ0dyb3VwIGJ5IHByb2Nlc3MnLCB2YWx1ZTogR1JPVVBfQllfUFJPQ0VTU19OQU1FfSwKLSAgICAgICAgICAgICB7bGFiZWw6ICdHcm91cCBieSB0aHJlYWQnLCB2YWx1ZTogR1JPVVBfQllfVEhSRUFEX05BTUV9Ci0gICAgICAgICAgICBdKTsKLSAgICAgICAgdG9vbGJhckVsLmFwcGVuZENoaWxkKHRoaXMuZ3JvdXBCeVNlbGVjdG9yXyk7Ci0KLSAgICAgICAgdGhpcy5ncm91cGluZ1VuaXRTZWxlY3Rvcl8gPSB0ci5iLnVpLmNyZWF0ZVNlbGVjdG9yKAotICAgICAgICAgICAgdGhpcywgJ2dyb3VwaW5nVW5pdCcsCi0gICAgICAgICAgICAndGltZVN1bW1hcnlTaWRlUGFuZWwuZ3JvdXBpbmdVbml0JywgdGhpcy5ncm91cGluZ1VuaXRfLAotICAgICAgICAgICAgW3tsYWJlbDogJ1dhbGwgdGltZScsIHZhbHVlOiBXQUxMX1RJTUVfR1JPVVBJTkdfVU5JVH0sCi0gICAgICAgICAgICAge2xhYmVsOiAnQ1BVIHRpbWUnLCB2YWx1ZTogQ1BVX1RJTUVfR1JPVVBJTkdfVU5JVH0KLSAgICAgICAgICAgIF0pOwotICAgICAgICB0b29sYmFyRWwuYXBwZW5kQ2hpbGQodGhpcy5ncm91cGluZ1VuaXRTZWxlY3Rvcl8pOwotCi0gICAgICAgIHRoaXMuc2hvd0NwdUlkbGVUaW1lQ2hlY2tib3hfID0gdHIuYi51aS5jcmVhdGVDaGVja0JveCgKLSAgICAgICAgICAgIHRoaXMsICdzaG93Q3B1SWRsZVRpbWUnLAotICAgICAgICAgICAgJ3RpbWVTdW1tYXJ5U2lkZVBhbmVsLnNob3dDcHVJZGxlVGltZScsIHRoaXMuc2hvd0NwdUlkbGVUaW1lXywKLSAgICAgICAgICAgICdTaG93IENQVSBpZGxlIHRpbWUnKTsKLSAgICAgICAgdG9vbGJhckVsLmFwcGVuZENoaWxkKHRoaXMuc2hvd0NwdUlkbGVUaW1lQ2hlY2tib3hfKTsKLSAgICAgICAgdGhpcy51cGRhdGVTaG93Q3B1SWRsZVRpbWVDaGVja2JveFZpc2liaWxpdHlfKCk7Ci0gICAgICB9LAotCi0gICAgICAvKioKLSAgICAgICAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gYXJyYXkgb2YgZ3JvdXBzIGFuZCBtZXJnZXMgc21hbGxlciBncm91cHMgaW50bwotICAgICAgICogdGhlIHByb3ZpZGVkICdPdGhlcicgZ3JvdXAgaXRlbSBzdWNoIHRoYXQgdGhlIHJlbWFpbmluZyBpdGVtcyBhcmUgcmVhZHkKLSAgICAgICAqIGZvciBwaWUtY2hhcnQgY29uc3VtcHRpb24uIE90aGVyd2lzZSwgdGhlIHBpZSBjaGFydCBnZXRzIG92ZXJ3aGVsbWVkCi0gICAgICAgKiB3aXRoIHRvbnMgb2YgbGl0dGxlIHNsaWNlcy4KLSAgICAgICAqLwotICAgICAgdHJpbVBpZUNoYXJ0RGF0YTogZnVuY3Rpb24oZ3JvdXBzLCBvdGhlckdyb3VwLCBnZXRWYWx1ZSwgb3B0X2V4dHJhVmFsdWUpIHsKLSAgICAgICAgLy8gQ29weSB0aGUgYXJyYXkgc28gaXQgY2FuIGJlIG11dGF0ZWQuCi0gICAgICAgIGdyb3VwcyA9IGdyb3Vwcy5maWx0ZXIoZnVuY3Rpb24oZCkgewotICAgICAgICAgIHJldHVybiBnZXRWYWx1ZShkKSAhPSAwOwotICAgICAgICB9KTsKLQotICAgICAgICAvLyBGaWd1cmUgb3V0IHRvdGFsIGFycmF5IHJhbmdlLgotICAgICAgICB2YXIgc3VtID0gdHIuYi5TdGF0aXN0aWNzLnN1bShncm91cHMsIGdldFZhbHVlKTsKLSAgICAgICAgaWYgKG9wdF9leHRyYVZhbHVlICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgc3VtICs9IG9wdF9leHRyYVZhbHVlOwotCi0gICAgICAgIC8vIFNvcnQgYnkgdmFsdWUuCi0gICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVCeVZhbHVlKGEsIGIpIHsKLSAgICAgICAgICByZXR1cm4gZ2V0VmFsdWUoYSkgLSBnZXRWYWx1ZShiKTsKLSAgICAgICAgfQotICAgICAgICBncm91cHMuc29ydChjb21wYXJlQnlWYWx1ZSk7Ci0KLSAgICAgICAgLy8gTm93IHN0YXJ0IGZ1c2luZyBlbGVtZW50cyB1bnRpbCBub25lIGFyZSBsZXNzIHRoYW4gdGhyZXNob2xkIGluIHNpemUuCi0gICAgICAgIHZhciB0aHJlc3Nob2xkID0gMC4xICogc3VtOwotICAgICAgICB3aGlsZSAoZ3JvdXBzLmxlbmd0aCA+IDEpIHsKLSAgICAgICAgICB2YXIgZ3JvdXAgPSBncm91cHNbMF07Ci0gICAgICAgICAgaWYgKGdldFZhbHVlKGdyb3VwKSA+PSB0aHJlc3Nob2xkKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICB2YXIgdiA9IGdldFZhbHVlKGdyb3VwKTsKLSAgICAgICAgICBpZiAodiArIGdldFZhbHVlKG90aGVyR3JvdXApID4gdGhyZXNzaG9sZCkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgLy8gUmVtb3ZlIHRoZSBncm91cCBmcm9tIHRoZSBsaXN0IGFuZCBhZGQgaXQgdG8gdGhlICdPdGhlcicgZ3JvdXAuCi0gICAgICAgICAgZ3JvdXBzLnNwbGljZSgwLCAxKTsKLSAgICAgICAgICBvdGhlckdyb3VwLmFwcGVuZEdyb3VwQ29udGVudHMoZ3JvdXApOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRmluYWwgcmV0dXJuLgotICAgICAgICBpZiAoZ2V0VmFsdWUob3RoZXJHcm91cCkgPiAwKQotICAgICAgICAgIGdyb3Vwcy5wdXNoKG90aGVyR3JvdXApOwotCi0gICAgICAgIGdyb3Vwcy5zb3J0KGNvbXBhcmVCeVZhbHVlKTsKLQotICAgICAgICByZXR1cm4gZ3JvdXBzOwotICAgICAgfSwKLQotICAgICAgZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXA6IGZ1bmN0aW9uKG1vZGVsLCBuYW1lKSB7Ci0gICAgICAgIHJldHVybiBuZXcgUmVzdWx0c0Zvckdyb3VwKG1vZGVsLCBuYW1lKTsKLSAgICAgIH0sCi0KLSAgICAgIGNyZWF0ZVBpZUNoYXJ0RnJvbVJlc3VsdEdyb3VwczogZnVuY3Rpb24oCi0gICAgICAgICAgZ3JvdXBzLCB0aXRsZSwgZ2V0VmFsdWUsIG9wdF9leHRyYURhdGEpIHsKLSAgICAgICAgdmFyIGNoYXJ0ID0gbmV3IHRyLmIudWkuUGllQ2hhcnQoKTsKLQotICAgICAgICBmdW5jdGlvbiBwdXNoRGF0YUZvckdyb3VwKGRhdGEsIHJlc3VsdHNGb3JHcm91cCwgdmFsdWUpIHsKLSAgICAgICAgICBkYXRhLnB1c2goewotICAgICAgICAgICAgbGFiZWw6IHJlc3VsdHNGb3JHcm91cC5uYW1lLAotICAgICAgICAgICAgdmFsdWU6IHZhbHVlLAotICAgICAgICAgICAgdmFsdWVUZXh0OiB0ci5iLnVuaXRzLnRzU3RyaW5nKHZhbHVlKSwKLSAgICAgICAgICAgIHJlc3VsdHNGb3JHcm91cDogcmVzdWx0c0Zvckdyb3VwCi0gICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgY2hhcnQuYWRkRXZlbnRMaXN0ZW5lcignaXRlbS1jbGljaycsIGZ1bmN0aW9uKGNsaWNrRXZlbnQpIHsKLSAgICAgICAgICB2YXIgcmVzdWx0c0Zvckdyb3VwID0gY2xpY2tFdmVudC5kYXRhLnJlc3VsdHNGb3JHcm91cDsKLSAgICAgICAgICBpZiAocmVzdWx0c0Zvckdyb3VwID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICB2YXIgZXZlbnQgPSBuZXcgdHIuYy5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTsKLSAgICAgICAgICBldmVudC5zZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24ocmVzdWx0c0Zvckdyb3VwLmFsbFNsaWNlcyk7Ci0gICAgICAgICAgZXZlbnQuc2VsZWN0aW9uLnRpbWVTdW1tYXJ5R3JvdXBOYW1lID0gcmVzdWx0c0Zvckdyb3VwLm5hbWU7Ci0gICAgICAgICAgY2hhcnQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgIH0pOwotCi0KLSAgICAgICAgLy8gQnVpbGQgY2hhcnQgZGF0YS4KLSAgICAgICAgdmFyIGRhdGEgPSBbXTsKLSAgICAgICAgZ3JvdXBzLmZvckVhY2goZnVuY3Rpb24ocmVzdWx0c0Zvckdyb3VwKSB7Ci0gICAgICAgICAgdmFyIHZhbHVlID0gZ2V0VmFsdWUocmVzdWx0c0Zvckdyb3VwKTsKLSAgICAgICAgICBpZiAodmFsdWUgPT09IDApCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgcHVzaERhdGFGb3JHcm91cChkYXRhLCByZXN1bHRzRm9yR3JvdXAsIHZhbHVlKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGlmIChvcHRfZXh0cmFEYXRhKQotICAgICAgICAgIGRhdGEucHVzaC5hcHBseShkYXRhLCBvcHRfZXh0cmFEYXRhKTsKLQotICAgICAgICBjaGFydC5jaGFydFRpdGxlID0gdGl0bGU7Ci0gICAgICAgIGNoYXJ0LmRhdGEgPSBkYXRhOwotICAgICAgICByZXR1cm4gY2hhcnQ7Ci0gICAgICB9LAotCi0gICAgICBnZXQgbW9kZWwoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBtb2RlbChtb2RlbCkgewotICAgICAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOwotICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgfSwKLQotICAgICAgZ2V0IGxpc3RlbmluZ1RvS2V5cygpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgfSwKLQotICAgICAgZ2V0IGdyb3VwQnkoKSB7Ci0gICAgICAgIHJldHVybiBncm91cEJ5XzsKLSAgICAgIH0sCi0KLSAgICAgIHNldCBncm91cEJ5KGdyb3VwQnkpIHsKLSAgICAgICAgdGhpcy5ncm91cEJ5XyA9IGdyb3VwQnk7Ci0gICAgICAgIGlmICh0aGlzLmdyb3VwQnlTZWxlY3Rvcl8pCi0gICAgICAgICAgdGhpcy5ncm91cEJ5U2VsZWN0b3JfLnNlbGVjdGVkVmFsdWUgPSBncm91cEJ5OwotICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgfSwKLQotICAgICAgZ2V0IGdyb3VwaW5nVW5pdCgpIHsKLSAgICAgICAgcmV0dXJuIGdyb3VwaW5nVW5pdF87Ci0gICAgICB9LAotCi0gICAgICBzZXQgZ3JvdXBpbmdVbml0KGdyb3VwaW5nVW5pdCkgewotICAgICAgICB0aGlzLmdyb3VwaW5nVW5pdF8gPSBncm91cGluZ1VuaXQ7Ci0gICAgICAgIGlmICh0aGlzLmdyb3VwaW5nVW5pdFNlbGVjdG9yXykKLSAgICAgICAgICB0aGlzLmdyb3VwaW5nVW5pdFNlbGVjdG9yXy5zZWxlY3RlZFZhbHVlID0gZ3JvdXBpbmdVbml0OwotICAgICAgICB0aGlzLnVwZGF0ZVNob3dDcHVJZGxlVGltZUNoZWNrYm94VmlzaWJpbGl0eV8oKTsKLSAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBzaG93Q3B1SWRsZVRpbWUoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLnNob3dDcHVJZGxlVGltZV87Ci0gICAgICB9LAotCi0gICAgICBzZXQgc2hvd0NwdUlkbGVUaW1lKHNob3dDcHVJZGxlVGltZSkgewotICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZV8gPSBzaG93Q3B1SWRsZVRpbWU7Ci0gICAgICAgIGlmICh0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94XykKLSAgICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94Xy5jaGVja2VkID0gc2hvd0NwdUlkbGVUaW1lOwotICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgfSwKLQotICAgICAgdXBkYXRlU2hvd0NwdUlkbGVUaW1lQ2hlY2tib3hWaXNpYmlsaXR5XzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICghdGhpcy5zaG93Q3B1SWRsZVRpbWVDaGVja2JveF8pCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgdmlzaWJsZSA9IHRoaXMuZ3JvdXBpbmdVbml0XyA9PSBDUFVfVElNRV9HUk9VUElOR19VTklUOwotICAgICAgICBpZiAodmlzaWJsZSkKLSAgICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94Xy5zdHlsZS5kaXNwbGF5ID0gJyc7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94Xy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgfSwKLQotICAgICAgZ2V0R3JvdXBOYW1lRm9yVGhyZWFkXzogZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICAgIGlmICh0aGlzLmdyb3VwQnlfID09IEdST1VQX0JZX1RIUkVBRF9OQU1FKQotICAgICAgICAgIHJldHVybiB0aHJlYWQubmFtZSA/IHRocmVhZC5uYW1lIDogdGhyZWFkLnVzZXJGcmllbmRseU5hbWU7Ci0KLSAgICAgICAgaWYgKHRoaXMuZ3JvdXBCeV8gPT0gR1JPVVBfQllfUFJPQ0VTU19OQU1FKQotICAgICAgICAgIHJldHVybiB0aHJlYWQucGFyZW50LnVzZXJGcmllbmRseU5hbWU7Ci0gICAgICB9LAotCi0gICAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcmVzdWx0QXJlYSA9IHRoaXMuJC5yZXN1bHRfYXJlYTsKLSAgICAgICAgdGhpcy5jaGFydF8gPSB1bmRlZmluZWQ7Ci0gICAgICAgIHJlc3VsdEFyZWEudGV4dENvbnRlbnQgPSAnJzsKLQotICAgICAgICBpZiAodGhpcy5tb2RlbF8gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHJhbmdlT2ZJbnRlcmVzdDsKLSAgICAgICAgaWYgKHRoaXMucmFuZ2VPZkludGVyZXN0Xy5pc0VtcHR5KQotICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdCA9IHRoaXMubW9kZWxfLmJvdW5kczsKLSAgICAgICAgZWxzZQotICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdCA9IHRoaXMucmFuZ2VPZkludGVyZXN0XzsKLQotICAgICAgICB2YXIgYWxsR3JvdXAgPSB0aGlzLmdlbmVyYXRlUmVzdWx0c0Zvckdyb3VwKHRoaXMubW9kZWxfLCAnYWxsJyk7Ci0gICAgICAgIHZhciByZXN1bHRzQnlHcm91cE5hbWUgPSB7fTsKLSAgICAgICAgdGhpcy5tb2RlbF8uZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goZnVuY3Rpb24odGhyZWFkKSB7Ci0gICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IHRoaXMuZ2V0R3JvdXBOYW1lRm9yVGhyZWFkXyh0aHJlYWQpOwotICAgICAgICAgIGlmIChyZXN1bHRzQnlHcm91cE5hbWVbZ3JvdXBOYW1lXSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICByZXN1bHRzQnlHcm91cE5hbWVbZ3JvdXBOYW1lXSA9IHRoaXMuZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXAoCi0gICAgICAgICAgICAgICAgdGhpcy5tb2RlbF8sIGdyb3VwTmFtZSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJlc3VsdHNCeUdyb3VwTmFtZVtncm91cE5hbWVdLmFwcGVuZFRocmVhZFNsaWNlcygKLSAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0LCB0aHJlYWQpOwotCi0gICAgICAgICAgYWxsR3JvdXAuYXBwZW5kVGhyZWFkU2xpY2VzKHJhbmdlT2ZJbnRlcmVzdCwgdGhyZWFkKTsKLSAgICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB3b3JraW5nIHdpdGggdGhlIHByb2R1Y2VkIGdyb3VwLgotICAgICAgICB2YXIgZ2V0VmFsdWVGcm9tR3JvdXAgPSBmdW5jdGlvbihncm91cCkgewotICAgICAgICAgIGlmICh0aGlzLmdyb3VwaW5nVW5pdF8gPT0gV0FMTF9USU1FX0dST1VQSU5HX1VOSVQpCi0gICAgICAgICAgICByZXR1cm4gZ3JvdXAud2FsbFRpbWU7Ci0gICAgICAgICAgcmV0dXJuIGdyb3VwLmNwdVRpbWU7Ci0gICAgICAgIH0uYmluZCh0aGlzKTsKLQotICAgICAgICAvLyBDcmVhdGUgc3VtbWFyeS4KLSAgICAgICAgdmFyIHN1bW1hcnlUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIHN1bW1hcnlUZXh0LmFwcGVuZENoaWxkKHRyLmIudWkuY3JlYXRlU3Bhbih7Ci0gICAgICAgICAgdGV4dENvbnRlbnQ6ICdUb3RhbCAnICsgdGhpcy5ncm91cGluZ1VuaXRfICsgJzogJywKLSAgICAgICAgICBib2xkOiB0cnVlfSkpOwotICAgICAgICBzdW1tYXJ5VGV4dC5hcHBlbmRDaGlsZCh0ci5iLnVpLmNyZWF0ZVNwYW4oewotICAgICAgICAgIHRleHRDb250ZW50OiB0ci5iLnVuaXRzLnRzU3RyaW5nKGdldFZhbHVlRnJvbUdyb3VwKGFsbEdyb3VwKSl9KSk7Ci0gICAgICAgIHJlc3VsdEFyZWEuYXBwZW5kQ2hpbGQoc3VtbWFyeVRleHQpOwotCi0gICAgICAgIC8vIElmIG5lZWRlZCwgYWRkIGluIHRoZSBpZGxlIHRpbWUuCi0gICAgICAgIHZhciBleHRyYVZhbHVlID0gMDsKLSAgICAgICAgdmFyIGV4dHJhRGF0YSA9IFtdOwotICAgICAgICBpZiAodGhpcy5zaG93Q3B1SWRsZVRpbWVfICYmCi0gICAgICAgICAgICB0aGlzLmdyb3VwaW5nVW5pdF8gPT09IENQVV9USU1FX0dST1VQSU5HX1VOSVQgJiYKLSAgICAgICAgICAgIHRoaXMubW9kZWwua2VybmVsLmJlc3RHdWVzc0F0Q3B1Q291bnQgIT09IHVuZGVmaW5lZCkgewotICAgICAgICAgIHZhciBtYXhDcHVUaW1lID0gcmFuZ2VPZkludGVyZXN0LnJhbmdlICoKLSAgICAgICAgICAgICAgdGhpcy5tb2RlbC5rZXJuZWwuYmVzdEd1ZXNzQXRDcHVDb3VudDsKLSAgICAgICAgICB2YXIgaWRsZVRpbWUgPSBNYXRoLm1heCgwLCBtYXhDcHVUaW1lIC0gYWxsR3JvdXAuY3B1VGltZSk7Ci0gICAgICAgICAgZXh0cmFEYXRhLnB1c2goewotICAgICAgICAgICAgbGFiZWw6ICdDUFUgSWRsZScsCi0gICAgICAgICAgICB2YWx1ZTogaWRsZVRpbWUsCi0gICAgICAgICAgICB2YWx1ZVRleHQ6IHRyLmIudW5pdHMudHNTdHJpbmcoaWRsZVRpbWUpCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgZXh0cmFWYWx1ZSArPSBpZGxlVGltZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIENyZWF0ZSB0aGUgYWN0dWFsIGNoYXJ0LgotICAgICAgICB2YXIgb3RoZXJHcm91cCA9IHRoaXMuZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXAodGhpcy5tb2RlbF8sICdPdGhlcicpOwotICAgICAgICB2YXIgZ3JvdXBzID0gdGhpcy50cmltUGllQ2hhcnREYXRhKAotICAgICAgICAgICAgdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHJlc3VsdHNCeUdyb3VwTmFtZSksCi0gICAgICAgICAgICBvdGhlckdyb3VwLAotICAgICAgICAgICAgZ2V0VmFsdWVGcm9tR3JvdXAsCi0gICAgICAgICAgICBleHRyYVZhbHVlKTsKLQotICAgICAgICBpZiAoZ3JvdXBzLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAgICAgcmVzdWx0QXJlYS5hcHBlbmRDaGlsZCh0ci5iLnVpLmNyZWF0ZVNwYW4oe3RleHRDb250ZW50OiAnTm8gZGF0YSd9KSk7Ci0gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuY2hhcnRfID0gdGhpcy5jcmVhdGVQaWVDaGFydEZyb21SZXN1bHRHcm91cHMoCi0gICAgICAgICAgICBncm91cHMsCi0gICAgICAgICAgICB0aGlzLmdyb3VwaW5nVW5pdF8gKyAnIGJyZWFrZG93biBieSAnICsgdGhpcy5ncm91cEJ5XywKLSAgICAgICAgICAgIGdldFZhbHVlRnJvbUdyb3VwLCBleHRyYURhdGEpOwotICAgICAgICByZXN1bHRBcmVhLmFwcGVuZENoaWxkKHRoaXMuY2hhcnRfKTsKLQotICAgICAgICB0aGlzLmNoYXJ0Xy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciBldmVudCA9IG5ldyB0ci5jLlJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOwotICAgICAgICAgIGV2ZW50LnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbihbXSk7Ci0gICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMuY2hhcnRfLnNldFNpemUodGhpcy5jaGFydF8uZ2V0TWluU2l6ZSgpKTsKLSAgICAgIH0sCi0KLSAgICAgIGdldCBzZWxlY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiBzZWxlY3Rpb25fOwotICAgICAgfSwKLQotICAgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKLSAgICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOwotCi0gICAgICAgIGlmICh0aGlzLmNoYXJ0XyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoc2VsZWN0aW9uLnRpbWVTdW1tYXJ5R3JvdXBOYW1lKQotICAgICAgICAgIHRoaXMuY2hhcnRfLmhpZ2hsaWdodGVkTGVnZW5kS2V5ID0gc2VsZWN0aW9uLnRpbWVTdW1tYXJ5R3JvdXBOYW1lOwotICAgICAgICBlbHNlCi0gICAgICAgICAgdGhpcy5jaGFydF8uaGlnaGxpZ2h0ZWRMZWdlbmRLZXkgPSB1bmRlZmluZWQ7Ci0gICAgICB9LAotCi0gICAgICBnZXQgcmFuZ2VPZkludGVyZXN0KCkgewotICAgICAgICByZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOwotICAgICAgfSwKLQotICAgICAgc2V0IHJhbmdlT2ZJbnRlcmVzdChyYW5nZU9mSW50ZXJlc3QpIHsKLSAgICAgICAgdGhpcy5yYW5nZU9mSW50ZXJlc3RfID0gcmFuZ2VPZkludGVyZXN0OwotICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOwotICAgICAgfSwKLQotICAgICAgc3VwcG9ydHNNb2RlbDogZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlCi0gICAgICAgIH07Ci0gICAgICB9LAotCi0gICAgICBnZXQgdGV4dExhYmVsKCkgewotICAgICAgICByZXR1cm4gJ1RpbWUgU3VtbWFyeSc7Ci0gICAgICB9Ci0gICAgfSk7Ci0gIH0oKSk7Ci0gIDwvc2NyaXB0PgotPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zaWRlX3BhbmVsL3RpbWVfc3VtbWFyeV9zaWRlX3BhbmVsX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWxfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTEzNWMyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWxfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9zaWRlX3BhbmVsL3RpbWVfc3VtbWFyeV9zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld1NsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZDsKLQotICBmdW5jdGlvbiBjcmVhdGVNb2RlbChvcHRfb3B0aW9ucykgewotICAgIHZhciBvcHRpb25zID0gb3B0X29wdGlvbnMgfHwge307Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbXSwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbigpIHsKLSAgICAgIGlmIChvcHRpb25zLnByb3ZpZGVTb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQpCi0gICAgICAgIG0ua2VybmVsLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCA9IDI7Ci0KLSAgICAgIHZhciBicm93c2VyUHJvY2VzcyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgICAgdmFyIGJyb3dzZXJNYWluID0gYnJvd3NlclByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMik7Ci0gICAgICBicm93c2VyTWFpbi5uYW1lID0gJ0NyQnJvd3Nlck1haW4nOwotICAgICAgYnJvd3Nlck1haW4uc2xpY2VHcm91cC5iZWdpblNsaWNlKCdjYXQnLCAnVGFzaycsIDAsIHVuZGVmaW5lZCwgMCk7Ci0gICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDEwLCA5KTsKLSAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ1Rhc2snLCAyMCwgdW5kZWZpbmVkLCAxMCk7Ci0gICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDMwLCAyMCk7Ci0KLSAgICAgIHZhciByZW5kZXJlclByb2Nlc3MgPSBtLmdldE9yQ3JlYXRlUHJvY2Vzcyg0KTsKLSAgICAgIHZhciByZW5kZXJlck1haW4gPSByZW5kZXJlclByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNSk7Ci0gICAgICByZW5kZXJlck1haW4ubmFtZSA9ICdDclJlbmRlcmVyTWFpbic7Ci0gICAgICByZW5kZXJlck1haW4uc2xpY2VHcm91cC5iZWdpblNsaWNlKCdjYXQnLCAnVGFzaycsIDAsIHVuZGVmaW5lZCwgMCk7Ci0gICAgICByZW5kZXJlck1haW4uc2xpY2VHcm91cC5lbmRTbGljZSgzMCwgMjUpOwotICAgICAgcmVuZGVyZXJNYWluLnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ1Rhc2snLCA0MCwgdW5kZWZpbmVkLCA0MCk7Ci0gICAgICByZW5kZXJlck1haW4uc2xpY2VHcm91cC5lbmRTbGljZSg2MCwgNTApOwotICAgIH0pOwotICAgIHJldHVybiBtOwotICB9Ci0KLSAgdGVzdCgnZ3JvdXAnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXMtdGltZS1zdW1tYXJ5LXNpZGUtcGFuZWwnKTsKLSAgICB2YXIgbSA9IGNyZWF0ZU1vZGVsKCk7Ci0gICAgdmFyIGdyb3VwID0gdHMuZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXAobSwgJ2ZvbycpOwotICAgIGdyb3VwLmFwcGVuZFRocmVhZFNsaWNlcyhtLmJvdW5kcywgbS5wcm9jZXNzZXNbMV0udGhyZWFkc1syXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLndhbGxUaW1lLCAyMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmNwdVRpbWUsIDE5KTsKLSAgfSk7Ci0KLSAgdGVzdCgndHJpbScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cERhdGEgPSBbCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAyLjg1NDk5OTk5OTk5OTk5NywKLSAgICAgICAgbGFiZWw6ICcxNTY5NTknCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZTogOS45NDg5OTk5OTk5OTk5OTgsCi0gICAgICAgIGxhYmVsOiAnMTYxMzEnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZTogNDIuMzE0MDAwMDAwMDAwNzI1LAotICAgICAgICBsYWJlbDogJzUxNTExJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWU6IDMxLjA2OTAwMDAwMDAwMDI4LAotICAgICAgICBsYWJlbDogJ0F1ZGlvT3V0cHV0RGV2aWNlJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWU6IDEuNDE4LAotICAgICAgICBsYWJlbDogJ0Jyb3dzZXJCbG9ja2luZ1dvcmtlcjIvNTA5NTEnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZTogMC4wNDQsCi0gICAgICAgIGxhYmVsOiAnQnJvd3NlckJsb2NraW5nV29ya2VyMy81MDY5NScKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAxOC41MjU5OTk5OTk5OTk5MywKLSAgICAgICAgbGFiZWw6ICdDaHJvbWVfQ2hpbGRJT1RocmVhZCcKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAyLjg4OCwKLSAgICAgICAgbGFiZWw6ICdDaHJvbWVfRmlsZVRocmVhZCcKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAwLjA2NywKLSAgICAgICAgbGFiZWw6ICdDaHJvbWVfSGlzdG9yeVRocmVhZCcKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAyNS40MjEwMDAwMDAwMDAwNDYsCi0gICAgICAgIGxhYmVsOiAnQ2hyb21lX0lPVGhyZWFkJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWU6IDAuMDE5LAotICAgICAgICBsYWJlbDogJ0Nocm9tZV9Qcm9jZXNzTGF1bmNoZXJUaHJlYWQnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZTogNjQzLjA4Nzk5OTk5OTk5NSwKLSAgICAgICAgbGFiZWw6ICdDb21wb3NpdG9yJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWU6IDQuMDQ5OTk5OTk5OTk5OTczLAotICAgICAgICBsYWJlbDogJ0NvbXBvc2l0b3JSYXN0ZXJXb3JrZXIxLzIyMDMxJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWU6IDUwLjA0MDAwMDAwMDAwMDEwNiwKLSAgICAgICAgbGFiZWw6ICdDckJyb3dzZXJNYWluJwotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgdmFsdWU6IDEyNTYuNTEzMDAwMDAwMDA0MiwKLSAgICAgICAgbGFiZWw6ICdDckdwdU1haW4nCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZTogNTUwMi4xOTQ5OTk5OTk5OSwKLSAgICAgICAgbGFiZWw6ICdDclJlbmRlcmVyTWFpbicKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiAxNS41NTI5OTk5OTk5OTk4NjIsCi0gICAgICAgIGxhYmVsOiAnRkZtcGVnRGVtdXhlcicKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIHZhbHVlOiA2My43MDYwMDAwMDAwMDE1MjQsCi0gICAgICAgIGxhYmVsOiAnTWVkaWEnCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZTogMi43NDE5OTk5OTk5OTk5OTg3LAotICAgICAgICBsYWJlbDogJ1Bvd2VyU2F2ZUJsb2NrZXInCi0gICAgICB9LAotICAgICAgewotICAgICAgICB2YWx1ZTogMC4xMTUwMDAwMDAwMDAwMDAwNSwKLSAgICAgICAgbGFiZWw6ICdXYXRjaGRvZycKLSAgICAgIH0KLSAgICBdOwotCi0gICAgdmFyIHRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1zLXRpbWUtc3VtbWFyeS1zaWRlLXBhbmVsJyk7Ci0KLSAgICB2YXIgZ3JvdXBzID0gW107Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbXSwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBzdGFydCA9IDA7Ci0gICAgICBncm91cERhdGEuZm9yRWFjaChmdW5jdGlvbihncm91cERhdGEpIHsKLSAgICAgICAgdmFyIGdyb3VwID0gdHMuZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXAobSwgZ3JvdXBEYXRhLmxhYmVsKTsKLQotICAgICAgICB2YXIgc2xpY2UgPSBuZXdTbGljZU5hbWVkKGdyb3VwRGF0YS5sYWJlbCwgc3RhcnQsIGdyb3VwRGF0YS52YWx1ZSk7Ci0gICAgICAgIHN0YXJ0ICs9IGdyb3VwRGF0YS52YWx1ZTsKLSAgICAgICAgZ3JvdXAuYWxsU2xpY2VzLnB1c2goc2xpY2UpOwotICAgICAgICBncm91cC50b3BMZXZlbFNsaWNlcy5wdXNoKHNsaWNlKTsKLQotICAgICAgICBncm91cHMucHVzaChncm91cCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbUdyb3VwKGQpIHsgcmV0dXJuIGQud2FsbFRpbWU7IH0KLQotICAgIHZhciBvdGhlckdyb3VwID0gdHMuZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXAobSwgJ090aGVyJyk7Ci0gICAgdmFyIG5ld0dyb3VwcyA9IHRzLnRyaW1QaWVDaGFydERhdGEoZ3JvdXBzLCBvdGhlckdyb3VwLCBnZXRWYWx1ZUZyb21Hcm91cCk7Ci0KLSAgICAvLyBWaXN1YWxpemUgdGhlIGRhdGEgb25jZSBpdHMgdHJpbW1lZC4KLSAgICB2YXIgY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXMtdGltZS1zdW1tYXJ5LXNpZGUtcGFuZWwnKTsKLSAgICB2YXIgY2hhcnQgPSBjZS5jcmVhdGVQaWVDaGFydEZyb21SZXN1bHRHcm91cHMoCi0gICAgICAgIG5ld0dyb3VwcywgJ1RyaW1tZWQnLCBnZXRWYWx1ZUZyb21Hcm91cCk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNoYXJ0KTsKLSAgICBjaGFydC5zZXRTaXplKGNoYXJ0LmdldE1pblNpemUoKSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2Jhc2ljSW5XYWxsVGltZU1vZGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IGNyZWF0ZU1vZGVsKCk7Ci0KLSAgICB2YXIgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXMtdGltZS1zdW1tYXJ5LXNpZGUtcGFuZWwnKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOwotICAgIHBhbmVsLm1vZGVsID0gbTsKLSAgICBwYW5lbC5ncm91cGluZ1VuaXQgPSAnV2FsbCB0aW1lJzsKLSAgICBwYW5lbC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKLSAgfSk7Ci0KLSAgdGVzdCgnYmFzaWNJbkNwdVRpbWVNb2RlQnV0Tm9DcHVEYXRhJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBjcmVhdGVNb2RlbCgpOwotCi0gICAgdmFyIHBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1zLXRpbWUtc3VtbWFyeS1zaWRlLXBhbmVsJyk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHBhbmVsKTsKLSAgICBwYW5lbC5tb2RlbCA9IG07Ci0gICAgcGFuZWwuZ3JvdXBpbmdVbml0ID0gJ0NQVSB0aW1lJzsKLSAgICBwYW5lbC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKLSAgfSk7Ci0KLSAgdGVzdCgnYmFzaWNJbkNwdVRpbWVNb2RlQW5kQ3B1RGF0YScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gY3JlYXRlTW9kZWwoewotICAgICAgcHJvdmlkZVNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudDogdHJ1ZQotICAgIH0pOwotCi0gICAgdmFyIHBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1zLXRpbWUtc3VtbWFyeS1zaWRlLXBhbmVsJyk7Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHBhbmVsKTsKLSAgICBwYW5lbC5tb2RlbCA9IG07Ci0gICAgcGFuZWwuZ3JvdXBpbmdVbml0ID0gJ0NQVSB0aW1lJzsKLSAgICBwYW5lbC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0cy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjhiZmU2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdF92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5odG1sIj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNTMwZWMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotICovCi0KLS5zeXN0ZW0tc3RhdHMtaW5zdGFuY2UtdHJhY2sgewotICBoZWlnaHQ6IDUwMHB4OwotfQotCi0uc3lzdGVtLXN0YXRzLWluc3RhbmNlLXRyYWNrIHVsIHsKLSAgbGlzdC1zdHlsZTogbm9uZTsKLSAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsKLSAgbWFyZ2luOiAwOwotICBvdmVyZmxvdzogaGlkZGVuOwotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDZmNTg2Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suY3NzIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3N0YWNrZWRfYmFyc190cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2V2ZW50X3ByZXNlbnRlci5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUuc3lzdGVtX3N0YXRzJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBFdmVudFByZXNlbnRlciA9IHRyLmMuRXZlbnRQcmVzZW50ZXI7Ci0KLSAgdmFyIHBhbGV0dGUgPSB0ci5iLnVpLmdldENvbG9yUGFsZXR0ZSgpOwotICB2YXIgaGlnaGxpZ2h0SWRCb29zdCA9IHRyLmIudWkuZ2V0Q29sb3JQYWxldHRlSGlnaGxpZ2h0SWRCb29zdCgpOwotCi0gIHZhciBzdGF0Q291bnQ7Ci0KLSAgdmFyIGV4Y2x1ZGVkU3RhdHMgPSB7J21lbWluZm8nOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAncHN3cGluJzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdwc3dwb3V0JzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdwZ21hamZhdWx0JzogMH0sCi0gICAgICAgICAgICAgICAgICAgICAgJ2Rpc2tpbmZvJzogewotICAgICAgICAgICAgICAgICAgICAgICAgJ2lvJzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdpb190aW1lJzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdyZWFkX3RpbWUnOiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3JlYWRzJzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICdyZWFkc19tZXJnZWQnOiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3NlY3RvcnNfcmVhZCc6IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAnc2VjdG9yc193cml0dGVuJzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICd3ZWlnaHRlZF9pb190aW1lJzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICd3cml0ZV90aW1lJzogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICd3cml0ZXMnOiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dyaXRlc19tZXJnZWQnOiAwfSwKLSAgICAgICAgICAgICAgICAgICAgICAnc3dhcGluZm8nOiB7fQotICAgICAgICAgICAgICAgICAgICAgIH07Ci0KLSAgLyoqCi0gICAqIFRyYWNrcyB0aGF0IGRpc3BsYXkgc3lzdGVtIHN0YXRzIGRhdGEuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7U3RhY2tlZEJhcnNUcmFja30KLSAgICovCi0KLSAgdmFyIFN5c3RlbVN0YXRzSW5zdGFuY2VUcmFjayA9IHRyLmIudWkuZGVmaW5lKAotICAgICAgJ3N5c3RlbS1zdGF0cy1pbnN0YW5jZS10cmFjaycsIHRyLmMudHJhY2tzLlN0YWNrZWRCYXJzVHJhY2spOwotCi0gIFN5c3RlbVN0YXRzSW5zdGFuY2VUcmFjay5wcm90b3R5cGUgPSB7Ci0KLSAgICBfX3Byb3RvX186IHRyLmMudHJhY2tzLlN0YWNrZWRCYXJzVHJhY2sucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICB0ci5jLnRyYWNrcy5TdGFja2VkQmFyc1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc3lzdGVtLXN0YXRzLWluc3RhbmNlLXRyYWNrJyk7Ci0gICAgICB0aGlzLm9iamVjdEluc3RhbmNlXyA9IG51bGw7Ci0gICAgfSwKLQotICAgIHNldCBvYmplY3RJbnN0YW5jZXMob2JqZWN0SW5zdGFuY2VzKSB7Ci0gICAgICBpZiAoIW9iamVjdEluc3RhbmNlcykgewotICAgICAgICB0aGlzLm9iamVjdEluc3RhbmNlXyA9IFtdOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICBpZiAob2JqZWN0SW5zdGFuY2VzLmxlbmd0aCAhPSAxKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhZCBvYmplY3QgaW5zdGFuY2UgY291bnQuJyk7Ci0gICAgICB0aGlzLm9iamVjdEluc3RhbmNlXyA9IG9iamVjdEluc3RhbmNlc1swXTsKLSAgICAgIGlmICh0aGlzLm9iamVjdEluc3RhbmNlXyAhPT0gbnVsbCkgewotICAgICAgICB0aGlzLmNvbXB1dGVSYXRlc18odGhpcy5vYmplY3RJbnN0YW5jZV8uc25hcHNob3RzKTsKLSAgICAgICAgdGhpcy5tYXhTdGF0c18gPSB0aGlzLmNvbXB1dGVNYXhTdGF0c18oCi0gICAgICAgICAgICB0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHMpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBjb21wdXRlUmF0ZXNfOiBmdW5jdGlvbihzbmFwc2hvdHMpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc25hcHNob3RzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBzbmFwc2hvdCA9IHNuYXBzaG90c1tpXTsKLSAgICAgICAgdmFyIHN0YXRzID0gc25hcHNob3QuZ2V0U3RhdHMoKTsKLSAgICAgICAgdmFyIHByZXZTbmFwc2hvdDsKLSAgICAgICAgdmFyIHByZXZTdGF0czsKLQotICAgICAgICBpZiAoaSA9PSAwKSB7Ci0gICAgICAgICAgLy8gRGVsdGFzIHdpbGwgYmUgemVyby4KLSAgICAgICAgICBwcmV2U25hcHNob3QgPSBzbmFwc2hvdHNbMF07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcHJldlNuYXBzaG90ID0gc25hcHNob3RzW2kgLSAxXTsKLSAgICAgICAgfQotICAgICAgICBwcmV2U3RhdHMgPSBwcmV2U25hcHNob3QuZ2V0U3RhdHMoKTsKLSAgICAgICAgdmFyIHRpbWVJbnRlcnZhbFNlY29uZHMgPSAoc25hcHNob3QudHMgLSBwcmV2U25hcHNob3QudHMpIC8gMTAwMDsKLSAgICAgICAgLy8gUHJldmVudCBkaXZpZGUgYnkgemVyby4KLSAgICAgICAgaWYgKHRpbWVJbnRlcnZhbFNlY29uZHMgPT0gMCkKLSAgICAgICAgICB0aW1lSW50ZXJ2YWxTZWNvbmRzID0gMTsKLQotICAgICAgICB0aGlzLmNvbXB1dGVSYXRlc1JlY3Vyc2l2ZV8ocHJldlN0YXRzLCBzdGF0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVJbnRlcnZhbFNlY29uZHMpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBjb21wdXRlUmF0ZXNSZWN1cnNpdmVfOiBmdW5jdGlvbihwcmV2U3RhdHMsIHN0YXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVJbnRlcnZhbFNlY29uZHMpIHsKLSAgICAgIGZvciAodmFyIHN0YXROYW1lIGluIHN0YXRzKSB7Ci0gICAgICAgIGlmIChzdGF0c1tzdGF0TmFtZV0gaW5zdGFuY2VvZiBPYmplY3QpIHsKLSAgICAgICAgICB0aGlzLmNvbXB1dGVSYXRlc1JlY3Vyc2l2ZV8ocHJldlN0YXRzW3N0YXROYW1lXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHNbc3RhdE5hbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lSW50ZXJ2YWxTZWNvbmRzKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAoc3RhdE5hbWUgPT0gJ3NlY3RvcnNfcmVhZCcpIHsKLSAgICAgICAgICAgIHN0YXRzWydieXRlc19yZWFkX3Blcl9zZWMnXSA9IChzdGF0c1snc2VjdG9yc19yZWFkJ10gLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTdGF0c1snc2VjdG9yc19yZWFkJ10pICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUxMiAvIHRpbWVJbnRlcnZhbFNlY29uZHM7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChzdGF0TmFtZSA9PSAnc2VjdG9yc193cml0dGVuJykgewotICAgICAgICAgICAgc3RhdHNbJ2J5dGVzX3dyaXR0ZW5fcGVyX3NlYyddID0KLSAgICAgICAgICAgICAgICAoc3RhdHNbJ3NlY3RvcnNfd3JpdHRlbiddIC0KLSAgICAgICAgICAgICAgICAgcHJldlN0YXRzWydzZWN0b3JzX3dyaXR0ZW4nXSkgKgotICAgICAgICAgICAgICAgIDUxMiAvIHRpbWVJbnRlcnZhbFNlY29uZHM7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChzdGF0TmFtZSA9PSAncGdtYWpmYXVsdCcpIHsKLSAgICAgICAgICAgIHN0YXRzWydwZ21hamZhdWx0X3Blcl9zZWMnXSA9IChzdGF0c1sncGdtYWpmYXVsdCddIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U3RhdHNbJ3BnbWFqZmF1bHQnXSkgLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZUludGVydmFsU2Vjb25kczsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHN0YXROYW1lID09ICdwc3dwaW4nKSB7Ci0gICAgICAgICAgICBzdGF0c1snYnl0ZXNfc3dwaW5fcGVyX3NlYyddID0gKHN0YXRzWydwc3dwaW4nXSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTdGF0c1sncHN3cGluJ10pICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwIC8gdGltZUludGVydmFsU2Vjb25kczsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHN0YXROYW1lID09ICdwc3dwb3V0JykgewotICAgICAgICAgICAgc3RhdHNbJ2J5dGVzX3N3cG91dF9wZXJfc2VjJ10gPSAoc3RhdHNbJ3Bzd3BvdXQnXSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U3RhdHNbJ3Bzd3BvdXQnXSkgKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwIC8gdGltZUludGVydmFsU2Vjb25kczsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotCi0gICAgY29tcHV0ZU1heFN0YXRzXzogZnVuY3Rpb24oc25hcHNob3RzKSB7Ci0gICAgICB2YXIgbWF4U3RhdHMgPSBuZXcgT2JqZWN0KCk7Ci0gICAgICBzdGF0Q291bnQgPSAwOwotCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNuYXBzaG90cy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgc25hcHNob3QgPSBzbmFwc2hvdHNbaV07Ci0gICAgICAgIHZhciBzdGF0cyA9IHNuYXBzaG90LmdldFN0YXRzKCk7Ci0KLSAgICAgICAgdGhpcy5jb21wdXRlTWF4U3RhdHNSZWN1cnNpdmVfKHN0YXRzLCBtYXhTdGF0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVkU3RhdHMpOwotICAgICAgfQotCi0gICAgICByZXR1cm4gbWF4U3RhdHM7Ci0gICAgfSwKLQotICAgIGNvbXB1dGVNYXhTdGF0c1JlY3Vyc2l2ZV86IGZ1bmN0aW9uKHN0YXRzLCBtYXhTdGF0cywgZXhjbHVkZWRTdGF0cykgewotICAgICAgZm9yICh2YXIgc3RhdE5hbWUgaW4gc3RhdHMpIHsKLSAgICAgICAgaWYgKHN0YXRzW3N0YXROYW1lXSBpbnN0YW5jZW9mIE9iamVjdCkgewotICAgICAgICAgIGlmICghKHN0YXROYW1lIGluIG1heFN0YXRzKSkKLSAgICAgICAgICAgIG1heFN0YXRzW3N0YXROYW1lXSA9IG5ldyBPYmplY3QoKTsKLQotICAgICAgICAgIHZhciBleGNsdWRlZE5lc3RlZDsKLSAgICAgICAgICBpZiAoZXhjbHVkZWRTdGF0cyAmJiBzdGF0TmFtZSBpbiBleGNsdWRlZFN0YXRzKQotICAgICAgICAgICAgZXhjbHVkZWROZXN0ZWQgPSBleGNsdWRlZFN0YXRzW3N0YXROYW1lXTsKLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICBleGNsdWRlZE5lc3RlZCA9IG51bGw7Ci0KLSAgICAgICAgICB0aGlzLmNvbXB1dGVNYXhTdGF0c1JlY3Vyc2l2ZV8oc3RhdHNbc3RhdE5hbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhTdGF0c1tzdGF0TmFtZV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVkTmVzdGVkKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAoZXhjbHVkZWRTdGF0cyAmJiBzdGF0TmFtZSBpbiBleGNsdWRlZFN0YXRzKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgaWYgKCEoc3RhdE5hbWUgaW4gbWF4U3RhdHMpKSB7Ci0gICAgICAgICAgICBtYXhTdGF0c1tzdGF0TmFtZV0gPSAwOwotICAgICAgICAgICAgc3RhdENvdW50Kys7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChzdGF0c1tzdGF0TmFtZV0gPiBtYXhTdGF0c1tzdGF0TmFtZV0pCi0gICAgICAgICAgICBtYXhTdGF0c1tzdGF0TmFtZV0gPSBzdGF0c1tzdGF0TmFtZV07Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0IGhlaWdodCgpIHsKLSAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7Ci0gICAgfSwKLQotICAgIHNldCBoZWlnaHQoaGVpZ2h0KSB7Ci0gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IGhlaWdodDsKLSAgICB9LAotCi0gICAgZHJhdzogZnVuY3Rpb24odHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgewotICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDoKLSAgICAgICAgICB0aGlzLmRyYXdTdGF0QmFyc18odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGRyYXdTdGF0QmFyc186IGZ1bmN0aW9uKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKLSAgICAgIHZhciBjdHggPSB0aGlzLmNvbnRleHQoKTsKLSAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKLQotICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICB2YXIgd2lkdGggPSBib3VuZHMud2lkdGggKiBwaXhlbFJhdGlvOwotICAgICAgdmFyIGhlaWdodCA9IChib3VuZHMuaGVpZ2h0ICogcGl4ZWxSYXRpbykgLyBzdGF0Q291bnQ7Ci0KLSAgICAgIC8vIEN1bGxpbmcgcGFyYW1ldGVycy4KLSAgICAgIHZhciB2cCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0KLSAgICAgIC8vIFNjYWxlIGJ5IHRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IHNuYXBzaG90LgotICAgICAgdmFyIG1heFN0YXRzID0gdGhpcy5tYXhTdGF0c187Ci0KLSAgICAgIHZhciBvYmplY3RTbmFwc2hvdHMgPSB0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHM7Ci0gICAgICB2YXIgbG93SW5kZXggPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgb2JqZWN0U25hcHNob3RzLAotICAgICAgICAgIGZ1bmN0aW9uKHNuYXBzaG90KSB7Ci0gICAgICAgICAgICByZXR1cm4gc25hcHNob3QudHM7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB2aWV3TFdvcmxkKTsKLQotICAgICAgLy8gQXNzdXJlIHRoYXQgdGhlIHN0YWNrIHdpdGggdGhlIGxlZnQgZWRnZSBvZmYgc2NyZWVuIHN0aWxsIGdldHMgZHJhd24KLSAgICAgIGlmIChsb3dJbmRleCA+IDApCi0gICAgICAgIGxvd0luZGV4IC09IDE7Ci0KLSAgICAgIGZvciAodmFyIGkgPSBsb3dJbmRleDsgaSA8IG9iamVjdFNuYXBzaG90cy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgc25hcHNob3QgPSBvYmplY3RTbmFwc2hvdHNbaV07Ci0gICAgICAgIHZhciB0cmFjZSA9IHNuYXBzaG90LmdldFN0YXRzKCk7Ci0gICAgICAgIHZhciBjdXJyZW50WSA9IGhlaWdodDsKLQotICAgICAgICB2YXIgbGVmdCA9IHNuYXBzaG90LnRzOwotICAgICAgICBpZiAobGVmdCA+IHZpZXdSV29ybGQpCi0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHZhciBsZWZ0VmlldyA9IHZwLnhXb3JsZFRvVmlldyhsZWZ0KTsKLSAgICAgICAgaWYgKGxlZnRWaWV3IDwgMCkKLSAgICAgICAgICBsZWZ0VmlldyA9IDA7Ci0KLSAgICAgICAgLy8gQ29tcHV0ZSB0aGUgZWRnZXMgZm9yIHRoZSBjb2x1bW4gZ3JhcGggYmFyLgotICAgICAgICB2YXIgcmlnaHQ7Ci0gICAgICAgIGlmIChpICE9IG9iamVjdFNuYXBzaG90cy5sZW5ndGggLSAxKSB7Ci0gICAgICAgICAgcmlnaHQgPSBvYmplY3RTbmFwc2hvdHNbaSArIDFdLnRzOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGxhc3Qgc25hcGhvdCBvZiBtdWx0aXBsZSBzbmFwc2hvdHMsIHVzZSB0aGUgd2lkdGggb2YKLSAgICAgICAgICAvLyB0aGUgcHJldmlvdXMgc25hcHNob3QgZm9yIHRoZSB3aWR0aC4KLSAgICAgICAgICBpZiAob2JqZWN0U25hcHNob3RzLmxlbmd0aCA+IDEpCi0gICAgICAgICAgICByaWdodCA9IG9iamVjdFNuYXBzaG90c1tpXS50cyArIChvYmplY3RTbmFwc2hvdHNbaV0udHMgLQotICAgICAgICAgICAgICAgICAgICBvYmplY3RTbmFwc2hvdHNbaSAtIDFdLnRzKTsKLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG9ubHkgb25lIHNuYXBzaG90LCB1c2UgbWF4IGJvdW5kcyBhcyB0aGUgd2lkdGguCi0gICAgICAgICAgICByaWdodCA9IHRoaXMub2JqZWN0SW5zdGFuY2VfLnBhcmVudC5tb2RlbC5ib3VuZHMubWF4OwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHJpZ2h0VmlldyA9IHZwLnhXb3JsZFRvVmlldyhyaWdodCk7Ci0gICAgICAgIGlmIChyaWdodFZpZXcgPiB3aWR0aCkKLSAgICAgICAgICByaWdodFZpZXcgPSB3aWR0aDsKLQotICAgICAgICAvLyBGbG9vciB0aGUgYm91bmRzIHRvIGF2b2lkIGEgc21hbGwgZ2FwIGJldHdlZW4gc3RhY2tzLgotICAgICAgICBsZWZ0VmlldyA9IE1hdGguZmxvb3IobGVmdFZpZXcpOwotICAgICAgICByaWdodFZpZXcgPSBNYXRoLmZsb29yKHJpZ2h0Vmlldyk7Ci0KLSAgICAgICAgLy8gRGVzY2VuZCBpbnRvIG5lc3RlZCBzdGF0cy4KLSAgICAgICAgdGhpcy5kcmF3U3RhdEJhcnNSZWN1cnNpdmVfKHNuYXBzaG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodFZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFN0YXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFkpOwotCi0gICAgICAgIGlmIChpID09IGxvd0luZGV4KQotICAgICAgICAgIHRoaXMuZHJhd1N0YXROYW1lc18obGVmdFZpZXcsIGhlaWdodCwgY3VycmVudFksICcnLCBtYXhTdGF0cyk7Ci0gICAgICB9Ci0gICAgICBjdHgubGluZVdpZHRoID0gMTsKLSAgICB9LAotCi0gICAgZHJhd1N0YXRCYXJzUmVjdXJzaXZlXzogZnVuY3Rpb24oc25hcHNob3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhTdGF0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50WSkgewotICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOwotCi0gICAgICBmb3IgKHZhciBzdGF0TmFtZSBpbiBtYXhTdGF0cykgewotICAgICAgICBpZiAoc3RhdHNbc3RhdE5hbWVdIGluc3RhbmNlb2YgT2JqZWN0KSB7Ci0gICAgICAgICAgLy8gVXNlIHRoZSB5LXBvc2l0aW9uIHJldHVybmVkIGZyb20gdGhlIHJlY3Vyc2l2ZSBjYWxsLgotICAgICAgICAgIGN1cnJlbnRZID0gdGhpcy5kcmF3U3RhdEJhcnNSZWN1cnNpdmVfKHNuYXBzaG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0VmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHNbc3RhdE5hbWVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFN0YXRzW3N0YXROYW1lXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50WSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdmFyIG1heFN0YXQgPSBtYXhTdGF0c1tzdGF0TmFtZV07Ci0KLSAgICAgICAgICAvLyBEcmF3IGEgYmFyIGZvciB0aGUgc3RhdC4gVGhlIGhlaWdodCBvZiB0aGUgYmFyIGlzIHNjYWxlZAotICAgICAgICAgIC8vIGFnYWluc3QgdGhlIGxhcmdlc3QgdmFsdWUgb2YgdGhlIHN0YXQgYWNyb3NzIGFsbCBzbmFwc2hvdHMuCi0gICAgICAgICAgY3R4LmZpbGxTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldEJhclNuYXBzaG90Q29sb3IoCi0gICAgICAgICAgICAgIHNuYXBzaG90LCBNYXRoLnJvdW5kKGN1cnJlbnRZIC8gaGVpZ2h0KSk7Ci0KLSAgICAgICAgICB2YXIgYmFySGVpZ2h0OwotCi0gICAgICAgICAgaWYgKG1heFN0YXQgPiAwKSB7Ci0gICAgICAgICAgICBiYXJIZWlnaHQgPSBoZWlnaHQgKiBNYXRoLm1heChzdGF0c1tzdGF0TmFtZV0sIDApIC8gbWF4U3RhdDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYmFySGVpZ2h0ID0gMDsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICBjdHguZmlsbFJlY3QobGVmdFZpZXcsIGN1cnJlbnRZIC0gYmFySGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChyaWdodFZpZXcgLSBsZWZ0VmlldywgMSksIGJhckhlaWdodCk7Ci0KLSAgICAgICAgICBjdXJyZW50WSArPSBoZWlnaHQ7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgLy8gUmV0dXJuIHRoZSB1cGRhdGVkIHktcG9zaXRpb24uCi0gICAgICByZXR1cm4gY3VycmVudFk7Ci0gICAgfSwKLQotICAgIGRyYXdTdGF0TmFtZXNfOiBmdW5jdGlvbihsZWZ0VmlldywgaGVpZ2h0LCBjdXJyZW50WSwgcHJlZml4LCBtYXhTdGF0cykgewotICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOwotCi0gICAgICBjdHgudGV4dEFsaWduID0gJ2VuZCc7Ci0gICAgICBjdHguZm9udCA9ICcxMnB4IEFyaWFsJzsKLSAgICAgIGN0eC5maWxsU3R5bGUgPSAnIzAwMDAwMCc7Ci0gICAgICBmb3IgKHZhciBzdGF0TmFtZSBpbiBtYXhTdGF0cykgewotICAgICAgICBpZiAobWF4U3RhdHNbc3RhdE5hbWVdIGluc3RhbmNlb2YgT2JqZWN0KSB7Ci0gICAgICAgICAgY3VycmVudFkgPSB0aGlzLmRyYXdTdGF0TmFtZXNfKGxlZnRWaWV3LCBoZWlnaHQsIGN1cnJlbnRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0TmFtZSwgbWF4U3RhdHNbc3RhdE5hbWVdKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgZnVsbG5hbWUgPSBzdGF0TmFtZTsKLQotICAgICAgICAgIGlmIChwcmVmaXggIT0gJycpCi0gICAgICAgICAgICBmdWxsbmFtZSA9IHByZWZpeCArICcgOjogJyArIHN0YXROYW1lOwotCi0gICAgICAgICAgY3R4LmZpbGxUZXh0KGZ1bGxuYW1lLCBsZWZ0VmlldyAtIDEwLCBjdXJyZW50WSAtIGhlaWdodCAvIDQpOwotICAgICAgICAgIGN1cnJlbnRZICs9IGhlaWdodDsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICByZXR1cm4gY3VycmVudFk7Ci0gICAgfQotICB9OwotCi0gIHRyLmMudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2sucmVnaXN0ZXIoCi0gICAgICBTeXN0ZW1TdGF0c0luc3RhbmNlVHJhY2ssCi0gICAgICB7dHlwZU5hbWU6ICdiYXNlOjpUcmFjZUV2ZW50U3lzdGVtU3RhdHNNb25pdG9yOjpTeXN0ZW1TdGF0cyd9KTsKLQotICByZXR1cm4gewotICAgIFN5c3RlbVN0YXRzSW5zdGFuY2VUcmFjazogU3lzdGVtU3RhdHNJbnN0YW5jZVRyYWNrCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX2luc3RhbmNlX3RyYWNrX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZhNGU4OC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX2luc3RhbmNlX3RyYWNrX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3Rpb25fc3RhdGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKLSAgdmFyIFN5c3RlbVN0YXRzSW5zdGFuY2VUcmFjayA9IHRyLmUuc3lzdGVtX3N0YXRzLlN5c3RlbVN0YXRzSW5zdGFuY2VUcmFjazsKLSAgdmFyIFZpZXdwb3J0ID0gdHIuYy5UaW1lbGluZVZpZXdwb3J0OwotCi0gIHZhciBjcmVhdGVPYmplY3RzID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG9iamVjdEluc3RhbmNlID0gbmV3IHRyLm1vZGVsLk9iamVjdEluc3RhbmNlKHt9KTsKLSAgICB2YXIgc25hcHNob3RzID0gW107Ci0KLSAgICB2YXIgc3RhdHMxID0gbmV3IE9iamVjdCgpOwotICAgIHZhciBzdGF0czIgPSBuZXcgT2JqZWN0KCk7Ci0KLSAgICBzdGF0czFbJ2NvbW1pdHRlZF9tZW1vcnknXSA9IDIwMDAwMDA7Ci0gICAgc3RhdHMyWydjb21taXR0ZWRfbWVtb3J5J10gPSAzMDAwMDAwOwotCi0gICAgc3RhdHMxWydtZW1pbmZvJ10gPSBuZXcgT2JqZWN0KCk7Ci0gICAgc3RhdHMxLm1lbWluZm9bJ2ZyZWUnXSA9IDEwMDAwOwotICAgIHN0YXRzMlsnbWVtaW5mbyddID0gbmV3IE9iamVjdCgpOwotICAgIHN0YXRzMi5tZW1pbmZvWydmcmVlJ10gPSAyMDAwMDsKLQotICAgIHNuYXBzaG90cy5wdXNoKG5ldyB0ci5lLnN5c3RlbV9zdGF0cy5TeXN0ZW1TdGF0c1NuYXBzaG90KG9iamVjdEluc3RhbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLCBzdGF0czEpKTsKLSAgICBzbmFwc2hvdHMucHVzaChuZXcgdHIuZS5zeXN0ZW1fc3RhdHMuU3lzdGVtU3RhdHNTbmFwc2hvdChvYmplY3RJbnN0YW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCwgc3RhdHMyKSk7Ci0KLSAgICBvYmplY3RJbnN0YW5jZS5zbmFwc2hvdHMgPSBzbmFwc2hvdHM7Ci0KLSAgICByZXR1cm4gb2JqZWN0SW5zdGFuY2U7Ci0gIH07Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgb2JqZWN0SW5zdGFuY2VzID0gW107Ci0gICAgb2JqZWN0SW5zdGFuY2VzLnB1c2goY3JlYXRlT2JqZWN0cygpKTsKLQotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKLSAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci5jLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7Ci0KLSAgICB2YXIgdHJhY2sgPSBuZXcgU3lzdGVtU3RhdHNJbnN0YW5jZVRyYWNrKHZpZXdwb3J0KTsKLSAgICB0cmFjay5vYmplY3RJbnN0YW5jZXMgPSBvYmplY3RJbnN0YW5jZXM7Ci0gICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7Ci0KLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKLSAgICBkcmF3aW5nQ29udGFpbmVyLmludmFsaWRhdGUoKTsKLQotICAgIHRyYWNrLmhlYWRpbmcgPSAndGVzdEJhc2ljJzsKLSAgICB2YXIgZHQgPSBuZXcgdHIuYy5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKLSAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgNTAsIHRyYWNrLmNsaWVudFdpZHRoKTsKLSAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdF92aWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTMwNDYzZS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0uc3ViaGVhZCB7Ci0gIGZvbnQtc2l6ZTogc21hbGw7Ci0gIHBhZGRpbmctYm90dG9tOiAxMHB4OwotfQotCi0uc3lzdGVtLXN0YXRzLXNuYXBzaG90LXZpZXcgdWwgewotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDVweDsKLSAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKLSAgY3Vyc29yOiBwb2ludGVyOwotICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICBsaXN0LXN0eWxlOiBub25lOwotICBtYXJnaW46IDA7Ci0gIHBhZGRpbmctbGVmdDogMTVweDsKLX0KLQotLnN5c3RlbS1zdGF0cy1zbmFwc2hvdC12aWV3IGxpIHsKLSAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1cHg7Ci0gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Ci0gIGN1cnNvcjogcG9pbnRlcjsKLSAgbGlzdC1zdHlsZTogbm9uZTsKLSAgbWFyZ2luOiAwOwotICBwYWRkaW5nLWxlZnQ6IDE1cHg7Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3Rfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzdmM2EyLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3Rfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuY3NzIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS5zeXN0ZW1fc3RhdHMnLCBmdW5jdGlvbigpIHsKLSAgLyoKLSAgICogRGlzcGxheXMgYSBzeXN0ZW0gc3RhdHMgc25hcHNob3QgaW4gYSBodW1hbiByZWFkYWJsZSBmb3JtLiBAY29uc3RydWN0b3IKLSAgICovCi0gIHZhciBTeXN0ZW1TdGF0c1NuYXBzaG90VmlldyA9IHRyLmIudWkuZGVmaW5lKCdzeXN0ZW0tc3RhdHMtc25hcHNob3QtdmlldycsCi0gICAgICB0ci5jLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldyk7Ci0KLSAgU3lzdGVtU3RhdHNTbmFwc2hvdFZpZXcucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzeXN0ZW0tc3RhdHMtc25hcHNob3QtdmlldycpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50czogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgc25hcHNob3QgPSB0aGlzLm9iamVjdFNuYXBzaG90XzsKLSAgICAgIGlmICghc25hcHNob3QgfHwgIXNuYXBzaG90LmdldFN0YXRzKCkpIHsKLSAgICAgICAgdGhpcy50ZXh0Q29udGVudCA9ICdObyBzeXN0ZW0gc3RhdHMgc25hcHNob3QgZm91bmQuJzsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAgLy8gQ2xlYXIgb2xkIHNuYXBzaG90IHZpZXcuCi0gICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7Ci0KLSAgICAgIHZhciBzdGF0cyA9IHNuYXBzaG90LmdldFN0YXRzKCk7Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuYnVpbGRMaXN0XyhzdGF0cykpOwotICAgIH0sCi0KLSAgICBpc0Zsb2F0OiBmdW5jdGlvbihuKSB7Ci0gICAgICByZXR1cm4gdHlwZW9mIG4gPT09ICdudW1iZXInICYmIG4gJSAxICE9PSAwOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIG5lc3RlZCBsaXN0cy4KLSAgICAgKgotICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0cyBUaGUgY3VycmVudCB0cmFjZSBzeXN0ZW0gc3RhdHMgZW50cnkuCi0gICAgICogQHJldHVybiB7RWxlbWVudH0gQSB1bCBsaXN0IGVsZW1lbnQuCi0gICAgICovCi0gICAgYnVpbGRMaXN0XzogZnVuY3Rpb24oc3RhdHMpIHsKLSAgICAgIHZhciBzdGF0TGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VsJyk7Ci0KLSAgICAgIGZvciAodmFyIHN0YXROYW1lIGluIHN0YXRzKSB7Ci0gICAgICAgIHZhciBzdGF0VGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7Ci0gICAgICAgIHN0YXRUZXh0LnRleHRDb250ZW50ID0gJycgKyBzdGF0TmFtZSArICc6ICc7Ci0gICAgICAgIHN0YXRMaXN0LmFwcGVuZENoaWxkKHN0YXRUZXh0KTsKLQotICAgICAgICBpZiAoc3RhdHNbc3RhdE5hbWVdIGluc3RhbmNlb2YgT2JqZWN0KSB7Ci0gICAgICAgICAgc3RhdExpc3QuYXBwZW5kQ2hpbGQodGhpcy5idWlsZExpc3RfKHN0YXRzW3N0YXROYW1lXSkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmICh0aGlzLmlzRmxvYXQoc3RhdHNbc3RhdE5hbWVdKSkKLSAgICAgICAgICAgIHN0YXRUZXh0LnRleHRDb250ZW50ICs9IHN0YXRzW3N0YXROYW1lXS50b0ZpeGVkKDIpOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXRUZXh0LnRleHRDb250ZW50ICs9IHN0YXRzW3N0YXROYW1lXTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICByZXR1cm4gc3RhdExpc3Q7Ci0gICAgfQotICB9OwotCi0gIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAotICAgICAgU3lzdGVtU3RhdHNTbmFwc2hvdFZpZXcsCi0gICAgICB7dHlwZU5hbWU6ICdiYXNlOjpUcmFjZUV2ZW50U3lzdGVtU3RhdHNNb25pdG9yOjpTeXN0ZW1TdGF0cyd9KTsKLQotICByZXR1cm4gewotICAgIFN5c3RlbVN0YXRzU25hcHNob3RWaWV3OiBTeXN0ZW1TdGF0c1NuYXBzaG90VmlldwotICB9OwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdHJhY2VfY29uZmlnLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0cmFjZV9jb25maWcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2EwMjNiMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0cmFjZV9jb25maWcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08IS0tIFRoaXMgY29uZmlnIGlzIHVzZWQgYnkgQW5kcm9pZCBzeXN0cmFjZS4gLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9iYXR0b3JfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9zaWRlX3BhbmVsL2FsZXJ0c19zaWRlX3BhbmVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX2F1ZGl0b3IuaHRtbCI+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9oZWFwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9oZWFwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzNjZhNmMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvaGVhcC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL29iamVjdF9pbnN0YW5jZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy91dGlsLmh0bWwiPgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLmUudGNtYWxsb2MnLCBmdW5jdGlvbigpIHsKLSAgdmFyIE9iamVjdFNuYXBzaG90ID0gdHIubW9kZWwuT2JqZWN0U25hcHNob3Q7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gSGVhcFNuYXBzaG90KCkgewotICAgIE9iamVjdFNuYXBzaG90LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gIH0KLQotICBIZWFwU25hcHNob3QucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogT2JqZWN0U25hcHNob3QucHJvdG90eXBlLAotCi0gICAgcHJlSW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0ci5lLmNjLnByZUluaXRpYWxpemVPYmplY3QodGhpcyk7Ci0KLSAgICAgIC8vIFRPRE8oamFtZXNjb29rKTogQW55IGdlbmVyaWMgZmllbGQgc2V0dXAgY2FuIGdvIGhlcmUuCi0gICAgfSwKLQotICAgIC8vIFRPRE8oamFtZXNjb29rKTogVGhpcyBzZWVtcyB0byBiZSBjYWxsZWQgYmVmb3JlIHRoZSBncmVlbiBkb3QgaXMgY2xpY2tlZC4KLSAgICAvLyBDb25zaWRlciBkb2luZyBpdCBpbiBoZWFwX3ZpZXcuanMuCi0gICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5hcmdzLmxlbmd0aCA9PSAwKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGhlYXAgc25hcHNob3QgZGF0YS4nKTsKLQotICAgICAgLy8gVGhlIGZpcnN0IGVudHJ5IGlzIHRvdGFsIGFsbG9jYXRpb25zIGFjcm9zcyBhbGwgc3RhY2sgdHJhY2VzLgotICAgICAgdGhpcy50b3RhbF8gPSB0aGlzLmFyZ3NbMF07Ci0gICAgICAvLyBUaGUgcmVzdCBpcyBhIGxpc3Qgb2YgYWxsb2NhdGlvbnMuCi0gICAgICB2YXIgYWxsb2NzID0gdGhpcy5hcmdzLnNsaWNlKDEpOwotCi0gICAgICAvLyBCdWlsZCBhIG5lc3RlZCBkaWN0aW9uYXJ5IG9mIHRyYWNlIGV2ZW50IG5hbWVzLgotICAgICAgdGhpcy5oZWFwXyA9IHsKLSAgICAgICAgY2hpbGRyZW46IHt9LAotICAgICAgICBjdXJyZW50Qnl0ZXM6IDAsCi0gICAgICAgIGN1cnJlbnRBbGxvY3M6IDAsCi0gICAgICAgIHRvdGFsQnl0ZXM6IDAsCi0gICAgICAgIHRvdGFsQWxsb2NzOiAwCi0gICAgICB9OwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxvY3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGFsbG9jID0gYWxsb2NzW2ldOwotICAgICAgICB2YXIgdHJhY2VOYW1lcyA9IGFsbG9jLnRyYWNlLnNwbGl0KCcgJyk7Ci0gICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcmVjb3JkIGFsbG9jYXRpb25zIGNhdXNlZCBieSB0aGUgaGVhcCBwcm9maWxpbmcKLSAgICAgICAgLy8gc3lzdGVtIGl0c2VsZiwgc28gc2tpcCBhbGxvY2F0aW9ucyB3aXRoIHRoaXMgc3BlY2lhbCBuYW1lLgotICAgICAgICBpZiAodHJhY2VOYW1lcy5pbmRleE9mKCd0cmFjZS1tZW1vcnktaWdub3JlJykgIT0gLTEpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHZhciBoZWFwRW50cnkgPSB0aGlzLmhlYXBfOwotICAgICAgICAvLyBXYWxrIGRvd24gaW50byB0aGUgaGVhcCBvZiBzdGFjayB0cmFjZXMuCi0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdHJhY2VOYW1lcy5sZW5ndGg7IGorKykgewotICAgICAgICAgIC8vIExvb2sgZm9yIGV4aXN0aW5nIGNoaWxkcmVuIHdpdGggdGhpcyB0cmFjZS4KLSAgICAgICAgICB2YXIgdHJhY2VOYW1lID0gdHJhY2VOYW1lc1tqXTsKLSAgICAgICAgICAvLyBUaGUgZW1wdHkgdHJhY2UgbmFtZSBtZWFucyAiKGhlcmUpIiwgc28gZG9uJ3Qgcm9sbCB0aG9zZSB1cCBpbnRvCi0gICAgICAgICAgLy8gcGFyZW50IHRyYWNlcyBiZWNhdXNlIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gY291bnRlZC4KLSAgICAgICAgICBpZiAodHJhY2VOYW1lLmxlbmd0aCAhPSAwKSB7Ci0gICAgICAgICAgICAvLyBBZGQgdXAgdGhlIHRvdGFsIG1lbW9yeSBmb3IgaW50ZXJtZWRpYXRlIGVudHJpZXMsIHNvIHRoZSB0b3Agb2YKLSAgICAgICAgICAgIC8vIGVhY2ggc3VidHJlZSBpcyB0aGUgdG90YWwgbWVtb3J5IGZvciB0aGF0IHRyZWUuCi0gICAgICAgICAgICBoZWFwRW50cnkuY3VycmVudEJ5dGVzICs9IGFsbG9jLmN1cnJlbnRCeXRlczsKLSAgICAgICAgICAgIGhlYXBFbnRyeS5jdXJyZW50QWxsb2NzICs9IGFsbG9jLmN1cnJlbnRBbGxvY3M7Ci0gICAgICAgICAgICBoZWFwRW50cnkudG90YWxCeXRlcyArPSBhbGxvYy50b3RhbEJ5dGVzOwotICAgICAgICAgICAgaGVhcEVudHJ5LnRvdGFsQWxsb2NzICs9IGFsbG9jLnRvdGFsQWxsb2NzOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIWhlYXBFbnRyeS5jaGlsZHJlblt0cmFjZU5hbWVdKSB7Ci0gICAgICAgICAgICAvLyBOZXcgdHJhY2UgZW50cnkgYXQgdGhpcyBkZXB0aCwgc28gY3JlYXRlIGEgY2hpbGQgZm9yIGl0LgotICAgICAgICAgICAgaGVhcEVudHJ5LmNoaWxkcmVuW3RyYWNlTmFtZV0gPSB7Ci0gICAgICAgICAgICAgIGNoaWxkcmVuOiB7fSwKLSAgICAgICAgICAgICAgY3VycmVudEJ5dGVzOiBhbGxvYy5jdXJyZW50Qnl0ZXMsCi0gICAgICAgICAgICAgIGN1cnJlbnRBbGxvY3M6IGFsbG9jLmN1cnJlbnRBbGxvY3MsCi0gICAgICAgICAgICAgIHRvdGFsQnl0ZXM6IGFsbG9jLnRvdGFsQnl0ZXMsCi0gICAgICAgICAgICAgIHRvdGFsQWxsb2NzOiBhbGxvYy50b3RhbEFsbG9jcwotICAgICAgICAgICAgfTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gRGVzY2VuZCBpbnRvIHRoZSBjaGlsZHJlbi4KLSAgICAgICAgICBoZWFwRW50cnkgPSBoZWFwRW50cnkuY2hpbGRyZW5bdHJhY2VOYW1lXTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLQotICB9OwotCi0gIE9iamVjdFNuYXBzaG90LnJlZ2lzdGVyKAotICAgIEhlYXBTbmFwc2hvdCwKLSAgICB7dHlwZU5hbWU6ICdtZW1vcnk6OkhlYXAnfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBIZWFwU25hcHNob3Q6IEhlYXBTbmFwc2hvdAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL2hlYXBfaW5zdGFuY2VfdHJhY2suY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0NWEwNDYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotICovCi0KLS5oZWFwLWluc3RhbmNlLXRyYWNrIHsKLSAgaGVpZ2h0OiAxNTBweDsKLX0KLQotLmhlYXAtaW5zdGFuY2UtdHJhY2sgdWwgewotICBsaXN0LXN0eWxlOiBub25lOwotICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOwotICBtYXJnaW46IDA7Ci0gIG92ZXJmbG93OiBoaWRkZW47Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9oZWFwX2luc3RhbmNlX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9oZWFwX2luc3RhbmNlX3RyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwODk1NGIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTc2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5jc3MiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9zdGFja2VkX2JhcnNfdHJhY2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9ldmVudF9wcmVzZW50ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS50Y21hbGxvYycsIGZ1bmN0aW9uKCkgewotICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB0ci5jLkV2ZW50UHJlc2VudGVyOwotCi0gIC8qKgotICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgaGVhcCBtZW1vcnkgZGF0YS4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHtTdGFja2VkQmFyc1RyYWNrfQotICAgKi8KLQotICB2YXIgSGVhcEluc3RhbmNlVHJhY2sgPSB0ci5iLnVpLmRlZmluZSgKLSAgICAgICdoZWFwLWluc3RhbmNlLXRyYWNrJywgdHIuYy50cmFja3MuU3RhY2tlZEJhcnNUcmFjayk7Ci0KLSAgSGVhcEluc3RhbmNlVHJhY2sucHJvdG90eXBlID0gewotCi0gICAgX19wcm90b19fOiB0ci5jLnRyYWNrcy5TdGFja2VkQmFyc1RyYWNrLnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgewotICAgICAgdHIuYy50cmFja3MuU3RhY2tlZEJhcnNUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7Ci0gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2hlYXAtaW5zdGFuY2UtdHJhY2snKTsKLSAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gbnVsbDsKLSAgICB9LAotCi0gICAgc2V0IG9iamVjdEluc3RhbmNlcyhvYmplY3RJbnN0YW5jZXMpIHsKLSAgICAgIGlmICghb2JqZWN0SW5zdGFuY2VzKSB7Ci0gICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gW107Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGlmIChvYmplY3RJbnN0YW5jZXMubGVuZ3RoICE9IDEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignQmFkIG9iamVjdCBpbnN0YW5jZSBjb3VudC4nKTsKLSAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gb2JqZWN0SW5zdGFuY2VzWzBdOwotICAgICAgdGhpcy5tYXhCeXRlc18gPSB0aGlzLmNvbXB1dGVNYXhCeXRlc18oCi0gICAgICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZV8uc25hcHNob3RzKTsKLSAgICB9LAotCi0gICAgY29tcHV0ZU1heEJ5dGVzXzogZnVuY3Rpb24oc25hcHNob3RzKSB7Ci0gICAgICB2YXIgbWF4Qnl0ZXMgPSAwOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbmFwc2hvdHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHNuYXBzaG90ID0gc25hcHNob3RzW2ldOwotICAgICAgICAvLyBTdW0gYWxsIHRoZSBjdXJyZW50IGFsbG9jYXRpb25zIGluIHRoaXMgc25hcHNob3QuCi0gICAgICAgIHZhciB0cmFjZU5hbWVzID0gT2JqZWN0LmtleXMoc25hcHNob3QuaGVhcF8uY2hpbGRyZW4pOwotICAgICAgICB2YXIgc3VtQnl0ZXMgPSAwOwotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRyYWNlTmFtZXMubGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICBzdW1CeXRlcyArPSBzbmFwc2hvdC5oZWFwXy5jaGlsZHJlblt0cmFjZU5hbWVzW2pdXS5jdXJyZW50Qnl0ZXM7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gS2VlcCB0cmFjayBvZiB0aGUgbWF4aW11bSBhY3Jvc3MgYWxsIHNuYXBzaG90cy4KLSAgICAgICAgaWYgKHN1bUJ5dGVzID4gbWF4Qnl0ZXMpCi0gICAgICAgICAgbWF4Qnl0ZXMgPSBzdW1CeXRlczsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtYXhCeXRlczsKLSAgICB9LAotCi0gICAgZ2V0IGhlaWdodCgpIHsKLSAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7Ci0gICAgfSwKLQotICAgIHNldCBoZWlnaHQoaGVpZ2h0KSB7Ci0gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IGhlaWdodDsKLSAgICB9LAotCi0gICAgZHJhdzogZnVuY3Rpb24odHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgewotICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgdHIuYy50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDoKLSAgICAgICAgICB0aGlzLmRyYXdFdmVudHNfKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0sCi0KLSAgICBkcmF3RXZlbnRzXzogZnVuY3Rpb24odmlld0xXb3JsZCwgdmlld1JXb3JsZCkgewotICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOwotICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwotCi0gICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgIHZhciB3aWR0aCA9IGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW87Ci0gICAgICB2YXIgaGVpZ2h0ID0gYm91bmRzLmhlaWdodCAqIHBpeGVsUmF0aW87Ci0KLSAgICAgIC8vIEN1bGxpbmcgcGFyYW1ldGVycy4KLSAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07Ci0KLSAgICAgIC8vIFNjYWxlIGJ5IHRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IHNuYXBzaG90LgotICAgICAgdmFyIG1heEJ5dGVzID0gdGhpcy5tYXhCeXRlc187Ci0KLSAgICAgIHZhciBvYmplY3RTbmFwc2hvdHMgPSB0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHM7Ci0gICAgICB2YXIgbG93SW5kZXggPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgb2JqZWN0U25hcHNob3RzLAotICAgICAgICAgIGZ1bmN0aW9uKHNuYXBzaG90KSB7Ci0gICAgICAgICAgICByZXR1cm4gc25hcHNob3QudHM7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB2aWV3TFdvcmxkKTsKLSAgICAgIC8vIEFzc3VyZSB0aGF0IHRoZSBzdGFjayB3aXRoIHRoZSBsZWZ0IGVkZ2Ugb2ZmIHNjcmVlbiBzdGlsbCBnZXRzIGRyYXduCi0gICAgICBpZiAobG93SW5kZXggPiAwKQotICAgICAgICBsb3dJbmRleCAtPSAxOwotCi0gICAgICBmb3IgKHZhciBpID0gbG93SW5kZXg7IGkgPCBvYmplY3RTbmFwc2hvdHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHNuYXBzaG90ID0gb2JqZWN0U25hcHNob3RzW2ldOwotCi0gICAgICAgIHZhciBsZWZ0ID0gc25hcHNob3QudHM7Ci0gICAgICAgIGlmIChsZWZ0ID4gdmlld1JXb3JsZCkKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgdmFyIGxlZnRWaWV3ID0gZHQueFdvcmxkVG9WaWV3KGxlZnQpOwotICAgICAgICBpZiAobGVmdFZpZXcgPCAwKQotICAgICAgICAgIGxlZnRWaWV3ID0gMDsKLQotICAgICAgICAvLyBDb21wdXRlIHRoZSBlZGdlcyBmb3IgdGhlIGNvbHVtbiBncmFwaCBiYXIuCi0gICAgICAgIHZhciByaWdodDsKLSAgICAgICAgaWYgKGkgIT0gb2JqZWN0U25hcHNob3RzLmxlbmd0aCAtIDEpIHsKLSAgICAgICAgICByaWdodCA9IG9iamVjdFNuYXBzaG90c1tpICsgMV0udHM7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgbGFzdCBzbmFwaG90IG9mIG11bHRpcGxlIHNuYXBzaG90cywgdXNlIHRoZSB3aWR0aCBvZgotICAgICAgICAgIC8vIHRoZSBwcmV2aW91cyBzbmFwc2hvdCBmb3IgdGhlIHdpZHRoLgotICAgICAgICAgIGlmIChvYmplY3RTbmFwc2hvdHMubGVuZ3RoID4gMSkKLSAgICAgICAgICAgIHJpZ2h0ID0gb2JqZWN0U25hcHNob3RzW2ldLnRzICsgKG9iamVjdFNuYXBzaG90c1tpXS50cyAtCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdFNuYXBzaG90c1tpIC0gMV0udHMpOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgc25hcHNob3QsIHVzZSBtYXggYm91bmRzIGFzIHRoZSB3aWR0aC4KLSAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5vYmplY3RJbnN0YW5jZV8ucGFyZW50Lm1vZGVsLmJvdW5kcy5tYXg7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcmlnaHRWaWV3ID0gZHQueFdvcmxkVG9WaWV3KHJpZ2h0KTsKLSAgICAgICAgaWYgKHJpZ2h0VmlldyA+IHdpZHRoKQotICAgICAgICAgIHJpZ2h0VmlldyA9IHdpZHRoOwotCi0gICAgICAgIC8vIEZsb29yIHRoZSBib3VuZHMgdG8gYXZvaWQgYSBzbWFsbCBnYXAgYmV0d2VlbiBzdGFja3MuCi0gICAgICAgIGxlZnRWaWV3ID0gTWF0aC5mbG9vcihsZWZ0Vmlldyk7Ci0gICAgICAgIHJpZ2h0VmlldyA9IE1hdGguZmxvb3IocmlnaHRWaWV3KTsKLQotICAgICAgICAvLyBEcmF3IGEgc3RhY2tlZCBiYXIgZ3JhcGguIExhcmdlc3QgaXRlbSBpcyBzdG9yZWQgZmlyc3QgaW4gdGhlCi0gICAgICAgIC8vIGhlYXAgZGF0YSBzdHJ1Y3R1cmUsIHNvIGl0ZXJhdGUgYmFja3dhcmRzLiBMaWtld2lzZSBkcmF3IGZyb20KLSAgICAgICAgLy8gdGhlIGJvdHRvbSBvZiB0aGUgYmFyIHVwd2FyZHMuCi0gICAgICAgIHZhciBjdXJyZW50WSA9IGhlaWdodDsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzbmFwc2hvdC5oZWFwXy5jaGlsZHJlbik7Ci0gICAgICAgIGZvciAodmFyIGsgPSBrZXlzLmxlbmd0aCAtIDE7IGsgPj0gMDsgay0tKSB7Ci0gICAgICAgICAgdmFyIHRyYWNlID0gc25hcHNob3QuaGVhcF8uY2hpbGRyZW5ba2V5c1trXV07Ci0gICAgICAgICAgaWYgKHRoaXMub2JqZWN0SW5zdGFuY2VfLnNlbGVjdGVkVHJhY2VzICYmCi0gICAgICAgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfLnNlbGVjdGVkVHJhY2VzLmxlbmd0aCA+IDAgJiYKLSAgICAgICAgICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZV8uc2VsZWN0ZWRUcmFjZXNbMF0gPT0ga2V5c1trXSkgewotICAgICAgICAgICAgLy8gQSB0cmFjZSBzZWxlY3RlZCBpbiB0aGUgYW5hbHlzaXMgdmlldyBpcyBicmlnaHQgeWVsbG93LgotICAgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2IoMjM5LCAyNDgsIDIwNiknOwotICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldEJhclNuYXBzaG90Q29sb3Ioc25hcHNob3QsIGspOwotCi0gICAgICAgICAgdmFyIGJhckhlaWdodCA9IGhlaWdodCAqIHRyYWNlLmN1cnJlbnRCeXRlcyAvIG1heEJ5dGVzOwotICAgICAgICAgIGN0eC5maWxsUmVjdChsZWZ0VmlldywgY3VycmVudFkgLSBiYXJIZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWF4KHJpZ2h0VmlldyAtIGxlZnRWaWV3LCAxKSwgYmFySGVpZ2h0KTsKLSAgICAgICAgICBjdXJyZW50WSAtPSBiYXJIZWlnaHQ7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGN0eC5saW5lV2lkdGggPSAxOwotICAgIH0KLSAgfTsKLQotICB0ci5jLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrLnJlZ2lzdGVyKAotICAgICAgSGVhcEluc3RhbmNlVHJhY2ssCi0gICAgICB7dHlwZU5hbWU6ICdtZW1vcnk6OkhlYXAnfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBIZWFwSW5zdGFuY2VUcmFjazogSGVhcEluc3RhbmNlVHJhY2sKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9oZWFwX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL2hlYXBfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDk2ODkzLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL2hlYXBfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90Y21hbGxvYy9oZWFwLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIEhlYXBTbmFwc2hvdCA9IHRyLmUudGNtYWxsb2MuSGVhcFNuYXBzaG90OwotCi0gIC8vIFRlc3RzIHRvdGFsIGFsbG9jYXRpb24gY291bnQuCi0gIHRlc3QoJ3RvdGFscycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBzbmFwc2hvdCA9IG5ldyBIZWFwU25hcHNob3Qoe30sIDEsIFsKLSAgICAgIHsKLSAgICAgICAgJ2N1cnJlbnRfYWxsb2NzJzogMTAsCi0gICAgICAgICd0b3RhbF9hbGxvY3MnOiAxMDAsCi0gICAgICAgICdjdXJyZW50X2J5dGVzJzogMTAwMDAsCi0gICAgICAgICd0cmFjZSc6ICcnLAotICAgICAgICAndG90YWxfYnl0ZXMnOiAxMDAwMDAKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgICdjdXJyZW50X2FsbG9jcyc6IDIsCi0gICAgICAgICd0b3RhbF9hbGxvY3MnOiAyMiwKLSAgICAgICAgJ2N1cnJlbnRfYnl0ZXMnOiAyMDAsCi0gICAgICAgICd0cmFjZSc6ICdUZXN0T2JqZWN0OjpUZXN0TWV0aG9kICcsCi0gICAgICAgICd0b3RhbF9ieXRlcyc6IDIyMDAKLSAgICAgIH0KLSAgICBdKTsKLSAgICBzbmFwc2hvdC5wcmVJbml0aWFsaXplKCk7Ci0gICAgc25hcHNob3QuaW5pdGlhbGl6ZSgpOwotCi0gICAgLy8gQmFzZSBjbGFzcyBnb3QgdGhlIHRpbWVzdGFtcC4KLSAgICBhc3NlcnQuZXF1YWwoc25hcHNob3QudHMsIDEpOwotCi0gICAgLy8gVGhlIGZpcnN0IGVudHJ5IGluIHRoZSBsaXN0IGlzIGZvciB0b3RhbHMuCi0gICAgYXNzZXJ0LmVxdWFsKHNuYXBzaG90LnRvdGFsXy5jdXJyZW50QWxsb2NzLCAxMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNuYXBzaG90LnRvdGFsXy5jdXJyZW50Qnl0ZXMsIDEwMDAwKTsKLSAgfSk7Ci0KLSAgLy8gVGVzdHMgbXVsdGktbGV2ZWwgdHJhY2Ugc3RhY2tzLgotICB0ZXN0KCdtdWx0aUxldmVsJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNuYXBzaG90ID0gbmV3IEhlYXBTbmFwc2hvdCh7fSwgMSwgWwotICAgICAgewotICAgICAgICAnY3VycmVudF9hbGxvY3MnOiAxMCwKLSAgICAgICAgJ3RvdGFsX2FsbG9jcyc6IDEwMCwKLSAgICAgICAgJ2N1cnJlbnRfYnl0ZXMnOiAxMDAwMCwKLSAgICAgICAgJ3RyYWNlJzogJycsCi0gICAgICAgICd0b3RhbF9ieXRlcyc6IDEwMDAwMAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgJ2N1cnJlbnRfYWxsb2NzJzogMiwKLSAgICAgICAgJ3RvdGFsX2FsbG9jcyc6IDIyLAotICAgICAgICAnY3VycmVudF9ieXRlcyc6IDIwMCwKLSAgICAgICAgJ3RyYWNlJzogJ1Rlc3RPYmplY3Q6OlRlc3RNZXRob2QgJywKLSAgICAgICAgJ3RvdGFsX2J5dGVzJzogMjIwMAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgJ2N1cnJlbnRfYWxsb2NzJzogMywKLSAgICAgICAgJ3RvdGFsX2FsbG9jcyc6IDMzLAotICAgICAgICAnY3VycmVudF9ieXRlcyc6IDMwMCwKLSAgICAgICAgJ3RyYWNlJzogJ1Rlc3RPYmplY3QyOjpUZXN0TWV0aG9kMiAgJywKLSAgICAgICAgJ3RvdGFsX2J5dGVzJzogMzMwMAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgJ2N1cnJlbnRfYWxsb2NzJzogNSwKLSAgICAgICAgJ3RvdGFsX2FsbG9jcyc6IDU1LAotICAgICAgICAnY3VycmVudF9ieXRlcyc6IDUwMCwKLSAgICAgICAgJ3RyYWNlJzogJ1Rlc3RPYmplY3QyOjpUZXN0TWV0aG9kMiBUZXN0T2JqZWN0Mzo6VGVzdE1ldGhvZDMgJywKLSAgICAgICAgJ3RvdGFsX2J5dGVzJzogNTUwMAotICAgICAgfQotICAgIF0pOwotICAgIHNuYXBzaG90LnByZUluaXRpYWxpemUoKTsKLSAgICBzbmFwc2hvdC5pbml0aWFsaXplKCk7Ci0KLSAgICAvLyBPdXIgaGVhcCBoYXMgdHdvIHRvcC1sZXZlbCBzdGFja3MuCi0gICAgdmFyIGhlYXAgPSBzbmFwc2hvdC5oZWFwXzsKLSAgICB2YXIgY2hpbGRLZXlzID0gT2JqZWN0LmtleXMoaGVhcC5jaGlsZHJlbik7Ci0gICAgYXNzZXJ0LmVxdWFsKGNoaWxkS2V5cy5sZW5ndGgsIDIpOwotICAgIC8vIEJvdGggbWV0aG9kcyBleGlzdCBhcyBjaGlsZHJlbi4KLSAgICBhc3NlcnQubm90RXF1YWwoY2hpbGRLZXlzLmluZGV4T2YoJ1Rlc3RPYmplY3Q6OlRlc3RNZXRob2QnKSwgLTEpOwotICAgIGFzc2VydC5ub3RFcXVhbChjaGlsZEtleXMuaW5kZXhPZignVGVzdE9iamVjdDI6OlRlc3RNZXRob2QyJyksIC0xKTsKLQotICAgIC8vIFZlcmlmeSB0aGUgZmlyc3QgdHJhY2UgZW50cnkgc3RhY2suCi0gICAgdmFyIHRyYWNlID0gaGVhcC5jaGlsZHJlblsnVGVzdE9iamVjdDo6VGVzdE1ldGhvZCddOwotICAgIGFzc2VydC5lcXVhbCh0cmFjZS5jdXJyZW50QWxsb2NzLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwodHJhY2UuY3VycmVudEJ5dGVzLCAyMDApOwotICAgIC8vIE9uZSBjaGlsZCBmb3IgIihoZXJlKSIuCi0gICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHRyYWNlLmNoaWxkcmVuKS5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5pc05vdE51bGwodHJhY2UuY2hpbGRyZW5bJyhoZXJlKSddKTsKLQotICAgIC8vIFZlcmlmeSB0aGUgc2Vjb25kIHRyYWNlIGVudHJ5IHN0YWNrLgotICAgIHRyYWNlID0gaGVhcC5jaGlsZHJlblsnVGVzdE9iamVjdDI6OlRlc3RNZXRob2QyJ107Ci0gICAgLy8gTWVtb3J5IHNob3VsZCBoYXZlIHN1bW1lZCB1cC4KLSAgICBhc3NlcnQuZXF1YWwodHJhY2UuY3VycmVudEFsbG9jcywgOCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNlLmN1cnJlbnRCeXRlcywgODAwKTsKLSAgICAvLyBUd28gY2hpbGRyZW4sICIoaGVyZSkiIGFuZCBhbm90aGVyIHN0YWNrLgotICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyh0cmFjZS5jaGlsZHJlbikubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuaXNOb3ROdWxsKHRyYWNlLmNoaWxkcmVuWydUZXN0T2JqZWN0Mzo6VGVzdE1ldGhvZDMnXSk7Ci0gICAgYXNzZXJ0LmlzTm90TnVsbCh0cmFjZS5jaGlsZHJlblsnKGhlcmUpJ10pOwotCi0gICAgdHJhY2UgPSB0cmFjZS5jaGlsZHJlblsnVGVzdE9iamVjdDM6OlRlc3RNZXRob2QzJ107Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNlLmN1cnJlbnRBbGxvY3MsIDUpOwotICAgIGFzc2VydC5lcXVhbCh0cmFjZS5jdXJyZW50Qnl0ZXMsIDUwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHRyYWNlLmNoaWxkcmVuKS5sZW5ndGgsIDEpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWEyMmRmNi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RjbWFsbG9jL2hlYXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19pbnN0YW5jZV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2Nfc25hcHNob3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RjbWFsbG9jL2hlYXBfaW5zdGFuY2VfdHJhY2suaHRtbCI+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19pbnN0YW5jZV92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjJiOGU1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSAqLwotCi0uc3ViaGVhZCB7Ci0gIGZvbnQtc2l6ZTogc21hbGw7Ci0gIHBhZGRpbmctYm90dG9tOiAxMHB4OwotfQotCi0udGNtYWxsb2MtaW5zdGFuY2UtdmlldyAjYXJncyB7Ci0gIHdoaXRlLXNwYWNlOiBwcmU7Ci19Ci0KLS50Y21hbGxvYy1pbnN0YW5jZS12aWV3ICNzbmFwc2hvdHMgPiAqIHsKLSAgZGlzcGxheTogYmxvY2s7Ci19Ci0KLS50Y21hbGxvYy1pbnN0YW5jZS12aWV3IHsKLSAgb3ZlcmZsb3c6IGF1dG87Ci19Ci0KLS50Y21hbGxvYy1pbnN0YW5jZS12aWV3ICogewotICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotfQotCi0udGNtYWxsb2MtaW5zdGFuY2UtdmlldyAudGl0bGUgewotICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDEyOCwgMTI4LCAxMjgpOwotICBmb250LXNpemU6IDExMCU7Ci0gIGZvbnQtd2VpZ2h0OiBib2xkOwotfQotCi0udGNtYWxsb2MtaW5zdGFuY2UtdmlldyB0ZCwKLS50Y21hbGxvYy1pbnN0YW5jZS12aWV3IHRoIHsKLSAgZm9udC1zaXplOiBzbWFsbDsKLSAgdGV4dC1hbGlnbjogcmlnaHQ7Ci19CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19pbnN0YW5jZV92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19pbnN0YW5jZV92aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlODViOTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5jc3MiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLnRjbWFsbG9jJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBEaXNwbGF5cyB0Y21hbGxvYyBoZWFwIG1lbW9yeSBpbmZvcm1hdGlvbiBvdmVyIHRpbWUuIEEgdGNtYWxsb2MgaW5zdGFuY2UKLSAgICogaGFzIG11bHRpcGxlIHNuYXBzaG90cy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgVGNtYWxsb2NJbnN0YW5jZVZpZXcgPSB0ci5iLnVpLmRlZmluZSgKLSAgICAgICd0Y21hbGxvYy1pbnN0YW5jZS12aWV3JywgdHIuYy5hbmFseXNpcy5PYmplY3RJbnN0YW5jZVZpZXcpOwotCi0gIFRjbWFsbG9jSW5zdGFuY2VWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMuYW5hbHlzaXMuT2JqZWN0SW5zdGFuY2VWaWV3LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLmMuYW5hbHlzaXMuT2JqZWN0SW5zdGFuY2VWaWV3LnByb3RvdHlwZS5kZWNvcmF0ZS5hcHBseSh0aGlzKTsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndGNtYWxsb2MtaW5zdGFuY2UtdmlldycpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50czogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgaW5zdGFuY2UgPSB0aGlzLm9iamVjdEluc3RhbmNlXzsKLSAgICAgIGlmICghaW5zdGFuY2UgfHwgIWluc3RhbmNlLnNuYXBzaG90cyB8fCBpbnN0YW5jZS5zbmFwc2hvdHMubGVuZ3RoID09IDApIHsKLSAgICAgICAgdGhpcy50ZXh0Q29udGVudCA9ICdObyBkYXRhIGZvdW5kLic7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIC8vIENsZWFyIG9sZCB2aWV3LgotICAgICAgdGhpcy50ZXh0Q29udGVudCA9ICcnOwotCi0gICAgICAvLyBGaXJzdCwgZ3JhYiB0aGUgbGFyZ2VzdCBOIHRyYWNlcyBmcm9tIHRoZSBmaXJzdCBzbmFwc2hvdC4KLSAgICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKLSAgICAgIHZhciBoZWFwRW50cnkgPSBzbmFwc2hvdC5oZWFwXzsKLSAgICAgIHZhciB0cmFjZU5hbWVzID0gT2JqZWN0LmtleXMoaGVhcEVudHJ5LmNoaWxkcmVuKTsKLSAgICAgIHRyYWNlTmFtZXMuc29ydChmdW5jdGlvbihhLCBiKSB7Ci0gICAgICAgIC8vIFNvcnQgZnJvbSBsYXJnZSB0byBzbWFsbC4KLSAgICAgICAgcmV0dXJuIGhlYXBFbnRyeS5jaGlsZHJlbltiXS5jdXJyZW50Qnl0ZXMgLQotICAgICAgICAgICAgaGVhcEVudHJ5LmNoaWxkcmVuW2FdLmN1cnJlbnRCeXRlczsKLSAgICAgIH0pOwotICAgICAgLy8gT25seSB1c2UgdGhlIGxhcmdlc3QgNSB0cmFjZXMgdG8gc3RhcnQKLSAgICAgIHRyYWNlTmFtZXMgPSB0cmFjZU5hbWVzLnNsaWNlKDAsIDUpOwotCi0gICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOwotICAgICAgdmFyIHRpdGxlcyA9IFsnVG90YWwnXTsKLSAgICAgIHRpdGxlcyA9IHRpdGxlcy5jb25jYXQodHJhY2VOYW1lcyk7Ci0gICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkUm93XyhudWxsLCB0aXRsZXMpKTsKLQotICAgICAgLy8gT25lIGFycmF5IHBlciB0cmFjZSBuYW1lLgotICAgICAgdmFyIGNoYXJ0QXJyYXlzID0gW1tdLCBbXSwgW10sIFtdLCBbXV07Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluc3RhbmNlLnNuYXBzaG90cy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgc25hcHNob3QgPSBpbnN0YW5jZS5zbmFwc2hvdHNbaV07Ci0gICAgICAgIHZhciByb3dEYXRhID0gW3NuYXBzaG90LnRvdGFsXy5jdXJyZW50Qnl0ZXNdOwotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDU7IGorKykgewotICAgICAgICAgIHZhciBieXRlcyA9IHNuYXBzaG90LmhlYXBfLmNoaWxkcmVuW3RyYWNlTmFtZXNbal1dLmN1cnJlbnRCeXRlczsKLSAgICAgICAgICByb3dEYXRhLnB1c2goYnl0ZXMpOwotICAgICAgICAgIC8vIEFzc29jaWF0ZSBhIG1lZ2FieXRlIGNvdW50IHdpdGggYSB0aW1lIGluIHNlY29uZHMuCi0gICAgICAgICAgY2hhcnRBcnJheXNbal0ucHVzaCgKLSAgICAgICAgICAgICAgW01hdGgucm91bmQoc25hcHNob3QudHMgLyAxMDAwKSwgYnl0ZXMgLyAxMDI0IC8gMTAyNF0pOwotICAgICAgICB9Ci0gICAgICAgIHZhciByb3cgPSB0aGlzLmJ1aWxkUm93XyhzbmFwc2hvdCwgcm93RGF0YSk7Ci0gICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHJvdyk7Ci0gICAgICB9Ci0gICAgICB0aGlzLmFwcGVuZENoaWxkKHRhYmxlKTsKLSAgICB9LAotCi0gICAgYnVpbGRSb3dfOiBmdW5jdGlvbihzbmFwc2hvdCwgaXRlbXMpIHsKLSAgICAgIHZhciByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwotICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKLSAgICAgIGlmIChzbmFwc2hvdCkgewotICAgICAgICB2YXIgc25hcHNob3RMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItYy1hLWFuYWx5c2lzLWxpbmsnKTsKLSAgICAgICAgc25hcHNob3RMaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbihzbmFwc2hvdCk7Ci0gICAgICAgIHRkLmFwcGVuZENoaWxkKHNuYXBzaG90TGluayk7Ci0gICAgICB9Ci0gICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgZGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7Ci0gICAgICAgIGRhdGEudGV4dENvbnRlbnQgPSBpdGVtc1tpXTsKLSAgICAgICAgcm93LmFwcGVuZENoaWxkKGRhdGEpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJvdzsKLSAgICB9LAotCi0gICAgLyoKLSAgICAgKiBSZXR1cm5zIGEgaHVtYW4gcmVhZGFibGUgc3RyaW5nIGZvciBhIHNpemUgaW4gYnl0ZXMuCi0gICAgICovCi0gICAgZ2V0Qnl0ZVN0cmluZ186IGZ1bmN0aW9uKGJ5dGVzKSB7Ci0gICAgICB2YXIgbWIgPSBieXRlcyAvIDEwMjQgLyAxMDI0OwotICAgICAgcmV0dXJuIG1iLnRvRml4ZWQoMSkgKyAnIE1CJzsKLSAgICB9Ci0gIH07Ci0KLSAgdHIuYy5hbmFseXNpcy5PYmplY3RJbnN0YW5jZVZpZXcucmVnaXN0ZXIoCi0gICAgICBUY21hbGxvY0luc3RhbmNlVmlldywKLSAgICAgIHt0eXBlTmFtZTogJ21lbW9yeTo6SGVhcCd9KTsKLQotICByZXR1cm4gewotICAgIFRjbWFsbG9jSW5zdGFuY2VWaWV3OiBUY21hbGxvY0luc3RhbmNlVmlldwotICB9OwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2Nfc25hcHNob3Rfdmlldy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19zbmFwc2hvdF92aWV3LmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA4ZDU0MS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19zbmFwc2hvdF92aWV3LmNzcworKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gKi8KLQotLnN1YmhlYWQgewotICBmb250LXNpemU6IHNtYWxsOwotICBwYWRkaW5nLWJvdHRvbTogMTBweDsKLX0KLQotLnRjbWFsbG9jLXNuYXBzaG90LXZpZXcgdWwgewotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDVweDsKLSAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKLSAgY3Vyc29yOiBwb2ludGVyOwotICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICBsaXN0LXN0eWxlOiBub25lOwotICBtYXJnaW46IDA7Ci0gIHBhZGRpbmctbGVmdDogMTVweDsKLX0KLQotLnRjbWFsbG9jLXNuYXBzaG90LXZpZXcgbGkgewotICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDVweDsKLSAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKLSAgY3Vyc29yOiBwb2ludGVyOwotICBsaXN0LXN0eWxlOiBub25lOwotICBtYXJnaW46IDA7Ci0gIHBhZGRpbmctbGVmdDogMTVweDsKLX0KLQotLyogQ29sbGFwc2VkIHN0YXRlIGZvciBsaXN0IGVsZW1lbnQgKi8KLS50Y21hbGxvYy1zbmFwc2hvdC12aWV3IC5jb2xsYXBzZWQgewotICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi9pbWFnZXMvZXhwYW5kLnBuZyk7Ci19Ci0KLS8qIEV4cGFuZGVkIHN0YXRlIGZvciBsaXN0IGVsZW1lbnQuIE11c3QgYmUgbG9jYXRlZCB1bmRlciB0aGUgY29sbGFwc2VkIG9uZS4gKi8KLS50Y21hbGxvYy1zbmFwc2hvdC12aWV3IC5leHBhbmRlZCB7Ci0gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguL2ltYWdlcy9jb2xsYXBzZS5wbmcpOwotfQotCi0vKiBBbGxvY2F0aW9uIHNpemUgaW4gTUIsIHJpZ2h0LWFsaWduZWQgZm9yIGVhc2llciBjb21wYXJpc29uIG9mIGNvbHVtbnMuICovCi0udHJhY2UtYnl0ZXMgewotICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0gIHBhZGRpbmctcmlnaHQ6IDEwcHg7Ci0gIHRleHQtYWxpZ246IHJpZ2h0OwotICB3aWR0aDogODBweDsKLX0KLQotLyogVHJhY2UgYWxsb2NhdGlvbiBjb3VudC4gKi8KLS50cmFjZS1hbGxvY3MgewotICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0gIHBhZGRpbmctcmlnaHQ6IDEwcHg7Ci0gIHRleHQtYWxpZ246IHJpZ2h0OwotICB3aWR0aDogMTIwcHg7Ci19Ci0KLS8qIFRyYWNlIG5hbWUsIGlubGluZSBzbyBpdCBhcHBlYXJzIHRvIHRoZSByaWdodCBvZiB0aGUgYnl0ZSBjb3VudC4gKi8KLS50cmFjZS1uYW1lIHsKLSAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2Nfc25hcHNob3Rfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2Nfc25hcHNob3Rfdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2NkMWE0Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX3NuYXBzaG90X3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX3NuYXBzaG90X3ZpZXcuY3NzIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS50Y21hbGxvYycsIGZ1bmN0aW9uKCkgewotICAvKgotICAgKiBEaXNwbGF5cyBhIGhlYXAgbWVtb3J5IHNuYXBzaG90IGluIGEgaHVtYW4gcmVhZGFibGUgZm9ybS4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICB2YXIgVGNtYWxsb2NTbmFwc2hvdFZpZXcgPSB0ci5iLnVpLmRlZmluZSgKLSAgICAgICdoZWFwLXNuYXBzaG90LXZpZXcnLAotICAgICAgdHIuYy5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcpOwotCi0gIFRjbWFsbG9jU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnByb3RvdHlwZSwKLQotICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndGNtYWxsb2Mtc25hcHNob3QtdmlldycpOwotICAgIH0sCi0KLSAgICB1cGRhdGVDb250ZW50czogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgc25hcHNob3QgPSB0aGlzLm9iamVjdFNuYXBzaG90XzsKLSAgICAgIGlmICghc25hcHNob3QgfHwgIXNuYXBzaG90LmhlYXBfKSB7Ci0gICAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnTm8gaGVhcCBmb3VuZC4nOwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICAvLyBDbGVhciBvbGQgc25hcHNob3Qgdmlldy4KLSAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKLQotICAgICAgLy8gTm90ZTogInRvdGFsIiBtYXkgYWN0dWFsbHkgYmUgbGVzcyB0aGFuIHRoZSBsYXJnZXN0IGFsbG9jYXRpb24gYmluLgotICAgICAgLy8gVGhpcyBtaWdodCBoYXBwZW4gaWYgb25lIHN0YWNrIGlzIGRvaW5nIGEgbG90IG9mIGFsbG9jYXRpb24sIHRoZW4KLSAgICAgIC8vIHBhc3Npbmcgb2ZmIHRvIGFub3RoZXIgc3RhY2sgZm9yIGRlYWxsb2NhdGlvbi4gIFRoYXQgc3RhY2sgd2lsbAotICAgICAgLy8gaGF2ZSBhIGhpZ2ggImN1cnJlbnQgYnl0ZXMiIGNvdW50IGFuZCB0aGUgb3RoZXIgb25lIG1pZ2h0IGJlCi0gICAgICAvLyBuZWdhdGl2ZSBvciB6ZXJvLiBTbyAidG90YWwiIG1heSBiZSBzbWFsbGVyIHRoYW4gdGhlIGxhcmdlc3QgdHJhY2UuCi0gICAgICB2YXIgc3ViaGVhZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgc3ViaGVhZC50ZXh0Q29udGVudCA9ICdSZXRhaW5pbmcgJyArCi0gICAgICAgICAgdGhpcy5nZXRCeXRlU3RyaW5nXyhzbmFwc2hvdC50b3RhbF8uY3VycmVudEJ5dGVzKSArICcgaW4gJyArCi0gICAgICAgICAgc25hcHNob3QudG90YWxfLmN1cnJlbnRBbGxvY3MgKwotICAgICAgICAgICcgYWxsb2NhdGlvbnMuIFNob3dpbmcgPiAwLjEgTUIuJzsKLSAgICAgIHN1YmhlYWQuY2xhc3NOYW1lID0gJ3N1YmhlYWQnOwotICAgICAgdGhpcy5hcHBlbmRDaGlsZChzdWJoZWFkKTsKLQotICAgICAgLy8gQnVpbGQgYSBuZXN0ZWQgdHJlZS12aWV3IG9mIGFsbG9jYXRpb25zCi0gICAgICB2YXIgbXlMaXN0ID0gdGhpcy5idWlsZEFsbG9jTGlzdF8oc25hcHNob3QuaGVhcF8sIGZhbHNlKTsKLSAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobXlMaXN0KTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIG5lc3RlZCBsaXN0IHdpdGggY2xpY2thYmxlIGVudHJpZXMuCi0gICAgICogQHBhcmFtIHtPYmplY3R9IGhlYXBFbnRyeSBUaGUgY3VycmVudCB0cmFjZSBoZWFwIGVudHJ5LgotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGlkZSBXaGV0aGVyIHRoaXMgbGlzdCBpcyBoaWRkZW4gYnkgZGVmYXVsdC4KLSAgICAgKiBAcmV0dXJuIHtFbGVtZW50fSBBIDx1bD4gbGlzdCBlbGVtZW50LgotICAgICAqLwotICAgIGJ1aWxkQWxsb2NMaXN0XzogZnVuY3Rpb24oaGVhcEVudHJ5LCBoaWRlKSB7Ci0gICAgICB2YXIgbXlMaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKLSAgICAgIG15TGlzdC5oaWRkZW4gPSBoaWRlOwotICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhoZWFwRW50cnkuY2hpbGRyZW4pOwotICAgICAga2V5cy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgLy8gU29ydCBmcm9tIGxhcmdlIHRvIHNtYWxsLgotICAgICAgICByZXR1cm4gaGVhcEVudHJ5LmNoaWxkcmVuW2JdLmN1cnJlbnRCeXRlcyAtCi0gICAgICAgICAgICBoZWFwRW50cnkuY2hpbGRyZW5bYV0uY3VycmVudEJ5dGVzOwotICAgICAgfSk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHRyYWNlTmFtZSA9IGtleXNbaV07Ci0gICAgICAgIHZhciB0cmFjZSA9IGhlYXBFbnRyeS5jaGlsZHJlblt0cmFjZU5hbWVdOwotICAgICAgICAvLyBEb24ndCBzaG93IHNtYWxsIG5vZGVzIC0gdGhleSBtYWtlIHRoaW5ncyBoYXJkZXIgdG8gc2VlLgotICAgICAgICBpZiAodHJhY2UuY3VycmVudEJ5dGVzIDwgMTAwICogMTAyNCkKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgdmFyIGNoaWxkQ291bnQgPSBPYmplY3Qua2V5cyh0cmFjZS5jaGlsZHJlbikubGVuZ3RoOwotICAgICAgICB2YXIgaXNMZWFmID0gY2hpbGRDb3VudCA9PSAwOwotICAgICAgICB2YXIgbXlJdGVtID0gdGhpcy5idWlsZEl0ZW1fKAotICAgICAgICAgICAgdHJhY2VOYW1lLCBpc0xlYWYsIHRyYWNlLmN1cnJlbnRCeXRlcywgdHJhY2UuY3VycmVudEFsbG9jcyk7Ci0gICAgICAgIG15TGlzdC5hcHBlbmRDaGlsZChteUl0ZW0pOwotICAgICAgICAvLyBCdWlsZCBhIG5lc3RlZCA8dWw+IGxpc3Qgb2YgbXkgY2hpbGRyZW4uCi0gICAgICAgIGlmIChjaGlsZENvdW50ID4gMCkKLSAgICAgICAgICBteUl0ZW0uYXBwZW5kQ2hpbGQodGhpcy5idWlsZEFsbG9jTGlzdF8odHJhY2UsIHRydWUpKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBteUxpc3Q7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogUmV0dXJucyBhIDxsaT4gZm9yIGFuIGFsbG9jYXRpb24gdHJhY2VOYW1lIG9mIHNpemUgYnl0ZXMuCi0gICAgICovCi0gICAgYnVpbGRJdGVtXzogZnVuY3Rpb24odHJhY2VOYW1lLCBpc0xlYWYsIGJ5dGVzLCBhbGxvY3MpIHsKLSAgICAgIHZhciBteUl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwotICAgICAgbXlJdGVtLmNsYXNzTmFtZSA9ICd0cmFjZS1pdGVtJzsKLSAgICAgIG15SXRlbS5pZCA9IHRyYWNlTmFtZTsKLQotICAgICAgdmFyIGJ5dGVEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgIGJ5dGVEaXYudGV4dENvbnRlbnQgPSB0aGlzLmdldEJ5dGVTdHJpbmdfKGJ5dGVzKTsKLSAgICAgIGJ5dGVEaXYuY2xhc3NOYW1lID0gJ3RyYWNlLWJ5dGVzJzsKLSAgICAgIG15SXRlbS5hcHBlbmRDaGlsZChieXRlRGl2KTsKLQotICAgICAgaWYgKHRyYWNlTmFtZS5sZW5ndGggPT0gMCkgewotICAgICAgICAvLyBUaGUgZW1wdHkgdHJhY2UgbmFtZSBpbmRpY2F0ZXMgdGhhdCB0aGUgYWxsb2NhdGlvbnMgb2NjdXJyZWQgYXQKLSAgICAgICAgLy8gdGhpcyB0cmFjZSBsZXZlbCwgbm90IGluIGEgc3ViLXRyYWNlLiBUaGlzIGxvb2tzIHdlaXJkIGFzIHRoZQotICAgICAgICAvLyBlbXB0eSBzdHJpbmcsIHNvIHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgbm9uLWVtcHR5IGFuZCBkb24ndAotICAgICAgICAvLyBnaXZlIHRoYXQgbGluZSBhbiBleHBhbmRlci4KLSAgICAgICAgdHJhY2VOYW1lID0gJyhoZXJlKSc7Ci0gICAgICB9IGVsc2UgaWYgKHRyYWNlTmFtZS5pbmRleE9mKCcuLicpID09IDApIHsKLSAgICAgICAgLy8gVGFza3MgaW4gUnVuVGFzayBoYXZlIHNwZWNpYWwgaGFuZGxpbmcuIFRoZXkgc2hvdyB0aGUgcGF0aCBvZiB0aGUKLSAgICAgICAgLy8gZmlsZW5hbWUuIENvbnZlcnQgJy4uLy4uL2Zvby5jYycgaW50byAnUnVuVGFzayBmcm9tIGZvby5jYycuCi0gICAgICAgIHZhciBsYXN0U2xhc2ggPSB0cmFjZU5hbWUubGFzdEluZGV4T2YoJy8nKTsKLSAgICAgICAgaWYgKGxhc3RTbGFzaCAhPSAtMSkKLSAgICAgICAgICB0cmFjZU5hbWUgPSAnVGFzayBmcm9tICcgKyB0cmFjZU5hbWUuc3Vic3RyKGxhc3RTbGFzaCArIDEpOwotICAgICAgfQotICAgICAgdmFyIHRyYWNlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICB0cmFjZURpdi50ZXh0Q29udGVudCA9IHRyYWNlTmFtZTsKLSAgICAgIHRyYWNlRGl2LmNsYXNzTmFtZSA9ICd0cmFjZS1uYW1lJzsKLSAgICAgIG15SXRlbS5hcHBlbmRDaGlsZCh0cmFjZURpdik7Ci0KLSAgICAgIC8vIERvbid0IGFsbG93IGxlYWYgbm9kZXMgdG8gYmUgZXhwYW5kZWQuCi0gICAgICBpZiAoaXNMZWFmKQotICAgICAgICByZXR1cm4gbXlJdGVtOwotCi0gICAgICAvLyBFeHBhbmQgdGhlIGVsZW1lbnQgd2hlbiBpdCBpcyBjbGlja2VkLgotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgbXlJdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgLy8gQWxsb3cgY2xpY2sgb24gdGhlICsvLSBpbWFnZSAobGkpIG9yIGNoaWxkIGRpdnMuCi0gICAgICAgIGlmICh0aGlzID09IGV2ZW50LnRhcmdldCB8fCB0aGlzID09IGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50KSB7Ci0gICAgICAgICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCdleHBhbmRlZCcpOwotICAgICAgICAgIHZhciBjaGlsZCA9IHRoaXMucXVlcnlTZWxlY3RvcigndWwnKTsKLSAgICAgICAgICBjaGlsZC5oaWRkZW4gPSAhY2hpbGQuaGlkZGVuOwotICAgICAgICAgIC8vIEhpZ2hsaWdodCB0aGlzIHN0YWNrIHRyYWNlIGluIHRoZSB0aW1lbGluZSB2aWV3LgotICAgICAgICAgIHNlbGYub25JdGVtQ2xpY2tlZF8odGhpcyk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotICAgICAgbXlJdGVtLmNsYXNzTGlzdC5hZGQoJ2NvbGxhcHNlZCcpOwotICAgICAgcmV0dXJuIG15SXRlbTsKLSAgICB9LAotCi0gICAgb25JdGVtQ2xpY2tlZF86IGZ1bmN0aW9uKHRyYWNlSXRlbSkgewotICAgICAgLy8gQ29tcHV0ZSB0aGUgZnVsbCBzdGFjayB0cmFjZSB0aGUgdXNlciBqdXN0IGNsaWNrZWQuCi0gICAgICB2YXIgdHJhY2VzID0gW107Ci0gICAgICB3aGlsZSAodHJhY2VJdGVtLmNsYXNzTGlzdC5jb250YWlucygndHJhY2UtaXRlbScpKSB7Ci0gICAgICAgIHZhciB0cmFjZU5hbWVEaXYgPSB0cmFjZUl0ZW0uZmlyc3RFbGVtZW50Q2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nOwotICAgICAgICB0cmFjZXMudW5zaGlmdCh0cmFjZU5hbWVEaXYudGV4dENvbnRlbnQpOwotICAgICAgICB2YXIgdHJhY2VOYW1lVWwgPSB0cmFjZUl0ZW0ucGFyZW50RWxlbWVudDsKLSAgICAgICAgdHJhY2VJdGVtID0gdHJhY2VOYW1lVWwucGFyZW50RWxlbWVudDsKLSAgICAgIH0KLSAgICAgIC8vIFRlbGwgdGhlIGluc3RhbmNlIHRoYXQgdGhpcyBzdGFjayB0cmFjZSBpcyBzZWxlY3RlZC4KLSAgICAgIHZhciBpbnN0YW5jZSA9IHRoaXMub2JqZWN0U25hcHNob3RfLm9iamVjdEluc3RhbmNlOwotICAgICAgaW5zdGFuY2Uuc2VsZWN0ZWRUcmFjZXMgPSB0cmFjZXM7Ci0gICAgICAvLyBJbnZhbGlkIHRoZSB2aWV3cG9ydCB0byBjYXVzZSBhIHJlZHJhdy4KLSAgICAgIHZhciB0cmFja1ZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGltZWxpbmUtdHJhY2stdmlldycpOwotICAgICAgdHJhY2tWaWV3LnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogUmV0dXJucyBhIGh1bWFuIHJlYWRhYmxlIHN0cmluZyBmb3IgYSBzaXplIGluIGJ5dGVzLgotICAgICAqLwotICAgIGdldEJ5dGVTdHJpbmdfOiBmdW5jdGlvbihieXRlcykgewotICAgICAgdmFyIG1iID0gYnl0ZXMgLyAxMDI0IC8gMTAyNDsKLSAgICAgIHJldHVybiBtYi50b0ZpeGVkKDEpICsgJyBNQic7Ci0gICAgfQotICB9OwotCi0gIHRyLmMuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAotICAgICAgVGNtYWxsb2NTbmFwc2hvdFZpZXcsCi0gICAgICB7dHlwZU5hbWU6ICdtZW1vcnk6OkhlYXAnfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBUY21hbGxvY1NuYXBzaG90VmlldzogVGNtYWxsb2NTbmFwc2hvdFZpZXcKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvdHF1ZXJ5Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvdHF1ZXJ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzYmJiMDIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L3RxdWVyeS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTc3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS90YXNrLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2ZpbHRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2NyaXB0aW5nX29iamVjdC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RxdWVyeS9jb250ZXh0Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9hbGxfb2YuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90cXVlcnkvZmlsdGVyX2FueV9vZi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2FuY2VzdG9yLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9oYXNfZHVyYXRpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90cXVlcnkvZmlsdGVyX2hhc190aXRsZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaXNfdG9wX2xldmVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIuZS50cXVlcnknLCBmdW5jdGlvbigpIHsKLSAgZnVuY3Rpb24gVFF1ZXJ5KHNlbGVjdGlvbkNvbnRyb2xsZXIpIHsKLSAgICB0ci5jLlNjcmlwdGluZ09iamVjdC5jYWxsKHRoaXMpOwotCi0gICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXyA9IHNlbGVjdGlvbkNvbnRyb2xsZXI7Ci0gICAgdGhpcy5wYXJlbnRfID0gdW5kZWZpbmVkOwotICAgIHRoaXMuZmlsdGVyRXhwcmVzc2lvbl8gPSB1bmRlZmluZWQ7Ci0gICAgLy8gTWVtb2l6ZWQgZmlsdGVyaW5nIHJlc3VsdC4KLSAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7Ci0gIH07Ci0KLSAgVFF1ZXJ5LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLmMuU2NyaXB0aW5nT2JqZWN0LnByb3RvdHlwZSwKLQotICAgIG9uTW9kZWxDaGFuZ2VkOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IHNlbGVjdGlvbkNvbnRyb2xsZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyXzsKLSAgICB9LAotCi0gICAgLy8gQXBwZW5kIGEgbmV3IGZpbHRlciBleHByZXNzaW9uIHRvIHRoaXMgcXVlcnkgYW5kIHJldHVybiBhIHF1ZXJ5IG5vZGUKLSAgICAvLyB0aGF0IHJlcHJlc2VudHMgdGhlIHJlc3VsdC4KLSAgICBmaWx0ZXI6IGZ1bmN0aW9uKGZpbHRlckV4cHJlc3Npb24pIHsKLSAgICAgIHZhciByZXN1bHQgPSBuZXcgVFF1ZXJ5KHRoaXMuc2VsZWN0aW9uQ29udHJvbGxlcl8pOwotICAgICAgcmVzdWx0LnBhcmVudF8gPSB0aGlzOwotICAgICAgcmVzdWx0LmZpbHRlckV4cHJlc3Npb25fID0KLSAgICAgICAgICB0ci5lLnRxdWVyeS5GaWx0ZXIubm9ybWFsaXplRmlsdGVyRXhwcmVzc2lvbihmaWx0ZXJFeHByZXNzaW9uKTsKLSAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfSwKLQotICAgIC8vIENyZWF0ZXMgYSBncmFwaCBvZiB7VGFza30gb2JqZWN0cyB3aGljaCB3aWxsIGNvbXB1dGUgdGhlIHNlbGVjdGlvbnMgZm9yCi0gICAgLy8gdGhpcyBmaWx0ZXIgb2JqZWN0IGFuZCBhbGwgb2YgaXRzIHBhcmVudHMuIFRoZSByZXR1cm4gdmFsdWUgaXMgYW4gb2JqZWN0Ci0gICAgLy8gd2l0aCB0aGUgZm9sbG93aW5nIGZpZWxkczoKLSAgICAvLyAgLSByb290VGFzazoge1Rhc2t9IHdoaWNoIHNob3VsZCBiZSBleGVjdXRlZCB0byBraWNrIG9mZiBwcm9jZXNzaW5nIGZvcgotICAgIC8vICAgICAgICAgICAgICB0aGUgZW50aXJlIHRhc2sgZ3JhcGguCi0gICAgLy8gIC0gbGFzdFRhc2s6IFRoZSBmaW5hbCB7VGFza30gb2YgdGhlIGdyYXBoLiBDYW4gYmUgdXNlZCBieSB0aGUgY2FsbGVyIHRvCi0gICAgLy8gICAgICAgICAgICAgIGVucXVldWUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGF0IHRoZSBlbmQuCi0gICAgLy8gIC0gbGFzdE5vZGU6IFRoZSBsYXN0IGZpbHRlciBvYmplY3QgaW4gdGhlIHRhc2suIEl0J3Mgc2VsZWN0aW9uIHByb3BlcnR5Ci0gICAgLy8gICAgICAgICAgICAgIHdpbGwgY29udGFpbiB0aGUgZmlsdGVyaW5nIHJlc3VsdCBvbmNlIHxmaW5hbFRhc2t8Ci0gICAgLy8gICAgICAgICAgICAgIGNvbXBsZXRlcy4KLSAgICBjcmVhdGVGaWx0ZXJUYXNrR3JhcGhfOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIExpc3Qgb2Ygbm9kZXMgaW4gb3JkZXIgZnJvbSB0aGUgY3VycmVudCBvbmUgdG8gdGhlIHJvb3QuCi0gICAgICB2YXIgbm9kZXMgPSBbXTsKLSAgICAgIHZhciBub2RlID0gdGhpczsKLSAgICAgIHdoaWxlIChub2RlICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgbm9kZXMucHVzaChub2RlKTsKLSAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50XzsKLSAgICAgIH0KLQotICAgICAgdmFyIHJvb3RUYXNrID0gbmV3IHRyLmIuVGFzaygpOwotICAgICAgdmFyIGxhc3RUYXNrID0gcm9vdFRhc2s7Ci0gICAgICBmb3IgKHZhciBpID0gbm9kZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgICAgdmFyIG5vZGUgPSBub2Rlc1tpXTsKLSAgICAgICAgLy8gUmV1c2UgYW55IG1lbW9pemVkIHJlc3VsdC4KLSAgICAgICAgaWYgKG5vZGUuc2VsZWN0aW9uXyAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBub2RlLnNlbGVjdGlvbl8gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICAgICAgaWYgKG5vZGUucGFyZW50XyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgcm9vdCwgc3RhcnQgYnkgY29sbGVjdGluZyBhbGwgb2JqZWN0cyBmcm9tIHRoZQotICAgICAgICAgIC8vIHNlbGVjdGlvbiBjb250cm9sbGVyLgotICAgICAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoCi0gICAgICAgICAgICAgIHRoaXMuc2VsZWN0RXZlcnl0aGluZ0FzVGFza18obm9kZS5zZWxlY3Rpb25fKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gT3RoZXJ3aXNlIGV4ZWN1dGUgdGhlIGZpbHRlciBleHByZXNzaW9uIGZvciB0aGlzIG5vZGUgYW5kIGZpbGwKLSAgICAgICAgICAvLyBpbiBpdHMgc2VsZWN0aW9uLgotICAgICAgICAgIHZhciBwcmV2Tm9kZSA9IG5vZGVzW2kgKyAxXTsKLSAgICAgICAgICBsYXN0VGFzayA9IHRoaXMuY3JlYXRlRmlsdGVyVGFza0Zvck5vZGVfKGxhc3RUYXNrLCBub2RlLCBwcmV2Tm9kZSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHJldHVybiB7cm9vdFRhc2s6IHJvb3RUYXNrLCBsYXN0VGFzazogbGFzdFRhc2ssIGxhc3ROb2RlOiBub2RlfTsKLSAgICB9LAotCi0gICAgY3JlYXRlRmlsdGVyVGFza0Zvck5vZGVfOiBmdW5jdGlvbihsYXN0VGFzaywgbm9kZSwgcHJldk5vZGUpIHsKLSAgICAgIHJldHVybiBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgLy8gVE9ETyhza3lvc3RpbCk6IEJyZWFrIGludG8gc3VidGFza3MuCi0gICAgICAgIG5vZGUuZXZhbHVhdGVGaWx0ZXJFeHByZXNzaW9uXygKLSAgICAgICAgICAgIHByZXZOb2RlLnNlbGVjdGlvbl8sIG5vZGUuc2VsZWN0aW9uXyk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9LAotCi0gICAgLy8gQXBwbGllcyB0aGUgcmVzdWx0IG9mIGEgZmlsdGVyIGV4cHJlc3Npb24gZm9yIGEgZ2l2ZW4gZXZlbnQgYW5kIGFsbAotICAgIC8vIG9mIGl0cyBzdWJzbGljZXMgYW5kIGFkZHMgdGhlIG1hdGNoaW5nIGV2ZW50cyB0byBhbiBvdXRwdXQgc2VsZWN0aW9uLgotICAgIGV2YWx1YXRlRmlsdGVyRXhwcmVzc2lvbl86IGZ1bmN0aW9uKGlucHV0U2VsZWN0aW9uLCBvdXRwdXRTZWxlY3Rpb24pIHsKLSAgICAgIHZhciBzZWVuRXZlbnRzID0ge307Ci0gICAgICBpbnB1dFNlbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gbmV3IHRyLmUudHF1ZXJ5LkNvbnRleHQoKTsKLSAgICAgICAgY29udGV4dC5ldmVudCA9IGV2ZW50OwotICAgICAgICB0aGlzLmV2YWx1YXRlRmlsdGVyRXhwcmVzc2lvbkZvckV2ZW50XygKLSAgICAgICAgICAgIGNvbnRleHQsIGlucHV0U2VsZWN0aW9uLCBvdXRwdXRTZWxlY3Rpb24sIHNlZW5FdmVudHMpOwotICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgZXZhbHVhdGVGaWx0ZXJFeHByZXNzaW9uRm9yRXZlbnRfOiBmdW5jdGlvbigKLSAgICAgICAgY29udGV4dCwgaW5wdXRTZWxlY3Rpb24sIG91dHB1dFNlbGVjdGlvbiwgc2VlbkV2ZW50cykgewotICAgICAgdmFyIGV2ZW50ID0gY29udGV4dC5ldmVudDsKLSAgICAgIGlmIChpbnB1dFNlbGVjdGlvbi5jb250YWlucyhldmVudCkgJiYgIXNlZW5FdmVudHNbZXZlbnQuZ3VpZF0pIHsKLSAgICAgICAgc2VlbkV2ZW50c1tldmVudC5ndWlkXSA9IHRydWU7Ci0gICAgICAgIGlmICghdGhpcy5maWx0ZXJFeHByZXNzaW9uXyB8fAotICAgICAgICAgICAgdGhpcy5maWx0ZXJFeHByZXNzaW9uXy5ldmFsdWF0ZShjb250ZXh0KSkKLSAgICAgICAgICBvdXRwdXRTZWxlY3Rpb24ucHVzaChldmVudCk7Ci0gICAgICB9Ci0gICAgICBpZiAoIWV2ZW50LnN1YlNsaWNlcykKLSAgICAgICAgcmV0dXJuOwotICAgICAgY29udGV4dCA9IGNvbnRleHQucHVzaChldmVudCk7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50LnN1YlNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICBjb250ZXh0LmV2ZW50ID0gZXZlbnQuc3ViU2xpY2VzW2ldOwotICAgICAgICB0aGlzLmV2YWx1YXRlRmlsdGVyRXhwcmVzc2lvbkZvckV2ZW50XygKLSAgICAgICAgICAgIGNvbnRleHQsIGlucHV0U2VsZWN0aW9uLCBvdXRwdXRTZWxlY3Rpb24sIHNlZW5FdmVudHMpOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvLyBTaG93IHRoZSByZXN1bHQgYXMgYSBoaWdobGlnaHQgb24gdGhlIHNlbGVjdGlvbiBjb250cm9sbGVyLiBSZXR1cm5zIGEKLSAgICAvLyB7VGFza30gd2hpY2ggcnVucyB0aGUgcXVlcnkgYW5kIHNldHMgdGhlIGhpZ2hsaWdodC4KLSAgICBzaG93OiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBncmFwaCA9IHRoaXMuY3JlYXRlRmlsdGVyVGFza0dyYXBoXygpOwotCi0gICAgICBncmFwaC5sYXN0VGFzayA9IGdyYXBoLmxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2xsZXIuc2hvd1NjcmlwdENvbnRyb2xTZWxlY3Rpb24oCi0gICAgICAgICAgICBncmFwaC5sYXN0Tm9kZS5zZWxlY3Rpb25fKTsKLSAgICAgIH0sIHRoaXMpOwotICAgICAgcmV0dXJuIGdyYXBoLnJvb3RUYXNrOwotICAgIH0sCi0KLSAgICAvLyBSZXR1cm5zIGEgdGFzayB0aGF0IGZpbGxzIHRoZSBnaXZlbiBzZWxlY3Rpb24gd2l0aCBldmVyeXRoaW5nIHJlYWNoYWJsZQotICAgIC8vIGJ5IHRoZSBzZWxlY3Rpb24gY29udHJvbGxlci4KLSAgICBzZWxlY3RFdmVyeXRoaW5nQXNUYXNrXzogZnVuY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB2YXIgcGFzc1Rocm91Z2hGaWx0ZXIgPSBuZXcgdHIuYy5GaWx0ZXIoKTsKLSAgICAgIHZhciBmaWx0ZXJUYXNrID0KLSAgICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sbGVyLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2soCi0gICAgICAgICAgICBwYXNzVGhyb3VnaEZpbHRlciwgc2VsZWN0aW9uKTsKLSAgICAgIHJldHVybiBmaWx0ZXJUYXNrOwotICAgIH0sCi0KLSAgICBnZXQgc2VsZWN0aW9uKCkgewotICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHZhciBncmFwaCA9IHRoaXMuY3JlYXRlRmlsdGVyVGFza0dyYXBoXygpOwotICAgICAgICB0ci5iLlRhc2suUnVuU3luY2hyb25vdXNseShncmFwaC5yb290VGFzayk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25fOwotICAgIH0KLSAgfTsKLSAgdHIuYy5TY3JpcHRpbmdPYmplY3RSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgIG5ldyBUUXVlcnkoKSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJyR0JwotICAgICAgfQotICApOwotCi0gIHJldHVybiB7Ci0gICAgVFF1ZXJ5OiBUUXVlcnkKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvdHF1ZXJ5X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS90cXVlcnlfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDk0ZjIzLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS90cXVlcnlfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudF90YXJnZXQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zY3JpcHRpbmdfY29udHJvbGxlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RxdWVyeS90cXVlcnkuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5lLnRxdWVyeScsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpIHsKLSAgICB0ci5iLkV2ZW50VGFyZ2V0LmNhbGwodGhpcyk7Ci0gICAgdGhpcy5hbGxFdmVudHNfID0gW107Ci0gIH0KLQotICBGYWtlU2VsZWN0aW9uQ29udHJvbGxlci5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5iLkV2ZW50VGFyZ2V0LnByb3RvdHlwZSwKLQotICAgIGdldCBhbGxFdmVudHMoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5hbGxFdmVudHNfOwotICAgIH0sCi0KLSAgICBzZXQgYWxsRXZlbnRzKGFsbEV2ZW50cykgewotICAgICAgdGhpcy5hbGxFdmVudHNfID0gYWxsRXZlbnRzOwotICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgnbW9kZWwtY2hhbmdlZCcpOwotICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOwotICAgIH0sCi0KLSAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgewotICAgICAgcmV0dXJuIG5ldyB0ci5iLlRhc2soZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBuID0gdGhpcy5hbGxFdmVudHMubGVuZ3RoOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgewotICAgICAgICAgIHRoaXMuYWRkU3VidHJlZVRvU2VsZWN0aW9uXyhzZWxlY3Rpb24sIHRoaXMuYWxsRXZlbnRzW2ldKTsKLSAgICAgICAgfQotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIGFkZFN1YnRyZWVUb1NlbGVjdGlvbl86IGZ1bmN0aW9uKHNlbGVjdGlvbiwgZXZlbnQpIHsKLSAgICAgIHNlbGVjdGlvbi5wdXNoKGV2ZW50KTsKLSAgICAgIGlmIChldmVudC5zdWJTbGljZXMpIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudC5zdWJTbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB0aGlzLmFkZFN1YnRyZWVUb1NlbGVjdGlvbl8oc2VsZWN0aW9uLCBldmVudC5zdWJTbGljZXNbaV0pOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLSAgICBzaG93U2NyaXB0Q29udHJvbFNlbGVjdGlvbjogZnVuY3Rpb24oc2VsZWN0aW9uKSB7Ci0gICAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgICAgdGhpcy5oaWdobGlnaHQgPSBzZWxlY3Rpb247Ci0gICAgfQotICB9OwotICByZXR1cm4gewotICAgIEZha2VTZWxlY3Rpb25Db250cm9sbGVyOiBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcgotICB9OwotfSk7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIgPSB0ci5lLnRxdWVyeS5GYWtlU2VsZWN0aW9uQ29udHJvbGxlcjsKLQotICBmdW5jdGlvbiBjcmVhdGVTbGljZUFycmF5KHNsaWNlQ291bnQpIHsKLSAgICB2YXIgYWxsRXZlbnRzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUNvdW50OyBpKyspIHsKLSAgICAgIGFsbEV2ZW50cy5wdXNoKHtndWlkOiBpfSk7Ci0gICAgfQotICAgIHJldHVybiBhbGxFdmVudHM7Ci0gIH0KLQotICBmdW5jdGlvbiBjcmVhdGVGYWtlU2VsZWN0aW9uQ29udHJvbGxlcl8oc2xpY2VDb3VudCkgewotICAgIHZhciBzZWxlY3Rpb25Db250cm9sbGVyID0gbmV3IEZha2VTZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgc2VsZWN0aW9uQ29udHJvbGxlci5hbGxFdmVudHMgPSBjcmVhdGVTbGljZUFycmF5KHNsaWNlQ291bnQpOwotICAgIHJldHVybiBzZWxlY3Rpb25Db250cm9sbGVyOwotICB9Ci0KLSAgZnVuY3Rpb24gZ2V0U2NyaXB0T2JqZWN0KG5hbWUpIHsKLSAgICB2YXIgdHlwZUluZm9zID0gdHIuYy5TY3JpcHRpbmdPYmplY3RSZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlSW5mb3MubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmICh0eXBlSW5mb3NbaV0ubWV0YWRhdGEubmFtZSA9PT0gbmFtZSkgewotICAgICAgICByZXR1cm4gdHlwZUluZm9zW2ldLmNvbnN0cnVjdG9yOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIHRlc3QoJ3RxdWVyeUFzeW5jU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBjcmVhdGVGYWtlU2VsZWN0aW9uQ29udHJvbGxlcl8oMyk7Ci0gICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LnNob3coKTsKLSAgICB0ci5iLlRhc2suUnVuU3luY2hyb25vdXNseShyZXN1bHQpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25Db250cm9sbGVyLmhpZ2hsaWdodC5sZW5ndGgsIDMpOwotICB9KTsKLQotICB0ZXN0KCd0cXVlcnlTeW5jU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBjcmVhdGVGYWtlU2VsZWN0aW9uQ29udHJvbGxlcl8oMyk7Ci0gICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICBhc3NlcnQuZXF1YWwodHF1ZXJ5LnNlbGVjdGlvbi5sZW5ndGgsIDMpOwotCi0gICAgLy8gU2VsZWN0aW9uIHNob3VsZCBnZXQgcmVzZXQgd2hlbiB0aGUgbW9kZWwgY2hhbmdlcy4KLSAgICBzZWxlY3Rpb25Db250cm9sbGVyLmFsbEV2ZW50cyA9IGNyZWF0ZVNsaWNlQXJyYXkoNSk7Ci0gICAgdHF1ZXJ5Lm9uTW9kZWxDaGFuZ2VkKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRxdWVyeS5zZWxlY3Rpb24ubGVuZ3RoLCA1KTsKLSAgfSk7Ci0KLSAgdGVzdCgndHF1ZXJ5UGFzc1Rocm91Z2hGaWx0ZXJpbmcnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBjcmVhdGVGYWtlU2VsZWN0aW9uQ29udHJvbGxlcl8oMyk7Ci0gICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcigpLmZpbHRlcigpLnNob3coKTsKLSAgICB0ci5iLlRhc2suUnVuU3luY2hyb25vdXNseShyZXN1bHQpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25Db250cm9sbGVyLmhpZ2hsaWdodC5sZW5ndGgsIDMpOwotICB9KTsKLQotICB0ZXN0KCd0cXVlcnlGaWx0ZXJIYXNUaXRsZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBoYXNUaXRsZSA9IGdldFNjcmlwdE9iamVjdCgnaGFzVGl0bGUnKTsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpOwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuYWxsRXZlbnRzID0gWwotICAgICAgICB7Z3VpZDogMSwgdGl0bGU6ICdhJ30sCi0gICAgICAgIHtndWlkOiAyLCB0aXRsZTogJ2InfSwKLSAgICAgICAge2d1aWQ6IDMsIHRpdGxlOiAnYyd9Ci0gICAgXTsKLSAgICB2YXIgdHF1ZXJ5ID0gbmV3IHRyLmUudHF1ZXJ5LlRRdWVyeShzZWxlY3Rpb25Db250cm9sbGVyKTsKLQotICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGhhc1RpdGxlKCdhJykpLnNlbGVjdGlvbjsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAxKTsKLQotICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKCdiJykuc2VsZWN0aW9uOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDIpOwotCi0gICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoL15jJC8pLnNlbGVjdGlvbjsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAzKTsKLSAgfSk7Ci0KLSAgdGVzdCgndHF1ZXJ5RmlsdGVySGFzQW5jZXN0b3InLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaGFzQW5jZXN0b3IgPSBnZXRTY3JpcHRPYmplY3QoJ2hhc0FuY2VzdG9yJyk7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICBzZWxlY3Rpb25Db250cm9sbGVyLmFsbEV2ZW50cyA9IFsKLSAgICAgICAge2d1aWQ6IDEsIHRpdGxlOiAnYSd9LAotICAgICAgICB7Z3VpZDogMiwgdGl0bGU6ICdiJywgc3ViU2xpY2VzOiBbe2d1aWQ6IDR9XX0sCi0gICAgICAgIHtndWlkOiAzLCB0aXRsZTogJ2MnfQotICAgIF07Ci0gICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihoYXNBbmNlc3RvcignYicpKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgNCk7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihoYXNBbmNlc3RvcigpKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgNCk7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihoYXNBbmNlc3RvcignYScpKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOwotICB9KTsKLQotICB0ZXN0KCd0cXVlcnlGaWx0ZXJBbGxPZicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBhbGxPZiA9IGdldFNjcmlwdE9iamVjdCgnYWxsT2YnKTsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpOwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuYWxsRXZlbnRzID0gWwotICAgICAgICB7Z3VpZDogMSwgdGl0bGU6ICdhMSd9LAotICAgICAgICB7Z3VpZDogMiwgdGl0bGU6ICdiMSd9LAotICAgICAgICB7Z3VpZDogMywgdGl0bGU6ICdjMSd9Ci0gICAgXTsKLSAgICB2YXIgdHF1ZXJ5ID0gbmV3IHRyLmUudHF1ZXJ5LlRRdWVyeShzZWxlY3Rpb25Db250cm9sbGVyKTsKLQotICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGFsbE9mKCdhMScpKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgMSk7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihhbGxPZignYTEnLCAvMS8pKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgMSk7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihhbGxPZigpKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOwotICB9KTsKLQotICB0ZXN0KCd0cXVlcnlGaWx0ZXJBbnlPZicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBhbnlPZiA9IGdldFNjcmlwdE9iamVjdCgnYW55T2YnKTsKLSAgICB2YXIgc2VsZWN0aW9uQ29udHJvbGxlciA9IG5ldyBGYWtlU2VsZWN0aW9uQ29udHJvbGxlcigpOwotICAgIHNlbGVjdGlvbkNvbnRyb2xsZXIuYWxsRXZlbnRzID0gWwotICAgICAgICB7Z3VpZDogMSwgdGl0bGU6ICdhJ30sCi0gICAgICAgIHtndWlkOiAyLCB0aXRsZTogJ2InfSwKLSAgICAgICAge2d1aWQ6IDMsIHRpdGxlOiAnYyd9Ci0gICAgXTsKLSAgICB2YXIgdHF1ZXJ5ID0gbmV3IHRyLmUudHF1ZXJ5LlRRdWVyeShzZWxlY3Rpb25Db250cm9sbGVyKTsKLQotICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGFueU9mKCdhJywgJ2InKSkuc2VsZWN0aW9uOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDEpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0uZ3VpZCwgMik7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihhbnlPZignbm90IHRoZXJlJywgJ2EnKSkuc2VsZWN0aW9uOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDEpOwotCi0gICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoYW55T2YoKSkuc2VsZWN0aW9uOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKLSAgfSk7Ci0KLSAgdGVzdCgndHF1ZXJ5RmlsdGVySXNUb3BMZXZlbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBpc1RvcExldmVsID0gZ2V0U2NyaXB0T2JqZWN0KCdpc1RvcExldmVsJyk7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICBzZWxlY3Rpb25Db250cm9sbGVyLmFsbEV2ZW50cyA9IFsKLSAgICAgICAge2d1aWQ6IDEsIHRpdGxlOiAnYSd9LAotICAgICAgICB7Z3VpZDogMiwgdGl0bGU6ICdiJywgc3ViU2xpY2VzOiBbe2d1aWQ6IDR9XX0sCi0gICAgICAgIHtndWlkOiAzLCB0aXRsZTogJ2MnfQotICAgIF07Ci0gICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihpc1RvcExldmVsKCkpLnNlbGVjdGlvbjsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzFdLmd1aWQsIDIpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMl0uZ3VpZCwgMyk7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihpc1RvcExldmVsKCdhJykpLnNlbGVjdGlvbjsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgndHF1ZXJ5RmlsdGVySGFzRHVyYXRpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaGFzRHVyYXRpb24gPSBnZXRTY3JpcHRPYmplY3QoJ2hhc0R1cmF0aW9uJyk7Ci0gICAgdmFyIHNlbGVjdGlvbkNvbnRyb2xsZXIgPSBuZXcgRmFrZVNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICBzZWxlY3Rpb25Db250cm9sbGVyLmFsbEV2ZW50cyA9IFsKLSAgICAgICAge2d1aWQ6IDEsIHRpdGxlOiAnYScsIGR1cmF0aW9uOiAxfSwKLSAgICAgICAge2d1aWQ6IDIsIHRpdGxlOiAnYicsIGR1cmF0aW9uOiAyfSwKLSAgICAgICAge2d1aWQ6IDMsIHRpdGxlOiAnYycsIGR1cmF0aW9uOiAzfSwKLSAgICAgICAge2d1aWQ6IDQsIHRpdGxlOiAnbm8gZHVyYXRpb24nfQotICAgIF07Ci0gICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoc2VsZWN0aW9uQ29udHJvbGxlcik7Ci0KLSAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihoYXNEdXJhdGlvbigxLjUsIDIuNSkpLnNlbGVjdGlvbjsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAyKTsKLQotICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGhhc0R1cmF0aW9uKDMsIEluZmluaXR5KSkuc2VsZWN0aW9uOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDMpOwotCi0gICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaGFzRHVyYXRpb24oLTEsIDApKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDApOwotCi0gICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaGFzRHVyYXRpb24oZnVuY3Rpb24oZCkgewotICAgICAgcmV0dXJuIGQgPiAyOwotICAgIH0pKS5zZWxlY3Rpb247Ci0gICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgMyk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvYWxlcnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvYWxlcnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDNmYTA4Ny4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2FsZXJ0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X2luZm8uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0KLSAgZnVuY3Rpb24gQWxlcnQoaW5mbywgc3RhcnQsIG9wdF9hc3NvY2lhdGVkRXZlbnRzLCBvcHRfYXJncykgewotICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7Ci0gICAgdGhpcy5pbmZvID0gaW5mbzsKLSAgICB0aGlzLmFyZ3MgPSBvcHRfYXJncyB8fCB7fTsKLSAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHMgPSBvcHRfYXNzb2NpYXRlZEV2ZW50cyB8fCBbXTsKLSAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCkgewotICAgICAgZXZlbnQuYXNzb2NpYXRlZEFsZXJ0cy5wdXNoKHRoaXMpOwotICAgIH0sIHRoaXMpOwotICB9Ci0KLSAgQWxlcnQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsCi0KLSAgICBnZXQgdGl0bGUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pbmZvLnRpdGxlOwotICAgIH0sCi0KLSAgICBnZXQgY29sb3JJZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmluZm8uY29sb3JJZDsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ0FsZXJ0ICcgKyB0aGlzLnRpdGxlICsgJyBhdCAnICsKLSAgICAgICAgICB0ci5iLnVuaXRzLnRzU3RyaW5nKHRoaXMuc3RhcnQpOwotICAgIH0KLSAgfTsKLQotICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAotICAgICAgQWxlcnQsCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdhbGVydCcsCi0gICAgICAgIHBsdXJhbE5hbWU6ICdhbGVydHMnLAotICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtYWxlcnQtc3ViLXZpZXcnLAotICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1hbGVydC1zdWItdmlldycKLSAgICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgQWxlcnQ6IEFsZXJ0Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hbm5vdGF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2Fubm90YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM4ODViNC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2Fubm90YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQW5ub3RhdGlvbiBpcyBhIGJhc2UgY2xhc3MgdGhhdCByZXByZXNlbnRzIGFsbCBhbm5vdGF0aW9uIG9iamVjdHMgdGhhdAotICAgKiBjYW4gYmUgZHJhd24gb24gdGhlIHRpbWVsaW5lLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIEFubm90YXRpb24oKSB7Ci0gICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOwotICAgIHRoaXMudmlld18gPSB1bmRlZmluZWQ7Ci0gIH07Ci0KLSAgQW5ub3RhdGlvbi5mcm9tRGljdElmUG9zc2libGUgPSBmdW5jdGlvbihhcmdzKSB7Ci0gICAgaWYgKGFyZ3MudHlwZU5hbWUgPT09IHVuZGVmaW5lZCkKLSAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB0eXBlTmFtZSBhcmd1bWVudCcpOwotCi0gICAgdmFyIHR5cGVJbmZvID0gQW5ub3RhdGlvbi5maW5kVHlwZUluZm9NYXRjaGluZyhmdW5jdGlvbih0eXBlSW5mbykgewotICAgICAgcmV0dXJuIHR5cGVJbmZvLm1ldGFkYXRhLnR5cGVOYW1lID09PSBhcmdzLnR5cGVOYW1lOwotICAgIH0pOwotCi0gICAgaWYgKHR5cGVJbmZvID09PSB1bmRlZmluZWQpCi0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgcmV0dXJuIHR5cGVJbmZvLmNvbnN0cnVjdG9yLmZyb21EaWN0KGFyZ3MpOwotICB9OwotCi0gIEFubm90YXRpb24uZnJvbURpY3QgPSBmdW5jdGlvbigpIHsKLSAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICB9Ci0KLSAgQW5ub3RhdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IGd1aWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ndWlkXzsKLSAgICB9LAotCi0gICAgLy8gSW52b2tlZCBieSB0cmFjZSBtb2RlbCB3aGVuIHRoaXMgYW5ub3RhdGlvbiBpcyByZW1vdmVkLgotICAgIG9uUmVtb3ZlOiBmdW5jdGlvbigpIHsKLSAgICB9LAotCi0gICAgdG9EaWN0OiBmdW5jdGlvbigpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfSwKLQotICAgIGdldE9yQ3JlYXRlVmlldzogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIGlmICghdGhpcy52aWV3XykKLSAgICAgICAgdGhpcy52aWV3XyA9IHRoaXMuY3JlYXRlVmlld18odmlld3BvcnQpOwotICAgICAgcmV0dXJuIHRoaXMudmlld187Ci0gICAgfSwKLQotICAgIGNyZWF0ZVZpZXdfOiBmdW5jdGlvbigpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gICAgfQotICB9OwotCi0gIHZhciBvcHRpb25zID0gbmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuIEJBU0lDX1JFR0lTVFJZX01PREUpOwotICBvcHRpb25zLm1hbmRhdG9yeUJhc2VUeXBlID0gQW5ub3RhdGlvbjsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEFubm90YXRpb24sIG9wdGlvbnMpOwotCi0gIEFubm90YXRpb24uYWRkRXZlbnRMaXN0ZW5lcignd2lsbC1yZWdpc3RlcicsIGZ1bmN0aW9uKGUpIHsKLSAgICBpZiAoIWUudHlwZUluZm8uY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoJ2Zyb21EaWN0JykpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgaGF2ZSBmcm9tRGljdCBtZXRob2QnKTsKLQotICAgIGlmICghZS50eXBlSW5mby5tZXRhZGF0YS50eXBlTmFtZSkKLSAgICAgIHRocm93IG5ldyBFcnJvcignUmVnaXN0ZXJlZCBBbm5vdGF0aW9ucyBtdXN0IHByb3ZpZGUgdHlwZU5hbWUnKTsKLSAgfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBBbm5vdGF0aW9uOiBBbm5vdGF0aW9uCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hbm5vdGF0aW9uX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvYW5ub3RhdGlvbl90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1ZjkxYTYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hbm5vdGF0aW9uX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvbG9jYXRpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb21tZW50X2JveF9hbm5vdGF0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9yZWN0X2Fubm90YXRpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC94X21hcmtlcl9hbm5vdGF0aW9uLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLQotICBmdW5jdGlvbiBjcmVhdGVQb3B1bGF0ZWRUaW1lbGluZSgpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UodHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQoJ2EnLCA4MCwgNTApKTsKLQotICAgIHZhciB0aW1lbGluZSA9IG5ldyB0ci5jLlRpbWVsaW5lVHJhY2tWaWV3KCk7Ci0gICAgdmFyIHZwID0gbmV3IHRyLmMuVGltZWxpbmVWaWV3cG9ydCh0aW1lbGluZSk7Ci0gICAgdGltZWxpbmUubW9kZWwgPSBtb2RlbDsKLSAgICB0aW1lbGluZS5mb2N1c0VsZW1lbnQgPSB0aW1lbGluZTsKLSAgICB0aW1lbGluZS50YWJJbmRleCA9IDA7Ci0gICAgdGltZWxpbmUuc3R5bGUubWF4SGVpZ2h0ID0gJzYwMHB4JzsKLQotICAgIHJldHVybiB0aW1lbGluZTsKLSAgfQotCi0gIHRlc3QoJ3JlY3RBbm5vdGF0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGZha2VZQ29tcG9uZW50czEgPSBbe3N0YWJsZUlkOiAnMS4yJywgeVBlcmNlbnRPZmZzZXQ6IDAuM31dOwotICAgIHZhciBmYWtlWUNvbXBvbmVudHMyID0gW3tzdGFibGVJZDogJzEuMicsIHlQZXJjZW50T2Zmc2V0OiAwLjl9XTsKLSAgICB2YXIgc3RhcnQgPSBuZXcgdHIuYy5Mb2NhdGlvbig1MCwgZmFrZVlDb21wb25lbnRzMSk7Ci0gICAgdmFyIGVuZCA9IG5ldyB0ci5jLkxvY2F0aW9uKDEwMCwgZmFrZVlDb21wb25lbnRzMik7Ci0gICAgdmFyIHJlY3RBbm5vdGF0aW9uID0gbmV3IHRyLm1vZGVsLlJlY3RBbm5vdGF0aW9uKHN0YXJ0LCBlbmQpOwotICAgIGFzc2VydC5lcXVhbChyZWN0QW5ub3RhdGlvbi5zdGFydExvY2F0aW9uLCBzdGFydCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHJlY3RBbm5vdGF0aW9uLmVuZExvY2F0aW9uLCBlbmQpOwotCi0gICAgdmFyIHRpbWVsaW5lID0gY3JlYXRlUG9wdWxhdGVkVGltZWxpbmUoKTsKLSAgICB0aW1lbGluZS5tb2RlbC5hZGRBbm5vdGF0aW9uKHJlY3RBbm5vdGF0aW9uKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZWxpbmUpOwotICB9KTsKLQotICB0ZXN0KCd4TWFya2VyQW5ub3RhdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciB4TWFya2VyQW5ub3RhdGlvbiA9IG5ldyB0ci5tb2RlbC5YTWFya2VyQW5ub3RhdGlvbig5MCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHhNYXJrZXJBbm5vdGF0aW9uLnRpbWVzdGFtcCwgOTApOwotCi0gICAgdmFyIHRpbWVsaW5lID0gY3JlYXRlUG9wdWxhdGVkVGltZWxpbmUoKTsKLSAgICB2YXIgbW9kZWwgPSB0aW1lbGluZS5tb2RlbDsKLSAgICB0aW1lbGluZS5tb2RlbC5hZGRBbm5vdGF0aW9uKHhNYXJrZXJBbm5vdGF0aW9uKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZWxpbmUpOwotICB9KTsKLQotICB0ZXN0KCdjb21tZW50Qm94QW5ub3RhdGlvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBmYWtlWUNvbXBvbmVudHMgPSBbe3N0YWJsZUlkOiAnMS4yJywgeVBlcmNlbnRPZmZzZXQ6IDAuNX1dOwotICAgIHZhciBsb2NhdGlvbiA9IG5ldyB0ci5jLkxvY2F0aW9uKDEyMCwgZmFrZVlDb21wb25lbnRzKTsKLSAgICB2YXIgdGV4dCA9ICdhYmMnOwotICAgIHZhciBjb21tZW50Qm94QW5ub3RhdGlvbiA9Ci0gICAgICAgIG5ldyB0ci5tb2RlbC5Db21tZW50Qm94QW5ub3RhdGlvbihsb2NhdGlvbiwgdGV4dCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbW1lbnRCb3hBbm5vdGF0aW9uLmxvY2F0aW9uLCBsb2NhdGlvbik7Ci0gICAgYXNzZXJ0LmVxdWFsKGNvbW1lbnRCb3hBbm5vdGF0aW9uLnRleHQsIHRleHQpOwotCi0gICAgdmFyIHRpbWVsaW5lID0gY3JlYXRlUG9wdWxhdGVkVGltZWxpbmUoKTsKLSAgICB0aW1lbGluZS5tb2RlbC5hZGRBbm5vdGF0aW9uKGNvbW1lbnRCb3hBbm5vdGF0aW9uKTsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZWxpbmUpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZjgzOTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hc3luY19zbGljZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RpbWVkX2V2ZW50Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIEFzeW5jU2xpY2UgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSBBc3luY1NsaWNlIHJlcHJlc2VudHMgYW4gaW50ZXJ2YWwgb2YgdGltZSBkdXJpbmcgd2hpY2ggYW4KLSAgICogYXN5bmNocm9ub3VzIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy4gQW4gQXN5bmNTbGljZSBjb25zdW1lcyBubyBDUFUgdGltZQotICAgKiBpdHNlbGYgYW5kIHNvIGlzIG9ubHkgYXNzb2NpYXRlZCB3aXRoIFRocmVhZHMgYXQgaXRzIHN0YXJ0IGFuZCBlbmQgcG9pbnQuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gQXN5bmNTbGljZShjYXRlZ29yeSwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBkdXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICBvcHRfaXNUb3BMZXZlbCwgb3B0X2NwdVN0YXJ0LCBvcHRfY3B1RHVyYXRpb24pIHsKLSAgICB0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcywgc3RhcnQpOwotCi0gICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5IHx8ICcnOwotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgICB0aGlzLmNvbG9ySWQgPSBjb2xvcklkOwotICAgIHRoaXMuYXJncyA9IGFyZ3M7Ci0gICAgdGhpcy5zdGFydFN0YWNrRnJhbWUgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5lbmRTdGFja0ZyYW1lID0gdW5kZWZpbmVkOwotICAgIHRoaXMuZGlkTm90RmluaXNoID0gZmFsc2U7Ci0gICAgdGhpcy5pbXBvcnRhbnQgPSBmYWxzZTsKLSAgICB0aGlzLnN1YlNsaWNlcyA9IFtdOwotICAgIHRoaXMucGFyZW50Q29udGFpbmVyID0gdW5kZWZpbmVkOwotCi0gICAgdGhpcy5pZCA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnN0YXJ0VGhyZWFkID0gdW5kZWZpbmVkOwotICAgIHRoaXMuZW5kVGhyZWFkID0gdW5kZWZpbmVkOwotICAgIHRoaXMuY3B1U3RhcnQgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5jcHVEdXJhdGlvbiA9IHVuZGVmaW5lZDsKLQotICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjsKLQotCi0gICAgLy8gVE9ETyhuZHVjYSk6IEZvcmdpdmUgbWUgZm9yIHdoYXQgSSBtdXN0IGRvLgotICAgIHRoaXMuaXNUb3BMZXZlbCA9IChvcHRfaXNUb3BMZXZlbCA9PT0gdHJ1ZSk7Ci0KLSAgICBpZiAob3B0X2NwdVN0YXJ0ICE9PSB1bmRlZmluZWQpCi0gICAgICB0aGlzLmNwdVN0YXJ0ID0gb3B0X2NwdVN0YXJ0OwotCi0gICAgaWYgKG9wdF9jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQotICAgICAgdGhpcy5jcHVEdXJhdGlvbiA9IG9wdF9jcHVEdXJhdGlvbjsKLSAgfTsKLQotICBBc3luY1NsaWNlLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLlRpbWVkRXZlbnQucHJvdG90eXBlLAotCi0gICAgZ2V0IGFuYWx5c2lzVHlwZU5hbWUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50aXRsZTsKLSAgICB9LAotCi0gICAgZ2V0IHZpZXdTdWJHcm91cFRpdGxlKCkgewotICAgICAgcmV0dXJuIHRoaXMudGl0bGU7Ci0gICAgfSwKLQotICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgewotICAgICAgcmV0dXJuICdBc3luYyBzbGljZSAnICsgdGhpcy50aXRsZSArICcgYXQgJyArCi0gICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnN0YXJ0KTsKLSAgICB9LAotCi0gICAgZmluZERlc2NlbmRlbnRTbGljZTogZnVuY3Rpb24odGFyZ2V0VGl0bGUpIHsKLSAgICAgIGlmICghdGhpcy5zdWJTbGljZXMpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdWJTbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKHRoaXMuc3ViU2xpY2VzW2ldLnRpdGxlID09IHRhcmdldFRpdGxlKQotICAgICAgICAgIHJldHVybiB0aGlzLnN1YlNsaWNlc1tpXTsKLSAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zdWJTbGljZXNbaV0uZmluZERlc2NlbmRlbnRTbGljZSh0YXJnZXRUaXRsZSk7Ci0gICAgICAgIGlmIChzbGljZSkgcmV0dXJuIHNsaWNlOwotICAgICAgfQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbERlc2NlbmRlbnRzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIHRoaXMuc3ViU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKLSAgICAgIHRoaXMuc3ViU2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc3ViU2xpY2UpIHsKLSAgICAgICAgc3ViU2xpY2UuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0gICAgICB9LCBvcHRfdGhpcyk7Ci0gICAgfSwKLQotICAgIGNvbXBhcmVUbzogZnVuY3Rpb24odGhhdCkgewotICAgICAgcmV0dXJuIHRoaXMudGl0bGUubG9jYWxlQ29tcGFyZSh0aGF0LnRpdGxlKTsKLSAgICB9Ci0gIH07Ci0KLSAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgIEFzeW5jU2xpY2UsCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdhc3luY1NsaWNlJywKLSAgICAgICAgcGx1cmFsTmFtZTogJ2FzeW5jU2xpY2VzJywKLSAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItYy1hLXNpbmdsZS1hc3luYy1zbGljZS1zdWItdmlldycsCi0gICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItYy1hLW11bHRpLWFzeW5jLXNsaWNlLXN1Yi12aWV3JwotICAgICAgfSk7Ci0KLQotICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucygKLSAgICAgIHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTsKLSAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBBc3luY1NsaWNlOwotICBvcHRpb25zLmRlZmF1bHRDb25zdHJ1Y3RvciA9IEFzeW5jU2xpY2U7Ci0gIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShBc3luY1NsaWNlLCBvcHRpb25zKTsKLQotICByZXR1cm4gewotICAgIEFzeW5jU2xpY2U6IEFzeW5jU2xpY2UKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2FzeW5jX3NsaWNlX2dyb3VwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2FzeW5jX3NsaWNlX2dyb3VwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYjhhY2YuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hc3luY19zbGljZV9ncm91cC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTYxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgQXN5bmNTbGljZUdyb3VwIGNsYXNzLgotICovCi10ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKLSAgLyoqCi0gICAqIEEgZ3JvdXAgb2YgQXN5bmNTbGljZXMgYXNzb2NpYXRlZCB3aXRoIGEgdGhyZWFkLgotICAgKiBAY29uc3RydWN0b3IKLSAgICogQGV4dGVuZHMge3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyfQotICAgKi8KLSAgZnVuY3Rpb24gQXN5bmNTbGljZUdyb3VwKHBhcmVudENvbnRhaW5lciwgb3B0X25hbWUpIHsKLSAgICB0aGlzLnBhcmVudENvbnRhaW5lcl8gPSBwYXJlbnRDb250YWluZXI7Ci0gICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOwotICAgIHRoaXMuc2xpY2VzID0gW107Ci0gICAgdGhpcy5ib3VuZHMgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgIHRoaXMubmFtZV8gPSBvcHRfbmFtZTsKLSAgICB0aGlzLnZpZXdTdWJHcm91cHNfID0gdW5kZWZpbmVkOwotICB9Ci0KLSAgQXN5bmNTbGljZUdyb3VwLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSwKLQotICAgIGdldCBndWlkKCkgewotICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87Ci0gICAgfSwKLQotICAgIGdldCBwYXJlbnRDb250YWluZXIoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5wYXJlbnRDb250YWluZXJfOwotICAgIH0sCi0KLSAgICBnZXQgbW9kZWwoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5wYXJlbnRDb250YWluZXJfLnBhcmVudC5tb2RlbDsKLSAgICB9LAotCi0gICAgZ2V0IHN0YWJsZUlkKCkgewotICAgICAgcmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXy5zdGFibGVJZCArICcuQXN5bmNTbGljZUdyb3VwJzsKLSAgICB9LAotCi0gICAgZ2V0U2V0dGluZ3NLZXk6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLm5hbWVfKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgdmFyIHBhcmVudEtleSA9IHRoaXMucGFyZW50Q29udGFpbmVyXy5nZXRTZXR0aW5nc0tleSgpOwotICAgICAgaWYgKCFwYXJlbnRLZXkpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gcGFyZW50S2V5ICsgJy4nICsgdGhpcy5uYW1lXzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSGVscGVyIGZ1bmN0aW9uIHRoYXQgcHVzaGVzIHRoZSBwcm92aWRlZCBzbGljZSBvbnRvIHRoZSBzbGljZXMgYXJyYXkuCi0gICAgICovCi0gICAgcHVzaDogZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgIHNsaWNlLnBhcmVudENvbnRhaW5lciA9IHRoaXMucGFyZW50Q29udGFpbmVyOwotICAgICAgdGhpcy5zbGljZXMucHVzaChzbGljZSk7Ci0gICAgICByZXR1cm4gc2xpY2U7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge051bWJlcn0gVGhlIG51bWJlciBvZiBzbGljZXMgaW4gdGhpcyBncm91cC4KLSAgICAgKi8KLSAgICBnZXQgbGVuZ3RoKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2xpY2VzLmxlbmd0aDsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogU2hpZnRzIGFsbCB0aGUgdGltZXN0YW1wcyBpbnNpZGUgdGhpcyBncm91cCBmb3J3YXJkIGJ5IHRoZSBhbW91bnQKLSAgICAgKiBzcGVjaWZpZWQsIGluY2x1ZGluZyBhbGwgbmVzdGVkIHN1YlNsaWNlcyBpZiB0aGVyZSBhcmUgYW55LgotICAgICAqLwotICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgewotICAgICAgZm9yICh2YXIgc0kgPSAwOyBzSSA8IHRoaXMuc2xpY2VzLmxlbmd0aDsgc0krKykgewotICAgICAgICB2YXIgc2xpY2UgPSB0aGlzLnNsaWNlc1tzSV07Ci0gICAgICAgIHNsaWNlLnN0YXJ0ID0gKHNsaWNlLnN0YXJ0ICsgYW1vdW50KTsKLSAgICAgICAgLy8gU2hpZnQgYWxsIG5lc3RlZCBzdWJTbGljZXMgcmVjdXJzaXZlbHkuCi0gICAgICAgIHZhciBzaGlmdFN1YlNsaWNlcyA9IGZ1bmN0aW9uKHN1YlNsaWNlcykgewotICAgICAgICAgIGlmIChzdWJTbGljZXMgPT09IHVuZGVmaW5lZCB8fCBzdWJTbGljZXMubGVuZ3RoID09PSAwKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIGZvciAodmFyIHNKID0gMDsgc0ogPCBzdWJTbGljZXMubGVuZ3RoOyBzSisrKSB7Ci0gICAgICAgICAgICBzdWJTbGljZXNbc0pdLnN0YXJ0ICs9IGFtb3VudDsKLSAgICAgICAgICAgIHNoaWZ0U3ViU2xpY2VzKHN1YlNsaWNlc1tzSl0uc3ViU2xpY2VzKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIHNoaWZ0U3ViU2xpY2VzKHNsaWNlLnN1YlNsaWNlcyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFVwZGF0ZXMgdGhlIGJvdW5kcyBmb3IgdGhpcyBncm91cCBiYXNlZCBvbiB0aGUgc2xpY2VzIGl0IGNvbnRhaW5zLgotICAgICAqLwotICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1tpXS5zdGFydCk7Ci0gICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2xpY2VzW2ldLmVuZCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEdldHMgdGhlIHN1Yi1ncm91cHMgaW4gdGhpcyBBLVMtRyBkZWZpbmVkIGJ5IHRoZSBncm91cCB0aXRsZXMuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIHtBcnJheX0gQW4gYXJyYXkgb2YgQXN5bmNTbGljZUdyb3VwcyB3aGVyZSBlYWNoIGdyb3VwIGhhcwotICAgICAqIHNsaWNlcyB0aGF0IHN0YXJ0ZWQgb24gdGhlIHNhbWUgdGhyZWFkLgotICAgICAqLwotICAgIGdldCB2aWV3U3ViR3JvdXBzKCkgewotICAgICAgaWYgKHRoaXMudmlld1N1Ykdyb3Vwc18gPT09IHVuZGVmaW5lZCkgewotICAgICAgICB2YXIgcHJlZml4ID0gJyc7Ci0gICAgICAgIGlmICh0aGlzLm5hbWUgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBwcmVmaXggPSB0aGlzLm5hbWUgKyAnLic7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBwcmVmaXggPSAnJzsKLQotICAgICAgICB2YXIgc3ViR3JvdXBzQnlUaXRsZSA9IHt9OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpY2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zbGljZXNbaV07Ci0gICAgICAgICAgdmFyIHN1Ykdyb3VwVGl0bGUgPSBzbGljZS52aWV3U3ViR3JvdXBUaXRsZTsKLSAgICAgICAgICBpZiAoIXN1Ykdyb3Vwc0J5VGl0bGVbc3ViR3JvdXBUaXRsZV0pIHsKLSAgICAgICAgICAgIHN1Ykdyb3Vwc0J5VGl0bGVbc3ViR3JvdXBUaXRsZV0gPSBuZXcgQXN5bmNTbGljZUdyb3VwKAotICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Q29udGFpbmVyXywgcHJlZml4ICsgc3ViR3JvdXBUaXRsZSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN1Ykdyb3Vwc0J5VGl0bGVbc3ViR3JvdXBUaXRsZV0ucHVzaChzbGljZSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy52aWV3U3ViR3JvdXBzXyA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyhzdWJHcm91cHNCeVRpdGxlKTsKLSAgICAgICAgdGhpcy52aWV3U3ViR3JvdXBzXy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgICByZXR1cm4gYS5zbGljZXNbMF0uY29tcGFyZVRvKGIuc2xpY2VzWzBdKTsKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy52aWV3U3ViR3JvdXBzXzsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCB0ci5tb2RlbC5Bc3luY1NsaWNlKSkgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zbGljZXNbaV07Ci0gICAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgc2xpY2UpOwotICAgICAgICAgIGlmIChzbGljZS5zdWJTbGljZXMpCi0gICAgICAgICAgICBzbGljZS5zdWJTbGljZXMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgQXN5bmNTbGljZUdyb3VwOiBBc3luY1NsaWNlR3JvdXAKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2F0dHJpYnV0ZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hdHRyaWJ1dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDZmMDc2Yi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2F0dHJpYnV0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIEF0dHJpYnV0ZSBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gQXR0cmlidXRlKHVuaXRzKSB7Ci0gICAgdGhpcy51bml0cyA9IHVuaXRzOwotICB9Ci0KLSAgQXR0cmlidXRlLmZyb21EaWN0SWZQb3NzaWJsZSA9IGZ1bmN0aW9uKGRpY3QsIG9wdF9tb2RlbCkgewotICAgIHZhciB0eXBlSW5mbyA9IEF0dHJpYnV0ZS5maW5kVHlwZUluZm9NYXRjaGluZyhmdW5jdGlvbih0eXBlSW5mbykgewotICAgICAgcmV0dXJuIHR5cGVJbmZvLm1ldGFkYXRhLnR5cGUgPT09IGRpY3QudHlwZTsKLSAgICB9KTsKLQotICAgIGlmICh0eXBlSW5mbyA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICBpZiAob3B0X21vZGVsKSB7Ci0gICAgICAgIG9wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnYXR0cmlidXRlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICBtZXNzYWdlOiAnVW5rbm93biBhdHRyaWJ1dGUgdHlwZSBcJycgKyBkaWN0LnR5cGUgKyAnXCcuJwotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBVbmtub3duQXR0cmlidXRlLmZyb21EaWN0KGRpY3QsIG9wdF9tb2RlbCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHR5cGVJbmZvLmNvbnN0cnVjdG9yLmZyb21EaWN0KGRpY3QsIG9wdF9tb2RlbCk7Ci0gIH07Ci0KLSAgLyoqCi0gICAqIEZpbmQgdGhlIGNvbW1vbiBjb25zdHJ1Y3RvciBhbmQgdW5pdHMgb2YgYSBsaXN0IG9mIGF0dHJpYnV0ZSB2YWx1ZXMuIElmCi0gICAqIHRoZXkgaGF2ZSBkaWZmZXJlbnQgdHlwZXMgKGUuZy4gU2NhbGFyQXR0cmlidXRlIGFuZCBVbmtub3duQXR0cmlidXRlKSBvcgotICAgKiB1bml0cyAoZS5nLiAnbXMnIGFuZCAnSHonKSwgdGhlIGNvbW1vbiBjb25zdHJ1Y3RvciB3aWxsIGJlCi0gICAqIFVua25vd25BdHRyaWJ1dGUgYW5kIHRoZSBjb21tb24gdW5pdHMgd2lsbCBiZSB1bmRlZmluZWQuCi0gICAqCi0gICAqIFVuZGVmaW5lZCBhdHRyaWJ1dGUgdmFsdWVzIGFyZSBza2lwcGVkLiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHVuZGVmaW5lZAotICAgKiBpZiB0aGUgbGlzdCBvZiBhdHRyaWJ1dGUgdmFsdWVzIGNvbnRhaW5zIG5vIGRlZmluZWQgYXR0cmlidXRlIHZhbHVlcy4KLSAgICovCi0gIEF0dHJpYnV0ZS5maW5kQ29tbW9uVHJhaXRzID0gZnVuY3Rpb24oYXR0cmlidXRlcywgb3B0X21vZGVsKSB7Ci0gICAgdmFyIGNvbW1vblRyYWl0czsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgIHZhciBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2ldOwotICAgICAgaWYgKGF0dHJpYnV0ZSA9PT0gdW5kZWZpbmVkKQotICAgICAgICBjb250aW51ZTsKLQotICAgICAgdmFyIGF0dHJpYnV0ZUNvbnN0cnVjdG9yID0gYXR0cmlidXRlLmNvbnN0cnVjdG9yOwotICAgICAgdmFyIGF0dHJpYnV0ZVVuaXRzID0gYXR0cmlidXRlLnVuaXRzOwotCi0gICAgICBpZiAoY29tbW9uVHJhaXRzID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgY29tbW9uVHJhaXRzID0gewotICAgICAgICAgIGNvbnN0cnVjdG9yOiBhdHRyaWJ1dGVDb25zdHJ1Y3RvciwKLSAgICAgICAgICB1bml0czogYXR0cmlidXRlVW5pdHMKLSAgICAgICAgfTsKLSAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlQ29uc3RydWN0b3IgIT09IGNvbW1vblRyYWl0cy5jb25zdHJ1Y3RvcikgewotICAgICAgICBpZiAob3B0X21vZGVsKSB7Ci0gICAgICAgICAgb3B0X21vZGVsLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ2F0dHJpYnV0ZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnQXR0cmlidXRlIHdpdGggZGlmZmVyZW50IHR5cGVzOiAnICsKLSAgICAgICAgICAgICAgICBjb21tb25UcmFpdHMuY29uc3RydWN0b3IgKyAnIGFuZCAnICsgYXR0cmlidXRlQ29uc3RydWN0b3IgKyAnLicKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgICBjb21tb25UcmFpdHMgPSB7Ci0gICAgICAgICAgY29uc3RydWN0b3I6IFVua25vd25BdHRyaWJ1dGUsCi0gICAgICAgICAgdW5pdHM6IHVuZGVmaW5lZAotICAgICAgICB9OwotICAgICAgICBicmVhazsKLSAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlVW5pdHMgIT09IGNvbW1vblRyYWl0cy51bml0cykgewotICAgICAgICBpZiAob3B0X21vZGVsKSB7Ci0gICAgICAgICAgb3B0X21vZGVsLmltcG9ydFdhcm5pbmcoewotICAgICAgICAgICAgdHlwZTogJ2F0dHJpYnV0ZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgICBtZXNzYWdlOiAnQXR0cmlidXRlIHdpdGggZGlmZmVyZW50IHVuaXRzOiAnICsgY29tbW9uVHJhaXRzLnVuaXRzICsKLSAgICAgICAgICAgICAgICAnIGFuZCAnICsgYXR0cmlidXRlVW5pdHMgKyAnLicKLSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgICBjb21tb25UcmFpdHMgPSB7Ci0gICAgICAgICAgY29uc3RydWN0b3I6IFVua25vd25BdHRyaWJ1dGUsCi0gICAgICAgICAgdW5pdHM6IHVuZGVmaW5lZAotICAgICAgICB9OwotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGNvbW1vblRyYWl0czsKLSAgfTsKLQotICAvKioKLSAgICogQWdncmVnYXRlIGEgbGlzdCBvZiBjaGlsZCBhdHRyaWJ1dGUgdmFsdWVzIHdpdGggYW4gZXhpc3RpbmcgYXR0cmlidXRlCi0gICAqIHZhbHVlLiBUaGUgaW5kaXZpZHVhbCB2YWx1ZXMgY2FuIGJlIHVuZGVmaW5lZCwgaW4gd2hpY2ggY2FzZSB0aGV5IGFyZQotICAgKiBpZ25vcmVkLgotICAgKi8KLSAgQXR0cmlidXRlLmFnZ3JlZ2F0ZSA9IGZ1bmN0aW9uKGNoaWxkQXR0cmlidXRlcywgZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfbW9kZWwpIHsKLSAgICB2YXIgZGVmaW5lZENoaWxkQXR0cmlidXRlcyA9IGNoaWxkQXR0cmlidXRlcy5maWx0ZXIoCi0gICAgICAgIGZ1bmN0aW9uKGNoaWxkQXR0cmlidXRlKSB7Ci0gICAgICByZXR1cm4gY2hpbGRBdHRyaWJ1dGUgIT09IHVuZGVmaW5lZDsKLSAgICB9KTsKLQotICAgIC8vIElmIGFsbCBjaGlsZCBhdHRyaWJ1dGUgdmFsdWVzIHdlcmUgdW5kZWZpbmVkLCByZXR1cm4gdGhlIGV4aXN0aW5nIHBhcmVudAotICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZSAocG9zc2libHkgdW5kZWZpbmVkKS4KLSAgICB2YXIgdHJhaXRzID0gQXR0cmlidXRlLmZpbmRDb21tb25UcmFpdHMoZGVmaW5lZENoaWxkQXR0cmlidXRlcywgb3B0X21vZGVsKTsKLSAgICBpZiAodHJhaXRzID09PSB1bmRlZmluZWQpCi0gICAgICByZXR1cm4gZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGU7Ci0KLSAgICB2YXIgY29uc3RydWN0b3IgPSB0cmFpdHMuY29uc3RydWN0b3I7Ci0KLSAgICAvLyBJZiB0aGUgY29tbW9uIHR5cGUgZG9lcyBub3Qgc3VwcG9ydCBtZXJnaW5nIGNoaWxkIGF0dHJpYnV0ZSB2YWx1ZXMsCi0gICAgLy8gcmV0dXJuIHRoZSBleGlzdGluZyBwYXJlbnQgYXR0cmlidXRlIHZhbHVlIChwb3NzaWJseSB1bmRlZmluZWQpLgotICAgIGlmIChjb25zdHJ1Y3Rvci5tZXJnZSA9PT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuIGV4aXN0aW5nUGFyZW50QXR0cmlidXRlOwotCi0gICAgdmFyIG1lcmdlZEF0dHJpYnV0ZSA9IGNvbnN0cnVjdG9yLm1lcmdlKAotICAgICAgICBkZWZpbmVkQ2hpbGRBdHRyaWJ1dGVzLCB0cmFpdHMudW5pdHMsIG9wdF9tb2RlbCk7Ci0KLSAgICAvLyBJZiB0aGVyZSBpcyBubyBleGlzdGluZyBwYXJlbnQgYXR0cmlidXRlIHZhbHVlLCB1c2UgdGhlIG1lcmdlZCB2YWx1ZQotICAgIC8vIChwb3NzaWJseSB1bmRlZmluZWQpLgotICAgIGlmIChleGlzdGluZ1BhcmVudEF0dHJpYnV0ZSA9PT0gdW5kZWZpbmVkKQotICAgICAgcmV0dXJuIG1lcmdlZEF0dHJpYnV0ZTsKLQotICAgIC8vIExlYXZlIGl0IHVwIHRvIHRoZSBleGlzdGluZyBwYXJlbnQgYXR0cmlidXRlIHZhbHVlIHRvIGRlY2lkZSBpZi9ob3cgaXQKLSAgICAvLyB3aWxsIHVzZSB0aGUgbWVyZ2VkIHZhbHVlIChlLmcuIGdlbmVyYXRlIGFuIGltcG9ydCB3YXJuaW5nIGlmIHRoZQotICAgIC8vIGV4aXN0aW5nIGFuZCBtZXJnZWQgYXR0cmlidXRlIHZhbHVlIHR5cGVzIGRpZmZlcikuCi0gICAgZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGUudXNlTWVyZ2VkQXR0cmlidXRlKG1lcmdlZEF0dHJpYnV0ZSwgb3B0X21vZGVsKTsKLQotICAgIHJldHVybiBleGlzdGluZ1BhcmVudEF0dHJpYnV0ZTsKLSAgfQotCi0gIEF0dHJpYnV0ZS5mcm9tVHJhY2VWYWx1ZSA9IGZ1bmN0aW9uKGRpY3QsIG9wdF9tb2RlbCkgewotICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7Ci0gIH07Ci0KLSAgQXR0cmlidXRlLnByb3RvdHlwZS51c2VNZXJnZWRBdHRyaWJ1dGUgPSBmdW5jdGlvbihtZXJnZWRBdHRyaWJ1dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X21vZGVsKSB7Ci0gICAgaWYgKG1lcmdlZEF0dHJpYnV0ZS5jb25zdHJ1Y3RvciAhPT0gdGhpcy5jb25zdHJ1Y3RvcikgewotICAgICAgaWYgKG9wdF9tb2RlbCkgewotICAgICAgICBvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgdHlwZTogJ2F0dHJpYnV0ZV9wYXJzZV9lcnJvcicsCi0gICAgICAgICAgbWVzc2FnZTogJ0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB0eXBlczogJyArIHRoaXMuY29uc3RydWN0b3IgKwotICAgICAgICAgICAgICAnIGFuZCAnICsgbWVyZ2VkQXR0cmlidXRlLmNvbnN0cnVjdG9yICsgJy4nCi0gICAgICAgIH0pOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAobWVyZ2VkQXR0cmlidXRlLnVuaXRzICE9PSB0aGlzLnVuaXRzKSB7Ci0gICAgICBpZiAob3B0X21vZGVsKSB7Ci0gICAgICAgIG9wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHsKLSAgICAgICAgICB0eXBlOiAnYXR0cmlidXRlX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICBtZXNzYWdlOiAnQXR0cmlidXRlIHdpdGggZGlmZmVyZW50IHVuaXRzOiAnICsgdGhpcy51bml0cyArCi0gICAgICAgICAgICAgICcgYW5kICcgKyBtZXJnZWRBdHRyaWJ1dGUudW5pdHMgKyAnLicKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgfQotICB9OwotCi0gIHZhciBvcHRpb25zID0gbmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7Ci0gIG9wdGlvbnMubWFuZGF0b3J5QmFzZVR5cGUgPSBBdHRyaWJ1dGU7Ci0gIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShBdHRyaWJ1dGUsIG9wdGlvbnMpOwotCi0gIEF0dHJpYnV0ZS5hZGRFdmVudExpc3RlbmVyKCd3aWxsLXJlZ2lzdGVyJywgZnVuY3Rpb24oZSkgewotICAgIGlmICghZS50eXBlSW5mby5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eSgnZnJvbURpY3QnKSkKLSAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlcyBtdXN0IGhhdmUgZnJvbURpY3QgbWV0aG9kJyk7Ci0KLSAgICBpZiAoIWUudHlwZUluZm8ubWV0YWRhdGEudHlwZSkKLSAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlcyBtdXN0IHByb3ZpZGUgdHlwZScpOwotCi0gICAgaWYgKGUudHlwZUluZm8uY29uc3RydWN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yICE9PSBlLnR5cGVJbmZvLmNvbnN0cnVjdG9yKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRyaWJ1dGUgcHJvdG90eXBlcyBtdXN0IHByb3ZpZGUgY29uc3RydWN0b3IuJyk7Ci0gIH0pOwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFNjYWxhckF0dHJpYnV0ZSh1bml0cywgdmFsdWUpIHsKLSAgICBBdHRyaWJ1dGUuY2FsbCh0aGlzLCB1bml0cyk7Ci0gICAgdGhpcy52YWx1ZSA9IHZhbHVlOwotICB9Ci0KLSAgU2NhbGFyQXR0cmlidXRlLmZyb21EaWN0ID0gZnVuY3Rpb24oZGljdCkgewotICAgIHJldHVybiBuZXcgU2NhbGFyQXR0cmlidXRlKGRpY3QudW5pdHMsIHBhcnNlSW50KGRpY3QudmFsdWUsIDE2KSk7Ci0gIH07Ci0KLSAgU2NhbGFyQXR0cmlidXRlLm1lcmdlID0gZnVuY3Rpb24oY2hpbGRBdHRyaWJ1dGVzLCB1bml0cykgewotICAgIHZhciBzdW0gPSAwOwotICAgIGNoaWxkQXR0cmlidXRlcy5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkQXR0cmlidXRlKSB7Ci0gICAgICBzdW0gKz0gY2hpbGRBdHRyaWJ1dGUudmFsdWU7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIG5ldyBTY2FsYXJBdHRyaWJ1dGUodW5pdHMsIHN1bSk7Ci0gIH0KLQotICBTY2FsYXJBdHRyaWJ1dGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IEF0dHJpYnV0ZS5wcm90b3R5cGU7Ci0KLSAgQXR0cmlidXRlLnJlZ2lzdGVyKFNjYWxhckF0dHJpYnV0ZSwge3R5cGU6ICdzY2FsYXInfSk7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gU3RyaW5nQXR0cmlidXRlKHVuaXRzLCB2YWx1ZSkgewotICAgIEF0dHJpYnV0ZS5jYWxsKHRoaXMsIHVuaXRzKTsKLSAgICB0aGlzLnZhbHVlID0gdmFsdWU7Ci0gIH0KLQotICBTdHJpbmdBdHRyaWJ1dGUuZnJvbURpY3QgPSBmdW5jdGlvbihkaWN0KSB7Ci0gICAgcmV0dXJuIG5ldyBTdHJpbmdBdHRyaWJ1dGUoZGljdC51bml0cywgZGljdC52YWx1ZSk7Ci0gIH07Ci0KLSAgQXR0cmlidXRlLnJlZ2lzdGVyKFN0cmluZ0F0dHJpYnV0ZSwge3R5cGU6ICdzdHJpbmcnfSk7Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gVW5rbm93bkF0dHJpYnV0ZSh1bml0cywgb3B0X3ZhbHVlKSB7Ci0gICAgQXR0cmlidXRlLmNhbGwodGhpcywgdW5pdHMsIG9wdF92YWx1ZSk7Ci0gICAgdGhpcy52YWx1ZSA9IG9wdF92YWx1ZTsKLSAgfQotCi0gIFVua25vd25BdHRyaWJ1dGUuZnJvbURpY3QgPSBmdW5jdGlvbihkaWN0KSB7Ci0gICAgcmV0dXJuIG5ldyBVbmtub3duQXR0cmlidXRlKGRpY3QudW5pdHMpOwotICB9OwotCi0gIFVua25vd25BdHRyaWJ1dGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IEF0dHJpYnV0ZS5wcm90b3R5cGU7Ci0KLSAgcmV0dXJuIHsKLSAgICBBdHRyaWJ1dGU6IEF0dHJpYnV0ZSwKLSAgICBTY2FsYXJBdHRyaWJ1dGU6IFNjYWxhckF0dHJpYnV0ZSwKLSAgICBTdHJpbmdBdHRyaWJ1dGU6IFN0cmluZ0F0dHJpYnV0ZSwKLSAgICBVbmtub3duQXR0cmlidXRlOiBVbmtub3duQXR0cmlidXRlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jb21tZW50X2JveF9hbm5vdGF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZhNWU5Yi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvbG9jYXRpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2Fubm90YXRpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3JlY3RfYW5ub3RhdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90cmFja3MvY29tbWVudF9ib3hfYW5ub3RhdGlvbl92aWV3Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKLQotICBmdW5jdGlvbiBDb21tZW50Qm94QW5ub3RhdGlvbihsb2NhdGlvbiwgdGV4dCkgewotICAgIHRyLm1vZGVsLkFubm90YXRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLQotICAgIHRoaXMubG9jYXRpb24gPSBsb2NhdGlvbjsKLSAgICB0aGlzLnRleHQgPSB0ZXh0OwotICB9Ci0KLSAgQ29tbWVudEJveEFubm90YXRpb24uZnJvbURpY3QgPSBmdW5jdGlvbihkaWN0KSB7Ci0gICAgdmFyIGFyZ3MgPSBkaWN0LmFyZ3M7Ci0gICAgdmFyIGxvY2F0aW9uID0KLSAgICAgICAgbmV3IHRyLmMuTG9jYXRpb24oYXJncy5sb2NhdGlvbi54V29ybGQsIGFyZ3MubG9jYXRpb24ueUNvbXBvbmVudHMpOwotICAgIHJldHVybiBuZXcgdHIubW9kZWwuQ29tbWVudEJveEFubm90YXRpb24obG9jYXRpb24sIGFyZ3MudGV4dCk7Ci0gIH07Ci0KLSAgQ29tbWVudEJveEFubm90YXRpb24ucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuQW5ub3RhdGlvbi5wcm90b3R5cGUsCi0KLSAgICBvblJlbW92ZTogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLnZpZXdfLnJlbW92ZVRleHRBcmVhKCk7Ci0gICAgfSwKLQotICAgIHRvRGljdDogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gewotICAgICAgICB0eXBlTmFtZTogJ2NvbW1lbnRfYm94JywKLSAgICAgICAgYXJnczogewotICAgICAgICAgIHRleHQ6IHRoaXMudGV4dCwKLSAgICAgICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbi50b0RpY3QoKQotICAgICAgICB9Ci0gICAgICB9OwotICAgIH0sCi0KLSAgICBjcmVhdGVWaWV3XzogZnVuY3Rpb24odmlld3BvcnQpIHsKLSAgICAgIHJldHVybiBuZXcgdHIuYy5hbm5vdGF0aW9ucy5Db21tZW50Qm94QW5ub3RhdGlvblZpZXcodmlld3BvcnQsIHRoaXMpOwotICAgIH0KLSAgfTsKLQotICB0ci5tb2RlbC5Bbm5vdGF0aW9uLnJlZ2lzdGVyKAotICAgICAgQ29tbWVudEJveEFubm90YXRpb24sIHt0eXBlTmFtZTogJ2NvbW1lbnRfYm94J30pOwotCi0gIHJldHVybiB7Ci0gICAgQ29tbWVudEJveEFubm90YXRpb246IENvbW1lbnRCb3hBbm5vdGF0aW9uCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jb250YWluZXJfbWVtb3J5X2R1bXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYjNlMWQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jb250YWluZXJfbWVtb3J5X2R1bXAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RpbWVkX2V2ZW50Lmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIENvbnRhaW5lck1lbW9yeUR1bXAgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogVGhlIENvbnRhaW5lck1lbW9yeUR1bXAgcmVwcmVzZW50cyBhbiBhYnN0cmFjdCBjb250YWluZXIgbWVtb3J5IGR1bXAuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gQ29udGFpbmVyTWVtb3J5RHVtcChzdGFydCkgewotICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7Ci0KLSAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV8gPSB1bmRlZmluZWQ7Ci0gIH07Ci0KLSAgQ29udGFpbmVyTWVtb3J5RHVtcC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSwKLQotICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgewotICAgICAgdGhpcy5zdGFydCArPSBhbW91bnQ7Ci0gICAgfSwKLQotICAgIGdldCBtZW1vcnlBbGxvY2F0b3JEdW1wcygpIHsKLSAgICAgIHJldHVybiB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXzsKLSAgICB9LAotCi0gICAgc2V0IG1lbW9yeUFsbG9jYXRvckR1bXBzKG1lbW9yeUFsbG9jYXRvckR1bXBzKSB7Ci0gICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXyA9IG1lbW9yeUFsbG9jYXRvckR1bXBzOwotCi0gICAgICAvLyBDbGVhciB0aGUgaW5kZXggYW5kIGdlbmVyYXRlIGl0IGxhemlseS4KLSAgICAgIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lXyA9IHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWU6IGZ1bmN0aW9uKGZ1bGxOYW1lKSB7Ci0gICAgICBpZiAodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc18gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgICAgLy8gTGF6aWx5IGdlbmVyYXRlIHRoZSBpbmRleCBpZiBuZWNlc3NhcnkuCi0gICAgICBpZiAodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWVfID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgdmFyIGluZGV4ID0ge307Ci0gICAgICAgIGZ1bmN0aW9uIGFkZER1bXBzVG9JbmRleChkdW1wcykgewotICAgICAgICAgIGR1bXBzLmZvckVhY2goZnVuY3Rpb24oZHVtcCkgewotICAgICAgICAgICAgaW5kZXhbZHVtcC5mdWxsTmFtZV0gPSBkdW1wOwotICAgICAgICAgICAgYWRkRHVtcHNUb0luZGV4KGR1bXAuY2hpbGRyZW4pOwotICAgICAgICAgIH0pOwotICAgICAgICB9OwotICAgICAgICBhZGREdW1wc1RvSW5kZXgodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc18pOwotICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV8gPSBpbmRleDsKLSAgICAgIH0KLQotICAgICAgcmV0dXJuIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lX1tmdWxsTmFtZV07Ci0gICAgfSwKLQotICAgIGFnZ3JlZ2F0ZU1lbW9yeUFsbG9jYXRvckR1bXBBdHRyaWJ1dGVzOiBmdW5jdGlvbihvcHRfbW9kZWwpIHsKLSAgICAgIGlmICh0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXyA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNfLmZvckVhY2goZnVuY3Rpb24oZHVtcCkgewotICAgICAgICBkdW1wLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXMob3B0X21vZGVsKTsKLSAgICAgIH0pOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIENvbnRhaW5lck1lbW9yeUR1bXA6IENvbnRhaW5lck1lbW9yeUR1bXAKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY291bnRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOThkZDZkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY291bnRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBDb3VudGVyIGNsYXNzLgotICovCi10ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKLQotICAvKioKLSAgICogU3RvcmVzIGFsbCB0aGUgc2FtcGxlcyBmb3IgYSBnaXZlbiBjb3VudGVyLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENvdW50ZXIocGFyZW50LCBpZCwgY2F0ZWdvcnksIG5hbWUpIHsKLSAgICB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpOwotICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKLQotICAgIHRoaXMucGFyZW50XyA9IHBhcmVudDsKLSAgICB0aGlzLmlkXyA9IGlkOwotICAgIHRoaXMuY2F0ZWdvcnlfID0gY2F0ZWdvcnkgfHwgJyc7Ci0gICAgdGhpcy5uYW1lXyA9IG5hbWU7Ci0KLSAgICB0aGlzLnNlcmllc18gPSBbXTsKLSAgICB0aGlzLnRvdGFscyA9IFtdOwotICAgIHRoaXMuYm91bmRzID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgfQotCi0gIENvdW50ZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLAotCi0gICAgZ2V0IGd1aWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ndWlkXzsKLSAgICB9LAotCi0gICAgZ2V0IHBhcmVudCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnBhcmVudF87Ci0gICAgfSwKLQotICAgIGdldCBpZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmlkXzsKLSAgICB9LAotCi0gICAgZ2V0IGNhdGVnb3J5KCkgewotICAgICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlfOwotICAgIH0sCi0KLSAgICBnZXQgbmFtZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLm5hbWVfOwotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOiBmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2VyaWVzXy5sZW5ndGg7IGkrKykKLSAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5zZXJpZXNfW2ldKTsKLSAgICB9LAotCi0gICAgc2V0IHRpbWVzdGFtcHMoYXJnKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhZCBjb3VudGVyIEFQSS4gTm8gY29va2llLicpOwotICAgIH0sCi0KLSAgICBzZXQgc2VyaWVzTmFtZXMoYXJnKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhZCBjb3VudGVyIEFQSS4gTm8gY29va2llLicpOwotICAgIH0sCi0KLSAgICBzZXQgc2VyaWVzQ29sb3JzKGFyZykgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYWQgY291bnRlciBBUEkuIE5vIGNvb2tpZS4nKTsKLSAgICB9LAotCi0gICAgc2V0IHNhbXBsZXMoYXJnKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhZCBjb3VudGVyIEFQSS4gTm8gY29va2llLicpOwotICAgIH0sCi0KLSAgICBhZGRTZXJpZXM6IGZ1bmN0aW9uKHNlcmllcykgewotICAgICAgc2VyaWVzLmNvdW50ZXIgPSB0aGlzOwotICAgICAgc2VyaWVzLnNlcmllc0luZGV4ID0gdGhpcy5zZXJpZXNfLmxlbmd0aDsKLSAgICAgIHRoaXMuc2VyaWVzXy5wdXNoKHNlcmllcyk7Ci0gICAgICByZXR1cm4gc2VyaWVzOwotICAgIH0sCi0KLSAgICBnZXRTZXJpZXM6IGZ1bmN0aW9uKGlkeCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzX1tpZHhdOwotICAgIH0sCi0KLSAgICBnZXQgc2VyaWVzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzXzsKLSAgICB9LAotCi0gICAgZ2V0IG51bVNlcmllcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNlcmllc18ubGVuZ3RoOwotICAgIH0sCi0KLSAgICBnZXQgbnVtU2FtcGxlcygpIHsKLSAgICAgIGlmICh0aGlzLnNlcmllc18ubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICAgIHJldHVybiB0aGlzLnNlcmllc19bMF0ubGVuZ3RoOwotICAgIH0sCi0KLSAgICBnZXQgdGltZXN0YW1wcygpIHsKLSAgICAgIGlmICh0aGlzLnNlcmllc18ubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm4gW107Ci0gICAgICByZXR1cm4gdGhpcy5zZXJpZXNfWzBdLnRpbWVzdGFtcHM7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIE9idGFpbnMgbWluLCBtYXgsIGF2ZywgdmFsdWVzLCBzdGFydCwgYW5kIGVuZCBmb3IgZGlmZmVyZW50IHNlcmllcyBmb3IKLSAgICAgKiBhIGdpdmVuIGNvdW50ZXIKLSAgICAgKiAgICAgZ2V0U2FtcGxlU3RhdGlzdGljcyhbMCwxXSkKLSAgICAgKiBUaGUgc3RhdGlzdGljcyBvYmplY3RzIHRoYXQgdGhpcyByZXR1cm5zIGFyZSBhbiBhcnJheSBvZiBvYmplY3RzLCBvbmUKLSAgICAgKiBvYmplY3QgZm9yIGVhY2ggc2VyaWVzIGZvciB0aGUgY291bnRlciBpbiB0aGUgZm9ybToKLSAgICAgKiB7bWluOiBtaW5WYWwsIG1heDogbWF4VmFsLCBhdmc6IGF2Z1ZhbCwgc3RhcnQ6IHN0YXJ0VmFsLCBlbmQ6IGVuZFZhbH0KLSAgICAgKgotICAgICAqIEBwYXJhbSB7QXJyYXkuPE51bWJlcj59IEluZGljZXMgdG8gc3VtbWFyaXplLgotICAgICAqIEByZXR1cm4ge09iamVjdH0gQW4gYXJyYXkgb2Ygc3RhdGlzdGljcy4gRWFjaCBlbGVtZW50IGluIHRoZSBhcnJheQotICAgICAqIGhhcyBkYXRhIGZvciBvbmUgb2YgdGhlIHNlcmllcyBpbiB0aGUgc2VsZWN0ZWQgY291bnRlci4KLSAgICAgKi8KLSAgICBnZXRTYW1wbGVTdGF0aXN0aWNzOiBmdW5jdGlvbihzYW1wbGVJbmRpY2VzKSB7Ci0gICAgICBzYW1wbGVJbmRpY2VzLnNvcnQoKTsKLQotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgdGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7Ci0gICAgICAgIHJldC5wdXNoKHNlcmllcy5nZXRTdGF0aXN0aWNzKHNhbXBsZUluZGljZXMpKTsKLSAgICAgIH0pOwotICAgICAgcmV0dXJuIHJldDsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogU2hpZnRzIGFsbCB0aGUgdGltZXN0YW1wcyBpbnNpZGUgdGhpcyBjb3VudGVyIGZvcndhcmQgYnkgdGhlIGFtb3VudAotICAgICAqIHNwZWNpZmllZC4KLSAgICAgKi8KLSAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zZXJpZXNfLmxlbmd0aDsgKytpKQotICAgICAgICB0aGlzLnNlcmllc19baV0uc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBVcGRhdGVzIHRoZSBib3VuZHMgZm9yIHRoaXMgY291bnRlciBiYXNlZCBvbiB0aGUgc2FtcGxlcyBpdCBjb250YWlucy4KLSAgICAgKi8KLSAgICB1cGRhdGVCb3VuZHM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy50b3RhbHMgPSBbXTsKLSAgICAgIHRoaXMubWF4VG90YWwgPSAwOwotICAgICAgdGhpcy5ib3VuZHMucmVzZXQoKTsKLQotICAgICAgaWYgKHRoaXMuc2VyaWVzXy5sZW5ndGggPT09IDApCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIGZpcnN0U2VyaWVzID0gdGhpcy5zZXJpZXNfWzBdOwotICAgICAgdmFyIGxhc3RTZXJpZXMgPSB0aGlzLnNlcmllc19bdGhpcy5zZXJpZXNfLmxlbmd0aCAtIDFdOwotCi0gICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZShmaXJzdFNlcmllcy5nZXRUaW1lc3RhbXAoMCkpOwotICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUobGFzdFNlcmllcy5nZXRUaW1lc3RhbXAobGFzdFNlcmllcy5sZW5ndGggLSAxKSk7Ci0KLSAgICAgIHZhciBudW1TZXJpZXMgPSB0aGlzLm51bVNlcmllczsKLSAgICAgIHRoaXMubWF4VG90YWwgPSAtSW5maW5pdHk7Ci0KLSAgICAgIC8vIFN1bSB0aGUgc2FtcGxlcyBhdCBlYWNoIHRpbWVzdGFtcC4KLSAgICAgIC8vIE5vdGUsIHRoaXMgYXNzdW1lcyB0aGF0IGFsbCBzZXJpZXMgaGF2ZSBhbGwgdGltZXN0YW1wcy4KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlyc3RTZXJpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHRvdGFsID0gMDsKLSAgICAgICAgdGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7Ci0gICAgICAgICAgdG90YWwgKz0gc2VyaWVzLmdldFNhbXBsZShpKS52YWx1ZTsKLSAgICAgICAgICB0aGlzLnRvdGFscy5wdXNoKHRvdGFsKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLQotICAgICAgICB0aGlzLm1heFRvdGFsID0gTWF0aC5tYXgodG90YWwsIHRoaXMubWF4VG90YWwpOwotICAgICAgfQotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQ29tcGFyaXNvbiBiZXR3ZWVuIGNvdW50ZXJzIHRoYXQgb3JkZXJzIGJ5IHBhcmVudC5jb21wYXJlVG8sIHRoZW4gbmFtZS4KLSAgICovCi0gIENvdW50ZXIuY29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsKLSAgICB2YXIgdG1wID0geC5wYXJlbnQuY29tcGFyZVRvKHkpOwotICAgIGlmICh0bXAgIT0gMCkKLSAgICAgIHJldHVybiB0bXA7Ci0gICAgdmFyIHRtcCA9IHgubmFtZS5sb2NhbGVDb21wYXJlKHkubmFtZSk7Ci0gICAgaWYgKHRtcCA9PSAwKQotICAgICAgcmV0dXJuIHgudGlkIC0geS50aWQ7Ci0gICAgcmV0dXJuIHRtcDsKLSAgfTsKLQotICByZXR1cm4gewotICAgIENvdW50ZXI6IENvdW50ZXIKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXJfc2FtcGxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXJfc2FtcGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1NDM4ZmUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jb3VudGVyX3NhbXBsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBDb3VudGVyU2FtcGxlKHNlcmllcywgdGltZXN0YW1wLCB2YWx1ZSkgewotICAgIHRyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7Ci0gICAgdGhpcy5zZXJpZXNfID0gc2VyaWVzOwotICAgIHRoaXMudGltZXN0YW1wXyA9IHRpbWVzdGFtcDsKLSAgICB0aGlzLnZhbHVlXyA9IHZhbHVlOwotICB9Ci0KLSAgQ291bnRlclNhbXBsZS5ncm91cEJ5VGltZXN0YW1wID0gZnVuY3Rpb24oc2FtcGxlcykgewotICAgIHZhciBzYW1wbGVzQnlUaW1lc3RhbXAgPSB0ci5iLmdyb3VwKHNhbXBsZXMsIGZ1bmN0aW9uKHNhbXBsZSkgewotICAgICAgcmV0dXJuIHNhbXBsZS50aW1lc3RhbXA7Ci0gICAgfSk7Ci0KLSAgICB2YXIgdGltZXN0YW1wcyA9IHRyLmIuZGljdGlvbmFyeUtleXMoc2FtcGxlc0J5VGltZXN0YW1wKTsKLSAgICB0aW1lc3RhbXBzLnNvcnQoKTsKLSAgICB2YXIgZ3JvdXBzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aW1lc3RhbXBzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICB2YXIgdHMgPSB0aW1lc3RhbXBzW2ldOwotICAgICAgdmFyIGdyb3VwID0gc2FtcGxlc0J5VGltZXN0YW1wW3RzXTsKLSAgICAgIGdyb3VwLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICByZXR1cm4geC5zZXJpZXMuc2VyaWVzSW5kZXggLSB5LnNlcmllcy5zZXJpZXNJbmRleDsKLSAgICAgIH0pOwotICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApOwotICAgIH0KLSAgICByZXR1cm4gZ3JvdXBzOwotICB9Ci0KLSAgQ291bnRlclNhbXBsZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsCi0KLSAgICBnZXQgc2VyaWVzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzXzsKLSAgICB9LAotCi0gICAgZ2V0IHRpbWVzdGFtcCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnRpbWVzdGFtcF87Ci0gICAgfSwKLQotICAgIGdldCB2YWx1ZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLnZhbHVlXzsKLSAgICB9LAotCi0gICAgc2V0IHRpbWVzdGFtcCh0aW1lc3RhbXApIHsKLSAgICAgIHRoaXMudGltZXN0YW1wXyA9IHRpbWVzdGFtcDsKLSAgICB9LAotCi0gICAgYWRkQm91bmRzVG9SYW5nZTogZnVuY3Rpb24ocmFuZ2UpIHsKLSAgICAgIHJhbmdlLmFkZFZhbHVlKHRoaXMudGltZXN0YW1wKTsKLSAgICB9LAotCi0gICAgZ2V0U2FtcGxlSW5kZXg6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSgKLSAgICAgICAgICB0aGlzLnNlcmllcy50aW1lc3RhbXBzLAotICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHg7IH0sCi0gICAgICAgICAgdGhpcy50aW1lc3RhbXBfKTsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ0NvdW50ZXIgc2FtcGxlIGZyb20gJyArIHRoaXMuc2VyaWVzXy50aXRsZSArICcgYXQgJyArCi0gICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnRpbWVzdGFtcCk7Ci0gICAgfQotICB9OwotCi0KLSAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgIENvdW50ZXJTYW1wbGUsCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdjb3VudGVyU2FtcGxlJywKLSAgICAgICAgcGx1cmFsTmFtZTogJ2NvdW50ZXJTYW1wbGVzJywKLSAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItYy1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3JywKLSAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnCi0gICAgICB9KTsKLQotICByZXR1cm4gewotICAgIENvdW50ZXJTYW1wbGU6IENvdW50ZXJTYW1wbGUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1OWMxYjYuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2FtcGxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgQ291bnRlclNlcmllcyBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBDb3VudGVyU2FtcGxlID0gdHIubW9kZWwuQ291bnRlclNhbXBsZTsKLQotICBmdW5jdGlvbiBDb3VudGVyU2VyaWVzKG5hbWUsIGNvbG9yKSB7Ci0gICAgdHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTsKLSAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7Ci0KLSAgICB0aGlzLm5hbWVfID0gbmFtZTsKLSAgICB0aGlzLmNvbG9yXyA9IGNvbG9yOwotCi0gICAgdGhpcy50aW1lc3RhbXBzXyA9IFtdOwotICAgIHRoaXMuc2FtcGxlc18gPSBbXTsKLQotICAgIC8vIFNldCBieSBjb3VudGVyLmFkZFNlcmllcwotICAgIHRoaXMuY291bnRlciA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnNlcmllc0luZGV4ID0gdW5kZWZpbmVkOwotICB9Ci0KLSAgQ291bnRlclNlcmllcy5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCi0KLSAgICBnZXQgbGVuZ3RoKCkgewotICAgICAgcmV0dXJuIHRoaXMudGltZXN0YW1wc18ubGVuZ3RoOwotICAgIH0sCi0KLSAgICBnZXQgbmFtZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLm5hbWVfOwotICAgIH0sCi0KLSAgICBnZXQgY29sb3IoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5jb2xvcl87Ci0gICAgfSwKLQotICAgIGdldCBzYW1wbGVzKCkgewotICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlc187Ci0gICAgfSwKLQotICAgIGdldCB0aW1lc3RhbXBzKCkgewotICAgICAgcmV0dXJuIHRoaXMudGltZXN0YW1wc187Ci0gICAgfSwKLQotICAgIGdldFNhbXBsZTogZnVuY3Rpb24oaWR4KSB7Ci0gICAgICByZXR1cm4gdGhpcy5zYW1wbGVzX1tpZHhdOwotICAgIH0sCi0KLSAgICBnZXRUaW1lc3RhbXA6IGZ1bmN0aW9uKGlkeCkgewotICAgICAgcmV0dXJuIHRoaXMudGltZXN0YW1wc19baWR4XTsKLSAgICB9LAotCi0gICAgYWRkQ291bnRlclNhbXBsZTogZnVuY3Rpb24odHMsIHZhbCkgewotICAgICAgdmFyIHNhbXBsZSA9IG5ldyBDb3VudGVyU2FtcGxlKHRoaXMsIHRzLCB2YWwpOwotICAgICAgdGhpcy5hZGRTYW1wbGUoc2FtcGxlKTsKLSAgICAgIHJldHVybiBzYW1wbGU7Ci0gICAgfSwKLQotICAgIGFkZFNhbXBsZTogZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICB0aGlzLnRpbWVzdGFtcHNfLnB1c2goc2FtcGxlLnRpbWVzdGFtcCk7Ci0gICAgICB0aGlzLnNhbXBsZXNfLnB1c2goc2FtcGxlKTsKLSAgICB9LAotCi0gICAgZ2V0U3RhdGlzdGljczogZnVuY3Rpb24oc2FtcGxlSW5kaWNlcykgewotICAgICAgdmFyIHN1bSA9IDA7Ci0gICAgICB2YXIgbWluID0gTnVtYmVyLk1BWF9WQUxVRTsKLSAgICAgIHZhciBtYXggPSAtTnVtYmVyLk1BWF9WQUxVRTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVJbmRpY2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBzYW1wbGUgPSB0aGlzLmdldFNhbXBsZShzYW1wbGVJbmRpY2VzW2ldKS52YWx1ZTsKLQotICAgICAgICBzdW0gKz0gc2FtcGxlOwotICAgICAgICBtaW4gPSBNYXRoLm1pbihzYW1wbGUsIG1pbik7Ci0gICAgICAgIG1heCA9IE1hdGgubWF4KHNhbXBsZSwgbWF4KTsKLSAgICAgIH0KLQotICAgICAgcmV0dXJuIHsKLSAgICAgICAgbWluOiBtaW4sCi0gICAgICAgIG1heDogbWF4LAotICAgICAgICBhdmc6IChzdW0gLyBzYW1wbGVJbmRpY2VzLmxlbmd0aCksCi0gICAgICAgIHN0YXJ0OiB0aGlzLmdldFNhbXBsZShzYW1wbGVJbmRpY2VzWzBdKS52YWx1ZSwKLSAgICAgICAgZW5kOiB0aGlzLmdldFNhbXBsZShzYW1wbGVJbmRpY2VzLmxlbmd0aCAtIDEpLnZhbHVlCi0gICAgICB9OwotICAgIH0sCi0KLSAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50aW1lc3RhbXBzXy5sZW5ndGg7ICsraSkgewotICAgICAgICB0aGlzLnRpbWVzdGFtcHNfW2ldICs9IGFtb3VudDsKLSAgICAgICAgdGhpcy5zYW1wbGVzX1tpXS50aW1lc3RhbXAgPSB0aGlzLnRpbWVzdGFtcHNfW2ldOwotICAgICAgfQotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOiBmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIHRyLm1vZGVsLkNvdW50ZXJTYW1wbGUpKSB7Ci0gICAgICAgIHRoaXMuc2FtcGxlc18uZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIENvdW50ZXJTZXJpZXM6IENvdW50ZXJTZXJpZXMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY3B1Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NwdS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjVhZGZhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY3B1Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY3B1X3NsaWNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aHJlYWRfdGltZV9zbGljZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBDcHUgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotCi0gIHZhciBDb3VudGVyID0gdHIubW9kZWwuQ291bnRlcjsKLSAgdmFyIFNsaWNlID0gdHIubW9kZWwuU2xpY2U7Ci0gIHZhciBDcHVTbGljZSA9IHRyLm1vZGVsLkNwdVNsaWNlOwotCi0gIC8qKgotICAgKiBUaGUgQ3B1IHJlcHJlc2VudHMgYSBDcHUgZnJvbSB0aGUga2VybmVsJ3MgcG9pbnQgb2Ygdmlldy4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBDcHUoa2VybmVsLCBudW1iZXIpIHsKLSAgICBpZiAoa2VybmVsID09PSB1bmRlZmluZWQgfHwgbnVtYmVyID09PSB1bmRlZmluZWQpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgYXJndW1lbnRzJyk7Ci0gICAgdGhpcy5rZXJuZWwgPSBrZXJuZWw7Ci0gICAgdGhpcy5jcHVOdW1iZXIgPSBudW1iZXI7Ci0gICAgdGhpcy5zbGljZXMgPSBbXTsKLSAgICB0aGlzLmNvdW50ZXJzID0ge307Ci0gICAgdGhpcy5ib3VuZHMgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgIHRoaXMuc2FtcGxlc18gPSB1bmRlZmluZWQ7IC8vIFNldCBkdXJpbmcgY3JlYXRlU3ViU2xpY2VzCi0KLSAgICAvLyBTdGFydCB0aW1lc3RhbXAgb2YgdGhlIGxhc3QgYWN0aXZlIHRocmVhZC4KLSAgICB0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfID0gdW5kZWZpbmVkOwotCi0gICAgLy8gSWRlbnRpZmllciBvZiB0aGUgbGFzdCBhY3RpdmUgdGhyZWFkLiBPbiBMaW51eCwgaXQncyBhIHBpZCB3aGlsZSBvbgotICAgIC8vIFdpbmRvd3MgaXQncyBhIHRocmVhZCBpZC4KLSAgICB0aGlzLmxhc3RBY3RpdmVUaHJlYWRfID0gdW5kZWZpbmVkOwotCi0gICAgLy8gTmFtZSBhbmQgYXJndW1lbnRzIG9mIHRoZSBsYXN0IGFjdGl2ZSB0aHJlYWQuCi0gICAgdGhpcy5sYXN0QWN0aXZlTmFtZV8gPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5sYXN0QWN0aXZlQXJnc18gPSB1bmRlZmluZWQ7Ci0gIH07Ci0KLSAgQ3B1LnByb3RvdHlwZSA9IHsKLSAgICBpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOiBmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIHRyLm1vZGVsLkNwdVNsaWNlKSkKLSAgICAgICAgdGhpcy5zbGljZXMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOwotCi0gICAgICBpZiAodGhpcy5zYW1wbGVzXykgewotICAgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIHRyLm1vZGVsLlNhbXBsZSkpCi0gICAgICAgICAgdGhpcy5zYW1wbGVzXy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLmNvdW50ZXJzKQotICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCB0aGlzLmNvdW50ZXJzW2lkXSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge1RpbWVsaW5lQ291bnRlcn0gVGhlIGNvdW50ZXIgb24gdGhpcyBwcm9jZXNzIG5hbWVkICduYW1lJywKLSAgICAgKiBjcmVhdGluZyBpdCBpZiBpdCBkb2Vzbid0IGV4aXN0LgotICAgICAqLwotICAgIGdldE9yQ3JlYXRlQ291bnRlcjogZnVuY3Rpb24oY2F0LCBuYW1lKSB7Ci0gICAgICB2YXIgaWQ7Ci0gICAgICBpZiAoY2F0Lmxlbmd0aCkKLSAgICAgICAgaWQgPSBjYXQgKyAnLicgKyBuYW1lOwotICAgICAgZWxzZQotICAgICAgICBpZCA9IG5hbWU7Ci0gICAgICBpZiAoIXRoaXMuY291bnRlcnNbaWRdKQotICAgICAgICB0aGlzLmNvdW50ZXJzW2lkXSA9IG5ldyBDb3VudGVyKHRoaXMsIGlkLCBjYXQsIG5hbWUpOwotICAgICAgcmV0dXJuIHRoaXMuY291bnRlcnNbaWRdOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBTaGlmdHMgYWxsIHRoZSB0aW1lc3RhbXBzIGluc2lkZSB0aGlzIENQVSBmb3J3YXJkIGJ5IHRoZSBhbW91bnQKLSAgICAgKiBzcGVjaWZpZWQuCi0gICAgICovCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICBmb3IgKHZhciBzSSA9IDA7IHNJIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBzSSsrKQotICAgICAgICB0aGlzLnNsaWNlc1tzSV0uc3RhcnQgPSAodGhpcy5zbGljZXNbc0ldLnN0YXJ0ICsgYW1vdW50KTsKLSAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCi0gICAgICAgIHRoaXMuY291bnRlcnNbaWRdLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogVXBkYXRlcyB0aGUgcmFuZ2UgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2xpY2VzIGF0dGFjaGVkIHRvIHRoZSBjcHUuCi0gICAgICovCi0gICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7Ci0gICAgICBpZiAodGhpcy5zbGljZXMubGVuZ3RoKSB7Ci0gICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2xpY2VzWzBdLnN0YXJ0KTsKLSAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbdGhpcy5zbGljZXMubGVuZ3RoIC0gMV0uZW5kKTsKLSAgICAgIH0KLSAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuY291bnRlcnMpIHsKLSAgICAgICAgdGhpcy5jb3VudGVyc1tpZF0udXBkYXRlQm91bmRzKCk7Ci0gICAgICAgIHRoaXMuYm91bmRzLmFkZFJhbmdlKHRoaXMuY291bnRlcnNbaWRdLmJvdW5kcyk7Ci0gICAgICB9Ci0gICAgICBpZiAodGhpcy5zYW1wbGVzXyAmJiB0aGlzLnNhbXBsZXNfLmxlbmd0aCkgewotICAgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfWzBdLnN0YXJ0KTsKLSAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUoCi0gICAgICAgICAgICB0aGlzLnNhbXBsZXNfW3RoaXMuc2FtcGxlc18ubGVuZ3RoIC0gMV0uZW5kKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuc2FtcGxlc18gPSB0aGlzLmtlcm5lbC5tb2RlbC5zYW1wbGVzLmZpbHRlcihmdW5jdGlvbihzYW1wbGUpIHsKLSAgICAgICAgcmV0dXJuIHNhbXBsZS5jcHUgPT0gdGhpczsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBhZGRDYXRlZ29yaWVzVG9EaWN0OiBmdW5jdGlvbihjYXRlZ29yaWVzRGljdCkgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWNlcy5sZW5ndGg7IGkrKykKLSAgICAgICAgY2F0ZWdvcmllc0RpY3RbdGhpcy5zbGljZXNbaV0uY2F0ZWdvcnldID0gdHJ1ZTsKLSAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCi0gICAgICAgIGNhdGVnb3JpZXNEaWN0W3RoaXMuY291bnRlcnNbaWRdLmNhdGVnb3J5XSA9IHRydWU7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2FtcGxlc18ubGVuZ3RoOyBpKyspCi0gICAgICAgIGNhdGVnb3JpZXNEaWN0W3RoaXMuc2FtcGxlc19baV0uY2F0ZWdvcnldID0gdHJ1ZTsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ0NQVSAnICsgdGhpcy5jcHVOdW1iZXI7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHNsaWNlIGluIHRoZSBDUFUncyBzbGljZXMsIG9yIHVuZGVmaW5lZC4KLSAgICAgKi8KLSAgICBpbmRleE9mOiBmdW5jdGlvbihjcHVTbGljZSkgewotICAgICAgdmFyIGkgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgdGhpcy5zbGljZXMsCi0gICAgICAgICAgZnVuY3Rpb24oc2xpY2UpIHsgcmV0dXJuIHNsaWNlLnN0YXJ0OyB9LAotICAgICAgICAgIGNwdVNsaWNlLnN0YXJ0KTsKLSAgICAgIGlmICh0aGlzLnNsaWNlc1tpXSAhPT0gY3B1U2xpY2UpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gaTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQ2xvc2VzIHRoZSB0aHJlYWQgcnVubmluZyBvbiB0aGUgQ1BVLiB8ZW5kX3RpbWVzdGFtcHwgaXMgdGhlIHRpbWVzdGFtcAotICAgICAqIGF0IHdoaWNoIHRoZSB0aHJlYWQgd2FzIHVuc2NoZWR1bGVkLiB8YXJnc3wgaXMgbWVyZ2VkIHdpdGggdGhlIGFyZ3VtZW50cwotICAgICAqIHNwZWNpZmllZCB3aGVuIHRoZSB0aHJlYWQgd2FzIGluaXRpYWxseSBzY2hlZHVsZWQuCi0gICAgICovCi0gICAgY2xvc2VBY3RpdmVUaHJlYWQ6IGZ1bmN0aW9uKGVuZF90aW1lc3RhbXAsIGFyZ3MpIHsKLSAgICAgIC8vIERvbid0IGdlbmVyYXRlIGEgc2xpY2UgaWYgdGhlIGxhc3QgYWN0aXZlIHRocmVhZCBpcyB0aGUgaWRsZSB0YXNrLgotICAgICAgaWYgKHRoaXMubGFzdEFjdGl2ZVRocmVhZF8gPT0gdW5kZWZpbmVkIHx8IHRoaXMubGFzdEFjdGl2ZVRocmVhZF8gPT0gMCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBpZiAoZW5kX3RpbWVzdGFtcCA8IHRoaXMubGFzdEFjdGl2ZVRpbWVzdGFtcF8pIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZW5kIHRpbWVzdGFtcCBvZiBhIHRocmVhZCBydW5uaW5nIG9uIENQVSAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3B1TnVtYmVyICsgJyBpcyBiZWZvcmUgaXRzIHN0YXJ0IHRpbWVzdGFtcC4nKTsKLSAgICAgIH0KLQotICAgICAgLy8gTWVyZ2UgfGFyZ3N8IHdpdGggfHRoaXMubGFzdEFjdGl2ZUFyZ3NffC4gSWYgYSBrZXkgaXMgaW4gYm90aAotICAgICAgLy8gZGljdGlvbmFyaWVzLCB0aGUgdmFsdWUgZnJvbSB8YXJnc3wgaXMgdXNlZC4KLSAgICAgIGZvciAodmFyIGtleSBpbiBhcmdzKSB7Ci0gICAgICAgIHRoaXMubGFzdEFjdGl2ZUFyZ3NfW2tleV0gPSBhcmdzW2tleV07Ci0gICAgICB9Ci0KLSAgICAgIHZhciBkdXJhdGlvbiA9IGVuZF90aW1lc3RhbXAgLSB0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfOwotICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLkNwdVNsaWNlKAotICAgICAgICAgICcnLCB0aGlzLmxhc3RBY3RpdmVOYW1lXywKLSAgICAgICAgICB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aGlzLmxhc3RBY3RpdmVOYW1lXyksCi0gICAgICAgICAgdGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXywKLSAgICAgICAgICB0aGlzLmxhc3RBY3RpdmVBcmdzXywKLSAgICAgICAgICBkdXJhdGlvbik7Ci0gICAgICBzbGljZS5jcHUgPSB0aGlzOwotICAgICAgdGhpcy5zbGljZXMucHVzaChzbGljZSk7Ci0KLSAgICAgIC8vIENsZWFyIHRoZSBsYXN0IHN0YXRlLgotICAgICAgdGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMubGFzdEFjdGl2ZVRocmVhZF8gPSB1bmRlZmluZWQ7Ci0gICAgICB0aGlzLmxhc3RBY3RpdmVOYW1lXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMubGFzdEFjdGl2ZUFyZ3NfID0gdW5kZWZpbmVkOwotICAgIH0sCi0KLSAgICBzd2l0Y2hBY3RpdmVUaHJlYWQ6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgb2xkX3RocmVhZF9hcmdzLCBuZXdfdGhyZWFkX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3RocmVhZF9uYW1lLCBuZXdfdGhyZWFkX2FyZ3MpIHsKLSAgICAgIC8vIENsb3NlIHRoZSBwcmV2aW91cyBhY3RpdmUgdGhyZWFkIGFuZCBnZW5lcmF0ZSBhIHNsaWNlLgotICAgICAgdGhpcy5jbG9zZUFjdGl2ZVRocmVhZCh0aW1lc3RhbXAsIG9sZF90aHJlYWRfYXJncyk7Ci0KLSAgICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIG5ldyB0aHJlYWQuCi0gICAgICB0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfID0gdGltZXN0YW1wOwotICAgICAgdGhpcy5sYXN0QWN0aXZlVGhyZWFkXyA9IG5ld190aHJlYWRfaWQ7Ci0gICAgICB0aGlzLmxhc3RBY3RpdmVOYW1lXyA9IG5ld190aHJlYWRfbmFtZTsKLSAgICAgIHRoaXMubGFzdEFjdGl2ZUFyZ3NfID0gbmV3X3RocmVhZF9hcmdzOwotICAgIH0sCi0KLSAgICBnZXQgc2FtcGxlcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNhbXBsZXNfOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQ29tcGFyaXNvbiBiZXR3ZWVuIHByb2Nlc3NlcyB0aGF0IG9yZGVycyBieSBjcHVOdW1iZXIuCi0gICAqLwotICBDcHUuY29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsKLSAgICByZXR1cm4geC5jcHVOdW1iZXIgLSB5LmNwdU51bWJlcjsKLSAgfTsKLQotCi0gIHJldHVybiB7Ci0gICAgQ3B1OiBDcHUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NwdV9zbGljZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jcHVfc2xpY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmMzOTc3Yi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NwdV9zbGljZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkX3RpbWVfc2xpY2UuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgQ3B1U2xpY2UgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotCi0gIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOwotCi0gIC8qKgotICAgKiBBIENwdVNsaWNlIHJlcHJlc2VudHMgYSBzbGljZSBvZiB0aW1lIG9uIGEgQ1BVLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIENwdVNsaWNlKGNhdCwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24pIHsKLSAgICBTbGljZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwotICAgIHRoaXMudGhyZWFkVGhhdFdhc1J1bm5pbmcgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5jcHUgPSB1bmRlZmluZWQ7Ci0gIH0KLQotICBDcHVTbGljZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBTbGljZS5wcm90b3R5cGUsCi0KLSAgICBnZXQgYW5hbHlzaXNUeXBlTmFtZSgpIHsKLSAgICAgIHJldHVybiAndHIuYy5hbmFseXNpcy5DcHVTbGljZSc7Ci0gICAgfSwKLQotICAgIGdldEFzc29jaWF0ZWRUaW1lc2xpY2U6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLnRocmVhZFRoYXRXYXNSdW5uaW5nKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgdmFyIHRpbWVTbGljZXMgPSB0aGlzLnRocmVhZFRoYXRXYXNSdW5uaW5nLnRpbWVTbGljZXM7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWVTbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHRpbWVTbGljZSA9IHRpbWVTbGljZXNbaV07Ci0gICAgICAgIGlmICh0aW1lU2xpY2Uuc3RhcnQgIT09IHRoaXMuc3RhcnQpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICh0aW1lU2xpY2UuZHVyYXRpb24gIT09IHRoaXMuZHVyYXRpb24pCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHJldHVybiB0aW1lU2xpY2U7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgIH0KLSAgfTsKLQotICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAotICAgICAgQ3B1U2xpY2UsCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdjcHVTbGljZScsCi0gICAgICAgIHBsdXJhbE5hbWU6ICdjcHVTbGljZXMnLAotICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtc2luZ2xlLWNwdS1zbGljZS1zdWItdmlldycsCi0gICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItYy1hLW11bHRpLWNwdS1zbGljZS1zdWItdmlldycKLSAgICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgQ3B1U2xpY2U6IENwdVNsaWNlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9kZXZpY2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvZGV2aWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4YWNkZjQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9kZXZpY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfY29udGFpbmVyLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIERldmljZSBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0KLSAgLyoqCi0gICAqIERldmljZSByZXByZXNlbnRzIHRoZSBkZXZpY2UtbGV2ZWwgb2JqZWN0cyBpbiB0aGUgbW9kZWwuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgICBAZXh0ZW5kcyB7dHIubW9kZWwuRXZlbnRDb250YWluZXJ9Ci0gICAqLwotICBmdW5jdGlvbiBEZXZpY2UobW9kZWwpIHsKLSAgICBpZiAoIW1vZGVsKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSBtb2RlbC4nKTsKLQotICAgIHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLmJvdW5kcyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgdGhpcy5ndWlkID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7Ci0gIH07Ci0KLSAgRGV2aWNlLmNvbXBhcmUgPSBmdW5jdGlvbih4LCB5KSB7Ci0gICAgcmV0dXJuIHguZ3VpZCAtIHkuZ3VpZDsKLSAgfTsKLQotICBEZXZpY2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLAotCi0gICAgY29tcGFyZVRvOiBmdW5jdGlvbih0aGF0KSB7Ci0gICAgICByZXR1cm4gRGV2aWNlLmNvbXBhcmUodGhpcywgdGhhdCk7Ci0gICAgfSwKLQotICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgewotICAgICAgcmV0dXJuICdEZXZpY2UnOwotICAgIH0sCi0KLSAgICBnZXQgdXNlckZyaWVuZGx5RGV0YWlscygpIHsKLSAgICAgIHJldHVybiAnRGV2aWNlJzsKLSAgICB9LAotCi0gICAgZ2V0IHN0YWJsZUlkKCkgewotICAgICAgcmV0dXJuICdEZXZpY2UnOwotICAgIH0sCi0KLSAgICBnZXRTZXR0aW5nc0tleTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gJ2RldmljZSc7Ci0gICAgfSwKLQotICAgIGdldCBjb3VudGVycygpIHsKLSAgICAgIHJldHVybiB7fTsKLSAgICB9LAotCi0gICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7Ci0gICAgICAvLyBUT0RPKGNoYXJsaWVhKTogVXBkYXRlIGFuZCBhZGQgYm91bmRzIGZvciBhbGwgY2hpbGRyZW4gY291bnRlcnMKLSAgICB9LAotCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICAvLyBUT0RPKGNoYXJsaWVhKTogU2hpZnQgdGltZXN0YW1wcyBmb3IgYWxsIGNoaWxkcmVuCi0gICAgfSwKLQotICAgIGFkZENhdGVnb3JpZXNUb0RpY3Q6IGZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KSB7Ci0gICAgICAvLyBUT0RPKGNoYXJsaWVhKTogQWRkIGNhdGVnb3JpZXMgZm9yIGFsbCBjb3VudGVycyB0byBkaWN0aW9uYXJ5Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIC8vIFRPRE8oY2hhcmxpZWEpOiBDYWxsIGNhbGxiYWNrIG9uIGFsbCBjaGlsZCBjb3VudGVycwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIERldmljZTogRGV2aWNlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9ldmVudC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9ldmVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4M2RjMTM4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvZXZlbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3RhYmxlX2l0ZW0uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBFdmVudCBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBTZWxlY3RhYmxlSXRlbSA9IHRyLm1vZGVsLlNlbGVjdGFibGVJdGVtOwotICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKLQotICAvLyBDYWNoZWQgdmFsdWVzIGZvciBnZXRDYXRlZ29yeVBhcnRzLgotICB2YXIgY2F0ZWdvcnlQYXJ0c0ZvciA9IHt9OwotCi0gIC8qKgotICAgKiBDYXRlZ29yaWVzIGFyZSBzdG9yZWQgaW4gY29tbWEtc2VwYXJhdGVkIGZvcm0sIGUuZzogJ2EsYicgbWVhbmluZwotICAgKiB0aGF0IHRoZSBldmVudCBpcyBwYXJ0IG9mIHRoZSBhIGFuZCBiIGNhdGVnb3J5LgotICAgKgotICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGNhdGVnb3J5IHNwbGl0IGJ5IHN0cmluZywgY2FjaGluZyB0aGUKLSAgICogYXJyYXkgZm9yIHBlcmZvcm1hbmNlLgotICAgKgotICAgKiBEbyBub3QgbXV0YXRlIHRoZSByZXR1cm5lZCBhcnJheSEhISEKLSAgICovCi0gIGZ1bmN0aW9uIGdldENhdGVnb3J5UGFydHMoY2F0ZWdvcnkpIHsKLSAgICB2YXIgcGFydHMgPSBjYXRlZ29yeVBhcnRzRm9yW2NhdGVnb3J5XTsKLSAgICBpZiAocGFydHMgIT09IHVuZGVmaW5lZCkKLSAgICAgIHJldHVybiBwYXJ0czsKLSAgICBwYXJ0cyA9IGNhdGVnb3J5LnNwbGl0KCcsJyk7Ci0gICAgY2F0ZWdvcnlQYXJ0c0ZvcltjYXRlZ29yeV0gPSBwYXJ0czsKLSAgICByZXR1cm4gcGFydHM7Ci0gIH0KLQotICAvKioKLSAgICogQW4gRXZlbnQgaXMgdGhlIGJhc2UgdHlwZSBmb3IgYW55IG5vbi1jb250YWluZXIsIHNlbGVjdGFibGUgcGllY2UKLSAgICogb2YgZGF0YSBpbiB0aGUgdHJhY2UgbW9kZWwuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAZXh0ZW5kcyB7U2VsZWN0YWJsZUl0ZW19Ci0gICAqLwotICBmdW5jdGlvbiBFdmVudCgpIHsKLSAgICBTZWxlY3RhYmxlSXRlbS5jYWxsKHRoaXMsIHRoaXMgLyogbW9kZWxJdGVtICovKTsKLSAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7Ci0gICAgdGhpcy5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLk5PTkU7Ci0gICAgdGhpcy5hc3NvY2lhdGVkQWxlcnRzID0gW107Ci0gICAgdGhpcy5pbmZvID0gdW5kZWZpbmVkOwotICB9Ci0KLSAgRXZlbnQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogU2VsZWN0YWJsZUl0ZW0ucHJvdG90eXBlLAotCi0gICAgZ2V0IGd1aWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ndWlkXzsKLSAgICB9Ci0gIH07Ci0KLSAgLy8gQ3JlYXRlIHRoZSB0eXBlIHJlZ2lzdHJ5LgotICBmdW5jdGlvbiBFdmVudFJlZ2lzdHJ5KCkgewotICB9Ci0gIHZhciBvcHRpb25zID0gbmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7Ci0gIG9wdGlvbnMubWFuZGF0b3J5QmFzZVR5cGUgPSBFdmVudDsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEV2ZW50UmVnaXN0cnksIG9wdGlvbnMpOwotCi0gIC8vIEVuZm9yY2UgYWxsIG9wdGlvbnMgb2JqZWN0cyBoYXZlIHRoZSByaWdodCBmaWVsZHMuCi0gIEV2ZW50UmVnaXN0cnkuYWRkRXZlbnRMaXN0ZW5lcignd2lsbC1yZWdpc3RlcicsIGZ1bmN0aW9uKGUpIHsKLSAgICB2YXIgbWV0YWRhdGEgPSBlLnR5cGVJbmZvLm1ldGFkYXRhOwotCi0gICAgaWYgKG1ldGFkYXRhLm5hbWUgPT09IHVuZGVmaW5lZCkKLSAgICAgIHRocm93IG5ldyBFcnJvcignUmVnaXN0ZXJlZCBldmVudHMgbXVzdCBwcm92aWRlIG5hbWUgbWV0YWRhdGEnKTsKLSAgICB2YXIgaSA9IHRyLmIuZmluZEZpcnN0SW5BcnJheSgKLSAgICAgIEV2ZW50UmVnaXN0cnkuZ2V0QWxsUmVnaXN0ZXJlZFR5cGVJbmZvcygpLAotICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5tZXRhZGF0YS5uYW1lID09PSBtZXRhZGF0YS5uYW1lOyB9KTsKLSAgICBpZiAoaSAhPT0gdW5kZWZpbmVkKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdFdmVudCB0eXBlIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgcmVnaXN0ZXJlZCcpOwotCi0gICAgaWYgKG1ldGFkYXRhLnBsdXJhbE5hbWUgPT09IHVuZGVmaW5lZCkKLSAgICAgIHRocm93IG5ldyBFcnJvcignUmVnaXN0ZXJlZCBldmVudHMgbXVzdCBwcm92aWRlIHBsdXJhbE5hbWUgbWV0YWRhdGEnKTsKLSAgICBpZiAobWV0YWRhdGEuc2luZ2xlVmlld0VsZW1lbnROYW1lID09PSB1bmRlZmluZWQpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignUmVnaXN0ZXJlZCBldmVudHMgbXVzdCBwcm92aWRlICcgKwotICAgICAgICAgICAgICAgICAgICAgICdzaW5nbGVWaWV3RWxlbWVudE5hbWUgbWV0YWRhdGEnKTsKLSAgICB9Ci0gICAgaWYgKG1ldGFkYXRhLm11bHRpVmlld0VsZW1lbnROYW1lID09PSB1bmRlZmluZWQpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignUmVnaXN0ZXJlZCBldmVudHMgbXVzdCBwcm92aWRlICcgKwotICAgICAgICAgICAgICAgICAgICAgICdtdWx0aVZpZXdFbGVtZW50TmFtZSBtZXRhZGF0YScpOwotICAgIH0KLSAgfSk7Ci0KLSAgLy8gSGVscGVyOiBsb29rdXAgRXZlbnRzIGluZGV4ZWQgYnkgdHlwZSBuYW1lLgotICB2YXIgZXZlbnRzQnlUeXBlTmFtZSA9IHVuZGVmaW5lZDsKLSAgRXZlbnRSZWdpc3RyeS5nZXRFdmVudFR5cGVJbmZvQnlUeXBlTmFtZSA9IGZ1bmN0aW9uKHR5cGVOYW1lKSB7Ci0gICAgaWYgKGV2ZW50c0J5VHlwZU5hbWUgPT09IHVuZGVmaW5lZCkgewotICAgICAgZXZlbnRzQnlUeXBlTmFtZSA9IHt9OwotICAgICAgRXZlbnRSZWdpc3RyeS5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCkuZm9yRWFjaChmdW5jdGlvbih0eXBlSW5mbykgewotICAgICAgICBldmVudHNCeVR5cGVOYW1lW3R5cGVJbmZvLm1ldGFkYXRhLm5hbWVdID0gdHlwZUluZm87Ci0gICAgICB9KTsKLSAgICB9Ci0gICAgcmV0dXJuIGV2ZW50c0J5VHlwZU5hbWVbdHlwZU5hbWVdOwotICB9Ci0KLSAgLy8gRW5zdXJlIGV2ZW50c0J5VHlwZU5hbWUgc3RheXMgY3VycmVudC4KLSAgRXZlbnRSZWdpc3RyeS5hZGRFdmVudExpc3RlbmVyKCdyZWdpc3RyeS1jaGFuZ2VkJywgZnVuY3Rpb24oKSB7Ci0gICAgZXZlbnRzQnlUeXBlTmFtZSA9IHVuZGVmaW5lZDsKLSAgfSk7Ci0KLSAgZnVuY3Rpb24gY29udmVydENhbWVsQ2FzZVRvVGl0bGVDYXNlKG5hbWUpIHsKLSAgICB2YXIgcmVzdWx0ID0gbmFtZS5yZXBsYWNlKC9bQS1aXS9nLCAnICQmJyk7Ci0gICAgcmVzdWx0ID0gcmVzdWx0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcmVzdWx0LnNsaWNlKDEpOwotICAgIHJldHVybiByZXN1bHQ7Ci0gIH0KLQotICBFdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVNpbmd1bGFyTmFtZSA9IGZ1bmN0aW9uKHR5cGVOYW1lKSB7Ci0gICAgdmFyIHR5cGVJbmZvID0gRXZlbnRSZWdpc3RyeS5nZXRFdmVudFR5cGVJbmZvQnlUeXBlTmFtZSh0eXBlTmFtZSk7Ci0gICAgdmFyIHN0ciA9IHR5cGVJbmZvLm1ldGFkYXRhLm5hbWU7Ci0gICAgcmV0dXJuIGNvbnZlcnRDYW1lbENhc2VUb1RpdGxlQ2FzZShzdHIpOwotICB9OwotCi0gIEV2ZW50UmVnaXN0cnkuZ2V0VXNlckZyaWVuZGx5UGx1cmFsTmFtZSA9IGZ1bmN0aW9uKHR5cGVOYW1lKSB7Ci0gICAgdmFyIHR5cGVJbmZvID0gRXZlbnRSZWdpc3RyeS5nZXRFdmVudFR5cGVJbmZvQnlUeXBlTmFtZSh0eXBlTmFtZSk7Ci0gICAgdmFyIHN0ciA9IHR5cGVJbmZvLm1ldGFkYXRhLnBsdXJhbE5hbWU7Ci0gICAgcmV0dXJuIGNvbnZlcnRDYW1lbENhc2VUb1RpdGxlQ2FzZShzdHIpOwotICB9OwotCi0gIHJldHVybiB7Ci0gICAgRXZlbnQ6IEV2ZW50LAotICAgIEV2ZW50UmVnaXN0cnk6IEV2ZW50UmVnaXN0cnkKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2V2ZW50X2NvbnRhaW5lci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUzMWI0Yy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2V2ZW50X2NvbnRhaW5lci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIGJhc2UgY2xhc3MgZm9yIGFsbCBjb250YWluZXIgY2xhc3Nlcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIEV2ZW50Q29udGFpbmVyKCkgewotICAgIHRoaXMuaW1wb3J0YW50ID0gdHJ1ZTsKLSAgICB0aGlzLmJvdW5kcyA9IHVuZGVmaW5lZDsKLSAgfQotCi0gIEV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSA9IHsKLSAgICAvKgotICAgICAqIEByZXR1cm4ge1N0cmluZ30gQW4gaWRlbnRpZmllciB0aGF0IGlzIG1hZGUgdXAgb2YgdGhpcyBwYXJlbnQncwotICAgICAqICAgIHN0YWJsZUlkZW50aWZpZXIgcGx1cyB0aGlzIGNvdW50YWluZXIgaWRlbnRpZmllci4KLSAgICAgKi8KLSAgICBnZXQgc3RhYmxlSWQoKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0sCi0KLSAgICB1cGRhdGVCb3VuZHM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOiBmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSXRlcmF0ZXMgYWxsIGV2ZW50cyBpbiB0aGUgbW9kZWwgYW5kIGNhbGxzIGNhbGxiYWNrIG9uIGVhY2ggZXZlbnQuCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihldmVudCl9IGNhbGxiYWNrIFRoZSBjYWxsYmFjayBjYWxsZWQgZm9yIGV2ZXJ5IGV2ZW50LgotICAgICAqLwotICAgIGl0ZXJhdGVBbGxFdmVudHM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgICAgdGhpcy5pdGVyYXRlQWxsRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGVjKSB7Ci0gICAgICAgIGVjLml0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXIoCi0gICAgICAgICAgICBmdW5jdGlvbihldmVudFR5cGUpIHsgcmV0dXJuIHRydWU7IH0sCi0gICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgICAgZnVuY3Rpb24gdmlzaXQoZWMpIHsKLSAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgZWMpOwotICAgICAgICBlYy5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnModmlzaXQpOwotICAgICAgfQotICAgICAgdmlzaXQodGhpcyk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgRXZlbnRDb250YWluZXI6IEV2ZW50Q29udGFpbmVyCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9ldmVudF9pbmZvLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2V2ZW50X2luZm8uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRmOWNmYi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2V2ZW50X2luZm8uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VpL2NvbG9yX3NjaGVtZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0KLSAgLyoqCi0gICAqIEV2ZW50SW5mbyBpcyBhbiBhbm5vdGF0aW9uIGFkZGVkIHRvIEV2ZW50cyBpbiBvcmRlciB0byBkb2N1bWVudAotICAgKiB3aGF0IHRoZXkgcmVwcmVzZW50LCBhbmQgb3ZlcnJpZGUgdGhlaXIgdGl0bGUvY29sb3JJZCB2YWx1ZXMuCi0gICAqCi0gICAqIFRPRE8oY2NyYWlrKTogZXZlbnR1YWxseSBzdXBwb3J0IG1vcmUgY29tcGxleCBzdHJ1Y3R1cmUvcGFyYWdyYXBocy4KLSAgICoKLSAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIEEgdXNlci12aXNpYmxlIHRpdGxlIGZvciB0aGUgZXZlbnQuCi0gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbiBBIHVzZXItdmlzaWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgZXZlbnQuCi0gICAqIEBwYXJhbSB7QXJyYXl9IGRvY0xpbmtzIEEgbGlzdCBvZiBPYmplY3RzLCBlYWNoIG9mIHRoZSBmb3JtCi0gICAqIHtsYWJlbDogc3RyLCB0ZXh0Q29udGVudDogc3RyLCBocmVmOiBzdHJ9Ci0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gRXZlbnRJbmZvKHRpdGxlLCBkZXNjcmlwdGlvbiwgZG9jTGlua3MpIHsKLSAgICB0aGlzLnRpdGxlID0gdGl0bGU7Ci0gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwotICAgIHRoaXMuZG9jTGlua3MgPSBkb2NMaW5rczsKLSAgICB0aGlzLmNvbG9ySWQgPSB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aXRsZSk7Ci0gIH0KLQotICByZXR1cm4gewotICAgIEV2ZW50SW5mbzogRXZlbnRJbmZvCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9mbG93X2V2ZW50Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2Zsb3dfZXZlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2E2YWNiYS4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2Zsb3dfZXZlbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RpbWVkX2V2ZW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgRmxvdyBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBBIEZsb3cgcmVwcmVzZW50cyBhbiBpbnRlcnZhbCBvZiB0aW1lIHBsdXMgcGFyYW1ldGVycyBhc3NvY2lhdGVkCi0gICAqIHdpdGggdGhhdCBpbnRlcnZhbC4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBGbG93RXZlbnQoY2F0ZWdvcnksIGlkLCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MsIG9wdF9kdXJhdGlvbikgewotICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7Ci0KLSAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnkgfHwgJyc7Ci0gICAgdGhpcy50aXRsZSA9IHRpdGxlOwotICAgIHRoaXMuY29sb3JJZCA9IGNvbG9ySWQ7Ci0gICAgdGhpcy5zdGFydCA9IHN0YXJ0OwotICAgIHRoaXMuYXJncyA9IGFyZ3M7Ci0KLSAgICB0aGlzLmlkID0gaWQ7Ci0KLSAgICB0aGlzLnN0YXJ0U2xpY2UgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5lbmRTbGljZSA9IHVuZGVmaW5lZDsKLQotICAgIGlmIChvcHRfZHVyYXRpb24gIT09IHVuZGVmaW5lZCkKLSAgICAgIHRoaXMuZHVyYXRpb24gPSBvcHRfZHVyYXRpb247Ci0gIH0KLQotICBGbG93RXZlbnQucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsCi0KLSAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKLSAgICAgIHJldHVybiAnRmxvdyBldmVudCBuYW1lZCAnICsgdGhpcy50aXRsZSArICcgYXQgJyArCi0gICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnRpbWVzdGFtcCk7Ci0gICAgfQotICB9OwotCi0gIHRyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoCi0gICAgICBGbG93RXZlbnQsCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdmbG93RXZlbnQnLAotICAgICAgICBwbHVyYWxOYW1lOiAnZmxvd0V2ZW50cycsCi0gICAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldycsCi0gICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItYy1hLW11bHRpLWZsb3ctZXZlbnQtc3ViLXZpZXcnCi0gICAgICB9KTsKLQotICByZXR1cm4gewotICAgIEZsb3dFdmVudDogRmxvd0V2ZW50Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2ZyYW1lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2ZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlOGY5ZTQuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9mcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvY29sb3Jfc2NoZW1lLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgQ2xhc3MgZGVzY3JpYmluZyByZW5kZXJlZCBmcmFtZXMuCi0gKgotICogQmVjYXVzZSBhIGZyYW1lIGlzIHByb2R1Y2VkIGJ5IG11bHRpcGxlIHRocmVhZHMsIGl0IGRvZXMgbm90IGluaGVyaXQgZnJvbQotICogVGltZWRFdmVudCwgYW5kIGhhcyBubyBkdXJhdGlvbi4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBTdGF0aXN0aWNzID0gdHIuYi5TdGF0aXN0aWNzOwotCi0gIHZhciBGUkFNRV9QRVJGX0NMQVNTID0gewotICAgIEdPT0Q6ICdnb29kJywKLSAgICBCQUQ6ICdiYWQnLAotICAgIFRFUlJJQkxFOiAndGVycmlibGUnLAotICAgIE5FVVRSQUw6ICdnZW5lcmljX3dvcmsnCi0gIH07Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKiBAcGFyYW0ge0FycmF5fSBhc3NvY2lhdGVkRXZlbnRzIEFycmF5IG9mIGV2ZW50cyBjb21wb3NpbmcgdGhlIGZyYW1lLgotICAgKiBAcGFyYW0ge0FycmF5fSB0aHJlYWRUaW1lUmFuZ2VzIEFycmF5IG9mIHt0aHJlYWQsIHN0YXJ0LCBlbmR9Ci0gICAqIGZvciBlYWNoIHRocmVhZCwgZGVzY3JpYmluZyB0aGUgY3JpdGljYWwgcGF0aCBvZiB0aGUgZnJhbWUuCi0gICAqLwotICBmdW5jdGlvbiBGcmFtZShhc3NvY2lhdGVkRXZlbnRzLCB0aHJlYWRUaW1lUmFuZ2VzLCBvcHRfYXJncykgewotICAgIHRyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7Ci0KLSAgICB0aGlzLnRocmVhZFRpbWVSYW5nZXMgPSB0aHJlYWRUaW1lUmFuZ2VzOwotICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50cyA9IGFzc29jaWF0ZWRFdmVudHM7Ci0gICAgdGhpcy5hcmdzID0gb3B0X2FyZ3MgfHwge307Ci0KLSAgICB0aGlzLnRpdGxlID0gJ0ZyYW1lJzsKLSAgICB0aGlzLnN0YXJ0ID0gU3RhdGlzdGljcy5taW4oCi0gICAgICAgIHRocmVhZFRpbWVSYW5nZXMsIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguc3RhcnQ7IH0pOwotICAgIHRoaXMuZW5kID0gU3RhdGlzdGljcy5tYXgoCi0gICAgICAgIHRocmVhZFRpbWVSYW5nZXMsIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguZW5kOyB9KTsKLSAgICB0aGlzLnRvdGFsRHVyYXRpb24gPSBTdGF0aXN0aWNzLnN1bSgKLSAgICAgICAgdGhyZWFkVGltZVJhbmdlcywgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5lbmQgLSB4LnN0YXJ0OyB9KTsKLQotICAgIHRoaXMucGVyZkNsYXNzID0gRlJBTUVfUEVSRl9DTEFTUy5ORVVUUkFMOwotICB9OwotCi0gIEZyYW1lLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50LnByb3RvdHlwZSwKLQotICAgIHNldCBwZXJmQ2xhc3MocGVyZkNsYXNzKSB7Ci0gICAgICB0aGlzLmNvbG9ySWQgPSB0ci5iLnVpLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUocGVyZkNsYXNzKTsKLSAgICAgIHRoaXMucGVyZkNsYXNzXyA9IHBlcmZDbGFzczsKLSAgICB9LAotCi0gICAgZ2V0IHBlcmZDbGFzcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnBlcmZDbGFzc187Ci0gICAgfSwKLQotICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgewotICAgICAgdGhpcy5zdGFydCArPSBhbW91bnQ7Ci0gICAgICB0aGlzLmVuZCArPSBhbW91bnQ7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50aHJlYWRUaW1lUmFuZ2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHRoaXMudGhyZWFkVGltZVJhbmdlc1tpXS5zdGFydCArPSBhbW91bnQ7Ci0gICAgICAgIHRoaXMudGhyZWFkVGltZVJhbmdlc1tpXS5lbmQgKz0gYW1vdW50OwotICAgICAgfQotICAgIH0sCi0KLSAgICBhZGRCb3VuZHNUb1JhbmdlOiBmdW5jdGlvbihyYW5nZSkgewotICAgICAgcmFuZ2UuYWRkVmFsdWUodGhpcy5zdGFydCk7Ci0gICAgICByYW5nZS5hZGRWYWx1ZSh0aGlzLmVuZCk7Ci0gICAgfQotICB9OwotCi0gIHRyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoCi0gICAgICBGcmFtZSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ2ZyYW1lJywKLSAgICAgICAgcGx1cmFsTmFtZTogJ2ZyYW1lcycsCi0gICAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1zaW5nbGUtZnJhbWUtc3ViLXZpZXcnLAotICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1tdWx0aS1mcmFtZS1zdWItdmlldycKLSAgICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgRnJhbWU6IEZyYW1lLAotICAgIEZSQU1FX1BFUkZfQ0xBU1M6IEZSQU1FX1BFUkZfQ0xBU1MKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2dsb2JhbF9tZW1vcnlfZHVtcC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRhYWY4Mi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2dsb2JhbF9tZW1vcnlfZHVtcC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgR2xvYmFsTWVtb3J5RHVtcCBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBUaGUgR2xvYmFsTWVtb3J5RHVtcCByZXByZXNlbnRzIGEgc2ltdWx0YW5lb3VzIG1lbW9yeSBkdW1wIG9mIGFsbAotICAgKiBwcm9jZXNzZXMuCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gR2xvYmFsTWVtb3J5RHVtcChtb2RlbCwgc3RhcnQpIHsKLSAgICB0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLmNhbGwodGhpcywgc3RhcnQpOwotICAgIHRoaXMubW9kZWwgPSBtb2RlbDsKLSAgICB0aGlzLnByb2Nlc3NNZW1vcnlEdW1wcyA9IHt9OwotICB9Ci0KLSAgR2xvYmFsTWVtb3J5RHVtcC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLnByb3RvdHlwZSwKLQotICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgewotICAgICAgcmV0dXJuICdHbG9iYWwgbWVtb3J5IGR1bXAgJyArICcgYXQgJyArCi0gICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnN0YXJ0KTsKLSAgICB9LAotCi0gICAgY2FsY3VsYXRlR3JhcGhBdHRyaWJ1dGVzOiBmdW5jdGlvbigpIHsKLSAgICAgIC8vIFRPRE8ocGV0cmNlcm1hayk6IENhbGN1bGF0ZSBzaXplcyB1c2luZyB0aGUgZ3JhcGguCi0KLSAgICAgIHRoaXMuYWdncmVnYXRlTWVtb3J5QWxsb2NhdG9yRHVtcEF0dHJpYnV0ZXModGhpcy5tb2RlbCk7Ci0gICAgICB0ci5iLml0ZXJJdGVtcyh0aGlzLnByb2Nlc3NNZW1vcnlEdW1wcywgZnVuY3Rpb24ocGlkLCBkdW1wKSB7Ci0gICAgICAgIGR1bXAuYWdncmVnYXRlTWVtb3J5QWxsb2NhdG9yRHVtcEF0dHJpYnV0ZXModGhpcy5tb2RlbCk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ29uc2lkZXIgZmFjdG9yaW5nIG91dCBhbGwgdGhlIGZpbmFsaXphdGlvbiBjb2RlIGFuZAotICAgICAgLy8gY29uc3RhbnRzIHRvIGEgc2luZ2xlIGZpbGUuCi0gICAgICB0ci5iLml0ZXJJdGVtcyh0aGlzLnByb2Nlc3NNZW1vcnlEdW1wcywgZnVuY3Rpb24ocGlkLCBkdW1wKSB7Ci0gICAgICAgIGR1bXAuZGlzY291bnRUcmFjaW5nT3ZlcmhlYWQodGhpcy5tb2RlbCk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9Ci0gIH07Ci0KLSAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgIEdsb2JhbE1lbW9yeUR1bXAsCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdnbG9iYWxNZW1vcnlEdW1wJywKLSAgICAgICAgcGx1cmFsTmFtZTogJ2dsb2JhbE1lbW9yeUR1bXBzJywKLSAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItYy1hLXNpbmdsZS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXcnLAotICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1tdWx0aS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXcnCi0gICAgICB9KTsKLQotICByZXR1cm4gewotICAgIEdsb2JhbE1lbW9yeUR1bXA6IEdsb2JhbE1lbW9yeUR1bXAKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2luc3RhbnRfZXZlbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjcyZWRlLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBJbnN0YW50RXZlbnQgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICB2YXIgSW5zdGFudEV2ZW50VHlwZSA9IHsKLSAgICBHTE9CQUw6IDEsCi0gICAgUFJPQ0VTUzogMgotICB9OwotCi0gIGZ1bmN0aW9uIEluc3RhbnRFdmVudChjYXRlZ29yeSwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzKSB7Ci0gICAgdHIubW9kZWwuVGltZWRFdmVudC5jYWxsKHRoaXMpOwotCi0gICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5IHx8ICcnOwotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgICB0aGlzLmNvbG9ySWQgPSBjb2xvcklkOwotICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKLSAgICB0aGlzLmFyZ3MgPSBhcmdzOwotCi0gICAgdGhpcy50eXBlID0gdW5kZWZpbmVkOwotICB9OwotCi0gIEluc3RhbnRFdmVudC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZQotICB9OwotCi0gIGZ1bmN0aW9uIEdsb2JhbEluc3RhbnRFdmVudChjYXRlZ29yeSwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzKSB7Ci0gICAgSW5zdGFudEV2ZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgdGhpcy50eXBlID0gSW5zdGFudEV2ZW50VHlwZS5HTE9CQUw7Ci0gIH07Ci0KLSAgR2xvYmFsSW5zdGFudEV2ZW50LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IEluc3RhbnRFdmVudC5wcm90b3R5cGUsCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ0dsb2JhbCBpbnN0YW50IGV2ZW50ICcgKyB0aGlzLnRpdGxlICsgJyBAICcgKwotICAgICAgICAgIHRoaXMudHNTdHJpbmcoc3RhcnQpOwotICAgIH0KLSAgfTsKLQotICBmdW5jdGlvbiBQcm9jZXNzSW5zdGFudEV2ZW50KGNhdGVnb3J5LCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MpIHsKLSAgICBJbnN0YW50RXZlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICB0aGlzLnR5cGUgPSBJbnN0YW50RXZlbnRUeXBlLlBST0NFU1M7Ci0gIH07Ci0KLSAgUHJvY2Vzc0luc3RhbnRFdmVudC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBJbnN0YW50RXZlbnQucHJvdG90eXBlLAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ1Byb2Nlc3MtbGV2ZWwgaW5zdGFudCBldmVudCAnICsgdGhpcy50aXRsZSArICcgQCAnICsKLSAgICAgICAgICB0aGlzLnRzU3RyaW5nKHN0YXJ0KTsKLSAgICB9Ci0gIH07Ci0KLSAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgIEluc3RhbnRFdmVudCwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ2luc3RhbnRFdmVudCcsCi0gICAgICAgIHBsdXJhbE5hbWU6ICdpbnN0YW50RXZlbnRzJywKLSAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItYy1hLXNpbmdsZS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3JywKLSAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtbXVsdGktaW5zdGFudC1ldmVudC1zdWItdmlldycKLSAgICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgR2xvYmFsSW5zdGFudEV2ZW50OiBHbG9iYWxJbnN0YW50RXZlbnQsCi0gICAgUHJvY2Vzc0luc3RhbnRFdmVudDogUHJvY2Vzc0luc3RhbnRFdmVudCwKLQotICAgIEluc3RhbnRFdmVudFR5cGU6IEluc3RhbnRFdmVudFR5cGUsCi0gICAgSW5zdGFudEV2ZW50OiBJbnN0YW50RXZlbnQKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2ludGVyYWN0aW9uX3JlY29yZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWI0ODYwLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdXRpbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIGZ1bmN0aW9uIEludGVyYWN0aW9uUmVjb3JkKHRpdGxlLCBjb2xvcklkLCBzdGFydCwgZHVyYXRpb24pIHsKLSAgICB0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcywgc3RhcnQpOwotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgICB0aGlzLmNvbG9ySWQgPSBjb2xvcklkOwotICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjsKLSAgICB0aGlzLmFyZ3MgPSB7fTsKLSAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHMgPSBbXTsKLSAgfQotICBJbnRlcmFjdGlvblJlY29yZC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSwKLQotICAgIGdldCBzdWJTbGljZXMoKSB7Ci0gICAgICByZXR1cm4gW107Ci0gICAgfSwKLQotICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgewotICAgICAgcmV0dXJuIHRoaXMudGl0bGUgKyAnIGludGVyYWN0aW9uIGF0ICcgKwotICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcodGhpcy5zdGFydCk7Ci0gICAgfQotICB9OwotCi0gIHRyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoCi0gICAgICBJbnRlcmFjdGlvblJlY29yZCwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ2ludGVyYWN0aW9uJywKLSAgICAgICAgcGx1cmFsTmFtZTogJ2ludGVyYWN0aW9ucycsCi0gICAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1zaW5nbGUtaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3JywKLSAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtbXVsdGktaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3JwotICAgICAgfSk7Ci0KLSAgcmV0dXJuIHsKLSAgICBJbnRlcmFjdGlvblJlY29yZDogSW50ZXJhY3Rpb25SZWNvcmQKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2tlcm5lbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9rZXJuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RjY2E3MC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2tlcm5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NwdS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFByb2Nlc3MgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICB2YXIgQ3B1ID0gdHIubW9kZWwuQ3B1OwotICB2YXIgUHJvY2Vzc0Jhc2UgPSB0ci5tb2RlbC5Qcm9jZXNzQmFzZTsKLQotICAvKioKLSAgICogVGhlIEtlcm5lbCByZXByZXNlbnRzIGtlcm5lbC1sZXZlbCBvYmplY3RzIGluIHRoZSBtb2RlbC4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBLZXJuZWwobW9kZWwpIHsKLSAgICBQcm9jZXNzQmFzZS5jYWxsKHRoaXMsIG1vZGVsKTsKLQotICAgIHRoaXMuY3B1cyA9IHt9OwotICAgIHRoaXMuc29mdHdhcmVNZWFzdXJlZENwdUNvdW50XyA9IHVuZGVmaW5lZDsKLSAgfTsKLQotICAvKioKLSAgICogQ29tcGFyaXNvbiBiZXR3ZWVuIGtlcm5lbHMgaXMgcHJldHR5IG1lYW5pbmdsZXNzLgotICAgKi8KLSAgS2VybmVsLmNvbXBhcmUgPSBmdW5jdGlvbih4LCB5KSB7Ci0gICAgcmV0dXJuIDA7Ci0gIH07Ci0KLSAgS2VybmVsLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFByb2Nlc3NCYXNlLnByb3RvdHlwZSwKLQotICAgIGNvbXBhcmVUbzogZnVuY3Rpb24odGhhdCkgewotICAgICAgcmV0dXJuIEtlcm5lbC5jb21wYXJlKHRoaXMsIHRoYXQpOwotICAgIH0sCi0KLSAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKLSAgICAgIHJldHVybiAnS2VybmVsJzsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseURldGFpbHMoKSB7Ci0gICAgICByZXR1cm4gJ0tlcm5lbCc7Ci0gICAgfSwKLQotICAgIGdldCBzdGFibGVJZCgpIHsKLSAgICAgIHJldHVybiAnS2VybmVsJzsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7Q3B1fSBHZXRzIGEgc3BlY2lmaWMgQ3B1IG9yIGNyZWF0ZXMgb25lIGlmCi0gICAgICogaXQgZG9lcyBub3QgZXhpc3QuCi0gICAgICovCi0gICAgZ2V0T3JDcmVhdGVDcHU6IGZ1bmN0aW9uKGNwdU51bWJlcikgewotICAgICAgaWYgKCF0aGlzLmNwdXNbY3B1TnVtYmVyXSkKLSAgICAgICAgdGhpcy5jcHVzW2NwdU51bWJlcl0gPSBuZXcgQ3B1KHRoaXMsIGNwdU51bWJlcik7Ci0gICAgICByZXR1cm4gdGhpcy5jcHVzW2NwdU51bWJlcl07Ci0gICAgfSwKLQotICAgIGdldCBzb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfOwotICAgIH0sCi0KLSAgICBzZXQgc29mdHdhcmVNZWFzdXJlZENwdUNvdW50KHNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCkgewotICAgICAgaWYgKHRoaXMuc29mdHdhcmVNZWFzdXJlZENwdUNvdW50XyAhPT0gdW5kZWZpbmVkICYmCi0gICAgICAgICAgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfICE9PSBzb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKAotICAgICAgICAgICAgJ0Nhbm5vdCBjaGFuZ2UgdGhlIHNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCBvbmNlIGl0IGlzIHNldCcpOwotICAgICAgfQotCi0gICAgICB0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF8gPSBzb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQ7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEVzdGltYXRlcyBob3cgbWFueSBjcHVzIGFyZSBpbiB0aGUgc3lzdGVtLCBmb3IgdXNlIGluIHN5c3RlbSBsb2FkCi0gICAgICogZXN0aW1hdGlvbi4KLSAgICAgKgotICAgICAqIElmIGtlcm5lbCB0cmFjZSB3YXMgcHJvdmlkZWQsIHVzZXMgdGhhdCBkYXRhLiBPdGhlcndpc2UsIHVzZXMgdGhlCi0gICAgICogc29mdHdhcmUgbWVhc3VyZWQgY3B1IGNvdW50LgotICAgICAqLwotICAgIGdldCBiZXN0R3Vlc3NBdENwdUNvdW50KCkgewotICAgICAgdmFyIHJlYWxDcHVDb3VudCA9IHRyLmIuZGljdGlvbmFyeUxlbmd0aCh0aGlzLmNwdXMpOwotICAgICAgaWYgKHJlYWxDcHVDb3VudCAhPT0gMCkKLSAgICAgICAgcmV0dXJuIHJlYWxDcHVDb3VudDsKLSAgICAgIHJldHVybiB0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudDsKLSAgICB9LAotCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICBQcm9jZXNzQmFzZS5wcm90b3R5cGUuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZC5jYWxsKHRoaXMsIGFtb3VudCk7Ci0gICAgICBmb3IgKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5jcHVzKQotICAgICAgICB0aGlzLmNwdXNbY3B1TnVtYmVyXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7Ci0gICAgICBQcm9jZXNzQmFzZS5wcm90b3R5cGUudXBkYXRlQm91bmRzLmNhbGwodGhpcyk7Ci0gICAgICBmb3IgKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5jcHVzKSB7Ci0gICAgICAgIHZhciBjcHUgPSB0aGlzLmNwdXNbY3B1TnVtYmVyXTsKLSAgICAgICAgY3B1LnVwZGF0ZUJvdW5kcygpOwotICAgICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZShjcHUuYm91bmRzKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKLSAgICAgIFByb2Nlc3NCYXNlLnByb3RvdHlwZS5jcmVhdGVTdWJTbGljZXMuY2FsbCh0aGlzKTsKLSAgICAgIGZvciAodmFyIGNwdU51bWJlciBpbiB0aGlzLmNwdXMpIHsKLSAgICAgICAgdmFyIGNwdSA9IHRoaXMuY3B1c1tjcHVOdW1iZXJdOwotICAgICAgICBjcHUuY3JlYXRlU3ViU2xpY2VzKCk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGFkZENhdGVnb3JpZXNUb0RpY3Q6IGZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KSB7Ci0gICAgICBQcm9jZXNzQmFzZS5wcm90b3R5cGUuYWRkQ2F0ZWdvcmllc1RvRGljdC5jYWxsKHRoaXMsIGNhdGVnb3JpZXNEaWN0KTsKLSAgICAgIGZvciAodmFyIGNwdU51bWJlciBpbiB0aGlzLmNwdXMpCi0gICAgICAgIHRoaXMuY3B1c1tjcHVOdW1iZXJdLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpOwotICAgIH0sCi0KLSAgICBnZXRTZXR0aW5nc0tleTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gJ2tlcm5lbCc7Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICBQcm9jZXNzQmFzZS5wcm90b3R5cGUuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzLmNhbGwoCi0gICAgICAgICAgdGhpcywgY2FsbGJhY2ssIG9wdF90aGlzKTsKLSAgICAgIGZvciAodmFyIGNwdUlkIGluIHRoaXMuY3B1cykKLSAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5jcHVzW2NwdUlkXSk7Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIFByb2Nlc3NCYXNlLnByb3RvdHlwZS5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyLmNhbGwoCi0gICAgICAgICAgdGhpcywgZXZlbnRUeXBlUHJlZGljYXRlLCBjYWxsYmFjaywgb3B0X3RoaXMpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIEtlcm5lbDogS2VybmVsCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9rZXJuZWxfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9rZXJuZWxfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDAwOTZmLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwva2VybmVsX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9rZXJuZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB0ZXN0KCdiZXN0R3Vlc3NBdENwdUNvdW50V2l0aE5vRGF0YScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG0ua2VybmVsLmJlc3RHdWVzc0F0Q3B1Q291bnQpOwotICB9KTsKLQotICB0ZXN0KCdiZXN0R3Vlc3NBdENwdUNvdW50V2l0aENwdURhdGEnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGMxID0gbS5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoMSk7Ci0gICAgICB2YXIgYzIgPSBtLmtlcm5lbC5nZXRPckNyZWF0ZUNwdSgyKTsKLSAgICB9KTsKLSAgICBhc3NlcnQuZXF1YWwobS5rZXJuZWwuYmVzdEd1ZXNzQXRDcHVDb3VudCwgMik7Ci0gIH0pOwotCi0gIHRlc3QoJ2Jlc3RHdWVzc0F0Q3B1Q291bnRXaXRoU29mdHdhcmVDcHVDb3VudCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7Ci0gICAgICBtLmtlcm5lbC5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQgPSAyOwotICAgIH0pOwotICAgIGFzc2VydC5lcXVhbChtLmtlcm5lbC5iZXN0R3Vlc3NBdENwdUNvdW50LCAyKTsKLSAgfSk7Ci0KLSAgdGVzdCgna2VybmVsU3RhYmxlSWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLQotICAgIGFzc2VydC5lcXVhbChtb2RlbC5rZXJuZWwuc3RhYmxlSWQsICdLZXJuZWwnKTsKLSAgfSk7Ci0KLSAgdGVzdCgna2VybmVsVGltZVNoaWZ0aW5nJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGltcG9ydE9wdGlvbnMgPSBuZXcgdHIuSW1wb3J0T3B0aW9ucygpOwotICAgIGltcG9ydE9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybyA9IHRydWU7Ci0gICAgaW1wb3J0T3B0aW9ucy5wcnVuZUVtcHR5Q29udGFpbmVycyA9IGZhbHNlOwotICAgIGltcG9ydE9wdGlvbnMuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGZ1bmN0aW9uKG0pIHsKLSAgICAgIHZhciBjdHIgPSBtLmtlcm5lbC5nZXRPckNyZWF0ZUNvdW50ZXIoJ2NhdCcsICdjdHInKTsKLSAgICAgIHZhciBjMCA9IG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdhJywgMCk7Ci0gICAgICBjdHIuYWRkU2VyaWVzKGMwKTsKLSAgICAgIGMwLmFkZENvdW50ZXJTYW1wbGUoMTAwLCA1KTsKLSAgICAgIGMwLmFkZENvdW50ZXJTYW1wbGUoMjAwLCA1KTsKLSAgICB9OwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKFtdLCBpbXBvcnRPcHRpb25zKTsKLSAgICB2YXIgY3RyID0gbS5rZXJuZWwuY291bnRlcnNbJ2NhdC5jdHInXTsKLSAgICBhc3NlcnQuZXF1YWwoY3RyLnNlcmllc1swXS5zYW1wbGVzWzBdLnRpbWVzdGFtcCwgMCk7Ci0gICAgY3RyLnNlcmllc1swXS5zYW1wbGVzWzBdLnRzID09IDEwMDsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhhMDliOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXR0cmlidXRlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIE1lbW9yeUFsbG9jYXRvckR1bXAgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBNZW1vcnlBbGxvY2F0b3JEdW1wKGNvbnRhaW5lck1lbW9yeUR1bXAsIGZ1bGxOYW1lLCBvcHRfZ3VpZCkgewotICAgIHRoaXMuZnVsbE5hbWUgPSBmdWxsTmFtZTsKLSAgICB0aGlzLnBhcmVudCA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLmNoaWxkcmVuID0gW107Ci0gICAgdGhpcy5hdHRyaWJ1dGVzID0ge307Ci0KLSAgICAvLyBUaGUgYXNzb2NpYXRlZCBjb250YWluZXIgbWVtb3J5IGR1bXAuCi0gICAgdGhpcy5jb250YWluZXJNZW1vcnlEdW1wID0gY29udGFpbmVyTWVtb3J5RHVtcDsKLQotICAgIC8vIE93bmVyc2hpcCByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgotICAgIHRoaXMub3ducyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLm93bmVkQnkgPSBbXTsKLQotICAgIC8vIFJldGVudGlvbiByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgotICAgIHRoaXMucmV0YWlucyA9IFtdOwotICAgIHRoaXMucmV0YWluZWRCeSA9IFtdOwotCi0gICAgLy8gRm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KLSAgICB0aGlzLmd1aWQgPSBvcHRfZ3VpZDsKLSAgfTsKLQotICBNZW1vcnlBbGxvY2F0b3JEdW1wLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgbmFtZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLmZ1bGxOYW1lLnN1YnN0cmluZyh0aGlzLmZ1bGxOYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKLSAgICB9LAotCi0gICAgYWRkQXR0cmlidXRlOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewotICAgICAgaWYgKG5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0R1cGxpY2F0ZSBhdHRyaWJ1dGUgbmFtZTogJyArIG5hbWUgKyAnLicpOwotICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7Ci0gICAgfSwKLQotICAgIGFnZ3JlZ2F0ZUF0dHJpYnV0ZXM6IGZ1bmN0aW9uKG9wdF9tb2RlbCkgewotICAgICAgdmFyIGF0dHJpYnV0ZXMgPSB7fTsKLQotICAgICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkKSB7Ci0gICAgICAgIGNoaWxkLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXMob3B0X21vZGVsKTsKLSAgICAgICAgdHIuYi5pdGVySXRlbXMoY2hpbGQuYXR0cmlidXRlcywgZnVuY3Rpb24obmFtZSkgewotICAgICAgICAgIGF0dHJpYnV0ZXNbbmFtZV0gPSB0cnVlOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICB0ci5iLml0ZXJJdGVtcyhhdHRyaWJ1dGVzLCBmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgIHZhciBjaGlsZEF0dHJpYnV0ZXMgPSB0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbihjaGlsZCkgewotICAgICAgICAgIHJldHVybiBjaGlsZC5hdHRyaWJ1dGVzW25hbWVdOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgICAgdmFyIGN1cnJlbnRBdHRyaWJ1dGUgPSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07Ci0gICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHRyLm1vZGVsLkF0dHJpYnV0ZS5hZ2dyZWdhdGUoCi0gICAgICAgICAgICBjaGlsZEF0dHJpYnV0ZXMsIGN1cnJlbnRBdHRyaWJ1dGUsIG9wdF9tb2RlbCk7Ci0gICAgICB9LCB0aGlzKTsKLSAgICB9Ci0gIH07Ci0KLSAgLyoqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gTWVtb3J5QWxsb2NhdG9yRHVtcExpbmsoc291cmNlLCB0YXJnZXQsIG9wdF9pbXBvcnRhbmNlKSB7Ci0gICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7Ci0gICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7Ci0gICAgdGhpcy5pbXBvcnRhbmNlID0gb3B0X2ltcG9ydGFuY2U7Ci0gIH0KLQotICByZXR1cm4gewotICAgIE1lbW9yeUFsbG9jYXRvckR1bXA6IE1lbW9yeUFsbG9jYXRvckR1bXAsCi0gICAgTWVtb3J5QWxsb2NhdG9yRHVtcExpbms6IE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXBfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXBfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTU3YjA5Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbWVtb3J5X2FsbG9jYXRvcl9kdW1wX3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgQ29udGFpbmVyTWVtb3J5RHVtcCA9IHRyLm1vZGVsLkNvbnRhaW5lck1lbW9yeUR1bXA7Ci0gIHZhciBNZW1vcnlBbGxvY2F0b3JEdW1wID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcDsKLSAgdmFyIE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcExpbms7Ci0gIHZhciBTY2FsYXJBdHRyaWJ1dGUgPSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGU7Ci0KLSAgZnVuY3Rpb24gc2V0VXBQYXJlbnRDaGlsZFJlbGF0aW9uc2hpcChwYXJlbnQsIGNoaWxkKSB7Ci0gICAgY2hpbGQucGFyZW50ID0gcGFyZW50OwotICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKGNoaWxkKTsKLSAgfQotCi0gIHRlc3QoJ21lbW9yeUFsbG9jYXRvckR1bXBzX2FnZ3JlZ2F0ZUF0dHJpYnV0ZXMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbWQgPSBuZXcgQ29udGFpbmVyTWVtb3J5RHVtcCg0Mik7Ci0KLSAgICB2YXIgb2lscGFuRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKG1kLCAnb2lscGFuJyk7Ci0gICAgb2lscGFuRHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgNykpOwotCi0gICAgdmFyIG9pbHBhbkJ1Y2tldDFEdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoCi0gICAgICAgIG1kLCAnb2lscGFuL2J1Y2tldDEnLCBvaWxwYW5EdW1wKTsKLSAgICBvaWxwYW5CdWNrZXQxRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLAotICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDUxMikpOwotICAgIG9pbHBhbkJ1Y2tldDFEdW1wLmFkZEF0dHJpYnV0ZSgnb2JqZWN0c19jb3VudCcsCi0gICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ29iamVjdHMnLCAzKSk7Ci0gICAgb2lscGFuQnVja2V0MUR1bXAuYWRkQXR0cmlidXRlKCdpbm5lcl9zaXplJywKLSAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAyNTYpKTsKLSAgICBzZXRVcFBhcmVudENoaWxkUmVsYXRpb25zaGlwKG9pbHBhbkR1bXAsIG9pbHBhbkJ1Y2tldDFEdW1wKTsKLQotICAgIHZhciBvaWxwYW5CdWNrZXQyRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKAotICAgICAgICBtZCwgJ29pbHBhbi9idWNrZXQyJywgb2lscGFuRHVtcCk7Ci0gICAgc2V0VXBQYXJlbnRDaGlsZFJlbGF0aW9uc2hpcChvaWxwYW5EdW1wLCBvaWxwYW5CdWNrZXQyRHVtcCk7Ci0KLSAgICB2YXIgb2lscGFuQnVja2V0MlN0cmluZ3NEdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoCi0gICAgICAgIG1kLCAnb2lscGFuL2J1Y2tldDIvc3RyaW5ncycsIG9pbHBhbkJ1Y2tldDJEdW1wKTsKLSAgICBvaWxwYW5CdWNrZXQyU3RyaW5nc0R1bXAuYWRkQXR0cmlidXRlKCdzaXplJywKLSAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCA1MTIpKTsKLSAgICBvaWxwYW5CdWNrZXQyU3RyaW5nc0R1bXAuYWRkQXR0cmlidXRlKCdvYmplY3RzX2NvdW50JywKLSAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnb2JqZWN0cycsIDQpKTsKLSAgICBvaWxwYW5CdWNrZXQyU3RyaW5nc0R1bXAuYWRkQXR0cmlidXRlKCdpbm5lcl9zaXplJywKLSAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCA1MTIpKTsKLSAgICBzZXRVcFBhcmVudENoaWxkUmVsYXRpb25zaGlwKG9pbHBhbkJ1Y2tldDJEdW1wLCBvaWxwYW5CdWNrZXQyU3RyaW5nc0R1bXApOwotCi0gICAgb2lscGFuRHVtcC5hZ2dyZWdhdGVBdHRyaWJ1dGVzKCk7Ci0KLSAgICAvLyBvaWxwYW4gaGFzICpzb21lKiBhdHRyaWJ1dGVzIGFnZ3JlZ2F0ZWQuCi0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkR1bXAuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCA3KTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuRHVtcC5hdHRyaWJ1dGVzWydpbm5lcl9zaXplJ10udmFsdWUsIDc2OCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkR1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAxMDI0KTsKLQotICAgIC8vIG9pbHBhbi9idWNrZXQyIGhhcyAqYWxsKiBhdHRyaWJ1dGVzIGFnZ3JlZ2F0ZWQuCi0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDJEdW1wLmF0dHJpYnV0ZXNbJ29iamVjdHNfY291bnQnXS52YWx1ZSwKLSAgICAgICAgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDJEdW1wLmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgNTEyKTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MkR1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCA1MTIpOwotCi0gICAgLy8gb2lscGFuL2J1Y2tldDIvc3RyaW5ncyBoYXMgKm5vKiBhdHRyaWJ1dGVzIGFnZ3JlZ2F0ZWQuCi0gICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDJTdHJpbmdzRHVtcC5hdHRyaWJ1dGVzWwotICAgICAgICAnb2JqZWN0c19jb3VudCddLnZhbHVlLCA0KTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MlN0cmluZ3NEdW1wLmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgNTEyKTsKLSAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MlN0cmluZ3NEdW1wLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgNTEyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbWVtb3J5QWxsb2NhdG9yRHVtcExpbmtfaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZDEgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcCgndjgvaXNvbGF0ZTEnKTsKLSAgICB2YXIgZDIgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcCgnb2lscGFuL2RvY3VtZW50MScpOwotICAgIHZhciBsaW5rID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rKGQxLCBkMiwgMyk7Ci0KLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGluay5zb3VyY2UsIGQxKTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGluay50YXJnZXQsIGQyKTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGluay5pbXBvcnRhbmNlLCAzKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tb2RlbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tb2RlbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOWM2YzRhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50cy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pbnRlcnZhbF90cmVlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvb3ZlcmxheS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYXVkaXRvci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvaW1wb3J0ZXIvZW1wdHlfaW1wb3J0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2ltcG9ydGVyL2ltcG9ydGVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9kZXZpY2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2tlcm5lbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzcy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2FtcGxlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zdGFja19mcmFtZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZmxvd19ldmVudC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hbGVydC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbF9pbmRpY2VzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgTW9kZWwgaXMgYSBwYXJzZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlCi0gKiBUcmFjZUV2ZW50cyBvYnRhaW5lZCBmcm9tIGJhc2UvdHJhY2VfZXZlbnQgaW4gd2hpY2ggdGhlIGJlZ2luLWVuZAotICogdG9rZW5zIGFyZSBjb252ZXJ0ZWQgaW50byBhIGhpZXJhcmNoeSBvZiBwcm9jZXNzZXMsIHRocmVhZHMsCi0gKiBzdWJyb3dzLCBhbmQgc2xpY2VzLgotICoKLSAqIFRoZSBidWlsZGluZyBibG9jayBvZiB0aGUgbW9kZWwgaXMgYSBzbGljZS4gQSBzbGljZSBpcyByb3VnaGx5Ci0gKiBlcXVpdmFsZW50IHRvIGZ1bmN0aW9uIGNhbGwgZXhlY3V0aW5nIG9uIGEgc3BlY2lmaWMgdGhyZWFkLiBBcyBhCi0gKiByZXN1bHQsIHNsaWNlcyBtYXkgaGF2ZSBvbmUgb3IgbW9yZSBzdWJzbGljZXMuCi0gKgotICogQSB0aHJlYWQgY29udGFpbnMgb25lIG9yIG1vcmUgc3Vicm93cyBvZiBzbGljZXMuIFJvdyAwIGNvcnJlc3BvbmRzIHRvCi0gKiB0aGUgInJvb3QiIHNsaWNlcywgZS5nLiB0aGUgdG9wbW9zdCBzbGljZXMuIFJvdyAxIGNvbnRhaW5zIHNsaWNlcyB0aGF0Ci0gKiBhcmUgbmVzdGVkIDEgZGVlcCBpbiB0aGUgc3RhY2ssIGFuZCBzbyBvbi4gV2UgdXNlIHRoZXNlIHN1YnJvd3MgdG8gZHJhdwotICogbmVzdGluZyB0YXNrcy4KLSAqCi0gKi8KLXRyLmV4cG9ydFRvKCd0cicsIGZ1bmN0aW9uKCkgewotICB2YXIgSW1wb3J0ZXIgPSB0ci5pbXBvcnRlci5JbXBvcnRlcjsKLSAgdmFyIFByb2Nlc3MgPSB0ci5tb2RlbC5Qcm9jZXNzOwotICB2YXIgRGV2aWNlID0gdHIubW9kZWwuRGV2aWNlOwotICB2YXIgS2VybmVsID0gdHIubW9kZWwuS2VybmVsOwotICB2YXIgR2xvYmFsTWVtb3J5RHVtcCA9IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXA7Ci0gIHZhciBHbG9iYWxJbnN0YW50RXZlbnQgPSB0ci5tb2RlbC5HbG9iYWxJbnN0YW50RXZlbnQ7Ci0gIHZhciBGbG93RXZlbnQgPSB0ci5tb2RlbC5GbG93RXZlbnQ7Ci0gIHZhciBBbGVydCA9IHRyLm1vZGVsLkFsZXJ0OwotICB2YXIgSW50ZXJhY3Rpb25SZWNvcmQgPSB0ci5tb2RlbC5JbnRlcmFjdGlvblJlY29yZDsKLSAgdmFyIFNhbXBsZSA9IHRyLm1vZGVsLlNhbXBsZTsKLQotICBmdW5jdGlvbiBJbXBvcnRPcHRpb25zKCkgewotICAgIHRoaXMuc2hpZnRXb3JsZFRvWmVybyA9IHRydWU7Ci0gICAgdGhpcy5wcnVuZUVtcHR5Q29udGFpbmVycyA9IHRydWU7Ci0KLSAgICAvLyBDYWxsYmFjayBjYWxsZWQgYWZ0ZXIKLSAgICAvLyBpbXBvcnRlcnMgcnVuIGluIHdoaWNoIG1vcmUgZGF0YSBjYW4gYmUgYWRkZWQgdG8gdGhlIG1vZGVsLCBiZWZvcmUgaXQgaXMKLSAgICAvLyBmaW5hbGl6ZWQuCi0gICAgdGhpcy5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gdW5kZWZpbmVkOwotCi0gICAgdmFyIGF1ZGl0b3JUeXBlcyA9IHRyLmMuQXVkaXRvci5nZXRBbGxSZWdpc3RlcmVkVHlwZUluZm9zKCk7Ci0gICAgdGhpcy5hdWRpdG9yQ29uc3RydWN0b3JzID0gYXVkaXRvclR5cGVzLm1hcChmdW5jdGlvbih0eXBlSW5mbykgewotICAgICAgcmV0dXJuIHR5cGVJbmZvLmNvbnN0cnVjdG9yOwotICAgIH0pOwotICB9Ci0KLSAgSW1wb3J0T3B0aW9ucy5mcm9tQXJndW1lbnRzID0gZnVuY3Rpb24oYXJncywgYXJnc1N0YXJ0SW5kZXgpIHsKLSAgICB2YXIgYXJnMCA9IGFyZ3NbYXJnc1N0YXJ0SW5kZXggKyAwXTsKLSAgICBpZiAodHlwZW9mIGFyZzAgPT09ICdvYmplY3QnKSB7Ci0gICAgICBpZiAoIShhcmcwIGluc3RhbmNlb2YgSW1wb3J0T3B0aW9ucykpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCcpOwotICAgICAgcmV0dXJuIGFyZzA7Ci0gICAgfQotICAgIHZhciBvcHRpb25zID0gbmV3IEltcG9ydE9wdGlvbnMoKTsKLSAgICBpZiAoYXJnc1thcmdzU3RhcnRJbmRleF0gIT09IHVuZGVmaW5lZCkKLSAgICAgIG9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybyA9IGFyZ3NbYXJnc1N0YXJ0SW5kZXhdOwotCi0gICAgaWYgKGFyZ3NbYXJnc1N0YXJ0SW5kZXggKyAxXSAhPT0gdW5kZWZpbmVkKQotICAgICAgb3B0aW9ucy5wcnVuZUVtcHR5Q29udGFpbmVycyA9IGFyZ3NbYXJnc1N0YXJ0SW5kZXggKyAxXTsKLQotICAgIGlmIChhcmdzW2FyZ3NTdGFydEluZGV4ICsgMl0pCi0gICAgICBvcHRpb25zLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBhcmdzW2FyZ3NTdGFydEluZGV4ICsgMl07Ci0KLSAgICByZXR1cm4gb3B0aW9uczsKLSAgfQotCi0gIGZ1bmN0aW9uIENsb2NrU3luY1JlY29yZChuYW1lLCB0cywgYXJncykgewotICAgIHRoaXMubmFtZSA9IG5hbWU7Ci0gICAgdGhpcy50cyA9IHRzOwotICAgIHRoaXMuYXJncyA9IGFyZ3M7Ci0gIH0KLQotICAvKioKLSAgICogQnVpbGRzIGEgbW9kZWwgZnJvbSBhbiBhcnJheSBvZiBUcmFjZUV2ZW50IG9iamVjdHMuCi0gICAqIEBwYXJhbSB7T2JqZWN0PX0gb3B0X2V2ZW50RGF0YSBEYXRhIGZyb20gYSBzaW5nbGUgdHJhY2UgdG8gYmUgaW1wb3J0ZWQgaW50bwotICAgKiAgICAgdGhlIG5ldyBtb2RlbC4gU2VlIE1vZGVsLmltcG9ydFRyYWNlcyBmb3IgZGV0YWlscyBvbiBob3cgdG8KLSAgICogICAgIGltcG9ydCBtdWx0aXBsZSB0cmFjZXMgYXQgb25jZS4KLSAgICogQHBhcmFtIHtJbXBvcnRPcHRpb25zPX0gb3B0X29wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIGltcG9ydC4KLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBNb2RlbChvcHRfZXZlbnREYXRhLCBvcHRfb3B0aW9ucykgewotICAgIHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7Ci0gICAgdHIuYi5FdmVudFRhcmdldC5kZWNvcmF0ZSh0aGlzKTsKLQotICAgIHRoaXMuZmF2aWNvbkh1ZSA9ICdibHVlJzsgLy8gU2hvdWxkIGJlIGEga2V5IGZyb20gZmF2aWNvbnMuaHRtbAotCi0gICAgdGhpcy5kZXZpY2UgPSBuZXcgRGV2aWNlKHRoaXMpOwotICAgIHRoaXMua2VybmVsID0gbmV3IEtlcm5lbCh0aGlzKTsKLSAgICB0aGlzLnByb2Nlc3NlcyA9IHt9OwotICAgIHRoaXMubWV0YWRhdGEgPSBbXTsKLSAgICB0aGlzLmNhdGVnb3JpZXMgPSBbXTsKLSAgICB0aGlzLmJvdW5kcyA9IG5ldyB0ci5iLlJhbmdlKCk7Ci0gICAgdGhpcy5pbnN0YW50RXZlbnRzID0gW107Ci0gICAgdGhpcy5mbG93RXZlbnRzID0gW107Ci0gICAgdGhpcy5jbG9ja1N5bmNSZWNvcmRzID0gW107Ci0KLSAgICB0aGlzLnN0YWNrRnJhbWVzID0ge307Ci0gICAgdGhpcy5zYW1wbGVzID0gW107Ci0KLSAgICB0aGlzLmFsZXJ0cyA9IFtdOwotICAgIHRoaXMuaW50ZXJhY3Rpb25fcmVjb3JkcyA9IFtdOwotCi0gICAgdGhpcy5mbG93SW50ZXJ2YWxUcmVlID0gbmV3IHRyLmIuSW50ZXJ2YWxUcmVlKAotICAgICAgICBmdW5jdGlvbihmKSB7IHJldHVybiBmLnN0YXJ0OyB9LAotICAgICAgICBmdW5jdGlvbihmKSB7IHJldHVybiBmLmVuZDsgfSk7Ci0KLSAgICB0aGlzLmdsb2JhbE1lbW9yeUR1bXBzID0gW107Ci0KLSAgICB0aGlzLmFubm90YXRpb25zQnlHdWlkXyA9IHt9OwotCi0gICAgdGhpcy5pbXBvcnRXYXJuaW5nc18gPSBbXTsKLSAgICB0aGlzLnJlcG9ydGVkSW1wb3J0V2FybmluZ3NfID0ge307Ci0KLSAgICB0aGlzLm1vZGVsSW5kaWNlcyA9IHVuZGVmaW5lZDsKLSAgICB2YXIgb3B0aW9ucyA9IEltcG9ydE9wdGlvbnMuZnJvbUFyZ3VtZW50cyhhcmd1bWVudHMsIDEpOwotICAgIGlmIChvcHRfZXZlbnREYXRhKQotICAgICAgdGhpcy5pbXBvcnRUcmFjZXMoW29wdF9ldmVudERhdGFdLCBvcHRpb25zKTsKLSAgfQotCi0gIE1vZGVsLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSwKLQotICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgR2xvYmFsTWVtb3J5RHVtcCkpCi0gICAgICAgIHRoaXMuZ2xvYmFsTWVtb3J5RHVtcHMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOwotCi0gICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIEdsb2JhbEluc3RhbnRFdmVudCkpCi0gICAgICAgIHRoaXMuaW5zdGFudEV2ZW50cy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0KLSAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgRmxvd0V2ZW50KSkKLSAgICAgICAgdGhpcy5mbG93RXZlbnRzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKLQotICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCBBbGVydCkpCi0gICAgICAgIHRoaXMuYWxlcnRzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKLQotICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCBJbnRlcmFjdGlvblJlY29yZCkpCi0gICAgICAgIHRoaXMuaW50ZXJhY3Rpb25fcmVjb3Jkcy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0KLSAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgU2FtcGxlKSkKLSAgICAgICAgdGhpcy5zYW1wbGVzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIHRoaXMuZGV2aWNlKTsKLSAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIHRoaXMua2VybmVsKTsKLSAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLSAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5wcm9jZXNzZXNbcGlkXSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFNvbWUgb2JqZWN0cyBpbiB0aGUgbW9kZWwgY2FuIHBlcnNpc3QgdGhlaXIgc3RhdGUgaW4gTW9kZWxTZXR0aW5ncy4KLSAgICAgKgotICAgICAqIFRoaXMgaXRlcmF0ZXMgdGhyb3VnaCB0aGVtLgotICAgICAqLwotICAgIGl0ZXJhdGVBbGxQZXJzaXN0YWJsZU9iamVjdHM6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7Ci0gICAgICB0aGlzLmtlcm5lbC5pdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzKGNhbGxiYWNrKTsKLSAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLSAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5pdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzKGNhbGxiYWNrKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7Ci0gICAgICB2YXIgYm91bmRzID0gdGhpcy5ib3VuZHM7Ci0KLSAgICAgIHRoaXMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGVjKSB7Ci0gICAgICAgIGVjLnVwZGF0ZUJvdW5kcygpOwotICAgICAgICBib3VuZHMuYWRkUmFuZ2UoZWMuYm91bmRzKTsKLSAgICAgIH0pOwotICAgICAgdGhpcy5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyKAotICAgICAgICAgIGZ1bmN0aW9uKGV2ZW50Q29uc3RydWN0b3IpIHsgcmV0dXJuIHRydWU7IH0sCi0gICAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGV2ZW50LmFkZEJvdW5kc1RvUmFuZ2UoYm91bmRzKTsKLSAgICAgICAgICB9KTsKLSAgICB9LAotCi0gICAgc2hpZnRXb3JsZFRvWmVybzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgc2hpZnRBbW91bnQgPSAtdGhpcy5ib3VuZHMubWluOwotICAgICAgdGhpcy5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMoZnVuY3Rpb24oZWMpIHsKLSAgICAgICAgZWMuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChzaGlmdEFtb3VudCk7Ci0gICAgICB9KTsKLSAgICAgIHRoaXMuaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcigKLSAgICAgICAgZnVuY3Rpb24oZXZlbnRDb25zdHJ1Y3RvcikgeyByZXR1cm4gdHJ1ZTsgfSwKLSAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICBldmVudC5zdGFydCArPSBzaGlmdEFtb3VudDsKLSAgICAgICAgfSk7Ci0gICAgICB0aGlzLnVwZGF0ZUJvdW5kcygpOwotICAgIH0sCi0KLSAgICBnZXQgbnVtUHJvY2Vzc2VzKCkgewotICAgICAgdmFyIG4gPSAwOwotICAgICAgZm9yICh2YXIgcCBpbiB0aGlzLnByb2Nlc3NlcykKLSAgICAgICAgbisrOwotICAgICAgcmV0dXJuIG47Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge1Byb2Nlc3N9IEdldHMgYSBUaW1lbGluZVByb2Nlc3MgZm9yIGEgc3BlY2lmaWVkIHBpZC4gUmV0dXJucwotICAgICAqIHVuZGVmaW5lZCBpZiB0aGUgcHJvY2VzcyBkb2Vzbid0IGV4aXN0LgotICAgICAqLwotICAgIGdldFByb2Nlc3M6IGZ1bmN0aW9uKHBpZCkgewotICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc2VzW3BpZF07Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge1Byb2Nlc3N9IEdldHMgYSBUaW1lbGluZVByb2Nlc3MgZm9yIGEgc3BlY2lmaWVkIHBpZCBvcgotICAgICAqIGNyZWF0ZXMgb25lIGlmIGl0IGRvZXMgbm90IGV4aXN0LgotICAgICAqLwotICAgIGdldE9yQ3JlYXRlUHJvY2VzczogZnVuY3Rpb24ocGlkKSB7Ci0gICAgICBpZiAoIXRoaXMucHJvY2Vzc2VzW3BpZF0pCi0gICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0gPSBuZXcgUHJvY2Vzcyh0aGlzLCBwaWQpOwotICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc2VzW3BpZF07Ci0gICAgfSwKLQotICAgIHB1c2hJbnN0YW50RXZlbnQ6IGZ1bmN0aW9uKGluc3RhbnRFdmVudCkgewotICAgICAgdGhpcy5pbnN0YW50RXZlbnRzLnB1c2goaW5zdGFudEV2ZW50KTsKLSAgICB9LAotCi0gICAgYWRkU3RhY2tGcmFtZTogZnVuY3Rpb24oc3RhY2tGcmFtZSkgewotICAgICAgaWYgKHRoaXMuc3RhY2tGcmFtZXNbc3RhY2tGcmFtZS5pZF0pCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhY2sgZnJhbWUgYWxyZWFkeSBleGlzdHMnKTsKLSAgICAgIHRoaXMuc3RhY2tGcmFtZXNbc3RhY2tGcmFtZS5pZF0gPSBzdGFja0ZyYW1lOwotICAgICAgcmV0dXJuIHN0YWNrRnJhbWU7Ci0gICAgfSwKLQotICAgIGFkZEludGVyYWN0aW9uUmVjb3JkOiBmdW5jdGlvbihpcjEpIHsKLSAgICAgIHRoaXMuaW50ZXJhY3Rpb25fcmVjb3Jkcy5wdXNoKGlyMSk7Ci0gICAgfSwKLQotICAgIGdldENsb2NrU3luY1JlY29yZHNOYW1lZDogZnVuY3Rpb24obmFtZSkgewotICAgICAgcmV0dXJuIHRoaXMuY2xvY2tTeW5jUmVjb3Jkcy5maWx0ZXIoZnVuY3Rpb24oeCkgewotICAgICAgICByZXR1cm4geC5uYW1lID09PSBuYW1lOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEdlbmVyYXRlcyB0aGUgc2V0IG9mIGNhdGVnb3JpZXMgZnJvbSB0aGUgc2xpY2VzIGFuZCBjb3VudGVycy4KLSAgICAgKi8KLSAgICB1cGRhdGVDYXRlZ29yaWVzXzogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgY2F0ZWdvcmllc0RpY3QgPSB7fTsKLSAgICAgIHRoaXMuZGV2aWNlLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpOwotICAgICAgdGhpcy5rZXJuZWwuYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7Ci0gICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi0gICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0uYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7Ci0KLSAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IFtdOwotICAgICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gY2F0ZWdvcmllc0RpY3QpCi0gICAgICAgIGlmIChjYXRlZ29yeSAhPSAnJykKLSAgICAgICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7Ci0gICAgfSwKLQotICAgIGdldEFsbFRocmVhZHM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHRocmVhZHMgPSBbXTsKLSAgICAgIGZvciAodmFyIHRpZCBpbiB0aGlzLmtlcm5lbC50aHJlYWRzKSB7Ci0gICAgICAgIHRocmVhZHMucHVzaChwcm9jZXNzLnRocmVhZHNbdGlkXSk7Ci0gICAgICB9Ci0gICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpIHsKLSAgICAgICAgdmFyIHByb2Nlc3MgPSB0aGlzLnByb2Nlc3Nlc1twaWRdOwotICAgICAgICBmb3IgKHZhciB0aWQgaW4gcHJvY2Vzcy50aHJlYWRzKSB7Ci0gICAgICAgICAgdGhyZWFkcy5wdXNoKHByb2Nlc3MudGhyZWFkc1t0aWRdKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIHRocmVhZHM7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge0FycmF5fSBBbiBhcnJheSBvZiBhbGwgcHJvY2Vzc2VzIGluIHRoZSBtb2RlbC4KLSAgICAgKi8KLSAgICBnZXRBbGxQcm9jZXNzZXM6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHByb2Nlc3NlcyA9IFtdOwotICAgICAgZm9yICh2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQotICAgICAgICBwcm9jZXNzZXMucHVzaCh0aGlzLnByb2Nlc3Nlc1twaWRdKTsKLSAgICAgIHJldHVybiBwcm9jZXNzZXM7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge0FycmF5fSBBbiBhcnJheSBvZiBhbGwgdGhlIGNvdW50ZXJzIGluIHRoZSBtb2RlbC4KLSAgICAgKi8KLSAgICBnZXRBbGxDb3VudGVyczogZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgY291bnRlcnMgPSBbXTsKLSAgICAgIGNvdW50ZXJzLnB1c2guYXBwbHkoCi0gICAgICAgICAgY291bnRlcnMsIHRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLmRldmljZS5jb3VudGVycykpOwotICAgICAgY291bnRlcnMucHVzaC5hcHBseSgKLSAgICAgICAgICBjb3VudGVycywgdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHRoaXMua2VybmVsLmNvdW50ZXJzKSk7Ci0gICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpIHsKLSAgICAgICAgdmFyIHByb2Nlc3MgPSB0aGlzLnByb2Nlc3Nlc1twaWRdOwotICAgICAgICBmb3IgKHZhciB0aWQgaW4gcHJvY2Vzcy5jb3VudGVycykgewotICAgICAgICAgIGNvdW50ZXJzLnB1c2gocHJvY2Vzcy5jb3VudGVyc1t0aWRdKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIGNvdW50ZXJzOwotICAgIH0sCi0KLSAgICBnZXRBbm5vdGF0aW9uQnlHVUlEOiBmdW5jdGlvbihndWlkKSB7Ci0gICAgICByZXR1cm4gdGhpcy5hbm5vdGF0aW9uc0J5R3VpZF9bZ3VpZF07Ci0gICAgfSwKLQotICAgIGFkZEFubm90YXRpb246IGZ1bmN0aW9uKGFubm90YXRpb24pIHsKLSAgICAgIGlmICghYW5ub3RhdGlvbi5ndWlkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fubm90YXRpb24gd2l0aCB1bmRlZmluZWQgZ3VpZCBnaXZlbicpOwotCi0gICAgICB0aGlzLmFubm90YXRpb25zQnlHdWlkX1thbm5vdGF0aW9uLmd1aWRdID0gYW5ub3RhdGlvbjsKLSAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnYW5ub3RhdGlvbkNoYW5nZScpOwotICAgIH0sCi0KLSAgICByZW1vdmVBbm5vdGF0aW9uOiBmdW5jdGlvbihhbm5vdGF0aW9uKSB7Ci0gICAgICB0aGlzLmFubm90YXRpb25zQnlHdWlkX1thbm5vdGF0aW9uLmd1aWRdLm9uUmVtb3ZlKCk7Ci0gICAgICBkZWxldGUgdGhpcy5hbm5vdGF0aW9uc0J5R3VpZF9bYW5ub3RhdGlvbi5ndWlkXTsKLSAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnYW5ub3RhdGlvbkNoYW5nZScpOwotICAgIH0sCi0KLSAgICBnZXRBbGxBbm5vdGF0aW9uczogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHRoaXMuYW5ub3RhdGlvbnNCeUd1aWRfKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtTdHJpbmd9IFRoZSBuYW1lIG9mIHRoZSB0aHJlYWQgdG8gZmluZC4KLSAgICAgKiBAcmV0dXJuIHtBcnJheX0gQW4gYXJyYXkgb2YgYWxsIHRoZSBtYXRjaGVkIHRocmVhZHMuCi0gICAgICovCi0gICAgZmluZEFsbFRocmVhZHNOYW1lZDogZnVuY3Rpb24obmFtZSkgewotICAgICAgdmFyIG5hbWVkVGhyZWFkcyA9IFtdOwotICAgICAgbmFtZWRUaHJlYWRzLnB1c2guYXBwbHkoCi0gICAgICAgICAgbmFtZWRUaHJlYWRzLAotICAgICAgICAgIHRoaXMua2VybmVsLmZpbmRBbGxUaHJlYWRzTmFtZWQobmFtZSkpOwotICAgICAgZm9yICh2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKSB7Ci0gICAgICAgIG5hbWVkVGhyZWFkcy5wdXNoLmFwcGx5KAotICAgICAgICAgICAgbmFtZWRUaHJlYWRzLAotICAgICAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5maW5kQWxsVGhyZWFkc05hbWVkKG5hbWUpKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBuYW1lZFRocmVhZHM7Ci0gICAgfSwKLQotICAgIGNyZWF0ZUltcG9ydGVyXzogZnVuY3Rpb24oZXZlbnREYXRhKSB7Ci0gICAgICB2YXIgaW1wb3J0ZXJDb25zdHJ1Y3RvciA9IHRyLmltcG9ydGVyLkltcG9ydGVyLmZpbmRJbXBvcnRlckZvcigKLSAgICAgICAgICBldmVudERhdGEpOwotCi0gICAgICAvLyBUT0RPKGtwaGFuZWUpOiBUaHJvd2luZyBzYW1lIEVycm9yIGF0IDIgcGxhY2VzLiBMZXRzIHRyeSB0byBhdm9pZCBpdCEKLSAgICAgIGlmICghaW1wb3J0ZXJDb25zdHJ1Y3RvcikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKAotICAgICAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIGFuIGltcG9ydGVyIGZvciB0aGUgcHJvdmlkZWQgZXZlbnREYXRhLicpOwotCi0gICAgICB2YXIgaW1wb3J0ZXIgPSBuZXcgaW1wb3J0ZXJDb25zdHJ1Y3RvcigKLSAgICAgICAgICB0aGlzLCBldmVudERhdGEpOwotICAgICAgcmV0dXJuIGltcG9ydGVyOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBJbXBvcnRzIHRoZSBwcm92aWRlZCB0cmFjZXMgaW50byB0aGUgbW9kZWwuIFRoZSBldmVudERhdGEgdHlwZQotICAgICAqIGlzIHVuZGVmaW5lZCBhbmQgd2lsbCBiZSBwYXNzZWQgdG8gYWxsIHRoZSBpbXBvcnRlcnMgcmVnaXN0ZXJlZAotICAgICAqIHZpYSBJbXBvcnRlci5yZWdpc3Rlci4gVGhlIGZpcnN0IGltcG9ydGVyIHRoYXQgcmV0dXJucyB0cnVlCi0gICAgICogZm9yIGNhbkltcG9ydChldmVudHMpIHdpbGwgYmUgdXNlZCB0byBpbXBvcnQgdGhlIGV2ZW50cy4KLSAgICAgKgotICAgICAqIFRoZSBwcmltYXJ5IHRyYWNlIGlzIHByb3ZpZGVkIHZpYSB0aGUgZXZlbnREYXRhIHZhcmlhYmxlLiBJZiBtdWx0aXBsZQotICAgICAqIHRyYWNlcyBhcmUgdG8gYmUgaW1wb3J0ZWQsIHNwZWNpZnkgdGhlIGZpcnN0IG9uZSBhcyBldmVudHMsIGFuZCB0aGUKLSAgICAgKiByZW1haW5kZXIgaW4gdGhlIG9wdF9hZGRpdGlvbmFsRXZlbnREYXRhIGFycmF5LgotICAgICAqCi0gICAgICogQHBhcmFtIHtBcnJheX0gdHJhY2VzIEFuIGFycmF5IG9mIGV2ZW50RGF0YSB0byBiZSBpbXBvcnRlZC4gRWFjaAotICAgICAqIGV2ZW50RGF0YSBzaG91bGQgY29ycmVzcG9uZCB0byBhIHNpbmdsZSB0cmFjZSBmaWxlIGFuZCB3aWxsIGJlIGhhbmRsZWQgYnkKLSAgICAgKiBhIHNlcGFyYXRlIGltcG9ydGVyLgotICAgICAqIEBwYXJhbSB7SW1wb3J0T3B0aW9uc30gb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgaW1wb3J0LCBvciB1bmRlZmluZWQgZm9yCi0gICAgICogZGVmYXVsdCBvcHRpb25zLgotICAgICAqLwotICAgIGltcG9ydFRyYWNlczogZnVuY3Rpb24odHJhY2VzLCBvcHRfb3B0aW9ucykgewotICAgICAgdmFyIHByb2dyZXNzTWV0ZXIgPSB7Ci0gICAgICAgIHVwZGF0ZTogZnVuY3Rpb24obXNnKSB7fQotICAgICAgfTsKLSAgICAgIHZhciBvcHRpb25zID0gSW1wb3J0T3B0aW9ucy5mcm9tQXJndW1lbnRzKGFyZ3VtZW50cywgMSk7Ci0gICAgICB2YXIgdGFzayA9IHRoaXMuY3JlYXRlSW1wb3J0VHJhY2VzVGFzaygKLSAgICAgICAgICBwcm9ncmVzc01ldGVyLAotICAgICAgICAgIHRyYWNlcywKLSAgICAgICAgICBvcHRpb25zKTsKLSAgICAgIHRyLmIuVGFzay5SdW5TeW5jaHJvbm91c2x5KHRhc2spOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBJbXBvcnRzIGEgdHJhY2Ugd2l0aCB0aGUgdXN1YWwgb3B0aW9ucyBmcm9tIGltcG9ydFRyYWNlcywgYnV0Ci0gICAgICogZG9lcyBzbyB1c2luZyBpZGxlIGNhbGxiYWNrcywgcHV0dGluZyB1cCBhbiBpbXBvcnQgZGlhbG9nCi0gICAgICogZHVyaW5nIHRoZSBpbXBvcnQgcHJvY2Vzcy4KLSAgICAgKi8KLSAgICBpbXBvcnRUcmFjZXNXaXRoUHJvZ3Jlc3NEaWFsb2c6IGZ1bmN0aW9uKHRyYWNlcywgb3B0X29wdGlvbnMpIHsKLSAgICAgIHZhciBvcHRpb25zID0gSW1wb3J0T3B0aW9ucy5mcm9tQXJndW1lbnRzKGFyZ3VtZW50cywgMSk7Ci0KLSAgICAgIHZhciBvdmVybGF5ID0gdHIuYi51aS5PdmVybGF5KCk7Ci0gICAgICBvdmVybGF5LnRpdGxlID0gJ0ltcG9ydGluZy4uLic7Ci0gICAgICBvdmVybGF5LnVzZXJDYW5DbG9zZSA9IGZhbHNlOwotICAgICAgb3ZlcmxheS5tc2dFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgb3ZlcmxheS5hcHBlbmRDaGlsZChvdmVybGF5Lm1zZ0VsKTsKLSAgICAgIG92ZXJsYXkubXNnRWwuc3R5bGUubWFyZ2luID0gJzIwcHgnOwotICAgICAgb3ZlcmxheS51cGRhdGUgPSBmdW5jdGlvbihtc2cpIHsKLSAgICAgICAgdGhpcy5tc2dFbC50ZXh0Q29udGVudCA9IG1zZzsKLSAgICAgIH0KLSAgICAgIG92ZXJsYXkudmlzaWJsZSA9IHRydWU7Ci0KLSAgICAgIHZhciB0YXNrID0gdGhpcy5jcmVhdGVJbXBvcnRUcmFjZXNUYXNrKAotICAgICAgICAgIG92ZXJsYXksCi0gICAgICAgICAgdHJhY2VzLAotICAgICAgICAgIG9wdGlvbnMpOwotICAgICAgdmFyIHByb21pc2UgPSB0ci5iLlRhc2suUnVuV2hlbklkbGUodGFzayk7Ci0gICAgICBwcm9taXNlLnRoZW4oCi0gICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBvdmVybGF5LnZpc2libGUgPSBmYWxzZTsKLSAgICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgICAgIG92ZXJsYXkudmlzaWJsZSA9IGZhbHNlOwotICAgICAgICAgIH0pOwotICAgICAgcmV0dXJuIHByb21pc2U7Ci0gICAgfSwKLQotICAgIGhhc0V2ZW50RGF0YURlY29kZXJfOiBmdW5jdGlvbihpbXBvcnRlcnMpIHsKLSAgICAgIGlmIChpbXBvcnRlcnMubGVuZ3RoID09PSAwKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1wb3J0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghaW1wb3J0ZXJzW2ldLmlzVHJhY2VEYXRhQ29udGFpbmVyKCkpCi0gICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSB0YXNrIHRoYXQgd2lsbCBpbXBvcnQgdGhlIHByb3ZpZGVkIHRyYWNlcyBpbnRvIHRoZSBtb2RlbCwKLSAgICAgKiB1cGRhdGluZyB0aGUgcHJvZ3Jlc3NNZXRlciBhcyBpdCBnb2VzLiBQYXJhbWV0ZXJzIGFyZSBhcyBkZWZpbmVkIGluCi0gICAgICogaW1wb3J0VHJhY2VzLgotICAgICAqLwotICAgIGNyZWF0ZUltcG9ydFRyYWNlc1Rhc2s6IGZ1bmN0aW9uKHByb2dyZXNzTWV0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9vcHRpb25zKSB7Ci0gICAgICB2YXIgb3B0aW9ucyA9IEltcG9ydE9wdGlvbnMuZnJvbUFyZ3VtZW50cyhhcmd1bWVudHMsIDIpOwotCi0gICAgICBpZiAodGhpcy5pbXBvcnRpbmdfKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgaW1wb3J0aW5nLicpOwotICAgICAgdGhpcy5pbXBvcnRpbmdfID0gdHJ1ZTsKLQotICAgICAgLy8gSnVzdCBzb21lIHNpbXBsZSBzZXR1cC4gSXQgaXMgdXNlZnVsIHRvIGhhdmUgYSBub3AgZmlyc3QKLSAgICAgIC8vIHRhc2sgc28gdGhhdCB3ZSBjYW4gc2V0IHVwIHRoZSBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKCkKLSAgICAgIC8vIHBhdHRlcm4gdGhhdCBmb2xsb3dzLgotICAgICAgdmFyIGltcG9ydFRhc2sgPSBuZXcgdHIuYi5UYXNrKGZ1bmN0aW9uKCkgewotICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnSSB3aWxsIG5vdyBpbXBvcnQgeW91ciB0cmFjZXMgZm9yIHlvdS4uLicpOwotICAgICAgfSwgdGhpcyk7Ci0gICAgICB2YXIgbGFzdFRhc2sgPSBpbXBvcnRUYXNrOwotCi0gICAgICB2YXIgaW1wb3J0ZXJzID0gW107Ci0KLSAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIENvcHkgdGhlIHRyYWNlcyBhcnJheSwgd2UgbWF5IG11dGF0ZSBpdC4KLSAgICAgICAgdHJhY2VzID0gdHJhY2VzLnNsaWNlKDApOwotICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQ3JlYXRpbmcgaW1wb3J0ZXJzLi4uJyk7Ci0gICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hpY2ggaW1wb3J0ZXJzIHRvIHVzZS4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFjZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgaW1wb3J0ZXJzLnB1c2godGhpcy5jcmVhdGVJbXBvcnRlcl8odHJhY2VzW2ldKSk7Ci0KLSAgICAgICAgLy8gU29tZSB0cmFjZXMgaGF2ZSBvdGhlciB0cmFjZXMgaW5zaWRlIHRoZW0uIEJlZm9yZSBkb2luZyB0aGUgZnVsbAotICAgICAgICAvLyBpbXBvcnQsIGFzayB0aGUgaW1wb3J0ZXIgaWYgaXQgaGFzIGFueSBzdWJ0cmFjZXMsIGFuZCBpZiBzbywgY3JlYXRlCi0gICAgICAgIC8vIGltcG9ydGVycyBmb3IgdGhlbSwgYWxzby4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbXBvcnRlcnMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICB2YXIgc3VidHJhY2VzID0gaW1wb3J0ZXJzW2ldLmV4dHJhY3RTdWJ0cmFjZXMoKTsKLSAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN1YnRyYWNlcy5sZW5ndGg7IGorKykgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgdHJhY2VzLnB1c2goc3VidHJhY2VzW2pdKTsKLSAgICAgICAgICAgICAgaW1wb3J0ZXJzLnB1c2godGhpcy5jcmVhdGVJbXBvcnRlcl8oc3VidHJhY2VzW2pdKSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICAgICAgICAvLyBUT0RPKGtwaGFuZWUpOiBMb2cgdGhlIHN1YnRyYWNlIGZpbGUgd2hpY2ggaGFzIGZhaWxlZC4KLSAgICAgICAgICAgICAgY29uc29sZS53YXJuKGVycm9yLm5hbWUgKyAnOiAnICsgZXJyb3IubWVzc2FnZSk7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0cmFjZXMubGVuZ3RoICYmICF0aGlzLmhhc0V2ZW50RGF0YURlY29kZXJfKGltcG9ydGVycykpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGFuIGltcG9ydGVyIGZvciAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBwcm92aWRlZCBldmVudERhdGEuJyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBTb3J0IHRoZW0gb24gcHJpb3JpdHkuIFRoaXMgZW5zdXJlcyBpbXBvcnRpbmcgaGFwcGVucyBpbiBhCi0gICAgICAgIC8vIHByZWRpY3RhYmxlIG9yZGVyLCBlLmcuIGZ0cmFjZV9pbXBvcnRlciBiZWZvcmUKLSAgICAgICAgLy8gdHJhY2VfZXZlbnRfaW1wb3J0ZXIuCi0gICAgICAgIGltcG9ydGVycy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKLSAgICAgICAgICByZXR1cm4geC5pbXBvcnRQcmlvcml0eSAtIHkuaW1wb3J0UHJpb3JpdHk7Ci0gICAgICAgIH0pOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIC8vIFJ1biB0aGUgaW1wb3J0LgotICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbih0YXNrKSB7Ci0gICAgICAgIGltcG9ydGVycy5mb3JFYWNoKGZ1bmN0aW9uKGltcG9ydGVyLCBpbmRleCkgewotICAgICAgICAgIHRhc2suc3ViVGFzayhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKAotICAgICAgICAgICAgICAgICdJbXBvcnRpbmcgJyArIChpbmRleCArIDEpICsgJyBvZiAnICsgaW1wb3J0ZXJzLmxlbmd0aCk7Ci0gICAgICAgICAgICBpbXBvcnRlci5pbXBvcnRFdmVudHMoKTsKLSAgICAgICAgICB9LCB0aGlzKTsKLSAgICAgICAgfSwgdGhpcyk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gUnVuIHRoZSBjdXNvbWl6ZU1vZGVsQ2FsbGJhY2sgaWYgbmVlZGVkLgotICAgICAgaWYgKG9wdGlvbnMuY3VzdG9taXplTW9kZWxDYWxsYmFjaykgewotICAgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKHRhc2spIHsKLSAgICAgICAgICBvcHRpb25zLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sodGhpcyk7Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgfQotCi0gICAgICAvLyBGaW5hbGl6ZSBpbXBvcnQuCi0gICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKHRhc2spIHsKLSAgICAgICAgaW1wb3J0ZXJzLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZXIsIGluZGV4KSB7Ci0gICAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoCi0gICAgICAgICAgICAgICdJbXBvcnRpbmcgc2FtcGxlIGRhdGEgJyArIChpbmRleCArIDEpICsgJy8nICsgaW1wb3J0ZXJzLmxlbmd0aCk7Ci0gICAgICAgICAgaW1wb3J0ZXIuaW1wb3J0U2FtcGxlRGF0YSgpOwotICAgICAgICB9LCB0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBBdXRvY2xvc2Ugb3BlbiBzbGljZXMgYW5kIGNyZWF0ZSBzdWJTbGljZXMuCi0gICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgewotICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQXV0b2Nsb3Npbmcgb3BlbiBzbGljZXMuLi4nKTsKLSAgICAgICAgLy8gU29ydCB0aGUgc2FtcGxlcy4KLSAgICAgICAgdGhpcy5zYW1wbGVzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICAgIHJldHVybiB4LnN0YXJ0IC0geS5zdGFydDsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy51cGRhdGVCb3VuZHMoKTsKLSAgICAgICAgdGhpcy5rZXJuZWwuYXV0b0Nsb3NlT3BlblNsaWNlcyh0aGlzLmJvdW5kcy5tYXgpOwotICAgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi0gICAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5hdXRvQ2xvc2VPcGVuU2xpY2VzKHRoaXMuYm91bmRzLm1heCk7Ci0KLSAgICAgICAgdGhpcy5rZXJuZWwuY3JlYXRlU3ViU2xpY2VzKCk7Ci0gICAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLSAgICAgICAgICB0aGlzLnByb2Nlc3Nlc1twaWRdLmNyZWF0ZVN1YlNsaWNlcygpOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIC8vIEZpbmFsaXplIGltcG9ydC4KLSAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24odGFzaykgewotICAgICAgICBpbXBvcnRlcnMuZm9yRWFjaChmdW5jdGlvbihpbXBvcnRlciwgaW5kZXgpIHsKLSAgICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgKLSAgICAgICAgICAgICAgJ0ZpbmFsaXppbmcgaW1wb3J0ICcgKyAoaW5kZXggKyAxKSArICcvJyArIGltcG9ydGVycy5sZW5ndGgpOwotICAgICAgICAgIGltcG9ydGVyLmZpbmFsaXplSW1wb3J0KCk7Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIC8vIFJ1biBwcmVpbml0LgotICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0luaXRpYWxpemluZyBvYmplY3RzIChzdGVwIDEvMikuLi4nKTsKLSAgICAgICAgZm9yICh2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQotICAgICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0ucHJlSW5pdGlhbGl6ZU9iamVjdHMoKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBQcnVuZSBlbXB0eSBjb250YWluZXJzLgotICAgICAgaWYgKG9wdGlvbnMucHJ1bmVFbXB0eUNvbnRhaW5lcnMpIHsKLSAgICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnUHJ1bmluZyBlbXB0eSBjb250YWluZXJzLi4uJyk7Ci0gICAgICAgICAgdGhpcy5rZXJuZWwucHJ1bmVFbXB0eUNvbnRhaW5lcnMoKTsKLSAgICAgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpIHsKLSAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0ucHJ1bmVFbXB0eUNvbnRhaW5lcnMoKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0sIHRoaXMpOwotICAgICAgfQotCi0gICAgICAvLyBNZXJnZSBrZXJuZWwgYW5kIHVzZXJsYW5kIHNsaWNlcyBvbiBlYWNoIHRocmVhZC4KLSAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdNZXJnaW5nIGtlcm5lbCB3aXRoIHVzZXJsYW5kLi4uJyk7Ci0gICAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLSAgICAgICAgICB0aGlzLnByb2Nlc3Nlc1twaWRdLm1lcmdlS2VybmVsV2l0aFVzZXJsYW5kKCk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gQ3JlYXRlIGF1ZGl0b3JzCi0gICAgICB2YXIgYXVkaXRvcnMgPSBbXTsKLSAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdBZGRpbmcgYXJiaXRyYXJ5IGRhdGEgdG8gbW9kZWwuLi4nKTsKLSAgICAgICAgYXVkaXRvcnMgPSBvcHRpb25zLmF1ZGl0b3JDb25zdHJ1Y3RvcnMubWFwKAotICAgICAgICAgIGZ1bmN0aW9uKGF1ZGl0b3JDb25zdHJ1Y3RvcikgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBhdWRpdG9yQ29uc3RydWN0b3IodGhpcyk7Ci0gICAgICAgICAgfSwgdGhpcyk7Ci0gICAgICAgIGF1ZGl0b3JzLmZvckVhY2goZnVuY3Rpb24oYXVkaXRvcikgewotICAgICAgICAgIGF1ZGl0b3IucnVuQW5ub3RhdGUoKTsKLSAgICAgICAgfSk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0NvbXB1dGluZyBmaW5hbCB3b3JsZCBib3VuZHMuLi4nKTsKLSAgICAgICAgdGhpcy51cGRhdGVCb3VuZHMoKTsKLSAgICAgICAgdGhpcy51cGRhdGVDYXRlZ29yaWVzXygpOwotCi0gICAgICAgIGlmIChvcHRpb25zLnNoaWZ0V29ybGRUb1plcm8pCi0gICAgICAgICAgdGhpcy5zaGlmdFdvcmxkVG9aZXJvKCk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gQnVpbGQgdGhlIGZsb3cgZXZlbnQgaW50ZXJ2YWwgdHJlZS4KLSAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdCdWlsZGluZyBmbG93IGV2ZW50IG1hcC4uLicpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZmxvd0V2ZW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgIHZhciBmbG93RXZlbnQgPSB0aGlzLmZsb3dFdmVudHNbaV07Ci0gICAgICAgICAgdGhpcy5mbG93SW50ZXJ2YWxUcmVlLmluc2VydChmbG93RXZlbnQpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuZmxvd0ludGVydmFsVHJlZS51cGRhdGVIaWdoVmFsdWVzKCk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gSm9pbiByZWZzLgotICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0pvaW5pbmcgb2JqZWN0IHJlZnMuLi4nKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbXBvcnRlcnMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgaW1wb3J0ZXJzW2ldLmpvaW5SZWZzKCk7Ci0gICAgICB9LCB0aGlzKTsKLQotICAgICAgLy8gRGVsZXRlIGFueSB1bmRlbGV0ZWQgb2JqZWN0cy4KLSAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdDbGVhbmluZyB1cCB1bmRlbGV0ZWQgb2JqZWN0cy4uLicpOwotICAgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCi0gICAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5hdXRvRGVsZXRlT2JqZWN0cyh0aGlzLmJvdW5kcy5tYXgpOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIC8vIFNvcnQgZ2xvYmFsIGFuZCBwcm9jZXNzIG1lbW9yeSBkdW1wcy4KLSAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdTb3J0aW5nIG1lbW9yeSBkdW1wcy4uLicpOwotICAgICAgICB0aGlzLmdsb2JhbE1lbW9yeUR1bXBzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICAgIHJldHVybiB4LnN0YXJ0IC0geS5zdGFydDsKLSAgICAgICAgfSk7Ci0gICAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKLSAgICAgICAgICB0aGlzLnByb2Nlc3Nlc1twaWRdLnNvcnRNZW1vcnlEdW1wcygpOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIC8vIENhbGN1bGF0ZSBtZW1vcnkgZHVtcCBncmFwaCBhdHRyaWJ1dGVzLgotICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0NhbGN1bGF0aW5nIG1lbW9yeSBkdW1wIGdyYXBoIGF0dHJpYnV0ZXMuLi4nKTsKLSAgICAgICAgdGhpcy5nbG9iYWxNZW1vcnlEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGR1bXApIHsKLSAgICAgICAgICBkdW1wLmNhbGN1bGF0ZUdyYXBoQXR0cmlidXRlcygpOwotICAgICAgICB9KTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBSdW4gaW5pdGlhbGl6ZXJzLgotICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0luaXRpYWxpemluZyBvYmplY3RzIChzdGVwIDIvMikuLi4nKTsKLSAgICAgICAgZm9yICh2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQotICAgICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0uaW5pdGlhbGl6ZU9iamVjdHMoKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBCdWlsZCBldmVudCBpbmRpY2VzIG1hcHBpbmcgZnJvbSBhbiBldmVudCBpZCB0byBhbGwgZmxvdyBldmVudHMuCi0gICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgewotICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQnVpbGRpbmcgZmxvdyBldmVudCBpbmRpY2VzLi4uJyk7Ci0gICAgICAgIHRoaXMubW9kZWxJbmRpY2VzID0gbmV3IHRyLm1vZGVsLk1vZGVsSW5kaWNlcyh0aGlzKTsKLSAgICAgIH0sIHRoaXMpOwotCi0gICAgICAvLyBSdW4gYXVkaXRzLgotICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ1J1bm5pbmcgYXVkaXRvcnMuLi4nKTsKLSAgICAgICAgYXVkaXRvcnMuZm9yRWFjaChmdW5jdGlvbihhdWRpdG9yKSB7Ci0gICAgICAgICAgYXVkaXRvci5ydW5BdWRpdCgpOwotICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLmludGVyYWN0aW9uX3JlY29yZHMuc29ydChmdW5jdGlvbih4LCB5KSB7Ci0gICAgICAgICAgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OwotICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5hbGVydHMuc29ydChmdW5jdGlvbih4LCB5KSB7Ci0gICAgICAgICAgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OwotICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLnVwZGF0ZUJvdW5kcygpOwotICAgICAgfSwgdGhpcyk7Ci0KLSAgICAgIC8vIENsZWFudXAuCi0gICAgICBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5pbXBvcnRpbmdfID0gZmFsc2U7Ci0gICAgICB9LCB0aGlzKTsKLSAgICAgIHJldHVybiBpbXBvcnRUYXNrOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgaW1wb3J0IHdhcm5pbmcgZGF0YS4gRGF0YSBtdXN0IHByb3ZpZGUgdHdvCi0gICAgICogICAgYWNjZXNzb3JzOiB0eXBlLCBtZXNzYWdlLiBUaGUgdHlwZXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlCi0gICAgICogICAgc2hvdWxkIG91dHB1dCB0aGUgbWVzc2FnZSwgd2UnbGwgb25seSBvdXRwdXQgb25lIG1lc3NhZ2Ugb2YgZWFjaCB0eXBlLgotICAgICAqICAgIFRoZSBtZXNzYWdlIGlzIHRoZSBhY3R1YWwgd2FybmluZyBjb250ZW50LgotICAgICAqLwotICAgIGltcG9ydFdhcm5pbmc6IGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgIHRoaXMuaW1wb3J0V2FybmluZ3NfLnB1c2goZGF0YSk7Ci0KLSAgICAgIC8vIE9ubHkgbG9nIGVhY2ggd2FybmluZyB0eXBlIG9uY2UuIFdlIG1heSB3YW50IHRvIGFkZCBzb21lIGtpbmQgb2YKLSAgICAgIC8vIGZsYWcgdG8gYWxsb3cgcmVwb3J0aW5nIGFsbCBpbXBvcnRlciB3YXJuaW5ncy4KLSAgICAgIGlmICh0aGlzLnJlcG9ydGVkSW1wb3J0V2FybmluZ3NfW2RhdGEudHlwZV0gPT09IHRydWUpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgY29uc29sZS53YXJuKGRhdGEubWVzc2FnZSk7Ci0gICAgICB0aGlzLnJlcG9ydGVkSW1wb3J0V2FybmluZ3NfW2RhdGEudHlwZV0gPSB0cnVlOwotICAgIH0sCi0KLSAgICBnZXQgaGFzSW1wb3J0V2FybmluZ3MoKSB7Ci0gICAgICByZXR1cm4gKHRoaXMuaW1wb3J0V2FybmluZ3NfLmxlbmd0aCA+IDApOwotICAgIH0sCi0KLSAgICBnZXQgaW1wb3J0V2FybmluZ3MoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pbXBvcnRXYXJuaW5nc187Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgSW1wb3J0T3B0aW9uczogSW1wb3J0T3B0aW9ucywKLSAgICBDbG9ja1N5bmNSZWNvcmQ6IENsb2NrU3luY1JlY29yZCwKLSAgICBNb2RlbDogTW9kZWwKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL21vZGVsX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWQ5ZGZjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Z1bGxfY29uZmlnLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hbm5vdGF0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBUaHJlYWRTbGljZSA9IHRyLm1vZGVsLlRocmVhZFNsaWNlOwotICB2YXIgVGl0bGVPckNhdGVnb3J5RmlsdGVyID0gdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXI7Ci0gIHZhciBGcmFtZSA9IHRyLm1vZGVsLkZyYW1lOwotCi0gIHZhciBjcmVhdGVNb2RlbFdpdGhPbmVPZkV2ZXJ5dGhpbmcgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBjcHUgPSBtLmtlcm5lbC5nZXRPckNyZWF0ZUNwdSgxKTsKLSAgICBjcHUuc2xpY2VzLnB1c2godHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlKDEsIDMpKTsKLQotICAgIHZhciBwID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgdmFyIHQgPSBwLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHZhciBzbGljZSA9IG5ldyBUaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgNCk7Ci0gICAgdC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7Ci0gICAgdC5hc3luY1NsaWNlR3JvdXAucHVzaCh0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZSgwLCAxLCB0LCB0KSk7Ci0KLSAgICB2YXIgYyA9IHAuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCAnUHJvY2Vzc0NvdW50ZXInKTsKLSAgICB2YXIgYVNlcmllcyA9IG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdhJywgMCk7Ci0gICAgdmFyIGJTZXJpZXMgPSBuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnYicsIDApOwotICAgIGMuYWRkU2VyaWVzKGFTZXJpZXMpOwotICAgIGMuYWRkU2VyaWVzKGJTZXJpZXMpOwotCi0gICAgYVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDUpOwotICAgIGFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgxLCA2KTsKLSAgICBhU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMiwgNSk7Ci0gICAgYVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDMsIDcpOwotCi0gICAgYlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDEwKTsKLSAgICBiU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgMTUpOwotICAgIGJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgyLCAxMik7Ci0gICAgYlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDMsIDE2KTsKLQotICAgIHZhciBjMSA9IGNwdS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsICdDcHVDb3VudGVyJyk7Ci0gICAgdmFyIGFTZXJpZXMgPSBuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnYScsIDApOwotICAgIHZhciBiU2VyaWVzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ2InLCAwKTsKLSAgICBjMS5hZGRTZXJpZXMoYVNlcmllcyk7Ci0gICAgYzEuYWRkU2VyaWVzKGJTZXJpZXMpOwotCi0gICAgYVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDUpOwotICAgIGFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgxLCA2KTsKLSAgICBhU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMiwgNSk7Ci0gICAgYVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDMsIDcpOwotCi0gICAgYlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDEwKTsKLSAgICBiU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgMTUpOwotICAgIGJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgyLCAxMik7Ci0gICAgYlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDMsIDE2KTsKLQotICAgIHZhciBmcmFtZTEgPSBuZXcgRnJhbWUoW3NsaWNlXSwgW3t0aHJlYWQ6IHQsIHN0YXJ0OiAxLCBlbmQ6IDV9XSk7Ci0gICAgcC5mcmFtZXMucHVzaC5hcHBseShwLmZyYW1lcywgZnJhbWUxKTsKLQotICAgIHZhciBnZCA9IG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKG0sIDIpOwotICAgIHZhciBwZCA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcChnZCwgcCwgMik7Ci0gICAgZ2QucHJvY2Vzc01lbW9yeUR1bXBzWzFdID0gcGQ7Ci0gICAgbS5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdkKTsKLSAgICBwLm1lbW9yeUR1bXBzLnB1c2gocGQpOwotCi0gICAgbS51cGRhdGVCb3VuZHMoKTsKLQotICAgIHJldHVybiBtOwotICB9OwotCi0gIHRlc3QoJ21vZGVsQm91bmRzX0VtcHR5TW9kZWwnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0udXBkYXRlQm91bmRzKCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG0uYm91bmRzLm1pbik7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG0uYm91bmRzLm1heCk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsQm91bmRzX09uZUVtcHR5VGhyZWFkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdCA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIG0udXBkYXRlQm91bmRzKCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG0uYm91bmRzLm1pbik7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG0uYm91bmRzLm1heCk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsQm91bmRzX09uZVRocmVhZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHQgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICB0LnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyBUaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMykpOwotICAgIG0udXBkYXRlQm91bmRzKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1pbiwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1heCwgNCk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsQm91bmRzX09uZVRocmVhZEFuZE9uZUVtcHR5VGhyZWFkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICB2YXIgdDIgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICBtLnVwZGF0ZUJvdW5kcygpOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDEpOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDQpOwotICB9KTsKLQotICB0ZXN0KCdtb2RlbEJvdW5kc19PbmVDcHUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBjcHUgPSBtLmtlcm5lbC5nZXRPckNyZWF0ZUNwdSgxKTsKLSAgICBjcHUuc2xpY2VzLnB1c2godHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlKDEsIDMpKTsKLSAgICBtLnVwZGF0ZUJvdW5kcygpOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDEpOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDQpOwotICB9KTsKLQotICB0ZXN0KCdtb2RlbEJvdW5kc19PbmVDcHVPbmVUaHJlYWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBjcHUgPSBtLmtlcm5lbC5nZXRPckNyZWF0ZUNwdSgxKTsKLSAgICBjcHUuc2xpY2VzLnB1c2godHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlKDEsIDMpKTsKLQotICAgIHZhciB0ID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0gICAgdC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDQpKTsKLQotICAgIG0udXBkYXRlQm91bmRzKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1pbiwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1heCwgNSk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsQm91bmRzX0dsb2JhbE1lbW9yeUR1bXBzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2gobmV3IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXAobSwgMSkpOwotICAgIG0uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtLCAzKSk7Ci0gICAgbS5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKG0sIDUpKTsKLQotICAgIG0udXBkYXRlQm91bmRzKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1pbiwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1heCwgNSk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsQm91bmRzX1Byb2Nlc3NNZW1vcnlEdW1wcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKLSAgICB2YXIgZ2QgPSBuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtLCAtMSk7Ci0gICAgcC5tZW1vcnlEdW1wcy5wdXNoKG5ldyB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcChnZCwgbSwgMSkpOwotICAgIHAubWVtb3J5RHVtcHMucHVzaChuZXcgdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXAoZ2QsIG0sIDMpKTsKLSAgICBwLm1lbW9yeUR1bXBzLnB1c2gobmV3IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wKGdkLCBtLCA1KSk7Ci0KLSAgICBtLnVwZGF0ZUJvdW5kcygpOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDEpOwotICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDUpOwotICB9KTsKLQotICB0ZXN0KCdtb2RlbENhbkltcG9ydEVtcHR5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG07Ci0gICAgbSA9IG5ldyB0ci5Nb2RlbChbXSk7Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChtLm1vZGVsSW5kaWNlcyk7Ci0gICAgbSA9IG5ldyB0ci5Nb2RlbCgnJyk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsQ2FuSW1wb3J0U3VidHJhY2VzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHN5c3RyYWNlTGluZXMgPSBbCi0gICAgICAnU3VyZmFjZUZsaW5nZXItMiAgWzAwMV0gLi4uMSAxMDAwLjA6IDA6IEJ8MXx0YXNrQScsCi0gICAgICAnU3VyZmFjZUZsaW5nZXItMiAgWzAwMV0gLi4uMSAyMDAwLjA6IDA6IEUnLAotICAgICAgJyAgICAgICAgY2hyb21lLTMgIFswMDFdIC4uLjEgMjAwMC4wOiAwOiB0cmFjZV9ldmVudF9jbG9ja19zeW5jOiAnICsKLSAgICAgICAgICAncGFyZW50X3RzPTAnCi0gICAgXTsKLSAgICB2YXIgdHJhY2VFdmVudHMgPSBbCi0gICAgICB7dHM6IDEwMDAsIHBpZDogMSwgdGlkOiAzLCBwaDogJ0InLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tCJywgYXJnczogewotICAgICAgICBteV9vYmplY3Q6IHtpZF9yZWY6ICcweDEwMDAnfQotICAgICAgfX0sCi0gICAgICB7dHM6IDIwMDAsIHBpZDogMSwgdGlkOiAzLCBwaDogJ0UnLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tCJywgYXJnczoge319Ci0gICAgXTsKLQotICAgIHZhciBjb21iaW5lZCA9IEpTT04uc3RyaW5naWZ5KHsKLSAgICAgIHRyYWNlRXZlbnRzOiB0cmFjZUV2ZW50cywKLSAgICAgIHN5c3RlbVRyYWNlRXZlbnRzOiBzeXN0cmFjZUxpbmVzLmpvaW4oJ1xuJykKLSAgICB9KTsKLQotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgbS5pbXBvcnRUcmFjZXMoW2NvbWJpbmVkXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcykubGVuZ3RoLCAxKTsKLQotICAgIHZhciBwMSA9IG0ucHJvY2Vzc2VzWzFdOwotICAgIGFzc2VydC5pc0RlZmluZWQocDEpOwotCi0gICAgdmFyIHQyID0gcDEudGhyZWFkc1syXTsKLSAgICB2YXIgdDMgPSBwMS50aHJlYWRzWzNdOwotICAgIGFzc2VydC5pc0RlZmluZWQodDIpOwotICAgIGFzc2VydC5pc0RlZmluZWQodDMpOwotCi0gICAgYXNzZXJ0LmVxdWFsKDEsIDEsIHQyLnNsaWNlR3JvdXAubGVuZ3RoKTsKLSAgICBhc3NlcnQuZXF1YWwodDIuc2xpY2VHcm91cC5zbGljZXNbMF0udGl0bGUsICd0YXNrQScpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHQzLnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwodDMuc2xpY2VHcm91cC5zbGljZXNbMF0udGl0bGUsICd0YXNrQicpOwotICB9KTsKLQotICB0ZXN0KCdtb2RlbENhbkltcG9ydENvbXByZXNzZWRTaW5nbGVTdWJ0cmFjZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBjb21wcmVzc2VkVHJhY2UgPSBhdG9iKCdINHNJQUNLZkZWVUMvd3N1TFVwTFRFNTF5OG5NUzA4dDBqVlNVSWcyTURDTVYnICsKLSAgICAgICAgJ2REVDB6TlVNRFF3TU5BenNGSUFJcWNhdzVxU3hPSnNSNjVnZkRxTUVEcGNBVGlDNjFaYkFBQUEnKTsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtjb21wcmVzc2VkVHJhY2VdKTsKLSAgICBhc3NlcnQuZXF1YWwoMSwgdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKG0ucHJvY2Vzc2VzKS5sZW5ndGgpOwotCi0gICAgdmFyIHAxID0gbS5wcm9jZXNzZXNbMV07Ci0gICAgYXNzZXJ0LmlzRGVmaW5lZChwMSk7Ci0KLSAgICB2YXIgdDIgPSBwMS50aHJlYWRzWzJdOwotICAgIGFzc2VydC5pc0RlZmluZWQodDIpOwotCi0gICAgYXNzZXJ0LmVxdWFsKDEsIHQyLnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoJ3Rhc2tBJywgdDIuc2xpY2VHcm91cC5zbGljZXNbMF0udGl0bGUpOwotICB9KTsKLQotICB0ZXN0KCdtb2RlbENhbkltcG9ydFN1YnRyYWNlc1JlY3Vyc2l2ZWx5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHN5c3RyYWNlTGluZXMgPSBbCi0gICAgICAnU3VyZmFjZUZsaW5nZXItMiAgWzAwMV0gLi4uMSAxMDAwLjA6IDA6IEJ8MXx0YXNrQScsCi0gICAgICAnU3VyZmFjZUZsaW5nZXItMiAgWzAwMV0gLi4uMSAyMDAwLjA6IDA6IEUnLAotICAgICAgJyAgICAgICAgY2hyb21lLTMgIFswMDFdIC4uLjEgMjAwMC4wOiAwOiB0cmFjZV9ldmVudF9jbG9ja19zeW5jOiAnICsKLSAgICAgICAgICAncGFyZW50X3RzPTAnCi0gICAgXTsKLSAgICB2YXIgb3V0ZXJUcmFjZUV2ZW50cyA9IFsKLSAgICAgIHt0czogMTAwMCwgcGlkOiAxLCB0aWQ6IDMsIHBoOiAnQicsIGNhdDogJ2MnLCBuYW1lOiAndGFza0InLCBhcmdzOiB7Ci0gICAgICAgIG15X29iamVjdDoge2lkX3JlZjogJzB4MTAwMCd9Ci0gICAgICB9fQotICAgIF07Ci0KLSAgICB2YXIgaW5uZXJUcmFjZUV2ZW50cyA9IFsKLSAgICAgIHt0czogMjAwMCwgcGlkOiAxLCB0aWQ6IDMsIHBoOiAnRScsIGNhdDogJ2MnLCBuYW1lOiAndGFza0InLCBhcmdzOiB7fX0KLSAgICBdOwotCi0gICAgdmFyIGlubmVyVHJhY2UgPSBKU09OLnN0cmluZ2lmeSh7Ci0gICAgICB0cmFjZUV2ZW50czogaW5uZXJUcmFjZUV2ZW50cywKLSAgICAgIHN5c3RlbVRyYWNlRXZlbnRzOiBzeXN0cmFjZUxpbmVzLmpvaW4oJ1xuJykKLSAgICB9KTsKLQotICAgIHZhciBvdXRlclRyYWNlID0gSlNPTi5zdHJpbmdpZnkoewotICAgICAgdHJhY2VFdmVudHM6IG91dGVyVHJhY2VFdmVudHMsCi0gICAgICBzeXN0ZW1UcmFjZUV2ZW50czogaW5uZXJUcmFjZQotICAgIH0pOwotCi0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICBtLmltcG9ydFRyYWNlcyhbb3V0ZXJUcmFjZV0pOwotICAgIGFzc2VydC5lcXVhbCh0ci5iLmRpY3Rpb25hcnlWYWx1ZXMobS5wcm9jZXNzZXMpLmxlbmd0aCwgMSk7Ci0KLSAgICB2YXIgcDEgPSBtLnByb2Nlc3Nlc1sxXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHAxKTsKLQotICAgIHZhciB0MiA9IHAxLnRocmVhZHNbMl07Ci0gICAgdmFyIHQzID0gcDEudGhyZWFkc1szXTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQyKTsKLSAgICBhc3NlcnQuaXNEZWZpbmVkKHQzKTsKLQotICAgIGFzc2VydC5lcXVhbCgxLCAxLCB0Mi5zbGljZUdyb3VwLmxlbmd0aCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQyLnNsaWNlR3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAndGFza0EnKTsKLQotICAgIGFzc2VydC5lcXVhbCh0My5zbGljZUdyb3VwLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQzLnNsaWNlR3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAndGFza0InKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbW9kZWxXaXRoSW1wb3J0RmFpbHVyZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtYWxmb3JtZWQgPSAne3RyYWNlRXZlbnRzOiBbe2dhcmJhZ2UnOwotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgYXNzZXJ0LnRocm93KGZ1bmN0aW9uKCkgewotICAgICAgbS5pbXBvcnRUcmFjZXMoW21hbGZvcm1lZF0pOwotICAgIH0pOwotICB9KTsKLQotICB0ZXN0KCdUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgczAgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2UoMSwgMyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdhJykubWF0Y2hTbGljZShzMCkpOwotICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ3gnKS5tYXRjaFNsaWNlKHMwKSk7Ci0KLSAgICB2YXIgczEgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZCgnYmEnLCAxLCAzKTsKLSAgICBhc3NlcnQuaXNUcnVlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2EnKS5tYXRjaFNsaWNlKHMxKSk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdiYScpLm1hdGNoU2xpY2UoczEpKTsKLSAgICBhc3NlcnQuaXNGYWxzZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCd4JykubWF0Y2hTbGljZShzMSkpOwotICB9KTsKLQotICB0ZXN0KCdtb2RlbF9maW5kQWxsVGhyZWFkc05hbWVkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgdCA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQubmFtZSA9ICdDckJyb3dzZXJNYWluJzsKLQotICAgIG0udXBkYXRlQm91bmRzKCk7Ci0gICAgdmFyIGYgPSBtLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ0NyQnJvd3Nlck1haW4nKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKFt0XSwgZik7Ci0gICAgZiA9IG0uZmluZEFsbFRocmVhZHNOYW1lZCgnTm9TdWNoVGhyZWFkJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGYubGVuZ3RoLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbW9kZWxfdXBkYXRlQ2F0ZWdvcmllcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHQgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKLSAgICB0LnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyBUaHJlYWRTbGljZSgnY2F0ZWdvcnlBJywgJ2EnLCAwLCAxLCB7fSwgMykpOwotICAgIHQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IFRocmVhZFNsaWNlKCdjYXRlZ29yeUEnLCAnYScsIDAsIDEsIHt9LCAzKSk7Ci0gICAgdC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJ2NhdGVnb3J5QicsICdhJywgMCwgMSwge30sIDMpKTsKLSAgICB0LnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyBUaHJlYWRTbGljZSgnY2F0ZWdvcnlBJywgJ2EnLCAwLCAxLCB7fSwgMykpOwotICAgIHQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IFRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7Ci0gICAgbS51cGRhdGVDYXRlZ29yaWVzXygpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoWydjYXRlZ29yeUEnLCAnY2F0ZWdvcnlCJ10sIG0uY2F0ZWdvcmllcyk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsX2l0ZXJhdGVBbGxFdmVudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IGNyZWF0ZU1vZGVsV2l0aE9uZU9mRXZlcnl0aGluZygpOwotICAgIHZhciB3YXNDYWxsZWQgPSBmYWxzZTsKLSAgICBtLml0ZXJhdGVBbGxFdmVudHMoZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIGFzc2VydC5pc1RydWUoZXZlbnQgaW5zdGFuY2VvZiB0ci5tb2RlbC5FdmVudCk7Ci0gICAgICB3YXNDYWxsZWQgPSB0cnVlOwotICAgIH0pOwotICAgIGFzc2VydC5pc1RydWUod2FzQ2FsbGVkKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY3VzdG9taXplQ2FsbGJhY2snLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgewotICAgICAgdmFyIGJyb3dzZXJQcm9jZXNzID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgICB2YXIgYnJvd3Nlck1haW4gPSBicm93c2VyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKLSAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ1Rhc2snLCAwKTsKLSAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ1N1YlRhc2snLCAxKTsKLSAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuZW5kU2xpY2UoOSk7Ci0gICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDEwKTsKLSAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ1Rhc2snLCAyMCk7Ci0gICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDMwKTsKLSAgICB9KTsKLSAgICB2YXIgdDIgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzJdOwotICAgIGFzc2VydC5lcXVhbCh0Mi5zbGljZUdyb3VwLmxlbmd0aCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHQyLnNsaWNlR3JvdXAudG9wTGV2ZWxTbGljZXMubGVuZ3RoLCAyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbW9kZWxfc29ydHNTYW1wbGVzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICAvLyBUaGUgMTg0LCAwIGFuZCAxODUgYXJlIHRoZSB0aWNrLXRpbWVzCi0gICAgLy8gYW5kIGlycmVzcGVjdGl2ZSBvZiB0aGUgb3JkZXIKLSAgICAvLyBpbiB3aGljaCB0aGUgbGluZXMgYXBwZWFyIGluIHRoZSB0cmFjZSwKLSAgICAvLyB0aGUgc2FtcGxlcyBzaG91bGQgYWx3YXlzIGJlIHNvcnRlZCBieSBzYW1wbGluZyB0aW1lLgotICAgIG0uaW1wb3J0VHJhY2VzKFsndGljaywweDlhLDE4NCwwLDB4MCw1JywKLSAgICAgICAgICAgICAgICAgICAgJ3RpY2ssMHg5YiwwLDAsMHgwLDUnLAotICAgICAgICAgICAgICAgICAgICAndGljaywweDljLDE4NSwwLDB4MCw1J10pOwotICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXNbMF0uc3RhcnQsIDApOwotICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXNbMV0uc3RhcnQsIDAuMTg0KTsKLSAgICBhc3NlcnQuZXF1YWwobS5zYW1wbGVzWzJdLnN0YXJ0LCAwLjE4NSk7Ci0gIH0pOwotCi0gIHRlc3QoJ21vZGVsX3NvcnRzR2xvYmFsTWVtb3J5RHVtcHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtdLCB0cnVlIC8qIHNoaWZ0V29ybGRUb1plcm8gKi8sIGZhbHNlLCBmdW5jdGlvbigpIHsKLSAgICAgIG0uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtLCAxKSk7Ci0gICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2gobmV3IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXAobSwgNSkpOwotICAgICAgbS5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKG0sIDMpKTsKLSAgICB9KTsKLSAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wc1swXS5zdGFydCwgMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uZ2xvYmFsTWVtb3J5RHVtcHNbMV0uc3RhcnQsIDIpOwotICAgIGFzc2VydC5lcXVhbChtLmdsb2JhbE1lbW9yeUR1bXBzWzJdLnN0YXJ0LCA0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnbW9kZWxfZmluYWxpemVzUHJvY2Vzc01lbW9yeUR1bXBzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcCA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIG0uaW1wb3J0VHJhY2VzKFtdLCB0cnVlIC8qIHNoaWZ0V29ybGRUb1plcm8gKi8sIGZhbHNlLCBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBnID0gbmV3IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXAobSwgLTEpOwotICAgICAgbS5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGcpOwotCi0gICAgICB2YXIgcG1kMSA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcChnLCBwLCAxKTsKLSAgICAgIHAubWVtb3J5RHVtcHMucHVzaChwbWQxKTsKLQotICAgICAgdmFyIHBtZDIgPSBuZXcgdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXAoZywgcCwgNSk7Ci0gICAgICBwLm1lbW9yeUR1bXBzLnB1c2gocG1kMik7Ci0KLSAgICAgIHZhciBwbWQzID0gbmV3IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wKGcsIHAsIDMpOwotICAgICAgcC5tZW1vcnlEdW1wcy5wdXNoKHBtZDMpOwotICAgICAgcG1kMy52bVJlZ2lvbnMgPSBbXTsKLSAgICB9KTsKLQotICAgIC8vIENoZWNrIHRoZSBzb3J0IG9yZGVyLgotICAgIGFzc2VydC5lcXVhbChwLm1lbW9yeUR1bXBzWzBdLnN0YXJ0LCAyKTsKLSAgICBhc3NlcnQuZXF1YWwocC5tZW1vcnlEdW1wc1sxXS5zdGFydCwgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKHAubWVtb3J5RHVtcHNbMl0uc3RhcnQsIDYpOwotCi0gICAgLy8gQ2hlY2sgdGhhdCB0aGUgbW9zdCByZWNlbnQgVk0gcmVnaW9ucyBhcmUgbGlua2VkIGNvcnJlY3RseS4KLSAgICBhc3NlcnQuaXNVbmRlZmluZWQocC5tZW1vcnlEdW1wc1swXS5tb3N0UmVjZW50Vm1SZWdpb25zKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YocC5tZW1vcnlEdW1wc1sxXS5tb3N0UmVjZW50Vm1SZWdpb25zLCAwKTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwoCi0gICAgICAgIHAubWVtb3J5RHVtcHNbMV0ubW9zdFJlY2VudFZtUmVnaW9ucywKLSAgICAgICAgcC5tZW1vcnlEdW1wc1syXS5tb3N0UmVjZW50Vm1SZWdpb25zKTsKLSAgfSk7Ci0KLSAgdGVzdCgnbW9kZWxfYW5ub3RhdGlvbkFkZFJlbW92ZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIGExID0gbmV3IHRyLm1vZGVsLkFubm90YXRpb24oKTsKLSAgICB2YXIgYTIgPSBuZXcgdHIubW9kZWwuQW5ub3RhdGlvbigpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QWxsQW5ub3RhdGlvbnMoKS5sZW5ndGgsIDApOwotICAgIG0uYWRkQW5ub3RhdGlvbihhMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QWxsQW5ub3RhdGlvbnMoKS5sZW5ndGgsIDEpOwotICAgIG0uYWRkQW5ub3RhdGlvbihhMik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QWxsQW5ub3RhdGlvbnMoKS5sZW5ndGgsIDIpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QW5ub3RhdGlvbkJ5R1VJRChhMS5ndWlkKSwgYTEpOwotICAgIGFzc2VydC5lcXVhbChtLmdldEFubm90YXRpb25CeUdVSUQoYTIuZ3VpZCksIGEyKTsKLQotICAgIG0ucmVtb3ZlQW5ub3RhdGlvbihhMSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG0uZ2V0QW5ub3RhdGlvbkJ5R1VJRChhMS5ndWlkKSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QW5ub3RhdGlvbkJ5R1VJRChhMi5ndWlkKSwgYTIpOwotICAgIGFzc2VydC5lcXVhbChtLmdldEFsbEFubm90YXRpb25zKCkubGVuZ3RoLCAxKTsKLSAgfSk7Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tdWx0aV9hc3luY19zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL211bHRpX2FzeW5jX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTM2YTcwMC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL211bHRpX2FzeW5jX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvbXVsdGlfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zZWxlY3Rpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIG5ld0FzeW5jU2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXg7Ci0KLSAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7Ci0gICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0gICAgdDEuYXN5bmNTbGljZUdyb3VwLnB1c2gobmV3QXN5bmNTbGljZUV4KHsKLSAgICAgIHRpdGxlOiAnYScsCi0gICAgICBzdGFydDogMTAsCi0gICAgICBlbmQ6IDIwLAotICAgICAgc3RhcnRUaHJlYWQ6IHQxLAotICAgICAgZW5kVGhyZWFkOiB0MQotICAgIH0pKTsKLSAgICB0MS5hc3luY1NsaWNlR3JvdXAucHVzaChuZXdBc3luY1NsaWNlRXgoewotICAgICAgdGl0bGU6ICdiJywKLSAgICAgIHN0YXJ0OiAyNSwKLSAgICAgIGVuZDogNDAsCi0gICAgICBzdGFydFRocmVhZDogdDEsCi0gICAgICBlbmRUaHJlYWQ6IHQxCi0gICAgfSkpOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5jLlNlbGVjdGlvbigpOwotICAgIHNlbGVjdGlvbi5wdXNoKHQxLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0pOwotICAgIHNlbGVjdGlvbi5wdXNoKHQxLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV0pOwotCi0gICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWMtYS1tdWx0aS1hc3luYy1zbGljZS1zdWItdmlldycpOwotICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247Ci0gICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7Ci0gIH0pOwotCi19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3RfY29sbGVjdGlvbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3RfY29sbGVjdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ODZlN2M3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvb2JqZWN0X2NvbGxlY3Rpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL29iamVjdF9pbnN0YW5jZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBPYmplY3RDb2xsZWN0aW9uIGNsYXNzLgotICovCi10ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKLSAgdmFyIE9iamVjdEluc3RhbmNlID0gdHIubW9kZWwuT2JqZWN0SW5zdGFuY2U7Ci0gIHZhciBPYmplY3RTbmFwc2hvdCA9IHRyLm1vZGVsLk9iamVjdFNuYXBzaG90OwotCi0gIC8qKgotICAgKiBBIGNvbGxlY3Rpb24gb2Ygb2JqZWN0IGluc3RhbmNlcyBhbmQgdGhlaXIgc25hcHNob3RzLCBhY2Nlc3NpYmxlIGJ5IGlkIGFuZAotICAgKiB0aW1lLCBvciBieSBvYmplY3QgbmFtZS4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBPYmplY3RDb2xsZWN0aW9uKHBhcmVudCkgewotICAgIHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7Ci0gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7Ci0gICAgdGhpcy5ib3VuZHMgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgIHRoaXMuaW5zdGFuY2VNYXBzQnlJZF8gPSB7fTsgLy8gaWQgLT4gVGltZVRvT2JqZWN0SW5zdGFuY2VNYXAKLSAgICB0aGlzLmluc3RhbmNlc0J5VHlwZU5hbWVfID0ge307Ci0gICAgdGhpcy5jcmVhdGVPYmplY3RJbnN0YW5jZV8gPSB0aGlzLmNyZWF0ZU9iamVjdEluc3RhbmNlXy5iaW5kKHRoaXMpOwotICB9Ci0KLSAgT2JqZWN0Q29sbGVjdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCi0KLSAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOiBmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICB2YXIgYkkgPSAhIWV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCBPYmplY3RJbnN0YW5jZSk7Ci0gICAgICB2YXIgYlMgPSAhIWV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCBPYmplY3RTbmFwc2hvdCk7Ci0gICAgICBpZiAoYkkgPT09IGZhbHNlICYmIGJTID09PSBmYWxzZSkKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKSB7Ci0gICAgICAgIGlmIChiSSkKLSAgICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCBpbnN0YW5jZSk7Ci0gICAgICAgIGlmIChiUykKLSAgICAgICAgICBpbnN0YW5jZS5zbmFwc2hvdHMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOwotICAgICAgfSwgb3B0X3RoaXMpOwotICAgIH0sCi0KLSAgICBjcmVhdGVPYmplY3RJbnN0YW5jZV86IGZ1bmN0aW9uKAotICAgICAgICBwYXJlbnQsIGlkLCBjYXRlZ29yeSwgbmFtZSwgY3JlYXRpb25Ucywgb3B0X2Jhc2VUeXBlTmFtZSkgewotICAgICAgdmFyIGNvbnN0cnVjdG9yID0gdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UuZ2V0Q29uc3RydWN0b3IoCi0gICAgICAgICAgY2F0ZWdvcnksIG5hbWUpOwotICAgICAgdmFyIGluc3RhbmNlID0gbmV3IGNvbnN0cnVjdG9yKAotICAgICAgICAgIHBhcmVudCwgaWQsIGNhdGVnb3J5LCBuYW1lLCBjcmVhdGlvblRzLCBvcHRfYmFzZVR5cGVOYW1lKTsKLSAgICAgIHZhciB0eXBlTmFtZSA9IGluc3RhbmNlLnR5cGVOYW1lOwotICAgICAgdmFyIGluc3RhbmNlc09mVHlwZU5hbWUgPSB0aGlzLmluc3RhbmNlc0J5VHlwZU5hbWVfW3R5cGVOYW1lXTsKLSAgICAgIGlmICghaW5zdGFuY2VzT2ZUeXBlTmFtZSkgewotICAgICAgICBpbnN0YW5jZXNPZlR5cGVOYW1lID0gW107Ci0gICAgICAgIHRoaXMuaW5zdGFuY2VzQnlUeXBlTmFtZV9bdHlwZU5hbWVdID0gaW5zdGFuY2VzT2ZUeXBlTmFtZTsKLSAgICAgIH0KLSAgICAgIGluc3RhbmNlc09mVHlwZU5hbWUucHVzaChpbnN0YW5jZSk7Ci0gICAgICByZXR1cm4gaW5zdGFuY2U7Ci0gICAgfSwKLQotICAgIGdldE9yQ3JlYXRlSW5zdGFuY2VNYXBfOiBmdW5jdGlvbihpZCkgewotICAgICAgdmFyIGluc3RhbmNlTWFwID0gdGhpcy5pbnN0YW5jZU1hcHNCeUlkX1tpZF07Ci0gICAgICBpZiAoaW5zdGFuY2VNYXApCi0gICAgICAgIHJldHVybiBpbnN0YW5jZU1hcDsKLSAgICAgIGluc3RhbmNlTWFwID0gbmV3IHRyLm1vZGVsLlRpbWVUb09iamVjdEluc3RhbmNlTWFwKAotICAgICAgICAgIHRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfLCB0aGlzLnBhcmVudCwgaWQpOwotICAgICAgdGhpcy5pbnN0YW5jZU1hcHNCeUlkX1tpZF0gPSBpbnN0YW5jZU1hcDsKLSAgICAgIHJldHVybiBpbnN0YW5jZU1hcDsKLSAgICB9LAotCi0gICAgaWRXYXNDcmVhdGVkOiBmdW5jdGlvbihpZCwgY2F0ZWdvcnksIG5hbWUsIHRzKSB7Ci0gICAgICB2YXIgaW5zdGFuY2VNYXAgPSB0aGlzLmdldE9yQ3JlYXRlSW5zdGFuY2VNYXBfKGlkKTsKLSAgICAgIHJldHVybiBpbnN0YW5jZU1hcC5pZFdhc0NyZWF0ZWQoY2F0ZWdvcnksIG5hbWUsIHRzKTsKLSAgICB9LAotCi0gICAgYWRkU25hcHNob3Q6IGZ1bmN0aW9uKGlkLCBjYXRlZ29yeSwgbmFtZSwgdHMsIGFyZ3MsIG9wdF9iYXNlVHlwZU5hbWUpIHsKLSAgICAgIHZhciBpbnN0YW5jZU1hcCA9IHRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpOwotICAgICAgdmFyIHNuYXBzaG90ID0gaW5zdGFuY2VNYXAuYWRkU25hcHNob3QoCi0gICAgICAgICAgY2F0ZWdvcnksIG5hbWUsIHRzLCBhcmdzLCBvcHRfYmFzZVR5cGVOYW1lKTsKLSAgICAgIGlmIChzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5jYXRlZ29yeSAhPSBjYXRlZ29yeSkgewotICAgICAgICB2YXIgbXNnID0gJ0FkZGVkIHNuYXBzaG90IG5hbWU9JyArIG5hbWUgKyAnIHdpdGggY2F0PScgKyBjYXRlZ29yeSArCi0gICAgICAgICAgICAnIGltcG9zc2libGUuIEl0IGluc3RhbmNlIHdhcyBjcmVhdGVkL3NuYXBzaG90dGVkIHdpdGggY2F0PScgKwotICAgICAgICAgICAgc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuY2F0ZWdvcnkgKyAnIG5hbWU9JyArCi0gICAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5uYW1lOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKLSAgICAgIH0KLSAgICAgIGlmIChvcHRfYmFzZVR5cGVOYW1lICYmCi0gICAgICAgICAgc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuYmFzZVR5cGVOYW1lICE9IG9wdF9iYXNlVHlwZU5hbWUpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgYWRkIHNuYXBzaG90IHdpdGggYmFzZVR5cGVOYW1lPScgKwotICAgICAgICAgICAgICAgICAgICAgICAgb3B0X2Jhc2VUeXBlTmFtZSArICcuIEl0ICcgKwotICAgICAgICAgICAgICAgICAgICAgICAgJ3dhcyBwcmV2aW91c2x5IGNyZWF0ZWQgd2l0aCBuYW1lPScgKwotICAgICAgICAgICAgICAgICAgICAgICAgc25hcHNob3Qub2JqZWN0SW5zdGFuY2UuYmFzZVR5cGVOYW1lKTsKLSAgICAgIH0KLSAgICAgIGlmIChzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5uYW1lICE9IG5hbWUpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgYWRkIHNuYXBzaG90IHdpdGggbmFtZT0nICsgbmFtZSArICcuIEl0ICcgKwotICAgICAgICAgICAgICAgICAgICAgICAgJ3dhcyBwcmV2aW91c2x5IGNyZWF0ZWQgd2l0aCBuYW1lPScgKwotICAgICAgICAgICAgICAgICAgICAgICAgc25hcHNob3Qub2JqZWN0SW5zdGFuY2UubmFtZSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gc25hcHNob3Q7Ci0gICAgfSwKLQotICAgIGlkV2FzRGVsZXRlZDogZnVuY3Rpb24oaWQsIGNhdGVnb3J5LCBuYW1lLCB0cykgewotICAgICAgdmFyIGluc3RhbmNlTWFwID0gdGhpcy5nZXRPckNyZWF0ZUluc3RhbmNlTWFwXyhpZCk7Ci0gICAgICB2YXIgZGVsZXRlZEluc3RhbmNlID0gaW5zdGFuY2VNYXAuaWRXYXNEZWxldGVkKGNhdGVnb3J5LCBuYW1lLCB0cyk7Ci0gICAgICBpZiAoIWRlbGV0ZWRJbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKGRlbGV0ZWRJbnN0YW5jZS5jYXRlZ29yeSAhPSBjYXRlZ29yeSkgewotICAgICAgICB2YXIgbXNnID0gJ0RlbGV0aW5nIG9iamVjdCAnICsgZGVsZXRlZEluc3RhbmNlLm5hbWUgKwotICAgICAgICAgICAgJyB3aXRoIGEgZGlmZmVyZW50IGNhdGVnb3J5ICcgKwotICAgICAgICAgICAgJ3RoYW4gd2hlbiBpdCB3YXMgY3JlYXRlZC4gSXQgcHJldmlvdXMgaGFkIGNhdD0nICsKLSAgICAgICAgICAgIGRlbGV0ZWRJbnN0YW5jZS5jYXRlZ29yeSArICcgYnV0IHRoZSBkZWxldGUgY29tbWFuZCAnICsKLSAgICAgICAgICAgICdoYWQgY2F0PScgKyBjYXRlZ29yeTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7Ci0gICAgICB9Ci0gICAgICBpZiAoZGVsZXRlZEluc3RhbmNlLmJhc2VUeXBlTmFtZSAhPSBuYW1lKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignRGVsZXRpb24gcmVxdWVzdGVkIGZvciBuYW1lPScgKwotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArICcgY291bGQgbm90IHByb2NlZWQ6ICcgKwotICAgICAgICAgICAgICAgICAgICAgICAgJ0FuIGV4aXN0aW5nIG9iamVjdCB3aXRoIGJhc2VUeXBlTmFtZT0nICsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRJbnN0YW5jZS5iYXNlVHlwZU5hbWUgKyAnIGV4aXN0ZWQuJyk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGF1dG9EZWxldGVPYmplY3RzOiBmdW5jdGlvbihtYXhUaW1lc3RhbXApIHsKLSAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMuaW5zdGFuY2VNYXBzQnlJZF8sIGZ1bmN0aW9uKGlkLCBpMmltYXApIHsKLSAgICAgICAgdmFyIGxhc3RJbnN0YW5jZSA9IGkyaW1hcC5sYXN0SW5zdGFuY2U7Ci0gICAgICAgIGlmIChsYXN0SW5zdGFuY2UuZGVsZXRpb25UcyAhPSBOdW1iZXIuTUFYX1ZBTFVFKQotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaTJpbWFwLmlkV2FzRGVsZXRlZCgKLSAgICAgICAgICAgIGxhc3RJbnN0YW5jZS5jYXRlZ29yeSwgbGFzdEluc3RhbmNlLm5hbWUsIG1heFRpbWVzdGFtcCk7Ci0gICAgICAgIC8vIGlkV2FzRGVsZXRlZCB3aWxsIGNhdXNlIGxhc3RJbnN0YW5jZS5kZWxldGlvblRzV2FzRXhwbGljaXQgdG8gYmUgc2V0Ci0gICAgICAgIC8vIHRvIHRydWUuIFVuc2V0IGl0IGhlcmUuCi0gICAgICAgIGxhc3RJbnN0YW5jZS5kZWxldGlvblRzV2FzRXhwbGljaXQgPSBmYWxzZTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBnZXRPYmplY3RJbnN0YW5jZUF0OiBmdW5jdGlvbihpZCwgdHMpIHsKLSAgICAgIHZhciBpbnN0YW5jZU1hcCA9IHRoaXMuaW5zdGFuY2VNYXBzQnlJZF9baWRdOwotICAgICAgaWYgKCFpbnN0YW5jZU1hcCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiBpbnN0YW5jZU1hcC5nZXRJbnN0YW5jZUF0KHRzKTsKLSAgICB9LAotCi0gICAgZ2V0U25hcHNob3RBdDogZnVuY3Rpb24oaWQsIHRzKSB7Ci0gICAgICB2YXIgaW5zdGFuY2UgPSB0aGlzLmdldE9iamVjdEluc3RhbmNlQXQoaWQsIHRzKTsKLSAgICAgIGlmICghaW5zdGFuY2UpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gaW5zdGFuY2UuZ2V0U25hcHNob3RBdCh0cyk7Ci0gICAgfSwKLQotICAgIGl0ZXJPYmplY3RJbnN0YW5jZXM6IGZ1bmN0aW9uKGl0ZXIsIG9wdF90aGlzKSB7Ci0gICAgICBvcHRfdGhpcyA9IG9wdF90aGlzIHx8IHRoaXM7Ci0gICAgICB0ci5iLml0ZXJJdGVtcyh0aGlzLmluc3RhbmNlTWFwc0J5SWRfLCBmdW5jdGlvbihpZCwgaTJpbWFwKSB7Ci0gICAgICAgIGkyaW1hcC5pbnN0YW5jZXMuZm9yRWFjaChpdGVyLCBvcHRfdGhpcyk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgZ2V0QWxsT2JqZWN0SW5zdGFuY2VzOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBpbnN0YW5jZXMgPSBbXTsKLSAgICAgIHRoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpKSB7IGluc3RhbmNlcy5wdXNoKGkpOyB9KTsKLSAgICAgIHJldHVybiBpbnN0YW5jZXM7Ci0gICAgfSwKLQotICAgIGdldEFsbEluc3RhbmNlc05hbWVkOiBmdW5jdGlvbihuYW1lKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZXNCeVR5cGVOYW1lX1tuYW1lXTsKLSAgICB9LAotCi0gICAgZ2V0QWxsSW5zdGFuY2VzQnlUeXBlTmFtZTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZXNCeVR5cGVOYW1lXzsKLSAgICB9LAotCi0gICAgcHJlSW5pdGlhbGl6ZUFsbE9iamVjdHM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKSB7Ci0gICAgICAgIGluc3RhbmNlLnByZUluaXRpYWxpemUoKTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICBpbml0aWFsaXplQWxsT2JqZWN0czogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2UpIHsKLSAgICAgICAgaW5zdGFuY2UuaW5pdGlhbGl6ZSgpOwotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGluaXRpYWxpemVJbnN0YW5jZXM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKSB7Ci0gICAgICAgIGluc3RhbmNlLmluaXRpYWxpemUoKTsKLSAgICAgIH0pOwotICAgIH0sCi0KLSAgICB1cGRhdGVCb3VuZHM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5ib3VuZHMucmVzZXQoKTsKLSAgICAgIHRoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgICBpbnN0YW5jZS51cGRhdGVCb3VuZHMoKTsKLSAgICAgICAgdGhpcy5ib3VuZHMuYWRkUmFuZ2UoaW5zdGFuY2UuYm91bmRzKTsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKLSAgICAgIHRoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgICBpbnN0YW5jZS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgYWRkQ2F0ZWdvcmllc1RvRGljdDogZnVuY3Rpb24oY2F0ZWdvcmllc0RpY3QpIHsKLSAgICAgIHRoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSkgewotICAgICAgICBjYXRlZ29yaWVzRGljdFtpbnN0YW5jZS5jYXRlZ29yeV0gPSB0cnVlOwotICAgICAgfSk7Ci0gICAgfQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgT2JqZWN0Q29sbGVjdGlvbjogT2JqZWN0Q29sbGVjdGlvbgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvb2JqZWN0X2luc3RhbmNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL29iamVjdF9pbnN0YW5jZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmUwODI4Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvb2JqZWN0X2luc3RhbmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9vYmplY3Rfc25hcHNob3QuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIE9iamVjdFNuYXBzaG90IGFuZCBPYmplY3RIaXN0b3J5IGNsYXNzZXMuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICB2YXIgT2JqZWN0U25hcHNob3QgPSB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdDsKLQotICAvKioKLSAgICogQW4gb2JqZWN0IHdpdGggYSBzcGVjaWZpYyBpZCwgd2hvc2Ugc3RhdGUgaGFzIGJlZW4gc25hcHNob3R0ZWQgc2V2ZXJhbAotICAgKiB0aW1lcy4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBPYmplY3RJbnN0YW5jZSgKLSAgICAgIHBhcmVudCwgaWQsIGNhdGVnb3J5LCBuYW1lLCBjcmVhdGlvblRzLCBvcHRfYmFzZVR5cGVOYW1lKSB7Ci0gICAgdHIubW9kZWwuRXZlbnQuY2FsbCh0aGlzKTsKLSAgICB0aGlzLnBhcmVudCA9IHBhcmVudDsKLSAgICB0aGlzLmlkID0gaWQ7Ci0gICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5OwotICAgIHRoaXMuYmFzZVR5cGVOYW1lID0gb3B0X2Jhc2VUeXBlTmFtZSA/IG9wdF9iYXNlVHlwZU5hbWUgOiBuYW1lOwotICAgIHRoaXMubmFtZSA9IG5hbWU7Ci0gICAgdGhpcy5jcmVhdGlvblRzID0gY3JlYXRpb25UczsKLSAgICB0aGlzLmNyZWF0aW9uVHNXYXNFeHBsaWNpdCA9IGZhbHNlOwotICAgIHRoaXMuZGVsZXRpb25UcyA9IE51bWJlci5NQVhfVkFMVUU7Ci0gICAgdGhpcy5kZWxldGlvblRzV2FzRXhwbGljaXQgPSBmYWxzZTsKLSAgICB0aGlzLmNvbG9ySWQgPSAwOwotICAgIHRoaXMuYm91bmRzID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICB0aGlzLnNuYXBzaG90cyA9IFtdOwotICAgIHRoaXMuaGFzSW1wbGljaXRTbmFwc2hvdHMgPSBmYWxzZTsKLSAgfQotCi0gIE9iamVjdEluc3RhbmNlLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50LnByb3RvdHlwZSwKLQotICAgIGdldCB0eXBlTmFtZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLm5hbWU7Ci0gICAgfSwKLQotICAgIGFkZEJvdW5kc1RvUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlKSB7Ci0gICAgICByYW5nZS5hZGRSYW5nZSh0aGlzLmJvdW5kcyk7Ci0gICAgfSwKLQotICAgIGFkZFNuYXBzaG90OiBmdW5jdGlvbih0cywgYXJncywgb3B0X25hbWUsIG9wdF9iYXNlVHlwZU5hbWUpIHsKLSAgICAgIGlmICh0cyA8IHRoaXMuY3JlYXRpb25UcykKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTbmFwc2hvdHMgbXVzdCBiZSA+PSBpbnN0YW5jZS5jcmVhdGlvblRzJyk7Ci0gICAgICBpZiAodHMgPj0gdGhpcy5kZWxldGlvblRzKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBjYW5ub3QgYmUgYWRkZWQgYWZ0ZXIgJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAnYW4gb2JqZWN0cyBkZWxldGlvbiB0aW1lc3RhbXAuJyk7Ci0KLSAgICAgIHZhciBsYXN0U25hcHNob3Q7Ci0gICAgICBpZiAodGhpcy5zbmFwc2hvdHMubGVuZ3RoID4gMCkgewotICAgICAgICBsYXN0U25hcHNob3QgPSB0aGlzLnNuYXBzaG90c1t0aGlzLnNuYXBzaG90cy5sZW5ndGggLSAxXTsKLSAgICAgICAgaWYgKGxhc3RTbmFwc2hvdC50cyA9PSB0cykKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBhbHJlYWR5IGV4aXN0cyBhdCB0aGlzIHRpbWUhJyk7Ci0gICAgICAgIGlmICh0cyA8IGxhc3RTbmFwc2hvdC50cykgewotICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKLSAgICAgICAgICAgICAgJ1NuYXBzaG90cyBtdXN0IGJlIGFkZGVkIGluIGluY3JlYXNpbmcgdGltZXN0YW1wIG9yZGVyJyk7Ci0gICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgLy8gVXBkYXRlIGJhc2VUeXBlTmFtZSBpZiBuZWVkZWQuCi0gICAgICBpZiAob3B0X25hbWUgJiYKLSAgICAgICAgICAodGhpcy5uYW1lICE9IG9wdF9uYW1lKSkgewotICAgICAgICBpZiAoIW9wdF9iYXNlVHlwZU5hbWUpCi0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYmFzZSB0eXBlIG5hbWUgZm9yIG5hbWUgdXBkYXRlJyk7Ci0gICAgICAgIGlmICh0aGlzLmJhc2VUeXBlTmFtZSAhPSBvcHRfYmFzZVR5cGVOYW1lKQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVwZGF0ZSB0eXBlIG5hbWU6IGJhc2UgdHlwZXMgZG9udCBtYXRjaCcpOwotICAgICAgICB0aGlzLm5hbWUgPSBvcHRfbmFtZTsKLSAgICAgIH0KLQotICAgICAgdmFyIHNuYXBzaG90Q29uc3RydWN0b3IgPQotICAgICAgICAgIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90LmdldENvbnN0cnVjdG9yKAotICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5LCB0aGlzLm5hbWUpOwotICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IHNuYXBzaG90Q29uc3RydWN0b3IodGhpcywgdHMsIGFyZ3MpOwotICAgICAgdGhpcy5zbmFwc2hvdHMucHVzaChzbmFwc2hvdCk7Ci0gICAgICByZXR1cm4gc25hcHNob3Q7Ci0gICAgfSwKLQotICAgIHdhc0RlbGV0ZWQ6IGZ1bmN0aW9uKHRzKSB7Ci0gICAgICB2YXIgbGFzdFNuYXBzaG90OwotICAgICAgaWYgKHRoaXMuc25hcHNob3RzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgbGFzdFNuYXBzaG90ID0gdGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoIC0gMV07Ci0gICAgICAgIGlmIChsYXN0U25hcHNob3QudHMgPiB0cykKLSAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCi0gICAgICAgICAgICAgICdJbnN0YW5jZSBjYW5ub3QgYmUgZGVsZXRlZCBhdCB0cz0nICsKLSAgICAgICAgICAgICAgdHMgKyAnLiBBIHNuYXBzaG90IGV4aXN0cyB0aGF0IGlzIG9sZGVyLicpOwotICAgICAgfQotICAgICAgdGhpcy5kZWxldGlvblRzID0gdHM7Ci0gICAgICB0aGlzLmRlbGV0aW9uVHNXYXNFeHBsaWNpdCA9IHRydWU7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFNlZSBPYmplY3RTbmFwc2hvdCBjb25zdHJ1Y3RvciBub3RlcyBvbiBvYmplY3QgaW5pdGlhbGl6YXRpb24uCi0gICAgICovCi0gICAgcHJlSW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc25hcHNob3RzLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLnNuYXBzaG90c1tpXS5wcmVJbml0aWFsaXplKCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFNlZSBPYmplY3RTbmFwc2hvdCBjb25zdHJ1Y3RvciBub3RlcyBvbiBvYmplY3QgaW5pdGlhbGl6YXRpb24uCi0gICAgICovCi0gICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc25hcHNob3RzLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLnNuYXBzaG90c1tpXS5pbml0aWFsaXplKCk7Ci0gICAgfSwKLQotICAgIGdldFNuYXBzaG90QXQ6IGZ1bmN0aW9uKHRzKSB7Ci0gICAgICBpZiAodHMgPCB0aGlzLmNyZWF0aW9uVHMpIHsKLSAgICAgICAgaWYgKHRoaXMuY3JlYXRpb25Uc1dhc0V4cGxpY2l0KQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndHMgbXVzdCBiZSB3aXRoaW4gbGlmZXRpbWUgb2YgdGhpcyBpbnN0YW5jZScpOwotICAgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdHNbMF07Ci0gICAgICB9Ci0gICAgICBpZiAodHMgPiB0aGlzLmRlbGV0aW9uVHMpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigndHMgbXVzdCBiZSB3aXRoaW4gbGlmZXRpbWUgb2YgdGhpcyBpbnN0YW5jZScpOwotCi0gICAgICB2YXIgc25hcHNob3RzID0gdGhpcy5zbmFwc2hvdHM7Ci0gICAgICB2YXIgaSA9IHRyLmIuZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMoCi0gICAgICAgICAgc25hcHNob3RzLAotICAgICAgICAgIGZ1bmN0aW9uKHNuYXBzaG90KSB7IHJldHVybiBzbmFwc2hvdC50czsgfSwKLSAgICAgICAgICBmdW5jdGlvbihzbmFwc2hvdCwgaSkgewotICAgICAgICAgICAgaWYgKGkgPT0gc25hcHNob3RzLmxlbmd0aCAtIDEpCi0gICAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdHNbaV0ub2JqZWN0SW5zdGFuY2UuZGVsZXRpb25UczsKLSAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdHNbaSArIDFdLnRzIC0gc25hcHNob3RzW2ldLnRzOwotICAgICAgICAgIH0sCi0gICAgICAgICAgdHMpOwotICAgICAgaWYgKGkgPCAwKSB7Ci0gICAgICAgIC8vIE5vdGUsIHRoaXMgaXMgYSBsaXR0bGUgYml0IHNrZXRjaHk6IHRoaXMgbGV0cyBlYXJseSB0cyBwb2ludCBhdCB0aGUKLSAgICAgICAgLy8gZmlyc3Qgc25hcHNob3QsIGV2ZW4gYmVmb3JlIGl0IGlzIHRha2VuLiBXZSBkbyB0aGlzIGJlY2F1c2UgcmFzdGVyCi0gICAgICAgIC8vIHRhc2tzIHVzdWFsbHkgcG9zdCBiZWZvcmUgdGhlaXIgdGlsZSBzbmFwc2hvdHMgYXJlIGR1bXBlZC4gVGhpcyBtYXkKLSAgICAgICAgLy8gYmUgYSBnb29kIGxpbmUgb2YgY29kZSB0byByZS12aXNpdCBpZiB3ZSBzdGFydCBzZWVpbmcgc3RyYW5nZSBhbmQKLSAgICAgICAgLy8gY29uZnVzaW5nIG9iamVjdCByZWZlcmVuY2VzIHNob3dpbmcgdXAgaW4gdGhlIHRyYWNlcy4KLSAgICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3RzWzBdOwotICAgICAgfQotICAgICAgaWYgKGkgPj0gdGhpcy5zbmFwc2hvdHMubGVuZ3RoKQotICAgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoIC0gMV07Ci0gICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdHNbaV07Ci0gICAgfSwKLQotICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOwotICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5jcmVhdGlvblRzKTsKLSAgICAgIGlmICh0aGlzLmRlbGV0aW9uVHMgIT0gTnVtYmVyLk1BWF9WQUxVRSkKLSAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5kZWxldGlvblRzKTsKLSAgICAgIGVsc2UgaWYgKHRoaXMuc25hcHNob3RzLmxlbmd0aCA+IDApCi0gICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc25hcHNob3RzW3RoaXMuc25hcHNob3RzLmxlbmd0aCAtIDFdLnRzKTsKLSAgICB9LAotCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICB0aGlzLmNyZWF0aW9uVHMgKz0gYW1vdW50OwotICAgICAgaWYgKHRoaXMuZGVsZXRpb25UcyAhPSBOdW1iZXIuTUFYX1ZBTFVFKQotICAgICAgICB0aGlzLmRlbGV0aW9uVHMgKz0gYW1vdW50OwotICAgICAgdGhpcy5zbmFwc2hvdHMuZm9yRWFjaChmdW5jdGlvbihzbmFwc2hvdCkgewotICAgICAgICBzbmFwc2hvdC50cyArPSBhbW91bnQ7Ci0gICAgICB9KTsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy50eXBlTmFtZSArICcgb2JqZWN0ICcgKyB0aGlzLmlkOwotICAgIH0KLSAgfTsKLQotICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAotICAgIE9iamVjdEluc3RhbmNlLAotICAgIHsKLSAgICAgIG5hbWU6ICdvYmplY3RJbnN0YW5jZScsCi0gICAgICBwbHVyYWxOYW1lOiAnb2JqZWN0SW5zdGFuY2VzJywKLSAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1zaW5nbGUtb2JqZWN0LWluc3RhbmNlLXN1Yi12aWV3JywKLSAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItYy1hLW11bHRpLW9iamVjdC1zdWItdmlldycKLSAgICB9KTsKLQotICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucygKLSAgICAgIHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTsKLSAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBPYmplY3RJbnN0YW5jZTsKLSAgb3B0aW9ucy5kZWZhdWx0Q29uc3RydWN0b3IgPSBPYmplY3RJbnN0YW5jZTsKLSAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KE9iamVjdEluc3RhbmNlLCBvcHRpb25zKTsKLQotICByZXR1cm4gewotICAgIE9iamVjdEluc3RhbmNlOiBPYmplY3RJbnN0YW5jZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvb2JqZWN0X3NuYXBzaG90Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL29iamVjdF9zbmFwc2hvdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWU0ZmU3Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvb2JqZWN0X3NuYXBzaG90Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIC8qKgotICAgKiBBIHNuYXBzaG90IG9mIGFuIG9iamVjdCBpbnN0YW5jZSwgYXQgYSBnaXZlbiBtb21lbnQgaW4gdGltZS4KLSAgICoKLSAgICogSW5pdGlhbGl6YXRpb24gb2Ygc25hcHNob3RzIGFuZCBpbnN0YW5jZXMgaXMgdGhyZWUgcGhhc2VkOgotICAgKgotICAgKiAxLiBJbnN0YW5jZXMgYW5kIHNuYXBzaG90cyBhcmUgY29uc3RydWN0ZWQuIFRoaXMgaGFwcGVucyBkdXJpbmcgZXZlbnQKLSAgICogICAgaW1wb3J0aW5nLiBMaXR0bGUgc2hvdWxkIGJlIGRvbmUgaGVyZSwgYmVjYXVzZSB0aGUgb2JqZWN0J3MgZGF0YQotICAgKiAgICBhcmUgc3RpbGwgYmVpbmcgdXNlZCBieSB0aGUgaW1wb3J0ZXIgdG8gcmVjb25zdHJ1Y3Qgb2JqZWN0IHJlZmVyZW5jZXMuCi0gICAqCi0gICAqIDIuIEluc3RhbmNlcyBhbmQgc25hcHNodG9zIGFyZSBwcmVpbml0aWFsaXplZC4gVGhpcyBoYXBwZW5zIGFmdGVyIGltcGxpY2l0Ci0gICAqICAgIG9iamVjdHMgaGF2ZSBiZWVuIGZvdW5kLCBidXQgYmVmb3JlIGFueSByZWZlcmVuY2VzIGhhdmUgYmVlbiBmb3VuZCBhbmQKLSAgICogICAgc3dpdGNoZWQgdG8gZGlyZWN0IHJlZmVyZW5jZXMuIFRodXMsIGV2ZXJ5IHNuYXBzaG90IHN0YW5kcyBvbiBpdHMgb3duLgotICAgKiAgICBUaGlzIGlzIGEgZ29vZCB0aW1lIHRvIGRvIGdsb2JhbCBmaWVsZCByZW5hbWluZyBhbmQgdHlwZSBjb252ZXJzaW9uLAotICAgKiAgICBlLmcuIHJlY29nbml6aW5nIGRvbWFpbi1zcGVjaWZpYyB0eXBlcyBhbmQgY29udmVydGluZyBmcm9tIEMrKyBuYW1pbmcKLSAgICogICAgY29udmVudGlvbiB0byBKUy4KLSAgICoKLSAgICogMy4gSW5zdGFuY2VzIGFuZCBzbmFwc2h0b3MgYXJlIGluaXRpYWxpemVkLiBBdCB0aGlzIHBvaW50LCB7aWRfcmVmOgotICAgKiAgICAnMHgxMDAwJ30gZmllbGRzIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gc25hcHNob3QgcmVmZXJlbmNlcy4gVGhpcyBpcyBhCi0gICAqICAgIGdvb2QgdGltZSB0byBnZW5lcmljIGluaXRpYWxpemF0aW9uIHN0ZXBzIGFuZCBhcmd1bWVudCB2ZXJpZmljYXRpb24uCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gT2JqZWN0U25hcHNob3Qob2JqZWN0SW5zdGFuY2UsIHRzLCBhcmdzKSB7Ci0gICAgdHIubW9kZWwuRXZlbnQuY2FsbCh0aGlzKTsKLSAgICB0aGlzLm9iamVjdEluc3RhbmNlID0gb2JqZWN0SW5zdGFuY2U7Ci0gICAgdGhpcy50cyA9IHRzOwotICAgIHRoaXMuYXJncyA9IGFyZ3M7Ci0gIH0KLQotICBPYmplY3RTbmFwc2hvdC5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsCi0KLSAgICAvKioKLSAgICAgKiBTZWUgT2JqZWN0U25hcHNob3QgY29uc3RydWN0b3Igbm90ZXMgb24gb2JqZWN0IGluaXRpYWxpemF0aW9uLgotICAgICAqLwotICAgIHByZUluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBTZWUgT2JqZWN0U25hcHNob3QgY29uc3RydWN0b3Igbm90ZXMgb24gb2JqZWN0IGluaXRpYWxpemF0aW9uLgotICAgICAqLwotICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewotICAgIH0sCi0KLSAgICBhZGRCb3VuZHNUb1JhbmdlOiBmdW5jdGlvbihyYW5nZSkgewotICAgICAgcmFuZ2UuYWRkVmFsdWUodGhpcy50cyk7Ci0gICAgfSwKLQotICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgewotICAgICAgcmV0dXJuICdTbmFwc2hvdCBvZiAnICsKLSAgICAgICAgICAgICB0aGlzLm9iamVjdEluc3RhbmNlLnR5cGVOYW1lICsgJyAnICsKLSAgICAgICAgICAgICB0aGlzLm9iamVjdEluc3RhbmNlLmlkICsgJyBAICcgKwotICAgICAgICAgICAgIHRyLmIudW5pdHMudHNTdHJpbmcodGhpcy50cyk7Ci0gICAgfQotICB9OwotCi0gIHRyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoCi0gICAgICBPYmplY3RTbmFwc2hvdCwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ29iamVjdFNuYXBzaG90JywKLSAgICAgICAgcGx1cmFsTmFtZTogJ29iamVjdFNuYXBzaG90cycsCi0gICAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1zaW5nbGUtb2JqZWN0LXNuYXBzaG90LXN1Yi12aWV3JywKLSAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtbXVsdGktb2JqZWN0LXN1Yi12aWV3JwotICAgICAgfSk7Ci0KLSAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnMoCi0gICAgICB0ci5iLlRZUEVfQkFTRURfUkVHSVNUUllfTU9ERSk7Ci0gIG9wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzID0gT2JqZWN0U25hcHNob3Q7Ci0gIG9wdGlvbnMuZGVmYXVsdENvbnN0cnVjdG9yID0gT2JqZWN0U25hcHNob3Q7Ci0gIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RTbmFwc2hvdCwgb3B0aW9ucyk7Ci0KLSAgcmV0dXJuIHsKLSAgICBPYmplY3RTbmFwc2hvdDogT2JqZWN0U25hcHNob3QKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvcHJvY2Vzcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGY1OGFkLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvcHJvY2Vzcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3Byb2Nlc3NfYmFzZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBQcm9jZXNzIGNsYXNzLgotICovCi10ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFByb2Nlc3NCYXNlID0gdHIubW9kZWwuUHJvY2Vzc0Jhc2U7Ci0gIHZhciBQcm9jZXNzSW5zdGFudEV2ZW50ID0gdHIubW9kZWwuUHJvY2Vzc0luc3RhbnRFdmVudDsKLSAgdmFyIEZyYW1lID0gdHIubW9kZWwuRnJhbWU7Ci0gIHZhciBQcm9jZXNzTWVtb3J5RHVtcCA9IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wOwotCi0gIC8qKgotICAgKiBUaGUgUHJvY2VzcyByZXByZXNlbnRzIGEgc2luZ2xlIHVzZXJsYW5kIHByb2Nlc3MgaW4gdGhlCi0gICAqIHRyYWNlLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFByb2Nlc3MobW9kZWwsIHBpZCkgewotICAgIGlmIChtb2RlbCA9PT0gdW5kZWZpbmVkKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdtb2RlbCBtdXN0IGJlIHByb3ZpZGVkJyk7Ci0gICAgaWYgKHBpZCA9PT0gdW5kZWZpbmVkKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdwaWQgbXVzdCBiZSBwcm92aWRlZCcpOwotICAgIHRyLm1vZGVsLlByb2Nlc3NCYXNlLmNhbGwodGhpcywgbW9kZWwpOwotICAgIHRoaXMucGlkID0gcGlkOwotICAgIHRoaXMubmFtZSA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLmxhYmVscyA9IFtdOwotICAgIHRoaXMuaW5zdGFudEV2ZW50cyA9IFtdOwotICAgIHRoaXMubWVtb3J5RHVtcHMgPSBbXTsKLSAgICB0aGlzLmZyYW1lcyA9IFtdOwotICB9OwotCi0gIC8qKgotICAgKiBDb21wYXJpc29uIGJldHdlZW4gcHJvY2Vzc2VzIHRoYXQgb3JkZXJzIGJ5IHBpZC4KLSAgICovCi0gIFByb2Nlc3MuY29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsKLSAgICB2YXIgdG1wID0gdHIubW9kZWwuUHJvY2Vzc0Jhc2UuY29tcGFyZSh4LCB5KTsKLSAgICBpZiAodG1wKQotICAgICAgcmV0dXJuIHRtcDsKLQotICAgIHRtcCA9IHRyLmIuY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKAotICAgICAgICB4Lm5hbWUsIHkubmFtZSwKLSAgICAgICAgZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geC5sb2NhbGVDb21wYXJlKHkpOyB9KTsKLSAgICBpZiAodG1wKQotICAgICAgcmV0dXJuIHRtcDsKLQotICAgIHRtcCA9IHRyLmIuY29tcGFyZUFycmF5cyh4LmxhYmVscywgeS5sYWJlbHMsCi0gICAgICAgIGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHgubG9jYWxlQ29tcGFyZSh5KTsgfSk7Ci0gICAgaWYgKHRtcCkKLSAgICAgIHJldHVybiB0bXA7Ci0KLSAgICByZXR1cm4geC5waWQgLSB5LnBpZDsKLSAgfTsKLQotICBQcm9jZXNzLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLlByb2Nlc3NCYXNlLnByb3RvdHlwZSwKLQotICAgIGdldCBzdGFibGVJZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnBpZDsKLSAgICB9LAotCi0gICAgY29tcGFyZVRvOiBmdW5jdGlvbih0aGF0KSB7Ci0gICAgICByZXR1cm4gUHJvY2Vzcy5jb21wYXJlKHRoaXMsIHRoYXQpOwotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgICAgUHJvY2Vzc0Jhc2UucHJvdG90eXBlLml0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVycy5jYWxsKAotICAgICAgICAgIHRoaXMsIGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIFByb2Nlc3NCYXNlLnByb3RvdHlwZS5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyLmNhbGwoCi0gICAgICAgICAgdGhpcywgZXZlbnRUeXBlUHJlZGljYXRlLCBjYWxsYmFjaywgb3B0X3RoaXMpOwotCi0gICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIFByb2Nlc3NJbnN0YW50RXZlbnQpKQotICAgICAgICB0aGlzLmluc3RhbnRFdmVudHMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOwotCi0gICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIEZyYW1lKSkKLSAgICAgICAgdGhpcy5mcmFtZXMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOwotCi0gICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIFByb2Nlc3NNZW1vcnlEdW1wKSkKLSAgICAgICAgdGhpcy5tZW1vcnlEdW1wcy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0gICAgfSwKLQotICAgIHB1c2hJbnN0YW50RXZlbnQ6IGZ1bmN0aW9uKGluc3RhbnRFdmVudCkgewotICAgICAgdGhpcy5pbnN0YW50RXZlbnRzLnB1c2goaW5zdGFudEV2ZW50KTsKLSAgICB9LAotCi0gICAgYWRkTGFiZWxJZk5lZWRlZDogZnVuY3Rpb24obGFiZWxOYW1lKSB7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGFiZWxzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICh0aGlzLmxhYmVsc1tpXSA9PT0gbGFiZWxOYW1lKQotICAgICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIHRoaXMubGFiZWxzLnB1c2gobGFiZWxOYW1lKTsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICB2YXIgcmVzOwotICAgICAgaWYgKHRoaXMubmFtZSkKLSAgICAgICAgcmVzID0gdGhpcy5uYW1lICsgJyAocGlkICcgKyB0aGlzLnBpZCArICcpJzsKLSAgICAgIGVsc2UKLSAgICAgICAgcmVzID0gJ1Byb2Nlc3MgJyArIHRoaXMucGlkOwotICAgICAgaWYgKHRoaXMubGFiZWxzLmxlbmd0aCkKLSAgICAgICAgcmVzICs9ICc6ICcgKyB0aGlzLmxhYmVscy5qb2luKCcsICcpOwotICAgICAgcmV0dXJuIHJlczsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseURldGFpbHMoKSB7Ci0gICAgICBpZiAodGhpcy5uYW1lKQotICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgJyAocGlkICcgKyB0aGlzLnBpZCArICcpJzsKLSAgICAgIHJldHVybiAncGlkOiAnICsgdGhpcy5waWQ7Ci0gICAgfSwKLQotICAgIGdldFNldHRpbmdzS2V5OiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5uYW1lKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgaWYgKCF0aGlzLmxhYmVscy5sZW5ndGgpCi0gICAgICAgIHJldHVybiAncHJvY2Vzc2VzLicgKyB0aGlzLm5hbWU7Ci0gICAgICByZXR1cm4gJ3Byb2Nlc3Nlcy4nICsgdGhpcy5uYW1lICsgJy4nICsgdGhpcy5sYWJlbHMuam9pbignLicpOwotICAgIH0sCi0KLSAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKLSAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuaW5zdGFudEV2ZW50cykKLSAgICAgICAgdGhpcy5pbnN0YW50RXZlbnRzW2lkXS5zdGFydCArPSBhbW91bnQ7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5mcmFtZXMubGVuZ3RoOyBpKyspCi0gICAgICAgIHRoaXMuZnJhbWVzW2ldLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKLQotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1lbW9yeUR1bXBzLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLm1lbW9yeUR1bXBzW2ldLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKLQotICAgICAgdHIubW9kZWwuUHJvY2Vzc0Jhc2UucHJvdG90eXBlCi0gICAgICAgICAgLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICB9LAotCi0gICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRyLm1vZGVsLlByb2Nlc3NCYXNlLnByb3RvdHlwZS51cGRhdGVCb3VuZHMuYXBwbHkodGhpcyk7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5mcmFtZXMubGVuZ3RoOyBpKyspCi0gICAgICAgIHRoaXMuZnJhbWVzW2ldLmFkZEJvdW5kc1RvUmFuZ2UodGhpcy5ib3VuZHMpOwotCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVtb3J5RHVtcHMubGVuZ3RoOyBpKyspCi0gICAgICAgIHRoaXMubWVtb3J5RHVtcHNbaV0uYWRkQm91bmRzVG9SYW5nZSh0aGlzLmJvdW5kcyk7Ci0gICAgfSwKLQotICAgIHNvcnRNZW1vcnlEdW1wczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLm1lbW9yeUR1bXBzLnNvcnQoZnVuY3Rpb24oeCwgeSkgewotICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7Ci0gICAgICB9KTsKLSAgICAgIHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wLmhvb2tVcE1vc3RSZWNlbnRWbVJlZ2lvbnNMaW5rcygKLSAgICAgICAgICB0aGlzLm1lbW9yeUR1bXBzKTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBQcm9jZXNzOiBQcm9jZXNzCi0gIH07Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3NfYmFzZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9wcm9jZXNzX2Jhc2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzczYzRkOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3NfYmFzZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfY29udGFpbmVyLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9vYmplY3RfY29sbGVjdGlvbi5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbF9zZXR0aW5ncy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBQcm9jZXNzQmFzZSBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0KLSAgdmFyIFRocmVhZCA9IHRyLm1vZGVsLlRocmVhZDsKLSAgdmFyIENvdW50ZXIgPSB0ci5tb2RlbC5Db3VudGVyOwotCi0gIC8qKgotICAgKiBUaGUgUHJvY2Vzc0Jhc2UgaXMgYSBwYXJ0aWFsIGJhc2UgY2xhc3MsIHVwb24gd2hpY2ggS2VybmVsCi0gICAqIGFuZCBQcm9jZXNzIGFyZSBidWlsdC4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHt0ci5tb2RlbC5FdmVudENvbnRhaW5lcn0KLSAgICovCi0gIGZ1bmN0aW9uIFByb2Nlc3NCYXNlKG1vZGVsKSB7Ci0gICAgaWYgKCFtb2RlbCkKLSAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgbW9kZWwnKTsKLSAgICB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpOwotICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKLSAgICB0aGlzLm1vZGVsID0gbW9kZWw7Ci0gICAgdGhpcy50aHJlYWRzID0ge307Ci0gICAgdGhpcy5jb3VudGVycyA9IHt9OwotICAgIHRoaXMub2JqZWN0cyA9IG5ldyB0ci5tb2RlbC5PYmplY3RDb2xsZWN0aW9uKHRoaXMpOwotICAgIHRoaXMuYm91bmRzID0gbmV3IHRyLmIuUmFuZ2UoKTsKLSAgICB0aGlzLnNvcnRJbmRleCA9IDA7Ci0gIH07Ci0KLSAgUHJvY2Vzc0Jhc2UuY29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsKLSAgICByZXR1cm4geC5zb3J0SW5kZXggLSB5LnNvcnRJbmRleDsKLSAgfTsKLQotICBQcm9jZXNzQmFzZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCi0KLSAgICBnZXQgZ3VpZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLmd1aWRfOwotICAgIH0sCi0KLSAgICBnZXQgc3RhYmxlSWQoKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOwotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgICAgZm9yICh2YXIgdGlkIGluIHRoaXMudGhyZWFkcykKLSAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy50aHJlYWRzW3RpZF0pOwotICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5jb3VudGVycykKLSAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5jb3VudGVyc1tpZF0pOwotICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5vYmplY3RzKTsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgIH0sCi0KLSAgICBpdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzOiBmdW5jdGlvbihjYikgewotICAgICAgY2IodGhpcyk7Ci0gICAgICBmb3IgKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKQotICAgICAgICB0aGlzLnRocmVhZHNbdGlkXS5pdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzKGNiKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgaW4gdGhpcyBwcm9jZXNzLgotICAgICAqLwotICAgIGdldCBudW1UaHJlYWRzKCkgewotICAgICAgdmFyIG4gPSAwOwotICAgICAgZm9yICh2YXIgcCBpbiB0aGlzLnRocmVhZHMpIHsKLSAgICAgICAgbisrOwotICAgICAgfQotICAgICAgcmV0dXJuIG47Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFNoaWZ0cyBhbGwgdGhlIHRpbWVzdGFtcHMgaW5zaWRlIHRoaXMgcHJvY2VzcyBmb3J3YXJkIGJ5IHRoZSBhbW91bnQKLSAgICAgKiBzcGVjaWZpZWQuCi0gICAgICovCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICBmb3IgKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKQotICAgICAgICB0aGlzLnRocmVhZHNbdGlkXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7Ci0gICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLmNvdW50ZXJzKQotICAgICAgICB0aGlzLmNvdW50ZXJzW2lkXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7Ci0gICAgICB0aGlzLm9iamVjdHMuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDbG9zZXMgYW55IG9wZW4gc2xpY2VzLgotICAgICAqLwotICAgIGF1dG9DbG9zZU9wZW5TbGljZXM6IGZ1bmN0aW9uKG9wdF9tYXhUaW1lc3RhbXApIHsKLSAgICAgIGZvciAodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpIHsKLSAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMudGhyZWFkc1t0aWRdOwotICAgICAgICB0aHJlYWQuYXV0b0Nsb3NlT3BlblNsaWNlcyhvcHRfbWF4VGltZXN0YW1wKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgYXV0b0RlbGV0ZU9iamVjdHM6IGZ1bmN0aW9uKG1heFRpbWVzdGFtcCkgewotICAgICAgdGhpcy5vYmplY3RzLmF1dG9EZWxldGVPYmplY3RzKG1heFRpbWVzdGFtcCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENhbGxlZCBieSB0aGUgbW9kZWwgYWZ0ZXIgZmluYWxpemluZyBpbXBvcnRzLAotICAgICAqIGJ1dCBiZWZvcmUgam9pbmluZyByZWZzLgotICAgICAqLwotICAgIHByZUluaXRpYWxpemVPYmplY3RzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMub2JqZWN0cy5wcmVJbml0aWFsaXplQWxsT2JqZWN0cygpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBDYWxsZWQgYnkgdGhlIG1vZGVsIGFmdGVyIGpvaW5pbmcgcmVmcy4KLSAgICAgKi8KLSAgICBpbml0aWFsaXplT2JqZWN0czogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLm9iamVjdHMuaW5pdGlhbGl6ZUFsbE9iamVjdHMoKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogTWVyZ2Ugc2xpY2VzIGZyb20gdGhlIGtlcm5lbCB3aXRoIHRob3NlIGZyb20gdXNlcmxhbmQgZm9yIGVhY2ggdGhyZWFkLgotICAgICAqLwotICAgIG1lcmdlS2VybmVsV2l0aFVzZXJsYW5kOiBmdW5jdGlvbigpIHsKLSAgICAgIGZvciAodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpIHsKLSAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMudGhyZWFkc1t0aWRdOwotICAgICAgICB0aHJlYWQubWVyZ2VLZXJuZWxXaXRoVXNlcmxhbmQoKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7Ci0gICAgICBmb3IgKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKSB7Ci0gICAgICAgIHRoaXMudGhyZWFkc1t0aWRdLnVwZGF0ZUJvdW5kcygpOwotICAgICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLnRocmVhZHNbdGlkXS5ib3VuZHMpOwotICAgICAgfQotICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5jb3VudGVycykgewotICAgICAgICB0aGlzLmNvdW50ZXJzW2lkXS51cGRhdGVCb3VuZHMoKTsKLSAgICAgICAgdGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5jb3VudGVyc1tpZF0uYm91bmRzKTsKLSAgICAgIH0KLSAgICAgIHRoaXMub2JqZWN0cy51cGRhdGVCb3VuZHMoKTsKLSAgICAgIHRoaXMuYm91bmRzLmFkZFJhbmdlKHRoaXMub2JqZWN0cy5ib3VuZHMpOwotICAgIH0sCi0KLSAgICBhZGRDYXRlZ29yaWVzVG9EaWN0OiBmdW5jdGlvbihjYXRlZ29yaWVzRGljdCkgewotICAgICAgZm9yICh2YXIgdGlkIGluIHRoaXMudGhyZWFkcykKLSAgICAgICAgdGhpcy50aHJlYWRzW3RpZF0uYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7Ci0gICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLmNvdW50ZXJzKQotICAgICAgICBjYXRlZ29yaWVzRGljdFt0aGlzLmNvdW50ZXJzW2lkXS5jYXRlZ29yeV0gPSB0cnVlOwotICAgICAgdGhpcy5vYmplY3RzLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpOwotICAgIH0sCi0KLSAgICBmaW5kQWxsVGhyZWFkc01hdGNoaW5nOiBmdW5jdGlvbihwcmVkaWNhdGUsIG9wdF90aGlzKSB7Ci0gICAgICB2YXIgdGhyZWFkcyA9IFtdOwotICAgICAgZm9yICh2YXIgdGlkIGluIHRoaXMudGhyZWFkcykgewotICAgICAgICB2YXIgdGhyZWFkID0gdGhpcy50aHJlYWRzW3RpZF07Ci0gICAgICAgIGlmIChwcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgdGhyZWFkKSkKLSAgICAgICAgICB0aHJlYWRzLnB1c2godGhyZWFkKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB0aHJlYWRzOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1N0cmluZ30gVGhlIG5hbWUgb2YgdGhlIHRocmVhZCB0byBmaW5kLgotICAgICAqIEByZXR1cm4ge0FycmF5fSBBbiBhcnJheSBvZiBhbGwgdGhlIG1hdGNoZWQgdGhyZWFkcy4KLSAgICAgKi8KLSAgICBmaW5kQWxsVGhyZWFkc05hbWVkOiBmdW5jdGlvbihuYW1lKSB7Ci0gICAgICB2YXIgdGhyZWFkcyA9IHRoaXMuZmluZEFsbFRocmVhZHNNYXRjaGluZyhmdW5jdGlvbih0aHJlYWQpIHsKLSAgICAgICAgaWYgKCF0aHJlYWQubmFtZSkKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0aHJlYWQubmFtZSA9PT0gbmFtZTsKLSAgICAgIH0pOwotICAgICAgcmV0dXJuIHRocmVhZHM7Ci0gICAgfSwKLQotICAgIGZpbmRBdE1vc3RPbmVUaHJlYWROYW1lZDogZnVuY3Rpb24obmFtZSkgewotICAgICAgdmFyIHRocmVhZHMgPSB0aGlzLmZpbmRBbGxUaHJlYWRzTmFtZWQobmFtZSk7Ci0gICAgICBpZiAodGhyZWFkcy5sZW5ndGggPT09IDApCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICBpZiAodGhyZWFkcy5sZW5ndGggPiAxKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vIG1vcmUgdGhhbiBvbmUgJyArIG5hbWUpOwotICAgICAgcmV0dXJuIHRocmVhZHNbMF07Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIFJlbW92ZXMgdGhyZWFkcyBmcm9tIHRoZSBwcm9jZXNzIHRoYXQgYXJlIGZ1bGx5IGVtcHR5LgotICAgICAqLwotICAgIHBydW5lRW1wdHlDb250YWluZXJzOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciB0aHJlYWRzVG9LZWVwID0ge307Ci0gICAgICBmb3IgKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKSB7Ci0gICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLnRocmVhZHNbdGlkXTsKLSAgICAgICAgaWYgKCF0aHJlYWQuaXNFbXB0eSkKLSAgICAgICAgICB0aHJlYWRzVG9LZWVwW3RpZF0gPSB0aHJlYWQ7Ci0gICAgICB9Ci0gICAgICB0aGlzLnRocmVhZHMgPSB0aHJlYWRzVG9LZWVwOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtUaW1lbGluZVRocmVhZH0gVGhlIHRocmVhZCBpZGVudGlmaWVkIGJ5IHRpZCBvbiB0aGlzIHByb2Nlc3MsCi0gICAgICogb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3QuCi0gICAgICovCi0gICAgZ2V0VGhyZWFkOiBmdW5jdGlvbih0aWQpIHsKLSAgICAgIHJldHVybiB0aGlzLnRocmVhZHNbdGlkXTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7VGltZWxpbmVUaHJlYWR9IFRoZSB0aHJlYWQgaWRlbnRpZmllZCBieSB0aWQgb24gdGhpcyBwcm9jZXNzLAotICAgICAqIGNyZWF0aW5nIGl0IGlmIGl0IGRvZXNuJ3QgZXhpc3QuCi0gICAgICovCi0gICAgZ2V0T3JDcmVhdGVUaHJlYWQ6IGZ1bmN0aW9uKHRpZCkgewotICAgICAgaWYgKCF0aGlzLnRocmVhZHNbdGlkXSkKLSAgICAgICAgdGhpcy50aHJlYWRzW3RpZF0gPSBuZXcgVGhyZWFkKHRoaXMsIHRpZCk7Ci0gICAgICByZXR1cm4gdGhpcy50aHJlYWRzW3RpZF07Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge1RpbWVsaW5lQ291bnRlcn0gVGhlIGNvdW50ZXIgb24gdGhpcyBwcm9jZXNzIG5hbWVkICduYW1lJywKLSAgICAgKiBjcmVhdGluZyBpdCBpZiBpdCBkb2Vzbid0IGV4aXN0LgotICAgICAqLwotICAgIGdldE9yQ3JlYXRlQ291bnRlcjogZnVuY3Rpb24oY2F0LCBuYW1lKSB7Ci0gICAgICB2YXIgaWQgPSBjYXQgKyAnLicgKyBuYW1lOwotICAgICAgaWYgKCF0aGlzLmNvdW50ZXJzW2lkXSkKLSAgICAgICAgdGhpcy5jb3VudGVyc1tpZF0gPSBuZXcgQ291bnRlcih0aGlzLCBpZCwgY2F0LCBuYW1lKTsKLSAgICAgIHJldHVybiB0aGlzLmNvdW50ZXJzW2lkXTsKLSAgICB9LAotCi0gICAgZ2V0U2V0dGluZ3NLZXk6IGZ1bmN0aW9uKCkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKLSAgICB9LAotCi0gICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKLSAgICAgIGZvciAodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpCi0gICAgICAgIHRoaXMudGhyZWFkc1t0aWRdLmNyZWF0ZVN1YlNsaWNlcygpOwotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFByb2Nlc3NCYXNlOiBQcm9jZXNzQmFzZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZGFhNmEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy91dGlsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbnRhaW5lcl9tZW1vcnlfZHVtcC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbWVtb3J5X2FsbG9jYXRvcl9kdW1wLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFByb2Nlc3NNZW1vcnlEdW1wIGNsYXNzLgotICovCi10ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKLQotICBmdW5jdGlvbiBnZXRWYWxpZFNpemVBdHRyaWJ1dGVPclVuZGVmaW5lZChtZW1vcnlBbGxvY2F0b3JEdW1wLCBvcHRfbW9kZWwpIHsKLSAgICB2YXIgc2l6ZUF0dHIgPSBtZW1vcnlBbGxvY2F0b3JEdW1wLmF0dHJpYnV0ZXNbJ3NpemUnXTsKLSAgICBpZiAoc2l6ZUF0dHIgPT09IHVuZGVmaW5lZCkKLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICBpZiAoIShzaXplQXR0ciBpbnN0YW5jZW9mIHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZSkpIHsKLSAgICAgIGlmIChvcHRfbW9kZWwgIT09IHVuZGVmaW5lZCkgewotICAgICAgICBvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7Ci0gICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKLSAgICAgICAgICBtZXNzYWdlOiAnXCdzaXplXCcgYXR0cmlidXRlIG9mIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBcJycgKwotICAgICAgICAgICAgICBtZW1vcnlBbGxvY2F0b3JEdW1wLmZ1bGxOYW1lICsgJ1wnIGlzIG5vdCBhIHNjYWxhci4nCi0gICAgICAgIH0pOwotICAgICAgfQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2l6ZUF0dHI7Ci0gIH0KLQotICAvKioKLSAgICogVGhlIFByb2Nlc3NNZW1vcnlEdW1wIHJlcHJlc2VudHMgYSBtZW1vcnkgZHVtcCBvZiBhIHNpbmdsZSBwcm9jZXNzLgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFByb2Nlc3NNZW1vcnlEdW1wKGdsb2JhbE1lbW9yeUR1bXAsIHByb2Nlc3MsIHN0YXJ0KSB7Ci0gICAgdHIubW9kZWwuQ29udGFpbmVyTWVtb3J5RHVtcC5jYWxsKHRoaXMsIHN0YXJ0KTsKLSAgICB0aGlzLnByb2Nlc3MgPSBwcm9jZXNzOwotICAgIHRoaXMuZ2xvYmFsTWVtb3J5RHVtcCA9IGdsb2JhbE1lbW9yeUR1bXA7Ci0KLSAgICB0aGlzLnRvdGFsUmVzaWRlbnRCeXRlcyA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnZtUmVnaW9uc18gPSB1bmRlZmluZWQ7Ci0KLSAgICB0aGlzLnRyYWNpbmdNZW1vcnlEaXNjb3VudGVkXyA9IGZhbHNlOwotICB9OwotCi0gIFByb2Nlc3NNZW1vcnlEdW1wLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLkNvbnRhaW5lck1lbW9yeUR1bXAucHJvdG90eXBlLAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ1Byb2Nlc3MgbWVtb3J5IGR1bXAgYXQgJyArIHRyLmIudW5pdHMudHNTdHJpbmcodGhpcy5zdGFydCk7Ci0gICAgfSwKLQotICAgIGdldCB2bVJlZ2lvbnMoKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoCi0gICAgICAgICAgJ1ZNIHJlZ2lvbnMgbXVzdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBtb3N0UmVjZW50Vm1SZWdpb25zIGZpZWxkJyk7Ci0gICAgfSwKLQotICAgIHNldCB2bVJlZ2lvbnModm1SZWdpb25zKSB7Ci0gICAgICB0aGlzLnZtUmVnaW9uc18gPSB2bVJlZ2lvbnM7Ci0gICAgfSwKLQotICAgIGdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdDogZnVuY3Rpb24oc3RhdE5hbWUpIHsKLSAgICAgIGlmICh0aGlzLm1vc3RSZWNlbnRWbVJlZ2lvbnMgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgICAgdmFyIHRvdGFsID0gMDsKLSAgICAgIHRoaXMubW9zdFJlY2VudFZtUmVnaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHZtUmVnaW9uKSB7Ci0gICAgICAgIHZhciBzdGF0VmFsdWUgPSB2bVJlZ2lvbi5ieXRlU3RhdHNbc3RhdE5hbWVdOwotICAgICAgICBpZiAoc3RhdFZhbHVlID09PSB1bmRlZmluZWQpCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB0b3RhbCArPSBzdGF0VmFsdWU7Ci0gICAgICB9KTsKLSAgICAgIHJldHVybiB0b3RhbDsKLSAgICB9LAotCi0gICAgZGlzY291bnRUcmFjaW5nT3ZlcmhlYWQ6IGZ1bmN0aW9uKG9wdF9tb2RlbCkgewotICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgY2FsbGluZyB0aGlzIG1ldGhvZCB0d2ljZSB3b24ndCBsZWFkIHRvCi0gICAgICAvLyAnZG91YmxlLWRpc2NvdW50aW5nJy4KLSAgICAgIGlmICh0aGlzLnRyYWNpbmdNZW1vcnlEaXNjb3VudGVkXykKLSAgICAgICAgcmV0dXJuOwotICAgICAgdGhpcy50cmFjaW5nTWVtb3J5RGlzY291bnRlZF8gPSB0cnVlOwotCi0gICAgICB2YXIgdHJhY2luZ0R1bXAgPSB0aGlzLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0cmFjaW5nJyk7Ci0gICAgICBpZiAodHJhY2luZ0R1bXAgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICB2YXIgdHJhY2luZ1NpemVBdHRyID0gZ2V0VmFsaWRTaXplQXR0cmlidXRlT3JVbmRlZmluZWQoCi0gICAgICAgICAgdHJhY2luZ0R1bXAsIG9wdF9tb2RlbCk7Ci0gICAgICBpZiAodHJhY2luZ1NpemVBdHRyID09PSB1bmRlZmluZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgdmFyIHRyYWNpbmdTaXplID0gdHJhY2luZ1NpemVBdHRyLnZhbHVlOwotCi0gICAgICAvLyBTdWJ0cmFjdCB0aGUgdHJhY2luZyBzaXplIGZyb20gdGhlIHRvdGFsLgotICAgICAgaWYgKHRoaXMudG90YWxSZXNpZGVudEJ5dGVzICE9PSB1bmRlZmluZWQpCi0gICAgICAgIHRoaXMudG90YWxSZXNpZGVudEJ5dGVzIC09IHRyYWNpbmdTaXplOwotCi0gICAgICAvLyBTdWJ0cmFjdCB0aGUgdHJhY2luZyBzaXplIGZyb20gVk0gcmVnaW9ucy4KLSAgICAgIGlmICh0aGlzLnZtUmVnaW9uc18gIT09IHVuZGVmaW5lZCkgewotICAgICAgICB0aGlzLnZtUmVnaW9uc18ucHVzaChWTVJlZ2lvbi5mcm9tRGljdCh7Ci0gICAgICAgICAgbWFwcGVkRmlsZTogJ1tkaXNjb3VudGVkIHRyYWNpbmcgb3ZlcmhlYWRdJywKLSAgICAgICAgICBieXRlU3RhdHM6IHsKLSAgICAgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiAtdHJhY2luZ1NpemUsCi0gICAgICAgICAgICBwcm9wb3J0aW9uYWxSZXNpZGVudDogLXRyYWNpbmdTaXplCi0gICAgICAgICAgfQotICAgICAgICB9KSk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFN1YnRyYWN0IHRoZSB0cmFjaW5nIHNpemUgZnJvbSB0aGUgJ21hbGxvYycgTWVtb3J5QWxsb2NhdG9yRHVtcC4KLSAgICAgIHZhciBtYWxsb2NEdW1wID0gdGhpcy5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnbWFsbG9jJyk7Ci0gICAgICBpZiAobWFsbG9jRHVtcCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIHZhciBvdmVyaGVhZFNpemVBdHRyaWJ1dGUgPSBuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKAotICAgICAgICAgICAgJ2J5dGVzJywgLXRyYWNpbmdTaXplKTsKLSAgICAgICAgdmFyIG92ZXJoZWFkRHVtcCA9IG5ldyB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wKAotICAgICAgICAgICAgdGhpcywgJ21hbGxvYy9kaXNjb3VudGVkX3RyYWNpbmdfb3ZlcmhlYWQnKTsKLSAgICAgICAgb3ZlcmhlYWREdW1wLnBhcmVudCA9IG1hbGxvY0R1bXA7Ci0gICAgICAgIG92ZXJoZWFkRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBvdmVyaGVhZFNpemVBdHRyaWJ1dGUpOwotICAgICAgICBtYWxsb2NEdW1wLmNoaWxkcmVuLnB1c2gob3ZlcmhlYWREdW1wKTsKLQotICAgICAgICB2YXIgbWFsbG9jRHVtcFNpemVBdHRyID0gZ2V0VmFsaWRTaXplQXR0cmlidXRlT3JVbmRlZmluZWQoCi0gICAgICAgICAgICBtYWxsb2NEdW1wLCBvcHRfbW9kZWwpOwotICAgICAgICBpZiAobWFsbG9jRHVtcFNpemVBdHRyICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgbWFsbG9jRHVtcFNpemVBdHRyLnZhbHVlIC09IHRyYWNpbmdTaXplOwotCi0gICAgICAgIC8vIEZvcmNlIHJlYnVpbGRpbmcgdGhlIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBpbmRleCAoYXMgd2UndmUganVzdAotICAgICAgICAvLyBhZGRlZCBhIG5ldyBtZW1vcnkgYWxsb2NhdG9yIGR1bXApLgotICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gdGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wczsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci0KLSAgUHJvY2Vzc01lbW9yeUR1bXAuaG9va1VwTW9zdFJlY2VudFZtUmVnaW9uc0xpbmtzID0gZnVuY3Rpb24ocHJvY2Vzc0R1bXBzKSB7Ci0gICAgdmFyIG1vc3RSZWNlbnRWbVJlZ2lvbnMgPSB1bmRlZmluZWQ7Ci0KLSAgICBwcm9jZXNzRHVtcHMuZm9yRWFjaChmdW5jdGlvbihwcm9jZXNzRHVtcCkgewotICAgICAgLy8gVXBkYXRlIHRoZSBtb3N0IHJlY2VudCBWTSByZWdpb25zIGZyb20gdGhlIGN1cnJlbnQgZHVtcC4KLSAgICAgIGlmIChwcm9jZXNzRHVtcC52bVJlZ2lvbnNfICE9PSB1bmRlZmluZWQpCi0gICAgICAgIG1vc3RSZWNlbnRWbVJlZ2lvbnMgPSBwcm9jZXNzRHVtcC52bVJlZ2lvbnNfOwotCi0gICAgICAvLyBTZXQgdGhlIG1vc3QgcmVjZW50IFZNIHJlZ2lvbnMgb2YgdGhlIGN1cnJlbnQgZHVtcC4KLSAgICAgIHByb2Nlc3NEdW1wLm1vc3RSZWNlbnRWbVJlZ2lvbnMgPSBtb3N0UmVjZW50Vm1SZWdpb25zOwotICAgIH0pOwotICB9OwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFZNUmVnaW9uKHN0YXJ0QWRkcmVzcywgc2l6ZUluQnl0ZXMsIHByb3RlY3Rpb25GbGFncywKLSAgICAgIG1hcHBlZEZpbGUsIGJ5dGVTdGF0cykgewotICAgIHRoaXMuc3RhcnRBZGRyZXNzID0gc3RhcnRBZGRyZXNzOwotICAgIHRoaXMuc2l6ZUluQnl0ZXMgPSBzaXplSW5CeXRlczsKLSAgICB0aGlzLnByb3RlY3Rpb25GbGFncyA9IHByb3RlY3Rpb25GbGFnczsKLSAgICB0aGlzLm1hcHBlZEZpbGUgPSBtYXBwZWRGaWxlOwotICAgIHRoaXMuYnl0ZVN0YXRzID0gYnl0ZVN0YXRzOwotICB9OwotCi0gIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEID0gNDsKLSAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFID0gMjsKLSAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX0VYRUNVVEUgPSAxOwotCi0gIFZNUmVnaW9uLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgcHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcoKSB7Ci0gICAgICBpZiAodGhpcy5wcm90ZWN0aW9uRmxhZ3MgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiAoCi0gICAgICAgICAgKHRoaXMucHJvdGVjdGlvbkZsYWdzICYgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgPyAncicgOiAnLScpICsKLSAgICAgICAgICAodGhpcy5wcm90ZWN0aW9uRmxhZ3MgJiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfV1JJVEUgPyAndycgOiAnLScpICsKLSAgICAgICAgICAodGhpcy5wcm90ZWN0aW9uRmxhZ3MgJiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfRVhFQ1VURSA/ICd4JyA6ICctJykKLSAgICAgICk7Ci0gICAgfQotICB9OwotCi0gIFZNUmVnaW9uLmZyb21EaWN0ID0gZnVuY3Rpb24oZGljdCkgewotICAgIHJldHVybiBuZXcgVk1SZWdpb24oCi0gICAgICAgIGRpY3Quc3RhcnRBZGRyZXNzLAotICAgICAgICBkaWN0LnNpemVJbkJ5dGVzLAotICAgICAgICBkaWN0LnByb3RlY3Rpb25GbGFncywKLSAgICAgICAgZGljdC5tYXBwZWRGaWxlLAotICAgICAgICBWTVJlZ2lvbkJ5dGVTdGF0cy5mcm9tRGljdChkaWN0LmJ5dGVTdGF0cykpOwotICB9OwotCi0gIC8qKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFZNUmVnaW9uQnl0ZVN0YXRzKHByaXZhdGVDbGVhblJlc2lkZW50LCBwcml2YXRlRGlydHlSZXNpZGVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkQ2xlYW5SZXNpZGVudCwgc2hhcmVkRGlydHlSZXNpZGVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcG9ydGlvbmFsUmVzaWRlbnQsIHN3YXBwZWQpIHsKLSAgICB0aGlzLnByaXZhdGVDbGVhblJlc2lkZW50ID0gcHJpdmF0ZUNsZWFuUmVzaWRlbnQ7Ci0gICAgdGhpcy5wcml2YXRlRGlydHlSZXNpZGVudCA9IHByaXZhdGVEaXJ0eVJlc2lkZW50OwotICAgIHRoaXMuc2hhcmVkQ2xlYW5SZXNpZGVudCA9IHNoYXJlZENsZWFuUmVzaWRlbnQ7Ci0gICAgdGhpcy5zaGFyZWREaXJ0eVJlc2lkZW50ID0gc2hhcmVkRGlydHlSZXNpZGVudDsKLSAgICB0aGlzLnByb3BvcnRpb25hbFJlc2lkZW50ID0gcHJvcG9ydGlvbmFsUmVzaWRlbnQ7Ci0gICAgdGhpcy5zd2FwcGVkID0gc3dhcHBlZDsKLSAgfQotCi0gIFZNUmVnaW9uQnl0ZVN0YXRzLmZyb21EaWN0ID0gZnVuY3Rpb24oZGljdCkgewotICAgIHJldHVybiBuZXcgVk1SZWdpb25CeXRlU3RhdHMoCi0gICAgICAgIGRpY3QucHJpdmF0ZUNsZWFuUmVzaWRlbnQsCi0gICAgICAgIGRpY3QucHJpdmF0ZURpcnR5UmVzaWRlbnQsCi0gICAgICAgIGRpY3Quc2hhcmVkQ2xlYW5SZXNpZGVudCwKLSAgICAgICAgZGljdC5zaGFyZWREaXJ0eVJlc2lkZW50LAotICAgICAgICBkaWN0LnByb3BvcnRpb25hbFJlc2lkZW50LAotICAgICAgICBkaWN0LnN3YXBwZWQpOwotICB9Ci0KLSAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgIFByb2Nlc3NNZW1vcnlEdW1wLAotICAgICAgewotICAgICAgICBuYW1lOiAncHJvY2Vzc01lbW9yeUR1bXAnLAotICAgICAgICBwbHVyYWxOYW1lOiAncHJvY2Vzc01lbW9yeUR1bXBzJywKLSAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItYy1hLXNpbmdsZS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3JywKLSAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtbXVsdGktcHJvY2Vzcy1tZW1vcnktZHVtcC1zdWItdmlldycKLSAgICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgUHJvY2Vzc01lbW9yeUR1bXA6IFByb2Nlc3NNZW1vcnlEdW1wLAotICAgIFZNUmVnaW9uOiBWTVJlZ2lvbiwKLSAgICBWTVJlZ2lvbkJ5dGVTdGF0czogVk1SZWdpb25CeXRlU3RhdHMKLSAgfTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA1ODE5MC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXR0cmlidXRlLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3Byb2Nlc3NfbWVtb3J5X2R1bXAuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgR2xvYmFsTWVtb3J5RHVtcCA9IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXA7Ci0gIHZhciBQcm9jZXNzTWVtb3J5RHVtcCA9IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wOwotICB2YXIgTWVtb3J5QWxsb2NhdG9yRHVtcCA9IHRyLm1vZGVsLk1lbW9yeUFsbG9jYXRvckR1bXA7Ci0gIHZhciBWTVJlZ2lvbiA9IHRyLm1vZGVsLlZNUmVnaW9uOwotICB2YXIgU2NhbGFyQXR0cmlidXRlID0gdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlOwotCi0gIHZhciBjcmVhdGVQcm9jZXNzTWVtb3J5RHVtcCA9IGZ1bmN0aW9uKHRpbWVzdGFtcCwgbW9kZWwpIHsKLSAgICB2YXIgZ21kID0gbmV3IEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsIHRpbWVzdGFtcCk7Ci0gICAgbW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnbWQpOwotICAgIHZhciBwID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7Ci0gICAgdmFyIHBtZCA9IG5ldyBQcm9jZXNzTWVtb3J5RHVtcChnbWQsIHAsIHRpbWVzdGFtcCArIDEpOwotICAgIGdtZC5wcm9jZXNzTWVtb3J5RHVtcHNbMTIzXSA9IHBtZDsKLSAgICBwLm1lbW9yeUR1bXBzLnB1c2gocG1kKTsKLSAgICByZXR1cm4gcG1kOwotICB9Ci0KLSAgdmFyIGNyZWF0ZUZpbmFsaXplZFByb2Nlc3NNZW1vcnlEdW1wID0gZnVuY3Rpb24odGltZXN0YW1wLCBjcmVhdGVkQ2FsbGJhY2spIHsKLSAgICByZXR1cm4gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXBzKFt0aW1lc3RhbXBdLCBmdW5jdGlvbihwbWRzKSB7Ci0gICAgICBjcmVhdGVkQ2FsbGJhY2socG1kc1swXSk7Ci0gICAgfSlbMF07Ci0gIH0KLQotICBmdW5jdGlvbiBjcmVhdGVGaW5hbGl6ZWRQcm9jZXNzTWVtb3J5RHVtcHModGltZXN0YW1wcywgY3JlYXRlZENhbGxiYWNrKSB7Ci0gICAgdmFyIG1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICB2YXIgcG1kcyA9IHRpbWVzdGFtcHMubWFwKGZ1bmN0aW9uKHRpbWVzdGFtcCkgewotICAgICAgICByZXR1cm4gY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXAodGltZXN0YW1wLCBtb2RlbCk7Ci0gICAgICB9KTsKLSAgICAgIGNyZWF0ZWRDYWxsYmFjayhwbWRzKTsKLSAgICB9KTsKLSAgICB2YXIgcG1kcyA9IG1vZGVsLmdldFByb2Nlc3MoMTIzKS5tZW1vcnlEdW1wczsKLSAgICBhc3NlcnQubGVuZ3RoT2YocG1kcywgdGltZXN0YW1wcy5sZW5ndGgpOwotICAgIHJldHVybiBwbWRzOwotICB9Ci0KLSAgZnVuY3Rpb24gY2hlY2tQcm90ZWN0aW9uRmxhZ3NUb1N0cmluZyhwcm90ZWN0aW9uRmxhZ3MsIGV4cGVjdGVkU3RyaW5nKSB7Ci0gICAgdmFyIHZtUmVnaW9uID0gVk1SZWdpb24uZnJvbURpY3QoewotICAgICAgc3RhcnRBZGRyZXNzOiAyNTYsCi0gICAgICBzaXplSW5CeXRlczogMzM2LAotICAgICAgcHJvdGVjdGlvbkZsYWdzOiBwcm90ZWN0aW9uRmxhZ3MsCi0gICAgICBtYXBwZWRGaWxlOiAnW3N0YWNrOjIwMzEwXScsCi0gICAgICBieXRlU3RhdHM6IHsKLSAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDk2LAotICAgICAgICBzd2FwcGVkOiAxNDQsCi0gICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxNTgKLSAgICAgIH0KLSAgICB9KTsKLSAgICBhc3NlcnQuc3RyaWN0RXF1YWwodm1SZWdpb24ucHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcsIGV4cGVjdGVkU3RyaW5nKTsKLSAgfQotCi0gIHRlc3QoJ3RvdGFsUmVzaWRlbnRTaXplSW5CeXRlc191bmRlZmluZWRWbVJlZ2lvbnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcG1kID0gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXAoNDIsIGZ1bmN0aW9uKHBtZCkge30pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChwbWQubW9zdFJlY2VudFRvdGFsUHJvcG9ydGlvbmFsUmVzaWRlbnRTaXplSW5CeXRlcyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAotICAgICAgICBwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlRGlydHlSZXNpZGVudCcpKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoCi0gICAgICAgIHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3ByaXZhdGVDbGVhblJlc2lkZW50JykpOwotICB9KTsKLQotICB0ZXN0KCd0b3RhbFJlc2lkZW50U2l6ZUluQnl0ZXNfemVyb1ZtUmVnaW9ucycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwbWQgPSBjcmVhdGVGaW5hbGl6ZWRQcm9jZXNzTWVtb3J5RHVtcCg0MiwgZnVuY3Rpb24ocG1kKSB7Ci0gICAgICBwbWQudm1SZWdpb25zID0gW107Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3Byb3BvcnRpb25hbFJlc2lkZW50JyksIDApOwotICAgIGFzc2VydC5lcXVhbChwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlRGlydHlSZXNpZGVudCcpLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZUNsZWFuUmVzaWRlbnQnKSwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3RvdGFsUmVzaWRlbnRTaXplSW5CeXRlc19vbmVWbVJlZ2lvbicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwbWQgPSBjcmVhdGVGaW5hbGl6ZWRQcm9jZXNzTWVtb3J5RHVtcCg0MiwgZnVuY3Rpb24ocG1kKSB7Ci0gICAgICBwbWQudm1SZWdpb25zID0gWwotICAgICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7Ci0gICAgICAgICAgc3RhcnRBZGRyZXNzOiAyNTYsCi0gICAgICAgICAgc2l6ZUluQnl0ZXM6IDMzNiwKLSAgICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKLSAgICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFLAotICAgICAgICAgIG1hcHBlZEZpbGU6ICdbc3RhY2s6MjAzMTBdJywKLSAgICAgICAgICBieXRlU3RhdHM6IHsKLSAgICAgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiA5NiwKLSAgICAgICAgICAgIHN3YXBwZWQ6IDE0NCwKLSAgICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxNTgKLSAgICAgICAgICB9Ci0gICAgICAgIH0pCi0gICAgICBdOwotICAgIH0pOwotICAgIGFzc2VydC5lcXVhbCgKLSAgICAgICAgcG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnKSwgMTU4KTsKLSAgICBhc3NlcnQuZXF1YWwoCi0gICAgICAgIHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3ByaXZhdGVEaXJ0eVJlc2lkZW50JyksIDk2KTsKLSAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZUNsZWFuUmVzaWRlbnQnKSwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3RvdGFsUmVzaWRlbnRTaXplSW5CeXRlc190d29WbVJlZ2lvbnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcG1kID0gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXAoNDIsIGZ1bmN0aW9uKHBtZCkgewotICAgICAgcG1kLnZtUmVnaW9ucyA9IFsKLSAgICAgICAgVk1SZWdpb24uZnJvbURpY3QoewotICAgICAgICAgIHN0YXJ0QWRkcmVzczogMjU2LAotICAgICAgICAgIHNpemVJbkJ5dGVzOiAzMzYsCi0gICAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8Ci0gICAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURSwKLSAgICAgICAgICBtYXBwZWRGaWxlOiAnW3N0YWNrOjIwMzEwXScsCi0gICAgICAgICAgYnl0ZVN0YXRzOiB7Ci0gICAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogOTYsCi0gICAgICAgICAgICBzd2FwcGVkOiAxNDQsCi0gICAgICAgICAgICBwcm9wb3J0aW9uYWxSZXNpZGVudDogMTU4Ci0gICAgICAgICAgfQotICAgICAgICB9KSwKLSAgICAgICAgVk1SZWdpb24uZnJvbURpY3QoewotICAgICAgICAgIHN0YXJ0QWRkcmVzczogODQ4LAotICAgICAgICAgIHNpemVJbkJ5dGVzOiA1OTIsCi0gICAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8Ci0gICAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19FWEVDVVRFLAotICAgICAgICAgIG1hcHBlZEZpbGU6ICcvZGV2L2FzaG1lbS9kYWx2aWsnLAotICAgICAgICAgIGJ5dGVTdGF0czogewotICAgICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDIwNSwKLSAgICAgICAgICAgIHByaXZhdGVDbGVhblJlc2lkZW50OiAwLAotICAgICAgICAgICAgcHJvcG9ydGlvbmFsUmVzaWRlbnQ6IDIwNQotICAgICAgICAgIH0KLSAgICAgICAgfSkKLSAgICAgIF07Ci0gICAgfSk7Ci0gICAgYXNzZXJ0LmVxdWFsKAotICAgICAgICBwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcm9wb3J0aW9uYWxSZXNpZGVudCcpLCAzNjMpOwotICAgIGFzc2VydC5lcXVhbCgKLSAgICAgICAgcG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZURpcnR5UmVzaWRlbnQnKSwgMzAxKTsKLSAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgnc3dhcHBlZCcpLCAxNDQpOwotICAgIGFzc2VydC5lcXVhbChwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlQ2xlYW5SZXNpZGVudCcpLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgnc2hhcmVkQ2xlYW5SZXNpZGVudCcpLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnaG9va1VwTW9zdFJlY2VudFZtUmVnaW9uc0xpbmtzX2VtcHR5QXJyYXknLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZHVtcHMgPSBbXTsKLSAgICBQcm9jZXNzTWVtb3J5RHVtcC5ob29rVXBNb3N0UmVjZW50Vm1SZWdpb25zTGlua3MoZHVtcHMpOwotICAgIGFzc2VydC5sZW5ndGhPZihkdW1wcywgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2hvb2tVcE1vc3RSZWNlbnRWbVJlZ2lvbnNMaW5rc19ub25FbXB0eUFycmF5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKLQotICAgIC8vIEEgZHVtcCB3aXRoIG5vIFZNIHJlZ2lvbnMgb3IgYWxsb2NhdG9yIGR1bXBzLgotICAgIHZhciBkdW1wMSA9IGNyZWF0ZVByb2Nlc3NNZW1vcnlEdW1wKDEsIG0pOwotCi0gICAgLy8gQSBkdW1wIHdpdGggVk0gcmVnaW9ucyBhbmQgbWFsbG9jIGFuZCBPaWxwYW4gYWxsb2NhdG9yIGR1bXBzLgotICAgIHZhciBkdW1wMiA9IGNyZWF0ZVByb2Nlc3NNZW1vcnlEdW1wKDIsIG0pOwotICAgIGR1bXAyLnZtUmVnaW9ucyA9IFtdOwotICAgIGR1bXAyLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gKGZ1bmN0aW9uKCkgewotICAgICAgdmFyIG9pbHBhbkR1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcCgnb2lscGFuJyk7Ci0gICAgICBvaWxwYW5EdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTAyNCkpOwotICAgICAgb2lscGFuRHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLAotICAgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ29iamVjdHMnLCA3KSk7Ci0gICAgICBvaWxwYW5EdW1wLmFkZEF0dHJpYnV0ZSgnaW5uZXJfc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNzY4KSk7Ci0KLSAgICAgIHZhciB2OER1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcCgndjgnKTsKLSAgICAgIHY4RHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDIwNDgpKTsKLSAgICAgIHY4RHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgMTUpKTsKLSAgICAgIHY4RHVtcC5hZGRBdHRyaWJ1dGUoJ2lubmVyX3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDE5OTkpKTsKLQotICAgICAgcmV0dXJuIFtvaWxwYW5EdW1wLiB2OER1bXBdOwotICAgIH0pKCk7Ci0KLSAgICAvLyBBIGR1bXAgd2l0aCBtYWxsb2MgYW5kIFY4IGFsbG9jYXRvciBkdW1wcy4KLSAgICB2YXIgZHVtcDMgPSBjcmVhdGVQcm9jZXNzTWVtb3J5RHVtcCgzLCBtKTsKLSAgICBkdW1wMy5tZW1vcnlBbGxvY2F0b3JEdW1wcyA9IChmdW5jdGlvbigpIHsKLSAgICAgIHZhciBtYWxsb2NEdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoJ21hbGxvYycpOwotICAgICAgbWFsbG9jRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwMjQpKTsKLSAgICAgIG1hbGxvY0R1bXAuYWRkQXR0cmlidXRlKCdvYmplY3RzX2NvdW50JywKLSAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgNykpOwotICAgICAgbWFsbG9jRHVtcC5hZGRBdHRyaWJ1dGUoJ2lubmVyX3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDc2OCkpOwotCi0gICAgICB2YXIgdjhEdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoJ3Y4Jyk7Ci0gICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAyMDQ4KSk7Ci0gICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdvYmplY3RzX2NvdW50JywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnb2JqZWN0cycsIDE1KSk7Ci0gICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdpbm5lcl9zaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAxOTk5KSk7Ci0KLSAgICAgIHJldHVybiBbbWFsbG9jRHVtcC4gdjhEdW1wXTsKLSAgICB9KSgpOwotCi0gICAgLy8gQSBkdW1wIHdpdGggVk0gcmVnaW9ucy4KLSAgICB2YXIgZHVtcDQgPSBjcmVhdGVQcm9jZXNzTWVtb3J5RHVtcCg0LCBtKTsKLSAgICBkdW1wNC52bVJlZ2lvbnMgPSBbCi0gICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7Ci0gICAgICAgIHN0YXJ0QWRkcmVzczogMjU2LAotICAgICAgICBzaXplSW5CeXRlczogMzM2LAotICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKLSAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURSwKLSAgICAgICAgbWFwcGVkRmlsZTogJ1tzdGFjazoyMDMxMF0nLAotICAgICAgICBieXRlU3RhdHM6IHsKLSAgICAgICAgICBwcml2YXRlUmVzaWRlbnQ6IDk2LAotICAgICAgICAgIHNoYXJlZFJlc2lkZW50OiAxNDQsCi0gICAgICAgICAgcHJvcG9ydGlvbmFsUmVzaWRlbnQ6IDE1OAotICAgICAgICB9Ci0gICAgICB9KQotICAgIF07Ci0KLSAgICB2YXIgZHVtcHMgPSBbZHVtcDEsIGR1bXAyLCBkdW1wMywgZHVtcDRdOwotICAgIFByb2Nlc3NNZW1vcnlEdW1wLmhvb2tVcE1vc3RSZWNlbnRWbVJlZ2lvbnNMaW5rcyhkdW1wcyk7Ci0KLSAgICBhc3NlcnQubGVuZ3RoT2YoZHVtcHMsIDQpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGR1bXBzWzBdLCBkdW1wMSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGR1bXAxLm1vc3RSZWNlbnRWbVJlZ2lvbnMpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGR1bXBzWzFdLCBkdW1wMik7Ci0gICAgYXNzZXJ0LmVxdWFsKGR1bXAyLm1vc3RSZWNlbnRWbVJlZ2lvbnMsIGR1bXAyLnZtUmVnaW9uc18pOwotCi0gICAgYXNzZXJ0LmVxdWFsKGR1bXBzWzJdLCBkdW1wMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKGR1bXAzLm1vc3RSZWNlbnRWbVJlZ2lvbnMsIGR1bXAyLnZtUmVnaW9uc18pOwotCi0gICAgYXNzZXJ0LmVxdWFsKGR1bXBzWzNdLCBkdW1wNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGR1bXA0Lm1vc3RSZWNlbnRWbVJlZ2lvbnMsIGR1bXA0LnZtUmVnaW9uc18pOwotICB9KTsKLQotICB0ZXN0KCd2bVJlZ2lvbl9wcm90ZWN0aW9uRmxhZ3NUb1N0cmluZycsIGZ1bmN0aW9uKCkgewotICAgIGNoZWNrUHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcodW5kZWZpbmVkLCB1bmRlZmluZWQpOwotICAgIGNoZWNrUHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcoMCwgJy0tLScpOwotICAgIGNoZWNrUHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcoVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQsICdyLS0nKTsKLSAgICBjaGVja1Byb3RlY3Rpb25GbGFnc1RvU3RyaW5nKAotICAgICAgICBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19FWEVDVVRFLAotICAgICAgICAnci14Jyk7Ci0gICAgY2hlY2tQcm90ZWN0aW9uRmxhZ3NUb1N0cmluZygKLSAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfCBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfV1JJVEUsCi0gICAgICAgICdydy0nKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tEaXNjb3VudFRyYWNpbmdPdmVyaGVhZF91bmRlZmluZWRGaWVsZHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgcG1kID0gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXAoNDIsIGZ1bmN0aW9uKHBtZCkgewotICAgICAgdmFyIHY4RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZCwgJ3Y4Jyk7Ci0gICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAyMDQ4KSk7Ci0KLSAgICAgIHZhciB0cmFjaW5nRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZCwgJ3RyYWNpbmcnKTsKLSAgICAgIHRyYWNpbmdEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTAyNCkpOwotCi0gICAgICBwbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBbdjhEdW1wLCB0cmFjaW5nRHVtcF07Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnQuaXNVbmRlZmluZWQocG1kLnRvdGFsUmVzaWRlbnRCeXRlcyk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAotICAgICAgICBwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcm9wb3J0aW9uYWxSZXNpZGVudCcpKTsKLQotICAgIHZhciB2OER1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Y4Jyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHY4RHVtcC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDIwNDgpOwotCi0gICAgdmFyIHRyYWNpbmdEdW1wID0gcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0cmFjaW5nJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRyYWNpbmdEdW1wLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgMTAyNCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrRGlzY291bnRUcmFjaW5nT3ZlcmhlYWRfZGVmaW5lZEZpZWxkcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBwbWQgPSBjcmVhdGVGaW5hbGl6ZWRQcm9jZXNzTWVtb3J5RHVtcCg0MiwgZnVuY3Rpb24ocG1kKSB7Ci0gICAgICBwbWQudG90YWxSZXNpZGVudEJ5dGVzID0gMTAyNDA7Ci0KLSAgICAgIHBtZC52bVJlZ2lvbnMgPSBbCi0gICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKLSAgICAgICAgICBzdGFydEFkZHJlc3M6IDI1NiwKLSAgICAgICAgICBzaXplSW5CeXRlczogNjAwMCwKLSAgICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKLSAgICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFLAotICAgICAgICAgIG1hcHBlZEZpbGU6ICdbc3RhY2s6MjAzMTBdJywKLSAgICAgICAgICBieXRlU3RhdHM6IHsKLSAgICAgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiA0MDk2LAotICAgICAgICAgICAgc3dhcHBlZDogMTUzNiwKLSAgICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiA1MTIwCi0gICAgICAgICAgfQotICAgICAgICB9KQotICAgICAgXTsKLQotICAgICAgdmFyIG1hbGxvY0R1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQsICdtYWxsb2MnKTsKLSAgICAgIG1hbGxvY0R1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAzMDcyKSk7Ci0KLSAgICAgIHZhciB0cmFjaW5nRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZCwgJ3RyYWNpbmcnKTsKLSAgICAgIHRyYWNpbmdEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTAyNCkpOwotCi0gICAgICBwbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBbbWFsbG9jRHVtcCwgdHJhY2luZ0R1bXBdOwotICAgIH0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHBtZC50b3RhbFJlc2lkZW50Qnl0ZXMsIDkyMTYpOwotCi0gICAgYXNzZXJ0LmVxdWFsKAotICAgICAgICBwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlRGlydHlSZXNpZGVudCcpLCAzMDcyKTsKLSAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgnc3dhcHBlZCcpLCAxNTM2KTsKLSAgICBhc3NlcnQuZXF1YWwoCi0gICAgICAgIHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3Byb3BvcnRpb25hbFJlc2lkZW50JyksIDQwOTYpOwotCi0gICAgdmFyIG1hbGxvY0R1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ21hbGxvYycpOwotICAgIGFzc2VydC5lcXVhbChtYWxsb2NEdW1wLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgMjA0OCk7Ci0KLSAgICB2YXIgdHJhY2luZ0R1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3RyYWNpbmcnKTsKLSAgICBhc3NlcnQuZXF1YWwodHJhY2luZ0R1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAxMDI0KTsKLSAgfSk7Ci0KLSAgdGVzdCgnY2hlY2tEaXNjb3VudFRyYWNpbmdPdmVyaGVhZF93aXRoTW9zdFJlY2VudFZtUmVnaW9uc0xpbmtzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHBtZHMgPSBjcmVhdGVGaW5hbGl6ZWRQcm9jZXNzTWVtb3J5RHVtcHMoWzQyLCA5MF0sIGZ1bmN0aW9uKHBtZHMpIHsKLSAgICAgIHBtZHNbMF0udG90YWxSZXNpZGVudEJ5dGVzID0gMTAwMDsKLSAgICAgIHBtZHNbMF0udm1SZWdpb25zID0gWwotICAgICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7Ci0gICAgICAgICAgc3RhcnRBZGRyZXNzOiAyNTYsCi0gICAgICAgICAgc2l6ZUluQnl0ZXM6IDYwMDAsCi0gICAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8Ci0gICAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURSwKLSAgICAgICAgICBtYXBwZWRGaWxlOiAnW3N0YWNrOjIwMzEwXScsCi0gICAgICAgICAgYnl0ZVN0YXRzOiB7Ci0gICAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogNDA5NgotICAgICAgICAgIH0KLSAgICAgICAgfSkKLSAgICAgIF07Ci0gICAgICBwbWRzWzBdLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgdHJhY2luZ0R1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWRzWzBdLCAndHJhY2luZycpOwotICAgICAgICB0cmFjaW5nRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwMCkpOwotICAgICAgICByZXR1cm4gW3RyYWNpbmdEdW1wXTsKLSAgICAgIH0pKCk7Ci0KLSAgICAgIHBtZHNbMV0udG90YWxSZXNpZGVudEJ5dGVzID0gMjAwMDsKLSAgICAgIHBtZHNbMV0ubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB0cmFjaW5nRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZHNbMF0sICd0cmFjaW5nJyk7Ci0gICAgICAgIHRyYWNpbmdEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMjAwKSk7Ci0gICAgICAgIHJldHVybiBbdHJhY2luZ0R1bXBdOwotICAgICAgfSkoKTsKLSAgICB9KTsKLQotICAgIC8vIEZpcnN0IFBNRDogQm90aCB0b3RhbCByZXNpZGVudCBhbmQgcHJpdmF0ZSBkaXJ0eSByZXNpZGVudCBzaXplIHNob3VsZCBiZQotICAgIC8vIHJlZHVjZWQgYnkgMTAwLgotICAgIGFzc2VydC5lcXVhbChwbWRzWzBdLnRvdGFsUmVzaWRlbnRCeXRlcywgOTAwKTsKLSAgICBhc3NlcnQuZXF1YWwoCi0gICAgICAgIHBtZHNbMF0uZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlRGlydHlSZXNpZGVudCcpLCAzOTk2KTsKLQotICAgIC8vIFNlY29uZCBQTUQ6IFRvdGFsIHJlc2lkZW50IHNpemUgc2hvdWxkIGJlIHJlZHVjZWQgYnkgMjAwLCB3aGVyZWFzIHByaXZhdGUKLSAgICAvLyBkaXJ0eSByZXNpZGVudCBzaXplIHNob3VsZCBiZSByZWR1Y2VkIGJ5IDEwMCAoYmVjYXVzZSBpdCBjb21lcyBmcm9tCi0gICAgLy8gdGhlIFZNIHJlZ2lvbnMgaW4gdGhlIGZpcnN0IGR1bXApLgotICAgIGFzc2VydC5lcXVhbChwbWRzWzFdLnRvdGFsUmVzaWRlbnRCeXRlcywgMTgwMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKAotICAgICAgICBwbWRzWzFdLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZURpcnR5UmVzaWRlbnQnKSwgMzk5Nik7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvcHJvY2Vzc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb2Nlc3NfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzgyZmZhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvcHJvY2Vzc190ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdGVzdCgnZ2V0T3JDcmVhdGVDb3VudGVyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHByb2Nlc3MgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgNyk7Ci0gICAgdmFyIGN0ckJhciA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVDb3VudGVyKCdmb28nLCAnYmFyJyk7Ci0gICAgdmFyIGN0ckJhcjIgPSBwcm9jZXNzLmdldE9yQ3JlYXRlQ291bnRlcignZm9vJywgJ2JhcicpOwotICAgIGFzc2VydC5lcXVhbChjdHJCYXIyLCBjdHJCYXIpOwotICB9KTsKLQotICB0ZXN0KCdzaGlmdFRpbWVzdGFtcHNGb3J3YXJkJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHByb2Nlc3MgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgNyk7Ci0gICAgdmFyIGN0ciA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVDb3VudGVyKCdmb28nLCAnYmFyJyk7Ci0gICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7Ci0KLSAgICB2YXIgc2hpZnRDb3VudCA9IDA7Ci0gICAgdGhyZWFkLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQgPSBmdW5jdGlvbih0cykgewotICAgICAgaWYgKHRzID09IDAuMzIpCi0gICAgICAgIHNoaWZ0Q291bnQrKzsKLSAgICB9OwotICAgIGN0ci5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkID0gZnVuY3Rpb24odHMpIHsKLSAgICAgIGlmICh0cyA9PSAwLjMyKQotICAgICAgICBzaGlmdENvdW50Kys7Ci0gICAgfTsKLSAgICBwcm9jZXNzLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoMC4zMik7Ci0gICAgYXNzZXJ0LmVxdWFsKHNoaWZ0Q291bnQsIDIpOwotICB9KTsKLQotICB0ZXN0KCdjb21wYXJlT25QSUQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcDEgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgMSk7Ci0gICAgcDEubmFtZSA9ICdSZW5kZXJlcic7Ci0KLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgcDIgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgMik7Ci0gICAgcDIubmFtZSA9ICdSZW5kZXJlcic7Ci0KLSAgICBhc3NlcnQuaXNCZWxvdyhwMS5jb21wYXJlVG8ocDIpLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY29tcGFyZU9uU29ydEluZGV4JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbmV3IHRyLm1vZGVsLlByb2Nlc3MobW9kZWwsIDEpOwotICAgIHAxLm5hbWUgPSAnUmVuZGVyZXInOwotICAgIHAxLnNvcnRJbmRleCA9IDE7Ci0KLSAgICB2YXIgcDIgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgMik7Ci0gICAgcDIubmFtZSA9ICdSZW5kZXJlcic7Ci0KLSAgICBhc3NlcnQuaXNBYm92ZShwMS5jb21wYXJlVG8ocDIpLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY29tcGFyZU9uTmFtZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzKG1vZGVsLCAxKTsKLSAgICBwMS5uYW1lID0gJ0Jyb3dzZXInOwotCi0gICAgdmFyIHAyID0gbmV3IHRyLm1vZGVsLlByb2Nlc3MobW9kZWwsIDIpOwotICAgIHAyLm5hbWUgPSAnUmVuZGVyZXInOwotCi0gICAgYXNzZXJ0LmlzQmVsb3cocDEuY29tcGFyZVRvKHAyKSwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NvbXBhcmVPbkxhYmVscycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwMSA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzKG1vZGVsLCAxKTsKLSAgICBwMS5uYW1lID0gJ1JlbmRlcmVyJzsKLSAgICBwMS5sYWJlbHMgPSBbJ2EnXTsKLQotICAgIHZhciBwMiA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzKG1vZGVsLCAyKTsKLSAgICBwMi5uYW1lID0gJ1JlbmRlcmVyJzsKLSAgICBwMi5sYWJlbHMgPSBbJ2InXTsKLQotICAgIGFzc2VydC5pc0JlbG93KHAxLmNvbXBhcmVUbyhwMiksIDApOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvcmVjdF9hbm5vdGF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3JlY3RfYW5ub3RhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjU3NDUxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvcmVjdF9hbm5vdGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2xvY2F0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hbm5vdGF0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3RyYWNrcy9yZWN0X2Fubm90YXRpb25fdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0KLSAgZnVuY3Rpb24gUmVjdEFubm90YXRpb24oc3RhcnQsIGVuZCkgewotICAgIHRyLm1vZGVsLkFubm90YXRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLQotICAgIHRoaXMuc3RhcnRMb2NhdGlvbl8gPSBzdGFydDsgLy8gTG9jYXRpb24gb2YgdG9wLWxlZnQgY29ybmVyLgotICAgIHRoaXMuZW5kTG9jYXRpb25fID0gZW5kOyAvLyBMb2NhdGlvbiBvZiBib3R0b20tcmlnaHQgY29ybmVyLgotICAgIHRoaXMuZmlsbFN0eWxlID0gJ3JnYmEoMjU1LCAxODAsIDAsIDAuMyknOwotICB9Ci0KLSAgUmVjdEFubm90YXRpb24uZnJvbURpY3QgPSBmdW5jdGlvbihkaWN0KSB7Ci0gICAgdmFyIGFyZ3MgPSBkaWN0LmFyZ3M7Ci0gICAgdmFyIHN0YXJ0TG9jID0KLSAgICAgICAgbmV3IHRyLmMuTG9jYXRpb24oYXJncy5zdGFydC54V29ybGQsIGFyZ3Muc3RhcnQueUNvbXBvbmVudHMpOwotICAgIHZhciBlbmRMb2MgPQotICAgICAgICBuZXcgdHIuYy5Mb2NhdGlvbihhcmdzLmVuZC54V29ybGQsIGFyZ3MuZW5kLnlDb21wb25lbnRzKTsKLSAgICByZXR1cm4gbmV3IHRyLm1vZGVsLlJlY3RBbm5vdGF0aW9uKHN0YXJ0TG9jLCBlbmRMb2MpOwotICB9Ci0KLSAgUmVjdEFubm90YXRpb24ucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuQW5ub3RhdGlvbi5wcm90b3R5cGUsCi0KLSAgICBnZXQgc3RhcnRMb2NhdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLnN0YXJ0TG9jYXRpb25fOwotICAgIH0sCi0KLSAgICBnZXQgZW5kTG9jYXRpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5lbmRMb2NhdGlvbl87Ci0gICAgfSwKLQotICAgIHRvRGljdDogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gewotICAgICAgICB0eXBlTmFtZTogJ3JlY3QnLAotICAgICAgICBhcmdzOiB7Ci0gICAgICAgICAgc3RhcnQ6IHRoaXMuc3RhcnRMb2NhdGlvbi50b0RpY3QoKSwKLSAgICAgICAgICBlbmQ6IHRoaXMuZW5kTG9jYXRpb24udG9EaWN0KCkKLSAgICAgICAgfQotICAgICAgfTsKLSAgICB9LAotCi0gICAgY3JlYXRlVmlld186IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICByZXR1cm4gbmV3IHRyLmMuYW5ub3RhdGlvbnMuUmVjdEFubm90YXRpb25WaWV3KHZpZXdwb3J0LCB0aGlzKTsKLSAgICB9Ci0gIH07Ci0KLSAgdHIubW9kZWwuQW5ub3RhdGlvbi5yZWdpc3RlcihSZWN0QW5ub3RhdGlvbiwge3R5cGVOYW1lOiAncmVjdCd9KTsKLQotICByZXR1cm4gewotICAgIFJlY3RBbm5vdGF0aW9uOiBSZWN0QW5ub3RhdGlvbgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2FtcGxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NhbXBsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzQyOTE1Li4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2FtcGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aW1lZF9ldmVudC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBTYW1wbGUgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSBTYW1wbGUgcmVwcmVzZW50cyBhIHNhbXBsZSB0YWtlbiBhdCBhbiBpbnN0YW50IGluIHRpbWUsIHBsdXMgaXRzIHN0YWNrCi0gICAqIGZyYW1lIGFuZCBwYXJhbWV0ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IHNhbXBsZS4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqLwotICBmdW5jdGlvbiBTYW1wbGUoY3B1LCB0aHJlYWQsIHRpdGxlLCBzdGFydCwgbGVhZlN0YWNrRnJhbWUsCi0gICAgICAgICAgICAgICAgICBvcHRfd2VpZ2h0LCBvcHRfYXJncykgewotICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7Ci0KLSAgICB0aGlzLnRpdGxlID0gdGl0bGU7Ci0gICAgdGhpcy5jcHUgPSBjcHU7Ci0gICAgdGhpcy50aHJlYWQgPSB0aHJlYWQ7Ci0gICAgdGhpcy5sZWFmU3RhY2tGcmFtZSA9IGxlYWZTdGFja0ZyYW1lOwotICAgIHRoaXMud2VpZ2h0ID0gb3B0X3dlaWdodDsKLSAgICB0aGlzLmFyZ3MgPSBvcHRfYXJncyB8fCB7fTsKLSAgfQotCi0gIFNhbXBsZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSwKLQotICAgIGdldCBjb2xvcklkKCkgewotICAgICAgcmV0dXJuIHRoaXMubGVhZlN0YWNrRnJhbWUuY29sb3JJZDsKLSAgICB9LAotCi0gICAgZ2V0IHN0YWNrVHJhY2UoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5sZWFmU3RhY2tGcmFtZS5zdGFja1RyYWNlOwotICAgIH0sCi0KLSAgICBnZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlOiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB0aGlzLmxlYWZTdGFja0ZyYW1lLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKTsKLSAgICB9LAotCi0gICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7Ci0gICAgICByZXR1cm4gJ1NhbXBsZSAnICsgJyBhdCAnICsKLSAgICAgICAgICB0ci5iLnVuaXRzLnRzU3RyaW5nKHRoaXMuc3RhcnQpOwotICAgIH0KLSAgfTsKLQotICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAotICAgICAgU2FtcGxlLAotICAgICAgewotICAgICAgICBuYW1lOiAnc2FtcGxlJywKLSAgICAgICAgcGx1cmFsTmFtZTogJ3NhbXBsZXMnLAotICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtc2luZ2xlLXNhbXBsZS1zdWItdmlldycsCi0gICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItYy1hLW11bHRpLXNhbXBsZS1zdWItdmlldycKLSAgICAgIH0pOwotCi0gIHJldHVybiB7Ci0gICAgU2FtcGxlOiBTYW1wbGUKLSAgfTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2FtcGxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2FtcGxlX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTVlYTFkNy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NhbXBsZV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi10ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKLSAgdmFyIFNhbXBsZSA9IHRyLm1vZGVsLlNhbXBsZTsKLSAgdmFyIFN0YWNrRnJhbWUgPSB0ci5tb2RlbC5TdGFja0ZyYW1lOwotICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOwotCi0gIHRlc3QoJ3NhbXBsZVN0YWNrVHJhY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGhyZWFkID0gbmV3IFRocmVhZCh7fSwgMSk7Ci0KLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgZkFCQyA9IHRyLmMudGVzdF91dGlscy5uZXdTdGFja1RyYWNlKG1vZGVsLCAnY2F0JywgWydhJywgJ2InLCAnYyddKTsKLQotICAgIHZhciBzID0gbmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2luc3RydWN0aW9uc19yZXRpcmVkJywKLSAgICAgICAgICAgICAgICAgICAgICAgMTAsIGZBQkMsIDEwKTsKLSAgICB2YXIgc3RhY2tUcmFjZSA9IHMuc3RhY2tUcmFjZTsKLSAgICB2YXIgc3RhY2tUcmFjZU5hbWVzID0gc3RhY2tUcmFjZS5tYXAoZnVuY3Rpb24oZikgeyByZXR1cm4gZi50aXRsZTsgfSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbCgKLSAgICAgICAgc3RhY2tUcmFjZU5hbWVzLAotICAgICAgICBbJ2EnLCAnYicsICdjJ10pOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+Ci0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2VsZWN0YWJsZV9pdGVtX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2VsZWN0YWJsZV9pdGVtX3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGNjODNlMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NlbGVjdGFibGVfaXRlbV90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3RhYmxlX2l0ZW0uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBTZWxlY3RhYmxlSXRlbSA9IHRyLm1vZGVsLlNlbGVjdGFibGVJdGVtOwotICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKLSAgdmFyIEV2ZW50ID0gdHIubW9kZWwuRXZlbnQ7Ci0KLSAgZnVuY3Rpb24gYnVpbGRFdmVudFRvVHJhY2tNYXAoKSB7Ci0gICAgdmFyIGV2ZW50VG9UcmFja01hcCA9IHsKLSAgICAgIG1hcDoge30sCi0gICAgICBhZGRFdmVudDogZnVuY3Rpb24oZXZlbnQsIHRyYWNrKSB7Ci0gICAgICAgIHRoaXMubWFwW2V2ZW50Lmd1aWRdID0gdHJhY2s7Ci0gICAgICB9Ci0gICAgfTsKLSAgICByZXR1cm4gZXZlbnRUb1RyYWNrTWFwOwotICB9OwotCi0gIHRlc3QoJ2NoZWNrTW9kZWxJdGVtJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGFibGVJdGVtMSA9IG5ldyBTZWxlY3RhYmxlSXRlbSh1bmRlZmluZWQpOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChzZWxlY3RhYmxlSXRlbTEubW9kZWxJdGVtKTsKLQotICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgpOwotICAgIHZhciBzZWxlY3RhYmxlSXRlbTIgPSBuZXcgU2VsZWN0YWJsZUl0ZW0oZXZlbnQpOwotICAgIGFzc2VydC5lcXVhbChzZWxlY3RhYmxlSXRlbTIubW9kZWxJdGVtLCBldmVudCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrU2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgc2VsZWN0YWJsZUl0ZW0gPSBuZXcgU2VsZWN0YWJsZUl0ZW0odW5kZWZpbmVkKTsKLQotICAgIHNlbGVjdGFibGVJdGVtLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuTk9ORTsKLSAgICBhc3NlcnQuaXNGYWxzZShzZWxlY3RhYmxlSXRlbS5zZWxlY3RlZCk7Ci0KLSAgICBzZWxlY3RhYmxlSXRlbS5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOwotICAgIGFzc2VydC5pc1RydWUoc2VsZWN0YWJsZUl0ZW0uc2VsZWN0ZWQpOwotCi0gICAgc2VsZWN0YWJsZUl0ZW0uc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRDsKLSAgICBhc3NlcnQuaXNGYWxzZShzZWxlY3RhYmxlSXRlbS5zZWxlY3RlZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrQWRkVG9TZWxlY3Rpb25fdW5kZWZpbmVkTW9kZWxJdGVtJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGFibGVJdGVtID0gbmV3IFNlbGVjdGFibGVJdGVtKHVuZGVmaW5lZCk7Ci0gICAgdmFyIHNlbGVjdGlvbiA9IFtdOwotICAgIHNlbGVjdGFibGVJdGVtLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbGVjdGlvbiwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NoZWNrQWRkVG9TZWxlY3Rpb25fZGVmaW5lZE1vZGVsSXRlbScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgpOwotICAgIHZhciBzZWxlY3RhYmxlSXRlbSA9IG5ldyBTZWxlY3RhYmxlSXRlbShldmVudCk7Ci0gICAgdmFyIHNlbGVjdGlvbiA9IFtdOwotICAgIHNlbGVjdGFibGVJdGVtLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbGVjdGlvbiwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvblswXSwgZXZlbnQpOwotICB9KTsKLQotICB0ZXN0KCdjaGVja0FkZFRvVHJhY2tNYXBfdW5kZWZpbmVkTW9kZWxJdGVtJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNlbGVjdGFibGVJdGVtID0gbmV3IFNlbGVjdGFibGVJdGVtKHVuZGVmaW5lZCk7Ci0gICAgdmFyIGV2ZW50VG9UcmFja01hcCA9IGJ1aWxkRXZlbnRUb1RyYWNrTWFwKCk7Ci0gICAgdmFyIHRyYWNrID0ge307Ci0gICAgc2VsZWN0YWJsZUl0ZW0uYWRkVG9UcmFja01hcChldmVudFRvVHJhY2tNYXAsIHRyYWNrKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoZXZlbnRUb1RyYWNrTWFwLm1hcCksIDApOwotICB9KTsKLQotICB0ZXN0KCdjaGVja0FkZFRvVHJhY2tNYXBfZGVmaW5lZE1vZGVsSXRlbScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgpOwotICAgIHZhciBzZWxlY3RhYmxlSXRlbSA9IG5ldyBTZWxlY3RhYmxlSXRlbShldmVudCk7Ci0gICAgdmFyIGV2ZW50VG9UcmFja01hcCA9IGJ1aWxkRXZlbnRUb1RyYWNrTWFwKCk7Ci0gICAgdmFyIHRyYWNrID0ge307Ci0gICAgc2VsZWN0YWJsZUl0ZW0uYWRkVG9UcmFja01hcChldmVudFRvVHJhY2tNYXAsIHRyYWNrKTsKLSAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoZXZlbnRUb1RyYWNrTWFwLm1hcCksIDEpOwotICAgIGFzc2VydC5lcXVhbChldmVudFRvVHJhY2tNYXAubWFwW2V2ZW50Lmd1aWRdLCB0cmFjayk7Ci0gIH0pOwotfSk7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9zaW5nbGVfYXN5bmNfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9zaW5nbGVfYXN5bmNfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZGJhMzNhLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYW5hbHlzaXMvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2VsZWN0aW9uLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7Ci0gIHZhciBuZXdBc3luY1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZUV4OwotCi0gIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOwotICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOwotICAgIHQxLmFzeW5jU2xpY2VHcm91cC5wdXNoKG5ld0FzeW5jU2xpY2VFeCh7Ci0gICAgICBpZDogMzE0MTUsCi0gICAgICB0aXRsZTogJ2EnLAotICAgICAgc3RhcnQ6IDEwLAotICAgICAgZHVyYXRpb246IDIwLAotICAgICAgc3RhcnRUaHJlYWQ6IHQxLAotICAgICAgZW5kVGhyZWFkOiB0MQotICAgIH0pKTsKLQotICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIuYy5TZWxlY3Rpb24oKTsKLSAgICBzZWxlY3Rpb24ucHVzaCh0MS5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdKTsKLQotICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1jLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3Jyk7Ci0gICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKLSAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKLSAgfSk7Ci0KLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NsaWNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NsaWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExYzA5OTUuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9zbGljZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RpbWVkX2V2ZW50Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3V0aWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgU2xpY2UgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSBTbGljZSByZXByZXNlbnRzIGFuIGludGVydmFsIG9mIHRpbWUgcGx1cyBwYXJhbWV0ZXJzIGFzc29jaWF0ZWQKLSAgICogd2l0aCB0aGF0IGludGVydmFsLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFNsaWNlKGNhdGVnb3J5LCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MsIG9wdF9kdXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgb3B0X2NwdVN0YXJ0LCBvcHRfY3B1RHVyYXRpb24pIHsKLSAgICB0ci5tb2RlbC5UaW1lZEV2ZW50LmNhbGwodGhpcywgc3RhcnQpOwotCi0gICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5IHx8ICcnOwotICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKLSAgICB0aGlzLmNvbG9ySWQgPSBjb2xvcklkOwotICAgIHRoaXMuYXJncyA9IGFyZ3M7Ci0gICAgdGhpcy5zdGFydFN0YWNrRnJhbWUgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5lbmRTdGFja0ZyYW1lID0gdW5kZWZpbmVkOwotICAgIHRoaXMuZGlkTm90RmluaXNoID0gZmFsc2U7Ci0gICAgdGhpcy5pbkZsb3dFdmVudHMgPSBbXTsKLSAgICB0aGlzLm91dEZsb3dFdmVudHMgPSBbXTsKLSAgICB0aGlzLnN1YlNsaWNlcyA9IFtdOwotICAgIHRoaXMuc2VsZlRpbWUgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5jcHVTZWxmVGltZSA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLmltcG9ydGFudCA9IGZhbHNlOwotICAgIHRoaXMucGFyZW50Q29udGFpbmVyID0gdW5kZWZpbmVkOwotCi0gICAgaWYgKG9wdF9kdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQotICAgICAgdGhpcy5kdXJhdGlvbiA9IG9wdF9kdXJhdGlvbjsKLQotICAgIGlmIChvcHRfY3B1U3RhcnQgIT09IHVuZGVmaW5lZCkKLSAgICAgIHRoaXMuY3B1U3RhcnQgPSBvcHRfY3B1U3RhcnQ7Ci0KLSAgICBpZiAob3B0X2NwdUR1cmF0aW9uICE9PSB1bmRlZmluZWQpCi0gICAgICB0aGlzLmNwdUR1cmF0aW9uID0gb3B0X2NwdUR1cmF0aW9uOwotICB9Ci0KLSAgU2xpY2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsCi0KLQotICAgIGdldCBhbmFseXNpc1R5cGVOYW1lKCkgewotICAgICAgcmV0dXJuIHRoaXMudGl0bGU7Ci0gICAgfSwKLQotICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgewotICAgICAgcmV0dXJuICdTbGljZSAnICsgdGhpcy50aXRsZSArICcgYXQgJyArCi0gICAgICAgICAgdHIuYi51bml0cy50c1N0cmluZyh0aGlzLnN0YXJ0KTsKLSAgICB9LAotCi0gICAgZmluZERlc2NlbmRlbnRTbGljZTogZnVuY3Rpb24odGFyZ2V0VGl0bGUpIHsKLSAgICAgIGlmICghdGhpcy5zdWJTbGljZXMpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0KLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdWJTbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKHRoaXMuc3ViU2xpY2VzW2ldLnRpdGxlID09IHRhcmdldFRpdGxlKQotICAgICAgICAgIHJldHVybiB0aGlzLnN1YlNsaWNlc1tpXTsKLSAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zdWJTbGljZXNbaV0uZmluZERlc2NlbmRlbnRTbGljZSh0YXJnZXRUaXRsZSk7Ci0gICAgICAgIGlmIChzbGljZSkgcmV0dXJuIHNsaWNlOwotICAgICAgfQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0IG1vc3RUb3BMZXZlbFNsaWNlKCkgewotICAgICAgdmFyIGN1clNsaWNlID0gdGhpczsKLSAgICAgIHdoaWxlIChjdXJTbGljZS5wYXJlbnRTbGljZSkKLSAgICAgICAgY3VyU2xpY2UgPSBjdXJTbGljZS5wYXJlbnRTbGljZTsKLQotICAgICAgcmV0dXJuIGN1clNsaWNlOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBPYnRhaW5zIGFsbCBzdWJzZXF1ZW50IHNsaWNlcyBvZiB0aGlzIHNsaWNlLgotICAgICAqCi0gICAgICogU3Vic2VxdWVudCBzbGljZXMgYXJlIHNsaWNlcyB0aGF0IGdldCBleGVjdXRlZCBhZnRlciBhIHBhcnRpY3VsYXIKLSAgICAgKiBzbGljZSwgaS5lLiwgYWxsIHRoZSBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkIGFmdGVyIHRoZSBjdXJyZW50IG9uZS4KLSAgICAgKgotICAgICAqIEZvciBpbnN0YW5jZSwgRS5pdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlcygpIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKLSAgICAgKiBbICAgICBBICAgICAgICAgIF0KLSAgICAgKiBbIEJdWyAgRCAgIF1bIEcgIF0KLSAgICAgKiAgW0NdIFtFXVtGXSAgW0hdCi0gICAgICogd2lsbCBwYXNzIEYsIEcsIHRoZW4gSCB0byB0aGUgcHJvdmlkZWQgY2FsbGJhY2suCi0gICAgICoKLSAgICAgKiBUaGUgcmVhc29uIHdlIG5lZWQgc3Vic2VxdWVudCBzbGljZXMgb2YgYSBwYXJ0aWN1bGFyIHNsaWNlIGlzIHRoYXQKLSAgICAgKiB3aGVuIHRoZXJlIGlzIGZsb3cgZXZlbnQgZ29lcyBpbnRvLCBlLmcuLCBFLCB3ZSBvbmx5IHdhbnQgdG8gaGlnaGxpZ2h0Ci0gICAgICogRSdzIHN1YnNlcXVlbnQgc2xpY2VzIHRvIGluZGljYXRlIHRoZSBleGVjdXRpb24gb3JkZXIuCi0gICAgICoKLSAgICAgKiBUaGUgaWRlYSB0byBjYWxjdWxhdGUgdGhlIHN1YnNlcXVlbnQgc2xpY2VzIG9mIHNsaWNlIEUgaXMgdG8gdmlldwotICAgICAqIHRoZSBzbGljZSBncm91cCBhcyBhIHRyZWUgd2hlcmUgdGhlIHRvcC1sZXZlbCBzbGljZSBBIGlzIHRoZSByb290IG5vZGUuCi0gICAgICogVGhlIHByZW9yZGVyIGRlcHRoLWZpcnN0LXNlYXJjaCAoREZTKSBvcmRlciBpcyBuYXR1cmFsbHkgZXF1aXZhbGVudAotICAgICAqIHRvIHRoZSBmdW5jdGlvbiBjYWxsIG9yZGVyLiBXZSBqdXN0IG5lZWQgdG8gcGVyZm9ybSBhIERGUywgYW5kIHN0YXJ0Ci0gICAgICogcmVjb3JkaW5nIHRoZSBzbGljZXMgYWZ0ZXIgd2Ugc2VlIHRoZSBvY2N1cmFuY2Ugb2YgRS4KLSAgICAgKi8KLSAgICBpdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgICB2YXIgcGFyZW50U3RhY2sgPSBbXTsKLSAgICAgIHZhciBzdGFydGVkID0gZmFsc2U7Ci0KLSAgICAgIC8vIGdldCB0aGUgcm9vdCBub2RlIGFuZCBwdXNoIGl0IHRvIHRoZSBERlMgc3RhY2sKLSAgICAgIHZhciB0b3Btb3N0U2xpY2UgPSB0aGlzLm1vc3RUb3BMZXZlbFNsaWNlOwotICAgICAgcGFyZW50U3RhY2sucHVzaCh0b3Btb3N0U2xpY2UpOwotCi0gICAgICAvLyBVc2luZyB0aGUgc3RhY2sgdG8gcGVyZm9ybSBERlMKLSAgICAgIHdoaWxlIChwYXJlbnRTdGFjay5sZW5ndGggIT09IDApIHsKLSAgICAgICAgdmFyIGN1clNsaWNlID0gcGFyZW50U3RhY2sucG9wKCk7Ci0KLSAgICAgICAgaWYgKHN0YXJ0ZWQpCi0gICAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgY3VyU2xpY2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgc3RhcnRlZCA9IChjdXJTbGljZS5ndWlkID09PSB0aGlzLmd1aWQpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSBjdXJTbGljZS5zdWJTbGljZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgICAgICBwYXJlbnRTdGFjay5wdXNoKGN1clNsaWNlLnN1YlNsaWNlc1tpXSk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0IHN1YnNlcXVlbnRTbGljZXMoKSB7Ci0gICAgICB2YXIgcmVzID0gW107Ci0KLSAgICAgIHRoaXMuaXRlcmF0ZUFsbFN1YnNlcXVlbnRTbGljZXMoZnVuY3Rpb24oc3Vic2VxU2xpY2UpIHsKLSAgICAgICAgcmVzLnB1c2goc3Vic2VxU2xpY2UpOwotICAgICAgfSk7Ci0KLSAgICAgIHJldHVybiByZXM7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIE9idGFpbnMgdGhlIHBhcmVudHMgb2YgYSBzbGljZSwgZnJvbSB0aGUgbW9zdCBpbW1lZGlhdGUgdG8gdGhlIHJvb3QuCi0gICAgICoKLSAgICAgKiBGb3IgaW5zdGFuY2UsIEUuaXRlcmF0ZUFsbEFuY2VzdG9ycygpIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKLSAgICAgKiBbICAgICBBICAgICAgICAgIF0KLSAgICAgKiBbIEJdWyAgRCAgIF1bIEcgIF0KLSAgICAgKiAgW0NdIFtFXVtGXSAgW0hdCi0gICAgICogd2lsbCBwYXNzIEQsIHRoZW4gQSB0byB0aGUgcHJvdmlkZWQgY2FsbGJhY2ssIGluIHRoZSBvcmRlciBmcm9tIHRoZQotICAgICAqIGxlYXZlcyB0byB0aGUgcm9vdC4KLSAgICAgKi8KLSAgICBpdGVyYXRlQWxsQW5jZXN0b3JzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIHZhciBjdXJTbGljZSA9IHRoaXM7Ci0KLSAgICAgIHdoaWxlIChjdXJTbGljZS5wYXJlbnRTbGljZSkgewotICAgICAgICBjdXJTbGljZSA9IGN1clNsaWNlLnBhcmVudFNsaWNlOwotICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCBjdXJTbGljZSk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIGdldCBhbmNlc3RvclNsaWNlcygpIHsKLSAgICAgIHZhciByZXMgPSBbXTsKLQotICAgICAgdGhpcy5pdGVyYXRlQWxsQW5jZXN0b3JzKGZ1bmN0aW9uKGFuY2VzdG9yKSB7Ci0gICAgICAgIHJlcy5wdXNoKGFuY2VzdG9yKTsKLSAgICAgIH0pOwotCi0gICAgICByZXR1cm4gcmVzOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoaXMgc2xpY2UsIGFuZCBpdHMgYW5jZXN0b3IgYW5kIHN1YnNlcXVlbnQgc2xpY2VzLgotICAgICAqCi0gICAgICogRm9yIGluc3RhbmNlLCBFLmFuY2VzdG9yQW5kU3Vic2VxdWVudFNsaWNlcyBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6Ci0gICAgICogWyAgICAgQSAgICAgICAgICBdCi0gICAgICogWyBCXVsgIEQgICBdWyBHICBdCi0gICAgICogIFtDXSBbRV1bRl0gIFtIXQotICAgICAqIHdpbGwgcmV0dXJuIEUsIEQsIEEsIEYsIEcsIGFuZCBILCB3aGVyZSBFIGlzIGl0c2VsZiwgRCBhbmQgQSBhcmUKLSAgICAgKiBFJ3MgYW5jZXN0b3JzLCBhbmQgRiwgRywgYW5kIEggYXJlIHN1YnNlcXVlbnQgc2xpY2VzIG9mIEUKLSAgICAgKi8KLSAgICBnZXQgYW5jZXN0b3JBbmRTdWJzZXF1ZW50U2xpY2VzKCkgewotICAgICAgdmFyIHJlcyA9IFtdOwotCi0gICAgICByZXMucHVzaCh0aGlzKTsKLQotICAgICAgdGhpcy5pdGVyYXRlQWxsQW5jZXN0b3JzKGZ1bmN0aW9uKGFTbGljZSkgewotICAgICAgICByZXMucHVzaChhU2xpY2UpOwotICAgICAgfSk7Ci0KLSAgICAgIHRoaXMuaXRlcmF0ZUFsbFN1YnNlcXVlbnRTbGljZXMoZnVuY3Rpb24oc1NsaWNlKSB7Ci0gICAgICAgIHJlcy5wdXNoKHNTbGljZSk7Ci0gICAgICB9KTsKLQotICAgICAgcmV0dXJuIHJlczsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbERlc2NlbmRlbnRzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIHRoaXMuc3ViU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKLSAgICAgIHRoaXMuc3ViU2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc3ViU2xpY2UpIHsKLSAgICAgICAgc3ViU2xpY2UuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0gICAgICB9LCBvcHRfdGhpcyk7Ci0gICAgfSwKLQotICAgIGdldCBkZXNjZW5kZW50U2xpY2VzKCkgewotICAgICAgdmFyIHJlcyA9IFtdOwotCi0gICAgICB0aGlzLml0ZXJhdGVBbGxEZXNjZW5kZW50cyhmdW5jdGlvbihkZXMpIHsKLSAgICAgICAgcmVzLnB1c2goZGVzKTsKLSAgICAgIH0pOwotCi0gICAgICByZXR1cm4gcmVzOwotICAgIH0KLQotICB9OwotCi0gIHJldHVybiB7Ci0gICAgU2xpY2U6IFNsaWNlCi0gIH07Ci19KTsKLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NsaWNlX2dyb3VwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NsaWNlX2dyb3VwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YWQ2YTkuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9zbGljZV9ncm91cC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X2NvbnRhaW5lci5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdWkvY29sb3Jfc2NoZW1lLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFNsaWNlR3JvdXAgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKLQotICBmdW5jdGlvbiBnZXRTbGljZUxvKHMpIHsKLSAgICByZXR1cm4gcy5zdGFydDsKLSAgfQotCi0gIGZ1bmN0aW9uIGdldFNsaWNlSGkocykgewotICAgIHJldHVybiBzLmVuZDsKLSAgfQotCi0gIC8qKgotICAgKiBBIGdyb3VwIG9mIFNsaWNlcywgcGx1cyBjb2RlIHRvIGNyZWF0ZSB0aGVtIGZyb20gQi9FIGV2ZW50cywgYXMKLSAgICogd2VsbCBhcyBhcnJhbmdlIHRoZW0gaW50byBzdWJSb3dzLgotICAgKgotICAgKiBEbyBub3QgbXV0YXRlIHRoZSBzbGljZXMgYXJyYXkgZGlyZWN0bHkuIE1vZGlmeSBpdCBvbmx5IGJ5Ci0gICAqIFNsaWNlR3JvdXAgbXV0YXRpb24gbWV0aG9kcy4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBwYXJhbSB7ZnVuY3Rpb24obmV3OlNsaWNlLCBjYXRlZ29yeSwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzKT19Ci0gICAqICAgICBvcHRfc2xpY2VDb25zdHJ1Y3RvciBUaGUgY29uc3RydWN0b3IgdG8gdXNlIHdoZW4gY3JlYXRpbmcgc2xpY2VzLgotICAgKiBAZXh0ZW5kcyB7dHIubW9kZWwuRXZlbnRDb250YWluZXJ9Ci0gICAqLwotICBmdW5jdGlvbiBTbGljZUdyb3VwKHBhcmVudENvbnRhaW5lciwgb3B0X3NsaWNlQ29uc3RydWN0b3IsIG9wdF9uYW1lKSB7Ci0gICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOwotCi0gICAgdGhpcy5wYXJlbnRDb250YWluZXJfID0gcGFyZW50Q29udGFpbmVyOwotCi0gICAgdmFyIHNsaWNlQ29uc3RydWN0b3IgPSBvcHRfc2xpY2VDb25zdHJ1Y3RvciB8fCBTbGljZTsKLSAgICB0aGlzLnNsaWNlQ29uc3RydWN0b3IgPSBzbGljZUNvbnN0cnVjdG9yOwotCi0gICAgdGhpcy5vcGVuUGFydGlhbFNsaWNlc18gPSBbXTsKLQotICAgIHRoaXMuc2xpY2VzID0gW107Ci0gICAgdGhpcy5ib3VuZHMgPSBuZXcgdHIuYi5SYW5nZSgpOwotICAgIHRoaXMudG9wTGV2ZWxTbGljZXMgPSBbXTsKLSAgICB0aGlzLmhhdmVUb3BMZXZlbFNsaWNlc0JlZW5CdWlsdCA9IGZhbHNlOwotICAgIHRoaXMubmFtZV8gPSBvcHRfbmFtZTsKLSAgfQotCi0gIFNsaWNlR3JvdXAucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLAotCi0gICAgZ2V0IGd1aWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5ndWlkXzsKLSAgICB9LAotCi0gICAgZ2V0IHBhcmVudENvbnRhaW5lcigpIHsKLSAgICAgIHJldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl87Ci0gICAgfSwKLQotICAgIGdldCBtb2RlbCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl8ucGFyZW50Lm1vZGVsOwotICAgIH0sCi0KLSAgICBnZXQgc3RhYmxlSWQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5wYXJlbnRDb250YWluZXJfLnN0YWJsZUlkICsgJy5TbGljZUdyb3VwJzsKLSAgICB9LAotCi0gICAgZ2V0U2V0dGluZ3NLZXk6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLm5hbWVfKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgdmFyIHBhcmVudEtleSA9IHRoaXMucGFyZW50Q29udGFpbmVyXy5nZXRTZXR0aW5nc0tleSgpOwotICAgICAgaWYgKCFwYXJlbnRLZXkpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gcGFyZW50S2V5ICsgJy4nICsgdGhpcy5uYW1lOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBudW1iZXIgb2Ygc2xpY2VzIGluIHRoaXMgZ3JvdXAuCi0gICAgICovCi0gICAgZ2V0IGxlbmd0aCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnNsaWNlcy5sZW5ndGg7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEhlbHBlciBmdW5jdGlvbiB0aGF0IHB1c2hlcyB0aGUgcHJvdmlkZWQgc2xpY2Ugb250byB0aGUgc2xpY2VzIGFycmF5LgotICAgICAqIEBwYXJhbSB7U2xpY2V9IHNsaWNlIFRoZSBzbGljZSB0byBiZSBhZGRlZCB0byB0aGUgc2xpY2VzIGFycmF5LgotICAgICAqLwotICAgIHB1c2hTbGljZTogZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgIHRoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0ID0gZmFsc2U7Ci0gICAgICBzbGljZS5wYXJlbnRDb250YWluZXIgPSB0aGlzLnBhcmVudENvbnRhaW5lcl87Ci0gICAgICB0aGlzLnNsaWNlcy5wdXNoKHNsaWNlKTsKLSAgICAgIHJldHVybiBzbGljZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogSGVscGVyIGZ1bmN0aW9uIHRoYXQgcHVzaGVzIHRoZSBwcm92aWRlZCBzbGljZXMgb250byB0aGUgc2xpY2VzIGFycmF5LgotICAgICAqIEBwYXJhbSB7QXJyYXkuPFNsaWNlPn0gc2xpY2VzIEFuIGFycmF5IG9mIHNsaWNlcyB0byBiZSBhZGRlZC4KLSAgICAgKi8KLSAgICBwdXNoU2xpY2VzOiBmdW5jdGlvbihzbGljZXMpIHsKLSAgICAgIHRoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0ID0gZmFsc2U7Ci0gICAgICBzbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgewotICAgICAgICBzbGljZS5wYXJlbnRDb250YWluZXIgPSB0aGlzLnBhcmVudENvbnRhaW5lcl87Ci0gICAgICAgIHRoaXMuc2xpY2VzLnB1c2goc2xpY2UpOwotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIE9wZW5zIGEgbmV3IHNsaWNlIGluIHRoZSBncm91cCdzIHNsaWNlcy4KLSAgICAgKgotICAgICAqIENhbGxzIHRvIGJlZ2luU2xpY2UgYW5kCi0gICAgICogZW5kU2xpY2UgbXVzdCBiZSBtYWRlIHdpdGggbm9uLW1vbm90b25pY2FsbHktZGVjcmVhc2luZyB0aW1lc3RhbXBzLgotICAgICAqCi0gICAgICogQHBhcmFtIHtTdHJpbmd9IGNhdGVnb3J5IENhdGVnb3J5IG5hbWUgb2YgdGhlIHNsaWNlIHRvIGFkZC4KLSAgICAgKiBAcGFyYW0ge1N0cmluZ30gdGl0bGUgVGl0bGUgb2YgdGhlIHNsaWNlIHRvIGFkZC4KLSAgICAgKiBAcGFyYW0ge051bWJlcn0gdHMgVGhlIHRpbWV0c2FtcCBvZiB0aGUgc2xpY2UsIGluIG1pbGxpc2Vjb25kcy4KLSAgICAgKiBAcGFyYW0ge09iamVjdC48c3RyaW5nLCBPYmplY3Q+PX0gb3B0X2FyZ3MgQXJndW1lbnRzIGFzc29jaWF0ZWQgd2l0aAotICAgICAqIHRoZSBzbGljZS4KLSAgICAgKi8KLSAgICBiZWdpblNsaWNlOiBmdW5jdGlvbihjYXRlZ29yeSwgdGl0bGUsIHRzLCBvcHRfYXJncywgb3B0X3R0cykgewotICAgICAgaWYgKHRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCkgewotICAgICAgICB2YXIgcHJldlNsaWNlID0gdGhpcy5vcGVuUGFydGlhbFNsaWNlc19bCi0gICAgICAgICAgICB0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGggLSAxXTsKLSAgICAgICAgaWYgKHRzIDwgcHJldlNsaWNlLnN0YXJ0KQotICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2xpY2VzIG11c3QgYmUgYWRkZWQgaW4gaW5jcmVhc2luZyB0aW1lc3RhbXAgb3JkZXInKTsKLSAgICAgIH0KLQotICAgICAgdmFyIGNvbG9ySWQgPSB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aXRsZSk7Ci0gICAgICB2YXIgc2xpY2UgPSBuZXcgdGhpcy5zbGljZUNvbnN0cnVjdG9yKGNhdGVnb3J5LCB0aXRsZSwgY29sb3JJZCwgdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9hcmdzID8gb3B0X2FyZ3MgOiB7fSwgbnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3R0cyk7Ci0gICAgICB0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5wdXNoKHNsaWNlKTsKLSAgICAgIHNsaWNlLmRpZE5vdEZpbmlzaCA9IHRydWU7Ci0gICAgICB0aGlzLnB1c2hTbGljZShzbGljZSk7Ci0KLSAgICAgIHJldHVybiBzbGljZTsKLSAgICB9LAotCi0gICAgaXNUaW1lc3RhbXBWYWxpZEZvckJlZ2luT3JFbmQ6IGZ1bmN0aW9uKHRzKSB7Ci0gICAgICBpZiAoIXRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICB2YXIgdG9wID0gdGhpcy5vcGVuUGFydGlhbFNsaWNlc19bdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoIC0gMV07Ci0gICAgICByZXR1cm4gdHMgPj0gdG9wLnN0YXJ0OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBudW1iZXIgb2YgYmVnaW5TbGljZXMgZm9yIHdoaWNoIGFuIGVuZFNsaWNlIGhhcyBub3QKLSAgICAgKiBiZWVuIGlzc3VlZC4KLSAgICAgKi8KLSAgICBnZXQgb3BlblNsaWNlQ291bnQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoOwotICAgIH0sCi0KLSAgICBnZXQgbW9zdFJlY2VudGx5T3BlbmVkUGFydGlhbFNsaWNlKCkgewotICAgICAgaWYgKCF0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gdGhpcy5vcGVuUGFydGlhbFNsaWNlc19bdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoIC0gMV07Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEVuZHMgdGhlIGxhc3QgYmVndW4gc2xpY2UgaW4gdGhpcyBncm91cCBhbmQgcHVzaGVzIGl0IG9udG8gdGhlIHNsaWNlCi0gICAgICogYXJyYXkuCi0gICAgICoKLSAgICAgKiBAcGFyYW0ge051bWJlcn0gdHMgVGltZXN0YW1wIHdoZW4gdGhlIHNsaWNlIGVuZGVkLgotICAgICAqIEByZXR1cm4ge1NsaWNlfSBzbGljZS4KLSAgICAgKi8KLSAgICBlbmRTbGljZTogZnVuY3Rpb24odHMsIG9wdF90dHMpIHsKLSAgICAgIGlmICghdGhpcy5vcGVuU2xpY2VDb3VudCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbmRTbGljZSBjYWxsZWQgd2l0aG91dCBhbiBvcGVuIHNsaWNlJyk7Ci0KLSAgICAgIHZhciBzbGljZSA9IHRoaXMub3BlblBhcnRpYWxTbGljZXNfW3RoaXMub3BlblNsaWNlQ291bnQgLSAxXTsKLSAgICAgIHRoaXMub3BlblBhcnRpYWxTbGljZXNfLnNwbGljZSh0aGlzLm9wZW5TbGljZUNvdW50IC0gMSwgMSk7Ci0gICAgICBpZiAodHMgPCBzbGljZS5zdGFydCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTbGljZSAnICsgc2xpY2UudGl0bGUgKwotICAgICAgICAgICAgICAgICAgICAgICAgJyBlbmQgdGltZSBpcyBiZWZvcmUgaXRzIHN0YXJ0LicpOwotCi0gICAgICBzbGljZS5kdXJhdGlvbiA9IHRzIC0gc2xpY2Uuc3RhcnQ7Ci0gICAgICBzbGljZS5kaWROb3RGaW5pc2ggPSBmYWxzZTsKLQotICAgICAgaWYgKG9wdF90dHMgJiYgc2xpY2UuY3B1U3RhcnQgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgc2xpY2UuY3B1RHVyYXRpb24gPSBvcHRfdHRzIC0gc2xpY2UuY3B1U3RhcnQ7Ci0KLSAgICAgIHJldHVybiBzbGljZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogUHVzaCBhIGNvbXBsZXRlIGV2ZW50IGFzIGEgU2xpY2UgaW50byB0aGUgc2xpY2UgbGlzdC4KLSAgICAgKiBUaGUgdGltZXN0YW1wIGNhbiBiZSBpbiBhbnkgb3JkZXIuCi0gICAgICoKLSAgICAgKiBAcGFyYW0ge1N0cmluZ30gY2F0ZWdvcnkgQ2F0ZWdvcnkgbmFtZSBvZiB0aGUgc2xpY2UgdG8gYWRkLgotICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0aXRsZSBUaXRsZSBvZiB0aGUgc2xpY2UgdG8gYWRkLgotICAgICAqIEBwYXJhbSB7TnVtYmVyfSB0cyBUaGUgdGltZXRzYW1wIG9mIHRoZSBzbGljZSwgaW4gbWlsbGlzZWNvbmRzLgotICAgICAqIEBwYXJhbSB7TnVtYmVyfSBkdXJhdGlvbiBUaGUgZHVyYXRpb24gb2YgdGhlIHNsaWNlLCBpbiBtaWxsaXNlY29uZHMuCi0gICAgICogQHBhcmFtIHtPYmplY3QuPHN0cmluZywgT2JqZWN0Pj19IG9wdF9hcmdzIEFyZ3VtZW50cyBhc3NvY2lhdGVkIHdpdGgKLSAgICAgKiB0aGUgc2xpY2UuCi0gICAgICovCi0gICAgcHVzaENvbXBsZXRlU2xpY2U6IGZ1bmN0aW9uKGNhdGVnb3J5LCB0aXRsZSwgdHMsIGR1cmF0aW9uLCB0dHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdUR1cmF0aW9uLCBvcHRfYXJncykgewotICAgICAgdmFyIGNvbG9ySWQgPSB0ci5iLnVpLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aXRsZSk7Ci0gICAgICB2YXIgc2xpY2UgPSBuZXcgdGhpcy5zbGljZUNvbnN0cnVjdG9yKGNhdGVnb3J5LCB0aXRsZSwgY29sb3JJZCwgdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9hcmdzID8gb3B0X2FyZ3MgOiB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24sIHR0cywgY3B1RHVyYXRpb24pOwotICAgICAgaWYgKGR1cmF0aW9uID09PSB1bmRlZmluZWQpCi0gICAgICAgIHNsaWNlLmRpZE5vdEZpbmlzaCA9IHRydWU7Ci0gICAgICB0aGlzLnB1c2hTbGljZShzbGljZSk7Ci0gICAgICByZXR1cm4gc2xpY2U7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENsb3NlcyBhbnkgb3BlbiBzbGljZXMuCi0gICAgICogQHBhcmFtIHtOdW1iZXI9fSBvcHRfbWF4VGltZXN0YW1wIFRoZSBlbmQgdGltZSB0byB1c2UgZm9yIHRoZSBjbG9zZWQKLSAgICAgKiBzbGljZXMuIElmIG5vdCBwcm92aWRlZCwKLSAgICAgKiB0aGUgbWF4IHRpbWVzdGFtcCBmb3IgdGhpcyBzbGljZSBpcyBwcm92aWRlZC4KLSAgICAgKi8KLSAgICBhdXRvQ2xvc2VPcGVuU2xpY2VzOiBmdW5jdGlvbihvcHRfbWF4VGltZXN0YW1wKSB7Ci0gICAgICBpZiAoIW9wdF9tYXhUaW1lc3RhbXApIHsKLSAgICAgICAgdGhpcy51cGRhdGVCb3VuZHMoKTsKLSAgICAgICAgb3B0X21heFRpbWVzdGFtcCA9IHRoaXMuYm91bmRzLm1heDsKLSAgICAgIH0KLSAgICAgIGZvciAodmFyIHNJID0gMDsgc0kgPCB0aGlzLnNsaWNlcy5sZW5ndGg7IHNJKyspIHsKLSAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zbGljZXNbc0ldOwotICAgICAgICBpZiAoc2xpY2UuZGlkTm90RmluaXNoKQotICAgICAgICAgIHNsaWNlLmR1cmF0aW9uID0gb3B0X21heFRpbWVzdGFtcCAtIHNsaWNlLnN0YXJ0OwotICAgICAgfQotICAgICAgdGhpcy5vcGVuUGFydGlhbFNsaWNlc18gPSBbXTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogU2hpZnRzIGFsbCB0aGUgdGltZXN0YW1wcyBpbnNpZGUgdGhpcyBncm91cCBmb3J3YXJkIGJ5IHRoZSBhbW91bnQKLSAgICAgKiBzcGVjaWZpZWQuCi0gICAgICovCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICBmb3IgKHZhciBzSSA9IDA7IHNJIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBzSSsrKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IHRoaXMuc2xpY2VzW3NJXTsKLSAgICAgICAgc2xpY2Uuc3RhcnQgPSAoc2xpY2Uuc3RhcnQgKyBhbW91bnQpOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBVcGRhdGVzIHRoZSBib3VuZHMgZm9yIHRoaXMgZ3JvdXAgYmFzZWQgb24gdGhlIHNsaWNlcyBpdCBjb250YWlucy4KLSAgICAgKi8KLSAgICB1cGRhdGVCb3VuZHM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5ib3VuZHMucmVzZXQoKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbaV0uc3RhcnQpOwotICAgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1tpXS5lbmQpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBjb3B5U2xpY2U6IGZ1bmN0aW9uKHNsaWNlKSB7Ci0gICAgICB2YXIgbmV3U2xpY2UgPSBuZXcgdGhpcy5zbGljZUNvbnN0cnVjdG9yKHNsaWNlLmNhdGVnb3J5LCBzbGljZS50aXRsZSwKLSAgICAgICAgICBzbGljZS5jb2xvcklkLCBzbGljZS5zdGFydCwKLSAgICAgICAgICBzbGljZS5hcmdzLCBzbGljZS5kdXJhdGlvbiwgc2xpY2UuY3B1U3RhcnQsIHNsaWNlLmNwdUR1cmF0aW9uKTsKLSAgICAgIG5ld1NsaWNlLmRpZE5vdEZpbmlzaCA9IHNsaWNlLmRpZE5vdEZpbmlzaDsKLSAgICAgIHJldHVybiBuZXdTbGljZTsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgewotICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCB0aGlzLnNsaWNlQ29uc3RydWN0b3IpKQotICAgICAgICB0aGlzLnNsaWNlcy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7Ci0gICAgfSwKLQotICAgIGdldFNsaWNlc09mTmFtZTogZnVuY3Rpb24odGl0bGUpIHsKLSAgICAgIHZhciBzbGljZXMgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKHRoaXMuc2xpY2VzW2ldLnRpdGxlID09IHRpdGxlKSB7Ci0gICAgICAgICAgc2xpY2VzLnB1c2godGhpcy5zbGljZXNbaV0pOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gc2xpY2VzOwotICAgIH0sCi0KLSAgICBpdGVyU2xpY2VzSW5UaW1lUmFuZ2U6IGZ1bmN0aW9uKGNhbGxiYWNrLCBzdGFydCwgZW5kKSB7Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICB0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKAotICAgICAgICB0aGlzLnRvcExldmVsU2xpY2VzLAotICAgICAgICBmdW5jdGlvbihzKSB7IHJldHVybiBzLnN0YXJ0OyB9LAotICAgICAgICBmdW5jdGlvbihzKSB7IHJldHVybiBzLmR1cmF0aW9uOyB9LAotICAgICAgICBzdGFydCwKLSAgICAgICAgZW5kLAotICAgICAgICBmdW5jdGlvbih0b3BMZXZlbFNsaWNlKSB7Ci0gICAgICAgICAgY2FsbGJhY2sodG9wTGV2ZWxTbGljZSk7Ci0gICAgICAgICAgdG9wTGV2ZWxTbGljZS5pdGVyYXRlQWxsRGVzY2VuZGVudHMoY2FsbGJhY2spOwotICAgICAgICB9KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfSwKLQotICAgIGZpbmRTbGljZUF0VHM6IGZ1bmN0aW9uKHRzKSB7Ci0gICAgICBpZiAoIXRoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vcGUnKTsKLSAgICAgIHZhciBpID0gdHIuYi5maW5kSW5kZXhJblNvcnRlZENsb3NlZEludGVydmFscygKLSAgICAgICAgICB0aGlzLnRvcExldmVsU2xpY2VzLAotICAgICAgICAgIGdldFNsaWNlTG8sIGdldFNsaWNlSGksCi0gICAgICAgICAgdHMpOwotICAgICAgaWYgKGkgPT0gLTEgfHwgaSA9PSB0aGlzLnRvcExldmVsU2xpY2VzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLQotICAgICAgdmFyIGN1clNsaWNlID0gdGhpcy50b3BMZXZlbFNsaWNlc1tpXTsKLQotICAgICAgLy8gTm93IHJlY3Vyc2Ugb24gc2xpY2UgbG9va2luZyBmb3Igc3ViU2xpY2Ugb2YgZ2l2ZW4gdHMuCi0gICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICB2YXIgaSA9IHRyLmIuZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHMoCi0gICAgICAgICAgICBjdXJTbGljZS5zdWJTbGljZXMsCi0gICAgICAgICAgICBnZXRTbGljZUxvLCBnZXRTbGljZUhpLAotICAgICAgICAgICAgdHMpOwotICAgICAgICBpZiAoaSA9PSAtMSB8fCBpID09IGN1clNsaWNlLnN1YlNsaWNlcy5sZW5ndGgpCi0gICAgICAgICAgcmV0dXJuIGN1clNsaWNlOwotICAgICAgICBjdXJTbGljZSA9IGN1clNsaWNlLnN1YlNsaWNlc1tpXTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZmluZE5leHRTbGljZUFmdGVyOiBmdW5jdGlvbih0cywgcmVmR3VpZCkgewotICAgICAgdmFyIGkgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCi0gICAgICAgICAgdGhpcy5zbGljZXMsIGdldFNsaWNlTG8sIHRzKTsKLSAgICAgIGlmIChpID09PSB0aGlzLnNsaWNlcy5sZW5ndGgpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICBmb3IgKDsgaSA8IHRoaXMuc2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBzbGljZSA9IHRoaXMuc2xpY2VzW2ldOwotICAgICAgICBpZiAoc2xpY2Uuc3RhcnQgPiB0cykKLSAgICAgICAgICByZXR1cm4gc2xpY2U7Ci0gICAgICAgIGlmIChzbGljZS5ndWlkIDw9IHJlZkd1aWQpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHJldHVybiBzbGljZTsKLSAgICAgIH0KLSAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIENvbnN0cnVjdCBzdWJTbGljZXMgZm9yIHRoaXMgZ3JvdXAuCi0gICAgICogUG9wdWxhdGUgdGhlIGdyb3VwIHRvcExldmVsU2xpY2VzLCBwYXJlbnQgc2xpY2VzIGdldCBhIHN1YlNsaWNlc1tdLAotICAgICAqIGEgc2VsZlRocmVhZFRpbWUgYW5kIGEgc2VsZlRpbWUsIGNoaWxkIHNsaWNlcyBnZXQgYSBwYXJlbnRTbGljZQotICAgICAqIHJlZmVyZW5jZS4KLSAgICAgKi8KLSAgICBjcmVhdGVTdWJTbGljZXM6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5oYXZlVG9wTGV2ZWxTbGljZXNCZWVuQnVpbHQgPSB0cnVlOwotICAgICAgdGhpcy5jcmVhdGVTdWJTbGljZXNJbXBsXygpOwotICAgICAgaWYgKHRoaXMucGFyZW50Q29udGFpbmVyLnRpbWVTbGljZXMpCi0gICAgICAgIHRoaXMuYWRkQ3B1VGltZVRvU3Vic2xpY2VzXyh0aGlzLnBhcmVudENvbnRhaW5lci50aW1lU2xpY2VzKTsKLSAgICAgIHRoaXMuc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKLSAgICAgICAgdmFyIHNlbGZUaW1lID0gc2xpY2UuZHVyYXRpb247Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aDsgaSsrKQotICAgICAgICAgIHNlbGZUaW1lIC09IHNsaWNlLnN1YlNsaWNlc1tpXS5kdXJhdGlvbjsKLSAgICAgICAgc2xpY2Uuc2VsZlRpbWUgPSBzZWxmVGltZTsKLQotICAgICAgICBpZiAoc2xpY2UuY3B1RHVyYXRpb24gPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGNwdVNlbGZUaW1lID0gc2xpY2UuY3B1RHVyYXRpb247Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgaWYgKHNsaWNlLnN1YlNsaWNlc1tpXS5jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgY3B1U2VsZlRpbWUgLT0gc2xpY2Uuc3ViU2xpY2VzW2ldLmNwdUR1cmF0aW9uOwotICAgICAgICB9Ci0gICAgICAgIHNsaWNlLmNwdVNlbGZUaW1lID0gY3B1U2VsZlRpbWU7Ci0gICAgICB9KTsKLSAgICB9LAotICAgIGNyZWF0ZVN1YlNsaWNlc0ltcGxfOiBmdW5jdGlvbigpIHsKLSAgICAgIGZ1bmN0aW9uIGFkZFNsaWNlSWZCb3VuZHMocm9vdCwgY2hpbGQpIHsKLSAgICAgICAgLy8gQmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlIHN0YXJ0IHRpbWUgb2YgY2hpbGQgaXMgPj0gdGhlIHN0YXJ0IHRpbWUKLSAgICAgICAgLy8gb2YgYWxsIG90aGVyIHNsaWNlcyBzZWVuIHNvIGZhciwgd2UgY2FuIGp1c3QgY2hlY2sgdGhlIGxhc3Qgc2xpY2UKLSAgICAgICAgLy8gb2YgZWFjaCByb3cgZm9yIGJvdW5kaW5nLgotICAgICAgICBpZiAocm9vdC5ib3VuZHMoY2hpbGQpKSB7Ci0gICAgICAgICAgaWYgKHJvb3Quc3ViU2xpY2VzICYmIHJvb3Quc3ViU2xpY2VzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIGlmIChhZGRTbGljZUlmQm91bmRzKHJvb3Quc3ViU2xpY2VzW3Jvb3Quc3ViU2xpY2VzLmxlbmd0aCAtIDFdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQpKQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgY2hpbGQucGFyZW50U2xpY2UgPSByb290OwotICAgICAgICAgIGlmIChyb290LnN1YlNsaWNlcyA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgcm9vdC5zdWJTbGljZXMgPSBbXTsKLSAgICAgICAgICByb290LnN1YlNsaWNlcy5wdXNoKGNoaWxkKTsKLSAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9Ci0KLSAgICAgIGlmICghdGhpcy5zbGljZXMubGVuZ3RoKQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIHZhciBvcHMgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKHRoaXMuc2xpY2VzW2ldLnN1YlNsaWNlcykKLSAgICAgICAgICB0aGlzLnNsaWNlc1tpXS5zdWJTbGljZXMuc3BsaWNlKDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWNlc1tpXS5zdWJTbGljZXMubGVuZ3RoKTsKLSAgICAgICAgb3BzLnB1c2goaSk7Ci0gICAgICB9Ci0KLSAgICAgIHZhciBvcmlnaW5hbFNsaWNlcyA9IHRoaXMuc2xpY2VzOwotICAgICAgb3BzLnNvcnQoZnVuY3Rpb24oaXgsIGl5KSB7Ci0gICAgICAgIHZhciB4ID0gb3JpZ2luYWxTbGljZXNbaXhdOwotICAgICAgICB2YXIgeSA9IG9yaWdpbmFsU2xpY2VzW2l5XTsKLSAgICAgICAgaWYgKHguc3RhcnQgIT0geS5zdGFydCkKLSAgICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7Ci0KLSAgICAgICAgLy8gRWxlbWVudHMgZ2V0IGluc2VydGVkIGludG8gdGhlIHNsaWNlcyBhcnJheSBpbiBvcmRlciBvZiB3aGVuIHRoZQotICAgICAgICAvLyBzbGljZXMgc3RhcnQuIEJlY2F1c2Ugc2xpY2VzIG11c3QgYmUgcHJvcGVybHkgbmVzdGVkLCB3ZSBicmVhawotICAgICAgICAvLyBzdGFydC10aW1lIHRpZXMgYnkgYXNzdW1pbmcgdGhhdCB0aGUgZWxlbWVudHMgYXBwZWFyaW5nIGVhcmxpZXIKLSAgICAgICAgLy8gaW4gdGhlIHNsaWNlcyBhcnJheSAoYW5kIHRodXMgZW5kaW5nIGVhcmxpZXIpIHN0YXJ0IGVhcmxpZXIuCi0gICAgICAgIHJldHVybiBpeCAtIGl5OwotICAgICAgfSk7Ci0KLSAgICAgIHZhciBzbGljZXMgPSBuZXcgQXJyYXkodGhpcy5zbGljZXMubGVuZ3RoKTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3BzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHNsaWNlc1tpXSA9IG9yaWdpbmFsU2xpY2VzW29wc1tpXV07Ci0gICAgICB9Ci0KLSAgICAgIC8vIEFjdHVhbGx5IGJ1aWxkIHRoZSBzdWJyb3dzLgotICAgICAgdmFyIHJvb3RTbGljZSA9IHNsaWNlc1swXTsKLSAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMgPSBbXTsKLSAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMucHVzaChyb290U2xpY2UpOwotICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBzbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOwotICAgICAgICBpZiAoIWFkZFNsaWNlSWZCb3VuZHMocm9vdFNsaWNlLCBzbGljZSkpIHsKLSAgICAgICAgICByb290U2xpY2UgPSBzbGljZTsKLSAgICAgICAgICB0aGlzLnRvcExldmVsU2xpY2VzLnB1c2gocm9vdFNsaWNlKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBLZWVwIHRoZSBzbGljZXMgaW4gc29ydGVkIGZvcm0uCi0gICAgICB0aGlzLnNsaWNlcyA9IHNsaWNlczsKLSAgICB9LAotICAgIGFkZENwdVRpbWVUb1N1YnNsaWNlc186IGZ1bmN0aW9uKHRpbWVTbGljZXMpIHsKLSAgICAgIHZhciBTQ0hFRFVMSU5HX1NUQVRFID0gdHIubW9kZWwuU0NIRURVTElOR19TVEFURTsKLSAgICAgIHZhciBzbGljZUlkeCA9IDA7Ci0gICAgICB0aW1lU2xpY2VzLmZvckVhY2goZnVuY3Rpb24odGltZVNsaWNlKSB7Ci0gICAgICAgIGlmICh0aW1lU2xpY2Uuc2NoZWR1bGluZ1N0YXRlID09IFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORykgewotICAgICAgICAgIHdoaWxlIChzbGljZUlkeCA8IHRoaXMudG9wTGV2ZWxTbGljZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5hZGRDcHVUaW1lVG9TdWJzbGljZV8odGhpcy50b3BMZXZlbFNsaWNlc1tzbGljZUlkeF0sCi0gICAgICAgICAgICAgICAgdGltZVNsaWNlKSkgewotICAgICAgICAgICAgICAvLyBUaGUgY3VycmVudCB0b3AtbGV2ZWwgc2xpY2UgYW5kIGNoaWxkcmVuIGFyZSBmdWxseQotICAgICAgICAgICAgICAvLyBhY2NvdW50ZWQgZm9yLCBwcm9jZWVkIHRvIG5leHQgdG9wLWxldmVsIHNsaWNlLgotICAgICAgICAgICAgICBzbGljZUlkeCsrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgLy8gVGhlIGN1cnJlbnQgdG9wLWxldmVsIHJ1bnMgYmV5b25kIHRoZSB0aW1lIHNsaWNlLCBicmVhayBvdXQKLSAgICAgICAgICAgICAgLy8gc28gd2UgY2FuIHBvdGVudGlhbGx5IGFkZCBtb3JlIHRpbWUgc2xpY2VzIHRvIGl0Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSwgdGhpcyk7Ci0gICAgfSwKLSAgICAvKiBBZGQgcnVuLXRpbWUgb2YgdGhpcyB0aW1lU2xpY2UgdG8gdGhlIHBhc3NlZCBpbiBzbGljZQotICAgICAqIGFuZCBhbGwgb2YgaXQncyBjaGlsZHJlbiAocmVjdXJzaXZlbHkpLgotICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgc2xpY2UgZW5kcyBiZWZvcmUgb3IgYXQgdGhlIGVuZCBvZiB0aGUKLSAgICAgKiB0aW1lIHNsaWNlLCBzaWduYWxpbmcgd2UgYXJlIGRvbmUgd2l0aCB0aGlzIHNsaWNlLgotICAgICAqLwotICAgIGFkZENwdVRpbWVUb1N1YnNsaWNlXzogZnVuY3Rpb24oc2xpY2UsIHRpbWVTbGljZSkgewotICAgICAgLy8gTWFrZSBzdXJlIHRoZXkgb3ZlcmxhcAotICAgICAgaWYgKHNsaWNlLnN0YXJ0ID4gdGltZVNsaWNlLmVuZCB8fCBzbGljZS5lbmQgPCB0aW1lU2xpY2Uuc3RhcnQpCi0gICAgICAgIHJldHVybiBzbGljZS5lbmQgPD0gdGltZVNsaWNlLmVuZDsKLQotICAgICAgLy8gQ29tcHV0ZSBhY3R1YWwgb3ZlcmxhcAotICAgICAgdmFyIGR1cmF0aW9uID0gdGltZVNsaWNlLmR1cmF0aW9uOwotICAgICAgaWYgKHNsaWNlLnN0YXJ0ID4gdGltZVNsaWNlLnN0YXJ0KQotICAgICAgICBkdXJhdGlvbiAtPSBzbGljZS5zdGFydCAtIHRpbWVTbGljZS5zdGFydDsKLSAgICAgIGlmICh0aW1lU2xpY2UuZW5kID4gc2xpY2UuZW5kKQotICAgICAgICBkdXJhdGlvbiAtPSB0aW1lU2xpY2UuZW5kIC0gc2xpY2UuZW5kOwotCi0gICAgICBpZiAoc2xpY2UuY3B1RHVyYXRpb24pIHsKLSAgICAgICAgc2xpY2UuY3B1RHVyYXRpb24gKz0gZHVyYXRpb247Ci0gICAgICB9IGVsc2UgewotICAgICAgICBzbGljZS5jcHVEdXJhdGlvbiA9IGR1cmF0aW9uOwotICAgICAgfQotCi0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlLnN1YlNsaWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICB0aGlzLmFkZENwdVRpbWVUb1N1YnNsaWNlXyhzbGljZS5zdWJTbGljZXNbaV0sIHRpbWVTbGljZSk7Ci0gICAgICB9Ci0KLSAgICAgIHJldHVybiBzbGljZS5lbmQgPD0gdGltZVNsaWNlLmVuZDsKLSAgICB9Ci0gIH07Ci0KLSAgLyoqCi0gICAqIE1lcmdlIHR3byBzbGljZSBncm91cHMuCi0gICAqCi0gICAqIElmIHRoZSB0d28gZ3JvdXBzIGRvIG5vdCBuZXN0IHByb3Blcmx5IHNvbWUgb2YgdGhlIHNsaWNlcyBvZiBncm91cEIgd2lsbAotICAgKiBiZSBzcGxpdCB0byBhY2NvbW9kYXRlIHRoZSBpbXByb3BlciBuZXN0aW5nLiAgVGhpcyBpcyBkb25lIHRvIGFjY29tb2RhdGUKLSAgICogY29tYmluZWQga2VybmVsIGFuZCB1c2VybGFuZCBjYWxsIHN0YWNrcyBvbiBBbmRyb2lkLiAgQmVjYXVzZSB1c2VybGFuZAotICAgKiB0cmFjaW5nIGlzIGRvbmUgYnkgd3JpdGluZyB0byB0aGUgdHJhY2VfbWFya2VyIGZpbGUsIHRoZSBrZXJuZWwgY2FsbHMKLSAgICogdGhhdCBnZXQgaW52b2tlZCBhcyBwYXJ0IG9mIHRoYXQgd3JpdGUgbWF5IG5vdCBiZSBwcm9wZXJseSBuZXN0ZWQgd2l0aAotICAgKiB0aGUgdXNlcmxhbmQgY2FsbCB0cmFjZS4gIEZvciBleGFtcGxlIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2UgbWF5IG9jY3VyOgotICAgKgotICAgKiAgICAga2VybmVsIGVudGVyIHN5c193cml0ZSAgICAgICAgKHRoZSB3cml0ZSB0byB0cmFjZV9tYXJrZXIpCi0gICAqICAgICB1c2VyICAgZW50ZXIgc29tZV9mdW5jdGlvbgotICAgKiAgICAga2VybmVsIGV4aXQgIHN5c193cml0ZQotICAgKiAgICAgLi4uCi0gICAqICAgICBrZXJuZWwgZW50ZXIgc3lzX3dyaXRlICAgICAgICAodGhlIHdyaXRlIHRvIHRyYWNlX21hcmtlcikKLSAgICogICAgIHVzZXIgICBleGl0ICBzb21lX2Z1bmN0aW9uCi0gICAqICAgICBrZXJuZWwgZXhpdCAgc3lzX3dyaXRlCi0gICAqCi0gICAqIFRoaXMgaXMgaGFuZGxlZCBieSBzcGxpdHRpbmcgdGhlIHN5c193cml0ZSBjYWxsIGludG8gdHdvIHNsaWNlcyBhcwotICAgKiBmb2xsb3dzOgotICAgKgotICAgKiAgICAgfCBzeXNfd3JpdGUgfCAgICAgICAgICAgIHNvbWVfZnVuY3Rpb24gICAgICAgICAgICB8IHN5c193cml0ZSAoY29udC4pIHwKLSAgICogICAgICAgICAgICAgICAgIHwgc3lzX3dyaXRlIChjb250LikgfCAgICAgfCBzeXNfd3JpdGUgfAotICAgKgotICAgKiBUaGUgY29sb3JJZCBvZiBib3RoIHBhcnRzIG9mIHRoZSBzcGxpdCBzbGljZXMgYXJlIGtlcHQgdGhlIHNhbWUsIGFuZCB0aGUKLSAgICogIiAoY29udC4pIiBzdWZmaXggaXMgYXBwZW5kZWQgdG8gdGhlIGxhdGVyIHBhcnRzIG9mIGEgc3BsaXQgc2xpY2UuCi0gICAqCi0gICAqIFRoZSB0d28gaW5wdXQgU2xpY2VHcm91cHMgYXJlIG5vdCBtb2RpZmllZCBieSB0aGlzLCBhbmQgdGhlIG1lcmdlZAotICAgKiBTbGljZUdyb3VwIHdpbGwgY29udGFpbiBhIGNvcHkgb2YgZWFjaCBvZiB0aGUgaW5wdXQgZ3JvdXBzJyBzbGljZXMgKHRob3NlCi0gICAqIGNvcGllcyBtYXkgYmUgc3BsaXQpLgotICAgKi8KLSAgU2xpY2VHcm91cC5tZXJnZSA9IGZ1bmN0aW9uKGdyb3VwQSwgZ3JvdXBCKSB7Ci0gICAgLy8gVGhpcyBpcyBpbXBsZW1lbnRlZCBieSB0cmF2ZXJzaW5nIHRoZSB0d28gc2xpY2UgZ3JvdXBzIGluIHJldmVyc2UKLSAgICAvLyBvcmRlci4gIFRoZSBzbGljZXMgaW4gZWFjaCBncm91cCBhcmUgc29ydGVkIGJ5IGFzY2VuZGluZyBlbmQtdGltZSwgc28KLSAgICAvLyB3ZSBtdXN0IGRvIHRoZSB0cmF2ZXJzYWwgZnJvbSBiYWNrIHRvIGZyb250IGluIG9yZGVyIHRvIG1haW50YWluIHRoZQotICAgIC8vIHNvcnRpbmcuCi0gICAgLy8KLSAgICAvLyBXZSB0cmF2ZXJzZSB0aGUgdHdvIGdyb3VwcyBzaW11bHRhbmVvdXNseSwgbWVyZ2luZyBhcyB3ZSBnby4gIEF0IGVhY2gKLSAgICAvLyBpdGVyYXRpb24gd2UgY2hvb3NlIHRoZSBncm91cCBmcm9tIHdoaWNoIHRvIHRha2UgdGhlIG5leHQgc2xpY2UgYmFzZWQKLSAgICAvLyBvbiB3aGljaCBncm91cCdzIG5leHQgc2xpY2UgaGFzIHRoZSBncmVhdGVyIGVuZC10aW1lLiAgRHVyaW5nIHRoaXMKLSAgICAvLyB0cmF2ZXJzYWwgd2UgbWFpbnRhaW4gYSBzdGFjayBvZiBjdXJyZW50bHkgIm9wZW4iIHNsaWNlcyBmb3IgZWFjaCBpbnB1dAotICAgIC8vIGdyb3VwLiAgQSBzbGljZSBpcyBjb25zaWRlcmVkICJvcGVuIiBmcm9tIHRoZSB0aW1lIGl0IGdldHMgcmVhY2hlZCBpbgotICAgIC8vIG91ciBpbnB1dCBncm91cCB0cmF2ZXJzYWwgdG8gdGhlIHRpbWUgd2UgcmVhY2ggYW4gc2xpY2UgaW4gdGhpcwotICAgIC8vIHRyYXZlcnNhbCB3aXRoIGFuIGVuZC10aW1lIGJlZm9yZSB0aGUgc3RhcnQgdGltZSBvZiB0aGUgIm9wZW4iIHNsaWNlLgotICAgIC8vCi0gICAgLy8gRWFjaCB0aW1lIGEgc2xpY2UgZnJvbSBncm91cEEgaXMgb3BlbmVkIG9yIGNsb3NlZCAoZXZlbnRzIGNvcnJlc3BvbmRpbmcKLSAgICAvLyB0byB0aGUgZW5kLXRpbWUgYW5kIHN0YXJ0LXRpbWUgb2YgdGhlIGlucHV0IHNsaWNlLCByZXNwZWN0aXZlbHkpIHdlCi0gICAgLy8gc3BsaXQgYWxsIG9mIHRoZSBjdXJyZW50bHkgb3BlbiBzbGljZXMgZnJvbSBncm91cEIuCi0KLSAgICBpZiAoZ3JvdXBBLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGggPiAwKQotICAgICAgdGhyb3cgbmV3IEVycm9yKCdncm91cEEgaGFzIG9wZW4gcGFydGlhbCBzbGljZXMnKTsKLQotICAgIGlmIChncm91cEIub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCA+IDApCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyb3VwQiBoYXMgb3BlbiBwYXJ0aWFsIHNsaWNlcycpOwotCi0gICAgaWYgKGdyb3VwQS5wYXJlbnRDb250YWluZXIgIT0gZ3JvdXBCLnBhcmVudENvbnRhaW5lcikKLSAgICAgIHRocm93IG5ldyBFcnJvcignRGlmZmVyZW50IHBhcmVudCB0aHJlYWRzLiBDYW5ub3QgbWVyZ2UnKTsKLQotICAgIGlmIChncm91cEEuc2xpY2VDb25zdHJ1Y3RvciAhPSBncm91cEIuc2xpY2VDb25zdHJ1Y3RvcikKLSAgICAgIHRocm93IG5ldyBFcnJvcignRGlmZmVyZW50IHNsaWNlIGNvbnN0cnVjdG9ycy4gQ2Fubm90IG1lcmdlJyk7Ci0KLSAgICB2YXIgcmVzdWx0ID0gbmV3IFNsaWNlR3JvdXAoZ3JvdXBBLnBhcmVudENvbnRhaW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBBLnNsaWNlQ29uc3RydWN0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwQS5uYW1lXyk7Ci0KLSAgICB2YXIgc2xpY2VzQSA9IGdyb3VwQS5zbGljZXM7Ci0gICAgdmFyIHNsaWNlc0IgPSBncm91cEIuc2xpY2VzOwotICAgIHZhciBpZHhBID0gMDsKLSAgICB2YXIgaWR4QiA9IDA7Ci0gICAgdmFyIG9wZW5BID0gW107Ci0gICAgdmFyIG9wZW5CID0gW107Ci0KLSAgICB2YXIgc3BsaXRPcGVuU2xpY2VzID0gZnVuY3Rpb24od2hlbikgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcGVuQi5sZW5ndGg7IGkrKykgewotICAgICAgICB2YXIgb2xkU2xpY2UgPSBvcGVuQltpXTsKLSAgICAgICAgdmFyIG9sZEVuZCA9IG9sZFNsaWNlLmVuZDsKLSAgICAgICAgaWYgKHdoZW4gPCBvbGRTbGljZS5zdGFydCB8fCBvbGRFbmQgPCB3aGVuKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzbGljZSBzaG91bGQgbm90IGJlIHNwbGl0Jyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgbmV3U2xpY2UgPSByZXN1bHQuY29weVNsaWNlKG9sZFNsaWNlKTsKLSAgICAgICAgbmV3U2xpY2Uuc3RhcnQgPSB3aGVuOwotICAgICAgICBuZXdTbGljZS5kdXJhdGlvbiA9IG9sZEVuZCAtIHdoZW47Ci0gICAgICAgIGlmIChuZXdTbGljZS50aXRsZS5pbmRleE9mKCcgKGNvbnQuKScpID09IC0xKQotICAgICAgICAgIG5ld1NsaWNlLnRpdGxlICs9ICcgKGNvbnQuKSc7Ci0gICAgICAgIG9sZFNsaWNlLmR1cmF0aW9uID0gd2hlbiAtIG9sZFNsaWNlLnN0YXJ0OwotICAgICAgICBvcGVuQltpXSA9IG5ld1NsaWNlOwotICAgICAgICByZXN1bHQucHVzaFNsaWNlKG5ld1NsaWNlKTsKLSAgICAgIH0KLSAgICB9OwotCi0gICAgdmFyIGNsb3NlT3BlblNsaWNlcyA9IGZ1bmN0aW9uKHVwVG8pIHsKLSAgICAgIHdoaWxlIChvcGVuQS5sZW5ndGggPiAwIHx8IG9wZW5CLmxlbmd0aCA+IDApIHsKLSAgICAgICAgdmFyIG5leHRBID0gb3BlbkFbb3BlbkEubGVuZ3RoIC0gMV07Ci0gICAgICAgIHZhciBuZXh0QiA9IG9wZW5CW29wZW5CLmxlbmd0aCAtIDFdOwotICAgICAgICB2YXIgZW5kQSA9IG5leHRBICYmIG5leHRBLmVuZDsKLSAgICAgICAgdmFyIGVuZEIgPSBuZXh0QiAmJiBuZXh0Qi5lbmQ7Ci0KLSAgICAgICAgaWYgKChlbmRBID09PSB1bmRlZmluZWQgfHwgZW5kQSA+IHVwVG8pICYmCi0gICAgICAgICAgICAoZW5kQiA9PT0gdW5kZWZpbmVkIHx8IGVuZEIgPiB1cFRvKSkgewotICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChlbmRCID09PSB1bmRlZmluZWQgfHwgZW5kQSA8IGVuZEIpIHsKLSAgICAgICAgICBzcGxpdE9wZW5TbGljZXMoZW5kQSk7Ci0gICAgICAgICAgb3BlbkEucG9wKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgb3BlbkIucG9wKCk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9OwotCi0gICAgd2hpbGUgKGlkeEEgPCBzbGljZXNBLmxlbmd0aCB8fCBpZHhCIDwgc2xpY2VzQi5sZW5ndGgpIHsKLSAgICAgIHZhciBzQSA9IHNsaWNlc0FbaWR4QV07Ci0gICAgICB2YXIgc0IgPSBzbGljZXNCW2lkeEJdOwotICAgICAgdmFyIG5leHRTbGljZSwgaXNGcm9tQjsKLQotICAgICAgaWYgKHNBID09PSB1bmRlZmluZWQgfHwgKHNCICE9PSB1bmRlZmluZWQgJiYgc0Euc3RhcnQgPiBzQi5zdGFydCkpIHsKLSAgICAgICAgbmV4dFNsaWNlID0gcmVzdWx0LmNvcHlTbGljZShzQik7Ci0gICAgICAgIGlzRnJvbUIgPSB0cnVlOwotICAgICAgICBpZHhCKys7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBuZXh0U2xpY2UgPSByZXN1bHQuY29weVNsaWNlKHNBKTsKLSAgICAgICAgaXNGcm9tQiA9IGZhbHNlOwotICAgICAgICBpZHhBKys7Ci0gICAgICB9Ci0KLSAgICAgIGNsb3NlT3BlblNsaWNlcyhuZXh0U2xpY2Uuc3RhcnQpOwotCi0gICAgICByZXN1bHQucHVzaFNsaWNlKG5leHRTbGljZSk7Ci0KLSAgICAgIGlmIChpc0Zyb21CKSB7Ci0gICAgICAgIG9wZW5CLnB1c2gobmV4dFNsaWNlKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHNwbGl0T3BlblNsaWNlcyhuZXh0U2xpY2Uuc3RhcnQpOwotICAgICAgICBvcGVuQS5wdXNoKG5leHRTbGljZSk7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgY2xvc2VPcGVuU2xpY2VzKCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotICB9OwotCi0gIHJldHVybiB7Ci0gICAgU2xpY2VHcm91cDogU2xpY2VHcm91cAotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2xpY2VfZ3JvdXBfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9zbGljZV9ncm91cF90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiYjU4NjEuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9zbGljZV9ncm91cF90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZV9ncm91cC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKLSAgdmFyIFNsaWNlR3JvdXAgPSB0ci5tb2RlbC5TbGljZUdyb3VwOwotICB2YXIgbmV3U2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2U7Ci0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0gIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7Ci0gIHZhciBuZXdUaHJlYWRTbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdUaHJlYWRTbGljZTsKLSAgdmFyIG5ld01vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsOwotCi0gIHRlc3QoJ2Jhc2ljQmVnaW5FbmQnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh7fSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLm9wZW5TbGljZUNvdW50LCAwKTsKLSAgICB2YXIgc2xpY2VBID0gZ3JvdXAuYmVnaW5TbGljZSgnJywgJ2EnLCAxLCB7YTogMX0pOwotICAgIGFzc2VydC5lcXVhbChncm91cC5vcGVuU2xpY2VDb3VudCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlQS50aXRsZSwgJ2EnKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2VBLnN0YXJ0LCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2VBLmFyZ3MuYSwgMSk7Ci0KLSAgICB2YXIgc2xpY2VCID0gZ3JvdXAuZW5kU2xpY2UoMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNsaWNlQSwgc2xpY2VCKTsKLSAgICBhc3NlcnQuZXF1YWwoc2xpY2VCLmR1cmF0aW9uLCAyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViU2xpY2VzQnVpbGRlckJhc2ljJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAoe30pOwotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMikpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOwotCi0gICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMubGVuZ3RoLCAyKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLCBbc0EsIHNCXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMCksIHVuZGVmaW5lZCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMSksIHNBKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygzKSwgc0EpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMuMSksIHNCKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcyg0KSwgc0IpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDUpLCB1bmRlZmluZWQpOwotICB9KTsKLQotICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyQmFzaWMyJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAoe30pOwotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgNCkpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOwotCi0gICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLCBbc0FdKTsKLQotICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHNBLnN1YlNsaWNlcywgW3NCXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNBLnNlbGZUaW1lLCAzKTsKLQotICAgIGFzc2VydC5lcXVhbChzQSwgc0IucGFyZW50U2xpY2UpOwotICB9KTsKLQotICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyTmVzdGVkRXhhY3RseScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDEsIDQpKTsKLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDQpKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NCXSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc0Iuc3ViU2xpY2VzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzQi5zdWJTbGljZXMsIFtzQV0pOwotICAgIGFzc2VydC5lcXVhbChzQi5zZWxmVGltZSwgMCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc0IsIHNBLnBhcmVudFNsaWNlKTsKLQotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDApLCB1bmRlZmluZWQpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDEpLCBzQSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMiksIHNBKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcyg1KSwgc0EpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDYpLCB1bmRlZmluZWQpOwotICB9KTsKLQotICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVySW5zdGFudEV2ZW50cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDApKTsKLSAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDIsIDApKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBLCBzQl0pOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDEpLCBzQSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMS41KSwgdW5kZWZpbmVkKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygyKSwgc0IpOwotICB9KTsKLQotICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyVHdvSW5zdGFudEV2ZW50cycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDApKTsKLSAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDEsIDApKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBXSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc0Euc3ViU2xpY2VzLmxlbmd0aCwgMSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzQS5zdWJTbGljZXMsIFtzQl0pOwotICAgIGFzc2VydC5lcXVhbChzQS5zZWxmVGltZSwgMCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc0EsIHNCLnBhcmVudFNsaWNlKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygxKSwgc0IpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDEuMDAwMSksIHVuZGVmaW5lZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ3N1YlNsaWNlc0J1aWxkZXJPdXRPZk9yZGVyQWRkaXRpb24nLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh7fSk7Ci0KLSAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKLSAgICAvLyBbICAgIGEgICAgIF1bICAgYiAgIF0KLSAgICAvLyBXaGVyZSBpbnNlcnRpb24gaXMgZG9uZSBiYWNrd2FyZC4KLSAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDMsIDEpKTsKLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDIpKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBLCBzQl0pOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMpLCBzQSk7Ci0gIH0pOwotCi0gIHRlc3QoJ3N1YlJvd0J1aWxkZXJPdXRPZk9yZGVyQWRkaXRpb24yJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAoe30pOwotCi0gICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6Ci0gICAgLy8gWyAgICBhICAgICBdCi0gICAgLy8gICBbICBiICAgXQotICAgIC8vIFdoZXJlIGluc2VydGlvbiBpcyBkb25lIGJhY2t3YXJkLgotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOwotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgNSkpOwotCi0gICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLCBbc0FdKTsKLQotICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHNBLnN1YlNsaWNlcywgW3NCXSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNBLnNlbGZUaW1lLCA0KTsKLQotICAgIGFzc2VydC5lcXVhbChzQSwgc0IucGFyZW50U2xpY2UpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDEuNSksIHNBKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygzKSwgc0IpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMuNSksIHNCKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcyg0KSwgc0IpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDQuNSksIHNBKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViU2xpY2VzQnVpbGRlck9uTmVzdGVkWmVyb0xlbmd0aCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLQotICAgIC8vIFBhdHRlcm4gYmVpbmcgdGVzdGVkOgotICAgIC8vIFsgICAgYSAgICBdCi0gICAgLy8gWyAgYjEgXSAgW108LSBiMiB3aGVyZSBiMi5kdXJhdGlvbiA9IDAgYW5kIGIyLmVuZCA9PSBhLmVuZC4KLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDMpKTsKLSAgICB2YXIgc0IxID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2IxJywgMSwgMikpOwotICAgIHZhciBzQjIgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYjInLCA0LCAwKSk7Ci0KLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQV0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDIpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0IxLCBzQjJdKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLCBzQjEucGFyZW50U2xpY2UpOwotICAgIGFzc2VydC5lcXVhbChzQSwgc0IyLnBhcmVudFNsaWNlKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygxKSwgc0IxKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcyg0KSwgc0IyKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViU2xpY2VzQnVpbGRlck9uR3JvdXAxJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAoe30pOwotCi0gICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6Ci0gICAgLy8gWyAgICBhICAgICBdICAgWyAgYyAgIF0KLSAgICAvLyAgIFsgIGIgICBdCi0gICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7Ci0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLjUsIDEpKTsKLSAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYycsIDUsIDApKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBLCBzQ10pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0JdKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDIpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLCBzQi5wYXJlbnRTbGljZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMSksIHNBKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygyKSwgc0IpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMpLCBzQSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoNC41KSwgdW5kZWZpbmVkKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcyg1KSwgc0MpOwotICB9KTsKLQotICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyT25Hcm91cDInLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh7fSk7Ci0KLSAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKLSAgICAvLyBbICAgIGEgICAgIF0gICBbICBkICAgXQotICAgIC8vICAgWyAgYiAgIF0KLSAgICAvLyAgICBbIGMgXQotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMykpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMS41LCAxKSk7Ci0gICAgdmFyIHNDID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2MnLCAxLjc1LCAwLjUpKTsKLSAgICB2YXIgc0QgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnZCcsIDUsIDAuMjUpKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMik7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBLCBzRF0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0JdKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDIpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLCBzQi5wYXJlbnRTbGljZSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNCLnN1YlNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc0Iuc3ViU2xpY2VzLCBbc0NdKTsKLSAgICBhc3NlcnQuZXF1YWwoc0Iuc2VsZlRpbWUsIDAuNSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoc0IsIHNDLnBhcmVudFNsaWNlKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygyKSwgc0MpOwotICB9KTsKLQotICB0ZXN0KCdmaW5kTmV4dFNsaWNlQWZ0ZXJCYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKLSAgICAvLyBbICAgICAgICBhICAgICAgICAgXSBbICAgZCAgICBdCi0gICAgLy8gW2JdICAgIFsgICBjICAgXSAgICAgICAgICAgICAgICAgd2hlcmUgYiBpcyBkdXI9MAotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMSwgZW5kOiA0fSkpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMSwgZW5kOiAxfSkpOwotICAgIHZhciBzQyA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2MnLCBzdGFydDogMiwgZW5kOiAzfSkpOwotICAgIHZhciBzRCA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2QnLCBzdGFydDogNSwgZW5kOiA2fSkpOwotCi0gICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZE5leHRTbGljZUFmdGVyKDAsIDApLCBzQSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmROZXh0U2xpY2VBZnRlcigxLCBzQS5ndWlkKSwgc0IpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kTmV4dFNsaWNlQWZ0ZXIoMSwgc0IuZ3VpZCksIHNDKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZE5leHRTbGljZUFmdGVyKDIsIHNDLmd1aWQpLCBzRCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmROZXh0U2xpY2VBZnRlcig2LCAwKSwgdW5kZWZpbmVkKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3ViU2xpY2VzQnVpbGRlclRvbGVyYXRlRlBJbmFjY3VyYWN5JywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAoe30pOwotCi0gICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6Ci0gICAgLy8gWyAgYSAgXQotICAgIC8vIFsgIGIgIF0gd2hlcmUgYi5lbmQgY29udGFpbnMgYSB0aW55IEZQIGNhbGN1bGF0aW9uIGVycm9yLgotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMykpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMSwgMy4wMDAwMDAwMDAxKSk7Ci0KLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQV0pOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0JdKTsKLSAgICBhc3NlcnQuZXF1YWwoc0EsIHNCLnBhcmVudFNsaWNlKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygxKSwgc0IpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMpLCBzQik7Ci0gIH0pOwotCi0gIHRlc3QoJ2Jhc2ljTWVyZ2UnLCBmdW5jdGlvbigpIHsKLSAgICBmdW5jdGlvbiBUZXN0U2xpY2UoCi0gICAgICAgIGNhdCwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24sCi0gICAgICAgIG9wdF9jcHVTdGFydCwgb3B0X2NwdUR1cmF0aW9uKSB7Ci0gICAgICBTbGljZS5jYWxsKHRoaXMsIGNhdCwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24sCi0gICAgICAgICAgICAgICAgIG9wdF9jcHVTdGFydCwgb3B0X2NwdUR1cmF0aW9uKTsKLSAgICB9Ci0gICAgVGVzdFNsaWNlLnByb3RvdHlwZSA9IHsKLSAgICAgIF9fcHJvdG9fXzogU2xpY2UucHJvdG90eXBlCi0gICAgfTsKLQotICAgIHZhciB0aHJlYWQgPSB7fTsKLSAgICB2YXIgYSA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCwgVGVzdFNsaWNlKTsKLSAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCwgVGVzdFNsaWNlKTsKLSAgICBhLmJlZ2luU2xpY2UoJycsICdvbmUnLCAxKTsKLSAgICBhLmVuZFNsaWNlKDIpOwotICAgIGIuYmVnaW5TbGljZSgnJywgJ3R3bycsIDMpOwotICAgIGIuZW5kU2xpY2UoNSk7Ci0KLSAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICdvbmUnKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICd0d28nKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uc3RhcnQsIDMpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5kdXJhdGlvbiwgMik7Ci0KLSAgICAvLyBlbnN1cmUgY29uc3RydWN0b3IgbWVyZ2VkIGNvcnJlY3RseQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlQ29uc3RydWN0b3IsIFRlc3RTbGljZSk7Ci0gIH0pOwotCi0gIHRlc3QoJ25lc3RlZE1lcmdlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRocmVhZCA9IHt9OwotICAgIHZhciBhID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKLSAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7Ci0gICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMSk7Ci0gICAgYS5lbmRTbGljZSg0KTsKLSAgICBiLmJlZ2luU2xpY2UoJycsICd0d28nLCAyKTsKLSAgICBiLmVuZFNsaWNlKDMpOwotCi0gICAgdmFyIG0gPSBTbGljZUdyb3VwLm1lcmdlKGEsIGIpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlcy5sZW5ndGgsIDIpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnRpdGxlLCAnb25lJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnN0YXJ0LCAxKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uZHVyYXRpb24sIDMpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnRpdGxlLCAndHdvJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnN0YXJ0LCAyKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uZHVyYXRpb24sIDEpOwotICB9KTsKLQotICB0ZXN0KCdzdGFydFNwbGl0TWVyZ2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGhyZWFkID0ge307Ci0gICAgdmFyIGEgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOwotICAgIHZhciBiID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKLSAgICBhLmJlZ2luU2xpY2UoJycsICdvbmUnLCAyKTsKLSAgICBhLmVuZFNsaWNlKDQpOwotICAgIGIuYmVnaW5TbGljZSgnJywgJ3R3bycsIDEpOwotICAgIGIuZW5kU2xpY2UoMyk7Ci0KLSAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgMyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICd0d28nKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICdvbmUnKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uc3RhcnQsIDIpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5kdXJhdGlvbiwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0udGl0bGUsICd0d28gKGNvbnQuKScpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5zdGFydCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLmR1cmF0aW9uLCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc3RhcnRTcGxpdFR3b01lcmdlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRocmVhZCA9IHt9OwotICAgIHZhciBhID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKLSAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7Ci0gICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMyk7Ci0gICAgYS5lbmRTbGljZSg2KTsKLSAgICBiLmJlZ2luU2xpY2UoJycsICd0d28nLCAxKTsKLSAgICBiLmJlZ2luU2xpY2UoJycsICd0aHJlZScsIDIpOwotICAgIGIuZW5kU2xpY2UoNCk7Ci0gICAgYi5lbmRTbGljZSg1KTsKLQotICAgIHZhciBtID0gU2xpY2VHcm91cC5tZXJnZShhLCBiKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXMubGVuZ3RoLCA1KTsKLQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS50aXRsZSwgJ3R3bycpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5zdGFydCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLmR1cmF0aW9uLCAyKTsKLQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS50aXRsZSwgJ3RocmVlJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnN0YXJ0LCAyKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uZHVyYXRpb24sIDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnRpdGxlLCAnb25lJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnN0YXJ0LCAzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uZHVyYXRpb24sIDMpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzNdLnRpdGxlLCAndHdvIChjb250LiknKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10uc3RhcnQsIDMpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5kdXJhdGlvbiwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0udGl0bGUsICd0aHJlZSAoY29udC4pJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLnN0YXJ0LCAzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uZHVyYXRpb24sIDEpOwotICB9KTsKLQotICB0ZXN0KCdzdGFydFNwbGl0VHdpY2VNZXJnZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0aHJlYWQgPSB7fTsKLSAgICB2YXIgYSA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7Ci0gICAgdmFyIGIgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOwotICAgIGEuYmVnaW5TbGljZSgnJywgJ29uZScsIDIpOwotICAgIGEuYmVnaW5TbGljZSgnJywgJ3R3bycsIDMpOwotICAgIGEuZW5kU2xpY2UoNSk7Ci0gICAgYS5lbmRTbGljZSg2KTsKLSAgICBiLmJlZ2luU2xpY2UoJycsICd0aHJlZScsIDEpOwotICAgIGIuZW5kU2xpY2UoNCk7Ci0KLSAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgNSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICd0aHJlZScpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5zdGFydCwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLmR1cmF0aW9uLCAxKTsKLQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS50aXRsZSwgJ29uZScpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5zdGFydCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLmR1cmF0aW9uLCA0KTsKLQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS50aXRsZSwgJ3RocmVlIChjb250LiknKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uc3RhcnQsIDIpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5kdXJhdGlvbiwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10udGl0bGUsICd0d28nKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10uc3RhcnQsIDMpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5kdXJhdGlvbiwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0udGl0bGUsICd0aHJlZSAoY29udC4pJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLnN0YXJ0LCAzKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uZHVyYXRpb24sIDEpOwotICB9KTsKLQotICB0ZXN0KCdlbmRTcGxpdE1lcmdlJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRocmVhZCA9IHt9OwotICAgIHZhciBhID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKLSAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7Ci0gICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMSk7Ci0gICAgYS5lbmRTbGljZSgzKTsKLSAgICBiLmJlZ2luU2xpY2UoJycsICd0d28nLCAyKTsKLSAgICBiLmVuZFNsaWNlKDQpOwotCi0gICAgdmFyIG0gPSBTbGljZUdyb3VwLm1lcmdlKGEsIGIpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlcy5sZW5ndGgsIDMpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnRpdGxlLCAnb25lJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnN0YXJ0LCAxKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uZHVyYXRpb24sIDIpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnRpdGxlLCAndHdvJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnN0YXJ0LCAyKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uZHVyYXRpb24sIDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnRpdGxlLCAndHdvIChjb250LiknKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uc3RhcnQsIDMpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5kdXJhdGlvbiwgMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2VuZFNwbGl0VHdvTWVyZ2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgdGhyZWFkID0ge307Ci0gICAgdmFyIGEgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOwotICAgIHZhciBiID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKLSAgICBhLmJlZ2luU2xpY2UoJycsICdvbmUnLCAxKTsKLSAgICBhLmVuZFNsaWNlKDQpOwotICAgIGIuYmVnaW5TbGljZSgnJywgJ3R3bycsIDIpOwotICAgIGIuYmVnaW5TbGljZSgnJywgJ3RocmVlJywgMyk7Ci0gICAgYi5lbmRTbGljZSg1KTsKLSAgICBiLmVuZFNsaWNlKDYpOwotCi0gICAgdmFyIG0gPSBTbGljZUdyb3VwLm1lcmdlKGEsIGIpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlcy5sZW5ndGgsIDUpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnRpdGxlLCAnb25lJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnN0YXJ0LCAxKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uZHVyYXRpb24sIDMpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnRpdGxlLCAndHdvJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnN0YXJ0LCAyKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uZHVyYXRpb24sIDIpOwotCi0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnRpdGxlLCAndGhyZWUnKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uc3RhcnQsIDMpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5kdXJhdGlvbiwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10udGl0bGUsICd0d28gKGNvbnQuKScpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5zdGFydCwgNCk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzNdLmR1cmF0aW9uLCAyKTsKLQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1s0XS50aXRsZSwgJ3RocmVlIChjb250LiknKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uc3RhcnQsIDQpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1s0XS5kdXJhdGlvbiwgMSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2VuZFNwbGl0VHdpY2VNZXJnZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0aHJlYWQgPSB7fTsKLSAgICB2YXIgYSA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7Ci0gICAgdmFyIGIgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOwotICAgIGEuYmVnaW5TbGljZSgnJywgJ29uZScsIDEpOwotICAgIGEuYmVnaW5TbGljZSgnJywgJ3R3bycsIDIpOwotICAgIGEuZW5kU2xpY2UoNCk7Ci0gICAgYS5lbmRTbGljZSg1KTsKLSAgICBiLmJlZ2luU2xpY2UoJycsICd0aHJlZScsIDMpOwotICAgIGIuZW5kU2xpY2UoNik7Ci0KLSAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgNSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICdvbmUnKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgNCk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICd0d28nKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uc3RhcnQsIDIpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5kdXJhdGlvbiwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0udGl0bGUsICd0aHJlZScpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5zdGFydCwgMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLmR1cmF0aW9uLCAxKTsKLQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS50aXRsZSwgJ3RocmVlIChjb250LiknKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10uc3RhcnQsIDQpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5kdXJhdGlvbiwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0udGl0bGUsICd0aHJlZSAoY29udC4pJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLnN0YXJ0LCA1KTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uZHVyYXRpb24sIDEpOwotICB9KTsKLQotICAvLyBJbnB1dDoKLSAgLy8gQTogIHwgICAgb25lICAgICB8ICAgICAgIHwgICAgIHR3byAgICAgfAotICAvLwotICAvLyBCOiAgICAgICB8ICAgICAgICAgdGhyZWUgICAgICAgICB8Ci0gIC8vCi0gIC8vIE91dHB1dDoKLSAgLy8gICAgIHwgICAgb25lICAgICB8IHRocmVlIHwgICAgIHR3byAgICAgfAotICAvLyAgICAgICAgICB8IHRocmVlIHwgICAgICAgfCB0aHJlZSB8Ci0gIHRlc3QoJ3NwbGl0VHdpY2VNZXJnZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciB0aHJlYWQgPSB7fTsKLSAgICB2YXIgYSA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7Ci0gICAgdmFyIGIgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOwotICAgIGEuYmVnaW5TbGljZSgnJywgJ29uZScsIDEpOwotICAgIGEuZW5kU2xpY2UoMyk7Ci0gICAgYS5iZWdpblNsaWNlKCcnLCAndHdvJywgNCk7Ci0gICAgYS5lbmRTbGljZSg2KTsKLSAgICBiLmJlZ2luU2xpY2UoJycsICd0aHJlZScsIDIpOwotICAgIGIuZW5kU2xpY2UoNSk7Ci0KLSAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgNSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICdvbmUnKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICd0aHJlZScpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5zdGFydCwgMik7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLmR1cmF0aW9uLCAxKTsKLQotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS50aXRsZSwgJ3RocmVlIChjb250LiknKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uc3RhcnQsIDMpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5kdXJhdGlvbiwgMSk7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10udGl0bGUsICd0d28nKTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10uc3RhcnQsIDQpOwotICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5kdXJhdGlvbiwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0udGl0bGUsICd0aHJlZSAoY29udC4pJyk7Ci0gICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLnN0YXJ0LCA0KTsKLSAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uZHVyYXRpb24sIDEpOwotICB9KTsKLQotICB0ZXN0KCdib3VuZHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh7fSk7Ci0gICAgZ3JvdXAudXBkYXRlQm91bmRzKCk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdyb3VwLmJvdW5kcy5taW4pOwotICAgIGFzc2VydC5pc1VuZGVmaW5lZChncm91cC5ib3VuZHMubWF4KTsKLQotICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZSgxLCAzKSk7Ci0gICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDcsIDIpKTsKLSAgICBncm91cC51cGRhdGVCb3VuZHMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuYm91bmRzLm1pbiwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5tYXgsIDkpOwotICB9KTsKLQotICB0ZXN0KCdib3VuZHNXaXRoUGFydGlhbCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYScsIDcpOwotICAgIGdyb3VwLnVwZGF0ZUJvdW5kcygpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5ib3VuZHMubWluLCA3KTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuYm91bmRzLm1heCwgNyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2JvdW5kc1dpdGhUd29QYXJ0aWFscycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYScsIDApOwotICAgIGdyb3VwLmJlZ2luU2xpY2UoJycsICdhJywgMSk7Ci0gICAgZ3JvdXAudXBkYXRlQm91bmRzKCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5taW4sIDApOwotICAgIGFzc2VydC5lcXVhbChncm91cC5ib3VuZHMubWF4LCAxKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYm91bmRzV2l0aEJvdGhQYXJ0aWFsQW5kUmVndWxhcicsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICBncm91cC51cGRhdGVCb3VuZHMoKTsKLSAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ3JvdXAuYm91bmRzLm1pbik7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdyb3VwLmJvdW5kcy5tYXgpOwotCi0gICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDEsIDMpKTsKLSAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYScsIDcpOwotICAgIGdyb3VwLnVwZGF0ZUJvdW5kcygpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5ib3VuZHMubWluLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuYm91bmRzLm1heCwgNyk7Ci0gIH0pOwotCi0gIHRlc3QoJ2F1dG9jbG9zZXJCYXNpYycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgZ3JvdXAub3BlblNsaWNlQ291bnQpOwotCi0gICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAwLjUpKTsKLQotICAgIGdyb3VwLmJlZ2luU2xpY2UoJycsICdiJywgMik7Ci0gICAgZ3JvdXAuYmVnaW5TbGljZSgnJywgJ2MnLCAyLjUpOwotICAgIGdyb3VwLmVuZFNsaWNlKDMpOwotCi0gICAgZ3JvdXAuYXV0b0Nsb3NlT3BlblNsaWNlcygpOwotICAgIGdyb3VwLnVwZGF0ZUJvdW5kcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5taW4sIDEpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5ib3VuZHMubWF4LCAzKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzLmxlbmd0aCwgMyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5pc0ZhbHNlKGdyb3VwLnNsaWNlc1swXS5kaWROb3RGaW5pc2gpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS50aXRsZSwgJ2InKTsKLSAgICBhc3NlcnQuaXNUcnVlKGdyb3VwLnNsaWNlc1sxXS5kaWROb3RGaW5pc2gpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMV0uZHVyYXRpb24sIDEpOwotCi0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1syXS50aXRsZSwgJ2MnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShncm91cC5zbGljZXNbMl0uZGlkTm90RmluaXNoKTsKLSAgfSk7Ci0KLSAgdGVzdCgnYXV0b2Nsb3NlcldpdGhTdWJUYXNrcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICBhc3NlcnQuZXF1YWwoMCwgZ3JvdXAub3BlblNsaWNlQ291bnQpOwotCi0gICAgZ3JvdXAuYmVnaW5TbGljZSgnJywgJ2EnLCAxKTsKLSAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYjEnLCAyKTsKLSAgICBncm91cC5lbmRTbGljZSgzKTsKLSAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYjInLCAzKTsKLQotICAgIGdyb3VwLmF1dG9DbG9zZU9wZW5TbGljZXMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzLmxlbmd0aCwgMyk7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAnYScpOwotICAgIGFzc2VydC5pc1RydWUoZ3JvdXAuc2xpY2VzWzBdLmRpZE5vdEZpbmlzaCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1swXS5kdXJhdGlvbiwgMik7Ci0KLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLnRpdGxlLCAnYjEnKTsKLSAgICBhc3NlcnQuaXNGYWxzZShncm91cC5zbGljZXNbMV0uZGlkTm90RmluaXNoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmR1cmF0aW9uLCAxKTsKLQotICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMl0udGl0bGUsICdiMicpOwotICAgIGFzc2VydC5pc1RydWUoZ3JvdXAuc2xpY2VzWzJdLmRpZE5vdEZpbmlzaCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1syXS5kdXJhdGlvbiwgMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2F1dG9jbG9zZUNvbXBsZXRlU2xpY2UnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh7fSk7Ci0KLSAgICBncm91cC5wdXNoQ29tcGxldGVTbGljZSgnJywgJ2EnLCAxLCB1bmRlZmluZWQpOwotICAgIGdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKCcnLCAnYicsIDIsIDMpOwotCi0gICAgZ3JvdXAuYXV0b0Nsb3NlT3BlblNsaWNlcygpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXMubGVuZ3RoLCAyKTsKLQotICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMF0udGl0bGUsICdhJyk7Ci0gICAgYXNzZXJ0LmlzVHJ1ZShncm91cC5zbGljZXNbMF0uZGlkTm90RmluaXNoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmR1cmF0aW9uLCA0KTsKLQotICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMV0udGl0bGUsICdiJyk7Ci0gICAgYXNzZXJ0LmlzRmFsc2UoZ3JvdXAuc2xpY2VzWzFdLmRpZE5vdEZpbmlzaCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5kdXJhdGlvbiwgMyk7Ci0gIH0pOwotCi0gIHRlc3QoJ3NsaWNlR3JvdXBTdGFibGVJZCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7Ci0gICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNDU2KTsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHByb2Nlc3Muc3RhYmxlSWQsIDEyMyk7Ci0gICAgYXNzZXJ0LmVxdWFsKHRocmVhZC5zdGFibGVJZCwgJzEyMy40NTYnKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc3RhYmxlSWQsICcxMjMuNDU2LlNsaWNlR3JvdXAnKTsKLSAgfSk7Ci0KLSAgdGVzdCgnZ2V0U2xpY2VzT2ZOYW1lJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAoe30pOwotICAgIHZhciBleHBlY3RlZCA9IFtdOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgICB2YXIgYVNsaWNlID0gbmV3U2xpY2VOYW1lZCgnYScsIGksIGkgKyAxKTsKLSAgICAgIGdyb3VwLnB1c2hTbGljZShhU2xpY2UpOwotICAgICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCBpICsgMSwgaSArIDIpKTsKLSAgICAgIGV4cGVjdGVkLnB1c2goYVNsaWNlKTsKLSAgICB9Ci0KLSAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3VwLmdldFNsaWNlc09mTmFtZSgnYScpLCBleHBlY3RlZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2l0ZXJTbGljZXNJblRpbWVSYW5nZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLSAgICB2YXIgZXhwZWN0ZWQgPSBbXTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewotICAgICAgdmFyIHNsaWNlID0gbmV3U2xpY2VOYW1lZCgnYScsIGksIDEpOwotICAgICAgZ3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKLSAgICAgIGlmICg0IDw9IGkgJiYgaSA8PSA3KQotICAgICAgICBleHBlY3RlZC5wdXNoKHNsaWNlKTsKLSAgICB9Ci0gICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7Ci0KLSAgICB2YXIgb2JzZXJ2ZWQgPSBbXTsKLSAgICBncm91cC5pdGVyU2xpY2VzSW5UaW1lUmFuZ2UoZnVuY3Rpb24oc2xpY2UpIHsgb2JzZXJ2ZWQucHVzaChzbGljZSk7IH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNSwgNy41KTsKLSAgICBhc3NlcnQuZGVlcEVxdWFsKG9ic2VydmVkLCBleHBlY3RlZCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NvbXB1dGVDcHVEdXJhdGlvbk5vT3ZlcmxhcCcsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBTQ0hFRFVMSU5HX1NUQVRFID0gdHIubW9kZWwuU0NIRURVTElOR19TVEFURTsKLSAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOwotICAgIHZhciB0ID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg0NTYpOwotICAgIHQudGltZVNsaWNlcyA9IFtuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsIDIwLCAyMCksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuU0xFRVBJTkcsIDQwLCAxMCksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgNTAsIDEwKV07Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAodCk7Ci0gICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2RyYXcnLCAwLCAyMCkpOwotICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdyZW5kZXInLCA2MCwgMjApKTsKLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCAwKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdUR1cmF0aW9uLCAwKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY29tcHV0ZUNwdUR1cmF0aW9uUGFydGlhbE92ZXJsYXAnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKLSAgICB2YXIgU0NIRURVTElOR19TVEFURSA9IHRyLm1vZGVsLlNDSEVEVUxJTkdfU1RBVEU7Ci0gICAgdmFyIHByb2Nlc3MgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMTIzKTsKLSAgICB2YXIgdCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNDU2KTsKLSAgICB0LnRpbWVTbGljZXMgPSBbbmV3VGhyZWFkU2xpY2UodCwgU0NIRURVTElOR19TVEFURS5SVU5OSU5HLCAyMCwgMjApLAotICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCA0MCwgMTApLAotICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsIDUwLCAxMCldOwotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHQpOwotICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdkcmF3JywgMTAsIDMwKSk7Ci0gICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ3JlbmRlcicsIDUwLCAyMCkpOwotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMF0uY3B1RHVyYXRpb24sIDIwKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdUR1cmF0aW9uLCAxMCk7Ci0gIH0pOwotCi0gIHRlc3QoJ2NvbXB1dGVDcHVEdXJhdGlvbkZ1bGxPdmVybGFwJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIFNDSEVEVUxJTkdfU1RBVEUgPSB0ci5tb2RlbC5TQ0hFRFVMSU5HX1NUQVRFOwotICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7Ci0gICAgdmFyIHQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7Ci0gICAgdC50aW1lU2xpY2VzID0gW25ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjAsIDIwKSwKLSAgICAgICAgICAgICAgICAgICAgbmV3VGhyZWFkU2xpY2UodCwgU0NIRURVTElOR19TVEFURS5TTEVFUElORywgNDAsIDEwKSwKLSAgICAgICAgICAgICAgICAgICAgbmV3VGhyZWFkU2xpY2UodCwgU0NIRURVTElOR19TVEFURS5SVU5OSU5HLCA1MCwgMjApXTsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh0KTsKLSAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnZHJhdycsIDIwLCAzMCkpOwotICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdyZW5kZXInLCA1MCwgMjApKTsKLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCAyMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5jcHVEdXJhdGlvbiwgMjApOwotICB9KTsKLQotICB0ZXN0KCdjb21wdXRlQ3B1U2VsZkR1cmF0aW9uV2l0aFN1YnNsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOwotICAgIHZhciBTQ0hFRFVMSU5HX1NUQVRFID0gdHIubW9kZWwuU0NIRURVTElOR19TVEFURTsKLSAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOwotICAgIHZhciB0ID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg0NTYpOwotICAgIHQudGltZVNsaWNlcyA9IFtuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsIDIwLCAyMCksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuU0xFRVBJTkcsIDQwLCAxMCksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgNTAsIDIwKV07Ci0gICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAodCk7Ci0gICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2RyYXcnLCAyMCwgMzApKTsKLSAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgncmVuZGVyJywgMjEsIDgpKTsKLSAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnZmx1c2gnLCAyOSwgMTEpKTsKLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCAyMCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1swXS5jcHVTZWxmVGltZSwgMSk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5jcHVEdXJhdGlvbiwgOCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5jcHVTZWxmVGltZSwgOCk7Ci0gICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1syXS5jcHVEdXJhdGlvbiwgMTEpOwotICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMl0uY3B1U2VsZlRpbWUsIDExKTsKLSAgfSk7Ci0KLSAgdGVzdCgnY29tcHV0ZUNwdUR1cmF0aW9uU21hbGxUaW1lc2xpY2VzJywgZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgdmFyIFNDSEVEVUxJTkdfU1RBVEUgPSB0ci5tb2RlbC5TQ0hFRFVMSU5HX1NUQVRFOwotICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7Ci0gICAgdmFyIHQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7Ci0gICAgdC50aW1lU2xpY2VzID0gW25ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjAsIDEpLAotICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyMSwgMSksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjIsIDEpLAotICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyMywgMSksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjQsIDEpLAotICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyNSwgMSksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjYsIDEpLAotICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyNywgMSksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjgsIDEpLAotICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyOSwgMSksCi0gICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMzAsIDEpXTsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh0KTsKLSAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnZHJhdycsIDIwLCAxMSkpOyAvLyAyMCxbMjIsMjQsMjYsMjhdLDMwCi0gICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ3JlbmRlcicsIDIyLCA4KSk7IC8vIDIyLFsyNCwgMjYsIDI4XQotICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdmbHVzaCcsIDI0LCA2KSk7IC8vIDI0LCAyNiwgMjgKLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCA2KTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdVNlbGZUaW1lLCAyKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdUR1cmF0aW9uLCA0KTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdVNlbGZUaW1lLCAxKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzJdLmNwdUR1cmF0aW9uLCAzKTsKLSAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzJdLmNwdVNlbGZUaW1lLCAzKTsKLSAgfSk7Ci0KLSAgdGVzdCgnc2xpY2VQYXJlbnRDb250YWluZXJTZXRBdFB1c2gnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgbSA9IG5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKLSAgICAgIG0ucHJvY2VzcyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7Ci0gICAgICBtLnRocmVhZCA9IG0ucHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg0NTYpOwotICAgICAgbS5ncm91cCA9IG5ldyBTbGljZUdyb3VwKG0udGhyZWFkKTsKLQotICAgICAgbS5zQSA9IG0uZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCi0gICAgICAgICAgeyB0aXRsZTogJ3NBJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEwLjAgfSkpOwotCi0gICAgICBtLmdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotICAgIH0pOwotCi0gICAgYXNzZXJ0LmRlZXBFcXVhbChtLnNBLnBhcmVudENvbnRhaW5lciwgbS50aHJlYWQpOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NsaWNlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2xpY2VfdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MmQwYjNiLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2xpY2VfdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2VfZ3JvdXAuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgewotICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKLSAgdmFyIFNsaWNlR3JvdXAgPSB0ci5tb2RlbC5TbGljZUdyb3VwOwotICB2YXIgbmV3U2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2U7Ci0gIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7Ci0gIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7Ci0KLSAgdGVzdCgnZmluZERlc2NlbmRlbnRTbGljZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLQotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0EnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMTAuMCB9KSk7Ci0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCi0gICAgICAgIHsgdGl0bGU6ICdzQicsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiA0LjAgfSkpOwotICAgIHZhciBzQyA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0MnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMi4wIH0pKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmRlZXBFcXVhbChzQiwgc0EuZmluZERlc2NlbmRlbnRTbGljZSgnc0InKSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzQywgc0EuZmluZERlc2NlbmRlbnRTbGljZSgnc0MnKSk7Ci0gICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHNBLmZpbmREZXNjZW5kZW50U2xpY2UoJ3NEJykpOwotICB9KTsKLQotICB0ZXN0KCdpdGVyYXRlQWxsRGVzY2VuZGVudHMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh7fSk7Ci0KLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKLSAgICAgICAgeyB0aXRsZTogJ3NBJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEwLjAgfSkpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0InLCBzdGFydDogMC4wLCBkdXJhdGlvbjogNC4wIH0pKTsKLSAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKLSAgICAgICAgeyB0aXRsZTogJ3NDJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDIuMCB9KSk7Ci0KLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIGFzc2VydC5kZWVwRXF1YWwoc0EuZGVzY2VuZGVudFNsaWNlcywgW3NCLCBzQ10pOwotICAgIGFzc2VydC5kZWVwRXF1YWwoc0MuZGVzY2VuZGVudFNsaWNlcywgW10pOwotICB9KTsKLQotICB0ZXN0KCdtb3N0VG9wTGV2ZWxTbGljZScsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLQotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0EnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMTAuMCB9KSk7Ci0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCi0gICAgICAgIHsgdGl0bGU6ICdzQicsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiA0LjAgfSkpOwotICAgIHZhciBzQyA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0MnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMi4wIH0pKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmVxdWFsKHNBLm1vc3RUb3BMZXZlbFNsaWNlLCBzQSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNCLm1vc3RUb3BMZXZlbFNsaWNlLCBzQSk7Ci0gICAgYXNzZXJ0LmVxdWFsKHNDLm1vc3RUb3BMZXZlbFNsaWNlLCBzQSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2l0ZXJhdGVBbGxBbmNlc3RvcnMnLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh7fSk7Ci0KLSAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKLSAgICAgICAgeyB0aXRsZTogJ3NBJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEwLjAgfSkpOwotICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0InLCBzdGFydDogMC4wLCBkdXJhdGlvbjogNC4wIH0pKTsKLSAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKLSAgICAgICAgeyB0aXRsZTogJ3NDJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDIuMCB9KSk7Ci0KLSAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLQotICAgIC8vIE5vdGUgdGhhdCB3ZSBpdGVyYXRlIGFuY2VzdG9ycyBmcm9tIHRoZSBsZWF2ZXMgdG8gdGhlIHJvb3QKLSAgICBhc3NlcnQuZGVlcEVxdWFsKHNDLmFuY2VzdG9yU2xpY2VzLCBbc0IsIHNBXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzQS5hbmNlc3RvclNsaWNlcywgW10pOwotICB9KTsKLQotICB0ZXN0KCdpdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLQotICAgIC8vIFsgICAgIEEgICAgIF0KLSAgICAvLyBbIEIgXVsgRCBdW0ZdCi0gICAgLy8gW0NdICBbRV0KLQotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0EnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMTAuMCB9KSk7Ci0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCi0gICAgICAgIHsgdGl0bGU6ICdzQicsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiA0LjAgfSkpOwotICAgIHZhciBzQyA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0MnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMi4wIH0pKTsKLSAgICB2YXIgc0QgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKLSAgICAgICAgeyB0aXRsZTogJ3NEJywgc3RhcnQ6IDUuMCwgZHVyYXRpb246IDIuMCB9KSk7Ci0gICAgdmFyIHNFID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCi0gICAgICAgIHsgdGl0bGU6ICdzRScsIHN0YXJ0OiA1LjAsIGR1cmF0aW9uOiAxLjAgfSkpOwotICAgIHZhciBzRiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0YnLCBzdGFydDogOC4wLCBkdXJhdGlvbjogMi4wIH0pKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmRlZXBFcXVhbChzQS5zdWJzZXF1ZW50U2xpY2VzLCBbc0IsIHNDLCBzRCwgc0UsIHNGXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzRC5zdWJzZXF1ZW50U2xpY2VzLCBbc0UsIHNGXSk7Ci0gICAgYXNzZXJ0LmRlZXBFcXVhbChzRi5zdWJzZXF1ZW50U2xpY2VzLCBbXSk7Ci0gIH0pOwotCi0gIHRlc3QoJ2FuY2VzdG9yQW5kU3Vic2VxdWVudFNsaWNlcycsIGZ1bmN0aW9uKCkgewotICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHt9KTsKLQotICAgIC8vIFsgICAgIEEgICAgIF0KLSAgICAvLyBbIEIgXVsgRCBdW0ZdCi0gICAgLy8gW0NdICBbRV0KLQotICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0EnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMTAuMCB9KSk7Ci0gICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCi0gICAgICAgIHsgdGl0bGU6ICdzQicsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiA0LjAgfSkpOwotICAgIHZhciBzQyA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0MnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMi4wIH0pKTsKLSAgICB2YXIgc0QgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKLSAgICAgICAgeyB0aXRsZTogJ3NEJywgc3RhcnQ6IDUuMCwgZHVyYXRpb246IDIuMCB9KSk7Ci0gICAgdmFyIHNFID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCi0gICAgICAgIHsgdGl0bGU6ICdzRScsIHN0YXJ0OiA1LjAsIGR1cmF0aW9uOiAxLjAgfSkpOwotICAgIHZhciBzRiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAotICAgICAgICB7IHRpdGxlOiAnc0YnLCBzdGFydDogOC4wLCBkdXJhdGlvbjogMi4wIH0pKTsKLQotICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOwotCi0gICAgYXNzZXJ0LmRlZXBFcXVhbChzRC5hbmNlc3RvckFuZFN1YnNlcXVlbnRTbGljZXMsIFtzRCwgc0EsIHNFLCBzRl0pOwotICB9KTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3N0YWNrX2ZyYW1lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3N0YWNrX2ZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZTU1NGIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9zdGFja19mcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICBmdW5jdGlvbiBTdGFja0ZyYW1lKHBhcmVudEZyYW1lLCBpZCwgY2F0ZWdvcnksIHRpdGxlLCBjb2xvcklkKSB7Ci0gICAgaWYgKGlkID09PSB1bmRlZmluZWQpCi0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lkIG11c3QgYmUgZ2l2ZW4nKTsKLSAgICB0aGlzLnBhcmVudEZyYW1lXyA9IHBhcmVudEZyYW1lOwotICAgIHRoaXMuaWQgPSBpZDsKLSAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnkgfHwgJyc7Ci0gICAgdGhpcy50aXRsZSA9IHRpdGxlOwotICAgIHRoaXMuY29sb3JJZCA9IGNvbG9ySWQ7Ci0gICAgdGhpcy5jaGlsZHJlbiA9IFtdOwotCi0gICAgaWYgKHRoaXMucGFyZW50RnJhbWVfKQotICAgICAgdGhpcy5wYXJlbnRGcmFtZV8uYWRkQ2hpbGQodGhpcyk7Ci0gIH0KLQotICBTdGFja0ZyYW1lLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgcGFyZW50RnJhbWUoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5wYXJlbnRGcmFtZV87Ci0gICAgfSwKLQotICAgIHNldCBwYXJlbnRGcmFtZShwYXJlbnRGcmFtZSkgewotICAgICAgaWYgKHRoaXMucGFyZW50RnJhbWVfKQotICAgICAgICB0aGlzLnBhcmVudEZyYW1lXy5yZW1vdmVDaGlsZCh0aGlzKTsKLSAgICAgIHRoaXMucGFyZW50RnJhbWVfID0gcGFyZW50RnJhbWU7Ci0gICAgICBpZiAodGhpcy5wYXJlbnRGcmFtZV8pCi0gICAgICAgIHRoaXMucGFyZW50RnJhbWVfLmFkZENoaWxkKHRoaXMpOwotICAgIH0sCi0KLSAgICBhZGRDaGlsZDogZnVuY3Rpb24oY2hpbGQpIHsKLSAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaChjaGlsZCk7Ci0gICAgfSwKLQotICAgIHJlbW92ZUNoaWxkOiBmdW5jdGlvbihjaGlsZCkgewotICAgICAgdmFyIGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YoY2hpbGQuaWQpOwotICAgICAgaWYgKGkgPT0gLTEpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignb21nJyk7Ci0gICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAxKTsKLSAgICB9LAotCi0gICAgcmVtb3ZlQWxsQ2hpbGRyZW46IGZ1bmN0aW9uKCkgewotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKQotICAgICAgICB0aGlzLmNoaWxkcmVuW2ldLnBhcmVudEZyYW1lXyA9IHVuZGVmaW5lZDsKLSAgICAgIHRoaXMuY2hpbGRyZW4uc3BsaWNlKDAsIHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTsKLSAgICB9LAotCi0gICAgZ2V0IHN0YWNrVHJhY2UoKSB7Ci0gICAgICB2YXIgc3RhY2sgPSBbXTsKLSAgICAgIHZhciBjdXIgPSB0aGlzOwotICAgICAgd2hpbGUgKGN1cikgewotICAgICAgICBzdGFjay5wdXNoKGN1cik7Ci0gICAgICAgIGN1ciA9IGN1ci5wYXJlbnRGcmFtZTsKLSAgICAgIH0KLSAgICAgIHN0YWNrLnJldmVyc2UoKTsKLSAgICAgIHJldHVybiBzdGFjazsKLSAgICB9LAotCi0gICAgZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZTogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zdGFja1RyYWNlLm1hcChmdW5jdGlvbih4KSB7Ci0gICAgICAgIHJldHVybiB4LmNhdGVnb3J5ICsgJzogJyArIHgudGl0bGU7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBTdGFja0ZyYW1lOiBTdGFja0ZyYW1lCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC90aHJlYWQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGhyZWFkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyMzllOTIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC90aHJlYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RocmVhZF9zbGljZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2VfZ3JvdXAuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2FzeW5jX3NsaWNlX2dyb3VwLmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLS8qKgotICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgVGhyZWFkIGNsYXNzLgotICovCi10ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKLSAgdmFyIFNsaWNlID0gdHIubW9kZWwuU2xpY2U7Ci0gIHZhciBTbGljZUdyb3VwID0gdHIubW9kZWwuU2xpY2VHcm91cDsKLSAgdmFyIEFzeW5jU2xpY2UgPSB0ci5tb2RlbC5Bc3luY1NsaWNlOwotICB2YXIgQXN5bmNTbGljZUdyb3VwID0gdHIubW9kZWwuQXN5bmNTbGljZUdyb3VwOwotICB2YXIgVGhyZWFkU2xpY2UgPSB0ci5tb2RlbC5UaHJlYWRTbGljZTsKLSAgdmFyIFRocmVhZFRpbWVTbGljZSA9IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZTsKLQotICAvKioKLSAgICogQSBUaHJlYWQgc3RvcmVzIGFsbCB0aGUgdHJhY2UgZXZlbnRzIGNvbGxlY3RlZCBmb3IgYSBwYXJ0aWN1bGFyCi0gICAqIHRocmVhZC4gV2Ugb3JnYW5pemUgdGhlIHN5bmNocm9ub3VzIHNsaWNlcyBvbiBhIHRocmVhZCBieSAic3Vicm93cywiIHdoZXJlCi0gICAqIHN1YnJvdyAwIGhhcyBhbGwgdGhlIHJvb3Qgc2xpY2VzLCBzdWJyb3cgMSB0aG9zZSBuZXN0ZWQgMSBkZWVwLCBhbmQgc28gb24uCi0gICAqIFRoZSBhc3luY2hyb25vdXMgc2xpY2VzIGFyZSBzdG9yZWQgaW4gYW4gQXN5bmNTbGljZUdyb3VwIG9iamVjdC4KLSAgICoKLSAgICogVGhlIHNsaWNlcyBzdG9yZWQgb24gYSBUaHJlYWQgc2hvdWxkIGJlIGluc3RhbmNlcyBvZgotICAgKiBUaHJlYWRTbGljZS4KLSAgICoKLSAgICogQGNvbnN0cnVjdG9yCi0gICAqIEBleHRlbmRzIHt0ci5tb2RlbC5FdmVudENvbnRhaW5lcn0KLSAgICovCi0gIGZ1bmN0aW9uIFRocmVhZChwYXJlbnQsIHRpZCkgewotICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKLSAgICBpZiAoIXBhcmVudCkKLSAgICAgIHRocm93IG5ldyBFcnJvcignUGFyZW50IG11c3QgYmUgcHJvdmlkZWQuJyk7Ci0gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7Ci0gICAgdGhpcy5zb3J0SW5kZXggPSAwOwotICAgIHRoaXMudGlkID0gdGlkOwotICAgIHRoaXMubmFtZSA9IHVuZGVmaW5lZDsKLSAgICB0aGlzLnNhbXBsZXNfID0gdW5kZWZpbmVkOyAvLyBTZXQgZHVyaW5nIGNyZWF0ZVN1YlNsaWNlcwotCi0gICAgdmFyIHRoYXQgPSB0aGlzOwotCi0gICAgdGhpcy5zbGljZUdyb3VwID0gbmV3IFNsaWNlR3JvdXAodGhpcywgVGhyZWFkU2xpY2UsICdzbGljZXMnKTsKLSAgICB0aGlzLnRpbWVTbGljZXMgPSB1bmRlZmluZWQ7Ci0gICAgdGhpcy5rZXJuZWxTbGljZUdyb3VwID0gbmV3IFNsaWNlR3JvdXAoCi0gICAgICAgIHRoaXMsIFRocmVhZFNsaWNlLCAna2VybmVsLXNsaWNlcycpOwotICAgIHRoaXMuYXN5bmNTbGljZUdyb3VwID0gbmV3IEFzeW5jU2xpY2VHcm91cCh0aGlzLCAnYXN5bmMtc2xpY2VzJyk7Ci0gICAgdGhpcy5ib3VuZHMgPSBuZXcgdHIuYi5SYW5nZSgpOwotICB9Ci0KLSAgVGhyZWFkLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSwKLQotICAgIGdldCBndWlkKCkgewotICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87Ci0gICAgfSwKLQotICAgIGdldCBzdGFibGVJZCgpIHsKLSAgICAgIHJldHVybiB0aGlzLnBhcmVudC5zdGFibGVJZCArICcuJyArIHRoaXMudGlkOwotICAgIH0sCi0KLSAgICBjb21wYXJlVG86IGZ1bmN0aW9uKHRoYXQpIHsKLSAgICAgIHJldHVybiBUaHJlYWQuY29tcGFyZSh0aGlzLCB0aGF0KTsKLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIGlmICh0aGlzLnNsaWNlR3JvdXAubGVuZ3RoKQotICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCB0aGlzLnNsaWNlR3JvdXApOwotICAgICAgaWYgKHRoaXMua2VybmVsU2xpY2VHcm91cC5sZW5ndGgpCi0gICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIHRoaXMua2VybmVsU2xpY2VHcm91cCk7Ci0gICAgICBpZiAodGhpcy5hc3luY1NsaWNlR3JvdXAubGVuZ3RoKQotICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCB0aGlzLmFzeW5jU2xpY2VHcm91cCk7Ci0gICAgfSwKLQotICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKLSAgICAgIGlmICh0aGlzLnRpbWVTbGljZXMgJiYgdGhpcy50aW1lU2xpY2VzLmxlbmd0aCkgewotICAgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIFRocmVhZFRpbWVTbGljZSkpCi0gICAgICAgICAgdGhpcy50aW1lU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0czogZnVuY3Rpb24oY2IpIHsKLSAgICAgIGNiKHRoaXMpOwotICAgICAgaWYgKHRoaXMuc2xpY2VHcm91cC5sZW5ndGgpCi0gICAgICAgIGNiKHRoaXMuc2xpY2VHcm91cCk7Ci0gICAgICB0aGlzLmFzeW5jU2xpY2VHcm91cC52aWV3U3ViR3JvdXBzLmZvckVhY2goY2IpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBTaGlmdHMgYWxsIHRoZSB0aW1lc3RhbXBzIGluc2lkZSB0aGlzIHRocmVhZCBmb3J3YXJkIGJ5IHRoZSBhbW91bnQKLSAgICAgKiBzcGVjaWZpZWQuCi0gICAgICovCi0gICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7Ci0gICAgICB0aGlzLnNsaWNlR3JvdXAuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpOwotCi0gICAgICBpZiAodGhpcy50aW1lU2xpY2VzKSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50aW1lU2xpY2VzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgdmFyIHNsaWNlID0gdGhpcy50aW1lU2xpY2VzW2ldOwotICAgICAgICAgIHNsaWNlLnN0YXJ0ICs9IGFtb3VudDsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICB0aGlzLmtlcm5lbFNsaWNlR3JvdXAuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpOwotICAgICAgdGhpcy5hc3luY1NsaWNlR3JvdXAuc2hpZnRUaW1lc3RhbXBzRm9yd2FyZChhbW91bnQpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyB0aHJlYWQgaXMgZW1wdHkuIElmIHRydWUsIGl0IHVzdWFsbHkgaW1wbGllcwotICAgICAqIHRoYXQgaXQgc2hvdWxkIGJlIHBydW5lZCBmcm9tIHRoZSBtb2RlbC4KLSAgICAgKi8KLSAgICBnZXQgaXNFbXB0eSgpIHsKLSAgICAgIGlmICh0aGlzLnNsaWNlR3JvdXAubGVuZ3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAodGhpcy5zbGljZUdyb3VwLm9wZW5TbGljZUNvdW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAodGhpcy50aW1lU2xpY2VzICYmIHRoaXMudGltZVNsaWNlcy5sZW5ndGgpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIGlmICh0aGlzLmtlcm5lbFNsaWNlR3JvdXAubGVuZ3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAodGhpcy5hc3luY1NsaWNlR3JvdXAubGVuZ3RoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAodGhpcy5zYW1wbGVzXy5sZW5ndGgpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBVcGRhdGVzIHRoZSBib3VuZHMgYmFzZWQgb24gdGhlCi0gICAgICogY3VycmVudCBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGhyZWFkLgotICAgICAqLwotICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7Ci0gICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOwotCi0gICAgICB0aGlzLnNsaWNlR3JvdXAudXBkYXRlQm91bmRzKCk7Ci0gICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLnNsaWNlR3JvdXAuYm91bmRzKTsKLQotICAgICAgdGhpcy5rZXJuZWxTbGljZUdyb3VwLnVwZGF0ZUJvdW5kcygpOwotICAgICAgdGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5rZXJuZWxTbGljZUdyb3VwLmJvdW5kcyk7Ci0KLSAgICAgIHRoaXMuYXN5bmNTbGljZUdyb3VwLnVwZGF0ZUJvdW5kcygpOwotICAgICAgdGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy5hc3luY1NsaWNlR3JvdXAuYm91bmRzKTsKLQotICAgICAgaWYgKHRoaXMudGltZVNsaWNlcyAmJiB0aGlzLnRpbWVTbGljZXMubGVuZ3RoKSB7Ci0gICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMudGltZVNsaWNlc1swXS5zdGFydCk7Ci0gICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKAotICAgICAgICAgICAgdGhpcy50aW1lU2xpY2VzW3RoaXMudGltZVNsaWNlcy5sZW5ndGggLSAxXS5lbmQpOwotICAgICAgfQotCi0gICAgICBpZiAodGhpcy5zYW1wbGVzXyAmJiB0aGlzLnNhbXBsZXNfLmxlbmd0aCkgewotICAgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfWzBdLnN0YXJ0KTsKLSAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUoCi0gICAgICAgICAgICB0aGlzLnNhbXBsZXNfW3RoaXMuc2FtcGxlc18ubGVuZ3RoIC0gMV0uZW5kKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgYWRkQ2F0ZWdvcmllc1RvRGljdDogZnVuY3Rpb24oY2F0ZWdvcmllc0RpY3QpIHsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGljZUdyb3VwLmxlbmd0aDsgaSsrKQotICAgICAgICBjYXRlZ29yaWVzRGljdFt0aGlzLnNsaWNlR3JvdXAuc2xpY2VzW2ldLmNhdGVnb3J5XSA9IHRydWU7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMua2VybmVsU2xpY2VHcm91cC5sZW5ndGg7IGkrKykKLSAgICAgICAgY2F0ZWdvcmllc0RpY3RbdGhpcy5rZXJuZWxTbGljZUdyb3VwLnNsaWNlc1tpXS5jYXRlZ29yeV0gPSB0cnVlOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFzeW5jU2xpY2VHcm91cC5sZW5ndGg7IGkrKykKLSAgICAgICAgY2F0ZWdvcmllc0RpY3RbdGhpcy5hc3luY1NsaWNlR3JvdXAuc2xpY2VzW2ldLmNhdGVnb3J5XSA9IHRydWU7Ci0gICAgICBpZiAodGhpcy5zYW1wbGVzXykgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2FtcGxlc18ubGVuZ3RoOyBpKyspCi0gICAgICAgICAgY2F0ZWdvcmllc0RpY3RbdGhpcy5zYW1wbGVzX1tpXS5jYXRlZ29yeV0gPSB0cnVlOwotICAgICAgfQotICAgIH0sCi0KLSAgICBhdXRvQ2xvc2VPcGVuU2xpY2VzOiBmdW5jdGlvbihvcHRfbWF4VGltZXN0YW1wKSB7Ci0gICAgICB0aGlzLnNsaWNlR3JvdXAuYXV0b0Nsb3NlT3BlblNsaWNlcyhvcHRfbWF4VGltZXN0YW1wKTsKLSAgICAgIHRoaXMua2VybmVsU2xpY2VHcm91cC5hdXRvQ2xvc2VPcGVuU2xpY2VzKG9wdF9tYXhUaW1lc3RhbXApOwotICAgIH0sCi0KLSAgICBtZXJnZUtlcm5lbFdpdGhVc2VybGFuZDogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5rZXJuZWxTbGljZUdyb3VwLmxlbmd0aCA+IDApIHsKLSAgICAgICAgdmFyIG5ld1NsaWNlcyA9IFNsaWNlR3JvdXAubWVyZ2UoCi0gICAgICAgICAgICB0aGlzLnNsaWNlR3JvdXAsIHRoaXMua2VybmVsU2xpY2VHcm91cCk7Ci0gICAgICAgIHRoaXMuc2xpY2VHcm91cC5zbGljZXMgPSBuZXdTbGljZXMuc2xpY2VzOwotICAgICAgICB0aGlzLmtlcm5lbFNsaWNlR3JvdXAgPSBuZXcgU2xpY2VHcm91cCh0aGlzKTsKLSAgICAgICAgdGhpcy51cGRhdGVCb3VuZHMoKTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuc2xpY2VHcm91cC5jcmVhdGVTdWJTbGljZXMoKTsKLSAgICAgIHRoaXMuc2FtcGxlc18gPSB0aGlzLnBhcmVudC5tb2RlbC5zYW1wbGVzLmZpbHRlcihmdW5jdGlvbihzYW1wbGUpIHsKLSAgICAgICAgcmV0dXJuIHNhbXBsZS50aHJlYWQgPT0gdGhpczsKLSAgICAgIH0sIHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtTdHJpbmd9IEEgdXNlci1mcmllbmRseSBuYW1lIGZvciB0aGlzIHRocmVhZC4KLSAgICAgKi8KLSAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKLSAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy50aWQ7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge1N0cmluZ30gVXNlciBmcmllbmRseSBkZXRhaWxzIGFib3V0IHRoaXMgdGhyZWFkLgotICAgICAqLwotICAgIGdldCB1c2VyRnJpZW5kbHlEZXRhaWxzKCkgewotICAgICAgcmV0dXJuICd0aWQ6ICcgKyB0aGlzLnRpZCArCi0gICAgICAgICAgKHRoaXMubmFtZSA/ICcsIG5hbWU6ICcgKyB0aGlzLm5hbWUgOiAnJyk7Ci0gICAgfSwKLQotICAgIGdldFNldHRpbmdzS2V5OiBmdW5jdGlvbigpIHsKLSAgICAgIGlmICghdGhpcy5uYW1lKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgdmFyIHBhcmVudEtleSA9IHRoaXMucGFyZW50LmdldFNldHRpbmdzS2V5KCk7Ci0gICAgICBpZiAoIXBhcmVudEtleSkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHJldHVybiBwYXJlbnRLZXkgKyAnLicgKyB0aGlzLm5hbWU7Ci0gICAgfSwKLQotICAgIC8qCi0gICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHNsaWNlIGluIHRoZSB0aW1lU2xpY2VzIGFycmF5LCBvciB1bmRlZmluZWQuCi0gICAgICovCi0gICAgaW5kZXhPZlRpbWVTbGljZTogZnVuY3Rpb24odGltZVNsaWNlKSB7Ci0gICAgICB2YXIgaSA9IHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSgKLSAgICAgICAgICB0aGlzLnRpbWVTbGljZXMsCi0gICAgICAgICAgZnVuY3Rpb24oc2xpY2UpIHsgcmV0dXJuIHNsaWNlLnN0YXJ0OyB9LAotICAgICAgICAgIHRpbWVTbGljZS5zdGFydCk7Ci0gICAgICBpZiAodGhpcy50aW1lU2xpY2VzW2ldICE9PSB0aW1lU2xpY2UpCi0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICByZXR1cm4gaTsKLSAgICB9LAotCi0gICAgZ2V0U2NoZWR1bGluZ1N0YXRzRm9yUmFuZ2U6IGZ1bmN0aW9uKHN0YXJ0LCBlbmQpIHsKLSAgICAgIHZhciBzdGF0cyA9IHt9OwotCi0gICAgICBpZiAoIXRoaXMudGltZVNsaWNlcykgcmV0dXJuIHN0YXRzOwotCi0gICAgICBmdW5jdGlvbiBhZGRTdGF0c0ZvclNsaWNlKHRocmVhZFRpbWVTbGljZSkgewotICAgICAgICB2YXIgb3ZlcmxhcFN0YXJ0ID0gTWF0aC5tYXgodGhyZWFkVGltZVNsaWNlLnN0YXJ0LCBzdGFydCk7Ci0gICAgICAgIHZhciBvdmVybGFwRW5kID0gTWF0aC5taW4odGhyZWFkVGltZVNsaWNlLmVuZCwgZW5kKTsKLSAgICAgICAgdmFyIHNjaGVkdWxpbmdTdGF0ZSA9IHRocmVhZFRpbWVTbGljZS5zY2hlZHVsaW5nU3RhdGU7Ci0KLSAgICAgICAgaWYgKCEoc2NoZWR1bGluZ1N0YXRlIGluIHN0YXRzKSkKLSAgICAgICAgICBzdGF0c1tzY2hlZHVsaW5nU3RhdGVdID0gMDsKLSAgICAgICAgc3RhdHNbc2NoZWR1bGluZ1N0YXRlXSArPSBvdmVybGFwRW5kIC0gb3ZlcmxhcFN0YXJ0OwotICAgICAgfQotCi0gICAgICB0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKHRoaXMudGltZVNsaWNlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5zdGFydDsgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5lbmQ7IH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFN0YXRzRm9yU2xpY2UpOwotICAgICAgcmV0dXJuIHN0YXRzOwotICAgIH0sCi0KLSAgICBnZXQgc2FtcGxlcygpIHsKLSAgICAgIHJldHVybiB0aGlzLnNhbXBsZXNfOwotICAgIH0KLSAgfTsKLQotICAvKioKLSAgICogQ29tcGFyaXNvbiBiZXR3ZWVuIHRocmVhZHMgdGhhdCBvcmRlcnMgZmlyc3QgYnkgcGFyZW50LmNvbXBhcmVUbywKLSAgICogdGhlbiBieSBuYW1lcywgdGhlbiBieSB0aWQuCi0gICAqLwotICBUaHJlYWQuY29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsKLSAgICB2YXIgdG1wID0geC5wYXJlbnQuY29tcGFyZVRvKHkucGFyZW50KTsKLSAgICBpZiAodG1wKQotICAgICAgcmV0dXJuIHRtcDsKLQotICAgIHRtcCA9IHguc29ydEluZGV4IC0geS5zb3J0SW5kZXg7Ci0gICAgaWYgKHRtcCkKLSAgICAgIHJldHVybiB0bXA7Ci0KLSAgICB0bXAgPSB0ci5iLmNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcygKLSAgICAgICAgeC5uYW1lLCB5Lm5hbWUsCi0gICAgICAgIGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHgubG9jYWxlQ29tcGFyZSh5KTsgfSk7Ci0gICAgaWYgKHRtcCkKLSAgICAgIHJldHVybiB0bXA7Ci0KLSAgICByZXR1cm4geC50aWQgLSB5LnRpZDsKLSAgfTsKLQotICByZXR1cm4gewotICAgIFRocmVhZDogVGhyZWFkCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC90aHJlYWRfc2xpY2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGhyZWFkX3NsaWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNWY4MGMuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC90aHJlYWRfc2xpY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NsaWNlLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFRocmVhZCBjbGFzcy4KLSAqLwotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0gIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOwotCi0gIC8qKgotICAgKiBBIFRocmVhZFNsaWNlIHJlcHJlc2VudHMgYW4gaW50ZXJ2YWwgb2YgdGltZSBvbiBhIHRocmVhZCByZXNvdXJjZQotICAgKiB3aXRoIGFzc29jaWF0ZWQgbmVzdGluZ2VkIHNsaWNlIGluZm9ybWF0aW9uLgotICAgKgotICAgKiBUaHJlYWRTbGljZXMgYXJlIHR5cGljYWxseSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB0cmFjZSBldmVudCBwYWlyIG9uIGEKLSAgICogc3BlY2lmaWMgdGhyZWFkLgotICAgKiBGb3IgZXhhbXBsZSwKLSAgICogICBUUkFDRV9FVkVOVF9CRUdJTjEoIngiLCJteUFyZyIsIDcpIGF0IHRpbWU9MC4xbXMKLSAgICogICBUUkFDRV9FVkVOVF9FTkQwKCkgICAgICAgICAgICAgICAgIGF0IHRpbWU9MC4zbXMKLSAgICogVGhpcyByZXN1bHRzIGluIGEgc2luZ2xlIHNsaWNlIGZyb20gMC4xIHdpdGggZHVyYXRpb24gMC4yIG9uIGEKLSAgICogc3BlY2lmaWMgdGhyZWFkLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFRocmVhZFNsaWNlKGNhdCwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgIG9wdF9jcHVTdGFydCwgb3B0X2NwdUR1cmF0aW9uKSB7Ci0gICAgU2xpY2UuY2FsbCh0aGlzLCBjYXQsIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgYXJncywgb3B0X2R1cmF0aW9uLAotICAgICAgICAgICAgICAgb3B0X2NwdVN0YXJ0LCBvcHRfY3B1RHVyYXRpb24pOwotICAgIC8vIERvIG5vdCBtb2RpZnkgdGhpcyBkaXJlY3RseS4KLSAgICAvLyBzdWJTbGljZXMgaXMgY29uZmlndXJlZCBieSBTbGljZUdyb3VwLnJlYnVpbGRTdWJSb3dzXy4KLSAgICB0aGlzLnN1YlNsaWNlcyA9IFtdOwotICB9Ci0KLSAgVGhyZWFkU2xpY2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogU2xpY2UucHJvdG90eXBlCi0gIH07Ci0KLSAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKLSAgICAgIFRocmVhZFNsaWNlLAotICAgICAgewotICAgICAgICBuYW1lOiAnc2xpY2UnLAotICAgICAgICBwbHVyYWxOYW1lOiAnc2xpY2VzJywKLSAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItYy1hLXNpbmdsZS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnLAotICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLWMtYS1tdWx0aS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnCi0gICAgICB9KTsKLQotICByZXR1cm4gewotICAgIFRocmVhZFNsaWNlOiBUaHJlYWRTbGljZQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGhyZWFkX3RpbWVfc2xpY2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGhyZWFkX3RpbWVfc2xpY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI1MDhkNy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3RocmVhZF90aW1lX3NsaWNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08IS0tCi1Db3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi1mb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLS0+Ci0KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2UuaHRtbCI+Ci0KLTxzY3JpcHQ+Ci0ndXNlIHN0cmljdCc7Ci0KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKLQotCi0gIHZhciBTQ0hFRFVMSU5HX1NUQVRFID0gewotICAgIERFQlVHOiAnRGVidWcnLAotICAgIEVYSVRfREVBRDogJ0V4aXQgRGVhZCcsCi0gICAgUlVOTkFCTEU6ICdSdW5uYWJsZScsCi0gICAgUlVOTklORzogJ1J1bm5pbmcnLAotICAgIFNMRUVQSU5HOiAnU2xlZXBpbmcnLAotICAgIFNUT1BQRUQ6ICdTdG9wcGVkJywKLSAgICBUQVNLX0RFQUQ6ICdUYXNrIERlYWQnLAotICAgIFVOSU5UUl9TTEVFUDogJ1VuaW50ZXJydXB0aWJsZSBTbGVlcCcsCi0gICAgVU5JTlRSX1NMRUVQX1dBS0VfS0lMTDogJ1VuaW50ZXJydXB0aWJsZSBTbGVlcCB8IFdha2VLaWxsJywKLSAgICBVTklOVFJfU0xFRVBfV0FLSU5HOiAnVW5pbnRlcnJ1cHRpYmxlIFNsZWVwIHwgV2FraW5nJywKLSAgICBVTktOT1dOOiAnVU5LTk9XTicsCi0gICAgV0FLRV9LSUxMOiAnV2FrZWtpbGwnLAotICAgIFdBS0lORzogJ1dha2luZycsCi0gICAgWk9NQklFOiAnWm9tYmllJwotICB9OwotCi0gIC8qKgotICAgKiBBIFRocmVhZFRpbWVTbGljZSBpcyBhIHNsaWNlIG9mIHRpbWUgb24gYSBzcGVjaWZpYyB0aHJlYWQgd2hlcmUgdGhhdCB0aHJlYWQKLSAgICogd2FzIHJ1bm5pbmcgb24gYSBzcGVjaWZpYyBDUFUsIG9yIGluIGEgc3BlY2lmaWMgc2xlZXAgc3RhdGUuCi0gICAqCi0gICAqIEFzIGEgdGhyZWFkIHN3aXRjaGVzIG1vdmVzIHRocm91Z2ggaXRzIGxpZmUsIGl0IHNvbWV0aW1lcyBnb2VzIHRvIHNsZWVwIGFuZAotICAgKiBjYW4ndCBydW4uIE90aGVyIHRpbWVzLCBpdHMgcnVubmFibGUgYnV0IGlzbid0IGFjdHVhbGx5IGFzc2lnbmVkIHRvIGEgQ1BVLgotICAgKiBGaW5hbGx5LCBzb21ldGltZXMgaXQgZ2V0cyBwdXQgb24gYSBDUFUgdG8gYWN0dWFsbHkgZXhlY3V0ZS4gRWFjaCBvZiB0aGVzZQotICAgKiBzdGF0ZXMgaXMgcmVwcmVzZW50ZWQgYnkgYSBUaHJlYWRUaW1lU2xpY2U6Ci0gICAqCi0gICAqICAgU2xlZXBpbmcgb3IgcnVubmFibGU6IGNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nIGlzIHVuZGVmaW5lZAotICAgKiAgIFJ1bm5pbmc6ICBjcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZyBpcyBzZXQuCi0gICAqCi0gICAqIEBjb25zdHJ1Y3RvcgotICAgKi8KLSAgZnVuY3Rpb24gVGhyZWFkVGltZVNsaWNlKHRocmVhZCwgc2NoZWR1bGluZ1N0YXRlLCBjYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgYXJncywgb3B0X2R1cmF0aW9uKSB7Ci0gICAgU2xpY2UuY2FsbCh0aGlzLCBjYXQsIHNjaGVkdWxpbmdTdGF0ZSwKLSAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29sb3JGb3JTdGF0ZV8oc2NoZWR1bGluZ1N0YXRlKSwKLSAgICAgICAgc3RhcnQsIGFyZ3MsIG9wdF9kdXJhdGlvbik7Ci0gICAgdGhpcy50aHJlYWQgPSB0aHJlYWQ7Ci0gICAgdGhpcy5zY2hlZHVsaW5nU3RhdGUgPSBzY2hlZHVsaW5nU3RhdGU7Ci0gICAgdGhpcy5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZyA9IHVuZGVmaW5lZDsKLSAgfQotCi0gIFRocmVhZFRpbWVTbGljZS5wcm90b3R5cGUgPSB7Ci0gICAgX19wcm90b19fOiBTbGljZS5wcm90b3R5cGUsCi0KLSAgICBnZXRDb2xvckZvclN0YXRlXzogZnVuY3Rpb24oc3RhdGUpIHsKLSAgICAgIHZhciBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lID0gdHIuYi51aS5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lOwotICAgICAgc3dpdGNoIChzdGF0ZSkgewotICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuUlVOTkFCTEU6Ci0gICAgICAgICAgcmV0dXJuIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ3RocmVhZF9zdGF0ZV9ydW5uYWJsZScpOwotICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORzoKLSAgICAgICAgICByZXR1cm4gZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgndGhyZWFkX3N0YXRlX3J1bm5pbmcnKTsKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HOgotICAgICAgICAgIHJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfc2xlZXBpbmcnKTsKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLkRFQlVHOgotICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuRVhJVF9ERUFEOgotICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuU1RPUFBFRDoKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlRBU0tfREVBRDoKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUDoKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUF9XQUtFX0tJTEw6Ci0gICAgICAgIGNhc2UgU0NIRURVTElOR19TVEFURS5VTklOVFJfU0xFRVBfV0FLSU5HOgotICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuVU5LTk9XTjoKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLldBS0VfS0lMTDoKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLldBS0lORzoKLSAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlpPTUJJRToKLSAgICAgICAgICByZXR1cm4gZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgndGhyZWFkX3N0YXRlX2lvd2FpdCcpOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIHJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfdW5rbm93bicpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBnZXQgYW5hbHlzaXNUeXBlTmFtZSgpIHsKLSAgICAgIHJldHVybiAndHIuYy5hbmFseXNpcy5UaHJlYWRUaW1lU2xpY2UnOwotICAgIH0sCi0KLSAgICBnZXRBc3NvY2lhdGVkQ3B1U2xpY2U6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKCF0aGlzLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgdmFyIGNwdVNsaWNlcyA9IHRoaXMuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcuc2xpY2VzOwotICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjcHVTbGljZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIGNwdVNsaWNlID0gY3B1U2xpY2VzW2ldOwotICAgICAgICBpZiAoY3B1U2xpY2Uuc3RhcnQgIT09IHRoaXMuc3RhcnQpCi0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChjcHVTbGljZS5kdXJhdGlvbiAhPT0gdGhpcy5kdXJhdGlvbikKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgcmV0dXJuIGNwdVNsaWNlOwotICAgICAgfQotICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICB9LAotCi0gICAgZ2V0Q3B1U2xpY2VUaGF0VG9va0NwdTogZnVuY3Rpb24oKSB7Ci0gICAgICBpZiAodGhpcy5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZykKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIHZhciBjdXJJbmRleCA9IHRoaXMudGhyZWFkLmluZGV4T2ZUaW1lU2xpY2UodGhpcyk7Ci0gICAgICB2YXIgY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmc7Ci0gICAgICB3aGlsZSAoY3VySW5kZXggPj0gMCkgewotICAgICAgICB2YXIgY3VyU2xpY2UgPSB0aGlzLnRocmVhZC50aW1lU2xpY2VzW2N1ckluZGV4XTsKLSAgICAgICAgaWYgKCFjdXJTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZykgewotICAgICAgICAgIGN1ckluZGV4LS07Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcgPSBjdXJTbGljZS5nZXRBc3NvY2lhdGVkQ3B1U2xpY2UoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgICBpZiAoIWNwdVNsaWNlV2hlbkxhc3RSdW5uaW5nKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotCi0gICAgICB2YXIgY3B1ID0gY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcuY3B1OwotICAgICAgdmFyIGluZGV4T2ZTbGljZU9uQ3B1V2hlbkxhc3RSdW5uaW5nID0KLSAgICAgICAgICBjcHUuaW5kZXhPZihjcHVTbGljZVdoZW5MYXN0UnVubmluZyk7Ci0gICAgICB2YXIgbmV4dFJ1bm5pbmdTbGljZSA9IGNwdS5zbGljZXNbaW5kZXhPZlNsaWNlT25DcHVXaGVuTGFzdFJ1bm5pbmcgKyAxXTsKLSAgICAgIGlmICghbmV4dFJ1bm5pbmdTbGljZSkKLSAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgIGlmIChNYXRoLmFicyhuZXh0UnVubmluZ1NsaWNlLnN0YXJ0IC0gY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcuZW5kKSA8Ci0gICAgICAgICAgMC4wMDAwMSkKLSAgICAgICAgcmV0dXJuIG5leHRSdW5uaW5nU2xpY2U7Ci0gICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgIH0KLSAgfTsKLQotICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAotICAgICAgVGhyZWFkVGltZVNsaWNlLAotICAgICAgewotICAgICAgICBuYW1lOiAndGhyZWFkVGltZVNsaWNlJywKLSAgICAgICAgcGx1cmFsTmFtZTogJ3RocmVhZFRpbWVTbGljZXMnLAotICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtc2luZ2xlLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3JywKLSAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci1jLWEtbXVsdGktdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXcnCi0gICAgICB9KTsKLQotCi0gIHJldHVybiB7Ci0gICAgVGhyZWFkVGltZVNsaWNlOiBUaHJlYWRUaW1lU2xpY2UsCi0gICAgU0NIRURVTElOR19TVEFURTogU0NIRURVTElOR19TVEFURQotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQwZTMwMy4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3RpbWVkX2V2ZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTwhLS0KLUNvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLWZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tLT4KLQotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ndWlkLmh0bWwiPgotCi08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotCi0vKioKLSAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFRpbWVkRXZlbnQgY2xhc3MuCi0gKi8KLXRyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQSBUaW1lZEV2ZW50IGlzIHRoZSBiYXNlIHR5cGUgZm9yIGFueSBwaWVjZSBvZiBkYXRhIGluIHRoZSB0cmFjZSBtb2RlbCB3aXRoCi0gICAqIGEgc3BlY2lmaWMgc3RhcnQgYW5kIGR1cmF0aW9uLgotICAgKgotICAgKiBAY29uc3RydWN0b3IKLSAgICovCi0gIGZ1bmN0aW9uIFRpbWVkRXZlbnQoc3RhcnQpIHsKLSAgICB0ci5tb2RlbC5FdmVudC5jYWxsKHRoaXMpOwotICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKLSAgICB0aGlzLmR1cmF0aW9uID0gMDsKLSAgICB0aGlzLmNwdVN0YXJ0ID0gdW5kZWZpbmVkOwotICAgIHRoaXMuY3B1RHVyYXRpb24gPSB1bmRlZmluZWQ7Ci0gIH0KLQotICBUaW1lZEV2ZW50LnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50LnByb3RvdHlwZSwKLQotICAgIGdldCBlbmQoKSB7Ci0gICAgICByZXR1cm4gdGhpcy5zdGFydCArIHRoaXMuZHVyYXRpb247Ci0gICAgfSwKLQotICAgIGFkZEJvdW5kc1RvUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlKSB7Ci0gICAgICByYW5nZS5hZGRWYWx1ZSh0aGlzLnN0YXJ0KTsKLSAgICAgIHJhbmdlLmFkZFZhbHVlKHRoaXMuZW5kKTsKLSAgICB9LAotCi0gICAgYm91bmRzOiBmdW5jdGlvbih0aGF0KSB7Ci0gICAgICAvLyBEdWUgdG8gaW5hY2N1cmFjeSBvZiBmbG9hdGluZy1wb2ludCBjYWxjdWxhdGlvbiwgdGhlIGVuZCB0aW1lcyBvZgotICAgICAgLy8gc2xpY2VzIGZyb20gYSBCL0UgcGFpciAod2hvc2UgZW5kID0gc3RhcnQgKyBvcmlnaW5hbF9lbmQgLSBzdGFydCkKLSAgICAgIC8vIGFuZCBhbiBYIGV2ZW50ICh3aG9zZSBlbmQgPSBzdGFydCArIGR1cmF0aW9uKSBhdCB0aGUgc2FtZSB0aW1lIG1heQotICAgICAgLy8gYmVjb21lIG5vdCBlcXVhbC4gUm91bmQgYmFjayB0byBtaWNyb3MgKHdoaWNoIGlzIHRoZSBzb3VyY2UgZGF0YQotICAgICAgLy8gcHJlY2lzaW9uKSB0byBlbnN1cmUgZXF1YWxpdHkgYmVsb3cuCi0gICAgICB2YXIgdGhpc19lbmRfbWljcm9zID0gTWF0aC5yb3VuZCh0aGlzLmVuZCAqIDEwMDApOwotICAgICAgdmFyIHRoYXRfZW5kX21pY3JvcyA9IE1hdGgucm91bmQodGhhdC5lbmQgKiAxMDAwKTsKLSAgICAgIHJldHVybiB0aGlzLnN0YXJ0IDw9IHRoYXQuc3RhcnQgJiYgdGhpc19lbmRfbWljcm9zID49IHRoYXRfZW5kX21pY3JvczsKLSAgICB9Ci0gIH07Ci0KLSAgcmV0dXJuIHsKLSAgICBUaW1lZEV2ZW50OiBUaW1lZEV2ZW50Ci0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC94X21hcmtlcl9hbm5vdGF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3hfbWFya2VyX2Fubm90YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYwOTRmNi4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3hfbWFya2VyX2Fubm90YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotCi08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2Fubm90YXRpb24uaHRtbCI+Ci08bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdHJhY2tzL3hfbWFya2VyX2Fubm90YXRpb25fdmlldy5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotdHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7Ci0KLSAgZnVuY3Rpb24gWE1hcmtlckFubm90YXRpb24odGltZXN0YW1wKSB7Ci0gICAgdHIubW9kZWwuQW5ub3RhdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwotCi0gICAgdGhpcy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgdGhpcy5zdHJva2VTdHlsZSA9ICdyZ2JhKDAsIDAsIDI1NSwgMC41KSc7Ci0gIH0KLQotICBYTWFya2VyQW5ub3RhdGlvbi5mcm9tRGljdCA9IGZ1bmN0aW9uKGRpY3QpIHsKLSAgICByZXR1cm4gbmV3IFhNYXJrZXJBbm5vdGF0aW9uKGRpY3QuYXJncy50aW1lc3RhbXApOwotICB9Ci0KLSAgWE1hcmtlckFubm90YXRpb24ucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIubW9kZWwuQW5ub3RhdGlvbi5wcm90b3R5cGUsCi0KLSAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHsKLSAgICAgICAgdHlwZU5hbWU6ICd4bWFya2VyJywKLSAgICAgICAgYXJnczogewotICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy50aW1lc3RhbXAKLSAgICAgICAgfQotICAgICAgfTsKLSAgICB9LAotCi0gICAgY3JlYXRlVmlld186IGZ1bmN0aW9uKHZpZXdwb3J0KSB7Ci0gICAgICByZXR1cm4gbmV3IHRyLmMuYW5ub3RhdGlvbnMuWE1hcmtlckFubm90YXRpb25WaWV3KHZpZXdwb3J0LCB0aGlzKTsKLSAgICB9Ci0gIH07Ci0KLSAgdHIubW9kZWwuQW5ub3RhdGlvbi5yZWdpc3RlcigKLSAgICAgIFhNYXJrZXJBbm5vdGF0aW9uLCB7dHlwZU5hbWU6ICd4bWFya2VyJ30pOwotCi0gIHJldHVybiB7Ci0gICAgWE1hcmtlckFubm90YXRpb246IFhNYXJrZXJBbm5vdGF0aW9uCi0gIH07Ci19KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci90cmFjZV92aWV3ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvdHJhY2Vfdmlld2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2NGY4MzIuLjAwMDAwMDAKLS0tIGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci90cmFjZV92aWV3ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLQotQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0tPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvYmFzZS91aS9jb21tb24uY3NzIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91aS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90aW1lbGluZV92aWV3Lmh0bWwiPgotPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KLQotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLXRyLmV4cG9ydFRvKCd0cicsIGZ1bmN0aW9uKCkgewotICAvKioKLSAgICogQ3JlYXRlcyBhIHRyYWNlIHZpZXdlciBhbmQsIGlmIGdpdmVuLCBsb2FkcyB0aGUgcHJvdmlkZWQgVVJMLgotICAgKgotICAgKiBGb3IgbW9yZSBhZHZhbmNlZCB1c2FnZSwgY29uc2lkZXIgdXNpbmcgVGltZWxpbmVWaWV3IGFuZCBNb2RlbAotICAgKiBkaXJlY3RseS4KLSAgICoKLSAgICogUmV0dXJucyBhbiBIVE1MRWxlbWVudCB0aGF0IGlzIHRoZSB0cmFjZS12aXdlci4KLSAgICovCi0gIHZhciBUcmFjZVZpZXdlciA9IHRyLmIudWkuZGVmaW5lKCd0cmFjZS12aWV3ZXInLCB0ci5jLlRpbWVsaW5lVmlldyk7Ci0KLSAgVHJhY2VWaWV3ZXIucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogdHIuYy5UaW1lbGluZVZpZXcucHJvdG90eXBlLAotCi0gICAgZGVjb3JhdGU6IGZ1bmN0aW9uKG9wdF91cmwpIHsKLSAgICAgIHRyLmMuVGltZWxpbmVWaWV3LnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMpOwotCi0gICAgICBpZiAob3B0X3VybCA9PT0gdW5kZWZpbmVkKQotICAgICAgICByZXR1cm47Ci0gICAgICB2YXIgdXJsID0gb3B0X3VybDsKLSAgICAgIHZhciB0aGF0ID0gdGhpczsKLQotICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgICAgICB2YXIgaXNfYmluYXJ5ID0gL1suXWd6JC8udGVzdCh1cmwpIHx8IC9bLl16aXAkLy50ZXN0KHVybCk7Ci0gICAgICAgIHJlcS5vdmVycmlkZU1pbWVUeXBlKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7Ci0gICAgICAgIHJlcS5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOwotICAgICAgICBpZiAoaXNfYmluYXJ5KQotICAgICAgICAgIHJlcS5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAgICAgICByZXEub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oYUV2dCkgewotICAgICAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0KSB7Ci0gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgaWYgKHJlcS5zdGF0dXMgPT0gMjAwKSB7Ci0gICAgICAgICAgICAgICAgb25SZXN1bHQoaXNfYmluYXJ5ID8gcmVxLnJlc3BvbnNlIDogcmVxLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgb25SZXN1bHRGYWlsKHJlcS5zdGF0dXMpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LCAwKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICByZXEuc2VuZChudWxsKTsKLQotICAgICAgZnVuY3Rpb24gb25SZXN1bHRGYWlsKGVycikgewotICAgICAgICB2YXIgb3ZlcmxheSA9IG5ldyB0ci5iLnVpLk92ZXJsYXkoKTsKLSAgICAgICAgb3ZlcmxheS50ZXh0Q29udGVudCA9IGVyciArICc6ICcgKyB1cmwgKyAnIGNvdWxkIG5vdCBiZSBsb2FkZWQnOwotICAgICAgICBvdmVybGF5LnRpdGxlID0gJ0ZhaWxlZCB0byBmZXRjaCBkYXRhJzsKLSAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKLSAgICAgIH0KLQotICAgICAgdmFyIG1vZGVsOwotICAgICAgZnVuY3Rpb24gb25SZXN1bHQocmVzdWx0KSB7Ci0gICAgICAgIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7Ci0gICAgICAgIHZhciBwID0gbW9kZWwuaW1wb3J0VHJhY2VzV2l0aFByb2dyZXNzRGlhbG9nKFtyZXN1bHRdLCB0cnVlKTsKLSAgICAgICAgcC50aGVuKG9uTW9kZWxMb2FkZWQsIG9uSW1wb3J0RmFpbCk7Ci0gICAgICB9Ci0KLSAgICAgIGZ1bmN0aW9uIG9uTW9kZWxMb2FkZWQoKSB7Ci0gICAgICAgIHRoYXQubW9kZWwgPSBtb2RlbDsKLSAgICAgICAgdGhhdC52aWV3VGl0bGUgPSB1cmw7Ci0gICAgICAgIGlmICh0aGF0LnRpbWVsaW5lKQotICAgICAgICAgIHRoYXQudGltZWxpbmUuZm9jdXNFbGVtZW50ID0gdGhhdDsKLSAgICAgIH0KLQotICAgICAgZnVuY3Rpb24gb25JbXBvcnRGYWlsKCkgewotICAgICAgICB2YXIgb3ZlcmxheSA9IG5ldyB0ci5iLnVpLk92ZXJsYXkoKTsKLSAgICAgICAgb3ZlcmxheS50ZXh0Q29udGVudCA9IHRyLmIubm9ybWFsaXplRXhjZXB0aW9uKGVycikubWVzc2FnZTsKLSAgICAgICAgb3ZlcmxheS50aXRsZSA9ICdJbXBvcnQgZXJyb3InOwotICAgICAgICBvdmVybGF5LnZpc2libGUgPSB0cnVlOwotICAgICAgfQotICAgIH0KLSAgfTsKLQotICByZXR1cm4gewotICAgIFRyYWNlVmlld2VyOiBUcmFjZVZpZXdlcgotICB9OwotfSk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvdHJhY2Vfdmlld2VyX3Byb2plY3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL3RyYWNlX3ZpZXdlcl9wcm9qZWN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmNjZDkxLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvdHJhY2Vfdmlld2VyX3Byb2plY3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLWltcG9ydCBzeXMKLWltcG9ydCBvcwotaW1wb3J0IHJlCi0KLQotZnJvbSB0dmNtIGltcG9ydCBwcm9qZWN0IGFzIHByb2plY3RfbW9kdWxlCi0KLQotZGVmIF9GaW5kQWxsRmlsZXNSZWN1cnNpdmUoc291cmNlX3BhdGhzKToKLSAgYWxsX2ZpbGVuYW1lcyA9IHNldCgpCi0gIGZvciBzb3VyY2VfcGF0aCBpbiBzb3VyY2VfcGF0aHM6Ci0gICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gb3Mud2Fsayhzb3VyY2VfcGF0aCk6Ci0gICAgICBmb3IgZiBpbiBmaWxlbmFtZXM6Ci0gICAgICAgIGlmIGYuc3RhcnRzd2l0aCgnLicpOgotICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIHggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGRpcnBhdGgsIGYpKQotICAgICAgICBhbGxfZmlsZW5hbWVzLmFkZCh4KQotICByZXR1cm4gYWxsX2ZpbGVuYW1lcwotCi1kZWYgX0lzRmlsZW5hbWVBVGVzdChsb2FkZXIsIHgpOgotICBpZiB4LmVuZHN3aXRoKCdfdGVzdC5qcycpOgotICAgIHJldHVybiBUcnVlCi0KLSAgaWYgeC5lbmRzd2l0aCgnX3Rlc3QuaHRtbCcpOgotICAgIHJldHVybiBUcnVlCi0KLSAgaWYgeC5lbmRzd2l0aCgnX3VuaXR0ZXN0LmpzJyk6Ci0gICAgcmV0dXJuIFRydWUKLQotICBpZiB4LmVuZHN3aXRoKCdfdW5pdHRlc3QuaHRtbCcpOgotICAgIHJldHVybiBUcnVlCi0KLSAgIyBUT0RPKG5kdWNhKTogQWRkIGNvbnRlbnQgdGVzdD8KLSAgcmV0dXJuIEZhbHNlCi0KLWNsYXNzIFRyYWNlVmlld2VyUHJvamVjdChwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KToKLSAgdHJhY2Vfdmlld2VyX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJykpCi0KLSAgc3JjX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgdHJhY2Vfdmlld2VyX3BhdGgsICd0cmFjZV92aWV3ZXInKSkKLQotICBleHRyYXNfcGF0aCA9IG9zLnBhdGguam9pbihzcmNfcGF0aCwgJ2V4dHJhcycpCi0KLSAgdHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgdHJhY2Vfdmlld2VyX3BhdGgsICd0aGlyZF9wYXJ0eScpKQotCi0gIGpzemlwX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgdHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGgsICdqc3ppcCcpKQotCi0gIGdsbWF0cml4X3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgdHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGgsICdnbC1tYXRyaXgnLCAnZGlzdCcpKQotCi0gIGQzX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgdHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGgsICdkMycpKQotCi0gIGNoYWlfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICB0cmFjZV92aWV3ZXJfdGhpcmRfcGFydHlfcGF0aCwgJ2NoYWknKSkKLQotICBtb2NoYV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbigKLSAgICAgIHRyYWNlX3ZpZXdlcl90aGlyZF9wYXJ0eV9wYXRoLCAnbW9jaGEnKSkKLQotICB0ZXN0X2RhdGFfcGF0aCA9IG9zLnBhdGguam9pbih0cmFjZV92aWV3ZXJfcGF0aCwgJ3Rlc3RfZGF0YScpCi0gIHNrcF9kYXRhX3BhdGggPSBvcy5wYXRoLmpvaW4odHJhY2Vfdmlld2VyX3BhdGgsICdza3BfZGF0YScpCi0KLSAgcmpzbWluX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgdHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGgsICd0dmNtJywgJ3RoaXJkX3BhcnR5JywgJ3Jqc21pbicpKQotICByY3NzbWluX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAotICAgICAgdHJhY2Vfdmlld2VyX3RoaXJkX3BhcnR5X3BhdGgsICd0dmNtJywgJ3RoaXJkX3BhcnR5JywgJ3Jjc3NtaW4nKSkKLQotICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICBzdXBlcihUcmFjZVZpZXdlclByb2plY3QsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKLSAgICBzZWxmLnNvdXJjZV9wYXRocy5hcHBlbmQoc2VsZi5zcmNfcGF0aCkKLSAgICBzZWxmLnNvdXJjZV9wYXRocy5hcHBlbmQoc2VsZi50cmFjZV92aWV3ZXJfdGhpcmRfcGFydHlfcGF0aCkKLSAgICBzZWxmLnNvdXJjZV9wYXRocy5hcHBlbmQoc2VsZi5qc3ppcF9wYXRoKQotICAgIHNlbGYuc291cmNlX3BhdGhzLmFwcGVuZChzZWxmLmdsbWF0cml4X3BhdGgpCi0gICAgc2VsZi5zb3VyY2VfcGF0aHMuYXBwZW5kKHNlbGYuZDNfcGF0aCkKLSAgICBzZWxmLnNvdXJjZV9wYXRocy5hcHBlbmQoc2VsZi5jaGFpX3BhdGgpCi0gICAgc2VsZi5zb3VyY2VfcGF0aHMuYXBwZW5kKHNlbGYubW9jaGFfcGF0aCkKLQotICAgIHNlbGYubm9uX21vZHVsZV9odG1sX2ZpbGVzLmV4dGVuZFJlbChzZWxmLnRyYWNlX3ZpZXdlcl9wYXRoLCBbCi0gICAgICAnYmluL2luZGV4Lmh0bWwnLAotICAgICAgJ3Rlc3RfZGF0YS9hbmRyb2lkX3N5c3RyYWNlLmh0bWwnLAotICAgIF0pCi0gICAgZm9yIGNvbmZpZ19uYW1lIGluIHNlbGYuR2V0Q29uZmlnTmFtZXMoKToKLSAgICAgIHNlbGYubm9uX21vZHVsZV9odG1sX2ZpbGVzLmFwcGVuZFJlbChzZWxmLnRyYWNlX3ZpZXdlcl9wYXRoLAotICAgICAgICAnYmluL3RyYWNlX3ZpZXdlcl8lcy5odG1sJyAlIGNvbmZpZ19uYW1lKQotCi0gICAgIyBJZ29yZSB0aGUgb2xkIHZpZXdlciBpZiBpdCBzdGlsbCBleGlzdHMuCi0gICAgc2VsZi5ub25fbW9kdWxlX2h0bWxfZmlsZXMuYXBwZW5kUmVsKHNlbGYudHJhY2Vfdmlld2VyX3BhdGgsCi0gICAgICAnYmluL3RyYWNlX3ZpZXdlci5odG1sJykKLQotICAgIHNlbGYubm9uX21vZHVsZV9odG1sX2ZpbGVzLmV4dGVuZFJlbChzZWxmLnRyYWNlX3ZpZXdlcl90aGlyZF9wYXJ0eV9wYXRoLCBbCi0gICAgICAnZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9oZWFkZXIuaHRtbCcsCi0gICAgICAnZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9pbmRleC5odG1sJywKLSAgICBdKQotCi0gICAgIyBJZ25vcmUgZHJpdmUgaHRtbCBkdWUgdG8gZW1iZWRkZWQgZXh0ZXJuYWwgc2NyaXB0IHJlc291cmNlcy4KLSAgICBzZWxmLm5vbl9tb2R1bGVfaHRtbF9maWxlcy5hcHBlbmRSZWwoc2VsZi5zcmNfcGF0aCwKLSAgICAgICdleHRyYXMvZHJpdmUvaW5kZXguaHRtbCcpCi0KLSAgICByanNtaW5fZG9jX2ZpbGVzID0gX0ZpbmRBbGxGaWxlc1JlY3Vyc2l2ZSgKLSAgICAgICAgW29zLnBhdGguam9pbihzZWxmLnJqc21pbl9wYXRoLCAnZG9jcycsICdhcGlkb2MnKV0pCi0gICAgcmpzbWluX2RvY19maWxlcyA9IFtvcy5wYXRoLnJlbHBhdGgoeCwgc2VsZi5yanNtaW5fcGF0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiByanNtaW5fZG9jX2ZpbGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgeC5lbmRzd2l0aCgnLmh0bWwnKV0KLSAgICBzZWxmLm5vbl9tb2R1bGVfaHRtbF9maWxlcy5leHRlbmRSZWwoc2VsZi5yanNtaW5fcGF0aCwgcmpzbWluX2RvY19maWxlcykKLQotICAgIHJjc3NtaW5fZG9jX2ZpbGVzID0gX0ZpbmRBbGxGaWxlc1JlY3Vyc2l2ZSgKLSAgICAgICAgW29zLnBhdGguam9pbihzZWxmLnJjc3NtaW5fcGF0aCwgJ2RvY3MnLCAnYXBpZG9jJyldKQotICAgIHJjc3NtaW5fZG9jX2ZpbGVzID0gW29zLnBhdGgucmVscGF0aCh4LCBzZWxmLnJjc3NtaW5fcGF0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiByY3NzbWluX2RvY19maWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHguZW5kc3dpdGgoJy5odG1sJyldCi0gICAgc2VsZi5ub25fbW9kdWxlX2h0bWxfZmlsZXMuZXh0ZW5kUmVsKHNlbGYucmNzc21pbl9wYXRoLCByY3NzbWluX2RvY19maWxlcykKLQotICBkZWYgRmluZEFsbFRlc3RNb2R1bGVSZXNvdXJjZXMoc2VsZik6Ci0gICAgYWxsX2ZpbGVuYW1lcyA9IF9GaW5kQWxsRmlsZXNSZWN1cnNpdmUoW3NlbGYuc3JjX3BhdGhdKQotICAgIHRlc3RfbW9kdWxlX2ZpbGVuYW1lcyA9IFt4IGZvciB4IGluIGFsbF9maWxlbmFtZXMgaWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0lzRmlsZW5hbWVBVGVzdChzZWxmLmxvYWRlciwgeCldCi0gICAgdGVzdF9tb2R1bGVfZmlsZW5hbWVzLnNvcnQoKQotCi0gICAgIyBGaW5kIHRoZSBlcXVpdmFsZW50IHJlc291cmNlcy4KLSAgICByZXR1cm4gW3NlbGYubG9hZGVyLkZpbmRSZXNvdXJjZUdpdmVuQWJzb2x1dGVQYXRoKHgpCi0gICAgICAgICAgICBmb3IgeCBpbiB0ZXN0X21vZHVsZV9maWxlbmFtZXNdCi0KLSAgZGVmIEdldENvbmZpZ05hbWVzKHNlbGYpOgotICAgIGNvbmZpZ19maWxlcyA9IFsKLSAgICAgICAgb3MucGF0aC5qb2luKHNlbGYuZXh0cmFzX3BhdGgsIHgpIGZvciB4IGluIG9zLmxpc3RkaXIoc2VsZi5leHRyYXNfcGF0aCkKLSAgICAgICAgaWYgeC5lbmRzd2l0aCgnX2NvbmZpZy5odG1sJykKLSAgICBdCi0KLSAgICBjb25maWdfZmlsZXMgPSBbeCBmb3IgeCBpbiBjb25maWdfZmlsZXMgaWYgb3MucGF0aC5pc2ZpbGUoeCldCi0KLSAgICBjb25maWdfYmFzZW5hbWVzID0gW29zLnBhdGguYmFzZW5hbWUoeCkgZm9yIHggaW4gY29uZmlnX2ZpbGVzXQotICAgIGNvbmZpZ19uYW1lcyA9IFtyZS5tYXRjaCgnKC4rKV9jb25maWcuaHRtbCQnLCB4KS5ncm91cCgxKQotICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBjb25maWdfYmFzZW5hbWVzXQotICAgIHJldHVybiBjb25maWdfbmFtZXMKLQotICBkZWYgR2V0RGVmYXVsdENvbmZpZ05hbWUoc2VsZik6Ci0gICAgYXNzZXJ0ICdmdWxsJyBpbiBzZWxmLkdldENvbmZpZ05hbWVzKCkKLSAgICByZXR1cm4gJ2Z1bGwnCi0KLSAgZGVmIEFkZENvbmZpZ05hbWVPcHRpb25Ub1BhcnNlcihzZWxmLCBwYXJzZXIpOgotICAgIGNob2ljZXMgPSBzZWxmLkdldENvbmZpZ05hbWVzKCkKLSAgICBwYXJzZXIuYWRkX29wdGlvbigKLSAgICAgICAgJy0tY29uZmlnJywgZGVzdD0nY29uZmlnX25hbWUnLAotICAgICAgICB0eXBlPSdjaG9pY2UnLCBjaG9pY2VzPWNob2ljZXMsCi0gICAgICAgIGRlZmF1bHQ9c2VsZi5HZXREZWZhdWx0Q29uZmlnTmFtZSgpLAotICAgICAgICBoZWxwPSdQaWNrcyBhIGJyb3dzZXIgY29uZmlnLiBWYWxpZCBjaG9pY2VzOiAlcycgJSAnLCAnLmpvaW4oY2hvaWNlcykpCi0gICAgcmV0dXJuIGNob2ljZXMKLQotICBkZWYgR2V0TW9kdWxlTmFtZUZvckNvbmZpZ05hbWUoc2VsZiwgY29uZmlnX25hbWUpOgotICAgIHJldHVybiAnZXh0cmFzLiVzX2NvbmZpZycgJSBjb25maWdfbmFtZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyLy5hbGxvdy1kZXZ0b29scy1zYXZlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvLmFsbG93LWRldnRvb2xzLXNhdmUKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci8uYWxsb3ctZGV2dG9vbHMtc2F2ZQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvLmFsbG93LWRldnRvb2xzLXNhdmUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci8uYm93ZXJyYyBiL3RyYWNlLXZpZXdlci90cmFjaW5nLy5ib3dlcnJjCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvLmJvd2VycmMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nLy5ib3dlcnJjCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy8uZ2l0aWdub3JlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTdhMjFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDkgQEAKKyoucHljCisqLnN3cAorLmlkZWEKKy5EU19TdG9yZQorKn4KKy5wcm9qZWN0Cisuc2V0dGluZ3MKK2Jpbi90cmFjZV92aWV3ZXIqLmh0bWwKK3Rlc3RfZGF0YS9tZWFzdXJtdC10cmFjZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9BVVRIT1JTIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvQVVUSE9SUwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL0FVVEhPUlMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL0FVVEhPUlMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL0JVSUxELmduIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvQlVJTEQuZ24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJjZTNlYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL0JVSUxELmduCkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworZ3lwaV92YWx1ZXMgPSBleGVjX3NjcmlwdCgiLy9idWlsZC9neXBpX3RvX2duLnB5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyByZWJhc2VfcGF0aCgidHJhY2Vfdmlld2VyLmd5cGkiKSBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAic2NvcGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbICJ0cmFjZV92aWV3ZXIuZ3lwaSIgXSkKKworIyBUT0RPOiBpZGVhbGx5IHRoaXMgd291bGQgZ28gaW50byB0aGUgdGFyZ2V0X2dlbl9kaXIsIGJ1dCB0aGlzIHJlcXVpcmVzIHNvbWUKKyMgY2hhbmdlcyB0byB0aGUgc2NyaXB0cyB0aGF0IHByb2Nlc3MgdGhlbS4KK291dHB1dF9yZXNvdXJjZV9kaXIgPSAiJHJvb3RfZ2VuX2Rpci9jb250ZW50L2Jyb3dzZXIvdHJhY2luZyIKKworYWN0aW9uKCJnZW5lcmF0ZV9hYm91dF90cmFjaW5nIikgeworICBzY3JpcHQgPSAiYnVpbGQvZ2VuZXJhdGVfYWJvdXRfdHJhY2luZ19jb250ZW50cyIKKworICBpbnB1dHMgPSBneXBpX3ZhbHVlcy50cmFjaW5nX2Nzc19maWxlcyArIGd5cGlfdmFsdWVzLnRyYWNpbmdfanNfaHRtbF9maWxlcyArCisgICAgICBneXBpX3ZhbHVlcy50cmFjaW5nX2ltZ19maWxlcworICBvdXRwdXRzID0gWworICAgICIkb3V0cHV0X3Jlc291cmNlX2Rpci9hYm91dF90cmFjaW5nLmpzIiwKKyAgICAiJG91dHB1dF9yZXNvdXJjZV9kaXIvYWJvdXRfdHJhY2luZy5odG1sIiwKKyAgXQorCisgIGFyZ3MgPSBbCisgICAgIi0tb3V0ZGlyIiwgcmViYXNlX3BhdGgob3V0cHV0X3Jlc291cmNlX2Rpciwgcm9vdF9idWlsZF9kaXIpLAorICBdCit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvTElDRU5TRSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci9MSUNFTlNFCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy9MSUNFTlNFCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvT1dORVJTIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvT1dORVJTCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvT1dORVJTCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy9PV05FUlMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL1BSRVNVQk1JVC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL1BSRVNVQk1JVC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmY3M2ZlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvUFJFU1VCTUlULnB5CkBAIC0wLDAgKzEsMzUgQEAKKyMgQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IHN5cworCisKK2RlZiBSdW5DaGVja3MoaW5wdXRfYXBpLCBvdXRwdXRfYXBpKToKKyAgcmVzdWx0cyA9IFtdCisgIGZyb20gdHJhY2luZy5idWlsZCBpbXBvcnQgY2hlY2tfZ3lwaQorICBlcnIgPSBjaGVja19neXBpLkd5cGlDaGVjaygpCisgIGlmIGVycjoKKyAgICByZXN1bHRzICs9IFtlcnJdCisKKyAgZnJvbSB0cmFjaW5nLmJ1aWxkIGltcG9ydCBqc19jaGVja3MKKyAgcmVzdWx0cyArPSBqc19jaGVja3MuUnVuQ2hlY2tzKGlucHV0X2FwaSkKKworICByZXR1cm4gbWFwKG91dHB1dF9hcGkuUHJlc3VibWl0RXJyb3IsIHJlc3VsdHMpCisKKworZGVmIENoZWNrQ2hhbmdlKGlucHV0X2FwaSwgb3V0cHV0X2FwaSk6CisgIG9yaWdpbmFsX3N5c19wYXRoID0gc3lzLnBhdGgKKyAgdHJ5OgorICAgIHN5cy5wYXRoICs9IFtpbnB1dF9hcGkuUHJlc3VibWl0TG9jYWxQYXRoKCldCisgICAgcmV0dXJuIFJ1bkNoZWNrcyhpbnB1dF9hcGksIG91dHB1dF9hcGkpCisgIGZpbmFsbHk6CisgICAgc3lzLnBhdGggPSBvcmlnaW5hbF9zeXNfcGF0aAorCisKK2RlZiBDaGVja0NoYW5nZU9uVXBsb2FkKGlucHV0X2FwaSwgb3V0cHV0X2FwaSk6CisgIHJldHVybiBDaGVja0NoYW5nZShpbnB1dF9hcGksIG91dHB1dF9hcGkpCisKKworZGVmIENoZWNrQ2hhbmdlT25Db21taXQoaW5wdXRfYXBpLCBvdXRwdXRfYXBpKToKKyAgcmV0dXJuIENoZWNrQ2hhbmdlKGlucHV0X2FwaSwgb3V0cHV0X2FwaSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ5MTQzNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitkZWYgX1NldHVwVFZDTVBhdGgoKToKKyAgdHZjbV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGlyZF9wYXJ0eScsICd0dmNtJykpCisgIGlmIHR2Y21fcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgICAgc3lzLnBhdGguYXBwZW5kKHR2Y21fcGF0aCkKKyAgdmlubl9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGlyZF9wYXJ0eScsICd2aW5uJykpCisgIGlmIHZpbm5fcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgICAgc3lzLnBhdGguYXBwZW5kKHZpbm5fcGF0aCkKKworX1NldHVwVFZDTVBhdGgoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYXBwLnlhbWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9hcHAueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmEyNjVhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYXBwLnlhbWwKQEAgLTAsMCArMSw1MyBAQAorIyBDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitydW50aW1lOiBweXRob24yNwordGhyZWFkc2FmZTogdHJ1ZQorYXBpX3ZlcnNpb246IDEKKworaGFuZGxlcnM6CisKKy0gdXJsOiAvYmFzZQorICBzdGF0aWNfZGlyOiB0cmFjaW5nL3RyYWNpbmcvYmFzZQorICBzZWN1cmU6IGFsd2F5cworCistIHVybDogL2NvcmUKKyAgc3RhdGljX2RpcjogdHJhY2luZy90cmFjaW5nL2NvcmUKKyAgc2VjdXJlOiBhbHdheXMKKworLSB1cmw6IC9leHRyYXMKKyAgc3RhdGljX2RpcjogdHJhY2luZy90cmFjaW5nL2V4dHJhcworICBzZWN1cmU6IGFsd2F5cworCistIHVybDogL3VpCisgIHN0YXRpY19kaXI6IHRyYWNpbmcvdHJhY2luZy91aQorICBzZWN1cmU6IGFsd2F5cworCistIHVybDogL2NvbXBvbmVudHMKKyAgc3RhdGljX2RpcjogdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzCisgIHNlY3VyZTogYWx3YXlzCisKKy0gdXJsOiAvdHJhY2Vfdmlld2VyCisgIHN0YXRpY19kaXI6IHRyYWNpbmcvdHJhY2luZworICBzZWN1cmU6IGFsd2F5cworCistIHVybDogL2dsLW1hdHJpeC1taW4uanMKKyAgc3RhdGljX2ZpbGVzOiB0cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC1taW4uanMKKyAgdXBsb2FkOiB0cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC1taW4uanMKKyAgc2VjdXJlOiBhbHdheXMKKworLSB1cmw6IC9qc3ppcC5taW4uanMKKyAgc3RhdGljX2ZpbGVzOiB0cmFjaW5nL3RoaXJkX3BhcnR5L2pzemlwL2pzemlwLm1pbi5qcworICB1cGxvYWQ6IHRyYWNpbmcvdGhpcmRfcGFydHkvanN6aXAvanN6aXAubWluLmpzCisgIHNlY3VyZTogYWx3YXlzCisKKy0gdXJsOiAvZDMubWluLmpzCisgIHN0YXRpY19maWxlczogdHJhY2luZy90aGlyZF9wYXJ0eS9kMy9kMy5taW4uanMKKyAgdXBsb2FkOiB0cmFjaW5nL3RoaXJkX3BhcnR5L2QzL2QzLm1pbi5qcworICBzZWN1cmU6IGFsd2F5cworCistIHVybDogLy4qCisgIHN0YXRpY19maWxlczogdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9pbmRleC5odG1sCisgIHVwbG9hZDogdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9pbmRleC5odG1sCisgIHNlY3VyZTogYWx3YXlzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9iaW4vaW5kZXguaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2Jpbi9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYzE0MzUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9iaW4vaW5kZXguaHRtbApAQCAtMCwwICsxLDExMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvblRyYWNlVmlld2VySW1wb3J0RmFpbCgpIHsKKyAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmJvZHkudGV4dENvbnRlbnQgPQorICAgICAgICAndHJhY2luZy9iaW4vdHJhY2Vfdmlld2VyX2Z1bGwuaHRtbCBpcyBtaXNzaW5nLiAnICsKKyAgICAgICAgJ1J1biB2dWxjYW5pemVfdHJhY2Vfdmlld2VyIGZyb20gJFRSQUNFX1ZJRVdFUiBhbmQgcmVsb2FkLic7CisgIH0pOworfQorPC9zY3JpcHQ+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0idHJhY2Vfdmlld2VyX2Z1bGwuaHRtbCIKKyAgICAgIG9uZXJyb3I9Im9uVHJhY2VWaWV3ZXJJbXBvcnRGYWlsKGV2ZW50KSI+CisKKzxzdHlsZT4KKyAgaHRtbCwgYm9keSB7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6IDA7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworICB9CisgICN0cmFjZS12aWV3ZXIgeworICAgIHdpZHRoOiAxMDAlOworICAgIGhlaWdodDogMTAwJTsKKyAgfQorICAjdHJhY2Utdmlld2VyOmZvY3VzIHsKKyAgICBvdXRsaW5lOiBub25lOworICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyhmdW5jdGlvbigpIHsKKyAgdmFyIHZpZXdlcjsKKyAgdmFyIHVybDsKKyAgdmFyIG1vZGVsOworCisgIGZ1bmN0aW9uIGxvYWQoKSB7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHZhciBpc19iaW5hcnkgPSAvWy5dZ3okLy50ZXN0KHVybCkgfHwgL1suXXppcCQvLnRlc3QodXJsKTsKKyAgICByZXEub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbjsgY2hhcnNldD14LXVzZXItZGVmaW5lZCcpOworICAgIHJlcS5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOworICAgIGlmIChpc19iaW5hcnkpCisgICAgICByZXEucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKKworICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgaWYgKHJlcS5yZWFkeVN0YXRlICE9PSA0KQorICAgICAgICByZXR1cm47CisKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAocmVxLnN0YXR1cyA9PT0gMjAwKQorICAgICAgICAgIG9uUmVzdWx0KGlzX2JpbmFyeSA/IHJlcS5yZXNwb25zZSA6IHJlcS5yZXNwb25zZVRleHQpOworICAgICAgICBlbHNlCisgICAgICAgICAgb25SZXN1bHRGYWlsKHJlcS5zdGF0dXMpOworICAgICAgfSwgMCk7CisgICAgfTsKKyAgICByZXEuc2VuZChudWxsKTsKKyAgfQorCisgIGZ1bmN0aW9uIG9uUmVzdWx0RmFpbChlcnIpIHsKKyAgICB2YXIgb3ZlcmxheSA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICBvdmVybGF5LnRleHRDb250ZW50ID0gZXJyICsgJzogJyArIHVybCArICcgY291bGQgbm90IGJlIGxvYWRlZCc7CisgICAgb3ZlcmxheS50aXRsZSA9ICdGYWlsZWQgdG8gZmV0Y2ggZGF0YSc7CisgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKKyAgfQorCisgIGZ1bmN0aW9uIG9uUmVzdWx0KHJlc3VsdCkgeworICAgIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAgPSBtb2RlbC5pbXBvcnRUcmFjZXNXaXRoUHJvZ3Jlc3NEaWFsb2coW3Jlc3VsdF0sIHRydWUpOworICAgIHAudGhlbihvbk1vZGVsTG9hZGVkLCBvbkltcG9ydEZhaWwpOworICB9CisKKyAgZnVuY3Rpb24gb25Nb2RlbExvYWRlZCgpIHsKKyAgICB2aWV3ZXIubW9kZWwgPSBtb2RlbDsKKyAgICB2aWV3ZXIudmlld1RpdGxlID0gdXJsOworICB9CisKKyAgZnVuY3Rpb24gb25JbXBvcnRGYWlsKCkgeworICAgIHZhciBvdmVybGF5ID0gbmV3IHRyLnVpLmIuT3ZlcmxheSgpOworICAgIG92ZXJsYXkudGV4dENvbnRlbnQgPSB0ci5iLm5vcm1hbGl6ZUV4Y2VwdGlvbihlcnIpLm1lc3NhZ2U7CisgICAgb3ZlcmxheS50aXRsZSA9ICdJbXBvcnQgZXJyb3InOworICAgIG92ZXJsYXkudmlzaWJsZSA9IHRydWU7CisgIH0KKworICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyYWNrLXZpZXctY29udGFpbmVyJyk7CisgICAgY29udGFpbmVyLmlkID0gJ3RyYWNrX3ZpZXdfY29udGFpbmVyJzsKKworICAgIHZpZXdlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXRpbWVsaW5lLXZpZXcnKTsKKyAgICB2aWV3ZXIudHJhY2tfdmlld19jb250YWluZXIgPSBjb250YWluZXI7CisgICAgdmlld2VyLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisKKyAgICB2aWV3ZXIuaWQgPSAndHJhY2Utdmlld2VyJzsKKyAgICB2aWV3ZXIuZ2xvYmFsTW9kZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWV3ZXIpOworCisgICAgdXJsID0gJy4uL3Rlc3RfZGF0YS9iaWdfdHJhY2UuanNvbic7CisgICAgbG9hZCgpOworICB9KTsKK30oKSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2Jvd2VyLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy9ib3dlci5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvYm93ZXIuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvYm93ZXIuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmJlMTYyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvX19pbml0X18ucHkKQEAgLTAsMCArMSw0IEBACisjIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorIwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvYmVuY2htYXJrcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2JlbmNobWFya3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYxMTdjMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2JlbmNobWFya3MucHkKQEAgLTAsMCArMSw3MyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IGNQcm9maWxlCitpbXBvcnQgcHN0YXRzCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBpbnNwZWN0CitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCit0cmFjaW5nX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuLicsICcuLicpKQoraWYgdHJhY2luZ19wYXRoIG5vdCBpbiBzeXMucGF0aDoKKyAgc3lzLnBhdGguYXBwZW5kKHRyYWNpbmdfcGF0aCkKKworZnJvbSB0cmFjaW5nIGltcG9ydCB0cmFjaW5nX3Byb2plY3QKK2Zyb20gdHZjbSBpbXBvcnQgZ2VuZXJhdGUKK2Zyb20gdHZjbSBpbXBvcnQgcHJvamVjdAorCisKK2NsYXNzIEJlbmNoKG9iamVjdCk6CisKKyAgZGVmIFNldFVwKHNlbGYpOgorICAgIHBhc3MKKworICBkZWYgUnVuKHNlbGYpOgorICAgIHBhc3MKKworICBkZWYgVGVhckRvd24oc2VsZik6CisgICAgcGFzcworCisKK2RlZiBNYWluKGFyZ3MpOgorICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQorICBwYXJzZXIuYWRkX29wdGlvbignLS1yZXBlYXQtY291bnQnLCB0eXBlPSdpbnQnLAorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PTEwKQorICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKworICBiZW5jaGVzID0gW2cgZm9yIGcgaW4gZ2xvYmFscygpLnZhbHVlcygpCisgICAgICAgICAgICAgaWYgZyAhPSBCZW5jaCBhbmQgaW5zcGVjdC5pc2NsYXNzKGcpIGFuZAorICAgICAgICAgICAgIEJlbmNoIGluIGluc3BlY3QuZ2V0bXJvKGcpXQorICBpZiBsZW4oYXJncykgIT0gMToKKyAgICBzeXMuc3RkZXJyLndyaXRlKCdcbicuam9pbihbYi5fX25hbWVfXyBmb3IgYiBpbiBiZW5jaGVzXSkpCisgICAgcmV0dXJuIDEKKworICBiID0gW2IgZm9yIGIgaW4gYmVuY2hlcyBpZiBiLl9fbmFtZV9fID09IGFyZ3NbMF1dCisgIGlmIGxlbihiKSAhPSAxOgorICAgIHN5cy5zdGRlcnIud3JpdGUoJ09vcHMnKQorICAgIHJldHVybiAxCisKKyAgYmVuY2ggPSBiWzBdKCkKKyAgYmVuY2guU2V0VXAoKQorICB0cnk6CisgICAgcHIgPSBjUHJvZmlsZS5Qcm9maWxlKCkKKyAgICBwci5lbmFibGUoYnVpbHRpbnM9RmFsc2UpCisgICAgZm9yIGkgaW4gcmFuZ2Uob3B0aW9ucy5yZXBlYXRfY291bnQpOgorICAgICAgYmVuY2guUnVuKCkKKyAgICBwci5kaXNhYmxlKCkKKyAgICBzID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorCisgICAgc29ydGJ5ID0gJ2N1bXVsYXRpdmUnCisgICAgcHMgPSBwc3RhdHMuU3RhdHMocHIsIHN0cmVhbT1zKS5zb3J0X3N0YXRzKHNvcnRieSkKKyAgICBwcy5wcmludF9zdGF0cygpCisgICAgcHJpbnQgcy5nZXR2YWx1ZSgpCisgICAgcmV0dXJuIDAKKyAgZmluYWxseToKKyAgICBiZW5jaC5UZWFyRG93bigpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgc3lzLmV4aXQoTWFpbihzeXMuYXJndlsxOl0pKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvY2hlY2tfY29tbW9uLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvY2hlY2tfY29tbW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1ODJiYzEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9jaGVja19jb21tb24ucHkKQEAgLTAsMCArMSw5NCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IHN5cworaW1wb3J0IG9zCisKK3RyYWNpbmdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uJywgJy4uJykpCitpZiB0cmFjaW5nX3BhdGggbm90IGluIHN5cy5wYXRoOgorICBzeXMucGF0aC5hcHBlbmQodHJhY2luZ19wYXRoKQorCitmcm9tIHRyYWNpbmcgaW1wb3J0IHRyYWNpbmdfcHJvamVjdAorCisKK0ZJTEVfR1JPVVBTID0gWyJ0cmFjaW5nX2Nzc19maWxlcyIsCisgICAgICAgICAgICAgICAidHJhY2luZ19qc19odG1sX2ZpbGVzIiwKKyAgICAgICAgICAgICAgICJ0cmFjaW5nX2ltZ19maWxlcyJdCisKKworZGVmIEdldEZpbGVHcm91cEZyb21GaWxlTmFtZShmaWxlbmFtZSk6CisgICBleHRlbnNpb24gPSBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsxXQorICAgcmV0dXJuIHsKKyAgICAgICAnLmNzcyc6ICd0cmFjaW5nX2Nzc19maWxlcycsCisgICAgICAgJy5odG1sJzogJ3RyYWNpbmdfanNfaHRtbF9maWxlcycsCisgICAgICAgJy5qcyc6ICd0cmFjaW5nX2pzX2h0bWxfZmlsZXMnLAorICAgICAgICcucG5nJzogJ3RyYWNpbmdfaW1nX2ZpbGVzJworICAgfVtleHRlbnNpb25dCisKKworZGVmIENoZWNrTGlzdGVkRmlsZXNTb3J0ZWQoc3JjX2ZpbGUsIGdyb3VwX25hbWUsIGxpc3RlZF9maWxlcyk6CisgIHNvcnRlZF9maWxlcyA9IHNvcnRlZChsaXN0ZWRfZmlsZXMpCisgIGlmIHNvcnRlZF9maWxlcyAhPSBsaXN0ZWRfZmlsZXM6CisgICAgbWlzbWF0Y2ggPSAnJworICAgIGZvciBpIGluIHJhbmdlKGxlbihsaXN0ZWRfZmlsZXMpKToKKyAgICAgIGlmIGxpc3RlZF9maWxlc1tpXSAhPSBzb3J0ZWRfZmlsZXNbaV06CisgICAgICAgIG1pc21hdGNoID0gbGlzdGVkX2ZpbGVzW2ldCisgICAgICAgIGJyZWFrCisgICAgd2hhdF9pcyA9ICcgICcgKyAnXG4gICcuam9pbihsaXN0ZWRfZmlsZXMpCisgICAgd2hhdF9zaG91bGRfYmUgPSAnICAnICsgJ1xuICAnLmpvaW4oc29ydGVkX2ZpbGVzKQorICAgIHJldHVybiAnJydJbiBncm91cCB7MH0gZnJvbSBmaWxlIHsxfSwgZmlsZW5hbWVzIGFyZW4ndCBzb3J0ZWQuCisKK0ZpcnN0IG1pc21hdGNoOgorICB7Mn0KKworQ3VycmVudCBsaXN0aW5nOgorezN9CisKK0NvcnJlY3QgbGlzdGluZzoKK3s0fVxuXG4nJycuZm9ybWF0KGdyb3VwX25hbWUsIHNyY19maWxlLCBtaXNtYXRjaCwgd2hhdF9pcywgd2hhdF9zaG91bGRfYmUpCisgIGVsc2U6CisgICAgcmV0dXJuICcnCisKKworZGVmIEdldEtub3duRmlsZXMoKToKKyAgcCA9IHRyYWNpbmdfcHJvamVjdC5UcmFjaW5nUHJvamVjdCgpCisgIG0gPSBwLmxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPSd1aS5leHRyYXMuYWJvdXRfdHJhY2luZy5hYm91dF90cmFjaW5nJykKKyAgYWJzb2x1dGVfZmlsZW5hbWVzID0gbS5HZXRBbGxEZXBlbmRlbnRGaWxlbmFtZXNSZWN1cnNpdmUoCisgICAgICBpbmNsdWRlX3Jhd19zY3JpcHRzPUZhbHNlKQorCisgIHJldHVybiBsaXN0KHNldChbb3MucGF0aC5yZWxwYXRoKGYsIHAudHJhY2luZ19yb290X3BhdGgpCisgICAgICAgICAgICAgICAgICAgZm9yIGYgaW4gYWJzb2x1dGVfZmlsZW5hbWVzXSkpCisKKworZGVmIENoZWNrQ29tbW9uKGZpbGVfbmFtZSwgbGlzdGVkX2ZpbGVzKToKKyAgdHJhY2luZ19wcm9qZWN0LlRyYWNpbmdQcm9qZWN0KCkKKworICBrbm93bl9maWxlcyA9IEdldEtub3duRmlsZXMoKQorICB1ID0gc2V0KGxpc3RlZF9maWxlcykudW5pb24oc2V0KGtub3duX2ZpbGVzKSkKKyAgaSA9IHNldChsaXN0ZWRfZmlsZXMpLmludGVyc2VjdGlvbihzZXQoa25vd25fZmlsZXMpKQorICBkaWZmID0gbGlzdCh1IC0gaSkKKworICBpZiBsZW4oZGlmZikgPT0gMDoKKyAgICByZXR1cm4gJycKKworICBlcnJvciA9ICdFbnRyaWVzIGluICcgKyBmaWxlX25hbWUgKyAnIGRvIG5vdCBtYXRjaCBmaWxlcyBvbiBkaXNrOlxuJworICBpbl9maWxlX29ubHkgPSBsaXN0KHNldChsaXN0ZWRfZmlsZXMpIC0gc2V0KGtub3duX2ZpbGVzKSkKKyAgaW5fa25vd25fb25seSA9IGxpc3Qoc2V0KGtub3duX2ZpbGVzKSAtIHNldChsaXN0ZWRfZmlsZXMpKQorCisgIGlmIGxlbihpbl9maWxlX29ubHkpID4gMDoKKyAgICBlcnJvciArPSAnICBJbiBmaWxlIG9ubHk6XG4gICAgJyArICdcbiAgICAnLmpvaW4oc29ydGVkKGluX2ZpbGVfb25seSkpCisgIGlmIGxlbihpbl9rbm93bl9vbmx5KSA+IDA6CisgICAgaWYgbGVuKGluX2ZpbGVfb25seSkgPiAwOgorICAgICAgZXJyb3IgKz0gJ1xuXG4nCisgICAgZXJyb3IgKz0gJyAgT24gZGlzayBvbmx5OlxuICAgICcgKyAnXG4gICAgJy5qb2luKHNvcnRlZChpbl9rbm93bl9vbmx5KSkKKworICBpZiBpbl9maWxlX29ubHk6CisgICAgZXJyb3IgKz0gKAorICAgICAgICAnXG5cbicKKyAgICAgICAgJyAgTm90ZTogb25seSBmaWxlcyBhY3R1YWxseSB1c2VkIGluIGFib3V0OnRyYWNpbmcgc2hvdWxkXG4nCisgICAgICAgICcgIGJlIGxpc3RlZCBpbiB0aGUgYnVpbGQgZmlsZXMuIFRyeSBydW5uaW5nIGJ1aWxkL3VwZGF0ZV9neXBfYW5kX2duXG4nCisgICAgICAgICcgIHRvIHVwZGF0ZSB0aGUgZmlsZXMgYXV0b21hdGljYWxseS4nKQorCisgIHJldHVybiBlcnJvcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvY2hlY2tfY29tbW9uX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvY2hlY2tfY29tbW9uX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwNDllMWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9jaGVja19jb21tb25fdW5pdHRlc3QucHkKQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gdHJhY2luZy5idWlsZCBpbXBvcnQgY2hlY2tfY29tbW9uCisKKworY2xhc3MgQ2hlY2tDb21tb25Vbml0dFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgIGRlZiB0ZXN0X2ZpbGVzU29ydGVkVGVzdChzZWxmKToKKyAgICBlcnJvciA9IGNoZWNrX2NvbW1vbi5DaGVja0xpc3RlZEZpbGVzU29ydGVkKCdmb28uZ3lwJywgJ3RyYWNpbmdfcGRmX2ZpbGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnL2Rpci9maWxlLnBkZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy9kaXIvYW5vdGhlcl9maWxlLnBkZiddKQorICAgIGV4cGVjdGVkX2Vycm9yID0gJycnSW4gZ3JvdXAgdHJhY2luZ19wZGZfZmlsZXMgZnJvbSBmaWxlIGZvby5neXAsXAorIGZpbGVuYW1lcyBhcmVuJ3Qgc29ydGVkLgorCitGaXJzdCBtaXNtYXRjaDoKKyAgL2Rpci9maWxlLnBkZgorCitDdXJyZW50IGxpc3Rpbmc6CisgIC9kaXIvZmlsZS5wZGYKKyAgL2Rpci9hbm90aGVyX2ZpbGUucGRmCisKK0NvcnJlY3QgbGlzdGluZzoKKyAgL2Rpci9hbm90aGVyX2ZpbGUucGRmCisgIC9kaXIvZmlsZS5wZGZcblxuJycnCisgICAgYXNzZXJ0IGVycm9yID09IGV4cGVjdGVkX2Vycm9yCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9jaGVja19neXBpLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvY2hlY2tfZ3lwaS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2Y4N2IzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvY2hlY2tfZ3lwaS5weQpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKwordHJhY2luZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLi4nLCAnLi4nKSkKK2lmIHRyYWNpbmdfcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgIHN5cy5wYXRoLmFwcGVuZCh0cmFjaW5nX3BhdGgpCisKK2Zyb20gdHJhY2luZy5idWlsZCBpbXBvcnQgY2hlY2tfY29tbW9uCisKK0dZUElfRklMRSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uJywgJ3RyYWNlX3ZpZXdlci5neXBpJykpCisKKworZGVmIEd5cGlDaGVjaygpOgorICBmID0gb3BlbihHWVBJX0ZJTEUsICdyJykKKyAgZ3lwID0gZi5yZWFkKCkKKyAgZi5jbG9zZSgpCisKKyAgZGF0YSA9IGV2YWwoZ3lwKQorICBsaXN0ZWRfZmlsZXMgPSBbXQorICBlcnJvciA9ICcnCisgIGZvciBncm91cCBpbiBjaGVja19jb21tb24uRklMRV9HUk9VUFM6CisgICAgZmlsZW5hbWVzID0gbWFwKG9zLnBhdGgubm9ybXBhdGgsIGRhdGFbJ3ZhcmlhYmxlcyddW2dyb3VwXSkKKyAgICBlcnJvciArPSBjaGVja19jb21tb24uQ2hlY2tMaXN0ZWRGaWxlc1NvcnRlZChHWVBJX0ZJTEUsIGdyb3VwLCBmaWxlbmFtZXMpCisgICAgbGlzdGVkX2ZpbGVzLmV4dGVuZChmaWxlbmFtZXMpCisKKyAgcmV0dXJuIGVycm9yICsgY2hlY2tfY29tbW9uLkNoZWNrQ29tbW9uKEdZUElfRklMRSwgbGlzdGVkX2ZpbGVzKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHByaW50IEd5cGlDaGVjaygpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9jc3NfcHJlc3VibWl0X2NoZWNrZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9jc3NfcHJlc3VibWl0X2NoZWNrZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU2N2FiYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2Nzc19wcmVzdWJtaXRfY2hlY2tlci5weQpAQCAtMCwwICsxLDI0OSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IHJlCisKKworY2xhc3MgQ1NTQ2hlY2tlcihvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBpbnB1dF9hcGksIG91dHB1dF9hcGksIGZpbGVfZmlsdGVyPU5vbmUpOgorICAgIHNlbGYuaW5wdXRfYXBpID0gaW5wdXRfYXBpCisgICAgc2VsZi5vdXRwdXRfYXBpID0gb3V0cHV0X2FwaQorICAgIHNlbGYuZmlsZV9maWx0ZXIgPSBmaWxlX2ZpbHRlcgorCisgIGRlZiBSdW5DaGVja3Moc2VsZik6CisgICAgIyBXZSB1c2UgdGhpcyBhIGxvdCwgc28gbWFrZSBhIG5pY2sgbmFtZSB2YXJpYWJsZS4KKyAgICBkZWYgX2NvbGxhcHNlYWJsZV9oZXgocyk6CisgICAgICByZXR1cm4gKGxlbihzKSA9PSA2IGFuZCBzWzBdID09IHNbMV0gYW5kIHNbMl0gPT0gc1szXSBhbmQgc1s0XSA9PSBzWzVdKQorCisgICAgZGVmIF9pc19ncmF5KHMpOgorICAgICAgcmV0dXJuIHNbMF0gPT0gc1sxXSA9PSBzWzJdIGlmIGxlbihzKSA9PSAzIGVsc2Ugc1swOjJdID09IHNbMjo0XSA9PSBzWzQ6Nl0KKworICAgIGRlZiBfcmVtb3ZlX2FsbChzKToKKyAgICAgIHJldHVybiBfcmVtb3ZlX2dyaXQoX3JlbW92ZV9hdHMoX3JlbW92ZV9jb21tZW50cyhzKSkpCisKKyAgICBkZWYgX3JlbW92ZV9hdHMocyk6CisgICAgICByZXR1cm4gcmUuc3ViKHJlLmNvbXBpbGUocidAXHcrLio/eyguKnsuKj99KSsuKj99JywgcmUuRE9UQUxMKSwgJ1xcMScsIHMpCisKKyAgICBkZWYgX3JlbW92ZV9jb21tZW50cyhzKToKKyAgICAgIHJldHVybiByZS5zdWIocmUuY29tcGlsZShyJy9cKi4qP1wqLycsIHJlLkRPVEFMTCksICcnLCBzKQorCisgICAgZGVmIF9yZW1vdmVfZ3JpdChzKToKKyAgICAgIGdyaXRfcmVnID0gcic8aWZbXj5dKz4uKj88XHMqL1xzKmlmW14+XSo+fDxpbmNsdWRlW14+XSs+JworICAgICAgcmV0dXJuIHJlLnN1YihyZS5jb21waWxlKGdyaXRfcmVnLCByZS5ET1RBTEwpLCAnJywgcykKKworICAgIGRlZiBfcmdiX2Zyb21faGV4KHMpOgorICAgICAgaWYgbGVuKHMpID09IDM6CisgICAgICAgIHIsIGcsIGIgPSBzWzBdICsgc1swXSwgc1sxXSArIHNbMV0sIHNbMl0gKyBzWzJdCisgICAgICBlbHNlOgorICAgICAgICByLCBnLCBiID0gc1swOjJdLCBzWzI6NF0sIHNbNDo2XQorICAgICAgcmV0dXJuIGludChyLCBiYXNlPTE2KSwgaW50KGcsIGJhc2U9MTYpLCBpbnQoYiwgYmFzZT0xNikKKworICAgIGRlZiBhbHBoYWJldGl6ZV9wcm9wcyhjb250ZW50cyk6CisgICAgICBlcnJvcnMgPSBbXQorICAgICAgZm9yIHJ1bGUgaW4gcmUuZmluZGl0ZXIocid7KC4qPyl9JywgY29udGVudHMsIHJlLkRPVEFMTCk6CisgICAgICAgIHNlbWlzID0gbWFwKGxhbWJkYSB0OiB0LnN0cmlwKCksIHJ1bGUuZ3JvdXAoMSkuc3BsaXQoJzsnKSlbOi0xXQorICAgICAgICBydWxlcyA9IGZpbHRlcihsYW1iZGEgcjogJzogJyBpbiByLCBzZW1pcykKKyAgICAgICAgcHJvcHMgPSBtYXAobGFtYmRhIHI6IHJbMDpyLmZpbmQoJzonKV0sIHJ1bGVzKQorICAgICAgICBpZiBwcm9wcyAhPSBzb3J0ZWQocHJvcHMpOgorICAgICAgICAgIGVycm9ycy5hcHBlbmQoJyAgICAlcztcbkV4cGVjdGVkOiAlcycgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAnO1xuICAgICcuam9pbihydWxlcyksICcsJy5qb2luKGxpc3Qoc29ydGVkKHByb3BzKSkpKSkKKyAgICAgIHJldHVybiBlcnJvcnMKKworICAgIGRlZiBicmFjZXNfaGF2ZV9zcGFjZV9iZWZvcmVfYW5kX25vdGhpbmdfYWZ0ZXIobGluZSk6CisgICAgICByZXR1cm4gcmUuc2VhcmNoKHInKD86XnxcUyl7fHtccypcUytccyokJywgbGluZSkKKworICAgIGRlZiBjbGFzc2VzX3VzZV9kYXNoZXMobGluZSk6CisgICAgICAjIEludGVudGlvbmFsbHkgZHVtYmVkIGRvd24gdmVyc2lvbiBvZiBDU1MgMi4xIGdyYW1tYXIgZm9yIGNsYXNzIHdpdGhvdXQKKyAgICAgICMgbm9uLUFTQ0lJLCBlc2NhcGUgY2hhcnMsIG9yIHdoaXRlc3BhY2UuCisgICAgICBtID0gcmUuc2VhcmNoKHInXC4oLT9bX2EtekEtWjAtOS1dKykuKlsse11ccyokJywgbGluZSkKKyAgICAgIHJldHVybiAobSBhbmQgKG0uZ3JvdXAoMSkubG93ZXIoKSAhPSBtLmdyb3VwKDEpIG9yCisgICAgICAgICAgICAgICAgICAgICBtLmdyb3VwKDEpLmZpbmQoJ18nKSA+PSAwKSkKKworICAgICMgSWdub3JlIHNpbmdsZSBmcmFtZXMgaW4gYSBAa2V5ZnJhbWUsIGkuZS4gMCUgeyBtYXJnaW46IDUwcHg7IH0KKyAgICBmcmFtZV9yZWcgPSByJ1xzKlxkKyVccyp7XHMqW19hLXpBLVowLTktXSs6KFxzKltfYS16QS1aMC05LV0rKStccyo7XHMqfVxzKicKKworICAgIGRlZiBjbG9zZV9icmFjZV9vbl9uZXdfbGluZShsaW5lKToKKyAgICAgIHJldHVybiAobGluZS5maW5kKCd9JykgPj0gMCBhbmQgcmUuc2VhcmNoKHInW14gfV0nLCBsaW5lKSBhbmQKKyAgICAgICAgICAgICAgbm90IHJlLm1hdGNoKGZyYW1lX3JlZywgbGluZSkpCisKKyAgICBkZWYgY29sb25zX2hhdmVfc3BhY2VfYWZ0ZXIobGluZSk6CisgICAgICByZXR1cm4gcmUuc2VhcmNoKHInKD88IWRhdGEpOig/IS8vKVxTW147XSs7XHMqJywgbGluZSkKKworICAgIGRlZiBmYXZvcl9zaW5nbGVfcXVvdGVzKGxpbmUpOgorICAgICAgcmV0dXJuIGxpbmUuZmluZCgnIicpID49IDAKKworICAgICMgU2hhcmVkIGJldHdlZW4gaGV4X2NvdWxkX2JlX3Nob3J0ZXIgYW5kIHJnYl9pZl9ub3RfZ3JheS4KKyAgICBoZXhfcmVnID0gKHInIyhbYS1mQS1GMC05XXszfXxbYS1mQS1GMC05XXs2fSkoPz1bXl9hLXpBLVowLTktXXwkKScKKyAgICAgICAgICAgICAgIHInKD8hLiooPzp7Lip8LFxzKikkKScpCisKKyAgICBkZWYgaGV4X2NvdWxkX2JlX3Nob3J0ZXIobGluZSk6CisgICAgICBtID0gcmUuc2VhcmNoKGhleF9yZWcsIGxpbmUpCisgICAgICByZXR1cm4gKG0gYW5kIF9pc19ncmF5KG0uZ3JvdXAoMSkpIGFuZCBfY29sbGFwc2VhYmxlX2hleChtLmdyb3VwKDEpKSkKKworICAgIHNtYWxsX3NlY29uZHMgPSByJyg/Ol58W15fYS16QS1aMC05LV0pKDA/XC5bMC05XSspcyg/IS0/W19hLXpBLVowLTktXSknCisKKyAgICBkZWYgbWlsbGlzZWNvbmRzX2Zvcl9zbWFsbF90aW1lcyhsaW5lKToKKyAgICAgIHJldHVybiByZS5zZWFyY2goc21hbGxfc2Vjb25kcywgbGluZSkKKworICAgIGRlZiBub19kYXRhX3VyaXNfaW5fc291cmNlX2ZpbGVzKGxpbmUpOgorICAgICAgcmV0dXJuIHJlLnNlYXJjaChyJ1woXHMqXCc/XHMqZGF0YTonLCBsaW5lKQorCisgICAgZGVmIG9uZV9ydWxlX3Blcl9saW5lKGxpbmUpOgorICAgICAgcmV0dXJuIHJlLnNlYXJjaChyJ1tfYS16QS1aMC05LV0oPzwhZGF0YSk6KD8hLy8pW147XSs7XHMqW14gfV1ccyonLCBsaW5lKQorCisgICAgYW55X3JlZyA9IHJlLmNvbXBpbGUocic6KD86LXdlYmtpdC0pP2FueVwoLio/XCknLCByZS5ET1RBTEwpCisgICAgbXVsdGlfc2VscyA9IHJlLmNvbXBpbGUocicoPzp9W1xuXHNdKik/KFteLF0rLCg/PVtee31dKz97KS4qWyx7XSlccyokJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZS5NVUxUSUxJTkUpCisKKyAgICBkZWYgb25lX3NlbGVjdG9yX3Blcl9saW5lKGNvbnRlbnRzKToKKyAgICAgIGVycm9ycyA9IFtdCisgICAgICBmb3IgYiBpbiByZS5maW5kaXRlcihtdWx0aV9zZWxzLCByZS5zdWIoYW55X3JlZywgJycsIGNvbnRlbnRzKSk6CisgICAgICAgIGVycm9ycy5hcHBlbmQoJyAgICAnICsgYi5ncm91cCgxKS5zdHJpcCgpLnNwbGl0bGluZXMoKVstMTpdWzBdKQorICAgICAgcmV0dXJuIGVycm9ycworCisgICAgZGVmIHJnYl9pZl9ub3RfZ3JheShsaW5lKToKKyAgICAgIG0gPSByZS5zZWFyY2goaGV4X3JlZywgbGluZSkKKyAgICAgIHJldHVybiAobSBhbmQgbm90IF9pc19ncmF5KG0uZ3JvdXAoMSkpKQorCisgICAgZGVmIHN1Z2dlc3RfbXNfZnJvbV9zKGxpbmUpOgorICAgICAgbXMgPSBpbnQoZmxvYXQocmUuc2VhcmNoKHNtYWxsX3NlY29uZHMsIGxpbmUpLmdyb3VwKDEpKSAqIDEwMDApCisgICAgICByZXR1cm4gJyAocmVwbGFjZSB3aXRoICVkbXMpJyAlIG1zCisKKyAgICBkZWYgc3VnZ2VzdF9yZ2JfZnJvbV9oZXgobGluZSk6CisgICAgICBzdWdnZXN0aW9ucyA9IFsncmdiKCVkLCAlZCwgJWQpJyAlIF9yZ2JfZnJvbV9oZXgoaC5ncm91cCgxKSkKKyAgICAgICAgICAgICAgICAgICAgIGZvciBoIGluIHJlLmZpbmRpdGVyKGhleF9yZWcsIGxpbmUpXQorICAgICAgcmV0dXJuICcgKHJlcGxhY2Ugd2l0aCAlcyknICUgJywgJy5qb2luKHN1Z2dlc3Rpb25zKQorCisgICAgZGVmIHN1Z2dlc3Rfc2hvcnRfaGV4KGxpbmUpOgorICAgICAgaCA9IHJlLnNlYXJjaChoZXhfcmVnLCBsaW5lKS5ncm91cCgxKQorICAgICAgcmV0dXJuICcgKHJlcGxhY2Ugd2l0aCAjJXMpJyAlIChoWzBdICsgaFsyXSArIGhbNF0pCisKKyAgICBoc2wgPSByJ2hzbFwoW15cKV0qKD86WywgXXwoPzw9XCgpKSg/OjA/XC4/KT8wJScKKyAgICB6ZXJvcyA9IChyJ14uKig/Ol58XEQpJworICAgICAgICAgICAgIHInKD86XC4wfDAoPzpcLjA/fHB4fGVtfCV8aW58Y218bW18cGN8cHR8ZXh8ZGVnfGc/cmFkfG0/c3xrP2h6KSknCisgICAgICAgICAgICAgcicoPzpcRHwkKSg/PVtee31dKz99KS4qJCcpCisKKyAgICBkZWYgemVyb19sZW5ndGhfdmFsdWVzKGNvbnRlbnRzKToKKyAgICAgIGVycm9ycyA9IFtdCisgICAgICBmb3IgeiBpbiByZS5maW5kaXRlcihyZS5jb21waWxlKHplcm9zLCByZS5NVUxUSUxJTkUpLCBjb250ZW50cyk6CisgICAgICAgIGZpcnN0X2xpbmUgPSB6Lmdyb3VwKDApLnN0cmlwKCkuc3BsaXRsaW5lcygpWzBdCisgICAgICAgIGlmIG5vdCByZS5zZWFyY2goaHNsLCBmaXJzdF9saW5lKToKKyAgICAgICAgICBlcnJvcnMuYXBwZW5kKCcgICAgJyArIGZpcnN0X2xpbmUpCisgICAgICByZXR1cm4gZXJyb3JzCisKKyAgICBhZGRlZF9vcl9tb2RpZmllZF9maWxlc19jaGVja3MgPSBbCisgICAgICAgIHsKKyAgICAgICAgICAgICdkZXNjJzogJ0FscGhhYmV0aXplIHByb3BlcnRpZXMgYW5kIGxpc3QgdmVuZG9yIHNwZWNpZmljIChpLmUuICcKKyAgICAgICAgICAgICAgICAgICAgJy13ZWJraXQpIGFib3ZlIHN0YW5kYXJkLicsCisgICAgICAgICAgICAndGVzdCc6IGFscGhhYmV0aXplX3Byb3BzLAorICAgICAgICAgICAgJ211bHRpbGluZSc6IFRydWUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdkZXNjJzogJ1N0YXJ0IGJyYWNlcyAoeykgZW5kIGEgc2VsZWN0b3IsIGhhdmUgYSBzcGFjZSBiZWZvcmUgdGhlbSAnCisgICAgICAgICAgICAgICAgICAgICdhbmQgbm8gcnVsZXMgYWZ0ZXIuJywKKyAgICAgICAgICAgICd0ZXN0JzogYnJhY2VzX2hhdmVfc3BhY2VfYmVmb3JlX2FuZF9ub3RoaW5nX2FmdGVyLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZGVzYyc6ICdDbGFzc2VzIHVzZSAuZGFzaC1mb3JtLicsCisgICAgICAgICAgICAndGVzdCc6IGNsYXNzZXNfdXNlX2Rhc2hlcywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Rlc2MnOiAnQWx3YXlzIHB1dCBhIHJ1bGUgY2xvc2luZyBicmFjZSAofSkgb24gYSBuZXcgbGluZS4nLAorICAgICAgICAgICAgJ3Rlc3QnOiBjbG9zZV9icmFjZV9vbl9uZXdfbGluZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Rlc2MnOiAnQ29sb25zICg6KSBzaG91bGQgaGF2ZSBhIHNwYWNlIGFmdGVyIHRoZW0uJywKKyAgICAgICAgICAgICd0ZXN0JzogY29sb25zX2hhdmVfc3BhY2VfYWZ0ZXIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdkZXNjJzogJ1VzZSBzaW5nbGUgcXVvdGVzIChcJykgaW5zdGVhZCBvZiBkb3VibGUgcXVvdGVzICgiKSBpbiAnCisgICAgICAgICAgICAgICAgICAgICdzdHJpbmdzLicsCisgICAgICAgICAgICAndGVzdCc6IGZhdm9yX3NpbmdsZV9xdW90ZXMsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdkZXNjJzogJ1VzZSBhYmJyZXZpYXRlZCBoZXggKCNyZ2IpIHdoZW4gaW4gZm9ybSAjcnJnZ2JiLicsCisgICAgICAgICAgICAndGVzdCc6IGhleF9jb3VsZF9iZV9zaG9ydGVyLAorICAgICAgICAgICAgJ2FmdGVyJzogc3VnZ2VzdF9zaG9ydF9oZXgsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdkZXNjJzogJ1VzZSBtaWxsaXNlY29uZHMgZm9yIHRpbWUgbWVhc3VyZW1lbnRzIHVuZGVyIDEgc2Vjb25kLicsCisgICAgICAgICAgICAndGVzdCc6IG1pbGxpc2Vjb25kc19mb3Jfc21hbGxfdGltZXMsCisgICAgICAgICAgICAnYWZ0ZXInOiBzdWdnZXN0X21zX2Zyb21fcywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Rlc2MnOiAnRG9uXCd0IHVzZSBkYXRhIFVSSXMgaW4gc291cmNlIGZpbGVzLiBVc2UgZ3JpdCBpbnN0ZWFkLicsCisgICAgICAgICAgICAndGVzdCc6IG5vX2RhdGFfdXJpc19pbl9zb3VyY2VfZmlsZXMsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdkZXNjJzogJ09uZSBydWxlIHBlciBsaW5lICcKKyAgICAgICAgICAgICAgICAgICAgJyh3aGF0IG5vdCB0byBkbzogY29sb3I6IHJlZDsgbWFyZ2luOiAwOykuJywKKyAgICAgICAgICAgICd0ZXN0Jzogb25lX3J1bGVfcGVyX2xpbmUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdkZXNjJzogJ09uZSBzZWxlY3RvciBwZXIgbGluZSAod2hhdCBub3QgdG8gZG86IGEsIGIge30pLicsCisgICAgICAgICAgICAndGVzdCc6IG9uZV9zZWxlY3Rvcl9wZXJfbGluZSwKKyAgICAgICAgICAgICdtdWx0aWxpbmUnOiBUcnVlLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZGVzYyc6ICdVc2UgcmdiKCkgb3ZlciAjaGV4IHdoZW4gbm90IGEgc2hhZGUgb2YgZ3JheSAobGlrZSAjMzMzKS4nLAorICAgICAgICAgICAgJ3Rlc3QnOiByZ2JfaWZfbm90X2dyYXksCisgICAgICAgICAgICAnYWZ0ZXInOiBzdWdnZXN0X3JnYl9mcm9tX2hleCwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Rlc2MnOiAnTWFrZSBhbGwgemVybyBsZW5ndGggdGVybXMgKGkuZS4gMHB4KSAwIHVubGVzcyBpbnNpZGUgb2YgJworICAgICAgICAgICAgICAgICAgICAnaHNsKCkgb3IgcGFydCBvZiBAa2V5ZnJhbWUuJywKKyAgICAgICAgICAgICd0ZXN0JzogemVyb19sZW5ndGhfdmFsdWVzLAorICAgICAgICAgICAgJ211bHRpbGluZSc6IFRydWUsCisgICAgICAgIH0sCisgICAgXQorCisgICAgcmVzdWx0cyA9IFtdCisgICAgYWZmZWN0ZWRfZmlsZXMgPSBzZWxmLmlucHV0X2FwaS5BZmZlY3RlZEZpbGVzKGluY2x1ZGVfZGVsZXRlcz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9maWx0ZXI9c2VsZi5maWxlX2ZpbHRlcikKKyAgICBmaWxlcyA9IFtdCisgICAgZm9yIGYgaW4gYWZmZWN0ZWRfZmlsZXM6CisgICAgICAjIFJlbW92ZSBhbGwgLypjb21tZW50cyovLCBAYXQta2V5d29yZHMsIGFuZCBncml0IDxpZnxpbmNsdWRlPiB0YWdzOyB3ZSdyZQorICAgICAgIyBub3QgdXNpbmcgYSByZWFsIHBhcnNlci4gVE9ETyhkYmVhbSk6IENoZWNrIGFscGhhIGluIDxpZj4gYmxvY2tzLgorICAgICAgZmlsZV9jb250ZW50cyA9IF9yZW1vdmVfYWxsKCdcbicuam9pbihmLm5ld19jb250ZW50cykpCisgICAgICBmaWxlcy5hcHBlbmQoKGYuZmlsZW5hbWUsIGZpbGVfY29udGVudHMpKQorCisgICAgIyBPbmx5IGxvb2sgYXQgQ1NTIGZpbGVzIGZvciBub3cuCisgICAgZm9yIGYgaW4gZmlsdGVyKGxhbWJkYSBmOiBmWzBdLmVuZHN3aXRoKCcuY3NzJyksIGZpbGVzKToKKyAgICAgIGZpbGVfZXJyb3JzID0gW10KKyAgICAgIGZvciBjaGVjayBpbiBhZGRlZF9vcl9tb2RpZmllZF9maWxlc19jaGVja3M6CisgICAgICAgICMgSWYgdGhlIGNoZWNrIGlzIG11bHRpbGluZSwgaXQgcmVjZWlldmVzIHRoZSB3aG9sZSBmaWxlIGFuZCBnaXZlcyB1cworICAgICAgICAjIGJhY2sgYSBsaXN0IG9mIHRoaW5ncyB3cm9uZy4gSWYgdGhlIGNoZWNrIGlzbid0IG11bHRpbGluZSwgd2UgcGFzcyBpdAorICAgICAgICAjIGVhY2ggbGluZSBhbmQgdGhlIGNoZWNrIHJldHVybnMgc29tZXRoaW5nIHRydXRoeSBpZiB0aGVyZSdzIGFuIGlzc3VlLgorICAgICAgICBpZiAoJ211bHRpbGluZScgaW4gY2hlY2sgYW5kIGNoZWNrWydtdWx0aWxpbmUnXSk6CisgICAgICAgICAgY2hlY2tfZXJyb3JzID0gY2hlY2tbJ3Rlc3QnXShmWzFdKQorICAgICAgICAgIGlmIGxlbihjaGVja19lcnJvcnMpID4gMDoKKyAgICAgICAgICAgICMgVGhlcmUgYXJlIGN1cnJlbnRseSBubyBtdWx0aWxpbmUgY2hlY2tzIHdpdGggWydhZnRlciddLgorICAgICAgICAgICAgZmlsZV9lcnJvcnMuYXBwZW5kKAorICAgICAgICAgICAgICAgICctICVzXG4lcycgJSAoY2hlY2tbJ2Rlc2MnXSwgJ1xuJy5qb2luKGNoZWNrX2Vycm9ycykucnN0cmlwKCkpKQorICAgICAgICBlbHNlOgorICAgICAgICAgIGNoZWNrX2Vycm9ycyA9IFtdCisgICAgICAgICAgbGluZXMgPSBmWzFdLnNwbGl0bGluZXMoKQorICAgICAgICAgIGZvciBsbnVtIGluIHJhbmdlKDAsIGxlbihsaW5lcykpOgorICAgICAgICAgICAgbGluZSA9IGxpbmVzW2xudW1dCisgICAgICAgICAgICBpZiBjaGVja1sndGVzdCddKGxpbmUpOgorICAgICAgICAgICAgICBlcnJvciA9ICcgICAgJyArIGxpbmUuc3RyaXAoKQorICAgICAgICAgICAgICBpZiAnYWZ0ZXInIGluIGNoZWNrOgorICAgICAgICAgICAgICAgIGVycm9yICs9IGNoZWNrWydhZnRlciddKGxpbmUpCisgICAgICAgICAgICAgIGNoZWNrX2Vycm9ycy5hcHBlbmQoZXJyb3IpCisgICAgICAgICAgaWYgbGVuKGNoZWNrX2Vycm9ycykgPiAwOgorICAgICAgICAgICAgZmlsZV9lcnJvcnMuYXBwZW5kKAorICAgICAgICAgICAgICAgICctICVzXG4lcycgJSAoY2hlY2tbJ2Rlc2MnXSwgJ1xuJy5qb2luKGNoZWNrX2Vycm9ycykpKQorICAgICAgaWYgZmlsZV9lcnJvcnM6CisgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNlbGYub3V0cHV0X2FwaS5QcmVzdWJtaXRQcm9tcHRXYXJuaW5nKAorICAgICAgICAgICAgJyVzOlxuJXMnICUgKGZbMF0sICdcblxuJy5qb2luKGZpbGVfZXJyb3JzKSkpKQorCisgICAgaWYgcmVzdWx0czoKKyAgICAgICMgQWRkIHlvdXIgbmFtZSBpZiB5b3UncmUgaGVyZSBvZnRlbiBtdWNraW5nIGFyb3VuZCBpbiB0aGUgY29kZS4KKyAgICAgIGF1dGhvcnMgPSBbJ2RiZWFtQGNocm9taXVtLm9yZyddCisgICAgICByZXN1bHRzLmFwcGVuZChzZWxmLm91dHB1dF9hcGkuUHJlc3VibWl0Tm90aWZ5UmVzdWx0KAorICAgICAgICAgICdXYXMgdGhlIENTUyBjaGVja2VyIHVzZWZ1bD8gU2VuZCBmZWVkYmFjayBvciBoYXRlIG1haWwgdG8gJXMuJyAlCisgICAgICAgICAgJywgJy5qb2luKGF1dGhvcnMpKSkKKworICAgIHJldHVybiByZXN1bHRzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9kZXZfc2VydmVyLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZGV2X3NlcnZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzExMWM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZGV2X3NlcnZlci5weQpAQCAtMCwwICsxLDIyMSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3lzCitpbXBvcnQgdHJhY2ViYWNrCisKK2Zyb20gdHZjbSBpbXBvcnQgcHJvamVjdCBhcyBwcm9qZWN0X21vZHVsZQorCitpbXBvcnQgU29ja2V0U2VydmVyCitpbXBvcnQgU2ltcGxlSFRUUFNlcnZlcgoraW1wb3J0IEJhc2VIVFRQU2VydmVyCisKK1RFU1RfREFUQV9QUkVGSVggPSAnL3Rlc3RfZGF0YScKKworCitjbGFzcyBEZXZTZXJ2ZXJIYW5kbGVyKFNpbXBsZUhUVFBTZXJ2ZXIuU2ltcGxlSFRUUFJlcXVlc3RIYW5kbGVyKToKKworICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICBTaW1wbGVIVFRQU2VydmVyLlNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlci5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCisKKyAgZGVmIHNlbmRfcmVzcG9uc2Uoc2VsZiwgY29kZSwgbWVzc2FnZT1Ob25lKToKKyAgICBTaW1wbGVIVFRQU2VydmVyLlNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlci5zZW5kX3Jlc3BvbnNlKHNlbGYsIGNvZGUsIG1lc3NhZ2UpCisgICAgaWYgY29kZSA9PSAyMDA6CisgICAgICBzZWxmLnNlbmRfaGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlJykKKworICBkZWYgZG9fR0VUKHNlbGYpOgorICAgIGlmIHNlbGYuZG9fcGF0aF9oYW5kbGVyKCdHRVQnKToKKyAgICAgIHJldHVybgorCisgICAgcmV0dXJuIFNpbXBsZUhUVFBTZXJ2ZXIuU2ltcGxlSFRUUFJlcXVlc3RIYW5kbGVyLmRvX0dFVChzZWxmKQorCisgIGRlZiBkb19QT1NUKHNlbGYpOgorICAgIGlmIHNlbGYuZG9fcGF0aF9oYW5kbGVyKCdQT1NUJyk6CisgICAgICByZXR1cm4KKyAgICByZXR1cm4gU2ltcGxlSFRUUFNlcnZlci5TaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXIuZG9fUE9TVChzZWxmKQorCisgIGRlZiBkb19wYXRoX2hhbmRsZXIoc2VsZiwgbWV0aG9kKToKKyAgICBoYW5kbGVyID0gc2VsZi5zZXJ2ZXIuR2V0UGF0aEhhbmRsZXIoc2VsZi5wYXRoLCBtZXRob2QpCisgICAgaWYgaGFuZGxlcjoKKyAgICAgIHRyeToKKyAgICAgICAgaGFuZGxlcihzZWxmKQorICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZXg6CisgICAgICAgIHNlbmRfNTAwKHNlbGYsICdXaGlsZSBwYXJzaW5nICVzJyAlIHNlbGYucGF0aCwgZXgsIHBhdGg9c2VsZi5wYXRoKQorICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworICBkZWYgc2VuZF9oZWFkKHNlbGYpOgorICAgIHJldHVybiBTaW1wbGVIVFRQU2VydmVyLlNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlci5zZW5kX2hlYWQoc2VsZikKKworICBkZWYgdHJhbnNsYXRlX3BhdGgoc2VsZiwgcGF0aCk6CisgICAgcGF0aCA9IHBhdGguc3BsaXQoJz8nLCAxKVswXQorICAgIHBhdGggPSBwYXRoLnNwbGl0KCcjJywgMSlbMF0KKworICAgIGlmIHBhdGguc3RhcnRzd2l0aChURVNUX0RBVEFfUFJFRklYKToKKyAgICAgIHBhdGggPSBwYXRoW2xlbihURVNUX0RBVEFfUFJFRklYKTpdCisKKyAgICBmb3IgbWFwcGVkX3BhdGggaW4gc2VsZi5zZXJ2ZXIucHJvamVjdC5zb3VyY2VfcGF0aHM6CisgICAgICByZWwgPSBvcy5wYXRoLnJlbHBhdGgocGF0aCwgJy8nKQorICAgICAgY2FuZGlkYXRlID0gb3MucGF0aC5qb2luKG1hcHBlZF9wYXRoLCByZWwpCisgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhjYW5kaWRhdGUpOgorICAgICAgICByZXR1cm4gY2FuZGlkYXRlCisgICAgcmV0dXJuICcnCisKKyAgZGVmIGxvZ19lcnJvcihzZWxmLCBsb2dfZm9ybWF0LCAqYXJncyk6CisgICAgaWYgc2VsZi5zZXJ2ZXIuX3F1aWV0OgorICAgICAgcmV0dXJuCisgICAgaWYgc2VsZi5wYXRoID09ICcvZmF2aWNvbi5pY28nOgorICAgICAgcmV0dXJuCisgICAgc2VsZi5sb2dfbWVzc2FnZSgnV2hpbGUgcHJvY2Vzc2luZyAlczogJywgc2VsZi5wYXRoKQorICAgIFNpbXBsZUhUVFBTZXJ2ZXIuU2ltcGxlSFRUUFJlcXVlc3RIYW5kbGVyLmxvZ19lcnJvcihzZWxmLCBsb2dfZm9ybWF0LCAqYXJncykKKworICBkZWYgbG9nX3JlcXVlc3Qoc2VsZiwgY29kZT0nLScsIHNpemU9Jy0nKToKKyAgICAjIERvbid0IHNwYW0gdGhlIGNvbnNvbGUgdW5sZXNzIGl0IGlzIGltcG9ydGFudC4KKyAgICBwYXNzCisKKyAgZGVmIGZpbmlzaChzZWxmKToKKyAgICB0cnk6CisgICAgICBTaW1wbGVIVFRQU2VydmVyLlNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlci5maW5pc2goc2VsZikKKyAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICAjIEFuIGZpbmFsIHNvY2tldCBlcnJvciBtYXkgaGF2ZSBvY2N1cnJlZCBoZXJlLCBzdWNoIGFzCisgICAgICAgICMgdGhlIGxvY2FsIGVycm9yIEVDT05OQUJPUlRFRC4KKyAgICAgICAgcGFzcworCisKK2RlZiBzZW5kXzUwMChzZWxmLCBtc2csIGV4LCBsb2dfZXJyb3I9VHJ1ZSwgcGF0aD1Ob25lKToKKyAgaWYgcGF0aCBpcyBOb25lOgorICAgIGlzX2h0bWxfb3V0cHV0ID0gRmFsc2UKKyAgZWxzZToKKyAgICBwYXRoID0gcGF0aC5zcGxpdCgnPycsIDEpWzBdCisgICAgcGF0aCA9IHBhdGguc3BsaXQoJyMnLCAxKVswXQorICAgIGlzX2h0bWxfb3V0cHV0ID0gcGF0aC5lbmRzd2l0aCgnLmh0bWwnKQorCisgIGlmIGlzX2h0bWxfb3V0cHV0OgorICAgIG1zZyA9ICIiIjwhRE9DVFlQRSBodG1sPgorICAgIDxodG1sPgorICAgIDxib2R5PgorICAgIDxoMT5PTUcgc29tZXRoaW5nIGlzIHdyb25nPC9oMT4KKyAgICA8Yj48cHJlPjxjb2RlIGlkPSJtZXNzYWdlIj48L2NvZGU+PC9wcmU+PC9iPjwvcD4KKyAgICA8cHJlPjxjb2RlIGlkPSJkZXRhaWxzIj48L2NvZGU+PC9wcmU+CisgICAgPHNjcmlwdD4KKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CisgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZGV0YWlscycpLnRleHRDb250ZW50ID0gJXM7CisgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWVzc2FnZScpLnRleHRDb250ZW50ID0gJXM7CisgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+CisgICAgPC9odG1sPgorIiIiICUgKGpzb24uZHVtcHModHJhY2ViYWNrLmZvcm1hdF9leGMoKSksIGpzb24uZHVtcHMoZXgubWVzc2FnZSkpCisgICAgY3R5cGUgPSAndGV4dC9odG1sJworICBlbHNlOgorICAgIG1zZyA9IGpzb24uZHVtcHMoeydkZXRhaWxzJzogdHJhY2ViYWNrLmZvcm1hdF9leGMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZSc6IGV4Lm1lc3NhZ2V9KQorICAgIGN0eXBlID0gJ2FwcGxpY2F0aW9uL2pzb24nCisKKyAgaWYgbG9nX2Vycm9yOgorICAgIHNlbGYubG9nX2Vycm9yKCclczogJXMnLCBtc2csIGV4Lm1lc3NhZ2UpCisgIHNlbGYuc2VuZF9yZXNwb25zZSg1MDApCisgIHNlbGYuc2VuZF9oZWFkZXIoJ0NvbnRlbnQtVHlwZScsIGN0eXBlKQorICBzZWxmLnNlbmRfaGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlJykKKyAgc2VsZi5zZW5kX2hlYWRlcignQ29udGVudC1MZW5ndGgnLCBsZW4obXNnKSkKKyAgc2VsZi5lbmRfaGVhZGVycygpCisgIHNlbGYud2ZpbGUud3JpdGUobXNnKQorICByZXR1cm4KKworCitjbGFzcyBQYXRoSGFuZGxlcihvYmplY3QpOgorICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwgaGFuZGxlciwgc3VwcG9ydHNfZ2V0LCBzdXBwb3J0c19wb3N0KToKKyAgICBzZWxmLnBhdGggPSBwYXRoCisgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgorICAgIHNlbGYuc3VwcG9ydHNfZ2V0ID0gc3VwcG9ydHNfZ2V0CisgICAgc2VsZi5zdXBwb3J0c19wb3N0ID0gc3VwcG9ydHNfcG9zdAorCisgIGRlZiBDYW5IYW5kbGUoc2VsZiwgcGF0aCwgbWV0aG9kKToKKyAgICBpZiBwYXRoICE9IHNlbGYucGF0aDoKKyAgICAgIHJldHVybiBGYWxzZQorICAgIGlmIG1ldGhvZCA9PSAnR0VUJyBhbmQgc2VsZi5zdXBwb3J0c19nZXQ6CisgICAgICByZXR1cm4gVHJ1ZQorICAgIGlmIG1ldGhvZCA9PSAnUE9TVCcgYW5kIHNlbGYuc3VwcG9ydHNfcG9zdDoKKyAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIGRvX0dFVF9yb290KHJlcXVlc3QpOgorICByZXF1ZXN0LnNlbmRfcmVzcG9uc2UoMzAxKQorICByZXF1ZXN0LnNlbmRfaGVhZGVyKCdMb2NhdGlvbicsIHJlcXVlc3Quc2VydmVyLmRlZmF1bHRfcGF0aCkKKyAgcmVxdWVzdC5lbmRfaGVhZGVycygpCisKKworY2xhc3MgRGV2U2VydmVyKFNvY2tldFNlcnZlci5UaHJlYWRpbmdNaXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZlcik6CisKKyAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHF1aWV0PUZhbHNlLCBwcm9qZWN0PU5vbmUpOgorICAgIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIuX19pbml0X18oCisgICAgICAgIHNlbGYsICgnbG9jYWxob3N0JywgcG9ydCksIERldlNlcnZlckhhbmRsZXIpCisgICAgc2VsZi5fc2h1dGRvd25fcmVxdWVzdCA9IE5vbmUKKyAgICBzZWxmLl9xdWlldCA9IHF1aWV0CisgICAgaWYgcG9ydCA9PSAwOgorICAgICAgcG9ydCA9IHNlbGYuc2VydmVyX2FkZHJlc3NbMV0KKyAgICBzZWxmLl9wb3J0ID0gcG9ydAorICAgIHNlbGYuX3BhdGhfaGFuZGxlcnMgPSBbXQorICAgIGlmIHByb2plY3Q6CisgICAgICBzZWxmLl9wcm9qZWN0ID0gcHJvamVjdAorICAgIGVsc2U6CisgICAgICBzZWxmLl9wcm9qZWN0ID0gcHJvamVjdF9tb2R1bGUuUHJvamVjdChbXSkKKworICAgIHNlbGYuQWRkUGF0aEhhbmRsZXIoJy8nLCBkb19HRVRfcm9vdCkKKyAgICBzZWxmLkFkZFBhdGhIYW5kbGVyKCcnLCBkb19HRVRfcm9vdCkKKyAgICBzZWxmLmRlZmF1bHRfcGF0aCA9ICcvYmFzZS90ZXN0cy5odG1sJworICAgICMgUmVkaXJlY3Qgb2xkIHRlc3RzLmh0bWwgcGxhY2VzIHRvIHRoZSBuZXcgbG9jYXRpb24gdW50aWwgZm9sa3MgaGF2ZQorICAgICMgZ290dGVuIHVzZWQgdG8gaXRzIG5ldyBsb2NhdGlvbi4KKyAgICBzZWxmLkFkZFBhdGhIYW5kbGVyKCcvdHZjbS90ZXN0cy5odG1sJywgZG9fR0VUX3Jvb3QpCisgICAgc2VsZi5BZGRQYXRoSGFuZGxlcignL3Rlc3RzLmh0bWwnLCBkb19HRVRfcm9vdCkKKworICBkZWYgQWRkUGF0aEhhbmRsZXIoc2VsZiwgcGF0aCwgaGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2dldD1UcnVlLCBzdXBwb3J0c19wb3N0PUZhbHNlKToKKyAgICBzZWxmLl9wYXRoX2hhbmRsZXJzLmFwcGVuZCgKKyAgICAgICAgUGF0aEhhbmRsZXIocGF0aCwgaGFuZGxlciwgc3VwcG9ydHNfZ2V0LCBzdXBwb3J0c19wb3N0KSkKKworICBkZWYgR2V0UGF0aEhhbmRsZXIoc2VsZiwgcGF0aCwgbWV0aG9kKToKKyAgICBmb3IgaCBpbiBzZWxmLl9wYXRoX2hhbmRsZXJzOgorICAgICAgaWYgaC5DYW5IYW5kbGUocGF0aCwgbWV0aG9kKToKKyAgICAgICAgcmV0dXJuIGguaGFuZGxlcgorICAgIHJldHVybiBOb25lCisKKyAgZGVmIEFkZFNvdXJjZVBhdGhNYXBwaW5nKHNlbGYsIGZpbGVfc3lzdGVtX3BhdGgpOgorICAgIHNlbGYuX3Byb2plY3QuQWRkU291cmNlUGF0aChmaWxlX3N5c3RlbV9wYXRoKQorCisgIGRlZiBSZXF1ZXN0U2h1dGRvd24oc2VsZiwgZXhpdF9jb2RlKToKKyAgICBzZWxmLl9zaHV0ZG93bl9yZXF1ZXN0ID0gZXhpdF9jb2RlCisKKyAgQHByb3BlcnR5CisgIGRlZiBwcm9qZWN0KHNlbGYpOgorICAgIHJldHVybiBzZWxmLl9wcm9qZWN0CisKKyAgQHByb3BlcnR5CisgIGRlZiBsb2FkZXIoc2VsZik6CisgICAgcmV0dXJuIHNlbGYuX3Byb2plY3QubG9hZGVyCisKKyAgQHByb3BlcnR5CisgIGRlZiBwb3J0KHNlbGYpOgorICAgIHJldHVybiBzZWxmLl9wb3J0CisKKyAgQHByb3BlcnR5CisgIGRlZiBkYXRhX2RpcihzZWxmKToKKyAgICByZXR1cm4gc2VsZi5fZGF0YV9kaXIKKworICBkZWYgc2VydmVfZm9yZXZlcihzZWxmKTogICMgcHlsaW50OiBkaXNhYmxlPWFyZ3VtZW50cy1kaWZmZXIKKyAgICBpZiBub3Qgc2VsZi5fcXVpZXQ6CisgICAgICBzeXMuc3RkZXJyLndyaXRlKCdOb3cgcnVubmluZyBvbiBodHRwOi8vbG9jYWxob3N0OiVpXG4nICUgc2VsZi5fcG9ydCkKKyAgICB0cnk6CisgICAgICBzZWxmLnRpbWVvdXQgPSAwLjUKKyAgICAgIHdoaWxlIFRydWU6CisgICAgICAgIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIuaGFuZGxlX3JlcXVlc3Qoc2VsZikKKyAgICAgICAgaWYgc2VsZi5fc2h1dGRvd25fcmVxdWVzdCBpcyBub3QgTm9uZToKKyAgICAgICAgICBzeXMuZXhpdChzZWxmLl9zaHV0ZG93bl9yZXF1ZXN0KQorICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgIHN5cy5leGl0KDApCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9kZXZfc2VydmVyX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZGV2X3NlcnZlcl91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGNiZmFiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZGV2X3NlcnZlcl91bml0dGVzdC5weQpAQCAtMCwwICsxLDE2IEBACisjIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB0cmFjaW5nLmJ1aWxkIGltcG9ydCB0ZW1wb3JhcnlfZGV2X3NlcnZlcgorCisKK2NsYXNzIERldlNlcnZlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICBkZWYgc2V0VXAoc2VsZik6CisgICAgc2VsZi5zZXJ2ZXIgPSB0ZW1wb3JhcnlfZGV2X3NlcnZlci5UZW1wb3JhcnlEZXZTZXJ2ZXIoKQorCisgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICBzZWxmLnNlcnZlci5DbG9zZSgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9maXhqc3N0eWxlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZml4anNzdHlsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNmJjNjFiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZml4anNzdHlsZQpAQCAtMCwwICsxLDEzIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICB0b3BfZGlyID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAnLi4nKSkKKyAgc3lzLnBhdGguYXBwZW5kKHRvcF9kaXIpCisgIGZyb20gdHJhY2luZy5idWlsZCBpbXBvcnQgZml4anNzdHlsZQorICBzeXMuZXhpdChmaXhqc3N0eWxlLm1haW4oKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2ZpeGpzc3R5bGUucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9maXhqc3N0eWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZDFlYmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9maXhqc3N0eWxlLnB5CkBAIC0wLDAgKzEsMjggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCit0cmFjaW5nX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuLicsICcuLicpKQoraWYgdHJhY2luZ19wYXRoIG5vdCBpbiBzeXMucGF0aDoKKyAgc3lzLnBhdGguYXBwZW5kKHRyYWNpbmdfcGF0aCkKKworZnJvbSB0cmFjaW5nIGltcG9ydCB0cmFjaW5nX3Byb2plY3QKKworCitkZWYgbWFpbigpOgorICBwcm9qZWN0ID0gdHJhY2luZ19wcm9qZWN0LlRyYWNpbmdQcm9qZWN0KCkKKworICBzeXMucGF0aC5hcHBlbmQob3MucGF0aC5qb2luKAorICAgICAgcHJvamVjdC50cmFjaW5nX3RoaXJkX3BhcnR5X3BhdGgsICdweXRob25fZ2ZsYWdzJykpCisgIHN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmpvaW4oCisgICAgICBwcm9qZWN0LnRyYWNpbmdfdGhpcmRfcGFydHlfcGF0aCwgJ2Nsb3N1cmVfbGludGVyJykpCisKKyAgZnJvbSBjbG9zdXJlX2xpbnRlciBpbXBvcnQgZml4anNzdHlsZQorCisgIG9zLmNoZGlyKHByb2plY3QudHJhY2luZ19zcmNfcGF0aCkKKworICBmaXhqc3N0eWxlLm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZ2VuZXJhdGVfYWJvdXRfdHJhY2luZ19jb250ZW50cyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDk0OWEzMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMKQEAgLTAsMCArMSwxMyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgdG9wX2RpciA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJy4uJykpCisgIHN5cy5wYXRoLmFwcGVuZCh0b3BfZGlyKQorICBmcm9tIHRyYWNpbmcuYnVpbGQgaW1wb3J0IGdlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMKKyAgc3lzLmV4aXQoZ2VuZXJhdGVfYWJvdXRfdHJhY2luZ19jb250ZW50cy5tYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMjhhMzIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLnB5CkBAIC0wLDAgKzEsNzAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBjb2RlY3MKK2ltcG9ydCBvcHRwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2ltcG9ydCB0dmNtCisKK3RyYWNpbmdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uJywgJy4uJykpCitpZiB0cmFjaW5nX3BhdGggbm90IGluIHN5cy5wYXRoOgorICBzeXMucGF0aC5hcHBlbmQodHJhY2luZ19wYXRoKQorCitmcm9tIHRyYWNpbmcgaW1wb3J0IHRyYWNpbmdfcHJvamVjdAorCisKK2RlZiBtYWluKGFyZ3MpOgorICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIodXNhZ2U9IiVwcm9nIC0tb3V0ZGlyPTxkaXJlY3Rvcnk+IikKKyAgcGFyc2VyLmFkZF9vcHRpb24oIi0tb3V0ZGlyIiwgZGVzdD0ib3V0X2RpciIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9IldoZXJlIHRvIHBsYWNlIGdlbmVyYXRlZCBjb250ZW50IikKKyAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbm8tbWluJywgZGVzdD0nbm9fbWluJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgaGVscD0nc2tpcCBtaW5pZmljYXRpb24nKQorICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKworICBpZiBub3Qgb3B0aW9ucy5vdXRfZGlyOgorICAgIHN5cy5zdGRlcnIud3JpdGUoIkVSUk9SOiBNdXN0IHNwZWNpZnkgLS1vdXRkaXI9PGRpcmVjdG9yeT4iKQorICAgIHBhcnNlci5wcmludF9oZWxwKCkKKyAgICByZXR1cm4gMQorCisgIG5hbWVzID0gWyJ1aS5leHRyYXMuYWJvdXRfdHJhY2luZy5hYm91dF90cmFjaW5nIl0KKyAgcHJvamVjdCA9IHRyYWNpbmdfcHJvamVjdC5UcmFjaW5nUHJvamVjdCgpCisgIGxvYWRfc2VxdWVuY2UgPSBwcm9qZWN0LkNhbGNMb2FkU2VxdWVuY2VGb3JNb2R1bGVOYW1lcyhuYW1lcykKKworICBvbGRkaXIgPSBvcy5nZXRjd2QoKQorICB0cnk6CisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG9wdGlvbnMub3V0X2Rpcik6CisgICAgICBvcy5tYWtlZGlycyhvcHRpb25zLm91dF9kaXIpCisgICAgbyA9IGNvZGVjcy5vcGVuKG9zLnBhdGguam9pbihvcHRpb25zLm91dF9kaXIsICJhYm91dF90cmFjaW5nLmh0bWwiKSwgJ3cnLAorICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0ndXRmLTgnKQorICAgIHRyeToKKyAgICAgIHR2Y20uR2VuZXJhdGVTdGFuZGFsb25lSFRNTFRvRmlsZSgKKyAgICAgICAgICBvLAorICAgICAgICAgIGxvYWRfc2VxdWVuY2UsCisgICAgICAgICAgdGl0bGU9J2Nocm9tZTovL3RyYWNpbmcnLAorICAgICAgICAgIGZsYXR0ZW5lZF9qc191cmw9J3RyYWNpbmcuanMnLAorICAgICAgICAgIG1pbmlmeT1ub3Qgb3B0aW9ucy5ub19taW4pCisgICAgZXhjZXB0IHR2Y20ubW9kdWxlLkRlcHNFeGNlcHRpb24sIGV4OgorICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRXJyb3I6ICVzXG5cbiIgJSBzdHIoZXgpKQorICAgICAgcmV0dXJuIDI1NQorICAgIG8uY2xvc2UoKQorCisgICAgbyA9IGNvZGVjcy5vcGVuKG9zLnBhdGguam9pbihvcHRpb25zLm91dF9kaXIsICJhYm91dF90cmFjaW5nLmpzIiksICd3JywKKyAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICBhc3NlcnQgby5lbmNvZGluZyA9PSAndXRmLTgnCisgICAgdHZjbS5HZW5lcmF0ZUpTVG9GaWxlKAorICAgICAgICBvLAorICAgICAgICBsb2FkX3NlcXVlbmNlLAorICAgICAgICB1c2VfaW5jbHVkZV90YWdzX2Zvcl9zY3JpcHRzPUZhbHNlLAorICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3Q9b3B0aW9ucy5vdXRfZGlyLAorICAgICAgICBtaW5pZnk9bm90IG9wdGlvbnMubm9fbWluKQorICAgIG8uY2xvc2UoKQorCisgIGZpbmFsbHk6CisgICAgb3MuY2hkaXIob2xkZGlyKQorCisgIHJldHVybiAwCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZ2VuZXJhdGVfYWJvdXRfdHJhY2luZ19jb250ZW50c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2E0MWMwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZ2VuZXJhdGVfYWJvdXRfdHJhY2luZ19jb250ZW50c191bml0dGVzdC5weQpAQCAtMCwwICsxLDI3IEBACisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgb3MKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCisKK3RyYWNpbmdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uJywgJy4uJykpCitpZiB0cmFjaW5nX3BhdGggbm90IGluIHN5cy5wYXRoOgorICBzeXMucGF0aC5hcHBlbmQodHJhY2luZ19wYXRoKQorCitmcm9tIHRyYWNpbmcuYnVpbGQgaW1wb3J0IGdlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMKKworCitjbGFzcyBHZW5lcmF0ZUFib3V0VHJhY2luZ0NvbnRlbnRzVW5pdHRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICBkZWYgdGVzdF9zbW9rZVRlc3Qoc2VsZik6CisgICAgdHJ5OgorICAgICAgdG1wZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgICByZXMgPSBnZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzLm1haW4oWyctLW91dGRpcicsIHRtcGRpcl0pCisgICAgICBhc3NlcnQgcmVzID09IDAKKyAgICBmaW5hbGx5OgorICAgICAgc2h1dGlsLnJtdHJlZSh0bXBkaXIpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9nanNsaW50IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZ2pzbGludApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTdiNDc1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZ2pzbGludApAQCAtMCwwICsxLDE4IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitzcmNfZGlyID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHRvcF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICcuLicpKQorICBzeXMucGF0aC5hcHBlbmQodG9wX2RpcikKKyAgaW1wb3J0IHRyYWNpbmcKKyAgZnJvbSBob29rcyBpbXBvcnQgZ2pzbGludAorICBzeXMuZXhpdChnanNsaW50Lk1haW4oWworICAgIG9zLnBhdGguam9pbih0b3BfZGlyLCAndHJhY2luZycsICd0cmFjaW5nJyksCisgIF0pKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvZ2pzbGludC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2dqc2xpbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY5ZWZmOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL2dqc2xpbnQucHkKQEAgLTAsMCArMSw0MyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2Zyb20gdHJhY2luZyBpbXBvcnQgdHJhY2luZ19wcm9qZWN0CisKKworZGVmIE1haW4ocGF0aHNfdG9fbGludCk6CisgIHByb2plY3QgPSB0cmFjaW5nX3Byb2plY3QuVHJhY2luZ1Byb2plY3QoKQorICBuZXdfcGF0aHMgPSBbCisgICAgICBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAorICAgICAgICAgIHByb2plY3QudHJhY2luZ190aGlyZF9wYXJ0eV9wYXRoLCAncHl0aG9uX2dmbGFncycpKSwKKyAgICAgIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCisgICAgICAgICAgcHJvamVjdC50cmFjaW5nX3RoaXJkX3BhcnR5X3BhdGgsICdjbG9zdXJlX2xpbnRlcicpKQorICBdCisgIHN5cy5wYXRoICs9IG5ld19wYXRocworICB0cnk6CisgICAgX01haW5JbXBsKHBhdGhzX3RvX2xpbnQpCisgIGZpbmFsbHk6CisgICAgZm9yIHAgaW4gbmV3X3BhdGhzOgorICAgICAgc3lzLnBhdGgucmVtb3ZlKHApCisKKworZGVmIF9NYWluSW1wbChwYXRoc190b19saW50KToKKyAgZnJvbSBjbG9zdXJlX2xpbnRlciBpbXBvcnQgZ2pzbGludAorCisgIGlmIHN5cy5hcmd2WzE6XSA9PSBbJy0taGVscCddOgorICAgIHN5cy5leGl0KGdqc2xpbnQubWFpbigpKQorCisgIGlmIGxlbihzeXMuYXJndikgPiAxOgorICAgIHN5cy5zdGRlcnIud3JpdGUoJ05vIGFyZ3VtZW50cyBhbGxvd2VkJykKKyAgICBzeXMuZXhpdCgxKQorCisgIHN5cy5hcmd2LmFwcGVuZCgnLS1zdHJpY3QnKQorICBzeXMuYXJndi5hcHBlbmQoJy0tdW5peF9tb2RlJykKKyAgc3lzLmFyZ3YuYXBwZW5kKCctLWNoZWNrX2h0bWwnKQorICBmb3IgcCBpbiBwYXRoc190b19saW50OgorICAgIHN5cy5hcmd2LmV4dGVuZChbJy1yJywgb3MucGF0aC5yZWxwYXRoKHApXSkKKworICBnanNsaW50Lm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvanNfY2hlY2tzLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvanNfY2hlY2tzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzODNkMGUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9qc19jaGVja3MucHkKQEAgLTAsMCArMSwxODAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHJlCisKK2Zyb20gdHJhY2luZyBpbXBvcnQgdHJhY2luZ19wcm9qZWN0CisKKworY2xhc3MgSlNDaGVja2VyKG9iamVjdCk6CisKKyAgZGVmIF9faW5pdF9fKHNlbGYsIGlucHV0X2FwaSwgZmlsZV9maWx0ZXI9Tm9uZSk6CisgICAgc2VsZi5pbnB1dF9hcGkgPSBpbnB1dF9hcGkKKyAgICBpZiBmaWxlX2ZpbHRlcjoKKyAgICAgIHNlbGYuZmlsZV9maWx0ZXIgPSBmaWxlX2ZpbHRlcgorICAgIGVsc2U6CisgICAgICBzZWxmLmZpbGVfZmlsdGVyID0gbGFtYmRhIHg6IFRydWUKKworICBkZWYgUmVnZXhDaGVjayhzZWxmLCBsaW5lX251bWJlciwgbGluZSwgcmVnZXgsIG1lc3NhZ2UpOgorICAgICIiIlNlYXJjaGVzIGZvciB8cmVnZXh8IGluIHxsaW5lfCB0byBjaGVjayBmb3IgYSBwYXJ0aWN1bGFyIHN0eWxlCisgICAgICAgdmlvbGF0aW9uLCByZXR1cm5pbmcgYSBtZXNzYWdlIGxpa2UgdGhlIG9uZSBiZWxvdyBpZiB0aGUgcmVnZXggbWF0Y2hlcy4KKyAgICAgICBUaGUgfHJlZ2V4fCBtdXN0IGhhdmUgZXhhY3RseSBvbmUgY2FwdHVyaW5nIGdyb3VwIHNvIHRoYXQgdGhlIHJlbGV2YW50CisgICAgICAgcGFydCBvZiB8bGluZXwgY2FuIGJlIGhpZ2hsaWdodGVkLiBJZiBtb3JlIGdyb3VwcyBhcmUgbmVlZGVkLCB1c2UKKyAgICAgICAiKD86Li4uKSIgdG8gbWFrZSBhIG5vbi1jYXB0dXJpbmcgZ3JvdXAuIFNhbXBsZSBtZXNzYWdlOgorCisgICAgICAgbGluZSA2OiBVc2UgdmFyIGluc3RlYWQgb2YgY29uc3QuCisgICAgICAgICAgIGNvbnN0IGZvbyA9IGJhcigpOworICAgICAgICAgICBeXl5eXgorICAgICIiIgorICAgIG1hdGNoID0gcmUuc2VhcmNoKHJlZ2V4LCBsaW5lKQorICAgIGlmIG1hdGNoOgorICAgICAgYXNzZXJ0IGxlbihtYXRjaC5ncm91cHMoKSkgPT0gMQorICAgICAgc3RhcnQgPSBtYXRjaC5zdGFydCgxKQorICAgICAgbGVuZ3RoID0gbWF0Y2guZW5kKDEpIC0gc3RhcnQKKyAgICAgIHJldHVybiAnICBsaW5lICVkOiAlc1xuJXNcbiVzJyAlICgKKyAgICAgICAgICBsaW5lX251bWJlciwKKyAgICAgICAgICBtZXNzYWdlLAorICAgICAgICAgIGxpbmUsCisgICAgICAgICAgc2VsZi5lcnJvcl9oaWdobGlnaHQoc3RhcnQsIGxlbmd0aCkpCisgICAgcmV0dXJuICcnCisKKyAgZGVmIENvbnN0Q2hlY2soc2VsZiwgaSwgbGluZSk6CisgICAgIiIiQ2hlY2sgZm9yIHVzZSBvZiB0aGUgJ2NvbnN0JyBrZXl3b3JkLiIiIgorICAgIGlmIHJlLnNlYXJjaChyJ1wqXHMrQGNvbnN0JywgbGluZSk6CisgICAgICAjIFByb2JhYmx5IGEgSnNEb2MgbGluZQorICAgICAgcmV0dXJuICcnCisKKyAgICByZXR1cm4gc2VsZi5SZWdleENoZWNrKGksIGxpbmUsIHInKD86Xnxcc3xcKCkoY29uc3QpXHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZSB2YXIgaW5zdGVhZCBvZiBjb25zdC4nKQorCisgIGRlZiBlcnJvcl9oaWdobGlnaHQoc2VsZiwgc3RhcnQsIGxlbmd0aCk6CisgICAgIiIiVGFrZXMgYSBzdGFydCBwb3NpdGlvbiBhbmQgYSBsZW5ndGgsIGFuZCBwcm9kdWNlcyBhIHJvdyBvZiAnXidzIHRvCisgICAgICAgaGlnaGxpZ2h0IHRoZSBjb3JyZXNwb25kaW5nIHBhcnQgb2YgYSBzdHJpbmcuCisgICAgIiIiCisgICAgcmV0dXJuIHN0YXJ0ICogJyAnICsgbGVuZ3RoICogJ14nCisKKyAgZGVmIF9tYWtlRXJyb3JPcldhcm5pbmcoc2VsZiwgZXJyb3JfdGV4dCwgZmlsZW5hbWUpOgorICAgIHJldHVybiBlcnJvcl90ZXh0CisKKyAgZGVmIFJ1bkNoZWNrcyhzZWxmKToKKyAgICAiIiJDaGVjayBmb3IgdmlvbGF0aW9ucyBvZiB0aGUgQ2hyb21pdW0gSmF2YVNjcmlwdCBzdHlsZSBndWlkZS4gU2VlCisgICAgICAgaHR0cDovL2Nocm9taXVtLm9yZy9kZXZlbG9wZXJzL3dlYi1kZXZlbG9wbWVudC1zdHlsZS1ndWlkZSNUT0MtSmF2YVNjcmlwdAorICAgICIiIgorCisgICAgaW1wb3J0IHN5cworICAgIGltcG9ydCB3YXJuaW5ncworICAgIG9sZF9wYXRoID0gc3lzLnBhdGgKKyAgICBvbGRfZmlsdGVycyA9IHdhcm5pbmdzLmZpbHRlcnMKKworICAgIHRyeToKKyAgICAgIGJhc2VfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCisgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJy4uJykpCisgICAgICBjbG9zdXJlX2xpbnRlcl9wYXRoID0gb3MucGF0aC5qb2luKAorICAgICAgICAgIGJhc2VfcGF0aCwgJ3RyYWNpbmcnLCAndGhpcmRfcGFydHknLCAnY2xvc3VyZV9saW50ZXInKQorICAgICAgZ2ZsYWdzX3BhdGggPSBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgYmFzZV9wYXRoLCAndHJhY2luZycsICd0aGlyZF9wYXJ0eScsICdweXRob25fZ2ZsYWdzJykKKyAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBjbG9zdXJlX2xpbnRlcl9wYXRoKQorICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIGdmbGFnc19wYXRoKQorCisgICAgICB3YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncygnaWdub3JlJywgY2F0ZWdvcnk9RGVwcmVjYXRpb25XYXJuaW5nKQorCisgICAgICBmcm9tIGNsb3N1cmVfbGludGVyIGltcG9ydCBjaGVja2VyLCBlcnJvcnMKKyAgICAgIGZyb20gY2xvc3VyZV9saW50ZXIuY29tbW9uIGltcG9ydCBlcnJvcmhhbmRsZXIKKworICAgIGZpbmFsbHk6CisgICAgICBzeXMucGF0aCA9IG9sZF9wYXRoCisgICAgICB3YXJuaW5ncy5maWx0ZXJzID0gb2xkX2ZpbHRlcnMKKworICAgIGNsYXNzIEVycm9ySGFuZGxlckltcGwoZXJyb3JoYW5kbGVyLkVycm9ySGFuZGxlcik6CisgICAgICAiIiJGaWx0ZXJzIG91dCBlcnJvcnMgdGhhdCBkb24ndCBhcHBseSB0byBDaHJvbWl1bSBKYXZhU2NyaXB0IGNvZGUuIiIiCisKKyAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fZXJyb3JzID0gW10KKworICAgICAgZGVmIEhhbmRsZUZpbGUoc2VsZiwgZmlsZW5hbWUsIGZpcnN0X3Rva2VuKToKKyAgICAgICAgc2VsZi5fZmlsZW5hbWUgPSBmaWxlbmFtZQorCisgICAgICBkZWYgSGFuZGxlRXJyb3Ioc2VsZiwgZXJyb3IpOgorICAgICAgICBpZiAoc2VsZi5fdmFsaWQoZXJyb3IpKToKKyAgICAgICAgICBlcnJvci5maWxlbmFtZSA9IHNlbGYuX2ZpbGVuYW1lCisgICAgICAgICAgc2VsZi5fZXJyb3JzLmFwcGVuZChlcnJvcikKKworICAgICAgZGVmIEdldEVycm9ycyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Vycm9ycworCisgICAgICBkZWYgSGFzRXJyb3JzKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9lcnJvcnMpCisKKyAgICAgIGRlZiBfdmFsaWQoc2VsZiwgZXJyb3IpOgorICAgICAgICAiIiJDaGVjayB3aGV0aGVyIGFuIGVycm9yIGlzIHZhbGlkLiBNb3N0IGVycm9ycyBhcmUgdmFsaWQsIHdpdGggYSBmZXcKKyAgICAgICAgICAgZXhjZXB0aW9ucyB3aGljaCBhcmUgbGlzdGVkIGhlcmUuCisgICAgICAgICIiIgorCisgICAgICAgIGlzX2dyaXRfc3RhdGVtZW50ID0gYm9vbCgKKyAgICAgICAgICAgIHJlLnNlYXJjaCgiPC8/KGluY2x1ZGV8aWYpIiwgZXJyb3IudG9rZW4ubGluZSkpCisKKyAgICAgICAgcmV0dXJuIG5vdCBpc19ncml0X3N0YXRlbWVudCBhbmQgZXJyb3IuY29kZSBub3QgaW4gWworICAgICAgICAgICAgZXJyb3JzLkpTRE9DX0lMTEVHQUxfUVVFU1RJT05fV0lUSF9QSVBFLAorICAgICAgICAgICAgZXJyb3JzLkpTRE9DX1RBR19ERVNDUklQVElPTl9FTkRTX1dJVEhfSU5WQUxJRF9DSEFSQUNURVIsCisgICAgICAgICAgICBlcnJvcnMuTUlTU0lOR19KU0RPQ19UQUdfVEhJUywKKyAgICAgICAgXQorCisgICAgcmVzdWx0cyA9IFtdCisKKyAgICB0cnk6CisgICAgICBhZmZlY3RlZF9maWxlcyA9IHNlbGYuaW5wdXRfYXBpLkFmZmVjdGVkRmlsZXMoCisgICAgICAgICAgZmlsZV9maWx0ZXI9c2VsZi5maWxlX2ZpbHRlciwKKyAgICAgICAgICBpbmNsdWRlX2RlbGV0ZXM9RmFsc2UpCisgICAgZXhjZXB0OgorICAgICAgYWZmZWN0ZWRfZmlsZXMgPSBbXQorCisgICAgZGVmIFNob3VsZENoZWNrKGYpOgorICAgICAgaWYgdHJhY2luZ19wcm9qZWN0LlRyYWNpbmdQcm9qZWN0LklzSWdub3JlZEZpbGUoZik6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgaWYgZi5Mb2NhbFBhdGgoKS5lbmRzd2l0aCgnLmpzJyk6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgICBpZiBmLkxvY2FsUGF0aCgpLmVuZHN3aXRoKCcuaHRtbCcpOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBhZmZlY3RlZF9qc19maWxlcyA9IGZpbHRlcihTaG91bGRDaGVjaywgYWZmZWN0ZWRfZmlsZXMpCisgICAgZm9yIGYgaW4gYWZmZWN0ZWRfanNfZmlsZXM6CisgICAgICBlcnJvcl9saW5lcyA9IFtdCisKKyAgICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShmLk5ld0NvbnRlbnRzKCksIHN0YXJ0PTEpOgorICAgICAgICBlcnJvcl9saW5lcyArPSBmaWx0ZXIoTm9uZSwgWworICAgICAgICAgICAgc2VsZi5Db25zdENoZWNrKGksIGxpbmUpLAorICAgICAgICBdKQorCisgICAgICAjIFVzZSBjbG9zdXJlX2xpbnRlciB0byBjaGVjayBmb3Igc2V2ZXJhbCBkaWZmZXJlbnQgZXJyb3JzCisgICAgICBpbXBvcnQgZ2ZsYWdzIGFzIGZsYWdzCisgICAgICBmbGFncy5GTEFHUy5zdHJpY3QgPSBUcnVlCisgICAgICBlcnJvcl9oYW5kbGVyID0gRXJyb3JIYW5kbGVySW1wbCgpCisgICAgICBqc19jaGVja2VyID0gY2hlY2tlci5KYXZhU2NyaXB0U3R5bGVDaGVja2VyKGVycm9yX2hhbmRsZXIpCisgICAgICBqc19jaGVja2VyLkNoZWNrKGYuQWJzb2x1dGVMb2NhbFBhdGgoKSkKKworICAgICAgZm9yIGVycm9yIGluIGVycm9yX2hhbmRsZXIuR2V0RXJyb3JzKCk6CisgICAgICAgIGhpZ2hsaWdodCA9IHNlbGYuZXJyb3JfaGlnaGxpZ2h0KAorICAgICAgICAgICAgZXJyb3IudG9rZW4uc3RhcnRfaW5kZXgsIGVycm9yLnRva2VuLmxlbmd0aCkKKyAgICAgICAgZXJyb3JfbXNnID0gJyAgbGluZSAlZDogRSUwNGQ6ICVzXG4lc1xuJXMnICUgKAorICAgICAgICAgICAgZXJyb3IudG9rZW4ubGluZV9udW1iZXIsCisgICAgICAgICAgICBlcnJvci5jb2RlLAorICAgICAgICAgICAgZXJyb3IubWVzc2FnZSwKKyAgICAgICAgICAgIGVycm9yLnRva2VuLmxpbmUucnN0cmlwKCksCisgICAgICAgICAgICBoaWdobGlnaHQpCisgICAgICAgIGVycm9yX2xpbmVzLmFwcGVuZChlcnJvcl9tc2cpCisKKyAgICAgIGlmIGVycm9yX2xpbmVzOgorICAgICAgICBlcnJvcl9saW5lcyA9IFsKKyAgICAgICAgICAgICdGb3VuZCBKYXZhU2NyaXB0IHN0eWxlIHZpb2xhdGlvbnMgaW4gJXM6JyAlCisgICAgICAgICAgICBmLkxvY2FsUGF0aCgpXSArIGVycm9yX2xpbmVzCisgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNlbGYuX21ha2VFcnJvck9yV2FybmluZygKKyAgICAgICAgICAgICdcbicuam9pbihlcnJvcl9saW5lcyksIGYuTG9jYWxQYXRoKCkpKQorCisgICAgcmV0dXJuIHJlc3VsdHMKKworCitkZWYgUnVuQ2hlY2tzKGlucHV0X2FwaSk6CisgIHJldHVybiBKU0NoZWNrZXIoaW5wdXRfYXBpKS5SdW5DaGVja3MoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvcnVuX2Rldl9zZXJ2ZXJfdGVzdHMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC9ydW5fZGV2X3NlcnZlcl90ZXN0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZjIxYjE1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvcnVuX2Rldl9zZXJ2ZXJfdGVzdHMKQEAgLTAsMCArMSwxOTIgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3RhdAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHRpbWUKK2ltcG9ydCB1cmxsaWIyCitpbXBvcnQgemlwZmlsZQorCisjIFVSTCBvbiBvbWFoYXByb3h5LmFwcHNwb3QuY29tIHdoaWNoIGxpc3RzIGNsb3VkIHN0b3JhZ2UgYnVja2V0cy4KK09NQUhBX1VSTCA9ICdodHRwczovL29tYWhhcHJveHkuYXBwc3BvdC5jb20vYWxsP29zPSVzJmNoYW5uZWw9c3RhYmxlJworCisjIFVSTCBpbiBjbG91ZCBzdG9yYWdlIHRvIGRvd25sb2FkIENocm9tZSB6aXAgZnJvbS4KK0NMT1VEU1RPUkFHRV9VUkwgPSAoJ2h0dHBzOi8vY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21lLXVuc2lnbmVkJworICAgICAgICAgICAgICAgICAgICAnL2Rlc2t0b3AtVzE1SzNZLyVzLyVzL2Nocm9tZS0lcy56aXAnKQorCisjIE1hcHBpbmcgb2Ygc3lzLnBsYXRmb3JtIC0+IHBsYXRmb3JtLXNwZWNpZmljIG5hbWVzIGFuZCBwYXRocy4KK1BMQVRGT1JNX01BUFBJTkcgPSB7CisgICAgJ2xpbnV4Mic6IHsKKyAgICAgICAgJ29tYWhhJzogJ2xpbnV4JywKKyAgICAgICAgJ2NzX2Rpcic6ICdwcmVjaXNlNjQnLAorICAgICAgICAnY3NfZmlsZW5hbWUnOiAncHJlY2lzZTY0JywKKyAgICAgICAgJ2Nocm9tZXBhdGgnOiAnY2hyb21lLXByZWNpc2U2NC9jaHJvbWUnLAorICAgICAgICAndXNlX3hmdmInOiBUcnVlLAorICAgIH0sCisgICAgJ3dpbjMyJzogeworICAgICAgICAnb21haGEnOiAnd2luJywKKyAgICAgICAgJ2NzX2Rpcic6ICd3aW4nLAorICAgICAgICAnY3NfZmlsZW5hbWUnOiAnd2luJywKKyAgICAgICAgJ2Nocm9tZXBhdGgnOiAnQ2hyb21lLWJpblxcY2hyb21lLmV4ZScsCisgICAgICAgICdpbnN0YWxsZXJfdXJsJzogKCdodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nocm9tZS1zaWduZWQvZGVza3RvcC1XMTVLM1kvJVZFUlNJT04lL3dpbi8nCisgICAgICAgICAgICAgICAgICAgICAgICAgICclVkVSU0lPTiVfY2hyb21lX2luc3RhbGxlci5leGUnKSwKKyAgICB9LAorICAgICdkYXJ3aW4nOiB7CisgICAgICAgICdvbWFoYSc6ICdtYWMnLAorICAgICAgICAnY3NfZGlyJzogJ21hYzY0JywKKyAgICAgICAgJ2NzX2ZpbGVuYW1lJzogJ21hYycsCisgICAgICAgICdjaHJvbWVwYXRoJzogKCdjaHJvbWUtbWFjL0dvb2dsZSBDaHJvbWUuYXBwLycKKyAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnRzL01hY09TL0dvb2dsZSBDaHJvbWUnKSwKKyAgICAgICAgJ2FkZGl0aW9uYWxfcGF0aHMnOiBbCisgICAgICAgICAgICAoJ2Nocm9tZS1tYWMvR29vZ2xlIENocm9tZS5hcHAvQ29udGVudHMvVmVyc2lvbnMvJVZFUlNJT04lLycKKyAgICAgICAgICAgICAnR29vZ2xlIENocm9tZSBIZWxwZXIuYXBwL0NvbnRlbnRzL01hY09TL0dvb2dsZSBDaHJvbWUgSGVscGVyJyksCisgICAgICAgIF0sCisgICAgfSwKK30KKworCitkZWYgU3RhcnRYdmZiKCk6CisgIGRpc3BsYXkgPSAnOjk5JworICB4dmZiX2NvbW1hbmQgPSBbCisgICAgJ1h2ZmInLAorICAgIGRpc3BsYXksCisgICAgJy1zY3JlZW4nLAorICAgICcwJywKKyAgICAnMTAyNHg3Njl4MjQnLAorICAgICctYWMnCisgIF0KKyAgeHZmYl9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbigKKyAgICAgIHh2ZmJfY29tbWFuZCwgc3Rkb3V0PW9wZW4ob3MuZGV2bnVsbCksIHN0ZGVycj1vcGVuKG9zLmRldm51bGwpKQorICB0aW1lLnNsZWVwKDAuMikKKyAgcmV0dXJuY29kZSA9IHh2ZmJfcHJvY2Vzcy5wb2xsKCkKKyAgaWYgcmV0dXJuY29kZSBpcyBOb25lOgorICAgIG9zLmVudmlyb25bJ0RJU1BMQVknXSA9IGRpc3BsYXkKKyAgZWxzZToKKyAgICBsb2dnaW5nLmVycm9yKCdYdmZiIGRpZCBub3Qgc3RhcnQsIHJldHVybmNvZGU6ICVzJywgcmV0dXJuY29kZSkKKworCitkZWYgSXNEZXBvdFRvb2xzUGF0aChwYXRoKToKKyAgcmV0dXJuIG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihwYXRoLCAnZ2NsaWVudCcpKQorCisKK2RlZiBGaW5kRGVwb3RUb29scygpOgorICAjIENoZWNrIGlmIGRlcG90X3Rvb2xzIGlzIGFscmVhZHkgaW4gUFlUSE9OUEFUSAorICBmb3IgcGF0aCBpbiBzeXMucGF0aDoKKyAgICBpZiBwYXRoLnJzdHJpcChvcy5zZXApLmVuZHN3aXRoKCdkZXBvdF90b29scycpIGFuZCBJc0RlcG90VG9vbHNQYXRoKHBhdGgpOgorICAgICAgcmV0dXJuIHBhdGgKKworICAjIENoZWNrIGlmIGRlcG90X3Rvb2xzIGlzIGluIHRoZSBwYXRoCisgIGZvciBwYXRoIGluIG9zLmVudmlyb25bJ1BBVEgnXS5zcGxpdChvcy5wYXRoc2VwKToKKyAgICBpZiBJc0RlcG90VG9vbHNQYXRoKHBhdGgpOgorICAgICAgICByZXR1cm4gcGF0aC5yc3RyaXAob3Muc2VwKQorCisgIHJldHVybiBOb25lCisKKworZGVmIERvd25sb2FkU2lnbmVkV2luQ2hyb21lU3RhYmxlKHVybCwgdmVyc2lvbik6CisgICIiIk9uIFdpbmRvd3MsIHVzZSBzaWduZWQgQ2hyb21lIHNpbmNlIGl0IG1heSBiZSBtb3JlIHN0YWJsZS4iIiIKKyAgdXJsID0gdXJsLnJlcGxhY2UoJyVWRVJTSU9OJScsIHZlcnNpb24pCisgIHRtcGRpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICBpbnN0YWxsZXJfcGF0aCA9IG9zLnBhdGguam9pbih0bXBkaXIsIHVybFt1cmwucmluZGV4KCcvJykgKyAxOl0pCisgIHdpdGggb3BlbihpbnN0YWxsZXJfcGF0aCwgJ3diJykgYXMgbG9jYWxfZmlsZToKKyAgICBsb2NhbF9maWxlLndyaXRlKHVybGxpYjIudXJsb3Blbih1cmwpLnJlYWQoKSkKKyAgZGVwb3RfdG9vbHNfcGF0aCA9IEZpbmREZXBvdFRvb2xzKCkKKyAgcGF0aF83eiA9IG9zLnBhdGguam9pbihkZXBvdF90b29sc19wYXRoLCAnd2luX3Rvb2xjaGFpbicsICc3eicsICc3ei5leGUnKQorICBjb21tYW5kXzd6ID0gW3BhdGhfN3osICd4JywgJy1vJyArIHRtcGRpciwgaW5zdGFsbGVyX3BhdGhdCisgIHByb2Nlc3NfN3ogPSBzdWJwcm9jZXNzLlBvcGVuKAorICAgIGNvbW1hbmRfN3osIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCisgIG91dF83eiwgZXJyXzd6ID0gcHJvY2Vzc183ei5jb21tdW5pY2F0ZSgpCisgIGNvbW1hbmRfN3ogPSBbcGF0aF83eiwgJ3gnLCAnLW8nICsgdG1wZGlyLCBvcy5wYXRoLmpvaW4odG1wZGlyLCAnY2hyb21lLjd6JyldCisgIHByb2Nlc3NfN3ogPSBzdWJwcm9jZXNzLlBvcGVuKAorICAgIGNvbW1hbmRfN3osIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCisgIG91dF83eiwgZXJyXzd6ID0gcHJvY2Vzc183ei5jb21tdW5pY2F0ZSgpCisgIHJldHVybiB0bXBkaXIsIHZlcnNpb24KKworCitkZWYgRG93bmxvYWRDaHJvbWVTdGFibGUoKToKKyAgcGxhdGZvcm1fZGF0YSA9IFBMQVRGT1JNX01BUFBJTkdbc3lzLnBsYXRmb3JtXQorICBvbWFoYV9wbGF0Zm9ybSA9IHBsYXRmb3JtX2RhdGFbJ29tYWhhJ10KKyAgb21haGFfdXJsID0gT01BSEFfVVJMICUgb21haGFfcGxhdGZvcm0KKyAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9wZW4ob21haGFfdXJsKQorICB2ZXJzaW9uID0gcmVzcG9uc2UucmVhZGxpbmVzKClbMV0uc3BsaXQoJywnKVsyXQorICBpZiAnaW5zdGFsbGVyX3VybCcgaW4gcGxhdGZvcm1fZGF0YToKKyAgICByZXR1cm4gRG93bmxvYWRTaWduZWRXaW5DaHJvbWVTdGFibGUoCisgICAgICAgIHBsYXRmb3JtX2RhdGFbJ2luc3RhbGxlcl91cmwnXSwgdmVyc2lvbikKKyAgY3NfdXJsID0gQ0xPVURTVE9SQUdFX1VSTCAlICgKKyAgICAgIHZlcnNpb24sCisgICAgICBwbGF0Zm9ybV9kYXRhWydjc19kaXInXSwKKyAgICAgIHBsYXRmb3JtX2RhdGFbJ2NzX2ZpbGVuYW1lJ10pCisgIHRtcGRpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICB6aXBfcGF0aCA9IG9zLnBhdGguam9pbih0bXBkaXIsICdjaHJvbWUuemlwJykKKyAgd2l0aCBvcGVuKHppcF9wYXRoLCAnd2InKSBhcyBsb2NhbF9maWxlOgorICAgIGxvY2FsX2ZpbGUud3JpdGUodXJsbGliMi51cmxvcGVuKGNzX3VybCkucmVhZCgpKQorICB6ZiA9IHppcGZpbGUuWmlwRmlsZSh6aXBfcGF0aCkKKyAgemYuZXh0cmFjdGFsbChwYXRoPXRtcGRpcikKKyAgcmV0dXJuIHRtcGRpciwgdmVyc2lvbgorCisKK2RlZiBtYWluKCk6CisgIHRyeToKKyAgICBwbGF0Zm9ybV9kYXRhID0gUExBVEZPUk1fTUFQUElOR1tzeXMucGxhdGZvcm1dCisgICAgaWYgcGxhdGZvcm1fZGF0YS5nZXQoJ3VzZV94ZnZiJyk6CisgICAgICBTdGFydFh2ZmIoKQorICAgIHVzZXJfZGF0YV9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICB0bXBkaXIsIHZlcnNpb24gPSBEb3dubG9hZENocm9tZVN0YWJsZSgpCisgICAgc2VydmVyX3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKAorICAgICAgICBvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwgb3MucGFyZGlyLCAncnVuX2Rldl9zZXJ2ZXInKQorICAgIHNlcnZlcl9jb21tYW5kID0gW3NlcnZlcl9wYXRoLCAnLS1uby1pbnN0YWxsLWhvb2tzJ10KKyAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyk6CisgICAgICAgIHNlcnZlcl9jb21tYW5kID0gWydweXRob24uZXhlJ10gKyBzZXJ2ZXJfY29tbWFuZAorICAgIHNlcnZlcl9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbigKKyAgICAgICAgc2VydmVyX2NvbW1hbmQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCisgICAgdGltZS5zbGVlcCg1KQorCisgICAgY2hyb21lX3BhdGggPSBvcy5wYXRoLmpvaW4oCisgICAgICAgIHRtcGRpciwgcGxhdGZvcm1fZGF0YVsnY2hyb21lcGF0aCddKQorICAgIG9zLmNobW9kKGNocm9tZV9wYXRoLCBvcy5zdGF0KGNocm9tZV9wYXRoKS5zdF9tb2RlIHwgc3RhdC5TX0lFWEVDKQorICAgIGlmIHBsYXRmb3JtX2RhdGEuZ2V0KCdhZGRpdGlvbmFsX3BhdGhzJyk6CisgICAgICBmb3IgcGF0aCBpbiBwbGF0Zm9ybV9kYXRhLmdldCgnYWRkaXRpb25hbF9wYXRocycpOgorICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCclVkVSU0lPTiUnLCB2ZXJzaW9uKQorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHRtcGRpciwgcGF0aCkKKyAgICAgICAgb3MuY2htb2QocGF0aCwgb3Muc3RhdChwYXRoKS5zdF9tb2RlIHwgc3RhdC5TX0lFWEVDKQorICAgIGNocm9tZV9jb21tYW5kID0gWworICAgICAgICBjaHJvbWVfcGF0aCwKKyAgICAgICAgJy0tdXNlci1kYXRhLWRpcj0lcycgJSB1c2VyX2RhdGFfZGlyLAorICAgICAgICAnLS1uby1zYW5kYm94JywKKyAgICAgICAgJy0tbm8tZXhwZXJpbWVudHMnLAorICAgICAgICAnLS1uby1maXJzdC1ydW4nLAorICAgICAgICAnLS1ub2VycmRpYWxvZ3MnLAorICAgICAgICAnaHR0cDovL2xvY2FsaG9zdDo4MDAzL2Jhc2UvdGVzdHMuaHRtbD9oZWFkbGVzcz10cnVlJnRlc3RUeXBlVG9SdW49YWxsJywKKyAgICBdCisgICAgY2hyb21lX3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKAorICAgICAgICBjaHJvbWVfY29tbWFuZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKKyAgICBzZXJ2ZXJfb3V0LCBzZXJ2ZXJfZXJyID0gc2VydmVyX3Byb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgIGNocm9tZV9wcm9jZXNzLmtpbGwoKQorICAgIGlmIHNlcnZlcl9wcm9jZXNzLnJldHVybmNvZGUgIT0gMDoKKyAgICAgIGxvZ2dpbmcuZXJyb3IoJ1Rlc3RzIGZhaWxlZCEnKQorICAgICAgbG9nZ2luZy5lcnJvcignU2VydmVyIHN0ZGVycjonKQorICAgICAgbG9nZ2luZy5lcnJvcihzZXJ2ZXJfZXJyKQorICAgICAgbG9nZ2luZy5lcnJvcignU2VydmVyIHN0ZG91dDonKQorICAgICAgbG9nZ2luZy5lcnJvcihzZXJ2ZXJfb3V0KQorICAgIGVsc2U6CisgICAgICBwcmludCBzZXJ2ZXJfb3V0CisgIGZpbmFsbHk6CisgICAgIyBXYWl0IGZvciBDaHJvbWUgdG8gYmUga2lsbGVkIGJlZm9yZSBkZWxldGluZyB0ZW1wIENocm9tZSBkaXIuCisgICAgdGltZS5zbGVlcCg1KQorICAgIHNodXRpbC5ybXRyZWUodG1wZGlyKQorICAgIHNodXRpbC5ybXRyZWUodXNlcl9kYXRhX2RpcikKKworICBzeXMuZXhpdChzZXJ2ZXJfcHJvY2Vzcy5yZXR1cm5jb2RlKQorCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3RlbXBvcmFyeV9kZXZfc2VydmVyLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdGVtcG9yYXJ5X2Rldl9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA4NzBhZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3RlbXBvcmFyeV9kZXZfc2VydmVyLnB5CkBAIC0wLDAgKzEsMTg2IEBACisjIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBodHRwbGliCitpbXBvcnQgb3MKK2ltcG9ydCBqc29uCitpbXBvcnQgcmUKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQorCitmcm9tIHRyYWNpbmcuYnVpbGQgaW1wb3J0IGRldl9zZXJ2ZXIKKworCitkZWYgR2V0VW5yZXNlcnZlZEF2YWlsYWJsZUxvY2FsUG9ydCgpOgorICAiIiJSZXR1cm5zIGFuIGF2YWlsYWJsZSBwb3J0IG9uIHRoZSBzeXN0ZW0uCisKKyAgV0FSTklORzogVGhpcyBtZXRob2QgZG9lcyBub3QgcmVzZXJ2ZSB0aGUgcG9ydCBpdCByZXR1cm5zLCBzbyBpdCBtYXkgYmUgdXNlZAorICBieSBzb21ldGhpbmcgZWxzZSBiZWZvcmUgeW91IGdldCB0byB1c2UgaXQuIFRoaXMgY2FuIGxlYWQgdG8gZmxha2UuCisgICIiIgorICB0bXAgPSBzb2NrZXQuc29ja2V0KCkKKyAgdG1wLmJpbmQoKCcnLCAwKSkKKyAgcG9ydCA9IHRtcC5nZXRzb2NrbmFtZSgpWzFdCisgIHRtcC5jbG9zZSgpCisKKyAgcmV0dXJuIHBvcnQKKworCitkZWYgV2FpdEZvcihjb25kaXRpb24sIHRpbWVvdXQpOgorICAiIiJXYWl0cyBmb3IgdXAgdG8gfHRpbWVvdXR8IHNlY3MgZm9yIHRoZSBmdW5jdGlvbiB8Y29uZGl0aW9ufCB0byByZXR1cm4gVHJ1ZS4KKworICBQb2xsaW5nIGZyZXF1ZW5jeSBpcyAoZWxhcHNlZF90aW1lIC8gMTApLCB3aXRoIGEgbWluIG9mIC4xcyBhbmQgbWF4IG9mIDVzLgorCisgIFJldHVybnM6CisgICAgUmVzdWx0IG9mIHxjb25kaXRpb258IGZ1bmN0aW9uIChpZiBwcmVzZW50KS4KKyAgIiIiCisgIG1pbl9wb2xsX2ludGVydmFsID0gMC4xCisgIG1heF9wb2xsX2ludGVydmFsID0gNQorICBvdXRwdXRfaW50ZXJ2YWwgPSAzMDAKKworICBkZWYgR2V0Q29uZGl0aW9uU3RyaW5nKCk6CisgICAgaWYgY29uZGl0aW9uLl9fbmFtZV9fID09ICc8bGFtYmRhPic6CisgICAgICB0cnk6CisgICAgICAgIHJldHVybiBpbnNwZWN0LmdldHNvdXJjZShjb25kaXRpb24pLnN0cmlwKCkKKyAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBwYXNzCisgICAgcmV0dXJuIGNvbmRpdGlvbi5fX25hbWVfXworCisgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQorICBsYXN0X291dHB1dF90aW1lID0gc3RhcnRfdGltZQorICB3aGlsZSBUcnVlOgorICAgIHJlcyA9IGNvbmRpdGlvbigpCisgICAgaWYgcmVzOgorICAgICAgcmV0dXJuIHJlcworICAgIG5vdyA9IHRpbWUudGltZSgpCisgICAgZWxhcHNlZF90aW1lID0gbm93IC0gc3RhcnRfdGltZQorICAgIGxhc3Rfb3V0cHV0X2VsYXBzZWRfdGltZSA9IG5vdyAtIGxhc3Rfb3V0cHV0X3RpbWUKKyAgICBpZiBlbGFwc2VkX3RpbWUgPiB0aW1lb3V0OgorICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyAlZHMgZm9yICVzLicgJQorICAgICAgICAgICAgICAgICAgICAgICh0aW1lb3V0LCBHZXRDb25kaXRpb25TdHJpbmcoKSkpCisgICAgaWYgbGFzdF9vdXRwdXRfZWxhcHNlZF90aW1lID4gb3V0cHV0X2ludGVydmFsOgorICAgICAgbG9nZ2luZy5pbmZvKCdDb250aW51aW5nIHRvIHdhaXQgJWRzIGZvciAlcy4gRWxhcHNlZDogJWRzLicsCisgICAgICAgICAgICAgICAgICAgdGltZW91dCwgR2V0Q29uZGl0aW9uU3RyaW5nKCksIGVsYXBzZWRfdGltZSkKKyAgICAgIGxhc3Rfb3V0cHV0X3RpbWUgPSB0aW1lLnRpbWUoKQorICAgIHBvbGxfaW50ZXJ2YWwgPSBtaW4obWF4KGVsYXBzZWRfdGltZSAvIDEwLiwgbWluX3BvbGxfaW50ZXJ2YWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgbWF4X3BvbGxfaW50ZXJ2YWwpCisgICAgdGltZS5zbGVlcChwb2xsX2ludGVydmFsKQorCisKK2NsYXNzIFRlbXBvcmFyeURldlNlcnZlcihvYmplY3QpOgorICBkZWYgX19pbml0X18oc2VsZik6CisgICAgc2VsZi5fcG9ydCA9IE5vbmUKKyAgICBzZWxmLl9zZXJ2ZXIgPSBOb25lCisKKyAgICBjbWQgPSBbc3lzLmV4ZWN1dGFibGUsICctbScsIF9fbmFtZV9fXQorICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAgZW52WydQWVRIT05QQVRIJ10gPSBvcy5wYXRoLmFic3BhdGgoCisgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKKworICAgIHNlbGYuX3NlcnZlciA9IHN1YnByb2Nlc3MuUG9wZW4oCisgICAgICAgIGNtZCwgY3dkPW9zLmdldGN3ZCgpLCBlbnY9ZW52LAorICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3lzLnN0ZGVycikKKworICAgIHBvcnRfcmUgPSByZS5jb21waWxlKAorICAgICAgICAnVGVtcG9yYXJ5RGV2U2VydmVyIHN0YXJ0ZWQgb24gcG9ydCAoP1A8cG9ydD5cZCspJykKKyAgICB3aGlsZSBzZWxmLl9zZXJ2ZXIucG9sbCgpIGlzIE5vbmU6CisgICAgICBsaW5lID0gc2VsZi5fc2VydmVyLnN0ZG91dC5yZWFkbGluZSgpCisgICAgICBtID0gcG9ydF9yZS5tYXRjaChsaW5lKQorICAgICAgaWYgbToKKyAgICAgICAgc2VsZi5fcG9ydCA9IGludChtLmdyb3VwKCdwb3J0JykpCisgICAgICAgIGJyZWFrCisgICAgaWYgbm90IHNlbGYuX3BvcnQ6CisgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkblwndCBzdGFydCcpCisKKyAgICBkZWYgSXNTZXJ2ZXJVcCgpOgorICAgICAgcmV0dXJuIG5vdCBzb2NrZXQuc29ja2V0KCkuY29ubmVjdF9leCgoJ2xvY2FsaG9zdCcsIHNlbGYuX3BvcnQpKQorICAgIFdhaXRGb3IoSXNTZXJ2ZXJVcCwgMTApCisKKyAgQHByb3BlcnR5CisgIGRlZiBwb3J0KHNlbGYpOgorICAgIHJldHVybiBzZWxmLl9wb3J0CisKKyAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgc2VsZi5DbG9zZSgpCisKKyAgZGVmIENsb3NlKHNlbGYpOgorICAgIGlmIHNlbGYuX3NlcnZlcjoKKyAgICAgICMgVE9ETyh0b255Zyk6IFNob3VsZCB0aGlzIGJsb2NrIHVudGlsIGl0IGdvZXMgYXdheT8KKyAgICAgIGlmIHNlbGYuX3NlcnZlci5wb2xsKCkgaXMgTm9uZToKKyAgICAgICAgc2VsZi5fc2VydmVyLmtpbGwoKQorICAgICAgc2VsZi5fc2VydmVyID0gTm9uZQorCisgIEBwcm9wZXJ0eQorICBkZWYgdXJsKHNlbGYpOgorICAgIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDolaS8nICUgc2VsZi5fcG9ydAorCisgIGRlZiBHZXQoc2VsZiwgcGF0aCwgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZT0yMDApOgorICAgIGNvbm4gPSBodHRwbGliLkhUVFBDb25uZWN0aW9uKCdsb2NhbGhvc3QnLCBzZWxmLnBvcnQsIFRydWUpCisgICAgY29ubi5jb25uZWN0KCkKKyAgICBjb25uLnJlcXVlc3QoJ0dFVCcsIHBhdGgpCisgICAgcmVzcCA9IGNvbm4uZ2V0cmVzcG9uc2UoKQorICAgIHJlc3Bfc3RyID0gcmVzcC5yZWFkKHJlc3AuZ2V0aGVhZGVyKCdDb250ZW50LUxlbmd0aCcpKQorICAgIGlmIHJlc3Auc3RhdHVzICE9IGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGU6CisgICAgICB0cnk6CisgICAgICAgIHJlc3BfZGF0YSA9IGpzb24ubG9hZHMocmVzcF9zdHIpCisgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcmVzcF9kYXRhID0ge30KKyAgICAgIGlmICdkZXRhaWxzJyBpbiByZXNwX2RhdGE6CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUocmVzcF9kYXRhWydkZXRhaWxzJ10pCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ1xuJykKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFeHBlY3RlZCBzdGF0dXMgJWksIGdvdCAlaScgJQorICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUsIHJlc3Auc3RhdHVzKSkKKyAgICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXhwZWN0ZWQgc3RhdHVzICVpLCBnb3QgJWk6ICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSwgcmVzcC5zdGF0dXMsIHJlc3Bfc3RyKSkKKyAgICByZXR1cm4gcmVzcF9zdHIKKworICBkZWYgQ2FsbE9uU2VydmVyKHNlbGYsIG1ldGhvZF9uYW1lLCAqYXJncyk6CisgICAgYXJnX3N0cmluZyA9ICcsJy5qb2luKHJlcHIoYXJnKSBmb3IgYXJnIGluIGFyZ3MpCisgICAgZGF0YSA9ICdzZWxmLiVzKCVzKScgJSAobWV0aG9kX25hbWUsIGFyZ19zdHJpbmcpCisKKyAgICBjb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbignbG9jYWxob3N0Jywgc2VsZi5wb3J0LCBUcnVlKQorICAgIGNvbm4uY29ubmVjdCgpCisgICAgY29ubi5yZXF1ZXN0KCdQT1NUJywgJy90ZXN0L2N1c3RvbWl6ZScsIGRhdGEpCisgICAgcmVzcCA9IGNvbm4uZ2V0cmVzcG9uc2UoKQorICAgIHJlc3Bfc3RyID0gcmVzcC5yZWFkKHJlc3AuZ2V0aGVhZGVyKCdDb250ZW50LUxlbmd0aCcpKQorICAgIGlmIHJlc3Auc3RhdHVzICE9IDIwMDoKKyAgICAgIHJlc3BfZGF0YSA9IGpzb24ubG9hZHMocmVzcF9zdHIpCisgICAgICBzeXMuc3RkZXJyLndyaXRlKHJlc3BfZGF0YVsnZGV0YWlscyddKQorICAgICAgc3lzLnN0ZGVyci53cml0ZSgnXG4nKQorICAgICAgYXNzZXJ0IEZhbHNlCisgICAgcmV0dXJuIHJlc3Bfc3RyCisKKworZGVmIF9kb19QT1NUX2N1c3RvbWl6ZShyZXF1ZXN0KToKKyAgaWYgJ0NvbnRlbnQtTGVuZ3RoJyBpbiByZXF1ZXN0LmhlYWRlcnM6CisgICAgY2wgPSBpbnQocmVxdWVzdC5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddKQorICAgIHRleHQgPSByZXF1ZXN0LnJmaWxlLnJlYWQoY2wpLmVuY29kZSgndXRmOCcpCisKKyAgICBldmFsKHRleHQsIHt9LCB7J3NlbGYnOiByZXF1ZXN0LnNlcnZlcn0pCisgICAgZGF0YSA9ICdvaycKKyAgICByZXF1ZXN0LnNlbmRfcmVzcG9uc2UoMjAwKQorICAgIHJlcXVlc3Quc2VuZF9oZWFkZXIoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJykKKyAgICByZXF1ZXN0LnNlbmRfaGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbihkYXRhKSkKKyAgICByZXF1ZXN0LmVuZF9oZWFkZXJzKCkKKyAgICByZXF1ZXN0LndmaWxlLndyaXRlKGRhdGEpCisKKworZGVmIFN1YnByb2Nlc3NNYWluKF8pOgorICBwb3J0ID0gR2V0VW5yZXNlcnZlZEF2YWlsYWJsZUxvY2FsUG9ydCgpCisgIHNlcnZlciA9IGRldl9zZXJ2ZXIuRGV2U2VydmVyKHBvcnQ9cG9ydCwgcXVpZXQ9VHJ1ZSkKKworICBzZXJ2ZXIuQWRkUGF0aEhhbmRsZXIoJy90ZXN0L2N1c3RvbWl6ZScsIF9kb19QT1NUX2N1c3RvbWl6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2dldD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX3Bvc3Q9VHJ1ZSkKKyAgc3lzLnN0ZG91dC53cml0ZSgnVGVtcG9yYXJ5RGV2U2VydmVyIHN0YXJ0ZWQgb24gcG9ydCAlaVxuJyAlIHBvcnQpCisgIHN5cy5zdGRvdXQuZmx1c2goKSAgIyBUaGlzIGlzIGtleSEgSXQga2lja3MgdGhlIHBvcnQgZGV0ZWN0b3IgYWJvdmUuCisgIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBzeXMuZXhpdChTdWJwcm9jZXNzTWFpbihzeXMuYXJndlsxOl0pKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdHJhY2UyaHRtbC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3RyYWNlMmh0bWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU2OWFmNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3RyYWNlMmh0bWwucHkKQEAgLTAsMCArMSwxMjEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBjb2RlY3MKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCBnemlwCitpbXBvcnQganNvbgoraW1wb3J0IG9wdHBhcnNlCitpbXBvcnQgb3MKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHN5cworCit0cmFjaW5nX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuLicsICcuLicpKQoraWYgdHJhY2luZ19wYXRoIG5vdCBpbiBzeXMucGF0aDoKKyAgc3lzLnBhdGguYXBwZW5kKHRyYWNpbmdfcGF0aCkKKworZnJvbSB0cmFjaW5nIGltcG9ydCB0cmFjaW5nX3Byb2plY3QKK2Zyb20gdHZjbSBpbXBvcnQgZ2VuZXJhdGUKKworCitkZWYgTWFpbihhcmdzKToKKworICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCisgICAgICB1c2FnZT0iJXByb2cgPG9wdGlvbnM+IHRyYWNlX2ZpbGUxIFt0cmFjZV9maWxlMiAuLi5dIiwKKyAgICAgIGVwaWxvZz0iIiJUYWtlcyB0aGUgcHJvdmlkZWQgdHJhY2UgZmlsZSBhbmQgcHJvZHVjZXMgYSBzdGFuZGFsb25lIGh0bWwKK2ZpbGUgdGhhdCBjb250YWlucyBib3RoIHRoZSB0cmFjZSBhbmQgdGhlIHRyYWNlIHZpZXdlci4iIiIpCisKKyAgcHJvamVjdCA9IHRyYWNpbmdfcHJvamVjdC5UcmFjaW5nUHJvamVjdCgpCisgIHByb2plY3QuQWRkQ29uZmlnTmFtZU9wdGlvblRvUGFyc2VyKHBhcnNlcikKKworICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICItLW91dHB1dCIsIGRlc3Q9Im91dHB1dCIsCisgICAgICBoZWxwPSdXaGVyZSB0byBwdXQgdGhlIGdlbmVyYXRlZCByZXN1bHQuIElmIG5vdCAnICsKKyAgICAgICAgICAgJ2dpdmVuLCB0aGUgdHJhY2UgZmlsZW5hbWUgaXMgdXNlZCwgd2l0aCBhbiBodG1sIHN1ZmZpeC4nKQorICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICItLXF1aWV0IiwgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgIGhlbHA9J0RvbnQgcHJpbnQgdGhlIG91dHB1dCBmaWxlIG5hbWUnKQorICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKyAgaWYgbGVuKGFyZ3MpID09IDA6CisgICAgcGFyc2VyLmVycm9yKCdBdCBsZWFzdCBvbmUgdHJhY2UgZmlsZSByZXF1aXJlZCcpCisKKyAgaWYgb3B0aW9ucy5vdXRwdXQ6CisgICAgb3V0cHV0X2ZpbGVuYW1lID0gb3B0aW9ucy5vdXRwdXQKKyAgZWxpZiBsZW4oYXJncykgPiAxOgorICAgIHBhcnNlci5lcnJvcignTXVzdCBzcGVjaWZ5IC0tb3V0cHV0IGlmID4xIHRyYWNlIGZpbGUnKQorICBlbHNlOgorICAgIG5hbWVwYXJ0ID0gb3MucGF0aC5zcGxpdGV4dChhcmdzWzBdKVswXQorICAgIG91dHB1dF9maWxlbmFtZSA9IG5hbWVwYXJ0ICsgJy5odG1sJworCisgIHdpdGggY29kZWNzLm9wZW4ob3V0cHV0X2ZpbGVuYW1lLCBtb2RlPSd3JywgZW5jb2Rpbmc9J3V0Zi04JykgYXMgZjoKKyAgICBXcml0ZUhUTUxGb3JUcmFjZXNUb0ZpbGUoYXJncywgZiwgY29uZmlnX25hbWU9b3B0aW9ucy5jb25maWdfbmFtZSkKKworICBpZiBub3Qgb3B0aW9ucy5xdWlldDoKKyAgICBwcmludCBvdXRwdXRfZmlsZW5hbWUKKyAgcmV0dXJuIDAKKworCitjbGFzcyBWaWV3ZXJEYXRhU2NyaXB0KGdlbmVyYXRlLkV4dHJhU2NyaXB0KToKKworICBkZWYgX19pbml0X18oc2VsZiwgdHJhY2VfZGF0YV9zdHJpbmcsIG1pbWVfdHlwZSk6CisgICAgc3VwZXIoVmlld2VyRGF0YVNjcmlwdCwgc2VsZikuX19pbml0X18oKQorICAgIHNlbGYuX3RyYWNlX2RhdGFfc3RyaW5nID0gdHJhY2VfZGF0YV9zdHJpbmcKKyAgICBzZWxmLl9taW1lX3R5cGUgPSBtaW1lX3R5cGUKKworICBkZWYgV3JpdGVUb0ZpbGUoc2VsZiwgb3V0cHV0X2ZpbGUpOgorICAgIG91dHB1dF9maWxlLndyaXRlKCc8c2NyaXB0IGlkPSJ2aWV3ZXItZGF0YSIgdHlwZT0iJXMiPlxuJyAlIHNlbGYuX21pbWVfdHlwZSkKKyAgICBjb21wcmVzc2VkX3RyYWNlID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgIHdpdGggZ3ppcC5HemlwRmlsZShmaWxlb2JqPWNvbXByZXNzZWRfdHJhY2UsIG1vZGU9J3cnKSBhcyBmOgorICAgICAgZi53cml0ZShzZWxmLl90cmFjZV9kYXRhX3N0cmluZykKKyAgICBiNjRfY29udGVudCA9IGJhc2U2NC5iNjRlbmNvZGUoY29tcHJlc3NlZF90cmFjZS5nZXR2YWx1ZSgpKQorICAgIG91dHB1dF9maWxlLndyaXRlKGI2NF9jb250ZW50KQorICAgIG91dHB1dF9maWxlLndyaXRlKCdcbjwvc2NyaXB0PlxuJykKKworCitkZWYgV3JpdGVIVE1MRm9yVHJhY2VEYXRhVG9GaWxlKHRyYWNlX2RhdGFfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUsIG91dHB1dF9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfbmFtZT1Ob25lKToKKyAgcHJvamVjdCA9IHRyYWNpbmdfcHJvamVjdC5UcmFjaW5nUHJvamVjdCgpCisKKyAgaWYgY29uZmlnX25hbWUgaXMgTm9uZToKKyAgICBjb25maWdfbmFtZSA9IHByb2plY3QuR2V0RGVmYXVsdENvbmZpZ05hbWUoKQorCisgIG1vZHVsZXMgPSBbCisgICAgICAndHJhY2UyaHRtbCcsCisgICAgICAnZXh0cmFzLmltcG9ydGVyLmd6aXBfaW1wb3J0ZXInLCAgIyBNdXN0IGhhdmUgdGhpcyByZWdhcmRsZXNzIG9mIGNvbmZpZy4KKyAgICAgIHByb2plY3QuR2V0TW9kdWxlTmFtZUZvckNvbmZpZ05hbWUoY29uZmlnX25hbWUpCisgIF0KKworICBsb2FkX3NlcXVlbmNlID0gcHJvamVjdC5DYWxjTG9hZFNlcXVlbmNlRm9yTW9kdWxlTmFtZXMobW9kdWxlcykKKworICBzY3JpcHRzID0gW10KKyAgZm9yIHRyYWNlX2RhdGEgaW4gdHJhY2VfZGF0YV9saXN0OgorICAgICMgSWYgdGhlIG9iamVjdCB3YXMgcHJldmlvdXNseSBkZWNvZGVkIGZyb20gdmFsaWQgSlNPTiBkYXRhIChlLmcuLCBpbgorICAgICMgV3JpdGVIVE1MRm9yVHJhY2VzVG9GaWxlKSwgaXQgd2lsbCBiZSBhIEpTT04gb2JqZWN0IGF0IHRoaXMgcG9pbnQgYW5kIHdlCisgICAgIyBzaG91bGQgcmUtc2VyaWFsaXplIGl0IGludG8gYSBzdHJpbmcuIE90aGVyIHR5cGVzIG9mIGRhdGEgd2lsbCBiZSBhbHJlYWR5CisgICAgIyBiZSBzdHJpbmdzLgorICAgIGlmIG5vdCBpc2luc3RhbmNlKHRyYWNlX2RhdGEsIGJhc2VzdHJpbmcpOgorICAgICAgdHJhY2VfZGF0YSA9IGpzb24uZHVtcHModHJhY2VfZGF0YSkKKyAgICAgIG1pbWVfdHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uJworICAgIGVsc2U6CisgICAgICBtaW1lX3R5cGUgPSAndGV4dC9wbGFpbicKKyAgICBzY3JpcHRzLmFwcGVuZChWaWV3ZXJEYXRhU2NyaXB0KHRyYWNlX2RhdGEsIG1pbWVfdHlwZSkpCisgIGdlbmVyYXRlLkdlbmVyYXRlU3RhbmRhbG9uZUhUTUxUb0ZpbGUoCisgICAgICBvdXRwdXRfZmlsZSwgbG9hZF9zZXF1ZW5jZSwgdGl0bGUsIGV4dHJhX3NjcmlwdHM9c2NyaXB0cykKKworCitkZWYgV3JpdGVIVE1MRm9yVHJhY2VzVG9GaWxlKHRyYWNlX2ZpbGVuYW1lcywgb3V0cHV0X2ZpbGUsIGNvbmZpZ19uYW1lPU5vbmUpOgorICB0cmFjZV9kYXRhX2xpc3QgPSBbXQorICBmb3IgZmlsZW5hbWUgaW4gdHJhY2VfZmlsZW5hbWVzOgorICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3InKSBhcyBmOgorICAgICAgdHJhY2VfZGF0YSA9IGYucmVhZCgpCisgICAgICB0cnk6CisgICAgICAgIHRyYWNlX2RhdGEgPSBqc29uLmxvYWRzKHRyYWNlX2RhdGEpCisgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcGFzcworICAgICAgdHJhY2VfZGF0YV9saXN0LmFwcGVuZCh0cmFjZV9kYXRhKQorCisgIHRpdGxlID0gIlRyYWNlIGZyb20gJXMiICUgJywnLmpvaW4odHJhY2VfZmlsZW5hbWVzKQorICBXcml0ZUhUTUxGb3JUcmFjZURhdGFUb0ZpbGUodHJhY2VfZGF0YV9saXN0LCB0aXRsZSwgb3V0cHV0X2ZpbGUsIGNvbmZpZ19uYW1lKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdHJhY2UyaHRtbF91bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3RyYWNlMmh0bWxfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFiYjU0MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3RyYWNlMmh0bWxfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IGNvZGVjcworaW1wb3J0IG9zCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHRyYWNpbmcuYnVpbGQgaW1wb3J0IHRyYWNlMmh0bWwKKworCitjbGFzcyBUcmFjZTJIVE1MVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgIGRlZiB0ZXN0X3dyaXRlSFRNTEZvclRyYWNlc1RvRmlsZShzZWxmKToKKyAgICAjIE5vdGU6IFdlIGNhbid0IHVzZSAid2l0aCIgd2hlbiB3b3JraW5nIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlIGFzCisgICAgIyB0aGF0IGRvZXMgbm90IHdvcmsgb24gV2luZG93cy4gV2UgdXNlIHRoZSBsb25nZXIsIG1vcmUgY2x1bmt5IHZlcnNpb24KKyAgICAjIGluc3RlYWQuIFNlZSBodHRwczovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTE0MjQzIGZvciBkZXRpYWxzLgorICAgIHJhd190bXBmaWxlID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKAorICAgICAgICBtb2RlPSd3Jywgc3VmZml4PScuaHRtbCcsIGRlbGV0ZT1GYWxzZSkKKyAgICByYXdfdG1wZmlsZS5jbG9zZSgpCisgICAgdHJ5OgorICAgICAgd2l0aCBjb2RlY3Mub3BlbihyYXdfdG1wZmlsZS5uYW1lLCAndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIHRtcGZpbGU6CisgICAgICAgIHNpbXBsZV90cmFjZV9wYXRoID0gb3MucGF0aC5qb2luKAorICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICcuLicsICd0ZXN0X2RhdGEnLCAnc2ltcGxlX3RyYWNlLmpzb24nKQorICAgICAgICBiaWdfdHJhY2VfcGF0aCA9IG9zLnBhdGguam9pbigKKyAgICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCisgICAgICAgICAgICAnLi4nLCAndGVzdF9kYXRhJywgJ2JpZ190cmFjZS5qc29uJykKKyAgICAgICAgbm9uX2pzb25fdHJhY2VfcGF0aCA9IG9zLnBhdGguam9pbigKKyAgICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCisgICAgICAgICAgICAnLi4nLCAndGVzdF9kYXRhJywgJ2FuZHJvaWRfc3lzdHJhY2UudHh0JykKKyAgICAgICAgdHJhY2UyaHRtbC5Xcml0ZUhUTUxGb3JUcmFjZXNUb0ZpbGUoCisgICAgICAgICAgICBbYmlnX3RyYWNlX3BhdGgsIHNpbXBsZV90cmFjZV9wYXRoLCBub25fanNvbl90cmFjZV9wYXRoXSwgdG1wZmlsZSkKKyAgICBmaW5hbGx5OgorICAgICAgb3MucmVtb3ZlKHJhd190bXBmaWxlLm5hbWUpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC90cmFjaW5nX2Rldl9zZXJ2ZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC90cmFjaW5nX2Rldl9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAzYjU0YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3RyYWNpbmdfZGV2X3NlcnZlci5weQpAQCAtMCwwICsxLDEyNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKwordHJhY2luZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLi4nLCAnLi4nKSkKK2lmIHRyYWNpbmdfcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgIHN5cy5wYXRoLmFwcGVuZCh0cmFjaW5nX3BhdGgpCisKK2Zyb20gdHJhY2luZyBpbXBvcnQgdHJhY2luZ19wcm9qZWN0CisKK2Zyb20gYnVpbGQgaW1wb3J0IGRldl9zZXJ2ZXIKKworCitkZWYgZ2V0RmlsZXNJbihiYXNlZGlyKToKKyAgZGF0YV9maWxlcyA9IFtdCisgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGluIG9zLndhbGsoYmFzZWRpciwgZm9sbG93bGlua3M9VHJ1ZSk6CisgICAgbmV3X2Rpcm5hbWVzID0gW2QgZm9yIGQgaW4gZGlybmFtZXMgaWYgbm90IGQuc3RhcnRzd2l0aCgnLicpXQorICAgIGRlbCBkaXJuYW1lc1s6XQorICAgIGRpcm5hbWVzICs9IG5ld19kaXJuYW1lcworCisgICAgZm9yIGYgaW4gZmlsZW5hbWVzOgorICAgICAgaWYgZi5zdGFydHN3aXRoKCcuJyk6CisgICAgICAgIGNvbnRpbnVlCisgICAgICBpZiBmID09ICdSRUFETUUubWQnOgorICAgICAgICBjb250aW51ZQorICAgICAgZnVsbF9mID0gb3MucGF0aC5qb2luKGRpcnBhdGgsIGYpCisgICAgICByZWxfZiA9IG9zLnBhdGgucmVscGF0aChmdWxsX2YsIGJhc2VkaXIpCisgICAgICBkYXRhX2ZpbGVzLmFwcGVuZChyZWxfZikKKworICBkYXRhX2ZpbGVzLnNvcnQoKQorICByZXR1cm4gZGF0YV9maWxlcworCisKK2RlZiBkb19HRVRfanNvbl9leGFtcGxlcyhyZXF1ZXN0KToKKyAgZGF0YV9maWxlcyA9IGdldEZpbGVzSW4ocmVxdWVzdC5zZXJ2ZXIuZGF0YV9kaXIpCisgIGZpbGVzX2FzX2pzb24gPSBqc29uLmR1bXBzKGRhdGFfZmlsZXMpCisKKyAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDIwMCkKKyAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKQorICByZXF1ZXN0LnNlbmRfaGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbihmaWxlc19hc19qc29uKSkKKyAgcmVxdWVzdC5lbmRfaGVhZGVycygpCisgIHJlcXVlc3Qud2ZpbGUud3JpdGUoZmlsZXNfYXNfanNvbikKKworCitkZWYgZG9fR0VUX2pzb25fZXhhbXBsZXNfc2twKHJlcXVlc3QpOgorICBkYXRhX2ZpbGVzID0gZ2V0RmlsZXNJbihyZXF1ZXN0LnNlcnZlci5za3BfZGF0YV9kaXIpCisgIGZpbGVzX2FzX2pzb24gPSBqc29uLmR1bXBzKGRhdGFfZmlsZXMpCisKKyAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDIwMCkKKyAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKQorICByZXF1ZXN0LnNlbmRfaGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbihmaWxlc19hc19qc29uKSkKKyAgcmVxdWVzdC5lbmRfaGVhZGVycygpCisgIHJlcXVlc3Qud2ZpbGUud3JpdGUoZmlsZXNfYXNfanNvbikKKworCitkZWYgZG9fR0VUX2pzb25fdGVzdHMoc2VsZik6CisgIHRlc3RfbW9kdWxlX3Jlc291cmNlcyA9IHNlbGYuc2VydmVyLnByb2plY3QuRmluZEFsbFRlc3RNb2R1bGVSZXNvdXJjZXMoKQorCisgIHRlc3RfcmVscGF0aHMgPSBbeC51bml4X3N0eWxlX3JlbGF0aXZlX3BhdGgKKyAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiB0ZXN0X21vZHVsZV9yZXNvdXJjZXNdCisKKyAgdGVzdHMgPSB7J3Rlc3RfcmVscGF0aHMnOiB0ZXN0X3JlbHBhdGhzfQorICB0ZXN0c19hc19qc29uID0ganNvbi5kdW1wcyh0ZXN0cykKKworICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQorICBzZWxmLnNlbmRfaGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpCisgIHNlbGYuc2VuZF9oZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgbGVuKHRlc3RzX2FzX2pzb24pKQorICBzZWxmLmVuZF9oZWFkZXJzKCkKKyAgc2VsZi53ZmlsZS53cml0ZSh0ZXN0c19hc19qc29uKQorCisKK2RlZiBkb19QT1NUX3JlcG9ydF90ZXN0X3Jlc3VsdHMocmVxdWVzdCk6CisgIHJlcXVlc3Quc2VuZF9yZXNwb25zZSgyMDApCisgIHJlcXVlc3Quc2VuZF9oZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgJzAnKQorICByZXF1ZXN0LmVuZF9oZWFkZXJzKCkKKyAgbXNnID0gcmVxdWVzdC5yZmlsZS5yZWFkKCkKKyAgb3N0cmVhbSA9IHN5cy5zdGRvdXQgaWYgJ1BBU1NFRCcgaW4gbXNnIGVsc2Ugc3lzLnN0ZGVycgorICBvc3RyZWFtLndyaXRlKG1zZyArICdcbicpCisKKworZGVmIGRvX1BPU1RfcmVwb3J0X3Rlc3RfY29tcGxldGlvbihyZXF1ZXN0KToKKyAgcmVxdWVzdC5zZW5kX3Jlc3BvbnNlKDIwMCkKKyAgcmVxdWVzdC5zZW5kX2hlYWRlcignQ29udGVudC1MZW5ndGgnLCAnMCcpCisgIHJlcXVlc3QuZW5kX2hlYWRlcnMoKQorICBtc2cgPSByZXF1ZXN0LnJmaWxlLnJlYWQoKQorICBzeXMuc3Rkb3V0LndyaXRlKG1zZyArICdcbicpCisgIHJlcXVlc3Quc2VydmVyLlJlcXVlc3RTaHV0ZG93bihleGl0X2NvZGU9KDAgaWYgJ0FMTF9QQVNTRUQnIGluIG1zZyBlbHNlIDEpKQorCisKK2RlZiBNYWluKGFyZ3MpOgorICBwcm9qZWN0ID0gdHJhY2luZ19wcm9qZWN0LlRyYWNpbmdQcm9qZWN0KCkKKworICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nUnVuIHRyYWNpbmcgZGV2ZWxvcG1lbnQgc2VydmVyJykKKyAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICctZCcsICctLWRhdGEtZGlyJywKKyAgICAgIGRlZmF1bHQ9b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihwcm9qZWN0LnRlc3RfZGF0YV9wYXRoKSkpCisgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAnLXMnLCAnLS1za3AtZGF0YS1kaXInLAorICAgICAgZGVmYXVsdD1vcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHByb2plY3Quc2twX2RhdGFfcGF0aCkpKQorICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctcCcsICctLXBvcnQnLCBkZWZhdWx0PTgwMDMsIHR5cGU9aW50KQorICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1hcmdzKQorCisgIHNlcnZlciA9IGRldl9zZXJ2ZXIuRGV2U2VydmVyKHBvcnQ9YXJncy5wb3J0LCBwcm9qZWN0PXByb2plY3QpCisgIHNlcnZlci5kYXRhX2RpciA9IG9zLnBhdGguYWJzcGF0aChhcmdzLmRhdGFfZGlyKQorICBzZXJ2ZXIuc2twX2RhdGFfZGlyID0gb3MucGF0aC5hYnNwYXRoKGFyZ3Muc2twX2RhdGFfZGlyKQorICBwcm9qZWN0LnNvdXJjZV9wYXRocy5hcHBlbmQoc2VydmVyLmRhdGFfZGlyKQorCisgIHNlcnZlci5BZGRQYXRoSGFuZGxlcignL2pzb24vZXhhbXBsZXMnLCBkb19HRVRfanNvbl9leGFtcGxlcykKKyAgc2VydmVyLkFkZFBhdGhIYW5kbGVyKCcvdHIvanNvbi90ZXN0cycsIGRvX0dFVF9qc29uX3Rlc3RzKQorICBzZXJ2ZXIuQWRkUGF0aEhhbmRsZXIoJy9qc29uL2V4YW1wbGVzL3NrcCcsIGRvX0dFVF9qc29uX2V4YW1wbGVzX3NrcCkKKworICBzZXJ2ZXIuQWRkU291cmNlUGF0aE1hcHBpbmcocHJvamVjdC50cmFjaW5nX3Jvb3RfcGF0aCkKKworICBzZXJ2ZXIuQWRkUGF0aEhhbmRsZXIoJy90ZXN0X2F1dG9tYXRpb24vbm90aWZ5X3Rlc3RfcmVzdWx0JywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvX1BPU1RfcmVwb3J0X3Rlc3RfcmVzdWx0cywgc3VwcG9ydHNfcG9zdD1UcnVlKQorICBzZXJ2ZXIuQWRkUGF0aEhhbmRsZXIoJy90ZXN0X2F1dG9tYXRpb24vbm90aWZ5X2NvbXBsZXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgZG9fUE9TVF9yZXBvcnRfdGVzdF9jb21wbGV0aW9uLCBzdXBwb3J0c19wb3N0PVRydWUpCisKKyAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdXBkYXRlX2d5cGkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC91cGRhdGVfZ3lwaQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNTE1ZGE2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdXBkYXRlX2d5cGkKQEAgLTAsMCArMSwxNCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgdG9wX2RpciA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJy4uJykpCisgIHN5cy5wYXRoLmFwcGVuZCh0b3BfZGlyKQorICBmcm9tIHRyYWNpbmcgaW1wb3J0IHRyYWNpbmdfcHJvamVjdAorICBmcm9tIHRyYWNpbmcuYnVpbGQgaW1wb3J0IHVwZGF0ZV9neXBpCisgIHN5cy5leGl0KHVwZGF0ZV9neXBpLlVwZGF0ZSgpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdXBkYXRlX2d5cGkucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC91cGRhdGVfZ3lwaS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjdlNTUwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdXBkYXRlX2d5cGkucHkKQEAgLTAsMCArMSwxMjkgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKKwordHJhY2luZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLi4nLCAnLi4nKSkKK2lmIHRyYWNpbmdfcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgIHN5cy5wYXRoLmFwcGVuZCh0cmFjaW5nX3BhdGgpCisKK2Zyb20gdHJhY2luZy5idWlsZCBpbXBvcnQgY2hlY2tfY29tbW9uCitmcm9tIHRyYWNpbmcgaW1wb3J0IHRyYWNpbmdfcHJvamVjdAorCisKK2NsYXNzIF9Ub2tlbihvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhLCBpZD1Ob25lKToKKyAgICBzZWxmLmRhdGEgPSBkYXRhCisgICAgaWYgaWQ6CisgICAgICBzZWxmLmlkID0gaWQKKyAgICBlbHNlOgorICAgICAgc2VsZi5pZCA9ICdwbGFpbicKKworCitjbGFzcyBCdWlsZEZpbGUob2JqZWN0KToKKworICBkZWYgX19pbml0X18oc2VsZiwgdGV4dCwgZmlsZV9ncm91cHMpOgorICAgIHNlbGYuX2ZpbGVfZ3JvdXBzID0gZmlsZV9ncm91cHMKKyAgICBzZWxmLl90b2tlbnMgPSBbdG9rZW4gZm9yIHRva2VuIGluIHNlbGYuX1Rva2VuaXplKHRleHQpXQorCisgIGRlZiBfVG9rZW5pemUoc2VsZiwgdGV4dCk6CisgICAgcmVzdCA9IHRleHQKKyAgICB0b2tlbl9yZWdleCA9IHNlbGYuX1Rva2VuUmVnZXgoKQorICAgIHdoaWxlIGxlbihyZXN0KToKKyAgICAgIG0gPSB0b2tlbl9yZWdleC5zZWFyY2gocmVzdCkKKyAgICAgIGlmIG5vdCBtOgorICAgICAgICAjIEluIGByZXN0Jywgd2UgY291bGRuJ3QgZmluZCBhIG1hdGNoLgorICAgICAgICAjIFNvLCBsdW1wIHRoZSBlbnRpcmUgYHJlc3QnIGludG8gYSB0b2tlbgorICAgICAgICAjIGFuZCBzdG9wIHByb2R1Y2luZyBhbnkgbW9yZSB0b2tlbnMuCisgICAgICAgIHlpZWxkIF9Ub2tlbihyZXN0KQorICAgICAgICByZXR1cm4KKyAgICAgIG1pbl9pbmRleCwgZW5kX2luZGV4LCBtYXRjaGVkX3Rva2VuID0gc2VsZi5fUHJvY2Vzc01hdGNoKG0pCisKKyAgICAgIGlmIG1pbl9pbmRleCA+IDA6CisgICAgICAgIHlpZWxkIF9Ub2tlbihyZXN0WzptaW5faW5kZXhdKQorCisgICAgICB5aWVsZCBtYXRjaGVkX3Rva2VuCisgICAgICByZXN0ID0gcmVzdFtlbmRfaW5kZXg6XQorCisgIGRlZiBVcGRhdGUoc2VsZiwgZmlsZXNfYnlfZ3JvdXApOgorICAgIGZvciB0b2tlbiBpbiBzZWxmLl90b2tlbnM6CisgICAgICBpZiB0b2tlbi5pZCBpbiBmaWxlc19ieV9ncm91cDoKKyAgICAgICAgdG9rZW4uZGF0YSA9IHNlbGYuX0dldFJlcGxhY2VtZW50TGlzdEFzU3RyaW5nKAorICAgICAgICAgICAgdG9rZW4uZGF0YSwKKyAgICAgICAgICAgIGZpbGVzX2J5X2dyb3VwW3Rva2VuLmlkXSkKKworICBkZWYgV3JpdGUoc2VsZiwgZik6CisgICAgZm9yIHRva2VuIGluIHNlbGYuX3Rva2VuczoKKyAgICAgIGYud3JpdGUodG9rZW4uZGF0YSkKKworICBkZWYgX1Byb2Nlc3NNYXRjaChzZWxmLCBtYXRjaCk6CisgICAgcmFpc2UgRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQuIikKKworICBkZWYgX1Rva2VuUmVnZXgoc2VsZik6CisgICAgcmFpc2UgRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQuIikKKworICBkZWYgX0dldFJlcGxhY2VtZW50TGlzdEFzU3RyaW5nKHNlbGYsIGV4aXN0aW5nX2xpc3RfYXNfc3RyaW5nLCBmaWxlbGlzdCk6CisgICAgcmFpc2UgRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQuIikKKworCitjbGFzcyBHeXBpRmlsZShCdWlsZEZpbGUpOgorCisgIGRlZiBfUHJvY2Vzc01hdGNoKHNlbGYsIG1hdGNoKToKKyAgICBtaW5faW5kZXggPSBtYXRjaC5zdGFydCgyKQorICAgIGVuZF9pbmRleCA9IG1hdGNoLmVuZCgyKQorICAgIHRva2VuID0gX1Rva2VuKG1hdGNoLnN0cmluZ1ttaW5faW5kZXg6ZW5kX2luZGV4XSwKKyAgICAgICAgICAgICAgICAgICBpZD1tYXRjaC5ncm91cHMoKVswXSkKKyAgICByZXR1cm4gbWluX2luZGV4LCBlbmRfaW5kZXgsIHRva2VuCisKKyAgZGVmIF9Ub2tlblJlZ2V4KHNlbGYpOgorICAgICMgcmVnZXhwIHRvIG1hdGNoIHRoZSBmb2xsb3dpbmc6CisgICAgIyAgICdmaWxlX2dyb3VwX25hbWUnOiBbCisgICAgIyAgICAgJ3BhdGgvdG8vb25lL2ZpbGUuZXh0ZW5zaW9uJywKKyAgICAjICAgICAnYW5vdGhlci9maWxlLmV4JywKKyAgICAjICAgXQorICAgICMgSW4gdGhlIG1hdGNoLAorICAgICMgZ3JvdXAgMSBpcyA6ICdmaWxlX2dyb3VwX25hbWUnCisgICAgIyBncm91cCAyIGlzIDogIiIiICAncGF0aC90by9vbmUvZmlsZS5leHRlbnNpb24nLFxuICAnYW5vdGhlci9maWxlLmV4JyxcbiIiIgorICAgIHJlZ2V4cF9zdHIgPSAiJyglcyknOiBcW1xuKC4rPykgK1xdLD9cbiIgJSAifCIuam9pbihzZWxmLl9maWxlX2dyb3VwcykKKyAgICByZXR1cm4gcmUuY29tcGlsZShyZWdleHBfc3RyLCByZS5NVUxUSUxJTkUgfCByZS5ET1RBTEwpCisKKyAgZGVmIF9HZXRSZXBsYWNlbWVudExpc3RBc1N0cmluZyhzZWxmLCBleGlzdGluZ19saXN0X2FzX3N0cmluZywgZmlsZWxpc3QpOgorICAgIGxpc3RfZW50cnkgPSBleGlzdGluZ19saXN0X2FzX3N0cmluZy5zcGxpdGxpbmVzKClbMF0KKyAgICBwcmVmaXgsIGVudHJ5LCBzdWZmaXggPSBsaXN0X2VudHJ5LnNwbGl0KCInIikKKyAgICByZXR1cm4gIiIuam9pbihbIiciLmpvaW4oW3ByZWZpeCwgZmlsZW5hbWUsIHN1ZmZpeCArICdcbiddKQorICAgICAgICAgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZWxpc3RdKQorCisKK2RlZiBfR3JvdXBGaWxlcyhmaWxlTmFtZVRvR3JvdXBOYW1lRnVuYywgZmlsZW5hbWVzKToKKyAgZmlsZV9ncm91cHMgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsYW1iZGE6IFtdKQorICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgorICAgIGZpbGVfZ3JvdXBzW2ZpbGVOYW1lVG9Hcm91cE5hbWVGdW5jKGZpbGVuYW1lKV0uYXBwZW5kKGZpbGVuYW1lKQorICBmb3IgZ3JvdXAgaW4gZmlsZV9ncm91cHM6CisgICAgZmlsZV9ncm91cHNbZ3JvdXBdLnNvcnQoKQorICByZXR1cm4gZmlsZV9ncm91cHMKKworCitkZWYgX1VwZGF0ZUJ1aWxkRmlsZShmaWxlbmFtZSwgYnVpbGRfZmlsZV9jbGFzcyk6CisgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3InKSBhcyBmOgorICAgIGJ1aWxkX2ZpbGUgPSBidWlsZF9maWxlX2NsYXNzKGYucmVhZCgpLCBjaGVja19jb21tb24uRklMRV9HUk9VUFMpCisgIGZpbGVzX2J5X2dyb3VwID0gX0dyb3VwRmlsZXMoY2hlY2tfY29tbW9uLkdldEZpbGVHcm91cEZyb21GaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19jb21tb24uR2V0S25vd25GaWxlcygpKQorICBidWlsZF9maWxlLlVwZGF0ZShmaWxlc19ieV9ncm91cCkKKyAgd2l0aCBvcGVuKGZpbGVuYW1lLCAndycpIGFzIGY6CisgICAgYnVpbGRfZmlsZS5Xcml0ZShmKQorCisKK2RlZiBVcGRhdGVHeXBpKCk6CisgIHR2cCA9IHRyYWNpbmdfcHJvamVjdC5UcmFjaW5nUHJvamVjdCgpCisgIF9VcGRhdGVCdWlsZEZpbGUoCisgICAgICBvcy5wYXRoLmpvaW4odHZwLnRyYWNpbmdfcm9vdF9wYXRoLCAndHJhY2Vfdmlld2VyLmd5cGknKSwgR3lwaUZpbGUpCisKKworZGVmIFVwZGF0ZSgpOgorICBVcGRhdGVHeXBpKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3VwZGF0ZV9neXBpX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdXBkYXRlX2d5cGlfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDlhYWRlNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3VwZGF0ZV9neXBpX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHRyYWNpbmcuYnVpbGQudXBkYXRlX2d5cGkgaW1wb3J0IEd5cGlGaWxlCisKKworY2xhc3MgVXBkYXRlR3lwaVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICBkZWYgc2V0VXAoc2VsZik6CisgICAgc2VsZi5maWxlX2dyb3VwcyA9IFsnZ3JvdXAxJywgJ2dyb3VwMiddCisKKyAgZGVmIHRlc3RfR3lwaVRva2VuaXplcihzZWxmKToKKyAgICBjb250ZW50ID0gKCJ1c2VsZXNzIGRhdGFcbidncm91cDEnOiBbXG4gICAgPGZpbGUgbGlzdCBnb2VzIGhlcmU+XG4iCisgICAgICAgICAgICAgICAiICAgIF1cbk5vdGUgdGhlIGZvdXIgc3BhY2VzIGJlZm9yZSB0aGUgXSBhYm92ZSIpCisgICAgZ3lwaV9maWxlcyA9IEd5cGlGaWxlKGNvbnRlbnQsIHNlbGYuZmlsZV9ncm91cHMpCisgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4oZ3lwaV9maWxlcy5fdG9rZW5zKSkKKyAgICBzZWxmLmFzc2VydEVxdWFsKCdwbGFpbicsIGd5cGlfZmlsZXMuX3Rva2Vuc1swXS5pZCkKKyAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAidXNlbGVzcyBkYXRhXG4nZ3JvdXAxJzogW1xuIiwgZ3lwaV9maWxlcy5fdG9rZW5zWzBdLmRhdGEpCisgICAgc2VsZi5hc3NlcnRFcXVhbCgnZ3JvdXAxJywgZ3lwaV9maWxlcy5fdG9rZW5zWzFdLmlkKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiAgICA8ZmlsZSBsaXN0IGdvZXMgaGVyZT5cbiIsIGd5cGlfZmlsZXMuX3Rva2Vuc1sxXS5kYXRhKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BsYWluJywgZ3lwaV9maWxlcy5fdG9rZW5zWzJdLmlkKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICIgICAgXVxuTm90ZSB0aGUgZm91ciBzcGFjZXMgYmVmb3JlIHRoZSBdIGFib3ZlIiwKKyAgICAgICAgZ3lwaV9maWxlcy5fdG9rZW5zWzJdLmRhdGEpCisKKyAgZGVmIHRlc3RfR3lwaUZpbGVMaXN0QnVpbGRlcihzZWxmKToKKyAgICBneXBpX2ZpbGUgPSBHeXBpRmlsZSgnJywgc2VsZi5maWxlX2dyb3VwcykKKyAgICBleGlzdGluZ19saXN0ID0gKCIgICAgJy9mb3VyL3NwYWNlcy9pbmRlbnQnLFxuJyIKKyAgICAgICAgICAgICAgICAgICAgICIgICAgJy9maXZlL3NwYWNlcy9idXQvb25seS9maXJzdC9saW5lL21hdHRlcnMnLFxuIikKKyAgICBuZXdfbGlzdCA9IFsnaXRlbTEnLCAnaXRlbTInLCAnaXRlbTMnXQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICIgICAgJ2l0ZW0xJyxcbiAgICAnaXRlbTInLFxuICAgICdpdGVtMycsXG4iLAorICAgICAgICBneXBpX2ZpbGUuX0dldFJlcGxhY2VtZW50TGlzdEFzU3RyaW5nKGV4aXN0aW5nX2xpc3QsIG5ld19saXN0KSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC92dWxjYW5pemVfdHJhY2Vfdmlld2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MWQ0ODIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9idWlsZC92dWxjYW5pemVfdHJhY2Vfdmlld2VyLnB5CkBAIC0wLDAgKzEsOTMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBjb2RlY3MKK2ltcG9ydCBvcHRwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK3RyYWNpbmdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uJywgJy4uJykpCitpZiB0cmFjaW5nX3BhdGggbm90IGluIHN5cy5wYXRoOgorICBzeXMucGF0aC5hcHBlbmQodHJhY2luZ19wYXRoKQorCitmcm9tIHRyYWNpbmcgaW1wb3J0IHRyYWNpbmdfcHJvamVjdAorZnJvbSB0dmNtIGltcG9ydCBnZW5lcmF0ZQorCisKK2RlZiBNYWluKGFyZ3MpOgorCisgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigKKyAgICAgIHVzYWdlPSIlcHJvZyA8b3B0aW9ucz4iLAorICAgICAgZXBpbG9nPSIiIlByb2R1Y2VzIGEgc3RhbmRhbG9uZSBodG1sIGltcG9ydCB0aGF0IGNvbnRhaW5zIHRoZQordHJhY2Ugdmlld2VyLiIiIikKKworICBwcm9qZWN0ID0gdHJhY2luZ19wcm9qZWN0LlRyYWNpbmdQcm9qZWN0KCkKKyAgcHJvamVjdC5BZGRDb25maWdOYW1lT3B0aW9uVG9QYXJzZXIocGFyc2VyKQorCisgIHBhcnNlci5hZGRfb3B0aW9uKCctLW5vLW1pbicsIGRlc3Q9J25vX21pbicsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NraXAgbWluaWZpY2F0aW9uJykKKyAgcGFyc2VyLmFkZF9vcHRpb24oJy0tcmVwb3J0LXNpemVzJywgZGVzdD0ncmVwb3J0X3NpemVzJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgaGVscD0nRXhwbGFpbiB3aGF0IG1ha2VzIHRyYWNpbmcgYmlnLicpCisgIHBhcnNlci5hZGRfb3B0aW9uKCctLXJlcG9ydC1kZXBzJywgZGVzdD0ncmVwb3J0X2RlcHMnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSdQcmludCBhIGRvdC1mb3JtYXR0ZWQgZGVwcyBncmFwaC4nKQorICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICItLW91dHB1dCIsIGRlc3Q9Im91dHB1dCIsCisgICAgICBoZWxwPSdXaGVyZSB0byBwdXQgdGhlIGdlbmVyYXRlZCByZXN1bHQuIElmIG5vdCAnICsKKyAgICAgICAgICAgJ2dpdmVuLCAkVFJBQ0lORy90cmFjaW5nL2Jpbi90cmFjZV92aWV3ZXIuaHRtbCBpcyB1c2VkLicpCisKKyAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCisgIGlmIGxlbihhcmdzKSAhPSAwOgorICAgIHBhcnNlci5lcnJvcignTm8gYXJndW1lbnRzIG5lZWRlZC4nKQorCisgIHRyYWNpbmdfZGlyID0gb3MucGF0aC5yZWxwYXRoKAorICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICcuLicpKQorICBpZiBvcHRpb25zLm91dHB1dDoKKyAgICBvdXRwdXRfZmlsZW5hbWUgPSBvcHRpb25zLm91dHB1dAorICBlbHNlOgorICAgIG91dHB1dF9maWxlbmFtZSA9IG9zLnBhdGguam9pbigKKyAgICAgICAgdHJhY2luZ19kaXIsICd0cmFjaW5nL2Jpbi90cmFjZV92aWV3ZXJfJXMuaHRtbCcgJSBvcHRpb25zLmNvbmZpZ19uYW1lKQorCisgIHdpdGggY29kZWNzLm9wZW4ob3V0cHV0X2ZpbGVuYW1lLCAndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIGY6CisgICAgV3JpdGVUcmFjZVZpZXdlcigKKyAgICAgICAgZiwKKyAgICAgICAgY29uZmlnX25hbWU9b3B0aW9ucy5jb25maWdfbmFtZSwKKyAgICAgICAgbWluaWZ5PW5vdCBvcHRpb25zLm5vX21pbiwKKyAgICAgICAgcmVwb3J0X3NpemVzPW9wdGlvbnMucmVwb3J0X3NpemVzLAorICAgICAgICByZXBvcnRfZGVwcz1vcHRpb25zLnJlcG9ydF9kZXBzKQorCisgIHJldHVybiAwCisKKworZGVmIFdyaXRlVHJhY2VWaWV3ZXIob3V0cHV0X2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICBjb25maWdfbmFtZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgbWluaWZ5PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X3NpemVzPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X2RlcHM9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaHRtbF9oZWFkX2FuZF9ib2R5PVRydWUsCisgICAgICAgICAgICAgICAgICAgICBleHRyYV9zZWFyY2hfcGF0aHM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIGV4dHJhX21vZHVsZV9uYW1lc190b19sb2FkPU5vbmUpOgorICBwcm9qZWN0ID0gdHJhY2luZ19wcm9qZWN0LlRyYWNpbmdQcm9qZWN0KCkKKyAgaWYgZXh0cmFfc2VhcmNoX3BhdGhzOgorICAgIGZvciBwIGluIGV4dHJhX3NlYXJjaF9wYXRoczoKKyAgICAgIHByb2plY3Quc291cmNlX3BhdGhzLmFwcGVuZChwKQorICBpZiBjb25maWdfbmFtZSBpcyBOb25lOgorICAgIGNvbmZpZ19uYW1lID0gcHJvamVjdC5HZXREZWZhdWx0Q29uZmlnTmFtZSgpCisKKyAgbW9kdWxlX25hbWVzID0gW3Byb2plY3QuR2V0TW9kdWxlTmFtZUZvckNvbmZpZ05hbWUoY29uZmlnX25hbWUpXQorICBpZiBleHRyYV9tb2R1bGVfbmFtZXNfdG9fbG9hZDoKKyAgICBtb2R1bGVfbmFtZXMgKz0gZXh0cmFfbW9kdWxlX25hbWVzX3RvX2xvYWQKKyAgbG9hZF9zZXF1ZW5jZSA9IHByb2plY3QuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZU5hbWVzKAorICAgICAgbW9kdWxlX25hbWVzKQorCisgIGlmIHJlcG9ydF9kZXBzOgorICAgIHN5cy5zdGRvdXQud3JpdGUocHJvamVjdC5HZXREZXBzR3JhcGhGcm9tTW9kdWxlTmFtZXMobW9kdWxlX25hbWVzKSkKKworICBnZW5lcmF0ZS5HZW5lcmF0ZVN0YW5kYWxvbmVIVE1MVG9GaWxlKAorICAgICAgb3V0cHV0X2ZpbGUsIGxvYWRfc2VxdWVuY2UsCisgICAgICBtaW5pZnk9bWluaWZ5LCByZXBvcnRfc2l6ZXM9cmVwb3J0X3NpemVzLAorICAgICAgb3V0cHV0X2h0bWxfaGVhZF9hbmRfYm9keT1vdXRwdXRfaHRtbF9oZWFkX2FuZF9ib2R5KQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvYnVpbGQvdnVsY2FuaXplX3RyYWNlX3ZpZXdlcl91bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXJfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE0YjNkZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2J1aWxkL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXJfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IGNvZGVjcworaW1wb3J0IG9zCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB0ZW1wZmlsZQorCitmcm9tIHRyYWNpbmcuYnVpbGQgaW1wb3J0IHZ1bGNhbml6ZV90cmFjZV92aWV3ZXIKKworCitjbGFzcyBUcmFjZTJIVE1MVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICBkZWYgdGVzdF93cml0ZUhUTUxGb3JUcmFjZXNUb0ZpbGUoc2VsZik6CisgICAgdHJ5OgorICAgICAgIyBOb3RlOiBXZSBjYW4ndCB1c2UgIndpdGgiIHdoZW4gd29ya2luZyB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZQorICAgICAgIyBhcyB0aGF0IGRvZXMgbm90IHdvcmsgb24gV2luZG93cy4gV2UgdXNlIHRoZSBsb25nZXIsIG1vcmUgY2x1bmt5IHZlcnNpb24KKyAgICAgICMgaW5zdGVhZC4gU2VlIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTQyNDMgZm9yIGRldGlhbHMuCisgICAgICByYXdfdG1wZmlsZSA9IHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSgKKyAgICAgICAgICBtb2RlPSd3Jywgc3VmZml4PScuaHRtbCcsIGRlbGV0ZT1GYWxzZSkKKyAgICAgIHJhd190bXBmaWxlLmNsb3NlKCkKKyAgICAgIHdpdGggY29kZWNzLm9wZW4ocmF3X3RtcGZpbGUubmFtZSwgJ3cnLCBlbmNvZGluZz0ndXRmLTgnKSBhcyB0bXBmaWxlOgorICAgICAgICB2dWxjYW5pemVfdHJhY2Vfdmlld2VyLldyaXRlVHJhY2VWaWV3ZXIodG1wZmlsZSkKKyAgICBmaW5hbGx5OgorICAgICAgb3MucmVtb3ZlKHJhd190bXBmaWxlLm5hbWUpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9leGFtcGxlcy9jaHJvbWVfaW5zcGVjdF90ZXN0X3NoZWxsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9leGFtcGxlcy9jaHJvbWVfaW5zcGVjdF90ZXN0X3NoZWxsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2MyMmYzNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2V4YW1wbGVzL2Nocm9tZV9pbnNwZWN0X3Rlc3Rfc2hlbGwuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDExIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGhlYWQ+Cis8dGl0bGU+Y2hyb21lOi8vaW5zcGVjdCB0ZXN0IHNoZWxsPC90aXRsZT4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKworPHNjcmlwdCBzcmM9Ii9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLmpzIj48L3NjcmlwdD4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcHJvZmlsaW5nX3ZpZXcuaHRtbCI+CisKKzxzdHlsZT4KKyAgYm9keSB7CisgICAgbWFyZ2luOiAwOworICAgIHBhZGRpbmc6IDA7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgIH0KKworICBib2R5ID4geC1wcm9maWxpbmctdmlldyB7CisgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDBweDsKKyAgICBib3R0b206IDA7CisgICAgbGVmdDogMDsKKyAgICByaWdodDogMDsKKyAgfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICB2YXIgcHJvZmlsaW5nVmlld0VsOworCisgIGZ1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBpZiAod2luZG93LkRldlRvb2xzSG9zdCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICB0ci5zaG93UGFuaWMoCisgICAgICAgICAgJ1RoaXMgcGFnZSBvbmx5IHdvcmtzIHdoZW4gbGF1bmNoZWQgZnJvbSBjaHJvbWU6Ly9pbnNwZWN0JywKKyAgICAgICAgICAnVHJ5IGdvaW5nIHRvICcgKworICAgICAgICAgICdjaHJvbWU6Ly9pbnNwZWN0Lz9icm93c2VyLWluc3BlY3Rvcj0nICsKKyAgICAgICAgICAnaHR0cDovL2xvY2FsaG9zdDo4MDAzL2V4YW1wbGVzL2Nocm9tZV9pbnNwZWN0X3Rlc3Rfc2hlbGwuaHRtbCcgKworICAgICAgICAgICcjZGV2aWNlcyAnICsKKyAgICAgICAgICAnYW5kIHRoZW4gY2xpY2tpbmcgdGhlIGluc3BlY3QgbGluayBvbiBhIGJyb3dzZXInKTsKKworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciB0cmFjaW5nQ29udHJvbGxlckNsaWVudCA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuSW5zcGVjdG9yVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBwcm9maWxpbmdWaWV3RWwgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLlByb2ZpbGluZ1ZpZXcodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocHJvZmlsaW5nVmlld0VsKTsKKyAgfQorICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uTG9hZCk7CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvZXhhbXBsZXMvZGVlcF9yZXBvcnRzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9leGFtcGxlcy9kZWVwX3JlcG9ydHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGM0NjZmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvZXhhbXBsZXMvZGVlcF9yZXBvcnRzLmh0bWwKQEAgLTAsMCArMSwxMzQgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8aGVhZD4KKzx0aXRsZT5EZWVwIGluc2lnaHRzIHZpYSBCdWxrIFRyYWNlIEFuYWx5c2lzPC90aXRsZT4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKworPHNjcmlwdCBzcmM9Ii9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLmpzIj48L3NjcmlwdD4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5odG1sIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZnVsbF9jb25maWcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2RlZXBfcmVwb3J0cy9tYWluLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvZGVlcF9yZXBvcnRzL2h0bWxfcmVzdWx0cy5odG1sIj4KKworPHN0eWxlPgorICBib2R5IHsKKyAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8c2VsZWN0IGlkPSJ0cmFjZS1kaXIiPjwvc2VsZWN0PgorICA8dHItdWktZS1kZWVwLXJlcG9ydHMtaHRtbC1yZXN1bHRzIGlkPSJyZXN1bHRzIj4KKyAgPC90ci11aS1lLWRlZXAtcmVwb3J0cy1odG1sLXJlc3VsdHM+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIGZ1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICB0ci5iLmdldEFzeW5jKCcvanNvbi9leGFtcGxlcycpLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0cmFjZS1maWxlJyk7CisgICAgICB2YXIgYWxsX2ZpbGVzID0gSlNPTi5wYXJzZShkYXRhKTsKKyAgICAgIHZhciBmaWxlcyA9IGFsbF9maWxlcy5maWx0ZXIoZnVuY3Rpb24oZmlsZSkgeworICAgICAgICBpZiAoIWZpbGUuc3RhcnRzV2l0aCgnbWVhc3VybXQtdHJhY2VzLycpKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGZpbGUgPT09ICdtZWFzdXJtdC10cmFjZXMvUkVBRE1FLm1kJykKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfSk7CisKKyAgICAgIHZhciBmaWxlbmFtZXMgPSBmaWxlcy5tYXAoZnVuY3Rpb24oZmlsZSkgeworICAgICAgICByZXR1cm4gJy4uL3Rlc3RfZGF0YS8nICsgZmlsZTsKKyAgICAgIH0pOworICAgICAgaW5pdFVJKGZpbGVuYW1lcyk7CisgICAgfSk7CisgIH0KKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkxvYWQpOworCisgIGZ1bmN0aW9uIGluaXRVSShmaWxlcykgeworICAgIC8vIEdyb3Vwcy4KKyAgICB2YXIgZmlsZXNCeURpck5hbWUgPSB7fTsKKyAgICBmaWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGZpbGUpIHsKKyAgICAgIHZhciByZXN0ID0gL21lYXN1cm10LXRyYWNlc1wvKC4rKS8uZXhlYyhmaWxlKVsxXTsKKworICAgICAgLy8gRmluZCBzdWJkaXJlY3Rvcmllcy4KKyAgICAgIHZhciBtID0gLyguKz8pXC8oLiopLy5leGVjKHJlc3QpOworICAgICAgdmFyIGRpck5hbWUgPSBtWzFdOworICAgICAgdmFyIGJhc2VOYW1lID0gbVsyXTsKKyAgICAgIGlmIChiYXNlTmFtZSA9PSAncmFpbF9leHBlY3RhdGlvbnMuanNvbicpIHsKKyAgICAgICAgLy8gVE9ETyhuZHVjYSk6IFN0YXNoIHRoaXMgc29tZXdoZXJlIGVsc2UuCisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIGlmIChiYXNlTmFtZS5lbmRzV2l0aCgnLm1wNCcpKSB7CisgICAgICAgIC8vIFRPRE8obmR1Y2EpOiBTdGFzaCB0aGlzIHNvbWV3aGVyZSBlbHNlLgorICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICBpZiAoZmlsZXNCeURpck5hbWVbZGlyTmFtZV0gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgZmlsZXNCeURpck5hbWVbZGlyTmFtZV0gPSBbXTsKKyAgICAgIGZpbGVzQnlEaXJOYW1lW2Rpck5hbWVdLnB1c2goZmlsZSk7CisgICAgfSk7CisKKyAgICB2YXIgc2VsZWN0RWwgPSBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3IoJyN0cmFjZS1kaXInKTsKKyAgICBzZWxlY3RFbC5maWxlc0J5RGlyTmFtZSA9IGZpbGVzQnlEaXJOYW1lOworCisgICAgdHIuYi5pdGVySXRlbXMoZmlsZXNCeURpck5hbWUsIGZ1bmN0aW9uKGRpck5hbWUsIGZpbGVzSW5EaXIpIHsKKyAgICAgIHZhciBydW5FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgICAgcnVuRWwudGV4dENvbnRlbnQgPSBkaXJOYW1lICsgJzogJyArIGZpbGVzSW5EaXIubGVuZ3RoICsgJyB0cmFjZXMnOworICAgICAgcnVuRWwudmFsdWUgPSBkaXJOYW1lOworICAgICAgc2VsZWN0RWwuYXBwZW5kQ2hpbGQocnVuRWwpOworICAgIH0pOworCisgICAgc2VsZWN0RWwuc2VsZWN0ZWRJbmRleCA9IDA7CisgICAgc2VsZWN0RWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25TZWxlY3Rpb25DaGFuZ2UpOworICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgIC8vIFRoaXMgd2lsbCB0cmlnZ2VyIGFuIG9uSGFzaENoYW5nZSBzbyBubyBuZWVkIHRvIHJlbG9hZCBkaXJlY3RseS4KKyAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyMnICsgc2VsZWN0RWxbc2VsZWN0RWwuc2VsZWN0ZWRJbmRleF0udmFsdWU7CisgICAgfSBlbHNlIHsKKyAgICAgIG9uSGFzaENoYW5nZSgpOworICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uIG9uU2VsZWN0aW9uQ2hhbmdlKCkgeworICAgIHZhciBzZWxlY3RFbCA9IGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcignI3RyYWNlLWRpcicpOworICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyMnICsgc2VsZWN0RWxbc2VsZWN0RWwuc2VsZWN0ZWRJbmRleF0udmFsdWU7CisgIH0KKworICBmdW5jdGlvbiBvbkhhc2hDaGFuZ2UoKSB7CisgICAgdmFyIGZpbGUgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoMSk7CisgICAgdmFyIHNlbGVjdEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RyYWNlLWRpcicpOworICAgIGlmIChzZWxlY3RFbFtzZWxlY3RFbC5zZWxlY3RlZEluZGV4XS52YWx1ZSAhPSBmaWxlKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdEVsLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChzZWxlY3RFbC5jaGlsZHJlbltpXS52YWx1ZSA9PSBmaWxlKSB7CisgICAgICAgICAgc2VsZWN0RWwuc2VsZWN0ZWRJbmRleCA9IGk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgcmVsb2FkKCk7CisgIH0KKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLCBvbkhhc2hDaGFuZ2UpOworCisgIGZ1bmN0aW9uIHJlbG9hZCgpIHsKKyAgICB2YXIgZGlyTmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTsKKyAgICB2YXIgc2VsZWN0RWwgPSBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3IoJyN0cmFjZS1kaXInKTsKKyAgICB2YXIgZmlsZXNJbkRpciA9IHNlbGVjdEVsLmZpbGVzQnlEaXJOYW1lW2Rpck5hbWVdOworICAgIHZhciByZXN1bHRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Jlc3VsdHMnKTsKKyAgICByZXN1bHRzLmNsZWFyKCk7CisgICAgdHIudWkuZS5kZWVwX3JlcG9ydHMubWFpbihyZXN1bHRzLCBmaWxlc0luRGlyKS50aGVuKAorICAgICAgZnVuY3Rpb24gc3VjY2VzcygpIHsKKyAgICAgIH0sCisgICAgICBmdW5jdGlvbiBlcnJvcihlcnIpIHsKKyAgICAgICAgdHIuc2hvd1BhbmljKCdFcnJvcicsIGVycik7CisgICAgICB9KTsKKyAgfQorICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL2V4YW1wbGVzL3NraWFfZGVidWdnZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2V4YW1wbGVzL3NraWFfZGVidWdnZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzEzOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvZXhhbXBsZXMvc2tpYV9kZWJ1Z2dlci5odG1sCkBAIC0wLDAgKzEsMTc1IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGhlYWQ+Cis8dGl0bGU+U2tpYSBEZWJ1Z2dlcjwvdGl0bGU+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisKKzxzY3JpcHQgc3JjPSIvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy5qcyI+PC9zY3JpcHQ+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX2RlYnVnZ2VyLmh0bWwiPgorCis8c2NyaXB0IHNyYz0ic3RyaW5nX2NvbnZlcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBwaWN0dXJlLW9wcy1saXN0LXZpZXcgeworICAgIGhlaWdodDogNTAwcHg7CisgICAgb3ZlcmZsb3cteTogYXV0bzsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgorICAgIDxzZWxlY3QgaWQ9InNrcF9maWxlIj48L3NlbGVjdD4KKyAgPC9kaXY+CisKKyAgPGRpdiBjbGFzcz0idmlldyI+PC9kaXY+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICB2YXIgZGVidWdnZXJFbDsKKworICBmdW5jdGlvbiBnZXRQaWN0dXJlKHNrcDY0KSB7CisgICAgaWYgKCF0ci5lLmNjLlBpY3R1cmVTbmFwc2hvdC5DYW5HZXRJbmZvKCkpIHsKKyAgICAgIGNvbnNvbGUuZXJyb3IodHIuZS5jYy5QaWN0dXJlU25hcHNob3QuSG93VG9FbmFibGVQaWN0dXJlRGVidWdnaW5nKCkpOworCisgICAgICB2YXIgaW5mb0JhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItaW5mby1iYXInKTsKKyAgICAgIHZhciB2aWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnZpZXcnKTsKKworICAgICAgdmlldy5yZW1vdmVDaGlsZChkZWJ1Z2dlckVsKTsKKyAgICAgIGRlYnVnZ2VyRWwgPSB1bmRlZmluZWQ7CisKKyAgICAgIHZpZXcuYXBwZW5kQ2hpbGQoaW5mb0Jhcik7CisKKyAgICAgIGluZm9CYXIubWVzc2FnZSA9IHRyLmUuY2MuUGljdHVyZVNuYXBzaG90Lkhvd1RvRW5hYmxlUGljdHVyZURlYnVnZ2luZygpOworICAgICAgaW5mb0Jhci52aXNpYmxlID0gdHJ1ZTsKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfQorCisgICAgdmFyIHNpemUgPSBjaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRJbmZvKHNrcDY0KTsKKyAgICBpZiAoc2l6ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZ2V0IHBpY3R1cmUgaW5mb3JtYXRpb24nKTsKKworICAgIHJldHVybiBuZXcgdHIuZS5jYy5QaWN0dXJlKHNrcDY0LAorICAgICAgICB0ci5SZWN0LmZyb21YWVdIKDAsIDAsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KSwKKyAgICAgICAgdHIuUmVjdC5mcm9tWFlXSCgwLCAwLCBzaXplLndpZHRoLCBzaXplLmhlaWdodCkpOworICB9CisKKyAgZnVuY3Rpb24gdXRmOF90b19iNjQoc3RyKSB7CisgICAgcmV0dXJuIHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChzdHIpKSk7CisgIH0KKworICBmdW5jdGlvbiBsb2FkU2twKGZpbGVuYW1lLCBvblNrcExvYWRlZCkgeworICAgIGdldEFzeW5jKGZpbGVuYW1lLCBmdW5jdGlvbihhcnIpIHsKKyAgICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYXJyKTsKKyAgICAgIHZhciBkYXRhID0gYmFzZTY0RW5jQXJyKHZpZXcsIDEpOworICAgICAgb25Ta3BMb2FkZWQoZmlsZW5hbWUsIGRhdGEpOworICAgIH0sJ2FycmF5YnVmZmVyJyk7CisgIH0KKyAgZnVuY3Rpb24gWWxvYWRTa3AoZmlsZW5hbWUsIG9uU2twTG9hZGVkKSB7CisgICAgZ2V0QXN5bmMoZmlsZW5hbWUsIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgIHZhciBkYXRhNjQgPSB1dGY4X3RvX2I2NChkYXRhKTsKKyAgICAgIG9uU2twTG9hZGVkKGZpbGVuYW1lLCBkYXRhNjQpOworICAgIH0pOworICB9CisKKyAgZnVuY3Rpb24gZ2V0QXN5bmModXJsLCBjYWxsYmFjaywgb3B0X3Jlc3BvbnNlVHlwZSkgeworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICBpZiAob3B0X3Jlc3BvbnNlVHlwZSkKKyAgICAgIHJlcS5yZXNwb25zZVR5cGUgPSBvcHRfcmVzcG9uc2VUeXBlOworICAgIHJlcS5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOworICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihhRXZ0KSB7CisgICAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKHJlcS5zdGF0dXMgPT09IDIwMCkgeworICAgICAgICAgICAgaWYgKG9wdF9yZXNwb25zZVR5cGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgY2FsbGJhY2socmVxLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcS5yZXNwb25zZSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGYWlsZWQgdG8gbG9hZCAnICsgdXJsKTsKKyAgICAgICAgICB9CisgICAgICAgIH0sIDApOworICAgICAgfQorICAgIH07CisgICAgcmVxLnNlbmQobnVsbCk7CisgIH0KKworICBmdW5jdGlvbiBjcmVhdGVWaWV3RnJvbVNrcChmaWxlbmFtZSwgc2twKSB7CisgICAgdmFyIHAgPSBnZXRQaWN0dXJlKHNrcCk7CisgICAgaWYgKHAgPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybjsKKyAgICBkZWJ1Z2dlckVsLnBpY3R1cmUgPSBwOworICB9CisKKyAgZnVuY3Rpb24gb25TZWxlY3Rpb25DaGFuZ2UoKSB7CisgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNza3BfZmlsZScpOworICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyMnICsgc2VsZWN0W3NlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKKyAgfQorCisgIGZ1bmN0aW9uIG9uSGFzaENoYW5nZSgpIHsKKyAgICB2YXIgZmlsZSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTsKKyAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NrcF9maWxlJyk7CisgICAgaWYgKHNlbGVjdFtzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWUgIT0gZmlsZSkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3QuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHNlbGVjdC5jaGlsZHJlbltpXS52YWx1ZSA9PSBmaWxlKSB7CisgICAgICAgICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIHJlbG9hZCgpOworICB9CisKKyAgZnVuY3Rpb24gY2xlYW5GaWxlbmFtZShmaWxlKSB7CisgICAgZnVuY3Rpb24gdXBjYXNlKGxldHRlcikgeworICAgICAgcmV0dXJuICcgJyArIGxldHRlci50b1VwcGVyQ2FzZSgpOworICAgIH0KKyAgICByZXR1cm4gZmlsZS5yZXBsYWNlKC9fL2csICcgJykKKyAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cLlteXC5dKiQvLCAnJykKKyAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gKFthLXpdKS9nLCB1cGNhc2UpCisgICAgICAgICAgICAgICAucmVwbGFjZSgvXlthLXpdLywgdXBjYXNlKTsKKyAgfQorCisgIGZ1bmN0aW9uIHJlbG9hZCgpIHsKKyAgICB2YXIgZmlsZSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTsKKyAgICB2YXIgZmlsZW5hbWUgPSAnL3NrcF9kYXRhLycgKyBmaWxlOworICAgIGxvYWRTa3AoZmlsZW5hbWUsIGNyZWF0ZVZpZXdGcm9tU2twKTsKKyAgfQorCisgIGZ1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICBkZWJ1Z2dlckVsID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLlBpY3R1cmVEZWJ1Z2dlcigpOworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy52aWV3JykuYXBwZW5kQ2hpbGQoZGVidWdnZXJFbCk7CisKKyAgICBnZXRBc3luYygnL2pzb24vZXhhbXBsZXMvc2twJywgZnVuY3Rpb24oZGF0YSkgeworICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNza3BfZmlsZScpOworICAgICAgdmFyIGZpbGVzID0gSlNPTi5wYXJzZShkYXRhKTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgb3B0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CisgICAgICAgIG9wdC52YWx1ZSA9IGZpbGVzW2ldOworICAgICAgICBvcHQudGV4dENvbnRlbnQgPSBjbGVhbkZpbGVuYW1lKGZpbGVzW2ldKTsKKyAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdCk7CisgICAgICB9CisgICAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IDA7CisgICAgICBzZWxlY3Qub25jaGFuZ2UgPSBvblNlbGVjdGlvbkNoYW5nZTsKKworICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaGFzaCkgeworICAgICAgICAvLyBUaGlzIHdpbGwgdHJpZ2dlciBhbiBvbkhhc2hDaGFuZ2Ugc28gbm8gbmVlZCB0byByZWxvYWQgZGlyZWN0bHkuCisgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyMnICsgc2VsZWN0W3NlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIG9uSGFzaENoYW5nZSgpOworICAgICAgfQorICAgIH0pOworICB9CisKKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLCBvbkhhc2hDaGFuZ2UpOworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uTG9hZCk7CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2V4YW1wbGVzL3N0cmluZ19jb252ZXJ0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvZXhhbXBsZXMvc3RyaW5nX2NvbnZlcnQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci9leGFtcGxlcy9zdHJpbmdfY29udmVydC5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvZXhhbXBsZXMvc3RyaW5nX2NvbnZlcnQuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL2V4YW1wbGVzL3RyYWNlX3ZpZXdlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvZXhhbXBsZXMvdHJhY2Vfdmlld2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDgxMzljOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2V4YW1wbGVzL3RyYWNlX3ZpZXdlci5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDExIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGhlYWQ+Cis8dGl0bGU+U2ltcGxlIEVtYmVkZGVkIFZpZXdlcjwvdGl0bGU+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisKKzxzY3JpcHQgc3JjPSIvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy5qcyI+PC9zY3JpcHQ+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS94aHIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZnVsbF9jb25maWcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXcuaHRtbCI+CisKKzxzdHlsZT4KKyAgaHRtbCwKKyAgYm9keSB7CisgICAgaGVpZ2h0OiAxMDAlOworICB9CisKKyAgYm9keSB7CisgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKKyAgfQorCisgIGJvZHkgPiB0ci11aS10aW1lbGluZS12aWV3IHsKKyAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICAgIG1pbi1oZWlnaHQ6IDA7CisgIH0KKyAgYm9keSA+IHRyLXVpLXRpbWVsaW5lLXZpZXc6Zm9jdXMgeworICAgIG91dGxpbmU6IG5vbmU7CisgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHRyLXVpLXRpbWVsaW5lLXZpZXc+CisgICAgPHRyYWNrLXZpZXctY29udGFpbmVyIGlkPSd0cmFja192aWV3X2NvbnRhaW5lcic+PC90cmFjay12aWV3LWNvbnRhaW5lcj4KKyAgPC90ci11aS10aW1lbGluZS12aWV3PgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICB2YXIgdGltZWxpbmVWaWV3RWw7CisgIHZhciBzZWxlY3RFbDsKKworICBmdW5jdGlvbiBsb2FkVHJhY2VzKGZpbGVuYW1lcywgb25UcmFjZXNMb2FkZWQpIHsKKyAgICB2YXIgdHJhY2VzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgIHRyYWNlcy5wdXNoKHVuZGVmaW5lZCk7CisgICAgfQorICAgIHZhciBudW1UcmFjZXNQZW5kaW5nID0gZmlsZW5hbWVzLmxlbmd0aDsKKworICAgIGZpbGVuYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGZpbGVuYW1lLCBpKSB7CisgICAgICBnZXRBc3luYyhmaWxlbmFtZSwgZnVuY3Rpb24odHJhY2UpIHsKKyAgICAgICAgdHJhY2VzW2ldID0gdHJhY2U7CisgICAgICAgIG51bVRyYWNlc1BlbmRpbmctLTsKKyAgICAgICAgaWYgKG51bVRyYWNlc1BlbmRpbmcgPT0gMCkKKyAgICAgICAgICBvblRyYWNlc0xvYWRlZChmaWxlbmFtZXMsIHRyYWNlcyk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfQorCisKKyAgZnVuY3Rpb24gZ2V0QXN5bmModXJsLCBjYikgeworICAgIHRyLmIuZ2V0QXN5bmModXJsKS50aGVuKGNiKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZVZpZXdGcm9tVHJhY2VzKGZpbGVuYW1lcywgdHJhY2VzKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcCA9IG0uaW1wb3J0VHJhY2VzV2l0aFByb2dyZXNzRGlhbG9nKHRyYWNlcywgdHJ1ZSk7CisgICAgcC50aGVuKAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgIHRpbWVsaW5lVmlld0VsLm1vZGVsID0gbTsKKyAgICAgICAgdGltZWxpbmVWaWV3RWwudXBkYXRlRG9jdW1lbnRGYXZpY29uKCk7CisgICAgICAgIHRpbWVsaW5lVmlld0VsLmdsb2JhbE1vZGUgPSB0cnVlOworICAgICAgICB0aW1lbGluZVZpZXdFbC52aWV3VGl0bGUgPSAnJzsKKyAgICAgIH0sCisgICAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgdmFyIG92ZXJsYXkgPSBuZXcgdHIudWkuYi5PdmVybGF5KCk7CisgICAgICAgIG92ZXJsYXkudGV4dENvbnRlbnQgPSB0ci5iLm5vcm1hbGl6ZUV4Y2VwdGlvbihlcnIpLm1lc3NhZ2U7CisgICAgICAgIG92ZXJsYXkudGl0bGUgPSAnSW1wb3J0IGVycm9yJzsKKyAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKKyAgICAgIH0pOworICB9CisKKyAgZnVuY3Rpb24gb25TZWxlY3Rpb25DaGFuZ2UoKSB7CisgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnIycgKyBzZWxlY3RFbFtzZWxlY3RFbC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKKyAgfQorCisgIGZ1bmN0aW9uIG9uSGFzaENoYW5nZSgpIHsKKyAgICB2YXIgZmlsZSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKTsKKyAgICBpZiAoc2VsZWN0RWxbc2VsZWN0RWwuc2VsZWN0ZWRJbmRleF0udmFsdWUgIT0gZmlsZSkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RFbC5jaGlsZHJlbi5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoc2VsZWN0RWwuY2hpbGRyZW5baV0udmFsdWUgPT09IGZpbGUpIHsKKyAgICAgICAgICBzZWxlY3RFbC5zZWxlY3RlZEluZGV4ID0gaTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICByZWxvYWQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNsZWFuRmlsZW5hbWUoZmlsZSkgeworICAgIHZhciBtID0gL1wvdGVzdF9kYXRhXC8oLispLy5leGVjKGZpbGUpOworICAgIHZhciByZXN0ID0gbVsxXTsKKworICAgIGZ1bmN0aW9uIHVwY2FzZShsZXR0ZXIpIHsKKyAgICAgIHJldHVybiAnICcgKyBsZXR0ZXIudG9VcHBlckNhc2UoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdC5yZXBsYWNlKC9fL2csICcgJykKKyAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cLlteXC5dKiQvLCAnJykKKyAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gKFthLXpdKS9nLCB1cGNhc2UpCisgICAgICAgICAgICAgICAucmVwbGFjZSgvXlthLXpdLywgdXBjYXNlKTsKKyAgfQorCisgIGZ1bmN0aW9uIHJlbG9hZCgpIHsKKyAgICBsb2FkVHJhY2VzKFt3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoMSldLCBjcmVhdGVWaWV3RnJvbVRyYWNlcyk7CisgIH0KKworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignaGFzaGNoYW5nZScsIG9uSGFzaENoYW5nZSk7CisKKyAgZnVuY3Rpb24gb25Mb2FkKCkgeworICAgIHRpbWVsaW5lVmlld0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndHItdWktdGltZWxpbmUtdmlldycpOworICAgIHRpbWVsaW5lVmlld0VsLmdsb2JhbE1vZGUgPSB0cnVlOworCisgICAgc2VsZWN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKKyAgICB0aW1lbGluZVZpZXdFbC5sZWZ0Q29udHJvbHMuYXBwZW5kQ2hpbGQoc2VsZWN0RWwpOworCisgICAgZ2V0QXN5bmMoJy9qc29uL2V4YW1wbGVzJywgZnVuY3Rpb24oZGF0YSkgeworICAgICAgdmFyIGZpbGVzID0gSlNPTi5wYXJzZShkYXRhKTsKKyAgICAgIGZpbGVzID0gZmlsZXMubWFwKGZ1bmN0aW9uKHJlc3QpIHsKKyAgICAgICAgcmV0dXJuICcvdGVzdF9kYXRhLycgKyByZXN0OworICAgICAgfSk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIG9wdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgICAgICBvcHQudmFsdWUgPSBmaWxlc1tpXTsKKyAgICAgICAgb3B0LnRleHRDb250ZW50ID0gY2xlYW5GaWxlbmFtZShmaWxlc1tpXSk7CisgICAgICAgIHNlbGVjdEVsLmFwcGVuZENoaWxkKG9wdCk7CisgICAgICB9CisgICAgICBzZWxlY3RFbC5zZWxlY3RlZEluZGV4ID0gMDsKKyAgICAgIHNlbGVjdEVsLm9uY2hhbmdlID0gb25TZWxlY3Rpb25DaGFuZ2U7CisKKyAgICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgYW4gb25IYXNoQ2hhbmdlIHNvIG5vIG5lZWQgdG8gcmVsb2FkIGRpcmVjdGx5LgorICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICcjJyArIHNlbGVjdEVsW3NlbGVjdEVsLnNlbGVjdGVkSW5kZXhdLnZhbHVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgb25IYXNoQ2hhbmdlKCk7CisgICAgICB9CisgICAgfSk7CisgIH0KKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkxvYWQpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS1ibHVlLnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2ltYWdlcy90cmFjZS12aWV3ZXItY2lyY2xlLWJsdWUucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvaW1hZ2VzL3RyYWNlLXZpZXdlci1jaXJjbGUtYmx1ZS5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL2ltYWdlcy90cmFjZS12aWV3ZXItY2lyY2xlLWJsdWUucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS1ncmVlbi5wbmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS1ncmVlbi5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS1ncmVlbi5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL2ltYWdlcy90cmFjZS12aWV3ZXItY2lyY2xlLWdyZWVuLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvaW1hZ2VzL3RyYWNlLXZpZXdlci1jaXJjbGUtcmVkLnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2ltYWdlcy90cmFjZS12aWV3ZXItY2lyY2xlLXJlZC5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS1yZWQucG5nCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS1yZWQucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9pbWFnZXMvdHJhY2Utdmlld2VyLWNpcmNsZS15ZWxsb3cucG5nIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvaW1hZ2VzL3RyYWNlLXZpZXdlci1jaXJjbGUteWVsbG93LnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL2ltYWdlcy90cmFjZS12aWV3ZXItY2lyY2xlLXllbGxvdy5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL2ltYWdlcy90cmFjZS12aWV3ZXItY2lyY2xlLXllbGxvdy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2ltYWdlcy90cmFjZS12aWV3ZXItc3F1YXJlLWJsdWUucG5nIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvaW1hZ2VzL3RyYWNlLXZpZXdlci1zcXVhcmUtYmx1ZS5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci9pbWFnZXMvdHJhY2Utdmlld2VyLXNxdWFyZS1ibHVlLnBuZwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvaW1hZ2VzL3RyYWNlLXZpZXdlci1zcXVhcmUtYmx1ZS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2ltYWdlcy90cmFjZS12aWV3ZXItc3F1YXJlLWdyZWVuLnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL2ltYWdlcy90cmFjZS12aWV3ZXItc3F1YXJlLWdyZWVuLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL2ltYWdlcy90cmFjZS12aWV3ZXItc3F1YXJlLWdyZWVuLnBuZwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvaW1hZ2VzL3RyYWNlLXZpZXdlci1zcXVhcmUtZ3JlZW4ucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci9pbWFnZXMvdHJhY2Utdmlld2VyLXNxdWFyZS1yZWQucG5nIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvaW1hZ2VzL3RyYWNlLXZpZXdlci1zcXVhcmUtcmVkLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL2ltYWdlcy90cmFjZS12aWV3ZXItc3F1YXJlLXJlZC5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL2ltYWdlcy90cmFjZS12aWV3ZXItc3F1YXJlLXJlZC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL2ltYWdlcy90cmFjZS12aWV3ZXItc3F1YXJlLXllbGxvdy5wbmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9pbWFnZXMvdHJhY2Utdmlld2VyLXNxdWFyZS15ZWxsb3cucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvaW1hZ2VzL3RyYWNlLXZpZXdlci1zcXVhcmUteWVsbG93LnBuZwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvaW1hZ2VzL3RyYWNlLXZpZXdlci1zcXVhcmUteWVsbG93LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy9ydW5fZDhfdGVzdHMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9ydW5fZDhfdGVzdHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjZmNWFhNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3J1bl9kOF90ZXN0cwpAQCAtMCwwICsxLDQ2IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2hvb2tzX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQoraWYgaG9va3NfcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgIHN5cy5wYXRoLmFwcGVuZChob29rc19wYXRoKQorCitmcm9tIGhvb2tzIGltcG9ydCBpbnN0YWxsCisKKworZnJvbSB0cmFjaW5nIGltcG9ydCB0cmFjaW5nX3Byb2plY3QKK2ltcG9ydCB2aW5uCisKKworZGVmIE1haW4oYXJncyk6CisgIHByb2plY3QgPSB0cmFjaW5nX3Byb2plY3QuVHJhY2luZ1Byb2plY3QoKQorICBkOF90ZXN0X21vZHVsZV9yZXNvdXJjZXMgPSBwcm9qZWN0LkZpbmRBbGxEOFRlc3RNb2R1bGVSZXNvdXJjZXMoKQorICBkOF90ZXN0X21vZHVsZV9maWxlbmFtZXMgPSBbeC51bml4X3N0eWxlX3JlbGF0aXZlX3BhdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIGQ4X3Rlc3RfbW9kdWxlX3Jlc291cmNlc10KKyAgZDhfdGVzdF9tb2R1bGVfZmlsZW5hbWVzLnNvcnQoKQorCisgIGNtZCA9ICIiIgorICBsb2FkSFRNTCgnL2Jhc2UvZDhfdGVzdHMuaHRtbCcpOworICAiIiIKKyAgcmVzID0gdmlubi5SdW5Kc1N0cmluZygKKyAgICBjbWQsIHNvdXJjZV9wYXRocz1saXN0KHByb2plY3Quc291cmNlX3BhdGhzKSwKKyAgICBqc19hcmdzPWQ4X3Rlc3RfbW9kdWxlX2ZpbGVuYW1lcywgc3Rkb3V0PXN5cy5zdGRvdXQsIHN0ZGluPXN5cy5zdGRpbikKKyAgcmV0dXJuIHJlcy5yZXR1cm5jb2RlCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKAorICAgICAgZGVzY3JpcHRpb249J1J1biBkOCB0ZXN0cy4nKQorICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICctLW5vLWluc3RhbGwtaG9va3MnLCBkZXN0PSdpbnN0YWxsX2hvb2tzJywgYWN0aW9uPSdzdG9yZV9mYWxzZScpCisgIHBhcnNlci5zZXRfZGVmYXVsdHMoaW5zdGFsbF9ob29rcz1UcnVlKQorICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICBpZiBhcmdzLmluc3RhbGxfaG9va3M6CisgICAgaW5zdGFsbC5JbnN0YWxsSG9va3MoKQorCisgIHN5cy5leGl0KE1haW4oc3lzLmFyZ3ZbMTpdKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3J1bl9kZXZfc2VydmVyIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvcnVuX2Rldl9zZXJ2ZXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjYzZWY5NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3J1bl9kZXZfc2VydmVyCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2hvb2tzX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQoraWYgaG9va3NfcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgIHN5cy5wYXRoLmFwcGVuZChob29rc19wYXRoKQorCitmcm9tIGhvb2tzIGltcG9ydCBpbnN0YWxsCitmcm9tIHRyYWNpbmcuYnVpbGQgaW1wb3J0IHRyYWNpbmdfZGV2X3NlcnZlcgorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBkZXZfc2VydmVyX2FyZ3MgPSBzeXMuYXJndlsxOl0KKyAgIyBUaGlzIHBhcnNlcyBzeXMuYXJndiBpbnN0ZWFkIG9mIHVzaW5nIGFyZ3BhcnNlIGJlY2F1c2UKKyAgIyB0cmFjaW5nX2Rldl9zZXJ2ZXIuTWFpbiBhbHNvIHVzZXMgYXJncGFyc2UsIGFuZCB1c2luZyBhcmdwYXJzZSBoZXJlIHdvdWxkCisgICMgb3ZlcnJpZGUgaXRzIGhlbHAgbWVzc2FnZS4KKyAgaWYgJy0tbm8taW5zdGFsbC1ob29rcycgbm90IGluIHN5cy5hcmd2OgorICAgIGluc3RhbGwuSW5zdGFsbEhvb2tzKCkKKyAgZWxzZToKKyAgICBkZXZfc2VydmVyX2FyZ3MucmVtb3ZlKCctLW5vLWluc3RhbGwtaG9va3MnKQorICBzeXMuZXhpdCh0cmFjaW5nX2Rldl9zZXJ2ZXIuTWFpbihkZXZfc2VydmVyX2FyZ3MpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvcnVuX3B5X3Rlc3RzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvcnVuX3B5X3Rlc3RzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmN2M2YmIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9ydW5fcHlfdGVzdHMKQEAgLTAsMCArMSwzNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitob29rc19wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKK2lmIGhvb2tzX3BhdGggbm90IGluIHN5cy5wYXRoOgorICBzeXMucGF0aC5hcHBlbmQoaG9va3NfcGF0aCkKKworZnJvbSBob29rcyBpbXBvcnQgaW5zdGFsbAorCitpbXBvcnQgdHJhY2luZyAjIEJyaW5ncyBpbiB0dmNtIGJpbmRpbmdzLgorZnJvbSB0dmNtIGltcG9ydCB0ZXN0X3J1bm5lcgoraW1wb3J0IHR2Y20KK2ltcG9ydCB2aW5uCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoCisgICAgICBkZXNjcmlwdGlvbj0nUnVuIHB5dGhvbiB0ZXN0cy4nKQorICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICctLW5vLWluc3RhbGwtaG9va3MnLCBkZXN0PSdpbnN0YWxsX2hvb2tzJywgYWN0aW9uPSdzdG9yZV9mYWxzZScpCisgIHBhcnNlci5zZXRfZGVmYXVsdHMoaW5zdGFsbF9ob29rcz1UcnVlKQorICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICBpZiBhcmdzLmluc3RhbGxfaG9va3M6CisgICAgaW5zdGFsbC5JbnN0YWxsSG9va3MoKQorCisgIHJ1bm5lciA9IHRlc3RfcnVubmVyLlRlc3RSdW5uZXIoKQorICBydW5uZXIuQWRkTW9kdWxlKHR2Y20pCisgIHJ1bm5lci5BZGRNb2R1bGUodmlubikKKyAgcnVubmVyLkFkZE1vZHVsZSh0cmFjaW5nKQorICBzeXMuZXhpdChydW5uZXIuTWFpbigpKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvcnVuX3Rlc3RzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvcnVuX3Rlc3RzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjNDE0NGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9ydW5fdGVzdHMKQEAgLTAsMCArMSwxMTggQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworCisKK19SVU5fUFlfVEVTVFNfRElSID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICdydW5fcHlfdGVzdHMnKQorX1JVTl9EOF9URVNUU19ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ3J1bl9kOF90ZXN0cycpCitfUlVOX0RFVl9TRVJWRVJfRElSID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICdydW5fZGV2X3NlcnZlcicpCisKKworY2xhc3MgYmNvbG9ycyhvYmplY3QpOgorICAgIEhFQURFUiA9ICdcMDMzWzk1bScKKyAgICBPS0JMVUUgPSAnXDAzM1s5NG0nCisgICAgT0tHUkVFTiA9ICdcMDMzWzkybScKKyAgICBXQVJOSU5HID0gJ1wwMzNbOTNtJworICAgIEZBSUwgPSAnXDAzM1s5MW0nCisgICAgRU5EQyA9ICdcMDMzWzBtJworICAgIEJPTEQgPSAnXDAzM1sxbScKKyAgICBVTkRFUkxJTkUgPSAnXDAzM1s0bScKKworCitkZWYgX1J1blB5VGVzdHMoKToKKyAgcmV0dXJuIHN1YnByb2Nlc3MuY2FsbChbX1JVTl9QWV9URVNUU19ESVJdKQorCisKK2RlZiBfUnVuRDhUZXN0cygpOgorICByZXR1cm4gc3VicHJvY2Vzcy5jYWxsKFtfUlVOX0Q4X1RFU1RTX0RJUl0pCisKKworZGVmIF9SdW5EZXZTZXJ2ZXIoY2hyb21lX2NvbW1hbmQpOgorICBpZiAoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4JykgYW5kIG9zLmdldGVudignRElTUExBWScpIGlzIE5vbmUpOgorICAgIGxvZ2dpbmcud2FybmluZygKKyAgICAgICdCcm93c2VyIGZvdW5kIGJ1dCBjYW5ub3QgcnVuIGJyb3dzZXIgdGVzdHMgYmVjYXVzZSB5b3UgZG8gbm90IGhhdmUgYSAnCisgICAgICAnRElTUExBWSBlbnZpcm9ubWVudCBzZXQuJykKKyAgICByZXR1cm4gMAorICBhcmdzID0gWworICAgIGNocm9tZV9jb21tYW5kLCAnLS1uby1zYW5kYm94JywgJy0tbm8tZXhwZXJpbWVudHMnLCAnLS1uby1maXJzdC1ydW4nLAorICAgICctLW5vZXJyZGlhbG9ncycsCisgICAgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMy9iYXNlL3Rlc3RzLmh0bWw/aGVhZGxlc3M9dHJ1ZSZ0ZXN0VHlwZVRvUnVuPWFsbCddCisgIGNocm9tZV9wcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzKQorICBleGl0X2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwoW19SVU5fREVWX1NFUlZFUl9ESVJdKQorICBjaHJvbWVfcHJvYy50ZXJtaW5hdGUoKQorICBpZiBjaHJvbWVfcHJvYy5wb2xsKCkgaXMgTm9uZToKKyAgICBjaHJvbWVfcHJvYy5raWxsKCkKKyAgcmV0dXJuIGV4aXRfY29kZQorCisKK2RlZiBfVHJ5R2V0dGluZ0Nocm9tZUNvbW1hbmQoKToKKyAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2RhcndpbicpOiAgIyBNYWMKKyAgICBjaHJvbWVfcGF0aCA9ICgKKyAgICAgICcvQXBwbGljYXRpb25zL0dvb2dsZSBDaHJvbWUuYXBwL0NvbnRlbnRzL01hY09TL0dvb2dsZSBDaHJvbWUnKQorICAgIGlmIG9zLnBhdGguaXNmaWxlKGNocm9tZV9wYXRoKToKKyAgICAgIHJldHVybiBjaHJvbWVfcGF0aAorICBlbGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpOgorICAgIGZvdW5kID0gRmFsc2UKKyAgICB0cnk6CisgICAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBkZXZudWxsOgorICAgICAgICBmb3VuZCA9IHN1YnByb2Nlc3MuY2FsbChbJ2dvb2dsZS1jaHJvbWUnLCAnLS12ZXJzaW9uJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1kZXZudWxsLCBzdGRlcnI9ZGV2bnVsbCkgPT0gMAorICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgcGFzcworICAgIGlmIGZvdW5kOgorICAgICAgcmV0dXJuICdnb29nbGUtY2hyb21lJworICAjIFRPRE8obmVkbik6IEZpbmQgdGhlIGRlZmF1bHQgcGF0aCB0byBjaHJvbWUgb24gd2luIHBsYXRmb3JtLgorICByZXR1cm4gTm9uZQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKAorICAgICAgZGVzY3JpcHRpb249J1J1biBhbGwgdGVzdHMgb2YgdHJhY2luZyBwcm9qZWN0LicpCisgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tY2hyb21lX3BhdGgnLCB0eXBlPXN0ciwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdQYXRoIHRvIENocm9tZSBicm93c2VyIGJpbmFyeS4nKQorICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICBjaHJvbWVfY29tbWFuZCA9IGFyZ3MuY2hyb21lX3BhdGgKKyAgaWYgbm90IGNocm9tZV9jb21tYW5kOgorICAgIGNocm9tZV9jb21tYW5kID0gX1RyeUdldHRpbmdDaHJvbWVDb21tYW5kKCkKKworICBydW5fcHlfdGVzdHNfZXhpdF9jb2RlID0gX1J1blB5VGVzdHMoKQorICBydW5fZDhfdGVzdHNfZXhpdF9jb2RlID0gX1J1bkQ4VGVzdHMoKQorICBpZiBjaHJvbWVfY29tbWFuZDoKKyAgICBydW5fZGV2X3NlcnZlcl9leGl0X2NvZGUgPSBfUnVuRGV2U2VydmVyKGNocm9tZV9jb21tYW5kKQorICBlbHNlOgorICAgIGxvZ2dpbmcud2FybmluZygKKyAgICAgICdDb3VsZCBub3QgcnVuIGJyb3dzZXIgdGVzdHMgYmVjYXVzZSBjaHJvbWUgaXMgbWlzc2luZy4nKQorICAgIHJ1bl9kZXZfc2VydmVyX2V4aXRfY29kZSA9IDAKKworICBleGl0X2NvZGUgPSAocnVuX3B5X3Rlc3RzX2V4aXRfY29kZSB8IHJ1bl9kZXZfc2VydmVyX2V4aXRfY29kZSB8CisgICAgICAgICAgICAgICBydW5fZDhfdGVzdHNfZXhpdF9jb2RlKQorICBpZiBleGl0X2NvZGU6CisgICAgcHJpbnQgKGJjb2xvcnMuRkFJTCArCisgICAgICAgICAgICdPb29vcHMhIExvb2tzIGxpa2Ugc29tZSBvZiB5b3VyIHRlc3RzIGhhdmUgZmFpbGVkLicgKworICAgICAgICAgICBiY29sb3JzLkVOREMpLCB1J1xVMDAwMUY2MzEnLmVuY29kZSgndXRmLTgnKQorICBlbHNlOgorICAgIHByaW50IChiY29sb3JzLk9LR1JFRU4gKworICAgICAgICAgICAnV29obyEgQWxsIHRoZSB0ZXN0cyBoYXZlIHBhc3NlZC4gWW91IGFyZSBhd2Vzb21lIScgKworICAgICAgICAgICBiY29sb3JzLkVOREMpLCB1J1xVMDAwMUY2MDEnLmVuY29kZSgndXRmLTgnKQorCisgIGlmIHJ1bl9weV90ZXN0c19leGl0X2NvZGU6CisgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICdydW5fcHlfdGVzdHMgaGF2ZSBzb21lIGZhaWxlZCB0ZXN0cy4gUmVydW4gcnVuX3B5X3Rlc3RzIHNjcmlwdCAnCisgICAgICAndG8gc2VlIHRob3NlLlxuJykKKyAgaWYgcnVuX2Q4X3Rlc3RzX2V4aXRfY29kZToKKyAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgJ3J1bl9kOF90ZXN0cyBoYXZlIHNvbWUgZmFpbGVkIHRlc3RzLiBSZXJ1biBydW5fZDhfdGVzdHMgc2NyaXB0ICcKKyAgICAgICd0byBzZWUgdGhvc2UuXG4nKQorICBpZiBydW5fZGV2X3NlcnZlcl9leGl0X2NvZGU6CisgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICdydW5fZGV2X3NlcnZlciBoYXZlIHNvbWUgZmFpbGVkIHRlc3RzLiBSZXJ1biBydW5fZGV2X3NlcnZlciBzY3JpcHQgJworICAgICAgJ2FuZCBvcGVuIHRoZSBicm93c2VyIHRvIHNlZSB0aG9zZS5cbicpCisKKyAgc3lzLmV4aXQoZXhpdF9jb2RlKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3NrcF9kYXRhL2dvb2dsZV9ob21lcGFnZS5za3AgYi90cmFjZS12aWV3ZXIvdHJhY2luZy9za3BfZGF0YS9nb29nbGVfaG9tZXBhZ2Uuc2twCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvc2twX2RhdGEvZ29vZ2xlX2hvbWVwYWdlLnNrcApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvc2twX2RhdGEvZ29vZ2xlX2hvbWVwYWdlLnNrcApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvc2twX2RhdGEvbHRoaV9jYXRzLnNrcCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3NrcF9kYXRhL2x0aGlfY2F0cy5za3AKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci9za3BfZGF0YS9sdGhpX2NhdHMuc2twCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy9za3BfZGF0YS9sdGhpX2NhdHMuc2twCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvYW5kcm9pZF9zeXN0cmFjZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2FuZHJvaWRfc3lzdHJhY2UuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9hbmRyb2lkX3N5c3RyYWNlLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9hbmRyb2lkX3N5c3RyYWNlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvYW5kcm9pZF9zeXN0cmFjZS50eHQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvYW5kcm9pZF9zeXN0cmFjZS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvYW5kcm9pZF9zeXN0cmFjZS50eHQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9hbmRyb2lkX3N5c3RyYWNlLnR4dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9hc3luY19iZWdpbl9lbmQuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9hc3luY19iZWdpbl9lbmQuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9hc3luY19iZWdpbl9lbmQuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2FzeW5jX2JlZ2luX2VuZC5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2JhdHRvci56aXAgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvYmF0dG9yLnppcApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9iYXR0b3IuemlwCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvYmF0dG9yLnppcApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2JpZ190cmFjZS5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2JpZ190cmFjZS5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2JpZ190cmFjZS5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvYmlnX3RyYWNlLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvY2hyb21lb3Nfc3lzdGVtX3RyYWNlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvY2hyb21lb3Nfc3lzdGVtX3RyYWNlLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvY2hyb21lb3Nfc3lzdGVtX3RyYWNlLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9jaHJvbWVvc19zeXN0ZW1fdHJhY2UuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9jb3VudGVyX3RyYWNrcy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2NvdW50ZXJfdHJhY2tzLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvY291bnRlcl90cmFja3MuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2NvdW50ZXJfdHJhY2tzLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvZGRtc19jYWxjdWxhdG9yX3N0YXJ0LnRyYWNlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2RkbXNfY2FsY3VsYXRvcl9zdGFydC50cmFjZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9kZG1zX2NhbGN1bGF0b3Jfc3RhcnQudHJhY2UKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9kZG1zX2NhbGN1bGF0b3Jfc3RhcnQudHJhY2UKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9kaXNwbGF5LWl0ZW0tbGlzdC5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2Rpc3BsYXktaXRlbS1saXN0Lmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvZGlzcGxheS1pdGVtLWxpc3QuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2Rpc3BsYXktaXRlbS1saXN0Lmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvZmxvdy5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2Zsb3cuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9mbG93Lmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9mbG93Lmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvZmxvd19iaWcuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9mbG93X2JpZy5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2Zsb3dfYmlnLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9mbG93X2JpZy5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2Zsb3dfc2ltcGxlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvZmxvd19zaW1wbGUuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9mbG93X3NpbXBsZS5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvZmxvd19zaW1wbGUuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9nb29nbGVfaGlnaGxpZ2h0Lmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvZ29vZ2xlX2hpZ2hsaWdodC5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2dvb2dsZV9oaWdobGlnaHQuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2dvb2dsZV9oaWdobGlnaHQuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9ncHVfc3RhdGVfdHJhY2UuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9ncHVfc3RhdGVfdHJhY2UuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9ncHVfc3RhdGVfdHJhY2UuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2dwdV9zdGF0ZV90cmFjZS5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2h1Z2VfdHJhY2UuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9odWdlX3RyYWNlLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvaHVnZV90cmFjZS5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvaHVnZV90cmFjZS5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL2luc3RhbmNlX2NvdW50ZXJzLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvaW5zdGFuY2VfY291bnRlcnMuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9pbnN0YW5jZV9jb3VudGVycy5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvaW5zdGFuY2VfY291bnRlcnMuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9pbnN0YW50X2V2ZW50cy5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2luc3RhbnRfZXZlbnRzLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvaW5zdGFudF9ldmVudHMuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL2luc3RhbnRfZXZlbnRzLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvbHRoaV9jYXRzLmpzb24uZ3ogYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvbHRoaV9jYXRzLmpzb24uZ3oKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvbHRoaV9jYXRzLmpzb24uZ3oKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9sdGhpX2NhdHMuanNvbi5negpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL21haW5fdGhyZWFkX2hhc191bmNsb3NlZF9zbGljZXMuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9tYWluX3RocmVhZF9oYXNfdW5jbG9zZWRfc2xpY2VzLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvbWFpbl90aHJlYWRfaGFzX3VuY2xvc2VkX3NsaWNlcy5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvbWFpbl90aHJlYWRfaGFzX3VuY2xvc2VkX3NsaWNlcy5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvbWVtb3J5X2R1bXBzLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvbWVtb3J5X2R1bXBzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM4OTRiYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9tZW1vcnlfZHVtcHMuanNvbgpAQCAtMCwwICsxLDYzIEBACit7InRyYWNlRXZlbnRzIjpbeyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NDcwNzYzOSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjNiOTI1MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI2MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODA0MDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ2MDAwIiwicHNzIjoiMTZlNDAwIiwic2hyIjoiYzcwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWU1MDAwIiwicHNzIjoiMWU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjODAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTQwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDQwMCIsInNociI6IjJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDQwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjExOWMwMCIsInNociI6IjQzZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2OTAwMCIsInNociI6IjFkMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI2NTkwMDAifX19LCJ0dHMiOjI0NjE1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoreyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NDgyMzYzOSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjRjNjRhMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI2MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiN2M4MDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ2MDAwIiwicHNzIjoiMTZlODAwIiwic2hyIjoiYzcwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmVmMDAwIiwicHNzIjoiMmVmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjAwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI5YzgwMCIsInNociI6IjJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZjgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjEwZTgwMCIsInNociI6IjQzZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NjAwMCIsInNociI6IjFkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI3NjEwMDAifX19LCJ0dHMiOjM3OTAyLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZCJ9LAoreyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NDg5NDcwNiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjVkMTU0MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI3MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiN2JjMDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZGMwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ3MDAwIiwicHNzIjoiMTZmODAwIiwic2hyIjoiYzYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiM2Y5MDAwIiwicHNzIjoiM2Y5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI5OTgwMCIsInNociI6IjJjYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZjgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjEwYzAwMCIsInNociI6IjQzZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NWMwMCIsInNociI6IjFkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOWMwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMjg3MDAwMCJ9fX0sInR0cyI6NTYxMjgsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCit7InBpZCI6MTUyOTAsInRpZCI6MTUyOTIsInRzIjoxNTc2NjU1MDQxMTQzLCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiNmRjNWUwIn0sInNpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjgwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI3YmMwMCIsInNociI6IjIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkYzAwIiwic2hyIjoiNDQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiMWNjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNDZkMTQyMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA0NmQxODAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDFhMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxMzgwNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNhY2I2MzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYWNiNjMwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNhY2I2MzFmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwOTE0MDAwIiwic3oiOiIxZWMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBjMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBjMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzcwMDAiLCJwc3MiOiIzNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGUwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZTNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBmMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwMCIsInBzcyI6IjgwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwZjA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBmZmYwMDAiLCJzeiI6IjFmOTE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNWM2NmQwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE1YzY2ZDAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTZiNmU5ZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGE2ZmEwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwYTZmYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NmUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY2ZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU1MDAwIiwicHNzIjoiNTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY2ZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NmZmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY3MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjcwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjcxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQ3OGY1MTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTE0MDAwIiwicHNzIjoiMTE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNWVmMjAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDVlZjIyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNWVmMzAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDVlZjMyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMDAiLCJwc3MiOiI3MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2MwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2RmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDMwMDAiLCJwc3MiOiJkMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZGRkZTJmMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZkOTJkMWNmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmZkOTJkMWRmMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjMyOGM2NTU3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiZTAwMCIsInNociI6ImQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0NzAwMCIsInBzcyI6IjE2ZmMwMCIsInNociI6ImM2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjUwNjAwMCIsInBzcyI6IjUwNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM3ODI5ZjkwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiI0NDAwMCIsInBzcyI6IjQ0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5OWEyY2EwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQwNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxNF0iLCJwZiI6Niwic2EiOiI3Zjk5NWQwNGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkODRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDVdIiwicGYiOjYsInNhIjoiN2Y5OTVkODRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZTA0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZTA0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDBdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5NF0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTNdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkyXSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjU5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEzODAwIiwic2hyIjoiNjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOTk4MDAiLCJzaHIiOiIyY2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWY4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIxMGJjMDAiLCJzaHIiOiI0M2QwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjU4MDAiLCJzaHIiOiIxZDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI5OWMwMDAifX19LCJ0dHMiOjcxMDMxLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoreyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MTU3NjY1NTEzNDIxMywicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjdlNzY4MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI5MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiN2JjMDAiLCJzaHIiOiIyMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZGMwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDQ2ZDE0MjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNDZkMTgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTM4MDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2FjYjYzMDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYWNiNjMxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMDkxNDAwMCIsInN6IjoiMWVjMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwYzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBkMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBlMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGUzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMDAiLCJwc3MiOiI4MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGYwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZmZmMDAwIiwic3oiOiIxZjkxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTVjNjZkMDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNWM2NmQwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE2YjZlOWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBhNmZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGE2ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NTAwMCIsInBzcyI6IjU1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NmUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxY2M4NjZmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFjYzg2NzAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY3MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkNzhmNTEwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjExNDAwMCIsInBzcyI6IjExNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjIwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYyMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDVlZjMwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1ZWYzMjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI5ZmY4M2JmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjlmZjgzYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImQzMDAwIiwicHNzIjoiZDMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmRkZGUyZjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZDkyZDFjZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJmZDkyZDFkZjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIzMjhjNjU1NzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImVjMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDgwMDAiLCJwc3MiOiIxNzA0MDAiLCJzaHIiOiJjNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI2MTEwMDAiLCJwc3MiOiI2MTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiI3MDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNzgyOWY5MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDQwMDAiLCJwc3MiOiI0NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOTlhMmNhMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkMDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTRdIiwicGYiOjYsInNhIjoiN2Y5OTVkMDRhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDg0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDg0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDFdIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAwXSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5NV0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTRdIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkzXSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Ml0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMzgwMCIsInNociI6IjYzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6Ijk3MDAwIiwic2hyIjoiMmNhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTBhNDAwIiwic2hyIjoiNDNlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY1MDAwIiwic2hyIjoiMWQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyYWFiMDAwIn19fSwidHRzIjo5MDI2NCwiaWQiOiIweGFmNTkzYjRjODVlZmRjZjgifSwKK3sicGlkIjoxNTI5MCwidGlkIjoxNTI5MiwidHMiOjE1NzY2NTUyMzM0OTAsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI4ZjI3MjAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiYTAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjdiYzAwIiwic2hyIjoiMjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxY2MwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA0NmQxNDIwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDQ2ZDE4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNDZkMWEwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzEzODA3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2FjYjYzMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNhY2I2MzAxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2FjYjYzMWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjA5MTQwMDAiLCJzeiI6IjFlYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBiMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwYjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI0YzRmMGIwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBiMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBjMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwYzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjRjNGYwZDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBkMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNGM0ZjBlMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjRjNGYwZTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjRjNGYwZTA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBlM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0YzRmMGYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNGM0ZjBmMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAwIiwicHNzIjoiODAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNGM0ZjBmMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI0YzRmMGZmZjAwMCIsInN6IjoiMWY5MTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE1YzY2ZDAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTVjNjZkMDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNWM2NmQwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE1YzY2ZDAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNWM2NmQxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNmI2ZTllMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwYTZmYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBhNmZhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGE2ZmEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwYTZmYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGE2ZmJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjZlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NmUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTUwMDAiLCJwc3MiOiI1NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjZlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWNjODY2ZmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxY2M4NjcwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NzAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWNjODY3MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFjYzg2NzFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDc4ZjUxMDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMTQwMDAiLCJwc3MiOiIxMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1ZWYyMDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNWVmMjIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMDAiLCJwc3MiOiIyMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1ZWYzMDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNWVmMzIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwMCIsInBzcyI6IjcwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2EwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyOWZmODNiZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI5ZmY4M2MwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzYzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyOWZmODNjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjlmZjgzZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiJkMzAwMCIsInBzcyI6ImQzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkZGRlMmYwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmQ5MmQxY2YwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZmQ5MmQxZGYwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMzI4YzY1NTc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE3MDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ4MDAwIiwicHNzIjoiMTcwODAwIiwic2hyIjoiYzUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzFjMDAwIiwicHNzIjoiNzFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzc4MjlmOTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiNDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzk5YTJjYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDA0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE0XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDA0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTVdIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzAxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTVdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk0XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5M10iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTJdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI5NjQwMCIsInNociI6IjJjYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZjgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjEwOWMwMCIsInNociI6IjQzZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6Ijk0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NTAwMCIsInNociI6IjFkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOWMwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMmJhZDAwMCJ9fX0sInR0cyI6MTA5ODQzLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYSJ9LHsicGlkIjoxNTI5MCwidGlkIjowLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0MH19LAoreyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkyLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0sCit7InBpZCI6MTUyOTAsInRpZCI6MTUyOTIsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3NfbmFtZSIsImFyZ3MiOnsibmFtZSI6IlJlbmRlcmVyIn19LAoreyJwaWQiOjE1MjkwLCJ0aWQiOjE1MjkwLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTF9fSwKK3sicGlkIjoxNTI5MCwidGlkIjoxNTI5MiwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDaHJvbWVfQ2hpbGRJT1RocmVhZCJ9fSx7InBpZCI6MTUyODUsInRpZCI6MTUyODYsInRzIjoxNTc2NjU0NzA3NjI1LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiM2NhMDkwIn0sInNpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjUwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI3ZGMwMCIsInNociI6IjIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJlMDAwIiwic2hyIjoiNDQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiMWNjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiZTk5NDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYwMDAwIiwicHNzIjoiNjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZiZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2JmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTFlZTIzYzAwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYzIwMDAwIiwic3oiOiIzYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMTI2Y2M1NmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJkNjcwMDAiLCJzeiI6IjE5OTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2ViZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYmYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzAwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMjA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYyMDAwIiwicHNzIjoiNjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMzA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjM2ZmMDAwIiwic3oiOiIxZjk2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1ODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1OTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwZmY1ZDAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMjk5MTA1OGQwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMjk5MTA1OWQwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyYWNiMmEwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2M2Y4NGM0MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM1ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjM5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJjNmQ2MmMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiZDAwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MzAwMCIsInBzcyI6IjE2YjQwMCIsInNociI6ImM3MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjFjYzAwMCIsInBzcyI6IjFjYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDcwMDAiLCJwc3MiOiI0NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNjYzYTBiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzN2I5MTNiMDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MzAwMCIsInBzcyI6IjYzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE1ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1ZDAwMCIsInBzcyI6IjVkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc5ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDg0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzExXSIsInBmIjo2LCJzYSI6IjdmOTk1ZDg0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOV0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTldIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk4XSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5MV0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODldIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg4XSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWM4MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJjNDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMzgwMCIsInNociI6IjYyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImE5ODAwIiwic2hyIjoiMmI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxYzAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjE0YWMwMCIsInNociI6IjQ3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YTAwMCIsInNociI6IjFkNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI0ZDcwMDAifX19LCJ0dHMiOjI4OTg4LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoreyJwaWQiOjE1Mjg1LCJ0aWQiOjE1Mjg2LCJ0cyI6MTU3NjY1NDgyMzY1OSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjRkNjk5MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI2MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiN2EwMDAiLCJzaHIiOiIyMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmU5OTQwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZWUyM2MwMDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2MyMDAwMCIsInN6IjoiM2MwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjEyNmNjNTZmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZDY3MDAwIiwic3oiOiIxOTkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYmYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWJmMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzAwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMwMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMxMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzIwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MjAwMCIsInBzcyI6IjYyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzMwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzNmZjAwMCIsInN6IjoiMWY5NjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTgwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU4MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTkwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU5MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMGZmNWQwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjI5OTEwNThkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjI5OTEwNTlkMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMmFjYjJhMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjNmODRjNDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZkNjJjMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDMwMDAiLCJwc3MiOiIxNmI4MDAiLCJzaHIiOiJjNzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiIyZDYwMDAiLCJwc3MiOiIyZDYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQ3MDAwIiwicHNzIjoiNDcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzY2M2EwYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzdiOTEzYjAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjMwMDAiLCJwc3MiOiI2MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWQwMDAiLCJwc3MiOiI1ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3OWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDldIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTFdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODZdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MjAwMCIsInNociI6IjJiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjhjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxM2UwMDAiLCJzaHIiOiI0N2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjcwMDAiLCJzaHIiOiIxZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyNWRmMDAwIn19fSwidHRzIjo0MjMxOSwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmQifSwKK3sicGlkIjoxNTI4NSwidGlkIjoxNTI4NiwidHMiOjE1NzY2NTQ4OTQ2OTcsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI1ZTEwZTAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiNzAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijc5ODAwIiwic2hyIjoiMjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxY2MwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJlOTk0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMDAiLCJwc3MiOiI2MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmJmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWVlMjNjMDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNjMjAwMDAiLCJzeiI6IjNjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIxMjZjYzU2ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmQ2NzAwMCIsInN6IjoiMTk5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWJmMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2ViZjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMwMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMxMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMyMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzcwMDAiLCJwc3MiOiIzNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMyMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMzMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjIwMDAiLCJwc3MiOiI2MjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMzMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzZmYwMDAiLCJzeiI6IjFmOTY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU4MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1ODIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU5MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1OTIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjBmZjVkMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyOTkxMDU4ZDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIyOTkxMDU5ZDAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjJhY2IyYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjYzZjg0YzQxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzVmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiMzkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZDYyYzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ0MDAwIiwicHNzIjoiMTZjODAwIiwic2hyIjoiYzYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiM2UxMDAwIiwicHNzIjoiM2UxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiNTAwMDAwIn0seyJicyI6eyJwcnYiOiI0NzAwMCIsInBzcyI6IjQ3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM2NjNhMGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM3YjkxM2IwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiNjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjVkMDAwIiwicHNzIjoiNWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkODRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTFdIiwicGYiOjYsInNhIjoiN2Y5OTVkODRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZTA0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZTA0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OV0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOThdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODhdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg2XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjU5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEzODAwIiwic2hyIjoiNjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOTAwMDAiLCJzaHIiOiIyYjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjEwMDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM1MDAwIiwic2hyIjoiNDdmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY2ODAwIiwic2hyIjoiMWQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyNmVmMDAwIn19fSwidHRzIjo2MDU0NCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmMifSwKK3sicGlkIjoxNTI4NSwidGlkIjoxNTI4NiwidHMiOjE1NzY2NTUwNDY4OTAsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI2ZWI4MzAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiODAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijc5NDAwIiwic2hyIjoiMjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxY2MwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJlOTk0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMDAiLCJwc3MiOiI2MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmJmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWVlMjNjMDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNjMjAwMDAiLCJzeiI6IjNjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIxMjZjYzU2ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmQ2NzAwMCIsInN6IjoiMTk5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWJmMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2ViZjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMwMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMxMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMyMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzcwMDAiLCJwc3MiOiIzNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMyMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxN2ZjZWMzMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjIwMDAiLCJwc3MiOiI2MjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMzMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzZmYwMDAiLCJzeiI6IjFmOTY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU4MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1ODIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMGYwMDAiLCJwc3MiOiIxMGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjA1MDU5MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIwNTA1OTIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjBmZjVkMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyOTkxMDU4ZDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIyOTkxMDU5ZDAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjJhY2IyYTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjYzZjg0YzQxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzVmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiMzkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZDYyYzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDQwMDAiLCJwc3MiOiIxNmNjMDAiLCJzaHIiOiJjNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI0ZWQwMDAiLCJwc3MiOiI0ZWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiI2MDAwMDAifSx7ImJzIjp7InBydiI6IjQ3MDAwIiwicHNzIjoiNDcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzY2M2EwYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzdiOTEzYjAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjMwMDAiLCJwc3MiOiI2MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWQwMDAiLCJwc3MiOiI1ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZWMzYjE2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3OWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ4NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWQ4NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMDRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDldIiwicGYiOjYsInNhIjoiN2Y5OTVlMDRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OF0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTFdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODZdIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjAwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTM4MDAiLCJzaHIiOiI2MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwMCIsInNociI6IjJiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjhjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQ0MDAiLCJzaHIiOiI0N2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjY4MDAiLCJzaHIiOiIxZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI4OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjI3ZmUwMDAifX19LCJ0dHMiOjc3MjE3LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoreyJwaWQiOjE1Mjg1LCJ0aWQiOjE1Mjg2LCJ0cyI6MTU3NjY1NTEzNDIwNCwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjdmNWY4MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI5MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNzk0MDAiLCJzaHIiOiIyMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZGMwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmU5OTQwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmEwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMWVlMjNiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZWUyM2MwMDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2MyMDAwMCIsInN6IjoiM2MwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjEyNmNjNTZmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZDY3MDAwIiwic3oiOiIxOTkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYmYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWJmMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYmYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzAwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMwMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzAwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxN2ZjZWMxMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzIwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzIzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3ZmNlYzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MjAwMCIsInBzcyI6IjYyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzMwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3ZmNlYzNmZjAwMCIsInN6IjoiMWY5NjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFiNjgzMWUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxYjY4MzFmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTgwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU4MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwZjAwMCIsInBzcyI6IjEwZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMDUwNTkwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjA1MDU5MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMGZmNWQwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjI5OTEwNThkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjI5OTEwNTlkMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMmFjYjJhMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjYzZjg0YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjNmODRjNDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZkNjJjMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiZWMwMCIsInNociI6ImMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0NTAwMCIsInBzcyI6IjE2ZDQwMCIsInNociI6ImM1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjVmNzAwMCIsInBzcyI6IjVmNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjcwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDcwMDAiLCJwc3MiOiI0NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNjYzYTBiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzN2I5MTNiMDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MzAwMCIsInBzcyI6IjYzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTQwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE1ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2VjM2IxNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1ZDAwMCIsInBzcyI6IjVkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNlYzNiMTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmOTA4NzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjkwODc5ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDg0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzExXSIsInBmIjo2LCJzYSI6IjdmOTk1ZDg0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOV0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTldIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk4XSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5MV0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODldIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg4XSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMzgwMCIsInNociI6IjYzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjhkYzAwIiwic2hyIjoiMmI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxMDAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMzgwMCIsInNociI6IjQ3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NWMwMCIsInNociI6IjFkNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOWMwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6Ijg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMjkwYjAwMCJ9fX0sInR0cyI6OTY0NTcsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCit7InBpZCI6MTUyODUsInRpZCI6MTUyODYsInRzIjoxNTc2NjU1MjMzNTIyLCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiOTAwNmQwIn0sInNpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6ImEwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI3OTQwMCIsInNociI6IjIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkYzAwIiwic2hyIjoiNDQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiMWNjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiZTk5NDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImJiNzlmYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJiYjc5ZmEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYwMDAwIiwicHNzIjoiNjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZiZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImJiNzlmYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJiYjc5ZmMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiYmI3OWZjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiYmI3OWZkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjExZWUyM2JmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTFlZTIzYzAwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTFlZTIzYzIwMDAwIiwic3oiOiIzYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMTI2Y2M1NmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJkNjcwMDAiLCJzeiI6IjE5OTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2ViZjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWJmMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYmYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2ViZjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMwMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzAwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMxMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjE3ZmNlYzEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMyMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMjA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjMjNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTdmY2VjMzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxN2ZjZWMzMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYyMDAwIiwicHNzIjoiNjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMTdmY2VjMzA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTdmY2VjM2ZmMDAwIiwic3oiOiIxZjk2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWI2ODMxZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxYjY4MzFlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWI2ODMxZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFiNjgzMWZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1ODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTBmMDAwIiwicHNzIjoiMTBmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwNTA1OTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMDUwNTkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIwZmY1ZDAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMjk5MTA1OGQwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMjk5MTA1OWQwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIyYWNiMmEwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjNmODRjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2M2Y4NGM0MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2M2Y4NGM1ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjM5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJjNmQ2MmMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE3MDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQ1MDAwIiwicHNzIjoiMTZkODAwIiwic2hyIjoiYzUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAzMDAwIiwicHNzIjoiNzAzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiI0NzAwMCIsInBzcyI6IjQ3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM2NjNhMGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM3YjkxM2IwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiNjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZWMzYjE2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjVkMDAwIiwicHNzIjoiNWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2VjM2IxNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNlYzNiMTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Y5MDg3ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjkwODc4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Y5MDg3ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmOTA4NzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkODRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTFdIiwicGYiOjYsInNhIjoiN2Y5OTVkODRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZTA0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA5XSIsInBmIjo2LCJzYSI6IjdmOTk1ZTA0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5OV0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOThdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjkxXSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4OV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODhdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg2XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImI4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjU5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEzODAwIiwic2hyIjoiNjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOGRjMDAiLCJzaHIiOiIyYjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjBjMDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMyMDAwIiwic2hyIjoiNDdmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTQwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY1ODAwIiwic2hyIjoiMWQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5YzAwIiwic2hyIjoiM2MwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiODkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIyYTNlMDAwIn19fSwidHRzIjoxMTYwOTYsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJhIn0seyJwaWQiOjE1Mjg1LCJ0aWQiOjAsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6Im51bV9jcHVzIiwiYXJncyI6eyJudW1iZXIiOjQwfX0sCit7InBpZCI6MTUyODUsInRpZCI6MTUyODYsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3Nfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTV9fSwKK3sicGlkIjoxNTI4NSwidGlkIjoxNTI4NiwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoicHJvY2Vzc19uYW1lIiwiYXJncyI6eyJuYW1lIjoiUmVuZGVyZXIifX0sCit7InBpZCI6MTUyODUsInRpZCI6MTUyODUsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotMX19LAoreyJwaWQiOjE1Mjg1LCJ0aWQiOjE1Mjg2LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNocm9tZV9DaGlsZElPVGhyZWFkIn19LAoreyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MTU3NjY1NDcwNjQzNiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjMyNjE1MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiI0MDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNTkwMDAiLCJzaHIiOiIxYWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE5YzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2OTNmZTUwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYThkMDAwIiwic3oiOiIzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTA4NjFhYzAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMDg2MWFlMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTEwMDAiLCJwc3MiOiJhMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWZmNmRiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTJjYmM4YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNGMwMDAiLCJwc3MiOiI0YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4N2ZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY4MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmODEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6ImYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwMCIsInBzcyI6IjE2YTQwMCIsInNociI6ImNiMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6ImZlMDAwIiwicHNzIjoiZmUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjRiMDAwIiwicHNzIjoiNGIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzI2YjAwMCIsInN6IjoiMTk1MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmMwMDAiLCJwc3MiOiIyYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc3MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3M2UwMDAiLCJzeiI6IjFmYjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOWU2YzBlOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGU5MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODQwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4wQUJMc3kgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE3NDAwIiwic2hyIjoiNmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjA0MDAiLCJzaHIiOiJhMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI4MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkNDAwMCIsInNociI6IjM3MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1OTAwMCIsInNociI6IjE5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjljMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU0MDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIxOWIxMDAwIn19fSwidHRzIjoxNjkyMiwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmUifSwKK3sicGlkIjoxNTMyOCwidGlkIjoxNTMyOSwidHMiOjE1NzY2NTQ4MjcwNTUsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI0N2QyNzAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiNjAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4YzAwIiwic2hyIjoiMWUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxOWMwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2OTNmZTUwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYThkMDAwIiwic3oiOiIzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTA4NjFhYzAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMDg2MWFlMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZmY2ZGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyY2JjOGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4ZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzYzIzYjYwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI2OTAwMCIsInBzcyI6IjY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxYjE1NjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI1ZDExMDYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwMCIsInBzcyI6IjcwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg3ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI2YTAwMCIsInBzcyI6IjZhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg5ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6ImY3MDAwIiwicHNzIjoiZjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY4MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmODEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiZDAwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MjAwMCIsInBzcyI6IjE2YWMwMCIsInNociI6ImM3MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjJhMjAwMCIsInBzcyI6IjJhMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNGMwMDAiLCJwc3MiOiI0YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3MjZiMDAwIiwic3oiOiIxOTUwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzcwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzczZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzhmZjAwMCIsInN6IjoiMWY5NmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzllNmMwZTkzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjE2MDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2NjZTU3MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZ3lXd0I3IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjNjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3ZjQwMCIsInNociI6IjI3MjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTgwMCIsInNociI6IjhkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjExYTQwMCIsInNociI6IjQyZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2NWMwMCIsInNociI6IjFkMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImE4MDAiLCJzaHIiOiIzZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQ4MDAiLCJzaHIiOiI4NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjIxNTAwMDAifX19LCJ0dHMiOjM1NDczLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZCJ9LAoreyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MTU3NjY1NDg5NTM2NywicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjU5YzBkMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiJhMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiNzg0MDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjQyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjFhNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY5M2ZlNTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhOGQwMDAiLCJzeiI6IjMzMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMDg2MWFjMDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYWUwMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTFmZjZkYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTJjYmM4YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyY2JjOGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhkZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTNjMjNiNjAxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTNjMjNiNjFmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMWIxNTYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNWQxMTA2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4MTAwMCIsInBzcyI6IjgxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg3ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1YTAwMCIsInBzcyI6IjVhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzODgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg5ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzOGEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4YTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0NzAwMCIsInBzcyI6IjQ3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2NDkzOGEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5MzhiZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwNTAwMCIsInBzcyI6IjEwNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYjI1ZjgwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmIyNWY4MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwOTAwMCIsInBzcyI6IjEwOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYjI1ZjkwMDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmIyNWY5MjAwMDAwIiwic3oiOiJlMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjJkZWMzZGQzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmIyYmFiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxOGIyNWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiZTgwMCIsInNociI6ImMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0YzAwMCIsInBzcyI6IjE3MjgwMCIsInNociI6ImMwMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjNiZjAwMCIsInBzcyI6IjNiZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiN2MwMDAiLCJwc3MiOiI3YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1N2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTcyNmIwMDAiLCJzeiI6IjE5NTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzUwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM3MDAwIiwicHNzIjoiMzcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NzA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc0MDAwIiwicHNzIjoiNzQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3OGZmMDAwIiwic3oiOiIxZjk2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzllNmMwZTkyMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzllNmMwZWIyMDAwIiwic3oiOiIxZTAwMDAifSx7ImJzIjp7InBydiI6IjRmMDAwIiwicHNzIjoiNGYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2NjZTU3MDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZ3lXd0I3IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjNjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhODAwIiwic2hyIjoiMmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdhMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI4YjQwMCIsInNociI6IjI5ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFkMDAwIiwicHNzIjoiNDI4MDAiLCJzaHIiOiI5NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiMTgzMDAwIiwic2hyIjoiNGI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjY4ODAwIiwic2hyIjoiMWQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZGMwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmNDAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMjg2NjAwMCJ9fX0sInR0cyI6NTQ4NTQsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCit7InBpZCI6MTUzMjgsInRpZCI6MTUzMjksInRzIjoxNTc2NjU1MDQ2MjY4LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMTI2MjBmMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxNDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6Ijc5MDAwIiwic2hyIjoiMWY2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImRjMDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiIxYWMwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2OTNmZTUwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwODYxYThkMDAwIiwic3oiOiIzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTA4NjFhYzAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMDg2MWFlMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjExZmY2ZGIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMmNiYzhjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyY2JjOGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4ZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzYzIzYjYwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjFiMTU2MzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODEwMDAiLCJwc3MiOiI4MTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4N2ZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWEwMDAiLCJwc3MiOiI1YTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4OWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4YmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMGUwMDAiLCJwc3MiOiIxMGUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY4MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmODIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDkwMDAiLCJwc3MiOiIxMDkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmIyNWY5MDAwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJiMjVmOTIwMDAwMCIsInN6IjoiZTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiIyZGVjM2RkMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY4MDAwIiwicHNzIjoiNjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZiMmJhYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMThiMjVlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNGUwMDAiLCJwc3MiOiIxNzQwMDAiLCJzaHIiOiJiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiIxMGZlMDAwIiwicHNzIjoiMTBmZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6IjEzMDgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU0MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjdmMDAwIiwicHNzIjoiN2YwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTVmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjY0MDAwIiwicHNzIjoiNjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNhNGY1NjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3MjZiMDAwIiwic3oiOiIxOTUwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzcwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzczZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NjAwMCIsInBzcyI6Ijc2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzhmZjAwMCIsInN6IjoiMWY5NmMwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGViMjAwMCIsInN6IjoiMWUwMDAwIn0seyJicyI6eyJwcnYiOiI1MzAwMCIsInBzcyI6IjUzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjY2U1NzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWUwY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzNl0iLCJwZiI6Niwic2EiOiI3Zjk5NWUwY2QwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlOGNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzVdIiwicGYiOjYsInNhIjoiN2Y5OTVlOGNlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMmNaY2RvIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjBjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLll0RXEzTyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYxY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5neVd3QjcgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmM2NlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMzXSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzFdIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMwXSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMyOV0iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjhjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImE4MDAiLCJzaHIiOiIyZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TTEFIVGYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMEFCTHN5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZGMwMCIsInNociI6IjdmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjhjNDAwIiwic2hyIjoiMjk4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWQwMDAiLCJwc3MiOiI0MjgwMCIsInNociI6Ijk1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiIxOGI4MDAiLCJzaHIiOiI0YmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNmE0MDAiLCJzaHIiOiIxZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWY0MDAiLCJzaHIiOiI3YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiI4NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiIzNWRjMDAwIn19fSwidHRzIjo3NDI5MCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmIifSwKK3sicGlkIjoxNTMyOCwidGlkIjoxNTMyOSwidHMiOjE1NzY2NTUxMzQ5NTUsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiIxNzVmN2QwIn0sInNpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjFhMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiNzk0MDAiLCJzaHIiOiIxZjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTQwMCIsInNociI6IjQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY5M2ZlNTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhOGQwMDAiLCJzeiI6IjMzMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwODYxYWMwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhZTAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWZmNmRiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTJjYmM4YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTNjMjNiNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxM2MyM2I2MDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxYjE1NjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI1ZDExMDYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjVkMTEwNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI1ZDExMDYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6Ijg0MDAwIiwicHNzIjoiODQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4NjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODdmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5Mzg4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU4MDAwIiwicHNzIjoiNTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4ODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODlmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4YTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNjQ5MzhhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImQ3MDAwIiwicHNzIjoiZDcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4YTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNmEwMDAiLCJwc3MiOiI2YTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYTA5YjJkMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTZmMDAwIiwicHNzIjoiMTZmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTA5MDAwIiwicHNzIjoiMTA5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmOTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmNjAwMCIsInBzcyI6ImY2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmYjJiYWIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzE4YjI1ZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEwYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTRmMDAwIiwicHNzIjoiMTc1MDAwIiwic2hyIjoiYmUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTVhZTAwMCIsInBzcyI6IjE1YWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiIxODA4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU0MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3YjAwMCIsInBzcyI6IjdiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTQwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU1ZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0ZTAwMCIsInBzcyI6IjRlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzYTRmNTYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2E0ZjU3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzI2YjAwMCIsInN6IjoiMTk1MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzgwMDAiLCJwc3MiOiIzODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc3MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3M2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc4MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc4MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc4ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM4ZTM1NzkwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3OTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzkwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzlmZjAwMCIsInN6IjoiMWY4NmMwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGViMjAwMCIsInN6IjoiMWUwMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwMCIsInBzcyI6IjkwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjY2U1NzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk1Y2NjYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0Y2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0Y2IwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMDAiLCJwc3MiOiJmMDAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnNDbnRDUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWRjY2IwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMGNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzZdIiwicGYiOjYsInNhIjoiN2Y5OTVlMGNkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZ3lXd0I3IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZjNjZTAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzM10iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzJdIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMxXSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjldIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI5NmMwMCIsInNociI6IjJjNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFkMDAwIiwicHNzIjoiNDI4MDAiLCJzaHIiOiI5NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiMTliYzAwIiwic2hyIjoiNGQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjZjMDAwIiwic2hyIjoiMWU0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZGMwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmNDAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiM2YxZDAwMCJ9fX0sInR0cyI6OTQ4NzYsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCit7InBpZCI6MTUzMjgsInRpZCI6MTUzMjksInRzIjoxNTc2NjU1MjMxNzE0LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiOTJmNjUwIn0sInNpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjFiMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiNzk0MDAiLCJzaHIiOiIxZjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZTQwMCIsInNociI6IjQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY5M2ZlNTAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhOGQwMDAiLCJzeiI6IjMzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwODYxYWMwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTA4NjFhZTAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMWZmNmRiMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyY2JjOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMmNiYzhjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTJjYmM4ZGZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxM2MyM2I2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzYzIzYjYwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzYzIzYjYxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjFiMTU2MzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNWQxMTA2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjE2MDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjVkMTEwNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI1ZDExMDdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4NjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiN2MwMDAiLCJwc3MiOiI3YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4N2ZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmUwMDAiLCJwc3MiOiIyZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5Mzg4MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4OWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODgwMDAiLCJwc3MiOiI4ODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjY0OTM4YmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjQ5MzhjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6ImUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY0OTM4YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2NDkzOGRmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiZjIwMDAiLCJwc3MiOiJmMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYTA5YjJkMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmODAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjgyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTNmMDAwIiwicHNzIjoiMTNmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJiMjVmOTAwMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYjI1ZjkyMDAwMDAiLCJzeiI6ImUwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMmRlYzNkZDM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmNjAwMCIsInBzcyI6ImY2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmYjJiYWIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIyZjAwMCIsInBzcyI6IjJmMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMwMzdlMWMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzE4YjI1ZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIxNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEwYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAwIiwicHNzIjoiMTc1YzAwIiwic2hyIjoiYmQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiN2I5MDAwIiwicHNzIjoiN2I5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiMTkxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTQwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTMwMDAiLCJwc3MiOiI5MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU0MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1NWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzYTRmNTYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTQwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2E0ZjU2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNhNGY1N2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTcyNmIwMDAiLCJzeiI6IjE5NTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc0MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc1MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzUwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc2MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjM4ZTM1NzYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3NzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc3MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM4MDAwIiwicHNzIjoiMzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3NzA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3NzNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzhlMzU3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMzhlMzU3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzhlMzU3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzOGUzNTc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM4ZTM1NzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDcwMDAiLCJwc3MiOiJkNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIzOGUzNTc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzOGUzNTc5ZmYwMDAiLCJzeiI6IjFmODZjMDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjM5ZTZjMGU5MjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjM5ZTZjMGVkMjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiJiNjAwMCIsInBzcyI6ImI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjY2U1NzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk1Y2NjYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0Y2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0Y2IwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMDAiLCJwc3MiOiJmMDgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnNDbnRDUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWRjY2IwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlMGNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzZdIiwicGYiOjYsInNhIjoiN2Y5OTVlMGNkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZThjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM1XSIsInBmIjo2LCJzYSI6IjdmOTk1ZThjZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYwY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVmMWNlMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbF9Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1ZjM0NDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWYzOGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmd5V3dCNyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWYzY2UwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzNdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1MDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzMyXSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMzMV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzBdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzI5XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOGMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYmMwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYTAwMCIsInNociI6IjJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNmMwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI0MTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWRjMDAiLCJzaHIiOiI3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI5YzQwMCIsInNociI6IjJkMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIxMDAwIiwicHNzIjoiNGVjMDAiLCJzaHIiOiJhNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjZmMDAwIiwicHNzIjoiMWY5MDAwIiwic2hyIjoiNTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjZmODAwIiwic2hyIjoiMWViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZGMwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFmNDAwIiwic2hyIjoiN2EwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTJjMDAiLCJzaHIiOiI0YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiIzZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1NDAwIiwic2hyIjoiODYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiJmMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiMzRhZjAwMCJ9fX0sInR0cyI6MTE0MTk1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYSJ9LHsicGlkIjoxNTMyOCwidGlkIjowLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0MH19LAoreyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0sCit7InBpZCI6MTUzMjgsInRpZCI6MTUzMjksInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3NfbmFtZSIsImFyZ3MiOnsibmFtZSI6IlJlbmRlcmVyIn19LAoreyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI5LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX2xhYmVscyIsImFyZ3MiOnsibGFiZWxzIjoiR29vZ2xlIn19LAoreyJwaWQiOjE1MzI4LCJ0aWQiOjE1MzI4LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTF9fSwKK3sicGlkIjoxNTMyOCwidGlkIjoxNTMyOCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDclJlbmRlcmVyTWFpbiJ9fSwKK3sicGlkIjoxNTMyOCwidGlkIjoxNTMyOSwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDaHJvbWVfQ2hpbGRJT1RocmVhZCJ9fSx7InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU0NzA4OTMyLCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMmYxMDEyMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzMDA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVlNDAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTI3ZTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDE1OWEwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYxZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjNlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY1ZTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmE4NzAwMCIsInBzcyI6IjJhODcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0Zjk1MDAwIiwic3oiOiIzMDRiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2MzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2Q3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNkVSQk4gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkphcVJqdCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmMzZWJkMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5INDhSMTggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZ6T3FLTyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFBIMHN1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDMzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KUjRDYmEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJPa2dVUCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFpRVkN2IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kajNYbnYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhING5INSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQjVQTzBGIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yZHlpa2cgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmxBMEplUyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZmFOQ1h4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDU3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5IanJ3R2QgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkZSd3RwVCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUmlOcjh5IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDYzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45b2t0UmUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlZjSXZBVSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udzZnTUJCIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43MzBwNm0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFBjZHRzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDg3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4zNE9iMlYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0OGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzQ4ZmQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZJT3lJMyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzRhZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiM2QwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI0NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmE2MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YzA2MDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzUwMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzUyMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTQwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzU2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjNTYwNzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzVlMDcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS50b1NlVUsgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXg2MUQ4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjEwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZENna293IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjIwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjd2clNnZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYzMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY0MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU5MDAwIiwic2hyIjoiYjIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY1MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2NjA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTBdIiwicGYiOjYsInNhIjoiN2YyZmM2NjA4MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNmUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA4XSIsInBmIjo2LCJzYSI6IjdmMmZjNmUwOTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzc2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwN10iLCJwZiI6Niwic2EiOiI3ZjJmYzc2MGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjN2UwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4MjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzg2MGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMmEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE2YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YThhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhY2EwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiJjNDAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFlYTAwMCIsInN6IjoiYzQwMDAifSx7ImJzIjp7InBydiI6ImEyZjAwMCIsInBzcyI6ImFmNDgwMCIsInNociI6IjI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmYzhiYWUwMDAiLCJzeiI6IjFiNjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2E3MTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTBhMDAwIiwicHNzIjoiOTBhNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2E5MTUwMDAiLCJzeiI6ImE4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2IzYTAwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiM2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjNjMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo2LCJzYSI6IjdmMmZjYjViZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDUwMDAiLCJwc3MiOiI2MTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2I1YzAwMDAiLCJzeiI6ImRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjY5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNiODljMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiOGRjMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmNiOGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDZdIiwicGYiOjYsInNhIjoiN2YyZmNiOGY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzBmNDAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMTdmMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3ZjJmY2MxZTUwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2YyZmNjYmEyMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkYjk2MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2RiYTYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2YyZmNkYmFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2YyZmNkZGE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkZGFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2YyZmNkZGFjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2YyZmNkZGFlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3ZjJmY2RmYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3ZjJmY2RmYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2YyZmNkZmIwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZGZiNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZTFiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNlMWI4MDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNlMWYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTNmMjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNlM2Y4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNlM2ZhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZTQwYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNlNjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNlNjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2YyZmNlNjBmMDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3ZjJmY2U2OGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3ZjJmY2U4OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2YyZmNlODhjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZTg4ZjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2U4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2YyZmNlYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VhOWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmMmZjZWE5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VjOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlYzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWM5ZjAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2YyZmNlY2NiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlZWNhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWVjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlZWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmMmZjZWVjZTAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2VmOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmMmZjZjE4YTAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmMmZjZjE5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjE5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjE5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmMzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmMzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmM2EwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjNhMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y1YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y1YTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y1YTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjdhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y3YTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZjdiMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y5YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjliMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZjZjliMTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmNmOWM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmNmYmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3ZjJmY2ZiYzcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3ZjJmY2ZiY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3ZjJmY2ZiY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZjZmJjZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmY2ZiZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZjZmRmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZjZmRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2ZkZjUwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZmUwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMDAwZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAwMTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDAxYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDAyMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMjFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAyMWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwNDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA0MWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmMmZkMDQxZTAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2YyZmQwNGJmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2YyZmQwNmJmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwNmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2YyZmQwNmM4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDZlZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2YyZmQwOGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2YyZmQwOGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDA4ZWUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDA5MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwYjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkMGIwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDBiMmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmMmZkMGQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZDJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwZDJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwZDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBmMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjJmZDBmMzIwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmMmZkMGY0YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmMmZkMTE0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjJmZDExNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjJmZDExNGIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2YyZmQxMTVhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2YyZmQxMzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmMmZkMTM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmMmZkMTM1YzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjJmZDEzNjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjJmZDE1NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2YyZmQxNTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2YyZmQxNTY5MDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmMmZkMTYxZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2YyZmQxODFmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2YyZmQxODI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2YyZmQxODI3MDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDE4NmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2YyZmQxYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDFhNmQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMWE4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMWM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2YyZmQxYzhkMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2YyZmQxY2NhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmMmZkMWVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2YyZmQxZWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWVjYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFlZDIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDIwZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQyMGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmMmZkMjBkNDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3ZjJmZDIwZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmMmZkMjJmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmMmZkMjJmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyMmY1MDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDIzYTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDI1YTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyNWE1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiNWYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjVhODAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjlkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMmJkNjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQyYmU0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQyYmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQyYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDJiZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDJiZWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMmRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3ZjJmZDJkZjAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2YyZmQyZTBmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3ZjJmZDMwMGYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3ZjJmZDMwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2YyZmQzMDEyMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmMmZkMzAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzMjFkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzMjIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzMjIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzMjIyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzMjMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM0MzMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzYzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQzNjM5MDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM3MjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM5MjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQzOTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOTJhMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzOTg3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDM5OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjVhMDAwIiwicHNzIjoiNWQ4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5OGMwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2EwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNhMDYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjJmZDNhMGIwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2YyZmQzYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjJmZDNjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzVlMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2NhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzY2E3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzY2FmMDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNjZjkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDNlZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQzZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNlZmQwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNmMDgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkNDEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkNDEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDEwYTAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDEzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNDAwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTYxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTdhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOGQwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE5NjAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjFmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjJlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIzODAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDI0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyNGIwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJiNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyYmIwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTAwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJkMTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyZTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZWQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjU4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwODAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmMmZkNDMyYTAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmMmZkNDM1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjJmZDQ1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmMmZkNDU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0NTU5MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQ1NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0NzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ3NWYwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDQ3YjIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0OWIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDQ5YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDliNDAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmMmZkNGFiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGNiOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNGNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0Y2MwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRjYzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmMmZkNGVjYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2YyZmQ0ZWQzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmMmZkNTBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2YyZmQ1MGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkNTBkNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDUwZDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDUyZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ1MmQ5MDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDU0OTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNTY5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNTY5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkNTY5ZTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQ1NmI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQ1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZDQwMCIsInNociI6IjkyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2YyZmQ1OGI0MDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2YyZmQ1OTlhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmMmZkNWI5OTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2YyZmQ1YmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmMmZkNWJiOTAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2YyZmQ1YzU2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2YyZmQ1ZTU1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmMmZkNWU1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ1ZTVjMDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkNWZjODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDYxYzcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjFjYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjFjZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDYxZDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDYzZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmMmZkNjNkODAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmMmZkNjNmZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDY1ZmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2NjAyMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjYzYTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ODNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2ODNmMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY4NjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZhNjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmE2YzAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZhOTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmM5MDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2Yzk3MDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmRjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZmYzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmZjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmMmZkNmZkMTAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmMmZkNzAwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDcyMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmMmZkNzIwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3MjBlMDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDczMTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzUxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzUxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDc1MTQwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3NTJkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc3MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2YyZmQ3NzMyMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDc3OWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDc5OWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3OWE3MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkNzlhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2JhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdiYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2JhZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmMmZkN2JiZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdkYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2RiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZGJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdkYzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZmMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZmMzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdmYzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ4MWM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDgxYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkODFjNjAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmMmZkODJmNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkODRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg0ZjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODRmYjAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg2MDEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODgwNDAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg4NTMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkOGE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkOGE1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhhNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4YTU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdG1wL2dsOGYyS2hNIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM3YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzg0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Yzg1MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2E5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhYjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNTAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNiNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2MzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYzUwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ0NzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhkNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNWEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNzAwMCIsInNociI6ImFjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDY4MDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNTkwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGY2YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY2YzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Zjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3NjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZDgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmU2MDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTA4ZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTA5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwOWYwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwYjQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBkYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGRlMDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTEwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTBmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTE1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEyNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwMCIsInNociI6ImRjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEyNzAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIyODAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkyZWEwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDk4MDAiLCJzaHIiOiJlMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTMxMzAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIxZTAwMCIsInBzcyI6IjFlMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTRmMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzMwMDAiLCJzaHIiOiI5ZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTUxMDAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YTg2MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWJjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlhYzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWM2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhY2UwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhZmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWIwMjAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjRkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliNjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjY5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjczMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjgyMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YmRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YmU1MDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMwMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzI0MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDljM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzNjMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWNkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWNkMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5Y2Q2MDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMDEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMDUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQxYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ5MDAwIiwic2hyIjoiZTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMWYwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNzAwMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWVjOTAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiNjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDllZjEwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZjMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmY2EwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlYTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZmMDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTAwMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTAwNTAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTExMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMWEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTEyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEyYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExM2EwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzNzkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTM4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMzhjMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhM2E4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzYWIwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTQ5ODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE0OWYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTRhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzYwMDAiLCJwc3MiOiI5YWMwMCIsInNociI6IjYzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTRhODAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNWQwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTVkOTAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjFiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYxZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjI5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MmUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2M2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2M2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY0MDAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTY4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0ODAwIiwic2hyIjoiYTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2OGEwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTk5ZDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTlhZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhOWIxMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE3YjQwMCIsInNociI6IjQ5NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE5YzIwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM3NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjNzY4MDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYzkxMTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTFmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkyNDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NDcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTRhMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmRjOTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjE5YzAwMCIsInNociI6IjRkNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTZhMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZDI3MDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRkYzIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZGRkMTAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGRmYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUwOTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJmODAwIiwic2hyIjoiOTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUyYjAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMDJlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUwNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjY3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUwNDIwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUxYTQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMWFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMWFmMDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUyYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE5YzAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUyYzMwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU0MjEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjODAwIiwic2hyIjoiMTRkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTQzNTAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MDcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkyZDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MzkwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGU5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk3YTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5N2YwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5OWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk5ZDAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlY2ExMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImM0MDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVjY2UwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZDgyMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZDg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkODcwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkOTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYmEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRjNjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZDMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRmMjAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTUyMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNzMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTg5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzEwMDAiLCJzaHIiOiJkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZThkMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmFlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmI2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZmZkOTk1MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmZmQ5YmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiOGYwNzAwMCJ9fX0sInR0cyI6MzQwNDMsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJlIn0sCit7InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU0ODI4NDQ0LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMzE4Y2ZhMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzMzA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVlMDAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTE2ZDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDEyN2UwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxNTlhMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmMWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYzZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmNWUwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJjMTUwMDAiLCJwc3MiOiIyYzE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY5NTAwMCIsInN6IjoiMzM1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4yY1pjZG8gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzODNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWXRFcTNPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjMzkzZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2MzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2Q3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TTEFIVGYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMEFCTHN5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjM2UzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ2RVJCTiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSmFxUmp0IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2U3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzNlYmQwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQ3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDUzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDVmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wN2NORFEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlzMktYcSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uaW1uS2gxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDc3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucnlOZkJwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDgzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wUGNkdHMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTmxLWkxWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNDhmZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNGFmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGIzZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjQ0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYTYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJjNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRjMDYwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNTAwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTIwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1NDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNTYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmM1NjA3MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmYTAwMCIsInNociI6IjFmNDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWGhYOWRuIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNWUwNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYwMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MjA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjMwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDVmRTlUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjQwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWQ4MDAiLCJzaHIiOiJiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVEMzcTJBIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjUwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzY2MDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMF0iLCJwZiI6Niwic2EiOiI3ZjJmYzY2MDgwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2ZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDhdIiwicGYiOjYsInNhIjoiN2YyZmM2ZTA5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNzYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA3XSIsInBmIjo2LCJzYSI6IjdmMmZjNzYwYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM3ZTBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzgyMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODYwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEyYTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTZhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhOGEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFjYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNzAwMCIsInNociI6ImM0MDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWVhMDAwIiwic3oiOiJjNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTJmMDAwIiwicHNzIjoiYWY0ODAwIiwic2hyIjoiMjU5MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjOGJhZTAwMCIsInN6IjoiMWI2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYTcxNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI5MGEwMDAiLCJwc3MiOiI5MGE0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYTkxNTAwMCIsInN6IjoiYThiMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjE5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjNhMDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2IzYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiM2MwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjYsInNhIjoiN2YyZmNiNWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0NTAwMCIsInBzcyI6IjYxODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjVjMDAwMCIsInN6IjoiZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiNjlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2I4OWMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2I4ZGMwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmY2I4ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNl0iLCJwZiI6Niwic2EiOiI3ZjJmY2I4ZjQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMGY0MDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MxN2YwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmMmZjYzFlNTAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjJmY2NiYTIwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RiOTYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZGJhNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2RiYWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2RkYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2YyZmNkZGFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjJmY2RkYWMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjJmY2RkYWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmMmZjZGZhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmMmZjZGZhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2RmYjAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2YyZmNkZmI2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlMWI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UxYjgwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2UxZjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNlM2YyMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2UzZjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UzZmEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNlNDBjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2U2MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjJmY2U2MGYwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmMmZjZTY4YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmMmZjZTg4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjJmY2U4OGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2YyZmNlODhmMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZTg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWE5YTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2YyZmNlYTlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWM5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2YyZmNlYzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2YyZmNlYzlmMDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VjY2IwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VlY2EwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlZWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2YyZmNlZWNlMDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmMmZjZWY4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2YyZmNmMThhMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2YyZmNmMTk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmMTk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmMTllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2YzOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YzYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmM2EyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmNWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjVhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjVhNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjVhNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmN2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmN2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjdhODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNmN2IwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjlhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNmOWIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmNmOWIxMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2Y5YzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2ZiYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmNmYmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmMmZjZmJjNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmMmZjZmJjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2YyZmNmYmNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmMmZjZmJmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2YyZmNmZGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2YyZmNmZGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZmRmNTAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2YyZmNmZTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQwMDBlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDAxMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMDFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDIxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAyMWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDIxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA0MWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2YyZmQwNDFlMDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDA0YmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDA2YmYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2YyZmQwNmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDA2YzgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2YyZmQwNmVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA4ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA4ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMDhlZTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkMDkwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwYjA3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQwYjBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmMmZkMGIyYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2YyZmQwZDI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQwZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDBkMmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDBkMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGYyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmMmZkMGYzMjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2YyZmQwZjRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2YyZmQxMTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmMmZkMTE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmMmZkMTE0YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjJmZDExNWEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjJmZDEzNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2YyZmQxMzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2YyZmQxMzVjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmMmZkMTM2NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmMmZkMTU2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTU2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjJmZDE1NjkwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2YyZmQxNjFmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjJmZDE4MWYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDE4MjcwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmMmZkMTg2YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZkMWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDFhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMWE2ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQxYThhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQxYzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxYzhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFjOGQwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFjY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2YyZmQxZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDFlY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2YyZmQxZWNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmMmZkMWVkMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMjBkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2YyZmQyMGQ0MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmMmZkMjBmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2YyZmQyMmYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2YyZmQyMmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDIyZjUwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjNhMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMjVhMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiI1ZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyNWE4MDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyOWQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyYmQ2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMmJkZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDJiZTQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDJiZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMmJlYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkMmJlZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQyZGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQyZGVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmMmZkMmRmMDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjJmZDJlMGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmMmZkMzAwZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmMmZkMzAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMwMTIwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2YyZmQzMDFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2YyZmQzMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzMjFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDMyMWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDMyMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDMyMjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMyMjIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMyMzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzNDMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzQzMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzNDM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM2MzkwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMzcyMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzkyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5MmEwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDM5ODcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzk4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNWEwMDAiLCJwc3MiOiI1ZDgwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzk4YzAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzYTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2EwNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2EwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmMmZkM2EwYjAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3ZjJmZDNhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmMmZkM2M0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmMmZkM2M0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWUwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTcwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNjYWYwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2NmOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkM2VmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2VmZDAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2YwODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQ0MTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQ0MTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTBhMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE0MDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNjEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxN2EwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTgyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4ZDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTk2MDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMWYwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMmUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjM4MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDI0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDI0YjAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmI2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJiYjAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmQxMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJlODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJlZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzAwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNTgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzA4MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDMyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2YyZmQ0MzJhMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2YyZmQ0MzU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmMmZkNDU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2YyZmQ0NTU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQ1NTkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDU1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQ3NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDc1ZjAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmMmZkNDdiMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDQ5YjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmMmZkNDliMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ0OWI0MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ0YWJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ0Y2I5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGNiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDRjYzAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmMmZkNGNjOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRlYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2YyZmQ0ZWNhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDRlZDMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2YyZmQ1MGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDUwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ1MGQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkNTBkNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkNTJkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTJkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDUyZDkwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNTQ5NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ1NjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQ1NjllMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDU2YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkNDAwIiwic2hyIjoiOTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjJmZDU4YjQwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjJmZDU5OWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2YyZmQ1Yjk5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2YyZmQ1YmI5MDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDVjNTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDVlNTUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2YyZmQ1ZTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDVlNWMwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ1ZmM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjFjNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2QwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2MWNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjFkNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2YyZmQ2M2Q4MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2YyZmQ2M2ZmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjVmZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY2MDIwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2NjNhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDY4M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY4M2YwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjg2NzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmE2NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2YTZjMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmE5MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YzkwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2Yzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZjOTcwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ZGNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmZjOTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZmZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2YyZmQ2ZmQxMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3MDBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmMmZkNzIwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDcyMGUwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzMxMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzUxNDAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDc1MmQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzcyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDc3MzIwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmMmZkNzc5ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmMmZkNzk5ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDc5YTcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3OWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3YmFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2JhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3YmFkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3YmJlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2RiZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZGJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdkYmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkN2RjMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdmYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdmYzMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkN2ZjNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDgxYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkODFjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ4MWM2MDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ4MmY2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ4NGY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkODRmNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4NGZiMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODYwMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4ODA0MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODg1MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4YTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4YTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGE1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhhNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQmhyWnZQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRwb25ZaCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5uY2Y3MlkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YzdhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzgzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjODUwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2EyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2E1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2FiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2I0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNjNTAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkM2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDQ3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGQ1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1YTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM2YzAwIiwic2hyIjoiYWMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNjgwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY1OTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Zjc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Zjc2MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFkODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTYwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MDhkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MDllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTA5ZjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBiNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGRhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwZGUwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTBjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTExNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMTUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTI0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTI3MDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTJlYTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkzMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0OTgwMCIsInNociI6ImUyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MzEzMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5NGYwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMzAwMCIsInNociI6IjllMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5NTEwMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWE4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhODYwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhYmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWFjMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhYzYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjZTAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFmZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjAyMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNGQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWI2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNzMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliODIwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliZGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWJlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliZTUwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzAzMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMjQwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljM2MwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5Y2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5Y2QxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5Y2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzAwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljZDYwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQwMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQwNTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDFhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDkwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQxZjAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDllYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZWM5MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWVmMTAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmMyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZjYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmUxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmVhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmYwMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMDAxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTAwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMDA1MDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMTEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTExYTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTJiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI2YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEzYTAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGEzNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTM3OTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMzg1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzOGMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzYTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE2ODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTNhYjAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNDk4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTQ5ZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NTAwMCIsInBzcyI6Ijk5YzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNGE4MDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE1YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE1YzgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTVkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNWQ5MDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjFmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyZTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYzZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjQwMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTY4MDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjg5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQ4MDAiLCJzaHIiOiJhNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY4YTAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhOTlkMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhOWFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE5YjEwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTdiNDAwIiwic2hyIjoiNDk3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTljMjAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzc2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM3NjgwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkwYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRjOTExMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MWYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTI0MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NGEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM5NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTljMDAwIiwic2hyIjoiNGQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NmEwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjliMDAwIiwicHNzIjoiOWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRkMjcwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGRjMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRkZGQxMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZGZiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTA5MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmY4MDAiLCJzaHIiOiI5NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTJiMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUwMmUwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTA0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxMDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTA0MjAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTFhNDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUxYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUxYWYwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTJiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlMmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTljMDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTJjMzAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTQyMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlNDMyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmM4MDAiLCJzaHIiOiIxNGQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlNDM1MDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkwNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTJkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkzOTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkZTk3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTdhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk3ZjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiI4NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTlkMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVjYTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlY2M2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzQwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWNjZTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkODIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWQ5NzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRiYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRiZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGM2MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRkMzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGYyMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNTIwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU3MzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlODkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMTgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlOGQwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmZmQ5OTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmZmZDliYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI5MTgzMDAwIn19fSwidHRzIjo1MjkwOSwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmQifSwKK3sicGlkIjoxNTI1OCwidGlkIjoxNTMwNywidHMiOjE1NzY2NTQ4OTcxNTYsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiIzMjk4ODAwIn0sInNpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjM0MDQwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNWRjMDAiLCJzaHIiOiIxNTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MDA5OTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3RtcC9nbDhmMktoTSAoZGVsZXRlZCkiLCJwZiI6NSwic2EiOiI0MDE2NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MDM1NjAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDBjNTAwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxMTZkMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTI3ZTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDE1OWEwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjFlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmM2UwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjVlMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0Zjk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZDFlMDAwIiwicHNzIjoiMmQxZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmOTUwMDAiLCJzeiI6IjM0NTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMmNaY2RvIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjMzgzZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLll0RXEzTyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzM5M2QwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2NiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNkN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uU0xBSFRmIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjM2UzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjBBQkxzeSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzNlM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNkVSQk4gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkphcVJqdCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmMzZWJkMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5INDhSMTggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZ6T3FLTyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFBIMHN1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDMzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KUjRDYmEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJPa2dVUCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFpRVkN2IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kajNYbnYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhING5INSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQjVQTzBGIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yZHlpa2cgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmxBMEplUyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZmFOQ1h4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDU3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5IanJ3R2QgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkZSd3RwVCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUmlOcjh5IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDYzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45b2t0UmUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlZjSXZBVSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udzZnTUJCIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43MzBwNm0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFBjZHRzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDg3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4zNE9iMlYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0OGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzQ4ZmQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZJT3lJMyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzRhZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiM2QwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI0NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmE2MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YzA2MDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwMCIsInBzcyI6IjIwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzUwMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzUyMDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTQwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzU2MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjNTYwNzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzVlMDcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS50b1NlVUsgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXg2MUQ4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjEwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZENna293IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjIwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjd2clNnZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYzMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY0MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiYzAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzY1MDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2NjA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTBdIiwicGYiOjYsInNhIjoiN2YyZmM2NjA4MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNmUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA4XSIsInBmIjo2LCJzYSI6IjdmMmZjNmUwOTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzc2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwN10iLCJwZiI6Niwic2EiOiI3ZjJmYzc2MGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjN2UwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4MjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzg2MGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMmEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE2YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YThhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhY2EwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiJjNDAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFlYTAwMCIsInN6IjoiYzQwMDAifSx7ImJzIjp7InBydiI6ImEyZjAwMCIsInBzcyI6ImFmNDgwMCIsInNociI6IjI1OTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmYzhiYWUwMDAiLCJzeiI6IjFiNjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2E3MTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTBhMDAwIiwicHNzIjoiOTBhNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGlibnZpZGlhLWdsY29yZS5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2E5MTUwMDAiLCJzeiI6ImE4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2IzYTAwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiM2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjNjMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo2LCJzYSI6IjdmMmZjYjViZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDUwMDAiLCJwc3MiOiI2MTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2I1YzAwMDAiLCJzeiI6ImRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYjY5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNiODljMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiOGRjMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmNiOGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDZdIiwicGYiOjYsInNhIjoiN2YyZmNiOGY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzBmNDAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMTdmMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3ZjJmY2MxZTUwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2YyZmNjYmEyMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkYjk2MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2RiYTYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2YyZmNkYmFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2YyZmNkZGE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNkZGFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2YyZmNkZGFjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2YyZmNkZGFlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3ZjJmY2RmYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3ZjJmY2RmYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2YyZmNkZmIwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZGZiNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZTFiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNlMWI4MDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNlMWYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTNmMjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNlM2Y4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNlM2ZhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZTQwYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNlNjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNlNjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2YyZmNlNjBmMDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3ZjJmY2U2OGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3ZjJmY2U4OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2YyZmNlODhjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZTg4ZjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2U4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2YyZmNlYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VhOWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmMmZjZWE5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VjOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlYzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWM5ZjAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2YyZmNlY2NiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlZWNhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWVjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlZWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmMmZjZWVjZTAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2VmOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmMmZjZjE4YTAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmMmZjZjE5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjE5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjE5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmMzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmMzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmM2EwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjNhMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y1YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y1YTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y1YTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjdhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2Y3YTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmMmZjZjdiMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y5YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjliMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZjZjliMTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmNmOWM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmNmYmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3ZjJmY2ZiYzcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3ZjJmY2ZiY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3ZjJmY2ZiY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZjZmJjZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmY2ZiZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZjZmRmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZjZmRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2ZkZjUwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZmUwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMDAwZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAwMTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDAxYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDAyMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMjFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAyMWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwNDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA0MWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmMmZkMDQxZTAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2YyZmQwNGJmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2YyZmQwNmJmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwNmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2YyZmQwNmM4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDZlZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2YyZmQwOGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2YyZmQwOGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDA4ZWUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDA5MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwYjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkMGIwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDBiMmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmMmZkMGQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZDJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwZDJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwZDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBmMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjJmZDBmMzIwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmMmZkMGY0YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmMmZkMTE0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjJmZDExNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjJmZDExNGIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2YyZmQxMTVhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2YyZmQxMzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmMmZkMTM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmMmZkMTM1YzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjJmZDEzNjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjJmZDE1NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2YyZmQxNTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2YyZmQxNTY5MDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmMmZkMTYxZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2YyZmQxODFmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2YyZmQxODI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2YyZmQxODI3MDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDE4NmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2YyZmQxYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDFhNmQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMWE4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMWM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2YyZmQxYzhkMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2YyZmQxY2NhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmMmZkMWVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2YyZmQxZWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWVjYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFlZDIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDIwZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQyMGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmMmZkMjBkNDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3ZjJmZDIwZjMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmMmZkMjJmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmMmZkMjJmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyMmY1MDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDIzYTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDI1YTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyNWE1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiNWYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjVhODAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjlkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMmJkNjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQyYmU0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQyYmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQyYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDJiZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDJiZWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMmRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3ZjJmZDJkZjAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2YyZmQyZTBmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3ZjJmZDMwMGYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3ZjJmZDMwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2YyZmQzMDEyMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmMmZkMzAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzMjFkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzMjIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzMjIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzMjIyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzMjMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM0MzMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzYzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQzNjM5MDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM3MjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDM5MjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQzOTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOTJhMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzOTg3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDM5OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjVhMDAwIiwicHNzIjoiNWQ4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5OGMwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2EwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNhMDYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjJmZDNhMGIwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2YyZmQzYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjJmZDNjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzVlMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmMmZkM2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2NhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzY2E3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzY2FmMDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNjZjkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDNlZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQzZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNlZmQwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmZDNmMDgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkNDEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkNDEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDEwYTAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDEzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNDAwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTYxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTdhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOGQwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE5NjAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjFmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjJlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIzODAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDI0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyNGIwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJiNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyYmIwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQyY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTAwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJkMTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyZTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZWQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjU4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwODAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmMmZkNDMyYTAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmMmZkNDM1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjJmZDQ1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmMmZkNDU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0NTU5MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQ1NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0NzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ3NWYwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDQ3YjIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0OWIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDQ5YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDliNDAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmMmZkNGFiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGNiOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNGNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0Y2MwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRjYzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ0ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDRlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmMmZkNGVjYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2YyZmQ0ZWQzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmMmZkNTBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2YyZmQ1MGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkNTBkNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDUwZDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDUyZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ1MmQ5MDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDU0OTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNTY5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNTY5NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmMmZkNTY5ZTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQ1NmI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQ1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiZDQwMCIsInNociI6IjkyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2YyZmQ1OGI0MDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2YyZmQ1OTlhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmMmZkNWI5OTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2YyZmQ1YmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmMmZkNWJiOTAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2YyZmQ1YzU2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2YyZmQ1ZTU1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmMmZkNWU1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ1ZTVjMDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkNWZjODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDYxYzcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjFjYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjFjZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDYxZDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDYzZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmMmZkNjNkODAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmMmZkNjNmZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDY1ZmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmMmZkNjYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2NjAyMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjYzYTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ODNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2ODNmMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY4NjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZhNjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmE2YzAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZhOTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmM5MDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2Yzk3MDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmRjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZmYzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmZjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmMmZkNmZkMTAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmMmZkNzAwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDcyMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmMmZkNzIwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3MjBlMDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDczMTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzUxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzUxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDc1MTQwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3NTJkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc3MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2YyZmQ3NzMyMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDc3OWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDc5OWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3OWE3MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkNzlhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2JhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdiYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2JhZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmMmZkN2JiZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdkYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2RiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZGJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdkYzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZmMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3ZmMzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdmYzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ4MWM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDgxYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkODFjNjAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmMmZkODJmNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkODRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg0ZjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODRmYjAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg2MDEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkODgwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkODgwNDAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDg4NTMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkOGE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkOGE1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhhNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4YTU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdG1wL2dsOGYyS2hNIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM3YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzg0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Yzg1MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2E5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNhYjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNTAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNiNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhjYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2MzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYzUwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ0NzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhkNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNWEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNmMwMCIsInNociI6ImFjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDY4MDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNTkwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGY2YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY2YzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Zjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGY3NjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZDgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmU2MDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTA4ZDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTA5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwOWYwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwYjQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBkYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGRlMDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTEwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTBmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTE1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTEyNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwMCIsInNociI6ImRjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEyNzAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIyODAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkyZWEwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDk4MDAiLCJzaHIiOiJlMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTMxMzAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIxZTAwMCIsInBzcyI6IjFlMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTRmMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzMwMDAiLCJzaHIiOiI5ZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTUxMDAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YTg2MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWJjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlhYzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWM2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YWNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhY2UwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhZmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWIwMjAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjRkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliNjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjY5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjczMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjgyMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YmRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YmU1MDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMwMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzI0MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDljM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzNjMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWNkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWNkMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5Y2Q2MDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMDEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMDUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQxYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ5MDAwIiwic2hyIjoiZTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlkMWYwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNzAwMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWVjOTAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlODAwIiwic2hyIjoiNjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDllZjEwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlmYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZjMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmY2EwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZlYTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZmMDAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTAwMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTAwNTAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTExMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMWEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTEyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEyYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiNmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExM2EwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMzc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzNzkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTM4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMzhjMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhM2E4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzYWIwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTQ5ODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE0OWYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTRhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzUwMDAiLCJwc3MiOiI5OWMwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTRhODAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNWQwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTVkOTAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjFiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYxZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjI5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MmUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2M2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2M2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY0MDAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTY4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0ODAwIiwic2hyIjoiYTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2OGEwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTk5ZDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTlhZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhOWIxMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE3YjAwMCIsInNociI6IjQ5NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE5YzIwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM3NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjNzY4MDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYzkxMTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTFmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkyNDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NDcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTRhMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmRjOTY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjE5YzAwMCIsInNociI6IjRkNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTZhMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZDI3MDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRkYzIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZGRkMTAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGRmYjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUwOTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRkZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJmODAwIiwic2hyIjoiOTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZGUyYjAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMDJlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUwNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMTAwMCIsInNociI6IjY3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUwNDIwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUxYTQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMWFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMWFmMDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUyYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE5YzAwIiwic2hyIjoiNTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUyYzMwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU0MjEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjODAwIiwic2hyIjoiMTRkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTQzNTAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MDcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkyZDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MzkwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGU5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk3YTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5N2YwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5OWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJhNDAwIiwic2hyIjoiODUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk5ZDAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlY2ExMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImM0MDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVjY2UwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZDgyMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZDg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkODcwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkOTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYmEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRjNjAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZDMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRmMjAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTUyMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNzMwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZTg5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzE4MDAiLCJzaHIiOiJkNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZThkMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmFlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmI2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTQwMDAiLCJwc3MiOiIxNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZmZkOTk1MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmZmQ5YmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiOTI5NDAwMCJ9fX0sInR0cyI6NzM2MTQsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCit7InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU1MDQxNzc5LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMzNhNDA2MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzNTA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVkYzAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTE2ZDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDEyN2UwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxNTlhMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYxZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjNlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY1ZTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmUyZDAwMCIsInBzcyI6IjJlMmQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0Zjk1MDAwIiwic3oiOiIzNTUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzM4M2QwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzOTNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TNTVhNHAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzYzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmJ2WTNwTCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueXREZDZxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2NmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UN2hldU0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlNMQUhUZiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzNlM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4wQUJMc3kgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2UzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjM2ViZDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSDQ4UjE4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52ek9xS08gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxQSDBzdSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSlI0Q2JhIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDM3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CT2tnVVAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBaUVZDdiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZGozWG52IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YSDRuSDUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkI1UE8wRiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucmR5aWtnIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5sQTBKZVMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmZhTkNYeCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSGpyd0dkIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDViZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5GUnd0cFQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlJpTnI4eSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOW9rdFJlIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDY3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5WY0l2QVUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnA3Y05EUSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXMyS1hxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDczZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5pbW5LaDEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnc2Z01CQiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uNzMwcDZtIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yeU5mQnAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMzRPYjJWIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDhiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ObEtaTFYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM0OGZkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52SU95STMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0YWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjNkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNDQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJhNjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGMwNjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMDAiLCJwc3MiOiIyMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM1MDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1MjA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzU0MDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM1NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmYzU2MDcwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1ZTA3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udG9TZVVLIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjAwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjl4NjFEOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYxMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRDZ2tvdyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYyMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43dnJTZ2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MzA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YjgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNjYwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzEwXSIsInBmIjo2LCJzYSI6IjdmMmZjNjYwODAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzZlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOF0iLCJwZiI6Niwic2EiOiI3ZjJmYzZlMDkwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM3NjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDddIiwicGYiOjYsInNhIjoiN2YyZmM3NjBhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzdlMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODIwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4NjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTJhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhNmEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE4YTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWNhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiYzQwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhZWEwMDAiLCJzeiI6ImM0MDAwIn0seyJicyI6eyJwcnYiOiJhMmYwMDAiLCJwc3MiOiJhZjQ4MDAiLCJzaHIiOiIyNTkwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmM4YmFlMDAwIiwic3oiOiIxYjY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNhNzE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjkwYTAwMCIsInBzcyI6IjkwYTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNhOTE1MDAwIiwic3oiOiJhOGIwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiM2EwMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2IzYzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6Niwic2EiOiI3ZjJmY2I1YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQ1MDAwIiwicHNzIjoiNjE4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiNWMwMDAwIiwic3oiOiJkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2I2OWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYjg5YzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjhkYzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjYjhmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA2XSIsInBmIjo2LCJzYSI6IjdmMmZjYjhmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MwZjQwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzE3ZjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2YyZmNjMWU1MDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmMmZjY2JhMjAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGI5NjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2YyZmNkYmE2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmMmZjZGJhYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZGRhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmMmZjZGRhYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmMmZjZGRhZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2YyZmNkZmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2YyZmNkZmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZGZiMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2RmYjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2UxYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTFiODAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZTFmMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2UzZjIwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTNmODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTNmYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2U0MGMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTYwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlNjBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmMmZjZTYwZjAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2YyZmNlNjhiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2YyZmNlODhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmMmZjZTg4YzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2U4OGYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2YyZmNlODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2YyZmNlYTk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWE5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2YyZmNlYTlhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VhOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2YyZmNlYzljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VjOWYwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZWNjYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWVjYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWVjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2VlY2UwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2YyZmNlZjhhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2YxOGEwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2YxOTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YxOTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YxOWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmMzlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjNhMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YzYTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y1YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmNWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmNWE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmNWE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y3YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNmN2E4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y3YjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNmOWFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y5YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2Y5YjEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZjZjljNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2YyZmNmYmM3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2YyZmNmYmNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2YyZmNmYmNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2YyZmNmYmNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmY2ZiY2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2YyZmNmYmYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmY2ZkZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZkZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2YyZmNmZGY1MDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2ZlMGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDAwMGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQwMDEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMDEyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAwMWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwMjE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDAyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDIxYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMjFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDQxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwNDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDA0MWUwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmMmZkMDRiZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmMmZkMDZiZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDZjODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDA2ZWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDhlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDhlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwOGVlMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwOTA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDBiMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQwYjJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDBkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMGQyZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkMGQzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwZjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwZjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2YyZmQwZjMyMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3ZjJmZDBmNGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3ZjJmZDExNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2YyZmQxMTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2YyZmQxMTRiMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmMmZkMTE1YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmMmZkMTM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3ZjJmZDEzNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3ZjJmZDEzNWMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2YyZmQxMzY3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2YyZmQxNTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmMmZkMTU2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxNTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmMmZkMTU2OTAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3ZjJmZDE2MWYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmMmZkMTgxZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxODI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZkMTgyNzAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2YyZmQxODZhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2YyZmQxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZkMWE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQxYTZkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDFhOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDFjOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQxYzhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWM4ZDAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmMmZkMWNjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDFlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmMmZkMWVjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFlY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2YyZmQxZWQyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQyMGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyMGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjJmZDIwZDQwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2YyZmQyMGYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjJmZDIyZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjJmZDIyZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjJmNTAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyM2EyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyNWExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyNWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjVmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDI1YTgwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDI5ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDJiZDYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyYmRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMmJlNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMmJlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQyYmViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQyYmVlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDJkZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2YyZmQyZGYwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmMmZkMmUwZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2YyZmQzMDBmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2YyZmQzMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzAxMjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDMyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2YyZmQzMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzIxZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzIyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzIyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzIyMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzIzMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzNDMzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzYzOTAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQzNzIyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQzOTIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzkyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzOTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTA4MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzkyYTAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzk4NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzOThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1YTAwMCIsInBzcyI6IjVkODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOThjMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYTA2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2EwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjcwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2YyZmQzYTBiMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmMmZkM2E0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2YyZmQzYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2YyZmQzYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2M1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1ZTAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2NhZjAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzY2Y5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQzZWY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzZWZkMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzZjA4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDQxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDQxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxMGEwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxM2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTQwMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTVkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE2MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE3YTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxODIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MThkMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIyYTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOTYwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIxZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIyZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMzgwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyNDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDI0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjRiMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyYjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmJiMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZDEwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmVkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDgwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3ZjJmZDQzMmEwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3ZjJmZDQzNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2YyZmQ0NTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3ZjJmZDQ1NTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDU1OTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0NTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDc1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0NzVmMDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0N2IyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmMmZkNDliMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0OWIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ5YjQwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRhYmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRjYjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkNGNjMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0Y2M5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0ZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDRlY2EwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmMmZkNGVkMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDUwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmMmZkNTBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDUwZDQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ1MGQ2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ1MmQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkNTJkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNTJkOTAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ1NDk0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDU2OTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTY5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDU2OWUwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmMmZkNTZiNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkNThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiI5MjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmMmZkNThiNDAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmMmZkNTk5YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3ZjJmZDViOTkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1YmEzMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDViYjkwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmMmZkNWM1NjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmMmZkNWU1NTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDVlNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkNWU1YzAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDVmYzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2MWM3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2IwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjFjZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDYxY2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2MWQ2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2M2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDYzZDgwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDYzZmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2NWZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDY2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjYwMjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY2M2EwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjgzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjgzZjAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ODY3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YTY3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZhNmMwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2YTkxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZjOTAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmM5NzAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZkY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ZmM5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZmY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmZkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDZmZDEwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDcwMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3MjBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzIwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzIwZTAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3MzEzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc1MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc1MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3NTE0MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzUyZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NzJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmMmZkNzczMjAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2YyZmQ3NzllMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2YyZmQ3OTllMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNzlhNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDc5YWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdiYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3YmFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdiYWQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdiYmUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZGJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdkYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2RiZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZGMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2ZjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2ZjMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZmM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkODFjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ4MWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDgxYzYwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDgyZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg0ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ4NGY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg0ZmIwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4NjAxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkODgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg4MDQwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4ODUzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDhhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDhhNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YTU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGE1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CaHJadlAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHBvblloIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3RtcC9nbDhmMktoTSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjN2EwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjODIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM4NTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYjQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2M1MDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQzZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNDcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDVhMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzZjMDAiLCJzaHIiOiJhYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ2ODAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjU5MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzYwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmUxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWQ4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlNjAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTA4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwOGQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MDlmMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGI0MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwZGEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBkZTAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkxMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEwZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTExMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MTE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTExNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMjcwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MmVhMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTMxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjQ5ODAwIiwic2hyIjoiZTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkzMTMwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDk0ZjAwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMzMDAwIiwic2hyIjoiOWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDk1MTAwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNjAwMCIsInBzcyI6IjM2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWE4NjAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFiYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YWMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjNjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWNlMDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWZlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYTAwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliMDIwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI0ZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI3MzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI4MjAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWJkYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWJlNTAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMDMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMyNDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMzYzAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljZDEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWNkNjAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDAxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDA1MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0OTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDFmMDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDllYzkwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDllZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZWYxMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmYzIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmNhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZWEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZjAwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEwMDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTAwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEwMDUwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTExMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTExOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTFhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGExMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGExMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMjQwMCIsInNociI6IjZjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTNhMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMzc5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTM4YzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTNhODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhM2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhM2FiMDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE0OTgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNDlmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE0YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiOTljMDAiLCJzaHIiOiI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE0YTgwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTVjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTVkMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNWQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE1ZDkwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYxYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTYyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjJlMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2NDAwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTY3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjgwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDgwMCIsInNociI6ImE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjhhMDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE5OWQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE5YWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTliMTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxN2IwMDAiLCJzaHIiOiI0OTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhOWMyMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2YyZmRjNzY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTQwMDAiLCJwc3MiOiIxYTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzc2ODAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGM5MTEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkxZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzkyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MjQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk0YTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzk2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxOWMwMDAiLCJzaHIiOiI0ZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2YTAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGQyNzAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZGMyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGRkZDEwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRkZmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMDkwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyZjgwMCIsInNociI6Ijk0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMmIwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTAyZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjEwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMDQyMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMWE0MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTFhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTFhZjAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMmJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMmMwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxOWMwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMmMzMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlNDIxMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzgwMCIsInNociI6IjE0ZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU0MzUwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTA3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlOTJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MmQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTM5MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5N2EwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTdmMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYTQwMCIsInNociI6Ijg1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5OWQwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWNhMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlY2M0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjNDAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlY2NlMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWQ4MjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZDg3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZDk3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGJhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYzYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGQzMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZjIwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU0ZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU1MjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU2ZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTczMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU4OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMxODAwIiwic2hyIjoiZDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU4ZDAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZhZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmZmZDk5NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZmZkOWJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjkzYTUwMDAifX19LCJ0dHMiOjkwMjMxLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoreyJwaWQiOjE1MjU4LCJ0aWQiOjE1MzA3LCJ0cyI6MTU3NjY1NTEzNjM0OCwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjM0YWY3ZDAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMzYwNDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ZGMwMCIsInNociI6IjE1MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjJiMDAwIiwicHNzIjoiMmI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjE5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwMDk5MDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdG1wL2dsOGYyS2hNIChkZWxldGVkKSIsInBmIjo1LCJzYSI6IjQwMTY2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwMzU2MDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MGM1MDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDExNmQwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxMjdlMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTU5YTAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIxNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmMWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYzZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDIzZDRmNWUwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZDIzZDRmOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJmMzcwMDAiLCJwc3MiOiIyZjM3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY5NTAwMCIsInN6IjoiMzY1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4yY1pjZG8gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzODNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWXRFcTNPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjMzkzZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2MzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzY2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2Q3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TTEFIVGYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMEFCTHN5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjM2UzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ2RVJCTiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNlM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSmFxUmp0IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2U3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzNlYmQwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQyYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzN2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDNiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2ZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQ3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NGJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDUzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDVmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NjNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDZiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wN2NORFEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlzMktYcSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uaW1uS2gxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDc3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0N2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucnlOZkJwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDgzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wUGNkdHMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTmxLWkxWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNDhmZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNGFmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGIzZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjQ0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiYTYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJjNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRjMDYwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAwIiwicHNzIjoiMjAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNTAwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNTIwNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1NDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNTYwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmM1NjA3MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmYTAwMCIsInNociI6IjFmNDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWGhYOWRuIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNWUwNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYwMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MjA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjMwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDVmRTlUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjQwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmUwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVEMzcTJBIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjUwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzY2MDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMF0iLCJwZiI6Niwic2EiOiI3ZjJmYzY2MDgwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM2ZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDhdIiwicGYiOjYsInNhIjoiN2YyZmM2ZTA5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNzYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA3XSIsInBmIjo2LCJzYSI6IjdmMmZjNzYwYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM3ZTBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzgyMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODYwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEyYTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTZhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhOGEwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGFjYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNzAwMCIsInNociI6ImM0MDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWVhMDAwIiwic3oiOiJjNDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTJmMDAwIiwicHNzIjoiYWY0ODAwIiwic2hyIjoiMjU5MDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjOGJhZTAwMCIsInN6IjoiMWI2ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjowLCJzYSI6IjdmMmZjYTcxNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI5MGEwMDAiLCJwc3MiOiI5MGE0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJudmlkaWEtZ2xjb3JlLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYTkxNTAwMCIsInN6IjoiYThiMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjE5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjNhMDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6NSwic2EiOiI3ZjJmY2IzYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiM2MwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvdGxzL2xpYm52aWRpYS10bHMuc28uMzMxLjc5IiwicGYiOjYsInNhIjoiN2YyZmNiNWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0NTAwMCIsInBzcyI6IjYxODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjVjMDAwMCIsInN6IjoiZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNiNjlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6Nywic2EiOiI3ZjJmY2I4OWMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI3ZjJmY2I4ZGMwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmY2I4ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwNl0iLCJwZiI6Niwic2EiOiI3ZjJmY2I4ZjQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2YyZmNjMGY0MDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MxN2YwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmMmZjYzFlNTAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjJmY2NiYTIwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RiOTYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZGJhNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2RiYWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2RkYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2YyZmNkZGFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjJmY2RkYWMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjJmY2RkYWUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmMmZjZGZhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmMmZjZGZhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2RmYjAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2YyZmNkZmI2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2YyZmNlMWI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmMmZjZTFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UxYjgwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2UxZjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNlM2YyMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2UzZjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2UzZmEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNlNDBjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2U2MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2U2MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjJmY2U2MGYwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmMmZjZTY4YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmMmZjZTg4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjJmY2U4OGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2YyZmNlODhmMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmMmZjZTg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmMmZjZWE5YTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2YyZmNlYTlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWM5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2YyZmNlYzlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2YyZmNlYzlmMDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VjY2IwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2VlY2EwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlZWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2YyZmNlZWNlMDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmMmZjZWY4YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2YyZmNmMThhMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2YyZmNmMTk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmMTk5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmMTllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2YzOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2YzOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YzYTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmM2EyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmNWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjVhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjVhNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZjVhNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmNmN2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmN2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjdhODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2YyZmNmN2IwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjlhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2YyZmNmOWIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmNmOWIxMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjJmY2Y5YzUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2ZiYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmNmYmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmMmZjZmJjNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmMmZjZmJjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmMmZjZmJjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmYmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2YyZmNmYmNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmMmZjZmJmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2YyZmNmZGYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2YyZmNmZGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmMmZjZmRmNTAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2YyZmNmZTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQwMDBlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMDAxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDAxMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMDFhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDIxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDAyMWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMDIxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA0MWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2YyZmQwNDFlMDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDA0YmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDA2YmYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2YyZmQwNmM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDA2YzgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2YyZmQwNmVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDA4ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDA4ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMDhlZTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkMDkwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDBiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGIwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwYjA3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQwYjBhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmMmZkMGIyYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2YyZmQwZDI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2YyZmQwZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDBkMmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDBkMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGYyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMGYzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQwZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmMmZkMGYzMjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2YyZmQwZjRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2YyZmQxMTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmMmZkMTE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmMmZkMTE0YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjJmZDExNWEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjJmZDEzNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2YyZmQxMzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2YyZmQxMzVjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmMmZkMTM2NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmMmZkMTU2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjJmZDE1NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTU2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjJmZDE1NjkwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2YyZmQxNjFmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjJmZDE4MWYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjJmZDE4MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDE4MjcwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmMmZkMTg2YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmMmZkMWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDFhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMWE2ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQxYThhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQxYzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMWM4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxYzhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFjOGQwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDFjY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2YyZmQxZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDFlY2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2YyZmQxZWNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmMmZkMWVkMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmMmZkMjBkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDIwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2YyZmQyMGQ0MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmMmZkMjBmMzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2YyZmQyMmYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2YyZmQyMmY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDIyZjUwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmMmZkMjNhMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmMmZkMjVhMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjJmZDI1YTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiI1ZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2YyZmQyNWE4MDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyOWQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyYmQ2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMmJkZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDJiZTQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDJiZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMmJlYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkMmJlZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQyZGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQyZGVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmMmZkMmRmMDAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjJmZDJlMGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmMmZkMzAwZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmMmZkMzAxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMwMTIwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2YyZmQzMDFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2YyZmQzMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzIxYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzMjFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDMyMWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDMyMjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDMyMjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDMyMjIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMyMzEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzNDMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzQzMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQzNDM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDM2MzkwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkMzcyMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMzkyMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM5MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDM5MmEwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDM5ODcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzk4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNWEwMDAiLCJwc3MiOiI1ZDgwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzk4YzAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzYTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2EwNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2EwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmMmZkM2EwYjAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3ZjJmZDNhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmMmZkM2M0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmMmZkM2M0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzYzU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQzYzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkM2M1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWUwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2YyZmQzY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTcwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmZDNjYWYwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2NmOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZkM2VmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDNlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2VmZDAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZkM2YwODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQ0MTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2YyZmQ0MTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTBhMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE0MDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE1ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxNjEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxN2EwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTgyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE4ZDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTk2MDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMWYwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMmUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjM4MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MjQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDI0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDI0YjAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmI2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJiYjAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDJjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmQxMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDJlODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDJlZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzAwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDMwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNTgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzA4MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MzIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDMyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2YyZmQ0MzJhMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2YyZmQ0MzU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmMmZkNDU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2YyZmQ0NTU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQ1NTkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDU1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQ3NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDc1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmMmZkNDc1ZjAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmMmZkNDdiMjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjJmZDQ5YjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmMmZkNDliMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2YyZmQ0OWI0MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ0YWJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ0Y2I5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGNiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDRjYzAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmMmZkNGNjOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRlYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkNGVjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2YyZmQ0ZWNhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3ZjJmZDRlZDMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2YyZmQ1MGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDUwZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQ1MGQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkNTBkNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkNTJkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDUyZDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTJkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDUyZDkwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNTQ5NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ1NjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ1Njk3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2YyZmQ1NjllMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDU2YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkNDAwIiwic2hyIjoiOTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjJmZDU4YjQwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjJmZDU5OWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2YyZmQ1Yjk5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjJmZDViYTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2YyZmQ1YmI5MDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3ZjJmZDVjNTYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDVlNTUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2YyZmQ1ZTViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDVlNWMwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ1ZmM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjFjNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2MWNiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2QwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2MWNmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjFkNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjNkNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDYzZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2YyZmQ2M2Q4MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2YyZmQ2M2ZmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmMmZkNjVmZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2YyZmQ2NjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY2MDIwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2NjNhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDY4M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDY4M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDY4M2YwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNjg2NzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmE2NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ2YTZjMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNmE5MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YzkwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2Yzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZjOTcwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ZGNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNmZjOTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ2ZmNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDZmZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2YyZmQ2ZmQxMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3MDBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmMmZkNzIwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3MjBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDcyMGUwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzMxMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzUxNDAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDc1MmQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNzcyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNzcyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDc3MzIwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmMmZkNzc5ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmMmZkNzk5ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDc5YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDc5YTcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3OWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQ3YmFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2JhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2YyZmQ3YmFkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3YmJlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2RiZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZGJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdkYmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmMmZkN2RjMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdmYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmMmZkN2ZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdmYzMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmMmZkN2ZjNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDgxYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkODFjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2YyZmQ4MWM2MDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ4MmY2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2YyZmQ4NGY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmMmZkODRmNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4NGZiMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODYwMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmMmZkODgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQ4ODA0MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmMmZkODg1MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ4YTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4YTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGE1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhhNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQmhyWnZQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRwb25ZaCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5uY2Y3MlkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YzdhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4YzgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4YzgzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjODUwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4Y2EyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2E1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2FiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2I0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Y2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGNjNTAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkM2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDQ3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGQ1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhkNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ1YTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM2YzAwIiwic2hyIjoiYWMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNjgwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY1OTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4Zjc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Zjc2MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhmZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFkODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmZTYwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MDhkMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MDllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTA5ZjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBiNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTBkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGRhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkwZGUwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTBjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTExNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMTUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MTI0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTEyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MTI3MDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTJlYTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkzMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0OTgwMCIsInNociI6ImUyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MzEzMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5NGYwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5NTBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMzAwMCIsInNociI6IjllMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5NTEwMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWE4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhODYwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhYmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWFjMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlhYzYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlhY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjZTAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWFmZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjAyMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNGQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWI2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNzMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDliN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJmNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliODIwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliZGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWJlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliZTUwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YzAzMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMjQwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWMzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljM2MwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5Y2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5Y2QxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5Y2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzAwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljZDYwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWQwMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlkMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQwNTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDFhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDkwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWQxZjAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDllYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZWM5MDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWVmMTAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmMyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWZjYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZkYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmUxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmVhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmYwMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMDAxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEwMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTAwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMDA1MDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMTEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGExMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTExYTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhMTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTJiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGExMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiI2YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTEzYTAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGEzNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTM3OTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMzg1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEzOGMwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEzYTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE2ODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTNhYjAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNDk4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTQ5ZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NTAwMCIsInBzcyI6Ijk5YzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNGE4MDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE1YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE1YzgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE1ZDAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTVkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNWQ5MDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjFmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyZTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYzZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTYzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjQwMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTY4MDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNjg5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQ4MDAiLCJzaHIiOiJhNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTY4YTAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhOTlkMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhOWFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE5YjEwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTdiMDAwIiwic2hyIjoiNDk3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTljMjAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzc2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM3NjgwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkwYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRjOTExMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MWYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRjOTI0MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NGEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk1ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGM5NjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGM5NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTljMDAwIiwic2hyIjoiNGQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5NmEwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjliMDAwIiwicHNzIjoiOWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRkMjcwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGRjMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRkZGQxMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZGZiMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZGUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTA5MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGRlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmY4MDAiLCJzaHIiOiI5NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRkZTJiMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGUwMmUwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTA0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIxMDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTA0MjAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTFhNDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGUxYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGUxYWYwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTJiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTJjMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlMmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTljMDAiLCJzaHIiOiI1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTJjMzAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTQyMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTQzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlNDMyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmM4MDAiLCJzaHIiOiIxNGQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlNDM1MDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkwNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5MmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTJkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTkzOTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmMmZkZTk3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTdhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTk3ZjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTk5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmE0MDAiLCJzaHIiOiI4NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTlkMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVjYTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWNjNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlY2M2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzQwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWNjZTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkODIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWQ5NzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRiYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRiZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGM2MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlZGQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWRkMzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGYyMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlNTIwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlNmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU3MzAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVlODkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMTgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVlOGQwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYWUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlZmI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWZiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmZmQ5OTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmZmZDliYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI5NGI0MDAwIn19fSwidHRzIjoxMTE3ODAsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCit7InBpZCI6MTUyNTgsInRpZCI6MTUzMDcsInRzIjoxNTc2NjU1MjMzMjM1LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMzViYjAzMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIzNzA0MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjVkYzAwIiwic2hyIjoiMTUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAwOTkwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii90bXAvZ2w4ZjJLaE0gKGRlbGV0ZWQpIiwicGYiOjUsInNhIjoiNDAxNjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDAzNTYwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQwYzUwMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiOWUwMDAiLCJwc3MiOiI5ZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0MTE2ZDAwMCIsInN6IjoiOWUwMDAifSx7ImJzIjp7InBydiI6IjllMDAwIiwicHNzIjoiOWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDEyN2UwMDAiLCJzeiI6IjllMDAwIn0seyJicyI6eyJwcnYiOiI5ZTAwMCIsInBzcyI6IjllMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQxNTlhMDAwIiwic3oiOiI5ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGYxZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0ZjNlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWQyM2Q0ZjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxODAwMCIsInBzcyI6IjE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMjNkNGY1ZTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFkMjNkNGY5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzA0NTAwMCIsInBzcyI6IjMwNDUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQyM2Q0Zjk1MDAwIiwic3oiOiIzNzUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjJjWmNkbyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzM4M2QwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ZdEVxM08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzOTNkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TNTVhNHAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzYzNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmJ2WTNwTCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzNjYmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueXREZDZxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2NmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UN2hldU0gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlNMQUhUZiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzNlM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4wQUJMc3kgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmMzZTNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjM2UzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmMzZTdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjM2ViZDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSDQ4UjE4IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDJiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52ek9xS08gKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0MmZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxQSDBzdSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzM2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSlI0Q2JhIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDM3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CT2tnVVAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0M2JkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBaUVZDdiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQzZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZGozWG52IChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDQzZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YSDRuSDUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NDdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkI1UE8wRiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ0YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucmR5aWtnIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDRmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5sQTBKZVMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NTNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmZhTkNYeCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ1N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSGpyd0dkIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDViZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5GUnd0cFQgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlJpTnI4eSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2M2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOW9rdFJlIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDY3ZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5WY0l2QVUgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NmJkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnA3Y05EUSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ2ZmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXMyS1hxIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDczZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5pbW5LaDEgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0NzdkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnc2Z01CQiAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ3YmQwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uNzMwcDZtIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDdmZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiM2M4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yeU5mQnAgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0ODNkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiIzYzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3ZjJmYzQ4N2QwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjNjODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMzRPYjJWIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmMmZjNDhiZDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ObEtaTFYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM0OGZkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52SU95STMgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2YyZmM0YWZkMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YjNkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNDQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGI2NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzRiNjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGJhNjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM0YmM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjNGMwNjAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMDAiLCJwc3MiOiIyMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM1MDA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1MjA2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzU0MDYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM1NjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmYzU2MDcwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM1ZTA3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udG9TZVVLIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZjNjAwNzAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjl4NjFEOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYxMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRDZ2tvdyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmYzYyMDcwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43dnJTZ2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2MzA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NDA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MjgwMCIsInNociI6ImU1MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmM2NTA3MDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjNjYwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzEwXSIsInBmIjo2LCJzYSI6IjdmMmZjNjYwODAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjJmYzZlMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMwOF0iLCJwZiI6Niwic2EiOiI3ZjJmYzZlMDkwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2YyZmM3NjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMDddIiwicGYiOjYsInNhIjoiN2YyZmM3NjBhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwMCIsInBzcyI6IjQwMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzdlMGEwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAwIiwicHNzIjoiNDAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjODIwYTAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMDAiLCJwc3MiOiI0MDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4NjBhMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGEwYTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YTJhMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiIyMDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhNmEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZjOGE4YTAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmM4YWNhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiYzQwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmYzhhZWEwMDAiLCJzeiI6ImM0MDAwIn0seyJicyI6eyJwcnYiOiJhMmYwMDAiLCJwc3MiOiJhZjQ4MDAiLCJzaHIiOiIyNTkwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmM4YmFlMDAwIiwic3oiOiIxYjY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjAsInNhIjoiN2YyZmNhNzE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjkwYTAwMCIsInBzcyI6IjkwYTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYm52aWRpYS1nbGNvcmUuc28uMzMxLjc5IiwicGYiOjcsInNhIjoiN2YyZmNhOTE1MDAwIiwic3oiOiJhOGIwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiMTkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiN2YyZmNiM2EwMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL3Rscy9saWJudmlkaWEtdGxzLnNvLjMzMS43OSIsInBmIjo1LCJzYSI6IjdmMmZjYjNiZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2IzYzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC90bHMvbGlibnZpZGlhLXRscy5zby4zMzEuNzkiLCJwZiI6Niwic2EiOiI3ZjJmY2I1YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQ1MDAwIiwicHNzIjoiNjE4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii91c3IvbGliL252aWRpYS0zNDAvbGliR0wuc28uMzMxLjc5IiwicGYiOjUsInNhIjoiN2YyZmNiNWMwMDAwIiwic3oiOiJkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIvbnZpZGlhLTM0MC9saWJHTC5zby4zMzEuNzkiLCJwZiI6MCwic2EiOiI3ZjJmY2I2OWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi9udmlkaWEtMzQwL2xpYkdMLnNvLjMzMS43OSIsInBmIjo3LCJzYSI6IjdmMmZjYjg5YzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjdmMmZjYjhkYzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmMmZjYjhmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzA2XSIsInBmIjo2LCJzYSI6IjdmMmZjYjhmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjJmY2MwZjQwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmMmZjYzE3ZjAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2YyZmNjMWU1MDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmMmZjY2JhMjAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGI5NjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2YyZmNkYmE2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmMmZjZGJhYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZGRhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2RkYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZGRhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmMmZjZGRhYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmMmZjZGRhZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2YyZmNkZmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2YyZmNkZmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmMmZjZGZiMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2RmYjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjJmY2UxYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2YyZmNlMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2UxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTFiODAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmMmZjZTFmMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2UzZjIwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTNmODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmMmZjZTNmYTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2U0MGMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmMmZjZTYwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmMmZjZTYwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNlNjBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmMmZjZTYwZjAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2YyZmNlNjhiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2YyZmNlODhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmMmZjZTg4YzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2U4OGYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2YyZmNlODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2YyZmNlYTk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmMmZjZWE5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2YyZmNlYTlhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2VhOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2YyZmNlYzljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VjOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjJmY2VjOWYwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmMmZjZWNjYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmMmZjZWVjYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjJmY2VlY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZWVjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2VlY2UwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2YyZmNlZjhhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjJmY2YxOGEwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2YxOTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmY2YxOTkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YxOWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmMmZjZjM5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmMmZjZjM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmNmMzlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmMmZjZjNhMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2YzYTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y1YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2YyZmNmNWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2YyZmNmNWE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmNmNWE2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjJmY2Y3YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y3YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZjdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2YyZmNmN2E4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmY2Y3YjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2YyZmNmOWFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjJmY2Y5YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjJmY2Y5YjEwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmMmZjZjljNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmMmZjZmJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZjZmJjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2YyZmNmYmM3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2YyZmNmYmNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2YyZmNmYmNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2YyZmNmYmNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZiY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjJmY2ZiY2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2YyZmNmYmYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjJmY2ZkZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjJmY2ZkZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2YyZmNmZGY1MDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjJmY2ZlMGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDAwMGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2YyZmQwMDEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDAwMTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2YyZmQwMDEyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDAwMWEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQwMjE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDAyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDIxYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQwMjFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDQxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQwNDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDA0MWUwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmMmZkMDRiZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmMmZkMDZiZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjJmZDA2YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMDZjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMDZjODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDA2ZWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmMmZkMDhlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMDhlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQwOGVlMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQwOTA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMGIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwYjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBiMDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDBiMGEwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2YyZmQwYjJhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDBkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDBkMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMGQyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMGQyZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmMmZkMGQzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQwZjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQwZjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDBmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2YyZmQwZjMyMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3ZjJmZDBmNGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3ZjJmZDExNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2YyZmQxMTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2YyZmQxMTRiMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmMmZkMTE1YTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmMmZkMTM1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3ZjJmZDEzNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3ZjJmZDEzNWMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2YyZmQxMzY3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2YyZmQxNTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmMmZkMTU2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxNTY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmMmZkMTU2OTAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3ZjJmZDE2MWYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmMmZkMTgxZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmMmZkMTgyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQxODI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmMmZkMTgyNzAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2YyZmQxODZhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2YyZmQxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmMmZkMWE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQxYTZkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDFhOGEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDFjOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQxYzhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDFjOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmMmZkMWM4ZDAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmMmZkMWNjYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjJmZDFlYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmMmZkMWVjYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDFlY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2YyZmQxZWQyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2YyZmQyMGQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmMmZkMjBkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyMGQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjJmZDIwZDQwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2YyZmQyMGYzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjJmZDIyZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjJmZDIyZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmMmZkMjJmNTAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2YyZmQyM2EyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2YyZmQyNWExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmMmZkMjVhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyNWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZjQwMCIsInNociI6IjVmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjJmZDI1YTgwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjJmZDI5ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjJmZDJiZDYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2YyZmQyYmRkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDJiZTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMmJlNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMmJlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQyYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2YyZmQyYmViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQyYmVlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDJkZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDJkZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkMmRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2YyZmQyZGYwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmMmZkMmUwZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2YyZmQzMDBmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2YyZmQzMDExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzAxMjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDMwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDMyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2YyZmQzMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDMyMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzIxZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzIyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkMzIyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzIyMjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmMmZkMzIzMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQzNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDM0MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2YyZmQzNDMzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDM0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2YyZmQzNjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDM2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkMzYzOTAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQzNzIyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQzOTIxMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkMzkyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzOTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTA4MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmMmZkMzkyYTAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmMmZkMzk4NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQzOThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1YTAwMCIsInBzcyI6IjVkODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQzOThjMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYTA2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2EwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjcwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2YyZmQzYTBiMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmMmZkM2E0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2YyZmQzYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2YyZmQzYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2M1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDNjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2YyZmQzYzVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkM2M1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkM2M1ZTAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDNjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDNjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDNjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkM2NhNzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmMmZkM2NhZjAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzY2Y5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2YyZmQzZWY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmMmZkM2VmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQzZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2YyZmQzZWZkMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2YyZmQzZjA4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjJmZDQxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjJmZDQxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxMGEwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxM2MwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTQwMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQxNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MTVkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE2MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDE3YTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDQxN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxODIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNDE4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MThkMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDE5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQxOTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDE5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIyYTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQxOTYwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDIxZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQyMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNDIyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDIyZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyMzgwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyNDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDI0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MjRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MjRiMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyYjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmJiMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0MmNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQyY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDJkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQyZDEwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ0MmU4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQyZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MmVkMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMDAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0MzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ0MzAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDQzMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDQzMDgwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDQzMjEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNDMyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ0MzI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3ZjJmZDQzMmEwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3ZjJmZDQzNTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2YyZmQ0NTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3ZjJmZDQ1NTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNDU1OTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ0NTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNDc1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ0NzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDQ3NWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2YyZmQ0NzVmMDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0N2IyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmMmZkNDliMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0OWIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDQ5YjQwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDRhYmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDRjYjkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ0Y2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDRjYmQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmMmZkNGNjMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2YyZmQ0Y2M5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmMmZkNGVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ0ZWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjJmZDRlY2EwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmMmZkNGVkMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjJmZDUwZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmMmZkNTBkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDUwZDQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ1MGQ2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2YyZmQ1MmQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmMmZkNTJkNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1MmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNTJkOTAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ1NDk0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDU2OTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDU2OTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNTY5OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDU2OWUwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmMmZkNTZiNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmMmZkNThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiI5MjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmMmZkNThiNDAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmMmZkNTk5YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3ZjJmZDViOTkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmMmZkNWJhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ1YmEzMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjJmZDViYjkwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmMmZkNWM1NjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmMmZkNWU1NTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjJmZDVlNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmMmZkNWU1YzAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDVmYzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2MWM3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDYxY2IwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNjFjZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDYxY2YwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2MWQ2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2M2Q1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjNkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2M2Q3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDYzZDgwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDYzZmYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2YyZmQ2NWZmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDY2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjYwMjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDY2M2EwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkNjgzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNjgzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2ODNjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNjgzZjAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2ODY3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2YTY3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkNmE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ2YTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDZhNmMwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ2YTkxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDZjOTAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNmM5NzAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDZkY2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ2ZmM5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDZmY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNmZkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDZmZDEwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDcwMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3MjBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDcyMGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkNzIwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkNzIwZTAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ3MzEzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDc1MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDc1MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ3NTE0MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkNzUyZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ3NzJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ3NzJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDc3MmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmMmZkNzczMjAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2YyZmQ3NzllMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2YyZmQ3OTllMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmMmZkNzlhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ3OWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkNzlhNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDc5YWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDdiYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3YmFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3ZjJmZDdiYWQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3ZjJmZDdiYmUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2YyZmQ3ZGJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3ZjJmZDdkYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2RiZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZGMxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmMmZkN2ZjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2YyZmQ3ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDdmYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmMmZkN2ZjMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2YyZmQ3ZmM1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmMmZkODFjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2YyZmQ4MWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDgxYzYwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3ZjJmZDgyZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDg0ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2YyZmQ4NGY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg0ZmIwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4NjAxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmMmZkODgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2YyZmQ4ODAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDg4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjJmZDg4MDQwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2YyZmQ4ODUzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjJmZDhhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjJmZDhhNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4YTU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOGE1ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGM1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CaHJadlAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2YyZmQ4YzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHBvblloIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM2MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3RtcC9nbDhmMktoTSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM2NjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4YzczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZGV2L252aWRpYTAiLCJwZiI6Niwic2EiOiI3ZjJmZDhjNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9kZXYvbnZpZGlhMCIsInBmIjo2LCJzYSI6IjdmMmZkOGM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2Rldi9udmlkaWEwIiwicGYiOjYsInNhIjoiN2YyZmQ4Yzc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjN2EwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjODIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGM4NTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDhjYTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNhOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhjYjQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4Y2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGNjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhjYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4Y2M1MDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQzZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGQ0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhkNDcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGQ1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhkNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOGQ1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZDVhMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZDY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZDY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzZjMDAiLCJzaHIiOiJhYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGQ2ODAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjU5MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOGY3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ4ZjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDhmNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDhmNzYwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ4ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDhmZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ4ZmUxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDhmZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOGZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ4ZmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWQ4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOGZlNjAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOTA4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwOGQwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkwOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MDlmMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5MGI0MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5MGQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkwZGEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTBkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTBkZTAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDkxMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDkxMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTEwZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOTExMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5MTE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOTExNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDkxMjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5MTI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkxMjcwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5MmVhMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOTMxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjQ5ODAwIiwic2hyIjoiZTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDkzMTMwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDk0ZjAwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDk1MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMzMDAwIiwic2hyIjoiOWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3ZjJmZDk1MTAwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNjAwMCIsInBzcyI6IjM2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWE4NjAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFiYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YWMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWFjNjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlhY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWFjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5YWNlMDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjJmZDlhZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YWZlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWIwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYTAwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliMDIwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI0ZDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjJmZDliNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjJmZDliNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI2OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjJmZDliNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI3MzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWI3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWI4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImY0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWI4MjAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWJkYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDliZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWJlNTAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDljMDMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5YzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5YzIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMyNDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5YzM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWMzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmQ5YzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiY2MwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWMzYzAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3ZjJmZDljZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3ZjJmZDljZDEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3ZjJmZDljZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkOWNkNjAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZDAxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWQwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDA1MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlkMWEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZDlkMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0OTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZDFmMDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmMmZkOWVjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjJmZDllYzkwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjJmZDllZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZWYxMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2YyZmQ5ZmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZDlmYzIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2YyZmQ5ZmNhMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjJmZDlmZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkOWZlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2YyZmQ5ZmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkOWZlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZWEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkOWZlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2YyZmQ5ZmVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZDlmZjAwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGEwMDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTAwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhMDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGEwMDUwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTExMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTExOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTFhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGExMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGExMmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTEzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhMTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGExMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMjQwMCIsInNociI6IjZjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhMTNhMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTM3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhMzc5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGEzODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTM4YzAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTNhODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhM2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2YyZmRhM2FiMDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE0OTgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNDlmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE0YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiOTljMDAiLCJzaHIiOiI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE0YTgwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTVjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYTVkMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRhNWQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE1ZDkwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTYxYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2MWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE2MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTYyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYTYyOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE2MmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjJlMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2YyZmRhNjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2YyZmRhNjNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGE2NDAwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGE2N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYTY3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2YyZmRhNjgwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGE2ODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDgwMCIsInNociI6ImE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhNjhhMDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmMmZkYTk5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjJmZGE5OWQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGE5YWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkYTliMTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxN2IwMDAiLCJzaHIiOiI0OTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2YyZmRhOWMyMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2YyZmRjNzY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTQwMDAiLCJwc3MiOiIxYTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzc2ODAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGM5MTEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzkxZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzkyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzkyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGM5MjQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRjOTQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk0YTAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2YyZmRjOTVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmMmZkYzk2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkYzk2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkYzk2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxOWMwMDAiLCJzaHIiOiI0ZDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkYzk2YTAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGQyNzAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZGMyMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGRkZDEwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRkZmIwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRkZTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMDkwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZGUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGRlMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyZjgwMCIsInNociI6Ijk0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGRlMmIwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTAyZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjEwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMDQyMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMWE0MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTFhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZTFhZjAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlMmJkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlMmMwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGUyYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxOWMwMCIsInNociI6IjU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlMmMzMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlNDIxMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlNDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGU0MzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzgwMCIsInNociI6IjE0ZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU0MzUwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTA3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlOTJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5MmQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZTkzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlOTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTM5MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2YyZmRlOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGU5N2EwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZTk3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlOTdmMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2YyZmRlOTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjJmZGU5OWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYTQwMCIsInNociI6Ijg1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGU5OWQwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWNhMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlY2M0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVjYzYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjNDAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlY2NlMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWQ4MjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWQ4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZDg3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZDk3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGJhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmMmZkZWRjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZGM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVkYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkYzYwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjJmZGVkZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVkZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVkZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZGQzMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWRlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2YyZmRlZGYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYjQwMCIsInNociI6IjI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjJmZGVkZjIwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU0ZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU1MjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU2ZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZTcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVlNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2YyZmRlZTczMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWU4OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmMmZkZWU4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMxODAwIiwic2hyIjoiZDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmMmZkZWU4ZDAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmMmZkZWZhZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjJmZGVmYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmMmZkZWZiNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjJmZGVmYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2YyZmRlZmJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjJmZGVmYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmZmZDk5NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZmZkOWJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6Ijk1YzQwMDAifX19LCJ0dHMiOjEzMTM1MCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmEifSx7InBpZCI6MTUyNTgsInRpZCI6MCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoibnVtX2NwdXMiLCJhcmdzIjp7Im51bWJlciI6NDB9fSwKK3sicGlkIjoxNTI1OCwidGlkIjoxNTMwNywidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoicHJvY2Vzc19zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotMX19LAoreyJwaWQiOjE1MjU4LCJ0aWQiOjE1MzA3LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJHUFUgUHJvY2VzcyJ9fSwKK3sicGlkIjoxNTI1OCwidGlkIjoxNTMwNywidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDaHJvbWVfQ2hpbGRJT1RocmVhZCJ9fSwKK3sicGlkIjoxNTI3NiwidGlkIjowLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0MH19LAoreyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0sCit7InBpZCI6MTUyNzYsInRpZCI6MTUyNzcsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InByb2Nlc3NfbmFtZSIsImFyZ3MiOnsibmFtZSI6IlJlbmRlcmVyIn19LAoreyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX2xhYmVscyIsImFyZ3MiOnsibGFiZWxzIjoiY2hyb21lOi8vdHJhY2luZyJ9fSwKK3sicGlkIjoxNTI3NiwidGlkIjoxNTI3NiwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi0xfX0sCit7InBpZCI6MTUyNzYsInRpZCI6MTUyNzYsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ3JSZW5kZXJlck1haW4ifX0sCit7InBpZCI6MTUyNzYsInRpZCI6MTUyNzcsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ2hyb21lX0NoaWxkSU9UaHJlYWQifX0sCit7InBpZCI6MTUyNzYsInRpZCI6MTUyNzgsInRzIjowLCJwaCI6Ik0iLCJjYXQiOiJfX21ldGFkYXRhIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ29tcG9zaXRvclRpbGVXb3JrZXIxLzE1Mjc4In19LAoreyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MTU3NjY1NDcwOTMwOSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjUzNGVkMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxMDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiJiNjgwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NzAwMCIsInBzcyI6IjU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDNjMGY0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZhOGQxZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MTZmODMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiJkYzZjMjgyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjI1MDAwIiwicHNzIjoiMjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg2MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg2NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjIwYTAwMCIsInBzcyI6IjIwYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NzAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NzQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyNzgwMDAiLCJwc3MiOiIyNzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTA0MDAwIiwic3oiOiIyNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2M3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZjcxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzMThlZGY4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGZhMDAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwZTNiZWMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcxMDFjZGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDE3YTYyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MWM5MDAwIiwic3oiOiIxMzcwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzczMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjM4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzYwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzcwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzdmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzEwMDAiLCJwc3MiOiIzMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5ZmYwMDAiLCJzeiI6IjFmN2NhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4NTAwMCIsInBzcyI6Ijg1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRkZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NDAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImNhMDAwIiwicHNzIjoiY2EwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODFmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgyMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODNmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNmU0NzFkZTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZmYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3Nzc5YTIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3OTA2NDgwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmUzZGQ5MzYxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzdmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTgyZDQ3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmViOTM0MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI0ZDQwMDAiLCJwc3MiOiI0ZDQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWM4MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkYzAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMDAiLCJwc3MiOiI1YTgwMCIsInNociI6ImI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWQwMDAiLCJwc3MiOiJkMjAwMCIsInNociI6IjJjZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjViYzAwIiwic2hyIjoiOTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMGIwMDAiLCJwc3MiOiIzNDVjMDAiLCJzaHIiOiI0ODcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiOGE4MDAiLCJzaHIiOiIxZmUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTVjMDAiLCJzaHIiOiI1ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6IjUxMDAwIiwic2hyIjoiOWEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTVjMDAiLCJzaHIiOiI4NjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjQzYzIwMDAifX19LCJ0dHMiOjg2ODg2LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoreyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MTU3NjY1NDgyNTEwNiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjY1YTlmMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxMDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiJiMmMwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjQ0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NzAwMCIsInBzcyI6IjU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDNjMGY0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZhOGQxZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MTZmODMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiJkYzZjMjgyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjI1MDAwIiwicHNzIjoiMjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg2MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg2NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjIwYTAwMCIsInBzcyI6IjIwYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NzAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NzQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyNzgwMDAiLCJwc3MiOiIyNzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTA0MDAwIiwic3oiOiIyNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2M3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZjcxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzMThlZGY4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGZhMDAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwZTNiZWMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcxMDFjZGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDE3YTYyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MWM5MDAwIiwic3oiOiIxMzcwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzczMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjM4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzYwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzcwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzdmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzEwMDAiLCJwc3MiOiIzMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5ZmYwMDAiLCJzeiI6IjFmN2NhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4NTAwMCIsInBzcyI6Ijg1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRkZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NDAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImNhMDAwIiwicHNzIjoiY2EwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODFmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgyMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODNmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNmU0NzFkZTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZmYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3Nzc5YTIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3OTA2NDgwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmUzZGQ5MzYxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzdmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTgyZDQ3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmViOTM0MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI1ZjQwMDAiLCJwc3MiOiI1ZjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiIxNDgwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6ImI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiJiOTQwMCIsInNociI6IjJkMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNzAwMCIsInBzcyI6IjVhODAwIiwic2hyIjoiOTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxZTkwMDAiLCJwc3MiOiIzMjc4MDAiLCJzaHIiOiI0YTkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiODcwMDAiLCJzaHIiOiIxZmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiI1ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6IjUxMDAwIiwic2hyIjoiOWEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY0MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjQ0ZWQwMDAifX19LCJ0dHMiOjEwMTYzNywiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmQifSwKK3sicGlkIjoxNTI3NiwidGlkIjoxNTI3NywidHMiOjE1NzY2NTQ4OTYxMTcsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiI3N2YxYTAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMTAwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiYjA4MDAiLCJzaHIiOiIyMDIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTA0MDAiLCJzaHIiOiI0NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiIxYWMwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTcwMDAiLCJwc3MiOiI1NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNGY2YzYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQzYzBmNDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2YThkMWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODE2ZjgzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiZGM2YzI4MjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIyNTAwMCIsInBzcyI6IjIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NjAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NjQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIyMGEwMDAiLCJwc3MiOiIyMGEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTBkODcwMDAwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTBkODc0MDAwMDAiLCJzeiI6ImMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMjk0NGNhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2EwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjc4MDAwIiwicHNzIjoiMjc4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwNDAwMCIsInN6IjoiMjc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNjN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGY3MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiIxYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMzE4ZWRmODAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMzE4ZWRmYTAwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBlM2JlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGUzYmVjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzEwMWNkYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MTAxY2RjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQxN2E2MjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzFjOTAwMCIsInN6IjoiMTM3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzczMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzczMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzgwMDAiLCJwc3MiOiIzODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc2MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc2M2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc3MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc3ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzhmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3OTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMxMDAwIiwicHNzIjoiMzEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3OTA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OWZmMDAwIiwic3oiOiIxZjdjYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODUwMDAiLCJwc3MiOiI4NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZGZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTQwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNTAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJjYTAwMCIsInBzcyI6ImNhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgxZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjUyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgzZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2ZTQ3MWRlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjZlNDcxZGUxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGZmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzc3OWEyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjc5MDY0ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzkwNjQ4MDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZTNkZDkzNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJlM2RkOTM2MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM3ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmU4MmQ0NzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZlYjkzNDAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiI3MTUwMDAiLCJwc3MiOiI3MTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiIxNDQwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6ImI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiJiMzQwMCIsInNociI6IjJkNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZjAwMCIsInBzcyI6IjU2ODAwIiwic2hyIjoiOTkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxYTEwMDAiLCJwc3MiOiIyZmFjMDAiLCJzaHIiOiI0ZjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiODY4MDAiLCJzaHIiOiIxZmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwMCIsInNociI6IjU4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiNTEwMDAiLCJzaHIiOiI5YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjQwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNDYxMjAwMCJ9fX0sInR0cyI6MTIxMjM3LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYyJ9LAoreyJwaWQiOjE1Mjc2LCJ0aWQiOjE1Mjc3LCJ0cyI6MTU3NjY1NTA0MjU0OSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjhhNTY4MCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIxMDAwMDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNDQwMDAiLCJwc3MiOiJiMDgwMCIsInNociI6IjIwMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxMDQwMCIsInNociI6IjQ1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIxYTAwMCIsInBzcyI6IjFhYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NzAwMCIsInBzcyI6IjU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjN2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNDNjMGY0MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZhOGQxZTAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MTZmODMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6NSwic2EiOiJkYzZjMjgyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjI1MDAwIiwicHNzIjoiMjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg2MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg2NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjIwYTAwMCIsInBzcyI6IjIwYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NzAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NzQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyNzgwMDAiLCJwc3MiOiIyNzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTA0MDAwIiwic3oiOiIyNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2M3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZjcxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEzMThlZGY4MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGZhMDAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcwZTNiZWMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTcxMDFjZGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZDE3YTYyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MWM5MDAwIiwic3oiOiIxMzcwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzMwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzczMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc0MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc1MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzYwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzODAwMCIsInBzcyI6IjM4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzYwNjAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzcwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzcwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzdmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3ODAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3ODA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OGZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc5MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzEwMDAiLCJwc3MiOiIzMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc5MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5ZmYwMDAiLCJzeiI6IjFmN2NhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI4NTAwMCIsInBzcyI6Ijg1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGMwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRkZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1NDAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRmZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwMCIsInBzcyI6IjQwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlODJiNTAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUxZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImNhMDAwIiwicHNzIjoiY2EwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODFmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgyMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjE5ZWU4MjA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODNmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNmU0NzFkZTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZmYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3Nzc5YTIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI3OTA2NDgwMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgxZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6IjJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJkMjQ5ZGUwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmUzZGQ5MzYxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzdmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTgyZDQ3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZmViOTM0MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM0ZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNGU5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MDkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMGMwMCIsInNociI6IjkwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1MjkwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE1MTAwMCIsInBzcyI6IjE3NjgwMCIsInNociI6ImJjMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTYwMDAwIiwic3oiOiIyMmYwMDAifSx7ImJzIjp7InBydiI6IjgzZDAwMCIsInBzcyI6IjgzZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM3OGYwMDAiLCJzeiI6ImUwODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiIxYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTI0NDNhYjIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzYTI0NDNhZjIwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNhM2E4MjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiI5ZDAwMCIsInBzcyI6IjlkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNiMmVlZjMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJkZDAwMCIsInBzcyI6ImRkMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNjMmYyMzMwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0YzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNkNmVlMjRjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNkNmVlMjRkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZGozWG52IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YSDRuSDUgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkI1UE8wRiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucmR5aWtnIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjczNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wN2NORFEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNzc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlzMktYcSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3YjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUzU1YTRwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjhmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5idlkzcEwgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOTc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnl0RGQ2cSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI5YjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDdoZXVNIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmEzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNkVSQk4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkphcVJqdCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSDQ4UjE4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmI3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52ek9xS08gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxQSDBzdSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSlI0Q2JhIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmMzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CT2tnVVAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYzc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBaUVZDdiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uaW1uS2gxIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmQwMDAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL2RlamF2dS9EZWphVnVTYW5zLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YmQ0MDAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5sQTBKZVMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZGY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmZhTkNYeCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSGpyd0dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmU3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5GUnd0cFQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlJpTnI4eSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOW9rdFJlIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmYzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5WY0l2QVUgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZjc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnc2Z01CQiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTmxLWkxWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmZmNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL1RpbWVzX05ld19Sb21hbi50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWMyMWYwMDAiLCJzeiI6IjUxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL21zdHRjb3JlZm9udHMvQXJpYWxfQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWMyNzAwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uNzMwcDZtIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucnlOZkJwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzJmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFBjZHRzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzMzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uMzRPYjJWIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS52SU95STMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjM2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6ImEwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL2RlamF2dS9EZWphVnVTYW5zTW9uby50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWMzZjYwMDAiLCJzeiI6IjUyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWM0NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMyMF0iLCJwZiI6Niwic2EiOiI3Zjk5NWM0NDkwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjYzQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjFdIiwicGYiOjYsInNhIjoiN2Y5OTVjYzRhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZDQ0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzE3XSIsInBmIjo2LCJzYSI6IjdmOTk1ZDQ0YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWRjNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk1ZGM0YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIyMmYwMDAiLCJwc3MiOiIyMmY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcUdJMzMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlNDRjMDAwIiwic3oiOiI0MDEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udG9TZVVLIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTg0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjl4NjFEOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU5NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRDZ2tvdyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWVhNGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU4MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43dnJTZ2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYjRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZWM0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzEyXSIsInBmIjo2LCJzYSI6IjdmOTk1ZWM0ZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1ZjQ4YTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZjRjZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk2XSIsInBmIjo2LCJzYSI6IjdmOTk1ZjRjZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkxaemM3cCAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NWZjY2YwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWZjZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4N10iLCJwZiI6Niwic2EiOiI3Zjk5NWZjZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwNGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzldIiwicGYiOjYsInNhIjoiN2Y5OTYwNGYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MGNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc4XSIsInBmIjo2LCJzYSI6IjdmOTk2MGNmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjE0ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3N10iLCJwZiI6Niwic2EiOiI3Zjk5NjE0ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MWNmMzAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjFkNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYxZjZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmOTk2MWY3MjAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmOTk2MjAyNjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmOTk2MjIyNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMjgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjIyMmIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MjI2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI0NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyNDZkMDAwIiwic3oiOiIxMjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MjU5MTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MjVhODAwMCIsInN6IjoiYjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjI2NWYwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjAsInNhIjoiN2Y5OTYyNjkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjQsInNhIjoiN2Y5OTYyODhmMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2MjhhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjhjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYyOGEzMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg2ODAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODlhMDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzYTQ5MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYjdlMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6IjE0NDAwIiwic2hyIjoiMmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2MwOTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxMWMwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3Zjk5NjNjNmYwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y5OTY0NjJjMDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI0YzAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTYyMDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1NjMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmOTk2NTYzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NTgzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmOTk2NTgzNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmOTk2NTgzODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y5OTY1YTM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y5OTY1YTM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NWEzYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjVhNDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjVjM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWM0MjAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NWM3ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjVlN2MwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ZTgyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY1ZTg0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NWU5NjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY2MDk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3Zjk5NjYwOTkwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmOTk2NjExNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmOTk2NjMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmOTk2NjMxNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjYzMTkwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY2MzIzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NTIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NTI0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY1MjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y5OTY2NzI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjcyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY3MjkwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2Njc1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY2OTU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y5OTY2OTU4MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2NmExNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y5OTY2YzE0MDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjZjMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZjMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZjMjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NmUyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NmUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmUyYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjZlMmMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcwMmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MDJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MDJlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MDMwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjcyMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTY3MjMyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcyM2EwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTY3NDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njc0M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTY3NDNiMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5Njc0NGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5Njc2NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTY3NjRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2NzY1MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmOTk2NzY1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2NzY1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY3NjU4MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2NzY3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY3ODdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY3ODdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2Nzg3ZjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY3ODk5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjdhOTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY3YTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2E5YzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3YWE0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2NhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3Y2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdjYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2NhNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2VhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjdlYTgwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmOTk2N2Y0OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmOTk2ODE0OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ODE1MjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjgxNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ODM3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ODM3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4Mzc4MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4MzhmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODU4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njg1OTQwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTY4NWI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njg3YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODdiNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODdiYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4OWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y5OTY4OWJjMDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3Zjk5Njg5ZDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3Zjk5NjhiZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y5OTY4YmQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmOTk2OGJkNTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3Zjk5NjhiZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3Zjk5NjhkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y5OTY4ZGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmOTk2OGRlNjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3Zjk5NjhkZjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3Zjk5NjhmZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3Zjk5NjhmZjMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y5OTY5MGE5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3Zjk5NjkyYTkwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5NjkyYjEwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmOTk2OTJmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2OTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2OTRmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5Njk0ZjcwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2OTUxNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2OTcxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY5NzE3MDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY5NzU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmOTk2OTk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY5OTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTk1NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk5NWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjliNWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3Zjk5NjliNWUwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y5OTY5YjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3Zjk5NjlkN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3Zjk5NjlkN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTY5ZDdmMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NjllMmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTAyYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTAyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhMDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2YTAzMjAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2YTQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmOTk2YTY2MDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmOTk2YTY2NzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjZiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmE2NmUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmE2NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY3NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YTY3NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2YTY3ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhODc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhODc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3Zjk5NmE4N2EwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y5OTZhODk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmOTk2YWE5OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmOTk2YWE5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFhOWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhYWE1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZhY2E0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhY2E3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhY2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhY2FiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhY2FjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhY2JiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZhZWJkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFlYzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZiMGMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIwYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZiMGMzMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmIxYWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIzYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiM2I0MDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0MTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjQxNjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNDhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDkwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNDk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y5OTZiNDk1MDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmOTk2YjRkOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y5OTZiNmQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y5OTZiNmQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZGEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI2ZTgwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNzJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiNzM5MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI3ODMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2Yjk4MzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2Yjk4NzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjk5MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiYjkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiYjkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmI5NDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJjYTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmJkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmJlYjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzE3MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMyMDAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2E5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2I4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2MyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2QyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNkNTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNDAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNDUwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNWIwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNzIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkNzcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDhhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ4ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOTIwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkYWIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3Zjk5NmJkYjQwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3Zjk5NmJkZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y5OTZiZmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3Zjk5NmJmZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmZlMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZmU3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YzFlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzFlOTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmOTk2YzIzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM0M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmOTk2YzQzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM0M2UwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM1NDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzc0MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNzRhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmM3NTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmOTk2Yzk1NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y5OTZjOTVkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmOTk2Y2I1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y5OTZjYjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2Y2I1ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmNiNjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmNkNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI3YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmNkNjMwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2Y2YxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmQxMWQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQxMjgwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ZDEzZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDMzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmOTk2ZDMzZTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmOTk2ZDQyNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3Zjk5NmQ2MjMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkNjJkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y5OTZkNjQzMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQ2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3Zjk5NmQ4ZGYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y5OTZkOGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmQ4ZTYwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkYTUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTZkYzUxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZGM1OTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmRjNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmRlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZGU2MjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGU4OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZTA4OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y5OTZlMDhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMDhjMDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTBjNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlMmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlMmM5MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUyZjEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTRmMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTRmNjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU1MWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTcxYTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTcyMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3OTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTcyMTAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmU4NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVhNTMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmVhNWIwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmVhOTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmVjOTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMmYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlYzk4MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVkOWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWY5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZWY5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVmOWUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZmI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmYxYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmYxYmMwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmOTk2ZjIyODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmOTk2ZjQyODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY0MzEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNDM2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmNjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZjYzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNjM3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmNjQ4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmOTk2Zjg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmODQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY4NDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2Zjg0YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZhNGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmE0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZjNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmM0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZjNTAwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZkODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmZmODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZmODEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmY4NTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAwOGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwMjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTcwMjhlMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDJkZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y5OTcwNGRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwNGRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDRkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA0ZTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQmhyWnZQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRwb25ZaCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wVHRzRkkgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzA0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MGYwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MmMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MzUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDczYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDczZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczZTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDc0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDc0ZjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3YzkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZDEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwN2RiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2RmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2UyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2U0MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2YwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjU2ODAwIiwic2hyIjoiYjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZjIwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWUzMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZjYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA5ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwOWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGEwMDAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGE2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTcwMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjE3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjI5MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIzZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiNjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjY4MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGI5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjk2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjk5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOWYwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiYWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiYjEwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBkNzQwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZDljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBkOWQwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjVjMDAiLCJzaHIiOiIxZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGY3YTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGY5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6ImIzNDAwIiwic2hyIjoiMmQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZjlhMDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTUwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiIzNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTUxMDAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU0NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNTRiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1MDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU1ODAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTg4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNThiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1OGMwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVkNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZDcwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVlZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmMzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVmZDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTYwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2MGMwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2NjQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY2ZjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTY4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2OGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTY4ZDAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2YWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZhYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZhZTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YzYwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNzVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3NWIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3NWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3NjAwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzhiMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc4ZjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3YTQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTdhOTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE5NTMwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE5N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxOTdiMDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNGMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNTQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE2NjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNmIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhNzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhN2EwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE4YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYThkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE4ZjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYjliMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJhNDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxYmIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJjNDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFlMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUwMzAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTBmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUxNjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTMyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMzUwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWYyMjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWYyOTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxZjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjExMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWYzMjAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMDUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMDUyMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwNWEwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjA2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjA2MzAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGNhMDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIxMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMTBhMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIxMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJmMDAwIiwicHNzIjoiNTY4MDAiLCJzaHIiOiI5OTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjExNDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzI0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzI0MjcwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzI0MzkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjQzYjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjE5ZjAwMCIsInBzcyI6IjJmOTQwMCIsInNociI6IjRmMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzI0NGMwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1M2MwMCIsInNociI6IjFhNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQxZjIwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDM5NjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc0MzliMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2FlMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2QxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Q0MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2U5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZWEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzQzZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiI4NjQwMCIsInNociI6IjFmZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2Y0MDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI5YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1N2IxMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4NGMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NTg1YjAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg4NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ODkxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4OTMwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NThiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzU4YjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1OGI1MDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWFiODAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVhY2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVhY2MwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVjMmUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YzM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVjMzkwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZDQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiNTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVkNGQwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWVhYjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYmMwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWViZjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjM5MTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYjcwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2MyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNjMzAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NjQwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MDQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDA5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiI1MTAwMCIsInNociI6IjlhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MjcwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NzJiMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY3NGUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njc1MDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njc1ODAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjgwYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODExMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODIxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NDQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODUwMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2ODVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1ZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4N2MwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGQ3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZGMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhmOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhmZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjkxMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjkxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE2NDAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjkxNzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmEzODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhNDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmY1OTU0NjAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmY1OTVjNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI0NzM3MDAwIn19fSwidHRzIjoxMzg5MjgsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJiIn0sCit7InBpZCI6MTUyNzYsInRpZCI6MTUyNzcsInRzIjoxNTc2NjU1MTM1NzQ1LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiOWNiYTIwIn0sInNpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoiYnl0ZXMiLCJ2YWx1ZSI6IjEwMDAwMDAifX19fSwicHJvY2Vzc19tbWFwcyI6eyJ2bV9yZWdpb25zIjpbeyJicyI6eyJwcnYiOiI0NDAwMCIsInBzcyI6ImIwODAwIiwic2hyIjoiMjAyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjEwNDAwIiwic2hyIjoiNDUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjQsInNhIjoiMjRiNjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjYsInNhIjoiMjY3NjAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjFhMDAwIiwicHNzIjoiMWFjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjY4ZTAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE0ZjZjNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNGY2YzYwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM2MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU3MDAwIiwicHNzIjoiNTcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTRmNmM2MDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM3ZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0M2MwZjQwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmE4ZDFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjgxNmY4MzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6ImRjNmMyODIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMjUwMDAiLCJwc3MiOiIyMjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTBkODYwMDAwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTBkODY0MDAwMDAiLCJzeiI6ImMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjBhMDAwIiwicHNzIjoiMjBhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6ImUwZDg3MDAwMDAwIiwic3oiOiI0MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6ImUwZDg3NDAwMDAwIiwic3oiOiJjMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2EwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTI5NDRjYTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjI3ODAwMCIsInBzcyI6IjI3ODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMjk0NGNhMDQwMDAiLCJzeiI6IjI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYzdjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMzE4ZWRmNzEwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTMxOGVkZjgwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTMxOGVkZmEwMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcwZTNiZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzBlM2JlYzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBlM2JlZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTcxMDFjZGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNzEwMWNkYzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzEwMWNkZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFkMTdhNjIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzcxYzkwMDAiLCJzeiI6IjEzNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3MzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzczMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3MzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NDAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc0MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NDA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc1MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzUwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NTA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc2MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM4MDAwIiwicHNzIjoiMzgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NjA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3NjNlMDAwIiwic3oiOiJjMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3NzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc3MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImY5MDAwIiwicHNzIjoiZjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NzA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3N2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc4MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc4MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc4ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzkwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMTAwMCIsInBzcyI6IjMxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzkwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzlmZjAwMCIsInN6IjoiMWY3Y2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGMwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0YzAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRjMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6Ijg1MDAwIiwicHNzIjoiODUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0YzA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGRmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0ZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjRlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjU0MDAwIiwicHNzIjoiNTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI0ZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGZmYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI1MDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTgyYjUwMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAwIiwicHNzIjoiNDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWU4MmI1MDA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNTFmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiY2EwMDAiLCJwc3MiOiJjYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MWZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgyMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjIxOWVlODIwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTMwMDAiLCJwc3MiOiI1MzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyMTllZTgyMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4M2ZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNmU0NzFkZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2ZTQ3MWRlMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2ZTQ3MWRmZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjc3NzlhMjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI3OTA2NDgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjc5MDY0ODAxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjc5MDY0ODFmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGUwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmQyNDlkZTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZDI0OWRlMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjJiMDAwIiwicHNzIjoiMmIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmQyNDlkZTA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmUzZGQ5MzYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZTNkZDkzNjEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZTNkZDkzN2YwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJlODJkNDcwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJmZWI5MzQwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzRlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiIxOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM0ZTkwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzMmE0MGM1MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUwOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEwYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzUyOTAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUxMDAwIiwicHNzIjoiMTc2ODAwIiwic2hyIjoiYmMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMmE0MGM1NjAwMDAiLCJzeiI6IjIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTY0MDAwIiwicHNzIjoiOTY0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzc4ZjAwMCIsInN6IjoiZTA4MDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNhMjQ0M2FiMjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNhMjQ0M2FmMjAwMCIsInN6IjoiMWMwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EzYTgyMzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjlkMDAwIiwicHNzIjoiOWQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2IyZWVmMzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6ImRkMDAwIiwicHNzIjoiZGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2MyZjIzMzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNkNmVlMjRjMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2Q2ZWUyNGMxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGRmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kajNYbnYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNjc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhING5INSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2YjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQjVQTzBGIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yZHlpa2cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNzM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnA3Y05EUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXMyS1hxIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjdiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5TNTVhNHAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOGY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmJ2WTNwTCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI5NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueXREZDZxIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjliNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UN2hldU0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ2RVJCTiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uSmFxUmp0IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmIzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5INDhSMTggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZ6T3FLTyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFBIMHN1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KUjRDYmEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYzM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJPa2dVUCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFpRVkN2IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5pbW5LaDEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZDAwMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y5OTViZDQwMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmxBMEplUyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZmFOQ1h4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmUzNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5IanJ3R2QgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkZSd3RwVCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uUmlOcjh5IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmVmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45b2t0UmUgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlZjSXZBVSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udzZnTUJCIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5ObEtaTFYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmY2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL21zdHRjb3JlZm9udHMvVGltZXNfTmV3X1JvbWFuLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YzIxZjAwMCIsInN6IjoiNTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbF9Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YzI3MDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS43MzBwNm0gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5yeU5mQnAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wUGNkdHMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMzM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS4zNE9iMlYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVjMzc2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnZJT3lJMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnNNb25vLnR0ZiIsInBmIjo0LCJzYSI6IjdmOTk1YzNmNjAwMCIsInN6IjoiNTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1YzQ0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIwXSIsInBmIjo2LCJzYSI6IjdmOTk1YzQ0OTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWNjNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMyMV0iLCJwZiI6Niwic2EiOiI3Zjk5NWNjNGEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkNDRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTddIiwicGYiOjYsInNhIjoiN2Y5OTVkNDRiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZGM0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTVkYzRjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjIyZjAwMCIsInBzcyI6IjIyZjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRxR0kzMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU0NGMwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS50b1NlVUsgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlODRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uOXg2MUQ4IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTk0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZENna293IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWE0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTgwMCIsInNociI6ImIwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjd2clNnZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWViNGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVlYzRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMTJdIiwicGYiOjYsInNhIjoiN2Y5OTVlYzRlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL21zdHRjb3JlZm9udHMvQXJpYWwudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVmNDhhMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmNGNlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTZdIiwicGYiOjYsInNhIjoiN2Y5OTVmNGNmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk1ZmNjZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1ZmNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg3XSIsInBmIjo2LCJzYSI6IjdmOTk1ZmNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjA0ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OV0iLCJwZiI6Niwic2EiOiI3Zjk5NjA0ZjEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYwY2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzhdIiwicGYiOjYsInNhIjoiN2Y5OTYwY2YyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MTRmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc3XSIsInBmIjo2LCJzYSI6IjdmOTk2MTRmMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYxY2YzMDAwIiwic3oiOiI3ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2MWQ2YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjFmNmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NjFmNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y5OTYxZjcyMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y5OTYyMDI2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjQsInNhIjoiN2Y5OTYyMjI2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmOTk2MjIyODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyMjJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjIyYjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYyMjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNDZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NjI0NmQwMDAiLCJzeiI6IjEyNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjQsInNhIjoiN2Y5OTYyNTkxMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MjVhNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE4MDAwIiwic3oiOiJiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2MjY1ZjAwMCIsInN6IjoiMzEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjI2OTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjI4OGYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjYsInNhIjoiN2Y5OTYyOGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiOGMwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjI4YTMwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xvY2FsZXMvZW4tVVMucGFrIiwicGYiOjQsInNhIjoiN2Y5OTYzODY4MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8yMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4OWEwMDAiLCJzeiI6IjFhZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjNhNDkwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNiN2UwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiMTNjMDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y5OTYzYzA5MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjExYzAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmOTk2M2M2ZjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3Zjk5NjQ2MmMwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjRjMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1NjIwMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjU2MzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1NjM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ODMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NTgzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y5OTY1ODM2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y5OTY1ODM4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3Zjk5NjVhMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3Zjk5NjVhMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY1YTNhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmOTk2NWE0MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2NWMzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjVjNDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY1YzQyMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY1YzdkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NWU3YzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjVlODIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVlODQwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY1ZTk2MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjYwOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjYwOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NjA5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmOTk2NjA5OTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y5OTY2MTE1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y5OTY2MzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y5OTY2MzE2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjMxOTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjYzMjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY1MjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjY1MjQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmOTk2NjUyNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY3MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmOTk2NjcyNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjcyOTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NzU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3Zjk5NjY5NTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y5OTY2OTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3Zjk5NjY5NTgwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y5OTY2YTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3Zjk5NjZjMTQwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmOTk2NmMyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NmMyMzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmMyODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY2ZTI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY2ZTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2ZTJhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NmUyYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzAyYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjcwMmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcwMmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjcwMzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzIyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzIzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjcyMzIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2NzIzYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njc0MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzQzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5Njc0M2IwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2NzQ0ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2NzY0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY3NjUxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY3NjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY3NjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTY3NjU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTgwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY3NjdkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njc4N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njc4N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY3ODdmMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njc4OTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2N2E5ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjdhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3YTljMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdhYTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3Y2EzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2N2NhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY3Y2E3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2N2VhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3ZWE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmOTk2N2VhODAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y5OTY3ZjQ5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y5OTY4MTQ5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmOTk2ODE1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y5OTY4MTUyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmOTk2ODE3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y5OTY4Mzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y5OTY4Mzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjgzNzgwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjgzOGYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTY4NThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg1OTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ODU5NDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njg1YjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmOTk2ODdiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmOTk2ODdiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTY4N2I3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTY4N2JhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njg5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ODliYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3Zjk5Njg5YmMwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmOTk2ODlkNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmOTk2OGJkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3Zjk5NjhiZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y5OTY4YmQ1MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmOTk2OGJlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmOTk2OGRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3Zjk5NjhkZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y5OTY4ZGU2MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmOTk2OGRmMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmOTk2OGZmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3Zjk5NjhmZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmOTk2OGZmMzAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3Zjk5NjkwYTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmOTk2OTJhOTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmOTk2OTJhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5MmIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2OTJiMTAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y5OTY5MmY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y5OTY5NGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y5OTY5NGY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2OTRmNzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTY5NTE0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTY5NzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2OTcxNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk3MTcwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3Zjk5Njk3NTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY5OTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3Zjk5Njk5NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY5OTU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmOTk2OTk1YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2OWI1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjliNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2OWI1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmOTk2OWI1ZTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3Zjk5NjliN2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmOTk2OWQ3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmOTk2OWQ3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NjlkN2YwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmOTk2OWUyYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhMDJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhMDJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y5OTZhMDMyMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTZhNDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y5OTZhNjYwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y5OTZhNjY3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NmIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YTY2ZTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YTY3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YTY3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhNjc0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhNjc1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTZhNjc4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmE4NzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmE4NzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmOTk2YTg3YTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3Zjk5NmE4OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y5OTZhYTk5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y5OTZhYTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWE5YzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFhYTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmFjYTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZhY2E1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmFjYTcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmFjYWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmFjYWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFjYWMwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmFjYmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWViYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YWViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmFlYmQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWVjMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmIwYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjBjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmIwYzMwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2YjFhYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjNhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmIzYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmIzYjQwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQxMTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNDE2MDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI0OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI0OTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNDkzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3Zjk5NmI0OTUwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y5OTZiNGQ5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZkYTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjZlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI2ZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYjAwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjZlODAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmI3MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmI3MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI3MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjczMTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI3MzkwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmOTk2Yjc4MzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTZiOTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2Yjk4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y5OTZiOTg3MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiOTkyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmJiOTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3Zjk5NmJiOTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYjk0MDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJiYzYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmNhMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYmRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJkZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmUyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYmViMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwNDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMxNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMTcwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYzFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzIwMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYTkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2I1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYjgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiY2MwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjYzIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiY2Q0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiYjQwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiY2Q1MDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ0MDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDQ0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ0NTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ1YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ3MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ3NzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJkOGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDhkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmQ5MjAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmRhYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmOTk2YmRiNDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmOTk2YmRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3Zjk5NmJmZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmOTk2YmZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZmUzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJmZTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZjMWU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmMxZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YzFlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y5OTZjMWU5MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjMjNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmOTk2YzQzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNDNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YzQzZTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmOTk2YzU0NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNzQzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzc0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmM3NGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmOTk2Yzc1MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM5NTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2Yzk1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y5OTZjOTU0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmM5NWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y5OTZjYjVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3Zjk5NmNiNWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZjYjVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2Y2I2MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2Y2Q2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmNkNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjdjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2Y2Q2MzAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZjZjFlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZDExZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZDEyMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDEyODAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y5OTZkMTNlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTZkMzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y5OTZkMzNlMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y5OTZkNDI0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmOTk2ZDYyMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y5OTZkNjJiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3Zjk5NmQ2NDMwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmOTk2ZDZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmOTk2ZDhkZjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQ4ZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZDhlNjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRhNTIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmRjNTEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTZkYzU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZkYzU5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZGM2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZGU1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmRlNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkZTYyMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y5OTZkZTg5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y5OTZlMDg5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmUwOGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUwOGMwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMGM0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmUyYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmUyYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmUyYzkwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTJmMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNGYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTRmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNGY2MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTUxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlNzFhMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNzIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6Ijc5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlNzIxMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZTg1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZWE1MzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlYTU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVhNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmOTk2ZWE1YjAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmOTk2ZWE5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmOTk2ZWM5NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y5OTZlYzk2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIyZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmVjOTgwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWQ5ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlZjljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlZjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWY5ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmVmYjcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZjFiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZjFiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmOTk2ZjFiYzAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y5OTZmMjI4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y5OTZmNDI4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmOTk2ZjQyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZmNDMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjQzMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY0MzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY2MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmNjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmY2MzcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY2NDgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY4NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2Zjg0OTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZmODRiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmE0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYTRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmE0ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZmYTRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmM0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTZmYzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZmM1MDAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmOTk2ZmQ4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZmY4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZmY4MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZmZjg1MDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk3MDA4YjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzAyOGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzAyOGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NzAyOGUwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMmRkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3Zjk5NzA0ZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NzA0ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNGRmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDRlMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CaHJadlAgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHBvblloIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBUdHNGSSAoZGVsZXRlZCkiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDZmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nY29udi9nY29udi1tb2R1bGVzLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y5OTcwNmZkMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3MDQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwZjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcyYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcyZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDczNTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3M2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDczYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzNlMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDc0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzRmMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdjOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkMTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA3ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2RjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3ZTQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFjMDAwIiwicHNzIjoiNTY4MDAiLCJzaHIiOiJiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdmMjAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZTMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDlmNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmNjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDlmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzA5ZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwOWZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTAwMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBhNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYTZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGE2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhNzAwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiMTcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiMjkwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiM2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjNlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI2NDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiNjgwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiOTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBiOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5ZjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGJhZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGJiMTAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGQ3NDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBkOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGQ5ZDAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNWMwMCIsInNociI6IjFlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZjdhMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwZjk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiYWZjMDAiLCJzaHIiOiIyZDkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBmOWEwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNTBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjM2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTEwMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTQ2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1NGIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTUwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNTU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNTU4MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ODgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNThhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTU4YzAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTVkNzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWVkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWYzMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWZkMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTYwYzAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY2NDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjZmMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNjhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2OGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTY4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjhkMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTZhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNmFiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmFlMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTZjNjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE3NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc1YjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTc1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTc2MDAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE3OGIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzhmMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTdhNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTdhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxN2E5MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTk1MzAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTk3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE5N2IwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE0YzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE1NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTY2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE2YjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYTczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWE3YTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYThiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhOGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYThmMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiOWIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmE0MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzFiYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWJiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxYmI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWJiNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmM0MDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWUwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZTAzMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFlMGYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTE2MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MWUzNTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxZjIyMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZjI5MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzFmMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZjMyMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIwNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzIwNTIwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjA1YTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMDYzMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBhNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBhOTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGIzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBiODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjBjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjBjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwY2EwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzIxMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzIxMGEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MjExMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmYwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6Ijk5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMTE0MDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjQyNzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjQzOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyNDNiMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkzMDAwIiwicHNzIjoiMmYyNDAwIiwic2hyIjoiNGZmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjQ0YzAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjUzYzAwIiwic2hyIjoiMWE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDFmMjAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0Mzk2MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiYjQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzQzOWIwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzYWUwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzQzZDEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZDQwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNlYTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3NDNmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6Ijg1YzAwIiwic2hyIjoiMWZmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzQzZjQwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZWMwMCIsInNociI6IjliMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU3YjEwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg0YzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ODViMDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODg1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4OTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NTg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NTg5MzAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1OGIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NThiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4YjUwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YWI4MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWFjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWFjYzAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWMyZTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVjMzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWMzOTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVkNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWQ0YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiI1ODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NWQ0ZDAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1ZWFiMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJiYzAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZWJmMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2MzkxMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjNiNzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2M2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzYzYzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2MzMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc2NDAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQwNDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY0MDkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6IjUxMDAwIiwic2hyIjoiOWEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQyNzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY3MmIwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njc0ZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2NzUwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NzU4MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODBjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTEwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4MjEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3Njg0NDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NTAwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY4NWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4NWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODVkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg3YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg3YzAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZDcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OGRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjhkYzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OGY5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGZkMDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2OTEzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2OTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTY0MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OTE3MDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTM4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmEzZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NmE0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjEwMDAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjU5NTQ2MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjU5NWM1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjQ4NWUwMDAifX19LCJ0dHMiOjE2MDEzOSwiaWQiOiIweGFmNTkzYjRjODVlZmRjZjgifSwKK3sicGlkIjoxNTI3NiwidGlkIjoxNTI3NywidHMiOjE1NzY2NTUyMzQ5NzAsInBoIjoidiIsImNhdCI6ImRpc2FibGVkLWJ5LWRlZmF1bHQtbWVtb3J5LWR1bXBzIiwibmFtZSI6IlRBU0tfRU5EIiwiYXJncyI6eyJkdW1wcyI6eyJhbGxvY2F0b3JzIjp7Im1hbGxvYyI6eyJhdHRycyI6eyJhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJvYmplY3RzIiwidmFsdWUiOiIwIn0sImlubmVyX3NpemUiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjogImJ5dGVzIiwidmFsdWUiOiJhZWYzOTAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMTAwMDAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6IjQ0MDAwIiwicHNzIjoiYjA4MDAiLCJzaHIiOiIyMDIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lIiwicGYiOjUsInNhIjoiNDAwMDAwIiwic3oiOiIyMGI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMTA0MDAiLCJzaHIiOiI0NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiIxYWMwMCIsInNociI6IjQwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTRmNmM2MDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE0ZjZjNjAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzYwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTcwMDAiLCJwc3MiOiI1NzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxNGY2YzYwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNGY2YzdmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQzYzBmNDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2YThkMWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODE2ZjgzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiZGM2YzI4MjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIyNTAwMCIsInBzcyI6IjIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiJlMGQ4NjAwMDAwMCIsInN6IjoiNDAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiJlMGQ4NjQwMDAwMCIsInN6IjoiYzAwMDAwIn0seyJicyI6eyJwcnYiOiIyMGEwMDAiLCJwc3MiOiIyMGEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiZTBkODcwMDAwMDAiLCJzeiI6IjQwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiZTBkODc0MDAwMDAiLCJzeiI6ImMwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMTI5NDRjYTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMjk0NGNhMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEyOTQ0Y2EwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjc4MDAwIiwicHNzIjoiMjc4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjEyOTQ0Y2EwNDAwMCIsInN6IjoiMjc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMjk0NGNjN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjEzMThlZGY3MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiIxYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMzE4ZWRmODAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxMzE4ZWRmYTAwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzBlM2JlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MGUzYmVjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MGUzYmVkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxNzEwMWNkYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjE3MTAxY2RjMTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjE3MTAxY2RkZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWQxN2E2MjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzFjOTAwMCIsInN6IjoiMTM3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzczMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3MzA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzczMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc0MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzQwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc0MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc1MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3NTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc1MDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc2MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzYwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzgwMDAiLCJwc3MiOiIzODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc2MDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc2M2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTFjYzc3MDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzcwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjkwMDAiLCJwc3MiOiJmOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiIxZTFjYzc3MDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc3ZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjFlMWNjNzgwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3ODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmOTAwMCIsInBzcyI6ImY5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjFlMWNjNzgwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlMWNjNzhmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMWUxY2M3OTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIxZTFjYzc5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMxMDAwIiwicHNzIjoiMzEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiMWUxY2M3OTA2MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWUxY2M3OWZmMDAwIiwic3oiOiIxZjdjYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0YzAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGMwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiODUwMDAiLCJwc3MiOiI4NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRjMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZGZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTQwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI0ZmZjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjFlODJiNTAwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMDAiLCJwc3MiOiI0MDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxZTgyYjUwMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMWU4MmI1MWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MDAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJjYTAwMCIsInBzcyI6ImNhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODAwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgxZmMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjE5ZWU4MjAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MzAwMCIsInBzcyI6IjUzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjIxOWVlODIwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyMTllZTgzZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjI2ZTQ3MWRlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjZlNDcxZGUxMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjZlNDcxZGZmMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzc3OWEyMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjc5MDY0ODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNzkwNjQ4MDEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNzkwNjQ4MWYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJkMjQ5ZGUwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiIyYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyZDI0OWRlMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmQyNDlkZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyZTNkZDkzNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjJlM2RkOTM2MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjJlM2RkOTM3ZjAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMDAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmU4MmQ0NzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjE1MDAwIiwicHNzIjoiMTUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmZlYjkzNDAwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNGU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzRlOTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMyYTQwYzUwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTA5MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTBjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNTI5MDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzJhNDBjNTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNTEwMDAiLCJwc3MiOiIxNzY4MDAiLCJzaHIiOiJiYzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMyYTQwYzU2MDAwMCIsInN6IjoiMjJmMDAwIn0seyJicyI6eyJwcnYiOiJhODcwMDAiLCJwc3MiOiJhODcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzJhNDBjNzhmMDAwIiwic3oiOiJlMDgwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiMWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2EyNDQzYWIyMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2EyNDQzYWYyMDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYTNhODIzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWQwMDAiLCJwc3MiOiI5ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYjJlZWYzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZGQwMDAiLCJwc3MiOiJkZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzYzJmMjMzMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2Q2ZWUyNGMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZDZlZTI0YzEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZDZlZTI0ZGYwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmRqM1hudiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI2NzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uWEg0bkg1IChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YjZiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5CNVBPMEYgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViNmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJkeWlrZyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI3MzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucDdjTkRRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjc3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45czJLWHEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViN2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlM1NWE0cCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWI4ZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uYnZZM3BMIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1Yjk3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS55dERkNnEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViOWI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ3aGV1TSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJhMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVDZFUkJOIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmFmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5KYXFSanQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYjM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkg0OFIxOCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJiNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udnpPcUtPIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmJiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MUEgwc3UgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViYmY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkpSNENiYSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJjMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uQk9rZ1VQIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmM3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5wWlFWQ3YgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViY2I2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmltbktoMSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJkMDAwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWJkNDAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubEEwSmVTIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmRmNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5mYU5DWHggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZTM2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkhqcndHZCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJlNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRlJ3dHBUIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmViNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5SaU5yOHkgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZWY2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjlva3RSZSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uVmNJdkFVIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YmY3NjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS53NmdNQkIgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTViZmI2MDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLk5sS1pMViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWJmZjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9UaW1lc19OZXdfUm9tYW4udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjFmMDAwIiwic3oiOiI1MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9tc3R0Y29yZWZvbnRzL0FyaWFsX0JvbGQudHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjMjcwMDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjczMHA2bSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyYjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnJ5TmZCcCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMyZjYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnBQY2R0cyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzMzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLjM0T2IyViAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWMzNzYwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0udklPeUkzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1YzNiNjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fuc01vbm8udHRmIiwicGYiOjQsInNhIjoiN2Y5OTVjM2Y2MDAwIiwic3oiOiI1MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVjNDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMjBdIiwicGYiOjYsInNhIjoiN2Y5OTVjNDQ5MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk1Y2M0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzIxXSIsInBmIjo2LCJzYSI6IjdmOTk1Y2M0YTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWQ0NGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxN10iLCJwZiI6Niwic2EiOiI3Zjk5NWQ0NGIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVkYzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NWRjNGMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjJmMDAwIiwicHNzIjoiMjJmODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZTQ0YzAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnRvU2VVSyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NWU4NGQwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS45eDYxRDggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlOTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kQ2drb3cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTVlYTRkMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1ODAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uN3ZyU2dkIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmOTk1ZWI0ZDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWVjNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTMxMl0iLCJwZiI6Niwic2EiOiI3Zjk5NWVjNGUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvbXN0dGNvcmVmb250cy9BcmlhbC50dGYiLCJwZiI6NCwic2EiOiI3Zjk5NWY0OGEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NWY0Y2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI5Nl0iLCJwZiI6Niwic2EiOiI3Zjk5NWY0Y2YwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjQsInNhIjoiN2Y5OTVmY2NmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTVmY2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODddIiwicGYiOjYsInNhIjoiN2Y5OTVmY2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmOTk2MDRmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc5XSIsInBmIjo2LCJzYSI6IjdmOTk2MDRmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3Zjk5NjBjZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3OF0iLCJwZiI6Niwic2EiOiI3Zjk5NjBjZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y5OTYxNGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzddIiwicGYiOjYsInNhIjoiN2Y5OTYxNGYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NjFjZjMwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTYxZDZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2MWY2YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2MWY2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTYxZjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NSwic2EiOiI3Zjk5NjFmNzIwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6MCwic2EiOiI3Zjk5NjIwMjYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3Zjk5NjIyMjYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y5OTYyMjI4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjIyMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y5OTYyMjJiMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NjIyNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI0NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNDZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnc3Vtby5zbyIsInBmIjo1LCJzYSI6IjdmOTk2MjQ2ZDAwMCIsInN6IjoiMTI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZ3N1bW8uc28iLCJwZiI6NCwic2EiOiI3Zjk5NjI1OTEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWdzdW1vLnNvIiwicGYiOjYsInNhIjoiN2Y5OTYyNWE2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjI1YTgwMDAiLCJzeiI6ImI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4aWYuc28uMTIuMy4zIiwicGYiOjUsInNhIjoiN2Y5OTYyNjVmMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjowLCJzYSI6IjdmOTk2MjY5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleGlmLnNvLjEyLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2Mjg4ZjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhpZi5zby4xMi4zLjMiLCJwZiI6Niwic2EiOiI3Zjk5NjI4YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvcmVzb3VyY2VzLnBhayIsInBmIjo0LCJzYSI6IjdmOTk2MjhhMzAwMCIsInN6IjoiZmM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3Zjk5NjM4NjgwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2Mzg5YTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzEwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmOTk2M2E0OTAwMCIsInN6IjoiMTM1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmOTk2M2I3ZTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjMxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3Zjk5NjNjMDkwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTFjMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y5OTYzYzZmMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmOTk2NDYyYzAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNGMwMCIsInNociI6ImUwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU2MjAwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NTYzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjU2MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjU4MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY1ODM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjU4MzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3Zjk5NjU4MzYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3Zjk5NjU4MzgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmOTk2NWEzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmOTk2NWEzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3Zjk5NjVhM2EwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y5OTY1YTQwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y5OTY1YzNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmOTk2NWM0MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY1YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjVjNDIwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVjN2QwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY1ZTdjMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NWU4MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NWU4NDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjVlOTYwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NjA5NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmOTk2NjA5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY2MDk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y5OTY2MDk5MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3Zjk5NjYxMTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3Zjk5NjYzMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3Zjk5NjYzMTYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y5OTY2MzE5MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2NjMyMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjUyMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY1MjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmOTk2NjUyNDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y5OTY2NTI3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmOTk2NjcyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y5OTY2NzI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjY3MjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y5OTY2NzI5MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3Zjk5NjY3NTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmOTk2Njk1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3Zjk5NjY5NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2Njk1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmOTk2Njk1ODAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3Zjk5NjZhMTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmOTk2NmMxNDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y5OTY2YzIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY2YzIzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2YzI4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjZlMjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjZlMjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NmUyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjZlMmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTY2ZTJjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MDJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2NzAyZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzAyZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2NzAzMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3MjJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y5OTY3MjMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjcyMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmOTk2NzIzMjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y5OTY3MjNhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2NzQzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y5OTY3NDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2NzQzYjAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTY3NDRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y5OTY3NjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2NzY0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3NjUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njc2NTEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njc2NTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njc2NTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3Zjk5Njc2NTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2NzY1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmOTk2NzY1ODAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5Njc2N2QwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmOTk2Nzg3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmOTk2Nzg3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njc4N2YwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmOTk2Nzg5OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY3YTk4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2N2E5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY3YTliMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjdhOWMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmOTk2N2FhNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjdjYTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2N2NhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTY3Y2E1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NjdjYTcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTY3ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjdlYTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y5OTY3ZWE4MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjdmNDkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3Zjk5NjgxNDkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y5OTY4MTUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjgxNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3Zjk5NjgxNTIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y5OTY4MTc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3Zjk5NjgzNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3Zjk5NjgzNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ODM3ODAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ODM4ZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5Njg1OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODU5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4NTkxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTY4NTk0MDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmOTk2ODViNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y5OTY4N2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y5OTY4N2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njg3YjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3Zjk5Njg3YjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3Zjk5Njg3YmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ODliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ODliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4OWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmOTk2ODliYzAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y5OTY4OWQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y5OTY4YmQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmOTk2OGJkNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3Zjk5NjhiZDUwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y5OTY4YmU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y5OTY4ZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmOTk2OGRlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3Zjk5NjhkZTYwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y5OTY4ZGYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y5OTY4ZmYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmOTk2OGZmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY4ZmYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y5OTY4ZmYzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmOTk2OTBhOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y5OTY5MmE5MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y5OTY5MmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NjkyYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y5OTY5MmIxMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3Zjk5NjkyZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3Zjk5Njk0ZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3Zjk5Njk0ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTY5NGY3MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5Njk1MTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3Zjk5Njk3MTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTY5NzE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5Njk3MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmOTk2OTcxNzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmOTk2OTc1NDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3Zjk5Njk5NTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmOTk2OTk1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3Zjk5Njk5NTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y5OTY5OTVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y5OTY5YjViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmOTk2OWI1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTY5YjVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y5OTY5YjVlMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmOTk2OWI3ZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y5OTY5ZDdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y5OTY5ZDdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmOTk2OWQ3ZjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y5OTY5ZTJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmEwMmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmEwMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3Zjk5NmEwMzIwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3Zjk5NmE0NjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3Zjk5NmE2NjAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NjcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YTY2YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZhNjZlMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZhNjcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZhNjczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmE2NzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmE2NzUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmE2NzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YTg3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk2YTg3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZhODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y5OTZhODdhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmOTk2YTg5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3Zjk5NmFhOTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3Zjk5NmFhOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZhYTljMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmOTk2YWFhNTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmOTk2YWNhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmFjYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YWNhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YWNhNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YWNhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YWNhYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWNhYzAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmOTk2YWNiYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZhZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZhZWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmFlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmOTk2YWViZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZhZWMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2YjBjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZiMGMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmOTk2YjBjMzAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZiMWFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZiM2FiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2YjNiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiM2IzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YjNiNDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNDExMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0MTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmI0MTYwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjQ4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjQ5MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI0OTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YjQ5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmOTk2YjQ5NTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3Zjk5NmI0ZDkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmOTk2YjZkODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmOTk2YjZkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmRhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiNmUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjZlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmI2ZTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMmQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiNmU4MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YjcyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YjcyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YjczMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZiNzMxMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmOTk2YjczOTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y5OTZiNzgzMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3Zjk5NmI5ODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y5OTZiOTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmI5ODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3Zjk5NmI5ODcwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3Zjk5NmI5OTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmOTk2YmI5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmOTk2YmI5MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiOTQwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmJjNjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYmM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiY2EwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJiZGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJiZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmJlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiYmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmJlYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJiZWIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJjMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmMwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiYzA0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmMwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiYzE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmMxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmMxNzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiYzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjMjAwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNhOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJjYjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmNiNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNiODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmJjYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2MxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmOTk2YmNjMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmNkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiY2QzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJjZDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJjZDUwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NmJkM2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDQwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkNDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDQ1MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZiZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ1ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDViMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDcyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZiZDc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmJkNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDc3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmOTk2YmQ4YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJkOGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZDkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YmQ5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTZiZDkyMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZiZGFiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmJkYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2YmRiMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y5OTZiZGI0MDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y5OTZiZGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmOTk2YmZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y5OTZiZmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmJmZTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmOTk2YmZlNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmMxZTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2YzFlNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjMWU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmMxZTkwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmMyM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y5OTZjNDNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmM0M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZjNDNlMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNTQ0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3Zjk5NmM3NDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y5OTZjNzQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmM3NDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmOTk2Yzc0YTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZjNzUzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmOTk2Yzk1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZjOTUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3Zjk5NmM5NTQwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmOTk2Yzk1ZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmNiNWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmOTk2Y2I1ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmNiNWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y5OTZjYjYwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZjZDYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmOTk2Y2Q2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZjZDYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiN2MwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZjZDYzMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmNmMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkMTFkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZkMTIxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmQxMjMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y5OTZkMTI4MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3Zjk5NmQxM2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3Zjk5NmQzM2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3Zjk5NmQzM2UwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3Zjk5NmQ0MjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y5OTZkNjIzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3Zjk5NmQ2MmIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZDYyZDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmOTk2ZDY0MzAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y5OTZkNmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y5OTZkOGRmMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmOTk2ZDhlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y5OTZkOGU2MDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmOTk2ZGE1MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZGM1MTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmRjNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZGM1NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmRjNTkwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZkYzYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZkZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZGU2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZkZTYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3Zjk5NmRlNjIwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3Zjk5NmRlODkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmUwODkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmOTk2ZTA4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTA4YzAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3Zjk5NmUwYzQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmOTk2ZTJjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmOTk2ZTJjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTZlMmM2MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZTJjOTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlMmYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU0ZjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTZlNGY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmU0ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU0ZjYwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlNTFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmU3MWEwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmU3MjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NmU3MjEwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlODU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTZlYTUzMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVhNTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWE1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y5OTZlYTViMDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y5OTZlYTk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y5OTZlYzk0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3Zjk5NmVjOTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZWM5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjJmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk2ZWM5ODAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTZlZDlkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NmVmOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NmVmOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTZlZjllMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmOTk2ZWZiNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTZmMWI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTZmMWI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmYxYjgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y5OTZmMWJjMDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3Zjk5NmYyMjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3Zjk5NmY0MjgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y5OTZmNDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NmY0MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmNDMxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjQzNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmOTk2ZjYzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmY2MzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmOTk2ZjYzNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmOTk2ZjY0ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3Zjk5NmY4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmOTk2Zjg0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y5OTZmODQ5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmY4NGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZhNGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk2ZmE0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYTRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3Zjk5NmZhNGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y5OTZmYzRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3Zjk5NmZjNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y5OTZmYzUwMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y5OTZmZDgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y5OTZmZjgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y5OTZmZjgxMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3Zjk5NmZmODUwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y5OTcwMDhiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDI4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y5OTcwMjhiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MDI4YzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmOTk3MDI4ZTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3Zjk5NzAyZGQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmOTk3MDRkZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmOTk3MDRkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA0ZGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNGUyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkJoclp2UCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3Zjk5NzA2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcG9uWWggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ucFR0c0ZJIChkZWxldGVkKSIsInBmIjo0LCJzYSI6IjdmOTk3MDZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNmZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3Zjk5NzA2ZmQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDcwNDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDcwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDcwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwNzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzBmMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwNzJjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzJmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwNzM1MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDczYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3M2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwNzNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3M2UwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwNzRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDc0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA3NGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzA3NGYwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwN2M5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2QwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2QxMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDdkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA3ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwN2RkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzA3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdkZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MDdlNDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDdmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDdmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI1NjgwMCIsInNociI6ImI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwN2YyMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDllMzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MDlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwOWY0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWY2MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MDlmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzA5ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwOWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MDlmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzA5ZmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwOWZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBhMDAwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBhNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGE2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYTZiMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBhNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGE2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcwYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGE3MDAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MGIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIxNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGIyODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGIyOTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcwYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGIzYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGIzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzBiM2UwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYjY0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBiNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI2ODAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzBiOTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGI5OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MGI5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcwYjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYjlmMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwYmFlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGJiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwYmIxMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcwZDc0MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MGQ5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcwZDlkMDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1YzAwIiwic2hyIjoiMWUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzBmN2EwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzBmOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MGY5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiJhZTAwMCIsInNociI6IjJkYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MGY5YTAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE1MGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiMzYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1MTAwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NDYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU0YjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNTU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1NTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1NTgwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTU4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTU4ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTU4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNThjMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTVkMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNWQ3MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE1ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTVmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxNWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZjMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTVmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE1ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyNDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE1ZmQwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2MDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNjBjMDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNjY0MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2NmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2NmYwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3Zjk5NzE2OGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTY4YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNjhjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2OGQwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxNmFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzE2YWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE2YWUwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTZjMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MTZjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNmM2MDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MTc1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxNzViMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxNzVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxNzYwMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MTc4YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzE3OGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3OGYwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxN2E0MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MTdhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxN2E4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3Zjk5NzE3YTkwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxOTUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiN2MwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxOTUzMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxOTdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MTk3YjAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWE0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYTRjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTU0MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNjYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYTZhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTZiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWE3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFhNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE3OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYTdhMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFhOGIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWE4ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYThlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFhOGYwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWI5YjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYTQwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MWJiMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcxYmIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFiYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxYmI1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFiYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWJjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcxYmMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFiYzQwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcxZTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFlMDMwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MWUwZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFlMTYwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MWUzMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcxZTM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTcxZTM1MDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzFmMjIwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzFmMjkwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3MWYzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzFmMzIwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjA1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3MjA1MjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMDVhMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwNjMwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGE1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGE5MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGIwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzIwYjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIwYjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjBiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyMGI4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyMGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMGM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyMGM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmOTk3MjBjYTAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmOTk3MjEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyMTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmOTk3MjEwYTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTcyMTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjRlYzAwIiwic2hyIjoiYTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzIxMTQwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y5OTcyNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y5OTcyNDI3MDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y5OTcyNDM5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzI0M2IwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMjMwMDAiLCJwc3MiOiIyYjhjMDAiLCJzaHIiOiI1NmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y5OTcyNDRjMDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0MWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTNjMDAiLCJzaHIiOiIxYTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0MWYyMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzQzOTYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NDM5YjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2E5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2FjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2FkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNhZTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NDNkMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNkMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNkNDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2U4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NDNlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc0M2VhMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y5OTc0M2YxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc0M2YyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc0M2YzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiODQ4MDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NDNmNDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlYzAwIiwic2hyIjoiOWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTdiMTAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODRjMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjYwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzU4NWIwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzU4ODUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NTg5MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ODkzMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzU4YjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1OGI0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NThiNTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVhYjgwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1YWNiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YWNjMDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc1YzJlMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NWMzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1YzM5MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NWQ0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc1ZDRhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzVkNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwMCIsInNociI6IjU4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc1ZDRkMDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzVlYWIwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzVlYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NWViYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImJjMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzVlYmYwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzOTEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2M2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzYzYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2M2I3MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzYzYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjNjMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzYzYzMwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3Zjk5NzY0MDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2NDA0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY0MDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjQwOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiNGE0MDAiLCJzaHIiOiI5YTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2NDI3MDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjcyYjAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2NzRlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY3NTAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY3NTgwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4MGMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmOTk3NjgxMTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3NjgyMTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2ODQ0MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4NGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmOTk3Njg1MDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmOTk3Njg1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3Njg1YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3Njg1YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4NWQwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2ODc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2ODdhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzY4N2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2ODdjMDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmOTk3NjhkNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY4ZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y5OTc2OGRjMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY4ZjkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NjhmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2OGZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY4ZmQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3Zjk5NzY5MTMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3Zjk5NzY5MTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNjQwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3Zjk5NzY5MTcwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3Zjk5NzZhMzgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y5OTc2YTNmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3Zjk5NzZhNDAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y5OTc2YTQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmOTk3NmE0NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y5OTc2YTQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmNTk1NDYwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmNTk1YzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNDk4MTAwMCJ9fX0sInR0cyI6MTgxMjA1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYSJ9LHsicGlkIjoxNTI3NiwidGlkIjoxNTI3OSwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDb21wb3NpdG9yVGlsZVdvcmtlcjIvMTUyNzkifX0seyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NDY5MTY4OSwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjE3MTczODAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjE0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc0OTAwMCIsInBzcyI6IjdlMzQwMCIsInNociI6IjI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUxMDAwIiwicHNzIjoiZTQwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNzVhMDAwIiwicHNzIjoiMTc1YTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6ImJhMDAwIiwicHNzIjoiYmEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2YwYzZjMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmMGM2YzEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYjUwZDAwMCIsInN6IjoiODEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNThlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI3OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRxR0kzMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI5OGUwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1OTAwMCIsInNociI6ImIyMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU3NDliMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlN2M5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjcwXSIsInBmIjo2LCJzYSI6IjdmNjRlN2M5YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg0OWMwMDAiLCJzeiI6IjM0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjowLCJzYSI6IjdmNjRlODRkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODZkMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg2ZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjRlODZkNjAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg3MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlODkwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4OTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjUsInNhIjoiN2Y2NGU4OTA4MDAwIiwic3oiOiI1OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjAsInNhIjoiN2Y2NGU4OTYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo0LCJzYSI6IjdmNjRlOGI2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjYsInNhIjoiN2Y2NGU4YjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZThiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZThiNjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZThiNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlOGQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlOGQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NSwic2EiOiI3ZjY0ZThkNmQwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjAsInNhIjoiN2Y2NGU4ZDg3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NCwic2EiOiI3ZjY0ZThmODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjliMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGY5ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzEiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8wIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzMiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmE3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZThmYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZThmYWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU5N2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjhdIiwicGYiOjYsInNhIjoiN2Y2NGU5N2FiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTlmYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTlmYjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTFhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRlYTFiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGVhMWIxMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZWExYmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NGVhM2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlYTNiZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvbWltZS9taW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGVhM2MwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVhM2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjZdIiwicGYiOjYsInNhIjoiN2Y2NGVhM2RmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYWJkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY1XSIsInBmIjo2LCJzYSI6IjdmNjRlYWJlMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGViM2UxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjRdIiwicGYiOjYsInNhIjoiN2Y2NGViM2UyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYmJlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYzXSIsInBmIjo2LCJzYSI6IjdmNjRlYmJlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWMzZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWMzZTQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjBdIiwicGYiOjYsInNhIjoiN2Y2NGVjYmU1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDNlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NGVkM2VkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDVlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkNWVmMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDYwNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkODA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkODA3MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDgyMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkYTFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkYTIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjUsInNhIjoiN2Y2NGVkYTIyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6MCwic2EiOiI3ZjY0ZWRhMzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6NCwic2EiOiI3ZjY0ZWRjMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjYsInNhIjoiN2Y2NGVkYzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS9wdWxzZS1zaG0tNDEyNTA5NTYxNiIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMzAwMCIsInN6IjoiNDAwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYxYzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTldIiwicGYiOjYsInNhIjoiN2Y2NGYxYzM1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjI0MzUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjAsInNhIjoiN2Y2NGYyNDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjQsInNhIjoiN2Y2NGYyNjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo2LCJzYSI6IjdmNjRmMjYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo1LCJzYSI6IjdmNjRmMjYzZTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjAsInNhIjoiN2Y2NGYyNjZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjQsInNhIjoiN2Y2NGYyODY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo2LCJzYSI6IjdmNjRmMjg2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo1LCJzYSI6IjdmNjRmMjg2YjAwMCIsInN6IjoiMmIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjowLCJzYSI6IjdmNjRmMmIxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjQsInNhIjoiN2Y2NGYyZDFkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6Niwic2EiOiI3ZjY0ZjJkMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo1LCJzYSI6IjdmNjRmMmQzYTAwMCIsInN6IjoiMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjowLCJzYSI6IjdmNjRmMmQ2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZjJmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo2LCJzYSI6IjdmNjRmMmY2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGYyZjZiMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGYyZjgyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmMzE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjMxODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo1LCJzYSI6IjdmNjRmMzE4NTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjAsInNhIjoiN2Y2NGYzMThhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo0LCJzYSI6IjdmNjRmMzM4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjYsInNhIjoiN2Y2NGYzMzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjUsInNhIjoiN2Y2NGYzMzhiMDAwIiwic3oiOiI2MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjowLCJzYSI6IjdmNjRmMzNlYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjQsInNhIjoiN2Y2NGYzNWVjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjYsInNhIjoiN2Y2NGYzNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM1ZWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjUsInNhIjoiN2Y2NGYzNWYzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjowLCJzYSI6IjdmNjRmMzVmYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo0LCJzYSI6IjdmNjRmMzdmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmMzdmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYzN2ZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTddIiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxN2MwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmM2ZmZTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZjQwNjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmNDI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmNDI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRmNDI2NTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjRmNDI2ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGY0NDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGY0NDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NSwic2EiOiI3ZjY0ZjQ0NzAwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjowLCJzYSI6IjdmNjRmNDRiNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjo0LCJzYSI6IjdmNjRmNDZiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNDZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU2XSIsInBmIjo2LCJzYSI6IjdmNjRmNDZiYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjRlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjRlYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY1NmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTRdIiwicGYiOjYsInNhIjoiN2Y2NGY1NmJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUzXSIsInBmIjo2LCJzYSI6IjdmNjRmNWViZDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjY2YmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZjY2YmUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTFdIiwicGYiOjYsInNhIjoiN2Y2NGY2ZWJmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNzZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUwXSIsInBmIjo2LCJzYSI6IjdmNjRmNzZjMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjdlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjdlYzEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY4NmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDhdIiwicGYiOjYsInNhIjoiN2Y2NGY4NmMyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjFhNjAwMCIsInBzcyI6IjFhZDAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjhlYzIwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEyODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWU4NzAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY5ZWI5MDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmVjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZmEwNjgwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjFkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhMTlkMDAwIiwic3oiOiI4NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTIyMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE0MjAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhNDM1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE0NDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTQ0MjAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE0YmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYTZiYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTZiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNmJkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDAwMCIsInNociI6Ijc3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y2NGZhNmMxMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y2NGZhNzc1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmNjRmYTk3NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y2NGZhOTc3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGZhOTdhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE5OWIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTlkYjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYWJkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRmYWJkZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDddIiwicGYiOjYsInNhIjoiN2Y2NGZhYmU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmFiZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZWQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiM2VkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmIzZWUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiYmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDRdIiwicGYiOjYsInNhIjoiN2Y2NGZiYmVmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYzNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQzXSIsInBmIjo2LCJzYSI6IjdmNjRmYzNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZmNiZjAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZhYTQxYWEyMmUxOGI4ZmEwNmExMmRhMjhlYTljMjhiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NhNjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jMDU4ODBkZTU3ZDFmNWU5NDhmZGZhY2MxMzg3NzVkOS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOTQ1Njc3ZWI3YWVhZjYyZjFkNTBlZmMzZmIzZWM3ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMmNkMTc2MTVjYTU5NGZhMjk1OWFlMTczMjkyZTUwNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2MwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2ZkOTUwNTk1MGMwNDhhNzdkYzRiNzEwZWI2YTYyOGVkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZGM3OWQzZWEwNmE3YzZmZmE4NmVkZTg1ZjNiYjVkZi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTcwNzFmNGEyOWZhODcwZjQzMjMzMjFjMTU0ZWJhMDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2EyYWI3NDc2NGIwNzI3OWU3YzM2ZGRiMWQzMDJjZjI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2M2OWYwNGFiMDUwMDRlMzFhNmQ1ZTcxNTc2NGYxNmQ4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wZDhjM2IyYWMwOTA0Y2I4YTU3YTc1N2FkMTFhNGEwOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNjQ2YWRkYjg0NDRmYWE3NGVlMTM4YWEwMGFiMGI2YTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTc1NWFmZTRhMDhiZjViOTc4NTJjZWI3NDAwYjQ3YmMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2QwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMjBiZDc5YWQ5NzA5NDQwNmY3ZDFiOTY1NGJmYmQ5MjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2Q3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOWMwNjI0MTA4YjlhMmFlODU1MmY2NjQxMjViZTgzNTYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmQ0MTI4OGZkNzBiMGJlMjJlOGMzYTkxZTAzMmVlYzAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RhMWJkNWNhODQ0M2ZmZTIyOTI3YTIzY2U0MzFkMTk4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNjM1NGUzYWM0M2FmNjdiZDhkN2I4ZTQzYzM0ZTQ5Zi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzA0YWFiYzBhNzhhYzAxOWNmOTQ1NDM4OTk3NzExNmQyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NmMDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMWFjOWViODAzOTQ0ZmRlMTQ2MTM4Yzc5MWY1Y2M1NmEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM4NWMwNjA0YTE4ODE5OGYwNGQxMzNlNTRhYmE3ZmU3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYzA1ZGI2NjY0Mjg1Y2MyZjEyYmY2OWMxMzlhZTRjMy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNGYzZTMwMzdjOTk4MGM4M2I1M2E5MzUxZWZhZGVmNjItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzc2N2E4MjQ0ZmMwMjIwY2ZiNTY3YTgzOWQwMzkyZTBiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg4MDE0OTc5NTg2MzBhODFiNzFhY2U3YzVmOWIzMmE4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwZTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzY1YjU1ZjIxMGMwYTIyZTlhMTllMzUxOTEyNDBmMzItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDEzMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzMwNDc4MTRkZjlhMmYwNjdiZDJkOTZhMmI5YzM2ZTVhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q0ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RlOTQ4NmYwYjQ3YTRkNzY4YTU5NGNiNDE5OGNiMWM2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I0N2M0ZTFlY2QwNzA5Mjc4ZjQ5MTBjMTg3NzdhNTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDUyYTg2NDQwNzNkNTRjMTM2NzkzMDJjYTExODA2OTUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDVlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjgwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzNmNzMyOWM1MjkzZmZkNTEwZWRlZjc4ZjczODc0Y2ZkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3MTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTg5YTQ4ODYyMzk4ZWQ4MGEzZDYwNjZmNGY1NmY0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkN2EwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UxM2IyMGZkYjA4MzQ0ZTBlNjY0ODY0Y2MyZWRlNTNkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q4NTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ2N2MwMTllNTgyZWUzNTM0MzVlYTVjMjFkMTM3ZWY2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q5YzAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmY2RiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQyXSIsInBmIjo2LCJzYSI6IjdmNjRmY2RiYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmQ1YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmQ1YmMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmRkYmMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjowLCJzYSI6IjdmNjRmZGRjNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZGZjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNGIwMDAiLCJwc3MiOiI0YzgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvZ3NjaGVtYXMuY29tcGlsZWQiLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzkwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMDE4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmUyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUyMWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUyMjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmU0MjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZTYzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjM5XSIsInBmIjo2LCJzYSI6IjdmNjRmZTYzYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWM4MDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWUzYTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWVjNTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjQ2MDAwIiwicHNzIjoiNTE0MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y2NGZlZjJiMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmNjRmZjhlODAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMDhkYzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwOGVjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMDhmMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMGFlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmNjUwMGFmMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmNjUwMGFmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y2NTAwY2Y0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y2NTAwY2Y1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMGNmNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDBjZmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDBlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMGVmZTAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMGYzOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDExMzgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTEzZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMTE0MDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDExNTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTM1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTM1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxMzU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmNjUwMTM1NTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y2NTAxM2QxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y2NTAxNWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmNjUwMTVkMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE1ZDUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAxNWRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAxN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTdkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y2NTAxN2UwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE3ZTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y2NTAxOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTllNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE5ZTUwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMWExMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMWMxMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDFjMTQwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y2NTAxY2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDFlZDAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDFlZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDFlZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDFlZTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjBlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjBlNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIwZTgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIyZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMmVhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMmVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI0ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAyNGVlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDI0ZjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNmY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI2ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDI2ZjcwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwMjcwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwMjkwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAyOTBkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAyOTEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAyOTExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwMjkxNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDI5MzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwMmIzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwMmIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDJiM2IwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMmI1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMmQ1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJkNTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmQ2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDJmNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMmY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZjYxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJmNjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzMTYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDMxNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmNjUwMzE2NDAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y2NTAzMjA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y2NTAzNDA1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y2NTAzNDBlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMzQzMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzNjMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzNjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMzYzNDAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwMzY0YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDM4NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMzg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzODRkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTAzODUwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmNjUwMzg3MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y2NTAzYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDNhNzMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDNhNzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwM2M3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmNjUwM2M3ODAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y2NTAzYzkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y2NTAzZThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmNjUwM2U5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmNjUwM2U5MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjY1MDNlYTAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjY1MDQwYTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y2NTA0MGExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y2NTA0MGEyMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmNjUwNDBhZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmNjUwNDJhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjY1MDQyYWYwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y2NTA0MzY1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjY1MDQ1NjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDQ1NmQwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwNDViMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwNDdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ3YjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNDdiMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA0N2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA0OWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y2NTA0OWQzMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YTEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGMwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y2NTA0YzEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwNGMxMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRjMTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRlMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjY1MDRlMWEwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y2NTA0ZTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjY1MDUwMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjY1MDUwM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTgwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUwM2IwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTBlODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTJlNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTJlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiI2MDgwMCIsInNociI6IjEzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MmVlMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1NzFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1OTFjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTI3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDU5MmEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDU5MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDU5MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNTkzMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwNTkzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1YjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y2NTA1YjM2MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmNjUwNWI1NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y2NTA1ZDU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y2NTA1ZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWQ1ODAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVkNjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVmNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjE3OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA2MTdlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjM3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MzdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiY2MwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYzN2YwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwNjQ2ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjY2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2NzAwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY2Y2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjZkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2ZDIwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjc0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY3NGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY3NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjY1MDY3NTEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y2NTA2Nzk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjY1MDY5OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjY1MDY5OTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjk5NjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhNDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjllZDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2OWY1MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZhM2YwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZjM2YwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNmM0MzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmM0ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTUwMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU4NjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmU5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTlhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmU5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU5ZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTcwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmViZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkMzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZGMwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY2NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3NDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmN2UwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjI2YzAwIiwic2hyIjoiMzkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmOTEwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZmZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMDEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcwMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjQwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAxNzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMmUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDMzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNGUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y2NTA3MDcwMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y2NTA3MDllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmNjUwNzI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y2NTA3MjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcyOWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzJhMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDc0YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzRhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3NGE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NGE1MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3NGY4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzZmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3NmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc2ZmEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc4MDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc5ZmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2EwNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3YTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwN2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmNjUwN2MxMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y2NTA3YzE5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmNjUwN2UxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y2NTA3ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2UxYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdlMWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDgwMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiY2QwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4MDFmMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDgxZGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwODNkOTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwODNkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTA4M2U0MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDgzZmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDg1ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiIxMDgwMCIsInNociI6IjhlMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y2NTA4NWZhMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y2NTA4NmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmNjUwODhkZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y2NTA4OGU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDg4ZmYwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmNjUwODk5YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmNjUwOGI5YjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDhiYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDhiYTIwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA4ZDBlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwOGYwZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4ZjE1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwOGYxYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTExZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y2NTA5MTFlMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y2NTA5MTQ1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmNjUwOTM0NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y2NTA5MzQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTM0ODAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDkzODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTU4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTU4NTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5NWFkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5N2FkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTdiMjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk3ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTlkNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTlkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyMDAwIiwic2hyIjoiZGQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk5ZGQwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5YjEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOWQwZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDlkMTcwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDlkNTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y2NTA5ZjUwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOWY1NDAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMDU5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGEyNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGEyNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBhMjVhMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTI3MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhNDcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhNDczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmNjUwYTQ3ODAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y2NTBhNGU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y2NTBhNmU0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYTZlZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE2ZjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGE4ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhOGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmNjUwYThmMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmNjUwYTkwNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFiMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWIwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhYjA1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFiMDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYWQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZDA5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFkMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFmMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWYwYzAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmNjUwYjAzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGIyM2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2ODAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGIyNDEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMzQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjU0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGI1NGEwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiNTk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI3OTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI3OWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiNzliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjc5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDc5NGEwODIxNjY2ZDc5MTkwZDU5YTM2Y2I0ZjQ0YjUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzU2Y2Y0ZjQ3NjlkMGY0YWJjODlhNDg5NWQ3YmQzYWUxLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iOWQ1MDZjOWFjMDZjMjBiNDMzMzU0ZmE2N2E3Mjk5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGM5ZWI4MGViZDFjMzY1NDFlYmUyODUyZDNiYjBjNDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg1ZTBhNTJjZTY0M2E3YmEyYWU1M2U1ZDY5NDljZWFkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mNmU2ZTBhNWMzZDJmNmFlMGMwYzJlMGVjZDQyYTk5Ny1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvN2VmMjI5OGZkZTQxY2M2ZWViN2FmNDJlNDhiN2QyOTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzE2MzI2NjgzMDM4YjI4MTc4M2EwZWY4YzY4MGUzYTEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ZjAyZDRjYjA0NWJkNmNlMTU2NjNlNDNmMzQ3YzlmOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YWIwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTBhYTUzYmNmYTUwNGU2NGY4NzgyM2MxNmJjMDFlYjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL3NpdGUiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvbG9jYWwiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi91c2VyLzE1ODE1OC9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5YzAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5YzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5YzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjljYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5Y2IwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjllZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWYxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjlmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWZhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmEwYjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYThkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmE5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhMDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmFhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmFhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiI5NzQwMCIsInNociI6IjE0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhZTAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYzlmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2FmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2I2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiY2I5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYmMwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDI3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiMjU4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyYzAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZDMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGU1MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE3MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZmEwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmUyMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlMjQwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTUyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmU1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNWIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTZkMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzAzMDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMwNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODgwMCIsInNociI6ImUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMDU5MDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMjM2MDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJkMTAwMCIsInNociI6IjMyMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzI1NjAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM3Y2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjN2NjMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODAyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzgxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjE2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgxNDAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg0NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODQ4MDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4OGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4OTMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGE5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YjkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxZDQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGM4MDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTIwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTJiMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6IjExNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NDkwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTY3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk2YTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjVlYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTgyMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2ExNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2ExNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2ExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjE2MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2ExYzAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTRiMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiYmU0MDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E2NTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYzBmMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYzM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWVjMDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2MzNzAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2QwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDA4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QxMDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDI3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzNjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2Q0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkNGIwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U1NzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTYwMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNlNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNzEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiNDE0MDAiLCJzaHIiOiI3NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U4MDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQwYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBiZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZDIwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwZWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzQwMDAiLCJwc3MiOiI0YTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZjEwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDFkZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQxZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDFlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIzYzQwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDFlZTAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzBlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzE2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDMxZjAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNzQwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJlODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM4NjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkM2M1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzYzYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDNjZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNhODAwIiwic2hyIjoiYmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzZDAwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDZlMzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4YTgwMCIsInNociI6IjRlMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQ3MDgwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY0YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNGFlMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZjY1NzAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjY1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2YTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2OGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjkwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmE2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDYwMDAiLCJwc3MiOiIzYjIwMDAiLCJzaHIiOiI1NTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZiMDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGE2ZDAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjA4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTBiMTcwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiM2MwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNDEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOGMwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNGYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiOWY4MDAiLCJzaHIiOiJhZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjcxMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBkNzQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGQ4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGQ4ODAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGVlYTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBlZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAwIiwicHNzIjoiYzNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGVmNTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMDAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMDA2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjNhMDAwIiwicHNzIjoiN2M4MDAiLCJzaHIiOiJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTAwOTAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTE2NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMTc4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxYmIwMDAiLCJwc3MiOiIyMzJjMDAiLCJzaHIiOiIxN2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMTdiMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY0ZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjczMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiIyYWMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjdmMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExNmJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2YzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmM1MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiI3ODgwMCIsInNociI6IjExMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmUzMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE5ZTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYTBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRhNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYTE0MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWFjODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYWNkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYWRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjBjMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIxOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMzgwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWI5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWI5ODAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmI5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJjZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiI1MDgwMCIsInNociI6ImU1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiZDMwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZjQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExZDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmMmUyNTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNjlkZTAwMCJ9fX0sInR0cyI6NzMwNzIzLCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZSJ9LAoreyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NDgxMDI5NywicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjE4MzVlZjAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjE0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc1MzAwMCIsInBzcyI6IjdlYzQwMCIsInNociI6IjI1YzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUxMDAwIiwicHNzIjoiZTQwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTJhMDAwIiwicHNzIjoiMTkyYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NzQ3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk3NDgwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiY2UwMDAiLCJwc3MiOiJjZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjBjNmMwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2YwYzZjMTAwMDAwIiwic3oiOiIxZjAwMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRiNTBkMDAwIiwic3oiOiI4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjc4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjk4ZTAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5vZlhxelggKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTExMDAwIiwic3oiOiI4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI1ZTgwMCIsInNociI6ImJiMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM0XSIsInBmIjo2LCJzYSI6IjdmNjRlNzQ5YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTdjOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3MF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTdjOWMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4NDljMDAwIiwic3oiOiIzNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg0ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg2ZDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NGU4NmQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg2ZDYwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmd2ZnNkYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4NzA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg5MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRlODkwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo1LCJzYSI6IjdmNjRlODkwODAwMCIsInN6IjoiNTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjowLCJzYSI6IjdmNjRlODk2MTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmlidXMtMS4wLnNvLjUuMC41MDUiLCJwZiI6NCwic2EiOiI3ZjY0ZThiNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo2LCJzYSI6IjdmNjRlOGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4YjY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4YjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZThkNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZThkNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjUsInNhIjoiN2Y2NGU4ZDZkMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzbWVudS1nbGliLnNvLjQuMC4xMiIsInBmIjowLCJzYSI6IjdmNjRlOGQ4NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjQsInNhIjoiN2Y2NGU4Zjg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjYsInNhIjoiN2Y2NGU4Zjg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMyIsInBmIjo2LCJzYSI6IjdmNjRlOGY5YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjlmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlOGZhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMSIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU4ZmE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjldIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmFhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlOTdhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY4XSIsInBmIjo2LCJzYSI6IjdmNjRlOTdhYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGU5ZmFiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGU5ZmIwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZWExYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWExYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRlYTFiMTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGVhMWJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGVhM2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzAiLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlYTNjMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYTNkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY2XSIsInBmIjo2LCJzYSI6IjdmNjRlYTNkZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWFiZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWFiZTAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZWIzZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYjNlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY0XSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWJiZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2M10iLCJwZiI6Niwic2EiOiI3ZjY0ZWJiZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjM2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjFdIiwicGYiOjYsInNhIjoiN2Y2NGVjM2U0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlY2JlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYwXSIsInBmIjo2LCJzYSI6IjdmNjRlY2JlNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZWQzZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDNlZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZWQ1ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDVlZjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWguc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ2MDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDgwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDgwNzAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjZ21hbmFnZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ4MjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZGExZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZGEyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo1LCJzYSI6IjdmNjRlZGEyMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjAsInNhIjoiN2Y2NGVkYTMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjQsInNhIjoiN2Y2NGVkYzMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vcHVsc2Utc2htLTQxMjUwOTU2MTYiLCJwZiI6Niwic2EiOiI3ZjY0ZWRjMzMwMDAiLCJzeiI6IjQwMDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMWMzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU5XSIsInBmIjo2LCJzYSI6IjdmNjRmMWMzNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjUsInNhIjoiN2Y2NGYyNDM1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjowLCJzYSI6IjdmNjRmMjQzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo0LCJzYSI6IjdmNjRmMjYzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6Niwic2EiOiI3ZjY0ZjI2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6NSwic2EiOiI3ZjY0ZjI2M2UwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjowLCJzYSI6IjdmNjRmMjY2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo0LCJzYSI6IjdmNjRmMjg2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6Niwic2EiOiI3ZjY0ZjI4NmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6NSwic2EiOiI3ZjY0ZjI4NmIwMDAiLCJzeiI6IjJiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6MCwic2EiOiI3ZjY0ZjJiMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo0LCJzYSI6IjdmNjRmMmQxZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjYsInNhIjoiN2Y2NGYyZDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjJkM2EwMDAiLCJzeiI6IjMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjJkNmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJGTEFDLnNvLjguMy4wIiwicGYiOjQsInNhIjoiN2Y2NGYyZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6Niwic2EiOiI3ZjY0ZjJmNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmMmY2YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjRmMmY4MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjMxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmMzE4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjMxODUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjowLCJzYSI6IjdmNjRmMzE4YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NCwic2EiOiI3ZjY0ZjMzODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo2LCJzYSI6IjdmNjRmMzM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo1LCJzYSI6IjdmNjRmMzM4YjAwMCIsInN6IjoiNjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic25kZmlsZS5zby4xLjAuMjUiLCJwZiI6MCwic2EiOiI3ZjY0ZjMzZWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo0LCJzYSI6IjdmNjRmMzVlYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo2LCJzYSI6IjdmNjRmMzVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzNWVmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo1LCJzYSI6IjdmNjRmMzVmMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6MCwic2EiOiI3ZjY0ZjM1ZmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZjM3ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMzdmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU3XSIsInBmIjo2LCJzYSI6IjdmNjRmMzdmZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTdjMDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZjNmZmUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3B1bHNlYXVkaW8vbGlicHVsc2Vjb21tb24tNC4wLnNvIiwicGYiOjAsInNhIjoiN2Y2NGY0MDY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjQyNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZjQyNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjQyNjUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjQyNmYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRmNDQ2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRmNDQ2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjUsInNhIjoiN2Y2NGY0NDcwMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ0YjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NCwic2EiOiI3ZjY0ZjQ2YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjYsInNhIjoiN2Y2NGY0NmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ2YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YmEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY0ZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTVdIiwicGYiOjYsInNhIjoiN2Y2NGY0ZWJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNTZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU0XSIsInBmIjo2LCJzYSI6IjdmNjRmNTZiYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjVlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1M10iLCJwZiI6Niwic2EiOiI3ZjY0ZjVlYmQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2NmJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTJdIiwicGYiOjYsInNhIjoiN2Y2NGY2NmJlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUxXSIsInBmIjo2LCJzYSI6IjdmNjRmNmViZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0Zjc2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1MF0iLCJwZiI6Niwic2EiOiI3ZjY0Zjc2YzAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY3ZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDldIiwicGYiOjYsInNhIjoiN2Y2NGY3ZWMxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmODZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ4XSIsInBmIjo2LCJzYSI6IjdmNjRmODZjMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxYTYwMDAiLCJwc3MiOiIxYWQwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY4ZWMyMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjllODcwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWViOTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGZhMDY4MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxZDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTE5ZDAwMCIsInN6IjoiODQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmEyMjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZhNDIwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTQzNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE0NDIwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZhNGJhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE2YmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmE2YmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTZiZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI3NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmNjRmYTZjMTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmNjRmYTc3NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZmE5NzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmNjRmYTk3NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRmYTk3YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTk5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhOTliMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE5ZGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhYmRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ3XSIsInBmIjo2LCJzYSI6IjdmNjRmYWJlNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDZdIiwicGYiOjYsInNhIjoiN2Y2NGZhYmVkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYjNlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZiM2VlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYmJlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ0XSIsInBmIjo2LCJzYSI6IjdmNjRmYmJlZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmMzZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0M10iLCJwZiI6Niwic2EiOiI3ZjY0ZmMzZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGZjYmYwMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82YWE0MWFhMjJlMThiOGZhMDZhMTJkYTI4ZWE5YzI4Yi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYTYwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYzA1ODgwZGU1N2QxZjVlOTQ4ZmRmYWNjMTM4Nzc1ZDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzk0NTY3N2ViN2FlYWY2MmYxZDUwZWZjM2ZiM2VjN2Q4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NiNTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzJjZDE3NjE1Y2E1OTRmYTI5NTlhZTE3MzI5MmU1MDRjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mZDk1MDU5NTBjMDQ4YTc3ZGM0YjcxMGViNmE2MjhlZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGRjNzlkM2VhMDZhN2M2ZmZhODZlZGU4NWYzYmI1ZGYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2U3MDcxZjRhMjlmYTg3MGY0MzIzMzIxYzE1NGViYTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hMmFiNzQ3NjRiMDcyNzllN2MzNmRkYjFkMzAyY2YyNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jNjlmMDRhYjA1MDA0ZTMxYTZkNWU3MTU3NjRmMTZkOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2EwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGQ4YzNiMmFjMDkwNGNiOGE1N2E3NTdhZDExYTRhMDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzY0NmFkZGI4NDQ0ZmFhNzRlZTEzOGFhMDBhYjBiNmEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2E3NTVhZmU0YTA4YmY1Yjk3ODUyY2ViNzQwMGI0N2JjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkMDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzIwYmQ3OWFkOTcwOTQ0MDZmN2QxYjk2NTRiZmJkOTI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzljMDYyNDEwOGI5YTJhZTg1NTJmNjY0MTI1YmU4MzU2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZkNDEyODhmZDcwYjBiZTIyZThjM2E5MWUwMzJlZWMwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkZjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYTFiZDVjYTg0NDNmZmUyMjkyN2EyM2NlNDMxZDE5OC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTYzNTRlM2FjNDNhZjY3YmQ4ZDdiOGU0M2MzNGU0OWYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2U1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wNGFhYmMwYTc4YWMwMTljZjk0NTQzODk5NzcxMTZkMi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZjAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzFhYzllYjgwMzk0NGZkZTE0NjEzOGM3OTFmNWNjNTZhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zODVjMDYwNGExODgxOThmMDRkMTMzZTU0YWJhN2ZlNy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGMwNWRiNjY2NDI4NWNjMmYxMmJmNjljMTM5YWU0YzMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzRmM2UzMDM3Yzk5ODBjODNiNTNhOTM1MWVmYWRlZjYyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83NjdhODI0NGZjMDIyMGNmYjU2N2E4MzlkMDM5MmUwYi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ODAxNDk3OTU4NjMwYTgxYjcxYWNlN2M1ZjliMzJhOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM2NWI1NWYyMTBjMGEyMmU5YTE5ZTM1MTkxMjQwZjMyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QxMzAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zMDQ3ODE0ZGY5YTJmMDY3YmQyZDk2YTJiOWMzNmU1YS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNGUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZTk0ODZmMGI0N2E0ZDc2OGE1OTRjYjQxOThjYjFjNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iNDdjNGUxZWNkMDcwOTI3OGY0OTEwYzE4Nzc3YTUwNC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Q1MmE4NjQ0MDczZDU0YzEzNjc5MzAyY2ExMTgwNjk1LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zZjczMjljNTI5M2ZmZDUxMGVkZWY3OGY3Mzg3NGNmZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNzEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDU4OWE0ODg2MjM5OGVkODBhM2Q2MDY2ZjRmNTZmNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDdhMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMTNiMjBmZGIwODM0NGUwZTY2NDg2NGNjMmVkZTUzZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkODUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80NjdjMDE5ZTU4MmVlMzUzNDM1ZWE1YzIxZDEzN2VmNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkOWMwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmNkYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZmNkYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZkNWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDFdIiwicGYiOjYsInNhIjoiN2Y2NGZkNWJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZkZGJjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmRkYzcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmRmYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjRiMDAwIiwicHNzIjoiNGM4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9nbGliLTIuMC9zY2hlbWFzL2dzY2hlbWFzLmNvbXBpbGVkIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM5MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTAxODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmUyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMjFjMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlMjI1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlNDI3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmU0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmU2MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTIzOV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2M2EwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlM2EwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzAwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlYzUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiI0NjAwMCIsInBzcyI6IjUxNDAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmNjRmZWYyYjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjY0ZmY4ZTgwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDA4ZGMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMDhlYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDA4ZjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDBhZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAwYWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjY1MDBhZjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjY1MDBhZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmNjUwMGNmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmNjUwMGNmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDBjZjYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y2NTAwY2ZjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y2NTAwZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmNjUwMGVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDBlZmUwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDBmMzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAxMTM4MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDExM2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDExNDAwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAxMTUyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDEzNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDEzNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTM1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjY1MDEzNTUwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmNjUwMTNkMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmNjUwMTVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjY1MDE1ZDIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAxNWQ1MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMTVkZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE3ZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTdlMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y2NTAxN2UzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y2NTAxOWUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y2NTAxOWU1MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDFhMTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDFjMTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAxYzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y2NTAxYzE0MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmNjUwMWNkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y2NTAxZWQwMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y2NTAxZWRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAxZWRmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAxZWU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIwZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDIwZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDIwZTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMGU4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyMmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjJlYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMjJlYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNGViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjRlZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAyNGY2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjZmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNmY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTAyNmY3MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDI3MGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDI5MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTAyOTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMjkwZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmNjUwMjkxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwMjkxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMjkxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDI5MTQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y2NTAyOTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDJiMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDJiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAyYjNiMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDJiNTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDJkNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTAyZDU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZDU4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJkNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyZjVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDJmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMmY2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyZjYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzE2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzMTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDMxNjQwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmNjUwMzIwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmNjUwMzQwNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDM0MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMzQwZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDM0MzMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzYzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMzYzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDM2MzQwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDM2NGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAzODRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDM4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzg0ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwMzg1MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDM4NzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmNjUwM2E2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmNjUwM2E3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAzYTczMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAzYTc2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDNjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDNjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjY1MDNjNzgwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmNjUwM2M5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmNjUwM2U4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjY1MDNlOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjY1MDNlOTEwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y2NTAzZWEwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y2NTA0MGEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmNjUwNDBhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmNjUwNDBhMjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjY1MDQwYWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjY1MDQyYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y2NTA0MmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y2NTA0MmFmMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmNjUwNDM2NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y2NTA0NTY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y2NTA0NTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y2NTA0NTZkMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDQ1YjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDQ3YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y2NTA0N2IxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDQ3YjMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNDdkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNDlkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDQ5ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmNjUwNDlkMzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmNjUwNGExMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRjMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGMxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDRjMTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YzE4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y2NTA0ZTE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGUxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y2NTA0ZTFhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmNjUwNGUzOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y2NTA1MDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y2NTA1MDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE4MDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MDNiMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjY1MDUwZTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjY1MDUyZTcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y2NTA1MmViMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI2MDAwIiwicHNzIjoiNjA4MDAiLCJzaHIiOiIxMzIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmNjUwNTJlZTAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTcxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTkxYzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MjMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkyNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1OTJhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1OTJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1OTJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDU5MzEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDU5MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwNWIzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWIzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmNjUwNWIzNjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjY1MDViNTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmNjUwNWQ1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmNjUwNWQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVkNTgwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA1ZDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWY2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjY4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA1Zjc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDYxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYxNzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNjE3ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYzN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjM3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTA2MzdmMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDY0NjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDY2NjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA2NjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NjcwMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NmNkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY2ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NmQyMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY3NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NzRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjc0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2NzUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y2NTA2NzUxMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmNjUwNjc5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y2NTA2OTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y2NTA2OTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5OTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTQwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2OWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNjlmNTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTA2YTNmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2YzNmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDZjNDMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZjNGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwNmU0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmU0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU1MDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU4MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlODYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU5YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlOWUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWE3MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWMwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmVjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZDMwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWRjMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmNjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmNzQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjdjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjdlMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmOGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIyNDQwMCIsInNociI6IjM5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjkxMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDAxMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA3MDEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMTcwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDJlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAzMzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDQ2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzA0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDRlMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDY3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmNjUwNzA3MDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmNjUwNzA5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjY1MDcyOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmNjUwNzI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MjlmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcyYTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3NGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDc0YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzRhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmNjUwNzRhNTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmNjUwNzRmODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc2ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmNjUwNzZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NmZhMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ODAwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA3OWZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2EwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdhMDYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmNjUwN2EwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDdjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2MwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDdjMTAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmNjUwN2MxOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDdlMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmNjUwN2UxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdlMWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ZTFjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTA4MDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwODAxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImNkMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwODAxZjAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4MWRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDgzZDkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDgzZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODNkZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwODNlNDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y2NTA4M2ZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTA4NWY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjkzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y2NTA4NWZhMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y2NTA4NmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmNjUwODhkZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y2NTA4OGU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDg4ZmYwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmNjUwODk5YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmNjUwOGI5YjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDhiYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDhiYTIwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA4ZDBlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwOGYwZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4ZjE1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwOGYxYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTExZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y2NTA5MTFlMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y2NTA5MTQ1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmNjUwOTM0NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y2NTA5MzQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTM0ODAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDkzODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTU4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTU4NTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5NWFkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5N2FkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTdiMjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk3ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTlkNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTlkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyMDAwIiwic2hyIjoiZGQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk5ZGQwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5YjEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOWQwZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDlkMTcwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDlkNTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y2NTA5ZjUwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOWY1NDAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMDU5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGEyNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGEyNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBhMjVhMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTI3MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhNDcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhNDczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmNjUwYTQ3ODAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y2NTBhNGU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y2NTBhNmU0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYTZlZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE2ZjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGE4ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhOGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmNjUwYThmMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmNjUwYTkwNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFiMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWIwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhYjA1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFiMDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYWQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZDA5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFkMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFmMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWYwYzAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmNjUwYjAzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGIyM2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2ODAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGIyNDEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMzQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjU0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGI1NGEwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiNTk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI3OTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI3OWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiNzliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjc5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDc5NGEwODIxNjY2ZDc5MTkwZDU5YTM2Y2I0ZjQ0YjUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzU2Y2Y0ZjQ3NjlkMGY0YWJjODlhNDg5NWQ3YmQzYWUxLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iOWQ1MDZjOWFjMDZjMjBiNDMzMzU0ZmE2N2E3Mjk5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGM5ZWI4MGViZDFjMzY1NDFlYmUyODUyZDNiYjBjNDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg1ZTBhNTJjZTY0M2E3YmEyYWU1M2U1ZDY5NDljZWFkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mNmU2ZTBhNWMzZDJmNmFlMGMwYzJlMGVjZDQyYTk5Ny1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvN2VmMjI5OGZkZTQxY2M2ZWViN2FmNDJlNDhiN2QyOTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzE2MzI2NjgzMDM4YjI4MTc4M2EwZWY4YzY4MGUzYTEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ZjAyZDRjYjA0NWJkNmNlMTU2NjNlNDNmMzQ3YzlmOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YWIwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTBhYTUzYmNmYTUwNGU2NGY4NzgyM2MxNmJjMDFlYjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL3NpdGUiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvbG9jYWwiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi91c2VyLzE1ODE1OC9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5YzAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5YzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5YzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjljYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5Y2IwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjllZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWYxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjlmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWZhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmEwYjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYThkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmE5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhMDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmFhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmFhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiI5NTAwMCIsInNociI6IjE0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhZTAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYzlmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2FmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2I2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiY2I5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYmMwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDI3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiMjU4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyYzAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZDMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGU1MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE3MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZmEwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmUyMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlMjQwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTUyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmU1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNWIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTZkMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzAzMDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMwNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODgwMCIsInNociI6ImUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMDU5MDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMjM2MDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiZTQwMCIsInNociI6IjMyMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzI1NjAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM3Y2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjN2NjMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODAyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzgxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjE2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgxNDAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg0NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODQ4MDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4OGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4OTMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGE5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YjkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxZDQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGM4MDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTIwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTJiMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6IjExNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NDkwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTY3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk2YTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjVlYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTgyMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2ExNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2ExNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2ExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjE2MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2ExYzAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTRiMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiYmUwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E2NTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYzBmMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYzM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2MzNzAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2QwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDA4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QxMDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDI3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzNjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2Q0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkNGIwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U1NzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTYwMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNlNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNzEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiNDE0MDAiLCJzaHIiOiI3NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U4MDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQwYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBiZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZDIwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwZWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzQwMDAiLCJwc3MiOiI0YTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZjEwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDFkZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQxZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDFlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIzYmMwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDFlZTAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzBlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzE2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDMxZjAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNzQwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJlODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM4NjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkM2M1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzYzYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDNjZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNhMDAwIiwic2hyIjoiYmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzZDAwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDZlMzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4YTgwMCIsInNociI6IjRlMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQ3MDgwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY0YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNGFlMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZjY1NzAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjY1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2YTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2OGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjkwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmE2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMTMwMDAiLCJwc3MiOiIzYmRjMDAiLCJzaHIiOiI1NTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZiMDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGE2ZDAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjA4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTBiMTcwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiM2MwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNDEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOGMwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNGYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYzMDAwIiwicHNzIjoiOWY4MDAiLCJzaHIiOiJhZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjcxMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBkNzQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGQ4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGQ4ODAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGVlYTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBlZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAwIiwicHNzIjoiYzNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGVmNTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMDAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMDA2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjNhMDAwIiwicHNzIjoiN2M4MDAiLCJzaHIiOiJjOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTAwOTAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTE2NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMTc4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxYmUwMDAiLCJwc3MiOiIyMzQ4MDAiLCJzaHIiOiIxN2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMTdiMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY0ZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjczMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiIyYWMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjdmMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExNmJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2YzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmM1MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiI3ODgwMCIsInNociI6IjExMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmUzMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE5ZTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYTBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRhNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYTE0MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWFjODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYWNkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYWRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjBjMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIxOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMzgwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWI5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWI5ODAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmI5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJjZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWEwMDAiLCJwc3MiOiI0ZjQwMCIsInNociI6ImU2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiZDMwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZjQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExZDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmMmUyNTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNmI0OTAwMCJ9fX0sInR0cyI6Nzc2NDk1LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiZCJ9LAoreyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NDg3NjQxOCwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjE5OGUwNDAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjE0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc1YTAwMCIsInBzcyI6IjdmNDAwMCIsInNociI6IjI1ZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUxMDAwIiwicHNzIjoiZTQwMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTdjMDAwIiwicHNzIjoiMWE3YzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NzQ3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk3NDgwMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiZGIwMDAiLCJwc3MiOiJkYjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzZjBjNmMwMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiM2YwYzZjMTAwMDAwIiwic3oiOiIxZjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRiNTBkMDAwIiwic3oiOiI4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLmQyVFV6WiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAwMCIsInNociI6IjIwMDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ueldhU29HIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjc4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uRHFHSTMzIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjk4ZTAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM1OTEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM3OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAwIiwic2hyIjoiYzAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM4OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkYzk5MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRjOWFmMDAwIiwic3oiOiI0MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRjOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTddIiwicGYiOjYsInNhIjoiN2Y2NGRjOWYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg0XSIsInBmIjo2LCJzYSI6IjdmNjRkZDFmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQ5ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQ5ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRlMWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzVdIiwicGYiOjYsInNhIjoiN2Y2NGRlMWY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiJkODAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGRlOWY0MDAwIiwic3oiOiI0YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRkZWEzZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGRlYzNlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGRlYzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ljb25zL2hpY29sb3IvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkZWM0MjAwMCIsInN6IjoiMjRlZjAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9nbm9tZS9pY29uLXRoZW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGUxMTMxMDAwIiwic3oiOiI1MjA3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiODQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy1Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmNjRlNjMzODAwMCIsInN6IjoiYWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNjNlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc0XSIsInBmIjo2LCJzYSI6IjdmNjRlNjNlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNjQwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTZiZTMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTZjOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZTZjOWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU3NDlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzRdIiwicGYiOjYsInNhIjoiN2Y2NGU3NDliMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlN2M5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjcwXSIsInBmIjo2LCJzYSI6IjdmNjRlN2M5YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg0OWMwMDAiLCJzeiI6IjM0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjowLCJzYSI6IjdmNjRlODRkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODZkMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg2ZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjRlODZkNjAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg3MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlODkwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4OTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjUsInNhIjoiN2Y2NGU4OTA4MDAwIiwic3oiOiI1OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjAsInNhIjoiN2Y2NGU4OTYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo0LCJzYSI6IjdmNjRlOGI2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjYsInNhIjoiN2Y2NGU4YjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZThiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZThiNjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZThiNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlOGQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlOGQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NSwic2EiOiI3ZjY0ZThkNmQwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjAsInNhIjoiN2Y2NGU4ZDg3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NCwic2EiOiI3ZjY0ZThmODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjliMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGY5ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzEiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8wIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzMiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmE3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZThmYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZThmYWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU5N2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjhdIiwicGYiOjYsInNhIjoiN2Y2NGU5N2FiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTlmYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTlmYjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTFhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRlYTFiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGVhMWIxMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZWExYmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NGVhM2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlYTNiZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvbWltZS9taW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGVhM2MwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVhM2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjZdIiwicGYiOjYsInNhIjoiN2Y2NGVhM2RmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYWJkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY1XSIsInBmIjo2LCJzYSI6IjdmNjRlYWJlMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGViM2UxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjRdIiwicGYiOjYsInNhIjoiN2Y2NGViM2UyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYmJlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYzXSIsInBmIjo2LCJzYSI6IjdmNjRlYmJlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWMzZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWMzZTQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjBdIiwicGYiOjYsInNhIjoiN2Y2NGVjYmU1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDNlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NGVkM2VkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDVlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkNWVmMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDYwNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkODA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkODA3MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDgyMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkYTFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkYTIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjUsInNhIjoiN2Y2NGVkYTIyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6MCwic2EiOiI3ZjY0ZWRhMzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6NCwic2EiOiI3ZjY0ZWRjMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjYsInNhIjoiN2Y2NGVkYzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS9wdWxzZS1zaG0tNDEyNTA5NTYxNiIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMzAwMCIsInN6IjoiNDAwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYxYzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTldIiwicGYiOjYsInNhIjoiN2Y2NGYxYzM1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjI0MzUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjAsInNhIjoiN2Y2NGYyNDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjQsInNhIjoiN2Y2NGYyNjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo2LCJzYSI6IjdmNjRmMjYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo1LCJzYSI6IjdmNjRmMjYzZTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjAsInNhIjoiN2Y2NGYyNjZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjQsInNhIjoiN2Y2NGYyODY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo2LCJzYSI6IjdmNjRmMjg2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo1LCJzYSI6IjdmNjRmMjg2YjAwMCIsInN6IjoiMmIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjowLCJzYSI6IjdmNjRmMmIxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjQsInNhIjoiN2Y2NGYyZDFkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6Niwic2EiOiI3ZjY0ZjJkMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo1LCJzYSI6IjdmNjRmMmQzYTAwMCIsInN6IjoiMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjowLCJzYSI6IjdmNjRmMmQ2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZjJmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo2LCJzYSI6IjdmNjRmMmY2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGYyZjZiMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGYyZjgyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmMzE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjMxODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo1LCJzYSI6IjdmNjRmMzE4NTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjAsInNhIjoiN2Y2NGYzMThhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo0LCJzYSI6IjdmNjRmMzM4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjYsInNhIjoiN2Y2NGYzMzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjUsInNhIjoiN2Y2NGYzMzhiMDAwIiwic3oiOiI2MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjowLCJzYSI6IjdmNjRmMzNlYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjQsInNhIjoiN2Y2NGYzNWVjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjYsInNhIjoiN2Y2NGYzNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM1ZWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjUsInNhIjoiN2Y2NGYzNWYzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjowLCJzYSI6IjdmNjRmMzVmYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo0LCJzYSI6IjdmNjRmMzdmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmMzdmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYzN2ZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTddIiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxN2MwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmM2ZmZTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZjQwNjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmNDI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmNDI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRmNDI2NTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjRmNDI2ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGY0NDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGY0NDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NSwic2EiOiI3ZjY0ZjQ0NzAwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjowLCJzYSI6IjdmNjRmNDRiNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjo0LCJzYSI6IjdmNjRmNDZiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNDZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU2XSIsInBmIjo2LCJzYSI6IjdmNjRmNDZiYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjRlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjRlYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY1NmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTRdIiwicGYiOjYsInNhIjoiN2Y2NGY1NmJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUzXSIsInBmIjo2LCJzYSI6IjdmNjRmNWViZDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjY2YmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZjY2YmUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTFdIiwicGYiOjYsInNhIjoiN2Y2NGY2ZWJmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNzZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUwXSIsInBmIjo2LCJzYSI6IjdmNjRmNzZjMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjdlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjdlYzEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY4NmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDhdIiwicGYiOjYsInNhIjoiN2Y2NGY4NmMyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjFhNjAwMCIsInBzcyI6IjFhZDAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjhlYzIwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEyODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWU4NzAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY5ZWI5MDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmVjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZmEwNjgwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjFkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhMTlkMDAwIiwic3oiOiI4NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTIyMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE0MjAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhNDM1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE0NDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTQ0MjAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE0YmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYTZiYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTZiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNmJkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDAwMCIsInNociI6Ijc3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y2NGZhNmMxMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y2NGZhNzc1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmNjRmYTk3NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y2NGZhOTc3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGZhOTdhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE5OWIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTlkYjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYWJkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRmYWJkZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDddIiwicGYiOjYsInNhIjoiN2Y2NGZhYmU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmFiZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZWQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiM2VkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmIzZWUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiYmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDRdIiwicGYiOjYsInNhIjoiN2Y2NGZiYmVmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYzNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQzXSIsInBmIjo2LCJzYSI6IjdmNjRmYzNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZmNiZjAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZhYTQxYWEyMmUxOGI4ZmEwNmExMmRhMjhlYTljMjhiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NhNjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jMDU4ODBkZTU3ZDFmNWU5NDhmZGZhY2MxMzg3NzVkOS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOTQ1Njc3ZWI3YWVhZjYyZjFkNTBlZmMzZmIzZWM3ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMmNkMTc2MTVjYTU5NGZhMjk1OWFlMTczMjkyZTUwNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2MwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2ZkOTUwNTk1MGMwNDhhNzdkYzRiNzEwZWI2YTYyOGVkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZGM3OWQzZWEwNmE3YzZmZmE4NmVkZTg1ZjNiYjVkZi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTcwNzFmNGEyOWZhODcwZjQzMjMzMjFjMTU0ZWJhMDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2EyYWI3NDc2NGIwNzI3OWU3YzM2ZGRiMWQzMDJjZjI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2M2OWYwNGFiMDUwMDRlMzFhNmQ1ZTcxNTc2NGYxNmQ4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wZDhjM2IyYWMwOTA0Y2I4YTU3YTc1N2FkMTFhNGEwOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNjQ2YWRkYjg0NDRmYWE3NGVlMTM4YWEwMGFiMGI2YTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTc1NWFmZTRhMDhiZjViOTc4NTJjZWI3NDAwYjQ3YmMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2QwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMjBiZDc5YWQ5NzA5NDQwNmY3ZDFiOTY1NGJmYmQ5MjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2Q3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOWMwNjI0MTA4YjlhMmFlODU1MmY2NjQxMjViZTgzNTYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmQ0MTI4OGZkNzBiMGJlMjJlOGMzYTkxZTAzMmVlYzAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RhMWJkNWNhODQ0M2ZmZTIyOTI3YTIzY2U0MzFkMTk4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNjM1NGUzYWM0M2FmNjdiZDhkN2I4ZTQzYzM0ZTQ5Zi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzA0YWFiYzBhNzhhYzAxOWNmOTQ1NDM4OTk3NzExNmQyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NmMDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMWFjOWViODAzOTQ0ZmRlMTQ2MTM4Yzc5MWY1Y2M1NmEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM4NWMwNjA0YTE4ODE5OGYwNGQxMzNlNTRhYmE3ZmU3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYzA1ZGI2NjY0Mjg1Y2MyZjEyYmY2OWMxMzlhZTRjMy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNGYzZTMwMzdjOTk4MGM4M2I1M2E5MzUxZWZhZGVmNjItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzc2N2E4MjQ0ZmMwMjIwY2ZiNTY3YTgzOWQwMzkyZTBiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg4MDE0OTc5NTg2MzBhODFiNzFhY2U3YzVmOWIzMmE4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwZTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzY1YjU1ZjIxMGMwYTIyZTlhMTllMzUxOTEyNDBmMzItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDEzMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzMwNDc4MTRkZjlhMmYwNjdiZDJkOTZhMmI5YzM2ZTVhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q0ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RlOTQ4NmYwYjQ3YTRkNzY4YTU5NGNiNDE5OGNiMWM2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I0N2M0ZTFlY2QwNzA5Mjc4ZjQ5MTBjMTg3NzdhNTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDUyYTg2NDQwNzNkNTRjMTM2NzkzMDJjYTExODA2OTUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDVlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjgwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzNmNzMyOWM1MjkzZmZkNTEwZWRlZjc4ZjczODc0Y2ZkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3MTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTg5YTQ4ODYyMzk4ZWQ4MGEzZDYwNjZmNGY1NmY0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkN2EwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UxM2IyMGZkYjA4MzQ0ZTBlNjY0ODY0Y2MyZWRlNTNkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q4NTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ2N2MwMTllNTgyZWUzNTM0MzVlYTVjMjFkMTM3ZWY2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q5YzAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmY2RiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQyXSIsInBmIjo2LCJzYSI6IjdmNjRmY2RiYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmQ1YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmQ1YmMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmRkYmMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjowLCJzYSI6IjdmNjRmZGRjNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZGZjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNGIwMDAiLCJwc3MiOiI0YzgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvZ3NjaGVtYXMuY29tcGlsZWQiLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzkwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMDE4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmUyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUyMWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUyMjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmU0MjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZTYzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjM5XSIsInBmIjo2LCJzYSI6IjdmNjRmZTYzYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWUzYTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWVjNTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjQ2MDAwIiwicHNzIjoiNTE0MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y2NGZlZjJiMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmNjRmZjhlODAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMDhkYzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwOGVjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMDhmMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMGFlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmNjUwMGFmMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmNjUwMGFmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y2NTAwY2Y0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y2NTAwY2Y1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMGNmNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDBjZmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDBlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMGVmZTAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMGYzOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDExMzgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTEzZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMTE0MDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDExNTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTM1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTM1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxMzU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmNjUwMTM1NTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y2NTAxM2QxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y2NTAxNWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmNjUwMTVkMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE1ZDUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAxNWRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAxN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTdkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y2NTAxN2UwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE3ZTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y2NTAxOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTllNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE5ZTUwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMWExMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMWMxMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDFjMTQwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y2NTAxY2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDFlZDAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDFlZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDFlZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDFlZTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjBlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjBlNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIwZTgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIyZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMmVhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMmVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI0ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAyNGVlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDI0ZjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNmY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI2ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDI2ZjcwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwMjcwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwMjkwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAyOTBkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAyOTEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAyOTExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwMjkxNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDI5MzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwMmIzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwMmIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDJiM2IwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMmI1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMmQ1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJkNTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmQ2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDJmNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMmY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZjYxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJmNjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzMTYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDMxNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmNjUwMzE2NDAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y2NTAzMjA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y2NTAzNDA1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y2NTAzNDBlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMzQzMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzNjMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzNjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMzYzNDAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwMzY0YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDM4NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMzg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzODRkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTAzODUwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmNjUwMzg3MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y2NTAzYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDNhNzMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDNhNzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwM2M3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmNjUwM2M3ODAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y2NTAzYzkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y2NTAzZThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmNjUwM2U5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmNjUwM2U5MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjY1MDNlYTAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjY1MDQwYTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y2NTA0MGExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y2NTA0MGEyMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmNjUwNDBhZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmNjUwNDJhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjY1MDQyYWYwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y2NTA0MzY1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjY1MDQ1NjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDQ1NmQwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwNDViMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwNDdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ3YjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNDdiMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA0N2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA0OWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y2NTA0OWQzMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YTEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGMwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y2NTA0YzEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwNGMxMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRjMTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRlMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjY1MDRlMWEwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y2NTA0ZTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjY1MDUwMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjY1MDUwM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTgwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUwM2IwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTBlODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTJlNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTJlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiI2MDgwMCIsInNociI6IjEzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MmVlMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1NzFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1OTFjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTI3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDU5MmEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDU5MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDU5MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNTkzMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwNTkzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1YjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y2NTA1YjM2MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmNjUwNWI1NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y2NTA1ZDU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y2NTA1ZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWQ1ODAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVkNjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVmNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjE3OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA2MTdlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjM3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MzdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiY2MwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYzN2YwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwNjQ2ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjY2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2NzAwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY2Y2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjZkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2ZDIwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjc0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY3NGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY3NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjY1MDY3NTEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y2NTA2Nzk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjY1MDY5OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjY1MDY5OTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjk5NjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhNDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjllZDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2OWY1MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZhM2YwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZjM2YwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNmM0MzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmM0ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTUwMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU4NjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmU5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTlhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmU5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU5ZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTcwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmViZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkMzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZGMwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY2NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3NDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmN2UwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjI0NDAwIiwic2hyIjoiMzkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmOTEwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZmZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMDEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcwMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAxNzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMmUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDMzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNGUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y2NTA3MDcwMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y2NTA3MDllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmNjUwNzI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y2NTA3MjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcyOWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzJhMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDc0YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzRhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3NGE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NGE1MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3NGY4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzZmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3NmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc2ZmEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc4MDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc5ZmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2EwNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3YTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwN2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmNjUwN2MxMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y2NTA3YzE5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmNjUwN2UxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y2NTA3ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2UxYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdlMWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDgwMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiY2QwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4MDFmMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDgxZGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwODNkOTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwODNkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTA4M2U0MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDgzZmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDg1ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiOTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjY1MDg1ZmEwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjY1MDg2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y2NTA4OGRmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODhlOTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmNjUwODhmZjAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y2NTA4OTljMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y2NTA4YjliMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmNjUwOGJhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJlMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwOGJhMjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDhkMGUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA4ZjBkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOGYxMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDhmMTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4ZjFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5MTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTExYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5MTFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMWMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDkxMWUwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDkxNDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y2NTA5MzQ1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDkzNDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5MzQ4MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTM4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5NTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk1ODIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5NTg1MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk1YWQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk3YWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk3YjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5N2IyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTdkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5OWQ2MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5OWRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjIwMDAiLCJzaHIiOiJkZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTlkZDAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDliMTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5ZDBmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWQxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmNjUwOWQxNzAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmNjUwOWQ1MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDlmNTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5ZjUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5ZjU0MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGEwNTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYTI1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYTI1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGEyNWEwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMjczMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGE0NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYTQ3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y2NTBhNDc4MDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjY1MGE0ZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjY1MGE2ZTQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y2NTBhNmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE2ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhNmVkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYTZmMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwYThmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGE4ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhOGYzMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y2NTBhOTA0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWIwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y2NTBhYjA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFiMDUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYWIwNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFkMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWQwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhZDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFkMDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwYWQwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFmMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZjBjMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y2NTBiMjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjIzZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjI0MTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGIzNDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTBiNTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjU0ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjU0YTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGI1OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjc5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjc5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI3OWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiNzllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOTlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80Nzk0YTA4MjE2NjZkNzkxOTBkNTlhMzZjYjRmNDRiNS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNTZjZjRmNDc2OWQwZjRhYmM4OWE0ODk1ZDdiZDNhZTEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I5ZDUwNmM5YWMwNmMyMGI0MzMzNTRmYTY3YTcyOTkzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wYzllYjgwZWJkMWMzNjU0MWViZTI4NTJkM2JiMGM0OS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvODVlMGE1MmNlNjQzYTdiYTJhZTUzZTVkNjk0OWNlYWQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Y2ZTZlMGE1YzNkMmY2YWUwYzBjMmUwZWNkNDJhOTk3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83ZWYyMjk4ZmRlNDFjYzZlZWI3YWY0MmU0OGI3ZDI5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMTYzMjY2ODMwMzhiMjgxNzgzYTBlZjhjNjgwZTNhMTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzhmMDJkNGNiMDQ1YmQ2Y2UxNTY2M2U0M2YzNDdjOWY4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhYjAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMGFhNTNiY2ZhNTA0ZTY0Zjg3ODIzYzE2YmMwMWViNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvc2l0ZSIsInBmIjo0LCJzYSI6IjdmNjUwYjliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2V0Yy9kY29uZi9kYi9sb2NhbCIsInBmIjo0LCJzYSI6IjdmNjUwYjliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvZGNvbmYvdXNlciIsInBmIjo0LCJzYSI6IjdmNjUwYjliYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3VzZXIvMTU4MTU4L2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjljODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjljOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiOWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljYjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjllZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZjEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjlmNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjlmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZmEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTBiMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhOGQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmE5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWEwMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYWFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYWFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6Ijk1MDAwIiwic2hyIjoiMTQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWFlMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjOWYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmNiMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiMjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2I3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2JhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiYzAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkMjIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkMjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiIyNTgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDJjMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmRkMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZTUwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmRmYTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmUxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTIwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmUyNDAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiNTQwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNmQwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMDMwMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzA1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4ODAwIiwic2hyIjoiZTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGMwNTkwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGMyMzYwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzI1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6ImJhODAwIiwic2hyIjoiMzIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMjU2MDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzdjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM3Y2MwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzgwNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzgxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODE0MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4NDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDQwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4NDgwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg4ZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzg5MzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOGFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhhZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhiOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjFkNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YzgwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5MjAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5MmIwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk0OTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTZhMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM5ODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNWVjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5ODIwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjYTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTE3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTFjMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiN2MwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhNGIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2E2MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2E2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzUwMDAiLCJwc3MiOiJiZTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTY1MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNjMGYwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNjMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYzM3MDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjZDA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMDgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDEwMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2QyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDM2MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2Q0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiI0ZTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2Q0YjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTU3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiODQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNjAwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2U2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U3MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2U3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWIwMDAiLCJwc3MiOiI0MTQwMCIsInNociI6Ijc1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTgwMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDBiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMGJmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQwY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0NDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBkMjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBlZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNDAwMCIsInBzcyI6IjRhODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBmMTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMWRlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDFlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMWVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNzAwMCIsInBzcyI6IjNiYzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMWVlMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzMGUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzMTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzFmMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzY1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM3NDAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzg2MDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkM2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDNjNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkM2NmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2EwMDAiLCJzaHIiOiJiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDNkMDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQ2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkNmUzMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQ2ZjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMThhNDAwIiwic2hyIjoiNGUzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDcwODAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmNjUwZjRhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY0YWUwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY1MjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBmNjU3MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2NjUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjZhMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjY4ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2OTAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjZhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2YTYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIxNDAwMCIsInBzcyI6IjNiZjQwMCIsInNociI6IjU1NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmIwMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYTZkMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiMDgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMGIxNzAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0ZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTMwMDAiLCJwc3MiOiI5NjQwMCIsInNociI6ImJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNzEwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGQ3NDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwZDg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZDg4MDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwZWVhMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGVmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMDAiLCJwc3MiOiJjM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZWY1MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTEwMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTAwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMDAiLCJwc3MiOiI3MDAwMCIsInNociI6ImQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMDA5MDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMTY3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTExNzgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjFiZjAwMCIsInBzcyI6IjIzNTgwMCIsInNociI6IjE3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTExN2IwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNjRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExNjcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2NzMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNjAwMCIsInBzcyI6IjJhYzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2N2YwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTE2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTZjMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNzQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2YzUwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6Ijc4ODAwIiwic2hyIjoiMTEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2ZTMwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTllNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYTBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGE0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhMTQwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYWM4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhY2QwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhZGQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjA1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmNjUxMWIwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI1NDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMGMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjE5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIzODAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWI5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImVjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjk4MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmI1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWJiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiYjkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmNmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjRlYzAwIiwic2hyIjoiZTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWJkMzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWNmNDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWNmYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExZDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFkMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmYyZTI1NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmYyZTMyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI2Y2FjMDAwIn19fSwidHRzIjo4MDU2ODUsImlkIjoiMHhhZjU5NWQ0Yzg1ZjAxNmJjIn0sCit7InBpZCI6MTUyMzgsInRpZCI6MTUyMzgsInRzIjoxNTc2NjU1MDI2MTc4LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMWIyMTJjMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIyMTQ3MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNzVjMDAwIiwicHNzIjoiN2Y4ODAwIiwic2hyIjoiMjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTIwMDAiLCJwc3MiOiJlNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIyNTAwMCIsInBzcyI6IjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNzE0YWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlYzAwMCIsInBzcyI6ImVjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQ5Y2ZiYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNjY2MDM4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY2NjAzODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzOWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4Njg3ZjAwMCIsInN6IjoiMTgxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZjMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZjMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZkMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmQzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2ZTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjUwMDAiLCJwc3MiOiI2NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmUwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZWZmMDAwIiwic3oiOiIxZjk4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjgwZDY1YTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWIwMDAiLCJwc3MiOiI1YjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNGQwMDAiLCJwc3MiOiI0ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMGU3ZDM3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjRhODA1OWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNGE4MDU5ZjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMjVmZTRmZjRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1MTcwMDAiLCJzeiI6IjI5MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZlOTM1NDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1NjAwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxMjY0NjkwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWYwMDAiLCJwc3MiOiIxZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyODIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJhMjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYzIwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFjMTgwMDAiLCJwc3MiOiIxYzE4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJmOTAwMCIsInN6IjoiMjE4NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk3NDdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiZTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTc0ODAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiJlNzAwMCIsInBzcyI6ImU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmMGM2YzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjBjNmMxMDAwMDAiLCJzeiI6IjFmMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvaW5kZXgiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1MGQwMDAiLCJzeiI6IjgxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjU4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNzhlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcUdJMzMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiOThlMDAwIiwic3oiOiI0MDEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjNlMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5Xa2xSc2cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTExMDAwIiwic3oiOiI4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2YzgwMCIsInNociI6ImQ3MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM0XSIsInBmIjo2LCJzYSI6IjdmNjRlNzQ5YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTdjOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3MF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTdjOWMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4NDljMDAwIiwic3oiOiIzNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg0ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg2ZDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NGU4NmQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg2ZDYwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmd2ZnNkYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4NzA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg5MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRlODkwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo1LCJzYSI6IjdmNjRlODkwODAwMCIsInN6IjoiNTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjowLCJzYSI6IjdmNjRlODk2MTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmlidXMtMS4wLnNvLjUuMC41MDUiLCJwZiI6NCwic2EiOiI3ZjY0ZThiNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo2LCJzYSI6IjdmNjRlOGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4YjY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4YjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZThkNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZThkNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjUsInNhIjoiN2Y2NGU4ZDZkMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzbWVudS1nbGliLnNvLjQuMC4xMiIsInBmIjowLCJzYSI6IjdmNjRlOGQ4NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjQsInNhIjoiN2Y2NGU4Zjg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjYsInNhIjoiN2Y2NGU4Zjg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMyIsInBmIjo2LCJzYSI6IjdmNjRlOGY5YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjlmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlOGZhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMSIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU4ZmE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjldIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmFhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlOTdhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY4XSIsInBmIjo2LCJzYSI6IjdmNjRlOTdhYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGU5ZmFiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGU5ZmIwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZWExYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWExYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRlYTFiMTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGVhMWJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGVhM2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzAiLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlYTNjMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYTNkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY2XSIsInBmIjo2LCJzYSI6IjdmNjRlYTNkZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWFiZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWFiZTAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZWIzZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYjNlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY0XSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWJiZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2M10iLCJwZiI6Niwic2EiOiI3ZjY0ZWJiZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjM2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjFdIiwicGYiOjYsInNhIjoiN2Y2NGVjM2U0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlY2JlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYwXSIsInBmIjo2LCJzYSI6IjdmNjRlY2JlNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZWQzZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDNlZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZWQ1ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDVlZjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWguc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ2MDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDgwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDgwNzAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjZ21hbmFnZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ4MjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZGExZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZGEyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo1LCJzYSI6IjdmNjRlZGEyMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjAsInNhIjoiN2Y2NGVkYTMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjQsInNhIjoiN2Y2NGVkYzMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vcHVsc2Utc2htLTQxMjUwOTU2MTYiLCJwZiI6Niwic2EiOiI3ZjY0ZWRjMzMwMDAiLCJzeiI6IjQwMDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMWMzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU5XSIsInBmIjo2LCJzYSI6IjdmNjRmMWMzNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjUsInNhIjoiN2Y2NGYyNDM1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjowLCJzYSI6IjdmNjRmMjQzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo0LCJzYSI6IjdmNjRmMjYzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6Niwic2EiOiI3ZjY0ZjI2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6NSwic2EiOiI3ZjY0ZjI2M2UwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjowLCJzYSI6IjdmNjRmMjY2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo0LCJzYSI6IjdmNjRmMjg2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6Niwic2EiOiI3ZjY0ZjI4NmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6NSwic2EiOiI3ZjY0ZjI4NmIwMDAiLCJzeiI6IjJiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6MCwic2EiOiI3ZjY0ZjJiMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo0LCJzYSI6IjdmNjRmMmQxZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjYsInNhIjoiN2Y2NGYyZDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjJkM2EwMDAiLCJzeiI6IjMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjJkNmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJGTEFDLnNvLjguMy4wIiwicGYiOjQsInNhIjoiN2Y2NGYyZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6Niwic2EiOiI3ZjY0ZjJmNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmMmY2YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjRmMmY4MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjMxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmMzE4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjMxODUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjowLCJzYSI6IjdmNjRmMzE4YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NCwic2EiOiI3ZjY0ZjMzODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo2LCJzYSI6IjdmNjRmMzM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo1LCJzYSI6IjdmNjRmMzM4YjAwMCIsInN6IjoiNjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic25kZmlsZS5zby4xLjAuMjUiLCJwZiI6MCwic2EiOiI3ZjY0ZjMzZWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo0LCJzYSI6IjdmNjRmMzVlYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo2LCJzYSI6IjdmNjRmMzVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzNWVmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo1LCJzYSI6IjdmNjRmMzVmMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6MCwic2EiOiI3ZjY0ZjM1ZmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZjM3ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMzdmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU3XSIsInBmIjo2LCJzYSI6IjdmNjRmMzdmZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTdjMDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZjNmZmUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3B1bHNlYXVkaW8vbGlicHVsc2Vjb21tb24tNC4wLnNvIiwicGYiOjAsInNhIjoiN2Y2NGY0MDY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjQyNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZjQyNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjQyNjUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjQyNmYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRmNDQ2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRmNDQ2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjUsInNhIjoiN2Y2NGY0NDcwMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ0YjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NCwic2EiOiI3ZjY0ZjQ2YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjYsInNhIjoiN2Y2NGY0NmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ2YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YmEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY0ZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTVdIiwicGYiOjYsInNhIjoiN2Y2NGY0ZWJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNTZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU0XSIsInBmIjo2LCJzYSI6IjdmNjRmNTZiYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjVlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1M10iLCJwZiI6Niwic2EiOiI3ZjY0ZjVlYmQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2NmJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTJdIiwicGYiOjYsInNhIjoiN2Y2NGY2NmJlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUxXSIsInBmIjo2LCJzYSI6IjdmNjRmNmViZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0Zjc2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1MF0iLCJwZiI6Niwic2EiOiI3ZjY0Zjc2YzAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY3ZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDldIiwicGYiOjYsInNhIjoiN2Y2NGY3ZWMxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmODZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ4XSIsInBmIjo2LCJzYSI6IjdmNjRmODZjMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxYTYwMDAiLCJwc3MiOiIxYWQwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY4ZWMyMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjllODcwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWViOTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGZhMDY4MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxZDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTE5ZDAwMCIsInN6IjoiODQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmEyMjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZhNDIwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTQzNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE0NDIwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZhNGJhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE2YmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmE2YmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTZiZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI3NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmNjRmYTZjMTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmNjRmYTc3NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZmE5NzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmNjRmYTk3NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwMCIsInBzcyI6IjIwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRmYTk3YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTk5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhOTliMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE5ZGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhYmRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ3XSIsInBmIjo2LCJzYSI6IjdmNjRmYWJlNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDZdIiwicGYiOjYsInNhIjoiN2Y2NGZhYmVkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYjNlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZiM2VlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYmJlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ0XSIsInBmIjo2LCJzYSI6IjdmNjRmYmJlZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmMzZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0M10iLCJwZiI6Niwic2EiOiI3ZjY0ZmMzZjAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGZjYmYwMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82YWE0MWFhMjJlMThiOGZhMDZhMTJkYTI4ZWE5YzI4Yi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYTYwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYzA1ODgwZGU1N2QxZjVlOTQ4ZmRmYWNjMTM4Nzc1ZDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzk0NTY3N2ViN2FlYWY2MmYxZDUwZWZjM2ZiM2VjN2Q4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NiNTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzJjZDE3NjE1Y2E1OTRmYTI5NTlhZTE3MzI5MmU1MDRjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjMDAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mZDk1MDU5NTBjMDQ4YTc3ZGM0YjcxMGViNmE2MjhlZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGRjNzlkM2VhMDZhN2M2ZmZhODZlZGU4NWYzYmI1ZGYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2U3MDcxZjRhMjlmYTg3MGY0MzIzMzIxYzE1NGViYTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hMmFiNzQ3NjRiMDcyNzllN2MzNmRkYjFkMzAyY2YyNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jNjlmMDRhYjA1MDA0ZTMxYTZkNWU3MTU3NjRmMTZkOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2EwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGQ4YzNiMmFjMDkwNGNiOGE1N2E3NTdhZDExYTRhMDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzY0NmFkZGI4NDQ0ZmFhNzRlZTEzOGFhMDBhYjBiNmEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2E3NTVhZmU0YTA4YmY1Yjk3ODUyY2ViNzQwMGI0N2JjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkMDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzIwYmQ3OWFkOTcwOTQ0MDZmN2QxYjk2NTRiZmJkOTI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzljMDYyNDEwOGI5YTJhZTg1NTJmNjY0MTI1YmU4MzU2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkYTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZkNDEyODhmZDcwYjBiZTIyZThjM2E5MWUwMzJlZWMwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NkZjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYTFiZDVjYTg0NDNmZmUyMjkyN2EyM2NlNDMxZDE5OC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTYzNTRlM2FjNDNhZjY3YmQ4ZDdiOGU0M2MzNGU0OWYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2U1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wNGFhYmMwYTc4YWMwMTljZjk0NTQzODk5NzcxMTZkMi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZjAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzFhYzllYjgwMzk0NGZkZTE0NjEzOGM3OTFmNWNjNTZhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zODVjMDYwNGExODgxOThmMDRkMTMzZTU0YWJhN2ZlNy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGMwNWRiNjY2NDI4NWNjMmYxMmJmNjljMTM5YWU0YzMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzRmM2UzMDM3Yzk5ODBjODNiNTNhOTM1MWVmYWRlZjYyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83NjdhODI0NGZjMDIyMGNmYjU2N2E4MzlkMDM5MmUwYi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ODAxNDk3OTU4NjMwYTgxYjcxYWNlN2M1ZjliMzJhOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM2NWI1NWYyMTBjMGEyMmU5YTE5ZTM1MTkxMjQwZjMyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QxMzAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zMDQ3ODE0ZGY5YTJmMDY3YmQyZDk2YTJiOWMzNmU1YS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNGUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZTk0ODZmMGI0N2E0ZDc2OGE1OTRjYjQxOThjYjFjNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iNDdjNGUxZWNkMDcwOTI3OGY0OTEwYzE4Nzc3YTUwNC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNTgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Q1MmE4NjQ0MDczZDU0YzEzNjc5MzAyY2ExMTgwNjk1LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ZTAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zZjczMjljNTI5M2ZmZDUxMGVkZWY3OGY3Mzg3NGNmZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNzEwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDU4OWE0ODg2MjM5OGVkODBhM2Q2MDY2ZjRmNTZmNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDdhMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDQwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMTNiMjBmZGIwODM0NGUwZTY2NDg2NGNjMmVkZTUzZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkODUwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80NjdjMDE5ZTU4MmVlMzUzNDM1ZWE1YzIxZDEzN2VmNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkOWMwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmNkYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZmNkYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZkNWJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDFdIiwicGYiOjYsInNhIjoiN2Y2NGZkNWJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZkZGJjMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmRkYzcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmRmYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjRiMDAwIiwicHNzIjoiNGM4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9nbGliLTIuMC9zY2hlbWFzL2dzY2hlbWFzLmNvbXBpbGVkIiwicGYiOjQsInNhIjoiN2Y2NGZkZmM5MDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTAxODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUwMWIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmUyMWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlMjFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMjFjMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlMjI1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU0MjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU0MjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlNDI3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmU0MzgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmU2MzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlNjM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmU2MzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTIzOV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2M2EwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFiYzAwIiwic2hyIjoiOGIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3Ivc25hcHNob3RfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlM2EwMDAiLCJzeiI6IjhiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL25hdGl2ZXNfYmxvYi5iaW4iLCJwZiI6NCwic2EiOiI3ZjY0ZmVlYzUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiI0NjAwMCIsInBzcyI6IjUxNDAwIiwic2hyIjoiMjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvaWN1ZHRsLmRhdCIsInBmIjo0LCJzYSI6IjdmNjRmZWYyYjAwMCIsInN6IjoiOWJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCJwZiI6NCwic2EiOiI3ZjY0ZmY4ZTgwMDAiLCJzeiI6ImZmNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDA4ZGMwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMDhlYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDA4ZjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDBhZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAwYWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NSwic2EiOiI3ZjY1MDBhZjIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6MCwic2EiOiI3ZjY1MDBhZjQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo0LCJzYSI6IjdmNjUwMGNmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo2LCJzYSI6IjdmNjUwMGNmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDBjZjYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjAsInNhIjoiN2Y2NTAwY2ZjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjQsInNhIjoiN2Y2NTAwZWZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo2LCJzYSI6IjdmNjUwMGVmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDBlZmUwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDBmMzkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAxMTM4MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDExM2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDExNDAwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAxMTUyMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDEzNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDEzNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTM1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NSwic2EiOiI3ZjY1MDEzNTUwMDAiLCJzeiI6IjdjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjowLCJzYSI6IjdmNjUwMTNkMTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo0LCJzYSI6IjdmNjUwMTVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6Niwic2EiOiI3ZjY1MDE1ZDIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAxNWQ1MDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMTVkZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTdkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE3ZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTdlMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjAsInNhIjoiN2Y2NTAxN2UzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo0LCJzYSI6IjdmNjUwMTllMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjYsInNhIjoiN2Y2NTAxOWUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjUsInNhIjoiN2Y2NTAxOWU1MDAwIiwic3oiOiIyYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDFhMTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDFjMTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAxYzEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjUsInNhIjoiN2Y2NTAxYzE0MDAwIiwic3oiOiJiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjowLCJzYSI6IjdmNjUwMWNkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiZDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjQsInNhIjoiN2Y2NTAxZWQwMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjYsInNhIjoiN2Y2NTAxZWRkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAxZWRmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAxZWU0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIwZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDIwZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDIwZTYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMGU4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyMmU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjJlOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjJlYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMjJlYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNGViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNGVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjRlZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTAyNGY2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjZmNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTAyNmY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTAyNmY3MDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDI3MGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDI5MGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTAyOTBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMjkwZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjowLCJzYSI6IjdmNjUwMjkxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwMjkxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX2luX3Byb2Nlc3NfY29udGV4dC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMjkxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDI5MTQwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjAsInNhIjoiN2Y2NTAyOTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDJiMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDJiM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjUsInNhIjoiN2Y2NTAyYjNiMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDJiNTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDJkNTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTAyZDU2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZDU4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJkNjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyZjVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDJmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMmY2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyZjYzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzE2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzMTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjFiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDMxNjQwMDAiLCJzeiI6ImExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjowLCJzYSI6IjdmNjUwMzIwNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo0LCJzYSI6IjdmNjUwMzQwNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDM0MGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMzQwZTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDM0MzMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMzYzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMzYzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6ImUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDM2MzQwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDM2NGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAzODRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDM4NGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMzg0ZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwMzg1MDAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDM4NzAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo0LCJzYSI6IjdmNjUwM2E2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjo2LCJzYSI6IjdmNjUwM2E3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAzYTczMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAzYTc2MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDNjNzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDNjNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NSwic2EiOiI3ZjY1MDNjNzgwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjowLCJzYSI6IjdmNjUwM2M5MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo0LCJzYSI6IjdmNjUwM2U4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6Niwic2EiOiI3ZjY1MDNlOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NSwic2EiOiI3ZjY1MDNlOTEwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjAsInNhIjoiN2Y2NTAzZWEwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjQsInNhIjoiN2Y2NTA0MGEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo2LCJzYSI6IjdmNjUwNDBhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo1LCJzYSI6IjdmNjUwNDBhMjAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6MCwic2EiOiI3ZjY1MDQwYWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NCwic2EiOiI3ZjY1MDQyYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjYsInNhIjoiN2Y2NTA0MmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjUsInNhIjoiN2Y2NTA0MmFmMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjowLCJzYSI6IjdmNjUwNDM2NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjQsInNhIjoiN2Y2NTA0NTY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjYsInNhIjoiN2Y2NTA0NTZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjUsInNhIjoiN2Y2NTA0NTZkMDAwIiwic3oiOiI0MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDQ1YjAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDQ3YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjYsInNhIjoiN2Y2NTA0N2IxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDQ3YjMwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNDdkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNDlkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDQ5ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIxYzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo1LCJzYSI6IjdmNjUwNDlkMzAwMCIsInN6IjoiM2QwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjowLCJzYSI6IjdmNjUwNGExMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRjMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGMxMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDRjMTEwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YzE4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjQsInNhIjoiN2Y2NTA0ZTE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwNGUxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjUsInNhIjoiN2Y2NTA0ZTFhMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjowLCJzYSI6IjdmNjUwNGUzOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjQsInNhIjoiN2Y2NTA1MDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjYsInNhIjoiN2Y2NTA1MDNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE4MDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MDNiMDAwIiwic3oiOiJhZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjY1MDUwZTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjY1MDUyZTcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y2NTA1MmViMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI2MDAwIiwicHNzIjoiNjA4MDAiLCJzaHIiOiIxMzIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmNjUwNTJlZTAwMCIsInN6IjoiNDJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTcxZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTkxYzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MjMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkyNzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1OTJhMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1OTJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2FsbHBhcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1OTJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDU5MzEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDU5MzQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwNWIzMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWIzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo1LCJzYSI6IjdmNjUwNWIzNjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6MCwic2EiOiI3ZjY1MDViNTUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo0LCJzYSI6IjdmNjUwNWQ1NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjo2LCJzYSI6IjdmNjUwNWQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVkNTgwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA1ZDYxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwNWY2MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjYzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA1ZjY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGlzcGxheV91dGlsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA1ZjY4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA1Zjc3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYxNzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDYxNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjE3ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYxNzkwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNjE3ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDYzN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjM3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImNjMDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTA2MzdmMDAwIiwic3oiOiJlOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDY0NjgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDY2NjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA2NjZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NjcwMDAwIiwic3oiOiI1ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NmNkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY2ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2NmQyMDAwIiwic3oiOiI3OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY3NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2NzRjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjc0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2NzUwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzEwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjUsInNhIjoiN2Y2NTA2NzUxMDAwIiwic3oiOiI0NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjowLCJzYSI6IjdmNjUwNjc5NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjQsInNhIjoiN2Y2NTA2OTk0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjYsInNhIjoiN2Y2NTA2OTk1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5OTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJmZm1wZWcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc4MDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY5YTQwMDAiLCJzeiI6IjQ2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2OWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OWViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNjlmNTAwMCIsInN6IjoiNGEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTA2YTNmMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2YzNmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDZjNDMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZjNGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwNmU0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwNmU0ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU1MDAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU4MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlODYwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmU5YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTljMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlOWUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWE3MDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWJjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWMwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmVjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVjODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZDMwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVkYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWRjMDAwIiwic3oiOiI4OTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmNjUwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjcxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmNzQwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjdjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjdlMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjhlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmOGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIyNDQwMCIsInNociI6IjM5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZjkxMDAwIiwic3oiOiI2YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZmZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDAxMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA3MDEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMTcwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDJlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAzMzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDQ2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzA0OTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDRlMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDY3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo1LCJzYSI6IjdmNjUwNzA3MDAwMCIsInN6IjoiMmUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjowLCJzYSI6IjdmNjUwNzA5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NCwic2EiOiI3ZjY1MDcyOWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo2LCJzYSI6IjdmNjUwNzI5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MjlmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcyYTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3NGEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDc0YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzRhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo1LCJzYSI6IjdmNjUwNzRhNTAwMCIsInN6IjoiNTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjowLCJzYSI6IjdmNjUwNzRmODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc2ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo2LCJzYSI6IjdmNjUwNzZmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NmZhMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ODAwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA3OWZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2EwMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdhMDYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjowLCJzYSI6IjdmNjUwN2EwZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDdjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwN2MwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDdjMTAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjowLCJzYSI6IjdmNjUwN2MxOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDdlMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo2LCJzYSI6IjdmNjUwN2UxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDdlMWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTA3ZTFjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTA4MDFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwODAxZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImNkMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwODAxZjAwMCIsInN6IjoiMWJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4MWRhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDgzZDkwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDgzZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODNkZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo1LCJzYSI6IjdmNjUwODNlNDAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjAsInNhIjoiN2Y2NTA4M2ZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTA4NWY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYWMwMCIsInNociI6IjkzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjUsInNhIjoiN2Y2NTA4NWZhMDAwIiwic3oiOiJlNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjAsInNhIjoiN2Y2NTA4NmUwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo0LCJzYSI6IjdmNjUwODhkZjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjYsInNhIjoiN2Y2NTA4OGU3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDg4ZmYwMDAiLCJzeiI6IjlkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjowLCJzYSI6IjdmNjUwODk5YzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo0LCJzYSI6IjdmNjUwOGI5YjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDhiYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDhiYTIwMDAiLCJzeiI6IjE2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA4ZDBlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwOGYwZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4ZjE1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwOGYxYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTExZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjUsInNhIjoiN2Y2NTA5MTFlMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjAsInNhIjoiN2Y2NTA5MTQ1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo0LCJzYSI6IjdmNjUwOTM0NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjYsInNhIjoiN2Y2NTA5MzQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTM0ODAwMCIsInN6IjoiMzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDkzODAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTU4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTU4NTAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5NWFkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5N2FkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTdiMjAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk3ZDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTlkNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTlkYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIyMDAwIiwic2hyIjoiZGQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk5ZGQwMDAiLCJzeiI6IjEzMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5YjEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOWQwZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDlkMTcwMDAiLCJzeiI6IjNhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDlkNTEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjQsInNhIjoiN2Y2NTA5ZjUwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOWY1NDAwMCIsInN6IjoiMTA1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMDU5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGEyNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGEyNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBhMjVhMDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTI3MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhNDcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhNDczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo1LCJzYSI6IjdmNjUwYTQ3ODAwMCIsInN6IjoiNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjAsInNhIjoiN2Y2NTBhNGU0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjQsInNhIjoiN2Y2NTBhNmU0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYTZlZDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE2ZjIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGE4ZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhOGYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo1LCJzYSI6IjdmNjUwYThmMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjowLCJzYSI6IjdmNjUwYTkwNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFiMDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWIwNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhYjA1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFiMDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZDA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYWQwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZDA5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGFkMGIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhZjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFmMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWYwYzAwMCIsInN6IjoiMTMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjowLCJzYSI6IjdmNjUwYjAzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjIzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGIyM2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2ODAwIiwic2hyIjoiOGMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGIyNDEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMzQ3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjU0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGI1NGEwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTBiNTk5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI3OTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI3OWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiNzliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjc5ZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5OWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDc5NGEwODIxNjY2ZDc5MTkwZDU5YTM2Y2I0ZjQ0YjUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzU2Y2Y0ZjQ3NjlkMGY0YWJjODlhNDg5NWQ3YmQzYWUxLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9iOWQ1MDZjOWFjMDZjMjBiNDMzMzU0ZmE2N2E3Mjk5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMGM5ZWI4MGViZDFjMzY1NDFlYmUyODUyZDNiYjBjNDktbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg1ZTBhNTJjZTY0M2E3YmEyYWU1M2U1ZDY5NDljZWFkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9mNmU2ZTBhNWMzZDJmNmFlMGMwYzJlMGVjZDQyYTk5Ny1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvN2VmMjI5OGZkZTQxY2M2ZWViN2FmNDJlNDhiN2QyOTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzE2MzI2NjgzMDM4YjI4MTc4M2EwZWY4YzY4MGUzYTEwLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84ZjAyZDRjYjA0NWJkNmNlMTU2NjNlNDNmMzQ3YzlmOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YWIwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTBhYTUzYmNmYTUwNGU2NGY4NzgyM2MxNmJjMDFlYjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL3NpdGUiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvbG9jYWwiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi91c2VyLzE1ODE1OC9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5YzAwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5YzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGFyZWRfbWVtb3J5X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5YzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjljYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjRjMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5Y2IwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWU4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWViMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjllZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWYxMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYjlmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWZhMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmEwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDgwMCIsInNociI6IjJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmEwYjAwMCIsInN6IjoiN2EwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhODUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYThkMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmE5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fZW52aXJvbm1lbnRfaW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiJhMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhMDAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmFhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fY29tbW9uX2xpYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmFhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMmIwMDAiLCJwc3MiOiI5NTAwMCIsInNociI6IjE0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmFhZTAwMCIsInN6IjoiMWYwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYzlmMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2FmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjIwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2I2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiY2I5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJjYmMwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDI3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkMjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZDJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiMjU4MDAiLCJzaHIiOiI1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyYzAwMCIsInN6IjoiYTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZDMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGU1MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE3MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZmEwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlMWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmUyMDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTIzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlMjQwMDAiLCJzeiI6IjJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTUyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNTUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX21hbmFnZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmU1YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNWIwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTZhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6IjU0MDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTZkMDAwIiwic3oiOiIxYzMwMDAifSx7ImJzIjp7InBydiI6IjI4MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzAzMDAwMCIsInN6IjoiMjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMwNTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODgwMCIsInNociI6ImUxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMDU5MDAwIiwic3oiOiIxZGQwMDAifSx7ImJzIjp7InBydiI6IjFlMDAwIiwicHNzIjoiMWUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMjM2MDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3Byb3h5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiJiYTgwMCIsInNociI6IjMyMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzI1NjAwMCIsInN6IjoiNTc1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM3Y2IwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM2MDAwIiwicHNzIjoiMzYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjN2NjMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODAyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDcwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODBjMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzgxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjE2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgxNDAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODQzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg0NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ0MDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODQ4MDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4OGYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODkyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYjQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4OTMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGE5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YWYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YjkwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuYXRpdmVfdGhlbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxZDQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGM4MDAwIiwic3oiOiI1ODAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTIwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5MjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzkyYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTJiMDAwIiwic3oiOiIxYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk0ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6IjExNDAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NDkwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOTY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTY3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk2YTAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MjAwMCIsInBzcyI6IjVlYzAwIiwic2hyIjoiMjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTgyMDAwIiwic3oiOiI5NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2ExNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2ExNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2ExYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjE2MDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2ExYzAwMCIsInN6IjoiMmIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTQ3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjdjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTRiMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6Ijc1MDAwIiwicHNzIjoiYmUwMDAiLCJzaHIiOiJlMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E2NTAwMCIsInN6IjoiMWE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNjMGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI3MDAwIiwicHNzIjoiMjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYzBmMDAwIiwic3oiOiIyNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYzM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWU4MDAiLCJzaHIiOiI2MDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2MzNzAwMCIsInN6IjoiZDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2QwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDA4MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QxMDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDI3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QzNjAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2Q0NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDQ5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNkNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGU4MDAiLCJzaHIiOiI0MzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkNGIwMDAiLCJzeiI6IjEwYzAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U1NzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTYwMDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNlNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiNDAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNzEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2U3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFiMDAwIiwicHNzIjoiNDE0MDAiLCJzaHIiOiI3NTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U4MDAwMCIsInN6IjoiMjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQwYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBiZjAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGNiMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNDQwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZDIwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwZWUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzQwMDAiLCJwc3MiOiI0YTgwMCIsInNociI6IjQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQwZjEwMDAiLCJzeiI6ImVkMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDFkZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQxZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDFlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTcwMDAiLCJwc3MiOiIzYmMwMCIsInNociI6IjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDFlZTAwMCIsInN6IjoiMTFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzBlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzE2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMTYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDMxZjAwMCIsInN6IjoiNDIwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzYxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm9uYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzZmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNzQwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzODMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzODQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibHVldG9vdGguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJlODAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM4NjAwMCIsInN6IjoiM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDNjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkM2M1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzYzYwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDNjZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjNhMDAwIiwic2hyIjoiYmYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzZDAwMDAiLCJzeiI6IjMxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjEyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDZlMzAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY3MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4YTQwMCIsInNociI6IjRlMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQ3MDgwMDAiLCJzeiI6IjFkYTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY0YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFhNDAwMCIsInBzcyI6IjFhNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNGFlMDAwIiwic3oiOiIxYTQwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZjY1NzAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjY1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2YTAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2OGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2OGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiJhNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjkwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmE1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmE2MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNmFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNmFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMTQwMDAiLCJwc3MiOiIzYzAwMDAiLCJzaHIiOiI1NTkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZiMDAwMCIsInN6IjoiMTNiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiOWIwMDAiLCJwc3MiOiI5YjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGE2ZDAwMCIsInN6IjoiOWIwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjA4MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTBiMTcwMDAiLCJzeiI6IjJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiM2MwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNDEwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiOGMwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNGYwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGI2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUzMDAwIiwicHNzIjoiOTY0MDAiLCJzaHIiOiJiZTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjcxMDAwIiwic3oiOiIyMDMwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBkNzQwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGQ4NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiNjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGQ4ODAwMCIsInN6IjoiMTYyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGVlYTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBlZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAwIiwicHNzIjoiYzNjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGVmNTAwMCIsInN6IjoiMTBlMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMDAzMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMDA2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAwIiwicHNzIjoiNzAwMDAiLCJzaHIiOiJkMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTAwOTAwMCIsInN6IjoiMTVlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTE2NzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3V1Yy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMTc4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxYmYwMDAiLCJwc3MiOiIyMzU4MDAiLCJzaHIiOiIxN2YwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMTdiMDAwIiwic3oiOiI0ZDIwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY0ZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjczMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2N2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiIyYWMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNjdmMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExNmJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2YzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZjNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmM1MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmUxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiI3ODgwMCIsInNociI6IjExMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExNmUzMDAwIiwic3oiOiIzMDQwMDAifSx7ImJzIjp7InBydiI6IjIzMDAwIiwicHNzIjoiMjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE5ZTcwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYTBjMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRhNDAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYTE0MDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWFjODAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWFjYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYWNkMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYWRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwNTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjBjMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5ZWRfc2VydmljZV9jb3JlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIxOTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIyMjQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMzgwMDAiLCJzeiI6IjViMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWI5MzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJlYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWI5ODAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJiNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmI3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmI5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWJjZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJkMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTkwMDAiLCJwc3MiOiI0ZWMwMCIsInNociI6ImU3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiZDMwMDAiLCJzeiI6IjEyMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZjQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2ZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExZDAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFja10iLCJwZiI6Niwic2EiOiI3ZmZmMmUyNTUwMDAiLCJzeiI6IjIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiJbdmRzb10iLCJwZiI6NSwic2EiOiI3ZmZmMmUzMmYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ilt2c3lzY2FsbF0iLCJwZiI6NSwic2EiOiJmZmZmZmZmZmZmNjAwMDAwIiwic3oiOiIxMDAwIn1dfSwicHJvY2Vzc190b3RhbHMiOnsicmVzaWRlbnRfc2V0X2J5dGVzIjoiNmU5NDAwMCJ9fX0sInR0cyI6ODY4NTI2LCJpZCI6IjB4YWY1OTVkNGM4NWYwMTZiYiJ9LAoreyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjM4LCJ0cyI6MTU3NjY1NTExNDkyMiwicGgiOiJ2IiwiY2F0IjoiZGlzYWJsZWQtYnktZGVmYXVsdC1tZW1vcnktZHVtcHMiLCJuYW1lIjoiVEFTS19FTkQiLCJhcmdzIjp7ImR1bXBzIjp7ImFsbG9jYXRvcnMiOnsibWFsbG9jIjp7ImF0dHJzIjp7ImFsbG9jYXRlZF9vYmplY3RzX2NvdW50Ijp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6Im9iamVjdHMiLCJ2YWx1ZSI6IjAifSwiaW5uZXJfc2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiAiYnl0ZXMiLCJ2YWx1ZSI6IjFlZGZjMjAifSwic2l6ZSI6eyJ0eXBlIjoic2NhbGFyIiwidW5pdHMiOiJieXRlcyIsInZhbHVlIjoiMjM0NzAwMCJ9fX19LCJwcm9jZXNzX21tYXBzIjp7InZtX3JlZ2lvbnMiOlt7ImJzIjp7InBydiI6Ijc1YzAwMCIsInBzcyI6IjdmODgwMCIsInNociI6IjI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NSwic2EiOiI0MDAwMDAiLCJzeiI6IjIwYjYwMDAifSx7ImJzIjp7InBydiI6ImUyMDAwIiwicHNzIjoiZTRjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6NCwic2EiOiIyNGI2MDAwIiwic3oiOiIxYzAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWUiLCJwZiI6Niwic2EiOiIyNjc2MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMjUwMDAiLCJwc3MiOiIyNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyNjhlMDAwIiwic3oiOiIzMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzcxNGFlMDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZWMwMDAiLCJwc3MiOiJlYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI0OWNmYmIwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzgwMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNjY2MDM4MDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2NjYwMzlmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODY4N2YwMDAiLCJzeiI6IjE4MTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZhMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YTA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmEwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZiMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YjA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YzAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmMwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZjMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZkMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZDA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2ZDA2MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkM2UwMDAiLCJzeiI6ImMyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmUwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZlMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjY1MDAwIiwicHNzIjoiNjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZlMDYwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmVmZjAwMCIsInN6IjoiMWY5ODAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjgwZDY1YTAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjViMDAwIiwicHNzIjoiNWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiODBkNjVhMDQwMDAiLCJzeiI6IjFmODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjViZmMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjRkMDAwIiwicHNzIjoiNGQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMTBlN2QzNzAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI0YTgwNTlmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMjRhODA1OWY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo1LCJzYSI6IjI1ZmU0ZmY0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTE3MDAwIiwic3oiOiIyOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMmM2ZTkzNTQwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMmM2ZTkzNTYwMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzMTI2NDY5MDAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFmMDAwIiwicHNzIjoiMWYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MjgyMDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYTIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE4MDAwIiwicHNzIjoiMTgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk1MmMyMDAwIiwic3oiOiIzNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk1MmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxZDYxMDAwIiwicHNzIjoiMWQ2MTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyZjkwMDAiLCJzeiI6IjIxODYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NzQ3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTc0ODAwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiJlNzAwMCIsInBzcyI6ImU3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjNmMGM2YzAwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzZjBjNmMxMDAwMDAiLCJzeiI6IjFmMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvaW5kZXgiLCJwZiI6Niwic2EiOiI3ZjY0ZGI1MGQwMDAiLCJzeiI6IjgxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiI0MDAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uZDJUVXpaIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYjU4ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMDAwIiwic2hyIjoiMjAwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS56V2FTb0cgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNzhlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5EcUdJMzMgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiOThlMDAwIiwic3oiOiI0MDEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uc0NudENRIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRkYzE5MDAwMCIsInN6IjoiNDAxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZmEwMDAiLCJzaHIiOiIxZjQwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlhoWDlkbiAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM1OTEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlQ1ZkU5VCAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM3OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZlMDAwIiwic2hyIjoiZGMwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLlRDM3EyQSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGM4OTEwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkYzk5MTAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2luZGV4IiwicGYiOjYsInNhIjoiN2Y2NGRjOWFmMDAwIiwic3oiOiI0MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRjOWYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyOTddIiwicGYiOjYsInNhIjoiN2Y2NGRjOWYxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZDFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjg0XSIsInBmIjo2LCJzYSI6IjdmNjRkZDFmMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQ5ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQ5ZjMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRlMWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzVdIiwicGYiOjYsInNhIjoiN2Y2NGRlMWY0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiJkODAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGRlOWY0MDAwIiwic3oiOiI0YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRkZWEzZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGRlYzNlMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlY3JldC0xLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGRlYzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ljb25zL2hpY29sb3IvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRkZWM0MjAwMCIsInN6IjoiMjRlZjAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9nbm9tZS9pY29uLXRoZW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGUxMTMxMDAwIiwic3oiOiI1MjA3MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiODQwMCIsInNociI6IjE1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy1Cb2xkLnR0ZiIsInBmIjo0LCJzYSI6IjdmNjRlNjMzODAwMCIsInN6IjoiYWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNjNlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc0XSIsInBmIjo2LCJzYSI6IjdmNjRlNjNlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNjQwMCIsInNociI6IjI1MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTZiZTMwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTZjOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZTZjOWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU3NDlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUzMzRdIiwicGYiOjYsInNhIjoiN2Y2NGU3NDliMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlN2M5YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjcwXSIsInBmIjo2LCJzYSI6IjdmNjRlN2M5YzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg0OWMwMDAiLCJzeiI6IjM0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjowLCJzYSI6IjdmNjRlODRkMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d2ZnMvbGliZ3Zmc2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODZkMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg2ZDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE0MDAwIiwicHNzIjoiMTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo1LCJzYSI6IjdmNjRlODZkNjAwMCIsInN6IjoiMmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg3MDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlODkwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJndmZzZGJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlODkwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4OTA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDgwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjUsInNhIjoiN2Y2NGU4OTA4MDAwIiwic3oiOiI1OTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjAsInNhIjoiN2Y2NGU4OTYxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo0LCJzYSI6IjdmNjRlOGI2MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpYnVzLTEuMC5zby41LjAuNTA1IiwicGYiOjYsInNhIjoiN2Y2NGU4YjYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZThiNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZThiNjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZThiNmIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjRlOGQ2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9pbW1vZHVsZXMvaW0taWJ1cy5zbyIsInBmIjo2LCJzYSI6IjdmNjRlOGQ2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIxMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NSwic2EiOiI3ZjY0ZThkNmQwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjAsInNhIjoiN2Y2NGU4ZDg3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6NCwic2EiOiI3ZjY0ZThmODYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1c21lbnUtZ2xpYi5zby40LjAuMTIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjliMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGY5ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzEiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8wIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmExMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzMiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMiIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmE3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZThmYTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZThmYWEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU5N2FhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjhdIiwicGYiOjYsInNhIjoiN2Y2NGU5N2FiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTlmYWIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTlmYjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTFhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19kbnMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRlYTFiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGVhMWIxMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZWExYmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NGVhM2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2ZpbGVzLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlYTNiZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvbWltZS9taW1lLmNhY2hlIiwicGYiOjQsInNhIjoiN2Y2NGVhM2MwMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVhM2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjZdIiwicGYiOjYsInNhIjoiN2Y2NGVhM2RmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYWJkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY1XSIsInBmIjo2LCJzYSI6IjdmNjRlYWJlMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0ubmNmNzJZIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGViM2UxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjRdIiwicGYiOjYsInNhIjoiN2Y2NGViM2UyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYmJlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYzXSIsInBmIjo2LCJzYSI6IjdmNjRlYmJlMzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWMzZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWMzZTQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjBdIiwicGYiOjYsInNhIjoiN2Y2NGVjYmU1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDNlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NGVkM2VkMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDVlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC1kYnVzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkNWVmMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDYwNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkODA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkODA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NGVkODA3MDAwIiwic3oiOiIxOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDgyMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGVkYTFmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2dtYW5hZ2VyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGVkYTIxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjUsInNhIjoiN2Y2NGVkYTIyMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6MCwic2EiOiI3ZjY0ZWRhMzIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnVkZXYuc28uMS4zLjUiLCJwZiI6NCwic2EiOiI3ZjY0ZWRjMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjYsInNhIjoiN2Y2NGVkYzMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcnVuL3NobS9wdWxzZS1zaG0tNDEyNTA5NTYxNiIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMzAwMCIsInN6IjoiNDAwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYxYzM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTldIiwicGYiOjYsInNhIjoiN2Y2NGYxYzM1MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjI0MzUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjAsInNhIjoiN2Y2NGYyNDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjQsInNhIjoiN2Y2NGYyNjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo2LCJzYSI6IjdmNjRmMjYzZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo1LCJzYSI6IjdmNjRmMjYzZTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjAsInNhIjoiN2Y2NGYyNjZhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzLnNvLjAuNC41IiwicGYiOjQsInNhIjoiN2Y2NGYyODY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo2LCJzYSI6IjdmNjRmMjg2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo1LCJzYSI6IjdmNjRmMjg2YjAwMCIsInN6IjoiMmIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjowLCJzYSI6IjdmNjRmMmIxZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjFjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjQsInNhIjoiN2Y2NGYyZDFkMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6Niwic2EiOiI3ZjY0ZjJkMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4ODAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo1LCJzYSI6IjdmNjRmMmQzYTAwMCIsInN6IjoiMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjowLCJzYSI6IjdmNjRmMmQ2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZjJmNjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliRkxBQy5zby44LjMuMCIsInBmIjo2LCJzYSI6IjdmNjRmMmY2YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGYyZjZiMDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGYyZjgyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmMzE4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjMxODMwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo1LCJzYSI6IjdmNjRmMzE4NTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjAsInNhIjoiN2Y2NGYzMThhMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo0LCJzYSI6IjdmNjRmMzM4OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc3luY25zLnNvLjAuMy4xIiwicGYiOjYsInNhIjoiN2Y2NGYzMzhhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjUsInNhIjoiN2Y2NGYzMzhiMDAwIiwic3oiOiI2MTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjowLCJzYSI6IjdmNjRmMzNlYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjQsInNhIjoiN2Y2NGYzNWVjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNuZGZpbGUuc28uMS4wLjI1IiwicGYiOjYsInNhIjoiN2Y2NGYzNWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM1ZWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjUsInNhIjoiN2Y2NGYzNWYzMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjowLCJzYSI6IjdmNjRmMzVmYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo0LCJzYSI6IjdmNjRmMzdmYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmMzdmYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGYzN2ZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTddIiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6ImUwMDAiLCJwc3MiOiIxN2MwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmM2ZmZTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZjQwNjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmNDI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uLTQuMC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmNDI2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRmNDI2NTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjRmNDI2ZjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NGY0NDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlianNvbi1jLnNvLjIuMC4wIiwicGYiOjYsInNhIjoiN2Y2NGY0NDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NSwic2EiOiI3ZjY0ZjQ0NzAwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjowLCJzYSI6IjdmNjRmNDRiNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB1bHNlLnNvLjAuMTYuMiIsInBmIjo0LCJzYSI6IjdmNjRmNDZiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNDZiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU2XSIsInBmIjo2LCJzYSI6IjdmNjRmNDZiYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjRlYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjRlYmIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY1NmJiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTRdIiwicGYiOjYsInNhIjoiN2Y2NGY1NmJjMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNWViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUzXSIsInBmIjo2LCJzYSI6IjdmNjRmNWViZDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjY2YmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Ml0iLCJwZiI6Niwic2EiOiI3ZjY0ZjY2YmUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTFdIiwicGYiOjYsInNhIjoiN2Y2NGY2ZWJmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNzZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUwXSIsInBmIjo2LCJzYSI6IjdmNjRmNzZjMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjdlYzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0OV0iLCJwZiI6Niwic2EiOiI3ZjY0ZjdlYzEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY4NmMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDhdIiwicGYiOjYsInNhIjoiN2Y2NGY4NmMyMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjFhNjAwMCIsInBzcyI6IjFhZDAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3Jlc291cmNlcy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjhlYzIwMDAiLCJzeiI6ImZjNTAwMCJ9LHsiYnMiOnsicHJ2IjoiZjAwMCIsInBzcyI6IjEyODAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9sb2NhbGVzL2VuLVVTLnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWU4NzAwMCIsInN6IjoiMzIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMjAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY5ZWI5MDAwIiwic3oiOiIxYWYwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmVjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZV8xMDBfcGVyY2VudC5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZmEwNjgwMDAiLCJzeiI6IjEzNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjFkMDAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhMTlkMDAwIiwic3oiOiI4NDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTIyMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE0MjAwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhNDM1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE0NDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjNjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTQ0MjAwMCIsInN6IjoiNzgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE0YmEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYTZiYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGliZnJlZWJsMy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTZiYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNmJkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDAwMCIsInNociI6Ijc3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjUsInNhIjoiN2Y2NGZhNmMxMDAwIiwic3oiOiJiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjAsInNhIjoiN2Y2NGZhNzc1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo0LCJzYSI6IjdmNjRmYTk3NTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzcWxpdGUzLnNvLjAuOC42IiwicGYiOjYsInNhIjoiN2Y2NGZhOTc3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmE5NzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAwIiwicHNzIjoiMjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5MWnpjN3AgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGZhOTdhMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6IjMwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE5OWIwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjowLCJzYSI6IjdmNjRmYTlkYjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJzb2Z0b2tuMy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmYWJkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2NvbnYvZ2NvbnYtbW9kdWxlcy5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRmYWJkZDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDddIiwicGYiOjYsInNhIjoiN2Y2NGZhYmU1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmFiZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZmFiZWQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiM2VkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZmIzZWUwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZiYmVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDRdIiwicGYiOjYsInNhIjoiN2Y2NGZiYmVmMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYzNlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQzXSIsInBmIjo2LCJzYSI6IjdmNjRmYzNmMDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9mb250cy90cnVldHlwZS9kZWphdnUvRGVqYVZ1U2Fucy50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZmNiZjAwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6ImUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzZhYTQxYWEyMmUxOGI4ZmEwNmExMmRhMjhlYTljMjhiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NhNjAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9jMDU4ODBkZTU3ZDFmNWU5NDhmZGZhY2MxMzg3NzVkOS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOTQ1Njc3ZWI3YWVhZjYyZjFkNTBlZmMzZmIzZWM3ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2I1MDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMmNkMTc2MTVjYTU5NGZhMjk1OWFlMTczMjkyZTUwNGMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2MwMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2ZkOTUwNTk1MGMwNDhhNzdkYzRiNzEwZWI2YTYyOGVkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kZGM3OWQzZWEwNmE3YzZmZmE4NmVkZTg1ZjNiYjVkZi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTcwNzFmNGEyOWZhODcwZjQzMjMzMjFjMTU0ZWJhMDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2EyYWI3NDc2NGIwNzI3OWU3YzM2ZGRiMWQzMDJjZjI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2M2OWYwNGFiMDUwMDRlMzFhNmQ1ZTcxNTc2NGYxNmQ4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjYTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wZDhjM2IyYWMwOTA0Y2I4YTU3YTc1N2FkMTFhNGEwOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNjQ2YWRkYjg0NDRmYWE3NGVlMTM4YWEwMGFiMGI2YTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTc1NWFmZTRhMDhiZjViOTc4NTJjZWI3NDAwYjQ3YmMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2QwMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMjBiZDc5YWQ5NzA5NDQwNmY3ZDFiOTY1NGJmYmQ5MjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2Q3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOWMwNjI0MTA4YjlhMmFlODU1MmY2NjQxMjViZTgzNTYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RhMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmQ0MTI4OGZkNzBiMGJlMjJlOGMzYTkxZTAzMmVlYzAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2RmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RhMWJkNWNhODQ0M2ZmZTIyOTI3YTIzY2U0MzFkMTk4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNjM1NGUzYWM0M2FmNjdiZDhkN2I4ZTQzYzM0ZTQ5Zi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZTUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzA0YWFiYzBhNzhhYzAxOWNmOTQ1NDM4OTk3NzExNmQyLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NmMDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMWFjOWViODAzOTQ0ZmRlMTQ2MTM4Yzc5MWY1Y2M1NmEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzM4NWMwNjA0YTE4ODE5OGYwNGQxMzNlNTRhYmE3ZmU3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kYzA1ZGI2NjY0Mjg1Y2MyZjEyYmY2OWMxMzlhZTRjMy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNGYzZTMwMzdjOTk4MGM4M2I1M2E5MzUxZWZhZGVmNjItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzc2N2E4MjQ0ZmMwMjIwY2ZiNTY3YTgzOWQwMzkyZTBiLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjUwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzg4MDE0OTc5NTg2MzBhODFiNzFhY2U3YzVmOWIzMmE4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwZTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzY1YjU1ZjIxMGMwYTIyZTlhMTllMzUxOTEyNDBmMzItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDEzMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzMwNDc4MTRkZjlhMmYwNjdiZDJkOTZhMmI5YzM2ZTVhLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q0ZTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RlOTQ4NmYwYjQ3YTRkNzY4YTU5NGNiNDE5OGNiMWM2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I0N2M0ZTFlY2QwNzA5Mjc4ZjQ5MTBjMTg3NzdhNTA0LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q1ODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZDUyYTg2NDQwNzNkNTRjMTM2NzkzMDJjYTExODA2OTUtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDVlMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjgwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzNmNzMyOWM1MjkzZmZkNTEwZWRlZjc4ZjczODc0Y2ZkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3MTAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTg5YTQ4ODYyMzk4ZWQ4MGEzZDYwNjZmNGY1NmY0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkN2EwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0NDAwIiwic2hyIjoiMTcwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UxM2IyMGZkYjA4MzQ0ZTBlNjY0ODY0Y2MyZWRlNTNkLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q4NTAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ2N2MwMTllNTgyZWUzNTM0MzVlYTVjMjFkMTM3ZWY2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q5YzAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmY2RiYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQyXSIsInBmIjo2LCJzYSI6IjdmNjRmY2RiYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmQ1YmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0MV0iLCJwZiI6Niwic2EiOiI3ZjY0ZmQ1YmMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmRkYmMwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjowLCJzYSI6IjdmNjRmZGRjNzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmRjb25mc2V0dGluZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZGZjODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNGIwMDAiLCJwc3MiOiI0YzgwMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvZ3NjaGVtYXMuY29tcGlsZWQiLCJwZiI6NCwic2EiOiI3ZjY0ZmRmYzkwMDAiLCJzeiI6IjRmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZlMDE4MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTAxYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTIxYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmUyMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUyMWMwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJwaXhtYXAuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmUyMjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmU0MjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTQzODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZTYzNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wL21vZHVsZXMvbGlib3ZlcmxheS1zY3JvbGxiYXIuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmU2MzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZTYzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjM5XSIsInBmIjo2LCJzYSI6IjdmNjRmZTYzYTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWJjMDAiLCJzaHIiOiI4YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9zbmFwc2hvdF9ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWUzYTAwMCIsInN6IjoiOGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2YzAwIiwic2hyIjoiMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbmF0aXZlc19ibG9iLmJpbiIsInBmIjo0LCJzYSI6IjdmNjRmZWVjNTAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjQ2MDAwIiwicHNzIjoiNTE0MDAiLCJzaHIiOiIyMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9pY3VkdGwuZGF0IiwicGYiOjQsInNhIjoiN2Y2NGZlZjJiMDAwIiwic3oiOiI5YmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL2xvY2FsZS9sb2NhbGUtYXJjaGl2ZSIsInBmIjo0LCJzYSI6IjdmNjRmZjhlODAwMCIsInN6IjoiZmY0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMDhkYzAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwOGVjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMDhmMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMGFlZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDBhZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjo1LCJzYSI6IjdmNjUwMGFmMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtleXV0aWxzLnNvLjEuNCIsInBmIjowLCJzYSI6IjdmNjUwMGFmNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjQsInNhIjoiN2Y2NTAwY2Y0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjYsInNhIjoiN2Y2NTAwY2Y1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMGNmNjAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDBjZmMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDBlZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjYsInNhIjoiN2Y2NTAwZWZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMGVmZTAwMCIsInN6IjoiM2IwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMGYzOTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnAxMS1raXQuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDExMzgwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTEzZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwMTE0MDAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGFzbjEuc28uNi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDExNTIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTM1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMTM1MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxMzU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo1LCJzYSI6IjdmNjUwMTM1NTAwMCIsInN6IjoiN2MwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjAsInNhIjoiN2Y2NTAxM2QxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjQsInNhIjoiN2Y2NTAxNWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NyeXB0LnNvLjExLjguMiIsInBmIjo2LCJzYSI6IjdmNjUwMTVkMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE1ZDUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAxNWRmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAxN2RlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTdkZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjUsInNhIjoiN2Y2NTAxN2UwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE3ZTMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNvbV9lcnIuc28uMi4xIiwicGYiOjQsInNhIjoiN2Y2NTAxOWUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDE5ZTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMTllNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE5ZTUwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMWExMTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMWMxMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrNWNyeXB0by5zby4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDFjMTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDFjMTQwMDAiLCJzeiI6ImJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjUuc28uMy4zIiwicGYiOjAsInNhIjoiN2Y2NTAxY2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDFlZDAwMDAiLCJzeiI6ImQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDFlZGQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDFlZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRtY3Auc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDFlZTQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjBlMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjBlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMjBlNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIwZTgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDIyZTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMmU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMmVhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpbmVyYW1hLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyMmVjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI0ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI0ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjRlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAyNGVlMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDI0ZjYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aGFpLnNvLjAuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAyNmY1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDI2ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDI2ZjcwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwMjcwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwMjkwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2Z0Mi0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAyOTBkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAyOTEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAyOTExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfaW5fcHJvY2Vzc19jb250ZXh0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAyOTEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwMjkxNDAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy1nbGliLTEuc28uMi4yLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDI5MzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwMmIzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwMmIzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDJiM2IwMDAiLCJzeiI6IjFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjowLCJzYSI6IjdmNjUwMmI1NTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwMmQ1NDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncmFwaGl0ZTIuc28uMy4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDJkNTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJkNTgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmQ2MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1yZW5kZXIuc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDJmNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMmY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyZjYxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDJmNjMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Itc2htLnNvLjAuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzMTYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDMxNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiMWIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo1LCJzYSI6IjdmNjUwMzE2NDAwMCIsInN6IjoiYTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjAsInNhIjoiN2Y2NTAzMjA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjQsInNhIjoiN2Y2NTAzNDA1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBpeG1hbi0xLnNvLjAuMzAuMiIsInBmIjo2LCJzYSI6IjdmNjUwMzQwYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjQwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjUsInNhIjoiN2Y2NTAzNDBlMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBuZzEyLnNvLjAuNTAuMCIsInBmIjowLCJzYSI6IjdmNjUwMzQzMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjQsInNhIjoiN2Y2NTAzNjMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjYsInNhIjoiN2Y2NTAzNjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwMzYzNDAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwMzY0YjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicmVzb2x2LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDM4NGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwMzg0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzODRkMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjkwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTAzODUwMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNlbGludXguc28uMSIsInBmIjowLCJzYSI6IjdmNjUwMzg3MDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjQsInNhIjoiN2Y2NTAzYTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjYsInNhIjoiN2Y2NTAzYTcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDNhNzMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxkczQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDNhNzYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwM2M3NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwM2M3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo1LCJzYSI6IjdmNjUwM2M3ODAwMCIsInN6IjoiMTgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjAsInNhIjoiN2Y2NTAzYzkwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjQsInNhIjoiN2Y2NTAzZThmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliei5zby4xLjIuOCIsInBmIjo2LCJzYSI6IjdmNjUwM2U5MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo1LCJzYSI6IjdmNjUwM2U5MTAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6MCwic2EiOiI3ZjY1MDNlYTAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6NCwic2EiOiI3ZjY1MDQwYTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjYsInNhIjoiN2Y2NTA0MGExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjUsInNhIjoiN2Y2NTA0MGEyMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjowLCJzYSI6IjdmNjUwNDBhZDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo0LCJzYSI6IjdmNjUwNDJhYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6Niwic2EiOiI3ZjY1MDQyYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjU0MDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NSwic2EiOiI3ZjY1MDQyYWYwMDAiLCJzeiI6ImI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdudXRscy5zby4yNi4yMi42IiwicGYiOjAsInNhIjoiN2Y2NTA0MzY1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6NCwic2EiOiI3ZjY1MDQ1NjUwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6Niwic2EiOiI3ZjY1MDQ1NmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6NSwic2EiOiI3ZjY1MDQ1NmQwMDAiLCJzeiI6IjQzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwNDViMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo0LCJzYSI6IjdmNjUwNDdiMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnc3NhcGlfa3JiNS5zby4yLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ3YjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNDdiMzAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA0N2QwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA0OWQwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNDlkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjFjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjUsInNhIjoiN2Y2NTA0OWQzMDAwIiwic3oiOiIzZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjAsInNhIjoiN2Y2NTA0YTEwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwY3JlLnNvLjMuMTMuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGMwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjYsInNhIjoiN2Y2NTA0YzEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwNGMxMTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRjMTgwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDRlMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjYsInNhIjoiN2Y2NTA0ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NSwic2EiOiI3ZjY1MDRlMWEwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdka19waXhidWYtMi4wLnNvLjAuMzAwMC43IiwicGYiOjAsInNhIjoiN2Y2NTA0ZTM5MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6NCwic2EiOiI3ZjY1MDUwMzkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6Niwic2EiOiI3ZjY1MDUwM2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTgwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUwM2IwMDAiLCJzeiI6ImFkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjowLCJzYSI6IjdmNjUwNTBlODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo0LCJzYSI6IjdmNjUwNTJlNzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6Niwic2EiOiI3ZjY1MDUyZWIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTJlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjYwMDAiLCJwc3MiOiI2MDgwMCIsInNociI6IjEzMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjUsInNhIjoiN2Y2NTA1MmVlMDAwIiwic3oiOiI0MmYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1NzFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1OTFjMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmd0ay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyMzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTI3MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDU5MmEwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDU5MmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3YWxscGFwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDU5MmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNTkzMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNTkzMTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbW9kdWxlLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwNTkzNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA1YjMzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1YjM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjUsInNhIjoiN2Y2NTA1YjM2MDAwIiwic3oiOiIxZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdGstMS4wLnNvLjAuMjEwMDkuMSIsInBmIjowLCJzYSI6IjdmNjUwNWI1NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjQsInNhIjoiN2Y2NTA1ZDU1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjYsInNhIjoiN2Y2NTA1ZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWQ1ODAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVkNjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTA1ZjYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDVmNjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkaXNwbGF5X3V0aWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDVmNjgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGkuc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDVmNzcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjE3NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjE3NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjE3OTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTA2MTdlMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHRzdC5zby42LjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjM3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MzdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiY2MwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDYzN2YwMDAiLCJzeiI6ImU5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwNjQ2ODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwNjY2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc291bmQuc28uMi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDY2NmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjE1ODAwIiwic2hyIjoiMzMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2NzAwMDAiLCJzeiI6IjVkMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY2Y2QwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjZkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDY2ZDIwMDAiLCJzeiI6Ijc5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjc0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY3NGMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NzRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY3NTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NSwic2EiOiI3ZjY1MDY3NTEwMDAiLCJzeiI6IjQ0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGJ1cy0xLnNvLjMuNy42IiwicGYiOjAsInNhIjoiN2Y2NTA2Nzk1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6NCwic2EiOiI3ZjY1MDY5OTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6Niwic2EiOiI3ZjY1MDY5OTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjk5NjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmZmbXBlZy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzgwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjlhNDAwMCIsInN6IjoiNDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDY5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDY5ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGYuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjllZDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIzYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2OWY1MDAwIiwic3oiOiI0YTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDZhM2YwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZjM2YwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ28tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2YzQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwNmM0MzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nb2NhaXJvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmM0ZTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTRlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTRmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTUwMDAwIiwic3oiOiIzMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTgyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlODUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU4NjAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmU5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZTlhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlOWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmU5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmU5ZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlYTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiYzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYTcwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmViZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZWM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWM4MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkMzAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlZDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZWRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMTQwMCIsInNociI6IjM0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlZGMwMDAiLCJzeiI6Ijg5MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY2NTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsX3dyYXBwZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmNzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3NDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmN2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmN2UwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGYuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZmOGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjI0NDAwIiwic2hyIjoiMzkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZmOTEwMDAiLCJzeiI6IjZhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZmZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmZmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMDEwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDcwMTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAxNzAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwMmUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHVfYmxpbmsuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMzEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDMzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDQ5MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNGUwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfdXRpbHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDcwNjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiYzgwMCIsInNociI6IjE5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjUsInNhIjoiN2Y2NTA3MDcwMDAwIiwic3oiOiIyZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjAsInNhIjoiN2Y2NTA3MDllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NvbmYtMi5zby40LjEuNSIsInBmIjo0LCJzYSI6IjdmNjUwNzI5ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjYsInNhIjoiN2Y2NTA3MjllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcyOWYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzJhMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsYzQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDc0YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzRhMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3NGE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3NGE1MDAwIiwic3oiOiI1MzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3NGY4MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaGFyZmJ1enouc28uMC45MjcuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzZmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3NmY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMmMwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc2ZmEwMDAiLCJzeiI6IjEwNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc4MDAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDc5ZmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY2Fpcm8uc28uMi4xMTMwMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YTAyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2EwNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTA3YTBmMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJlbmRlci5zby4xLjMuMCIsInBmIjo0LCJzYSI6IjdmNjUwN2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTA3YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo1LCJzYSI6IjdmNjUwN2MxMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjAsInNhIjoiN2Y2NTA3YzE5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGN1cnNvci5zby4xLjAuMiIsInBmIjo0LCJzYSI6IjdmNjUwN2UxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjYsInNhIjoiN2Y2NTA3ZTE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwN2UxYTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdlMWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDgwMWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTA4MDFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzODAwIiwic2hyIjoiY2QwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA4MDFmMDAwIiwic3oiOiIxYmIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDgxZGEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwODNkOTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwODNkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY2Nfcy5zby4xIiwicGYiOjUsInNhIjoiN2Y2NTA4M2U0MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDgzZmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDg1ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJhYzAwIiwic2hyIjoiOTMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NSwic2EiOiI3ZjY1MDg1ZmEwMDAiLCJzeiI6ImU2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6MCwic2EiOiI3ZjY1MDg2ZTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzdGRjKysuc28uNi4wLjE5IiwicGYiOjQsInNhIjoiN2Y2NTA4OGRmMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6Niwic2EiOiI3ZjY1MDg4ZTcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODhlOTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo1LCJzYSI6IjdmNjUwODhmZjAwMCIsInN6IjoiOWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjAsInNhIjoiN2Y2NTA4OTljMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjQsInNhIjoiN2Y2NTA4YjliMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZyZWV0eXBlLnNvLjYuMTEuMSIsInBmIjo2LCJzYSI6IjdmNjUwOGJhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiJlMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwOGJhMjAwMCIsInN6IjoiMTZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDhkMGUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTA4ZjBkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDhmMTEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOGYxMzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDhmMTUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA4ZjFjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5MTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOTExYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5MTFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMWMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDkxMWUwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDkxNDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmV4cGF0LnNvLjEuNi4wIiwicGYiOjQsInNhIjoiN2Y2NTA5MzQ1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDkzNDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMjcwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5MzQ4MDAwIiwic3oiOiIzODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3ByNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTM4MDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5NTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5NTgxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk1ODIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5NTg1MDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDk1YWQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk3YWQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic21pbWUzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5N2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDk3YjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiMWQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5N2IyMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3N1dGlsMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTdkNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5OWQ2MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5OWRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjIwMDAiLCJzaHIiOiJkZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOTlkZDAwMCIsInN6IjoiMTMzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDliMTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA5ZDBmMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDlkMTQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOWQxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo1LCJzYSI6IjdmNjUwOWQxNzAwMCIsInN6IjoiM2EwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjowLCJzYSI6IjdmNjUwOWQ1MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZvbnRjb25maWcuc28uMS44LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDlmNTAwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo2LCJzYSI6IjdmNjUwOWY1MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5ZjUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5ZjU0MDAwIiwic3oiOiIxMDUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGEwNTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYTI1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYTI1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGEyNWEwMDAiLCJzeiI6IjE5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHRocmVhZC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBhMjczMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGE0NzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGE0NzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYTQ3NDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjUsInNhIjoiN2Y2NTBhNDc4MDAwIiwic3oiOiI2YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6MCwic2EiOiI3ZjY1MGE0ZTQwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NCwic2EiOiI3ZjY1MGE2ZTQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY3Vwcy5zby4yIiwicGYiOjYsInNhIjoiN2Y2NTBhNmViMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGE2ZWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTBhNmVkMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYTZmMjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwYThmMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGE4ZjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjUsInNhIjoiN2Y2NTBhOGYzMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjAsInNhIjoiN2Y2NTBhOTA0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGV4dC5zby42LjQuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWIwMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjYsInNhIjoiN2Y2NTBhYjA0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFiMDUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjowLCJzYSI6IjdmNjUwYWIwNzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkYW1hZ2Uuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFkMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWQwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhZDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFkMDkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwYWQwYjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjb21wb3NpdGUuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGFmMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwYWYwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI3MDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjUsInNhIjoiN2Y2NTBhZjBjMDAwIiwic3oiOiIxMzAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjAsInNhIjoiN2Y2NTBiMDNjMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjQsInNhIjoiN2Y2NTBiMjNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlgxMS5zby42LjMuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjIzZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiI4YzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjI0MTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGIzNDcwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTBiNTQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MGI1NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjU0ODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo1LCJzYSI6IjdmNjUwYjU0YTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ29iamVjdC0yLjAuc28uMC40MDAyLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGI1OTkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo0LCJzYSI6IjdmNjUwYjc5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjc5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI3OWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiNzllMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOTlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjk5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80Nzk0YTA4MjE2NjZkNzkxOTBkNTlhMzZjYjRmNDRiNS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5OWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNTZjZjRmNDc2OWQwZjRhYmM4OWE0ODk1ZDdiZDNhZTEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2I5ZDUwNmM5YWMwNmMyMGI0MzMzNTRmYTY3YTcyOTkzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8wYzllYjgwZWJkMWMzNjU0MWViZTI4NTJkM2JiMGM0OS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvODVlMGE1MmNlNjQzYTdiYTJhZTUzZTVkNjk0OWNlYWQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Y2ZTZlMGE1YzNkMmY2YWUwYzBjMmUwZWNkNDJhOTk3LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy83ZWYyMjk4ZmRlNDFjYzZlZWI3YWY0MmU0OGI3ZDI5My1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTUwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMTYzMjY2ODMwMzhiMjgxNzgzYTBlZjhjNjgwZTNhMTAtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE5MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImQwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzhmMDJkNGNiMDQ1YmQ2Y2UxNTY2M2U0M2YzNDdjOWY4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhYjAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lMGFhNTNiY2ZhNTA0ZTY0Zjg3ODIzYzE2YmMwMWViNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ldGMvZGNvbmYvZGIvc2l0ZSIsInBmIjo0LCJzYSI6IjdmNjUwYjliOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2V0Yy9kY29uZi9kYi9sb2NhbCIsInBmIjo0LCJzYSI6IjdmNjUwYjliYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjIwMDAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvZGNvbmYvdXNlciIsInBmIjo0LCJzYSI6IjdmNjUwYjliYjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3VzZXIvMTU4MTU4L2Rjb25mL3VzZXIiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljMDAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjljODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoYXJlZF9tZW1vcnlfc3VwcG9ydC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjljOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiOWNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNGMwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjljYjAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5ZTgwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnaW4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWVlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjllZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZjEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiOWY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjlmNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGI5ZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYjlmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGI5ZmEwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmEwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkODAwIiwic2hyIjoiMmMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTBiMDAwIiwic3oiOiI3YTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE4NTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX3NoYXJlZC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE4YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhOGQwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYTk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmE5ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmE5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYTliMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19lbnZpcm9ubWVudF9pbXBsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6ImEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWEwMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYWFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19jb21tb25fbGliLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYWFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyYjAwMCIsInBzcyI6Ijk1MDAwIiwic2hyIjoiMTQ3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiYWFlMDAwIiwic3oiOiIxZjAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmM5ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjOWYwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmNiMDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiMjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjYjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2I3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJjYjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiY2JhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmNiYzAwMCIsInN6IjoiNjYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkMjIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkb21haW5fcmVsaWFiaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmQyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkMjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmQyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZDJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkMmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiIyNTgwMCIsInNociI6IjViMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZDJjMDAwIiwic3oiOiJhNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZGQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMTAwMCIsInBzcyI6IjExMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmRkMzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhcHBfbGlzdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmRlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkZTUwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmRmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkZjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZGY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJkZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTcwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmRmYTAwMCIsInN6IjoiMjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmUxZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTIwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlMjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmUyNDAwMCIsInN6IjoiMmQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJlNTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNTIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJndGsydWkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfbWFuYWdlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU1OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZTVhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU1YjAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlNmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiNTQwMDAiLCJzaHIiOiJkYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJlNmQwMDAiLCJzeiI6IjFjMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjgwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjMDMwMDAwIiwic3oiOiIyODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzA1ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4ODAwIiwic2hyIjoiZTEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGMwNTkwMDAiLCJzeiI6IjFkZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMWUwMDAiLCJwc3MiOiIxZTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGMyMzYwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfcHJveHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGMyNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzI1NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImI3YzAwIiwic2hyIjoiMzIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjMjU2MDAwIiwic3oiOiI1NzUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzdjYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzYwMDAiLCJwc3MiOiIzNjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM3Y2MwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MDIwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzgwNzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4MGMwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzgxMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODEyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4MTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODE0MDAwIiwic3oiOiIyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4NDMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODQ0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzg0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjODQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiZDQwMCIsInNociI6IjM1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4NDgwMDAiLCJzeiI6IjQ3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzg4ZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam9fc3lzdGVtX2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4OTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiJiNDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzg5MzAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhhNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGE3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM4YTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YTkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOGFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhhZjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhiOTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzhjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhjNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5hdGl2ZV90aGVtZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiZTAwMCIsInBzcyI6IjFkNDAwIiwic2hyIjoiMzAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4YzgwMDAiLCJzeiI6IjU4MDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVzc2FnZV9jZW50ZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5MjAwMDAiLCJzeiI6IjkwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzkyOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjOTJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiNTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5MmIwMDAiLCJzeiI6IjFiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTQ4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJkMDAwIiwicHNzIjoiMTE0MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk0OTAwMCIsInN6IjoiMWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM5NjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5NjcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2NDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTZhMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM5N2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhY2Nlc3NpYmlsaXR5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTgwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM5ODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUyMDAwIiwicHNzIjoiNWVjMDAiLCJzaHIiOiIyOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5ODIwMDAiLCJzeiI6Ijk0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjYTE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTE3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2NtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTFiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJmMDAwIiwicHNzIjoiMTYwMDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTFjMDAwIiwic3oiOiIyYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhNDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjYTRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiN2MwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhNGIwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2E2MDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYnZpZXcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2E2NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzUwMDAiLCJwc3MiOiJiZTAwMCIsInNociI6ImUwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYTY1MDAwIiwic3oiOiIxYTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2MwZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjcwMDAiLCJwc3MiOiIyNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNjMGYwMDAiLCJzeiI6IjI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNjMzYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxZTgwMCIsInNociI6IjYwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjYzM3MDAwIiwic3oiOiJkMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjZDA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMDgwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QwZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM0MDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDEwMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWJvYXJkLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDIyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkMjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2QyNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMjcwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjFjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDM2MDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZDQ3MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNkNDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2Q0YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiI0ZTgwMCIsInNociI6IjQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfYnJvd3Nlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2Q0YjAwMCIsInN6IjoiMTBjMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTU3MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZTVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiODQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlNjAwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjowLCJzYSI6IjdmNjUwY2U2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U3MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjZTdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwY2U3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiI0MjQwMCIsInNociI6Ijc1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTgwMDAwIiwic3oiOiIyM2UwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDBiZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMGJmMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQwY2IwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI0NDAwIiwic2hyIjoiYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBkMjAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmludGluZy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDBlZTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMGYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNDAwMCIsInBzcyI6IjRhODAwIiwic2hyIjoiNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDBmMTAwMCIsInN6IjoiZWQwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMWRlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicG9saWN5X2NvbXBvbmVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDFlNTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMWVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNzAwMCIsInBzcyI6IjNiYzAwIiwic2hyIjoiNjQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMWVlMDAwIiwic3oiOiIxMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzMGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzMGUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzMTYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDMxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIxNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzFmMDAwIiwic3oiOiI0MjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNjEwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkYnVzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzY1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlib25jLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzZkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzNmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNmYwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzcyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjM4MDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM3NDAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDM4MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM4NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsdWV0b290aC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDM4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImU4MDAiLCJzaHIiOiJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzg2MDAwIiwic3oiOiIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkM2M0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDNjNjAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkM2NmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiM2EwMDAiLCJzaHIiOiJiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDNkMDAwMCIsInN6IjoiMzEyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQ2ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMTIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkNmUzMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkNmY1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQ2ZjcwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMThhNDAwIiwic2hyIjoiNGUzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDcwODAwMCIsInN6IjoiMWRhNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjowLCJzYSI6IjdmNjUwZjRhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWE0MDAwIiwicHNzIjoiMWE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua193ZWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY0YWUwMDAiLCJzeiI6IjFhNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY1MjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBmNjU3MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2NjUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2NjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2NjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2ODAwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNjZhMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjY4ZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmlwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY4ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6ImE0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2OTAwMDAiLCJzeiI6IjE0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjZhNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlc3Npb25zX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIyODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2YTYwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGY2YWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGY2YWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGY2YWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIzMjAwMCIsInBzcyI6IjNkZTQwMCIsInNociI6IjU1YjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBmNmIwMDAwIiwic3oiOiIxM2JkMDAwIn0seyJicyI6eyJwcnYiOiI5YjAwMCIsInBzcyI6IjliMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYTZkMDAwIiwic3oiOiI5YjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiMDgwMDAiLCJzeiI6ImYwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMGIxNzAwMCIsInN6IjoiMmEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIzYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0MTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjRkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBiNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiI4YzAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI0ZjAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwYjZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9idWZfbGl0ZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGI3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTMwMDAiLCJwc3MiOiI5NjQwMCIsInNociI6ImJlMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBiNzEwMDAiLCJzeiI6IjIwMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTMwMDAiLCJwc3MiOiIxMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMGQ3NDAwMCIsInN6IjoiMTMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwZDg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiMjgwMDAiLCJzaHIiOiI2NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZDg4MDAwIiwic3oiOiIxNjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwZWVhMDAwIiwic3oiOiJhMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3luYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGVmNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMDAiLCJwc3MiOiJjM2MwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3FsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwZWY1MDAwIiwic3oiOiIxMGUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTEwMDMwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTEwMDYwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTAwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMDAiLCJwc3MiOiI3MDAwMCIsInNociI6ImQzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExMDA5MDAwIiwic3oiOiIxNWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExMTY3MDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdXVjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExMTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTExNzgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjFiZjAwMCIsInBzcyI6IjIzNTgwMCIsInNociI6IjE3ZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTExN2IwMDAiLCJzeiI6IjRkMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNjRkMDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTY3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExNjcxMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2NzMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTY3ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNjdlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNjAwMCIsInBzcyI6IjJhYzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2N2YwMDAiLCJzeiI6IjQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTE2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTZjMDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNmM0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNzQwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2YzUwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3JjcnlwdG8uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2ZTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6Ijc4ODAwIiwic2hyIjoiMTEzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTE2ZTMwMDAiLCJzeiI6IjMwNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjMwMDAiLCJwc3MiOiIyMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTllNzAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYTBhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhMGMwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjM5MDAwIiwicHNzIjoiNGE0MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhMTQwMDAiLCJzeiI6ImI0MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYWM4MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYWNjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFhY2QwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjFmMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFhZGQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjA1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjowLCJzYSI6IjdmNjUxMWIwODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMDkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI1NDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMGMwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6MCwic2EiOiI3ZjY1MTFiMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiMTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXllZF9zZXJ2aWNlX2NvcmUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0ODAwIiwic2hyIjoiMTgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjE5MDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMjAwMCIsInBzcyI6IjIyNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIzODAwMCIsInN6IjoiNWIwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjkzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWI5NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiYjAwMCIsInBzcyI6ImVjMDAiLCJzaHIiOiJkMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjk4MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmI1MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWJiODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiYjkwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYmNmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZV9pMThuLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYmQyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxOTAwMCIsInBzcyI6IjRlYzAwIiwic2hyIjoiZTcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWJkMzAwMCIsInN6IjoiMTIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWNmNDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFjZmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWNmYzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFjZmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9sZC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExZDAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFkMDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrXSIsInBmIjo2LCJzYSI6IjdmZmYyZTI1NTAwMCIsInN6IjoiMjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ilt2ZHNvXSIsInBmIjo1LCJzYSI6IjdmZmYyZTMyZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiW3ZzeXNjYWxsXSIsInBmIjo1LCJzYSI6ImZmZmZmZmZmZmY2MDAwMDAiLCJzeiI6IjEwMDAifV19LCJwcm9jZXNzX3RvdGFscyI6eyJyZXNpZGVudF9zZXRfYnl0ZXMiOiI3Mjc2MDAwIn19fSwidHRzIjo4OTY5NTAsImlkIjoiMHhhZjU5M2I0Yzg1ZWZkY2Y4In0sCit7InBpZCI6MTUyMzgsInRpZCI6MTUyMzgsInRzIjoxNTc2NjU1MjEzNzg0LCJwaCI6InYiLCJjYXQiOiJkaXNhYmxlZC1ieS1kZWZhdWx0LW1lbW9yeS1kdW1wcyIsIm5hbWUiOiJUQVNLX0VORCIsImFyZ3MiOnsiZHVtcHMiOnsiYWxsb2NhdG9ycyI6eyJtYWxsb2MiOnsiYXR0cnMiOnsiYWxsb2NhdGVkX29iamVjdHNfY291bnQiOnsidHlwZSI6InNjYWxhciIsInVuaXRzIjoib2JqZWN0cyIsInZhbHVlIjoiMCJ9LCJpbm5lcl9zaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ICJieXRlcyIsInZhbHVlIjoiMjAzY2ViMCJ9LCJzaXplIjp7InR5cGUiOiJzY2FsYXIiLCJ1bml0cyI6ImJ5dGVzIiwidmFsdWUiOiIyNTQ3MDAwIn19fX0sInByb2Nlc3NfbW1hcHMiOnsidm1fcmVnaW9ucyI6W3siYnMiOnsicHJ2IjoiNzVmMDAwIiwicHNzIjoiN2ZiNDAwIiwic2hyIjoiMjY0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo1LCJzYSI6IjQwMDAwMCIsInN6IjoiMjBiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiZTIwMDAiLCJwc3MiOiJlNGMwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo0LCJzYSI6IjI0YjYwMDAiLCJzeiI6IjFjMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2Nocm9tZSIsInBmIjo2LCJzYSI6IjI2NzYwMDAiLCJzeiI6IjE4MDAwIn0seyJicyI6eyJwcnYiOiIyNTAwMCIsInBzcyI6IjI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjI2OGUwMDAiLCJzeiI6IjMxMDAwIn0seyJicyI6eyJwcnYiOiI2MDAwIiwicHNzIjoiNjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzNzE0YWUwMDAwMCIsInN6IjoiMTAwMDAwIn0seyJicyI6eyJwcnYiOiJlYzAwMCIsInBzcyI6ImVjMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjQ5Y2ZiYjAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzODAwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2NjYwMzgwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNjY2MDM4MDIwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJhMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjY2NjAzODA0MDAwIiwic3oiOiIxZjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjY2NjAzOWZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4Njg3ZjAwMCIsInN6IjoiMTgxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmEwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZhMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo3LCJzYSI6IjZmZDg2YTA2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmEwNzAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2YjAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmIwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZiMDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YjA3MDAwIiwic3oiOiJmOTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiNmZkODZjMDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2YzA1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmMwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZjMDcwMDAiLCJzeiI6ImY5MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI2ZmQ4NmQwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiNmZkODZkMDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJlMDAwIiwicHNzIjoiMmUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjcsInNhIjoiNmZkODZkMDYwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmQzZTAwMCIsInN6IjoiYzIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjZmZDg2ZTAwMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI2ZmQ4NmUwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjUwMDAiLCJwc3MiOiI2NTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Nywic2EiOiI2ZmQ4NmUwNjAwMCIsInN6IjoiZjkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjZmZDg2ZWZmMDAwIiwic3oiOiIxZjk4MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiODBkNjVhMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjgwZDY1YTAxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWEwMjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNWIwMDAiLCJwc3MiOiI1YjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI4MGQ2NWEwNDAwMCIsInN6IjoiMWY4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI4MGQ2NWJmYzAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiNGQwMDAiLCJwc3MiOiI0ZDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIxMGU3ZDM3MDAwMDAiLCJzeiI6IjEwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMjRhODA1OWYzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyNGE4MDU5ZjQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjUsInNhIjoiMjVmZTRmZjRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1MTcwMDAiLCJzeiI6IjI5MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIyYzZlOTM1NDAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIyYzZlOTM1NjAwMDAiLCJzeiI6IjE3MDAwIn0seyJicyI6eyJwcnYiOiIxNTAwMCIsInBzcyI6IjE1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMxMjY0NjkwMDAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTI4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMWYwMDAiLCJwc3MiOiIxZjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyODIwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJhMjAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjMzZTM5NTJjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTgwMDAiLCJwc3MiOiIxODAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiIzM2UzOTUyYzIwMDAiLCJzeiI6IjM2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiIzM2UzOTUyZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjFlNzIwMDAiLCJwc3MiOiIxZTcyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjMzZTM5NTJmOTAwMCIsInN6IjoiMjE4NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiMzNlMzk3NDdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyZDEwMDAiLCJwc3MiOiIyZDEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiMzNlMzk3NDgwMDAwIiwic3oiOiI0MWYwMDAifSx7ImJzIjp7InBydiI6ImYwMDAwIiwicHNzIjoiZjAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiM2YwYzZjMDAwMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjNmMGM2YzEwMDAwMCIsInN6IjoiMWYwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYjUwZDAwMCIsInN6IjoiODEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5kMlRVelogKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRiNThlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwMDAiLCJzaHIiOiIyMDAwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnpXYVNvRyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI3OGUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLkRxR0kzMyAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGI5OGUwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLnNDbnRDUSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZGMxOTAwMDAiLCJzeiI6IjQwMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImZhMDAwIiwic2hyIjoiMWY0MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5YaFg5ZG4gKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNTkxMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UNWZFOVQgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjNzkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3MjgwMCIsInNociI6ImU1MDAwIn0sIm1mIjoiL3J1bi9zaG0vLm9yZy5jaHJvbWl1bS5DaHJvbWl1bS5UQzNxMkEgKGRlbGV0ZWQpIiwicGYiOjYsInNhIjoiN2Y2NGRjODkxMDAwIiwic3oiOiIxMDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9taW1lL21pbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGM5OTEwMDAiLCJzeiI6IjFlMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9pbmRleCIsInBmIjo2LCJzYSI6IjdmNjRkYzlhZjAwMCIsInN6IjoiNDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkYzlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjk3XSIsInBmIjo2LCJzYSI6IjdmNjRkYzlmMTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZGQxZjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI4NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZGQxZjIwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGRkOWYyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyODJdIiwicGYiOjYsInNhIjoiN2Y2NGRkOWYzMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRkZTFmMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1Mjc1XSIsInBmIjo2LCJzYSI6IjdmNjRkZTFmNDAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiZDgwMCIsInNociI6IjFkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRkZTlmNDAwMCIsInN6IjoiNGIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VjcmV0LTEuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZGVhM2YwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRkZWMzZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWNyZXQtMS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRkZWM0MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9zaGFyZS9pY29ucy9oaWNvbG9yL2ljb24tdGhlbWUuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZGVjNDIwMDAiLCJzeiI6IjI0ZWYwMDAifSx7ImJzIjp7InBydiI6ImIwMDAiLCJwc3MiOiJkMDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvaWNvbnMvZ25vbWUvaWNvbi10aGVtZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlMTEzMTAwMCIsInN6IjoiNTIwNzAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6Ijg0MDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMtQm9sZC50dGYiLCJwZiI6NCwic2EiOiI3ZjY0ZTYzMzgwMDAiLCJzeiI6ImFhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTYzZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTYzZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiIyNTAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZm9udHMvdHJ1ZXR5cGUvZGVqYXZ1L0RlamFWdVNhbnMudHRmIiwicGYiOjQsInNhIjoiN2Y2NGU2YmUzMDAwIiwic3oiOiJiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU2Yzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNzJdIiwicGYiOjYsInNhIjoiN2Y2NGU2YzlhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlNzQ5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM0XSIsInBmIjo2LCJzYSI6IjdmNjRlNzQ5YjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZTdjOWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI3MF0iLCJwZiI6Niwic2EiOiI3ZjY0ZTdjOWMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4NDljMDAwIiwic3oiOiIzNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6MCwic2EiOiI3ZjY0ZTg0ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndmZzL2xpYmd2ZnNjb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg2ZDAwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3Zmcy9saWJndmZzY29tbW9uLnNvIiwicGYiOjYsInNhIjoiN2Y2NGU4NmQ1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxNDAwMCIsInBzcyI6IjE0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZTg2ZDYwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2dpby9tb2R1bGVzL2xpYmd2ZnNkYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4NzA1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZTg5MDUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZ3Zmc2RidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZTg5MDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRlODkwNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIyYTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo1LCJzYSI6IjdmNjRlODkwODAwMCIsInN6IjoiNTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjowLCJzYSI6IjdmNjRlODk2MTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmlidXMtMS4wLnNvLjUuMC41MDUiLCJwZiI6NCwic2EiOiI3ZjY0ZThiNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWJ1cy0xLjAuc28uNS4wLjUwNSIsInBmIjo2LCJzYSI6IjdmNjRlOGI2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGU4YjY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjUsInNhIjoiN2Y2NGU4YjY1MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2ltbW9kdWxlcy9pbS1pYnVzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGU4YjZiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZThkNmIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvaW1tb2R1bGVzL2ltLWlidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZThkNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMTEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjUsInNhIjoiN2Y2NGU4ZDZkMDAwIiwic3oiOiIxYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzbWVudS1nbGliLnNvLjQuMC4xMiIsInBmIjowLCJzYSI6IjdmNjRlOGQ4NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjQsInNhIjoiN2Y2NGU4Zjg2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXNtZW51LWdsaWIuc28uNC4wLjEyIiwicGYiOjYsInNhIjoiN2Y2NGU4Zjg3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMyIsInBmIjo2LCJzYSI6IjdmNjRlOGY5YjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY2FjaGUvY2hyb21pdW0vRGVmYXVsdC9DYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmOWQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNhY2hlL2Nocm9taXVtL0RlZmF1bHQvQ2FjaGUvZGF0YV8xIiwicGYiOjYsInNhIjoiN2Y2NGU4ZjlmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jYWNoZS9jaHJvbWl1bS9EZWZhdWx0L0NhY2hlL2RhdGFfMCIsInBmIjo2LCJzYSI6IjdmNjRlOGZhMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2hvbWUvdXNlci8uY29uZmlnL2Nocm9taXVtL0RlZmF1bHQvR1BVQ2FjaGUvZGF0YV8zIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzIiLCJwZiI6Niwic2EiOiI3ZjY0ZThmYTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9jaHJvbWl1bS9EZWZhdWx0L0dQVUNhY2hlL2RhdGFfMSIsInBmIjo2LCJzYSI6IjdmNjRlOGZhNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGU4ZmE5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjldIiwicGYiOjYsInNhIjoiN2Y2NGU4ZmFhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlOTdhYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY4XSIsInBmIjo2LCJzYSI6IjdmNjRlOTdhYjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NGU5ZmFiMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzX2Rucy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGU5ZmIwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZWExYWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZG5zLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZWExYjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRlYTFiMTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NGVhMWJjMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3NfZmlsZXMtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjRlYTNiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc19maWxlcy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NGVhM2JjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvaG9tZS91c2VyLy5jb25maWcvY2hyb21pdW0vRGVmYXVsdC9HUFVDYWNoZS9kYXRhXzAiLCJwZiI6Niwic2EiOiI3ZjY0ZWEzYmUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMTUwMDAifSwibWYiOiIvdXNyL3NoYXJlL21pbWUvbWltZS5jYWNoZSIsInBmIjo0LCJzYSI6IjdmNjRlYTNjMDAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYTNkZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY2XSIsInBmIjo2LCJzYSI6IjdmNjRlYTNkZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWFiZGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2NV0iLCJwZiI6Niwic2EiOiI3ZjY0ZWFiZTAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEwMDAifSwibWYiOiIvcnVuL3NobS8ub3JnLmNocm9taXVtLkNocm9taXVtLm5jZjcyWSAoZGVsZXRlZCkiLCJwZiI6Niwic2EiOiI3ZjY0ZWIzZTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlYjNlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjY0XSIsInBmIjo2LCJzYSI6IjdmNjRlYjNlMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZWJiZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI2M10iLCJwZiI6Niwic2EiOiI3ZjY0ZWJiZTMwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGVjM2UzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNjFdIiwicGYiOjYsInNhIjoiN2Y2NGVjM2U0MDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRlY2JlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjYwXSIsInBmIjo2LCJzYSI6IjdmNjRlY2JlNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZWQzZTUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjRlZDNlZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibmloLWRidXMuc28uMS4wLjAiLCJwZiI6NCwic2EiOiI3ZjY0ZWQ1ZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWgtZGJ1cy5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDVlZjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuaWguc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ2MDYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZDgwNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5paC5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZDgwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjRlZDgwNzAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjZ21hbmFnZXIuc28uMC4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZWQ4MjAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRlZGExZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNnbWFuYWdlci5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRlZGEyMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjgwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo1LCJzYSI6IjdmNjRlZGEyMjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjAsInNhIjoiN2Y2NGVkYTMyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ1ZGV2LnNvLjEuMy41IiwicGYiOjQsInNhIjoiN2Y2NGVkYzMxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidWRldi5zby4xLjMuNSIsInBmIjo2LCJzYSI6IjdmNjRlZGMzMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3J1bi9zaG0vcHVsc2Utc2htLTQxMjUwOTU2MTYiLCJwZiI6Niwic2EiOiI3ZjY0ZWRjMzMwMDAiLCJzeiI6IjQwMDEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMWMzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU5XSIsInBmIjo2LCJzYSI6IjdmNjRmMWMzNTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlib2dnLnNvLjAuOC4xIiwicGYiOjUsInNhIjoiN2Y2NGYyNDM1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjowLCJzYSI6IjdmNjRmMjQzYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm9nZy5zby4wLjguMSIsInBmIjo0LCJzYSI6IjdmNjRmMjYzYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJvZ2cuc28uMC44LjEiLCJwZiI6Niwic2EiOiI3ZjY0ZjI2M2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6NSwic2EiOiI3ZjY0ZjI2M2UwMDAiLCJzeiI6IjJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjowLCJzYSI6IjdmNjRmMjY2YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpcy5zby4wLjQuNSIsInBmIjo0LCJzYSI6IjdmNjRmMjg2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXMuc28uMC40LjUiLCJwZiI6Niwic2EiOiI3ZjY0ZjI4NmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEzMDAwIiwicHNzIjoiMTM0MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6NSwic2EiOiI3ZjY0ZjI4NmIwMDAiLCJzeiI6IjJiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ2b3JiaXNlbmMuc28uMi4wLjgiLCJwZiI6MCwic2EiOiI3ZjY0ZjJiMWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMWMwMDAiLCJwc3MiOiIxYzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnZvcmJpc2VuYy5zby4yLjAuOCIsInBmIjo0LCJzYSI6IjdmNjRmMmQxZDAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidm9yYmlzZW5jLnNvLjIuMC44IiwicGYiOjYsInNhIjoiN2Y2NGYyZDM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODgwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjJkM2EwMDAiLCJzeiI6IjMwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjJkNmEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJGTEFDLnNvLjguMy4wIiwicGYiOjQsInNhIjoiN2Y2NGYyZjY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYkZMQUMuc28uOC4zLjAiLCJwZiI6Niwic2EiOiI3ZjY0ZjJmNmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmMmY2YjAwMCIsInN6IjoiMTcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjRmMmY4MjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjMxODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc2wtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmMzE4MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzMTgzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTQwMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NSwic2EiOiI3ZjY0ZjMxODUwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjowLCJzYSI6IjdmNjRmMzE4YTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzeW5jbnMuc28uMC4zLjEiLCJwZiI6NCwic2EiOiI3ZjY0ZjMzODkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXN5bmNucy5zby4wLjMuMSIsInBmIjo2LCJzYSI6IjdmNjRmMzM4YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo1LCJzYSI6IjdmNjRmMzM4YjAwMCIsInN6IjoiNjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic25kZmlsZS5zby4xLjAuMjUiLCJwZiI6MCwic2EiOiI3ZjY0ZjMzZWMwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo0LCJzYSI6IjdmNjRmMzVlYzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbmRmaWxlLnNvLjEuMC4yNSIsInBmIjo2LCJzYSI6IjdmNjRmMzVlZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGYzNWVmMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlid3JhcC5zby4wLjcuNiIsInBmIjo1LCJzYSI6IjdmNjRmMzVmMzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6MCwic2EiOiI3ZjY0ZjM1ZmIwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYndyYXAuc28uMC43LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZjM3ZmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ3cmFwLnNvLjAuNy42IiwicGYiOjYsInNhIjoiN2Y2NGYzN2ZiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY0ZjM3ZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmMzdmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU3XSIsInBmIjo2LCJzYSI6IjdmNjRmMzdmZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMTdjMDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZjNmZmUwMDAiLCJzeiI6IjY2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3B1bHNlYXVkaW8vbGlicHVsc2Vjb21tb24tNC4wLnNvIiwicGYiOjAsInNhIjoiN2Y2NGY0MDY0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZjQyNjMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvcHVsc2VhdWRpby9saWJwdWxzZWNvbW1vbi00LjAuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZjQyNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6NSwic2EiOiI3ZjY0ZjQyNjUwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJqc29uLWMuc28uMi4wLjAiLCJwZiI6MCwic2EiOiI3ZjY0ZjQyNmYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo0LCJzYSI6IjdmNjRmNDQ2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmpzb24tYy5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjRmNDQ2ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImM4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjUsInNhIjoiN2Y2NGY0NDcwMDAwIiwic3oiOiI0NzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ0YjcwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdWxzZS5zby4wLjE2LjIiLCJwZiI6NCwic2EiOiI3ZjY0ZjQ2YjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicHVsc2Uuc28uMC4xNi4yIiwicGYiOjYsInNhIjoiN2Y2NGY0NmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjQ2YjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1Nl0iLCJwZiI6Niwic2EiOiI3ZjY0ZjQ2YmEwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY0ZWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTVdIiwicGYiOjYsInNhIjoiN2Y2NGY0ZWJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNTZiYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjU0XSIsInBmIjo2LCJzYSI6IjdmNjRmNTZiYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZjVlYmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1M10iLCJwZiI6Niwic2EiOiI3ZjY0ZjVlYmQwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY2NmJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNTJdIiwicGYiOjYsInNhIjoiN2Y2NGY2NmJlMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmNmViZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjUxXSIsInBmIjo2LCJzYSI6IjdmNjRmNmViZjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0Zjc2YmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI1MF0iLCJwZiI6Niwic2EiOiI3ZjY0Zjc2YzAwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGY3ZWMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDldIiwicGYiOjYsInNhIjoiN2Y2NGY3ZWMxMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmODZjMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ4XSIsInBmIjo2LCJzYSI6IjdmNjRmODZjMjAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIxYTYwMDAiLCJwc3MiOiIxYWQwMDAiLCJzaHIiOiIyMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9yZXNvdXJjZXMucGFrIiwicGYiOjQsInNhIjoiN2Y2NGY4ZWMyMDAwIiwic3oiOiJmYzUwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxMjgwMCIsInNociI6IjcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbG9jYWxlcy9lbi1VUy5wYWsiLCJwZiI6NCwic2EiOiI3ZjY0ZjllODcwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvY2hyb21lXzIwMF9wZXJjZW50LnBhayIsInBmIjo0LCJzYSI6IjdmNjRmOWViOTAwMCIsInN6IjoiMWFmMDAwIn0seyJicyI6eyJwcnYiOiIyZTAwMCIsInBzcyI6IjJlYzAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9jaHJvbWVfMTAwX3BlcmNlbnQucGFrIiwicGYiOjQsInNhIjoiN2Y2NGZhMDY4MDAwIiwic3oiOiIxMzUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIxZDAwMCIsInNociI6IjQwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo1LCJzYSI6IjdmNjRmYTE5ZDAwMCIsInN6IjoiODQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYm5zc2NrYmkuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmEyMjEwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTUwMDAiLCJwc3MiOiIxNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJuc3Nja2JpLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZhNDIwMDAwIiwic3oiOiIxNTAwMCJ9LHsiYnMiOnsicHJ2IjoiYzAwMCIsInBzcyI6ImMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlibnNzY2tiaS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmYTQzNTAwMCIsInN6IjoiYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhNDQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIzYzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmE0NDIwMDAiLCJzeiI6Ijc4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L25zcy9saWJmcmVlYmwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZhNGJhMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmE2YmEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYmZyZWVibDMuc28iLCJwZiI6Niwic2EiOiI3ZjY0ZmE2YmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTZiZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQwMDAiLCJzaHIiOiI3NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo1LCJzYSI6IjdmNjRmYTZjMTAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjowLCJzYSI6IjdmNjRmYTc3NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNxbGl0ZTMuc28uMC44LjYiLCJwZiI6NCwic2EiOiI3ZjY0ZmE5NzUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3FsaXRlMy5zby4wLjguNiIsInBmIjo2LCJzYSI6IjdmNjRmYTk3NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NGZhOTc5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYjAwMCIsInBzcyI6IjFkODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9ydW4vc2htLy5vcmcuY2hyb21pdW0uQ2hyb21pdW0uTFp6YzdwIChkZWxldGVkKSIsInBmIjo2LCJzYSI6IjdmNjRmYTk3YTAwMCIsInN6IjoiMjAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjRmYTk5YTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6Ijc0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjUsInNhIjoiN2Y2NGZhOTliMDAwIiwic3oiOiI0MDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6MCwic2EiOiI3ZjY0ZmE5ZGIwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9uc3MvbGlic29mdG9rbjMuc28iLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbnNzL2xpYnNvZnRva24zLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZhYmRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2djb252L2djb252LW1vZHVsZXMuY2FjaGUiLCJwZiI6NCwic2EiOiI3ZjY0ZmFiZGQwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYWJlNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQ3XSIsInBmIjo2LCJzYSI6IjdmNjRmYWJlNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZhYmVjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDZdIiwicGYiOjYsInNhIjoiN2Y2NGZhYmVkMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmYjNlZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MzM5XSIsInBmIjo2LCJzYSI6IjdmNjRmYjNlZTAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6MCwic2EiOiI3ZjY0ZmJiZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IltzdGFjazoxNTI0NF0iLCJwZiI6Niwic2EiOiI3ZjY0ZmJiZWYwMDAiLCJzeiI6IjgwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZjM2VmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDNdIiwicGYiOjYsInNhIjoiN2Y2NGZjM2YwMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyODAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvdXNyL3NoYXJlL2ZvbnRzL3RydWV0eXBlL2RlamF2dS9EZWphVnVTYW5zLnR0ZiIsInBmIjo0LCJzYSI6IjdmNjRmY2JmMDAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxODAwIiwic2hyIjoiZTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNmFhNDFhYTIyZTE4YjhmYTA2YTEyZGEyOGVhOWMyOGItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2E2MDAwIiwic3oiOiJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2MwNTg4MGRlNTdkMWY1ZTk0OGZkZmFjYzEzODc3NWQ5LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NiNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy85NDU2NzdlYjdhZWFmNjJmMWQ1MGVmYzNmYjNlYzdkOC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYjUwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8yY2QxNzYxNWNhNTk0ZmEyOTU5YWUxNzMyOTJlNTA0Yy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzAwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZmQ5NTA1OTUwYzA0OGE3N2RjNGI3MTBlYjZhNjI4ZWQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RkYzc5ZDNlYTA2YTdjNmZmYTg2ZWRlODVmM2JiNWRmLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9lNzA3MWY0YTI5ZmE4NzBmNDMyMzMyMWMxNTRlYmEwNC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjYzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYTJhYjc0NzY0YjA3Mjc5ZTdjMzZkZGIxZDMwMmNmMjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2M5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYzY5ZjA0YWIwNTAwNGUzMWE2ZDVlNzE1NzY0ZjE2ZDgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2NhMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzBkOGMzYjJhYzA5MDRjYjhhNTdhNzU3YWQxMWE0YTA4LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NjZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82NDZhZGRiODQ0NGZhYTc0ZWUxMzhhYTAwYWIwYjZhMC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjY2UwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9hNzU1YWZlNGEwOGJmNWI5Nzg1MmNlYjc0MDBiNDdiYy1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZDAwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8yMGJkNzlhZDk3MDk0NDA2ZjdkMWI5NjU0YmZiZDkyNi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZDcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy85YzA2MjQxMDhiOWEyYWU4NTUyZjY2NDEyNWJlODM1Ni1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZGEwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy82ZDQxMjg4ZmQ3MGIwYmUyMmU4YzNhOTFlMDMyZWVjMC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNjZGYwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGExYmQ1Y2E4NDQzZmZlMjI5MjdhMjNjZTQzMWQxOTgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2UzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2E2MzU0ZTNhYzQzYWY2N2JkOGQ3YjhlNDNjMzRlNDlmLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2NlNTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMDRhYWJjMGE3OGFjMDE5Y2Y5NDU0Mzg5OTc3MTE2ZDItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjY2YwMDAwIiwic3oiOiIxNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8xYWM5ZWI4MDM5NDRmZGUxNDYxMzhjNzkxZjVjYzU2YS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzg1YzA2MDRhMTg4MTk4ZjA0ZDEzM2U1NGFiYTdmZTctbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDA1MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2RjMDVkYjY2NjQyODVjYzJmMTJiZjY5YzEzOWFlNGMzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2QwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy80ZjNlMzAzN2M5OTgwYzgzYjUzYTkzNTFlZmFkZWY2Mi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNzY3YTgyNDRmYzAyMjBjZmI1NjdhODM5ZDAzOTJlMGItbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBjMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvODgwMTQ5Nzk1ODYzMGE4MWI3MWFjZTdjNWY5YjMyYTgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDBlMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjgwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8zNjViNTVmMjEwYzBhMjJlOWExOWUzNTE5MTI0MGYzMi1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkMTMwMDAiLCJzeiI6IjNiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvMzA0NzgxNGRmOWEyZjA2N2JkMmQ5NmEyYjljMzZlNWEtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDRlMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZGU5NDg2ZjBiNDdhNGQ3NjhhNTk0Y2I0MTk4Y2IxYzYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYjQ3YzRlMWVjZDA3MDkyNzhmNDkxMGMxODc3N2E1MDQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDU4MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy9kNTJhODY0NDA3M2Q1NGMxMzY3OTMwMmNhMTE4MDY5NS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY0ZmNkNWUwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvM2Y3MzI5YzUyOTNmZmQ1MTBlZGVmNzhmNzM4NzRjZmQtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDcxMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6ImIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2Q1ODlhNDg4NjIzOThlZDgwYTNkNjA2NmY0ZjU2ZjRjLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjRmY2Q3YTAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiIxNzAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZTEzYjIwZmRiMDgzNDRlMGU2NjQ4NjRjYzJlZGU1M2QtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDg1MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvNDY3YzAxOWU1ODJlZTM1MzQzNWVhNWMyMWQxMzdlZjYtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NGZjZDljMDAwIiwic3oiOiIxZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZjZGJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyNDJdIiwicGYiOjYsInNhIjoiN2Y2NGZjZGJiMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjowLCJzYSI6IjdmNjRmZDViYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiW3N0YWNrOjE1MjQxXSIsInBmIjo2LCJzYSI6IjdmNjRmZDViYzAwMCIsInN6IjoiODAwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZGRiYzAwMCIsInN6IjoiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZkZGM3MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ2lvL21vZHVsZXMvbGliZGNvbmZzZXR0aW5ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjRmZGZjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9naW8vbW9kdWxlcy9saWJkY29uZnNldHRpbmdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZkZmM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0YjAwMCIsInBzcyI6IjRjODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3Ivc2hhcmUvZ2xpYi0yLjAvc2NoZW1hcy9nc2NoZW1hcy5jb21waWxlZCIsInBmIjo0LCJzYSI6IjdmNjRmZGZjOTAwMCIsInN6IjoiNGYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYmFkd2FpdGEuc28iLCJwZiI6NSwic2EiOiI3ZjY0ZmUwMTgwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlMDFiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC8yLjEwLjAvZW5naW5lcy9saWJhZHdhaXRhLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZlMjFhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGliYWR3YWl0YS5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTIxYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjIwMDAiLCJzaHIiOiI3MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTIxYzAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9ndGstMi4wLzIuMTAuMC9lbmdpbmVzL2xpYnBpeG1hcC5zbyIsInBmIjowLCJzYSI6IjdmNjRmZTIyNTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZlNDI1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvMi4xMC4wL2VuZ2luZXMvbGlicGl4bWFwLnNvIiwicGYiOjYsInNhIjoiN2Y2NGZlNDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMjAwMCIsInNociI6IjgwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo1LCJzYSI6IjdmNjRmZTQyNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjAsInNhIjoiN2Y2NGZlNDM4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvZ3RrLTIuMC9tb2R1bGVzL2xpYm92ZXJsYXktc2Nyb2xsYmFyLnNvIiwicGYiOjQsInNhIjoiN2Y2NGZlNjM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2d0ay0yLjAvbW9kdWxlcy9saWJvdmVybGF5LXNjcm9sbGJhci5zbyIsInBmIjo2LCJzYSI6IjdmNjRmZTYzODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjAsInNhIjoiN2Y2NGZlNjM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2s6MTUyMzldIiwicGYiOjYsInNhIjoiN2Y2NGZlNjNhMDAwIiwic3oiOiI4MDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYmMwMCIsInNociI6IjhiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL3NuYXBzaG90X2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y2NGZlZTNhMDAwIiwic3oiOiI4YjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjZjMDAiLCJzaHIiOiIyMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9uYXRpdmVzX2Jsb2IuYmluIiwicGYiOjQsInNhIjoiN2Y2NGZlZWM1MDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDYwMDAiLCJwc3MiOiI1MTQwMCIsInNociI6IjIwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2ljdWR0bC5kYXQiLCJwZiI6NCwic2EiOiI3ZjY0ZmVmMmIwMDAiLCJzeiI6IjliZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIvbG9jYWxlL2xvY2FsZS1hcmNoaXZlIiwicGYiOjQsInNhIjoiN2Y2NGZmOGU4MDAwIiwic3oiOiJmZjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAwIiwicHNzIjoiMTAwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwOGRjMDAwIiwic3oiOiIxMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdwZy1lcnJvci5zby4wLjEwLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDA4ZWMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAwOGYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJncGctZXJyb3Iuc28uMC4xMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAwYWVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3BnLWVycm9yLnNvLjAuMTAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMGFmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAwYWYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjUsInNhIjoiN2Y2NTAwYWYyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia2V5dXRpbHMuc28uMS40IiwicGYiOjAsInNhIjoiN2Y2NTAwYWY0MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6NCwic2EiOiI3ZjY1MDBjZjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrZXl1dGlscy5zby4xLjQiLCJwZiI6Niwic2EiOiI3ZjY1MDBjZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGF0cmllLnNvLjEuMy4xIiwicGYiOjUsInNhIjoiN2Y2NTAwY2Y2MDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjowLCJzYSI6IjdmNjUwMGNmYzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRhdHJpZS5zby4xLjMuMSIsInBmIjo0LCJzYSI6IjdmNjUwMGVmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYXRyaWUuc28uMS4zLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDBlZmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMGVmZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAwZWZlMDAwIiwic3oiOiIzYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAwZjM5MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicDExLWtpdC5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMTEzODAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwMTEta2l0LnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAxMTNlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTAxMTQwMDAwIiwic3oiOiIxMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0YXNuMS5zby42LjIuMCIsInBmIjowLCJzYSI6IjdmNjUwMTE1MjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjQsInNhIjoiN2Y2NTAxMzUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRhc24xLnNvLjYuMi4wIiwicGYiOjYsInNhIjoiN2Y2NTAxMzUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDEzNTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyNDAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjUsInNhIjoiN2Y2NTAxMzU1MDAwIiwic3oiOiI3YzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6MCwic2EiOiI3ZjY1MDEzZDEwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjcnlwdC5zby4xMS44LjIiLCJwZiI6NCwic2EiOiI3ZjY1MDE1ZDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY3J5cHQuc28uMTEuOC4yIiwicGYiOjYsInNhIjoiN2Y2NTAxNWQyMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmtyYjVzdXBwb3J0LnNvLjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTVkNTAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDE1ZGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1c3VwcG9ydC5zby4wLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDE3ZGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNXN1cHBvcnQuc28uMC4xIiwicGYiOjYsInNhIjoiN2Y2NTAxN2RmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDE3ZTAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjowLCJzYSI6IjdmNjUwMTdlMzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliY29tX2Vyci5zby4yLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDE5ZTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjb21fZXJyLnNvLjIuMSIsInBmIjo2LCJzYSI6IjdmNjUwMTllMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxOWU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo1LCJzYSI6IjdmNjUwMTllNTAwMCIsInN6IjoiMmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjAsInNhIjoiN2Y2NTAxYTExMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliazVjcnlwdG8uc28uMy4xIiwicGYiOjQsInNhIjoiN2Y2NTAxYzEwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYms1Y3J5cHRvLnNvLjMuMSIsInBmIjo2LCJzYSI6IjdmNjUwMWMxMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAxYzEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTAwMCIsInNociI6IjIxMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo1LCJzYSI6IjdmNjUwMWMxNDAwMCIsInN6IjoiYmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlia3JiNS5zby4zLjMiLCJwZiI6MCwic2EiOiI3ZjY1MDFjZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiZDAwMCIsInBzcyI6ImQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo0LCJzYSI6IjdmNjUwMWVkMDAwMCIsInN6IjoiZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJrcmI1LnNvLjMuMyIsInBmIjo2LCJzYSI6IjdmNjUwMWVkZDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMWVkZjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZG1jcC5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMWVlNDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTAyMGUzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhkbWNwLnNvLjYuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyMGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDIwZTUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGF1LnNvLjYuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTAyMGU2MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMjBlODAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhhdS5zby42LjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjJlODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYYXUuc28uNi4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDIyZTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDIyZWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGluZXJhbWEuc28uMS4wLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDIyZWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMjRlYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaW5lcmFtYS5zby4xLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjRlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyNGVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDI0ZWUwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjowLCJzYSI6IjdmNjUwMjRmNjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnRoYWkuc28uMC4yLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDI2ZjUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhhaS5zby4wLjIuMCIsInBmIjo2LCJzYSI6IjdmNjUwMjZmNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6ImYwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo1LCJzYSI6IjdmNjUwMjZmNzAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTAyNzBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29mdDItMS4wLnNvLjAuMzYwMC4zIiwicGYiOjQsInNhIjoiN2Y2NTAyOTBhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvZnQyLTEuMC5zby4wLjM2MDAuMyIsInBmIjo2LCJzYSI6IjdmNjUwMjkwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyOTBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDI5MGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDI5MTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDI5MTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF9pbl9wcm9jZXNzX2NvbnRleHQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDI5MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwMjkxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6ImQwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjUsInNhIjoiN2Y2NTAyOTE0MDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLWdsaWItMS5zby4yLjIuMiIsInBmIjowLCJzYSI6IjdmNjUwMjkzOTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjQsInNhIjoiN2Y2NTAyYjM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtZ2xpYi0xLnNvLjIuMi4yIiwicGYiOjYsInNhIjoiN2Y2NTAyYjNhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo1LCJzYSI6IjdmNjUwMmIzYjAwMCIsInN6IjoiMWEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjAsInNhIjoiN2Y2NTAyYjU1MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3JhcGhpdGUyLnNvLjMuMC4xIiwicGYiOjQsInNhIjoiN2Y2NTAyZDU0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdyYXBoaXRlMi5zby4zLjAuMSIsInBmIjo2LCJzYSI6IjdmNjUwMmQ1NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTAyZDU3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwMmQ1ODAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTAyZDYwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXJlbmRlci5zby4wLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwMmY1ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2ItcmVuZGVyLnNvLjAuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTAyZjYwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDJmNjEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwMmY2MzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhjYi1zaG0uc28uMC4wLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDMxNjIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLXNobS5zby4wLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwMzE2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE4MDAiLCJzaHIiOiIxYjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjUsInNhIjoiN2Y2NTAzMTY0MDAwIiwic3oiOiJhMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDMyMDUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwaXhtYW4tMS5zby4wLjMwLjIiLCJwZiI6NCwic2EiOiI3ZjY1MDM0MDUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGl4bWFuLTEuc28uMC4zMC4yIiwicGYiOjYsInNhIjoiN2Y2NTAzNDBjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDM0MGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NSwic2EiOiI3ZjY1MDM0MGUwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicG5nMTIuc28uMC41MC4wIiwicGYiOjAsInNhIjoiN2Y2NTAzNDMzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDM2MzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbmcxMi5zby4wLjUwLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDM2MzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiJlMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTAzNjM0MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTAzNjRiMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJyZXNvbHYtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwMzg0YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJlc29sdi0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAzODRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDM4NGQwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDM4NTAwMDAiLCJzeiI6IjIwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic2VsaW51eC5zby4xIiwicGYiOjAsInNhIjoiN2Y2NTAzODcwMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDNhNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzZWxpbnV4LnNvLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDNhNzAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwM2E3MTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwM2E3MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGRzNC5zbyIsInBmIjowLCJzYSI6IjdmNjUwM2E3NjAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTAzYzc1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBsZHM0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTAzYzc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDNjNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjUsInNhIjoiN2Y2NTAzYzc4MDAwIiwic3oiOiIxODAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6MCwic2EiOiI3ZjY1MDNjOTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnouc28uMS4yLjgiLCJwZiI6NCwic2EiOiI3ZjY1MDNlOGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjEuMi44IiwicGYiOjYsInNhIjoiN2Y2NTAzZTkwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY2xpZW50LnNvLjMuMi45IiwicGYiOjUsInNhIjoiN2Y2NTAzZTkxMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjowLCJzYSI6IjdmNjUwM2VhMDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNsaWVudC5zby4zLjIuOSIsInBmIjo0LCJzYSI6IjdmNjUwNDBhMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jbGllbnQuc28uMy4yLjkiLCJwZiI6Niwic2EiOiI3ZjY1MDQwYTEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiI0MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhdmFoaS1jb21tb24uc28uMy41LjMiLCJwZiI6NSwic2EiOiI3ZjY1MDQwYTIwMDAiLCJzeiI6ImIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjAsInNhIjoiN2Y2NTA0MGFkMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXZhaGktY29tbW9uLnNvLjMuNS4zIiwicGYiOjQsInNhIjoiN2Y2NTA0MmFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF2YWhpLWNvbW1vbi5zby4zLjUuMyIsInBmIjo2LCJzYSI6IjdmNjUwNDJhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0MmFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNTQwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo1LCJzYSI6IjdmNjUwNDJhZjAwMCIsInN6IjoiYjYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ251dGxzLnNvLjI2LjIyLjYiLCJwZiI6MCwic2EiOiI3ZjY1MDQzNjUwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo0LCJzYSI6IjdmNjUwNDU2NTAwMCIsInN6IjoiNjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbnV0bHMuc28uMjYuMjIuNiIsInBmIjo2LCJzYSI6IjdmNjUwNDU2YjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA0NTZjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTQwMCIsInNociI6ImIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo1LCJzYSI6IjdmNjUwNDU2ZDAwMCIsInN6IjoiNDMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjAsInNhIjoiN2Y2NTA0NWIwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3NzYXBpX2tyYjUuc28uMi4yIiwicGYiOjQsInNhIjoiN2Y2NTA0N2IwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdzc2FwaV9rcmI1LnNvLjIuMiIsInBmIjo2LCJzYSI6IjdmNjUwNDdiMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiIxMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA0N2IzMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDQ3ZDAwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4Y2Iuc28uMS4xLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDQ5ZDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGNiLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA0OWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDQ5ZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMWMwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDQ5ZDMwMDAiLCJzeiI6IjNkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDRhMTAwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBjcmUuc28uMy4xMy4xIiwicGYiOjQsInNhIjoiN2Y2NTA0YzBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGNyZS5zby4zLjEzLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDRjMTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZmZpLnNvLjYuMC4xIiwicGYiOjUsInNhIjoiN2Y2NTA0YzExMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjowLCJzYSI6IjdmNjUwNGMxODAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmZmaS5zby42LjAuMSIsInBmIjo0LCJzYSI6IjdmNjUwNGUxNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmZmkuc28uNi4wLjEiLCJwZiI6Niwic2EiOiI3ZjY1MDRlMTgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNGUxOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo1LCJzYSI6IjdmNjUwNGUxYTAwMCIsInN6IjoiMWYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrX3BpeGJ1Zi0yLjAuc28uMC4zMDAwLjciLCJwZiI6MCwic2EiOiI3ZjY1MDRlMzkwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo0LCJzYSI6IjdmNjUwNTAzOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnZGtfcGl4YnVmLTIuMC5zby4wLjMwMDAuNyIsInBmIjo2LCJzYSI6IjdmNjUwNTAzYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjExODAwIiwic2hyIjoiNzAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo1LCJzYSI6IjdmNjUwNTAzYjAwMCIsInN6IjoiYWQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjAsInNhIjoiN2Y2NTA1MGU4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjQsInNhIjoiN2Y2NTA1MmU3MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdkay14MTEtMi4wLnNvLjAuMjQwMC4yMyIsInBmIjo2LCJzYSI6IjdmNjUwNTJlYjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1MmVkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNjAwMCIsInBzcyI6IjYwODAwIiwic2hyIjoiMTMyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NSwic2EiOiI3ZjY1MDUyZWUwMDAiLCJzeiI6IjQyZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6MCwic2EiOiI3ZjY1MDU3MWQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJndGsteDExLTIuMC5zby4wLjI0MDAuMjMiLCJwZiI6NCwic2EiOiI3ZjY1MDU5MWMwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ3RrLXgxMS0yLjAuc28uMC4yNDAwLjIzIiwicGYiOjYsInNhIjoiN2Y2NTA1OTIzMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDU5MjcwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNTkyYTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNTkyZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndhbGxwYXBlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNTkyZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA1OTMwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjMwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTA1OTMxMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdtb2R1bGUtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjAsInNhIjoiN2Y2NTA1OTM0MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDViMzMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ21vZHVsZS0yLjAuc28uMC40MDAyLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDViMzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNWIzNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIxNDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NSwic2EiOiI3ZjY1MDViMzYwMDAiLCJzeiI6IjFmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmF0ay0xLjAuc28uMC4yMTAwOS4xIiwicGYiOjAsInNhIjoiN2Y2NTA1YjU1MDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6NCwic2EiOiI3ZjY1MDVkNTUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXRrLTEuMC5zby4wLjIxMDA5LjEiLCJwZiI6Niwic2EiOiI3ZjY1MDVkNTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHJhbmRyLnNvLjIuMi4wIiwicGYiOjUsInNhIjoiN2Y2NTA1ZDU4MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjowLCJzYSI6IjdmNjUwNWQ2MTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyYW5kci5zby4yLjIuMCIsInBmIjo0LCJzYSI6IjdmNjUwNWY2MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmFuZHIuc28uMi4yLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDVmNjEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNWY2MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNWY2MzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNWY2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRpc3BsYXlfdXRpbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNWY2NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjE0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNWY2ODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYaS5zby42LjEuMCIsInBmIjowLCJzYSI6IjdmNjUwNWY3NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA2MTc2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhpLnNvLjYuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTA2MTc3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDYxNzgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjUsInNhIjoiN2Y2NTA2MTc5MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDYxN2UwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYdHN0LnNvLjYuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTA2MzdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlh0c3Quc28uNi4xLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDYzN2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiJjYzAwIiwic2hyIjoiMmEwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwNjM3ZjAwMCIsInN6IjoiZTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTA2NDY4MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYXNvdW5kLnNvLjIuMC4wIiwicGYiOjQsInNhIjoiN2Y2NTA2NjY3MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmFzb3VuZC5zby4yLjAuMCIsInBmIjo2LCJzYSI6IjdmNjUwNjY2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2NjZmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiMTU4MDAiLCJzaHIiOiIzMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjY3MDAwMCIsInN6IjoiNWQwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90by5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjZjZDAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2NmQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6ImMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNjZkMjAwMCIsInN6IjoiNzkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ0cmFuc2xhdG9yLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2NzRiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidHJhbnNsYXRvci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjc0YzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnRyYW5zbGF0b3Iuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY3NGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNjc1MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMxMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo1LCJzYSI6IjdmNjUwNjc1MTAwMCIsInN6IjoiNDQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkYnVzLTEuc28uMy43LjYiLCJwZiI6MCwic2EiOiI3ZjY1MDY3OTUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo0LCJzYSI6IjdmNjUwNjk5NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRidXMtMS5zby4zLjcuNiIsInBmIjo2LCJzYSI6IjdmNjUwNjk5NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2OTk2MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2OTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZmZtcGVnLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2OTlmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDY5YTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3dGZfdGVzdF9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2OWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmX3Rlc3Rfc3VwcG9ydC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjlhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zl90ZXN0X3N1cHBvcnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDY5YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI3ODAwIiwic2hyIjoiMjEwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid3RmLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2OWE0MDAwIiwic3oiOiI0NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNjllYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNjllYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnd0Zi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNjllYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2OWVkMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzAwMCIsInNociI6IjNiMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NSwic2EiOiI3ZjY1MDY5ZjUwMDAiLCJzeiI6IjRhMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjowLCJzYSI6IjdmNjUwNmEzZjAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvLTEuMC5zby4wLjM2MDAuMyIsInBmIjo0LCJzYSI6IjdmNjUwNmMzZjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwYW5nby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDZjNDEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmM0MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjUsInNhIjoiN2Y2NTA2YzQzMDAwIiwic3oiOiJiMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnBhbmdvY2Fpcm8tMS4wLnNvLjAuMzYwMC4zIiwicGYiOjAsInNhIjoiN2Y2NTA2YzRlMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6NCwic2EiOiI3ZjY1MDZlNGUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGFuZ29jYWlyby0xLjAuc28uMC4zNjAwLjMiLCJwZiI6Niwic2EiOiI3ZjY1MDZlNGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI1NDAwIiwic2hyIjoiMTIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlNTAwMDAiLCJzeiI6IjMyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWFfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlODIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmU4NTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTg2MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX2JsaW5rLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA2ZTk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2NfYmxpbmsuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDZlOWEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmU5YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZTlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhdXJhX2V4dHJhLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZTllMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYV9leHRyYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVhMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmFfZXh0cmEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdXJmYWNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VyZmFjZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1cmZhY2Uuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImEwMDAiLCJwc3MiOiJjODAwIiwic2hyIjoiOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVhNzAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjY19zdXJmYWNlcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmViYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjX3N1cmZhY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWJkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Nfc3VyZmFjZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlYmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmViZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVjMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV92aWJyYXRpb24uc28iLCJwZiI6MCwic2EiOiI3ZjY1MDZlYzUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfdmlicmF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX3ZpYnJhdGlvbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmVjNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDZlYzgwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VfYmF0dGVyeS5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmVkMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZV9iYXR0ZXJ5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZWQxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlX2JhdHRlcnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJraXRfZ3B1LnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2ZWQzMDAwIiwic3oiOiI2MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Via2l0X2dwdS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmVkOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmtpdF9ncHUuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZlZGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwNmVkYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjExNDAwIiwic2hyIjoiMzQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmVkYzAwMCIsInN6IjoiODkwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiJjMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbF93cmFwcGVyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZjY1MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xfd3JhcHBlci5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNmY3MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjcyMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZl9oZWxwZXJzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA2Zjc0MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2VjY29tcF9icGZfaGVscGVycy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY3YzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmX2hlbHBlcnMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDZmN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxYzAwIiwic2hyIjoiNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY3ZTAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZWNjb21wX2JwZi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNmY4ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNlY2NvbXBfYnBmLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA2ZjhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDZmOTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMjQ0MDAiLCJzaHIiOiIzOTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNmY5MTAwMCIsInN6IjoiNmEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9pbXBsZW1lbnRhdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNmZmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2ltcGxlbWVudGF0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA2ZmZjMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfaW1wbGVtZW50YXRpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzAwMTAwMCIsInN6IjoiMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl9jX2xpYi5zbyIsInBmIjowLCJzYSI6IjdmNjUwNzAxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX2NfbGliLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDE0MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2xlczJfY19saWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3B1X2JsaW5rLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA3MDE3MDAwIiwic3oiOiIxNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzAyZTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdV9ibGluay5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzAzMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA3MDMyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzgwMCIsInNociI6IjEwMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwMzMwMDAiLCJzeiI6IjEzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qby5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA0NjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1vam8uc28iLCJwZiI6Niwic2EiOiI3ZjY1MDcwNDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50c19pcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDcwNDkwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTA3MDRjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2lwYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwNzA0ZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzA0ZTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnbGVzMl91dGlscy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzA2NzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdsZXMyX3V0aWxzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3MDZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDcwNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiJjODAwIiwic2hyIjoiMTkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6NSwic2EiOiI3ZjY1MDcwNzAwMDAiLCJzeiI6IjJlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6MCwic2EiOiI3ZjY1MDcwOWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnY29uZi0yLnNvLjQuMS41IiwicGYiOjQsInNhIjoiN2Y2NTA3MjlkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjb25mLTIuc28uNC4xLjUiLCJwZiI6Niwic2EiOiI3ZjY1MDcyOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwNzI5ZjAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA3MmEzMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicGxjNC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwNzRhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwbGM0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA3NGEzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDc0YTQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzNDAwIiwic2hyIjoiMzIwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6NSwic2EiOiI3ZjY1MDc0YTUwMDAiLCJzeiI6IjUzMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6MCwic2EiOiI3ZjY1MDc0ZjgwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJoYXJmYnV6ei5zby4wLjkyNy4wIiwicGYiOjQsInNhIjoiN2Y2NTA3NmY4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmhhcmZidXp6LnNvLjAuOTI3LjAiLCJwZiI6Niwic2EiOiI3ZjY1MDc2ZjkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyYzAwIiwic2hyIjoiM2IwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo1LCJzYSI6IjdmNjUwNzZmYTAwMCIsInN6IjoiMTA2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjowLCJzYSI6IjdmNjUwNzgwMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmNhaXJvLnNvLjIuMTEzMDEuMCIsInBmIjo0LCJzYSI6IjdmNjUwNzlmZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjYWlyby5zby4yLjExMzAxLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDdhMDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwN2EwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjUsInNhIjoiN2Y2NTA3YTA2MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6MCwic2EiOiI3ZjY1MDdhMGYwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYcmVuZGVyLnNvLjEuMy4wIiwicGYiOjQsInNhIjoiN2Y2NTA3YzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhyZW5kZXIuc28uMS4zLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDdjMGYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjUsInNhIjoiN2Y2NTA3YzEwMDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6MCwic2EiOiI3ZjY1MDdjMTkwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY3Vyc29yLnNvLjEuMC4yIiwicGYiOjQsInNhIjoiN2Y2NTA3ZTE4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhjdXJzb3Iuc28uMS4wLjIiLCJwZiI6Niwic2EiOiI3ZjY1MDdlMTkwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWHNzLnNvLjEuMC4wIiwicGYiOjUsInNhIjoiN2Y2NTA3ZTFhMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjowLCJzYSI6IjdmNjUwN2UxYzAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhzcy5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwODAxYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYc3Muc28uMS4wLjAiLCJwZiI6Niwic2EiOiI3ZjY1MDgwMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwODAxZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjM4MDAiLCJzaHIiOiJjZDAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDgwMWYwMDAiLCJzeiI6IjFiYjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMtMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwODFkYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTA4M2Q5MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA4M2RkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDgzZGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiJiMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdjY19zLnNvLjEiLCJwZiI6NSwic2EiOiI3ZjY1MDgzZTQwMDAiLCJzeiI6IjE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjowLCJzYSI6IjdmNjUwODNmYTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2NjX3Muc28uMSIsInBmIjo2LCJzYSI6IjdmNjUwODVmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImFjMDAiLCJzaHIiOiI5MzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo1LCJzYSI6IjdmNjUwODVmYTAwMCIsInN6IjoiZTYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjowLCJzYSI6IjdmNjUwODZlMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiODAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnN0ZGMrKy5zby42LjAuMTkiLCJwZiI6NCwic2EiOiI3ZjY1MDg4ZGYwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYuMC4xOSIsInBmIjo2LCJzYSI6IjdmNjUwODhlNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjUwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4OGU5MDAwIiwic3oiOiIxNjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjUsInNhIjoiN2Y2NTA4OGZmMDAwIiwic3oiOiI5ZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6MCwic2EiOiI3ZjY1MDg5OWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiNjAwMCIsInBzcyI6IjYwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmcmVldHlwZS5zby42LjExLjEiLCJwZiI6NCwic2EiOiI3ZjY1MDhiOWIwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZnJlZXR5cGUuc28uNi4xMS4xIiwicGYiOjYsInNhIjoiN2Y2NTA4YmExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNzQwMCIsInNociI6ImUzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnaW8tMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTA4YmEyMDAwIiwic3oiOiIxNmMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwOGQwZTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNDAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdpby0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MDhmMGQwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2lvLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwOGYxMTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA4ZjEzMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjUwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlicnQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwOGYxNTAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MDhmMWMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnJ0LTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDkxMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJydC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTA5MTFjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDkxMWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI4MDAiLCJzaHIiOiIxYzAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo1LCJzYSI6IjdmNjUwOTExZTAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjowLCJzYSI6IjdmNjUwOTE0NTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZXhwYXQuc28uMS42LjAiLCJwZiI6NCwic2EiOiI3ZjY1MDkzNDUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJleHBhdC5zby4xLjYuMCIsInBmIjo2LCJzYSI6IjdmNjUwOTM0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIyNzAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDkzNDgwMDAiLCJzeiI6IjM4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zcHI0LnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5MzgwMDAwIiwic3oiOiIyMDAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk1ODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNwcjQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDk1ODEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTU4MjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjEwMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk1ODUwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOTVhZDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnNtaW1lMy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwOTdhZDAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJzbWltZTMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDk3YjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwOTdiMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjJjMDAiLCJzaHIiOiIxZDAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDk3YjIwMDAiLCJzeiI6IjI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zc3V0aWwzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTA5N2Q3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDk5ZDYwMDAiLCJzeiI6IjYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzdXRpbDMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MDk5ZGMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMjAwMCIsInNociI6ImRkMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJuc3MzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTA5OWRkMDAwIiwic3oiOiIxMzMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjowLCJzYSI6IjdmNjUwOWIxMDAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm5zczMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MDlkMGYwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibnNzMy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwOWQxNDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTA5ZDE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6IjJhMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjUsInNhIjoiN2Y2NTA5ZDE3MDAwIiwic3oiOiIzYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjAsInNhIjoiN2Y2NTA5ZDUxMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZm9udGNvbmZpZy5zby4xLjguMCIsInBmIjo0LCJzYSI6IjdmNjUwOWY1MDAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJmb250Y29uZmlnLnNvLjEuOC4wIiwicGYiOjYsInNhIjoiN2Y2NTA5ZjUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MDlmNTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzNTAwMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJtLTIuMTkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MDlmNTQwMDAiLCJzeiI6IjEwNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYm0tMi4xOS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYTA1OTAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBhMjU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlibS0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBhMjU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEzMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYTI1YTAwMCIsInN6IjoiMTkwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJwdGhyZWFkLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGEyNzMwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYTQ3MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnB0aHJlYWQtMi4xOS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYTQ3MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBhNDc0MDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNjAwMCIsInNociI6IjE4MDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6NSwic2EiOiI3ZjY1MGE0NzgwMDAiLCJzeiI6IjZjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjowLCJzYSI6IjdmNjUwYTRlNDAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmN1cHMuc28uMiIsInBmIjo0LCJzYSI6IjdmNjUwYTZlNDAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjdXBzLnNvLjIiLCJwZiI6Niwic2EiOiI3ZjY1MGE2ZWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYTZlYzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZml4ZXMuc28uMy4xLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGE2ZWQwMDAiLCJzeiI6IjUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTBhNmYyMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGZpeGVzLnNvLjMuMS4wIiwicGYiOjQsInNhIjoiN2Y2NTBhOGYxMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhmaXhlcy5zby4zLjEuMCIsInBmIjo2LCJzYSI6IjdmNjUwYThmMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjkwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6NSwic2EiOiI3ZjY1MGE4ZjMwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6MCwic2EiOiI3ZjY1MGE5MDQwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZXh0LnNvLjYuNC4wIiwicGYiOjQsInNhIjoiN2Y2NTBhYjAzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYlhleHQuc28uNi40LjAiLCJwZiI6Niwic2EiOiI3ZjY1MGFiMDQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWIwNTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjAsInNhIjoiN2Y2NTBhYjA3MDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGRhbWFnZS5zby4xLjEuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWQwNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYZGFtYWdlLnNvLjEuMS4wIiwicGYiOjYsInNhIjoiN2Y2NTBhZDA3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGFkMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo1LCJzYSI6IjdmNjUwYWQwOTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjAsInNhIjoiN2Y2NTBhZDBiMDAwIiwic3oiOiIxZmYwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWGNvbXBvc2l0ZS5zby4xLjAuMCIsInBmIjo0LCJzYSI6IjdmNjUwYWYwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYY29tcG9zaXRlLnNvLjEuMC4wIiwicGYiOjYsInNhIjoiN2Y2NTBhZjBiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYTAwMCIsInNociI6IjcwMDAwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NSwic2EiOiI3ZjY1MGFmMGMwMDAiLCJzeiI6IjEzMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6MCwic2EiOiI3ZjY1MGIwM2MwMDAiLCJzeiI6IjIwMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGIyM2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLnNvLjYuMy4wIiwicGYiOjYsInNhIjoiN2Y2NTBiMjNkMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiI0MDAwIiwicHNzIjoiNjgwMCIsInNociI6IjhjMDAwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTBiMjQxMDAwIiwic3oiOiIxMDYwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwYjM0NzAwMCIsInN6IjoiMWZmMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMC40MDAyLjAiLCJwZiI6NCwic2EiOiI3ZjY1MGI1NDYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnbGliLTIuMC5zby4wLjQwMDIuMCIsInBmIjo2LCJzYSI6IjdmNjUwYjU0NzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiNTQ4MDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiNDAwMDAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjUsInNhIjoiN2Y2NTBiNTRhMDAwIiwic3oiOiI0ZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJnb2JqZWN0LTIuMC5zby4wLjQwMDIuMCIsInBmIjowLCJzYSI6IjdmNjUwYjU5OTAwMCIsInN6IjoiMjAwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjQsInNhIjoiN2Y2NTBiNzk5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmdvYmplY3QtMi4wLnNvLjAuNDAwMi4wIiwicGYiOjYsInNhIjoiN2Y2NTBiNzlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZGwtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjc5YjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGI3OWUwMDAiLCJzeiI6IjFmZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmRsLTIuMTkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGI5OWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9saWIveDg2XzY0LWxpbnV4LWdudS9saWJkbC0yLjE5LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOTllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzQ3OTRhMDgyMTY2NmQ3OTE5MGQ1OWEzNmNiNGY0NGI1LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjk5ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy81NmNmNGY0NzY5ZDBmNGFiYzg5YTQ4OTVkN2JkM2FlMS1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvYjlkNTA2YzlhYzA2YzIwYjQzMzM1NGZhNjdhNzI5OTMtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzBjOWViODBlYmQxYzM2NTQxZWJlMjg1MmQzYmIwYzQ5LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy84NWUwYTUyY2U2NDNhN2JhMmFlNTNlNWQ2OTQ5Y2VhZC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvZjZlNmUwYTVjM2QyZjZhZTBjMGMyZTBlY2Q0MmE5OTctbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjIwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnLzdlZjIyOThmZGU0MWNjNmVlYjdhZjQyZTQ4YjdkMjkzLWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjlhNTAwMCIsInN6IjoiNDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3Zhci9saWIvZm9udGNvbmZpZy8xNjMyNjY4MzAzOGIyODE3ODNhMGVmOGM2ODBlM2ExMC1sZTY0LmNhY2hlLTQiLCJwZiI6NCwic2EiOiI3ZjY1MGI5YTkwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii92YXIvbGliL2ZvbnRjb25maWcvOGYwMmQ0Y2IwNDViZDZjZTE1NjYzZTQzZjM0N2M5ZjgtbGU2NC5jYWNoZS00IiwicGYiOjQsInNhIjoiN2Y2NTBiOWFiMDAwIiwic3oiOiJkMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvdmFyL2xpYi9mb250Y29uZmlnL2UwYWE1M2JjZmE1MDRlNjRmODc4MjNjMTZiYzAxZWI2LWxlNjQuY2FjaGUtNCIsInBmIjo0LCJzYSI6IjdmNjUwYjliODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiL2V0Yy9kY29uZi9kYi9zaXRlIiwicGYiOjQsInNhIjoiN2Y2NTBiOWI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjEwMDAifSwibWYiOiIvZXRjL2Rjb25mL2RiL2xvY2FsIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9ob21lL3VzZXIvLmNvbmZpZy9kY29uZi91c2VyIiwicGYiOjQsInNhIjoiN2Y2NTBiOWJiMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9ydW4vdXNlci8xNTgxNTgvZGNvbmYvdXNlciIsInBmIjo0LCJzYSI6IjdmNjUwYjliZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWMwMDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWM4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hhcmVkX21lbW9yeV9zdXBwb3J0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiOWM5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGI5Y2EwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0YzAwIiwic2hyIjoiMTQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2luLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiOWNiMDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYjllODAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdpbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjllYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjllYjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF94MTEuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGI5ZWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfeDExLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWVmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X3gxMS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjlmMDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjgwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjlmMTAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN1aWRfc2FuZGJveF9jbGllbnQuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGI5ZjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdWlkX3NhbmRib3hfY2xpZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiOWY3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3VpZF9zYW5kYm94X2NsaWVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYjlmODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiOWY5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMTgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYjlmYTAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNhbmRib3hfc2VydmljZXMuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJhMDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzYW5kYm94X3NlcnZpY2VzLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTA5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2FuZGJveF9zZXJ2aWNlcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmEwYTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImQ4MDAiLCJzaHIiOiIyYzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9zaGFyZWQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhMGIwMDAiLCJzeiI6IjdhMDAwIn0seyJicyI6eyJwcnYiOiI3MDAwIiwicHNzIjoiNzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTg1MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfc2hhcmVkLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiYThjMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMjgwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmE4ZDAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBwYXBpX2hvc3Quc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJhOTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9ob3N0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiYTk4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHBhcGlfaG9zdC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmE5OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiYTlhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhOWIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhOWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2Vudmlyb25tZW50X2ltcGwuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhOWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIyMDAwIiwic2hyIjoiYTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhYTAwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJhYWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX2NvbW1vbl9saWIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJhYWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjJiMDAwIiwicHNzIjoiOTUwMDAiLCJzaHIiOiIxNDcwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJhYWUwMDAiLCJzeiI6IjFmMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNjLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiYzllMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwMCIsInBzcyI6IjEwMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmM5ZjAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmNhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiY2IwMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiODAwIiwic2hyIjoiMzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzaGVsbF9kaWFsb2dzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiY2IyMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2hlbGxfZGlhbG9ncy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmNiNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNoZWxsX2RpYWxvZ3Muc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJjYjcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiY2I4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9wcmVmcy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmNiOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVzZXJfcHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJjYmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1c2VyX3ByZWZzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiY2JiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZG9tYWluX3JlbGlhYmlsaXR5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiY2JjMDAwIiwic3oiOiI2NjAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmQyMjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRvbWFpbl9yZWxpYWJpbGl0eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmQyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBiZDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDAwIiwic2hyIjoiMjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmQyNzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNhcHRpdmVfcG9ydGFsLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZDI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY2FwdGl2ZV9wb3J0YWwuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJkMmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjYXB0aXZlX3BvcnRhbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmQyYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjI1ODAwIiwic2hyIjoiNWIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6NSwic2EiOiI3ZjY1MGJkMmMwMDAiLCJzeiI6ImE2MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXBwX2xpc3Quc28iLCJwZiI6MCwic2EiOiI3ZjY1MGJkZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjExMDAwIiwicHNzIjoiMTEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZGQzMDAwIiwic3oiOiIxMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFwcF9saXN0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZGU0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNjQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmRlNTAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJkZXZpY2VzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZGY2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGV2aWNlcy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmRmNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRldmljZXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJkZjgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYmRmOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxNzAwMCIsInNociI6IjE0MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZGZhMDAwIiwic3oiOiIyNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndtLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBiZTFmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid20uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGJlMjAwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3bS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmUyMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTEwMDAiLCJwc3MiOiIxNTgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ3RrMnVpLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTI0MDAwIiwic3oiOiIyZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjowLCJzYSI6IjdmNjUwYmU1MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU1MjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmd0azJ1aS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYmU1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTU1MDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBiZTU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXNlcl9tYW5hZ2VyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBiZTU5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGJlNWEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2hfd2l0aF9jb250ZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBiZTViMDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoX3dpdGhfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYmU2YTAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaF93aXRoX2NvbnRlbnQuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGJlNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImMwMDAiLCJwc3MiOiI1NDAwMCIsInNociI6ImRjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFzaC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYmU2ZDAwMCIsInN6IjoiMWMzMDAwIn0seyJicyI6eyJwcnYiOiIyODAwMCIsInBzcyI6IjI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJhc2guc28iLCJwZiI6NCwic2EiOiI3ZjY1MGMwMzAwMDAiLCJzeiI6IjI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXNoLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjMDU4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNDg4MDAiLCJzaHIiOiJlMTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzA1OTAwMCIsInN6IjoiMWRkMDAwIn0seyJicyI6eyJwcnYiOiIxZTAwMCIsInBzcyI6IjFlMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzIzNjAwMCIsInN6IjoiMWUwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcGFwaV9wcm94eS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzI1NDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjMjU1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiYjc0MDAiLCJzaHIiOiIzMjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidjguc28iLCJwZiI6NSwic2EiOiI3ZjY1MGMyNTYwMDAiLCJzeiI6IjU3NTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnY4LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjN2NiMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzNjAwMCIsInBzcyI6IjM2MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzdjYzAwMCIsInN6IjoiMzYwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2OC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzgwMjAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjODA3MDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiYzAwIiwic2hyIjoiNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzgwYzAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYl9kaWFsb2dzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjODExMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViX2RpYWxvZ3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4MTIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJfZGlhbG9ncy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzgxMzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM4MTQwMDAiLCJzeiI6IjJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29tcG9zaXRvci5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzg0MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbXBvc2l0b3Iuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4NDQwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjb21wb3NpdG9yLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjODQ2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4NDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJkNDAwIiwic2hyIjoiMzUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzg0ODAwMCIsInN6IjoiNDcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtb2pvX3N5c3RlbV9pbXBsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjODhmMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibW9qb19zeXN0ZW1faW1wbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzg5MjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6ImI0MDAiLCJzaHIiOiI4MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjODkzMDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldF93aXRoX3Y4LnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGE2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0X3dpdGhfdjguc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YTcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXRfd2l0aF92OC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzhhODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQwMCIsInNociI6IjIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYnJvd3Nlcl91aV92aWV3cy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhhOTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJyb3dzZXJfdWlfdmlld3Muc28iLCJwZiI6NCwic2EiOiI3ZjY1MGM4YWMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJicm93c2VyX3VpX3ZpZXdzLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM4YWUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiJjMDAiLCJzaHIiOiIzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGFmMDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic25hcHNob3Quc28iLCJwZiI6MCwic2EiOiI3ZjY1MGM4YjYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzbmFwc2hvdC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzhiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNuYXBzaG90LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMWMwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOGI5MDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjOGM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOGM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmF0aXZlX3RoZW1lLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOGM3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJlMDAwIiwicHNzIjoiMWQ0MDAiLCJzaHIiOiIzMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzhjODAwMCIsInN6IjoiNTgwMDAifSx7ImJzIjp7InBydiI6IjkwMDAiLCJwc3MiOiI5MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZXNzYWdlX2NlbnRlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzkyMDAwMCIsInN6IjoiOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lc3NhZ2VfY2VudGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjOTI5MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGM5MmEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiI1NDAwIiwic2hyIjoiYjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzkyYjAwMCIsInN6IjoiMWIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZXN0dXJlX2RldGVjdGlvbi5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzk0NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlc3R1cmVfZGV0ZWN0aW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjOTQ3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VzdHVyZV9kZXRlY3Rpb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5NDgwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImQwMDAiLCJwc3MiOiIxMTQwMCIsInNociI6ImUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjOTQ5MDAwIiwic3oiOiIxZDAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjowLCJzYSI6IjdmNjUwYzk2NjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk2NzAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmV2ZW50cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwYzk2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTAwMCIsInBzcyI6IjY0MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGM5NmEwMDAiLCJzeiI6IjE1MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYWNjZXNzaWJpbGl0eS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwYzk3ZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmFjY2Vzc2liaWxpdHkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGM5ODAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwYzk4MTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNTIwMDAiLCJwc3MiOiI1ZWMwMCIsInNociI6IjI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdjbS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwYzk4MjAwMCIsInN6IjoiOTQwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNhMTYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI0MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNhMTcwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnY20uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhMWIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6ImYwMDAiLCJwc3MiOiIxNjAwMCIsInNociI6IjE3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhMWMwMDAiLCJzeiI6IjJiMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYXVyYS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2E0NzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmF1cmEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNhNGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiI3YzAwIiwic2hyIjoiMTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2E0YjAwMCIsInN6IjoiMTUwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJ2aWV3LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBjYTYwMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2Vidmlldy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2E2MzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjYTY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI3NTAwMCIsInBzcyI6ImJlMDAwIiwic2hyIjoiZTAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidmlld3Muc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNhNjUwMDAiLCJzeiI6IjFhOTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnZpZXdzLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjYzBlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyNzAwMCIsInBzcyI6IjI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2MwZjAwMCIsInN6IjoiMjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ2aWV3cy5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2MzNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjFlODAwIiwic2hyIjoiNjAwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNjMzcwMDAiLCJzeiI6ImQwMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJvdG9jb2wuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGNkMDcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2NvbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QwODAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvY29sLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDBmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMzQwMCIsInNociI6ImIwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMTAwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlia2V5Ym9hcmQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMjIwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJrZXlib2FyZC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2QyNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjZDI2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlieDExX2V2ZW50c19wbGF0Zm9ybS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2QyNzAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYngxMV9ldmVudHNfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkMmUwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ4MTFfZXZlbnRzX3BsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDJmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMWMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicGxhdGZvcm0uc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMzAwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwbGF0Zm9ybS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwY2QzNDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBsYXRmb3JtLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBjZDM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiYTAwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNkMzYwMDAiLCJzeiI6IjExMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZXZlbnRzX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNkNDcwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJldmVudHNfYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2Q0OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjZDRhMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzOTAwMCIsInBzcyI6IjRlODAwIiwic2hyIjoiNDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9icm93c2VyLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZDRiMDAwIiwic3oiOiIxMGMwMDAifSx7ImJzIjp7InBydiI6IjgwMDAiLCJwc3MiOiI4MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNlNTcwMDAiLCJzeiI6IjgwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2Jyb3dzZXIuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGNlNWYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjYwMDAiLCJwc3MiOiI4NDAwIiwic2hyIjoiODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUwY2U2MDAwMCIsInN6IjoiZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2VfaW1lLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBjZTZlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidWlfYmFzZV9pbWUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNlNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlX2ltZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U3MDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN0b3JhZ2VfY29tbW9uLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBjZTcxMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic3RvcmFnZV9jb21tb24uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGNlN2QwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzdG9yYWdlX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwY2U3ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBjZTdmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYzAwMCIsInBzcyI6IjQyNDAwIiwic2hyIjoiNzUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGNlODAwMDAiLCJzeiI6IjIzZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm1lZGlhLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMGJlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibWVkaWEuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQwYmYwMDAiLCJzeiI6ImMwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJtZWRpYS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDBjYjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjQ0MDAiLCJzaHIiOiJjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMGQyMDAwIiwic3oiOiIxYzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByaW50aW5nLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMGVlMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJpbnRpbmcuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQwZjAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjM0MDAwIiwicHNzIjoiNGE4MDAiLCJzaHIiOiI0NzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMGYxMDAwIiwic3oiOiJlZDAwMCJ9LHsiYnMiOnsicHJ2IjoiNzAwMCIsInBzcyI6IjcwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnBvbGljeV9jb21wb25lbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQxZGUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwb2xpY3lfY29tcG9uZW50LnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMWU1MDAwIiwic3oiOiI4MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQxZWQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE3MDAwIiwicHNzIjoiM2JjMDAiLCJzaHIiOiI2NDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJncHUuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQxZWUwMDAiLCJzeiI6IjExZjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDMwZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiODAwMCIsInBzcyI6IjgwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDMwZTAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdwdS5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZDMxNjAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTBkMzFlMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiNmMwMCIsInNociI6IjE2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzMWYwMDAiLCJzeiI6IjQyMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwIiwicHNzIjoiMzAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZGJ1cy5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDM2MTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmRidXMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNjQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxNDAwIiwic2hyIjoiNjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzNjUwMDAiLCJzeiI6IjcwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNmMwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJvbmMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQzNmQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDM2ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6ImMwMCIsInNociI6IjMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2Z4X2lwYy5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZDM2ZjAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeF9pcGMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQzNzIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnhfaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzczMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMzgwMCIsInNociI6IjkwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkMzc0MDAwIiwic3oiOiJmMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBkMzgzMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBkMzg0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmx1ZXRvb3RoLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkMzg1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiZTgwMCIsInNociI6ImYwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGQzODYwMDAiLCJzeiI6IjNlMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsX21hdGNoZXIuc28iLCJwZiI6MCwic2EiOiI3ZjY1MGQzYzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmxfbWF0Y2hlci5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZDNjNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVybF9tYXRjaGVyLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBkM2M2MDAwIiwic3oiOiI5MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGQzY2YwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIzOWMwMCIsInNociI6ImJmMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3BsYXRmb3JtLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkM2QwMDAwIiwic3oiOiIzMTIwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJibGlua19wbGF0Zm9ybS5zbyIsInBmIjowLCJzYSI6IjdmNjUwZDZlMjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTIwMDAiLCJwc3MiOiIxMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6NCwic2EiOiI3ZjY1MGQ2ZTMwMDAiLCJzeiI6IjEyMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfcGxhdGZvcm0uc28iLCJwZiI6Niwic2EiOiI3ZjY1MGQ2ZjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUwZDZmNzAwMCIsInN6IjoiMTEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIxOGE0MDAiLCJzaHIiOiI0ZTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjUsInNhIjoiN2Y2NTBkNzA4MDAwIiwic3oiOiIxZGE1MDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjAsInNhIjoiN2Y2NTBmNGFkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxYTQwMDAiLCJwc3MiOiIxYTQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX3dlYi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjRhZTAwMCIsInN6IjoiMWE0MDAwIn0seyJicyI6eyJwcnYiOiI1MDAwIiwicHNzIjoiNTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmxpbmtfd2ViLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjUyMDAwIiwic3oiOiI1MDAwIn0seyJicyI6eyJwcnYiOiJjMDAwIiwicHNzIjoiYzAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MGY2NTcwMDAiLCJzeiI6ImUwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiI0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY2NTAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjY2ODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJsaW5rX2NvbW1vbi5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjY2OTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjY4MDAiLCJzaHIiOiIxZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpcGMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2NmEwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNjhkMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaXBjLnNvIiwicGYiOjYsInNhIjoiN2Y2NTBmNjhmMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI4MDAwIiwicHNzIjoiYTQwMCIsInNociI6IjgwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjY5MDAwMCIsInN6IjoiMTQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzZXNzaW9uc19jb250ZW50LnNvIiwicGYiOjQsInNhIjoiN2Y2NTBmNmE0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2Vzc2lvbnNfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjZhNTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjI4MDAiLCJzaHIiOiI2MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo1LCJzYSI6IjdmNjUwZjZhNjAwMCIsInN6IjoiNzAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjowLCJzYSI6IjdmNjUwZjZhZDAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo0LCJzYSI6IjdmNjUwZjZhZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUwZjZhZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMjNiMDAwIiwicHNzIjoiM2U3ODAwIiwic2hyIjoiNTVjMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NSwic2EiOiI3ZjY1MGY2YjAwMDAiLCJzeiI6IjEzYmQwMDAifSx7ImJzIjp7InBydiI6IjliMDAwIiwicHNzIjoiOWIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNvbnRlbnQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBhNmQwMDAiLCJzeiI6IjliMDAwIn0seyJicyI6eyJwcnYiOiI5MDAwIiwicHNzIjoiOTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY29udGVudC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGIwODAwMCIsInN6IjoiZjAwMCJ9LHsiYnMiOnsicHJ2IjoiOTAwMCIsInBzcyI6IjkwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTEwYjE3MDAwIiwic3oiOiIyYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjNjMDAiLCJzaHIiOiI5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdlb21ldHJ5LnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjQxMDAwIiwic3oiOiJjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliZ2VvbWV0cnkuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBiNGQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZW9tZXRyeS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMGI0ZTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjhjMDAiLCJzaHIiOiIxNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTEwYjRmMDAwIiwic3oiOiIyMDAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByb3RvYnVmX2xpdGUuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBiNmYwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcm90b2J1Zl9saXRlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwYjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiI1MzAwMCIsInBzcyI6Ijk2NDAwIiwic2hyIjoiYmUwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1aTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMGI3MTAwMCIsInN6IjoiMjAzMDAwIn0seyJicyI6eyJwcnYiOiIxMzAwMCIsInBzcyI6IjEzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJpY3VpMThuLnNvIiwicGYiOjQsInNhIjoiN2Y2NTEwZDc0MDAwIiwic3oiOiIxMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmljdWkxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTBkODcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiIyODAwMCIsInNociI6IjY3MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBkODgwMDAiLCJzeiI6IjE2MjAwMCJ9LHsiYnMiOnsicHJ2IjoiYTAwMCIsInBzcyI6ImEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnN5bmMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTBlZWEwMDAiLCJzeiI6ImEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzeW5jLnNvIiwicGYiOjYsInNhIjoiN2Y2NTEwZWY0MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJjMDAwMCIsInBzcyI6ImMzYzAwIiwic2hyIjoiZDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJzcWwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTBlZjUwMDAiLCJzeiI6IjEwZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTAwMzAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNxbC5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMTAwNjAwMCIsInN6IjoiMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExMDA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIzMDAwMCIsInBzcyI6IjcwMDAwIiwic2hyIjoiZDMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTEwMDkwMDAiLCJzeiI6IjE1ZTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTExNjcwMDAiLCJzeiI6IjEwMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliaWN1dWMuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTExNzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMTE3ODAwMCIsInN6IjoiMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMWI1MDAwIiwicHNzIjoiMjMwODAwIiwic2hyIjoiMTg5MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYm5ldC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTE3YjAwMCIsInN6IjoiNGQyMDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJuZXQuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTE2NGQwMDAiLCJzeiI6IjIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlibmV0LnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNjcwMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTE2NzEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI2MDAwIiwic2hyIjoiNTAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ3ZWJkYXRhX2NvbW1vbi5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTY3MzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYndlYmRhdGFfY29tbW9uLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNjdkMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlid2ViZGF0YV9jb21tb24uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2N2UwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjI2MDAwIiwicHNzIjoiMmFjMDAiLCJzaHIiOiIxMDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTY3ZjAwMCIsInN6IjoiNDAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcnNzbC5zbyIsInBmIjowLCJzYSI6IjdmNjUxMTZiZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyc3NsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExNmMwMDAwIiwic3oiOiI0MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliY3Jzc2wuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTE2YzQwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjQwMDAiLCJwc3MiOiI3NDAwIiwic2hyIjoiZjAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTZjNTAwMCIsInN6IjoiMWMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJjcmNyeXB0by5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMTZlMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmNyY3J5cHRvLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExNmUyMDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJhMDAwIiwicHNzIjoiNzFjMDAiLCJzaHIiOiIxMTMwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlic2tpYS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMTZlMzAwMCIsInN6IjoiMzA0MDAwIn0seyJicyI6eyJwcnYiOiIyMzAwMCIsInBzcyI6IjIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJza2lhLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExOWU3MDAwIiwic3oiOiIyMzAwMCJ9LHsiYnMiOnsicHJ2IjoiMjAwMCIsInBzcyI6IjIwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnNraWEuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFhMGEwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjIwMDAiLCJwc3MiOiIyMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWEwYzAwMCIsInN6IjoiODAwMCJ9LHsiYnMiOnsicHJ2IjoiMzkwMDAiLCJwc3MiOiI0YTQwMCIsInNociI6IjMzMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmdmeC5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWExNDAwMCIsInN6IjoiYjQwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFhYzgwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJnZnguc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFhY2MwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWFjZDAwMCIsInN6IjoiMTAwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMWYwMDAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWFkZDAwMCIsInN6IjoiMjMwMDAifSx7ImJzIjp7InBydiI6IjUwMDAiLCJwc3MiOiI1MDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIwMDAwMCIsInN6IjoiNTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjE0MDAiLCJzaHIiOiIyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMDUwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjAiLCJwc3MiOiIwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmX3JlZ2lzdHJ5LnNvIiwicGYiOjAsInNhIjoiN2Y2NTExYjA4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZl9yZWdpc3RyeS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIwOTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnByZWZfcmVnaXN0cnkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiMGEwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWIwYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjU0MDAiLCJzaHIiOiI1MDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWIwYzAwMCIsInN6IjoiYTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjowLCJzYSI6IjdmNjUxMWIxNjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWIxNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmtleWVkX3NlcnZpY2VfY29yZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWIxODAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjQ4MDAiLCJzaHIiOiIxODAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1cmwuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiMTkwMDAiLCJzeiI6IjFjMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExYjM1MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlidXJsLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjM2MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIiLCJwZiI6Niwic2EiOiI3ZjY1MTFiMzcwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEyMDAwIiwicHNzIjoiMjI0MDAiLCJzaHIiOiIzNDAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYjM4MDAwIiwic3oiOiI1YjAwMCJ9LHsiYnMiOnsicHJ2IjoiNDAwMCIsInBzcyI6IjQwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYnVpX2Jhc2Uuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiOTMwMDAiLCJzeiI6IjQwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJ1aV9iYXNlLnNvIiwicGYiOjYsInNhIjoiN2Y2NTExYjk3MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiJiMDAwIiwicHNzIjoiZWMwMCIsInNociI6ImQwMDAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NSwic2EiOiI3ZjY1MTFiOTgwMDAiLCJzeiI6IjFkMDAwIn0seyJicyI6eyJwcnYiOiIyMDAwIiwicHNzIjoiMjAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGlicHJlZnMuc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiYjUwMDAiLCJzeiI6IjIwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJwcmVmcy5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWJiNzAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExYmI4MDAwIiwic3oiOiIxMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiNjAwMCIsInNociI6IjEyMDAwIn0sIm1mIjoiL3MvY2hyb21lLXRyYWNpbmdtZW0vc3JjL291dC9yL2xpYmJhc2VfaTE4bi5zbyIsInBmIjo1LCJzYSI6IjdmNjUxMWJiOTAwMCIsInN6IjoiMTYwMDAifSx7ImJzIjp7InBydiI6IjMwMDAiLCJwc3MiOiIzMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6NCwic2EiOiI3ZjY1MTFiY2YwMDAiLCJzeiI6IjMwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlX2kxOG4uc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFiZDIwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjE5MDAwIiwicHNzIjoiNGVjMDAiLCJzaHIiOiJlNzAwMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjUsInNhIjoiN2Y2NTExYmQzMDAwIiwic3oiOiIxMjEwMDAifSx7ImJzIjp7InBydiI6IjcwMDAiLCJwc3MiOiI3MDAwIiwic2hyIjoiMCJ9LCJtZiI6Ii9zL2Nocm9tZS10cmFjaW5nbWVtL3NyYy9vdXQvci9saWJiYXNlLnNvIiwicGYiOjQsInNhIjoiN2Y2NTExY2Y0MDAwIiwic3oiOiI3MDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvcy9jaHJvbWUtdHJhY2luZ21lbS9zcmMvb3V0L3IvbGliYmFzZS5zbyIsInBmIjo2LCJzYSI6IjdmNjUxMWNmYjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMzAwMCIsInBzcyI6IjMwMDAiLCJzaHIiOiIwIn0sIm1mIjoiIiwicGYiOjYsInNhIjoiN2Y2NTExY2ZjMDAwIiwic3oiOiIzMDAwIn0seyJicyI6eyJwcnYiOiIxMDAwIiwicHNzIjoiMTAwMCIsInNociI6IjAifSwibWYiOiIvbGliL3g4Nl82NC1saW51eC1nbnUvbGQtMi4xOS5zbyIsInBmIjo0LCJzYSI6IjdmNjUxMWNmZjAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMCIsInBzcyI6IjEwMDAiLCJzaHIiOiIwIn0sIm1mIjoiL2xpYi94ODZfNjQtbGludXgtZ251L2xkLTIuMTkuc28iLCJwZiI6Niwic2EiOiI3ZjY1MTFkMDAwMDAiLCJzeiI6IjEwMDAifSx7ImJzIjp7InBydiI6IjEwMDAiLCJwc3MiOiIxMDAwIiwic2hyIjoiMCJ9LCJtZiI6IiIsInBmIjo2LCJzYSI6IjdmNjUxMWQwMTAwMCIsInN6IjoiMTAwMCJ9LHsiYnMiOnsicHJ2IjoiMTAwMDAiLCJwc3MiOiIxMDAwMCIsInNociI6IjAifSwibWYiOiJbc3RhY2tdIiwicGYiOjYsInNhIjoiN2ZmZjJlMjU1MDAwIiwic3oiOiIyMjAwMCJ9LHsiYnMiOnsicHJ2IjoiMCIsInBzcyI6IjAiLCJzaHIiOiIxMDAwIn0sIm1mIjoiW3Zkc29dIiwicGYiOjUsInNhIjoiN2ZmZjJlMzJmMDAwIiwic3oiOiIyMDAwIn0seyJicyI6eyJwcnYiOiIwIiwicHNzIjoiMCIsInNociI6IjAifSwibWYiOiJbdnN5c2NhbGxdIiwicGYiOjUsInNhIjoiZmZmZmZmZmZmZjYwMDAwMCIsInN6IjoiMTAwMCJ9XX0sInByb2Nlc3NfdG90YWxzIjp7InJlc2lkZW50X3NldF9ieXRlcyI6IjczZGQwMDAifX19LCJ0dHMiOjkyMzU0OCwiaWQiOiIweGFmNTk1ZDRjODVmMDE2YmEifSx7InBpZCI6MTUyMzgsInRpZCI6MCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoibnVtX2NwdXMiLCJhcmdzIjp7Im51bWJlciI6NDB9fSwKK3sicGlkIjoxNTIzOCwidGlkIjoxNTI1MCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoicHJvY2Vzc19zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotNn19LAoreyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjUwLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJwcm9jZXNzX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJCcm93c2VyIn19LAoreyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjUwLCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNocm9tZV9GaWxlVGhyZWFkIn19LAoreyJwaWQiOjE1MjM4LCJ0aWQiOjE1MjU0LCJ0cyI6MCwicGgiOiJNIiwiY2F0IjoiX19tZXRhZGF0YSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNocm9tZV9JT1RocmVhZCJ9fSwKK3sicGlkIjoxNTIzOCwidGlkIjoxNTIzOCwidHMiOjAsInBoIjoiTSIsImNhdCI6Il9fbWV0YWRhdGEiLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDckJyb3dzZXJNYWluIn19XX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvbXVsdGlwbGVfaW5wdXRfbGF0ZW5jeS5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL211bHRpcGxlX2lucHV0X2xhdGVuY3kuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9tdWx0aXBsZV9pbnB1dF9sYXRlbmN5Lmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9tdWx0aXBsZV9pbnB1dF9sYXRlbmN5Lmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9uYW5vc2Vjb25kcy5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL25hbm9zZWNvbmRzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRkZWVlNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9uYW5vc2Vjb25kcy5qc29uCkBAIC0wLDAgKzEsMjIgQEAKK3sKKyAgInRyYWNlRXZlbnRzIjogWworICAgIHsibmFtZSI6ICJ1czEiLCAicGgiOiAiQiIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMH0sCisgICAgeyJuYW1lIjogInVzMSIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAxLjF9LAorICAgIHsibmFtZSI6ICJ1czIiLCAicGgiOiAiQiIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMS4xfSwKKyAgICB7Im5hbWUiOiAidXMyIiwgInBoIjogIkUiLCAicGlkIjogMSwgInRpZCI6IDEsICJ0cyI6IDEuM30sCisgICAgeyJuYW1lIjogInVzMyIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAxLjN9LAorICAgIHsibmFtZSI6ICJ1czMiLCAicGgiOiAiRSIsICJwaWQiOiAxLCAidGlkIjogMSwgInRzIjogMS42fSwKKyAgICB7Im5hbWUiOiAidXM0IiwgInBoIjogIkIiLCAicGlkIjogMSwgInRpZCI6IDEsICJ0cyI6IDEuN30sCisgICAgeyJuYW1lIjogInVzNCIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAyLjF9LAorCisgICAgeyJuYW1lIjogIm5zMSIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAwMH0sCisgICAgeyJuYW1lIjogIm5zMSIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxMX0sCisgICAgeyJuYW1lIjogIm5zMiIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxMX0sCisgICAgeyJuYW1lIjogIm5zMiIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxM30sCisgICAgeyJuYW1lIjogIm5zMyIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxM30sCisgICAgeyJuYW1lIjogIm5zMyIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxNn0sCisgICAgeyJuYW1lIjogIm5zNCIsICJwaCI6ICJCIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAxN30sCisgICAgeyJuYW1lIjogIm5zNCIsICJwaCI6ICJFIiwgInBpZCI6IDEsICJ0aWQiOiAxLCAidHMiOiAzLjAyMX0KKyAgXSwKKyAgImRpc3BsYXlUaW1lVW5pdCI6ICJucyIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL25lc3RhYmxlX2FzeW5jLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvbmVzdGFibGVfYXN5bmMuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9uZXN0YWJsZV9hc3luYy5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvbmVzdGFibGVfYXN5bmMuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9uZXN0YWJsZV9hc3luY19hbm5vdGF0aW9uLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvbmVzdGFibGVfYXN5bmNfYW5ub3RhdGlvbi5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL25lc3RhYmxlX2FzeW5jX2Fubm90YXRpb24uanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL25lc3RhYmxlX2FzeW5jX2Fubm90YXRpb24uanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9wZXJmX3NhbXBsaW5nX3RyYWNlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvcGVyZl9zYW1wbGluZ190cmFjZS5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3BlcmZfc2FtcGxpbmdfdHJhY2UuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3BlcmZfc2FtcGxpbmdfdHJhY2UuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9wZXJmX3NhbXBsaW5nX3RyYWNlX3dpdGhfdHJhY2VfZXZlbnRzLmpzb24uZ3ogYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvcGVyZl9zYW1wbGluZ190cmFjZV93aXRoX3RyYWNlX2V2ZW50cy5qc29uLmd6CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3BlcmZfc2FtcGxpbmdfdHJhY2Vfd2l0aF90cmFjZV9ldmVudHMuanNvbi5negpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3BlcmZfc2FtcGxpbmdfdHJhY2Vfd2l0aF90cmFjZV9ldmVudHMuanNvbi5negpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3BpY3R1cmVfdHJhY2UuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9waWN0dXJlX3RyYWNlLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvcGljdHVyZV90cmFjZS5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvcGljdHVyZV90cmFjZS5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3F1YWRzLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvcXVhZHMuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9xdWFkcy5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvcXVhZHMuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9xdWFkc193aXRoX3JlbmRlcl9wYXNzZXMuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9xdWFkc193aXRoX3JlbmRlcl9wYXNzZXMuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9xdWFkc193aXRoX3JlbmRlcl9wYXNzZXMuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3F1YWRzX3dpdGhfcmVuZGVyX3Bhc3Nlcy5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3JlcGFpbnRzX29uX3Njcm9sbF9yZWdpb24uanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9yZXBhaW50c19vbl9zY3JvbGxfcmVnaW9uLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvcmVwYWludHNfb25fc2Nyb2xsX3JlZ2lvbi5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvcmVwYWludHNfb25fc2Nyb2xsX3JlZ2lvbi5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3NmZ2F0ZS5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3NmZ2F0ZS5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3NmZ2F0ZS5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvc2ZnYXRlLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvc2ltcGxlX3RyYWNlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvc2ltcGxlX3RyYWNlLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvc2ltcGxlX3RyYWNlLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS9zaW1wbGVfdHJhY2UuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS9zaW1wbGVfdHJhY2VfZ3ouZ3ogYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvc2ltcGxlX3RyYWNlX2d6Lmd6CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3NpbXBsZV90cmFjZV9nei5negpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3NpbXBsZV90cmFjZV9nei5negpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3NpbXBsZV90cmFjZV96aXAuemlwIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3NpbXBsZV90cmFjZV96aXAuemlwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3NpbXBsZV90cmFjZV96aXAuemlwCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvc2ltcGxlX3RyYWNlX3ppcC56aXAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90YWxsX3RyYWNlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvdGFsbF90cmFjZS5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3RhbGxfdHJhY2UuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3RhbGxfdHJhY2UuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90Y21hbGxvY19tdWx0aV9yZW5kZXJlci5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3RjbWFsbG9jX211bHRpX3JlbmRlcmVyLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvdGNtYWxsb2NfbXVsdGlfcmVuZGVyZXIuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3RjbWFsbG9jX211bHRpX3JlbmRlcmVyLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvdGNtYWxsb2NfdHJhY2UuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS90Y21hbGxvY190cmFjZS5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3RjbWFsbG9jX3RyYWNlLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS90Y21hbGxvY190cmFjZS5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3RoZXZlcmdlX3RyYWNlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvdGhldmVyZ2VfdHJhY2UuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90aGV2ZXJnZV90cmFjZS5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvdGhldmVyZ2VfdHJhY2UuanNvbgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3RocmVhZF90aW1lX3Zpc3VhbGlzYXRpb24uanNvbi5neiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS90aHJlYWRfdGltZV92aXN1YWxpc2F0aW9uLmpzb24uZ3oKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvdGhyZWFkX3RpbWVfdmlzdWFsaXNhdGlvbi5qc29uLmd6CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvdGhyZWFkX3RpbWVfdmlzdWFsaXNhdGlvbi5qc29uLmd6CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvdHJhY2Utd2l0aC1iYWQtd29ybGQtYm91bmRzLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvdHJhY2Utd2l0aC1iYWQtd29ybGQtYm91bmRzLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvdHJhY2Utd2l0aC1iYWQtd29ybGQtYm91bmRzLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS90cmFjZS13aXRoLWJhZC13b3JsZC1ib3VuZHMuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90cmFjZXZpZXdpZnkuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS90cmFjZXZpZXdpZnkuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90cmFjZXZpZXdpZnkuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3RyYWNldmlld2lmeS5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvdHJpdmlhbF9zeXN0cmFjZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3RyaXZpYWxfc3lzdHJhY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWMzYmEzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3RyaXZpYWxfc3lzdHJhY2UuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxodG1sPgorPGhlYWQgaTE4bi12YWx1ZXM9ImRpcjp0ZXh0ZGlyZWN0aW9uOyI+Cis8dGl0bGU+QW5kcm9pZCBTeXN0ZW0gVHJhY2U8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj50YWJib3h7ZGlzcGxheTotd2Via2l0LWJveDt9PC9zdHlsZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPid1c2Ugc3RyaWN0JztmdW5jdGlvbiBvbkxvYWQoKSB7fQorZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihnKSB7fSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgLnZpZXcgeworICAgIG92ZXJmbG93OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0idmlldyI+CisgIDwvZGl2PgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIHZhciBsaW51eFBlcmZEYXRhID0gIlwKKyMgdHJhY2VyOiBub3BcblwKKyNcblwKKyMgICAgICAgICAgICBUQVNLLVBJRCAgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT05cblwKKyMgICAgICAgICAgICAgICB8IHwgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfFxuXAorICAgICBod2NfZXZlbnRtb24tMzM2ICAgWzAwMF0gNTAyNjAuOTI5OTI1OiAwOiBDfDEyNHxWU1lOQ3wxXG5cCisgICAgICAgICBCaW5kZXJfMS0zNDAgICBbMDAwXSA1MDI2MC45MzU2NTY6IDA6IEN8MTI0fFN0YXR1c0JhcnwxXG5cCisgICAgIGh3Y19ldmVudG1vbi0zMzYgICBbMDAwXSA1MDI2MC45NDY1NzM6IDA6IEN8MTI0fFZTWU5DfDBcblwKKyAgICAgIElucHV0UmVhZGVyLTQxOSAgIFswMDBdIDUwMjYyLjUzODU3ODogMDogQ3wzNjB8aXF8MVxuXAorICAgICAgICAgXG4iOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvdHJpdmlhbF90cmFjZS5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3RyaXZpYWxfdHJhY2UuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS90cml2aWFsX3RyYWNlLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS90cml2aWFsX3RyYWNlLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvdjgubG9nIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3Y4LmxvZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS92OC5sb2cKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS92OC5sb2cKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvd2luZG93c19ldHdfY3N3aXRjaC5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3dpbmRvd3NfZXR3X2Nzd2l0Y2guanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS93aW5kb3dzX2V0d19jc3dpdGNoLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS93aW5kb3dzX2V0d19jc3dpdGNoLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90ZXN0X2RhdGEvd3RmLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEvd3RmLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90ZXN0X2RhdGEvd3RmLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3Rlc3RfZGF0YS93dGYuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3Rlc3RfZGF0YS94X2V2ZW50X3RyYWNlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90ZXN0X2RhdGEveF9ldmVudF90cmFjZS5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGVzdF9kYXRhL3hfZXZlbnRfdHJhY2UuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGVzdF9kYXRhL3hfZXZlbnRfdHJhY2UuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NoYWkvTElDRU5TRSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NoYWkvTElDRU5TRQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NoYWkvTElDRU5TRQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2hhaS9MSUNFTlNFCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2hhaS9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jaGFpL1JFQURNRS5jaHJvbWl1bQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NoYWkvUkVBRE1FLmNocm9taXVtCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jaGFpL1JFQURNRS5jaHJvbWl1bQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NoYWkvY2hhaS5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NoYWkvY2hhaS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NoYWkvY2hhaS5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2hhaS9jaGFpLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvQVVUSE9SUyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL0FVVEhPUlMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9BVVRIT1JTCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9BVVRIT1JTCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvTElDRU5TRSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9MSUNFTlNFCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9MSUNFTlNFCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvUkVBRE1FIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvUkVBRE1FCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvUkVBRE1FCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9SRUFETUUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9SRUFETUUuY2hyb21pdW0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9SRUFETUUuY2hyb21pdW0KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL1JFQURNRS5jaHJvbWl1bQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jaGVja2VyLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY2hlY2tlci5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NoZWNrZXIucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NoZWNrZXIucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jaGVja2VyYmFzZS5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NoZWNrZXJiYXNlLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY2hlY2tlcmJhc2UucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NoZWNrZXJiYXNlLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY2xvc3VyaXplZG5hbWVzcGFjZXNpbmZvLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY2xvc3VyaXplZG5hbWVzcGFjZXNpbmZvLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY2xvc3VyaXplZG5hbWVzcGFjZXNpbmZvLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jbG9zdXJpemVkbmFtZXNwYWNlc2luZm8ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jbG9zdXJpemVkbmFtZXNwYWNlc2luZm9fdGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Nsb3N1cml6ZWRuYW1lc3BhY2VzaW5mb190ZXN0LnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY2xvc3VyaXplZG5hbWVzcGFjZXNpbmZvX3Rlc3QucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Nsb3N1cml6ZWRuYW1lc3BhY2VzaW5mb190ZXN0LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL19faW5pdF9fLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL19faW5pdF9fLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3IucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3IucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3IucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9lcnJvci5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9lcnJvcmFjY3VtdWxhdG9yLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL2Vycm9yYWNjdW11bGF0b3IucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3JhY2N1bXVsYXRvci5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL2Vycm9yYWNjdW11bGF0b3IucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3JoYW5kbGVyLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL2Vycm9yaGFuZGxlci5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9lcnJvcmhhbmRsZXIucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9lcnJvcmhhbmRsZXIucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3JvdXRwdXQucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3JvdXRwdXQucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZXJyb3JvdXRwdXQucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9lcnJvcm91dHB1dC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9maWxldGVzdGNhc2UucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vZmlsZXRlc3RjYXNlLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL2ZpbGV0ZXN0Y2FzZS5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL2ZpbGV0ZXN0Y2FzZS5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9odG1sdXRpbC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9odG1sdXRpbC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9odG1sdXRpbC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL2h0bWx1dGlsLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL2xpbnRydW5uZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vbGludHJ1bm5lci5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9saW50cnVubmVyLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vbGludHJ1bm5lci5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9tYXRjaGVyLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL21hdGNoZXIucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vbWF0Y2hlci5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL21hdGNoZXIucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vcG9zaXRpb24ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vcG9zaXRpb24ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vcG9zaXRpb24ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9wb3NpdGlvbi5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi9zaW1wbGVmaWxlZmxhZ3MucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vc2ltcGxlZmlsZWZsYWdzLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL3NpbXBsZWZpbGVmbGFncy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL3NpbXBsZWZpbGVmbGFncy5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi90b2tlbml6ZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vdG9rZW5pemVyLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL3Rva2VuaXplci5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL3Rva2VuaXplci5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi90b2tlbnMucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9jb21tb24vdG9rZW5zLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL3Rva2Vucy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL3Rva2Vucy5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi90b2tlbnNfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi90b2tlbnNfdGVzdC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2NvbW1vbi90b2tlbnNfdGVzdC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvY29tbW9uL3Rva2Vuc190ZXN0LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZWNtYWxpbnRydWxlcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2VjbWFsaW50cnVsZXMucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lY21hbGludHJ1bGVzLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lY21hbGludHJ1bGVzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZWNtYW1ldGFkYXRhcGFzcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2VjbWFtZXRhZGF0YXBhc3MucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lY21hbWV0YWRhdGFwYXNzLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lY21hbWV0YWRhdGFwYXNzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JfY2hlY2sucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lcnJvcl9jaGVjay5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Vycm9yX2NoZWNrLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lcnJvcl9jaGVjay5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Vycm9yX2ZpeGVyLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JfZml4ZXIucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lcnJvcl9maXhlci5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JfZml4ZXIucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lcnJvcnJlY29yZC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Vycm9ycmVjb3JkLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JyZWNvcmQucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Vycm9ycmVjb3JkLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JydWxlcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Vycm9ycnVsZXMucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lcnJvcnJ1bGVzLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lcnJvcnJ1bGVzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JzLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JzLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZXJyb3JzLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9lcnJvcnMucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9maXhqc3N0eWxlLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZml4anNzdHlsZS5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2ZpeGpzc3R5bGUucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2ZpeGpzc3R5bGUucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9maXhqc3N0eWxlX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9maXhqc3N0eWxlX3Rlc3QucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9maXhqc3N0eWxlX3Rlc3QucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2ZpeGpzc3R5bGVfdGVzdC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Z1bGxfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Z1bGxfdGVzdC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2Z1bGxfdGVzdC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZnVsbF90ZXN0LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvZ2pzbGludC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2dqc2xpbnQucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9nanNsaW50LnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9nanNsaW50LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvaW5kZW50YXRpb24ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9pbmRlbnRhdGlvbi5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2luZGVudGF0aW9uLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9pbmRlbnRhdGlvbi5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2phdmFzY3JpcHRsaW50cnVsZXMucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9qYXZhc2NyaXB0bGludHJ1bGVzLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdGxpbnRydWxlcy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdGxpbnRydWxlcy5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2phdmFzY3JpcHRzdGF0ZXRyYWNrZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9qYXZhc2NyaXB0c3RhdGV0cmFja2VyLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdHN0YXRldHJhY2tlci5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdHN0YXRldHJhY2tlci5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2phdmFzY3JpcHR0b2tlbml6ZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9qYXZhc2NyaXB0dG9rZW5pemVyLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdHRva2VuaXplci5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdHRva2VuaXplci5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL2phdmFzY3JpcHR0b2tlbnMucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9qYXZhc2NyaXB0dG9rZW5zLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdHRva2Vucy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvamF2YXNjcmlwdHRva2Vucy5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL25vdF9zdHJpY3RfdGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL25vdF9zdHJpY3RfdGVzdC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL25vdF9zdHJpY3RfdGVzdC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvbm90X3N0cmljdF90ZXN0LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvcmVxdWlyZXByb3ZpZGVzb3J0ZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9yZXF1aXJlcHJvdmlkZXNvcnRlci5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL3JlcXVpcmVwcm92aWRlc29ydGVyLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9yZXF1aXJlcHJvdmlkZXNvcnRlci5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL3JlcXVpcmVwcm92aWRlc29ydGVyX3Rlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci9yZXF1aXJlcHJvdmlkZXNvcnRlcl90ZXN0LnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvcmVxdWlyZXByb3ZpZGVzb3J0ZXJfdGVzdC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvcmVxdWlyZXByb3ZpZGVzb3J0ZXJfdGVzdC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL3N0YXRldHJhY2tlci5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL3N0YXRldHJhY2tlci5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL2Nsb3N1cmVfbGludGVyL3N0YXRldHJhY2tlci5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvc3RhdGV0cmFja2VyLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvdG9rZW51dGlsLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvdG9rZW51dGlsLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvY2xvc3VyZV9saW50ZXIvdG9rZW51dGlsLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9jbG9zdXJlX2xpbnRlci90b2tlbnV0aWwucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jbG9zdXJlX2xpbnRlci9zZXR1cC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL3NldHVwLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY2xvc3VyZV9saW50ZXIvc2V0dXAucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nsb3N1cmVfbGludGVyL3NldHVwLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlLy5ib3dlci5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlLy5ib3dlci5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlLy5ib3dlci5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvLmJvd2VyLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvUkVBRE1FLm1kIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlL1JFQURNRS5tZApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9SRUFETUUubWQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9SRUFETUUubWQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvYm93YWdlci1sb2dvLnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9ib3dhZ2VyLWxvZ28ucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlL2Jvd2FnZXItbG9nby5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9ib3dhZ2VyLWxvZ28ucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvYm93ZXIuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9ib3dlci5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlL2Jvd2VyLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9ib3dlci5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlL2NvcmUtY29tcG9uZW50LXBhZ2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9jb3JlLWNvbXBvbmVudC1wYWdlLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvY29yZS1jb21wb25lbnQtcGFnZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvY29yZS1jb21wb25lbnQtcGFnZS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlL2RlbW8uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9kZW1vLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvZGVtby5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvZGVtby5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9jb3JlLWNvbXBvbmVudC1wYWdlL2luZGV4Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvaW5kZXguaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvY29yZS1jb21wb25lbnQtcGFnZS9pbmRleC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL2NvcmUtY29tcG9uZW50LXBhZ2UvaW5kZXguaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci8uYm93ZXIuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci8uYm93ZXIuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci8uYm93ZXIuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyLy5ib3dlci5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9SRUFETUUuY2hyb21pdW0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvUkVBRE1FLmNocm9taXVtCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvUkVBRE1FLmNocm9taXVtCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL1JFQURNRS5tZCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9SRUFETUUubWQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvUkVBRE1FLm1kCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvUkVBRE1FLm1kCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL2Jvd2VyLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvYm93ZXIuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9ib3dlci5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvYm93ZXIuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9idWlsZC5sb2cgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvYnVpbGQubG9nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL2J1aWxkLmxvZwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL2J1aWxkLmxvZwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9sYXlvdXQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9sYXlvdXQuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9sYXlvdXQuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL2xheW91dC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5qcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLm1pbi5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLm1pbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvcG9seW1lci9wb2x5bWVyLm1pbi5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIubWluLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvLmJvd2VyLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy8uYm93ZXIuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzLy5ib3dlci5qc29uCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy8uYm93ZXIuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL0N1c3RvbUVsZW1lbnRzLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvQ3VzdG9tRWxlbWVudHMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9DdXN0b21FbGVtZW50cy5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvQ3VzdG9tRWxlbWVudHMuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9DdXN0b21FbGVtZW50cy5taW4uanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9DdXN0b21FbGVtZW50cy5taW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9DdXN0b21FbGVtZW50cy5taW4uanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL0N1c3RvbUVsZW1lbnRzLm1pbi5qcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL0hUTUxJbXBvcnRzLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvSFRNTEltcG9ydHMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9IVE1MSW1wb3J0cy5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvSFRNTEltcG9ydHMuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9IVE1MSW1wb3J0cy5taW4uanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9IVE1MSW1wb3J0cy5taW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9IVE1MSW1wb3J0cy5taW4uanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL0hUTUxJbXBvcnRzLm1pbi5qcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL1JFQURNRS5tZCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL1JFQURNRS5tZApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL1JFQURNRS5tZApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvUkVBRE1FLm1kCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvU2hhZG93RE9NLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvU2hhZG93RE9NLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvU2hhZG93RE9NLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9TaGFkb3dET00uanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9TaGFkb3dET00ubWluLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvU2hhZG93RE9NLm1pbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL1NoYWRvd0RPTS5taW4uanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL1NoYWRvd0RPTS5taW4uanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9ib3dlci5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvYm93ZXIuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL2Jvd2VyLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL2Jvd2VyLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9idWlsZC5sb2cgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9idWlsZC5sb2cKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9idWlsZC5sb2cKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL2J1aWxkLmxvZwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3BhY2thZ2UuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3BhY2thZ2UuanNvbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3BhY2thZ2UuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvcGFja2FnZS5qc29uCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy1saXRlLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy1saXRlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy1saXRlLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLWxpdGUuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLWxpdGUubWluLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy1saXRlLm1pbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMtbGl0ZS5taW4uanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMtbGl0ZS5taW4uanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMuanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLm1pbi5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMubWluLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy5taW4uanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMubWluLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9HcnVudGZpbGUuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL0dydW50ZmlsZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvR3J1bnRmaWxlLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL0dydW50ZmlsZS5qcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvTElDRU5TRSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvTElDRU5TRQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvTElDRU5TRQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9MSUNFTlNFCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL1JFQURNRS5jaHJvbWl1bQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvUkVBRE1FLmNocm9taXVtCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL1JFQURNRS5jaHJvbWl1bQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvUkVBRE1FLm1kIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9SRUFETUUubWQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL1JFQURNRS5tZApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9SRUFETUUubWQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL2Jvd2VyLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL2Jvd2VyLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL2Jvd2VyLmpzb24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvYm93ZXIuanNvbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvcGFja2FnZS5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9wYWNrYWdlLmpzb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL3BhY2thZ2UuanNvbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9wYWNrYWdlLmpzb24KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL3NyYy9FbGVtZW50UXVlcmllcy5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvc3JjL0VsZW1lbnRRdWVyaWVzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvRWxlbWVudFF1ZXJpZXMuanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvc3JjL0VsZW1lbnRRdWVyaWVzLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL3NyYy9SZXNpemVTZW5zb3IuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL3Rlc3QvaW5kZXguaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvdGVzdC9pbmRleC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy90ZXN0L2luZGV4Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvdGVzdC9pbmRleC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy90ZXN0L21vb3Rvb2xzLWNvcmUtZnVsbC1ub2NvbXBhdC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2Nzcy1lbGVtZW50LXF1ZXJpZXMvdGVzdC9tb290b29scy1jb3JlLWZ1bGwtbm9jb21wYXQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL3Rlc3QvbW9vdG9vbHMtY29yZS1mdWxsLW5vY29tcGF0LmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL3Rlc3QvbW9vdG9vbHMtY29yZS1mdWxsLW5vY29tcGF0LmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy90ZXN0L21vb3Rvb2xzLW1vcmUteXVpLWNvbXByZXNzZWQubWluLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy90ZXN0L21vb3Rvb2xzLW1vcmUteXVpLWNvbXByZXNzZWQubWluLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvY3NzLWVsZW1lbnQtcXVlcmllcy90ZXN0L21vb3Rvb2xzLW1vcmUteXVpLWNvbXByZXNzZWQubWluLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9jc3MtZWxlbWVudC1xdWVyaWVzL3Rlc3QvbW9vdG9vbHMtbW9yZS15dWktY29tcHJlc3NlZC5taW4uanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9kMy9MSUNFTlNFIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZDMvTElDRU5TRQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2QzL0xJQ0VOU0UKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2QzL0xJQ0VOU0UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9kMy9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9kMy9SRUFETUUuY2hyb21pdW0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9kMy9SRUFETUUuY2hyb21pdW0KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2QzL1JFQURNRS5jaHJvbWl1bQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2QzL2QzLm1pbi5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2QzL2QzLm1pbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2QzL2QzLm1pbi5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZDMvZDMubWluLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZGV2c2NyaXB0cy9DT1BZSU5HIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZGV2c2NyaXB0cy9DT1BZSU5HCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZGV2c2NyaXB0cy9DT1BZSU5HCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9kZXZzY3JpcHRzL0NPUFlJTkcKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9kZXZzY3JpcHRzL1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2RldnNjcmlwdHMvUkVBRE1FLmNocm9taXVtCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZGV2c2NyaXB0cy9SRUFETUUuY2hyb21pdW0KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2RldnNjcmlwdHMvUkVBRE1FLmNocm9taXVtCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZGV2c2NyaXB0cy9saWNlbnNlY2hlY2sucGwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9kZXZzY3JpcHRzL2xpY2Vuc2VjaGVjay5wbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2RldnNjcmlwdHMvbGljZW5zZWNoZWNrLnBsCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9kZXZzY3JpcHRzL2xpY2Vuc2VjaGVjay5wbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2RldnNjcmlwdHMvbGljZW5zZWNoZWNrLnBsLnZhbmlsbGEgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9kZXZzY3JpcHRzL2xpY2Vuc2VjaGVjay5wbC52YW5pbGxhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZGV2c2NyaXB0cy9saWNlbnNlY2hlY2sucGwudmFuaWxsYQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZGV2c2NyaXB0cy9saWNlbnNlY2hlY2sucGwudmFuaWxsYQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4Ly5naXRpZ25vcmUgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDRhNzdiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4Ly5naXRpZ25vcmUKQEAgLTAsMCArMSw1IEBACisucnZtcmMKKy5EU19TdG9yZQordG1wCitub2RlX21vZHVsZXMKK25wbS1kZWJ1Zy5sb2cKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9CVUlMRElORy5tZCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9CVUlMRElORy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTcwYWIzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L0JVSUxESU5HLm1kCkBAIC0wLDAgKzEsNyBAQAorQnVpbGRpbmcgZm9yIHRoZSBicm93c2VyCis9PT09PT09PT09PT09PT09PT09PT09PT0KKworCitUbyBidWlsZCBgZ2wtbWF0cml4LmpzYCBhbmQgYGdsLW1hdHJpeC1taW4uanNgIGZvciB1c2UgaW4gdGhlIGJyb3dzZXIgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKworICAgIHdlYnBhY2sgJiYgd2VicGFjayAtLWNvbmZpZyB3ZWJwYWNrLmNvbmZpZy5taW4uanMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvTElDRU5TRS5tZCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9MSUNFTlNFLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5Njk4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvTElDRU5TRS5tZApAQCAtMCwwICsxLDE5IEBACitDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9SRUFETUUuY2hyb21pdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU1YzNkNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9SRUFETUUuY2hyb21pdW0KQEAgLTAsMCArMSwxNSBAQAorTmFtZTogZ2wtbWF0cml4CitTaG9ydCBOYW1lOiBnbC1tYXRyaXgKK1VSTDogaHR0cHM6Ly9naXRodWIuY29tL3RvamkvZ2wtbWF0cml4CitWZXJzaW9uOiAwCitSZXZpc2lvbjogOGZjNDg2OTAzMWU0YWIxZGFmNzcxZTUyMDZjMjU3OGUwNDRjZjQ5NQorRGF0ZTogVHVlIEZlYiAxMiAxNDoyMToxNCAyMDEzIC0wODAwCitMaWNlbnNlOiBCU0QKK0xpY2Vuc2UgRmlsZTogTk9UX1NISVBQRUQKK1NlY3VyaXR5IENyaXRpY2FsOiBubworCitEZXNjcmlwdGlvbjoKK01hdHJpeCBtYXRoIGluIGphdmFzY3JpcHQKKworTG9jYWwgTW9kaWZpY2F0aW9uczoKK05vbmUuCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvUkVBRE1FLm1kIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDY2Y2IwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1JFQURNRS5tZApAQCAtMCwwICsxLDIyIEBACitnbE1hdHJpeAorPT09PT09PT09PT09PT09PT09PT09PT0KKworSmF2YXNjcmlwdCBoYXMgZXZvbHZlZCBpbnRvIGEgbGFuZ3VhZ2UgY2FwYWJsZSBvZiBoYW5kbGluZyByZWFsdGltZSAzRCBncmFwaGljcywgCit2aWEgV2ViR0wsIGFuZCBjb21wdXRhdGlvbmFsbHkgaW50ZW5zaXZlIHRhc2tzIHN1Y2ggYXMgcGh5c2ljcyBzaW11bGF0aW9ucy4KK1RoZXNlIHR5cGVzIG9mIGFwcGxpY2F0aW9ucyBkZW1hbmQgaGlnaCBwZXJmb3JtYW5jZSB2ZWN0b3IgYW5kIG1hdHJpeCBtYXRoLAord2hpY2ggaXMgc29tZXRoaW5nIHRoYXQgSmF2YXNjcmlwdCBkb2Vzbid0IHByb3ZpZGUgYnkgZGVmYXVsdC4KK2dsTWF0cml4IHRvIHRoZSByZXNjdWUhCisKK2dsTWF0cml4IGlzIGRlc2lnbmVkIHRvIHBlcmZvcm0gdmVjdG9yIGFuZCBtYXRyaXggb3BlcmF0aW9ucyBzdHVwaWRseSBmYXN0ISBCeQoraGFuZC10dW5pbmcgZWFjaCBmdW5jdGlvbiBmb3IgbWF4aW11bSBwZXJmb3JtYW5jZSBhbmQgZW5jb3VyYWdpbmcgZWZmaWNpZW50Cit1c2FnZSBwYXR0ZXJucyB0aHJvdWdoIEFQSSBjb252ZW50aW9ucywgZ2xNYXRyaXggd2lsbCBoZWxwIHlvdSBnZXQgdGhlIG1vc3Qgb3V0CitvZiB5b3VyIGJyb3dzZXJzIEphdmFzY3JpcHQgZW5naW5lLgorCitMZWFybiBNb3JlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitGb3IgZG9jdW1lbnRhdGlvbiwgbmV3cywgdHV0b3JpYWxzLCBhbmQgbW9yZSB2aXNpdCB0aGUgW2dsTWF0cml4IEhvbWVwYWdlXShodHRwOi8vZ2xtYXRyaXgubmV0LykKKworQ29udHJpYnV0aW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDb250cmlidXRpb25zIGFyZSB3ZWxjb21lISBQbGVhc2UgbWFrZSBwdWxsIHJlcXVlc3RzIGFnYWlucyB0aGUgYGRldmAgYnJhbmNoLCAKK2FuZCBwbGVhc2UgcHJvdmlkZSB1bml0IHRlc3RzIGZvciBuZXcgZnVuY3Rpb25hbGl0eS4gKFNlZSBURVNUSU5HLm1kIGZvciBkZXRhaWxzKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1RFU1RJTkcubWQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvVEVTVElORy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZmZkNWIyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1RFU1RJTkcubWQKQEAgLTAsMCArMSwxMiBAQAorUnVubmluZyB0aGUgdGVzdCBzdWl0ZQorPT09PT09PT09PT09PT09PT09PT09PT0KKworCitUaGUgdW5pdCB0ZXN0cyBhcmUgYnVpbHQgdXBvbiB0aGUgZm9sbG93aW5nIHRvb2xzOgorCisqIEphc21pbmUgLS0gdGhlIHVuZGVybHlpbmcgdGVzdCBzdWl0ZSB3aGljaCBleGVjdXRlcyB0aGUgdGVzdCBhbmQgcmVwb3J0cyBmZWVkYmFjaworKiBub2RlLmpzIC0tIHVzZWQgZm9yIHRlc3RpbmcgYXQgdGhlIGNvbW1hbmQgbGluZSwgdmlhIHRoZSBgamFzbWluZS1ub2RlYCBwYWNrYWdlCisKK1RvIHJ1biB0aGUgdW5pdCB0ZXN0cyB1c2UgYGphc21pbmUtbm9kZWA6CisKKyAgICBqYXNtaW5lLW5vZGUgc3BlYwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9WRVJTSU9OIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L1ZFUlNJT04KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M2NjEyYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9WRVJTSU9OCkBAIC0wLDAgKzEgQEAKKzIuMy4wClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2Jvd2VyLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvYm93ZXIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTUyYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2Jvd2VyLmpzb24KQEAgLTAsMCArMSwyNyBAQAoreworICAibmFtZSI6ICJnbC1tYXRyaXgiLAorICAiaG9tZXBhZ2UiOiAiaHR0cDovL2dsbWF0cml4Lm5ldCIsCisgICJhdXRob3JzIjogWworICAgICJCcmFuZG9uIEpvbmVzIDx0b2ppcm9AZ21haWwuY29tPiIsCisgICAgIkNvbGluIE1hY0tlbnppZSBJViA8c2luaXN0ZXJjaGlwbXVua0BnbWFpbC5jb20+IgorICBdLAorICAiZGVzY3JpcHRpb24iOiAiSmF2YXNjcmlwdCBNYXRyaXggYW5kIFZlY3RvciBsaWJyYXJ5IGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYkdMIGFwcHMiLAorICAibWFpbiI6ICJkaXN0L2dsLW1hdHJpeC1taW4uanMiLAorICAiaWdub3JlIjogWworICAgICIqKi8uKiIsCisgICAgImpzZG9jLXRlbXBsYXRlIiwKKyAgICAic3BlYyIsCisgICAgInNyYyIsCisgICAgInRhc2tzIiwKKyAgICAiR2VtZmlsZSIsCisgICAgIkdlbWZpbGUubG9jayIsCisgICAgIlJha2VmaWxlIiwKKyAgICAiVEVTVElORy5tZCIKKyAgXSwKKyAgImtleXdvcmRzIjogWworICAgICJ3ZWJHTCIsCisgICAgIm1hdHJpeCIsCisgICAgInZlY3RvciIKKyAgXSwKKyAgImxpY2Vuc2UiOiAiTUlUIgorfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2Rpc3QvZ2wtbWF0cml4LW1pbi5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC1taW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJkYjgyZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC1taW4uanMKQEAgLTAsMCArMSwyOSBAQAorLyoqCisgKiBAZmlsZW92ZXJ2aWV3IGdsLW1hdHJpeCAtIEhpZ2ggcGVyZm9ybWFuY2UgbWF0cml4IGFuZCB2ZWN0b3Igb3BlcmF0aW9ucworICogQGF1dGhvciBCcmFuZG9uIEpvbmVzCisgKiBAYXV0aG9yIENvbGluIE1hY0tlbnppZSBJVgorICogQHZlcnNpb24gMi4zLjEKKyAqLworCisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKKyFmdW5jdGlvbih0LG4pe2lmKCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUpbW9kdWxlLmV4cG9ydHM9bigpO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClkZWZpbmUobik7ZWxzZXt2YXIgcj1uKCk7Zm9yKHZhciBhIGluIHIpKCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzOnQpW2FdPXJbYV19fSh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oYSl7aWYoclthXSlyZXR1cm4gclthXS5leHBvcnRzO3ZhciBlPXJbYV09e2V4cG9ydHM6e30saWQ6YSxsb2FkZWQ6ITF9O3JldHVybiB0W2FdLmNhbGwoZS5leHBvcnRzLGUsZS5leHBvcnRzLG4pLGUubG9hZGVkPSEwLGUuZXhwb3J0c312YXIgcj17fTtyZXR1cm4gbi5tPXQsbi5jPXIsbi5wPSIiLG4oMCl9KFtmdW5jdGlvbih0LG4scil7bi5nbE1hdHJpeD1yKDEpLG4ubWF0Mj1yKDIpLG4ubWF0MmQ9cigzKSxuLm1hdDM9cig0KSxuLm1hdDQ9cig1KSxuLnF1YXQ9cig2KSxuLnZlYzI9cig5KSxuLnZlYzM9cig3KSxuLnZlYzQ9cig4KX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXt9O2EuRVBTSUxPTj0xZS02LGEuQVJSQVlfVFlQRT0idW5kZWZpbmVkIiE9dHlwZW9mIEZsb2F0MzJBcnJheT9GbG9hdDMyQXJyYXk6QXJyYXksYS5SQU5ET009TWF0aC5yYW5kb20sYS5zZXRNYXRyaXhBcnJheVR5cGU9ZnVuY3Rpb24odCl7R0xNQVRfQVJSQVlfVFlQRT10fTt2YXIgZT1NYXRoLlBJLzE4MDthLnRvUmFkaWFuPWZ1bmN0aW9uKHQpe3JldHVybiB0KmV9LHQuZXhwb3J0cz1hfSxmdW5jdGlvbih0LG4scil7dmFyIGE9cigxKSxlPXt9O2UuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGEuQVJSQVlfVFlQRSg0KTtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0xLHR9LGUuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIG49bmV3IGEuQVJSQVlfVFlQRSg0KTtyZXR1cm4gblswXT10WzBdLG5bMV09dFsxXSxuWzJdPXRbMl0sblszXT10WzNdLG59LGUuY29weT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT1uWzFdLHRbMl09blsyXSx0WzNdPW5bM10sdH0sZS5pZGVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0xLHR9LGUudHJhbnNwb3NlPWZ1bmN0aW9uKHQsbil7aWYodD09PW4pe3ZhciByPW5bMV07dFsxXT1uWzJdLHRbMl09cn1lbHNlIHRbMF09blswXSx0WzFdPW5bMl0sdFsyXT1uWzFdLHRbM109blszXTtyZXR1cm4gdH0sZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89cip1LWUqYTtyZXR1cm4gbz8obz0xL28sdFswXT11Km8sdFsxXT0tYSpvLHRbMl09LWUqbyx0WzNdPXIqbyx0KTpudWxsfSxlLmFkam9pbnQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdO3JldHVybiB0WzBdPW5bM10sdFsxXT0tblsxXSx0WzJdPS1uWzJdLHRbM109cix0fSxlLmRldGVybWluYW50PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdKnRbM10tdFsyXSp0WzFdfSxlLm11bHRpcGx5PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9clswXSxjPXJbMV0sZj1yWzJdLHM9clszXTtyZXR1cm4gdFswXT1hKmkrdSpjLHRbMV09ZSppK28qYyx0WzJdPWEqZit1KnMsdFszXT1lKmYrbypzLHR9LGUubXVsPWUubXVsdGlwbHksZS5yb3RhdGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1NYXRoLnNpbihyKSxjPU1hdGguY29zKHIpO3JldHVybiB0WzBdPWEqYyt1KmksdFsxXT1lKmMrbyppLHRbMl09YSotaSt1KmMsdFszXT1lKi1pK28qYyx0fSxlLnNjYWxlPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9clswXSxjPXJbMV07cmV0dXJuIHRbMF09YSppLHRbMV09ZSppLHRbMl09dSpjLHRbM109bypjLHR9LGUuZnJvbVJvdGF0aW9uPWZ1bmN0aW9uKHQsbil7dmFyIHI9TWF0aC5zaW4obiksYT1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1hLHRbMV09cix0WzJdPS1yLHRbM109YSx0fSxlLmZyb21TY2FsaW5nPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPTAsdFsyXT0wLHRbM109blsxXSx0fSxlLnN0cj1mdW5jdGlvbih0KXtyZXR1cm4ibWF0MigiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIikifSxlLmZyb2I9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0WzBdLDIpK01hdGgucG93KHRbMV0sMikrTWF0aC5wb3codFsyXSwyKStNYXRoLnBvdyh0WzNdLDIpKX0sZS5MRFU9ZnVuY3Rpb24odCxuLHIsYSl7cmV0dXJuIHRbMl09YVsyXS9hWzBdLHJbMF09YVswXSxyWzFdPWFbMV0sclszXT1hWzNdLXRbMl0qclsxXSxbdCxuLHJdfSx0LmV4cG9ydHM9ZX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIoMSksZT17fTtlLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhLkFSUkFZX1RZUEUoNik7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MSx0WzRdPTAsdFs1XT0wLHR9LGUuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIG49bmV3IGEuQVJSQVlfVFlQRSg2KTtyZXR1cm4gblswXT10WzBdLG5bMV09dFsxXSxuWzJdPXRbMl0sblszXT10WzNdLG5bNF09dFs0XSxuWzVdPXRbNV0sbn0sZS5jb3B5PWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPW5bMV0sdFsyXT1uWzJdLHRbM109blszXSx0WzRdPW5bNF0sdFs1XT1uWzVdLHR9LGUuaWRlbnRpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MSx0WzRdPTAsdFs1XT0wLHR9LGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdLHU9blszXSxvPW5bNF0saT1uWzVdLGM9cip1LWEqZTtyZXR1cm4gYz8oYz0xL2MsdFswXT11KmMsdFsxXT0tYSpjLHRbMl09LWUqYyx0WzNdPXIqYyx0WzRdPShlKmktdSpvKSpjLHRbNV09KGEqby1yKmkpKmMsdCk6bnVsbH0sZS5kZXRlcm1pbmFudD1mdW5jdGlvbih0KXtyZXR1cm4gdFswXSp0WzNdLXRbMV0qdFsyXX0sZS5tdWx0aXBseT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9clswXSxzPXJbMV0saD1yWzJdLE09clszXSxsPXJbNF0sdj1yWzVdO3JldHVybiB0WzBdPWEqZit1KnMsdFsxXT1lKmYrbypzLHRbMl09YSpoK3UqTSx0WzNdPWUqaCtvKk0sdFs0XT1hKmwrdSp2K2ksdFs1XT1lKmwrbyp2K2MsdH0sZS5tdWw9ZS5tdWx0aXBseSxlLnJvdGF0ZT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9TWF0aC5zaW4ocikscz1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1hKnMrdSpmLHRbMV09ZSpzK28qZix0WzJdPWEqLWYrdSpzLHRbM109ZSotZitvKnMsdFs0XT1pLHRbNV09Yyx0fSxlLnNjYWxlPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9bls0XSxjPW5bNV0sZj1yWzBdLHM9clsxXTtyZXR1cm4gdFswXT1hKmYsdFsxXT1lKmYsdFsyXT11KnMsdFszXT1vKnMsdFs0XT1pLHRbNV09Yyx0fSxlLnRyYW5zbGF0ZT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9clswXSxzPXJbMV07cmV0dXJuIHRbMF09YSx0WzFdPWUsdFsyXT11LHRbM109byx0WzRdPWEqZit1KnMraSx0WzVdPWUqZitvKnMrYyx0fSxlLmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LG4pe3ZhciByPU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIHRbMF09YSx0WzFdPXIsdFsyXT0tcix0WzNdPWEsdFs0XT0wLHRbNV09MCx0fSxlLmZyb21TY2FsaW5nPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPTAsdFsyXT0wLHRbM109blsxXSx0WzRdPTAsdFs1XT0wLHR9LGUuZnJvbVRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MSx0WzRdPW5bMF0sdFs1XT1uWzFdLHR9LGUuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJtYXQyZCgiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIiwgIit0WzRdKyIsICIrdFs1XSsiKSJ9LGUuZnJvYj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHRbMF0sMikrTWF0aC5wb3codFsxXSwyKStNYXRoLnBvdyh0WzJdLDIpK01hdGgucG93KHRbM10sMikrTWF0aC5wb3codFs0XSwyKStNYXRoLnBvdyh0WzVdLDIpKzEpfSx0LmV4cG9ydHM9ZX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIoMSksZT17fTtlLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhLkFSUkFZX1RZUEUoOSk7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTEsdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9LGUuZnJvbU1hdDQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09blsxXSx0WzJdPW5bMl0sdFszXT1uWzRdLHRbNF09bls1XSx0WzVdPW5bNl0sdFs2XT1uWzhdLHRbN109bls5XSx0WzhdPW5bMTBdLHR9LGUuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIG49bmV3IGEuQVJSQVlfVFlQRSg5KTtyZXR1cm4gblswXT10WzBdLG5bMV09dFsxXSxuWzJdPXRbMl0sblszXT10WzNdLG5bNF09dFs0XSxuWzVdPXRbNV0sbls2XT10WzZdLG5bN109dFs3XSxuWzhdPXRbOF0sbn0sZS5jb3B5PWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPW5bMV0sdFsyXT1uWzJdLHRbM109blszXSx0WzRdPW5bNF0sdFs1XT1uWzVdLHRbNl09bls2XSx0WzddPW5bN10sdFs4XT1uWzhdLHR9LGUuaWRlbnRpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTEsdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9LGUudHJhbnNwb3NlPWZ1bmN0aW9uKHQsbil7aWYodD09PW4pe3ZhciByPW5bMV0sYT1uWzJdLGU9bls1XTt0WzFdPW5bM10sdFsyXT1uWzZdLHRbM109cix0WzVdPW5bN10sdFs2XT1hLHRbN109ZX1lbHNlIHRbMF09blswXSx0WzFdPW5bM10sdFsyXT1uWzZdLHRbM109blsxXSx0WzRdPW5bNF0sdFs1XT1uWzddLHRbNl09blsyXSx0WzddPW5bNV0sdFs4XT1uWzhdO3JldHVybiB0fSxlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1uWzRdLGk9bls1XSxjPW5bNl0sZj1uWzddLHM9bls4XSxoPXMqby1pKmYsTT0tcyp1K2kqYyxsPWYqdS1vKmMsdj1yKmgrYSpNK2UqbDtyZXR1cm4gdj8odj0xL3YsdFswXT1oKnYsdFsxXT0oLXMqYStlKmYpKnYsdFsyXT0oaSphLWUqbykqdix0WzNdPU0qdix0WzRdPShzKnItZSpjKSp2LHRbNV09KC1pKnIrZSp1KSp2LHRbNl09bCp2LHRbN109KC1mKnIrYSpjKSp2LHRbOF09KG8qci1hKnUpKnYsdCk6bnVsbH0sZS5hZGpvaW50PWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdLHU9blszXSxvPW5bNF0saT1uWzVdLGM9bls2XSxmPW5bN10scz1uWzhdO3JldHVybiB0WzBdPW8qcy1pKmYsdFsxXT1lKmYtYSpzLHRbMl09YSppLWUqbyx0WzNdPWkqYy11KnMsdFs0XT1yKnMtZSpjLHRbNV09ZSp1LXIqaSx0WzZdPXUqZi1vKmMsdFs3XT1hKmMtcipmLHRbOF09cipvLWEqdSx0fSxlLmRldGVybWluYW50PWZ1bmN0aW9uKHQpe3ZhciBuPXRbMF0scj10WzFdLGE9dFsyXSxlPXRbM10sdT10WzRdLG89dFs1XSxpPXRbNl0sYz10WzddLGY9dFs4XTtyZXR1cm4gbiooZip1LW8qYykrciooLWYqZStvKmkpK2EqKGMqZS11KmkpfSxlLm11bHRpcGx5PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9bls0XSxjPW5bNV0sZj1uWzZdLHM9bls3XSxoPW5bOF0sTT1yWzBdLGw9clsxXSx2PXJbMl0sbT1yWzNdLHA9cls0XSxkPXJbNV0sQT1yWzZdLFI9cls3XSx3PXJbOF07cmV0dXJuIHRbMF09TSphK2wqbyt2KmYsdFsxXT1NKmUrbCppK3Yqcyx0WzJdPU0qdStsKmMrdipoLHRbM109bSphK3AqbytkKmYsdFs0XT1tKmUrcCppK2Qqcyx0WzVdPW0qdStwKmMrZCpoLHRbNl09QSphK1Iqbyt3KmYsdFs3XT1BKmUrUippK3cqcyx0WzhdPUEqdStSKmMrdypoLHR9LGUubXVsPWUubXVsdGlwbHksZS50cmFuc2xhdGU9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1uWzRdLGM9bls1XSxmPW5bNl0scz1uWzddLGg9bls4XSxNPXJbMF0sbD1yWzFdO3JldHVybiB0WzBdPWEsdFsxXT1lLHRbMl09dSx0WzNdPW8sdFs0XT1pLHRbNV09Yyx0WzZdPU0qYStsKm8rZix0WzddPU0qZStsKmkrcyx0WzhdPU0qdStsKmMraCx0fSxlLnJvdGF0ZT1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9bls2XSxzPW5bN10saD1uWzhdLE09TWF0aC5zaW4ociksbD1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1sKmErTSpvLHRbMV09bCplK00qaSx0WzJdPWwqdStNKmMsdFszXT1sKm8tTSphLHRbNF09bCppLU0qZSx0WzVdPWwqYy1NKnUsdFs2XT1mLHRbN109cyx0WzhdPWgsdH0sZS5zY2FsZT1mdW5jdGlvbih0LG4scil7dmFyIGE9clswXSxlPXJbMV07cmV0dXJuIHRbMF09YSpuWzBdLHRbMV09YSpuWzFdLHRbMl09YSpuWzJdLHRbM109ZSpuWzNdLHRbNF09ZSpuWzRdLHRbNV09ZSpuWzVdLHRbNl09bls2XSx0WzddPW5bN10sdFs4XT1uWzhdLHR9LGUuZnJvbVRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTEsdFs1XT0wLHRbNl09blswXSx0WzddPW5bMV0sdFs4XT0xLHR9LGUuZnJvbVJvdGF0aW9uPWZ1bmN0aW9uKHQsbil7dmFyIHI9TWF0aC5zaW4obiksYT1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1hLHRbMV09cix0WzJdPTAsdFszXT0tcix0WzRdPWEsdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9LGUuZnJvbVNjYWxpbmc9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09blsxXSx0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPTEsdH0sZS5mcm9tTWF0MmQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09blsxXSx0WzJdPTAsdFszXT1uWzJdLHRbNF09blszXSx0WzVdPTAsdFs2XT1uWzRdLHRbN109bls1XSx0WzhdPTEsdH0sZS5mcm9tUXVhdD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1yK3IsaT1hK2EsYz1lK2UsZj1yKm8scz1hKm8saD1hKmksTT1lKm8sbD1lKmksdj1lKmMsbT11Km8scD11KmksZD11KmM7cmV0dXJuIHRbMF09MS1oLXYsdFszXT1zLWQsdFs2XT1NK3AsdFsxXT1zK2QsdFs0XT0xLWYtdix0WzddPWwtbSx0WzJdPU0tcCx0WzVdPWwrbSx0WzhdPTEtZi1oLHR9LGUubm9ybWFsRnJvbU1hdDQ9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89bls0XSxpPW5bNV0sYz1uWzZdLGY9bls3XSxzPW5bOF0saD1uWzldLE09blsxMF0sbD1uWzExXSx2PW5bMTJdLG09blsxM10scD1uWzE0XSxkPW5bMTVdLEE9cippLWEqbyxSPXIqYy1lKm8sdz1yKmYtdSpvLHE9YSpjLWUqaSxZPWEqZi11KmksZz1lKmYtdSpjLHk9cyptLWgqdix4PXMqcC1NKnYsUD1zKmQtbCp2LEU9aCpwLU0qbSxUPWgqZC1sKm0sYj1NKmQtbCpwLEQ9QSpiLVIqVCt3KkUrcSpQLVkqeCtnKnk7cmV0dXJuIEQ/KEQ9MS9ELHRbMF09KGkqYi1jKlQrZipFKSpELHRbMV09KGMqUC1vKmItZip4KSpELHRbMl09KG8qVC1pKlArZip5KSpELHRbM109KGUqVC1hKmItdSpFKSpELHRbNF09KHIqYi1lKlArdSp4KSpELHRbNV09KGEqUC1yKlQtdSp5KSpELHRbNl09KG0qZy1wKlkrZCpxKSpELHRbN109KHAqdy12KmctZCpSKSpELHRbOF09KHYqWS1tKncrZCpBKSpELHQpOm51bGx9LGUuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJtYXQzKCIrdFswXSsiLCAiK3RbMV0rIiwgIit0WzJdKyIsICIrdFszXSsiLCAiK3RbNF0rIiwgIit0WzVdKyIsICIrdFs2XSsiLCAiK3RbN10rIiwgIit0WzhdKyIpIn0sZS5mcm9iPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codFswXSwyKStNYXRoLnBvdyh0WzFdLDIpK01hdGgucG93KHRbMl0sMikrTWF0aC5wb3codFszXSwyKStNYXRoLnBvdyh0WzRdLDIpK01hdGgucG93KHRbNV0sMikrTWF0aC5wb3codFs2XSwyKStNYXRoLnBvdyh0WzddLDIpK01hdGgucG93KHRbOF0sMikpfSx0LmV4cG9ydHM9ZX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIoMSksZT17fTtlLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhLkFSUkFZX1RZUEUoMTYpO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0sZS5jbG9uZT1mdW5jdGlvbih0KXt2YXIgbj1uZXcgYS5BUlJBWV9UWVBFKDE2KTtyZXR1cm4gblswXT10WzBdLG5bMV09dFsxXSxuWzJdPXRbMl0sblszXT10WzNdLG5bNF09dFs0XSxuWzVdPXRbNV0sbls2XT10WzZdLG5bN109dFs3XSxuWzhdPXRbOF0sbls5XT10WzldLG5bMTBdPXRbMTBdLG5bMTFdPXRbMTFdLG5bMTJdPXRbMTJdLG5bMTNdPXRbMTNdLG5bMTRdPXRbMTRdLG5bMTVdPXRbMTVdLG59LGUuY29weT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT1uWzFdLHRbMl09blsyXSx0WzNdPW5bM10sdFs0XT1uWzRdLHRbNV09bls1XSx0WzZdPW5bNl0sdFs3XT1uWzddLHRbOF09bls4XSx0WzldPW5bOV0sdFsxMF09blsxMF0sdFsxMV09blsxMV0sdFsxMl09blsxMl0sdFsxM109blsxM10sdFsxNF09blsxNF0sdFsxNV09blsxNV0sdH0sZS5pZGVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LGUudHJhbnNwb3NlPWZ1bmN0aW9uKHQsbil7aWYodD09PW4pe3ZhciByPW5bMV0sYT1uWzJdLGU9blszXSx1PW5bNl0sbz1uWzddLGk9blsxMV07dFsxXT1uWzRdLHRbMl09bls4XSx0WzNdPW5bMTJdLHRbNF09cix0WzZdPW5bOV0sdFs3XT1uWzEzXSx0WzhdPWEsdFs5XT11LHRbMTFdPW5bMTRdLHRbMTJdPWUsdFsxM109byx0WzE0XT1pfWVsc2UgdFswXT1uWzBdLHRbMV09bls0XSx0WzJdPW5bOF0sdFszXT1uWzEyXSx0WzRdPW5bMV0sdFs1XT1uWzVdLHRbNl09bls5XSx0WzddPW5bMTNdLHRbOF09blsyXSx0WzldPW5bNl0sdFsxMF09blsxMF0sdFsxMV09blsxNF0sdFsxMl09blszXSx0WzEzXT1uWzddLHRbMTRdPW5bMTFdLHRbMTVdPW5bMTVdO3JldHVybiB0fSxlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1uWzRdLGk9bls1XSxjPW5bNl0sZj1uWzddLHM9bls4XSxoPW5bOV0sTT1uWzEwXSxsPW5bMTFdLHY9blsxMl0sbT1uWzEzXSxwPW5bMTRdLGQ9blsxNV0sQT1yKmktYSpvLFI9cipjLWUqbyx3PXIqZi11Km8scT1hKmMtZSppLFk9YSpmLXUqaSxnPWUqZi11KmMseT1zKm0taCp2LHg9cypwLU0qdixQPXMqZC1sKnYsRT1oKnAtTSptLFQ9aCpkLWwqbSxiPU0qZC1sKnAsRD1BKmItUipUK3cqRStxKlAtWSp4K2cqeTtyZXR1cm4gRD8oRD0xL0QsdFswXT0oaSpiLWMqVCtmKkUpKkQsdFsxXT0oZSpULWEqYi11KkUpKkQsdFsyXT0obSpnLXAqWStkKnEpKkQsdFszXT0oTSpZLWgqZy1sKnEpKkQsdFs0XT0oYypQLW8qYi1mKngpKkQsdFs1XT0ocipiLWUqUCt1KngpKkQsdFs2XT0ocCp3LXYqZy1kKlIpKkQsdFs3XT0ocypnLU0qdytsKlIpKkQsdFs4XT0obypULWkqUCtmKnkpKkQsdFs5XT0oYSpQLXIqVC11KnkpKkQsdFsxMF09KHYqWS1tKncrZCpBKSpELHRbMTFdPShoKnctcypZLWwqQSkqRCx0WzEyXT0oaSp4LW8qRS1jKnkpKkQsdFsxM109KHIqRS1hKngrZSp5KSpELHRbMTRdPShtKlItdipxLXAqQSkqRCx0WzE1XT0ocypxLWgqUitNKkEpKkQsdCk6bnVsbH0sZS5hZGpvaW50PWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1uWzJdLHU9blszXSxvPW5bNF0saT1uWzVdLGM9bls2XSxmPW5bN10scz1uWzhdLGg9bls5XSxNPW5bMTBdLGw9blsxMV0sdj1uWzEyXSxtPW5bMTNdLHA9blsxNF0sZD1uWzE1XTtyZXR1cm4gdFswXT1pKihNKmQtbCpwKS1oKihjKmQtZipwKSttKihjKmwtZipNKSx0WzFdPS0oYSooTSpkLWwqcCktaCooZSpkLXUqcCkrbSooZSpsLXUqTSkpLHRbMl09YSooYypkLWYqcCktaSooZSpkLXUqcCkrbSooZSpmLXUqYyksdFszXT0tKGEqKGMqbC1mKk0pLWkqKGUqbC11Kk0pK2gqKGUqZi11KmMpKSx0WzRdPS0obyooTSpkLWwqcCktcyooYypkLWYqcCkrdiooYypsLWYqTSkpLHRbNV09ciooTSpkLWwqcCktcyooZSpkLXUqcCkrdiooZSpsLXUqTSksdFs2XT0tKHIqKGMqZC1mKnApLW8qKGUqZC11KnApK3YqKGUqZi11KmMpKSx0WzddPXIqKGMqbC1mKk0pLW8qKGUqbC11Kk0pK3MqKGUqZi11KmMpLHRbOF09byooaCpkLWwqbSktcyooaSpkLWYqbSkrdiooaSpsLWYqaCksdFs5XT0tKHIqKGgqZC1sKm0pLXMqKGEqZC11Km0pK3YqKGEqbC11KmgpKSx0WzEwXT1yKihpKmQtZiptKS1vKihhKmQtdSptKSt2KihhKmYtdSppKSx0WzExXT0tKHIqKGkqbC1mKmgpLW8qKGEqbC11KmgpK3MqKGEqZi11KmkpKSx0WzEyXT0tKG8qKGgqcC1NKm0pLXMqKGkqcC1jKm0pK3YqKGkqTS1jKmgpKSx0WzEzXT1yKihoKnAtTSptKS1zKihhKnAtZSptKSt2KihhKk0tZSpoKSx0WzE0XT0tKHIqKGkqcC1jKm0pLW8qKGEqcC1lKm0pK3YqKGEqYy1lKmkpKSx0WzE1XT1yKihpKk0tYypoKS1vKihhKk0tZSpoKStzKihhKmMtZSppKSx0fSxlLmRldGVybWluYW50PWZ1bmN0aW9uKHQpe3ZhciBuPXRbMF0scj10WzFdLGE9dFsyXSxlPXRbM10sdT10WzRdLG89dFs1XSxpPXRbNl0sYz10WzddLGY9dFs4XSxzPXRbOV0saD10WzEwXSxNPXRbMTFdLGw9dFsxMl0sdj10WzEzXSxtPXRbMTRdLHA9dFsxNV0sZD1uKm8tcip1LEE9bippLWEqdSxSPW4qYy1lKnUsdz1yKmktYSpvLHE9cipjLWUqbyxZPWEqYy1lKmksZz1mKnYtcypsLHk9ZiptLWgqbCx4PWYqcC1NKmwsUD1zKm0taCp2LEU9cypwLU0qdixUPWgqcC1NKm07cmV0dXJuIGQqVC1BKkUrUipQK3cqeC1xKnkrWSpnfSxlLm11bHRpcGx5PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9bls0XSxjPW5bNV0sZj1uWzZdLHM9bls3XSxoPW5bOF0sTT1uWzldLGw9blsxMF0sdj1uWzExXSxtPW5bMTJdLHA9blsxM10sZD1uWzE0XSxBPW5bMTVdLFI9clswXSx3PXJbMV0scT1yWzJdLFk9clszXTtyZXR1cm4gdFswXT1SKmErdyppK3EqaCtZKm0sdFsxXT1SKmUrdypjK3EqTStZKnAsdFsyXT1SKnUrdypmK3EqbCtZKmQsdFszXT1SKm8rdypzK3EqditZKkEsUj1yWzRdLHc9cls1XSxxPXJbNl0sWT1yWzddLHRbNF09UiphK3cqaStxKmgrWSptLHRbNV09UiplK3cqYytxKk0rWSpwLHRbNl09Uip1K3cqZitxKmwrWSpkLHRbN109UipvK3cqcytxKnYrWSpBLFI9cls4XSx3PXJbOV0scT1yWzEwXSxZPXJbMTFdLHRbOF09UiphK3cqaStxKmgrWSptLHRbOV09UiplK3cqYytxKk0rWSpwLHRbMTBdPVIqdSt3KmYrcSpsK1kqZCx0WzExXT1SKm8rdypzK3EqditZKkEsUj1yWzEyXSx3PXJbMTNdLHE9clsxNF0sWT1yWzE1XSx0WzEyXT1SKmErdyppK3EqaCtZKm0sdFsxM109UiplK3cqYytxKk0rWSpwLHRbMTRdPVIqdSt3KmYrcSpsK1kqZCx0WzE1XT1SKm8rdypzK3EqditZKkEsdH0sZS5tdWw9ZS5tdWx0aXBseSxlLnRyYW5zbGF0ZT1mdW5jdGlvbih0LG4scil7dmFyIGEsZSx1LG8saSxjLGYscyxoLE0sbCx2LG09clswXSxwPXJbMV0sZD1yWzJdO3JldHVybiBuPT09dD8odFsxMl09blswXSptK25bNF0qcCtuWzhdKmQrblsxMl0sdFsxM109blsxXSptK25bNV0qcCtuWzldKmQrblsxM10sdFsxNF09blsyXSptK25bNl0qcCtuWzEwXSpkK25bMTRdLHRbMTVdPW5bM10qbStuWzddKnArblsxMV0qZCtuWzE1XSk6KGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPW5bNF0sYz1uWzVdLGY9bls2XSxzPW5bN10saD1uWzhdLE09bls5XSxsPW5bMTBdLHY9blsxMV0sdFswXT1hLHRbMV09ZSx0WzJdPXUsdFszXT1vLHRbNF09aSx0WzVdPWMsdFs2XT1mLHRbN109cyx0WzhdPWgsdFs5XT1NLHRbMTBdPWwsdFsxMV09dix0WzEyXT1hKm0raSpwK2gqZCtuWzEyXSx0WzEzXT1lKm0rYypwK00qZCtuWzEzXSx0WzE0XT11Km0rZipwK2wqZCtuWzE0XSx0WzE1XT1vKm0rcypwK3YqZCtuWzE1XSksdH0sZS5zY2FsZT1mdW5jdGlvbih0LG4scil7dmFyIGE9clswXSxlPXJbMV0sdT1yWzJdO3JldHVybiB0WzBdPW5bMF0qYSx0WzFdPW5bMV0qYSx0WzJdPW5bMl0qYSx0WzNdPW5bM10qYSx0WzRdPW5bNF0qZSx0WzVdPW5bNV0qZSx0WzZdPW5bNl0qZSx0WzddPW5bN10qZSx0WzhdPW5bOF0qdSx0WzldPW5bOV0qdSx0WzEwXT1uWzEwXSp1LHRbMTFdPW5bMTFdKnUsdFsxMl09blsxMl0sdFsxM109blsxM10sdFsxNF09blsxNF0sdFsxNV09blsxNV0sdH0sZS5yb3RhdGU9ZnVuY3Rpb24odCxuLHIsZSl7dmFyIHUsbyxpLGMsZixzLGgsTSxsLHYsbSxwLGQsQSxSLHcscSxZLGcseSx4LFAsRSxULGI9ZVswXSxEPWVbMV0sTD1lWzJdLF89TWF0aC5zcXJ0KGIqYitEKkQrTCpMKTtyZXR1cm4gTWF0aC5hYnMoXyk8YS5FUFNJTE9OP251bGw6KF89MS9fLGIqPV8sRCo9XyxMKj1fLHU9TWF0aC5zaW4ociksbz1NYXRoLmNvcyhyKSxpPTEtbyxjPW5bMF0sZj1uWzFdLHM9blsyXSxoPW5bM10sTT1uWzRdLGw9bls1XSx2PW5bNl0sbT1uWzddLHA9bls4XSxkPW5bOV0sQT1uWzEwXSxSPW5bMTFdLHc9YipiKmkrbyxxPUQqYippK0wqdSxZPUwqYippLUQqdSxnPWIqRCppLUwqdSx5PUQqRCppK28seD1MKkQqaStiKnUsUD1iKkwqaStEKnUsRT1EKkwqaS1iKnUsVD1MKkwqaStvLHRbMF09Yyp3K00qcStwKlksdFsxXT1mKncrbCpxK2QqWSx0WzJdPXMqdyt2KnErQSpZLHRbM109aCp3K20qcStSKlksdFs0XT1jKmcrTSp5K3AqeCx0WzVdPWYqZytsKnkrZCp4LHRbNl09cypnK3YqeStBKngsdFs3XT1oKmcrbSp5K1IqeCx0WzhdPWMqUCtNKkUrcCpULHRbOV09ZipQK2wqRStkKlQsdFsxMF09cypQK3YqRStBKlQsdFsxMV09aCpQK20qRStSKlQsbiE9PXQmJih0WzEyXT1uWzEyXSx0WzEzXT1uWzEzXSx0WzE0XT1uWzE0XSx0WzE1XT1uWzE1XSksdCl9LGUucm90YXRlWD1mdW5jdGlvbih0LG4scil7dmFyIGE9TWF0aC5zaW4ociksZT1NYXRoLmNvcyhyKSx1PW5bNF0sbz1uWzVdLGk9bls2XSxjPW5bN10sZj1uWzhdLHM9bls5XSxoPW5bMTBdLE09blsxMV07cmV0dXJuIG4hPT10JiYodFswXT1uWzBdLHRbMV09blsxXSx0WzJdPW5bMl0sdFszXT1uWzNdLHRbMTJdPW5bMTJdLHRbMTNdPW5bMTNdLHRbMTRdPW5bMTRdLHRbMTVdPW5bMTVdKSx0WzRdPXUqZStmKmEsdFs1XT1vKmUrcyphLHRbNl09aSplK2gqYSx0WzddPWMqZStNKmEsdFs4XT1mKmUtdSphLHRbOV09cyplLW8qYSx0WzEwXT1oKmUtaSphLHRbMTFdPU0qZS1jKmEsdH0sZS5yb3RhdGVZPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1NYXRoLnNpbihyKSxlPU1hdGguY29zKHIpLHU9blswXSxvPW5bMV0saT1uWzJdLGM9blszXSxmPW5bOF0scz1uWzldLGg9blsxMF0sTT1uWzExXTtyZXR1cm4gbiE9PXQmJih0WzRdPW5bNF0sdFs1XT1uWzVdLHRbNl09bls2XSx0WzddPW5bN10sdFsxMl09blsxMl0sdFsxM109blsxM10sdFsxNF09blsxNF0sdFsxNV09blsxNV0pLHRbMF09dSplLWYqYSx0WzFdPW8qZS1zKmEsdFsyXT1pKmUtaCphLHRbM109YyplLU0qYSx0WzhdPXUqYStmKmUsdFs5XT1vKmErcyplLHRbMTBdPWkqYStoKmUsdFsxMV09YyphK00qZSx0fSxlLnJvdGF0ZVo9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPU1hdGguc2luKHIpLGU9TWF0aC5jb3MociksdT1uWzBdLG89blsxXSxpPW5bMl0sYz1uWzNdLGY9bls0XSxzPW5bNV0saD1uWzZdLE09bls3XTtyZXR1cm4gbiE9PXQmJih0WzhdPW5bOF0sdFs5XT1uWzldLHRbMTBdPW5bMTBdLHRbMTFdPW5bMTFdLHRbMTJdPW5bMTJdLHRbMTNdPW5bMTNdLHRbMTRdPW5bMTRdLHRbMTVdPW5bMTVdKSx0WzBdPXUqZStmKmEsdFsxXT1vKmUrcyphLHRbMl09aSplK2gqYSx0WzNdPWMqZStNKmEsdFs0XT1mKmUtdSphLHRbNV09cyplLW8qYSx0WzZdPWgqZS1pKmEsdFs3XT1NKmUtYyphLHR9LGUuZnJvbVRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0xLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0xLHRbMTFdPTAsdFsxMl09blswXSx0WzEzXT1uWzFdLHRbMTRdPW5bMl0sdFsxNV09MSx0fSxlLmZyb21TY2FsaW5nPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09blswXSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1uWzFdLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT1uWzJdLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fSxlLmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LG4scil7dmFyIGUsdSxvLGk9clswXSxjPXJbMV0sZj1yWzJdLHM9TWF0aC5zcXJ0KGkqaStjKmMrZipmKTtyZXR1cm4gTWF0aC5hYnMocyk8YS5FUFNJTE9OP251bGw6KHM9MS9zLGkqPXMsYyo9cyxmKj1zLGU9TWF0aC5zaW4obiksdT1NYXRoLmNvcyhuKSxvPTEtdSx0WzBdPWkqaSpvK3UsdFsxXT1jKmkqbytmKmUsdFsyXT1mKmkqby1jKmUsdFszXT0wLHRbNF09aSpjKm8tZiplLHRbNV09YypjKm8rdSx0WzZdPWYqYypvK2kqZSx0WzddPTAsdFs4XT1pKmYqbytjKmUsdFs5XT1jKmYqby1pKmUsdFsxMF09ZipmKm8rdSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdCl9LGUuZnJvbVhSb3RhdGlvbj1mdW5jdGlvbih0LG4pe3ZhciByPU1hdGguc2luKG4pLGE9TWF0aC5jb3Mobik7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1hLHRbNl09cix0WzddPTAsdFs4XT0wLHRbOV09LXIsdFsxMF09YSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0sZS5mcm9tWVJvdGF0aW9uPWZ1bmN0aW9uKHQsbil7dmFyIHI9TWF0aC5zaW4obiksYT1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1hLHRbMV09MCx0WzJdPS1yLHRbM109MCx0WzRdPTAsdFs1XT0xLHRbNl09MCx0WzddPTAsdFs4XT1yLHRbOV09MCx0WzEwXT1hLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fSxlLmZyb21aUm90YXRpb249ZnVuY3Rpb24odCxuKXt2YXIgcj1NYXRoLnNpbihuKSxhPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWEsdFsxXT1yLHRbMl09MCx0WzNdPTAsdFs0XT0tcix0WzVdPWEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LGUuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb249ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1hK2EsYz1lK2UsZj11K3Uscz1hKmksaD1hKmMsTT1hKmYsbD1lKmMsdj1lKmYsbT11KmYscD1vKmksZD1vKmMsQT1vKmY7cmV0dXJuIHRbMF09MS0obCttKSx0WzFdPWgrQSx0WzJdPU0tZCx0WzNdPTAsdFs0XT1oLUEsdFs1XT0xLShzK20pLHRbNl09ditwLHRbN109MCx0WzhdPU0rZCx0WzldPXYtcCx0WzEwXT0xLShzK2wpLHRbMTFdPTAsdFsxMl09clswXSx0WzEzXT1yWzFdLHRbMTRdPXJbMl0sdFsxNV09MSx0fSxlLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uU2NhbGU9ZnVuY3Rpb24odCxuLHIsYSl7dmFyIGU9blswXSx1PW5bMV0sbz1uWzJdLGk9blszXSxjPWUrZSxmPXUrdSxzPW8rbyxoPWUqYyxNPWUqZixsPWUqcyx2PXUqZixtPXUqcyxwPW8qcyxkPWkqYyxBPWkqZixSPWkqcyx3PWFbMF0scT1hWzFdLFk9YVsyXTtyZXR1cm4gdFswXT0oMS0oditwKSkqdyx0WzFdPShNK1IpKncsdFsyXT0obC1BKSp3LHRbM109MCx0WzRdPShNLVIpKnEsdFs1XT0oMS0oaCtwKSkqcSx0WzZdPShtK2QpKnEsdFs3XT0wLHRbOF09KGwrQSkqWSx0WzldPShtLWQpKlksdFsxMF09KDEtKGgrdikpKlksdFsxMV09MCx0WzEyXT1yWzBdLHRbMTNdPXJbMV0sdFsxNF09clsyXSx0WzE1XT0xLHR9LGUuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb25TY2FsZU9yaWdpbj1mdW5jdGlvbih0LG4scixhLGUpe3ZhciB1PW5bMF0sbz1uWzFdLGk9blsyXSxjPW5bM10sZj11K3Uscz1vK28saD1pK2ksTT11KmYsbD11KnMsdj11KmgsbT1vKnMscD1vKmgsZD1pKmgsQT1jKmYsUj1jKnMsdz1jKmgscT1hWzBdLFk9YVsxXSxnPWFbMl0seT1lWzBdLHg9ZVsxXSxQPWVbMl07cmV0dXJuIHRbMF09KDEtKG0rZCkpKnEsdFsxXT0obCt3KSpxLHRbMl09KHYtUikqcSx0WzNdPTAsdFs0XT0obC13KSpZLHRbNV09KDEtKE0rZCkpKlksdFs2XT0ocCtBKSpZLHRbN109MCx0WzhdPSh2K1IpKmcsdFs5XT0ocC1BKSpnLHRbMTBdPSgxLShNK20pKSpnLHRbMTFdPTAsdFsxMl09clswXSt5LSh0WzBdKnkrdFs0XSp4K3RbOF0qUCksdFsxM109clsxXSt4LSh0WzFdKnkrdFs1XSp4K3RbOV0qUCksdFsxNF09clsyXStQLSh0WzJdKnkrdFs2XSp4K3RbMTBdKlApLHRbMTVdPTEsdH0sZS5mcm9tUXVhdD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1yK3IsaT1hK2EsYz1lK2UsZj1yKm8scz1hKm8saD1hKmksTT1lKm8sbD1lKmksdj1lKmMsbT11Km8scD11KmksZD11KmM7cmV0dXJuIHRbMF09MS1oLXYsdFsxXT1zK2QsdFsyXT1NLXAsdFszXT0wLHRbNF09cy1kLHRbNV09MS1mLXYsdFs2XT1sK20sdFs3XT0wLHRbOF09TStwLHRbOV09bC1tLHRbMTBdPTEtZi1oLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fSxlLmZydXN0dW09ZnVuY3Rpb24odCxuLHIsYSxlLHUsbyl7dmFyIGk9MS8oci1uKSxjPTEvKGUtYSksZj0xLyh1LW8pO3JldHVybiB0WzBdPTIqdSppLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTIqdSpjLHRbNl09MCx0WzddPTAsdFs4XT0ocituKSppLHRbOV09KGUrYSkqYyx0WzEwXT0obyt1KSpmLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT1vKnUqMipmLHRbMTVdPTAsdH0sZS5wZXJzcGVjdGl2ZT1mdW5jdGlvbih0LG4scixhLGUpe3ZhciB1PTEvTWF0aC50YW4obi8yKSxvPTEvKGEtZSk7cmV0dXJuIHRbMF09dS9yLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPXUsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPShlK2EpKm8sdFsxMV09LTEsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTIqZSphKm8sdFsxNV09MCx0fSxlLnBlcnNwZWN0aXZlRnJvbUZpZWxkT2ZWaWV3PWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBlPU1hdGgudGFuKG4udXBEZWdyZWVzKk1hdGguUEkvMTgwKSx1PU1hdGgudGFuKG4uZG93bkRlZ3JlZXMqTWF0aC5QSS8xODApLG89TWF0aC50YW4obi5sZWZ0RGVncmVlcypNYXRoLlBJLzE4MCksaT1NYXRoLnRhbihuLnJpZ2h0RGVncmVlcypNYXRoLlBJLzE4MCksYz0yLyhvK2kpLGY9Mi8oZSt1KTtyZXR1cm4gdFswXT1jLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWYsdFs2XT0wLHRbN109MCx0WzhdPS0oKG8taSkqYyouNSksdFs5XT0oZS11KSpmKi41LHRbMTBdPWEvKHItYSksdFsxMV09LTEsdFsxMl09MCx0WzEzXT0wLHRbMTRdPWEqci8oci1hKSx0WzE1XT0wLHR9LGUub3J0aG89ZnVuY3Rpb24odCxuLHIsYSxlLHUsbyl7dmFyIGk9MS8obi1yKSxjPTEvKGEtZSksZj0xLyh1LW8pO3JldHVybiB0WzBdPS0yKmksdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09LTIqYyx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MipmLHRbMTFdPTAsdFsxMl09KG4rcikqaSx0WzEzXT0oZSthKSpjLHRbMTRdPShvK3UpKmYsdFsxNV09MSx0fSxlLmxvb2tBdD1mdW5jdGlvbih0LG4scix1KXt2YXIgbyxpLGMsZixzLGgsTSxsLHYsbSxwPW5bMF0sZD1uWzFdLEE9blsyXSxSPXVbMF0sdz11WzFdLHE9dVsyXSxZPXJbMF0sZz1yWzFdLHk9clsyXTtyZXR1cm4gTWF0aC5hYnMocC1ZKTxhLkVQU0lMT04mJk1hdGguYWJzKGQtZyk8YS5FUFNJTE9OJiZNYXRoLmFicyhBLXkpPGEuRVBTSUxPTj9lLmlkZW50aXR5KHQpOihNPXAtWSxsPWQtZyx2PUEteSxtPTEvTWF0aC5zcXJ0KE0qTStsKmwrdip2KSxNKj1tLGwqPW0sdio9bSxvPXcqdi1xKmwsaT1xKk0tUip2LGM9UipsLXcqTSxtPU1hdGguc3FydChvKm8raSppK2MqYyksbT8obT0xL20sbyo9bSxpKj1tLGMqPW0pOihvPTAsaT0wLGM9MCksZj1sKmMtdippLHM9dipvLU0qYyxoPU0qaS1sKm8sbT1NYXRoLnNxcnQoZipmK3MqcytoKmgpLG0/KG09MS9tLGYqPW0scyo9bSxoKj1tKTooZj0wLHM9MCxoPTApLHRbMF09byx0WzFdPWYsdFsyXT1NLHRbM109MCx0WzRdPWksdFs1XT1zLHRbNl09bCx0WzddPTAsdFs4XT1jLHRbOV09aCx0WzEwXT12LHRbMTFdPTAsdFsxMl09LShvKnAraSpkK2MqQSksdFsxM109LShmKnArcypkK2gqQSksdFsxNF09LShNKnArbCpkK3YqQSksdFsxNV09MSx0KX0sZS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuIm1hdDQoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIsICIrdFs0XSsiLCAiK3RbNV0rIiwgIit0WzZdKyIsICIrdFs3XSsiLCAiK3RbOF0rIiwgIit0WzldKyIsICIrdFsxMF0rIiwgIit0WzExXSsiLCAiK3RbMTJdKyIsICIrdFsxM10rIiwgIit0WzE0XSsiLCAiK3RbMTVdKyIpIn0sZS5mcm9iPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codFswXSwyKStNYXRoLnBvdyh0WzFdLDIpK01hdGgucG93KHRbMl0sMikrTWF0aC5wb3codFszXSwyKStNYXRoLnBvdyh0WzRdLDIpK01hdGgucG93KHRbNV0sMikrTWF0aC5wb3codFs2XSwyKStNYXRoLnBvdyh0WzddLDIpK01hdGgucG93KHRbOF0sMikrTWF0aC5wb3codFs5XSwyKStNYXRoLnBvdyh0WzEwXSwyKStNYXRoLnBvdyh0WzExXSwyKStNYXRoLnBvdyh0WzEyXSwyKStNYXRoLnBvdyh0WzEzXSwyKStNYXRoLnBvdyh0WzE0XSwyKStNYXRoLnBvdyh0WzE1XSwyKSl9LHQuZXhwb3J0cz1lfSxmdW5jdGlvbih0LG4scil7dmFyIGE9cigxKSxlPXIoNCksdT1yKDcpLG89cig4KSxpPXt9O2kuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGEuQVJSQVlfVFlQRSg0KTtyZXR1cm4gdFswXT0wLHRbMV09MCx0WzJdPTAsdFszXT0xLHR9LGkucm90YXRpb25Ubz1mdW5jdGlvbigpe3ZhciB0PXUuY3JlYXRlKCksbj11LmZyb21WYWx1ZXMoMSwwLDApLHI9dS5mcm9tVmFsdWVzKDAsMSwwKTtyZXR1cm4gZnVuY3Rpb24oYSxlLG8pe3ZhciBjPXUuZG90KGUsbyk7cmV0dXJuLS45OTk5OTk+Yz8odS5jcm9zcyh0LG4sZSksdS5sZW5ndGgodCk8MWUtNiYmdS5jcm9zcyh0LHIsZSksdS5ub3JtYWxpemUodCx0KSxpLnNldEF4aXNBbmdsZShhLHQsTWF0aC5QSSksYSk6Yz4uOTk5OTk5PyhhWzBdPTAsYVsxXT0wLGFbMl09MCxhWzNdPTEsYSk6KHUuY3Jvc3ModCxlLG8pLGFbMF09dFswXSxhWzFdPXRbMV0sYVsyXT10WzJdLGFbM109MStjLGkubm9ybWFsaXplKGEsYSkpfX0oKSxpLnNldEF4ZXM9ZnVuY3Rpb24oKXt2YXIgdD1lLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbihuLHIsYSxlKXtyZXR1cm4gdFswXT1hWzBdLHRbM109YVsxXSx0WzZdPWFbMl0sdFsxXT1lWzBdLHRbNF09ZVsxXSx0WzddPWVbMl0sdFsyXT0tclswXSx0WzVdPS1yWzFdLHRbOF09LXJbMl0saS5ub3JtYWxpemUobixpLmZyb21NYXQzKG4sdCkpfX0oKSxpLmNsb25lPW8uY2xvbmUsaS5mcm9tVmFsdWVzPW8uZnJvbVZhbHVlcyxpLmNvcHk9by5jb3B5LGkuc2V0PW8uc2V0LGkuaWRlbnRpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09MCx0WzFdPTAsdFsyXT0wLHRbM109MSx0fSxpLnNldEF4aXNBbmdsZT1mdW5jdGlvbih0LG4scil7cj0uNSpyO3ZhciBhPU1hdGguc2luKHIpO3JldHVybiB0WzBdPWEqblswXSx0WzFdPWEqblsxXSx0WzJdPWEqblsyXSx0WzNdPU1hdGguY29zKHIpLHR9LGkuYWRkPW8uYWRkLGkubXVsdGlwbHk9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1yWzBdLGM9clsxXSxmPXJbMl0scz1yWzNdO3JldHVybiB0WzBdPWEqcytvKmkrZSpmLXUqYyx0WzFdPWUqcytvKmMrdSppLWEqZix0WzJdPXUqcytvKmYrYSpjLWUqaSx0WzNdPW8qcy1hKmktZSpjLXUqZix0fSxpLm11bD1pLm11bHRpcGx5LGkuc2NhbGU9by5zY2FsZSxpLnJvdGF0ZVg9ZnVuY3Rpb24odCxuLHIpe3IqPS41O3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPW5bM10saT1NYXRoLnNpbihyKSxjPU1hdGguY29zKHIpO3JldHVybiB0WzBdPWEqYytvKmksdFsxXT1lKmMrdSppLHRbMl09dSpjLWUqaSx0WzNdPW8qYy1hKmksdH0saS5yb3RhdGVZPWZ1bmN0aW9uKHQsbixyKXtyKj0uNTt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdLGk9TWF0aC5zaW4ociksYz1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1hKmMtdSppLHRbMV09ZSpjK28qaSx0WzJdPXUqYythKmksdFszXT1vKmMtZSppLHR9LGkucm90YXRlWj1mdW5jdGlvbih0LG4scil7cio9LjU7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89blszXSxpPU1hdGguc2luKHIpLGM9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09YSpjK2UqaSx0WzFdPWUqYy1hKmksdFsyXT11KmMrbyppLHRbM109bypjLXUqaSx0fSxpLmNhbGN1bGF0ZVc9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl07cmV0dXJuIHRbMF09cix0WzFdPWEsdFsyXT1lLHRbM109TWF0aC5zcXJ0KE1hdGguYWJzKDEtcipyLWEqYS1lKmUpKSx0fSxpLmRvdD1vLmRvdCxpLmxlcnA9by5sZXJwLGkuc2xlcnA9ZnVuY3Rpb24odCxuLHIsYSl7dmFyIGUsdSxvLGksYyxmPW5bMF0scz1uWzFdLGg9blsyXSxNPW5bM10sbD1yWzBdLHY9clsxXSxtPXJbMl0scD1yWzNdO3JldHVybiB1PWYqbCtzKnYraCptK00qcCwwPnUmJih1PS11LGw9LWwsdj0tdixtPS1tLHA9LXApLDEtdT4xZS02PyhlPU1hdGguYWNvcyh1KSxvPU1hdGguc2luKGUpLGk9TWF0aC5zaW4oKDEtYSkqZSkvbyxjPU1hdGguc2luKGEqZSkvbyk6KGk9MS1hLGM9YSksdFswXT1pKmYrYypsLHRbMV09aSpzK2Mqdix0WzJdPWkqaCtjKm0sdFszXT1pKk0rYypwLHR9LGkuc3FsZXJwPWZ1bmN0aW9uKCl7dmFyIHQ9aS5jcmVhdGUoKSxuPWkuY3JlYXRlKCk7cmV0dXJuIGZ1bmN0aW9uKHIsYSxlLHUsbyxjKXtyZXR1cm4gaS5zbGVycCh0LGEsbyxjKSxpLnNsZXJwKG4sZSx1LGMpLGkuc2xlcnAocix0LG4sMipjKigxLWMpKSxyfX0oKSxpLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciByPW5bMF0sYT1uWzFdLGU9blsyXSx1PW5bM10sbz1yKnIrYSphK2UqZSt1KnUsaT1vPzEvbzowO3JldHVybiB0WzBdPS1yKmksdFsxXT0tYSppLHRbMl09LWUqaSx0WzNdPXUqaSx0fSxpLmNvbmp1Z2F0ZT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPS1uWzBdLHRbMV09LW5bMV0sdFsyXT0tblsyXSx0WzNdPW5bM10sdH0saS5sZW5ndGg9by5sZW5ndGgsaS5sZW49aS5sZW5ndGgsaS5zcXVhcmVkTGVuZ3RoPW8uc3F1YXJlZExlbmd0aCxpLnNxckxlbj1pLnNxdWFyZWRMZW5ndGgsaS5ub3JtYWxpemU9by5ub3JtYWxpemUsaS5mcm9tTWF0Mz1mdW5jdGlvbih0LG4pe3ZhciByLGE9blswXStuWzRdK25bOF07aWYoYT4wKXI9TWF0aC5zcXJ0KGErMSksdFszXT0uNSpyLHI9LjUvcix0WzBdPShuWzVdLW5bN10pKnIsdFsxXT0obls2XS1uWzJdKSpyLHRbMl09KG5bMV0tblszXSkqcjtlbHNle3ZhciBlPTA7bls0XT5uWzBdJiYoZT0xKSxuWzhdPm5bMyplK2VdJiYoZT0yKTt2YXIgdT0oZSsxKSUzLG89KGUrMiklMztyPU1hdGguc3FydChuWzMqZStlXS1uWzMqdSt1XS1uWzMqbytvXSsxKSx0W2VdPS41KnIscj0uNS9yLHRbM109KG5bMyp1K29dLW5bMypvK3VdKSpyLHRbdV09KG5bMyp1K2VdK25bMyplK3VdKSpyLHRbb109KG5bMypvK2VdK25bMyplK29dKSpyfXJldHVybiB0fSxpLnN0cj1mdW5jdGlvbih0KXtyZXR1cm4icXVhdCgiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIikifSx0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIoMSksZT17fTtlLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhLkFSUkFZX1RZUEUoMyk7cmV0dXJuIHRbMF09MCx0WzFdPTAsdFsyXT0wLHR9LGUuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIG49bmV3IGEuQVJSQVlfVFlQRSgzKTtyZXR1cm4gblswXT10WzBdLG5bMV09dFsxXSxuWzJdPXRbMl0sbn0sZS5mcm9tVmFsdWVzPWZ1bmN0aW9uKHQsbixyKXt2YXIgZT1uZXcgYS5BUlJBWV9UWVBFKDMpO3JldHVybiBlWzBdPXQsZVsxXT1uLGVbMl09cixlfSxlLmNvcHk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT1uWzBdLHRbMV09blsxXSx0WzJdPW5bMl0sdH0sZS5zZXQ9ZnVuY3Rpb24odCxuLHIsYSl7cmV0dXJuIHRbMF09bix0WzFdPXIsdFsyXT1hLHR9LGUuYWRkPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdK3JbMF0sdFsxXT1uWzFdK3JbMV0sdFsyXT1uWzJdK3JbMl0sdH0sZS5zdWJ0cmFjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXS1yWzBdLHRbMV09blsxXS1yWzFdLHRbMl09blsyXS1yWzJdLHR9LGUuc3ViPWUuc3VidHJhY3QsZS5tdWx0aXBseT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXSpyWzBdLHRbMV09blsxXSpyWzFdLHRbMl09blsyXSpyWzJdLHR9LGUubXVsPWUubXVsdGlwbHksZS5kaXZpZGU9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0vclswXSx0WzFdPW5bMV0vclsxXSx0WzJdPW5bMl0vclsyXSx0fSxlLmRpdj1lLmRpdmlkZSxlLm1pbj1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09TWF0aC5taW4oblswXSxyWzBdKSx0WzFdPU1hdGgubWluKG5bMV0sclsxXSksdFsyXT1NYXRoLm1pbihuWzJdLHJbMl0pLHR9LGUubWF4PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1NYXRoLm1heChuWzBdLHJbMF0pLHRbMV09TWF0aC5tYXgoblsxXSxyWzFdKSx0WzJdPU1hdGgubWF4KG5bMl0sclsyXSksdH0sZS5zY2FsZT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXSpyLHRbMV09blsxXSpyLHRbMl09blsyXSpyLHR9LGUuc2NhbGVBbmRBZGQ9ZnVuY3Rpb24odCxuLHIsYSl7cmV0dXJuIHRbMF09blswXStyWzBdKmEsdFsxXT1uWzFdK3JbMV0qYSx0WzJdPW5bMl0rclsyXSphLHR9LGUuZGlzdGFuY2U9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLXRbMF0sYT1uWzFdLXRbMV0sZT1uWzJdLXRbMl07cmV0dXJuIE1hdGguc3FydChyKnIrYSphK2UqZSl9LGUuZGlzdD1lLmRpc3RhbmNlLGUuc3F1YXJlZERpc3RhbmNlPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXS10WzBdLGE9blsxXS10WzFdLGU9blsyXS10WzJdO3JldHVybiByKnIrYSphK2UqZX0sZS5zcXJEaXN0PWUuc3F1YXJlZERpc3RhbmNlLGUubGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBuPXRbMF0scj10WzFdLGE9dFsyXTtyZXR1cm4gTWF0aC5zcXJ0KG4qbityKnIrYSphKX0sZS5sZW49ZS5sZW5ndGgsZS5zcXVhcmVkTGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBuPXRbMF0scj10WzFdLGE9dFsyXTtyZXR1cm4gbipuK3IqcithKmF9LGUuc3FyTGVuPWUuc3F1YXJlZExlbmd0aCxlLm5lZ2F0ZT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPS1uWzBdLHRbMV09LW5bMV0sdFsyXT0tblsyXSx0fSxlLmludmVyc2U9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT0xL25bMF0sdFsxXT0xL25bMV0sdFsyXT0xL25bMl0sdH0sZS5ub3JtYWxpemU9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1yKnIrYSphK2UqZTtyZXR1cm4gdT4wJiYodT0xL01hdGguc3FydCh1KSx0WzBdPW5bMF0qdSx0WzFdPW5bMV0qdSx0WzJdPW5bMl0qdSksdH0sZS5kb3Q9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXSpuWzBdK3RbMV0qblsxXSt0WzJdKm5bMl19LGUuY3Jvc3M9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPXJbMF0saT1yWzFdLGM9clsyXTtyZXR1cm4gdFswXT1lKmMtdSppLHRbMV09dSpvLWEqYyx0WzJdPWEqaS1lKm8sdH0sZS5sZXJwPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBlPW5bMF0sdT1uWzFdLG89blsyXTtyZXR1cm4gdFswXT1lK2EqKHJbMF0tZSksdFsxXT11K2EqKHJbMV0tdSksdFsyXT1vK2EqKHJbMl0tbyksdH0sZS5oZXJtaXRlPWZ1bmN0aW9uKHQsbixyLGEsZSx1KXt2YXIgbz11KnUsaT1vKigyKnUtMykrMSxjPW8qKHUtMikrdSxmPW8qKHUtMSkscz1vKigzLTIqdSk7cmV0dXJuIHRbMF09blswXSppK3JbMF0qYythWzBdKmYrZVswXSpzLHRbMV09blsxXSppK3JbMV0qYythWzFdKmYrZVsxXSpzLHRbMl09blsyXSppK3JbMl0qYythWzJdKmYrZVsyXSpzLHR9LGUuYmV6aWVyPWZ1bmN0aW9uKHQsbixyLGEsZSx1KXt2YXIgbz0xLXUsaT1vKm8sYz11KnUsZj1pKm8scz0zKnUqaSxoPTMqYypvLE09Yyp1O3JldHVybiB0WzBdPW5bMF0qZityWzBdKnMrYVswXSpoK2VbMF0qTSx0WzFdPW5bMV0qZityWzFdKnMrYVsxXSpoK2VbMV0qTSx0WzJdPW5bMl0qZityWzJdKnMrYVsyXSpoK2VbMl0qTSx0fSxlLnJhbmRvbT1mdW5jdGlvbih0LG4pe249bnx8MTt2YXIgcj0yKmEuUkFORE9NKCkqTWF0aC5QSSxlPTIqYS5SQU5ET00oKS0xLHU9TWF0aC5zcXJ0KDEtZSplKSpuO3JldHVybiB0WzBdPU1hdGguY29zKHIpKnUsdFsxXT1NYXRoLnNpbihyKSp1LHRbMl09ZSpuLHR9LGUudHJhbnNmb3JtTWF0ND1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdLG89clszXSphK3JbN10qZStyWzExXSp1K3JbMTVdO3JldHVybiBvPW98fDEsdFswXT0oclswXSphK3JbNF0qZStyWzhdKnUrclsxMl0pL28sdFsxXT0oclsxXSphK3JbNV0qZStyWzldKnUrclsxM10pL28sdFsyXT0oclsyXSphK3JbNl0qZStyWzEwXSp1K3JbMTRdKS9vLHR9LGUudHJhbnNmb3JtTWF0Mz1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV0sdT1uWzJdO3JldHVybiB0WzBdPWEqclswXStlKnJbM10rdSpyWzZdLHRbMV09YSpyWzFdK2Uqcls0XSt1KnJbN10sdFsyXT1hKnJbMl0rZSpyWzVdK3Uqcls4XSx0fSxlLnRyYW5zZm9ybVF1YXQ9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPXJbMF0saT1yWzFdLGM9clsyXSxmPXJbM10scz1mKmEraSp1LWMqZSxoPWYqZStjKmEtbyp1LE09Zip1K28qZS1pKmEsbD0tbyphLWkqZS1jKnU7cmV0dXJuIHRbMF09cypmK2wqLW8raCotYy1NKi1pLHRbMV09aCpmK2wqLWkrTSotby1zKi1jLHRbMl09TSpmK2wqLWMrcyotaS1oKi1vLHR9LGUucm90YXRlWD1mdW5jdGlvbih0LG4scixhKXt2YXIgZT1bXSx1PVtdO3JldHVybiBlWzBdPW5bMF0tclswXSxlWzFdPW5bMV0tclsxXSxlWzJdPW5bMl0tclsyXSx1WzBdPWVbMF0sdVsxXT1lWzFdKk1hdGguY29zKGEpLWVbMl0qTWF0aC5zaW4oYSksdVsyXT1lWzFdKk1hdGguc2luKGEpK2VbMl0qTWF0aC5jb3MoYSksdFswXT11WzBdK3JbMF0sdFsxXT11WzFdK3JbMV0sdFsyXT11WzJdK3JbMl0sdH0sZS5yb3RhdGVZPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBlPVtdLHU9W107cmV0dXJuIGVbMF09blswXS1yWzBdLGVbMV09blsxXS1yWzFdLGVbMl09blsyXS1yWzJdLHVbMF09ZVsyXSpNYXRoLnNpbihhKStlWzBdKk1hdGguY29zKGEpLHVbMV09ZVsxXSx1WzJdPWVbMl0qTWF0aC5jb3MoYSktZVswXSpNYXRoLnNpbihhKSx0WzBdPXVbMF0rclswXSx0WzFdPXVbMV0rclsxXSx0WzJdPXVbMl0rclsyXSx0fSxlLnJvdGF0ZVo9ZnVuY3Rpb24odCxuLHIsYSl7dmFyIGU9W10sdT1bXTtyZXR1cm4gZVswXT1uWzBdLXJbMF0sZVsxXT1uWzFdLXJbMV0sZVsyXT1uWzJdLXJbMl0sdVswXT1lWzBdKk1hdGguY29zKGEpLWVbMV0qTWF0aC5zaW4oYSksdVsxXT1lWzBdKk1hdGguc2luKGEpK2VbMV0qTWF0aC5jb3MoYSksdVsyXT1lWzJdLHRbMF09dVswXStyWzBdLHRbMV09dVsxXStyWzFdLHRbMl09dVsyXStyWzJdLHR9LGUuZm9yRWFjaD1mdW5jdGlvbigpe3ZhciB0PWUuY3JlYXRlKCk7cmV0dXJuIGZ1bmN0aW9uKG4scixhLGUsdSxvKXt2YXIgaSxjO2ZvcihyfHwocj0zKSxhfHwoYT0wKSxjPWU/TWF0aC5taW4oZSpyK2Esbi5sZW5ndGgpOm4ubGVuZ3RoLGk9YTtjPmk7aSs9cil0WzBdPW5baV0sdFsxXT1uW2krMV0sdFsyXT1uW2krMl0sdSh0LHQsbyksbltpXT10WzBdLG5baSsxXT10WzFdLG5baSsyXT10WzJdO3JldHVybiBufX0oKSxlLmFuZ2xlPWZ1bmN0aW9uKHQsbil7dmFyIHI9ZS5mcm9tVmFsdWVzKHRbMF0sdFsxXSx0WzJdKSxhPWUuZnJvbVZhbHVlcyhuWzBdLG5bMV0sblsyXSk7ZS5ub3JtYWxpemUocixyKSxlLm5vcm1hbGl6ZShhLGEpO3ZhciB1PWUuZG90KHIsYSk7cmV0dXJuIHU+MT8wOk1hdGguYWNvcyh1KX0sZS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuInZlYzMoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIikifSx0LmV4cG9ydHM9ZX0sZnVuY3Rpb24odCxuLHIpe3ZhciBhPXIoMSksZT17fTtlLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhLkFSUkFZX1RZUEUoNCk7cmV0dXJuIHRbMF09MCx0WzFdPTAsdFsyXT0wLHRbM109MCx0fSxlLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBhLkFSUkFZX1RZUEUoNCk7cmV0dXJuIG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109dFszXSxufSxlLmZyb21WYWx1ZXM9ZnVuY3Rpb24odCxuLHIsZSl7dmFyIHU9bmV3IGEuQVJSQVlfVFlQRSg0KTtyZXR1cm4gdVswXT10LHVbMV09bix1WzJdPXIsdVszXT1lLHV9LGUuY29weT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT1uWzFdLHRbMl09blsyXSx0WzNdPW5bM10sdH0sZS5zZXQ9ZnVuY3Rpb24odCxuLHIsYSxlKXtyZXR1cm4gdFswXT1uLHRbMV09cix0WzJdPWEsdFszXT1lLHR9LGUuYWRkPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdK3JbMF0sdFsxXT1uWzFdK3JbMV0sdFsyXT1uWzJdK3JbMl0sdFszXT1uWzNdK3JbM10sdH0sZS5zdWJ0cmFjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXS1yWzBdLHRbMV09blsxXS1yWzFdLHRbMl09blsyXS1yWzJdLHRbM109blszXS1yWzNdLHR9LGUuc3ViPWUuc3VidHJhY3QsZS5tdWx0aXBseT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXSpyWzBdLHRbMV09blsxXSpyWzFdLHRbMl09blsyXSpyWzJdLHRbM109blszXSpyWzNdLHR9LGUubXVsPWUubXVsdGlwbHksZS5kaXZpZGU9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0vclswXSx0WzFdPW5bMV0vclsxXSx0WzJdPW5bMl0vclsyXSx0WzNdPW5bM10vclszXSx0fSxlLmRpdj1lLmRpdmlkZSxlLm1pbj1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09TWF0aC5taW4oblswXSxyWzBdKSx0WzFdPU1hdGgubWluKG5bMV0sclsxXSksdFsyXT1NYXRoLm1pbihuWzJdLHJbMl0pLHRbM109TWF0aC5taW4oblszXSxyWzNdKSx0fSxlLm1heD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09TWF0aC5tYXgoblswXSxyWzBdKSx0WzFdPU1hdGgubWF4KG5bMV0sclsxXSksdFsyXT1NYXRoLm1heChuWzJdLHJbMl0pLHRbM109TWF0aC5tYXgoblszXSxyWzNdKSx0fSxlLnNjYWxlPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdKnIsdFsxXT1uWzFdKnIsdFsyXT1uWzJdKnIsdFszXT1uWzNdKnIsdH0sZS5zY2FsZUFuZEFkZD1mdW5jdGlvbih0LG4scixhKXtyZXR1cm4gdFswXT1uWzBdK3JbMF0qYSx0WzFdPW5bMV0rclsxXSphLHRbMl09blsyXStyWzJdKmEsdFszXT1uWzNdK3JbM10qYSx0fSxlLmRpc3RhbmNlPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXS10WzBdLGE9blsxXS10WzFdLGU9blsyXS10WzJdLHU9blszXS10WzNdO3JldHVybiBNYXRoLnNxcnQocipyK2EqYStlKmUrdSp1KX0sZS5kaXN0PWUuZGlzdGFuY2UsZS5zcXVhcmVkRGlzdGFuY2U9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLXRbMF0sYT1uWzFdLXRbMV0sZT1uWzJdLXRbMl0sdT1uWzNdLXRbM107cmV0dXJuIHIqcithKmErZSplK3UqdX0sZS5zcXJEaXN0PWUuc3F1YXJlZERpc3RhbmNlLGUubGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBuPXRbMF0scj10WzFdLGE9dFsyXSxlPXRbM107cmV0dXJuIE1hdGguc3FydChuKm4rcipyK2EqYStlKmUpfSxlLmxlbj1lLmxlbmd0aCxlLnNxdWFyZWRMZW5ndGg9ZnVuY3Rpb24odCl7dmFyIG49dFswXSxyPXRbMV0sYT10WzJdLGU9dFszXTtyZXR1cm4gbipuK3IqcithKmErZSplfSxlLnNxckxlbj1lLnNxdWFyZWRMZW5ndGgsZS5uZWdhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT0tblswXSx0WzFdPS1uWzFdLHRbMl09LW5bMl0sdFszXT0tblszXSx0fSxlLmludmVyc2U9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFswXT0xL25bMF0sdFsxXT0xL25bMV0sdFsyXT0xL25bMl0sdFszXT0xL25bM10sdH0sZS5ub3JtYWxpemU9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLGE9blsxXSxlPW5bMl0sdT1uWzNdLG89cipyK2EqYStlKmUrdSp1O3JldHVybiBvPjAmJihvPTEvTWF0aC5zcXJ0KG8pLHRbMF09cipvLHRbMV09YSpvLHRbMl09ZSpvLHRbM109dSpvKSx0fSxlLmRvdD1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdKm5bMF0rdFsxXSpuWzFdK3RbMl0qblsyXSt0WzNdKm5bM119LGUubGVycD1mdW5jdGlvbih0LG4scixhKXt2YXIgZT1uWzBdLHU9blsxXSxvPW5bMl0saT1uWzNdO3JldHVybiB0WzBdPWUrYSooclswXS1lKSx0WzFdPXUrYSooclsxXS11KSx0WzJdPW8rYSooclsyXS1vKSx0WzNdPWkrYSooclszXS1pKSx0fSxlLnJhbmRvbT1mdW5jdGlvbih0LG4pe3JldHVybiBuPW58fDEsdFswXT1hLlJBTkRPTSgpLHRbMV09YS5SQU5ET00oKSx0WzJdPWEuUkFORE9NKCksdFszXT1hLlJBTkRPTSgpLGUubm9ybWFsaXplKHQsdCksZS5zY2FsZSh0LHQsbiksdH0sZS50cmFuc2Zvcm1NYXQ0PWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdLGU9blsxXSx1PW5bMl0sbz1uWzNdO3JldHVybiB0WzBdPXJbMF0qYStyWzRdKmUrcls4XSp1K3JbMTJdKm8sdFsxXT1yWzFdKmErcls1XSplK3JbOV0qdStyWzEzXSpvLHRbMl09clsyXSphK3JbNl0qZStyWzEwXSp1K3JbMTRdKm8sdFszXT1yWzNdKmErcls3XSplK3JbMTFdKnUrclsxNV0qbyx0fSxlLnRyYW5zZm9ybVF1YXQ9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdLHU9blsyXSxvPXJbMF0saT1yWzFdLGM9clsyXSxmPXJbM10scz1mKmEraSp1LWMqZSxoPWYqZStjKmEtbyp1LE09Zip1K28qZS1pKmEsbD0tbyphLWkqZS1jKnU7cmV0dXJuIHRbMF09cypmK2wqLW8raCotYy1NKi1pLHRbMV09aCpmK2wqLWkrTSotby1zKi1jLHRbMl09TSpmK2wqLWMrcyotaS1oKi1vLHRbM109blszXSx0fSxlLmZvckVhY2g9ZnVuY3Rpb24oKXt2YXIgdD1lLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbihuLHIsYSxlLHUsbyl7dmFyIGksYztmb3Iocnx8KHI9NCksYXx8KGE9MCksYz1lP01hdGgubWluKGUqcithLG4ubGVuZ3RoKTpuLmxlbmd0aCxpPWE7Yz5pO2krPXIpdFswXT1uW2ldLHRbMV09bltpKzFdLHRbMl09bltpKzJdLHRbM109bltpKzNdLHUodCx0LG8pLG5baV09dFswXSxuW2krMV09dFsxXSxuW2krMl09dFsyXSxuW2krM109dFszXTtyZXR1cm4gbn19KCksZS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuInZlYzQoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIpIn0sdC5leHBvcnRzPWV9LGZ1bmN0aW9uKHQsbixyKXt2YXIgYT1yKDEpLGU9e307ZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYS5BUlJBWV9UWVBFKDIpO3JldHVybiB0WzBdPTAsdFsxXT0wLHR9LGUuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIG49bmV3IGEuQVJSQVlfVFlQRSgyKTtyZXR1cm4gblswXT10WzBdLG5bMV09dFsxXSxufSxlLmZyb21WYWx1ZXM9ZnVuY3Rpb24odCxuKXt2YXIgcj1uZXcgYS5BUlJBWV9UWVBFKDIpO3JldHVybiByWzBdPXQsclsxXT1uLHJ9LGUuY29weT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPW5bMF0sdFsxXT1uWzFdLHR9LGUuc2V0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uLHRbMV09cix0fSxlLmFkZD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRbMF09blswXStyWzBdLHRbMV09blsxXStyWzFdLHR9LGUuc3VidHJhY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0tclswXSx0WzFdPW5bMV0tclsxXSx0fSxlLnN1Yj1lLnN1YnRyYWN0LGUubXVsdGlwbHk9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPW5bMF0qclswXSx0WzFdPW5bMV0qclsxXSx0fSxlLm11bD1lLm11bHRpcGx5LGUuZGl2aWRlPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdL3JbMF0sdFsxXT1uWzFdL3JbMV0sdH0sZS5kaXY9ZS5kaXZpZGUsZS5taW49ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0WzBdPU1hdGgubWluKG5bMF0sclswXSksdFsxXT1NYXRoLm1pbihuWzFdLHJbMV0pLHR9LGUubWF4PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1NYXRoLm1heChuWzBdLHJbMF0pLHRbMV09TWF0aC5tYXgoblsxXSxyWzFdKSx0fSxlLnNjYWxlPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdFswXT1uWzBdKnIsdFsxXT1uWzFdKnIsdH0sZS5zY2FsZUFuZEFkZD1mdW5jdGlvbih0LG4scixhKXtyZXR1cm4gdFswXT1uWzBdK3JbMF0qYSx0WzFdPW5bMV0rclsxXSphLHR9LGUuZGlzdGFuY2U9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLXRbMF0sYT1uWzFdLXRbMV07cmV0dXJuIE1hdGguc3FydChyKnIrYSphKX0sZS5kaXN0PWUuZGlzdGFuY2UsZS5zcXVhcmVkRGlzdGFuY2U9ZnVuY3Rpb24odCxuKXt2YXIgcj1uWzBdLXRbMF0sYT1uWzFdLXRbMV07cmV0dXJuIHIqcithKmF9LGUuc3FyRGlzdD1lLnNxdWFyZWREaXN0YW5jZSxlLmxlbmd0aD1mdW5jdGlvbih0KXt2YXIgbj10WzBdLHI9dFsxXTtyZXR1cm4gTWF0aC5zcXJ0KG4qbityKnIpfSxlLmxlbj1lLmxlbmd0aCxlLnNxdWFyZWRMZW5ndGg9ZnVuY3Rpb24odCl7dmFyIG49dFswXSxyPXRbMV07cmV0dXJuIG4qbityKnJ9LGUuc3FyTGVuPWUuc3F1YXJlZExlbmd0aCxlLm5lZ2F0ZT1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdPS1uWzBdLHRbMV09LW5bMV0sdH0sZS5pbnZlcnNlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbMF09MS9uWzBdLHRbMV09MS9uWzFdLHR9LGUubm9ybWFsaXplPWZ1bmN0aW9uKHQsbil7dmFyIHI9blswXSxhPW5bMV0sZT1yKnIrYSphO3JldHVybiBlPjAmJihlPTEvTWF0aC5zcXJ0KGUpLHRbMF09blswXSplLHRbMV09blsxXSplKSx0fSxlLmRvdD1mdW5jdGlvbih0LG4pe3JldHVybiB0WzBdKm5bMF0rdFsxXSpuWzFdfSxlLmNyb3NzPWZ1bmN0aW9uKHQsbixyKXt2YXIgYT1uWzBdKnJbMV0tblsxXSpyWzBdO3JldHVybiB0WzBdPXRbMV09MCx0WzJdPWEsdH0sZS5sZXJwPWZ1bmN0aW9uKHQsbixyLGEpe3ZhciBlPW5bMF0sdT1uWzFdO3JldHVybiB0WzBdPWUrYSooclswXS1lKSx0WzFdPXUrYSooclsxXS11KSx0fSxlLnJhbmRvbT1mdW5jdGlvbih0LG4pe249bnx8MTt2YXIgcj0yKmEuUkFORE9NKCkqTWF0aC5QSTtyZXR1cm4gdFswXT1NYXRoLmNvcyhyKSpuLHRbMV09TWF0aC5zaW4ocikqbix0fSxlLnRyYW5zZm9ybU1hdDI9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdO3JldHVybiB0WzBdPXJbMF0qYStyWzJdKmUsdFsxXT1yWzFdKmErclszXSplLHR9LGUudHJhbnNmb3JtTWF0MmQ9ZnVuY3Rpb24odCxuLHIpe3ZhciBhPW5bMF0sZT1uWzFdO3JldHVybiB0WzBdPXJbMF0qYStyWzJdKmUrcls0XSx0WzFdPXJbMV0qYStyWzNdKmUrcls1XSx0fSxlLnRyYW5zZm9ybU1hdDM9ZnVuY3Rpb24odCxuLHIpewordmFyIGE9blswXSxlPW5bMV07cmV0dXJuIHRbMF09clswXSphK3JbM10qZStyWzZdLHRbMV09clsxXSphK3JbNF0qZStyWzddLHR9LGUudHJhbnNmb3JtTWF0ND1mdW5jdGlvbih0LG4scil7dmFyIGE9blswXSxlPW5bMV07cmV0dXJuIHRbMF09clswXSphK3JbNF0qZStyWzEyXSx0WzFdPXJbMV0qYStyWzVdKmUrclsxM10sdH0sZS5mb3JFYWNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24obixyLGEsZSx1LG8pe3ZhciBpLGM7Zm9yKHJ8fChyPTIpLGF8fChhPTApLGM9ZT9NYXRoLm1pbihlKnIrYSxuLmxlbmd0aCk6bi5sZW5ndGgsaT1hO2M+aTtpKz1yKXRbMF09bltpXSx0WzFdPW5baSsxXSx1KHQsdCxvKSxuW2ldPXRbMF0sbltpKzFdPXRbMV07cmV0dXJuIG59fSgpLGUuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJ2ZWMyKCIrdFswXSsiLCAiK3RbMV0rIikifSx0LmV4cG9ydHM9ZX1dKX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9kaXN0L2dsLW1hdHJpeC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjFlOWIwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2Rpc3QvZ2wtbWF0cml4LmpzCkBAIC0wLDAgKzEsNTAyMCBAQAorLyoqCisgKiBAZmlsZW92ZXJ2aWV3IGdsLW1hdHJpeCAtIEhpZ2ggcGVyZm9ybWFuY2UgbWF0cml4IGFuZCB2ZWN0b3Igb3BlcmF0aW9ucworICogQGF1dGhvciBCcmFuZG9uIEpvbmVzCisgKiBAYXV0aG9yIENvbGluIE1hY0tlbnppZSBJVgorICogQHZlcnNpb24gMi4zLjEKKyAqLworCisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKKyhmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7CisJaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKQorCQltb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTsKKwllbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkKKwkJZGVmaW5lKGZhY3RvcnkpOworCWVsc2UgeworCQl2YXIgYSA9IGZhY3RvcnkoKTsKKwkJZm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldOworCX0KK30pKHRoaXMsIGZ1bmN0aW9uKCkgeworcmV0dXJuIC8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXAKKy8qKioqKiovIAkvLyBUaGUgbW9kdWxlIGNhY2hlCisvKioqKioqLyAJdmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTsKKworLyoqKioqKi8gCS8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uCisvKioqKioqLyAJZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkgeworCisvKioqKioqLyAJCS8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZQorLyoqKioqKi8gCQlpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkKKy8qKioqKiovIAkJCXJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzOworCisvKioqKioqLyAJCS8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpCisvKioqKioqLyAJCXZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHsKKy8qKioqKiovIAkJCWV4cG9ydHM6IHt9LAorLyoqKioqKi8gCQkJaWQ6IG1vZHVsZUlkLAorLyoqKioqKi8gCQkJbG9hZGVkOiBmYWxzZQorLyoqKioqKi8gCQl9OworCisvKioqKioqLyAJCS8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvbgorLyoqKioqKi8gCQltb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTsKKworLyoqKioqKi8gCQkvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkCisvKioqKioqLyAJCW1vZHVsZS5sb2FkZWQgPSB0cnVlOworCisvKioqKioqLyAJCS8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlCisvKioqKioqLyAJCXJldHVybiBtb2R1bGUuZXhwb3J0czsKKy8qKioqKiovIAl9CisKKworLyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlczsKKworLyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlczsKKworLyoqKioqKi8gCS8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fCisvKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gIiI7CisKKy8qKioqKiovIAkvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHMKKy8qKioqKiovIAlyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTsKKy8qKioqKiovIH0pCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKi8gKFsKKy8qIDAgKi8KKy8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisJLyoqCisJICogQGZpbGVvdmVydmlldyBnbC1tYXRyaXggLSBIaWdoIHBlcmZvcm1hbmNlIG1hdHJpeCBhbmQgdmVjdG9yIG9wZXJhdGlvbnMKKwkgKiBAYXV0aG9yIEJyYW5kb24gSm9uZXMKKwkgKiBAYXV0aG9yIENvbGluIE1hY0tlbnppZSBJVgorCSAqIEB2ZXJzaW9uIDIuMy4xCisJICovCisKKwkvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKwlvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorCWluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKKwl0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisJY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisJZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworCVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisJYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKKwlUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorCUlNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorCUZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorCUFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKwlMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorCU9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKwlUSEUgU09GVFdBUkUuICovCisJLy8gRU5EIEhFQURFUgorCisJZXhwb3J0cy5nbE1hdHJpeCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CisJZXhwb3J0cy5tYXQyID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsKKwlleHBvcnRzLm1hdDJkID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKKwlleHBvcnRzLm1hdDMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworCWV4cG9ydHMubWF0NCA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7CisJZXhwb3J0cy5xdWF0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKwlleHBvcnRzLnZlYzIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpOworCWV4cG9ydHMudmVjMyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7CisJZXhwb3J0cy52ZWM0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKKworLyoqKi8gfSwKKy8qIDEgKi8KKy8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisJLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisJb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKwlpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisJdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorCWNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworCWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKwlUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorCWFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCisJVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKwlJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKwlGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKwlBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisJTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKwlPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCisJVEhFIFNPRlRXQVJFLiAqLworCisJLyoqCisJICogQGNsYXNzIENvbW1vbiB1dGlsaXRpZXMKKwkgKiBAbmFtZSBnbE1hdHJpeAorCSAqLworCXZhciBnbE1hdHJpeCA9IHt9OworCisJLy8gQ29uc3RhbnRzCisJZ2xNYXRyaXguRVBTSUxPTiA9IDAuMDAwMDAxOworCWdsTWF0cml4LkFSUkFZX1RZUEUgPSAodHlwZW9mIEZsb2F0MzJBcnJheSAhPT0gJ3VuZGVmaW5lZCcpID8gRmxvYXQzMkFycmF5IDogQXJyYXk7CisJZ2xNYXRyaXguUkFORE9NID0gTWF0aC5yYW5kb207CisKKwkvKioKKwkgKiBTZXRzIHRoZSB0eXBlIG9mIGFycmF5IHVzZWQgd2hlbiBjcmVhdGluZyBuZXcgdmVjdG9ycyBhbmQgbWF0cmljZXMKKwkgKgorCSAqIEBwYXJhbSB7VHlwZX0gdHlwZSBBcnJheSB0eXBlLCBzdWNoIGFzIEZsb2F0MzJBcnJheSBvciBBcnJheQorCSAqLworCWdsTWF0cml4LnNldE1hdHJpeEFycmF5VHlwZSA9IGZ1bmN0aW9uKHR5cGUpIHsKKwkgICAgR0xNQVRfQVJSQVlfVFlQRSA9IHR5cGU7CisJfQorCisJdmFyIGRlZ3JlZSA9IE1hdGguUEkgLyAxODA7CisKKwkvKioKKwkqIENvbnZlcnQgRGVncmVlIFRvIFJhZGlhbgorCSoKKwkqIEBwYXJhbSB7TnVtYmVyfSBBbmdsZSBpbiBEZWdyZWVzCisJKi8KKwlnbE1hdHJpeC50b1JhZGlhbiA9IGZ1bmN0aW9uKGEpeworCSAgICAgcmV0dXJuIGEgKiBkZWdyZWU7CisJfQorCisJbW9kdWxlLmV4cG9ydHMgPSBnbE1hdHJpeDsKKworCisvKioqLyB9LAorLyogMiAqLworLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKwkvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKwlvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorCWluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKKwl0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisJY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisJZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworCVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisJYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKKwlUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorCUlNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorCUZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorCUFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKwlMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorCU9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKwlUSEUgU09GVFdBUkUuICovCisKKwl2YXIgZ2xNYXRyaXggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOworCisJLyoqCisJICogQGNsYXNzIDJ4MiBNYXRyaXgKKwkgKiBAbmFtZSBtYXQyCisJICovCisJdmFyIG1hdDIgPSB7fTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgbWF0MgorCSAqCisJICogQHJldHVybnMge21hdDJ9IGEgbmV3IDJ4MiBtYXRyaXgKKwkgKi8KKwltYXQyLmNyZWF0ZSA9IGZ1bmN0aW9uKCkgeworCSAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoNCk7CisJICAgIG91dFswXSA9IDE7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBuZXcgbWF0MiBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIG1hdHJpeAorCSAqCisJICogQHBhcmFtIHttYXQyfSBhIG1hdHJpeCB0byBjbG9uZQorCSAqIEByZXR1cm5zIHttYXQyfSBhIG5ldyAyeDIgbWF0cml4CisJICovCisJbWF0Mi5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDQpOworCSAgICBvdXRbMF0gPSBhWzBdOworCSAgICBvdXRbMV0gPSBhWzFdOworCSAgICBvdXRbMl0gPSBhWzJdOworCSAgICBvdXRbM10gPSBhWzNdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MiB0byBhbm90aGVyCisJICoKKwkgKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQyfSBvdXQKKwkgKi8KKwltYXQyLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgb3V0WzBdID0gYVswXTsKKwkgICAgb3V0WzFdID0gYVsxXTsKKwkgICAgb3V0WzJdID0gYVsyXTsKKwkgICAgb3V0WzNdID0gYVszXTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogU2V0IGEgbWF0MiB0byB0aGUgaWRlbnRpdHkgbWF0cml4CisJICoKKwkgKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQyfSBvdXQKKwkgKi8KKwltYXQyLmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7CisJICAgIG91dFswXSA9IDE7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFRyYW5zcG9zZSB0aGUgdmFsdWVzIG9mIGEgbWF0MgorCSAqCisJICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKwkgKiBAcmV0dXJucyB7bWF0Mn0gb3V0CisJICovCisJbWF0Mi50cmFuc3Bvc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgLy8gSWYgd2UgYXJlIHRyYW5zcG9zaW5nIG91cnNlbHZlcyB3ZSBjYW4gc2tpcCBhIGZldyBzdGVwcyBidXQgaGF2ZSB0byBjYWNoZSBzb21lIHZhbHVlcworCSAgICBpZiAob3V0ID09PSBhKSB7CisJICAgICAgICB2YXIgYTEgPSBhWzFdOworCSAgICAgICAgb3V0WzFdID0gYVsyXTsKKwkgICAgICAgIG91dFsyXSA9IGExOworCSAgICB9IGVsc2UgeworCSAgICAgICAgb3V0WzBdID0gYVswXTsKKwkgICAgICAgIG91dFsxXSA9IGFbMl07CisJICAgICAgICBvdXRbMl0gPSBhWzFdOworCSAgICAgICAgb3V0WzNdID0gYVszXTsKKwkgICAgfQorCSAgICAKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogSW52ZXJ0cyBhIG1hdDIKKwkgKgorCSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQyfSBhIHRoZSBzb3VyY2UgbWF0cml4CisJICogQHJldHVybnMge21hdDJ9IG91dAorCSAqLworCW1hdDIuaW52ZXJ0ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sCisKKwkgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKKwkgICAgICAgIGRldCA9IGEwICogYTMgLSBhMiAqIGExOworCisJICAgIGlmICghZGV0KSB7CisJICAgICAgICByZXR1cm4gbnVsbDsKKwkgICAgfQorCSAgICBkZXQgPSAxLjAgLyBkZXQ7CisJICAgIAorCSAgICBvdXRbMF0gPSAgYTMgKiBkZXQ7CisJICAgIG91dFsxXSA9IC1hMSAqIGRldDsKKwkgICAgb3V0WzJdID0gLWEyICogZGV0OworCSAgICBvdXRbM10gPSAgYTAgKiBkZXQ7CisKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgYWRqdWdhdGUgb2YgYSBtYXQyCisJICoKKwkgKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQyfSBvdXQKKwkgKi8KKwltYXQyLmFkam9pbnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgLy8gQ2FjaGluZyB0aGlzIHZhbHVlIGlzIG5lc3NlY2FyeSBpZiBvdXQgPT0gYQorCSAgICB2YXIgYTAgPSBhWzBdOworCSAgICBvdXRbMF0gPSAgYVszXTsKKwkgICAgb3V0WzFdID0gLWFbMV07CisJICAgIG91dFsyXSA9IC1hWzJdOworCSAgICBvdXRbM10gPSAgYTA7CisKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgZGV0ZXJtaW5hbnQgb2YgYSBtYXQyCisJICoKKwkgKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBkZXRlcm1pbmFudCBvZiBhCisJICovCisJbWF0Mi5kZXRlcm1pbmFudCA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHJldHVybiBhWzBdICogYVszXSAtIGFbMl0gKiBhWzFdOworCX07CisKKwkvKioKKwkgKiBNdWx0aXBsaWVzIHR3byBtYXQyJ3MKKwkgKgorCSAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHttYXQyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHttYXQyfSBvdXQKKwkgKi8KKwltYXQyLm11bHRpcGx5ID0gZnVuY3Rpb24gKG91dCwgYSwgYikgeworCSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdOworCSAgICB2YXIgYjAgPSBiWzBdLCBiMSA9IGJbMV0sIGIyID0gYlsyXSwgYjMgPSBiWzNdOworCSAgICBvdXRbMF0gPSBhMCAqIGIwICsgYTIgKiBiMTsKKwkgICAgb3V0WzFdID0gYTEgKiBiMCArIGEzICogYjE7CisJICAgIG91dFsyXSA9IGEwICogYjIgKyBhMiAqIGIzOworCSAgICBvdXRbM10gPSBhMSAqIGIyICsgYTMgKiBiMzsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayBtYXQyLm11bHRpcGx5fQorCSAqIEBmdW5jdGlvbgorCSAqLworCW1hdDIubXVsID0gbWF0Mi5tdWx0aXBseTsKKworCS8qKgorCSAqIFJvdGF0ZXMgYSBtYXQyIGJ5IHRoZSBnaXZlbiBhbmdsZQorCSAqCisJICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDJ9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKKwkgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorCSAqIEByZXR1cm5zIHttYXQyfSBvdXQKKwkgKi8KKwltYXQyLnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworCSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLAorCSAgICAgICAgcyA9IE1hdGguc2luKHJhZCksCisJICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKKwkgICAgb3V0WzBdID0gYTAgKiAgYyArIGEyICogczsKKwkgICAgb3V0WzFdID0gYTEgKiAgYyArIGEzICogczsKKwkgICAgb3V0WzJdID0gYTAgKiAtcyArIGEyICogYzsKKwkgICAgb3V0WzNdID0gYTEgKiAtcyArIGEzICogYzsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogU2NhbGVzIHRoZSBtYXQyIGJ5IHRoZSBkaW1lbnNpb25zIGluIHRoZSBnaXZlbiB2ZWMyCisJICoKKwkgKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQorCSAqIEBwYXJhbSB7dmVjMn0gdiB0aGUgdmVjMiB0byBzY2FsZSB0aGUgbWF0cml4IGJ5CisJICogQHJldHVybnMge21hdDJ9IG91dAorCSAqKi8KKwltYXQyLnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7CisJICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sCisJICAgICAgICB2MCA9IHZbMF0sIHYxID0gdlsxXTsKKwkgICAgb3V0WzBdID0gYTAgKiB2MDsKKwkgICAgb3V0WzFdID0gYTEgKiB2MDsKKwkgICAgb3V0WzJdID0gYTIgKiB2MTsKKwkgICAgb3V0WzNdID0gYTMgKiB2MTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgZ2l2ZW4gYW5nbGUKKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQyLmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQyLnJvdGF0ZShkZXN0LCBkZXN0LCByYWQpOworCSAqCisJICogQHBhcmFtIHttYXQyfSBvdXQgbWF0MiByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisJICogQHJldHVybnMge21hdDJ9IG91dAorCSAqLworCW1hdDIuZnJvbVJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKwkgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAorCSAgICAgICAgYyA9IE1hdGguY29zKHJhZCk7CisJICAgIG91dFswXSA9IGM7CisJICAgIG91dFsxXSA9IHM7CisJICAgIG91dFsyXSA9IC1zOworCSAgICBvdXRbM10gPSBjOworCSAgICByZXR1cm4gb3V0OworCX0KKworCS8qKgorCSAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHZlY3RvciBzY2FsaW5nCisJICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisJICoKKwkgKiAgICAgbWF0Mi5pZGVudGl0eShkZXN0KTsKKwkgKiAgICAgbWF0Mi5zY2FsZShkZXN0LCBkZXN0LCB2ZWMpOworCSAqCisJICogQHBhcmFtIHttYXQyfSBvdXQgbWF0MiByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7dmVjMn0gdiBTY2FsaW5nIHZlY3RvcgorCSAqIEByZXR1cm5zIHttYXQyfSBvdXQKKwkgKi8KKwltYXQyLmZyb21TY2FsaW5nID0gZnVuY3Rpb24ob3V0LCB2KSB7CisJICAgIG91dFswXSA9IHZbMF07CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IHZbMV07CisJICAgIHJldHVybiBvdXQ7CisJfQorCisJLyoqCisJICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIG1hdDIKKwkgKgorCSAqIEBwYXJhbSB7bWF0Mn0gbWF0IG1hdHJpeCB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKKwkgKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJpeAorCSAqLworCW1hdDIuc3RyID0gZnVuY3Rpb24gKGEpIHsKKwkgICAgcmV0dXJuICdtYXQyKCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyBhWzNdICsgJyknOworCX07CisKKwkvKioKKwkgKiBSZXR1cm5zIEZyb2Jlbml1cyBub3JtIG9mIGEgbWF0MgorCSAqCisJICogQHBhcmFtIHttYXQyfSBhIHRoZSBtYXRyaXggdG8gY2FsY3VsYXRlIEZyb2Jlbml1cyBub3JtIG9mCisJICogQHJldHVybnMge051bWJlcn0gRnJvYmVuaXVzIG5vcm0KKwkgKi8KKwltYXQyLmZyb2IgPSBmdW5jdGlvbiAoYSkgeworCSAgICByZXR1cm4oTWF0aC5zcXJ0KE1hdGgucG93KGFbMF0sIDIpICsgTWF0aC5wb3coYVsxXSwgMikgKyBNYXRoLnBvdyhhWzJdLCAyKSArIE1hdGgucG93KGFbM10sIDIpKSkKKwl9OworCisJLyoqCisJICogUmV0dXJucyBMLCBEIGFuZCBVIG1hdHJpY2VzIChMb3dlciB0cmlhbmd1bGFyLCBEaWFnb25hbCBhbmQgVXBwZXIgdHJpYW5ndWxhcikgYnkgZmFjdG9yaXppbmcgdGhlIGlucHV0IG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0Mn0gTCB0aGUgbG93ZXIgdHJpYW5ndWxhciBtYXRyaXggCisJICogQHBhcmFtIHttYXQyfSBEIHRoZSBkaWFnb25hbCBtYXRyaXggCisJICogQHBhcmFtIHttYXQyfSBVIHRoZSB1cHBlciB0cmlhbmd1bGFyIG1hdHJpeCAKKwkgKiBAcGFyYW0ge21hdDJ9IGEgdGhlIGlucHV0IG1hdHJpeCB0byBmYWN0b3JpemUKKwkgKi8KKworCW1hdDIuTERVID0gZnVuY3Rpb24gKEwsIEQsIFUsIGEpIHsgCisJICAgIExbMl0gPSBhWzJdL2FbMF07IAorCSAgICBVWzBdID0gYVswXTsgCisJICAgIFVbMV0gPSBhWzFdOyAKKwkgICAgVVszXSA9IGFbM10gLSBMWzJdICogVVsxXTsgCisJICAgIHJldHVybiBbTCwgRCwgVV07ICAgICAgIAorCX07IAorCisKKwltb2R1bGUuZXhwb3J0cyA9IG1hdDI7CisKKworLyoqKi8gfSwKKy8qIDMgKi8KKy8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisJLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisJb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKwlpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisJdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorCWNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworCWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKwlUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorCWFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCisJVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKwlJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKwlGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKwlBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisJTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKwlPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCisJVEhFIFNPRlRXQVJFLiAqLworCisJdmFyIGdsTWF0cml4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKKworCS8qKgorCSAqIEBjbGFzcyAyeDMgTWF0cml4CisJICogQG5hbWUgbWF0MmQKKwkgKiAKKwkgKiBAZGVzY3JpcHRpb24gCisJICogQSBtYXQyZCBjb250YWlucyBzaXggZWxlbWVudHMgZGVmaW5lZCBhczoKKwkgKiA8cHJlPgorCSAqIFthLCBjLCB0eCwKKwkgKiAgYiwgZCwgdHldCisJICogPC9wcmU+CisJICogVGhpcyBpcyBhIHNob3J0IGZvcm0gZm9yIHRoZSAzeDMgbWF0cml4OgorCSAqIDxwcmU+CisJICogW2EsIGMsIHR4LAorCSAqICBiLCBkLCB0eSwKKwkgKiAgMCwgMCwgMV0KKwkgKiA8L3ByZT4KKwkgKiBUaGUgbGFzdCByb3cgaXMgaWdub3JlZCBzbyB0aGUgYXJyYXkgaXMgc2hvcnRlciBhbmQgb3BlcmF0aW9ucyBhcmUgZmFzdGVyLgorCSAqLworCXZhciBtYXQyZCA9IHt9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldyBpZGVudGl0eSBtYXQyZAorCSAqCisJICogQHJldHVybnMge21hdDJkfSBhIG5ldyAyeDMgbWF0cml4CisJICovCisJbWF0MmQuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisJICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSg2KTsKKwkgICAgb3V0WzBdID0gMTsKKwkgICAgb3V0WzFdID0gMDsKKwkgICAgb3V0WzJdID0gMDsKKwkgICAgb3V0WzNdID0gMTsKKwkgICAgb3V0WzRdID0gMDsKKwkgICAgb3V0WzVdID0gMDsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldyBtYXQyZCBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIG1hdHJpeAorCSAqCisJICogQHBhcmFtIHttYXQyZH0gYSBtYXRyaXggdG8gY2xvbmUKKwkgKiBAcmV0dXJucyB7bWF0MmR9IGEgbmV3IDJ4MyBtYXRyaXgKKwkgKi8KKwltYXQyZC5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDYpOworCSAgICBvdXRbMF0gPSBhWzBdOworCSAgICBvdXRbMV0gPSBhWzFdOworCSAgICBvdXRbMl0gPSBhWzJdOworCSAgICBvdXRbM10gPSBhWzNdOworCSAgICBvdXRbNF0gPSBhWzRdOworCSAgICBvdXRbNV0gPSBhWzVdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MmQgdG8gYW5vdGhlcgorCSAqCisJICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQyZH0gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQyZH0gb3V0CisJICovCisJbWF0MmQuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICBvdXRbMF0gPSBhWzBdOworCSAgICBvdXRbMV0gPSBhWzFdOworCSAgICBvdXRbMl0gPSBhWzJdOworCSAgICBvdXRbM10gPSBhWzNdOworCSAgICBvdXRbNF0gPSBhWzRdOworCSAgICBvdXRbNV0gPSBhWzVdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTZXQgYSBtYXQyZCB0byB0aGUgaWRlbnRpdHkgbWF0cml4CisJICoKKwkgKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcmV0dXJucyB7bWF0MmR9IG91dAorCSAqLworCW1hdDJkLmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7CisJICAgIG91dFswXSA9IDE7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IDE7CisJICAgIG91dFs0XSA9IDA7CisJICAgIG91dFs1XSA9IDA7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEludmVydHMgYSBtYXQyZAorCSAqCisJICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQyZH0gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQyZH0gb3V0CisJICovCisJbWF0MmQuaW52ZXJ0ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIHZhciBhYSA9IGFbMF0sIGFiID0gYVsxXSwgYWMgPSBhWzJdLCBhZCA9IGFbM10sCisJICAgICAgICBhdHggPSBhWzRdLCBhdHkgPSBhWzVdOworCisJICAgIHZhciBkZXQgPSBhYSAqIGFkIC0gYWIgKiBhYzsKKwkgICAgaWYoIWRldCl7CisJICAgICAgICByZXR1cm4gbnVsbDsKKwkgICAgfQorCSAgICBkZXQgPSAxLjAgLyBkZXQ7CisKKwkgICAgb3V0WzBdID0gYWQgKiBkZXQ7CisJICAgIG91dFsxXSA9IC1hYiAqIGRldDsKKwkgICAgb3V0WzJdID0gLWFjICogZGV0OworCSAgICBvdXRbM10gPSBhYSAqIGRldDsKKwkgICAgb3V0WzRdID0gKGFjICogYXR5IC0gYWQgKiBhdHgpICogZGV0OworCSAgICBvdXRbNV0gPSAoYWIgKiBhdHggLSBhYSAqIGF0eSkgKiBkZXQ7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIGRldGVybWluYW50IG9mIGEgbWF0MmQKKwkgKgorCSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBkZXRlcm1pbmFudCBvZiBhCisJICovCisJbWF0MmQuZGV0ZXJtaW5hbnQgPSBmdW5jdGlvbiAoYSkgeworCSAgICByZXR1cm4gYVswXSAqIGFbM10gLSBhWzFdICogYVsyXTsKKwl9OworCisJLyoqCisJICogTXVsdGlwbGllcyB0d28gbWF0MmQncworCSAqCisJICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQyZH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7bWF0MmR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge21hdDJkfSBvdXQKKwkgKi8KKwltYXQyZC5tdWx0aXBseSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIpIHsKKwkgICAgdmFyIGEwID0gYVswXSwgYTEgPSBhWzFdLCBhMiA9IGFbMl0sIGEzID0gYVszXSwgYTQgPSBhWzRdLCBhNSA9IGFbNV0sCisJICAgICAgICBiMCA9IGJbMF0sIGIxID0gYlsxXSwgYjIgPSBiWzJdLCBiMyA9IGJbM10sIGI0ID0gYls0XSwgYjUgPSBiWzVdOworCSAgICBvdXRbMF0gPSBhMCAqIGIwICsgYTIgKiBiMTsKKwkgICAgb3V0WzFdID0gYTEgKiBiMCArIGEzICogYjE7CisJICAgIG91dFsyXSA9IGEwICogYjIgKyBhMiAqIGIzOworCSAgICBvdXRbM10gPSBhMSAqIGIyICsgYTMgKiBiMzsKKwkgICAgb3V0WzRdID0gYTAgKiBiNCArIGEyICogYjUgKyBhNDsKKwkgICAgb3V0WzVdID0gYTEgKiBiNCArIGEzICogYjUgKyBhNTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayBtYXQyZC5tdWx0aXBseX0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwltYXQyZC5tdWwgPSBtYXQyZC5tdWx0aXBseTsKKworCS8qKgorCSAqIFJvdGF0ZXMgYSBtYXQyZCBieSB0aGUgZ2l2ZW4gYW5nbGUKKwkgKgorCSAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKKwkgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorCSAqIEByZXR1cm5zIHttYXQyZH0gb3V0CisJICovCisJbWF0MmQucm90YXRlID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7CisJICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sIGE0ID0gYVs0XSwgYTUgPSBhWzVdLAorCSAgICAgICAgcyA9IE1hdGguc2luKHJhZCksCisJICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKKwkgICAgb3V0WzBdID0gYTAgKiAgYyArIGEyICogczsKKwkgICAgb3V0WzFdID0gYTEgKiAgYyArIGEzICogczsKKwkgICAgb3V0WzJdID0gYTAgKiAtcyArIGEyICogYzsKKwkgICAgb3V0WzNdID0gYTEgKiAtcyArIGEzICogYzsKKwkgICAgb3V0WzRdID0gYTQ7CisJICAgIG91dFs1XSA9IGE1OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTY2FsZXMgdGhlIG1hdDJkIGJ5IHRoZSBkaW1lbnNpb25zIGluIHRoZSBnaXZlbiB2ZWMyCisJICoKKwkgKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBtYXRyaXggdG8gdHJhbnNsYXRlCisJICogQHBhcmFtIHt2ZWMyfSB2IHRoZSB2ZWMyIHRvIHNjYWxlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0MmR9IG91dAorCSAqKi8KKwltYXQyZC5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgdikgeworCSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLCBhNCA9IGFbNF0sIGE1ID0gYVs1XSwKKwkgICAgICAgIHYwID0gdlswXSwgdjEgPSB2WzFdOworCSAgICBvdXRbMF0gPSBhMCAqIHYwOworCSAgICBvdXRbMV0gPSBhMSAqIHYwOworCSAgICBvdXRbMl0gPSBhMiAqIHYxOworCSAgICBvdXRbM10gPSBhMyAqIHYxOworCSAgICBvdXRbNF0gPSBhNDsKKwkgICAgb3V0WzVdID0gYTU7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFRyYW5zbGF0ZXMgdGhlIG1hdDJkIGJ5IHRoZSBkaW1lbnNpb25zIGluIHRoZSBnaXZlbiB2ZWMyCisJICoKKwkgKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBtYXRyaXggdG8gdHJhbnNsYXRlCisJICogQHBhcmFtIHt2ZWMyfSB2IHRoZSB2ZWMyIHRvIHRyYW5zbGF0ZSB0aGUgbWF0cml4IGJ5CisJICogQHJldHVybnMge21hdDJkfSBvdXQKKwkgKiovCisJbWF0MmQudHJhbnNsYXRlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7CisJICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sIGE0ID0gYVs0XSwgYTUgPSBhWzVdLAorCSAgICAgICAgdjAgPSB2WzBdLCB2MSA9IHZbMV07CisJICAgIG91dFswXSA9IGEwOworCSAgICBvdXRbMV0gPSBhMTsKKwkgICAgb3V0WzJdID0gYTI7CisJICAgIG91dFszXSA9IGEzOworCSAgICBvdXRbNF0gPSBhMCAqIHYwICsgYTIgKiB2MSArIGE0OworCSAgICBvdXRbNV0gPSBhMSAqIHYwICsgYTMgKiB2MSArIGE1OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSBnaXZlbiBhbmdsZQorCSAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byAoYnV0IG11Y2ggZmFzdGVyIHRoYW4pOgorCSAqCisJICogICAgIG1hdDJkLmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQyZC5yb3RhdGUoZGVzdCwgZGVzdCwgcmFkKTsKKwkgKgorCSAqIEBwYXJhbSB7bWF0MmR9IG91dCBtYXQyZCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisJICogQHJldHVybnMge21hdDJkfSBvdXQKKwkgKi8KKwltYXQyZC5mcm9tUm90YXRpb24gPSBmdW5jdGlvbihvdXQsIHJhZCkgeworCSAgICB2YXIgcyA9IE1hdGguc2luKHJhZCksIGMgPSBNYXRoLmNvcyhyYWQpOworCSAgICBvdXRbMF0gPSBjOworCSAgICBvdXRbMV0gPSBzOworCSAgICBvdXRbMl0gPSAtczsKKwkgICAgb3V0WzNdID0gYzsKKwkgICAgb3V0WzRdID0gMDsKKwkgICAgb3V0WzVdID0gMDsKKwkgICAgcmV0dXJuIG91dDsKKwl9CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSB2ZWN0b3Igc2NhbGluZworCSAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byAoYnV0IG11Y2ggZmFzdGVyIHRoYW4pOgorCSAqCisJICogICAgIG1hdDJkLmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQyZC5zY2FsZShkZXN0LCBkZXN0LCB2ZWMpOworCSAqCisJICogQHBhcmFtIHttYXQyZH0gb3V0IG1hdDJkIHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisJICogQHBhcmFtIHt2ZWMyfSB2IFNjYWxpbmcgdmVjdG9yCisJICogQHJldHVybnMge21hdDJkfSBvdXQKKwkgKi8KKwltYXQyZC5mcm9tU2NhbGluZyA9IGZ1bmN0aW9uKG91dCwgdikgeworCSAgICBvdXRbMF0gPSB2WzBdOworCSAgICBvdXRbMV0gPSAwOworCSAgICBvdXRbMl0gPSAwOworCSAgICBvdXRbM10gPSB2WzFdOworCSAgICBvdXRbNF0gPSAwOworCSAgICBvdXRbNV0gPSAwOworCSAgICByZXR1cm4gb3V0OworCX0KKworCS8qKgorCSAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHZlY3RvciB0cmFuc2xhdGlvbgorCSAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byAoYnV0IG11Y2ggZmFzdGVyIHRoYW4pOgorCSAqCisJICogICAgIG1hdDJkLmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQyZC50cmFuc2xhdGUoZGVzdCwgZGVzdCwgdmVjKTsKKwkgKgorCSAqIEBwYXJhbSB7bWF0MmR9IG91dCBtYXQyZCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7dmVjMn0gdiBUcmFuc2xhdGlvbiB2ZWN0b3IKKwkgKiBAcmV0dXJucyB7bWF0MmR9IG91dAorCSAqLworCW1hdDJkLmZyb21UcmFuc2xhdGlvbiA9IGZ1bmN0aW9uKG91dCwgdikgeworCSAgICBvdXRbMF0gPSAxOworCSAgICBvdXRbMV0gPSAwOworCSAgICBvdXRbMl0gPSAwOworCSAgICBvdXRbM10gPSAxOworCSAgICBvdXRbNF0gPSB2WzBdOworCSAgICBvdXRbNV0gPSB2WzFdOworCSAgICByZXR1cm4gb3V0OworCX0KKworCS8qKgorCSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBtYXQyZAorCSAqCisJICogQHBhcmFtIHttYXQyZH0gYSBtYXRyaXggdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCisJICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgKKwkgKi8KKwltYXQyZC5zdHIgPSBmdW5jdGlvbiAoYSkgeworCSAgICByZXR1cm4gJ21hdDJkKCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyAKKwkgICAgICAgICAgICAgICAgICAgIGFbM10gKyAnLCAnICsgYVs0XSArICcsICcgKyBhWzVdICsgJyknOworCX07CisKKwkvKioKKwkgKiBSZXR1cm5zIEZyb2Jlbml1cyBub3JtIG9mIGEgbWF0MmQKKwkgKgorCSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIG1hdHJpeCB0byBjYWxjdWxhdGUgRnJvYmVuaXVzIG5vcm0gb2YKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBGcm9iZW5pdXMgbm9ybQorCSAqLworCW1hdDJkLmZyb2IgPSBmdW5jdGlvbiAoYSkgeyAKKwkgICAgcmV0dXJuKE1hdGguc3FydChNYXRoLnBvdyhhWzBdLCAyKSArIE1hdGgucG93KGFbMV0sIDIpICsgTWF0aC5wb3coYVsyXSwgMikgKyBNYXRoLnBvdyhhWzNdLCAyKSArIE1hdGgucG93KGFbNF0sIDIpICsgTWF0aC5wb3coYVs1XSwgMikgKyAxKSkKKwl9OyAKKworCW1vZHVsZS5leHBvcnRzID0gbWF0MmQ7CisKKworLyoqKi8gfSwKKy8qIDQgKi8KKy8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisJLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisJb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKwlpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisJdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorCWNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworCWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKwlUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorCWFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCisJVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKwlJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKwlGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKwlBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisJTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKwlPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCisJVEhFIFNPRlRXQVJFLiAqLworCisJdmFyIGdsTWF0cml4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKKworCS8qKgorCSAqIEBjbGFzcyAzeDMgTWF0cml4CisJICogQG5hbWUgbWF0MworCSAqLworCXZhciBtYXQzID0ge307CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IG1hdDMKKwkgKgorCSAqIEByZXR1cm5zIHttYXQzfSBhIG5ldyAzeDMgbWF0cml4CisJICovCisJbWF0My5jcmVhdGUgPSBmdW5jdGlvbigpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDkpOworCSAgICBvdXRbMF0gPSAxOworCSAgICBvdXRbMV0gPSAwOworCSAgICBvdXRbMl0gPSAwOworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSAxOworCSAgICBvdXRbNV0gPSAwOworCSAgICBvdXRbNl0gPSAwOworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSAxOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDb3BpZXMgdGhlIHVwcGVyLWxlZnQgM3gzIHZhbHVlcyBpbnRvIHRoZSBnaXZlbiBtYXQzLgorCSAqCisJICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyAzeDMgbWF0cml4CisJICogQHBhcmFtIHttYXQ0fSBhICAgdGhlIHNvdXJjZSA0eDQgbWF0cml4CisJICogQHJldHVybnMge21hdDN9IG91dAorCSAqLworCW1hdDMuZnJvbU1hdDQgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgb3V0WzBdID0gYVswXTsKKwkgICAgb3V0WzFdID0gYVsxXTsKKwkgICAgb3V0WzJdID0gYVsyXTsKKwkgICAgb3V0WzNdID0gYVs0XTsKKwkgICAgb3V0WzRdID0gYVs1XTsKKwkgICAgb3V0WzVdID0gYVs2XTsKKwkgICAgb3V0WzZdID0gYVs4XTsKKwkgICAgb3V0WzddID0gYVs5XTsKKwkgICAgb3V0WzhdID0gYVsxMF07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBuZXcgbWF0MyBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIG1hdHJpeAorCSAqCisJICogQHBhcmFtIHttYXQzfSBhIG1hdHJpeCB0byBjbG9uZQorCSAqIEByZXR1cm5zIHttYXQzfSBhIG5ldyAzeDMgbWF0cml4CisJICovCisJbWF0My5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDkpOworCSAgICBvdXRbMF0gPSBhWzBdOworCSAgICBvdXRbMV0gPSBhWzFdOworCSAgICBvdXRbMl0gPSBhWzJdOworCSAgICBvdXRbM10gPSBhWzNdOworCSAgICBvdXRbNF0gPSBhWzRdOworCSAgICBvdXRbNV0gPSBhWzVdOworCSAgICBvdXRbNl0gPSBhWzZdOworCSAgICBvdXRbN10gPSBhWzddOworCSAgICBvdXRbOF0gPSBhWzhdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MyB0byBhbm90aGVyCisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQzfSBvdXQKKwkgKi8KKwltYXQzLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgb3V0WzBdID0gYVswXTsKKwkgICAgb3V0WzFdID0gYVsxXTsKKwkgICAgb3V0WzJdID0gYVsyXTsKKwkgICAgb3V0WzNdID0gYVszXTsKKwkgICAgb3V0WzRdID0gYVs0XTsKKwkgICAgb3V0WzVdID0gYVs1XTsKKwkgICAgb3V0WzZdID0gYVs2XTsKKwkgICAgb3V0WzddID0gYVs3XTsKKwkgICAgb3V0WzhdID0gYVs4XTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogU2V0IGEgbWF0MyB0byB0aGUgaWRlbnRpdHkgbWF0cml4CisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQzfSBvdXQKKwkgKi8KKwltYXQzLmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7CisJICAgIG91dFswXSA9IDE7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IDA7CisJICAgIG91dFs0XSA9IDE7CisJICAgIG91dFs1XSA9IDA7CisJICAgIG91dFs2XSA9IDA7CisJICAgIG91dFs3XSA9IDA7CisJICAgIG91dFs4XSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFRyYW5zcG9zZSB0aGUgdmFsdWVzIG9mIGEgbWF0MworCSAqCisJICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDN9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKwkgKiBAcmV0dXJucyB7bWF0M30gb3V0CisJICovCisJbWF0My50cmFuc3Bvc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgLy8gSWYgd2UgYXJlIHRyYW5zcG9zaW5nIG91cnNlbHZlcyB3ZSBjYW4gc2tpcCBhIGZldyBzdGVwcyBidXQgaGF2ZSB0byBjYWNoZSBzb21lIHZhbHVlcworCSAgICBpZiAob3V0ID09PSBhKSB7CisJICAgICAgICB2YXIgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTEyID0gYVs1XTsKKwkgICAgICAgIG91dFsxXSA9IGFbM107CisJICAgICAgICBvdXRbMl0gPSBhWzZdOworCSAgICAgICAgb3V0WzNdID0gYTAxOworCSAgICAgICAgb3V0WzVdID0gYVs3XTsKKwkgICAgICAgIG91dFs2XSA9IGEwMjsKKwkgICAgICAgIG91dFs3XSA9IGExMjsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIG91dFswXSA9IGFbMF07CisJICAgICAgICBvdXRbMV0gPSBhWzNdOworCSAgICAgICAgb3V0WzJdID0gYVs2XTsKKwkgICAgICAgIG91dFszXSA9IGFbMV07CisJICAgICAgICBvdXRbNF0gPSBhWzRdOworCSAgICAgICAgb3V0WzVdID0gYVs3XTsKKwkgICAgICAgIG91dFs2XSA9IGFbMl07CisJICAgICAgICBvdXRbN10gPSBhWzVdOworCSAgICAgICAgb3V0WzhdID0gYVs4XTsKKwkgICAgfQorCSAgICAKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogSW52ZXJ0cyBhIG1hdDMKKwkgKgorCSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQzfSBhIHRoZSBzb3VyY2UgbWF0cml4CisJICogQHJldHVybnMge21hdDN9IG91dAorCSAqLworCW1hdDMuaW52ZXJ0ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAorCSAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKKwkgICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF0sCisKKwkgICAgICAgIGIwMSA9IGEyMiAqIGExMSAtIGExMiAqIGEyMSwKKwkgICAgICAgIGIxMSA9IC1hMjIgKiBhMTAgKyBhMTIgKiBhMjAsCisJICAgICAgICBiMjEgPSBhMjEgKiBhMTAgLSBhMTEgKiBhMjAsCisKKwkgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKKwkgICAgICAgIGRldCA9IGEwMCAqIGIwMSArIGEwMSAqIGIxMSArIGEwMiAqIGIyMTsKKworCSAgICBpZiAoIWRldCkgeyAKKwkgICAgICAgIHJldHVybiBudWxsOyAKKwkgICAgfQorCSAgICBkZXQgPSAxLjAgLyBkZXQ7CisKKwkgICAgb3V0WzBdID0gYjAxICogZGV0OworCSAgICBvdXRbMV0gPSAoLWEyMiAqIGEwMSArIGEwMiAqIGEyMSkgKiBkZXQ7CisJICAgIG91dFsyXSA9IChhMTIgKiBhMDEgLSBhMDIgKiBhMTEpICogZGV0OworCSAgICBvdXRbM10gPSBiMTEgKiBkZXQ7CisJICAgIG91dFs0XSA9IChhMjIgKiBhMDAgLSBhMDIgKiBhMjApICogZGV0OworCSAgICBvdXRbNV0gPSAoLWExMiAqIGEwMCArIGEwMiAqIGExMCkgKiBkZXQ7CisJICAgIG91dFs2XSA9IGIyMSAqIGRldDsKKwkgICAgb3V0WzddID0gKC1hMjEgKiBhMDAgKyBhMDEgKiBhMjApICogZGV0OworCSAgICBvdXRbOF0gPSAoYTExICogYTAwIC0gYTAxICogYTEwKSAqIGRldDsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgYWRqdWdhdGUgb2YgYSBtYXQzCisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQzfSBvdXQKKwkgKi8KKwltYXQzLmFkam9pbnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCisJICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAorCSAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XTsKKworCSAgICBvdXRbMF0gPSAoYTExICogYTIyIC0gYTEyICogYTIxKTsKKwkgICAgb3V0WzFdID0gKGEwMiAqIGEyMSAtIGEwMSAqIGEyMik7CisJICAgIG91dFsyXSA9IChhMDEgKiBhMTIgLSBhMDIgKiBhMTEpOworCSAgICBvdXRbM10gPSAoYTEyICogYTIwIC0gYTEwICogYTIyKTsKKwkgICAgb3V0WzRdID0gKGEwMCAqIGEyMiAtIGEwMiAqIGEyMCk7CisJICAgIG91dFs1XSA9IChhMDIgKiBhMTAgLSBhMDAgKiBhMTIpOworCSAgICBvdXRbNl0gPSAoYTEwICogYTIxIC0gYTExICogYTIwKTsKKwkgICAgb3V0WzddID0gKGEwMSAqIGEyMCAtIGEwMCAqIGEyMSk7CisJICAgIG91dFs4XSA9IChhMDAgKiBhMTEgLSBhMDEgKiBhMTApOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBkZXRlcm1pbmFudCBvZiBhIG1hdDMKKwkgKgorCSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRldGVybWluYW50IG9mIGEKKwkgKi8KKwltYXQzLmRldGVybWluYW50ID0gZnVuY3Rpb24gKGEpIHsKKwkgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCisJICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAorCSAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XTsKKworCSAgICByZXR1cm4gYTAwICogKGEyMiAqIGExMSAtIGExMiAqIGEyMSkgKyBhMDEgKiAoLWEyMiAqIGExMCArIGExMiAqIGEyMCkgKyBhMDIgKiAoYTIxICogYTEwIC0gYTExICogYTIwKTsKKwl9OworCisJLyoqCisJICogTXVsdGlwbGllcyB0d28gbWF0MydzCisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7bWF0M30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7bWF0M30gb3V0CisJICovCisJbWF0My5tdWx0aXBseSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIpIHsKKwkgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCisJICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAorCSAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XSwKKworCSAgICAgICAgYjAwID0gYlswXSwgYjAxID0gYlsxXSwgYjAyID0gYlsyXSwKKwkgICAgICAgIGIxMCA9IGJbM10sIGIxMSA9IGJbNF0sIGIxMiA9IGJbNV0sCisJICAgICAgICBiMjAgPSBiWzZdLCBiMjEgPSBiWzddLCBiMjIgPSBiWzhdOworCisJICAgIG91dFswXSA9IGIwMCAqIGEwMCArIGIwMSAqIGExMCArIGIwMiAqIGEyMDsKKwkgICAgb3V0WzFdID0gYjAwICogYTAxICsgYjAxICogYTExICsgYjAyICogYTIxOworCSAgICBvdXRbMl0gPSBiMDAgKiBhMDIgKyBiMDEgKiBhMTIgKyBiMDIgKiBhMjI7CisKKwkgICAgb3V0WzNdID0gYjEwICogYTAwICsgYjExICogYTEwICsgYjEyICogYTIwOworCSAgICBvdXRbNF0gPSBiMTAgKiBhMDEgKyBiMTEgKiBhMTEgKyBiMTIgKiBhMjE7CisJICAgIG91dFs1XSA9IGIxMCAqIGEwMiArIGIxMSAqIGExMiArIGIxMiAqIGEyMjsKKworCSAgICBvdXRbNl0gPSBiMjAgKiBhMDAgKyBiMjEgKiBhMTAgKyBiMjIgKiBhMjA7CisJICAgIG91dFs3XSA9IGIyMCAqIGEwMSArIGIyMSAqIGExMSArIGIyMiAqIGEyMTsKKwkgICAgb3V0WzhdID0gYjIwICogYTAyICsgYjIxICogYTEyICsgYjIyICogYTIyOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIG1hdDMubXVsdGlwbHl9CisJICogQGZ1bmN0aW9uCisJICovCisJbWF0My5tdWwgPSBtYXQzLm11bHRpcGx5OworCisJLyoqCisJICogVHJhbnNsYXRlIGEgbWF0MyBieSB0aGUgZ2l2ZW4gdmVjdG9yCisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0M30gYSB0aGUgbWF0cml4IHRvIHRyYW5zbGF0ZQorCSAqIEBwYXJhbSB7dmVjMn0gdiB2ZWN0b3IgdG8gdHJhbnNsYXRlIGJ5CisJICogQHJldHVybnMge21hdDN9IG91dAorCSAqLworCW1hdDMudHJhbnNsYXRlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7CisJICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAorCSAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKKwkgICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF0sCisJICAgICAgICB4ID0gdlswXSwgeSA9IHZbMV07CisKKwkgICAgb3V0WzBdID0gYTAwOworCSAgICBvdXRbMV0gPSBhMDE7CisJICAgIG91dFsyXSA9IGEwMjsKKworCSAgICBvdXRbM10gPSBhMTA7CisJICAgIG91dFs0XSA9IGExMTsKKwkgICAgb3V0WzVdID0gYTEyOworCisJICAgIG91dFs2XSA9IHggKiBhMDAgKyB5ICogYTEwICsgYTIwOworCSAgICBvdXRbN10gPSB4ICogYTAxICsgeSAqIGExMSArIGEyMTsKKwkgICAgb3V0WzhdID0geCAqIGEwMiArIHkgKiBhMTIgKyBhMjI7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFJvdGF0ZXMgYSBtYXQzIGJ5IHRoZSBnaXZlbiBhbmdsZQorCSAqCisJICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDN9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKKwkgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorCSAqIEByZXR1cm5zIHttYXQzfSBvdXQKKwkgKi8KKwltYXQzLnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworCSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwKKwkgICAgICAgIGExMCA9IGFbM10sIGExMSA9IGFbNF0sIGExMiA9IGFbNV0sCisJICAgICAgICBhMjAgPSBhWzZdLCBhMjEgPSBhWzddLCBhMjIgPSBhWzhdLAorCisJICAgICAgICBzID0gTWF0aC5zaW4ocmFkKSwKKwkgICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpOworCisJICAgIG91dFswXSA9IGMgKiBhMDAgKyBzICogYTEwOworCSAgICBvdXRbMV0gPSBjICogYTAxICsgcyAqIGExMTsKKwkgICAgb3V0WzJdID0gYyAqIGEwMiArIHMgKiBhMTI7CisKKwkgICAgb3V0WzNdID0gYyAqIGExMCAtIHMgKiBhMDA7CisJICAgIG91dFs0XSA9IGMgKiBhMTEgLSBzICogYTAxOworCSAgICBvdXRbNV0gPSBjICogYTEyIC0gcyAqIGEwMjsKKworCSAgICBvdXRbNl0gPSBhMjA7CisJICAgIG91dFs3XSA9IGEyMTsKKwkgICAgb3V0WzhdID0gYTIyOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTY2FsZXMgdGhlIG1hdDMgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzIKKwkgKgorCSAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisJICogQHBhcmFtIHt2ZWMyfSB2IHRoZSB2ZWMyIHRvIHNjYWxlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0M30gb3V0CisJICoqLworCW1hdDMuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIHYpIHsKKwkgICAgdmFyIHggPSB2WzBdLCB5ID0gdlsxXTsKKworCSAgICBvdXRbMF0gPSB4ICogYVswXTsKKwkgICAgb3V0WzFdID0geCAqIGFbMV07CisJICAgIG91dFsyXSA9IHggKiBhWzJdOworCisJICAgIG91dFszXSA9IHkgKiBhWzNdOworCSAgICBvdXRbNF0gPSB5ICogYVs0XTsKKwkgICAgb3V0WzVdID0geSAqIGFbNV07CisKKwkgICAgb3V0WzZdID0gYVs2XTsKKwkgICAgb3V0WzddID0gYVs3XTsKKwkgICAgb3V0WzhdID0gYVs4XTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgdmVjdG9yIHRyYW5zbGF0aW9uCisJICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisJICoKKwkgKiAgICAgbWF0My5pZGVudGl0eShkZXN0KTsKKwkgKiAgICAgbWF0My50cmFuc2xhdGUoZGVzdCwgZGVzdCwgdmVjKTsKKwkgKgorCSAqIEBwYXJhbSB7bWF0M30gb3V0IG1hdDMgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKwkgKiBAcGFyYW0ge3ZlYzJ9IHYgVHJhbnNsYXRpb24gdmVjdG9yCisJICogQHJldHVybnMge21hdDN9IG91dAorCSAqLworCW1hdDMuZnJvbVRyYW5zbGF0aW9uID0gZnVuY3Rpb24ob3V0LCB2KSB7CisJICAgIG91dFswXSA9IDE7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IDA7CisJICAgIG91dFs0XSA9IDE7CisJICAgIG91dFs1XSA9IDA7CisJICAgIG91dFs2XSA9IHZbMF07CisJICAgIG91dFs3XSA9IHZbMV07CisJICAgIG91dFs4XSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfQorCisJLyoqCisJICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgZ2l2ZW4gYW5nbGUKKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQzLmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQzLnJvdGF0ZShkZXN0LCBkZXN0LCByYWQpOworCSAqCisJICogQHBhcmFtIHttYXQzfSBvdXQgbWF0MyByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisJICogQHJldHVybnMge21hdDN9IG91dAorCSAqLworCW1hdDMuZnJvbVJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKwkgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLCBjID0gTWF0aC5jb3MocmFkKTsKKworCSAgICBvdXRbMF0gPSBjOworCSAgICBvdXRbMV0gPSBzOworCSAgICBvdXRbMl0gPSAwOworCisJICAgIG91dFszXSA9IC1zOworCSAgICBvdXRbNF0gPSBjOworCSAgICBvdXRbNV0gPSAwOworCisJICAgIG91dFs2XSA9IDA7CisJICAgIG91dFs3XSA9IDA7CisJICAgIG91dFs4XSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfQorCisJLyoqCisJICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgdmVjdG9yIHNjYWxpbmcKKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQzLmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQzLnNjYWxlKGRlc3QsIGRlc3QsIHZlYyk7CisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG91dCBtYXQzIHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisJICogQHBhcmFtIHt2ZWMyfSB2IFNjYWxpbmcgdmVjdG9yCisJICogQHJldHVybnMge21hdDN9IG91dAorCSAqLworCW1hdDMuZnJvbVNjYWxpbmcgPSBmdW5jdGlvbihvdXQsIHYpIHsKKwkgICAgb3V0WzBdID0gdlswXTsKKwkgICAgb3V0WzFdID0gMDsKKwkgICAgb3V0WzJdID0gMDsKKworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSB2WzFdOworCSAgICBvdXRbNV0gPSAwOworCisJICAgIG91dFs2XSA9IDA7CisJICAgIG91dFs3XSA9IDA7CisJICAgIG91dFs4XSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfQorCisJLyoqCisJICogQ29waWVzIHRoZSB2YWx1ZXMgZnJvbSBhIG1hdDJkIGludG8gYSBtYXQzCisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIG1hdHJpeCB0byBjb3B5CisJICogQHJldHVybnMge21hdDN9IG91dAorCSAqKi8KKwltYXQzLmZyb21NYXQyZCA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICBvdXRbMF0gPSBhWzBdOworCSAgICBvdXRbMV0gPSBhWzFdOworCSAgICBvdXRbMl0gPSAwOworCisJICAgIG91dFszXSA9IGFbMl07CisJICAgIG91dFs0XSA9IGFbM107CisJICAgIG91dFs1XSA9IDA7CisKKwkgICAgb3V0WzZdID0gYVs0XTsKKwkgICAgb3V0WzddID0gYVs1XTsKKwkgICAgb3V0WzhdID0gMTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJKiBDYWxjdWxhdGVzIGEgM3gzIG1hdHJpeCBmcm9tIHRoZSBnaXZlbiBxdWF0ZXJuaW9uCisJKgorCSogQHBhcmFtIHttYXQzfSBvdXQgbWF0MyByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSogQHBhcmFtIHtxdWF0fSBxIFF1YXRlcm5pb24gdG8gY3JlYXRlIG1hdHJpeCBmcm9tCisJKgorCSogQHJldHVybnMge21hdDN9IG91dAorCSovCisJbWF0My5mcm9tUXVhdCA9IGZ1bmN0aW9uIChvdXQsIHEpIHsKKwkgICAgdmFyIHggPSBxWzBdLCB5ID0gcVsxXSwgeiA9IHFbMl0sIHcgPSBxWzNdLAorCSAgICAgICAgeDIgPSB4ICsgeCwKKwkgICAgICAgIHkyID0geSArIHksCisJICAgICAgICB6MiA9IHogKyB6LAorCisJICAgICAgICB4eCA9IHggKiB4MiwKKwkgICAgICAgIHl4ID0geSAqIHgyLAorCSAgICAgICAgeXkgPSB5ICogeTIsCisJICAgICAgICB6eCA9IHogKiB4MiwKKwkgICAgICAgIHp5ID0geiAqIHkyLAorCSAgICAgICAgenogPSB6ICogejIsCisJICAgICAgICB3eCA9IHcgKiB4MiwKKwkgICAgICAgIHd5ID0gdyAqIHkyLAorCSAgICAgICAgd3ogPSB3ICogejI7CisKKwkgICAgb3V0WzBdID0gMSAtIHl5IC0geno7CisJICAgIG91dFszXSA9IHl4IC0gd3o7CisJICAgIG91dFs2XSA9IHp4ICsgd3k7CisKKwkgICAgb3V0WzFdID0geXggKyB3ejsKKwkgICAgb3V0WzRdID0gMSAtIHh4IC0geno7CisJICAgIG91dFs3XSA9IHp5IC0gd3g7CisKKwkgICAgb3V0WzJdID0genggLSB3eTsKKwkgICAgb3V0WzVdID0genkgKyB3eDsKKwkgICAgb3V0WzhdID0gMSAtIHh4IC0geXk7CisKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJKiBDYWxjdWxhdGVzIGEgM3gzIG5vcm1hbCBtYXRyaXggKHRyYW5zcG9zZSBpbnZlcnNlKSBmcm9tIHRoZSA0eDQgbWF0cml4CisJKgorCSogQHBhcmFtIHttYXQzfSBvdXQgbWF0MyByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSogQHBhcmFtIHttYXQ0fSBhIE1hdDQgdG8gZGVyaXZlIHRoZSBub3JtYWwgbWF0cml4IGZyb20KKwkqCisJKiBAcmV0dXJucyB7bWF0M30gb3V0CisJKi8KKwltYXQzLm5vcm1hbEZyb21NYXQ0ID0gZnVuY3Rpb24gKG91dCwgYSkgeworCSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKKwkgICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCisJICAgICAgICBhMjAgPSBhWzhdLCBhMjEgPSBhWzldLCBhMjIgPSBhWzEwXSwgYTIzID0gYVsxMV0sCisJICAgICAgICBhMzAgPSBhWzEyXSwgYTMxID0gYVsxM10sIGEzMiA9IGFbMTRdLCBhMzMgPSBhWzE1XSwKKworCSAgICAgICAgYjAwID0gYTAwICogYTExIC0gYTAxICogYTEwLAorCSAgICAgICAgYjAxID0gYTAwICogYTEyIC0gYTAyICogYTEwLAorCSAgICAgICAgYjAyID0gYTAwICogYTEzIC0gYTAzICogYTEwLAorCSAgICAgICAgYjAzID0gYTAxICogYTEyIC0gYTAyICogYTExLAorCSAgICAgICAgYjA0ID0gYTAxICogYTEzIC0gYTAzICogYTExLAorCSAgICAgICAgYjA1ID0gYTAyICogYTEzIC0gYTAzICogYTEyLAorCSAgICAgICAgYjA2ID0gYTIwICogYTMxIC0gYTIxICogYTMwLAorCSAgICAgICAgYjA3ID0gYTIwICogYTMyIC0gYTIyICogYTMwLAorCSAgICAgICAgYjA4ID0gYTIwICogYTMzIC0gYTIzICogYTMwLAorCSAgICAgICAgYjA5ID0gYTIxICogYTMyIC0gYTIyICogYTMxLAorCSAgICAgICAgYjEwID0gYTIxICogYTMzIC0gYTIzICogYTMxLAorCSAgICAgICAgYjExID0gYTIyICogYTMzIC0gYTIzICogYTMyLAorCisJICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGRldGVybWluYW50CisJICAgICAgICBkZXQgPSBiMDAgKiBiMTEgLSBiMDEgKiBiMTAgKyBiMDIgKiBiMDkgKyBiMDMgKiBiMDggLSBiMDQgKiBiMDcgKyBiMDUgKiBiMDY7CisKKwkgICAgaWYgKCFkZXQpIHsgCisJICAgICAgICByZXR1cm4gbnVsbDsgCisJICAgIH0KKwkgICAgZGV0ID0gMS4wIC8gZGV0OworCisJICAgIG91dFswXSA9IChhMTEgKiBiMTEgLSBhMTIgKiBiMTAgKyBhMTMgKiBiMDkpICogZGV0OworCSAgICBvdXRbMV0gPSAoYTEyICogYjA4IC0gYTEwICogYjExIC0gYTEzICogYjA3KSAqIGRldDsKKwkgICAgb3V0WzJdID0gKGExMCAqIGIxMCAtIGExMSAqIGIwOCArIGExMyAqIGIwNikgKiBkZXQ7CisKKwkgICAgb3V0WzNdID0gKGEwMiAqIGIxMCAtIGEwMSAqIGIxMSAtIGEwMyAqIGIwOSkgKiBkZXQ7CisJICAgIG91dFs0XSA9IChhMDAgKiBiMTEgLSBhMDIgKiBiMDggKyBhMDMgKiBiMDcpICogZGV0OworCSAgICBvdXRbNV0gPSAoYTAxICogYjA4IC0gYTAwICogYjEwIC0gYTAzICogYjA2KSAqIGRldDsKKworCSAgICBvdXRbNl0gPSAoYTMxICogYjA1IC0gYTMyICogYjA0ICsgYTMzICogYjAzKSAqIGRldDsKKwkgICAgb3V0WzddID0gKGEzMiAqIGIwMiAtIGEzMCAqIGIwNSAtIGEzMyAqIGIwMSkgKiBkZXQ7CisJICAgIG91dFs4XSA9IChhMzAgKiBiMDQgLSBhMzEgKiBiMDIgKyBhMzMgKiBiMDApICogZGV0OworCisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBtYXQzCisJICoKKwkgKiBAcGFyYW0ge21hdDN9IG1hdCBtYXRyaXggdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCisJICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgKKwkgKi8KKwltYXQzLnN0ciA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHJldHVybiAnbWF0MygnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgCisJICAgICAgICAgICAgICAgICAgICBhWzNdICsgJywgJyArIGFbNF0gKyAnLCAnICsgYVs1XSArICcsICcgKyAKKwkgICAgICAgICAgICAgICAgICAgIGFbNl0gKyAnLCAnICsgYVs3XSArICcsICcgKyBhWzhdICsgJyknOworCX07CisKKwkvKioKKwkgKiBSZXR1cm5zIEZyb2Jlbml1cyBub3JtIG9mIGEgbWF0MworCSAqCisJICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gY2FsY3VsYXRlIEZyb2Jlbml1cyBub3JtIG9mCisJICogQHJldHVybnMge051bWJlcn0gRnJvYmVuaXVzIG5vcm0KKwkgKi8KKwltYXQzLmZyb2IgPSBmdW5jdGlvbiAoYSkgeworCSAgICByZXR1cm4oTWF0aC5zcXJ0KE1hdGgucG93KGFbMF0sIDIpICsgTWF0aC5wb3coYVsxXSwgMikgKyBNYXRoLnBvdyhhWzJdLCAyKSArIE1hdGgucG93KGFbM10sIDIpICsgTWF0aC5wb3coYVs0XSwgMikgKyBNYXRoLnBvdyhhWzVdLCAyKSArIE1hdGgucG93KGFbNl0sIDIpICsgTWF0aC5wb3coYVs3XSwgMikgKyBNYXRoLnBvdyhhWzhdLCAyKSkpCisJfTsKKworCisJbW9kdWxlLmV4cG9ydHMgPSBtYXQzOworCisKKy8qKiovIH0sCisvKiA1ICovCisvKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworCS8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorCW9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCisJaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworCXRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKKwljb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKwlmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisJVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKwlhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworCVRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisJSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisJRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisJQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorCUxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisJT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorCVRIRSBTT0ZUV0FSRS4gKi8KKworCXZhciBnbE1hdHJpeCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CisKKwkvKioKKwkgKiBAY2xhc3MgNHg0IE1hdHJpeAorCSAqIEBuYW1lIG1hdDQKKwkgKi8KKwl2YXIgbWF0NCA9IHt9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldyBpZGVudGl0eSBtYXQ0CisJICoKKwkgKiBAcmV0dXJucyB7bWF0NH0gYSBuZXcgNHg0IG1hdHJpeAorCSAqLworCW1hdDQuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisJICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSgxNik7CisJICAgIG91dFswXSA9IDE7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IDA7CisJICAgIG91dFs0XSA9IDA7CisJICAgIG91dFs1XSA9IDE7CisJICAgIG91dFs2XSA9IDA7CisJICAgIG91dFs3XSA9IDA7CisJICAgIG91dFs4XSA9IDA7CisJICAgIG91dFs5XSA9IDA7CisJICAgIG91dFsxMF0gPSAxOworCSAgICBvdXRbMTFdID0gMDsKKwkgICAgb3V0WzEyXSA9IDA7CisJICAgIG91dFsxM10gPSAwOworCSAgICBvdXRbMTRdID0gMDsKKwkgICAgb3V0WzE1XSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBuZXcgbWF0NCBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIG1hdHJpeAorCSAqCisJICogQHBhcmFtIHttYXQ0fSBhIG1hdHJpeCB0byBjbG9uZQorCSAqIEByZXR1cm5zIHttYXQ0fSBhIG5ldyA0eDQgbWF0cml4CisJICovCisJbWF0NC5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDE2KTsKKwkgICAgb3V0WzBdID0gYVswXTsKKwkgICAgb3V0WzFdID0gYVsxXTsKKwkgICAgb3V0WzJdID0gYVsyXTsKKwkgICAgb3V0WzNdID0gYVszXTsKKwkgICAgb3V0WzRdID0gYVs0XTsKKwkgICAgb3V0WzVdID0gYVs1XTsKKwkgICAgb3V0WzZdID0gYVs2XTsKKwkgICAgb3V0WzddID0gYVs3XTsKKwkgICAgb3V0WzhdID0gYVs4XTsKKwkgICAgb3V0WzldID0gYVs5XTsKKwkgICAgb3V0WzEwXSA9IGFbMTBdOworCSAgICBvdXRbMTFdID0gYVsxMV07CisJICAgIG91dFsxMl0gPSBhWzEyXTsKKwkgICAgb3V0WzEzXSA9IGFbMTNdOworCSAgICBvdXRbMTRdID0gYVsxNF07CisJICAgIG91dFsxNV0gPSBhWzE1XTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIG1hdDQgdG8gYW5vdGhlcgorCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIG91dFswXSA9IGFbMF07CisJICAgIG91dFsxXSA9IGFbMV07CisJICAgIG91dFsyXSA9IGFbMl07CisJICAgIG91dFszXSA9IGFbM107CisJICAgIG91dFs0XSA9IGFbNF07CisJICAgIG91dFs1XSA9IGFbNV07CisJICAgIG91dFs2XSA9IGFbNl07CisJICAgIG91dFs3XSA9IGFbN107CisJICAgIG91dFs4XSA9IGFbOF07CisJICAgIG91dFs5XSA9IGFbOV07CisJICAgIG91dFsxMF0gPSBhWzEwXTsKKwkgICAgb3V0WzExXSA9IGFbMTFdOworCSAgICBvdXRbMTJdID0gYVsxMl07CisJICAgIG91dFsxM10gPSBhWzEzXTsKKwkgICAgb3V0WzE0XSA9IGFbMTRdOworCSAgICBvdXRbMTVdID0gYVsxNV07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFNldCBhIG1hdDQgdG8gdGhlIGlkZW50aXR5IG1hdHJpeAorCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5pZGVudGl0eSA9IGZ1bmN0aW9uKG91dCkgeworCSAgICBvdXRbMF0gPSAxOworCSAgICBvdXRbMV0gPSAwOworCSAgICBvdXRbMl0gPSAwOworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSAwOworCSAgICBvdXRbNV0gPSAxOworCSAgICBvdXRbNl0gPSAwOworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSAwOworCSAgICBvdXRbOV0gPSAwOworCSAgICBvdXRbMTBdID0gMTsKKwkgICAgb3V0WzExXSA9IDA7CisJICAgIG91dFsxMl0gPSAwOworCSAgICBvdXRbMTNdID0gMDsKKwkgICAgb3V0WzE0XSA9IDA7CisJICAgIG91dFsxNV0gPSAxOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBUcmFuc3Bvc2UgdGhlIHZhbHVlcyBvZiBhIG1hdDQKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQ0fSBhIHRoZSBzb3VyY2UgbWF0cml4CisJICogQHJldHVybnMge21hdDR9IG91dAorCSAqLworCW1hdDQudHJhbnNwb3NlID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIC8vIElmIHdlIGFyZSB0cmFuc3Bvc2luZyBvdXJzZWx2ZXMgd2UgY2FuIHNraXAgYSBmZXcgc3RlcHMgYnV0IGhhdmUgdG8gY2FjaGUgc29tZSB2YWx1ZXMKKwkgICAgaWYgKG91dCA9PT0gYSkgeworCSAgICAgICAgdmFyIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sIGEwMyA9IGFbM10sCisJICAgICAgICAgICAgYTEyID0gYVs2XSwgYTEzID0gYVs3XSwKKwkgICAgICAgICAgICBhMjMgPSBhWzExXTsKKworCSAgICAgICAgb3V0WzFdID0gYVs0XTsKKwkgICAgICAgIG91dFsyXSA9IGFbOF07CisJICAgICAgICBvdXRbM10gPSBhWzEyXTsKKwkgICAgICAgIG91dFs0XSA9IGEwMTsKKwkgICAgICAgIG91dFs2XSA9IGFbOV07CisJICAgICAgICBvdXRbN10gPSBhWzEzXTsKKwkgICAgICAgIG91dFs4XSA9IGEwMjsKKwkgICAgICAgIG91dFs5XSA9IGExMjsKKwkgICAgICAgIG91dFsxMV0gPSBhWzE0XTsKKwkgICAgICAgIG91dFsxMl0gPSBhMDM7CisJICAgICAgICBvdXRbMTNdID0gYTEzOworCSAgICAgICAgb3V0WzE0XSA9IGEyMzsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIG91dFswXSA9IGFbMF07CisJICAgICAgICBvdXRbMV0gPSBhWzRdOworCSAgICAgICAgb3V0WzJdID0gYVs4XTsKKwkgICAgICAgIG91dFszXSA9IGFbMTJdOworCSAgICAgICAgb3V0WzRdID0gYVsxXTsKKwkgICAgICAgIG91dFs1XSA9IGFbNV07CisJICAgICAgICBvdXRbNl0gPSBhWzldOworCSAgICAgICAgb3V0WzddID0gYVsxM107CisJICAgICAgICBvdXRbOF0gPSBhWzJdOworCSAgICAgICAgb3V0WzldID0gYVs2XTsKKwkgICAgICAgIG91dFsxMF0gPSBhWzEwXTsKKwkgICAgICAgIG91dFsxMV0gPSBhWzE0XTsKKwkgICAgICAgIG91dFsxMl0gPSBhWzNdOworCSAgICAgICAgb3V0WzEzXSA9IGFbN107CisJICAgICAgICBvdXRbMTRdID0gYVsxMV07CisJICAgICAgICBvdXRbMTVdID0gYVsxNV07CisJICAgIH0KKwkgICAgCisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEludmVydHMgYSBtYXQ0CisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgc291cmNlIG1hdHJpeAorCSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKwkgKi8KKwltYXQ0LmludmVydCA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKKwkgICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCisJICAgICAgICBhMjAgPSBhWzhdLCBhMjEgPSBhWzldLCBhMjIgPSBhWzEwXSwgYTIzID0gYVsxMV0sCisJICAgICAgICBhMzAgPSBhWzEyXSwgYTMxID0gYVsxM10sIGEzMiA9IGFbMTRdLCBhMzMgPSBhWzE1XSwKKworCSAgICAgICAgYjAwID0gYTAwICogYTExIC0gYTAxICogYTEwLAorCSAgICAgICAgYjAxID0gYTAwICogYTEyIC0gYTAyICogYTEwLAorCSAgICAgICAgYjAyID0gYTAwICogYTEzIC0gYTAzICogYTEwLAorCSAgICAgICAgYjAzID0gYTAxICogYTEyIC0gYTAyICogYTExLAorCSAgICAgICAgYjA0ID0gYTAxICogYTEzIC0gYTAzICogYTExLAorCSAgICAgICAgYjA1ID0gYTAyICogYTEzIC0gYTAzICogYTEyLAorCSAgICAgICAgYjA2ID0gYTIwICogYTMxIC0gYTIxICogYTMwLAorCSAgICAgICAgYjA3ID0gYTIwICogYTMyIC0gYTIyICogYTMwLAorCSAgICAgICAgYjA4ID0gYTIwICogYTMzIC0gYTIzICogYTMwLAorCSAgICAgICAgYjA5ID0gYTIxICogYTMyIC0gYTIyICogYTMxLAorCSAgICAgICAgYjEwID0gYTIxICogYTMzIC0gYTIzICogYTMxLAorCSAgICAgICAgYjExID0gYTIyICogYTMzIC0gYTIzICogYTMyLAorCisJICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGRldGVybWluYW50CisJICAgICAgICBkZXQgPSBiMDAgKiBiMTEgLSBiMDEgKiBiMTAgKyBiMDIgKiBiMDkgKyBiMDMgKiBiMDggLSBiMDQgKiBiMDcgKyBiMDUgKiBiMDY7CisKKwkgICAgaWYgKCFkZXQpIHsgCisJICAgICAgICByZXR1cm4gbnVsbDsgCisJICAgIH0KKwkgICAgZGV0ID0gMS4wIC8gZGV0OworCisJICAgIG91dFswXSA9IChhMTEgKiBiMTEgLSBhMTIgKiBiMTAgKyBhMTMgKiBiMDkpICogZGV0OworCSAgICBvdXRbMV0gPSAoYTAyICogYjEwIC0gYTAxICogYjExIC0gYTAzICogYjA5KSAqIGRldDsKKwkgICAgb3V0WzJdID0gKGEzMSAqIGIwNSAtIGEzMiAqIGIwNCArIGEzMyAqIGIwMykgKiBkZXQ7CisJICAgIG91dFszXSA9IChhMjIgKiBiMDQgLSBhMjEgKiBiMDUgLSBhMjMgKiBiMDMpICogZGV0OworCSAgICBvdXRbNF0gPSAoYTEyICogYjA4IC0gYTEwICogYjExIC0gYTEzICogYjA3KSAqIGRldDsKKwkgICAgb3V0WzVdID0gKGEwMCAqIGIxMSAtIGEwMiAqIGIwOCArIGEwMyAqIGIwNykgKiBkZXQ7CisJICAgIG91dFs2XSA9IChhMzIgKiBiMDIgLSBhMzAgKiBiMDUgLSBhMzMgKiBiMDEpICogZGV0OworCSAgICBvdXRbN10gPSAoYTIwICogYjA1IC0gYTIyICogYjAyICsgYTIzICogYjAxKSAqIGRldDsKKwkgICAgb3V0WzhdID0gKGExMCAqIGIxMCAtIGExMSAqIGIwOCArIGExMyAqIGIwNikgKiBkZXQ7CisJICAgIG91dFs5XSA9IChhMDEgKiBiMDggLSBhMDAgKiBiMTAgLSBhMDMgKiBiMDYpICogZGV0OworCSAgICBvdXRbMTBdID0gKGEzMCAqIGIwNCAtIGEzMSAqIGIwMiArIGEzMyAqIGIwMCkgKiBkZXQ7CisJICAgIG91dFsxMV0gPSAoYTIxICogYjAyIC0gYTIwICogYjA0IC0gYTIzICogYjAwKSAqIGRldDsKKwkgICAgb3V0WzEyXSA9IChhMTEgKiBiMDcgLSBhMTAgKiBiMDkgLSBhMTIgKiBiMDYpICogZGV0OworCSAgICBvdXRbMTNdID0gKGEwMCAqIGIwOSAtIGEwMSAqIGIwNyArIGEwMiAqIGIwNikgKiBkZXQ7CisJICAgIG91dFsxNF0gPSAoYTMxICogYjAxIC0gYTMwICogYjAzIC0gYTMyICogYjAwKSAqIGRldDsKKwkgICAgb3V0WzE1XSA9IChhMjAgKiBiMDMgLSBhMjEgKiBiMDEgKyBhMjIgKiBiMDApICogZGV0OworCisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIGFkanVnYXRlIG9mIGEgbWF0NAorCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5hZGpvaW50ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMDMgPSBhWzNdLAorCSAgICAgICAgYTEwID0gYVs0XSwgYTExID0gYVs1XSwgYTEyID0gYVs2XSwgYTEzID0gYVs3XSwKKwkgICAgICAgIGEyMCA9IGFbOF0sIGEyMSA9IGFbOV0sIGEyMiA9IGFbMTBdLCBhMjMgPSBhWzExXSwKKwkgICAgICAgIGEzMCA9IGFbMTJdLCBhMzEgPSBhWzEzXSwgYTMyID0gYVsxNF0sIGEzMyA9IGFbMTVdOworCisJICAgIG91dFswXSAgPSAgKGExMSAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIxICogKGExMiAqIGEzMyAtIGExMyAqIGEzMikgKyBhMzEgKiAoYTEyICogYTIzIC0gYTEzICogYTIyKSk7CisJICAgIG91dFsxXSAgPSAtKGEwMSAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIxICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzEgKiAoYTAyICogYTIzIC0gYTAzICogYTIyKSk7CisJICAgIG91dFsyXSAgPSAgKGEwMSAqIChhMTIgKiBhMzMgLSBhMTMgKiBhMzIpIC0gYTExICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzEgKiAoYTAyICogYTEzIC0gYTAzICogYTEyKSk7CisJICAgIG91dFszXSAgPSAtKGEwMSAqIChhMTIgKiBhMjMgLSBhMTMgKiBhMjIpIC0gYTExICogKGEwMiAqIGEyMyAtIGEwMyAqIGEyMikgKyBhMjEgKiAoYTAyICogYTEzIC0gYTAzICogYTEyKSk7CisJICAgIG91dFs0XSAgPSAtKGExMCAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIwICogKGExMiAqIGEzMyAtIGExMyAqIGEzMikgKyBhMzAgKiAoYTEyICogYTIzIC0gYTEzICogYTIyKSk7CisJICAgIG91dFs1XSAgPSAgKGEwMCAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIwICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzAgKiAoYTAyICogYTIzIC0gYTAzICogYTIyKSk7CisJICAgIG91dFs2XSAgPSAtKGEwMCAqIChhMTIgKiBhMzMgLSBhMTMgKiBhMzIpIC0gYTEwICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzAgKiAoYTAyICogYTEzIC0gYTAzICogYTEyKSk7CisJICAgIG91dFs3XSAgPSAgKGEwMCAqIChhMTIgKiBhMjMgLSBhMTMgKiBhMjIpIC0gYTEwICogKGEwMiAqIGEyMyAtIGEwMyAqIGEyMikgKyBhMjAgKiAoYTAyICogYTEzIC0gYTAzICogYTEyKSk7CisJICAgIG91dFs4XSAgPSAgKGExMCAqIChhMjEgKiBhMzMgLSBhMjMgKiBhMzEpIC0gYTIwICogKGExMSAqIGEzMyAtIGExMyAqIGEzMSkgKyBhMzAgKiAoYTExICogYTIzIC0gYTEzICogYTIxKSk7CisJICAgIG91dFs5XSAgPSAtKGEwMCAqIChhMjEgKiBhMzMgLSBhMjMgKiBhMzEpIC0gYTIwICogKGEwMSAqIGEzMyAtIGEwMyAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTIzIC0gYTAzICogYTIxKSk7CisJICAgIG91dFsxMF0gPSAgKGEwMCAqIChhMTEgKiBhMzMgLSBhMTMgKiBhMzEpIC0gYTEwICogKGEwMSAqIGEzMyAtIGEwMyAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTEzIC0gYTAzICogYTExKSk7CisJICAgIG91dFsxMV0gPSAtKGEwMCAqIChhMTEgKiBhMjMgLSBhMTMgKiBhMjEpIC0gYTEwICogKGEwMSAqIGEyMyAtIGEwMyAqIGEyMSkgKyBhMjAgKiAoYTAxICogYTEzIC0gYTAzICogYTExKSk7CisJICAgIG91dFsxMl0gPSAtKGExMCAqIChhMjEgKiBhMzIgLSBhMjIgKiBhMzEpIC0gYTIwICogKGExMSAqIGEzMiAtIGExMiAqIGEzMSkgKyBhMzAgKiAoYTExICogYTIyIC0gYTEyICogYTIxKSk7CisJICAgIG91dFsxM10gPSAgKGEwMCAqIChhMjEgKiBhMzIgLSBhMjIgKiBhMzEpIC0gYTIwICogKGEwMSAqIGEzMiAtIGEwMiAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTIyIC0gYTAyICogYTIxKSk7CisJICAgIG91dFsxNF0gPSAtKGEwMCAqIChhMTEgKiBhMzIgLSBhMTIgKiBhMzEpIC0gYTEwICogKGEwMSAqIGEzMiAtIGEwMiAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTEyIC0gYTAyICogYTExKSk7CisJICAgIG91dFsxNV0gPSAgKGEwMCAqIChhMTEgKiBhMjIgLSBhMTIgKiBhMjEpIC0gYTEwICogKGEwMSAqIGEyMiAtIGEwMiAqIGEyMSkgKyBhMjAgKiAoYTAxICogYTEyIC0gYTAyICogYTExKSk7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIGRldGVybWluYW50IG9mIGEgbWF0NAorCSAqCisJICogQHBhcmFtIHttYXQ0fSBhIHRoZSBzb3VyY2UgbWF0cml4CisJICogQHJldHVybnMge051bWJlcn0gZGV0ZXJtaW5hbnQgb2YgYQorCSAqLworCW1hdDQuZGV0ZXJtaW5hbnQgPSBmdW5jdGlvbiAoYSkgeworCSAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKKwkgICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCisJICAgICAgICBhMjAgPSBhWzhdLCBhMjEgPSBhWzldLCBhMjIgPSBhWzEwXSwgYTIzID0gYVsxMV0sCisJICAgICAgICBhMzAgPSBhWzEyXSwgYTMxID0gYVsxM10sIGEzMiA9IGFbMTRdLCBhMzMgPSBhWzE1XSwKKworCSAgICAgICAgYjAwID0gYTAwICogYTExIC0gYTAxICogYTEwLAorCSAgICAgICAgYjAxID0gYTAwICogYTEyIC0gYTAyICogYTEwLAorCSAgICAgICAgYjAyID0gYTAwICogYTEzIC0gYTAzICogYTEwLAorCSAgICAgICAgYjAzID0gYTAxICogYTEyIC0gYTAyICogYTExLAorCSAgICAgICAgYjA0ID0gYTAxICogYTEzIC0gYTAzICogYTExLAorCSAgICAgICAgYjA1ID0gYTAyICogYTEzIC0gYTAzICogYTEyLAorCSAgICAgICAgYjA2ID0gYTIwICogYTMxIC0gYTIxICogYTMwLAorCSAgICAgICAgYjA3ID0gYTIwICogYTMyIC0gYTIyICogYTMwLAorCSAgICAgICAgYjA4ID0gYTIwICogYTMzIC0gYTIzICogYTMwLAorCSAgICAgICAgYjA5ID0gYTIxICogYTMyIC0gYTIyICogYTMxLAorCSAgICAgICAgYjEwID0gYTIxICogYTMzIC0gYTIzICogYTMxLAorCSAgICAgICAgYjExID0gYTIyICogYTMzIC0gYTIzICogYTMyOworCisJICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKKwkgICAgcmV0dXJuIGIwMCAqIGIxMSAtIGIwMSAqIGIxMCArIGIwMiAqIGIwOSArIGIwMyAqIGIwOCAtIGIwNCAqIGIwNyArIGIwNSAqIGIwNjsKKwl9OworCisJLyoqCisJICogTXVsdGlwbGllcyB0d28gbWF0NCdzCisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorCSAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7bWF0NH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5tdWx0aXBseSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIpIHsKKwkgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sIGEwMyA9IGFbM10sCisJICAgICAgICBhMTAgPSBhWzRdLCBhMTEgPSBhWzVdLCBhMTIgPSBhWzZdLCBhMTMgPSBhWzddLAorCSAgICAgICAgYTIwID0gYVs4XSwgYTIxID0gYVs5XSwgYTIyID0gYVsxMF0sIGEyMyA9IGFbMTFdLAorCSAgICAgICAgYTMwID0gYVsxMl0sIGEzMSA9IGFbMTNdLCBhMzIgPSBhWzE0XSwgYTMzID0gYVsxNV07CisKKwkgICAgLy8gQ2FjaGUgb25seSB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBzZWNvbmQgbWF0cml4CisJICAgIHZhciBiMCAgPSBiWzBdLCBiMSA9IGJbMV0sIGIyID0gYlsyXSwgYjMgPSBiWzNdOyAgCisJICAgIG91dFswXSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKKwkgICAgb3V0WzFdID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOworCSAgICBvdXRbMl0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7CisJICAgIG91dFszXSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKKworCSAgICBiMCA9IGJbNF07IGIxID0gYls1XTsgYjIgPSBiWzZdOyBiMyA9IGJbN107CisJICAgIG91dFs0XSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKKwkgICAgb3V0WzVdID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOworCSAgICBvdXRbNl0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7CisJICAgIG91dFs3XSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKKworCSAgICBiMCA9IGJbOF07IGIxID0gYls5XTsgYjIgPSBiWzEwXTsgYjMgPSBiWzExXTsKKwkgICAgb3V0WzhdID0gYjAqYTAwICsgYjEqYTEwICsgYjIqYTIwICsgYjMqYTMwOworCSAgICBvdXRbOV0gPSBiMCphMDEgKyBiMSphMTEgKyBiMiphMjEgKyBiMyphMzE7CisJICAgIG91dFsxMF0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7CisJICAgIG91dFsxMV0gPSBiMCphMDMgKyBiMSphMTMgKyBiMiphMjMgKyBiMyphMzM7CisKKwkgICAgYjAgPSBiWzEyXTsgYjEgPSBiWzEzXTsgYjIgPSBiWzE0XTsgYjMgPSBiWzE1XTsKKwkgICAgb3V0WzEyXSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKKwkgICAgb3V0WzEzXSA9IGIwKmEwMSArIGIxKmExMSArIGIyKmEyMSArIGIzKmEzMTsKKwkgICAgb3V0WzE0XSA9IGIwKmEwMiArIGIxKmExMiArIGIyKmEyMiArIGIzKmEzMjsKKwkgICAgb3V0WzE1XSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayBtYXQ0Lm11bHRpcGx5fQorCSAqIEBmdW5jdGlvbgorCSAqLworCW1hdDQubXVsID0gbWF0NC5tdWx0aXBseTsKKworCS8qKgorCSAqIFRyYW5zbGF0ZSBhIG1hdDQgYnkgdGhlIGdpdmVuIHZlY3RvcgorCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byB0cmFuc2xhdGUKKwkgKiBAcGFyYW0ge3ZlYzN9IHYgdmVjdG9yIHRvIHRyYW5zbGF0ZSBieQorCSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKwkgKi8KKwltYXQ0LnRyYW5zbGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHYpIHsKKwkgICAgdmFyIHggPSB2WzBdLCB5ID0gdlsxXSwgeiA9IHZbMl0sCisJICAgICAgICBhMDAsIGEwMSwgYTAyLCBhMDMsCisJICAgICAgICBhMTAsIGExMSwgYTEyLCBhMTMsCisJICAgICAgICBhMjAsIGEyMSwgYTIyLCBhMjM7CisKKwkgICAgaWYgKGEgPT09IG91dCkgeworCSAgICAgICAgb3V0WzEyXSA9IGFbMF0gKiB4ICsgYVs0XSAqIHkgKyBhWzhdICogeiArIGFbMTJdOworCSAgICAgICAgb3V0WzEzXSA9IGFbMV0gKiB4ICsgYVs1XSAqIHkgKyBhWzldICogeiArIGFbMTNdOworCSAgICAgICAgb3V0WzE0XSA9IGFbMl0gKiB4ICsgYVs2XSAqIHkgKyBhWzEwXSAqIHogKyBhWzE0XTsKKwkgICAgICAgIG91dFsxNV0gPSBhWzNdICogeCArIGFbN10gKiB5ICsgYVsxMV0gKiB6ICsgYVsxNV07CisJICAgIH0gZWxzZSB7CisJICAgICAgICBhMDAgPSBhWzBdOyBhMDEgPSBhWzFdOyBhMDIgPSBhWzJdOyBhMDMgPSBhWzNdOworCSAgICAgICAgYTEwID0gYVs0XTsgYTExID0gYVs1XTsgYTEyID0gYVs2XTsgYTEzID0gYVs3XTsKKwkgICAgICAgIGEyMCA9IGFbOF07IGEyMSA9IGFbOV07IGEyMiA9IGFbMTBdOyBhMjMgPSBhWzExXTsKKworCSAgICAgICAgb3V0WzBdID0gYTAwOyBvdXRbMV0gPSBhMDE7IG91dFsyXSA9IGEwMjsgb3V0WzNdID0gYTAzOworCSAgICAgICAgb3V0WzRdID0gYTEwOyBvdXRbNV0gPSBhMTE7IG91dFs2XSA9IGExMjsgb3V0WzddID0gYTEzOworCSAgICAgICAgb3V0WzhdID0gYTIwOyBvdXRbOV0gPSBhMjE7IG91dFsxMF0gPSBhMjI7IG91dFsxMV0gPSBhMjM7CisKKwkgICAgICAgIG91dFsxMl0gPSBhMDAgKiB4ICsgYTEwICogeSArIGEyMCAqIHogKyBhWzEyXTsKKwkgICAgICAgIG91dFsxM10gPSBhMDEgKiB4ICsgYTExICogeSArIGEyMSAqIHogKyBhWzEzXTsKKwkgICAgICAgIG91dFsxNF0gPSBhMDIgKiB4ICsgYTEyICogeSArIGEyMiAqIHogKyBhWzE0XTsKKwkgICAgICAgIG91dFsxNV0gPSBhMDMgKiB4ICsgYTEzICogeSArIGEyMyAqIHogKyBhWzE1XTsKKwkgICAgfQorCisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFNjYWxlcyB0aGUgbWF0NCBieSB0aGUgZGltZW5zaW9ucyBpbiB0aGUgZ2l2ZW4gdmVjMworCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKwkgKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byBzY2FsZQorCSAqIEBwYXJhbSB7dmVjM30gdiB0aGUgdmVjMyB0byBzY2FsZSB0aGUgbWF0cml4IGJ5CisJICogQHJldHVybnMge21hdDR9IG91dAorCSAqKi8KKwltYXQ0LnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7CisJICAgIHZhciB4ID0gdlswXSwgeSA9IHZbMV0sIHogPSB2WzJdOworCisJICAgIG91dFswXSA9IGFbMF0gKiB4OworCSAgICBvdXRbMV0gPSBhWzFdICogeDsKKwkgICAgb3V0WzJdID0gYVsyXSAqIHg7CisJICAgIG91dFszXSA9IGFbM10gKiB4OworCSAgICBvdXRbNF0gPSBhWzRdICogeTsKKwkgICAgb3V0WzVdID0gYVs1XSAqIHk7CisJICAgIG91dFs2XSA9IGFbNl0gKiB5OworCSAgICBvdXRbN10gPSBhWzddICogeTsKKwkgICAgb3V0WzhdID0gYVs4XSAqIHo7CisJICAgIG91dFs5XSA9IGFbOV0gKiB6OworCSAgICBvdXRbMTBdID0gYVsxMF0gKiB6OworCSAgICBvdXRbMTFdID0gYVsxMV0gKiB6OworCSAgICBvdXRbMTJdID0gYVsxMl07CisJICAgIG91dFsxM10gPSBhWzEzXTsKKwkgICAgb3V0WzE0XSA9IGFbMTRdOworCSAgICBvdXRbMTVdID0gYVsxNV07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFJvdGF0ZXMgYSBtYXQ0IGJ5IHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIGdpdmVuIGF4aXMKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisJICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKwkgKiBAcGFyYW0ge3ZlYzN9IGF4aXMgdGhlIGF4aXMgdG8gcm90YXRlIGFyb3VuZAorCSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKwkgKi8KKwltYXQ0LnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCwgYXhpcykgeworCSAgICB2YXIgeCA9IGF4aXNbMF0sIHkgPSBheGlzWzFdLCB6ID0gYXhpc1syXSwKKwkgICAgICAgIGxlbiA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5ICsgeiAqIHopLAorCSAgICAgICAgcywgYywgdCwKKwkgICAgICAgIGEwMCwgYTAxLCBhMDIsIGEwMywKKwkgICAgICAgIGExMCwgYTExLCBhMTIsIGExMywKKwkgICAgICAgIGEyMCwgYTIxLCBhMjIsIGEyMywKKwkgICAgICAgIGIwMCwgYjAxLCBiMDIsCisJICAgICAgICBiMTAsIGIxMSwgYjEyLAorCSAgICAgICAgYjIwLCBiMjEsIGIyMjsKKworCSAgICBpZiAoTWF0aC5hYnMobGVuKSA8IGdsTWF0cml4LkVQU0lMT04pIHsgcmV0dXJuIG51bGw7IH0KKwkgICAgCisJICAgIGxlbiA9IDEgLyBsZW47CisJICAgIHggKj0gbGVuOworCSAgICB5ICo9IGxlbjsKKwkgICAgeiAqPSBsZW47CisKKwkgICAgcyA9IE1hdGguc2luKHJhZCk7CisJICAgIGMgPSBNYXRoLmNvcyhyYWQpOworCSAgICB0ID0gMSAtIGM7CisKKwkgICAgYTAwID0gYVswXTsgYTAxID0gYVsxXTsgYTAyID0gYVsyXTsgYTAzID0gYVszXTsKKwkgICAgYTEwID0gYVs0XTsgYTExID0gYVs1XTsgYTEyID0gYVs2XTsgYTEzID0gYVs3XTsKKwkgICAgYTIwID0gYVs4XTsgYTIxID0gYVs5XTsgYTIyID0gYVsxMF07IGEyMyA9IGFbMTFdOworCisJICAgIC8vIENvbnN0cnVjdCB0aGUgZWxlbWVudHMgb2YgdGhlIHJvdGF0aW9uIG1hdHJpeAorCSAgICBiMDAgPSB4ICogeCAqIHQgKyBjOyBiMDEgPSB5ICogeCAqIHQgKyB6ICogczsgYjAyID0geiAqIHggKiB0IC0geSAqIHM7CisJICAgIGIxMCA9IHggKiB5ICogdCAtIHogKiBzOyBiMTEgPSB5ICogeSAqIHQgKyBjOyBiMTIgPSB6ICogeSAqIHQgKyB4ICogczsKKwkgICAgYjIwID0geCAqIHogKiB0ICsgeSAqIHM7IGIyMSA9IHkgKiB6ICogdCAtIHggKiBzOyBiMjIgPSB6ICogeiAqIHQgKyBjOworCisJICAgIC8vIFBlcmZvcm0gcm90YXRpb24tc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisJICAgIG91dFswXSA9IGEwMCAqIGIwMCArIGExMCAqIGIwMSArIGEyMCAqIGIwMjsKKwkgICAgb3V0WzFdID0gYTAxICogYjAwICsgYTExICogYjAxICsgYTIxICogYjAyOworCSAgICBvdXRbMl0gPSBhMDIgKiBiMDAgKyBhMTIgKiBiMDEgKyBhMjIgKiBiMDI7CisJICAgIG91dFszXSA9IGEwMyAqIGIwMCArIGExMyAqIGIwMSArIGEyMyAqIGIwMjsKKwkgICAgb3V0WzRdID0gYTAwICogYjEwICsgYTEwICogYjExICsgYTIwICogYjEyOworCSAgICBvdXRbNV0gPSBhMDEgKiBiMTAgKyBhMTEgKiBiMTEgKyBhMjEgKiBiMTI7CisJICAgIG91dFs2XSA9IGEwMiAqIGIxMCArIGExMiAqIGIxMSArIGEyMiAqIGIxMjsKKwkgICAgb3V0WzddID0gYTAzICogYjEwICsgYTEzICogYjExICsgYTIzICogYjEyOworCSAgICBvdXRbOF0gPSBhMDAgKiBiMjAgKyBhMTAgKiBiMjEgKyBhMjAgKiBiMjI7CisJICAgIG91dFs5XSA9IGEwMSAqIGIyMCArIGExMSAqIGIyMSArIGEyMSAqIGIyMjsKKwkgICAgb3V0WzEwXSA9IGEwMiAqIGIyMCArIGExMiAqIGIyMSArIGEyMiAqIGIyMjsKKwkgICAgb3V0WzExXSA9IGEwMyAqIGIyMCArIGExMyAqIGIyMSArIGEyMyAqIGIyMjsKKworCSAgICBpZiAoYSAhPT0gb3V0KSB7IC8vIElmIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRpZmZlciwgY29weSB0aGUgdW5jaGFuZ2VkIGxhc3Qgcm93CisJICAgICAgICBvdXRbMTJdID0gYVsxMl07CisJICAgICAgICBvdXRbMTNdID0gYVsxM107CisJICAgICAgICBvdXRbMTRdID0gYVsxNF07CisJICAgICAgICBvdXRbMTVdID0gYVsxNV07CisJICAgIH0KKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUm90YXRlcyBhIG1hdHJpeCBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBYIGF4aXMKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisJICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5yb3RhdGVYID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7CisJICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKSwKKwkgICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpLAorCSAgICAgICAgYTEwID0gYVs0XSwKKwkgICAgICAgIGExMSA9IGFbNV0sCisJICAgICAgICBhMTIgPSBhWzZdLAorCSAgICAgICAgYTEzID0gYVs3XSwKKwkgICAgICAgIGEyMCA9IGFbOF0sCisJICAgICAgICBhMjEgPSBhWzldLAorCSAgICAgICAgYTIyID0gYVsxMF0sCisJICAgICAgICBhMjMgPSBhWzExXTsKKworCSAgICBpZiAoYSAhPT0gb3V0KSB7IC8vIElmIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRpZmZlciwgY29weSB0aGUgdW5jaGFuZ2VkIHJvd3MKKwkgICAgICAgIG91dFswXSAgPSBhWzBdOworCSAgICAgICAgb3V0WzFdICA9IGFbMV07CisJICAgICAgICBvdXRbMl0gID0gYVsyXTsKKwkgICAgICAgIG91dFszXSAgPSBhWzNdOworCSAgICAgICAgb3V0WzEyXSA9IGFbMTJdOworCSAgICAgICAgb3V0WzEzXSA9IGFbMTNdOworCSAgICAgICAgb3V0WzE0XSA9IGFbMTRdOworCSAgICAgICAgb3V0WzE1XSA9IGFbMTVdOworCSAgICB9CisKKwkgICAgLy8gUGVyZm9ybSBheGlzLXNwZWNpZmljIG1hdHJpeCBtdWx0aXBsaWNhdGlvbgorCSAgICBvdXRbNF0gPSBhMTAgKiBjICsgYTIwICogczsKKwkgICAgb3V0WzVdID0gYTExICogYyArIGEyMSAqIHM7CisJICAgIG91dFs2XSA9IGExMiAqIGMgKyBhMjIgKiBzOworCSAgICBvdXRbN10gPSBhMTMgKiBjICsgYTIzICogczsKKwkgICAgb3V0WzhdID0gYTIwICogYyAtIGExMCAqIHM7CisJICAgIG91dFs5XSA9IGEyMSAqIGMgLSBhMTEgKiBzOworCSAgICBvdXRbMTBdID0gYTIyICogYyAtIGExMiAqIHM7CisJICAgIG91dFsxMV0gPSBhMjMgKiBjIC0gYTEzICogczsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUm90YXRlcyBhIG1hdHJpeCBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBZIGF4aXMKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisJICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5yb3RhdGVZID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7CisJICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKSwKKwkgICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpLAorCSAgICAgICAgYTAwID0gYVswXSwKKwkgICAgICAgIGEwMSA9IGFbMV0sCisJICAgICAgICBhMDIgPSBhWzJdLAorCSAgICAgICAgYTAzID0gYVszXSwKKwkgICAgICAgIGEyMCA9IGFbOF0sCisJICAgICAgICBhMjEgPSBhWzldLAorCSAgICAgICAgYTIyID0gYVsxMF0sCisJICAgICAgICBhMjMgPSBhWzExXTsKKworCSAgICBpZiAoYSAhPT0gb3V0KSB7IC8vIElmIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRpZmZlciwgY29weSB0aGUgdW5jaGFuZ2VkIHJvd3MKKwkgICAgICAgIG91dFs0XSAgPSBhWzRdOworCSAgICAgICAgb3V0WzVdICA9IGFbNV07CisJICAgICAgICBvdXRbNl0gID0gYVs2XTsKKwkgICAgICAgIG91dFs3XSAgPSBhWzddOworCSAgICAgICAgb3V0WzEyXSA9IGFbMTJdOworCSAgICAgICAgb3V0WzEzXSA9IGFbMTNdOworCSAgICAgICAgb3V0WzE0XSA9IGFbMTRdOworCSAgICAgICAgb3V0WzE1XSA9IGFbMTVdOworCSAgICB9CisKKwkgICAgLy8gUGVyZm9ybSBheGlzLXNwZWNpZmljIG1hdHJpeCBtdWx0aXBsaWNhdGlvbgorCSAgICBvdXRbMF0gPSBhMDAgKiBjIC0gYTIwICogczsKKwkgICAgb3V0WzFdID0gYTAxICogYyAtIGEyMSAqIHM7CisJICAgIG91dFsyXSA9IGEwMiAqIGMgLSBhMjIgKiBzOworCSAgICBvdXRbM10gPSBhMDMgKiBjIC0gYTIzICogczsKKwkgICAgb3V0WzhdID0gYTAwICogcyArIGEyMCAqIGM7CisJICAgIG91dFs5XSA9IGEwMSAqIHMgKyBhMjEgKiBjOworCSAgICBvdXRbMTBdID0gYTAyICogcyArIGEyMiAqIGM7CisJICAgIG91dFsxMV0gPSBhMDMgKiBzICsgYTIzICogYzsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUm90YXRlcyBhIG1hdHJpeCBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBaIGF4aXMKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisJICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisJICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5yb3RhdGVaID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7CisJICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKSwKKwkgICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpLAorCSAgICAgICAgYTAwID0gYVswXSwKKwkgICAgICAgIGEwMSA9IGFbMV0sCisJICAgICAgICBhMDIgPSBhWzJdLAorCSAgICAgICAgYTAzID0gYVszXSwKKwkgICAgICAgIGExMCA9IGFbNF0sCisJICAgICAgICBhMTEgPSBhWzVdLAorCSAgICAgICAgYTEyID0gYVs2XSwKKwkgICAgICAgIGExMyA9IGFbN107CisKKwkgICAgaWYgKGEgIT09IG91dCkgeyAvLyBJZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBkaWZmZXIsIGNvcHkgdGhlIHVuY2hhbmdlZCBsYXN0IHJvdworCSAgICAgICAgb3V0WzhdICA9IGFbOF07CisJICAgICAgICBvdXRbOV0gID0gYVs5XTsKKwkgICAgICAgIG91dFsxMF0gPSBhWzEwXTsKKwkgICAgICAgIG91dFsxMV0gPSBhWzExXTsKKwkgICAgICAgIG91dFsxMl0gPSBhWzEyXTsKKwkgICAgICAgIG91dFsxM10gPSBhWzEzXTsKKwkgICAgICAgIG91dFsxNF0gPSBhWzE0XTsKKwkgICAgICAgIG91dFsxNV0gPSBhWzE1XTsKKwkgICAgfQorCisJICAgIC8vIFBlcmZvcm0gYXhpcy1zcGVjaWZpYyBtYXRyaXggbXVsdGlwbGljYXRpb24KKwkgICAgb3V0WzBdID0gYTAwICogYyArIGExMCAqIHM7CisJICAgIG91dFsxXSA9IGEwMSAqIGMgKyBhMTEgKiBzOworCSAgICBvdXRbMl0gPSBhMDIgKiBjICsgYTEyICogczsKKwkgICAgb3V0WzNdID0gYTAzICogYyArIGExMyAqIHM7CisJICAgIG91dFs0XSA9IGExMCAqIGMgLSBhMDAgKiBzOworCSAgICBvdXRbNV0gPSBhMTEgKiBjIC0gYTAxICogczsKKwkgICAgb3V0WzZdID0gYTEyICogYyAtIGEwMiAqIHM7CisJICAgIG91dFs3XSA9IGExMyAqIGMgLSBhMDMgKiBzOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSB2ZWN0b3IgdHJhbnNsYXRpb24KKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCBkZXN0LCB2ZWMpOworCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7dmVjM30gdiBUcmFuc2xhdGlvbiB2ZWN0b3IKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcm9tVHJhbnNsYXRpb24gPSBmdW5jdGlvbihvdXQsIHYpIHsKKwkgICAgb3V0WzBdID0gMTsKKwkgICAgb3V0WzFdID0gMDsKKwkgICAgb3V0WzJdID0gMDsKKwkgICAgb3V0WzNdID0gMDsKKwkgICAgb3V0WzRdID0gMDsKKwkgICAgb3V0WzVdID0gMTsKKwkgICAgb3V0WzZdID0gMDsKKwkgICAgb3V0WzddID0gMDsKKwkgICAgb3V0WzhdID0gMDsKKwkgICAgb3V0WzldID0gMDsKKwkgICAgb3V0WzEwXSA9IDE7CisJICAgIG91dFsxMV0gPSAwOworCSAgICBvdXRbMTJdID0gdlswXTsKKwkgICAgb3V0WzEzXSA9IHZbMV07CisJICAgIG91dFsxNF0gPSB2WzJdOworCSAgICBvdXRbMTVdID0gMTsKKwkgICAgcmV0dXJuIG91dDsKKwl9CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSB2ZWN0b3Igc2NhbGluZworCSAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byAoYnV0IG11Y2ggZmFzdGVyIHRoYW4pOgorCSAqCisJICogICAgIG1hdDQuaWRlbnRpdHkoZGVzdCk7CisJICogICAgIG1hdDQuc2NhbGUoZGVzdCwgZGVzdCwgdmVjKTsKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKwkgKiBAcGFyYW0ge3ZlYzN9IHYgU2NhbGluZyB2ZWN0b3IKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcm9tU2NhbGluZyA9IGZ1bmN0aW9uKG91dCwgdikgeworCSAgICBvdXRbMF0gPSB2WzBdOworCSAgICBvdXRbMV0gPSAwOworCSAgICBvdXRbMl0gPSAwOworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSAwOworCSAgICBvdXRbNV0gPSB2WzFdOworCSAgICBvdXRbNl0gPSAwOworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSAwOworCSAgICBvdXRbOV0gPSAwOworCSAgICBvdXRbMTBdID0gdlsyXTsKKwkgICAgb3V0WzExXSA9IDA7CisJICAgIG91dFsxMl0gPSAwOworCSAgICBvdXRbMTNdID0gMDsKKwkgICAgb3V0WzE0XSA9IDA7CisJICAgIG91dFsxNV0gPSAxOworCSAgICByZXR1cm4gb3V0OworCX0KKworCS8qKgorCSAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIGdpdmVuIGFuZ2xlIGFyb3VuZCBhIGdpdmVuIGF4aXMKKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQ0LnJvdGF0ZShkZXN0LCBkZXN0LCByYWQsIGF4aXMpOworCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisJICogQHBhcmFtIHt2ZWMzfSBheGlzIHRoZSBheGlzIHRvIHJvdGF0ZSBhcm91bmQKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcm9tUm90YXRpb24gPSBmdW5jdGlvbihvdXQsIHJhZCwgYXhpcykgeworCSAgICB2YXIgeCA9IGF4aXNbMF0sIHkgPSBheGlzWzFdLCB6ID0gYXhpc1syXSwKKwkgICAgICAgIGxlbiA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5ICsgeiAqIHopLAorCSAgICAgICAgcywgYywgdDsKKwkgICAgCisJICAgIGlmIChNYXRoLmFicyhsZW4pIDwgZ2xNYXRyaXguRVBTSUxPTikgeyByZXR1cm4gbnVsbDsgfQorCSAgICAKKwkgICAgbGVuID0gMSAvIGxlbjsKKwkgICAgeCAqPSBsZW47CisJICAgIHkgKj0gbGVuOworCSAgICB6ICo9IGxlbjsKKwkgICAgCisJICAgIHMgPSBNYXRoLnNpbihyYWQpOworCSAgICBjID0gTWF0aC5jb3MocmFkKTsKKwkgICAgdCA9IDEgLSBjOworCSAgICAKKwkgICAgLy8gUGVyZm9ybSByb3RhdGlvbi1zcGVjaWZpYyBtYXRyaXggbXVsdGlwbGljYXRpb24KKwkgICAgb3V0WzBdID0geCAqIHggKiB0ICsgYzsKKwkgICAgb3V0WzFdID0geSAqIHggKiB0ICsgeiAqIHM7CisJICAgIG91dFsyXSA9IHogKiB4ICogdCAtIHkgKiBzOworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSB4ICogeSAqIHQgLSB6ICogczsKKwkgICAgb3V0WzVdID0geSAqIHkgKiB0ICsgYzsKKwkgICAgb3V0WzZdID0geiAqIHkgKiB0ICsgeCAqIHM7CisJICAgIG91dFs3XSA9IDA7CisJICAgIG91dFs4XSA9IHggKiB6ICogdCArIHkgKiBzOworCSAgICBvdXRbOV0gPSB5ICogeiAqIHQgLSB4ICogczsKKwkgICAgb3V0WzEwXSA9IHogKiB6ICogdCArIGM7CisJICAgIG91dFsxMV0gPSAwOworCSAgICBvdXRbMTJdID0gMDsKKwkgICAgb3V0WzEzXSA9IDA7CisJICAgIG91dFsxNF0gPSAwOworCSAgICBvdXRbMTVdID0gMTsKKwkgICAgcmV0dXJuIG91dDsKKwl9CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWCBheGlzCisJICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisJICoKKwkgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKwkgKiAgICAgbWF0NC5yb3RhdGVYKGRlc3QsIGRlc3QsIHJhZCk7CisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisJICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcm9tWFJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKwkgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAorCSAgICAgICAgYyA9IE1hdGguY29zKHJhZCk7CisJICAgIAorCSAgICAvLyBQZXJmb3JtIGF4aXMtc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisJICAgIG91dFswXSAgPSAxOworCSAgICBvdXRbMV0gID0gMDsKKwkgICAgb3V0WzJdICA9IDA7CisJICAgIG91dFszXSAgPSAwOworCSAgICBvdXRbNF0gPSAwOworCSAgICBvdXRbNV0gPSBjOworCSAgICBvdXRbNl0gPSBzOworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSAwOworCSAgICBvdXRbOV0gPSAtczsKKwkgICAgb3V0WzEwXSA9IGM7CisJICAgIG91dFsxMV0gPSAwOworCSAgICBvdXRbMTJdID0gMDsKKwkgICAgb3V0WzEzXSA9IDA7CisJICAgIG91dFsxNF0gPSAwOworCSAgICBvdXRbMTVdID0gMTsKKwkgICAgcmV0dXJuIG91dDsKKwl9CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWSBheGlzCisJICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisJICoKKwkgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKwkgKiAgICAgbWF0NC5yb3RhdGVZKGRlc3QsIGRlc3QsIHJhZCk7CisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisJICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcm9tWVJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKwkgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAorCSAgICAgICAgYyA9IE1hdGguY29zKHJhZCk7CisJICAgIAorCSAgICAvLyBQZXJmb3JtIGF4aXMtc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisJICAgIG91dFswXSAgPSBjOworCSAgICBvdXRbMV0gID0gMDsKKwkgICAgb3V0WzJdICA9IC1zOworCSAgICBvdXRbM10gID0gMDsKKwkgICAgb3V0WzRdID0gMDsKKwkgICAgb3V0WzVdID0gMTsKKwkgICAgb3V0WzZdID0gMDsKKwkgICAgb3V0WzddID0gMDsKKwkgICAgb3V0WzhdID0gczsKKwkgICAgb3V0WzldID0gMDsKKwkgICAgb3V0WzEwXSA9IGM7CisJICAgIG91dFsxMV0gPSAwOworCSAgICBvdXRbMTJdID0gMDsKKwkgICAgb3V0WzEzXSA9IDA7CisJICAgIG91dFsxNF0gPSAwOworCSAgICBvdXRbMTVdID0gMTsKKwkgICAgcmV0dXJuIG91dDsKKwl9CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWiBheGlzCisJICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisJICoKKwkgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKwkgKiAgICAgbWF0NC5yb3RhdGVaKGRlc3QsIGRlc3QsIHJhZCk7CisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisJICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcm9tWlJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKwkgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAorCSAgICAgICAgYyA9IE1hdGguY29zKHJhZCk7CisJICAgIAorCSAgICAvLyBQZXJmb3JtIGF4aXMtc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisJICAgIG91dFswXSAgPSBjOworCSAgICBvdXRbMV0gID0gczsKKwkgICAgb3V0WzJdICA9IDA7CisJICAgIG91dFszXSAgPSAwOworCSAgICBvdXRbNF0gPSAtczsKKwkgICAgb3V0WzVdID0gYzsKKwkgICAgb3V0WzZdID0gMDsKKwkgICAgb3V0WzddID0gMDsKKwkgICAgb3V0WzhdID0gMDsKKwkgICAgb3V0WzldID0gMDsKKwkgICAgb3V0WzEwXSA9IDE7CisJICAgIG91dFsxMV0gPSAwOworCSAgICBvdXRbMTJdID0gMDsKKwkgICAgb3V0WzEzXSA9IDA7CisJICAgIG91dFsxNF0gPSAwOworCSAgICBvdXRbMTVdID0gMTsKKwkgICAgcmV0dXJuIG91dDsKKwl9CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSBxdWF0ZXJuaW9uIHJvdGF0aW9uIGFuZCB2ZWN0b3IgdHJhbnNsYXRpb24KKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCB2ZWMpOworCSAqICAgICB2YXIgcXVhdE1hdCA9IG1hdDQuY3JlYXRlKCk7CisJICogICAgIHF1YXQ0LnRvTWF0NChxdWF0LCBxdWF0TWF0KTsKKwkgKiAgICAgbWF0NC5tdWx0aXBseShkZXN0LCBxdWF0TWF0KTsKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKwkgKiBAcGFyYW0ge3F1YXQ0fSBxIFJvdGF0aW9uIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge3ZlYzN9IHYgVHJhbnNsYXRpb24gdmVjdG9yCisJICogQHJldHVybnMge21hdDR9IG91dAorCSAqLworCW1hdDQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24gPSBmdW5jdGlvbiAob3V0LCBxLCB2KSB7CisJICAgIC8vIFF1YXRlcm5pb24gbWF0aAorCSAgICB2YXIgeCA9IHFbMF0sIHkgPSBxWzFdLCB6ID0gcVsyXSwgdyA9IHFbM10sCisJICAgICAgICB4MiA9IHggKyB4LAorCSAgICAgICAgeTIgPSB5ICsgeSwKKwkgICAgICAgIHoyID0geiArIHosCisKKwkgICAgICAgIHh4ID0geCAqIHgyLAorCSAgICAgICAgeHkgPSB4ICogeTIsCisJICAgICAgICB4eiA9IHggKiB6MiwKKwkgICAgICAgIHl5ID0geSAqIHkyLAorCSAgICAgICAgeXogPSB5ICogejIsCisJICAgICAgICB6eiA9IHogKiB6MiwKKwkgICAgICAgIHd4ID0gdyAqIHgyLAorCSAgICAgICAgd3kgPSB3ICogeTIsCisJICAgICAgICB3eiA9IHcgKiB6MjsKKworCSAgICBvdXRbMF0gPSAxIC0gKHl5ICsgenopOworCSAgICBvdXRbMV0gPSB4eSArIHd6OworCSAgICBvdXRbMl0gPSB4eiAtIHd5OworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSB4eSAtIHd6OworCSAgICBvdXRbNV0gPSAxIC0gKHh4ICsgenopOworCSAgICBvdXRbNl0gPSB5eiArIHd4OworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSB4eiArIHd5OworCSAgICBvdXRbOV0gPSB5eiAtIHd4OworCSAgICBvdXRbMTBdID0gMSAtICh4eCArIHl5KTsKKwkgICAgb3V0WzExXSA9IDA7CisJICAgIG91dFsxMl0gPSB2WzBdOworCSAgICBvdXRbMTNdID0gdlsxXTsKKwkgICAgb3V0WzE0XSA9IHZbMl07CisJICAgIG91dFsxNV0gPSAxOworCSAgICAKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgcXVhdGVybmlvbiByb3RhdGlvbiwgdmVjdG9yIHRyYW5zbGF0aW9uIGFuZCB2ZWN0b3Igc2NhbGUKKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCB2ZWMpOworCSAqICAgICB2YXIgcXVhdE1hdCA9IG1hdDQuY3JlYXRlKCk7CisJICogICAgIHF1YXQ0LnRvTWF0NChxdWF0LCBxdWF0TWF0KTsKKwkgKiAgICAgbWF0NC5tdWx0aXBseShkZXN0LCBxdWF0TWF0KTsKKwkgKiAgICAgbWF0NC5zY2FsZShkZXN0LCBzY2FsZSkKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKwkgKiBAcGFyYW0ge3F1YXQ0fSBxIFJvdGF0aW9uIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge3ZlYzN9IHYgVHJhbnNsYXRpb24gdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBzIFNjYWxpbmcgdmVjdG9yCisJICogQHJldHVybnMge21hdDR9IG91dAorCSAqLworCW1hdDQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb25TY2FsZSA9IGZ1bmN0aW9uIChvdXQsIHEsIHYsIHMpIHsKKwkgICAgLy8gUXVhdGVybmlvbiBtYXRoCisJICAgIHZhciB4ID0gcVswXSwgeSA9IHFbMV0sIHogPSBxWzJdLCB3ID0gcVszXSwKKwkgICAgICAgIHgyID0geCArIHgsCisJICAgICAgICB5MiA9IHkgKyB5LAorCSAgICAgICAgejIgPSB6ICsgeiwKKworCSAgICAgICAgeHggPSB4ICogeDIsCisJICAgICAgICB4eSA9IHggKiB5MiwKKwkgICAgICAgIHh6ID0geCAqIHoyLAorCSAgICAgICAgeXkgPSB5ICogeTIsCisJICAgICAgICB5eiA9IHkgKiB6MiwKKwkgICAgICAgIHp6ID0geiAqIHoyLAorCSAgICAgICAgd3ggPSB3ICogeDIsCisJICAgICAgICB3eSA9IHcgKiB5MiwKKwkgICAgICAgIHd6ID0gdyAqIHoyLAorCSAgICAgICAgc3ggPSBzWzBdLAorCSAgICAgICAgc3kgPSBzWzFdLAorCSAgICAgICAgc3ogPSBzWzJdOworCisJICAgIG91dFswXSA9ICgxIC0gKHl5ICsgenopKSAqIHN4OworCSAgICBvdXRbMV0gPSAoeHkgKyB3eikgKiBzeDsKKwkgICAgb3V0WzJdID0gKHh6IC0gd3kpICogc3g7CisJICAgIG91dFszXSA9IDA7CisJICAgIG91dFs0XSA9ICh4eSAtIHd6KSAqIHN5OworCSAgICBvdXRbNV0gPSAoMSAtICh4eCArIHp6KSkgKiBzeTsKKwkgICAgb3V0WzZdID0gKHl6ICsgd3gpICogc3k7CisJICAgIG91dFs3XSA9IDA7CisJICAgIG91dFs4XSA9ICh4eiArIHd5KSAqIHN6OworCSAgICBvdXRbOV0gPSAoeXogLSB3eCkgKiBzejsKKwkgICAgb3V0WzEwXSA9ICgxIC0gKHh4ICsgeXkpKSAqIHN6OworCSAgICBvdXRbMTFdID0gMDsKKwkgICAgb3V0WzEyXSA9IHZbMF07CisJICAgIG91dFsxM10gPSB2WzFdOworCSAgICBvdXRbMTRdID0gdlsyXTsKKwkgICAgb3V0WzE1XSA9IDE7CisJICAgIAorCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSBxdWF0ZXJuaW9uIHJvdGF0aW9uLCB2ZWN0b3IgdHJhbnNsYXRpb24gYW5kIHZlY3RvciBzY2FsZSwgcm90YXRpbmcgYW5kIHNjYWxpbmcgYXJvdW5kIHRoZSBnaXZlbiBvcmlnaW4KKwkgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKwkgKgorCSAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOworCSAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCB2ZWMpOworCSAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCBvcmlnaW4pOworCSAqICAgICB2YXIgcXVhdE1hdCA9IG1hdDQuY3JlYXRlKCk7CisJICogICAgIHF1YXQ0LnRvTWF0NChxdWF0LCBxdWF0TWF0KTsKKwkgKiAgICAgbWF0NC5tdWx0aXBseShkZXN0LCBxdWF0TWF0KTsKKwkgKiAgICAgbWF0NC5zY2FsZShkZXN0LCBzY2FsZSkKKwkgKiAgICAgbWF0NC50cmFuc2xhdGUoZGVzdCwgbmVnYXRpdmVPcmlnaW4pOworCSAqCisJICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7cXVhdDR9IHEgUm90YXRpb24gcXVhdGVybmlvbgorCSAqIEBwYXJhbSB7dmVjM30gdiBUcmFuc2xhdGlvbiB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IHMgU2NhbGluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IG8gVGhlIG9yaWdpbiB2ZWN0b3IgYXJvdW5kIHdoaWNoIHRvIHNjYWxlIGFuZCByb3RhdGUKKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcm9tUm90YXRpb25UcmFuc2xhdGlvblNjYWxlT3JpZ2luID0gZnVuY3Rpb24gKG91dCwgcSwgdiwgcywgbykgeworCSAgLy8gUXVhdGVybmlvbiBtYXRoCisJICB2YXIgeCA9IHFbMF0sIHkgPSBxWzFdLCB6ID0gcVsyXSwgdyA9IHFbM10sCisJICAgICAgeDIgPSB4ICsgeCwKKwkgICAgICB5MiA9IHkgKyB5LAorCSAgICAgIHoyID0geiArIHosCisKKwkgICAgICB4eCA9IHggKiB4MiwKKwkgICAgICB4eSA9IHggKiB5MiwKKwkgICAgICB4eiA9IHggKiB6MiwKKwkgICAgICB5eSA9IHkgKiB5MiwKKwkgICAgICB5eiA9IHkgKiB6MiwKKwkgICAgICB6eiA9IHogKiB6MiwKKwkgICAgICB3eCA9IHcgKiB4MiwKKwkgICAgICB3eSA9IHcgKiB5MiwKKwkgICAgICB3eiA9IHcgKiB6MiwKKwkgICAgICAKKwkgICAgICBzeCA9IHNbMF0sCisJICAgICAgc3kgPSBzWzFdLAorCSAgICAgIHN6ID0gc1syXSwKKworCSAgICAgIG94ID0gb1swXSwKKwkgICAgICBveSA9IG9bMV0sCisJICAgICAgb3ogPSBvWzJdOworCSAgICAgIAorCSAgb3V0WzBdID0gKDEgLSAoeXkgKyB6eikpICogc3g7CisJICBvdXRbMV0gPSAoeHkgKyB3eikgKiBzeDsKKwkgIG91dFsyXSA9ICh4eiAtIHd5KSAqIHN4OworCSAgb3V0WzNdID0gMDsKKwkgIG91dFs0XSA9ICh4eSAtIHd6KSAqIHN5OworCSAgb3V0WzVdID0gKDEgLSAoeHggKyB6eikpICogc3k7CisJICBvdXRbNl0gPSAoeXogKyB3eCkgKiBzeTsKKwkgIG91dFs3XSA9IDA7CisJICBvdXRbOF0gPSAoeHogKyB3eSkgKiBzejsKKwkgIG91dFs5XSA9ICh5eiAtIHd4KSAqIHN6OworCSAgb3V0WzEwXSA9ICgxIC0gKHh4ICsgeXkpKSAqIHN6OworCSAgb3V0WzExXSA9IDA7CisJICBvdXRbMTJdID0gdlswXSArIG94IC0gKG91dFswXSAqIG94ICsgb3V0WzRdICogb3kgKyBvdXRbOF0gKiBveik7CisJICBvdXRbMTNdID0gdlsxXSArIG95IC0gKG91dFsxXSAqIG94ICsgb3V0WzVdICogb3kgKyBvdXRbOV0gKiBveik7CisJICBvdXRbMTRdID0gdlsyXSArIG96IC0gKG91dFsyXSAqIG94ICsgb3V0WzZdICogb3kgKyBvdXRbMTBdICogb3opOworCSAgb3V0WzE1XSA9IDE7CisJICAgICAgICAKKwkgIHJldHVybiBvdXQ7CisJfTsKKworCW1hdDQuZnJvbVF1YXQgPSBmdW5jdGlvbiAob3V0LCBxKSB7CisJICAgIHZhciB4ID0gcVswXSwgeSA9IHFbMV0sIHogPSBxWzJdLCB3ID0gcVszXSwKKwkgICAgICAgIHgyID0geCArIHgsCisJICAgICAgICB5MiA9IHkgKyB5LAorCSAgICAgICAgejIgPSB6ICsgeiwKKworCSAgICAgICAgeHggPSB4ICogeDIsCisJICAgICAgICB5eCA9IHkgKiB4MiwKKwkgICAgICAgIHl5ID0geSAqIHkyLAorCSAgICAgICAgenggPSB6ICogeDIsCisJICAgICAgICB6eSA9IHogKiB5MiwKKwkgICAgICAgIHp6ID0geiAqIHoyLAorCSAgICAgICAgd3ggPSB3ICogeDIsCisJICAgICAgICB3eSA9IHcgKiB5MiwKKwkgICAgICAgIHd6ID0gdyAqIHoyOworCisJICAgIG91dFswXSA9IDEgLSB5eSAtIHp6OworCSAgICBvdXRbMV0gPSB5eCArIHd6OworCSAgICBvdXRbMl0gPSB6eCAtIHd5OworCSAgICBvdXRbM10gPSAwOworCisJICAgIG91dFs0XSA9IHl4IC0gd3o7CisJICAgIG91dFs1XSA9IDEgLSB4eCAtIHp6OworCSAgICBvdXRbNl0gPSB6eSArIHd4OworCSAgICBvdXRbN10gPSAwOworCisJICAgIG91dFs4XSA9IHp4ICsgd3k7CisJICAgIG91dFs5XSA9IHp5IC0gd3g7CisJICAgIG91dFsxMF0gPSAxIC0geHggLSB5eTsKKwkgICAgb3V0WzExXSA9IDA7CisKKwkgICAgb3V0WzEyXSA9IDA7CisJICAgIG91dFsxM10gPSAwOworCSAgICBvdXRbMTRdID0gMDsKKwkgICAgb3V0WzE1XSA9IDE7CisKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogR2VuZXJhdGVzIGEgZnJ1c3R1bSBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gYm91bmRzCisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCisJICogQHBhcmFtIHtOdW1iZXJ9IGxlZnQgTGVmdCBib3VuZCBvZiB0aGUgZnJ1c3R1bQorCSAqIEBwYXJhbSB7TnVtYmVyfSByaWdodCBSaWdodCBib3VuZCBvZiB0aGUgZnJ1c3R1bQorCSAqIEBwYXJhbSB7TnVtYmVyfSBib3R0b20gQm90dG9tIGJvdW5kIG9mIHRoZSBmcnVzdHVtCisJICogQHBhcmFtIHtOdW1iZXJ9IHRvcCBUb3AgYm91bmQgb2YgdGhlIGZydXN0dW0KKwkgKiBAcGFyYW0ge051bWJlcn0gbmVhciBOZWFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCisJICogQHBhcmFtIHtOdW1iZXJ9IGZhciBGYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5mcnVzdHVtID0gZnVuY3Rpb24gKG91dCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBuZWFyLCBmYXIpIHsKKwkgICAgdmFyIHJsID0gMSAvIChyaWdodCAtIGxlZnQpLAorCSAgICAgICAgdGIgPSAxIC8gKHRvcCAtIGJvdHRvbSksCisJICAgICAgICBuZiA9IDEgLyAobmVhciAtIGZhcik7CisJICAgIG91dFswXSA9IChuZWFyICogMikgKiBybDsKKwkgICAgb3V0WzFdID0gMDsKKwkgICAgb3V0WzJdID0gMDsKKwkgICAgb3V0WzNdID0gMDsKKwkgICAgb3V0WzRdID0gMDsKKwkgICAgb3V0WzVdID0gKG5lYXIgKiAyKSAqIHRiOworCSAgICBvdXRbNl0gPSAwOworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSAocmlnaHQgKyBsZWZ0KSAqIHJsOworCSAgICBvdXRbOV0gPSAodG9wICsgYm90dG9tKSAqIHRiOworCSAgICBvdXRbMTBdID0gKGZhciArIG5lYXIpICogbmY7CisJICAgIG91dFsxMV0gPSAtMTsKKwkgICAgb3V0WzEyXSA9IDA7CisJICAgIG91dFsxM10gPSAwOworCSAgICBvdXRbMTRdID0gKGZhciAqIG5lYXIgKiAyKSAqIG5mOworCSAgICBvdXRbMTVdID0gMDsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogR2VuZXJhdGVzIGEgcGVyc3BlY3RpdmUgcHJvamVjdGlvbiBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gYm91bmRzCisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCisJICogQHBhcmFtIHtudW1iZXJ9IGZvdnkgVmVydGljYWwgZmllbGQgb2YgdmlldyBpbiByYWRpYW5zCisJICogQHBhcmFtIHtudW1iZXJ9IGFzcGVjdCBBc3BlY3QgcmF0aW8uIHR5cGljYWxseSB2aWV3cG9ydCB3aWR0aC9oZWlnaHQKKwkgKiBAcGFyYW0ge251bWJlcn0gbmVhciBOZWFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCisJICogQHBhcmFtIHtudW1iZXJ9IGZhciBGYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KKwkgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisJICovCisJbWF0NC5wZXJzcGVjdGl2ZSA9IGZ1bmN0aW9uIChvdXQsIGZvdnksIGFzcGVjdCwgbmVhciwgZmFyKSB7CisJICAgIHZhciBmID0gMS4wIC8gTWF0aC50YW4oZm92eSAvIDIpLAorCSAgICAgICAgbmYgPSAxIC8gKG5lYXIgLSBmYXIpOworCSAgICBvdXRbMF0gPSBmIC8gYXNwZWN0OworCSAgICBvdXRbMV0gPSAwOworCSAgICBvdXRbMl0gPSAwOworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSAwOworCSAgICBvdXRbNV0gPSBmOworCSAgICBvdXRbNl0gPSAwOworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSAwOworCSAgICBvdXRbOV0gPSAwOworCSAgICBvdXRbMTBdID0gKGZhciArIG5lYXIpICogbmY7CisJICAgIG91dFsxMV0gPSAtMTsKKwkgICAgb3V0WzEyXSA9IDA7CisJICAgIG91dFsxM10gPSAwOworCSAgICBvdXRbMTRdID0gKDIgKiBmYXIgKiBuZWFyKSAqIG5mOworCSAgICBvdXRbMTVdID0gMDsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogR2VuZXJhdGVzIGEgcGVyc3BlY3RpdmUgcHJvamVjdGlvbiBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gZmllbGQgb2Ygdmlldy4KKwkgKiBUaGlzIGlzIHByaW1hcmlseSB1c2VmdWwgZm9yIGdlbmVyYXRpbmcgcHJvamVjdGlvbiBtYXRyaWNlcyB0byBiZSB1c2VkCisJICogd2l0aCB0aGUgc3RpbGwgZXhwZXJpZW1lbnRhbCBXZWJWUiBBUEkuCisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCisJICogQHBhcmFtIHtudW1iZXJ9IGZvdiBPYmplY3QgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIHZhbHVlczogdXBEZWdyZWVzLCBkb3duRGVncmVlcywgbGVmdERlZ3JlZXMsIHJpZ2h0RGVncmVlcworCSAqIEBwYXJhbSB7bnVtYmVyfSBuZWFyIE5lYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KKwkgKiBAcGFyYW0ge251bWJlcn0gZmFyIEZhciBib3VuZCBvZiB0aGUgZnJ1c3R1bQorCSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKwkgKi8KKwltYXQ0LnBlcnNwZWN0aXZlRnJvbUZpZWxkT2ZWaWV3ID0gZnVuY3Rpb24gKG91dCwgZm92LCBuZWFyLCBmYXIpIHsKKwkgICAgdmFyIHVwVGFuID0gTWF0aC50YW4oZm92LnVwRGVncmVlcyAqIE1hdGguUEkvMTgwLjApLAorCSAgICAgICAgZG93blRhbiA9IE1hdGgudGFuKGZvdi5kb3duRGVncmVlcyAqIE1hdGguUEkvMTgwLjApLAorCSAgICAgICAgbGVmdFRhbiA9IE1hdGgudGFuKGZvdi5sZWZ0RGVncmVlcyAqIE1hdGguUEkvMTgwLjApLAorCSAgICAgICAgcmlnaHRUYW4gPSBNYXRoLnRhbihmb3YucmlnaHREZWdyZWVzICogTWF0aC5QSS8xODAuMCksCisJICAgICAgICB4U2NhbGUgPSAyLjAgLyAobGVmdFRhbiArIHJpZ2h0VGFuKSwKKwkgICAgICAgIHlTY2FsZSA9IDIuMCAvICh1cFRhbiArIGRvd25UYW4pOworCisJICAgIG91dFswXSA9IHhTY2FsZTsKKwkgICAgb3V0WzFdID0gMC4wOworCSAgICBvdXRbMl0gPSAwLjA7CisJICAgIG91dFszXSA9IDAuMDsKKwkgICAgb3V0WzRdID0gMC4wOworCSAgICBvdXRbNV0gPSB5U2NhbGU7CisJICAgIG91dFs2XSA9IDAuMDsKKwkgICAgb3V0WzddID0gMC4wOworCSAgICBvdXRbOF0gPSAtKChsZWZ0VGFuIC0gcmlnaHRUYW4pICogeFNjYWxlICogMC41KTsKKwkgICAgb3V0WzldID0gKCh1cFRhbiAtIGRvd25UYW4pICogeVNjYWxlICogMC41KTsKKwkgICAgb3V0WzEwXSA9IGZhciAvIChuZWFyIC0gZmFyKTsKKwkgICAgb3V0WzExXSA9IC0xLjA7CisJICAgIG91dFsxMl0gPSAwLjA7CisJICAgIG91dFsxM10gPSAwLjA7CisJICAgIG91dFsxNF0gPSAoZmFyICogbmVhcikgLyAobmVhciAtIGZhcik7CisJICAgIG91dFsxNV0gPSAwLjA7CisJICAgIHJldHVybiBvdXQ7CisJfQorCisJLyoqCisJICogR2VuZXJhdGVzIGEgb3J0aG9nb25hbCBwcm9qZWN0aW9uIG1hdHJpeCB3aXRoIHRoZSBnaXZlbiBib3VuZHMKKwkgKgorCSAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgZnJ1c3R1bSBtYXRyaXggd2lsbCBiZSB3cml0dGVuIGludG8KKwkgKiBAcGFyYW0ge251bWJlcn0gbGVmdCBMZWZ0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCisJICogQHBhcmFtIHtudW1iZXJ9IHJpZ2h0IFJpZ2h0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCisJICogQHBhcmFtIHtudW1iZXJ9IGJvdHRvbSBCb3R0b20gYm91bmQgb2YgdGhlIGZydXN0dW0KKwkgKiBAcGFyYW0ge251bWJlcn0gdG9wIFRvcCBib3VuZCBvZiB0aGUgZnJ1c3R1bQorCSAqIEBwYXJhbSB7bnVtYmVyfSBuZWFyIE5lYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KKwkgKiBAcGFyYW0ge251bWJlcn0gZmFyIEZhciBib3VuZCBvZiB0aGUgZnJ1c3R1bQorCSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKwkgKi8KKwltYXQ0Lm9ydGhvID0gZnVuY3Rpb24gKG91dCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBuZWFyLCBmYXIpIHsKKwkgICAgdmFyIGxyID0gMSAvIChsZWZ0IC0gcmlnaHQpLAorCSAgICAgICAgYnQgPSAxIC8gKGJvdHRvbSAtIHRvcCksCisJICAgICAgICBuZiA9IDEgLyAobmVhciAtIGZhcik7CisJICAgIG91dFswXSA9IC0yICogbHI7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIG91dFszXSA9IDA7CisJICAgIG91dFs0XSA9IDA7CisJICAgIG91dFs1XSA9IC0yICogYnQ7CisJICAgIG91dFs2XSA9IDA7CisJICAgIG91dFs3XSA9IDA7CisJICAgIG91dFs4XSA9IDA7CisJICAgIG91dFs5XSA9IDA7CisJICAgIG91dFsxMF0gPSAyICogbmY7CisJICAgIG91dFsxMV0gPSAwOworCSAgICBvdXRbMTJdID0gKGxlZnQgKyByaWdodCkgKiBscjsKKwkgICAgb3V0WzEzXSA9ICh0b3AgKyBib3R0b20pICogYnQ7CisJICAgIG91dFsxNF0gPSAoZmFyICsgbmVhcikgKiBuZjsKKwkgICAgb3V0WzE1XSA9IDE7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEdlbmVyYXRlcyBhIGxvb2stYXQgbWF0cml4IHdpdGggdGhlIGdpdmVuIGV5ZSBwb3NpdGlvbiwgZm9jYWwgcG9pbnQsIGFuZCB1cCBheGlzCisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCisJICogQHBhcmFtIHt2ZWMzfSBleWUgUG9zaXRpb24gb2YgdGhlIHZpZXdlcgorCSAqIEBwYXJhbSB7dmVjM30gY2VudGVyIFBvaW50IHRoZSB2aWV3ZXIgaXMgbG9va2luZyBhdAorCSAqIEBwYXJhbSB7dmVjM30gdXAgdmVjMyBwb2ludGluZyB1cAorCSAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKwkgKi8KKwltYXQ0Lmxvb2tBdCA9IGZ1bmN0aW9uIChvdXQsIGV5ZSwgY2VudGVyLCB1cCkgeworCSAgICB2YXIgeDAsIHgxLCB4MiwgeTAsIHkxLCB5MiwgejAsIHoxLCB6MiwgbGVuLAorCSAgICAgICAgZXlleCA9IGV5ZVswXSwKKwkgICAgICAgIGV5ZXkgPSBleWVbMV0sCisJICAgICAgICBleWV6ID0gZXllWzJdLAorCSAgICAgICAgdXB4ID0gdXBbMF0sCisJICAgICAgICB1cHkgPSB1cFsxXSwKKwkgICAgICAgIHVweiA9IHVwWzJdLAorCSAgICAgICAgY2VudGVyeCA9IGNlbnRlclswXSwKKwkgICAgICAgIGNlbnRlcnkgPSBjZW50ZXJbMV0sCisJICAgICAgICBjZW50ZXJ6ID0gY2VudGVyWzJdOworCisJICAgIGlmIChNYXRoLmFicyhleWV4IC0gY2VudGVyeCkgPCBnbE1hdHJpeC5FUFNJTE9OICYmCisJICAgICAgICBNYXRoLmFicyhleWV5IC0gY2VudGVyeSkgPCBnbE1hdHJpeC5FUFNJTE9OICYmCisJICAgICAgICBNYXRoLmFicyhleWV6IC0gY2VudGVyeikgPCBnbE1hdHJpeC5FUFNJTE9OKSB7CisJICAgICAgICByZXR1cm4gbWF0NC5pZGVudGl0eShvdXQpOworCSAgICB9CisKKwkgICAgejAgPSBleWV4IC0gY2VudGVyeDsKKwkgICAgejEgPSBleWV5IC0gY2VudGVyeTsKKwkgICAgejIgPSBleWV6IC0gY2VudGVyejsKKworCSAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KHowICogejAgKyB6MSAqIHoxICsgejIgKiB6Mik7CisJICAgIHowICo9IGxlbjsKKwkgICAgejEgKj0gbGVuOworCSAgICB6MiAqPSBsZW47CisKKwkgICAgeDAgPSB1cHkgKiB6MiAtIHVweiAqIHoxOworCSAgICB4MSA9IHVweiAqIHowIC0gdXB4ICogejI7CisJICAgIHgyID0gdXB4ICogejEgLSB1cHkgKiB6MDsKKwkgICAgbGVuID0gTWF0aC5zcXJ0KHgwICogeDAgKyB4MSAqIHgxICsgeDIgKiB4Mik7CisJICAgIGlmICghbGVuKSB7CisJICAgICAgICB4MCA9IDA7CisJICAgICAgICB4MSA9IDA7CisJICAgICAgICB4MiA9IDA7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBsZW4gPSAxIC8gbGVuOworCSAgICAgICAgeDAgKj0gbGVuOworCSAgICAgICAgeDEgKj0gbGVuOworCSAgICAgICAgeDIgKj0gbGVuOworCSAgICB9CisKKwkgICAgeTAgPSB6MSAqIHgyIC0gejIgKiB4MTsKKwkgICAgeTEgPSB6MiAqIHgwIC0gejAgKiB4MjsKKwkgICAgeTIgPSB6MCAqIHgxIC0gejEgKiB4MDsKKworCSAgICBsZW4gPSBNYXRoLnNxcnQoeTAgKiB5MCArIHkxICogeTEgKyB5MiAqIHkyKTsKKwkgICAgaWYgKCFsZW4pIHsKKwkgICAgICAgIHkwID0gMDsKKwkgICAgICAgIHkxID0gMDsKKwkgICAgICAgIHkyID0gMDsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIGxlbiA9IDEgLyBsZW47CisJICAgICAgICB5MCAqPSBsZW47CisJICAgICAgICB5MSAqPSBsZW47CisJICAgICAgICB5MiAqPSBsZW47CisJICAgIH0KKworCSAgICBvdXRbMF0gPSB4MDsKKwkgICAgb3V0WzFdID0geTA7CisJICAgIG91dFsyXSA9IHowOworCSAgICBvdXRbM10gPSAwOworCSAgICBvdXRbNF0gPSB4MTsKKwkgICAgb3V0WzVdID0geTE7CisJICAgIG91dFs2XSA9IHoxOworCSAgICBvdXRbN10gPSAwOworCSAgICBvdXRbOF0gPSB4MjsKKwkgICAgb3V0WzldID0geTI7CisJICAgIG91dFsxMF0gPSB6MjsKKwkgICAgb3V0WzExXSA9IDA7CisJICAgIG91dFsxMl0gPSAtKHgwICogZXlleCArIHgxICogZXlleSArIHgyICogZXlleik7CisJICAgIG91dFsxM10gPSAtKHkwICogZXlleCArIHkxICogZXlleSArIHkyICogZXlleik7CisJICAgIG91dFsxNF0gPSAtKHowICogZXlleCArIHoxICogZXlleSArIHoyICogZXlleik7CisJICAgIG91dFsxNV0gPSAxOworCisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBtYXQ0CisJICoKKwkgKiBAcGFyYW0ge21hdDR9IG1hdCBtYXRyaXggdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCisJICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgKKwkgKi8KKwltYXQ0LnN0ciA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHJldHVybiAnbWF0NCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgYVszXSArICcsICcgKworCSAgICAgICAgICAgICAgICAgICAgYVs0XSArICcsICcgKyBhWzVdICsgJywgJyArIGFbNl0gKyAnLCAnICsgYVs3XSArICcsICcgKworCSAgICAgICAgICAgICAgICAgICAgYVs4XSArICcsICcgKyBhWzldICsgJywgJyArIGFbMTBdICsgJywgJyArIGFbMTFdICsgJywgJyArIAorCSAgICAgICAgICAgICAgICAgICAgYVsxMl0gKyAnLCAnICsgYVsxM10gKyAnLCAnICsgYVsxNF0gKyAnLCAnICsgYVsxNV0gKyAnKSc7CisJfTsKKworCS8qKgorCSAqIFJldHVybnMgRnJvYmVuaXVzIG5vcm0gb2YgYSBtYXQ0CisJICoKKwkgKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byBjYWxjdWxhdGUgRnJvYmVuaXVzIG5vcm0gb2YKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBGcm9iZW5pdXMgbm9ybQorCSAqLworCW1hdDQuZnJvYiA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHJldHVybihNYXRoLnNxcnQoTWF0aC5wb3coYVswXSwgMikgKyBNYXRoLnBvdyhhWzFdLCAyKSArIE1hdGgucG93KGFbMl0sIDIpICsgTWF0aC5wb3coYVszXSwgMikgKyBNYXRoLnBvdyhhWzRdLCAyKSArIE1hdGgucG93KGFbNV0sIDIpICsgTWF0aC5wb3coYVs2XSwgMikgKyBNYXRoLnBvdyhhWzddLCAyKSArIE1hdGgucG93KGFbOF0sIDIpICsgTWF0aC5wb3coYVs5XSwgMikgKyBNYXRoLnBvdyhhWzEwXSwgMikgKyBNYXRoLnBvdyhhWzExXSwgMikgKyBNYXRoLnBvdyhhWzEyXSwgMikgKyBNYXRoLnBvdyhhWzEzXSwgMikgKyBNYXRoLnBvdyhhWzE0XSwgMikgKyBNYXRoLnBvdyhhWzE1XSwgMikgKSkKKwl9OworCisKKwltb2R1bGUuZXhwb3J0cyA9IG1hdDQ7CisKKworLyoqKi8gfSwKKy8qIDYgKi8KKy8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisJLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisJb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKwlpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisJdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorCWNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworCWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKwlUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorCWFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCisJVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKwlJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKwlGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKwlBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisJTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKwlPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCisJVEhFIFNPRlRXQVJFLiAqLworCisJdmFyIGdsTWF0cml4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKKwl2YXIgbWF0MyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisJdmFyIHZlYzMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcpOworCXZhciB2ZWM0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKKworCS8qKgorCSAqIEBjbGFzcyBRdWF0ZXJuaW9uCisJICogQG5hbWUgcXVhdAorCSAqLworCXZhciBxdWF0ID0ge307CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IHF1YXQKKwkgKgorCSAqIEByZXR1cm5zIHtxdWF0fSBhIG5ldyBxdWF0ZXJuaW9uCisJICovCisJcXVhdC5jcmVhdGUgPSBmdW5jdGlvbigpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDQpOworCSAgICBvdXRbMF0gPSAwOworCSAgICBvdXRbMV0gPSAwOworCSAgICBvdXRbMl0gPSAwOworCSAgICBvdXRbM10gPSAxOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTZXRzIGEgcXVhdGVybmlvbiB0byByZXByZXNlbnQgdGhlIHNob3J0ZXN0IHJvdGF0aW9uIGZyb20gb25lCisJICogdmVjdG9yIHRvIGFub3RoZXIuCisJICoKKwkgKiBCb3RoIHZlY3RvcnMgYXJlIGFzc3VtZWQgdG8gYmUgdW5pdCBsZW5ndGguCisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24uCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBpbml0aWFsIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgZGVzdGluYXRpb24gdmVjdG9yCisJICogQHJldHVybnMge3F1YXR9IG91dAorCSAqLworCXF1YXQucm90YXRpb25UbyA9IChmdW5jdGlvbigpIHsKKwkgICAgdmFyIHRtcHZlYzMgPSB2ZWMzLmNyZWF0ZSgpOworCSAgICB2YXIgeFVuaXRWZWMzID0gdmVjMy5mcm9tVmFsdWVzKDEsMCwwKTsKKwkgICAgdmFyIHlVbml0VmVjMyA9IHZlYzMuZnJvbVZhbHVlcygwLDEsMCk7CisKKwkgICAgcmV0dXJuIGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICAgICAgdmFyIGRvdCA9IHZlYzMuZG90KGEsIGIpOworCSAgICAgICAgaWYgKGRvdCA8IC0wLjk5OTk5OSkgeworCSAgICAgICAgICAgIHZlYzMuY3Jvc3ModG1wdmVjMywgeFVuaXRWZWMzLCBhKTsKKwkgICAgICAgICAgICBpZiAodmVjMy5sZW5ndGgodG1wdmVjMykgPCAwLjAwMDAwMSkKKwkgICAgICAgICAgICAgICAgdmVjMy5jcm9zcyh0bXB2ZWMzLCB5VW5pdFZlYzMsIGEpOworCSAgICAgICAgICAgIHZlYzMubm9ybWFsaXplKHRtcHZlYzMsIHRtcHZlYzMpOworCSAgICAgICAgICAgIHF1YXQuc2V0QXhpc0FuZ2xlKG91dCwgdG1wdmVjMywgTWF0aC5QSSk7CisJICAgICAgICAgICAgcmV0dXJuIG91dDsKKwkgICAgICAgIH0gZWxzZSBpZiAoZG90ID4gMC45OTk5OTkpIHsKKwkgICAgICAgICAgICBvdXRbMF0gPSAwOworCSAgICAgICAgICAgIG91dFsxXSA9IDA7CisJICAgICAgICAgICAgb3V0WzJdID0gMDsKKwkgICAgICAgICAgICBvdXRbM10gPSAxOworCSAgICAgICAgICAgIHJldHVybiBvdXQ7CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIHZlYzMuY3Jvc3ModG1wdmVjMywgYSwgYik7CisJICAgICAgICAgICAgb3V0WzBdID0gdG1wdmVjM1swXTsKKwkgICAgICAgICAgICBvdXRbMV0gPSB0bXB2ZWMzWzFdOworCSAgICAgICAgICAgIG91dFsyXSA9IHRtcHZlYzNbMl07CisJICAgICAgICAgICAgb3V0WzNdID0gMSArIGRvdDsKKwkgICAgICAgICAgICByZXR1cm4gcXVhdC5ub3JtYWxpemUob3V0LCBvdXQpOworCSAgICAgICAgfQorCSAgICB9OworCX0pKCk7CisKKwkvKioKKwkgKiBTZXRzIHRoZSBzcGVjaWZpZWQgcXVhdGVybmlvbiB3aXRoIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbgorCSAqIGF4ZXMuIEVhY2ggYXhpcyBpcyBhIHZlYzMgYW5kIGlzIGV4cGVjdGVkIHRvIGJlIHVuaXQgbGVuZ3RoIGFuZAorCSAqIHBlcnBlbmRpY3VsYXIgdG8gYWxsIG90aGVyIHNwZWNpZmllZCBheGVzLgorCSAqCisJICogQHBhcmFtIHt2ZWMzfSB2aWV3ICB0aGUgdmVjdG9yIHJlcHJlc2VudGluZyB0aGUgdmlld2luZyBkaXJlY3Rpb24KKwkgKiBAcGFyYW0ge3ZlYzN9IHJpZ2h0IHRoZSB2ZWN0b3IgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCAicmlnaHQiIGRpcmVjdGlvbgorCSAqIEBwYXJhbSB7dmVjM30gdXAgICAgdGhlIHZlY3RvciByZXByZXNlbnRpbmcgdGhlIGxvY2FsICJ1cCIgZGlyZWN0aW9uCisJICogQHJldHVybnMge3F1YXR9IG91dAorCSAqLworCXF1YXQuc2V0QXhlcyA9IChmdW5jdGlvbigpIHsKKwkgICAgdmFyIG1hdHIgPSBtYXQzLmNyZWF0ZSgpOworCisJICAgIHJldHVybiBmdW5jdGlvbihvdXQsIHZpZXcsIHJpZ2h0LCB1cCkgeworCSAgICAgICAgbWF0clswXSA9IHJpZ2h0WzBdOworCSAgICAgICAgbWF0clszXSA9IHJpZ2h0WzFdOworCSAgICAgICAgbWF0cls2XSA9IHJpZ2h0WzJdOworCisJICAgICAgICBtYXRyWzFdID0gdXBbMF07CisJICAgICAgICBtYXRyWzRdID0gdXBbMV07CisJICAgICAgICBtYXRyWzddID0gdXBbMl07CisKKwkgICAgICAgIG1hdHJbMl0gPSAtdmlld1swXTsKKwkgICAgICAgIG1hdHJbNV0gPSAtdmlld1sxXTsKKwkgICAgICAgIG1hdHJbOF0gPSAtdmlld1syXTsKKworCSAgICAgICAgcmV0dXJuIHF1YXQubm9ybWFsaXplKG91dCwgcXVhdC5mcm9tTWF0MyhvdXQsIG1hdHIpKTsKKwkgICAgfTsKKwl9KSgpOworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldyBxdWF0IGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgcXVhdGVybmlvbgorCSAqCisJICogQHBhcmFtIHtxdWF0fSBhIHF1YXRlcm5pb24gdG8gY2xvbmUKKwkgKiBAcmV0dXJucyB7cXVhdH0gYSBuZXcgcXVhdGVybmlvbgorCSAqIEBmdW5jdGlvbgorCSAqLworCXF1YXQuY2xvbmUgPSB2ZWM0LmNsb25lOworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldyBxdWF0IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHZhbHVlcworCSAqCisJICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKKwkgKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAorCSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50CisJICogQHBhcmFtIHtOdW1iZXJ9IHcgVyBjb21wb25lbnQKKwkgKiBAcmV0dXJucyB7cXVhdH0gYSBuZXcgcXVhdGVybmlvbgorCSAqIEBmdW5jdGlvbgorCSAqLworCXF1YXQuZnJvbVZhbHVlcyA9IHZlYzQuZnJvbVZhbHVlczsKKworCS8qKgorCSAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSBxdWF0IHRvIGFub3RoZXIKKwkgKgorCSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorCSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgc291cmNlIHF1YXRlcm5pb24KKwkgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5jb3B5ID0gdmVjNC5jb3B5OworCisJLyoqCisJICogU2V0IHRoZSBjb21wb25lbnRzIG9mIGEgcXVhdCB0byB0aGUgZ2l2ZW4gdmFsdWVzCisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAorCSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50CisJICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKKwkgKiBAcGFyYW0ge051bWJlcn0gdyBXIGNvbXBvbmVudAorCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwlxdWF0LnNldCA9IHZlYzQuc2V0OworCisJLyoqCisJICogU2V0IGEgcXVhdCB0byB0aGUgaWRlbnRpdHkgcXVhdGVybmlvbgorCSAqCisJICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCisJICogQHJldHVybnMge3F1YXR9IG91dAorCSAqLworCXF1YXQuaWRlbnRpdHkgPSBmdW5jdGlvbihvdXQpIHsKKwkgICAgb3V0WzBdID0gMDsKKwkgICAgb3V0WzFdID0gMDsKKwkgICAgb3V0WzJdID0gMDsKKwkgICAgb3V0WzNdID0gMTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogU2V0cyBhIHF1YXQgZnJvbSB0aGUgZ2l2ZW4gYW5nbGUgYW5kIHJvdGF0aW9uIGF4aXMsCisJICogdGhlbiByZXR1cm5zIGl0LgorCSAqCisJICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCisJICogQHBhcmFtIHt2ZWMzfSBheGlzIHRoZSBheGlzIGFyb3VuZCB3aGljaCB0byByb3RhdGUKKwkgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSBpbiByYWRpYW5zCisJICogQHJldHVybnMge3F1YXR9IG91dAorCSAqKi8KKwlxdWF0LnNldEF4aXNBbmdsZSA9IGZ1bmN0aW9uKG91dCwgYXhpcywgcmFkKSB7CisJICAgIHJhZCA9IHJhZCAqIDAuNTsKKwkgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpOworCSAgICBvdXRbMF0gPSBzICogYXhpc1swXTsKKwkgICAgb3V0WzFdID0gcyAqIGF4aXNbMV07CisJICAgIG91dFsyXSA9IHMgKiBheGlzWzJdOworCSAgICBvdXRbM10gPSBNYXRoLmNvcyhyYWQpOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBBZGRzIHR3byBxdWF0J3MKKwkgKgorCSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorCSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7cXVhdH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5hZGQgPSB2ZWM0LmFkZDsKKworCS8qKgorCSAqIE11bHRpcGxpZXMgdHdvIHF1YXQncworCSAqCisJICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCisJICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHtxdWF0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKi8KKwlxdWF0Lm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisJICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLCBhdyA9IGFbM10sCisJICAgICAgICBieCA9IGJbMF0sIGJ5ID0gYlsxXSwgYnogPSBiWzJdLCBidyA9IGJbM107CisKKwkgICAgb3V0WzBdID0gYXggKiBidyArIGF3ICogYnggKyBheSAqIGJ6IC0gYXogKiBieTsKKwkgICAgb3V0WzFdID0gYXkgKiBidyArIGF3ICogYnkgKyBheiAqIGJ4IC0gYXggKiBiejsKKwkgICAgb3V0WzJdID0gYXogKiBidyArIGF3ICogYnogKyBheCAqIGJ5IC0gYXkgKiBieDsKKwkgICAgb3V0WzNdID0gYXcgKiBidyAtIGF4ICogYnggLSBheSAqIGJ5IC0gYXogKiBiejsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayBxdWF0Lm11bHRpcGx5fQorCSAqIEBmdW5jdGlvbgorCSAqLworCXF1YXQubXVsID0gcXVhdC5tdWx0aXBseTsKKworCS8qKgorCSAqIFNjYWxlcyBhIHF1YXQgYnkgYSBzY2FsYXIgbnVtYmVyCisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgdmVjdG9yIHRvIHNjYWxlCisJICogQHBhcmFtIHtOdW1iZXJ9IGIgYW1vdW50IHRvIHNjYWxlIHRoZSB2ZWN0b3IgYnkKKwkgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5zY2FsZSA9IHZlYzQuc2NhbGU7CisKKwkvKioKKwkgKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFggYXhpcworCSAqCisJICogQHBhcmFtIHtxdWF0fSBvdXQgcXVhdCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQorCSAqIEBwYXJhbSB7bnVtYmVyfSByYWQgYW5nbGUgKGluIHJhZGlhbnMpIHRvIHJvdGF0ZQorCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKi8KKwlxdWF0LnJvdGF0ZVggPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKKwkgICAgcmFkICo9IDAuNTsgCisKKwkgICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKKwkgICAgICAgIGJ4ID0gTWF0aC5zaW4ocmFkKSwgYncgPSBNYXRoLmNvcyhyYWQpOworCisJICAgIG91dFswXSA9IGF4ICogYncgKyBhdyAqIGJ4OworCSAgICBvdXRbMV0gPSBheSAqIGJ3ICsgYXogKiBieDsKKwkgICAgb3V0WzJdID0gYXogKiBidyAtIGF5ICogYng7CisJICAgIG91dFszXSA9IGF3ICogYncgLSBheCAqIGJ4OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFkgYXhpcworCSAqCisJICogQHBhcmFtIHtxdWF0fSBvdXQgcXVhdCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQorCSAqIEBwYXJhbSB7bnVtYmVyfSByYWQgYW5nbGUgKGluIHJhZGlhbnMpIHRvIHJvdGF0ZQorCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKi8KKwlxdWF0LnJvdGF0ZVkgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKKwkgICAgcmFkICo9IDAuNTsgCisKKwkgICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKKwkgICAgICAgIGJ5ID0gTWF0aC5zaW4ocmFkKSwgYncgPSBNYXRoLmNvcyhyYWQpOworCisJICAgIG91dFswXSA9IGF4ICogYncgLSBheiAqIGJ5OworCSAgICBvdXRbMV0gPSBheSAqIGJ3ICsgYXcgKiBieTsKKwkgICAgb3V0WzJdID0gYXogKiBidyArIGF4ICogYnk7CisJICAgIG91dFszXSA9IGF3ICogYncgLSBheSAqIGJ5OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFogYXhpcworCSAqCisJICogQHBhcmFtIHtxdWF0fSBvdXQgcXVhdCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorCSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQorCSAqIEBwYXJhbSB7bnVtYmVyfSByYWQgYW5nbGUgKGluIHJhZGlhbnMpIHRvIHJvdGF0ZQorCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKi8KKwlxdWF0LnJvdGF0ZVogPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKKwkgICAgcmFkICo9IDAuNTsgCisKKwkgICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKKwkgICAgICAgIGJ6ID0gTWF0aC5zaW4ocmFkKSwgYncgPSBNYXRoLmNvcyhyYWQpOworCisJICAgIG91dFswXSA9IGF4ICogYncgKyBheSAqIGJ6OworCSAgICBvdXRbMV0gPSBheSAqIGJ3IC0gYXggKiBiejsKKwkgICAgb3V0WzJdID0gYXogKiBidyArIGF3ICogYno7CisJICAgIG91dFszXSA9IGF3ICogYncgLSBheiAqIGJ6OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBXIGNvbXBvbmVudCBvZiBhIHF1YXQgZnJvbSB0aGUgWCwgWSwgYW5kIFogY29tcG9uZW50cy4KKwkgKiBBc3N1bWVzIHRoYXQgcXVhdGVybmlvbiBpcyAxIHVuaXQgaW4gbGVuZ3RoLgorCSAqIEFueSBleGlzdGluZyBXIGNvbXBvbmVudCB3aWxsIGJlIGlnbm9yZWQuCisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge3F1YXR9IGEgcXVhdCB0byBjYWxjdWxhdGUgVyBjb21wb25lbnQgb2YKKwkgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisJICovCisJcXVhdC5jYWxjdWxhdGVXID0gZnVuY3Rpb24gKG91dCwgYSkgeworCSAgICB2YXIgeCA9IGFbMF0sIHkgPSBhWzFdLCB6ID0gYVsyXTsKKworCSAgICBvdXRbMF0gPSB4OworCSAgICBvdXRbMV0gPSB5OworCSAgICBvdXRbMl0gPSB6OworCSAgICBvdXRbM10gPSBNYXRoLnNxcnQoTWF0aC5hYnMoMS4wIC0geCAqIHggLSB5ICogeSAtIHogKiB6KSk7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byBxdWF0J3MKKwkgKgorCSAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7cXVhdH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBkb3QgcHJvZHVjdCBvZiBhIGFuZCBiCisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5kb3QgPSB2ZWM0LmRvdDsKKworCS8qKgorCSAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gcXVhdCdzCisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge3F1YXR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cworCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwlxdWF0LmxlcnAgPSB2ZWM0LmxlcnA7CisKKwkvKioKKwkgKiBQZXJmb3JtcyBhIHNwaGVyaWNhbCBsaW5lYXIgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHR3byBxdWF0CisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge3F1YXR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cworCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKi8KKwlxdWF0LnNsZXJwID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgdCkgeworCSAgICAvLyBiZW5jaG1hcmtzOgorCSAgICAvLyAgICBodHRwOi8vanNwZXJmLmNvbS9xdWF0ZXJuaW9uLXNsZXJwLWltcGxlbWVudGF0aW9ucworCisJICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLCBhdyA9IGFbM10sCisJICAgICAgICBieCA9IGJbMF0sIGJ5ID0gYlsxXSwgYnogPSBiWzJdLCBidyA9IGJbM107CisKKwkgICAgdmFyICAgICAgICBvbWVnYSwgY29zb20sIHNpbm9tLCBzY2FsZTAsIHNjYWxlMTsKKworCSAgICAvLyBjYWxjIGNvc2luZQorCSAgICBjb3NvbSA9IGF4ICogYnggKyBheSAqIGJ5ICsgYXogKiBieiArIGF3ICogYnc7CisJICAgIC8vIGFkanVzdCBzaWducyAoaWYgbmVjZXNzYXJ5KQorCSAgICBpZiAoIGNvc29tIDwgMC4wICkgeworCSAgICAgICAgY29zb20gPSAtY29zb207CisJICAgICAgICBieCA9IC0gYng7CisJICAgICAgICBieSA9IC0gYnk7CisJICAgICAgICBieiA9IC0gYno7CisJICAgICAgICBidyA9IC0gYnc7CisJICAgIH0KKwkgICAgLy8gY2FsY3VsYXRlIGNvZWZmaWNpZW50cworCSAgICBpZiAoICgxLjAgLSBjb3NvbSkgPiAwLjAwMDAwMSApIHsKKwkgICAgICAgIC8vIHN0YW5kYXJkIGNhc2UgKHNsZXJwKQorCSAgICAgICAgb21lZ2EgID0gTWF0aC5hY29zKGNvc29tKTsKKwkgICAgICAgIHNpbm9tICA9IE1hdGguc2luKG9tZWdhKTsKKwkgICAgICAgIHNjYWxlMCA9IE1hdGguc2luKCgxLjAgLSB0KSAqIG9tZWdhKSAvIHNpbm9tOworCSAgICAgICAgc2NhbGUxID0gTWF0aC5zaW4odCAqIG9tZWdhKSAvIHNpbm9tOworCSAgICB9IGVsc2UgeyAgICAgICAgCisJICAgICAgICAvLyAiZnJvbSIgYW5kICJ0byIgcXVhdGVybmlvbnMgYXJlIHZlcnkgY2xvc2UgCisJICAgICAgICAvLyAgLi4uIHNvIHdlIGNhbiBkbyBhIGxpbmVhciBpbnRlcnBvbGF0aW9uCisJICAgICAgICBzY2FsZTAgPSAxLjAgLSB0OworCSAgICAgICAgc2NhbGUxID0gdDsKKwkgICAgfQorCSAgICAvLyBjYWxjdWxhdGUgZmluYWwgdmFsdWVzCisJICAgIG91dFswXSA9IHNjYWxlMCAqIGF4ICsgc2NhbGUxICogYng7CisJICAgIG91dFsxXSA9IHNjYWxlMCAqIGF5ICsgc2NhbGUxICogYnk7CisJICAgIG91dFsyXSA9IHNjYWxlMCAqIGF6ICsgc2NhbGUxICogYno7CisJICAgIG91dFszXSA9IHNjYWxlMCAqIGF3ICsgc2NhbGUxICogYnc7CisJICAgIAorCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBQZXJmb3JtcyBhIHNwaGVyaWNhbCBsaW5lYXIgaW50ZXJwb2xhdGlvbiB3aXRoIHR3byBjb250cm9sIHBvaW50cworCSAqCisJICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCisJICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHtxdWF0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEBwYXJhbSB7cXVhdH0gYyB0aGUgdGhpcmQgb3BlcmFuZAorCSAqIEBwYXJhbSB7cXVhdH0gZCB0aGUgZm91cnRoIG9wZXJhbmQKKwkgKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudAorCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKi8KKwlxdWF0LnNxbGVycCA9IChmdW5jdGlvbiAoKSB7CisJICB2YXIgdGVtcDEgPSBxdWF0LmNyZWF0ZSgpOworCSAgdmFyIHRlbXAyID0gcXVhdC5jcmVhdGUoKTsKKwkgIAorCSAgcmV0dXJuIGZ1bmN0aW9uIChvdXQsIGEsIGIsIGMsIGQsIHQpIHsKKwkgICAgcXVhdC5zbGVycCh0ZW1wMSwgYSwgZCwgdCk7CisJICAgIHF1YXQuc2xlcnAodGVtcDIsIGIsIGMsIHQpOworCSAgICBxdWF0LnNsZXJwKG91dCwgdGVtcDEsIHRlbXAyLCAyICogdCAqICgxIC0gdCkpOworCSAgICAKKwkgICAgcmV0dXJuIG91dDsKKwkgIH07CisJfSgpKTsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIGludmVyc2Ugb2YgYSBxdWF0CisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge3F1YXR9IGEgcXVhdCB0byBjYWxjdWxhdGUgaW52ZXJzZSBvZgorCSAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKwkgKi8KKwlxdWF0LmludmVydCA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLAorCSAgICAgICAgZG90ID0gYTAqYTAgKyBhMSphMSArIGEyKmEyICsgYTMqYTMsCisJICAgICAgICBpbnZEb3QgPSBkb3QgPyAxLjAvZG90IDogMDsKKwkgICAgCisJICAgIC8vIFRPRE86IFdvdWxkIGJlIGZhc3RlciB0byByZXR1cm4gWzAsMCwwLDBdIGltbWVkaWF0ZWx5IGlmIGRvdCA9PSAwCisKKwkgICAgb3V0WzBdID0gLWEwKmludkRvdDsKKwkgICAgb3V0WzFdID0gLWExKmludkRvdDsKKwkgICAgb3V0WzJdID0gLWEyKmludkRvdDsKKwkgICAgb3V0WzNdID0gYTMqaW52RG90OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBjb25qdWdhdGUgb2YgYSBxdWF0CisJICogSWYgdGhlIHF1YXRlcm5pb24gaXMgbm9ybWFsaXplZCwgdGhpcyBmdW5jdGlvbiBpcyBmYXN0ZXIgdGhhbiBxdWF0LmludmVyc2UgYW5kIHByb2R1Y2VzIHRoZSBzYW1lIHJlc3VsdC4KKwkgKgorCSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorCSAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIGNhbGN1bGF0ZSBjb25qdWdhdGUgb2YKKwkgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisJICovCisJcXVhdC5jb25qdWdhdGUgPSBmdW5jdGlvbiAob3V0LCBhKSB7CisJICAgIG91dFswXSA9IC1hWzBdOworCSAgICBvdXRbMV0gPSAtYVsxXTsKKwkgICAgb3V0WzJdID0gLWFbMl07CisJICAgIG91dFszXSA9IGFbM107CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIGxlbmd0aCBvZiBhIHF1YXQKKwkgKgorCSAqIEBwYXJhbSB7cXVhdH0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIGxlbmd0aCBvZgorCSAqIEByZXR1cm5zIHtOdW1iZXJ9IGxlbmd0aCBvZiBhCisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5sZW5ndGggPSB2ZWM0Lmxlbmd0aDsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgcXVhdC5sZW5ndGh9CisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5sZW4gPSBxdWF0Lmxlbmd0aDsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgcXVhdAorCSAqCisJICogQHBhcmFtIHtxdWF0fSBhIHZlY3RvciB0byBjYWxjdWxhdGUgc3F1YXJlZCBsZW5ndGggb2YKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGxlbmd0aCBvZiBhCisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5zcXVhcmVkTGVuZ3RoID0gdmVjNC5zcXVhcmVkTGVuZ3RoOworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayBxdWF0LnNxdWFyZWRMZW5ndGh9CisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5zcXJMZW4gPSBxdWF0LnNxdWFyZWRMZW5ndGg7CisKKwkvKioKKwkgKiBOb3JtYWxpemUgYSBxdWF0CisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKwkgKiBAcGFyYW0ge3F1YXR9IGEgcXVhdGVybmlvbiB0byBub3JtYWxpemUKKwkgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5ub3JtYWxpemUgPSB2ZWM0Lm5vcm1hbGl6ZTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBxdWF0ZXJuaW9uIGZyb20gdGhlIGdpdmVuIDN4MyByb3RhdGlvbiBtYXRyaXguCisJICoKKwkgKiBOT1RFOiBUaGUgcmVzdWx0YW50IHF1YXRlcm5pb24gaXMgbm90IG5vcm1hbGl6ZWQsIHNvIHlvdSBzaG91bGQgYmUgc3VyZQorCSAqIHRvIHJlbm9ybWFsaXplIHRoZSBxdWF0ZXJuaW9uIHlvdXJzZWxmIHdoZXJlIG5lY2Vzc2FyeS4KKwkgKgorCSAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorCSAqIEBwYXJhbSB7bWF0M30gbSByb3RhdGlvbiBtYXRyaXgKKwkgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisJICogQGZ1bmN0aW9uCisJICovCisJcXVhdC5mcm9tTWF0MyA9IGZ1bmN0aW9uKG91dCwgbSkgeworCSAgICAvLyBBbGdvcml0aG0gaW4gS2VuIFNob2VtYWtlJ3MgYXJ0aWNsZSBpbiAxOTg3IFNJR0dSQVBIIGNvdXJzZSBub3RlcworCSAgICAvLyBhcnRpY2xlICJRdWF0ZXJuaW9uIENhbGN1bHVzIGFuZCBGYXN0IEFuaW1hdGlvbiIuCisJICAgIHZhciBmVHJhY2UgPSBtWzBdICsgbVs0XSArIG1bOF07CisJICAgIHZhciBmUm9vdDsKKworCSAgICBpZiAoIGZUcmFjZSA+IDAuMCApIHsKKwkgICAgICAgIC8vIHx3fCA+IDEvMiwgbWF5IGFzIHdlbGwgY2hvb3NlIHcgPiAxLzIKKwkgICAgICAgIGZSb290ID0gTWF0aC5zcXJ0KGZUcmFjZSArIDEuMCk7ICAvLyAydworCSAgICAgICAgb3V0WzNdID0gMC41ICogZlJvb3Q7CisJICAgICAgICBmUm9vdCA9IDAuNS9mUm9vdDsgIC8vIDEvKDR3KQorCSAgICAgICAgb3V0WzBdID0gKG1bNV0tbVs3XSkqZlJvb3Q7CisJICAgICAgICBvdXRbMV0gPSAobVs2XS1tWzJdKSpmUm9vdDsKKwkgICAgICAgIG91dFsyXSA9IChtWzFdLW1bM10pKmZSb290OworCSAgICB9IGVsc2UgeworCSAgICAgICAgLy8gfHd8IDw9IDEvMgorCSAgICAgICAgdmFyIGkgPSAwOworCSAgICAgICAgaWYgKCBtWzRdID4gbVswXSApCisJICAgICAgICAgIGkgPSAxOworCSAgICAgICAgaWYgKCBtWzhdID4gbVtpKjMraV0gKQorCSAgICAgICAgICBpID0gMjsKKwkgICAgICAgIHZhciBqID0gKGkrMSklMzsKKwkgICAgICAgIHZhciBrID0gKGkrMiklMzsKKwkgICAgICAgIAorCSAgICAgICAgZlJvb3QgPSBNYXRoLnNxcnQobVtpKjMraV0tbVtqKjMral0tbVtrKjMra10gKyAxLjApOworCSAgICAgICAgb3V0W2ldID0gMC41ICogZlJvb3Q7CisJICAgICAgICBmUm9vdCA9IDAuNSAvIGZSb290OworCSAgICAgICAgb3V0WzNdID0gKG1baiozK2tdIC0gbVtrKjMral0pICogZlJvb3Q7CisJICAgICAgICBvdXRbal0gPSAobVtqKjMraV0gKyBtW2kqMytqXSkgKiBmUm9vdDsKKwkgICAgICAgIG91dFtrXSA9IChtW2sqMytpXSArIG1baSozK2tdKSAqIGZSb290OworCSAgICB9CisJICAgIAorCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgcXVhdGVuaW9uCisJICoKKwkgKiBAcGFyYW0ge3F1YXR9IHZlYyB2ZWN0b3IgdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCisJICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IKKwkgKi8KKwlxdWF0LnN0ciA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHJldHVybiAncXVhdCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgYVszXSArICcpJzsKKwl9OworCisJbW9kdWxlLmV4cG9ydHMgPSBxdWF0OworCisKKy8qKiovIH0sCisvKiA3ICovCisvKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKKworCS8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorCW9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCisJaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworCXRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKKwljb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKwlmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisJVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKwlhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworCVRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisJSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisJRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisJQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorCUxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisJT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorCVRIRSBTT0ZUV0FSRS4gKi8KKworCXZhciBnbE1hdHJpeCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CisKKwkvKioKKwkgKiBAY2xhc3MgMyBEaW1lbnNpb25hbCBWZWN0b3IKKwkgKiBAbmFtZSB2ZWMzCisJICovCisJdmFyIHZlYzMgPSB7fTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHZlYzMKKwkgKgorCSAqIEByZXR1cm5zIHt2ZWMzfSBhIG5ldyAzRCB2ZWN0b3IKKwkgKi8KKwl2ZWMzLmNyZWF0ZSA9IGZ1bmN0aW9uKCkgeworCSAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoMyk7CisJICAgIG91dFswXSA9IDA7CisJICAgIG91dFsxXSA9IDA7CisJICAgIG91dFsyXSA9IDA7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBuZXcgdmVjMyBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIHZlY3RvcgorCSAqCisJICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBjbG9uZQorCSAqIEByZXR1cm5zIHt2ZWMzfSBhIG5ldyAzRCB2ZWN0b3IKKwkgKi8KKwl2ZWMzLmNsb25lID0gZnVuY3Rpb24oYSkgeworCSAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoMyk7CisJICAgIG91dFswXSA9IGFbMF07CisJICAgIG91dFsxXSA9IGFbMV07CisJICAgIG91dFsyXSA9IGFbMl07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENyZWF0ZXMgYSBuZXcgdmVjMyBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXMKKwkgKgorCSAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50CisJICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKKwkgKiBAcGFyYW0ge051bWJlcn0geiBaIGNvbXBvbmVudAorCSAqIEByZXR1cm5zIHt2ZWMzfSBhIG5ldyAzRCB2ZWN0b3IKKwkgKi8KKwl2ZWMzLmZyb21WYWx1ZXMgPSBmdW5jdGlvbih4LCB5LCB6KSB7CisJICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSgzKTsKKwkgICAgb3V0WzBdID0geDsKKwkgICAgb3V0WzFdID0geTsKKwkgICAgb3V0WzJdID0gejsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHZlYzMgdG8gYW5vdGhlcgorCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIHNvdXJjZSB2ZWN0b3IKKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIG91dFswXSA9IGFbMF07CisJICAgIG91dFsxXSA9IGFbMV07CisJICAgIG91dFsyXSA9IGFbMl07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFNldCB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzMgdG8gdGhlIGdpdmVuIHZhbHVlcworCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAorCSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50CisJICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHksIHopIHsKKwkgICAgb3V0WzBdID0geDsKKwkgICAgb3V0WzFdID0geTsKKwkgICAgb3V0WzJdID0gejsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWRkcyB0d28gdmVjMydzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSArIGJbMF07CisJICAgIG91dFsxXSA9IGFbMV0gKyBiWzFdOworCSAgICBvdXRbMl0gPSBhWzJdICsgYlsyXTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogU3VidHJhY3RzIHZlY3RvciBiIGZyb20gdmVjdG9yIGEKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLnN1YnRyYWN0ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisJICAgIG91dFswXSA9IGFbMF0gLSBiWzBdOworCSAgICBvdXRbMV0gPSBhWzFdIC0gYlsxXTsKKwkgICAgb3V0WzJdID0gYVsyXSAtIGJbMl07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5zdWJ0cmFjdH0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWMzLnN1YiA9IHZlYzMuc3VidHJhY3Q7CisKKwkvKioKKwkgKiBNdWx0aXBsaWVzIHR3byB2ZWMzJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisJICAgIG91dFswXSA9IGFbMF0gKiBiWzBdOworCSAgICBvdXRbMV0gPSBhWzFdICogYlsxXTsKKwkgICAgb3V0WzJdID0gYVsyXSAqIGJbMl07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5tdWx0aXBseX0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWMzLm11bCA9IHZlYzMubXVsdGlwbHk7CisKKwkvKioKKwkgKiBEaXZpZGVzIHR3byB2ZWMzJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLmRpdmlkZSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICBvdXRbMF0gPSBhWzBdIC8gYlswXTsKKwkgICAgb3V0WzFdID0gYVsxXSAvIGJbMV07CisJICAgIG91dFsyXSA9IGFbMl0gLyBiWzJdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMuZGl2aWRlfQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzMuZGl2ID0gdmVjMy5kaXZpZGU7CisKKwkvKioKKwkgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIG9mIHR3byB2ZWMzJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLm1pbiA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICBvdXRbMF0gPSBNYXRoLm1pbihhWzBdLCBiWzBdKTsKKwkgICAgb3V0WzFdID0gTWF0aC5taW4oYVsxXSwgYlsxXSk7CisJICAgIG91dFsyXSA9IE1hdGgubWluKGFbMl0sIGJbMl0pOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG9mIHR3byB2ZWMzJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLm1heCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICBvdXRbMF0gPSBNYXRoLm1heChhWzBdLCBiWzBdKTsKKwkgICAgb3V0WzFdID0gTWF0aC5tYXgoYVsxXSwgYlsxXSk7CisJICAgIG91dFsyXSA9IE1hdGgubWF4KGFbMl0sIGJbMl0pOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTY2FsZXMgYSB2ZWMzIGJ5IGEgc2NhbGFyIG51bWJlcgorCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIHZlY3RvciB0byBzY2FsZQorCSAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5CisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSAqIGI7CisJICAgIG91dFsxXSA9IGFbMV0gKiBiOworCSAgICBvdXRbMl0gPSBhWzJdICogYjsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWRkcyB0d28gdmVjMydzIGFmdGVyIHNjYWxpbmcgdGhlIHNlY29uZCBvcGVyYW5kIGJ5IGEgc2NhbGFyIHZhbHVlCisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcGFyYW0ge051bWJlcn0gc2NhbGUgdGhlIGFtb3VudCB0byBzY2FsZSBiIGJ5IGJlZm9yZSBhZGRpbmcKKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy5zY2FsZUFuZEFkZCA9IGZ1bmN0aW9uKG91dCwgYSwgYiwgc2NhbGUpIHsKKwkgICAgb3V0WzBdID0gYVswXSArIChiWzBdICogc2NhbGUpOworCSAgICBvdXRbMV0gPSBhWzFdICsgKGJbMV0gKiBzY2FsZSk7CisJICAgIG91dFsyXSA9IGFbMl0gKyAoYlsyXSAqIHNjYWxlKTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzMncworCSAqCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgorCSAqLworCXZlYzMuZGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7CisJICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCisJICAgICAgICB5ID0gYlsxXSAtIGFbMV0sCisJICAgICAgICB6ID0gYlsyXSAtIGFbMl07CisJICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5ICsgeip6KTsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLmRpc3RhbmNlfQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzMuZGlzdCA9IHZlYzMuZGlzdGFuY2U7CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWMzJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgorCSAqLworCXZlYzMuc3F1YXJlZERpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgeworCSAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAorCSAgICAgICAgeSA9IGJbMV0gLSBhWzFdLAorCSAgICAgICAgeiA9IGJbMl0gLSBhWzJdOworCSAgICByZXR1cm4geCp4ICsgeSp5ICsgeip6OworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMuc3F1YXJlZERpc3RhbmNlfQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzMuc3FyRGlzdCA9IHZlYzMuc3F1YXJlZERpc3RhbmNlOworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgbGVuZ3RoIG9mIGEgdmVjMworCSAqCisJICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCisJICogQHJldHVybnMge051bWJlcn0gbGVuZ3RoIG9mIGEKKwkgKi8KKwl2ZWMzLmxlbmd0aCA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHZhciB4ID0gYVswXSwKKwkgICAgICAgIHkgPSBhWzFdLAorCSAgICAgICAgeiA9IGFbMl07CisJICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5ICsgeip6KTsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLmxlbmd0aH0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWMzLmxlbiA9IHZlYzMubGVuZ3RoOworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBsZW5ndGggb2YgYSB2ZWMzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdmVjdG9yIHRvIGNhbGN1bGF0ZSBzcXVhcmVkIGxlbmd0aCBvZgorCSAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgbGVuZ3RoIG9mIGEKKwkgKi8KKwl2ZWMzLnNxdWFyZWRMZW5ndGggPSBmdW5jdGlvbiAoYSkgeworCSAgICB2YXIgeCA9IGFbMF0sCisJICAgICAgICB5ID0gYVsxXSwKKwkgICAgICAgIHogPSBhWzJdOworCSAgICByZXR1cm4geCp4ICsgeSp5ICsgeip6OworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMuc3F1YXJlZExlbmd0aH0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWMzLnNxckxlbiA9IHZlYzMuc3F1YXJlZExlbmd0aDsKKworCS8qKgorCSAqIE5lZ2F0ZXMgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWMzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gbmVnYXRlCisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMubmVnYXRlID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICAgIG91dFswXSA9IC1hWzBdOworCSAgICBvdXRbMV0gPSAtYVsxXTsKKwkgICAgb3V0WzJdID0gLWFbMl07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFJldHVybnMgdGhlIGludmVyc2Ugb2YgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWMzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gaW52ZXJ0CisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMuaW52ZXJzZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgb3V0WzBdID0gMS4wIC8gYVswXTsKKwkgIG91dFsxXSA9IDEuMCAvIGFbMV07CisJICBvdXRbMl0gPSAxLjAgLyBhWzJdOworCSAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogTm9ybWFsaXplIGEgdmVjMworCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdmVjdG9yIHRvIG5vcm1hbGl6ZQorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICB2YXIgeCA9IGFbMF0sCisJICAgICAgICB5ID0gYVsxXSwKKwkgICAgICAgIHogPSBhWzJdOworCSAgICB2YXIgbGVuID0geCp4ICsgeSp5ICsgeip6OworCSAgICBpZiAobGVuID4gMCkgeworCSAgICAgICAgLy9UT0RPOiBldmFsdWF0ZSB1c2Ugb2YgZ2xtX2ludnNxcnQgaGVyZT8KKwkgICAgICAgIGxlbiA9IDEgLyBNYXRoLnNxcnQobGVuKTsKKwkgICAgICAgIG91dFswXSA9IGFbMF0gKiBsZW47CisJICAgICAgICBvdXRbMV0gPSBhWzFdICogbGVuOworCSAgICAgICAgb3V0WzJdID0gYVsyXSAqIGxlbjsKKwkgICAgfQorCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBkb3QgcHJvZHVjdCBvZiB0d28gdmVjMydzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge051bWJlcn0gZG90IHByb2R1Y3Qgb2YgYSBhbmQgYgorCSAqLworCXZlYzMuZG90ID0gZnVuY3Rpb24gKGEsIGIpIHsKKwkgICAgcmV0dXJuIGFbMF0gKiBiWzBdICsgYVsxXSAqIGJbMV0gKyBhWzJdICogYlsyXTsKKwl9OworCisJLyoqCisJICogQ29tcHV0ZXMgdGhlIGNyb3NzIHByb2R1Y3Qgb2YgdHdvIHZlYzMncworCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMuY3Jvc3MgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sCisJICAgICAgICBieCA9IGJbMF0sIGJ5ID0gYlsxXSwgYnogPSBiWzJdOworCisJICAgIG91dFswXSA9IGF5ICogYnogLSBheiAqIGJ5OworCSAgICBvdXRbMV0gPSBheiAqIGJ4IC0gYXggKiBiejsKKwkgICAgb3V0WzJdID0gYXggKiBieSAtIGF5ICogYng7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gdmVjMydzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMubGVycCA9IGZ1bmN0aW9uIChvdXQsIGEsIGIsIHQpIHsKKwkgICAgdmFyIGF4ID0gYVswXSwKKwkgICAgICAgIGF5ID0gYVsxXSwKKwkgICAgICAgIGF6ID0gYVsyXTsKKwkgICAgb3V0WzBdID0gYXggKyB0ICogKGJbMF0gLSBheCk7CisJICAgIG91dFsxXSA9IGF5ICsgdCAqIChiWzFdIC0gYXkpOworCSAgICBvdXRbMl0gPSBheiArIHQgKiAoYlsyXSAtIGF6KTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUGVyZm9ybXMgYSBoZXJtaXRlIGludGVycG9sYXRpb24gd2l0aCB0d28gY29udHJvbCBwb2ludHMKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjM30gYyB0aGUgdGhpcmQgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjM30gZCB0aGUgZm91cnRoIG9wZXJhbmQKKwkgKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMuaGVybWl0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIsIGMsIGQsIHQpIHsKKwkgIHZhciBmYWN0b3JUaW1lczIgPSB0ICogdCwKKwkgICAgICBmYWN0b3IxID0gZmFjdG9yVGltZXMyICogKDIgKiB0IC0gMykgKyAxLAorCSAgICAgIGZhY3RvcjIgPSBmYWN0b3JUaW1lczIgKiAodCAtIDIpICsgdCwKKwkgICAgICBmYWN0b3IzID0gZmFjdG9yVGltZXMyICogKHQgLSAxKSwKKwkgICAgICBmYWN0b3I0ID0gZmFjdG9yVGltZXMyICogKDMgLSAyICogdCk7CisJICAKKwkgIG91dFswXSA9IGFbMF0gKiBmYWN0b3IxICsgYlswXSAqIGZhY3RvcjIgKyBjWzBdICogZmFjdG9yMyArIGRbMF0gKiBmYWN0b3I0OworCSAgb3V0WzFdID0gYVsxXSAqIGZhY3RvcjEgKyBiWzFdICogZmFjdG9yMiArIGNbMV0gKiBmYWN0b3IzICsgZFsxXSAqIGZhY3RvcjQ7CisJICBvdXRbMl0gPSBhWzJdICogZmFjdG9yMSArIGJbMl0gKiBmYWN0b3IyICsgY1syXSAqIGZhY3RvcjMgKyBkWzJdICogZmFjdG9yNDsKKwkgIAorCSAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUGVyZm9ybXMgYSBiZXppZXIgaW50ZXJwb2xhdGlvbiB3aXRoIHR3byBjb250cm9sIHBvaW50cworCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBjIHRoZSB0aGlyZCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBkIHRoZSBmb3VydGggb3BlcmFuZAorCSAqIEBwYXJhbSB7TnVtYmVyfSB0IGludGVycG9sYXRpb24gYW1vdW50IGJldHdlZW4gdGhlIHR3byBpbnB1dHMKKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy5iZXppZXIgPSBmdW5jdGlvbiAob3V0LCBhLCBiLCBjLCBkLCB0KSB7CisJICB2YXIgaW52ZXJzZUZhY3RvciA9IDEgLSB0LAorCSAgICAgIGludmVyc2VGYWN0b3JUaW1lc1R3byA9IGludmVyc2VGYWN0b3IgKiBpbnZlcnNlRmFjdG9yLAorCSAgICAgIGZhY3RvclRpbWVzMiA9IHQgKiB0LAorCSAgICAgIGZhY3RvcjEgPSBpbnZlcnNlRmFjdG9yVGltZXNUd28gKiBpbnZlcnNlRmFjdG9yLAorCSAgICAgIGZhY3RvcjIgPSAzICogdCAqIGludmVyc2VGYWN0b3JUaW1lc1R3bywKKwkgICAgICBmYWN0b3IzID0gMyAqIGZhY3RvclRpbWVzMiAqIGludmVyc2VGYWN0b3IsCisJICAgICAgZmFjdG9yNCA9IGZhY3RvclRpbWVzMiAqIHQ7CisJICAKKwkgIG91dFswXSA9IGFbMF0gKiBmYWN0b3IxICsgYlswXSAqIGZhY3RvcjIgKyBjWzBdICogZmFjdG9yMyArIGRbMF0gKiBmYWN0b3I0OworCSAgb3V0WzFdID0gYVsxXSAqIGZhY3RvcjEgKyBiWzFdICogZmFjdG9yMiArIGNbMV0gKiBmYWN0b3IzICsgZFsxXSAqIGZhY3RvcjQ7CisJICBvdXRbMl0gPSBhWzJdICogZmFjdG9yMSArIGJbMl0gKiBmYWN0b3IyICsgY1syXSAqIGZhY3RvcjMgKyBkWzJdICogZmFjdG9yNDsKKwkgIAorCSAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogR2VuZXJhdGVzIGEgcmFuZG9tIHZlY3RvciB3aXRoIHRoZSBnaXZlbiBzY2FsZQorCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge051bWJlcn0gW3NjYWxlXSBMZW5ndGggb2YgdGhlIHJlc3VsdGluZyB2ZWN0b3IuIElmIG9tbWl0dGVkLCBhIHVuaXQgdmVjdG9yIHdpbGwgYmUgcmV0dXJuZWQKKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy5yYW5kb20gPSBmdW5jdGlvbiAob3V0LCBzY2FsZSkgeworCSAgICBzY2FsZSA9IHNjYWxlIHx8IDEuMDsKKworCSAgICB2YXIgciA9IGdsTWF0cml4LlJBTkRPTSgpICogMi4wICogTWF0aC5QSTsKKwkgICAgdmFyIHogPSAoZ2xNYXRyaXguUkFORE9NKCkgKiAyLjApIC0gMS4wOworCSAgICB2YXIgelNjYWxlID0gTWF0aC5zcXJ0KDEuMC16KnopICogc2NhbGU7CisKKwkgICAgb3V0WzBdID0gTWF0aC5jb3MocikgKiB6U2NhbGU7CisJICAgIG91dFsxXSA9IE1hdGguc2luKHIpICogelNjYWxlOworCSAgICBvdXRbMl0gPSB6ICogc2NhbGU7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFRyYW5zZm9ybXMgdGhlIHZlYzMgd2l0aCBhIG1hdDQuCisJICogNHRoIHZlY3RvciBjb21wb25lbnQgaXMgaW1wbGljaXRseSAnMScKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMzfSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCisJICogQHBhcmFtIHttYXQ0fSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLnRyYW5zZm9ybU1hdDQgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKKwkgICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl0sCisJICAgICAgICB3ID0gbVszXSAqIHggKyBtWzddICogeSArIG1bMTFdICogeiArIG1bMTVdOworCSAgICB3ID0gdyB8fCAxLjA7CisJICAgIG91dFswXSA9IChtWzBdICogeCArIG1bNF0gKiB5ICsgbVs4XSAqIHogKyBtWzEyXSkgLyB3OworCSAgICBvdXRbMV0gPSAobVsxXSAqIHggKyBtWzVdICogeSArIG1bOV0gKiB6ICsgbVsxM10pIC8gdzsKKwkgICAgb3V0WzJdID0gKG1bMl0gKiB4ICsgbVs2XSAqIHkgKyBtWzEwXSAqIHogKyBtWzE0XSkgLyB3OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBUcmFuc2Zvcm1zIHRoZSB2ZWMzIHdpdGggYSBtYXQzLgorCSAqCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKwkgKiBAcGFyYW0ge21hdDR9IG0gdGhlIDN4MyBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGgKKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy50cmFuc2Zvcm1NYXQzID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7CisJICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdOworCSAgICBvdXRbMF0gPSB4ICogbVswXSArIHkgKiBtWzNdICsgeiAqIG1bNl07CisJICAgIG91dFsxXSA9IHggKiBtWzFdICsgeSAqIG1bNF0gKyB6ICogbVs3XTsKKwkgICAgb3V0WzJdID0geCAqIG1bMl0gKyB5ICogbVs1XSArIHogKiBtWzhdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBUcmFuc2Zvcm1zIHRoZSB2ZWMzIHdpdGggYSBxdWF0CisJICoKKwkgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjM30gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQorCSAqIEBwYXJhbSB7cXVhdH0gcSBxdWF0ZXJuaW9uIHRvIHRyYW5zZm9ybSB3aXRoCisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMudHJhbnNmb3JtUXVhdCA9IGZ1bmN0aW9uKG91dCwgYSwgcSkgeworCSAgICAvLyBiZW5jaG1hcmtzOiBodHRwOi8vanNwZXJmLmNvbS9xdWF0ZXJuaW9uLXRyYW5zZm9ybS12ZWMzLWltcGxlbWVudGF0aW9ucworCisJICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdLAorCSAgICAgICAgcXggPSBxWzBdLCBxeSA9IHFbMV0sIHF6ID0gcVsyXSwgcXcgPSBxWzNdLAorCisJICAgICAgICAvLyBjYWxjdWxhdGUgcXVhdCAqIHZlYworCSAgICAgICAgaXggPSBxdyAqIHggKyBxeSAqIHogLSBxeiAqIHksCisJICAgICAgICBpeSA9IHF3ICogeSArIHF6ICogeCAtIHF4ICogeiwKKwkgICAgICAgIGl6ID0gcXcgKiB6ICsgcXggKiB5IC0gcXkgKiB4LAorCSAgICAgICAgaXcgPSAtcXggKiB4IC0gcXkgKiB5IC0gcXogKiB6OworCisJICAgIC8vIGNhbGN1bGF0ZSByZXN1bHQgKiBpbnZlcnNlIHF1YXQKKwkgICAgb3V0WzBdID0gaXggKiBxdyArIGl3ICogLXF4ICsgaXkgKiAtcXogLSBpeiAqIC1xeTsKKwkgICAgb3V0WzFdID0gaXkgKiBxdyArIGl3ICogLXF5ICsgaXogKiAtcXggLSBpeCAqIC1xejsKKwkgICAgb3V0WzJdID0gaXogKiBxdyArIGl3ICogLXF6ICsgaXggKiAtcXkgLSBpeSAqIC1xeDsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUm90YXRlIGEgM0QgdmVjdG9yIGFyb3VuZCB0aGUgeC1heGlzCisJICogQHBhcmFtIHt2ZWMzfSBvdXQgVGhlIHJlY2VpdmluZyB2ZWMzCisJICogQHBhcmFtIHt2ZWMzfSBhIFRoZSB2ZWMzIHBvaW50IHRvIHJvdGF0ZQorCSAqIEBwYXJhbSB7dmVjM30gYiBUaGUgb3JpZ2luIG9mIHRoZSByb3RhdGlvbgorCSAqIEBwYXJhbSB7TnVtYmVyfSBjIFRoZSBhbmdsZSBvZiByb3RhdGlvbgorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMzLnJvdGF0ZVggPSBmdW5jdGlvbihvdXQsIGEsIGIsIGMpeworCSAgIHZhciBwID0gW10sIHI9W107CisJCSAgLy9UcmFuc2xhdGUgcG9pbnQgdG8gdGhlIG9yaWdpbgorCQkgIHBbMF0gPSBhWzBdIC0gYlswXTsKKwkJICBwWzFdID0gYVsxXSAtIGJbMV07CisJICAJcFsyXSA9IGFbMl0gLSBiWzJdOworCisJCSAgLy9wZXJmb3JtIHJvdGF0aW9uCisJCSAgclswXSA9IHBbMF07CisJCSAgclsxXSA9IHBbMV0qTWF0aC5jb3MoYykgLSBwWzJdKk1hdGguc2luKGMpOworCQkgIHJbMl0gPSBwWzFdKk1hdGguc2luKGMpICsgcFsyXSpNYXRoLmNvcyhjKTsKKworCQkgIC8vdHJhbnNsYXRlIHRvIGNvcnJlY3QgcG9zaXRpb24KKwkJICBvdXRbMF0gPSByWzBdICsgYlswXTsKKwkJICBvdXRbMV0gPSByWzFdICsgYlsxXTsKKwkJICBvdXRbMl0gPSByWzJdICsgYlsyXTsKKworCSAgCXJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFJvdGF0ZSBhIDNEIHZlY3RvciBhcm91bmQgdGhlIHktYXhpcworCSAqIEBwYXJhbSB7dmVjM30gb3V0IFRoZSByZWNlaXZpbmcgdmVjMworCSAqIEBwYXJhbSB7dmVjM30gYSBUaGUgdmVjMyBwb2ludCB0byByb3RhdGUKKwkgKiBAcGFyYW0ge3ZlYzN9IGIgVGhlIG9yaWdpbiBvZiB0aGUgcm90YXRpb24KKwkgKiBAcGFyYW0ge051bWJlcn0gYyBUaGUgYW5nbGUgb2Ygcm90YXRpb24KKwkgKiBAcmV0dXJucyB7dmVjM30gb3V0CisJICovCisJdmVjMy5yb3RhdGVZID0gZnVuY3Rpb24ob3V0LCBhLCBiLCBjKXsKKwkgIAl2YXIgcCA9IFtdLCByPVtdOworCSAgCS8vVHJhbnNsYXRlIHBvaW50IHRvIHRoZSBvcmlnaW4KKwkgIAlwWzBdID0gYVswXSAtIGJbMF07CisJICAJcFsxXSA9IGFbMV0gLSBiWzFdOworCSAgCXBbMl0gPSBhWzJdIC0gYlsyXTsKKwkgIAorCSAgCS8vcGVyZm9ybSByb3RhdGlvbgorCSAgCXJbMF0gPSBwWzJdKk1hdGguc2luKGMpICsgcFswXSpNYXRoLmNvcyhjKTsKKwkgIAlyWzFdID0gcFsxXTsKKwkgIAlyWzJdID0gcFsyXSpNYXRoLmNvcyhjKSAtIHBbMF0qTWF0aC5zaW4oYyk7CisJICAKKwkgIAkvL3RyYW5zbGF0ZSB0byBjb3JyZWN0IHBvc2l0aW9uCisJICAJb3V0WzBdID0gclswXSArIGJbMF07CisJICAJb3V0WzFdID0gclsxXSArIGJbMV07CisJICAJb3V0WzJdID0gclsyXSArIGJbMl07CisJICAKKwkgIAlyZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBSb3RhdGUgYSAzRCB2ZWN0b3IgYXJvdW5kIHRoZSB6LWF4aXMKKwkgKiBAcGFyYW0ge3ZlYzN9IG91dCBUaGUgcmVjZWl2aW5nIHZlYzMKKwkgKiBAcGFyYW0ge3ZlYzN9IGEgVGhlIHZlYzMgcG9pbnQgdG8gcm90YXRlCisJICogQHBhcmFtIHt2ZWMzfSBiIFRoZSBvcmlnaW4gb2YgdGhlIHJvdGF0aW9uCisJICogQHBhcmFtIHtOdW1iZXJ9IGMgVGhlIGFuZ2xlIG9mIHJvdGF0aW9uCisJICogQHJldHVybnMge3ZlYzN9IG91dAorCSAqLworCXZlYzMucm90YXRlWiA9IGZ1bmN0aW9uKG91dCwgYSwgYiwgYyl7CisJICAJdmFyIHAgPSBbXSwgcj1bXTsKKwkgIAkvL1RyYW5zbGF0ZSBwb2ludCB0byB0aGUgb3JpZ2luCisJICAJcFswXSA9IGFbMF0gLSBiWzBdOworCSAgCXBbMV0gPSBhWzFdIC0gYlsxXTsKKwkgIAlwWzJdID0gYVsyXSAtIGJbMl07CisJICAKKwkgIAkvL3BlcmZvcm0gcm90YXRpb24KKwkgIAlyWzBdID0gcFswXSpNYXRoLmNvcyhjKSAtIHBbMV0qTWF0aC5zaW4oYyk7CisJICAJclsxXSA9IHBbMF0qTWF0aC5zaW4oYykgKyBwWzFdKk1hdGguY29zKGMpOworCSAgCXJbMl0gPSBwWzJdOworCSAgCisJICAJLy90cmFuc2xhdGUgdG8gY29ycmVjdCBwb3NpdGlvbgorCSAgCW91dFswXSA9IHJbMF0gKyBiWzBdOworCSAgCW91dFsxXSA9IHJbMV0gKyBiWzFdOworCSAgCW91dFsyXSA9IHJbMl0gKyBiWzJdOworCSAgCisJICAJcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUGVyZm9ybSBzb21lIG9wZXJhdGlvbiBvdmVyIGFuIGFycmF5IG9mIHZlYzNzLgorCSAqCisJICogQHBhcmFtIHtBcnJheX0gYSB0aGUgYXJyYXkgb2YgdmVjdG9ycyB0byBpdGVyYXRlIG92ZXIKKwkgKiBAcGFyYW0ge051bWJlcn0gc3RyaWRlIE51bWJlciBvZiBlbGVtZW50cyBiZXR3ZWVuIHRoZSBzdGFydCBvZiBlYWNoIHZlYzMuIElmIDAgYXNzdW1lcyB0aWdodGx5IHBhY2tlZAorCSAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNraXAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkKKwkgKiBAcGFyYW0ge051bWJlcn0gY291bnQgTnVtYmVyIG9mIHZlYzNzIHRvIGl0ZXJhdGUgb3Zlci4gSWYgMCBpdGVyYXRlcyBvdmVyIGVudGlyZSBhcnJheQorCSAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIEZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggdmVjdG9yIGluIHRoZSBhcnJheQorCSAqIEBwYXJhbSB7T2JqZWN0fSBbYXJnXSBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIHBhc3MgdG8gZm4KKwkgKiBAcmV0dXJucyB7QXJyYXl9IGEKKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWMzLmZvckVhY2ggPSAoZnVuY3Rpb24oKSB7CisJICAgIHZhciB2ZWMgPSB2ZWMzLmNyZWF0ZSgpOworCisJICAgIHJldHVybiBmdW5jdGlvbihhLCBzdHJpZGUsIG9mZnNldCwgY291bnQsIGZuLCBhcmcpIHsKKwkgICAgICAgIHZhciBpLCBsOworCSAgICAgICAgaWYoIXN0cmlkZSkgeworCSAgICAgICAgICAgIHN0cmlkZSA9IDM7CisJICAgICAgICB9CisKKwkgICAgICAgIGlmKCFvZmZzZXQpIHsKKwkgICAgICAgICAgICBvZmZzZXQgPSAwOworCSAgICAgICAgfQorCSAgICAgICAgCisJICAgICAgICBpZihjb3VudCkgeworCSAgICAgICAgICAgIGwgPSBNYXRoLm1pbigoY291bnQgKiBzdHJpZGUpICsgb2Zmc2V0LCBhLmxlbmd0aCk7CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIGwgPSBhLmxlbmd0aDsKKwkgICAgICAgIH0KKworCSAgICAgICAgZm9yKGkgPSBvZmZzZXQ7IGkgPCBsOyBpICs9IHN0cmlkZSkgeworCSAgICAgICAgICAgIHZlY1swXSA9IGFbaV07IHZlY1sxXSA9IGFbaSsxXTsgdmVjWzJdID0gYVtpKzJdOworCSAgICAgICAgICAgIGZuKHZlYywgdmVjLCBhcmcpOworCSAgICAgICAgICAgIGFbaV0gPSB2ZWNbMF07IGFbaSsxXSA9IHZlY1sxXTsgYVtpKzJdID0gdmVjWzJdOworCSAgICAgICAgfQorCSAgICAgICAgCisJICAgICAgICByZXR1cm4gYTsKKwkgICAgfTsKKwl9KSgpOworCisJLyoqCisJICogR2V0IHRoZSBhbmdsZSBiZXR3ZWVuIHR3byAzRCB2ZWN0b3JzCisJICogQHBhcmFtIHt2ZWMzfSBhIFRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMzfSBiIFRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBhbmdsZSBpbiByYWRpYW5zCisJICovCisJdmVjMy5hbmdsZSA9IGZ1bmN0aW9uKGEsIGIpIHsKKwkgICAKKwkgICAgdmFyIHRlbXBBID0gdmVjMy5mcm9tVmFsdWVzKGFbMF0sIGFbMV0sIGFbMl0pOworCSAgICB2YXIgdGVtcEIgPSB2ZWMzLmZyb21WYWx1ZXMoYlswXSwgYlsxXSwgYlsyXSk7CisJIAorCSAgICB2ZWMzLm5vcm1hbGl6ZSh0ZW1wQSwgdGVtcEEpOworCSAgICB2ZWMzLm5vcm1hbGl6ZSh0ZW1wQiwgdGVtcEIpOworCSAKKwkgICAgdmFyIGNvc2luZSA9IHZlYzMuZG90KHRlbXBBLCB0ZW1wQik7CisKKwkgICAgaWYoY29zaW5lID4gMS4wKXsKKwkgICAgICAgIHJldHVybiAwOworCSAgICB9IGVsc2UgeworCSAgICAgICAgcmV0dXJuIE1hdGguYWNvcyhjb3NpbmUpOworCSAgICB9ICAgICAKKwl9OworCisJLyoqCisJICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHZlY3RvcgorCSAqCisJICogQHBhcmFtIHt2ZWMzfSB2ZWMgdmVjdG9yIHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZworCSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmVjdG9yCisJICovCisJdmVjMy5zdHIgPSBmdW5jdGlvbiAoYSkgeworCSAgICByZXR1cm4gJ3ZlYzMoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJyknOworCX07CisKKwltb2R1bGUuZXhwb3J0cyA9IHZlYzM7CisKKworLyoqKi8gfSwKKy8qIDggKi8KKy8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworCisJLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisJb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKwlpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisJdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorCWNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworCWZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKwlUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorCWFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCisJVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKwlJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKwlGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKwlBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisJTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKwlPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCisJVEhFIFNPRlRXQVJFLiAqLworCisJdmFyIGdsTWF0cml4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKKworCS8qKgorCSAqIEBjbGFzcyA0IERpbWVuc2lvbmFsIFZlY3RvcgorCSAqIEBuYW1lIHZlYzQKKwkgKi8KKwl2YXIgdmVjNCA9IHt9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldywgZW1wdHkgdmVjNAorCSAqCisJICogQHJldHVybnMge3ZlYzR9IGEgbmV3IDREIHZlY3RvcgorCSAqLworCXZlYzQuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisJICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSg0KTsKKwkgICAgb3V0WzBdID0gMDsKKwkgICAgb3V0WzFdID0gMDsKKwkgICAgb3V0WzJdID0gMDsKKwkgICAgb3V0WzNdID0gMDsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldyB2ZWM0IGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgdmVjdG9yCisJICoKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIGNsb25lCisJICogQHJldHVybnMge3ZlYzR9IGEgbmV3IDREIHZlY3RvcgorCSAqLworCXZlYzQuY2xvbmUgPSBmdW5jdGlvbihhKSB7CisJICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSg0KTsKKwkgICAgb3V0WzBdID0gYVswXTsKKwkgICAgb3V0WzFdID0gYVsxXTsKKwkgICAgb3V0WzJdID0gYVsyXTsKKwkgICAgb3V0WzNdID0gYVszXTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ3JlYXRlcyBhIG5ldyB2ZWM0IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHZhbHVlcworCSAqCisJICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKKwkgKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAorCSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50CisJICogQHBhcmFtIHtOdW1iZXJ9IHcgVyBjb21wb25lbnQKKwkgKiBAcmV0dXJucyB7dmVjNH0gYSBuZXcgNEQgdmVjdG9yCisJICovCisJdmVjNC5mcm9tVmFsdWVzID0gZnVuY3Rpb24oeCwgeSwgeiwgdykgeworCSAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoNCk7CisJICAgIG91dFswXSA9IHg7CisJICAgIG91dFsxXSA9IHk7CisJICAgIG91dFsyXSA9IHo7CisJICAgIG91dFszXSA9IHc7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSB2ZWM0IHRvIGFub3RoZXIKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBzb3VyY2UgdmVjdG9yCisJICogQHJldHVybnMge3ZlYzR9IG91dAorCSAqLworCXZlYzQuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICBvdXRbMF0gPSBhWzBdOworCSAgICBvdXRbMV0gPSBhWzFdOworCSAgICBvdXRbMl0gPSBhWzJdOworCSAgICBvdXRbM10gPSBhWzNdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWM0IHRvIHRoZSBnaXZlbiB2YWx1ZXMKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKKwkgKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAorCSAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50CisJICogQHBhcmFtIHtOdW1iZXJ9IHcgVyBjb21wb25lbnQKKwkgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisJICovCisJdmVjNC5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHksIHosIHcpIHsKKwkgICAgb3V0WzBdID0geDsKKwkgICAgb3V0WzFdID0geTsKKwkgICAgb3V0WzJdID0gejsKKwkgICAgb3V0WzNdID0gdzsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWRkcyB0d28gdmVjNCdzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisJICovCisJdmVjNC5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSArIGJbMF07CisJICAgIG91dFsxXSA9IGFbMV0gKyBiWzFdOworCSAgICBvdXRbMl0gPSBhWzJdICsgYlsyXTsKKwkgICAgb3V0WzNdID0gYVszXSArIGJbM107CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFN1YnRyYWN0cyB2ZWN0b3IgYiBmcm9tIHZlY3RvciBhCisJICoKKwkgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisJICovCisJdmVjNC5zdWJ0cmFjdCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICBvdXRbMF0gPSBhWzBdIC0gYlswXTsKKwkgICAgb3V0WzFdID0gYVsxXSAtIGJbMV07CisJICAgIG91dFsyXSA9IGFbMl0gLSBiWzJdOworCSAgICBvdXRbM10gPSBhWzNdIC0gYlszXTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LnN1YnRyYWN0fQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzQuc3ViID0gdmVjNC5zdWJ0cmFjdDsKKworCS8qKgorCSAqIE11bHRpcGxpZXMgdHdvIHZlYzQncworCSAqCisJICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge3ZlYzR9IG91dAorCSAqLworCXZlYzQubXVsdGlwbHkgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSAqIGJbMF07CisJICAgIG91dFsxXSA9IGFbMV0gKiBiWzFdOworCSAgICBvdXRbMl0gPSBhWzJdICogYlsyXTsKKwkgICAgb3V0WzNdID0gYVszXSAqIGJbM107CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjNC5tdWx0aXBseX0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWM0Lm11bCA9IHZlYzQubXVsdGlwbHk7CisKKwkvKioKKwkgKiBEaXZpZGVzIHR3byB2ZWM0J3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKwkgKi8KKwl2ZWM0LmRpdmlkZSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICBvdXRbMF0gPSBhWzBdIC8gYlswXTsKKwkgICAgb3V0WzFdID0gYVsxXSAvIGJbMV07CisJICAgIG91dFsyXSA9IGFbMl0gLyBiWzJdOworCSAgICBvdXRbM10gPSBhWzNdIC8gYlszXTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LmRpdmlkZX0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWM0LmRpdiA9IHZlYzQuZGl2aWRlOworCisJLyoqCisJICogUmV0dXJucyB0aGUgbWluaW11bSBvZiB0d28gdmVjNCdzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisJICovCisJdmVjNC5taW4gPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gTWF0aC5taW4oYVswXSwgYlswXSk7CisJICAgIG91dFsxXSA9IE1hdGgubWluKGFbMV0sIGJbMV0pOworCSAgICBvdXRbMl0gPSBNYXRoLm1pbihhWzJdLCBiWzJdKTsKKwkgICAgb3V0WzNdID0gTWF0aC5taW4oYVszXSwgYlszXSk7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFJldHVybnMgdGhlIG1heGltdW0gb2YgdHdvIHZlYzQncworCSAqCisJICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge3ZlYzR9IG91dAorCSAqLworCXZlYzQubWF4ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisJICAgIG91dFswXSA9IE1hdGgubWF4KGFbMF0sIGJbMF0pOworCSAgICBvdXRbMV0gPSBNYXRoLm1heChhWzFdLCBiWzFdKTsKKwkgICAgb3V0WzJdID0gTWF0aC5tYXgoYVsyXSwgYlsyXSk7CisJICAgIG91dFszXSA9IE1hdGgubWF4KGFbM10sIGJbM10pOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTY2FsZXMgYSB2ZWM0IGJ5IGEgc2NhbGFyIG51bWJlcgorCSAqCisJICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIHZlY3RvciB0byBzY2FsZQorCSAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5CisJICogQHJldHVybnMge3ZlYzR9IG91dAorCSAqLworCXZlYzQuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSAqIGI7CisJICAgIG91dFsxXSA9IGFbMV0gKiBiOworCSAgICBvdXRbMl0gPSBhWzJdICogYjsKKwkgICAgb3V0WzNdID0gYVszXSAqIGI7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEFkZHMgdHdvIHZlYzQncyBhZnRlciBzY2FsaW5nIHRoZSBzZWNvbmQgb3BlcmFuZCBieSBhIHNjYWxhciB2YWx1ZQorCSAqCisJICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHBhcmFtIHtOdW1iZXJ9IHNjYWxlIHRoZSBhbW91bnQgdG8gc2NhbGUgYiBieSBiZWZvcmUgYWRkaW5nCisJICogQHJldHVybnMge3ZlYzR9IG91dAorCSAqLworCXZlYzQuc2NhbGVBbmRBZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIsIHNjYWxlKSB7CisJICAgIG91dFswXSA9IGFbMF0gKyAoYlswXSAqIHNjYWxlKTsKKwkgICAgb3V0WzFdID0gYVsxXSArIChiWzFdICogc2NhbGUpOworCSAgICBvdXRbMl0gPSBhWzJdICsgKGJbMl0gKiBzY2FsZSk7CisJICAgIG91dFszXSA9IGFbM10gKyAoYlszXSAqIHNjYWxlKTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzQncworCSAqCisJICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgorCSAqLworCXZlYzQuZGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7CisJICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCisJICAgICAgICB5ID0gYlsxXSAtIGFbMV0sCisJICAgICAgICB6ID0gYlsyXSAtIGFbMl0sCisJICAgICAgICB3ID0gYlszXSAtIGFbM107CisJICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5ICsgeip6ICsgdyp3KTsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LmRpc3RhbmNlfQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzQuZGlzdCA9IHZlYzQuZGlzdGFuY2U7CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWM0J3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgorCSAqLworCXZlYzQuc3F1YXJlZERpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgeworCSAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAorCSAgICAgICAgeSA9IGJbMV0gLSBhWzFdLAorCSAgICAgICAgeiA9IGJbMl0gLSBhWzJdLAorCSAgICAgICAgdyA9IGJbM10gLSBhWzNdOworCSAgICByZXR1cm4geCp4ICsgeSp5ICsgeip6ICsgdyp3OworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQuc3F1YXJlZERpc3RhbmNlfQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzQuc3FyRGlzdCA9IHZlYzQuc3F1YXJlZERpc3RhbmNlOworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgbGVuZ3RoIG9mIGEgdmVjNAorCSAqCisJICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCisJICogQHJldHVybnMge051bWJlcn0gbGVuZ3RoIG9mIGEKKwkgKi8KKwl2ZWM0Lmxlbmd0aCA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHZhciB4ID0gYVswXSwKKwkgICAgICAgIHkgPSBhWzFdLAorCSAgICAgICAgeiA9IGFbMl0sCisJICAgICAgICB3ID0gYVszXTsKKwkgICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkgKyB6KnogKyB3KncpOworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQubGVuZ3RofQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzQubGVuID0gdmVjNC5sZW5ndGg7CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGxlbmd0aCBvZiBhIHZlYzQKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIHNxdWFyZWQgbGVuZ3RoIG9mCisJICogQHJldHVybnMge051bWJlcn0gc3F1YXJlZCBsZW5ndGggb2YgYQorCSAqLworCXZlYzQuc3F1YXJlZExlbmd0aCA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHZhciB4ID0gYVswXSwKKwkgICAgICAgIHkgPSBhWzFdLAorCSAgICAgICAgeiA9IGFbMl0sCisJICAgICAgICB3ID0gYVszXTsKKwkgICAgcmV0dXJuIHgqeCArIHkqeSArIHoqeiArIHcqdzsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LnNxdWFyZWRMZW5ndGh9CisJICogQGZ1bmN0aW9uCisJICovCisJdmVjNC5zcXJMZW4gPSB2ZWM0LnNxdWFyZWRMZW5ndGg7CisKKwkvKioKKwkgKiBOZWdhdGVzIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjNAorCSAqCisJICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIG5lZ2F0ZQorCSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKwkgKi8KKwl2ZWM0Lm5lZ2F0ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICBvdXRbMF0gPSAtYVswXTsKKwkgICAgb3V0WzFdID0gLWFbMV07CisJICAgIG91dFsyXSA9IC1hWzJdOworCSAgICBvdXRbM10gPSAtYVszXTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUmV0dXJucyB0aGUgaW52ZXJzZSBvZiB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzQKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBpbnZlcnQKKwkgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisJICovCisJdmVjNC5pbnZlcnNlID0gZnVuY3Rpb24ob3V0LCBhKSB7CisJICBvdXRbMF0gPSAxLjAgLyBhWzBdOworCSAgb3V0WzFdID0gMS4wIC8gYVsxXTsKKwkgIG91dFsyXSA9IDEuMCAvIGFbMl07CisJICBvdXRbM10gPSAxLjAgLyBhWzNdOworCSAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogTm9ybWFsaXplIGEgdmVjNAorCSAqCisJICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIG5vcm1hbGl6ZQorCSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKwkgKi8KKwl2ZWM0Lm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICB2YXIgeCA9IGFbMF0sCisJICAgICAgICB5ID0gYVsxXSwKKwkgICAgICAgIHogPSBhWzJdLAorCSAgICAgICAgdyA9IGFbM107CisJICAgIHZhciBsZW4gPSB4KnggKyB5KnkgKyB6KnogKyB3Knc7CisJICAgIGlmIChsZW4gPiAwKSB7CisJICAgICAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KGxlbik7CisJICAgICAgICBvdXRbMF0gPSB4ICogbGVuOworCSAgICAgICAgb3V0WzFdID0geSAqIGxlbjsKKwkgICAgICAgIG91dFsyXSA9IHogKiBsZW47CisJICAgICAgICBvdXRbM10gPSB3ICogbGVuOworCSAgICB9CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWM0J3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBkb3QgcHJvZHVjdCBvZiBhIGFuZCBiCisJICovCisJdmVjNC5kb3QgPSBmdW5jdGlvbiAoYSwgYikgeworCSAgICByZXR1cm4gYVswXSAqIGJbMF0gKyBhWzFdICogYlsxXSArIGFbMl0gKiBiWzJdICsgYVszXSAqIGJbM107CisJfTsKKworCS8qKgorCSAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gdmVjNCdzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCisJICogQHJldHVybnMge3ZlYzR9IG91dAorCSAqLworCXZlYzQubGVycCA9IGZ1bmN0aW9uIChvdXQsIGEsIGIsIHQpIHsKKwkgICAgdmFyIGF4ID0gYVswXSwKKwkgICAgICAgIGF5ID0gYVsxXSwKKwkgICAgICAgIGF6ID0gYVsyXSwKKwkgICAgICAgIGF3ID0gYVszXTsKKwkgICAgb3V0WzBdID0gYXggKyB0ICogKGJbMF0gLSBheCk7CisJICAgIG91dFsxXSA9IGF5ICsgdCAqIChiWzFdIC0gYXkpOworCSAgICBvdXRbMl0gPSBheiArIHQgKiAoYlsyXSAtIGF6KTsKKwkgICAgb3V0WzNdID0gYXcgKyB0ICogKGJbM10gLSBhdyk7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEdlbmVyYXRlcyBhIHJhbmRvbSB2ZWN0b3Igd2l0aCB0aGUgZ2l2ZW4gc2NhbGUKKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHtOdW1iZXJ9IFtzY2FsZV0gTGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yLiBJZiBvbW1pdHRlZCwgYSB1bml0IHZlY3RvciB3aWxsIGJlIHJldHVybmVkCisJICogQHJldHVybnMge3ZlYzR9IG91dAorCSAqLworCXZlYzQucmFuZG9tID0gZnVuY3Rpb24gKG91dCwgc2NhbGUpIHsKKwkgICAgc2NhbGUgPSBzY2FsZSB8fCAxLjA7CisKKwkgICAgLy9UT0RPOiBUaGlzIGlzIGEgcHJldHR5IGF3ZnVsIHdheSBvZiBkb2luZyB0aGlzLiBGaW5kIHNvbWV0aGluZyBiZXR0ZXIuCisJICAgIG91dFswXSA9IGdsTWF0cml4LlJBTkRPTSgpOworCSAgICBvdXRbMV0gPSBnbE1hdHJpeC5SQU5ET00oKTsKKwkgICAgb3V0WzJdID0gZ2xNYXRyaXguUkFORE9NKCk7CisJICAgIG91dFszXSA9IGdsTWF0cml4LlJBTkRPTSgpOworCSAgICB2ZWM0Lm5vcm1hbGl6ZShvdXQsIG91dCk7CisJICAgIHZlYzQuc2NhbGUob3V0LCBvdXQsIHNjYWxlKTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogVHJhbnNmb3JtcyB0aGUgdmVjNCB3aXRoIGEgbWF0NC4KKwkgKgorCSAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWM0fSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCisJICogQHBhcmFtIHttYXQ0fSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAorCSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKwkgKi8KKwl2ZWM0LnRyYW5zZm9ybU1hdDQgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKKwkgICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl0sIHcgPSBhWzNdOworCSAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bNF0gKiB5ICsgbVs4XSAqIHogKyBtWzEyXSAqIHc7CisJICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVs1XSAqIHkgKyBtWzldICogeiArIG1bMTNdICogdzsKKwkgICAgb3V0WzJdID0gbVsyXSAqIHggKyBtWzZdICogeSArIG1bMTBdICogeiArIG1bMTRdICogdzsKKwkgICAgb3V0WzNdID0gbVszXSAqIHggKyBtWzddICogeSArIG1bMTFdICogeiArIG1bMTVdICogdzsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogVHJhbnNmb3JtcyB0aGUgdmVjNCB3aXRoIGEgcXVhdAorCSAqCisJICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKwkgKiBAcGFyYW0ge3F1YXR9IHEgcXVhdGVybmlvbiB0byB0cmFuc2Zvcm0gd2l0aAorCSAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKwkgKi8KKwl2ZWM0LnRyYW5zZm9ybVF1YXQgPSBmdW5jdGlvbihvdXQsIGEsIHEpIHsKKwkgICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl0sCisJICAgICAgICBxeCA9IHFbMF0sIHF5ID0gcVsxXSwgcXogPSBxWzJdLCBxdyA9IHFbM10sCisKKwkgICAgICAgIC8vIGNhbGN1bGF0ZSBxdWF0ICogdmVjCisJICAgICAgICBpeCA9IHF3ICogeCArIHF5ICogeiAtIHF6ICogeSwKKwkgICAgICAgIGl5ID0gcXcgKiB5ICsgcXogKiB4IC0gcXggKiB6LAorCSAgICAgICAgaXogPSBxdyAqIHogKyBxeCAqIHkgLSBxeSAqIHgsCisJICAgICAgICBpdyA9IC1xeCAqIHggLSBxeSAqIHkgLSBxeiAqIHo7CisKKwkgICAgLy8gY2FsY3VsYXRlIHJlc3VsdCAqIGludmVyc2UgcXVhdAorCSAgICBvdXRbMF0gPSBpeCAqIHF3ICsgaXcgKiAtcXggKyBpeSAqIC1xeiAtIGl6ICogLXF5OworCSAgICBvdXRbMV0gPSBpeSAqIHF3ICsgaXcgKiAtcXkgKyBpeiAqIC1xeCAtIGl4ICogLXF6OworCSAgICBvdXRbMl0gPSBpeiAqIHF3ICsgaXcgKiAtcXogKyBpeCAqIC1xeSAtIGl5ICogLXF4OworCSAgICBvdXRbM10gPSBhWzNdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBQZXJmb3JtIHNvbWUgb3BlcmF0aW9uIG92ZXIgYW4gYXJyYXkgb2YgdmVjNHMuCisJICoKKwkgKiBAcGFyYW0ge0FycmF5fSBhIHRoZSBhcnJheSBvZiB2ZWN0b3JzIHRvIGl0ZXJhdGUgb3ZlcgorCSAqIEBwYXJhbSB7TnVtYmVyfSBzdHJpZGUgTnVtYmVyIG9mIGVsZW1lbnRzIGJldHdlZW4gdGhlIHN0YXJ0IG9mIGVhY2ggdmVjNC4gSWYgMCBhc3N1bWVzIHRpZ2h0bHkgcGFja2VkCisJICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2YgZWxlbWVudHMgdG8gc2tpcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheQorCSAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudCBOdW1iZXIgb2YgdmVjNHMgdG8gaXRlcmF0ZSBvdmVyLiBJZiAwIGl0ZXJhdGVzIG92ZXIgZW50aXJlIGFycmF5CisJICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gRnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCB2ZWN0b3IgaW4gdGhlIGFycmF5CisJICogQHBhcmFtIHtPYmplY3R9IFthcmddIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyB0byBmbgorCSAqIEByZXR1cm5zIHtBcnJheX0gYQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzQuZm9yRWFjaCA9IChmdW5jdGlvbigpIHsKKwkgICAgdmFyIHZlYyA9IHZlYzQuY3JlYXRlKCk7CisKKwkgICAgcmV0dXJuIGZ1bmN0aW9uKGEsIHN0cmlkZSwgb2Zmc2V0LCBjb3VudCwgZm4sIGFyZykgeworCSAgICAgICAgdmFyIGksIGw7CisJICAgICAgICBpZighc3RyaWRlKSB7CisJICAgICAgICAgICAgc3RyaWRlID0gNDsKKwkgICAgICAgIH0KKworCSAgICAgICAgaWYoIW9mZnNldCkgeworCSAgICAgICAgICAgIG9mZnNldCA9IDA7CisJICAgICAgICB9CisJICAgICAgICAKKwkgICAgICAgIGlmKGNvdW50KSB7CisJICAgICAgICAgICAgbCA9IE1hdGgubWluKChjb3VudCAqIHN0cmlkZSkgKyBvZmZzZXQsIGEubGVuZ3RoKTsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgbCA9IGEubGVuZ3RoOworCSAgICAgICAgfQorCisJICAgICAgICBmb3IoaSA9IG9mZnNldDsgaSA8IGw7IGkgKz0gc3RyaWRlKSB7CisJICAgICAgICAgICAgdmVjWzBdID0gYVtpXTsgdmVjWzFdID0gYVtpKzFdOyB2ZWNbMl0gPSBhW2krMl07IHZlY1szXSA9IGFbaSszXTsKKwkgICAgICAgICAgICBmbih2ZWMsIHZlYywgYXJnKTsKKwkgICAgICAgICAgICBhW2ldID0gdmVjWzBdOyBhW2krMV0gPSB2ZWNbMV07IGFbaSsyXSA9IHZlY1syXTsgYVtpKzNdID0gdmVjWzNdOworCSAgICAgICAgfQorCSAgICAgICAgCisJICAgICAgICByZXR1cm4gYTsKKwkgICAgfTsKKwl9KSgpOworCisJLyoqCisJICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHZlY3RvcgorCSAqCisJICogQHBhcmFtIHt2ZWM0fSB2ZWMgdmVjdG9yIHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZworCSAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmVjdG9yCisJICovCisJdmVjNC5zdHIgPSBmdW5jdGlvbiAoYSkgeworCSAgICByZXR1cm4gJ3ZlYzQoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJywgJyArIGFbM10gKyAnKSc7CisJfTsKKworCW1vZHVsZS5leHBvcnRzID0gdmVjNDsKKworCisvKioqLyB9LAorLyogOSAqLworLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisKKwkvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKwlvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorCWluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKKwl0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisJY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisJZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworCVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisJYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKKwlUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorCUlNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorCUZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorCUFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKwlMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorCU9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKwlUSEUgU09GVFdBUkUuICovCisKKwl2YXIgZ2xNYXRyaXggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOworCisJLyoqCisJICogQGNsYXNzIDIgRGltZW5zaW9uYWwgVmVjdG9yCisJICogQG5hbWUgdmVjMgorCSAqLworCXZhciB2ZWMyID0ge307CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbmV3LCBlbXB0eSB2ZWMyCisJICoKKwkgKiBAcmV0dXJucyB7dmVjMn0gYSBuZXcgMkQgdmVjdG9yCisJICovCisJdmVjMi5jcmVhdGUgPSBmdW5jdGlvbigpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDIpOworCSAgICBvdXRbMF0gPSAwOworCSAgICBvdXRbMV0gPSAwOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbmV3IHZlYzIgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3IKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gYSB2ZWN0b3IgdG8gY2xvbmUKKwkgKiBAcmV0dXJucyB7dmVjMn0gYSBuZXcgMkQgdmVjdG9yCisJICovCisJdmVjMi5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDIpOworCSAgICBvdXRbMF0gPSBhWzBdOworCSAgICBvdXRbMV0gPSBhWzFdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDcmVhdGVzIGEgbmV3IHZlYzIgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4gdmFsdWVzCisJICoKKwkgKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAorCSAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50CisJICogQHJldHVybnMge3ZlYzJ9IGEgbmV3IDJEIHZlY3RvcgorCSAqLworCXZlYzIuZnJvbVZhbHVlcyA9IGZ1bmN0aW9uKHgsIHkpIHsKKwkgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDIpOworCSAgICBvdXRbMF0gPSB4OworCSAgICBvdXRbMV0gPSB5OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgdmVjMiB0byBhbm90aGVyCisJICoKKwkgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgc291cmNlIHZlY3RvcgorCSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKwkgKi8KKwl2ZWMyLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgb3V0WzBdID0gYVswXTsKKwkgICAgb3V0WzFdID0gYVsxXTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogU2V0IHRoZSBjb21wb25lbnRzIG9mIGEgdmVjMiB0byB0aGUgZ2l2ZW4gdmFsdWVzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50CisJICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKKwkgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisJICovCisJdmVjMi5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHkpIHsKKwkgICAgb3V0WzBdID0geDsKKwkgICAgb3V0WzFdID0geTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQWRkcyB0d28gdmVjMidzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisJICovCisJdmVjMi5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSArIGJbMF07CisJICAgIG91dFsxXSA9IGFbMV0gKyBiWzFdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTdWJ0cmFjdHMgdmVjdG9yIGIgZnJvbSB2ZWN0b3IgYQorCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge3ZlYzJ9IG91dAorCSAqLworCXZlYzIuc3VidHJhY3QgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSAtIGJbMF07CisJICAgIG91dFsxXSA9IGFbMV0gLSBiWzFdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIuc3VidHJhY3R9CisJICogQGZ1bmN0aW9uCisJICovCisJdmVjMi5zdWIgPSB2ZWMyLnN1YnRyYWN0OworCisJLyoqCisJICogTXVsdGlwbGllcyB0d28gdmVjMidzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisJICovCisJdmVjMi5tdWx0aXBseSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICBvdXRbMF0gPSBhWzBdICogYlswXTsKKwkgICAgb3V0WzFdID0gYVsxXSAqIGJbMV07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5tdWx0aXBseX0KKwkgKiBAZnVuY3Rpb24KKwkgKi8KKwl2ZWMyLm11bCA9IHZlYzIubXVsdGlwbHk7CisKKwkvKioKKwkgKiBEaXZpZGVzIHR3byB2ZWMyJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKwkgKi8KKwl2ZWMyLmRpdmlkZSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworCSAgICBvdXRbMF0gPSBhWzBdIC8gYlswXTsKKwkgICAgb3V0WzFdID0gYVsxXSAvIGJbMV07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5kaXZpZGV9CisJICogQGZ1bmN0aW9uCisJICovCisJdmVjMi5kaXYgPSB2ZWMyLmRpdmlkZTsKKworCS8qKgorCSAqIFJldHVybnMgdGhlIG1pbmltdW0gb2YgdHdvIHZlYzIncworCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge3ZlYzJ9IG91dAorCSAqLworCXZlYzIubWluID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisJICAgIG91dFswXSA9IE1hdGgubWluKGFbMF0sIGJbMF0pOworCSAgICBvdXRbMV0gPSBNYXRoLm1pbihhWzFdLCBiWzFdKTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUmV0dXJucyB0aGUgbWF4aW11bSBvZiB0d28gdmVjMidzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisJICovCisJdmVjMi5tYXggPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gTWF0aC5tYXgoYVswXSwgYlswXSk7CisJICAgIG91dFsxXSA9IE1hdGgubWF4KGFbMV0sIGJbMV0pOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBTY2FsZXMgYSB2ZWMyIGJ5IGEgc2NhbGFyIG51bWJlcgorCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byBzY2FsZQorCSAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5CisJICogQHJldHVybnMge3ZlYzJ9IG91dAorCSAqLworCXZlYzIuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKwkgICAgb3V0WzBdID0gYVswXSAqIGI7CisJICAgIG91dFsxXSA9IGFbMV0gKiBiOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBBZGRzIHR3byB2ZWMyJ3MgYWZ0ZXIgc2NhbGluZyB0aGUgc2Vjb25kIG9wZXJhbmQgYnkgYSBzY2FsYXIgdmFsdWUKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEBwYXJhbSB7TnVtYmVyfSBzY2FsZSB0aGUgYW1vdW50IHRvIHNjYWxlIGIgYnkgYmVmb3JlIGFkZGluZworCSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKwkgKi8KKwl2ZWMyLnNjYWxlQW5kQWRkID0gZnVuY3Rpb24ob3V0LCBhLCBiLCBzY2FsZSkgeworCSAgICBvdXRbMF0gPSBhWzBdICsgKGJbMF0gKiBzY2FsZSk7CisJICAgIG91dFsxXSA9IGFbMV0gKyAoYlsxXSAqIHNjYWxlKTsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzIncworCSAqCisJICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHtOdW1iZXJ9IGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgorCSAqLworCXZlYzIuZGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7CisJICAgIHZhciB4ID0gYlswXSAtIGFbMF0sCisJICAgICAgICB5ID0gYlsxXSAtIGFbMV07CisJICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5KTsKKwl9OworCisJLyoqCisJICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLmRpc3RhbmNlfQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzIuZGlzdCA9IHZlYzIuZGlzdGFuY2U7CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGV1Y2xpZGlhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWMyJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorCSAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgorCSAqLworCXZlYzIuc3F1YXJlZERpc3RhbmNlID0gZnVuY3Rpb24oYSwgYikgeworCSAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAorCSAgICAgICAgeSA9IGJbMV0gLSBhWzFdOworCSAgICByZXR1cm4geCp4ICsgeSp5OworCX07CisKKwkvKioKKwkgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIuc3F1YXJlZERpc3RhbmNlfQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzIuc3FyRGlzdCA9IHZlYzIuc3F1YXJlZERpc3RhbmNlOworCisJLyoqCisJICogQ2FsY3VsYXRlcyB0aGUgbGVuZ3RoIG9mIGEgdmVjMgorCSAqCisJICogQHBhcmFtIHt2ZWMyfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCisJICogQHJldHVybnMge051bWJlcn0gbGVuZ3RoIG9mIGEKKwkgKi8KKwl2ZWMyLmxlbmd0aCA9IGZ1bmN0aW9uIChhKSB7CisJICAgIHZhciB4ID0gYVswXSwKKwkgICAgICAgIHkgPSBhWzFdOworCSAgICByZXR1cm4gTWF0aC5zcXJ0KHgqeCArIHkqeSk7CisJfTsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5sZW5ndGh9CisJICogQGZ1bmN0aW9uCisJICovCisJdmVjMi5sZW4gPSB2ZWMyLmxlbmd0aDsKKworCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgdmVjMgorCSAqCisJICogQHBhcmFtIHt2ZWMyfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgc3F1YXJlZCBsZW5ndGggb2YKKwkgKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGxlbmd0aCBvZiBhCisJICovCisJdmVjMi5zcXVhcmVkTGVuZ3RoID0gZnVuY3Rpb24gKGEpIHsKKwkgICAgdmFyIHggPSBhWzBdLAorCSAgICAgICAgeSA9IGFbMV07CisJICAgIHJldHVybiB4KnggKyB5Knk7CisJfTsKKworCS8qKgorCSAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5zcXVhcmVkTGVuZ3RofQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzIuc3FyTGVuID0gdmVjMi5zcXVhcmVkTGVuZ3RoOworCisJLyoqCisJICogTmVnYXRlcyB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzIKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMyfSBhIHZlY3RvciB0byBuZWdhdGUKKwkgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisJICovCisJdmVjMi5uZWdhdGUgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgICAgb3V0WzBdID0gLWFbMF07CisJICAgIG91dFsxXSA9IC1hWzFdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBSZXR1cm5zIHRoZSBpbnZlcnNlIG9mIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjMgorCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIGludmVydAorCSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKwkgKi8KKwl2ZWMyLmludmVyc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKKwkgIG91dFswXSA9IDEuMCAvIGFbMF07CisJICBvdXRbMV0gPSAxLjAgLyBhWzFdOworCSAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogTm9ybWFsaXplIGEgdmVjMgorCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIG5vcm1hbGl6ZQorCSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKwkgKi8KKwl2ZWMyLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworCSAgICB2YXIgeCA9IGFbMF0sCisJICAgICAgICB5ID0gYVsxXTsKKwkgICAgdmFyIGxlbiA9IHgqeCArIHkqeTsKKwkgICAgaWYgKGxlbiA+IDApIHsKKwkgICAgICAgIC8vVE9ETzogZXZhbHVhdGUgdXNlIG9mIGdsbV9pbnZzcXJ0IGhlcmU/CisJICAgICAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KGxlbik7CisJICAgICAgICBvdXRbMF0gPSBhWzBdICogbGVuOworCSAgICAgICAgb3V0WzFdID0gYVsxXSAqIGxlbjsKKwkgICAgfQorCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBDYWxjdWxhdGVzIHRoZSBkb3QgcHJvZHVjdCBvZiB0d28gdmVjMidzCisJICoKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKwkgKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisJICogQHJldHVybnMge051bWJlcn0gZG90IHByb2R1Y3Qgb2YgYSBhbmQgYgorCSAqLworCXZlYzIuZG90ID0gZnVuY3Rpb24gKGEsIGIpIHsKKwkgICAgcmV0dXJuIGFbMF0gKiBiWzBdICsgYVsxXSAqIGJbMV07CisJfTsKKworCS8qKgorCSAqIENvbXB1dGVzIHRoZSBjcm9zcyBwcm9kdWN0IG9mIHR3byB2ZWMyJ3MKKwkgKiBOb3RlIHRoYXQgdGhlIGNyb3NzIHByb2R1Y3QgbXVzdCBieSBkZWZpbml0aW9uIHByb2R1Y2UgYSAzRCB2ZWN0b3IKKwkgKgorCSAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKwkgKi8KKwl2ZWMyLmNyb3NzID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisJICAgIHZhciB6ID0gYVswXSAqIGJbMV0gLSBhWzFdICogYlswXTsKKwkgICAgb3V0WzBdID0gb3V0WzFdID0gMDsKKwkgICAgb3V0WzJdID0gejsKKwkgICAgcmV0dXJuIG91dDsKKwl9OworCisJLyoqCisJICogUGVyZm9ybXMgYSBsaW5lYXIgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHR3byB2ZWMyJ3MKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisJICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorCSAqIEBwYXJhbSB7TnVtYmVyfSB0IGludGVycG9sYXRpb24gYW1vdW50IGJldHdlZW4gdGhlIHR3byBpbnB1dHMKKwkgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisJICovCisJdmVjMi5sZXJwID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgdCkgeworCSAgICB2YXIgYXggPSBhWzBdLAorCSAgICAgICAgYXkgPSBhWzFdOworCSAgICBvdXRbMF0gPSBheCArIHQgKiAoYlswXSAtIGF4KTsKKwkgICAgb3V0WzFdID0gYXkgKyB0ICogKGJbMV0gLSBheSk7CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIEdlbmVyYXRlcyBhIHJhbmRvbSB2ZWN0b3Igd2l0aCB0aGUgZ2l2ZW4gc2NhbGUKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisJICogQHBhcmFtIHtOdW1iZXJ9IFtzY2FsZV0gTGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yLiBJZiBvbW1pdHRlZCwgYSB1bml0IHZlY3RvciB3aWxsIGJlIHJldHVybmVkCisJICogQHJldHVybnMge3ZlYzJ9IG91dAorCSAqLworCXZlYzIucmFuZG9tID0gZnVuY3Rpb24gKG91dCwgc2NhbGUpIHsKKwkgICAgc2NhbGUgPSBzY2FsZSB8fCAxLjA7CisJICAgIHZhciByID0gZ2xNYXRyaXguUkFORE9NKCkgKiAyLjAgKiBNYXRoLlBJOworCSAgICBvdXRbMF0gPSBNYXRoLmNvcyhyKSAqIHNjYWxlOworCSAgICBvdXRbMV0gPSBNYXRoLnNpbihyKSAqIHNjYWxlOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBUcmFuc2Zvcm1zIHRoZSB2ZWMyIHdpdGggYSBtYXQyCisJICoKKwkgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorCSAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQorCSAqIEBwYXJhbSB7bWF0Mn0gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGgKKwkgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisJICovCisJdmVjMi50cmFuc2Zvcm1NYXQyID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7CisJICAgIHZhciB4ID0gYVswXSwKKwkgICAgICAgIHkgPSBhWzFdOworCSAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bMl0gKiB5OworCSAgICBvdXRbMV0gPSBtWzFdICogeCArIG1bM10gKiB5OworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBUcmFuc2Zvcm1zIHRoZSB2ZWMyIHdpdGggYSBtYXQyZAorCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKwkgKiBAcGFyYW0ge21hdDJkfSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAorCSAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKwkgKi8KKwl2ZWMyLnRyYW5zZm9ybU1hdDJkID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7CisJICAgIHZhciB4ID0gYVswXSwKKwkgICAgICAgIHkgPSBhWzFdOworCSAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bMl0gKiB5ICsgbVs0XTsKKwkgICAgb3V0WzFdID0gbVsxXSAqIHggKyBtWzNdICogeSArIG1bNV07CisJICAgIHJldHVybiBvdXQ7CisJfTsKKworCS8qKgorCSAqIFRyYW5zZm9ybXMgdGhlIHZlYzIgd2l0aCBhIG1hdDMKKwkgKiAzcmQgdmVjdG9yIGNvbXBvbmVudCBpcyBpbXBsaWNpdGx5ICcxJworCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKwkgKiBAcGFyYW0ge21hdDN9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCisJICogQHJldHVybnMge3ZlYzJ9IG91dAorCSAqLworCXZlYzIudHJhbnNmb3JtTWF0MyA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgeworCSAgICB2YXIgeCA9IGFbMF0sCisJICAgICAgICB5ID0gYVsxXTsKKwkgICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzNdICogeSArIG1bNl07CisJICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVs0XSAqIHkgKyBtWzddOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBUcmFuc2Zvcm1zIHRoZSB2ZWMyIHdpdGggYSBtYXQ0CisJICogM3JkIHZlY3RvciBjb21wb25lbnQgaXMgaW1wbGljaXRseSAnMCcKKwkgKiA0dGggdmVjdG9yIGNvbXBvbmVudCBpcyBpbXBsaWNpdGx5ICcxJworCSAqCisJICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKwkgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKwkgKiBAcGFyYW0ge21hdDR9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCisJICogQHJldHVybnMge3ZlYzJ9IG91dAorCSAqLworCXZlYzIudHJhbnNmb3JtTWF0NCA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgeworCSAgICB2YXIgeCA9IGFbMF0sIAorCSAgICAgICAgeSA9IGFbMV07CisJICAgIG91dFswXSA9IG1bMF0gKiB4ICsgbVs0XSAqIHkgKyBtWzEyXTsKKwkgICAgb3V0WzFdID0gbVsxXSAqIHggKyBtWzVdICogeSArIG1bMTNdOworCSAgICByZXR1cm4gb3V0OworCX07CisKKwkvKioKKwkgKiBQZXJmb3JtIHNvbWUgb3BlcmF0aW9uIG92ZXIgYW4gYXJyYXkgb2YgdmVjMnMuCisJICoKKwkgKiBAcGFyYW0ge0FycmF5fSBhIHRoZSBhcnJheSBvZiB2ZWN0b3JzIHRvIGl0ZXJhdGUgb3ZlcgorCSAqIEBwYXJhbSB7TnVtYmVyfSBzdHJpZGUgTnVtYmVyIG9mIGVsZW1lbnRzIGJldHdlZW4gdGhlIHN0YXJ0IG9mIGVhY2ggdmVjMi4gSWYgMCBhc3N1bWVzIHRpZ2h0bHkgcGFja2VkCisJICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2YgZWxlbWVudHMgdG8gc2tpcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheQorCSAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudCBOdW1iZXIgb2YgdmVjMnMgdG8gaXRlcmF0ZSBvdmVyLiBJZiAwIGl0ZXJhdGVzIG92ZXIgZW50aXJlIGFycmF5CisJICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gRnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCB2ZWN0b3IgaW4gdGhlIGFycmF5CisJICogQHBhcmFtIHtPYmplY3R9IFthcmddIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyB0byBmbgorCSAqIEByZXR1cm5zIHtBcnJheX0gYQorCSAqIEBmdW5jdGlvbgorCSAqLworCXZlYzIuZm9yRWFjaCA9IChmdW5jdGlvbigpIHsKKwkgICAgdmFyIHZlYyA9IHZlYzIuY3JlYXRlKCk7CisKKwkgICAgcmV0dXJuIGZ1bmN0aW9uKGEsIHN0cmlkZSwgb2Zmc2V0LCBjb3VudCwgZm4sIGFyZykgeworCSAgICAgICAgdmFyIGksIGw7CisJICAgICAgICBpZighc3RyaWRlKSB7CisJICAgICAgICAgICAgc3RyaWRlID0gMjsKKwkgICAgICAgIH0KKworCSAgICAgICAgaWYoIW9mZnNldCkgeworCSAgICAgICAgICAgIG9mZnNldCA9IDA7CisJICAgICAgICB9CisJICAgICAgICAKKwkgICAgICAgIGlmKGNvdW50KSB7CisJICAgICAgICAgICAgbCA9IE1hdGgubWluKChjb3VudCAqIHN0cmlkZSkgKyBvZmZzZXQsIGEubGVuZ3RoKTsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgbCA9IGEubGVuZ3RoOworCSAgICAgICAgfQorCisJICAgICAgICBmb3IoaSA9IG9mZnNldDsgaSA8IGw7IGkgKz0gc3RyaWRlKSB7CisJICAgICAgICAgICAgdmVjWzBdID0gYVtpXTsgdmVjWzFdID0gYVtpKzFdOworCSAgICAgICAgICAgIGZuKHZlYywgdmVjLCBhcmcpOworCSAgICAgICAgICAgIGFbaV0gPSB2ZWNbMF07IGFbaSsxXSA9IHZlY1sxXTsKKwkgICAgICAgIH0KKwkgICAgICAgIAorCSAgICAgICAgcmV0dXJuIGE7CisJICAgIH07CisJfSkoKTsKKworCS8qKgorCSAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB2ZWN0b3IKKwkgKgorCSAqIEBwYXJhbSB7dmVjMn0gdmVjIHZlY3RvciB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKKwkgKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZlY3RvcgorCSAqLworCXZlYzIuc3RyID0gZnVuY3Rpb24gKGEpIHsKKwkgICAgcmV0dXJuICd2ZWMyKCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnKSc7CisJfTsKKworCW1vZHVsZS5leHBvcnRzID0gdmVjMjsKKworCisvKioqLyB9CisvKioqKioqLyBdKQorfSk7Cis7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9hbGxjbGFzc2VzLnRtcGwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvYWxsY2xhc3Nlcy50bXBsCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL2FsbGNsYXNzZXMudG1wbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL2FsbGNsYXNzZXMudG1wbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9hbGxmaWxlcy50bXBsIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL2FsbGZpbGVzLnRtcGwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvYWxsZmlsZXMudG1wbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL2FsbGZpbGVzLnRtcGwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvY2xhc3MudG1wbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9jbGFzcy50bXBsCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL2NsYXNzLnRtcGwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9jbGFzcy50bXBsCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvaW5kZXgudG1wbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9pbmRleC50bXBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjOTJkZDQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvaW5kZXgudG1wbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisJPGhlYWQ+CisJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXsrSU8uZW5jb2RpbmcrfSIgLz4KKwkJCisJCTx0aXRsZT5nbE1hdHJpeCAtIEluZGV4PC90aXRsZT4KKwkJPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJKc0RvYyBUb29sa2l0IiAvPgorCisJCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisJCQorCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCQl7K2luY2x1ZGUoInN0YXRpYy9kZWZhdWx0LmNzcyIpK30KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJCisJPGJvZHk+CisJCXsraW5jbHVkZSgic3RhdGljL2hlYWRlci5odG1sIikrfQorCisJCTxkaXYgY2xhc3M9IndyYXBwZXIiPgorCQkKKwkJCTxoZWFkZXIgaWQ9ImluZGV4Ij4KKwkJCQl7K3B1Ymxpc2guY2xhc3Nlc0luZGV4K30KKwkJCTwvaGVhZGVyPgorCQkJCisJCQk8c2VjdGlvbiBpZD0iY29udGVudCI+CisJCQkJPGgxIGNsYXNzPSJjbGFzc1RpdGxlIj5DbGFzcyBJbmRleDwvaDE+CisJCQkJCisJCQkJPGZvciBlYWNoPSJ0aGlzQ2xhc3MiIGluPSJkYXRhIj4KKwkJCQkJPGlmIHRlc3Q9InRoaXNDbGFzcy5hbGlhcyAhPSAnX2dsb2JhbF8nIj4KKwkJCQkJCTxkaXY+CisJCQkJCQkJPGgyPnsrKG5ldyBMaW5rKCkudG9TeW1ib2wodGhpc0NsYXNzLmFsaWFzKSkrfTwvaDI+CisJCQkJCQkJeytyZXNvbHZlTGlua3Moc3VtbWFyaXplKHRoaXNDbGFzcy5jbGFzc0Rlc2MpKSt9CisJCQkJCQk8L2Rpdj4KKwkJCQkJCTxociAvPgorCQkJCQk8L2lmPgorCQkJCTwvZm9yPgorCQkJCQorCQkJPC9zZWN0aW9uPgorCisJCQk8Zm9vdGVyPgorCQkJCTxzbWFsbD4KKwkJCQkJPGlmIHRlc3Q9IkpTRE9DLm9wdC5ELmNvcHlyaWdodCI+JmNvcHk7eytKU0RPQy5vcHQuRC5jb3B5cmlnaHQrfTxiciAvPjwvaWY+CisJCQkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2RvYy10b29sa2l0LyIgdGFyZ2V0PSJfYmxhbmsiPkpzRG9jIFRvb2xraXQ8L2E+IHsrSlNET0MuVkVSU0lPTit9IG9uIHsrbmV3IERhdGUoKSt9CisJCQkJCTxici8+PGJyLz4KKwkJCQkJVGhlbWUgYmFzZWQgb24gR2l0aHViIFBhZ2VzIHRlbXBsYXRlIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcmRlcmVkbGlzdCI+b3JkZXJlZGxpc3Q8L2E+CisJCQkJPC9zbWFsbD4KKwkJCTwvZm9vdGVyPgorCisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3B1Ymxpc2guanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvcHVibGlzaC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9wdWJsaXNoLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvcHVibGlzaC5qcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9zdGF0aWMvZGVmYXVsdC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvc3RhdGljL2RlZmF1bHQuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9kZWZhdWx0LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9kZWZhdWx0LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9oZWFkZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9zdGF0aWMvaGVhZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUzYjczNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9zdGF0aWMvaGVhZGVyLmh0bWwKQEAgLTAsMCArMSwyIEBACis8ZGl2IGlkPSJoZWFkZXIiPgorPC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9pbmRleC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L2pzZG9jLXRlbXBsYXRlL3N0YXRpYy9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1MWQ0ZWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvc3RhdGljL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIgorICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtZnJhbWVzZXQuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorCTx0aXRsZT5nbE1hdHJpeCBEb2N1bWVudGF0aW9uPC90aXRsZT4KKzwvaGVhZD4KKzxmcmFtZXNldCBjb2xzPSIyMCUsODAlIj4KKwk8ZnJhbWUgc3JjPSJhbGxjbGFzc2VzLWZyYW1lLmh0bWwiIG5hbWU9InBhY2thZ2VGcmFtZSIgLz4KKwk8ZnJhbWUgc3JjPSJzcGxhc2guaHRtbCIgbmFtZT0iY2xhc3NGcmFtZSIgLz4KKwk8bm9mcmFtZXM+CisJCTxib2R5PgorCQk8cD4KKwkJVGhpcyBkb2N1bWVudCBpcyBkZXNpZ25lZCB0byBiZSB2aWV3ZWQgdXNpbmcgdGhlIGZyYW1lcyBmZWF0dXJlLiBJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSwgeW91IGFyZSB1c2luZyBhIG5vbi1mcmFtZS1jYXBhYmxlIHdlYiBjbGllbnQuCisJCTwvcD4KKwkJPC9ib2R5PgorCTwvbm9mcmFtZXM+Cis8L2ZyYW1lc2V0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvc3ltYm9sLnRtcGwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvc3ltYm9sLnRtcGwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvanNkb2MtdGVtcGxhdGUvc3ltYm9sLnRtcGwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9qc2RvYy10ZW1wbGF0ZS9zeW1ib2wudG1wbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3BhY2thZ2UuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9wYWNrYWdlLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjkyYWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9wYWNrYWdlLmpzb24KQEAgLTAsMCArMSwzMCBAQAoreworICAibmFtZSI6ICJnbC1tYXRyaXgiLAorICAiZGVzY3JpcHRpb24iOiAiSmF2YXNjcmlwdCBNYXRyaXggYW5kIFZlY3RvciBsaWJyYXJ5IGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYkdMIGFwcHMiLAorICAidmVyc2lvbiI6ICIyLjMuMSIsCisgICJtYWluIjogInNyYy9nbC1tYXRyaXguanMiLAorICAiaG9tZXBhZ2UiOiAiaHR0cDovL2dsbWF0cml4Lm5ldCIsCisgICJidWdzIjogeworICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvamkvZ2wtbWF0cml4L2lzc3VlcyIKKyAgfSwKKyAgInJlcG9zaXRvcnkiOiB7CisgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b2ppL2dsLW1hdHJpeC5naXQiCisgIH0sCisgICJjb250cmlidXRvcnMiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiQnJhbmRvbiBKb25lcyIsCisgICAgICAiZW1haWwiOiAidG9qaXJvQGdtYWlsLmNvbSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkNvbGluIE1hY0tlbnppZSBJViIsCisgICAgICAiZW1haWwiOiAic2luaXN0ZXJjaGlwbXVua0BnbWFpbC5jb20iCisgICAgfQorICBdLAorICAiZGV2RGVwZW5kZW5jaWVzIjogeworICAgICJqYXNtaW5lLW5vZGUiOiAiMS4yLjIiLAorICAgICJub2RlLWxpYnMtYnJvd3NlciI6ICJeMC41LjIiLAorICAgICJ3ZWJwYWNrIjogIl4xLjkuMTAiCisgIH0sCisgICJsaWNlbnNlIjogIk1JVCIKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9jb21tb24tc3BlYy5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9jb21tb24tc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjY0OWQwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L2NvbW1vbi1zcGVjLmpzCkBAIC0wLDAgKzEsMTQgQEAKKy8qCisqIGNvbW1vbi5qcyB1bml0IHRlc3QKKyovCisKK2Rlc2NyaWJlKCJnbE1hdHJpeCIsIGZ1bmN0aW9uKCl7CisgIHZhciByZXN1bHQ7CisKKyAgdmFyIGdsTWF0cml4ID0gcmVxdWlyZSgiLi4vLi4vc3JjL2dsLW1hdHJpeC9jb21tb24uanMiKTsKKworICBkZXNjcmliZSgidG9SYWRpYW4iLCBmdW5jdGlvbigpeworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKXsgcmVzdWx0ID0gZ2xNYXRyaXgudG9SYWRpYW4oMTgwKTsgfSk7CisgICAgaXQoInNob3VsZCByZXR1cm4gYSB2YWx1ZSBvZiAzLjE0MTU5MjY1NChNYXRoLlBJKSIsIGZ1bmN0aW9uKCl7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChNYXRoLlBJKTsgfSk7CisgIH0pOworfSk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvbWF0Mi1zcGVjLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDItc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTAxZDMzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDItc3BlYy5qcwpAQCAtMCwwICsxLDIxMCBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLiAqLworCitkZXNjcmliZSgibWF0MiIsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtYXQyID0gcmVxdWlyZSgiLi4vLi4vc3JjL2dsLW1hdHJpeC9tYXQyLmpzIik7CisKKyAgICB2YXIgb3V0LCBtYXRBLCBtYXRCLCBpZGVudGl0eSwgcmVzdWx0OworCisgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgbWF0QSA9IFsxLCAyLAorICAgICAgICAgICAgICAgIDMsIDRdOworCisgICAgICAgIG1hdEIgPSBbNSwgNiwKKyAgICAgICAgICAgICAgICA3LCA4XTsKKworICAgICAgICBvdXQgPSAgWzAsIDAsCisgICAgICAgICAgICAgICAgMCwgMF07CisKKyAgICAgICAgaWRlbnRpdHkgPSBbMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMV07CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY3JlYXRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuY3JlYXRlKCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDQgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byBhIDJ4MiBpZGVudGl0eSBtYXRyaXgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKGlkZW50aXR5KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY2xvbmUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5jbG9uZShtYXRBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNCBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgaW4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNvcHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5jb3B5KG91dCwgbWF0QSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJpZGVudGl0eSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLmlkZW50aXR5KG91dCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goaWRlbnRpdHkpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgidHJhbnNwb3NlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi50cmFuc3Bvc2Uob3V0LCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMywgMiwgNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi50cmFuc3Bvc2UobWF0QSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMSwgMywgMiwgNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImludmVydCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuaW52ZXJ0KG91dCwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWy0yLCAxLCAxLjUsIC0wLjVdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuaW52ZXJ0KG1hdEEsIG1hdEEpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWy0yLCAxLCAxLjUsIC0wLjVdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJhZGpvaW50IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5hZGpvaW50KG91dCwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzQsIC0yLCAtMywgMV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5hZGpvaW50KG1hdEEsIG1hdEEpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzQsIC0yLCAtMywgMV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImRldGVybWluYW50IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuZGV0ZXJtaW5hbnQobWF0QSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRldGVybWluYW50IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoLTIpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJtdWx0aXBseSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdtdWwnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXQyLm11bCkudG9FcXVhbChtYXQyLm11bHRpcGx5KTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLm11bHRpcGx5KG91dCwgbWF0QSwgbWF0Qik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzIzLCAzNCwgMzEsIDQ2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5tdWx0aXBseShtYXRBLCBtYXRBLCBtYXRCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsyMywgMzQsIDMxLCA0Nl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRCIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLm11bHRpcGx5KG1hdEIsIG1hdEEsIG1hdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRCKS50b0JlRXF1YWxpc2goWzIzLCAzNCwgMzEsIDQ2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEIpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInJvdGF0ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIucm90YXRlKG91dCwgbWF0QSwgTWF0aC5QSSAqIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzMsIDQsIC0xLCAtMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5yb3RhdGUobWF0QSwgbWF0QSwgTWF0aC5QSSAqIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMywgNCwgLTEsIC0yXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHZlY0E7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMiwgM107IH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5zY2FsZShvdXQsIG1hdEEsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsyLCA0LCA5LCAxMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0Mi5zY2FsZShtYXRBLCBtYXRBLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsyLCA0LCA5LCAxMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInN0ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyLnN0cihtYXRBKTsgfSk7CisgICAgICAgIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoIm1hdDIoMSwgMiwgMywgNCkiKTsgfSk7CisgICAgfSk7CisKKyAgIGRlc2NyaWJlKCJmcm9iIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDIuZnJvYihtYXRBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBGcm9iZW5pdXMgTm9ybSBvZiB0aGUgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoIE1hdGguc3FydChNYXRoLnBvdygxLCAyKSArIE1hdGgucG93KDIsIDIpICsgTWF0aC5wb3coMywgMikgKyBNYXRoLnBvdyg0LCAyKSkpOyB9KTsKKyAgIH0pOworCisgICBkZXNjcmliZSgiTERVIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7TCA9IG1hdDIuY3JlYXRlKCk7IEQgPSBtYXQyLmNyZWF0ZSgpOyBVID0gbWF0Mi5jcmVhdGUoKTsgcmVzdWx0ID0gbWF0Mi5MRFUoTCwgRCwgVSwgWzQsMyw2LDNdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMX3Jlc3VsdCA9IG1hdDIuY3JlYXRlKCk7IExfcmVzdWx0WzJdID0gMS41OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERfcmVzdWx0ID0gbWF0Mi5jcmVhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVX3Jlc3VsdCA9IG1hdDIuY3JlYXRlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVV9yZXN1bHRbMF0gPSA0OyBVX3Jlc3VsdFsxXSA9IDM7IFVfcmVzdWx0WzNdID0gLTEuNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIGxvd2VyIHRyaWFuZ3VsYXIsIGEgZGlhZ29uYWwgYW5kIGFuIHVwcGVyIHRyaWFuZ3VsYXIgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBleHBlY3QocmVzdWx0WzBdKS50b0JlRXF1YWxpc2goTF9yZXN1bHQpOworICAgICAgICAgICAgZXhwZWN0KHJlc3VsdFsxXSkudG9CZUVxdWFsaXNoKERfcmVzdWx0KTsKKyAgICAgICAgICAgIGV4cGVjdChyZXN1bHRbMl0pLnRvQmVFcXVhbGlzaChVX3Jlc3VsdCk7CisgICAgICAgIH0pOworICAgfSk7CisKK30pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDJkLXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvbWF0MmQtc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGEwZGRkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDJkLXNwZWMuanMKQEAgLTAsMCArMSwxOTQgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4gKi8KKworZGVzY3JpYmUoIm1hdDJkIiwgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1hdDJkID0gcmVxdWlyZSgiLi4vLi4vc3JjL2dsLW1hdHJpeC9tYXQyZC5qcyIpOworCisgICAgdmFyIG91dCwgbWF0QSwgbWF0QiwgaWRlbnRpdHksIHJlc3VsdDsKKworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgIG1hdEEgPSBbMSwgMiwKKyAgICAgICAgICAgICAgICAzLCA0LAorICAgICAgICAgICAgICAgIDUsIDZdOworCisgICAgICAgIG9sZEEgPSBbMSwgMiwKKyAgICAgICAgICAgICAgICAzLCA0LAorICAgICAgICAgICAgICAgIDUsIDZdOworCisgICAgICAgIG1hdEIgPSBbNywgOCwKKyAgICAgICAgICAgICAgICA5LCAxMCwKKyAgICAgICAgICAgICAgICAxMSwgMTJdOworCisgICAgICAgIG9sZEIgPSBbNywgOCwKKyAgICAgICAgICAgICAgICA5LCAxMCwKKyAgICAgICAgICAgICAgICAxMSwgMTJdOworCisgICAgICAgIG91dCA9ICBbMCwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDBdOworCisgICAgICAgIGlkZW50aXR5ID0gWzEsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsCisgICAgICAgICAgICAgICAgICAgIDAsIDBdOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNyZWF0ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5jcmVhdGUoKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIGEgMngzIGlkZW50aXR5IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goaWRlbnRpdHkpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjbG9uZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5jbG9uZShtYXRBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgaW4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNvcHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuY29weShvdXQsIG1hdEEpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKG1hdEEpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiaWRlbnRpdHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuaWRlbnRpdHkob3V0KTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChpZGVudGl0eSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJpbnZlcnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5pbnZlcnQob3V0LCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbIC0yLCAxLCAxLjUsIC0wLjUsIDEsIC0yIF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChvbGRBKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLmludmVydChtYXRBLCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsgLTIsIDEsIDEuNSwgLTAuNSwgMSwgLTIgXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZGV0ZXJtaW5hbnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuZGV0ZXJtaW5hbnQobWF0QSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRldGVybWluYW50IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoLTIpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJtdWx0aXBseSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdtdWwnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXQyZC5tdWwpLnRvRXF1YWwobWF0MmQubXVsdGlwbHkpOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLm11bHRpcGx5KG91dCwgbWF0QSwgbWF0Qik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzMxLCA0NiwgMzksIDU4LCA1MiwgNzZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2gob2xkQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChvbGRCKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLm11bHRpcGx5KG1hdEEsIG1hdEEsIG1hdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzMxLCA0NiwgMzksIDU4LCA1MiwgNzZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChvbGRCKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEIgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLm11bHRpcGx5KG1hdEIsIG1hdEEsIG1hdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRCKS50b0JlRXF1YWxpc2goWzMxLCA0NiwgMzksIDU4LCA1MiwgNzZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0Qik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChvbGRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInJvdGF0ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDJkLnJvdGF0ZShvdXQsIG1hdEEsIE1hdGguUEkgKiAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFszLCA0LCAtMSwgLTIsIDUsIDZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2gob2xkQSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5yb3RhdGUobWF0QSwgbWF0QSwgTWF0aC5QSSAqIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbMywgNCwgLTEsIC0yLCA1LCA2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHZlY0E7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMiwgM107IH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuc2NhbGUob3V0LCBtYXRBLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMiwgNCwgOSwgMTIsIDUsIDZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2gob2xkQSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5zY2FsZShtYXRBLCBtYXRBLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsyLCA0LCA5LCAxMiwgNSwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInRyYW5zbGF0ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgdmVjQTsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsyLCAzXTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC50cmFuc2xhdGUob3V0LCBtYXRBLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNCwgMTYsIDIyXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKG9sZEEpOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQudHJhbnNsYXRlKG1hdEEsIG1hdEEsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDQsIDE2LCAyMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInN0ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQyZC5zdHIobWF0QSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJpeCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKCJtYXQyZCgxLCAyLCAzLCA0LCA1LCA2KSIpOyB9KTsKKyAgICB9KTsKKworICAgZGVzY3JpYmUoImZyb2IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0MmQuZnJvYihtYXRBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBGcm9iZW5pdXMgTm9ybSBvZiB0aGUgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoIE1hdGguc3FydChNYXRoLnBvdygxLCAyKSArIE1hdGgucG93KDIsIDIpICsgTWF0aC5wb3coMywgMikgKyBNYXRoLnBvdyg0LCAyKSArIE1hdGgucG93KDUsIDIpICsgTWF0aC5wb3coNiwgMikgKyAxKSk7IH0pOworICAgfSk7CisKK30pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDMtc3BlYy5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQzLXNwZWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE5ZDU1YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9tYXQzLXNwZWMuanMKQEAgLTAsMCArMSwzNDcgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4gKi8KKworZGVzY3JpYmUoIm1hdDMiLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbWF0MyA9IHJlcXVpcmUoIi4uLy4uL3NyYy9nbC1tYXRyaXgvbWF0My5qcyIpOworICAgIHZhciBtYXQ0ID0gcmVxdWlyZSgiLi4vLi4vc3JjL2dsLW1hdHJpeC9tYXQ0LmpzIik7CisgICAgdmFyIHZlYzMgPSByZXF1aXJlKCIuLi8uLi9zcmMvZ2wtbWF0cml4L3ZlYzMuanMiKTsKKworICAgIHZhciBvdXQsIG1hdEEsIG1hdEIsIGlkZW50aXR5LCByZXN1bHQ7CisKKyAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICBtYXRBID0gWzEsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAxLCAyLCAxXTsKKworICAgICAgICBtYXRCID0gWzEsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAzLCA0LCAxXTsKKworICAgICAgICBvdXQgPSAgWzAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLCAwXTsKKworICAgICAgICBpZGVudGl0eSA9IFsxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxXTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJub3JtYWxGcm9tTWF0NCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgbWF0QSA9IFsxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAxXTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1hdDMubm9ybWFsRnJvbU1hdDQob3V0LCBtYXRBKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggdHJhbnNsYXRpb24gYW5kIHJvdGF0aW9uIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG1hdDQudHJhbnNsYXRlKG1hdEEsIG1hdEEsIFsyLCA0LCA2XSk7CisgICAgICAgICAgICAgICAgbWF0NC5yb3RhdGVYKG1hdEEsIG1hdEEsIE1hdGguUEkgLyAyKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1hdDMubm9ybWFsRnJvbU1hdDQob3V0LCBtYXRBKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIGdpdmUgcm90YXRlZCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwtMSwgMF0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGRlc2NyaWJlKCJhbmQgc2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBtYXQ0LnNjYWxlKG1hdEEsIG1hdEEsIFsyLCAzLCA0XSk7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbWF0My5ub3JtYWxGcm9tTWF0NChvdXQsIG1hdEEpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgaXQoInNob3VsZCBnaXZlIHJvdGF0ZWQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMC41LCAwLCAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgMCwgICAgMC4zMzMzMzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIC0wLjI1LCAwXSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZnJvbVF1YXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHE7CisKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHEgPSBbIDAsIC0wLjcwNzEwNjc4MTE4NjU0NzUsIDAsIDAuNzA3MTA2NzgxMTg2NTQ3NSBdOworICAgICAgICAgICAgcmVzdWx0ID0gbWF0My5mcm9tUXVhdChvdXQsIHEpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKworICAgICAgICBpdCgic2hvdWxkIHJvdGF0ZSBhIHZlY3RvciB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgcXVhdCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZXhwZWN0KHZlYzMudHJhbnNmb3JtTWF0MyhbXSwgWzAsMCwtMV0sIG91dCkpLnRvQmVFcXVhbGlzaCh2ZWMzLnRyYW5zZm9ybVF1YXQoW10sIFswLDAsLTFdLCBxKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcm90YXRlIGEgdmVjdG9yIGJ5IFBJLzIgcmFkaWFucyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZXhwZWN0KHZlYzMudHJhbnNmb3JtTWF0MyhbXSwgWzAsMCwtMV0sIG91dCkpLnRvQmVFcXVhbGlzaChbMSwwLDBdKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZnJvbU1hdDQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1hdDMuZnJvbU1hdDQob3V0LCBbIDEsIDIsIDMsIDQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA2LCA3LCA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOSwxMCwxMSwxMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsMTQsMTUsMTZdKTsgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCBjYWxjdWxhdGUgcHJvcGVyIG1hdDMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbIDEsIDIsIDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA2LCA3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOSwxMCwxMV0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzY2FsZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLnNjYWxlKG91dCwgbWF0QSwgWzIsMl0pOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIGl0KCdzaG91bGQgcGxhY2UgcHJvcGVyIHZhbHVlcyBpbiBvdXQnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbIDIsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAyLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMiwgMSBdKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY3JlYXRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMuY3JlYXRlKCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDkgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byBhIDN4MyBpZGVudGl0eSBtYXRyaXgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKGlkZW50aXR5KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY2xvbmUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5jbG9uZShtYXRBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgOSBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgaW4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNvcHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5jb3B5KG91dCwgbWF0QSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJpZGVudGl0eSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLmlkZW50aXR5KG91dCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goaWRlbnRpdHkpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgidHJhbnNwb3NlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My50cmFuc3Bvc2Uob3V0LCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My50cmFuc3Bvc2UobWF0QSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImludmVydCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMuaW52ZXJ0KG91dCwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAtMSwgLTIsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLmludmVydChtYXRBLCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgLTEsIC0yLCAxCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJhZGpvaW50IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5hZGpvaW50KG91dCwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAtMSwgLTIsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLmFkam9pbnQobWF0QSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIC0xLCAtMiwgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZGV0ZXJtaW5hbnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5kZXRlcm1pbmFudChtYXRBKTsgfSk7CisgICAgICAgIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgZGV0ZXJtaW5hbnQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgxKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibXVsdGlwbHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnbXVsJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0My5tdWwpLnRvRXF1YWwobWF0My5tdWx0aXBseSk7IH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0My5tdWx0aXBseShvdXQsIG1hdEEsIG1hdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgNCwgNiwgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMywgNCwgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMubXVsdGlwbHkobWF0QSwgbWF0QSwgbWF0Qik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgNCwgNiwgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEIiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QikudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMywgNCwgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEIgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMubXVsdGlwbHkobWF0QiwgbWF0QSwgbWF0Qik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEIiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDQsIDYsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInN0ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQzLnN0cihtYXRBKTsgfSk7CisgICAgICAgIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoIm1hdDMoMSwgMCwgMCwgMCwgMSwgMCwgMSwgMiwgMSkiKTsgfSk7CisgICAgfSk7CisKKyAgIGRlc2NyaWJlKCJmcm9iIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDMuZnJvYihtYXRBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBGcm9iZW5pdXMgTm9ybSBvZiB0aGUgbWF0cml4IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoIE1hdGguc3FydChNYXRoLnBvdygxLCAyKSArIE1hdGgucG93KDAsIDIpICsgTWF0aC5wb3coMCwgMikgKyBNYXRoLnBvdygwLCAyKSArIE1hdGgucG93KDEsIDIpICsgTWF0aC5wb3coMCwgMikgKyBNYXRoLnBvdygxLCAyKSArIE1hdGgucG93KDIsIDIpICsgTWF0aC5wb3coMSwgMikpKTsgfSk7CisgICB9KTsKKworfSk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvbWF0NC1zcGVjLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDQtc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjdhNjdmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L21hdDQtc3BlYy5qcwpAQCAtMCwwICsxLDYzNyBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLiAqLworCitkZXNjcmliZSgibWF0NCIsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtYXQ0ID0gcmVxdWlyZSgiLi4vLi4vc3JjL2dsLW1hdHJpeC9tYXQ0LmpzIik7CisgICAgdmFyIHZlYzMgPSByZXF1aXJlKCIuLi8uLi9zcmMvZ2wtbWF0cml4L3ZlYzMuanMiKTsKKworICAgIHZhciBvdXQsIG1hdEEsIG1hdEIsIGlkZW50aXR5LCByZXN1bHQ7CisKKyAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAvLyBBdHRlbXB0aW5nIHRvIHBvcnRyYXkgYSBzZW1pLXJlYWxpc3RpYyB0cmFuc2Zvcm0gbWF0cml4CisgICAgICAgIG1hdEEgPSBbMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgMSwgMiwgMywgMV07CisKKyAgICAgICAgbWF0QiA9IFsxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICA0LCA1LCA2LCAxXTsKKworICAgICAgICBvdXQgPSAgWzAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDBdOworCisgICAgICAgIGlkZW50aXR5ID0gWzEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDFdOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNyZWF0ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmNyZWF0ZSgpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSAxNiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIGEgNHg0IGlkZW50aXR5IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goaWRlbnRpdHkpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjbG9uZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmNsb25lKG1hdEEpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSAxNiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgaW4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNvcHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5jb3B5KG91dCwgbWF0QSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2gobWF0QSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJpZGVudGl0eSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmlkZW50aXR5KG91dCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goaWRlbnRpdHkpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgidHJhbnNwb3NlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC50cmFuc3Bvc2Uob3V0LCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDIsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDMsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC50cmFuc3Bvc2UobWF0QSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDIsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDMsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImludmVydCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuaW52ZXJ0KG91dCwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAtMSwgLTIsIC0zLCAxCisgICAgICAgICAgICAgICAgXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5pbnZlcnQobWF0QSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIC0xLCAtMiwgLTMsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImFkam9pbnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmFkam9pbnQob3V0LCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIC0xLCAtMiwgLTMsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmFkam9pbnQobWF0QSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIC0xLCAtMiwgLTMsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImRldGVybWluYW50IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuZGV0ZXJtaW5hbnQobWF0QSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRldGVybWluYW50IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm11bHRpcGx5IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ211bCciLCBmdW5jdGlvbigpIHsgZXhwZWN0KG1hdDQubXVsKS50b0VxdWFsKG1hdDQubXVsdGlwbHkpOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQubXVsdGlwbHkob3V0LCBtYXRBLCBtYXRCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDUsIDcsIDksIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRCIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDQsIDUsIDYsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0Lm11bHRpcGx5KG1hdEEsIG1hdEEsIG1hdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDUsIDcsIDksIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRCIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEIpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDQsIDUsIDYsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRCIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0Lm11bHRpcGx5KG1hdEIsIG1hdEEsIG1hdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRCIiwgZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgICAgIGV4cGVjdChtYXRCKS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICA1LCA3LCA5LCAxCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0Qik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJ0cmFuc2xhdGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnRyYW5zbGF0ZShvdXQsIG1hdEEsIFs0LCA1LCA2XSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICA1LCA3LCA5LCAxCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQudHJhbnNsYXRlKG1hdEEsIG1hdEEsIFs0LCA1LCA2XSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgNSwgNywgOSwgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzY2FsZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuc2NhbGUob3V0LCBtYXRBLCBbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgNCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgNSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgNiwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnNjYWxlKG1hdEEsIG1hdEEsIFs0LCA1LCA2XSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgNCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgNSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgNiwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKyAgICAKKyAgICBkZXNjcmliZSgicm90YXRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByYWQgPSBNYXRoLlBJICogMC41OworICAgICAgICB2YXIgYXhpcyA9IFsxLCAwLCAwXTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQucm90YXRlKG91dCwgbWF0QSwgcmFkLCBheGlzKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgTWF0aC5jb3MocmFkKSwgTWF0aC5zaW4ocmFkKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgLU1hdGguc2luKHJhZCksIE1hdGguY29zKHJhZCksIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCisgICAgICAgICAgICAgICAgXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5yb3RhdGUobWF0QSwgbWF0QSwgcmFkLCBheGlzKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCBNYXRoLmNvcyhyYWQpLCBNYXRoLnNpbihyYWQpLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAtTWF0aC5zaW4ocmFkKSwgTWF0aC5jb3MocmFkKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJyb3RhdGVYIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByYWQgPSBNYXRoLlBJICogMC41OworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5yb3RhdGVYKG91dCwgbWF0QSwgcmFkKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgTWF0aC5jb3MocmFkKSwgTWF0aC5zaW4ocmFkKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgLU1hdGguc2luKHJhZCksIE1hdGguY29zKHJhZCksIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCisgICAgICAgICAgICAgICAgXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gbWF0QSBpcyB0aGUgb3V0cHV0IG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5yb3RhdGVYKG1hdEEsIG1hdEEsIHJhZCk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG1hdEEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgTWF0aC5jb3MocmFkKSwgTWF0aC5zaW4ocmFkKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgLU1hdGguc2luKHJhZCksIE1hdGguY29zKHJhZCksIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG1hdEEpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgicm90YXRlWSIsIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcmFkID0gTWF0aC5QSSAqIDAuNTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQucm90YXRlWShvdXQsIG1hdEEsIHJhZCk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIE1hdGguY29zKHJhZCksIDAsIC1NYXRoLnNpbihyYWQpLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbihyYWQpLCAwLCBNYXRoLmNvcyhyYWQpLCAwLAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCisgICAgICAgICAgICAgICAgXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IG1hdEEiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIG1hdEEgaXMgdGhlIG91dHB1dCBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQucm90YXRlWShtYXRBLCBtYXRBLCByYWQpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBtYXRBIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIE1hdGguY29zKHJhZCksIDAsIC1NYXRoLnNpbihyYWQpLCAwLAorICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbihyYWQpLCAwLCBNYXRoLmNvcyhyYWQpLCAwLAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLCAxCisgICAgICAgICAgICAgICAgXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG1hdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShtYXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInJvdGF0ZVoiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJhZCA9IE1hdGguUEkgKiAwLjU7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnJvdGF0ZVoob3V0LCBtYXRBLCByYWQpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICBNYXRoLmNvcyhyYWQpLCBNYXRoLnNpbihyYWQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAtTWF0aC5zaW4ocmFkKSwgTWF0aC5jb3MocmFkKSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG1hdEEpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDEKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBtYXRBIGlzIHRoZSBvdXRwdXQgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnJvdGF0ZVoobWF0QSwgbWF0QSwgcmFkKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gbWF0QSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICBNYXRoLmNvcyhyYWQpLCBNYXRoLnNpbihyYWQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAtTWF0aC5zaW4ocmFkKSwgTWF0aC5jb3MocmFkKSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgMQorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUobWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIC8vIFRPRE86IGZyb21Sb3RhdGlvblRyYW5zbGF0aW9uCisKKyAgICBkZXNjcmliZSgiZnJ1c3R1bSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LmZydXN0dW0ob3V0LCAtMSwgMSwgLTEsIDEsIC0xLCAxKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgLTEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgLTEsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwgLTEsCisgICAgICAgICAgICAgICAgMCwgMCwgMSwgMAorICAgICAgICAgICAgXSk7IAorICAgICAgICB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgicGVyc3BlY3RpdmUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGZvdnkgPSBNYXRoLlBJICogMC41OworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0LnBlcnNwZWN0aXZlKG91dCwgZm92eSwgMSwgMCwgMSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLCAtMSwgLTEsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMAorICAgICAgICAgICAgXSk7IAorICAgICAgICB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggbm9uemVybyBuZWFyLCA0NWRlZyBmb3Z5LCBhbmQgcmVhbGlzdGljIGFzcGVjdCByYXRpbyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5wZXJzcGVjdGl2ZShvdXQsIDQ1ICogTWF0aC5QSSAvIDE4MC4wLCA2NDAvNDgwLCAwLjEsIDIwMCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBjYWxjdWxhdGUgY29ycmVjdCBtYXRyaXgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAxLjgxMDY2LCAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDIuNDE0MjEzLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDAsIC0xLjAwMSwgLTEsCisgICAgICAgICAgICAgICAgMCwgMCwgLTAuMjAwMSwgMAorICAgICAgICAgICAgXSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJvcnRobyIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBtYXQ0Lm9ydGhvKG91dCwgLTEsIDEsIC0xLCAxLCAtMSwgMSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgIDEsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLCAtMSwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAxCisgICAgICAgICAgICBdKTsgCisgICAgICAgIH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJsb29rQXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGV5ZSAgICA9IFswLCAwLCAxXTsKKyAgICAgICAgdmFyIGNlbnRlciA9IFswLCAwLCAtMV07CisgICAgICAgIHZhciB1cCAgICAgPSBbMCwgMSwgMF07CisgICAgICAgIHZhciB2aWV3LCB1cCwgcmlnaHQ7CisKKyAgICAgICAgZGVzY3JpYmUoImxvb2tpbmcgZG93biIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2aWV3ID0gWzAsIC0xLCAgMF07CisgICAgICAgICAgICAgICAgdXAgICA9IFswLCAgMCwgLTFdOworICAgICAgICAgICAgICAgIHJpZ2h0PSBbMSwgIDAsICAwXTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtYXQ0Lmxvb2tBdChvdXQsIFswLCAwLCAwXSwgdmlldywgdXApOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdHJhbnNmb3JtIHZpZXcgaW50byBsb2NhbCAtWiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzMudHJhbnNmb3JtTWF0NChbXSwgdmlldywgb3V0KTsKKyAgICAgICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIDAsIC0xXSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCB0cmFuc2Zvcm0gdXAgaW50byBsb2NhbCArWSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzMudHJhbnNmb3JtTWF0NChbXSwgdXAsIG91dCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLCAxLCAwXSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCB0cmFuc2Zvcm0gcmlnaHQgaW50byBsb2NhbCArWCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzMudHJhbnNmb3JtTWF0NChbXSwgcmlnaHQsIG91dCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFsxLCAwLCAwXSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCIjNzQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgbWF0NC5sb29rQXQob3V0LCBbMCwyLDBdLCBbMCwwLjYsMF0sIFswLDAsLTFdKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHRyYW5zZm9ybSBhIHBvaW50ICdhYm92ZScgaW50byBsb2NhbCArWSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzMudHJhbnNmb3JtTWF0NChbXSwgWzAsIDIsIC0xXSwgb3V0KTsKKyAgICAgICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIDEsIDBdKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHRyYW5zZm9ybSBhIHBvaW50ICdyaWdodCBvZicgaW50byBsb2NhbCArWCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzMudHJhbnNmb3JtTWF0NChbXSwgWzEsIDIsIDBdLCBvdXQpOworICAgICAgICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMSwgMCwgMF0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdHJhbnNmb3JtIGEgcG9pbnQgJ2luIGZyb250IG9mJyBpbnRvIGxvY2FsIC1aIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmVjMy50cmFuc2Zvcm1NYXQ0KFtdLCBbMCwgMSwgMF0sIG91dCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLCAwLCAtMV0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBleWUgICAgPSBbMCwgMCwgMV07CisgICAgICAgICAgICBjZW50ZXIgPSBbMCwgMCwgLTFdOworICAgICAgICAgICAgdXAgICAgID0gWzAsIDEsIDBdOworICAgICAgICAgICAgcmVzdWx0ID0gbWF0NC5sb29rQXQob3V0LCBleWUsIGNlbnRlciwgdXApOworICAgICAgICB9KTsKKyAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMSwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLCAtMSwgMQorICAgICAgICAgICAgXSk7IAorICAgICAgICB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic3RyIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IG1hdDQuc3RyKG1hdEEpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgibWF0NCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAxLCAyLCAzLCAxKSIpOyB9KTsKKyAgICB9KTsKKworICAgZGVzY3JpYmUoImZyb2IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gbWF0NC5mcm9iKG1hdEEpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIEZyb2Jlbml1cyBOb3JtIG9mIHRoZSBtYXRyaXgiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCggTWF0aC5zcXJ0KE1hdGgucG93KDEsIDIpICsgTWF0aC5wb3coMSwgMikgKyBNYXRoLnBvdygxLCAyKSArIE1hdGgucG93KDEsIDIpICsgTWF0aC5wb3coMSwgMikgKyBNYXRoLnBvdygyLCAyKSArIE1hdGgucG93KDMsIDIpICkpOyB9KTsKKyAgIH0pOworCisKK30pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3F1YXQtc3BlYy5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9xdWF0LXNwZWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY1MTUwMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC9xdWF0LXNwZWMuanMKQEAgLTAsMCArMSw1NTkgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4gKi8KKworZGVzY3JpYmUoInF1YXQiLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbWF0MyA9IHJlcXVpcmUoIi4uLy4uL3NyYy9nbC1tYXRyaXgvbWF0My5qcyIpOworICAgIHZhciBtYXQ0ID0gcmVxdWlyZSgiLi4vLi4vc3JjL2dsLW1hdHJpeC9tYXQ0LmpzIik7CisgICAgdmFyIHF1YXQgPSByZXF1aXJlKCIuLi8uLi9zcmMvZ2wtbWF0cml4L3F1YXQuanMiKTsKKyAgICB2YXIgdmVjMyA9IHJlcXVpcmUoIi4uLy4uL3NyYy9nbC1tYXRyaXgvdmVjMy5qcyIpOworCisgICAgdmFyIG91dCwgcXVhdEEsIHF1YXRCLCByZXN1bHQ7CisgICAgdmFyIHZlYywgaWQsIGRlZzkwOworCisgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgcXVhdEEgPSBbMSwgMiwgMywgNF07CisgICAgICAgIHF1YXRCID0gWzUsIDYsIDcsIDhdOworICAgICAgICBvdXQgPSBbMCwgMCwgMCwgMF07CisgICAgICAgIHZlYyA9IFsxLCAxLCAtMV07CisgICAgICAgIGlkID0gWzAsIDAsIDAsIDFdOworICAgICAgICBkZWc5MCA9IE1hdGguUEkgLyAyOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNsZXJwIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ0aGUgbm9ybWFsIGNhc2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcXVhdC5zbGVycChvdXQsIFswLCAwLCAwLCAxXSwgWzAsIDEsIDAsIDBdLCAwLjUpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBjYWxjdWxhdGUgcHJvcGVyIHF1YXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIDAuNzA3MTA2LCAwLCAwLjcwNzEwNl0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVyZSBhID09IGIiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcXVhdC5zbGVycChvdXQsIFswLCAwLCAwLCAxXSwgWzAsIDAsIDAsIDFdLCAwLjUpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBjYWxjdWxhdGUgcHJvcGVyIHF1YXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIDAsIDAsIDFdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlcmUgdGhldGEgPT0gMTgwZGVnIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHF1YXQucm90YXRlWChxdWF0QSwgWzEsMCwwLDBdLCBNYXRoLlBJKTsgLy8gMTgwIGRlZworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1YXQuc2xlcnAob3V0LCBbMSwwLDAsMF0sIHF1YXRBLCAxKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIGNhbGN1bGF0ZSBwcm9wZXIgcXVhdCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMCwwLDAsLTFdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlcmUgYSA9PSAtYiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWF0LnNsZXJwKG91dCwgWzEsIDAsIDAsIDBdLCBbLTEsIDAsIDAsIDBdLCAwLjUpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBjYWxjdWxhdGUgcHJvcGVyIHF1YXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzEsIDAsIDAsIDBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJyb3RhdGVYIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZXN1bHQgPSBxdWF0LnJvdGF0ZVgob3V0LCBpZCwgZGVnOTApOworICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCB0cmFuc2Zvcm0gdmVjIGFjY29yZGluZ2x5IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2ZWMzLnRyYW5zZm9ybVF1YXQodmVjLCBbMCwwLC0xXSwgb3V0KTsKKyAgICAgICAgICAgIGV4cGVjdCh2ZWMpLnRvQmVFcXVhbGlzaChbMCwgMSwgMF0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJyb3RhdGVZIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZXN1bHQgPSBxdWF0LnJvdGF0ZVkob3V0LCBpZCwgZGVnOTApOworICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCB0cmFuc2Zvcm0gdmVjIGFjY29yZGluZ2x5IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2ZWMzLnRyYW5zZm9ybVF1YXQodmVjLCBbMCwwLC0xXSwgb3V0KTsKKyAgICAgICAgICAgIGV4cGVjdCh2ZWMpLnRvQmVFcXVhbGlzaChbLTEsIDAsIDBdKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgicm90YXRlWiIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcXVhdC5yb3RhdGVaKG91dCwgaWQsIGRlZzkwKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgdHJhbnNmb3JtIHZlYyBhY2NvcmRpbmdseSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmVjMy50cmFuc2Zvcm1RdWF0KHZlYywgWzAsMSwwXSwgb3V0KTsKKyAgICAgICAgICAgIGV4cGVjdCh2ZWMpLnRvQmVFcXVhbGlzaChbLTEsIDAsIDBdKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZnJvbU1hdDMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG1hdHI7CisKKyAgICAgICAgZGVzY3JpYmUoImxlZ2FjeSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBtYXRyID0gWyAxLCAwLCAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAgMCBdOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1YXQuZnJvbU1hdDMob3V0LCBtYXRyKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHNldCBkZXN0IHRvIHRoZSBjb3JyZWN0IHZhbHVlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFstMC43MDcxMDYsIDAsIDAsIDAuNzA3MTA2XSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZXJlIHRyYWNlID4gMCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBtYXRyID0gWyAxLCAwLCAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAgMCBdOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1YXQuZnJvbU1hdDMob3V0LCBtYXRyKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCBwcm9kdWNlIHRoZSBjb3JyZWN0IHRyYW5zZm9ybWF0aW9uIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlYzMudHJhbnNmb3JtUXVhdChbXSwgWzAsMSwwXSwgb3V0KSkudG9CZUVxdWFsaXNoKFswLDAsLTFdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgiZnJvbSBhIG5vcm1hbCBtYXRyaXggbG9va2luZyAnYmFja3dhcmQnIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG1hdHIgPSBtYXQzLmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIG1hdDMudHJhbnNwb3NlKG1hdHIsIG1hdDMuaW52ZXJ0KG1hdHIsIG1hdDMuZnJvbU1hdDQobWF0ciwgbWF0NC5sb29rQXQobWF0NC5jcmVhdGUoKSwgWzAsIDAsIDBdLCBbMCwgMCwgMV0sIFswLCAxLCAwXSkpKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcXVhdC5mcm9tTWF0MyhvdXQsIG1hdHIpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHByb2R1Y2UgdGhlIHNhbWUgdHJhbnNmb3JtYXRpb24gYXMgdGhlIGdpdmVuIG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWMzLnRyYW5zZm9ybVF1YXQoW10sIFszLDIsLTFdLCBxdWF0Lm5vcm1hbGl6ZShvdXQsIG91dCkpKS50b0JlRXF1YWxpc2godmVjMy50cmFuc2Zvcm1NYXQzKFtdLCBbMywyLC0xXSwgbWF0cikpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJmcm9tIGEgbm9ybWFsIG1hdHJpeCBsb29raW5nICdsZWZ0JyBhbmQgJ3Vwc2lkZSBkb3duJyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBtYXRyID0gbWF0My5jcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBtYXQzLnRyYW5zcG9zZShtYXRyLCBtYXQzLmludmVydChtYXRyLCBtYXQzLmZyb21NYXQ0KG1hdHIsIG1hdDQubG9va0F0KG1hdDQuY3JlYXRlKCksIFswLCAwLCAwXSwgWy0xLCAwLCAwXSwgWzAsIC0xLCAwXSkpKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcXVhdC5mcm9tTWF0MyhvdXQsIG1hdHIpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHByb2R1Y2UgdGhlIHNhbWUgdHJhbnNmb3JtYXRpb24gYXMgdGhlIGdpdmVuIG1hdHJpeCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWMzLnRyYW5zZm9ybVF1YXQoW10sIFszLDIsLTFdLCBxdWF0Lm5vcm1hbGl6ZShvdXQsIG91dCkpKS50b0JlRXF1YWxpc2godmVjMy50cmFuc2Zvcm1NYXQzKFtdLCBbMywyLC0xXSwgbWF0cikpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJmcm9tIGEgbm9ybWFsIG1hdHJpeCBsb29raW5nICd1cHNpZGUgZG93biciLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgbWF0ciA9IG1hdDMuY3JlYXRlKCk7CisgICAgICAgICAgICAgICAgbWF0My50cmFuc3Bvc2UobWF0ciwgbWF0My5pbnZlcnQobWF0ciwgbWF0My5mcm9tTWF0NChtYXRyLCBtYXQ0Lmxvb2tBdChtYXQ0LmNyZWF0ZSgpLCBbMCwgMCwgMF0sIFswLCAwLCAtMV0sIFswLCAtMSwgMF0pKSkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1YXQuZnJvbU1hdDMob3V0LCBtYXRyKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCBwcm9kdWNlIHRoZSBzYW1lIHRyYW5zZm9ybWF0aW9uIGFzIHRoZSBnaXZlbiBtYXRyaXgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QodmVjMy50cmFuc2Zvcm1RdWF0KFtdLCBbMywyLC0xXSwgcXVhdC5ub3JtYWxpemUob3V0LCBvdXQpKSkudG9CZUVxdWFsaXNoKHZlYzMudHJhbnNmb3JtTWF0MyhbXSwgWzMsMiwtMV0sIG1hdHIpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzZXRBeGVzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByOworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByID0gdmVjMy5jcmVhdGUoKTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoImxvb2tpbmcgbGVmdCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHZpZXcsIHVwLCByaWdodDsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmlldyA9IFstMSwgMCwgMF07CisgICAgICAgICAgICAgICAgdXAgICA9IFsgMCwgMSwgMF07CisgICAgICAgICAgICAgICAgcmlnaHQ9IFsgMCwgMCwtMV07CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcXVhdC5zZXRBeGVzKFtdLCB2aWV3LCByaWdodCwgdXApOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdHJhbnNmb3JtIGxvY2FsIHZpZXcgaW50byB3b3JsZCBsZWZ0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgciA9IHZlYzMudHJhbnNmb3JtUXVhdChbXSwgWzAsMCwtMV0sIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgZXhwZWN0KHIpLnRvQmVFcXVhbGlzaChbMSwgMCwgMF0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdHJhbnNmb3JtIGxvY2FsIHJpZ2h0IGludG8gd29ybGQgZnJvbnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByID0gdmVjMy50cmFuc2Zvcm1RdWF0KFtdLCBbMSwwLDBdLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGV4cGVjdChyKS50b0JlRXF1YWxpc2goWzAsIDAsIDFdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgiZ2l2ZW4gb3BlbmdsIGRlZmF1bHRzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgdmlldywgdXAsIHJpZ2h0OworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2aWV3ID0gWzAsIDAsIC0xXTsKKyAgICAgICAgICAgICAgICB1cCAgID0gWzAsIDEsICAwXTsKKyAgICAgICAgICAgICAgICByaWdodD0gWzEsIDAsICAwXTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWF0LnNldEF4ZXMob3V0LCB2aWV3LCByaWdodCwgdXApOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHByb2R1Y2UgaWRlbnRpdHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzAsIDAsIDAsIDFdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgibGVnYWN5IGV4YW1wbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciB2aWV3LCB1cCwgcmlnaHQ7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJpZ2h0PSBbMSwgIDAsIDBdOworICAgICAgICAgICAgICAgIHVwICAgPSBbMCwgIDAsIDFdOworICAgICAgICAgICAgICAgIHZpZXcgPSBbMCwgLTEsIDBdOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1YXQuc2V0QXhlcyhvdXQsIHZpZXcsIHJpZ2h0LCB1cCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgeGl0KCJzaG91bGQgc2V0IGNvcnJlY3QgcXVhdDQgdmFsdWVzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLjcwNzEwNiwgMCwgMCwgMC43MDcxMDZdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJyb3RhdGlvblRvIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByOworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByID0gdmVjMy5jcmVhdGUoKTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoImF0IHJpZ2h0IGFuZ2xlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1YXQucm90YXRpb25UbyhvdXQsIFswLCAxLCAwXSwgWzEsIDAsIDBdKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCBjYWxjdWxhdGUgcHJvcGVyIHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzAsIDAsIC0wLjcwNzEwNiwgMC43MDcxMDZdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWN0b3JzIGFyZSBwYXJhbGxlbCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWF0LnJvdGF0aW9uVG8ob3V0LCBbMCwgMSwgMF0sIFswLCAxLCAwXSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisKKyAgICAgICAgICAgIGl0KCJtdWx0aXBseWluZyBBIHNob3VsZCBwcm9kdWNlIEIiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QodmVjMy50cmFuc2Zvcm1RdWF0KHIsIFswLCAxLCAwXSwgb3V0KSkudG9CZUVxdWFsaXNoKFswLCAxLCAwXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjdG9ycyBhcmUgb3Bwb3NlZCBYIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHF1YXQucm90YXRpb25UbyhvdXQsIFsxLCAwLCAwXSwgWy0xLCAwLCAwXSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisKKyAgICAgICAgICAgIGl0KCJtdWx0aXBseWluZyBBIHNob3VsZCBwcm9kdWNlIEIiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QodmVjMy50cmFuc2Zvcm1RdWF0KHIsIFsxLCAwLCAwXSwgb3V0KSkudG9CZUVxdWFsaXNoKFstMSwgMCwgMF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY3RvcnMgYXJlIG9wcG9zZWQgWSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBxdWF0LnJvdGF0aW9uVG8ob3V0LCBbMCwgMSwgMF0sIFswLCAtMSwgMF0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworCisgICAgICAgICAgICBpdCgibXVsdGlwbHlpbmcgQSBzaG91bGQgcHJvZHVjZSBCIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlYzMudHJhbnNmb3JtUXVhdChyLCBbMCwgMSwgMF0sIG91dCkpLnRvQmVFcXVhbGlzaChbMCwgLTEsIDBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWN0b3JzIGFyZSBvcHBvc2VkIFoiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcXVhdC5yb3RhdGlvblRvKG91dCwgWzAsIDAsIDFdLCBbMCwgMCwgLTFdKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKworICAgICAgICAgICAgaXQoIm11bHRpcGx5aW5nIEEgc2hvdWxkIHByb2R1Y2UgQiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWMzLnRyYW5zZm9ybVF1YXQociwgWzAsIDAsIDFdLCBvdXQpKS50b0JlRXF1YWxpc2goWzAsIDAsIC0xXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY3JlYXRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuY3JlYXRlKCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDQgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byBhbiBpZGVudGl0eSBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMCwgMCwgMCwgMV0pOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjbG9uZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmNsb25lKHF1YXRBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNCBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgaW4gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKHF1YXRBKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZnJvbVZhbHVlcyIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmZyb21WYWx1ZXMoMSwgMiwgMywgNCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDQgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byB0aGUgdmFsdWVzIHBhc3NlZCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY29weSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmNvcHkob3V0LCBxdWF0QSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNldCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LnNldChvdXQsIDEsIDIsIDMsIDQpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJpZGVudGl0eSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmlkZW50aXR5KG91dCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIDAsIDAsIDFdKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNldEF4aXNBbmdsZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LnNldEF4aXNBbmdsZShvdXQsIFsxLCAwLCAwXSwgTWF0aC5QSSAqIDAuNSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAuNzA3MTA2LCAwLCAwLCAwLjcwNzEwNl0pOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisgICAgCisgICAgZGVzY3JpYmUoImFkZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmFkZChvdXQsIHF1YXRBLCBxdWF0Qik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzYsIDgsIDEwLCAxMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QSBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuYWRkKHF1YXRBLCBxdWF0QSwgcXVhdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbNiwgOCwgMTAsIDEyXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0QSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QiBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuYWRkKHF1YXRCLCBxdWF0QSwgcXVhdEIpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEIpLnRvQmVFcXVhbGlzaChbNiwgOCwgMTAsIDEyXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0Qik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJtdWx0aXBseSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdtdWwnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0Lm11bCkudG9FcXVhbChxdWF0Lm11bHRpcGx5KTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5tdWx0aXBseShvdXQsIHF1YXRBLCBxdWF0Qik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzI0LCA0OCwgNDgsIC02XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRBIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5tdWx0aXBseShxdWF0QSwgcXVhdEEsIHF1YXRCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzI0LCA0OCwgNDgsIC02XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0QSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QiBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQubXVsdGlwbHkocXVhdEIsIHF1YXRBLCBxdWF0Qik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFsyNCwgNDgsIDQ4LCAtNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUocXVhdEIpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5zY2FsZShvdXQsIHF1YXRBLCAyKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMiwgNCwgNiwgOF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QSBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuc2NhbGUocXVhdEEsIHF1YXRBLCAyKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzIsIDQsIDYsIDhdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImxlbmd0aCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdsZW4nIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0LmxlbikudG9FcXVhbChxdWF0Lmxlbmd0aCk7IH0pOworCisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQubGVuZ3RoKHF1YXRBKTsgfSk7CisgICAgICAgIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgbGVuZ3RoIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVDbG9zZVRvKDUuNDc3MjI1KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic3F1YXJlZExlbmd0aCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdzcXJMZW4nIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0LnNxckxlbikudG9FcXVhbChxdWF0LnNxdWFyZWRMZW5ndGgpOyB9KTsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LnNxdWFyZWRMZW5ndGgocXVhdEEpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBzcXVhcmVkIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDMwKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibm9ybWFsaXplIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHF1YXRBID0gWzUsIDAsIDAsIDBdOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0Lm5vcm1hbGl6ZShvdXQsIHF1YXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMCwgMCwgMF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFs1LCAwLCAwLCAwXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QSBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQubm9ybWFsaXplKHF1YXRBLCBxdWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAwLCAwLCAwXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJsZXJwIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQubGVycChvdXQsIHF1YXRBLCBxdWF0QiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMywgNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QSBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQubGVycChxdWF0QSwgcXVhdEEsIHF1YXRCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMywgNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUocXVhdEEpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEIpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gcXVhdEIgaXMgdGhlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmxlcnAocXVhdEIsIHF1YXRBLCBxdWF0QiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzMsIDQsIDUsIDZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgLypkZXNjcmliZSgic2xlcnAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5zbGVycChvdXQsIHF1YXRBLCBxdWF0QiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMywgNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QSBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuc2xlcnAocXVhdEEsIHF1YXRBLCBxdWF0QiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRBKS50b0JlRXF1YWxpc2goWzMsIDQsIDUsIDZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgcXVhdEIiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHF1YXRCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHF1YXRCIGlzIHRoZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5zbGVycChxdWF0QiwgcXVhdEEsIHF1YXRCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBxdWF0QiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEIpLnRvQmVFcXVhbGlzaChbMywgNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHF1YXRCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUocXVhdEIpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocXVhdEEpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Ki8KKworICAgIC8vIFRPRE86IHNsZXJwLCBjYWxjdWF0ZVcsIHJvdGF0ZVgsIHJvdGF0ZVksIHJvdGF0ZVoKKworICAgIGRlc2NyaWJlKCJpbnZlcnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgcXVhdGVybmlvbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5pbnZlcnQob3V0LCBxdWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWy0wLjAzMzMzMywgLTAuMDY2NjY2LCAtMC4xLCAwLjEzMzMzM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QSBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuaW52ZXJ0KHF1YXRBLCBxdWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFstMC4wMzMzMzMsIC0wLjA2NjY2NiwgLTAuMSwgMC4xMzMzMzNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBxdWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHF1YXRBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNvbmp1Z2F0ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSBxdWF0LmNvbmp1Z2F0ZShvdXQsIHF1YXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTEsIC0yLCAtMywgNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBxdWF0QSBpcyB0aGUgb3V0cHV0IHF1YXRlcm5pb24iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHF1YXQuY29uanVnYXRlKHF1YXRBLCBxdWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHF1YXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChxdWF0QSkudG9CZUVxdWFsaXNoKFstMSwgLTIsIC0zLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcXVhdEEiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShxdWF0QSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzdHIiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gcXVhdC5zdHIocXVhdEEpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBxdWF0ZXJuaW9uIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoInF1YXQoMSwgMiwgMywgNCkiKTsgfSk7CisgICAgfSk7Cit9KTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC92ZWMyLXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvdmVjMi1zcGVjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NGM1MjcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvdmVjMi1zcGVjLmpzCkBAIC0wLDAgKzEsNTQ5IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKK2Rlc2NyaWJlKCJ2ZWMyIiwgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZlYzIgPSByZXF1aXJlKCIuLi8uLi9zcmMvZ2wtbWF0cml4L3ZlYzIuanMiKTsKKworICAgIHZhciBvdXQsIHZlY0EsIHZlY0IsIHJlc3VsdDsKKworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMSwgMl07IHZlY0IgPSBbMywgNF07IG91dCA9IFswLCAwXTsgfSk7CisKKyAgICBkZXNjcmliZSgiY3JlYXRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuY3JlYXRlKCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDIgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byAwcyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIDBdKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY2xvbmUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5jbG9uZSh2ZWNBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgMiBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZXMgaW4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2godmVjQSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImZyb21WYWx1ZXMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5mcm9tVmFsdWVzKDEsIDIpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSAyIGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlcyBwYXNzZWQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImNvcHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5jb3B5KG91dCwgdmVjQSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNldCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnNldChvdXQsIDEsIDIpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICB9KTsKKyAgICAKKyAgICBkZXNjcmliZSgiYWRkIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5hZGQob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbNCwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuYWRkKHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzQsIDZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5hZGQodmVjQiwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKyAgICAKKyAgICBkZXNjcmliZSgic3VidHJhY3QiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnc3ViJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5zdWIpLnRvRXF1YWwodmVjMi5zdWJ0cmFjdCk7IH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zdWJ0cmFjdChvdXQsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFstMiwgLTJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnN1YnRyYWN0KHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWy0yLCAtMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnN1YnRyYWN0KHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWy0yLCAtMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJtdWx0aXBseSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdtdWwnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMyLm11bCkudG9FcXVhbCh2ZWMyLm11bHRpcGx5KTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm11bHRpcGx5KG91dCwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzMsIDhdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm11bHRpcGx5KHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzMsIDhdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5tdWx0aXBseSh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA4XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImRpdmlkZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdkaXYnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMyLmRpdikudG9FcXVhbCh2ZWMyLmRpdmlkZSk7IH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5kaXZpZGUob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMC4zMzMzMzMzLCAwLjVdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmRpdmlkZSh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFswLjMzMzMzMzMsIDAuNV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmRpdmlkZSh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFswLjMzMzMzMzMsIDAuNV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJtaW4iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsxLCA0XTsgdmVjQiA9IFszLCAyXTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm1pbihvdXQsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5taW4odmVjQSwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAyXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm1pbih2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDRdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm1heCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzEsIDRdOyB2ZWNCID0gWzMsIDJdOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubWF4KG91dCwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAyXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm1heCh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDJdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubWF4KHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgNF0pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnNjYWxlKG91dCwgdmVjQSwgMik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzIsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuc2NhbGUodmVjQSwgdmVjQSwgMik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMiwgNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNjYWxlQW5kQWRkIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zY2FsZUFuZEFkZChvdXQsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzIuNSwgNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuc2NhbGVBbmRBZGQodmVjQSwgdmVjQSwgdmVjQiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsyLjUsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zY2FsZUFuZEFkZCh2ZWNCLCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzIuNSwgNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdkaXN0JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5kaXN0KS50b0VxdWFsKHZlYzIuZGlzdGFuY2UpOyB9KTsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmRpc3RhbmNlKHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbygyLjgyODQyNyk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNxdWFyZWREaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdzcXJEaXN0JyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5zcXJEaXN0KS50b0VxdWFsKHZlYzIuc3F1YXJlZERpc3RhbmNlKTsgfSk7CisKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zcXVhcmVkRGlzdGFuY2UodmVjQSwgdmVjQik7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIHNxdWFyZWQgZGlzdGFuY2UiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCg4KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibGVuZ3RoIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2xlbiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzIubGVuKS50b0VxdWFsKHZlYzIubGVuZ3RoKTsgfSk7CisKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5sZW5ndGgodmVjQSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbygyLjIzNjA2Nyk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNxdWFyZWRMZW5ndGgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnc3FyTGVuJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMi5zcXJMZW4pLnRvRXF1YWwodmVjMi5zcXVhcmVkTGVuZ3RoKTsgfSk7CisKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zcXVhcmVkTGVuZ3RoKHZlY0EpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBzcXVhcmVkIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDUpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJuZWdhdGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLm5lZ2F0ZShvdXQsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFstMSwgLTJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubmVnYXRlKHZlY0EsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWy0xLCAtMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm5vcm1hbGl6ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzUsIDBdOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubm9ybWFsaXplKG91dCwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDBdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzUsIDBdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubm9ybWFsaXplKHZlY0EsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDBdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJkb3QiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5kb3QodmVjQSwgdmVjQik7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRvdCBwcm9kdWN0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMTEpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNF0pOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjcm9zcyIsIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgb3V0MzsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgb3V0MyA9IFswLCAwLCAwXTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHZlYzIuY3Jvc3Mob3V0MywgdmVjQSwgdmVjQik7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQzKS50b0JlRXF1YWxpc2goWzAsIDAsIC0yXSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQzKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibGVycCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubGVycChvdXQsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzIsIDNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmxlcnAodmVjQSwgdmVjQSwgdmVjQiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsyLCAzXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDRdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIubGVycCh2ZWNCLCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzIsIDNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgicmFuZG9tIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIG5vIHNjYWxlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnJhbmRvbShvdXQpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCByZXN1bHQgaW4gYSB1bml0IGxlbmd0aCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzIubGVuZ3RoKG91dCkpLnRvQmVDbG9zZVRvKDEuMCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIucmFuZG9tKG91dCwgNS4wKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmVzdWx0IGluIGEgdW5pdCBsZW5ndGggdmVjdG9yIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMyLmxlbmd0aChvdXQpKS50b0JlQ2xvc2VUbyg1LjApOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJ0cmFuc2Zvcm1NYXQyIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBtYXRBOworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyBtYXRBID0gWzEsIDIsIDMsIDRdOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIudHJhbnNmb3JtTWF0MihvdXQsIHZlY0EsIG1hdEEpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFs3LCAxMF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIudHJhbnNmb3JtTWF0Mih2ZWNBLCB2ZWNBLCBtYXRBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs3LCAxMF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgbWF0QSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QobWF0QSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJ0cmFuc2Zvcm1NYXQyZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgbWF0QTsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgbWF0QSA9IFsxLCAyLCAzLCA0LCA1LCA2XTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLnRyYW5zZm9ybU1hdDJkKG91dCwgdmVjQSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEyLCAxNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDQsIDUsIDZdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIudHJhbnNmb3JtTWF0MmQodmVjQSwgdmVjQSwgbWF0QSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMTIsIDE2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSBtYXRBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChtYXRBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDQsIDUsIDZdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImZvckVhY2giLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHZlY0FycmF5OworCisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2ZWNBcnJheSA9IFsKKyAgICAgICAgICAgICAgICAxLCAyLAorICAgICAgICAgICAgICAgIDMsIDQsCisgICAgICAgICAgICAgICAgMCwgMAorICAgICAgICAgICAgXTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgdGFrZSBubyBleHRyYSBhcmd1bWVudHMiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMCwgdmVjMi5ub3JtYWxpemUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyIsIGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDAuNDQ3MjE0LCAwLjg5NDQyNywKKyAgICAgICAgICAgICAgICAgICAgMC42LCAwLjgsCisgICAgICAgICAgICAgICAgICAgIDAsIDAKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgdGFrZXMgb25lIGV4dHJhIGFyZ3VtZW50cyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5mb3JFYWNoKHZlY0FycmF5LCAwLCAwLCAwLCB2ZWMyLmFkZCwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbGwgdmFsdWVzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LAorICAgICAgICAgICAgICAgICAgICA0LCA2LAorICAgICAgICAgICAgICAgICAgICAxLCAyCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGFuIG9mZnNldCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5mb3JFYWNoKHZlY0FycmF5LCAwLCAyLCAwLCB2ZWMyLmFkZCwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbGwgdmFsdWVzIGV4Y2VwdCB0aGUgZmlyc3QgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAyLAorICAgICAgICAgICAgICAgICAgICA0LCA2LAorICAgICAgICAgICAgICAgICAgICAxLCAyCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGEgY291bnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzIuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMiwgdmVjMi5hZGQsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGxhc3QgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LAorICAgICAgICAgICAgICAgICAgICA0LCA2LAorICAgICAgICAgICAgICAgICAgICAwLCAwCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGEgc3RyaWRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMyLmZvckVhY2godmVjQXJyYXksIDQsIDAsIDAsIHZlYzIuYWRkLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBzZWNvbmQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LAorICAgICAgICAgICAgICAgICAgICAzLCA0LAorICAgICAgICAgICAgICAgICAgICAxLCAyCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBjYWxsaW5nIGEgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIG91dCB2YXJpYWJsZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmVjMi5mb3JFYWNoKHZlY0FycmF5LCAwLCAwLCAwLCBmdW5jdGlvbihvdXQsIHZlYykge30pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgidmFsdWVzIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAyLAorICAgICAgICAgICAgICAgICAgICAzLCA0LAorICAgICAgICAgICAgICAgICAgICAwLCAwLAorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzdHIiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMi5zdHIodmVjQSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZlY3RvciIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKCJ2ZWMyKDEsIDIpIik7IH0pOworICAgIH0pOworfSk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvdmVjMy1zcGVjLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzMtc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWY5NDRmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3ZlYzMtc3BlYy5qcwpAQCAtMCwwICsxLDY2MSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLiAqLworCitkZXNjcmliZSgidmVjMyIsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtYXQzID0gcmVxdWlyZSgiLi4vLi4vc3JjL2dsLW1hdHJpeC9tYXQzLmpzIik7CisgICAgdmFyIG1hdDQgPSByZXF1aXJlKCIuLi8uLi9zcmMvZ2wtbWF0cml4L21hdDQuanMiKTsKKyAgICB2YXIgdmVjMyA9IHJlcXVpcmUoIi4uLy4uL3NyYy9nbC1tYXRyaXgvdmVjMy5qcyIpOworCisgICAgdmFyIG91dCwgdmVjQSwgdmVjQiwgcmVzdWx0OworCisgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsxLCAyLCAzXTsgdmVjQiA9IFs0LCA1LCA2XTsgb3V0ID0gWzAsIDAsIDBdOyB9KTsKKyAgICAKKyAgICBkZXNjcmliZSgncm90YXRlWCcsIGZ1bmN0aW9uKCl7CisgICAgIAlkZXNjcmliZSgncm90YXRpb24gYXJvdW5kIHdvcmxkIG9yaWdpbiBbMCwgMCwgMF0nLCBmdW5jdGlvbigpeworICAgIAkJCSAgYmVmb3JlRWFjaChmdW5jdGlvbigpeyB2ZWNBID0gWzAsIDEsIDBdOyB2ZWNCID0gWzAsIDAsIDBdOyByZXN1bHQgPSB2ZWMzLnJvdGF0ZVgob3V0LCB2ZWNBLCB2ZWNCLCBNYXRoLlBJKTsgfSk7CisgICAgCQkJICBpdCgic2hvdWxkIHJldHVybiB0aGUgcm90YXRlZCB2ZWN0b3IiLCBmdW5jdGlvbigpeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIC0xLCAwXSk7IH0pOworICAgIAkJfSk7CisgICAgCQlkZXNjcmliZSgncm90YXRpb24gYXJvdW5kIGFuIGFyYml0cmFyeSBvcmlnaW4nLCBmdW5jdGlvbigpeworICAgIAkJCSAgYmVmb3JlRWFjaChmdW5jdGlvbigpeyB2ZWNBID0gWzIsIDcsIDBdOyB2ZWNCID0gWzIsIDUsIDBdOyByZXN1bHQgPSB2ZWMzLnJvdGF0ZVgob3V0LCB2ZWNBLCB2ZWNCLCBNYXRoLlBJKTsgfSk7CisgICAgCQkJICBpdCgic2hvdWxkIHJldHVybiB0aGUgcm90YXRlZCB2ZWN0b3IiLCBmdW5jdGlvbigpeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzIsIDMsIDBdKTsgfSk7CisgICAgCQl9KTsKKyAgICAJfSk7CisgICAgCisgICAgCWRlc2NyaWJlKCdyb3RhdGVZJywgZnVuY3Rpb24oKXsKKyAgICAJCWRlc2NyaWJlKCdyb3RhdGlvbiBhcm91bmQgd29ybGQgb3JpZ2luIFswLCAwLCAwXScsIGZ1bmN0aW9uKCl7CisgICAgCQkJICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCl7IHZlY0EgPSBbMSwgMCwgMF07IHZlY0IgPSBbMCwgMCwgMF07IHJlc3VsdCA9IHZlYzMucm90YXRlWShvdXQsIHZlY0EsIHZlY0IsIE1hdGguUEkpOyB9KTsKKyAgICAJCQkgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSByb3RhdGVkIHZlY3RvciIsIGZ1bmN0aW9uKCl7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbLTEsIDAsIDBdKTsgfSk7CisgICAgCQl9KTsKKyAgICAJCWRlc2NyaWJlKCdyb3RhdGlvbiBhcm91bmQgYW4gYXJiaXRyYXJ5IG9yaWdpbicsIGZ1bmN0aW9uKCl7CisgICAgCQkJICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCl7IHZlY0EgPSBbLTIsIDMsIDEwXTsgdmVjQiA9IFstNCwgMywgMTBdOyByZXN1bHQgPSB2ZWMzLnJvdGF0ZVkob3V0LCB2ZWNBLCB2ZWNCLCBNYXRoLlBJKTsgfSk7CisgICAgCQkJICBpdCgic2hvdWxkIHJldHVybiB0aGUgcm90YXRlZCB2ZWN0b3IiLCBmdW5jdGlvbigpeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWy02LCAzLCAxMF0pOyB9KTsKKyAgICAJCX0pOworICAgIAl9KTsKKyAgICAKKyAgICAJZGVzY3JpYmUoJ3JvdGF0ZVonLCBmdW5jdGlvbigpeworICAgIAkJZGVzY3JpYmUoJ3JvdGF0aW9uIGFyb3VuZCB3b3JsZCBvcmlnaW4gWzAsIDAsIDBdJywgZnVuY3Rpb24oKXsKKyAgICAJCQkgIGJlZm9yZUVhY2goZnVuY3Rpb24oKXsgdmVjQSA9IFswLCAxLCAwXTsgdmVjQiA9IFswLCAwLCAwXTsgcmVzdWx0ID0gdmVjMy5yb3RhdGVaKG91dCwgdmVjQSwgdmVjQiwgTWF0aC5QSSk7IH0pOworICAgIAkJCSAgaXQoInNob3VsZCByZXR1cm4gdGhlIHJvdGF0ZWQgdmVjdG9yIiwgZnVuY3Rpb24oKXsgZXhwZWN0KHJlc3VsdCkudG9CZUVxdWFsaXNoKFswLCAtMSwgMF0pOyB9KTsKKyAgICAJCX0pOworICAgIAkJZGVzY3JpYmUoJ3JvdGF0aW9uIGFyb3VuZCBhbiBhcmJpdHJhcnkgb3JpZ2luJywgZnVuY3Rpb24oKXsKKyAgICAJCQkgIGJlZm9yZUVhY2goZnVuY3Rpb24oKXsgdmVjQSA9IFswLCA2LCAtNV07IHZlY0IgPSBbMCwgMCwgLTVdOyByZXN1bHQgPSB2ZWMzLnJvdGF0ZVoob3V0LCB2ZWNBLCB2ZWNCLCBNYXRoLlBJKTsgfSk7CisgICAgCQkJICBpdCgic2hvdWxkIHJldHVybiB0aGUgcm90YXRlZCB2ZWN0b3IiLCBmdW5jdGlvbigpeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIC02LCAtNV0pOyB9KTsKKyAgICAJCX0pOworICAgIAl9KTsKKyAgICAKKyAgICBkZXNjcmliZSgndHJhbnNmb3JtTWF0NCcsIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgbWF0cjsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYW4gaWRlbnRpdHkiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IG1hdHIgPSBbMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSBdIH0pOworCisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnRyYW5zZm9ybU1hdDQob3V0LCB2ZWNBLCBtYXRyKTsgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcHJvZHVjZSB0aGUgaW5wdXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBsb29rQXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IG1hdHIgPSBtYXQ0Lmxvb2tBdChtYXQ0LmNyZWF0ZSgpLCBbNSwgNiwgN10sIFsyLCA2LCA3XSwgWzAsIDEsIDBdKTsgfSk7CisKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMudHJhbnNmb3JtTWF0NChvdXQsIHZlY0EsIG1hdHIpOyB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCByb3RhdGUgYW5kIHRyYW5zbGF0ZSB0aGUgaW5wdXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWyA0LCAtNCwgLTQgXSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgcGVyc3BlY3RpdmUgbWF0cml4ICgjOTIpIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpdCgic2hvdWxkIHRyYW5zZm9ybSBhIHBvaW50IGZyb20gcGVyc3BlY3RpdmUocGkvMiwgNC8zLCAxLCAxMDApIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgbWF0ciA9IFswLjc1MCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAtMS4wMiwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAtMi4wMiwgMF07CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmVjMy50cmFuc2Zvcm1NYXQ0KFtdLCBbMTAsIDIwLCAzMF0sIG1hdHIpOworICAgICAgICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbLTAuMjUsIC0wLjY2NjY2NiwgMS4wODczMzNdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ3RyYW5zZm9ybU1hdDMnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG1hdHI7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGFuIGlkZW50aXR5IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyBtYXRyID0gWzEsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDEgXSB9KTsKKworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy50cmFuc2Zvcm1NYXQzKG91dCwgdmVjQSwgbWF0cik7IH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHByb2R1Y2UgdGhlIGlucHV0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIDkwZGVnIGFib3V0IFgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmVjMy50cmFuc2Zvcm1NYXQzKG91dCwgWzAsMSwwXSwgWzEsMCwwLDAsMCwxLDAsLTEsMF0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcHJvZHVjZSBjb3JyZWN0IG91dHB1dCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMCwwLDFdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCA5MGRlZyBhYm91dCBZIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzMudHJhbnNmb3JtTWF0MyhvdXQsIFsxLDAsMF0sIFswLDAsLTEsMCwxLDAsMSwwLDBdKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBpdCgic2hvdWxkIHByb2R1Y2UgY29ycmVjdCBvdXRwdXQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzAsMCwtMV0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIDkwZGVnIGFib3V0IFoiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmVjMy50cmFuc2Zvcm1NYXQzKG91dCwgWzEsMCwwXSwgWzAsMSwwLC0xLDAsMCwwLDAsMV0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcHJvZHVjZSBjb3JyZWN0IG91dHB1dCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMCwxLDBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIGxvb2tBdCBub3JtYWwgbWF0cml4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG1hdHIgPSBtYXQ0Lmxvb2tBdChtYXQ0LmNyZWF0ZSgpLCBbNSwgNiwgN10sIFsyLCA2LCA3XSwgWzAsIDEsIDBdKTsKKyAgICAgICAgICAgICAgICB2YXIgbiA9IG1hdDMuY3JlYXRlKCk7CisgICAgICAgICAgICAgICAgbWF0ciA9IG1hdDMudHJhbnNwb3NlKG4sIG1hdDMuaW52ZXJ0KG4sIG1hdDMuZnJvbU1hdDQobiwgbWF0cikpKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnRyYW5zZm9ybU1hdDMob3V0LCBbMSwwLDBdLCBtYXRyKTsgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcm90YXRlIHRoZSBpbnB1dCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbIDAsMCwxIF0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjcmVhdGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5jcmVhdGUoKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgMyBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIDBzIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMCwgMCwgMF0pOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjbG9uZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmNsb25lKHZlY0EpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSAzIGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlcyBpbiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaCh2ZWNBKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZnJvbVZhbHVlcyIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmZyb21WYWx1ZXMoMSwgMiwgMyk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDMgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byB0aGUgdmFsdWVzIHBhc3NlZCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY29weSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmNvcHkob3V0LCB2ZWNBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2V0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuc2V0KG91dCwgMSwgMiwgMyk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgIH0pOworICAgIAorICAgIGRlc2NyaWJlKCJhZGQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmFkZChvdXQsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFs1LCA3LCA5XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5hZGQodmVjQSwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbNSwgNywgOV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmFkZCh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA3LCA5XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworICAgIAorICAgIGRlc2NyaWJlKCJzdWJ0cmFjdCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdzdWInIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMzLnN1YikudG9FcXVhbCh2ZWMzLnN1YnRyYWN0KTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnN1YnRyYWN0KG91dCwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWy0zLCAtMywgLTNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnN1YnRyYWN0KHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWy0zLCAtMywgLTNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5zdWJ0cmFjdCh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFstMywgLTMsIC0zXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm11bHRpcGx5IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ211bCciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzMubXVsKS50b0VxdWFsKHZlYzMubXVsdGlwbHkpOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubXVsdGlwbHkob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbNCwgMTAsIDE4XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5tdWx0aXBseSh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs0LCAxMCwgMThdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5tdWx0aXBseSh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCAxMCwgMThdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZGl2aWRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2RpdiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzMuZGl2KS50b0VxdWFsKHZlYzMuZGl2aWRlKTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmRpdmlkZShvdXQsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFswLjI1LCAwLjQsIDAuNV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZGl2aWRlKHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzAuMjUsIDAuNCwgMC41XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZGl2aWRlKHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzAuMjUsIDAuNCwgMC41XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm1pbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzEsIDMsIDFdOyB2ZWNCID0gWzMsIDEsIDNdOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubWluKG91dCwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDEsIDFdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDMsIDFdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAxLCAzXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLm1pbih2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAxLCAxXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDEsIDNdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubWluKHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzEsIDEsIDFdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMywgMV0pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibWF4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMSwgMywgMV07IHZlY0IgPSBbMywgMSwgM107IH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5tYXgob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMywgMywgM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMywgMV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDEsIDNdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubWF4KHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzMsIDMsIDNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMSwgM10pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5tYXgodmVjQiwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMywgM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAzLCAxXSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzY2FsZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuc2NhbGUob3V0LCB2ZWNBLCAyKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMiwgNCwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5zY2FsZSh2ZWNBLCB2ZWNBLCAyKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsyLCA0LCA2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2NhbGVBbmRBZGQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnNjYWxlQW5kQWRkKG91dCwgdmVjQSwgdmVjQiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMywgNC41LCA2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5zY2FsZUFuZEFkZCh2ZWNBLCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzMsIDQuNSwgNl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnNjYWxlQW5kQWRkKHZlY0IsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgNC41LCA2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImRpc3RhbmNlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2Rpc3QnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMzLmRpc3QpLnRvRXF1YWwodmVjMy5kaXN0YW5jZSk7IH0pOworCisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZGlzdGFuY2UodmVjQSwgdmVjQik7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRpc3RhbmNlIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVDbG9zZVRvKDUuMTk2MTUyKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic3F1YXJlZERpc3RhbmNlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ3NxckRpc3QnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMzLnNxckRpc3QpLnRvRXF1YWwodmVjMy5zcXVhcmVkRGlzdGFuY2UpOyB9KTsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnNxdWFyZWREaXN0YW5jZSh2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgc3F1YXJlZCBkaXN0YW5jZSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDI3KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibGVuZ3RoIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2xlbiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzMubGVuKS50b0VxdWFsKHZlYzMubGVuZ3RoKTsgfSk7CisKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5sZW5ndGgodmVjQSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlQ2xvc2VUbygzLjc0MTY1Nyk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInNxdWFyZWRMZW5ndGgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnc3FyTGVuJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjMy5zcXJMZW4pLnRvRXF1YWwodmVjMy5zcXVhcmVkTGVuZ3RoKTsgfSk7CisKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5zcXVhcmVkTGVuZ3RoKHZlY0EpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBzcXVhcmVkIGxlbmd0aCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDE0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibmVnYXRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5uZWdhdGUob3V0LCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTEsIC0yLCAtM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5uZWdhdGUodmVjQSwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbLTEsIC0yLCAtM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm5vcm1hbGl6ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzUsIDAsIDBdOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubm9ybWFsaXplKG91dCwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDAsIDBdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzUsIDAsIDBdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubm9ybWFsaXplKHZlY0EsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDAsIDBdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJkb3QiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5kb3QodmVjQSwgdmVjQik7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRvdCBwcm9kdWN0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMzIpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjcm9zcyIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuY3Jvc3Mob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbLTMsIDYsIC0zXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5jcm9zcyh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFstMywgNiwgLTNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNCwgNSwgNl0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5jcm9zcyh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFstMywgNiwgLTNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibGVycCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubGVycChvdXQsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzIuNSwgMy41LCA0LjVdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmxlcnAodmVjQSwgdmVjQSwgdmVjQiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsyLjUsIDMuNSwgNC41XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzQsIDUsIDZdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMubGVycCh2ZWNCLCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzIuNSwgMy41LCA0LjVdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgM10pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgicmFuZG9tIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIG5vIHNjYWxlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnJhbmRvbShvdXQpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCByZXN1bHQgaW4gYSB1bml0IGxlbmd0aCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzMubGVuZ3RoKG91dCkpLnRvQmVDbG9zZVRvKDEuMCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMucmFuZG9tKG91dCwgNS4wKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmVzdWx0IGluIGEgdW5pdCBsZW5ndGggdmVjdG9yIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWMzLmxlbmd0aChvdXQpKS50b0JlQ2xvc2VUbyg1LjApOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJmb3JFYWNoIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciB2ZWNBcnJheTsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmVjQXJyYXkgPSBbCisgICAgICAgICAgICAgICAgMSwgMiwgMywKKyAgICAgICAgICAgICAgICA0LCA1LCA2LAorICAgICAgICAgICAgICAgIDAsIDAsIDAKKyAgICAgICAgICAgIF07CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHBlcmZvcm1pbmcgb3BlcmF0aW9ucyB0aGF0IHRha2Ugbm8gZXh0cmEgYXJndW1lbnRzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmZvckVhY2godmVjQXJyYXksIDAsIDAsIDAsIHZlYzMubm9ybWFsaXplKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAwLjI2NzI2MSwgMC41MzQ1MjIsIDAuODAxNzgzLCAKKyAgICAgICAgICAgICAgICAgICAgMC40NTU4NDIsIDAuNTY5ODAyLCAwLjY4Mzc2MywgCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgdGFrZXMgb25lIGV4dHJhIGFyZ3VtZW50cyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5mb3JFYWNoKHZlY0FycmF5LCAwLCAwLCAwLCB2ZWMzLmFkZCwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbGwgdmFsdWVzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LCA2LAorICAgICAgICAgICAgICAgICAgICA1LCA3LCA5LAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGFuIG9mZnNldCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjMy5mb3JFYWNoKHZlY0FycmF5LCAwLCAzLCAwLCB2ZWMzLmFkZCwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbGwgdmFsdWVzIGV4Y2VwdCB0aGUgZmlyc3QgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLAorICAgICAgICAgICAgICAgICAgICA1LCA3LCA5LAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGEgY291bnQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMiwgdmVjMy5hZGQsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCB1cGRhdGUgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGxhc3QgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LCA2LAorICAgICAgICAgICAgICAgICAgICA1LCA3LCA5LAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAwCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGEgc3RyaWRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLmZvckVhY2godmVjQXJyYXksIDYsIDAsIDAsIHZlYzMuYWRkLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBzZWNvbmQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LCA2LAorICAgICAgICAgICAgICAgICAgICA0LCA1LCA2LAorICAgICAgICAgICAgICAgICAgICAxLCAyLCAzCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBjYWxsaW5nIGEgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIG91dCB2YXJpYWJsZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdmVjMy5mb3JFYWNoKHZlY0FycmF5LCAwLCAwLCAwLCBmdW5jdGlvbihvdXQsIHZlYykge30pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgidmFsdWVzIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAxLCAyLCAzLAorICAgICAgICAgICAgICAgICAgICA0LCA1LCA2LAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAwCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImFuZ2xlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzMuYW5nbGUodmVjQSwgdmVjQik7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGFuZ2xlIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaCgwLjIyNTcyNik7IH0pOworICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzXSk7IH0pOworICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs0LCA1LCA2XSk7IH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoInN0ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWMzLnN0cih2ZWNBKTsgfSk7CisgICAgICAgIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmVjdG9yIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoInZlYzMoMSwgMiwgMykiKTsgfSk7CisgICAgfSk7Cit9KTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2dsLW1hdHJpeC92ZWM0LXNwZWMuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvdmVjNC1zcGVjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNjU5MDgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvdmVjNC1zcGVjLmpzCkBAIC0wLDAgKzEsNDkyIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKK2Rlc2NyaWJlKCJ2ZWM0IiwgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZlYzMgPSByZXF1aXJlKCIuLi8uLi9zcmMvZ2wtbWF0cml4L3ZlYzMuanMiKTsKKyAgICB2YXIgdmVjNCA9IHJlcXVpcmUoIi4uLy4uL3NyYy9nbC1tYXRyaXgvdmVjNC5qcyIpOworCisgICAgdmFyIG91dCwgdmVjQSwgdmVjQiwgcmVzdWx0OworCisgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFsxLCAyLCAzLCA0XTsgdmVjQiA9IFs1LCA2LCA3LCA4XTsgb3V0ID0gWzAsIDAsIDAsIDBdOyB9KTsKKworICAgIGRlc2NyaWJlKCJjcmVhdGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5jcmVhdGUoKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgNCBlbGVtZW50IGFycmF5IGluaXRpYWxpemVkIHRvIDBzIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaChbMCwgMCwgMCwgMF0pOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJjbG9uZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmNsb25lKHZlY0EpOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gYSA0IGVsZW1lbnQgYXJyYXkgaW5pdGlhbGl6ZWQgdG8gdGhlIHZhbHVlcyBpbiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVFcXVhbGlzaCh2ZWNBKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZnJvbVZhbHVlcyIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmZyb21WYWx1ZXMoMSwgMiwgMywgNCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHJldHVybiBhIDQgZWxlbWVudCBhcnJheSBpbml0aWFsaXplZCB0byB0aGUgdmFsdWVzIHBhc3NlZCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiY29weSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmNvcHkob3V0LCB2ZWNBKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2V0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuc2V0KG91dCwgMSwgMiwgMywgNCk7IH0pOworICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgIH0pOworICAgIAorICAgIGRlc2NyaWJlKCJhZGQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmFkZChvdXQsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFs2LCA4LCAxMCwgMTJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmFkZCh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs2LCA4LCAxMCwgMTJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5hZGQodmVjQiwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNiwgOCwgMTAsIDEyXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworICAgIAorICAgIGRlc2NyaWJlKCJzdWJ0cmFjdCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdzdWInIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWM0LnN1YikudG9FcXVhbCh2ZWM0LnN1YnRyYWN0KTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnN1YnRyYWN0KG91dCwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWy00LCAtNCwgLTQsIC00XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5zdWJ0cmFjdCh2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFstNCwgLTQsIC00LCAtNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnN1YnRyYWN0KHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWy00LCAtNCwgLTQsIC00XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm11bHRpcGx5IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ211bCciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzQubXVsKS50b0VxdWFsKHZlYzQubXVsdGlwbHkpOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubXVsdGlwbHkob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbNSwgMTIsIDIxLCAzMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubXVsdGlwbHkodmVjQSwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbNSwgMTIsIDIxLCAzMl0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lm11bHRpcGx5KHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDEyLCAyMSwgMzJdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZGl2aWRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2RpdiciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzQuZGl2KS50b0VxdWFsKHZlYzQuZGl2aWRlKTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmRpdmlkZShvdXQsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFswLjIsIDAuMzMzMzMzLCAwLjQyODU3MSwgMC41XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5kaXZpZGUodmVjQSwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMC4yLCAwLjMzMzMzMywgMC40Mjg1NzEsIDAuNV0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNCIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmRpdmlkZSh2ZWNCLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFswLjIsIDAuMzMzMzMzLCAwLjQyODU3MSwgMC41XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoIm1pbiIsIGZ1bmN0aW9uKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyB2ZWNBID0gWzEsIDMsIDEsIDNdOyB2ZWNCID0gWzMsIDEsIDMsIDFdOyB9KTsKKworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubWluKG91dCwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzEsIDEsIDEsIDFdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDMsIDEsIDNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFszLCAxLCAzLCAxXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lm1pbih2ZWNBLCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAxLCAxLCAxXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDEsIDMsIDFdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubWluKHZlY0IsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzEsIDEsIDEsIDFdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMywgMSwgM10pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibWF4IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHZlY0EgPSBbMSwgMywgMSwgM107IHZlY0IgPSBbMywgMSwgMywgMV07IH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2VwYXJhdGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5tYXgob3V0LCB2ZWNBLCB2ZWNCKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMywgMywgMywgM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMywgMSwgM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDEsIDMsIDFdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0EgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubWF4KHZlY0EsIHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzMsIDMsIDMsIDNdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMSwgMywgMV0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5tYXgodmVjQiwgdmVjQSwgdmVjQik7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbMywgMywgMywgM10pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNCKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAzLCAxLCAzXSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzY2FsZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuc2NhbGUob3V0LCB2ZWNBLCAyKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMiwgNCwgNiwgOF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5zY2FsZSh2ZWNBLCB2ZWNBLCAyKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsyLCA0LCA2LCA4XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic2NhbGVBbmRBZGQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnNjYWxlQW5kQWRkKG91dCwgdmVjQSwgdmVjQiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChvdXQpLnRvQmVFcXVhbGlzaChbMy41LCA1LCA2LjUsIDhdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnNjYWxlQW5kQWRkKHZlY0EsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMy41LCA1LCA2LjUsIDhdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0IpLnRvQmVFcXVhbGlzaChbNSwgNiwgNywgOF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQiBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5zY2FsZUFuZEFkZCh2ZWNCLCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMuNSwgNSwgNi41LCA4XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0IpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoImRpc3RhbmNlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGl0KCJzaG91bGQgaGF2ZSBhbiBhbGlhcyBjYWxsZWQgJ2Rpc3QnIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWM0LmRpc3QpLnRvRXF1YWwodmVjNC5kaXN0YW5jZSk7IH0pOworCisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZGlzdGFuY2UodmVjQSwgdmVjQik7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGRpc3RhbmNlIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVDbG9zZVRvKDgpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJzcXVhcmVkRGlzdGFuY2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnc3FyRGlzdCciLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzQuc3FyRGlzdCkudG9FcXVhbCh2ZWM0LnNxdWFyZWREaXN0YW5jZSk7IH0pOworCisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuc3F1YXJlZERpc3RhbmNlKHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBzcXVhcmVkIGRpc3RhbmNlIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoNjQpOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJsZW5ndGgiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaXQoInNob3VsZCBoYXZlIGFuIGFsaWFzIGNhbGxlZCAnbGVuJyIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjNC5sZW4pLnRvRXF1YWwodmVjNC5sZW5ndGgpOyB9KTsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lmxlbmd0aCh2ZWNBKTsgfSk7CisgICAgICAgIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgbGVuZ3RoIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmVDbG9zZVRvKDUuNDc3MjI1KTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic3F1YXJlZExlbmd0aCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBpdCgic2hvdWxkIGhhdmUgYW4gYWxpYXMgY2FsbGVkICdzcXJMZW4nIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWM0LnNxckxlbikudG9FcXVhbCh2ZWM0LnNxdWFyZWRMZW5ndGgpOyB9KTsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnNxdWFyZWRMZW5ndGgodmVjQSk7IH0pOworICAgICAgICAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIHNxdWFyZWQgbGVuZ3RoIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMzApOyB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJuZWdhdGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lm5lZ2F0ZShvdXQsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFstMSwgLTIsIC0zLCAtNF0pOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gdmVjQSBpcyB0aGUgb3V0cHV0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5uZWdhdGUodmVjQSwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbLTEsIC0yLCAtMywgLTRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQSk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJub3JtYWxpemUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgdmVjQSA9IFs1LCAwLCAwLCAwXTsgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndpdGggYSBzZXBhcmF0ZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lm5vcm1hbGl6ZShvdXQsIHZlY0EpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KG91dCkudG9CZUVxdWFsaXNoKFsxLCAwLCAwLCAwXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFs1LCAwLCAwLCAwXSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0Lm5vcm1hbGl6ZSh2ZWNBLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAwLCAwLCAwXSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgiZG90IiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuZG90KHZlY0EsIHZlY0IpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHRoZSBkb3QgcHJvZHVjdCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0VxdWFsKDcwKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgibGVycCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBkZXNjcmliZSgid2l0aCBhIHNlcGFyYXRlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubGVycChvdXQsIHZlY0EsIHZlY0IsIDAuNSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHBsYWNlIHZhbHVlcyBpbnRvIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3Qob3V0KS50b0JlRXF1YWxpc2goWzMsIDQsIDUsIDZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiBvdXQiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZShvdXQpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQiIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQikudG9CZUVxdWFsaXNoKFs1LCA2LCA3LCA4XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiB2ZWNBIGlzIHRoZSBvdXRwdXQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmxlcnAodmVjQSwgdmVjQSwgdmVjQiwgMC41KTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcGxhY2UgdmFsdWVzIGludG8gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFszLCA0LCA1LCA2XSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0EpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzUsIDYsIDcsIDhdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHZlY0IgaXMgdGhlIG91dHB1dCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQubGVycCh2ZWNCLCB2ZWNBLCB2ZWNCLCAwLjUpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCBwbGFjZSB2YWx1ZXMgaW50byB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNCKS50b0JlRXF1YWxpc2goWzMsIDQsIDUsIDZdKTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNCIiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQik7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgicmFuZG9tIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIG5vIHNjYWxlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LnJhbmRvbShvdXQpOyB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInNob3VsZCByZXN1bHQgaW4gYSB1bml0IGxlbmd0aCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlYzQubGVuZ3RoKG91dCkpLnRvQmVDbG9zZVRvKDEuMCk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gb3V0IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUob3V0KTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aXRoIGEgc2NhbGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQucmFuZG9tKG91dCwgNS4wKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmVzdWx0IGluIGEgdW5pdCBsZW5ndGggdmVjdG9yIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWM0Lmxlbmd0aChvdXQpKS50b0JlQ2xvc2VUbyg1LjApOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIG91dCIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKG91dCk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJmb3JFYWNoIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciB2ZWNBcnJheTsKKworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmVjQXJyYXkgPSBbCisgICAgICAgICAgICAgICAgMSwgMiwgMywgNCwKKyAgICAgICAgICAgICAgICA1LCA2LCA3LCA4LAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAKKyAgICAgICAgICAgIF07CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHBlcmZvcm1pbmcgb3BlcmF0aW9ucyB0aGF0IHRha2Ugbm8gZXh0cmEgYXJndW1lbnRzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmZvckVhY2godmVjQXJyYXksIDAsIDAsIDAsIHZlYzQubm9ybWFsaXplKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMiLCBmdW5jdGlvbigpIHsgCisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAwLjE4MjU3NCwgMC4zNjUxNDgsIDAuNTQ3NzIyLCAwLjczMDI5NiwKKyAgICAgICAgICAgICAgICAgICAgMC4zNzkwNDksIDAuNDU0ODU4LCAwLjUzMDY2OCwgMC42MDY0NzgsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgdGFrZXMgb25lIGV4dHJhIGFyZ3VtZW50cyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsgcmVzdWx0ID0gdmVjNC5mb3JFYWNoKHZlY0FycmF5LCAwLCAwLCAwLCB2ZWM0LmFkZCwgdmVjQSk7IH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbGwgdmFsdWVzIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LCA2LCA4LAorICAgICAgICAgICAgICAgICAgICA2LCA4LCAxMCwgMTIsCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDQKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgbm90IG1vZGlmeSB2ZWNBIiwgZnVuY3Rpb24oKSB7IGV4cGVjdCh2ZWNBKS50b0JlRXF1YWxpc2goWzEsIDIsIDMsIDRdKTsgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGRlc2NyaWJlKCJ3aGVuIHNwZWNpZnlpbmcgYW4gb2Zmc2V0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmZvckVhY2godmVjQXJyYXksIDAsIDQsIDAsIHZlYzQuYWRkLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBmaXJzdCB2ZWN0b3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QodmVjQXJyYXkpLnRvQmVFcXVhbGlzaChbCisgICAgICAgICAgICAgICAgICAgIDEsIDIsIDMsIDQsCisgICAgICAgICAgICAgICAgICAgIDYsIDgsIDEwLCAxMiwKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgNAorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gc3BlY2lmeWluZyBhIGNvdW50IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmZvckVhY2godmVjQXJyYXksIDAsIDAsIDIsIHZlYzQuYWRkLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBsYXN0IHZlY3RvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMiwgNCwgNiwgOCwKKyAgICAgICAgICAgICAgICAgICAgNiwgOCwgMTAsIDEyLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwCisgICAgICAgICAgICAgICAgXSk7IAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIHJldHVybiB2ZWNBcnJheSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QocmVzdWx0KS50b0JlKHZlY0FycmF5KTsgfSk7CisgICAgICAgICAgICBpdCgic2hvdWxkIG5vdCBtb2RpZnkgdmVjQSIsIGZ1bmN0aW9uKCkgeyBleHBlY3QodmVjQSkudG9CZUVxdWFsaXNoKFsxLCAyLCAzLCA0XSk7IH0pOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmliZSgid2hlbiBzcGVjaWZ5aW5nIGEgc3RyaWRlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uKCkgeyByZXN1bHQgPSB2ZWM0LmZvckVhY2godmVjQXJyYXksIDgsIDAsIDAsIHZlYzQuYWRkLCB2ZWNBKTsgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGl0KCJzaG91bGQgdXBkYXRlIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBzZWNvbmQgdmVjdG9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KHZlY0FycmF5KS50b0JlRXF1YWxpc2goWworICAgICAgICAgICAgICAgICAgICAyLCA0LCA2LCA4LAorICAgICAgICAgICAgICAgICAgICA1LCA2LCA3LCA4LCAKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgNAorICAgICAgICAgICAgICAgIF0pOyAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdmVjQXJyYXkiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9CZSh2ZWNBcnJheSk7IH0pOworICAgICAgICAgICAgaXQoInNob3VsZCBub3QgbW9kaWZ5IHZlY0EiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHZlY0EpLnRvQmVFcXVhbGlzaChbMSwgMiwgMywgNF0pOyB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVzY3JpYmUoIndoZW4gY2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBvdXQgdmFyaWFibGUiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZlYzMuZm9yRWFjaCh2ZWNBcnJheSwgMCwgMCwgMCwgZnVuY3Rpb24ob3V0LCB2ZWMpIHt9KTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXQoInZhbHVlcyBzaG91bGQgcmVtYWluIHVuY2hhbmdlZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGV4cGVjdCh2ZWNBcnJheSkudG9CZUVxdWFsaXNoKFsKKyAgICAgICAgICAgICAgICAgICAgMSwgMiwgMywgNCwKKyAgICAgICAgICAgICAgICAgICAgNSwgNiwgNywgOCwgCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAKKyAgICAgICAgICAgICAgICBdKTsgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHZlY0FycmF5IiwgZnVuY3Rpb24oKSB7IGV4cGVjdChyZXN1bHQpLnRvQmUodmVjQXJyYXkpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgic3RyIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7IHJlc3VsdCA9IHZlYzQuc3RyKHZlY0EpOyB9KTsKKyAgICAgICAgCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IiLCBmdW5jdGlvbigpIHsgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgidmVjNCgxLCAyLCAzLCA0KSIpOyB9KTsKKyAgICB9KTsKK30pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3dvcmtlci1zcGVjLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvZ2wtbWF0cml4L3dvcmtlci1zcGVjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTc1NGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9nbC1tYXRyaXgvd29ya2VyLXNwZWMuanMKQEAgLTAsMCArMSw0NCBAQAorLyogc3BlYyB0ZXN0cyBnbC1tYXRyaXggd2hlbiBlbWJlZGRlZCBpbnRvIGEgV2ViIFdvcmtlciAqLworCisvLyBvbmx5IHRlc3Qgd2l0aCB3b3JrZXJzIGlmIHdvcmtlcnMgYXJlIGF2YWlsYWJsZQoraWYgKHR5cGVvZihXb3JrZXIpICE9PSAndW5kZWZpbmVkJykgeworICBkZXNjcmliZSgiRW1iZWRkZWQgd2l0aGluIFdlYiBXb3JrZXJzIiwgZnVuY3Rpb24oKSB7CisgICAgaXQoInNob3VsZCBpbml0aWFsaXplIHN1Y2Nlc3NmdWxseSIsIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgdmFyIHNvdXJjZSA9IG51bGw7CisgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gdGhpcy5ET05FKSB7CisgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09IDIwMCkgeworICAgICAgICAgICAgc291cmNlID0gdGhpcy5yZXNwb25zZVRleHQ7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9OworICAgICAgeGhyLm9wZW4oIkdFVCIsICIvZGlzdC9nbC1tYXRyaXgtbWluLmpzIik7CisgICAgICB4aHIuc2VuZCgpOworCisgICAgICB2YXIgcmVzdWx0ID0gbnVsbDsKKworICAgICAgd2FpdHNGb3IoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICghc291cmNlKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoWworICAgICAgICAgICAgc291cmNlLAorICAgICAgICAgICAgInNlbGYucG9zdE1lc3NhZ2UodmVjMy5jcmVhdGUoKSk7IgorICAgICAgICAgIF0sCisgICAgICAgICAge3R5cGU6ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0In0KKyAgICAgICAgKTsKKworICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKTsKKyAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICByZXN1bHQgPSBlLmRhdGE7CisgICAgICAgIH07CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfSk7CisKKyAgICAgIHdhaXRzRm9yKGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuIGZhbHNlOworICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlRXF1YWxpc2goWzAsIDAsIDBdKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSk7Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NwZWMvaGVscGVycy9zcGVjLWhlbHBlci5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2hlbHBlcnMvc3BlYy1oZWxwZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9oZWxwZXJzL3NwZWMtaGVscGVyLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9oZWxwZXJzL3NwZWMtaGVscGVyLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9qYXNtaW5lLnltbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcGVjL2phc21pbmUueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmYjU2ZWMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3BlYy9qYXNtaW5lLnltbApAQCAtMCwwICsxLDc0IEBACisjIHNyY19maWxlcworIworIyBSZXR1cm4gYW4gYXJyYXkgb2YgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNyY19kaXIgdG8gaW5jbHVkZSBiZWZvcmUgamFzbWluZSBzcGVjcy4KKyMgRGVmYXVsdDogW10KKyMKKyMgRVhBTVBMRToKKyMKKyMgc3JjX2ZpbGVzOgorIyAgIC0gbGliL3NvdXJjZTEuanMKKyMgICAtIGxpYi9zb3VyY2UyLmpzCisjICAgLSBkaXN0LyoqLyouanMKKyMKK3NyY19maWxlczoKKyAgICAtIHNyYy9nbC1tYXRyaXguanMKKyAgICAtIHNyYy9nbC1tYXRyaXgvY29tbW9uLmpzCisKKyMgc3R5bGVzaGVldHMKKyMKKyMgUmV0dXJuIGFuIGFycmF5IG9mIHN0eWxlc2hlZXQgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNyY19kaXIgdG8gaW5jbHVkZSBiZWZvcmUgamFzbWluZSBzcGVjcy4KKyMgRGVmYXVsdDogW10KKyMKKyMgRVhBTVBMRToKKyMKKyMgc3R5bGVzaGVldHM6CisjICAgLSBjc3Mvc3R5bGUuY3NzCisjICAgLSBzdHlsZXNoZWV0cy8qLmNzcworIworc3R5bGVzaGVldHM6CisKKyMgaGVscGVycworIworIyBSZXR1cm4gYW4gYXJyYXkgb2YgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNwZWNfZGlyIHRvIGluY2x1ZGUgYmVmb3JlIGphc21pbmUgc3BlY3MuCisjIERlZmF1bHQ6IFsiaGVscGVycy8qKi8qLmpzIl0KKyMKKyMgRVhBTVBMRToKKyMKKyMgaGVscGVyczoKKyMgICAtIGhlbHBlcnMvKiovKi5qcworIworaGVscGVyczoKKworIyBzcGVjX2ZpbGVzCisjCisjICBSZXR1cm4gYW4gYXJyYXkgb2YgZmlsZXBhdGhzIHJlbGF0aXZlIHRvIHNwZWNfZGlyIHRvIGluY2x1ZGUuCisjIERlZmF1bHQ6IFsiKiovKltzU11wZWMuanMiXQorIworIyBFWEFNUExFOgorIworIyBzcGVjX2ZpbGVzOgorIyAgIC0gKiovKltzU11wZWMuanMKKyMKK3NwZWNfZmlsZXM6CisKKyMgc3JjX2RpcgorIworIyBTb3VyY2UgZGlyZWN0b3J5IHBhdGguIFlvdXIgc3JjX2ZpbGVzIG11c3QgYmUgcmV0dXJuZWQgcmVsYXRpdmUgdG8gdGhpcyBwYXRoLiBXaWxsIHVzZSByb290IGlmIGxlZnQgYmxhbmsuCisjIERlZmF1bHQ6IHByb2plY3Qgcm9vdAorIworIyBFWEFNUExFOgorIworIyBzcmNfZGlyOiBwdWJsaWMKKyMKK3NyY19kaXI6CisKKyMgc3BlY19kaXIKKyMKKyMgU3BlYyBkaXJlY3RvcnkgcGF0aC4gWW91ciBzcGVjX2ZpbGVzIG11c3QgYmUgcmV0dXJuZWQgcmVsYXRpdmUgdG8gdGhpcyBwYXRoLgorIyBEZWZhdWx0OiBzcGVjL2phdmFzY3JpcHRzCisjCisjIEVYQU1QTEU6CisjCisjIHNwZWNfZGlyOiBzcGVjL2phdmFzY3JpcHRzCisjCitzcGVjX2Rpcjogc3BlYwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXguanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTRmZTYwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXguanMKQEAgLTAsMCArMSwzNyBAQAorLyoqCisgKiBAZmlsZW92ZXJ2aWV3IGdsLW1hdHJpeCAtIEhpZ2ggcGVyZm9ybWFuY2UgbWF0cml4IGFuZCB2ZWN0b3Igb3BlcmF0aW9ucworICogQGF1dGhvciBCcmFuZG9uIEpvbmVzCisgKiBAYXV0aG9yIENvbGluIE1hY0tlbnppZSBJVgorICogQHZlcnNpb24gMi4zLjEKKyAqLworCisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisvLyBFTkQgSEVBREVSCisKK2V4cG9ydHMuZ2xNYXRyaXggPSByZXF1aXJlKCIuL2dsLW1hdHJpeC9jb21tb24uanMiKTsKK2V4cG9ydHMubWF0MiA9IHJlcXVpcmUoIi4vZ2wtbWF0cml4L21hdDIuanMiKTsKK2V4cG9ydHMubWF0MmQgPSByZXF1aXJlKCIuL2dsLW1hdHJpeC9tYXQyZC5qcyIpOworZXhwb3J0cy5tYXQzID0gcmVxdWlyZSgiLi9nbC1tYXRyaXgvbWF0My5qcyIpOworZXhwb3J0cy5tYXQ0ID0gcmVxdWlyZSgiLi9nbC1tYXRyaXgvbWF0NC5qcyIpOworZXhwb3J0cy5xdWF0ID0gcmVxdWlyZSgiLi9nbC1tYXRyaXgvcXVhdC5qcyIpOworZXhwb3J0cy52ZWMyID0gcmVxdWlyZSgiLi9nbC1tYXRyaXgvdmVjMi5qcyIpOworZXhwb3J0cy52ZWMzID0gcmVxdWlyZSgiLi9nbC1tYXRyaXgvdmVjMy5qcyIpOworZXhwb3J0cy52ZWM0ID0gcmVxdWlyZSgiLi9nbC1tYXRyaXgvdmVjNC5qcyIpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L2NvbW1vbi5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L2NvbW1vbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjUzNDIxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvY29tbW9uLmpzCkBAIC0wLDAgKzEsNTIgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4gKi8KKworLyoqCisgKiBAY2xhc3MgQ29tbW9uIHV0aWxpdGllcworICogQG5hbWUgZ2xNYXRyaXgKKyAqLwordmFyIGdsTWF0cml4ID0ge307CisKKy8vIENvbnN0YW50cworZ2xNYXRyaXguRVBTSUxPTiA9IDAuMDAwMDAxOworZ2xNYXRyaXguQVJSQVlfVFlQRSA9ICh0eXBlb2YgRmxvYXQzMkFycmF5ICE9PSAndW5kZWZpbmVkJykgPyBGbG9hdDMyQXJyYXkgOiBBcnJheTsKK2dsTWF0cml4LlJBTkRPTSA9IE1hdGgucmFuZG9tOworCisvKioKKyAqIFNldHMgdGhlIHR5cGUgb2YgYXJyYXkgdXNlZCB3aGVuIGNyZWF0aW5nIG5ldyB2ZWN0b3JzIGFuZCBtYXRyaWNlcworICoKKyAqIEBwYXJhbSB7VHlwZX0gdHlwZSBBcnJheSB0eXBlLCBzdWNoIGFzIEZsb2F0MzJBcnJheSBvciBBcnJheQorICovCitnbE1hdHJpeC5zZXRNYXRyaXhBcnJheVR5cGUgPSBmdW5jdGlvbih0eXBlKSB7CisgICAgR0xNQVRfQVJSQVlfVFlQRSA9IHR5cGU7Cit9CisKK3ZhciBkZWdyZWUgPSBNYXRoLlBJIC8gMTgwOworCisvKioKKyogQ29udmVydCBEZWdyZWUgVG8gUmFkaWFuCisqCisqIEBwYXJhbSB7TnVtYmVyfSBBbmdsZSBpbiBEZWdyZWVzCisqLworZ2xNYXRyaXgudG9SYWRpYW4gPSBmdW5jdGlvbihhKXsKKyAgICAgcmV0dXJuIGEgKiBkZWdyZWU7Cit9CisKK21vZHVsZS5leHBvcnRzID0gZ2xNYXRyaXg7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC9tYXQyLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0Mi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTJhNWMxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0Mi5qcwpAQCAtMCwwICsxLDMwMiBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLiAqLworCit2YXIgZ2xNYXRyaXggPSByZXF1aXJlKCIuL2NvbW1vbi5qcyIpOworCisvKioKKyAqIEBjbGFzcyAyeDIgTWF0cml4CisgKiBAbmFtZSBtYXQyCisgKi8KK3ZhciBtYXQyID0ge307CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBpZGVudGl0eSBtYXQyCisgKgorICogQHJldHVybnMge21hdDJ9IGEgbmV3IDJ4MiBtYXRyaXgKKyAqLworbWF0Mi5jcmVhdGUgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoNCk7CisgICAgb3V0WzBdID0gMTsKKyAgICBvdXRbMV0gPSAwOworICAgIG91dFsyXSA9IDA7CisgICAgb3V0WzNdID0gMTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IG1hdDIgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKKyAqCisgKiBAcGFyYW0ge21hdDJ9IGEgbWF0cml4IHRvIGNsb25lCisgKiBAcmV0dXJucyB7bWF0Mn0gYSBuZXcgMngyIG1hdHJpeAorICovCittYXQyLmNsb25lID0gZnVuY3Rpb24oYSkgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSg0KTsKKyAgICBvdXRbMF0gPSBhWzBdOworICAgIG91dFsxXSA9IGFbMV07CisgICAgb3V0WzJdID0gYVsyXTsKKyAgICBvdXRbM10gPSBhWzNdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSBtYXQyIHRvIGFub3RoZXIKKyAqCisgKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQyfSBhIHRoZSBzb3VyY2UgbWF0cml4CisgKiBAcmV0dXJucyB7bWF0Mn0gb3V0CisgKi8KK21hdDIuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIG91dFswXSA9IGFbMF07CisgICAgb3V0WzFdID0gYVsxXTsKKyAgICBvdXRbMl0gPSBhWzJdOworICAgIG91dFszXSA9IGFbM107CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogU2V0IGEgbWF0MiB0byB0aGUgaWRlbnRpdHkgbWF0cml4CisgKgorICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEByZXR1cm5zIHttYXQyfSBvdXQKKyAqLworbWF0Mi5pZGVudGl0eSA9IGZ1bmN0aW9uKG91dCkgeworICAgIG91dFswXSA9IDE7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDE7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogVHJhbnNwb3NlIHRoZSB2YWx1ZXMgb2YgYSBtYXQyCisgKgorICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDJ9IG91dAorICovCittYXQyLnRyYW5zcG9zZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIC8vIElmIHdlIGFyZSB0cmFuc3Bvc2luZyBvdXJzZWx2ZXMgd2UgY2FuIHNraXAgYSBmZXcgc3RlcHMgYnV0IGhhdmUgdG8gY2FjaGUgc29tZSB2YWx1ZXMKKyAgICBpZiAob3V0ID09PSBhKSB7CisgICAgICAgIHZhciBhMSA9IGFbMV07CisgICAgICAgIG91dFsxXSA9IGFbMl07CisgICAgICAgIG91dFsyXSA9IGExOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dFswXSA9IGFbMF07CisgICAgICAgIG91dFsxXSA9IGFbMl07CisgICAgICAgIG91dFsyXSA9IGFbMV07CisgICAgICAgIG91dFszXSA9IGFbM107CisgICAgfQorICAgIAorICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEludmVydHMgYSBtYXQyCisgKgorICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDJ9IG91dAorICovCittYXQyLmludmVydCA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sCisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkZXRlcm1pbmFudAorICAgICAgICBkZXQgPSBhMCAqIGEzIC0gYTIgKiBhMTsKKworICAgIGlmICghZGV0KSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICBkZXQgPSAxLjAgLyBkZXQ7CisgICAgCisgICAgb3V0WzBdID0gIGEzICogZGV0OworICAgIG91dFsxXSA9IC1hMSAqIGRldDsKKyAgICBvdXRbMl0gPSAtYTIgKiBkZXQ7CisgICAgb3V0WzNdID0gIGEwICogZGV0OworCisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgYWRqdWdhdGUgb2YgYSBtYXQyCisgKgorICogQHBhcmFtIHttYXQyfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDJ9IG91dAorICovCittYXQyLmFkam9pbnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICAvLyBDYWNoaW5nIHRoaXMgdmFsdWUgaXMgbmVzc2VjYXJ5IGlmIG91dCA9PSBhCisgICAgdmFyIGEwID0gYVswXTsKKyAgICBvdXRbMF0gPSAgYVszXTsKKyAgICBvdXRbMV0gPSAtYVsxXTsKKyAgICBvdXRbMl0gPSAtYVsyXTsKKyAgICBvdXRbM10gPSAgYTA7CisKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBkZXRlcm1pbmFudCBvZiBhIG1hdDIKKyAqCisgKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKyAqIEByZXR1cm5zIHtOdW1iZXJ9IGRldGVybWluYW50IG9mIGEKKyAqLworbWF0Mi5kZXRlcm1pbmFudCA9IGZ1bmN0aW9uIChhKSB7CisgICAgcmV0dXJuIGFbMF0gKiBhWzNdIC0gYVsyXSAqIGFbMV07Cit9OworCisvKioKKyAqIE11bHRpcGxpZXMgdHdvIG1hdDIncworICoKKyAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7bWF0Mn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHttYXQyfSBvdXQKKyAqLworbWF0Mi5tdWx0aXBseSA9IGZ1bmN0aW9uIChvdXQsIGEsIGIpIHsKKyAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdOworICAgIHZhciBiMCA9IGJbMF0sIGIxID0gYlsxXSwgYjIgPSBiWzJdLCBiMyA9IGJbM107CisgICAgb3V0WzBdID0gYTAgKiBiMCArIGEyICogYjE7CisgICAgb3V0WzFdID0gYTEgKiBiMCArIGEzICogYjE7CisgICAgb3V0WzJdID0gYTAgKiBiMiArIGEyICogYjM7CisgICAgb3V0WzNdID0gYTEgKiBiMiArIGEzICogYjM7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayBtYXQyLm11bHRpcGx5fQorICogQGZ1bmN0aW9uCisgKi8KK21hdDIubXVsID0gbWF0Mi5tdWx0aXBseTsKKworLyoqCisgKiBSb3RhdGVzIGEgbWF0MiBieSB0aGUgZ2l2ZW4gYW5nbGUKKyAqCisgKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQyfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorICogQHJldHVybnMge21hdDJ9IG91dAorICovCittYXQyLnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sCisgICAgICAgIHMgPSBNYXRoLnNpbihyYWQpLAorICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKKyAgICBvdXRbMF0gPSBhMCAqICBjICsgYTIgKiBzOworICAgIG91dFsxXSA9IGExICogIGMgKyBhMyAqIHM7CisgICAgb3V0WzJdID0gYTAgKiAtcyArIGEyICogYzsKKyAgICBvdXRbM10gPSBhMSAqIC1zICsgYTMgKiBjOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFNjYWxlcyB0aGUgbWF0MiBieSB0aGUgZGltZW5zaW9ucyBpbiB0aGUgZ2l2ZW4gdmVjMgorICoKKyAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDJ9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKKyAqIEBwYXJhbSB7dmVjMn0gdiB0aGUgdmVjMiB0byBzY2FsZSB0aGUgbWF0cml4IGJ5CisgKiBAcmV0dXJucyB7bWF0Mn0gb3V0CisgKiovCittYXQyLnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7CisgICAgdmFyIGEwID0gYVswXSwgYTEgPSBhWzFdLCBhMiA9IGFbMl0sIGEzID0gYVszXSwKKyAgICAgICAgdjAgPSB2WzBdLCB2MSA9IHZbMV07CisgICAgb3V0WzBdID0gYTAgKiB2MDsKKyAgICBvdXRbMV0gPSBhMSAqIHYwOworICAgIG91dFsyXSA9IGEyICogdjE7CisgICAgb3V0WzNdID0gYTMgKiB2MTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSBnaXZlbiBhbmdsZQorICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisgKgorICogICAgIG1hdDIuaWRlbnRpdHkoZGVzdCk7CisgKiAgICAgbWF0Mi5yb3RhdGUoZGVzdCwgZGVzdCwgcmFkKTsKKyAqCisgKiBAcGFyYW0ge21hdDJ9IG91dCBtYXQyIHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorICogQHJldHVybnMge21hdDJ9IG91dAorICovCittYXQyLmZyb21Sb3RhdGlvbiA9IGZ1bmN0aW9uKG91dCwgcmFkKSB7CisgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAorICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKKyAgICBvdXRbMF0gPSBjOworICAgIG91dFsxXSA9IHM7CisgICAgb3V0WzJdID0gLXM7CisgICAgb3V0WzNdID0gYzsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHZlY3RvciBzY2FsaW5nCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0Mi5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQyLnNjYWxlKGRlc3QsIGRlc3QsIHZlYyk7CisgKgorICogQHBhcmFtIHttYXQyfSBvdXQgbWF0MiByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorICogQHBhcmFtIHt2ZWMyfSB2IFNjYWxpbmcgdmVjdG9yCisgKiBAcmV0dXJucyB7bWF0Mn0gb3V0CisgKi8KK21hdDIuZnJvbVNjYWxpbmcgPSBmdW5jdGlvbihvdXQsIHYpIHsKKyAgICBvdXRbMF0gPSB2WzBdOworICAgIG91dFsxXSA9IDA7CisgICAgb3V0WzJdID0gMDsKKyAgICBvdXRbM10gPSB2WzFdOworICAgIHJldHVybiBvdXQ7Cit9CisKKy8qKgorICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIG1hdDIKKyAqCisgKiBAcGFyYW0ge21hdDJ9IG1hdCBtYXRyaXggdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCisgKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJpeAorICovCittYXQyLnN0ciA9IGZ1bmN0aW9uIChhKSB7CisgICAgcmV0dXJuICdtYXQyKCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyBhWzNdICsgJyknOworfTsKKworLyoqCisgKiBSZXR1cm5zIEZyb2Jlbml1cyBub3JtIG9mIGEgbWF0MgorICoKKyAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgbWF0cml4IHRvIGNhbGN1bGF0ZSBGcm9iZW5pdXMgbm9ybSBvZgorICogQHJldHVybnMge051bWJlcn0gRnJvYmVuaXVzIG5vcm0KKyAqLworbWF0Mi5mcm9iID0gZnVuY3Rpb24gKGEpIHsKKyAgICByZXR1cm4oTWF0aC5zcXJ0KE1hdGgucG93KGFbMF0sIDIpICsgTWF0aC5wb3coYVsxXSwgMikgKyBNYXRoLnBvdyhhWzJdLCAyKSArIE1hdGgucG93KGFbM10sIDIpKSkKK307CisKKy8qKgorICogUmV0dXJucyBMLCBEIGFuZCBVIG1hdHJpY2VzIChMb3dlciB0cmlhbmd1bGFyLCBEaWFnb25hbCBhbmQgVXBwZXIgdHJpYW5ndWxhcikgYnkgZmFjdG9yaXppbmcgdGhlIGlucHV0IG1hdHJpeAorICogQHBhcmFtIHttYXQyfSBMIHRoZSBsb3dlciB0cmlhbmd1bGFyIG1hdHJpeCAKKyAqIEBwYXJhbSB7bWF0Mn0gRCB0aGUgZGlhZ29uYWwgbWF0cml4IAorICogQHBhcmFtIHttYXQyfSBVIHRoZSB1cHBlciB0cmlhbmd1bGFyIG1hdHJpeCAKKyAqIEBwYXJhbSB7bWF0Mn0gYSB0aGUgaW5wdXQgbWF0cml4IHRvIGZhY3Rvcml6ZQorICovCisKK21hdDIuTERVID0gZnVuY3Rpb24gKEwsIEQsIFUsIGEpIHsgCisgICAgTFsyXSA9IGFbMl0vYVswXTsgCisgICAgVVswXSA9IGFbMF07IAorICAgIFVbMV0gPSBhWzFdOyAKKyAgICBVWzNdID0gYVszXSAtIExbMl0gKiBVWzFdOyAKKyAgICByZXR1cm4gW0wsIEQsIFVdOyAgICAgICAKK307IAorCisKK21vZHVsZS5leHBvcnRzID0gbWF0MjsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDJkLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0MmQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYzYTBlNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDJkLmpzCkBAIC0wLDAgKzEsMzE3IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKK3ZhciBnbE1hdHJpeCA9IHJlcXVpcmUoIi4vY29tbW9uLmpzIik7CisKKy8qKgorICogQGNsYXNzIDJ4MyBNYXRyaXgKKyAqIEBuYW1lIG1hdDJkCisgKiAKKyAqIEBkZXNjcmlwdGlvbiAKKyAqIEEgbWF0MmQgY29udGFpbnMgc2l4IGVsZW1lbnRzIGRlZmluZWQgYXM6CisgKiA8cHJlPgorICogW2EsIGMsIHR4LAorICogIGIsIGQsIHR5XQorICogPC9wcmU+CisgKiBUaGlzIGlzIGEgc2hvcnQgZm9ybSBmb3IgdGhlIDN4MyBtYXRyaXg6CisgKiA8cHJlPgorICogW2EsIGMsIHR4LAorICogIGIsIGQsIHR5LAorICogIDAsIDAsIDFdCisgKiA8L3ByZT4KKyAqIFRoZSBsYXN0IHJvdyBpcyBpZ25vcmVkIHNvIHRoZSBhcnJheSBpcyBzaG9ydGVyIGFuZCBvcGVyYXRpb25zIGFyZSBmYXN0ZXIuCisgKi8KK3ZhciBtYXQyZCA9IHt9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgbWF0MmQKKyAqCisgKiBAcmV0dXJucyB7bWF0MmR9IGEgbmV3IDJ4MyBtYXRyaXgKKyAqLworbWF0MmQuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDYpOworICAgIG91dFswXSA9IDE7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDE7CisgICAgb3V0WzRdID0gMDsKKyAgICBvdXRbNV0gPSAwOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgbWF0MmQgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKKyAqCisgKiBAcGFyYW0ge21hdDJkfSBhIG1hdHJpeCB0byBjbG9uZQorICogQHJldHVybnMge21hdDJkfSBhIG5ldyAyeDMgbWF0cml4CisgKi8KK21hdDJkLmNsb25lID0gZnVuY3Rpb24oYSkgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSg2KTsKKyAgICBvdXRbMF0gPSBhWzBdOworICAgIG91dFsxXSA9IGFbMV07CisgICAgb3V0WzJdID0gYVsyXTsKKyAgICBvdXRbM10gPSBhWzNdOworICAgIG91dFs0XSA9IGFbNF07CisgICAgb3V0WzVdID0gYVs1XTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MmQgdG8gYW5vdGhlcgorICoKKyAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQyZH0gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDJkfSBvdXQKKyAqLworbWF0MmQuY29weSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIG91dFswXSA9IGFbMF07CisgICAgb3V0WzFdID0gYVsxXTsKKyAgICBvdXRbMl0gPSBhWzJdOworICAgIG91dFszXSA9IGFbM107CisgICAgb3V0WzRdID0gYVs0XTsKKyAgICBvdXRbNV0gPSBhWzVdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFNldCBhIG1hdDJkIHRvIHRoZSBpZGVudGl0eSBtYXRyaXgKKyAqCisgKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEByZXR1cm5zIHttYXQyZH0gb3V0CisgKi8KK21hdDJkLmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7CisgICAgb3V0WzBdID0gMTsKKyAgICBvdXRbMV0gPSAwOworICAgIG91dFsyXSA9IDA7CisgICAgb3V0WzNdID0gMTsKKyAgICBvdXRbNF0gPSAwOworICAgIG91dFs1XSA9IDA7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogSW52ZXJ0cyBhIG1hdDJkCisgKgorICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBzb3VyY2UgbWF0cml4CisgKiBAcmV0dXJucyB7bWF0MmR9IG91dAorICovCittYXQyZC5pbnZlcnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICB2YXIgYWEgPSBhWzBdLCBhYiA9IGFbMV0sIGFjID0gYVsyXSwgYWQgPSBhWzNdLAorICAgICAgICBhdHggPSBhWzRdLCBhdHkgPSBhWzVdOworCisgICAgdmFyIGRldCA9IGFhICogYWQgLSBhYiAqIGFjOworICAgIGlmKCFkZXQpeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgZGV0ID0gMS4wIC8gZGV0OworCisgICAgb3V0WzBdID0gYWQgKiBkZXQ7CisgICAgb3V0WzFdID0gLWFiICogZGV0OworICAgIG91dFsyXSA9IC1hYyAqIGRldDsKKyAgICBvdXRbM10gPSBhYSAqIGRldDsKKyAgICBvdXRbNF0gPSAoYWMgKiBhdHkgLSBhZCAqIGF0eCkgKiBkZXQ7CisgICAgb3V0WzVdID0gKGFiICogYXR4IC0gYWEgKiBhdHkpICogZGV0OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIGRldGVybWluYW50IG9mIGEgbWF0MmQKKyAqCisgKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBzb3VyY2UgbWF0cml4CisgKiBAcmV0dXJucyB7TnVtYmVyfSBkZXRlcm1pbmFudCBvZiBhCisgKi8KK21hdDJkLmRldGVybWluYW50ID0gZnVuY3Rpb24gKGEpIHsKKyAgICByZXR1cm4gYVswXSAqIGFbM10gLSBhWzFdICogYVsyXTsKK307CisKKy8qKgorICogTXVsdGlwbGllcyB0d28gbWF0MmQncworICoKKyAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQyZH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHttYXQyZH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHttYXQyZH0gb3V0CisgKi8KK21hdDJkLm11bHRpcGx5ID0gZnVuY3Rpb24gKG91dCwgYSwgYikgeworICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sIGE0ID0gYVs0XSwgYTUgPSBhWzVdLAorICAgICAgICBiMCA9IGJbMF0sIGIxID0gYlsxXSwgYjIgPSBiWzJdLCBiMyA9IGJbM10sIGI0ID0gYls0XSwgYjUgPSBiWzVdOworICAgIG91dFswXSA9IGEwICogYjAgKyBhMiAqIGIxOworICAgIG91dFsxXSA9IGExICogYjAgKyBhMyAqIGIxOworICAgIG91dFsyXSA9IGEwICogYjIgKyBhMiAqIGIzOworICAgIG91dFszXSA9IGExICogYjIgKyBhMyAqIGIzOworICAgIG91dFs0XSA9IGEwICogYjQgKyBhMiAqIGI1ICsgYTQ7CisgICAgb3V0WzVdID0gYTEgKiBiNCArIGEzICogYjUgKyBhNTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIG1hdDJkLm11bHRpcGx5fQorICogQGZ1bmN0aW9uCisgKi8KK21hdDJkLm11bCA9IG1hdDJkLm11bHRpcGx5OworCisvKioKKyAqIFJvdGF0ZXMgYSBtYXQyZCBieSB0aGUgZ2l2ZW4gYW5nbGUKKyAqCisgKiBAcGFyYW0ge21hdDJkfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0MmR9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKKyAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisgKiBAcmV0dXJucyB7bWF0MmR9IG91dAorICovCittYXQyZC5yb3RhdGUgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKKyAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLCBhNCA9IGFbNF0sIGE1ID0gYVs1XSwKKyAgICAgICAgcyA9IE1hdGguc2luKHJhZCksCisgICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpOworICAgIG91dFswXSA9IGEwICogIGMgKyBhMiAqIHM7CisgICAgb3V0WzFdID0gYTEgKiAgYyArIGEzICogczsKKyAgICBvdXRbMl0gPSBhMCAqIC1zICsgYTIgKiBjOworICAgIG91dFszXSA9IGExICogLXMgKyBhMyAqIGM7CisgICAgb3V0WzRdID0gYTQ7CisgICAgb3V0WzVdID0gYTU7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogU2NhbGVzIHRoZSBtYXQyZCBieSB0aGUgZGltZW5zaW9ucyBpbiB0aGUgZ2l2ZW4gdmVjMgorICoKKyAqIEBwYXJhbSB7bWF0MmR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQyZH0gYSB0aGUgbWF0cml4IHRvIHRyYW5zbGF0ZQorICogQHBhcmFtIHt2ZWMyfSB2IHRoZSB2ZWMyIHRvIHNjYWxlIHRoZSBtYXRyaXggYnkKKyAqIEByZXR1cm5zIHttYXQyZH0gb3V0CisgKiovCittYXQyZC5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgdikgeworICAgIHZhciBhMCA9IGFbMF0sIGExID0gYVsxXSwgYTIgPSBhWzJdLCBhMyA9IGFbM10sIGE0ID0gYVs0XSwgYTUgPSBhWzVdLAorICAgICAgICB2MCA9IHZbMF0sIHYxID0gdlsxXTsKKyAgICBvdXRbMF0gPSBhMCAqIHYwOworICAgIG91dFsxXSA9IGExICogdjA7CisgICAgb3V0WzJdID0gYTIgKiB2MTsKKyAgICBvdXRbM10gPSBhMyAqIHYxOworICAgIG91dFs0XSA9IGE0OworICAgIG91dFs1XSA9IGE1OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFRyYW5zbGF0ZXMgdGhlIG1hdDJkIGJ5IHRoZSBkaW1lbnNpb25zIGluIHRoZSBnaXZlbiB2ZWMyCisgKgorICogQHBhcmFtIHttYXQyZH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBtYXRyaXggdG8gdHJhbnNsYXRlCisgKiBAcGFyYW0ge3ZlYzJ9IHYgdGhlIHZlYzIgdG8gdHJhbnNsYXRlIHRoZSBtYXRyaXggYnkKKyAqIEByZXR1cm5zIHttYXQyZH0gb3V0CisgKiovCittYXQyZC50cmFuc2xhdGUgPSBmdW5jdGlvbihvdXQsIGEsIHYpIHsKKyAgICB2YXIgYTAgPSBhWzBdLCBhMSA9IGFbMV0sIGEyID0gYVsyXSwgYTMgPSBhWzNdLCBhNCA9IGFbNF0sIGE1ID0gYVs1XSwKKyAgICAgICAgdjAgPSB2WzBdLCB2MSA9IHZbMV07CisgICAgb3V0WzBdID0gYTA7CisgICAgb3V0WzFdID0gYTE7CisgICAgb3V0WzJdID0gYTI7CisgICAgb3V0WzNdID0gYTM7CisgICAgb3V0WzRdID0gYTAgKiB2MCArIGEyICogdjEgKyBhNDsKKyAgICBvdXRbNV0gPSBhMSAqIHYwICsgYTMgKiB2MSArIGE1OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIGdpdmVuIGFuZ2xlCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0MmQuaWRlbnRpdHkoZGVzdCk7CisgKiAgICAgbWF0MmQucm90YXRlKGRlc3QsIGRlc3QsIHJhZCk7CisgKgorICogQHBhcmFtIHttYXQyZH0gb3V0IG1hdDJkIHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorICogQHJldHVybnMge21hdDJkfSBvdXQKKyAqLworbWF0MmQuZnJvbVJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKyAgICB2YXIgcyA9IE1hdGguc2luKHJhZCksIGMgPSBNYXRoLmNvcyhyYWQpOworICAgIG91dFswXSA9IGM7CisgICAgb3V0WzFdID0gczsKKyAgICBvdXRbMl0gPSAtczsKKyAgICBvdXRbM10gPSBjOworICAgIG91dFs0XSA9IDA7CisgICAgb3V0WzVdID0gMDsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHZlY3RvciBzY2FsaW5nCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0MmQuaWRlbnRpdHkoZGVzdCk7CisgKiAgICAgbWF0MmQuc2NhbGUoZGVzdCwgZGVzdCwgdmVjKTsKKyAqCisgKiBAcGFyYW0ge21hdDJkfSBvdXQgbWF0MmQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7dmVjMn0gdiBTY2FsaW5nIHZlY3RvcgorICogQHJldHVybnMge21hdDJkfSBvdXQKKyAqLworbWF0MmQuZnJvbVNjYWxpbmcgPSBmdW5jdGlvbihvdXQsIHYpIHsKKyAgICBvdXRbMF0gPSB2WzBdOworICAgIG91dFsxXSA9IDA7CisgICAgb3V0WzJdID0gMDsKKyAgICBvdXRbM10gPSB2WzFdOworICAgIG91dFs0XSA9IDA7CisgICAgb3V0WzVdID0gMDsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHZlY3RvciB0cmFuc2xhdGlvbgorICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisgKgorICogICAgIG1hdDJkLmlkZW50aXR5KGRlc3QpOworICogICAgIG1hdDJkLnRyYW5zbGF0ZShkZXN0LCBkZXN0LCB2ZWMpOworICoKKyAqIEBwYXJhbSB7bWF0MmR9IG91dCBtYXQyZCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorICogQHBhcmFtIHt2ZWMyfSB2IFRyYW5zbGF0aW9uIHZlY3RvcgorICogQHJldHVybnMge21hdDJkfSBvdXQKKyAqLworbWF0MmQuZnJvbVRyYW5zbGF0aW9uID0gZnVuY3Rpb24ob3V0LCB2KSB7CisgICAgb3V0WzBdID0gMTsKKyAgICBvdXRbMV0gPSAwOworICAgIG91dFsyXSA9IDA7CisgICAgb3V0WzNdID0gMTsKKyAgICBvdXRbNF0gPSB2WzBdOworICAgIG91dFs1XSA9IHZbMV07CisgICAgcmV0dXJuIG91dDsKK30KKworLyoqCisgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgbWF0MmQKKyAqCisgKiBAcGFyYW0ge21hdDJkfSBhIG1hdHJpeCB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKKyAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4CisgKi8KK21hdDJkLnN0ciA9IGZ1bmN0aW9uIChhKSB7CisgICAgcmV0dXJuICdtYXQyZCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgCisgICAgICAgICAgICAgICAgICAgIGFbM10gKyAnLCAnICsgYVs0XSArICcsICcgKyBhWzVdICsgJyknOworfTsKKworLyoqCisgKiBSZXR1cm5zIEZyb2Jlbml1cyBub3JtIG9mIGEgbWF0MmQKKyAqCisgKiBAcGFyYW0ge21hdDJkfSBhIHRoZSBtYXRyaXggdG8gY2FsY3VsYXRlIEZyb2Jlbml1cyBub3JtIG9mCisgKiBAcmV0dXJucyB7TnVtYmVyfSBGcm9iZW5pdXMgbm9ybQorICovCittYXQyZC5mcm9iID0gZnVuY3Rpb24gKGEpIHsgCisgICAgcmV0dXJuKE1hdGguc3FydChNYXRoLnBvdyhhWzBdLCAyKSArIE1hdGgucG93KGFbMV0sIDIpICsgTWF0aC5wb3coYVsyXSwgMikgKyBNYXRoLnBvdyhhWzNdLCAyKSArIE1hdGgucG93KGFbNF0sIDIpICsgTWF0aC5wb3coYVs1XSwgMikgKyAxKSkKK307IAorCittb2R1bGUuZXhwb3J0cyA9IG1hdDJkOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0My5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRkYTA1ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDMuanMKQEAgLTAsMCArMSw1NjUgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4gKi8KKwordmFyIGdsTWF0cml4ID0gcmVxdWlyZSgiLi9jb21tb24uanMiKTsKKworLyoqCisgKiBAY2xhc3MgM3gzIE1hdHJpeAorICogQG5hbWUgbWF0MworICovCit2YXIgbWF0MyA9IHt9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgbWF0MworICoKKyAqIEByZXR1cm5zIHttYXQzfSBhIG5ldyAzeDMgbWF0cml4CisgKi8KK21hdDMuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDkpOworICAgIG91dFswXSA9IDE7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDA7CisgICAgb3V0WzRdID0gMTsKKyAgICBvdXRbNV0gPSAwOworICAgIG91dFs2XSA9IDA7CisgICAgb3V0WzddID0gMDsKKyAgICBvdXRbOF0gPSAxOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENvcGllcyB0aGUgdXBwZXItbGVmdCAzeDMgdmFsdWVzIGludG8gdGhlIGdpdmVuIG1hdDMuCisgKgorICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyAzeDMgbWF0cml4CisgKiBAcGFyYW0ge21hdDR9IGEgICB0aGUgc291cmNlIDR4NCBtYXRyaXgKKyAqIEByZXR1cm5zIHttYXQzfSBvdXQKKyAqLworbWF0My5mcm9tTWF0NCA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIG91dFswXSA9IGFbMF07CisgICAgb3V0WzFdID0gYVsxXTsKKyAgICBvdXRbMl0gPSBhWzJdOworICAgIG91dFszXSA9IGFbNF07CisgICAgb3V0WzRdID0gYVs1XTsKKyAgICBvdXRbNV0gPSBhWzZdOworICAgIG91dFs2XSA9IGFbOF07CisgICAgb3V0WzddID0gYVs5XTsKKyAgICBvdXRbOF0gPSBhWzEwXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IG1hdDMgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKKyAqCisgKiBAcGFyYW0ge21hdDN9IGEgbWF0cml4IHRvIGNsb25lCisgKiBAcmV0dXJucyB7bWF0M30gYSBuZXcgM3gzIG1hdHJpeAorICovCittYXQzLmNsb25lID0gZnVuY3Rpb24oYSkgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSg5KTsKKyAgICBvdXRbMF0gPSBhWzBdOworICAgIG91dFsxXSA9IGFbMV07CisgICAgb3V0WzJdID0gYVsyXTsKKyAgICBvdXRbM10gPSBhWzNdOworICAgIG91dFs0XSA9IGFbNF07CisgICAgb3V0WzVdID0gYVs1XTsKKyAgICBvdXRbNl0gPSBhWzZdOworICAgIG91dFs3XSA9IGFbN107CisgICAgb3V0WzhdID0gYVs4XTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0MyB0byBhbm90aGVyCisgKgorICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDN9IG91dAorICovCittYXQzLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICBvdXRbMF0gPSBhWzBdOworICAgIG91dFsxXSA9IGFbMV07CisgICAgb3V0WzJdID0gYVsyXTsKKyAgICBvdXRbM10gPSBhWzNdOworICAgIG91dFs0XSA9IGFbNF07CisgICAgb3V0WzVdID0gYVs1XTsKKyAgICBvdXRbNl0gPSBhWzZdOworICAgIG91dFs3XSA9IGFbN107CisgICAgb3V0WzhdID0gYVs4XTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTZXQgYSBtYXQzIHRvIHRoZSBpZGVudGl0eSBtYXRyaXgKKyAqCisgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHJldHVybnMge21hdDN9IG91dAorICovCittYXQzLmlkZW50aXR5ID0gZnVuY3Rpb24ob3V0KSB7CisgICAgb3V0WzBdID0gMTsKKyAgICBvdXRbMV0gPSAwOworICAgIG91dFsyXSA9IDA7CisgICAgb3V0WzNdID0gMDsKKyAgICBvdXRbNF0gPSAxOworICAgIG91dFs1XSA9IDA7CisgICAgb3V0WzZdID0gMDsKKyAgICBvdXRbN10gPSAwOworICAgIG91dFs4XSA9IDE7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogVHJhbnNwb3NlIHRoZSB2YWx1ZXMgb2YgYSBtYXQzCisgKgorICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDN9IG91dAorICovCittYXQzLnRyYW5zcG9zZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIC8vIElmIHdlIGFyZSB0cmFuc3Bvc2luZyBvdXJzZWx2ZXMgd2UgY2FuIHNraXAgYSBmZXcgc3RlcHMgYnV0IGhhdmUgdG8gY2FjaGUgc29tZSB2YWx1ZXMKKyAgICBpZiAob3V0ID09PSBhKSB7CisgICAgICAgIHZhciBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMTIgPSBhWzVdOworICAgICAgICBvdXRbMV0gPSBhWzNdOworICAgICAgICBvdXRbMl0gPSBhWzZdOworICAgICAgICBvdXRbM10gPSBhMDE7CisgICAgICAgIG91dFs1XSA9IGFbN107CisgICAgICAgIG91dFs2XSA9IGEwMjsKKyAgICAgICAgb3V0WzddID0gYTEyOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dFswXSA9IGFbMF07CisgICAgICAgIG91dFsxXSA9IGFbM107CisgICAgICAgIG91dFsyXSA9IGFbNl07CisgICAgICAgIG91dFszXSA9IGFbMV07CisgICAgICAgIG91dFs0XSA9IGFbNF07CisgICAgICAgIG91dFs1XSA9IGFbN107CisgICAgICAgIG91dFs2XSA9IGFbMl07CisgICAgICAgIG91dFs3XSA9IGFbNV07CisgICAgICAgIG91dFs4XSA9IGFbOF07CisgICAgfQorICAgIAorICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEludmVydHMgYSBtYXQzCisgKgorICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDN9IG91dAorICovCittYXQzLmludmVydCA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAorICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAorICAgICAgICBhMjAgPSBhWzZdLCBhMjEgPSBhWzddLCBhMjIgPSBhWzhdLAorCisgICAgICAgIGIwMSA9IGEyMiAqIGExMSAtIGExMiAqIGEyMSwKKyAgICAgICAgYjExID0gLWEyMiAqIGExMCArIGExMiAqIGEyMCwKKyAgICAgICAgYjIxID0gYTIxICogYTEwIC0gYTExICogYTIwLAorCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKKyAgICAgICAgZGV0ID0gYTAwICogYjAxICsgYTAxICogYjExICsgYTAyICogYjIxOworCisgICAgaWYgKCFkZXQpIHsgCisgICAgICAgIHJldHVybiBudWxsOyAKKyAgICB9CisgICAgZGV0ID0gMS4wIC8gZGV0OworCisgICAgb3V0WzBdID0gYjAxICogZGV0OworICAgIG91dFsxXSA9ICgtYTIyICogYTAxICsgYTAyICogYTIxKSAqIGRldDsKKyAgICBvdXRbMl0gPSAoYTEyICogYTAxIC0gYTAyICogYTExKSAqIGRldDsKKyAgICBvdXRbM10gPSBiMTEgKiBkZXQ7CisgICAgb3V0WzRdID0gKGEyMiAqIGEwMCAtIGEwMiAqIGEyMCkgKiBkZXQ7CisgICAgb3V0WzVdID0gKC1hMTIgKiBhMDAgKyBhMDIgKiBhMTApICogZGV0OworICAgIG91dFs2XSA9IGIyMSAqIGRldDsKKyAgICBvdXRbN10gPSAoLWEyMSAqIGEwMCArIGEwMSAqIGEyMCkgKiBkZXQ7CisgICAgb3V0WzhdID0gKGExMSAqIGEwMCAtIGEwMSAqIGExMCkgKiBkZXQ7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgYWRqdWdhdGUgb2YgYSBtYXQzCisgKgorICogQHBhcmFtIHttYXQzfSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDN9IG91dAorICovCittYXQzLmFkam9pbnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwKKyAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKKyAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XTsKKworICAgIG91dFswXSA9IChhMTEgKiBhMjIgLSBhMTIgKiBhMjEpOworICAgIG91dFsxXSA9IChhMDIgKiBhMjEgLSBhMDEgKiBhMjIpOworICAgIG91dFsyXSA9IChhMDEgKiBhMTIgLSBhMDIgKiBhMTEpOworICAgIG91dFszXSA9IChhMTIgKiBhMjAgLSBhMTAgKiBhMjIpOworICAgIG91dFs0XSA9IChhMDAgKiBhMjIgLSBhMDIgKiBhMjApOworICAgIG91dFs1XSA9IChhMDIgKiBhMTAgLSBhMDAgKiBhMTIpOworICAgIG91dFs2XSA9IChhMTAgKiBhMjEgLSBhMTEgKiBhMjApOworICAgIG91dFs3XSA9IChhMDEgKiBhMjAgLSBhMDAgKiBhMjEpOworICAgIG91dFs4XSA9IChhMDAgKiBhMTEgLSBhMDEgKiBhMTApOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIGRldGVybWluYW50IG9mIGEgbWF0MworICoKKyAqIEBwYXJhbSB7bWF0M30gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge051bWJlcn0gZGV0ZXJtaW5hbnQgb2YgYQorICovCittYXQzLmRldGVybWluYW50ID0gZnVuY3Rpb24gKGEpIHsKKyAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwKKyAgICAgICAgYTEwID0gYVszXSwgYTExID0gYVs0XSwgYTEyID0gYVs1XSwKKyAgICAgICAgYTIwID0gYVs2XSwgYTIxID0gYVs3XSwgYTIyID0gYVs4XTsKKworICAgIHJldHVybiBhMDAgKiAoYTIyICogYTExIC0gYTEyICogYTIxKSArIGEwMSAqICgtYTIyICogYTEwICsgYTEyICogYTIwKSArIGEwMiAqIChhMjEgKiBhMTAgLSBhMTEgKiBhMjApOworfTsKKworLyoqCisgKiBNdWx0aXBsaWVzIHR3byBtYXQzJ3MKKyAqCisgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge21hdDN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7bWF0M30gb3V0CisgKi8KK21hdDMubXVsdGlwbHkgPSBmdW5jdGlvbiAob3V0LCBhLCBiKSB7CisgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCisgICAgICAgIGExMCA9IGFbM10sIGExMSA9IGFbNF0sIGExMiA9IGFbNV0sCisgICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF0sCisKKyAgICAgICAgYjAwID0gYlswXSwgYjAxID0gYlsxXSwgYjAyID0gYlsyXSwKKyAgICAgICAgYjEwID0gYlszXSwgYjExID0gYls0XSwgYjEyID0gYls1XSwKKyAgICAgICAgYjIwID0gYls2XSwgYjIxID0gYls3XSwgYjIyID0gYls4XTsKKworICAgIG91dFswXSA9IGIwMCAqIGEwMCArIGIwMSAqIGExMCArIGIwMiAqIGEyMDsKKyAgICBvdXRbMV0gPSBiMDAgKiBhMDEgKyBiMDEgKiBhMTEgKyBiMDIgKiBhMjE7CisgICAgb3V0WzJdID0gYjAwICogYTAyICsgYjAxICogYTEyICsgYjAyICogYTIyOworCisgICAgb3V0WzNdID0gYjEwICogYTAwICsgYjExICogYTEwICsgYjEyICogYTIwOworICAgIG91dFs0XSA9IGIxMCAqIGEwMSArIGIxMSAqIGExMSArIGIxMiAqIGEyMTsKKyAgICBvdXRbNV0gPSBiMTAgKiBhMDIgKyBiMTEgKiBhMTIgKyBiMTIgKiBhMjI7CisKKyAgICBvdXRbNl0gPSBiMjAgKiBhMDAgKyBiMjEgKiBhMTAgKyBiMjIgKiBhMjA7CisgICAgb3V0WzddID0gYjIwICogYTAxICsgYjIxICogYTExICsgYjIyICogYTIxOworICAgIG91dFs4XSA9IGIyMCAqIGEwMiArIGIyMSAqIGExMiArIGIyMiAqIGEyMjsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIG1hdDMubXVsdGlwbHl9CisgKiBAZnVuY3Rpb24KKyAqLworbWF0My5tdWwgPSBtYXQzLm11bHRpcGx5OworCisvKioKKyAqIFRyYW5zbGF0ZSBhIG1hdDMgYnkgdGhlIGdpdmVuIHZlY3RvcgorICoKKyAqIEBwYXJhbSB7bWF0M30gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDN9IGEgdGhlIG1hdHJpeCB0byB0cmFuc2xhdGUKKyAqIEBwYXJhbSB7dmVjMn0gdiB2ZWN0b3IgdG8gdHJhbnNsYXRlIGJ5CisgKiBAcmV0dXJucyB7bWF0M30gb3V0CisgKi8KK21hdDMudHJhbnNsYXRlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7CisgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sCisgICAgICAgIGExMCA9IGFbM10sIGExMSA9IGFbNF0sIGExMiA9IGFbNV0sCisgICAgICAgIGEyMCA9IGFbNl0sIGEyMSA9IGFbN10sIGEyMiA9IGFbOF0sCisgICAgICAgIHggPSB2WzBdLCB5ID0gdlsxXTsKKworICAgIG91dFswXSA9IGEwMDsKKyAgICBvdXRbMV0gPSBhMDE7CisgICAgb3V0WzJdID0gYTAyOworCisgICAgb3V0WzNdID0gYTEwOworICAgIG91dFs0XSA9IGExMTsKKyAgICBvdXRbNV0gPSBhMTI7CisKKyAgICBvdXRbNl0gPSB4ICogYTAwICsgeSAqIGExMCArIGEyMDsKKyAgICBvdXRbN10gPSB4ICogYTAxICsgeSAqIGExMSArIGEyMTsKKyAgICBvdXRbOF0gPSB4ICogYTAyICsgeSAqIGExMiArIGEyMjsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSb3RhdGVzIGEgbWF0MyBieSB0aGUgZ2l2ZW4gYW5nbGUKKyAqCisgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorICogQHJldHVybnMge21hdDN9IG91dAorICovCittYXQzLnJvdGF0ZSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLAorICAgICAgICBhMTAgPSBhWzNdLCBhMTEgPSBhWzRdLCBhMTIgPSBhWzVdLAorICAgICAgICBhMjAgPSBhWzZdLCBhMjEgPSBhWzddLCBhMjIgPSBhWzhdLAorCisgICAgICAgIHMgPSBNYXRoLnNpbihyYWQpLAorICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKKworICAgIG91dFswXSA9IGMgKiBhMDAgKyBzICogYTEwOworICAgIG91dFsxXSA9IGMgKiBhMDEgKyBzICogYTExOworICAgIG91dFsyXSA9IGMgKiBhMDIgKyBzICogYTEyOworCisgICAgb3V0WzNdID0gYyAqIGExMCAtIHMgKiBhMDA7CisgICAgb3V0WzRdID0gYyAqIGExMSAtIHMgKiBhMDE7CisgICAgb3V0WzVdID0gYyAqIGExMiAtIHMgKiBhMDI7CisKKyAgICBvdXRbNl0gPSBhMjA7CisgICAgb3V0WzddID0gYTIxOworICAgIG91dFs4XSA9IGEyMjsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTY2FsZXMgdGhlIG1hdDMgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzIKKyAqCisgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisgKiBAcGFyYW0ge3ZlYzJ9IHYgdGhlIHZlYzIgdG8gc2NhbGUgdGhlIG1hdHJpeCBieQorICogQHJldHVybnMge21hdDN9IG91dAorICoqLworbWF0My5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgdikgeworICAgIHZhciB4ID0gdlswXSwgeSA9IHZbMV07CisKKyAgICBvdXRbMF0gPSB4ICogYVswXTsKKyAgICBvdXRbMV0gPSB4ICogYVsxXTsKKyAgICBvdXRbMl0gPSB4ICogYVsyXTsKKworICAgIG91dFszXSA9IHkgKiBhWzNdOworICAgIG91dFs0XSA9IHkgKiBhWzRdOworICAgIG91dFs1XSA9IHkgKiBhWzVdOworCisgICAgb3V0WzZdID0gYVs2XTsKKyAgICBvdXRbN10gPSBhWzddOworICAgIG91dFs4XSA9IGFbOF07CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgdmVjdG9yIHRyYW5zbGF0aW9uCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0My5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQzLnRyYW5zbGF0ZShkZXN0LCBkZXN0LCB2ZWMpOworICoKKyAqIEBwYXJhbSB7bWF0M30gb3V0IG1hdDMgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7dmVjMn0gdiBUcmFuc2xhdGlvbiB2ZWN0b3IKKyAqIEByZXR1cm5zIHttYXQzfSBvdXQKKyAqLworbWF0My5mcm9tVHJhbnNsYXRpb24gPSBmdW5jdGlvbihvdXQsIHYpIHsKKyAgICBvdXRbMF0gPSAxOworICAgIG91dFsxXSA9IDA7CisgICAgb3V0WzJdID0gMDsKKyAgICBvdXRbM10gPSAwOworICAgIG91dFs0XSA9IDE7CisgICAgb3V0WzVdID0gMDsKKyAgICBvdXRbNl0gPSB2WzBdOworICAgIG91dFs3XSA9IHZbMV07CisgICAgb3V0WzhdID0gMTsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIGdpdmVuIGFuZ2xlCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0My5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQzLnJvdGF0ZShkZXN0LCBkZXN0LCByYWQpOworICoKKyAqIEBwYXJhbSB7bWF0M30gb3V0IG1hdDMgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisgKiBAcmV0dXJucyB7bWF0M30gb3V0CisgKi8KK21hdDMuZnJvbVJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKyAgICB2YXIgcyA9IE1hdGguc2luKHJhZCksIGMgPSBNYXRoLmNvcyhyYWQpOworCisgICAgb3V0WzBdID0gYzsKKyAgICBvdXRbMV0gPSBzOworICAgIG91dFsyXSA9IDA7CisKKyAgICBvdXRbM10gPSAtczsKKyAgICBvdXRbNF0gPSBjOworICAgIG91dFs1XSA9IDA7CisKKyAgICBvdXRbNl0gPSAwOworICAgIG91dFs3XSA9IDA7CisgICAgb3V0WzhdID0gMTsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHZlY3RvciBzY2FsaW5nCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0My5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQzLnNjYWxlKGRlc3QsIGRlc3QsIHZlYyk7CisgKgorICogQHBhcmFtIHttYXQzfSBvdXQgbWF0MyByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorICogQHBhcmFtIHt2ZWMyfSB2IFNjYWxpbmcgdmVjdG9yCisgKiBAcmV0dXJucyB7bWF0M30gb3V0CisgKi8KK21hdDMuZnJvbVNjYWxpbmcgPSBmdW5jdGlvbihvdXQsIHYpIHsKKyAgICBvdXRbMF0gPSB2WzBdOworICAgIG91dFsxXSA9IDA7CisgICAgb3V0WzJdID0gMDsKKworICAgIG91dFszXSA9IDA7CisgICAgb3V0WzRdID0gdlsxXTsKKyAgICBvdXRbNV0gPSAwOworCisgICAgb3V0WzZdID0gMDsKKyAgICBvdXRbN10gPSAwOworICAgIG91dFs4XSA9IDE7CisgICAgcmV0dXJuIG91dDsKK30KKworLyoqCisgKiBDb3BpZXMgdGhlIHZhbHVlcyBmcm9tIGEgbWF0MmQgaW50byBhIG1hdDMKKyAqCisgKiBAcGFyYW0ge21hdDN9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQyZH0gYSB0aGUgbWF0cml4IHRvIGNvcHkKKyAqIEByZXR1cm5zIHttYXQzfSBvdXQKKyAqKi8KK21hdDMuZnJvbU1hdDJkID0gZnVuY3Rpb24ob3V0LCBhKSB7CisgICAgb3V0WzBdID0gYVswXTsKKyAgICBvdXRbMV0gPSBhWzFdOworICAgIG91dFsyXSA9IDA7CisKKyAgICBvdXRbM10gPSBhWzJdOworICAgIG91dFs0XSA9IGFbM107CisgICAgb3V0WzVdID0gMDsKKworICAgIG91dFs2XSA9IGFbNF07CisgICAgb3V0WzddID0gYVs1XTsKKyAgICBvdXRbOF0gPSAxOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyogQ2FsY3VsYXRlcyBhIDN4MyBtYXRyaXggZnJvbSB0aGUgZ2l2ZW4gcXVhdGVybmlvbgorKgorKiBAcGFyYW0ge21hdDN9IG91dCBtYXQzIHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisqIEBwYXJhbSB7cXVhdH0gcSBRdWF0ZXJuaW9uIHRvIGNyZWF0ZSBtYXRyaXggZnJvbQorKgorKiBAcmV0dXJucyB7bWF0M30gb3V0CisqLworbWF0My5mcm9tUXVhdCA9IGZ1bmN0aW9uIChvdXQsIHEpIHsKKyAgICB2YXIgeCA9IHFbMF0sIHkgPSBxWzFdLCB6ID0gcVsyXSwgdyA9IHFbM10sCisgICAgICAgIHgyID0geCArIHgsCisgICAgICAgIHkyID0geSArIHksCisgICAgICAgIHoyID0geiArIHosCisKKyAgICAgICAgeHggPSB4ICogeDIsCisgICAgICAgIHl4ID0geSAqIHgyLAorICAgICAgICB5eSA9IHkgKiB5MiwKKyAgICAgICAgenggPSB6ICogeDIsCisgICAgICAgIHp5ID0geiAqIHkyLAorICAgICAgICB6eiA9IHogKiB6MiwKKyAgICAgICAgd3ggPSB3ICogeDIsCisgICAgICAgIHd5ID0gdyAqIHkyLAorICAgICAgICB3eiA9IHcgKiB6MjsKKworICAgIG91dFswXSA9IDEgLSB5eSAtIHp6OworICAgIG91dFszXSA9IHl4IC0gd3o7CisgICAgb3V0WzZdID0genggKyB3eTsKKworICAgIG91dFsxXSA9IHl4ICsgd3o7CisgICAgb3V0WzRdID0gMSAtIHh4IC0geno7CisgICAgb3V0WzddID0genkgLSB3eDsKKworICAgIG91dFsyXSA9IHp4IC0gd3k7CisgICAgb3V0WzVdID0genkgKyB3eDsKKyAgICBvdXRbOF0gPSAxIC0geHggLSB5eTsKKworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyogQ2FsY3VsYXRlcyBhIDN4MyBub3JtYWwgbWF0cml4ICh0cmFuc3Bvc2UgaW52ZXJzZSkgZnJvbSB0aGUgNHg0IG1hdHJpeAorKgorKiBAcGFyYW0ge21hdDN9IG91dCBtYXQzIHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisqIEBwYXJhbSB7bWF0NH0gYSBNYXQ0IHRvIGRlcml2ZSB0aGUgbm9ybWFsIG1hdHJpeCBmcm9tCisqCisqIEByZXR1cm5zIHttYXQzfSBvdXQKKyovCittYXQzLm5vcm1hbEZyb21NYXQ0ID0gZnVuY3Rpb24gKG91dCwgYSkgeworICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMDMgPSBhWzNdLAorICAgICAgICBhMTAgPSBhWzRdLCBhMTEgPSBhWzVdLCBhMTIgPSBhWzZdLCBhMTMgPSBhWzddLAorICAgICAgICBhMjAgPSBhWzhdLCBhMjEgPSBhWzldLCBhMjIgPSBhWzEwXSwgYTIzID0gYVsxMV0sCisgICAgICAgIGEzMCA9IGFbMTJdLCBhMzEgPSBhWzEzXSwgYTMyID0gYVsxNF0sIGEzMyA9IGFbMTVdLAorCisgICAgICAgIGIwMCA9IGEwMCAqIGExMSAtIGEwMSAqIGExMCwKKyAgICAgICAgYjAxID0gYTAwICogYTEyIC0gYTAyICogYTEwLAorICAgICAgICBiMDIgPSBhMDAgKiBhMTMgLSBhMDMgKiBhMTAsCisgICAgICAgIGIwMyA9IGEwMSAqIGExMiAtIGEwMiAqIGExMSwKKyAgICAgICAgYjA0ID0gYTAxICogYTEzIC0gYTAzICogYTExLAorICAgICAgICBiMDUgPSBhMDIgKiBhMTMgLSBhMDMgKiBhMTIsCisgICAgICAgIGIwNiA9IGEyMCAqIGEzMSAtIGEyMSAqIGEzMCwKKyAgICAgICAgYjA3ID0gYTIwICogYTMyIC0gYTIyICogYTMwLAorICAgICAgICBiMDggPSBhMjAgKiBhMzMgLSBhMjMgKiBhMzAsCisgICAgICAgIGIwOSA9IGEyMSAqIGEzMiAtIGEyMiAqIGEzMSwKKyAgICAgICAgYjEwID0gYTIxICogYTMzIC0gYTIzICogYTMxLAorICAgICAgICBiMTEgPSBhMjIgKiBhMzMgLSBhMjMgKiBhMzIsCisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkZXRlcm1pbmFudAorICAgICAgICBkZXQgPSBiMDAgKiBiMTEgLSBiMDEgKiBiMTAgKyBiMDIgKiBiMDkgKyBiMDMgKiBiMDggLSBiMDQgKiBiMDcgKyBiMDUgKiBiMDY7CisKKyAgICBpZiAoIWRldCkgeyAKKyAgICAgICAgcmV0dXJuIG51bGw7IAorICAgIH0KKyAgICBkZXQgPSAxLjAgLyBkZXQ7CisKKyAgICBvdXRbMF0gPSAoYTExICogYjExIC0gYTEyICogYjEwICsgYTEzICogYjA5KSAqIGRldDsKKyAgICBvdXRbMV0gPSAoYTEyICogYjA4IC0gYTEwICogYjExIC0gYTEzICogYjA3KSAqIGRldDsKKyAgICBvdXRbMl0gPSAoYTEwICogYjEwIC0gYTExICogYjA4ICsgYTEzICogYjA2KSAqIGRldDsKKworICAgIG91dFszXSA9IChhMDIgKiBiMTAgLSBhMDEgKiBiMTEgLSBhMDMgKiBiMDkpICogZGV0OworICAgIG91dFs0XSA9IChhMDAgKiBiMTEgLSBhMDIgKiBiMDggKyBhMDMgKiBiMDcpICogZGV0OworICAgIG91dFs1XSA9IChhMDEgKiBiMDggLSBhMDAgKiBiMTAgLSBhMDMgKiBiMDYpICogZGV0OworCisgICAgb3V0WzZdID0gKGEzMSAqIGIwNSAtIGEzMiAqIGIwNCArIGEzMyAqIGIwMykgKiBkZXQ7CisgICAgb3V0WzddID0gKGEzMiAqIGIwMiAtIGEzMCAqIGIwNSAtIGEzMyAqIGIwMSkgKiBkZXQ7CisgICAgb3V0WzhdID0gKGEzMCAqIGIwNCAtIGEzMSAqIGIwMiArIGEzMyAqIGIwMCkgKiBkZXQ7CisKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgbWF0MworICoKKyAqIEBwYXJhbSB7bWF0M30gbWF0IG1hdHJpeCB0byByZXByZXNlbnQgYXMgYSBzdHJpbmcKKyAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cml4CisgKi8KK21hdDMuc3RyID0gZnVuY3Rpb24gKGEpIHsKKyAgICByZXR1cm4gJ21hdDMoJyArIGFbMF0gKyAnLCAnICsgYVsxXSArICcsICcgKyBhWzJdICsgJywgJyArIAorICAgICAgICAgICAgICAgICAgICBhWzNdICsgJywgJyArIGFbNF0gKyAnLCAnICsgYVs1XSArICcsICcgKyAKKyAgICAgICAgICAgICAgICAgICAgYVs2XSArICcsICcgKyBhWzddICsgJywgJyArIGFbOF0gKyAnKSc7Cit9OworCisvKioKKyAqIFJldHVybnMgRnJvYmVuaXVzIG5vcm0gb2YgYSBtYXQzCisgKgorICogQHBhcmFtIHttYXQzfSBhIHRoZSBtYXRyaXggdG8gY2FsY3VsYXRlIEZyb2Jlbml1cyBub3JtIG9mCisgKiBAcmV0dXJucyB7TnVtYmVyfSBGcm9iZW5pdXMgbm9ybQorICovCittYXQzLmZyb2IgPSBmdW5jdGlvbiAoYSkgeworICAgIHJldHVybihNYXRoLnNxcnQoTWF0aC5wb3coYVswXSwgMikgKyBNYXRoLnBvdyhhWzFdLCAyKSArIE1hdGgucG93KGFbMl0sIDIpICsgTWF0aC5wb3coYVszXSwgMikgKyBNYXRoLnBvdyhhWzRdLCAyKSArIE1hdGgucG93KGFbNV0sIDIpICsgTWF0aC5wb3coYVs2XSwgMikgKyBNYXRoLnBvdyhhWzddLCAyKSArIE1hdGgucG93KGFbOF0sIDIpKSkKK307CisKKworbW9kdWxlLmV4cG9ydHMgPSBtYXQzOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvbWF0NC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgyNTI2ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L21hdDQuanMKQEAgLTAsMCArMSwxMjgzIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKK3ZhciBnbE1hdHJpeCA9IHJlcXVpcmUoIi4vY29tbW9uLmpzIik7CisKKy8qKgorICogQGNsYXNzIDR4NCBNYXRyaXgKKyAqIEBuYW1lIG1hdDQKKyAqLwordmFyIG1hdDQgPSB7fTsKKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IG1hdDQKKyAqCisgKiBAcmV0dXJucyB7bWF0NH0gYSBuZXcgNHg0IG1hdHJpeAorICovCittYXQ0LmNyZWF0ZSA9IGZ1bmN0aW9uKCkgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSgxNik7CisgICAgb3V0WzBdID0gMTsKKyAgICBvdXRbMV0gPSAwOworICAgIG91dFsyXSA9IDA7CisgICAgb3V0WzNdID0gMDsKKyAgICBvdXRbNF0gPSAwOworICAgIG91dFs1XSA9IDE7CisgICAgb3V0WzZdID0gMDsKKyAgICBvdXRbN10gPSAwOworICAgIG91dFs4XSA9IDA7CisgICAgb3V0WzldID0gMDsKKyAgICBvdXRbMTBdID0gMTsKKyAgICBvdXRbMTFdID0gMDsKKyAgICBvdXRbMTJdID0gMDsKKyAgICBvdXRbMTNdID0gMDsKKyAgICBvdXRbMTRdID0gMDsKKyAgICBvdXRbMTVdID0gMTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IG1hdDQgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBtYXRyaXgKKyAqCisgKiBAcGFyYW0ge21hdDR9IGEgbWF0cml4IHRvIGNsb25lCisgKiBAcmV0dXJucyB7bWF0NH0gYSBuZXcgNHg0IG1hdHJpeAorICovCittYXQ0LmNsb25lID0gZnVuY3Rpb24oYSkgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSgxNik7CisgICAgb3V0WzBdID0gYVswXTsKKyAgICBvdXRbMV0gPSBhWzFdOworICAgIG91dFsyXSA9IGFbMl07CisgICAgb3V0WzNdID0gYVszXTsKKyAgICBvdXRbNF0gPSBhWzRdOworICAgIG91dFs1XSA9IGFbNV07CisgICAgb3V0WzZdID0gYVs2XTsKKyAgICBvdXRbN10gPSBhWzddOworICAgIG91dFs4XSA9IGFbOF07CisgICAgb3V0WzldID0gYVs5XTsKKyAgICBvdXRbMTBdID0gYVsxMF07CisgICAgb3V0WzExXSA9IGFbMTFdOworICAgIG91dFsxMl0gPSBhWzEyXTsKKyAgICBvdXRbMTNdID0gYVsxM107CisgICAgb3V0WzE0XSA9IGFbMTRdOworICAgIG91dFsxNV0gPSBhWzE1XTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgbWF0NCB0byBhbm90aGVyCisgKgorICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgc291cmNlIG1hdHJpeAorICogQHJldHVybnMge21hdDR9IG91dAorICovCittYXQ0LmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICBvdXRbMF0gPSBhWzBdOworICAgIG91dFsxXSA9IGFbMV07CisgICAgb3V0WzJdID0gYVsyXTsKKyAgICBvdXRbM10gPSBhWzNdOworICAgIG91dFs0XSA9IGFbNF07CisgICAgb3V0WzVdID0gYVs1XTsKKyAgICBvdXRbNl0gPSBhWzZdOworICAgIG91dFs3XSA9IGFbN107CisgICAgb3V0WzhdID0gYVs4XTsKKyAgICBvdXRbOV0gPSBhWzldOworICAgIG91dFsxMF0gPSBhWzEwXTsKKyAgICBvdXRbMTFdID0gYVsxMV07CisgICAgb3V0WzEyXSA9IGFbMTJdOworICAgIG91dFsxM10gPSBhWzEzXTsKKyAgICBvdXRbMTRdID0gYVsxNF07CisgICAgb3V0WzE1XSA9IGFbMTVdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFNldCBhIG1hdDQgdG8gdGhlIGlkZW50aXR5IG1hdHJpeAorICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQuaWRlbnRpdHkgPSBmdW5jdGlvbihvdXQpIHsKKyAgICBvdXRbMF0gPSAxOworICAgIG91dFsxXSA9IDA7CisgICAgb3V0WzJdID0gMDsKKyAgICBvdXRbM10gPSAwOworICAgIG91dFs0XSA9IDA7CisgICAgb3V0WzVdID0gMTsKKyAgICBvdXRbNl0gPSAwOworICAgIG91dFs3XSA9IDA7CisgICAgb3V0WzhdID0gMDsKKyAgICBvdXRbOV0gPSAwOworICAgIG91dFsxMF0gPSAxOworICAgIG91dFsxMV0gPSAwOworICAgIG91dFsxMl0gPSAwOworICAgIG91dFsxM10gPSAwOworICAgIG91dFsxNF0gPSAwOworICAgIG91dFsxNV0gPSAxOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFRyYW5zcG9zZSB0aGUgdmFsdWVzIG9mIGEgbWF0NAorICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC50cmFuc3Bvc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICAvLyBJZiB3ZSBhcmUgdHJhbnNwb3Npbmcgb3Vyc2VsdmVzIHdlIGNhbiBza2lwIGEgZmV3IHN0ZXBzIGJ1dCBoYXZlIHRvIGNhY2hlIHNvbWUgdmFsdWVzCisgICAgaWYgKG91dCA9PT0gYSkgeworICAgICAgICB2YXIgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKKyAgICAgICAgICAgIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCisgICAgICAgICAgICBhMjMgPSBhWzExXTsKKworICAgICAgICBvdXRbMV0gPSBhWzRdOworICAgICAgICBvdXRbMl0gPSBhWzhdOworICAgICAgICBvdXRbM10gPSBhWzEyXTsKKyAgICAgICAgb3V0WzRdID0gYTAxOworICAgICAgICBvdXRbNl0gPSBhWzldOworICAgICAgICBvdXRbN10gPSBhWzEzXTsKKyAgICAgICAgb3V0WzhdID0gYTAyOworICAgICAgICBvdXRbOV0gPSBhMTI7CisgICAgICAgIG91dFsxMV0gPSBhWzE0XTsKKyAgICAgICAgb3V0WzEyXSA9IGEwMzsKKyAgICAgICAgb3V0WzEzXSA9IGExMzsKKyAgICAgICAgb3V0WzE0XSA9IGEyMzsKKyAgICB9IGVsc2UgeworICAgICAgICBvdXRbMF0gPSBhWzBdOworICAgICAgICBvdXRbMV0gPSBhWzRdOworICAgICAgICBvdXRbMl0gPSBhWzhdOworICAgICAgICBvdXRbM10gPSBhWzEyXTsKKyAgICAgICAgb3V0WzRdID0gYVsxXTsKKyAgICAgICAgb3V0WzVdID0gYVs1XTsKKyAgICAgICAgb3V0WzZdID0gYVs5XTsKKyAgICAgICAgb3V0WzddID0gYVsxM107CisgICAgICAgIG91dFs4XSA9IGFbMl07CisgICAgICAgIG91dFs5XSA9IGFbNl07CisgICAgICAgIG91dFsxMF0gPSBhWzEwXTsKKyAgICAgICAgb3V0WzExXSA9IGFbMTRdOworICAgICAgICBvdXRbMTJdID0gYVszXTsKKyAgICAgICAgb3V0WzEzXSA9IGFbN107CisgICAgICAgIG91dFsxNF0gPSBhWzExXTsKKyAgICAgICAgb3V0WzE1XSA9IGFbMTVdOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBJbnZlcnRzIGEgbWF0NAorICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5pbnZlcnQgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICB2YXIgYTAwID0gYVswXSwgYTAxID0gYVsxXSwgYTAyID0gYVsyXSwgYTAzID0gYVszXSwKKyAgICAgICAgYTEwID0gYVs0XSwgYTExID0gYVs1XSwgYTEyID0gYVs2XSwgYTEzID0gYVs3XSwKKyAgICAgICAgYTIwID0gYVs4XSwgYTIxID0gYVs5XSwgYTIyID0gYVsxMF0sIGEyMyA9IGFbMTFdLAorICAgICAgICBhMzAgPSBhWzEyXSwgYTMxID0gYVsxM10sIGEzMiA9IGFbMTRdLCBhMzMgPSBhWzE1XSwKKworICAgICAgICBiMDAgPSBhMDAgKiBhMTEgLSBhMDEgKiBhMTAsCisgICAgICAgIGIwMSA9IGEwMCAqIGExMiAtIGEwMiAqIGExMCwKKyAgICAgICAgYjAyID0gYTAwICogYTEzIC0gYTAzICogYTEwLAorICAgICAgICBiMDMgPSBhMDEgKiBhMTIgLSBhMDIgKiBhMTEsCisgICAgICAgIGIwNCA9IGEwMSAqIGExMyAtIGEwMyAqIGExMSwKKyAgICAgICAgYjA1ID0gYTAyICogYTEzIC0gYTAzICogYTEyLAorICAgICAgICBiMDYgPSBhMjAgKiBhMzEgLSBhMjEgKiBhMzAsCisgICAgICAgIGIwNyA9IGEyMCAqIGEzMiAtIGEyMiAqIGEzMCwKKyAgICAgICAgYjA4ID0gYTIwICogYTMzIC0gYTIzICogYTMwLAorICAgICAgICBiMDkgPSBhMjEgKiBhMzIgLSBhMjIgKiBhMzEsCisgICAgICAgIGIxMCA9IGEyMSAqIGEzMyAtIGEyMyAqIGEzMSwKKyAgICAgICAgYjExID0gYTIyICogYTMzIC0gYTIzICogYTMyLAorCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKKyAgICAgICAgZGV0ID0gYjAwICogYjExIC0gYjAxICogYjEwICsgYjAyICogYjA5ICsgYjAzICogYjA4IC0gYjA0ICogYjA3ICsgYjA1ICogYjA2OworCisgICAgaWYgKCFkZXQpIHsgCisgICAgICAgIHJldHVybiBudWxsOyAKKyAgICB9CisgICAgZGV0ID0gMS4wIC8gZGV0OworCisgICAgb3V0WzBdID0gKGExMSAqIGIxMSAtIGExMiAqIGIxMCArIGExMyAqIGIwOSkgKiBkZXQ7CisgICAgb3V0WzFdID0gKGEwMiAqIGIxMCAtIGEwMSAqIGIxMSAtIGEwMyAqIGIwOSkgKiBkZXQ7CisgICAgb3V0WzJdID0gKGEzMSAqIGIwNSAtIGEzMiAqIGIwNCArIGEzMyAqIGIwMykgKiBkZXQ7CisgICAgb3V0WzNdID0gKGEyMiAqIGIwNCAtIGEyMSAqIGIwNSAtIGEyMyAqIGIwMykgKiBkZXQ7CisgICAgb3V0WzRdID0gKGExMiAqIGIwOCAtIGExMCAqIGIxMSAtIGExMyAqIGIwNykgKiBkZXQ7CisgICAgb3V0WzVdID0gKGEwMCAqIGIxMSAtIGEwMiAqIGIwOCArIGEwMyAqIGIwNykgKiBkZXQ7CisgICAgb3V0WzZdID0gKGEzMiAqIGIwMiAtIGEzMCAqIGIwNSAtIGEzMyAqIGIwMSkgKiBkZXQ7CisgICAgb3V0WzddID0gKGEyMCAqIGIwNSAtIGEyMiAqIGIwMiArIGEyMyAqIGIwMSkgKiBkZXQ7CisgICAgb3V0WzhdID0gKGExMCAqIGIxMCAtIGExMSAqIGIwOCArIGExMyAqIGIwNikgKiBkZXQ7CisgICAgb3V0WzldID0gKGEwMSAqIGIwOCAtIGEwMCAqIGIxMCAtIGEwMyAqIGIwNikgKiBkZXQ7CisgICAgb3V0WzEwXSA9IChhMzAgKiBiMDQgLSBhMzEgKiBiMDIgKyBhMzMgKiBiMDApICogZGV0OworICAgIG91dFsxMV0gPSAoYTIxICogYjAyIC0gYTIwICogYjA0IC0gYTIzICogYjAwKSAqIGRldDsKKyAgICBvdXRbMTJdID0gKGExMSAqIGIwNyAtIGExMCAqIGIwOSAtIGExMiAqIGIwNikgKiBkZXQ7CisgICAgb3V0WzEzXSA9IChhMDAgKiBiMDkgLSBhMDEgKiBiMDcgKyBhMDIgKiBiMDYpICogZGV0OworICAgIG91dFsxNF0gPSAoYTMxICogYjAxIC0gYTMwICogYjAzIC0gYTMyICogYjAwKSAqIGRldDsKKyAgICBvdXRbMTVdID0gKGEyMCAqIGIwMyAtIGEyMSAqIGIwMSArIGEyMiAqIGIwMCkgKiBkZXQ7CisKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBhZGp1Z2F0ZSBvZiBhIG1hdDQKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQ0fSBhIHRoZSBzb3VyY2UgbWF0cml4CisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQuYWRqb2ludCA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIHZhciBhMDAgPSBhWzBdLCBhMDEgPSBhWzFdLCBhMDIgPSBhWzJdLCBhMDMgPSBhWzNdLAorICAgICAgICBhMTAgPSBhWzRdLCBhMTEgPSBhWzVdLCBhMTIgPSBhWzZdLCBhMTMgPSBhWzddLAorICAgICAgICBhMjAgPSBhWzhdLCBhMjEgPSBhWzldLCBhMjIgPSBhWzEwXSwgYTIzID0gYVsxMV0sCisgICAgICAgIGEzMCA9IGFbMTJdLCBhMzEgPSBhWzEzXSwgYTMyID0gYVsxNF0sIGEzMyA9IGFbMTVdOworCisgICAgb3V0WzBdICA9ICAoYTExICogKGEyMiAqIGEzMyAtIGEyMyAqIGEzMikgLSBhMjEgKiAoYTEyICogYTMzIC0gYTEzICogYTMyKSArIGEzMSAqIChhMTIgKiBhMjMgLSBhMTMgKiBhMjIpKTsKKyAgICBvdXRbMV0gID0gLShhMDEgKiAoYTIyICogYTMzIC0gYTIzICogYTMyKSAtIGEyMSAqIChhMDIgKiBhMzMgLSBhMDMgKiBhMzIpICsgYTMxICogKGEwMiAqIGEyMyAtIGEwMyAqIGEyMikpOworICAgIG91dFsyXSAgPSAgKGEwMSAqIChhMTIgKiBhMzMgLSBhMTMgKiBhMzIpIC0gYTExICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzEgKiAoYTAyICogYTEzIC0gYTAzICogYTEyKSk7CisgICAgb3V0WzNdICA9IC0oYTAxICogKGExMiAqIGEyMyAtIGExMyAqIGEyMikgLSBhMTEgKiAoYTAyICogYTIzIC0gYTAzICogYTIyKSArIGEyMSAqIChhMDIgKiBhMTMgLSBhMDMgKiBhMTIpKTsKKyAgICBvdXRbNF0gID0gLShhMTAgKiAoYTIyICogYTMzIC0gYTIzICogYTMyKSAtIGEyMCAqIChhMTIgKiBhMzMgLSBhMTMgKiBhMzIpICsgYTMwICogKGExMiAqIGEyMyAtIGExMyAqIGEyMikpOworICAgIG91dFs1XSAgPSAgKGEwMCAqIChhMjIgKiBhMzMgLSBhMjMgKiBhMzIpIC0gYTIwICogKGEwMiAqIGEzMyAtIGEwMyAqIGEzMikgKyBhMzAgKiAoYTAyICogYTIzIC0gYTAzICogYTIyKSk7CisgICAgb3V0WzZdICA9IC0oYTAwICogKGExMiAqIGEzMyAtIGExMyAqIGEzMikgLSBhMTAgKiAoYTAyICogYTMzIC0gYTAzICogYTMyKSArIGEzMCAqIChhMDIgKiBhMTMgLSBhMDMgKiBhMTIpKTsKKyAgICBvdXRbN10gID0gIChhMDAgKiAoYTEyICogYTIzIC0gYTEzICogYTIyKSAtIGExMCAqIChhMDIgKiBhMjMgLSBhMDMgKiBhMjIpICsgYTIwICogKGEwMiAqIGExMyAtIGEwMyAqIGExMikpOworICAgIG91dFs4XSAgPSAgKGExMCAqIChhMjEgKiBhMzMgLSBhMjMgKiBhMzEpIC0gYTIwICogKGExMSAqIGEzMyAtIGExMyAqIGEzMSkgKyBhMzAgKiAoYTExICogYTIzIC0gYTEzICogYTIxKSk7CisgICAgb3V0WzldICA9IC0oYTAwICogKGEyMSAqIGEzMyAtIGEyMyAqIGEzMSkgLSBhMjAgKiAoYTAxICogYTMzIC0gYTAzICogYTMxKSArIGEzMCAqIChhMDEgKiBhMjMgLSBhMDMgKiBhMjEpKTsKKyAgICBvdXRbMTBdID0gIChhMDAgKiAoYTExICogYTMzIC0gYTEzICogYTMxKSAtIGExMCAqIChhMDEgKiBhMzMgLSBhMDMgKiBhMzEpICsgYTMwICogKGEwMSAqIGExMyAtIGEwMyAqIGExMSkpOworICAgIG91dFsxMV0gPSAtKGEwMCAqIChhMTEgKiBhMjMgLSBhMTMgKiBhMjEpIC0gYTEwICogKGEwMSAqIGEyMyAtIGEwMyAqIGEyMSkgKyBhMjAgKiAoYTAxICogYTEzIC0gYTAzICogYTExKSk7CisgICAgb3V0WzEyXSA9IC0oYTEwICogKGEyMSAqIGEzMiAtIGEyMiAqIGEzMSkgLSBhMjAgKiAoYTExICogYTMyIC0gYTEyICogYTMxKSArIGEzMCAqIChhMTEgKiBhMjIgLSBhMTIgKiBhMjEpKTsKKyAgICBvdXRbMTNdID0gIChhMDAgKiAoYTIxICogYTMyIC0gYTIyICogYTMxKSAtIGEyMCAqIChhMDEgKiBhMzIgLSBhMDIgKiBhMzEpICsgYTMwICogKGEwMSAqIGEyMiAtIGEwMiAqIGEyMSkpOworICAgIG91dFsxNF0gPSAtKGEwMCAqIChhMTEgKiBhMzIgLSBhMTIgKiBhMzEpIC0gYTEwICogKGEwMSAqIGEzMiAtIGEwMiAqIGEzMSkgKyBhMzAgKiAoYTAxICogYTEyIC0gYTAyICogYTExKSk7CisgICAgb3V0WzE1XSA9ICAoYTAwICogKGExMSAqIGEyMiAtIGExMiAqIGEyMSkgLSBhMTAgKiAoYTAxICogYTIyIC0gYTAyICogYTIxKSArIGEyMCAqIChhMDEgKiBhMTIgLSBhMDIgKiBhMTEpKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBkZXRlcm1pbmFudCBvZiBhIG1hdDQKKyAqCisgKiBAcGFyYW0ge21hdDR9IGEgdGhlIHNvdXJjZSBtYXRyaXgKKyAqIEByZXR1cm5zIHtOdW1iZXJ9IGRldGVybWluYW50IG9mIGEKKyAqLworbWF0NC5kZXRlcm1pbmFudCA9IGZ1bmN0aW9uIChhKSB7CisgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sIGEwMyA9IGFbM10sCisgICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCisgICAgICAgIGEyMCA9IGFbOF0sIGEyMSA9IGFbOV0sIGEyMiA9IGFbMTBdLCBhMjMgPSBhWzExXSwKKyAgICAgICAgYTMwID0gYVsxMl0sIGEzMSA9IGFbMTNdLCBhMzIgPSBhWzE0XSwgYTMzID0gYVsxNV0sCisKKyAgICAgICAgYjAwID0gYTAwICogYTExIC0gYTAxICogYTEwLAorICAgICAgICBiMDEgPSBhMDAgKiBhMTIgLSBhMDIgKiBhMTAsCisgICAgICAgIGIwMiA9IGEwMCAqIGExMyAtIGEwMyAqIGExMCwKKyAgICAgICAgYjAzID0gYTAxICogYTEyIC0gYTAyICogYTExLAorICAgICAgICBiMDQgPSBhMDEgKiBhMTMgLSBhMDMgKiBhMTEsCisgICAgICAgIGIwNSA9IGEwMiAqIGExMyAtIGEwMyAqIGExMiwKKyAgICAgICAgYjA2ID0gYTIwICogYTMxIC0gYTIxICogYTMwLAorICAgICAgICBiMDcgPSBhMjAgKiBhMzIgLSBhMjIgKiBhMzAsCisgICAgICAgIGIwOCA9IGEyMCAqIGEzMyAtIGEyMyAqIGEzMCwKKyAgICAgICAgYjA5ID0gYTIxICogYTMyIC0gYTIyICogYTMxLAorICAgICAgICBiMTAgPSBhMjEgKiBhMzMgLSBhMjMgKiBhMzEsCisgICAgICAgIGIxMSA9IGEyMiAqIGEzMyAtIGEyMyAqIGEzMjsKKworICAgIC8vIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQKKyAgICByZXR1cm4gYjAwICogYjExIC0gYjAxICogYjEwICsgYjAyICogYjA5ICsgYjAzICogYjA4IC0gYjA0ICogYjA3ICsgYjA1ICogYjA2OworfTsKKworLyoqCisgKiBNdWx0aXBsaWVzIHR3byBtYXQ0J3MKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQ0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge21hdDR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQubXVsdGlwbHkgPSBmdW5jdGlvbiAob3V0LCBhLCBiKSB7CisgICAgdmFyIGEwMCA9IGFbMF0sIGEwMSA9IGFbMV0sIGEwMiA9IGFbMl0sIGEwMyA9IGFbM10sCisgICAgICAgIGExMCA9IGFbNF0sIGExMSA9IGFbNV0sIGExMiA9IGFbNl0sIGExMyA9IGFbN10sCisgICAgICAgIGEyMCA9IGFbOF0sIGEyMSA9IGFbOV0sIGEyMiA9IGFbMTBdLCBhMjMgPSBhWzExXSwKKyAgICAgICAgYTMwID0gYVsxMl0sIGEzMSA9IGFbMTNdLCBhMzIgPSBhWzE0XSwgYTMzID0gYVsxNV07CisKKyAgICAvLyBDYWNoZSBvbmx5IHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIHNlY29uZCBtYXRyaXgKKyAgICB2YXIgYjAgID0gYlswXSwgYjEgPSBiWzFdLCBiMiA9IGJbMl0sIGIzID0gYlszXTsgIAorICAgIG91dFswXSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKKyAgICBvdXRbMV0gPSBiMCphMDEgKyBiMSphMTEgKyBiMiphMjEgKyBiMyphMzE7CisgICAgb3V0WzJdID0gYjAqYTAyICsgYjEqYTEyICsgYjIqYTIyICsgYjMqYTMyOworICAgIG91dFszXSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKKworICAgIGIwID0gYls0XTsgYjEgPSBiWzVdOyBiMiA9IGJbNl07IGIzID0gYls3XTsKKyAgICBvdXRbNF0gPSBiMCphMDAgKyBiMSphMTAgKyBiMiphMjAgKyBiMyphMzA7CisgICAgb3V0WzVdID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOworICAgIG91dFs2XSA9IGIwKmEwMiArIGIxKmExMiArIGIyKmEyMiArIGIzKmEzMjsKKyAgICBvdXRbN10gPSBiMCphMDMgKyBiMSphMTMgKyBiMiphMjMgKyBiMyphMzM7CisKKyAgICBiMCA9IGJbOF07IGIxID0gYls5XTsgYjIgPSBiWzEwXTsgYjMgPSBiWzExXTsKKyAgICBvdXRbOF0gPSBiMCphMDAgKyBiMSphMTAgKyBiMiphMjAgKyBiMyphMzA7CisgICAgb3V0WzldID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOworICAgIG91dFsxMF0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7CisgICAgb3V0WzExXSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKKworICAgIGIwID0gYlsxMl07IGIxID0gYlsxM107IGIyID0gYlsxNF07IGIzID0gYlsxNV07CisgICAgb3V0WzEyXSA9IGIwKmEwMCArIGIxKmExMCArIGIyKmEyMCArIGIzKmEzMDsKKyAgICBvdXRbMTNdID0gYjAqYTAxICsgYjEqYTExICsgYjIqYTIxICsgYjMqYTMxOworICAgIG91dFsxNF0gPSBiMCphMDIgKyBiMSphMTIgKyBiMiphMjIgKyBiMyphMzI7CisgICAgb3V0WzE1XSA9IGIwKmEwMyArIGIxKmExMyArIGIyKmEyMyArIGIzKmEzMzsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIG1hdDQubXVsdGlwbHl9CisgKiBAZnVuY3Rpb24KKyAqLworbWF0NC5tdWwgPSBtYXQ0Lm11bHRpcGx5OworCisvKioKKyAqIFRyYW5zbGF0ZSBhIG1hdDQgYnkgdGhlIGdpdmVuIHZlY3RvcgorICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byB0cmFuc2xhdGUKKyAqIEBwYXJhbSB7dmVjM30gdiB2ZWN0b3IgdG8gdHJhbnNsYXRlIGJ5CisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQudHJhbnNsYXRlID0gZnVuY3Rpb24gKG91dCwgYSwgdikgeworICAgIHZhciB4ID0gdlswXSwgeSA9IHZbMV0sIHogPSB2WzJdLAorICAgICAgICBhMDAsIGEwMSwgYTAyLCBhMDMsCisgICAgICAgIGExMCwgYTExLCBhMTIsIGExMywKKyAgICAgICAgYTIwLCBhMjEsIGEyMiwgYTIzOworCisgICAgaWYgKGEgPT09IG91dCkgeworICAgICAgICBvdXRbMTJdID0gYVswXSAqIHggKyBhWzRdICogeSArIGFbOF0gKiB6ICsgYVsxMl07CisgICAgICAgIG91dFsxM10gPSBhWzFdICogeCArIGFbNV0gKiB5ICsgYVs5XSAqIHogKyBhWzEzXTsKKyAgICAgICAgb3V0WzE0XSA9IGFbMl0gKiB4ICsgYVs2XSAqIHkgKyBhWzEwXSAqIHogKyBhWzE0XTsKKyAgICAgICAgb3V0WzE1XSA9IGFbM10gKiB4ICsgYVs3XSAqIHkgKyBhWzExXSAqIHogKyBhWzE1XTsKKyAgICB9IGVsc2UgeworICAgICAgICBhMDAgPSBhWzBdOyBhMDEgPSBhWzFdOyBhMDIgPSBhWzJdOyBhMDMgPSBhWzNdOworICAgICAgICBhMTAgPSBhWzRdOyBhMTEgPSBhWzVdOyBhMTIgPSBhWzZdOyBhMTMgPSBhWzddOworICAgICAgICBhMjAgPSBhWzhdOyBhMjEgPSBhWzldOyBhMjIgPSBhWzEwXTsgYTIzID0gYVsxMV07CisKKyAgICAgICAgb3V0WzBdID0gYTAwOyBvdXRbMV0gPSBhMDE7IG91dFsyXSA9IGEwMjsgb3V0WzNdID0gYTAzOworICAgICAgICBvdXRbNF0gPSBhMTA7IG91dFs1XSA9IGExMTsgb3V0WzZdID0gYTEyOyBvdXRbN10gPSBhMTM7CisgICAgICAgIG91dFs4XSA9IGEyMDsgb3V0WzldID0gYTIxOyBvdXRbMTBdID0gYTIyOyBvdXRbMTFdID0gYTIzOworCisgICAgICAgIG91dFsxMl0gPSBhMDAgKiB4ICsgYTEwICogeSArIGEyMCAqIHogKyBhWzEyXTsKKyAgICAgICAgb3V0WzEzXSA9IGEwMSAqIHggKyBhMTEgKiB5ICsgYTIxICogeiArIGFbMTNdOworICAgICAgICBvdXRbMTRdID0gYTAyICogeCArIGExMiAqIHkgKyBhMjIgKiB6ICsgYVsxNF07CisgICAgICAgIG91dFsxNV0gPSBhMDMgKiB4ICsgYTEzICogeSArIGEyMyAqIHogKyBhWzE1XTsKKyAgICB9CisKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTY2FsZXMgdGhlIG1hdDQgYnkgdGhlIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHZlYzMKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gc2NhbGUKKyAqIEBwYXJhbSB7dmVjM30gdiB0aGUgdmVjMyB0byBzY2FsZSB0aGUgbWF0cml4IGJ5CisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKiovCittYXQ0LnNjYWxlID0gZnVuY3Rpb24ob3V0LCBhLCB2KSB7CisgICAgdmFyIHggPSB2WzBdLCB5ID0gdlsxXSwgeiA9IHZbMl07CisKKyAgICBvdXRbMF0gPSBhWzBdICogeDsKKyAgICBvdXRbMV0gPSBhWzFdICogeDsKKyAgICBvdXRbMl0gPSBhWzJdICogeDsKKyAgICBvdXRbM10gPSBhWzNdICogeDsKKyAgICBvdXRbNF0gPSBhWzRdICogeTsKKyAgICBvdXRbNV0gPSBhWzVdICogeTsKKyAgICBvdXRbNl0gPSBhWzZdICogeTsKKyAgICBvdXRbN10gPSBhWzddICogeTsKKyAgICBvdXRbOF0gPSBhWzhdICogejsKKyAgICBvdXRbOV0gPSBhWzldICogejsKKyAgICBvdXRbMTBdID0gYVsxMF0gKiB6OworICAgIG91dFsxMV0gPSBhWzExXSAqIHo7CisgICAgb3V0WzEyXSA9IGFbMTJdOworICAgIG91dFsxM10gPSBhWzEzXTsKKyAgICBvdXRbMTRdID0gYVsxNF07CisgICAgb3V0WzE1XSA9IGFbMTVdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFJvdGF0ZXMgYSBtYXQ0IGJ5IHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIGdpdmVuIGF4aXMKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorICogQHBhcmFtIHt2ZWMzfSBheGlzIHRoZSBheGlzIHRvIHJvdGF0ZSBhcm91bmQKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5yb3RhdGUgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQsIGF4aXMpIHsKKyAgICB2YXIgeCA9IGF4aXNbMF0sIHkgPSBheGlzWzFdLCB6ID0gYXhpc1syXSwKKyAgICAgICAgbGVuID0gTWF0aC5zcXJ0KHggKiB4ICsgeSAqIHkgKyB6ICogeiksCisgICAgICAgIHMsIGMsIHQsCisgICAgICAgIGEwMCwgYTAxLCBhMDIsIGEwMywKKyAgICAgICAgYTEwLCBhMTEsIGExMiwgYTEzLAorICAgICAgICBhMjAsIGEyMSwgYTIyLCBhMjMsCisgICAgICAgIGIwMCwgYjAxLCBiMDIsCisgICAgICAgIGIxMCwgYjExLCBiMTIsCisgICAgICAgIGIyMCwgYjIxLCBiMjI7CisKKyAgICBpZiAoTWF0aC5hYnMobGVuKSA8IGdsTWF0cml4LkVQU0lMT04pIHsgcmV0dXJuIG51bGw7IH0KKyAgICAKKyAgICBsZW4gPSAxIC8gbGVuOworICAgIHggKj0gbGVuOworICAgIHkgKj0gbGVuOworICAgIHogKj0gbGVuOworCisgICAgcyA9IE1hdGguc2luKHJhZCk7CisgICAgYyA9IE1hdGguY29zKHJhZCk7CisgICAgdCA9IDEgLSBjOworCisgICAgYTAwID0gYVswXTsgYTAxID0gYVsxXTsgYTAyID0gYVsyXTsgYTAzID0gYVszXTsKKyAgICBhMTAgPSBhWzRdOyBhMTEgPSBhWzVdOyBhMTIgPSBhWzZdOyBhMTMgPSBhWzddOworICAgIGEyMCA9IGFbOF07IGEyMSA9IGFbOV07IGEyMiA9IGFbMTBdOyBhMjMgPSBhWzExXTsKKworICAgIC8vIENvbnN0cnVjdCB0aGUgZWxlbWVudHMgb2YgdGhlIHJvdGF0aW9uIG1hdHJpeAorICAgIGIwMCA9IHggKiB4ICogdCArIGM7IGIwMSA9IHkgKiB4ICogdCArIHogKiBzOyBiMDIgPSB6ICogeCAqIHQgLSB5ICogczsKKyAgICBiMTAgPSB4ICogeSAqIHQgLSB6ICogczsgYjExID0geSAqIHkgKiB0ICsgYzsgYjEyID0geiAqIHkgKiB0ICsgeCAqIHM7CisgICAgYjIwID0geCAqIHogKiB0ICsgeSAqIHM7IGIyMSA9IHkgKiB6ICogdCAtIHggKiBzOyBiMjIgPSB6ICogeiAqIHQgKyBjOworCisgICAgLy8gUGVyZm9ybSByb3RhdGlvbi1zcGVjaWZpYyBtYXRyaXggbXVsdGlwbGljYXRpb24KKyAgICBvdXRbMF0gPSBhMDAgKiBiMDAgKyBhMTAgKiBiMDEgKyBhMjAgKiBiMDI7CisgICAgb3V0WzFdID0gYTAxICogYjAwICsgYTExICogYjAxICsgYTIxICogYjAyOworICAgIG91dFsyXSA9IGEwMiAqIGIwMCArIGExMiAqIGIwMSArIGEyMiAqIGIwMjsKKyAgICBvdXRbM10gPSBhMDMgKiBiMDAgKyBhMTMgKiBiMDEgKyBhMjMgKiBiMDI7CisgICAgb3V0WzRdID0gYTAwICogYjEwICsgYTEwICogYjExICsgYTIwICogYjEyOworICAgIG91dFs1XSA9IGEwMSAqIGIxMCArIGExMSAqIGIxMSArIGEyMSAqIGIxMjsKKyAgICBvdXRbNl0gPSBhMDIgKiBiMTAgKyBhMTIgKiBiMTEgKyBhMjIgKiBiMTI7CisgICAgb3V0WzddID0gYTAzICogYjEwICsgYTEzICogYjExICsgYTIzICogYjEyOworICAgIG91dFs4XSA9IGEwMCAqIGIyMCArIGExMCAqIGIyMSArIGEyMCAqIGIyMjsKKyAgICBvdXRbOV0gPSBhMDEgKiBiMjAgKyBhMTEgKiBiMjEgKyBhMjEgKiBiMjI7CisgICAgb3V0WzEwXSA9IGEwMiAqIGIyMCArIGExMiAqIGIyMSArIGEyMiAqIGIyMjsKKyAgICBvdXRbMTFdID0gYTAzICogYjIwICsgYTEzICogYjIxICsgYTIzICogYjIyOworCisgICAgaWYgKGEgIT09IG91dCkgeyAvLyBJZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBkaWZmZXIsIGNvcHkgdGhlIHVuY2hhbmdlZCBsYXN0IHJvdworICAgICAgICBvdXRbMTJdID0gYVsxMl07CisgICAgICAgIG91dFsxM10gPSBhWzEzXTsKKyAgICAgICAgb3V0WzE0XSA9IGFbMTRdOworICAgICAgICBvdXRbMTVdID0gYVsxNV07CisgICAgfQorICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFJvdGF0ZXMgYSBtYXRyaXggYnkgdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWCBheGlzCisgKgorICogQHBhcmFtIHttYXQ0fSBvdXQgdGhlIHJlY2VpdmluZyBtYXRyaXgKKyAqIEBwYXJhbSB7bWF0NH0gYSB0aGUgbWF0cml4IHRvIHJvdGF0ZQorICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5yb3RhdGVYID0gZnVuY3Rpb24gKG91dCwgYSwgcmFkKSB7CisgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAorICAgICAgICBjID0gTWF0aC5jb3MocmFkKSwKKyAgICAgICAgYTEwID0gYVs0XSwKKyAgICAgICAgYTExID0gYVs1XSwKKyAgICAgICAgYTEyID0gYVs2XSwKKyAgICAgICAgYTEzID0gYVs3XSwKKyAgICAgICAgYTIwID0gYVs4XSwKKyAgICAgICAgYTIxID0gYVs5XSwKKyAgICAgICAgYTIyID0gYVsxMF0sCisgICAgICAgIGEyMyA9IGFbMTFdOworCisgICAgaWYgKGEgIT09IG91dCkgeyAvLyBJZiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBkaWZmZXIsIGNvcHkgdGhlIHVuY2hhbmdlZCByb3dzCisgICAgICAgIG91dFswXSAgPSBhWzBdOworICAgICAgICBvdXRbMV0gID0gYVsxXTsKKyAgICAgICAgb3V0WzJdICA9IGFbMl07CisgICAgICAgIG91dFszXSAgPSBhWzNdOworICAgICAgICBvdXRbMTJdID0gYVsxMl07CisgICAgICAgIG91dFsxM10gPSBhWzEzXTsKKyAgICAgICAgb3V0WzE0XSA9IGFbMTRdOworICAgICAgICBvdXRbMTVdID0gYVsxNV07CisgICAgfQorCisgICAgLy8gUGVyZm9ybSBheGlzLXNwZWNpZmljIG1hdHJpeCBtdWx0aXBsaWNhdGlvbgorICAgIG91dFs0XSA9IGExMCAqIGMgKyBhMjAgKiBzOworICAgIG91dFs1XSA9IGExMSAqIGMgKyBhMjEgKiBzOworICAgIG91dFs2XSA9IGExMiAqIGMgKyBhMjIgKiBzOworICAgIG91dFs3XSA9IGExMyAqIGMgKyBhMjMgKiBzOworICAgIG91dFs4XSA9IGEyMCAqIGMgLSBhMTAgKiBzOworICAgIG91dFs5XSA9IGEyMSAqIGMgLSBhMTEgKiBzOworICAgIG91dFsxMF0gPSBhMjIgKiBjIC0gYTEyICogczsKKyAgICBvdXRbMTFdID0gYTIzICogYyAtIGExMyAqIHM7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogUm90YXRlcyBhIG1hdHJpeCBieSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBZIGF4aXMKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeAorICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gcm90YXRlCisgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorICogQHJldHVybnMge21hdDR9IG91dAorICovCittYXQ0LnJvdGF0ZVkgPSBmdW5jdGlvbiAob3V0LCBhLCByYWQpIHsKKyAgICB2YXIgcyA9IE1hdGguc2luKHJhZCksCisgICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpLAorICAgICAgICBhMDAgPSBhWzBdLAorICAgICAgICBhMDEgPSBhWzFdLAorICAgICAgICBhMDIgPSBhWzJdLAorICAgICAgICBhMDMgPSBhWzNdLAorICAgICAgICBhMjAgPSBhWzhdLAorICAgICAgICBhMjEgPSBhWzldLAorICAgICAgICBhMjIgPSBhWzEwXSwKKyAgICAgICAgYTIzID0gYVsxMV07CisKKyAgICBpZiAoYSAhPT0gb3V0KSB7IC8vIElmIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRpZmZlciwgY29weSB0aGUgdW5jaGFuZ2VkIHJvd3MKKyAgICAgICAgb3V0WzRdICA9IGFbNF07CisgICAgICAgIG91dFs1XSAgPSBhWzVdOworICAgICAgICBvdXRbNl0gID0gYVs2XTsKKyAgICAgICAgb3V0WzddICA9IGFbN107CisgICAgICAgIG91dFsxMl0gPSBhWzEyXTsKKyAgICAgICAgb3V0WzEzXSA9IGFbMTNdOworICAgICAgICBvdXRbMTRdID0gYVsxNF07CisgICAgICAgIG91dFsxNV0gPSBhWzE1XTsKKyAgICB9CisKKyAgICAvLyBQZXJmb3JtIGF4aXMtc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisgICAgb3V0WzBdID0gYTAwICogYyAtIGEyMCAqIHM7CisgICAgb3V0WzFdID0gYTAxICogYyAtIGEyMSAqIHM7CisgICAgb3V0WzJdID0gYTAyICogYyAtIGEyMiAqIHM7CisgICAgb3V0WzNdID0gYTAzICogYyAtIGEyMyAqIHM7CisgICAgb3V0WzhdID0gYTAwICogcyArIGEyMCAqIGM7CisgICAgb3V0WzldID0gYTAxICogcyArIGEyMSAqIGM7CisgICAgb3V0WzEwXSA9IGEwMiAqIHMgKyBhMjIgKiBjOworICAgIG91dFsxMV0gPSBhMDMgKiBzICsgYTIzICogYzsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSb3RhdGVzIGEgbWF0cml4IGJ5IHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIFogYXhpcworICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4CisgKiBAcGFyYW0ge21hdDR9IGEgdGhlIG1hdHJpeCB0byByb3RhdGUKKyAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQucm90YXRlWiA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKSwKKyAgICAgICAgYyA9IE1hdGguY29zKHJhZCksCisgICAgICAgIGEwMCA9IGFbMF0sCisgICAgICAgIGEwMSA9IGFbMV0sCisgICAgICAgIGEwMiA9IGFbMl0sCisgICAgICAgIGEwMyA9IGFbM10sCisgICAgICAgIGExMCA9IGFbNF0sCisgICAgICAgIGExMSA9IGFbNV0sCisgICAgICAgIGExMiA9IGFbNl0sCisgICAgICAgIGExMyA9IGFbN107CisKKyAgICBpZiAoYSAhPT0gb3V0KSB7IC8vIElmIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGRpZmZlciwgY29weSB0aGUgdW5jaGFuZ2VkIGxhc3Qgcm93CisgICAgICAgIG91dFs4XSAgPSBhWzhdOworICAgICAgICBvdXRbOV0gID0gYVs5XTsKKyAgICAgICAgb3V0WzEwXSA9IGFbMTBdOworICAgICAgICBvdXRbMTFdID0gYVsxMV07CisgICAgICAgIG91dFsxMl0gPSBhWzEyXTsKKyAgICAgICAgb3V0WzEzXSA9IGFbMTNdOworICAgICAgICBvdXRbMTRdID0gYVsxNF07CisgICAgICAgIG91dFsxNV0gPSBhWzE1XTsKKyAgICB9CisKKyAgICAvLyBQZXJmb3JtIGF4aXMtc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisgICAgb3V0WzBdID0gYTAwICogYyArIGExMCAqIHM7CisgICAgb3V0WzFdID0gYTAxICogYyArIGExMSAqIHM7CisgICAgb3V0WzJdID0gYTAyICogYyArIGExMiAqIHM7CisgICAgb3V0WzNdID0gYTAzICogYyArIGExMyAqIHM7CisgICAgb3V0WzRdID0gYTEwICogYyAtIGEwMCAqIHM7CisgICAgb3V0WzVdID0gYTExICogYyAtIGEwMSAqIHM7CisgICAgb3V0WzZdID0gYTEyICogYyAtIGEwMiAqIHM7CisgICAgb3V0WzddID0gYTEzICogYyAtIGEwMyAqIHM7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgdmVjdG9yIHRyYW5zbGF0aW9uCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCBkZXN0LCB2ZWMpOworICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7dmVjM30gdiBUcmFuc2xhdGlvbiB2ZWN0b3IKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5mcm9tVHJhbnNsYXRpb24gPSBmdW5jdGlvbihvdXQsIHYpIHsKKyAgICBvdXRbMF0gPSAxOworICAgIG91dFsxXSA9IDA7CisgICAgb3V0WzJdID0gMDsKKyAgICBvdXRbM10gPSAwOworICAgIG91dFs0XSA9IDA7CisgICAgb3V0WzVdID0gMTsKKyAgICBvdXRbNl0gPSAwOworICAgIG91dFs3XSA9IDA7CisgICAgb3V0WzhdID0gMDsKKyAgICBvdXRbOV0gPSAwOworICAgIG91dFsxMF0gPSAxOworICAgIG91dFsxMV0gPSAwOworICAgIG91dFsxMl0gPSB2WzBdOworICAgIG91dFsxM10gPSB2WzFdOworICAgIG91dFsxNF0gPSB2WzJdOworICAgIG91dFsxNV0gPSAxOworICAgIHJldHVybiBvdXQ7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgdmVjdG9yIHNjYWxpbmcKKyAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byAoYnV0IG11Y2ggZmFzdGVyIHRoYW4pOgorICoKKyAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOworICogICAgIG1hdDQuc2NhbGUoZGVzdCwgZGVzdCwgdmVjKTsKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisgKiBAcGFyYW0ge3ZlYzN9IHYgU2NhbGluZyB2ZWN0b3IKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5mcm9tU2NhbGluZyA9IGZ1bmN0aW9uKG91dCwgdikgeworICAgIG91dFswXSA9IHZbMF07CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDA7CisgICAgb3V0WzRdID0gMDsKKyAgICBvdXRbNV0gPSB2WzFdOworICAgIG91dFs2XSA9IDA7CisgICAgb3V0WzddID0gMDsKKyAgICBvdXRbOF0gPSAwOworICAgIG91dFs5XSA9IDA7CisgICAgb3V0WzEwXSA9IHZbMl07CisgICAgb3V0WzExXSA9IDA7CisgICAgb3V0WzEyXSA9IDA7CisgICAgb3V0WzEzXSA9IDA7CisgICAgb3V0WzE0XSA9IDA7CisgICAgb3V0WzE1XSA9IDE7CisgICAgcmV0dXJuIG91dDsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gYSBnaXZlbiBhbmdsZSBhcm91bmQgYSBnaXZlbiBheGlzCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQ0LnJvdGF0ZShkZXN0LCBkZXN0LCByYWQsIGF4aXMpOworICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisgKiBAcGFyYW0ge3ZlYzN9IGF4aXMgdGhlIGF4aXMgdG8gcm90YXRlIGFyb3VuZAorICogQHJldHVybnMge21hdDR9IG91dAorICovCittYXQ0LmZyb21Sb3RhdGlvbiA9IGZ1bmN0aW9uKG91dCwgcmFkLCBheGlzKSB7CisgICAgdmFyIHggPSBheGlzWzBdLCB5ID0gYXhpc1sxXSwgeiA9IGF4aXNbMl0sCisgICAgICAgIGxlbiA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5ICsgeiAqIHopLAorICAgICAgICBzLCBjLCB0OworICAgIAorICAgIGlmIChNYXRoLmFicyhsZW4pIDwgZ2xNYXRyaXguRVBTSUxPTikgeyByZXR1cm4gbnVsbDsgfQorICAgIAorICAgIGxlbiA9IDEgLyBsZW47CisgICAgeCAqPSBsZW47CisgICAgeSAqPSBsZW47CisgICAgeiAqPSBsZW47CisgICAgCisgICAgcyA9IE1hdGguc2luKHJhZCk7CisgICAgYyA9IE1hdGguY29zKHJhZCk7CisgICAgdCA9IDEgLSBjOworICAgIAorICAgIC8vIFBlcmZvcm0gcm90YXRpb24tc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisgICAgb3V0WzBdID0geCAqIHggKiB0ICsgYzsKKyAgICBvdXRbMV0gPSB5ICogeCAqIHQgKyB6ICogczsKKyAgICBvdXRbMl0gPSB6ICogeCAqIHQgLSB5ICogczsKKyAgICBvdXRbM10gPSAwOworICAgIG91dFs0XSA9IHggKiB5ICogdCAtIHogKiBzOworICAgIG91dFs1XSA9IHkgKiB5ICogdCArIGM7CisgICAgb3V0WzZdID0geiAqIHkgKiB0ICsgeCAqIHM7CisgICAgb3V0WzddID0gMDsKKyAgICBvdXRbOF0gPSB4ICogeiAqIHQgKyB5ICogczsKKyAgICBvdXRbOV0gPSB5ICogeiAqIHQgLSB4ICogczsKKyAgICBvdXRbMTBdID0geiAqIHogKiB0ICsgYzsKKyAgICBvdXRbMTFdID0gMDsKKyAgICBvdXRbMTJdID0gMDsKKyAgICBvdXRbMTNdID0gMDsKKyAgICBvdXRbMTRdID0gMDsKKyAgICBvdXRbMTVdID0gMTsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSB0aGUgZ2l2ZW4gYW5nbGUgYXJvdW5kIHRoZSBYIGF4aXMKKyAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byAoYnV0IG11Y2ggZmFzdGVyIHRoYW4pOgorICoKKyAqICAgICBtYXQ0LmlkZW50aXR5KGRlc3QpOworICogICAgIG1hdDQucm90YXRlWChkZXN0LCBkZXN0LCByYWQpOworICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7TnVtYmVyfSByYWQgdGhlIGFuZ2xlIHRvIHJvdGF0ZSB0aGUgbWF0cml4IGJ5CisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQuZnJvbVhSb3RhdGlvbiA9IGZ1bmN0aW9uKG91dCwgcmFkKSB7CisgICAgdmFyIHMgPSBNYXRoLnNpbihyYWQpLAorICAgICAgICBjID0gTWF0aC5jb3MocmFkKTsKKyAgICAKKyAgICAvLyBQZXJmb3JtIGF4aXMtc3BlY2lmaWMgbWF0cml4IG11bHRpcGxpY2F0aW9uCisgICAgb3V0WzBdICA9IDE7CisgICAgb3V0WzFdICA9IDA7CisgICAgb3V0WzJdICA9IDA7CisgICAgb3V0WzNdICA9IDA7CisgICAgb3V0WzRdID0gMDsKKyAgICBvdXRbNV0gPSBjOworICAgIG91dFs2XSA9IHM7CisgICAgb3V0WzddID0gMDsKKyAgICBvdXRbOF0gPSAwOworICAgIG91dFs5XSA9IC1zOworICAgIG91dFsxMF0gPSBjOworICAgIG91dFsxMV0gPSAwOworICAgIG91dFsxMl0gPSAwOworICAgIG91dFsxM10gPSAwOworICAgIG91dFsxNF0gPSAwOworICAgIG91dFsxNV0gPSAxOworICAgIHJldHVybiBvdXQ7Cit9CisKKy8qKgorICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIHRoZSBnaXZlbiBhbmdsZSBhcm91bmQgdGhlIFkgYXhpcworICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisgKgorICogICAgIG1hdDQuaWRlbnRpdHkoZGVzdCk7CisgKiAgICAgbWF0NC5yb3RhdGVZKGRlc3QsIGRlc3QsIHJhZCk7CisgKgorICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgdG8gcm90YXRlIHRoZSBtYXRyaXggYnkKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5mcm9tWVJvdGF0aW9uID0gZnVuY3Rpb24ob3V0LCByYWQpIHsKKyAgICB2YXIgcyA9IE1hdGguc2luKHJhZCksCisgICAgICAgIGMgPSBNYXRoLmNvcyhyYWQpOworICAgIAorICAgIC8vIFBlcmZvcm0gYXhpcy1zcGVjaWZpYyBtYXRyaXggbXVsdGlwbGljYXRpb24KKyAgICBvdXRbMF0gID0gYzsKKyAgICBvdXRbMV0gID0gMDsKKyAgICBvdXRbMl0gID0gLXM7CisgICAgb3V0WzNdICA9IDA7CisgICAgb3V0WzRdID0gMDsKKyAgICBvdXRbNV0gPSAxOworICAgIG91dFs2XSA9IDA7CisgICAgb3V0WzddID0gMDsKKyAgICBvdXRbOF0gPSBzOworICAgIG91dFs5XSA9IDA7CisgICAgb3V0WzEwXSA9IGM7CisgICAgb3V0WzExXSA9IDA7CisgICAgb3V0WzEyXSA9IDA7CisgICAgb3V0WzEzXSA9IDA7CisgICAgb3V0WzE0XSA9IDA7CisgICAgb3V0WzE1XSA9IDE7CisgICAgcmV0dXJuIG91dDsKK30KKworLyoqCisgKiBDcmVhdGVzIGEgbWF0cml4IGZyb20gdGhlIGdpdmVuIGFuZ2xlIGFyb3VuZCB0aGUgWiBheGlzCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQ0LnJvdGF0ZVooZGVzdCwgZGVzdCwgcmFkKTsKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IHJlY2VpdmluZyBvcGVyYXRpb24gcmVzdWx0CisgKiBAcGFyYW0ge051bWJlcn0gcmFkIHRoZSBhbmdsZSB0byByb3RhdGUgdGhlIG1hdHJpeCBieQorICogQHJldHVybnMge21hdDR9IG91dAorICovCittYXQ0LmZyb21aUm90YXRpb24gPSBmdW5jdGlvbihvdXQsIHJhZCkgeworICAgIHZhciBzID0gTWF0aC5zaW4ocmFkKSwKKyAgICAgICAgYyA9IE1hdGguY29zKHJhZCk7CisgICAgCisgICAgLy8gUGVyZm9ybSBheGlzLXNwZWNpZmljIG1hdHJpeCBtdWx0aXBsaWNhdGlvbgorICAgIG91dFswXSAgPSBjOworICAgIG91dFsxXSAgPSBzOworICAgIG91dFsyXSAgPSAwOworICAgIG91dFszXSAgPSAwOworICAgIG91dFs0XSA9IC1zOworICAgIG91dFs1XSA9IGM7CisgICAgb3V0WzZdID0gMDsKKyAgICBvdXRbN10gPSAwOworICAgIG91dFs4XSA9IDA7CisgICAgb3V0WzldID0gMDsKKyAgICBvdXRbMTBdID0gMTsKKyAgICBvdXRbMTFdID0gMDsKKyAgICBvdXRbMTJdID0gMDsKKyAgICBvdXRbMTNdID0gMDsKKyAgICBvdXRbMTRdID0gMDsKKyAgICBvdXRbMTVdID0gMTsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHF1YXRlcm5pb24gcm90YXRpb24gYW5kIHZlY3RvciB0cmFuc2xhdGlvbgorICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6CisgKgorICogICAgIG1hdDQuaWRlbnRpdHkoZGVzdCk7CisgKiAgICAgbWF0NC50cmFuc2xhdGUoZGVzdCwgdmVjKTsKKyAqICAgICB2YXIgcXVhdE1hdCA9IG1hdDQuY3JlYXRlKCk7CisgKiAgICAgcXVhdDQudG9NYXQ0KHF1YXQsIHF1YXRNYXQpOworICogICAgIG1hdDQubXVsdGlwbHkoZGVzdCwgcXVhdE1hdCk7CisgKgorICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCByZWNlaXZpbmcgb3BlcmF0aW9uIHJlc3VsdAorICogQHBhcmFtIHtxdWF0NH0gcSBSb3RhdGlvbiBxdWF0ZXJuaW9uCisgKiBAcGFyYW0ge3ZlYzN9IHYgVHJhbnNsYXRpb24gdmVjdG9yCisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24gPSBmdW5jdGlvbiAob3V0LCBxLCB2KSB7CisgICAgLy8gUXVhdGVybmlvbiBtYXRoCisgICAgdmFyIHggPSBxWzBdLCB5ID0gcVsxXSwgeiA9IHFbMl0sIHcgPSBxWzNdLAorICAgICAgICB4MiA9IHggKyB4LAorICAgICAgICB5MiA9IHkgKyB5LAorICAgICAgICB6MiA9IHogKyB6LAorCisgICAgICAgIHh4ID0geCAqIHgyLAorICAgICAgICB4eSA9IHggKiB5MiwKKyAgICAgICAgeHogPSB4ICogejIsCisgICAgICAgIHl5ID0geSAqIHkyLAorICAgICAgICB5eiA9IHkgKiB6MiwKKyAgICAgICAgenogPSB6ICogejIsCisgICAgICAgIHd4ID0gdyAqIHgyLAorICAgICAgICB3eSA9IHcgKiB5MiwKKyAgICAgICAgd3ogPSB3ICogejI7CisKKyAgICBvdXRbMF0gPSAxIC0gKHl5ICsgenopOworICAgIG91dFsxXSA9IHh5ICsgd3o7CisgICAgb3V0WzJdID0geHogLSB3eTsKKyAgICBvdXRbM10gPSAwOworICAgIG91dFs0XSA9IHh5IC0gd3o7CisgICAgb3V0WzVdID0gMSAtICh4eCArIHp6KTsKKyAgICBvdXRbNl0gPSB5eiArIHd4OworICAgIG91dFs3XSA9IDA7CisgICAgb3V0WzhdID0geHogKyB3eTsKKyAgICBvdXRbOV0gPSB5eiAtIHd4OworICAgIG91dFsxMF0gPSAxIC0gKHh4ICsgeXkpOworICAgIG91dFsxMV0gPSAwOworICAgIG91dFsxMl0gPSB2WzBdOworICAgIG91dFsxM10gPSB2WzFdOworICAgIG91dFsxNF0gPSB2WzJdOworICAgIG91dFsxNV0gPSAxOworICAgIAorICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBtYXRyaXggZnJvbSBhIHF1YXRlcm5pb24gcm90YXRpb24sIHZlY3RvciB0cmFuc2xhdGlvbiBhbmQgdmVjdG9yIHNjYWxlCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCB2ZWMpOworICogICAgIHZhciBxdWF0TWF0ID0gbWF0NC5jcmVhdGUoKTsKKyAqICAgICBxdWF0NC50b01hdDQocXVhdCwgcXVhdE1hdCk7CisgKiAgICAgbWF0NC5tdWx0aXBseShkZXN0LCBxdWF0TWF0KTsKKyAqICAgICBtYXQ0LnNjYWxlKGRlc3QsIHNjYWxlKQorICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7cXVhdDR9IHEgUm90YXRpb24gcXVhdGVybmlvbgorICogQHBhcmFtIHt2ZWMzfSB2IFRyYW5zbGF0aW9uIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBzIFNjYWxpbmcgdmVjdG9yCisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb25TY2FsZSA9IGZ1bmN0aW9uIChvdXQsIHEsIHYsIHMpIHsKKyAgICAvLyBRdWF0ZXJuaW9uIG1hdGgKKyAgICB2YXIgeCA9IHFbMF0sIHkgPSBxWzFdLCB6ID0gcVsyXSwgdyA9IHFbM10sCisgICAgICAgIHgyID0geCArIHgsCisgICAgICAgIHkyID0geSArIHksCisgICAgICAgIHoyID0geiArIHosCisKKyAgICAgICAgeHggPSB4ICogeDIsCisgICAgICAgIHh5ID0geCAqIHkyLAorICAgICAgICB4eiA9IHggKiB6MiwKKyAgICAgICAgeXkgPSB5ICogeTIsCisgICAgICAgIHl6ID0geSAqIHoyLAorICAgICAgICB6eiA9IHogKiB6MiwKKyAgICAgICAgd3ggPSB3ICogeDIsCisgICAgICAgIHd5ID0gdyAqIHkyLAorICAgICAgICB3eiA9IHcgKiB6MiwKKyAgICAgICAgc3ggPSBzWzBdLAorICAgICAgICBzeSA9IHNbMV0sCisgICAgICAgIHN6ID0gc1syXTsKKworICAgIG91dFswXSA9ICgxIC0gKHl5ICsgenopKSAqIHN4OworICAgIG91dFsxXSA9ICh4eSArIHd6KSAqIHN4OworICAgIG91dFsyXSA9ICh4eiAtIHd5KSAqIHN4OworICAgIG91dFszXSA9IDA7CisgICAgb3V0WzRdID0gKHh5IC0gd3opICogc3k7CisgICAgb3V0WzVdID0gKDEgLSAoeHggKyB6eikpICogc3k7CisgICAgb3V0WzZdID0gKHl6ICsgd3gpICogc3k7CisgICAgb3V0WzddID0gMDsKKyAgICBvdXRbOF0gPSAoeHogKyB3eSkgKiBzejsKKyAgICBvdXRbOV0gPSAoeXogLSB3eCkgKiBzejsKKyAgICBvdXRbMTBdID0gKDEgLSAoeHggKyB5eSkpICogc3o7CisgICAgb3V0WzExXSA9IDA7CisgICAgb3V0WzEyXSA9IHZbMF07CisgICAgb3V0WzEzXSA9IHZbMV07CisgICAgb3V0WzE0XSA9IHZbMl07CisgICAgb3V0WzE1XSA9IDE7CisgICAgCisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIG1hdHJpeCBmcm9tIGEgcXVhdGVybmlvbiByb3RhdGlvbiwgdmVjdG9yIHRyYW5zbGF0aW9uIGFuZCB2ZWN0b3Igc2NhbGUsIHJvdGF0aW5nIGFuZCBzY2FsaW5nIGFyb3VuZCB0aGUgZ2l2ZW4gb3JpZ2luCisgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gKGJ1dCBtdWNoIGZhc3RlciB0aGFuKToKKyAqCisgKiAgICAgbWF0NC5pZGVudGl0eShkZXN0KTsKKyAqICAgICBtYXQ0LnRyYW5zbGF0ZShkZXN0LCB2ZWMpOworICogICAgIG1hdDQudHJhbnNsYXRlKGRlc3QsIG9yaWdpbik7CisgKiAgICAgdmFyIHF1YXRNYXQgPSBtYXQ0LmNyZWF0ZSgpOworICogICAgIHF1YXQ0LnRvTWF0NChxdWF0LCBxdWF0TWF0KTsKKyAqICAgICBtYXQ0Lm11bHRpcGx5KGRlc3QsIHF1YXRNYXQpOworICogICAgIG1hdDQuc2NhbGUoZGVzdCwgc2NhbGUpCisgKiAgICAgbWF0NC50cmFuc2xhdGUoZGVzdCwgbmVnYXRpdmVPcmlnaW4pOworICoKKyAqIEBwYXJhbSB7bWF0NH0gb3V0IG1hdDQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7cXVhdDR9IHEgUm90YXRpb24gcXVhdGVybmlvbgorICogQHBhcmFtIHt2ZWMzfSB2IFRyYW5zbGF0aW9uIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBzIFNjYWxpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzN9IG8gVGhlIG9yaWdpbiB2ZWN0b3IgYXJvdW5kIHdoaWNoIHRvIHNjYWxlIGFuZCByb3RhdGUKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5mcm9tUm90YXRpb25UcmFuc2xhdGlvblNjYWxlT3JpZ2luID0gZnVuY3Rpb24gKG91dCwgcSwgdiwgcywgbykgeworICAvLyBRdWF0ZXJuaW9uIG1hdGgKKyAgdmFyIHggPSBxWzBdLCB5ID0gcVsxXSwgeiA9IHFbMl0sIHcgPSBxWzNdLAorICAgICAgeDIgPSB4ICsgeCwKKyAgICAgIHkyID0geSArIHksCisgICAgICB6MiA9IHogKyB6LAorCisgICAgICB4eCA9IHggKiB4MiwKKyAgICAgIHh5ID0geCAqIHkyLAorICAgICAgeHogPSB4ICogejIsCisgICAgICB5eSA9IHkgKiB5MiwKKyAgICAgIHl6ID0geSAqIHoyLAorICAgICAgenogPSB6ICogejIsCisgICAgICB3eCA9IHcgKiB4MiwKKyAgICAgIHd5ID0gdyAqIHkyLAorICAgICAgd3ogPSB3ICogejIsCisgICAgICAKKyAgICAgIHN4ID0gc1swXSwKKyAgICAgIHN5ID0gc1sxXSwKKyAgICAgIHN6ID0gc1syXSwKKworICAgICAgb3ggPSBvWzBdLAorICAgICAgb3kgPSBvWzFdLAorICAgICAgb3ogPSBvWzJdOworICAgICAgCisgIG91dFswXSA9ICgxIC0gKHl5ICsgenopKSAqIHN4OworICBvdXRbMV0gPSAoeHkgKyB3eikgKiBzeDsKKyAgb3V0WzJdID0gKHh6IC0gd3kpICogc3g7CisgIG91dFszXSA9IDA7CisgIG91dFs0XSA9ICh4eSAtIHd6KSAqIHN5OworICBvdXRbNV0gPSAoMSAtICh4eCArIHp6KSkgKiBzeTsKKyAgb3V0WzZdID0gKHl6ICsgd3gpICogc3k7CisgIG91dFs3XSA9IDA7CisgIG91dFs4XSA9ICh4eiArIHd5KSAqIHN6OworICBvdXRbOV0gPSAoeXogLSB3eCkgKiBzejsKKyAgb3V0WzEwXSA9ICgxIC0gKHh4ICsgeXkpKSAqIHN6OworICBvdXRbMTFdID0gMDsKKyAgb3V0WzEyXSA9IHZbMF0gKyBveCAtIChvdXRbMF0gKiBveCArIG91dFs0XSAqIG95ICsgb3V0WzhdICogb3opOworICBvdXRbMTNdID0gdlsxXSArIG95IC0gKG91dFsxXSAqIG94ICsgb3V0WzVdICogb3kgKyBvdXRbOV0gKiBveik7CisgIG91dFsxNF0gPSB2WzJdICsgb3ogLSAob3V0WzJdICogb3ggKyBvdXRbNl0gKiBveSArIG91dFsxMF0gKiBveik7CisgIG91dFsxNV0gPSAxOworICAgICAgICAKKyAgcmV0dXJuIG91dDsKK307CisKK21hdDQuZnJvbVF1YXQgPSBmdW5jdGlvbiAob3V0LCBxKSB7CisgICAgdmFyIHggPSBxWzBdLCB5ID0gcVsxXSwgeiA9IHFbMl0sIHcgPSBxWzNdLAorICAgICAgICB4MiA9IHggKyB4LAorICAgICAgICB5MiA9IHkgKyB5LAorICAgICAgICB6MiA9IHogKyB6LAorCisgICAgICAgIHh4ID0geCAqIHgyLAorICAgICAgICB5eCA9IHkgKiB4MiwKKyAgICAgICAgeXkgPSB5ICogeTIsCisgICAgICAgIHp4ID0geiAqIHgyLAorICAgICAgICB6eSA9IHogKiB5MiwKKyAgICAgICAgenogPSB6ICogejIsCisgICAgICAgIHd4ID0gdyAqIHgyLAorICAgICAgICB3eSA9IHcgKiB5MiwKKyAgICAgICAgd3ogPSB3ICogejI7CisKKyAgICBvdXRbMF0gPSAxIC0geXkgLSB6ejsKKyAgICBvdXRbMV0gPSB5eCArIHd6OworICAgIG91dFsyXSA9IHp4IC0gd3k7CisgICAgb3V0WzNdID0gMDsKKworICAgIG91dFs0XSA9IHl4IC0gd3o7CisgICAgb3V0WzVdID0gMSAtIHh4IC0geno7CisgICAgb3V0WzZdID0genkgKyB3eDsKKyAgICBvdXRbN10gPSAwOworCisgICAgb3V0WzhdID0genggKyB3eTsKKyAgICBvdXRbOV0gPSB6eSAtIHd4OworICAgIG91dFsxMF0gPSAxIC0geHggLSB5eTsKKyAgICBvdXRbMTFdID0gMDsKKworICAgIG91dFsxMl0gPSAwOworICAgIG91dFsxM10gPSAwOworICAgIG91dFsxNF0gPSAwOworICAgIG91dFsxNV0gPSAxOworCisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogR2VuZXJhdGVzIGEgZnJ1c3R1bSBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gYm91bmRzCisgKgorICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCBmcnVzdHVtIG1hdHJpeCB3aWxsIGJlIHdyaXR0ZW4gaW50bworICogQHBhcmFtIHtOdW1iZXJ9IGxlZnQgTGVmdCBib3VuZCBvZiB0aGUgZnJ1c3R1bQorICogQHBhcmFtIHtOdW1iZXJ9IHJpZ2h0IFJpZ2h0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCisgKiBAcGFyYW0ge051bWJlcn0gYm90dG9tIEJvdHRvbSBib3VuZCBvZiB0aGUgZnJ1c3R1bQorICogQHBhcmFtIHtOdW1iZXJ9IHRvcCBUb3AgYm91bmQgb2YgdGhlIGZydXN0dW0KKyAqIEBwYXJhbSB7TnVtYmVyfSBuZWFyIE5lYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KKyAqIEBwYXJhbSB7TnVtYmVyfSBmYXIgRmFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQuZnJ1c3R1bSA9IGZ1bmN0aW9uIChvdXQsIGxlZnQsIHJpZ2h0LCBib3R0b20sIHRvcCwgbmVhciwgZmFyKSB7CisgICAgdmFyIHJsID0gMSAvIChyaWdodCAtIGxlZnQpLAorICAgICAgICB0YiA9IDEgLyAodG9wIC0gYm90dG9tKSwKKyAgICAgICAgbmYgPSAxIC8gKG5lYXIgLSBmYXIpOworICAgIG91dFswXSA9IChuZWFyICogMikgKiBybDsKKyAgICBvdXRbMV0gPSAwOworICAgIG91dFsyXSA9IDA7CisgICAgb3V0WzNdID0gMDsKKyAgICBvdXRbNF0gPSAwOworICAgIG91dFs1XSA9IChuZWFyICogMikgKiB0YjsKKyAgICBvdXRbNl0gPSAwOworICAgIG91dFs3XSA9IDA7CisgICAgb3V0WzhdID0gKHJpZ2h0ICsgbGVmdCkgKiBybDsKKyAgICBvdXRbOV0gPSAodG9wICsgYm90dG9tKSAqIHRiOworICAgIG91dFsxMF0gPSAoZmFyICsgbmVhcikgKiBuZjsKKyAgICBvdXRbMTFdID0gLTE7CisgICAgb3V0WzEyXSA9IDA7CisgICAgb3V0WzEzXSA9IDA7CisgICAgb3V0WzE0XSA9IChmYXIgKiBuZWFyICogMikgKiBuZjsKKyAgICBvdXRbMTVdID0gMDsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBHZW5lcmF0ZXMgYSBwZXJzcGVjdGl2ZSBwcm9qZWN0aW9uIG1hdHJpeCB3aXRoIHRoZSBnaXZlbiBib3VuZHMKKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCisgKiBAcGFyYW0ge251bWJlcn0gZm92eSBWZXJ0aWNhbCBmaWVsZCBvZiB2aWV3IGluIHJhZGlhbnMKKyAqIEBwYXJhbSB7bnVtYmVyfSBhc3BlY3QgQXNwZWN0IHJhdGlvLiB0eXBpY2FsbHkgdmlld3BvcnQgd2lkdGgvaGVpZ2h0CisgKiBAcGFyYW0ge251bWJlcn0gbmVhciBOZWFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCisgKiBAcGFyYW0ge251bWJlcn0gZmFyIEZhciBib3VuZCBvZiB0aGUgZnJ1c3R1bQorICogQHJldHVybnMge21hdDR9IG91dAorICovCittYXQ0LnBlcnNwZWN0aXZlID0gZnVuY3Rpb24gKG91dCwgZm92eSwgYXNwZWN0LCBuZWFyLCBmYXIpIHsKKyAgICB2YXIgZiA9IDEuMCAvIE1hdGgudGFuKGZvdnkgLyAyKSwKKyAgICAgICAgbmYgPSAxIC8gKG5lYXIgLSBmYXIpOworICAgIG91dFswXSA9IGYgLyBhc3BlY3Q7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDA7CisgICAgb3V0WzRdID0gMDsKKyAgICBvdXRbNV0gPSBmOworICAgIG91dFs2XSA9IDA7CisgICAgb3V0WzddID0gMDsKKyAgICBvdXRbOF0gPSAwOworICAgIG91dFs5XSA9IDA7CisgICAgb3V0WzEwXSA9IChmYXIgKyBuZWFyKSAqIG5mOworICAgIG91dFsxMV0gPSAtMTsKKyAgICBvdXRbMTJdID0gMDsKKyAgICBvdXRbMTNdID0gMDsKKyAgICBvdXRbMTRdID0gKDIgKiBmYXIgKiBuZWFyKSAqIG5mOworICAgIG91dFsxNV0gPSAwOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEdlbmVyYXRlcyBhIHBlcnNwZWN0aXZlIHByb2plY3Rpb24gbWF0cml4IHdpdGggdGhlIGdpdmVuIGZpZWxkIG9mIHZpZXcuCisgKiBUaGlzIGlzIHByaW1hcmlseSB1c2VmdWwgZm9yIGdlbmVyYXRpbmcgcHJvamVjdGlvbiBtYXRyaWNlcyB0byBiZSB1c2VkCisgKiB3aXRoIHRoZSBzdGlsbCBleHBlcmllbWVudGFsIFdlYlZSIEFQSS4KKyAqCisgKiBAcGFyYW0ge21hdDR9IG91dCBtYXQ0IGZydXN0dW0gbWF0cml4IHdpbGwgYmUgd3JpdHRlbiBpbnRvCisgKiBAcGFyYW0ge251bWJlcn0gZm92IE9iamVjdCBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgdmFsdWVzOiB1cERlZ3JlZXMsIGRvd25EZWdyZWVzLCBsZWZ0RGVncmVlcywgcmlnaHREZWdyZWVzCisgKiBAcGFyYW0ge251bWJlcn0gbmVhciBOZWFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCisgKiBAcGFyYW0ge251bWJlcn0gZmFyIEZhciBib3VuZCBvZiB0aGUgZnJ1c3R1bQorICogQHJldHVybnMge21hdDR9IG91dAorICovCittYXQ0LnBlcnNwZWN0aXZlRnJvbUZpZWxkT2ZWaWV3ID0gZnVuY3Rpb24gKG91dCwgZm92LCBuZWFyLCBmYXIpIHsKKyAgICB2YXIgdXBUYW4gPSBNYXRoLnRhbihmb3YudXBEZWdyZWVzICogTWF0aC5QSS8xODAuMCksCisgICAgICAgIGRvd25UYW4gPSBNYXRoLnRhbihmb3YuZG93bkRlZ3JlZXMgKiBNYXRoLlBJLzE4MC4wKSwKKyAgICAgICAgbGVmdFRhbiA9IE1hdGgudGFuKGZvdi5sZWZ0RGVncmVlcyAqIE1hdGguUEkvMTgwLjApLAorICAgICAgICByaWdodFRhbiA9IE1hdGgudGFuKGZvdi5yaWdodERlZ3JlZXMgKiBNYXRoLlBJLzE4MC4wKSwKKyAgICAgICAgeFNjYWxlID0gMi4wIC8gKGxlZnRUYW4gKyByaWdodFRhbiksCisgICAgICAgIHlTY2FsZSA9IDIuMCAvICh1cFRhbiArIGRvd25UYW4pOworCisgICAgb3V0WzBdID0geFNjYWxlOworICAgIG91dFsxXSA9IDAuMDsKKyAgICBvdXRbMl0gPSAwLjA7CisgICAgb3V0WzNdID0gMC4wOworICAgIG91dFs0XSA9IDAuMDsKKyAgICBvdXRbNV0gPSB5U2NhbGU7CisgICAgb3V0WzZdID0gMC4wOworICAgIG91dFs3XSA9IDAuMDsKKyAgICBvdXRbOF0gPSAtKChsZWZ0VGFuIC0gcmlnaHRUYW4pICogeFNjYWxlICogMC41KTsKKyAgICBvdXRbOV0gPSAoKHVwVGFuIC0gZG93blRhbikgKiB5U2NhbGUgKiAwLjUpOworICAgIG91dFsxMF0gPSBmYXIgLyAobmVhciAtIGZhcik7CisgICAgb3V0WzExXSA9IC0xLjA7CisgICAgb3V0WzEyXSA9IDAuMDsKKyAgICBvdXRbMTNdID0gMC4wOworICAgIG91dFsxNF0gPSAoZmFyICogbmVhcikgLyAobmVhciAtIGZhcik7CisgICAgb3V0WzE1XSA9IDAuMDsKKyAgICByZXR1cm4gb3V0OworfQorCisvKioKKyAqIEdlbmVyYXRlcyBhIG9ydGhvZ29uYWwgcHJvamVjdGlvbiBtYXRyaXggd2l0aCB0aGUgZ2l2ZW4gYm91bmRzCisgKgorICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCBmcnVzdHVtIG1hdHJpeCB3aWxsIGJlIHdyaXR0ZW4gaW50bworICogQHBhcmFtIHtudW1iZXJ9IGxlZnQgTGVmdCBib3VuZCBvZiB0aGUgZnJ1c3R1bQorICogQHBhcmFtIHtudW1iZXJ9IHJpZ2h0IFJpZ2h0IGJvdW5kIG9mIHRoZSBmcnVzdHVtCisgKiBAcGFyYW0ge251bWJlcn0gYm90dG9tIEJvdHRvbSBib3VuZCBvZiB0aGUgZnJ1c3R1bQorICogQHBhcmFtIHtudW1iZXJ9IHRvcCBUb3AgYm91bmQgb2YgdGhlIGZydXN0dW0KKyAqIEBwYXJhbSB7bnVtYmVyfSBuZWFyIE5lYXIgYm91bmQgb2YgdGhlIGZydXN0dW0KKyAqIEBwYXJhbSB7bnVtYmVyfSBmYXIgRmFyIGJvdW5kIG9mIHRoZSBmcnVzdHVtCisgKiBAcmV0dXJucyB7bWF0NH0gb3V0CisgKi8KK21hdDQub3J0aG8gPSBmdW5jdGlvbiAob3V0LCBsZWZ0LCByaWdodCwgYm90dG9tLCB0b3AsIG5lYXIsIGZhcikgeworICAgIHZhciBsciA9IDEgLyAobGVmdCAtIHJpZ2h0KSwKKyAgICAgICAgYnQgPSAxIC8gKGJvdHRvbSAtIHRvcCksCisgICAgICAgIG5mID0gMSAvIChuZWFyIC0gZmFyKTsKKyAgICBvdXRbMF0gPSAtMiAqIGxyOworICAgIG91dFsxXSA9IDA7CisgICAgb3V0WzJdID0gMDsKKyAgICBvdXRbM10gPSAwOworICAgIG91dFs0XSA9IDA7CisgICAgb3V0WzVdID0gLTIgKiBidDsKKyAgICBvdXRbNl0gPSAwOworICAgIG91dFs3XSA9IDA7CisgICAgb3V0WzhdID0gMDsKKyAgICBvdXRbOV0gPSAwOworICAgIG91dFsxMF0gPSAyICogbmY7CisgICAgb3V0WzExXSA9IDA7CisgICAgb3V0WzEyXSA9IChsZWZ0ICsgcmlnaHQpICogbHI7CisgICAgb3V0WzEzXSA9ICh0b3AgKyBib3R0b20pICogYnQ7CisgICAgb3V0WzE0XSA9IChmYXIgKyBuZWFyKSAqIG5mOworICAgIG91dFsxNV0gPSAxOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEdlbmVyYXRlcyBhIGxvb2stYXQgbWF0cml4IHdpdGggdGhlIGdpdmVuIGV5ZSBwb3NpdGlvbiwgZm9jYWwgcG9pbnQsIGFuZCB1cCBheGlzCisgKgorICogQHBhcmFtIHttYXQ0fSBvdXQgbWF0NCBmcnVzdHVtIG1hdHJpeCB3aWxsIGJlIHdyaXR0ZW4gaW50bworICogQHBhcmFtIHt2ZWMzfSBleWUgUG9zaXRpb24gb2YgdGhlIHZpZXdlcgorICogQHBhcmFtIHt2ZWMzfSBjZW50ZXIgUG9pbnQgdGhlIHZpZXdlciBpcyBsb29raW5nIGF0CisgKiBAcGFyYW0ge3ZlYzN9IHVwIHZlYzMgcG9pbnRpbmcgdXAKKyAqIEByZXR1cm5zIHttYXQ0fSBvdXQKKyAqLworbWF0NC5sb29rQXQgPSBmdW5jdGlvbiAob3V0LCBleWUsIGNlbnRlciwgdXApIHsKKyAgICB2YXIgeDAsIHgxLCB4MiwgeTAsIHkxLCB5MiwgejAsIHoxLCB6MiwgbGVuLAorICAgICAgICBleWV4ID0gZXllWzBdLAorICAgICAgICBleWV5ID0gZXllWzFdLAorICAgICAgICBleWV6ID0gZXllWzJdLAorICAgICAgICB1cHggPSB1cFswXSwKKyAgICAgICAgdXB5ID0gdXBbMV0sCisgICAgICAgIHVweiA9IHVwWzJdLAorICAgICAgICBjZW50ZXJ4ID0gY2VudGVyWzBdLAorICAgICAgICBjZW50ZXJ5ID0gY2VudGVyWzFdLAorICAgICAgICBjZW50ZXJ6ID0gY2VudGVyWzJdOworCisgICAgaWYgKE1hdGguYWJzKGV5ZXggLSBjZW50ZXJ4KSA8IGdsTWF0cml4LkVQU0lMT04gJiYKKyAgICAgICAgTWF0aC5hYnMoZXlleSAtIGNlbnRlcnkpIDwgZ2xNYXRyaXguRVBTSUxPTiAmJgorICAgICAgICBNYXRoLmFicyhleWV6IC0gY2VudGVyeikgPCBnbE1hdHJpeC5FUFNJTE9OKSB7CisgICAgICAgIHJldHVybiBtYXQ0LmlkZW50aXR5KG91dCk7CisgICAgfQorCisgICAgejAgPSBleWV4IC0gY2VudGVyeDsKKyAgICB6MSA9IGV5ZXkgLSBjZW50ZXJ5OworICAgIHoyID0gZXlleiAtIGNlbnRlcno7CisKKyAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KHowICogejAgKyB6MSAqIHoxICsgejIgKiB6Mik7CisgICAgejAgKj0gbGVuOworICAgIHoxICo9IGxlbjsKKyAgICB6MiAqPSBsZW47CisKKyAgICB4MCA9IHVweSAqIHoyIC0gdXB6ICogejE7CisgICAgeDEgPSB1cHogKiB6MCAtIHVweCAqIHoyOworICAgIHgyID0gdXB4ICogejEgLSB1cHkgKiB6MDsKKyAgICBsZW4gPSBNYXRoLnNxcnQoeDAgKiB4MCArIHgxICogeDEgKyB4MiAqIHgyKTsKKyAgICBpZiAoIWxlbikgeworICAgICAgICB4MCA9IDA7CisgICAgICAgIHgxID0gMDsKKyAgICAgICAgeDIgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIGxlbiA9IDEgLyBsZW47CisgICAgICAgIHgwICo9IGxlbjsKKyAgICAgICAgeDEgKj0gbGVuOworICAgICAgICB4MiAqPSBsZW47CisgICAgfQorCisgICAgeTAgPSB6MSAqIHgyIC0gejIgKiB4MTsKKyAgICB5MSA9IHoyICogeDAgLSB6MCAqIHgyOworICAgIHkyID0gejAgKiB4MSAtIHoxICogeDA7CisKKyAgICBsZW4gPSBNYXRoLnNxcnQoeTAgKiB5MCArIHkxICogeTEgKyB5MiAqIHkyKTsKKyAgICBpZiAoIWxlbikgeworICAgICAgICB5MCA9IDA7CisgICAgICAgIHkxID0gMDsKKyAgICAgICAgeTIgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIGxlbiA9IDEgLyBsZW47CisgICAgICAgIHkwICo9IGxlbjsKKyAgICAgICAgeTEgKj0gbGVuOworICAgICAgICB5MiAqPSBsZW47CisgICAgfQorCisgICAgb3V0WzBdID0geDA7CisgICAgb3V0WzFdID0geTA7CisgICAgb3V0WzJdID0gejA7CisgICAgb3V0WzNdID0gMDsKKyAgICBvdXRbNF0gPSB4MTsKKyAgICBvdXRbNV0gPSB5MTsKKyAgICBvdXRbNl0gPSB6MTsKKyAgICBvdXRbN10gPSAwOworICAgIG91dFs4XSA9IHgyOworICAgIG91dFs5XSA9IHkyOworICAgIG91dFsxMF0gPSB6MjsKKyAgICBvdXRbMTFdID0gMDsKKyAgICBvdXRbMTJdID0gLSh4MCAqIGV5ZXggKyB4MSAqIGV5ZXkgKyB4MiAqIGV5ZXopOworICAgIG91dFsxM10gPSAtKHkwICogZXlleCArIHkxICogZXlleSArIHkyICogZXlleik7CisgICAgb3V0WzE0XSA9IC0oejAgKiBleWV4ICsgejEgKiBleWV5ICsgejIgKiBleWV6KTsKKyAgICBvdXRbMTVdID0gMTsKKworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBtYXQ0CisgKgorICogQHBhcmFtIHttYXQ0fSBtYXQgbWF0cml4IHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZworICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyaXgKKyAqLworbWF0NC5zdHIgPSBmdW5jdGlvbiAoYSkgeworICAgIHJldHVybiAnbWF0NCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgYVszXSArICcsICcgKworICAgICAgICAgICAgICAgICAgICBhWzRdICsgJywgJyArIGFbNV0gKyAnLCAnICsgYVs2XSArICcsICcgKyBhWzddICsgJywgJyArCisgICAgICAgICAgICAgICAgICAgIGFbOF0gKyAnLCAnICsgYVs5XSArICcsICcgKyBhWzEwXSArICcsICcgKyBhWzExXSArICcsICcgKyAKKyAgICAgICAgICAgICAgICAgICAgYVsxMl0gKyAnLCAnICsgYVsxM10gKyAnLCAnICsgYVsxNF0gKyAnLCAnICsgYVsxNV0gKyAnKSc7Cit9OworCisvKioKKyAqIFJldHVybnMgRnJvYmVuaXVzIG5vcm0gb2YgYSBtYXQ0CisgKgorICogQHBhcmFtIHttYXQ0fSBhIHRoZSBtYXRyaXggdG8gY2FsY3VsYXRlIEZyb2Jlbml1cyBub3JtIG9mCisgKiBAcmV0dXJucyB7TnVtYmVyfSBGcm9iZW5pdXMgbm9ybQorICovCittYXQ0LmZyb2IgPSBmdW5jdGlvbiAoYSkgeworICAgIHJldHVybihNYXRoLnNxcnQoTWF0aC5wb3coYVswXSwgMikgKyBNYXRoLnBvdyhhWzFdLCAyKSArIE1hdGgucG93KGFbMl0sIDIpICsgTWF0aC5wb3coYVszXSwgMikgKyBNYXRoLnBvdyhhWzRdLCAyKSArIE1hdGgucG93KGFbNV0sIDIpICsgTWF0aC5wb3coYVs2XSwgMikgKyBNYXRoLnBvdyhhWzddLCAyKSArIE1hdGgucG93KGFbOF0sIDIpICsgTWF0aC5wb3coYVs5XSwgMikgKyBNYXRoLnBvdyhhWzEwXSwgMikgKyBNYXRoLnBvdyhhWzExXSwgMikgKyBNYXRoLnBvdyhhWzEyXSwgMikgKyBNYXRoLnBvdyhhWzEzXSwgMikgKyBNYXRoLnBvdyhhWzE0XSwgMikgKyBNYXRoLnBvdyhhWzE1XSwgMikgKSkKK307CisKKworbW9kdWxlLmV4cG9ydHMgPSBtYXQ0OwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvcXVhdC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3F1YXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk5MGY3YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3F1YXQuanMKQEAgLTAsMCArMSw1NTMgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNSwgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4gKi8KKwordmFyIGdsTWF0cml4ID0gcmVxdWlyZSgiLi9jb21tb24uanMiKTsKK3ZhciBtYXQzID0gcmVxdWlyZSgiLi9tYXQzLmpzIik7Cit2YXIgdmVjMyA9IHJlcXVpcmUoIi4vdmVjMy5qcyIpOwordmFyIHZlYzQgPSByZXF1aXJlKCIuL3ZlYzQuanMiKTsKKworLyoqCisgKiBAY2xhc3MgUXVhdGVybmlvbgorICogQG5hbWUgcXVhdAorICovCit2YXIgcXVhdCA9IHt9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgcXVhdAorICoKKyAqIEByZXR1cm5zIHtxdWF0fSBhIG5ldyBxdWF0ZXJuaW9uCisgKi8KK3F1YXQuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDQpOworICAgIG91dFswXSA9IDA7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDE7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogU2V0cyBhIHF1YXRlcm5pb24gdG8gcmVwcmVzZW50IHRoZSBzaG9ydGVzdCByb3RhdGlvbiBmcm9tIG9uZQorICogdmVjdG9yIHRvIGFub3RoZXIuCisgKgorICogQm90aCB2ZWN0b3JzIGFyZSBhc3N1bWVkIHRvIGJlIHVuaXQgbGVuZ3RoLgorICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbi4KKyAqIEBwYXJhbSB7dmVjM30gYSB0aGUgaW5pdGlhbCB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYiB0aGUgZGVzdGluYXRpb24gdmVjdG9yCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKi8KK3F1YXQucm90YXRpb25UbyA9IChmdW5jdGlvbigpIHsKKyAgICB2YXIgdG1wdmVjMyA9IHZlYzMuY3JlYXRlKCk7CisgICAgdmFyIHhVbml0VmVjMyA9IHZlYzMuZnJvbVZhbHVlcygxLDAsMCk7CisgICAgdmFyIHlVbml0VmVjMyA9IHZlYzMuZnJvbVZhbHVlcygwLDEsMCk7CisKKyAgICByZXR1cm4gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgICAgIHZhciBkb3QgPSB2ZWMzLmRvdChhLCBiKTsKKyAgICAgICAgaWYgKGRvdCA8IC0wLjk5OTk5OSkgeworICAgICAgICAgICAgdmVjMy5jcm9zcyh0bXB2ZWMzLCB4VW5pdFZlYzMsIGEpOworICAgICAgICAgICAgaWYgKHZlYzMubGVuZ3RoKHRtcHZlYzMpIDwgMC4wMDAwMDEpCisgICAgICAgICAgICAgICAgdmVjMy5jcm9zcyh0bXB2ZWMzLCB5VW5pdFZlYzMsIGEpOworICAgICAgICAgICAgdmVjMy5ub3JtYWxpemUodG1wdmVjMywgdG1wdmVjMyk7CisgICAgICAgICAgICBxdWF0LnNldEF4aXNBbmdsZShvdXQsIHRtcHZlYzMsIE1hdGguUEkpOworICAgICAgICAgICAgcmV0dXJuIG91dDsKKyAgICAgICAgfSBlbHNlIGlmIChkb3QgPiAwLjk5OTk5OSkgeworICAgICAgICAgICAgb3V0WzBdID0gMDsKKyAgICAgICAgICAgIG91dFsxXSA9IDA7CisgICAgICAgICAgICBvdXRbMl0gPSAwOworICAgICAgICAgICAgb3V0WzNdID0gMTsKKyAgICAgICAgICAgIHJldHVybiBvdXQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2ZWMzLmNyb3NzKHRtcHZlYzMsIGEsIGIpOworICAgICAgICAgICAgb3V0WzBdID0gdG1wdmVjM1swXTsKKyAgICAgICAgICAgIG91dFsxXSA9IHRtcHZlYzNbMV07CisgICAgICAgICAgICBvdXRbMl0gPSB0bXB2ZWMzWzJdOworICAgICAgICAgICAgb3V0WzNdID0gMSArIGRvdDsKKyAgICAgICAgICAgIHJldHVybiBxdWF0Lm5vcm1hbGl6ZShvdXQsIG91dCk7CisgICAgICAgIH0KKyAgICB9OworfSkoKTsKKworLyoqCisgKiBTZXRzIHRoZSBzcGVjaWZpZWQgcXVhdGVybmlvbiB3aXRoIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbgorICogYXhlcy4gRWFjaCBheGlzIGlzIGEgdmVjMyBhbmQgaXMgZXhwZWN0ZWQgdG8gYmUgdW5pdCBsZW5ndGggYW5kCisgKiBwZXJwZW5kaWN1bGFyIHRvIGFsbCBvdGhlciBzcGVjaWZpZWQgYXhlcy4KKyAqCisgKiBAcGFyYW0ge3ZlYzN9IHZpZXcgIHRoZSB2ZWN0b3IgcmVwcmVzZW50aW5nIHRoZSB2aWV3aW5nIGRpcmVjdGlvbgorICogQHBhcmFtIHt2ZWMzfSByaWdodCB0aGUgdmVjdG9yIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgInJpZ2h0IiBkaXJlY3Rpb24KKyAqIEBwYXJhbSB7dmVjM30gdXAgICAgdGhlIHZlY3RvciByZXByZXNlbnRpbmcgdGhlIGxvY2FsICJ1cCIgZGlyZWN0aW9uCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKi8KK3F1YXQuc2V0QXhlcyA9IChmdW5jdGlvbigpIHsKKyAgICB2YXIgbWF0ciA9IG1hdDMuY3JlYXRlKCk7CisKKyAgICByZXR1cm4gZnVuY3Rpb24ob3V0LCB2aWV3LCByaWdodCwgdXApIHsKKyAgICAgICAgbWF0clswXSA9IHJpZ2h0WzBdOworICAgICAgICBtYXRyWzNdID0gcmlnaHRbMV07CisgICAgICAgIG1hdHJbNl0gPSByaWdodFsyXTsKKworICAgICAgICBtYXRyWzFdID0gdXBbMF07CisgICAgICAgIG1hdHJbNF0gPSB1cFsxXTsKKyAgICAgICAgbWF0cls3XSA9IHVwWzJdOworCisgICAgICAgIG1hdHJbMl0gPSAtdmlld1swXTsKKyAgICAgICAgbWF0cls1XSA9IC12aWV3WzFdOworICAgICAgICBtYXRyWzhdID0gLXZpZXdbMl07CisKKyAgICAgICAgcmV0dXJuIHF1YXQubm9ybWFsaXplKG91dCwgcXVhdC5mcm9tTWF0MyhvdXQsIG1hdHIpKTsKKyAgICB9OworfSkoKTsKKworLyoqCisgKiBDcmVhdGVzIGEgbmV3IHF1YXQgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyBxdWF0ZXJuaW9uCisgKgorICogQHBhcmFtIHtxdWF0fSBhIHF1YXRlcm5pb24gdG8gY2xvbmUKKyAqIEByZXR1cm5zIHtxdWF0fSBhIG5ldyBxdWF0ZXJuaW9uCisgKiBAZnVuY3Rpb24KKyAqLworcXVhdC5jbG9uZSA9IHZlYzQuY2xvbmU7CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBxdWF0IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHZhbHVlcworICoKKyAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50CisgKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAorICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKKyAqIEBwYXJhbSB7TnVtYmVyfSB3IFcgY29tcG9uZW50CisgKiBAcmV0dXJucyB7cXVhdH0gYSBuZXcgcXVhdGVybmlvbgorICogQGZ1bmN0aW9uCisgKi8KK3F1YXQuZnJvbVZhbHVlcyA9IHZlYzQuZnJvbVZhbHVlczsKKworLyoqCisgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgcXVhdCB0byBhbm90aGVyCisgKgorICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCisgKiBAcGFyYW0ge3F1YXR9IGEgdGhlIHNvdXJjZSBxdWF0ZXJuaW9uCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKiBAZnVuY3Rpb24KKyAqLworcXVhdC5jb3B5ID0gdmVjNC5jb3B5OworCisvKioKKyAqIFNldCB0aGUgY29tcG9uZW50cyBvZiBhIHF1YXQgdG8gdGhlIGdpdmVuIHZhbHVlcworICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKKyAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50CisgKiBAcGFyYW0ge051bWJlcn0geiBaIGNvbXBvbmVudAorICogQHBhcmFtIHtOdW1iZXJ9IHcgVyBjb21wb25lbnQKKyAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKyAqIEBmdW5jdGlvbgorICovCitxdWF0LnNldCA9IHZlYzQuc2V0OworCisvKioKKyAqIFNldCBhIHF1YXQgdG8gdGhlIGlkZW50aXR5IHF1YXRlcm5pb24KKyAqCisgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKyAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKyAqLworcXVhdC5pZGVudGl0eSA9IGZ1bmN0aW9uKG91dCkgeworICAgIG91dFswXSA9IDA7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDE7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogU2V0cyBhIHF1YXQgZnJvbSB0aGUgZ2l2ZW4gYW5nbGUgYW5kIHJvdGF0aW9uIGF4aXMsCisgKiB0aGVuIHJldHVybnMgaXQuCisgKgorICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCisgKiBAcGFyYW0ge3ZlYzN9IGF4aXMgdGhlIGF4aXMgYXJvdW5kIHdoaWNoIHRvIHJvdGF0ZQorICogQHBhcmFtIHtOdW1iZXJ9IHJhZCB0aGUgYW5nbGUgaW4gcmFkaWFucworICogQHJldHVybnMge3F1YXR9IG91dAorICoqLworcXVhdC5zZXRBeGlzQW5nbGUgPSBmdW5jdGlvbihvdXQsIGF4aXMsIHJhZCkgeworICAgIHJhZCA9IHJhZCAqIDAuNTsKKyAgICB2YXIgcyA9IE1hdGguc2luKHJhZCk7CisgICAgb3V0WzBdID0gcyAqIGF4aXNbMF07CisgICAgb3V0WzFdID0gcyAqIGF4aXNbMV07CisgICAgb3V0WzJdID0gcyAqIGF4aXNbMl07CisgICAgb3V0WzNdID0gTWF0aC5jb3MocmFkKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBZGRzIHR3byBxdWF0J3MKKyAqCisgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKyAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHtxdWF0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge3F1YXR9IG91dAorICogQGZ1bmN0aW9uCisgKi8KK3F1YXQuYWRkID0gdmVjNC5hZGQ7CisKKy8qKgorICogTXVsdGlwbGllcyB0d28gcXVhdCdzCisgKgorICogQHBhcmFtIHtxdWF0fSBvdXQgdGhlIHJlY2VpdmluZyBxdWF0ZXJuaW9uCisgKiBAcGFyYW0ge3F1YXR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7cXVhdH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKyAqLworcXVhdC5tdWx0aXBseSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLCBhdyA9IGFbM10sCisgICAgICAgIGJ4ID0gYlswXSwgYnkgPSBiWzFdLCBieiA9IGJbMl0sIGJ3ID0gYlszXTsKKworICAgIG91dFswXSA9IGF4ICogYncgKyBhdyAqIGJ4ICsgYXkgKiBieiAtIGF6ICogYnk7CisgICAgb3V0WzFdID0gYXkgKiBidyArIGF3ICogYnkgKyBheiAqIGJ4IC0gYXggKiBiejsKKyAgICBvdXRbMl0gPSBheiAqIGJ3ICsgYXcgKiBieiArIGF4ICogYnkgLSBheSAqIGJ4OworICAgIG91dFszXSA9IGF3ICogYncgLSBheCAqIGJ4IC0gYXkgKiBieSAtIGF6ICogYno7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayBxdWF0Lm11bHRpcGx5fQorICogQGZ1bmN0aW9uCisgKi8KK3F1YXQubXVsID0gcXVhdC5tdWx0aXBseTsKKworLyoqCisgKiBTY2FsZXMgYSBxdWF0IGJ5IGEgc2NhbGFyIG51bWJlcgorICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3F1YXR9IGEgdGhlIHZlY3RvciB0byBzY2FsZQorICogQHBhcmFtIHtOdW1iZXJ9IGIgYW1vdW50IHRvIHNjYWxlIHRoZSB2ZWN0b3IgYnkKKyAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKyAqIEBmdW5jdGlvbgorICovCitxdWF0LnNjYWxlID0gdmVjNC5zY2FsZTsKKworLyoqCisgKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFggYXhpcworICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHF1YXQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQorICogQHBhcmFtIHtudW1iZXJ9IHJhZCBhbmdsZSAoaW4gcmFkaWFucykgdG8gcm90YXRlCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKi8KK3F1YXQucm90YXRlWCA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworICAgIHJhZCAqPSAwLjU7IAorCisgICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKKyAgICAgICAgYnggPSBNYXRoLnNpbihyYWQpLCBidyA9IE1hdGguY29zKHJhZCk7CisKKyAgICBvdXRbMF0gPSBheCAqIGJ3ICsgYXcgKiBieDsKKyAgICBvdXRbMV0gPSBheSAqIGJ3ICsgYXogKiBieDsKKyAgICBvdXRbMl0gPSBheiAqIGJ3IC0gYXkgKiBieDsKKyAgICBvdXRbM10gPSBhdyAqIGJ3IC0gYXggKiBieDsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFkgYXhpcworICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHF1YXQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQorICogQHBhcmFtIHtudW1iZXJ9IHJhZCBhbmdsZSAoaW4gcmFkaWFucykgdG8gcm90YXRlCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKi8KK3F1YXQucm90YXRlWSA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworICAgIHJhZCAqPSAwLjU7IAorCisgICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKKyAgICAgICAgYnkgPSBNYXRoLnNpbihyYWQpLCBidyA9IE1hdGguY29zKHJhZCk7CisKKyAgICBvdXRbMF0gPSBheCAqIGJ3IC0gYXogKiBieTsKKyAgICBvdXRbMV0gPSBheSAqIGJ3ICsgYXcgKiBieTsKKyAgICBvdXRbMl0gPSBheiAqIGJ3ICsgYXggKiBieTsKKyAgICBvdXRbM10gPSBhdyAqIGJ3IC0gYXkgKiBieTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFogYXhpcworICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHF1YXQgcmVjZWl2aW5nIG9wZXJhdGlvbiByZXN1bHQKKyAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIHJvdGF0ZQorICogQHBhcmFtIHtudW1iZXJ9IHJhZCBhbmdsZSAoaW4gcmFkaWFucykgdG8gcm90YXRlCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKi8KK3F1YXQucm90YXRlWiA9IGZ1bmN0aW9uIChvdXQsIGEsIHJhZCkgeworICAgIHJhZCAqPSAwLjU7IAorCisgICAgdmFyIGF4ID0gYVswXSwgYXkgPSBhWzFdLCBheiA9IGFbMl0sIGF3ID0gYVszXSwKKyAgICAgICAgYnogPSBNYXRoLnNpbihyYWQpLCBidyA9IE1hdGguY29zKHJhZCk7CisKKyAgICBvdXRbMF0gPSBheCAqIGJ3ICsgYXkgKiBiejsKKyAgICBvdXRbMV0gPSBheSAqIGJ3IC0gYXggKiBiejsKKyAgICBvdXRbMl0gPSBheiAqIGJ3ICsgYXcgKiBiejsKKyAgICBvdXRbM10gPSBhdyAqIGJ3IC0gYXogKiBiejsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBXIGNvbXBvbmVudCBvZiBhIHF1YXQgZnJvbSB0aGUgWCwgWSwgYW5kIFogY29tcG9uZW50cy4KKyAqIEFzc3VtZXMgdGhhdCBxdWF0ZXJuaW9uIGlzIDEgdW5pdCBpbiBsZW5ndGguCisgKiBBbnkgZXhpc3RpbmcgVyBjb21wb25lbnQgd2lsbCBiZSBpZ25vcmVkLgorICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorICogQHBhcmFtIHtxdWF0fSBhIHF1YXQgdG8gY2FsY3VsYXRlIFcgY29tcG9uZW50IG9mCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKi8KK3F1YXQuY2FsY3VsYXRlVyA9IGZ1bmN0aW9uIChvdXQsIGEpIHsKKyAgICB2YXIgeCA9IGFbMF0sIHkgPSBhWzFdLCB6ID0gYVsyXTsKKworICAgIG91dFswXSA9IHg7CisgICAgb3V0WzFdID0geTsKKyAgICBvdXRbMl0gPSB6OworICAgIG91dFszXSA9IE1hdGguc3FydChNYXRoLmFicygxLjAgLSB4ICogeCAtIHkgKiB5IC0geiAqIHopKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBkb3QgcHJvZHVjdCBvZiB0d28gcXVhdCdzCisgKgorICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7TnVtYmVyfSBkb3QgcHJvZHVjdCBvZiBhIGFuZCBiCisgKiBAZnVuY3Rpb24KKyAqLworcXVhdC5kb3QgPSB2ZWM0LmRvdDsKKworLyoqCisgKiBQZXJmb3JtcyBhIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHF1YXQncworICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorICogQHBhcmFtIHtxdWF0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3F1YXR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudCBiZXR3ZWVuIHRoZSB0d28gaW5wdXRzCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKiBAZnVuY3Rpb24KKyAqLworcXVhdC5sZXJwID0gdmVjNC5sZXJwOworCisvKioKKyAqIFBlcmZvcm1zIGEgc3BoZXJpY2FsIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHF1YXQKKyAqCisgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKyAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHtxdWF0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cworICogQHJldHVybnMge3F1YXR9IG91dAorICovCitxdWF0LnNsZXJwID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgdCkgeworICAgIC8vIGJlbmNobWFya3M6CisgICAgLy8gICAgaHR0cDovL2pzcGVyZi5jb20vcXVhdGVybmlvbi1zbGVycC1pbXBsZW1lbnRhdGlvbnMKKworICAgIHZhciBheCA9IGFbMF0sIGF5ID0gYVsxXSwgYXogPSBhWzJdLCBhdyA9IGFbM10sCisgICAgICAgIGJ4ID0gYlswXSwgYnkgPSBiWzFdLCBieiA9IGJbMl0sIGJ3ID0gYlszXTsKKworICAgIHZhciAgICAgICAgb21lZ2EsIGNvc29tLCBzaW5vbSwgc2NhbGUwLCBzY2FsZTE7CisKKyAgICAvLyBjYWxjIGNvc2luZQorICAgIGNvc29tID0gYXggKiBieCArIGF5ICogYnkgKyBheiAqIGJ6ICsgYXcgKiBidzsKKyAgICAvLyBhZGp1c3Qgc2lnbnMgKGlmIG5lY2Vzc2FyeSkKKyAgICBpZiAoIGNvc29tIDwgMC4wICkgeworICAgICAgICBjb3NvbSA9IC1jb3NvbTsKKyAgICAgICAgYnggPSAtIGJ4OworICAgICAgICBieSA9IC0gYnk7CisgICAgICAgIGJ6ID0gLSBiejsKKyAgICAgICAgYncgPSAtIGJ3OworICAgIH0KKyAgICAvLyBjYWxjdWxhdGUgY29lZmZpY2llbnRzCisgICAgaWYgKCAoMS4wIC0gY29zb20pID4gMC4wMDAwMDEgKSB7CisgICAgICAgIC8vIHN0YW5kYXJkIGNhc2UgKHNsZXJwKQorICAgICAgICBvbWVnYSAgPSBNYXRoLmFjb3MoY29zb20pOworICAgICAgICBzaW5vbSAgPSBNYXRoLnNpbihvbWVnYSk7CisgICAgICAgIHNjYWxlMCA9IE1hdGguc2luKCgxLjAgLSB0KSAqIG9tZWdhKSAvIHNpbm9tOworICAgICAgICBzY2FsZTEgPSBNYXRoLnNpbih0ICogb21lZ2EpIC8gc2lub207CisgICAgfSBlbHNlIHsgICAgICAgIAorICAgICAgICAvLyAiZnJvbSIgYW5kICJ0byIgcXVhdGVybmlvbnMgYXJlIHZlcnkgY2xvc2UgCisgICAgICAgIC8vICAuLi4gc28gd2UgY2FuIGRvIGEgbGluZWFyIGludGVycG9sYXRpb24KKyAgICAgICAgc2NhbGUwID0gMS4wIC0gdDsKKyAgICAgICAgc2NhbGUxID0gdDsKKyAgICB9CisgICAgLy8gY2FsY3VsYXRlIGZpbmFsIHZhbHVlcworICAgIG91dFswXSA9IHNjYWxlMCAqIGF4ICsgc2NhbGUxICogYng7CisgICAgb3V0WzFdID0gc2NhbGUwICogYXkgKyBzY2FsZTEgKiBieTsKKyAgICBvdXRbMl0gPSBzY2FsZTAgKiBheiArIHNjYWxlMSAqIGJ6OworICAgIG91dFszXSA9IHNjYWxlMCAqIGF3ICsgc2NhbGUxICogYnc7CisgICAgCisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogUGVyZm9ybXMgYSBzcGhlcmljYWwgbGluZWFyIGludGVycG9sYXRpb24gd2l0aCB0d28gY29udHJvbCBwb2ludHMKKyAqCisgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKyAqIEBwYXJhbSB7cXVhdH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHtxdWF0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHBhcmFtIHtxdWF0fSBjIHRoZSB0aGlyZCBvcGVyYW5kCisgKiBAcGFyYW0ge3F1YXR9IGQgdGhlIGZvdXJ0aCBvcGVyYW5kCisgKiBAcGFyYW0ge051bWJlcn0gdCBpbnRlcnBvbGF0aW9uIGFtb3VudAorICogQHJldHVybnMge3F1YXR9IG91dAorICovCitxdWF0LnNxbGVycCA9IChmdW5jdGlvbiAoKSB7CisgIHZhciB0ZW1wMSA9IHF1YXQuY3JlYXRlKCk7CisgIHZhciB0ZW1wMiA9IHF1YXQuY3JlYXRlKCk7CisgIAorICByZXR1cm4gZnVuY3Rpb24gKG91dCwgYSwgYiwgYywgZCwgdCkgeworICAgIHF1YXQuc2xlcnAodGVtcDEsIGEsIGQsIHQpOworICAgIHF1YXQuc2xlcnAodGVtcDIsIGIsIGMsIHQpOworICAgIHF1YXQuc2xlcnAob3V0LCB0ZW1wMSwgdGVtcDIsIDIgKiB0ICogKDEgLSB0KSk7CisgICAgCisgICAgcmV0dXJuIG91dDsKKyAgfTsKK30oKSk7CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgaW52ZXJzZSBvZiBhIHF1YXQKKyAqCisgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKyAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIGNhbGN1bGF0ZSBpbnZlcnNlIG9mCisgKiBAcmV0dXJucyB7cXVhdH0gb3V0CisgKi8KK3F1YXQuaW52ZXJ0ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisgICAgdmFyIGEwID0gYVswXSwgYTEgPSBhWzFdLCBhMiA9IGFbMl0sIGEzID0gYVszXSwKKyAgICAgICAgZG90ID0gYTAqYTAgKyBhMSphMSArIGEyKmEyICsgYTMqYTMsCisgICAgICAgIGludkRvdCA9IGRvdCA/IDEuMC9kb3QgOiAwOworICAgIAorICAgIC8vIFRPRE86IFdvdWxkIGJlIGZhc3RlciB0byByZXR1cm4gWzAsMCwwLDBdIGltbWVkaWF0ZWx5IGlmIGRvdCA9PSAwCisKKyAgICBvdXRbMF0gPSAtYTAqaW52RG90OworICAgIG91dFsxXSA9IC1hMSppbnZEb3Q7CisgICAgb3V0WzJdID0gLWEyKmludkRvdDsKKyAgICBvdXRbM10gPSBhMyppbnZEb3Q7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgY29uanVnYXRlIG9mIGEgcXVhdAorICogSWYgdGhlIHF1YXRlcm5pb24gaXMgbm9ybWFsaXplZCwgdGhpcyBmdW5jdGlvbiBpcyBmYXN0ZXIgdGhhbiBxdWF0LmludmVyc2UgYW5kIHByb2R1Y2VzIHRoZSBzYW1lIHJlc3VsdC4KKyAqCisgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKyAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0IHRvIGNhbGN1bGF0ZSBjb25qdWdhdGUgb2YKKyAqIEByZXR1cm5zIHtxdWF0fSBvdXQKKyAqLworcXVhdC5jb25qdWdhdGUgPSBmdW5jdGlvbiAob3V0LCBhKSB7CisgICAgb3V0WzBdID0gLWFbMF07CisgICAgb3V0WzFdID0gLWFbMV07CisgICAgb3V0WzJdID0gLWFbMl07CisgICAgb3V0WzNdID0gYVszXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSBxdWF0CisgKgorICogQHBhcmFtIHtxdWF0fSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCisgKiBAcmV0dXJucyB7TnVtYmVyfSBsZW5ndGggb2YgYQorICogQGZ1bmN0aW9uCisgKi8KK3F1YXQubGVuZ3RoID0gdmVjNC5sZW5ndGg7CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayBxdWF0Lmxlbmd0aH0KKyAqIEBmdW5jdGlvbgorICovCitxdWF0LmxlbiA9IHF1YXQubGVuZ3RoOworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgcXVhdAorICoKKyAqIEBwYXJhbSB7cXVhdH0gYSB2ZWN0b3IgdG8gY2FsY3VsYXRlIHNxdWFyZWQgbGVuZ3RoIG9mCisgKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGxlbmd0aCBvZiBhCisgKiBAZnVuY3Rpb24KKyAqLworcXVhdC5zcXVhcmVkTGVuZ3RoID0gdmVjNC5zcXVhcmVkTGVuZ3RoOworCisvKioKKyAqIEFsaWFzIGZvciB7QGxpbmsgcXVhdC5zcXVhcmVkTGVuZ3RofQorICogQGZ1bmN0aW9uCisgKi8KK3F1YXQuc3FyTGVuID0gcXVhdC5zcXVhcmVkTGVuZ3RoOworCisvKioKKyAqIE5vcm1hbGl6ZSBhIHF1YXQKKyAqCisgKiBAcGFyYW0ge3F1YXR9IG91dCB0aGUgcmVjZWl2aW5nIHF1YXRlcm5pb24KKyAqIEBwYXJhbSB7cXVhdH0gYSBxdWF0ZXJuaW9uIHRvIG5vcm1hbGl6ZQorICogQHJldHVybnMge3F1YXR9IG91dAorICogQGZ1bmN0aW9uCisgKi8KK3F1YXQubm9ybWFsaXplID0gdmVjNC5ub3JtYWxpemU7CisKKy8qKgorICogQ3JlYXRlcyBhIHF1YXRlcm5pb24gZnJvbSB0aGUgZ2l2ZW4gM3gzIHJvdGF0aW9uIG1hdHJpeC4KKyAqCisgKiBOT1RFOiBUaGUgcmVzdWx0YW50IHF1YXRlcm5pb24gaXMgbm90IG5vcm1hbGl6ZWQsIHNvIHlvdSBzaG91bGQgYmUgc3VyZQorICogdG8gcmVub3JtYWxpemUgdGhlIHF1YXRlcm5pb24geW91cnNlbGYgd2hlcmUgbmVjZXNzYXJ5LgorICoKKyAqIEBwYXJhbSB7cXVhdH0gb3V0IHRoZSByZWNlaXZpbmcgcXVhdGVybmlvbgorICogQHBhcmFtIHttYXQzfSBtIHJvdGF0aW9uIG1hdHJpeAorICogQHJldHVybnMge3F1YXR9IG91dAorICogQGZ1bmN0aW9uCisgKi8KK3F1YXQuZnJvbU1hdDMgPSBmdW5jdGlvbihvdXQsIG0pIHsKKyAgICAvLyBBbGdvcml0aG0gaW4gS2VuIFNob2VtYWtlJ3MgYXJ0aWNsZSBpbiAxOTg3IFNJR0dSQVBIIGNvdXJzZSBub3RlcworICAgIC8vIGFydGljbGUgIlF1YXRlcm5pb24gQ2FsY3VsdXMgYW5kIEZhc3QgQW5pbWF0aW9uIi4KKyAgICB2YXIgZlRyYWNlID0gbVswXSArIG1bNF0gKyBtWzhdOworICAgIHZhciBmUm9vdDsKKworICAgIGlmICggZlRyYWNlID4gMC4wICkgeworICAgICAgICAvLyB8d3wgPiAxLzIsIG1heSBhcyB3ZWxsIGNob29zZSB3ID4gMS8yCisgICAgICAgIGZSb290ID0gTWF0aC5zcXJ0KGZUcmFjZSArIDEuMCk7ICAvLyAydworICAgICAgICBvdXRbM10gPSAwLjUgKiBmUm9vdDsKKyAgICAgICAgZlJvb3QgPSAwLjUvZlJvb3Q7ICAvLyAxLyg0dykKKyAgICAgICAgb3V0WzBdID0gKG1bNV0tbVs3XSkqZlJvb3Q7CisgICAgICAgIG91dFsxXSA9IChtWzZdLW1bMl0pKmZSb290OworICAgICAgICBvdXRbMl0gPSAobVsxXS1tWzNdKSpmUm9vdDsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyB8d3wgPD0gMS8yCisgICAgICAgIHZhciBpID0gMDsKKyAgICAgICAgaWYgKCBtWzRdID4gbVswXSApCisgICAgICAgICAgaSA9IDE7CisgICAgICAgIGlmICggbVs4XSA+IG1baSozK2ldICkKKyAgICAgICAgICBpID0gMjsKKyAgICAgICAgdmFyIGogPSAoaSsxKSUzOworICAgICAgICB2YXIgayA9IChpKzIpJTM7CisgICAgICAgIAorICAgICAgICBmUm9vdCA9IE1hdGguc3FydChtW2kqMytpXS1tW2oqMytqXS1tW2sqMytrXSArIDEuMCk7CisgICAgICAgIG91dFtpXSA9IDAuNSAqIGZSb290OworICAgICAgICBmUm9vdCA9IDAuNSAvIGZSb290OworICAgICAgICBvdXRbM10gPSAobVtqKjMra10gLSBtW2sqMytqXSkgKiBmUm9vdDsKKyAgICAgICAgb3V0W2pdID0gKG1baiozK2ldICsgbVtpKjMral0pICogZlJvb3Q7CisgICAgICAgIG91dFtrXSA9IChtW2sqMytpXSArIG1baSozK2tdKSAqIGZSb290OworICAgIH0KKyAgICAKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgcXVhdGVuaW9uCisgKgorICogQHBhcmFtIHtxdWF0fSB2ZWMgdmVjdG9yIHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZworICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IKKyAqLworcXVhdC5zdHIgPSBmdW5jdGlvbiAoYSkgeworICAgIHJldHVybiAncXVhdCgnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnLCAnICsgYVszXSArICcpJzsKK307CisKK21vZHVsZS5leHBvcnRzID0gcXVhdDsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC9zcmMvZ2wtbWF0cml4L3ZlYzIuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWMyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllNzkwNTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWMyLmpzCkBAIC0wLDAgKzEsNTIzIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKK3ZhciBnbE1hdHJpeCA9IHJlcXVpcmUoIi4vY29tbW9uLmpzIik7CisKKy8qKgorICogQGNsYXNzIDIgRGltZW5zaW9uYWwgVmVjdG9yCisgKiBAbmFtZSB2ZWMyCisgKi8KK3ZhciB2ZWMyID0ge307CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldywgZW1wdHkgdmVjMgorICoKKyAqIEByZXR1cm5zIHt2ZWMyfSBhIG5ldyAyRCB2ZWN0b3IKKyAqLwordmVjMi5jcmVhdGUgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoMik7CisgICAgb3V0WzBdID0gMDsKKyAgICBvdXRbMV0gPSAwOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgdmVjMiBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIHZlY3RvcgorICoKKyAqIEBwYXJhbSB7dmVjMn0gYSB2ZWN0b3IgdG8gY2xvbmUKKyAqIEByZXR1cm5zIHt2ZWMyfSBhIG5ldyAyRCB2ZWN0b3IKKyAqLwordmVjMi5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKKyAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoMik7CisgICAgb3V0WzBdID0gYVswXTsKKyAgICBvdXRbMV0gPSBhWzFdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgdmVjMiBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXMKKyAqCisgKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAorICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKKyAqIEByZXR1cm5zIHt2ZWMyfSBhIG5ldyAyRCB2ZWN0b3IKKyAqLwordmVjMi5mcm9tVmFsdWVzID0gZnVuY3Rpb24oeCwgeSkgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSgyKTsKKyAgICBvdXRbMF0gPSB4OworICAgIG91dFsxXSA9IHk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHZlYzIgdG8gYW5vdGhlcgorICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHNvdXJjZSB2ZWN0b3IKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisgICAgb3V0WzBdID0gYVswXTsKKyAgICBvdXRbMV0gPSBhWzFdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFNldCB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzIgdG8gdGhlIGdpdmVuIHZhbHVlcworICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAorICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHkpIHsKKyAgICBvdXRbMF0gPSB4OworICAgIG91dFsxXSA9IHk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWRkcyB0d28gdmVjMidzCisgKgorICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLmFkZCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworICAgIG91dFswXSA9IGFbMF0gKyBiWzBdOworICAgIG91dFsxXSA9IGFbMV0gKyBiWzFdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFN1YnRyYWN0cyB2ZWN0b3IgYiBmcm9tIHZlY3RvciBhCisgKgorICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLnN1YnRyYWN0ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgb3V0WzBdID0gYVswXSAtIGJbMF07CisgICAgb3V0WzFdID0gYVsxXSAtIGJbMV07CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLnN1YnRyYWN0fQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzIuc3ViID0gdmVjMi5zdWJ0cmFjdDsKKworLyoqCisgKiBNdWx0aXBsaWVzIHR3byB2ZWMyJ3MKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisgKi8KK3ZlYzIubXVsdGlwbHkgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBhWzBdICogYlswXTsKKyAgICBvdXRbMV0gPSBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIubXVsdGlwbHl9CisgKiBAZnVuY3Rpb24KKyAqLwordmVjMi5tdWwgPSB2ZWMyLm11bHRpcGx5OworCisvKioKKyAqIERpdmlkZXMgdHdvIHZlYzIncworICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi5kaXZpZGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBhWzBdIC8gYlswXTsKKyAgICBvdXRbMV0gPSBhWzFdIC8gYlsxXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzIuZGl2aWRlfQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzIuZGl2ID0gdmVjMi5kaXZpZGU7CisKKy8qKgorICogUmV0dXJucyB0aGUgbWluaW11bSBvZiB0d28gdmVjMidzCisgKgorICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLm1pbiA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworICAgIG91dFswXSA9IE1hdGgubWluKGFbMF0sIGJbMF0pOworICAgIG91dFsxXSA9IE1hdGgubWluKGFbMV0sIGJbMV0pOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFJldHVybnMgdGhlIG1heGltdW0gb2YgdHdvIHZlYzIncworICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi5tYXggPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBNYXRoLm1heChhWzBdLCBiWzBdKTsKKyAgICBvdXRbMV0gPSBNYXRoLm1heChhWzFdLCBiWzFdKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTY2FsZXMgYSB2ZWMyIGJ5IGEgc2NhbGFyIG51bWJlcgorICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byBzY2FsZQorICogQHBhcmFtIHtOdW1iZXJ9IGIgYW1vdW50IHRvIHNjYWxlIHRoZSB2ZWN0b3IgYnkKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi5zY2FsZSA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworICAgIG91dFswXSA9IGFbMF0gKiBiOworICAgIG91dFsxXSA9IGFbMV0gKiBiOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEFkZHMgdHdvIHZlYzIncyBhZnRlciBzY2FsaW5nIHRoZSBzZWNvbmQgb3BlcmFuZCBieSBhIHNjYWxhciB2YWx1ZQorICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEBwYXJhbSB7TnVtYmVyfSBzY2FsZSB0aGUgYW1vdW50IHRvIHNjYWxlIGIgYnkgYmVmb3JlIGFkZGluZworICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLnNjYWxlQW5kQWRkID0gZnVuY3Rpb24ob3V0LCBhLCBiLCBzY2FsZSkgeworICAgIG91dFswXSA9IGFbMF0gKyAoYlswXSAqIHNjYWxlKTsKKyAgICBvdXRbMV0gPSBhWzFdICsgKGJbMV0gKiBzY2FsZSk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzIncworICoKKyAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge051bWJlcn0gZGlzdGFuY2UgYmV0d2VlbiBhIGFuZCBiCisgKi8KK3ZlYzIuZGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7CisgICAgdmFyIHggPSBiWzBdIC0gYVswXSwKKyAgICAgICAgeSA9IGJbMV0gLSBhWzFdOworICAgIHJldHVybiBNYXRoLnNxcnQoeCp4ICsgeSp5KTsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLmRpc3RhbmNlfQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzIuZGlzdCA9IHZlYzIuZGlzdGFuY2U7CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBldWNsaWRpYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjMidzCisgKgorICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7TnVtYmVyfSBzcXVhcmVkIGRpc3RhbmNlIGJldHdlZW4gYSBhbmQgYgorICovCit2ZWMyLnNxdWFyZWREaXN0YW5jZSA9IGZ1bmN0aW9uKGEsIGIpIHsKKyAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAorICAgICAgICB5ID0gYlsxXSAtIGFbMV07CisgICAgcmV0dXJuIHgqeCArIHkqeTsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLnNxdWFyZWREaXN0YW5jZX0KKyAqIEBmdW5jdGlvbgorICovCit2ZWMyLnNxckRpc3QgPSB2ZWMyLnNxdWFyZWREaXN0YW5jZTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSB2ZWMyCisgKgorICogQHBhcmFtIHt2ZWMyfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCisgKiBAcmV0dXJucyB7TnVtYmVyfSBsZW5ndGggb2YgYQorICovCit2ZWMyLmxlbmd0aCA9IGZ1bmN0aW9uIChhKSB7CisgICAgdmFyIHggPSBhWzBdLAorICAgICAgICB5ID0gYVsxXTsKKyAgICByZXR1cm4gTWF0aC5zcXJ0KHgqeCArIHkqeSk7Cit9OworCisvKioKKyAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMi5sZW5ndGh9CisgKiBAZnVuY3Rpb24KKyAqLwordmVjMi5sZW4gPSB2ZWMyLmxlbmd0aDsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBzcXVhcmVkIGxlbmd0aCBvZiBhIHZlYzIKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIGNhbGN1bGF0ZSBzcXVhcmVkIGxlbmd0aCBvZgorICogQHJldHVybnMge051bWJlcn0gc3F1YXJlZCBsZW5ndGggb2YgYQorICovCit2ZWMyLnNxdWFyZWRMZW5ndGggPSBmdW5jdGlvbiAoYSkgeworICAgIHZhciB4ID0gYVswXSwKKyAgICAgICAgeSA9IGFbMV07CisgICAgcmV0dXJuIHgqeCArIHkqeTsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWMyLnNxdWFyZWRMZW5ndGh9CisgKiBAZnVuY3Rpb24KKyAqLwordmVjMi5zcXJMZW4gPSB2ZWMyLnNxdWFyZWRMZW5ndGg7CisKKy8qKgorICogTmVnYXRlcyB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzIKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMyfSBhIHZlY3RvciB0byBuZWdhdGUKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi5uZWdhdGUgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICBvdXRbMF0gPSAtYVswXTsKKyAgICBvdXRbMV0gPSAtYVsxXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBpbnZlcnNlIG9mIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjMgorICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIGludmVydAorICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLmludmVyc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgb3V0WzBdID0gMS4wIC8gYVswXTsKKyAgb3V0WzFdID0gMS4wIC8gYVsxXTsKKyAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogTm9ybWFsaXplIGEgdmVjMgorICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIG5vcm1hbGl6ZQorICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIHZhciB4ID0gYVswXSwKKyAgICAgICAgeSA9IGFbMV07CisgICAgdmFyIGxlbiA9IHgqeCArIHkqeTsKKyAgICBpZiAobGVuID4gMCkgeworICAgICAgICAvL1RPRE86IGV2YWx1YXRlIHVzZSBvZiBnbG1faW52c3FydCBoZXJlPworICAgICAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KGxlbik7CisgICAgICAgIG91dFswXSA9IGFbMF0gKiBsZW47CisgICAgICAgIG91dFsxXSA9IGFbMV0gKiBsZW47CisgICAgfQorICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWMyJ3MKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGIKKyAqLwordmVjMi5kb3QgPSBmdW5jdGlvbiAoYSwgYikgeworICAgIHJldHVybiBhWzBdICogYlswXSArIGFbMV0gKiBiWzFdOworfTsKKworLyoqCisgKiBDb21wdXRlcyB0aGUgY3Jvc3MgcHJvZHVjdCBvZiB0d28gdmVjMidzCisgKiBOb3RlIHRoYXQgdGhlIGNyb3NzIHByb2R1Y3QgbXVzdCBieSBkZWZpbml0aW9uIHByb2R1Y2UgYSAzRCB2ZWN0b3IKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMyfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzJ9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzIuY3Jvc3MgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICB2YXIgeiA9IGFbMF0gKiBiWzFdIC0gYVsxXSAqIGJbMF07CisgICAgb3V0WzBdID0gb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSB6OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gdmVjMidzCisgKgorICogQHBhcmFtIHt2ZWMyfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjMn0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMyfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cworICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLmxlcnAgPSBmdW5jdGlvbiAob3V0LCBhLCBiLCB0KSB7CisgICAgdmFyIGF4ID0gYVswXSwKKyAgICAgICAgYXkgPSBhWzFdOworICAgIG91dFswXSA9IGF4ICsgdCAqIChiWzBdIC0gYXgpOworICAgIG91dFsxXSA9IGF5ICsgdCAqIChiWzFdIC0gYXkpOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEdlbmVyYXRlcyBhIHJhbmRvbSB2ZWN0b3Igd2l0aCB0aGUgZ2l2ZW4gc2NhbGUKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHtOdW1iZXJ9IFtzY2FsZV0gTGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yLiBJZiBvbW1pdHRlZCwgYSB1bml0IHZlY3RvciB3aWxsIGJlIHJldHVybmVkCisgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisgKi8KK3ZlYzIucmFuZG9tID0gZnVuY3Rpb24gKG91dCwgc2NhbGUpIHsKKyAgICBzY2FsZSA9IHNjYWxlIHx8IDEuMDsKKyAgICB2YXIgciA9IGdsTWF0cml4LlJBTkRPTSgpICogMi4wICogTWF0aC5QSTsKKyAgICBvdXRbMF0gPSBNYXRoLmNvcyhyKSAqIHNjYWxlOworICAgIG91dFsxXSA9IE1hdGguc2luKHIpICogc2NhbGU7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogVHJhbnNmb3JtcyB0aGUgdmVjMiB3aXRoIGEgbWF0MgorICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKyAqIEBwYXJhbSB7bWF0Mn0gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGgKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi50cmFuc2Zvcm1NYXQyID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7CisgICAgdmFyIHggPSBhWzBdLAorICAgICAgICB5ID0gYVsxXTsKKyAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bMl0gKiB5OworICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVszXSAqIHk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogVHJhbnNmb3JtcyB0aGUgdmVjMiB3aXRoIGEgbWF0MmQKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMyfSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCisgKiBAcGFyYW0ge21hdDJkfSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAorICogQHJldHVybnMge3ZlYzJ9IG91dAorICovCit2ZWMyLnRyYW5zZm9ybU1hdDJkID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7CisgICAgdmFyIHggPSBhWzBdLAorICAgICAgICB5ID0gYVsxXTsKKyAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bMl0gKiB5ICsgbVs0XTsKKyAgICBvdXRbMV0gPSBtWzFdICogeCArIG1bM10gKiB5ICsgbVs1XTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBUcmFuc2Zvcm1zIHRoZSB2ZWMyIHdpdGggYSBtYXQzCisgKiAzcmQgdmVjdG9yIGNvbXBvbmVudCBpcyBpbXBsaWNpdGx5ICcxJworICoKKyAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKyAqIEBwYXJhbSB7bWF0M30gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGgKKyAqIEByZXR1cm5zIHt2ZWMyfSBvdXQKKyAqLwordmVjMi50cmFuc2Zvcm1NYXQzID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7CisgICAgdmFyIHggPSBhWzBdLAorICAgICAgICB5ID0gYVsxXTsKKyAgICBvdXRbMF0gPSBtWzBdICogeCArIG1bM10gKiB5ICsgbVs2XTsKKyAgICBvdXRbMV0gPSBtWzFdICogeCArIG1bNF0gKiB5ICsgbVs3XTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBUcmFuc2Zvcm1zIHRoZSB2ZWMyIHdpdGggYSBtYXQ0CisgKiAzcmQgdmVjdG9yIGNvbXBvbmVudCBpcyBpbXBsaWNpdGx5ICcwJworICogNHRoIHZlY3RvciBjb21wb25lbnQgaXMgaW1wbGljaXRseSAnMScKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMyfSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCisgKiBAcGFyYW0ge21hdDR9IG0gbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCisgKiBAcmV0dXJucyB7dmVjMn0gb3V0CisgKi8KK3ZlYzIudHJhbnNmb3JtTWF0NCA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgeworICAgIHZhciB4ID0gYVswXSwgCisgICAgICAgIHkgPSBhWzFdOworICAgIG91dFswXSA9IG1bMF0gKiB4ICsgbVs0XSAqIHkgKyBtWzEyXTsKKyAgICBvdXRbMV0gPSBtWzFdICogeCArIG1bNV0gKiB5ICsgbVsxM107CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogUGVyZm9ybSBzb21lIG9wZXJhdGlvbiBvdmVyIGFuIGFycmF5IG9mIHZlYzJzLgorICoKKyAqIEBwYXJhbSB7QXJyYXl9IGEgdGhlIGFycmF5IG9mIHZlY3RvcnMgdG8gaXRlcmF0ZSBvdmVyCisgKiBAcGFyYW0ge051bWJlcn0gc3RyaWRlIE51bWJlciBvZiBlbGVtZW50cyBiZXR3ZWVuIHRoZSBzdGFydCBvZiBlYWNoIHZlYzIuIElmIDAgYXNzdW1lcyB0aWdodGx5IHBhY2tlZAorICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2YgZWxlbWVudHMgdG8gc2tpcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheQorICogQHBhcmFtIHtOdW1iZXJ9IGNvdW50IE51bWJlciBvZiB2ZWMycyB0byBpdGVyYXRlIG92ZXIuIElmIDAgaXRlcmF0ZXMgb3ZlciBlbnRpcmUgYXJyYXkKKyAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIEZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggdmVjdG9yIGluIHRoZSBhcnJheQorICogQHBhcmFtIHtPYmplY3R9IFthcmddIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyB0byBmbgorICogQHJldHVybnMge0FycmF5fSBhCisgKiBAZnVuY3Rpb24KKyAqLwordmVjMi5mb3JFYWNoID0gKGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZWMgPSB2ZWMyLmNyZWF0ZSgpOworCisgICAgcmV0dXJuIGZ1bmN0aW9uKGEsIHN0cmlkZSwgb2Zmc2V0LCBjb3VudCwgZm4sIGFyZykgeworICAgICAgICB2YXIgaSwgbDsKKyAgICAgICAgaWYoIXN0cmlkZSkgeworICAgICAgICAgICAgc3RyaWRlID0gMjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCFvZmZzZXQpIHsKKyAgICAgICAgICAgIG9mZnNldCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKGNvdW50KSB7CisgICAgICAgICAgICBsID0gTWF0aC5taW4oKGNvdW50ICogc3RyaWRlKSArIG9mZnNldCwgYS5sZW5ndGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbCA9IGEubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGkgPSBvZmZzZXQ7IGkgPCBsOyBpICs9IHN0cmlkZSkgeworICAgICAgICAgICAgdmVjWzBdID0gYVtpXTsgdmVjWzFdID0gYVtpKzFdOworICAgICAgICAgICAgZm4odmVjLCB2ZWMsIGFyZyk7CisgICAgICAgICAgICBhW2ldID0gdmVjWzBdOyBhW2krMV0gPSB2ZWNbMV07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBhOworICAgIH07Cit9KSgpOworCisvKioKKyAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB2ZWN0b3IKKyAqCisgKiBAcGFyYW0ge3ZlYzJ9IHZlYyB2ZWN0b3IgdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCisgKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZlY3RvcgorICovCit2ZWMyLnN0ciA9IGZ1bmN0aW9uIChhKSB7CisgICAgcmV0dXJuICd2ZWMyKCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnKSc7Cit9OworCittb2R1bGUuZXhwb3J0cyA9IHZlYzI7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWMzLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvdmVjMy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDY3NmZlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvdmVjMy5qcwpAQCAtMCwwICsxLDcwOSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLiAqLworCit2YXIgZ2xNYXRyaXggPSByZXF1aXJlKCIuL2NvbW1vbi5qcyIpOworCisvKioKKyAqIEBjbGFzcyAzIERpbWVuc2lvbmFsIFZlY3RvcgorICogQG5hbWUgdmVjMworICovCit2YXIgdmVjMyA9IHt9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHZlYzMKKyAqCisgKiBAcmV0dXJucyB7dmVjM30gYSBuZXcgM0QgdmVjdG9yCisgKi8KK3ZlYzMuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDMpOworICAgIG91dFswXSA9IDA7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgdmVjMyBpbml0aWFsaXplZCB3aXRoIHZhbHVlcyBmcm9tIGFuIGV4aXN0aW5nIHZlY3RvcgorICoKKyAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gY2xvbmUKKyAqIEByZXR1cm5zIHt2ZWMzfSBhIG5ldyAzRCB2ZWN0b3IKKyAqLwordmVjMy5jbG9uZSA9IGZ1bmN0aW9uKGEpIHsKKyAgICB2YXIgb3V0ID0gbmV3IGdsTWF0cml4LkFSUkFZX1RZUEUoMyk7CisgICAgb3V0WzBdID0gYVswXTsKKyAgICBvdXRbMV0gPSBhWzFdOworICAgIG91dFsyXSA9IGFbMl07CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyB2ZWMzIGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHZhbHVlcworICoKKyAqIEBwYXJhbSB7TnVtYmVyfSB4IFggY29tcG9uZW50CisgKiBAcGFyYW0ge051bWJlcn0geSBZIGNvbXBvbmVudAorICogQHBhcmFtIHtOdW1iZXJ9IHogWiBjb21wb25lbnQKKyAqIEByZXR1cm5zIHt2ZWMzfSBhIG5ldyAzRCB2ZWN0b3IKKyAqLwordmVjMy5mcm9tVmFsdWVzID0gZnVuY3Rpb24oeCwgeSwgeikgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSgzKTsKKyAgICBvdXRbMF0gPSB4OworICAgIG91dFsxXSA9IHk7CisgICAgb3V0WzJdID0gejsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDb3B5IHRoZSB2YWx1ZXMgZnJvbSBvbmUgdmVjMyB0byBhbm90aGVyCisgKgorICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYSB0aGUgc291cmNlIHZlY3RvcgorICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLmNvcHkgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICBvdXRbMF0gPSBhWzBdOworICAgIG91dFsxXSA9IGFbMV07CisgICAgb3V0WzJdID0gYVsyXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWMzIHRvIHRoZSBnaXZlbiB2YWx1ZXMKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKKyAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50CisgKiBAcGFyYW0ge051bWJlcn0geiBaIGNvbXBvbmVudAorICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLnNldCA9IGZ1bmN0aW9uKG91dCwgeCwgeSwgeikgeworICAgIG91dFswXSA9IHg7CisgICAgb3V0WzFdID0geTsKKyAgICBvdXRbMl0gPSB6OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEFkZHMgdHdvIHZlYzMncworICoKKyAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKyAqLwordmVjMy5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBhWzBdICsgYlswXTsKKyAgICBvdXRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICBvdXRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTdWJ0cmFjdHMgdmVjdG9yIGIgZnJvbSB2ZWN0b3IgYQorICoKKyAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKyAqLwordmVjMy5zdWJ0cmFjdCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworICAgIG91dFswXSA9IGFbMF0gLSBiWzBdOworICAgIG91dFsxXSA9IGFbMV0gLSBiWzFdOworICAgIG91dFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5zdWJ0cmFjdH0KKyAqIEBmdW5jdGlvbgorICovCit2ZWMzLnN1YiA9IHZlYzMuc3VidHJhY3Q7CisKKy8qKgorICogTXVsdGlwbGllcyB0d28gdmVjMydzCisgKgorICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgb3V0WzBdID0gYVswXSAqIGJbMF07CisgICAgb3V0WzFdID0gYVsxXSAqIGJbMV07CisgICAgb3V0WzJdID0gYVsyXSAqIGJbMl07CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLm11bHRpcGx5fQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzMubXVsID0gdmVjMy5tdWx0aXBseTsKKworLyoqCisgKiBEaXZpZGVzIHR3byB2ZWMzJ3MKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMuZGl2aWRlID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgb3V0WzBdID0gYVswXSAvIGJbMF07CisgICAgb3V0WzFdID0gYVsxXSAvIGJbMV07CisgICAgb3V0WzJdID0gYVsyXSAvIGJbMl07CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLmRpdmlkZX0KKyAqIEBmdW5jdGlvbgorICovCit2ZWMzLmRpdiA9IHZlYzMuZGl2aWRlOworCisvKioKKyAqIFJldHVybnMgdGhlIG1pbmltdW0gb2YgdHdvIHZlYzMncworICoKKyAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKyAqLwordmVjMy5taW4gPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBNYXRoLm1pbihhWzBdLCBiWzBdKTsKKyAgICBvdXRbMV0gPSBNYXRoLm1pbihhWzFdLCBiWzFdKTsKKyAgICBvdXRbMl0gPSBNYXRoLm1pbihhWzJdLCBiWzJdKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG9mIHR3byB2ZWMzJ3MKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMubWF4ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgb3V0WzBdID0gTWF0aC5tYXgoYVswXSwgYlswXSk7CisgICAgb3V0WzFdID0gTWF0aC5tYXgoYVsxXSwgYlsxXSk7CisgICAgb3V0WzJdID0gTWF0aC5tYXgoYVsyXSwgYlsyXSk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogU2NhbGVzIGEgdmVjMyBieSBhIHNjYWxhciBudW1iZXIKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSB2ZWN0b3IgdG8gc2NhbGUKKyAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5CisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBhWzBdICogYjsKKyAgICBvdXRbMV0gPSBhWzFdICogYjsKKyAgICBvdXRbMl0gPSBhWzJdICogYjsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBZGRzIHR3byB2ZWMzJ3MgYWZ0ZXIgc2NhbGluZyB0aGUgc2Vjb25kIG9wZXJhbmQgYnkgYSBzY2FsYXIgdmFsdWUKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcGFyYW0ge051bWJlcn0gc2NhbGUgdGhlIGFtb3VudCB0byBzY2FsZSBiIGJ5IGJlZm9yZSBhZGRpbmcKKyAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKyAqLwordmVjMy5zY2FsZUFuZEFkZCA9IGZ1bmN0aW9uKG91dCwgYSwgYiwgc2NhbGUpIHsKKyAgICBvdXRbMF0gPSBhWzBdICsgKGJbMF0gKiBzY2FsZSk7CisgICAgb3V0WzFdID0gYVsxXSArIChiWzFdICogc2NhbGUpOworICAgIG91dFsyXSA9IGFbMl0gKyAoYlsyXSAqIHNjYWxlKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBldWNsaWRpYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjMydzCisgKgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7TnVtYmVyfSBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKKyAqLwordmVjMy5kaXN0YW5jZSA9IGZ1bmN0aW9uKGEsIGIpIHsKKyAgICB2YXIgeCA9IGJbMF0gLSBhWzBdLAorICAgICAgICB5ID0gYlsxXSAtIGFbMV0sCisgICAgICAgIHogPSBiWzJdIC0gYVsyXTsKKyAgICByZXR1cm4gTWF0aC5zcXJ0KHgqeCArIHkqeSArIHoqeik7Cit9OworCisvKioKKyAqIEFsaWFzIGZvciB7QGxpbmsgdmVjMy5kaXN0YW5jZX0KKyAqIEBmdW5jdGlvbgorICovCit2ZWMzLmRpc3QgPSB2ZWMzLmRpc3RhbmNlOworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzMncworICoKKyAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge051bWJlcn0gc3F1YXJlZCBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKKyAqLwordmVjMy5zcXVhcmVkRGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7CisgICAgdmFyIHggPSBiWzBdIC0gYVswXSwKKyAgICAgICAgeSA9IGJbMV0gLSBhWzFdLAorICAgICAgICB6ID0gYlsyXSAtIGFbMl07CisgICAgcmV0dXJuIHgqeCArIHkqeSArIHoqejsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWMzLnNxdWFyZWREaXN0YW5jZX0KKyAqIEBmdW5jdGlvbgorICovCit2ZWMzLnNxckRpc3QgPSB2ZWMzLnNxdWFyZWREaXN0YW5jZTsKKworLyoqCisgKiBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSB2ZWMzCisgKgorICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgbGVuZ3RoIG9mCisgKiBAcmV0dXJucyB7TnVtYmVyfSBsZW5ndGggb2YgYQorICovCit2ZWMzLmxlbmd0aCA9IGZ1bmN0aW9uIChhKSB7CisgICAgdmFyIHggPSBhWzBdLAorICAgICAgICB5ID0gYVsxXSwKKyAgICAgICAgeiA9IGFbMl07CisgICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkgKyB6KnopOworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMubGVuZ3RofQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzMubGVuID0gdmVjMy5sZW5ndGg7CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBsZW5ndGggb2YgYSB2ZWMzCisgKgorICogQHBhcmFtIHt2ZWMzfSBhIHZlY3RvciB0byBjYWxjdWxhdGUgc3F1YXJlZCBsZW5ndGggb2YKKyAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgbGVuZ3RoIG9mIGEKKyAqLwordmVjMy5zcXVhcmVkTGVuZ3RoID0gZnVuY3Rpb24gKGEpIHsKKyAgICB2YXIgeCA9IGFbMF0sCisgICAgICAgIHkgPSBhWzFdLAorICAgICAgICB6ID0gYVsyXTsKKyAgICByZXR1cm4geCp4ICsgeSp5ICsgeip6OworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzMuc3F1YXJlZExlbmd0aH0KKyAqIEBmdW5jdGlvbgorICovCit2ZWMzLnNxckxlbiA9IHZlYzMuc3F1YXJlZExlbmd0aDsKKworLyoqCisgKiBOZWdhdGVzIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjMworICoKKyAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzN9IGEgdmVjdG9yIHRvIG5lZ2F0ZQorICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLm5lZ2F0ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIG91dFswXSA9IC1hWzBdOworICAgIG91dFsxXSA9IC1hWzFdOworICAgIG91dFsyXSA9IC1hWzJdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFJldHVybnMgdGhlIGludmVyc2Ugb2YgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWMzCisgKgorICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gaW52ZXJ0CisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMuaW52ZXJzZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICBvdXRbMF0gPSAxLjAgLyBhWzBdOworICBvdXRbMV0gPSAxLjAgLyBhWzFdOworICBvdXRbMl0gPSAxLjAgLyBhWzJdOworICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBOb3JtYWxpemUgYSB2ZWMzCisgKgorICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYSB2ZWN0b3IgdG8gbm9ybWFsaXplCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMubm9ybWFsaXplID0gZnVuY3Rpb24ob3V0LCBhKSB7CisgICAgdmFyIHggPSBhWzBdLAorICAgICAgICB5ID0gYVsxXSwKKyAgICAgICAgeiA9IGFbMl07CisgICAgdmFyIGxlbiA9IHgqeCArIHkqeSArIHoqejsKKyAgICBpZiAobGVuID4gMCkgeworICAgICAgICAvL1RPRE86IGV2YWx1YXRlIHVzZSBvZiBnbG1faW52c3FydCBoZXJlPworICAgICAgICBsZW4gPSAxIC8gTWF0aC5zcXJ0KGxlbik7CisgICAgICAgIG91dFswXSA9IGFbMF0gKiBsZW47CisgICAgICAgIG91dFsxXSA9IGFbMV0gKiBsZW47CisgICAgICAgIG91dFsyXSA9IGFbMl0gKiBsZW47CisgICAgfQorICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWMzJ3MKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGIKKyAqLwordmVjMy5kb3QgPSBmdW5jdGlvbiAoYSwgYikgeworICAgIHJldHVybiBhWzBdICogYlswXSArIGFbMV0gKiBiWzFdICsgYVsyXSAqIGJbMl07Cit9OworCisvKioKKyAqIENvbXB1dGVzIHRoZSBjcm9zcyBwcm9kdWN0IG9mIHR3byB2ZWMzJ3MKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMuY3Jvc3MgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICB2YXIgYXggPSBhWzBdLCBheSA9IGFbMV0sIGF6ID0gYVsyXSwKKyAgICAgICAgYnggPSBiWzBdLCBieSA9IGJbMV0sIGJ6ID0gYlsyXTsKKworICAgIG91dFswXSA9IGF5ICogYnogLSBheiAqIGJ5OworICAgIG91dFsxXSA9IGF6ICogYnggLSBheCAqIGJ6OworICAgIG91dFsyXSA9IGF4ICogYnkgLSBheSAqIGJ4OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFBlcmZvcm1zIGEgbGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiB0d28gdmVjMydzCisgKgorICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMzfSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cworICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLmxlcnAgPSBmdW5jdGlvbiAob3V0LCBhLCBiLCB0KSB7CisgICAgdmFyIGF4ID0gYVswXSwKKyAgICAgICAgYXkgPSBhWzFdLAorICAgICAgICBheiA9IGFbMl07CisgICAgb3V0WzBdID0gYXggKyB0ICogKGJbMF0gLSBheCk7CisgICAgb3V0WzFdID0gYXkgKyB0ICogKGJbMV0gLSBheSk7CisgICAgb3V0WzJdID0gYXogKyB0ICogKGJbMl0gLSBheik7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogUGVyZm9ybXMgYSBoZXJtaXRlIGludGVycG9sYXRpb24gd2l0aCB0d28gY29udHJvbCBwb2ludHMKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzN9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzN9IGMgdGhlIHRoaXJkIG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjM30gZCB0aGUgZm91cnRoIG9wZXJhbmQKKyAqIEBwYXJhbSB7TnVtYmVyfSB0IGludGVycG9sYXRpb24gYW1vdW50IGJldHdlZW4gdGhlIHR3byBpbnB1dHMKKyAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKyAqLwordmVjMy5oZXJtaXRlID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgYywgZCwgdCkgeworICB2YXIgZmFjdG9yVGltZXMyID0gdCAqIHQsCisgICAgICBmYWN0b3IxID0gZmFjdG9yVGltZXMyICogKDIgKiB0IC0gMykgKyAxLAorICAgICAgZmFjdG9yMiA9IGZhY3RvclRpbWVzMiAqICh0IC0gMikgKyB0LAorICAgICAgZmFjdG9yMyA9IGZhY3RvclRpbWVzMiAqICh0IC0gMSksCisgICAgICBmYWN0b3I0ID0gZmFjdG9yVGltZXMyICogKDMgLSAyICogdCk7CisgIAorICBvdXRbMF0gPSBhWzBdICogZmFjdG9yMSArIGJbMF0gKiBmYWN0b3IyICsgY1swXSAqIGZhY3RvcjMgKyBkWzBdICogZmFjdG9yNDsKKyAgb3V0WzFdID0gYVsxXSAqIGZhY3RvcjEgKyBiWzFdICogZmFjdG9yMiArIGNbMV0gKiBmYWN0b3IzICsgZFsxXSAqIGZhY3RvcjQ7CisgIG91dFsyXSA9IGFbMl0gKiBmYWN0b3IxICsgYlsyXSAqIGZhY3RvcjIgKyBjWzJdICogZmFjdG9yMyArIGRbMl0gKiBmYWN0b3I0OworICAKKyAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogUGVyZm9ybXMgYSBiZXppZXIgaW50ZXJwb2xhdGlvbiB3aXRoIHR3byBjb250cm9sIHBvaW50cworICoKKyAqIEBwYXJhbSB7dmVjM30gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzN9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjM30gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjM30gYyB0aGUgdGhpcmQgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMzfSBkIHRoZSBmb3VydGggb3BlcmFuZAorICogQHBhcmFtIHtOdW1iZXJ9IHQgaW50ZXJwb2xhdGlvbiBhbW91bnQgYmV0d2VlbiB0aGUgdHdvIGlucHV0cworICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLmJlemllciA9IGZ1bmN0aW9uIChvdXQsIGEsIGIsIGMsIGQsIHQpIHsKKyAgdmFyIGludmVyc2VGYWN0b3IgPSAxIC0gdCwKKyAgICAgIGludmVyc2VGYWN0b3JUaW1lc1R3byA9IGludmVyc2VGYWN0b3IgKiBpbnZlcnNlRmFjdG9yLAorICAgICAgZmFjdG9yVGltZXMyID0gdCAqIHQsCisgICAgICBmYWN0b3IxID0gaW52ZXJzZUZhY3RvclRpbWVzVHdvICogaW52ZXJzZUZhY3RvciwKKyAgICAgIGZhY3RvcjIgPSAzICogdCAqIGludmVyc2VGYWN0b3JUaW1lc1R3bywKKyAgICAgIGZhY3RvcjMgPSAzICogZmFjdG9yVGltZXMyICogaW52ZXJzZUZhY3RvciwKKyAgICAgIGZhY3RvcjQgPSBmYWN0b3JUaW1lczIgKiB0OworICAKKyAgb3V0WzBdID0gYVswXSAqIGZhY3RvcjEgKyBiWzBdICogZmFjdG9yMiArIGNbMF0gKiBmYWN0b3IzICsgZFswXSAqIGZhY3RvcjQ7CisgIG91dFsxXSA9IGFbMV0gKiBmYWN0b3IxICsgYlsxXSAqIGZhY3RvcjIgKyBjWzFdICogZmFjdG9yMyArIGRbMV0gKiBmYWN0b3I0OworICBvdXRbMl0gPSBhWzJdICogZmFjdG9yMSArIGJbMl0gKiBmYWN0b3IyICsgY1syXSAqIGZhY3RvcjMgKyBkWzJdICogZmFjdG9yNDsKKyAgCisgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEdlbmVyYXRlcyBhIHJhbmRvbSB2ZWN0b3Igd2l0aCB0aGUgZ2l2ZW4gc2NhbGUKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHtOdW1iZXJ9IFtzY2FsZV0gTGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yLiBJZiBvbW1pdHRlZCwgYSB1bml0IHZlY3RvciB3aWxsIGJlIHJldHVybmVkCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMucmFuZG9tID0gZnVuY3Rpb24gKG91dCwgc2NhbGUpIHsKKyAgICBzY2FsZSA9IHNjYWxlIHx8IDEuMDsKKworICAgIHZhciByID0gZ2xNYXRyaXguUkFORE9NKCkgKiAyLjAgKiBNYXRoLlBJOworICAgIHZhciB6ID0gKGdsTWF0cml4LlJBTkRPTSgpICogMi4wKSAtIDEuMDsKKyAgICB2YXIgelNjYWxlID0gTWF0aC5zcXJ0KDEuMC16KnopICogc2NhbGU7CisKKyAgICBvdXRbMF0gPSBNYXRoLmNvcyhyKSAqIHpTY2FsZTsKKyAgICBvdXRbMV0gPSBNYXRoLnNpbihyKSAqIHpTY2FsZTsKKyAgICBvdXRbMl0gPSB6ICogc2NhbGU7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogVHJhbnNmb3JtcyB0aGUgdmVjMyB3aXRoIGEgbWF0NC4KKyAqIDR0aCB2ZWN0b3IgY29tcG9uZW50IGlzIGltcGxpY2l0bHkgJzEnCisgKgorICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQorICogQHBhcmFtIHttYXQ0fSBtIG1hdHJpeCB0byB0cmFuc2Zvcm0gd2l0aAorICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLnRyYW5zZm9ybU1hdDQgPSBmdW5jdGlvbihvdXQsIGEsIG0pIHsKKyAgICB2YXIgeCA9IGFbMF0sIHkgPSBhWzFdLCB6ID0gYVsyXSwKKyAgICAgICAgdyA9IG1bM10gKiB4ICsgbVs3XSAqIHkgKyBtWzExXSAqIHogKyBtWzE1XTsKKyAgICB3ID0gdyB8fCAxLjA7CisgICAgb3V0WzBdID0gKG1bMF0gKiB4ICsgbVs0XSAqIHkgKyBtWzhdICogeiArIG1bMTJdKSAvIHc7CisgICAgb3V0WzFdID0gKG1bMV0gKiB4ICsgbVs1XSAqIHkgKyBtWzldICogeiArIG1bMTNdKSAvIHc7CisgICAgb3V0WzJdID0gKG1bMl0gKiB4ICsgbVs2XSAqIHkgKyBtWzEwXSAqIHogKyBtWzE0XSkgLyB3OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFRyYW5zZm9ybXMgdGhlIHZlYzMgd2l0aCBhIG1hdDMuCisgKgorICogQHBhcmFtIHt2ZWMzfSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjM30gYSB0aGUgdmVjdG9yIHRvIHRyYW5zZm9ybQorICogQHBhcmFtIHttYXQ0fSBtIHRoZSAzeDMgbWF0cml4IHRvIHRyYW5zZm9ybSB3aXRoCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMudHJhbnNmb3JtTWF0MyA9IGZ1bmN0aW9uKG91dCwgYSwgbSkgeworICAgIHZhciB4ID0gYVswXSwgeSA9IGFbMV0sIHogPSBhWzJdOworICAgIG91dFswXSA9IHggKiBtWzBdICsgeSAqIG1bM10gKyB6ICogbVs2XTsKKyAgICBvdXRbMV0gPSB4ICogbVsxXSArIHkgKiBtWzRdICsgeiAqIG1bN107CisgICAgb3V0WzJdID0geCAqIG1bMl0gKyB5ICogbVs1XSArIHogKiBtWzhdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFRyYW5zZm9ybXMgdGhlIHZlYzMgd2l0aCBhIHF1YXQKKyAqCisgKiBAcGFyYW0ge3ZlYzN9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWMzfSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCisgKiBAcGFyYW0ge3F1YXR9IHEgcXVhdGVybmlvbiB0byB0cmFuc2Zvcm0gd2l0aAorICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLnRyYW5zZm9ybVF1YXQgPSBmdW5jdGlvbihvdXQsIGEsIHEpIHsKKyAgICAvLyBiZW5jaG1hcmtzOiBodHRwOi8vanNwZXJmLmNvbS9xdWF0ZXJuaW9uLXRyYW5zZm9ybS12ZWMzLWltcGxlbWVudGF0aW9ucworCisgICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl0sCisgICAgICAgIHF4ID0gcVswXSwgcXkgPSBxWzFdLCBxeiA9IHFbMl0sIHF3ID0gcVszXSwKKworICAgICAgICAvLyBjYWxjdWxhdGUgcXVhdCAqIHZlYworICAgICAgICBpeCA9IHF3ICogeCArIHF5ICogeiAtIHF6ICogeSwKKyAgICAgICAgaXkgPSBxdyAqIHkgKyBxeiAqIHggLSBxeCAqIHosCisgICAgICAgIGl6ID0gcXcgKiB6ICsgcXggKiB5IC0gcXkgKiB4LAorICAgICAgICBpdyA9IC1xeCAqIHggLSBxeSAqIHkgLSBxeiAqIHo7CisKKyAgICAvLyBjYWxjdWxhdGUgcmVzdWx0ICogaW52ZXJzZSBxdWF0CisgICAgb3V0WzBdID0gaXggKiBxdyArIGl3ICogLXF4ICsgaXkgKiAtcXogLSBpeiAqIC1xeTsKKyAgICBvdXRbMV0gPSBpeSAqIHF3ICsgaXcgKiAtcXkgKyBpeiAqIC1xeCAtIGl4ICogLXF6OworICAgIG91dFsyXSA9IGl6ICogcXcgKyBpdyAqIC1xeiArIGl4ICogLXF5IC0gaXkgKiAtcXg7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogUm90YXRlIGEgM0QgdmVjdG9yIGFyb3VuZCB0aGUgeC1heGlzCisgKiBAcGFyYW0ge3ZlYzN9IG91dCBUaGUgcmVjZWl2aW5nIHZlYzMKKyAqIEBwYXJhbSB7dmVjM30gYSBUaGUgdmVjMyBwb2ludCB0byByb3RhdGUKKyAqIEBwYXJhbSB7dmVjM30gYiBUaGUgb3JpZ2luIG9mIHRoZSByb3RhdGlvbgorICogQHBhcmFtIHtOdW1iZXJ9IGMgVGhlIGFuZ2xlIG9mIHJvdGF0aW9uCisgKiBAcmV0dXJucyB7dmVjM30gb3V0CisgKi8KK3ZlYzMucm90YXRlWCA9IGZ1bmN0aW9uKG91dCwgYSwgYiwgYyl7CisgICB2YXIgcCA9IFtdLCByPVtdOworCSAgLy9UcmFuc2xhdGUgcG9pbnQgdG8gdGhlIG9yaWdpbgorCSAgcFswXSA9IGFbMF0gLSBiWzBdOworCSAgcFsxXSA9IGFbMV0gLSBiWzFdOworICAJcFsyXSA9IGFbMl0gLSBiWzJdOworCisJICAvL3BlcmZvcm0gcm90YXRpb24KKwkgIHJbMF0gPSBwWzBdOworCSAgclsxXSA9IHBbMV0qTWF0aC5jb3MoYykgLSBwWzJdKk1hdGguc2luKGMpOworCSAgclsyXSA9IHBbMV0qTWF0aC5zaW4oYykgKyBwWzJdKk1hdGguY29zKGMpOworCisJICAvL3RyYW5zbGF0ZSB0byBjb3JyZWN0IHBvc2l0aW9uCisJICBvdXRbMF0gPSByWzBdICsgYlswXTsKKwkgIG91dFsxXSA9IHJbMV0gKyBiWzFdOworCSAgb3V0WzJdID0gclsyXSArIGJbMl07CisKKyAgCXJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFJvdGF0ZSBhIDNEIHZlY3RvciBhcm91bmQgdGhlIHktYXhpcworICogQHBhcmFtIHt2ZWMzfSBvdXQgVGhlIHJlY2VpdmluZyB2ZWMzCisgKiBAcGFyYW0ge3ZlYzN9IGEgVGhlIHZlYzMgcG9pbnQgdG8gcm90YXRlCisgKiBAcGFyYW0ge3ZlYzN9IGIgVGhlIG9yaWdpbiBvZiB0aGUgcm90YXRpb24KKyAqIEBwYXJhbSB7TnVtYmVyfSBjIFRoZSBhbmdsZSBvZiByb3RhdGlvbgorICogQHJldHVybnMge3ZlYzN9IG91dAorICovCit2ZWMzLnJvdGF0ZVkgPSBmdW5jdGlvbihvdXQsIGEsIGIsIGMpeworICAJdmFyIHAgPSBbXSwgcj1bXTsKKyAgCS8vVHJhbnNsYXRlIHBvaW50IHRvIHRoZSBvcmlnaW4KKyAgCXBbMF0gPSBhWzBdIC0gYlswXTsKKyAgCXBbMV0gPSBhWzFdIC0gYlsxXTsKKyAgCXBbMl0gPSBhWzJdIC0gYlsyXTsKKyAgCisgIAkvL3BlcmZvcm0gcm90YXRpb24KKyAgCXJbMF0gPSBwWzJdKk1hdGguc2luKGMpICsgcFswXSpNYXRoLmNvcyhjKTsKKyAgCXJbMV0gPSBwWzFdOworICAJclsyXSA9IHBbMl0qTWF0aC5jb3MoYykgLSBwWzBdKk1hdGguc2luKGMpOworICAKKyAgCS8vdHJhbnNsYXRlIHRvIGNvcnJlY3QgcG9zaXRpb24KKyAgCW91dFswXSA9IHJbMF0gKyBiWzBdOworICAJb3V0WzFdID0gclsxXSArIGJbMV07CisgIAlvdXRbMl0gPSByWzJdICsgYlsyXTsKKyAgCisgIAlyZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSb3RhdGUgYSAzRCB2ZWN0b3IgYXJvdW5kIHRoZSB6LWF4aXMKKyAqIEBwYXJhbSB7dmVjM30gb3V0IFRoZSByZWNlaXZpbmcgdmVjMworICogQHBhcmFtIHt2ZWMzfSBhIFRoZSB2ZWMzIHBvaW50IHRvIHJvdGF0ZQorICogQHBhcmFtIHt2ZWMzfSBiIFRoZSBvcmlnaW4gb2YgdGhlIHJvdGF0aW9uCisgKiBAcGFyYW0ge051bWJlcn0gYyBUaGUgYW5nbGUgb2Ygcm90YXRpb24KKyAqIEByZXR1cm5zIHt2ZWMzfSBvdXQKKyAqLwordmVjMy5yb3RhdGVaID0gZnVuY3Rpb24ob3V0LCBhLCBiLCBjKXsKKyAgCXZhciBwID0gW10sIHI9W107CisgIAkvL1RyYW5zbGF0ZSBwb2ludCB0byB0aGUgb3JpZ2luCisgIAlwWzBdID0gYVswXSAtIGJbMF07CisgIAlwWzFdID0gYVsxXSAtIGJbMV07CisgIAlwWzJdID0gYVsyXSAtIGJbMl07CisgIAorICAJLy9wZXJmb3JtIHJvdGF0aW9uCisgIAlyWzBdID0gcFswXSpNYXRoLmNvcyhjKSAtIHBbMV0qTWF0aC5zaW4oYyk7CisgIAlyWzFdID0gcFswXSpNYXRoLnNpbihjKSArIHBbMV0qTWF0aC5jb3MoYyk7CisgIAlyWzJdID0gcFsyXTsKKyAgCisgIAkvL3RyYW5zbGF0ZSB0byBjb3JyZWN0IHBvc2l0aW9uCisgIAlvdXRbMF0gPSByWzBdICsgYlswXTsKKyAgCW91dFsxXSA9IHJbMV0gKyBiWzFdOworICAJb3V0WzJdID0gclsyXSArIGJbMl07CisgIAorICAJcmV0dXJuIG91dDsKK307CisKKy8qKgorICogUGVyZm9ybSBzb21lIG9wZXJhdGlvbiBvdmVyIGFuIGFycmF5IG9mIHZlYzNzLgorICoKKyAqIEBwYXJhbSB7QXJyYXl9IGEgdGhlIGFycmF5IG9mIHZlY3RvcnMgdG8gaXRlcmF0ZSBvdmVyCisgKiBAcGFyYW0ge051bWJlcn0gc3RyaWRlIE51bWJlciBvZiBlbGVtZW50cyBiZXR3ZWVuIHRoZSBzdGFydCBvZiBlYWNoIHZlYzMuIElmIDAgYXNzdW1lcyB0aWdodGx5IHBhY2tlZAorICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2YgZWxlbWVudHMgdG8gc2tpcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheQorICogQHBhcmFtIHtOdW1iZXJ9IGNvdW50IE51bWJlciBvZiB2ZWMzcyB0byBpdGVyYXRlIG92ZXIuIElmIDAgaXRlcmF0ZXMgb3ZlciBlbnRpcmUgYXJyYXkKKyAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIEZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggdmVjdG9yIGluIHRoZSBhcnJheQorICogQHBhcmFtIHtPYmplY3R9IFthcmddIGFkZGl0aW9uYWwgYXJndW1lbnQgdG8gcGFzcyB0byBmbgorICogQHJldHVybnMge0FycmF5fSBhCisgKiBAZnVuY3Rpb24KKyAqLwordmVjMy5mb3JFYWNoID0gKGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZWMgPSB2ZWMzLmNyZWF0ZSgpOworCisgICAgcmV0dXJuIGZ1bmN0aW9uKGEsIHN0cmlkZSwgb2Zmc2V0LCBjb3VudCwgZm4sIGFyZykgeworICAgICAgICB2YXIgaSwgbDsKKyAgICAgICAgaWYoIXN0cmlkZSkgeworICAgICAgICAgICAgc3RyaWRlID0gMzsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCFvZmZzZXQpIHsKKyAgICAgICAgICAgIG9mZnNldCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKGNvdW50KSB7CisgICAgICAgICAgICBsID0gTWF0aC5taW4oKGNvdW50ICogc3RyaWRlKSArIG9mZnNldCwgYS5sZW5ndGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbCA9IGEubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGkgPSBvZmZzZXQ7IGkgPCBsOyBpICs9IHN0cmlkZSkgeworICAgICAgICAgICAgdmVjWzBdID0gYVtpXTsgdmVjWzFdID0gYVtpKzFdOyB2ZWNbMl0gPSBhW2krMl07CisgICAgICAgICAgICBmbih2ZWMsIHZlYywgYXJnKTsKKyAgICAgICAgICAgIGFbaV0gPSB2ZWNbMF07IGFbaSsxXSA9IHZlY1sxXTsgYVtpKzJdID0gdmVjWzJdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYTsKKyAgICB9OworfSkoKTsKKworLyoqCisgKiBHZXQgdGhlIGFuZ2xlIGJldHdlZW4gdHdvIDNEIHZlY3RvcnMKKyAqIEBwYXJhbSB7dmVjM30gYSBUaGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWMzfSBiIFRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge051bWJlcn0gVGhlIGFuZ2xlIGluIHJhZGlhbnMKKyAqLwordmVjMy5hbmdsZSA9IGZ1bmN0aW9uKGEsIGIpIHsKKyAgIAorICAgIHZhciB0ZW1wQSA9IHZlYzMuZnJvbVZhbHVlcyhhWzBdLCBhWzFdLCBhWzJdKTsKKyAgICB2YXIgdGVtcEIgPSB2ZWMzLmZyb21WYWx1ZXMoYlswXSwgYlsxXSwgYlsyXSk7CisgCisgICAgdmVjMy5ub3JtYWxpemUodGVtcEEsIHRlbXBBKTsKKyAgICB2ZWMzLm5vcm1hbGl6ZSh0ZW1wQiwgdGVtcEIpOworIAorICAgIHZhciBjb3NpbmUgPSB2ZWMzLmRvdCh0ZW1wQSwgdGVtcEIpOworCisgICAgaWYoY29zaW5lID4gMS4wKXsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE1hdGguYWNvcyhjb3NpbmUpOworICAgIH0gICAgIAorfTsKKworLyoqCisgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgdmVjdG9yCisgKgorICogQHBhcmFtIHt2ZWMzfSB2ZWMgdmVjdG9yIHRvIHJlcHJlc2VudCBhcyBhIHN0cmluZworICogQHJldHVybnMge1N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2ZWN0b3IKKyAqLwordmVjMy5zdHIgPSBmdW5jdGlvbiAoYSkgeworICAgIHJldHVybiAndmVjMygnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnKSc7Cit9OworCittb2R1bGUuZXhwb3J0cyA9IHZlYzM7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvc3JjL2dsLW1hdHJpeC92ZWM0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvdmVjNC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMThkMTc0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3NyYy9nbC1tYXRyaXgvdmVjNC5qcwpAQCAtMCwwICsxLDUzNyBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLiAqLworCit2YXIgZ2xNYXRyaXggPSByZXF1aXJlKCIuL2NvbW1vbi5qcyIpOworCisvKioKKyAqIEBjbGFzcyA0IERpbWVuc2lvbmFsIFZlY3RvcgorICogQG5hbWUgdmVjNAorICovCit2YXIgdmVjNCA9IHt9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHZlYzQKKyAqCisgKiBAcmV0dXJucyB7dmVjNH0gYSBuZXcgNEQgdmVjdG9yCisgKi8KK3ZlYzQuY3JlYXRlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDQpOworICAgIG91dFswXSA9IDA7CisgICAgb3V0WzFdID0gMDsKKyAgICBvdXRbMl0gPSAwOworICAgIG91dFszXSA9IDA7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIG5ldyB2ZWM0IGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgdmVjdG9yCisgKgorICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBjbG9uZQorICogQHJldHVybnMge3ZlYzR9IGEgbmV3IDREIHZlY3RvcgorICovCit2ZWM0LmNsb25lID0gZnVuY3Rpb24oYSkgeworICAgIHZhciBvdXQgPSBuZXcgZ2xNYXRyaXguQVJSQVlfVFlQRSg0KTsKKyAgICBvdXRbMF0gPSBhWzBdOworICAgIG91dFsxXSA9IGFbMV07CisgICAgb3V0WzJdID0gYVsyXTsKKyAgICBvdXRbM10gPSBhWzNdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBuZXcgdmVjNCBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXMKKyAqCisgKiBAcGFyYW0ge051bWJlcn0geCBYIGNvbXBvbmVudAorICogQHBhcmFtIHtOdW1iZXJ9IHkgWSBjb21wb25lbnQKKyAqIEBwYXJhbSB7TnVtYmVyfSB6IFogY29tcG9uZW50CisgKiBAcGFyYW0ge051bWJlcn0gdyBXIGNvbXBvbmVudAorICogQHJldHVybnMge3ZlYzR9IGEgbmV3IDREIHZlY3RvcgorICovCit2ZWM0LmZyb21WYWx1ZXMgPSBmdW5jdGlvbih4LCB5LCB6LCB3KSB7CisgICAgdmFyIG91dCA9IG5ldyBnbE1hdHJpeC5BUlJBWV9UWVBFKDQpOworICAgIG91dFswXSA9IHg7CisgICAgb3V0WzFdID0geTsKKyAgICBvdXRbMl0gPSB6OworICAgIG91dFszXSA9IHc7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHZlYzQgdG8gYW5vdGhlcgorICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIHNvdXJjZSB2ZWN0b3IKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5jb3B5ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisgICAgb3V0WzBdID0gYVswXTsKKyAgICBvdXRbMV0gPSBhWzFdOworICAgIG91dFsyXSA9IGFbMl07CisgICAgb3V0WzNdID0gYVszXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSB2ZWM0IHRvIHRoZSBnaXZlbiB2YWx1ZXMKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHtOdW1iZXJ9IHggWCBjb21wb25lbnQKKyAqIEBwYXJhbSB7TnVtYmVyfSB5IFkgY29tcG9uZW50CisgKiBAcGFyYW0ge051bWJlcn0geiBaIGNvbXBvbmVudAorICogQHBhcmFtIHtOdW1iZXJ9IHcgVyBjb21wb25lbnQKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5zZXQgPSBmdW5jdGlvbihvdXQsIHgsIHksIHosIHcpIHsKKyAgICBvdXRbMF0gPSB4OworICAgIG91dFsxXSA9IHk7CisgICAgb3V0WzJdID0gejsKKyAgICBvdXRbM10gPSB3OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEFkZHMgdHdvIHZlYzQncworICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5hZGQgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBhWzBdICsgYlswXTsKKyAgICBvdXRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICBvdXRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICBvdXRbM10gPSBhWzNdICsgYlszXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBTdWJ0cmFjdHMgdmVjdG9yIGIgZnJvbSB2ZWN0b3IgYQorICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5zdWJ0cmFjdCA9IGZ1bmN0aW9uKG91dCwgYSwgYikgeworICAgIG91dFswXSA9IGFbMF0gLSBiWzBdOworICAgIG91dFsxXSA9IGFbMV0gLSBiWzFdOworICAgIG91dFsyXSA9IGFbMl0gLSBiWzJdOworICAgIG91dFszXSA9IGFbM10gLSBiWzNdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIEFsaWFzIGZvciB7QGxpbmsgdmVjNC5zdWJ0cmFjdH0KKyAqIEBmdW5jdGlvbgorICovCit2ZWM0LnN1YiA9IHZlYzQuc3VidHJhY3Q7CisKKy8qKgorICogTXVsdGlwbGllcyB0d28gdmVjNCdzCisgKgorICogQHBhcmFtIHt2ZWM0fSBvdXQgdGhlIHJlY2VpdmluZyB2ZWN0b3IKKyAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge3ZlYzR9IG91dAorICovCit2ZWM0Lm11bHRpcGx5ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgb3V0WzBdID0gYVswXSAqIGJbMF07CisgICAgb3V0WzFdID0gYVsxXSAqIGJbMV07CisgICAgb3V0WzJdID0gYVsyXSAqIGJbMl07CisgICAgb3V0WzNdID0gYVszXSAqIGJbM107CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWM0Lm11bHRpcGx5fQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzQubXVsID0gdmVjNC5tdWx0aXBseTsKKworLyoqCisgKiBEaXZpZGVzIHR3byB2ZWM0J3MKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisgKi8KK3ZlYzQuZGl2aWRlID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgb3V0WzBdID0gYVswXSAvIGJbMF07CisgICAgb3V0WzFdID0gYVsxXSAvIGJbMV07CisgICAgb3V0WzJdID0gYVsyXSAvIGJbMl07CisgICAgb3V0WzNdID0gYVszXSAvIGJbM107CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LmRpdmlkZX0KKyAqIEBmdW5jdGlvbgorICovCit2ZWM0LmRpdiA9IHZlYzQuZGl2aWRlOworCisvKioKKyAqIFJldHVybnMgdGhlIG1pbmltdW0gb2YgdHdvIHZlYzQncworICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5taW4gPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBNYXRoLm1pbihhWzBdLCBiWzBdKTsKKyAgICBvdXRbMV0gPSBNYXRoLm1pbihhWzFdLCBiWzFdKTsKKyAgICBvdXRbMl0gPSBNYXRoLm1pbihhWzJdLCBiWzJdKTsKKyAgICBvdXRbM10gPSBNYXRoLm1pbihhWzNdLCBiWzNdKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG9mIHR3byB2ZWM0J3MKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisgKi8KK3ZlYzQubWF4ID0gZnVuY3Rpb24ob3V0LCBhLCBiKSB7CisgICAgb3V0WzBdID0gTWF0aC5tYXgoYVswXSwgYlswXSk7CisgICAgb3V0WzFdID0gTWF0aC5tYXgoYVsxXSwgYlsxXSk7CisgICAgb3V0WzJdID0gTWF0aC5tYXgoYVsyXSwgYlsyXSk7CisgICAgb3V0WzNdID0gTWF0aC5tYXgoYVszXSwgYlszXSk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogU2NhbGVzIGEgdmVjNCBieSBhIHNjYWxhciBudW1iZXIKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWM0fSBhIHRoZSB2ZWN0b3IgdG8gc2NhbGUKKyAqIEBwYXJhbSB7TnVtYmVyfSBiIGFtb3VudCB0byBzY2FsZSB0aGUgdmVjdG9yIGJ5CisgKiBAcmV0dXJucyB7dmVjNH0gb3V0CisgKi8KK3ZlYzQuc2NhbGUgPSBmdW5jdGlvbihvdXQsIGEsIGIpIHsKKyAgICBvdXRbMF0gPSBhWzBdICogYjsKKyAgICBvdXRbMV0gPSBhWzFdICogYjsKKyAgICBvdXRbMl0gPSBhWzJdICogYjsKKyAgICBvdXRbM10gPSBhWzNdICogYjsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBBZGRzIHR3byB2ZWM0J3MgYWZ0ZXIgc2NhbGluZyB0aGUgc2Vjb25kIG9wZXJhbmQgYnkgYSBzY2FsYXIgdmFsdWUKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWM0fSBhIHRoZSBmaXJzdCBvcGVyYW5kCisgKiBAcGFyYW0ge3ZlYzR9IGIgdGhlIHNlY29uZCBvcGVyYW5kCisgKiBAcGFyYW0ge051bWJlcn0gc2NhbGUgdGhlIGFtb3VudCB0byBzY2FsZSBiIGJ5IGJlZm9yZSBhZGRpbmcKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5zY2FsZUFuZEFkZCA9IGZ1bmN0aW9uKG91dCwgYSwgYiwgc2NhbGUpIHsKKyAgICBvdXRbMF0gPSBhWzBdICsgKGJbMF0gKiBzY2FsZSk7CisgICAgb3V0WzFdID0gYVsxXSArIChiWzFdICogc2NhbGUpOworICAgIG91dFsyXSA9IGFbMl0gKyAoYlsyXSAqIHNjYWxlKTsKKyAgICBvdXRbM10gPSBhWzNdICsgKGJbM10gKiBzY2FsZSk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzQncworICoKKyAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge051bWJlcn0gZGlzdGFuY2UgYmV0d2VlbiBhIGFuZCBiCisgKi8KK3ZlYzQuZGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7CisgICAgdmFyIHggPSBiWzBdIC0gYVswXSwKKyAgICAgICAgeSA9IGJbMV0gLSBhWzFdLAorICAgICAgICB6ID0gYlsyXSAtIGFbMl0sCisgICAgICAgIHcgPSBiWzNdIC0gYVszXTsKKyAgICByZXR1cm4gTWF0aC5zcXJ0KHgqeCArIHkqeSArIHoqeiArIHcqdyk7Cit9OworCisvKioKKyAqIEFsaWFzIGZvciB7QGxpbmsgdmVjNC5kaXN0YW5jZX0KKyAqIEBmdW5jdGlvbgorICovCit2ZWM0LmRpc3QgPSB2ZWM0LmRpc3RhbmNlOworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgZXVjbGlkaWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlYzQncworICoKKyAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge051bWJlcn0gc3F1YXJlZCBkaXN0YW5jZSBiZXR3ZWVuIGEgYW5kIGIKKyAqLwordmVjNC5zcXVhcmVkRGlzdGFuY2UgPSBmdW5jdGlvbihhLCBiKSB7CisgICAgdmFyIHggPSBiWzBdIC0gYVswXSwKKyAgICAgICAgeSA9IGJbMV0gLSBhWzFdLAorICAgICAgICB6ID0gYlsyXSAtIGFbMl0sCisgICAgICAgIHcgPSBiWzNdIC0gYVszXTsKKyAgICByZXR1cm4geCp4ICsgeSp5ICsgeip6ICsgdyp3OworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQuc3F1YXJlZERpc3RhbmNlfQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzQuc3FyRGlzdCA9IHZlYzQuc3F1YXJlZERpc3RhbmNlOworCisvKioKKyAqIENhbGN1bGF0ZXMgdGhlIGxlbmd0aCBvZiBhIHZlYzQKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIGNhbGN1bGF0ZSBsZW5ndGggb2YKKyAqIEByZXR1cm5zIHtOdW1iZXJ9IGxlbmd0aCBvZiBhCisgKi8KK3ZlYzQubGVuZ3RoID0gZnVuY3Rpb24gKGEpIHsKKyAgICB2YXIgeCA9IGFbMF0sCisgICAgICAgIHkgPSBhWzFdLAorICAgICAgICB6ID0gYVsyXSwKKyAgICAgICAgdyA9IGFbM107CisgICAgcmV0dXJuIE1hdGguc3FydCh4KnggKyB5KnkgKyB6KnogKyB3KncpOworfTsKKworLyoqCisgKiBBbGlhcyBmb3Ige0BsaW5rIHZlYzQubGVuZ3RofQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzQubGVuID0gdmVjNC5sZW5ndGg7CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgc3F1YXJlZCBsZW5ndGggb2YgYSB2ZWM0CisgKgorICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBjYWxjdWxhdGUgc3F1YXJlZCBsZW5ndGggb2YKKyAqIEByZXR1cm5zIHtOdW1iZXJ9IHNxdWFyZWQgbGVuZ3RoIG9mIGEKKyAqLwordmVjNC5zcXVhcmVkTGVuZ3RoID0gZnVuY3Rpb24gKGEpIHsKKyAgICB2YXIgeCA9IGFbMF0sCisgICAgICAgIHkgPSBhWzFdLAorICAgICAgICB6ID0gYVsyXSwKKyAgICAgICAgdyA9IGFbM107CisgICAgcmV0dXJuIHgqeCArIHkqeSArIHoqeiArIHcqdzsKK307CisKKy8qKgorICogQWxpYXMgZm9yIHtAbGluayB2ZWM0LnNxdWFyZWRMZW5ndGh9CisgKiBAZnVuY3Rpb24KKyAqLwordmVjNC5zcXJMZW4gPSB2ZWM0LnNxdWFyZWRMZW5ndGg7CisKKy8qKgorICogTmVnYXRlcyB0aGUgY29tcG9uZW50cyBvZiBhIHZlYzQKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWM0fSBhIHZlY3RvciB0byBuZWdhdGUKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5uZWdhdGUgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgICBvdXRbMF0gPSAtYVswXTsKKyAgICBvdXRbMV0gPSAtYVsxXTsKKyAgICBvdXRbMl0gPSAtYVsyXTsKKyAgICBvdXRbM10gPSAtYVszXTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBpbnZlcnNlIG9mIHRoZSBjb21wb25lbnRzIG9mIGEgdmVjNAorICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIGludmVydAorICogQHJldHVybnMge3ZlYzR9IG91dAorICovCit2ZWM0LmludmVyc2UgPSBmdW5jdGlvbihvdXQsIGEpIHsKKyAgb3V0WzBdID0gMS4wIC8gYVswXTsKKyAgb3V0WzFdID0gMS4wIC8gYVsxXTsKKyAgb3V0WzJdID0gMS4wIC8gYVsyXTsKKyAgb3V0WzNdID0gMS4wIC8gYVszXTsKKyAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogTm9ybWFsaXplIGEgdmVjNAorICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdmVjdG9yIHRvIG5vcm1hbGl6ZQorICogQHJldHVybnMge3ZlYzR9IG91dAorICovCit2ZWM0Lm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIHZhciB4ID0gYVswXSwKKyAgICAgICAgeSA9IGFbMV0sCisgICAgICAgIHogPSBhWzJdLAorICAgICAgICB3ID0gYVszXTsKKyAgICB2YXIgbGVuID0geCp4ICsgeSp5ICsgeip6ICsgdyp3OworICAgIGlmIChsZW4gPiAwKSB7CisgICAgICAgIGxlbiA9IDEgLyBNYXRoLnNxcnQobGVuKTsKKyAgICAgICAgb3V0WzBdID0geCAqIGxlbjsKKyAgICAgICAgb3V0WzFdID0geSAqIGxlbjsKKyAgICAgICAgb3V0WzJdID0geiAqIGxlbjsKKyAgICAgICAgb3V0WzNdID0gdyAqIGxlbjsKKyAgICB9CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogQ2FsY3VsYXRlcyB0aGUgZG90IHByb2R1Y3Qgb2YgdHdvIHZlYzQncworICoKKyAqIEBwYXJhbSB7dmVjNH0gYSB0aGUgZmlyc3Qgb3BlcmFuZAorICogQHBhcmFtIHt2ZWM0fSBiIHRoZSBzZWNvbmQgb3BlcmFuZAorICogQHJldHVybnMge051bWJlcn0gZG90IHByb2R1Y3Qgb2YgYSBhbmQgYgorICovCit2ZWM0LmRvdCA9IGZ1bmN0aW9uIChhLCBiKSB7CisgICAgcmV0dXJuIGFbMF0gKiBiWzBdICsgYVsxXSAqIGJbMV0gKyBhWzJdICogYlsyXSArIGFbM10gKiBiWzNdOworfTsKKworLyoqCisgKiBQZXJmb3JtcyBhIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHZlYzQncworICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIGZpcnN0IG9wZXJhbmQKKyAqIEBwYXJhbSB7dmVjNH0gYiB0aGUgc2Vjb25kIG9wZXJhbmQKKyAqIEBwYXJhbSB7TnVtYmVyfSB0IGludGVycG9sYXRpb24gYW1vdW50IGJldHdlZW4gdGhlIHR3byBpbnB1dHMKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5sZXJwID0gZnVuY3Rpb24gKG91dCwgYSwgYiwgdCkgeworICAgIHZhciBheCA9IGFbMF0sCisgICAgICAgIGF5ID0gYVsxXSwKKyAgICAgICAgYXogPSBhWzJdLAorICAgICAgICBhdyA9IGFbM107CisgICAgb3V0WzBdID0gYXggKyB0ICogKGJbMF0gLSBheCk7CisgICAgb3V0WzFdID0gYXkgKyB0ICogKGJbMV0gLSBheSk7CisgICAgb3V0WzJdID0gYXogKyB0ICogKGJbMl0gLSBheik7CisgICAgb3V0WzNdID0gYXcgKyB0ICogKGJbM10gLSBhdyk7CisgICAgcmV0dXJuIG91dDsKK307CisKKy8qKgorICogR2VuZXJhdGVzIGEgcmFuZG9tIHZlY3RvciB3aXRoIHRoZSBnaXZlbiBzY2FsZQorICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge051bWJlcn0gW3NjYWxlXSBMZW5ndGggb2YgdGhlIHJlc3VsdGluZyB2ZWN0b3IuIElmIG9tbWl0dGVkLCBhIHVuaXQgdmVjdG9yIHdpbGwgYmUgcmV0dXJuZWQKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC5yYW5kb20gPSBmdW5jdGlvbiAob3V0LCBzY2FsZSkgeworICAgIHNjYWxlID0gc2NhbGUgfHwgMS4wOworCisgICAgLy9UT0RPOiBUaGlzIGlzIGEgcHJldHR5IGF3ZnVsIHdheSBvZiBkb2luZyB0aGlzLiBGaW5kIHNvbWV0aGluZyBiZXR0ZXIuCisgICAgb3V0WzBdID0gZ2xNYXRyaXguUkFORE9NKCk7CisgICAgb3V0WzFdID0gZ2xNYXRyaXguUkFORE9NKCk7CisgICAgb3V0WzJdID0gZ2xNYXRyaXguUkFORE9NKCk7CisgICAgb3V0WzNdID0gZ2xNYXRyaXguUkFORE9NKCk7CisgICAgdmVjNC5ub3JtYWxpemUob3V0LCBvdXQpOworICAgIHZlYzQuc2NhbGUob3V0LCBvdXQsIHNjYWxlKTsKKyAgICByZXR1cm4gb3V0OworfTsKKworLyoqCisgKiBUcmFuc2Zvcm1zIHRoZSB2ZWM0IHdpdGggYSBtYXQ0LgorICoKKyAqIEBwYXJhbSB7dmVjNH0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yCisgKiBAcGFyYW0ge3ZlYzR9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm0KKyAqIEBwYXJhbSB7bWF0NH0gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGgKKyAqIEByZXR1cm5zIHt2ZWM0fSBvdXQKKyAqLwordmVjNC50cmFuc2Zvcm1NYXQ0ID0gZnVuY3Rpb24ob3V0LCBhLCBtKSB7CisgICAgdmFyIHggPSBhWzBdLCB5ID0gYVsxXSwgeiA9IGFbMl0sIHcgPSBhWzNdOworICAgIG91dFswXSA9IG1bMF0gKiB4ICsgbVs0XSAqIHkgKyBtWzhdICogeiArIG1bMTJdICogdzsKKyAgICBvdXRbMV0gPSBtWzFdICogeCArIG1bNV0gKiB5ICsgbVs5XSAqIHogKyBtWzEzXSAqIHc7CisgICAgb3V0WzJdID0gbVsyXSAqIHggKyBtWzZdICogeSArIG1bMTBdICogeiArIG1bMTRdICogdzsKKyAgICBvdXRbM10gPSBtWzNdICogeCArIG1bN10gKiB5ICsgbVsxMV0gKiB6ICsgbVsxNV0gKiB3OworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFRyYW5zZm9ybXMgdGhlIHZlYzQgd2l0aCBhIHF1YXQKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IG91dCB0aGUgcmVjZWl2aW5nIHZlY3RvcgorICogQHBhcmFtIHt2ZWM0fSBhIHRoZSB2ZWN0b3IgdG8gdHJhbnNmb3JtCisgKiBAcGFyYW0ge3F1YXR9IHEgcXVhdGVybmlvbiB0byB0cmFuc2Zvcm0gd2l0aAorICogQHJldHVybnMge3ZlYzR9IG91dAorICovCit2ZWM0LnRyYW5zZm9ybVF1YXQgPSBmdW5jdGlvbihvdXQsIGEsIHEpIHsKKyAgICB2YXIgeCA9IGFbMF0sIHkgPSBhWzFdLCB6ID0gYVsyXSwKKyAgICAgICAgcXggPSBxWzBdLCBxeSA9IHFbMV0sIHF6ID0gcVsyXSwgcXcgPSBxWzNdLAorCisgICAgICAgIC8vIGNhbGN1bGF0ZSBxdWF0ICogdmVjCisgICAgICAgIGl4ID0gcXcgKiB4ICsgcXkgKiB6IC0gcXogKiB5LAorICAgICAgICBpeSA9IHF3ICogeSArIHF6ICogeCAtIHF4ICogeiwKKyAgICAgICAgaXogPSBxdyAqIHogKyBxeCAqIHkgLSBxeSAqIHgsCisgICAgICAgIGl3ID0gLXF4ICogeCAtIHF5ICogeSAtIHF6ICogejsKKworICAgIC8vIGNhbGN1bGF0ZSByZXN1bHQgKiBpbnZlcnNlIHF1YXQKKyAgICBvdXRbMF0gPSBpeCAqIHF3ICsgaXcgKiAtcXggKyBpeSAqIC1xeiAtIGl6ICogLXF5OworICAgIG91dFsxXSA9IGl5ICogcXcgKyBpdyAqIC1xeSArIGl6ICogLXF4IC0gaXggKiAtcXo7CisgICAgb3V0WzJdID0gaXogKiBxdyArIGl3ICogLXF6ICsgaXggKiAtcXkgLSBpeSAqIC1xeDsKKyAgICBvdXRbM10gPSBhWzNdOworICAgIHJldHVybiBvdXQ7Cit9OworCisvKioKKyAqIFBlcmZvcm0gc29tZSBvcGVyYXRpb24gb3ZlciBhbiBhcnJheSBvZiB2ZWM0cy4KKyAqCisgKiBAcGFyYW0ge0FycmF5fSBhIHRoZSBhcnJheSBvZiB2ZWN0b3JzIHRvIGl0ZXJhdGUgb3ZlcgorICogQHBhcmFtIHtOdW1iZXJ9IHN0cmlkZSBOdW1iZXIgb2YgZWxlbWVudHMgYmV0d2VlbiB0aGUgc3RhcnQgb2YgZWFjaCB2ZWM0LiBJZiAwIGFzc3VtZXMgdGlnaHRseSBwYWNrZWQKKyAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNraXAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkKKyAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudCBOdW1iZXIgb2YgdmVjNHMgdG8gaXRlcmF0ZSBvdmVyLiBJZiAwIGl0ZXJhdGVzIG92ZXIgZW50aXJlIGFycmF5CisgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBGdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIHZlY3RvciBpbiB0aGUgYXJyYXkKKyAqIEBwYXJhbSB7T2JqZWN0fSBbYXJnXSBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIHBhc3MgdG8gZm4KKyAqIEByZXR1cm5zIHtBcnJheX0gYQorICogQGZ1bmN0aW9uCisgKi8KK3ZlYzQuZm9yRWFjaCA9IChmdW5jdGlvbigpIHsKKyAgICB2YXIgdmVjID0gdmVjNC5jcmVhdGUoKTsKKworICAgIHJldHVybiBmdW5jdGlvbihhLCBzdHJpZGUsIG9mZnNldCwgY291bnQsIGZuLCBhcmcpIHsKKyAgICAgICAgdmFyIGksIGw7CisgICAgICAgIGlmKCFzdHJpZGUpIHsKKyAgICAgICAgICAgIHN0cmlkZSA9IDQ7CisgICAgICAgIH0KKworICAgICAgICBpZighb2Zmc2V0KSB7CisgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZihjb3VudCkgeworICAgICAgICAgICAgbCA9IE1hdGgubWluKChjb3VudCAqIHN0cmlkZSkgKyBvZmZzZXQsIGEubGVuZ3RoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGwgPSBhLmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpID0gb2Zmc2V0OyBpIDwgbDsgaSArPSBzdHJpZGUpIHsKKyAgICAgICAgICAgIHZlY1swXSA9IGFbaV07IHZlY1sxXSA9IGFbaSsxXTsgdmVjWzJdID0gYVtpKzJdOyB2ZWNbM10gPSBhW2krM107CisgICAgICAgICAgICBmbih2ZWMsIHZlYywgYXJnKTsKKyAgICAgICAgICAgIGFbaV0gPSB2ZWNbMF07IGFbaSsxXSA9IHZlY1sxXTsgYVtpKzJdID0gdmVjWzJdOyBhW2krM10gPSB2ZWNbM107CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBhOworICAgIH07Cit9KSgpOworCisvKioKKyAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB2ZWN0b3IKKyAqCisgKiBAcGFyYW0ge3ZlYzR9IHZlYyB2ZWN0b3IgdG8gcmVwcmVzZW50IGFzIGEgc3RyaW5nCisgKiBAcmV0dXJucyB7U3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZlY3RvcgorICovCit2ZWM0LnN0ciA9IGZ1bmN0aW9uIChhKSB7CisgICAgcmV0dXJuICd2ZWM0KCcgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnLCAnICsgYVsyXSArICcsICcgKyBhWzNdICsgJyknOworfTsKKworbW9kdWxlLmV4cG9ydHMgPSB2ZWM0OwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9idWlsZC5yYWtlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL2J1aWxkLnJha2UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvYnVpbGQucmFrZQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL2J1aWxkLnJha2UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvYnVpbGQvY29tcGlsZS5yYWtlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL2J1aWxkL2NvbXBpbGUucmFrZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9idWlsZC9jb21waWxlLnJha2UKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9idWlsZC9jb21waWxlLnJha2UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvYnVpbGQvbWluaWZ5LnJha2UgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvYnVpbGQvbWluaWZ5LnJha2UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvYnVpbGQvbWluaWZ5LnJha2UKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9idWlsZC9taW5pZnkucmFrZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9kZWZhdWx0LnJha2UgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvZGVmYXVsdC5yYWtlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL2RlZmF1bHQucmFrZQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL2RlZmF1bHQucmFrZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9yZWxlYXNlLnJha2UgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvcmVsZWFzZS5yYWtlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3JlbGVhc2UucmFrZQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3JlbGVhc2UucmFrZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3N1cHBvcnQvZ2wtbWF0cml4LnJiIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3N1cHBvcnQvZ2wtbWF0cml4LnJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlY2RjNjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgucmIKQEAgLTAsMCArMSw4NCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTMgQnJhbmRvbiBKb25lcywgQ29saW4gTWFjS2VuemllIElWCisjIAorIyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAorIyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKKyMgYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KKyMgCisjIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAorIyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CisjIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKKyMgCisjICAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAorIyAgICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKKyMgICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQorIyAgICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KKyMgCisjICAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdAorIyAgICAgYmUgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgorIyAKKyMgIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCisjIAorJDoudW5zaGlmdCBGaWxlLmV4cGFuZF9wYXRoKCcuJywgRmlsZS5kaXJuYW1lKF9fRklMRV9fKSkKK3JlcXVpcmUgJ3Nwcm9ja2V0cycKK3JlcXVpcmUgJ2phc21pbmUnCisKK2NsYXNzIEphc21pbmU6OkNvbmZpZworICBkZWYgc2ltcGxlX2NvbmZpZ19maWxlCisgICAgRmlsZS5leHBhbmRfcGF0aCBHTE1hdHJpeC5iYXNlX3BhdGguam9pbignc3BlYy9qYXNtaW5lLnltbCcpCisgIGVuZAorZW5kCisKK2NsYXNzIFJhY2s6Okphc21pbmU6OlJ1bm5lcgorICBhbGlhc19tZXRob2QgOmphc21pbmVfY2FsbCwgOmNhbGwKKyAgZGVmIGNhbGwoZW52KQorICAgIEdMTWF0cml4LmNvbXBpbGUKKyAgICBqYXNtaW5lX2NhbGwgZW52CisgIGVuZAorZW5kCisKK21vZHVsZSBHTE1hdHJpeAorICBhdXRvbG9hZCA6UmVsZWFzZUhlbHBlciwgJ2dsLW1hdHJpeC9yZWxlYXNlX2hlbHBlcicKKyAgYXV0b2xvYWQgOlZlcnNpb24sICAgICAgICdnbC1tYXRyaXgvdmVyc2lvbicKKyAgYXV0b2xvYWQgOlZFUlNJT04sICAgICAgICdnbC1tYXRyaXgvdmVyc2lvbicKKworICBtb2R1bGVfZnVuY3Rpb24KKworICBkZWYgcmVsZWFzZSgmYmxvY2spCisgICAgR0xNYXRyaXg6OlJlbGVhc2VIZWxwZXIucmVsZWFzZSAmYmxvY2sKKyAgZW5kCisKKyAgZGVmIHNwcm9ja2V0cworICAgIGVudiA9IFNwcm9ja2V0czo6RW52aXJvbm1lbnQubmV3IGJhc2VfcGF0aAorICAgIGVudi5hcHBlbmRfcGF0aCBiYXNlX3BhdGguam9pbignc3JjJykKKyAgICBlbnYKKyAgZW5kCisKKyAgZGVmIGJhc2VfcGF0aAorICAgIFBhdGhuYW1lLm5ldyBGaWxlLmV4cGFuZF9wYXRoKCcuLi8uLicsIEZpbGUuZGlybmFtZShfX0ZJTEVfXykpCisgIGVuZAorCisgICMgQ29tcGlsZXMgdGhlIHNvdXJjZSBmaWxlIHRvIHRoZSBkZXN0IGZpbGUuIElmIGEgYmxvY2sKKyAgIyBpcyBnaXZlbiwgdGhlIHNvdXJjZSBmaWxlIGlzIHlpZWxkZWQgYW5kIHJlcGxhY2VkIHdpdGgKKyAgIyB0aGUgcmVzdWx0LiBSZXR1cm5zIHRoZSBkZXN0aW5hdGlvbiBhcyBhIFBhdGhuYW1lLgorICBkZWYgY29tcGlsZShzb3VyY2UgPSAnZ2wtbWF0cml4LmpzJywgZGVzdCA9ICdkaXN0L2dsLW1hdHJpeC5qcycpCisgICAgZGVzdCA9IGJhc2VfcGF0aC5qb2luIGRlc3QKKyAgICBqcyA9IHNwcm9ja2V0c1tzb3VyY2VdCisgICAganMgPSB5aWVsZCBqcyBpZiBibG9ja19naXZlbj8KKworICAgIEZpbGUub3BlbiBkZXN0LCAidyIgZG8gfGZ8CisgICAgICBmLnB1dHMganMKKyAgICBlbmQKKworICAgIHB1dHMgImNvbXBpbGVkICN7c291cmNlfSB0byAje2Rlc3QucmVsYXRpdmVfcGF0aF9mcm9tIGJhc2VfcGF0aH0iCisgICAgZGVzdAorICBlbmQKKworICBkZWYgbWluaWZ5KHNvdXJjZSA9ICdnbC1tYXRyaXguanMnLCBkZXN0ID0gJ2Rpc3QvZ2wtbWF0cml4LW1pbi5qcycpCisgICAgZGVzdCA9IGNvbXBpbGUgc291cmNlLCBkZXN0IGRvIHxqc3wKKyAgICAgIFVnbGlmaWVyLmNvbXBpbGUganMKKyAgICBlbmQKKworICAgIHB1dHMgIm1pbmlmaWVkICN7c291cmNlfSB0byAje2Rlc3QucmVsYXRpdmVfcGF0aF9mcm9tIGJhc2VfcGF0aH0iCisgIGVuZAorCitlbmQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgvcmVsZWFzZV9oZWxwZXIucmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgvcmVsZWFzZV9oZWxwZXIucmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgvcmVsZWFzZV9oZWxwZXIucmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9zdXBwb3J0L2dsLW1hdHJpeC9yZWxlYXNlX2hlbHBlci5yYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy9zdXBwb3J0L2dsLW1hdHJpeC92ZXJzaW9uLnJiIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3N1cHBvcnQvZ2wtbWF0cml4L3ZlcnNpb24ucmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3Mvc3VwcG9ydC9nbC1tYXRyaXgvdmVyc2lvbi5yYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3N1cHBvcnQvZ2wtbWF0cml4L3ZlcnNpb24ucmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvdGVzdC9jaS5yYWtlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3Rlc3QvY2kucmFrZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L2NpLnJha2UKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L2NpLnJha2UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvdGVzdC9jb3ZlcmFnZS5yYWtlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3Rlc3QvY292ZXJhZ2UucmFrZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L2NvdmVyYWdlLnJha2UKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L2NvdmVyYWdlLnJha2UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvdGVzdC9qYXNtaW5lLnJha2UgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvdGVzdC9qYXNtaW5lLnJha2UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvdGFza3MvdGVzdC9qYXNtaW5lLnJha2UKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L2phc21pbmUucmFrZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L25vZGUucmFrZSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L25vZGUucmFrZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC90YXNrcy90ZXN0L25vZGUucmFrZQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3Rhc2tzL3Rlc3Qvbm9kZS5yYWtlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvd2VicGFjay5jb25maWcuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9nbC1tYXRyaXgvd2VicGFjay5jb25maWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjllYWNlMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC93ZWJwYWNrLmNvbmZpZy5qcwpAQCAtMCwwICsxLDQ3IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTUsIEJyYW5kb24gSm9uZXMsIENvbGluIE1hY0tlbnppZSBJVi4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuICovCisKK3ZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7Cit2YXIgd2VicGFjayA9IHJlcXVpcmUoJ3dlYnBhY2snKTsKKwordmFyIGVudHJ5RmlsZSA9ICcuL3NyYy9nbC1tYXRyaXguanMnOworCisvLyBSZWFkIHRoZSBjb21tZW50cyBmcm9tIHRoZSB0b3Agb2YgdGhlIG1haW4gZ2wtbWF0cml4IGZpbGUgYW5kIGFwcGVuZCB0aGVtIHRvCisvLyB0aGUgbWluaWZpZWQgdmVyc2lvbi4KK3ZhciBoZWFkZXIgPSAnJzsKK3ZhciBtYWluRmlsZSA9IGZzLnJlYWRGaWxlU3luYyhlbnRyeUZpbGUsIHsgZW5jb2Rpbmc6ICd1dGY4JyB9KTsKK2lmIChtYWluRmlsZSkgeworICB2YXIgaGVhZGVySW5kZXggPSBtYWluRmlsZS5pbmRleE9mKCdcL1wvIEVORCBIRUFERVInKTsKKyAgaWYgKGhlYWRlckluZGV4ID49IDApIHsKKyAgICBoZWFkZXIgPSBtYWluRmlsZS5zdWJzdHIoMCwgaGVhZGVySW5kZXgpOworICB9Cit9CisKK21vZHVsZS5leHBvcnRzID0geworICBlbnRyeTogZW50cnlGaWxlLAorICBvdXRwdXQ6IHsKKyAgICBwYXRoOiBfX2Rpcm5hbWUgKyAnL2Rpc3QnLAorICAgIGZpbGVuYW1lOiAnZ2wtbWF0cml4LmpzJywKKyAgICBsaWJyYXJ5VGFyZ2V0OiAndW1kJworICB9LAorICBwbHVnaW5zOiBbCisgICAgbmV3IHdlYnBhY2suQmFubmVyUGx1Z2luKGhlYWRlciwgeyByYXc6IHRydWUgfSksCisgIF0KK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvZ2wtbWF0cml4L3dlYnBhY2suY29uZmlnLm1pbi5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC93ZWJwYWNrLmNvbmZpZy5taW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdmOTEwOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2dsLW1hdHJpeC93ZWJwYWNrLmNvbmZpZy5taW4uanMKQEAgLTAsMCArMSwyOCBAQAorLyogQ29weXJpZ2h0IChjKSAyMDE1LCBCcmFuZG9uIEpvbmVzLCBDb2xpbiBNYWNLZW56aWUgSVYuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLiAqLworCit2YXIgd2VicGFjayA9IHJlcXVpcmUoJ3dlYnBhY2snKTsKK21vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi93ZWJwYWNrLmNvbmZpZy5qcycpOworCittb2R1bGUuZXhwb3J0cy5wbHVnaW5zLnVuc2hpZnQoCisgIG5ldyB3ZWJwYWNrLm9wdGltaXplLlVnbGlmeUpzUGx1Z2luKCkKKyk7CisKK21vZHVsZS5leHBvcnRzLm91dHB1dC5maWxlbmFtZSA9ICdnbC1tYXRyaXgtbWluLmpzJzsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvanN6aXAvTElDRU5TRS5tYXJrZG93biBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2pzemlwL0xJQ0VOU0UubWFya2Rvd24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9qc3ppcC9MSUNFTlNFLm1hcmtkb3duCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9qc3ppcC9MSUNFTlNFLm1hcmtkb3duCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvanN6aXAvUkVBRE1FLmNocm9taXVtIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvanN6aXAvUkVBRE1FLmNocm9taXVtCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvanN6aXAvUkVBRE1FLmNocm9taXVtCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9qc3ppcC9SRUFETUUuY2hyb21pdW0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9qc3ppcC9SRUFETUUubWFya2Rvd24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9qc3ppcC9SRUFETUUubWFya2Rvd24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9qc3ppcC9SRUFETUUubWFya2Rvd24KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2pzemlwL1JFQURNRS5tYXJrZG93bgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2pzemlwL2pzemlwLm1pbi5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L2pzemlwL2pzemlwLm1pbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L2pzemlwL2pzemlwLm1pbi5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvanN6aXAvanN6aXAubWluLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvbW9jaGEvTElDRU5TRSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L21vY2hhL0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9tb2NoYS9MSUNFTlNFCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9tb2NoYS9MSUNFTlNFCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvbW9jaGEvUkVBRE1FLmNocm9taXVtIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvbW9jaGEvUkVBRE1FLmNocm9taXVtCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvbW9jaGEvUkVBRE1FLmNocm9taXVtCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9tb2NoYS9SRUFETUUuY2hyb21pdW0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9tb2NoYS9tb2NoYS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9tb2NoYS9tb2NoYS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9tb2NoYS9tb2NoYS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L21vY2hhL21vY2hhLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L21vY2hhL21vY2hhLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvbW9jaGEvbW9jaGEuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9tb2NoYS9tb2NoYS5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvbW9jaGEvbW9jaGEuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL0FVVEhPUlMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL0FVVEhPUlMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL0FVVEhPUlMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvQVVUSE9SUwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvQ09QWUlORyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvQ09QWUlORwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvQ09QWUlORwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9DT1BZSU5HCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9DaGFuZ2VMb2cgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL0NoYW5nZUxvZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvQ2hhbmdlTG9nCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL0NoYW5nZUxvZwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvTUFOSUZFU1QuaW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL01BTklGRVNULmluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9NQU5JRkVTVC5pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9NQU5JRkVTVC5pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvTWFrZWZpbGUgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL01ha2VmaWxlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9NYWtlZmlsZQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9NYWtlZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvTkVXUyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvTkVXUwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvTkVXUwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9ORVdTCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9SRUFETUUgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL1JFQURNRQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvUkVBRE1FCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL1JFQURNRQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvUkVBRE1FLmNocm9taXVtIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9SRUFETUUuY2hyb21pdW0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL1JFQURNRS5jaHJvbWl1bQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9SRUFETUUuY2hyb21pdW0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL2dmbGFncy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvZ2ZsYWdzLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9nZmxhZ3MucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvZ2ZsYWdzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9nZmxhZ3MybWFuLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9nZmxhZ3MybWFuLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9nZmxhZ3MybWFuLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL2dmbGFnczJtYW4ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL2dmbGFnc192YWxpZGF0b3JzLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9nZmxhZ3NfdmFsaWRhdG9ycy5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvZ2ZsYWdzX3ZhbGlkYXRvcnMucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3MvZ2ZsYWdzX3ZhbGlkYXRvcnMucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS9weXRob25fZ2ZsYWdzL3NldHVwLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvcHl0aG9uX2dmbGFncy9zZXR1cC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3Mvc2V0dXAucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3B5dGhvbl9nZmxhZ3Mvc2V0dXAucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3J1bl90ZXN0cyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vcnVuX3Rlc3RzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS9ydW5fdGVzdHMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vcnVuX3Rlc3RzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9iZWF1dGlmdWxzb3VwL0JlYXV0aWZ1bFNvdXAucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L2JlYXV0aWZ1bHNvdXAvQmVhdXRpZnVsU291cC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvYmVhdXRpZnVsc291cC9CZWF1dGlmdWxTb3VwLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L2JlYXV0aWZ1bHNvdXAvQmVhdXRpZnVsU291cC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvYmVhdXRpZnVsc291cC9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L2JlYXV0aWZ1bHNvdXAvUkVBRE1FLmNocm9taXVtCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9iZWF1dGlmdWxzb3VwL1JFQURNRS5jaHJvbWl1bQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9iZWF1dGlmdWxzb3VwL1JFQURNRS5jaHJvbWl1bQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvYmVhdXRpZnVsc291cC9wb2x5bWVyX3NvdXAucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L2JlYXV0aWZ1bHNvdXAvcG9seW1lcl9zb3VwLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9iZWF1dGlmdWxzb3VwL3BvbHltZXJfc291cC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9iZWF1dGlmdWxzb3VwL3BvbHltZXJfc291cC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9MSUNFTlNFIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vTElDRU5TRQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL0xJQ0VOU0UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vTUFOSUZFU1QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vTUFOSUZFU1QKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vTUFOSUZFU1QKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9NQU5JRkVTVApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9QS0ctSU5GTyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9QS0ctSU5GTwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9QS0ctSU5GTwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL1BLRy1JTkZPCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9SRUFETUUuY2hyb21pdW0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vUkVBRE1FLmNocm9taXVtCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vUkVBRE1FLmNocm9taXVtCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL1JFQURNRS5yc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vUkVBRE1FLnJzdApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9SRUFETUUucnN0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vUkVBRE1FLnJzdApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL19faW5pdF9fLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvaW5jbHVkZS9jZXh0LmggYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL2luY2x1ZGUvY2V4dC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9pbmNsdWRlL2NleHQuaApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9pbmNsdWRlL2NleHQuaApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9jb21tYW5kcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL2NvbW1hbmRzLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvY29tbWFuZHMucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL2NvbW1hbmRzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvZGF0YS5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL2RhdGEucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9kYXRhLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9kYXRhLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvZGlzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL2Rpc3QucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9kaXN0LnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9kaXN0LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvZXh0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvZXh0LnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvZXh0LnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9leHQucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9zZXR1cC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL3NldHVwLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvc2V0dXAucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL3NldHVwLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvc2hlbGwucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9zaGVsbC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL3NoZWxsLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi9zaGVsbC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL3Rlcm0vX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi90ZXJtL19faW5pdF9fLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvdGVybS9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvdGVybS9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL3Rlcm0vX3Rlcm0ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi90ZXJtL190ZXJtLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvdGVybS9fdGVybS5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvdGVybS9fdGVybS5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkyL3V0aWwucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5Mi91dGlsLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvdXRpbC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTIvdXRpbC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9jb21tYW5kcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL2NvbW1hbmRzLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvY29tbWFuZHMucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL2NvbW1hbmRzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvZGF0YS5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL2RhdGEucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9kYXRhLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9kYXRhLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvZGlzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL2Rpc3QucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9kaXN0LnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9kaXN0LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvZXh0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvZXh0LnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvZXh0LnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9leHQucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9zZXR1cC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL3NldHVwLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvc2V0dXAucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL3NldHVwLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvc2hlbGwucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9zaGVsbC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL3NoZWxsLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My9zaGVsbC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL3Rlcm0vX19pbml0X18ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My90ZXJtL19faW5pdF9fLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvdGVybS9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvdGVybS9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL3Rlcm0vX3Rlcm0ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My90ZXJtL190ZXJtLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvdGVybS9fdGVybS5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvdGVybS9fdGVybS5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9fc2V0dXAvcHkzL3V0aWwucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vX3NldHVwL3B5My91dGlsLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvdXRpbC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL19zZXR1cC9weTMvdXRpbC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC9MSUNFTlNFLmNzc21pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC9MSUNFTlNFLmNzc21pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC9MSUNFTlNFLmNzc21pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL0xJQ0VOU0UuY3NzbWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL19faW5pdF9fLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL19faW5pdF9fLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vYmVuY2gvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vYmVuY2gvY3NzbWluLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL2Nzc21pbi5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC9jc3NtaW4ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC9jc3NtaW4ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vYmVuY2gvbWFpbi5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC9tYWluLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL21haW4ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC9tYWluLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL3dpa2lwZWRpYS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vYmVuY2gvd2lraXBlZGlhLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC93aWtpcGVkaWEuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vYmVuY2gvd2lraXBlZGlhLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC93aWtpcGVkaWEubWluLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC93aWtpcGVkaWEubWluLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9iZW5jaC93aWtpcGVkaWEubWluLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL3dpa2lwZWRpYS5taW4uY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL3dyaXRlLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL3dyaXRlLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2JlbmNoL3dyaXRlLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vYmVuY2gvd3JpdGUucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9CRU5DSE1BUktTIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvQkVOQ0hNQVJLUwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL0JFTkNITUFSS1MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL0JFTkNITUFSS1MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9DSEFOR0VTIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvQ0hBTkdFUwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL0NIQU5HRVMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL0NIQU5HRVMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9DTEFTU0lGSUVSUyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL0NMQVNTSUZJRVJTCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvQ0xBU1NJRklFUlMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL0NMQVNTSUZJRVJTCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvREVTQ1JJUFRJT04gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9ERVNDUklQVElPTgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL0RFU0NSSVBUSU9OCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9ERVNDUklQVElPTgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL1BST1ZJREVTIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvUFJPVklERVMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9QUk9WSURFUwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvUFJPVklERVMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9TVU1NQVJZIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvU1VNTUFSWQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL1NVTU1BUlkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL1NVTU1BUlkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvYXBpLW9iamVjdHMudHh0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2FwaS1vYmplY3RzLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9hcGktb2JqZWN0cy50eHQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9hcGktb2JqZWN0cy50eHQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvY3JhcnIucG5nIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2NyYXJyLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9jcmFyci5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9jcmFyci5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9lcHlkb2MuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2VweWRvYy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvZXB5ZG9jLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2VweWRvYy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvZXB5ZG9jLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2VweWRvYy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9lcHlkb2MuanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9lcHlkb2MuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvaGVscC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2hlbHAuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9oZWxwLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9oZWxwLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvaWRlbnRpZmllci1pbmRleC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2lkZW50aWZpZXItaW5kZXguaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9pZGVudGlmaWVyLWluZGV4Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9pZGVudGlmaWVyLWluZGV4Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvaW5kZXguaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9pbmRleC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL2luZGV4Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9pbmRleC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL21vZHVsZS10cmVlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvbW9kdWxlLXRyZWUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9tb2R1bGUtdHJlZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvbW9kdWxlLXRyZWUuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9yY3NzbWluLW1vZHVsZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL3Jjc3NtaW4tbW9kdWxlLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvcmNzc21pbi1tb2R1bGUuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL3Jjc3NtaW4tbW9kdWxlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvcmNzc21pbi1weXNyYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL3Jjc3NtaW4tcHlzcmMuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9yY3NzbWluLXB5c3JjLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9yY3NzbWluLXB5c3JjLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vZG9jcy9hcGlkb2MvcmVkaXJlY3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9yZWRpcmVjdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL2RvY3MvYXBpZG9jL3JlZGlyZWN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9kb2NzL2FwaWRvYy9yZWRpcmVjdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3BhY2thZ2UuY2ZnIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3BhY2thZ2UuY2ZnCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3BhY2thZ2UuY2ZnCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vcGFja2FnZS5jZmcKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vcmNzc21pbi5jIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Jjc3NtaW4uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9yY3NzbWluLmMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9yY3NzbWluLmMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vcmNzc21pbi5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9yY3NzbWluLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Jjc3NtaW4ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9yY3NzbWluLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3J1bl90ZXN0cy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi9ydW5fdGVzdHMucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vcnVuX3Rlc3RzLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vcnVuX3Rlc3RzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3NldHVwLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3NldHVwLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3NldHVwLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vc2V0dXAucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzAwLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDAuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wMC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDAuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wMS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzAxLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDEuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzAxLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDIuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wMi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzAyLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wMi5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzAzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDMuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wMy5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wNC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA0LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDQuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA0LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDUuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wNS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA1LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wNS5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA2LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDYuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wNi5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDYuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wNy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA3LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDcuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA3LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDguY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wOC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA4LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wOC5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzA5LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDkuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8wOS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMDkuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8xMC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzEwLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMTAuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzEwLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2F0Z3JvdXBfMTEuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8xMS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9hdGdyb3VwXzExLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vYXRncm91cF8xMS5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9jb21tZW50XzAwLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2NvbW1lbnRfMDAuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vY29tbWVudF8wMC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2NvbW1lbnRfMDAuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vY29tbWVudF8wMS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9jb21tZW50XzAxLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2NvbW1lbnRfMDEuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9jb21tZW50XzAxLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2NvbW1lbnRfMDIuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vY29tbWVudF8wMi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9jb21tZW50XzAyLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vY29tbWVudF8wMi5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9jb21tZW50XzAzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2NvbW1lbnRfMDMuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vY29tbWVudF8wMy5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2NvbW1lbnRfMDMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vY29tbWVudF8wNC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9jb21tZW50XzA0LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2NvbW1lbnRfMDQuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9jb21tZW50XzA0LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2VzY2FwZV8wMC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9lc2NhcGVfMDAuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAwLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAwLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2VzY2FwZV8wMS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9lc2NhcGVfMDEuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAxLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAxLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2VzY2FwZV8wMi5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9lc2NhcGVfMDIuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAyLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAyLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2VzY2FwZV8wMy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9lc2NhcGVfMDMuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzAzLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2VzY2FwZV8wNC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9lc2NhcGVfMDQuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzA0LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzA0LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2VzY2FwZV8wNS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9lc2NhcGVfMDUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzA1LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzA1LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2VzY2FwZV8wNi5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9lc2NhcGVfMDYuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzA2LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZXNjYXBlXzA2LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2ZpcnN0XzAwLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2ZpcnN0XzAwLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2ZpcnN0XzAwLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZmlyc3RfMDAuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZmlyc3RfMDEuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZmlyc3RfMDEuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vZmlyc3RfMDEuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9maXJzdF8wMS5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9maXJzdF8wMi5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9maXJzdF8wMi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9maXJzdF8wMi5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL2ZpcnN0XzAyLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAwLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAwLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAwLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDAub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDAub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAwLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAxLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAxLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAxLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDEub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDEub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAxLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAyLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAyLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAyLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDIub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDIub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMi5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAyLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMi5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAzLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDMub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDMub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzAzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wMy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA0Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA0Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA0Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA0Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA1Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA1Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA1Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDUub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDUub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA1Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA2Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA2Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA2Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDYub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDYub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNi5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA2Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNi5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA3Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA3Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA3Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDcub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDcub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA3Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wNy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA4Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA4Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA4Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDgub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDgub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wOC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA4Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wOC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA5Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA5Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA5Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDkub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMDkub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wOS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzA5Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8wOS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzEwLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzEwLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzEwLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMTAub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMTAub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8xMC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzEwLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8xMC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzExLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzExLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzExLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMTEub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2F0Z3JvdXBfMTEub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8xMS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9hdGdyb3VwXzExLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvYXRncm91cF8xMS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAwLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAwLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAwLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDAub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDAub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAwLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAxLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAxLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAxLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDEub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDEub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAxLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAyLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAyLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAyLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDIub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDIub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMi5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAyLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMi5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAzLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDMub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDMub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzAzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wMy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzA0Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzA0Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzA0Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2NvbW1lbnRfMDQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wNC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9jb21tZW50XzA0Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvY29tbWVudF8wNC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDAub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMC5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAwLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMC5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAwLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDAub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDAub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAxLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDEub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMS5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDEub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMS5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDEub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAxLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAxLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMi5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAyLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDIub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAyLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDIub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAyLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMi5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMi5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDMub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMy5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMy5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzAzLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wMy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDMub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDMub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA0Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDQub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNC5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDQub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA0Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA0Lm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA1Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDUub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA1Lm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDUub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA1Lm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDYub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNi5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA2Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNi5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZXNjYXBlXzA2Lm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2VzY2FwZV8wNi5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDYub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9lc2NhcGVfMDYub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDAub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAwLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMC5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDAub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDAub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDAub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDEub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAxLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAxLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMS5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAxLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAyLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC9maXJzdF8wMi5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDIub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDIub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAyLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAyLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L2ZpcnN0XzAyLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvZmlyc3RfMDIub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAwLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDAub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDAub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMC5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDAub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAwLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAwLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAxLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDEub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAxLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDEub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAxLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDIub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMi5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAyLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMi5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAyLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMi5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDIub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDIub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDMub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMy5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDMub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wMy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDMub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzAzLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNC5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA0Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDQub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA0Lm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA0Lm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNC5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDUub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNS5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA1Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNS5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA1Lm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDUub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDUub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA2Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDYub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNi5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDYub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNi5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDYub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA2Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA2Lm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA3Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDcub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA3Lm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDcub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA3Lm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wNy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDgub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wOC5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA4Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wOC5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA4Lm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wOC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDgub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDgub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA5Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDkub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wOS5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDkub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vb3V0L3VybF8wOS5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL291dC91cmxfMDkub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA5Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi9vdXQvdXJsXzA5Lm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzAwLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wMC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDAuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDAuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzAxLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wMS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDEuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDEuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzAyLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wMi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDIuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDIuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzAzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wMy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDMuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzA0LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wNC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDQuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDQuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzA1LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wNS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDUuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDUuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzA2LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wNi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDYuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDYuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzA3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wNy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDcuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDcuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzA4LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wOC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDguY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDguY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL21haW4vdXJsXzA5LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy9tYWluL3VybF8wOS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDkuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMvbWFpbi91cmxfMDkuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9SRUFETUUgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL1JFQURNRQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvUkVBRE1FCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL1JFQURNRQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYmFja2dyb3VuZC1wb3NpdGlvbi5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2JhY2tncm91bmQtcG9zaXRpb24uY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9iYWNrZ3JvdW5kLXBvc2l0aW9uLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9iYWNrZ3JvdW5kLXBvc2l0aW9uLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYmFja2dyb3VuZC1wb3NpdGlvbi5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9iYWNrZ3JvdW5kLXBvc2l0aW9uLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2JhY2tncm91bmQtcG9zaXRpb24uY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9iYWNrZ3JvdW5kLXBvc2l0aW9uLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2JvcmRlci1ub25lLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYm9yZGVyLW5vbmUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3JkZXItbm9uZS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYm9yZGVyLW5vbmUuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3JkZXItbm9uZS5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3JkZXItbm9uZS5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3JkZXItbm9uZS5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2JvcmRlci1ub25lLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2JveC1tb2RlbC1oYWNrLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYm94LW1vZGVsLWhhY2suY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3gtbW9kZWwtaGFjay5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYm94LW1vZGVsLWhhY2suY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3gtbW9kZWwtaGFjay5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3gtbW9kZWwtaGFjay5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9ib3gtbW9kZWwtaGFjay5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2JveC1tb2RlbC1oYWNrLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5NzQuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTc0LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk3NC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk3NC5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5NzQuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk3NC5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTc0LmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk3NC5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTkxLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk5MS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5OTEuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5OTEuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTkxLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5OTEuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk5MS5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5OTEuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk5OC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5OTguY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTk4LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTk4LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyNzk5OC5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTk4LmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1Mjc5OTguY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI3OTk4LmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1MjgwMzQuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI4MDM0LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyODAzNC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyODAzNC5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2J1ZzI1MjgwMzQuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyODAzNC5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9idWcyNTI4MDM0LmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvYnVnMjUyODAzNC5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jaGFyc2V0LW1lZGlhLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY2hhcnNldC1tZWRpYS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NoYXJzZXQtbWVkaWEuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NoYXJzZXQtbWVkaWEuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jaGFyc2V0LW1lZGlhLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NoYXJzZXQtbWVkaWEuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY2hhcnNldC1tZWRpYS5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NoYXJzZXQtbWVkaWEuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3Itc2ltcGxlLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3Itc2ltcGxlLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3Itc2ltcGxlLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb2xvci1zaW1wbGUuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb2xvci1zaW1wbGUuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3Itc2ltcGxlLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbG9yLXNpbXBsZS5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbG9yLXNpbXBsZS5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb2xvci5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbG9yLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3IuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbG9yLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3IuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3IuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29sb3IuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb2xvci5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb21tZW50LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29tbWVudC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbW1lbnQuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbW1lbnQuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb21tZW50LmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbW1lbnQuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29tbWVudC5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbW1lbnQuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29uY2F0LWNoYXJzZXQuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb25jYXQtY2hhcnNldC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbmNhdC1jaGFyc2V0LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9jb25jYXQtY2hhcnNldC5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbmNhdC1jaGFyc2V0LmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbmNhdC1jaGFyc2V0LmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2NvbmNhdC1jaGFyc2V0LmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvY29uY2F0LWNoYXJzZXQuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtZG91YmxlcXVvdGVzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtZG91YmxlcXVvdGVzLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtZG91YmxlcXVvdGVzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1kb3VibGVxdW90ZXMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1kb3VibGVxdW90ZXMuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtZG91YmxlcXVvdGVzLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWRvdWJsZXF1b3Rlcy5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWRvdWJsZXF1b3Rlcy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1lb2YuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1lb2YuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1lb2YuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWVvZi5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWVvZi5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1lb2YuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtZW9mLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtZW9mLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWxpbmVicmVha2luZGF0YS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWxpbmVicmVha2luZGF0YS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWxpbmVicmVha2luZGF0YS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtbGluZWJyZWFraW5kYXRhLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtbGluZWJyZWFraW5kYXRhLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LWxpbmVicmVha2luZGF0YS5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1saW5lYnJlYWtpbmRhdGEuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1saW5lYnJlYWtpbmRhdGEuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtbm9xdW90ZXMuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1ub3F1b3Rlcy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1ub3F1b3Rlcy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtbm9xdW90ZXMuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtc2luZ2xlcXVvdGVzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtc2luZ2xlcXVvdGVzLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtc2luZ2xlcXVvdGVzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1zaW5nbGVxdW90ZXMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC1zaW5nbGVxdW90ZXMuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtc2luZ2xlcXVvdGVzLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LXNpbmdsZXF1b3Rlcy5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LXNpbmdsZXF1b3Rlcy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC10d291cmxzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtdHdvdXJscy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LXR3b3VybHMuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LXR3b3VybHMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWJhc2U2NC10d291cmxzLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LXR3b3VybHMuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1iYXNlNjQtdHdvdXJscy5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtYmFzZTY0LXR3b3VybHMuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1kYnF1b3RlLWZvbnQuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWRicXVvdGUtZm9udC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtZGJxdW90ZS1mb250LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLWRicXVvdGUtZm9udC5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtZGJxdW90ZS1mb250LmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtZGJxdW90ZS1mb250LmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtZGJxdW90ZS1mb250LmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1kYnF1b3RlLWZvbnQuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtZG91YmxlcXVvdGVzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtZG91YmxlcXVvdGVzLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtZG91YmxlcXVvdGVzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1kb3VibGVxdW90ZXMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1kb3VibGVxdW90ZXMuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtZG91YmxlcXVvdGVzLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9uYmFzZTY0LWRvdWJsZXF1b3Rlcy5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9uYmFzZTY0LWRvdWJsZXF1b3Rlcy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1ub3F1b3Rlcy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9uYmFzZTY0LW5vcXVvdGVzLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9uYmFzZTY0LW5vcXVvdGVzLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1ub3F1b3Rlcy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1zaW5nbGVxdW90ZXMuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1zaW5nbGVxdW90ZXMuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1zaW5nbGVxdW90ZXMuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9uYmFzZTY0LXNpbmdsZXF1b3Rlcy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9uYmFzZTY0LXNpbmdsZXF1b3Rlcy5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vbmJhc2U2NC1zaW5nbGVxdW90ZXMuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtc2luZ2xlcXVvdGVzLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub25iYXNlNjQtc2luZ2xlcXVvdGVzLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9xdW90ZS1tdWx0aWxpbmUtZm9udC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9xdW90ZS1tdWx0aWxpbmUtZm9udC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9xdW90ZS1tdWx0aWxpbmUtZm9udC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub3F1b3RlLW11bHRpbGluZS1mb250LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1ub3F1b3RlLW11bHRpbGluZS1mb250LmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtbm9xdW90ZS1tdWx0aWxpbmUtZm9udC5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vcXVvdGUtbXVsdGlsaW5lLWZvbnQuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLW5vcXVvdGUtbXVsdGlsaW5lLWZvbnQuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS1kb3VibGVxdW90ZXMuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLWRvdWJsZXF1b3Rlcy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLWRvdWJsZXF1b3Rlcy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS1kb3VibGVxdW90ZXMuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS1ub3F1b3Rlcy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtbm9xdW90ZXMuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLW5vcXVvdGVzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLW5vcXVvdGVzLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS1ub3F1b3Rlcy5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLW5vcXVvdGVzLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtbm9xdW90ZXMuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLW5vcXVvdGVzLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtc2luZ2xlcXVvdGVzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS1zaW5nbGVxdW90ZXMuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS1zaW5nbGVxdW90ZXMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEtc2luZ2xlcXVvdGVzLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEteXVpYXBwLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS15dWlhcHAuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1yZWFsZGF0YS15dWlhcHAuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtcmVhbGRhdGEteXVpYXBwLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtc2luZ2xlcXVvdGUtZm9udC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtc2luZ2xlcXVvdGUtZm9udC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtc2luZ2xlcXVvdGUtZm9udC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1zaW5nbGVxdW90ZS1mb250LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGF0YXVybC1zaW5nbGVxdW90ZS1mb250LmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RhdGF1cmwtc2luZ2xlcXVvdGUtZm9udC5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXNpbmdsZXF1b3RlLWZvbnQuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kYXRhdXJsLXNpbmdsZXF1b3RlLWZvbnQuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGVjaW1hbHMuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kZWNpbWFscy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RlY2ltYWxzLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kZWNpbWFscy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RlY2ltYWxzLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RlY2ltYWxzLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RlY2ltYWxzLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZGVjaW1hbHMuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZG9sbGFyLWhlYWRlci5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RvbGxhci1oZWFkZXIuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kb2xsYXItaGVhZGVyLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kb2xsYXItaGVhZGVyLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZG9sbGFyLWhlYWRlci5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kb2xsYXItaGVhZGVyLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2RvbGxhci1oZWFkZXIuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9kb2xsYXItaGVhZGVyLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2ZvbnQtZmFjZS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2ZvbnQtZmFjZS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2ZvbnQtZmFjZS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZm9udC1mYWNlLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvZm9udC1mYWNlLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2ZvbnQtZmFjZS5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9mb250LWZhY2UuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9mb250LWZhY2UuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvaWU1bWFjLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvaWU1bWFjLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvaWU1bWFjLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9pZTVtYWMuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9pZTVtYWMuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvaWU1bWFjLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2llNW1hYy5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL2llNW1hYy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9tZWRpYS1lbXB0eS1jbGFzcy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLWVtcHR5LWNsYXNzLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtZW1wdHktY2xhc3MuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLWVtcHR5LWNsYXNzLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtZW1wdHktY2xhc3MuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtZW1wdHktY2xhc3MuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtZW1wdHktY2xhc3MuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9tZWRpYS1lbXB0eS1jbGFzcy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9tZWRpYS1tdWx0aS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLW11bHRpLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtbXVsdGkuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLW11bHRpLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtbXVsdGkuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtbXVsdGkuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtbXVsdGkuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9tZWRpYS1tdWx0aS5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9tZWRpYS10ZXN0LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtdGVzdC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLXRlc3QuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLXRlc3QuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9tZWRpYS10ZXN0LmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLXRlc3QuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvbWVkaWEtdGVzdC5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL21lZGlhLXRlc3QuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3BhY2l0eS1maWx0ZXIuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vcGFjaXR5LWZpbHRlci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL29wYWNpdHktZmlsdGVyLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vcGFjaXR5LWZpbHRlci5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL29wYWNpdHktZmlsdGVyLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL29wYWNpdHktZmlsdGVyLmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL29wYWNpdHktZmlsdGVyLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3BhY2l0eS1maWx0ZXIuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2JhY2tncm91bmQtcG9zaXRpb24ub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYmFja2dyb3VuZC1wb3NpdGlvbi5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9iYWNrZ3JvdW5kLXBvc2l0aW9uLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYmFja2dyb3VuZC1wb3NpdGlvbi5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9iYWNrZ3JvdW5kLXBvc2l0aW9uLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYmFja2dyb3VuZC1wb3NpdGlvbi5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2JhY2tncm91bmQtcG9zaXRpb24ub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2JhY2tncm91bmQtcG9zaXRpb24ub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3JkZXItbm9uZS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3JkZXItbm9uZS5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3JkZXItbm9uZS5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2JvcmRlci1ub25lLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2JvcmRlci1ub25lLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYm9yZGVyLW5vbmUub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3JkZXItbm9uZS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYm9yZGVyLW5vbmUub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3gtbW9kZWwtaGFjay5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3gtbW9kZWwtaGFjay5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3gtbW9kZWwtaGFjay5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2JveC1tb2RlbC1oYWNrLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2JveC1tb2RlbC1oYWNrLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYm94LW1vZGVsLWhhY2sub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9ib3gtbW9kZWwtaGFjay5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYm94LW1vZGVsLWhhY2sub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTc0Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5NzQub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk3NC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5NzQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk3NC5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5NzQub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTc0Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTc0Lm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk5MS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTkxLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5OTEub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTkxLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5OTEub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTkxLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk5MS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk5MS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5OTgub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk5OC5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTk4Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk5OC5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI3OTk4Lm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyNzk5OC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5OTgub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1Mjc5OTgub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI4MDM0Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1MjgwMzQub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyODAzNC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1MjgwMzQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvYnVnMjUyODAzNC5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2J1ZzI1MjgwMzQub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI4MDM0Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9idWcyNTI4MDM0Lm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY2hhcnNldC1tZWRpYS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jaGFyc2V0LW1lZGlhLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NoYXJzZXQtbWVkaWEub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jaGFyc2V0LW1lZGlhLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NoYXJzZXQtbWVkaWEub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jaGFyc2V0LW1lZGlhLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY2hhcnNldC1tZWRpYS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY2hhcnNldC1tZWRpYS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbG9yLXNpbXBsZS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb2xvci1zaW1wbGUub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29sb3Itc2ltcGxlLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29sb3Itc2ltcGxlLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbG9yLXNpbXBsZS5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbG9yLXNpbXBsZS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbG9yLXNpbXBsZS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29sb3Itc2ltcGxlLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29sb3Iub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29sb3Iub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29sb3Iub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb2xvci5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb2xvci5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbG9yLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29sb3Iub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbG9yLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29tbWVudC5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb21tZW50Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbW1lbnQub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb21tZW50Lm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbW1lbnQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb21tZW50Lm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29tbWVudC5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29tbWVudC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbmNhdC1jaGFyc2V0Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbmNhdC1jaGFyc2V0Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbmNhdC1jaGFyc2V0Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29uY2F0LWNoYXJzZXQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvY29uY2F0LWNoYXJzZXQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb25jYXQtY2hhcnNldC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2NvbmNhdC1jaGFyc2V0Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9jb25jYXQtY2hhcnNldC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1kb3VibGVxdW90ZXMub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtZG91YmxlcXVvdGVzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtZG91YmxlcXVvdGVzLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtZG91YmxlcXVvdGVzLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtZW9mLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWVvZi5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1lb2Yub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1lb2Yub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtZW9mLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtZW9mLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtZW9mLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1lb2Yub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1saW5lYnJlYWtpbmRhdGEub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtbGluZWJyZWFraW5kYXRhLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWxpbmVicmVha2luZGF0YS5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWxpbmVicmVha2luZGF0YS5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1saW5lYnJlYWtpbmRhdGEub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1saW5lYnJlYWtpbmRhdGEub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1saW5lYnJlYWtpbmRhdGEub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LWxpbmVicmVha2luZGF0YS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtbm9xdW90ZXMub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtbm9xdW90ZXMub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1ub3F1b3Rlcy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LW5vcXVvdGVzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1ub3F1b3Rlcy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LXNpbmdsZXF1b3Rlcy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC1zaW5nbGVxdW90ZXMub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtc2luZ2xlcXVvdGVzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtc2luZ2xlcXVvdGVzLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LXNpbmdsZXF1b3Rlcy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LXNpbmdsZXF1b3Rlcy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LXNpbmdsZXF1b3Rlcy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtc2luZ2xlcXVvdGVzLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtdHdvdXJscy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC10d291cmxzLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LXR3b3VybHMub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC10d291cmxzLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtYmFzZTY0LXR3b3VybHMub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWJhc2U2NC10d291cmxzLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtdHdvdXJscy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1iYXNlNjQtdHdvdXJscy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtZGJxdW90ZS1mb250Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtZGJxdW90ZS1mb250Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtZGJxdW90ZS1mb250Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1kYnF1b3RlLWZvbnQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1kYnF1b3RlLWZvbnQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWRicXVvdGUtZm9udC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtZGJxdW90ZS1mb250Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLWRicXVvdGUtZm9udC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9uYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vbmJhc2U2NC1kb3VibGVxdW90ZXMub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtZG91YmxlcXVvdGVzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtZG91YmxlcXVvdGVzLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9uYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9uYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9uYmFzZTY0LWRvdWJsZXF1b3Rlcy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtZG91YmxlcXVvdGVzLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vbmJhc2U2NC1ub3F1b3Rlcy5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vbmJhc2U2NC1ub3F1b3Rlcy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9uYmFzZTY0LW5vcXVvdGVzLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtbm9xdW90ZXMub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9uYmFzZTY0LW5vcXVvdGVzLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtc2luZ2xlcXVvdGVzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9uYmFzZTY0LXNpbmdsZXF1b3Rlcy5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vbmJhc2U2NC1zaW5nbGVxdW90ZXMub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vbmJhc2U2NC1zaW5nbGVxdW90ZXMub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtc2luZ2xlcXVvdGVzLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtc2luZ2xlcXVvdGVzLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub25iYXNlNjQtc2luZ2xlcXVvdGVzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vbmJhc2U2NC1zaW5nbGVxdW90ZXMub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vcXVvdGUtbXVsdGlsaW5lLWZvbnQub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1ub3F1b3RlLW11bHRpbGluZS1mb250Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9xdW90ZS1tdWx0aWxpbmUtZm9udC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9xdW90ZS1tdWx0aWxpbmUtZm9udC5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vcXVvdGUtbXVsdGlsaW5lLWZvbnQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vcXVvdGUtbXVsdGlsaW5lLWZvbnQub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLW5vcXVvdGUtbXVsdGlsaW5lLWZvbnQub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtbm9xdW90ZS1tdWx0aWxpbmUtZm9udC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS1kb3VibGVxdW90ZXMub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS1kb3VibGVxdW90ZXMub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLWRvdWJsZXF1b3Rlcy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtZG91YmxlcXVvdGVzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLWRvdWJsZXF1b3Rlcy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtbm9xdW90ZXMub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS1ub3F1b3Rlcy5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLW5vcXVvdGVzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS1ub3F1b3Rlcy5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLW5vcXVvdGVzLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS1ub3F1b3Rlcy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtbm9xdW90ZXMub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtbm9xdW90ZXMub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtc2luZ2xlcXVvdGVzLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEtc2luZ2xlcXVvdGVzLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS1zaW5nbGVxdW90ZXMub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXNpbmdsZXF1b3Rlcy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS1zaW5nbGVxdW90ZXMub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEteXVpYXBwLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtcmVhbGRhdGEteXVpYXBwLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS15dWlhcHAub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXJlYWxkYXRhLXl1aWFwcC5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1yZWFsZGF0YS15dWlhcHAub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXNpbmdsZXF1b3RlLWZvbnQub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGF0YXVybC1zaW5nbGVxdW90ZS1mb250Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtc2luZ2xlcXVvdGUtZm9udC5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtc2luZ2xlcXVvdGUtZm9udC5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXNpbmdsZXF1b3RlLWZvbnQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXNpbmdsZXF1b3RlLWZvbnQub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kYXRhdXJsLXNpbmdsZXF1b3RlLWZvbnQub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RhdGF1cmwtc2luZ2xlcXVvdGUtZm9udC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RlY2ltYWxzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RlY2ltYWxzLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RlY2ltYWxzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGVjaW1hbHMub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZGVjaW1hbHMub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kZWNpbWFscy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RlY2ltYWxzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kZWNpbWFscy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RvbGxhci1oZWFkZXIub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZG9sbGFyLWhlYWRlci5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kb2xsYXItaGVhZGVyLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZG9sbGFyLWhlYWRlci5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9kb2xsYXItaGVhZGVyLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZG9sbGFyLWhlYWRlci5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RvbGxhci1oZWFkZXIub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2RvbGxhci1oZWFkZXIub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9mb250LWZhY2Uub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvZm9udC1mYWNlLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2ZvbnQtZmFjZS5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2ZvbnQtZmFjZS5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9mb250LWZhY2Uub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9mb250LWZhY2Uub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9mb250LWZhY2Uub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2ZvbnQtZmFjZS5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2llNW1hYy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9pZTVtYWMub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvaWU1bWFjLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvaWU1bWFjLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2llNW1hYy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2llNW1hYy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L2llNW1hYy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvaWU1bWFjLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtZW1wdHktY2xhc3Mub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtZW1wdHktY2xhc3Mub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtZW1wdHktY2xhc3Mub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9tZWRpYS1lbXB0eS1jbGFzcy5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9tZWRpYS1lbXB0eS1jbGFzcy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L21lZGlhLWVtcHR5LWNsYXNzLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtZW1wdHktY2xhc3Mub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L21lZGlhLWVtcHR5LWNsYXNzLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtbXVsdGkub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtbXVsdGkub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtbXVsdGkub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9tZWRpYS1tdWx0aS5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9tZWRpYS1tdWx0aS5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L21lZGlhLW11bHRpLm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtbXVsdGkub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L21lZGlhLW11bHRpLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtdGVzdC5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9tZWRpYS10ZXN0Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L21lZGlhLXRlc3Qub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9tZWRpYS10ZXN0Lm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L21lZGlhLXRlc3Qub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9tZWRpYS10ZXN0Lm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtdGVzdC5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvbWVkaWEtdGVzdC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L29wYWNpdHktZmlsdGVyLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L29wYWNpdHktZmlsdGVyLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L29wYWNpdHktZmlsdGVyLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvb3BhY2l0eS1maWx0ZXIub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvb3BhY2l0eS1maWx0ZXIub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9vcGFjaXR5LWZpbHRlci5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L29wYWNpdHktZmlsdGVyLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9vcGFjaXR5LWZpbHRlci5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLWNhc2Uub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHJlc2VydmUtY2FzZS5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1jYXNlLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHJlc2VydmUtY2FzZS5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1jYXNlLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHJlc2VydmUtY2FzZS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLWNhc2Uub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLWNhc2Uub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1uZXctbGluZS5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1uZXctbGluZS5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1uZXctbGluZS5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLW5ldy1saW5lLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLW5ldy1saW5lLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHJlc2VydmUtbmV3LWxpbmUub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1uZXctbGluZS5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHJlc2VydmUtbmV3LWxpbmUub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1zdHJpbmdzLm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLXN0cmluZ3Mub3V0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHJlc2VydmUtc3RyaW5ncy5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLXN0cmluZ3Mub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHJlc2VydmUtc3RyaW5ncy5vdXQuYiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3ByZXNlcnZlLXN0cmluZ3Mub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1zdHJpbmdzLm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wcmVzZXJ2ZS1zdHJpbmdzLm91dC5iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHNldWRvLWZpcnN0Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3BzZXVkby1maXJzdC5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wc2V1ZG8tZmlyc3Qub3V0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wc2V1ZG8tZmlyc3Qub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHNldWRvLWZpcnN0Lm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHNldWRvLWZpcnN0Lm91dC5iCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHNldWRvLWZpcnN0Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wc2V1ZG8tZmlyc3Qub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wc2V1ZG8ub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvcHNldWRvLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3BzZXVkby5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3BzZXVkby5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wc2V1ZG8ub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wc2V1ZG8ub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9wc2V1ZG8ub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3BzZXVkby5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3NwZWNpYWwtY29tbWVudHMub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvc3BlY2lhbC1jb21tZW50cy5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zcGVjaWFsLWNvbW1lbnRzLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvc3BlY2lhbC1jb21tZW50cy5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zcGVjaWFsLWNvbW1lbnRzLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvc3BlY2lhbC1jb21tZW50cy5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3NwZWNpYWwtY29tbWVudHMub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3NwZWNpYWwtY29tbWVudHMub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zdGFyLXVuZGVyc2NvcmUtaGFja3Mub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvc3Rhci11bmRlcnNjb3JlLWhhY2tzLm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3N0YXItdW5kZXJzY29yZS1oYWNrcy5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3N0YXItdW5kZXJzY29yZS1oYWNrcy5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zdGFyLXVuZGVyc2NvcmUtaGFja3Mub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zdGFyLXVuZGVyc2NvcmUtaGFja3Mub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zdGFyLXVuZGVyc2NvcmUtaGFja3Mub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3N0YXItdW5kZXJzY29yZS1oYWNrcy5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3N0cmluZy1pbi1jb21tZW50Lm91dCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3N0cmluZy1pbi1jb21tZW50Lm91dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3N0cmluZy1pbi1jb21tZW50Lm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvc3RyaW5nLWluLWNvbW1lbnQub3V0CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvc3RyaW5nLWluLWNvbW1lbnQub3V0LmIgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zdHJpbmctaW4tY29tbWVudC5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3N0cmluZy1pbi1jb21tZW50Lm91dC5iCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC9zdHJpbmctaW4tY29tbWVudC5vdXQuYgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3dlYmtpdC10cmFuc2Zvcm0ub3V0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvd2Via2l0LXRyYW5zZm9ybS5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC93ZWJraXQtdHJhbnNmb3JtLm91dApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvd2Via2l0LXRyYW5zZm9ybS5vdXQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC93ZWJraXQtdHJhbnNmb3JtLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvd2Via2l0LXRyYW5zZm9ybS5vdXQuYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3dlYmtpdC10cmFuc2Zvcm0ub3V0LmIKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3dlYmtpdC10cmFuc2Zvcm0ub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC96ZXJvcy5vdXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC96ZXJvcy5vdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC96ZXJvcy5vdXQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3plcm9zLm91dApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvb3V0L3plcm9zLm91dC5iIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvemVyb3Mub3V0LmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL291dC96ZXJvcy5vdXQuYgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9vdXQvemVyb3Mub3V0LmIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLWNhc2UuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wcmVzZXJ2ZS1jYXNlLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtY2FzZS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtY2FzZS5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLWNhc2UuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtY2FzZS5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wcmVzZXJ2ZS1jYXNlLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtY2FzZS5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wcmVzZXJ2ZS1uZXctbGluZS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLW5ldy1saW5lLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtbmV3LWxpbmUuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLW5ldy1saW5lLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtbmV3LWxpbmUuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtbmV3LWxpbmUuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtbmV3LWxpbmUuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wcmVzZXJ2ZS1uZXctbGluZS5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wcmVzZXJ2ZS1zdHJpbmdzLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtc3RyaW5ncy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLXN0cmluZ3MuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLXN0cmluZ3MuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wcmVzZXJ2ZS1zdHJpbmdzLmNzcy5taW4gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLXN0cmluZ3MuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHJlc2VydmUtc3RyaW5ncy5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3ByZXNlcnZlLXN0cmluZ3MuY3NzLm1pbgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHNldWRvLWZpcnN0LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHNldWRvLWZpcnN0LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHNldWRvLWZpcnN0LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wc2V1ZG8tZmlyc3QuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wc2V1ZG8tZmlyc3QuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHNldWRvLWZpcnN0LmNzcy5taW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3BzZXVkby1maXJzdC5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3BzZXVkby1maXJzdC5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wc2V1ZG8uY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wc2V1ZG8uY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wc2V1ZG8uY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3BzZXVkby5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3BzZXVkby5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9wc2V1ZG8uY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHNldWRvLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvcHNldWRvLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3NwZWNpYWwtY29tbWVudHMuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zcGVjaWFsLWNvbW1lbnRzLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3BlY2lhbC1jb21tZW50cy5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3BlY2lhbC1jb21tZW50cy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3NwZWNpYWwtY29tbWVudHMuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3BlY2lhbC1jb21tZW50cy5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zcGVjaWFsLWNvbW1lbnRzLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3BlY2lhbC1jb21tZW50cy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdGFyLXVuZGVyc2NvcmUtaGFja3MuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdGFyLXVuZGVyc2NvcmUtaGFja3MuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdGFyLXVuZGVyc2NvcmUtaGFja3MuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3N0YXItdW5kZXJzY29yZS1oYWNrcy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3N0YXItdW5kZXJzY29yZS1oYWNrcy5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdGFyLXVuZGVyc2NvcmUtaGFja3MuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3Rhci11bmRlcnNjb3JlLWhhY2tzLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3Rhci11bmRlcnNjb3JlLWhhY2tzLmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3N0cmluZy1pbi1jb21tZW50LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3RyaW5nLWluLWNvbW1lbnQuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdHJpbmctaW4tY29tbWVudC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvc3RyaW5nLWluLWNvbW1lbnQuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdHJpbmctaW4tY29tbWVudC5jc3MubWluIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdHJpbmctaW4tY29tbWVudC5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS9zdHJpbmctaW4tY29tbWVudC5jc3MubWluCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3N0cmluZy1pbi1jb21tZW50LmNzcy5taW4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3dlYmtpdC10cmFuc2Zvcm0uY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS93ZWJraXQtdHJhbnNmb3JtLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvd2Via2l0LXRyYW5zZm9ybS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvd2Via2l0LXRyYW5zZm9ybS5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3dlYmtpdC10cmFuc2Zvcm0uY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvd2Via2l0LXRyYW5zZm9ybS5jc3MubWluCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS93ZWJraXQtdHJhbnNmb3JtLmNzcy5taW4KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvd2Via2l0LXRyYW5zZm9ybS5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS96ZXJvcy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3plcm9zLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvemVyb3MuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jjc3NtaW4vdGVzdHMveXVpL3plcm9zLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvemVyb3MuY3NzLm1pbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvemVyb3MuY3NzLm1pbgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmNzc21pbi90ZXN0cy95dWkvemVyb3MuY3NzLm1pbgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yY3NzbWluL3Rlc3RzL3l1aS96ZXJvcy5jc3MubWluCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vTElDRU5TRSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9MSUNFTlNFCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9MSUNFTlNFCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vTUFOSUZFU1QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9NQU5JRkVTVApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL01BTklGRVNUCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9NQU5JRkVTVApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL1BLRy1JTkZPIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vUEtHLUlORk8Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9QS0ctSU5GTwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vUEtHLUlORk8KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9SRUFETUUuY2hyb21pdW0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9SRUFETUUuY2hyb21pdW0KcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL1JFQURNRS5jaHJvbWl1bQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL1JFQURNRS5yc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9SRUFETUUucnN0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vUkVBRE1FLnJzdApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vUkVBRE1FLnJzdApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9fX2luaXRfXy5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL19faW5pdF9fLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL2luY2x1ZGUvY2V4dC5oIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL2luY2x1ZGUvY2V4dC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL2luY2x1ZGUvY2V4dC5oCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvaW5jbHVkZS9jZXh0LmgKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9fX2luaXRfXy5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvX19pbml0X18ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL2NvbW1hbmRzLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9jb21tYW5kcy5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvY29tbWFuZHMucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvY29tbWFuZHMucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL2RhdGEucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL2RhdGEucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL2RhdGEucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvZGF0YS5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvZGlzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvZGlzdC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvZGlzdC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9kaXN0LnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9leHQucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL2V4dC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvZXh0LnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL2V4dC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvc2V0dXAucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL3NldHVwLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9zZXR1cC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvc2hlbGwucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkyL3NoZWxsLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9zaGVsbC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi9zaGVsbC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvdXRpbC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvdXRpbC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTIvdXRpbC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5Mi91dGlsLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL19faW5pdF9fLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL19faW5pdF9fLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9jb21tYW5kcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvY29tbWFuZHMucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL2NvbW1hbmRzLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL2NvbW1hbmRzLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9kYXRhLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9kYXRhLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9kYXRhLnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL2RhdGEucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL2Rpc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL2Rpc3QucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL2Rpc3QucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvZGlzdC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvZXh0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9leHQucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL2V4dC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9leHQucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL3NldHVwLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9zZXR1cC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvc2V0dXAucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvc2V0dXAucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL3NoZWxsLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vX3NldHVwL3B5My9zaGVsbC5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvc2hlbGwucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvc2hlbGwucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL3V0aWwucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL3V0aWwucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9fc2V0dXAvcHkzL3V0aWwucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL19zZXR1cC9weTMvdXRpbC5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9fX2luaXRfXy5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9hcGl2aWV3ZXIuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9hcGl2aWV3ZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9hcGl2aWV3ZXIuanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2FwaXZpZXdlci5qcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2Jvb3RzdHJhcC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2Jvb3RzdHJhcC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2Jvb3RzdHJhcC5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvYm9vdHN0cmFwLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvanF1ZXJ5LTEuNy4xLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvanF1ZXJ5LTEuNy4xLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvanF1ZXJ5LTEuNy4xLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9qcXVlcnktMS43LjEuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9qc21pbi5jIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvanNtaW4uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2pzbWluLmMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2pzbWluLmMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9qc21pbi5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2pzbWluLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvanNtaW4ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2pzbWluLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvanNtaW5fMl8wXzkucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9qc21pbl8yXzBfOS5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2pzbWluXzJfMF85LnB5CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9qc21pbl8yXzBfOS5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL2tub2Nrb3V0LTIuMC4wLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gva25vY2tvdXQtMi4wLjAuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9rbm9ja291dC0yLjAuMC5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gva25vY2tvdXQtMi4wLjAuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9tYWluLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvbWFpbi5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL21haW4ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL21haW4ucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC9tYXJrZXJtYW5hZ2VyLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvbWFya2VybWFuYWdlci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL21hcmtlcm1hbmFnZXIuanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL21hcmtlcm1hbmFnZXIuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9iZW5jaC93cml0ZS5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL3dyaXRlLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vYmVuY2gvd3JpdGUucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2JlbmNoL3dyaXRlLnB5CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9CRU5DSE1BUktTIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9CRU5DSE1BUktTCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9CRU5DSE1BUktTCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL0JFTkNITUFSS1MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL0NIQU5HRVMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL0NIQU5HRVMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL0NIQU5HRVMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvQ0hBTkdFUwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvQ0xBU1NJRklFUlMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL0NMQVNTSUZJRVJTCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9DTEFTU0lGSUVSUwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9DTEFTU0lGSUVSUwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvREVTQ1JJUFRJT04gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL0RFU0NSSVBUSU9OCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9ERVNDUklQVElPTgpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9ERVNDUklQVElPTgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvUFJPVklERVMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL1BST1ZJREVTCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9QUk9WSURFUwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9QUk9WSURFUwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvU1VNTUFSWSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvU1VNTUFSWQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvU1VNTUFSWQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9TVU1NQVJZCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvYXBpLW9iamVjdHMudHh0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvYXBpLW9iamVjdHMudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvYXBpLW9iamVjdHMudHh0CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9hcGktb2JqZWN0cy50eHQKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9jcmFyci5wbmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9jcmFyci5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9jcmFyci5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL2NyYXJyLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvZXB5ZG9jLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL2VweWRvYy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9lcHlkb2MuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9lcHlkb2MuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvZXB5ZG9jLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvZXB5ZG9jLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvZXB5ZG9jLmpzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9lcHlkb2MuanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9oZWxwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9oZWxwLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9oZWxwLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL2hlbHAuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL2lkZW50aWZpZXItaW5kZXguaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL2lkZW50aWZpZXItaW5kZXguaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL2lkZW50aWZpZXItaW5kZXguaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvaWRlbnRpZmllci1pbmRleC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvaW5kZXguaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL2luZGV4Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9pbmRleC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9pbmRleC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvbW9kdWxlLXRyZWUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL21vZHVsZS10cmVlLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9tb2R1bGUtdHJlZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9tb2R1bGUtdHJlZS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvcmVkaXJlY3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL3JlZGlyZWN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9yZWRpcmVjdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9yZWRpcmVjdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvcmpzbWluLW1vZHVsZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvcmpzbWluLW1vZHVsZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvcmpzbWluLW1vZHVsZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9yanNtaW4tbW9kdWxlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9kb2NzL2FwaWRvYy9yanNtaW4tcHlzcmMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL3Jqc21pbi1weXNyYy5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vZG9jcy9hcGlkb2MvcmpzbWluLXB5c3JjLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL2RvY3MvYXBpZG9jL3Jqc21pbi1weXNyYy5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vcGFja2FnZS5jZmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9wYWNrYWdlLmNmZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL3BhY2thZ2UuY2ZnCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9wYWNrYWdlLmNmZwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL3Jqc21pbi5jIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vcmpzbWluLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9yanNtaW4uYwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vcmpzbWluLmMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9yanNtaW4ucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9yanNtaW4ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9yanNtaW4ucHkKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL3Jqc21pbi5weQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3R2Y20vdGhpcmRfcGFydHkvcmpzbWluL3NldHVwLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vc2V0dXAucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS90dmNtL3RoaXJkX3BhcnR5L3Jqc21pbi9zZXR1cC5weQpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90aGlyZF9wYXJ0eS9yanNtaW4vc2V0dXAucHkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9fX2luaXRfXy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjg3NDc2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyIiIlRyYWNlLXZpZXdlciBjb21wb25lbnQgbW9kZWwuCisKK1RoaXMgbW9kdWxlIGltcGxlbWVudHMgdHJhY2Utdmlld2VyJ3MgY29tcG9uZW50IG1vZGVsLgorIiIiCisKK2Zyb20gdHZjbS5nZW5lcmF0ZSBpbXBvcnQgKiAgIyBweWxpbnQ6IGRpc2FibGU9d2lsZGNhcmQtaW1wb3J0Citmcm9tIHR2Y20ucHJvamVjdCBpbXBvcnQgUHJvamVjdApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Zha2VfZnMucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZmFrZV9mcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjVjYjhiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Zha2VfZnMucHkKQEAgLTAsMCArMSwxNDcgQEAKKyMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IGNvZGVjcworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBTdHJpbmdJTworCisKK2NsYXNzIFdpdGhhYmxlU3RyaW5nSU8oU3RyaW5nSU8uU3RyaW5nSU8pOgorCisgIGRlZiBfX2VudGVyX18oc2VsZiwgKmFyZ3MpOgorICAgIHJldHVybiBzZWxmCisKKyAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKKyAgICBwYXNzCisKKworY2xhc3MgRmFrZUZTKG9iamVjdCk6CisKKyAgZGVmIF9faW5pdF9fKHNlbGYsIGluaXRpYWxfZmlsZW5hbWVzX2FuZF9jb250ZW50cz1Ob25lKToKKyAgICBzZWxmLl9maWxlX2NvbnRlbnRzID0ge30KKyAgICBpZiBpbml0aWFsX2ZpbGVuYW1lc19hbmRfY29udGVudHM6CisgICAgICBmb3IgaywgdiBpbiBpbml0aWFsX2ZpbGVuYW1lc19hbmRfY29udGVudHMuaXRlcml0ZW1zKCk6CisgICAgICAgIHNlbGYuX2ZpbGVfY29udGVudHNba10gPSB2CisKKyAgICBzZWxmLl9ib3VuZCA9IEZhbHNlCisgICAgc2VsZi5fcmVhbF9jb2RlY3Nfb3BlbiA9IGNvZGVjcy5vcGVuCisgICAgc2VsZi5fcmVhbF9vcGVuID0gc3lzLm1vZHVsZXNbJ19fYnVpbHRpbl9fJ10ub3BlbgorICAgIHNlbGYuX3JlYWxfYWJzcGF0aCA9IG9zLnBhdGguYWJzcGF0aAorICAgIHNlbGYuX3JlYWxfZXhpc3RzID0gb3MucGF0aC5leGlzdHMKKyAgICBzZWxmLl9yZWFsX3dhbGsgPSBvcy53YWxrCisgICAgc2VsZi5fcmVhbF9saXN0ZGlyID0gb3MubGlzdGRpcgorCisgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgc2VsZi5CaW5kKCkKKyAgICByZXR1cm4gc2VsZgorCisgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6CisgICAgc2VsZi5VbmJpbmQoKQorCisgIGRlZiBCaW5kKHNlbGYpOgorICAgIGFzc2VydCBub3Qgc2VsZi5fYm91bmQKKyAgICBjb2RlY3Mub3BlbiA9IHNlbGYuX0Zha2VDb2RlY3NPcGVuCisgICAgc3lzLm1vZHVsZXNbJ19fYnVpbHRpbl9fJ10ub3BlbiA9IHNlbGYuX0Zha2VPcGVuCisgICAgb3MucGF0aC5hYnNwYXRoID0gc2VsZi5fRmFrZUFic3BhdGgKKyAgICBvcy5wYXRoLmV4aXN0cyA9IHNlbGYuX0Zha2VFeGlzdHMKKyAgICBvcy53YWxrID0gc2VsZi5fRmFrZVdhbGsKKyAgICBvcy5saXN0ZGlyID0gc2VsZi5fRmFrZUxpc3REaXIKKyAgICBzZWxmLl9ib3VuZCA9IFRydWUKKworICBkZWYgVW5iaW5kKHNlbGYpOgorICAgIGFzc2VydCBzZWxmLl9ib3VuZAorICAgIGNvZGVjcy5vcGVuID0gc2VsZi5fcmVhbF9jb2RlY3Nfb3BlbgorICAgIHN5cy5tb2R1bGVzWydfX2J1aWx0aW5fXyddLm9wZW4gPSBzZWxmLl9yZWFsX29wZW4KKyAgICBvcy5wYXRoLmFic3BhdGggPSBzZWxmLl9yZWFsX2Fic3BhdGgKKyAgICBvcy5wYXRoLmV4aXN0cyA9IHNlbGYuX3JlYWxfZXhpc3RzCisgICAgb3Mud2FsayA9IHNlbGYuX3JlYWxfd2FsaworICAgIG9zLmxpc3RkaXIgPSBzZWxmLl9yZWFsX2xpc3RkaXIKKyAgICBzZWxmLl9ib3VuZCA9IEZhbHNlCisKKyAgZGVmIEFkZEZpbGUoc2VsZiwgcGF0aCwgY29udGVudHMpOgorICAgIGFzc2VydCBwYXRoIG5vdCBpbiBzZWxmLl9maWxlX2NvbnRlbnRzCisgICAgcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgocGF0aCkKKyAgICBzZWxmLl9maWxlX2NvbnRlbnRzW3BhdGhdID0gY29udGVudHMKKworICBkZWYgX0Zha2VPcGVuKHNlbGYsIHBhdGgsIG1vZGU9Tm9uZSk6CisgICAgaWYgbW9kZSBpcyBOb25lOgorICAgICAgbW9kZSA9ICdyJworICAgIGlmIG1vZGUgPT0gJ3InIG9yIG1vZGUgPT0gJ3JVJyBvciBtb2RlID09ICdyYic6CisgICAgICBpZiBwYXRoIG5vdCBpbiBzZWxmLl9maWxlX2NvbnRlbnRzOgorICAgICAgICByZXR1cm4gc2VsZi5fcmVhbF9vcGVuKHBhdGgsIG1vZGUpCisgICAgICByZXR1cm4gV2l0aGFibGVTdHJpbmdJTyhzZWxmLl9maWxlX2NvbnRlbnRzW3BhdGhdKQorCisgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgZGVmIF9GYWtlQ29kZWNzT3BlbihzZWxmLCBwYXRoLCBtb2RlPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9Tm9uZSk6ICAjIHB5bGludDogZGlzYWJsZT11bnVzZWQtYXJndW1lbnQKKyAgICBpZiBtb2RlIGlzIE5vbmU6CisgICAgICBtb2RlID0gJ3InCisgICAgaWYgbW9kZSA9PSAncicgb3IgbW9kZSA9PSAnclUnIG9yIG1vZGUgPT0gJ3JiJzoKKyAgICAgIGlmIHBhdGggbm90IGluIHNlbGYuX2ZpbGVfY29udGVudHM6CisgICAgICAgIHJldHVybiBzZWxmLl9yZWFsX29wZW4ocGF0aCwgbW9kZSkKKyAgICAgIHJldHVybiBXaXRoYWJsZVN0cmluZ0lPKHNlbGYuX2ZpbGVfY29udGVudHNbcGF0aF0pCisKKyAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICBkZWYgX0Zha2VBYnNwYXRoKHNlbGYsIHBhdGgpOgorICAgICIiIk5vcm1hbGl6ZSB0aGUgcGF0aCBhbmQgZW5zdXJlIGl0IHN0YXJ0cyB3aXRoIG9zLnBhdGguc2VwLgorCisgICAgVGhlIHRlc3RzIGFsbCBhc3N1bWUgcGF0aHMgc3RhcnQgd2l0aCB0aGluZ3MgbGlrZSAnL215L3Byb2plY3QnLAorICAgIGFuZCB0aGlzIGFic3BhdGggaW1wbGVtZW50YWlvbiBtYWtlcyB0aGF0IGFzc3VtcHRpb24gd29yayBjb3JyZWN0bHkKKyAgICBvbiBXaW5kb3dzLgorICAgICIiIgorICAgIG5vcm1wYXRoID0gb3MucGF0aC5ub3JtcGF0aChwYXRoKQorICAgIGlmIG5vdCBub3JtcGF0aC5zdGFydHN3aXRoKG9zLnBhdGguc2VwKToKKyAgICAgIG5vcm1wYXRoID0gb3MucGF0aC5zZXAgKyBub3JtcGF0aAorICAgIHJldHVybiBub3JtcGF0aAorCisgIGRlZiBfRmFrZUV4aXN0cyhzZWxmLCBwYXRoKToKKyAgICBpZiBwYXRoIGluIHNlbGYuX2ZpbGVfY29udGVudHM6CisgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBzZWxmLl9yZWFsX2V4aXN0cyhwYXRoKQorCisgIGRlZiBfRmFrZVdhbGsoc2VsZiwgdG9wKToKKyAgICBhc3NlcnQgb3MucGF0aC5pc2Ficyh0b3ApCisgICAgYWxsX2ZpbGVuYW1lcyA9IHNlbGYuX2ZpbGVfY29udGVudHMua2V5cygpCisgICAgcGVuZGluZ19wcmVmaXhlcyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKKyAgICBwZW5kaW5nX3ByZWZpeGVzLmFwcGVuZCh0b3ApCisgICAgdmlzaXRlZF9wcmVmaXhlcyA9IHNldCgpCisgICAgd2hpbGUgbGVuKHBlbmRpbmdfcHJlZml4ZXMpOgorICAgICAgcHJlZml4ID0gcGVuZGluZ19wcmVmaXhlcy5wb3BsZWZ0KCkKKyAgICAgIGlmIHByZWZpeCBpbiB2aXNpdGVkX3ByZWZpeGVzOgorICAgICAgICBjb250aW51ZQorICAgICAgdmlzaXRlZF9wcmVmaXhlcy5hZGQocHJlZml4KQorICAgICAgaWYgcHJlZml4LmVuZHN3aXRoKG9zLnBhdGguc2VwKToKKyAgICAgICAgcHJlZml4X3dpdGhfdHJhaWxpbmdfc2VwID0gcHJlZml4CisgICAgICBlbHNlOgorICAgICAgICBwcmVmaXhfd2l0aF90cmFpbGluZ19zZXAgPSBwcmVmaXggKyBvcy5wYXRoLnNlcAorCisgICAgICBkaXJzID0gc2V0KCkKKyAgICAgIGZpbGVzID0gW10KKyAgICAgIGZvciBmaWxlbmFtZSBpbiBhbGxfZmlsZW5hbWVzOgorICAgICAgICBpZiBub3QgZmlsZW5hbWUuc3RhcnRzd2l0aChwcmVmaXhfd2l0aF90cmFpbGluZ19zZXApOgorICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHJlbGF0aXZlX3RvX3ByZWZpeCA9IG9zLnBhdGgucmVscGF0aChmaWxlbmFtZSwgcHJlZml4KQorCisgICAgICAgIGRpcnBhcnQgPSBvcy5wYXRoLmRpcm5hbWUocmVsYXRpdmVfdG9fcHJlZml4KQorICAgICAgICBpZiBsZW4oZGlycGFydCkgPT0gMDoKKyAgICAgICAgICBmaWxlcy5hcHBlbmQocmVsYXRpdmVfdG9fcHJlZml4KQorICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHBhcnRzID0gZGlycGFydC5zcGxpdChvcy5zZXApCisgICAgICAgIGlmIGxlbihwYXJ0cykgPT0gMDoKKyAgICAgICAgICBkaXJzLmFkZChkaXJwYXJ0KQorICAgICAgICBlbHNlOgorICAgICAgICAgIHBlbmRpbmcgPSBvcy5wYXRoLmpvaW4ocHJlZml4LCBwYXJ0c1swXSkKKyAgICAgICAgICBkaXJzLmFkZChwYXJ0c1swXSkKKyAgICAgICAgICBwZW5kaW5nX3ByZWZpeGVzLmFwcGVuZGxlZnQocGVuZGluZykKKworICAgICAgZGlycyA9IGxpc3QoZGlycykKKyAgICAgIGRpcnMuc29ydCgpCisgICAgICB5aWVsZCBwcmVmaXgsIGRpcnMsIGZpbGVzCisKKyAgZGVmIF9GYWtlTGlzdERpcihzZWxmLCBkaXJuYW1lKToKKyAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9mYWtlX2ZzX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2Zha2VfZnNfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRhYTQ2OQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9mYWtlX2ZzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNTIgQEAKKyMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB0dmNtIGltcG9ydCBmYWtlX2ZzCisKKworY2xhc3MgRmFrZUZTVW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgIGRlZiB0ZXN0QmFzaWMoc2VsZik6CisgICAgZnMgPSBmYWtlX2ZzLkZha2VGUygpCisgICAgZnMuQWRkRmlsZSgnL2JsYWgveCcsICdmb29iYXInKQorICAgIHdpdGggZnM6CisgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMob3MucGF0aC5ub3JtcGF0aCgnL2JsYWgveCcpKQorICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgICAgJ2Zvb2JhcicsCisgICAgICAgICAgb3Blbihvcy5wYXRoLm5vcm1wYXRoKCcvYmxhaC94JyksICdyJykucmVhZCgpKQorCisgIGRlZiB0ZXN0V2l0aGFibGVPcGVuKHNlbGYpOgorICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQorICAgIGZzLkFkZEZpbGUoJy9ibGFoL3gnLCAnZm9vYmFyJykKKyAgICB3aXRoIGZzOgorICAgICAgd2l0aCBvcGVuKG9zLnBhdGgubm9ybXBhdGgoJy9ibGFoL3gnKSwgJ3InKSBhcyBmOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnZm9vYmFyJywgZi5yZWFkKCkpCisKKyAgZGVmIHRlc3RXYWxrKHNlbGYpOgorICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQorICAgIGZzLkFkZEZpbGUoJy94L3cyL3czL3ozLnR4dCcsICcnKQorICAgIGZzLkFkZEZpbGUoJy94L3cvei50eHQnLCAnJykKKyAgICBmcy5BZGRGaWxlKCcveC95LnR4dCcsICcnKQorICAgIGZzLkFkZEZpbGUoJy9hLnR4dCcsICdmb29iYXInKQorICAgIHdpdGggZnM6CisgICAgICBnZW4gPSBvcy53YWxrKG9zLnBhdGgubm9ybXBhdGgoJy8nKSkKKyAgICAgIHIgPSBnZW4ubmV4dCgpCisgICAgICBzZWxmLmFzc2VydEVxdWFscygob3MucGF0aC5ub3JtcGF0aCgnLycpLCBbJ3gnXSwgWydhLnR4dCddKSwgcikKKworICAgICAgciA9IGdlbi5uZXh0KCkKKyAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKChvcy5wYXRoLm5vcm1wYXRoKCcveCcpLCBbJ3cnLCAndzInXSwgWyd5LnR4dCddKSwgcikKKworICAgICAgciA9IGdlbi5uZXh0KCkKKyAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKChvcy5wYXRoLm5vcm1wYXRoKCcveC93JyksIFtdLCBbJ3oudHh0J10pLCByKQorCisgICAgICByID0gZ2VuLm5leHQoKQorICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKG9zLnBhdGgubm9ybXBhdGgoJy94L3cyJyksIFsndzMnXSwgW10pLCByKQorCisgICAgICByID0gZ2VuLm5leHQoKQorICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKG9zLnBhdGgubm9ybXBhdGgoJy94L3cyL3czJyksIFtdLCBbJ3ozLnR4dCddKSwgcikKKworICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgZ2VuLm5leHQpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGUucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdlM2MxYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9nZW5lcmF0ZS5weQpAQCAtMCwwICsxLDI5MSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgU3RyaW5nSU8KKworZnJvbSB0dmNtIGltcG9ydCBodG1sX2dlbmVyYXRpb25fY29udHJvbGxlcgorCisKK2h0bWxfd2FybmluZ19tZXNzYWdlID0gIiIiCisKKworPCEtLQorV0FSTklORzogVGhpcyBmaWxlIGlzIGF1dG8gZ2VuZXJhdGVkLgorCisgICAgICAgICBEbyBub3QgZWRpdCBkaXJlY3RseS4KKy0tPgorIiIiCisKK2pzX3dhcm5pbmdfbWVzc2FnZSA9ICIiIgorLy8gQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyogV0FSTklORzogVGhpcyBmaWxlIGlzIGF1dG8gZ2VuZXJhdGVkLgorICoKKyAqIERvIG5vdCBlZGl0IGRpcmVjdGx5LgorICovCisiIiIKKworY3NzX3dhcm5pbmdfbWVzc2FnZSA9ICIiIgorLyogQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4gKi8KKworLyogV0FSTklORzogVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkLgorICoKKyAqIERvIG5vdCBlZGl0IGRpcmVjdGx5LgorICovCisiIiIKKworCitkZWYgX0Fzc2VydElzVVRGOChmKToKKyAgaWYgaXNpbnN0YW5jZShmLCBTdHJpbmdJTy5TdHJpbmdJTyk6CisgICAgcmV0dXJuCisgIGFzc2VydCBmLmVuY29kaW5nID09ICd1dGYtOCcKKworCitkZWYgX01pbmlmeUpTKGlucHV0X2pzKToKKyAgdHZjbV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbigKKyAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQorICByanNtaW5fcGF0aCA9IG9zLnBhdGguYWJzcGF0aCgKKyAgICAgIG9zLnBhdGguam9pbih0dmNtX3BhdGgsICd0aGlyZF9wYXJ0eScsICdyanNtaW4nLCAncmpzbWluLnB5JykpCisKKyAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoKSBhcyBfOgorICAgIGFyZ3MgPSBbCisgICAgICAgICdweXRob24nLAorICAgICAgICByanNtaW5fcGF0aAorICAgIF0KKyAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCisgICAgcmVzID0gcC5jb21tdW5pY2F0ZShpbnB1dD1pbnB1dF9qcykKKyAgICBlcnJvcmNvZGUgPSBwLndhaXQoKQorICAgIGlmIGVycm9yY29kZSAhPSAwOgorICAgICAgc3lzLnN0ZGVyci53cml0ZSgnckpTbWluIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJWQnICUgZXJyb3Jjb2RlKQorICAgICAgc3lzLnN0ZGVyci53cml0ZShyZXNbMV0pCisgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWxlZCB0byBtaW5pZnksIG9tZ2FoJykKKyAgICByZXR1cm4gcmVzWzBdCisKKworZGVmIEdlbmVyYXRlSlMobG9hZF9zZXF1ZW5jZSwKKyAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHM9RmFsc2UsCisgICAgICAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3Q9Tm9uZSwKKyAgICAgICAgICAgICAgIG1pbmlmeT1GYWxzZSwKKyAgICAgICAgICAgICAgIHJlcG9ydF9zaXplcz1GYWxzZSk6CisgIGYgPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgIEdlbmVyYXRlSlNUb0ZpbGUoZiwKKyAgICAgICAgICAgICAgICAgICBsb2FkX3NlcXVlbmNlLAorICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCisgICAgICAgICAgICAgICAgICAgZGlyX2Zvcl9pbmNsdWRlX3RhZ19yb290LAorICAgICAgICAgICAgICAgICAgIG1pbmlmeT1taW5pZnksCisgICAgICAgICAgICAgICAgICAgcmVwb3J0X3NpemVzPXJlcG9ydF9zaXplcykKKworICByZXR1cm4gZi5nZXR2YWx1ZSgpCisKKworZGVmIHB0X3BhcnRzKHNlbGYpOgorICBzbCA9IFsndW5pY29kZSBhbmQgOC1iaXQgc3RyaW5nIHBhcnRzIG9mIGFib3ZlIHBhZ2UgdGVtcGxhdGUnXQorICBmb3IgeCBpbiBzZWxmLmJ1Zmxpc3Q6CisgICAgaWYgdHlwZSh4KSA9PSB0eXBlKCcnKToKKyAgICAgIG1heGNvZGUgPSAwCisgICAgICBmb3IgYyBpbiB4OgorICAgICAgICAgIG1heGNvZGUgPSBtYXgob3JkKGMpLCBtYXhjb2RlKQorICAgICMgc2hvdyBvbmx5IHVuaWNvZGUgb2JqZWN0cyBhbmQgbm9uLWFzY2lpIHN0cmluZ3MKKyAgICBpZiB0eXBlKHgpID09IHR5cGUoJycpIGFuZCBtYXhjb2RlID4gMTI3OgorICAgICAgdCA9ICcqKioqTm9uQXNjaWlTdHI6ICcKKyAgICBlbGlmIHR5cGUoeCkgPT0gdHlwZSh1JycpOgorICAgICAgdCA9ICcqKioqKlVuaWNvZGVTdHI6ICcKKyAgICBlbHNlOgorICAgICAgdCA9IE5vbmUKKyAgICBpZiB0OgorICAgICAgc2wuYXBwZW5kKHQgKyByZXByKHgpKQorICBzID0gJ1xuJy5qb2luKHNsKQorICByZXR1cm4gcworCisKK2RlZiBHZW5lcmF0ZUpTVG9GaWxlKGYsCisgICAgICAgICAgICAgICAgICAgICBsb2FkX3NlcXVlbmNlLAorICAgICAgICAgICAgICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgIGRpcl9mb3JfaW5jbHVkZV90YWdfcm9vdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgbWluaWZ5PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X3NpemVzPUZhbHNlKToKKyAgX0Fzc2VydElzVVRGOChmKQorICBpZiB1c2VfaW5jbHVkZV90YWdzX2Zvcl9zY3JpcHRzIGFuZCBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QgaXMgTm9uZToKKyAgICByYWlzZSBFeGNlcHRpb24oJ011c3QgcHJvdmlkZSBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QnKQorCisgIGYud3JpdGUoanNfd2FybmluZ19tZXNzYWdlKQorICBmLndyaXRlKCdcbicpCisKKyAgbG9hZGVyID0gbG9hZF9zZXF1ZW5jZVswXS5sb2FkZXIKKworICBwb2x5bWVyX3NjcmlwdCA9IGxvYWRlci5Mb2FkUmF3U2NyaXB0KCdjb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5taW4uanMnKQorICBmLndyaXRlKHBvbHltZXJfc2NyaXB0LmNvbnRlbnRzKQorCisgIGlmIG5vdCBtaW5pZnk6CisgICAgZmxhdHRlbl90b19maWxlID0gZgorICBlbHNlOgorICAgIGZsYXR0ZW5fdG9fZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKworICBmb3IgbW9kdWxlIGluIGxvYWRfc2VxdWVuY2U6CisgICAgbW9kdWxlLkFwcGVuZEpTQ29udGVudHNUb0ZpbGUoZmxhdHRlbl90b19maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyX2Zvcl9pbmNsdWRlX3RhZ19yb290KQorICBpZiBtaW5pZnk6CisgICAganMgPSBmbGF0dGVuX3RvX2ZpbGUuZ2V0dmFsdWUoKQorICAgIG1pbmlmaWVkX2pzID0gX01pbmlmeUpTKGpzKQorICAgIGYud3JpdGUobWluaWZpZWRfanMpCisgICAgZi53cml0ZSgnXG4nKQorCisgIGlmIHJlcG9ydF9zaXplczoKKyAgICBmb3IgbW9kdWxlIGluIGxvYWRfc2VxdWVuY2U6CisgICAgICBzID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgICAgbW9kdWxlLkFwcGVuZEpTQ29udGVudHNUb0ZpbGUocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3QpCisKKyAgICAgICMgQWRkIG1pbmlmaWVkIHNpemUgaW5mby4KKyAgICAgIGpzID0gcy5nZXR2YWx1ZSgpCisgICAgICBtaW5fanNfc2l6ZSA9IHN0cihsZW4oX01pbmlmeUpTKGpzKSkpCisKKyAgICAgICMgUHJpbnQgbmFtZXMgZm9yIHRoaXMgbW9kdWxlLiBTb21lIGRvbWFpbi1zcGVjaWZpYyBzaW1wbGlmY2lhdGlvbnMKKyAgICAgICMgYXJlIGluY2x1ZGVkIHRvIG1ha2UgcGl2b3RpbmcgbW9yZSBvYnZpb3VzLgorICAgICAgcGFydHMgPSBtb2R1bGUubmFtZS5zcGxpdCgnLicpCisgICAgICBpZiBwYXJ0c1s6Ml0gPT0gWydiYXNlJywgJ3VpJ106CisgICAgICAgIHBhcnRzID0gWydiYXNlX3VpJ10gKyBwYXJ0c1syOl0KKyAgICAgIGlmIHBhcnRzWzoyXSA9PSBbJ3RyYWNpbmcnLCAnaW1wb3J0ZXInXToKKyAgICAgICAgcGFydHMgPSBbJ2ltcG9ydGVyJ10gKyBwYXJ0c1syOl0KKyAgICAgIHRsbiA9IHBhcnRzWzBdCisgICAgICBzbG4gPSAnLicuam9pbihwYXJ0c1s6Ml0pCisKKyAgICAgICMgT3VwdHV0CisgICAgICBwcmludCAnJWlcdCVzXHQlc1x0JXNcdCVzJyAlIChsZW4oanMpLCBtaW5fanNfc2l6ZSwgbW9kdWxlLm5hbWUsIHRsbiwgc2xuKQorICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisKKworY2xhc3MgRXh0cmFTY3JpcHQob2JqZWN0KToKKyAgZGVmIF9faW5pdF9fKHNlbGYsIHNjcmlwdF9pZD1Ob25lLCB0ZXh0X2NvbnRlbnQ9Tm9uZSwgY29udGVudF90eXBlPU5vbmUpOgorICAgIGlmIHNjcmlwdF9pZCBpcyBub3QgTm9uZToKKyAgICAgIGFzc2VydCBzY3JpcHRfaWRbMF0gIT0gJyMnCisgICAgc2VsZi5zY3JpcHRfaWQgPSBzY3JpcHRfaWQKKyAgICBzZWxmLnRleHRfY29udGVudCA9IHRleHRfY29udGVudAorICAgIHNlbGYuY29udGVudF90eXBlID0gY29udGVudF90eXBlCisKKyAgZGVmIFdyaXRlVG9GaWxlKHNlbGYsIG91dHB1dF9maWxlKToKKyAgICBfQXNzZXJ0SXNVVEY4KG91dHB1dF9maWxlKQorICAgIGF0dHJzID0gW10KKyAgICBpZiBzZWxmLnNjcmlwdF9pZDoKKyAgICAgIGF0dHJzLmFwcGVuZCgnaWQ9IiVzIicgJSBzZWxmLnNjcmlwdF9pZCkKKyAgICBpZiBzZWxmLmNvbnRlbnRfdHlwZToKKyAgICAgIGF0dHJzLmFwcGVuZCgnY29udGVudC10eXBlPSIlcyInICUgc2VsZi5jb250ZW50X3R5cGUpCisKKyAgICBpZiBsZW4oYXR0cnMpID4gMDoKKyAgICAgIG91dHB1dF9maWxlLndyaXRlKCc8c2NyaXB0ICVzPlxuJyAlICcgJy5qb2luKGF0dHJzKSkKKyAgICBlbHNlOgorICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoJzxzY3JpcHQ+XG4nKQorICAgIGlmIHNlbGYudGV4dF9jb250ZW50OgorICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoc2VsZi50ZXh0X2NvbnRlbnQpCisgICAgb3V0cHV0X2ZpbGUud3JpdGUoJzwvc2NyaXB0PlxuJykKKworCitkZWYgX01pbmlmeUNTUyhjc3NfdGV4dCk6CisgIHR2Y21fcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCisgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKKyAgcmNzc21pbl9wYXRoID0gb3MucGF0aC5hYnNwYXRoKAorICAgICAgb3MucGF0aC5qb2luKHR2Y21fcGF0aCwgJ3RoaXJkX3BhcnR5JywgJ3Jjc3NtaW4nLCAncmNzc21pbi5weScpKQorCisgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKCkgYXMgXzoKKyAgICByY3NzbWluX2FyZ3MgPSBbJ3B5dGhvbicsIHJjc3NtaW5fcGF0aF0KKyAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbihyY3NzbWluX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkaW49c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKKyAgICByZXMgPSBwLmNvbW11bmljYXRlKGlucHV0PWNzc190ZXh0KQorICAgIGVycm9yY29kZSA9IHAud2FpdCgpCisgICAgaWYgZXJyb3Jjb2RlICE9IDA6CisgICAgICBzeXMuc3RkZXJyLndyaXRlKCdyQ1NTbWluIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJWQnICUgZXJyb3Jjb2RlKQorICAgICAgc3lzLnN0ZGVyci53cml0ZShyZXNbMV0pCisgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWxlZCB0byBnZW5lcmF0ZSBjc3MgZm9yICVzLicgJSBjc3NfdGV4dCkKKyAgICByZXR1cm4gcmVzWzBdCisKKworZGVmIEdlbmVyYXRlU3RhbmRhbG9uZUhUTUxBc1N0cmluZygqYXJncywgKiprd2FyZ3MpOgorICBmID0gU3RyaW5nSU8uU3RyaW5nSU8oKQorICBHZW5lcmF0ZVN0YW5kYWxvbmVIVE1MVG9GaWxlKGYsICphcmdzLCAqKmt3YXJncykKKyAgcmV0dXJuIGYuZ2V0dmFsdWUoKQorCisKK2RlZiBHZW5lcmF0ZVN0YW5kYWxvbmVIVE1MVG9GaWxlKG91dHB1dF9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZF9zZXF1ZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0dGVuZWRfanNfdXJsPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9zY3JpcHRzPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pZnk9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRfc2l6ZXM9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaHRtbF9oZWFkX2FuZF9ib2R5PVRydWUpOgorICBfQXNzZXJ0SXNVVEY4KG91dHB1dF9maWxlKQorICBleHRyYV9zY3JpcHRzID0gZXh0cmFfc2NyaXB0cyBvciBbXQorCisgIGlmIG91dHB1dF9odG1sX2hlYWRfYW5kX2JvZHk6CisgICAgb3V0cHV0X2ZpbGUud3JpdGUoIiIiPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgPGhlYWQgaTE4bi12YWx1ZXM9ImRpcjp0ZXh0ZGlyZWN0aW9uOyI+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKyAgICAiIiIpCisgICAgaWYgdGl0bGU6CisgICAgICBvdXRwdXRfZmlsZS53cml0ZSgiIiIgIDx0aXRsZT4lczwvdGl0bGU+CisgICIiIiAlIHRpdGxlKQorICBlbHNlOgorICAgIGFzc2VydCB0aXRsZSBpcyBOb25lCisKKyAgbG9hZGVyID0gbG9hZF9zZXF1ZW5jZVswXS5sb2FkZXIKKworICB3cml0dGVuX3N0eWxlX3NoZWV0cyA9IHNldCgpCisKKyAgY2xhc3MgSFRNTEdlbmVyYXRpb25Db250cm9sbGVyKAorICAgICAgaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIuSFRNTEdlbmVyYXRpb25Db250cm9sbGVyKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2R1bGUpOgorICAgICAgc2VsZi5tb2R1bGUgPSBtb2R1bGUKKworICAgIGRlZiBHZXRIVE1MRm9yU3R5bGVzaGVldEhSZWYoc2VsZiwgaHJlZik6CisgICAgICByZXNvdXJjZSA9IHNlbGYubW9kdWxlLkhSZWZUb1Jlc291cmNlKAorICAgICAgICAgIGhyZWYsICc8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IiVzIj4nICUgaHJlZikKKyAgICAgIHN0eWxlX3NoZWV0ID0gbG9hZGVyLkxvYWRTdHlsZVNoZWV0KHJlc291cmNlLm5hbWUpCisKKyAgICAgIGlmIHN0eWxlX3NoZWV0IGluIHdyaXR0ZW5fc3R5bGVfc2hlZXRzOgorICAgICAgICByZXR1cm4gTm9uZQorICAgICAgd3JpdHRlbl9zdHlsZV9zaGVldHMuYWRkKHN0eWxlX3NoZWV0KQorCisgICAgICB0ZXh0ID0gc3R5bGVfc2hlZXQuY29udGVudHNfd2l0aF9pbmxpbmVkX2ltYWdlcworICAgICAgaWYgbWluaWZ5OgorICAgICAgICB0ZXh0ID0gX01pbmlmeUNTUyh0ZXh0KQorICAgICAgcmV0dXJuICc8c3R5bGU+XG4lc1xuPC9zdHlsZT4nICUgdGV4dAorCisgIGZvciBtb2R1bGUgaW4gbG9hZF9zZXF1ZW5jZToKKyAgICBjdGwgPSBIVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIobW9kdWxlKQorICAgIG1vZHVsZS5BcHBlbmRIVE1MQ29udGVudHNUb0ZpbGUob3V0cHV0X2ZpbGUsIGN0bCwgbWluaWZ5PW1pbmlmeSkKKworICBpZiBmbGF0dGVuZWRfanNfdXJsOgorICAgIG91dHB1dF9maWxlLndyaXRlKCc8c2NyaXB0IHNyYz0iJXMiPjwvc2NyaXB0PlxuJyAlIGZsYXR0ZW5lZF9qc191cmwpCisgIGVsc2U6CisgICAgb3V0cHV0X2ZpbGUud3JpdGUoJzxzY3JpcHQ+XG4nKQorICAgIHggPSBHZW5lcmF0ZUpTKGxvYWRfc2VxdWVuY2UsIG1pbmlmeT1taW5pZnksIHJlcG9ydF9zaXplcz1yZXBvcnRfc2l6ZXMpCisgICAgb3V0cHV0X2ZpbGUud3JpdGUoeCkKKyAgICBvdXRwdXRfZmlsZS53cml0ZSgnPC9zY3JpcHQ+XG4nKQorCisgIGZvciBleHRyYV9zY3JpcHQgaW4gZXh0cmFfc2NyaXB0czoKKyAgICBleHRyYV9zY3JpcHQuV3JpdGVUb0ZpbGUob3V0cHV0X2ZpbGUpCisKKyAgaWYgb3V0cHV0X2h0bWxfaGVhZF9hbmRfYm9keToKKyAgICBvdXRwdXRfZmlsZS53cml0ZSgiIiI8L2hlYWQ+CisgIDxib2R5PgorICA8L2JvZHk+Cis8L2h0bWw+CisiIiIpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGVfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vZ2VuZXJhdGVfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRhYzRlYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9nZW5lcmF0ZV91bml0dGVzdC5weQpAQCAtMCwwICsxLDYyIEBACisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgb3MKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHR2Y20gaW1wb3J0IGdlbmVyYXRlCitmcm9tIHR2Y20gaW1wb3J0IGZha2VfZnMKK2Zyb20gdHZjbSBpbXBvcnQgcHJvamVjdCBhcyBwcm9qZWN0X21vZHVsZQorCisKK2NsYXNzIEdlbmVyYXRlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgIGRlZiBzZXRVcChzZWxmKToKKyAgICBzZWxmLmZzID0gZmFrZV9mcy5GYWtlRlMoKQorICAgIHNlbGYuZnMuQWRkRmlsZSgnL3gvZm9vL215X21vZHVsZS5odG1sJywgIiIiCis8IURPQ1RZUEUgaHRtbD4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZm9vL290aGVyX21vZHVsZS5odG1sIj4KKyIiIikKKyAgICBzZWxmLmZzLkFkZEZpbGUoJy94L2Zvby9vdGhlcl9tb2R1bGUuaHRtbCcsICIiIgorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL2Zvby9yYXcvcmF3X3NjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgICd1c2Ugc3RyaWN0JzsKKyAgICBIZWxsb1dvcmxkKCk7Cis8L3NjcmlwdD4KKyIiIikKKyAgICBzZWxmLmZzLkFkZEZpbGUoJy94L2Zvby9yYXcvcmF3X3NjcmlwdC5qcycsICIiIgorLyogcmF3IHNjcmlwdCAqLworIiIiKQorICAgIHNlbGYuZnMuQWRkRmlsZSgnL3gvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIubWluLmpzJywgIiIiCisiIiIpCisKKyAgICBzZWxmLnByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KAorICAgICAgICBbb3MucGF0aC5ub3JtcGF0aCgnL3gnKV0pCisKKyAgZGVmIHRlc3RKU0dlbmVyYXRpb24oc2VsZik6CisgICAgd2l0aCBzZWxmLmZzOgorICAgICAgbG9hZF9zZXF1ZW5jZSA9IHNlbGYucHJvamVjdC5DYWxjTG9hZFNlcXVlbmNlRm9yTW9kdWxlTmFtZXMoCisgICAgICAgICAgW29zLnBhdGgubm9ybXBhdGgoJ2Zvby5teV9tb2R1bGUnKV0pCisgICAgICBnZW5lcmF0ZS5HZW5lcmF0ZUpTKGxvYWRfc2VxdWVuY2UpCisKKyAgZGVmIHRlc3RIVE1MR2VuZXJhdGlvbihzZWxmKToKKyAgICB3aXRoIHNlbGYuZnM6CisgICAgICBsb2FkX3NlcXVlbmNlID0gc2VsZi5wcm9qZWN0LkNhbGNMb2FkU2VxdWVuY2VGb3JNb2R1bGVOYW1lcygKKyAgICAgICAgICBbb3MucGF0aC5ub3JtcGF0aCgnZm9vLm15X21vZHVsZScpXSkKKyAgICAgIHJlcyA9IGdlbmVyYXRlLkdlbmVyYXRlU3RhbmRhbG9uZUhUTUxBc1N0cmluZyhsb2FkX3NlcXVlbmNlLCAnVGl0bGUnKQorICAgICAgYXNzZXJ0ICdIZWxsb1dvcmxkKCk7JyBpbiByZXMKKworICBkZWYgdGVzdEV4dHJhU2NyaXB0V2l0aFdyaXRlQ29udGVudHNGdW5jKHNlbGYpOgorICAgIHdpdGggc2VsZi5mczoKKyAgICAgIGxvYWRfc2VxdWVuY2UgPSBzZWxmLnByb2plY3QuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZU5hbWVzKAorICAgICAgICAgIFtvcy5wYXRoLm5vcm1wYXRoKCdmb28ubXlfbW9kdWxlJyldKQorCisgICAgICBjbGFzcyBFeHRyYVNjcmlwdChnZW5lcmF0ZS5FeHRyYVNjcmlwdCk6CisgICAgICAgIGRlZiBXcml0ZVRvRmlsZShzZWxmLCBmKToKKyAgICAgICAgICBmLndyaXRlKCc8c2NyaXB0PkV4dHJhU2NyaXB0ITwvc2NyaXB0PicpCisKKyAgICAgIHJlcyA9IGdlbmVyYXRlLkdlbmVyYXRlU3RhbmRhbG9uZUhUTUxBc1N0cmluZygKKyAgICAgICAgICBsb2FkX3NlcXVlbmNlLCAnVGl0bGUnLCBleHRyYV9zY3JpcHRzPVtFeHRyYVNjcmlwdCgpXSkKKyAgICAgIGFzc2VydCAnRXh0cmFTY3JpcHQnIGluIHJlcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNThjMGMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIucHkKQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgb3MKK2ltcG9ydCByZQorZnJvbSB0dmNtIGltcG9ydCBzdHlsZV9zaGVldAorCisKK2NsYXNzIEhUTUxHZW5lcmF0aW9uQ29udHJvbGxlcihvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICBzZWxmLmN1cnJlbnRfbW9kdWxlID0gTm9uZQorCisgIGRlZiBHZXRIVE1MRm9yU3R5bGVzaGVldEhSZWYoc2VsZiwgaHJlZik6ICAjIHB5bGludDogZGlzYWJsZT11bnVzZWQtYXJndW1lbnQKKyAgICByZXR1cm4gTm9uZQorCisgIGRlZiBHZXRIVE1MRm9ySW5saW5lU3R5bGVzaGVldChzZWxmLCBjb250ZW50cyk6CisgICAgaWYgc2VsZi5jdXJyZW50X21vZHVsZSBpcyBOb25lOgorICAgICAgaWYgcmUuc2VhcmNoKCd1cmxcKC4rXCknLCBjb250ZW50cyk6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICdEZWZhdWx0IEhUTUxHZW5lcmF0aW9uQ29udHJvbGxlciBjYW5ub3QgaGFuZGxlIGlubGluZSBzdHlsZSB1cmxzJykKKyAgICAgIHJldHVybiBjb250ZW50cworCisgICAgbW9kdWxlX2Rpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi5jdXJyZW50X21vZHVsZS5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKQorICAgIHNzID0gc3R5bGVfc2hlZXQuUGFyc2VkU3R5bGVTaGVldCgKKyAgICAgICAgc2VsZi5jdXJyZW50X21vZHVsZS5sb2FkZXIsIG1vZHVsZV9kaXJuYW1lLCBjb250ZW50cykKKyAgICByZXR1cm4gc3MuY29udGVudHNfd2l0aF9pbmxpbmVkX2ltYWdlcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfbW9kdWxlLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfbW9kdWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNzgyZDYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vaHRtbF9tb2R1bGUucHkKQEAgLTAsMCArMSwyMTAgQEAKKyMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgcmUKKworZnJvbSB0dmNtIGltcG9ydCBtb2R1bGUKK2Zyb20gdHZjbSBpbXBvcnQganNfdXRpbHMKK2Zyb20gdHZjbSBpbXBvcnQgcGFyc2VfaHRtbF9kZXBzCitmcm9tIHR2Y20gaW1wb3J0IHN0eWxlX3NoZWV0CisKKworZGVmIElzSFRNTFJlc291cmNlVGhlTW9kdWxlR2l2ZW5Db25mbGljdGluZ1Jlc291cmNlTmFtZXMoCisgICAganNfcmVzb3VyY2UsIGh0bWxfcmVzb3VyY2UpOiAgIyBweWxpbnQ6IGRpc2FibGU9dW51c2VkLWFyZ3VtZW50CisgIHJldHVybiAncG9seW1lci1lbGVtZW50JyBpbiBodG1sX3Jlc291cmNlLmNvbnRlbnRzCisKKworY2xhc3MgSFRNTE1vZHVsZShtb2R1bGUuTW9kdWxlKToKKworICBAcHJvcGVydHkKKyAgZGVmIF9tb2R1bGVfZGlyX25hbWUoc2VsZik6CisgICAgcmV0dXJuIG9zLnBhdGguZGlybmFtZShzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgpCisKKyAgZGVmIFBhcnNlKHNlbGYpOgorICAgIHRyeToKKyAgICAgIHBhcnNlcl9yZXN1bHRzID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKS5QYXJzZShzZWxmLmNvbnRlbnRzKQorICAgIGV4Y2VwdCBFeGNlcHRpb24sIGV4OgorICAgICAgcmFpc2UgRXhjZXB0aW9uKCdXaGlsZSBwYXJzaW5nICVzOiAlcycgJSAoc2VsZi5uYW1lLCBzdHIoZXgpKSkKKworICAgIHNlbGYuZGVwZW5kZW5jeV9tZXRhZGF0YSA9IFBhcnNlKHNlbGYubG9hZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmFtZSwgc2VsZi5fbW9kdWxlX2Rpcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXNDb21wb25lbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXJfcmVzdWx0cykKKyAgICBzZWxmLl9wYXJzZXJfcmVzdWx0cyA9IHBhcnNlcl9yZXN1bHRzCisKKyAgZGVmIExvYWQoc2VsZik6CisgICAgc3VwZXIoSFRNTE1vZHVsZSwgc2VsZikuTG9hZCgpCisKKyAgICByZWFjaGFibGVfbmFtZXMgPSBzZXQoW20ubmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG0gaW4gc2VsZi5hbGxfZGVwZW5kZW50X21vZHVsZXNfcmVjdXJzaXZlXSkKKyAgICBpZiAndHIuZXhwb3J0VG8nIGluIHNlbGYuY29udGVudHM6CisgICAgICBpZiAnYmFzZS5iYXNlJyBub3QgaW4gcmVhY2hhYmxlX25hbWVzOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVzOiBEb2VzIG5vdCBoYXZlIGEgZGVwZW5kZW5jeSBvbiBiYXNlJyAlCisgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLnJlbHBhdGgoc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKSkKKworICBkZWYgR2V0VFZDTURlcHNNb2R1bGVUeXBlKHNlbGYpOgorICAgIHJldHVybiAndHZjbS5IVE1MX01PRFVMRV9UWVBFJworCisgIGRlZiBBcHBlbmRKU0NvbnRlbnRzVG9GaWxlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcl9mb3JfaW5jbHVkZV90YWdfcm9vdCk6CisgICAgc3VwZXIoSFRNTE1vZHVsZSwgc2VsZikuQXBwZW5kSlNDb250ZW50c1RvRmlsZShmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcl9mb3JfaW5jbHVkZV90YWdfcm9vdCkKKyAgICBmb3IgaW5saW5lX3NjcmlwdCBpbiBzZWxmLl9wYXJzZXJfcmVzdWx0cy5pbmxpbmVfc2NyaXB0czoKKyAgICAgIGlmIG5vdCBIYXNQb2x5bWVyQ2FsbChpbmxpbmVfc2NyaXB0LnN0cmlwcGVkX2NvbnRlbnRzKToKKyAgICAgICAganMgPSBpbmxpbmVfc2NyaXB0LmNvbnRlbnRzCisgICAgICBlbHNlOgorICAgICAgICBqcyA9IEdldElubGluZVNjcmlwdENvbnRlbnRXaXRoUG9seW1lcml6aW5nQXBwbGllZChpbmxpbmVfc2NyaXB0KQorCisgICAgICBqcyA9IGpzX3V0aWxzLkVzY2FwZUpTSWZOZWVkZWQoanMpCisKKyAgICAgIGYud3JpdGUoanMpCisgICAgICBmLndyaXRlKCdcbicpCisKKyAgZGVmIEFwcGVuZEhUTUxDb250ZW50c1RvRmlsZShzZWxmLCBmLCBjdGwsIG1pbmlmeT1GYWxzZSk6CisgICAgc3VwZXIoSFRNTE1vZHVsZSwgc2VsZikuQXBwZW5kSFRNTENvbnRlbnRzVG9GaWxlKGYsIGN0bCkKKworICAgIGN0bC5jdXJyZW50X21vZHVsZSA9IHNlbGYKKyAgICB0cnk6CisgICAgICBmb3IgcGllY2UgaW4gc2VsZi5fcGFyc2VyX3Jlc3VsdHMuWWllbGRIVE1MSW5QaWVjZXMoY3RsLCBtaW5pZnk9bWluaWZ5KToKKyAgICAgICAgZi53cml0ZShwaWVjZSkKKyAgICBmaW5hbGx5OgorICAgICAgY3RsLmN1cnJlbnRfbW9kdWxlID0gTm9uZQorCisgIGRlZiBIUmVmVG9SZXNvdXJjZShzZWxmLCBocmVmLCB0YWdfZm9yX2Vycl9tc2cpOgorICAgIHJldHVybiBfSFJlZlRvUmVzb3VyY2Uoc2VsZi5sb2FkZXIsIHNlbGYubmFtZSwgc2VsZi5fbW9kdWxlX2Rpcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZiwgdGFnX2Zvcl9lcnJfbXNnKQorCisgIGRlZiBBcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKAorICAgICAgc2VsZiwgZGVwZW5kZW50X2ZpbGVuYW1lcywgaW5jbHVkZV9yYXdfc2NyaXB0cz1UcnVlKToKKyAgICBzdXBlcihIVE1MTW9kdWxlLCBzZWxmKS5BcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKAorICAgICAgICBkZXBlbmRlbnRfZmlsZW5hbWVzLCBpbmNsdWRlX3Jhd19zY3JpcHRzKQorICAgIGZvciBjb250ZW50cyBpbiBzZWxmLl9wYXJzZXJfcmVzdWx0cy5pbmxpbmVfc3R5bGVzaGVldHM6CisgICAgICBtb2R1bGVfZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgpCisgICAgICBzcyA9IHN0eWxlX3NoZWV0LlBhcnNlZFN0eWxlU2hlZXQoCisgICAgICAgICAgc2VsZi5sb2FkZXIsIG1vZHVsZV9kaXJuYW1lLCBjb250ZW50cykKKyAgICAgIHNzLkFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oZGVwZW5kZW50X2ZpbGVuYW1lcykKKworCitkZWYgR2V0SW5saW5lU2NyaXB0Q29udGVudFdpdGhQb2x5bWVyaXppbmdBcHBsaWVkKGlubGluZV9zY3JpcHQpOgorICBwb2x5bWVyX2VsZW1lbnRfbmFtZSA9IEdldFBvbHltZXJFbGVtZW50TmFtZUZyb21PcGVuVGFncygKKyAgICAgIGlubGluZV9zY3JpcHQub3Blbl90YWdzKQorICBpZiBwb2x5bWVyX2VsZW1lbnRfbmFtZSBpcyBOb25lOgorICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKAorICAgICAgICAnVGFnbGVzcyBQb2x5bWVyKCkgY2FsbCBtdXN0IGJlIG1hZGUgaW5zaWRlIGEgPHBvbHltZXItZWxlbWVudD4gdGFnJykKKworICByZXR1cm4gVXBkYXRlUG9seW1lckNhbGxzR2l2ZW5FbGVtZW50TmFtZSgKKyAgICAgIGlubGluZV9zY3JpcHQuc3RyaXBwZWRfY29udGVudHMsIHBvbHltZXJfZWxlbWVudF9uYW1lKQorCisKK2RlZiBHZXRQb2x5bWVyRWxlbWVudE5hbWVGcm9tT3BlblRhZ3Mob3Blbl90YWdzKToKKyAgZm91bmRfdGFnID0gTm9uZQorICBmb3IgdGFnIGluIHJldmVyc2VkKG9wZW5fdGFncyk6CisgICAgaWYgdGFnLnRhZyA9PSAncG9seW1lci1lbGVtZW50JzoKKyAgICAgIGZvdW5kX3RhZyA9IHRhZworICAgICAgYnJlYWsKKworICBpZiBub3QgZm91bmRfdGFnOgorICAgIHJldHVybiBOb25lCisKKyAgZm9yIGF0dHIgaW4gZm91bmRfdGFnLmF0dHJzOgorICAgIGlmIGF0dHJbMF0gPT0gJ25hbWUnOgorICAgICAgcmV0dXJuIGF0dHJbMV0KKworICByZXR1cm4gTm9uZQorCitfUE9MWU1FUl9SRV8xID0gJ1BvbHltZXIoXHMqPylcKChccyo/KVx7JworX1BPTFlNRVJfUkVfMiA9ICdQb2x5bWVyKFxzKj8pXCgoXHMqPylcKScKKworCitkZWYgSGFzUG9seW1lckNhbGwoanMpOgorICBpZiByZS5zZWFyY2goX1BPTFlNRVJfUkVfMSwganMpIGlzIG5vdCBOb25lOgorICAgIHJldHVybiBUcnVlCisgIGlmIHJlLnNlYXJjaChfUE9MWU1FUl9SRV8yLCBqcykgaXMgbm90IE5vbmU6CisgICAgcmV0dXJuIFRydWUKKyAgcmV0dXJuIEZhbHNlCisKKworZGVmIFVwZGF0ZVBvbHltZXJDYWxsc0dpdmVuRWxlbWVudE5hbWUoanMsIHBvbHltZXJfZWxlbWVudF9uYW1lKToKKyAgaWYgcmUuc2VhcmNoKF9QT0xZTUVSX1JFXzEsIGpzKSBpcyBub3QgTm9uZToKKyAgICByZXR1cm4gcmUuc3ViKF9QT0xZTUVSX1JFXzEsCisgICAgICAgICAgICAgICAgICAnUG9seW1lclxnPDE+KFxnPDI+XCclc1wnLCB7JyAlIHBvbHltZXJfZWxlbWVudF9uYW1lLAorICAgICAgICAgICAgICAgICAganMsIDAsIHJlLkRPVEFMTCkKKyAgaWYgcmUuc2VhcmNoKF9QT0xZTUVSX1JFXzIsIGpzKSBpcyBub3QgTm9uZToKKyAgICByZXR1cm4gcmUuc3ViKF9QT0xZTUVSX1JFXzIsCisgICAgICAgICAgICAgICAgICAnUG9seW1lclxnPDE+KFxnPDI+XCclc1wnKScgJSBwb2x5bWVyX2VsZW1lbnRfbmFtZSwKKyAgICAgICAgICAgICAgICAgIGpzLCAwLCByZS5ET1RBTEwpCisgIGFzc2VydCBGYWxzZSwgJ1RoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQnCisKKworZGVmIF9IUmVmVG9SZXNvdXJjZSgKKyAgICBsb2FkZXIsIG1vZHVsZV9uYW1lLCBtb2R1bGVfZGlyX25hbWUsIGhyZWYsIHRhZ19mb3JfZXJyX21zZyk6CisgIGlmIGhyZWZbMF0gPT0gJy8nOgorICAgIHJlc291cmNlID0gbG9hZGVyLkZpbmRSZXNvdXJjZUdpdmVuUmVsYXRpdmVQYXRoKAorICAgICAgb3MucGF0aC5ub3JtcGF0aChocmVmWzE6XSkpCisgIGVsc2U6CisgICAgYWJzcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKG1vZHVsZV9kaXJfbmFtZSwKKyAgICAgIG9zLnBhdGgubm9ybXBhdGgoaHJlZikpKQorICAgIHJlc291cmNlID0gbG9hZGVyLkZpbmRSZXNvdXJjZUdpdmVuQWJzb2x1dGVQYXRoKGFic3BhdGgpCisKKyAgaWYgbm90IHJlc291cmNlOgorICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKAorICAgICAgICAnSW4gJXMsIHRoZSAlcyBjYW5ub3QgYmUgbG9hZGVkIGJlY2F1c2UgJworICAgICAgICAnaXQgaXMgbm90IGluIHRoZSBzZWFyY2ggcGF0aCcgJSAobW9kdWxlX25hbWUsIHRhZ19mb3JfZXJyX21zZykpCisgIHRyeToKKyAgICByZXNvdXJjZS5jb250ZW50cworICBleGNlcHQ6CisgICAgcmFpc2UgbW9kdWxlLkRlcHNFeGNlcHRpb24oJ0luICVzLCAlcyBwb2ludHMgYXQgYSBub25leGlzdGVudCBmaWxlICcgJSAoCisgICAgICAgIG1vZHVsZV9uYW1lLCB0YWdfZm9yX2Vycl9tc2cpKQorICByZXR1cm4gcmVzb3VyY2UKKworCitkZWYgUGFyc2UobG9hZGVyLCBtb2R1bGVfbmFtZSwgbW9kdWxlX2Rpcl9uYW1lLCBpc19jb21wb25lbnQsIHBhcnNlcl9yZXN1bHRzKToKKyAgcmVzID0gbW9kdWxlLk1vZHVsZURlcGVuZGVuY3lNZXRhZGF0YSgpCisgIGlmIGlzX2NvbXBvbmVudDoKKyAgICByZXR1cm4gcmVzCisKKyAgaWYgcGFyc2VyX3Jlc3VsdHMuaGFzX2RlY2wgaXMgRmFsc2U6CisgICAgcmFpc2UgRXhjZXB0aW9uKCclcyBtdXN0IGhhdmUgPCFET0NUWVBFIGh0bWw+JyAlIG1vZHVsZV9uYW1lKQorCisgICMgRXh0ZXJuYWwgc2NyaXB0IHJlZmVyZW5jZXMuLgorICBmb3IgaHJlZiBpbiBwYXJzZXJfcmVzdWx0cy5zY3JpcHRzX2V4dGVybmFsOgorICAgIHJlc291cmNlID0gX0hSZWZUb1Jlc291cmNlKGxvYWRlciwgbW9kdWxlX25hbWUsIG1vZHVsZV9kaXJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ19mb3JfZXJyX21zZz0nPHNjcmlwdCBzcmM9IiVzIj4nICUgaHJlZikKKyAgICByZXMuZGVwZW5kZW50X3Jhd19zY3JpcHRfcmVsYXRpdmVfcGF0aHMuYXBwZW5kKAorICAgICAgICByZXNvdXJjZS51bml4X3N0eWxlX3JlbGF0aXZlX3BhdGgpCisKKyAgIyBFeHRlcm5hbCBpbXBvcnRzLiBNb3N0bHkgdGhlIHNhbWUgYXMgPHNjcmlwdD4sIGJ1dCB3ZSBrbm93IGl0cyBhIG1vZHVsZS4KKyAgZm9yIGhyZWYgaW4gcGFyc2VyX3Jlc3VsdHMuaW1wb3J0czoKKyAgICBpZiBub3QgaHJlZi5lbmRzd2l0aCgnLmh0bWwnKToKKyAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAnSW4gJXMsIHRoZSA8bGluayByZWw9ImltcG9ydCIgaHJlZj0iJXMiPiBtdXN0IHBvaW50IGF0IGEgJworICAgICAgICAgICdmaWxlIHdpdGggYW4gaHRtbCBzdWZmaXgnICUgKG1vZHVsZV9uYW1lLCBocmVmKSkKKworICAgIHJlc291cmNlID0gX0hSZWZUb1Jlc291cmNlKAorICAgICAgICBsb2FkZXIsIG1vZHVsZV9uYW1lLCBtb2R1bGVfZGlyX25hbWUsIGhyZWYsCisgICAgICAgIHRhZ19mb3JfZXJyX21zZz0nPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9IiVzIj4nICUgaHJlZikKKyAgICByZXMuZGVwZW5kZW50X21vZHVsZV9uYW1lcy5hcHBlbmQocmVzb3VyY2UubmFtZSkKKworICAjIFZhbGlkYXRlIHRoZSBpbi1saW5lIHNjcmlwdHMuCisgIGZvciBpbmxpbmVfc2NyaXB0IGluIHBhcnNlcl9yZXN1bHRzLmlubGluZV9zY3JpcHRzOgorICAgIHN0cmlwcGVkX3RleHQgPSBpbmxpbmVfc2NyaXB0LnN0cmlwcGVkX2NvbnRlbnRzCisgICAgdHJ5OgorICAgICAganNfdXRpbHMuVmFsaWRhdGVVc2VzU3RyaWN0TW9kZSgnXycsIHN0cmlwcGVkX3RleHQpCisgICAgZXhjZXB0OgorICAgICAgcmFpc2UgRXhjZXB0aW9uKCclcyBoYXMgYW4gaW5saW5lIHNjcmlwdCB0YWcgdGhhdCBpcyBtaXNzaW5nICcKKyAgICAgICAgICAgICAgICAgICAgICAnYSBcJ3VzZSBzdHJpY3RcJyBkaXJlY3RpdmUuJyAlIG1vZHVsZV9uYW1lKQorCisgICMgU3R5bGUgc2hlZXRzCisgIGZvciBocmVmIGluIHBhcnNlcl9yZXN1bHRzLnN0eWxlc2hlZXRzOgorICAgIHJlc291cmNlID0gX0hSZWZUb1Jlc291cmNlKAorICAgICAgICBsb2FkZXIsIG1vZHVsZV9uYW1lLCBtb2R1bGVfZGlyX25hbWUsIGhyZWYsCisgICAgICAgIHRhZ19mb3JfZXJyX21zZz0nPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIlcyI+JyAlIGhyZWYpCisgICAgcmVzLnN0eWxlX3NoZWV0X25hbWVzLmFwcGVuZChyZXNvdXJjZS5uYW1lKQorCisgIHJldHVybiByZXMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9odG1sX21vZHVsZV91bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9odG1sX21vZHVsZV91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzk1Mjc3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2h0bWxfbW9kdWxlX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMzc0IEBACisjIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgU3RyaW5nSU8KKworZnJvbSB0dmNtIGltcG9ydCBmYWtlX2ZzCitmcm9tIHR2Y20gaW1wb3J0IGdlbmVyYXRlCitmcm9tIHR2Y20gaW1wb3J0IGh0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyCitmcm9tIHR2Y20gaW1wb3J0IGh0bWxfbW9kdWxlCitmcm9tIHR2Y20gaW1wb3J0IHBhcnNlX2h0bWxfZGVwcworZnJvbSB0dmNtIGltcG9ydCBwcm9qZWN0IGFzIHByb2plY3RfbW9kdWxlCitmcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlCitmcm9tIHR2Y20gaW1wb3J0IHJlc291cmNlX2xvYWRlciBhcyByZXNvdXJjZV9sb2FkZXIKKworCitjbGFzcyBSZXNvdXJjZVdpdGhGYWtlQ29udGVudHMocmVzb3VyY2UuUmVzb3VyY2UpOgorICBkZWYgX19pbml0X18oc2VsZiwgdG9wbGV2ZWxfZGlyLCBhYnNvbHV0ZV9wYXRoLCBmYWtlX2NvbnRlbnRzKToKKyAgICAiIiJBIHJlc291cmNlIHdpdGggZXhwbGljaXRseSBwcm92aWRlZCBjb250ZW50cy4KKworICAgIElmIHRoZSByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCwgdGhlbiBwYXNzIGZha2VfY29udGVudHM9Tm9uZS4gVGhpcyB3aWxsCisgICAgY2F1c2UgYWNjZXNzaW5nIHRoZSByZXNvdXJjZSBjb250ZW50cyB0byByYWlzZSBhbiBleGNlcHRpb24gbWltaWNraW5nIHRoZQorICAgIGJlaGF2aW9yIG9mIHJlZ3VsYXIgcmVzb3VyY2VzLiIiIgorICAgIHN1cGVyKFJlc291cmNlV2l0aEZha2VDb250ZW50cywgc2VsZikuX19pbml0X18odG9wbGV2ZWxfZGlyLCBhYnNvbHV0ZV9wYXRoKQorICAgIHNlbGYuX2Zha2VfY29udGVudHMgPSBmYWtlX2NvbnRlbnRzCisKKyAgQHByb3BlcnR5CisgIGRlZiBjb250ZW50cyhzZWxmKToKKyAgICBpZiBzZWxmLl9mYWtlX2NvbnRlbnRzIGlzIE5vbmU6CisgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZpbGUgbm90IGZvdW5kJykKKyAgICByZXR1cm4gc2VsZi5fZmFrZV9jb250ZW50cworCisKK2NsYXNzIEZha2VMb2FkZXIob2JqZWN0KToKKyAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9wYXRocywgaW5pdGlhbF9maWxlbmFtZXNfYW5kX2NvbnRlbnRzPU5vbmUpOgorICAgIHNlbGYuX3NvdXJjZV9wYXRocyA9IHNvdXJjZV9wYXRocworICAgIHNlbGYuX2ZpbGVfY29udGVudHMgPSB7fQorICAgIGlmIGluaXRpYWxfZmlsZW5hbWVzX2FuZF9jb250ZW50czoKKyAgICAgIGZvciBrLCB2IGluIGluaXRpYWxfZmlsZW5hbWVzX2FuZF9jb250ZW50cy5pdGVyaXRlbXMoKToKKyAgICAgICAgc2VsZi5fZmlsZV9jb250ZW50c1trXSA9IHYKKworICBkZWYgRmluZFJlc291cmNlR2l2ZW5BYnNvbHV0ZVBhdGgoc2VsZiwgYWJzb2x1dGVfcGF0aCk6CisgICAgY2FuZGlkYXRlX3BhdGhzID0gW10KKyAgICBmb3Igc291cmNlX3BhdGggaW4gc2VsZi5fc291cmNlX3BhdGhzOgorICAgICAgaWYgYWJzb2x1dGVfcGF0aC5zdGFydHN3aXRoKHNvdXJjZV9wYXRoKToKKyAgICAgICAgY2FuZGlkYXRlX3BhdGhzLmFwcGVuZChzb3VyY2VfcGF0aCkKKyAgICBpZiBsZW4oY2FuZGlkYXRlX3BhdGhzKSA9PSAwOgorICAgICAgcmV0dXJuIE5vbmUKKworICAgICMgU29ydCBieSBsZW5ndGguIExvbmdlc3QgbWF0Y2ggd2lucy4KKyAgICBjYW5kaWRhdGVfcGF0aHMuc29ydChsYW1iZGEgeCwgeTogbGVuKHgpIC0gbGVuKHkpKQorICAgIGxvbmdlc3RfY2FuZGlkYXRlID0gY2FuZGlkYXRlX3BhdGhzWy0xXQorCisgICAgcmV0dXJuIFJlc291cmNlV2l0aEZha2VDb250ZW50cygKKyAgICAgICAgbG9uZ2VzdF9jYW5kaWRhdGUsIGFic29sdXRlX3BhdGgsCisgICAgICAgIHNlbGYuX2ZpbGVfY29udGVudHMuZ2V0KGFic29sdXRlX3BhdGgsIE5vbmUpKQorCisgIGRlZiBGaW5kUmVzb3VyY2VHaXZlblJlbGF0aXZlUGF0aChzZWxmLCByZWxhdGl2ZV9wYXRoKToKKyAgICBhYnNvbHV0ZV9wYXRoID0gTm9uZQorICAgIGZvciBzY3JpcHRfcGF0aCBpbiBzZWxmLl9zb3VyY2VfcGF0aHM6CisgICAgICBhYnNvbHV0ZV9wYXRoID0gb3MucGF0aC5qb2luKHNjcmlwdF9wYXRoLCByZWxhdGl2ZV9wYXRoKQorICAgICAgaWYgYWJzb2x1dGVfcGF0aCBpbiBzZWxmLl9maWxlX2NvbnRlbnRzOgorICAgICAgICByZXR1cm4gUmVzb3VyY2VXaXRoRmFrZUNvbnRlbnRzKHNjcmlwdF9wYXRoLCBhYnNvbHV0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVfY29udGVudHNbYWJzb2x1dGVfcGF0aF0pCisgICAgcmV0dXJuIE5vbmUKKworCitjbGFzcyBQYXJzZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgZGVmIHRlc3RNaXNzaW5nRG9jVHlwZShzZWxmKToKKyAgICBwYXJzZV9yZXN1bHRzID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXJSZXN1bHRzKCcnKQorCisgICAgZmlsZV9jb250ZW50cyA9IHt9CisKKyAgICBkZWYgRG9JdCgpOgorICAgICAgaHRtbF9tb2R1bGUuUGFyc2UoRmFrZUxvYWRlcihbb3MucGF0aC5ub3JtcGF0aCgnL3RtcCcpXSwgZmlsZV9jb250ZW50cyksCisgICAgICAgICAgICAgICAgICAgICAgICAnYS5iLnN0YXJ0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICcvdG1wL2EvYi8nLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29tcG9uZW50PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyX3Jlc3VsdHM9cGFyc2VfcmVzdWx0cykKKyAgICBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24sIERvSXQpCisKKyAgZGVmIHRlc3RWYWxpZEV4dGVybmFsU2NyaXB0UmVmZXJlbmNlVG9SYXdTY3JpcHQoc2VsZik6CisgICAgcGFyc2VfcmVzdWx0cyA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyUmVzdWx0cygiIiI8IURPQ1RZUEUgaHRtbD4KKyAgICAgIDxzY3JpcHQgc3JjPSIuLi9mb28uanMiPgorICAgICAgIiIiKQorCisgICAgZmlsZV9jb250ZW50cyA9IHt9CisgICAgZmlsZV9jb250ZW50c1tvcy5wYXRoLm5vcm1wYXRoKCcvdG1wL2EvZm9vLmpzJyldID0gIiIiCisnaSBhbSBqdXN0IHNvbWUgcmF3IHNjcmlwdCc7CisiIiIKKworICAgIG1ldGFkYXRhID0gaHRtbF9tb2R1bGUuUGFyc2UoCisgICAgICAgIEZha2VMb2FkZXIoW29zLnBhdGgubm9ybXBhdGgoJy90bXAnKV0sIGZpbGVfY29udGVudHMpLAorICAgICAgICAnYS5iLnN0YXJ0JywKKyAgICAgICAgJy90bXAvYS9iLycsCisgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKKyAgICAgICAgcGFyc2VyX3Jlc3VsdHM9cGFyc2VfcmVzdWx0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbWV0YWRhdGEuZGVwZW5kZW50X21vZHVsZV9uYW1lcykKKyAgICBzZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgWydhL2Zvby5qcyddLCBtZXRhZGF0YS5kZXBlbmRlbnRfcmF3X3NjcmlwdF9yZWxhdGl2ZV9wYXRocykKKworICBkZWYgdGVzdEV4dGVybmFsU2NyaXB0UmVmZXJlbmNlVG9Nb2R1bGVPdXRzaWRlU2NyaXB0UGF0aChzZWxmKToKKyAgICBwYXJzZV9yZXN1bHRzID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXJSZXN1bHRzKCIiIjwhRE9DVFlQRSBodG1sPgorICAgICAgPHNjcmlwdCBzcmM9Ii9mb28uanMiPgorICAgICAgIiIiKQorCisgICAgZmlsZV9jb250ZW50cyA9IHt9CisgICAgZmlsZV9jb250ZW50c1tvcy5wYXRoLm5vcm1wYXRoKCcvZm9vLmpzJyldID0gJycKKworICAgIGRlZiBEb0l0KCk6CisgICAgICBodG1sX21vZHVsZS5QYXJzZShGYWtlTG9hZGVyKFtvcy5wYXRoLm5vcm1wYXRoKCcvdG1wJyldLCBmaWxlX2NvbnRlbnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhLmIuc3RhcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJy90bXAvYS9iLycsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19jb21wb25lbnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXJfcmVzdWx0cz1wYXJzZV9yZXN1bHRzKQorICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbiwgRG9JdCkKKworICBkZWYgdGVzdEV4dGVybmFsU2NyaXB0UmVmZXJlbmNlVG9GaWxlVGhhdERvZXNudEV4aXN0KHNlbGYpOgorICAgIHBhcnNlX3Jlc3VsdHMgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMoIiIiPCFET0NUWVBFIGh0bWw+CisgICAgICA8c2NyaXB0IHNyYz0iL2Zvby5qcyI+CisgICAgICAiIiIpCisKKyAgICBmaWxlX2NvbnRlbnRzID0ge30KKworICAgIGRlZiBEb0l0KCk6CisgICAgICBodG1sX21vZHVsZS5QYXJzZShGYWtlTG9hZGVyKFtvcy5wYXRoLm5vcm1wYXRoKCcvdG1wJyldLCBmaWxlX2NvbnRlbnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhLmIuc3RhcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJy90bXAvYS9iLycsCisgICAgICAgICAgICAgICAgICAgICAgICBpc19jb21wb25lbnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXJfcmVzdWx0cz1wYXJzZV9yZXN1bHRzKQorICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbiwgRG9JdCkKKworICBkZWYgdGVzdElubGluZVNjcmlwdFdpdGhvdXRTdHJpY3ROb3RlKHNlbGYpOgorICAgIHBhcnNlX3Jlc3VsdHMgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMoIiIiPCFET0NUWVBFIGh0bWw+CisgICAgICA8c2NyaXB0PgorY29uc29sZS5sb2coJ0xvZ2dpbmcgd2l0aG91dCBzdHJpY3QgbW9kZSBpcyBubyBmdW4uJyk7CisgICAgICA8L3NjcmlwdD4KKyAgICAgICIiIikKKworICAgIGZpbGVfY29udGVudHMgPSB7fQorCisgICAgZGVmIERvSXQoKToKKyAgICAgIGh0bWxfbW9kdWxlLlBhcnNlKEZha2VMb2FkZXIoW29zLnBhdGgubm9ybXBhdGgoJy90bXAnKV0sIGZpbGVfY29udGVudHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2EuYi5zdGFydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnL3RtcC9hL2IvJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlcl9yZXN1bHRzPXBhcnNlX3Jlc3VsdHMpCisgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCBEb0l0KQorCisgIGRlZiB0ZXN0VmFsaWRJbXBvcnRPZk1vZHVsZShzZWxmKToKKyAgICBwYXJzZV9yZXN1bHRzID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXJSZXN1bHRzKCIiIjwhRE9DVFlQRSBodG1sPgorICAgICAgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii4uL2Zvby5odG1sIj4KKyAgICAgICIiIikKKworICAgIGZpbGVfY29udGVudHMgPSB7fQorICAgIGZpbGVfY29udGVudHNbb3MucGF0aC5ub3JtcGF0aCgnL3RtcC9hL2Zvby5odG1sJyldID0gIiIiCisiIiIKKworICAgIG1ldGFkYXRhID0gaHRtbF9tb2R1bGUuUGFyc2UoCisgICAgICAgIEZha2VMb2FkZXIoW29zLnBhdGgubm9ybXBhdGgoJy90bXAnKV0sIGZpbGVfY29udGVudHMpLAorICAgICAgICAnYS5iLnN0YXJ0JywKKyAgICAgICAgJy90bXAvYS9iLycsCisgICAgICAgIGlzX2NvbXBvbmVudD1GYWxzZSwKKyAgICAgICAgcGFyc2VyX3Jlc3VsdHM9cGFyc2VfcmVzdWx0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbJ2EuZm9vJ10sIG1ldGFkYXRhLmRlcGVuZGVudF9tb2R1bGVfbmFtZXMpCisKKyAgZGVmIHRlc3RTdHlsZVNoZWV0SW1wb3J0KHNlbGYpOgorICAgIHBhcnNlX3Jlc3VsdHMgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMoIiIiPCFET0NUWVBFIGh0bWw+CisgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zvby5jc3MiPgorICAgICAgIiIiKQorCisgICAgZmlsZV9jb250ZW50cyA9IHt9CisgICAgZmlsZV9jb250ZW50c1tvcy5wYXRoLm5vcm1wYXRoKCcvdG1wL2EvZm9vLmNzcycpXSA9ICIiIgorIiIiCisgICAgbWV0YWRhdGEgPSBodG1sX21vZHVsZS5QYXJzZSgKKyAgICAgICAgRmFrZUxvYWRlcihbb3MucGF0aC5ub3JtcGF0aCgnL3RtcCcpXSwgZmlsZV9jb250ZW50cyksCisgICAgICAgICdhLmIuc3RhcnQnLAorICAgICAgICAnL3RtcC9hL2IvJywKKyAgICAgICAgaXNfY29tcG9uZW50PUZhbHNlLAorICAgICAgICBwYXJzZXJfcmVzdWx0cz1wYXJzZV9yZXN1bHRzKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtZXRhZGF0YS5kZXBlbmRlbnRfbW9kdWxlX25hbWVzKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsnYS5mb28nXSwgbWV0YWRhdGEuc3R5bGVfc2hlZXRfbmFtZXMpCisKKyAgZGVmIHRlc3RVc2luZ0Fic29sdXRlSHJlZihzZWxmKToKKyAgICBwYXJzZV9yZXN1bHRzID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXJSZXN1bHRzKCIiIjwhRE9DVFlQRSBodG1sPgorICAgICAgPHNjcmlwdCBzcmM9Ii9mb28uanMiPgorICAgICAgIiIiKQorCisgICAgZmlsZV9jb250ZW50cyA9IHt9CisgICAgZmlsZV9jb250ZW50c1tvcy5wYXRoLm5vcm1wYXRoKCcvc3JjL2Zvby5qcycpXSA9ICcnCisKKyAgICBtZXRhZGF0YSA9IGh0bWxfbW9kdWxlLlBhcnNlKAorICAgICAgICBGYWtlTG9hZGVyKFtvcy5wYXRoLm5vcm1wYXRoKCIvdG1wIiksIG9zLnBhdGgubm9ybXBhdGgoIi9zcmMiKV0sCisgICAgICAgICAgICAgICAgICAgZmlsZV9jb250ZW50cyksCisgICAgICAgICJhLmIuc3RhcnQiLAorICAgICAgICAiL3RtcC9hL2IvIiwKKyAgICAgICAgaXNfY29tcG9uZW50PUZhbHNlLAorICAgICAgICBwYXJzZXJfcmVzdWx0cz1wYXJzZV9yZXN1bHRzKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsnZm9vLmpzJ10sIG1ldGFkYXRhLmRlcGVuZGVudF9yYXdfc2NyaXB0X3JlbGF0aXZlX3BhdGhzKQorCisKK2NsYXNzIEhUTUxNb2R1bGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgIGRlZiB0ZXN0QmFzaWMoc2VsZik6CisgICAgZmlsZV9jb250ZW50cyA9IHt9CisgICAgZmlsZV9jb250ZW50c1tvcy5wYXRoLm5vcm1wYXRoKCcvdG1wL2EvYi9zdGFydC5odG1sJyldID0gIiIiCis8IURPQ1RZUEUgaHRtbD4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvd2lkZ2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9jb21tb24uY3NzIj4KKzxzY3JpcHQgc3JjPSIvcmF3X3NjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8cG9seW1lci1lbGVtZW50IG5hbWU9InN0YXJ0Ij4KKyAgPHRlbXBsYXRlPgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAgICd1c2Ugc3RyaWN0JzsKKyAgICBjb25zb2xlLmxvZygnaW5saW5lIHNjcmlwdCBmb3Igc3RhcnQuaHRtbCBnb3Qgd3JpdHRlbicpOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgorIiIiCisgICAgZmlsZV9jb250ZW50c1tvcy5wYXRoLm5vcm1wYXRoKCcvdHZjbS90dmNtLmh0bWwnKV0gPSAiIiI8IURPQ1RZUEUgaHRtbD4KKyIiIgorICAgIGZpbGVfY29udGVudHNbb3MucGF0aC5ub3JtcGF0aCgnL2NvbXBvbmVudHMvd2lkZ2V0Lmh0bWwnKV0gPSAiIiIKKzwhRE9DVFlQRSBodG1sPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii90dmNtLmh0bWwiPgorPHdpZGdldCBuYW1lPSJ3aWRnZXQuaHRtbCI+PC93aWRnZXQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworY29uc29sZS5sb2coJ2lubGluZSBzY3JpcHQgZm9yIHdpZGdldC5odG1sJyk7Cis8L3NjcmlwdD4KKyIiIgorICAgIGZpbGVfY29udGVudHNbb3MucGF0aC5ub3JtcGF0aCgnL3RtcC9hL2NvbW1vbi5jc3MnKV0gPSAiIiIKKy8qIC90bXAvYS9jb21tb24uY3NzIHdhcyB3cml0dGVuICovCisiIiIKKyAgICBmaWxlX2NvbnRlbnRzW29zLnBhdGgubm9ybXBhdGgoJy9yYXcvcmF3X3NjcmlwdC5qcycpXSA9ICIiIgorY29uc29sZS5sb2coJy9yYXcvcmF3X3NjcmlwdC5qcyB3YXMgd3JpdHRlbicpOworIiIiCisgICAgZmlsZV9jb250ZW50c1tvcy5wYXRoLm5vcm1wYXRoKAorICAgICAgICAnL3Jhdy9jb21wb25lbnRzL3BvbHltZXIvcG9seW1lci5taW4uanMnKV0gPSAiIiIKKyIiIgorCisgICAgd2l0aCBmYWtlX2ZzLkZha2VGUyhmaWxlX2NvbnRlbnRzKToKKyAgICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KAorICAgICAgICAgIFtvcy5wYXRoLm5vcm1wYXRoKCcvdHZjbS8nKSwKKyAgICAgICAgICAgb3MucGF0aC5ub3JtcGF0aCgnL3RtcC8nKSwKKyAgICAgICAgICAgb3MucGF0aC5ub3JtcGF0aCgnL2NvbXBvbmVudHMvJyksCisgICAgICAgICAgIG9zLnBhdGgubm9ybXBhdGgoJy9yYXcvJyldKQorICAgICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCisgICAgICBhX2Jfc3RhcnRfbW9kdWxlID0gbG9hZGVyLkxvYWRNb2R1bGUobW9kdWxlX25hbWU9J2EuYi5zdGFydCcpCisgICAgICBsb2FkX3NlcXVlbmNlID0gcHJvamVjdC5DYWxjTG9hZFNlcXVlbmNlRm9yTW9kdWxlcyhbYV9iX3N0YXJ0X21vZHVsZV0pCisKKyAgICAgICMgQ2hlY2sgbG9hZCBzZXF1ZW5jZSBuYW1lcy4KKyAgICAgIGxvYWRfc2VxdWVuY2VfbmFtZXMgPSBbeC5uYW1lIGZvciB4IGluIGxvYWRfc2VxdWVuY2VdCisgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ3R2Y20nLAorICAgICAgICAgICAgICAgICAgICAgICAgICd3aWRnZXQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdhLmIuc3RhcnQnXSwgbG9hZF9zZXF1ZW5jZV9uYW1lcykKKworICAgICAgIyBDaGVjayBtb2R1bGVfZGVwcyBvbiBhX2Jfc3RhcnRfbW9kdWxlCisgICAgICBkZWYgSGFzRGVwZW5kZW50TW9kdWxlKG1vZHVsZSwgbmFtZSk6CisgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBtb2R1bGUuZGVwZW5kZW50X21vZHVsZXMKKyAgICAgICAgICAgICAgICBpZiB4Lm5hbWUgPT0gbmFtZV0KKyAgICAgIGFzc2VydCBIYXNEZXBlbmRlbnRNb2R1bGUoYV9iX3N0YXJ0X21vZHVsZSwgJ3dpZGdldCcpCisKKyAgICAgICMgQ2hlY2sgSlMgZ2VuZXJhdGlvbi4KKyAgICAgIGpzID0gZ2VuZXJhdGUuR2VuZXJhdGVKUyhsb2FkX3NlcXVlbmNlKQorICAgICAgYXNzZXJ0ICdpbmxpbmUgc2NyaXB0IGZvciBzdGFydC5odG1sJyBpbiBqcworICAgICAgYXNzZXJ0ICdpbmxpbmUgc2NyaXB0IGZvciB3aWRnZXQuaHRtbCcgaW4ganMKKyAgICAgIGFzc2VydCAnL3Jhdy9yYXdfc2NyaXB0LmpzJyBpbiBqcworCisgICAgICAjIENoZWNrIEhUTUwgZ2VuZXJhdGlvbi4KKyAgICAgIGh0bWwgPSBnZW5lcmF0ZS5HZW5lcmF0ZVN0YW5kYWxvbmVIVE1MQXNTdHJpbmcoCisgICAgICAgICAgbG9hZF9zZXF1ZW5jZSwgdGl0bGU9JycsIGZsYXR0ZW5lZF9qc191cmw9Jy9ibGFoLmpzJykKKyAgICAgIGFzc2VydCAnPHBvbHltZXItZWxlbWVudCBuYW1lPSJzdGFydCI+JyBpbiBodG1sCisgICAgICBhc3NlcnQgJ2lubGluZSBzY3JpcHQgZm9yIHdpZGdldC5odG1sJyBub3QgaW4gaHRtbAorICAgICAgYXNzZXJ0ICdjb21tb24uY3NzJyBpbiBodG1sCisKKyAgZGVmIHRlc3RQb2x5bWVyQ29udmVyc2lvbihzZWxmKToKKyAgICBmaWxlX2NvbnRlbnRzID0ge30KKyAgICBmaWxlX2NvbnRlbnRzW29zLnBhdGgubm9ybXBhdGgoJy90bXAvYS9iL215X2NvbXBvbmVudC5odG1sJyldID0gIiIiCis8IURPQ1RZUEUgaHRtbD4KKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ibXktY29tcG9uZW50Ij4KKyAgPHRlbXBsYXRlPgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAgICd1c2Ugc3RyaWN0JzsKKyAgICBQb2x5bWVyICggeworICAgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgorIiIiCisgICAgd2l0aCBmYWtlX2ZzLkZha2VGUyhmaWxlX2NvbnRlbnRzKToKKyAgICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsKKyAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKCcvdHZjbS8nKSwgb3MucGF0aC5ub3JtcGF0aCgnL3RtcC8nKV0pCisgICAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKKyAgICAgIG15X2NvbXBvbmVudCA9IGxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPSdhLmIubXlfY29tcG9uZW50JykKKworICAgICAgZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgIG15X2NvbXBvbmVudC5BcHBlbmRKU0NvbnRlbnRzVG9GaWxlKAorICAgICAgICAgIGYsCisgICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cz1GYWxzZSwKKyAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3Q9Tm9uZSkKKyAgICAgIGpzID0gZi5nZXR2YWx1ZSgpLnJzdHJpcCgpCisgICAgICBleHBlY3RlZF9qcyA9ICIiIgorICAgICd1c2Ugc3RyaWN0JzsKKyAgICBQb2x5bWVyICggJ215LWNvbXBvbmVudCcsIHsKKyAgICB9KTsKKyIiIi5yc3RyaXAoKQorICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfanMsIGpzKQorCisgIGRlZiB0ZXN0UG9seW1lckNvbnZlcnNpb24yKHNlbGYpOgorICAgIGZpbGVfY29udGVudHMgPSB7fQorICAgIGZpbGVfY29udGVudHNbb3MucGF0aC5ub3JtcGF0aCgnL3RtcC9hL2IvbXlfY29tcG9uZW50Lmh0bWwnKV0gPSAiIiIKKzwhRE9DVFlQRSBodG1sPgorPHBvbHltZXItZWxlbWVudCBuYW1lPSJteS1jb21wb25lbnQiPgorICA8dGVtcGxhdGU+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICAgJ3VzZSBzdHJpY3QnOworICAgIFBvbHltZXIgKCApOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgorIiIiCisgICAgd2l0aCBmYWtlX2ZzLkZha2VGUyhmaWxlX2NvbnRlbnRzKToKKyAgICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsKKyAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKCcvdHZjbS8nKSwgb3MucGF0aC5ub3JtcGF0aCgnL3RtcC8nKV0pCisgICAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKKyAgICAgIG15X2NvbXBvbmVudCA9IGxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPSdhLmIubXlfY29tcG9uZW50JykKKworICAgICAgZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgIG15X2NvbXBvbmVudC5BcHBlbmRKU0NvbnRlbnRzVG9GaWxlKAorICAgICAgICAgIGYsCisgICAgICAgICAgdXNlX2luY2x1ZGVfdGFnc19mb3Jfc2NyaXB0cz1GYWxzZSwKKyAgICAgICAgICBkaXJfZm9yX2luY2x1ZGVfdGFnX3Jvb3Q9Tm9uZSkKKyAgICAgIGpzID0gZi5nZXR2YWx1ZSgpLnJzdHJpcCgpCisgICAgICBleHBlY3RlZF9qcyA9ICIiIgorICAgICd1c2Ugc3RyaWN0JzsKKyAgICBQb2x5bWVyICggJ215LWNvbXBvbmVudCcpOworIiIiLnJzdHJpcCgpCisgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9qcywganMpCisKKyAgZGVmIHRlc3RJbmxpbmVTdHlsZXNoZWV0VVJMcyhzZWxmKToKKyAgICBmaWxlX2NvbnRlbnRzID0ge30KKyAgICBmaWxlX2NvbnRlbnRzW29zLnBhdGgubm9ybXBhdGgoJy90bXAvYS9iL215X2NvbXBvbmVudC5odG1sJyldID0gIiIiCis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKy5zb21lLXJ1bGUgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vc29tZXRoaW5nLmpwZycpOworfQorPC9zdHlsZT4KKyIiIgorICAgIGZpbGVfY29udGVudHNbb3MucGF0aC5ub3JtcGF0aCgnL3RtcC9hL3NvbWV0aGluZy5qcGcnKV0gPSAnanBnZGF0YScKKyAgICB3aXRoIGZha2VfZnMuRmFrZUZTKGZpbGVfY29udGVudHMpOgorICAgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoWworICAgICAgICAgIG9zLnBhdGgubm9ybXBhdGgoJy90dmNtLycpLCBvcy5wYXRoLm5vcm1wYXRoKCcvdG1wLycpXSkKKyAgICAgIGxvYWRlciA9IHJlc291cmNlX2xvYWRlci5SZXNvdXJjZUxvYWRlcihwcm9qZWN0KQorICAgICAgbXlfY29tcG9uZW50ID0gbG9hZGVyLkxvYWRNb2R1bGUobW9kdWxlX25hbWU9J2EuYi5teV9jb21wb25lbnQnKQorCisgICAgICBjb21wdXRlZF9kZXBzID0gW10KKyAgICAgIG15X2NvbXBvbmVudC5BcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKGNvbXB1dGVkX2RlcHMpCisgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXQoY29tcHV0ZWRfZGVwcyksCisgICAgICAgICAgICAgICAgICAgICAgICBzZXQoW29zLnBhdGgubm9ybXBhdGgoJy90bXAvYS9iL215X2NvbXBvbmVudC5odG1sJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGgubm9ybXBhdGgoJy90bXAvYS9zb21ldGhpbmcuanBnJyldKSkKKworICAgICAgZiA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgIGN0bCA9IGh0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLkhUTUxHZW5lcmF0aW9uQ29udHJvbGxlcigpCisgICAgICBteV9jb21wb25lbnQuQXBwZW5kSFRNTENvbnRlbnRzVG9GaWxlKGYsIGN0bCkKKyAgICAgIGh0bWwgPSBmLmdldHZhbHVlKCkucnN0cmlwKCkKKyAgICAgICMgRklYTUU6IFRoaXMgaXMgYXBwYXJlbnRseSBub3QgdXNlZC4KKyAgICAgIGV4cGVjdGVkX2h0bWwgPSAiIiIKKy5zb21lLXJ1bGUgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL2pwZztiYXNlNjQsYW5CblpHRjBZUT09KTsKK30KKyIiIi5yc3RyaXAoKQorICAgICAgcHJpbnQgaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2pzX3V0aWxzLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2pzX3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzZDg1ZTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vanNfdXRpbHMucHkKQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisKK2RlZiBFc2NhcGVKU0lmTmVlZGVkKGpzKToKKyAgcmV0dXJuIGpzLnJlcGxhY2UoJzwvc2NyaXB0PicsICc8XC9zY3JpcHQ+JykKKworCitkZWYgVmFsaWRhdGVVc2VzU3RyaWN0TW9kZShtb2R1bGVfbmFtZSwgc3RyaXBwZWRfdGV4dCk6CisgICIiIkNoZWNrIHRoYXQgdGhlIGZpcnN0IG5vbi1lbXB0eSBsaW5lIGlzICd1c2Ugc3RyaWN0JzsuCisKKyAgQXJnczoKKyAgICBzdHJpcHBlZF90ZXh0OiBKYXZhU2NyaXB0IHNvdXJjZSBjb2RlIHdpdGggY29tbWVudHMgc3RyaXBwZWQgb3V0LgorCisgIFJhaXNlczoKKyAgICBEZXBzRXhjZXB0aW9uOiBUaGlzIGZpbGUgZG9lc24ndCB1c2Ugc3RyaWN0IG1vZGUuCisgICIiIgorICBsaW5lcyA9IHN0cmlwcGVkX3RleHQuc3BsaXQoJ1xuJykKKyAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgbGluZSA9IGxpbmUuc3RyaXAoKQorICAgIGlmIGxlbihsaW5lLnN0cmlwKCkpID09IDA6CisgICAgICBjb250aW51ZQorICAgIGlmICIiIid1c2Ugc3RyaWN0JzsiIiIgaW4gbGluZS5zdHJpcCgpOgorICAgICAgYnJlYWsKKyAgICAjIEZJWE1FOiBtb2R1bGUgaXMgdXNlZCBidXQgbm90IGltcG9ydGVkLiBCdXQsIGltcG9ydGluZyB0dmNtLm1vZHVsZQorICAgICMgbGVhZHMgdG8gYW4gaW1wb3J0IGN5Y2xlIHNpbmNlIHR2Y20ubW9kdWxlIGltcG9ydHMganNfdXRpbHMuCisgICAgcmFpc2UgbW9kdWxlLkRlcHNFeGNlcHRpb24oJyVzIG11c3QgdXNlIHN0cmljdCBtb2RlJyAlIG1vZHVsZV9uYW1lKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2pzX3V0aWxzX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL2pzX3V0aWxzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2MjU5OGIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vanNfdXRpbHNfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB0dmNtIGltcG9ydCBzdHJpcF9qc19jb21tZW50cworZnJvbSB0dmNtIGltcG9ydCBqc191dGlscworCisKK2NsYXNzIFZhbGlkYXRlU3RyaWN0TW9kZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgIiIiVGVzdCBjYXNlIGZvciBWYWxpZGF0ZVVzZXNTdHJpY3RNb2RlLiIiIgorCisgIGRlZiB0ZXN0X1ZhbGlkYXRlVXNlc1N0cmljdE1vZGVfcmV0dXJuc190cnVlKHNlbGYpOgorICAgIHRleHQgPSAiLy8gYmxhaGJsYWhibGFoXG5cbid1c2Ugc3RyaWN0JztcblxudHZjbS5yZXF1aXJlKCdkZXBlbmRlbmN5MScpOyIKKyAgICBzdHJpcHBlZF90ZXh0ID0gc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKHRleHQpCisgICAgc2VsZi5hc3NlcnRJc05vbmUoanNfdXRpbHMuVmFsaWRhdGVVc2VzU3RyaWN0TW9kZSgnbW9kdWxlJywgc3RyaXBwZWRfdGV4dCkpCisKKyAgZGVmIHRlc3RfVmFsaWRhdGVVc2VzU3RyaWN0TW9kZU9uZUxpbmVyKHNlbGYpOgorICAgIHRleHQgPSAiJ3VzZSBzdHJpY3QnOyB0dmNtLnJlcXVpcmUoJ2RlcGVuZGVuY3kxJyk7IgorICAgIHN0cmlwcGVkX3RleHQgPSBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHModGV4dCkKKyAgICBzZWxmLmFzc2VydElzTm9uZShqc191dGlscy5WYWxpZGF0ZVVzZXNTdHJpY3RNb2RlKCdtb2R1bGUnLCBzdHJpcHBlZF90ZXh0KSkKKworICBkZWYgdGVzdF9WYWxpZGF0ZVVzZXNTdHJpY3RNb2RlX2NhdGNoZXNfbWlzc2luZ19zdHJpY3RfbW9kZShzZWxmKToKKyAgICB0ZXh0ID0gIi8vIGJsYWhibGFoYmxhaFxuXG50dmNtLnJlcXVpcmUoJ2RlcGVuZGVuY3kxJyk7IgorICAgIHN0cmlwcGVkX3RleHQgPSBzdHJpcF9qc19jb21tZW50cy5TdHJpcEpTQ29tbWVudHModGV4dCkKKyAgICBzZWxmLmFzc2VydFJhaXNlcygKKyAgICAgICAgbGFtYmRhOiBqc191dGlscy5WYWxpZGF0ZVVzZXNTdHJpY3RNb2RlKCdtb2R1bGUnLCBzdHJpcHBlZF90ZXh0KSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9tb2R1bGUucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vbW9kdWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYzdhM2YKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vbW9kdWxlLnB5CkBAIC0wLDAgKzEsMjY1IEBACisjIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyIiIlRoaXMgbW9kdWxlIGNvbnRhaW5zIHRoZSBNb2R1bGUgY2xhc3MgYW5kIG90aGVyIGNsYXNzZXMgZm9yIHJlc291cmNlcy4KKworVGhlIE1vZHVsZSBjbGFzcyByZXByZXNlbnRzIGEgbW9kdWxlIGluIHRoZSB0cmFjZSB2aWV3ZXIgc3lzdGVtLiBBIG1vZHVsZSBoYXMKK2EgbmFtZSwgYW5kIG1heSByZXF1aXJlIGEgdmFyaWV0eSBvZiBvdGhlciByZXNvdXJjZXMsIHN1Y2ggYXMgc3R5bGVzaGVldHMsCit0ZW1wbGF0ZSBvYmplY3RzLCByYXcgSmF2YVNjcmlwdCwgb3Igb3RoZXIgbW9kdWxlcy4KKworT3RoZXIgcmVzb3VyY2VzIGluY2x1ZGUgSFRNTCB0ZW1wbGF0ZXMsIHJhdyBKYXZhU2NyaXB0IGZpbGVzLCBhbmQgc3R5bGVzaGVldHMuCisiIiIKKworaW1wb3J0IG9zCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IGNvZGVjcworCitmcm9tIHR2Y20gaW1wb3J0IGpzX3V0aWxzCisKKworY2xhc3MgRGVwc0V4Y2VwdGlvbihFeGNlcHRpb24pOgorICAiIiJFeGNlcHRpb25zIHJlbGF0ZWQgdG8gbW9kdWxlIGRlcGVuZGVuY3kgcmVzb2x1dGlvbi4iIiIKKworICBkZWYgX19pbml0X18oc2VsZiwgZm10LCAqYXJncyk6CisgICAgZnJvbSB0dmNtIGltcG9ydCBzdHlsZV9zaGVldCBhcyBzdHlsZV9zaGVldF9tb2R1bGUKKyAgICBjb250ZXh0ID0gW10KKyAgICBmcmFtZSA9IGluc3BlY3QuY3VycmVudGZyYW1lKCkKKyAgICB3aGlsZSBmcmFtZToKKyAgICAgIGZyYW1lX2xvY2FscyA9IGZyYW1lLmZfbG9jYWxzCisKKyAgICAgIG1vZHVsZV9uYW1lID0gTm9uZQorICAgICAgaWYgJ3NlbGYnIGluIGZyYW1lX2xvY2FsczoKKyAgICAgICAgcyA9IGZyYW1lX2xvY2Fsc1snc2VsZiddCisgICAgICAgIGlmIGlzaW5zdGFuY2UocywgTW9kdWxlKToKKyAgICAgICAgICBtb2R1bGVfbmFtZSA9IHMubmFtZQorICAgICAgICBpZiBpc2luc3RhbmNlKHMsIHN0eWxlX3NoZWV0X21vZHVsZS5TdHlsZVNoZWV0KToKKyAgICAgICAgICBtb2R1bGVfbmFtZSA9IHMubmFtZSArICcuY3NzJworICAgICAgaWYgbm90IG1vZHVsZV9uYW1lOgorICAgICAgICBpZiAnbW9kdWxlJyBpbiBmcmFtZV9sb2NhbHM6CisgICAgICAgICAgbW9kdWxlID0gZnJhbWVfbG9jYWxzWydtb2R1bGUnXQorICAgICAgICAgIGlmIGlzaW5zdGFuY2UocywgTW9kdWxlKToKKyAgICAgICAgICAgIG1vZHVsZV9uYW1lID0gbW9kdWxlLm5hbWUKKyAgICAgICAgZWxpZiAnbScgaW4gZnJhbWVfbG9jYWxzOgorICAgICAgICAgIG1vZHVsZSA9IGZyYW1lX2xvY2Fsc1snbSddCisgICAgICAgICAgaWYgaXNpbnN0YW5jZShzLCBNb2R1bGUpOgorICAgICAgICAgICAgbW9kdWxlX25hbWUgPSBtb2R1bGUubmFtZQorCisgICAgICBpZiBtb2R1bGVfbmFtZToKKyAgICAgICAgaWYgbGVuKGNvbnRleHQpOgorICAgICAgICAgIGlmIGNvbnRleHRbLTFdICE9IG1vZHVsZV9uYW1lOgorICAgICAgICAgICAgY29udGV4dC5hcHBlbmQobW9kdWxlX25hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgY29udGV4dC5hcHBlbmQobW9kdWxlX25hbWUpCisKKyAgICAgIGZyYW1lID0gZnJhbWUuZl9iYWNrCisKKyAgICBjb250ZXh0LnJldmVyc2UoKQorICAgIHNlbGYuY29udGV4dCA9IGNvbnRleHQKKyAgICBjb250ZXh0X3N0ciA9ICdcbicuam9pbignICAlcycgJSB4IGZvciB4IGluIGNvbnRleHQpCisgICAgRXhjZXB0aW9uLl9faW5pdF9fKAorICAgICAgICBzZWxmLCAnV2hpbGUgbG9hZGluZzpcbiVzXG5Hb3Q6ICVzJyAlIChjb250ZXh0X3N0ciwgKGZtdCAlIGFyZ3MpKSkKKworCitjbGFzcyBNb2R1bGVEZXBlbmRlbmN5TWV0YWRhdGEob2JqZWN0KToKKworICBkZWYgX19pbml0X18oc2VsZik6CisgICAgc2VsZi5kZXBlbmRlbnRfbW9kdWxlX25hbWVzID0gW10KKyAgICBzZWxmLmRlcGVuZGVudF9yYXdfc2NyaXB0X3JlbGF0aXZlX3BhdGhzID0gW10KKyAgICBzZWxmLnN0eWxlX3NoZWV0X25hbWVzID0gW10KKworICBkZWYgQXBwZW5kTWV0ZGF0YShzZWxmLCBvdGhlcik6CisgICAgc2VsZi5kZXBlbmRlbnRfbW9kdWxlX25hbWVzICs9IG90aGVyLmRlcGVuZGVudF9tb2R1bGVfbmFtZXMKKyAgICBzZWxmLmRlcGVuZGVudF9yYXdfc2NyaXB0X3JlbGF0aXZlX3BhdGhzICs9IFwKKyAgICAgICAgb3RoZXIuZGVwZW5kZW50X3Jhd19zY3JpcHRfcmVsYXRpdmVfcGF0aHMKKyAgICBzZWxmLnN0eWxlX3NoZWV0X25hbWVzICs9IG90aGVyLnN0eWxlX3NoZWV0X25hbWVzCisKKworX25leHRfbW9kdWxlX2lkID0gMQorCisKK2NsYXNzIE1vZHVsZShvYmplY3QpOgorICAiIiJSZXByZXNlbnRzIGEgSmF2YVNjcmlwdCBtb2R1bGUuCisKKyAgSW50ZXJlc3RpbmcgcHJvcGVydGllcyBpbmNsdWRlOgorICAgIG5hbWU6IE1vZHVsZSBuYW1lLCBtYXkgaW5jbHVkZSBhIG5hbWVzcGFjZSwgZS5nLiAndHZjbS5mb28nLgorICAgIGZpbGVuYW1lOiBUaGUgZmlsZW5hbWUgb2YgdGhlIGFjdHVhbCBtb2R1bGUuCisgICAgY29udGVudHM6IFRoZSB0ZXh0IGNvbnRlbnRzIG9mIHRoZSBtb2R1bGUuCisgICAgZGVwZW5kZW50X21vZHVsZXM6IE90aGVyIG1vZHVsZXMgdGhhdCB0aGlzIG1vZHVsZSBkZXBlbmRzIG9uLgorCisgIEluIGFkZGl0aW9uIHRvIHRoZXNlIHByb3BlcnRpZXMsIGEgTW9kdWxlIGFsc28gY29udGFpbnMgbGlzdHMgb2Ygb3RoZXIKKyAgcmVzb3VyY2VzIHRoYXQgaXQgZGVwZW5kcyBvbi4KKyAgIiIiCisKKyAgZGVmIF9faW5pdF9fKHNlbGYsIGxvYWRlciwgbmFtZSwgcmVzb3VyY2UsIGxvYWRfcmVzb3VyY2U9VHJ1ZSk6CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UobmFtZSwgYmFzZXN0cmluZyksICdHb3QgJXMgaW5zdGVhZCcgJSByZXByKG5hbWUpCisKKyAgICBnbG9iYWwgX25leHRfbW9kdWxlX2lkCisgICAgc2VsZi5faWQgPSBfbmV4dF9tb2R1bGVfaWQKKyAgICBfbmV4dF9tb2R1bGVfaWQgKz0gMQorCisgICAgc2VsZi5sb2FkZXIgPSBsb2FkZXIKKyAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgc2VsZi5yZXNvdXJjZSA9IHJlc291cmNlCisKKyAgICBpZiBsb2FkX3Jlc291cmNlOgorICAgICAgZiA9IGNvZGVjcy5vcGVuKHNlbGYuZmlsZW5hbWUsIG1vZGU9J3InLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgc2VsZi5jb250ZW50cyA9IGYucmVhZCgpCisgICAgICBmLmNsb3NlKCkKKyAgICBlbHNlOgorICAgICAgc2VsZi5jb250ZW50cyA9IE5vbmUKKworICAgICMgRGVwZW5kZW5jeSBtZXRhZGF0YSwgc2V0IHVwIGR1cmluZyBQYXJzZSgpLgorICAgIHNlbGYuZGVwZW5kZW5jeV9tZXRhZGF0YSA9IE5vbmUKKworICAgICMgQWN0dWFsIGRlcGVuZGVuY2llcywgc2V0IHVwIGR1cmluZyBsb2FkKCkuCisgICAgc2VsZi5kZXBlbmRlbnRfbW9kdWxlcyA9IFtdCisgICAgc2VsZi5kZXBlbmRlbnRfcmF3X3NjcmlwdHMgPSBbXQorICAgIHNlbGYuc3R5bGVfc2hlZXRzID0gW10KKworICAgICMgQ2FjaGVzLgorICAgIHNlbGYuX2FsbF9kZXBlbmRlbnRfbW9kdWxlc19yZWN1cnNpdmUgPSBOb25lCisKKyAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgIHJldHVybiAnJXMoJXMpJyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2VsZi5uYW1lKQorCisgIEBwcm9wZXJ0eQorICBkZWYgaWQoc2VsZik6CisgICAgcmV0dXJuIHNlbGYuX2lkCisKKyAgQHByb3BlcnR5CisgIGRlZiBmaWxlbmFtZShzZWxmKToKKyAgICByZXR1cm4gc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoCisKKyAgZGVmIGlzQ29tcG9uZW50KHNlbGYpOgorICAgIHJlZiA9IG9zLnBhdGguam9pbigndGhpcmRfcGFydHknLCAnY29tcG9uZW50cycpCisgICAgcmV0dXJuIHJlZiBpbiBzZWxmLmZpbGVuYW1lCisKKyAgZGVmIFBhcnNlKHNlbGYpOgorICAgICIiIlBhcnNlcyBzZWxmLmNvbnRlbnRzIGFuZCBmaWxscyBpbiB0aGUgbW9kdWxlJ3MgZGVwZW5kZW5jeSBtZXRhZGF0YS4iIiIKKyAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICBkZWYgR2V0VFZDTURlcHNNb2R1bGVUeXBlKHNlbGYpOgorICAgICIiIlJldHVybnMgdGhlIHR2Y20uc2V0TW9kdWxlSW5mbyB0eXBlIGZvciB0aGlzIG1vZHVsZSIiIgorICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgIGRlZiBBcHBlbmRKU0NvbnRlbnRzVG9GaWxlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcl9mb3JfaW5jbHVkZV90YWdfcm9vdCk6CisgICAgIiIiQXBwZW5kcyB0aGUganMgZm9yIHRoaXMgbW9kdWxlIHRvIHRoZSBwcm92aWRlZCBmaWxlLiIiIgorICAgIGZvciBkZXBlbmRlbnRfcmF3X3NjcmlwdCBpbiBzZWxmLmRlcGVuZGVudF9yYXdfc2NyaXB0czoKKyAgICAgIGlmIHVzZV9pbmNsdWRlX3RhZ3NfZm9yX3NjcmlwdHM6CisgICAgICAgIHJlbF9maWxlbmFtZSA9IG9zLnBhdGgucmVscGF0aChkZXBlbmRlbnRfcmF3X3NjcmlwdC5maWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcl9mb3JfaW5jbHVkZV90YWdfcm9vdCkKKyAgICAgICAgZi53cml0ZSgiIiI8aW5jbHVkZSBzcmM9IiVzIj5cbiIiIiAlIHJlbF9maWxlbmFtZSkKKyAgICAgIGVsc2U6CisgICAgICAgIGYud3JpdGUoanNfdXRpbHMuRXNjYXBlSlNJZk5lZWRlZChkZXBlbmRlbnRfcmF3X3NjcmlwdC5jb250ZW50cykpCisgICAgICAgIGYud3JpdGUoJ1xuJykKKworICBkZWYgQXBwZW5kSFRNTENvbnRlbnRzVG9GaWxlKHNlbGYsIGYsIGN0bCwgbWluaWZ5PUZhbHNlKToKKyAgICAiIiJBcHBlbmRzIHRoZSBIVE1MIGZvciB0aGlzIG1vZHVsZSBbd2l0aG91dCBsaW5rc10gdG8gdGhlIHByb3ZpZGVkIGZpbGUuIiIiCisgICAgcGFzcworCisgIGRlZiBMb2FkKHNlbGYpOgorICAgICIiIkxvYWRzIHRoZSBzdWItcmVzb3VyY2VzIHRoYXQgdGhpcyBtb2R1bGUgZGVwZW5kcyBvbiBmcm9tIGl0cyBkZXBlbmRlbmN5CisgICAgbWV0YWRhdGEuCisKKyAgICBSYWlzZXM6CisgICAgICBEZXBzRXhjZXB0aW9uOiBUaGVyZSB3YXMgYSBwcm9ibGVtIGZpbmRpbmcgb25lIG9mIHRoZSBkZXBlbmRlbmNpZXMuCisgICAgICBFeGNlcHRpb246IFRoZXJlIHdhcyBhIHByb2JsZW0gcGFyc2luZyBhIG1vZHVsZSB0aGF0IHRoaXMgb25lIGRlcGVuZHMgb24uCisgICAgIiIiCisgICAgYXNzZXJ0IHNlbGYubmFtZSwgJ01vZHVsZSBuYW1lIG11c3QgYmUgc2V0IGJlZm9yZSBkZXAgcmVzb2x1dGlvbi4nCisgICAgYXNzZXJ0IHNlbGYuZmlsZW5hbWUsICdNb2R1bGUgZmlsZW5hbWUgbXVzdCBiZSBzZXQgYmVmb3JlIGRlcCByZXNvbHV0aW9uLicKKyAgICBhc3NlcnQgc2VsZi5uYW1lIGluIHNlbGYubG9hZGVyLmxvYWRlZF9tb2R1bGVzLCAoCisgICAgICAgICdNb2R1bGUgbXVzdCBiZSByZWdpc3RlcmVkIGluIHJlc291cmNlIGxvYWRlciBiZWZvcmUgbG9hZGluZy4nKQorCisgICAgbWV0YWRhdGEgPSBzZWxmLmRlcGVuZGVuY3lfbWV0YWRhdGEKKyAgICBmb3IgbmFtZSBpbiBtZXRhZGF0YS5kZXBlbmRlbnRfbW9kdWxlX25hbWVzOgorICAgICAgbW9kdWxlID0gc2VsZi5sb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT1uYW1lKQorICAgICAgc2VsZi5kZXBlbmRlbnRfbW9kdWxlcy5hcHBlbmQobW9kdWxlKQorCisgICAgZm9yIHBhdGggaW4gbWV0YWRhdGEuZGVwZW5kZW50X3Jhd19zY3JpcHRfcmVsYXRpdmVfcGF0aHM6CisgICAgICByYXdfc2NyaXB0ID0gc2VsZi5sb2FkZXIuTG9hZFJhd1NjcmlwdChwYXRoKQorICAgICAgc2VsZi5kZXBlbmRlbnRfcmF3X3NjcmlwdHMuYXBwZW5kKHJhd19zY3JpcHQpCisKKyAgICBmb3IgbmFtZSBpbiBtZXRhZGF0YS5zdHlsZV9zaGVldF9uYW1lczoKKyAgICAgIHN0eWxlX3NoZWV0ID0gc2VsZi5sb2FkZXIuTG9hZFN0eWxlU2hlZXQobmFtZSkKKyAgICAgIHNlbGYuc3R5bGVfc2hlZXRzLmFwcGVuZChzdHlsZV9zaGVldCkKKworICBAcHJvcGVydHkKKyAgZGVmIGFsbF9kZXBlbmRlbnRfbW9kdWxlc19yZWN1cnNpdmUoc2VsZik6CisgICAgaWYgc2VsZi5fYWxsX2RlcGVuZGVudF9tb2R1bGVzX3JlY3Vyc2l2ZToKKyAgICAgIHJldHVybiBzZWxmLl9hbGxfZGVwZW5kZW50X21vZHVsZXNfcmVjdXJzaXZlCisKKyAgICBzZWxmLl9hbGxfZGVwZW5kZW50X21vZHVsZXNfcmVjdXJzaXZlID0gc2V0KHNlbGYuZGVwZW5kZW50X21vZHVsZXMpCisgICAgZm9yIGRlcGVuZGVudF9tb2R1bGUgaW4gc2VsZi5kZXBlbmRlbnRfbW9kdWxlczoKKyAgICAgIHNlbGYuX2FsbF9kZXBlbmRlbnRfbW9kdWxlc19yZWN1cnNpdmUudXBkYXRlKAorICAgICAgICAgIGRlcGVuZGVudF9tb2R1bGUuYWxsX2RlcGVuZGVudF9tb2R1bGVzX3JlY3Vyc2l2ZSkKKyAgICByZXR1cm4gc2VsZi5fYWxsX2RlcGVuZGVudF9tb2R1bGVzX3JlY3Vyc2l2ZQorCisgIGRlZiBDb21wdXRlTG9hZFNlcXVlbmNlUmVjdXJzaXZlKHNlbGYsIGxvYWRfc2VxdWVuY2UsIGFscmVhZHlfbG9hZGVkX3NldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGg9MCk6CisgICAgIiIiUmVjdXJzaXZlbHkgYnVpbGRzIHVwIGEgbG9hZCBzZXF1ZW5jZSBsaXN0LgorCisgICAgQXJnczoKKyAgICAgIGxvYWRfc2VxdWVuY2U6IEEgbGlzdCB3aGljaCB3aWxsIGJlIGluY3JlbWVudGFsbHkgYnVpbHQgdXAuCisgICAgICBhbHJlYWR5X2xvYWRlZF9zZXQ6IEEgc2V0IG9mIG1vZHVsZXMgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHRoZQorICAgICAgICAgIGxvYWQgc2VxdWVuY2UgbGlzdC4KKyAgICAgIGRlcHRoOiBUaGUgZGVwdGggb2YgcmVjdXJzaW9uLiBJZiBpdCB0b28gZGVlcCwgdGhhdCBpbmRpY2F0ZXMgYSBsb29wLgorICAgICIiIgorICAgIGlmIGRlcHRoID4gMzI6CisgICAgICByYWlzZSBFeGNlcHRpb24oJ0luY2x1ZGUgbG9vcCBkZXRlY3RlZCBvbiAlcycsIHNlbGYubmFtZSkKKyAgICBmb3IgZGVwZW5kZW50X21vZHVsZSBpbiBzZWxmLmRlcGVuZGVudF9tb2R1bGVzOgorICAgICAgaWYgZGVwZW5kZW50X21vZHVsZS5uYW1lIGluIGFscmVhZHlfbG9hZGVkX3NldDoKKyAgICAgICAgY29udGludWUKKyAgICAgIGRlcGVuZGVudF9tb2R1bGUuQ29tcHV0ZUxvYWRTZXF1ZW5jZVJlY3Vyc2l2ZSgKKyAgICAgICAgICBsb2FkX3NlcXVlbmNlLCBhbHJlYWR5X2xvYWRlZF9zZXQsIGRlcHRoICsgMSkKKyAgICBpZiBzZWxmLm5hbWUgbm90IGluIGFscmVhZHlfbG9hZGVkX3NldDoKKyAgICAgIGFscmVhZHlfbG9hZGVkX3NldC5hZGQoc2VsZi5uYW1lKQorICAgICAgbG9hZF9zZXF1ZW5jZS5hcHBlbmQoc2VsZikKKworICBkZWYgR2V0QWxsRGVwZW5kZW50RmlsZW5hbWVzUmVjdXJzaXZlKHNlbGYsIGluY2x1ZGVfcmF3X3NjcmlwdHM9VHJ1ZSk6CisgICAgZGVwZW5kZW50X2ZpbGVuYW1lcyA9IFtdCisKKyAgICB2aXNpdGVkX21vZHVsZXMgPSBzZXQoKQorCisgICAgZGVmIEdldChtb2R1bGUpOgorICAgICAgbW9kdWxlLkFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oCisgICAgICAgICAgZGVwZW5kZW50X2ZpbGVuYW1lcywgaW5jbHVkZV9yYXdfc2NyaXB0cykKKyAgICAgIHZpc2l0ZWRfbW9kdWxlcy5hZGQobW9kdWxlKQorICAgICAgZm9yIG0gaW4gbW9kdWxlLmRlcGVuZGVudF9tb2R1bGVzOgorICAgICAgICBpZiBtIGluIHZpc2l0ZWRfbW9kdWxlczoKKyAgICAgICAgICBjb250aW51ZQorICAgICAgICBHZXQobSkKKworICAgIEdldChzZWxmKQorICAgIHJldHVybiBkZXBlbmRlbnRfZmlsZW5hbWVzCisKKyAgZGVmIEFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oCisgICAgICBzZWxmLCBkZXBlbmRlbnRfZmlsZW5hbWVzLCBpbmNsdWRlX3Jhd19zY3JpcHRzPVRydWUpOgorICAgIGRlcGVuZGVudF9maWxlbmFtZXMuYXBwZW5kKHNlbGYucmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkKKyAgICBpZiBpbmNsdWRlX3Jhd19zY3JpcHRzOgorICAgICAgZm9yIHJhd19zY3JpcHQgaW4gc2VsZi5kZXBlbmRlbnRfcmF3X3NjcmlwdHM6CisgICAgICAgIGRlcGVuZGVudF9maWxlbmFtZXMuYXBwZW5kKHJhd19zY3JpcHQucmVzb3VyY2UuYWJzb2x1dGVfcGF0aCkKKyAgICBmb3Igc3R5bGVfc2hlZXQgaW4gc2VsZi5zdHlsZV9zaGVldHM6CisgICAgICBzdHlsZV9zaGVldC5BcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKGRlcGVuZGVudF9maWxlbmFtZXMpCisKKworY2xhc3MgUmF3U2NyaXB0KG9iamVjdCk6CisgICIiIlJlcHJlc2VudHMgYSByYXcgc2NyaXB0IHJlc291cmNlIHJlZmVyZW5jZWQgYnkgYSBtb2R1bGUgdmlhIHRoZQorICB0dmNtLnJlcXVpcmVSYXdTY3JpcHQoeHh4KSBkaXJlY3RpdmUuIiIiCisKKyAgZGVmIF9faW5pdF9fKHNlbGYsIHJlc291cmNlKToKKyAgICBzZWxmLnJlc291cmNlID0gcmVzb3VyY2UKKworICBAcHJvcGVydHkKKyAgZGVmIGZpbGVuYW1lKHNlbGYpOgorICAgIHJldHVybiBzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgKKworICBAcHJvcGVydHkKKyAgZGVmIGNvbnRlbnRzKHNlbGYpOgorICAgIHJldHVybiBzZWxmLnJlc291cmNlLmNvbnRlbnRzCisKKyAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgIHJldHVybiAnUmF3U2NyaXB0KCVzKScgJSBzZWxmLmZpbGVuYW1lCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vbW9kdWxlX3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL21vZHVsZV91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDFjZGI5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL21vZHVsZV91bml0dGVzdC5weQpAQCAtMCwwICsxLDEzMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyIiIlRlc3RzIGZvciB0aGUgbW9kdWxlIG1vZHVsZSwgd2hpY2ggY29udGFpbnMgTW9kdWxlIGFuZCByZWxhdGVkIGNsYXNzZXMuIiIiCisKK2ltcG9ydCBvcworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gdHZjbSBpbXBvcnQgZmFrZV9mcworZnJvbSB0dmNtIGltcG9ydCBtb2R1bGUKK2Zyb20gdHZjbSBpbXBvcnQgcmVzb3VyY2VfbG9hZGVyCitmcm9tIHR2Y20gaW1wb3J0IHByb2plY3QgYXMgcHJvamVjdF9tb2R1bGUKKworCitjbGFzcyBNb2R1bGVJbnRlZ3JhdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICBkZWYgdGVzdF9tb2R1bGUoc2VsZik6CisgICAgZnMgPSBmYWtlX2ZzLkZha2VGUygpCisgICAgZnMuQWRkRmlsZSgnL3NyYy94Lmh0bWwnLCAiIiIKKzwhRE9DVFlQRSBodG1sPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii95Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii96Lmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKzwvc2NyaXB0PgorIiIiKQorICAgIGZzLkFkZEZpbGUoJy9zcmMveS5odG1sJywgIiIiCis8IURPQ1RZUEUgaHRtbD4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvei5odG1sIj4KKyIiIikKKyAgICBmcy5BZGRGaWxlKCcvc3JjL3ouaHRtbCcsICIiIgorPCFET0NUWVBFIGh0bWw+CisiIiIpCisgICAgZnMuQWRkRmlsZSgnL3NyYy90dmNtLmh0bWwnLCAnPCFET0NUWVBFIGh0bWw+JykKKyAgICB3aXRoIGZzOgorICAgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoW29zLnBhdGgubm9ybXBhdGgoJy9zcmMvJyldKQorICAgICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCisgICAgICB4X21vZHVsZSA9IGxvYWRlci5Mb2FkTW9kdWxlKCd4JykKKworICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW2xvYWRlci5sb2FkZWRfbW9kdWxlc1sneSddLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlci5sb2FkZWRfbW9kdWxlc1sneiddXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhfbW9kdWxlLmRlcGVuZGVudF9tb2R1bGVzKQorCisgICAgICBhbHJlYWR5X2xvYWRlZF9zZXQgPSBzZXQoKQorICAgICAgbG9hZF9zZXF1ZW5jZSA9IFtdCisgICAgICB4X21vZHVsZS5Db21wdXRlTG9hZFNlcXVlbmNlUmVjdXJzaXZlKGxvYWRfc2VxdWVuY2UsIGFscmVhZHlfbG9hZGVkX3NldCkKKworICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW2xvYWRlci5sb2FkZWRfbW9kdWxlc1sneiddLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlci5sb2FkZWRfbW9kdWxlc1sneSddLAorICAgICAgICAgICAgICAgICAgICAgICAgIHhfbW9kdWxlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRfc2VxdWVuY2UpCisKKyAgZGVmIHRlc3RCYXNpYyhzZWxmKToKKyAgICBmcyA9IGZha2VfZnMuRmFrZUZTKCkKKyAgICBmcy5BZGRGaWxlKCcveC9zcmMvbXlfbW9kdWxlLmh0bWwnLCAiIiIKKzwhRE9DVFlQRSBodG1sPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii90dmNtL2Zvby5odG1sIj4KK30pOworIiIiKQorICAgIGZzLkFkZEZpbGUoJy94L3R2Y20vZm9vLmh0bWwnLCAiIiIKKzwhRE9DVFlQRSBodG1sPgorfSk7CisiIiIpCisgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoW29zLnBhdGgubm9ybXBhdGgoJy94JyldKQorICAgIGxvYWRlciA9IHJlc291cmNlX2xvYWRlci5SZXNvdXJjZUxvYWRlcihwcm9qZWN0KQorICAgIHdpdGggZnM6CisgICAgICBteV9tb2R1bGUgPSBsb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT0nc3JjLm15X21vZHVsZScpCisgICAgICBkZXBfbmFtZXMgPSBbeC5uYW1lIGZvciB4IGluIG15X21vZHVsZS5kZXBlbmRlbnRfbW9kdWxlc10KKyAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsndHZjbS5mb28nXSwgZGVwX25hbWVzKQorCisgIGRlZiB0ZXN0RGVwc0V4Y2VwdGlvbkNvbnRleHQoc2VsZik6CisgICAgZnMgPSBmYWtlX2ZzLkZha2VGUygpCisgICAgZnMuQWRkRmlsZSgnL3gvc3JjL215X21vZHVsZS5odG1sJywgIiIiCis8IURPQ1RZUEUgaHRtbD4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdHZjbS9mb28uaHRtbCI+CisiIiIpCisgICAgZnMuQWRkRmlsZSgnL3gvdHZjbS9mb28uaHRtbCcsICIiIgorPCFET0NUWVBFIGh0bWw+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0ibWlzc2luZy5odG1sIj4KKyIiIikKKyAgICBwcm9qZWN0ID0gcHJvamVjdF9tb2R1bGUuUHJvamVjdChbb3MucGF0aC5ub3JtcGF0aCgnL3gnKV0pCisgICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCisgICAgd2l0aCBmczoKKyAgICAgIGV4YyA9IE5vbmUKKyAgICAgIHRyeToKKyAgICAgICAgbG9hZGVyLkxvYWRNb2R1bGUobW9kdWxlX25hbWU9J3NyYy5teV9tb2R1bGUnKQorICAgICAgICBhc3NlcnQgRmFsc2UsICdFeHBlY3RlZCBhbiBleGNlcHRpb24nCisgICAgICBleGNlcHQgbW9kdWxlLkRlcHNFeGNlcHRpb24sIGU6CisgICAgICAgIGV4YyA9IGUKKyAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAorICAgICAgICAgIFsnc3JjLm15X21vZHVsZScsICd0dmNtLmZvbyddLAorICAgICAgICAgIGV4Yy5jb250ZXh0KQorCisgIGRlZiB0ZXN0R2V0QWxsRGVwZW5kZW50RmlsZW5hbWVzUmVjdXJzaXZlKHNlbGYpOgorICAgIGZzID0gZmFrZV9mcy5GYWtlRlMoKQorICAgIGZzLkFkZEZpbGUoJy94L3kvei9mb28uaHRtbCcsICIiIgorPCFET0NUWVBFIGh0bWw+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3ovZm9vMi5odG1sIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3ovZm9vLmNzcyI+Cis8c2NyaXB0IHNyYz0iL2Jhci5qcyI+PC9zY3JpcHQ+CisiIiIpCisgICAgZnMuQWRkRmlsZSgnL3gveS96L2Zvby5jc3MnLCAiIiIKKy54IC55IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZm9vLmpwZWcpOworfQorIiIiKQorICAgIGZzLkFkZEZpbGUoJy94L3kvei9mb28uanBlZycsICcnKQorICAgIGZzLkFkZEZpbGUoJy94L3kvei9mb28yLmh0bWwnLCAiIiIKKzwhRE9DVFlQRSBodG1sPgorIiIiKQorICAgIGZzLkFkZEZpbGUoJy94L3Jhdy9iYXIuanMnLCAnaGVsbG8nKQorICAgIHByb2plY3QgPSBwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KFsKKyAgICAgICAgb3MucGF0aC5ub3JtcGF0aCgnL3gveScpLCBvcy5wYXRoLm5vcm1wYXRoKCcveC9yYXcvJyldKQorICAgIGxvYWRlciA9IHJlc291cmNlX2xvYWRlci5SZXNvdXJjZUxvYWRlcihwcm9qZWN0KQorICAgIHdpdGggZnM6CisgICAgICBteV9tb2R1bGUgPSBsb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT0nei5mb28nKQorICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKG15X21vZHVsZS5kZXBlbmRlbnRfcmF3X3NjcmlwdHMpKQorCisgICAgICBkZXBlbmRlbnRfZmlsZW5hbWVzID0gbXlfbW9kdWxlLkdldEFsbERlcGVuZGVudEZpbGVuYW1lc1JlY3Vyc2l2ZSgpCisgICAgICBzZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgICBbCisgICAgICAgICAgICAgIG9zLnBhdGgubm9ybXBhdGgoJy94L3kvei9mb28uaHRtbCcpLAorICAgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKCcveC9yYXcvYmFyLmpzJyksCisgICAgICAgICAgICAgIG9zLnBhdGgubm9ybXBhdGgoJy94L3kvei9mb28uY3NzJyksCisgICAgICAgICAgICAgIG9zLnBhdGgubm9ybXBhdGgoJy94L3kvei9mb28uanBlZycpLAorICAgICAgICAgICAgICBvcy5wYXRoLm5vcm1wYXRoKCcveC95L3ovZm9vMi5odG1sJyksCisgICAgICAgICAgXSwKKyAgICAgICAgICBkZXBlbmRlbnRfZmlsZW5hbWVzKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3BhcnNlX2h0bWxfZGVwcy5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9wYXJzZV9odG1sX2RlcHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFhOGM2NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9wYXJzZV9odG1sX2RlcHMucHkKQEAgLTAsMCArMSwxOTYgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitmcm9tIHR2Y20gaW1wb3J0IG1vZHVsZQorZnJvbSB0dmNtIGltcG9ydCBzdHJpcF9qc19jb21tZW50cworZnJvbSB0dmNtIGltcG9ydCBodG1sX2dlbmVyYXRpb25fY29udHJvbGxlcgorCisKK2RlZiBfSW5pdEJlYXV0aWZ1bFNvdXAoKToKKyAgdHZjbV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKKyAgYnNfcGF0aCA9IG9zLnBhdGguam9pbih0dmNtX3BhdGgsICd0aGlyZF9wYXJ0eScsICdiZWF1dGlmdWxzb3VwJykKKyAgaWYgYnNfcGF0aCBpbiBzeXMucGF0aDoKKyAgICByZXR1cm4KKyAgc3lzLnBhdGguaW5zZXJ0KDAsIGJzX3BhdGgpCisKKworX0luaXRCZWF1dGlmdWxTb3VwKCkKK2ltcG9ydCBCZWF1dGlmdWxTb3VwCitpbXBvcnQgcG9seW1lcl9zb3VwCisKKworY2xhc3MgSW5saW5lU2NyaXB0KG9iamVjdCk6CisgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VwKToKKyAgICBpZiBub3Qgc291cDoKKyAgICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKCdJbmxpbmVTY3JpcHQgY3JlYXRlZCB3aXRob3V0IHNvdXAnKQorICAgIHNlbGYuX3NvdXAgPSBzb3VwCisgICAgc2VsZi5fc3RyaXBwZWRfY29udGVudHMgPSBOb25lCisgICAgc2VsZi5fb3Blbl90YWdzID0gTm9uZQorCisgIEBwcm9wZXJ0eQorICBkZWYgY29udGVudHMoc2VsZik6CisgICAgI1RPRE8obmVkbmd1eWVuKTogY2hhbmdlIG90aGVyIHBsYWNlcyB0byB1c2UgdW5pY29kZSgpIGluc3RlYWQgb2Ygc3RyKCkuCisgICAgcmV0dXJuIHVuaWNvZGUoc2VsZi5fc291cC5zdHJpbmcpCisKKyAgQHByb3BlcnR5CisgIGRlZiBzdHJpcHBlZF9jb250ZW50cyhzZWxmKToKKyAgICBpZiBub3Qgc2VsZi5fc3RyaXBwZWRfY29udGVudHM6CisgICAgICBzZWxmLl9zdHJpcHBlZF9jb250ZW50cyA9IHN0cmlwX2pzX2NvbW1lbnRzLlN0cmlwSlNDb21tZW50cygKKyAgICAgICAgICBzZWxmLmNvbnRlbnRzKQorICAgIHJldHVybiBzZWxmLl9zdHJpcHBlZF9jb250ZW50cworCisgIEBwcm9wZXJ0eQorICBkZWYgb3Blbl90YWdzKHNlbGYpOgorICAgIGlmIHNlbGYuX29wZW5fdGFnczoKKyAgICAgIHJldHVybiBzZWxmLl9vcGVuX3RhZ3MKKyAgICBvcGVuX3RhZ3MgPSBbXQorICAgIGN1ciA9IHNlbGYuX3NvdXAucGFyZW50CisgICAgd2hpbGUgY3VyOgorICAgICAgaWYgaXNpbnN0YW5jZShjdXIsIEJlYXV0aWZ1bFNvdXAuQmVhdXRpZnVsU291cCk6CisgICAgICAgIGJyZWFrCisKKyAgICAgIG9wZW5fdGFncy5hcHBlbmQoX1RhZyhjdXIubmFtZSwgY3VyLmF0dHJzKSkKKyAgICAgIGN1ciA9IGN1ci5wYXJlbnQKKworICAgIG9wZW5fdGFncy5yZXZlcnNlKCkKKyAgICBhc3NlcnQgb3Blbl90YWdzWy0xXS50YWcgPT0gJ3NjcmlwdCcKKyAgICBkZWwgb3Blbl90YWdzWy0xXQorCisgICAgc2VsZi5fb3Blbl90YWdzID0gb3Blbl90YWdzCisgICAgcmV0dXJuIHNlbGYuX29wZW5fdGFncworCisKK2RlZiBfSXNEb2N0eXBlKHgpOgorICBpZiBub3QgaXNpbnN0YW5jZSh4LCBCZWF1dGlmdWxTb3VwLkRlY2xhcmF0aW9uKToKKyAgICByZXR1cm4gRmFsc2UKKyAgcmV0dXJuIHggPT0gJ0RPQ1RZUEUgaHRtbCcgb3IgeCA9PSAnRE9DVFlQRSBIVE1MJworCisKK2NsYXNzIEhUTUxNb2R1bGVQYXJzZXJSZXN1bHRzKG9iamVjdCk6CisgIGRlZiBfX2luaXRfXyhzZWxmLCBodG1sKToKKyAgICBzZWxmLl9zb3VwID0gcG9seW1lcl9zb3VwLlBvbHltZXJTb3VwKGh0bWwpCisgICAgc2VsZi5faW5saW5lX3NjcmlwdHMgPSBOb25lCisKKyAgQHByb3BlcnR5CisgIGRlZiBoYXNfZGVjbChzZWxmKToKKyAgICBkZWNscyA9IFt4IGZvciB4IGluIHNlbGYuX3NvdXAuY29udGVudHMKKyAgICAgICAgICAgICBpZiBfSXNEb2N0eXBlKHgpXQorICAgIHJldHVybiBsZW4oZGVjbHMpID09IDEKKworICBAcHJvcGVydHkKKyAgZGVmIHNjcmlwdHNfZXh0ZXJuYWwoc2VsZik6CisgICAgdGFncyA9IHNlbGYuX3NvdXAuZmluZEFsbCgnc2NyaXB0Jywgc3JjPVRydWUpCisgICAgcmV0dXJuIFt0WydzcmMnXSBmb3IgdCBpbiB0YWdzXQorCisgIEBwcm9wZXJ0eQorICBkZWYgaW5saW5lX3NjcmlwdHMoc2VsZik6CisgICAgaWYgbm90IHNlbGYuX2lubGluZV9zY3JpcHRzOgorICAgICAgdGFncyA9IHNlbGYuX3NvdXAuZmluZEFsbCgnc2NyaXB0Jywgc3JjPU5vbmUpCisgICAgICBzZWxmLl9pbmxpbmVfc2NyaXB0cyA9IFtJbmxpbmVTY3JpcHQodC5zdHJpbmcpIGZvciB0IGluIHRhZ3NdCisgICAgcmV0dXJuIHNlbGYuX2lubGluZV9zY3JpcHRzCisKKyAgQHByb3BlcnR5CisgIGRlZiBpbXBvcnRzKHNlbGYpOgorICAgIHRhZ3MgPSBzZWxmLl9zb3VwLmZpbmRBbGwoJ2xpbmsnLCByZWw9J2ltcG9ydCcpCisgICAgcmV0dXJuIFt0WydocmVmJ10gZm9yIHQgaW4gdGFnc10KKworICBAcHJvcGVydHkKKyAgZGVmIHN0eWxlc2hlZXRzKHNlbGYpOgorICAgIHRhZ3MgPSBzZWxmLl9zb3VwLmZpbmRBbGwoJ2xpbmsnLCByZWw9J3N0eWxlc2hlZXQnKQorICAgIHJldHVybiBbdFsnaHJlZiddIGZvciB0IGluIHRhZ3NdCisKKyAgQHByb3BlcnR5CisgIGRlZiBpbmxpbmVfc3R5bGVzaGVldHMoc2VsZik6CisgICAgdGFncyA9IHNlbGYuX3NvdXAuZmluZEFsbCgnc3R5bGUnKQorICAgIHJldHVybiBbc3RyKHQuc3RyaW5nKSBmb3IgdCBpbiB0YWdzXQorCisgIGRlZiBZaWVsZEhUTUxJblBpZWNlcyhzZWxmLCBjb250cm9sbGVyLCBtaW5pZnk9RmFsc2UpOgorICAgIHlpZWxkIHNlbGYuR2VuZXJhdGVIVE1MKGNvbnRyb2xsZXIsIG1pbmlmeSkKKworICBkZWYgR2VuZXJhdGVIVE1MKHNlbGYsIGNvbnRyb2xsZXIsIG1pbmlmeT1GYWxzZSk6CisgICAgc291cCA9IHBvbHltZXJfc291cC5Qb2x5bWVyU291cChzdHIoc2VsZi5fc291cCkpCisKKyAgICAjIFJlbW92ZSBkZWNsYXJhdGlvbi4KKyAgICBmb3IgeCBpbiBzb3VwLmNvbnRlbnRzOgorICAgICAgaWYgaXNpbnN0YW5jZSh4LCBCZWF1dGlmdWxTb3VwLkRlY2xhcmF0aW9uKToKKyAgICAgICAgaWYgX0lzRG9jdHlwZSh4KToKKyAgICAgICAgICB4LmV4dHJhY3QoKQorCisgICAgIyBSZW1vdmUgYWxsIGltcG9ydHMuCisgICAgaW1wb3J0cyA9IHNvdXAuZmluZEFsbCgnbGluaycsIHJlbD0naW1wb3J0JykKKyAgICBmb3IgaW1wIGluIGltcG9ydHM6CisgICAgICBpbXAuZXh0cmFjdCgpCisKKyAgICAjIFJlbW92ZSBhbGwgc2NyaXB0IGxpbmtzLgorICAgIHNjcmlwdHNfZXh0ZXJuYWwgPSBzb3VwLmZpbmRBbGwoJ3NjcmlwdCcsIHNyYz1UcnVlKQorICAgIGZvciBzY3JpcHQgaW4gc2NyaXB0c19leHRlcm5hbDoKKyAgICAgIHNjcmlwdC5leHRyYWN0KCkKKworICAgICMgUmVtb3ZlIGFsbCBpbi1saW5lIHNjcmlwdHMuCisgICAgc2NyaXB0c19leHRlcm5hbCA9IHNvdXAuZmluZEFsbCgnc2NyaXB0Jywgc3JjPU5vbmUpCisgICAgZm9yIHNjcmlwdCBpbiBzY3JpcHRzX2V4dGVybmFsOgorICAgICAgc2NyaXB0LmV4dHJhY3QoKQorCisgICAgIyBQcm9jZXNzIGFsbCBpbi1saW5lIHN0eWxlcy4KKyAgICBpbmxpbmVfc3R5bGVzID0gc291cC5maW5kQWxsKCdzdHlsZScpCisgICAgZm9yIHN0eWxlIGluIGlubGluZV9zdHlsZXM6CisgICAgICBodG1sID0gY29udHJvbGxlci5HZXRIVE1MRm9ySW5saW5lU3R5bGVzaGVldChzdHIoc3R5bGUuc3RyaW5nKSkKKyAgICAgIGlmIGh0bWw6CisgICAgICAgIG5zID0gQmVhdXRpZnVsU291cC5UYWcoc291cCwgJ3N0eWxlJykKKyAgICAgICAgbnMuYXBwZW5kKEJlYXV0aWZ1bFNvdXAuTmF2aWdhYmxlU3RyaW5nKGh0bWwpKQorICAgICAgICBzdHlsZS5yZXBsYWNlV2l0aChucykKKyAgICAgIGVsc2U6CisgICAgICAgIHN0eWxlLmV4dHJhY3QoKQorCisgICAgIyBSZXdyaXRlIGFsbCBleHRlcm5hbCBzdHlsZXNoZWV0IGhyZWZzIG9yIHJlbW92ZSwgYXMgbmVlZGVkLgorICAgIHN0eWxlc2hlZXRfbGlua3MgPSBzb3VwLmZpbmRBbGwoJ2xpbmsnLCByZWw9J3N0eWxlc2hlZXQnKQorICAgIGZvciBzdHlsZXNoZWV0X2xpbmsgaW4gc3R5bGVzaGVldF9saW5rczoKKyAgICAgIGh0bWwgPSBjb250cm9sbGVyLkdldEhUTUxGb3JTdHlsZXNoZWV0SFJlZihzdHlsZXNoZWV0X2xpbmtbJ2hyZWYnXSkKKyAgICAgIGlmIGh0bWw6CisgICAgICAgIHRtcCA9IHBvbHltZXJfc291cC5Qb2x5bWVyU291cChodG1sKS5maW5kQ2hpbGRyZW4oKQorICAgICAgICBhc3NlcnQgbGVuKHRtcCkgPT0gMQorICAgICAgICBzdHlsZXNoZWV0X2xpbmsucmVwbGFjZVdpdGgodG1wWzBdKQorICAgICAgZWxzZToKKyAgICAgICAgc3R5bGVzaGVldF9saW5rLmV4dHJhY3QoKQorCisgICAgIyBSZW1vdmUgY29tbWVudHMgaWYgbWluaWZ5aW5nLgorICAgIGlmIG1pbmlmeToKKyAgICAgIGNvbW1lbnRzID0gc291cC5maW5kQWxsKAorICAgICAgICAgIHRleHQ9bGFtYmRhIHRleHQ6IGlzaW5zdGFuY2UodGV4dCwgQmVhdXRpZnVsU291cC5Db21tZW50KSkKKyAgICAgIGZvciBjb21tZW50IGluIGNvbW1lbnRzOgorICAgICAgICBjb21tZW50LmV4dHJhY3QoKQorCisgICAgIyBXZSBhcmUgZG9uZS4KKyAgICByZXR1cm4gc3RyKHNvdXApLnN0cmlwKCkKKworICBAcHJvcGVydHkKKyAgZGVmIGh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KHNlbGYpOgorICAgIHJldHVybiBzZWxmLkdlbmVyYXRlSFRNTCgKKyAgICAgICAgaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIuSFRNTEdlbmVyYXRpb25Db250cm9sbGVyKCkpCisKKworY2xhc3MgX1RhZyhvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCB0YWcsIGF0dHJzKToKKyAgICBzZWxmLnRhZyA9IHRhZworICAgIHNlbGYuYXR0cnMgPSBhdHRycworCisgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICBhdHRyX3N0cmluZyA9ICcgJy5qb2luKFsnJXM9IiVzIicgJSAoeFswXSwgeFsxXSkgZm9yIHggaW4gc2VsZi5hdHRyc10pCisgICAgcmV0dXJuICc8JXMgJXM+JyAlIChzZWxmLnRhZywgYXR0cl9zdHJpbmcpCisKKworY2xhc3MgSFRNTE1vZHVsZVBhcnNlcigpOgorCisgIGRlZiBQYXJzZShzZWxmLCBodG1sKToKKyAgICBpZiBodG1sIGlzIE5vbmU6CisgICAgICBodG1sID0gJycKKyAgICBlbHNlOgorICAgICAgaWYgaHRtbC5maW5kKCc8IC9zY3JpcHQ+JykgIT0gLTE6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXNjYXBlIHNjcmlwdCB0YWdzIHdpdGggPFwvc2NyaXB0PicpCisKKyAgICByZXR1cm4gSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMoaHRtbCkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9wYXJzZV9odG1sX2RlcHNfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcGFyc2VfaHRtbF9kZXBzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0ZGYzMmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcGFyc2VfaHRtbF9kZXBzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMjU5IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCByZQoraW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gdHZjbSBpbXBvcnQgcGFyc2VfaHRtbF9kZXBzCitmcm9tIHR2Y20gaW1wb3J0IGh0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyCisKKworY2xhc3MgUGFyc2VUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgIGRlZiB0ZXN0X3BhcnNlX2VtcHR5KHNlbGYpOgorICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKyAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoJycpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zY3JpcHRzX2V4dGVybmFsKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW5saW5lX3NjcmlwdHMpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zdHlsZXNoZWV0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmltcG9ydHMpCisKKyAgZGVmIHRlc3RfcGFyc2Vfbm9uZShzZWxmKToKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKE5vbmUpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zY3JpcHRzX2V4dGVybmFsKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW5saW5lX3NjcmlwdHMpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zdHlsZXNoZWV0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmltcG9ydHMpCisKKyAgZGVmIHRlc3RfcGFyc2Vfc2NyaXB0X3NyYyhzZWxmKToKKyAgICBodG1sID0gIiIiPCFET0NUWVBFIGh0bWw+CisgICAgICAgICAgICAgIDxodG1sPgorICAgICAgICAgICAgICAgIDxoZWFkPgorICAgICAgICAgICAgICAgICAgPHNjcmlwdCBzcmM9InBvbHltZXIubWluLmpzIj48L3NjcmlwdD4KKyAgICAgICAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJmb28uanMiPjwvc2NyaXB0PgorICAgICAgICAgICAgICAgIDwvaGVhZD4KKyAgICAgICAgICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgICA8L2JvZHk+CisgICAgICAgICAgICAgIDwvaHRtbD4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwb2x5bWVyLm1pbi5qcycsICdmb28uanMnXSwgbW9kdWxlLnNjcmlwdHNfZXh0ZXJuYWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5pbmxpbmVfc2NyaXB0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLnN0eWxlc2hlZXRzKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW1wb3J0cykKKyAgICBzZWxmLmFzc2VydFRydWUobW9kdWxlLmhhc19kZWNsKQorICAgIHNlbGYuYXNzZXJ0Tm90SW4oCisgICAgICAgICdET0NUWVBFIGh0bWwnLAorICAgICAgICBtb2R1bGUuaHRtbF9jb250ZW50c193aXRob3V0X2xpbmtzX2FuZF9zY3JpcHQpCisKKyAgZGVmIHRlc3RfcGFyc2VfbGlua19yZWxfaW1wb3J0KHNlbGYpOgorICAgIGh0bWwgPSAiIiI8IURPQ1RZUEUgaHRtbD4KKyAgICAgICAgICAgICAgPGh0bWw+CisgICAgICAgICAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICAgICAgICA8bGluayByZWw9ImltcG9ydCIgaHJlZj0ieC1mb28uaHRtbCI+CisgICAgICAgICAgICAgICAgPC9oZWFkPgorICAgICAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgIDwvYm9keT4KKyAgICAgICAgICAgICAgPC9odG1sPiIiIgorICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKyAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLnNjcmlwdHNfZXh0ZXJuYWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5pbmxpbmVfc2NyaXB0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLnN0eWxlc2hlZXRzKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsneC1mb28uaHRtbCddLCBtb2R1bGUuaW1wb3J0cykKKyAgICBzZWxmLmFzc2VydFRydWUobW9kdWxlLmhhc19kZWNsKQorCisgIGRlZiB0ZXN0X3BhcnNlX3NjcmlwdF9pbmxpbmUoc2VsZik6CisgICAgaHRtbCA9ICIiIjxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idGstZWxlbWVudC1wcm90byI+CisgICAgICAgICAgICAgICAgPHRlbXBsYXRlPgorICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CisgICAgICAgICAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgICAgICAgIHR2Y20ucmVxdWlyZSgiZm9vIik7CisgICAgICAgICAgICAgICAgICB0dmNtLnJlcXVpcmUoJ2JhcicpOworICAgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgICA8L3BvbHltZXItZWxlbWVudD4iIiIKKworICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKyAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLnNjcmlwdHNfZXh0ZXJuYWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKG1vZHVsZS5pbmxpbmVfc2NyaXB0cykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zdHlsZXNoZWV0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmltcG9ydHMpCisgICAgc2VsZi5hc3NlcnRGYWxzZShtb2R1bGUuaGFzX2RlY2wpCisKKyAgICBzY3JpcHQwID0gbW9kdWxlLmlubGluZV9zY3JpcHRzWzBdCisgICAgdmFsID0gcmUuc3ViKHInXHMrJywgJycsIHNjcmlwdDAuY29udGVudHMpCisgICAgaW5uZXJfc2NyaXB0ID0gIiIidHZjbS5yZXF1aXJlKCJmb28iKTt0dmNtLnJlcXVpcmUoJ2JhcicpOyIiIgorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGlubmVyX3NjcmlwdCwgdmFsKQorCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHNjcmlwdDAub3Blbl90YWdzKSkKKyAgICBzZWxmLmFzc2VydEVxdWFscygncG9seW1lci1lbGVtZW50Jywgc2NyaXB0MC5vcGVuX3RhZ3NbMF0udGFnKQorCisgICAgc2VsZi5hc3NlcnROb3RJbigKKyAgICAgICAgJ3R2Y20ucmVxdWlyZSgiZm9vIik7JywKKyAgICAgICAgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KQorCisgIGRlZiB0ZXN0X3BhcnNlX3NjcmlwdF9zcmNfc3JpcHBpbmcoc2VsZik6CisgICAgaHRtbCA9ICIiIgorPHNjcmlwdCBzcmM9ImJsYWguanMiPjwvc2NyaXB0PgorIiIiCisgICAgbW9kdWxlID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKS5QYXJzZShodG1sKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCcnLCBtb2R1bGUuaHRtbF9jb250ZW50c193aXRob3V0X2xpbmtzX2FuZF9zY3JpcHQpCisKKyAgZGVmIHRlc3RfcGFyc2VfbGlua19yZWxfc3R5bGVzaGVldChzZWxmKToKKyAgICBodG1sID0gIiIiPHBvbHltZXItZWxlbWVudCBuYW1lPSJoaSI+CisgICAgICAgICAgICAgICAgPHRlbXBsYXRlPgorICAgICAgICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJmcmFtZXdvcmtzdHlsZXMuY3NzIj4KKyAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgorICAgICAgICAgICAgICA8L3BvbHltZXItZWxlbWVudD4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIG1vZHVsZS5zY3JpcHRzX2V4dGVybmFsKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBtb2R1bGUuaW5saW5lX3NjcmlwdHMpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydmcmFtZXdvcmtzdHlsZXMuY3NzJ10sIG1vZHVsZS5zdHlsZXNoZWV0cykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgbW9kdWxlLmltcG9ydHMpCisgICAgc2VsZi5hc3NlcnRGYWxzZShtb2R1bGUuaGFzX2RlY2wpCisKKyAgICBjbGFzcyBDdGwoaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIuSFRNTEdlbmVyYXRpb25Db250cm9sbGVyKToKKyAgICAgIGRlZiBHZXRIVE1MRm9yU3R5bGVzaGVldEhSZWYoc2VsZiwgaHJlZik6CisgICAgICAgIGlmIGhyZWYgPT0gJ2ZyYW1ld29ya3N0eWxlcy5jc3MnOgorICAgICAgICAgIHJldHVybiAnPHN0eWxlPkZSQU1FV09SSzwvc3R5bGU+JworICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZ2VuX2h0bWwgPSBtb2R1bGUuR2VuZXJhdGVIVE1MKEN0bCgpKQorICAgIGdodG0gPSAiIiI8cG9seW1lci1lbGVtZW50IG5hbWU9ImhpIj4KKzx0ZW1wbGF0ZT4KKzxzdHlsZT5GUkFNRVdPUks8L3N0eWxlPgorPC90ZW1wbGF0ZT4KKzwvcG9seW1lci1lbGVtZW50PiIiIgorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGdodG0sIGdlbl9odG1sKQorCisgIGRlZiB0ZXN0X3BhcnNlX2lubGluZV9zdHlsZShzZWxmKToKKyAgICBodG1sID0gIiIiPHN0eWxlPgorICBoZWxsbworPC9zdHlsZT4iIiIKKyAgICBtb2R1bGUgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpLlBhcnNlKGh0bWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoaHRtbCwgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KQorCisgICAgY2xhc3MgQ3RsKGh0bWxfZ2VuZXJhdGlvbl9jb250cm9sbGVyLkhUTUxHZW5lcmF0aW9uQ29udHJvbGxlcik6CisgICAgICBkZWYgR2V0SFRNTEZvcklubGluZVN0eWxlc2hlZXQoc2VsZiwgY29udGVudHMpOgorICAgICAgICBpZiBjb250ZW50cyA9PSAnXG4gIGhlbGxvXG4nOgorICAgICAgICAgIHJldHVybiAnXG4gIEhFTExPXG4nCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBnZW5faHRtbCA9IG1vZHVsZS5HZW5lcmF0ZUhUTUwoQ3RsKCkpCisgICAgZ2h0bSA9ICIiIjxzdHlsZT4KKyAgSEVMTE8KKzwvc3R5bGU+IiIiCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoZ2h0bSwgZ2VuX2h0bWwpCisKKyAgZGVmIHRlc3RfcGFyc2Vfc3R5bGVfaW1wb3J0KHNlbGYpOgorICAgIGh0bWwgPSAiIiI8cG9seW1lci1lbGVtZW50IG5hbWU9IngtYmxpbmsiPgorICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KKyAgICAgICAgICAgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICAgICAgICAgQGltcG9ydCB1cmwoYXdlc29tZS5jc3MpOworICAgICAgICAgICAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgorICAgICAgICAgICAgICA8L3BvbHltZXItZWxlbWVudD4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgc2VsZi5hc3NlcnRSYWlzZXMobGFtYmRhOiBwYXJzZXIuUGFyc2UoaHRtbCkpCisKKyAgZGVmIHRlc3RfaHRtbF9jb250ZW50c19iYXNpYyhzZWxmKToKKyAgICBodG1sID0gIiIiPGEgYj0iYyI+ZDwvYT4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoaHRtbCwgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KQorCisgIGRlZiB0ZXN0X2h0bWxfY29udGVudHNfd2l0aF9lbnRpdHkoc2VsZik6CisgICAgaHRtbCA9ICIiIjxhPiZyYXJyOzwvYT4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoaHRtbCwgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KQorCisgIGRlZiB0ZXN0X2h0bWxfY29udGVudF93aXRoX2NoYXJyZWYoc2VsZik6CisgICAgaHRtbCA9ICIiIjxhPiYjNjI7PC9hPiIiIgorICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKyAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhodG1sLCBtb2R1bGUuaHRtbF9jb250ZW50c193aXRob3V0X2xpbmtzX2FuZF9zY3JpcHQpCisKKyAgZGVmIHRlc3RfaHRtbF9jb250ZW50X3N0YXJ0X2VuZF9icihzZWxmKToKKyAgICBodG1sID0gIiIiPGE+PGJyIC8+PC9hPiIiIgorICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKyAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhodG1sLCBtb2R1bGUuaHRtbF9jb250ZW50c193aXRob3V0X2xpbmtzX2FuZF9zY3JpcHQpCisKKyAgZGVmIHRlc3RfaHRtbF9jb250ZW50X3N0YXJ0X2VuZF9pbWcoc2VsZik6CisgICAgaHRtbCA9ICIiIjxhPjxpbWcgc3JjPSJmb28ucG5nIiBpZD0iYmFyIiAvPjwvYT4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoaHRtbCwgbW9kdWxlLmh0bWxfY29udGVudHNfd2l0aG91dF9saW5rc19hbmRfc2NyaXB0KQorCisgIGRlZiB0ZXN0X2h0bWxfY29udGVudHNfd2l0aF9saW5rX3N0cmlwcGluZyhzZWxmKToKKyAgICBodG1sID0gIiIiPGEgYj0iYyI+ZDwvYT4KKyAgICAgICAgICAgICAgPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9IngtZm9vLmh0bWwiPiIiIgorICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKyAgICBtb2R1bGUgPSBwYXJzZXIuUGFyc2UoaHRtbCkKKyAgICBzZWxmLmFzc2VydEVxdWFscygiIiI8YSBiPSJjIj5kPC9hPiIiIiwKKyAgICAgICAgICAgICAgICAgICAgICBtb2R1bGUuaHRtbF9jb250ZW50c193aXRob3V0X2xpbmtzX2FuZF9zY3JpcHQuc3RyaXAoKSkKKworICBkZWYgdGVzdF9odG1sX2NvbnRlbnRzX3dpdGhfc3R5bGVfbGlua19zdHJpcHBpbmcoc2VsZik6CisgICAgaHRtbCA9ICIiIjxhIGI9ImMiPmQ8L2E+CisgICAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZnJhbWV3b3Jrc3R5bGVzLmNzcyI+IiIiCisgICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQorICAgIG1vZHVsZSA9IHBhcnNlci5QYXJzZShodG1sKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCIiIjxhIGI9ImMiPmQ8L2E+IiIiLAorICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZS5odG1sX2NvbnRlbnRzX3dpdGhvdXRfbGlua3NfYW5kX3NjcmlwdC5zdHJpcCgpKQorCisgIGRlZiB0ZXN0X2JyX2RvZXNfbm90X3JhaXNlKHNlbGYpOgorICAgIGh0bWwgPSAiIiI8ZGl2Pjxici8+PC9kaXY+IiIiCisgICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQorICAgIHBhcnNlci5QYXJzZShodG1sKQorCisgIGRlZiB0ZXN0X3BfZG9lc19ub3RfcmFpc2VzKHNlbGYpOgorICAgIGh0bWwgPSAiIiI8ZGl2PjwvcD48L2Rpdj4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgcGFyc2VyLlBhcnNlKGh0bWwpCisKKyAgZGVmIHRlc3RfbGlua19lbmRsaW5rX2RvZXNfbm90X3JhaXNlKHNlbGYpOgorICAgIGh0bWwgPSAiIiI8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImZvby5jc3MiPjwvbGluaz4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgcGFyc2VyLlBhcnNlKGh0bWwpCisKKyAgZGVmIHRlc3RfbGlua19zY3JpcHRfZG9lc19ub3RfcmFpc2Uoc2VsZik6CisgICAgaHRtbCA9ICIiIjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZm9vLmNzcyI+CisgICAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgIDwvc2NyaXB0PiIiIgorICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKyAgICBwYXJzZXIuUGFyc2UoaHRtbCkKKworICBkZWYgdGVzdF9zY3JpcHRfd2l0aF9zY3JpcHRfaW5zaWRlX2FzX2pzKHNlbGYpOgorICAgIGh0bWwgPSAiIiI8c2NyaXB0PgorICAgICAgICAgICAgICB2YXIgaHRtbF9saW5lcyA9IFsKKyAgICAgICAgICAgICAgICAnPHNjcmlwdD4nLAorICAgICAgICAgICAgICAgICc8XC9zY3JpcHQ+JywKKyAgICAgICAgICAgICAgXTsKKyAgICAgICAgICAgICAgPC9zY3JpcHQ+IiIiCisgICAgcGFyc2VyID0gcGFyc2VfaHRtbF9kZXBzLkhUTUxNb2R1bGVQYXJzZXIoKQorICAgIHBhcnNlci5QYXJzZShodG1sKQorCisgIGRlZiB0ZXN0X2ludmFsaWRfc2NyaXB0X2VzY2FwaW5nX3JhaXNlcyhzZWxmKToKKyAgICBodG1sID0gIiIiPHNjcmlwdD4KKyAgICAgICAgICAgICAgdmFyIGh0bWxfbGluZXMgPSBbCisgICAgICAgICAgICAgICAgJzxzY3JpcHQ+JywKKyAgICAgICAgICAgICAgICAnPCAvc2NyaXB0PicsCisgICAgICAgICAgICAgIF07CisgICAgICAgICAgICAgIDwvc2NyaXB0PiIiIgorICAgIHBhcnNlciA9IHBhcnNlX2h0bWxfZGVwcy5IVE1MTW9kdWxlUGFyc2VyKCkKKworICAgIGRlZiBEb0l0KCk6CisgICAgICBwYXJzZXIuUGFyc2UoaHRtbCkKKyAgICBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24sIERvSXQpCisKKyAgZGVmIHRlc3Rfc2NyaXB0X3dpdGhfY2RhdGEoc2VsZik6CisgICAgaHRtbCA9ICIiIjxzY3JpcHQ+PC9oMj48L3NjcmlwdD4iIiIKKyAgICBwYXJzZXIgPSBwYXJzZV9odG1sX2RlcHMuSFRNTE1vZHVsZVBhcnNlcigpCisgICAgbW9kdWxlID0gcGFyc2VyLlBhcnNlKGh0bWwpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKG1vZHVsZS5pbmxpbmVfc2NyaXB0cykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoJzwvaDI+JywgbW9kdWxlLmlubGluZV9zY3JpcHRzWzBdLmNvbnRlbnRzKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Byb2plY3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcHJvamVjdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Zjg3MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Byb2plY3QucHkKQEAgLTAsMCArMSwyMzEgQEAKKyMgQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQgb3MKK2ltcG9ydCBjU3RyaW5nSU8KKworZnJvbSB0dmNtIGltcG9ydCByZXNvdXJjZV9sb2FkZXIKKworCitkZWYgX0ZpbmRBbGxGaWxlc1JlY3Vyc2l2ZShzb3VyY2VfcGF0aHMpOgorICBhbGxfZmlsZW5hbWVzID0gc2V0KCkKKyAgZm9yIHNvdXJjZV9wYXRoIGluIHNvdXJjZV9wYXRoczoKKyAgICBmb3IgZGlycGF0aCwgXywgZmlsZW5hbWVzIGluIG9zLndhbGsoc291cmNlX3BhdGgpOgorICAgICAgZm9yIGYgaW4gZmlsZW5hbWVzOgorICAgICAgICBpZiBmLnN0YXJ0c3dpdGgoJy4nKToKKyAgICAgICAgICBjb250aW51ZQorICAgICAgICB4ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihkaXJwYXRoLCBmKSkKKyAgICAgICAgYWxsX2ZpbGVuYW1lcy5hZGQoeCkKKyAgcmV0dXJuIGFsbF9maWxlbmFtZXMKKworCisKK2NsYXNzIEFic0ZpbGVuYW1lTGlzdChvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCB3aWxsRGlydHlDYWxsYmFjayk6CisgICAgc2VsZi5fd2lsbERpcnR5Q2FsbGJhY2sgPSB3aWxsRGlydHlDYWxsYmFjaworICAgIHNlbGYuX2ZpbGVuYW1lcyA9IFtdCisgICAgc2VsZi5fZmlsZW5hbWVzX3NldCA9IHNldCgpCisKKyAgZGVmIF9XaWxsQmVjb21lRGlydHkoc2VsZik6CisgICAgaWYgc2VsZi5fd2lsbERpcnR5Q2FsbGJhY2s6CisgICAgICBzZWxmLl93aWxsRGlydHlDYWxsYmFjaygpCisKKyAgZGVmIGFwcGVuZChzZWxmLCBmaWxlbmFtZSk6CisgICAgYXNzZXJ0IG9zLnBhdGguaXNhYnMoZmlsZW5hbWUpCisgICAgc2VsZi5fV2lsbEJlY29tZURpcnR5KCkKKyAgICBzZWxmLl9maWxlbmFtZXMuYXBwZW5kKGZpbGVuYW1lKQorICAgIHNlbGYuX2ZpbGVuYW1lc19zZXQuYWRkKGZpbGVuYW1lKQorCisgIGRlZiBleHRlbmQoc2VsZiwgaXRlcmFibGUpOgorICAgIHNlbGYuX1dpbGxCZWNvbWVEaXJ0eSgpCisgICAgZm9yIGZpbGVuYW1lIGluIGl0ZXJhYmxlOgorICAgICAgYXNzZXJ0IG9zLnBhdGguaXNhYnMoZmlsZW5hbWUpCisgICAgICBzZWxmLl9maWxlbmFtZXMuYXBwZW5kKGZpbGVuYW1lKQorICAgICAgc2VsZi5fZmlsZW5hbWVzX3NldC5hZGQoZmlsZW5hbWUpCisKKyAgZGVmIGFwcGVuZFJlbChzZWxmLCBiYXNlZGlyLCBmaWxlbmFtZSk6CisgICAgYXNzZXJ0IG9zLnBhdGguaXNhYnMoYmFzZWRpcikKKyAgICBzZWxmLl9XaWxsQmVjb21lRGlydHkoKQorICAgIG4gPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGJhc2VkaXIsIGZpbGVuYW1lKSkKKyAgICBzZWxmLl9maWxlbmFtZXMuYXBwZW5kKG4pCisgICAgc2VsZi5fZmlsZW5hbWVzX3NldC5hZGQobikKKworICBkZWYgZXh0ZW5kUmVsKHNlbGYsIGJhc2VkaXIsIGl0ZXJhYmxlKToKKyAgICBzZWxmLl9XaWxsQmVjb21lRGlydHkoKQorICAgIGFzc2VydCBvcy5wYXRoLmlzYWJzKGJhc2VkaXIpCisgICAgZm9yIGZpbGVuYW1lIGluIGl0ZXJhYmxlOgorICAgICAgbiA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oYmFzZWRpciwgZmlsZW5hbWUpKQorICAgICAgc2VsZi5fZmlsZW5hbWVzLmFwcGVuZChuKQorICAgICAgc2VsZi5fZmlsZW5hbWVzX3NldC5hZGQobikKKworICBkZWYgX19jb250YWluc19fKHNlbGYsIHgpOgorICAgIHJldHVybiB4IGluIHNlbGYuX2ZpbGVuYW1lc19zZXQKKworICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICByZXR1cm4gc2VsZi5fZmlsZW5hbWVzLl9fbGVuX18oKQorCisgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICByZXR1cm4gaXRlcihzZWxmLl9maWxlbmFtZXMpCisKKyAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgIHJldHVybiByZXByKHNlbGYuX2ZpbGVuYW1lcykKKworICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICByZXR1cm4gc3RyKHNlbGYuX2ZpbGVuYW1lcykKKworCitjbGFzcyBQcm9qZWN0KG9iamVjdCk6CisKKyAgdHZjbV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbigKKyAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicpKQorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2VfcGF0aHM9Tm9uZSk6CisgICAgIiIiCisgICAgc291cmNlX3BhdGhzOiBBIGxpc3Qgb2YgdG9wLWxldmVsIGRpcmVjdG9yaWVzIGluIHdoaWNoIG1vZHVsZXMgYW5kIHJhdworICAgICAgICBzY3JpcHRzIGNhbiBiZSBmb3VuZC4gTW9kdWxlIHBhdGhzIGFyZSByZWxhdGl2ZSB0byB0aGVzZSBkaXJlY3Rvcmllcy4KKyAgICAiIiIKKyAgICBzZWxmLl9sb2FkZXIgPSBOb25lCisgICAgc2VsZi5fZnJvemVuID0gRmFsc2UKKyAgICBzZWxmLnNvdXJjZV9wYXRocyA9IEFic0ZpbGVuYW1lTGlzdChzZWxmLl9XaWxsUGFydE9mUGF0aENoYW5nZSkKKworICAgIGlmIHNvdXJjZV9wYXRocyBpcyBub3QgTm9uZToKKyAgICAgIHNlbGYuc291cmNlX3BhdGhzLmV4dGVuZChzb3VyY2VfcGF0aHMpCisKKyAgZGVmIEZyZWV6ZShzZWxmKToKKyAgICBzZWxmLl9mcm96ZW4gPSBUcnVlCisKKyAgZGVmIF9XaWxsUGFydE9mUGF0aENoYW5nZShzZWxmKToKKyAgICBpZiBzZWxmLl9mcm96ZW46CisgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBwcm9qZWN0IGlzIGZyb3plbi4gWW91IGNhbm5vdCBlZGl0IGl0IG5vdycpCisgICAgc2VsZi5fbG9hZGVyID0gTm9uZQorCisgIEBzdGF0aWNtZXRob2QKKyAgZGVmIEZyb21EaWN0KGQpOgorICAgIHJldHVybiBQcm9qZWN0KGRbJ3NvdXJjZV9wYXRocyddKQorCisgIGRlZiBBc0RpY3Qoc2VsZik6CisgICAgcmV0dXJuIHsKKyAgICAgICAgJ3NvdXJjZV9wYXRocyc6IGxpc3Qoc2VsZi5zb3VyY2VfcGF0aHMpCisgICAgfQorCisgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICByZXR1cm4gIlByb2plY3QoJXMpIiAlIHJlcHIoc2VsZi5zb3VyY2VfcGF0aHMpCisKKyAgZGVmIEFkZFNvdXJjZVBhdGgoc2VsZiwgcGF0aCk6CisgICAgc2VsZi5zb3VyY2VfcGF0aHMuYXBwZW5kKHBhdGgpCisKKyAgQHByb3BlcnR5CisgIGRlZiBsb2FkZXIoc2VsZik6CisgICAgaWYgc2VsZi5fbG9hZGVyIGlzIE5vbmU6CisgICAgICBzZWxmLl9sb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIoc2VsZikKKyAgICByZXR1cm4gc2VsZi5fbG9hZGVyCisKKyAgZGVmIFJlc2V0TG9hZGVyKHNlbGYpOgorICAgIHNlbGYuX2xvYWRlciA9IE5vbmUKKworICBkZWYgX0xvYWQoc2VsZiwgZmlsZW5hbWVzKToKKyAgICByZXR1cm4gW3NlbGYubG9hZGVyLkxvYWRNb2R1bGUobW9kdWxlX2ZpbGVuYW1lPWZpbGVuYW1lKSBmb3IKKyAgICAgICAgICAgIGZpbGVuYW1lIGluIGZpbGVuYW1lc10KKworICBkZWYgQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZU5hbWVzKHNlbGYsIG1vZHVsZV9uYW1lcyk6CisgICAgbW9kdWxlcyA9IFtzZWxmLmxvYWRlci5Mb2FkTW9kdWxlKG1vZHVsZV9uYW1lPW5hbWUpIGZvcgorICAgICAgICAgICAgICAgbmFtZSBpbiBtb2R1bGVfbmFtZXNdCisgICAgcmV0dXJuIHNlbGYuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZXMobW9kdWxlcykKKworICBkZWYgQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZXMoc2VsZiwgbW9kdWxlcyk6CisgICAgYWxyZWFkeV9sb2FkZWRfc2V0ID0gc2V0KCkKKyAgICBsb2FkX3NlcXVlbmNlID0gW10KKyAgICBmb3IgbSBpbiBtb2R1bGVzOgorICAgICAgbS5Db21wdXRlTG9hZFNlcXVlbmNlUmVjdXJzaXZlKGxvYWRfc2VxdWVuY2UsIGFscmVhZHlfbG9hZGVkX3NldCkKKyAgICByZXR1cm4gbG9hZF9zZXF1ZW5jZQorCisgIGRlZiBHZXREZXBzR3JhcGhGcm9tTW9kdWxlTmFtZXMoc2VsZiwgbW9kdWxlX25hbWVzKToKKyAgICBtb2R1bGVzID0gW3NlbGYubG9hZGVyLkxvYWRNb2R1bGUobW9kdWxlX25hbWU9bmFtZSkgZm9yCisgICAgICAgICAgICAgICBuYW1lIGluIG1vZHVsZV9uYW1lc10KKyAgICByZXR1cm4gc2VsZi5HZXREZXBzR3JhcGhGcm9tTW9kdWxlcyhtb2R1bGVzKQorCisgIGRlZiBHZXREZXBzR3JhcGhGcm9tTW9kdWxlcyhzZWxmLCBtb2R1bGVzKToKKyAgICBsb2FkX3NlcXVlbmNlID0gc2VsZi5DYWxjTG9hZFNlcXVlbmNlRm9yTW9kdWxlcyhtb2R1bGVzKQorICAgIGcgPSBfR3JhcGgoKQorICAgIGZvciBtIGluIGxvYWRfc2VxdWVuY2U6CisgICAgICBnLkFkZE1vZHVsZShtKQorCisgICAgICBmb3IgZGVwIGluIG0uZGVwZW5kZW50X21vZHVsZXM6CisgICAgICAgIGcuQWRkRWRnZShtLCBkZXAuaWQpCisKKyAgICAjIEZJWE1FOiBfR2V0R3JhcGggaXMgbm90IGRlZmluZWQuIE1heWJlIGByZXR1cm4gZ2AgaXMgaW50ZW5kZWQ/CisgICAgcmV0dXJuIF9HZXRHcmFwaChsb2FkX3NlcXVlbmNlKQorCisgIGRlZiBHZXREb21pbmF0b3JHcmFwaEZvck1vZHVsZXNOYW1lZChzZWxmLCBtb2R1bGVfbmFtZXMsIGxvYWRfc2VxdWVuY2UpOgorICAgIG1vZHVsZXMgPSBbc2VsZi5sb2FkZXIuTG9hZE1vZHVsZShtb2R1bGVfbmFtZT1uYW1lKQorICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gbW9kdWxlX25hbWVzXQorICAgIHJldHVybiBzZWxmLkdldERvbWluYXRvckdyYXBoRm9yTW9kdWxlcyhtb2R1bGVzLCBsb2FkX3NlcXVlbmNlKQorCisgIGRlZiBHZXREb21pbmF0b3JHcmFwaEZvck1vZHVsZXMoc2VsZiwgc3RhcnRfbW9kdWxlcywgbG9hZF9zZXF1ZW5jZSk6CisgICAgbW9kdWxlc19ieV9pZCA9IHt9CisgICAgZm9yIG0gaW4gbG9hZF9zZXF1ZW5jZToKKyAgICAgIG1vZHVsZXNfYnlfaWRbbS5pZF0gPSBtCisKKyAgICAjIE1vZHVsZSByZWZlcnJlcnMgZ29lcyBtb2R1bGUKKyAgICBtb2R1bGVfcmVmZXJyZXJzID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QobGlzdCkKKyAgICBmb3IgbSBpbiBsb2FkX3NlcXVlbmNlOgorICAgICAgZm9yIGRlcCBpbiBtLmRlcGVuZGVudF9tb2R1bGVzOgorICAgICAgICBtb2R1bGVfcmVmZXJyZXJzW2RlcF0uYXBwZW5kKG0pCisKKyAgICAjIE5vdyBzdGFydCBhdCB0aGUgdG9wIG1vZHVsZSBhbmQgcmV2ZXJzZS4KKyAgICB2aXNpdGVkID0gc2V0KCkKKyAgICBnID0gX0dyYXBoKCkKKworICAgIHBlbmRpbmcgPSBjb2xsZWN0aW9ucy5kZXF1ZSgpCisgICAgcGVuZGluZy5leHRlbmQoc3RhcnRfbW9kdWxlcykKKyAgICB3aGlsZSBsZW4ocGVuZGluZyk6CisgICAgICBjdXIgPSBwZW5kaW5nLnBvcCgpCisKKyAgICAgIGcuQWRkTW9kdWxlKGN1cikKKyAgICAgIHZpc2l0ZWQuYWRkKGN1cikKKworICAgICAgZm9yIG91dF9kZXAgaW4gbW9kdWxlX3JlZmVycmVyc1tjdXJdOgorICAgICAgICBpZiBvdXRfZGVwIGluIHZpc2l0ZWQ6CisgICAgICAgICAgY29udGludWUKKyAgICAgICAgZy5BZGRFZGdlKG91dF9kZXAsIGN1cikKKyAgICAgICAgdmlzaXRlZC5hZGQob3V0X2RlcCkKKyAgICAgICAgcGVuZGluZy5hcHBlbmQob3V0X2RlcCkKKworICAgICMgVmlzaXRlZCAtPiBEb3QKKyAgICByZXR1cm4gZy5HZXREb3QoKQorCisKK2NsYXNzIF9HcmFwaChvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICBzZWxmLm5vZGVzID0gW10KKyAgICBzZWxmLmVkZ2VzID0gW10KKworICBkZWYgQWRkTW9kdWxlKHNlbGYsIG0pOgorICAgIGYgPSBjU3RyaW5nSU8uU3RyaW5nSU8oKQorICAgIG0uQXBwZW5kSlNDb250ZW50c1RvRmlsZShmLCBGYWxzZSwgTm9uZSkKKworICAgIGF0dHJzID0geworICAgICAgICAibGFiZWwiOiAiJXMgKCVpKSIgJSAobS5uYW1lLCBmLnRlbGwoKSkKKyAgICB9CisKKyAgICBmLmNsb3NlKCkKKworICAgIGF0dHJfaXRlbXMgPSBbJyVzPSIlcyInICUgKHgsIHkpIGZvciB4LCB5IGluIGF0dHJzLml0ZXJpdGVtcygpXQorICAgIG5vZGUgPSAiTSVpIFslc107IiAlIChtLmlkLCAnLCcuam9pbihhdHRyX2l0ZW1zKSkKKyAgICBzZWxmLm5vZGVzLmFwcGVuZChub2RlKQorCisgIGRlZiBBZGRFZGdlKHNlbGYsIG1Gcm9tLCBtVG8pOgorICAgIGVkZ2UgPSAiTSVpIC0+IE0laTsiICUgKG1Gcm9tLmlkLCBtVG8uaWQpCisgICAgc2VsZi5lZGdlcy5hcHBlbmQoZWRnZSkKKworICBkZWYgR2V0RG90KHNlbGYpOgorICAgIHJldHVybiAiIiJkaWdyYXBoIGRlcHMgeworJXMKKworJXMKK30KKyIiIiAlICgnXG4nLmpvaW4oc2VsZi5ub2RlcyksICdcbicuam9pbihzZWxmLmVkZ2VzKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9yZXNvdXJjZS5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9yZXNvdXJjZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTNkZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3Jlc291cmNlLnB5CkBAIC0wLDAgKzEsNTcgQEAKKyMgQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworIiIiQSBSZXNvdXJjZSBpcyBhIGZpbGUgYW5kIGl0cyB2YXJpb3VzIGFzc29jaWF0ZWQgY2Fub25pY2FsIG5hbWVzLiIiIgorCitpbXBvcnQgY29kZWNzCitpbXBvcnQgb3MKKworCitjbGFzcyBSZXNvdXJjZShvYmplY3QpOgorICAiIiJSZXByZXNlbnRzIGEgZmlsZSBmb3VuZCB2aWEgYSBwYXRoIHNlYXJjaC4iIiIKKworICBkZWYgX19pbml0X18oc2VsZiwgdG9wbGV2ZWxfZGlyLCBhYnNvbHV0ZV9wYXRoLCBiaW5hcnk9RmFsc2UpOgorICAgIHNlbGYudG9wbGV2ZWxfZGlyID0gdG9wbGV2ZWxfZGlyCisgICAgc2VsZi5hYnNvbHV0ZV9wYXRoID0gYWJzb2x1dGVfcGF0aAorICAgIHNlbGYuX2NvbnRlbnRzID0gTm9uZQorICAgIHNlbGYuX2JpbmFyeSA9IGJpbmFyeQorCisgIEBwcm9wZXJ0eQorICBkZWYgcmVsYXRpdmVfcGF0aChzZWxmKToKKyAgICAiIiJUaGUgcGF0aCB0byB0aGUgZmlsZSBmcm9tIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IiIiCisgICAgcmV0dXJuIG9zLnBhdGgucmVscGF0aChzZWxmLmFic29sdXRlX3BhdGgsIHNlbGYudG9wbGV2ZWxfZGlyKQorCisgIEBwcm9wZXJ0eQorICBkZWYgdW5peF9zdHlsZV9yZWxhdGl2ZV9wYXRoKHNlbGYpOgorICAgIHJldHVybiBzZWxmLnJlbGF0aXZlX3BhdGgucmVwbGFjZShvcy5zZXAsICcvJykKKworICBAcHJvcGVydHkKKyAgZGVmIG5hbWUoc2VsZik6CisgICAgIiIiVGhlIGRvdHRlZCBuYW1lIGZvciB0aGlzIHJlc291cmNlIGJhc2VkIG9uIGl0cyByZWxhdGl2ZSBwYXRoLiIiIgorICAgIHJldHVybiBzZWxmLm5hbWVfZnJvbV9yZWxhdGl2ZV9wYXRoKHNlbGYucmVsYXRpdmVfcGF0aCkKKworICBAc3RhdGljbWV0aG9kCisgIGRlZiBuYW1lX2Zyb21fcmVsYXRpdmVfcGF0aChyZWxhdGl2ZV9wYXRoKToKKyAgICBkaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKHJlbGF0aXZlX3BhdGgpCisgICAgYmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHJlbGF0aXZlX3BhdGgpCisgICAgbW9kbmFtZSA9IG9zLnBhdGguc3BsaXRleHQoYmFzZW5hbWUpWzBdCisgICAgaWYgbGVuKGRpcm5hbWUpOgorICAgICAgbmFtZSA9IGRpcm5hbWUucmVwbGFjZShvcy5wYXRoLnNlcCwgJy4nKSArICcuJyArIG1vZG5hbWUKKyAgICBlbHNlOgorICAgICAgbmFtZSA9IG1vZG5hbWUKKyAgICByZXR1cm4gbmFtZQorCisgIEBwcm9wZXJ0eQorICBkZWYgY29udGVudHMoc2VsZik6CisgICAgaWYgc2VsZi5fY29udGVudHM6CisgICAgICByZXR1cm4gc2VsZi5fY29udGVudHMKKyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5hYnNvbHV0ZV9wYXRoKToKKyAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgbm90IGZvdW5kLicgJSBzZWxmLmFic29sdXRlX3BhdGgpCisgICAgaWYgc2VsZi5fYmluYXJ5OgorICAgICAgZiA9IG9wZW4oc2VsZi5hYnNvbHV0ZV9wYXRoLCBtb2RlPSdyYicpCisgICAgZWxzZToKKyAgICAgIGYgPSBjb2RlY3Mub3BlbihzZWxmLmFic29sdXRlX3BhdGgsIG1vZGU9J3InLCBlbmNvZGluZz0ndXRmLTgnKQorICAgIHNlbGYuX2NvbnRlbnRzID0gZi5yZWFkKCkKKyAgICBmLmNsb3NlKCkKKyAgICByZXR1cm4gc2VsZi5fY29udGVudHMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9yZXNvdXJjZV9sb2FkZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2VfbG9hZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NWJhMTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2VfbG9hZGVyLnB5CkBAIC0wLDAgKzEsMjI1IEBACisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisiIiJSZXNvdXJjZUZpbmRlciBpcyBhIGhlbHBlciBjbGFzcyBmb3IgZmluZGluZyByZXNvdXJjZXMgZ2l2ZW4gdGhlaXIgbmFtZS4iIiIKKworaW1wb3J0IGNvZGVjcworaW1wb3J0IG9zCisKK2Zyb20gdHZjbSBpbXBvcnQgbW9kdWxlCitmcm9tIHR2Y20gaW1wb3J0IHN0eWxlX3NoZWV0IGFzIHN0eWxlX3NoZWV0X21vZHVsZQorZnJvbSB0dmNtIGltcG9ydCByZXNvdXJjZSBhcyByZXNvdXJjZV9tb2R1bGUKK2Zyb20gdHZjbSBpbXBvcnQgaHRtbF9tb2R1bGUKK2Zyb20gdHZjbSBpbXBvcnQgc3RyaXBfanNfY29tbWVudHMKKworCitjbGFzcyBSZXNvdXJjZUxvYWRlcihvYmplY3QpOgorICAiIiJNYW5nZXMgbG9hZGluZyBtb2R1bGVzIGFuZCB0aGVpciBkZXBlbmRlbmNpZXMgZnJvbSBmaWxlcy4KKworICBNb2R1bGVzIGhhbmRsZSBwYXJzaW5nIGFuZCB0aGUgY29uc3RydWN0aW9uIG9mIHRoZWlyIGluZGl2aWR1YWwgZGVwZW5kZW5jeQorICBwb2ludGVycy4gVGhlIGxvYWRlciBkZWFscyB3aXRoIGJvb2trZWVwaW5nIG9mIHdoYXQgaGFzIGJlZW4gbG9hZGVkLCBhbmQKKyAgbWFwcGluZyBuYW1lcyB0byBmaWxlIHJlc291cmNlcy4KKyAgIiIiCisgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0KToKKyAgICBzZWxmLnByb2plY3QgPSBwcm9qZWN0CisgICAgc2VsZi5zdHJpcHBlZF9qc19ieV9maWxlbmFtZSA9IHt9CisgICAgc2VsZi5sb2FkZWRfbW9kdWxlcyA9IHt9CisgICAgc2VsZi5sb2FkZWRfcmF3X3NjcmlwdHMgPSB7fQorICAgIHNlbGYubG9hZGVkX3N0eWxlX3NoZWV0cyA9IHt9CisgICAgc2VsZi5sb2FkZWRfaW1hZ2VzID0ge30KKworICBAcHJvcGVydHkKKyAgZGVmIHNvdXJjZV9wYXRocyhzZWxmKToKKyAgICAiIiJBIGxpc3Qgb2YgYmFzZSBkaXJlY3RvcmllcyB0byBzZWFyY2ggZm9yIG1vZHVsZXMgdW5kZXIuIiIiCisgICAgcmV0dXJuIHNlbGYucHJvamVjdC5zb3VyY2VfcGF0aHMKKworICBkZWYgRmluZFJlc291cmNlKHNlbGYsIHNvbWVfcGF0aCwgYmluYXJ5PUZhbHNlKToKKyAgICAiIiJGaW5kcyBhIFJlc291cmNlIGZvciB0aGUgZ2l2ZW4gcGF0aC4KKworICAgIEFyZ3M6CisgICAgICBzb21lX3BhdGg6IEEgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aCB0byBhIGZpbGUuCisKKyAgICBSZXR1cm5zOgorICAgICAgQSBSZXNvdXJjZSBvciBOb25lLgorICAgICIiIgorICAgIGlmIG9zLnBhdGguaXNhYnMoc29tZV9wYXRoKToKKyAgICAgIHJldHVybiBzZWxmLkZpbmRSZXNvdXJjZUdpdmVuQWJzb2x1dGVQYXRoKHNvbWVfcGF0aCwgYmluYXJ5KQorICAgIGVsc2U6CisgICAgICByZXR1cm4gc2VsZi5GaW5kUmVzb3VyY2VHaXZlblJlbGF0aXZlUGF0aChzb21lX3BhdGgsIGJpbmFyeSkKKworICBkZWYgRmluZFJlc291cmNlR2l2ZW5BYnNvbHV0ZVBhdGgoc2VsZiwgYWJzb2x1dGVfcGF0aCwgYmluYXJ5PUZhbHNlKToKKyAgICAiIiJSZXR1cm5zIGEgUmVzb3VyY2UgZm9yIHRoZSBnaXZlbiBhYnNvbHV0ZSBwYXRoLiIiIgorICAgIGNhbmRpZGF0ZV9wYXRocyA9IFtdCisgICAgZm9yIHNvdXJjZV9wYXRoIGluIHNlbGYuc291cmNlX3BhdGhzOgorICAgICAgaWYgYWJzb2x1dGVfcGF0aC5zdGFydHN3aXRoKHNvdXJjZV9wYXRoKToKKyAgICAgICAgY2FuZGlkYXRlX3BhdGhzLmFwcGVuZChzb3VyY2VfcGF0aCkKKyAgICBpZiBsZW4oY2FuZGlkYXRlX3BhdGhzKSA9PSAwOgorICAgICAgcmV0dXJuIE5vbmUKKworICAgICMgU29ydCBieSBsZW5ndGguIExvbmdlc3QgbWF0Y2ggd2lucy4KKyAgICBjYW5kaWRhdGVfcGF0aHMuc29ydChsYW1iZGEgeCwgeTogbGVuKHgpIC0gbGVuKHkpKQorICAgIGxvbmdlc3RfY2FuZGlkYXRlID0gY2FuZGlkYXRlX3BhdGhzWy0xXQorICAgIHJldHVybiByZXNvdXJjZV9tb2R1bGUuUmVzb3VyY2UobG9uZ2VzdF9jYW5kaWRhdGUsIGFic29sdXRlX3BhdGgsIGJpbmFyeSkKKworICBkZWYgRmluZFJlc291cmNlR2l2ZW5SZWxhdGl2ZVBhdGgoc2VsZiwgcmVsYXRpdmVfcGF0aCwgYmluYXJ5PUZhbHNlKToKKyAgICAiIiJSZXR1cm5zIGEgUmVzb3VyY2UgZm9yIHRoZSBnaXZlbiByZWxhdGl2ZSBwYXRoLiIiIgorICAgIGFic29sdXRlX3BhdGggPSBOb25lCisgICAgZm9yIHNjcmlwdF9wYXRoIGluIHNlbGYuc291cmNlX3BhdGhzOgorICAgICAgYWJzb2x1dGVfcGF0aCA9IG9zLnBhdGguam9pbihzY3JpcHRfcGF0aCwgcmVsYXRpdmVfcGF0aCkKKyAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGFic29sdXRlX3BhdGgpOgorICAgICAgICByZXR1cm4gcmVzb3VyY2VfbW9kdWxlLlJlc291cmNlKHNjcmlwdF9wYXRoLCBhYnNvbHV0ZV9wYXRoLCBiaW5hcnkpCisgICAgcmV0dXJuIE5vbmUKKworICBkZWYgX0ZpbmRSZXNvdXJjZUdpdmVuTmFtZUFuZFN1ZmZpeCgKKyAgICAgIHNlbGYsIHJlcXVlc3RlZF9uYW1lLCBleHRlbnNpb24sIHJldHVybl9yZXNvdXJjZT1GYWxzZSk6CisgICAgIiIiU2VhcmNoZXMgZm9yIGEgZmlsZSBhbmQgcmVhZHMgaXRzIGNvbnRlbnRzLgorCisgICAgQXJnczoKKyAgICAgIHJlcXVlc3RlZF9uYW1lOiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgdGhhdCB3YXMgcmVxdWVzdGVkLgorICAgICAgZXh0ZW5zaW9uOiBUaGUgZXh0ZW5zaW9uIGZvciB0aGlzIHJlcXVlc3RlZCByZXNvdXJjZS4KKworICAgIFJldHVybnM6CisgICAgICBBIChwYXRoLCBjb250ZW50cykgcGFpci4KKyAgICAiIiIKKyAgICBwYXRoeV9uYW1lID0gcmVxdWVzdGVkX25hbWUucmVwbGFjZSgnLicsIG9zLnNlcCkKKyAgICBmaWxlbmFtZSA9IHBhdGh5X25hbWUgKyBleHRlbnNpb24KKworICAgIHJlc291cmNlID0gc2VsZi5GaW5kUmVzb3VyY2VHaXZlblJlbGF0aXZlUGF0aChmaWxlbmFtZSkKKyAgICBpZiByZXR1cm5fcmVzb3VyY2U6CisgICAgICByZXR1cm4gcmVzb3VyY2UKKyAgICBpZiBub3QgcmVzb3VyY2U6CisgICAgICByZXR1cm4gTm9uZSwgTm9uZQorICAgIHJldHVybiBfcmVhZF9maWxlKHJlc291cmNlLmFic29sdXRlX3BhdGgpCisKKyAgZGVmIEZpbmRNb2R1bGVSZXNvdXJjZShzZWxmLCByZXF1ZXN0ZWRfbW9kdWxlX25hbWUpOgorICAgICIiIkZpbmRzIGEgbW9kdWxlIGphdmFzY3JpcHQgZmlsZSBhbmQgcmV0dXJucyBhIFJlc291cmNlLCBvciBub25lLiIiIgorICAgIGpzX3Jlc291cmNlID0gc2VsZi5fRmluZFJlc291cmNlR2l2ZW5OYW1lQW5kU3VmZml4KAorICAgICAgICByZXF1ZXN0ZWRfbW9kdWxlX25hbWUsICcuanMnLCByZXR1cm5fcmVzb3VyY2U9VHJ1ZSkKKyAgICBodG1sX3Jlc291cmNlID0gc2VsZi5fRmluZFJlc291cmNlR2l2ZW5OYW1lQW5kU3VmZml4KAorICAgICAgICByZXF1ZXN0ZWRfbW9kdWxlX25hbWUsICcuaHRtbCcsIHJldHVybl9yZXNvdXJjZT1UcnVlKQorICAgIGlmIGpzX3Jlc291cmNlIGFuZCBodG1sX3Jlc291cmNlOgorICAgICAgaWYgaHRtbF9tb2R1bGUuSXNIVE1MUmVzb3VyY2VUaGVNb2R1bGVHaXZlbkNvbmZsaWN0aW5nUmVzb3VyY2VOYW1lcygKKyAgICAgICAgICBqc19yZXNvdXJjZSwgaHRtbF9yZXNvdXJjZSk6CisgICAgICAgIHJldHVybiBodG1sX3Jlc291cmNlCisgICAgICByZXR1cm4ganNfcmVzb3VyY2UKKyAgICBlbGlmIGpzX3Jlc291cmNlOgorICAgICAgcmV0dXJuIGpzX3Jlc291cmNlCisgICAgcmV0dXJuIGh0bWxfcmVzb3VyY2UKKworICBkZWYgTG9hZE1vZHVsZShzZWxmLCBtb2R1bGVfbmFtZT1Ob25lLCBtb2R1bGVfZmlsZW5hbWU9Tm9uZSk6CisgICAgYXNzZXJ0IGJvb2wobW9kdWxlX25hbWUpIF4gYm9vbChtb2R1bGVfZmlsZW5hbWUpLCAoCisgICAgICAgICdNdXN0IHByb3ZpZGUgZWl0aGVyIG1vZHVsZV9uYW1lIG9yIG1vZHVsZV9maWxlbmFtZS4nKQorICAgIGlmIG1vZHVsZV9maWxlbmFtZToKKyAgICAgIHJlc291cmNlID0gc2VsZi5GaW5kUmVzb3VyY2UobW9kdWxlX2ZpbGVuYW1lKQorICAgICAgaWYgbm90IHJlc291cmNlOgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kICVzIGluICVzJyAlICgKKyAgICAgICAgICAgIG1vZHVsZV9maWxlbmFtZSwgcmVwcihzZWxmLnNvdXJjZV9wYXRocykpKQorICAgICAgbW9kdWxlX25hbWUgPSByZXNvdXJjZS5uYW1lCisgICAgZWxzZToKKyAgICAgIHJlc291cmNlID0gTm9uZSAgIyBXaWxsIGJlIHNldCBpZiB3ZSBlbmQgdXAgbmVlZGluZyB0byBsb2FkLgorCisgICAgaWYgbW9kdWxlX25hbWUgaW4gc2VsZi5sb2FkZWRfbW9kdWxlczoKKyAgICAgIGFzc2VydCBzZWxmLmxvYWRlZF9tb2R1bGVzW21vZHVsZV9uYW1lXS5jb250ZW50cworICAgICAgcmV0dXJuIHNlbGYubG9hZGVkX21vZHVsZXNbbW9kdWxlX25hbWVdCisKKyAgICBpZiBub3QgcmVzb3VyY2U6ICAjIGhhcHBlbnMgd2hlbiBtb2R1bGVfbmFtZSB3YXMgZ2l2ZW4KKyAgICAgIHJlc291cmNlID0gc2VsZi5GaW5kTW9kdWxlUmVzb3VyY2UobW9kdWxlX25hbWUpCisgICAgICBpZiBub3QgcmVzb3VyY2U6CisgICAgICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKCdObyByZXNvdXJjZSBmb3IgbW9kdWxlICIlcyInICUgbW9kdWxlX25hbWUpCisKKyAgICBtID0gaHRtbF9tb2R1bGUuSFRNTE1vZHVsZShzZWxmLCBtb2R1bGVfbmFtZSwgcmVzb3VyY2UpCisgICAgc2VsZi5sb2FkZWRfbW9kdWxlc1ttb2R1bGVfbmFtZV0gPSBtCisKKyAgICAjIEZha2UgaXQsIHRoaXMgaXMgcHJvYmFibHkgZWl0aGVyIHBvbHltZXIubWluLmpzIG9yIHBsYXRmb3JtLmpzIHdoaWNoIGFyZQorICAgICMgYWN0dWFsbHkgLmpzIGZpbGVzLi4uLgorICAgIGlmIHJlc291cmNlLmFic29sdXRlX3BhdGguZW5kc3dpdGgoJy5qcycpOgorICAgICAgcmV0dXJuIG0KKworICAgIG0uUGFyc2UoKQorICAgIG0uTG9hZCgpCisgICAgcmV0dXJuIG0KKworICBkZWYgTG9hZFJhd1NjcmlwdChzZWxmLCByZWxhdGl2ZV9yYXdfc2NyaXB0X3BhdGgpOgorICAgIHJlc291cmNlID0gTm9uZQorICAgIGZvciBzb3VyY2VfcGF0aCBpbiBzZWxmLnNvdXJjZV9wYXRoczoKKyAgICAgIHBvc3NpYmxlX2Fic29sdXRlX3BhdGggPSBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgc291cmNlX3BhdGgsIG9zLnBhdGgubm9ybXBhdGgocmVsYXRpdmVfcmF3X3NjcmlwdF9wYXRoKSkKKyAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHBvc3NpYmxlX2Fic29sdXRlX3BhdGgpOgorICAgICAgICByZXNvdXJjZSA9IHJlc291cmNlX21vZHVsZS5SZXNvdXJjZShzb3VyY2VfcGF0aCwgcG9zc2libGVfYWJzb2x1dGVfcGF0aCkKKyAgICAgICAgYnJlYWsKKyAgICBpZiBub3QgcmVzb3VyY2U6CisgICAgICByYWlzZSBtb2R1bGUuRGVwc0V4Y2VwdGlvbigKKyAgICAgICAgICAnQ291bGQgbm90IGZpbmQgYSBmaWxlIGZvciByYXcgc2NyaXB0ICVzIGluICVzJyAlCisgICAgICAgICAgKHJlbGF0aXZlX3Jhd19zY3JpcHRfcGF0aCwgc2VsZi5zb3VyY2VfcGF0aHMpKQorICAgIGFzc2VydCByZWxhdGl2ZV9yYXdfc2NyaXB0X3BhdGggPT0gcmVzb3VyY2UudW5peF9zdHlsZV9yZWxhdGl2ZV9wYXRoLCAoCisgICAgICAgICdFeHBlY3RlZCAlcyA9PSAlcycgJSAocmVsYXRpdmVfcmF3X3NjcmlwdF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLnVuaXhfc3R5bGVfcmVsYXRpdmVfcGF0aCkpCisKKyAgICBpZiByZXNvdXJjZS5hYnNvbHV0ZV9wYXRoIGluIHNlbGYubG9hZGVkX3Jhd19zY3JpcHRzOgorICAgICAgcmV0dXJuIHNlbGYubG9hZGVkX3Jhd19zY3JpcHRzW3Jlc291cmNlLmFic29sdXRlX3BhdGhdCisKKyAgICByYXdfc2NyaXB0ID0gbW9kdWxlLlJhd1NjcmlwdChyZXNvdXJjZSkKKyAgICBzZWxmLmxvYWRlZF9yYXdfc2NyaXB0c1tyZXNvdXJjZS5hYnNvbHV0ZV9wYXRoXSA9IHJhd19zY3JpcHQKKyAgICByZXR1cm4gcmF3X3NjcmlwdAorCisgIGRlZiBMb2FkU3R5bGVTaGVldChzZWxmLCBuYW1lKToKKyAgICBpZiBuYW1lIGluIHNlbGYubG9hZGVkX3N0eWxlX3NoZWV0czoKKyAgICAgIHJldHVybiBzZWxmLmxvYWRlZF9zdHlsZV9zaGVldHNbbmFtZV0KKworICAgIHJlc291cmNlID0gc2VsZi5fRmluZFJlc291cmNlR2l2ZW5OYW1lQW5kU3VmZml4KAorICAgICAgICBuYW1lLCAnLmNzcycsIHJldHVybl9yZXNvdXJjZT1UcnVlKQorICAgIGlmIG5vdCByZXNvdXJjZToKKyAgICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKAorICAgICAgICAgICdDb3VsZCBub3QgZmluZCBhIGZpbGUgZm9yIHN0eWxlc2hlZXQgJXMnICUgbmFtZSkKKworICAgIHN0eWxlX3NoZWV0ID0gc3R5bGVfc2hlZXRfbW9kdWxlLlN0eWxlU2hlZXQoc2VsZiwgbmFtZSwgcmVzb3VyY2UpCisgICAgc3R5bGVfc2hlZXQubG9hZCgpCisgICAgc2VsZi5sb2FkZWRfc3R5bGVfc2hlZXRzW25hbWVdID0gc3R5bGVfc2hlZXQKKyAgICByZXR1cm4gc3R5bGVfc2hlZXQKKworICBkZWYgTG9hZEltYWdlKHNlbGYsIGFic19wYXRoKToKKyAgICBpZiBhYnNfcGF0aCBpbiBzZWxmLmxvYWRlZF9pbWFnZXM6CisgICAgICByZXR1cm4gc2VsZi5sb2FkZWRfaW1hZ2VzW2Fic19wYXRoXQorCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGFic19wYXRoKToKKyAgICAgIHJhaXNlIG1vZHVsZS5EZXBzRXhjZXB0aW9uKCJ1cmwoJyVzJykgZGlkIG5vdCBleGlzdCIgJSBhYnNfcGF0aCkKKworICAgIHJlcyA9IHNlbGYuRmluZFJlc291cmNlR2l2ZW5BYnNvbHV0ZVBhdGgoYWJzX3BhdGgsIGJpbmFyeT1UcnVlKQorICAgIGlmIHJlcyBpcyBOb25lOgorICAgICAgcmFpc2UgbW9kdWxlLkRlcHNFeGNlcHRpb24oInVybCgnJXMnKSB3YXMgbm90IGluIHNlYXJjaCBwYXRoIiAlIGFic19wYXRoKQorCisgICAgaW1hZ2UgPSBzdHlsZV9zaGVldF9tb2R1bGUuSW1hZ2UocmVzKQorICAgIHNlbGYubG9hZGVkX2ltYWdlc1thYnNfcGF0aF0gPSBpbWFnZQorICAgIHJldHVybiBpbWFnZQorCisgIGRlZiBHZXRTdHJpcHBlZEpTRm9yRmlsZW5hbWUoc2VsZiwgZmlsZW5hbWUsIGVhcmx5X291dF9pZl9ub190dmNtKToKKyAgICBpZiBmaWxlbmFtZSBpbiBzZWxmLnN0cmlwcGVkX2pzX2J5X2ZpbGVuYW1lOgorICAgICAgcmV0dXJuIHNlbGYuc3RyaXBwZWRfanNfYnlfZmlsZW5hbWVbZmlsZW5hbWVdCisKKyAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICdyJykgYXMgZjoKKyAgICAgIGNvbnRlbnRzID0gZi5yZWFkKDQwOTYpCisgICAgaWYgZWFybHlfb3V0X2lmX25vX3R2Y20gYW5kICgndHZjbScgbm90IGluIGNvbnRlbnRzKToKKyAgICAgIHJldHVybiBOb25lCisKKyAgICBzID0gc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKGNvbnRlbnRzKQorICAgIHNlbGYuc3RyaXBwZWRfanNfYnlfZmlsZW5hbWVbZmlsZW5hbWVdID0gcworICAgIHJldHVybiBzCisKKworZGVmIF9yZWFkX2ZpbGUoYWJzb2x1dGVfcGF0aCk6CisgICIiIlJlYWRzIGEgZmlsZSBhbmQgcmV0dXJucyBhIChwYXRoLCBjb250ZW50cykgcGFpci4KKworICBBcmdzOgorICAgIGFic29sdXRlX3BhdGg6IEFic29sdXRlIHBhdGggdG8gYSBmaWxlLgorCisgIFJhaXNlczoKKyAgICBFeGNlcHRpb246IFRoZSBnaXZlbiBmaWxlIGRvZXNuJ3QgZXhpc3QuCisgICAgSU9FcnJvcjogVGhlcmUgd2FzIGEgcHJvYmxlbSBvcGVuaW5nIG9yIHJlYWRpbmcgdGhlIGZpbGUuCisgICIiIgorICBpZiBub3Qgb3MucGF0aC5leGlzdHMoYWJzb2x1dGVfcGF0aCk6CisgICAgcmFpc2UgRXhjZXB0aW9uKCclcyBub3QgZm91bmQuJyAlIGFic29sdXRlX3BhdGgpCisgIGYgPSBjb2RlY3Mub3BlbihhYnNvbHV0ZV9wYXRoLCBtb2RlPSdyJywgZW5jb2Rpbmc9J3V0Zi04JykKKyAgY29udGVudHMgPSBmLnJlYWQoKQorICBmLmNsb3NlKCkKKyAgcmV0dXJuIGFic29sdXRlX3BhdGgsIGNvbnRlbnRzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2VfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vcmVzb3VyY2VfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2M3MDBjZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9yZXNvdXJjZV91bml0dGVzdC5weQpAQCAtMCwwICsxLDE3IEBACisjIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBvcworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gdHZjbSBpbXBvcnQgcmVzb3VyY2UKKworCitjbGFzcyBSZXNvdXJjZVVuaXR0ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICBkZWYgdGVzdEJhc2ljKHNlbGYpOgorICAgIHIgPSByZXNvdXJjZS5SZXNvdXJjZSgnL2EnLCAnL2EvYi9jLmpzJykKKyAgICBzZWxmLmFzc2VydEVxdWFscygnYi5jJywgci5uYW1lKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9zLnBhdGguam9pbignYicsICdjLmpzJyksIHIucmVsYXRpdmVfcGF0aCkKKyAgICBzZWxmLmFzc2VydEVxdWFscygnYi9jLmpzJywgci51bml4X3N0eWxlX3JlbGF0aXZlX3BhdGgpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3RyaXBfanNfY29tbWVudHMucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3RyaXBfanNfY29tbWVudHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMxM2U5NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9zdHJpcF9qc19jb21tZW50cy5weQpAQCAtMCwwICsxLDgxIEBACisjIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyIiIlV0aWxpdHkgZnVuY3Rpb24gZm9yIHN0cmlwcGluZyBjb21tZW50cyBvdXQgb2YgSmF2YVNjcmlwdCBzb3VyY2UgY29kZS4iIiIKKworaW1wb3J0IHJlCisKKworZGVmIF9Ub2tlbml6ZUpTKHRleHQpOgorICAiIiJTcGxpdHMgc291cmNlIGNvZGUgdGV4dCBpbnRvIHNlZ21lbnRzIGluIHByZXBhcmF0aW9uIGZvciBjb21tZW50IHN0cmlwcGluZy4KKworICBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IHRva2VuaXplIGZvciBwYXJzaW5nLiBUaGVyZSBpcyBubyBub3Rpb24gb2Ygc3RhdGVtZW50cywKKyAgdmFyaWFibGVzLCBldGMuIFRoZSBvbmx5IHRva2VucyBvZiBpbnRlcmVzdCBhcmUgY29tbWVudC1yZWxhdGVkIHRva2Vucy4KKworICBBcmdzOgorICAgIHRleHQ6IFRoZSBjb250ZW50cyBvZiBhIEphdmFTY3JpcHQgZmlsZS4KKworICBZaWVsZHM6CisgICAgQSBzdWNjZXNzaW9uIG9mIHN0cmluZ3MgaW4gdGhlIGZpbGUsIGluY2x1ZGluZyBhbGwgY29tbWVudC1yZWxhdGVkIHN5bWJvbHMuCisgICIiIgorICByZXN0ID0gdGV4dAorICB0b2tlbnMgPSBbIi8vIiwgIi8qIiwgIiovIiwgIlxuIl0KKyAgbmV4dF90b2sgPSByZS5jb21waWxlKCd8Jy5qb2luKFtyZS5lc2NhcGUoeCkgZm9yIHggaW4gdG9rZW5zXSkpCisgIHdoaWxlIGxlbihyZXN0KToKKyAgICBtID0gbmV4dF90b2suc2VhcmNoKHJlc3QpCisgICAgaWYgbm90IG06CisgICAgICAjIGVuZCBvZiBzdHJpbmcKKyAgICAgIHlpZWxkIHJlc3QKKyAgICAgIHJldHVybgorICAgIG1pbl9pbmRleCA9IG0uc3RhcnQoKQorICAgIGVuZF9pbmRleCA9IG0uZW5kKCkKKworICAgIGlmIG1pbl9pbmRleCA+IDA6CisgICAgICB5aWVsZCByZXN0WzptaW5faW5kZXhdCisKKyAgICB5aWVsZCByZXN0W21pbl9pbmRleDplbmRfaW5kZXhdCisgICAgcmVzdCA9IHJlc3RbZW5kX2luZGV4Ol0KKworCitkZWYgU3RyaXBKU0NvbW1lbnRzKHRleHQpOgorICAiIiJTdHJpcHMgY29tbWVudHMgb3V0IG9mIEphdmFTY3JpcHQgc291cmNlIGNvZGUuCisKKyAgQXJnczoKKyAgICB0ZXh0OiBKYXZhU2NyaXB0IHNvdXJjZSB0ZXh0LgorCisgIFJldHVybnM6CisgICAgSmF2YVNjcmlwdCBzb3VyY2UgdGV4dCB3aXRoIGNvbW1lbnRzIHN0cmlwcGVkIG91dC4KKyAgIiIiCisgIHJlc3VsdF90b2tlbnMgPSBbXQorICB0b2tlbl9zdHJlYW0gPSBfVG9rZW5pemVKUyh0ZXh0KS5fX2l0ZXJfXygpCisgIHdoaWxlIFRydWU6CisgICAgdHJ5OgorICAgICAgdCA9IHRva2VuX3N0cmVhbS5uZXh0KCkKKyAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgIGJyZWFrCisKKyAgICBpZiB0ID09ICIvLyI6CisgICAgICB3aGlsZSBUcnVlOgorICAgICAgICB0cnk6CisgICAgICAgICAgdDIgPSB0b2tlbl9zdHJlYW0ubmV4dCgpCisgICAgICAgICAgaWYgdDIgPT0gIlxuIjoKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgIGJyZWFrCisgICAgZWxpZiB0ID09ICcvKic6CisgICAgICBuZXN0aW5nID0gMQorICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgIHQyID0gdG9rZW5fc3RyZWFtLm5leHQoKQorICAgICAgICAgIGlmIHQyID09ICIvKiI6CisgICAgICAgICAgICBuZXN0aW5nICs9IDEKKyAgICAgICAgICBlbGlmIHQyID09ICIqLyI6CisgICAgICAgICAgICBuZXN0aW5nIC09IDEKKyAgICAgICAgICAgIGlmIG5lc3RpbmcgPT0gMDoKKyAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgYnJlYWsKKyAgICBlbHNlOgorICAgICAgcmVzdWx0X3Rva2Vucy5hcHBlbmQodCkKKyAgcmV0dXJuICIiLmpvaW4ocmVzdWx0X3Rva2VucykKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9zdHJpcF9qc19jb21tZW50c191bml0dGVzdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS9zdHJpcF9qc19jb21tZW50c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWY2ZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0cmlwX2pzX2NvbW1lbnRzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNTQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworIiIiVGVzdHMgZm9yIHN0cmlwX2pzX2NvbW1lbnRzIG1vZHVsZS4iIiIKKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gdHZjbSBpbXBvcnQgc3RyaXBfanNfY29tbWVudHMKKworCisjIFRoaXMgdGVzdCBjYXNlIHRlc3RzIGEgcHJvdGVjdGVkIG1ldGhvZC4KKyMgcHlsaW50OiBkaXNhYmxlPVcwMjEyCitjbGFzcyBKYXZhU2NyaXB0U3RyaXBDb21tZW50VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAiIiJUZXN0IGNhc2UgZm9yIF9zdHJpcF9qc19jb21tZW50cyBhbmQgX1Rva2VuaXplSlMuIiIiCisKKyAgZGVmIHRlc3Rfc3RyaXBfY29tbWVudHMoc2VsZik6CisgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgICdBICcsIHN0cmlwX2pzX2NvbW1lbnRzLlN0cmlwSlNDb21tZW50cygnQSAvLyBmb28nKSkKKyAgICBzZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgJ0EgYmFyJywgc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKCdBIC8vIGZvb1xuYmFyJykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgICdBICBiJywgc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKCdBIC8qIGZvbyAqLyBiJykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgICdBICBiJywgc3RyaXBfanNfY29tbWVudHMuU3RyaXBKU0NvbW1lbnRzKCdBIC8qIGZvb1xuICovIGInKSkKKworICBkZWYgdGVzdF90b2tlbml6ZV9lbXB0eShzZWxmKToKKyAgICB0b2tlbnMgPSBsaXN0KHN0cmlwX2pzX2NvbW1lbnRzLl9Ub2tlbml6ZUpTKCcnKSkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgdG9rZW5zKQorCisgIGRlZiB0ZXN0X3Rva2VuaXplX25sKHNlbGYpOgorICAgIHRva2VucyA9IGxpc3Qoc3RyaXBfanNfY29tbWVudHMuX1Rva2VuaXplSlMoJ1xuJykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydcbiddLCB0b2tlbnMpCisKKyAgZGVmIHRlc3RfdG9rZW5pemVfc2xhc2hzbGFzaF9jb21tZW50KHNlbGYpOgorICAgIHRva2VucyA9IGxpc3Qoc3RyaXBfanNfY29tbWVudHMuX1Rva2VuaXplSlMoJ0EgLy8gZm9vJykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydBICcsICcvLycsICcgZm9vJ10sIHRva2VucykKKworICBkZWYgdGVzdF90b2tlbml6ZV9zbGFzaHNsYXNoX2NvbW1lbnRfdGhlbl9uZXdsaW5lKHNlbGYpOgorICAgIHRva2VucyA9IGxpc3Qoc3RyaXBfanNfY29tbWVudHMuX1Rva2VuaXplSlMoJ0EgLy8gZm9vXG5iYXInKSkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhbJ0EgJywgJy8vJywgJyBmb28nLCAnXG4nLCAnYmFyJ10sIHRva2VucykKKworICBkZWYgdGVzdF90b2tlbml6ZV9jc3R5bGVfY29tbWVudF9vbmVfbGluZShzZWxmKToKKyAgICB0b2tlbnMgPSBsaXN0KHN0cmlwX2pzX2NvbW1lbnRzLl9Ub2tlbml6ZUpTKCdBIC8qIGZvbyAqLycpKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsnQSAnLCAnLyonLCAnIGZvbyAnLCAnKi8nXSwgdG9rZW5zKQorCisgIGRlZiB0ZXN0X3Rva2VuaXplX2NzdHlsZV9jb21tZW50X211bHRpX2xpbmUoc2VsZik6CisgICAgdG9rZW5zID0gbGlzdChzdHJpcF9qc19jb21tZW50cy5fVG9rZW5pemVKUygnQSAvKiBmb29cbipiYXJcbiovJykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydBICcsICcvKicsICcgZm9vJywgJ1xuJywgJypiYXInLCAnXG4nLCAnKi8nXSwgdG9rZW5zKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0eWxlX3NoZWV0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0eWxlX3NoZWV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYzVlNzQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3R5bGVfc2hlZXQucHkKQEAgLTAsMCArMSwxMzYgQEAKKyMgQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IGJhc2U2NAoraW1wb3J0IG9zCitpbXBvcnQgcmUKKworCitjbGFzcyBJbWFnZShvYmplY3QpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCByZXNvdXJjZSk6CisgICAgc2VsZi5yZXNvdXJjZSA9IHJlc291cmNlCisgICAgc2VsZi5hbGlhc2VzID0gW10KKworICBAcHJvcGVydHkKKyAgZGVmIHJlbGF0aXZlX3BhdGgoc2VsZik6CisgICAgcmV0dXJuIHNlbGYucmVzb3VyY2UucmVsYXRpdmVfcGF0aAorCisgIEBwcm9wZXJ0eQorICBkZWYgYWJzb2x1dGVfcGF0aChzZWxmKToKKyAgICByZXR1cm4gc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoCisKKyAgQHByb3BlcnR5CisgIGRlZiBjb250ZW50cyhzZWxmKToKKyAgICByZXR1cm4gc2VsZi5yZXNvdXJjZS5jb250ZW50cworCisKK2NsYXNzIFBhcnNlZFN0eWxlU2hlZXQob2JqZWN0KToKKyAgZGVmIF9faW5pdF9fKHNlbGYsIGxvYWRlciwgY29udGFpbmluZ19kaXJuYW1lLCBjb250ZW50cyk6CisgICAgc2VsZi5sb2FkZXIgPSBsb2FkZXIKKyAgICBzZWxmLmNvbnRlbnRzID0gY29udGVudHMKKyAgICBzZWxmLl9pbWFnZXMgPSBOb25lCisgICAgc2VsZi5fTG9hZChjb250YWluaW5nX2Rpcm5hbWUpCisKKyAgQHByb3BlcnR5CisgIGRlZiBpbWFnZXMoc2VsZik6CisgICAgcmV0dXJuIHNlbGYuX2ltYWdlcworCisgIGRlZiBBcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKHNlbGYsIGRlcGVuZGVudF9maWxlbmFtZXMpOgorICAgIGZvciBpIGluIHNlbGYuaW1hZ2VzOgorICAgICAgZGVwZW5kZW50X2ZpbGVuYW1lcy5hcHBlbmQoaS5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKQorCisgIEBwcm9wZXJ0eQorICBkZWYgY29udGVudHNfd2l0aF9pbmxpbmVkX2ltYWdlcyhzZWxmKToKKyAgICBpbWFnZXNfYnlfdXJsID0ge30KKyAgICBmb3IgaSBpbiBzZWxmLmltYWdlczoKKyAgICAgIGZvciBhIGluIGkuYWxpYXNlczoKKyAgICAgICAgaW1hZ2VzX2J5X3VybFthXSA9IGkKKworICAgIGRlZiBJbmxpbmVVcmwobSk6CisgICAgICB1cmwgPSBtLmdyb3VwKCd1cmwnKQorICAgICAgaW1hZ2UgPSBpbWFnZXNfYnlfdXJsW3VybF0KKworICAgICAgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChpbWFnZS5hYnNvbHV0ZV9wYXRoKVsxXQorICAgICAgZGF0YSA9IGJhc2U2NC5zdGFuZGFyZF9iNjRlbmNvZGUoaW1hZ2UuY29udGVudHMpCisKKyAgICAgIHJldHVybiAidXJsKGRhdGE6aW1hZ2UvJXM7YmFzZTY0LCVzKSIgJSAoZXh0WzE6XSwgZGF0YSkKKworICAgICMgSSdtIGFzc3VtaW5nIHdlIG9ubHkgaGF2ZSB1cmwoKSdzIGFzc29jaWF0ZWQgd2l0aCBpbWFnZXMKKyAgICByZXR1cm4gcmUuc3ViKCd1cmxcKCg/UDxxdW90ZT4ifFwnfCkoP1A8dXJsPlteIlwnKCldKikoP1A9cXVvdGUpXCknLAorICAgICAgICAgICAgICAgICAgSW5saW5lVXJsLCBzZWxmLmNvbnRlbnRzKQorCisgIGRlZiBBcHBlbmREaXJlY3RseURlcGVuZGVudEZpbGVuYW1lc1RvKHNlbGYsIGRlcGVuZGVudF9maWxlbmFtZXMpOgorICAgIGZvciBpIGluIHNlbGYuaW1hZ2VzOgorICAgICAgZGVwZW5kZW50X2ZpbGVuYW1lcy5hcHBlbmQoaS5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoKQorCisgIGRlZiBfTG9hZChzZWxmLCBjb250YWluaW5nX2Rpcm5hbWUpOgorICAgIGlmIHNlbGYuY29udGVudHMuZmluZCgnQGltcG9ydCcpICE9IC0xOgorICAgICAgcmFpc2UgRXhjZXB0aW9uKCdAaW1wb3J0cyBhcmUgbm90IHN1cHBvcnRlZCcpCisKKyAgICBtYXRjaGVzID0gcmUuZmluZGFsbCgKKyAgICAgICAgJ3VybFwoKD86WyJ8XCddPykoW14iXCcoKV0qKSg/OlsifFwnXT8pXCknLAorICAgICAgICBzZWxmLmNvbnRlbnRzKQorCisgICAgZGVmIHJlc29sdmVfdXJsKHVybCk6CisgICAgICBpZiBvcy5wYXRoLmlzYWJzKHVybCk6CisgICAgICAgICMgRklYTUU6IG1vZHVsZSBpcyB1c2VkIGhlcmUsIGJ1dCB0dmNtLm1vZHVsZSBpcyBuZXZlciBpbXBvcnRlZC4KKyAgICAgICAgIyBIb3dldmVyLCB0dmNtLm1vZHVsZSBjYW5ub3QgYmUgaW1wb3J0ZWQgc2luY2UgdHZjbS5tb2R1bGUgbWF5IGltcG9ydAorICAgICAgICAjIHN0eWxlX3NoZWV0LCBsZWFkaW5nIHRvIGFuIGltcG9ydCBsb29wLgorICAgICAgICByYWlzZSBtb2R1bGUuRGVwc0V4Y2VwdGlvbignVVJMIHJlZmVyZW5jZXMgbXVzdCBiZSByZWxhdGl2ZScpCisgICAgICAjIFVSTFMgYXJlIHJlbGF0aXZlIHRvIHRoaXMgbW9kdWxlJ3MgZGlyZWN0b3J5CisgICAgICBhYnNfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oY29udGFpbmluZ19kaXJuYW1lLCB1cmwpKQorICAgICAgaW1hZ2UgPSBzZWxmLmxvYWRlci5Mb2FkSW1hZ2UoYWJzX3BhdGgpCisgICAgICBpbWFnZS5hbGlhc2VzLmFwcGVuZCh1cmwpCisgICAgICByZXR1cm4gaW1hZ2UKKworICAgIHNlbGYuX2ltYWdlcyA9IFtyZXNvbHZlX3VybCh4KSBmb3IgeCBpbiBtYXRjaGVzXQorCisKK2NsYXNzIFN0eWxlU2hlZXQob2JqZWN0KToKKyAgIiIiUmVwcmVzZW50cyBhIHN0eWxlc2hlZXQgcmVzb3VyY2UgcmVmZXJlbmNlZCBieSBhIG1vZHVsZSB2aWEgdGhlCisgIGJhc2UucmVxdWlyZVN0eWxlc2hlZXQoeHh4KSBkaXJlY3RpdmUuIiIiCisgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2FkZXIsIG5hbWUsIHJlc291cmNlKToKKyAgICBzZWxmLmxvYWRlciA9IGxvYWRlcgorICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICBzZWxmLnJlc291cmNlID0gcmVzb3VyY2UKKyAgICBzZWxmLl9wYXJzZWRfc3R5bGVfc2hlZXQgPSBOb25lCisKKyAgQHByb3BlcnR5CisgIGRlZiBmaWxlbmFtZShzZWxmKToKKyAgICByZXR1cm4gc2VsZi5yZXNvdXJjZS5hYnNvbHV0ZV9wYXRoCisKKyAgQHByb3BlcnR5CisgIGRlZiBjb250ZW50cyhzZWxmKToKKyAgICByZXR1cm4gc2VsZi5yZXNvdXJjZS5jb250ZW50cworCisgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICByZXR1cm4gIlN0eWxlU2hlZXQoJXMpIiAlIHNlbGYubmFtZQorCisgIEBwcm9wZXJ0eQorICBkZWYgaW1hZ2VzKHNlbGYpOgorICAgIHNlbGYuX0luaXRQYXJzZWRTdHlsZVNoZWV0SWZOZWVkZWQoKQorICAgIHJldHVybiBzZWxmLl9wYXJzZWRfc3R5bGVfc2hlZXQuaW1hZ2VzCisKKyAgZGVmIEFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oc2VsZiwgZGVwZW5kZW50X2ZpbGVuYW1lcyk6CisgICAgc2VsZi5fSW5pdFBhcnNlZFN0eWxlU2hlZXRJZk5lZWRlZCgpCisKKyAgICBkZXBlbmRlbnRfZmlsZW5hbWVzLmFwcGVuZChzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgpCisgICAgc2VsZi5fcGFyc2VkX3N0eWxlX3NoZWV0LkFwcGVuZERpcmVjdGx5RGVwZW5kZW50RmlsZW5hbWVzVG8oCisgICAgICAgIGRlcGVuZGVudF9maWxlbmFtZXMpCisKKyAgQHByb3BlcnR5CisgIGRlZiBjb250ZW50c193aXRoX2lubGluZWRfaW1hZ2VzKHNlbGYpOgorICAgIHNlbGYuX0luaXRQYXJzZWRTdHlsZVNoZWV0SWZOZWVkZWQoKQorICAgIHJldHVybiBzZWxmLl9wYXJzZWRfc3R5bGVfc2hlZXQuY29udGVudHNfd2l0aF9pbmxpbmVkX2ltYWdlcworCisgIGRlZiBsb2FkKHNlbGYpOgorICAgIHNlbGYuX0luaXRQYXJzZWRTdHlsZVNoZWV0SWZOZWVkZWQoKQorCisgIGRlZiBfSW5pdFBhcnNlZFN0eWxlU2hlZXRJZk5lZWRlZChzZWxmKToKKyAgICBpZiBzZWxmLl9wYXJzZWRfc3R5bGVfc2hlZXQ6CisgICAgICByZXR1cm4KKyAgICBtb2R1bGVfZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShzZWxmLnJlc291cmNlLmFic29sdXRlX3BhdGgpCisgICAgc2VsZi5fcGFyc2VkX3N0eWxlX3NoZWV0ID0gUGFyc2VkU3R5bGVTaGVldCgKKyAgICAgICAgc2VsZi5sb2FkZXIsIG1vZHVsZV9kaXJuYW1lLCBzZWxmLmNvbnRlbnRzKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0eWxlX3NoZWV0X3VuaXR0ZXN0LnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdHZjbS90dmNtL3N0eWxlX3NoZWV0X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZmUzYWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vc3R5bGVfc2hlZXRfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw2NyBAQAorIyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgYmFzZTY0CitpbXBvcnQgb3MKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHR2Y20gaW1wb3J0IHByb2plY3QgYXMgcHJvamVjdF9tb2R1bGUKK2Zyb20gdHZjbSBpbXBvcnQgcmVzb3VyY2VfbG9hZGVyCitmcm9tIHR2Y20gaW1wb3J0IGZha2VfZnMKK2Zyb20gdHZjbSBpbXBvcnQgbW9kdWxlCisKKworY2xhc3MgU3R5bGVTaGVldFVuaXR0ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICBkZWYgdGVzdEltYWdlcyhzZWxmKToKKyAgICBmcyA9IGZha2VfZnMuRmFrZUZTKCkKKyAgICBmcy5BZGRGaWxlKCcvc3JjL2Zvby94LmNzcycsICIiIgorLnggLnkgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvYmFyLmpwZWcpOworfQorIiIiKQorICAgIGZzLkFkZEZpbGUoJy9zcmMvaW1hZ2VzL2Jhci5qcGVnJywgJ2hlbGxvIHdvcmxkJykKKyAgICB3aXRoIGZzOgorICAgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoW29zLnBhdGgubm9ybXBhdGgoJy9zcmMvJyldKQorICAgICAgbG9hZGVyID0gcmVzb3VyY2VfbG9hZGVyLlJlc291cmNlTG9hZGVyKHByb2plY3QpCisKKyAgICAgIGZvb194ID0gbG9hZGVyLkxvYWRTdHlsZVNoZWV0KCdmb28ueCcpCisgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4oZm9vX3guaW1hZ2VzKSkKKworICAgICAgcjAgPSBmb29feC5pbWFnZXNbMF0KKyAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9zLnBhdGgubm9ybXBhdGgoJy9zcmMvaW1hZ2VzL2Jhci5qcGVnJyksCisgICAgICAgICAgICAgICAgICAgICAgICByMC5hYnNvbHV0ZV9wYXRoKQorCisgICAgICBpbmxpbmVkID0gZm9vX3guY29udGVudHNfd2l0aF9pbmxpbmVkX2ltYWdlcworICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoIiIiCisueCAueSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvanBlZztiYXNlNjQsJXMpOworfQorIiIiICUgYmFzZTY0LnN0YW5kYXJkX2I2NGVuY29kZSgnaGVsbG8gd29ybGQnKSwgaW5saW5lZCkKKworICBkZWYgdGVzdFVSTFJlc29sdmVGYWlscyhzZWxmKToKKyAgICBmcyA9IGZha2VfZnMuRmFrZUZTKCkKKyAgICBmcy5BZGRGaWxlKCcvc3JjL2Zvby94LmNzcycsICIiIgorLnggLnkgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvbWlzc2luZy5qcGVnKTsKK30KKyIiIikKKyAgICB3aXRoIGZzOgorICAgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoW29zLnBhdGgubm9ybXBhdGgoJy9zcmMnKV0pCisgICAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKKworICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobW9kdWxlLkRlcHNFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGE6IGxvYWRlci5Mb2FkU3R5bGVTaGVldCgnZm9vLngnKSkKKworICBkZWYgdGVzdEltcG9ydHNDYXVzZUZhaWx1cmUoc2VsZik6CisgICAgZnMgPSBmYWtlX2ZzLkZha2VGUygpCisgICAgZnMuQWRkRmlsZSgnL3NyYy9mb28veC5jc3MnLCAiIiIKK0BpbXBvcnQgdXJsKGF3ZXNvbWUuY3NzKTsKKyIiIikKKyAgICB3aXRoIGZzOgorICAgICAgcHJvamVjdCA9IHByb2plY3RfbW9kdWxlLlByb2plY3QoW29zLnBhdGgubm9ybXBhdGgoJy9zcmMnKV0pCisgICAgICBsb2FkZXIgPSByZXNvdXJjZV9sb2FkZXIuUmVzb3VyY2VMb2FkZXIocHJvamVjdCkKKworICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBsb2FkZXIuTG9hZFN0eWxlU2hlZXQoJ2Zvby54JykpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vdGVzdF9ydW5uZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS90dmNtL3R2Y20vdGVzdF9ydW5uZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY3YTMxMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3R2Y20vdHZjbS90ZXN0X3J1bm5lci5weQpAQCAtMCwwICsxLDEwNCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBvcHRwYXJzZQorCitfX2FsbF9fID0gW10KKworCitkZWYgRmlsdGVyU3VpdGUoc3VpdGUsIHByZWRpY2F0ZSk6CisgIG5ld19zdWl0ZSA9IHN1aXRlLl9fY2xhc3NfXygpCisKKyAgZm9yIHggaW4gc3VpdGU6CisgICAgaWYgaXNpbnN0YW5jZSh4LCB1bml0dGVzdC5UZXN0U3VpdGUpOgorICAgICAgc3Vic3VpdGUgPSBGaWx0ZXJTdWl0ZSh4LCBwcmVkaWNhdGUpCisgICAgICBpZiBzdWJzdWl0ZS5jb3VudFRlc3RDYXNlcygpID09IDA6CisgICAgICAgIGNvbnRpbnVlCisKKyAgICAgIG5ld19zdWl0ZS5hZGRUZXN0KHN1YnN1aXRlKQorICAgICAgY29udGludWUKKworICAgIGFzc2VydCBpc2luc3RhbmNlKHgsIHVuaXR0ZXN0LlRlc3RDYXNlKQorICAgIGlmIHByZWRpY2F0ZSh4KToKKyAgICAgIG5ld19zdWl0ZS5hZGRUZXN0KHgpCisKKyAgcmV0dXJuIG5ld19zdWl0ZQorCisKK2NsYXNzIF9UZXN0TG9hZGVyKHVuaXR0ZXN0LlRlc3RMb2FkZXIpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6CisgICAgc3VwZXIoX1Rlc3RMb2FkZXIsIHNlbGYpLl9faW5pdF9fKCphcmdzKQorICAgIHNlbGYuZGlzY292ZXJfY2FsbHMgPSBbXQorCisgIGRlZiBsb2FkVGVzdHNGcm9tTW9kdWxlKHNlbGYsIG1vZHVsZSwgdXNlX2xvYWRfdGVzdHM9VHJ1ZSk6CisgICAgaWYgbW9kdWxlLl9fZmlsZV9fICE9IF9fZmlsZV9fOgorICAgICAgcmV0dXJuIHN1cGVyKF9UZXN0TG9hZGVyLCBzZWxmKS5sb2FkVGVzdHNGcm9tTW9kdWxlKAorICAgICAgICAgIG1vZHVsZSwgdXNlX2xvYWRfdGVzdHMpCisKKyAgICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZSgpCisgICAgZm9yIGRpc2NvdmVyX2FyZ3MgaW4gc2VsZi5kaXNjb3Zlcl9jYWxsczoKKyAgICAgIHN1YnN1aXRlID0gc2VsZi5kaXNjb3ZlcigqZGlzY292ZXJfYXJncykKKyAgICAgIHN1aXRlLmFkZFRlc3Qoc3Vic3VpdGUpCisgICAgcmV0dXJuIHN1aXRlCisKKworY2xhc3MgX1J1bm5lckltcGwodW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIpOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWx0ZXJzKToKKyAgICBzdXBlcihfUnVubmVySW1wbCwgc2VsZikuX19pbml0X18odmVyYm9zaXR5PTIpCisgICAgc2VsZi5maWx0ZXJzID0gZmlsdGVycworCisgIGRlZiBTaG91bGRUZXN0UnVuKHNlbGYsIHRlc3QpOgorICAgIGlmIGxlbihzZWxmLmZpbHRlcnMpID09IDA6CisgICAgICByZXR1cm4gVHJ1ZQorICAgIGZvdW5kID0gRmFsc2UKKyAgICBmb3IgbmFtZSBpbiBzZWxmLmZpbHRlcnM6CisgICAgICBpZiBuYW1lIGluIHRlc3QuaWQoKToKKyAgICAgICAgZm91bmQgPSBUcnVlCisgICAgcmV0dXJuIGZvdW5kCisKKyAgZGVmIHJ1bihzZWxmLCBzdWl0ZSk6CisgICAgZmlsdGVyZWRfdGVzdCA9IEZpbHRlclN1aXRlKHN1aXRlLCBzZWxmLlNob3VsZFRlc3RSdW4pCisgICAgcmV0dXJuIHN1cGVyKF9SdW5uZXJJbXBsLCBzZWxmKS5ydW4oZmlsdGVyZWRfdGVzdCkKKworCitjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CisKKyAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgIHNlbGYuX2xvYWRlciA9IF9UZXN0TG9hZGVyKCkKKworICBkZWYgQWRkTW9kdWxlKHNlbGYsIG1vZHVsZSwgcGF0dGVybj0iKnVuaXR0ZXN0LnB5Iik6CisgICAgYXNzZXJ0IGluc3BlY3QuaXNtb2R1bGUobW9kdWxlKQorICAgIG1vZHVsZV9maWxlX2Jhc2VuYW1lID0gb3MucGF0aC5zcGxpdGV4dCgKKyAgICAgICAgb3MucGF0aC5iYXNlbmFtZShtb2R1bGUuX19maWxlX18pKVswXQorICAgIGlmIG1vZHVsZV9maWxlX2Jhc2VuYW1lICE9ICdfX2luaXRfXyc6CisgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKAorICAgICAgICAgICdNb2R1bGVzIHRoYXQgYXJlIG9uZSBmaWxlIGFyZSBub3Qgc3VwcG9ydGVkLCBvbmx5IGRpcmVjdG9yaWVzLicpCisKKyAgICBmaWxlX2Jhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLmRpcm5hbWUobW9kdWxlLl9fZmlsZV9fKSkKKyAgICBtb2R1bGVfZmlyc3RfZGlyID0gbW9kdWxlLl9fbmFtZV9fLnNwbGl0KCcuJylbMF0KKyAgICBhc3NlcnQgZmlsZV9iYXNlbmFtZSA9PSBtb2R1bGVfZmlyc3RfZGlyLCAnTW9kdWxlIG11c3QgYmUgdG9wbGV2ZWwnCisKKyAgICBzdGFydF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUobW9kdWxlLl9fZmlsZV9fKQorICAgIHRvcF9kaXIgPSBvcy5wYXRoLm5vcm1wYXRoKAorICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKG1vZHVsZS5fX2ZpbGVfXyksICcuLicpKQorICAgIHNlbGYuX2xvYWRlci5kaXNjb3Zlcl9jYWxscy5hcHBlbmQoKHN0YXJ0X2RpciwgcGF0dGVybiwgdG9wX2RpcikpCisKKyAgZGVmIE1haW4oc2VsZiwgYXJndj1Ob25lKToKKyAgICBpZiBhcmd2IGlzIE5vbmU6CisgICAgICBhcmd2ID0gc3lzLmFyZ3YKKworICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCisgICAgXywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3ZbMTpdKQorCisgICAgcnVubmVyID0gX1J1bm5lckltcGwoZmlsdGVycz1hcmdzKQorICAgIHJldHVybiB1bml0dGVzdC5tYWluKG1vZHVsZT1fX25hbWVfXywgYXJndj1bc3lzLmFyZ3ZbMF1dLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RMb2FkZXI9c2VsZi5fbG9hZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXI9cnVubmVyKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi9iaW4vdmlubiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vYmluL3Zpbm4KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWMyZTZkOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vYmluL3Zpbm4KQEAgLTAsMCArMSwxNCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJykpCisKK2Zyb20gdmlubiBpbXBvcnQgZDhfcnVubmVyCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgc3lzLmV4aXQoZDhfcnVubmVyLm1haW4oKSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vcnVuX3Rlc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3J1bl90ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVhNTg5MTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3J1bl90ZXN0CkBAIC0wLDAgKzEsMTQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KK2ltcG9ydCBvcworaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHZpbm4gaW1wb3J0IGQ4X3J1bm5lcl91bml0dGVzdAorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZSgpCisgIHZpbm5fZGlyID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICd2aW5uJykKKyAgc3VpdGUuYWRkVGVzdCh1bml0dGVzdC5UZXN0TG9hZGVyKCkuZGlzY292ZXIoCisgICAgc3RhcnRfZGlyPXZpbm5fZGlyLCBwYXR0ZXJuPScqdGVzdC5weScpKQorICB1bml0dGVzdC5UZXh0VGVzdFJ1bm5lcih2ZXJib3NpdHk9MikucnVuKHN1aXRlKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvLmVkaXRvcmNvbmZpZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1Ly5lZGl0b3Jjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJjYTIzZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1Ly5lZGl0b3Jjb25maWcKQEAgLTAsMCArMSwxNSBAQAorIyBUaGlzIGZpbGUgaXMgZm9yIHVuaWZ5aW5nIHRoZSBjb2Rpbmcgc3R5bGUgZm9yIGRpZmZlcmVudCBlZGl0b3JzIGFuZCBJREVzCisjIGVkaXRvcmNvbmZpZy5vcmcKKworcm9vdCA9IHRydWUKKworWypdCitlbmRfb2ZfbGluZSA9IGxmCitjaGFyc2V0ID0gdXRmLTgKK2luc2VydF9maW5hbF9uZXdsaW5lID0gdHJ1ZQordHJpbV90cmFpbGluZ193aGl0ZXNwYWNlID0gdHJ1ZQoraW5kZW50X3N0eWxlID0gc3BhY2UKK2luZGVudF9zaXplID0gNAorCitbe3BhY2thZ2UuanNvbiwudHJhdmlzLnltbH1dCitpbmRlbnRfc2l6ZSA9IDIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS8uZ2l0YXR0cmlidXRlcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1Ly5naXRhdHRyaWJ1dGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmZjEwOWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS8uZ2l0YXR0cmlidXRlcwpAQCAtMCwwICsxLDQgQEAKKyMgRXhjbHVkZSB0aGUgSFRNTCBmaWxlcyBmcm9tIEdpdEh1YidzIGxhbmd1YWdlIHN0YXRpc3RpY3MKKyMgaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9saW5ndWlzdCN1c2luZy1naXRhdHRyaWJ1dGVzCit0ZXN0L2RhdGEvKiBsaW5ndWlzdC12ZW5kb3JlZAorYmVuY2htYXJrL3NwZWMuaHRtbCBsaW5ndWlzdC12ZW5kb3JlZApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvLmdpdGlnbm9yZSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1Ly5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ExNTM3YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1Ly5naXRpZ25vcmUKQEAgLTAsMCArMSwyIEBACisuaWRlYQorbm9kZV9tb2R1bGVzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS8ubnBtaWdub3JlIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvLm5wbWlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjhmYzYyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvLm5wbWlnbm9yZQpAQCAtMCwwICsxLDExIEBACisjIEdlbmVyYXRlZCBieSBkbW4gKGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9kbW4pCisKKy5lZGl0b3Jjb25maWcKKy5naXQqCisuaWRlYQorLm5wbWlnbm9yZQorLnRyYXZpcy55bWwKK2xvZ28ucG5nCitiZW5jaG1hcmsvCit0ZXN0LwordG9vbHMvCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS8udHJhdmlzLnltbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1Ly50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZjc1ODkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS8udHJhdmlzLnltbApAQCAtMCwwICsxLDUgQEAKK2xhbmd1YWdlOiBub2RlX2pzCitub2RlX2pzOgorICAtICcwLjEwJworICAtICcwLjEyJworICAtIGlvanMKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L0NIQU5HRUxPRy5tZCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L0NIQU5HRUxPRy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGZmNzBkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvQ0hBTkdFTE9HLm1kCkBAIC0wLDAgKzEsNjYgQEAKKyMjIDEuNS4wCisgKiBBZGQ6IExvY2F0aW9uIGluZm8gZm9yIHRoZSBlbGVtZW50IHN0YXJ0IGFuZCBlbmQgdGFncyAoYnkgQHNha2FnZykuCisKKyMjIDEuNC4yCisgKiBGaXg6IGh0bWxwYXJzZXIyIHRyZWUgYWRhcHRlciBgRG9jdW1lbnRUeXBlLmRhdGFgIHByb3BlcnR5IHJlbmRlcmluZyAoR0ggWyM0NV0oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMvNDUpKS4KKworIyMgMS40LjEKKyAqIEZpeDogTG9jYXRpb24gaW5mbyBoYW5kbGluZyBmb3IgdGhlIGltcGxpY2l0bHkgZ2VuZXJhdGVkIGA8aHRtbD5gIGFuZCBgPGJvZHk+YCBlbGVtZW50cyAoR0ggWyM0NF0oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMvNDQpKS4KKworIyMgMS40LjAKKyAqIEFkZDogUGFyc2VyIFtkZWNvZGVIdG1sRW50aXRpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUjb3B0aW9uc2RlY29kZWh0bWxlbnRpdGllcykgb3B0aW9uLgorICogQWRkOiBTaW1wbGVBcGlQYXJzZXIgW2RlY29kZUh0bWxFbnRpdGllc10oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNSNvcHRpb25zZGVjb2RlaHRtbGVudGl0aWVzLTEpIG9wdGlvbi4KKyAqIEFkZDogUGFyc2VyIFtsb2NhdGlvbkluZm9dKGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUjb3B0aW9uc2xvY2F0aW9uaW5mbykgb3B0aW9uLgorICogQWRkOiBTaW1wbGVBcGlQYXJzZXIgW2xvY2F0aW9uSW5mb10oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNSNvcHRpb25zbG9jYXRpb25pbmZvLTEpIG9wdGlvbi4KKworIyMgMS4zLjIKKyAqIEZpeDogYDxmb3JtPmAgcHJvY2Vzc2luZyBpbiBgPHRlbXBsYXRlPmAgKEdIIFsjNDBdKGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzLzQwKSkuCisKKyMjIDEuMy4xCisgKiBGaXg6IHRleHQgbm9kZSBpbiBgPHRlbXBsYXRlPmAgc2VyaWFsaXphdGlvbiBwcm9ibGVtIHdpdGggY3VzdG9tIHRyZWUgYWRhcHRlciAoR0ggWyMzOF0oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMvMzgpKS4KKworIyMgMS4zLjAKKyAqIEFkZDogU2VyaWFsaXplciBgZW5jb2RlSHRtbEVudGl0aWVzYCBvcHRpb24uCisKKyMjIDEuMi4wCisgKiBBZGQ6IGA8dGVtcGxhdGU+YCBzdXBwb3J0CisgKiBgcGFyc2VGcmFnbWVudGAgbm93IHVzZXMgYDx0ZW1wbGF0ZT5gIGFzIGRlZmF1bHQgYGNvbnRleHRFbGVtZW50YC4gVGhpcyBsZWFkcyB0byB0aGUgbW9yZSAiZm9yZ2l2aW5nIiBwYXJzaW5nIG1hbm5lci4KKyAqIGBUcmVlU2VyaWFsaXplcmAgd2FzIHJlbmFtZWQgdG8gYFNlcmlhbGl6ZXJgLiBIb3dldmVyLCBzZXJpYWxpemVyIGlzIGFjY2Vzc2libGUgYXMgYHBhcnNlNS5UcmVlU2VyaWFsaXplcmAgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgLgorCisjIyAxLjEuNgorICogRml4OiBhcHBseSBsYXRlc3QgY2hhbmdlcyB0byB0aGUgYGh0bWxwYXJzZXIyYCB0cmVlIGZvcm1hdCAoRE9NIExldmVsMSBub2RlIGVtdWxhdGlvbikuCisKKyMjIDEuMS41CisgKiBBZGQ6IFtqc2RvbV0oaHR0cHM6Ly9naXRodWIuY29tL3RtcHZhci9qc2RvbSktc3BlY2lmaWMgcGFyc2VyIHdpdGggc2NyaXB0aW5nIHN1cHBvcnQuIFVuZG9jdW1lbnRlZCBmb3IgYGpzZG9tYCBpbnRlcm5hbCB1c2Ugb25seS4KKworIyMgMS4xLjQKKyAqIEFkZDogbG9nbworICogRml4OiB1c2UgZmFrZSBgZG9jdW1lbnRgIGVsZW1lbnQgZm9yIGZyYWdtZW50IHBhcnNpbmcgKHJlcXVpcmVkIGJ5IFtqc2RvbV0oaHR0cHM6Ly9naXRodWIuY29tL3RtcHZhci9qc2RvbSkpLgorCisjIyAxLjEuMworICogRGV2ZWxvcG1lbnQgZmlsZXMgKGUuZy4gYC50cmF2aXMueW1sYCwgYC5lZGl0b3Jjb25maWdgKSBhcmUgcmVtb3ZlZCBmcm9tIE5QTSBwYWNrYWdlLgorCisjIyAxLjEuMgorICogRml4OiBjcmFzaCBvbiBMaW51eCBkdWUgdG8gdXBwZXItY2FzZSBsZWFkaW5nIGNoYXJhY3RlciBpbiBtb2R1bGUgbmFtZSB1c2VkIGluIGByZXF1aXJlKClgLgorCisjIyAxLjEuMQorICogQWRkOiBbU2ltcGxlQXBpUGFyc2VyXShodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1LyNjbGFzcy1zaW1wbGVhcGlwYXJzZXIpLgorICogRml4OiBuZXcgbGluZSBzZXJpYWxpemF0aW9uIGluIGA8cHJlPmAuCisgKiBGaXg6IGBTWVNURU1gLW9ubHkgYERPQ1RZUEVgIHNlcmlhbGl6YXRpb24uCisgKiBGaXg6IHF1b3RlcyBzZXJpYWxpemF0aW9uIGluIGBET0NUWVBFYCBJRHMuCisKKyMjIDEuMC4wCisgKiBGaXJzdCBzdGFibGUgcmVsZWFzZSwgc3dpdGNoIHRvIHNlbWFudGljIHZlcnNpb25pbmcuCisKKyMjIDAuOC4zCisgKiBGaXg6IHNpYmxpbmdzIGNhbGN1bGF0aW9uIGJ1ZyBpbiBgYXBwZW5kQ2hpbGRgIGluIGBodG1scGFyc2VyMmAgdHJlZSBhZGFwdGVyLgorCisjIyAwLjguMQorICogQWRkOiBbVHJlZVNlcmlhbGl6ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvI2NsYXNzLXNlcmlhbGl6ZXIpLgorICogQWRkOiBbaHRtbHBhcnNlcjIgdHJlZSBhZGFwdGVyXShodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1LyMtdHJlZWFkYXB0ZXJzaHRtbHBhcnNlcjIpLgorCisjIyAwLjYuMQorICogRml4OiBpbmNvcnJlY3QgYDxtZW51aXRlbT5gIGhhbmRsaW5nIGluIGA8Ym9keT5gLgorCisjIyAwLjYuMAorICogSW5pdGlhbCByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvTElDRU5TRSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU1ODFiZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L0xJQ0VOU0UKQEAgLTAsMCArMSwxOSBAQAorQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgSXZhbiBOaWt1bGluIChpZmFhYW5AZ21haWwuY29tKQorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KK1RIRSBTT0ZUV0FSRS4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L1JFQURNRS5jaHJvbWl1bSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L1JFQURNRS5jaHJvbWl1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWQ2YjBhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvUkVBRE1FLmNocm9taXVtCkBAIC0wLDAgKzEsMTcgQEAKK05hbWU6IHBhcnNlNQorU2hvcnQgTmFtZTogcGFyc2U1CitVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUKK1ZlcnNpb246IDAKK1JldmlzaW9uOiBiN2YzZTNmYWE1NmU0OWU3Mjk4NTc2ZTRhOTA5OWEzODFmMGU4NjcwCitEYXRlOiBKdW5lIDMwLCAyMDE1CitMaWNlbnNlOiBNSVQKK0xpY2Vuc2UgRmlsZTogTk9UX1NISVBQRUQKK1NlY3VyaXR5IENyaXRpY2FsOiBubworCitEZXNjcmlwdGlvbjoKK0hUTUwgcGFyc2VyIGluIGphdmFzY3JpcHQuCisKK0xvY2FsIE1vZGlmaWNhdGlvbnM6CitBZGQgcGFyc2U1X2xpYi5qcyB0byBleHBvcnQgcGFyc2U1J3MgZnVuY3Rpb25hbGl0eSB0byBnbG9iYWwgZW52aXJvbm1lbnQuCitwYXJzZTUuanMgaXMgdGhlIGJ1bmRsZSBmaWxlIGNyZWF0ZWQgYnkgcnVubmluZzoKKyIkIGJyb3dzZXJpZnkgcGFyc2U1X2xpYi5qcyAtbyBwYXJzZTUuanMiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9SRUFETUUubWQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTliZTk0YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L1JFQURNRS5tZApAQCAtMCwwICsxLDI0NyBAQAorPHAgYWxpZ249ImNlbnRlciI+CisgIDxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9tYXN0ZXIvbG9nby5wbmciIGFsdD0icGFyc2U1IiAvPgorPC9wPgorCitbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vYXBpLnRyYXZpcy1jaS5vcmcvaW5pa3VsaW4vcGFyc2U1LnN2ZyldKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9pbmlrdWxpbi9wYXJzZTUpCitbIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvcGFyc2U1LnN2ZyldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3BhcnNlNSkKKworKldIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLWNvbXBsaWFudCwgZmFzdCBhbmQgcmVhZHkgZm9yIHByb2R1Y3Rpb24gSFRNTCBwYXJzaW5nL3NlcmlhbGl6YXRpb24gdG9vbHNldCBmb3IgTm9kZSBhbmQgaW8uanMuKgorCitJIG5lZWRlZCBmYXN0IGFuZCByZWFkeSBmb3IgcHJvZHVjdGlvbiBIVE1MIHBhcnNlciwgd2hpY2ggd2lsbCBwYXJzZSBIVE1MIGFzIGEgbW9kZXJuIGJyb3dzZXIncyBwYXJzZXIuCitFeGlzdGluZyBzb2x1dGlvbnMgd2VyZSBlaXRoZXIgdG9vIHNsb3cgb3IgdGhlaXIgb3V0cHV0IHdhcyB0b28gaW5hY2N1cmF0ZS4gU28sIHRoaXMgaXMgaG93IHBhcnNlNSB3YXMgYm9ybi4KKworKipJbmNsdWRlZCB0b29sczoqKgorKiAgIFtQYXJzZXJdKCNjbGFzcy1wYXJzZXIpIC0gSFRNTCB0byBET00tdHJlZSBwYXJzZXIuCisqICAgW1NpbXBsZUFwaVBhcnNlcl0oI2NsYXNzLXNpbXBsZWFwaXBhcnNlcikgLSBbU0FYXShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NpbXBsZV9BUElfZm9yX1hNTCktc3R5bGUgcGFyc2VyIGZvciBIVE1MLgorKiAgIFtTZXJpYWxpemVyXSgjY2xhc3Mtc2VyaWFsaXplcikgLSBET00tdHJlZSB0byBIVE1MIGNvZGUgc2VyaWFsaXplci4KKworIyMgSW5zdGFsbAorYGBgCiskIG5wbSBpbnN0YWxsIHBhcnNlNQorYGBgCisKKworIyMgVXNhZ2UKK2BgYGpzCit2YXIgUGFyc2VyID0gcmVxdWlyZSgncGFyc2U1JykuUGFyc2VyOworCisvL0luc3RhbnRpYXRlIHBhcnNlcgordmFyIHBhcnNlciA9IG5ldyBQYXJzZXIoKTsKKworLy9UaGVuIGZlZWQgaXQgd2l0aCBhbiBIVE1MIGRvY3VtZW50Cit2YXIgZG9jdW1lbnQgPSBwYXJzZXIucGFyc2UoJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+PC9odG1sPicpCisKKy8vTm93IGxldCdzIHBhcnNlIEhUTUwtc25pcHBldAordmFyIGZyYWdtZW50ID0gcGFyc2VyLnBhcnNlRnJhZ21lbnQoJzx0aXRsZT5QYXJzZTUgaXMgJiMxMDI7JiMxMTc7JiM5OTsmIzEwNztpbmcgYXdlc29tZSE8L3RpdGxlPjxoMT40MjwvaDE+Jyk7CisKK2BgYAorCisjIyBJcyBpdCBmYXN0PworQ2hlY2sgb3V0IFt0aGlzIGJlbmNobWFya10oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL25vZGUtaHRtbC1wYXJzZXItYmVuY2gpLgorCitgYGAKK1N0YXJ0aW5nIGJlbmNobWFyay4gRmFzdGVuIHlvdXIgc2VhdGJlbHRzLi4uCitodG1sNSAoaHR0cHM6Ly9naXRodWIuY29tL2FyZWRyaWRlbC9odG1sNSkgeCAwLjE4IG9wcy9zZWMgwrE1LjkyJSAoNSBydW5zIHNhbXBsZWQpCitodG1scGFyc2VyIChodHRwczovL2dpdGh1Yi5jb20vdGF1dG9sb2dpc3RpY3Mvbm9kZS1odG1scGFyc2VyLykgeCAzLjgzIG9wcy9zZWMgwrE0Mi40MyUgKDE0IHJ1bnMgc2FtcGxlZCkKK2h0bWxwYXJzZXIyIChodHRwczovL2dpdGh1Yi5jb20vZmI1NS9odG1scGFyc2VyMikgeCA0LjA1IG9wcy9zZWMgwrEzOS4yNyUgKDE1IHJ1bnMgc2FtcGxlZCkKK3BhcnNlNSAoaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNSkgeCAzLjA0IG9wcy9zZWMgwrE1MS44MSUgKDEzIHJ1bnMgc2FtcGxlZCkKK0Zhc3Rlc3QgaXMgaHRtbHBhcnNlcjIgKGh0dHBzOi8vZ2l0aHViLmNvbS9mYjU1L2h0bWxwYXJzZXIyKSxwYXJzZTUgKGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUpCitgYGAKKworU28sIHBhcnNlNSBpcyBhcyBmYXN0IGFzIHNpbXBsZSBzcGVjaWZpY2F0aW9uIGluY29tcGF0aWJsZSBwYXJzZXJzIGFuZCB+MTUtdGltZXMoISkgZmFzdGVyIHRoYW4gdGhlIGN1cnJlbnQgc3BlY2lmaWNhdGlvbiBjb21wYXRpYmxlIHBhcnNlciBhdmFpbGFibGUgZm9yIHRoZSBub2RlLgorCisKKyMjIEFQSSByZWZlcmVuY2UKKworIyMjIEVudW06IFRyZWVBZGFwdGVycworUHJvdmlkZXMgYnVpbHQtaW4gdHJlZSBhZGFwdGVycyB3aGljaCBjYW4gYmUgcGFzc2VkIGFzIGFuIG9wdGlvbmFsIGFyZ3VtZW50IHRvIHRoZSBgUGFyc2VyYCBhbmQgYFNlcmlhbGl6ZXJgIGNvbnN0cnVjdG9ycy4KKworIyMjIyAmYnVsbDsgVHJlZUFkYXB0ZXJzLmRlZmF1bHQKK0RlZmF1bHQgdHJlZSBmb3JtYXQgZm9yIHBhcnNlNS4KKworCisjIyMjICZidWxsOyBUcmVlQWRhcHRlcnMuaHRtbHBhcnNlcjIKK1F1aXRlIHBvcHVsYXIgW2h0bWxwYXJzZXIyXShodHRwczovL2dpdGh1Yi5jb20vZmI1NS9odG1scGFyc2VyMikgdHJlZSBmb3JtYXQgKGUuZy4gdXNlZCBpbiBbY2hlZXJpb10oaHR0cHM6Ly9naXRodWIuY29tL01hdHRoZXdNdWVsbGVyL2NoZWVyaW8pIGFuZCBbanNkb21dKGh0dHBzOi8vZ2l0aHViLmNvbS90bXB2YXIvanNkb20pKS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworIyMjIENsYXNzOiBQYXJzZXIKK1Byb3ZpZGVzIEhUTUwgcGFyc2luZyBmdW5jdGlvbmFsaXR5LgorCisjIyMjICZidWxsOyBQYXJzZXIuY3RvcihbdHJlZUFkYXB0ZXIsIG9wdGlvbnNdKQorQ3JlYXRlcyBuZXcgcmV1c2FibGUgaW5zdGFuY2Ugb2YgdGhlIGBQYXJzZXJgLiBPcHRpb25hbCBgdHJlZUFkYXB0ZXJgIGFyZ3VtZW50IHNwZWNpZmllcyByZXN1bHRpbmcgdHJlZSBmb3JtYXQuIElmIGB0cmVlQWRhcHRlcmAgYXJndW1lbnQgaXMgbm90IHNwZWNpZmllZCwgYGRlZmF1bHRgIHRyZWUgYWRhcHRlciB3aWxsIGJlIHVzZWQuCisKK2BvcHRpb25zYCBvYmplY3QgcHJvdmlkZXMgdGhlIHBhcnNpbmcgYWxnb3JpdGhtIG1vZGlmaWNhdGlvbnM6CisjIyMjIyAgb3B0aW9ucy5kZWNvZGVIdG1sRW50aXRpZXMKK0RlY29kZSBIVE1MLWVudGl0aWVzIGxpa2UgYCZhbXA7YCwgYCZuYnNwO2AsIGV0Yy4gIERlZmF1bHQ6IGB0cnVlYC4gKipXYXJuaW5nOioqIGRpc2FibGluZyB0aGlzIG9wdGlvbiBtYXkgY2F1c2Ugb3V0cHV0IHdoaWNoIGlzIG5vdCBjb25mb3JtIEhUTUw1IHNwZWNpZmljYXRpb24uCisjIyMjIyAgb3B0aW9ucy5sb2NhdGlvbkluZm8KK0VuYWJsZXMgc291cmNlIGNvZGUgbG9jYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBub2Rlcy4gRGVmYXVsdDogYGZhbHNlYC4gV2hlbiBlbmFibGVkLCBlYWNoIG5vZGUgKGV4Y2VwdCByb290IG5vZGUpIGhhcyBgX19sb2NhdGlvbmAgcHJvcGVydHksIHdoaWNoIGNvbnRhaW5zIGBzdGFydGAgYW5kIGBlbmRgIGluZGljZXMgb2YgdGhlIG5vZGUgaW4gdGhlIHNvdXJjZSBjb2RlLiBJZiBlbGVtZW50IHdhcyBpbXBsaWNpdGx5IGNyZWF0ZWQgYnkgdGhlIHBhcnNlciBpdCdzIGBfX2xvY2F0aW9uYCBwcm9wZXJ0eSB3aWxsIGJlIGBudWxsYC4gSW4gY2FzZSB0aGUgbm9kZSBpcyBub3QgYW4gZW1wdHkgZWxlbWVudCwgYF9fbG9jYXRpb25gIGhhcyB0d28gYWRkaXRpb24gcHJvcGVydGllcyBgc3RhcnRUYWdgIGFuZCBgZW5kVGFnYCB3aGljaCBjb250YWluIGxvY2F0aW9uIGluZm9ybWF0aW9uIGZvciBpbmRpdmlkdWFsIHRhZ3MgaW4gYSBmYXNoaW9uIHNpbWlsYXIgdG8gYF9fbG9jYXRpb25gIHByb3BlcnR5LgorCisqRXhhbXBsZToqCitgYGBqcwordmFyIHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpOworCisvL0luc3RhbnRpYXRlIG5ldyBwYXJzZXIgd2l0aCBkZWZhdWx0IHRyZWUgYWRhcHRlcgordmFyIHBhcnNlcjEgPSBuZXcgcGFyc2U1LlBhcnNlcigpOworCisvL0luc3RhbnRpYXRlIG5ldyBwYXJzZXIgd2l0aCBodG1scGFyc2VyMiB0cmVlIGFkYXB0ZXIKK3ZhciBwYXJzZXIyID0gbmV3IHBhcnNlNS5QYXJzZXIocGFyc2U1LlRyZWVBZGFwdGVycy5odG1scGFyc2VyMik7CitgYGAKKworCisKKyMjIyMgJmJ1bGw7IFBhcnNlci5wYXJzZShodG1sKQorUGFyc2VzIHNwZWNpZmllZCBgaHRtbGAgc3RyaW5nLiBSZXR1cm5zIGBkb2N1bWVudGAgbm9kZS4KKworKkV4YW1wbGU6KgorYGBganMKK3ZhciBkb2N1bWVudCA9IHBhcnNlci5wYXJzZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT48L2h0bWw+Jyk7CitgYGAKKworCisjIyMjICZidWxsOyBQYXJzZXIucGFyc2VGcmFnbWVudChodG1sRnJhZ21lbnQsIFtjb250ZXh0RWxlbWVudF0pCitQYXJzZXMgZ2l2ZW4gYGh0bWxGcmFnbWVudGAuIFJldHVybnMgYGRvY3VtZW50RnJhZ21lbnRgIG5vZGUuIE9wdGlvbmFsIGBjb250ZXh0RWxlbWVudGAgYXJndW1lbnQgc3BlY2lmaWVzIGNvbnRleHQgaW4gd2hpY2ggZ2l2ZW4gYGh0bWxGcmFnbWVudGAgd2lsbCBiZSBwYXJzZWQgKGNvbnNpZGVyIGl0IGFzIHNldHRpbmcgYGNvbnRleHRFbGVtZW50LmlubmVySFRNTGAgcHJvcGVydHkpLiBJZiBgY29udGV4dEVsZW1lbnRgIGFyZ3VtZW50IGlzIG5vdCBzcGVjaWZpZWQgdGhlbiBgPHRlbXBsYXRlPmAgZWxlbWVudCB3aWxsIGJlIHVzZWQgYXMgYSBjb250ZXh0IGFuZCBmcmFnbWVudCB3aWxsIGJlIHBhcnNlZCBpbiAnZm9yZ2l2aW5nJyBtYW5uZXIuCisKKypFeGFtcGxlOioKK2BgYGpzCit2YXIgZG9jdW1lbnRGcmFnbWVudCA9IHBhcnNlci5wYXJzZUZyYWdtZW50KCc8dGFibGU+PC90YWJsZT4nKTsKKworLy9QYXJzZSBodG1sIGZyYWdtZW50IGluIGNvbnRleHQgb2YgdGhlIHBhcnNlZCA8dGFibGU+IGVsZW1lbnQKK3ZhciB0ckZyYWdtZW50ID0gcGFyc2VyLnBhcnNlRnJhZ21lbnQoJzx0cj48dGQ+U2hha2UgaXQsIGJhYnk8L3RkPjwvdHI+JywgZG9jdW1lbnRGcmFnbWVudC5jaGlsZE5vZGVzWzBdKTsKK2BgYAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisjIyMgQ2xhc3M6IFNpbXBsZUFwaVBhcnNlcgorUHJvdmlkZXMgW1NBWF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU2ltcGxlX0FQSV9mb3JfWE1MKS1zdHlsZSBIVE1MIHBhcnNpbmcgZnVuY3Rpb25hbGl0eS4KKworIyMjIyAmYnVsbDsgU2ltcGxlQXBpUGFyc2VyLmN0b3IoaGFuZGxlcnMsIFtvcHRpb25zXSkKK0NyZWF0ZXMgbmV3IHJldXNhYmxlIGluc3RhbmNlIG9mIHRoZSBgU2ltcGxlQXBpUGFyc2VyYC4gYGhhbmRsZXJzYCBhcmd1bWVudCBzcGVjaWZpZXMgb2JqZWN0IHRoYXQgY29udGFpbnMgcGFyc2VyJ3MgZXZlbnQgaGFuZGxlcnMuIFBvc3NpYmxlIGV2ZW50cyBhbmQgdGhlaXIgc2lnbmF0dXJlcyBhcmUgc2hvd24gaW4gdGhlIGV4YW1wbGUuCisKK2BvcHRpb25zYCBvYmplY3QgcHJvdmlkZXMgdGhlIHBhcnNpbmcgYWxnb3JpdGhtIG1vZGlmaWNhdGlvbnM6CisjIyMjIyBvcHRpb25zLmRlY29kZUh0bWxFbnRpdGllcworRGVjb2RlIEhUTUwtZW50aXRpZXMgbGlrZSBgJmFtcDtgLCBgJm5ic3A7YCwgZXRjLiAgRGVmYXVsdDogYHRydWVgLiAqKldhcm5pbmc6KiogZGlzYWJsaW5nIHRoaXMgb3B0aW9uIG1heSBjYXVzZSBvdXRwdXQgd2hpY2ggaXMgbm90IGNvbmZvcm0gSFRNTDUgc3BlY2lmaWNhdGlvbi4KKyMjIyMjIG9wdGlvbnMubG9jYXRpb25JbmZvCitFbmFibGVzIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgdG9rZW5zLiBEZWZhdWx0OiBgZmFsc2VgLiBXaGVuIGVuYWJsZWQsIGVhY2ggbm9kZSBoYW5kbGVyIHJlY2VpdmVzIGBsb2NhdGlvbmAgb2JqZWN0IGFzIGl0J3MgbGFzdCBhcmd1bWVudC4gYGxvY2F0aW9uYCBvYmplY3QgY29udGFpbnMgYHN0YXJ0YCBhbmQgYGVuZGAgaW5kaWNlcyBvZiB0aGUgdG9rZW4gaW4gdGhlIHNvdXJjZSBjb2RlLgorCisKKypFeGFtcGxlOioKK2BgYGpzCit2YXIgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7CisKK3ZhciBwYXJzZXIgPSBuZXcgcGFyc2U1LlNpbXBsZUFwaVBhcnNlcih7CisgICAgZG9jdHlwZTogZnVuY3Rpb24obmFtZSwgcHVibGljSWQsIHN5c3RlbUlkIC8qLCBbbG9jYXRpb25dICovKSB7CisgICAgICAgIC8vSGFuZGxlIGRvY3R5cGUgaGVyZQorICAgIH0sCisKKyAgICBzdGFydFRhZzogZnVuY3Rpb24odGFnTmFtZSwgYXR0cnMsIHNlbGZDbG9zaW5nIC8qLCBbbG9jYXRpb25dICovKSB7CisgICAgICAgIC8vSGFuZGxlIHN0YXJ0IHRhZ3MgaGVyZQorICAgIH0sCisKKyAgICBlbmRUYWc6IGZ1bmN0aW9uKHRhZ05hbWUgLyosIFtsb2NhdGlvbl0gKi8pIHsKKyAgICAgICAgLy9IYW5kbGUgZW5kIHRhZ3MgaGVyZQorICAgIH0sCisKKyAgICB0ZXh0OiBmdW5jdGlvbih0ZXh0IC8qLCBbbG9jYXRpb25dICovKSB7CisgICAgICAgIC8vSGFuZGxlIHRleHRzIGhlcmUKKyAgICB9LAorCisgICAgY29tbWVudDogZnVuY3Rpb24odGV4dCAvKiwgW2xvY2F0aW9uXSAqLykgeworICAgICAgICAvL0hhbmRsZSBjb21tZW50cyBoZXJlCisgICAgfQorfSk7CitgYGAKKworIyMjIyAmYnVsbDsgU2ltcGxlQXBpUGFyc2VyLnBhcnNlKGh0bWwpCitSYWlzZXMgcGFyc2VyIGV2ZW50cyBmb3IgdGhlIGdpdmVuIGBodG1sYC4KKworKkV4YW1wbGU6KgorYGBganMKK3ZhciBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTsKKwordmFyIHBhcnNlciA9IG5ldyBwYXJzZTUuU2ltcGxlQXBpUGFyc2VyKHsKKyAgICB0ZXh0OiBmdW5jdGlvbih0ZXh0KSB7CisgICAgICAgIGNvbnNvbGUubG9nKHRleHQpOworICAgIH0KK30pOworCitwYXJzZXIucGFyc2UoJzxib2R5PllvITwvYm9keT4nKTsKK2BgYAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyMjIENsYXNzOiBTZXJpYWxpemVyCitQcm92aWRlcyB0cmVlLXRvLUhUTUwgc2VyaWFsaXphdGlvbiBmdW5jdGlvbmFsaXR5LgorKipOb3RlOioqIHByaW9yIHRvIHYxLjIuMCB0aGlzIGNsYXNzIHdhcyBjYWxsZWQgYFRyZWVTZXJpYWxpemVyYC4gSG93ZXZlciwgaXQncyBzdGlsbCBhY2Nlc3NpYmxlIGFzIGBwYXJzZTUuVHJlZVNlcmlhbGl6ZXJgIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorCisjIyMjICZidWxsOyBTZXJpYWxpemVyLmN0b3IoW3RyZWVBZGFwdGVyLCBvcHRpb25zXSkKK0NyZWF0ZXMgbmV3IHJldXNhYmxlIGluc3RhbmNlIG9mIHRoZSBgU2VyaWFsaXplcmAuIE9wdGlvbmFsIGB0cmVlQWRhcHRlcmAgYXJndW1lbnQgc3BlY2lmaWVzIGlucHV0IHRyZWUgZm9ybWF0LiBJZiBgdHJlZUFkYXB0ZXJgIGFyZ3VtZW50IGlzIG5vdCBzcGVjaWZpZWQsIGBkZWZhdWx0YCB0cmVlIGFkYXB0ZXIgd2lsbCBiZSB1c2VkLgorCitgb3B0aW9uc2Agb2JqZWN0IHByb3ZpZGVzIHRoZSBzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBtb2RpZmljYXRpb25zOgorIyMjIyMgb3B0aW9ucy5lbmNvZGVIdG1sRW50aXRpZXMKK0hUTUwtZW5jb2RlIGNoYXJhY3RlcnMgbGlrZSBgPGAsIGA+YCwgYCZgLCBldGMuICBEZWZhdWx0OiBgdHJ1ZWAuICAqKldhcm5pbmc6KiogZGlzYWJsaW5nIHRoaXMgb3B0aW9uIG1heSBjYXVzZSBvdXRwdXQgd2hpY2ggaXMgbm90IGNvbmZvcm0gSFRNTDUgc3BlY2lmaWNhdGlvbi4KKworCisqRXhhbXBsZToqCitgYGBqcwordmFyIHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpOworCisvL0luc3RhbnRpYXRlIG5ldyBzZXJpYWxpemVyIHdpdGggZGVmYXVsdCB0cmVlIGFkYXB0ZXIKK3ZhciBzZXJpYWxpemVyMSA9IG5ldyBwYXJzZTUuU2VyaWFsaXplcigpOworCisvL0luc3RhbnRpYXRlIG5ldyBzZXJpYWxpemVyIHdpdGggaHRtbHBhcnNlcjIgdHJlZSBhZGFwdGVyCit2YXIgc2VyaWFsaXplcjIgPSBuZXcgcGFyc2U1LlNlcmlhbGl6ZXIocGFyc2U1LlRyZWVBZGFwdGVycy5odG1scGFyc2VyMik7CitgYGAKKworCisjIyMjICZidWxsOyBTZXJpYWxpemVyLnNlcmlhbGl6ZShub2RlKQorU2VyaWFsaXplcyB0aGUgZ2l2ZW4gYG5vZGVgLiBSZXR1cm5zIEhUTUwgc3RyaW5nLgorCisqRXhhbXBsZToqCitgYGBqcwordmFyIGRvY3VtZW50ID0gcGFyc2VyLnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTsKKworLy9TZXJpYWxpemUgZG9jdW1lbnQKK3ZhciBodG1sID0gc2VyaWFsaXplci5zZXJpYWxpemUoZG9jdW1lbnQpOworCisvL1NlcmlhbGl6ZSA8Ym9keT4gZWxlbWVudCBjb250ZW50Cit2YXIgYm9keUlubmVySHRtbCA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplKGRvY3VtZW50LmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1sxXSk7CitgYGAKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworIyMgVGVzdGluZworVGVzdCBkYXRhIGlzIGFkb3B0ZWQgZnJvbSBbaHRtbDVsaWIgcHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL2h0bWw1bGliKS4gUGFyc2VyIGlzIGNvdmVyZWQgYnkgbW9yZSB0aGFuIDgwMDAgdGVzdCBjYXNlcy4KK1RvIHJ1biB0ZXN0czoKK2BgYAorJCBucG0gdGVzdAorYGBgCisKKworIyMgQ3VzdG9tIHRyZWUgYWRhcHRlcgorWW91IGNhbiBjcmVhdGUgYSBjdXN0b20gdHJlZSBhZGFwdGVyIHNvIHBhcnNlNSBjYW4gd29yayB3aXRoIHlvdXIgb3duIERPTS10cmVlIGltcGxlbWVudGF0aW9uLgorSnVzdCBwYXNzIHlvdXIgYWRhcHRlciBpbXBsZW1lbnRhdGlvbiB0byB0aGUgcGFyc2VyJ3MgY29uc3RydWN0b3IgYXMgYW4gYXJndW1lbnQ6CisKK2BgYGpzCit2YXIgUGFyc2VyID0gcmVxdWlyZSgncGFyc2U1JykuUGFyc2VyOworCit2YXIgbXlUcmVlQWRhcHRlciA9IHsKKyAgIC8vQWRhcHRlciBtZXRob2RzLi4uCit9OworCisvL0luc3RhbnRpYXRlIHBhcnNlcgordmFyIHBhcnNlciA9IG5ldyBQYXJzZXIobXlUcmVlQWRhcHRlcik7CitgYGAKKworU2FtcGxlIGltcGxlbWVudGF0aW9uIGNhbiBiZSBmb3VuZCBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL21hc3Rlci9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzKS4KK1RoZSBjdXN0b20gdHJlZSBhZGFwdGVyIHNob3VsZCBpbXBsZW1lbnQgYWxsIG1ldGhvZHMgZXhwb3NlZCB2aWEgYGV4cG9ydHNgIGluIHRoZSBzYW1wbGUgaW1wbGVtZW50YXRpb24uCisKKyMjIFF1ZXN0aW9ucyBvciBzdWdnZXN0aW9ucz8KK0lmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMsIHBsZWFzZSBmZWVsIGZyZWUgdG8gY3JlYXRlIGFuIGlzc3VlIFtoZXJlIG9uIGdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMpLgorCisKKyMjIEF1dGhvcgorW0l2YW4gTmlrdWxpbl0oaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluKSAoaWZhYWFuQGdtYWlsLmNvbSkKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2JlbmNobWFyay9SRUFETUUubWQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9iZW5jaG1hcmsvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3OTBkZTQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9iZW5jaG1hcmsvUkVBRE1FLm1kCkBAIC0wLDAgKzEsOSBAQAorIyBwYXJzZTUgcmVncmVzc2lvbiBiZW5jaG1hcmsKKworVGhpcyBiZW5jaG1hcmsgY29tcGFyZXMgcGVyZm9ybWFuY2Ugb2YgdGhlIHdvcmtpbmcgY29weSB3aXRoIHRoZSB1cHN0cmVhbSB2ZXJzaW9uLgorCisjIyBVc2FnZQorYGBgCiskIGNkIGJlbmNobWFyay8KKyQgbnBtIGluc3RhbGwgJiYgbnBtIHRlc3QKK2BgYApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvYmVuY2htYXJrL2luZGV4LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvYmVuY2htYXJrL2luZGV4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNTAwMjIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9iZW5jaG1hcmsvaW5kZXguanMKQEAgLTAsMCArMSwzNCBAQAordmFyIEJlbmNobWFyayA9IHJlcXVpcmUoJ2JlbmNobWFyaycpLAorICAgIHVwc3RyZWFtID0gcmVxdWlyZSgncGFyc2U1JyksCisgICAgd29ya2luZ0NvcHkgPSByZXF1aXJlKCcuLi9pbmRleCcpLAorICAgIHBhdGggPSByZXF1aXJlKCdwYXRoJyksCisgICAgZnMgPSByZXF1aXJlKCdmcycpOworCit2YXIgdGVzdEh0bWwgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJy4vc3BlYy5odG1sJykpLnRvU3RyaW5nKCksCisgICAgd2NQYXJzZXIgPSBuZXcgd29ya2luZ0NvcHkuUGFyc2VyKCksCisgICAgdXNQYXJzZXIgPSBuZXcgdXBzdHJlYW0uUGFyc2VyKCk7CisKK25ldyBCZW5jaG1hcmsuU3VpdGUoKQorICAgIC5hZGQoJ1dvcmtpbmcgY29weScsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgd2NQYXJzZXIucGFyc2UodGVzdEh0bWwpOworICAgIH0pCisKKyAgICAuYWRkKCdVcHN0cmVhbScsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdXNQYXJzZXIucGFyc2UodGVzdEh0bWwpOworICAgIH0pCisKKyAgICAub24oJ3N0YXJ0JywgZnVuY3Rpb24gKCkgeworICAgICAgICBjb25zb2xlLmxvZygnQmVuY2htYXJraW5nLi4uJykKKyAgICB9KQorCisgICAgLm9uKCdjeWNsZScsIGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBjb25zb2xlLmxvZyhldmVudC50YXJnZXQudG9TdHJpbmcoKSk7CisgICAgfSkKKworICAgIC5vbignY29tcGxldGUnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCdGYXN0ZXN0IGlzICcgKyB0aGlzLmZpbHRlcignZmFzdGVzdCcpLnBsdWNrKCduYW1lJykpOworCisgICAgICAgIGNvbnNvbGUubG9nKCdXb3JraW5nIGNvcHkgaXMgeCcgKyAodGhpc1swXS5oeiAvIHRoaXNbMV0uaHopLnRvRml4ZWQoMikgKyAnIHRpbWVzIGZhc3RlciB2cyB1cHN0cmVhbS4nKTsKKyAgICB9KQorCisgICAgLnJ1bigpOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvYmVuY2htYXJrL3BhY2thZ2UuanNvbiBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2JlbmNobWFyay9wYWNrYWdlLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY4NzhjMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2JlbmNobWFyay9wYWNrYWdlLmpzb24KQEAgLTAsMCArMSwxOCBAQAoreworICAgICJuYW1lIjogImJlbmNobWFyayIsCisgICAgInZlcnNpb24iOiAiMS4wLjAiLAorICAgICJkZXNjcmlwdGlvbiI6ICJwYXJzZTUgcmVncmVzc2lvbiBiZW5jaG1hcmsiLAorICAgICJtYWluIjogImluZGV4LmpzIiwKKyAgICAic2NyaXB0cyI6IHsKKyAgICAgICAgInRlc3QiOiAibm9kZSBpbmRleCIKKyAgICB9LAorICAgICJhdXRob3IiOiAiSXZhbiBOaWt1bGluIDxpZmFhYW5AZ21haWwuY29tPiIsCisgICAgImxpY2Vuc2UiOiAiTUlUIiwKKyAgICAiZGVwZW5kZW5jaWVzIjogeworICAgICAgICAiYmVuY2htYXJrIjogIn4xLjAuMCIsCisgICAgICAgICJwYXJzZTUiOiAiKiIKKyAgICB9LAorICAgICJvcHRpb25hbERlcGVuZGVuY2llcyI6IHsKKyAgICAgICAgIm1pY3JvdGltZSI6ICJ+MC40LjAiCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvYmVuY2htYXJrL3NwZWMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2JlbmNobWFyay9zcGVjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk5ODU5MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2JlbmNobWFyay9zcGVjLmh0bWwKQEAgLTAsMCArMSw3MDMyIEBACisKKzwhRE9DVFlQRSBodG1sPjxodG1sIGNsYXNzPXNwbGl0IGRhdGEtcmV2aXNpb249IiRSZXZpc2lvbjogODg0NCAkIiBsYW5nPWVuLUdCLXgtaGl4aWU+PHRpdGxlPkhUTUwgU3RhbmRhcmQ8L3RpdGxlPjxzY3JpcHQ+CisgICB2YXIgbG9hZFRpbWVyID0gbmV3IERhdGUoKTsKKyAgIHZhciBjdXJyZW50X3JldmlzaW9uID0gInIiICsgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1yZXZpc2lvbicpLnN1YnN0cigxMSk7CisgICBjdXJyZW50X3JldmlzaW9uID0gY3VycmVudF9yZXZpc2lvbi5zdWJzdHIoMCwgY3VycmVudF9yZXZpc2lvbi5sZW5ndGggLSAyKTsKKyAgIHZhciBsYXN0X2tub3duX3JldmlzaW9uID0gY3VycmVudF9yZXZpc2lvbjsKKyAgIGZ1bmN0aW9uIEYoIC8qIHZhcmFyZ3MuLi4gKi8pIHsKKyAgICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggKz0gMSkgeworICAgICAgIGlmIChhcmd1bWVudHNbaW5kZXhdIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKEYuYXBwbHkodGhpcywgYXJndW1lbnRzW2luZGV4XSkpOworICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50c1tpbmRleF0gPT0gJ3N0cmluZycpIHsKKyAgICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGFyZ3VtZW50c1tpbmRleF0pKTsKKyAgICAgICB9IGVsc2UgeworICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoYXJndW1lbnRzW2luZGV4XSk7CisgICAgICAgfQorICAgICB9CisgICAgIHJldHVybiBmcmFnbWVudDsKKyAgIH0KKyAgIGZ1bmN0aW9uIEUobmFtZSwgLyogb3B0aW9uYWwgKi8gYXR0cmlidXRlcyAvKiwgdmFyYXJncy4uLiAqLykgeworICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgIHZhciBpbmRleCA9IDE7CisgICAgIGlmICgoYXJndW1lbnRzLmxlbmd0aCA+IDEpICYmICh0eXBlb2YgYXR0cmlidXRlcyAhPSAnc3RyaW5nJykgJiYKKyAgICAgICAgICghKGF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBOb2RlKSkgJiYgKCEoYXR0cmlidXRlcyBpbnN0YW5jZW9mIEFycmF5KSkpIHsKKyAgICAgICBmb3IgKHZhciBhdHROYW1lIGluIGF0dHJpYnV0ZXMpIHsKKyAgICAgICAgIGlmICh0eXBlb2YgYXR0cmlidXRlc1thdHROYW1lXSA9PSAnYm9vbGVhbicpIHsKKyAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXNbYXR0TmFtZV0pCisgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0TmFtZSwgJycpOworICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXR0cmlidXRlc1thdHROYW1lXSA9PSAnZnVuY3Rpb24nKSB7CisgICAgICAgICAgIGVsZW1lbnRbYXR0TmFtZV0gPSBhdHRyaWJ1dGVzW2F0dE5hbWVdOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0TmFtZSwgYXR0cmlidXRlc1thdHROYW1lXSk7CisgICAgICAgICB9CisgICAgICAgfQorICAgICAgIGluZGV4ID0gMjsKKyAgICAgfQorICAgICBmb3IgKDsgaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoOyBpbmRleCArPSAxKSB7CisgICAgICAgaWYgKGFyZ3VtZW50c1tpbmRleF0gaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChGLmFwcGx5KHRoaXMsIGFyZ3VtZW50c1tpbmRleF0pKTsKKyAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHNbaW5kZXhdID09ICdzdHJpbmcnKSB7CisgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGFyZ3VtZW50c1tpbmRleF0pKTsKKyAgICAgICB9IGVsc2UgeworICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChhcmd1bWVudHNbaW5kZXhdKTsKKyAgICAgICB9CisgICAgIH0KKyAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICB9CisgICBmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgeworICAgICB2YXIgcGFyYW1zID0gbG9jYXRpb24uc2VhcmNoLnN1YnN0cigxKS5zcGxpdCgiJiIpOworICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgcGFyYW1zLmxlbmd0aDsgaW5kZXgrKykgeworICAgICAgIGlmIChwYXJhbXNbaW5kZXhdID09IG5hbWUpCisgICAgICAgICByZXR1cm4gIjEiOworICAgICAgIHZhciBkYXRhID0gcGFyYW1zW2luZGV4XS5zcGxpdCgiPSIpOworICAgICAgIGlmIChkYXRhWzBdID09IG5hbWUpCisgICAgICAgICByZXR1cm4gdW5lc2NhcGUoZGF0YVsxXSk7CisgICAgIH0KKyAgICAgdmFyIGNvb2tpZXMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoIjsgIik7CisgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBjb29raWVzLmxlbmd0aDsgaW5kZXgrKykgeworICAgICAgIHZhciBkYXRhID0gY29va2llc1tpbmRleF0uc3BsaXQoIj0iKTsKKyAgICAgICBpZiAoZGF0YVswXSA9PSBuYW1lKQorICAgICAgICAgcmV0dXJuIHVuZXNjYXBlKGRhdGFbMV0pOworICAgICB9CisgICAgIHJldHVybiBudWxsOworICAgfQorICAgdmFyIGN1cnJlbnRBbGVydDsKKyAgIHZhciBjdXJyZW50QWxlcnRUaW1lb3V0OworICAgZnVuY3Rpb24gc2hvd0FsZXJ0KHMsIGhyZWYpIHsKKyAgICAgaWYgKCFjdXJyZW50QWxlcnQpIHsKKyAgICAgICBjdXJyZW50QWxlcnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICBjdXJyZW50QWxlcnQuaWQgPSAnYWxlcnQnOworICAgICAgIHZhciB4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CisgICAgICAgeC50ZXh0Q29udGVudCA9ICdcdTI1NzMnOworICAgICAgIHgub25jbGljayA9IGNsb3NlQWxlcnQyOworICAgICAgIGN1cnJlbnRBbGVydC5hcHBlbmRDaGlsZCh4KTsKKyAgICAgICBjdXJyZW50QWxlcnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAgICAgICBjdXJyZW50QWxlcnQub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICBjbGVhclRpbWVvdXQoY3VycmVudEFsZXJ0VGltZW91dCk7CisgICAgICAgICBjdXJyZW50QWxlcnQuY2xhc3NOYW1lID0gJyc7CisgICAgICAgICBjdXJyZW50QWxlcnRUaW1lb3V0ID0gc2V0VGltZW91dChjbG9zZUFsZXJ0LCAxMDAwMCk7CisgICAgICAgfQorICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY3VycmVudEFsZXJ0KTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBjbGVhclRpbWVvdXQoY3VycmVudEFsZXJ0VGltZW91dCk7CisgICAgICAgY3VycmVudEFsZXJ0LmNsYXNzTmFtZSA9ICcnOworICAgICB9CisgICAgIGN1cnJlbnRBbGVydC5sYXN0Q2hpbGQudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgY3VycmVudEFsZXJ0Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChGKHMpKTsKKyAgICAgaWYgKGhyZWYpIHsKKyAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICAgICBsaW5rLmhyZWYgPSBocmVmOworICAgICAgIGxpbmsudGV4dENvbnRlbnQgPSBocmVmOworICAgICAgIGN1cnJlbnRBbGVydC5sYXN0Q2hpbGQuYXBwZW5kQ2hpbGQoRignICcsIGxpbmspKTsKKyAgICAgfQorICAgICBjdXJyZW50QWxlcnRUaW1lb3V0ID0gc2V0VGltZW91dChjbG9zZUFsZXJ0LCAxMDAwMCk7CisgICB9CisgICBmdW5jdGlvbiBjbG9zZUFsZXJ0KCkgeworICAgICBjbGVhclRpbWVvdXQoY3VycmVudEFsZXJ0VGltZW91dCk7CisgICAgIGlmIChjdXJyZW50QWxlcnQpIHsKKyAgICAgICBjdXJyZW50QWxlcnQuY2xhc3NOYW1lID0gJ2Nsb3NlZCc7CisgICAgICAgY3VycmVudEFsZXJ0VGltZW91dCA9IHNldFRpbWVvdXQoY2xvc2VBbGVydDIsIDMwMDApOworICAgICB9CisgICB9CisgICBmdW5jdGlvbiBjbG9zZUFsZXJ0MigpIHsKKyAgICAgY2xlYXJUaW1lb3V0KGN1cnJlbnRBbGVydFRpbWVvdXQpOworICAgICBpZiAoY3VycmVudEFsZXJ0KSB7CisgICAgICAgY3VycmVudEFsZXJ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY3VycmVudEFsZXJ0KTsKKyAgICAgICBjdXJyZW50QWxlcnQgPSBudWxsOworICAgICB9CisgICB9CisgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uIChldmVudCkgeworICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAyNykgeworICAgICAgIGlmIChjdXJyZW50QWxlcnQpCisgICAgICAgICBjbG9zZUFsZXJ0MigpOworICAgICB9IGVsc2UgeworICAgICAgIGNsb3NlQWxlcnQoKTsKKyAgICAgfQorICAgfSwgZmFsc2UpOworICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZ1bmN0aW9uIChldmVudCkgeworICAgICBjbG9zZUFsZXJ0KCk7CisgICB9LCBmYWxzZSk7CisgICBmdW5jdGlvbiBsb2FkKHNjcmlwdCkgeworICAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgICBlLnNldEF0dHJpYnV0ZSgnc3JjJywgJy8nICsgc2NyaXB0KTsKKyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKKyAgIH0KKworICAgdmFyIHN0YXJ0ZWRJbml0ID0gMDsKKyAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgIHN0YXJ0ZWRJbml0ID0gMTsKKyAgICAgaWYgKGxvY2F0aW9uLnNlYXJjaCA9PSAnP3Nsb3ctYnJvd3NlcicpCisgICAgICAgcmV0dXJuOworICAgICBsb2FkKCdyZXZpZXdlci5qcycpOworICAgICBpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZSA9PSAiYmlnIiB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lID09ICJiaWcgc3BsaXQgaW5kZXgiKQorICAgICAgIGxvYWQoJ3RvYy5qcycpOworICAgICBsb2FkKCd1cGRhdGVyLmpzJyk7CisgICAgIGxvYWQoJ2Rmbi5qcycpOworICAgICBsb2FkKCdzdGF0dXMuanMnKTsKKyAgICAgaWYgKGdldENvb2tpZSgncHJvZmlsZScpID09ICcxJykKKyAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaDInKVswXS50ZXh0Q29udGVudCArPSAnOyBsb2FkOiAnICsgKG5ldyBEYXRlKCkgLSBsb2FkVGltZXIpICsgJ21zJzsKKyAgIH0KKyAgIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lID09ICIiKQorICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICBpZiAoIXN0YXJ0ZWRJbml0KQorICAgICAgICAgc2hvd0FsZXJ0KCJUb28gc2xvdz8gVHJ5IHJlYWRpbmcgdGhlIG11bHRpcGFnZSBjb3B5IG9mIHRoZSBzcGVjIGluc3RlYWQ6IiwgImh0dHBzOi8vd2hhdHdnLm9yZy9odG1sIik7CisgICAgIH0sIDYwMDApOworCisgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgaWYgKChldmVudC53aGljaCA9PSAxMTQpICYmIChldmVudC5tZXRhS2V5KSkgeworICAgICAgIGlmICghY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbG9hZCB0aGlzIHBhZ2U/JykpCisgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICB9CisgICB9LCBmYWxzZSk7CisgIDwvc2NyaXB0PjxzY3JpcHQ+CisgICBmdW5jdGlvbiB0b2dnbGVTdGF0dXMoZGl2KSB7CisgICAgIGRpdi5wYXJlbnROb2RlLmNsYXNzTGlzdC50b2dnbGUoJ3dyYXBwZWQnKTsKKyAgIH0KKyAgPC9zY3JpcHQ+PGxpbmsgcmVsPXN0eWxlc2hlZXQgaHJlZj1odHRwczovL3doYXR3Zy5vcmcvc3R5bGUvc3BlY2lmaWNhdGlvbj48bGluayByZWw9aWNvbiBocmVmPWh0dHBzOi8vd2hhdHdnLm9yZy9pbWFnZXMvaWNvbj48c3R5bGU+CisgICBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0KKworICAgLnByb3Bvc2FsIHsgYm9yZGVyOiBibHVlIHNvbGlkOyBwYWRkaW5nOiAxZW07IH0KKyAgIC5iYWQsIC5iYWQgKjpub3QoLlhcNThYKSB7IGNvbG9yOiBncmF5OyBib3JkZXItY29sb3I6IGdyYXk7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9CisgICAjdXBkYXRlc1N0YXR1cyB7IGRpc3BsYXk6IG5vbmU7IHotaW5kZXg6IDEwOyB9CisgICAjdXBkYXRlc1N0YXR1cy5yZWxldmFudCB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogZml4ZWQ7IHJpZ2h0OiAxZW07IHRvcDogMWVtOyBwYWRkaW5nOiAwLjVlbTsgZm9udDogYm9sZCBzbWFsbCBzYW5zLXNlcmlmOyBtaW4td2lkdGg6IDI1ZW07IHdpZHRoOiAzMCU7IG1heC13aWR0aDogNDBlbTsgaGVpZ2h0OiBhdXRvOyBib3JkZXI6IHJpZGdlIDRweCBncmF5OyBiYWNrZ3JvdW5kOiAjRUVFRUVFOyBjb2xvcjogYmxhY2s7IH0KKyAgIGRpdi5oZWFkIC5sb2dvIHsgd2lkdGg6IDExZW07IG1hcmdpbi1ib3R0b206IDIwZW07IH0KKworICAgI2NvbmZpZ1VJIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAyMDsgdG9wOiBhdXRvOyByaWdodDogMDsgd2lkdGg6IDExZW07IHBhZGRpbmc6IDAgMC41ZW0gMCAwLjVlbTsgZm9udC1zaXplOiBzbWFsbDsgYmFja2dyb3VuZDogZ3JheTsgYmFja2dyb3VuZDogcmdiYSgzMiwzMiwzMiwwLjkpOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDAuNWVtIDAgMCAwLjVlbTsgfQorICAgI2NvbmZpZ1VJIHAgeyBtYXJnaW46IDAuNzVlbSAwOyBwYWRkaW5nOiAwLjNlbTsgfQorICAgI2NvbmZpZ1VJIHAgbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgfQorICAgI2NvbmZpZ1VJICN1cGRhdGVVSSwgI2NvbmZpZ1VJIC5sb2dpblVJIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisgICAjY29uZmlnVUkgaW5wdXRbdHlwZT1idXR0b25dIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogYXV0bzsgfQorICAgI2NvbmZpZ1VJIDpsaW5rLCAjY29uZmlnVUkgOnZpc2l0ZWQgeyBjb2xvcjogd2hpdGU7IH0KKyAgICNjb25maWdVSSA6bGluazpob3ZlciwgI2NvbmZpZ1VJIDp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH0KKworICAgI2FsZXJ0IHsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDIwJTsgbGVmdDogMjAlOyByaWdodDogMjAlOyBmb250LXNpemU6IDJlbTsgcGFkZGluZzogMC41ZW07IHotaW5kZXg6IDQwOyBiYWNrZ3JvdW5kOiBncmF5OyBiYWNrZ3JvdW5kOiByZ2JhKDMyLDMyLDMyLDAuOSk7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czogMC41ZW07IHRyYW5zaXRpb246IG9wYWNpdHkgMXMgbGluZWFyOyB9CisgICAjYWxlcnQuY2xvc2VkIHsgb3BhY2l0eTogMDsgfQorICAgI2FsZXJ0IGJ1dHRvbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMWVtOyByaWdodDogMmVtOyBib3JkZXItcmFkaXVzOiAwLjVlbSAwLjVlbSAwIDA7IGJvcmRlcjogbm9uZTsgbGluZS1oZWlnaHQ6IDAuOTsgY29sb3I6IHdoaXRlOyBiYWNrZ3JvdW5kOiByZ2IoNjQsNjQsNjQpOyBmb250LXNpemU6IDAuNmVtOyBmb250LXdlaWdodDogOTAwOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDAuMjVlbTsgfQorICAgI2FsZXJ0IDpsaW5rLCAjYWxlcnQgOnZpc2l0ZWQgeyBjb2xvcjogd2hpdGU7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CisgICAjYWxlcnQgOmxpbms6aG92ZXIsICNhbGVydCA6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9CisKKyAgIEBtZWRpYSBwcmludCB7ICNjb25maWdVSSwgI2FsZXJ0IHsgZGlzcGxheTogbm9uZTsgfSB9CisKKyAgIC5maW5nZXJwcmludCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDA7IHotaW5kZXg6IDU7IH0KKworICAgLnN0YXR1cyB7IGZvbnQ6IDFlbSBzYW5zLXNlcmlmOyB3aWR0aDogOWVtOyBwYWRkaW5nOiAwLjNlbTsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiA4OyB0b3A6IGF1dG87IHJpZ2h0OiAwLjNlbTsgYmFja2dyb3VuZDogI0VFRTsgY29sb3I6IGJsYWNrOyBib3gtc2hhZG93OiAwIDAgM3B4ICM5OTk7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbjogLTJlbSAwIDAgMDsgYm9yZGVyLWNvbGxhcHNlOiBpbml0aWFsOyBib3JkZXItc3BhY2luZzogaW5pdGlhbDsgfQorICAgLnN0YXR1cy53cmFwcGVkIHsgd2lkdGg6IDFlbTsgaGVpZ2h0OiAxZW07IH0KKyAgIC5zdGF0dXMud3JhcHBlZCA+IDpub3QoaW5wdXQpIHsgZGlzcGxheTogbm9uZTsgfQorICAgLnN0YXR1cyA+IGlucHV0IHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgdG9wOiAwOyB3aWR0aDogMWVtOyBoZWlnaHQ6IDFlbTsgYm9yZGVyOiBub25lOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyB9CisgICAuc3RhdHVzID4gcCB7IGZvbnQtc2l6ZTogMC42ZW07IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQorICAgLnN0YXR1cyA+IHAgKyBwIHsgcGFkZGluZy10b3A6IDAuNWVtOyB9CisgICAuc3RhdHVzID4gLnN1cHBvcnQgeyBkaXNwbGF5OiBibG9jazsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gc3BhbiB7IHBhZGRpbmc6IDAuMmVtIDA7IGRpc3BsYXk6IGJsb2NrOyBkaXNwbGF5OiB0YWJsZTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gc3Bhbi5wYXJ0aWFsIHsgY29sb3I6ICM2NjY2NjY7IGZpbHRlcjogZ3JheXNjYWxlKDUwJSk7IH0KKyAgIC5zdGF0dXMgPiAuc3VwcG9ydCA+IHNwYW4ubm8geyBjb2xvcjogI0NDQ0NDQzsgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7IH0KKyAgIC5zdGF0dXMgPiAuc3VwcG9ydCA+IHNwYW46Zmlyc3Qtb2YtdHlwZSB7IHBhZGRpbmctdG9wOiAwLjVlbTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gc3BhbiA+IHNwYW4geyBwYWRkaW5nOiAwIDAuNWVtOyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9CisgICAuc3RhdHVzID4gLnN1cHBvcnQgPiBzcGFuID4gc3BhbjpmaXJzdC1jaGlsZCB7IHdpZHRoOiAxMDAlOyB9CisgICAuc3RhdHVzID4gLnN1cHBvcnQgPiBzcGFuID4gc3BhbjpsYXN0LWNoaWxkIHsgd2lkdGg6IDEwMCU7IHdoaXRlLXNwYWNlOiBwcmU7IHBhZGRpbmc6IDA7IH0KKyAgIC5zdGF0dXMgPiAuc3VwcG9ydCA+IHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6ICcgJzsgZGlzcGxheTogdGFibGUtY2VsbDsgbWluLXdpZHRoOiAxLjVlbTsgaGVpZ2h0OiAxLjVlbTsgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsgdGV4dC1hbGlnbjogcmlnaHQ7IGZvbnQtc2l6ZTogMC43NWVtOyBmb250LXdlaWdodDogYm9sZDsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLmFuZF9jaHI6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3Jlc291cmNlcy53aGF0d2cub3JnL2Jyb3dzZXItbG9nb3MvY2hyb21lLWFuZHJvaWQucG5nKTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLmFuZF9mZjo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vcmVzb3VyY2VzLndoYXR3Zy5vcmcvYnJvd3Nlci1sb2dvcy9maXJlZm94LnBuZyk7IH0KKyAgIC5zdGF0dXMgPiAuc3VwcG9ydCA+IC5hbmRfdWM6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3Jlc291cmNlcy53aGF0d2cub3JnL2Jyb3dzZXItbG9nb3MvdWMucG5nKTsgfSAvKiBVQyBCcm93c2VyIGZvciBBbmRyb2lkICovCisgICAuc3RhdHVzID4gLnN1cHBvcnQgPiAuYW5kcm9pZDo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vcmVzb3VyY2VzLndoYXR3Zy5vcmcvYnJvd3Nlci1sb2dvcy9hbmRyb2lkLnN2Zyk7IH0KKyAgIC5zdGF0dXMgPiAuc3VwcG9ydCA+IC5iYjo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vcmVzb3VyY2VzLndoYXR3Zy5vcmcvYnJvd3Nlci1sb2dvcy9iYi5qcGcpOyB9IC8qIEJsYWNrYmVycnkgQnJvd3NlciAqLworICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLmNocm9tZTo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vcmVzb3VyY2VzLndoYXR3Zy5vcmcvYnJvd3Nlci1sb2dvcy9jaHJvbWUucG5nKTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLmZpcmVmb3g6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3Jlc291cmNlcy53aGF0d2cub3JnL2Jyb3dzZXItbG9nb3MvZmlyZWZveC5wbmcpOyB9CisgICAuc3RhdHVzID4gLnN1cHBvcnQgPiAuaWU6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3Jlc291cmNlcy53aGF0d2cub3JnL2Jyb3dzZXItbG9nb3MvaWUucG5nKTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLmllX21vYjo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vcmVzb3VyY2VzLndoYXR3Zy5vcmcvYnJvd3Nlci1sb2dvcy9pZS1tb2JpbGUuc3ZnKTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLmlvc19zYWY6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3Jlc291cmNlcy53aGF0d2cub3JnL2Jyb3dzZXItbG9nb3Mvc2FmYXJpLWlvcy5zdmcpOyB9CisgICAuc3RhdHVzID4gLnN1cHBvcnQgPiAub3BfbWluaTo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vcmVzb3VyY2VzLndoYXR3Zy5vcmcvYnJvd3Nlci1sb2dvcy9vcGVyYS1tb2JpbGUucG5nKTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLm9wX21vYjo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vcmVzb3VyY2VzLndoYXR3Zy5vcmcvYnJvd3Nlci1sb2dvcy9vcGVyYS1tb2JpbGUucG5nKTsgfQorICAgLnN0YXR1cyA+IC5zdXBwb3J0ID4gLm9wZXJhOjpiZWZvcmUgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9yZXNvdXJjZXMud2hhdHdnLm9yZy9icm93c2VyLWxvZ29zL29wZXJhLnBuZyk7IH0KKyAgIC5zdGF0dXMgPiAuc3VwcG9ydCA+IC5zYWZhcmk6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3Jlc291cmNlcy53aGF0d2cub3JnL2Jyb3dzZXItbG9nb3Mvc2FmYXJpLnBuZyk7IH0KKyAgIC5zdGF0dXMgPiAuY2FuaXVzZSB7IHRleHQtYWxpZ246IHJpZ2h0OyBmb250LXN0eWxlOiBpdGFsaWM7IH0KKworICAgLnBhbmVsIHsgcG9zaXRpb246IGZpeGVkOyB6LWluZGV4OiAzMDsgdG9wOiAxMCU7IGxlZnQ6IDA7IG1hcmdpbjogYXV0bzsgcmlnaHQ6IDA7IHdpZHRoOiAzNWVtOyBib3JkZXI6IGRvdWJsZSB0aGljazsgYmFja2dyb3VuZDogI0VFRUVFRTsgY29sb3I6IGJsYWNrOyBwYWRkaW5nOiAxZW07IGZvbnQ6IDFlbSBzYW5zLXNlcmlmOyBtYXgtaGVpZ2h0OiA3MCU7IG92ZXJmbG93OiBhdXRvOyB9CisgICAucGFuZWwgaDIgeyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorICAgLnBhbmVsIHVsIHsgbWluLWhlaWdodDogNmVtOyB9CisgICAucGFuZWwgcCB7IHRleHQtYWxpZ246IHJpZ2h0OyBtYXJnaW46IDA7IH0KKyAgIC5wYW5lbCBmb3JtIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiBibGFjazsgbWFyZ2luOiAwLjVlbSAtMC41ZW0gMWVtOyBwYWRkaW5nOiAwLjVlbTsgfQorICAgLnBhbmVsIGZvcm0uY2hhbmdlZCB7IGJhY2tncm91bmQ6IHllbGxvdzsgY29sb3I6IGJsYWNrOyB9CisgICAucGFuZWwgZm9ybSBwIHsgdGV4dC1hbGlnbjogbGVmdDsgbWFyZ2luOiAxZW0gMCAwOyB9CisgICAucGFuZWwgZm9ybSBwOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfQorICAgLnBhbmVsIGZvcm0gcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfQorICAgLnBhbmVsIGZvcm0gcCB0ZXh0YXJlYSB7IHdpZHRoOiAxMDAlIC8qIG5lZWQgdGhlIGtleXdvcmQgdGhhdCBtYWtlcyBpdCBmaXQgdG8gdGhlIHBhcmVudCBoZXJlIFhYWCAqLzsgbWluLWhlaWdodDogNGVtOyBkaXNwbGF5OiBibG9jazsgfQorICAgLnBhbmVsIGZvcm0gZGwgeyBsaW5lLWhlaWdodDogMS41ZW07IH0KKyAgIC5wYW5lbCBmb3JtIGR0IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMjBlbTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgdGV4dC1hbGlnbjogcmlnaHQ7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQorICAgLnBhbmVsIGZvcm0gZGQgeyBkaXNwbGF5OiBpbmxpbmU7IG1hcmdpbjogMCAwIDAgMWVtOyBwYWRkaW5nOiAwOyB9CisgICAucGFuZWwgZm9ybSBkZDphZnRlciB7IGRpc3BsYXk6IGJsb2NrOyB9CisgICB1bC5jaGVja2JveGVzIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9CisgICAucHJvZ3Jlc3MgeyB0ZXh0LWRlY29yYXRpb246IGJsaW5rOyB9CisKKyAgIC5hcHBsaWVzIC55ZXMgeyBiYWNrZ3JvdW5kOiB5ZWxsb3c7IH0KKyAgPC9zdHlsZT48c3R5bGU+CisgICAuYXBwbGllcyB0aGVhZCB0aCA+ICogeyBkaXNwbGF5OiBibG9jazsgfQorICAgLmFwcGxpZXMgdGhlYWQgY29kZSB7IGRpc3BsYXk6IGJsb2NrOyB9CisgICAuYXBwbGllcyB0ZCB7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorCisgICAubWF0cml4LCAubWF0cml4IHRkIHsgYm9yZGVyOiBoaWRkZW47IHRleHQtYWxpZ246IHJpZ2h0OyB9CisgICAubWF0cml4IHsgbWFyZ2luLWxlZnQ6IDJlbTsgfQorCisgICAudmVydGljYWwtc3VtbWFyeS10YWJsZSB0ciA+IHRoW3Jvd3NwYW49IjIiXTpmaXJzdC1jaGlsZCArIHRoLAorICAgLnZlcnRpY2FsLXN1bW1hcnktdGFibGUgdHIgPiB0ZFtyb3dzcGFuPSIyIl06Zmlyc3QtY2hpbGQgKyB0ZCB7IGJvcmRlci1ib3R0b206IGhpZGRlbjsgfQorCisgICAuZGljZS1leGFtcGxlIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXN0eWxlOiBoaWRkZW4gc29saWQgc29saWQgaGlkZGVuOyBib3JkZXItd2lkdGg6IHRoaW47IG1hcmdpbi1sZWZ0OiAzZW07IH0KKyAgIC5kaWNlLWV4YW1wbGUgY2FwdGlvbiB7IHdpZHRoOiAzMGVtOyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtc3R5bGU6IGl0YWxpYzsgcGFkZGluZzogMC43NWVtIDA7IHRleHQtYWxpZ246IGxlZnQ7IH0KKyAgIC5kaWNlLWV4YW1wbGUgdGQsIC5kaWNlLWV4YW1wbGUgdGggeyBib3JkZXI6IHNvbGlkIHRoaW47IHdpZHRoOiAxLjM1ZW07IGhlaWdodDogMS4wNWVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDA7IH0KKworICAgdGQuZWcgeyBib3JkZXItd2lkdGg6IHRoaW47IHRleHQtYWxpZ246IGNlbnRlcjsgfQorCisgICAjdGFibGUtZXhhbXBsZS0xIHsgYm9yZGVyOiBzb2xpZCB0aGluOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBtYXJnaW4tbGVmdDogM2VtOyB9CisgICAjdGFibGUtZXhhbXBsZS0xIGNhcHRpb24geyBwYWRkaW5nLWJvdHRvbTogMC41ZW07IH0KKyAgICN0YWJsZS1leGFtcGxlLTEgdGhlYWQsICN0YWJsZS1leGFtcGxlLTEgdGJvZHkgeyBib3JkZXI6IG5vbmU7IH0KKyAgICN0YWJsZS1leGFtcGxlLTEgdGgsICN0YWJsZS1leGFtcGxlLTEgdGQgeyBib3JkZXI6IHNvbGlkIHRoaW47IH0KKyAgICN0YWJsZS1leGFtcGxlLTEgdGggeyBmb250LXdlaWdodDogbm9ybWFsOyB9CisgICAjdGFibGUtZXhhbXBsZS0xIHRkIHsgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9CisgICAjdGFibGUtZXhhbXBsZS0xIHRoIHsgcGFkZGluZzogMC41ZW07IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorICAgI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7IHBhZGRpbmctdG9wOiAwLjVlbTsgfQorICAgI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgcGFkZGluZy1ib3R0b206IDEuNWVtOyB9CisgICAjdGFibGUtZXhhbXBsZS0xIHRib2R5IHRkOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAyLjVlbTsgcGFkZGluZy1yaWdodDogMDsgd2lkdGg6IDllbTsgfQorICAgI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIgeyBjb250ZW50OiBsZWFkZXIoIi4gIik7IH0KKyAgICN0YWJsZS1leGFtcGxlLTEgdGJvZHkgdGQgeyBwYWRkaW5nLWxlZnQ6IDJlbTsgcGFkZGluZy1yaWdodDogMmVtOyB9CisgICAjdGFibGUtZXhhbXBsZS0xIHRib2R5IHRkOmZpcnN0LWNoaWxkICsgdGQgeyB3aWR0aDogMTBlbTsgfQorICAgI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCArIHRkIH4gdGQgeyB3aWR0aDogMi41ZW07IH0KKyAgICN0YWJsZS1leGFtcGxlLTEgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQgKyB0ZCArIHRkICsgdGQgfiB0ZCB7IHdpZHRoOiAxLjI1ZW07IH0KKworICAgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHsgYm9yZGVyOiBub25lOyBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyBib3JkZXItc3BhY2luZzogMS41ZW0gMGVtOyB3aWR0aDogNDBlbTsgbWFyZ2luLWxlZnQ6IDNlbTsgfQorICAgLmFwcGxlLXRhYmxlLWV4YW1wbGVzICogeyBmb250LWZhbWlseTogIlRpbWVzIiwgc2VyaWY7IH0KKyAgIC5hcHBsZS10YWJsZS1leGFtcGxlcyB0ZCwgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRoIHsgYm9yZGVyOiBub25lOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBwYWRkaW5nLXRvcDogMDsgcGFkZGluZy1ib3R0b206IDA7IH0KKyAgIC5hcHBsZS10YWJsZS1leGFtcGxlcyB0Ym9keSB0aDpmaXJzdC1jaGlsZCB7IGJvcmRlci1sZWZ0OiBub25lOyB3aWR0aDogMTAwJTsgfQorICAgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRoZWFkIHRoOmZpcnN0LWNoaWxkIH4gdGggeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkZXI7IGJvcmRlci1ib3R0b206IHNvbGlkIDJweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisgICAuYXBwbGUtdGFibGUtZXhhbXBsZXMgdGJvZHkgdGg6OmFmdGVyLCAuYXBwbGUtdGFibGUtZXhhbXBsZXMgdGZvb3QgdGg6OmFmdGVyIHsgY29udGVudDogbGVhZGVyKCIuICIpIH0KKyAgIC5hcHBsZS10YWJsZS1leGFtcGxlcyB0Ym9keSB0aCwgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRmb290IHRoIHsgZm9udDogaW5oZXJpdDsgdGV4dC1hbGlnbjogbGVmdDsgfQorICAgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRkIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KKyAgIC5hcHBsZS10YWJsZS1leGFtcGxlcy5lMSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4OyB9CisgICAuYXBwbGUtdGFibGUtZXhhbXBsZXMuZTEgdGJvZHkgKyB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogZG91YmxlIDNweDsgfQorICAgLmFwcGxlLXRhYmxlLWV4YW1wbGVzLmUyIHRoW3Njb3BlPXJvd10geyBwYWRkaW5nLWxlZnQ6IDFlbTsgfQorICAgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHN1cCB7IGxpbmUtaGVpZ2h0OiAwOyB9CisKKyAgIC50aHJlZS1jb2x1bW4tbm93cmFwIHRyID4gdGQ6Zmlyc3QtY2hpbGQsCisgICAudGhyZWUtY29sdW1uLW5vd3JhcCB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQsCisgICAudGhyZWUtY29sdW1uLW5vd3JhcCB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQgKyB0ZCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KKworICAgLmRldGFpbHMtZXhhbXBsZSBpbWcgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9CisKKyAgICNiYXNlNjQtdGFibGUgeworICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICBmb250LXNpemU6IDAuNmVtOworICAgICBjb2x1bW4td2lkdGg6IDZlbTsKKyAgICAgY29sdW1uLWNvdW50OiA1OworICAgICBjb2x1bW4tZ2FwOiAxZW07CisgICAgIC1tb3otY29sdW1uLXdpZHRoOiA2ZW07CisgICAgIC1tb3otY29sdW1uLWNvdW50OiA1OworICAgICAtbW96LWNvbHVtbi1nYXA6IDFlbTsKKyAgICAgLXdlYmtpdC1jb2x1bW4td2lkdGg6IDZlbTsKKyAgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDU7CisgICAgIC13ZWJraXQtY29sdW1uLWdhcDogMWVtOworICAgfQorICAgI2Jhc2U2NC10YWJsZSB0aGVhZCB7IGRpc3BsYXk6IG5vbmU7IH0KKyAgICNiYXNlNjQtdGFibGUgKiB7IGJvcmRlcjogbm9uZTsgfQorICAgI2Jhc2U2NC10YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZDphZnRlciB7IGNvbnRlbnQ6ICc6JzsgfQorICAgI2Jhc2U2NC10YWJsZSB0Ym9keSB0ZDpsYXN0LWNoaWxkIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKworICAgI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzLXRhYmxlIHsKKyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICAgZm9udC1zaXplOiAwLjZlbTsKKyAgICAgY29sdW1uLXdpZHRoOiAzMGVtOworICAgICBjb2x1bW4tZ2FwOiAxZW07CisgICAgIC1tb3otY29sdW1uLXdpZHRoOiAzMGVtOworICAgICAtbW96LWNvbHVtbi1nYXA6IDFlbTsKKyAgICAgLXdlYmtpdC1jb2x1bW4td2lkdGg6IDMwZW07CisgICAgIC13ZWJraXQtY29sdW1uLWdhcDogMWVtOworICAgfQorICAgI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzLXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQgKyB0ZCwKKyAgICNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKyAgICNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQ6aG92ZXIgPiBzcGFuIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IGF1dG87IGxlZnQ6IGF1dG87IG1hcmdpbi1sZWZ0OiAwLjVlbTsgbGluZS1oZWlnaHQ6IDEuMjsgZm9udC1zaXplOiA1ZW07IGJvcmRlcjogb3V0c2V0OyBwYWRkaW5nOiAwLjI1ZW0gMC41ZW07IGJhY2tncm91bmQ6IHdoaXRlOyB3aWR0aDogMS4yNWVtOyBoZWlnaHQ6IGF1dG87IHRleHQtYWxpZ246IGNlbnRlcjsgfQorICAgI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzLXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyI2VudGl0eS1Db3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsID4gdGQ6Zmlyc3QtY2hpbGQgeyBmb250LXNpemU6IDAuNWVtOyB9CisKKyAgIC5nbHlwaC5jb250cm9sIHsgY29sb3I6IHJlZDsgfQorICA8L3N0eWxlPjxzdHlsZT4KKyAgICN0YWJsZS1leGFtcGxlLTEgKiB7IGZvbnQtZmFtaWx5OiAiRXNzYXlzMTc0MyIsIHNlcmlmOyBsaW5lLWhlaWdodDogMS4wMWVtOyB9CisgICBAZm9udC1mYWNlIHsKKyAgICAgZm9udC1mYW1pbHk6ICdFc3NheXMxNzQzJzsKKyAgICAgc3JjOiB1cmwoJy9mb250cy9Fc3NheXMxNzQzLnR0ZicpOworICAgfQorICAgQGZvbnQtZmFjZSB7CisgICAgIGZvbnQtZmFtaWx5OiAnRXNzYXlzMTc0Myc7CisgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICBzcmM6IHVybCgnL2ZvbnRzL0Vzc2F5czE3NDMtQm9sZC50dGYnKTsKKyAgIH0KKyAgIEBmb250LWZhY2UgeworICAgICBmb250LWZhbWlseTogJ0Vzc2F5czE3NDMnOworICAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgIHNyYzogdXJsKCcvZm9udHMvRXNzYXlzMTc0My1JdGFsaWMudHRmJyk7CisgICB9CisgICBAZm9udC1mYWNlIHsKKyAgICAgZm9udC1mYW1pbHk6ICdFc3NheXMxNzQzJzsKKyAgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgc3JjOiB1cmwoJy9mb250cy9Fc3NheXMxNzQzLUJvbGRJdGFsaWMudHRmJyk7CisgICB9CisgIDwvc3R5bGU+PHNjcmlwdCBzcmM9bGluay1maXh1cC5qcz48L3NjcmlwdD48Ym9keSBvbmxvYWQ9aW5pdCgpPgorICA8aGVhZGVyIGlkPWhlYWQgY2xhc3M9ImhlYWQgd2l0aC1idXR0b25zIj4KKyAgIDxwPjxhIGhyZWY9aHR0cHM6Ly93aGF0d2cub3JnLyBjbGFzcz1sb2dvPjxpbWcgYWx0PVdIQVRXRyBzcmM9Ly93aGF0d2cub3JnL2ltYWdlcy9sb2dvIHdpZHRoPTEwMSBoZWlnaHQ9MTAxPjwvYT48L3A+CisgICA8aGdyb3VwPjxoMSBjbGFzcz1hbGxjYXBzPkhUTUw8L2gxPjxoMiBpZD1saXZpbmctc3RhbmRhcmQt4oCULWxhc3QtdXBkYXRlZC1bZGF0ZTotMDEtamFuLTE5MDFdIGNsYXNzPSJuby1udW0gbm8tdG9jIj5MaXZpbmcgU3RhbmRhcmQg4oCUIExhc3QgVXBkYXRlZCA8c3BhbiBjbGFzcz1wdWJkYXRlPjEgTm92ZW1iZXIgMjAxNDwvc3Bhbj48L2gyPjwvaGdyb3VwPgorCisKKyAgPC9oZWFkZXI+CisKKworCisKKworCisKKworCisKKworCisKKyAgPG5hdj48YSBocmVmPXdlYnN0b3JhZ2UuaHRtbD7ihpAgMTEgV2ViIHN0b3JhZ2U8L2E+IOKAlCA8YSBocmVmPWluZGV4Lmh0bWw+VGFibGUgb2YgQ29udGVudHM8L2E+IOKAlCA8YSBocmVmPXhodG1sLmh0bWw+MTMgVGhlIFhIVE1MIHN5bnRheCDihpI8L2E+PC9uYXY+PG9sIGNsYXNzPXRvYz48bGkgaWQ9dG9jLXN5bnRheD48YSBocmVmPXN5bnRheC5odG1sI3N5bnRheD4xMiBUaGUgSFRNTCBzeW50YXg8L2E+PG9sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3dyaXRpbmc+MTIuMSBXcml0aW5nIEhUTUwgZG9jdW1lbnRzPC9hPjxvbD48bGk+PGEgaHJlZj1zeW50YXguaHRtbCN0aGUtZG9jdHlwZT4xMi4xLjEgVGhlIERPQ1RZUEU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjZWxlbWVudHMtMj4xMi4xLjIgRWxlbWVudHM8L2E+PG9sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3N0YXJ0LXRhZ3M+MTIuMS4yLjEgU3RhcnQgdGFnczwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNlbmQtdGFncz4xMi4xLjIuMiBFbmQgdGFnczwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNhdHRyaWJ1dGVzLTI+MTIuMS4yLjMgQXR0cmlidXRlczwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNvcHRpb25hbC10YWdzPjEyLjEuMi40IE9wdGlvbmFsIHRhZ3M8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjZWxlbWVudC1yZXN0cmljdGlvbnM+MTIuMS4yLjUgUmVzdHJpY3Rpb25zIG9uIGNvbnRlbnQgbW9kZWxzPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2NkYXRhLXJjZGF0YS1yZXN0cmljdGlvbnM+MTIuMS4yLjYgUmVzdHJpY3Rpb25zIG9uIHRoZSBjb250ZW50cyBvZiByYXcgdGV4dCBhbmQgZXNjYXBhYmxlIHJhdyB0ZXh0IGVsZW1lbnRzPC9hPjwvb2w+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGV4dC0yPjEyLjEuMyBUZXh0PC9hPjxvbD48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNuZXdsaW5lcz4xMi4xLjMuMSBOZXdsaW5lczwvYT48L29sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2NoYXJhY3Rlci1yZWZlcmVuY2VzPjEyLjEuNCBDaGFyYWN0ZXIgcmVmZXJlbmNlczwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNjZGF0YS1zZWN0aW9ucz4xMi4xLjUgQ0RBVEEgc2VjdGlvbnM8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjY29tbWVudHM+MTIuMS42IENvbW1lbnRzPC9hPjwvb2w+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZz4xMi4yIFBhcnNpbmcgSFRNTCBkb2N1bWVudHM8L2E+PG9sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI292ZXJ2aWV3LW9mLXRoZS1wYXJzaW5nLW1vZGVsPjEyLjIuMSBPdmVydmlldyBvZiB0aGUgcGFyc2luZyBtb2RlbDwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCN0aGUtaW5wdXQtYnl0ZS1zdHJlYW0+MTIuMi4yIFRoZSBpbnB1dCBieXRlIHN0cmVhbTwvYT48b2w+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy13aXRoLWEta25vd24tY2hhcmFjdGVyLWVuY29kaW5nPjEyLjIuMi4xIFBhcnNpbmcgd2l0aCBhIGtub3duIGNoYXJhY3RlciBlbmNvZGluZzwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNkZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nPjEyLjIuMi4yIERldGVybWluaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmc8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjY2hhcmFjdGVyLWVuY29kaW5ncz4xMi4yLjIuMyBDaGFyYWN0ZXIgZW5jb2RpbmdzPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2NoYW5naW5nLXRoZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nPjEyLjIuMi40IENoYW5naW5nIHRoZSBlbmNvZGluZyB3aGlsZSBwYXJzaW5nPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3ByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbT4xMi4yLjIuNSBQcmVwcm9jZXNzaW5nIHRoZSBpbnB1dCBzdHJlYW08L2E+PC9vbD48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNwYXJzZS1zdGF0ZT4xMi4yLjMgUGFyc2Ugc3RhdGU8L2E+PG9sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3RoZS1pbnNlcnRpb24tbW9kZT4xMi4yLjMuMSBUaGUgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM+MTIuMi4zLjIgVGhlIHN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM+MTIuMi4zLjMgVGhlIGxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGhlLWVsZW1lbnQtcG9pbnRlcnM+MTIuMi4zLjQgVGhlIGVsZW1lbnQgcG9pbnRlcnM8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjb3RoZXItcGFyc2luZy1zdGF0ZS1mbGFncz4xMi4yLjMuNSBPdGhlciBwYXJzaW5nIHN0YXRlIGZsYWdzPC9hPjwvb2w+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdG9rZW5pemF0aW9uPjEyLjIuNCBUb2tlbml6YXRpb248L2E+PG9sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2RhdGEtc3RhdGU+MTIuMi40LjEgRGF0YSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNjaGFyYWN0ZXItcmVmZXJlbmNlLWluLWRhdGEtc3RhdGU+MTIuMi40LjIgQ2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBkYXRhIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3JjZGF0YS1zdGF0ZT4xMi4yLjQuMyBSQ0RBVEEgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1yY2RhdGEtc3RhdGU+MTIuMi40LjQgQ2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBSQ0RBVEEgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcmF3dGV4dC1zdGF0ZT4xMi4yLjQuNSBSQVdURVhUIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdC1kYXRhLXN0YXRlPjEyLjIuNC42IFNjcmlwdCBkYXRhIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BsYWludGV4dC1zdGF0ZT4xMi4yLjQuNyBQTEFJTlRFWFQgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGFnLW9wZW4tc3RhdGU+MTIuMi40LjggVGFnIG9wZW4gc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjZW5kLXRhZy1vcGVuLXN0YXRlPjEyLjIuNC45IEVuZCB0YWcgb3BlbiBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCN0YWctbmFtZS1zdGF0ZT4xMi4yLjQuMTAgVGFnIG5hbWUgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlPjEyLjIuNC4xMSBSQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcmNkYXRhLWVuZC10YWctb3Blbi1zdGF0ZT4xMi4yLjQuMTIgUkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNyY2RhdGEtZW5kLXRhZy1uYW1lLXN0YXRlPjEyLjIuNC4xMyBSQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3Jhd3RleHQtbGVzcy10aGFuLXNpZ24tc3RhdGU+MTIuMi40LjE0IFJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGU+MTIuMi40LjE1IFJBV1RFWFQgZW5kIHRhZyBvcGVuIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3Jhd3RleHQtZW5kLXRhZy1uYW1lLXN0YXRlPjEyLjIuNC4xNiBSQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNzY3JpcHQtZGF0YS1sZXNzLXRoYW4tc2lnbi1zdGF0ZT4xMi4yLjQuMTcgU2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZW5kLXRhZy1vcGVuLXN0YXRlPjEyLjIuNC4xOCBTY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlPjEyLjIuNC4xOSBTY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LXN0YXRlPjEyLjIuNC4yMCBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LWRhc2gtc3RhdGU+MTIuMi40LjIxIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGU+MTIuMi40LjIyIFNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLXN0YXRlPjEyLjIuNC4yMyBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLWRhc2gtc3RhdGU+MTIuMi40LjI0IFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU+MTIuMi40LjI1IFNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU+MTIuMi40LjI2IFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlPjEyLjIuNC4yNyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlPjEyLjIuNC4yOCBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIHN0YXJ0IHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLXN0YXRlPjEyLjIuNC4yOSBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1kYXNoLXN0YXRlPjEyLjIuNC4zMCBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZT4xMi4yLjQuMzEgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlPjEyLjIuNC4zMiBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZT4xMi4yLjQuMzMgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBlbmQgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlPjEyLjIuNC4zNCBCZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYXR0cmlidXRlLW5hbWUtc3RhdGU+MTIuMi40LjM1IEF0dHJpYnV0ZSBuYW1lIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2FmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlPjEyLjIuNC4zNiBBZnRlciBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNiZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlPjEyLjIuNC4zNyBCZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGU+MTIuMi40LjM4IEF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT4xMi4yLjQuMzkgQXR0cmlidXRlIHZhbHVlIChzaW5nbGUtcXVvdGVkKSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZT4xMi4yLjQuNDAgQXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1hdHRyaWJ1dGUtdmFsdWUtc3RhdGU+MTIuMi40LjQxIENoYXJhY3RlciByZWZlcmVuY2UgaW4gYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2FmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZT4xMi4yLjQuNDIgQWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+MTIuMi40LjQzIFNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYm9ndXMtY29tbWVudC1zdGF0ZT4xMi4yLjQuNDQgQm9ndXMgY29tbWVudCBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNtYXJrdXAtZGVjbGFyYXRpb24tb3Blbi1zdGF0ZT4xMi4yLjQuNDUgTWFya3VwIGRlY2xhcmF0aW9uIG9wZW4gc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjY29tbWVudC1zdGFydC1zdGF0ZT4xMi4yLjQuNDYgQ29tbWVudCBzdGFydCBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNjb21tZW50LXN0YXJ0LWRhc2gtc3RhdGU+MTIuMi40LjQ3IENvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNjb21tZW50LXN0YXRlPjEyLjIuNC40OCBDb21tZW50IHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2NvbW1lbnQtZW5kLWRhc2gtc3RhdGU+MTIuMi40LjQ5IENvbW1lbnQgZW5kIGRhc2ggc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjY29tbWVudC1lbmQtc3RhdGU+MTIuMi40LjUwIENvbW1lbnQgZW5kIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2NvbW1lbnQtZW5kLWJhbmctc3RhdGU+MTIuMi40LjUxIENvbW1lbnQgZW5kIGJhbmcgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjZG9jdHlwZS1zdGF0ZT4xMi4yLjQuNTIgRE9DVFlQRSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNiZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlPjEyLjIuNC41MyBCZWZvcmUgRE9DVFlQRSBuYW1lIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2RvY3R5cGUtbmFtZS1zdGF0ZT4xMi4yLjQuNTQgRE9DVFlQRSBuYW1lIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2FmdGVyLWRvY3R5cGUtbmFtZS1zdGF0ZT4xMi4yLjQuNTUgQWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2FmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmQtc3RhdGU+MTIuMi40LjU2IEFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU+MTIuMi40LjU3IEJlZm9yZSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2RvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlPjEyLjIuNC41OCBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNkb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT4xMi4yLjQuNTkgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZT4xMi4yLjQuNjAgQWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNiZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGU+MTIuMi40LjYxIEJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNhZnRlci1kb2N0eXBlLXN5c3RlbS1rZXl3b3JkLXN0YXRlPjEyLjIuNC42MiBBZnRlciBET0NUWVBFIHN5c3RlbSBrZXl3b3JkIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2JlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlPjEyLjIuNC42MyBCZWZvcmUgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZT4xMi4yLjQuNjQgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU+MTIuMi40LjY1IERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2FmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU+MTIuMi40LjY2IEFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYm9ndXMtZG9jdHlwZS1zdGF0ZT4xMi4yLjQuNjcgQm9ndXMgRE9DVFlQRSBzdGF0ZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNjZGF0YS1zZWN0aW9uLXN0YXRlPjEyLjIuNC42OCBDREFUQSBzZWN0aW9uIHN0YXRlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3Rva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM+MTIuMi40LjY5IFRva2VuaXppbmcgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+PC9vbD48bGk+PGEgaHJlZj1zeW50YXguaHRtbCN0cmVlLWNvbnN0cnVjdGlvbj4xMi4yLjUgVHJlZSBjb25zdHJ1Y3Rpb248L2E+PG9sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2NyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM+MTIuMi41LjEgQ3JlYXRpbmcgYW5kIGluc2VydGluZyBub2RlczwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNwYXJzaW5nLWVsZW1lbnRzLXRoYXQtY29udGFpbi1vbmx5LXRleHQ+MTIuMi41LjIgUGFyc2luZyBlbGVtZW50cyB0aGF0IGNvbnRhaW4gb25seSB0ZXh0PC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI2Nsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M+MTIuMi41LjMgQ2xvc2luZyBlbGVtZW50cyB0aGF0IGhhdmUgaW1wbGllZCBlbmQgdGFnczwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5odG1sPjEyLjIuNS40IFRoZSBydWxlcyBmb3IgcGFyc2luZyB0b2tlbnMgaW4gSFRNTCBjb250ZW50PC9hPjxvbD48bGk+PGEgaHJlZj1zeW50YXguaHRtbCN0aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZT4xMi4yLjUuNC4xIFRoZSAiaW5pdGlhbCIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlPjEyLjIuNS40LjIgVGhlICJiZWZvcmUgaHRtbCIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlPjEyLjIuNS40LjMgVGhlICJiZWZvcmUgaGVhZCIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluaGVhZD4xMi4yLjUuNC40IFRoZSAiaW4gaGVhZCIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0PjEyLjIuNS40LjUgVGhlICJpbiBoZWFkIG5vc2NyaXB0IiBpbnNlcnRpb24gbW9kZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCN0aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZT4xMi4yLjUuNC42IFRoZSAiYWZ0ZXIgaGVhZCIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluYm9keT4xMi4yLjUuNC43IFRoZSAiaW4gYm9keSIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluY2RhdGE+MTIuMi41LjQuOCBUaGUgInRleHQiIGluc2VydGlvbiBtb2RlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRhYmxlPjEyLjIuNS40LjkgVGhlICJpbiB0YWJsZSIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGFibGV0ZXh0PjEyLjIuNS40LjEwIFRoZSAiaW4gdGFibGUgdGV4dCIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluY2FwdGlvbj4xMi4yLjUuNC4xMSBUaGUgImluIGNhcHRpb24iIGluc2VydGlvbiBtb2RlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNvbGdyb3VwPjEyLjIuNS40LjEyIFRoZSAiaW4gY29sdW1uIGdyb3VwIiBpbnNlcnRpb24gbW9kZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50Ym9keT4xMi4yLjUuNC4xMyBUaGUgImluIHRhYmxlIGJvZHkiIGluc2VydGlvbiBtb2RlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRyPjEyLjIuNS40LjE0IFRoZSAiaW4gcm93IiBpbnNlcnRpb24gbW9kZTwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50ZD4xMi4yLjUuNC4xNSBUaGUgImluIGNlbGwiIGluc2VydGlvbiBtb2RlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdD4xMi4yLjUuNC4xNiBUaGUgImluIHNlbGVjdCIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluc2VsZWN0aW50YWJsZT4xMi4yLjUuNC4xNyBUaGUgImluIHNlbGVjdCBpbiB0YWJsZSIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGVtcGxhdGU+MTIuMi41LjQuMTggVGhlICJpbiB0ZW1wbGF0ZSIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWFmdGVyYm9keT4xMi4yLjUuNC4xOSBUaGUgImFmdGVyIGJvZHkiIGluc2VydGlvbiBtb2RlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmZyYW1lc2V0PjEyLjIuNS40LjIwIFRoZSAiaW4gZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0PjEyLjIuNS40LjIxIFRoZSAiYWZ0ZXIgZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3RoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlPjEyLjIuNS40LjIyIFRoZSAiYWZ0ZXIgYWZ0ZXIgYm9keSIgaW5zZXJ0aW9uIG1vZGU8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlPjEyLjIuNS40LjIzIFRoZSAiYWZ0ZXIgYWZ0ZXIgZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlPC9hPjwvb2w+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluZm9yZWlnbj4xMi4yLjUuNSBUaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIGZvcmVpZ24gY29udGVudDwvYT48L29sPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3RoZS1lbmQ+MTIuMi42IFRoZSBlbmQ8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjY29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0PjEyLjIuNyBDb2VyY2luZyBhbiBIVE1MIERPTSBpbnRvIGFuIGluZm9zZXQ8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjYW4taW50cm9kdWN0aW9uLXRvLWVycm9yLWhhbmRsaW5nLWFuZC1zdHJhbmdlLWNhc2VzLWluLXRoZS1wYXJzZXI+MTIuMi44IEFuIGludHJvZHVjdGlvbiB0byBlcnJvciBoYW5kbGluZyBhbmQgc3RyYW5nZSBjYXNlcyBpbiB0aGUgcGFyc2VyPC9hPjxvbD48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNtaXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pPjEyLjIuOC4xIE1pc25lc3RlZCB0YWdzOiAmbHQ7Yj4mbHQ7aT4mbHQ7L2I+Jmx0Oy9pPjwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNtaXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wPjEyLjIuOC4yIE1pc25lc3RlZCB0YWdzOiAmbHQ7Yj4mbHQ7cD4mbHQ7L2I+Jmx0Oy9wPjwvYT48bGk+PGEgaHJlZj1zeW50YXguaHRtbCN1bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM+MTIuMi44LjMgVW5leHBlY3RlZCBtYXJrdXAgaW4gdGFibGVzPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3NjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkPjEyLjIuOC40IFNjcmlwdHMgdGhhdCBtb2RpZnkgdGhlIHBhZ2UgYXMgaXQgaXMgYmVpbmcgcGFyc2VkPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3RoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10aGF0LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50cz4xMi4yLjguNSBUaGUgZXhlY3V0aW9uIG9mIHNjcmlwdHMgdGhhdCBhcmUgbW92aW5nIGFjcm9zcyBtdWx0aXBsZSBkb2N1bWVudHM8L2E+PGxpPjxhIGhyZWY9c3ludGF4Lmh0bWwjdW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50cz4xMi4yLjguNiBVbmNsb3NlZCBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPjwvb2w+PC9vbD48bGk+PGEgaHJlZj1zeW50YXguaHRtbCNzZXJpYWxpc2luZy1odG1sLWZyYWdtZW50cz4xMi4zIFNlcmlhbGlzaW5nIEhUTUwgZnJhZ21lbnRzPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI3BhcnNpbmctaHRtbC1mcmFnbWVudHM+MTIuNCBQYXJzaW5nIEhUTUwgZnJhZ21lbnRzPC9hPjxsaT48YSBocmVmPXN5bnRheC5odG1sI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzPjEyLjUgTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+PC9vbD48L29sPjxoMiBpZD1zeW50YXg+MTIgPGRmbj5UaGUgSFRNTCBzeW50YXg8L2Rmbj48L2gyPgorCisgIDxwIGNsYXNzPW5vdGU+VGhpcyBzZWN0aW9uIG9ubHkgZGVzY3JpYmVzIHRoZSBydWxlcyBmb3IgcmVzb3VyY2VzIGxhYmVsZWQgd2l0aCBhbiA8YSBpZD1zeW50YXg6aHRtbC1taW1lLXR5cGUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtbWltZS10eXBlPkhUTUwKKyAgTUlNRSB0eXBlPC9hPi4gUnVsZXMgZm9yIFhNTCByZXNvdXJjZXMgYXJlIGRpc2N1c3NlZCBpbiB0aGUgc2VjdGlvbiBiZWxvdyBlbnRpdGxlZCAiPGEgaWQ9c3ludGF4OnRoZS14aHRtbC1zeW50YXggaHJlZj14aHRtbC5odG1sI3RoZS14aHRtbC1zeW50YXg+VGhlCisgIFhIVE1MIHN5bnRheDwvYT4iLjwvcD4KKworCisgIDxoMyBpZD13cml0aW5nPjEyLjEgV3JpdGluZyBIVE1MIGRvY3VtZW50czwvaDM+CisKKworCisgIDxwPjxpPlRoaXMgc2VjdGlvbiBvbmx5IGFwcGxpZXMgdG8gZG9jdW1lbnRzLCBhdXRob3JpbmcgdG9vbHMsIGFuZCBtYXJrdXAgZ2VuZXJhdG9ycy4gSW4KKyAgcGFydGljdWxhciwgaXQgZG9lcyBub3QgYXBwbHkgdG8gY29uZm9ybWFuY2UgY2hlY2tlcnM7IGNvbmZvcm1hbmNlIGNoZWNrZXJzIG11c3QgdXNlIHRoZQorICByZXF1aXJlbWVudHMgZ2l2ZW4gaW4gdGhlIG5leHQgc2VjdGlvbiAoInBhcnNpbmcgSFRNTCBkb2N1bWVudHMiKS48L2k+PC9wPgorCisKKworICA8cD5Eb2N1bWVudHMgbXVzdCBjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcgcGFydHMsIGluIHRoZSBnaXZlbgorICBvcmRlcjo8L3A+CisKKyAgPG9sPjxsaT5PcHRpb25hbGx5LCBhIHNpbmdsZSBVK0ZFRkYgQllURSBPUkRFUiBNQVJLIChCT00pIGNoYXJhY3Rlci48bGk+QW55IG51bWJlciBvZiA8YSBocmVmPSNzeW50YXgtY29tbWVudHMgaWQ9d3JpdGluZzpzeW50YXgtY29tbWVudHM+Y29tbWVudHM8L2E+IGFuZCA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPXdyaXRpbmc6c3BhY2UtY2hhcmFjdGVyPnNwYWNlIGNoYXJhY3RlcnM8L2E+LjxsaT5BIDxhIGhyZWY9I3N5bnRheC1kb2N0eXBlIGlkPXdyaXRpbmc6c3ludGF4LWRvY3R5cGU+RE9DVFlQRTwvYT4uCisKKyAgIDxsaT5BbnkgbnVtYmVyIG9mIDxhIGhyZWY9I3N5bnRheC1jb21tZW50cyBpZD13cml0aW5nOnN5bnRheC1jb21tZW50cy0yPmNvbW1lbnRzPC9hPiBhbmQgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3RlciBpZD13cml0aW5nOnNwYWNlLWNoYXJhY3Rlci0yPnNwYWNlIGNoYXJhY3RlcnM8L2E+LjxsaT5UaGUgcm9vdCBlbGVtZW50LCBpbiB0aGUgZm9ybSBvZiBhbiA8Y29kZSBpZD13cml0aW5nOnRoZS1odG1sLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiA8YSBocmVmPSNzeW50YXgtZWxlbWVudHMgaWQ9d3JpdGluZzpzeW50YXgtZWxlbWVudHM+ZWxlbWVudDwvYT4uPGxpPkFueSBudW1iZXIgb2YgPGEgaHJlZj0jc3ludGF4LWNvbW1lbnRzIGlkPXdyaXRpbmc6c3ludGF4LWNvbW1lbnRzLTM+Y29tbWVudHM8L2E+IGFuZCA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPXdyaXRpbmc6c3BhY2UtY2hhcmFjdGVyLTM+c3BhY2UgY2hhcmFjdGVyczwvYT4uPC9vbD4KKworICA8cD5UaGUgdmFyaW91cyB0eXBlcyBvZiBjb250ZW50IG1lbnRpb25lZCBhYm92ZSBhcmUgZGVzY3JpYmVkIGluIHRoZSBuZXh0IGZldyBzZWN0aW9ucy48L3A+CisKKyAgPHA+SW4gYWRkaXRpb24sIHRoZXJlIGFyZSBzb21lIHJlc3RyaWN0aW9ucyBvbiBob3cgPGEgaHJlZj1zZW1hbnRpY3MuaHRtbCNjaGFyYWN0ZXItZW5jb2RpbmctZGVjbGFyYXRpb24gaWQ9d3JpdGluZzpjaGFyYWN0ZXItZW5jb2RpbmctZGVjbGFyYXRpb24+Y2hhcmFjdGVyIGVuY29kaW5nIGRlY2xhcmF0aW9uczwvYT4gYXJlIHRvIGJlIHNlcmlhbGlzZWQsIGFzIGRpc2N1c3NlZCBpbiB0aGUKKyAgc2VjdGlvbiBvbiB0aGF0IHRvcGljLjwvcD4KKworICA8ZGl2IGNsYXNzPW5vdGU+CisKKyAgIDxwPlNwYWNlIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSByb290IDxjb2RlIGlkPXdyaXRpbmc6dGhlLWh0bWwtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCwgYW5kIHNwYWNlIGNoYXJhY3RlcnMgYXQgdGhlIHN0YXJ0CisgICBvZiB0aGUgPGNvZGUgaWQ9d3JpdGluZzp0aGUtaHRtbC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IGFuZCBiZWZvcmUgdGhlIDxjb2RlIGlkPXdyaXRpbmc6dGhlLWhlYWQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+IGVsZW1lbnQsIHdpbGwgYmUgZHJvcHBlZCB3aGVuCisgICB0aGUgZG9jdW1lbnQgaXMgcGFyc2VkOyBzcGFjZSBjaGFyYWN0ZXJzIDxlbT5hZnRlcjwvZW0+IHRoZSByb290IDxjb2RlIGlkPXdyaXRpbmc6dGhlLWh0bWwtZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCB3aWxsCisgICBiZSBwYXJzZWQgYXMgaWYgdGhleSB3ZXJlIGF0IHRoZSBlbmQgb2YgdGhlIDxjb2RlIGlkPXdyaXRpbmc6dGhlLWJvZHktZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+IGVsZW1lbnQuIFRodXMsIHNwYWNlIGNoYXJhY3RlcnMKKyAgIGFyb3VuZCB0aGUgcm9vdCBlbGVtZW50IGRvIG5vdCByb3VuZC10cmlwLjwvcD4KKworICAgPHA+SXQgaXMgc3VnZ2VzdGVkIHRoYXQgbmV3bGluZXMgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIERPQ1RZUEUsIGFmdGVyIGFueSBjb21tZW50cyB0aGF0IGFyZQorICAgYmVmb3JlIHRoZSByb290IGVsZW1lbnQsIGFmdGVyIHRoZSA8Y29kZSBpZD13cml0aW5nOnRoZS1odG1sLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQncyBzdGFydCB0YWcgKGlmIGl0IGlzIG5vdCA8YSBocmVmPSNzeW50YXgtdGFnLW9taXNzaW9uIGlkPXdyaXRpbmc6c3ludGF4LXRhZy1vbWlzc2lvbj5vbWl0dGVkPC9hPiksIGFuZCBhZnRlciBhbnkgY29tbWVudHMgdGhhdCBhcmUgaW5zaWRlIHRoZQorICAgPGNvZGUgaWQ9d3JpdGluZzp0aGUtaHRtbC1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IGJ1dCBiZWZvcmUgdGhlIDxjb2RlIGlkPXdyaXRpbmc6dGhlLWhlYWQtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT4gZWxlbWVudC48L3A+CisKKyAgPC9kaXY+CisKKyAgPHA+TWFueSBzdHJpbmdzIGluIHRoZSBIVE1MIHN5bnRheCAoZS5nLiB0aGUgbmFtZXMgb2YgZWxlbWVudHMgYW5kIHRoZWlyIGF0dHJpYnV0ZXMpIGFyZQorICBjYXNlLWluc2Vuc2l0aXZlLCBidXQgb25seSBmb3IgPGEgaWQ9d3JpdGluZzp1cHBlcmNhc2UtYXNjaWktbGV0dGVycyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+dXBwZXJjYXNlIEFTQ0lJIGxldHRlcnM8L2E+IGFuZCA8YSBpZD13cml0aW5nOmxvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNsb3dlcmNhc2UtYXNjaWktbGV0dGVycz5sb3dlcmNhc2UgQVNDSUkKKyAgbGV0dGVyczwvYT4uIEZvciBjb252ZW5pZW5jZSwgaW4gdGhpcyBzZWN0aW9uIHRoaXMgaXMganVzdCByZWZlcnJlZCB0byBhcworICAiY2FzZS1pbnNlbnNpdGl2ZSIuPC9wPgorCisKKyAgPGg0IGlkPXRoZS1kb2N0eXBlPjEyLjEuMSBUaGUgRE9DVFlQRTwvaDQ+PGRpdiBjbGFzcz1zdGF0dXM+PGlucHV0IG9uY2xpY2s9dG9nZ2xlU3RhdHVzKHRoaXMpIHZhbHVlPeKLsCB0eXBlPWJ1dHRvbj48cCBjbGFzcz1idWdzPjxzdHJvbmc+U3BlYyBidWdzOjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI1MjMyIiB0aXRsZT0iRGUtZW1waGFzaXMgRE9DVFlQRTogc2hpZnQgZm9jdXMgZnJvbSDigJ1yZXF1aXJlZCBwcmVhbWJsZeKAnSB0byDigJ1yZXF1aXJlZCByZW5kZXJpbmcgbW9kZeKAnSI+MjUyMzI8L2E+PC9kaXY+CisKKyAgPHA+QSA8ZGZuIGlkPXN5bnRheC1kb2N0eXBlPkRPQ1RZUEU8L2Rmbj4gaXMgYQorICByZXF1aXJlZCBwcmVhbWJsZS48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5ET0NUWVBFcyBhcmUgcmVxdWlyZWQgZm9yIGxlZ2FjeSByZWFzb25zLiBXaGVuIG9taXR0ZWQsIGJyb3dzZXJzIHRlbmQgdG8gdXNlIGEKKyAgZGlmZmVyZW50IHJlbmRlcmluZyBtb2RlIHRoYXQgaXMgaW5jb21wYXRpYmxlIHdpdGggc29tZSBzcGVjaWZpY2F0aW9ucy4gSW5jbHVkaW5nIHRoZSBET0NUWVBFIGluIGEKKyAgZG9jdW1lbnQgZW5zdXJlcyB0aGF0IHRoZSBicm93c2VyIG1ha2VzIGEgYmVzdC1lZmZvcnQgYXR0ZW1wdCBhdCBmb2xsb3dpbmcgdGhlIHJlbGV2YW50CisgIHNwZWNpZmljYXRpb25zLjwvcD4KKworICA8cD5BIERPQ1RZUEUgbXVzdCBjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50cywgaW4gdGhpcyBvcmRlcjo8L3A+CisKKyAgPG9sIGNsYXNzPWJyaWVmPjxsaT5BIHN0cmluZyB0aGF0IGlzIGFuIDxhIGlkPXRoZS1kb2N0eXBlOmFzY2lpLWNhc2UtaW5zZW5zaXRpdmUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FzY2lpLWNhc2UtaW5zZW5zaXRpdmU+QVNDSUkgY2FzZS1pbnNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIjxjb2RlPiZsdDshRE9DVFlQRTwvY29kZT4iLjxsaT5PbmUgb3IgbW9yZSA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPXRoZS1kb2N0eXBlOnNwYWNlLWNoYXJhY3Rlcj5zcGFjZSBjaGFyYWN0ZXJzPC9hPi48bGk+QSBzdHJpbmcgdGhhdCBpcyBhbiA8YSBpZD10aGUtZG9jdHlwZTphc2NpaS1jYXNlLWluc2Vuc2l0aXZlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FzY2lpLWNhc2UtaW5zZW5zaXRpdmU+QVNDSUkgY2FzZS1pbnNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIjxjb2RlPmh0bWw8L2NvZGU+Ii48bGk+T3B0aW9uYWxseSwgYSA8YSBocmVmPSNkb2N0eXBlLWxlZ2FjeS1zdHJpbmcgaWQ9dGhlLWRvY3R5cGU6ZG9jdHlwZS1sZWdhY3ktc3RyaW5nPkRPQ1RZUEUgbGVnYWN5IHN0cmluZzwvYT4gb3IgYW4gPGEgaHJlZj0jb2Jzb2xldGUtcGVybWl0dGVkLWRvY3R5cGUtc3RyaW5nIGlkPXRoZS1kb2N0eXBlOm9ic29sZXRlLXBlcm1pdHRlZC1kb2N0eXBlLXN0cmluZz5vYnNvbGV0ZSBwZXJtaXR0ZWQgRE9DVFlQRSBzdHJpbmc8L2E+IChkZWZpbmVkIGJlbG93KS48bGk+WmVybyBvciBtb3JlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9dGhlLWRvY3R5cGU6c3BhY2UtY2hhcmFjdGVyLTI+c3BhY2UgY2hhcmFjdGVyczwvYT4uPGxpPkEgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOIGNoYXJhY3RlciAoPikuPC9vbD4KKworICA8cCBjbGFzcz1ub3RlPkluIG90aGVyIHdvcmRzLCA8Y29kZT4mbHQ7IURPQ1RZUEUgaHRtbD48L2NvZGU+LCBjYXNlLWluc2Vuc2l0aXZlbHkuPC9wPgorCisgIDxocj4KKworICA8cD5Gb3IgdGhlIHB1cnBvc2VzIG9mIEhUTUwgZ2VuZXJhdG9ycyB0aGF0IGNhbm5vdCBvdXRwdXQgSFRNTCBtYXJrdXAgd2l0aCB0aGUgc2hvcnQgRE9DVFlQRQorICAiPGNvZGU+Jmx0OyFET0NUWVBFIGh0bWw+PC9jb2RlPiIsIGEgPGRmbiBpZD1kb2N0eXBlLWxlZ2FjeS1zdHJpbmc+RE9DVFlQRSBsZWdhY3kgc3RyaW5nPC9kZm4+IG1heSBiZSBpbnNlcnRlZAorICBpbnRvIHRoZSBET0NUWVBFIChpbiB0aGUgcG9zaXRpb24gZGVmaW5lZCBhYm92ZSkuIFRoaXMgc3RyaW5nIG11c3QgY29uc2lzdCBvZjo8L3A+CisKKyAgPG9sIGNsYXNzPWJyaWVmPjxsaT5PbmUgb3IgbW9yZSA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPXRoZS1kb2N0eXBlOnNwYWNlLWNoYXJhY3Rlci0zPnNwYWNlIGNoYXJhY3RlcnM8L2E+LjxsaT5BIHN0cmluZyB0aGF0IGlzIGFuIDxhIGlkPXRoZS1kb2N0eXBlOmFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktY2FzZS1pbnNlbnNpdGl2ZT5BU0NJSSBjYXNlLWluc2Vuc2l0aXZlPC9hPiBtYXRjaCBmb3IgdGhlIHN0cmluZyAiPGNvZGU+U1lTVEVNPC9jb2RlPiIuPGxpPk9uZSBvciBtb3JlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9dGhlLWRvY3R5cGU6c3BhY2UtY2hhcmFjdGVyLTQ+c3BhY2UgY2hhcmFjdGVyczwvYT4uPGxpPkEgVSswMDIyIFFVT1RBVElPTiBNQVJLIG9yIFUrMDAyNyBBUE9TVFJPUEhFIGNoYXJhY3RlciAodGhlIDxpPnF1b3RlIG1hcms8L2k+KS48bGk+VGhlIGxpdGVyYWwgc3RyaW5nICI8Y29kZSBpZD10aGUtZG9jdHlwZTphYm91dDpsZWdhY3ktY29tcGF0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhYm91dDpsZWdhY3ktY29tcGF0PmFib3V0OmxlZ2FjeS1jb21wYXQ8L2E+PC9jb2RlPiIuPGxpPkEgbWF0Y2hpbmcgVSswMDIyIFFVT1RBVElPTiBNQVJLIG9yIFUrMDAyNyBBUE9TVFJPUEhFIGNoYXJhY3RlciAoaS5lLiB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgaW4gdGhlIGVhcmxpZXIgc3RlcCBsYWJlbGVkIDxpPnF1b3RlIG1hcms8L2k+KS48L29sPgorCisgIDxwIGNsYXNzPW5vdGU+SW4gb3RoZXIgd29yZHMsIDxjb2RlPiZsdDshRE9DVFlQRSBodG1sIFNZU1RFTSAiYWJvdXQ6bGVnYWN5LWNvbXBhdCI+PC9jb2RlPiBvcgorICA8Y29kZT4mbHQ7IURPQ1RZUEUgaHRtbCBTWVNURU0gJ2Fib3V0OmxlZ2FjeS1jb21wYXQnPjwvY29kZT4sIGNhc2UtaW5zZW5zaXRpdmVseSBleGNlcHQgZm9yIHRoZQorICBwYXJ0IGluIHNpbmdsZSBvciBkb3VibGUgcXVvdGVzLjwvcD4KKworICA8cD5UaGUgPGEgaHJlZj0jZG9jdHlwZS1sZWdhY3ktc3RyaW5nIGlkPXRoZS1kb2N0eXBlOmRvY3R5cGUtbGVnYWN5LXN0cmluZy0yPkRPQ1RZUEUgbGVnYWN5IHN0cmluZzwvYT4gc2hvdWxkIG5vdCBiZSB1c2VkIHVubGVzcyB0aGUgZG9jdW1lbnQgaXMgZ2VuZXJhdGVkIGZyb20KKyAgYSBzeXN0ZW0gdGhhdCBjYW5ub3Qgb3V0cHV0IHRoZSBzaG9ydGVyIHN0cmluZy48L3A+CisKKyAgPGhyPgorCisKKworICA8cD5UbyBoZWxwIGF1dGhvcnMgdHJhbnNpdGlvbiBmcm9tIEhUTUw0IGFuZCBYSFRNTDEsIGFuIDxkZm4gaWQ9b2Jzb2xldGUtcGVybWl0dGVkLWRvY3R5cGUtc3RyaW5nPm9ic29sZXRlIHBlcm1pdHRlZCBET0NUWVBFCisgIHN0cmluZzwvZGZuPiBjYW4gYmUgaW5zZXJ0ZWQgaW50byB0aGUgRE9DVFlQRSAoaW4gdGhlIHBvc2l0aW9uIGRlZmluZWQgYWJvdmUpLiBUaGlzIHN0cmluZyBtdXN0CisgIGNvbnNpc3Qgb2Y6PGRpdiBjbGFzcz1zdGF0dXM+PGlucHV0IG9uY2xpY2s9dG9nZ2xlU3RhdHVzKHRoaXMpIHZhbHVlPeKLsCB0eXBlPWJ1dHRvbj48cCBjbGFzcz1idWdzPjxzdHJvbmc+U3BlYyBidWdzOjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIzNzUzIiB0aXRsZT0iQSBtb3JlIGluZm9ybWF0aXZlIG1lc3NhZ2UgZm9yIOKAnG9ic29sZXRlIHBlcm1pdHRlZCBET0NUWVBF4oCdIj4yMzc1MzwvYT48L2Rpdj4KKworICA8b2wgY2xhc3M9YnJpZWY+PGxpPk9uZSBvciBtb3JlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9dGhlLWRvY3R5cGU6c3BhY2UtY2hhcmFjdGVyLTU+c3BhY2UgY2hhcmFjdGVyczwvYT4uPGxpPkEgc3RyaW5nIHRoYXQgaXMgYW4gPGEgaWQ9dGhlLWRvY3R5cGU6YXNjaWktY2FzZS1pbnNlbnNpdGl2ZS00IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhc2NpaS1jYXNlLWluc2Vuc2l0aXZlPkFTQ0lJIGNhc2UtaW5zZW5zaXRpdmU8L2E+IG1hdGNoIGZvciB0aGUgc3RyaW5nICI8Y29kZT5QVUJMSUM8L2NvZGU+Ii48bGk+T25lIG9yIG1vcmUgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3RlciBpZD10aGUtZG9jdHlwZTpzcGFjZS1jaGFyYWN0ZXItNj5zcGFjZSBjaGFyYWN0ZXJzPC9hPi48bGk+QSBVKzAwMjIgUVVPVEFUSU9OIE1BUksgb3IgVSswMDI3IEFQT1NUUk9QSEUgY2hhcmFjdGVyICh0aGUgPGk+Zmlyc3QgcXVvdGUgbWFyazwvaT4pLjxsaT5UaGUgc3RyaW5nIGZyb20gb25lIG9mIHRoZSBjZWxscyBpbiB0aGUgZmlyc3QgY29sdW1uIG9mIHRoZSB0YWJsZSBiZWxvdy4gVGhlIHJvdyB0byB3aGljaCB0aGlzIGNlbGwgYmVsb25ncyBpcyB0aGUgPGk+c2VsZWN0ZWQgcm93PC9pPi48bGk+QSBtYXRjaGluZyBVKzAwMjIgUVVPVEFUSU9OIE1BUksgb3IgVSswMDI3IEFQT1NUUk9QSEUgY2hhcmFjdGVyIChpLmUuIHRoZSBzYW1lIGNoYXJhY3RlciBhcyBpbiB0aGUgZWFybGllciBzdGVwIGxhYmVsZWQgPGk+Zmlyc3QgcXVvdGUgbWFyazwvaT4pLjxsaT5JZiB0aGUgY2VsbCBpbiB0aGUgc2Vjb25kIGNvbHVtbiBvZiB0aGUgPGk+c2VsZWN0ZWQgcm93PC9pPiBpcyBub3QgYmxhbmssIG9uZSBvciBtb3JlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9dGhlLWRvY3R5cGU6c3BhY2UtY2hhcmFjdGVyLTc+c3BhY2UgY2hhcmFjdGVyczwvYT4uPGxpPklmIHRoZSBjZWxsIGluIHRoZSBzZWNvbmQgY29sdW1uIG9mIHRoZSA8aT5zZWxlY3RlZCByb3c8L2k+IGlzIG5vdCBibGFuaywgYSBVKzAwMjIgUVVPVEFUSU9OIE1BUksgb3IgVSswMDI3IEFQT1NUUk9QSEUgY2hhcmFjdGVyICh0aGUgPGk+dGhpcmQgcXVvdGUgbWFyazwvaT4pLjxsaT5JZiB0aGUgY2VsbCBpbiB0aGUgc2Vjb25kIGNvbHVtbiBvZiB0aGUgPGk+c2VsZWN0ZWQgcm93PC9pPiBpcyBub3QgYmxhbmssIHRoZSBzdHJpbmcgZnJvbSB0aGUgY2VsbCBpbiB0aGUgc2Vjb25kIGNvbHVtbiBvZiB0aGUgPGk+c2VsZWN0ZWQgcm93PC9pPi48bGk+SWYgdGhlIGNlbGwgaW4gdGhlIHNlY29uZCBjb2x1bW4gb2YgdGhlIDxpPnNlbGVjdGVkIHJvdzwvaT4gaXMgbm90IGJsYW5rLCBhIG1hdGNoaW5nIFUrMDAyMiBRVU9UQVRJT04gTUFSSyBvciBVKzAwMjcgQVBPU1RST1BIRSBjaGFyYWN0ZXIgKGkuZS4gdGhlIHNhbWUgY2hhcmFjdGVyIGFzIGluIHRoZSBlYXJsaWVyIHN0ZXAgbGFiZWxlZCA8aT50aGlyZCBxdW90ZSBtYXJrPC9pPikuPC9vbD4KKworICA8dGFibGU+PGNhcHRpb24+CisgICAgQWxsb3dlZCB2YWx1ZXMgZm9yIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIGluIGFuIDxhIGhyZWY9I29ic29sZXRlLXBlcm1pdHRlZC1kb2N0eXBlLXN0cmluZyBpZD10aGUtZG9jdHlwZTpvYnNvbGV0ZS1wZXJtaXR0ZWQtZG9jdHlwZS1zdHJpbmctMj5vYnNvbGV0ZSBwZXJtaXR0ZWQgRE9DVFlQRSBzdHJpbmc8L2E+LgorICAgPC9jYXB0aW9uPjx0aGVhZD48dHI+PHRoPiBQdWJsaWMgaWRlbnRpZmllcgorICAgICA8dGg+IFN5c3RlbSBpZGVudGlmaWVyCisgICA8dGJvZHk+PHRyPjx0ZD4gPGNvZGU+LS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOPC9jb2RlPgorICAgICA8dGQ+CisgICAgPHRyPjx0ZD4gPGNvZGU+LS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOPC9jb2RlPgorICAgICA8dGQ+IDxjb2RlPmh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvc3RyaWN0LmR0ZDwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOPC9jb2RlPgorICAgICA8dGQ+CisgICAgPHRyPjx0ZD4gPGNvZGU+LS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTjwvY29kZT4KKyAgICAgPHRkPiA8Y29kZT5odHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOPC9jb2RlPgorICAgICA8dGQ+IDxjb2RlPmh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQ8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+LS8vVzNDLy9EVEQgWEhUTUwgMS4xLy9FTjwvY29kZT4KKyAgICAgPHRkPiA8Y29kZT5odHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDExL0RURC94aHRtbDExLmR0ZDwvY29kZT4KKyAgPC90YWJsZT4KKworICA8cD5BIDxhIGhyZWY9I3N5bnRheC1kb2N0eXBlIGlkPXRoZS1kb2N0eXBlOnN5bnRheC1kb2N0eXBlPkRPQ1RZUEU8L2E+IGNvbnRhaW5pbmcgYW4gPGEgaHJlZj0jb2Jzb2xldGUtcGVybWl0dGVkLWRvY3R5cGUtc3RyaW5nIGlkPXRoZS1kb2N0eXBlOm9ic29sZXRlLXBlcm1pdHRlZC1kb2N0eXBlLXN0cmluZy0zPm9ic29sZXRlIHBlcm1pdHRlZCBET0NUWVBFCisgIHN0cmluZzwvYT4gaXMgYW4gPGRmbiBpZD1vYnNvbGV0ZS1wZXJtaXR0ZWQtZG9jdHlwZT5vYnNvbGV0ZSBwZXJtaXR0ZWQgRE9DVFlQRTwvZGZuPi4gQXV0aG9ycyBzaG91bGQgbm90IHVzZSA8YSBocmVmPSNvYnNvbGV0ZS1wZXJtaXR0ZWQtZG9jdHlwZSBpZD10aGUtZG9jdHlwZTpvYnNvbGV0ZS1wZXJtaXR0ZWQtZG9jdHlwZT5vYnNvbGV0ZSBwZXJtaXR0ZWQgRE9DVFlQRXM8L2E+LCBhcyB0aGV5IGFyZSB1bm5lY2Vzc2FyaWx5CisgIGxvbmcuPC9wPgorCisKKworCisgIDxoNCBpZD1lbGVtZW50cy0yPjEyLjEuMiBFbGVtZW50czwvaDQ+CisKKyAgPHA+VGhlcmUgYXJlIGZpdmUgZGlmZmVyZW50IGtpbmRzIG9mIDxkZm4gaWQ9c3ludGF4LWVsZW1lbnRzPmVsZW1lbnRzPC9kZm4+OiA8YSBocmVmPSN2b2lkLWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6dm9pZC1lbGVtZW50cz52b2lkCisgIGVsZW1lbnRzPC9hPiwgPGEgaHJlZj0jcmF3LXRleHQtZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjpyYXctdGV4dC1lbGVtZW50cz5yYXcgdGV4dCBlbGVtZW50czwvYT4sIDxhIGhyZWY9I2VzY2FwYWJsZS1yYXctdGV4dC1lbGVtZW50cyBpZD1lbGVtZW50cy0yOmVzY2FwYWJsZS1yYXctdGV4dC1lbGVtZW50cz5lc2NhcGFibGUgcmF3IHRleHQgZWxlbWVudHM8L2E+LAorICA8YSBocmVmPSNmb3JlaWduLWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6Zm9yZWlnbi1lbGVtZW50cz5mb3JlaWduIGVsZW1lbnRzPC9hPiwgYW5kIDxhIGhyZWY9I25vcm1hbC1lbGVtZW50cyBpZD1lbGVtZW50cy0yOm5vcm1hbC1lbGVtZW50cz5ub3JtYWwgZWxlbWVudHM8L2E+LjwvcD4KKworICA8ZGw+PGR0PjxkZm4gaWQ9dm9pZC1lbGVtZW50cz5Wb2lkIGVsZW1lbnRzPC9kZm4+PGRkPjxjb2RlIGlkPWVsZW1lbnRzLTI6dGhlLWFyZWEtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtYXJlYS1lbGVtZW50PmFyZWE8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUtYmFzZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJhc2UtZWxlbWVudD5iYXNlPC9hPjwvY29kZT4sIDxjb2RlIGlkPWVsZW1lbnRzLTI6dGhlLWJyLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYnItZWxlbWVudD5icjwvYT48L2NvZGU+LCA8Y29kZSBpZD1lbGVtZW50cy0yOnRoZS1jb2wtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jb2wtZWxlbWVudD5jb2w8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUtZW1iZWQtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtZW1iZWQtZWxlbWVudD5lbWJlZDwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUtaHItZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oci1lbGVtZW50PmhyPC9hPjwvY29kZT4sIDxjb2RlIGlkPWVsZW1lbnRzLTI6dGhlLWltZy1lbGVtZW50PjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI3RoZS1pbWctZWxlbWVudD5pbWc8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUtaW5wdXQtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQ+aW5wdXQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUta2V5Z2VuLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1rZXlnZW4tZWxlbWVudD5rZXlnZW48L2E+PC9jb2RlPiwgPGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUtbGluay1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWxpbmstZWxlbWVudD5saW5rPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD1lbGVtZW50cy0yOnRoZS1tZW51aXRlbS1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtbWVudWl0ZW0tZWxlbWVudD5tZW51aXRlbTwvYT48L2NvZGU+LCA8Y29kZSBpZD1lbGVtZW50cy0yOnRoZS1tZXRhLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbWV0YS1lbGVtZW50Pm1ldGE8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUtcGFyYW0tZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtcGFyYW0tZWxlbWVudD5wYXJhbTwvYT48L2NvZGU+LCA8Y29kZSBpZD1lbGVtZW50cy0yOnRoZS1zb3VyY2UtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtc291cmNlLWVsZW1lbnQ+c291cmNlPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD1lbGVtZW50cy0yOnRoZS10cmFjay1lbGVtZW50PjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI3RoZS10cmFjay1lbGVtZW50PnRyYWNrPC9hPjwvY29kZT4sIDxjb2RlIGlkPWVsZW1lbnRzLTI6dGhlLXdici1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXdici1lbGVtZW50PndicjwvYT48L2NvZGU+PGR0PjxkZm4gaWQ9cmF3LXRleHQtZWxlbWVudHM+UmF3IHRleHQgZWxlbWVudHM8L2Rmbj48ZGQ+PGNvZGUgaWQ9ZWxlbWVudHMtMjp0aGUtc2NyaXB0LWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4sIDxjb2RlIGlkPWVsZW1lbnRzLTI6dGhlLXN0eWxlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtc3R5bGUtZWxlbWVudD5zdHlsZTwvYT48L2NvZGU+PGR0PjxkZm4gaWQ9ZXNjYXBhYmxlLXJhdy10ZXh0LWVsZW1lbnRzPmVzY2FwYWJsZSByYXcgdGV4dCBlbGVtZW50czwvZGZuPjxkZD48Y29kZSBpZD1lbGVtZW50cy0yOnRoZS10ZXh0YXJlYS1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtdGV4dGFyZWEtZWxlbWVudD50ZXh0YXJlYTwvYT48L2NvZGU+LCA8Y29kZSBpZD1lbGVtZW50cy0yOnRoZS10aXRsZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXRpdGxlLWVsZW1lbnQ+dGl0bGU8L2E+PC9jb2RlPjxkdD48ZGZuIGlkPWZvcmVpZ24tZWxlbWVudHM+Rm9yZWlnbiBlbGVtZW50czwvZGZuPjxkZD5FbGVtZW50cyBmcm9tIHRoZSA8YSBpZD1lbGVtZW50cy0yOm1hdGhtbC1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI21hdGhtbC1uYW1lc3BhY2U+TWF0aE1MIG5hbWVzcGFjZTwvYT4gYW5kIHRoZSA8YSBpZD1lbGVtZW50cy0yOnN2Zy1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3N2Zy1uYW1lc3BhY2U+U1ZHIG5hbWVzcGFjZTwvYT4uPGR0PjxkZm4gaWQ9bm9ybWFsLWVsZW1lbnRzPk5vcm1hbCBlbGVtZW50czwvZGZuPjxkZD5BbGwgb3RoZXIgYWxsb3dlZCA8YSBpZD1lbGVtZW50cy0yOmh0bWwtZWxlbWVudHMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHM+SFRNTCBlbGVtZW50czwvYT4gYXJlIG5vcm1hbCBlbGVtZW50cy48L2RsPgorCisgIDxwPjxkZm4gaWQ9c3ludGF4LXRhZ3M+VGFnczwvZGZuPiBhcmUgdXNlZCB0byBkZWxpbWl0IHRoZSBzdGFydCBhbmQgZW5kIG9mIGVsZW1lbnRzIGluIHRoZQorICBtYXJrdXAuIDxhIGhyZWY9I3Jhdy10ZXh0LWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6cmF3LXRleHQtZWxlbWVudHMtMj5SYXcgdGV4dDwvYT4sIDxhIGhyZWY9I2VzY2FwYWJsZS1yYXctdGV4dC1lbGVtZW50cyBpZD1lbGVtZW50cy0yOmVzY2FwYWJsZS1yYXctdGV4dC1lbGVtZW50cy0yPmVzY2FwYWJsZSByYXcgdGV4dDwvYT4sIGFuZCA8YSBocmVmPSNub3JtYWwtZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjpub3JtYWwtZWxlbWVudHMtMj5ub3JtYWw8L2E+IGVsZW1lbnRzIGhhdmUKKyAgYSA8YSBocmVmPSNzeW50YXgtc3RhcnQtdGFnIGlkPWVsZW1lbnRzLTI6c3ludGF4LXN0YXJ0LXRhZz5zdGFydCB0YWc8L2E+IHRvIGluZGljYXRlIHdoZXJlIHRoZXkgYmVnaW4sIGFuZCBhbiA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1lbGVtZW50cy0yOnN5bnRheC1lbmQtdGFnPmVuZCB0YWc8L2E+IHRvIGluZGljYXRlIHdoZXJlIHRoZXkgZW5kLiBUaGUgc3RhcnQgYW5kIGVuZCB0YWdzIG9mCisgIGNlcnRhaW4gPGEgaHJlZj0jbm9ybWFsLWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6bm9ybWFsLWVsZW1lbnRzLTM+bm9ybWFsIGVsZW1lbnRzPC9hPiBjYW4gYmUgPGEgaHJlZj0jc3ludGF4LXRhZy1vbWlzc2lvbiBpZD1lbGVtZW50cy0yOnN5bnRheC10YWctb21pc3Npb24+b21pdHRlZDwvYT4sIGFzCisgIGRlc2NyaWJlZCBiZWxvdyBpbiB0aGUgc2VjdGlvbiBvbiA8YSBocmVmPSNzeW50YXgtdGFnLW9taXNzaW9uIGlkPWVsZW1lbnRzLTI6c3ludGF4LXRhZy1vbWlzc2lvbi0yPm9wdGlvbmFsIHRhZ3M8L2E+LiBUaG9zZQorICB0aGF0IGNhbm5vdCBiZSBvbWl0dGVkIG11c3Qgbm90IGJlIG9taXR0ZWQuIDxhIGhyZWY9I3ZvaWQtZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjp2b2lkLWVsZW1lbnRzLTI+Vm9pZCBlbGVtZW50czwvYT4gb25seSBoYXZlIGEgc3RhcnQgdGFnOyBlbmQKKyAgdGFncyBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgZm9yIDxhIGhyZWY9I3ZvaWQtZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjp2b2lkLWVsZW1lbnRzLTM+dm9pZCBlbGVtZW50czwvYT4uIDxhIGhyZWY9I2ZvcmVpZ24tZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjpmb3JlaWduLWVsZW1lbnRzLTI+Rm9yZWlnbiBlbGVtZW50czwvYT4gbXVzdAorICBlaXRoZXIgaGF2ZSBhIHN0YXJ0IHRhZyBhbmQgYW4gZW5kIHRhZywgb3IgYSBzdGFydCB0YWcgdGhhdCBpcyBtYXJrZWQgYXMgc2VsZi1jbG9zaW5nLCBpbiB3aGljaAorICBjYXNlIHRoZXkgbXVzdCBub3QgaGF2ZSBhbiBlbmQgdGFnLjwvcD4KKworICA8cD5UaGUgPGEgaHJlZj1kb20uaHRtbCNjb25jZXB0LWh0bWwtY29udGVudHMgaWQ9ZWxlbWVudHMtMjpjb25jZXB0LWh0bWwtY29udGVudHM+Y29udGVudHM8L2E+IG9mIHRoZSBlbGVtZW50IG11c3QgYmUgcGxhY2VkIGJldHdlZW4KKyAganVzdCBhZnRlciB0aGUgc3RhcnQgdGFnICh3aGljaCA8YSBocmVmPSNzeW50YXgtdGFnLW9taXNzaW9uIGlkPWVsZW1lbnRzLTI6c3ludGF4LXRhZy1vbWlzc2lvbi0zPm1pZ2h0IGJlIGltcGxpZWQsIGluIGNlcnRhaW4KKyAgY2FzZXM8L2E+KSBhbmQganVzdCBiZWZvcmUgdGhlIGVuZCB0YWcgKHdoaWNoIGFnYWluLCA8YSBocmVmPSNzeW50YXgtdGFnLW9taXNzaW9uIGlkPWVsZW1lbnRzLTI6c3ludGF4LXRhZy1vbWlzc2lvbi00Pm1pZ2h0IGJlCisgIGltcGxpZWQgaW4gY2VydGFpbiBjYXNlczwvYT4pLiBUaGUgZXhhY3QgYWxsb3dlZCBjb250ZW50cyBvZiBlYWNoIGluZGl2aWR1YWwgZWxlbWVudCBkZXBlbmQgb24KKyAgdGhlIDxhIGhyZWY9ZG9tLmh0bWwjY29udGVudC1tb2RlbHMgaWQ9ZWxlbWVudHMtMjpjb250ZW50LW1vZGVscz5jb250ZW50IG1vZGVsPC9hPiBvZiB0aGF0IGVsZW1lbnQsIGFzIGRlc2NyaWJlZCBlYXJsaWVyIGluCisgIHRoaXMgc3BlY2lmaWNhdGlvbi4gRWxlbWVudHMgbXVzdCBub3QgY29udGFpbiBjb250ZW50IHRoYXQgdGhlaXIgY29udGVudCBtb2RlbCBkaXNhbGxvd3MuIEluCisgIGFkZGl0aW9uIHRvIHRoZSByZXN0cmljdGlvbnMgcGxhY2VkIG9uIHRoZSBjb250ZW50cyBieSB0aG9zZSBjb250ZW50IG1vZGVscywgaG93ZXZlciwgdGhlIGZpdmUKKyAgdHlwZXMgb2YgZWxlbWVudHMgaGF2ZSBhZGRpdGlvbmFsIDxlbT5zeW50YWN0aWM8L2VtPiByZXF1aXJlbWVudHMuPC9wPgorCisgIDxwPjxhIGhyZWY9I3ZvaWQtZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjp2b2lkLWVsZW1lbnRzLTQ+Vm9pZCBlbGVtZW50czwvYT4gY2FuJ3QgaGF2ZSBhbnkgY29udGVudHMgKHNpbmNlIHRoZXJlJ3Mgbm8gZW5kIHRhZywgbm8gY29udGVudCBjYW4gYmUKKyAgcHV0IGJldHdlZW4gdGhlIHN0YXJ0IHRhZyBhbmQgdGhlIGVuZCB0YWcpLjwvcD4KKworICA8cD48YSBocmVmPSNyYXctdGV4dC1lbGVtZW50cyBpZD1lbGVtZW50cy0yOnJhdy10ZXh0LWVsZW1lbnRzLTM+UmF3IHRleHQgZWxlbWVudHM8L2E+IGNhbiBoYXZlIDxhIGhyZWY9I3N5bnRheC10ZXh0IGlkPWVsZW1lbnRzLTI6c3ludGF4LXRleHQ+dGV4dDwvYT4sIHRob3VnaCBpdCBoYXMgPGEgaHJlZj0jY2RhdGEtcmNkYXRhLXJlc3RyaWN0aW9ucz5yZXN0cmljdGlvbnM8L2E+IGRlc2NyaWJlZCBiZWxvdy48L3A+CisKKyAgPHA+PGEgaHJlZj0jZXNjYXBhYmxlLXJhdy10ZXh0LWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6ZXNjYXBhYmxlLXJhdy10ZXh0LWVsZW1lbnRzLTM+RXNjYXBhYmxlIHJhdyB0ZXh0IGVsZW1lbnRzPC9hPiBjYW4gaGF2ZSA8YSBocmVmPSNzeW50YXgtdGV4dCBpZD1lbGVtZW50cy0yOnN5bnRheC10ZXh0LTI+dGV4dDwvYT4gYW5kCisgIDxhIGhyZWY9I3N5bnRheC1jaGFycmVmIGlkPWVsZW1lbnRzLTI6c3ludGF4LWNoYXJyZWY+Y2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+LCBidXQgdGhlIHRleHQgbXVzdCBub3QgY29udGFpbiBhbiA8YSBocmVmPSNzeW50YXgtYW1iaWd1b3VzLWFtcGVyc2FuZCBpZD1lbGVtZW50cy0yOnN5bnRheC1hbWJpZ3VvdXMtYW1wZXJzYW5kPmFtYmlndW91cyBhbXBlcnNhbmQ8L2E+LiBUaGVyZSBhcmUgYWxzbyA8YSBocmVmPSNjZGF0YS1yY2RhdGEtcmVzdHJpY3Rpb25zPmZ1cnRoZXIgcmVzdHJpY3Rpb25zPC9hPiBkZXNjcmliZWQgYmVsb3cuPC9wPgorCisgIDxwPjxhIGhyZWY9I2ZvcmVpZ24tZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjpmb3JlaWduLWVsZW1lbnRzLTM+Rm9yZWlnbiBlbGVtZW50czwvYT4gd2hvc2Ugc3RhcnQgdGFnIGlzIG1hcmtlZCBhcyBzZWxmLWNsb3NpbmcgY2FuJ3QgaGF2ZSBhbnkgY29udGVudHMKKyAgKHNpbmNlLCBhZ2FpbiwgYXMgdGhlcmUncyBubyBlbmQgdGFnLCBubyBjb250ZW50IGNhbiBiZSBwdXQgYmV0d2VlbiB0aGUgc3RhcnQgdGFnIGFuZCB0aGUgZW5kCisgIHRhZykuIDxhIGhyZWY9I2ZvcmVpZ24tZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjpmb3JlaWduLWVsZW1lbnRzLTQ+Rm9yZWlnbiBlbGVtZW50czwvYT4gd2hvc2Ugc3RhcnQgdGFnIGlzIDxlbT5ub3Q8L2VtPiBtYXJrZWQgYXMgc2VsZi1jbG9zaW5nIGNhbgorICBoYXZlIDxhIGhyZWY9I3N5bnRheC10ZXh0IGlkPWVsZW1lbnRzLTI6c3ludGF4LXRleHQtMz50ZXh0PC9hPiwgPGEgaHJlZj0jc3ludGF4LWNoYXJyZWYgaWQ9ZWxlbWVudHMtMjpzeW50YXgtY2hhcnJlZi0yPmNoYXJhY3RlcgorICByZWZlcmVuY2VzPC9hPiwgPGEgaHJlZj0jc3ludGF4LWNkYXRhIGlkPWVsZW1lbnRzLTI6c3ludGF4LWNkYXRhPkNEQVRBIHNlY3Rpb25zPC9hPiwgb3RoZXIgPGEgaHJlZj0jc3ludGF4LWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6c3ludGF4LWVsZW1lbnRzPmVsZW1lbnRzPC9hPiwgYW5kIDxhIGhyZWY9I3N5bnRheC1jb21tZW50cyBpZD1lbGVtZW50cy0yOnN5bnRheC1jb21tZW50cz5jb21tZW50czwvYT4sIGJ1dAorICB0aGUgdGV4dCBtdXN0IG5vdCBjb250YWluIHRoZSBjaGFyYWN0ZXIgVSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KSBvciBhbiA8YSBocmVmPSNzeW50YXgtYW1iaWd1b3VzLWFtcGVyc2FuZCBpZD1lbGVtZW50cy0yOnN5bnRheC1hbWJpZ3VvdXMtYW1wZXJzYW5kLTI+YW1iaWd1b3VzIGFtcGVyc2FuZDwvYT4uPC9wPgorCisgIDxkaXYgY2xhc3M9bm90ZT4KKworICAgPHA+VGhlIEhUTUwgc3ludGF4IGRvZXMgbm90IHN1cHBvcnQgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucywgZXZlbiBpbiA8YSBocmVmPSNmb3JlaWduLWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6Zm9yZWlnbi1lbGVtZW50cy01PmZvcmVpZ24KKyAgIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgIDxwPkZvciBpbnN0YW5jZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBIVE1MIGZyYWdtZW50OjwvcD4KKworICAgPHByZT4mbHQ7cD4KKyAmbHQ7c3ZnPgorICAmbHQ7bWV0YWRhdGE+CisgICAmbHQ7IS0tIHRoaXMgaXMgaW52YWxpZCAtLT4KKyAgICZsdDtjZHI6bGljZW5zZSB4bWxuczpjZHI9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vY2RyL21ldGFkYXRhIiBuYW1lPSJNSVQiLz4KKyAgJmx0Oy9tZXRhZGF0YT4KKyAmbHQ7L3N2Zz4KKyZsdDsvcD48L3ByZT4KKworICAgPHA+VGhlIGlubmVybW9zdCBlbGVtZW50LCA8Y29kZT5jZHI6bGljZW5zZTwvY29kZT4sIGlzIGFjdHVhbGx5IGluIHRoZSBTVkcgbmFtZXNwYWNlLCBhcworICAgdGhlICI8Y29kZT54bWxuczpjZHI8L2NvZGU+IiBhdHRyaWJ1dGUgaGFzIG5vIGVmZmVjdCAodW5saWtlIGluIFhNTCkuIEluIGZhY3QsIGFzIHRoZQorICAgY29tbWVudCBpbiB0aGUgZnJhZ21lbnQgYWJvdmUgc2F5cywgdGhlIGZyYWdtZW50IGlzIGFjdHVhbGx5IG5vbi1jb25mb3JtaW5nLiBUaGlzIGlzIGJlY2F1c2UgdGhlCisgICBTVkcgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBkZWZpbmUgYW55IGVsZW1lbnRzIGNhbGxlZCAiPGNvZGU+Y2RyOmxpY2Vuc2U8L2NvZGU+IiBpbiB0aGUKKyAgIFNWRyBuYW1lc3BhY2UuPC9wPgorCisgIDwvZGl2PgorCisgIDxwPjxhIGhyZWY9I25vcm1hbC1lbGVtZW50cyBpZD1lbGVtZW50cy0yOm5vcm1hbC1lbGVtZW50cy00Pk5vcm1hbCBlbGVtZW50czwvYT4gY2FuIGhhdmUgPGEgaHJlZj0jc3ludGF4LXRleHQgaWQ9ZWxlbWVudHMtMjpzeW50YXgtdGV4dC00PnRleHQ8L2E+LCA8YSBocmVmPSNzeW50YXgtY2hhcnJlZiBpZD1lbGVtZW50cy0yOnN5bnRheC1jaGFycmVmLTM+Y2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+LCBvdGhlciA8YSBocmVmPSNzeW50YXgtZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjpzeW50YXgtZWxlbWVudHMtMj5lbGVtZW50czwvYT4sIGFuZCA8YSBocmVmPSNzeW50YXgtY29tbWVudHMgaWQ9ZWxlbWVudHMtMjpzeW50YXgtY29tbWVudHMtMj5jb21tZW50czwvYT4sIGJ1dAorICB0aGUgdGV4dCBtdXN0IG5vdCBjb250YWluIHRoZSBjaGFyYWN0ZXIgVSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KSBvciBhbiA8YSBocmVmPSNzeW50YXgtYW1iaWd1b3VzLWFtcGVyc2FuZCBpZD1lbGVtZW50cy0yOnN5bnRheC1hbWJpZ3VvdXMtYW1wZXJzYW5kLTM+YW1iaWd1b3VzIGFtcGVyc2FuZDwvYT4uIFNvbWUgPGEgaHJlZj0jbm9ybWFsLWVsZW1lbnRzIGlkPWVsZW1lbnRzLTI6bm9ybWFsLWVsZW1lbnRzLTU+bm9ybWFsIGVsZW1lbnRzPC9hPgorICBhbHNvIGhhdmUgPGEgaHJlZj0jZWxlbWVudC1yZXN0cmljdGlvbnM+eWV0IG1vcmUgcmVzdHJpY3Rpb25zPC9hPiBvbiB3aGF0IGNvbnRlbnQgdGhleSBhcmUKKyAgYWxsb3dlZCB0byBob2xkLCBiZXlvbmQgdGhlIHJlc3RyaWN0aW9ucyBpbXBvc2VkIGJ5IHRoZSBjb250ZW50IG1vZGVsIGFuZCB0aG9zZSBkZXNjcmliZWQgaW4gdGhpcworICBwYXJhZ3JhcGguIFRob3NlIHJlc3RyaWN0aW9ucyBhcmUgZGVzY3JpYmVkIGJlbG93LjwvcD4KKworICA8cD5UYWdzIGNvbnRhaW4gYSA8ZGZuIGlkPXN5bnRheC10YWctbmFtZT50YWcgbmFtZTwvZGZuPiwgZ2l2aW5nIHRoZSBlbGVtZW50J3MgbmFtZS4gSFRNTAorICBlbGVtZW50cyBhbGwgaGF2ZSBuYW1lcyB0aGF0IG9ubHkgdXNlIDxhIGlkPWVsZW1lbnRzLTI6YWxwaGFudW1lcmljLWFzY2lpLWNoYXJhY3RlcnMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FscGhhbnVtZXJpYy1hc2NpaS1jaGFyYWN0ZXJzPmFscGhhbnVtZXJpYyBBU0NJSSBjaGFyYWN0ZXJzPC9hPi4gSW4gdGhlIEhUTUwKKyAgc3ludGF4LCB0YWcgbmFtZXMsIGV2ZW4gdGhvc2UgZm9yIDxhIGhyZWY9I2ZvcmVpZ24tZWxlbWVudHMgaWQ9ZWxlbWVudHMtMjpmb3JlaWduLWVsZW1lbnRzLTY+Zm9yZWlnbiBlbGVtZW50czwvYT4sIG1heSBiZSB3cml0dGVuIHdpdGggYW55IG1peCBvZgorICBsb3dlci0gYW5kIHVwcGVyY2FzZSBsZXR0ZXJzIHRoYXQsIHdoZW4gY29udmVydGVkIHRvIGFsbC1sb3dlcmNhc2UsIG1hdGNoZXMgdGhlIGVsZW1lbnQncyB0YWcKKyAgbmFtZTsgdGFnIG5hbWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlLjwvcD4KKworCisgIDxoNSBpZD1zdGFydC10YWdzPjEyLjEuMi4xIFN0YXJ0IHRhZ3M8L2g1PgorCisgIDxwPjxkZm4gaWQ9c3ludGF4LXN0YXJ0LXRhZz5TdGFydCB0YWdzPC9kZm4+IG11c3QgaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1hdDo8L3A+CisKKyAgPG9sPjxsaT5UaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgc3RhcnQgdGFnIG11c3QgYmUgYSBVKzAwM0MgTEVTUy1USEFOIFNJR04gY2hhcmFjdGVyICgmbHQ7KS48bGk+VGhlIG5leHQgZmV3IGNoYXJhY3RlcnMgb2YgYSBzdGFydCB0YWcgbXVzdCBiZSB0aGUgZWxlbWVudCdzIDxhIGhyZWY9I3N5bnRheC10YWctbmFtZSBpZD1zdGFydC10YWdzOnN5bnRheC10YWctbmFtZT50YWcgbmFtZTwvYT4uPGxpPklmIHRoZXJlIGFyZSB0byBiZSBhbnkgYXR0cmlidXRlcyBpbiB0aGUgbmV4dCBzdGVwLCB0aGVyZSBtdXN0IGZpcnN0IGJlIG9uZSBvciBtb3JlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9c3RhcnQtdGFnczpzcGFjZS1jaGFyYWN0ZXI+c3BhY2UgY2hhcmFjdGVyczwvYT4uPGxpPlRoZW4sIHRoZSBzdGFydCB0YWcgbWF5IGhhdmUgYSBudW1iZXIgb2YgYXR0cmlidXRlcywgdGhlIDxhIGhyZWY9I3N5bnRheC1hdHRyaWJ1dGVzIGlkPXN0YXJ0LXRhZ3M6c3ludGF4LWF0dHJpYnV0ZXM+c3ludGF4IGZvciB3aGljaDwvYT4gaXMgZGVzY3JpYmVkIGJlbG93LiBBdHRyaWJ1dGVzIG11c3QgYmUKKyAgIHNlcGFyYXRlZCBmcm9tIGVhY2ggb3RoZXIgYnkgb25lIG9yIG1vcmUgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3RlciBpZD1zdGFydC10YWdzOnNwYWNlLWNoYXJhY3Rlci0yPnNwYWNlCisgICBjaGFyYWN0ZXJzPC9hPi48bGk+QWZ0ZXIgdGhlIGF0dHJpYnV0ZXMsIG9yIGFmdGVyIHRoZSA8YSBocmVmPSNzeW50YXgtdGFnLW5hbWUgaWQ9c3RhcnQtdGFnczpzeW50YXgtdGFnLW5hbWUtMj50YWcgbmFtZTwvYT4gaWYgdGhlcmUgYXJlCisgICBubyBhdHRyaWJ1dGVzLCB0aGVyZSBtYXkgYmUgb25lIG9yIG1vcmUgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3RlciBpZD1zdGFydC10YWdzOnNwYWNlLWNoYXJhY3Rlci0zPnNwYWNlIGNoYXJhY3RlcnM8L2E+LgorICAgKFNvbWUgYXR0cmlidXRlcyBhcmUgcmVxdWlyZWQgdG8gYmUgZm9sbG93ZWQgYnkgYSBzcGFjZS4gU2VlIHRoZSA8YSBocmVmPSNzeW50YXgtYXR0cmlidXRlcyBpZD1zdGFydC10YWdzOnN5bnRheC1hdHRyaWJ1dGVzLTI+YXR0cmlidXRlcyBzZWN0aW9uPC9hPiBiZWxvdy4pPGxpPlRoZW4sIGlmIHRoZSBlbGVtZW50IGlzIG9uZSBvZiB0aGUgPGEgaHJlZj0jdm9pZC1lbGVtZW50cyBpZD1zdGFydC10YWdzOnZvaWQtZWxlbWVudHM+dm9pZCBlbGVtZW50czwvYT4sIG9yIGlmIHRoZSBlbGVtZW50IGlzIGEgPGEgaHJlZj0jZm9yZWlnbi1lbGVtZW50cyBpZD1zdGFydC10YWdzOmZvcmVpZ24tZWxlbWVudHM+Zm9yZWlnbiBlbGVtZW50PC9hPiwgdGhlbiB0aGVyZSBtYXkgYmUgYSBzaW5nbGUgVSswMDJGIFNPTElEVVMKKyAgIGNoYXJhY3RlciAoLykuIFRoaXMgY2hhcmFjdGVyIGhhcyBubyBlZmZlY3Qgb24gPGEgaHJlZj0jdm9pZC1lbGVtZW50cyBpZD1zdGFydC10YWdzOnZvaWQtZWxlbWVudHMtMj52b2lkIGVsZW1lbnRzPC9hPiwgYnV0IG9uIDxhIGhyZWY9I2ZvcmVpZ24tZWxlbWVudHMgaWQ9c3RhcnQtdGFnczpmb3JlaWduLWVsZW1lbnRzLTI+Zm9yZWlnbgorICAgZWxlbWVudHM8L2E+IGl0IG1hcmtzIHRoZSBzdGFydCB0YWcgYXMgc2VsZi1jbG9zaW5nLjxsaT5GaW5hbGx5LCBzdGFydCB0YWdzIG11c3QgYmUgY2xvc2VkIGJ5IGEgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOIGNoYXJhY3RlciAoPikuPC9vbD4KKworCisgIDxoNSBpZD1lbmQtdGFncz4xMi4xLjIuMiBFbmQgdGFnczwvaDU+CisKKyAgPHA+PGRmbiBpZD1zeW50YXgtZW5kLXRhZz5FbmQgdGFnczwvZGZuPiBtdXN0IGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtYXQ6PC9wPgorCisgIDxvbD48bGk+VGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhbiBlbmQgdGFnIG11c3QgYmUgYSBVKzAwM0MgTEVTUy1USEFOIFNJR04gY2hhcmFjdGVyICgmbHQ7KS48bGk+VGhlIHNlY29uZCBjaGFyYWN0ZXIgb2YgYW4gZW5kIHRhZyBtdXN0IGJlIGEgVSswMDJGIFNPTElEVVMgY2hhcmFjdGVyICgvKS48bGk+VGhlIG5leHQgZmV3IGNoYXJhY3RlcnMgb2YgYW4gZW5kIHRhZyBtdXN0IGJlIHRoZSBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LXRhZy1uYW1lIGlkPWVuZC10YWdzOnN5bnRheC10YWctbmFtZT50YWcKKyAgIG5hbWU8L2E+LjxsaT5BZnRlciB0aGUgdGFnIG5hbWUsIHRoZXJlIG1heSBiZSBvbmUgb3IgbW9yZSA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPWVuZC10YWdzOnNwYWNlLWNoYXJhY3Rlcj5zcGFjZQorICAgY2hhcmFjdGVyczwvYT4uPGxpPkZpbmFsbHksIGVuZCB0YWdzIG11c3QgYmUgY2xvc2VkIGJ5IGEgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOIGNoYXJhY3RlciAoPikuPC9vbD4KKworCisgIDxoNSBpZD1hdHRyaWJ1dGVzLTI+MTIuMS4yLjMgQXR0cmlidXRlczwvaDU+CisKKyAgPHA+PGRmbiBpZD1zeW50YXgtYXR0cmlidXRlcz5BdHRyaWJ1dGVzPC9kZm4+IGZvciBhbiBlbGVtZW50IGFyZSBleHByZXNzZWQgaW5zaWRlIHRoZQorICBlbGVtZW50J3Mgc3RhcnQgdGFnLjwvcD4KKworICA8cD5BdHRyaWJ1dGVzIGhhdmUgYSBuYW1lIGFuZCBhIHZhbHVlLiA8ZGZuIGlkPXN5bnRheC1hdHRyaWJ1dGUtbmFtZT5BdHRyaWJ1dGUgbmFtZXM8L2Rmbj4KKyAgbXVzdCBjb25zaXN0IG9mIG9uZSBvciBtb3JlIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiB0aGUgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3RlciBpZD1hdHRyaWJ1dGVzLTI6c3BhY2UtY2hhcmFjdGVyPnNwYWNlCisgIGNoYXJhY3RlcnM8L2E+LCBVKzAwMDAgTlVMTCwgVSswMDIyIFFVT1RBVElPTiBNQVJLICgiKSwgVSswMDI3IEFQT1NUUk9QSEUgKCcpLCBVKzAwM0UKKyAgR1JFQVRFUi1USEFOIFNJR04gKD4pLCBVKzAwMkYgU09MSURVUyAoLyksIGFuZCBVKzAwM0QgRVFVQUxTIFNJR04gKD0pIGNoYXJhY3RlcnMsIHRoZSA8YSBpZD1hdHRyaWJ1dGVzLTI6Y29udHJvbC1jaGFyYWN0ZXJzIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjb250cm9sLWNoYXJhY3RlcnM+Y29udHJvbAorICBjaGFyYWN0ZXJzPC9hPiwgYW5kIGFueSBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBkZWZpbmVkIGJ5IFVuaWNvZGUuIEluIHRoZSBIVE1MIHN5bnRheCwgYXR0cmlidXRlCisgIG5hbWVzLCBldmVuIHRob3NlIGZvciA8YSBocmVmPSNmb3JlaWduLWVsZW1lbnRzIGlkPWF0dHJpYnV0ZXMtMjpmb3JlaWduLWVsZW1lbnRzPmZvcmVpZ24gZWxlbWVudHM8L2E+LCBtYXkgYmUgd3JpdHRlbiB3aXRoIGFueSBtaXggb2YgbG93ZXItIGFuZAorICB1cHBlcmNhc2UgbGV0dGVycyB0aGF0IGFyZSBhbiA8YSBpZD1hdHRyaWJ1dGVzLTI6YXNjaWktY2FzZS1pbnNlbnNpdGl2ZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktY2FzZS1pbnNlbnNpdGl2ZT5BU0NJSSBjYXNlLWluc2Vuc2l0aXZlPC9hPiBtYXRjaCBmb3IgdGhlIGF0dHJpYnV0ZSdzCisgIG5hbWUuPC9wPgorCisgIDxwPjxkZm4gaWQ9c3ludGF4LWF0dHJpYnV0ZS12YWx1ZT5BdHRyaWJ1dGUgdmFsdWVzPC9kZm4+IGFyZSBhIG1peHR1cmUgb2YgPGEgaHJlZj0jc3ludGF4LXRleHQgaWQ9YXR0cmlidXRlcy0yOnN5bnRheC10ZXh0PnRleHQ8L2E+IGFuZCA8YSBocmVmPSNzeW50YXgtY2hhcnJlZiBpZD1hdHRyaWJ1dGVzLTI6c3ludGF4LWNoYXJyZWY+Y2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+LAorICBleGNlcHQgd2l0aCB0aGUgYWRkaXRpb25hbCByZXN0cmljdGlvbiB0aGF0IHRoZSB0ZXh0IGNhbm5vdCBjb250YWluIGFuIDxhIGhyZWY9I3N5bnRheC1hbWJpZ3VvdXMtYW1wZXJzYW5kIGlkPWF0dHJpYnV0ZXMtMjpzeW50YXgtYW1iaWd1b3VzLWFtcGVyc2FuZD5hbWJpZ3VvdXMgYW1wZXJzYW5kPC9hPi48L3A+CisKKyAgPHA+QXR0cmlidXRlcyBjYW4gYmUgc3BlY2lmaWVkIGluIGZvdXIgZGlmZmVyZW50IHdheXM6PC9wPgorCisgIDxkbD48ZHQ+RW1wdHkgYXR0cmlidXRlIHN5bnRheDxkZD4KKworICAgIDxwPkp1c3QgdGhlIDxhIGhyZWY9I3N5bnRheC1hdHRyaWJ1dGUtbmFtZSBpZD1hdHRyaWJ1dGVzLTI6c3ludGF4LWF0dHJpYnV0ZS1uYW1lPmF0dHJpYnV0ZSBuYW1lPC9hPi4gVGhlIHZhbHVlIGlzIGltcGxpY2l0bHkKKyAgICB0aGUgZW1wdHkgc3RyaW5nLjwvcD4KKworICAgIDxkaXYgY2xhc3M9ZXhhbXBsZT4KKworICAgICA8cD5JbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIHRoZSA8Y29kZSBpZD1hdHRyaWJ1dGVzLTI6YXR0ci1mZS1kaXNhYmxlZD48YSBocmVmPWZvcm1zLmh0bWwjYXR0ci1mZS1kaXNhYmxlZD5kaXNhYmxlZDwvYT48L2NvZGU+IGF0dHJpYnV0ZSBpcworICAgICBnaXZlbiB3aXRoIHRoZSBlbXB0eSBhdHRyaWJ1dGUgc3ludGF4OjwvcD4KKworICAgICA8cHJlPiZsdDtpbnB1dCA8ZW0+ZGlzYWJsZWQ8L2VtPj48L3ByZT4KKworICAgIDwvZGl2PgorCisgICAgPHA+SWYgYW4gYXR0cmlidXRlIHVzaW5nIHRoZSBlbXB0eSBhdHRyaWJ1dGUgc3ludGF4IGlzIHRvIGJlIGZvbGxvd2VkIGJ5IGFub3RoZXIgYXR0cmlidXRlLCB0aGVuCisgICAgdGhlcmUgbXVzdCBiZSBhIDxhIGlkPWF0dHJpYnV0ZXMtMjpzcGFjZS1jaGFyYWN0ZXItMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyPnNwYWNlIGNoYXJhY3RlcjwvYT4gc2VwYXJhdGluZyB0aGUgdHdvLjwvcD4KKworICAgPGR0IGlkPXVucXVvdGVkPlVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSBzeW50YXg8ZGQ+CisKKyAgICA8cD5UaGUgPGEgaHJlZj0jc3ludGF4LWF0dHJpYnV0ZS1uYW1lIGlkPWF0dHJpYnV0ZXMtMjpzeW50YXgtYXR0cmlidXRlLW5hbWUtMj5hdHRyaWJ1dGUgbmFtZTwvYT4sIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZXMtMjpzcGFjZS1jaGFyYWN0ZXItMz5zcGFjZSBjaGFyYWN0ZXJzPC9hPiwgZm9sbG93ZWQgYnkgYSBzaW5nbGUgVSswMDNEIEVRVUFMUyBTSUdOCisgICAgY2hhcmFjdGVyLCBmb2xsb3dlZCBieSB6ZXJvIG9yIG1vcmUgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3RlciBpZD1hdHRyaWJ1dGVzLTI6c3BhY2UtY2hhcmFjdGVyLTQ+c3BhY2UgY2hhcmFjdGVyczwvYT4sCisgICAgZm9sbG93ZWQgYnkgdGhlIDxhIGhyZWY9I3N5bnRheC1hdHRyaWJ1dGUtdmFsdWUgaWQ9YXR0cmlidXRlcy0yOnN5bnRheC1hdHRyaWJ1dGUtdmFsdWU+YXR0cmlidXRlIHZhbHVlPC9hPiwgd2hpY2gsIGluIGFkZGl0aW9uCisgICAgdG8gdGhlIHJlcXVpcmVtZW50cyBnaXZlbiBhYm92ZSBmb3IgYXR0cmlidXRlIHZhbHVlcywgbXVzdCBub3QgY29udGFpbiBhbnkgbGl0ZXJhbCA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZXMtMjpzcGFjZS1jaGFyYWN0ZXItNT5zcGFjZSBjaGFyYWN0ZXJzPC9hPiwgYW55IFUrMDAyMiBRVU9UQVRJT04gTUFSSyBjaGFyYWN0ZXJzICgiKSwKKyAgICBVKzAwMjcgQVBPU1RST1BIRSBjaGFyYWN0ZXJzICgnKSwgVSswMDNEIEVRVUFMUyBTSUdOIGNoYXJhY3RlcnMgKD0pLCBVKzAwM0MgTEVTUy1USEFOIFNJR04KKyAgICBjaGFyYWN0ZXJzICgmbHQ7KSwgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOIGNoYXJhY3RlcnMgKD4pLCBvciBVKzAwNjAgR1JBVkUgQUNDRU5UIGNoYXJhY3RlcnMKKyAgICAoYCksIGFuZCBtdXN0IG5vdCBiZSB0aGUgZW1wdHkgc3RyaW5nLjwvcD4KKworCisKKworICAgIDxkaXYgY2xhc3M9ZXhhbXBsZT4KKworICAgICA8cD5JbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIHRoZSA8Y29kZSBpZD1hdHRyaWJ1dGVzLTI6YXR0ci1pbnB1dC12YWx1ZT48YSBocmVmPWZvcm1zLmh0bWwjYXR0ci1pbnB1dC12YWx1ZT52YWx1ZTwvYT48L2NvZGU+IGF0dHJpYnV0ZSBpcyBnaXZlbgorICAgICB3aXRoIHRoZSB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUgc3ludGF4OjwvcD4KKworICAgICA8cHJlPiZsdDtpbnB1dCA8ZW0+dmFsdWU9eWVzPC9lbT4+PC9wcmU+CisKKyAgICA8L2Rpdj4KKworICAgIDxwPklmIGFuIGF0dHJpYnV0ZSB1c2luZyB0aGUgdW5xdW90ZWQgYXR0cmlidXRlIHN5bnRheCBpcyB0byBiZSBmb2xsb3dlZCBieSBhbm90aGVyIGF0dHJpYnV0ZSBvcgorICAgIGJ5IHRoZSBvcHRpb25hbCBVKzAwMkYgU09MSURVUyBjaGFyYWN0ZXIgKC8pIGFsbG93ZWQgaW4gc3RlcCA2IG9mIHRoZSA8YSBocmVmPSNzeW50YXgtc3RhcnQtdGFnIGlkPWF0dHJpYnV0ZXMtMjpzeW50YXgtc3RhcnQtdGFnPnN0YXJ0IHRhZzwvYT4gc3ludGF4IGFib3ZlLCB0aGVuIHRoZXJlIG11c3QgYmUgYSA8YSBpZD1hdHRyaWJ1dGVzLTI6c3BhY2UtY2hhcmFjdGVyLTYgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3Rlcj5zcGFjZQorICAgIGNoYXJhY3RlcjwvYT4gc2VwYXJhdGluZyB0aGUgdHdvLjwvcD4KKworICAgPGR0PlNpbmdsZS1xdW90ZWQgYXR0cmlidXRlIHZhbHVlIHN5bnRheDxkZD4KKworICAgIDxwPlRoZSA8YSBocmVmPSNzeW50YXgtYXR0cmlidXRlLW5hbWUgaWQ9YXR0cmlidXRlcy0yOnN5bnRheC1hdHRyaWJ1dGUtbmFtZS0zPmF0dHJpYnV0ZSBuYW1lPC9hPiwgZm9sbG93ZWQgYnkgemVybyBvciBtb3JlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlcy0yOnNwYWNlLWNoYXJhY3Rlci03PnNwYWNlIGNoYXJhY3RlcnM8L2E+LCBmb2xsb3dlZCBieSBhIHNpbmdsZSBVKzAwM0QgRVFVQUxTIFNJR04KKyAgICBjaGFyYWN0ZXIsIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZXMtMjpzcGFjZS1jaGFyYWN0ZXItOD5zcGFjZSBjaGFyYWN0ZXJzPC9hPiwKKyAgICBmb2xsb3dlZCBieSBhIHNpbmdsZSBVKzAwMjcgQVBPU1RST1BIRSBjaGFyYWN0ZXIgKCcpLCBmb2xsb3dlZCBieSB0aGUgPGEgaHJlZj0jc3ludGF4LWF0dHJpYnV0ZS12YWx1ZSBpZD1hdHRyaWJ1dGVzLTI6c3ludGF4LWF0dHJpYnV0ZS12YWx1ZS0yPmF0dHJpYnV0ZSB2YWx1ZTwvYT4sIHdoaWNoLCBpbiBhZGRpdGlvbiB0byB0aGUgcmVxdWlyZW1lbnRzCisgICAgZ2l2ZW4gYWJvdmUgZm9yIGF0dHJpYnV0ZSB2YWx1ZXMsIG11c3Qgbm90IGNvbnRhaW4gYW55IGxpdGVyYWwgVSswMDI3IEFQT1NUUk9QSEUgY2hhcmFjdGVycyAoJyksCisgICAgYW5kIGZpbmFsbHkgZm9sbG93ZWQgYnkgYSBzZWNvbmQgc2luZ2xlIFUrMDAyNyBBUE9TVFJPUEhFIGNoYXJhY3RlciAoJykuPC9wPgorCisgICAgPGRpdiBjbGFzcz1leGFtcGxlPgorCisgICAgIDxwPkluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIDxjb2RlIGlkPWF0dHJpYnV0ZXMtMjphdHRyLWlucHV0LXR5cGU+PGEgaHJlZj1mb3Jtcy5odG1sI2F0dHItaW5wdXQtdHlwZT50eXBlPC9hPjwvY29kZT4gYXR0cmlidXRlIGlzIGdpdmVuCisgICAgIHdpdGggdGhlIHNpbmdsZS1xdW90ZWQgYXR0cmlidXRlIHZhbHVlIHN5bnRheDo8L3A+CisKKyAgICAgPHByZT4mbHQ7aW5wdXQgPGVtPnR5cGU9J2NoZWNrYm94JzwvZW0+PjwvcHJlPgorCisgICAgPC9kaXY+CisKKyAgICA8cD5JZiBhbiBhdHRyaWJ1dGUgdXNpbmcgdGhlIHNpbmdsZS1xdW90ZWQgYXR0cmlidXRlIHN5bnRheCBpcyB0byBiZSBmb2xsb3dlZCBieSBhbm90aGVyCisgICAgYXR0cmlidXRlLCB0aGVuIHRoZXJlIG11c3QgYmUgYSA8YSBpZD1hdHRyaWJ1dGVzLTI6c3BhY2UtY2hhcmFjdGVyLTkgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3Rlcj5zcGFjZSBjaGFyYWN0ZXI8L2E+IHNlcGFyYXRpbmcgdGhlIHR3by48L3A+CisKKyAgIDxkdD5Eb3VibGUtcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSBzeW50YXg8ZGQ+CisKKyAgICA8cD5UaGUgPGEgaHJlZj0jc3ludGF4LWF0dHJpYnV0ZS1uYW1lIGlkPWF0dHJpYnV0ZXMtMjpzeW50YXgtYXR0cmlidXRlLW5hbWUtND5hdHRyaWJ1dGUgbmFtZTwvYT4sIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZXMtMjpzcGFjZS1jaGFyYWN0ZXItMTA+c3BhY2UgY2hhcmFjdGVyczwvYT4sIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIFUrMDAzRCBFUVVBTFMgU0lHTgorICAgIGNoYXJhY3RlciwgZm9sbG93ZWQgYnkgemVybyBvciBtb3JlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlcy0yOnNwYWNlLWNoYXJhY3Rlci0xMT5zcGFjZSBjaGFyYWN0ZXJzPC9hPiwKKyAgICBmb2xsb3dlZCBieSBhIHNpbmdsZSBVKzAwMjIgUVVPVEFUSU9OIE1BUksgY2hhcmFjdGVyICgiKSwgZm9sbG93ZWQgYnkgdGhlIDxhIGhyZWY9I3N5bnRheC1hdHRyaWJ1dGUtdmFsdWUgaWQ9YXR0cmlidXRlcy0yOnN5bnRheC1hdHRyaWJ1dGUtdmFsdWUtMz5hdHRyaWJ1dGUgdmFsdWU8L2E+LCB3aGljaCwgaW4gYWRkaXRpb24gdG8gdGhlIHJlcXVpcmVtZW50cworICAgIGdpdmVuIGFib3ZlIGZvciBhdHRyaWJ1dGUgdmFsdWVzLCBtdXN0IG5vdCBjb250YWluIGFueSBsaXRlcmFsIFUrMDAyMiBRVU9UQVRJT04gTUFSSyBjaGFyYWN0ZXJzCisgICAgKCIpLCBhbmQgZmluYWxseSBmb2xsb3dlZCBieSBhIHNlY29uZCBzaW5nbGUgVSswMDIyIFFVT1RBVElPTiBNQVJLIGNoYXJhY3RlciAoIikuPC9wPgorCisgICAgPGRpdiBjbGFzcz1leGFtcGxlPgorCisgICAgIDxwPkluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIDxjb2RlIGlkPWF0dHJpYnV0ZXMtMjphdHRyLWZlLW5hbWU+PGEgaHJlZj1mb3Jtcy5odG1sI2F0dHItZmUtbmFtZT5uYW1lPC9hPjwvY29kZT4gYXR0cmlidXRlIGlzIGdpdmVuIHdpdGgKKyAgICAgdGhlIGRvdWJsZS1xdW90ZWQgYXR0cmlidXRlIHZhbHVlIHN5bnRheDo8L3A+CisKKyAgICAgPHByZT4mbHQ7aW5wdXQgPGVtPm5hbWU9ImJlIGV2aWwiPC9lbT4+PC9wcmU+CisKKyAgICA8L2Rpdj4KKworICAgIDxwPklmIGFuIGF0dHJpYnV0ZSB1c2luZyB0aGUgZG91YmxlLXF1b3RlZCBhdHRyaWJ1dGUgc3ludGF4IGlzIHRvIGJlIGZvbGxvd2VkIGJ5IGFub3RoZXIKKyAgICBhdHRyaWJ1dGUsIHRoZW4gdGhlcmUgbXVzdCBiZSBhIDxhIGlkPWF0dHJpYnV0ZXMtMjpzcGFjZS1jaGFyYWN0ZXItMTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3NwYWNlLWNoYXJhY3Rlcj5zcGFjZSBjaGFyYWN0ZXI8L2E+IHNlcGFyYXRpbmcgdGhlIHR3by48L3A+CisKKyAgIDwvZGw+CisKKyAgPHA+VGhlcmUgbXVzdCBuZXZlciBiZSB0d28gb3IgbW9yZSBhdHRyaWJ1dGVzIG9uIHRoZSBzYW1lIHN0YXJ0IHRhZyB3aG9zZSBuYW1lcyBhcmUgYW4gPGEgaWQ9YXR0cmlidXRlcy0yOmFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktY2FzZS1pbnNlbnNpdGl2ZT5BU0NJSQorICBjYXNlLWluc2Vuc2l0aXZlPC9hPiBtYXRjaCBmb3IgZWFjaCBvdGhlci48L3A+CisKKyAgPGhyPgorCisgIDxwPldoZW4gYSA8YSBocmVmPSNmb3JlaWduLWVsZW1lbnRzIGlkPWF0dHJpYnV0ZXMtMjpmb3JlaWduLWVsZW1lbnRzLTI+Zm9yZWlnbiBlbGVtZW50PC9hPiBoYXMgb25lIG9mIHRoZSBuYW1lc3BhY2VkCisgIGF0dHJpYnV0ZXMgZ2l2ZW4gYnkgdGhlIGxvY2FsIG5hbWUgYW5kIG5hbWVzcGFjZSBvZiB0aGUgZmlyc3QgYW5kIHNlY29uZCBjZWxscyBvZiBhIHJvdyBmcm9tIHRoZQorICBmb2xsb3dpbmcgdGFibGUsIGl0IG11c3QgYmUgd3JpdHRlbiB1c2luZyB0aGUgbmFtZSBnaXZlbiBieSB0aGUgdGhpcmQgY2VsbCBmcm9tIHRoZSBzYW1lIHJvdy48L3A+CisKKyAgPHRhYmxlPjx0aGVhZD48dHI+PHRoPiBMb2NhbCBuYW1lIDx0aD4gTmFtZXNwYWNlIDx0aD4gQXR0cmlidXRlIG5hbWUKKyAgIDx0Ym9keT48dHI+PHRkPiA8Y29kZT5hY3R1YXRlPC9jb2RlPiA8dGQ+IDxhIGlkPWF0dHJpYnV0ZXMtMjp4bGluay1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBuYW1lc3BhY2U8L2E+IDx0ZD4gPGNvZGU+eGxpbms6YWN0dWF0ZTwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5hcmNyb2xlPC9jb2RlPiA8dGQ+IDxhIGlkPWF0dHJpYnV0ZXMtMjp4bGluay1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeGxpbmstbmFtZXNwYWNlPlhMaW5rIG5hbWVzcGFjZTwvYT4gPHRkPiA8Y29kZT54bGluazphcmNyb2xlPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmhyZWY8L2NvZGU+IDx0ZD4gPGEgaWQ9YXR0cmlidXRlcy0yOnhsaW5rLW5hbWVzcGFjZS0zIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN4bGluay1uYW1lc3BhY2U+WExpbmsgbmFtZXNwYWNlPC9hPiA8dGQ+IDxjb2RlPnhsaW5rOmhyZWY8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+cm9sZTwvY29kZT4gPHRkPiA8YSBpZD1hdHRyaWJ1dGVzLTI6eGxpbmstbmFtZXNwYWNlLTQgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBuYW1lc3BhY2U8L2E+IDx0ZD4gPGNvZGU+eGxpbms6cm9sZTwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5zaG93PC9jb2RlPiA8dGQ+IDxhIGlkPWF0dHJpYnV0ZXMtMjp4bGluay1uYW1lc3BhY2UtNSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeGxpbmstbmFtZXNwYWNlPlhMaW5rIG5hbWVzcGFjZTwvYT4gPHRkPiA8Y29kZT54bGluazpzaG93PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnRpdGxlPC9jb2RlPiA8dGQ+IDxhIGlkPWF0dHJpYnV0ZXMtMjp4bGluay1uYW1lc3BhY2UtNiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeGxpbmstbmFtZXNwYWNlPlhMaW5rIG5hbWVzcGFjZTwvYT4gPHRkPiA8Y29kZT54bGluazp0aXRsZTwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT50eXBlPC9jb2RlPiA8dGQ+IDxhIGlkPWF0dHJpYnV0ZXMtMjp4bGluay1uYW1lc3BhY2UtNyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeGxpbmstbmFtZXNwYWNlPlhMaW5rIG5hbWVzcGFjZTwvYT4gPHRkPiA8Y29kZT54bGluazp0eXBlPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmJhc2U8L2NvZGU+IDx0ZD4gPGEgaWQ9YXR0cmlidXRlcy0yOnhtbC1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbC1uYW1lc3BhY2U+WE1MIG5hbWVzcGFjZTwvYT4gIDx0ZD4gPGNvZGU+eG1sOmJhc2U8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+bGFuZzwvY29kZT4gPHRkPiA8YSBpZD1hdHRyaWJ1dGVzLTI6eG1sLW5hbWVzcGFjZS0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN4bWwtbmFtZXNwYWNlPlhNTCBuYW1lc3BhY2U8L2E+IDx0ZD4gPGNvZGU+eG1sOmxhbmc8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+c3BhY2U8L2NvZGU+IDx0ZD4gPGEgaWQ9YXR0cmlidXRlcy0yOnhtbC1uYW1lc3BhY2UtMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeG1sLW5hbWVzcGFjZT5YTUwgbmFtZXNwYWNlPC9hPiA8dGQ+IDxjb2RlPnhtbDpzcGFjZTwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT54bWxuczwvY29kZT4gPHRkPiA8YSBpZD1hdHRyaWJ1dGVzLTI6eG1sbnMtbmFtZXNwYWNlIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN4bWxucy1uYW1lc3BhY2U+WE1MTlMgbmFtZXNwYWNlPC9hPiA8dGQ+IDxjb2RlPnhtbG5zPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnhsaW5rPC9jb2RlPiA8dGQ+IDxhIGlkPWF0dHJpYnV0ZXMtMjp4bWxucy1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeG1sbnMtbmFtZXNwYWNlPlhNTE5TIG5hbWVzcGFjZTwvYT4gPHRkPiA8Y29kZT54bWxuczp4bGluazwvY29kZT4KKyAgPC90YWJsZT4KKworICA8cD5ObyBvdGhlciBuYW1lc3BhY2VkIGF0dHJpYnV0ZSBjYW4gYmUgZXhwcmVzc2VkIGluIDxhIGhyZWY9I3N5bnRheCBpZD1hdHRyaWJ1dGVzLTI6c3ludGF4PnRoZSBIVE1MIHN5bnRheDwvYT4uPC9wPgorCisgIDxwIGNsYXNzPW5vdGU+V2hldGhlciB0aGUgYXR0cmlidXRlcyBpbiB0aGUgdGFibGUgYWJvdmUgYXJlIGNvbmZvcm1pbmcgb3Igbm90IGlzIGRlZmluZWQgYnkKKyAgb3RoZXIgc3BlY2lmaWNhdGlvbnMgKGUuZy4gdGhlIFNWRyBhbmQgTWF0aE1MIHNwZWNpZmljYXRpb25zKTsgdGhpcyBzZWN0aW9uIG9ubHkgZGVzY3JpYmVzIHRoZQorICBzeW50YXggcnVsZXMgaWYgdGhlIGF0dHJpYnV0ZXMgYXJlIHNlcmlhbGlzZWQgdXNpbmcgdGhlIEhUTUwgc3ludGF4LjwvcD4KKworCisgIDxoNSBpZD1vcHRpb25hbC10YWdzPjEyLjEuMi40IE9wdGlvbmFsIHRhZ3M8L2g1PgorCisgIDxwPkNlcnRhaW4gdGFncyBjYW4gYmUgPGRmbiBpZD1zeW50YXgtdGFnLW9taXNzaW9uPm9taXR0ZWQ8L2Rmbj4uPC9wPgorCisgIDxwIGNsYXNzPW5vdGU+T21pdHRpbmcgYW4gZWxlbWVudCdzIDxhIGhyZWY9I3N5bnRheC1zdGFydC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtc3RhcnQtdGFnPnN0YXJ0IHRhZzwvYT4gaW4gdGhlCisgIHNpdHVhdGlvbnMgZGVzY3JpYmVkIGJlbG93IGRvZXMgbm90IG1lYW4gdGhlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQ7IGl0IGlzIGltcGxpZWQsIGJ1dCBpdCBpcworICBzdGlsbCB0aGVyZS4gRm9yIGV4YW1wbGUsIGFuIEhUTUwgZG9jdW1lbnQgYWx3YXlzIGhhcyBhIHJvb3QgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaHRtbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCwgZXZlbiBpZgorICB0aGUgc3RyaW5nIDxjb2RlPiZsdDtodG1sPjwvY29kZT4gZG9lc24ndCBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIG1hcmt1cC48L3A+CisKKworICA8cD5BbiA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1odG1sLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtc3RhcnQtdGFnIGlkPW9wdGlvbmFsLXRhZ3M6c3ludGF4LXN0YXJ0LXRhZy0yPnN0YXJ0IHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQKKyAgaWYgdGhlIGZpcnN0IHRoaW5nIGluc2lkZSB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaHRtbC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IGlzIG5vdCBhIDxhIGhyZWY9I3N5bnRheC1jb21tZW50cyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1jb21tZW50cz5jb21tZW50PC9hPi48L3A+CisKKyAgPGRpdiBjbGFzcz1leGFtcGxlPgorCisgICA8cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGZvbGxvd2luZyBjYXNlIGl0J3Mgb2sgdG8gcmVtb3ZlIHRoZSAiPGNvZGU+Jmx0O2h0bWw+PC9jb2RlPiIKKyAgIHRhZzo8L3A+CisKKyAgIDxwcmU+Jmx0OyFET0NUWVBFIEhUTUw+Cis8c3Ryb25nPiZsdDtodG1sPjwvc3Ryb25nPgorICAmbHQ7aGVhZD4KKyAgICAmbHQ7dGl0bGU+SGVsbG8mbHQ7L3RpdGxlPgorICAmbHQ7L2hlYWQ+CisgICZsdDtib2R5PgorICAgICZsdDtwPldlbGNvbWUgdG8gdGhpcyBleGFtcGxlLiZsdDsvcD4KKyAgJmx0Oy9ib2R5PgorJmx0Oy9odG1sPjwvcHJlPgorCisgICA8cD5Eb2luZyBzbyB3b3VsZCBtYWtlIHRoZSBkb2N1bWVudCBsb29rIGxpa2UgdGhpczo8L3A+CisKKyAgIDxwcmU+Jmx0OyFET0NUWVBFIEhUTUw+CisKKyAgJmx0O2hlYWQ+CisgICAgJmx0O3RpdGxlPkhlbGxvJmx0Oy90aXRsZT4KKyAgJmx0Oy9oZWFkPgorICAmbHQ7Ym9keT4KKyAgICAmbHQ7cD5XZWxjb21lIHRvIHRoaXMgZXhhbXBsZS4mbHQ7L3A+CisgICZsdDsvYm9keT4KKyZsdDsvaHRtbD48L3ByZT4KKworICAgPHA+VGhpcyBoYXMgdGhlIGV4YWN0IHNhbWUgRE9NLiBJbiBwYXJ0aWN1bGFyLCBub3RlIHRoYXQgd2hpdGUgc3BhY2UgYXJvdW5kIHRoZSByb290IGVsZW1lbnQgaXMKKyAgIGlnbm9yZWQgYnkgdGhlIHBhcnNlci4gVGhlIGZvbGxvd2luZyBleGFtcGxlIHdvdWxkIGFsc28gaGF2ZSB0aGUgZXhhY3Qgc2FtZSBET006PC9wPgorCisgICA8cHJlPiZsdDshRE9DVFlQRSBIVE1MPiZsdDtoZWFkPgorICAgICZsdDt0aXRsZT5IZWxsbyZsdDsvdGl0bGU+CisgICZsdDsvaGVhZD4KKyAgJmx0O2JvZHk+CisgICAgJmx0O3A+V2VsY29tZSB0byB0aGlzIGV4YW1wbGUuJmx0Oy9wPgorICAmbHQ7L2JvZHk+CismbHQ7L2h0bWw+PC9wcmU+CisKKyAgIDxwPkhvd2V2ZXIsIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgcmVtb3ZpbmcgdGhlIHN0YXJ0IHRhZyBtb3ZlcyB0aGUgY29tbWVudCB0byBiZWZvcmUgdGhlCisgICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1odG1sLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQ6PC9wPgorCisgICA8cHJlPiZsdDshRE9DVFlQRSBIVE1MPgorJmx0O2h0bWw+CisgIDxzdHJvbmc+Jmx0OyEtLSB3aGVyZSBpcyB0aGlzIGNvbW1lbnQgaW4gdGhlIERPTT8gLS0+PC9zdHJvbmc+CisgICZsdDtoZWFkPgorICAgICZsdDt0aXRsZT5IZWxsbyZsdDsvdGl0bGU+CisgICZsdDsvaGVhZD4KKyAgJmx0O2JvZHk+CisgICAgJmx0O3A+V2VsY29tZSB0byB0aGlzIGV4YW1wbGUuJmx0Oy9wPgorICAmbHQ7L2JvZHk+CismbHQ7L2h0bWw+PC9wcmU+CisKKyAgIDxwPldpdGggdGhlIHRhZyByZW1vdmVkLCB0aGUgZG9jdW1lbnQgYWN0dWFsbHkgdHVybnMgaW50byB0aGUgc2FtZSBhcyB0aGlzOjwvcD4KKworICAgPHByZT4mbHQ7IURPQ1RZUEUgSFRNTD4KKyZsdDshLS0gd2hlcmUgaXMgdGhpcyBjb21tZW50IGluIHRoZSBET00/IC0tPgorPHNtYWxsPiZsdDtodG1sPjwvc21hbGw+CisgICZsdDtoZWFkPgorICAgICZsdDt0aXRsZT5IZWxsbyZsdDsvdGl0bGU+CisgICZsdDsvaGVhZD4KKyAgJmx0O2JvZHk+CisgICAgJmx0O3A+V2VsY29tZSB0byB0aGlzIGV4YW1wbGUuJmx0Oy9wPgorICAmbHQ7L2JvZHk+CismbHQ7L2h0bWw+PC9wcmU+CisKKyAgIDxwPlRoaXMgaXMgd2h5IHRoZSB0YWcgY2FuIG9ubHkgYmUgcmVtb3ZlZCBpZiBpdCBpcyBub3QgZm9sbG93ZWQgYnkgYSBjb21tZW50OiByZW1vdmluZyB0aGUgdGFnCisgICB3aGVuIHRoZXJlIGlzIGEgY29tbWVudCB0aGVyZSBjaGFuZ2VzIHRoZSBkb2N1bWVudCdzIHJlc3VsdGluZyBwYXJzZSB0cmVlLiBPZiBjb3Vyc2UsIGlmIHRoZQorICAgcG9zaXRpb24gb2YgdGhlIGNvbW1lbnQgZG9lcyBub3QgbWF0dGVyLCB0aGVuIHRoZSB0YWcgY2FuIGJlIG9taXR0ZWQsIGFzIGlmIHRoZSBjb21tZW50IGhhZCBiZWVuCisgICBtb3ZlZCB0byBiZWZvcmUgdGhlIHN0YXJ0IHRhZyBpbiB0aGUgZmlyc3QgcGxhY2UuPC9wPgorCisgIDwvZGl2PgorCisKKyAgPHA+QW4gPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaHRtbC1lbGVtZW50LTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZz5lbmQgdGFnPC9hPiBtYXkgYmUgb21pdHRlZCBpZgorICB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaHRtbC1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IGlzIG5vdCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIDxhIGhyZWY9I3N5bnRheC1jb21tZW50cyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1jb21tZW50cy0yPmNvbW1lbnQ8L2E+LjwvcD4KKworCisgIDxwPkEgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaGVhZC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT4gZWxlbWVudCdzIDxhIGhyZWY9I3N5bnRheC1zdGFydC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtc3RhcnQtdGFnLTM+c3RhcnQgdGFnPC9hPiBtYXkgYmUgb21pdHRlZCBpZgorICB0aGUgZWxlbWVudCBpcyBlbXB0eSwgb3IgaWYgdGhlIGZpcnN0IHRoaW5nIGluc2lkZSB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaGVhZC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50IGlzIGFuCisgIGVsZW1lbnQuPC9wPgorCisKKyAgPHA+QSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1oZWFkLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTI+ZW5kIHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQgaWYgdGhlCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWhlYWQtZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT4gZWxlbWVudCBpcyBub3QgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSA8YSBpZD1vcHRpb25hbC10YWdzOnNwYWNlLWNoYXJhY3RlciBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyPnNwYWNlIGNoYXJhY3RlcjwvYT4gb3IgYSA8YSBocmVmPSNzeW50YXgtY29tbWVudHMgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtY29tbWVudHMtMz5jb21tZW50PC9hPi48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWJvZHktZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtc3RhcnQtdGFnIGlkPW9wdGlvbmFsLXRhZ3M6c3ludGF4LXN0YXJ0LXRhZy00PnN0YXJ0IHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQKKyAgaWYgdGhlIGVsZW1lbnQgaXMgZW1wdHksIG9yIGlmIHRoZSBmaXJzdCB0aGluZyBpbnNpZGUgdGhlIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWJvZHktZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT4gZWxlbWVudCBpcyBub3QgYQorICA8YSBpZD1vcHRpb25hbC10YWdzOnNwYWNlLWNoYXJhY3Rlci0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXI+c3BhY2UgY2hhcmFjdGVyPC9hPiBvciBhIDxhIGhyZWY9I3N5bnRheC1jb21tZW50cyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1jb21tZW50cy00PmNvbW1lbnQ8L2E+LCBleGNlcHQgaWYgdGhlCisgIGZpcnN0IHRoaW5nIGluc2lkZSB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtYm9keS1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50IGlzIGEgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtbWV0YS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLW1ldGEtZWxlbWVudD5tZXRhPC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWxpbmstZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1saW5rLWVsZW1lbnQ+bGluazwvYT48L2NvZGU+LAorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1zY3JpcHQtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtc3R5bGUtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1zdHlsZS1lbGVtZW50PnN0eWxlPC9hPjwvY29kZT4sIG9yIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRlbXBsYXRlLWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQuIDwvcD4KKworCisgIDxwPkEgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtYm9keS1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZy0zPmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmIHRoZQorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1ib2R5LWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+IGVsZW1lbnQgaXMgbm90IGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgPGEgaHJlZj0jc3ludGF4LWNvbW1lbnRzIGlkPW9wdGlvbmFsLXRhZ3M6c3ludGF4LWNvbW1lbnRzLTU+Y29tbWVudDwvYT4uPC9wPgorCisgIDxkaXYgY2xhc3M9ZXhhbXBsZT4KKworICAgPHA+Tm90ZSB0aGF0IGluIHRoZSBleGFtcGxlIGFib3ZlLCB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaGVhZC1lbGVtZW50LTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50IHN0YXJ0IGFuZCBlbmQgdGFncywgYW5kIHRoZQorICAgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtYm9keS1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50IHN0YXJ0IHRhZywgY2FuJ3QgYmUgb21pdHRlZCwgYmVjYXVzZSB0aGV5IGFyZSBzdXJyb3VuZGVkIGJ5IHdoaXRlCisgICBzcGFjZTo8L3A+CisKKyAgIDxwcmU+Jmx0OyFET0NUWVBFIEhUTUw+CismbHQ7aHRtbD48c3Ryb25nPgorICA8L3N0cm9uZz4mbHQ7aGVhZD48c3Ryb25nPgorICAgIDwvc3Ryb25nPiZsdDt0aXRsZT5IZWxsbyZsdDsvdGl0bGU+PHN0cm9uZz4KKyAgPC9zdHJvbmc+Jmx0Oy9oZWFkPjxzdHJvbmc+CisgIDwvc3Ryb25nPiZsdDtib2R5PjxzdHJvbmc+CisgICAgPC9zdHJvbmc+Jmx0O3A+V2VsY29tZSB0byB0aGlzIGV4YW1wbGUuJmx0Oy9wPgorICAmbHQ7L2JvZHk+CismbHQ7L2h0bWw+PC9wcmU+CisKKyAgIDxwPihUaGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtYm9keS1lbGVtZW50LTc+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBhbmQgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaHRtbC1lbGVtZW50LTc+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IGVuZCB0YWdzIGNvdWxkIGJlIG9taXR0ZWQgd2l0aG91dAorICAgdHJvdWJsZTsgYW55IHNwYWNlcyBhZnRlciB0aG9zZSBnZXQgcGFyc2VkIGludG8gdGhlIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWJvZHktZWxlbWVudC04PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT4gZWxlbWVudCBhbnl3YXkuKTwvcD4KKworICAgPHA+VXN1YWxseSwgaG93ZXZlciwgd2hpdGUgc3BhY2UgaXNuJ3QgYW4gaXNzdWUuIElmIHdlIGZpcnN0IHJlbW92ZSB0aGUgd2hpdGUgc3BhY2Ugd2UgZG9uJ3QgY2FyZQorICAgYWJvdXQ6PC9wPgorCisgICA8cHJlPiZsdDshRE9DVFlQRSBIVE1MPiZsdDtodG1sPiZsdDtoZWFkPiZsdDt0aXRsZT5IZWxsbyZsdDsvdGl0bGU+Jmx0Oy9oZWFkPiZsdDtib2R5PiZsdDtwPldlbGNvbWUgdG8gdGhpcyBleGFtcGxlLiZsdDsvcD4mbHQ7L2JvZHk+Jmx0Oy9odG1sPjwvcHJlPgorCisgICA8cD5UaGVuIHdlIGNhbiBvbWl0IGEgbnVtYmVyIG9mIHRhZ3Mgd2l0aG91dCBhZmZlY3RpbmcgdGhlIERPTTo8L3A+CisKKyAgIDxwcmU+Jmx0OyFET0NUWVBFIEhUTUw+Jmx0O3RpdGxlPkhlbGxvJmx0Oy90aXRsZT4mbHQ7cD5XZWxjb21lIHRvIHRoaXMgZXhhbXBsZS4mbHQ7L3A+PC9wcmU+CisKKyAgIDxwPkF0IHRoYXQgcG9pbnQsIHdlIGNhbiBhbHNvIGFkZCBzb21lIHdoaXRlIHNwYWNlIGJhY2s6PC9wPgorCisgICA8cHJlPiZsdDshRE9DVFlQRSBIVE1MPgorJmx0O3RpdGxlPkhlbGxvJmx0Oy90aXRsZT4KKyZsdDtwPldlbGNvbWUgdG8gdGhpcyBleGFtcGxlLiZsdDsvcD48L3ByZT4KKworICAgPHA+VGhpcyB3b3VsZCBiZSBlcXVpdmFsZW50IHRvIHRoaXMgZG9jdW1lbnQsIHdpdGggdGhlIG9taXR0ZWQgdGFncyBzaG93biBpbiB0aGVpcgorICAgcGFyc2VyLWltcGxpZWQgcG9zaXRpb25zOyB0aGUgb25seSB3aGl0ZSBzcGFjZSB0ZXh0IG5vZGUgdGhhdCByZXN1bHRzIGZyb20gdGhpcyBpcyB0aGUgbmV3bGluZSBhdAorICAgdGhlIGVuZCBvZiB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaGVhZC1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50OjwvcD4KKworICAgPHByZT4mbHQ7IURPQ1RZUEUgSFRNTD4KKzxzbWFsbD4mbHQ7aHRtbD4mbHQ7aGVhZD48L3NtYWxsPiZsdDt0aXRsZT5IZWxsbyZsdDsvdGl0bGU+Cis8c21hbGw+Jmx0Oy9oZWFkPiZsdDtib2R5Pjwvc21hbGw+Jmx0O3A+V2VsY29tZSB0byB0aGlzIGV4YW1wbGUuJmx0Oy9wPjxzbWFsbD4mbHQ7L2JvZHk+Jmx0Oy9odG1sPjwvc21hbGw+PC9wcmU+CisKKyAgPC9kaXY+CisKKworICA8cD5BbiA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1saS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWxpLWVsZW1lbnQ+bGk8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZy00PmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmIHRoZQorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1saS1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbGktZWxlbWVudD5saTwvYT48L2NvZGU+IGVsZW1lbnQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW5vdGhlciA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1saS1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbGktZWxlbWVudD5saTwvYT48L2NvZGU+IGVsZW1lbnQgb3IgaWYgdGhlcmUgaXMKKyAgbm8gbW9yZSBjb250ZW50IGluIHRoZSBwYXJlbnQgZWxlbWVudC48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWR0LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZHQtZWxlbWVudD5kdDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTU+ZW5kIHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQgaWYgdGhlCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWR0LWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kdC1lbGVtZW50PmR0PC9hPjwvY29kZT4gZWxlbWVudCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbm90aGVyIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWR0LWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kdC1lbGVtZW50PmR0PC9hPjwvY29kZT4gZWxlbWVudCBvciBhCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWRkLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZGQtZWxlbWVudD5kZDwvYT48L2NvZGU+IGVsZW1lbnQuPC9wPgorCisKKyAgPHA+QSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1kZC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZGQtZWxlbWVudD5kZDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTY+ZW5kIHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQgaWYgdGhlCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWRkLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZC1lbGVtZW50PmRkPC9hPjwvY29kZT4gZWxlbWVudCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbm90aGVyIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWRkLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZC1lbGVtZW50PmRkPC9hPjwvY29kZT4gZWxlbWVudCBvciBhCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWR0LWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kdC1lbGVtZW50PmR0PC9hPjwvY29kZT4gZWxlbWVudCwgb3IgaWYgdGhlcmUgaXMgbm8gbW9yZSBjb250ZW50IGluIHRoZSBwYXJlbnQgZWxlbWVudC48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXAtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTc+ZW5kIHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQgaWYgdGhlCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXAtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXAtZWxlbWVudD5wPC9hPjwvY29kZT4gZWxlbWVudCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbiA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1hZGRyZXNzLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYWRkcmVzcy1lbGVtZW50PmFkZHJlc3M8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtYXJ0aWNsZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWFydGljbGUtZWxlbWVudD5hcnRpY2xlPC9hPjwvY29kZT4sCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWFzaWRlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYXNpZGUtZWxlbWVudD5hc2lkZTwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1ibG9ja3F1b3RlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYmxvY2txdW90ZS1lbGVtZW50PmJsb2NrcXVvdGU8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtZGV0YWlscy1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtZGV0YWlscy1lbGVtZW50PmRldGFpbHM8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtZGl2LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZGl2LWVsZW1lbnQ+ZGl2PC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWRsLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZGwtZWxlbWVudD5kbDwvYT48L2NvZGU+LAorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1maWVsZHNldC1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtZmllbGRzZXQtZWxlbWVudD5maWVsZHNldDwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1maWdjYXB0aW9uLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZmlnY2FwdGlvbi1lbGVtZW50PmZpZ2NhcHRpb248L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtZmlndXJlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZmlndXJlLWVsZW1lbnQ+ZmlndXJlPC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWZvb3Rlci1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWZvb3Rlci1lbGVtZW50PmZvb3RlcjwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1mb3JtLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1mb3JtLWVsZW1lbnQ+Zm9ybTwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz5oMTwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cy0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzPmgyPC9hPjwvY29kZT4sCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzLTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHM+aDM8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHMtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz5oNDwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cy01PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzPmg1PC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzLTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHM+aDY8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaGVhZGVyLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZGVyLWVsZW1lbnQ+aGVhZGVyPC9hPjwvY29kZT4sCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWhncm91cC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhncm91cC1lbGVtZW50Pmhncm91cDwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1oci1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhyLWVsZW1lbnQ+aHI8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtbWFpbi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLW1haW4tZWxlbWVudD5tYWluPC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLW1lbnUtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW1lbnUtZWxlbWVudD5tZW51PC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLW5hdi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLW5hdi1lbGVtZW50Pm5hdjwvYT48L2NvZGU+LAorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1vbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLW9sLWVsZW1lbnQ+b2w8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtcC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtcHJlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcHJlLWVsZW1lbnQ+cHJlPC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXNlY3Rpb24tZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1zZWN0aW9uLWVsZW1lbnQ+c2VjdGlvbjwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10YWJsZS1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPiwgb3IKKyAgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtdWwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS11bC1lbGVtZW50PnVsPC9hPjwvY29kZT4sIGVsZW1lbnQsIG9yIGlmIHRoZXJlIGlzIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQgYW5kIHRoZSBwYXJlbnQKKyAgZWxlbWVudCBpcyBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1vcHRpb25hbC10YWdzOmh0bWwtZWxlbWVudHM+SFRNTCBlbGVtZW50PC9hPiB0aGF0IGlzIG5vdCBhbiA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1hLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYS1lbGVtZW50PmE8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtYXVkaW8tZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtYXVkaW8tZWxlbWVudD5hdWRpbzwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1kZWwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZWwtZWxlbWVudD5kZWw8L2E+PC9jb2RlPiwKKyAgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaW5zLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaW5zLWVsZW1lbnQ+aW5zPC9hPjwvY29kZT4sIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLW1hcC1lbGVtZW50PjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI3RoZS1tYXAtZWxlbWVudD5tYXA8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtbm9zY3JpcHQtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1ub3NjcmlwdC1lbGVtZW50Pm5vc2NyaXB0PC9hPjwvY29kZT4sIG9yIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXZpZGVvLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLXZpZGVvLWVsZW1lbnQ+dmlkZW88L2E+PC9jb2RlPiBlbGVtZW50LjwvcD4KKworICA8ZGl2IGNsYXNzPWV4YW1wbGU+CisKKyAgIDxwPldlIGNhbiB0aHVzIHNpbXBsaWZ5IHRoZSBlYXJsaWVyIGV4YW1wbGUgZnVydGhlcjoKKworICAgPHByZT4mbHQ7IURPQ1RZUEUgSFRNTD4mbHQ7dGl0bGU+SGVsbG8mbHQ7L3RpdGxlPiZsdDtwPldlbGNvbWUgdG8gdGhpcyBleGFtcGxlLjxzbWFsbD4mbHQ7L3A+PC9zbWFsbD48L3ByZT4KKworICA8L2Rpdj4KKworCisgIDxwPkFuIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXJ0LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcnQtZWxlbWVudD5ydDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTg+ZW5kIHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQgaWYgdGhlCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXJ0LWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ydC1lbGVtZW50PnJ0PC9hPjwvY29kZT4gZWxlbWVudCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbiA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1ydC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcnQtZWxlbWVudD5ydDwvYT48L2NvZGU+IG9yIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXJwLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcnAtZWxlbWVudD5ycDwvYT48L2NvZGU+IGVsZW1lbnQsCisgIG9yIGlmIHRoZXJlIGlzIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQuPC9wPgorCisKKyAgPHA+QW4gPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtcnAtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJwLWVsZW1lbnQ+cnA8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZy05PmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmIHRoZQorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1ycC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcnAtZWxlbWVudD5ycDwvYT48L2NvZGU+IGVsZW1lbnQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW4gPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtcnQtZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJ0LWVsZW1lbnQ+cnQ8L2E+PC9jb2RlPiBvciA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1ycC1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcnAtZWxlbWVudD5ycDwvYT48L2NvZGU+IGVsZW1lbnQsCisgIG9yIGlmIHRoZXJlIGlzIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQuPC9wPgorCisKKyAgPHA+QW4gPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtb3B0Z3JvdXAtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGdyb3VwLWVsZW1lbnQ+b3B0Z3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZy0xMD5lbmQgdGFnPC9hPiBtYXkgYmUgb21pdHRlZAorICBpZiB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtb3B0Z3JvdXAtZWxlbWVudC0yPjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudD5vcHRncm91cDwvYT48L2NvZGU+IGVsZW1lbnQgIGlzCisgIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFub3RoZXIgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtb3B0Z3JvdXAtZWxlbWVudC0zPjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudD5vcHRncm91cDwvYT48L2NvZGU+IGVsZW1lbnQsIG9yIGlmICB0aGVyZSBpcyBubyBtb3JlIGNvbnRlbnQgaW4KKyAgdGhlIHBhcmVudCBlbGVtZW50LjwvcD4KKworCisKKyAgPHA+QW4gPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtb3B0aW9uLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1vcHRpb24tZWxlbWVudD5vcHRpb248L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZy0xMT5lbmQgdGFnPC9hPiBtYXkgYmUgb21pdHRlZCBpZgorICB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtb3B0aW9uLWVsZW1lbnQtMj48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGlvbi1lbGVtZW50Pm9wdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW5vdGhlciA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1vcHRpb24tZWxlbWVudC0zPjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0aW9uLWVsZW1lbnQ+b3B0aW9uPC9hPjwvY29kZT4gZWxlbWVudCwgb3IKKyAgaWYgaXQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW4gPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtb3B0Z3JvdXAtZWxlbWVudC00PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudD5vcHRncm91cDwvYT48L2NvZGU+IGVsZW1lbnQsIG9yIGlmIHRoZXJlIGlzIG5vIG1vcmUgY29udGVudAorICBpbiB0aGUgcGFyZW50IGVsZW1lbnQuPC9wPgorCisKKyAgPHA+QSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1jb2xncm91cC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNvbGdyb3VwLWVsZW1lbnQ+Y29sZ3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LXN0YXJ0LXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1zdGFydC10YWctNT5zdGFydCB0YWc8L2E+IG1heSBiZQorICBvbWl0dGVkIGlmIHRoZSBmaXJzdCB0aGluZyBpbnNpZGUgdGhlIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWNvbGdyb3VwLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jb2xncm91cC1lbGVtZW50PmNvbGdyb3VwPC9hPjwvY29kZT4gZWxlbWVudCBpcyBhIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWNvbC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNvbC1lbGVtZW50PmNvbDwvYT48L2NvZGU+IGVsZW1lbnQsCisgIGFuZCBpZiB0aGUgZWxlbWVudCBpcyBub3QgaW1tZWRpYXRlbHkgcHJlY2VkZWQgYnkgYW5vdGhlciA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1jb2xncm91cC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtY29sZ3JvdXAtZWxlbWVudD5jb2xncm91cDwvYT48L2NvZGU+IGVsZW1lbnQgd2hvc2UKKyAgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZy0xMj5lbmQgdGFnPC9hPiBoYXMgYmVlbiBvbWl0dGVkLiAoSXQgY2FuJ3QgYmUgb21pdHRlZCBpZiB0aGUgZWxlbWVudAorICBpcyBlbXB0eS4pPC9wPgorCisKKyAgPHA+QSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1jb2xncm91cC1lbGVtZW50LTQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtY29sZ3JvdXAtZWxlbWVudD5jb2xncm91cDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTEzPmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmCisgIHRoZSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1jb2xncm91cC1lbGVtZW50LTU+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtY29sZ3JvdXAtZWxlbWVudD5jb2xncm91cDwvYT48L2NvZGU+IGVsZW1lbnQgaXMgbm90IGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgPGEgaWQ9b3B0aW9uYWwtdGFnczpzcGFjZS1jaGFyYWN0ZXItMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyPnNwYWNlIGNoYXJhY3RlcjwvYT4gb3IKKyAgYSA8YSBocmVmPSNzeW50YXgtY29tbWVudHMgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtY29tbWVudHMtNj5jb21tZW50PC9hPi48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWNhcHRpb24tZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jYXB0aW9uLWVsZW1lbnQ+Y2FwdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTE0PmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmCisgIHRoZSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS1jYXB0aW9uLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jYXB0aW9uLWVsZW1lbnQ+Y2FwdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQgaXMgbm90IGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgPGEgaWQ9b3B0aW9uYWwtdGFnczpzcGFjZS1jaGFyYWN0ZXItNCBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyPnNwYWNlIGNoYXJhY3RlcjwvYT4gb3IKKyAgYSA8YSBocmVmPSNzeW50YXgtY29tbWVudHMgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtY29tbWVudHMtNz5jb21tZW50PC9hPi48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRoZWFkLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGhlYWQtZWxlbWVudD50aGVhZDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTE1PmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmCisgIHRoZSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10aGVhZC1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGhlYWQtZWxlbWVudD50aGVhZDwvYT48L2NvZGU+IGVsZW1lbnQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10Ym9keS1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiBvcgorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10Zm9vdC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRmb290LWVsZW1lbnQ+dGZvb3Q8L2E+PC9jb2RlPiBlbGVtZW50LjwvcD4KKworCisgIDxwPkEgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtdGJvZHktZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaHJlZj0jc3ludGF4LXN0YXJ0LXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1zdGFydC10YWctNj5zdGFydCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkCisgIGlmIHRoZSBmaXJzdCB0aGluZyBpbnNpZGUgdGhlIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRib2R5LWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4gZWxlbWVudCBpcyBhIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRyLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdHItZWxlbWVudD50cjwvYT48L2NvZGU+IGVsZW1lbnQsIGFuZCBpZiB0aGUKKyAgZWxlbWVudCBpcyBub3QgaW1tZWRpYXRlbHkgcHJlY2VkZWQgYnkgYSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10Ym9keS1lbGVtZW50LTQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+LCA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10aGVhZC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGhlYWQtZWxlbWVudD50aGVhZDwvYT48L2NvZGU+LCBvcgorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10Zm9vdC1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGZvb3QtZWxlbWVudD50Zm9vdDwvYT48L2NvZGU+IGVsZW1lbnQgd2hvc2UgPGEgaHJlZj0jc3ludGF4LWVuZC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtZW5kLXRhZy0xNj5lbmQgdGFnPC9hPiBoYXMgYmVlbiBvbWl0dGVkLiAoSXQKKyAgY2FuJ3QgYmUgb21pdHRlZCBpZiB0aGUgZWxlbWVudCBpcyBlbXB0eS4pPC9wPgorCisKKyAgPHA+QSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10Ym9keS1lbGVtZW50LTU+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTE3PmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmCisgIHRoZSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10Ym9keS1lbGVtZW50LTY+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+IGVsZW1lbnQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10Ym9keS1lbGVtZW50LTc+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+IG9yCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRmb290LWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Zm9vdC1lbGVtZW50PnRmb290PC9hPjwvY29kZT4gZWxlbWVudCwgb3IgaWYgdGhlcmUgaXMgbm8gbW9yZSBjb250ZW50IGluIHRoZSBwYXJlbnQgZWxlbWVudC48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRmb290LWVsZW1lbnQtND48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Zm9vdC1lbGVtZW50PnRmb290PC9hPjwvY29kZT4gZWxlbWVudCdzIDxhIGhyZWY9I3N5bnRheC1lbmQtdGFnIGlkPW9wdGlvbmFsLXRhZ3M6c3ludGF4LWVuZC10YWctMTg+ZW5kIHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQgaWYKKyAgdGhlIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRmb290LWVsZW1lbnQtNT48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Zm9vdC1lbGVtZW50PnRmb290PC9hPjwvY29kZT4gZWxlbWVudCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRib2R5LWVsZW1lbnQtOD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4gZWxlbWVudCwgb3IgaWYKKyAgdGhlcmUgaXMgbm8gbW9yZSBjb250ZW50IGluIHRoZSBwYXJlbnQgZWxlbWVudC48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRyLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT4gZWxlbWVudCdzIDxhIGhyZWY9I3N5bnRheC1lbmQtdGFnIGlkPW9wdGlvbmFsLXRhZ3M6c3ludGF4LWVuZC10YWctMTk+ZW5kIHRhZzwvYT4gbWF5IGJlIG9taXR0ZWQgaWYgdGhlCisgIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRyLWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT4gZWxlbWVudCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbm90aGVyIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRyLWVsZW1lbnQtND48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT4gZWxlbWVudCwgb3IgaWYgdGhlcmUgaXMKKyAgbm8gbW9yZSBjb250ZW50IGluIHRoZSBwYXJlbnQgZWxlbWVudC48L3A+CisKKworICA8cD5BIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRkLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTIwPmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmIHRoZQorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10ZC1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+IGVsZW1lbnQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10ZC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+IG9yIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRoLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+IGVsZW1lbnQsCisgIG9yIGlmIHRoZXJlIGlzIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQuPC9wPgorCisKKyAgPHA+QSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10aC1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+IGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtZW5kLXRhZyBpZD1vcHRpb25hbC10YWdzOnN5bnRheC1lbmQtdGFnLTIxPmVuZCB0YWc8L2E+IG1heSBiZSBvbWl0dGVkIGlmIHRoZQorICA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10aC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+IGVsZW1lbnQgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOnRoZS10ZC1lbGVtZW50LTQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+IG9yIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLXRoLWVsZW1lbnQtND48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10aC1lbGVtZW50PnRoPC9hPjwvY29kZT4gZWxlbWVudCwKKyAgb3IgaWYgdGhlcmUgaXMgbm8gbW9yZSBjb250ZW50IGluIHRoZSBwYXJlbnQgZWxlbWVudC48L3A+CisKKyAgPGRpdiBjbGFzcz1leGFtcGxlPgorCisgICA8cD5UaGUgYWJpbGl0eSB0byBvbWl0IGFsbCB0aGVzZSB0YWJsZS1yZWxhdGVkIHRhZ3MgbWFrZXMgdGFibGUgbWFya3VwIG11Y2ggdGVyc2VyLjwvcD4KKworICAgPHA+VGFrZSB0aGlzIGV4YW1wbGU6PC9wPgorCisgICA8cHJlPiZsdDt0YWJsZT4KKyAmbHQ7Y2FwdGlvbj4zNzU0NyBURUUgRWxlY3RyaWMgUG93ZXJlZCBSYWlsIENhciBUcmFpbiBGdW5jdGlvbnMgKEFiYnJldmlhdGVkKSZsdDsvY2FwdGlvbj4KKyAmbHQ7Y29sZ3JvdXA+Jmx0O2NvbD4mbHQ7Y29sPiZsdDtjb2w+Jmx0Oy9jb2xncm91cD4KKyAmbHQ7dGhlYWQ+CisgICZsdDt0cj4KKyAgICZsdDt0aD5GdW5jdGlvbiZsdDsvdGg+CisgICAmbHQ7dGg+Q29udHJvbCBVbml0Jmx0Oy90aD4KKyAgICZsdDt0aD5DZW50cmFsIFN0YXRpb24mbHQ7L3RoPgorICAmbHQ7L3RyPgorICZsdDsvdGhlYWQ+CisgJmx0O3Rib2R5PgorICAmbHQ7dHI+CisgICAmbHQ7dGQ+SGVhZGxpZ2h0cyZsdDsvdGQ+CisgICAmbHQ7dGQ+4pyUJmx0Oy90ZD4KKyAgICZsdDt0ZD7inJQmbHQ7L3RkPgorICAmbHQ7L3RyPgorICAmbHQ7dHI+CisgICAmbHQ7dGQ+SW50ZXJpb3IgTGlnaHRzJmx0Oy90ZD4KKyAgICZsdDt0ZD7inJQmbHQ7L3RkPgorICAgJmx0O3RkPuKclCZsdDsvdGQ+CisgICZsdDsvdHI+CisgICZsdDt0cj4KKyAgICZsdDt0ZD5FbGVjdHJpYyBsb2NvbW90aXZlIG9wZXJhdGluZyBzb3VuZHMmbHQ7L3RkPgorICAgJmx0O3RkPuKclCZsdDsvdGQ+CisgICAmbHQ7dGQ+4pyUJmx0Oy90ZD4KKyAgJmx0Oy90cj4KKyAgJmx0O3RyPgorICAgJmx0O3RkPkVuZ2luZWVyJ3MgY2FiIGxpZ2h0aW5nJmx0Oy90ZD4KKyAgICZsdDt0ZD4mbHQ7L3RkPgorICAgJmx0O3RkPuKclCZsdDsvdGQ+CisgICZsdDsvdHI+CisgICZsdDt0cj4KKyAgICZsdDt0ZD5TdGF0aW9uIEFubm91bmNlbWVudHMgLSBTd2lzcyZsdDsvdGQ+CisgICAmbHQ7dGQ+Jmx0Oy90ZD4KKyAgICZsdDt0ZD7inJQmbHQ7L3RkPgorICAmbHQ7L3RyPgorICZsdDsvdGJvZHk+CismbHQ7L3RhYmxlPjwvcHJlPgorCisgICA8cD5UaGUgZXhhY3Qgc2FtZSB0YWJsZSwgbW9kdWxvIHNvbWUgd2hpdGUgc3BhY2UgZGlmZmVyZW5jZXMsIGNvdWxkIGJlIG1hcmtlZCB1cCBhcyBmb2xsb3dzOjwvcD4KKworICAgPHByZT4mbHQ7dGFibGU+CisgJmx0O2NhcHRpb24+Mzc1NDcgVEVFIEVsZWN0cmljIFBvd2VyZWQgUmFpbCBDYXIgVHJhaW4gRnVuY3Rpb25zIChBYmJyZXZpYXRlZCkKKyAmbHQ7Y29sZ3JvdXA+Jmx0O2NvbD4mbHQ7Y29sPiZsdDtjb2w+CisgJmx0O3RoZWFkPgorICAmbHQ7dHI+CisgICAmbHQ7dGg+RnVuY3Rpb24KKyAgICZsdDt0aD5Db250cm9sIFVuaXQKKyAgICZsdDt0aD5DZW50cmFsIFN0YXRpb24KKyAmbHQ7dGJvZHk+CisgICZsdDt0cj4KKyAgICZsdDt0ZD5IZWFkbGlnaHRzCisgICAmbHQ7dGQ+4pyUCisgICAmbHQ7dGQ+4pyUCisgICZsdDt0cj4KKyAgICZsdDt0ZD5JbnRlcmlvciBMaWdodHMKKyAgICZsdDt0ZD7inJQKKyAgICZsdDt0ZD7inJQKKyAgJmx0O3RyPgorICAgJmx0O3RkPkVsZWN0cmljIGxvY29tb3RpdmUgb3BlcmF0aW5nIHNvdW5kcworICAgJmx0O3RkPuKclAorICAgJmx0O3RkPuKclAorICAmbHQ7dHI+CisgICAmbHQ7dGQ+RW5naW5lZXIncyBjYWIgbGlnaHRpbmcKKyAgICZsdDt0ZD4KKyAgICZsdDt0ZD7inJQKKyAgJmx0O3RyPgorICAgJmx0O3RkPlN0YXRpb24gQW5ub3VuY2VtZW50cyAtIFN3aXNzCisgICAmbHQ7dGQ+CisgICAmbHQ7dGQ+4pyUCismbHQ7L3RhYmxlPjwvcHJlPgorCisgICA8cD5TaW5jZSB0aGUgY2VsbHMgdGFrZSB1cCBtdWNoIGxlc3Mgcm9vbSB0aGlzIHdheSwgdGhpcyBjYW4gYmUgbWFkZSBldmVuIHRlcnNlciBieSBoYXZpbmcgZWFjaAorICAgcm93IG9uIG9uZSBsaW5lOjwvcD4KKworICAgPHByZT4mbHQ7dGFibGU+CisgJmx0O2NhcHRpb24+Mzc1NDcgVEVFIEVsZWN0cmljIFBvd2VyZWQgUmFpbCBDYXIgVHJhaW4gRnVuY3Rpb25zIChBYmJyZXZpYXRlZCkKKyAmbHQ7Y29sZ3JvdXA+Jmx0O2NvbD4mbHQ7Y29sPiZsdDtjb2w+CisgJmx0O3RoZWFkPgorICAmbHQ7dHI+ICZsdDt0aD5GdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsdDt0aD5Db250cm9sIFVuaXQgICAgICZsdDt0aD5DZW50cmFsIFN0YXRpb24KKyAmbHQ7dGJvZHk+CisgICZsdDt0cj4gJmx0O3RkPkhlYWRsaWdodHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmx0O3RkPuKclCAgICAgICAgICAgICAgICAmbHQ7dGQ+4pyUCisgICZsdDt0cj4gJmx0O3RkPkludGVyaW9yIExpZ2h0cyAgICAgICAgICAgICAgICAgICAgICAgJmx0O3RkPuKclCAgICAgICAgICAgICAgICAmbHQ7dGQ+4pyUCisgICZsdDt0cj4gJmx0O3RkPkVsZWN0cmljIGxvY29tb3RpdmUgb3BlcmF0aW5nIHNvdW5kcyAgJmx0O3RkPuKclCAgICAgICAgICAgICAgICAmbHQ7dGQ+4pyUCisgICZsdDt0cj4gJmx0O3RkPkVuZ2luZWVyJ3MgY2FiIGxpZ2h0aW5nICAgICAgICAgICAgICAgJmx0O3RkPiAgICAgICAgICAgICAgICAgJmx0O3RkPuKclAorICAmbHQ7dHI+ICZsdDt0ZD5TdGF0aW9uIEFubm91bmNlbWVudHMgLSBTd2lzcyAgICAgICAgICZsdDt0ZD4gICAgICAgICAgICAgICAgICZsdDt0ZD7inJQKKyZsdDsvdGFibGU+PC9wcmU+CisKKyAgIDxwPlRoZSBvbmx5IGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlc2UgdGFibGVzLCBhdCB0aGUgRE9NIGxldmVsLCBpcyB3aXRoIHRoZSBwcmVjaXNlIHBvc2l0aW9uIG9mCisgICB0aGUgKGluIGFueSBjYXNlIHNlbWFudGljYWxseS1uZXV0cmFsKSB3aGl0ZSBzcGFjZS48L3A+CisKKyAgPC9kaXY+CisKKyAgPHA+PHN0cm9uZz5Ib3dldmVyPC9zdHJvbmc+LCBhIDxhIGhyZWY9I3N5bnRheC1zdGFydC10YWcgaWQ9b3B0aW9uYWwtdGFnczpzeW50YXgtc3RhcnQtdGFnLTc+c3RhcnQgdGFnPC9hPiBtdXN0IG5ldmVyIGJlCisgIG9taXR0ZWQgaWYgaXQgaGFzIGFueSBhdHRyaWJ1dGVzLjwvcD4KKworICA8ZGl2IGNsYXNzPWV4YW1wbGU+CisKKyAgIDxwPlJldHVybmluZyB0byB0aGUgZWFybGllciBleGFtcGxlIHdpdGggYWxsIHRoZSB3aGl0ZSBzcGFjZSByZW1vdmVkIGFuZCB0aGVuIGFsbCB0aGUgb3B0aW9uYWwKKyAgIHRhZ3MgcmVtb3ZlZDo8L3A+CisKKyAgIDxwcmU+Jmx0OyFET0NUWVBFIEhUTUw+Jmx0O3RpdGxlPkhlbGxvJmx0Oy90aXRsZT4mbHQ7cD5XZWxjb21lIHRvIHRoaXMgZXhhbXBsZS48L3ByZT4KKworICAgPHA+SWYgdGhlIDxjb2RlIGlkPW9wdGlvbmFsLXRhZ3M6dGhlLWJvZHktZWxlbWVudC05PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT4gZWxlbWVudCBpbiB0aGlzIGV4YW1wbGUgaGFkIHRvIGhhdmUgYSA8Y29kZSBpZD1vcHRpb25hbC10YWdzOmNsYXNzZXM+PGEgaHJlZj1kb20uaHRtbCNjbGFzc2VzPmNsYXNzPC9hPjwvY29kZT4gYXR0cmlidXRlIGFuZCB0aGUgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczp0aGUtaHRtbC1lbGVtZW50LTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IGhhZCB0byBoYXZlIGEgPGNvZGUgaWQ9b3B0aW9uYWwtdGFnczphdHRyLWxhbmc+PGEgaHJlZj1kb20uaHRtbCNhdHRyLWxhbmc+bGFuZzwvYT48L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIG1hcmt1cCB3b3VsZCBoYXZlIHRvIGJlY29tZTo8L3A+CisKKyAgIDxwcmU+Jmx0OyFET0NUWVBFIEhUTUw+Jmx0O2h0bWwgbGFuZz0iZW4iPiZsdDt0aXRsZT5IZWxsbyZsdDsvdGl0bGU+Jmx0O2JvZHkgY2xhc3M9ImRlbW8iPiZsdDtwPldlbGNvbWUgdG8gdGhpcyBleGFtcGxlLjwvcHJlPgorCisgIDwvZGl2PgorCisgIDxwIGNsYXNzPW5vdGU+VGhpcyBzZWN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgZG9jdW1lbnQgaXMgY29uZm9ybWluZywgaW4gcGFydGljdWxhciwgdGhhdCB0aGVyZQorICBhcmUgbm8gPGEgaHJlZj1kb20uaHRtbCNjb250ZW50LW1vZGVscyBpZD1vcHRpb25hbC10YWdzOmNvbnRlbnQtbW9kZWxzPmNvbnRlbnQgbW9kZWw8L2E+IHZpb2xhdGlvbnMuIE9taXR0aW5nIHRhZ3MgaW4gdGhlIGZhc2hpb24KKyAgZGVzY3JpYmVkIGluIHRoaXMgc2VjdGlvbiBpbiBhIGRvY3VtZW50IHRoYXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgPGEgaWQ9b3B0aW9uYWwtdGFnczpjb250ZW50LW1vZGVscy0yIGhyZWY9ZG9tLmh0bWwjY29udGVudC1tb2RlbHM+Y29udGVudCBtb2RlbHM8L2E+CisgIGRlc2NyaWJlZCBpbiB0aGlzIHNwZWNpZmljYXRpb24gaXMgbGlrZWx5IHRvIHJlc3VsdCBpbiB1bmV4cGVjdGVkIERPTSBkaWZmZXJlbmNlcyAodGhpcyBpcywgaW4KKyAgcGFydCwgd2hhdCB0aGUgY29udGVudCBtb2RlbHMgYXJlIGRlc2lnbmVkIHRvIGF2b2lkKS48L3A+CisKKworICA8aDUgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM+MTIuMS4yLjUgUmVzdHJpY3Rpb25zIG9uIGNvbnRlbnQgbW9kZWxzPC9oNT4KKworICA8cD5Gb3IgaGlzdG9yaWNhbCByZWFzb25zLCBjZXJ0YWluIGVsZW1lbnRzIGhhdmUgZXh0cmEgcmVzdHJpY3Rpb25zIGJleW9uZCBldmVuIHRoZSByZXN0cmljdGlvbnMKKyAgZ2l2ZW4gYnkgdGhlaXIgY29udGVudCBtb2RlbC48L3A+CisKKyAgPHA+QSA8Y29kZSBpZD1lbGVtZW50LXJlc3RyaWN0aW9uczp0aGUtdGFibGUtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4gZWxlbWVudCBtdXN0IG5vdCBjb250YWluIDxjb2RlIGlkPWVsZW1lbnQtcmVzdHJpY3Rpb25zOnRoZS10ci1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiBlbGVtZW50cywgZXZlbiB0aG91Z2ggdGhlc2UKKyAgZWxlbWVudHMgYXJlIHRlY2huaWNhbGx5IGFsbG93ZWQgaW5zaWRlIDxjb2RlIGlkPWVsZW1lbnQtcmVzdHJpY3Rpb25zOnRoZS10YWJsZS1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+IGVsZW1lbnRzIGFjY29yZGluZyB0byB0aGUgY29udGVudAorICBtb2RlbHMgZGVzY3JpYmVkIGluIHRoaXMgc3BlY2lmaWNhdGlvbi4gKElmIGEgPGNvZGUgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM6dGhlLXRyLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT4gZWxlbWVudCBpcyBwdXQgaW5zaWRlIGEKKyAgPGNvZGUgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM6dGhlLXRhYmxlLWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4gaW4gdGhlIG1hcmt1cCwgaXQgd2lsbCBpbiBmYWN0IGltcGx5IGEgPGNvZGUgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM6dGhlLXRib2R5LWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+IHN0YXJ0IHRhZyBiZWZvcmUKKyAgaXQuKTwvcD4KKworICA8cD5BIHNpbmdsZSA8YSBocmVmPSNzeW50YXgtbmV3bGluZXMgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM6c3ludGF4LW5ld2xpbmVzPm5ld2xpbmU8L2E+IG1heSBiZSBwbGFjZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIDxhIGhyZWY9I3N5bnRheC1zdGFydC10YWcgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM6c3ludGF4LXN0YXJ0LXRhZz5zdGFydCB0YWc8L2E+IG9mIDxjb2RlIGlkPWVsZW1lbnQtcmVzdHJpY3Rpb25zOnRoZS1wcmUtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wcmUtZWxlbWVudD5wcmU8L2E+PC9jb2RlPiBhbmQgPGNvZGUgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM6dGhlLXRleHRhcmVhLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS10ZXh0YXJlYS1lbGVtZW50PnRleHRhcmVhPC9hPjwvY29kZT4gZWxlbWVudHMuCisgIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBwcm9jZXNzaW5nIG9mIHRoZSBlbGVtZW50LiBUaGUgb3RoZXJ3aXNlIG9wdGlvbmFsIDxhIGhyZWY9I3N5bnRheC1uZXdsaW5lcyBpZD1lbGVtZW50LXJlc3RyaWN0aW9uczpzeW50YXgtbmV3bGluZXMtMj5uZXdsaW5lPC9hPiA8ZW0+bXVzdDwvZW0+IGJlIGluY2x1ZGVkIGlmIHRoZSBlbGVtZW50J3MgY29udGVudHMKKyAgdGhlbXNlbHZlcyBzdGFydCB3aXRoIGEgPGEgaHJlZj0jc3ludGF4LW5ld2xpbmVzIGlkPWVsZW1lbnQtcmVzdHJpY3Rpb25zOnN5bnRheC1uZXdsaW5lcy0zPm5ld2xpbmU8L2E+IChiZWNhdXNlIG90aGVyd2lzZSB0aGUKKyAgbGVhZGluZyBuZXdsaW5lIGluIHRoZSBjb250ZW50cyB3b3VsZCBiZSB0cmVhdGVkIGxpa2UgdGhlIG9wdGlvbmFsIG5ld2xpbmUsIGFuZCBpZ25vcmVkKS48L3A+CisKKyAgPGRpdiBjbGFzcz1leGFtcGxlPgorICAgPHA+VGhlIGZvbGxvd2luZyB0d28gPGNvZGUgaWQ9ZWxlbWVudC1yZXN0cmljdGlvbnM6dGhlLXByZS1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcHJlLWVsZW1lbnQ+cHJlPC9hPjwvY29kZT4gYmxvY2tzIGFyZSBlcXVpdmFsZW50OjwvcD4KKyAgIDxwcmU+Jmx0O3ByZT5IZWxsbyZsdDsvcHJlPjwvcHJlPgorICAgPHByZT4mbHQ7cHJlPjxicj5IZWxsbyZsdDsvcHJlPjwvcHJlPgorICA8L2Rpdj4KKworCisgIDxoNSBpZD1jZGF0YS1yY2RhdGEtcmVzdHJpY3Rpb25zPjEyLjEuMi42IFJlc3RyaWN0aW9ucyBvbiB0aGUgY29udGVudHMgb2YgcmF3IHRleHQgYW5kIGVzY2FwYWJsZSByYXcgdGV4dCBlbGVtZW50czwvaDU+CisKKyAgPHA+VGhlIHRleHQgaW4gPGEgaHJlZj0jcmF3LXRleHQtZWxlbWVudHMgaWQ9Y2RhdGEtcmNkYXRhLXJlc3RyaWN0aW9uczpyYXctdGV4dC1lbGVtZW50cz5yYXcgdGV4dDwvYT4gYW5kIDxhIGhyZWY9I2VzY2FwYWJsZS1yYXctdGV4dC1lbGVtZW50cyBpZD1jZGF0YS1yY2RhdGEtcmVzdHJpY3Rpb25zOmVzY2FwYWJsZS1yYXctdGV4dC1lbGVtZW50cz5lc2NhcGFibGUgcmF3IHRleHQKKyAgZWxlbWVudHM8L2E+IG11c3Qgbm90IGNvbnRhaW4gYW55IG9jY3VycmVuY2VzIG9mIHRoZSBzdHJpbmcgIjxjb2RlPiZsdDsvPC9jb2RlPiIKKyAgKFUrMDAzQyBMRVNTLVRIQU4gU0lHTiwgVSswMDJGIFNPTElEVVMpIGZvbGxvd2VkIGJ5IGNoYXJhY3RlcnMgdGhhdCBjYXNlLWluc2Vuc2l0aXZlbHkgbWF0Y2ggdGhlCisgIHRhZyBuYW1lIG9mIHRoZSBlbGVtZW50IGZvbGxvd2VkIGJ5IG9uZSBvZiBVKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYiksIFUrMDAwQSBMSU5FIEZFRUQKKyAgKExGKSwgVSswMDBDIEZPUk0gRkVFRCAoRkYpLCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUiksIFUrMDAyMCBTUEFDRSwgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOCisgICg+KSwgb3IgVSswMDJGIFNPTElEVVMgKC8pLjwvcD4KKworCisgIDxoNCBpZD10ZXh0LTI+MTIuMS4zIFRleHQ8L2g0PgorCisgIDxwPjxkZm4gaWQ9c3ludGF4LXRleHQ+VGV4dDwvZGZuPiBpcyBhbGxvd2VkIGluc2lkZSBlbGVtZW50cywgYXR0cmlidXRlIHZhbHVlcywgYW5kIGNvbW1lbnRzLgorICBFeHRyYSBjb25zdHJhaW50cyBhcmUgcGxhY2VkIG9uIHdoYXQgaXMgYW5kIHdoYXQgaXMgbm90IGFsbG93ZWQgaW4gdGV4dCBiYXNlZCBvbiB3aGVyZSB0aGUgdGV4dCBpcworICB0byBiZSBwdXQsIGFzIGRlc2NyaWJlZCBpbiB0aGUgb3RoZXIgc2VjdGlvbnMuPC9wPgorCisKKyAgPGg1IGlkPW5ld2xpbmVzPjEyLjEuMy4xIE5ld2xpbmVzPC9oNT4KKworICA8cD48ZGZuIGlkPXN5bnRheC1uZXdsaW5lcz5OZXdsaW5lczwvZGZuPiBpbiBIVE1MIG1heSBiZSByZXByZXNlbnRlZCBlaXRoZXIgYXMgVSswMDBECisgIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlcnMsIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzLCBvciBwYWlycyBvZiBVKzAwMEQgQ0FSUklBR0UKKyAgUkVUVVJOIChDUiksIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzIGluIHRoYXQgb3JkZXIuPC9wPgorCisgIDxwPldoZXJlIDxhIGhyZWY9I3N5bnRheC1jaGFycmVmIGlkPW5ld2xpbmVzOnN5bnRheC1jaGFycmVmPmNoYXJhY3RlciByZWZlcmVuY2VzPC9hPiBhcmUgYWxsb3dlZCwgYSBjaGFyYWN0ZXIKKyAgcmVmZXJlbmNlIG9mIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciAoYnV0IG5vdCBhIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXIpCisgIGFsc28gcmVwcmVzZW50cyBhIDxhIGhyZWY9I3N5bnRheC1uZXdsaW5lcyBpZD1uZXdsaW5lczpzeW50YXgtbmV3bGluZXM+bmV3bGluZTwvYT4uPC9wPgorCisKKyAgPGg0IGlkPWNoYXJhY3Rlci1yZWZlcmVuY2VzPjEyLjEuNCBDaGFyYWN0ZXIgcmVmZXJlbmNlczwvaDQ+CisKKyAgPHA+SW4gY2VydGFpbiBjYXNlcyBkZXNjcmliZWQgaW4gb3RoZXIgc2VjdGlvbnMsIDxhIGhyZWY9I3N5bnRheC10ZXh0IGlkPWNoYXJhY3Rlci1yZWZlcmVuY2VzOnN5bnRheC10ZXh0PnRleHQ8L2E+IG1heSBiZQorICBtaXhlZCB3aXRoIDxkZm4gaWQ9c3ludGF4LWNoYXJyZWY+Y2hhcmFjdGVyIHJlZmVyZW5jZXM8L2Rmbj4uIFRoZXNlIGNhbiBiZSB1c2VkIHRvIGVzY2FwZQorICBjaGFyYWN0ZXJzIHRoYXQgY291bGRuJ3Qgb3RoZXJ3aXNlIGxlZ2FsbHkgYmUgaW5jbHVkZWQgaW4gPGEgaHJlZj0jc3ludGF4LXRleHQgaWQ9Y2hhcmFjdGVyLXJlZmVyZW5jZXM6c3ludGF4LXRleHQtMj50ZXh0PC9hPi48L3A+CisKKyAgPHA+Q2hhcmFjdGVyIHJlZmVyZW5jZXMgbXVzdCBzdGFydCB3aXRoIGEgVSswMDI2IEFNUEVSU0FORCBjaGFyYWN0ZXIgKCZhbXA7KS4gRm9sbG93aW5nIHRoaXMsCisgIHRoZXJlIGFyZSB0aHJlZSBwb3NzaWJsZSBraW5kcyBvZiBjaGFyYWN0ZXIgcmVmZXJlbmNlczo8L3A+CisKKyAgPGRsPjxkdD5OYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlczxkZD5UaGUgYW1wZXJzYW5kIG11c3QgYmUgZm9sbG93ZWQgYnkgb25lIG9mIHRoZSBuYW1lcyBnaXZlbiBpbiB0aGUgPGEgaHJlZj0jbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMgaWQ9Y2hhcmFjdGVyLXJlZmVyZW5jZXM6bmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXM+bmFtZWQgY2hhcmFjdGVyCisgICByZWZlcmVuY2VzPC9hPiBzZWN0aW9uLCB1c2luZyB0aGUgc2FtZSBjYXNlLiBUaGUgbmFtZSBtdXN0IGJlIG9uZSB0aGF0IGlzCisgICB0ZXJtaW5hdGVkIGJ5IGEgVSswMDNCIFNFTUlDT0xPTiBjaGFyYWN0ZXIgKDspLjxkdD5EZWNpbWFsIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZTxkZD5UaGUgYW1wZXJzYW5kIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBVKzAwMjMgTlVNQkVSIFNJR04gY2hhcmFjdGVyICgjKSwgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUKKyAgIDxhIGlkPWNoYXJhY3Rlci1yZWZlcmVuY2VzOmFzY2lpLWRpZ2l0cyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktZGlnaXRzPkFTQ0lJIGRpZ2l0czwvYT4sIHJlcHJlc2VudGluZyBhIGJhc2UtdGVuIGludGVnZXIgdGhhdCBjb3JyZXNwb25kcyB0byBhIFVuaWNvZGUgY29kZQorICAgcG9pbnQgdGhhdCBpcyBhbGxvd2VkIGFjY29yZGluZyB0byB0aGUgZGVmaW5pdGlvbiBiZWxvdy4gVGhlIGRpZ2l0cyBtdXN0IHRoZW4gYmUgZm9sbG93ZWQgYnkgYQorICAgVSswMDNCIFNFTUlDT0xPTiBjaGFyYWN0ZXIgKDspLjxkdD5IZXhhZGVjaW1hbCBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2U8ZGQ+VGhlIGFtcGVyc2FuZCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgVSswMDIzIE5VTUJFUiBTSUdOIGNoYXJhY3RlciAoIyksIHdoaWNoIG11c3QgYmUgZm9sbG93ZWQKKyAgIGJ5IGVpdGhlciBhIFUrMDA3OCBMQVRJTiBTTUFMTCBMRVRURVIgWCBjaGFyYWN0ZXIgKHgpIG9yIGEgVSswMDU4IExBVElOIENBUElUQUwgTEVUVEVSIFgKKyAgIGNoYXJhY3RlciAoWCksIHdoaWNoIG11c3QgdGhlbiBiZSBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSA8YSBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlczphc2NpaS1oZXgtZGlnaXRzIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhc2NpaS1oZXgtZGlnaXRzPkFTQ0lJIGhleCBkaWdpdHM8L2E+LAorICAgcmVwcmVzZW50aW5nIGEgaGV4YWRlY2ltYWwgaW50ZWdlciB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgVW5pY29kZSBjb2RlIHBvaW50IHRoYXQgaXMgYWxsb3dlZAorICAgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIGJlbG93LiBUaGUgZGlnaXRzIG11c3QgdGhlbiBiZSBmb2xsb3dlZCBieSBhIFUrMDAzQiBTRU1JQ09MT04KKyAgIGNoYXJhY3RlciAoOykuPC9kbD4KKworICA8cD5UaGUgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlIGZvcm1zIGRlc2NyaWJlZCBhYm92ZSBhcmUgYWxsb3dlZCB0byByZWZlcmVuY2UgYW55IFVuaWNvZGUgY29kZQorICBwb2ludCBvdGhlciB0aGFuIFUrMDAwMCwgVSswMDBELCBwZXJtYW5lbnRseSB1bmRlZmluZWQgVW5pY29kZSBjaGFyYWN0ZXJzIChub25jaGFyYWN0ZXJzKSwKKyAgc3Vycm9nYXRlcyAoVStEODAw4oCTVStERkZGKSwgYW5kIDxhIGlkPWNoYXJhY3Rlci1yZWZlcmVuY2VzOmNvbnRyb2wtY2hhcmFjdGVycyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY29udHJvbC1jaGFyYWN0ZXJzPmNvbnRyb2wgY2hhcmFjdGVyczwvYT4gb3RoZXIgdGhhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3BhY2UtY2hhcmFjdGVyIGlkPWNoYXJhY3Rlci1yZWZlcmVuY2VzOnNwYWNlLWNoYXJhY3Rlcj5zcGFjZSBjaGFyYWN0ZXJzPC9hPi48L3A+CisKKyAgPHA+QW4gPGRmbiBpZD1zeW50YXgtYW1iaWd1b3VzLWFtcGVyc2FuZD5hbWJpZ3VvdXMgYW1wZXJzYW5kPC9kZm4+IGlzIGEgVSswMDI2IEFNUEVSU0FORAorICBjaGFyYWN0ZXIgKCZhbXA7KSB0aGF0IGlzIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIDxhIGlkPWNoYXJhY3Rlci1yZWZlcmVuY2VzOmFscGhhbnVtZXJpYy1hc2NpaS1jaGFyYWN0ZXJzIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhbHBoYW51bWVyaWMtYXNjaWktY2hhcmFjdGVycz5hbHBoYW51bWVyaWMgQVNDSUkgY2hhcmFjdGVyczwvYT4sCisgIGZvbGxvd2VkIGJ5IGEgVSswMDNCIFNFTUlDT0xPTiBjaGFyYWN0ZXIgKDspLCB3aGVyZSB0aGVzZSBjaGFyYWN0ZXJzIGRvIG5vdCBtYXRjaCBhbnkgb2YgdGhlIG5hbWVzCisgIGdpdmVuIGluIHRoZSA8YSBocmVmPSNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcyBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlczpuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy0yPm5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzPC9hPiBzZWN0aW9uLjwvcD4KKworCisgIDxoNCBpZD1jZGF0YS1zZWN0aW9ucz4xMi4xLjUgQ0RBVEEgc2VjdGlvbnM8L2g0PgorCisgIDxwPjxkZm4gaWQ9c3ludGF4LWNkYXRhPkNEQVRBIHNlY3Rpb25zPC9kZm4+IG11c3QgY29uc2lzdCBvZiB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHMsIGluCisgIHRoaXMgb3JkZXI6PC9wPgorCisgIDxvbD48bGk+VGhlIHN0cmluZyAiPGNvZGU+Jmx0OyFbQ0RBVEFbPC9jb2RlPiIuPGxpPk9wdGlvbmFsbHksIDxhIGhyZWY9I3N5bnRheC10ZXh0IGlkPWNkYXRhLXNlY3Rpb25zOnN5bnRheC10ZXh0PnRleHQ8L2E+LCB3aXRoIHRoZSBhZGRpdGlvbmFsIHJlc3RyaWN0aW9uIHRoYXQgdGhlCisgICB0ZXh0IG11c3Qgbm90IGNvbnRhaW4gdGhlIHN0cmluZyAiPGNvZGU+XV0+PC9jb2RlPiIuPGxpPlRoZSBzdHJpbmcgIjxjb2RlPl1dPjwvY29kZT4iLjwvb2w+CisKKyAgPGRpdiBjbGFzcz1leGFtcGxlPgorCisgICA8cD5DREFUQSBzZWN0aW9ucyBjYW4gb25seSBiZSB1c2VkIGluIGZvcmVpZ24gY29udGVudCAoTWF0aE1MIG9yIFNWRykuIEluIHRoaXMgZXhhbXBsZSwgYSBDREFUQQorICAgc2VjdGlvbiBpcyB1c2VkIHRvIGVzY2FwZSB0aGUgY29udGVudHMgb2YgYW4gPGNvZGUgaWQ9Y2RhdGEtc2VjdGlvbnM6bWF0aDptcz48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOm1zPm1zPC9hPjwvY29kZT4gZWxlbWVudDo8L3A+CisKKyAgIDxwcmU+Jmx0O3A+WW91IGNhbiBhZGQgYSBzdHJpbmcgdG8gYSBudW1iZXIsIGJ1dCB0aGlzIHN0cmluZ2lmaWVzIHRoZSBudW1iZXI6Jmx0Oy9wPgorJmx0O21hdGg+CisgJmx0O21zPiZsdDshW0NEQVRBW3gmbHQ7eV1dPiZsdDsvbXM+CisgJmx0O21vPismbHQ7L21vPgorICZsdDttbj4zJmx0Oy9tbj4KKyAmbHQ7bW8+PSZsdDsvbW8+CisgJmx0O21zPiZsdDshW0NEQVRBW3gmbHQ7eTNdXT4mbHQ7L21zPgorJmx0Oy9tYXRoPjwvcHJlPgorCisgIDwvZGl2PgorCisKKyAgPGg0IGlkPWNvbW1lbnRzPjEyLjEuNiBDb21tZW50czwvaDQ+CisKKyAgPHA+PGRmbiBpZD1zeW50YXgtY29tbWVudHM+Q29tbWVudHM8L2Rmbj4gbXVzdCBzdGFydCB3aXRoIHRoZSBmb3VyIGNoYXJhY3RlciBzZXF1ZW5jZSBVKzAwM0MKKyAgTEVTUy1USEFOIFNJR04sIFUrMDAyMSBFWENMQU1BVElPTiBNQVJLLCBVKzAwMkQgSFlQSEVOLU1JTlVTLCBVKzAwMkQgSFlQSEVOLU1JTlVTICg8Y29kZT4mbHQ7IS0tPC9jb2RlPikuIEZvbGxvd2luZyB0aGlzIHNlcXVlbmNlLCB0aGUgY29tbWVudCBtYXkgaGF2ZSA8YSBocmVmPSNzeW50YXgtdGV4dCBpZD1jb21tZW50czpzeW50YXgtdGV4dD50ZXh0PC9hPiwgd2l0aCB0aGUgYWRkaXRpb25hbCByZXN0cmljdGlvbiB0aGF0IHRoZSB0ZXh0IG11c3Qgbm90IHN0YXJ0IHdpdGgKKyAgYSBzaW5nbGUgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOIGNoYXJhY3RlciAoPiksIG5vciBzdGFydCB3aXRoIGEgVSswMDJEIEhZUEhFTi1NSU5VUyBjaGFyYWN0ZXIKKyAgKC0pIGZvbGxvd2VkIGJ5IGEgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOICg+KSBjaGFyYWN0ZXIsIG5vciBjb250YWluIHR3byBjb25zZWN1dGl2ZSBVKzAwMkQKKyAgSFlQSEVOLU1JTlVTIGNoYXJhY3RlcnMgKDxjb2RlPi0tPC9jb2RlPiksIG5vciBlbmQgd2l0aCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVyCisgICgtKS4gRmluYWxseSwgdGhlIGNvbW1lbnQgbXVzdCBiZSBlbmRlZCBieSB0aGUgdGhyZWUgY2hhcmFjdGVyIHNlcXVlbmNlIFUrMDAyRCBIWVBIRU4tTUlOVVMsCisgIFUrMDAyRCBIWVBIRU4tTUlOVVMsIFUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPGNvZGU+LS0+PC9jb2RlPikuPC9wPgorCisKKworCisKKworICA8aDMgaWQ9cGFyc2luZz4xMi4yIFBhcnNpbmcgSFRNTCBkb2N1bWVudHM8L2gzPjxkaXYgY2xhc3M9c3RhdHVzPjxpbnB1dCBvbmNsaWNrPXRvZ2dsZVN0YXR1cyh0aGlzKSB2YWx1ZT3ii7AgdHlwZT1idXR0b24+PHAgY2xhc3M9YnVncz48c3Ryb25nPlNwZWMgYnVnczo8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yNDg5MiIgdGl0bGU9IlNwZWNpZnkgc3BlY3VsYXRpdmUgcGFyc2luZyBhbmQgdGhhdCBpdCBmZXRjaGVzIGJvZ3VzIHNjcmlwdHMuIFNlZSBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MzI5NTMxIj4yNDg5MjwvYT48L2Rpdj4KKworICA8cD48aT5UaGlzIHNlY3Rpb24gb25seSBhcHBsaWVzIHRvIHVzZXIgYWdlbnRzLCBkYXRhIG1pbmluZyB0b29scywgYW5kIGNvbmZvcm1hbmNlCisgIGNoZWNrZXJzLjwvaT48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGUgcnVsZXMgZm9yIHBhcnNpbmcgWE1MIGRvY3VtZW50cyBpbnRvIERPTSB0cmVlcyBhcmUgY292ZXJlZCBieSB0aGUgbmV4dAorICBzZWN0aW9uLCBlbnRpdGxlZCAiPGEgaWQ9cGFyc2luZzp0aGUteGh0bWwtc3ludGF4IGhyZWY9eGh0bWwuaHRtbCN0aGUteGh0bWwtc3ludGF4PlRoZSBYSFRNTCBzeW50YXg8L2E+Ii48L3A+CisKKyAgPHA+VXNlciBhZ2VudHMgbXVzdCB1c2UgdGhlIHBhcnNpbmcgcnVsZXMgZGVzY3JpYmVkIGluIHRoaXMgc2VjdGlvbiB0byBnZW5lcmF0ZSB0aGUgRE9NIHRyZWVzIGZyb20KKyAgPGNvZGUgaWQ9cGFyc2luZzp0ZXh0L2h0bWw+PGEgaHJlZj1pYW5hLmh0bWwjdGV4dC9odG1sPnRleHQvaHRtbDwvYT48L2NvZGU+IHJlc291cmNlcy4gVG9nZXRoZXIsIHRoZXNlIHJ1bGVzIGRlZmluZSB3aGF0IGlzIHJlZmVycmVkIHRvIGFzIHRoZQorICA8ZGZuIGlkPWh0bWwtcGFyc2VyPkhUTUwgcGFyc2VyPC9kZm4+LjwvcD4KKworICA8ZGl2IGNsYXNzPW5vdGU+CisKKyAgIDxwPldoaWxlIHRoZSBIVE1MIHN5bnRheCBkZXNjcmliZWQgaW4gdGhpcyBzcGVjaWZpY2F0aW9uIGJlYXJzIGEgY2xvc2UgcmVzZW1ibGFuY2UgdG8gU0dNTCBhbmQKKyAgIFhNTCwgaXQgaXMgYSBzZXBhcmF0ZSBsYW5ndWFnZSB3aXRoIGl0cyBvd24gcGFyc2luZyBydWxlcy48L3A+CisKKyAgIDxwPlNvbWUgZWFybGllciB2ZXJzaW9ucyBvZiBIVE1MIChpbiBwYXJ0aWN1bGFyIGZyb20gSFRNTDIgdG8gSFRNTDQpIHdlcmUgYmFzZWQgb24gU0dNTCBhbmQgdXNlZAorICAgU0dNTCBwYXJzaW5nIHJ1bGVzLiBIb3dldmVyLCBmZXcgKGlmIGFueSkgd2ViIGJyb3dzZXJzIGV2ZXIgaW1wbGVtZW50ZWQgdHJ1ZSBTR01MIHBhcnNpbmcgZm9yCisgICBIVE1MIGRvY3VtZW50czsgdGhlIG9ubHkgdXNlciBhZ2VudHMgdG8gc3RyaWN0bHkgaGFuZGxlIEhUTUwgYXMgYW4gU0dNTCBhcHBsaWNhdGlvbiBoYXZlCisgICBoaXN0b3JpY2FsbHkgYmVlbiB2YWxpZGF0b3JzLiBUaGUgcmVzdWx0aW5nIGNvbmZ1c2lvbiDigJQgd2l0aCB2YWxpZGF0b3JzIGNsYWltaW5nIGRvY3VtZW50cworICAgdG8gaGF2ZSBvbmUgcmVwcmVzZW50YXRpb24gd2hpbGUgd2lkZWx5IGRlcGxveWVkIFdlYiBicm93c2VycyBpbnRlcm9wZXJhYmx5IGltcGxlbWVudGVkIGEKKyAgIGRpZmZlcmVudCByZXByZXNlbnRhdGlvbiDigJQgaGFzIHdhc3RlZCBkZWNhZGVzIG9mIHByb2R1Y3Rpdml0eS4gVGhpcyB2ZXJzaW9uIG9mIEhUTUwgdGh1cworICAgcmV0dXJucyB0byBhIG5vbi1TR01MIGJhc2lzLjwvcD4KKworICAgPHA+QXV0aG9ycyBpbnRlcmVzdGVkIGluIHVzaW5nIFNHTUwgdG9vbHMgaW4gdGhlaXIgYXV0aG9yaW5nIHBpcGVsaW5lIGFyZSBlbmNvdXJhZ2VkIHRvIHVzZSBYTUwKKyAgIHRvb2xzIGFuZCB0aGUgWE1MIHNlcmlhbGlzYXRpb24gb2YgSFRNTC48L3A+CisKKyAgPC9kaXY+CisKKyAgPHA+VGhpcyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgdGhlIHBhcnNpbmcgcnVsZXMgZm9yIEhUTUwgZG9jdW1lbnRzLCB3aGV0aGVyIHRoZXkgYXJlIHN5bnRhY3RpY2FsbHkKKyAgY29ycmVjdCBvciBub3QuIENlcnRhaW4gcG9pbnRzIGluIHRoZSBwYXJzaW5nIGFsZ29yaXRobSBhcmUgc2FpZCB0byBiZSA8ZGZuIGlkPXBhcnNlLWVycm9yPnBhcnNlIGVycm9yczwvZGZuPi4gVGhlIGVycm9yIGhhbmRsaW5nIGZvciBwYXJzZSBlcnJvcnMgaXMgd2VsbC1kZWZpbmVkICh0aGF0J3MgdGhlCisgIHByb2Nlc3NpbmcgcnVsZXMgZGVzY3JpYmVkIHRocm91Z2hvdXQgdGhpcyBzcGVjaWZpY2F0aW9uKSwgYnV0IHVzZXIgYWdlbnRzLCB3aGlsZSBwYXJzaW5nIGFuIEhUTUwKKyAgZG9jdW1lbnQsIG1heSA8YSBocmVmPSNhYm9ydC1hLXBhcnNlciBpZD1wYXJzaW5nOmFib3J0LWEtcGFyc2VyPmFib3J0IHRoZSBwYXJzZXI8L2E+IGF0IHRoZSBmaXJzdCA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nOnBhcnNlLWVycm9yPnBhcnNlCisgIGVycm9yPC9hPiB0aGF0IHRoZXkgZW5jb3VudGVyIGZvciB3aGljaCB0aGV5IGRvIG5vdCB3aXNoIHRvIGFwcGx5IHRoZSBydWxlcyBkZXNjcmliZWQgaW4gdGhpcworICBzcGVjaWZpY2F0aW9uLjwvcD4KKworICA8cD5Db25mb3JtYW5jZSBjaGVja2VycyBtdXN0IHJlcG9ydCBhdCBsZWFzdCBvbmUgcGFyc2UgZXJyb3IgY29uZGl0aW9uIHRvIHRoZSB1c2VyIGlmIG9uZSBvciBtb3JlCisgIHBhcnNlIGVycm9yIGNvbmRpdGlvbnMgZXhpc3QgaW4gdGhlIGRvY3VtZW50IGFuZCBtdXN0IG5vdCByZXBvcnQgcGFyc2UgZXJyb3IgY29uZGl0aW9ucyBpZiBub25lCisgIGV4aXN0IGluIHRoZSBkb2N1bWVudC4gQ29uZm9ybWFuY2UgY2hlY2tlcnMgbWF5IHJlcG9ydCBtb3JlIHRoYW4gb25lIHBhcnNlIGVycm9yIGNvbmRpdGlvbiBpZiBtb3JlCisgIHRoYW4gb25lIHBhcnNlIGVycm9yIGNvbmRpdGlvbiBleGlzdHMgaW4gdGhlIGRvY3VtZW50LjwvcD4KKworICA8cCBjbGFzcz1ub3RlPlBhcnNlIGVycm9ycyBhcmUgb25seSBlcnJvcnMgd2l0aCB0aGUgPGVtPnN5bnRheDwvZW0+IG9mIEhUTUwuIEluIGFkZGl0aW9uIHRvCisgIGNoZWNraW5nIGZvciBwYXJzZSBlcnJvcnMsIGNvbmZvcm1hbmNlIGNoZWNrZXJzIHdpbGwgYWxzbyB2ZXJpZnkgdGhhdCB0aGUgZG9jdW1lbnQgb2JleXMgYWxsIHRoZQorICBvdGhlciBjb25mb3JtYW5jZSByZXF1aXJlbWVudHMgZGVzY3JpYmVkIGluIHRoaXMgc3BlY2lmaWNhdGlvbi48L3A+CisKKyAgPHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiBjb25mb3JtYW5jZSBjaGVja2VycywgaWYgYSByZXNvdXJjZSBpcyBkZXRlcm1pbmVkIHRvIGJlIGluIDxhIGhyZWY9I3N5bnRheCBpZD1wYXJzaW5nOnN5bnRheD50aGUgSFRNTAorICBzeW50YXg8L2E+LCB0aGVuIGl0IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWRvY3VtZW50cyBpZD1wYXJzaW5nOmh0bWwtZG9jdW1lbnRzPkhUTUwgZG9jdW1lbnQ8L2E+LjwvcD4KKworICA8cCBjbGFzcz1ub3RlPkFzIHN0YXRlZCA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nOmh0bWwtZWxlbWVudHMgY2xhc3M9bm8tYmFja3JlZj5pbiB0aGUgdGVybWlub2xvZ3kKKyAgc2VjdGlvbjwvYT4sIHJlZmVyZW5jZXMgdG8gPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2VsZW1lbnQtdHlwZSBpZD1wYXJzaW5nOmVsZW1lbnQtdHlwZT5lbGVtZW50IHR5cGVzPC9hPiB0aGF0IGRvIG5vdAorICBleHBsaWNpdGx5IHNwZWNpZnkgYSBuYW1lc3BhY2UgYWx3YXlzIHJlZmVyIHRvIGVsZW1lbnRzIGluIHRoZSA8YSBpZD1wYXJzaW5nOmh0bWwtbmFtZXNwYWNlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtbmFtZXNwYWNlLTI+SFRNTCBuYW1lc3BhY2U8L2E+LiBGb3IKKyAgZXhhbXBsZSwgaWYgdGhlIHNwZWMgdGFsa3MgYWJvdXQgImEgPGNvZGUgaWQ9cGFyc2luZzp0aGUtbWVudWl0ZW0tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW1lbnVpdGVtLWVsZW1lbnQ+bWVudWl0ZW08L2E+PC9jb2RlPiBlbGVtZW50IiwgdGhlbiB0aGF0IGlzIGFuIGVsZW1lbnQgd2l0aAorICB0aGUgbG9jYWwgbmFtZSAiPGNvZGU+bWVudWl0ZW08L2NvZGU+IiwgdGhlIG5hbWVzcGFjZSAiPGNvZGU+aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbDwvY29kZT4iLCBhbmQgdGhlIGludGVyZmFjZSA8Y29kZSBpZD1wYXJzaW5nOmh0bWxtZW51aXRlbWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI2h0bWxtZW51aXRlbWVsZW1lbnQ+SFRNTE1lbnVJdGVtRWxlbWVudDwvYT48L2NvZGU+LgorICBXaGVyZSBwb3NzaWJsZSwgcmVmZXJlbmNlcyB0byBzdWNoIGVsZW1lbnRzIGFyZSBoeXBlcmxpbmtlZCB0byB0aGVpciBkZWZpbml0aW9uLjwvcD4KKworCisKKworCisKKyAgPGg0IGlkPW92ZXJ2aWV3LW9mLXRoZS1wYXJzaW5nLW1vZGVsPjEyLjIuMSBPdmVydmlldyBvZiB0aGUgcGFyc2luZyBtb2RlbDwvaDQ+CisKKyAgPHAgY2xhc3M9b3ZlcnZpZXc+PG9iamVjdCB3aWR0aD0zNDUgaGVpZ2h0PTUzNSBkYXRhPWltYWdlcy9wYXJzaW5nLW1vZGVsLW92ZXJ2aWV3LnN2Zz48aW1nIHNyYz1odHRwczovL2ltYWdlcy53aGF0d2cub3JnL3BhcnNpbmctbW9kZWwtb3ZlcnZpZXcucG5nIHdpZHRoPTM0NSBhbHQ9IiIgaGVpZ2h0PTQ1MD48L29iamVjdD48L3A+CisKKyAgPHA+VGhlIGlucHV0IHRvIHRoZSBIVE1MIHBhcnNpbmcgcHJvY2VzcyBjb25zaXN0cyBvZiBhIHN0cmVhbSBvZiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdW5pY29kZS1jb2RlLXBvaW50IGlkPW92ZXJ2aWV3LW9mLXRoZS1wYXJzaW5nLW1vZGVsOnVuaWNvZGUtY29kZS1wb2ludD5Vbmljb2RlIGNvZGUgcG9pbnRzPC9hPiwgd2hpY2ggaXMgcGFzc2VkIHRocm91Z2ggYSA8YSBocmVmPSN0b2tlbml6YXRpb24gaWQ9b3ZlcnZpZXctb2YtdGhlLXBhcnNpbmctbW9kZWw6dG9rZW5pemF0aW9uPnRva2VuaXphdGlvbjwvYT4gc3RhZ2UKKyAgZm9sbG93ZWQgYnkgYSA8YSBocmVmPSN0cmVlLWNvbnN0cnVjdGlvbiBpZD1vdmVydmlldy1vZi10aGUtcGFyc2luZy1tb2RlbDp0cmVlLWNvbnN0cnVjdGlvbj50cmVlIGNvbnN0cnVjdGlvbjwvYT4gc3RhZ2UuIFRoZSBvdXRwdXQgaXMgYSA8Y29kZSBpZD1vdmVydmlldy1vZi10aGUtcGFyc2luZy1tb2RlbDpkb2N1bWVudD48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4KKyAgb2JqZWN0LjwvcD4KKworICA8cCBjbGFzcz1ub3RlPkltcGxlbWVudGF0aW9ucyB0aGF0IDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNub24tc2NyaXB0ZWQ+ZG8gbm90IHN1cHBvcnQgc2NyaXB0aW5nPC9hPiBkbyBub3QKKyAgaGF2ZSB0byBhY3R1YWxseSBjcmVhdGUgYSBET00gPGNvZGUgaWQ9b3ZlcnZpZXctb2YtdGhlLXBhcnNpbmctbW9kZWw6ZG9jdW1lbnQtMj48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gb2JqZWN0LCBidXQgdGhlIERPTSB0cmVlIGluIHN1Y2ggY2FzZXMgaXMKKyAgc3RpbGwgdXNlZCBhcyB0aGUgbW9kZWwgZm9yIHRoZSByZXN0IG9mIHRoZSBzcGVjaWZpY2F0aW9uLjwvcD4KKworICA8cD5JbiB0aGUgY29tbW9uIGNhc2UsIHRoZSBkYXRhIGhhbmRsZWQgYnkgdGhlIHRva2VuaXphdGlvbiBzdGFnZSBjb21lcyBmcm9tIHRoZSBuZXR3b3JrLCBidXQKKyAgPGEgaHJlZj13ZWJhcHBhcGlzLmh0bWwjZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uIGlkPW92ZXJ2aWV3LW9mLXRoZS1wYXJzaW5nLW1vZGVsOmR5bmFtaWMtbWFya3VwLWluc2VydGlvbj5pdCBjYW4gYWxzbyBjb21lIGZyb20gc2NyaXB0PC9hPiBydW5uaW5nIGluIHRoZSB1c2VyCisgIGFnZW50LCBlLmcuIHVzaW5nIHRoZSA8Y29kZSBpZD1vdmVydmlldy1vZi10aGUtcGFyc2luZy1tb2RlbDpkb20tZG9jdW1lbnQtd3JpdGU+PGEgaHJlZj13ZWJhcHBhcGlzLmh0bWwjZG9tLWRvY3VtZW50LXdyaXRlPmRvY3VtZW50LndyaXRlKCk8L2E+PC9jb2RlPiBBUEkuPC9wPgorCisgIDxwIGlkPW5lc3RlZFBhcnNpbmc+VGhlcmUgaXMgb25seSBvbmUgc2V0IG9mIHN0YXRlcyBmb3IgdGhlIHRva2VuaXplciBzdGFnZSBhbmQgdGhlIHRyZWUKKyAgY29uc3RydWN0aW9uIHN0YWdlLCBidXQgdGhlIHRyZWUgY29uc3RydWN0aW9uIHN0YWdlIGlzIHJlZW50cmFudCwgbWVhbmluZyB0aGF0IHdoaWxlIHRoZSB0cmVlCisgIGNvbnN0cnVjdGlvbiBzdGFnZSBpcyBoYW5kbGluZyBvbmUgdG9rZW4sIHRoZSB0b2tlbml6ZXIgbWlnaHQgYmUgcmVzdW1lZCwgY2F1c2luZyBmdXJ0aGVyIHRva2VucworICB0byBiZSBlbWl0dGVkIGFuZCBwcm9jZXNzZWQgYmVmb3JlIHRoZSBmaXJzdCB0b2tlbidzIHByb2Nlc3NpbmcgaXMgY29tcGxldGUuPC9wPgorCisgIDxkaXYgY2xhc3M9ZXhhbXBsZT4KKworICAgPHA+SW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCB0aGUgdHJlZSBjb25zdHJ1Y3Rpb24gc3RhZ2Ugd2lsbCBiZSBjYWxsZWQgdXBvbiB0byBoYW5kbGUgYSAicCIKKyAgIHN0YXJ0IHRhZyB0b2tlbiB3aGlsZSBoYW5kbGluZyB0aGUgInNjcmlwdCIgZW5kIHRhZyB0b2tlbjo8L3A+CisKKyAgIDxwcmU+Li4uCismbHQ7c2NyaXB0PgorIGRvY3VtZW50LndyaXRlKCcmbHQ7cD4nKTsKKyZsdDsvc2NyaXB0PgorLi4uPC9wcmU+CisKKyAgPC9kaXY+CisKKyAgPHA+VG8gaGFuZGxlIHRoZXNlIGNhc2VzLCBwYXJzZXJzIGhhdmUgYSA8ZGZuIGlkPXNjcmlwdC1uZXN0aW5nLWxldmVsPnNjcmlwdCBuZXN0aW5nIGxldmVsPC9kZm4+LCB3aGljaCBtdXN0IGJlIGluaXRpYWxseQorICBzZXQgdG8gemVybywgYW5kIGEgPGRmbiBpZD1wYXJzZXItcGF1c2UtZmxhZz5wYXJzZXIgcGF1c2UgZmxhZzwvZGZuPiwgd2hpY2ggbXVzdCBiZSBpbml0aWFsbHkgc2V0IHRvIGZhbHNlLjwvcD4KKworCisKKworCisKKworICA8aDQgaWQ9dGhlLWlucHV0LWJ5dGUtc3RyZWFtPjEyLjIuMiBUaGUgPGRmbj5pbnB1dCBieXRlIHN0cmVhbTwvZGZuPjwvaDQ+CisKKyAgPHA+VGhlIHN0cmVhbSBvZiBVbmljb2RlIGNvZGUgcG9pbnRzIHRoYXQgY29tcHJpc2VzIHRoZSBpbnB1dCB0byB0aGUgdG9rZW5pemF0aW9uIHN0YWdlIHdpbGwgYmUKKyAgaW5pdGlhbGx5IHNlZW4gYnkgdGhlIHVzZXIgYWdlbnQgYXMgYSBzdHJlYW0gb2YgYnl0ZXMgKHR5cGljYWxseSBjb21pbmcgb3ZlciB0aGUgbmV0d29yayBvciBmcm9tCisgIHRoZSBsb2NhbCBmaWxlIHN5c3RlbSkuIFRoZSBieXRlcyBlbmNvZGUgdGhlIGFjdHVhbCBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byBhIHBhcnRpY3VsYXIKKyAgPGk+Y2hhcmFjdGVyIGVuY29kaW5nPC9pPiwgd2hpY2ggdGhlIHVzZXIgYWdlbnQgdXNlcyB0byBkZWNvZGUgdGhlIGJ5dGVzIGludG8gY2hhcmFjdGVycy48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5Gb3IgWE1MIGRvY3VtZW50cywgdGhlIGFsZ29yaXRobSB1c2VyIGFnZW50cyBhcmUgcmVxdWlyZWQgdG8gdXNlIHRvIGRldGVybWluZSB0aGUKKyAgY2hhcmFjdGVyIGVuY29kaW5nIGlzIGdpdmVuIGJ5IHRoZSBYTUwgc3BlY2lmaWNhdGlvbi4gVGhpcyBzZWN0aW9uIGRvZXMgbm90IGFwcGx5IHRvIFhNTAorICBkb2N1bWVudHMuIDxhIGhyZWY9cmVmZXJlbmNlcy5odG1sI3JlZnNYTUw+W1hNTF08L2E+PC9wPgorCisgIDxwPlVzdWFsbHksIHRoZSA8YSBocmVmPSNlbmNvZGluZy1zbmlmZmluZy1hbGdvcml0aG0gaWQ9dGhlLWlucHV0LWJ5dGUtc3RyZWFtOmVuY29kaW5nLXNuaWZmaW5nLWFsZ29yaXRobT5lbmNvZGluZyBzbmlmZmluZyBhbGdvcml0aG08L2E+IGRlZmluZWQgYmVsb3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlCisgIGNoYXJhY3RlciBlbmNvZGluZy48L3A+CisKKyAgPHA+R2l2ZW4gYSBjaGFyYWN0ZXIgZW5jb2RpbmcsIHRoZSBieXRlcyBpbiB0aGUgPGEgaHJlZj0jdGhlLWlucHV0LWJ5dGUtc3RyZWFtIGlkPXRoZS1pbnB1dC1ieXRlLXN0cmVhbTp0aGUtaW5wdXQtYnl0ZS1zdHJlYW0+aW5wdXQgYnl0ZSBzdHJlYW08L2E+IG11c3QgYmUgY29udmVydGVkCisgIHRvIFVuaWNvZGUgY29kZSBwb2ludHMgZm9yIHRoZSB0b2tlbml6ZXIncyA8YSBocmVmPSNpbnB1dC1zdHJlYW0gaWQ9dGhlLWlucHV0LWJ5dGUtc3RyZWFtOmlucHV0LXN0cmVhbT5pbnB1dCBzdHJlYW08L2E+LCBhcyBkZXNjcmliZWQgYnkgdGhlIHJ1bGVzCisgIGZvciB0aGF0IGVuY29kaW5nJ3MgPGEgaWQ9dGhlLWlucHV0LWJ5dGUtc3RyZWFtOmRlY29kZXIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2RlY29kZXI+ZGVjb2RlcjwvYT4uPC9wPgorCisgIDxwIGNsYXNzPW5vdGU+Qnl0ZXMgb3Igc2VxdWVuY2VzIG9mIGJ5dGVzIGluIHRoZSBvcmlnaW5hbCBieXRlIHN0cmVhbSB0aGF0IGRpZCBub3QgY29uZm9ybSB0bworICB0aGUgRW5jb2Rpbmcgc3RhbmRhcmQgKGUuZy4gaW52YWxpZCBVVEYtOCBieXRlIHNlcXVlbmNlcyBpbiBhIFVURi04IGlucHV0IGJ5dGUgc3RyZWFtKSBhcmUgZXJyb3JzCisgIHRoYXQgY29uZm9ybWFuY2UgY2hlY2tlcnMgYXJlIGV4cGVjdGVkIHRvIHJlcG9ydC4gPGEgaHJlZj1yZWZlcmVuY2VzLmh0bWwjcmVmc0VOQ09ESU5HPltFTkNPRElOR108L2E+PC9wPgorCisgIDxwIGNsYXNzPW5vdGU+TGVhZGluZyBCeXRlIE9yZGVyIE1hcmtzIChCT01zKSBhcmUgbm90IHN0cmlwcGVkIGJ5IHRoZSBkZWNvZGVyIGFsZ29yaXRobXMsIHRoZXkKKyAgYXJlIHN0cmlwcGVkIGJ5IHRoZSBhbGdvcml0aG0gYmVsb3cuPC9wPgorCisgIDxwIGNsYXNzPXdhcm5pbmc+VGhlIGRlY29kZXIgYWxnb3JpdGhtcyBkZXNjcmliZSBob3cgdG8gaGFuZGxlIGludmFsaWQgaW5wdXQ7IGZvciBzZWN1cml0eQorICByZWFzb25zLCBpdCBpcyBpbXBlcmF0aXZlIHRoYXQgdGhvc2UgcnVsZXMgYmUgZm9sbG93ZWQgcHJlY2lzZWx5LiBEaWZmZXJlbmNlcyBpbiBob3cgaW52YWxpZCBieXRlCisgIHNlcXVlbmNlcyBhcmUgaGFuZGxlZCBjYW4gcmVzdWx0IGluLCBhbW9uZ3N0IG90aGVyIHByb2JsZW1zLCBzY3JpcHQgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdGllcworICAoIlhTUyIpLjwvcD4KKworICA8cD5XaGVuIHRoZSBIVE1MIHBhcnNlciBpcyBkZWNvZGluZyBhbiBpbnB1dCBieXRlIHN0cmVhbSwgaXQgdXNlcyBhIGNoYXJhY3RlciBlbmNvZGluZyBhbmQgYSA8ZGZuIGlkPWNvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZT5jb25maWRlbmNlPC9kZm4+LiBUaGUgY29uZmlkZW5jZSBpcyBlaXRoZXIgPGk+dGVudGF0aXZlPC9pPiwKKyAgPGk+Y2VydGFpbjwvaT4sIG9yIDxpPmlycmVsZXZhbnQ8L2k+LiBUaGUgZW5jb2RpbmcgdXNlZCwgYW5kIHdoZXRoZXIgdGhlIGNvbmZpZGVuY2UgaW4gdGhhdAorICBlbmNvZGluZyBpcyA8aT50ZW50YXRpdmU8L2k+IG9yIDxpPmNlcnRhaW48L2k+LCBpcyA8YSBocmVmPSNtZXRhLWNoYXJzZXQtZHVyaW5nLXBhcnNlPnVzZWQKKyAgZHVyaW5nIHRoZSBwYXJzaW5nPC9hPiB0byBkZXRlcm1pbmUgd2hldGhlciB0byA8YSBocmVmPSNjaGFuZ2UtdGhlLWVuY29kaW5nIGlkPXRoZS1pbnB1dC1ieXRlLXN0cmVhbTpjaGFuZ2UtdGhlLWVuY29kaW5nPmNoYW5nZSB0aGUgZW5jb2Rpbmc8L2E+LiBJZiBubyBlbmNvZGluZyBpcworICBuZWNlc3NhcnksIGUuZy4gYmVjYXVzZSB0aGUgcGFyc2VyIGlzIG9wZXJhdGluZyBvbiBhIFVuaWNvZGUgc3RyZWFtIGFuZCBkb2Vzbid0IGhhdmUgdG8gdXNlIGEKKyAgY2hhcmFjdGVyIGVuY29kaW5nIGF0IGFsbCwgdGhlbiB0aGUgPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPXRoZS1pbnB1dC1ieXRlLXN0cmVhbTpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2U+Y29uZmlkZW5jZTwvYT4gaXMKKyAgPGk+aXJyZWxldmFudDwvaT4uPC9wPgorCisgIDxwIGNsYXNzPW5vdGU+U29tZSBhbGdvcml0aG1zIGZlZWQgdGhlIHBhcnNlciBieSBkaXJlY3RseSBhZGRpbmcgY2hhcmFjdGVycyB0byB0aGUgPGEgaHJlZj0jaW5wdXQtc3RyZWFtIGlkPXRoZS1pbnB1dC1ieXRlLXN0cmVhbTppbnB1dC1zdHJlYW0tMj5pbnB1dAorICBzdHJlYW08L2E+IHJhdGhlciB0aGFuIGFkZGluZyBieXRlcyB0byB0aGUgPGEgaHJlZj0jdGhlLWlucHV0LWJ5dGUtc3RyZWFtIGlkPXRoZS1pbnB1dC1ieXRlLXN0cmVhbTp0aGUtaW5wdXQtYnl0ZS1zdHJlYW0tMj5pbnB1dCBieXRlIHN0cmVhbTwvYT4uPC9wPgorCisKKworICA8aDUgaWQ9cGFyc2luZy13aXRoLWEta25vd24tY2hhcmFjdGVyLWVuY29kaW5nPjEyLjIuMi4xIFBhcnNpbmcgd2l0aCBhIGtub3duIGNoYXJhY3RlciBlbmNvZGluZzwvaDU+CisKKyAgPHA+V2hlbiB0aGUgSFRNTCBwYXJzZXIgaXMgdG8gb3BlcmF0ZSBvbiBhbiBpbnB1dCBieXRlIHN0cmVhbSB0aGF0IGhhcyA8ZGZuIGlkPWEta25vd24tZGVmaW5pdGUtZW5jb2Rpbmc+YSBrbm93biBkZWZpbml0ZQorICBlbmNvZGluZzwvZGZuPiwgdGhlbiB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIGlzIHRoYXQgZW5jb2RpbmcgYW5kIHRoZSA8YSBocmVmPSNjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UgaWQ9cGFyc2luZy13aXRoLWEta25vd24tY2hhcmFjdGVyLWVuY29kaW5nOmNvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZT5jb25maWRlbmNlPC9hPiBpcyA8aT5jZXJ0YWluPC9pPi48L3A+CisKKworICA8aDUgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZz4xMi4yLjIuMiBEZXRlcm1pbmluZyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nPC9oNT4KKworICA8cD5JbiBzb21lIGNhc2VzLCBpdCBtaWdodCBiZSBpbXByYWN0aWNhbCB0byB1bmFtYmlndW91c2x5IGRldGVybWluZSB0aGUgZW5jb2RpbmcgYmVmb3JlIHBhcnNpbmcKKyAgdGhlIGRvY3VtZW50LiBCZWNhdXNlIG9mIHRoaXMsIHRoaXMgc3BlY2lmaWNhdGlvbiBwcm92aWRlcyBmb3IgYSB0d28tcGFzcyBtZWNoYW5pc20gd2l0aCBhbgorICBvcHRpb25hbCBwcmUtc2Nhbi4gSW1wbGVtZW50YXRpb25zIGFyZSBhbGxvd2VkLCBhcyBkZXNjcmliZWQgYmVsb3csIHRvIGFwcGx5IGEgc2ltcGxpZmllZCBwYXJzaW5nCisgIGFsZ29yaXRobSB0byB3aGF0ZXZlciBieXRlcyB0aGV5IGhhdmUgYXZhaWxhYmxlIGJlZm9yZSBiZWdpbm5pbmcgdG8gcGFyc2UgdGhlIGRvY3VtZW50LiBUaGVuLCB0aGUKKyAgcmVhbCBwYXJzZXIgaXMgc3RhcnRlZCwgdXNpbmcgYSB0ZW50YXRpdmUgZW5jb2RpbmcgZGVyaXZlZCBmcm9tIHRoaXMgcHJlLXBhcnNlIGFuZCBvdGhlcgorICBvdXQtb2YtYmFuZCBtZXRhZGF0YS4gSWYsIHdoaWxlIHRoZSBkb2N1bWVudCBpcyBiZWluZyBsb2FkZWQsIHRoZSB1c2VyIGFnZW50IGRpc2NvdmVycyBhIGNoYXJhY3RlcgorICBlbmNvZGluZyBkZWNsYXJhdGlvbiB0aGF0IGNvbmZsaWN0cyB3aXRoIHRoaXMgaW5mb3JtYXRpb24sIHRoZW4gdGhlIHBhcnNlciBjYW4gZ2V0IHJlaW52b2tlZCB0bworICBwZXJmb3JtIGEgcGFyc2Ugb2YgdGhlIGRvY3VtZW50IHdpdGggdGhlIHJlYWwgZW5jb2RpbmcuPC9wPgorCisgIDxwIGlkPWRvY3VtZW50RW5jb2Rpbmc+VXNlciBhZ2VudHMgbXVzdCB1c2UgdGhlIGZvbGxvd2luZyBhbGdvcml0aG0sIGNhbGxlZCB0aGUgPGRmbiBpZD1lbmNvZGluZy1zbmlmZmluZy1hbGdvcml0aG0+ZW5jb2RpbmcKKyAgc25pZmZpbmcgYWxnb3JpdGhtPC9kZm4+LCB0byBkZXRlcm1pbmUgdGhlIGNoYXJhY3RlciBlbmNvZGluZyB0byB1c2Ugd2hlbiBkZWNvZGluZyBhIGRvY3VtZW50IGluCisgIHRoZSBmaXJzdCBwYXNzLiBUaGlzIGFsZ29yaXRobSB0YWtlcyBhcyBpbnB1dCBhbnkgb3V0LW9mLWJhbmQgbWV0YWRhdGEgYXZhaWxhYmxlIHRvIHRoZSB1c2VyIGFnZW50CisgIChlLmcuIHRoZSA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY29udGVudC10eXBlIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29udGVudC10eXBlPkNvbnRlbnQtVHlwZSBtZXRhZGF0YTwvYT4gb2YgdGhlIGRvY3VtZW50KSBhbmQgYWxsIHRoZQorICBieXRlcyBhdmFpbGFibGUgc28gZmFyLCBhbmQgcmV0dXJucyBhIGNoYXJhY3RlciBlbmNvZGluZyBhbmQgYSA8YSBocmVmPSNjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2U+Y29uZmlkZW5jZTwvYT4gdGhhdCBpcyBlaXRoZXIgPGk+dGVudGF0aXZlPC9pPiBvcgorICA8aT5jZXJ0YWluPC9pPi48ZGl2IGNsYXNzPXN0YXR1cz48aW5wdXQgb25jbGljaz10b2dnbGVTdGF0dXModGhpcykgdmFsdWU94ouwIHR5cGU9YnV0dG9uPjxwIGNsYXNzPWJ1Z3M+PHN0cm9uZz5TcGVjIGJ1Z3M6PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTYiIHRpdGxlPSJFbmNvZGluZyBTbmlmZmluZyBBbGdvcml0aG06IEFkZCBhbiBYTUwgY2hlY2sgYXMgYSBzdGVwIHplcm8iPjE4Mzk2PC9hPjwvZGl2PgorCisgIDxvbD48bGk+CisKKyAgICA8cD5JZiB0aGUgdXNlciBoYXMgZXhwbGljaXRseSBpbnN0cnVjdGVkIHRoZSB1c2VyIGFnZW50IHRvIG92ZXJyaWRlIHRoZSBkb2N1bWVudCdzIGNoYXJhY3RlcgorICAgIGVuY29kaW5nIHdpdGggYSBzcGVjaWZpYyBlbmNvZGluZywgb3B0aW9uYWxseSByZXR1cm4gdGhhdCBlbmNvZGluZyB3aXRoIHRoZSA8YSBocmVmPSNjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UtMj5jb25maWRlbmNlPC9hPiA8aT5jZXJ0YWluPC9pPiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuPC9wPgorCisgICAgPHAgY2xhc3M9bm90ZT5UeXBpY2FsbHksIHVzZXIgYWdlbnRzIHJlbWVtYmVyIHN1Y2ggdXNlciByZXF1ZXN0cyBhY3Jvc3Mgc2Vzc2lvbnMsIGFuZCBpbiBzb21lCisgICAgY2FzZXMgYXBwbHkgdGhlbSB0byBkb2N1bWVudHMgaW4gPGNvZGUgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzp0aGUtaWZyYW1lLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLWlmcmFtZS1lbGVtZW50PmlmcmFtZTwvYT48L2NvZGU+cyBhcyB3ZWxsLjwvcD4KKworICAgPGxpPgorCisgICAgPHA+VGhlIHVzZXIgYWdlbnQgbWF5IHdhaXQgZm9yIG1vcmUgYnl0ZXMgb2YgdGhlIHJlc291cmNlIHRvIGJlIGF2YWlsYWJsZSwgZWl0aGVyIGluIHRoaXMgc3RlcAorICAgIG9yIGF0IGFueSBsYXRlciBzdGVwIGluIHRoaXMgYWxnb3JpdGhtLiBGb3IgaW5zdGFuY2UsIGEgdXNlciBhZ2VudCBtaWdodCB3YWl0IDUwMG1zIG9yIDEwMjQKKyAgICBieXRlcywgd2hpY2hldmVyIGNhbWUgZmlyc3QuIEluIGdlbmVyYWwgcHJlcGFyc2luZyB0aGUgc291cmNlIHRvIGZpbmQgdGhlIGVuY29kaW5nIGltcHJvdmVzCisgICAgcGVyZm9ybWFuY2UsIGFzIGl0IHJlZHVjZXMgdGhlIG5lZWQgdG8gdGhyb3cgYXdheSB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgd2hlbiBwYXJzaW5nIHVwb24KKyAgICBmaW5kaW5nIHRoZSBlbmNvZGluZyBpbmZvcm1hdGlvbi4gSG93ZXZlciwgaWYgdGhlIHVzZXIgYWdlbnQgZGVsYXlzIHRvbyBsb25nIHRvIG9idGFpbiBkYXRhIHRvCisgICAgZGV0ZXJtaW5lIHRoZSBlbmNvZGluZywgdGhlbiB0aGUgY29zdCBvZiB0aGUgZGVsYXkgY291bGQgb3V0d2VpZ2ggYW55IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cworICAgIGZyb20gdGhlIHByZXBhcnNlLjwvcD4KKworICAgIDxwIGNsYXNzPW5vdGU+VGhlIGF1dGhvcmluZyBjb25mb3JtYW5jZSByZXF1aXJlbWVudHMgZm9yIGNoYXJhY3RlciBlbmNvZGluZyBkZWNsYXJhdGlvbnMgbGltaXQKKyAgICB0aGVtIHRvIG9ubHkgYXBwZWFyaW5nIDxhIGhyZWY9c2VtYW50aWNzLmh0bWwjY2hhcnNldDEwMjQ+aW4gdGhlIGZpcnN0IDEwMjQgYnl0ZXM8L2E+LiBVc2VyIGFnZW50cyBhcmUKKyAgICB0aGVyZWZvcmUgZW5jb3VyYWdlZCB0byB1c2UgdGhlIHByZXNjYW4gYWxnb3JpdGhtIGJlbG93IChhcyBpbnZva2VkIGJ5IHRoZXNlIHN0ZXBzKSBvbiB0aGUgZmlyc3QKKyAgICAxMDI0IGJ5dGVzLCBidXQgbm90IHRvIHN0YWxsIGJleW9uZCB0aGF0LjwvcD4KKworICAgPGxpPgorCisKKworICAgIDxwPkZvciBlYWNoIG9mIHRoZSByb3dzIGluIHRoZSBmb2xsb3dpbmcgdGFibGUsIHN0YXJ0aW5nIHdpdGggdGhlIGZpcnN0IG9uZSBhbmQgZ29pbmcgZG93biwgaWYKKyAgICB0aGVyZSBhcmUgYXMgbWFueSBvciBtb3JlIGJ5dGVzIGF2YWlsYWJsZSB0aGFuIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGZpcnN0IGNvbHVtbiwgYW5kIHRoZQorICAgIGZpcnN0IGJ5dGVzIG9mIHRoZSBmaWxlIG1hdGNoIHRoZSBieXRlcyBnaXZlbiBpbiB0aGUgZmlyc3QgY29sdW1uLCB0aGVuIHJldHVybiB0aGUgZW5jb2RpbmcKKyAgICBnaXZlbiBpbiB0aGUgY2VsbCBpbiB0aGUgc2Vjb25kIGNvbHVtbiBvZiB0aGF0IHJvdywgd2l0aCB0aGUgPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlLTM+Y29uZmlkZW5jZTwvYT4gPGk+Y2VydGFpbjwvaT4sIGFuZCBhYm9ydCB0aGVzZSBzdGVwczo8L3A+CisKKworICAgIDx0YWJsZT48dGhlYWQ+PHRyPjx0aD5CeXRlcyBpbiBIZXhhZGVjaW1hbAorICAgICAgIDx0aD5FbmNvZGluZworICAgICA8dGJvZHk+PHRyPjx0ZD5GRSBGRgorICAgICAgIDx0ZD5CaWctZW5kaWFuIFVURi0xNgorICAgICAgPHRyPjx0ZD5GRiBGRQorICAgICAgIDx0ZD5MaXR0bGUtZW5kaWFuIFVURi0xNgorICAgICAgPHRyPjx0ZD5FRiBCQiBCRgorICAgICAgIDx0ZD5VVEYtOAorCisgICAgPC90YWJsZT4KKworICAgIDxwIGNsYXNzPW5vdGU+VGhpcyBzdGVwIGxvb2tzIGZvciBVbmljb2RlIEJ5dGUgT3JkZXIgTWFya3MgKEJPTXMpLjwvcD4KKworICAgIDxwIGNsYXNzPW5vdGU+VGhhdCB0aGlzIHN0ZXAgaGFwcGVucyBiZWZvcmUgdGhlIG5leHQgb25lIGhvbm9yaW5nIHRoZSBIVFRQCisgICAgPGNvZGUgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpjb250ZW50LXR5cGUtMj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY29udGVudC10eXBlPkNvbnRlbnQtVHlwZTwvYT48L2NvZGU+IGhlYWRlciBpcyBhIDxhIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6d2lsbGZ1bC12aW9sYXRpb24gaHJlZj1pbnRyb2R1Y3Rpb24uaHRtbCN3aWxsZnVsLXZpb2xhdGlvbj53aWxsZnVsIHZpb2xhdGlvbjwvYT4gb2YgdGhlIEhUVFAgc3BlY2lmaWNhdGlvbiwKKyAgICBtb3RpdmF0ZWQgYnkgYSBkZXNpcmUgdG8gYmUgbWF4aW1hbGx5IGNvbXBhdGlibGUgd2l0aCBsZWdhY3kgY29udGVudC4gPGEgaHJlZj1yZWZlcmVuY2VzLmh0bWwjcmVmc0hUVFA+W0hUVFBdPC9hPjwvcD4KKworICAgPGxpPjxwPklmIHRoZSB0cmFuc3BvcnQgbGF5ZXIgc3BlY2lmaWVzIGEgY2hhcmFjdGVyIGVuY29kaW5nLCBhbmQgaXQgaXMgc3VwcG9ydGVkLCByZXR1cm4gdGhhdAorICAgZW5jb2Rpbmcgd2l0aCB0aGUgPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlLTQ+Y29uZmlkZW5jZTwvYT4gPGk+Y2VydGFpbjwvaT4sIGFuZAorICAgYWJvcnQgdGhlc2Ugc3RlcHMuPGxpPgorCisgICAgPHA+T3B0aW9uYWxseSA8YSBocmVmPSNwcmVzY2FuLWEtYnl0ZS1zdHJlYW0tdG8tZGV0ZXJtaW5lLWl0cy1lbmNvZGluZyBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOnByZXNjYW4tYS1ieXRlLXN0cmVhbS10by1kZXRlcm1pbmUtaXRzLWVuY29kaW5nPnByZXNjYW4gdGhlIGJ5dGUKKyAgICBzdHJlYW0gdG8gZGV0ZXJtaW5lIGl0cyBlbmNvZGluZzwvYT4uIFRoZSA8dmFyPmVuZCBjb25kaXRpb248L3Zhcj4gaXMgdGhhdCB0aGUgdXNlcgorICAgIGFnZW50IGRlY2lkZXMgdGhhdCBzY2FubmluZyBmdXJ0aGVyIGJ5dGVzIHdvdWxkIG5vdCBiZSBlZmZpY2llbnQuIFVzZXIgYWdlbnRzIGFyZSBlbmNvdXJhZ2VkIHRvCisgICAgb25seSBwcmVzY2FuIHRoZSBmaXJzdCAxMDI0IGJ5dGVzLiBVc2VyIGFnZW50cyBtYXkgZGVjaWRlIHRoYXQgc2Nhbm5pbmcgPGVtPmFueTwvZW0+IGJ5dGVzIGlzCisgICAgbm90IGVmZmljaWVudCwgaW4gd2hpY2ggY2FzZSB0aGVzZSBzdWJzdGVwcyBhcmUgZW50aXJlbHkgc2tpcHBlZC48L3A+CisKKyAgICA8cD5UaGUgYWZvcmVtZW50aW9uZWQgYWxnb3JpdGhtIGVpdGhlciBhYm9ydHMgdW5zdWNjZXNzZnVsbHkgb3IgcmV0dXJucyBhIGNoYXJhY3RlciBlbmNvZGluZy4gSWYKKyAgICBpdCByZXR1cm5zIGEgY2hhcmFjdGVyIGVuY29kaW5nLCB0aGVuIHRoaXMgYWxnb3JpdGhtIG11c3QgYmUgYWJvcnRlZCwgcmV0dXJuaW5nIHRoZSBzYW1lCisgICAgZW5jb2RpbmcsIHdpdGggPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlLTU+Y29uZmlkZW5jZTwvYT4gPGk+dGVudGF0aXZlPC9pPi48L3A+CisKKyAgIDxsaT4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNodG1sLXBhcnNlciBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmh0bWwtcGFyc2VyPkhUTUwgcGFyc2VyPC9hPiBmb3Igd2hpY2ggdGhpcyBhbGdvcml0aG0gaXMgYmVpbmcgcnVuIGlzIGFzc29jaWF0ZWQgd2l0aCBhCisgICAgPGNvZGUgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpkb2N1bWVudD48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gdGhhdCBpcyBpdHNlbGYgaW4gYSA8YSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOm5lc3RlZC1icm93c2luZy1jb250ZXh0IGhyZWY9YnJvd3NlcnMuaHRtbCNuZXN0ZWQtYnJvd3NpbmctY29udGV4dD5uZXN0ZWQgYnJvd3NpbmcgY29udGV4dDwvYT4sIHJ1biB0aGVzZQorICAgIHN1YnN0ZXBzOjwvcD4KKworICAgIDxvbD48bGk+PHA+TGV0IDx2YXI+bmV3IGRvY3VtZW50PC92YXI+IGJlIHRoZSA8Y29kZSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmRvY3VtZW50LTI+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IHdpdGggd2hpY2ggdGhlCisgICAgIDxhIGhyZWY9I2h0bWwtcGFyc2VyIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6aHRtbC1wYXJzZXItMj5IVE1MIHBhcnNlcjwvYT4gaXMgYXNzb2NpYXRlZC48bGk+PHA+TGV0IDx2YXI+cGFyZW50IGRvY3VtZW50PC92YXI+IGJlIHRoZSA8Y29kZSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmRvY3VtZW50LTM+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IDxhIGhyZWY9YnJvd3NlcnMuaHRtbCNicm93c2luZy1jb250ZXh0LW5lc3RlZC10aHJvdWdoIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6YnJvd3NpbmctY29udGV4dC1uZXN0ZWQtdGhyb3VnaD50aHJvdWdoIHdoaWNoIDx2YXI+bmV3IGRvY3VtZW50PC92YXI+IGlzCisgICAgIG5lc3RlZDwvYT4gKHRoZSA8YSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmFjdGl2ZS1kb2N1bWVudCBocmVmPWJyb3dzZXJzLmh0bWwjYWN0aXZlLWRvY3VtZW50PmFjdGl2ZSBkb2N1bWVudDwvYT4gb2YgdGhlIDxhIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6cGFyZW50LWJyb3dzaW5nLWNvbnRleHQgaHJlZj1icm93c2Vycy5odG1sI3BhcmVudC1icm93c2luZy1jb250ZXh0PnBhcmVudCBicm93c2luZyBjb250ZXh0PC9hPiBvZgorICAgICA8dmFyPm5ldyBkb2N1bWVudDwvdmFyPikuPGxpPjxwPklmIDx2YXI+cGFyZW50IGRvY3VtZW50PC92YXI+J3MgPGEgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpvcmlnaW4tMiBocmVmPWJyb3dzZXJzLmh0bWwjb3JpZ2luLTI+b3JpZ2luPC9hPiBpcyBub3QgdGhlIDxhIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6c2FtZS1vcmlnaW4gaHJlZj1icm93c2Vycy5odG1sI3NhbWUtb3JpZ2luPnNhbWUKKyAgICAgb3JpZ2luPC9hPiBhcyA8dmFyPm5ldyBkb2N1bWVudDwvdmFyPidzIDxhIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6b3JpZ2luLTItMiBocmVmPWJyb3dzZXJzLmh0bWwjb3JpZ2luLTI+b3JpZ2luPC9hPiwgdGhlbiBhYm9ydCB0aGVzZQorICAgICBzdWJzdGVwcy48bGk+PHA+SWYgPHZhcj5wYXJlbnQgZG9jdW1lbnQ8L3Zhcj4ncyA8YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI2RvY3VtZW50J3MtY2hhcmFjdGVyLWVuY29kaW5nIiBpZD0iZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpkb2N1bWVudCdzLWNoYXJhY3Rlci1lbmNvZGluZyI+Y2hhcmFjdGVyIGVuY29kaW5nPC9hPiBpcyBub3QgYW4gPGEgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzphc2NpaS1jb21wYXRpYmxlLWNoYXJhY3Rlci1lbmNvZGluZyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktY29tcGF0aWJsZS1jaGFyYWN0ZXItZW5jb2Rpbmc+QVNDSUktY29tcGF0aWJsZSBjaGFyYWN0ZXIgZW5jb2Rpbmc8L2E+LAorICAgICB0aGVuIGFib3J0IHRoZXNlIHN1YnN0ZXBzLjxsaT48cD5SZXR1cm4gPHZhcj5wYXJlbnQgZG9jdW1lbnQ8L3Zhcj4ncyA8YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI2RvY3VtZW50J3MtY2hhcmFjdGVyLWVuY29kaW5nIiBpZD0iZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpkb2N1bWVudCdzLWNoYXJhY3Rlci1lbmNvZGluZy0yIj5jaGFyYWN0ZXIgZW5jb2Rpbmc8L2E+LCB3aXRoIHRoZSA8YSBocmVmPSNjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UtNj5jb25maWRlbmNlPC9hPiA8aT50ZW50YXRpdmU8L2k+LCBhbmQgYWJvcnQgdGhlCisgICAgIDxhIGhyZWY9I2VuY29kaW5nLXNuaWZmaW5nLWFsZ29yaXRobSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmVuY29kaW5nLXNuaWZmaW5nLWFsZ29yaXRobT5lbmNvZGluZyBzbmlmZmluZyBhbGdvcml0aG08L2E+J3Mgc3RlcHMuPC9vbD4KKworICAgPGxpPjxwPk90aGVyd2lzZSwgaWYgdGhlIHVzZXIgYWdlbnQgaGFzIGluZm9ybWF0aW9uIG9uIHRoZSBsaWtlbHkgZW5jb2RpbmcgZm9yIHRoaXMgcGFnZSwgZS5nLgorICAgYmFzZWQgb24gdGhlIGVuY29kaW5nIG9mIHRoZSBwYWdlIHdoZW4gaXQgd2FzIGxhc3QgdmlzaXRlZCwgdGhlbiByZXR1cm4gdGhhdCBlbmNvZGluZywgd2l0aCB0aGUKKyAgIDxhIGhyZWY9I2NvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmNvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZS03PmNvbmZpZGVuY2U8L2E+IDxpPnRlbnRhdGl2ZTwvaT4sIGFuZCBhYm9ydCB0aGVzZQorICAgc3RlcHMuPGxpPgorCisgICAgPHA+VGhlIHVzZXIgYWdlbnQgbWF5IGF0dGVtcHQgdG8gYXV0b2RldGVjdCB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIGZyb20gYXBwbHlpbmcgZnJlcXVlbmN5CisgICAgYW5hbHlzaXMgb3Igb3RoZXIgYWxnb3JpdGhtcyB0byB0aGUgZGF0YSBzdHJlYW0uIFN1Y2ggYWxnb3JpdGhtcyBtYXkgdXNlIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICAgIHJlc291cmNlIG90aGVyIHRoYW4gdGhlIHJlc291cmNlJ3MgY29udGVudHMsIGluY2x1ZGluZyB0aGUgYWRkcmVzcyBvZiB0aGUgcmVzb3VyY2UuIElmCisgICAgYXV0b2RldGVjdGlvbiBzdWNjZWVkcyBpbiBkZXRlcm1pbmluZyBhIGNoYXJhY3RlciBlbmNvZGluZywgYW5kIHRoYXQgZW5jb2RpbmcgaXMgYSBzdXBwb3J0ZWQKKyAgICBlbmNvZGluZywgdGhlbiByZXR1cm4gdGhhdCBlbmNvZGluZywgd2l0aCB0aGUgPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlLTg+Y29uZmlkZW5jZTwvYT4gPGk+dGVudGF0aXZlPC9pPiwgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIDxhIGhyZWY9cmVmZXJlbmNlcy5odG1sI3JlZnNVTklWQ0hBUkRFVD5bVU5JVkNIQVJERVRdPC9hPjwvcD4KKworICAgIDxwIGNsYXNzPW5vdGU+VXNlciBhZ2VudHMgYXJlIGdlbmVyYWxseSBkaXNjb3VyYWdlZCBmcm9tIGF0dGVtcHRpbmcgdG8gYXV0b2RldGVjdCBlbmNvZGluZ3MKKyAgICBmb3IgcmVzb3VyY2VzIG9idGFpbmVkIG92ZXIgdGhlIG5ldHdvcmssIHNpbmNlIGRvaW5nIHNvIGludm9sdmVzIGluaGVyZW50bHkgbm9uLWludGVyb3BlcmFibGUKKyAgICBoZXVyaXN0aWNzLiBBdHRlbXB0aW5nIHRvIGRldGVjdCBlbmNvZGluZ3MgYmFzZWQgb24gYW4gSFRNTCBkb2N1bWVudCdzIHByZWFtYmxlIGlzIGVzcGVjaWFsbHkKKyAgICB0cmlja3kgc2luY2UgSFRNTCBtYXJrdXAgdHlwaWNhbGx5IHVzZXMgb25seSBBU0NJSSBjaGFyYWN0ZXJzLCBhbmQgSFRNTCBkb2N1bWVudHMgdGVuZCB0byBiZWdpbgorICAgIHdpdGggYSBsb3Qgb2YgbWFya3VwIHJhdGhlciB0aGFuIHdpdGggdGV4dCBjb250ZW50LjwvcD4KKworICAgIDxwIGNsYXNzPW5vdGU+VGhlIFVURi04IGVuY29kaW5nIGhhcyBhIGhpZ2hseSBkZXRlY3RhYmxlIGJpdCBwYXR0ZXJuLiBGaWxlcyBmcm9tIHRoZSBsb2NhbAorICAgIGZpbGUgc3lzdGVtIHRoYXQgY29udGFpbiBieXRlcyB3aXRoIHZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RiB3aGljaCBtYXRjaCB0aGUgVVRGLTggcGF0dGVybiBhcmUKKyAgICB2ZXJ5IGxpa2VseSB0byBiZSBVVEYtOCwgd2hpbGUgZG9jdW1lbnRzIHdpdGggYnl0ZSBzZXF1ZW5jZXMgdGhhdCBkbyBub3QgbWF0Y2ggaXQgYXJlIHZlcnkKKyAgICBsaWtlbHkgbm90LiBXaGVuIGEgdXNlciBhZ2VudCBjYW4gZXhhbWluZSB0aGUgd2hvbGUgZmlsZSwgcmF0aGVyIHRoYW4ganVzdCB0aGUgcHJlYW1ibGUsCisgICAgZGV0ZWN0aW5nIGZvciBVVEYtOCBzcGVjaWZpY2FsbHkgY2FuIGJlIGVzcGVjaWFsbHkgZWZmZWN0aXZlLiA8YSBocmVmPXJlZmVyZW5jZXMuaHRtbCNyZWZzUFBVVEY4PltQUFVURjhdPC9hPiA8YSBocmVmPXJlZmVyZW5jZXMuaHRtbCNyZWZzVVRGOERFVD5bVVRGOERFVF08L2E+PC9wPgorCisgICA8bGk+CisKKyAgICA8cD5PdGhlcndpc2UsIHJldHVybiBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIG9yIHVzZXItc3BlY2lmaWVkIGRlZmF1bHQgY2hhcmFjdGVyIGVuY29kaW5nLAorICAgIHdpdGggdGhlIDxhIGhyZWY9I2NvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmNvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZS05PmNvbmZpZGVuY2U8L2E+IDxpPnRlbnRhdGl2ZTwvaT4uPC9wPgorCisgICAgPHA+SW4gY29udHJvbGxlZCBlbnZpcm9ubWVudHMgb3IgaW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoZSBlbmNvZGluZyBvZiBkb2N1bWVudHMgY2FuIGJlCisgICAgcHJlc2NyaWJlZCAoZm9yIGV4YW1wbGUsIGZvciB1c2VyIGFnZW50cyBpbnRlbmRlZCBmb3IgZGVkaWNhdGVkIHVzZSBpbiBuZXcgbmV0d29ya3MpLCB0aGUKKyAgICBjb21wcmVoZW5zaXZlIDxjb2RlPlVURi04PC9jb2RlPiBlbmNvZGluZyBpcyBzdWdnZXN0ZWQuPC9wPgorCisgICAgPHA+SW4gb3RoZXIgZW52aXJvbm1lbnRzLCB0aGUgZGVmYXVsdCBlbmNvZGluZyBpcyB0eXBpY2FsbHkgZGVwZW5kZW50IG9uIHRoZSB1c2VyJ3MgbG9jYWxlIChhbgorICAgIGFwcHJveGltYXRpb24gb2YgdGhlIGxhbmd1YWdlcywgYW5kIHRodXMgb2Z0ZW4gZW5jb2RpbmdzLCBvZiB0aGUgcGFnZXMgdGhhdCB0aGUgdXNlciBpcyBsaWtlbHkKKyAgICB0byBmcmVxdWVudCkuIFRoZSBmb2xsb3dpbmcgdGFibGUgZ2l2ZXMgc3VnZ2VzdGVkIGRlZmF1bHRzIGJhc2VkIG9uIHRoZSB1c2VyJ3MgbG9jYWxlLCBmb3IKKyAgICBjb21wYXRpYmlsaXR5IHdpdGggbGVnYWN5IGNvbnRlbnQuIExvY2FsZXMgYXJlIGlkZW50aWZpZWQgYnkgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuIDxhIGhyZWY9cmVmZXJlbmNlcy5odG1sI3JlZnNCQ1A0Nz5bQkNQNDddPC9hPiA8YSBocmVmPXJlZmVyZW5jZXMuaHRtbCNyZWZzRU5DT0RJTkc+W0VOQ09ESU5HXTwvYT48L3A+CisKKworCisgICAgPHRhYmxlPjx0aGVhZD48dHI+PHRoIGNvbHNwYW49Mj5Mb2NhbGUgbGFuZ3VhZ2UKKyAgICAgICA8dGg+U3VnZ2VzdGVkIGRlZmF1bHQgZW5jb2RpbmcKKyAgICAgPHRib2R5Pjx0cj48dGQ+YXIKKyAgICAgICA8dGQ+QXJhYmljCisgICAgICAgPHRkPndpbmRvd3MtMTI1NgorCisKKworCisKKworCisKKworICAgICAgPHRyPjx0ZD5iYQorICAgICAgIDx0ZD5CYXNoa2lyCisgICAgICAgPHRkPndpbmRvd3MtMTI1MQorCisKKworICAgICAgPHRyPjx0ZD5iZQorICAgICAgIDx0ZD5CZWxhcnVzaWFuCisgICAgICAgPHRkPndpbmRvd3MtMTI1MQorCisKKworICAgICAgPHRyPjx0ZD5iZworICAgICAgIDx0ZD5CdWxnYXJpYW4KKyAgICAgICA8dGQ+d2luZG93cy0xMjUxCisKKworCisKKworCisKKworCisKKworCisKKyAgICAgIDx0cj48dGQ+Y3MKKyAgICAgICA8dGQ+Q3plY2gKKyAgICAgICA8dGQ+d2luZG93cy0xMjUwCisKKworCisKKworCisKKworCisKKyAgICAgIDx0cj48dGQ+ZWwKKyAgICAgICA8dGQ+R3JlZWsKKyAgICAgICA8dGQ+SVNPLTg4NTktNworCisKKworCisKKyAgICAgIDx0cj48dGQ+ZXQKKyAgICAgICA8dGQ+RXN0b25pYW4KKyAgICAgICA8dGQ+d2luZG93cy0xMjU3CisKKworCisgICAgICA8dHI+PHRkPmZhCisgICAgICAgPHRkPlBlcnNpYW4KKyAgICAgICA8dGQ+d2luZG93cy0xMjU2CisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisgICAgICA8dHI+PHRkPmhlCisgICAgICAgPHRkPkhlYnJldworICAgICAgIDx0ZD53aW5kb3dzLTEyNTUKKworCisKKyAgICAgIDx0cj48dGQ+aHIKKyAgICAgICA8dGQ+Q3JvYXRpYW4KKyAgICAgICA8dGQ+d2luZG93cy0xMjUwCisKKyAgICAgIDx0cj48dGQ+aHUKKyAgICAgICA8dGQ+SHVuZ2FyaWFuCisgICAgICAgPHRkPklTTy04ODU5LTIKKworCisKKworCisKKworCisKKworCisKKworICAgICAgPHRyPjx0ZD5qYQorICAgICAgIDx0ZD5KYXBhbmVzZQorICAgICAgIDx0ZD5TaGlmdF9KSVMKKworCisKKyAgICAgIDx0cj48dGQ+a2sKKyAgICAgICA8dGQ+S2F6YWtoCisgICAgICAgPHRkPndpbmRvd3MtMTI1MQorCisKKworCisKKyAgICAgIDx0cj48dGQ+a28KKyAgICAgICA8dGQ+S29yZWFuCisgICAgICAgPHRkPmV1Yy1rcgorCisgICAgICA8dHI+PHRkPmt1CisgICAgICAgPHRkPkt1cmRpc2gKKyAgICAgICA8dGQ+d2luZG93cy0xMjU0CisKKworCisgICAgICA8dHI+PHRkPmt5CisgICAgICAgPHRkPkt5cmd5egorICAgICAgIDx0ZD53aW5kb3dzLTEyNTEKKworCisKKyAgICAgIDx0cj48dGQ+bHQKKyAgICAgICA8dGQ+TGl0aHVhbmlhbgorICAgICAgIDx0ZD53aW5kb3dzLTEyNTcKKworICAgICAgPHRyPjx0ZD5sdgorICAgICAgIDx0ZD5MYXR2aWFuCisgICAgICAgPHRkPndpbmRvd3MtMTI1NworCisKKworICAgICAgPHRyPjx0ZD5taworICAgICAgIDx0ZD5NYWNlZG9uaWFuCisgICAgICAgPHRkPndpbmRvd3MtMTI1MQorCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKyAgICAgIDx0cj48dGQ+cGwKKyAgICAgICA8dGQ+UG9saXNoCisgICAgICAgPHRkPklTTy04ODU5LTIKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKyAgICAgIDx0cj48dGQ+cnUKKyAgICAgICA8dGQ+UnVzc2lhbgorICAgICAgIDx0ZD53aW5kb3dzLTEyNTEKKworCisKKworCisgICAgICA8dHI+PHRkPnNhaAorICAgICAgIDx0ZD5ZYWt1dAorICAgICAgIDx0ZD53aW5kb3dzLTEyNTEKKworCisKKworCisKKworICAgICAgPHRyPjx0ZD5zaworICAgICAgIDx0ZD5TbG92YWsKKyAgICAgICA8dGQ+d2luZG93cy0xMjUwCisKKyAgICAgIDx0cj48dGQ+c2wKKyAgICAgICA8dGQ+U2xvdmVuaWFuCisgICAgICAgPHRkPklTTy04ODU5LTIKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisgICAgICA8dHI+PHRkPnNyCisgICAgICAgPHRkPlNlcmJpYW4KKyAgICAgICA8dGQ+d2luZG93cy0xMjUxCisKKworCisKKworCisKKworCisKKworCisKKworCisgICAgICA8dHI+PHRkPnRnCisgICAgICAgPHRkPlRhamlrCisgICAgICAgPHRkPndpbmRvd3MtMTI1MQorCisgICAgICA8dHI+PHRkPnRoCisgICAgICAgPHRkPlRoYWkKKyAgICAgICA8dGQ+d2luZG93cy04NzQKKworCisKKworCisgICAgICA8dHI+PHRkPnRyCisgICAgICAgPHRkPlR1cmtpc2gKKyAgICAgICA8dGQ+d2luZG93cy0xMjU0CisKKworCisgICAgICA8dHI+PHRkPnR0CisgICAgICAgPHRkPlRhdGFyCisgICAgICAgPHRkPndpbmRvd3MtMTI1MQorCisKKworCisKKyAgICAgIDx0cj48dGQ+dWsKKyAgICAgICA8dGQ+VWtyYWluaWFuCisgICAgICAgPHRkPndpbmRvd3MtMTI1MQorCisKKworCisKKworCisgICAgICA8dHI+PHRkPnZpCisgICAgICAgPHRkPlZpZXRuYW1lc2UKKyAgICAgICA8dGQ+d2luZG93cy0xMjU4CisKKworCisKKworCisKKworCisKKworICAgICAgPHRyPjx0ZD56aC1DTgorICAgICAgIDx0ZD5DaGluZXNlIChQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYSkKKyAgICAgICA8dGQ+R0IxODAzMAorCisKKworCisKKworCisKKworCisKKyAgICAgIDx0cj48dGQ+emgtVFcKKyAgICAgICA8dGQ+Q2hpbmVzZSAoVGFpd2FuKQorICAgICAgIDx0ZD5CaWc1CisKKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49Mj5BbGwgb3RoZXIgbG9jYWxlcworICAgICAgIDx0ZD53aW5kb3dzLTEyNTIKKworICAgIDwvdGFibGU+CisKKyAgICA8cCBjbGFzcz10YWJsZW5vdGU+PHNtYWxsPlRoZSBjb250ZW50cyBvZiB0aGlzIHRhYmxlIGFyZSBkZXJpdmVkIGZyb20gdGhlIGludGVyc2VjdGlvbiBvZgorICAgIFdpbmRvd3MsIENocm9tZSwgYW5kIEZpcmVmb3ggZGVmYXVsdHMuPC9zbWFsbD48L3A+CisKKyAgIDwvb2w+CisKKyAgPHA+VGhlIDxhIGlkPSJkZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmRvY3VtZW50J3MtY2hhcmFjdGVyLWVuY29kaW5nLTMiIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjZG9jdW1lbnQncy1jaGFyYWN0ZXItZW5jb2RpbmciPmRvY3VtZW50J3MgY2hhcmFjdGVyIGVuY29kaW5nPC9hPiBtdXN0IGltbWVkaWF0ZWx5IGJlIHNldCB0byB0aGUgdmFsdWUgcmV0dXJuZWQKKyAgZnJvbSB0aGlzIGFsZ29yaXRobSwgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgdXNlciBhZ2VudCB1c2VzIHRoZSByZXR1cm5lZCB2YWx1ZSB0byBzZWxlY3QgdGhlCisgIGRlY29kZXIgdG8gdXNlIGZvciB0aGUgaW5wdXQgYnl0ZSBzdHJlYW0uPC9wPgorCisgIDxocj4KKworICA8cD5XaGVuIGFuIGFsZ29yaXRobSByZXF1aXJlcyBhIHVzZXIgYWdlbnQgdG8gPGRmbiBpZD1wcmVzY2FuLWEtYnl0ZS1zdHJlYW0tdG8tZGV0ZXJtaW5lLWl0cy1lbmNvZGluZz5wcmVzY2FuIGEgYnl0ZSBzdHJlYW0gdG8gZGV0ZXJtaW5lIGl0cworICBlbmNvZGluZzwvZGZuPiwgZ2l2ZW4gc29tZSBkZWZpbmVkIDx2YXI+ZW5kIGNvbmRpdGlvbjwvdmFyPiwgdGhlbiBpdCBtdXN0IHJ1biB0aGUKKyAgZm9sbG93aW5nIHN0ZXBzLiBUaGVzZSBzdGVwcyBlaXRoZXIgYWJvcnQgdW5zdWNjZXNzZnVsbHkgb3IgcmV0dXJuIGEgY2hhcmFjdGVyIGVuY29kaW5nLiBJZiBhdCBhbnkKKyAgcG9pbnQgZHVyaW5nIHRoZXNlIHN0ZXBzIChpbmNsdWRpbmcgZHVyaW5nIGluc3RhbmNlcyBvZiB0aGUgPGEgaHJlZj0jY29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nPmdldCBhbiBhdHRyaWJ1dGU8L2E+IGFsZ29yaXRobSBpbnZva2VkIGJ5IHRoaXMKKyAgb25lKSB0aGUgdXNlciBhZ2VudCBlaXRoZXIgcnVucyBvdXQgb2YgYnl0ZXMgKG1lYW5pbmcgdGhlIDx2YXI+cG9zaXRpb248L3Zhcj4gcG9pbnRlcgorICBjcmVhdGVkIGluIHRoZSBmaXJzdCBzdGVwIGJlbG93IGdvZXMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJ5dGUgc3RyZWFtIG9idGFpbmVkIHNvIGZhcikgb3IgcmVhY2hlcworICBpdHMgPHZhcj5lbmQgY29uZGl0aW9uPC92YXI+LCB0aGVuIGFib3J0IHRoZSA8YSBocmVmPSNwcmVzY2FuLWEtYnl0ZS1zdHJlYW0tdG8tZGV0ZXJtaW5lLWl0cy1lbmNvZGluZyBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOnByZXNjYW4tYS1ieXRlLXN0cmVhbS10by1kZXRlcm1pbmUtaXRzLWVuY29kaW5nLTI+cHJlc2NhbiBhIGJ5dGUgc3RyZWFtIHRvIGRldGVybWluZSBpdHMKKyAgZW5jb2Rpbmc8L2E+IGFsZ29yaXRobSB1bnN1Y2Nlc3NmdWxseS48L3A+CisKKyAgPG9sPjxsaT4KKworICAgIDxwPkxldCA8dmFyPnBvc2l0aW9uPC92YXI+IGJlIGEgcG9pbnRlciB0byBhIGJ5dGUgaW4gdGhlIGlucHV0IGJ5dGUgc3RyZWFtLCBpbml0aWFsbHkKKyAgICBwb2ludGluZyBhdCB0aGUgZmlyc3QgYnl0ZS48L3A+CisKKyAgIDxsaT4KKworICAgIDxwPjxpPkxvb3A8L2k+OiBJZiA8dmFyPnBvc2l0aW9uPC92YXI+IHBvaW50cyB0bzo8L3A+CisKKyAgICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIHNlcXVlbmNlIG9mIGJ5dGVzIHN0YXJ0aW5nIHdpdGg6IDB4M0MgMHgyMSAweDJEIDB4MkQgKEFTQ0lJICcmbHQ7IS0tJyk8ZGQ+CisKKyAgICAgIDxwPkFkdmFuY2UgdGhlIDx2YXI+cG9zaXRpb248L3Zhcj4gcG9pbnRlciBzbyB0aGF0IGl0IHBvaW50cyBhdCB0aGUgZmlyc3QgMHgzRSBieXRlCisgICAgICB3aGljaCBpcyBwcmVjZWRlZCBieSB0d28gMHgyRCBieXRlcyAoaS5lLiBhdCB0aGUgZW5kIG9mIGFuIEFTQ0lJICctLT4nIHNlcXVlbmNlKSBhbmQgY29tZXMKKyAgICAgIGFmdGVyIHRoZSAweDNDIGJ5dGUgdGhhdCB3YXMgZm91bmQuIChUaGUgdHdvIDB4MkQgYnl0ZXMgY2FuIGJlIHRoZSBzYW1lIGFzIHRoZSB0aG9zZSBpbiB0aGUKKyAgICAgICcmbHQ7IS0tJyBzZXF1ZW5jZS4pPC9wPgorCisgICAgIDxkdD5BIHNlcXVlbmNlIG9mIGJ5dGVzIHN0YXJ0aW5nIHdpdGg6IDB4M0MsIDB4NEQgb3IgMHg2RCwgMHg0NSBvciAweDY1LCAweDU0IG9yIDB4NzQsIDB4NDEgb3IgMHg2MSwgYW5kIG9uZSBvZiAweDA5LCAweDBBLCAweDBDLCAweDBELCAweDIwLCAweDJGIChjYXNlLWluc2Vuc2l0aXZlIEFTQ0lJICcmbHQ7bWV0YScgZm9sbG93ZWQgYnkgYSBzcGFjZSBvciBzbGFzaCk8ZGQ+CisKKyAgICAgIDxvbD48bGk+PHA+QWR2YW5jZSB0aGUgPHZhcj5wb3NpdGlvbjwvdmFyPiBwb2ludGVyIHNvIHRoYXQgaXQgcG9pbnRzIGF0IHRoZSBuZXh0IDB4MDksCisgICAgICAgMHgwQSwgMHgwQywgMHgwRCwgMHgyMCwgb3IgMHgyRiBieXRlICh0aGUgb25lIGluIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgbWF0Y2hlZAorICAgICAgIGFib3ZlKS48bGk+PHA+TGV0IDx2YXI+YXR0cmlidXRlIGxpc3Q8L3Zhcj4gYmUgYW4gZW1wdHkgbGlzdCBvZiBzdHJpbmdzLjxsaT48cD5MZXQgPHZhcj5nb3QgcHJhZ21hPC92YXI+IGJlIGZhbHNlLjxsaT48cD5MZXQgPHZhcj5uZWVkIHByYWdtYTwvdmFyPiBiZSBudWxsLjxsaT48cD5MZXQgPHZhcj5jaGFyc2V0PC92YXI+IGJlIHRoZSBudWxsIHZhbHVlICh3aGljaCwgZm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzCisgICAgICAgYWxnb3JpdGhtLCBpcyBkaXN0aW5jdCBmcm9tIGFuIHVucmVjb2duaXNlZCBlbmNvZGluZyBvciB0aGUgZW1wdHkgc3RyaW5nKS48bGk+PHA+PGk+QXR0cmlidXRlczwvaT46IDxhIGhyZWY9I2NvbmNlcHQtZ2V0LWF0dHJpYnV0ZXMtd2hlbi1zbmlmZmluZyBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmNvbmNlcHQtZ2V0LWF0dHJpYnV0ZXMtd2hlbi1zbmlmZmluZy0yPkdldCBhbgorICAgICAgIGF0dHJpYnV0ZTwvYT4gYW5kIGl0cyB2YWx1ZS4gSWYgbm8gYXR0cmlidXRlIHdhcyBzbmlmZmVkLCB0aGVuIGp1bXAgdG8gdGhlCisgICAgICAgPGk+cHJvY2Vzc2luZzwvaT4gc3RlcCBiZWxvdy48bGk+PHA+SWYgdGhlIGF0dHJpYnV0ZSdzIG5hbWUgaXMgYWxyZWFkeSBpbiA8dmFyPmF0dHJpYnV0ZSBsaXN0PC92YXI+LCB0aGVuIHJldHVybgorICAgICAgIHRvIHRoZSBzdGVwIGxhYmVsZWQgPGk+YXR0cmlidXRlczwvaT4uPC9wPgorCisgICAgICAgPGxpPjxwPkFkZCB0aGUgYXR0cmlidXRlJ3MgbmFtZSB0byA8dmFyPmF0dHJpYnV0ZSBsaXN0PC92YXI+LjwvcD4KKworICAgICAgIDxsaT4KKworICAgICAgICA8cD5SdW4gdGhlIGFwcHJvcHJpYXRlIHN0ZXAgZnJvbSB0aGUgZm9sbG93aW5nIGxpc3QsIGlmIG9uZSBhcHBsaWVzOjwvcD4KKworICAgICAgICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5JZiB0aGUgYXR0cmlidXRlJ3MgbmFtZSBpcyAiPGNvZGU+aHR0cC1lcXVpdjwvY29kZT4iPGRkPjxwPklmIHRoZSBhdHRyaWJ1dGUncyB2YWx1ZSBpcyAiPGNvZGU+Y29udGVudC10eXBlPC9jb2RlPiIsIHRoZW4gc2V0IDx2YXI+Z290IHByYWdtYTwvdmFyPiB0byB0cnVlLjxkdD5JZiB0aGUgYXR0cmlidXRlJ3MgbmFtZSBpcyAiPGNvZGU+Y29udGVudDwvY29kZT4iPGRkPjxwPkFwcGx5IHRoZSA8YSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmFsZ29yaXRobS1mb3ItZXh0cmFjdGluZy1hLWNoYXJhY3Rlci1lbmNvZGluZy1mcm9tLWEtbWV0YS1lbGVtZW50IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhbGdvcml0aG0tZm9yLWV4dHJhY3RpbmctYS1jaGFyYWN0ZXItZW5jb2RpbmctZnJvbS1hLW1ldGEtZWxlbWVudD5hbGdvcml0aG0gZm9yIGV4dHJhY3RpbmcgYSBjaGFyYWN0ZXIgZW5jb2RpbmcgZnJvbSBhCisgICAgICAgICA8Y29kZT5tZXRhPC9jb2RlPiBlbGVtZW50PC9hPiwgZ2l2aW5nIHRoZSBhdHRyaWJ1dGUncyB2YWx1ZSBhcyB0aGUgc3RyaW5nIHRvIHBhcnNlLiBJZiBhCisgICAgICAgICBjaGFyYWN0ZXIgZW5jb2RpbmcgaXMgcmV0dXJuZWQsIGFuZCBpZiA8dmFyPmNoYXJzZXQ8L3Zhcj4gaXMgc3RpbGwgc2V0IHRvIG51bGwsCisgICAgICAgICBsZXQgPHZhcj5jaGFyc2V0PC92YXI+IGJlIHRoZSBlbmNvZGluZyByZXR1cm5lZCwgYW5kIHNldCA8dmFyPm5lZWQKKyAgICAgICAgIHByYWdtYTwvdmFyPiB0byB0cnVlLjxkdD5JZiB0aGUgYXR0cmlidXRlJ3MgbmFtZSBpcyAiPGNvZGU+Y2hhcnNldDwvY29kZT4iPGRkPjxwPkxldCA8dmFyPmNoYXJzZXQ8L3Zhcj4gYmUgdGhlIHJlc3VsdCBvZiA8YSBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmdldHRpbmctYW4tZW5jb2RpbmcgaHJlZj1odHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1lbmNvZGluZy1nZXQgZGF0YS14LWludGVybmFsPWdldHRpbmctYW4tZW5jb2Rpbmc+Z2V0dGluZyBhbiBlbmNvZGluZzwvYT4KKyAgICAgICAgIGZyb20gdGhlIGF0dHJpYnV0ZSdzIHZhbHVlLCBhbmQgc2V0IDx2YXI+bmVlZCBwcmFnbWE8L3Zhcj4gdG8gZmFsc2UuPC9kbD4KKworICAgICAgIDxsaT48cD5SZXR1cm4gdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5hdHRyaWJ1dGVzPC9pPi48bGk+PHA+PGk+UHJvY2Vzc2luZzwvaT46IElmIDx2YXI+bmVlZCBwcmFnbWE8L3Zhcj4gaXMgbnVsbCwgdGhlbiBqdW1wIHRvIHRoZSBzdGVwCisgICAgICAgYmVsb3cgbGFiZWxlZCA8aT5uZXh0IGJ5dGU8L2k+LjxsaT48cD5JZiA8dmFyPm5lZWQgcHJhZ21hPC92YXI+IGlzIHRydWUgYnV0IDx2YXI+Z290IHByYWdtYTwvdmFyPiBpcworICAgICAgIGZhbHNlLCB0aGVuIGp1bXAgdG8gdGhlIHN0ZXAgYmVsb3cgbGFiZWxlZCA8aT5uZXh0IGJ5dGU8L2k+LjxsaT48cD5JZiA8dmFyPmNoYXJzZXQ8L3Zhcj4gaXMgPGEgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzphLXV0Zi0xNi1lbmNvZGluZyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYS11dGYtMTYtZW5jb2Rpbmc+YSBVVEYtMTYgZW5jb2Rpbmc8L2E+LCBjaGFuZ2UgdGhlIHZhbHVlIG9mCisgICAgICAgPHZhcj5jaGFyc2V0PC92YXI+IHRvIFVURi04LjxsaT48cD5JZiA8dmFyPmNoYXJzZXQ8L3Zhcj4gaXMgdGhlIHgtdXNlci1kZWZpbmVkIGVuY29kaW5nLCBjaGFuZ2UgdGhlIHZhbHVlIG9mCisgICAgICAgPHZhcj5jaGFyc2V0PC92YXI+IHRvIFdpbmRvd3MtMTI1Mi4gPGEgaHJlZj1yZWZlcmVuY2VzLmh0bWwjcmVmc0VOQ09ESU5HPltFTkNPRElOR108L2E+PGxpPjxwPklmIDx2YXI+Y2hhcnNldDwvdmFyPiBpcyBub3QgYSBzdXBwb3J0ZWQgY2hhcmFjdGVyIGVuY29kaW5nLCB0aGVuIGp1bXAgdG8gdGhlCisgICAgICAgc3RlcCBiZWxvdyBsYWJlbGVkIDxpPm5leHQgYnl0ZTwvaT4uPGxpPjxwPkFib3J0IHRoZSA8YSBocmVmPSNwcmVzY2FuLWEtYnl0ZS1zdHJlYW0tdG8tZGV0ZXJtaW5lLWl0cy1lbmNvZGluZyBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOnByZXNjYW4tYS1ieXRlLXN0cmVhbS10by1kZXRlcm1pbmUtaXRzLWVuY29kaW5nLTM+cHJlc2NhbiBhIGJ5dGUgc3RyZWFtIHRvIGRldGVybWluZSBpdHMgZW5jb2Rpbmc8L2E+IGFsZ29yaXRobSwKKyAgICAgICByZXR1cm5pbmcgdGhlIGVuY29kaW5nIGdpdmVuIGJ5IDx2YXI+Y2hhcnNldDwvdmFyPi48L29sPgorCisgICAgIDxkdD5BIHNlcXVlbmNlIG9mIGJ5dGVzIHN0YXJ0aW5nIHdpdGggYSAweDNDIGJ5dGUgKEFTQ0lJICZsdDspLCBvcHRpb25hbGx5IGEgMHgyRiBieXRlIChBU0NJSSAvKSwgYW5kIGZpbmFsbHkgYSBieXRlIGluIHRoZSByYW5nZSAweDQxLTB4NUEgb3IgMHg2MS0weDdBIChhbiBBU0NJSSBsZXR0ZXIpPGRkPgorCisgICAgICA8b2w+PGxpPjxwPkFkdmFuY2UgdGhlIDx2YXI+cG9zaXRpb248L3Zhcj4gcG9pbnRlciBzbyB0aGF0IGl0IHBvaW50cyBhdCB0aGUgbmV4dCAweDA5CisgICAgICAgKEFTQ0lJIFRBQiksIDB4MEEgKEFTQ0lJIExGKSwgMHgwQyAoQVNDSUkgRkYpLCAweDBEIChBU0NJSSBDUiksIDB4MjAgKEFTQ0lJIHNwYWNlKSwgb3IgMHgzRQorICAgICAgIChBU0NJSSA+KSBieXRlLjxsaT48cD5SZXBlYXRlZGx5IDxhIGhyZWY9I2NvbmNlcHQtZ2V0LWF0dHJpYnV0ZXMtd2hlbi1zbmlmZmluZyBpZD1kZXRlcm1pbmluZy10aGUtY2hhcmFjdGVyLWVuY29kaW5nOmNvbmNlcHQtZ2V0LWF0dHJpYnV0ZXMtd2hlbi1zbmlmZmluZy0zPmdldCBhbiBhdHRyaWJ1dGU8L2E+CisgICAgICAgdW50aWwgbm8gZnVydGhlciBhdHRyaWJ1dGVzIGNhbiBiZSBmb3VuZCwgdGhlbiBqdW1wIHRvIHRoZSBzdGVwIGJlbG93IGxhYmVsZWQgPGk+bmV4dAorICAgICAgIGJ5dGU8L2k+Ljwvb2w+CisKKyAgICAgPGR0PkEgc2VxdWVuY2Ugb2YgYnl0ZXMgc3RhcnRpbmcgd2l0aDogMHgzQyAweDIxIChBU0NJSSAnJmx0OyEnKTxkdD5BIHNlcXVlbmNlIG9mIGJ5dGVzIHN0YXJ0aW5nIHdpdGg6IDB4M0MgMHgyRiAoQVNDSUkgJyZsdDsvJyk8ZHQ+QSBzZXF1ZW5jZSBvZiBieXRlcyBzdGFydGluZyB3aXRoOiAweDNDIDB4M0YgKEFTQ0lJICcmbHQ7PycpPGRkPgorCisgICAgICA8cD5BZHZhbmNlIHRoZSA8dmFyPnBvc2l0aW9uPC92YXI+IHBvaW50ZXIgc28gdGhhdCBpdCBwb2ludHMgYXQgdGhlIGZpcnN0IDB4M0UgYnl0ZQorICAgICAgKEFTQ0lJID4pIHRoYXQgY29tZXMgYWZ0ZXIgdGhlIDB4M0MgYnl0ZSB0aGF0IHdhcyBmb3VuZC48L3A+CisKKyAgICAgPGR0PkFueSBvdGhlciBieXRlPGRkPgorCisgICAgICA8cD5EbyBub3RoaW5nIHdpdGggdGhhdCBieXRlLjwvcD4KKworICAgICA8L2RsPgorCisgICA8bGk+PGk+TmV4dCBieXRlPC9pPjogTW92ZSA8dmFyPnBvc2l0aW9uPC92YXI+IHNvIGl0IHBvaW50cyBhdCB0aGUgbmV4dCBieXRlIGluIHRoZQorICAgaW5wdXQgYnl0ZSBzdHJlYW0sIGFuZCByZXR1cm4gdG8gdGhlIHN0ZXAgYWJvdmUgbGFiZWxlZCA8aT5sb29wPC9pPi48L29sPgorCisgIDxwPldoZW4gdGhlIDxhIGhyZWY9I3ByZXNjYW4tYS1ieXRlLXN0cmVhbS10by1kZXRlcm1pbmUtaXRzLWVuY29kaW5nIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6cHJlc2Nhbi1hLWJ5dGUtc3RyZWFtLXRvLWRldGVybWluZS1pdHMtZW5jb2RpbmctND5wcmVzY2FuIGEgYnl0ZSBzdHJlYW0gdG8gZGV0ZXJtaW5lIGl0cyBlbmNvZGluZzwvYT4gYWxnb3JpdGhtIHNheXMgdG8gPGRmbiBpZD1jb25jZXB0LWdldC1hdHRyaWJ1dGVzLXdoZW4tc25pZmZpbmc+Z2V0IGFuIGF0dHJpYnV0ZTwvZGZuPiwgaXQgbWVhbnMgZG9pbmcgdGhpczo8L3A+CisKKyAgPG9sPjxsaT48cD5JZiB0aGUgYnl0ZSBhdCA8dmFyPnBvc2l0aW9uPC92YXI+IGlzIG9uZSBvZiAweDA5IChBU0NJSSBUQUIpLCAweDBBIChBU0NJSSBMRiksCisgICAweDBDIChBU0NJSSBGRiksIDB4MEQgKEFTQ0lJIENSKSwgMHgyMCAoQVNDSUkgc3BhY2UpLCBvciAweDJGIChBU0NJSSAvKSB0aGVuIGFkdmFuY2UgPHZhcj5wb3NpdGlvbjwvdmFyPiB0byB0aGUgbmV4dCBieXRlIGFuZCByZWRvIHRoaXMgc3RlcC48bGk+PHA+SWYgdGhlIGJ5dGUgYXQgPHZhcj5wb3NpdGlvbjwvdmFyPiBpcyAweDNFIChBU0NJSSA+KSwgdGhlbiBhYm9ydCB0aGUgPGEgaHJlZj0jY29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nLTQ+Z2V0IGFuIGF0dHJpYnV0ZTwvYT4gYWxnb3JpdGhtLiBUaGVyZSBpc24ndAorICAgb25lLjxsaT48cD5PdGhlcndpc2UsIHRoZSBieXRlIGF0IDx2YXI+cG9zaXRpb248L3Zhcj4gaXMgdGhlIHN0YXJ0IG9mIHRoZSBhdHRyaWJ1dGUgbmFtZS4KKyAgIExldCA8dmFyPmF0dHJpYnV0ZSBuYW1lPC92YXI+IGFuZCA8dmFyPmF0dHJpYnV0ZSB2YWx1ZTwvdmFyPiBiZSB0aGUgZW1wdHkKKyAgIHN0cmluZy48bGk+PHA+UHJvY2VzcyB0aGUgYnl0ZSBhdCA8dmFyPnBvc2l0aW9uPC92YXI+IGFzIGZvbGxvd3M6PC9wPgorCisgICAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+SWYgaXQgaXMgMHgzRCAoQVNDSUkgPSksIGFuZCB0aGUgPHZhcj5hdHRyaWJ1dGUgbmFtZTwvdmFyPiBpcyBsb25nZXIgdGhhbiB0aGUKKyAgICAgZW1wdHkgc3RyaW5nPGRkPkFkdmFuY2UgPHZhcj5wb3NpdGlvbjwvdmFyPiB0byB0aGUgbmV4dCBieXRlIGFuZCBqdW1wIHRvIHRoZSBzdGVwIGJlbG93IGxhYmVsZWQKKyAgICAgPGk+dmFsdWU8L2k+LjxkdD5JZiBpdCBpcyAweDA5IChBU0NJSSBUQUIpLCAweDBBIChBU0NJSSBMRiksIDB4MEMgKEFTQ0lJIEZGKSwgMHgwRCAoQVNDSUkgQ1IpLCBvciAweDIwCisgICAgIChBU0NJSSBzcGFjZSk8ZGQ+SnVtcCB0byB0aGUgc3RlcCBiZWxvdyBsYWJlbGVkIDxpPnNwYWNlczwvaT4uPGR0PklmIGl0IGlzIDB4MkYgKEFTQ0lJIC8pIG9yIDB4M0UgKEFTQ0lJID4pPGRkPkFib3J0IHRoZSA8YSBocmVmPSNjb25jZXB0LWdldC1hdHRyaWJ1dGVzLXdoZW4tc25pZmZpbmcgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpjb25jZXB0LWdldC1hdHRyaWJ1dGVzLXdoZW4tc25pZmZpbmctNT5nZXQgYW4gYXR0cmlidXRlPC9hPgorICAgICBhbGdvcml0aG0uIFRoZSBhdHRyaWJ1dGUncyBuYW1lIGlzIHRoZSB2YWx1ZSBvZiA8dmFyPmF0dHJpYnV0ZSBuYW1lPC92YXI+LCBpdHMgdmFsdWUKKyAgICAgaXMgdGhlIGVtcHR5IHN0cmluZy48ZHQ+SWYgaXQgaXMgaW4gdGhlIHJhbmdlIDB4NDEgKEFTQ0lJIEEpIHRvIDB4NUEgKEFTQ0lJIFopPGRkPkFwcGVuZCB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgd2l0aCBjb2RlIHBvaW50IDxzcGFuPjx2YXI+YjwvdmFyPisweDIwPC9zcGFuPiB0byA8dmFyPmF0dHJpYnV0ZSBuYW1lPC92YXI+ICh3aGVyZSA8dmFyPmI8L3Zhcj4KKyAgICAgaXMgdGhlIHZhbHVlIG9mIHRoZSBieXRlIGF0IDx2YXI+cG9zaXRpb248L3Zhcj4pLiAoVGhpcyBjb252ZXJ0cyB0aGUgaW5wdXQgdG8KKyAgICAgbG93ZXJjYXNlLik8ZHQ+QW55dGhpbmcgZWxzZTxkZD5BcHBlbmQgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIHdpdGggdGhlIHNhbWUgY29kZSBwb2ludCBhcyB0aGUgdmFsdWUgb2YgdGhlIGJ5dGUgYXQgPHZhcj5wb3NpdGlvbjwvdmFyPiB0byA8dmFyPmF0dHJpYnV0ZSBuYW1lPC92YXI+LiAoSXQgZG9lc24ndCBhY3R1YWxseSBtYXR0ZXIgaG93CisgICAgIGJ5dGVzIG91dHNpZGUgdGhlIEFTQ0lJIHJhbmdlIGFyZSBoYW5kbGVkIGhlcmUsIHNpbmNlIG9ubHkgQVNDSUkgY2hhcmFjdGVycyBjYW4gY29udHJpYnV0ZSB0bworICAgICB0aGUgZGV0ZWN0aW9uIG9mIGEgY2hhcmFjdGVyIGVuY29kaW5nLik8L2RsPgorCisgICA8bGk+PHA+QWR2YW5jZSA8dmFyPnBvc2l0aW9uPC92YXI+IHRvIHRoZSBuZXh0IGJ5dGUgYW5kIHJldHVybiB0byB0aGUgcHJldmlvdXMKKyAgIHN0ZXAuPGxpPjxwPjxpPlNwYWNlczwvaT46IElmIHRoZSBieXRlIGF0IDx2YXI+cG9zaXRpb248L3Zhcj4gaXMgb25lIG9mIDB4MDkgKEFTQ0lJIFRBQiksCisgICAweDBBIChBU0NJSSBMRiksIDB4MEMgKEFTQ0lJIEZGKSwgMHgwRCAoQVNDSUkgQ1IpLCBvciAweDIwIChBU0NJSSBzcGFjZSkgdGhlbiBhZHZhbmNlIDx2YXI+cG9zaXRpb248L3Zhcj4gdG8gdGhlIG5leHQgYnl0ZSwgdGhlbiwgcmVwZWF0IHRoaXMgc3RlcC48bGk+PHA+SWYgdGhlIGJ5dGUgYXQgPHZhcj5wb3NpdGlvbjwvdmFyPiBpcyA8ZW0+bm90PC9lbT4gMHgzRCAoQVNDSUkgPSksIGFib3J0IHRoZQorICAgPGEgaHJlZj0jY29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nLTY+Z2V0IGFuIGF0dHJpYnV0ZTwvYT4gYWxnb3JpdGhtLiBUaGUKKyAgIGF0dHJpYnV0ZSdzIG5hbWUgaXMgdGhlIHZhbHVlIG9mIDx2YXI+YXR0cmlidXRlIG5hbWU8L3Zhcj4sIGl0cyB2YWx1ZSBpcyB0aGUgZW1wdHkKKyAgIHN0cmluZy48bGk+PHA+QWR2YW5jZSA8dmFyPnBvc2l0aW9uPC92YXI+IHBhc3QgdGhlIDB4M0QgKEFTQ0lJID0pIGJ5dGUuPGxpPjxwPjxpPlZhbHVlPC9pPjogSWYgdGhlIGJ5dGUgYXQgPHZhcj5wb3NpdGlvbjwvdmFyPiBpcyBvbmUgb2YgMHgwOSAoQVNDSUkgVEFCKSwgMHgwQQorICAgKEFTQ0lJIExGKSwgMHgwQyAoQVNDSUkgRkYpLCAweDBEIChBU0NJSSBDUiksIG9yIDB4MjAgKEFTQ0lJIHNwYWNlKSB0aGVuIGFkdmFuY2UgPHZhcj5wb3NpdGlvbjwvdmFyPiB0byB0aGUgbmV4dCBieXRlLCB0aGVuLCByZXBlYXQgdGhpcyBzdGVwLjxsaT48cD5Qcm9jZXNzIHRoZSBieXRlIGF0IDx2YXI+cG9zaXRpb248L3Zhcj4gYXMgZm9sbG93czo8L3A+CisKKyAgICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5JZiBpdCBpcyAweDIyIChBU0NJSSAiKSBvciAweDI3IChBU0NJSSAnKTxkZD4KKworICAgICAgPG9sPjxsaT5MZXQgPHZhcj5iPC92YXI+IGJlIHRoZSB2YWx1ZSBvZiB0aGUgYnl0ZSBhdCA8dmFyPnBvc2l0aW9uPC92YXI+LjxsaT48aT5RdW90ZSBsb29wPC9pPjogQWR2YW5jZSA8dmFyPnBvc2l0aW9uPC92YXI+IHRvIHRoZSBuZXh0IGJ5dGUuPGxpPklmIHRoZSB2YWx1ZSBvZiB0aGUgYnl0ZSBhdCA8dmFyPnBvc2l0aW9uPC92YXI+IGlzIHRoZSB2YWx1ZSBvZiA8dmFyPmI8L3Zhcj4sIHRoZW4gYWR2YW5jZSA8dmFyPnBvc2l0aW9uPC92YXI+IHRvIHRoZSBuZXh0IGJ5dGUgYW5kIGFib3J0IHRoZQorICAgICAgICJnZXQgYW4gYXR0cmlidXRlIiBhbGdvcml0aG0uIFRoZSBhdHRyaWJ1dGUncyBuYW1lIGlzIHRoZSB2YWx1ZSBvZiA8dmFyPmF0dHJpYnV0ZQorICAgICAgIG5hbWU8L3Zhcj4sIGFuZCBpdHMgdmFsdWUgaXMgdGhlIHZhbHVlIG9mIDx2YXI+YXR0cmlidXRlIHZhbHVlPC92YXI+LjxsaT5PdGhlcndpc2UsIGlmIHRoZSB2YWx1ZSBvZiB0aGUgYnl0ZSBhdCA8dmFyPnBvc2l0aW9uPC92YXI+IGlzIGluIHRoZSByYW5nZSAweDQxCisgICAgICAgKEFTQ0lJIEEpIHRvIDB4NUEgKEFTQ0lJIFopLCB0aGVuIGFwcGVuZCBhIFVuaWNvZGUgY2hhcmFjdGVyIHRvIDx2YXI+YXR0cmlidXRlCisgICAgICAgdmFsdWU8L3Zhcj4gd2hvc2UgY29kZSBwb2ludCBpcyAweDIwIG1vcmUgdGhhbiB0aGUgdmFsdWUgb2YgdGhlIGJ5dGUgYXQgPHZhcj5wb3NpdGlvbjwvdmFyPi48bGk+T3RoZXJ3aXNlLCBhcHBlbmQgYSBVbmljb2RlIGNoYXJhY3RlciB0byA8dmFyPmF0dHJpYnV0ZSB2YWx1ZTwvdmFyPiB3aG9zZSBjb2RlCisgICAgICAgcG9pbnQgaXMgdGhlIHNhbWUgYXMgdGhlIHZhbHVlIG9mIHRoZSBieXRlIGF0IDx2YXI+cG9zaXRpb248L3Zhcj4uPGxpPlJldHVybiB0byB0aGUgc3RlcCBhYm92ZSBsYWJlbGVkIDxpPnF1b3RlIGxvb3A8L2k+Ljwvb2w+CisKKyAgICAgPGR0PklmIGl0IGlzIDB4M0UgKEFTQ0lJID4pPGRkPkFib3J0IHRoZSA8YSBocmVmPSNjb25jZXB0LWdldC1hdHRyaWJ1dGVzLXdoZW4tc25pZmZpbmcgaWQ9ZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZzpjb25jZXB0LWdldC1hdHRyaWJ1dGVzLXdoZW4tc25pZmZpbmctNz5nZXQgYW4gYXR0cmlidXRlPC9hPgorICAgICBhbGdvcml0aG0uIFRoZSBhdHRyaWJ1dGUncyBuYW1lIGlzIHRoZSB2YWx1ZSBvZiA8dmFyPmF0dHJpYnV0ZSBuYW1lPC92YXI+LCBpdHMgdmFsdWUKKyAgICAgaXMgdGhlIGVtcHR5IHN0cmluZy48ZHQ+SWYgaXQgaXMgaW4gdGhlIHJhbmdlIDB4NDEgKEFTQ0lJIEEpIHRvIDB4NUEgKEFTQ0lJIFopPGRkPkFwcGVuZCB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgd2l0aCBjb2RlIHBvaW50IDxzcGFuPjx2YXI+YjwvdmFyPisweDIwPC9zcGFuPiB0byA8dmFyPmF0dHJpYnV0ZSB2YWx1ZTwvdmFyPiAod2hlcmUgPHZhcj5iPC92YXI+IGlzIHRoZSB2YWx1ZSBvZiB0aGUgYnl0ZSBhdCA8dmFyPnBvc2l0aW9uPC92YXI+KS4gQWR2YW5jZSA8dmFyPnBvc2l0aW9uPC92YXI+IHRvIHRoZSBuZXh0IGJ5dGUuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+QXBwZW5kIHRoZSBVbmljb2RlIGNoYXJhY3RlciB3aXRoIHRoZSBzYW1lIGNvZGUgcG9pbnQgYXMgdGhlIHZhbHVlIG9mIHRoZSBieXRlIGF0IDx2YXI+cG9zaXRpb248L3Zhcj4gdG8gPHZhcj5hdHRyaWJ1dGUgdmFsdWU8L3Zhcj4uIEFkdmFuY2UgPHZhcj5wb3NpdGlvbjwvdmFyPiB0byB0aGUgbmV4dCBieXRlLjwvZGw+CisKKyAgIDxsaT48cD5Qcm9jZXNzIHRoZSBieXRlIGF0IDx2YXI+cG9zaXRpb248L3Zhcj4gYXMKKyAgIGZvbGxvd3M6PC9wPgorCisgICAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+SWYgaXQgaXMgMHgwOSAoQVNDSUkgVEFCKSwgMHgwQSAoQVNDSUkgTEYpLCAweDBDIChBU0NJSSBGRiksIDB4MEQgKEFTQ0lJIENSKSwgMHgyMCAoQVNDSUkKKyAgICAgc3BhY2UpLCBvciAweDNFIChBU0NJSSA+KTxkZD5BYm9ydCB0aGUgPGEgaHJlZj0jY29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nIGlkPWRldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2Rpbmc6Y29uY2VwdC1nZXQtYXR0cmlidXRlcy13aGVuLXNuaWZmaW5nLTg+Z2V0IGFuIGF0dHJpYnV0ZTwvYT4KKyAgICAgYWxnb3JpdGhtLiBUaGUgYXR0cmlidXRlJ3MgbmFtZSBpcyB0aGUgdmFsdWUgb2YgPHZhcj5hdHRyaWJ1dGUgbmFtZTwvdmFyPiBhbmQgaXRzCisgICAgIHZhbHVlIGlzIHRoZSB2YWx1ZSBvZiA8dmFyPmF0dHJpYnV0ZSB2YWx1ZTwvdmFyPi48ZHQ+SWYgaXQgaXMgaW4gdGhlIHJhbmdlIDB4NDEgKEFTQ0lJIEEpIHRvIDB4NUEgKEFTQ0lJIFopPGRkPkFwcGVuZCB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgd2l0aCBjb2RlIHBvaW50IDxzcGFuPjx2YXI+YjwvdmFyPisweDIwPC9zcGFuPiB0byA8dmFyPmF0dHJpYnV0ZSB2YWx1ZTwvdmFyPiAod2hlcmUgPHZhcj5iPC92YXI+IGlzIHRoZSB2YWx1ZSBvZiB0aGUgYnl0ZSBhdCA8dmFyPnBvc2l0aW9uPC92YXI+KS48ZHQ+QW55dGhpbmcgZWxzZTxkZD5BcHBlbmQgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIHdpdGggdGhlIHNhbWUgY29kZSBwb2ludCBhcyB0aGUgdmFsdWUgb2YgdGhlIGJ5dGUgYXQgPHZhcj5wb3NpdGlvbjwvdmFyPiB0byA8dmFyPmF0dHJpYnV0ZSB2YWx1ZTwvdmFyPi48L2RsPgorCisgICA8bGk+PHA+QWR2YW5jZSA8dmFyPnBvc2l0aW9uPC92YXI+IHRvIHRoZSBuZXh0IGJ5dGUgYW5kIHJldHVybiB0byB0aGUgcHJldmlvdXMKKyAgIHN0ZXAuPC9vbD4KKworICA8cD5Gb3IgdGhlIHNha2Ugb2YgaW50ZXJvcGVyYWJpbGl0eSwgdXNlciBhZ2VudHMgc2hvdWxkIG5vdCB1c2UgYSBwcmUtc2NhbiBhbGdvcml0aG0gdGhhdCByZXR1cm5zCisgIGRpZmZlcmVudCByZXN1bHRzIHRoYW4gdGhlIG9uZSBkZXNjcmliZWQgYWJvdmUuIChCdXQsIGlmIHlvdSBkbywgcGxlYXNlIGF0IGxlYXN0IGxldCB1cyBrbm93LCBzbworICB0aGF0IHdlIGNhbiBpbXByb3ZlIHRoaXMgYWxnb3JpdGhtIGFuZCBiZW5lZml0IGV2ZXJ5b25lLi4uKTwvcD4KKworCisKKworCisgIDxoNSBpZD1jaGFyYWN0ZXItZW5jb2RpbmdzPjEyLjIuMi4zIENoYXJhY3RlciBlbmNvZGluZ3M8L2g1PgorCisgIDxwPlVzZXIgYWdlbnRzIG11c3Qgc3VwcG9ydCB0aGUgZW5jb2RpbmdzIGRlZmluZWQgaW4gdGhlIFdIQVRXRyBFbmNvZGluZyBzdGFuZGFyZC4gVXNlciBhZ2VudHMKKyAgc2hvdWxkIG5vdCBzdXBwb3J0IG90aGVyIGVuY29kaW5ncy48L3A+CisKKyAgPHA+VXNlciBhZ2VudHMgbXVzdCBub3Qgc3VwcG9ydCB0aGUgQ0VTVS04LCBVVEYtNywgQk9DVS0xIGFuZCBTQ1NVIGVuY29kaW5ncy4gPGEgaHJlZj1yZWZlcmVuY2VzLmh0bWwjcmVmc0NFU1U4PltDRVNVOF08L2E+IDxhIGhyZWY9cmVmZXJlbmNlcy5odG1sI3JlZnNVVEY3PltVVEY3XTwvYT4gPGEgaHJlZj1yZWZlcmVuY2VzLmh0bWwjcmVmc0JPQ1UxPltCT0NVMV08L2E+IDxhIGhyZWY9cmVmZXJlbmNlcy5odG1sI3JlZnNTQ1NVPltTQ1NVXTwvYT48L3A+CisKKyAgPHA+U3VwcG9ydCBmb3IgZW5jb2RpbmdzIGJhc2VkIG9uIEVCQ0RJQyBpcyBlc3BlY2lhbGx5IGRpc2NvdXJhZ2VkLiBUaGlzIGVuY29kaW5nIGlzIHJhcmVseSB1c2VkCisgIGZvciBwdWJsaWNseS1mYWNpbmcgV2ViIGNvbnRlbnQuIFN1cHBvcnQgZm9yIFVURi0zMiBpcyBhbHNvIGVzcGVjaWFsbHkgZGlzY291cmFnZWQuIFRoaXMgZW5jb2RpbmcKKyAgaXMgcmFyZWx5IHVzZWQsIGFuZCBmcmVxdWVudGx5IGltcGxlbWVudGVkIGluY29ycmVjdGx5LjwvcD4KKworICA8cCBjbGFzcz1ub3RlPlRoaXMgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBhdHRlbXB0IHRvIHN1cHBvcnQgRUJDRElDLWJhc2VkIGVuY29kaW5ncyBhbmQKKyAgVVRGLTMyIGluIGl0cyBhbGdvcml0aG1zOyBzdXBwb3J0IGFuZCB1c2Ugb2YgdGhlc2UgZW5jb2RpbmdzIGNhbiB0aHVzIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICBpbiBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBzcGVjaWZpY2F0aW9uLjwvcD4KKworCisgIDxoNSBpZD1jaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZz4xMi4yLjIuNCBDaGFuZ2luZyB0aGUgZW5jb2Rpbmcgd2hpbGUgcGFyc2luZzwvaDU+CisKKyAgPHA+V2hlbiB0aGUgcGFyc2VyIHJlcXVpcmVzIHRoZSB1c2VyIGFnZW50IHRvIDxkZm4gaWQ9Y2hhbmdlLXRoZS1lbmNvZGluZz5jaGFuZ2UgdGhlIGVuY29kaW5nPC9kZm4+LCBpdCBtdXN0IHJ1biB0aGUKKyAgZm9sbG93aW5nIHN0ZXBzLiBUaGlzIG1pZ2h0IGhhcHBlbiBpZiB0aGUgPGEgaHJlZj0jZW5jb2Rpbmctc25pZmZpbmctYWxnb3JpdGhtIGlkPWNoYW5naW5nLXRoZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nOmVuY29kaW5nLXNuaWZmaW5nLWFsZ29yaXRobT5lbmNvZGluZyBzbmlmZmluZyBhbGdvcml0aG08L2E+IGRlc2NyaWJlZCBhYm92ZQorICBmYWlsZWQgdG8gZmluZCBhIGNoYXJhY3RlciBlbmNvZGluZywgb3IgaWYgaXQgZm91bmQgYSBjaGFyYWN0ZXIgZW5jb2RpbmcgdGhhdCB3YXMgbm90IHRoZSBhY3R1YWwKKyAgZW5jb2Rpbmcgb2YgdGhlIGZpbGUuPC9wPgorCisgIDxvbD48bGk+PHA+SWYgdGhlIGVuY29kaW5nIHRoYXQgaXMgYWxyZWFkeSBiZWluZyB1c2VkIHRvIGludGVycHJldCB0aGUgaW5wdXQgc3RyZWFtIGlzIDxhIGlkPWNoYW5naW5nLXRoZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nOmEtdXRmLTE2LWVuY29kaW5nIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhLXV0Zi0xNi1lbmNvZGluZz5hIFVURi0xNgorICAgZW5jb2Rpbmc8L2E+LCB0aGVuIHNldCB0aGUgPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPWNoYW5naW5nLXRoZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nOmNvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZT5jb25maWRlbmNlPC9hPiB0bworICAgPGk+Y2VydGFpbjwvaT4gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLiBUaGUgbmV3IGVuY29kaW5nIGlzIGlnbm9yZWQ7IGlmIGl0IHdhcyBhbnl0aGluZyBidXQgdGhlCisgICBzYW1lIGVuY29kaW5nLCB0aGVuIGl0IHdvdWxkIGJlIGNsZWFybHkgaW5jb3JyZWN0LjxsaT48cD5JZiB0aGUgbmV3IGVuY29kaW5nIGlzIDxhIGlkPWNoYW5naW5nLXRoZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nOmEtdXRmLTE2LWVuY29kaW5nLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2EtdXRmLTE2LWVuY29kaW5nPmEgVVRGLTE2IGVuY29kaW5nPC9hPiwgY2hhbmdlIGl0IHRvIFVURi04LjxsaT48cD5JZiB0aGUgbmV3IGVuY29kaW5nIGlzIHRoZSB4LXVzZXItZGVmaW5lZCBlbmNvZGluZywgY2hhbmdlIGl0IHRvIFdpbmRvd3MtMTI1Mi4gPGEgaHJlZj1yZWZlcmVuY2VzLmh0bWwjcmVmc0VOQ09ESU5HPltFTkNPRElOR108L2E+PGxpPjxwPklmIHRoZSBuZXcgZW5jb2RpbmcgaXMgaWRlbnRpY2FsIG9yIGVxdWl2YWxlbnQgdG8gdGhlIGVuY29kaW5nIHRoYXQgaXMgYWxyZWFkeSBiZWluZyB1c2VkCisgICB0byBpbnRlcnByZXQgdGhlIGlucHV0IHN0cmVhbSwgdGhlbiBzZXQgdGhlIDxhIGhyZWY9I2NvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZSBpZD1jaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZzpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UtMj5jb25maWRlbmNlPC9hPiB0byA8aT5jZXJ0YWluPC9pPiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgZW5jb2RpbmcgaW5mb3JtYXRpb24gZm91bmQgaW4gdGhlIGZpbGUgbWF0Y2hlcyB3aGF0IHRoZSA8YSBocmVmPSNlbmNvZGluZy1zbmlmZmluZy1hbGdvcml0aG0gaWQ9Y2hhbmdpbmctdGhlLWVuY29kaW5nLXdoaWxlLXBhcnNpbmc6ZW5jb2Rpbmctc25pZmZpbmctYWxnb3JpdGhtLTI+ZW5jb2RpbmcKKyAgIHNuaWZmaW5nIGFsZ29yaXRobTwvYT4gZGV0ZXJtaW5lZCB0byBiZSB0aGUgZW5jb2RpbmcsIGFuZCBpbiB0aGUgc2Vjb25kIHBhc3MgdGhyb3VnaCB0aGUKKyAgIHBhcnNlciBpZiB0aGUgZmlyc3QgcGFzcyBmb3VuZCB0aGF0IHRoZSBlbmNvZGluZyBzbmlmZmluZyBhbGdvcml0aG0gZGVzY3JpYmVkIGluIHRoZSBlYXJsaWVyCisgICBzZWN0aW9uIGZhaWxlZCB0byBmaW5kIHRoZSByaWdodCBlbmNvZGluZy48bGk+PHA+SWYgYWxsIHRoZSBieXRlcyB1cCB0byB0aGUgbGFzdCBieXRlIGNvbnZlcnRlZCBieSB0aGUgY3VycmVudCBkZWNvZGVyIGhhdmUgdGhlIHNhbWUKKyAgIFVuaWNvZGUgaW50ZXJwcmV0YXRpb25zIGluIGJvdGggdGhlIGN1cnJlbnQgZW5jb2RpbmcgYW5kIHRoZSBuZXcgZW5jb2RpbmcsIGFuZCBpZiB0aGUgdXNlciBhZ2VudAorICAgc3VwcG9ydHMgY2hhbmdpbmcgdGhlIGNvbnZlcnRlciBvbiB0aGUgZmx5LCB0aGVuIHRoZSB1c2VyIGFnZW50IG1heSBjaGFuZ2UgdG8gdGhlIG5ldyBjb252ZXJ0ZXIKKyAgIGZvciB0aGUgZW5jb2Rpbmcgb24gdGhlIGZseS4gU2V0IHRoZSA8YSBpZD0iY2hhbmdpbmctdGhlLWVuY29kaW5nLXdoaWxlLXBhcnNpbmc6ZG9jdW1lbnQncy1jaGFyYWN0ZXItZW5jb2RpbmciIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjZG9jdW1lbnQncy1jaGFyYWN0ZXItZW5jb2RpbmciPmRvY3VtZW50J3MgY2hhcmFjdGVyIGVuY29kaW5nPC9hPiBhbmQgdGhlIGVuY29kaW5nCisgICB1c2VkIHRvIGNvbnZlcnQgdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgbmV3IGVuY29kaW5nLCBzZXQgdGhlIDxhIGhyZWY9I2NvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZSBpZD1jaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZzpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UtMz5jb25maWRlbmNlPC9hPiB0byA8aT5jZXJ0YWluPC9pPiwgYW5kIGFib3J0IHRoZXNlCisgICBzdGVwcy48bGk+PHA+T3RoZXJ3aXNlLCA8YSBpZD1jaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZzpuYXZpZ2F0ZSBocmVmPWJyb3dzZXJzLmh0bWwjbmF2aWdhdGU+bmF2aWdhdGU8L2E+IHRvIHRoZSBkb2N1bWVudCBhZ2Fpbiwgd2l0aAorICAgPGEgaWQ9Y2hhbmdpbmctdGhlLWVuY29kaW5nLXdoaWxlLXBhcnNpbmc6cmVwbGFjZW1lbnQtZW5hYmxlZCBocmVmPWJyb3dzZXJzLmh0bWwjcmVwbGFjZW1lbnQtZW5hYmxlZD5yZXBsYWNlbWVudCBlbmFibGVkPC9hPiwgYW5kIHVzaW5nIHRoZSBzYW1lIDxhIGlkPWNoYW5naW5nLXRoZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nOnNvdXJjZS1icm93c2luZy1jb250ZXh0IGhyZWY9YnJvd3NlcnMuaHRtbCNzb3VyY2UtYnJvd3NpbmctY29udGV4dD5zb3VyY2UgYnJvd3NpbmcgY29udGV4dDwvYT4sIGJ1dAorICAgdGhpcyB0aW1lIHNraXAgdGhlIDxhIGhyZWY9I2VuY29kaW5nLXNuaWZmaW5nLWFsZ29yaXRobSBpZD1jaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZzplbmNvZGluZy1zbmlmZmluZy1hbGdvcml0aG0tMz5lbmNvZGluZyBzbmlmZmluZyBhbGdvcml0aG08L2E+IGFuZCBpbnN0ZWFkIGp1c3Qgc2V0IHRoZSBlbmNvZGluZyB0bworICAgdGhlIG5ldyBlbmNvZGluZyBhbmQgdGhlIDxhIGhyZWY9I2NvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZSBpZD1jaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZzpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UtND5jb25maWRlbmNlPC9hPiB0bworICAgPGk+Y2VydGFpbjwvaT4uIFdoZW5ldmVyIHBvc3NpYmxlLCB0aGlzIHNob3VsZCBiZSBkb25lIHdpdGhvdXQgYWN0dWFsbHkgY29udGFjdGluZyB0aGUgbmV0d29yaworICAgbGF5ZXIgKHRoZSBieXRlcyBzaG91bGQgYmUgcmUtcGFyc2VkIGZyb20gbWVtb3J5KSwgZXZlbiBpZiwgZS5nLiwgdGhlIGRvY3VtZW50IGlzIG1hcmtlZCBhcyBub3QKKyAgIGJlaW5nIGNhY2hlYWJsZS4gSWYgdGhpcyBpcyBub3QgcG9zc2libGUgYW5kIGNvbnRhY3RpbmcgdGhlIG5ldHdvcmsgbGF5ZXIgd291bGQgaW52b2x2ZSByZXBlYXRpbmcKKyAgIGEgcmVxdWVzdCB0aGF0IHVzZXMgYSBtZXRob2Qgb3RoZXIgdGhhbiBIVFRQIEdFVCAoPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2NvbmNlcHQtaHR0cC1lcXVpdmFsZW50LWdldCBpZD1jaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZzpjb25jZXB0LWh0dHAtZXF1aXZhbGVudC1nZXQ+b3IKKyAgIGVxdWl2YWxlbnQ8L2E+IGZvciBub24tSFRUUCBVUkxzKSwgdGhlbiBpbnN0ZWFkIHNldCB0aGUgPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPWNoYW5naW5nLXRoZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nOmNvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZS01PmNvbmZpZGVuY2U8L2E+IHRvIDxpPmNlcnRhaW48L2k+IGFuZCBpZ25vcmUgdGhlIG5ldworICAgZW5jb2RpbmcuIFRoZSByZXNvdXJjZSB3aWxsIGJlIG1pc2ludGVycHJldGVkLiBVc2VyIGFnZW50cyBtYXkgbm90aWZ5IHRoZSB1c2VyIG9mIHRoZSBzaXR1YXRpb24sCisgICB0byBhaWQgaW4gYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQuPC9vbD4KKworICA8cCBjbGFzcz1ub3RlPlRoaXMgYWxnb3JpdGhtIGlzIG9ubHkgaW52b2tlZCB3aGVuIGEgbmV3IGVuY29kaW5nIGlzIGZvdW5kIGRlY2xhcmVkIG9uIGEKKyAgPGNvZGUgaWQ9Y2hhbmdpbmctdGhlLWVuY29kaW5nLXdoaWxlLXBhcnNpbmc6dGhlLW1ldGEtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1tZXRhLWVsZW1lbnQ+bWV0YTwvYT48L2NvZGU+IGVsZW1lbnQuPC9wPgorCisKKyAgPGg1IGlkPXByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbT4xMi4yLjIuNSBQcmVwcm9jZXNzaW5nIHRoZSBpbnB1dCBzdHJlYW08L2g1PgorCisgIDxwPlRoZSA8ZGZuIGlkPWlucHV0LXN0cmVhbT5pbnB1dCBzdHJlYW08L2Rmbj4gY29uc2lzdHMgb2YgdGhlIGNoYXJhY3RlcnMgcHVzaGVkIGludG8gaXQgYXMgdGhlIDxhIGhyZWY9I3RoZS1pbnB1dC1ieXRlLXN0cmVhbSBpZD1wcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW06dGhlLWlucHV0LWJ5dGUtc3RyZWFtPmlucHV0IGJ5dGUKKyAgc3RyZWFtPC9hPiBpcyBkZWNvZGVkIG9yIGZyb20gdGhlIHZhcmlvdXMgQVBJcyB0aGF0IGRpcmVjdGx5IG1hbmlwdWxhdGUgdGhlIGlucHV0IHN0cmVhbS48L3A+CisKKyAgPHA+T25lIGxlYWRpbmcgVStGRUZGIEJZVEUgT1JERVIgTUFSSyBjaGFyYWN0ZXIgbXVzdCBiZSBpZ25vcmVkIGlmIGFueSBhcmUgcHJlc2VudCBpbiB0aGUKKyAgPGEgaHJlZj0jaW5wdXQtc3RyZWFtIGlkPXByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbTppbnB1dC1zdHJlYW0+aW5wdXQgc3RyZWFtPC9hPi48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGUgcmVxdWlyZW1lbnQgdG8gc3RyaXAgYSBVK0ZFRkYgQllURSBPUkRFUiBNQVJLIGNoYXJhY3RlciByZWdhcmRsZXNzIG9mIHdoZXRoZXIKKyAgdGhhdCBjaGFyYWN0ZXIgd2FzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBieXRlIG9yZGVyIGlzIGEgPGEgaWQ9cHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtOndpbGxmdWwtdmlvbGF0aW9uIGhyZWY9aW50cm9kdWN0aW9uLmh0bWwjd2lsbGZ1bC12aW9sYXRpb24+d2lsbGZ1bCB2aW9sYXRpb248L2E+IG9mCisgIFVuaWNvZGUsIG1vdGl2YXRlZCBieSBhIGRlc2lyZSB0byBpbmNyZWFzZSB0aGUgcmVzaWxpZW5jZSBvZiB1c2VyIGFnZW50cyBpbiB0aGUgZmFjZSBvZiBuYcOvdmUKKyAgdHJhbnNjb2RlcnMuPC9wPgorCisgIDxwPkFueSBvY2N1cnJlbmNlcyBvZiBhbnkgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2VzIFUrMDAwMSB0byBVKzAwMDgsICAgIFUrMDAwRSB0byBVKzAwMUYsCisgIFUrMDA3RiAgdG8gVSswMDlGLCBVK0ZERDAgdG8gVStGREVGLCBhbmQKKyAgY2hhcmFjdGVycyBVKzAwMEIsIFUrRkZGRSwgVStGRkZGLCBVKzFGRkZFLCBVKzFGRkZGLCBVKzJGRkZFLCBVKzJGRkZGLCBVKzNGRkZFLCBVKzNGRkZGLCBVKzRGRkZFLAorICBVKzRGRkZGLCBVKzVGRkZFLCBVKzVGRkZGLCBVKzZGRkZFLCBVKzZGRkZGLCBVKzdGRkZFLCBVKzdGRkZGLCBVKzhGRkZFLCBVKzhGRkZGLCBVKzlGRkZFLCBVKzlGRkZGLAorICBVK0FGRkZFLCBVK0FGRkZGLCBVK0JGRkZFLCBVK0JGRkZGLCBVK0NGRkZFLCBVK0NGRkZGLCBVK0RGRkZFLCBVK0RGRkZGLCBVK0VGRkZFLCBVK0VGRkZGLCBVK0ZGRkZFLAorICBVK0ZGRkZGLCBVKzEwRkZGRSwgYW5kIFUrMTBGRkZGIGFyZSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW06cGFyc2UtZXJyb3I+cGFyc2UgZXJyb3JzPC9hPi4gVGhlc2UgYXJlIGFsbAorICA8YSBpZD1wcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW06Y29udHJvbC1jaGFyYWN0ZXJzIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjb250cm9sLWNoYXJhY3RlcnM+Y29udHJvbCBjaGFyYWN0ZXJzPC9hPiBvciBwZXJtYW5lbnRseSB1bmRlZmluZWQgVW5pY29kZSBjaGFyYWN0ZXJzIChub25jaGFyYWN0ZXJzKS48L3A+CisKKyAgPHA+QW55IDxhIGlkPXByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbTpjaGFyYWN0ZXIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2NoYXJhY3Rlcj5jaGFyYWN0ZXI8L2E+IHRoYXQgaXMgYSBub3QgYSA8YSBpZD1wcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW06dW5pY29kZS1jaGFyYWN0ZXIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3VuaWNvZGUtY2hhcmFjdGVyPlVuaWNvZGUgY2hhcmFjdGVyPC9hPiwgaS5lLiBhbnkgaXNvbGF0ZWQKKyAgc3Vycm9nYXRlLCBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbTpwYXJzZS1lcnJvci0yPnBhcnNlIGVycm9yPC9hPi4gKFRoZXNlIGNhbiBvbmx5IGZpbmQgdGhlaXIgd2F5IGludG8gdGhlIGlucHV0IHN0cmVhbSB2aWEKKyAgc2NyaXB0IEFQSXMgc3VjaCBhcyA8Y29kZSBpZD1wcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW06ZG9tLWRvY3VtZW50LXdyaXRlPjxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2RvbS1kb2N1bWVudC13cml0ZT5kb2N1bWVudC53cml0ZSgpPC9hPjwvY29kZT4uKTwvcD4KKworICA8cD5VKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVycyBhbmQgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlcnMgYXJlIHRyZWF0ZWQKKyAgc3BlY2lhbGx5LiBBbGwgQ1IgY2hhcmFjdGVycyBtdXN0IGJlIGNvbnZlcnRlZCB0byBMRiBjaGFyYWN0ZXJzLCBhbmQgYW55IExGIGNoYXJhY3RlcnMgdGhhdAorICBpbW1lZGlhdGVseSBmb2xsb3cgYSBDUiBjaGFyYWN0ZXIgbXVzdCBiZSBpZ25vcmVkLiBUaHVzLCBuZXdsaW5lcyBpbiBIVE1MIERPTXMgYXJlIHJlcHJlc2VudGVkIGJ5CisgIExGIGNoYXJhY3RlcnMsIGFuZCB0aGVyZSBhcmUgbmV2ZXIgYW55IENSIGNoYXJhY3RlcnMgaW4gdGhlIGlucHV0IHRvIHRoZSA8YSBocmVmPSN0b2tlbml6YXRpb24gaWQ9cHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtOnRva2VuaXphdGlvbj50b2tlbml6YXRpb248L2E+CisgIHN0YWdlLjwvcD4KKworICA8cD5UaGUgPGRmbiBpZD1uZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvZGZuPiBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSA8YSBocmVmPSNpbnB1dC1zdHJlYW0gaWQ9cHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtOmlucHV0LXN0cmVhbS0yPmlucHV0IHN0cmVhbTwvYT4KKyAgdGhhdCBoYXMgbm90IHlldCBiZWVuIDxkZm4+Y29uc3VtZWQ8L2Rmbj4gb3IgZXhwbGljaXRseSBpZ25vcmVkIGJ5IHRoZSByZXF1aXJlbWVudHMgaW4KKyAgdGhpcyBzZWN0aW9uLiBJbml0aWFsbHksIHRoZSA8aSBpZD1wcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW06bmV4dC1pbnB1dC1jaGFyYWN0ZXI+PGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+PC9pPiBpcyB0aGUKKyAgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBpbnB1dC4gVGhlIDxkZm4gaWQ9Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2Rmbj4gaXMgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIGhhdmUKKyAgYmVlbiA8aT5jb25zdW1lZDwvaT4uPC9wPgorCisgIDxwPlRoZSA8ZGZuIGlkPWluc2VydGlvbi1wb2ludD5pbnNlcnRpb24gcG9pbnQ8L2Rmbj4gaXMgdGhlIHBvc2l0aW9uIChqdXN0IGJlZm9yZSBhIGNoYXJhY3RlciBvciBqdXN0IGJlZm9yZSB0aGUgZW5kCisgIG9mIHRoZSBpbnB1dCBzdHJlYW0pIHdoZXJlIGNvbnRlbnQgaW5zZXJ0ZWQgdXNpbmcgPGNvZGUgaWQ9cHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtOmRvbS1kb2N1bWVudC13cml0ZS0yPjxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2RvbS1kb2N1bWVudC13cml0ZT5kb2N1bWVudC53cml0ZSgpPC9hPjwvY29kZT4gaXMgYWN0dWFsbHkgaW5zZXJ0ZWQuIFRoZSBpbnNlcnRpb24gcG9pbnQgaXMKKyAgcmVsYXRpdmUgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgaXQsIGl0IGlzIG5vdCBhbiBhYnNvbHV0ZSBvZmZzZXQgaW50bworICB0aGUgaW5wdXQgc3RyZWFtLiBJbml0aWFsbHksIHRoZSBpbnNlcnRpb24gcG9pbnQgaXMgdW5kZWZpbmVkLjwvcD4KKworICA8cD5UaGUgIkVPRiIgY2hhcmFjdGVyIGluIHRoZSB0YWJsZXMgYmVsb3cgaXMgYSBjb25jZXB0dWFsIGNoYXJhY3RlciByZXByZXNlbnRpbmcgdGhlIGVuZCBvZiB0aGUKKyAgPGEgaHJlZj0jaW5wdXQtc3RyZWFtIGlkPXByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbTppbnB1dC1zdHJlYW0tMz5pbnB1dCBzdHJlYW08L2E+LiBJZiB0aGUgcGFyc2VyIGlzIGEgPGEgaWQ9cHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtOnNjcmlwdC1jcmVhdGVkLXBhcnNlciBocmVmPXdlYmFwcGFwaXMuaHRtbCNzY3JpcHQtY3JlYXRlZC1wYXJzZXI+c2NyaXB0LWNyZWF0ZWQgcGFyc2VyPC9hPiwgdGhlbiB0aGUgZW5kIG9mCisgIHRoZSA8YSBocmVmPSNpbnB1dC1zdHJlYW0gaWQ9cHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtOmlucHV0LXN0cmVhbS00PmlucHV0IHN0cmVhbTwvYT4gaXMgcmVhY2hlZCB3aGVuIGFuIDxkZm4gaWQ9ZXhwbGljaXQtZW9mLWNoYXJhY3Rlcj5leHBsaWNpdCAiRU9GIiBjaGFyYWN0ZXI8L2Rmbj4gKGluc2VydGVkIGJ5CisgIHRoZSA8Y29kZSBpZD1wcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW06ZG9tLWRvY3VtZW50LWNsb3NlPjxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2RvbS1kb2N1bWVudC1jbG9zZT5kb2N1bWVudC5jbG9zZSgpPC9hPjwvY29kZT4gbWV0aG9kKSBpcyBjb25zdW1lZC4gT3RoZXJ3aXNlLCB0aGUKKyAgIkVPRiIgY2hhcmFjdGVyIGlzIG5vdCBhIHJlYWwgY2hhcmFjdGVyIGluIHRoZSBzdHJlYW0sIGJ1dCByYXRoZXIgdGhlIGxhY2sgb2YgYW55IGZ1cnRoZXIKKyAgY2hhcmFjdGVycy48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGUgaGFuZGxpbmcgb2YgVSswMDAwIE5VTEwgY2hhcmFjdGVycyB2YXJpZXMgYmFzZWQgb24gd2hlcmUgdGhlIGNoYXJhY3RlcnMgYXJlCisgIGZvdW5kLiBJbiBnZW5lcmFsLCB0aGV5IGFyZSBpZ25vcmVkIGV4Y2VwdCB3aGVyZSBkb2luZyBzbyBjb3VsZCBwbGF1c2libHkgaW50cm9kdWNlIGFuIGF0dGFjaworICB2ZWN0b3IuIFRoaXMgaGFuZGxpbmcgaXMsIGJ5IG5lY2Vzc2l0eSwgc3ByZWFkIGFjcm9zcyBib3RoIHRoZSB0b2tlbml6YXRpb24gc3RhZ2UgYW5kIHRoZSB0cmVlCisgIGNvbnN0cnVjdGlvbiBzdGFnZS48L3A+CisKKworCisKKworCisgIDxoNCBpZD1wYXJzZS1zdGF0ZT4xMi4yLjMgUGFyc2Ugc3RhdGU8L2g0PgorCisgIDxoNSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU+MTIuMi4zLjEgVGhlIGluc2VydGlvbiBtb2RlPC9oNT4KKworICA8cD5UaGUgPGRmbiBpZD1pbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvZGZuPiBpcyBhIHN0YXRlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlIHByaW1hcnkgb3BlcmF0aW9uIG9mIHRoZQorICB0cmVlIGNvbnN0cnVjdGlvbiBzdGFnZS48L3A+CisKKyAgPHA+SW5pdGlhbGx5LCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiBpcyAiPGEgaHJlZj0jdGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlPmluaXRpYWw8L2E+Ii4gSXQgY2FuIGNoYW5nZSB0byAiPGEgaHJlZj0jdGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU+YmVmb3JlCisgIGh0bWw8L2E+IiwgIjxhIGhyZWY9I3RoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlPmJlZm9yZSBoZWFkPC9hPiIsICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5oZWFkPmluIGhlYWQ8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdCBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0PmluIGhlYWQgbm9zY3JpcHQ8L2E+IiwgIjxhIGhyZWY9I3RoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZT5hZnRlciBoZWFkPC9hPiIsCisgICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmNkYXRhIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5jZGF0YT50ZXh0PC9hPiIsICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWludGFibGU+aW4gdGFibGU8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRhYmxldGV4dCBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWludGFibGV0ZXh0PmluIHRhYmxlIHRleHQ8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmNhcHRpb24gaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmNhcHRpb24+aW4gY2FwdGlvbjwvYT4iLCAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluY29sZ3JvdXAgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmNvbGdyb3VwPmluIGNvbHVtbgorICBncm91cDwvYT4iLCAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbnRib2R5PmluIHRhYmxlIGJvZHk8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRyIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW50cj5pbiByb3c8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRkIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW50ZD5pbgorICBjZWxsPC9hPiIsICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5zZWxlY3QgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbnNlbGVjdD5pbiBzZWxlY3Q8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU+aW4gc2VsZWN0IGluIHRhYmxlPC9hPiIsICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ZW1wbGF0ZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWludGVtcGxhdGU+aW4gdGVtcGxhdGU8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1hZnRlcmJvZHkgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1hZnRlcmJvZHk+YWZ0ZXIgYm9keTwvYT4iLAorICAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluZnJhbWVzZXQgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmZyYW1lc2V0PmluIGZyYW1lc2V0PC9hPiIsICI8YSBocmVmPSNwYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldCBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWFmdGVyZnJhbWVzZXQ+YWZ0ZXIgZnJhbWVzZXQ8L2E+IiwgIjxhIGhyZWY9I3RoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNlcnRpb24tbW9kZT5hZnRlcgorICBhZnRlciBib2R5PC9hPiIsIGFuZCAiPGEgaHJlZj0jdGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGU+YWZ0ZXIgYWZ0ZXIKKyAgZnJhbWVzZXQ8L2E+IiBkdXJpbmcgdGhlIGNvdXJzZSBvZiB0aGUgcGFyc2luZywgYXMgZGVzY3JpYmVkIGluIHRoZSA8YSBocmVmPSN0cmVlLWNvbnN0cnVjdGlvbiBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6dHJlZS1jb25zdHJ1Y3Rpb24+dHJlZQorICBjb25zdHJ1Y3Rpb248L2E+IHN0YWdlLiBUaGUgaW5zZXJ0aW9uIG1vZGUgYWZmZWN0cyBob3cgdG9rZW5zIGFyZSBwcm9jZXNzZWQgYW5kIHdoZXRoZXIgQ0RBVEEKKyAgc2VjdGlvbnMgYXJlIHN1cHBvcnRlZC48L3A+CisKKyAgPHA+U2V2ZXJhbCBvZiB0aGVzZSBtb2RlcywgbmFtZWx5ICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5oZWFkLTI+aW4gaGVhZDwvYT4iLCAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWluYm9keS0yPmluIGJvZHk8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRhYmxlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW50YWJsZS0yPmluCisgIHRhYmxlPC9hPiIsIGFuZCAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluc2VsZWN0IGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5zZWxlY3QtMj5pbiBzZWxlY3Q8L2E+IiwgYXJlIHNwZWNpYWwsIGluCisgIHRoYXQgdGhlIG90aGVyIG1vZGVzIGRlZmVyIHRvIHRoZW0gYXQgdmFyaW91cyB0aW1lcy4gV2hlbiB0aGUgYWxnb3JpdGhtIGJlbG93IHNheXMgdGhhdCB0aGUgdXNlcgorICBhZ2VudCBpcyB0byBkbyBzb21ldGhpbmcgIjxkZm4gaWQ9dXNpbmctdGhlLXJ1bGVzLWZvcj51c2luZyB0aGUgcnVsZXMgZm9yPC9kZm4+IHRoZSA8dmFyPm08L3Zhcj4gaW5zZXJ0aW9uCisgIG1vZGUiLCB3aGVyZSA8dmFyPm08L3Zhcj4gaXMgb25lIG9mIHRoZXNlIG1vZGVzLCB0aGUgdXNlciBhZ2VudCBtdXN0IHVzZSB0aGUgcnVsZXMKKyAgZGVzY3JpYmVkIHVuZGVyIHRoZSA8dmFyPm08L3Zhcj4gPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+J3Mgc2VjdGlvbiwgYnV0IG11c3QgbGVhdmUKKyAgdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPiB1bmNoYW5nZWQgdW5sZXNzIHRoZSBydWxlcyBpbiA8dmFyPm08L3Zhcj4gdGhlbXNlbHZlcworICBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS00Pmluc2VydGlvbiBtb2RlPC9hPiB0byBhIG5ldyB2YWx1ZS48L3A+CisKKyAgPHA+V2hlbiB0aGUgaW5zZXJ0aW9uIG1vZGUgaXMgc3dpdGNoZWQgdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmNkYXRhIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5jZGF0YS0yPnRleHQ8L2E+IiBvcgorICAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGV0ZXh0IGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW50YWJsZXRleHQtMj5pbiB0YWJsZSB0ZXh0PC9hPiIsIHRoZSA8ZGZuIGlkPW9yaWdpbmFsLWluc2VydGlvbi1tb2RlPm9yaWdpbmFsIGluc2VydGlvbgorICBtb2RlPC9kZm4+IGlzIGFsc28gc2V0LiBUaGlzIGlzIHRoZSBpbnNlcnRpb24gbW9kZSB0byB3aGljaCB0aGUgdHJlZSBjb25zdHJ1Y3Rpb24gc3RhZ2Ugd2lsbAorICByZXR1cm4uPC9wPgorCisgIDxwPlNpbWlsYXJseSwgdG8gcGFyc2UgbmVzdGVkIDxjb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtdGVtcGxhdGUtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS10ZW1wbGF0ZS1lbGVtZW50PnRlbXBsYXRlPC9hPjwvY29kZT4gZWxlbWVudHMsIGEgPGRmbiBpZD1zdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXM+c3RhY2sgb2YgdGVtcGxhdGUgaW5zZXJ0aW9uCisgIG1vZGVzPC9kZm4+IGlzIHVzZWQuIEl0IGlzIGluaXRpYWxseSBlbXB0eS4gVGhlIDxkZm4gaWQ9Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZT5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9kZm4+IGlzIHRoZQorICBpbnNlcnRpb24gbW9kZSB0aGF0IHdhcyBtb3N0IHJlY2VudGx5IGFkZGVkIHRvIHRoZSA8YSBocmVmPSNzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnN0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2Rlcz5zdGFjayBvZiB0ZW1wbGF0ZSBpbnNlcnRpb24gbW9kZXM8L2E+LgorICBUaGUgYWxnb3JpdGhtcyBpbiB0aGUgc2VjdGlvbnMgYmVsb3cgd2lsbCA8aT5wdXNoPC9pPiBpbnNlcnRpb24gbW9kZXMgb250byB0aGlzIHN0YWNrLCBtZWFuaW5nCisgIHRoYXQgdGhlIHNwZWNpZmllZCBpbnNlcnRpb24gbW9kZSBpcyB0byBiZSBhZGRlZCB0byB0aGUgc3RhY2ssIGFuZCA8aT5wb3A8L2k+IGluc2VydGlvbiBtb2RlcyBmcm9tCisgIHRoZSBzdGFjaywgd2hpY2ggbWVhbnMgdGhhdCB0aGUgbW9zdCByZWNlbnRseSBhZGRlZCBpbnNlcnRpb24gbW9kZSBtdXN0IGJlIHJlbW92ZWQgZnJvbSB0aGUKKyAgc3RhY2suPC9wPgorCisgIDxocj4KKworICA8cD5XaGVuIHRoZSBzdGVwcyBiZWxvdyByZXF1aXJlIHRoZSBVQSB0byA8ZGZuIGlkPXJlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5PnJlc2V0IHRoZSBpbnNlcnRpb24gbW9kZSBhcHByb3ByaWF0ZWx5PC9kZm4+LCBpdAorICBtZWFucyB0aGUgVUEgbXVzdCBmb2xsb3cgdGhlc2Ugc3RlcHM6PC9wPgorCisgIDxvbD48bGk+PHA+TGV0IDx2YXI+bGFzdDwvdmFyPiBiZSBmYWxzZS48bGk+PHA+TGV0IDx2YXI+bm9kZTwvdmFyPiBiZSB0aGUgbGFzdCBub2RlIGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4KKyAgIGVsZW1lbnRzPC9hPi48bGk+PHA+PGk+TG9vcDwvaT46IElmIDx2YXI+bm9kZTwvdmFyPiBpcyB0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgc3RhY2sgb2Ygb3BlbiBlbGVtZW50cywKKyAgIHRoZW4gc2V0IDx2YXI+bGFzdDwvdmFyPiB0byB0cnVlLCBhbmQsIGlmIHRoZSBwYXJzZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBhcyBwYXJ0IG9mCisgICB0aGUgPGEgaHJlZj0jaHRtbC1mcmFnbWVudC1wYXJzaW5nLWFsZ29yaXRobSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6aHRtbC1mcmFnbWVudC1wYXJzaW5nLWFsZ29yaXRobT5IVE1MIGZyYWdtZW50IHBhcnNpbmcgYWxnb3JpdGhtPC9hPiAoPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6ZnJhZ21lbnQtY2FzZT5mcmFnbWVudCBjYXNlPC9hPiksIHNldCA8dmFyPm5vZGU8L3Zhcj4gdG8gdGhlIDx2YXIgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PjxhIGhyZWY9I2NvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PmNvbnRleHQ8L2E+PC92YXI+CisgICBlbGVtZW50LjxsaT4KKworICAgIDxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyBhIDxjb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtc2VsZWN0LWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1zZWxlY3QtZWxlbWVudD5zZWxlY3Q8L2E+PC9jb2RlPiBlbGVtZW50LCBydW4gdGhlc2Ugc3Vic3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD5JZiA8dmFyPmxhc3Q8L3Zhcj4gaXMgdHJ1ZSwganVtcCB0byB0aGUgc3RlcCBiZWxvdyBsYWJlbGVkCisgICAgIDxpPmRvbmU8L2k+LjxsaT48cD5MZXQgPHZhcj5hbmNlc3RvcjwvdmFyPiBiZSA8dmFyPm5vZGU8L3Zhcj4uPGxpPjxwPjxpPkxvb3A8L2k+OiBJZiA8dmFyPmFuY2VzdG9yPC92YXI+IGlzIHRoZSBmaXJzdCBub2RlIGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2YKKyAgICAgb3BlbiBlbGVtZW50czwvYT4sIGp1bXAgdG8gdGhlIHN0ZXAgYmVsb3cgbGFiZWxlZCA8aT5kb25lPC9pPi48bGk+PHA+TGV0IDx2YXI+YW5jZXN0b3I8L3Zhcj4gYmUgdGhlIG5vZGUgYmVmb3JlIDx2YXI+YW5jZXN0b3I8L3Zhcj4gaW4gdGhlCisgICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48bGk+PHA+SWYgPHZhcj5hbmNlc3RvcjwvdmFyPiBpcyBhIDxjb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtdGVtcGxhdGUtZWxlbWVudC0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiBub2RlLCBqdW1wIHRvIHRoZSBzdGVwIGJlbG93CisgICAgIGxhYmVsZWQgPGk+ZG9uZTwvaT4uPGxpPjxwPklmIDx2YXI+YW5jZXN0b3I8L3Zhcj4gaXMgYSA8Y29kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6dGhlLXRhYmxlLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+IG5vZGUsIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTU+aW5zZXJ0aW9uCisgICAgIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlLTI+aW4gc2VsZWN0IGluIHRhYmxlPC9hPiIgYW5kCisgICAgIGFib3J0IHRoZXNlIHN0ZXBzLjxsaT48cD5KdW1wIGJhY2sgdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5sb29wPC9pPi48bGk+PHA+PGk+RG9uZTwvaT46IFN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTY+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5zZWxlY3QgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbnNlbGVjdC0zPmluIHNlbGVjdDwvYT4iIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy48L29sPgorCisgICA8bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS10ZC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRkLWVsZW1lbnQ+dGQ8L2E+PC9jb2RlPiBvciA8Y29kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6dGhlLXRoLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+IGVsZW1lbnQgYW5kIDx2YXI+bGFzdDwvdmFyPiBpcyBmYWxzZSwgdGhlbiBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS03Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGQgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbnRkLTI+aW4gY2VsbDwvYT4iIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy48bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS10ci1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTg+aW5zZXJ0aW9uCisgICBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludHIgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbnRyLTI+aW4gcm93PC9hPiIgYW5kIGFib3J0IHRoZXNlCisgICBzdGVwcy48bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS10Ym9keS1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS10aGVhZC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRoZWFkLWVsZW1lbnQ+dGhlYWQ8L2E+PC9jb2RlPiwgb3IKKyAgIDxjb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtdGZvb3QtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Zm9vdC1lbGVtZW50PnRmb290PC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS05Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbnRib2R5LTI+aW4gdGFibGUgYm9keTwvYT4iIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy48bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS1jYXB0aW9uLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtY2FwdGlvbi1lbGVtZW50PmNhcHRpb248L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHN3aXRjaCB0aGUKKyAgIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0xMD5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmNhcHRpb24gaWQ9dGhlLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmNhcHRpb24tMj5pbiBjYXB0aW9uPC9hPiIgYW5kCisgICBhYm9ydCB0aGVzZSBzdGVwcy48bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS1jb2xncm91cC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNvbGdyb3VwLWVsZW1lbnQ+Y29sZ3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHN3aXRjaCB0aGUKKyAgIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0xMT5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmNvbGdyb3VwIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5jb2xncm91cC0yPmluIGNvbHVtbgorICAgZ3JvdXA8L2E+IiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuPGxpPjxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyBhIDxjb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtdGFibGUtZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHN3aXRjaCB0aGUKKyAgIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0xMj5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRhYmxlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW50YWJsZS0zPmluIHRhYmxlPC9hPiIgYW5kIGFib3J0CisgICB0aGVzZSBzdGVwcy48bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS10ZW1wbGF0ZS1lbGVtZW50LTM+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gc3dpdGNoIHRoZQorICAgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTEzPmluc2VydGlvbiBtb2RlPC9hPiB0byB0aGUgPGEgaHJlZj0jY3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZT5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9hPiBhbmQgYWJvcnQgdGhlc2UKKyAgIHN0ZXBzLjxsaT48cD5JZiA8dmFyPm5vZGU8L3Zhcj4gaXMgYSA8Y29kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6dGhlLWhlYWQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+IGVsZW1lbnQgYW5kIDx2YXI+bGFzdDwvdmFyPiBpcworICAgZmFsc2UsIHRoZW4gc3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtMTQ+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5oZWFkLTM+aW4KKyAgIGhlYWQ8L2E+IiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuPGxpPjxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyBhIDxjb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtYm9keS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiBzd2l0Y2ggdGhlCisgICA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtMTU+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5ib2R5LTM+aW4gYm9keTwvYT4iIGFuZCBhYm9ydAorICAgdGhlc2Ugc3RlcHMuPGxpPjxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyBhIDxjb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpmcmFtZXNldD48YSBocmVmPW9ic29sZXRlLmh0bWwjZnJhbWVzZXQ+ZnJhbWVzZXQ8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHN3aXRjaCB0aGUKKyAgIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0xNj5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmZyYW1lc2V0IGlkPXRoZS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5mcmFtZXNldC0yPmluIGZyYW1lc2V0PC9hPiIgYW5kCisgICBhYm9ydCB0aGVzZSBzdGVwcy4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmZyYWdtZW50LWNhc2UtMj5mcmFnbWVudCBjYXNlPC9hPik8bGk+CisKKyAgICA8cD5JZiA8dmFyPm5vZGU8L3Zhcj4gaXMgYW4gPGNvZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS1odG1sLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50LCBydW4gdGhlc2Ugc3Vic3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jaGVhZC1lbGVtZW50LXBvaW50ZXIgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmhlYWQtZWxlbWVudC1wb2ludGVyPjxjb2RlPmhlYWQ8L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4gaXMgbnVsbCwgc3dpdGNoIHRoZQorICAgICA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtMTc+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSN0aGUtYmVmb3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOnRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZS0yPmJlZm9yZSBoZWFkPC9hPiIKKyAgICAgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLiAoPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6ZnJhZ21lbnQtY2FzZS0zPmZyYWdtZW50IGNhc2U8L2E+KTxsaT48cD5PdGhlcndpc2UsIHRoZSA8YSBocmVmPSNoZWFkLWVsZW1lbnQtcG9pbnRlciBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6aGVhZC1lbGVtZW50LXBvaW50ZXItMj48Y29kZT5oZWFkPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+IGlzIG5vdCBudWxsLCBzd2l0Y2ggdGhlCisgICAgIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0xOD5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3RoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTp0aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZS0yPmFmdGVyIGhlYWQ8L2E+IiBhbmQKKyAgICAgYWJvcnQgdGhlc2Ugc3RlcHMuPC9vbD4KKworICAgPGxpPjxwPklmIDx2YXI+bGFzdDwvdmFyPiBpcyB0cnVlLCB0aGVuIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTE5Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWluYm9keS00PmluIGJvZHk8L2E+IiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuICg8YSBocmVmPSNmcmFnbWVudC1jYXNlIGlkPXRoZS1pbnNlcnRpb24tbW9kZTpmcmFnbWVudC1jYXNlLTQ+ZnJhZ21lbnQKKyAgIGNhc2U8L2E+KTxsaT48cD5MZXQgPHZhcj5ub2RlPC92YXI+IG5vdyBiZSB0aGUgbm9kZSBiZWZvcmUgPHZhcj5ub2RlPC92YXI+IGluIHRoZQorICAgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD10aGUtaW5zZXJ0aW9uLW1vZGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjxsaT48cD5SZXR1cm4gdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5sb29wPC9pPi48L29sPgorCisKKyAgPGg1IGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzPjEyLjIuMy4yIFRoZSBzdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9oNT4KKworICA8cD5Jbml0aWFsbHksIHRoZSA8ZGZuIGlkPXN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvZGZuPiBpcyBlbXB0eS4gVGhlIHN0YWNrIGdyb3dzIGRvd253YXJkczsgdGhlCisgIHRvcG1vc3Qgbm9kZSBvbiB0aGUgc3RhY2sgaXMgdGhlIGZpcnN0IG9uZSBhZGRlZCB0byB0aGUgc3RhY2ssIGFuZCB0aGUgYm90dG9tbW9zdCBub2RlIG9mIHRoZQorICBzdGFjayBpcyB0aGUgbW9zdCByZWNlbnRseSBhZGRlZCBub2RlIGluIHRoZSBzdGFjayAobm90d2l0aHN0YW5kaW5nIHdoZW4gdGhlIHN0YWNrIGlzIG1hbmlwdWxhdGVkCisgIGluIGEgcmFuZG9tIGFjY2VzcyBmYXNoaW9uIGFzIHBhcnQgb2YgPGEgaHJlZj0jYWRvcHRpb25BZ2VuY3k+dGhlIGhhbmRsaW5nIGZvciBtaXNuZXN0ZWQKKyAgdGFnczwvYT4pLjwvcD4KKworICA8cCBjbGFzcz1ub3RlPlRoZSAiPGEgaHJlZj0jdGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZT5iZWZvcmUgaHRtbDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmluc2VydGlvbi1tb2RlPmluc2VydGlvbgorICBtb2RlPC9hPiBjcmVhdGVzIHRoZSA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaHRtbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gcm9vdCBlbGVtZW50IG5vZGUsIHdoaWNoIGlzIHRoZW4gYWRkZWQgdG8gdGhlIHN0YWNrLjwvcD4KKworICA8cCBjbGFzcz1ub3RlPkluIHRoZSA8YSBocmVmPSNmcmFnbWVudC1jYXNlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmZyYWdtZW50LWNhc2U+ZnJhZ21lbnQgY2FzZTwvYT4sIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gaXMKKyAgaW5pdGlhbGlzZWQgdG8gY29udGFpbiBhbiA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaHRtbC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IHRoYXQgaXMgY3JlYXRlZCBhcyBwYXJ0IG9mIDxhIGhyZWY9I2h0bWwtZnJhZ21lbnQtcGFyc2luZy1hbGdvcml0aG0gaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6aHRtbC1mcmFnbWVudC1wYXJzaW5nLWFsZ29yaXRobT50aGF0IGFsZ29yaXRobTwvYT4uIChUaGUgPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpmcmFnbWVudC1jYXNlLTI+ZnJhZ21lbnQgY2FzZTwvYT4gc2tpcHMgdGhlCisgICI8YSBocmVmPSN0aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlLTI+YmVmb3JlIGh0bWw8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czppbnNlcnRpb24tbW9kZS0yPmluc2VydGlvbiBtb2RlPC9hPi4pPC9wPgorCisgIDxwPlRoZSA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaHRtbC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBub2RlLCBob3dldmVyIGl0IGlzIGNyZWF0ZWQsIGlzIHRoZSB0b3Btb3N0IG5vZGUgb2YgdGhlIHN0YWNrLiBJdCBvbmx5CisgIGdldHMgcG9wcGVkIG9mZiB0aGUgc3RhY2sgd2hlbiB0aGUgcGFyc2VyIDxhIGhyZWY9I3N0b3AtcGFyc2luZyBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpzdG9wLXBhcnNpbmc+ZmluaXNoZXM8L2E+LjwvcD4KKworICA8cD5UaGUgPGRmbiBpZD1jdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9kZm4+IGlzIHRoZSBib3R0b21tb3N0IG5vZGUgaW4gdGhpcyA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMj5zdGFjayBvZiBvcGVuCisgIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgPHA+VGhlIDxkZm4gaWQ9YWRqdXN0ZWQtY3VycmVudC1ub2RlPmFkanVzdGVkIGN1cnJlbnQgbm9kZTwvZGZuPiBpcyB0aGUgPGkgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6Y29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQ+PGEgaHJlZj0jY29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQ+Y29udGV4dDwvYT48L2k+CisgIGVsZW1lbnQgaWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGhhcyBvbmx5IG9uZSBlbGVtZW50IGluIGl0IGFuZCB0aGUgcGFyc2VyIHdhcworICBjcmVhdGVkIGJ5IHRoZSA8YSBocmVmPSNodG1sLWZyYWdtZW50LXBhcnNpbmctYWxnb3JpdGhtIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtZnJhZ21lbnQtcGFyc2luZy1hbGdvcml0aG0tMj5IVE1MIGZyYWdtZW50IHBhcnNpbmcgYWxnb3JpdGhtPC9hPjsgb3RoZXJ3aXNlLCB0aGUgPGEgaHJlZj0jYWRqdXN0ZWQtY3VycmVudC1ub2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmFkanVzdGVkLWN1cnJlbnQtbm9kZT5hZGp1c3RlZCBjdXJyZW50CisgIG5vZGU8L2E+IGlzIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6Y3VycmVudC1ub2RlPmN1cnJlbnQgbm9kZTwvYT4uPC9wPgorCisgIDxwPkVsZW1lbnRzIGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBmYWxsIGludG8gdGhlIGZvbGxvd2luZyBjYXRlZ29yaWVzOjwvcD4KKworICA8ZGw+PGR0PjxkZm4gaWQ9c3BlY2lhbD5TcGVjaWFsPC9kZm4+PGRkPjxwPlRoZSBmb2xsb3dpbmcgZWxlbWVudHMgaGF2ZSB2YXJ5aW5nIGxldmVscyBvZiBzcGVjaWFsIHBhcnNpbmcgcnVsZXM6IEhUTUwncworICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWFkZHJlc3MtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hZGRyZXNzLWVsZW1lbnQ+YWRkcmVzczwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtYXBwbGV0LWVsZW1lbnQ+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI3RoZS1hcHBsZXQtZWxlbWVudD5hcHBsZXQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWFyZWEtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtYXJlYS1lbGVtZW50PmFyZWE8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWFydGljbGUtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hcnRpY2xlLWVsZW1lbnQ+YXJ0aWNsZTwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWFzaWRlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYXNpZGUtZWxlbWVudD5hc2lkZTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtYmFzZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJhc2UtZWxlbWVudD5iYXNlPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmJhc2Vmb250PjxhIGhyZWY9b2Jzb2xldGUuaHRtbCNiYXNlZm9udD5iYXNlZm9udDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpiZ3NvdW5kPjxhIGhyZWY9b2Jzb2xldGUuaHRtbCNiZ3NvdW5kPmJnc291bmQ8L2E+PC9jb2RlPiwKKyAgIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1ibG9ja3F1b3RlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYmxvY2txdW90ZS1lbGVtZW50PmJsb2NrcXVvdGU8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWJvZHktZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtYnItZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ici1lbGVtZW50PmJyPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1idXR0b24tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWJ1dHRvbi1lbGVtZW50PmJ1dHRvbjwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWNhcHRpb24tZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jYXB0aW9uLWVsZW1lbnQ+Y2FwdGlvbjwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpjZW50ZXI+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI2NlbnRlcj5jZW50ZXI8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWNvbC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNvbC1lbGVtZW50PmNvbDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtY29sZ3JvdXAtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jb2xncm91cC1lbGVtZW50PmNvbGdyb3VwPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtZGQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZC1lbGVtZW50PmRkPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1kZXRhaWxzLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1kZXRhaWxzLWVsZW1lbnQ+ZGV0YWlsczwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpkaXI+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI2Rpcj5kaXI8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWRpdi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWRpdi1lbGVtZW50PmRpdjwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtZGwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kbC1lbGVtZW50PmRsPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtZHQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kdC1lbGVtZW50PmR0PC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1lbWJlZC1lbGVtZW50PjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI3RoZS1lbWJlZC1lbGVtZW50PmVtYmVkPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1maWVsZHNldC1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtZmllbGRzZXQtZWxlbWVudD5maWVsZHNldDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtZmlnY2FwdGlvbi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWZpZ2NhcHRpb24tZWxlbWVudD5maWdjYXB0aW9uPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtZmlndXJlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZmlndXJlLWVsZW1lbnQ+ZmlndXJlPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1mb290ZXItZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1mb290ZXItZWxlbWVudD5mb290ZXI8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWZvcm0tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudD5mb3JtPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmZyYW1lPjxhIGhyZWY9b2Jzb2xldGUuaHRtbCNmcmFtZT5mcmFtZTwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6ZnJhbWVzZXQ+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI2ZyYW1lc2V0PmZyYW1lc2V0PC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz5oMTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHMtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz5oMjwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHMtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz5oMzwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHMtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cz5oNDwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzLTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHM+aDU8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzLTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaDEsLWgyLC1oMywtaDQsLWg1LC1hbmQtaDYtZWxlbWVudHM+aDY8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWhlYWQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaGVhZGVyLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZGVyLWVsZW1lbnQ+aGVhZGVyPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1oZ3JvdXAtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZ3JvdXAtZWxlbWVudD5oZ3JvdXA8L2E+PC9jb2RlPiwKKyAgIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1oci1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhyLWVsZW1lbnQ+aHI8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWh0bWwtZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1pZnJhbWUtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtaWZyYW1lLWVsZW1lbnQ+aWZyYW1lPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaW1nLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLWltZy1lbGVtZW50PmltZzwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaW5wdXQtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQ+aW5wdXQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6aXNpbmRleC0yPjxhIGhyZWY9b2Jzb2xldGUuaHRtbCNpc2luZGV4LTI+aXNpbmRleDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtbGktZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1saS1lbGVtZW50PmxpPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1saW5rLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbGluay1lbGVtZW50Pmxpbms8L2E+PC9jb2RlPiwKKyAgIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmxpc3Rpbmc+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI2xpc3Rpbmc+bGlzdGluZzwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtbWFpbi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLW1haW4tZWxlbWVudD5tYWluPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1tYXJxdWVlLWVsZW1lbnQtMj48YSBocmVmPW9ic29sZXRlLmh0bWwjdGhlLW1hcnF1ZWUtZWxlbWVudC0yPm1hcnF1ZWU8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLW1lbnUtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW1lbnUtZWxlbWVudD5tZW51PC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtbWVudWl0ZW0tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW1lbnVpdGVtLWVsZW1lbnQ+bWVudWl0ZW08L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLW1ldGEtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1tZXRhLWVsZW1lbnQ+bWV0YTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtbmF2LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbmF2LWVsZW1lbnQ+bmF2PC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm5vZW1iZWQ+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI25vZW1iZWQ+bm9lbWJlZDwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6bm9mcmFtZXM+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI25vZnJhbWVzPm5vZnJhbWVzPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1ub3NjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLW5vc2NyaXB0LWVsZW1lbnQ+bm9zY3JpcHQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLW9iamVjdC1lbGVtZW50PjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI3RoZS1vYmplY3QtZWxlbWVudD5vYmplY3Q8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLW9sLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtb2wtZWxlbWVudD5vbDwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXAtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtcGFyYW0tZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtcGFyYW0tZWxlbWVudD5wYXJhbTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpwbGFpbnRleHQ+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI3BsYWludGV4dD5wbGFpbnRleHQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXByZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXByZS1lbGVtZW50PnByZTwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXNjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtc2VjdGlvbi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXNlY3Rpb24tZWxlbWVudD5zZWN0aW9uPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1zZWxlY3QtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLXNlbGVjdC1lbGVtZW50PnNlbGVjdDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtc291cmNlLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLXNvdXJjZS1lbGVtZW50PnNvdXJjZTwvYT48L2NvZGU+LAorICAgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXN0eWxlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtc3R5bGUtZWxlbWVudD5zdHlsZTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtc3VtbWFyeS1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtc3VtbWFyeS1lbGVtZW50PnN1bW1hcnk8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRhYmxlLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtdGJvZHktZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtdGQtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ZC1lbGVtZW50PnRkPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS10ZW1wbGF0ZS1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRleHRhcmVhLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS10ZXh0YXJlYS1lbGVtZW50PnRleHRhcmVhPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS10Zm9vdC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRmb290LWVsZW1lbnQ+dGZvb3Q8L2E+PC9jb2RlPiwKKyAgIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS10aC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRoLWVsZW1lbnQ+dGg8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRoZWFkLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGhlYWQtZWxlbWVudD50aGVhZDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtdGl0bGUtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS10aXRsZS1lbGVtZW50PnRpdGxlPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS10ci1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRyYWNrLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLXRyYWNrLWVsZW1lbnQ+dHJhY2s8L2E+PC9jb2RlPiwKKyAgIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS11bC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXVsLWVsZW1lbnQ+dWw8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXdici1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXdici1lbGVtZW50PndicjwvYT48L2NvZGU+LCBhbmQgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6eG1wPjxhIGhyZWY9b2Jzb2xldGUuaHRtbCN4bXA+eG1wPC9hPjwvY29kZT47IE1hdGhNTCdzIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm1hdGg6bWk+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjbWF0aDptaT5taTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czptYXRoOm1vPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6bW8+bW88L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6bWF0aDptbj48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOm1uPm1uPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czptYXRoOm1zPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6bXM+bXM8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6bWF0aDptdGV4dD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOm10ZXh0Pm10ZXh0PC9hPjwvY29kZT4sIGFuZCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czptYXRoOmFubm90YXRpb24teG1sPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6YW5ub3RhdGlvbi14bWw+YW5ub3RhdGlvbi14bWw8L2E+PC9jb2RlPjsgYW5kIFNWRydzIDxjb2RlPmZvcmVpZ25PYmplY3Q8L2NvZGU+LCA8Y29kZT5kZXNjPC9jb2RlPiwgYW5kIDxjb2RlPnRpdGxlPC9jb2RlPi48ZHQ+PGRmbiBpZD1mb3JtYXR0aW5nPkZvcm1hdHRpbmc8L2Rmbj48ZGQ+PHA+VGhlIGZvbGxvd2luZyBIVE1MIGVsZW1lbnRzIGFyZSB0aG9zZSB0aGF0IGVuZCB1cCBpbiB0aGUgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzPmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcKKyAgIGVsZW1lbnRzPC9hPjogPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWEtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hLWVsZW1lbnQ+YTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtYi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmJpZz48YSBocmVmPW9ic29sZXRlLmh0bWwjYmlnPmJpZzwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtY29kZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWNvZGUtZWxlbWVudD5jb2RlPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtZW0tZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1lbS1lbGVtZW50PmVtPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmZvbnQ+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI2ZvbnQ+Zm9udDwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWktZWxlbWVudD5pPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm5vYnI+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI25vYnI+bm9icjwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtcy1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXMtZWxlbWVudD5zPC9hPjwvY29kZT4sCisgICA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtc21hbGwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1zbWFsbC1lbGVtZW50PnNtYWxsPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnN0cmlrZT48YSBocmVmPW9ic29sZXRlLmh0bWwjc3RyaWtlPnN0cmlrZTwvYT48L2NvZGU+LCA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtc3Ryb25nLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtc3Ryb25nLWVsZW1lbnQ+c3Ryb25nPC9hPjwvY29kZT4sIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnR0PjxhIGhyZWY9b2Jzb2xldGUuaHRtbCN0dD50dDwvYT48L2NvZGU+LCBhbmQKKyAgIDxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS11LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtdS1lbGVtZW50PnU8L2E+PC9jb2RlPi48ZHQ+PGRmbiBpZD1vcmRpbmFyeT5PcmRpbmFyeTwvZGZuPjxkZD48cD5BbGwgb3RoZXIgZWxlbWVudHMgZm91bmQgd2hpbGUgcGFyc2luZyBhbiBIVE1MIGRvY3VtZW50LjwvZGw+CisKKyAgPHA+VGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy01PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGlzIHNhaWQgdG8gPGRmbiBpZD1oYXMtYW4tZWxlbWVudC1pbi10aGUtc3BlY2lmaWMtc2NvcGU+aGF2ZSBhbiBlbGVtZW50IDx2YXI+dGFyZ2V0IG5vZGU8L3Zhcj4gaW4gYSBzcGVjaWZpYyBzY29wZTwvZGZuPiBjb25zaXN0aW5nIG9mIGEKKyAgbGlzdCBvZiBlbGVtZW50IHR5cGVzIDx2YXI+bGlzdDwvdmFyPiB3aGVuIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtIHRlcm1pbmF0ZXMgaW4gYSBtYXRjaAorICBzdGF0ZTo8L3A+CisKKyAgPG9sPjxsaT48cD5Jbml0aWFsaXNlIDx2YXI+bm9kZTwvdmFyPiB0byBiZSB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmN1cnJlbnQtbm9kZS0yPmN1cnJlbnQgbm9kZTwvYT4gKHRoZSBib3R0b21tb3N0CisgICBub2RlIG9mIHRoZSBzdGFjaykuPGxpPjxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyB0aGUgdGFyZ2V0IG5vZGUsIHRlcm1pbmF0ZSBpbiBhIG1hdGNoIHN0YXRlLjxsaT48cD5PdGhlcndpc2UsIGlmIDx2YXI+bm9kZTwvdmFyPiBpcyBvbmUgb2YgdGhlIGVsZW1lbnQgdHlwZXMgaW4gPHZhcj5saXN0PC92YXI+LCB0ZXJtaW5hdGUgaW4gYSBmYWlsdXJlIHN0YXRlLjxsaT48cD5PdGhlcndpc2UsIHNldCA8dmFyPm5vZGU8L3Zhcj4gdG8gdGhlIHByZXZpb3VzIGVudHJ5IGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNj5zdGFjayBvZiBvcGVuCisgICBlbGVtZW50czwvYT4gYW5kIHJldHVybiB0byBzdGVwIDIuIChUaGlzIHdpbGwgbmV2ZXIgZmFpbCwgc2luY2UgdGhlIGxvb3Agd2lsbCBhbHdheXMgdGVybWluYXRlCisgICBpbiB0aGUgcHJldmlvdXMgc3RlcCBpZiB0aGUgdG9wIG9mIHRoZSBzdGFjayDigJQgYW4gPGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWh0bWwtZWxlbWVudC01PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCDigJQgaXMKKyAgIHJlYWNoZWQuKTwvb2w+CisKKyAgPHA+VGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy03PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGlzIHNhaWQgdG8gPGRmbiBpZD1oYXMtYW4tZWxlbWVudC1pbi1zY29wZT5oYXZlIGEKKyAgcGFydGljdWxhciBlbGVtZW50IGluIHNjb3BlPC9kZm4+IHdoZW4gaXQgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tdGhlLXNwZWNpZmljLXNjb3BlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmhhcy1hbi1lbGVtZW50LWluLXRoZS1zcGVjaWZpYy1zY29wZT5oYXMKKyAgdGhhdCBlbGVtZW50IGluIHRoZSBzcGVjaWZpYyBzY29wZTwvYT4gY29uc2lzdGluZyBvZiB0aGUgZm9sbG93aW5nIGVsZW1lbnQgdHlwZXM6PC9wPgorCisgIDx1bCBjbGFzcz1icmllZj48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWFwcGxldC1lbGVtZW50LTI+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI3RoZS1hcHBsZXQtZWxlbWVudD5hcHBsZXQ8L2E+PC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWNhcHRpb24tZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNhcHRpb24tZWxlbWVudD5jYXB0aW9uPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLWh0bWwtZWxlbWVudC02PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRhYmxlLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItNCBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRkLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ZC1lbGVtZW50PnRkPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItNSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRoLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10aC1lbGVtZW50PnRoPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItNiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLW1hcnF1ZWUtZWxlbWVudC0yLTI+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI3RoZS1tYXJxdWVlLWVsZW1lbnQtMj5tYXJxdWVlPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItNyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLW9iamVjdC1lbGVtZW50LTI+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLW9iamVjdC1lbGVtZW50Pm9iamVjdDwvYT48L2NvZGU+IGluIHRoZSA8YSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpodG1sLW5hbWVzcGFjZS0yLTggaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtbmFtZXNwYWNlLTI+SFRNTCBuYW1lc3BhY2U8L2E+PGxpPjxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS10ZW1wbGF0ZS1lbGVtZW50LTI+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGluIHRoZSA8YSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpodG1sLW5hbWVzcGFjZS0yLTkgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtbmFtZXNwYWNlLTI+SFRNTCBuYW1lc3BhY2U8L2E+PGxpPjxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm1hdGg6bWktMj48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOm1pPm1pPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm1hdGhtbC1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI21hdGhtbC1uYW1lc3BhY2U+TWF0aE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6bWF0aDptby0yPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6bW8+bW88L2E+PC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6bWF0aG1sLW5hbWVzcGFjZS0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNtYXRobWwtbmFtZXNwYWNlPk1hdGhNTCBuYW1lc3BhY2U8L2E+PGxpPjxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm1hdGg6bW4tMj48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOm1uPm1uPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm1hdGhtbC1uYW1lc3BhY2UtMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbWF0aG1sLW5hbWVzcGFjZT5NYXRoTUwgbmFtZXNwYWNlPC9hPjxsaT48Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czptYXRoOm1zLTI+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjbWF0aDptcz5tczwvYT48L2NvZGU+IGluIHRoZSA8YSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czptYXRobWwtbmFtZXNwYWNlLTQgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI21hdGhtbC1uYW1lc3BhY2U+TWF0aE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6bWF0aDptdGV4dC0yPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6bXRleHQ+bXRleHQ8L2E+PC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6bWF0aG1sLW5hbWVzcGFjZS01IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNtYXRobWwtbmFtZXNwYWNlPk1hdGhNTCBuYW1lc3BhY2U8L2E+PGxpPjxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm1hdGg6YW5ub3RhdGlvbi14bWwtMj48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOmFubm90YXRpb24teG1sPmFubm90YXRpb24teG1sPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOm1hdGhtbC1uYW1lc3BhY2UtNiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbWF0aG1sLW5hbWVzcGFjZT5NYXRoTUwgbmFtZXNwYWNlPC9hPjxsaT48Y29kZT5mb3JlaWduT2JqZWN0PC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6c3ZnLW5hbWVzcGFjZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3ZnLW5hbWVzcGFjZT5TVkcgbmFtZXNwYWNlPC9hPjxsaT48Y29kZT5kZXNjPC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6c3ZnLW5hbWVzcGFjZS0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzdmctbmFtZXNwYWNlPlNWRyBuYW1lc3BhY2U8L2E+PGxpPjxjb2RlPnRpdGxlPC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6c3ZnLW5hbWVzcGFjZS0zIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzdmctbmFtZXNwYWNlPlNWRyBuYW1lc3BhY2U8L2E+PC91bD4KKworICA8cD5UaGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTg+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gaXMgc2FpZCB0byA8ZGZuIGlkPWhhcy1hbi1lbGVtZW50LWluLWxpc3QtaXRlbS1zY29wZT5oYXZlIGEgcGFydGljdWxhciBlbGVtZW50IGluIGxpc3QgaXRlbSBzY29wZTwvZGZuPiB3aGVuIGl0IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRoZS1zcGVjaWZpYy1zY29wZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpoYXMtYW4tZWxlbWVudC1pbi10aGUtc3BlY2lmaWMtc2NvcGUtMj5oYXMgdGhhdCBlbGVtZW50IGluIHRoZSBzcGVjaWZpYyBzY29wZTwvYT4gY29uc2lzdGluZyBvZiB0aGUgZm9sbG93aW5nCisgIGVsZW1lbnQgdHlwZXM6PC9wPgorCisgIDx1bCBjbGFzcz1icmllZj48bGk+QWxsIHRoZSBlbGVtZW50IHR5cGVzIGxpc3RlZCBhYm92ZSBmb3IgdGhlIDxpIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmhhcy1hbi1lbGVtZW50LWluLXNjb3BlPjxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXNjb3BlPmhhcyBhbiBlbGVtZW50IGluIHNjb3BlPC9hPjwvaT4gYWxnb3JpdGhtLjxsaT48Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtb2wtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLW9sLWVsZW1lbnQ+b2w8L2E+PC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6aHRtbC1uYW1lc3BhY2UtMi0xMCBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXVsLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS11bC1lbGVtZW50PnVsPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItMTEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtbmFtZXNwYWNlLTI+SFRNTCBuYW1lc3BhY2U8L2E+PC91bD4KKworICA8cD5UaGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTk+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gaXMgc2FpZCB0byA8ZGZuIGlkPWhhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZT5oYXZlIGEgcGFydGljdWxhciBlbGVtZW50IGluIGJ1dHRvbiBzY29wZTwvZGZuPiB3aGVuIGl0IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRoZS1zcGVjaWZpYy1zY29wZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpoYXMtYW4tZWxlbWVudC1pbi10aGUtc3BlY2lmaWMtc2NvcGUtMz5oYXMgdGhhdCBlbGVtZW50IGluIHRoZSBzcGVjaWZpYyBzY29wZTwvYT4gY29uc2lzdGluZyBvZiB0aGUgZm9sbG93aW5nIGVsZW1lbnQKKyAgdHlwZXM6PC9wPgorCisgIDx1bCBjbGFzcz1icmllZj48bGk+QWxsIHRoZSBlbGVtZW50IHR5cGVzIGxpc3RlZCBhYm92ZSBmb3IgdGhlIDxpIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmhhcy1hbi1lbGVtZW50LWluLXNjb3BlLTI+PGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGU+aGFzIGFuIGVsZW1lbnQgaW4gc2NvcGU8L2E+PC9pPiBhbGdvcml0aG0uPGxpPjxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1idXR0b24tZWxlbWVudC0yPjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtYnV0dG9uLWVsZW1lbnQ+YnV0dG9uPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItMTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtbmFtZXNwYWNlLTI+SFRNTCBuYW1lc3BhY2U8L2E+PC91bD4KKworICA8cD5UaGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTEwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGlzIHNhaWQgdG8gPGRmbiBpZD1oYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZT5oYXZlIGEgcGFydGljdWxhciBlbGVtZW50IGluIHRhYmxlIHNjb3BlPC9kZm4+IHdoZW4gaXQgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tdGhlLXNwZWNpZmljLXNjb3BlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmhhcy1hbi1lbGVtZW50LWluLXRoZS1zcGVjaWZpYy1zY29wZS00PmhhcyB0aGF0IGVsZW1lbnQgaW4gdGhlIHNwZWNpZmljIHNjb3BlPC9hPiBjb25zaXN0aW5nIG9mIHRoZSBmb2xsb3dpbmcgZWxlbWVudAorICB0eXBlczo8L3A+CisKKyAgPHVsIGNsYXNzPWJyaWVmPjxsaT48Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtaHRtbC1lbGVtZW50LTc+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6aHRtbC1uYW1lc3BhY2UtMi0xMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48bGk+PGNvZGUgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6dGhlLXRhYmxlLWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmh0bWwtbmFtZXNwYWNlLTItMTQgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtbmFtZXNwYWNlLTI+SFRNTCBuYW1lc3BhY2U8L2E+PGxpPjxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS10ZW1wbGF0ZS1lbGVtZW50LTM+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGluIHRoZSA8YSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpodG1sLW5hbWVzcGFjZS0yLTE1IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLW5hbWVzcGFjZS0yPkhUTUwgbmFtZXNwYWNlPC9hPjwvdWw+CisKKyAgPHA+VGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0xMT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBpcyBzYWlkIHRvIDxkZm4gaWQ9aGFzLWFuLWVsZW1lbnQtaW4tc2VsZWN0LXNjb3BlPmhhdmUgYSBwYXJ0aWN1bGFyIGVsZW1lbnQgaW4gc2VsZWN0IHNjb3BlPC9kZm4+IHdoZW4gaXQgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tdGhlLXNwZWNpZmljLXNjb3BlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOmhhcy1hbi1lbGVtZW50LWluLXRoZS1zcGVjaWZpYy1zY29wZS01PmhhcyB0aGF0IGVsZW1lbnQgaW4gdGhlIHNwZWNpZmljIHNjb3BlPC9hPiBjb25zaXN0aW5nIG9mIGFsbCBlbGVtZW50IHR5cGVzCisgIDxlbT5leGNlcHQ8L2VtPiB0aGUgZm9sbG93aW5nOjwvcD4KKworICA8dWwgY2xhc3M9YnJpZWY+PGxpPjxjb2RlIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnRoZS1vcHRncm91cC1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudD5vcHRncm91cDwvYT48L2NvZGU+IGluIHRoZSA8YSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpodG1sLW5hbWVzcGFjZS0yLTE2IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLW5hbWVzcGFjZS0yPkhUTUwgbmFtZXNwYWNlPC9hPjxsaT48Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czp0aGUtb3B0aW9uLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1vcHRpb24tZWxlbWVudD5vcHRpb248L2E+PC9jb2RlPiBpbiB0aGUgPGEgaWQ9dGhlLXN0YWNrLW9mLW9wZW4tZWxlbWVudHM6aHRtbC1uYW1lc3BhY2UtMi0xNyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48L3VsPgorCisgIDxwPk5vdGhpbmcgaGFwcGVucyBpZiBhdCBhbnkgdGltZSBhbnkgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1zdGFjay1vZi1vcGVuLWVsZW1lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4KKyAgYXJlIG1vdmVkIHRvIGEgbmV3IGxvY2F0aW9uIGluLCBvciByZW1vdmVkIGZyb20sIHRoZSA8Y29kZSBpZD10aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50czpkb2N1bWVudD48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gdHJlZS4gSW4gcGFydGljdWxhciwKKyAgdGhlIHN0YWNrIGlzIG5vdCBjaGFuZ2VkIGluIHRoaXMgc2l0dWF0aW9uLiBUaGlzIGNhbiBjYXVzZSwgYW1vbmdzdCBvdGhlciBzdHJhbmdlIGVmZmVjdHMsIGNvbnRlbnQKKyAgdG8gYmUgYXBwZW5kZWQgdG8gbm9kZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBET00uPC9wPgorCisgIDxwIGNsYXNzPW5vdGU+SW4gc29tZSBjYXNlcyAobmFtZWx5LCB3aGVuIDxhIGhyZWY9I2Fkb3B0aW9uQWdlbmN5PmNsb3NpbmcgbWlzbmVzdGVkIGZvcm1hdHRpbmcKKyAgZWxlbWVudHM8L2E+KSwgdGhlIHN0YWNrIGlzIG1hbmlwdWxhdGVkIGluIGEgcmFuZG9tLWFjY2VzcyBmYXNoaW9uLjwvcD4KKworCisgIDxoNSBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cz4xMi4yLjMuMyBUaGUgbGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvaDU+CisKKyAgPHA+SW5pdGlhbGx5LCB0aGUgPGRmbiBpZD1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzPmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2Rmbj4gaXMgZW1wdHkuIEl0IGlzIHVzZWQgdG8gaGFuZGxlCisgIG1pcy1uZXN0ZWQgPGEgaHJlZj0jZm9ybWF0dGluZyBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50czpmb3JtYXR0aW5nPmZvcm1hdHRpbmcgZWxlbWVudCB0YWdzPC9hPi48L3A+CisKKyAgPHA+VGhlIGxpc3QgY29udGFpbnMgZWxlbWVudHMgaW4gdGhlIDxhIGhyZWY9I2Zvcm1hdHRpbmcgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6Zm9ybWF0dGluZy0yPmZvcm1hdHRpbmc8L2E+IGNhdGVnb3J5LCBhbmQgPGEgaHJlZj0jY29uY2VwdC1wYXJzZXItbWFya2VyIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmNvbmNlcHQtcGFyc2VyLW1hcmtlcj5tYXJrZXJzPC9hPi4gVGhlIDxkZm4gaWQ9Y29uY2VwdC1wYXJzZXItbWFya2VyPm1hcmtlcnM8L2Rmbj4gYXJlIGluc2VydGVkIHdoZW4gZW50ZXJpbmcgPGNvZGUgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWFwcGxldC1lbGVtZW50PjxhIGhyZWY9b2Jzb2xldGUuaHRtbCN0aGUtYXBwbGV0LWVsZW1lbnQ+YXBwbGV0PC9hPjwvY29kZT4KKyAgZWxlbWVudHMsIGJ1dHRvbnMsIDxjb2RlIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1vYmplY3QtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtb2JqZWN0LWVsZW1lbnQ+b2JqZWN0PC9hPjwvY29kZT4gZWxlbWVudHMsIG1hcnF1ZWVzLCB0YWJsZSBjZWxscywgYW5kIHRhYmxlIGNhcHRpb25zLCBhbmQKKyAgYXJlIHVzZWQgdG8gcHJldmVudCBmb3JtYXR0aW5nIGZyb20gImxlYWtpbmciIDxlbT5pbnRvPC9lbT4gPGNvZGUgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWFwcGxldC1lbGVtZW50LTI+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI3RoZS1hcHBsZXQtZWxlbWVudD5hcHBsZXQ8L2E+PC9jb2RlPiBlbGVtZW50cywgYnV0dG9ucywKKyAgPGNvZGUgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLW9iamVjdC1lbGVtZW50LTI+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLW9iamVjdC1lbGVtZW50Pm9iamVjdDwvYT48L2NvZGU+IGVsZW1lbnRzLCBtYXJxdWVlcywgYW5kIHRhYmxlcy48L3A+CisKKyAgPHA+SW4gYWRkaXRpb24sIGVhY2ggZWxlbWVudCBpbiB0aGUgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50czpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzPmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+IGlzIGFzc29jaWF0ZWQKKyAgd2l0aCB0aGUgdG9rZW4gZm9yIHdoaWNoIGl0IHdhcyBjcmVhdGVkLCBzbyB0aGF0IGZ1cnRoZXIgZWxlbWVudHMgY2FuIGJlIGNyZWF0ZWQgZm9yIHRoYXQgdG9rZW4gaWYKKyAgbmVjZXNzYXJ5LjwvcD4KKworICA8cD5XaGVuIHRoZSBzdGVwcyBiZWxvdyByZXF1aXJlIHRoZSBVQSB0byA8ZGZuIGlkPXB1c2gtb250by10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cz5wdXNoIG9udG8gdGhlIGxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcKKyAgZWxlbWVudHM8L2Rmbj4gYW4gZWxlbWVudCA8dmFyPmVsZW1lbnQ8L3Zhcj4sIHRoZSBVQSBtdXN0IHBlcmZvcm0gdGhlIGZvbGxvd2luZworICBzdGVwczo8L3A+CisKKyAgPG9sIGlkPW5vYWg+PGxpPjxwPklmIHRoZXJlIGFyZSBhbHJlYWR5IHRocmVlIGVsZW1lbnRzIGluIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMj5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPgorICAgYWZ0ZXIgdGhlIGxhc3QgPGEgaHJlZj0jY29uY2VwdC1wYXJzZXItbWFya2VyIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmNvbmNlcHQtcGFyc2VyLW1hcmtlci0yPm1hcmtlcjwvYT4sIGlmIGFueSwgb3IgYW55d2hlcmUgaW4gdGhlCisgICBsaXN0IGlmIHRoZXJlIGFyZSBubyA8YSBocmVmPSNjb25jZXB0LXBhcnNlci1tYXJrZXIgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6Y29uY2VwdC1wYXJzZXItbWFya2VyLTM+bWFya2VyczwvYT4sIHRoYXQgaGF2ZSB0aGUgc2FtZSB0YWcKKyAgIG5hbWUsIG5hbWVzcGFjZSwgYW5kIGF0dHJpYnV0ZXMgYXMgPHZhcj5lbGVtZW50PC92YXI+LCB0aGVuIHJlbW92ZSB0aGUgZWFybGllc3Qgc3VjaAorICAgZWxlbWVudCBmcm9tIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMz5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPi4gRm9yIHRoZXNlIHB1cnBvc2VzLCB0aGUKKyAgIGF0dHJpYnV0ZXMgbXVzdCBiZSBjb21wYXJlZCBhcyB0aGV5IHdlcmUgd2hlbiB0aGUgZWxlbWVudHMgd2VyZSBjcmVhdGVkIGJ5IHRoZSBwYXJzZXI7IHR3bworICAgZWxlbWVudHMgaGF2ZSB0aGUgc2FtZSBhdHRyaWJ1dGVzIGlmIGFsbCB0aGVpciBwYXJzZWQgYXR0cmlidXRlcyBjYW4gYmUgcGFpcmVkIHN1Y2ggdGhhdCB0aGUgdHdvCisgICBhdHRyaWJ1dGVzIGluIGVhY2ggcGFpciBoYXZlIGlkZW50aWNhbCBuYW1lcywgbmFtZXNwYWNlcywgYW5kIHZhbHVlcyAodGhlIG9yZGVyIG9mIHRoZSBhdHRyaWJ1dGVzCisgICBkb2VzIG5vdCBtYXR0ZXIpLjwvcD4KKworICAgPHAgY2xhc3M9bm90ZT5UaGlzIGlzIHRoZSBOb2FoJ3MgQXJrIGNsYXVzZS4gQnV0IHdpdGggdGhyZWUgcGVyIGZhbWlseSBpbnN0ZWFkIG9mIHR3by48bGk+PHA+QWRkIDx2YXI+ZWxlbWVudDwvdmFyPiB0byB0aGUgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50czpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTQ+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZworICAgZWxlbWVudHM8L2E+Ljwvb2w+CisKKyAgPHA+V2hlbiB0aGUgc3RlcHMgYmVsb3cgcmVxdWlyZSB0aGUgVUEgdG8gPGRmbiBpZD1yZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM+cmVjb25zdHJ1Y3QgdGhlIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9kZm4+LAorICB0aGUgVUEgbXVzdCBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHM6PC9wPgorCisgIDxvbD48bGk+PHA+SWYgdGhlcmUgYXJlIG5vIGVudHJpZXMgaW4gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy01Pmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCB0aGVuIHRoZXJlCisgICBpcyBub3RoaW5nIHRvIHJlY29uc3RydWN0OyBzdG9wIHRoaXMgYWxnb3JpdGhtLjxsaT48cD5JZiB0aGUgbGFzdCAobW9zdCByZWNlbnRseSBhZGRlZCkgZW50cnkgaW4gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy02Pmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcKKyAgIGVsZW1lbnRzPC9hPiBpcyBhIDxhIGhyZWY9I2NvbmNlcHQtcGFyc2VyLW1hcmtlciBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50czpjb25jZXB0LXBhcnNlci1tYXJrZXItND5tYXJrZXI8L2E+LCBvciBpZiBpdCBpcyBhbiBlbGVtZW50CisgICB0aGF0IGlzIGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIHRoZW4gdGhlcmUgaXMgbm90aGluZyB0byByZWNvbnN0cnVjdDsgc3RvcAorICAgdGhpcyBhbGdvcml0aG0uPGxpPjxwPkxldCA8dmFyPmVudHJ5PC92YXI+IGJlIHRoZSBsYXN0IChtb3N0IHJlY2VudGx5IGFkZGVkKSBlbGVtZW50IGluIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtNz5saXN0CisgICBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4uPGxpPjxwPjxpPlJld2luZDwvaT46IElmIHRoZXJlIGFyZSBubyBlbnRyaWVzIGJlZm9yZSA8dmFyPmVudHJ5PC92YXI+IGluIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtOD5saXN0CisgICBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIHRoZW4ganVtcCB0byB0aGUgc3RlcCBsYWJlbGVkIDxpPmNyZWF0ZTwvaT4uPGxpPjxwPkxldCA8dmFyPmVudHJ5PC92YXI+IGJlIHRoZSBlbnRyeSBvbmUgZWFybGllciB0aGFuIDx2YXI+ZW50cnk8L3Zhcj4gaW4KKyAgIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtOT5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPi48bGk+PHA+SWYgPHZhcj5lbnRyeTwvdmFyPiBpcyBuZWl0aGVyIGEgPGEgaHJlZj0jY29uY2VwdC1wYXJzZXItbWFya2VyIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmNvbmNlcHQtcGFyc2VyLW1hcmtlci01Pm1hcmtlcjwvYT4gbm9yIGFuIGVsZW1lbnQgdGhhdCBpcyBhbHNvIGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMj5zdGFjayBvZgorICAgb3BlbiBlbGVtZW50czwvYT4sIGdvIHRvIHRoZSBzdGVwIGxhYmVsZWQgPGk+cmV3aW5kPC9pPi48bGk+PHA+PGk+QWR2YW5jZTwvaT46IExldCA8dmFyPmVudHJ5PC92YXI+IGJlIHRoZSBlbGVtZW50IG9uZSBsYXRlciB0aGFuIDx2YXI+ZW50cnk8L3Zhcj4gaW4gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0xMD5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPi48bGk+PHA+PGk+Q3JlYXRlPC9pPjogPGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50czppbnNlcnQtYW4taHRtbC1lbGVtZW50Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4gZm9yIHdoaWNoIHRoZSBlbGVtZW50CisgICA8dmFyPmVudHJ5PC92YXI+IHdhcyBjcmVhdGVkLCB0byBvYnRhaW4gPHZhcj5uZXcgZWxlbWVudDwvdmFyPi48bGk+PHA+UmVwbGFjZSB0aGUgZW50cnkgZm9yIDx2YXI+ZW50cnk8L3Zhcj4gaW4gdGhlIGxpc3Qgd2l0aCBhbiBlbnRyeSBmb3IgPHZhcj5uZXcgZWxlbWVudDwvdmFyPi48bGk+PHA+SWYgdGhlIGVudHJ5IGZvciA8dmFyPm5ldyBlbGVtZW50PC92YXI+IGluIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMTE+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZworICAgZWxlbWVudHM8L2E+IGlzIG5vdCB0aGUgbGFzdCBlbnRyeSBpbiB0aGUgbGlzdCwgcmV0dXJuIHRvIHRoZSBzdGVwIGxhYmVsZWQKKyAgIDxpPmFkdmFuY2U8L2k+Ljwvb2w+CisKKyAgPHA+VGhpcyBoYXMgdGhlIGVmZmVjdCBvZiByZW9wZW5pbmcgYWxsIHRoZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHRoYXQgd2VyZSBvcGVuZWQgaW4gdGhlIGN1cnJlbnQKKyAgYm9keSwgY2VsbCwgb3IgY2FwdGlvbiAod2hpY2hldmVyIGlzIHlvdW5nZXN0KSB0aGF0IGhhdmVuJ3QgYmVlbiBleHBsaWNpdGx5IGNsb3NlZC48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGUgd2F5IHRoaXMgc3BlY2lmaWNhdGlvbiBpcyB3cml0dGVuLCB0aGUgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50czpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTEyPmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcKKyAgZWxlbWVudHM8L2E+IGFsd2F5cyBjb25zaXN0cyBvZiBlbGVtZW50cyBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyIHdpdGggdGhlIGxlYXN0IHJlY2VudGx5IGFkZGVkCisgIGVsZW1lbnQgZmlyc3QgYW5kIHRoZSBtb3N0IHJlY2VudGx5IGFkZGVkIGVsZW1lbnQgbGFzdCAoZXhjZXB0IGZvciB3aGlsZSBzdGVwcyA4IHRvIDExIG9mIHRoZQorICBhYm92ZSBhbGdvcml0aG0gYXJlIGJlaW5nIGV4ZWN1dGVkLCBvZiBjb3Vyc2UpLjwvcD4KKworICA8cD5XaGVuIHRoZSBzdGVwcyBiZWxvdyByZXF1aXJlIHRoZSBVQSB0byA8ZGZuIGlkPWNsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlcj5jbGVhciB0aGUgbGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50cyB1cCB0bworICB0aGUgbGFzdCBtYXJrZXI8L2Rmbj4sIHRoZSBVQSBtdXN0IHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwczo8L3A+CisKKyAgPG9sPjxsaT48cD5MZXQgPHZhcj5lbnRyeTwvdmFyPiBiZSB0aGUgbGFzdCAobW9zdCByZWNlbnRseSBhZGRlZCkgZW50cnkgaW4gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0xMz5saXN0IG9mCisgICBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4uPGxpPjxwPlJlbW92ZSA8dmFyPmVudHJ5PC92YXI+IGZyb20gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0xND5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nCisgICBlbGVtZW50czwvYT4uPGxpPjxwPklmIDx2YXI+ZW50cnk8L3Zhcj4gd2FzIGEgPGEgaHJlZj0jY29uY2VwdC1wYXJzZXItbWFya2VyIGlkPXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzOmNvbmNlcHQtcGFyc2VyLW1hcmtlci02Pm1hcmtlcjwvYT4sCisgICB0aGVuIHN0b3AgdGhlIGFsZ29yaXRobSBhdCB0aGlzIHBvaW50LiBUaGUgbGlzdCBoYXMgYmVlbiBjbGVhcmVkIHVwIHRvIHRoZSBsYXN0IDxhIGhyZWY9I2NvbmNlcHQtcGFyc2VyLW1hcmtlciBpZD10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50czpjb25jZXB0LXBhcnNlci1tYXJrZXItNz5tYXJrZXI8L2E+LjxsaT48cD5HbyB0byBzdGVwIDEuPC9vbD4KKworCisgIDxoNSBpZD10aGUtZWxlbWVudC1wb2ludGVycz4xMi4yLjMuNCBUaGUgZWxlbWVudCBwb2ludGVyczwvaDU+CisKKyAgPHA+SW5pdGlhbGx5LCB0aGUgPGRmbiBpZD1oZWFkLWVsZW1lbnQtcG9pbnRlcj48Y29kZT5oZWFkPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2Rmbj4gYW5kIHRoZSA8ZGZuIGlkPWZvcm0tZWxlbWVudC1wb2ludGVyPjxjb2RlPmZvcm08L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvZGZuPiBhcmUgYm90aCBudWxsLjwvcD4KKworICA8cD5PbmNlIGEgPGNvZGUgaWQ9dGhlLWVsZW1lbnQtcG9pbnRlcnM6dGhlLWhlYWQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+IGVsZW1lbnQgaGFzIGJlZW4gcGFyc2VkICh3aGV0aGVyIGltcGxpY2l0bHkgb3IgZXhwbGljaXRseSkgdGhlCisgIDxhIGhyZWY9I2hlYWQtZWxlbWVudC1wb2ludGVyIGlkPXRoZS1lbGVtZW50LXBvaW50ZXJzOmhlYWQtZWxlbWVudC1wb2ludGVyPjxjb2RlPmhlYWQ8L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4gZ2V0cyBzZXQgdG8gcG9pbnQgdG8gdGhpcyBub2RlLjwvcD4KKworICA8cD5UaGUgPGEgaHJlZj0jZm9ybS1lbGVtZW50LXBvaW50ZXIgaWQ9dGhlLWVsZW1lbnQtcG9pbnRlcnM6Zm9ybS1lbGVtZW50LXBvaW50ZXI+PGNvZGU+Zm9ybTwvY29kZT4gZWxlbWVudCBwb2ludGVyPC9hPiBwb2ludHMgdG8gdGhlIGxhc3QKKyAgPGNvZGUgaWQ9dGhlLWVsZW1lbnQtcG9pbnRlcnM6dGhlLWZvcm0tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudD5mb3JtPC9hPjwvY29kZT4gZWxlbWVudCB0aGF0IHdhcyBvcGVuZWQgYW5kIHdob3NlIGVuZCB0YWcgaGFzIG5vdCB5ZXQgYmVlbiBzZWVuLiBJdCBpcyB1c2VkIHRvCisgIG1ha2UgZm9ybSBjb250cm9scyBhc3NvY2lhdGUgd2l0aCBmb3JtcyBpbiB0aGUgZmFjZSBvZiBkcmFtYXRpY2FsbHkgYmFkIG1hcmt1cCwgZm9yIGhpc3RvcmljYWwKKyAgcmVhc29ucy4gSXQgaXMgaWdub3JlZCBpbnNpZGUgPGNvZGUgaWQ9dGhlLWVsZW1lbnQtcG9pbnRlcnM6dGhlLXRlbXBsYXRlLWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnRzLjwvcD4KKworCisgIDxoNSBpZD1vdGhlci1wYXJzaW5nLXN0YXRlLWZsYWdzPjEyLjIuMy41IE90aGVyIHBhcnNpbmcgc3RhdGUgZmxhZ3M8L2g1PgorCisgIDxwPlRoZSA8ZGZuIGlkPXNjcmlwdGluZy1mbGFnPnNjcmlwdGluZyBmbGFnPC9kZm4+IGlzIHNldCB0byAiZW5hYmxlZCIgaWYgPGEgaHJlZj13ZWJhcHBhcGlzLmh0bWwjY29uY2VwdC1uLXNjcmlwdCBpZD1vdGhlci1wYXJzaW5nLXN0YXRlLWZsYWdzOmNvbmNlcHQtbi1zY3JpcHQ+c2NyaXB0aW5nCisgIHdhcyBlbmFibGVkPC9hPiBmb3IgdGhlIDxjb2RlIGlkPW90aGVyLXBhcnNpbmctc3RhdGUtZmxhZ3M6ZG9jdW1lbnQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IHdpdGggd2hpY2ggdGhlIHBhcnNlciBpcyBhc3NvY2lhdGVkIHdoZW4gdGhlCisgIHBhcnNlciB3YXMgY3JlYXRlZCwgYW5kICJkaXNhYmxlZCIgb3RoZXJ3aXNlLjwvcD4KKworICA8cCBjbGFzcz1ub3RlPlRoZSA8YSBocmVmPSNzY3JpcHRpbmctZmxhZyBpZD1vdGhlci1wYXJzaW5nLXN0YXRlLWZsYWdzOnNjcmlwdGluZy1mbGFnPnNjcmlwdGluZyBmbGFnPC9hPiBjYW4gYmUgZW5hYmxlZCBldmVuIHdoZW4gdGhlIHBhcnNlciB3YXMgb3JpZ2luYWxseQorICBjcmVhdGVkIGZvciB0aGUgPGEgaHJlZj0jaHRtbC1mcmFnbWVudC1wYXJzaW5nLWFsZ29yaXRobSBpZD1vdGhlci1wYXJzaW5nLXN0YXRlLWZsYWdzOmh0bWwtZnJhZ21lbnQtcGFyc2luZy1hbGdvcml0aG0+SFRNTCBmcmFnbWVudCBwYXJzaW5nIGFsZ29yaXRobTwvYT4sIGV2ZW4gdGhvdWdoIDxjb2RlIGlkPW90aGVyLXBhcnNpbmctc3RhdGUtZmxhZ3M6dGhlLXNjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+CisgIGVsZW1lbnRzIGRvbid0IGV4ZWN1dGUgaW4gdGhhdCBjYXNlLjwvcD4KKworICA8cD5UaGUgPGRmbiBpZD1mcmFtZXNldC1vay1mbGFnPmZyYW1lc2V0LW9rIGZsYWc8L2Rmbj4gaXMgc2V0IHRvICJvayIgd2hlbiB0aGUgcGFyc2VyIGlzIGNyZWF0ZWQuIEl0IGlzIHNldCB0byAibm90CisgIG9rIiBhZnRlciBjZXJ0YWluIHRva2VucyBhcmUgc2Vlbi48L3A+CisKKworCisKKworCisgIDxoNCBpZD10b2tlbml6YXRpb24+MTIuMi40IDxkZm4+VG9rZW5pemF0aW9uPC9kZm4+PC9oND4KKworICA8cD5JbXBsZW1lbnRhdGlvbnMgbXVzdCBhY3QgYXMgaWYgdGhleSB1c2VkIHRoZSBmb2xsb3dpbmcgc3RhdGUgbWFjaGluZSB0byB0b2tlbmlzZSBIVE1MLiBUaGUKKyAgc3RhdGUgbWFjaGluZSBtdXN0IHN0YXJ0IGluIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPXRva2VuaXphdGlvbjpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBNb3N0IHN0YXRlcyBjb25zdW1lIGEgc2luZ2xlIGNoYXJhY3RlciwKKyAgd2hpY2ggbWF5IGhhdmUgdmFyaW91cyBzaWRlLWVmZmVjdHMsIGFuZCBlaXRoZXIgc3dpdGNoZXMgdGhlIHN0YXRlIG1hY2hpbmUgdG8gYSBuZXcgc3RhdGUgdG8KKyAgPGk+cmVjb25zdW1lPC9pPiB0aGUgc2FtZSBjaGFyYWN0ZXIsIG9yIHN3aXRjaGVzIGl0IHRvIGEgbmV3IHN0YXRlIHRvIGNvbnN1bWUgdGhlIG5leHQgY2hhcmFjdGVyLAorICBvciBzdGF5cyBpbiB0aGUgc2FtZSBzdGF0ZSB0byBjb25zdW1lIHRoZSBuZXh0IGNoYXJhY3Rlci4gU29tZSBzdGF0ZXMgaGF2ZSBtb3JlIGNvbXBsaWNhdGVkCisgIGJlaGF2aW9yIGFuZCBjYW4gY29uc3VtZSBzZXZlcmFsIGNoYXJhY3RlcnMgYmVmb3JlIHN3aXRjaGluZyB0byBhbm90aGVyIHN0YXRlLiBJbiBzb21lIGNhc2VzLCB0aGUKKyAgdG9rZW5pemVyIHN0YXRlIGlzIGFsc28gY2hhbmdlZCBieSB0aGUgdHJlZSBjb25zdHJ1Y3Rpb24gc3RhZ2UuPC9wPgorCisgIDxwPlRoZSBleGFjdCBiZWhhdmlvciBvZiBjZXJ0YWluIHN0YXRlcyBkZXBlbmRzIG9uIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10b2tlbml6YXRpb246aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+IGFuZCB0aGUKKyAgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD10b2tlbml6YXRpb246c3RhY2stb2Ytb3Blbi1lbGVtZW50cz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi4gQ2VydGFpbiBzdGF0ZXMgYWxzbyB1c2UgYSA8ZGZuIGlkPXRlbXBvcmFyeS1idWZmZXI+PHZhcj50ZW1wb3JhcnkgYnVmZmVyPC92YXI+PC9kZm4+IHRvIHRyYWNrIHByb2dyZXNzLjwvcD4KKworICA8cD5UaGUgb3V0cHV0IG9mIHRoZSB0b2tlbml6YXRpb24gc3RlcCBpcyBhIHNlcmllcyBvZiB6ZXJvIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyB0b2tlbnM6CisgIERPQ1RZUEUsIHN0YXJ0IHRhZywgZW5kIHRhZywgY29tbWVudCwgY2hhcmFjdGVyLCBlbmQtb2YtZmlsZS4gRE9DVFlQRSB0b2tlbnMgaGF2ZSBhIG5hbWUsIGEgcHVibGljCisgIGlkZW50aWZpZXIsIGEgc3lzdGVtIGlkZW50aWZpZXIsIGFuZCBhIDxkZm4gaWQ9Zm9yY2UtcXVpcmtzLWZsYWc+PGk+Zm9yY2UtcXVpcmtzIGZsYWc8L2k+PC9kZm4+LiBXaGVuIGEgRE9DVFlQRSB0b2tlbgorICBpcyBjcmVhdGVkLCBpdHMgbmFtZSwgcHVibGljIGlkZW50aWZpZXIsIGFuZCBzeXN0ZW0gaWRlbnRpZmllciBtdXN0IGJlIG1hcmtlZCBhcyBtaXNzaW5nICh3aGljaCBpcworICBhIGRpc3RpbmN0IHN0YXRlIGZyb20gdGhlIGVtcHR5IHN0cmluZyksIGFuZCB0aGUgPGkgaWQ9dG9rZW5pemF0aW9uOmZvcmNlLXF1aXJrcy1mbGFnPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gbXVzdCBiZSBzZXQgdG8KKyAgPGk+b2ZmPC9pPiAoaXRzIG90aGVyIHN0YXRlIGlzIDxpPm9uPC9pPikuIFN0YXJ0IGFuZCBlbmQgdGFnIHRva2VucyBoYXZlIGEgdGFnIG5hbWUsIGEgPGRmbiBpZD1zZWxmLWNsb3NpbmctZmxhZz5zZWxmLWNsb3NpbmcgZmxhZzwvZGZuPiwgYW5kIGEgbGlzdCBvZiBhdHRyaWJ1dGVzLCBlYWNoIG9mIHdoaWNoIGhhcyBhCisgIG5hbWUgYW5kIGEgdmFsdWUuIFdoZW4gYSBzdGFydCBvciBlbmQgdGFnIHRva2VuIGlzIGNyZWF0ZWQsIGl0cyA8aSBpZD10b2tlbml6YXRpb246c2VsZi1jbG9zaW5nLWZsYWc+PGEgaHJlZj0jc2VsZi1jbG9zaW5nLWZsYWc+c2VsZi1jbG9zaW5nIGZsYWc8L2E+PC9pPiBtdXN0IGJlIHVuc2V0IChpdHMgb3RoZXIgc3RhdGUgaXMgdGhhdCBpdCBiZSBzZXQpLCBhbmQgaXRzIGF0dHJpYnV0ZXMKKyAgbGlzdCBtdXN0IGJlIGVtcHR5LiBDb21tZW50IGFuZCBjaGFyYWN0ZXIgdG9rZW5zIGhhdmUgZGF0YS48L3A+CisKKyAgPHA+V2hlbiBhIHRva2VuIGlzIGVtaXR0ZWQsIGl0IG11c3QgaW1tZWRpYXRlbHkgYmUgaGFuZGxlZCBieSB0aGUgPGEgaHJlZj0jdHJlZS1jb25zdHJ1Y3Rpb24gaWQ9dG9rZW5pemF0aW9uOnRyZWUtY29uc3RydWN0aW9uPnRyZWUgY29uc3RydWN0aW9uPC9hPgorICBzdGFnZS4gVGhlIHRyZWUgY29uc3RydWN0aW9uIHN0YWdlIGNhbiBhZmZlY3QgdGhlIHN0YXRlIG9mIHRoZSB0b2tlbml6YXRpb24gc3RhZ2UsIGFuZCBjYW4gaW5zZXJ0CisgIGFkZGl0aW9uYWwgY2hhcmFjdGVycyBpbnRvIHRoZSBzdHJlYW0uIChGb3IgZXhhbXBsZSwgdGhlIDxjb2RlIGlkPXRva2VuaXphdGlvbjp0aGUtc2NyaXB0LWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4gZWxlbWVudCBjYW4gcmVzdWx0IGluCisgIHNjcmlwdHMgZXhlY3V0aW5nIGFuZCB1c2luZyB0aGUgPGEgaWQ9dG9rZW5pemF0aW9uOmR5bmFtaWMtbWFya3VwLWluc2VydGlvbiBocmVmPXdlYmFwcGFwaXMuaHRtbCNkeW5hbWljLW1hcmt1cC1pbnNlcnRpb24+ZHluYW1pYyBtYXJrdXAgaW5zZXJ0aW9uPC9hPiBBUElzIHRvIGluc2VydCBjaGFyYWN0ZXJzCisgIGludG8gdGhlIHN0cmVhbSBiZWluZyB0b2tlbml6ZWQuKTwvcD4KKworICA8cCBjbGFzcz1ub3RlPkNyZWF0aW5nIGEgdG9rZW4gYW5kIGVtaXR0aW5nIGl0IGFyZSBkaXN0aW5jdCBhY3Rpb25zLiBJdCBpcyBwb3NzaWJsZSBmb3IgYSB0b2tlbgorICB0byBiZSBjcmVhdGVkIGJ1dCBpbXBsaWNpdGx5IGFiYW5kb25lZCAobmV2ZXIgZW1pdHRlZCksIGUuZy4gaWYgdGhlIGZpbGUgZW5kcyB1bmV4cGVjdGVkbHkgd2hpbGUKKyAgcHJvY2Vzc2luZyB0aGUgY2hhcmFjdGVycyB0aGF0IGFyZSBiZWluZyBwYXJzZWQgaW50byBhIHN0YXJ0IHRhZyB0b2tlbi48L3A+CisKKyAgPHA+V2hlbiBhIHN0YXJ0IHRhZyB0b2tlbiBpcyBlbWl0dGVkIHdpdGggaXRzIDxpIGlkPXRva2VuaXphdGlvbjpzZWxmLWNsb3NpbmctZmxhZy0yPjxhIGhyZWY9I3NlbGYtY2xvc2luZy1mbGFnPnNlbGYtY2xvc2luZyBmbGFnPC9hPjwvaT4gc2V0LCBpZiB0aGUgZmxhZyBpcyBub3QKKyAgPGRmbiBpZD1hY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZz5hY2tub3dsZWRnZWQ8L2Rmbj4gd2hlbiBpdCBpcyBwcm9jZXNzZWQgYnkgdGhlIHRyZWUKKyAgY29uc3RydWN0aW9uIHN0YWdlLCB0aGF0IGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dG9rZW5pemF0aW9uOnBhcnNlLWVycm9yPnBhcnNlIGVycm9yPC9hPi48L3A+CisKKyAgPHA+V2hlbiBhbiBlbmQgdGFnIHRva2VuIGlzIGVtaXR0ZWQgd2l0aCBhdHRyaWJ1dGVzLCB0aGF0IGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dG9rZW5pemF0aW9uOnBhcnNlLWVycm9yLTI+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICA8cD5XaGVuIGFuIGVuZCB0YWcgdG9rZW4gaXMgZW1pdHRlZCB3aXRoIGl0cyA8aSBpZD10b2tlbml6YXRpb246c2VsZi1jbG9zaW5nLWZsYWctMz48YSBocmVmPSNzZWxmLWNsb3NpbmctZmxhZz5zZWxmLWNsb3NpbmcgZmxhZzwvYT48L2k+IHNldCwgdGhhdCBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRva2VuaXphdGlvbjpwYXJzZS1lcnJvci0zPnBhcnNlCisgIGVycm9yPC9hPi48L3A+CisKKyAgPHA+QW4gPGRmbiBpZD1hcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuPmFwcHJvcHJpYXRlIGVuZCB0YWcgdG9rZW48L2Rmbj4gaXMgYW4gZW5kIHRhZyB0b2tlbiB3aG9zZSB0YWcgbmFtZSBtYXRjaGVzIHRoZSB0YWcgbmFtZQorICBvZiB0aGUgbGFzdCBzdGFydCB0YWcgdG8gaGF2ZSBiZWVuIGVtaXR0ZWQgZnJvbSB0aGlzIHRva2VuaXplciwgaWYgYW55LiBJZiBubyBzdGFydCB0YWcgaGFzIGJlZW4KKyAgZW1pdHRlZCBmcm9tIHRoaXMgdG9rZW5pemVyLCB0aGVuIG5vIGVuZCB0YWcgdG9rZW4gaXMgYXBwcm9wcmlhdGUuPC9wPgorCisgIDxwPkJlZm9yZSBlYWNoIHN0ZXAgb2YgdGhlIHRva2VuaXplciwgdGhlIHVzZXIgYWdlbnQgbXVzdCBmaXJzdCBjaGVjayB0aGUgPGEgaHJlZj0jcGFyc2VyLXBhdXNlLWZsYWcgaWQ9dG9rZW5pemF0aW9uOnBhcnNlci1wYXVzZS1mbGFnPnBhcnNlciBwYXVzZQorICBmbGFnPC9hPi4gSWYgaXQgaXMgdHJ1ZSwgdGhlbiB0aGUgdG9rZW5pemVyIG11c3QgYWJvcnQgdGhlIHByb2Nlc3Npbmcgb2YgYW55IG5lc3RlZCBpbnZvY2F0aW9ucworICBvZiB0aGUgdG9rZW5pemVyLCB5aWVsZGluZyBjb250cm9sIGJhY2sgdG8gdGhlIGNhbGxlci48L3A+CisKKyAgPHA+VGhlIHRva2VuaXplciBzdGF0ZSBtYWNoaW5lIGNvbnNpc3RzIG9mIHRoZSBzdGF0ZXMgZGVmaW5lZCBpbiB0aGUgZm9sbG93aW5nIHN1YnNlY3Rpb25zLjwvcD4KKworCisKKworCisgIDxoNSBpZD1kYXRhLXN0YXRlPjEyLjIuNC4xIDxkZm4+RGF0YSBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9ZGF0YS1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyNiBBTVBFUlNBTkQgKCZhbXA7KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NoYXJhY3Rlci1yZWZlcmVuY2UtaW4tZGF0YS1zdGF0ZSBpZD1kYXRhLXN0YXRlOmNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tZGF0YS1zdGF0ZT5jaGFyYWN0ZXIgcmVmZXJlbmNlIGluIGRhdGEgc3RhdGU8L2E+LjxkdD5VKzAwM0MgTEVTUy1USEFOIFNJR04gKCZsdDspPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jdGFnLW9wZW4tc3RhdGUgaWQ9ZGF0YS1zdGF0ZTp0YWctb3Blbi1zdGF0ZT50YWcgb3BlbiBzdGF0ZTwvYT4uPGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWRhdGEtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBFbWl0IHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1kYXRhLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiBhcyBhIGNoYXJhY3RlcgorICAgdG9rZW4uPGR0PkVPRjxkZD5FbWl0IGFuIGVuZC1vZi1maWxlIHRva2VuLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkVtaXQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWRhdGEtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIgdG9rZW4uPC9kbD4KKworCisgIDxoNSBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlLWluLWRhdGEtc3RhdGU+MTIuMi40LjIgPGRmbj5DaGFyYWN0ZXIgcmVmZXJlbmNlIGluIGRhdGEgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlLWluLWRhdGEtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi48L3A+CisKKyAgPHA+QXR0ZW1wdCB0byA8YSBocmVmPSNjb25zdW1lLWEtY2hhcmFjdGVyLXJlZmVyZW5jZSBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlLWluLWRhdGEtc3RhdGU6Y29uc3VtZS1hLWNoYXJhY3Rlci1yZWZlcmVuY2U+Y29uc3VtZSBhIGNoYXJhY3RlciByZWZlcmVuY2U8L2E+LCB3aXRoIG5vIDxhIGhyZWY9I2FkZGl0aW9uYWwtYWxsb3dlZC1jaGFyYWN0ZXIgaWQ9Y2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1kYXRhLXN0YXRlOmFkZGl0aW9uYWwtYWxsb3dlZC1jaGFyYWN0ZXI+YWRkaXRpb25hbCBhbGxvd2VkCisgIGNoYXJhY3RlcjwvYT4uPC9wPgorCisgIDxwPklmIG5vdGhpbmcgaXMgcmV0dXJuZWQsIGVtaXQgYSBVKzAwMjYgQU1QRVJTQU5EIGNoYXJhY3RlciAoJmFtcDspIHRva2VuLjwvcD4KKworICA8cD5PdGhlcndpc2UsIGVtaXQgdGhlIGNoYXJhY3RlciB0b2tlbnMgdGhhdCB3ZXJlIHJldHVybmVkLjwvcD4KKworCisgIDxoNSBpZD1yY2RhdGEtc3RhdGU+MTIuMi40LjMgPGRmbj5SQ0RBVEEgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyNiBBTVBFUlNBTkQgKCZhbXA7KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NoYXJhY3Rlci1yZWZlcmVuY2UtaW4tcmNkYXRhLXN0YXRlIGlkPXJjZGF0YS1zdGF0ZTpjaGFyYWN0ZXItcmVmZXJlbmNlLWluLXJjZGF0YS1zdGF0ZT5jaGFyYWN0ZXIgcmVmZXJlbmNlIGluIFJDREFUQSBzdGF0ZTwvYT4uPGR0PlUrMDAzQyBMRVNTLVRIQU4gU0lHTiAoJmx0Oyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNyY2RhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGUgaWQ9cmNkYXRhLXN0YXRlOnJjZGF0YS1sZXNzLXRoYW4tc2lnbi1zdGF0ZT5SQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1yY2RhdGEtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBFbWl0IGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG9rZW4uPGR0PkVPRjxkZD5FbWl0IGFuIGVuZC1vZi1maWxlIHRva2VuLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkVtaXQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIgdG9rZW4uPC9kbD4KKworCisgIDxoNSBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlLWluLXJjZGF0YS1zdGF0ZT4xMi4yLjQuNCA8ZGZuPkNoYXJhY3RlciByZWZlcmVuY2UgaW4gUkNEQVRBIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3JjZGF0YS1zdGF0ZSBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlLWluLXJjZGF0YS1zdGF0ZTpyY2RhdGEtc3RhdGU+UkNEQVRBIHN0YXRlPC9hPi48L3A+CisKKyAgPHA+QXR0ZW1wdCB0byA8YSBocmVmPSNjb25zdW1lLWEtY2hhcmFjdGVyLXJlZmVyZW5jZSBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlLWluLXJjZGF0YS1zdGF0ZTpjb25zdW1lLWEtY2hhcmFjdGVyLXJlZmVyZW5jZT5jb25zdW1lIGEgY2hhcmFjdGVyIHJlZmVyZW5jZTwvYT4sIHdpdGggbm8gPGEgaHJlZj0jYWRkaXRpb25hbC1hbGxvd2VkLWNoYXJhY3RlciBpZD1jaGFyYWN0ZXItcmVmZXJlbmNlLWluLXJjZGF0YS1zdGF0ZTphZGRpdGlvbmFsLWFsbG93ZWQtY2hhcmFjdGVyPmFkZGl0aW9uYWwgYWxsb3dlZAorICBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICA8cD5JZiBub3RoaW5nIGlzIHJldHVybmVkLCBlbWl0IGEgVSswMDI2IEFNUEVSU0FORCBjaGFyYWN0ZXIgKCZhbXA7KSB0b2tlbi48L3A+CisKKyAgPHA+T3RoZXJ3aXNlLCBlbWl0IHRoZSBjaGFyYWN0ZXIgdG9rZW5zIHRoYXQgd2VyZSByZXR1cm5lZC48L3A+CisKKworICA8aDUgaWQ9cmF3dGV4dC1zdGF0ZT4xMi4yLjQuNSA8ZGZuPlJBV1RFWFQgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXJhd3RleHQtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwM0MgTEVTUy1USEFOIFNJR04gKCZsdDspPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jcmF3dGV4dC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSBpZD1yYXd0ZXh0LXN0YXRlOnJhd3RleHQtbGVzcy10aGFuLXNpZ24tc3RhdGU+UkFXVEVYVCBsZXNzLXRoYW4gc2lnbiBzdGF0ZTwvYT4uPGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXJhd3RleHQtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBFbWl0IGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG9rZW4uPGR0PkVPRjxkZD5FbWl0IGFuIGVuZC1vZi1maWxlIHRva2VuLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkVtaXQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJhd3RleHQtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyIHRva2VuLjwvZGw+CisKKworICA8aDUgaWQ9c2NyaXB0LWRhdGEtc3RhdGU+MTIuMi40LjYgPGRmbj5TY3JpcHQgZGF0YSBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwM0MgTEVTUy1USEFOIFNJR04gKCZsdDspPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGUgaWQ9c2NyaXB0LWRhdGEtc3RhdGU6c2NyaXB0LWRhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGU+c2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zY3JpcHQtZGF0YS1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIEVtaXQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0b2tlbi48ZHQ+RU9GPGRkPkVtaXQgYW4gZW5kLW9mLWZpbGUgdG9rZW4uPGR0PkFueXRoaW5nIGVsc2U8ZGQ+RW1pdCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyIHRva2VuLjwvZGw+CisKKworICA8aDUgaWQ9cGxhaW50ZXh0LXN0YXRlPjEyLjIuNC43IDxkZm4+UExBSU5URVhUIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1wbGFpbnRleHQtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wbGFpbnRleHQtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBFbWl0IGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG9rZW4uPGR0PkVPRjxkZD5FbWl0IGFuIGVuZC1vZi1maWxlIHRva2VuLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkVtaXQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXBsYWludGV4dC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIgdG9rZW4uPC9kbD4KKworCisgIDxoNSBpZD10YWctb3Blbi1zdGF0ZT4xMi4yLjQuOCA8ZGZuPlRhZyBvcGVuIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD10YWctb3Blbi1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyMSBFWENMQU1BVElPTiBNQVJLICghKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I21hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlIGlkPXRhZy1vcGVuLXN0YXRlOm1hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlPm1hcmt1cCBkZWNsYXJhdGlvbiBvcGVuIHN0YXRlPC9hPi48ZHQ+VSswMDJGIFNPTElEVVMgKC8pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZW5kLXRhZy1vcGVuLXN0YXRlIGlkPXRhZy1vcGVuLXN0YXRlOmVuZC10YWctb3Blbi1zdGF0ZT5lbmQgdGFnIG9wZW4gc3RhdGU8L2E+LjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9dGFnLW9wZW4tc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+Q3JlYXRlIGEgbmV3IHN0YXJ0IHRhZyB0b2tlbiwgc2V0IGl0cyB0YWcgbmFtZSB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXRhZy1vcGVuLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQKKyAgIGlucHV0IGNoYXJhY3RlcjwvYT4gKGFkZCAweDAwMjAgdG8gdGhlIGNoYXJhY3RlcidzIGNvZGUgcG9pbnQpLCB0aGVuIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jdGFnLW5hbWUtc3RhdGUgaWQ9dGFnLW9wZW4tc3RhdGU6dGFnLW5hbWUtc3RhdGU+dGFnCisgICBuYW1lIHN0YXRlPC9hPi4gKERvbid0IGVtaXQgdGhlIHRva2VuIHlldDsgZnVydGhlciBkZXRhaWxzIHdpbGwgYmUgZmlsbGVkIGluIGJlZm9yZSBpdCBpcworICAgZW1pdHRlZC4pPGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNsb3dlcmNhc2UtYXNjaWktbGV0dGVycyBpZD10YWctb3Blbi1zdGF0ZTpsb3dlcmNhc2UtYXNjaWktbGV0dGVycz5Mb3dlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5DcmVhdGUgYSBuZXcgc3RhcnQgdGFnIHRva2VuLCBzZXQgaXRzIHRhZyBuYW1lIHRvIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0yPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiwKKyAgIHRoZW4gc3dpdGNoIHRvIHRoZSA8YSBocmVmPSN0YWctbmFtZS1zdGF0ZSBpZD10YWctb3Blbi1zdGF0ZTp0YWctbmFtZS1zdGF0ZS0yPnRhZyBuYW1lIHN0YXRlPC9hPi4gKERvbid0IGVtaXQgdGhlIHRva2VuIHlldDsgZnVydGhlciBkZXRhaWxzIHdpbGwKKyAgIGJlIGZpbGxlZCBpbiBiZWZvcmUgaXQgaXMgZW1pdHRlZC4pPGR0PlUrMDAzRiBRVUVTVElPTiBNQVJLICg/KTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD10YWctb3Blbi1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYm9ndXMtY29tbWVudC1zdGF0ZSBpZD10YWctb3Blbi1zdGF0ZTpib2d1cy1jb21tZW50LXN0YXRlPmJvZ3VzIGNvbW1lbnQgc3RhdGU8L2E+LjxkdD5Bbnl0aGluZyBlbHNlPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRhZy1vcGVuLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9dGFnLW9wZW4tc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTgorICAgY2hhcmFjdGVyIHRva2VuLiBSZWNvbnN1bWUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXRhZy1vcGVuLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTM+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+LjwvZGw+CisKKyAgPGg1IGlkPWVuZC10YWctb3Blbi1zdGF0ZT4xMi4yLjQuOSA8ZGZuPkVuZCB0YWcgb3BlbiBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9ZW5kLXRhZy1vcGVuLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3VwcGVyY2FzZS1hc2NpaS1sZXR0ZXJzIGlkPWVuZC10YWctb3Blbi1zdGF0ZTp1cHBlcmNhc2UtYXNjaWktbGV0dGVycz5VcHBlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5DcmVhdGUgYSBuZXcgZW5kIHRhZyB0b2tlbiwgc2V0IGl0cyB0YWcgbmFtZSB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWVuZC10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50CisgICBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZSBjaGFyYWN0ZXIncyBjb2RlIHBvaW50KSwgdGhlbiBzd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3RhZy1uYW1lLXN0YXRlIGlkPWVuZC10YWctb3Blbi1zdGF0ZTp0YWctbmFtZS1zdGF0ZT50YWcKKyAgIG5hbWUgc3RhdGU8L2E+LiAoRG9uJ3QgZW1pdCB0aGUgdG9rZW4geWV0OyBmdXJ0aGVyIGRldGFpbHMgd2lsbCBiZSBmaWxsZWQgaW4gYmVmb3JlIGl0IGlzCisgICBlbWl0dGVkLik8ZHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2xvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzIGlkPWVuZC10YWctb3Blbi1zdGF0ZTpsb3dlcmNhc2UtYXNjaWktbGV0dGVycz5Mb3dlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5DcmVhdGUgYSBuZXcgZW5kIHRhZyB0b2tlbiwgc2V0IGl0cyB0YWcgbmFtZSB0byB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9ZW5kLXRhZy1vcGVuLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+LAorICAgdGhlbiBzd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3RhZy1uYW1lLXN0YXRlIGlkPWVuZC10YWctb3Blbi1zdGF0ZTp0YWctbmFtZS1zdGF0ZS0yPnRhZyBuYW1lIHN0YXRlPC9hPi4gKERvbid0IGVtaXQgdGhlIHRva2VuIHlldDsgZnVydGhlciBkZXRhaWxzIHdpbGwKKyAgIGJlIGZpbGxlZCBpbiBiZWZvcmUgaXQgaXMgZW1pdHRlZC4pPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZW5kLXRhZy1vcGVuLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWVuZC10YWctb3Blbi1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZW5kLXRhZy1vcGVuLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9ZW5kLXRhZy1vcGVuLXN0YXRlOmRhdGEtc3RhdGUtMj5kYXRhIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTgorICAgY2hhcmFjdGVyIHRva2VuIGFuZCBhIFUrMDAyRiBTT0xJRFVTIGNoYXJhY3RlciB0b2tlbi4gUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWVuZC10YWctb3Blbi1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNib2d1cy1jb21tZW50LXN0YXRlIGlkPWVuZC10YWctb3Blbi1zdGF0ZTpib2d1cy1jb21tZW50LXN0YXRlPmJvZ3VzIGNvbW1lbnQgc3RhdGU8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9dGFnLW5hbWUtc3RhdGU+MTIuMi40LjEwIDxkZm4+VGFnIG5hbWUgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXRhZy1uYW1lLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlIGlkPXRhZy1uYW1lLXN0YXRlOmJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZT5iZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+LjxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlIGlkPXRhZy1uYW1lLXN0YXRlOnNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+c2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPXRhZy1uYW1lLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIGN1cnJlbnQgdGFnIHRva2VuLjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9dGFnLW5hbWUtc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+QXBwZW5kIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9dGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZQorICAgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCkgdG8gdGhlIGN1cnJlbnQgdGFnIHRva2VuJ3MgdGFnIG5hbWUuPGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRhZy1uYW1lLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gQXBwZW5kIGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG8gdGhlIGN1cnJlbnQgdGFnCisgICB0b2tlbidzIHRhZyBuYW1lLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dGFnLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD10YWctbmFtZS1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIFJlY29uc3VtZSB0aGUgRU9GCisgICBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+QXBwZW5kIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD10YWctbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0yPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgY3VycmVudCB0YWcgdG9rZW4ncyB0YWcgbmFtZS48L2RsPgorCisKKyAgPGg1IGlkPXJjZGF0YS1sZXNzLXRoYW4tc2lnbi1zdGF0ZT4xMi4yLjQuMTEgPGRmbj5SQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2Rmbj48L2g1PgorCisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDJGIFNPTElEVVMgKC8pPGRkPlNldCB0aGUgPHZhciBpZD1yY2RhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlcj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeSBidWZmZXI8L2E+PC92YXI+IHRvIHRoZSBlbXB0eSBzdHJpbmcuIFN3aXRjaCB0bworICAgdGhlIDxhIGhyZWY9I3JjZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGUgaWQ9cmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlOnJjZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU+UkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZTwvYT4uPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNyY2RhdGEtc3RhdGUgaWQ9cmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlOnJjZGF0YS1zdGF0ZT5SQ0RBVEEgc3RhdGU8L2E+LiBFbWl0IGEgVSswMDNDIExFU1MtVEhBTiBTSUdOIGNoYXJhY3RlciB0b2tlbi4KKyAgIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPXJjZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU+MTIuMi40LjEyIDxkZm4+UkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZTwvZGZuPjwvaDU+CisKKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1yY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3VwcGVyY2FzZS1hc2NpaS1sZXR0ZXJzIGlkPXJjZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+Q3JlYXRlIGEgbmV3IGVuZCB0YWcgdG9rZW4sIGFuZCBzZXQgaXRzIHRhZyBuYW1lIHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUKKyAgIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZSBjaGFyYWN0ZXIncyBjb2RlIHBvaW50KS4gQXBwZW5kIHRoZQorICAgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmNkYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0yPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgPHZhciBpZD1yY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlOnRlbXBvcmFyeS1idWZmZXI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkKKyAgIGJ1ZmZlcjwvYT48L3Zhcj4uIEZpbmFsbHksIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jcmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZSBpZD1yY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlOnJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU+UkNEQVRBIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT4uIChEb24ndCBlbWl0IHRoZQorICAgdG9rZW4geWV0OyBmdXJ0aGVyIGRldGFpbHMgd2lsbCBiZSBmaWxsZWQgaW4gYmVmb3JlIGl0IGlzIGVtaXR0ZWQuKTxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbG93ZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9cmNkYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpsb3dlcmNhc2UtYXNjaWktbGV0dGVycz5Mb3dlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5DcmVhdGUgYSBuZXcgZW5kIHRhZyB0b2tlbiwgYW5kIHNldCBpdHMgdGFnIG5hbWUgdG8gdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMz5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4uCisgICBBcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItND5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9cmNkYXRhLWVuZC10YWctb3Blbi1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyLTI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkKKyAgIGJ1ZmZlcjwvYT48L3Zhcj4uIEZpbmFsbHksIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jcmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZSBpZD1yY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlOnJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGUtMj5SQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlPC9hPi4gKERvbid0IGVtaXQgdGhlCisgICB0b2tlbiB5ZXQ7IGZ1cnRoZXIgZGV0YWlscyB3aWxsIGJlIGZpbGxlZCBpbiBiZWZvcmUgaXQgaXMgZW1pdHRlZC4pPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNyY2RhdGEtc3RhdGUgaWQ9cmNkYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpyY2RhdGEtc3RhdGU+UkNEQVRBIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIgdG9rZW4gYW5kIGEKKyAgIFUrMDAyRiBTT0xJRFVTIGNoYXJhY3RlciB0b2tlbi4gUmVjb25zdW1lIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1yY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTU+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9cmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZT4xMi4yLjQuMTMgPGRmbj5SQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlPC9kZm4+PC9oNT4KKworCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+SWYgdGhlIGN1cnJlbnQgZW5kIHRhZyB0b2tlbiBpcyBhbiA8YSBocmVmPSNhcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6YXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbj5hcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuPC9hPiwgdGhlbiBzd2l0Y2ggdG8gdGhlCisgICA8YSBocmVmPSNiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGUgaWQ9cmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZTpiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU+YmVmb3JlIGF0dHJpYnV0ZSBuYW1lIHN0YXRlPC9hPi4gT3RoZXJ3aXNlLCB0cmVhdCBpdCBhcyBwZXIgdGhlICJhbnl0aGluZyBlbHNlIiBlbnRyeQorICAgYmVsb3cuPGR0PlUrMDAyRiBTT0xJRFVTICgvKTxkZD5JZiB0aGUgY3VycmVudCBlbmQgdGFnIHRva2VuIGlzIGFuIDxhIGhyZWY9I2FwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4gaWQ9cmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZTphcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuLTI+YXBwcm9wcmlhdGUgZW5kIHRhZyB0b2tlbjwvYT4sIHRoZW4gc3dpdGNoIHRvIHRoZQorICAgPGEgaHJlZj0jc2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1zdGF0ZSBpZD1yY2RhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOnNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+c2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvYT4uIE90aGVyd2lzZSwgdHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkKKyAgIGJlbG93LjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPklmIHRoZSBjdXJyZW50IGVuZCB0YWcgdG9rZW4gaXMgYW4gPGEgaHJlZj0jYXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbiBpZD1yY2RhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOmFwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4tMz5hcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuPC9hPiwgdGhlbiBzd2l0Y2ggdG8gdGhlCisgICA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPiBhbmQgZW1pdCB0aGUgY3VycmVudCB0YWcgdG9rZW4uIE90aGVyd2lzZSwgdHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcKKyAgIGVsc2UiIGVudHJ5IGJlbG93LjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9cmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZTp1cHBlcmNhc2UtYXNjaWktbGV0dGVycz5VcHBlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5BcHBlbmQgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1yY2RhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiAoYWRkIDB4MDAyMCB0byB0aGUKKyAgIGNoYXJhY3RlcidzIGNvZGUgcG9pbnQpIHRvIHRoZSBjdXJyZW50IHRhZyB0b2tlbidzIHRhZyBuYW1lLiBBcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0CisgICBjaGFyYWN0ZXI8L2E+IHRvIHRoZSA8dmFyIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlcj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeSBidWZmZXI8L2E+PC92YXI+LjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbG93ZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9cmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZTpsb3dlcmNhc2UtYXNjaWktbGV0dGVycz5Mb3dlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5BcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMz5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGN1cnJlbnQgdGFnIHRva2VuJ3MgdGFnIG5hbWUuIEFwcGVuZAorICAgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItND5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9cmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyLTI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkKKyAgIGJ1ZmZlcjwvYT48L3Zhcj4uPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNyY2RhdGEtc3RhdGUgaWQ9cmNkYXRhLWVuZC10YWctbmFtZS1zdGF0ZTpyY2RhdGEtc3RhdGU+UkNEQVRBIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIgdG9rZW4sIGEKKyAgIFUrMDAyRiBTT0xJRFVTIGNoYXJhY3RlciB0b2tlbiwgYW5kIGEgY2hhcmFjdGVyIHRva2VuIGZvciBlYWNoIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSA8dmFyIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlci0zPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gKGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGJ1ZmZlcikuCisgICBSZWNvbnN1bWUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItNT5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1yYXd0ZXh0LWxlc3MtdGhhbi1zaWduLXN0YXRlPjEyLjIuNC4xNCA8ZGZuPlJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2Rmbj48L2g1PgorCisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmF3dGV4dC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyRiBTT0xJRFVTICgvKTxkZD5TZXQgdGhlIDx2YXIgaWQ9cmF3dGV4dC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gdG8gdGhlIGVtcHR5IHN0cmluZy4gU3dpdGNoIHRvCisgICB0aGUgPGEgaHJlZj0jcmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGUgaWQ9cmF3dGV4dC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpyYXd0ZXh0LWVuZC10YWctb3Blbi1zdGF0ZT5SQVdURVhUIGVuZCB0YWcgb3BlbiBzdGF0ZTwvYT4uPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNyYXd0ZXh0LXN0YXRlIGlkPXJhd3RleHQtbGVzcy10aGFuLXNpZ24tc3RhdGU6cmF3dGV4dC1zdGF0ZT5SQVdURVhUIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIgdG9rZW4uCisgICBSZWNvbnN1bWUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJhd3RleHQtbGVzcy10aGFuLXNpZ24tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9cmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGU+MTIuMi40LjE1IDxkZm4+UkFXVEVYVCBlbmQgdGFnIG9wZW4gc3RhdGU8L2Rmbj48L2g1PgorCisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9cmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+Q3JlYXRlIGEgbmV3IGVuZCB0YWcgdG9rZW4sIGFuZCBzZXQgaXRzIHRhZyBuYW1lIHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUKKyAgIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJhd3RleHQtZW5kLXRhZy1vcGVuLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiAoYWRkIDB4MDAyMCB0byB0aGUgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCkuIEFwcGVuZCB0aGUKKyAgIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJhd3RleHQtZW5kLXRhZy1vcGVuLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSA8dmFyIGlkPXJhd3RleHQtZW5kLXRhZy1vcGVuLXN0YXRlOnRlbXBvcmFyeS1idWZmZXI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkKKyAgIGJ1ZmZlcjwvYT48L3Zhcj4uIEZpbmFsbHksIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jcmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGUgaWQ9cmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGU6cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU+UkFXVEVYVCBlbmQgdGFnIG5hbWUgc3RhdGU8L2E+LiAoRG9uJ3QgZW1pdCB0aGUKKyAgIHRva2VuIHlldDsgZnVydGhlciBkZXRhaWxzIHdpbGwgYmUgZmlsbGVkIGluIGJlZm9yZSBpdCBpcyBlbWl0dGVkLik8ZHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2xvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzIGlkPXJhd3RleHQtZW5kLXRhZy1vcGVuLXN0YXRlOmxvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzPkxvd2VyY2FzZSBBU0NJSSBsZXR0ZXI8L2E+PGRkPkNyZWF0ZSBhIG5ldyBlbmQgdGFnIHRva2VuLCBhbmQgc2V0IGl0cyB0YWcgbmFtZSB0byB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMz5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4uCisgICBBcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJhd3RleHQtZW5kLXRhZy1vcGVuLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTQ+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSA8dmFyIGlkPXJhd3RleHQtZW5kLXRhZy1vcGVuLXN0YXRlOnRlbXBvcmFyeS1idWZmZXItMj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeQorICAgYnVmZmVyPC9hPjwvdmFyPi4gRmluYWxseSwgc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNyYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZSBpZD1yYXd0ZXh0LWVuZC10YWctb3Blbi1zdGF0ZTpyYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZS0yPlJBV1RFWFQgZW5kIHRhZyBuYW1lIHN0YXRlPC9hPi4gKERvbid0IGVtaXQgdGhlCisgICB0b2tlbiB5ZXQ7IGZ1cnRoZXIgZGV0YWlscyB3aWxsIGJlIGZpbGxlZCBpbiBiZWZvcmUgaXQgaXMgZW1pdHRlZC4pPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNyYXd0ZXh0LXN0YXRlIGlkPXJhd3RleHQtZW5kLXRhZy1vcGVuLXN0YXRlOnJhd3RleHQtc3RhdGU+UkFXVEVYVCBzdGF0ZTwvYT4uIEVtaXQgYSBVKzAwM0MgTEVTUy1USEFOIFNJR04gY2hhcmFjdGVyIHRva2VuIGFuZCBhCisgICBVKzAwMkYgU09MSURVUyBjaGFyYWN0ZXIgdG9rZW4uIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmF3dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItNT5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZT4xMi4yLjQuMTYgPGRmbj5SQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZTwvZGZuPjwvaDU+CisKKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkZD5JZiB0aGUgY3VycmVudCBlbmQgdGFnIHRva2VuIGlzIGFuIDxhIGhyZWY9I2FwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4gaWQ9cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU6YXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbj5hcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuPC9hPiwgdGhlbiBzd2l0Y2ggdG8gdGhlCisgICA8YSBocmVmPSNiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGUgaWQ9cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU6YmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlPmJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT4uIE90aGVyd2lzZSwgdHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkKKyAgIGJlbG93LjxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZGQ+SWYgdGhlIGN1cnJlbnQgZW5kIHRhZyB0b2tlbiBpcyBhbiA8YSBocmVmPSNhcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuIGlkPXJhd3RleHQtZW5kLXRhZy1uYW1lLXN0YXRlOmFwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4tMj5hcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuPC9hPiwgdGhlbiBzd2l0Y2ggdG8gdGhlCisgICA8YSBocmVmPSNzZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlIGlkPXJhd3RleHQtZW5kLXRhZy1uYW1lLXN0YXRlOnNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+c2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvYT4uIE90aGVyd2lzZSwgdHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkKKyAgIGJlbG93LjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPklmIHRoZSBjdXJyZW50IGVuZCB0YWcgdG9rZW4gaXMgYW4gPGEgaHJlZj0jYXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbiBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTphcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuLTM+YXBwcm9wcmlhdGUgZW5kIHRhZyB0b2tlbjwvYT4sIHRoZW4gc3dpdGNoIHRvIHRoZQorICAgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+IGFuZCBlbWl0IHRoZSBjdXJyZW50IHRhZyB0b2tlbi4gT3RoZXJ3aXNlLCB0cmVhdCBpdCBhcyBwZXIgdGhlICJhbnl0aGluZworICAgZWxzZSIgZW50cnkgYmVsb3cuPGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN1cHBlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTp1cHBlcmNhc2UtYXNjaWktbGV0dGVycz5VcHBlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5BcHBlbmQgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gKGFkZCAweDAwMjAgdG8gdGhlCisgICBjaGFyYWN0ZXIncyBjb2RlIHBvaW50KSB0byB0aGUgY3VycmVudCB0YWcgdG9rZW4ncyB0YWcgbmFtZS4gQXBwZW5kIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0yPmN1cnJlbnQgaW5wdXQKKyAgIGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlcj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeSBidWZmZXI8L2E+PC92YXI+LjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbG93ZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU6bG93ZXJjYXNlLWFzY2lpLWxldHRlcnM+TG93ZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+QXBwZW5kIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0zPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgY3VycmVudCB0YWcgdG9rZW4ncyB0YWcgbmFtZS4gQXBwZW5kCisgICB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItND5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlci0yPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5CisgICBidWZmZXI8L2E+PC92YXI+LjxkdD5Bbnl0aGluZyBlbHNlPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jcmF3dGV4dC1zdGF0ZSBpZD1yYXd0ZXh0LWVuZC10YWctbmFtZS1zdGF0ZTpyYXd0ZXh0LXN0YXRlPlJBV1RFWFQgc3RhdGU8L2E+LiBFbWl0IGEgVSswMDNDIExFU1MtVEhBTiBTSUdOIGNoYXJhY3RlciB0b2tlbiwgYQorICAgVSswMDJGIFNPTElEVVMgY2hhcmFjdGVyIHRva2VuLCBhbmQgYSBjaGFyYWN0ZXIgdG9rZW4gZm9yIGVhY2ggb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIDx2YXIgaWQ9cmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlci0zPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gKGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGJ1ZmZlcikuCisgICBSZWNvbnN1bWUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXJhd3RleHQtZW5kLXRhZy1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTU+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9c2NyaXB0LWRhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGU+MTIuMi40LjE3IDxkZm4+U2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDJGIFNPTElEVVMgKC8pPGRkPlNldCB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1sZXNzLXRoYW4tc2lnbi1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gdG8gdGhlIGVtcHR5IHN0cmluZy4gU3dpdGNoIHRvCisgICB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZW5kLXRhZy1vcGVuLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlOnNjcmlwdC1kYXRhLWVuZC10YWctb3Blbi1zdGF0ZT5zY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGU8L2E+LjxkdD5VKzAwMjEgRVhDTEFNQVRJT04gTUFSSyAoISk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1lc2NhcGUtc3RhcnQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LXN0YXRlPnNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBzdGF0ZTwvYT4uIEVtaXQgYSBVKzAwM0MgTEVTUy1USEFOIFNJR04KKyAgIGNoYXJhY3RlciB0b2tlbiBhbmQgYSBVKzAwMjEgRVhDTEFNQVRJT04gTUFSSyBjaGFyYWN0ZXIgdG9rZW4uPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpzY3JpcHQtZGF0YS1zdGF0ZT5zY3JpcHQgZGF0YSBzdGF0ZTwvYT4uIEVtaXQgYSBVKzAwM0MgTEVTUy1USEFOIFNJR04gY2hhcmFjdGVyIHRva2VuLgorICAgUmVjb25zdW1lIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU+MTIuMi40LjE4IDxkZm4+U2NyaXB0IGRhdGEgZW5kIHRhZyBvcGVuIHN0YXRlPC9kZm4+PC9oNT4KKworCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN1cHBlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+Q3JlYXRlIGEgbmV3IGVuZCB0YWcgdG9rZW4sIGFuZCBzZXQgaXRzIHRhZyBuYW1lIHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUKKyAgIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gKGFkZCAweDAwMjAgdG8gdGhlIGNoYXJhY3RlcidzIGNvZGUgcG9pbnQpLiBBcHBlbmQgdGhlCisgICA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1vcGVuLXN0YXRlOnRlbXBvcmFyeS1idWZmZXI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkKKyAgIGJ1ZmZlcjwvYT48L3Zhcj4uIEZpbmFsbHksIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpzY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU+c2NyaXB0IGRhdGEgZW5kIHRhZyBuYW1lIHN0YXRlPC9hPi4gKERvbid0IGVtaXQgdGhlCisgICB0b2tlbiB5ZXQ7IGZ1cnRoZXIgZGV0YWlscyB3aWxsIGJlIGZpbGxlZCBpbiBiZWZvcmUgaXQgaXMgZW1pdHRlZC4pPGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNsb3dlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6bG93ZXJjYXNlLWFzY2lpLWxldHRlcnM+TG93ZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+Q3JlYXRlIGEgbmV3IGVuZCB0YWcgdG9rZW4sIGFuZCBzZXQgaXRzIHRhZyBuYW1lIHRvIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMz5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4uCisgICBBcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci00PmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlci0yPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5CisgICBidWZmZXI8L2E+PC92YXI+LiBGaW5hbGx5LCBzd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVuZC10YWctbmFtZS1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlLTI+c2NyaXB0IGRhdGEgZW5kIHRhZyBuYW1lIHN0YXRlPC9hPi4gKERvbid0IGVtaXQgdGhlCisgICB0b2tlbiB5ZXQ7IGZ1cnRoZXIgZGV0YWlscyB3aWxsIGJlIGZpbGxlZCBpbiBiZWZvcmUgaXQgaXMgZW1pdHRlZC4pPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGU6c2NyaXB0LWRhdGEtc3RhdGU+c2NyaXB0IGRhdGEgc3RhdGU8L2E+LiBFbWl0IGEgVSswMDNDIExFU1MtVEhBTiBTSUdOIGNoYXJhY3RlciB0b2tlbgorICAgYW5kIGEgVSswMDJGIFNPTElEVVMgY2hhcmFjdGVyIHRva2VuLiBSZWNvbnN1bWUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci01PmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPXNjcmlwdC1kYXRhLWVuZC10YWctbmFtZS1zdGF0ZT4xMi4yLjQuMTkgPGRmbj5TY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGU8L2Rmbj48L2g1PgorCisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGRkPklmIHRoZSBjdXJyZW50IGVuZCB0YWcgdG9rZW4gaXMgYW4gPGEgaHJlZj0jYXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbiBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6YXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbj5hcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuPC9hPiwgdGhlbiBzd2l0Y2ggdG8gdGhlCisgICA8YSBocmVmPSNiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOmJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZT5iZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+LiBPdGhlcndpc2UsIHRyZWF0IGl0IGFzIHBlciB0aGUgImFueXRoaW5nIGVsc2UiIGVudHJ5CisgICBiZWxvdy48ZHQ+VSswMDJGIFNPTElEVVMgKC8pPGRkPklmIHRoZSBjdXJyZW50IGVuZCB0YWcgdG9rZW4gaXMgYW4gPGEgaHJlZj0jYXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbiBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6YXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbi0yPmFwcHJvcHJpYXRlIGVuZCB0YWcgdG9rZW48L2E+LCB0aGVuIHN3aXRjaCB0byB0aGUKKyAgIDxhIGhyZWY9I3NlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOnNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+c2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvYT4uIE90aGVyd2lzZSwgdHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkKKyAgIGJlbG93LjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPklmIHRoZSBjdXJyZW50IGVuZCB0YWcgdG9rZW4gaXMgYW4gPGEgaHJlZj0jYXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbiBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6YXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbi0zPmFwcHJvcHJpYXRlIGVuZCB0YWcgdG9rZW48L2E+LCB0aGVuIHN3aXRjaCB0byB0aGUKKyAgIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4gYW5kIGVtaXQgdGhlIGN1cnJlbnQgdGFnIHRva2VuLiBPdGhlcndpc2UsIHRyZWF0IGl0IGFzIHBlciB0aGUgImFueXRoaW5nCisgICBlbHNlIiBlbnRyeSBiZWxvdy48ZHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3VwcGVyY2FzZS1hc2NpaS1sZXR0ZXJzIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctbmFtZS1zdGF0ZTp1cHBlcmNhc2UtYXNjaWktbGV0dGVycz5VcHBlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5BcHBlbmQgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZQorICAgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCkgdG8gdGhlIGN1cnJlbnQgdGFnIHRva2VuJ3MgdGFnIG5hbWUuIEFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTI+Y3VycmVudCBpbnB1dAorICAgY2hhcmFjdGVyPC9hPiB0byB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlcj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeSBidWZmZXI8L2E+PC92YXI+LjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbG93ZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOmxvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzPkxvd2VyY2FzZSBBU0NJSSBsZXR0ZXI8L2E+PGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTM+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSBjdXJyZW50IHRhZyB0b2tlbidzIHRhZyBuYW1lLiBBcHBlbmQKKyAgIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItND5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9c2NyaXB0LWRhdGEtZW5kLXRhZy1uYW1lLXN0YXRlOnRlbXBvcmFyeS1idWZmZXItMj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeQorICAgYnVmZmVyPC9hPjwvdmFyPi48ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctbmFtZS1zdGF0ZTpzY3JpcHQtZGF0YS1zdGF0ZT5zY3JpcHQgZGF0YSBzdGF0ZTwvYT4uIEVtaXQgYSBVKzAwM0MgTEVTUy1USEFOIFNJR04gY2hhcmFjdGVyIHRva2VuLCBhCisgICBVKzAwMkYgU09MSURVUyBjaGFyYWN0ZXIgdG9rZW4sIGFuZCBhIGNoYXJhY3RlciB0b2tlbiBmb3IgZWFjaCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlci0zPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gKGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGJ1ZmZlcikuCisgICBSZWNvbnN1bWUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVuZC10YWctbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci01PmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPXNjcmlwdC1kYXRhLWVzY2FwZS1zdGFydC1zdGF0ZT4xMi4yLjQuMjAgPGRmbj5TY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZS1zdGFydC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyRCBIWVBIRU4tTUlOVVMgKC0pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LWRhc2gtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LXN0YXRlOnNjcmlwdC1kYXRhLWVzY2FwZS1zdGFydC1kYXNoLXN0YXRlPnNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMKKyAgIGNoYXJhY3RlciB0b2tlbi48ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZS1zdGFydC1zdGF0ZTpzY3JpcHQtZGF0YS1zdGF0ZT5zY3JpcHQgZGF0YSBzdGF0ZTwvYT4uIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQKKyAgIGNoYXJhY3RlcjwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1lc2NhcGUtc3RhcnQtZGFzaC1zdGF0ZT4xMi4yLjQuMjEgPGRmbj5TY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgZGFzaCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LWRhc2gtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMkQgSFlQSEVOLU1JTlVTICgtKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZS1zdGFydC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlPnNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMKKyAgIGNoYXJhY3RlciB0b2tlbi48ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZS1zdGFydC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLXN0YXRlPnNjcmlwdCBkYXRhIHN0YXRlPC9hPi4gUmVjb25zdW1lIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGUtc3RhcnQtZGFzaC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0CisgICBjaGFyYWN0ZXI8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZT4xMi4yLjQuMjIgPGRmbj5TY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDJEIEhZUEhFTi1NSU5VUyAoLSk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZTpzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtc3RhdGU+c2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMKKyAgIGNoYXJhY3RlciB0b2tlbi48ZHQ+VSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZTpzY3JpcHQtZGF0YS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlPnNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gRW1pdCBhIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyIHRva2VuLjxkdD5FT0Y8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gUmVjb25zdW1lIHRoZSBFT0YKKyAgIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5FbWl0IHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiBhcyBhIGNoYXJhY3RlciB0b2tlbi48L2RsPgorCisKKyAgPGg1IGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1zdGF0ZT4xMi4yLjQuMjMgPGRmbj5TY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyRCBIWVBIRU4tTUlOVVMgKC0pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLWRhc2gtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlPnNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMKKyAgIGNoYXJhY3RlciB0b2tlbi48ZHQ+VSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU+c2NyaXB0IGRhdGEgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZTwvYT4uPGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZT5zY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlPC9hPi4gRW1pdCBhIFUrRkZGRAorICAgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0b2tlbi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZS0yPnNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGU8L2E+LiBFbWl0IHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dAorICAgY2hhcmFjdGVyPC9hPiBhcyBhIGNoYXJhY3RlciB0b2tlbi48L2RsPgorCisKKyAgPGg1IGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlPjEyLjIuNC4yNCA8ZGZuPlNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyRCBIWVBIRU4tTUlOVVMgKC0pPGRkPkVtaXQgYSBVKzAwMkQgSFlQSEVOLU1JTlVTIGNoYXJhY3RlciB0b2tlbi48ZHQ+VSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLWRhc2gtc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZT5zY3JpcHQgZGF0YSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlPC9hPi48ZHQ+VSswMDNFIEdSRUFURVItVEhBTiBTSUdOICg+KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLXN0YXRlPnNjcmlwdCBkYXRhIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiBjaGFyYWN0ZXIKKyAgIHRva2VuLjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZTpzY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlPnNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGU8L2E+LiBFbWl0IGEgVStGRkZECisgICBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLWRhc2gtc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZTpzY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlLTI+c2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZTwvYT4uIEVtaXQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQKKyAgIGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIgdG9rZW4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlPjEyLjIuNC4yNSA8ZGZuPlNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZGQ+U2V0IHRoZSA8dmFyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlcj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeSBidWZmZXI8L2E+PC92YXI+IHRvIHRoZSBlbXB0eSBzdHJpbmcuIFN3aXRjaCB0bworICAgdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1vcGVuLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU+c2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG9wZW4gc3RhdGU8L2E+LjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTp1cHBlcmNhc2UtYXNjaWktbGV0dGVycz5VcHBlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5TZXQgdGhlIDx2YXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyLTI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkgYnVmZmVyPC9hPjwvdmFyPiB0byB0aGUgZW1wdHkgc3RyaW5nLiBBcHBlbmQgdGhlCisgICBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gKGFkZCAweDAwMjAgdG8gdGhlIGNoYXJhY3RlcidzIGNvZGUKKyAgIHBvaW50KSB0byB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlOnRlbXBvcmFyeS1idWZmZXItMz48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeSBidWZmZXI8L2E+PC92YXI+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtc3RhcnQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlPnNjcmlwdAorICAgZGF0YSBkb3VibGUgZXNjYXBlIHN0YXJ0IHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIgdG9rZW4gYW5kIHRoZQorICAgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0yPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiBhcyBhIGNoYXJhY3RlciB0b2tlbi48ZHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2xvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6bG93ZXJjYXNlLWFzY2lpLWxldHRlcnM+TG93ZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+U2V0IHRoZSA8dmFyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlci00PjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gdG8gdGhlIGVtcHR5IHN0cmluZy4gQXBwZW5kIHRoZQorICAgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0zPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlOnRlbXBvcmFyeS1idWZmZXItNT48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeQorICAgYnVmZmVyPC9hPjwvdmFyPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZS0yPnNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGU8L2E+LiBFbWl0IGEgVSswMDNDCisgICBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIgdG9rZW4gYW5kIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTQ+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyCisgICB0b2tlbi48ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpzY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlPnNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGU8L2E+LiBFbWl0IGEgVSswMDNDIExFU1MtVEhBTiBTSUdOIGNoYXJhY3RlcgorICAgdG9rZW4uIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci01PmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1vcGVuLXN0YXRlPjEyLjIuNC4yNiA8ZGZuPlNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctb3Blbi1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN1cHBlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctb3Blbi1zdGF0ZTp1cHBlcmNhc2UtYXNjaWktbGV0dGVycz5VcHBlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5DcmVhdGUgYSBuZXcgZW5kIHRhZyB0b2tlbiwgYW5kIHNldCBpdHMgdGFnIG5hbWUgdG8gdGhlIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZQorICAgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZSBjaGFyYWN0ZXIncyBjb2RlIHBvaW50KS4gQXBwZW5kIHRoZQorICAgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlcj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeQorICAgYnVmZmVyPC9hPjwvdmFyPi4gRmluYWxseSwgc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctbmFtZS1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctb3Blbi1zdGF0ZTpzY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctbmFtZS1zdGF0ZT5zY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT4uIChEb24ndAorICAgZW1pdCB0aGUgdG9rZW4geWV0OyBmdXJ0aGVyIGRldGFpbHMgd2lsbCBiZSBmaWxsZWQgaW4gYmVmb3JlIGl0IGlzIGVtaXR0ZWQuKTxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbG93ZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU6bG93ZXJjYXNlLWFzY2lpLWxldHRlcnM+TG93ZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+Q3JlYXRlIGEgbmV3IGVuZCB0YWcgdG9rZW4sIGFuZCBzZXQgaXRzIHRhZyBuYW1lIHRvIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0zPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPi4KKyAgIEFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItND5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIDx2YXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU6dGVtcG9yYXJ5LWJ1ZmZlci0yPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5CisgICBidWZmZXI8L2E+PC92YXI+LiBGaW5hbGx5LCBzd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1vcGVuLXN0YXRlOnNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlLTI+c2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG5hbWUgc3RhdGU8L2E+LiAoRG9uJ3QKKyAgIGVtaXQgdGhlIHRva2VuIHlldDsgZnVydGhlciBkZXRhaWxzIHdpbGwgYmUgZmlsbGVkIGluIGJlZm9yZSBpdCBpcyBlbWl0dGVkLik8ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW9wZW4tc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZT5zY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIKKyAgIHRva2VuIGFuZCBhIFUrMDAyRiBTT0xJRFVTIGNoYXJhY3RlciB0b2tlbi4gUmVjb25zdW1lIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctb3Blbi1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci01PmN1cnJlbnQgaW5wdXQKKyAgIGNoYXJhY3RlcjwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctbmFtZS1zdGF0ZT4xMi4yLjQuMjcgPGRmbj5TY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+SWYgdGhlIGN1cnJlbnQgZW5kIHRhZyB0b2tlbiBpcyBhbiA8YSBocmVmPSNhcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlOmFwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4+YXBwcm9wcmlhdGUgZW5kIHRhZyB0b2tlbjwvYT4sIHRoZW4gc3dpdGNoIHRvIHRoZQorICAgPGEgaHJlZj0jYmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlOmJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZT5iZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+LiBPdGhlcndpc2UsIHRyZWF0IGl0IGFzIHBlciB0aGUgImFueXRoaW5nIGVsc2UiIGVudHJ5CisgICBiZWxvdy48ZHQ+VSswMDJGIFNPTElEVVMgKC8pPGRkPklmIHRoZSBjdXJyZW50IGVuZCB0YWcgdG9rZW4gaXMgYW4gPGEgaHJlZj0jYXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbiBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctbmFtZS1zdGF0ZTphcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuLTI+YXBwcm9wcmlhdGUgZW5kIHRhZyB0b2tlbjwvYT4sIHRoZW4gc3dpdGNoIHRvIHRoZQorICAgPGEgaHJlZj0jc2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctbmFtZS1zdGF0ZTpzZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlPnNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGU8L2E+LiBPdGhlcndpc2UsIHRyZWF0IGl0IGFzIHBlciB0aGUgImFueXRoaW5nIGVsc2UiIGVudHJ5CisgICBiZWxvdy48ZHQ+VSswMDNFIEdSRUFURVItVEhBTiBTSUdOICg+KTxkZD5JZiB0aGUgY3VycmVudCBlbmQgdGFnIHRva2VuIGlzIGFuIDxhIGhyZWY9I2FwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4gaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6YXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbi0zPmFwcHJvcHJpYXRlIGVuZCB0YWcgdG9rZW48L2E+LCB0aGVuIHN3aXRjaCB0byB0aGUKKyAgIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPiBhbmQgZW1pdCB0aGUgY3VycmVudCB0YWcgdG9rZW4uIE90aGVyd2lzZSwgdHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcKKyAgIGVsc2UiIGVudHJ5IGJlbG93LjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+QXBwZW5kIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZQorICAgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCkgdG8gdGhlIGN1cnJlbnQgdGFnIHRva2VuJ3MgdGFnIG5hbWUuIEFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0CisgICBjaGFyYWN0ZXI8L2E+IHRvIHRoZSA8dmFyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlOnRlbXBvcmFyeS1idWZmZXI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkgYnVmZmVyPC9hPjwvdmFyPi48ZHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2xvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlOmxvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzPkxvd2VyY2FzZSBBU0NJSSBsZXR0ZXI8L2E+PGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMz5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGN1cnJlbnQgdGFnIHRva2VuJ3MgdGFnIG5hbWUuIEFwcGVuZAorICAgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTQ+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSA8dmFyIGlkPXNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlOnRlbXBvcmFyeS1idWZmZXItMj48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeQorICAgYnVmZmVyPC9hPjwvdmFyPi48ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZT5zY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIKKyAgIHRva2VuLCBhIFUrMDAyRiBTT0xJRFVTIGNoYXJhY3RlciB0b2tlbiwgYW5kIGEgY2hhcmFjdGVyIHRva2VuIGZvciBlYWNoIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoZQorICAgPHZhciBpZD1zY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctbmFtZS1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyLTM+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkgYnVmZmVyPC9hPjwvdmFyPiAoaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZCB0byB0aGUKKyAgIGJ1ZmZlcikuIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItNT5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlPjEyLjIuNC4yOCA8ZGZuPlNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtc3RhcnQtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZHQ+VSswMDJGIFNPTElEVVMgKC8pPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+SWYgdGhlIDx2YXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gaXMgdGhlIHN0cmluZyAiPGNvZGU+c2NyaXB0PC9jb2RlPiIsIHRoZW4gc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlOnNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLXN0YXRlPnNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIHN0YXRlPC9hPi4KKyAgIE90aGVyd2lzZSwgc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtc3RhcnQtc3RhdGU6c2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZT5zY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlPC9hPi4gRW1pdCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0CisgICBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyIHRva2VuLjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZTp1cHBlcmNhc2UtYXNjaWktbGV0dGVycz5VcHBlcmNhc2UgQVNDSUkgbGV0dGVyPC9hPjxkZD5BcHBlbmQgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZQorICAgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCkgdG8gdGhlIDx2YXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyLTI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkgYnVmZmVyPC9hPjwvdmFyPi4gRW1pdCB0aGUKKyAgIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtc3RhcnQtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMz5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIgdG9rZW4uPGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNsb3dlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlOmxvd2VyY2FzZS1hc2NpaS1sZXR0ZXJzPkxvd2VyY2FzZSBBU0NJSSBsZXR0ZXI8L2E+PGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci00PmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlOnRlbXBvcmFyeS1idWZmZXItMz48YSBocmVmPSN0ZW1wb3JhcnktYnVmZmVyPnRlbXBvcmFyeSBidWZmZXI8L2E+PC92YXI+LiBFbWl0IHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTU+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyCisgICB0b2tlbi48ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZTpzY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlLTI+c2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZTwvYT4uIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1zdGFydC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci02PmN1cnJlbnQgaW5wdXQKKyAgIGNoYXJhY3RlcjwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZT4xMi4yLjQuMjkgPGRmbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMkQgSFlQSEVOLU1JTlVTICgtKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGU6c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0ZT5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMKKyAgIGNoYXJhY3RlciB0b2tlbi48ZHQ+VSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLXN0YXRlOnNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlPnNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQworICAgTEVTUy1USEFOIFNJR04gY2hhcmFjdGVyIHRva2VuLjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIEVtaXQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0b2tlbi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gUmVjb25zdW1lIHRoZSBFT0YKKyAgIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5FbWl0IHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIgdG9rZW4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1kYXNoLXN0YXRlPjEyLjIuNC4zMCA8ZGZuPlNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMkQgSFlQSEVOLU1JTlVTICgtKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZT5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGU8L2E+LiBFbWl0IGEgVSswMDJECisgICBIWVBIRU4tTUlOVVMgY2hhcmFjdGVyIHRva2VuLjxkdD5VKzAwM0MgTEVTUy1USEFOIFNJR04gKCZsdDspPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZT5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZTwvYT4uIEVtaXQgYSBVKzAwM0MKKyAgIExFU1MtVEhBTiBTSUdOIGNoYXJhY3RlciB0b2tlbi48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZT5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvYT4uIEVtaXQgYQorICAgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG9rZW4uPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1kYXNoLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZS0yPnNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIHN0YXRlPC9hPi4gRW1pdCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0CisgICBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyIHRva2VuLjwvZGw+CisKKworICA8aDUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlPjEyLjIuNC4zMSA8ZGZuPlNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggZGFzaCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDJEIEhZUEhFTi1NSU5VUyAoLSk8ZGQ+RW1pdCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVyIHRva2VuLjxkdD5VKzAwM0MgTEVTUy1USEFOIFNJR04gKCZsdDspPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlPnNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzQworICAgTEVTUy1USEFOIFNJR04gY2hhcmFjdGVyIHRva2VuLjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlOnNjcmlwdC1kYXRhLXN0YXRlPnNjcmlwdCBkYXRhIHN0YXRlPC9hPi4gRW1pdCBhIFUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiBjaGFyYWN0ZXIKKyAgIHRva2VuLjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1kYXNoLWRhc2gtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZT5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvYT4uIEVtaXQgYQorICAgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG9rZW4uPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1kYXNoLWRhc2gtc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1kYXNoLWRhc2gtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gUmVjb25zdW1lIHRoZSBFT0YKKyAgIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZS0yPnNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIHN0YXRlPC9hPi4gRW1pdCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQKKyAgIGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIgdG9rZW4uPC9kbD4KKworCisgIDxoNSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZT4xMi4yLjQuMzIgPGRmbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZGQ+U2V0IHRoZSA8dmFyIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWxlc3MtdGhhbi1zaWduLXN0YXRlOnRlbXBvcmFyeS1idWZmZXI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkgYnVmZmVyPC9hPjwvdmFyPiB0byB0aGUgZW1wdHkgc3RyaW5nLiBTd2l0Y2ggdG8KKyAgIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZT5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIGVuZCBzdGF0ZTwvYT4uIEVtaXQgYSBVKzAwMkYgU09MSURVUyBjaGFyYWN0ZXIgdG9rZW4uPGR0PkFueXRoaW5nIGVsc2U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZSBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZTpzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZT5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvYT4uIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudAorICAgaW5wdXQgY2hhcmFjdGVyPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtZW5kLXN0YXRlPjEyLjIuNC4zMyA8ZGZuPlNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgZW5kIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZHQ+VSswMDNFIEdSRUFURVItVEhBTiBTSUdOICg+KTxkZD5JZiB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyPjxhIGhyZWY9I3RlbXBvcmFyeS1idWZmZXI+dGVtcG9yYXJ5IGJ1ZmZlcjwvYT48L3Zhcj4gaXMgdGhlIHN0cmluZyAiPGNvZGU+c2NyaXB0PC9jb2RlPiIsIHRoZW4gc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1lc2NhcGVkLXN0YXRlIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtZW5kLXN0YXRlOnNjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGU+c2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZTwvYT4uIE90aGVyd2lzZSwKKyAgIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGU6c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGU+c2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgc3RhdGU8L2E+LiBFbWl0IHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0CisgICBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyIHRva2VuLjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+QXBwZW5kIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gKGFkZCAweDAwMjAgdG8gdGhlCisgICBjaGFyYWN0ZXIncyBjb2RlIHBvaW50KSB0byB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyLTI+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkgYnVmZmVyPC9hPjwvdmFyPi4gRW1pdCB0aGUKKyAgIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPXNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtZW5kLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTM+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IGFzIGEgY2hhcmFjdGVyIHRva2VuLjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbG93ZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGU6bG93ZXJjYXNlLWFzY2lpLWxldHRlcnM+TG93ZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+QXBwZW5kIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci00PmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgPHZhciBpZD1zY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLWVuZC1zdGF0ZTp0ZW1wb3JhcnktYnVmZmVyLTM+PGEgaHJlZj0jdGVtcG9yYXJ5LWJ1ZmZlcj50ZW1wb3JhcnkgYnVmZmVyPC9hPjwvdmFyPi4gRW1pdCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItNT5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gYXMgYSBjaGFyYWN0ZXIKKyAgIHRva2VuLjxkdD5Bbnl0aGluZyBlbHNlPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGU6c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUtMj5zY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvYT4uIFJlY29uc3VtZSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItNj5jdXJyZW50CisgICBpbnB1dCBjaGFyYWN0ZXI8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9YmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlPjEyLjIuNC4zNCA8ZGZuPkJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGRkPklnbm9yZSB0aGUgY2hhcmFjdGVyLjxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlIGlkPWJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTpzZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlPnNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGU8L2E+LjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gRW1pdCB0aGUgY3VycmVudCB0YWcgdG9rZW4uPGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN1cHBlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+U3RhcnQgYSBuZXcgYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRhZyB0b2tlbi4gU2V0IHRoYXQgYXR0cmlidXRlJ3MgbmFtZSB0byB0aGUgbG93ZXJjYXNlCisgICB2ZXJzaW9uIG9mIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZSBjaGFyYWN0ZXIncyBjb2RlIHBvaW50KSwKKyAgIGFuZCBpdHMgdmFsdWUgdG8gdGhlIGVtcHR5IHN0cmluZy4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNhdHRyaWJ1dGUtbmFtZS1zdGF0ZSBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6YXR0cmlidXRlLW5hbWUtc3RhdGU+YXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBTdGFydCBhIG5ldyBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGFnIHRva2VuLiBTZXQgdGhhdAorICAgYXR0cmlidXRlJ3MgbmFtZSB0byBhIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyLCBhbmQgaXRzIHZhbHVlIHRvIHRoZSBlbXB0eSBzdHJpbmcuCisgICBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2F0dHJpYnV0ZS1uYW1lLXN0YXRlIGlkPWJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTphdHRyaWJ1dGUtbmFtZS1zdGF0ZS0yPmF0dHJpYnV0ZSBuYW1lIHN0YXRlPC9hPi48ZHQ+VSswMDIyIFFVT1RBVElPTiBNQVJLICgiKTxkdD5VKzAwMjcgQVBPU1RST1BIRSAoJyk8ZHQ+VSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KTxkdD5VKzAwM0QgRVFVQUxTIFNJR04gKD0pPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gVHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkgYmVsb3cuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3ItMz5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPlN0YXJ0IGEgbmV3IGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0YWcgdG9rZW4uIFNldCB0aGF0IGF0dHJpYnV0ZSdzIG5hbWUgdG8gdGhlCisgICA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1iZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4sIGFuZCBpdHMgdmFsdWUgdG8gdGhlIGVtcHR5IHN0cmluZy4gU3dpdGNoIHRvIHRoZQorICAgPGEgaHJlZj0jYXR0cmlidXRlLW5hbWUtc3RhdGUgaWQ9YmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmF0dHJpYnV0ZS1uYW1lLXN0YXRlLTM+YXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9YXR0cmlidXRlLW5hbWUtc3RhdGU+MTIuMi40LjM1IDxkZm4+QXR0cmlidXRlIG5hbWUgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZS1uYW1lLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGUgaWQ9YXR0cmlidXRlLW5hbWUtc3RhdGU6YWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGU+YWZ0ZXIgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+LjxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlIGlkPWF0dHJpYnV0ZS1uYW1lLXN0YXRlOnNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+c2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvYT4uPGR0PlUrMDAzRCBFUVVBTFMgU0lHTiAoPSk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNiZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlIGlkPWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmJlZm9yZS1hdHRyaWJ1dGUtdmFsdWUtc3RhdGU+YmVmb3JlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIGN1cnJlbnQgdGFnIHRva2VuLjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9YXR0cmlidXRlLW5hbWUtc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+QXBwZW5kIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IChhZGQgMHgwMDIwIHRvIHRoZQorICAgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCkgdG8gdGhlIGN1cnJlbnQgYXR0cmlidXRlJ3MgbmFtZS48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YXR0cmlidXRlLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBBcHBlbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY3VycmVudAorICAgYXR0cmlidXRlJ3MgbmFtZS48ZHQ+VSswMDIyIFFVT1RBVElPTiBNQVJLICgiKTxkdD5VKzAwMjcgQVBPU1RST1BIRSAoJyk8ZHQ+VSswMDNDIExFU1MtVEhBTiBTSUdOICgmbHQ7KTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gVHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkgYmVsb3cuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmRhdGEtc3RhdGUtMj5kYXRhIHN0YXRlPC9hPi4gUmVjb25zdW1lIHRoZSBFT0YKKyAgIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5BcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSBjdXJyZW50IGF0dHJpYnV0ZSdzIG5hbWUuPC9kbD4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGxlYXZlcyB0aGUgYXR0cmlidXRlIG5hbWUgc3RhdGUgKGFuZCBiZWZvcmUgZW1pdHRpbmcgdGhlIHRhZyB0b2tlbiwgaWYKKyAgYXBwcm9wcmlhdGUpLCB0aGUgY29tcGxldGUgYXR0cmlidXRlJ3MgbmFtZSBtdXN0IGJlIGNvbXBhcmVkIHRvIHRoZSBvdGhlciBhdHRyaWJ1dGVzIG9uIHRoZSBzYW1lCisgIHRva2VuOyBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIGF0dHJpYnV0ZSBvbiB0aGUgdG9rZW4gd2l0aCB0aGUgZXhhY3Qgc2FtZSBuYW1lLCB0aGVuIHRoaXMgaXMgYQorICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTpwYXJzZS1lcnJvci00PnBhcnNlIGVycm9yPC9hPiBhbmQgdGhlIG5ldyBhdHRyaWJ1dGUgbXVzdCBiZSByZW1vdmVkIGZyb20gdGhlIHRva2VuLjwvcD4KKworICA8cCBjbGFzcz1ub3RlPklmIGFuIGF0dHJpYnV0ZSBpcyBzbyByZW1vdmVkIGZyb20gYSB0b2tlbiwgaXQsIGFuZCB0aGUgdmFsdWUgdGhhdCBnZXRzIGFzc29jaWF0ZWQKKyAgd2l0aCBpdCwgaWYgYW55LCBhcmUgbmV2ZXIgc3Vic2VxdWVudGx5IHVzZWQgYnkgdGhlIHBhcnNlciwgYW5kIGFyZSB0aGVyZWZvcmUgZWZmZWN0aXZlbHkKKyAgZGlzY2FyZGVkLiBSZW1vdmluZyB0aGUgYXR0cmlidXRlIGluIHRoaXMgd2F5IGRvZXMgbm90IGNoYW5nZSBpdHMgc3RhdHVzIGFzIHRoZSAiY3VycmVudAorICBhdHRyaWJ1dGUiIGZvciB0aGUgcHVycG9zZXMgb2YgdGhlIHRva2VuaXplciwgaG93ZXZlci48L3A+CisKKworICA8aDUgaWQ9YWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGU+MTIuMi40LjM2IDxkZm4+QWZ0ZXIgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGRkPklnbm9yZSB0aGUgY2hhcmFjdGVyLjxkdD5VKzAwMkYgU09MSURVUyAoLyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNzZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOnNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+c2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvYT4uPGR0PlUrMDAzRCBFUVVBTFMgU0lHTiAoPSk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNiZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmJlZm9yZS1hdHRyaWJ1dGUtdmFsdWUtc3RhdGU+YmVmb3JlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIGN1cnJlbnQgdGFnIHRva2VuLjxkdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXBwZXJjYXNlLWFzY2lpLWxldHRlcnMgaWQ9YWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+U3RhcnQgYSBuZXcgYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRhZyB0b2tlbi4gU2V0IHRoYXQgYXR0cmlidXRlJ3MgbmFtZSB0byB0aGUgbG93ZXJjYXNlCisgICB2ZXJzaW9uIG9mIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1hZnRlci1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gKGFkZCAweDAwMjAgdG8gdGhlIGNoYXJhY3RlcidzIGNvZGUgcG9pbnQpLAorICAgYW5kIGl0cyB2YWx1ZSB0byB0aGUgZW1wdHkgc3RyaW5nLiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2F0dHJpYnV0ZS1uYW1lLXN0YXRlIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmF0dHJpYnV0ZS1uYW1lLXN0YXRlPmF0dHJpYnV0ZSBuYW1lIHN0YXRlPC9hPi48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBTdGFydCBhIG5ldyBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGFnIHRva2VuLiBTZXQgdGhhdAorICAgYXR0cmlidXRlJ3MgbmFtZSB0byBhIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyLCBhbmQgaXRzIHZhbHVlIHRvIHRoZSBlbXB0eSBzdHJpbmcuCisgICBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2F0dHJpYnV0ZS1uYW1lLXN0YXRlIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOmF0dHJpYnV0ZS1uYW1lLXN0YXRlLTI+YXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+LjxkdD5VKzAwMjIgUVVPVEFUSU9OIE1BUksgKCIpPGR0PlUrMDAyNyBBUE9TVFJPUEhFICgnKTxkdD5VKzAwM0MgTEVTUy1USEFOIFNJR04gKCZsdDspPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBUcmVhdCBpdCBhcyBwZXIgdGhlICJhbnl0aGluZyBlbHNlIiBlbnRyeSBiZWxvdy48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlOnBhcnNlLWVycm9yLTM+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPlN0YXJ0IGEgbmV3IGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0YWcgdG9rZW4uIFNldCB0aGF0IGF0dHJpYnV0ZSdzIG5hbWUgdG8gdGhlCisgICA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1hZnRlci1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0yPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiwgYW5kIGl0cyB2YWx1ZSB0byB0aGUgZW1wdHkgc3RyaW5nLiBTd2l0Y2ggdG8gdGhlCisgICA8YSBocmVmPSNhdHRyaWJ1dGUtbmFtZS1zdGF0ZSBpZD1hZnRlci1hdHRyaWJ1dGUtbmFtZS1zdGF0ZTphdHRyaWJ1dGUtbmFtZS1zdGF0ZS0zPmF0dHJpYnV0ZSBuYW1lIHN0YXRlPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPWJlZm9yZS1hdHRyaWJ1dGUtdmFsdWUtc3RhdGU+MTIuMi40LjM3IDxkZm4+QmVmb3JlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YmVmb3JlLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkZD5JZ25vcmUgdGhlIGNoYXJhY3Rlci48ZHQ+VSswMDIyIFFVT1RBVElPTiBNQVJLICgiKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGUgaWQ9YmVmb3JlLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZTphdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQpLXN0YXRlPmF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2E+LjxkdD5VKzAwMjYgQU1QRVJTQU5EICgmYW1wOyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZSBpZD1iZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlOmF0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlPmF0dHJpYnV0ZSB2YWx1ZSAodW5xdW90ZWQpIHN0YXRlPC9hPi4gUmVjb25zdW1lIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1iZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQKKyAgIGlucHV0IGNoYXJhY3RlcjwvYT4uPGR0PlUrMDAyNyBBUE9TVFJPUEhFICgnKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2F0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGUgaWQ9YmVmb3JlLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZTphdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlPmF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1iZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gQXBwZW5kIGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG8gdGhlIGN1cnJlbnQKKyAgIGF0dHJpYnV0ZSdzIHZhbHVlLiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2F0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlIGlkPWJlZm9yZS1hdHRyaWJ1dGUtdmFsdWUtc3RhdGU6YXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGUtMj5hdHRyaWJ1dGUgdmFsdWUgKHVucXVvdGVkKSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmVmb3JlLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWJlZm9yZS1hdHRyaWJ1dGUtdmFsdWUtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gRW1pdCB0aGUgY3VycmVudCB0YWcKKyAgIHRva2VuLjxkdD5VKzAwM0MgTEVTUy1USEFOIFNJR04gKCZsdDspPGR0PlUrMDAzRCBFUVVBTFMgU0lHTiAoPSk8ZHQ+VSswMDYwIEdSQVZFIEFDQ0VOVCAoYCk8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmVmb3JlLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gVHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkgYmVsb3cuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1iZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlOnBhcnNlLWVycm9yLTQ+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YmVmb3JlLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIFJlY29uc3VtZSB0aGUgRU9GCisgICBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+QXBwZW5kIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1iZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSBjdXJyZW50IGF0dHJpYnV0ZSdzIHZhbHVlLiBTd2l0Y2ggdG8KKyAgIHRoZSA8YSBocmVmPSNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZSBpZD1iZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlOmF0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlLTM+YXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGU8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9YXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZT4xMi4yLjQuMzggPGRmbj5BdHRyaWJ1dGUgdmFsdWUgKGRvdWJsZS1xdW90ZWQpIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1hdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQpLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDIyIFFVT1RBVElPTiBNQVJLICgiKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2FmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZSBpZD1hdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQpLXN0YXRlOmFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZT5hZnRlciBhdHRyaWJ1dGUgdmFsdWUgKHF1b3RlZCkgc3RhdGU8L2E+LjxkdD5VKzAwMjYgQU1QRVJTQU5EICgmYW1wOyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNjaGFyYWN0ZXItcmVmZXJlbmNlLWluLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZSBpZD1hdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQpLXN0YXRlOmNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmlidXRlLXZhbHVlLXN0YXRlPmNoYXJhY3RlciByZWZlcmVuY2UgaW4gYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPiwgd2l0aCB0aGUKKyAgIDxhIGhyZWY9I2FkZGl0aW9uYWwtYWxsb3dlZC1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZTphZGRpdGlvbmFsLWFsbG93ZWQtY2hhcmFjdGVyPmFkZGl0aW9uYWwgYWxsb3dlZCBjaGFyYWN0ZXI8L2E+IGJlaW5nIFUrMDAyMiBRVU9UQVRJT04gTUFSSyAoIikuPGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWF0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBBcHBlbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY3VycmVudAorICAgYXR0cmlidXRlJ3MgdmFsdWUuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQpLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGN1cnJlbnQgYXR0cmlidXRlJ3MgdmFsdWUuPC9kbD4KKworCisgIDxoNSBpZD1hdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlPjEyLjIuNC4zOSA8ZGZuPkF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMjcgQVBPU1RST1BIRSAoJyk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNhZnRlci1hdHRyaWJ1dGUtdmFsdWUtKHF1b3RlZCktc3RhdGUgaWQ9YXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTphZnRlci1hdHRyaWJ1dGUtdmFsdWUtKHF1b3RlZCktc3RhdGU+YWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlPC9hPi48ZHQ+VSswMDI2IEFNUEVSU0FORCAoJmFtcDspPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1hdHRyaWJ1dGUtdmFsdWUtc3RhdGUgaWQ9YXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpjaGFyYWN0ZXItcmVmZXJlbmNlLWluLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZT5jaGFyYWN0ZXIgcmVmZXJlbmNlIGluIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZTwvYT4sIHdpdGggdGhlCisgICA8YSBocmVmPSNhZGRpdGlvbmFsLWFsbG93ZWQtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU6YWRkaXRpb25hbC1hbGxvd2VkLWNoYXJhY3Rlcj5hZGRpdGlvbmFsIGFsbG93ZWQgY2hhcmFjdGVyPC9hPiBiZWluZyBVKzAwMjcgQVBPU1RST1BIRSAoJykuPGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWF0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBBcHBlbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY3VycmVudAorICAgYXR0cmlidXRlJ3MgdmFsdWUuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGN1cnJlbnQgYXR0cmlidXRlJ3MgdmFsdWUuPC9kbD4KKworCisgIDxoNSBpZD1hdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZT4xMi4yLjQuNDAgPGRmbj5BdHRyaWJ1dGUgdmFsdWUgKHVucXVvdGVkKSBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGUgaWQ9YXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGU6YmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlPmJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT4uPGR0PlUrMDAyNiBBTVBFUlNBTkQgKCZhbXA7KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmlidXRlLXZhbHVlLXN0YXRlIGlkPWF0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlOmNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmlidXRlLXZhbHVlLXN0YXRlPmNoYXJhY3RlciByZWZlcmVuY2UgaW4gYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPiwgd2l0aCB0aGUKKyAgIDxhIGhyZWY9I2FkZGl0aW9uYWwtYWxsb3dlZC1jaGFyYWN0ZXIgaWQ9YXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGU6YWRkaXRpb25hbC1hbGxvd2VkLWNoYXJhY3Rlcj5hZGRpdGlvbmFsIGFsbG93ZWQgY2hhcmFjdGVyPC9hPiBiZWluZyBVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pLjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1hdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjdXJyZW50IHRhZyB0b2tlbi48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBBcHBlbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY3VycmVudAorICAgYXR0cmlidXRlJ3MgdmFsdWUuPGR0PlUrMDAyMiBRVU9UQVRJT04gTUFSSyAoIik8ZHQ+VSswMDI3IEFQT1NUUk9QSEUgKCcpPGR0PlUrMDAzQyBMRVNTLVRIQU4gU0lHTiAoJmx0Oyk8ZHQ+VSswMDNEIEVRVUFMUyBTSUdOICg9KTxkdD5VKzAwNjAgR1JBVkUgQUNDRU5UIChgKTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gVHJlYXQgaXQgYXMgcGVyIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkgYmVsb3cuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWF0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlOmRhdGEtc3RhdGUtMj5kYXRhIHN0YXRlPC9hPi4gUmVjb25zdW1lIHRoZSBFT0YKKyAgIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5BcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWF0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgY3VycmVudCBhdHRyaWJ1dGUncyB2YWx1ZS48L2RsPgorCisKKyAgPGg1IGlkPWNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmlidXRlLXZhbHVlLXN0YXRlPjEyLjIuNC40MSA8ZGZuPkNoYXJhY3RlciByZWZlcmVuY2UgaW4gYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5BdHRlbXB0IHRvIDxhIGhyZWY9I2NvbnN1bWUtYS1jaGFyYWN0ZXItcmVmZXJlbmNlIGlkPWNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmlidXRlLXZhbHVlLXN0YXRlOmNvbnN1bWUtYS1jaGFyYWN0ZXItcmVmZXJlbmNlPmNvbnN1bWUgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlPC9hPi48L3A+CisKKyAgPHA+SWYgbm90aGluZyBpcyByZXR1cm5lZCwgYXBwZW5kIGEgVSswMDI2IEFNUEVSU0FORCBjaGFyYWN0ZXIgKCZhbXA7KSB0byB0aGUgY3VycmVudCBhdHRyaWJ1dGUncworICB2YWx1ZS48L3A+CisKKyAgPHA+T3RoZXJ3aXNlLCBhcHBlbmQgdGhlIHJldHVybmVkIGNoYXJhY3RlciB0b2tlbnMgdG8gdGhlIGN1cnJlbnQgYXR0cmlidXRlJ3MgdmFsdWUuPC9wPgorCisgIDxwPkZpbmFsbHksIHN3aXRjaCBiYWNrIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUgdGhhdCBzd2l0Y2hlZCBpbnRvIHRoaXMgc3RhdGUuPC9wPgorCisKKyAgPGg1IGlkPWFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZT4xMi4yLjQuNDIgPGRmbj5BZnRlciBhdHRyaWJ1dGUgdmFsdWUgKHF1b3RlZCkgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2JlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZSBpZD1hZnRlci1hdHRyaWJ1dGUtdmFsdWUtKHF1b3RlZCktc3RhdGU6YmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlPmJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT4uPGR0PlUrMDAyRiBTT0xJRFVTICgvKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I3NlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGUgaWQ9YWZ0ZXItYXR0cmlidXRlLXZhbHVlLShxdW90ZWQpLXN0YXRlOnNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+c2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjdXJyZW50IHRhZyB0b2tlbi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1hZnRlci1hdHRyaWJ1dGUtdmFsdWUtKHF1b3RlZCktc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGUgaWQ9YWZ0ZXItYXR0cmlidXRlLXZhbHVlLShxdW90ZWQpLXN0YXRlOmJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZS0yPmJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT4uIFJlY29uc3VtZQorICAgdGhlIGNoYXJhY3Rlci48L2RsPgorCisKKyAgPGg1IGlkPXNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU+MTIuMi40LjQzIDxkZm4+U2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9c2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U2V0IHRoZSA8aSBpZD1zZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlOnNlbGYtY2xvc2luZy1mbGFnPjxhIGhyZWY9I3NlbGYtY2xvc2luZy1mbGFnPnNlbGYtY2xvc2luZyBmbGFnPC9hPjwvaT4gb2YgdGhlIGN1cnJlbnQgdGFnIHRva2VuLiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9c2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEKKyAgIHN0YXRlPC9hPi4gRW1pdCB0aGUgY3VycmVudCB0YWcgdG9rZW4uPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1zZWxmLWNsb3Npbmctc3RhcnQtdGFnLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPXNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlIEVPRgorICAgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlIGlkPXNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGU6YmVmb3JlLWF0dHJpYnV0ZS1uYW1lLXN0YXRlPmJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT4uIFJlY29uc3VtZQorICAgdGhlIGNoYXJhY3Rlci48L2RsPgorCisKKyAgPGg1IGlkPWJvZ3VzLWNvbW1lbnQtc3RhdGU+MTIuMi40LjQ0IDxkZm4+Qm9ndXMgY29tbWVudCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSBldmVyeSBjaGFyYWN0ZXIgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgZmlyc3QgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOIGNoYXJhY3RlciAoPikKKyAgb3IgdGhlIGVuZCBvZiB0aGUgZmlsZSAoRU9GKSwgd2hpY2hldmVyIGNvbWVzIGZpcnN0LgorICBJZiBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciB3YXMgY29uc3VtZWQsIHRoZW4gZW1pdCBhIGNvbW1lbnQgdG9rZW4gd2hvc2UgZGF0YSBpcyB0aGUKKyAgY29uY2F0ZW5hdGlvbiBvZiBhbGwgdGhlIGNoYXJhY3RlcnMgc3RhcnRpbmcgZnJvbSBhbmQgaW5jbHVkaW5nIHRoZSBjaGFyYWN0ZXIgdGhhdCBjYXVzZWQgdGhlCisgIHN0YXRlIG1hY2hpbmUgdG8gc3dpdGNoIGludG8gdGhlIGJvZ3VzIGNvbW1lbnQgc3RhdGUsIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIGNoYXJhY3RlcgorICBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGxhc3QgY29uc3VtZWQgY2hhcmFjdGVyIChpLmUuIHVwIHRvIHRoZSBjaGFyYWN0ZXIganVzdCBiZWZvcmUgdGhlIFUrMDAzRSBvcgorICBFT0YgY2hhcmFjdGVyKSwgYnV0IHdpdGggYW55IFUrMDAwMCBOVUxMIGNoYXJhY3RlcnMgcmVwbGFjZWQgYnkgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUgorICBjaGFyYWN0ZXJzLiAoSWYgdGhlIGNvbW1lbnQgd2FzIHN0YXJ0ZWQgYnkgdGhlIGVuZCBvZiB0aGUgZmlsZSAoRU9GKSwgdGhlIHRva2VuIGlzIGVtcHR5LgorICBTaW1pbGFybHksIHRoZSB0b2tlbiBpcyBlbXB0eSBpZiBpdCB3YXMgZ2VuZXJhdGVkIGJ5IHRoZSBzdHJpbmcgIjxjb2RlPiZsdDshPjwvY29kZT4iLik8L3A+CisKKyAgPHA+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWJvZ3VzLWNvbW1lbnQtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi48L3A+CisKKyAgPHA+SWYgdGhlIGVuZCBvZiB0aGUgZmlsZSB3YXMgcmVhY2hlZCwgcmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjwvcD4KKworCisgIDxoNSBpZD1tYXJrdXAtZGVjbGFyYXRpb24tb3Blbi1zdGF0ZT4xMi4yLjQuNDUgPGRmbj5NYXJrdXAgZGVjbGFyYXRpb24gb3BlbiBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+SWYgdGhlIG5leHQgdHdvIGNoYXJhY3RlcnMgYXJlIGJvdGggVSswMDJEIEhZUEhFTi1NSU5VUyBjaGFyYWN0ZXJzICgtKSwgY29uc3VtZSB0aG9zZSB0d28KKyAgY2hhcmFjdGVycywgY3JlYXRlIGEgY29tbWVudCB0b2tlbiB3aG9zZSBkYXRhIGlzIHRoZSBlbXB0eSBzdHJpbmcsIGFuZCBzd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NvbW1lbnQtc3RhcnQtc3RhdGUgaWQ9bWFya3VwLWRlY2xhcmF0aW9uLW9wZW4tc3RhdGU6Y29tbWVudC1zdGFydC1zdGF0ZT5jb21tZW50CisgIHN0YXJ0IHN0YXRlPC9hPi48L3A+CisKKyAgPHA+T3RoZXJ3aXNlLCBpZiB0aGUgbmV4dCBzZXZlbiBjaGFyYWN0ZXJzIGFyZSBhbiA8YSBpZD1tYXJrdXAtZGVjbGFyYXRpb24tb3Blbi1zdGF0ZTphc2NpaS1jYXNlLWluc2Vuc2l0aXZlIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhc2NpaS1jYXNlLWluc2Vuc2l0aXZlPkFTQ0lJIGNhc2UtaW5zZW5zaXRpdmU8L2E+IG1hdGNoIGZvcgorICB0aGUgd29yZCAiRE9DVFlQRSIsIHRoZW4gY29uc3VtZSB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBzd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RvY3R5cGUtc3RhdGUgaWQ9bWFya3VwLWRlY2xhcmF0aW9uLW9wZW4tc3RhdGU6ZG9jdHlwZS1zdGF0ZT5ET0NUWVBFCisgIHN0YXRlPC9hPi48L3A+CisKKyAgPHA+T3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhbiA8YSBocmVmPSNhZGp1c3RlZC1jdXJyZW50LW5vZGUgaWQ9bWFya3VwLWRlY2xhcmF0aW9uLW9wZW4tc3RhdGU6YWRqdXN0ZWQtY3VycmVudC1ub2RlPmFkanVzdGVkIGN1cnJlbnQgbm9kZTwvYT4gYW5kIGl0IGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZQorICA8YSBpZD1tYXJrdXAtZGVjbGFyYXRpb24tb3Blbi1zdGF0ZTpodG1sLW5hbWVzcGFjZS0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLW5hbWVzcGFjZS0yPkhUTUwgbmFtZXNwYWNlPC9hPiBhbmQgdGhlIG5leHQgc2V2ZW4gY2hhcmFjdGVycyBhcmUgYSA8YSBpZD1tYXJrdXAtZGVjbGFyYXRpb24tb3Blbi1zdGF0ZTpjYXNlLXNlbnNpdGl2ZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY2FzZS1zZW5zaXRpdmU+Y2FzZS1zZW5zaXRpdmU8L2E+IG1hdGNoCisgIGZvciB0aGUgc3RyaW5nICJbQ0RBVEFbIiAodGhlIGZpdmUgdXBwZXJjYXNlIGxldHRlcnMgIkNEQVRBIiB3aXRoIGEgVSswMDVCIExFRlQgU1FVQVJFIEJSQUNLRVQKKyAgY2hhcmFjdGVyIGJlZm9yZSBhbmQgYWZ0ZXIpLCB0aGVuIGNvbnN1bWUgdGhvc2UgY2hhcmFjdGVycyBhbmQgc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNjZGF0YS1zZWN0aW9uLXN0YXRlIGlkPW1hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlOmNkYXRhLXNlY3Rpb24tc3RhdGU+Q0RBVEEgc2VjdGlvbgorICBzdGF0ZTwvYT4uPC9wPgorCisgIDxwPk90aGVyd2lzZSwgdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPW1hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlOnBhcnNlLWVycm9yPnBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNib2d1cy1jb21tZW50LXN0YXRlIGlkPW1hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlOmJvZ3VzLWNvbW1lbnQtc3RhdGU+Ym9ndXMgY29tbWVudCBzdGF0ZTwvYT4uCisgIFRoZSBuZXh0IGNoYXJhY3RlciB0aGF0IGlzIGNvbnN1bWVkLCBpZiBhbnksIGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdGhhdCB3aWxsIGJlIGluIHRoZQorICBjb21tZW50LjwvcD4KKworCisgIDxoNSBpZD1jb21tZW50LXN0YXJ0LXN0YXRlPjEyLjIuNC40NiA8ZGZuPkNvbW1lbnQgc3RhcnQgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWNvbW1lbnQtc3RhcnQtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMkQgSFlQSEVOLU1JTlVTICgtKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZSBpZD1jb21tZW50LXN0YXJ0LXN0YXRlOmNvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZT5jb21tZW50IHN0YXJ0IGRhc2ggc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1jb21tZW50LXN0YXJ0LXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gQXBwZW5kIGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG8gdGhlIGNvbW1lbnQKKyAgIHRva2VuJ3MgZGF0YS4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNjb21tZW50LXN0YXRlIGlkPWNvbW1lbnQtc3RhcnQtc3RhdGU6Y29tbWVudC1zdGF0ZT5jb21tZW50IHN0YXRlPC9hPi48ZHQ+VSswMDNFIEdSRUFURVItVEhBTiBTSUdOICg+KTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1jb21tZW50LXN0YXJ0LXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9Y29tbWVudC1zdGFydC1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjb21tZW50IHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y29tbWVudC1zdGFydC1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWNvbW1lbnQtc3RhcnQtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjb21tZW50IHRva2VuLgorICAgUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9Y29tbWVudC1zdGFydC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGNvbW1lbnQgdG9rZW4ncyBkYXRhLiBTd2l0Y2ggdG8gdGhlCisgICA8YSBocmVmPSNjb21tZW50LXN0YXRlIGlkPWNvbW1lbnQtc3RhcnQtc3RhdGU6Y29tbWVudC1zdGF0ZS0yPmNvbW1lbnQgc3RhdGU8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9Y29tbWVudC1zdGFydC1kYXNoLXN0YXRlPjEyLjIuNC40NyA8ZGZuPkNvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9Y29tbWVudC1zdGFydC1kYXNoLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDJEIEhZUEhFTi1NSU5VUyAoLSk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNjb21tZW50LWVuZC1zdGF0ZSBpZD1jb21tZW50LXN0YXJ0LWRhc2gtc3RhdGU6Y29tbWVudC1lbmQtc3RhdGU+Y29tbWVudCBlbmQgc3RhdGU8L2E+PGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWNvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIEFwcGVuZCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVyICgtKSBhbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQKKyAgIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG8gdGhlIGNvbW1lbnQgdG9rZW4ncyBkYXRhLiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NvbW1lbnQtc3RhdGUgaWQ9Y29tbWVudC1zdGFydC1kYXNoLXN0YXRlOmNvbW1lbnQtc3RhdGU+Y29tbWVudCBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y29tbWVudC1zdGFydC1kYXNoLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9Y29tbWVudC1zdGFydC1kYXNoLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIGNvbW1lbnQgdG9rZW4uPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1jb21tZW50LXN0YXJ0LWRhc2gtc3RhdGU6cGFyc2UtZXJyb3ItMz5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1jb21tZW50LXN0YXJ0LWRhc2gtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjb21tZW50IHRva2VuLgorICAgUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVyICgtKSBhbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWNvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8KKyAgIHRoZSBjb21tZW50IHRva2VuJ3MgZGF0YS4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNjb21tZW50LXN0YXRlIGlkPWNvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZTpjb21tZW50LXN0YXRlLTI+Y29tbWVudCBzdGF0ZTwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1jb21tZW50LXN0YXRlPjEyLjIuNC40OCA8ZGZuIGlkPWNvbW1lbnQ+Q29tbWVudCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9Y29tbWVudC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyRCBIWVBIRU4tTUlOVVMgKC0pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jY29tbWVudC1lbmQtZGFzaC1zdGF0ZSBpZD1jb21tZW50LXN0YXRlOmNvbW1lbnQtZW5kLWRhc2gtc3RhdGU+Y29tbWVudCBlbmQgZGFzaCBzdGF0ZTwvYT48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y29tbWVudC1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIEFwcGVuZCBhIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyIHRvIHRoZSBjb21tZW50CisgICB0b2tlbidzIGRhdGEuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1jb21tZW50LXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9Y29tbWVudC1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjb21tZW50IHRva2VuLgorICAgUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9Y29tbWVudC1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGNvbW1lbnQgdG9rZW4ncyBkYXRhLjwvZGw+CisKKworICA8aDUgaWQ9Y29tbWVudC1lbmQtZGFzaC1zdGF0ZT4xMi4yLjQuNDkgPGRmbj5Db21tZW50IGVuZCBkYXNoIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1jb21tZW50LWVuZC1kYXNoLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDJEIEhZUEhFTi1NSU5VUyAoLSk8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNjb21tZW50LWVuZC1zdGF0ZSBpZD1jb21tZW50LWVuZC1kYXNoLXN0YXRlOmNvbW1lbnQtZW5kLXN0YXRlPmNvbW1lbnQgZW5kIHN0YXRlPC9hPjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1jb21tZW50LWVuZC1kYXNoLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gQXBwZW5kIGEgVSswMDJEIEhZUEhFTi1NSU5VUyBjaGFyYWN0ZXIgKC0pIGFuZCBhIFUrRkZGRCBSRVBMQUNFTUVOVAorICAgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY29tbWVudCB0b2tlbidzIGRhdGEuIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jY29tbWVudC1zdGF0ZSBpZD1jb21tZW50LWVuZC1kYXNoLXN0YXRlOmNvbW1lbnQtc3RhdGU+Y29tbWVudCBzdGF0ZTwvYT4uPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1jb21tZW50LWVuZC1kYXNoLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9Y29tbWVudC1lbmQtZGFzaC1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjb21tZW50IHRva2VuLgorICAgUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVyICgtKSBhbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWNvbW1lbnQtZW5kLWRhc2gtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvCisgICB0aGUgY29tbWVudCB0b2tlbidzIGRhdGEuIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jY29tbWVudC1zdGF0ZSBpZD1jb21tZW50LWVuZC1kYXNoLXN0YXRlOmNvbW1lbnQtc3RhdGUtMj5jb21tZW50IHN0YXRlPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPWNvbW1lbnQtZW5kLXN0YXRlPjEyLjIuNC41MCA8ZGZuPkNvbW1lbnQgZW5kIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1jb21tZW50LWVuZC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWNvbW1lbnQtZW5kLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIGNvbW1lbnQgdG9rZW4uPGR0PlUrMDAwMCBOVUxMPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWNvbW1lbnQtZW5kLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gQXBwZW5kIHR3byBVKzAwMkQgSFlQSEVOLU1JTlVTIGNoYXJhY3RlcnMgKC0pIGFuZCBhIFUrRkZGRAorICAgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY29tbWVudCB0b2tlbidzIGRhdGEuIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jY29tbWVudC1zdGF0ZSBpZD1jb21tZW50LWVuZC1zdGF0ZTpjb21tZW50LXN0YXRlPmNvbW1lbnQKKyAgIHN0YXRlPC9hPi48ZHQ+VSswMDIxIEVYQ0xBTUFUSU9OIE1BUksgKCEpPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWNvbW1lbnQtZW5kLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NvbW1lbnQtZW5kLWJhbmctc3RhdGUgaWQ9Y29tbWVudC1lbmQtc3RhdGU6Y29tbWVudC1lbmQtYmFuZy1zdGF0ZT5jb21tZW50IGVuZCBiYW5nIHN0YXRlPC9hPi48ZHQ+VSswMDJEIEhZUEhFTi1NSU5VUyAoLSk8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y29tbWVudC1lbmQtc3RhdGU6cGFyc2UtZXJyb3ItMz5QYXJzZSBlcnJvcjwvYT4uIEFwcGVuZCBhIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVyICgtKSB0byB0aGUgY29tbWVudCB0b2tlbidzCisgICBkYXRhLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y29tbWVudC1lbmQtc3RhdGU6cGFyc2UtZXJyb3ItND5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1jb21tZW50LWVuZC1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIGNvbW1lbnQgdG9rZW4uCisgICBSZWNvbnN1bWUgdGhlIEVPRiBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y29tbWVudC1lbmQtc3RhdGU6cGFyc2UtZXJyb3ItNT5QYXJzZSBlcnJvcjwvYT4uIEFwcGVuZCB0d28gVSswMDJEIEhZUEhFTi1NSU5VUyBjaGFyYWN0ZXJzICgtKSBhbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWNvbW1lbnQtZW5kLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQKKyAgIGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGNvbW1lbnQgdG9rZW4ncyBkYXRhLiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NvbW1lbnQtc3RhdGUgaWQ9Y29tbWVudC1lbmQtc3RhdGU6Y29tbWVudC1zdGF0ZS0yPmNvbW1lbnQKKyAgIHN0YXRlPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPWNvbW1lbnQtZW5kLWJhbmctc3RhdGU+MTIuMi40LjUxIDxkZm4+Q29tbWVudCBlbmQgYmFuZyBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9Y29tbWVudC1lbmQtYmFuZy1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAyRCBIWVBIRU4tTUlOVVMgKC0pPGRkPkFwcGVuZCB0d28gVSswMDJEIEhZUEhFTi1NSU5VUyBjaGFyYWN0ZXJzICgtKSBhbmQgYSBVKzAwMjEgRVhDTEFNQVRJT04gTUFSSyBjaGFyYWN0ZXIgKCEpIHRvCisgICB0aGUgY29tbWVudCB0b2tlbidzIGRhdGEuIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jY29tbWVudC1lbmQtZGFzaC1zdGF0ZSBpZD1jb21tZW50LWVuZC1iYW5nLXN0YXRlOmNvbW1lbnQtZW5kLWRhc2gtc3RhdGU+Y29tbWVudCBlbmQgZGFzaCBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWNvbW1lbnQtZW5kLWJhbmctc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gRW1pdCB0aGUgY29tbWVudCB0b2tlbi48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y29tbWVudC1lbmQtYmFuZy1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIEFwcGVuZCB0d28gVSswMDJEIEhZUEhFTi1NSU5VUyBjaGFyYWN0ZXJzICgtKSwgYSBVKzAwMjEgRVhDTEFNQVRJT04KKyAgIE1BUksgY2hhcmFjdGVyICghKSwgYW5kIGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBjaGFyYWN0ZXIgdG8gdGhlIGNvbW1lbnQgdG9rZW4ncyBkYXRhLgorICAgU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNjb21tZW50LXN0YXRlIGlkPWNvbW1lbnQtZW5kLWJhbmctc3RhdGU6Y29tbWVudC1zdGF0ZT5jb21tZW50IHN0YXRlPC9hPi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWNvbW1lbnQtZW5kLWJhbmctc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1jb21tZW50LWVuZC1iYW5nLXN0YXRlOmRhdGEtc3RhdGUtMj5kYXRhIHN0YXRlPC9hPi4gRW1pdCB0aGUgY29tbWVudCB0b2tlbi4KKyAgIFJlY29uc3VtZSB0aGUgRU9GIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5BcHBlbmQgdHdvIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVycyAoLSksIGEgVSswMDIxIEVYQ0xBTUFUSU9OIE1BUksgY2hhcmFjdGVyICghKSwgYW5kCisgICB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9Y29tbWVudC1lbmQtYmFuZy1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlcj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gdG8gdGhlIGNvbW1lbnQgdG9rZW4ncyBkYXRhLiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2NvbW1lbnQtc3RhdGUgaWQ9Y29tbWVudC1lbmQtYmFuZy1zdGF0ZTpjb21tZW50LXN0YXRlLTI+Y29tbWVudAorICAgc3RhdGU8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9ZG9jdHlwZS1zdGF0ZT4xMi4yLjQuNTIgPGRmbj5ET0NUWVBFIHN0YXRlPC9kZm4+PC9oNT4KKworICA8cD5Db25zdW1lIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1kb2N0eXBlLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYmVmb3JlLWRvY3R5cGUtbmFtZS1zdGF0ZSBpZD1kb2N0eXBlLXN0YXRlOmJlZm9yZS1kb2N0eXBlLW5hbWUtc3RhdGU+YmVmb3JlIERPQ1RZUEUgbmFtZSBzdGF0ZTwvYT4uPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1kb2N0eXBlLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWRvY3R5cGUtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gQ3JlYXRlIGEgbmV3IERPQ1RZUEUgdG9rZW4uCisgICBTZXQgaXRzIDxpIGlkPWRvY3R5cGUtc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWc+PGEgaHJlZj0jZm9yY2UtcXVpcmtzLWZsYWc+Zm9yY2UtcXVpcmtzIGZsYWc8L2E+PC9pPiB0byA8aT5vbjwvaT4uIEVtaXQgdGhlIHRva2VuLiBSZWNvbnN1bWUgdGhlIEVPRiBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZG9jdHlwZS1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNiZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlIGlkPWRvY3R5cGUtc3RhdGU6YmVmb3JlLWRvY3R5cGUtbmFtZS1zdGF0ZS0yPmJlZm9yZSBET0NUWVBFIG5hbWUgc3RhdGU8L2E+LiBSZWNvbnN1bWUgdGhlCisgICBjaGFyYWN0ZXIuPC9kbD4KKworCisgIDxoNSBpZD1iZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlPjEyLjIuNC41MyA8ZGZuPkJlZm9yZSBET0NUWVBFIG5hbWUgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWJlZm9yZS1kb2N0eXBlLW5hbWUtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+SWdub3JlIHRoZSBjaGFyYWN0ZXIuPGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN1cHBlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1iZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlOnVwcGVyY2FzZS1hc2NpaS1sZXR0ZXJzPlVwcGVyY2FzZSBBU0NJSSBsZXR0ZXI8L2E+PGRkPkNyZWF0ZSBhIG5ldyBET0NUWVBFIHRva2VuLiBTZXQgdGhlIHRva2VuJ3MgbmFtZSB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlCisgICA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1iZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiAoYWRkIDB4MDAyMCB0byB0aGUgY2hhcmFjdGVyJ3MgY29kZSBwb2ludCkuIFN3aXRjaCB0byB0aGUKKyAgIDxhIGhyZWY9I2RvY3R5cGUtbmFtZS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlOmRvY3R5cGUtbmFtZS1zdGF0ZT5ET0NUWVBFIG5hbWUgc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1iZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gQ3JlYXRlIGEgbmV3IERPQ1RZUEUgdG9rZW4uIFNldCB0aGUgdG9rZW4ncyBuYW1lIHRvIGEgVStGRkZECisgICBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyLiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RvY3R5cGUtbmFtZS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlOmRvY3R5cGUtbmFtZS1zdGF0ZS0yPkRPQ1RZUEUgbmFtZSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmVmb3JlLWRvY3R5cGUtbmFtZS1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gQ3JlYXRlIGEgbmV3IERPQ1RZUEUgdG9rZW4uIFNldCBpdHMgPGkgaWQ9YmVmb3JlLWRvY3R5cGUtbmFtZS1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvCisgICA8aT5vbjwvaT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmVmb3JlLWRvY3R5cGUtbmFtZS1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWJlZm9yZS1kb2N0eXBlLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBDcmVhdGUgYSBuZXcgRE9DVFlQRSB0b2tlbi4KKyAgIFNldCBpdHMgPGkgaWQ9YmVmb3JlLWRvY3R5cGUtbmFtZS1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZy0yPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LiBFbWl0IHRoZSB0b2tlbi4gUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkNyZWF0ZSBhIG5ldyBET0NUWVBFIHRva2VuLiBTZXQgdGhlIHRva2VuJ3MgbmFtZSB0byB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YmVmb3JlLWRvY3R5cGUtbmFtZS1zdGF0ZTpjdXJyZW50LWlucHV0LWNoYXJhY3Rlci0yPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZG9jdHlwZS1uYW1lLXN0YXRlIGlkPWJlZm9yZS1kb2N0eXBlLW5hbWUtc3RhdGU6ZG9jdHlwZS1uYW1lLXN0YXRlLTM+RE9DVFlQRSBuYW1lIHN0YXRlPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPWRvY3R5cGUtbmFtZS1zdGF0ZT4xMi4yLjQuNTQgPGRmbj5ET0NUWVBFIG5hbWUgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWRvY3R5cGUtbmFtZS1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2FmdGVyLWRvY3R5cGUtbmFtZS1zdGF0ZSBpZD1kb2N0eXBlLW5hbWUtc3RhdGU6YWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlPmFmdGVyIERPQ1RZUEUgbmFtZSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWRvY3R5cGUtbmFtZS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjdXJyZW50IERPQ1RZUEUgdG9rZW4uPGR0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN1cHBlcmNhc2UtYXNjaWktbGV0dGVycyBpZD1kb2N0eXBlLW5hbWUtc3RhdGU6dXBwZXJjYXNlLWFzY2lpLWxldHRlcnM+VXBwZXJjYXNlIEFTQ0lJIGxldHRlcjwvYT48ZGQ+QXBwZW5kIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9ZG9jdHlwZS1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiAoYWRkIDB4MDAyMCB0byB0aGUKKyAgIGNoYXJhY3RlcidzIGNvZGUgcG9pbnQpIHRvIHRoZSBjdXJyZW50IERPQ1RZUEUgdG9rZW4ncyBuYW1lLjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1kb2N0eXBlLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBBcHBlbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY3VycmVudAorICAgRE9DVFlQRSB0b2tlbidzIG5hbWUuPGR0PkVPRjxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1kb2N0eXBlLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1kb2N0eXBlLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncworICAgPGkgaWQ9ZG9jdHlwZS1uYW1lLXN0YXRlOmZvcmNlLXF1aXJrcy1mbGFnPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi4gUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9ZG9jdHlwZS1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyLTI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSBjdXJyZW50IERPQ1RZUEUgdG9rZW4ncyBuYW1lLjwvZGw+CisKKworICA8aDUgaWQ9YWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlPjEyLjIuNC41NSA8ZGZuPkFmdGVyIERPQ1RZUEUgbmFtZSBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGRkPklnbm9yZSB0aGUgY2hhcmFjdGVyLjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLW5hbWUtc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gRW1pdCB0aGUgY3VycmVudCBET0NUWVBFIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtbmFtZS1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzCisgICA8aSBpZD1hZnRlci1kb2N0eXBlLW5hbWUtc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWc+PGEgaHJlZj0jZm9yY2UtcXVpcmtzLWZsYWc+Zm9yY2UtcXVpcmtzIGZsYWc8L2E+PC9pPiB0byA8aT5vbjwvaT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLiBSZWNvbnN1bWUgdGhlIEVPRiBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKyAgICA8cD5JZiB0aGUgc2l4IGNoYXJhY3RlcnMgc3RhcnRpbmcgZnJvbSB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiBhcmUgYW4KKyAgICA8YSBpZD1hZnRlci1kb2N0eXBlLW5hbWUtc3RhdGU6YXNjaWktY2FzZS1pbnNlbnNpdGl2ZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktY2FzZS1pbnNlbnNpdGl2ZT5BU0NJSSBjYXNlLWluc2Vuc2l0aXZlPC9hPiBtYXRjaCBmb3IgdGhlIHdvcmQgIlBVQkxJQyIsIHRoZW4gY29uc3VtZSB0aG9zZSBjaGFyYWN0ZXJzCisgICAgYW5kIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLW5hbWUtc3RhdGU6YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZT5hZnRlciBET0NUWVBFIHB1YmxpYyBrZXl3b3JkIHN0YXRlPC9hPi48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIGlmIHRoZSBzaXggY2hhcmFjdGVycyBzdGFydGluZyBmcm9tIHRoZSA8YSBocmVmPSNjdXJyZW50LWlucHV0LWNoYXJhY3RlciBpZD1hZnRlci1kb2N0eXBlLW5hbWUtc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXItMj5jdXJyZW50IGlucHV0IGNoYXJhY3RlcjwvYT4gYXJlCisgICAgYW4gPGEgaWQ9YWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlOmFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktY2FzZS1pbnNlbnNpdGl2ZT5BU0NJSSBjYXNlLWluc2Vuc2l0aXZlPC9hPiBtYXRjaCBmb3IgdGhlIHdvcmQgIlNZU1RFTSIsIHRoZW4gY29uc3VtZSB0aG9zZQorICAgIGNoYXJhY3RlcnMgYW5kIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLW5hbWUtc3RhdGU6YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZT5hZnRlciBET0NUWVBFIHN5c3RlbSBrZXl3b3JkIHN0YXRlPC9hPi48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hZnRlci1kb2N0eXBlLW5hbWUtc3RhdGU6cGFyc2UtZXJyb3ItMj5wYXJzZSBlcnJvcjwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzIDxpIGlkPWFmdGVyLWRvY3R5cGUtbmFtZS1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZy0yPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2JvZ3VzLWRvY3R5cGUtc3RhdGUgaWQ9YWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlOmJvZ3VzLWRvY3R5cGUtc3RhdGU+Ym9ndXMgRE9DVFlQRSBzdGF0ZTwvYT4uPC9wPgorCisgICA8L2RsPgorCisKKyAgPGg1IGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmQtc3RhdGU+MTIuMi40LjU2IDxkZm4+QWZ0ZXIgRE9DVFlQRSBwdWJsaWMga2V5d29yZCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2JlZm9yZS1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmQtc3RhdGU6YmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU+YmVmb3JlIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgc3RhdGU8L2E+LjxkdD5VKzAwMjIgUVVPVEFUSU9OIE1BUksgKCIpPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmQtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyBwdWJsaWMgaWRlbnRpZmllciB0byB0aGUgZW1wdHkgc3RyaW5nIChub3QKKyAgIG1pc3NpbmcpLCB0aGVuIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZTpkb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZT5ET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZTwvYT4uPGR0PlUrMDAyNyBBUE9TVFJPUEhFICgnKTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hZnRlci1kb2N0eXBlLXB1YmxpYy1rZXl3b3JkLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyBwdWJsaWMgaWRlbnRpZmllciB0byB0aGUgZW1wdHkgc3RyaW5nIChub3QKKyAgIG1pc3NpbmcpLCB0aGVuIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGUgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZTpkb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT5ET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU2V0IHRoZSBET0NUWVBFIHRva2VuJ3MgPGkgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXB1YmxpYy1rZXl3b3JkLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZTpwYXJzZS1lcnJvci00PlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmQtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncworICAgPGkgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZy0yPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi4gUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmQtc3RhdGU6cGFyc2UtZXJyb3ItNT5QYXJzZSBlcnJvcjwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzIDxpIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWtleXdvcmQtc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYm9ndXMtZG9jdHlwZS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXB1YmxpYy1rZXl3b3JkLXN0YXRlOmJvZ3VzLWRvY3R5cGUtc3RhdGU+Ym9ndXMgRE9DVFlQRSBzdGF0ZTwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZT4xMi4yLjQuNTcgPGRmbj5CZWZvcmUgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+SWdub3JlIHRoZSBjaGFyYWN0ZXIuPGR0PlUrMDAyMiBRVU9UQVRJT04gTUFSSyAoIik8ZGQ+U2V0IHRoZSBET0NUWVBFIHRva2VuJ3MgcHVibGljIGlkZW50aWZpZXIgdG8gdGhlIGVtcHR5IHN0cmluZyAobm90IG1pc3NpbmcpLCB0aGVuIHN3aXRjaCB0bworICAgdGhlIDxhIGhyZWY9I2RvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlIGlkPWJlZm9yZS1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlOmRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlPkRPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlPC9hPi48ZHQ+VSswMDI3IEFQT1NUUk9QSEUgKCcpPGRkPlNldCB0aGUgRE9DVFlQRSB0b2tlbidzIHB1YmxpYyBpZGVudGlmaWVyIHRvIHRoZSBlbXB0eSBzdHJpbmcgKG5vdCBtaXNzaW5nKSwgdGhlbiBzd2l0Y2ggdG8KKyAgIHRoZSA8YSBocmVmPSNkb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpkb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT5ET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyA8aSBpZD1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWJlZm9yZS1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncworICAgPGkgaWQ9YmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMj48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4gRW1pdCB0aGF0IERPQ1RZUEUgdG9rZW4uIFJlY29uc3VtZSB0aGUgRU9GIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU2V0IHRoZSBET0NUWVBFIHRva2VuJ3MgPGkgaWQ9YmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYm9ndXMtZG9jdHlwZS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpib2d1cy1kb2N0eXBlLXN0YXRlPmJvZ3VzIERPQ1RZUEUgc3RhdGU8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU+MTIuMi40LjU4IDxkZm4+RE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDIyIFFVT1RBVElPTiBNQVJLICgiKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2FmdGVyLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGUgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6YWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZT5hZnRlciBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlPC9hPi48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBBcHBlbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY3VycmVudAorICAgRE9DVFlQRSB0b2tlbidzIHB1YmxpYyBpZGVudGlmaWVyLjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyA8aSBpZD1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOnBhcnNlLWVycm9yLTM+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncworICAgPGkgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMj48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4gRW1pdCB0aGF0IERPQ1RZUEUgdG9rZW4uIFJlY29uc3VtZSB0aGUgRU9GIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5BcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgY3VycmVudCBET0NUWVBFIHRva2VuJ3MgcHVibGljCisgICBpZGVudGlmaWVyLjwvZGw+CisKKworICA8aDUgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU+MTIuMi40LjU5IDxkZm4+RE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDI3IEFQT1NUUk9QSEUgKCcpPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZSBpZD1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTphZnRlci1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlPmFmdGVyIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIEFwcGVuZCBhIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyIHRvIHRoZSBjdXJyZW50CisgICBET0NUWVBFIHRva2VuJ3MgcHVibGljIGlkZW50aWZpZXIuPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzIDxpIGlkPWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlOmZvcmNlLXF1aXJrcy1mbGFnPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LgorICAgU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3ItMz5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzCisgICA8aSBpZD1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZy0yPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi4gUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSBjdXJyZW50IERPQ1RZUEUgdG9rZW4ncyBwdWJsaWMKKyAgIGlkZW50aWZpZXIuPC9kbD4KKworCisgIDxoNSBpZD1hZnRlci1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlPjEyLjIuNC42MCA8ZGZuPkFmdGVyIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNiZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGUgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpiZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGU+YmV0d2VlbiBET0NUWVBFIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIHN0YXRlPC9hPi48ZHQ+VSswMDNFIEdSRUFURVItVEhBTiBTSUdOICg+KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoZSBjdXJyZW50IERPQ1RZUEUgdG9rZW4uPGR0PlUrMDAyMiBRVU9UQVRJT04gTUFSSyAoIik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzIHN5c3RlbSBpZGVudGlmaWVyIHRvIHRoZSBlbXB0eSBzdHJpbmcgKG5vdAorICAgbWlzc2luZyksIHRoZW4gc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlOmRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlPkRPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlPC9hPi48ZHQ+VSswMDI3IEFQT1NUUk9QSEUgKCcpPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzIHN5c3RlbSBpZGVudGlmaWVyIHRvIHRoZSBlbXB0eSBzdHJpbmcgKG5vdAorICAgbWlzc2luZyksIHRoZW4gc3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlOmRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlPkRPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlPC9hPi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6cGFyc2UtZXJyb3ItMz5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlOmRhdGEtc3RhdGUtMj5kYXRhIHN0YXRlPC9hPi4gU2V0IHRoZSBET0NUWVBFIHRva2VuJ3MKKyAgIDxpIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWc+PGEgaHJlZj0jZm9yY2UtcXVpcmtzLWZsYWc+Zm9yY2UtcXVpcmtzIGZsYWc8L2E+PC9pPiB0byA8aT5vbjwvaT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLiBSZWNvbnN1bWUgdGhlIEVPRiBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpwYXJzZS1lcnJvci00PlBhcnNlIGVycm9yPC9hPi4gU2V0IHRoZSBET0NUWVBFIHRva2VuJ3MgPGkgaWQ9YWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZy0yPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LgorICAgU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNib2d1cy1kb2N0eXBlLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGU6Ym9ndXMtZG9jdHlwZS1zdGF0ZT5ib2d1cyBET0NUWVBFIHN0YXRlPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVycy1zdGF0ZT4xMi4yLjQuNjEgPGRmbj5CZXR3ZWVuIERPQ1RZUEUgcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVycy1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkZD5JZ25vcmUgdGhlIGNoYXJhY3Rlci48ZHQ+VSswMDNFIEdSRUFURVItVEhBTiBTSUdOICg+KTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YmV0d2Vlbi1kb2N0eXBlLXB1YmxpYy1hbmQtc3lzdGVtLWlkZW50aWZpZXJzLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIGN1cnJlbnQgRE9DVFlQRSB0b2tlbi48ZHQ+VSswMDIyIFFVT1RBVElPTiBNQVJLICgiKTxkZD5TZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyBzeXN0ZW0gaWRlbnRpZmllciB0byB0aGUgZW1wdHkgc3RyaW5nIChub3QgbWlzc2luZyksIHRoZW4gc3dpdGNoIHRvCisgICB0aGUgPGEgaHJlZj0jZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUgaWQ9YmV0d2Vlbi1kb2N0eXBlLXB1YmxpYy1hbmQtc3lzdGVtLWlkZW50aWZpZXJzLXN0YXRlOmRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlPkRPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlPC9hPi48ZHQ+VSswMDI3IEFQT1NUUk9QSEUgKCcpPGRkPlNldCB0aGUgRE9DVFlQRSB0b2tlbidzIHN5c3RlbSBpZGVudGlmaWVyIHRvIHRoZSBlbXB0eSBzdHJpbmcgKG5vdCBtaXNzaW5nKSwgdGhlbiBzd2l0Y2ggdG8KKyAgIHRoZSA8YSBocmVmPSNkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSBpZD1iZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGU6ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU+RE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2E+LjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmV0d2Vlbi1kb2N0eXBlLXB1YmxpYy1hbmQtc3lzdGVtLWlkZW50aWZpZXJzLXN0YXRlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVycy1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzCisgICA8aSBpZD1iZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWc+PGEgaHJlZj0jZm9yY2UtcXVpcmtzLWZsYWc+Zm9yY2UtcXVpcmtzIGZsYWc8L2E+PC9pPiB0byA8aT5vbjwvaT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLiBSZWNvbnN1bWUgdGhlIEVPRiBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmV0d2Vlbi1kb2N0eXBlLXB1YmxpYy1hbmQtc3lzdGVtLWlkZW50aWZpZXJzLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyA8aSBpZD1iZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMj48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYm9ndXMtZG9jdHlwZS1zdGF0ZSBpZD1iZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGU6Ym9ndXMtZG9jdHlwZS1zdGF0ZT5ib2d1cyBET0NUWVBFIHN0YXRlPC9hPi48L2RsPgorCisKKyAgPGg1IGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGU+MTIuMi40LjYyIDxkZm4+QWZ0ZXIgRE9DVFlQRSBzeXN0ZW0ga2V5d29yZCBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZTpuZXh0LWlucHV0LWNoYXJhY3Rlcj5uZXh0IGlucHV0IGNoYXJhY3RlcjwvYT46PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PlUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiAodGFiKTxkdD5VKzAwMEEgTElORSBGRUVEIChMRik8ZHQ+VSswMDBDIEZPUk0gRkVFRCAoRkYpPGR0PlUrMDAyMCBTUEFDRTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2JlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGU6YmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU+YmVmb3JlIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGU8L2E+LjxkdD5VKzAwMjIgUVVPVEFUSU9OIE1BUksgKCIpPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyBzeXN0ZW0gaWRlbnRpZmllciB0byB0aGUgZW1wdHkgc3RyaW5nIChub3QKKyAgIG1pc3NpbmcpLCB0aGVuIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZTpkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZT5ET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZTwvYT4uPGR0PlUrMDAyNyBBUE9TVFJPUEhFICgnKTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1hZnRlci1kb2N0eXBlLXN5c3RlbS1rZXl3b3JkLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyBzeXN0ZW0gaWRlbnRpZmllciB0byB0aGUgZW1wdHkgc3RyaW5nIChub3QKKyAgIG1pc3NpbmcpLCB0aGVuIHN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGUgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZTpkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT5ET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU2V0IHRoZSBET0NUWVBFIHRva2VuJ3MgPGkgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXN5c3RlbS1rZXl3b3JkLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZTpwYXJzZS1lcnJvci00PlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncworICAgPGkgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0ta2V5d29yZC1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZy0yPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi4gUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGU6cGFyc2UtZXJyb3ItNT5QYXJzZSBlcnJvcjwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzIDxpIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYm9ndXMtZG9jdHlwZS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXN5c3RlbS1rZXl3b3JkLXN0YXRlOmJvZ3VzLWRvY3R5cGUtc3RhdGU+Ym9ndXMgRE9DVFlQRSBzdGF0ZTwvYT4uPC9kbD4KKworCisgIDxoNSBpZD1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZT4xMi4yLjQuNjMgPGRmbj5CZWZvcmUgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZTwvZGZuPjwvaDU+CisKKyAgPHA+Q29uc3VtZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9YmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+SWdub3JlIHRoZSBjaGFyYWN0ZXIuPGR0PlUrMDAyMiBRVU9UQVRJT04gTUFSSyAoIik8ZGQ+U2V0IHRoZSBET0NUWVBFIHRva2VuJ3Mgc3lzdGVtIGlkZW50aWZpZXIgdG8gdGhlIGVtcHR5IHN0cmluZyAobm90IG1pc3NpbmcpLCB0aGVuIHN3aXRjaCB0bworICAgdGhlIDxhIGhyZWY9I2RvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlIGlkPWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlOmRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlPkRPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlPC9hPi48ZHQ+VSswMDI3IEFQT1NUUk9QSEUgKCcpPGRkPlNldCB0aGUgRE9DVFlQRSB0b2tlbidzIHN5c3RlbSBpZGVudGlmaWVyIHRvIHRoZSBlbXB0eSBzdHJpbmcgKG5vdCBtaXNzaW5nKSwgdGhlbiBzd2l0Y2ggdG8KKyAgIHRoZSA8YSBocmVmPSNkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZTpkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZT5ET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZTwvYT4uPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyA8aSBpZD1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9YmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncworICAgPGkgaWQ9YmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMj48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4gRW1pdCB0aGF0IERPQ1RZUEUgdG9rZW4uIFJlY29uc3VtZSB0aGUgRU9GIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU2V0IHRoZSBET0NUWVBFIHRva2VuJ3MgPGkgaWQ9YmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYm9ndXMtZG9jdHlwZS1zdGF0ZSBpZD1iZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZTpib2d1cy1kb2N0eXBlLXN0YXRlPmJvZ3VzIERPQ1RZUEUgc3RhdGU8L2E+LjwvZGw+CisKKworICA8aDUgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU+MTIuMi40LjY0IDxkZm4+RE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDIyIFFVT1RBVElPTiBNQVJLICgiKTxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2FmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGUgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6YWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZT5hZnRlciBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlPC9hPi48ZHQ+VSswMDAwIE5VTEw8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBBcHBlbmQgYSBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlciB0byB0aGUgY3VycmVudAorICAgRE9DVFlQRSB0b2tlbidzIHN5c3RlbSBpZGVudGlmaWVyLjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncyA8aSBpZD1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZz48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4KKyAgIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi48ZHQ+RU9GPGRkPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOnBhcnNlLWVycm9yLTM+UGFyc2UgZXJyb3I8L2E+LiBTd2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LiBTZXQgdGhlIERPQ1RZUEUgdG9rZW4ncworICAgPGkgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMj48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4gRW1pdCB0aGF0IERPQ1RZUEUgdG9rZW4uIFJlY29uc3VtZSB0aGUgRU9GIGNoYXJhY3Rlci48ZHQ+QW55dGhpbmcgZWxzZTxkZD5BcHBlbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtaW5wdXQtY2hhcmFjdGVyIGlkPWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlOmN1cnJlbnQtaW5wdXQtY2hhcmFjdGVyPmN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyPC9hPiB0byB0aGUgY3VycmVudCBET0NUWVBFIHRva2VuJ3Mgc3lzdGVtCisgICBpZGVudGlmaWVyLjwvZGw+CisKKworICA8aDUgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU+MTIuMi40LjY1IDxkZm4+RE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQgaW5wdXQgY2hhcmFjdGVyPC9hPjo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDI3IEFQT1NUUk9QSEUgKCcpPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZSBpZD1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTphZnRlci1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlPmFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGU8L2E+LjxkdD5VKzAwMDAgTlVMTDxkZD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIEFwcGVuZCBhIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIgY2hhcmFjdGVyIHRvIHRoZSBjdXJyZW50CisgICBET0NUWVBFIHRva2VuJ3Mgc3lzdGVtIGlkZW50aWZpZXIuPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzIDxpIGlkPWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlOmZvcmNlLXF1aXJrcy1mbGFnPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LgorICAgU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU6cGFyc2UtZXJyb3ItMz5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIFNldCB0aGUgRE9DVFlQRSB0b2tlbidzCisgICA8aSBpZD1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZTpmb3JjZS1xdWlya3MtZmxhZy0yPjxhIGhyZWY9I2ZvcmNlLXF1aXJrcy1mbGFnPmZvcmNlLXF1aXJrcyBmbGFnPC9hPjwvaT4gdG8gPGk+b248L2k+LiBFbWl0IHRoYXQgRE9DVFlQRSB0b2tlbi4gUmVjb25zdW1lIHRoZSBFT0YgY2hhcmFjdGVyLjxkdD5Bbnl0aGluZyBlbHNlPGRkPkFwcGVuZCB0aGUgPGEgaHJlZj0jY3VycmVudC1pbnB1dC1jaGFyYWN0ZXIgaWQ9ZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3RhdGU6Y3VycmVudC1pbnB1dC1jaGFyYWN0ZXI+Y3VycmVudCBpbnB1dCBjaGFyYWN0ZXI8L2E+IHRvIHRoZSBjdXJyZW50IERPQ1RZUEUgdG9rZW4ncyBzeXN0ZW0KKyAgIGlkZW50aWZpZXIuPC9kbD4KKworCisgIDxoNSBpZD1hZnRlci1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlPjEyLjIuNC42NiA8ZGZuPkFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04gKHRhYik8ZHQ+VSswMDBBIExJTkUgRkVFRCAoTEYpPGR0PlUrMDAwQyBGT1JNIEZFRUQgKEZGKTxkdD5VKzAwMjAgU1BBQ0U8ZGQ+SWdub3JlIHRoZSBjaGFyYWN0ZXIuPGR0PlUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPik8ZGQ+U3dpdGNoIHRvIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6ZGF0YS1zdGF0ZT5kYXRhIHN0YXRlPC9hPi4gRW1pdCB0aGUgY3VycmVudCBET0NUWVBFIHRva2VuLjxkdD5FT0Y8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIFN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1hZnRlci1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlOmRhdGEtc3RhdGUtMj5kYXRhIHN0YXRlPC9hPi4gU2V0IHRoZSBET0NUWVBFIHRva2VuJ3MKKyAgIDxpIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWc+PGEgaHJlZj0jZm9yY2UtcXVpcmtzLWZsYWc+Zm9yY2UtcXVpcmtzIGZsYWc8L2E+PC9pPiB0byA8aT5vbjwvaT4uIEVtaXQgdGhhdCBET0NUWVBFIHRva2VuLiBSZWNvbnN1bWUgdGhlIEVPRiBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9YWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRvIHRoZSA8YSBocmVmPSNib2d1cy1kb2N0eXBlLXN0YXRlIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6Ym9ndXMtZG9jdHlwZS1zdGF0ZT5ib2d1cyBET0NUWVBFIHN0YXRlPC9hPi4gKFRoaXMgZG9lcworICAgPGVtPm5vdDwvZW0+IHNldCB0aGUgRE9DVFlQRSB0b2tlbidzIDxpIGlkPWFmdGVyLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGU6Zm9yY2UtcXVpcmtzLWZsYWctMj48YSBocmVmPSNmb3JjZS1xdWlya3MtZmxhZz5mb3JjZS1xdWlya3MgZmxhZzwvYT48L2k+IHRvIDxpPm9uPC9pPi4pPC9kbD4KKworCisgIDxoNSBpZD1ib2d1cy1kb2N0eXBlLXN0YXRlPjEyLjIuNC42NyA8ZGZuPkJvZ3VzIERPQ1RZUEUgc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPkNvbnN1bWUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPWJvZ3VzLWRvY3R5cGUtc3RhdGU6bmV4dC1pbnB1dC1jaGFyYWN0ZXI+bmV4dCBpbnB1dCBjaGFyYWN0ZXI8L2E+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5VKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gKD4pPGRkPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1ib2d1cy1kb2N0eXBlLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIERPQ1RZUEUgdG9rZW4uPGR0PkVPRjxkZD5Td2l0Y2ggdG8gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9Ym9ndXMtZG9jdHlwZS1zdGF0ZTpkYXRhLXN0YXRlLTI+ZGF0YSBzdGF0ZTwvYT4uIEVtaXQgdGhlIERPQ1RZUEUgdG9rZW4uIFJlY29uc3VtZSB0aGUgRU9GCisgICBjaGFyYWN0ZXIuPGR0PkFueXRoaW5nIGVsc2U8ZGQ+SWdub3JlIHRoZSBjaGFyYWN0ZXIuPC9kbD4KKworCisgIDxoNSBpZD1jZGF0YS1zZWN0aW9uLXN0YXRlPjEyLjIuNC42OCA8ZGZuPkNEQVRBIHNlY3Rpb24gc3RhdGU8L2Rmbj48L2g1PgorCisgIDxwPlN3aXRjaCB0byB0aGUgPGEgaHJlZj0jZGF0YS1zdGF0ZSBpZD1jZGF0YS1zZWN0aW9uLXN0YXRlOmRhdGEtc3RhdGU+ZGF0YSBzdGF0ZTwvYT4uPC9wPgorCisgIDxwPkNvbnN1bWUgZXZlcnkgY2hhcmFjdGVyIHVwIHRvIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgdGhlIHRocmVlIGNoYXJhY3RlciBzZXF1ZW5jZSBVKzAwNUQgUklHSFQKKyAgU1FVQVJFIEJSQUNLRVQgVSswMDVEIFJJR0hUIFNRVUFSRSBCUkFDS0VUIFUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTiAoPGNvZGU+XV0+PC9jb2RlPiksCisgIG9yIHRoZSBlbmQgb2YgdGhlIGZpbGUgKEVPRiksIHdoaWNoZXZlciBjb21lcyBmaXJzdC4gRW1pdCBhIHNlcmllcyBvZiBjaGFyYWN0ZXIgdG9rZW5zIGNvbnNpc3RpbmcKKyAgb2YgYWxsIHRoZSBjaGFyYWN0ZXJzIGNvbnN1bWVkIGV4Y2VwdCB0aGUgbWF0Y2hpbmcgdGhyZWUgY2hhcmFjdGVyIHNlcXVlbmNlIGF0IHRoZSBlbmQgKGlmIG9uZSB3YXMKKyAgZm91bmQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGZpbGUpLjwvcD4KKworICA8cD5JZiB0aGUgZW5kIG9mIHRoZSBmaWxlIHdhcyByZWFjaGVkLCByZWNvbnN1bWUgdGhlIEVPRiBjaGFyYWN0ZXIuPC9wPgorCisKKworICA8aDUgaWQ9dG9rZW5pemluZy1jaGFyYWN0ZXItcmVmZXJlbmNlcz4xMi4yLjQuNjkgVG9rZW5pemluZyBjaGFyYWN0ZXIgcmVmZXJlbmNlczwvaDU+CisKKyAgPHA+VGhpcyBzZWN0aW9uIGRlZmluZXMgaG93IHRvIDxkZm4gaWQ9Y29uc3VtZS1hLWNoYXJhY3Rlci1yZWZlcmVuY2U+Y29uc3VtZSBhIGNoYXJhY3RlciByZWZlcmVuY2U8L2Rmbj4sIG9wdGlvbmFsbHkgd2l0aCBhbgorICA8ZGZuIGlkPWFkZGl0aW9uYWwtYWxsb3dlZC1jaGFyYWN0ZXI+YWRkaXRpb25hbCBhbGxvd2VkIGNoYXJhY3RlcjwvZGZuPiwgd2hpY2gsIGlmIHNwZWNpZmllZCB3aGVyZSB0aGUgYWxnb3JpdGhtIGlzIGludm9rZWQsIGFkZHMKKyAgYSBjaGFyYWN0ZXIgdG8gdGhlIGxpc3Qgb2YgY2hhcmFjdGVycyB0aGF0IGNhdXNlIHRoZXJlIHRvIG5vdCBiZSBhIGNoYXJhY3RlciByZWZlcmVuY2UuPC9wPgorCisgIDxwPlRoaXMgZGVmaW5pdGlvbiBpcyB1c2VkIHdoZW4gcGFyc2luZyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyA8YSBocmVmPSNjaGFyYWN0ZXItcmVmZXJlbmNlLWluLWRhdGEtc3RhdGUgaWQ9dG9rZW5pemluZy1jaGFyYWN0ZXItcmVmZXJlbmNlczpjaGFyYWN0ZXItcmVmZXJlbmNlLWluLWRhdGEtc3RhdGU+aW4gdGV4dDwvYT4gYW5kIDxhIGhyZWY9I2NoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmlidXRlLXZhbHVlLXN0YXRlIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6Y2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1hdHRyaWJ1dGUtdmFsdWUtc3RhdGU+aW4KKyAgYXR0cmlidXRlczwvYT4uPC9wPgorCisgIDxwPlRoZSBiZWhhdmlvciBkZXBlbmRzIG9uIHRoZSBpZGVudGl0eSBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIgKHRoZSBvbmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlCisgIFUrMDAyNiBBTVBFUlNBTkQgY2hhcmFjdGVyKSwgYXMgZm9sbG93czo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OICh0YWIpPGR0PlUrMDAwQSBMSU5FIEZFRUQgKExGKTxkdD5VKzAwMEMgRk9STSBGRUVEIChGRik8ZHQ+VSswMDIwIFNQQUNFPGR0PlUrMDAzQyBMRVNTLVRIQU4gU0lHTjxkdD5VKzAwMjYgQU1QRVJTQU5EPGR0PkVPRjxkdD5UaGUgPGEgaHJlZj0jYWRkaXRpb25hbC1hbGxvd2VkLWNoYXJhY3RlciBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOmFkZGl0aW9uYWwtYWxsb3dlZC1jaGFyYWN0ZXI+YWRkaXRpb25hbCBhbGxvd2VkIGNoYXJhY3RlcjwvYT4sIGlmIHRoZXJlIGlzIG9uZTxkZD5Ob3QgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBObyBjaGFyYWN0ZXJzIGFyZSBjb25zdW1lZCwgYW5kIG5vdGhpbmcgaXMgcmV0dXJuZWQuIChUaGlzIGlzIG5vdAorICAgYW4gZXJyb3IsIGVpdGhlci4pPGR0PlUrMDAyMyBOVU1CRVIgU0lHTiAoIyk8ZGQ+CisKKyAgICA8cD5Db25zdW1lIHRoZSBVKzAwMjMgTlVNQkVSIFNJR04uPC9wPgorCisgICAgPHA+VGhlIGJlaGF2aW9yIGZ1cnRoZXIgZGVwZW5kcyBvbiB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZSBVKzAwMjMgTlVNQkVSIFNJR046PC9wPgorCisgICAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+VSswMDc4IExBVElOIFNNQUxMIExFVFRFUiBYPGR0PlUrMDA1OCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYPGRkPgorCisgICAgICA8cD5Db25zdW1lIHRoZSBYLjwvcD4KKworICAgICAgPHA+Rm9sbG93IHRoZSBzdGVwcyBiZWxvdywgYnV0IHVzaW5nIDxhIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6YXNjaWktaGV4LWRpZ2l0cyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktaGV4LWRpZ2l0cz5BU0NJSSBoZXggZGlnaXRzPC9hPi48L3A+CisKKyAgICAgIDxwPldoZW4gaXQgY29tZXMgdG8gaW50ZXJwcmV0aW5nIHRoZSBudW1iZXIsIGludGVycHJldCBpdCBhcyBhIGhleGFkZWNpbWFsIG51bWJlci48L3A+CisKKyAgICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKyAgICAgIDxwPkZvbGxvdyB0aGUgc3RlcHMgYmVsb3csIGJ1dCB1c2luZyA8YSBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOmFzY2lpLWRpZ2l0cyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktZGlnaXRzPkFTQ0lJIGRpZ2l0czwvYT4uPC9wPgorCisgICAgICA8cD5XaGVuIGl0IGNvbWVzIHRvIGludGVycHJldGluZyB0aGUgbnVtYmVyLCBpbnRlcnByZXQgaXQgYXMgYSBkZWNpbWFsIG51bWJlci48L3A+CisKKyAgICAgPC9kbD4KKworICAgIDxwPkNvbnN1bWUgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIG1hdGNoIHRoZSByYW5nZSBvZiBjaGFyYWN0ZXJzIGdpdmVuIGFib3ZlICg8YSBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOmFzY2lpLWhleC1kaWdpdHMtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktaGV4LWRpZ2l0cz5BU0NJSSBoZXgKKyAgICBkaWdpdHM8L2E+IG9yIDxhIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6YXNjaWktZGlnaXRzLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FzY2lpLWRpZ2l0cz5BU0NJSSBkaWdpdHM8L2E+KS48L3A+CisKKyAgICA8cD5JZiBubyBjaGFyYWN0ZXJzIG1hdGNoIHRoZSByYW5nZSwgdGhlbiBkb24ndCBjb25zdW1lIGFueSBjaGFyYWN0ZXJzIChhbmQgdW5jb25zdW1lIHRoZSBVKzAwMjMKKyAgICBOVU1CRVIgU0lHTiBjaGFyYWN0ZXIgYW5kLCBpZiBhcHByb3ByaWF0ZSwgdGhlIFggY2hhcmFjdGVyKS4gVGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6cGFyc2UtZXJyb3I+cGFyc2UgZXJyb3I8L2E+OworICAgIG5vdGhpbmcgaXMgcmV0dXJuZWQuPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlLCBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYSBVKzAwM0IgU0VNSUNPTE9OLCBjb25zdW1lIHRoYXQgdG9vLiBJZiBpdCBpc24ndCwgdGhlcmUKKyAgICBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6cGFyc2UtZXJyb3ItMj5wYXJzZSBlcnJvcjwvYT4uPC9wPgorCisgICAgPHA+SWYgb25lIG9yIG1vcmUgY2hhcmFjdGVycyBtYXRjaCB0aGUgcmFuZ2UsIHRoZW4gdGFrZSB0aGVtIGFsbCBhbmQgaW50ZXJwcmV0IHRoZSBzdHJpbmcgb2YKKyAgICBjaGFyYWN0ZXJzIGFzIGEgbnVtYmVyIChlaXRoZXIgaGV4YWRlY2ltYWwgb3IgZGVjaW1hbCBhcyBhcHByb3ByaWF0ZSkuPC9wPgorCisgICAgPHA+SWYgdGhhdCBudW1iZXIgaXMgb25lIG9mIHRoZSBudW1iZXJzIGluIHRoZSBmaXJzdCBjb2x1bW4gb2YgdGhlIGZvbGxvd2luZyB0YWJsZSwgdGhlbiB0aGlzIGlzCisgICAgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOnBhcnNlLWVycm9yLTM+cGFyc2UgZXJyb3I8L2E+LiBGaW5kIHRoZSByb3cgd2l0aCB0aGF0IG51bWJlciBpbiB0aGUgZmlyc3QgY29sdW1uLCBhbmQgcmV0dXJuIGEKKyAgICBjaGFyYWN0ZXIgdG9rZW4gZm9yIHRoZSBVbmljb2RlIGNoYXJhY3RlciBnaXZlbiBpbiB0aGUgc2Vjb25kIGNvbHVtbiBvZiB0aGF0IHJvdy48L3A+CisKKyAgICA8dGFibGUgaWQ9dGFibGUtY2hhcnJlZi1vdmVycmlkZXM+PHRoZWFkPjx0cj48dGg+TnVtYmVyIDx0aCBjb2xzcGFuPTI+VW5pY29kZSBjaGFyYWN0ZXIKKyAgICAgPHRib2R5Pjx0cj48dGQ+MHgwMCA8dGQ+VStGRkZEIDx0ZD5SRVBMQUNFTUVOVCBDSEFSQUNURVIKKworICAgICAgPHRyPjx0ZD4weDgwIDx0ZD5VKzIwQUMgPHRkPkVVUk8gU0lHTiAo4oKsKQorCisgICAgICA8dHI+PHRkPjB4ODIgPHRkPlUrMjAxQSA8dGQ+U0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLICjigJopCisgICAgICA8dHI+PHRkPjB4ODMgPHRkPlUrMDE5MiA8dGQ+TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBIT09LICjGkikKKyAgICAgIDx0cj48dGQ+MHg4NCA8dGQ+VSsyMDFFIDx0ZD5ET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksgKOKAnikKKyAgICAgIDx0cj48dGQ+MHg4NSA8dGQ+VSsyMDI2IDx0ZD5IT1JJWk9OVEFMIEVMTElQU0lTICjigKYpCisgICAgICA8dHI+PHRkPjB4ODYgPHRkPlUrMjAyMCA8dGQ+REFHR0VSICjigKApCisgICAgICA8dHI+PHRkPjB4ODcgPHRkPlUrMjAyMSA8dGQ+RE9VQkxFIERBR0dFUiAo4oChKQorICAgICAgPHRyPjx0ZD4weDg4IDx0ZD5VKzAyQzYgPHRkPk1PRElGSUVSIExFVFRFUiBDSVJDVU1GTEVYIEFDQ0VOVCAoy4YpCisgICAgICA8dHI+PHRkPjB4ODkgPHRkPlUrMjAzMCA8dGQ+UEVSIE1JTExFIFNJR04gKOKAsCkKKyAgICAgIDx0cj48dGQ+MHg4QSA8dGQ+VSswMTYwIDx0ZD5MQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04gKMWgKQorICAgICAgPHRyPjx0ZD4weDhCIDx0ZD5VKzIwMzkgPHRkPlNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLICjigLkpCisgICAgICA8dHI+PHRkPjB4OEMgPHRkPlUrMDE1MiA8dGQ+TEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBPRSAoxZIpCisKKyAgICAgIDx0cj48dGQ+MHg4RSA8dGQ+VSswMTdEIDx0ZD5MQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0FST04gKMW9KQorCisKKyAgICAgIDx0cj48dGQ+MHg5MSA8dGQ+VSsyMDE4IDx0ZD5MRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSyAo4oCYKQorICAgICAgPHRyPjx0ZD4weDkyIDx0ZD5VKzIwMTkgPHRkPlJJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSyAo4oCZKQorICAgICAgPHRyPjx0ZD4weDkzIDx0ZD5VKzIwMUMgPHRkPkxFRlQgRE9VQkxFIFFVT1RBVElPTiBNQVJLICjigJwpCisgICAgICA8dHI+PHRkPjB4OTQgPHRkPlUrMjAxRCA8dGQ+UklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLICjigJ0pCisgICAgICA8dHI+PHRkPjB4OTUgPHRkPlUrMjAyMiA8dGQ+QlVMTEVUICjigKIpCisgICAgICA8dHI+PHRkPjB4OTYgPHRkPlUrMjAxMyA8dGQ+RU4gREFTSCAo4oCTKQorICAgICAgPHRyPjx0ZD4weDk3IDx0ZD5VKzIwMTQgPHRkPkVNIERBU0ggKOKAlCkKKyAgICAgIDx0cj48dGQ+MHg5OCA8dGQ+VSswMkRDIDx0ZD5TTUFMTCBUSUxERSAoy5wpCisgICAgICA8dHI+PHRkPjB4OTkgPHRkPlUrMjEyMiA8dGQ+VFJBREUgTUFSSyBTSUdOICjihKIpCisgICAgICA8dHI+PHRkPjB4OUEgPHRkPlUrMDE2MSA8dGQ+TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTiAoxaEpCisgICAgICA8dHI+PHRkPjB4OUIgPHRkPlUrMjAzQSA8dGQ+U0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLICjigLopCisgICAgICA8dHI+PHRkPjB4OUMgPHRkPlUrMDE1MyA8dGQ+TEFUSU4gU01BTEwgTElHQVRVUkUgT0UgKMWTKQorCisgICAgICA8dHI+PHRkPjB4OUUgPHRkPlUrMDE3RSA8dGQ+TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTiAoxb4pCisgICAgICA8dHI+PHRkPjB4OUYgPHRkPlUrMDE3OCA8dGQ+TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUyAoxbgpCisgICAgPC90YWJsZT4KKworICAgIDxwPk90aGVyd2lzZSwgaWYgdGhlIG51bWJlciBpcyBpbiB0aGUgcmFuZ2UgMHhEODAwIHRvIDB4REZGRiBvciBpcyBncmVhdGVyCisgICAgdGhhbiAweDEwRkZGRiwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dG9rZW5pemluZy1jaGFyYWN0ZXItcmVmZXJlbmNlczpwYXJzZS1lcnJvci00PnBhcnNlIGVycm9yPC9hPi4gUmV0dXJuIGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUgorICAgIGNoYXJhY3RlciB0b2tlbi48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIHJldHVybiBhIGNoYXJhY3RlciB0b2tlbiBmb3IgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIHdob3NlIGNvZGUgcG9pbnQgaXMgdGhhdAorICAgIG51bWJlci4KKworICAgICBBZGRpdGlvbmFsbHksIGlmIHRoZSBudW1iZXIgaXMgaW4gdGhlIHJhbmdlIDB4MDAwMSB0byAweDAwMDgsICAgIDB4MDAwRCB0byAweDAwMUYsICAweDAwN0YgIHRvIDB4MDA5RiwgMHhGREQwIHRvIDB4RkRFRiwgb3IgaXMKKyAgICBvbmUgb2YgMHgwMDBCLCAweEZGRkUsIDB4RkZGRiwgMHgxRkZGRSwgMHgxRkZGRiwgMHgyRkZGRSwgMHgyRkZGRiwgMHgzRkZGRSwgMHgzRkZGRiwgMHg0RkZGRSwKKyAgICAweDRGRkZGLCAweDVGRkZFLCAweDVGRkZGLCAweDZGRkZFLCAweDZGRkZGLCAweDdGRkZFLCAweDdGRkZGLCAweDhGRkZFLCAweDhGRkZGLCAweDlGRkZFLAorICAgIDB4OUZGRkYsIDB4QUZGRkUsIDB4QUZGRkYsIDB4QkZGRkUsIDB4QkZGRkYsIDB4Q0ZGRkUsIDB4Q0ZGRkYsIDB4REZGRkUsIDB4REZGRkYsIDB4RUZGRkUsCisgICAgMHhFRkZGRiwgMHhGRkZGRSwgMHhGRkZGRiwgMHgxMEZGRkUsIG9yIDB4MTBGRkZGLCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOnBhcnNlLWVycm9yLTU+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKyAgICA8cD5Db25zdW1lIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHBvc3NpYmxlLCB3aXRoIHRoZSBjb25zdW1lZCBjaGFyYWN0ZXJzIG1hdGNoaW5nIG9uZQorICAgIG9mIHRoZSBpZGVudGlmaWVycyBpbiB0aGUgZmlyc3QgY29sdW1uIG9mIHRoZSA8YSBocmVmPSNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcyBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOm5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzPm5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzPC9hPiB0YWJsZSAoaW4KKyAgICBhIDxhIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6Y2FzZS1zZW5zaXRpdmUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2Nhc2Utc2Vuc2l0aXZlPmNhc2Utc2Vuc2l0aXZlPC9hPiBtYW5uZXIpLjwvcD4KKworICAgIDxwPklmIG5vIG1hdGNoIGNhbiBiZSBtYWRlLCB0aGVuIG5vIGNoYXJhY3RlcnMgYXJlIGNvbnN1bWVkLCBhbmQgbm90aGluZyBpcyByZXR1cm5lZC4gSW4gdGhpcworICAgIGNhc2UsIGlmIHRoZSBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBVKzAwMjYgQU1QRVJTQU5EIGNoYXJhY3RlciAoJmFtcDspIGNvbnNpc3Qgb2YgYSBzZXF1ZW5jZSBvZgorICAgIG9uZSBvciBtb3JlIDxhIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6YWxwaGFudW1lcmljLWFzY2lpLWNoYXJhY3RlcnMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FscGhhbnVtZXJpYy1hc2NpaS1jaGFyYWN0ZXJzPmFscGhhbnVtZXJpYyBBU0NJSSBjaGFyYWN0ZXJzPC9hPiBmb2xsb3dlZCBieSBhIFUrMDAzQiBTRU1JQ09MT04gY2hhcmFjdGVyCisgICAgKDspLCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOnBhcnNlLWVycm9yLTY+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPklmIHRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGlzIGJlaW5nIGNvbnN1bWVkIDxhIGhyZWY9I2NoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmlidXRlLXZhbHVlLXN0YXRlIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6Y2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1hdHRyaWJ1dGUtdmFsdWUtc3RhdGUtMj5hcyBwYXJ0IG9mIGFuIGF0dHJpYnV0ZTwvYT4sIGFuZCB0aGUgbGFzdCBjaGFyYWN0ZXIgbWF0Y2hlZCBpcyBub3QgYSBVKzAwM0IKKyAgICBTRU1JQ09MT04gY2hhcmFjdGVyICg7KSwgYW5kIHRoZSBuZXh0IGNoYXJhY3RlciBpcyBlaXRoZXIgYSBVKzAwM0QgRVFVQUxTIFNJR04gY2hhcmFjdGVyICg9KSBvcgorICAgIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhbHBoYW51bWVyaWMtYXNjaWktY2hhcmFjdGVycyBpZD10b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzOmFscGhhbnVtZXJpYy1hc2NpaS1jaGFyYWN0ZXJzLTI+YWxwaGFudW1lcmljIEFTQ0lJIGNoYXJhY3RlcjwvYT4sIHRoZW4sIGZvcgorICAgIGhpc3RvcmljYWwgcmVhc29ucywgYWxsIHRoZSBjaGFyYWN0ZXJzIHRoYXQgd2VyZSBtYXRjaGVkIGFmdGVyIHRoZSBVKzAwMjYgQU1QRVJTQU5EIGNoYXJhY3RlcgorICAgICgmYW1wOykgbXVzdCBiZSB1bmNvbnN1bWVkLCBhbmQgbm90aGluZyBpcyByZXR1cm5lZC4KKworICAgIEhvd2V2ZXIsIGlmIHRoaXMgbmV4dCBjaGFyYWN0ZXIgaXMgaW4gZmFjdCBhIFUrMDAzRCBFUVVBTFMgU0lHTiBjaGFyYWN0ZXIgKD0pLCB0aGVuIHRoaXMgaXMgYQorICAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6cGFyc2UtZXJyb3ItNz5wYXJzZSBlcnJvcjwvYT4sIGJlY2F1c2Ugc29tZSBsZWdhY3kgdXNlciBhZ2VudHMgIHdpbGwKKyAgICBtaXNpbnRlcnByZXQgdGhlIG1hcmt1cCBpbiB0aG9zZSBjYXNlcy48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIGEgY2hhcmFjdGVyIHJlZmVyZW5jZSBpcyBwYXJzZWQuIElmIHRoZSBsYXN0IGNoYXJhY3RlciBtYXRjaGVkIGlzIG5vdCBhIFUrMDAzQgorICAgIFNFTUlDT0xPTiBjaGFyYWN0ZXIgKDspLCB0aGVyZSBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6cGFyc2UtZXJyb3ItOD5wYXJzZSBlcnJvcjwvYT4uPC9wPgorCisgICAgPHA+UmV0dXJuIG9uZSBvciB0d28gY2hhcmFjdGVyIHRva2VucyBmb3IgdGhlIGNoYXJhY3RlcihzKSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjaGFyYWN0ZXIKKyAgICByZWZlcmVuY2UgbmFtZSAoYXMgZ2l2ZW4gYnkgdGhlIHNlY29uZCBjb2x1bW4gb2YgdGhlIDxhIGhyZWY9I25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzIGlkPXRva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXM6bmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMtMj5uYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlczwvYT4KKyAgICB0YWJsZSkuPC9wPgorCisgICAgPGRpdiBjbGFzcz1leGFtcGxlPgorCisgICAgIDxwPklmIHRoZSBtYXJrdXAgY29udGFpbnMgKG5vdCBpbiBhbiBhdHRyaWJ1dGUpIHRoZSBzdHJpbmcgPGNvZGU+SSdtICZhbXA7bm90aXQ7IEkKKyAgICAgdGVsbCB5b3U8L2NvZGU+LCB0aGUgY2hhcmFjdGVyIHJlZmVyZW5jZSBpcyBwYXJzZWQgYXMgIm5vdCIsIGFzIGluLCA8Y29kZT5JJ20gwqxpdDsKKyAgICAgSSB0ZWxsIHlvdTwvY29kZT4gKGFuZCB0aGlzIGlzIGEgcGFyc2UgZXJyb3IpLiBCdXQgaWYgdGhlIG1hcmt1cCB3YXMgPGNvZGU+SSdtCisgICAgICZhbXA7bm90aW47IEkgdGVsbCB5b3U8L2NvZGU+LCB0aGUgY2hhcmFjdGVyIHJlZmVyZW5jZSB3b3VsZCBiZSBwYXJzZWQgYXMgIm5vdGluOyIsIHJlc3VsdGluZworICAgICBpbiA8Y29kZT5JJ20g4oiJIEkgdGVsbCB5b3U8L2NvZGU+IChhbmQgbm8gcGFyc2UgZXJyb3IpLjwvcD4KKworICAgIDwvZGl2PgorCisgICA8L2RsPgorCisKKworCisKKworCisKKyAgPGg0IGlkPXRyZWUtY29uc3RydWN0aW9uPjEyLjIuNSA8ZGZuPlRyZWUgY29uc3RydWN0aW9uPC9kZm4+PC9oND4KKworICA8cD5UaGUgaW5wdXQgdG8gdGhlIHRyZWUgY29uc3RydWN0aW9uIHN0YWdlIGlzIGEgc2VxdWVuY2Ugb2YgdG9rZW5zIGZyb20gdGhlCisgIDxhIGhyZWY9I3Rva2VuaXphdGlvbiBpZD10cmVlLWNvbnN0cnVjdGlvbjp0b2tlbml6YXRpb24+dG9rZW5pemF0aW9uPC9hPiBzdGFnZS4gVGhlIHRyZWUgY29uc3RydWN0aW9uIHN0YWdlIGlzIGFzc29jaWF0ZWQgd2l0aCBhIERPTQorICA8Y29kZSBpZD10cmVlLWNvbnN0cnVjdGlvbjpkb2N1bWVudD48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gb2JqZWN0IHdoZW4gYSBwYXJzZXIgaXMgY3JlYXRlZC4gVGhlICJvdXRwdXQiIG9mIHRoaXMgc3RhZ2UgY29uc2lzdHMgb2YKKyAgZHluYW1pY2FsbHkgbW9kaWZ5aW5nIG9yIGV4dGVuZGluZyB0aGF0IGRvY3VtZW50J3MgRE9NIHRyZWUuPC9wPgorCisgIDxwPlRoaXMgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBkZWZpbmUgd2hlbiBhbiBpbnRlcmFjdGl2ZSB1c2VyIGFnZW50IGhhcyB0byByZW5kZXIgdGhlCisgIDxjb2RlIGlkPXRyZWUtY29uc3RydWN0aW9uOmRvY3VtZW50LTI+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IHNvIHRoYXQgaXQgaXMgYXZhaWxhYmxlIHRvIHRoZSB1c2VyLCBvciB3aGVuIGl0IGhhcyB0byBiZWdpbiBhY2NlcHRpbmcgdXNlcgorICBpbnB1dC48L3A+CisKKyAgPGhyPgorCisgIDxwPkFzIGVhY2ggdG9rZW4gaXMgZW1pdHRlZCBmcm9tIHRoZSB0b2tlbml6ZXIsIHRoZSB1c2VyIGFnZW50IG11c3QgZm9sbG93IHRoZSBhcHByb3ByaWF0ZSBzdGVwcworICBmcm9tIHRoZSBmb2xsb3dpbmcgbGlzdCwga25vd24gYXMgdGhlIDxkZm4gaWQ9dHJlZS1jb25zdHJ1Y3Rpb24tZGlzcGF0Y2hlcj50cmVlIGNvbnN0cnVjdGlvbiBkaXNwYXRjaGVyPC9kZm4+OjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD10cmVlLWNvbnN0cnVjdGlvbjpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGlzIGVtcHR5PGR0PklmIHRoZSA8YSBocmVmPSNhZGp1c3RlZC1jdXJyZW50LW5vZGUgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246YWRqdXN0ZWQtY3VycmVudC1ub2RlPmFkanVzdGVkIGN1cnJlbnQgbm9kZTwvYT4gaXMgYW4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT48ZHQ+SWYgdGhlIDxhIGhyZWY9I2FkanVzdGVkLWN1cnJlbnQtbm9kZSBpZD10cmVlLWNvbnN0cnVjdGlvbjphZGp1c3RlZC1jdXJyZW50LW5vZGUtMj5hZGp1c3RlZCBjdXJyZW50IG5vZGU8L2E+IGlzIGEgPGEgaHJlZj0jbWF0aG1sLXRleHQtaW50ZWdyYXRpb24tcG9pbnQgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246bWF0aG1sLXRleHQtaW50ZWdyYXRpb24tcG9pbnQ+TWF0aE1MIHRleHQgaW50ZWdyYXRpb24gcG9pbnQ8L2E+IGFuZCB0aGUgdG9rZW4gaXMgYSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgbmVpdGhlciAibWdseXBoIiBub3IgIm1hbGlnbm1hcmsiPGR0PklmIHRoZSA8YSBocmVmPSNhZGp1c3RlZC1jdXJyZW50LW5vZGUgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246YWRqdXN0ZWQtY3VycmVudC1ub2RlLTM+YWRqdXN0ZWQgY3VycmVudCBub2RlPC9hPiBpcyBhIDxhIGhyZWY9I21hdGhtbC10ZXh0LWludGVncmF0aW9uLXBvaW50IGlkPXRyZWUtY29uc3RydWN0aW9uOm1hdGhtbC10ZXh0LWludGVncmF0aW9uLXBvaW50LTI+TWF0aE1MIHRleHQgaW50ZWdyYXRpb24gcG9pbnQ8L2E+IGFuZCB0aGUgdG9rZW4gaXMgYSBjaGFyYWN0ZXIgdG9rZW48ZHQ+SWYgdGhlIDxhIGhyZWY9I2FkanVzdGVkLWN1cnJlbnQtbm9kZSBpZD10cmVlLWNvbnN0cnVjdGlvbjphZGp1c3RlZC1jdXJyZW50LW5vZGUtND5hZGp1c3RlZCBjdXJyZW50IG5vZGU8L2E+IGlzIGFuIDxjb2RlIGlkPXRyZWUtY29uc3RydWN0aW9uOm1hdGg6YW5ub3RhdGlvbi14bWw+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjbWF0aDphbm5vdGF0aW9uLXhtbD5hbm5vdGF0aW9uLXhtbDwvYT48L2NvZGU+IGVsZW1lbnQgaW4gdGhlIDxhIGlkPXRyZWUtY29uc3RydWN0aW9uOm1hdGhtbC1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI21hdGhtbC1uYW1lc3BhY2U+TWF0aE1MIG5hbWVzcGFjZTwvYT4gYW5kIHRoZSB0b2tlbiBpcyBhIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAic3ZnIjxkdD5JZiB0aGUgPGEgaHJlZj0jYWRqdXN0ZWQtY3VycmVudC1ub2RlIGlkPXRyZWUtY29uc3RydWN0aW9uOmFkanVzdGVkLWN1cnJlbnQtbm9kZS01PmFkanVzdGVkIGN1cnJlbnQgbm9kZTwvYT4gaXMgYW4gPGEgaHJlZj0jaHRtbC1pbnRlZ3JhdGlvbi1wb2ludCBpZD10cmVlLWNvbnN0cnVjdGlvbjpodG1sLWludGVncmF0aW9uLXBvaW50PkhUTUwgaW50ZWdyYXRpb24gcG9pbnQ8L2E+IGFuZCB0aGUgdG9rZW4gaXMgYSBzdGFydCB0YWc8ZHQ+SWYgdGhlIDxhIGhyZWY9I2FkanVzdGVkLWN1cnJlbnQtbm9kZSBpZD10cmVlLWNvbnN0cnVjdGlvbjphZGp1c3RlZC1jdXJyZW50LW5vZGUtNj5hZGp1c3RlZCBjdXJyZW50IG5vZGU8L2E+IGlzIGFuIDxhIGhyZWY9I2h0bWwtaW50ZWdyYXRpb24tcG9pbnQgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246aHRtbC1pbnRlZ3JhdGlvbi1wb2ludC0yPkhUTUwgaW50ZWdyYXRpb24gcG9pbnQ8L2E+IGFuZCB0aGUgdG9rZW4gaXMgYSBjaGFyYWN0ZXIgdG9rZW48ZHQ+SWYgdGhlIHRva2VuIGlzIGFuIGVuZC1vZi1maWxlIHRva2VuPGRkPlByb2Nlc3MgdGhlIHRva2VuIGFjY29yZGluZyB0byB0aGUgcnVsZXMgZ2l2ZW4gaW4gdGhlIHNlY3Rpb24gY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudAorICAgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+IGluIEhUTUwgY29udGVudC48ZHQ+T3RoZXJ3aXNlPGRkPlByb2Nlc3MgdGhlIHRva2VuIGFjY29yZGluZyB0byB0aGUgcnVsZXMgZ2l2ZW4gaW4gdGhlIHNlY3Rpb24gZm9yIHBhcnNpbmcgdG9rZW5zIDxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmZvcmVpZ24gaWQ9dHJlZS1jb25zdHJ1Y3Rpb246cGFyc2luZy1tYWluLWluZm9yZWlnbj5pbiBmb3JlaWduIGNvbnRlbnQ8L2E+LjwvZGw+CisKKyAgPHA+VGhlIDxkZm4gaWQ9bmV4dC10b2tlbj5uZXh0IHRva2VuPC9kZm4+IGlzIHRoZSB0b2tlbiB0aGF0IGlzIGFib3V0IHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgPGEgaHJlZj0jdHJlZS1jb25zdHJ1Y3Rpb24tZGlzcGF0Y2hlciBpZD10cmVlLWNvbnN0cnVjdGlvbjp0cmVlLWNvbnN0cnVjdGlvbi1kaXNwYXRjaGVyPnRyZWUKKyAgY29uc3RydWN0aW9uIGRpc3BhdGNoZXI8L2E+IChldmVuIGlmIHRoZSB0b2tlbiBpcyBzdWJzZXF1ZW50bHkganVzdCBpZ25vcmVkKS48L3A+CisKKyAgPHA+QSBub2RlIGlzIGEgPGRmbiBpZD1tYXRobWwtdGV4dC1pbnRlZ3JhdGlvbi1wb2ludD5NYXRoTUwgdGV4dCBpbnRlZ3JhdGlvbiBwb2ludDwvZGZuPiBpZiBpdCBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZworICBlbGVtZW50czo8L3A+CisKKyAgPHVsIGNsYXNzPWJyaWVmPjxsaT5BbiA8Y29kZSBpZD10cmVlLWNvbnN0cnVjdGlvbjptYXRoOm1pPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6bWk+bWk8L2E+PC9jb2RlPiBlbGVtZW50IGluIHRoZSA8YSBpZD10cmVlLWNvbnN0cnVjdGlvbjptYXRobWwtbmFtZXNwYWNlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI21hdGhtbC1uYW1lc3BhY2U+TWF0aE1MIG5hbWVzcGFjZTwvYT48bGk+QW4gPGNvZGUgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246bWF0aDptbz48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOm1vPm1vPC9hPjwvY29kZT4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246bWF0aG1sLW5hbWVzcGFjZS0zIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNtYXRobWwtbmFtZXNwYWNlPk1hdGhNTCBuYW1lc3BhY2U8L2E+PGxpPkFuIDxjb2RlIGlkPXRyZWUtY29uc3RydWN0aW9uOm1hdGg6bW4+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjbWF0aDptbj5tbjwvYT48L2NvZGU+IGVsZW1lbnQgaW4gdGhlIDxhIGlkPXRyZWUtY29uc3RydWN0aW9uOm1hdGhtbC1uYW1lc3BhY2UtNCBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbWF0aG1sLW5hbWVzcGFjZT5NYXRoTUwgbmFtZXNwYWNlPC9hPjxsaT5BbiA8Y29kZSBpZD10cmVlLWNvbnN0cnVjdGlvbjptYXRoOm1zPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6bXM+bXM8L2E+PC9jb2RlPiBlbGVtZW50IGluIHRoZSA8YSBpZD10cmVlLWNvbnN0cnVjdGlvbjptYXRobWwtbmFtZXNwYWNlLTUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI21hdGhtbC1uYW1lc3BhY2U+TWF0aE1MIG5hbWVzcGFjZTwvYT48bGk+QW4gPGNvZGUgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246bWF0aDptdGV4dD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOm10ZXh0Pm10ZXh0PC9hPjwvY29kZT4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246bWF0aG1sLW5hbWVzcGFjZS02IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNtYXRobWwtbmFtZXNwYWNlPk1hdGhNTCBuYW1lc3BhY2U8L2E+PC91bD4KKworICA8cD5BIG5vZGUgaXMgYW4gPGRmbiBpZD1odG1sLWludGVncmF0aW9uLXBvaW50PkhUTUwgaW50ZWdyYXRpb24gcG9pbnQ8L2Rmbj4gaWYgaXQgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgZWxlbWVudHM6PC9wPgorCisgIDx1bCBjbGFzcz1icmllZj48bGk+QW4gPGNvZGUgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246bWF0aDphbm5vdGF0aW9uLXhtbC0yPjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI21hdGg6YW5ub3RhdGlvbi14bWw+YW5ub3RhdGlvbi14bWw8L2E+PC9jb2RlPiBlbGVtZW50IGluIHRoZSA8YSBpZD10cmVlLWNvbnN0cnVjdGlvbjptYXRobWwtbmFtZXNwYWNlLTcgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI21hdGhtbC1uYW1lc3BhY2U+TWF0aE1MCisgICBuYW1lc3BhY2U8L2E+IHdob3NlIHN0YXJ0IHRhZyB0b2tlbiBoYWQgYW4gYXR0cmlidXRlIHdpdGggdGhlIG5hbWUgImVuY29kaW5nIiB3aG9zZSB2YWx1ZSB3YXMKKyAgIGFuIDxhIGlkPXRyZWUtY29uc3RydWN0aW9uOmFzY2lpLWNhc2UtaW5zZW5zaXRpdmUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FzY2lpLWNhc2UtaW5zZW5zaXRpdmU+QVNDSUkgY2FzZS1pbnNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIjxjb2RlPnRleHQvaHRtbDwvY29kZT4iPGxpPkFuIDxjb2RlIGlkPXRyZWUtY29uc3RydWN0aW9uOm1hdGg6YW5ub3RhdGlvbi14bWwtMz48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNtYXRoOmFubm90YXRpb24teG1sPmFubm90YXRpb24teG1sPC9hPjwvY29kZT4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246bWF0aG1sLW5hbWVzcGFjZS04IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNtYXRobWwtbmFtZXNwYWNlPk1hdGhNTAorICAgbmFtZXNwYWNlPC9hPiB3aG9zZSBzdGFydCB0YWcgdG9rZW4gaGFkIGFuIGF0dHJpYnV0ZSB3aXRoIHRoZSBuYW1lICJlbmNvZGluZyIgd2hvc2UgdmFsdWUgd2FzCisgICBhbiA8YSBpZD10cmVlLWNvbnN0cnVjdGlvbjphc2NpaS1jYXNlLWluc2Vuc2l0aXZlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FzY2lpLWNhc2UtaW5zZW5zaXRpdmU+QVNDSUkgY2FzZS1pbnNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIjxjb2RlPmFwcGxpY2F0aW9uL3hodG1sK3htbDwvY29kZT4iPGxpPkEgPGNvZGU+Zm9yZWlnbk9iamVjdDwvY29kZT4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9dHJlZS1jb25zdHJ1Y3Rpb246c3ZnLW5hbWVzcGFjZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3ZnLW5hbWVzcGFjZT5TVkcgbmFtZXNwYWNlPC9hPjxsaT5BIDxjb2RlPmRlc2M8L2NvZGU+IGVsZW1lbnQgaW4gdGhlIDxhIGlkPXRyZWUtY29uc3RydWN0aW9uOnN2Zy1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3ZnLW5hbWVzcGFjZT5TVkcgbmFtZXNwYWNlPC9hPjxsaT5BIDxjb2RlPnRpdGxlPC9jb2RlPiBlbGVtZW50IGluIHRoZSA8YSBpZD10cmVlLWNvbnN0cnVjdGlvbjpzdmctbmFtZXNwYWNlLTMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3N2Zy1uYW1lc3BhY2U+U1ZHIG5hbWVzcGFjZTwvYT48L3VsPgorCisgIDxwIGNsYXNzPW5vdGU+Tm90IGFsbCBvZiB0aGUgdGFnIG5hbWVzIG1lbnRpb25lZCBiZWxvdyBhcmUgY29uZm9ybWFudCB0YWcgbmFtZXMgaW4gdGhpcworICBzcGVjaWZpY2F0aW9uOyBtYW55IGFyZSBpbmNsdWRlZCB0byBoYW5kbGUgbGVnYWN5IGNvbnRlbnQuIFRoZXkgc3RpbGwgZm9ybSBwYXJ0IG9mIHRoZSBhbGdvcml0aG0KKyAgdGhhdCBpbXBsZW1lbnRhdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGltcGxlbWVudCB0byBjbGFpbSBjb25mb3JtYW5jZS48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGUgYWxnb3JpdGhtIGRlc2NyaWJlZCBiZWxvdyBwbGFjZXMgbm8gbGltaXQgb24gdGhlIGRlcHRoIG9mIHRoZSBET00gdHJlZQorICBnZW5lcmF0ZWQsIG9yIG9uIHRoZSBsZW5ndGggb2YgdGFnIG5hbWVzLCBhdHRyaWJ1dGUgbmFtZXMsIGF0dHJpYnV0ZSB2YWx1ZXMsIDxjb2RlIGlkPXRyZWUtY29uc3RydWN0aW9uOnRleHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+CisgIG5vZGVzLCBldGMuIFdoaWxlIGltcGxlbWVudG9ycyBhcmUgZW5jb3VyYWdlZCB0byBhdm9pZCBhcmJpdHJhcnkgbGltaXRzLCBpdCBpcyByZWNvZ25pc2VkIHRoYXQgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2hhcmR3YXJlTGltaXRhdGlvbnM+cHJhY3RpY2FsIGNvbmNlcm5zPC9hPiB3aWxsIGxpa2VseSBmb3JjZSB1c2VyIGFnZW50cyB0byBpbXBvc2UgbmVzdGluZworICBkZXB0aCBjb25zdHJhaW50cy48L3A+CisKKworICA8aDUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlcz4xMi4yLjUuMSBDcmVhdGluZyBhbmQgaW5zZXJ0aW5nIG5vZGVzPC9oNT4KKworICA8cD5XaGlsZSB0aGUgcGFyc2VyIGlzIHByb2Nlc3NpbmcgYSB0b2tlbiwgaXQgY2FuIGVuYWJsZSBvciBkaXNhYmxlIDxkZm4gaWQ9Zm9zdGVyLXBhcmVudD5mb3N0ZXIgcGFyZW50aW5nPC9kZm4+LiBUaGlzIGFmZmVjdHMgdGhlIGZvbGxvd2luZyBhbGdvcml0aG0uPC9wPgorCisgIDxwPlRoZSA8ZGZuIGlkPWFwcHJvcHJpYXRlLXBsYWNlLWZvci1pbnNlcnRpbmctYS1ub2RlPmFwcHJvcHJpYXRlIHBsYWNlIGZvciBpbnNlcnRpbmcgYSBub2RlPC9kZm4+LCBvcHRpb25hbGx5IHVzaW5nIGEgcGFydGljdWxhcgorICA8aT5vdmVycmlkZSB0YXJnZXQ8L2k+LCBpcyB0aGUgcG9zaXRpb24gaW4gYW4gZWxlbWVudCByZXR1cm5lZCBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHM6PC9wPgorCisgIDxvbD48bGk+CisKKyAgICA8cD5JZiB0aGVyZSB3YXMgYW4gPGk+b3ZlcnJpZGUgdGFyZ2V0PC9pPiBzcGVjaWZpZWQsIHRoZW4gbGV0IDx2YXI+dGFyZ2V0PC92YXI+IGJlIHRoZQorICAgIDxpPm92ZXJyaWRlIHRhcmdldDwvaT4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlLCBsZXQgPHZhcj50YXJnZXQ8L3Zhcj4gYmUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmN1cnJlbnQtbm9kZT5jdXJyZW50IG5vZGU8L2E+LjwvcD4KKworICAgPGxpPgorCisgICAgPHA+RGV0ZXJtaW5lIHRoZSA8dmFyPmFkanVzdGVkIGluc2VydGlvbiBsb2NhdGlvbjwvdmFyPiB1c2luZyB0aGUgZmlyc3QgbWF0Y2hpbmcgc3RlcHMKKyAgICBmcm9tIHRoZSBmb2xsb3dpbmcgbGlzdDo8L3A+CisKKyAgICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5JZiA8YSBocmVmPSNmb3N0ZXItcGFyZW50IGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6Zm9zdGVyLXBhcmVudD5mb3N0ZXIgcGFyZW50aW5nPC9hPiBpcyBlbmFibGVkIGFuZCA8dmFyPnRhcmdldDwvdmFyPiBpcyBhIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLXRhYmxlLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+LCA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRoZS10Ym9keS1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp0aGUtdGZvb3QtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Zm9vdC1lbGVtZW50PnRmb290PC9hPjwvY29kZT4sCisgICAgIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLXRoZWFkLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGhlYWQtZWxlbWVudD50aGVhZDwvYT48L2NvZGU+LCBvciA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRoZS10ci1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiBlbGVtZW50PGRkPgorCisgICAgICA8cCBjbGFzcz1ub3RlPkZvc3RlciBwYXJlbnRpbmcgaGFwcGVucyB3aGVuIGNvbnRlbnQgaXMgbWlzbmVzdGVkIGluIHRhYmxlcy48L3A+CisKKyAgICAgIDxwPlJ1biB0aGVzZSBzdWJzdGVwczo8L3A+CisKKyAgICAgIDxvbD48bGk+PHA+TGV0IDx2YXI+bGFzdCB0ZW1wbGF0ZTwvdmFyPiBiZSB0aGUgbGFzdCA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRoZS10ZW1wbGF0ZS1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiBlbGVtZW50IGluIHRoZQorICAgICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgICAgPGxpPjxwPkxldCA8dmFyPmxhc3QgdGFibGU8L3Zhcj4gYmUgdGhlIGxhc3QgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp0aGUtdGFibGUtZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPiBlbGVtZW50IGluIHRoZQorICAgICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICAgICA8bGk+PHA+SWYgdGhlcmUgaXMgYSA8dmFyPmxhc3QgdGVtcGxhdGU8L3Zhcj4gYW5kIGVpdGhlciB0aGVyZSBpcyBubyA8dmFyPmxhc3QgdGFibGU8L3Zhcj4sIG9yIHRoZXJlIGlzIG9uZSwgYnV0IDx2YXI+bGFzdCB0ZW1wbGF0ZTwvdmFyPiBpcyBsb3dlcgorICAgICAgIChtb3JlIHJlY2VudGx5IGFkZGVkKSB0aGFuIDx2YXI+bGFzdCB0YWJsZTwvdmFyPiBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMz5zdGFjayBvZiBvcGVuCisgICAgICAgZWxlbWVudHM8L2E+LCB0aGVuOiBsZXQgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4gYmUgaW5zaWRlIDx2YXI+bGFzdCB0ZW1wbGF0ZTwvdmFyPidzIDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGVtcGxhdGUtY29udGVudHMgaHJlZj1zY3JpcHRpbmcuaHRtbCN0ZW1wbGF0ZS1jb250ZW50cz50ZW1wbGF0ZSBjb250ZW50czwvYT4sIGFmdGVyIGl0cyBsYXN0IGNoaWxkIChpZiBhbnkpLAorICAgICAgIGFuZCBhYm9ydCB0aGVzZSBzdWJzdGVwcy48bGk+PHA+SWYgdGhlcmUgaXMgbm8gPHZhcj5sYXN0IHRhYmxlPC92YXI+LCAgdGhlbiBsZXQgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24KKyAgICAgICBsb2NhdGlvbjwvdmFyPiBiZSBpbnNpZGUgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTQ+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gKHRoZQorICAgICAgIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLWh0bWwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQpLCBhZnRlciBpdHMgbGFzdCBjaGlsZCAoaWYgYW55KSwgYW5kIGFib3J0IHRoZXNlIHN1YnN0ZXBzLgorICAgICAgICg8YSBocmVmPSNmcmFnbWVudC1jYXNlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6ZnJhZ21lbnQtY2FzZT5mcmFnbWVudCBjYXNlPC9hPik8L3A+CisKKworCisgICAgICAgPGxpPjxwPklmIDx2YXI+bGFzdCB0YWJsZTwvdmFyPiBoYXMgYSBwYXJlbnQgbm9kZSwgdGhlbiBsZXQgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4gYmUgaW5zaWRlIDx2YXI+bGFzdCB0YWJsZTwvdmFyPidzIHBhcmVudAorICAgICAgIG5vZGUsIGltbWVkaWF0ZWx5IGJlZm9yZSA8dmFyPmxhc3QgdGFibGU8L3Zhcj4sIGFuZCBhYm9ydCB0aGVzZQorICAgICAgIHN1YnN0ZXBzLjxsaT48cD5MZXQgPHZhcj5wcmV2aW91cyBlbGVtZW50PC92YXI+IGJlIHRoZSBlbGVtZW50IGltbWVkaWF0ZWx5IGFib3ZlIDx2YXI+bGFzdCB0YWJsZTwvdmFyPiBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48bGk+PHA+TGV0IDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uIGxvY2F0aW9uPC92YXI+IGJlIGluc2lkZSA8dmFyPnByZXZpb3VzCisgICAgICAgZWxlbWVudDwvdmFyPiwgYWZ0ZXIgaXRzIGxhc3QgY2hpbGQgKGlmIGFueSkuPC9vbD4KKworICAgICAgPHAgY2xhc3M9bm90ZT5UaGVzZSBzdGVwcyBhcmUgaW52b2x2ZWQgaW4gcGFydCBiZWNhdXNlIGl0J3MgcG9zc2libGUgZm9yIGVsZW1lbnRzLCB0aGUKKyAgICAgIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLXRhYmxlLWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4gZWxlbWVudCBpbiB0aGlzIGNhc2UgaW4gcGFydGljdWxhciwgdG8gaGF2ZSBiZWVuIG1vdmVkIGJ5IGEgc2NyaXB0IGFyb3VuZAorICAgICAgaW4gdGhlIERPTSwgb3IgaW5kZWVkIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGVudGlyZWx5LCBhZnRlciB0aGUgZWxlbWVudCB3YXMgaW5zZXJ0ZWQgYnkgdGhlCisgICAgICBwYXJzZXIuPC9wPgorCisgICAgIDxkdD5PdGhlcndpc2U8ZGQ+CisKKyAgICAgIDxwPkxldCA8dmFyPmFkanVzdGVkIGluc2VydGlvbiBsb2NhdGlvbjwvdmFyPiBiZSBpbnNpZGUgPHZhcj50YXJnZXQ8L3Zhcj4sCisgICAgICBhZnRlciBpdHMgbGFzdCBjaGlsZCAoaWYgYW55KS48L3A+CisKKyAgICAgPC9kbD4KKworICAgPGxpPgorCisgICAgPHA+SWYgdGhlIDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uIGxvY2F0aW9uPC92YXI+IGlzIGluc2lkZSBhIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLXRlbXBsYXRlLWVsZW1lbnQtMj48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS10ZW1wbGF0ZS1lbGVtZW50PnRlbXBsYXRlPC9hPjwvY29kZT4KKyAgICBlbGVtZW50LCBsZXQgaXQgaW5zdGVhZCBiZSBpbnNpZGUgdGhlIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLXRlbXBsYXRlLWVsZW1lbnQtMz48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS10ZW1wbGF0ZS1lbGVtZW50PnRlbXBsYXRlPC9hPjwvY29kZT4gZWxlbWVudCdzIDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGVtcGxhdGUtY29udGVudHMtMiBocmVmPXNjcmlwdGluZy5odG1sI3RlbXBsYXRlLWNvbnRlbnRzPnRlbXBsYXRlCisgICAgY29udGVudHM8L2E+LCBhZnRlciBpdHMgbGFzdCBjaGlsZCAoaWYgYW55KS48L3A+CisKKyAgIDxsaT4KKworICAgIDxwPlJldHVybiB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4uPC9wPgorCisgICA8L29sPgorCisgIDxocj4KKworICA8cD5XaGVuIHRoZSBzdGVwcyBiZWxvdyByZXF1aXJlIHRoZSBVQSB0byA8ZGZuIGlkPWNyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4+Y3JlYXRlIGFuCisgIGVsZW1lbnQgZm9yIGEgdG9rZW48L2Rmbj4gaW4gYSBwYXJ0aWN1bGFyIDx2YXI+Z2l2ZW4gbmFtZXNwYWNlPC92YXI+IGFuZCB3aXRoIGEKKyAgcGFydGljdWxhciA8dmFyPmludGVuZGVkIHBhcmVudDwvdmFyPiwgdGhlIFVBIG11c3QgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6PC9wPgorCisgIDxvbD48bGk+CisKKyAgICA8cD5DcmVhdGUgYSBub2RlIGltcGxlbWVudGluZyB0aGUgaW50ZXJmYWNlIGFwcHJvcHJpYXRlIGZvciB0aGUgZWxlbWVudCB0eXBlIGNvcnJlc3BvbmRpbmcgdG8KKyAgICB0aGUgdGFnIG5hbWUgb2YgdGhlIHRva2VuIGluIDx2YXI+Z2l2ZW4gbmFtZXNwYWNlPC92YXI+IChhcyBnaXZlbiBpbiB0aGUgc3BlY2lmaWNhdGlvbgorICAgIHRoYXQgZGVmaW5lcyB0aGF0IGVsZW1lbnQsIGUuZy4gZm9yIGFuIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLWEtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hLWVsZW1lbnQ+YTwvYT48L2NvZGU+IGVsZW1lbnQgaW4gdGhlIDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MCisgICAgbmFtZXNwYWNlPC9hPiwgdGhpcyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgaXQgdG8gYmUgdGhlIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6aHRtbGFuY2hvcmVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCNodG1sYW5jaG9yZWxlbWVudD5IVE1MQW5jaG9yRWxlbWVudDwvYT48L2NvZGU+CisgICAgaW50ZXJmYWNlKSwgd2l0aCB0aGUgdGFnIG5hbWUgYmVpbmcgdGhlIG5hbWUgb2YgdGhhdCBlbGVtZW50LCB3aXRoIHRoZSBub2RlIGJlaW5nIGluIHRoZSBnaXZlbgorICAgIG5hbWVzcGFjZSwgYW5kIHdpdGggdGhlIGF0dHJpYnV0ZXMgb24gdGhlIG5vZGUgYmVpbmcgdGhvc2UgZ2l2ZW4gaW4gdGhlIGdpdmVuIHRva2VuLjwvcD4KKworICAgIDxwPlRoZSBpbnRlcmZhY2UgYXBwcm9wcmlhdGUgZm9yIGFuIGVsZW1lbnQgaW4gdGhlIDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6aHRtbC1uYW1lc3BhY2UtMi0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLW5hbWVzcGFjZS0yPkhUTUwgbmFtZXNwYWNlPC9hPiB0aGF0IGlzIG5vdAorICAgIGRlZmluZWQgaW4gdGhpcyBzcGVjaWZpY2F0aW9uIChvciA8YSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOm90aGVyLWFwcGxpY2FibGUtc3BlY2lmaWNhdGlvbnMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI290aGVyLWFwcGxpY2FibGUtc3BlY2lmaWNhdGlvbnM+b3RoZXIgYXBwbGljYWJsZSBzcGVjaWZpY2F0aW9uczwvYT4pIGlzCisgICAgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpodG1sdW5rbm93bmVsZW1lbnQ+PGEgaHJlZj1kb20uaHRtbCNodG1sdW5rbm93bmVsZW1lbnQ+SFRNTFVua25vd25FbGVtZW50PC9hPjwvY29kZT4uIEVsZW1lbnRzIGluIG90aGVyIG5hbWVzcGFjZXMgd2hvc2UgaW50ZXJmYWNlIGlzIG5vdCBkZWZpbmVkIGJ5CisgICAgdGhhdCBuYW1lc3BhY2UncyBzcGVjaWZpY2F0aW9uIG11c3QgdXNlIHRoZSBpbnRlcmZhY2UgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczplbGVtZW50PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNlbGVtZW50PkVsZW1lbnQ8L2E+PC9jb2RlPi48L3A+CisKKyAgICA8cD5UaGUgPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpub2RlLWRvY3VtZW50IGhyZWY9aHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtZG9jdW1lbnQgZGF0YS14LWludGVybmFsPW5vZGUtZG9jdW1lbnQ+bm9kZSBkb2N1bWVudDwvYT4gb2YgdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudAorICAgIG11c3QgYmUgdGhlIDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6bm9kZS1kb2N1bWVudC0yIGhyZWY9aHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtZG9jdW1lbnQgZGF0YS14LWludGVybmFsPW5vZGUtZG9jdW1lbnQ+bm9kZSBkb2N1bWVudDwvYT4gb2YgdGhlIDx2YXI+aW50ZW5kZWQgcGFyZW50PC92YXI+LjwvcD4KKworICAgPGxpPjxwPklmIHRoZSBuZXdseSBjcmVhdGVkIGVsZW1lbnQgaGFzIGFuIDxjb2RlPnhtbG5zPC9jb2RlPiBhdHRyaWJ1dGUgPGVtPmluIHRoZQorICAgPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp4bWxucy1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbG5zLW5hbWVzcGFjZT5YTUxOUyBuYW1lc3BhY2U8L2E+PC9lbT4gd2hvc2UgdmFsdWUgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIGVsZW1lbnQncyBuYW1lc3BhY2UsCisgICB0aGF0IGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpwYXJzZS1lcnJvcj5wYXJzZSBlcnJvcjwvYT4uIFNpbWlsYXJseSwgaWYgdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudCBoYXMgYW4gPGNvZGU+eG1sbnM6eGxpbms8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp4bWxucy1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeG1sbnMtbmFtZXNwYWNlPlhNTE5TIG5hbWVzcGFjZTwvYT4gd2hvc2UgdmFsdWUgaXMgbm90IHRoZQorICAgPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp4bGluay1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBOYW1lc3BhY2U8L2E+LCB0aGF0IGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpwYXJzZS1lcnJvci0yPnBhcnNlIGVycm9yPC9hPi48bGk+PHA+SWYgdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudCBpcyBhIDxhIGhyZWY9Zm9ybXMuaHRtbCNjYXRlZ29yeS1yZXNldCBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmNhdGVnb3J5LXJlc2V0PnJlc2V0dGFibGUgZWxlbWVudDwvYT4sCisgICBpbnZva2UgaXRzIDxhIGhyZWY9Zm9ybXMuaHRtbCNjb25jZXB0LWZvcm0tcmVzZXQtY29udHJvbCBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmNvbmNlcHQtZm9ybS1yZXNldC1jb250cm9sPnJlc2V0IGFsZ29yaXRobTwvYT4uIChUaGlzIGluaXRpYWxpc2VzIHRoZQorICAgZWxlbWVudCdzIDxhIGhyZWY9Zm9ybXMuaHRtbCNjb25jZXB0LWZlLXZhbHVlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6Y29uY2VwdC1mZS12YWx1ZT52YWx1ZTwvYT4gYW5kIDxhIGhyZWY9Zm9ybXMuaHRtbCNjb25jZXB0LWZlLWNoZWNrZWQgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpjb25jZXB0LWZlLWNoZWNrZWQ+Y2hlY2tlZG5lc3M8L2E+IGJhc2VkIG9uIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlcy4pPGxpPjxwPklmIHRoZSBlbGVtZW50IGlzIGEgPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpmb3JtLWFzc29jaWF0ZWQtZWxlbWVudCBocmVmPWZvcm1zLmh0bWwjZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQ+Zm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQ8L2E+LCBhbmQgdGhlIDxhIGhyZWY9I2Zvcm0tZWxlbWVudC1wb2ludGVyIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6Zm9ybS1lbGVtZW50LXBvaW50ZXI+PGNvZGU+Zm9ybTwvY29kZT4gZWxlbWVudCBwb2ludGVyPC9hPiBpcyBub3QgbnVsbCwgYW5kIHRoZXJlIGlzIG5vIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLXRlbXBsYXRlLWVsZW1lbnQtND48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS10ZW1wbGF0ZS1lbGVtZW50PnRlbXBsYXRlPC9hPjwvY29kZT4KKyAgIGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTY+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIGFuZCB0aGUgbmV3bHkgY3JlYXRlZCBlbGVtZW50IGlzIGVpdGhlciBub3QKKyAgIDxhIGhyZWY9Zm9ybXMuaHRtbCNjYXRlZ29yeS1mb3JtLWF0dHIgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpjYXRlZ29yeS1mb3JtLWF0dHI+cmVhc3NvY2lhdGVhYmxlPC9hPiBvciBkb2Vzbid0IGhhdmUgYSA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmF0dHItZmFlLWZvcm0+PGEgaHJlZj1mb3Jtcy5odG1sI2F0dHItZmFlLWZvcm0+Zm9ybTwvYT48L2NvZGU+IGF0dHJpYnV0ZSwgYW5kIHRoZSA8dmFyPmludGVuZGVkIHBhcmVudDwvdmFyPiBpcyBpbgorICAgdGhlIHNhbWUgPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpob21lLXN1YnRyZWUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2hvbWUtc3VidHJlZT5ob21lIHN1YnRyZWU8L2E+IGFzIHRoZSBlbGVtZW50IHBvaW50ZWQgdG8gYnkgdGhlIDxhIGhyZWY9I2Zvcm0tZWxlbWVudC1wb2ludGVyIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6Zm9ybS1lbGVtZW50LXBvaW50ZXItMj48Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+LCA8YSBocmVmPWZvcm1zLmh0bWwjY29uY2VwdC1mb3JtLWFzc29jaWF0aW9uIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6Y29uY2VwdC1mb3JtLWFzc29jaWF0aW9uPmFzc29jaWF0ZTwvYT4gdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudCB3aXRoIHRoZQorICAgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp0aGUtZm9ybS1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtZm9ybS1lbGVtZW50PmZvcm08L2E+PC9jb2RlPiBlbGVtZW50IHBvaW50ZWQgdG8gYnkgdGhlIDxhIGhyZWY9I2Zvcm0tZWxlbWVudC1wb2ludGVyIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6Zm9ybS1lbGVtZW50LXBvaW50ZXItMz48Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50CisgICBwb2ludGVyPC9hPiwgYW5kIHN1cHByZXNzIHRoZSBydW5uaW5nIG9mIHRoZSA8YSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnJlc2V0LXRoZS1mb3JtLW93bmVyIGhyZWY9Zm9ybXMuaHRtbCNyZXNldC10aGUtZm9ybS1vd25lcj5yZXNldCB0aGUgZm9ybSBvd25lcjwvYT4gYWxnb3JpdGhtIHdoZW4KKyAgIHRoZSBwYXJzZXIgc3Vic2VxdWVudGx5IGF0dGVtcHRzIHRvIGluc2VydCB0aGUgZWxlbWVudC48bGk+PHA+UmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIGVsZW1lbnQuPC9vbD4KKworICA8aHI+CisKKworCisgIDxwPldoZW4gdGhlIHN0ZXBzIGJlbG93IHJlcXVpcmUgdGhlIHVzZXIgYWdlbnQgdG8gPGRmbiBpZD1pbnNlcnQtYS1mb3JlaWduLWVsZW1lbnQ+aW5zZXJ0IGEgZm9yZWlnbiBlbGVtZW50PC9kZm4+IGZvciBhIHRva2VuCisgIGluIGEgZ2l2ZW4gbmFtZXNwYWNlLCB0aGUgdXNlciBhZ2VudCBtdXN0IHJ1biB0aGVzZSBzdGVwczo8L3A+CisKKyAgPG9sPjxsaT48cD5MZXQgdGhlIDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uIGxvY2F0aW9uPC92YXI+IGJlIHRoZSA8YSBocmVmPSNhcHByb3ByaWF0ZS1wbGFjZS1mb3ItaW5zZXJ0aW5nLWEtbm9kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmFwcHJvcHJpYXRlLXBsYWNlLWZvci1pbnNlcnRpbmctYS1ub2RlPmFwcHJvcHJpYXRlIHBsYWNlIGZvcgorICAgaW5zZXJ0aW5nIGEgbm9kZTwvYT4uPGxpPjxwPjxhIGhyZWY9I2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4gaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpjcmVhdGUtYW4tZWxlbWVudC1mb3ItdGhlLXRva2VuPkNyZWF0ZSBhbiBlbGVtZW50IGZvciB0aGUgdG9rZW48L2E+IGluIHRoZSBnaXZlbiBuYW1lc3BhY2UsIHdpdGggdGhlIGludGVuZGVkCisgICBwYXJlbnQgYmVpbmcgdGhlIGVsZW1lbnQgaW4gd2hpY2ggdGhlIDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uIGxvY2F0aW9uPC92YXI+IGZpbmRzCisgICBpdHNlbGYuPGxpPgorCisgICAgPHA+SWYgaXQgaXMgcG9zc2libGUgdG8gaW5zZXJ0IGFuIGVsZW1lbnQgYXQgdGhlIDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uCisgICAgbG9jYXRpb248L3Zhcj4sIHRoZW4gaW5zZXJ0IHRoZSBuZXdseSBjcmVhdGVkIGVsZW1lbnQgYXQgdGhlIDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uCisgICAgbG9jYXRpb248L3Zhcj4uPC9wPgorCisgICAgPHAgY2xhc3M9bm90ZT5JZiB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4gY2Fubm90IGFjY2VwdCBtb3JlCisgICAgZWxlbWVudHMsIGUuZy4gYmVjYXVzZSBpdCdzIGEgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpkb2N1bWVudD48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gdGhhdCBhbHJlYWR5IGhhcyBhbiBlbGVtZW50IGNoaWxkLCB0aGVuIHRoZQorICAgIG5ld2x5IGNyZWF0ZWQgZWxlbWVudCBpcyBkcm9wcGVkIG9uIHRoZSBmbG9vci48L3A+CisKKyAgIDxsaT48cD5QdXNoIHRoZSBlbGVtZW50IG9udG8gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTc+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gc28gdGhhdCBpdCBpcyB0aGUgbmV3CisgICA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+LjxsaT48cD5SZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudC48L29sPgorCisgIDxwPldoZW4gdGhlIHN0ZXBzIGJlbG93IHJlcXVpcmUgdGhlIHVzZXIgYWdlbnQgdG8gPGRmbiBpZD1pbnNlcnQtYW4taHRtbC1lbGVtZW50Pmluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2Rmbj4gZm9yIGEgdG9rZW4sCisgIHRoZSB1c2VyIGFnZW50IG11c3QgPGEgaHJlZj0jaW5zZXJ0LWEtZm9yZWlnbi1lbGVtZW50IGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6aW5zZXJ0LWEtZm9yZWlnbi1lbGVtZW50Pmluc2VydCBhIGZvcmVpZ24gZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbiwgaW4gdGhlIDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6aHRtbC1uYW1lc3BhY2UtMi0zIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLW5hbWVzcGFjZS0yPkhUTUwKKyAgbmFtZXNwYWNlPC9hPi48L3A+CisKKyAgPGhyPgorCisgIDxwPldoZW4gdGhlIHN0ZXBzIGJlbG93IHJlcXVpcmUgdGhlIHVzZXIgYWdlbnQgdG8gPGRmbiBpZD1hZGp1c3QtbWF0aG1sLWF0dHJpYnV0ZXM+YWRqdXN0IE1hdGhNTCBhdHRyaWJ1dGVzPC9kZm4+IGZvciBhIHRva2VuLAorICB0aGVuLCBpZiB0aGUgdG9rZW4gaGFzIGFuIGF0dHJpYnV0ZSBuYW1lZCA8Y29kZT5kZWZpbml0aW9udXJsPC9jb2RlPiwgY2hhbmdlIGl0cyBuYW1lIHRvCisgIDxjb2RlPmRlZmluaXRpb25VUkw8L2NvZGU+IChub3RlIHRoZSBjYXNlIGRpZmZlcmVuY2UpLjwvcD4KKworICA8cD5XaGVuIHRoZSBzdGVwcyBiZWxvdyByZXF1aXJlIHRoZSB1c2VyIGFnZW50IHRvIDxkZm4gaWQ9YWRqdXN0LXN2Zy1hdHRyaWJ1dGVzPmFkanVzdCBTVkcgYXR0cmlidXRlczwvZGZuPiBmb3IgYSB0b2tlbiwKKyAgdGhlbiwgZm9yIGVhY2ggYXR0cmlidXRlIG9uIHRoZSB0b2tlbiB3aG9zZSBhdHRyaWJ1dGUgbmFtZSBpcyBvbmUgb2YgdGhlIG9uZXMgaW4gdGhlIGZpcnN0IGNvbHVtbgorICBvZiB0aGUgZm9sbG93aW5nIHRhYmxlLCBjaGFuZ2UgdGhlIGF0dHJpYnV0ZSdzIG5hbWUgdG8gdGhlIG5hbWUgZ2l2ZW4gaW4gdGhlIGNvcnJlc3BvbmRpbmcgY2VsbCBpbgorICB0aGUgc2Vjb25kIGNvbHVtbi4gKFRoaXMgZml4ZXMgdGhlIGNhc2Ugb2YgU1ZHIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbm90IGFsbCBsb3dlcmNhc2UuKTwvcD4KKworICA8dGFibGU+PHRoZWFkPjx0cj48dGg+IEF0dHJpYnV0ZSBuYW1lIG9uIHRva2VuIDx0aD4gQXR0cmlidXRlIG5hbWUgb24gZWxlbWVudAorICAgPHRib2R5Pjx0cj48dGQ+IDxjb2RlPmF0dHJpYnV0ZW5hbWU8L2NvZGU+IDx0ZD4gPGNvZGU+YXR0cmlidXRlTmFtZTwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5hdHRyaWJ1dGV0eXBlPC9jb2RlPiA8dGQ+IDxjb2RlPmF0dHJpYnV0ZVR5cGU8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+YmFzZWZyZXF1ZW5jeTwvY29kZT4gPHRkPiA8Y29kZT5iYXNlRnJlcXVlbmN5PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmJhc2Vwcm9maWxlPC9jb2RlPiA8dGQ+IDxjb2RlPmJhc2VQcm9maWxlPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmNhbGNtb2RlPC9jb2RlPiA8dGQ+IDxjb2RlPmNhbGNNb2RlPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmNsaXBwYXRodW5pdHM8L2NvZGU+IDx0ZD4gPGNvZGU+Y2xpcFBhdGhVbml0czwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5kaWZmdXNlY29uc3RhbnQ8L2NvZGU+IDx0ZD4gPGNvZGU+ZGlmZnVzZUNvbnN0YW50PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmVkZ2Vtb2RlPC9jb2RlPiA8dGQ+IDxjb2RlPmVkZ2VNb2RlPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmZpbHRlcnVuaXRzPC9jb2RlPiA8dGQ+IDxjb2RlPmZpbHRlclVuaXRzPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmdseXBocmVmPC9jb2RlPiA8dGQ+IDxjb2RlPmdseXBoUmVmPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmdyYWRpZW50dHJhbnNmb3JtPC9jb2RlPiA8dGQ+IDxjb2RlPmdyYWRpZW50VHJhbnNmb3JtPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmdyYWRpZW50dW5pdHM8L2NvZGU+IDx0ZD4gPGNvZGU+Z3JhZGllbnRVbml0czwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5rZXJuZWxtYXRyaXg8L2NvZGU+IDx0ZD4gPGNvZGU+a2VybmVsTWF0cml4PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmtlcm5lbHVuaXRsZW5ndGg8L2NvZGU+IDx0ZD4gPGNvZGU+a2VybmVsVW5pdExlbmd0aDwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5rZXlwb2ludHM8L2NvZGU+IDx0ZD4gPGNvZGU+a2V5UG9pbnRzPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmtleXNwbGluZXM8L2NvZGU+IDx0ZD4gPGNvZGU+a2V5U3BsaW5lczwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5rZXl0aW1lczwvY29kZT4gPHRkPiA8Y29kZT5rZXlUaW1lczwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5sZW5ndGhhZGp1c3Q8L2NvZGU+IDx0ZD4gPGNvZGU+bGVuZ3RoQWRqdXN0PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPmxpbWl0aW5nY29uZWFuZ2xlPC9jb2RlPiA8dGQ+IDxjb2RlPmxpbWl0aW5nQ29uZUFuZ2xlPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPm1hcmtlcmhlaWdodDwvY29kZT4gPHRkPiA8Y29kZT5tYXJrZXJIZWlnaHQ8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+bWFya2VydW5pdHM8L2NvZGU+IDx0ZD4gPGNvZGU+bWFya2VyVW5pdHM8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+bWFya2Vyd2lkdGg8L2NvZGU+IDx0ZD4gPGNvZGU+bWFya2VyV2lkdGg8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+bWFza2NvbnRlbnR1bml0czwvY29kZT4gPHRkPiA8Y29kZT5tYXNrQ29udGVudFVuaXRzPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPm1hc2t1bml0czwvY29kZT4gPHRkPiA8Y29kZT5tYXNrVW5pdHM8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+bnVtb2N0YXZlczwvY29kZT4gPHRkPiA8Y29kZT5udW1PY3RhdmVzPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnBhdGhsZW5ndGg8L2NvZGU+IDx0ZD4gPGNvZGU+cGF0aExlbmd0aDwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5wYXR0ZXJuY29udGVudHVuaXRzPC9jb2RlPiA8dGQ+IDxjb2RlPnBhdHRlcm5Db250ZW50VW5pdHM8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+cGF0dGVybnRyYW5zZm9ybTwvY29kZT4gPHRkPiA8Y29kZT5wYXR0ZXJuVHJhbnNmb3JtPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnBhdHRlcm51bml0czwvY29kZT4gPHRkPiA8Y29kZT5wYXR0ZXJuVW5pdHM8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+cG9pbnRzYXR4PC9jb2RlPiA8dGQ+IDxjb2RlPnBvaW50c0F0WDwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5wb2ludHNhdHk8L2NvZGU+IDx0ZD4gPGNvZGU+cG9pbnRzQXRZPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnBvaW50c2F0ejwvY29kZT4gPHRkPiA8Y29kZT5wb2ludHNBdFo8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+cHJlc2VydmVhbHBoYTwvY29kZT4gPHRkPiA8Y29kZT5wcmVzZXJ2ZUFscGhhPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnByZXNlcnZlYXNwZWN0cmF0aW88L2NvZGU+IDx0ZD4gPGNvZGU+cHJlc2VydmVBc3BlY3RSYXRpbzwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5wcmltaXRpdmV1bml0czwvY29kZT4gPHRkPiA8Y29kZT5wcmltaXRpdmVVbml0czwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5yZWZ4PC9jb2RlPiA8dGQ+IDxjb2RlPnJlZlg8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+cmVmeTwvY29kZT4gPHRkPiA8Y29kZT5yZWZZPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnJlcGVhdGNvdW50PC9jb2RlPiA8dGQ+IDxjb2RlPnJlcGVhdENvdW50PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnJlcGVhdGR1cjwvY29kZT4gPHRkPiA8Y29kZT5yZXBlYXREdXI8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+cmVxdWlyZWRleHRlbnNpb25zPC9jb2RlPiA8dGQ+IDxjb2RlPnJlcXVpcmVkRXh0ZW5zaW9uczwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5yZXF1aXJlZGZlYXR1cmVzPC9jb2RlPiA8dGQ+IDxjb2RlPnJlcXVpcmVkRmVhdHVyZXM8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+c3BlY3VsYXJjb25zdGFudDwvY29kZT4gPHRkPiA8Y29kZT5zcGVjdWxhckNvbnN0YW50PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnNwZWN1bGFyZXhwb25lbnQ8L2NvZGU+IDx0ZD4gPGNvZGU+c3BlY3VsYXJFeHBvbmVudDwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5zcHJlYWRtZXRob2Q8L2NvZGU+IDx0ZD4gPGNvZGU+c3ByZWFkTWV0aG9kPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnN0YXJ0b2Zmc2V0PC9jb2RlPiA8dGQ+IDxjb2RlPnN0YXJ0T2Zmc2V0PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnN0ZGRldmlhdGlvbjwvY29kZT4gPHRkPiA8Y29kZT5zdGREZXZpYXRpb248L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+c3RpdGNodGlsZXM8L2NvZGU+IDx0ZD4gPGNvZGU+c3RpdGNoVGlsZXM8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+c3VyZmFjZXNjYWxlPC9jb2RlPiA8dGQ+IDxjb2RlPnN1cmZhY2VTY2FsZTwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT5zeXN0ZW1sYW5ndWFnZTwvY29kZT4gPHRkPiA8Y29kZT5zeXN0ZW1MYW5ndWFnZTwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT50YWJsZXZhbHVlczwvY29kZT4gPHRkPiA8Y29kZT50YWJsZVZhbHVlczwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT50YXJnZXR4PC9jb2RlPiA8dGQ+IDxjb2RlPnRhcmdldFg8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+dGFyZ2V0eTwvY29kZT4gPHRkPiA8Y29kZT50YXJnZXRZPC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnRleHRsZW5ndGg8L2NvZGU+IDx0ZD4gPGNvZGU+dGV4dExlbmd0aDwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT52aWV3Ym94PC9jb2RlPiA8dGQ+IDxjb2RlPnZpZXdCb3g8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+dmlld3RhcmdldDwvY29kZT4gPHRkPiA8Y29kZT52aWV3VGFyZ2V0PC9jb2RlPgorICAgIDx0cj48dGQ+IDxjb2RlPnhjaGFubmVsc2VsZWN0b3I8L2NvZGU+IDx0ZD4gPGNvZGU+eENoYW5uZWxTZWxlY3RvcjwvY29kZT4KKyAgICA8dHI+PHRkPiA8Y29kZT55Y2hhbm5lbHNlbGVjdG9yPC9jb2RlPiA8dGQ+IDxjb2RlPnlDaGFubmVsU2VsZWN0b3I8L2NvZGU+CisgICAgPHRyPjx0ZD4gPGNvZGU+em9vbWFuZHBhbjwvY29kZT4gPHRkPiA8Y29kZT56b29tQW5kUGFuPC9jb2RlPgorICA8L3RhYmxlPgorCisgIDxwPldoZW4gdGhlIHN0ZXBzIGJlbG93IHJlcXVpcmUgdGhlIHVzZXIgYWdlbnQgdG8gPGRmbiBpZD1hZGp1c3QtZm9yZWlnbi1hdHRyaWJ1dGVzPmFkanVzdCBmb3JlaWduIGF0dHJpYnV0ZXM8L2Rmbj4gZm9yIGEKKyAgdG9rZW4sIHRoZW4sIGlmIGFueSBvZiB0aGUgYXR0cmlidXRlcyBvbiB0aGUgdG9rZW4gbWF0Y2ggdGhlIHN0cmluZ3MgZ2l2ZW4gaW4gdGhlIGZpcnN0IGNvbHVtbiBvZgorICB0aGUgZm9sbG93aW5nIHRhYmxlLCBsZXQgdGhlIGF0dHJpYnV0ZSBiZSBhIG5hbWVzcGFjZWQgYXR0cmlidXRlLCB3aXRoIHRoZSBwcmVmaXggYmVpbmcgdGhlIHN0cmluZworICBnaXZlbiBpbiB0aGUgY29ycmVzcG9uZGluZyBjZWxsIGluIHRoZSBzZWNvbmQgY29sdW1uLCB0aGUgbG9jYWwgbmFtZSBiZWluZyB0aGUgc3RyaW5nIGdpdmVuIGluIHRoZQorICBjb3JyZXNwb25kaW5nIGNlbGwgaW4gdGhlIHRoaXJkIGNvbHVtbiwgYW5kIHRoZSBuYW1lc3BhY2UgYmVpbmcgdGhlIG5hbWVzcGFjZSBnaXZlbiBpbiB0aGUKKyAgY29ycmVzcG9uZGluZyBjZWxsIGluIHRoZSBmb3VydGggY29sdW1uLiAoVGhpcyBmaXhlcyB0aGUgdXNlIG9mIG5hbWVzcGFjZWQgYXR0cmlidXRlcywgaW4KKyAgcGFydGljdWxhciA8YSBocmVmPWRvbS5odG1sI2F0dHIteG1sLWxhbmcgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2RlczphdHRyLXhtbC1sYW5nPjxjb2RlPmxhbmc8L2NvZGU+IGF0dHJpYnV0ZXMgaW4gdGhlIDxzcGFuPlhNTAorICBuYW1lc3BhY2U8L3NwYW4+PC9hPi4pPC9wPgorCisgIDx0YWJsZT48dGhlYWQ+PHRyPjx0aD4gQXR0cmlidXRlIG5hbWUgPHRoPiBQcmVmaXggPHRoPiBMb2NhbCBuYW1lIDx0aD4gTmFtZXNwYWNlCisgICA8dGJvZHk+PHRyPjx0ZD4gPGNvZGU+eGxpbms6YWN0dWF0ZTwvY29kZT4gPHRkPiA8Y29kZT54bGluazwvY29kZT4gPHRkPiA8Y29kZT5hY3R1YXRlPC9jb2RlPiA8dGQ+IDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6eGxpbmstbmFtZXNwYWNlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBuYW1lc3BhY2U8L2E+CisgICAgPHRyPjx0ZD4gPGNvZGU+eGxpbms6YXJjcm9sZTwvY29kZT4gPHRkPiA8Y29kZT54bGluazwvY29kZT4gPHRkPiA8Y29kZT5hcmNyb2xlPC9jb2RlPiA8dGQ+IDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6eGxpbmstbmFtZXNwYWNlLTMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBuYW1lc3BhY2U8L2E+CisgICAgPHRyPjx0ZD4gPGNvZGU+eGxpbms6aHJlZjwvY29kZT4gPHRkPiA8Y29kZT54bGluazwvY29kZT4gPHRkPiA8Y29kZT5ocmVmPC9jb2RlPiA8dGQ+IDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6eGxpbmstbmFtZXNwYWNlLTQgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBuYW1lc3BhY2U8L2E+CisgICAgPHRyPjx0ZD4gPGNvZGU+eGxpbms6cm9sZTwvY29kZT4gPHRkPiA8Y29kZT54bGluazwvY29kZT4gPHRkPiA8Y29kZT5yb2xlPC9jb2RlPiA8dGQ+IDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6eGxpbmstbmFtZXNwYWNlLTUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBuYW1lc3BhY2U8L2E+CisgICAgPHRyPjx0ZD4gPGNvZGU+eGxpbms6c2hvdzwvY29kZT4gPHRkPiA8Y29kZT54bGluazwvY29kZT4gPHRkPiA8Y29kZT5zaG93PC9jb2RlPiA8dGQ+IDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6eGxpbmstbmFtZXNwYWNlLTYgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3hsaW5rLW5hbWVzcGFjZT5YTGluayBuYW1lc3BhY2U8L2E+CisgICAgPHRyPjx0ZD4gPGNvZGU+eGxpbms6dGl0bGU8L2NvZGU+IDx0ZD4gPGNvZGU+eGxpbms8L2NvZGU+IDx0ZD4gPGNvZGU+dGl0bGU8L2NvZGU+IDx0ZD4gPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp4bGluay1uYW1lc3BhY2UtNyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeGxpbmstbmFtZXNwYWNlPlhMaW5rIG5hbWVzcGFjZTwvYT4KKyAgICA8dHI+PHRkPiA8Y29kZT54bGluazp0eXBlPC9jb2RlPiA8dGQ+IDxjb2RlPnhsaW5rPC9jb2RlPiA8dGQ+IDxjb2RlPnR5cGU8L2NvZGU+IDx0ZD4gPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp4bGluay1uYW1lc3BhY2UtOCBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeGxpbmstbmFtZXNwYWNlPlhMaW5rIG5hbWVzcGFjZTwvYT4KKyAgICA8dHI+PHRkPiA8Y29kZT54bWw6YmFzZTwvY29kZT4gPHRkPiA8Y29kZT54bWw8L2NvZGU+IDx0ZD4gPGNvZGU+YmFzZTwvY29kZT4gPHRkPiA8YSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnhtbC1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbC1uYW1lc3BhY2U+WE1MIG5hbWVzcGFjZTwvYT4KKyAgICA8dHI+PHRkPiA8Y29kZT54bWw6bGFuZzwvY29kZT4gPHRkPiA8Y29kZT54bWw8L2NvZGU+IDx0ZD4gPGNvZGU+bGFuZzwvY29kZT4gPHRkPiA8YSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnhtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeG1sLW5hbWVzcGFjZT5YTUwgbmFtZXNwYWNlPC9hPgorICAgIDx0cj48dGQ+IDxjb2RlPnhtbDpzcGFjZTwvY29kZT4gPHRkPiA8Y29kZT54bWw8L2NvZGU+IDx0ZD4gPGNvZGU+c3BhY2U8L2NvZGU+IDx0ZD4gPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp4bWwtbmFtZXNwYWNlLTMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbC1uYW1lc3BhY2U+WE1MIG5hbWVzcGFjZTwvYT4KKyAgICA8dHI+PHRkPiA8Y29kZT54bWxuczwvY29kZT4gPHRkPiAobm9uZSkgPHRkPiA8Y29kZT54bWxuczwvY29kZT4gPHRkPiA8YSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnhtbG5zLW5hbWVzcGFjZS0zIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN4bWxucy1uYW1lc3BhY2U+WE1MTlMgbmFtZXNwYWNlPC9hPgorICAgIDx0cj48dGQ+IDxjb2RlPnhtbG5zOnhsaW5rPC9jb2RlPiA8dGQ+IDxjb2RlPnhtbG5zPC9jb2RlPiA8dGQ+IDxjb2RlPnhsaW5rPC9jb2RlPiA8dGQ+IDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6eG1sbnMtbmFtZXNwYWNlLTQgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbG5zLW5hbWVzcGFjZT5YTUxOUyBuYW1lc3BhY2U8L2E+CisgIDwvdGFibGU+CisKKyAgPGhyPgorCisgIDxwPldoZW4gdGhlIHN0ZXBzIGJlbG93IHJlcXVpcmUgdGhlIHVzZXIgYWdlbnQgdG8gPGRmbiBpZD1pbnNlcnQtYS1jaGFyYWN0ZXI+aW5zZXJ0IGEgY2hhcmFjdGVyPC9kZm4+IHdoaWxlIHByb2Nlc3NpbmcgYQorICB0b2tlbiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczo8L3A+CisKKyAgPG9sPjxsaT48cD5MZXQgPHZhcj5kYXRhPC92YXI+IGJlIHRoZSBjaGFyYWN0ZXJzIHBhc3NlZCB0byB0aGUgYWxnb3JpdGhtLCBvciwgaWYgbm8KKyAgIGNoYXJhY3RlcnMgd2VyZSBleHBsaWNpdGx5IHNwZWNpZmllZCwgdGhlIGNoYXJhY3RlciBvZiB0aGUgY2hhcmFjdGVyIHRva2VuIGJlaW5nCisgICBwcm9jZXNzZWQuPGxpPjxwPkxldCB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4gYmUgdGhlIDxhIGhyZWY9I2FwcHJvcHJpYXRlLXBsYWNlLWZvci1pbnNlcnRpbmctYS1ub2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6YXBwcm9wcmlhdGUtcGxhY2UtZm9yLWluc2VydGluZy1hLW5vZGUtMj5hcHByb3ByaWF0ZQorICAgcGxhY2UgZm9yIGluc2VydGluZyBhIG5vZGU8L2E+LjxsaT4KKworICAgIDxwPklmIHRoZSA8dmFyPmFkanVzdGVkIGluc2VydGlvbiBsb2NhdGlvbjwvdmFyPiBpcyBpbiBhIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6ZG9jdW1lbnQtMj48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gbm9kZSwKKyAgICB0aGVuIGFib3J0IHRoZXNlIHN0ZXBzLgorCisgICAgPHAgY2xhc3M9bm90ZT5UaGUgRE9NIHdpbGwgbm90IGxldCA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmRvY3VtZW50LTM+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG5vZGVzIGhhdmUgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp0ZXh0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PlRleHQ8L2E+PC9jb2RlPiBub2RlCisgICAgY2hpbGRyZW4sIHNvIHRoZXkgYXJlIGRyb3BwZWQgb24gdGhlIGZsb29yLjwvcD4KKworICAgPGxpPgorCisgICAgPHA+SWYgdGhlcmUgaXMgYSA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtMj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD5UZXh0PC9hPjwvY29kZT4gbm9kZSBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uCisgICAgbG9jYXRpb248L3Zhcj4sIHRoZW4gYXBwZW5kIDx2YXI+ZGF0YTwvdmFyPiB0byB0aGF0IDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGV4dC0zPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PlRleHQ8L2E+PC9jb2RlPiBub2RlJ3MgZGF0YS48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtND48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD5UZXh0PC9hPjwvY29kZT4gbm9kZSB3aG9zZSBkYXRhIGlzIDx2YXI+ZGF0YTwvdmFyPiBhbmQKKyAgICB3aG9zZSA8YSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOm5vZGUtZG9jdW1lbnQtMyBocmVmPWh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1ub2RlLWRvY3VtZW50IGRhdGEteC1pbnRlcm5hbD1ub2RlLWRvY3VtZW50Pm5vZGUgZG9jdW1lbnQ8L2E+IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlCisgICAgZWxlbWVudCBpbiB3aGljaCB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4gZmluZHMgaXRzZWxmLCBhbmQgaW5zZXJ0CisgICAgdGhlIG5ld2x5IGNyZWF0ZWQgbm9kZSBhdCB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4uPC9wPgorCisgICA8L29sPgorCisgIDxkaXYgY2xhc3M9ZXhhbXBsZT4KKworICAgPHA+SGVyZSBhcmUgc29tZSBzYW1wbGUgaW5wdXRzIHRvIHRoZSBwYXJzZXIgYW5kIHRoZSBjb3JyZXNwb25kaW5nIG51bWJlciBvZiA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtNT48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD5UZXh0PC9hPjwvY29kZT4KKyAgIG5vZGVzIHRoYXQgdGhleSByZXN1bHQgaW4sIGFzc3VtaW5nIGEgdXNlciBhZ2VudCB0aGF0IGV4ZWN1dGVzIHNjcmlwdHMuPC9wPgorCisgICA8dGFibGU+PHRoZWFkPjx0cj48dGg+SW5wdXQgPHRoPk51bWJlciBvZiA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtNj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD5UZXh0PC9hPjwvY29kZT4gbm9kZXMKKyAgICA8dGJvZHk+PHRyPjx0ZD48cHJlPkEmbHQ7c2NyaXB0PgordmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc2NyaXB0KTsKKyZsdDsvc2NyaXB0PkI8L3ByZT4KKyAgICAgIDx0ZD5PbmUgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp0ZXh0LTc+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+IG5vZGUgaW4gdGhlIGRvY3VtZW50LCBjb250YWluaW5nICJBQiIuCisgICAgIDx0cj48dGQ+PHByZT5BJmx0O3NjcmlwdD4KK3ZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0InKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dCk7CismbHQ7L3NjcmlwdD5DPC9wcmU+CisgICAgICA8dGQ+VGhyZWUgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp0ZXh0LTg+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+IG5vZGVzOyAiQSIgYmVmb3JlIHRoZSBzY3JpcHQsIHRoZSBzY3JpcHQncyBjb250ZW50cywgYW5kICJCQyIgYWZ0ZXIgdGhlIHNjcmlwdCAodGhlIHBhcnNlciBhcHBlbmRzIHRvIHRoZSA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtOT48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD5UZXh0PC9hPjwvY29kZT4gbm9kZSBjcmVhdGVkIGJ5IHRoZSBzY3JpcHQpLgorICAgICA8dHI+PHRkPjxwcmU+QSZsdDtzY3JpcHQ+Cit2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXS5maXJzdENoaWxkOwordGV4dC5kYXRhID0gJ0InOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0KTsKKyZsdDsvc2NyaXB0PkM8L3ByZT4KKyAgICAgIDx0ZD5Ud28gYWRqYWNlbnQgPGNvZGUgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczp0ZXh0LTEwPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PlRleHQ8L2E+PC9jb2RlPiBub2RlcyBpbiB0aGUgZG9jdW1lbnQsIGNvbnRhaW5pbmcgIkEiIGFuZCAiQkMiLgorICAgICA8dHI+PHRkPjxwcmU+QSZsdDt0YWJsZT5CJmx0O3RyPkMmbHQ7L3RyPkQmbHQ7L3RhYmxlPjwvcHJlPgorICAgICAgPHRkPk9uZSA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtMTE+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+IG5vZGUgYmVmb3JlIHRoZSB0YWJsZSwgY29udGFpbmluZyAiQUJDRCIuIChUaGlzIGlzIGNhdXNlZCBieSA8YSBocmVmPSNmb3N0ZXItcGFyZW50IGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6Zm9zdGVyLXBhcmVudC0yPmZvc3RlciBwYXJlbnRpbmc8L2E+LikKKyAgICAgPHRyPjx0ZD48cHJlPkEmbHQ7dGFibGU+Jmx0O3RyPiBCJmx0Oy90cj4gQyZsdDsvdGFibGU+PC9wcmU+CisgICAgICA8dGQ+T25lIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGV4dC0xMj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD5UZXh0PC9hPjwvY29kZT4gbm9kZSBiZWZvcmUgdGhlIHRhYmxlLCBjb250YWluaW5nICJBIEIgQyIgKEEtc3BhY2UtQi1zcGFjZS1DKS4gKFRoaXMgaXMgY2F1c2VkIGJ5IDxhIGhyZWY9I2Zvc3Rlci1wYXJlbnQgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpmb3N0ZXItcGFyZW50LTM+Zm9zdGVyIHBhcmVudGluZzwvYT4uKQorICAgICA8dHI+PHRkPjxwcmU+QSZsdDt0YWJsZT4mbHQ7dHI+IEImbHQ7L3RyPiAmbHQ7L2VtPkMmbHQ7L3RhYmxlPjwvcHJlPgorICAgICAgPHRkPk9uZSA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtMTM+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+IG5vZGUgYmVmb3JlIHRoZSB0YWJsZSwgY29udGFpbmluZyAiQSBCQyIgKEEtc3BhY2UtQi1DKSwgYW5kIG9uZSA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOnRleHQtMTQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+IG5vZGUgaW5zaWRlIHRoZSB0YWJsZSAoYXMgYSBjaGlsZCBvZiBhIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6dGhlLXRib2R5LWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4pIHdpdGggYSBzaW5nbGUgc3BhY2UgY2hhcmFjdGVyLiAoU3BhY2UgY2hhcmFjdGVycyBzZXBhcmF0ZWQgZnJvbSBub24tc3BhY2UgY2hhcmFjdGVycyBieSBub24tY2hhcmFjdGVyIHRva2VucyBhcmUgbm90IGFmZmVjdGVkIGJ5IDxhIGhyZWY9I2Zvc3Rlci1wYXJlbnQgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpmb3N0ZXItcGFyZW50LTQ+Zm9zdGVyIHBhcmVudGluZzwvYT4sIGV2ZW4gaWYgdGhvc2Ugb3RoZXIgdG9rZW5zIHRoZW4gZ2V0IGlnbm9yZWQuKQorICAgPC90YWJsZT4KKworICA8L2Rpdj4KKworICA8aHI+CisKKyAgPHA+V2hlbiB0aGUgc3RlcHMgYmVsb3cgcmVxdWlyZSB0aGUgdXNlciBhZ2VudCB0byA8ZGZuIGlkPWluc2VydC1hLWNvbW1lbnQ+aW5zZXJ0IGEgY29tbWVudDwvZGZuPiB3aGlsZSBwcm9jZXNzaW5nIGEKKyAgY29tbWVudCB0b2tlbiwgb3B0aW9uYWxseSB3aXRoIGFuIGV4cGxpY2l0bHkgaW5zZXJ0aW9uIHBvc2l0aW9uIDx2YXI+cG9zaXRpb248L3Zhcj4sIHRoZQorICB1c2VyIGFnZW50IG11c3QgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6PC9wPgorCisgIDxvbD48bGk+PHA+TGV0IDx2YXI+ZGF0YTwvdmFyPiBiZSB0aGUgZGF0YSBnaXZlbiBpbiB0aGUgY29tbWVudCB0b2tlbiBiZWluZworICAgcHJvY2Vzc2VkLjxsaT48cD5JZiA8dmFyPnBvc2l0aW9uPC92YXI+IHdhcyBzcGVjaWZpZWQsIHRoZW4gbGV0IHRoZSA8dmFyPmFkanVzdGVkCisgICBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4gYmUgPHZhcj5wb3NpdGlvbjwvdmFyPi4gT3RoZXJ3aXNlLCBsZXQgPHZhcj5hZGp1c3RlZAorICAgaW5zZXJ0aW9uIGxvY2F0aW9uPC92YXI+IGJlIHRoZSA8YSBocmVmPSNhcHByb3ByaWF0ZS1wbGFjZS1mb3ItaW5zZXJ0aW5nLWEtbm9kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmFwcHJvcHJpYXRlLXBsYWNlLWZvci1pbnNlcnRpbmctYS1ub2RlLTM+YXBwcm9wcmlhdGUgcGxhY2UgZm9yIGluc2VydGluZyBhIG5vZGU8L2E+LjxsaT48cD5DcmVhdGUgYSA8Y29kZSBpZD1jcmVhdGluZy1hbmQtaW5zZXJ0aW5nLW5vZGVzOmNvbW1lbnQtMj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY29tbWVudC0yPkNvbW1lbnQ8L2E+PC9jb2RlPiBub2RlIHdob3NlIDxjb2RlPmRhdGE8L2NvZGU+IGF0dHJpYnV0ZSBpcyBzZXQgdG8KKyAgIDx2YXI+ZGF0YTwvdmFyPiBhbmQgd2hvc2UgPGEgaWQ9Y3JlYXRpbmctYW5kLWluc2VydGluZy1ub2Rlczpub2RlLWRvY3VtZW50LTQgaHJlZj1odHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtbm9kZS1kb2N1bWVudCBkYXRhLXgtaW50ZXJuYWw9bm9kZS1kb2N1bWVudD5ub2RlIGRvY3VtZW50PC9hPiBpcworICAgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgbm9kZSBpbiB3aGljaCB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24gbG9jYXRpb248L3Zhcj4gZmluZHMKKyAgIGl0c2VsZi48L3A+CisKKyAgIDxsaT48cD5JbnNlcnQgdGhlIG5ld2x5IGNyZWF0ZWQgbm9kZSBhdCB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24KKyAgIGxvY2F0aW9uPC92YXI+Ljwvb2w+CisKKyAgPGhyPgorCisgIDxwIGlkPW11dGF0aW9uLWR1cmluZy1wYXJzaW5nPkRPTSBtdXRhdGlvbiBldmVudHMgbXVzdCBub3QgZmlyZSBmb3IgY2hhbmdlcyBjYXVzZWQgYnkgdGhlIFVBCisgIHBhcnNpbmcgdGhlIGRvY3VtZW50LiBUaGlzIGluY2x1ZGVzIHRoZSBwYXJzaW5nIG9mIGFueSBjb250ZW50IGluc2VydGVkIHVzaW5nIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6ZG9tLWRvY3VtZW50LXdyaXRlPjxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2RvbS1kb2N1bWVudC13cml0ZT5kb2N1bWVudC53cml0ZSgpPC9hPjwvY29kZT4gYW5kIDxjb2RlIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6ZG9tLWRvY3VtZW50LXdyaXRlbG4+PGEgaHJlZj13ZWJhcHBhcGlzLmh0bWwjZG9tLWRvY3VtZW50LXdyaXRlbG4+ZG9jdW1lbnQud3JpdGVsbigpPC9hPjwvY29kZT4gY2FsbHMuIDxhIGhyZWY9cmVmZXJlbmNlcy5odG1sI3JlZnNET01FVkVOVFM+W0RPTUVWRU5UU108L2E+PC9wPgorCisgIDxwPkhvd2V2ZXIsIDxhIGlkPWNyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXM6bXV0YXRpb24tb2JzZXJ2ZXJzIGhyZWY9aHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNtdXRhdGlvbi1vYnNlcnZlcnMgZGF0YS14LWludGVybmFsPW11dGF0aW9uLW9ic2VydmVycz5tdXRhdGlvbiBvYnNlcnZlcnM8L2E+IDxlbT5kbzwvZW0+IGZpcmUsIGFzIHJlcXVpcmVkIGJ5IHRoZSBET00gc3BlY2lmaWNhdGlvbi48L3A+CisKKworCisgIDxoNSBpZD1wYXJzaW5nLWVsZW1lbnRzLXRoYXQtY29udGFpbi1vbmx5LXRleHQ+MTIuMi41LjIgUGFyc2luZyBlbGVtZW50cyB0aGF0IGNvbnRhaW4gb25seSB0ZXh0PC9oNT4KKworICA8cD5UaGUgPGRmbiBpZD1nZW5lcmljLXJhdy10ZXh0LWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0+Z2VuZXJpYyByYXcgdGV4dCBlbGVtZW50IHBhcnNpbmcgYWxnb3JpdGhtPC9kZm4+IGFuZCB0aGUgPGRmbiBpZD1nZW5lcmljLXJjZGF0YS1lbGVtZW50LXBhcnNpbmctYWxnb3JpdGhtPmdlbmVyaWMgUkNEQVRBIGVsZW1lbnQKKyAgcGFyc2luZyBhbGdvcml0aG08L2Rmbj4gY29uc2lzdCBvZiB0aGUgZm9sbG93aW5nIHN0ZXBzLiBUaGVzZSBhbGdvcml0aG1zIGFyZSBhbHdheXMgaW52b2tlZCBpbgorICByZXNwb25zZSB0byBhIHN0YXJ0IHRhZyB0b2tlbi48L3A+CisKKyAgPG9sPjxsaT48cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctZWxlbWVudHMtdGhhdC1jb250YWluLW9ubHktdGV4dDppbnNlcnQtYW4taHRtbC1lbGVtZW50Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPGxpPjxwPklmIHRoZSBhbGdvcml0aG0gdGhhdCB3YXMgaW52b2tlZCBpcyB0aGUgPGEgaHJlZj0jZ2VuZXJpYy1yYXctdGV4dC1lbGVtZW50LXBhcnNpbmctYWxnb3JpdGhtIGlkPXBhcnNpbmctZWxlbWVudHMtdGhhdC1jb250YWluLW9ubHktdGV4dDpnZW5lcmljLXJhdy10ZXh0LWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0+Z2VuZXJpYyByYXcgdGV4dCBlbGVtZW50IHBhcnNpbmcKKyAgIGFsZ29yaXRobTwvYT4sIHN3aXRjaCB0aGUgdG9rZW5pemVyIHRvIHRoZSA8YSBocmVmPSNyYXd0ZXh0LXN0YXRlIGlkPXBhcnNpbmctZWxlbWVudHMtdGhhdC1jb250YWluLW9ubHktdGV4dDpyYXd0ZXh0LXN0YXRlPlJBV1RFWFQgc3RhdGU8L2E+OyBvdGhlcndpc2UgdGhlIGFsZ29yaXRobQorICAgaW52b2tlZCB3YXMgdGhlIDxhIGhyZWY9I2dlbmVyaWMtcmNkYXRhLWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0gaWQ9cGFyc2luZy1lbGVtZW50cy10aGF0LWNvbnRhaW4tb25seS10ZXh0OmdlbmVyaWMtcmNkYXRhLWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0+Z2VuZXJpYyBSQ0RBVEEgZWxlbWVudCBwYXJzaW5nIGFsZ29yaXRobTwvYT4sIHN3aXRjaCB0aGUgdG9rZW5pemVyIHRvCisgICB0aGUgPGEgaHJlZj0jcmNkYXRhLXN0YXRlIGlkPXBhcnNpbmctZWxlbWVudHMtdGhhdC1jb250YWluLW9ubHktdGV4dDpyY2RhdGEtc3RhdGU+UkNEQVRBIHN0YXRlPC9hPi48bGk+PHA+TGV0IHRoZSA8YSBocmVmPSNvcmlnaW5hbC1pbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLWVsZW1lbnRzLXRoYXQtY29udGFpbi1vbmx5LXRleHQ6b3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGU+b3JpZ2luYWwgaW5zZXJ0aW9uIG1vZGU8L2E+IGJlIHRoZSBjdXJyZW50IDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctZWxlbWVudHMtdGhhdC1jb250YWluLW9ubHktdGV4dDppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24KKyAgIG1vZGU8L2E+LjwvcD4KKworICAgPGxpPjxwPlRoZW4sIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1lbGVtZW50cy10aGF0LWNvbnRhaW4tb25seS10ZXh0Omluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5jZGF0YSBpZD1wYXJzaW5nLWVsZW1lbnRzLXRoYXQtY29udGFpbi1vbmx5LXRleHQ6cGFyc2luZy1tYWluLWluY2RhdGE+dGV4dDwvYT4iLjwvb2w+CisKKworICA8aDUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFncz4xMi4yLjUuMyBDbG9zaW5nIGVsZW1lbnRzIHRoYXQgaGF2ZSBpbXBsaWVkIGVuZCB0YWdzPC9oNT4KKworICA8cD5XaGVuIHRoZSBzdGVwcyBiZWxvdyByZXF1aXJlIHRoZSBVQSB0byA8ZGZuIGlkPWdlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3M+Z2VuZXJhdGUgaW1wbGllZCBlbmQgdGFnczwvZGZuPiwgdGhlbiwgd2hpbGUgdGhlCisgIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOmN1cnJlbnQtbm9kZT5jdXJyZW50IG5vZGU8L2E+IGlzIGEgPGNvZGUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczp0aGUtZGQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZC1lbGVtZW50PmRkPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1kdC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWR0LWVsZW1lbnQ+ZHQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhbgorICA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1saS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWxpLWVsZW1lbnQ+bGk8L2E+PC9jb2RlPiBlbGVtZW50LCBhbiA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1vcHRpb24tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGlvbi1lbGVtZW50Pm9wdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQsIGFuIDxjb2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6dGhlLW9wdGdyb3VwLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1vcHRncm91cC1lbGVtZW50Pm9wdGdyb3VwPC9hPjwvY29kZT4gZWxlbWVudCwgYQorICA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1wLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiBlbGVtZW50LCBhbiA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1ycC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJwLWVsZW1lbnQ+cnA8L2E+PC9jb2RlPiBlbGVtZW50LCBvciBhbiA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1ydC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJ0LWVsZW1lbnQ+cnQ8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGUgVUEgbXVzdCBwb3AKKyAgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOmN1cnJlbnQtbm9kZS0yPmN1cnJlbnQgbm9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6c3RhY2stb2Ytb3Blbi1lbGVtZW50cz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgPHA+SWYgYSBzdGVwIHJlcXVpcmVzIHRoZSBVQSB0byBnZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzIGJ1dCBsaXN0cyBhbiBlbGVtZW50IHRvIGV4Y2x1ZGUgZnJvbSB0aGUKKyAgcHJvY2VzcywgdGhlbiB0aGUgVUEgbXVzdCBwZXJmb3JtIHRoZSBhYm92ZSBzdGVwcyBhcyBpZiB0aGF0IGVsZW1lbnQgd2FzIG5vdCBpbiB0aGUgYWJvdmUKKyAgbGlzdC48L3A+CisKKyAgPHA+V2hlbiB0aGUgc3RlcHMgYmVsb3cgcmVxdWlyZSB0aGUgVUEgdG8gPGRmbiBpZD1nZW5lcmF0ZS1hbGwtaW1wbGllZC1lbmQtdGFncy10aG9yb3VnaGx5PmdlbmVyYXRlIGFsbCBpbXBsaWVkIGVuZCB0YWdzIHRob3JvdWdobHk8L2Rmbj4sCisgIHRoZW4sIHdoaWxlIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczpjdXJyZW50LW5vZGUtMz5jdXJyZW50IG5vZGU8L2E+IGlzIGEgPGNvZGUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczp0aGUtY2FwdGlvbi1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNhcHRpb24tZWxlbWVudD5jYXB0aW9uPC9hPjwvY29kZT4gZWxlbWVudCwgYQorICA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1jb2xncm91cC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNvbGdyb3VwLWVsZW1lbnQ+Y29sZ3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6dGhlLWRkLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZC1lbGVtZW50PmRkPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1kdC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZHQtZWxlbWVudD5kdDwvYT48L2NvZGU+IGVsZW1lbnQsIGFuCisgIDxjb2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6dGhlLWxpLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1saS1lbGVtZW50PmxpPC9hPjwvY29kZT4gZWxlbWVudCwgYW4gPGNvZGUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczp0aGUtb3B0aW9uLWVsZW1lbnQtMj48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGlvbi1lbGVtZW50Pm9wdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQsIGFuIDxjb2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6dGhlLW9wdGdyb3VwLWVsZW1lbnQtMj48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGdyb3VwLWVsZW1lbnQ+b3B0Z3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50LCBhCisgIDxjb2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6dGhlLXAtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXAtZWxlbWVudD5wPC9hPjwvY29kZT4gZWxlbWVudCwgYW4gPGNvZGUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczp0aGUtcnAtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJwLWVsZW1lbnQ+cnA8L2E+PC9jb2RlPiBlbGVtZW50LCBhbiA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS1ydC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcnQtZWxlbWVudD5ydDwvYT48L2NvZGU+IGVsZW1lbnQsIGEKKyAgPGNvZGUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczp0aGUtdGJvZHktZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS10ZC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRkLWVsZW1lbnQ+dGQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6dGhlLXRmb290LWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGZvb3QtZWxlbWVudD50Zm9vdDwvYT48L2NvZGU+IGVsZW1lbnQsIGEKKyAgPGNvZGUgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczp0aGUtdGgtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10aC1lbGVtZW50PnRoPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1jbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzOnRoZS10aGVhZC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRoZWFkLWVsZW1lbnQ+dGhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50LCBvciBhIDxjb2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6dGhlLXRyLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdHItZWxlbWVudD50cjwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZSBVQSBtdXN0CisgIHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPWNsb3NpbmctZWxlbWVudHMtdGhhdC1oYXZlLWltcGxpZWQtZW5kLXRhZ3M6Y3VycmVudC1ub2RlLTQ+Y3VycmVudCBub2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9Y2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFnczpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisKKworICA8aDUgaWQ9cGFyc2luZy1tYWluLWluaHRtbD4xMi4yLjUuNCBUaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIEhUTUwgY29udGVudDwvaDU+CisKKworICA8aDYgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU+MTIuMi41LjQuMSBUaGUgIjxkZm4+aW5pdGlhbDwvZGZuPiIgaW5zZXJ0aW9uIG1vZGU8L2g2PgorCisgIDxwPldoZW4gdGhlIHVzZXIgYWdlbnQgaXMgdG8gYXBwbHkgdGhlIHJ1bGVzIGZvciB0aGUgIjxhIGhyZWY9I3RoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOnRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlPmluaXRpYWw8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcworICBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIGNoYXJhY3RlciB0b2tlbiB0aGF0IGlzIG9uZSBvZiBVKzAwMDkgQ0hBUkFDVEVSCisgICBUQUJVTEFUSU9OLCBVKzAwMEEgTElORSBGRUVEIChMRiksIFUrMDAwQyBGT1JNIEZFRUQgKEZGKSwKKyAgIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSwgb3IgVSswMDIwIFNQQUNFPGRkPgorICAgIDxwPklnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkEgY29tbWVudCB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jb21tZW50IGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmluc2VydC1hLWNvbW1lbnQ+SW5zZXJ0IGEgY29tbWVudDwvYT4gYXMgdGhlIGxhc3QgY2hpbGQgb2YgdGhlIDxjb2RlIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmRvY3VtZW50PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBvYmplY3QuPC9wPgorICAgPGR0PkEgRE9DVFlQRSB0b2tlbjxkZD4KKworICAgIDxwPklmIHRoZSBET0NUWVBFIHRva2VuJ3MgbmFtZSBpcyBub3QgYSA8YSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpjYXNlLXNlbnNpdGl2ZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY2FzZS1zZW5zaXRpdmU+Y2FzZS1zZW5zaXRpdmU8L2E+IG1hdGNoIGZvciB0aGUgc3RyaW5nICI8Y29kZT5odG1sPC9jb2RlPiIsIG9yIHRoZSB0b2tlbidzIHB1YmxpYyBpZGVudGlmaWVyIGlzIG5vdCBtaXNzaW5nLCBvciB0aGUgdG9rZW4ncyBzeXN0ZW0KKyAgICBpZGVudGlmaWVyIGlzIG5laXRoZXIgbWlzc2luZyBub3IgYSA8YSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpjYXNlLXNlbnNpdGl2ZS0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcKKyAgICAiPGNvZGUgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6YWJvdXQ6bGVnYWN5LWNvbXBhdD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYWJvdXQ6bGVnYWN5LWNvbXBhdD5hYm91dDpsZWdhY3ktY29tcGF0PC9hPjwvY29kZT4iLCBhbmQgbm9uZSBvZiB0aGUgc2V0cyBvZiBjb25kaXRpb25zIGluIHRoZSBmb2xsb3dpbmcgbGlzdCBhcmUKKyAgICBtYXRjaGVkLCB0aGVuIHRoZXJlIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6cGFyc2UtZXJyb3I+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDx1bD48bGk+VGhlIERPQ1RZUEUgdG9rZW4ncyBuYW1lIGlzIGEgPGEgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6Y2FzZS1zZW5zaXRpdmUtMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY2FzZS1zZW5zaXRpdmU+Y2FzZS1zZW5zaXRpdmU8L2E+IG1hdGNoIGZvciB0aGUgc3RyaW5nICI8Y29kZT5odG1sPC9jb2RlPiIsIHRoZSB0b2tlbidzIHB1YmxpYyBpZGVudGlmaWVyIGlzIHRoZSA8YSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpjYXNlLXNlbnNpdGl2ZS00IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gc3RyaW5nCisgICAgICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDQuMC8vRU48L2NvZGU+IiwgYW5kIHRoZSB0b2tlbidzIHN5c3RlbSBpZGVudGlmaWVyCisgICAgIGlzIGVpdGhlciBtaXNzaW5nIG9yIHRoZSA8YSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpjYXNlLXNlbnNpdGl2ZS01IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gc3RyaW5nICI8Y29kZT5odHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL3N0cmljdC5kdGQ8L2NvZGU+Ii48bGk+VGhlIERPQ1RZUEUgdG9rZW4ncyBuYW1lIGlzIGEgPGEgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6Y2FzZS1zZW5zaXRpdmUtNiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY2FzZS1zZW5zaXRpdmU+Y2FzZS1zZW5zaXRpdmU8L2E+IG1hdGNoIGZvciB0aGUgc3RyaW5nICI8Y29kZT5odG1sPC9jb2RlPiIsIHRoZSB0b2tlbidzIHB1YmxpYyBpZGVudGlmaWVyIGlzIHRoZSA8YSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpjYXNlLXNlbnNpdGl2ZS03IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gc3RyaW5nCisgICAgICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOPC9jb2RlPiIsIGFuZCB0aGUgdG9rZW4ncyBzeXN0ZW0gaWRlbnRpZmllcgorICAgICBpcyBlaXRoZXIgbWlzc2luZyBvciB0aGUgPGEgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6Y2FzZS1zZW5zaXRpdmUtOCBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY2FzZS1zZW5zaXRpdmU+Y2FzZS1zZW5zaXRpdmU8L2E+IHN0cmluZyAiPGNvZGU+aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZDwvY29kZT4iLjxsaT5UaGUgRE9DVFlQRSB0b2tlbidzIG5hbWUgaXMgYSA8YSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpjYXNlLXNlbnNpdGl2ZS05IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIjxjb2RlPmh0bWw8L2NvZGU+IiwgdGhlIHRva2VuJ3MgcHVibGljIGlkZW50aWZpZXIgaXMgdGhlIDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmNhc2Utc2Vuc2l0aXZlLTEwIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gc3RyaW5nCisgICAgICI8Y29kZT4tLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTjwvY29kZT4iLCBhbmQgdGhlIHRva2VuJ3Mgc3lzdGVtCisgICAgIGlkZW50aWZpZXIgaXMgdGhlIDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmNhc2Utc2Vuc2l0aXZlLTExIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gc3RyaW5nICI8Y29kZT5odHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkPC9jb2RlPiIuPGxpPlRoZSBET0NUWVBFIHRva2VuJ3MgbmFtZSBpcyBhIDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmNhc2Utc2Vuc2l0aXZlLTEyIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIjxjb2RlPmh0bWw8L2NvZGU+IiwgdGhlIHRva2VuJ3MgcHVibGljIGlkZW50aWZpZXIgaXMgdGhlIDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmNhc2Utc2Vuc2l0aXZlLTEzIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZT5jYXNlLXNlbnNpdGl2ZTwvYT4gc3RyaW5nCisgICAgICI8Y29kZT4tLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOPC9jb2RlPiIsIGFuZCB0aGUgdG9rZW4ncyBzeXN0ZW0gaWRlbnRpZmllcgorICAgICBpcyB0aGUgPGEgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6Y2FzZS1zZW5zaXRpdmUtMTQgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2Nhc2Utc2Vuc2l0aXZlPmNhc2Utc2Vuc2l0aXZlPC9hPiBzdHJpbmcgIjxjb2RlPmh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRkPC9jb2RlPiIuPC91bD4KKworICAgIDxwPkNvbmZvcm1hbmNlIGNoZWNrZXJzIG1heSwgYmFzZWQgb24gdGhlIHZhbHVlcyAoaW5jbHVkaW5nIHByZXNlbmNlIG9yIGxhY2sgdGhlcmVvZikgb2YgdGhlCisgICAgRE9DVFlQRSB0b2tlbidzIG5hbWUsIHB1YmxpYyBpZGVudGlmaWVyLCBvciBzeXN0ZW0gaWRlbnRpZmllciwgc3dpdGNoIHRvIGEgY29uZm9ybWFuY2UgY2hlY2tpbmcKKyAgICBtb2RlIGZvciBhbm90aGVyIGxhbmd1YWdlIChlLmcuIGJhc2VkIG9uIHRoZSBET0NUWVBFIHRva2VuIGEgY29uZm9ybWFuY2UgY2hlY2tlciBjb3VsZCByZWNvZ25pc2UKKyAgICB0aGF0IHRoZSBkb2N1bWVudCBpcyBhbiBIVE1MNC1lcmEgZG9jdW1lbnQsIGFuZCBkZWZlciB0byBhbiBIVE1MNCBjb25mb3JtYW5jZSBjaGVja2VyLik8L3A+CisKKyAgICA8cD5BcHBlbmQgYSA8Y29kZSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpkb2N1bWVudHR5cGU+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2RvY3VtZW50dHlwZT5Eb2N1bWVudFR5cGU8L2E+PC9jb2RlPiBub2RlIHRvIHRoZSA8Y29kZSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpkb2N1bWVudC0yPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBub2RlLCB3aXRoIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgc2V0IHRvIHRoZSBuYW1lIGdpdmVuIGluIHRoZSBET0NUWVBFIHRva2VuLCBvciB0aGUgZW1wdHkgc3RyaW5nCisgICAgaWYgdGhlIG5hbWUgd2FzIG1pc3Npbmc7IHRoZSA8Y29kZT5wdWJsaWNJZDwvY29kZT4gYXR0cmlidXRlIHNldCB0byB0aGUgcHVibGljCisgICAgaWRlbnRpZmllciBnaXZlbiBpbiB0aGUgRE9DVFlQRSB0b2tlbiwgb3IgdGhlIGVtcHR5IHN0cmluZyBpZiB0aGUgcHVibGljIGlkZW50aWZpZXIgd2FzIG1pc3Npbmc7CisgICAgdGhlIDxjb2RlPnN5c3RlbUlkPC9jb2RlPiBhdHRyaWJ1dGUgc2V0IHRvIHRoZSBzeXN0ZW0gaWRlbnRpZmllciBnaXZlbiBpbiB0aGUgRE9DVFlQRQorICAgIHRva2VuLCBvciB0aGUgZW1wdHkgc3RyaW5nIGlmIHRoZSBzeXN0ZW0gaWRlbnRpZmllciB3YXMgbWlzc2luZzsgYW5kIHRoZSBvdGhlciBhdHRyaWJ1dGVzCisgICAgc3BlY2lmaWMgdG8gPGNvZGUgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6ZG9jdW1lbnR0eXBlLTI+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2RvY3VtZW50dHlwZT5Eb2N1bWVudFR5cGU8L2E+PC9jb2RlPiBvYmplY3RzIHNldCB0byBudWxsIGFuZCBlbXB0eSBsaXN0cyBhcyBhcHByb3ByaWF0ZS4KKyAgICBBc3NvY2lhdGUgdGhlIDxjb2RlIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmRvY3VtZW50dHlwZS0zPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNkb2N1bWVudHR5cGU+RG9jdW1lbnRUeXBlPC9hPjwvY29kZT4gbm9kZSB3aXRoIHRoZSA8Y29kZSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpkb2N1bWVudC0zPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBvYmplY3Qgc28gdGhhdCBpdCBpcworICAgIHJldHVybmVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+ZG9jdHlwZTwvY29kZT4gYXR0cmlidXRlIG9mIHRoZQorICAgIDxjb2RlIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG9iamVjdC48L3A+CisKKyAgICA8cCBpZD1xdWlya3MtbW9kZS1kb2N0eXBlcz5UaGVuLCBpZiB0aGUgZG9jdW1lbnQgaXMgPGVtPm5vdDwvZW0+IDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmFuLWlmcmFtZS1zcmNkb2MtZG9jdW1lbnQgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjYW4taWZyYW1lLXNyY2RvYy1kb2N1bWVudD5hbiA8Y29kZT5pZnJhbWU8L2NvZGU+CisgICAgPGNvZGU+c3JjZG9jPC9jb2RlPiBkb2N1bWVudDwvYT4sIGFuZCB0aGUgRE9DVFlQRSB0b2tlbiBtYXRjaGVzCisgICAgb25lIG9mIHRoZSBjb25kaXRpb25zIGluIHRoZSBmb2xsb3dpbmcgbGlzdCwgdGhlbiBzZXQgdGhlIDxjb2RlIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTU+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IHRvIDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOnF1aXJrcy1tb2RlIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNxdWlya3MtbW9kZT5xdWlya3MKKyAgICBtb2RlPC9hPjo8L3A+CisKKyAgICA8dWwgY2xhc3M9YnJpZWY+PGxpPiBUaGUgPGkgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6Zm9yY2UtcXVpcmtzLWZsYWc+PGEgaHJlZj0jZm9yY2UtcXVpcmtzLWZsYWc+Zm9yY2UtcXVpcmtzIGZsYWc8L2E+PC9pPiBpcyBzZXQgdG8gPGk+b248L2k+LiA8bGk+IFRoZSBuYW1lIGlzIHNldCB0byBhbnl0aGluZyBvdGhlciB0aGFuICI8Y29kZT5odG1sPC9jb2RlPiIgKGNvbXBhcmVkIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNjYXNlLXNlbnNpdGl2ZSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpjYXNlLXNlbnNpdGl2ZS0xNT5jYXNlLXNlbnNpdGl2ZWx5PC9hPikuIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIGlzIHNldCB0bzogIjxjb2RlPi0vL1czTy8vRFREIFczIEhUTUwgU3RyaWN0IDMuMC8vRU4vLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIGlzIHNldCB0bzogIjxjb2RlPi0vVzNDL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvRU48L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBpcyBzZXQgdG86ICI8Y29kZT5IVE1MPC9jb2RlPiIgPGxpPiBUaGUgc3lzdGVtIGlkZW50aWZpZXIgaXMgc2V0IHRvOiAiPGNvZGU+aHR0cDovL3d3dy5pYm0uY29tL2RhdGEvZHRkL3YxMS9pYm14aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZDwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+Ky8vU2lsbWFyaWwvL2R0ZCBodG1sIFBybyB2MHIxMSAxOTk3MDEwMS8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9BUy8vRFREIEhUTUwgMy4wIGFzV2VkaXQgKyBleHRlbnNpb25zLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0FkdmFTb2Z0IEx0ZC8vRFREIEhUTUwgMy4wIGFzV2VkaXQgKyBleHRlbnNpb25zLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0lFVEYvL0RURCBIVE1MIDIuMCBMZXZlbCAxLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0lFVEYvL0RURCBIVE1MIDIuMCBMZXZlbCAyLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0lFVEYvL0RURCBIVE1MIDIuMCBTdHJpY3QgTGV2ZWwgMS8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9JRVRGLy9EVEQgSFRNTCAyLjAgU3RyaWN0IExldmVsIDIvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgMi4wIFN0cmljdC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9JRVRGLy9EVEQgSFRNTCAyLjAvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgMi4xRS8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9JRVRGLy9EVEQgSFRNTCAzLjAvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgMy4yIEZpbmFsLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0lFVEYvL0RURCBIVE1MIDMuMi8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9JRVRGLy9EVEQgSFRNTCAzLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDAvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgTGV2ZWwgMS8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9JRVRGLy9EVEQgSFRNTCBMZXZlbCAyLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0lFVEYvL0RURCBIVE1MIExldmVsIDMvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDAvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDEvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDIvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0IExldmVsIDMvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vSUVURi8vRFREIEhUTUwgU3RyaWN0Ly88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL0lFVEYvL0RURCBIVE1MLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL01ldHJpdXMvL0RURCBNZXRyaXVzIFByZXNlbnRhdGlvbmFsLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDIuMCBIVE1MIFN0cmljdC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAyLjAgSFRNTC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAyLjAgVGFibGVzLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL01pY3Jvc29mdC8vRFREIEludGVybmV0IEV4cGxvcmVyIDMuMCBIVE1MIFN0cmljdC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgSFRNTC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9NaWNyb3NvZnQvL0RURCBJbnRlcm5ldCBFeHBsb3JlciAzLjAgVGFibGVzLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL05ldHNjYXBlIENvbW0uIENvcnAuLy9EVEQgSFRNTC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9OZXRzY2FwZSBDb21tLiBDb3JwLi8vRFREIFN0cmljdCBIVE1MLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL08nUmVpbGx5IGFuZCBBc3NvY2lhdGVzLy9EVEQgSFRNTCAyLjAvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vTydSZWlsbHkgYW5kIEFzc29jaWF0ZXMvL0RURCBIVE1MIEV4dGVuZGVkIDEuMC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9PJ1JlaWxseSBhbmQgQXNzb2NpYXRlcy8vRFREIEhUTUwgRXh0ZW5kZWQgUmVsYXhlZCAxLjAvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vU1EvL0RURCBIVE1MIDIuMCBIb1RNZXRhTCArIGV4dGVuc2lvbnMvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vU29mdFF1YWQgU29mdHdhcmUvL0RURCBIb1RNZXRhTCBQUk8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBIVE1MIDQuMC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9Tb2Z0UXVhZC8vRFREIEhvVE1ldGFMIFBSTyA0LjA6OjE5OTcxMDEwOjpleHRlbnNpb25zIHRvIEhUTUwgNC4wLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL1NweWdsYXNzLy9EVEQgSFRNTCAyLjAgRXh0ZW5kZWQvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vU3VuIE1pY3Jvc3lzdGVtcyBDb3JwLi8vRFREIEhvdEphdmEgSFRNTC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9TdW4gTWljcm9zeXN0ZW1zIENvcnAuLy9EVEQgSG90SmF2YSBTdHJpY3QgSFRNTC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDMgMTk5NS0wMy0yNC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDMuMiBEcmFmdC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDMuMi8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDMuMlMgRHJhZnQvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL1czQy8vRFREIEhUTUwgRXhwZXJpbWVudGFsIDE5OTYwNzEyLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL1czQy8vRFREIEhUTUwgRXhwZXJpbWVudGFsIDk3MDQyMS8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBXMyBIVE1MLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL1czTy8vRFREIFczIEhUTUwgMy4wLy88L2NvZGU+IiA8bGk+IFRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL1dlYlRlY2hzLy9EVEQgTW96aWxsYSBIVE1MIDIuMC8vPC9jb2RlPiIgPGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XZWJUZWNocy8vRFREIE1vemlsbGEgSFRNTC8vPC9jb2RlPiIgPGxpPiBUaGUgc3lzdGVtIGlkZW50aWZpZXIgaXMgbWlzc2luZyBhbmQgdGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vVzNDLy9EVEQgSFRNTCA0LjAxIEZyYW1lc2V0Ly88L2NvZGU+IiA8bGk+IFRoZSBzeXN0ZW0gaWRlbnRpZmllciBpcyBtaXNzaW5nIGFuZCB0aGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy88L2NvZGU+IiA8L3VsPgorCisgICAgPHA+T3RoZXJ3aXNlLCBpZiB0aGUgZG9jdW1lbnQgaXMgPGVtPm5vdDwvZW0+IDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmFuLWlmcmFtZS1zcmNkb2MtZG9jdW1lbnQtMiBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCNhbi1pZnJhbWUtc3JjZG9jLWRvY3VtZW50PmFuIDxjb2RlPmlmcmFtZTwvY29kZT4gPGNvZGU+c3JjZG9jPC9jb2RlPiBkb2N1bWVudDwvYT4sIGFuZCB0aGUgRE9DVFlQRSB0b2tlbiBtYXRjaGVzIG9uZSBvZgorICAgIHRoZSBjb25kaXRpb25zIGluIHRoZSBmb2xsb3dpbmcgbGlzdCwgdGhlbiBzZXQgdGhlIDxjb2RlIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTY+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IHRvIDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmxpbWl0ZWQtcXVpcmtzLW1vZGUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2xpbWl0ZWQtcXVpcmtzLW1vZGU+bGltaXRlZC1xdWlya3MKKyAgICBtb2RlPC9hPjo8L3A+CisKKyAgICA8dWwgY2xhc3M9YnJpZWY+PGxpPiBUaGUgcHVibGljIGlkZW50aWZpZXIgc3RhcnRzIHdpdGg6ICI8Y29kZT4tLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvLzwvY29kZT4iIDxsaT4gVGhlIHB1YmxpYyBpZGVudGlmaWVyIHN0YXJ0cyB3aXRoOiAiPGNvZGU+LS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vPC9jb2RlPiIgPGxpPiBUaGUgc3lzdGVtIGlkZW50aWZpZXIgaXMgbm90IG1pc3NpbmcgYW5kIHRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL1czQy8vRFREIEhUTUwgNC4wMSBGcmFtZXNldC8vPC9jb2RlPiIgPGxpPiBUaGUgc3lzdGVtIGlkZW50aWZpZXIgaXMgbm90IG1pc3NpbmcgYW5kIHRoZSBwdWJsaWMgaWRlbnRpZmllciBzdGFydHMgd2l0aDogIjxjb2RlPi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvLzwvY29kZT4iIDwvdWw+CisKKyAgICA8cD5UaGUgc3lzdGVtIGlkZW50aWZpZXIgYW5kIHB1YmxpYyBpZGVudGlmaWVyIHN0cmluZ3MgbXVzdCBiZSBjb21wYXJlZCB0byB0aGUgdmFsdWVzIGdpdmVuIGluCisgICAgdGhlIGxpc3RzIGFib3ZlIGluIGFuIDxhIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmFzY2lpLWNhc2UtaW5zZW5zaXRpdmUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FzY2lpLWNhc2UtaW5zZW5zaXRpdmU+QVNDSUkgY2FzZS1pbnNlbnNpdGl2ZTwvYT4gbWFubmVyLiBBIHN5c3RlbSBpZGVudGlmaWVyIHdob3NlCisgICAgdmFsdWUgaXMgdGhlIGVtcHR5IHN0cmluZyBpcyBub3QgY29uc2lkZXJlZCBtaXNzaW5nIGZvciB0aGUgcHVycG9zZXMgb2YgdGhlIGNvbmRpdGlvbnMKKyAgICBhYm92ZS48L3A+CisKKyAgICA8cD5UaGVuLCBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1pbml0aWFsLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSN0aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlPmJlZm9yZSBodG1sPC9hPiIuPC9wPgorCisgICA8ZHQ+QW55dGhpbmcgZWxzZTxkZD4KKworICAgIDxwPklmIHRoZSBkb2N1bWVudCBpcyA8ZW0+bm90PC9lbT4gPGEgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6YW4taWZyYW1lLXNyY2RvYy1kb2N1bWVudC0zIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI2FuLWlmcmFtZS1zcmNkb2MtZG9jdW1lbnQ+YW4gPGNvZGU+aWZyYW1lPC9jb2RlPiA8Y29kZT5zcmNkb2M8L2NvZGU+IGRvY3VtZW50PC9hPiwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6cGFyc2UtZXJyb3ItMj5wYXJzZQorICAgIGVycm9yPC9hPjsgc2V0IHRoZSA8Y29kZSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpkb2N1bWVudC03PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiB0byA8YSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTpxdWlya3MtbW9kZS0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNxdWlya3MtbW9kZT5xdWlya3MgbW9kZTwvYT4uPC9wPgorCisgICAgPHA+SW4gYW55IGNhc2UsIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtMz5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3RoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZSBpZD10aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZTp0aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGUtMj5iZWZvcmUgaHRtbDwvYT4iLCB0aGVuIHJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8L2RsPgorCisKKyAgPGg2IGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZT4xMi4yLjUuNC4yIFRoZSAiPGRmbj5iZWZvcmUgaHRtbDwvZGZuPiIgaW5zZXJ0aW9uIG1vZGU8L2g2PgorCisgIDxwPldoZW4gdGhlIHVzZXIgYWdlbnQgaXMgdG8gYXBwbHkgdGhlIHJ1bGVzIGZvciB0aGUgIjxhIGhyZWY9I3RoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlPmJlZm9yZSBodG1sPC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzCisgIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkEgRE9DVFlQRSB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIGNvbW1lbnQgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY29tbWVudCBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0LWEtY29tbWVudD5JbnNlcnQgYSBjb21tZW50PC9hPiBhcyB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBvYmplY3QuPC9wPgorICAgPGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgb25lIG9mIFUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiwgVSswMDBBIExJTkUgRkVFRCAoTEYpLCBVKzAwMEMKKyAgIEZPUk0gRkVFRCAoRkYpLCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUiksIG9yIFUrMDAyMCBTUEFDRTxkZD4KKyAgICA8cD5JZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaHRtbCI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNjcmVhdGUtYW4tZWxlbWVudC1mb3ItdGhlLXRva2VuIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTpjcmVhdGUtYW4tZWxlbWVudC1mb3ItdGhlLXRva2VuPkNyZWF0ZSBhbiBlbGVtZW50IGZvciB0aGUgdG9rZW48L2E+IGluIHRoZSA8YSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT4sIHdpdGggdGhlCisgICAgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTI+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IGFzIHRoZSBpbnRlbmRlZCBwYXJlbnQuIEFwcGVuZCBpdCB0byB0aGUgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTM+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG9iamVjdC4gUHV0CisgICAgdGhpcyBlbGVtZW50IGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworICAgIDxwIGlkPXBhcnNlci1hcHBjYWNoZT5JZiB0aGUgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IGlzIGJlaW5nIGxvYWRlZCBhcyBwYXJ0IG9mIDxhIGhyZWY9YnJvd3NlcnMuaHRtbCNuYXZpZ2F0ZSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6bmF2aWdhdGU+bmF2aWdhdGlvbjwvYT4gb2YgYSA8YSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6YnJvd3NpbmctY29udGV4dCBocmVmPWJyb3dzZXJzLmh0bWwjYnJvd3NpbmctY29udGV4dD5icm93c2luZyBjb250ZXh0PC9hPiwgdGhlbjogaWYgdGhlIG5ld2x5CisgICAgY3JlYXRlZCBlbGVtZW50IGhhcyBhIDxjb2RlIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTphdHRyLWh0bWwtbWFuaWZlc3Q+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCNhdHRyLWh0bWwtbWFuaWZlc3Q+bWFuaWZlc3Q8L2E+PC9jb2RlPiBhdHRyaWJ1dGUgd2hvc2UgdmFsdWUgaXMKKyAgICBub3QgdGhlIGVtcHR5IHN0cmluZywgdGhlbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjcmVzb2x2ZS1hLXVybCBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6cmVzb2x2ZS1hLXVybD5yZXNvbHZlPC9hPiB0aGUgdmFsdWUgb2YgdGhhdAorICAgIGF0dHJpYnV0ZSB0byBhbiA8YSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6YWJzb2x1dGUtdXJsIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhYnNvbHV0ZS11cmw+YWJzb2x1dGUgVVJMPC9hPiwgcmVsYXRpdmUgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgZWxlbWVudCwgYW5kIGlmIHRoYXQgaXMKKyAgICBzdWNjZXNzZnVsLCBydW4gdGhlIDxhIGhyZWY9YnJvd3NlcnMuaHRtbCNjb25jZXB0LWFwcGNhY2hlLWluaXQgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmNvbmNlcHQtYXBwY2FjaGUtaW5pdD5hcHBsaWNhdGlvbiBjYWNoZSBzZWxlY3Rpb24KKyAgICBhbGdvcml0aG08L2E+IHdpdGggdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2NvbmNlcHQtdXJsLXNlcmlhbGlzZXIgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmNvbmNlcHQtdXJsLXNlcmlhbGlzZXI+VVJMCisgICAgc2VyaWFsaXNlcjwvYT4gYWxnb3JpdGhtIHRvIHRoZSByZXN1bHRpbmcgPGEgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOnBhcnNlZC11cmwgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3BhcnNlZC11cmw+cGFyc2VkIFVSTDwvYT4gd2l0aCB0aGUgPGk+ZXhjbHVkZQorICAgIGZyYWdtZW50IGZsYWc8L2k+IHNldDsgb3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBubyBzdWNoIGF0dHJpYnV0ZSwgb3IgaXRzIHZhbHVlIGlzIHRoZSBlbXB0eQorICAgIHN0cmluZywgb3IgcmVzb2x2aW5nIGl0cyB2YWx1ZSBmYWlscywgcnVuIHRoZSA8YSBocmVmPWJyb3dzZXJzLmh0bWwjY29uY2VwdC1hcHBjYWNoZS1pbml0IGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTpjb25jZXB0LWFwcGNhY2hlLWluaXQtMj5hcHBsaWNhdGlvbgorICAgIGNhY2hlIHNlbGVjdGlvbiBhbGdvcml0aG08L2E+IHdpdGggbm8gbWFuaWZlc3QuIFRoZSBhbGdvcml0aG0gbXVzdCBiZSBwYXNzZWQgdGhlCisgICAgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTU+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG9iamVjdC48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0yPmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jdGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTp0aGUtYmVmb3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGU+YmVmb3JlCisgICAgaGVhZDwvYT4iLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiaGVhZCIsICJib2R5IiwgImh0bWwiLCAiYnIiPGRkPgorICAgIDxwPkFjdCBhcyBkZXNjcmliZWQgaW4gdGhlICJhbnl0aGluZyBlbHNlIiBlbnRyeSBiZWxvdy48L3A+CisgICA8ZHQ+QW55IG90aGVyIGVuZCB0YWc8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5Bbnl0aGluZyBlbHNlPGRkPgorCisgICAgPHA+Q3JlYXRlIGFuIDxjb2RlIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTp0aGUtaHRtbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCB3aG9zZSA8YSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6bm9kZS1kb2N1bWVudCBocmVmPWh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1ub2RlLWRvY3VtZW50IGRhdGEteC1pbnRlcm5hbD1ub2RlLWRvY3VtZW50Pm5vZGUgZG9jdW1lbnQ8L2E+IGlzIHRoZSA8Y29kZSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6ZG9jdW1lbnQtNj48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gb2JqZWN0LiBBcHBlbmQKKyAgICBpdCB0byB0aGUgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTc+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG9iamVjdC4gUHV0IHRoaXMgZWxlbWVudCBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4KKyAgICBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+SWYgdGhlIDxjb2RlIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTpkb2N1bWVudC04PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBpcyBiZWluZyBsb2FkZWQgYXMgcGFydCBvZiA8YSBocmVmPWJyb3dzZXJzLmh0bWwjbmF2aWdhdGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOm5hdmlnYXRlLTI+bmF2aWdhdGlvbjwvYT4gb2YgYSA8YSBpZD10aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGU6YnJvd3NpbmctY29udGV4dC0yIGhyZWY9YnJvd3NlcnMuaHRtbCNicm93c2luZy1jb250ZXh0PmJyb3dzaW5nIGNvbnRleHQ8L2E+LCB0aGVuOiBydW4gdGhlIDxhIGhyZWY9YnJvd3NlcnMuaHRtbCNjb25jZXB0LWFwcGNhY2hlLWluaXQgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmNvbmNlcHQtYXBwY2FjaGUtaW5pdC0zPmFwcGxpY2F0aW9uIGNhY2hlIHNlbGVjdGlvbiBhbGdvcml0aG08L2E+IHdpdGggbm8gbWFuaWZlc3QsCisgICAgcGFzc2luZyBpdCB0aGUgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTk+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG9iamVjdC48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jdGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlIGlkPXRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZTp0aGUtYmVmb3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGUtMj5iZWZvcmUKKyAgICBoZWFkPC9hPiIsIHRoZW4gcmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDwvZGw+CisKKyAgPHA+VGhlIHJvb3QgZWxlbWVudCBjYW4gZW5kIHVwIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGUgPGNvZGUgaWQ9dGhlLWJlZm9yZS1odG1sLWluc2VydGlvbi1tb2RlOmRvY3VtZW50LTEwPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBvYmplY3QsIGUuZy4gYnkKKyAgc2NyaXB0czsgbm90aGluZyBpbiBwYXJ0aWN1bGFyIGhhcHBlbnMgaW4gc3VjaCBjYXNlcywgY29udGVudCBjb250aW51ZXMgYmVpbmcgYXBwZW5kZWQgdG8gdGhlCisgIG5vZGVzIGFzIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCBzZWN0aW9uLjwvcD4KKworCisgIDxoNiBpZD10aGUtYmVmb3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGU+MTIuMi41LjQuMyBUaGUgIjxkZm4+YmVmb3JlIGhlYWQ8L2Rmbj4iIGluc2VydGlvbiBtb2RlPC9oNj4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGlzIHRvIGFwcGx5IHRoZSBydWxlcyBmb3IgdGhlICI8YSBocmVmPSN0aGUtYmVmb3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOnRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZT5iZWZvcmUgaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcworICBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIGNoYXJhY3RlciB0b2tlbiB0aGF0IGlzIG9uZSBvZiBVKzAwMDkgQ0hBUkFDVEVSCisgICBUQUJVTEFUSU9OLCBVKzAwMEEgTElORSBGRUVEIChMRiksIFUrMDAwQyBGT1JNIEZFRUQgKEZGKSwKKyAgIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSwgb3IgVSswMDIwIFNQQUNFPGRkPgorICAgIDxwPklnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkEgY29tbWVudCB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jb21tZW50IGlkPXRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZTppbnNlcnQtYS1jb21tZW50Pkluc2VydCBhIGNvbW1lbnQ8L2E+LjwvcD4KKyAgIDxkdD5BIERPQ1RZUEUgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gSWdub3JlIHRoZSB0b2tlbi48L3A+CisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImh0bWwiPGRkPgorICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOnVzaW5nLXRoZS1ydWxlcy1mb3I+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtYmVmb3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJoZWFkIjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOmluc2VydC1hbi1odG1sLWVsZW1lbnQ+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I2hlYWQtZWxlbWVudC1wb2ludGVyIGlkPXRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZTpoZWFkLWVsZW1lbnQtcG9pbnRlcj48Y29kZT5oZWFkPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+IHRvIHRoZSBuZXdseSBjcmVhdGVkCisgICAgPGNvZGUgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOnRoZS1oZWFkLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50LjwvcD4KKworICAgIDxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTM+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5oZWFkPmluCisgICAgaGVhZDwvYT4iLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiaGVhZCIsICJib2R5IiwgImh0bWwiLCAiYnIiPGRkPgorCisgICAgPHA+QWN0IGFzIGRlc2NyaWJlZCBpbiB0aGUgImFueXRoaW5nIGVsc2UiIGVudHJ5IGJlbG93LjwvcD4KKworICAgPGR0PkFueSBvdGhlciBlbmQgdGFnPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKworCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD10aGUtYmVmb3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciBhICJoZWFkIiBzdGFydCB0YWcgdG9rZW4gd2l0aCBubyBhdHRyaWJ1dGVzLjwvcD4KKworICAgIDxwPlNldCB0aGUgPGEgaHJlZj0jaGVhZC1lbGVtZW50LXBvaW50ZXIgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOmhlYWQtZWxlbWVudC1wb2ludGVyLTI+PGNvZGU+aGVhZDwvY29kZT4gZWxlbWVudCBwb2ludGVyPC9hPiB0byB0aGUgbmV3bHkgY3JlYXRlZAorICAgIDxjb2RlIGlkPXRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZTp0aGUtaGVhZC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50LjwvcD4KKworICAgIDxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTQ+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXRoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5oZWFkLTI+aW4KKyAgICBoZWFkPC9hPiIuPC9wPgorCisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgY3VycmVudCB0b2tlbi48L3A+CisKKyAgIDwvZGw+CisKKworICA8aDYgaWQ9cGFyc2luZy1tYWluLWluaGVhZD4xMi4yLjUuNC40IFRoZSAiPGRmbj5pbiBoZWFkPC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluaGVhZCBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnBhcnNpbmctbWFpbi1pbmhlYWQ+aW4KKyAgaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+LCB0aGUgdXNlciBhZ2VudCBtdXN0IGhhbmRsZSB0aGUgdG9rZW4gYXMgZm9sbG93czo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+QSBjaGFyYWN0ZXIgdG9rZW4gdGhhdCBpcyBvbmUgb2YgVSswMDA5IENIQVJBQ1RFUgorICAgVEFCVUxBVElPTiwgVSswMDBBIExJTkUgRkVFRCAoTEYpLCBVKzAwMEMgRk9STSBGRUVEIChGRiksCisgICBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUiksIG9yIFUrMDAyMCBTUEFDRTxkZD4KKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jaGFyYWN0ZXIgaWQ9cGFyc2luZy1tYWluLWluaGVhZDppbnNlcnQtYS1jaGFyYWN0ZXI+SW5zZXJ0IHRoZSBjaGFyYWN0ZXI8L2E+LjwvcD4KKyAgIDxkdD5BIGNvbW1lbnQgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY29tbWVudCBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmluc2VydC1hLWNvbW1lbnQ+SW5zZXJ0IGEgY29tbWVudDwvYT4uPC9wPgorICAgPGR0PkEgRE9DVFlQRSB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gSWdub3JlIHRoZSB0b2tlbi48L3A+CisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImh0bWwiPGRkPgorICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWluaGVhZDp1c2luZy10aGUtcnVsZXMtZm9yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnBhcnNpbmctbWFpbi1pbmJvZHk+aW4gYm9keTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImJhc2UiLCAiYmFzZWZvbnQiLAorICAgImJnc291bmQiLCAibGluayI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudD5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLiBJbW1lZGlhdGVseSBwb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmN1cnJlbnQtbm9kZT5jdXJyZW50CisgICAgbm9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6c3RhY2stb2Ytb3Blbi1lbGVtZW50cz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgICA8cD48YSBocmVmPSNhY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZyBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmFja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnPkFja25vd2xlZGdlIHRoZSB0b2tlbidzIDxpPnNlbGYtY2xvc2luZworICAgIGZsYWc8L2k+PC9hPiwgaWYgaXQgaXMgc2V0LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJtZXRhIjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluaGVhZDppbnNlcnQtYW4taHRtbC1lbGVtZW50LTI+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi4gSW1tZWRpYXRlbHkgcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpjdXJyZW50LW5vZGUtMj5jdXJyZW50CisgICAgbm9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2Fja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6YWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWctMj5BY2tub3dsZWRnZSB0aGUgdG9rZW4ncyA8aT5zZWxmLWNsb3NpbmcKKyAgICBmbGFnPC9pPjwvYT4sIGlmIGl0IGlzIHNldC48L3A+CisKKyAgICA8cCBpZD1tZXRhLWNoYXJzZXQtZHVyaW5nLXBhcnNlPklmIHRoZSBlbGVtZW50IGhhcyBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6YXR0ci1tZXRhLWNoYXJzZXQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCNhdHRyLW1ldGEtY2hhcnNldD5jaGFyc2V0PC9hPjwvY29kZT4gYXR0cmlidXRlLCBhbmQgPGEgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpnZXR0aW5nLWFuLWVuY29kaW5nIGhyZWY9aHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZW5jb2RpbmctZ2V0IGRhdGEteC1pbnRlcm5hbD1nZXR0aW5nLWFuLWVuY29kaW5nPmdldHRpbmcgYW4gZW5jb2Rpbmc8L2E+IGZyb20KKyAgICBpdHMgdmFsdWUgcmVzdWx0cyBpbiBhIHN1cHBvcnRlZCA8YSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmFzY2lpLWNvbXBhdGlibGUtY2hhcmFjdGVyLWVuY29kaW5nIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhc2NpaS1jb21wYXRpYmxlLWNoYXJhY3Rlci1lbmNvZGluZz5BU0NJSS1jb21wYXRpYmxlIGNoYXJhY3RlciBlbmNvZGluZzwvYT4gb3IgPGEgaWQ9cGFyc2luZy1tYWluLWluaGVhZDphLXV0Zi0xNi1lbmNvZGluZyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYS11dGYtMTYtZW5jb2Rpbmc+YQorICAgIFVURi0xNiBlbmNvZGluZzwvYT4sIGFuZCB0aGUgPGEgaHJlZj0jY29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6Y29uY2VwdC1lbmNvZGluZy1jb25maWRlbmNlPmNvbmZpZGVuY2U8L2E+IGlzCisgICAgY3VycmVudGx5IDxpPnRlbnRhdGl2ZTwvaT4sIHRoZW4gPGEgaHJlZj0jY2hhbmdlLXRoZS1lbmNvZGluZyBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmNoYW5nZS10aGUtZW5jb2Rpbmc+Y2hhbmdlIHRoZSBlbmNvZGluZzwvYT4gdG8gdGhlIHJlc3VsdGluZyBlbmNvZGluZy48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIGlmIHRoZSBlbGVtZW50IGhhcyBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmF0dHItbWV0YS1odHRwLWVxdWl2PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjYXR0ci1tZXRhLWh0dHAtZXF1aXY+aHR0cC1lcXVpdjwvYT48L2NvZGU+CisgICAgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIGFuIDxhIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6YXNjaWktY2FzZS1pbnNlbnNpdGl2ZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjYXNjaWktY2FzZS1pbnNlbnNpdGl2ZT5BU0NJSSBjYXNlLWluc2Vuc2l0aXZlPC9hPiBtYXRjaCBmb3IgdGhlIHN0cmluZyAiPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiIsIGFuZCB0aGUgZWxlbWVudCBoYXMgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmF0dHItbWV0YS1jb250ZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjYXR0ci1tZXRhLWNvbnRlbnQ+Y29udGVudDwvYT48L2NvZGU+IGF0dHJpYnV0ZSwgYW5kIGFwcGx5aW5nIHRoZSA8YSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmFsZ29yaXRobS1mb3ItZXh0cmFjdGluZy1hLWNoYXJhY3Rlci1lbmNvZGluZy1mcm9tLWEtbWV0YS1lbGVtZW50IGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhbGdvcml0aG0tZm9yLWV4dHJhY3RpbmctYS1jaGFyYWN0ZXItZW5jb2RpbmctZnJvbS1hLW1ldGEtZWxlbWVudD5hbGdvcml0aG0gZm9yCisgICAgZXh0cmFjdGluZyBhIGNoYXJhY3RlciBlbmNvZGluZyBmcm9tIGEgPGNvZGU+bWV0YTwvY29kZT4gZWxlbWVudDwvYT4gdG8gdGhhdCBhdHRyaWJ1dGUncworICAgIHZhbHVlIHJldHVybnMgYSBzdXBwb3J0ZWQgPGEgaWQ9cGFyc2luZy1tYWluLWluaGVhZDphc2NpaS1jb21wYXRpYmxlLWNoYXJhY3Rlci1lbmNvZGluZy0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhc2NpaS1jb21wYXRpYmxlLWNoYXJhY3Rlci1lbmNvZGluZz5BU0NJSS1jb21wYXRpYmxlIGNoYXJhY3RlciBlbmNvZGluZzwvYT4gb3IgPGEgaWQ9cGFyc2luZy1tYWluLWluaGVhZDphLXV0Zi0xNi1lbmNvZGluZy0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhLXV0Zi0xNi1lbmNvZGluZz5hIFVURi0xNgorICAgIGVuY29kaW5nPC9hPiwgYW5kIHRoZSA8YSBocmVmPSNjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpjb25jZXB0LWVuY29kaW5nLWNvbmZpZGVuY2UtMj5jb25maWRlbmNlPC9hPiBpcworICAgIGN1cnJlbnRseSA8aT50ZW50YXRpdmU8L2k+LCB0aGVuIDxhIGhyZWY9I2NoYW5nZS10aGUtZW5jb2RpbmcgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpjaGFuZ2UtdGhlLWVuY29kaW5nLTI+Y2hhbmdlIHRoZSBlbmNvZGluZzwvYT4gdG8gdGhlIGV4dHJhY3RlZCBlbmNvZGluZy48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAidGl0bGUiPGRkPgorICAgIDxwPkZvbGxvdyB0aGUgPGEgaHJlZj0jZ2VuZXJpYy1yY2RhdGEtZWxlbWVudC1wYXJzaW5nLWFsZ29yaXRobSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmdlbmVyaWMtcmNkYXRhLWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0+Z2VuZXJpYyBSQ0RBVEEgZWxlbWVudCBwYXJzaW5nIGFsZ29yaXRobTwvYT4uPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJub3NjcmlwdCIsIGlmIHRoZSA8YSBocmVmPSNzY3JpcHRpbmctZmxhZyBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnNjcmlwdGluZy1mbGFnPnNjcmlwdGluZyBmbGFnPC9hPiBpcyBlbmFibGVkPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogIm5vZnJhbWVzIiwgInN0eWxlIjxkZD4KKyAgICA8cD5Gb2xsb3cgdGhlIDxhIGhyZWY9I2dlbmVyaWMtcmF3LXRleHQtZWxlbWVudC1wYXJzaW5nLWFsZ29yaXRobSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmdlbmVyaWMtcmF3LXRleHQtZWxlbWVudC1wYXJzaW5nLWFsZ29yaXRobT5nZW5lcmljIHJhdyB0ZXh0IGVsZW1lbnQgcGFyc2luZyBhbGdvcml0aG08L2E+LjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAibm9zY3JpcHQiLCBpZiB0aGUgPGEgaHJlZj0jc2NyaXB0aW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpzY3JpcHRpbmctZmxhZy0yPnNjcmlwdGluZyBmbGFnPC9hPiBpcyBkaXNhYmxlZDxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluaGVhZDppbnNlcnQtYW4taHRtbC1lbGVtZW50LTM+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6aW5zZXJ0aW9uLW1vZGUtMz5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdCBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdD5pbgorICAgIGhlYWQgbm9zY3JpcHQ8L2E+Ii48L3A+CisKKyAgIDxkdCBpZD1zY3JpcHRUYWc+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInNjcmlwdCI8ZGQ+CisKKyAgICA8cD5SdW4gdGhlc2Ugc3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD5MZXQgdGhlIDx2YXI+YWRqdXN0ZWQgaW5zZXJ0aW9uIGxvY2F0aW9uPC92YXI+IGJlIHRoZSA8YSBocmVmPSNhcHByb3ByaWF0ZS1wbGFjZS1mb3ItaW5zZXJ0aW5nLWEtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmFwcHJvcHJpYXRlLXBsYWNlLWZvci1pbnNlcnRpbmctYS1ub2RlPmFwcHJvcHJpYXRlIHBsYWNlCisgICAgIGZvciBpbnNlcnRpbmcgYSBub2RlPC9hPi48bGk+PHA+PGEgaHJlZj0jY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbiBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmNyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4+Q3JlYXRlIGFuIGVsZW1lbnQgZm9yIHRoZSB0b2tlbjwvYT4gaW4gdGhlIDxhIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT4sIHdpdGgKKyAgICAgdGhlIGludGVuZGVkIHBhcmVudCBiZWluZyB0aGUgZWxlbWVudCBpbiB3aGljaCB0aGUgPHZhcj5hZGp1c3RlZCBpbnNlcnRpb24KKyAgICAgbG9jYXRpb248L3Zhcj4gZmluZHMgaXRzZWxmLjxsaT4KKworICAgICAgPHA+TWFyayB0aGUgZWxlbWVudCBhcyBiZWluZyA8YSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnBhcnNlci1pbnNlcnRlZCBocmVmPXNjcmlwdGluZy5odG1sI3BhcnNlci1pbnNlcnRlZD4icGFyc2VyLWluc2VydGVkIjwvYT4gYW5kIHVuc2V0IHRoZSBlbGVtZW50J3MKKyAgICAgIDxhIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6bm9uLWJsb2NraW5nIGhyZWY9c2NyaXB0aW5nLmh0bWwjbm9uLWJsb2NraW5nPiJub24tYmxvY2tpbmciPC9hPiBmbGFnLjwvcD4KKworICAgICAgPHAgY2xhc3M9bm90ZT5UaGlzIGVuc3VyZXMgdGhhdCwgaWYgdGhlIHNjcmlwdCBpcyBleHRlcm5hbCwgYW55IDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6ZG9tLWRvY3VtZW50LXdyaXRlPjxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2RvbS1kb2N1bWVudC13cml0ZT5kb2N1bWVudC53cml0ZSgpPC9hPjwvY29kZT4gY2FsbHMgaW4gdGhlIHNjcmlwdCB3aWxsIGV4ZWN1dGUgaW4tbGluZSwKKyAgICAgIGluc3RlYWQgb2YgYmxvd2luZyB0aGUgZG9jdW1lbnQgYXdheSwgYXMgd291bGQgaGFwcGVuIGluIG1vc3Qgb3RoZXIgY2FzZXMuIEl0IGFsc28gcHJldmVudHMKKyAgICAgIHRoZSBzY3JpcHQgZnJvbSBleGVjdXRpbmcgdW50aWwgdGhlIGVuZCB0YWcgaXMgc2Vlbi48L3A+CisKKyAgICAgPGxpPjxwPklmIHRoZSBwYXJzZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBmb3IgdGhlIDxhIGhyZWY9I2h0bWwtZnJhZ21lbnQtcGFyc2luZy1hbGdvcml0aG0gaWQ9cGFyc2luZy1tYWluLWluaGVhZDpodG1sLWZyYWdtZW50LXBhcnNpbmctYWxnb3JpdGhtPkhUTUwgZnJhZ21lbnQgcGFyc2luZworICAgICBhbGdvcml0aG08L2E+LCB0aGVuIG1hcmsgdGhlIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6dGhlLXNjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+IGVsZW1lbnQgYXMgPGEgaWQ9cGFyc2luZy1tYWluLWluaGVhZDphbHJlYWR5LXN0YXJ0ZWQgaHJlZj1zY3JpcHRpbmcuaHRtbCNhbHJlYWR5LXN0YXJ0ZWQ+ImFscmVhZHkgc3RhcnRlZCI8L2E+LgorICAgICAoPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmZyYWdtZW50LWNhc2U+ZnJhZ21lbnQgY2FzZTwvYT4pPGxpPjxwPkluc2VydCB0aGUgbmV3bHkgY3JlYXRlZCBlbGVtZW50IGF0IHRoZSA8dmFyPmFkanVzdGVkIGluc2VydGlvbgorICAgICBsb2NhdGlvbjwvdmFyPi48bGk+PHA+UHVzaCB0aGUgZWxlbWVudCBvbnRvIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHNvIHRoYXQgaXQgaXMgdGhlIG5ldworICAgICA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpjdXJyZW50LW5vZGUtMz5jdXJyZW50IG5vZGU8L2E+LjxsaT48cD5Td2l0Y2ggdGhlIHRva2VuaXplciB0byB0aGUgPGEgaHJlZj0jc2NyaXB0LWRhdGEtc3RhdGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpzY3JpcHQtZGF0YS1zdGF0ZT5zY3JpcHQgZGF0YSBzdGF0ZTwvYT4uPGxpPjxwPkxldCB0aGUgPGEgaHJlZj0jb3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpvcmlnaW5hbC1pbnNlcnRpb24tbW9kZT5vcmlnaW5hbCBpbnNlcnRpb24gbW9kZTwvYT4gYmUgdGhlIGN1cnJlbnQgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDppbnNlcnRpb24tbW9kZS00Pmluc2VydGlvbgorICAgICBtb2RlPC9hPi48L3A+CisKKyAgICAgPGxpPjxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDppbnNlcnRpb24tbW9kZS01Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluY2RhdGEgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpwYXJzaW5nLW1haW4taW5jZGF0YT50ZXh0PC9hPiIuPC9vbD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImhlYWQiPGRkPgorCisgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpjdXJyZW50LW5vZGUtND5jdXJyZW50IG5vZGU8L2E+ICh3aGljaCB3aWxsIGJlIHRoZSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnRoZS1oZWFkLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50KSBvZmYgdGhlCisgICAgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6aW5zZXJ0aW9uLW1vZGUtNj5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3RoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU+YWZ0ZXIKKyAgICBoZWFkPC9hPiIuPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJib2R5IiwgImh0bWwiLCAiYnIiPGRkPgorICAgIDxwPkFjdCBhcyBkZXNjcmliZWQgaW4gdGhlICJhbnl0aGluZyBlbHNlIiBlbnRyeSBiZWxvdy48L3A+CisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRlbXBsYXRlIjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluaGVhZDppbnNlcnQtYW4taHRtbC1lbGVtZW50LTQ+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5JbnNlcnQgYSA8YSBocmVmPSNjb25jZXB0LXBhcnNlci1tYXJrZXIgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpjb25jZXB0LXBhcnNlci1tYXJrZXI+bWFya2VyPC9hPiBhdCB0aGUgZW5kIG9mIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cz5saXN0IG9mCisgICAgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LjwvcD4KKworICAgIDxwPlNldCB0aGUgPGEgaHJlZj0jZnJhbWVzZXQtb2stZmxhZyBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmZyYW1lc2V0LW9rLWZsYWc+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmluc2VydGlvbi1tb2RlLTc+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ZW1wbGF0ZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnBhcnNpbmctbWFpbi1pbnRlbXBsYXRlPmluCisgICAgdGVtcGxhdGU8L2E+Ii48L3A+CisKKyAgICA8cD5QdXNoICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ZW1wbGF0ZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnBhcnNpbmctbWFpbi1pbnRlbXBsYXRlLTI+aW4gdGVtcGxhdGU8L2E+IiBvbnRvIHRoZSA8YSBocmVmPSNzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXM+c3RhY2sgb2YKKyAgICB0ZW1wbGF0ZSBpbnNlcnRpb24gbW9kZXM8L2E+IHNvIHRoYXQgaXQgaXMgdGhlIG5ldyA8YSBocmVmPSNjdXJyZW50LXRlbXBsYXRlLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZT5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbgorICAgIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRlbXBsYXRlIjxkZD4KKworICAgIDxwPklmIHRoZXJlIGlzIG5vIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6dGhlLXRlbXBsYXRlLWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTU+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIHRoZW4KKyAgICB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpwYXJzZS1lcnJvci0yPnBhcnNlIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIHJ1biB0aGVzZSBzdGVwczo8L3A+CisKKyAgICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWFsbC1pbXBsaWVkLWVuZC10YWdzLXRob3JvdWdobHkgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpnZW5lcmF0ZS1hbGwtaW1wbGllZC1lbmQtdGFncy10aG9yb3VnaGx5PkdlbmVyYXRlIGFsbCBpbXBsaWVkIGVuZCB0YWdzIHRob3JvdWdobHk8L2E+LjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6Y3VycmVudC1ub2RlLTU+Y3VycmVudCBub2RlPC9hPiBpcyBub3QgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnRoZS10ZW1wbGF0ZS1lbGVtZW50LTI+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gdGhpcyBpcyBhCisgICAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6cGFyc2UtZXJyb3ItMz5wYXJzZSBlcnJvcjwvYT4uPGxpPjxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy02PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZDp0aGUtdGVtcGxhdGUtZWxlbWVudC0zPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPgorICAgICBlbGVtZW50IGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZSBzdGFjay48bGk+PGEgaHJlZj0jY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6Y2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyPkNsZWFyIHRoZSBsaXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHVwIHRvIHRoZSBsYXN0IG1hcmtlcjwvYT4uPGxpPjxwPlBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmN1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUtMj5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2RlcyBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnN0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2Rlcy0yPnN0YWNrIG9mIHRlbXBsYXRlCisgICAgIGluc2VydGlvbiBtb2RlczwvYT4uPC9wPgorCisgICAgIDxsaT48cD48YSBocmVmPSNyZXNldC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlhdGVseSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnJlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5PlJlc2V0IHRoZSBpbnNlcnRpb24gbW9kZSBhcHByb3ByaWF0ZWx5PC9hPi48L29sPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImhlYWQiPGR0PkFueSBvdGhlciBlbmQgdGFnPGRkPgorICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6cGFyc2UtZXJyb3ItND5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKworCisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmN1cnJlbnQtbm9kZS02PmN1cnJlbnQgbm9kZTwvYT4gKHdoaWNoIHdpbGwgYmUgdGhlIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWQ6dGhlLWhlYWQtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT4gZWxlbWVudCkgb2ZmIHRoZQorICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluaGVhZDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTc+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOmluc2VydGlvbi1tb2RlLTg+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSN0aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkOnRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlLTI+YWZ0ZXIKKyAgICBoZWFkPC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPC9kbD4KKworCisgIDxoNiBpZD1wYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQ+MTIuMi41LjQuNSBUaGUgIjxkZm4+aW4gaGVhZCBub3NjcmlwdDwvZGZuPiIgaW5zZXJ0aW9uIG1vZGU8L2g2PgorCisgIDxwPldoZW4gdGhlIHVzZXIgYWdlbnQgaXMgdG8gYXBwbHkgdGhlIHJ1bGVzIGZvciB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdCBpZD1wYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQ6cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0PmluIGhlYWQgbm9zY3JpcHQ8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQ6aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+LCB0aGUgdXNlciBhZ2VudCBtdXN0IGhhbmRsZSB0aGUKKyAgdG9rZW4gYXMgZm9sbG93czo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+QSBET0NUWVBFIHRva2VuPGRkPgorICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJodG1sIjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0OnVzaW5nLXRoZS1ydWxlcy1mb3I+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQ6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAibm9zY3JpcHQiPGRkPgorCisgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0OmN1cnJlbnQtbm9kZT5jdXJyZW50IG5vZGU8L2E+ICh3aGljaCB3aWxsIGJlIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0OnRoZS1ub3NjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLW5vc2NyaXB0LWVsZW1lbnQ+bm9zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50KSBmcm9tIHRoZQorICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT47IHRoZSBuZXcgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+IHdpbGwgYmUgYQorICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDp0aGUtaGVhZC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT4gZWxlbWVudC48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluaGVhZCBpZD1wYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQ6cGFyc2luZy1tYWluLWluaGVhZD5pbgorICAgIGhlYWQ8L2E+Ii48L3A+CisKKyAgIDxkdD5BIGNoYXJhY3RlciB0b2tlbiB0aGF0IGlzIG9uZSBvZiBVKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04sIFUrMDAwQSBMSU5FIEZFRUQgKExGKSwgVSswMDBDCisgICBGT1JNIEZFRUQgKEZGKSwgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpLCBvciBVKzAwMjAgU1BBQ0U8ZHQ+QSBjb21tZW50IHRva2VuPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImJhc2Vmb250IiwgImJnc291bmQiLCAibGluayIsICJtZXRhIiwgIm5vZnJhbWVzIiwKKyAgICJzdHlsZSI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDp1c2luZy10aGUtcnVsZXMtZm9yLTI+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDpwYXJzaW5nLW1haW4taW5oZWFkLTI+aW4gaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDppbnNlcnRpb24tbW9kZS00Pmluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJiciI8ZGQ+CisgICAgPHA+QWN0IGFzIGRlc2NyaWJlZCBpbiB0aGUgImFueXRoaW5nIGVsc2UiIGVudHJ5IGJlbG93LjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJoZWFkIiwgIm5vc2NyaXB0IjxkdD5Bbnkgb3RoZXIgZW5kIHRhZzxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQ6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKworCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0OnBhcnNlLWVycm9yLTM+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworCisgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0OmN1cnJlbnQtbm9kZS0zPmN1cnJlbnQgbm9kZTwvYT4gKHdoaWNoIHdpbGwgYmUgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQ6dGhlLW5vc2NyaXB0LWVsZW1lbnQtMj48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1ub3NjcmlwdC1lbGVtZW50Pm5vc2NyaXB0PC9hPjwvY29kZT4gZWxlbWVudCkgZnJvbSB0aGUKKyAgICA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT47IHRoZSBuZXcgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDpjdXJyZW50LW5vZGUtND5jdXJyZW50IG5vZGU8L2E+IHdpbGwgYmUgYQorICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDp0aGUtaGVhZC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50LjwvcD4KKworICAgIDxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluaGVhZG5vc2NyaXB0Omluc2VydGlvbi1tb2RlLTU+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXBhcnNpbmctbWFpbi1pbmhlYWRub3NjcmlwdDpwYXJzaW5nLW1haW4taW5oZWFkLTM+aW4KKyAgICBoZWFkPC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPC9kbD4KKworCisgIDxoNiBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZT4xMi4yLjUuNC42IFRoZSAiPGRmbj5hZnRlciBoZWFkPC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jdGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU+YWZ0ZXIgaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzCisgIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgb25lIG9mIFUrMDAwOSBDSEFSQUNURVIKKyAgIFRBQlVMQVRJT04sIFUrMDAwQSBMSU5FIEZFRUQgKExGKSwgVSswMDBDIEZPUk0gRkVFRCAoRkYpLAorICAgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpLCBvciBVKzAwMjAgU1BBQ0U8ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY2hhcmFjdGVyIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOmluc2VydC1hLWNoYXJhY3Rlcj5JbnNlcnQgdGhlIGNoYXJhY3RlcjwvYT4uPC9wPgorICAgPGR0PkEgY29tbWVudCB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jb21tZW50IGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOmluc2VydC1hLWNvbW1lbnQ+SW5zZXJ0IGEgY29tbWVudDwvYT4uPC9wPgorICAgPGR0PkEgRE9DVFlQRSB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJodG1sIjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6dXNpbmctdGhlLXJ1bGVzLWZvcj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmJvZHkgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWluYm9keT5pbiBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImJvZHkiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTppbnNlcnQtYW4taHRtbC1lbGVtZW50Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+U2V0IHRoZSA8YSBocmVmPSNmcmFtZXNldC1vay1mbGFnIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOmZyYW1lc2V0LW9rLWZsYWc+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5ib2R5LTI+aW4KKyAgICBib2R5PC9hPiIuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImZyYW1lc2V0IjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS00Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluZnJhbWVzZXQgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6cGFyc2luZy1tYWluLWluZnJhbWVzZXQ+aW4KKyAgICBmcmFtZXNldDwvYT4iLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImJhc2UiLCAiYmFzZWZvbnQiLCAiYmdzb3VuZCIsICJsaW5rIiwgIm1ldGEiLAorICAgIm5vZnJhbWVzIiwgInNjcmlwdCIsICJzdHlsZSIsICJ0ZW1wbGF0ZSIsICJ0aXRsZSI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzZS1lcnJvci0yPlBhcnNlIGVycm9yPC9hPi48L3A+CisKKyAgICA8cD5QdXNoIHRoZSBub2RlIHBvaW50ZWQgdG8gYnkgdGhlIDxhIGhyZWY9I2hlYWQtZWxlbWVudC1wb2ludGVyIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOmhlYWQtZWxlbWVudC1wb2ludGVyPjxjb2RlPmhlYWQ8L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4gb250bworICAgIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTp1c2luZy10aGUtcnVsZXMtZm9yLTI+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmhlYWQ+aW4gaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTU+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgIDxwPlJlbW92ZSB0aGUgbm9kZSBwb2ludGVkIHRvIGJ5IHRoZSA8YSBocmVmPSNoZWFkLWVsZW1lbnQtcG9pbnRlciBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTpoZWFkLWVsZW1lbnQtcG9pbnRlci0yPjxjb2RlPmhlYWQ8L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4KKyAgICBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi4gKEl0IG1pZ2h0IG5vdCBiZSB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOmN1cnJlbnQtbm9kZT5jdXJyZW50IG5vZGU8L2E+IGF0CisgICAgdGhpcyBwb2ludC4pPC9wPgorCisgICAgPHAgY2xhc3M9bm90ZT5UaGUgPGEgaHJlZj0jaGVhZC1lbGVtZW50LXBvaW50ZXIgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6aGVhZC1lbGVtZW50LXBvaW50ZXItMz48Y29kZT5oZWFkPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+IGNhbm5vdCBiZSBudWxsIGF0CisgICAgdGhpcyBwb2ludC48L3A+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJ0ZW1wbGF0ZSI8ZGQ+CisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTp1c2luZy10aGUtcnVsZXMtZm9yLTM+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmhlYWQtMj5pbiBoZWFkPC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtNj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYm9keSIsICJodG1sIiwgImJyIjxkZD4KKyAgICA8cD5BY3QgYXMgZGVzY3JpYmVkIGluIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkgYmVsb3cuPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJoZWFkIjxkdD5Bbnkgb3RoZXIgZW5kIHRhZzxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gSWdub3JlIHRoZSB0b2tlbi48L3A+CisgICA8ZHQ+QW55dGhpbmcgZWxzZTxkZD4KKworCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTM+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIGEgImJvZHkiIHN0YXJ0IHRhZyB0b2tlbiB3aXRoIG5vIGF0dHJpYnV0ZXMuPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS03Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD10aGUtYWZ0ZXItaGVhZC1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5ib2R5LTM+aW4KKyAgICBib2R5PC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIGN1cnJlbnQgdG9rZW4uPC9wPgorCisgICA8L2RsPgorCisKKyAgPGg2IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk+MTIuMi41LjQuNyBUaGUgIjxkZm4+aW4gYm9keTwvZGZuPiIgaW5zZXJ0aW9uIG1vZGU8L2g2PgorCisgIDxwPldoZW4gdGhlIHVzZXIgYWdlbnQgaXMgdG8gYXBwbHkgdGhlIHJ1bGVzIGZvciB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmJvZHkgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzaW5nLW1haW4taW5ib2R5PmluCisgIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgVSswMDAwIE5VTEw8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gSWdub3JlIHRoZSB0b2tlbi48L3A+CisKKworCisgICA8ZHQ+QSBjaGFyYWN0ZXIgdG9rZW4gdGhhdCBpcyBvbmUgb2YgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OLAorICAgVSswMDBBIExJTkUgRkVFRCAoTEYpLCBVKzAwMEMgRk9STSBGRUVEIChGRiksIFUrMDAwRCBDQVJSSUFHRQorICAgUkVUVVJOIChDUiksIG9yIFUrMDAyMCBTUEFDRTxkZD4KKworICAgIDxwPjxhIGhyZWY9I3JlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnJlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cz5SZWNvbnN0cnVjdCB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY2hhcmFjdGVyIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWEtY2hhcmFjdGVyPkluc2VydCB0aGUgdG9rZW4ncyBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICAgPGR0PkFueSBvdGhlciBjaGFyYWN0ZXIgdG9rZW48ZGQ+CisKKyAgICA8cD48YSBocmVmPSNyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMj5SZWNvbnN0cnVjdCB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY2hhcmFjdGVyIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWEtY2hhcmFjdGVyLTI+SW5zZXJ0IHRoZSB0b2tlbidzIGNoYXJhY3RlcjwvYT4uPC9wPgorCisgICAgPHA+U2V0IHRoZSA8YSBocmVmPSNmcmFtZXNldC1vay1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6ZnJhbWVzZXQtb2stZmxhZz5mcmFtZXNldC1vayBmbGFnPC9hPiB0byAibm90IG9rIi48L3A+CisKKyAgIDxkdD5BIGNvbW1lbnQgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY29tbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hLWNvbW1lbnQ+SW5zZXJ0IGEgY29tbWVudDwvYT4uPC9wPgorICAgPGR0PkEgRE9DVFlQRSB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaHRtbCI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTM+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPklmIHRoZXJlIGlzIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGVtcGxhdGUtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS10ZW1wbGF0ZS1lbGVtZW50PnRlbXBsYXRlPC9hPjwvY29kZT4gZWxlbWVudCBvbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIHRoZW4KKyAgICBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgZm9yIGVhY2ggYXR0cmlidXRlIG9uIHRoZSB0b2tlbiwgY2hlY2sgdG8gc2VlIGlmIHRoZSBhdHRyaWJ1dGUgaXMgYWxyZWFkeSBwcmVzZW50CisgICAgb24gdGhlIHRvcCBlbGVtZW50IG9mIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LiBJZiBpdCBpcyBub3QsIGFkZCB0aGUgYXR0cmlidXRlCisgICAgYW5kIGl0cyBjb3JyZXNwb25kaW5nIHZhbHVlIHRvIHRoYXQgZWxlbWVudC48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJiYXNlIiwgImJhc2Vmb250IiwgImJnc291bmQiLCAibGluayIsICJtZXRhIiwKKyAgICJub2ZyYW1lcyIsICJzY3JpcHQiLCAic3R5bGUiLCAidGVtcGxhdGUiLCAidGl0bGUiPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRlbXBsYXRlIjxkZD4KKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dXNpbmctdGhlLXJ1bGVzLWZvcj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWQgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzaW5nLW1haW4taW5oZWFkPmluIGhlYWQ8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiYm9keSI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTQ+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPklmIHRoZSBzZWNvbmQgZWxlbWVudCBvbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBpcyBub3QgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1ib2R5LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPgorICAgIGVsZW1lbnQsIGlmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGhhcyBvbmx5IG9uZSBub2RlIG9uIGl0LCBvciBpZiB0aGVyZSBpcyBhCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGVtcGxhdGUtZWxlbWVudC0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiBlbGVtZW50IG9uIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy01PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCB0aGVuIGlnbm9yZSB0aGUgdG9rZW4uCisgICAgKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFnbWVudC1jYXNlPmZyYWdtZW50IGNhc2U8L2E+KTwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgc2V0IHRoZSA8YSBocmVmPSNmcmFtZXNldC1vay1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6ZnJhbWVzZXQtb2stZmxhZy0yPmZyYW1lc2V0LW9rIGZsYWc8L2E+IHRvICJub3Qgb2siOyB0aGVuLCBmb3IgZWFjaCBhdHRyaWJ1dGUgb24gdGhlCisgICAgdG9rZW4sIGNoZWNrIHRvIHNlZSBpZiB0aGUgYXR0cmlidXRlIGlzIGFscmVhZHkgcHJlc2VudCBvbiB0aGUgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtYm9keS1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50ICh0aGUKKyAgICBzZWNvbmQgZWxlbWVudCkgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTY+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIGFuZCBpZiBpdCBpcyBub3QsIGFkZCB0aGUgYXR0cmlidXRlCisgICAgYW5kIGl0cyBjb3JyZXNwb25kaW5nIHZhbHVlIHRvIHRoYXQgZWxlbWVudC48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiZnJhbWVzZXQiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci01PlBhcnNlIGVycm9yPC9hPi48L3A+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBoYXMgb25seSBvbmUgbm9kZSBvbiBpdCwgb3IgaWYgdGhlIHNlY29uZCBlbGVtZW50CisgICAgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTg+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gaXMgbm90IGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtYm9keS1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIGlnbm9yZSB0aGUKKyAgICB0b2tlbi4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFnbWVudC1jYXNlLTI+ZnJhZ21lbnQgY2FzZTwvYT4pPC9wPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTM+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gaXMgc2V0IHRvICJub3Qgb2siLCBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD5SZW1vdmUgdGhlIHNlY29uZCBlbGVtZW50IG9uIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy05PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGZyb20gaXRzIHBhcmVudAorICAgICBub2RlLCBpZiBpdCBoYXMgb25lLjxsaT48cD5Qb3AgYWxsIHRoZSBub2RlcyBmcm9tIHRoZSBib3R0b20gb2YgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTEwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCBmcm9tIHRoZQorICAgICA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9hPiB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIHRoZSByb290IDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWh0bWwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQuPC9wPgorCisgICAgIDxsaT48cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudD5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLjxsaT48cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0aW9uLW1vZGUtMz5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmZyYW1lc2V0IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2luZy1tYWluLWluZnJhbWVzZXQ+aW4KKyAgICAgZnJhbWVzZXQ8L2E+Ii48L3A+CisKKyAgICA8L29sPgorCisgICA8ZHQ+QW4gZW5kLW9mLWZpbGUgdG9rZW48ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzPnN0YWNrIG9mIHRlbXBsYXRlIGluc2VydGlvbiBtb2RlczwvYT4gaXMgbm90IGVtcHR5LCB0aGVuIHByb2Nlc3MgdGhlIHRva2VuCisgICAgPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnVzaW5nLXRoZS1ydWxlcy1mb3ItMj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRlbXBsYXRlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2luZy1tYWluLWludGVtcGxhdGU+aW4KKyAgICB0ZW1wbGF0ZTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0aW9uLW1vZGUtND5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisKKyAgICA8cD5PdGhlcndpc2UsIGZvbGxvdyB0aGVzZSBzdGVwczo8L3A+CisKKyAgICA8b2w+PGxpPjxwPklmIHRoZXJlIGlzIGEgbm9kZSBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMTE+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gdGhhdCBpcyBub3QgZWl0aGVyIGEKKyAgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZGQtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZC1lbGVtZW50PmRkPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1kdC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWR0LWVsZW1lbnQ+ZHQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1saS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWxpLWVsZW1lbnQ+bGk8L2E+PC9jb2RlPiBlbGVtZW50LCBhbgorICAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1vcHRncm91cC1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudD5vcHRncm91cDwvYT48L2NvZGU+IGVsZW1lbnQsIGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLW9wdGlvbi1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0aW9uLWVsZW1lbnQ+b3B0aW9uPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1wLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiBlbGVtZW50LCBhbgorICAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1ycC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJwLWVsZW1lbnQ+cnA8L2E+PC9jb2RlPiBlbGVtZW50LCBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1ydC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJ0LWVsZW1lbnQ+cnQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXRib2R5LWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+IGVsZW1lbnQsIGEKKyAgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGQtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ZC1lbGVtZW50PnRkPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10Zm9vdC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRmb290LWVsZW1lbnQ+dGZvb3Q8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXRoLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+IGVsZW1lbnQsIGEKKyAgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGhlYWQtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10aGVhZC1lbGVtZW50PnRoZWFkPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10ci1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGUgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtYm9keS1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50LCBvciB0aGUKKyAgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtaHRtbC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTY+cGFyc2UgZXJyb3I8L2E+LjxsaT48cD48YSBocmVmPSNzdG9wLXBhcnNpbmcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdG9wLXBhcnNpbmc+U3RvcCBwYXJzaW5nPC9hPi48L29sPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiYm9keSI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gZG9lcyBub3QgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1zY29wZT5oYXZlIGEgPGNvZGU+Ym9keTwvY29kZT4gZWxlbWVudCBpbiBzY29wZTwvYT4sIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTc+cGFyc2UgZXJyb3I8L2E+OworICAgIGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisKKworICAgIDxwPk90aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBub2RlIGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0xMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB0aGF0IGlzIG5vdCBlaXRoZXIgYQorICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWRkLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kZC1lbGVtZW50PmRkPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1kdC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZHQtZWxlbWVudD5kdDwvYT48L2NvZGU+IGVsZW1lbnQsIGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWxpLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1saS1lbGVtZW50PmxpPC9hPjwvY29kZT4gZWxlbWVudCwgYW4KKyAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1vcHRncm91cC1lbGVtZW50LTI+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1vcHRncm91cC1lbGVtZW50Pm9wdGdyb3VwPC9hPjwvY29kZT4gZWxlbWVudCwgYW4gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtb3B0aW9uLWVsZW1lbnQtMj48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGlvbi1lbGVtZW50Pm9wdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtcC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiBlbGVtZW50LCBhbgorICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXJwLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ycC1lbGVtZW50PnJwPC9hPjwvY29kZT4gZWxlbWVudCwgYW4gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtcnQtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJ0LWVsZW1lbnQ+cnQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXRib2R5LWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4gZWxlbWVudCwgYQorICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXRkLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ZC1lbGVtZW50PnRkPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10Zm9vdC1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGZvb3QtZWxlbWVudD50Zm9vdDwvYT48L2NvZGU+IGVsZW1lbnQsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGgtZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRoLWVsZW1lbnQ+dGg8L2E+PC9jb2RlPiBlbGVtZW50LCBhCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGhlYWQtZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRoZWFkLWVsZW1lbnQ+dGhlYWQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXRyLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWJvZHktZWxlbWVudC01PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT4gZWxlbWVudCwgb3IgdGhlCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtaHRtbC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTg+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworCisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0aW9uLW1vZGUtNT5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1hZnRlcmJvZHkgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzaW5nLW1haW4tYWZ0ZXJib2R5PmFmdGVyCisgICAgYm9keTwvYT4iLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImh0bWwiPGRkPgorCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMTQ+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gZG9lcyBub3QgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1zY29wZS0yPmhhdmUgYSA8Y29kZT5ib2R5PC9jb2RlPiBlbGVtZW50IGluIHNjb3BlPC9hPiwgdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItOT5wYXJzZSBlcnJvcjwvYT47CisgICAgaWdub3JlIHRoZSB0b2tlbi48L3A+CisKKworCisgICAgPHA+T3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIG5vZGUgaW4gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTE1PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHRoYXQgaXMgbm90IGVpdGhlciBhCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZGQtZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWRkLWVsZW1lbnQ+ZGQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWR0LWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kdC1lbGVtZW50PmR0PC9hPjwvY29kZT4gZWxlbWVudCwgYW4gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtbGktZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWxpLWVsZW1lbnQ+bGk8L2E+PC9jb2RlPiBlbGVtZW50LCBhbgorICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLW9wdGdyb3VwLWVsZW1lbnQtMz48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGdyb3VwLWVsZW1lbnQ+b3B0Z3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50LCBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1vcHRpb24tZWxlbWVudC0zPjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0aW9uLWVsZW1lbnQ+b3B0aW9uPC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1wLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+IGVsZW1lbnQsIGFuCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtcnAtZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXJwLWVsZW1lbnQ+cnA8L2E+PC9jb2RlPiBlbGVtZW50LCBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1ydC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcnQtZWxlbWVudD5ydDwvYT48L2NvZGU+IGVsZW1lbnQsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGJvZHktZWxlbWVudC0zPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiBlbGVtZW50LCBhCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGQtZWxlbWVudC0zPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRkLWVsZW1lbnQ+dGQ8L2E+PC9jb2RlPiBlbGVtZW50LCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXRmb290LWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Zm9vdC1lbGVtZW50PnRmb290PC9hPjwvY29kZT4gZWxlbWVudCwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10aC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+IGVsZW1lbnQsIGEKKyAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10aGVhZC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGhlYWQtZWxlbWVudD50aGVhZDwvYT48L2NvZGU+IGVsZW1lbnQsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdHItZWxlbWVudC0zPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGUgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtYm9keS1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50LCBvciB0aGUKKyAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1odG1sLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItMTA+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworCisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0aW9uLW1vZGUtNj5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1hZnRlcmJvZHkgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzaW5nLW1haW4tYWZ0ZXJib2R5LTI+YWZ0ZXIKKyAgICBib2R5PC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImFkZHJlc3MiLCAiYXJ0aWNsZSIsICJhc2lkZSIsICJibG9ja3F1b3RlIiwgImNlbnRlciIsCisgICAiZGV0YWlscyIsICJkaWFsb2ciLCAiZGlyIiwgImRpdiIsICJkbCIsICJmaWVsZHNldCIsICJmaWdjYXB0aW9uIiwgImZpZ3VyZSIsICJmb290ZXIiLCAiaGVhZGVyIiwKKyAgICJoZ3JvdXAiLCAibWFpbiIsICJtZW51IiwgIm5hdiIsICJvbCIsICJwIiwgInNlY3Rpb24iLCAic3VtbWFyeSIsICJ1bCI8ZGQ+CisKKworCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTE2PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZT5oYXMgYQorICAgIDxjb2RlPnA8L2NvZGU+IGVsZW1lbnQgaW4gYnV0dG9uIHNjb3BlPC9hPiwgdGhlbiA8YSBocmVmPSNjbG9zZS1hLXAtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmNsb3NlLWEtcC1lbGVtZW50PmNsb3NlIGEgPGNvZGU+cDwvY29kZT4KKyAgICBlbGVtZW50PC9hPi48L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiaDEiLCAiaDIiLCAiaDMiLCAiaDQiLAorICAgImg1IiwgImg2IjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0xNz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUtMj5oYXMgYQorICAgIDxjb2RlPnA8L2NvZGU+IGVsZW1lbnQgaW4gYnV0dG9uIHNjb3BlPC9hPiwgdGhlbiA8YSBocmVmPSNjbG9zZS1hLXAtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmNsb3NlLWEtcC1lbGVtZW50LTI+Y2xvc2UgYSA8Y29kZT5wPC9jb2RlPgorICAgIGVsZW1lbnQ8L2E+LjwvcD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cz5IVE1MIGVsZW1lbnQ8L2E+IHdob3NlCisgICAgdGFnIG5hbWUgaXMgb25lIG9mICJoMSIsICJoMiIsICJoMyIsICJoNCIsICJoNSIsIG9yICJoNiIsIHRoZW4gdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItMTE+cGFyc2UKKyAgICBlcnJvcjwvYT47IHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTM+Y3VycmVudCBub2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTE4PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMz5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogInByZSIsICJsaXN0aW5nIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0xOT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUtMz5oYXMKKyAgICBhIDxjb2RlPnA8L2NvZGU+IGVsZW1lbnQgaW4gYnV0dG9uIHNjb3BlPC9hPiwgdGhlbiA8YSBocmVmPSNjbG9zZS1hLXAtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmNsb3NlLWEtcC1lbGVtZW50LTM+Y2xvc2UgYSA8Y29kZT5wPC9jb2RlPgorICAgIGVsZW1lbnQ8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTQ+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jbmV4dC10b2tlbiBpZD1wYXJzaW5nLW1haW4taW5ib2R5Om5leHQtdG9rZW4+bmV4dCB0b2tlbjwvYT4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0CisgICAgdG9rZW4gYW5kIG1vdmUgb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXByZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXByZS1lbGVtZW50PnByZTwvYT48L2NvZGU+IGJsb2NrcyBhcmUgaWdub3JlZAorICAgIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pPC9wPgorCisKKworICAgIDxwPlNldCB0aGUgPGEgaHJlZj0jZnJhbWVzZXQtb2stZmxhZyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmZyYW1lc2V0LW9rLWZsYWctND5mcmFtZXNldC1vayBmbGFnPC9hPiB0byAibm90IG9rIi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiZm9ybSI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jZm9ybS1lbGVtZW50LXBvaW50ZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmb3JtLWVsZW1lbnQtcG9pbnRlcj48Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+IGlzIG5vdCBudWxsLCBhbmQgdGhlcmUgaXMKKyAgICBubyA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10ZW1wbGF0ZS1lbGVtZW50LTM+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTIwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCB0aGVuIHRoaXMgaXMgYQorICAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItMTI+cGFyc2UgZXJyb3I8L2E+OyBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMjE+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tYnV0dG9uLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aGFzLWFuLWVsZW1lbnQtaW4tYnV0dG9uLXNjb3BlLTQ+aGFzCisgICAgYSA8Y29kZT5wPC9jb2RlPiBlbGVtZW50IGluIGJ1dHRvbiBzY29wZTwvYT4sIHRoZW4gPGEgaHJlZj0jY2xvc2UtYS1wLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjbG9zZS1hLXAtZWxlbWVudC00PmNsb3NlIGEgPGNvZGU+cDwvY29kZT4KKyAgICBlbGVtZW50PC9hPi48L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC01Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4sIGFuZCwgaWYgdGhlcmUgaXMgbm8gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGVtcGxhdGUtZWxlbWVudC00PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPgorICAgIGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTIyPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCBzZXQgdGhlIDxhIGhyZWY9I2Zvcm0tZWxlbWVudC1wb2ludGVyIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Zm9ybS1lbGVtZW50LXBvaW50ZXItMj48Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+IHRvIHBvaW50IHRvIHRoZSBlbGVtZW50IGNyZWF0ZWQuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImxpIjxkZD4KKworICAgIDxwPlJ1biB0aGVzZSBzdGVwczo8L3A+CisKKyAgICA8b2w+PGxpPjxwPlNldCB0aGUgPGEgaHJlZj0jZnJhbWVzZXQtb2stZmxhZyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmZyYW1lc2V0LW9rLWZsYWctNT5mcmFtZXNldC1vayBmbGFnPC9hPiB0byAibm90IG9rIi48bGk+PHA+SW5pdGlhbGlzZSA8dmFyPm5vZGU8L3Zhcj4gdG8gYmUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS00PmN1cnJlbnQKKyAgICAgbm9kZTwvYT4gKHRoZSBib3R0b21tb3N0IG5vZGUgb2YgdGhlIHN0YWNrKS48bGk+CisKKyAgICAgIDxwPjxpPkxvb3A8L2k+OiBJZiA8dmFyPm5vZGU8L3Zhcj4gaXMgYW4gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtbGktZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWxpLWVsZW1lbnQ+bGk8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHJ1biB0aGVzZQorICAgICAgc3Vic3RlcHM6PC9wPgorCisgICAgICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzPkdlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3M8L2E+LCBleGNlcHQgZm9yIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWxpLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1saS1lbGVtZW50PmxpPC9hPjwvY29kZT4gZWxlbWVudHMuPGxpPjxwPklmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtNT5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1saS1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbGktZWxlbWVudD5saTwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gdGhpcyBpcyBhCisgICAgICAgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0xMz5wYXJzZSBlcnJvcjwvYT4uPGxpPjxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB1bnRpbCBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1saS1lbGVtZW50LTc+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbGktZWxlbWVudD5saTwvYT48L2NvZGU+CisgICAgICAgZWxlbWVudCBoYXMgYmVlbiBwb3BwZWQgZnJvbSB0aGUgc3RhY2suPGxpPjxwPkp1bXAgdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5kb25lPC9pPiBiZWxvdy48L29sPgorCisgICAgIDxsaT48cD5JZiA8dmFyPm5vZGU8L3Zhcj4gaXMgaW4gdGhlIDxhIGhyZWY9I3NwZWNpYWwgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzcGVjaWFsPnNwZWNpYWw8L2E+IGNhdGVnb3J5LCBidXQgaXMgbm90IGFuCisgICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWFkZHJlc3MtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hZGRyZXNzLWVsZW1lbnQ+YWRkcmVzczwvYT48L2NvZGU+LCA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1kaXYtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kaXYtZWxlbWVudD5kaXY8L2E+PC9jb2RlPiwgb3IgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtcC1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIGp1bXAgdG8gdGhlIHN0ZXAKKyAgICAgbGFiZWxlZCA8aT5kb25lPC9pPiBiZWxvdy48bGk+PHA+T3RoZXJ3aXNlLCBzZXQgPHZhcj5ub2RlPC92YXI+IHRvIHRoZSBwcmV2aW91cyBlbnRyeSBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMjQ+c3RhY2sgb2Ygb3BlbgorICAgICBlbGVtZW50czwvYT4gYW5kIHJldHVybiB0byB0aGUgc3RlcCBsYWJlbGVkIDxpPmxvb3A8L2k+LjxsaT48cD48aT5Eb25lPC9pPjogSWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI1PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZS01PmhhcyBhIDxjb2RlPnA8L2NvZGU+IGVsZW1lbnQgaW4gYnV0dG9uIHNjb3BlPC9hPiwgdGhlbiA8YSBocmVmPSNjbG9zZS1hLXAtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmNsb3NlLWEtcC1lbGVtZW50LTU+Y2xvc2UgYQorICAgICA8Y29kZT5wPC9jb2RlPiBlbGVtZW50PC9hPi48bGk+PHA+RmluYWxseSwgPGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtNj5pbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLjwvb2w+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJkZCIsICJkdCI8ZGQ+CisKKyAgICA8cD5SdW4gdGhlc2Ugc3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTY+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPGxpPjxwPkluaXRpYWxpc2UgPHZhcj5ub2RlPC92YXI+IHRvIGJlIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtNj5jdXJyZW50CisgICAgIG5vZGU8L2E+ICh0aGUgYm90dG9tbW9zdCBub2RlIG9mIHRoZSBzdGFjaykuPGxpPgorCisgICAgICA8cD48aT5Mb29wPC9pPjogSWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZGQtZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWRkLWVsZW1lbnQ+ZGQ8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHJ1biB0aGVzZQorICAgICAgc3Vic3RlcHM6PC9wPgorCisgICAgICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzLTI+R2VuZXJhdGUgaW1wbGllZCBlbmQgdGFnczwvYT4sIGV4Y2VwdCBmb3IgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZGQtZWxlbWVudC01PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWRkLWVsZW1lbnQ+ZGQ8L2E+PC9jb2RlPiBlbGVtZW50cy48bGk+PHA+SWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS03PmN1cnJlbnQgbm9kZTwvYT4gaXMgbm90IGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZGQtZWxlbWVudC02PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWRkLWVsZW1lbnQ+ZGQ8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYQorICAgICAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItMTQ+cGFyc2UgZXJyb3I8L2E+LjxsaT48cD5Qb3AgZWxlbWVudHMgZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMjY+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gdW50aWwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1kZC1lbGVtZW50LTc+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZGQtZWxlbWVudD5kZDwvYT48L2NvZGU+CisgICAgICAgZWxlbWVudCBoYXMgYmVlbiBwb3BwZWQgZnJvbSB0aGUgc3RhY2suPGxpPjxwPkp1bXAgdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5kb25lPC9pPiBiZWxvdy48L29sPgorCisgICAgIDxsaT4KKworICAgICAgPHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZHQtZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWR0LWVsZW1lbnQ+ZHQ8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHJ1biB0aGVzZSBzdWJzdGVwczo8L3A+CisKKyAgICAgIDxvbD48bGk+PHA+PGEgaHJlZj0jZ2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmdlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MtMz5HZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPiwgZXhjZXB0IGZvciA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1kdC1lbGVtZW50LTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZHQtZWxlbWVudD5kdDwvYT48L2NvZGU+IGVsZW1lbnRzLjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTg+Y3VycmVudCBub2RlPC9hPiBpcyBub3QgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1kdC1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZHQtZWxlbWVudD5kdDwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gdGhpcyBpcyBhCisgICAgICAgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0xNT5wYXJzZSBlcnJvcjwvYT4uPGxpPjxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yNz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB1bnRpbCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWR0LWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kdC1lbGVtZW50PmR0PC9hPjwvY29kZT4KKyAgICAgICBlbGVtZW50IGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZSBzdGFjay48bGk+PHA+SnVtcCB0byB0aGUgc3RlcCBsYWJlbGVkIDxpPmRvbmU8L2k+IGJlbG93Ljwvb2w+CisKKyAgICAgPGxpPjxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyBpbiB0aGUgPGEgaHJlZj0jc3BlY2lhbCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnNwZWNpYWwtMj5zcGVjaWFsPC9hPiBjYXRlZ29yeSwgYnV0IGlzIG5vdCBhbgorICAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1hZGRyZXNzLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hZGRyZXNzLWVsZW1lbnQ+YWRkcmVzczwvYT48L2NvZGU+LCA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1kaXYtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWRpdi1lbGVtZW50PmRpdjwvYT48L2NvZGU+LCBvciA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1wLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4ganVtcCB0byB0aGUgc3RlcAorICAgICBsYWJlbGVkIDxpPmRvbmU8L2k+IGJlbG93LjxsaT48cD5PdGhlcndpc2UsIHNldCA8dmFyPm5vZGU8L3Zhcj4gdG8gdGhlIHByZXZpb3VzIGVudHJ5IGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yOD5zdGFjayBvZiBvcGVuCisgICAgIGVsZW1lbnRzPC9hPiBhbmQgcmV0dXJuIHRvIHRoZSBzdGVwIGxhYmVsZWQgPGk+bG9vcDwvaT4uPGxpPjxwPjxpPkRvbmU8L2k+OiBJZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMjk+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tYnV0dG9uLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aGFzLWFuLWVsZW1lbnQtaW4tYnV0dG9uLXNjb3BlLTY+aGFzIGEgPGNvZGU+cDwvY29kZT4gZWxlbWVudCBpbiBidXR0b24gc2NvcGU8L2E+LCB0aGVuIDxhIGhyZWY9I2Nsb3NlLWEtcC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y2xvc2UtYS1wLWVsZW1lbnQtNj5jbG9zZSBhCisgICAgIDxjb2RlPnA8L2NvZGU+IGVsZW1lbnQ8L2E+LjxsaT48cD5GaW5hbGx5LCA8YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC03Pmluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9vbD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJwbGFpbnRleHQiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTMwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZS03PmhhcyBhCisgICAgPGNvZGU+cDwvY29kZT4gZWxlbWVudCBpbiBidXR0b24gc2NvcGU8L2E+LCB0aGVuIDxhIGhyZWY9I2Nsb3NlLWEtcC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y2xvc2UtYS1wLWVsZW1lbnQtNz5jbG9zZSBhIDxjb2RlPnA8L2NvZGU+CisgICAgZWxlbWVudDwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtOD5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPlN3aXRjaCB0aGUgdG9rZW5pemVyIHRvIHRoZSA8YSBocmVmPSNwbGFpbnRleHQtc3RhdGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwbGFpbnRleHQtc3RhdGU+UExBSU5URVhUIHN0YXRlPC9hPi48L3A+CisKKyAgICA8cCBjbGFzcz1ub3RlPk9uY2UgYSBzdGFydCB0YWcgd2l0aCB0aGUgdGFnIG5hbWUgInBsYWludGV4dCIgaGFzIGJlZW4gc2VlbiwgdGhhdCB3aWxsIGJlIHRoZQorICAgIGxhc3QgdG9rZW4gZXZlciBzZWVuIG90aGVyIHRoYW4gY2hhcmFjdGVyIHRva2VucyAoYW5kIHRoZSBlbmQtb2YtZmlsZSB0b2tlbiksIGJlY2F1c2UgdGhlcmUgaXMKKyAgICBubyB3YXkgdG8gc3dpdGNoIG91dCBvZiB0aGUgPGEgaHJlZj0jcGxhaW50ZXh0LXN0YXRlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGxhaW50ZXh0LXN0YXRlLTI+UExBSU5URVhUIHN0YXRlPC9hPi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiYnV0dG9uIjxkZD4KKworICAgIDxvbD48bGk+CisKKyAgICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zMT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLXNjb3BlLTM+aGFzIGEKKyAgICAgIDxjb2RlPmJ1dHRvbjwvY29kZT4gZWxlbWVudCBpbiBzY29wZTwvYT4sIHRoZW4gcnVuIHRoZXNlIHN1YnN0ZXBzOjwvcD4KKworICAgICAgPG9sPjxsaT48cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTE2PlBhcnNlIGVycm9yPC9hPi48bGk+PHA+PGEgaHJlZj0jZ2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmdlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MtND5HZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPi48bGk+PHA+UG9wIGVsZW1lbnRzIGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTMyPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtYnV0dG9uLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1idXR0b24tZWxlbWVudD5idXR0b248L2E+PC9jb2RlPgorICAgICAgIGVsZW1lbnQgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlIHN0YWNrLjwvb2w+CisKKyAgICAgPGxpPjxwPjxhIGhyZWY9I3JlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnJlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0zPlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48bGk+PHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtOT5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLjxsaT48cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTc+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPC9vbD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYWRkcmVzcyIsICJhcnRpY2xlIiwgImFzaWRlIiwgImJsb2NrcXVvdGUiLCAiYnV0dG9uIiwKKyAgICJjZW50ZXIiLCAiZGV0YWlscyIsICJkaWFsb2ciLCAiZGlyIiwgImRpdiIsICJkbCIsICJmaWVsZHNldCIsICJmaWdjYXB0aW9uIiwgImZpZ3VyZSIsICJmb290ZXIiLAorICAgImhlYWRlciIsICJoZ3JvdXAiLCAibGlzdGluZyIsICJtYWluIiwgIm1lbnUiLCAibmF2IiwgIm9sIiwgInByZSIsICJzZWN0aW9uIiwgInN1bW1hcnkiLAorICAgInVsIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLXNjb3BlLTQ+aGF2ZSBhbiBlbGVtZW50IGluIHNjb3BlPC9hPiB0aGF0IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy0yPkhUTUwKKyAgICBlbGVtZW50PC9hPiB3aXRoIHRoZSBzYW1lIHRhZyBuYW1lIGFzIHRoYXQgb2YgdGhlIHRva2VuLCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTE3PnBhcnNlCisgICAgZXJyb3I8L2E+OyBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgcnVuIHRoZXNlIHN0ZXBzOjwvcD4KKworICAgIDxvbD48bGk+PHA+PGEgaHJlZj0jZ2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmdlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MtNT5HZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPi48bGk+PHA+SWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS05PmN1cnJlbnQgbm9kZTwvYT4gaXMgbm90IGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy0zPkhUTUwgZWxlbWVudDwvYT4gd2l0aAorICAgICB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGF0IG9mIHRoZSB0b2tlbiwgdGhlbiB0aGlzIGlzIGEKKyAgICAgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0xOD5wYXJzZSBlcnJvcjwvYT4uPGxpPjxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB1bnRpbCBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omh0bWwtZWxlbWVudHMtND5IVE1MIGVsZW1lbnQ8L2E+IHdpdGggdGhlIHNhbWUgdGFnIG5hbWUgYXMgdGhlIHRva2VuIGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZQorICAgICBzdGFjay48L29sPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiZm9ybSI8ZGQ+CisKKyAgICA8cD5JZiB0aGVyZSBpcyBubyA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10ZW1wbGF0ZS1lbGVtZW50LTU+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTM1PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCB0aGVuCisgICAgcnVuIHRoZXNlIHN1YnN0ZXBzOjwvcD4KKworICAgIDxvbD48bGk+PHA+TGV0IDx2YXI+bm9kZTwvdmFyPiBiZSB0aGUgZWxlbWVudCB0aGF0IHRoZSA8YSBocmVmPSNmb3JtLWVsZW1lbnQtcG9pbnRlciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmZvcm0tZWxlbWVudC1wb2ludGVyLTM+PGNvZGU+Zm9ybTwvY29kZT4KKyAgICAgZWxlbWVudCBwb2ludGVyPC9hPiBpcyBzZXQgdG8sIG9yIG51bGwgaWYgaXQgaXMgbm90IHNldCB0byBhbiBlbGVtZW50LjxsaT48cD5TZXQgdGhlIDxhIGhyZWY9I2Zvcm0tZWxlbWVudC1wb2ludGVyIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Zm9ybS1lbGVtZW50LXBvaW50ZXItND48Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+IHRvIG51bGwuPGxpPjxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyBudWxsIG9yIGlmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zNj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzCisgICAgIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLXNjb3BlLTU+aGF2ZSA8dmFyPm5vZGU8L3Zhcj4gaW4gc2NvcGU8L2E+LCB0aGVuCisgICAgIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTE5PnBhcnNlIGVycm9yPC9hPjsgYWJvcnQgdGhlc2Ugc3RlcHMgYW5kIGlnbm9yZSB0aGUgdG9rZW4uPGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzLTY+R2VuZXJhdGUgaW1wbGllZCBlbmQgdGFnczwvYT4uPGxpPjxwPklmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMTA+Y3VycmVudCBub2RlPC9hPiBpcyBub3QgPHZhcj5ub2RlPC92YXI+LCB0aGVuIHRoaXMgaXMgYQorICAgICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTIwPnBhcnNlIGVycm9yPC9hPi48bGk+PHA+UmVtb3ZlIDx2YXI+bm9kZTwvdmFyPiBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zNz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48L29sPgorCisgICAgPHA+SWYgdGhlcmUgPGVtPmlzPC9lbT4gYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10ZW1wbGF0ZS1lbGVtZW50LTY+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTM4PnN0YWNrIG9mIG9wZW4KKyAgICBlbGVtZW50czwvYT4sIHRoZW4gcnVuIHRoZXNlIHN1YnN0ZXBzIGluc3RlYWQ6PC9wPgorCisgICAgPG9sPjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMzk+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gZG9lcyBub3QgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1zY29wZS02PmhhdmUgYSA8Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50IGluIHNjb3BlPC9hPiwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0yMT5wYXJzZQorICAgICBlcnJvcjwvYT47IGFib3J0IHRoZXNlIHN0ZXBzIGFuZCBpZ25vcmUgdGhlIHRva2VuLjxsaT48cD48YSBocmVmPSNnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Z2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncy03PkdlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3M8L2E+LjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTExPmN1cnJlbnQgbm9kZTwvYT4gaXMgbm90IGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZm9ybS1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtZm9ybS1lbGVtZW50PmZvcm08L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYQorICAgICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTIyPnBhcnNlIGVycm9yPC9hPi48bGk+PHA+UG9wIGVsZW1lbnRzIGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTQwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtZm9ybS1lbGVtZW50LTI+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1mb3JtLWVsZW1lbnQ+Zm9ybTwvYT48L2NvZGU+CisgICAgIGVsZW1lbnQgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlIHN0YWNrLjwvb2w+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJwIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00MT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUtOD5oYXZlIGEgPGNvZGU+cDwvY29kZT4gZWxlbWVudCBpbiBidXR0b24gc2NvcGU8L2E+LCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTIzPnBhcnNlCisgICAgZXJyb3I8L2E+OyA8YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0xMD5pbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgYSAicCIgc3RhcnQgdGFnIHRva2VuIHdpdGggbm8KKyAgICBhdHRyaWJ1dGVzLjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2Nsb3NlLWEtcC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y2xvc2UtYS1wLWVsZW1lbnQtOD5DbG9zZSBhIDxjb2RlPnA8L2NvZGU+IGVsZW1lbnQ8L2E+LjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImxpIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00Mj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1saXN0LWl0ZW0tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1saXN0LWl0ZW0tc2NvcGU+aGF2ZSBhbiA8Y29kZT5saTwvY29kZT4gZWxlbWVudCBpbiBsaXN0IGl0ZW0gc2NvcGU8L2E+LCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTI0PnBhcnNlCisgICAgZXJyb3I8L2E+OyBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgcnVuIHRoZXNlIHN0ZXBzOjwvcD4KKworICAgIDxvbD48bGk+PHA+PGEgaHJlZj0jZ2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmdlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MtOD5HZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPiwgZXhjZXB0IGZvciA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1saS1lbGVtZW50LTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbGktZWxlbWVudD5saTwvYT48L2NvZGU+IGVsZW1lbnRzLjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTEyPmN1cnJlbnQgbm9kZTwvYT4gaXMgbm90IGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWxpLWVsZW1lbnQtOT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1saS1lbGVtZW50PmxpPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiB0aGlzIGlzIGEKKyAgICAgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0yNT5wYXJzZSBlcnJvcjwvYT4uPGxpPjxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00Mz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB1bnRpbCBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1saS1lbGVtZW50LTEwPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWxpLWVsZW1lbnQ+bGk8L2E+PC9jb2RlPgorICAgICBlbGVtZW50IGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZSBzdGFjay48L29sPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJkZCIsICJkdCI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNDQ+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gZG9lcyBub3QgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1zY29wZS03PmhhdmUgYW4gZWxlbWVudCBpbiBzY29wZTwvYT4gdGhhdCBpcyBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omh0bWwtZWxlbWVudHMtNT5IVE1MCisgICAgZWxlbWVudDwvYT4gd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGF0IG9mIHRoZSB0b2tlbiwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0yNj5wYXJzZQorICAgIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIHJ1biB0aGVzZSBzdGVwczo8L3A+CisKKyAgICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzLTk+R2VuZXJhdGUgaW1wbGllZCBlbmQgdGFnczwvYT4sIGV4Y2VwdCBmb3IgPGEgaWQ9cGFyc2luZy1tYWluLWluYm9keTpodG1sLWVsZW1lbnRzLTYgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHM+SFRNTCBlbGVtZW50czwvYT4gd2l0aCB0aGUKKyAgICAgc2FtZSB0YWcgbmFtZSBhcyB0aGUgdG9rZW4uPGxpPjxwPklmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMTM+Y3VycmVudCBub2RlPC9hPiBpcyBub3QgYW4gPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpodG1sLWVsZW1lbnRzLTc+SFRNTAorICAgICBlbGVtZW50PC9hPiB3aXRoIHRoZSBzYW1lIHRhZyBuYW1lIGFzIHRoYXQgb2YgdGhlIHRva2VuLCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTI3PnBhcnNlCisgICAgIGVycm9yPC9hPi48bGk+PHA+UG9wIGVsZW1lbnRzIGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTQ1PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy04PkhUTUwgZWxlbWVudDwvYT4gd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGUgdG9rZW4gaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlCisgICAgIHN0YWNrLjwvb2w+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImgxIiwgImgyIiwgImgzIiwgImg0IiwgImg1IiwgImg2IjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00Nj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLXNjb3BlLTg+aGF2ZSBhbiBlbGVtZW50IGluIHNjb3BlPC9hPiB0aGF0IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy05PkhUTUwKKyAgICBlbGVtZW50PC9hPiBhbmQgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mICJoMSIsICJoMiIsICJoMyIsICJoNCIsICJoNSIsIG9yICJoNiIsIHRoZW4gdGhpcyBpcworICAgIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0yOD5wYXJzZSBlcnJvcjwvYT47IGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlLCBydW4gdGhlc2Ugc3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD48YSBocmVmPSNnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Z2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncy0xMD5HZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPi48bGk+PHA+SWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0xND5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omh0bWwtZWxlbWVudHMtMTA+SFRNTAorICAgICBlbGVtZW50PC9hPiB3aXRoIHRoZSBzYW1lIHRhZyBuYW1lIGFzIHRoYXQgb2YgdGhlIHRva2VuLCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTI5PnBhcnNlCisgICAgIGVycm9yPC9hPi48bGk+PHA+UG9wIGVsZW1lbnRzIGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTQ3PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy0xMT5IVE1MIGVsZW1lbnQ8L2E+IHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZiAiaDEiLCAiaDIiLCAiaDMiLCAiaDQiLCAiaDUiLCBvciAiaDYiCisgICAgIGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZSBzdGFjay48L29sPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAic2FyY2FzbSI8ZGQ+CisgICAgPHA+VGFrZSBhIGRlZXAgYnJlYXRoLCB0aGVuIGFjdCBhcyBkZXNjcmliZWQgaW4gdGhlICJhbnkgb3RoZXIgZW5kCisgICAgdGFnIiBlbnRyeSBiZWxvdy48L3A+CisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImEiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzPmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+IGNvbnRhaW5zIGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWEtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hLWVsZW1lbnQ+YTwvYT48L2NvZGU+IGVsZW1lbnQKKyAgICBiZXR3ZWVuIHRoZSBlbmQgb2YgdGhlIGxpc3QgYW5kIHRoZSBsYXN0IDxhIGhyZWY9I2NvbmNlcHQtcGFyc2VyLW1hcmtlciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmNvbmNlcHQtcGFyc2VyLW1hcmtlcj5tYXJrZXI8L2E+IG9uCisgICAgdGhlIGxpc3QgKG9yIHRoZSBzdGFydCBvZiB0aGUgbGlzdCBpZiB0aGVyZSBpcyBubyA8YSBocmVmPSNjb25jZXB0LXBhcnNlci1tYXJrZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjb25jZXB0LXBhcnNlci1tYXJrZXItMj5tYXJrZXI8L2E+IG9uIHRoZSBsaXN0KSwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0zMD5wYXJzZQorICAgIGVycm9yPC9hPjsgcnVuIHRoZSA8YSBocmVmPSNhZG9wdGlvbi1hZ2VuY3ktYWxnb3JpdGhtIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6YWRvcHRpb24tYWdlbmN5LWFsZ29yaXRobT5hZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtPC9hPiBmb3IgdGhlIHRhZyBuYW1lICJhIiwgdGhlbiByZW1vdmUKKyAgICB0aGF0IGVsZW1lbnQgZnJvbSB0aGUgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMj5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiBhbmQgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTQ4PnN0YWNrIG9mCisgICAgb3BlbiBlbGVtZW50czwvYT4gaWYgdGhlIDxhIGhyZWY9I2Fkb3B0aW9uLWFnZW5jeS1hbGdvcml0aG0gaWQ9cGFyc2luZy1tYWluLWluYm9keTphZG9wdGlvbi1hZ2VuY3ktYWxnb3JpdGhtLTI+YWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobTwvYT4gZGlkbid0IGFscmVhZHkgcmVtb3ZlIGl0IChpdAorICAgIG1pZ2h0IG5vdCBoYXZlIGlmIHRoZSBlbGVtZW50IGlzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlPmluIHRhYmxlCisgICAgc2NvcGU8L2E+KS48L3A+CisKKyAgICA8cCBjbGFzcz1leGFtcGxlPkluIHRoZSBub24tY29uZm9ybWluZyBzdHJlYW0KKyAgICA8Y29kZT4mbHQ7YSBocmVmPSJhIj5hJmx0O3RhYmxlPiZsdDthIGhyZWY9ImIiPmImbHQ7L3RhYmxlPng8L2NvZGU+LCB0aGUgZmlyc3QKKyAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1hLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hLWVsZW1lbnQ+YTwvYT48L2NvZGU+IGVsZW1lbnQgd291bGQgYmUgY2xvc2VkIHVwb24gc2VlaW5nIHRoZSBzZWNvbmQgb25lLCBhbmQgdGhlICJ4IiBjaGFyYWN0ZXIgd291bGQKKyAgICBiZSBpbnNpZGUgYSBsaW5rIHRvICJiIiwgbm90IHRvICJhIi4gVGhpcyBpcyBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgdGhlIG91dGVyIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWEtZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWEtZWxlbWVudD5hPC9hPjwvY29kZT4KKyAgICBlbGVtZW50IGlzIG5vdCBpbiB0YWJsZSBzY29wZSAobWVhbmluZyB0aGF0IGEgcmVndWxhciA8Y29kZT4mbHQ7L2E+PC9jb2RlPiBlbmQgdGFnIGF0IHRoZSBzdGFydAorICAgIG9mIHRoZSB0YWJsZSB3b3VsZG4ndCBjbG9zZSB0aGUgb3V0ZXIgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtYS1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYS1lbGVtZW50PmE8L2E+PC9jb2RlPiBlbGVtZW50KS4gVGhlIHJlc3VsdCBpcyB0aGF0IHRoZSB0d28KKyAgICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1hLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1hLWVsZW1lbnQ+YTwvYT48L2NvZGU+IGVsZW1lbnRzIGFyZSBpbmRpcmVjdGx5IG5lc3RlZCBpbnNpZGUgZWFjaCBvdGhlciDigJQgbm9uLWNvbmZvcm1pbmcgbWFya3VwCisgICAgd2lsbCBvZnRlbiByZXN1bHQgaW4gbm9uLWNvbmZvcm1pbmcgRE9NcyB3aGVuIHBhcnNlZC48L3A+CisKKyAgICA8cD48YSBocmVmPSNyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtND5SZWNvbnN0cnVjdCB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMTE+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi4gPGEgaHJlZj0jcHVzaC1vbnRvLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cHVzaC1vbnRvLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzPlB1c2ggb250byB0aGUgbGlzdCBvZiBhY3RpdmUKKyAgICBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiB0aGF0IGVsZW1lbnQuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYiIsICJiaWciLCAiY29kZSIsICJlbSIsCisgICAiZm9udCIsICJpIiwgInMiLCAic21hbGwiLCAic3RyaWtlIiwgInN0cm9uZyIsICJ0dCIsICJ1IjxkZD4KKworICAgIDxwPjxhIGhyZWY9I3JlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnJlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy01PlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0xMj5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLiA8YSBocmVmPSNwdXNoLW9udG8tdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwdXNoLW9udG8tdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMj5QdXNoIG9udG8gdGhlIGxpc3Qgb2YgYWN0aXZlCisgICAgZm9ybWF0dGluZyBlbGVtZW50czwvYT4gdGhhdCBlbGVtZW50LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJub2JyIjxkZD4KKworICAgIDxwPjxhIGhyZWY9I3JlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnJlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy02PlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNDk+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1zY29wZS05PmhhcyBhCisgICAgPGNvZGU+bm9icjwvY29kZT4gZWxlbWVudCBpbiBzY29wZTwvYT4sIHRoZW4gdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItMzE+cGFyc2UgZXJyb3I8L2E+OyBydW4gdGhlCisgICAgPGEgaHJlZj0jYWRvcHRpb24tYWdlbmN5LWFsZ29yaXRobSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmFkb3B0aW9uLWFnZW5jeS1hbGdvcml0aG0tMz5hZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtPC9hPiBmb3IgdGhlIHRhZyBuYW1lICJub2JyIiwgdGhlbiBvbmNlIGFnYWluCisgICAgPGEgaHJlZj0jcmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTc+cmVjb25zdHJ1Y3QgdGhlIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiwgaWYgYW55LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTEzPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uIDxhIGhyZWY9I3B1c2gtb250by10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnB1c2gtb250by10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0zPlB1c2ggb250byB0aGUgbGlzdCBvZiBhY3RpdmUKKyAgICBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiB0aGF0IGVsZW1lbnQuPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJhIiwKKyAgICJiIiwgImJpZyIsICJjb2RlIiwgImVtIiwgImZvbnQiLCAiaSIsICJub2JyIiwgInMiLCAic21hbGwiLAorICAgInN0cmlrZSIsICJzdHJvbmciLCAidHQiLCAidSI8ZGQ+CisKKyAgICA8cD5SdW4gdGhlIDxhIGhyZWY9I2Fkb3B0aW9uLWFnZW5jeS1hbGdvcml0aG0gaWQ9cGFyc2luZy1tYWluLWluYm9keTphZG9wdGlvbi1hZ2VuY3ktYWxnb3JpdGhtLTQ+YWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobTwvYT4gZm9yIHRoZSB0b2tlbidzIHRhZyBuYW1lLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImFwcGxldCIsICJtYXJxdWVlIiwgIm9iamVjdCI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtOD5SZWNvbnN0cnVjdCB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMTQ+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5JbnNlcnQgYSA8YSBocmVmPSNjb25jZXB0LXBhcnNlci1tYXJrZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjb25jZXB0LXBhcnNlci1tYXJrZXItMz5tYXJrZXI8L2E+IGF0IHRoZSBlbmQgb2YgdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTM+bGlzdCBvZgorICAgIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTg+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB0b2tlbiB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJhcHBsZXQiLCAibWFycXVlZSIsICJvYmplY3QiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTUwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUtMTA+aGF2ZSBhbiBlbGVtZW50IGluIHNjb3BlPC9hPiB0aGF0IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy0xMj5IVE1MCisgICAgZWxlbWVudDwvYT4gd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGF0IG9mIHRoZSB0b2tlbiwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0zMj5wYXJzZQorICAgIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIHJ1biB0aGVzZSBzdGVwczo8L3A+CisKKyAgICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzLTExPkdlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3M8L2E+LjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTE1PmN1cnJlbnQgbm9kZTwvYT4gaXMgbm90IGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy0xMz5IVE1MCisgICAgIGVsZW1lbnQ8L2E+IHdpdGggdGhlIHNhbWUgdGFnIG5hbWUgYXMgdGhhdCBvZiB0aGUgdG9rZW4sIHRoZW4gdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItMzM+cGFyc2UKKyAgICAgZXJyb3I8L2E+LjxsaT48cD5Qb3AgZWxlbWVudHMgZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNTE+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gdW50aWwgYW4gPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpodG1sLWVsZW1lbnRzLTE0PkhUTUwgZWxlbWVudDwvYT4gd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGUgdG9rZW4gaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlCisgICAgIHN0YWNrLjxsaT48YSBocmVmPSNjbGVhci10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy11cC10by10aGUtbGFzdC1tYXJrZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjbGVhci10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy11cC10by10aGUtbGFzdC1tYXJrZXI+Q2xlYXIgdGhlIGxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyPC9hPi48L29sPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRhYmxlIjxkZD4KKworICAgIDxwPklmIHRoZSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmRvY3VtZW50PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBpcyA8ZW0+bm90PC9lbT4gc2V0IHRvIDxhIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cXVpcmtzLW1vZGUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3F1aXJrcy1tb2RlPnF1aXJrcyBtb2RlPC9hPiwgYW5kIHRoZQorICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTUyPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZS05PmhhcyBhCisgICAgPGNvZGU+cDwvY29kZT4gZWxlbWVudCBpbiBidXR0b24gc2NvcGU8L2E+LCB0aGVuIDxhIGhyZWY9I2Nsb3NlLWEtcC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y2xvc2UtYS1wLWVsZW1lbnQtOT5jbG9zZSBhIDxjb2RlPnA8L2NvZGU+CisgICAgZWxlbWVudDwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMTU+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTk+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydGlvbi1tb2RlLTc+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNpbmctbWFpbi1pbnRhYmxlPmluCisgICAgdGFibGU8L2E+Ii48L3A+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJiciI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTM0PlBhcnNlIGVycm9yPC9hPi4gRHJvcCB0aGUgYXR0cmlidXRlcyBmcm9tIHRoZSB0b2tlbiwgYW5kIGFjdCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgbmV4dCBlbnRyeTsgaS5lLiBhY3QgYXMgaWYgdGhpcyB3YXMgYSAiYnIiIHN0YXJ0IHRhZyB0b2tlbiB3aXRoIG5vIGF0dHJpYnV0ZXMsIHJhdGhlciB0aGFuIHRoZQorICAgIGVuZCB0YWcgdG9rZW4gdGhhdCBpdCBhY3R1YWxseSBpcy48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJhcmVhIiwgImJyIiwgImVtYmVkIiwKKyAgICJpbWciLCAia2V5Z2VuIiwgIndiciI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtOT5SZWNvbnN0cnVjdCB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMTY+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi4gSW1tZWRpYXRlbHkgcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMTY+Y3VycmVudAorICAgIG5vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNTM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jYWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTphY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZz5BY2tub3dsZWRnZSB0aGUgdG9rZW4ncyA8aT5zZWxmLWNsb3NpbmcKKyAgICBmbGFnPC9pPjwvYT4sIGlmIGl0IGlzIHNldC48L3A+CisKKyAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTEwPmZyYW1lc2V0LW9rIGZsYWc8L2E+IHRvICJub3Qgb2siLjwvcD4KKworCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImlucHV0IjxkZD4KKworICAgIDxwPjxhIGhyZWY9I3JlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnJlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0xMD5SZWNvbnN0cnVjdCB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMTc+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi4gSW1tZWRpYXRlbHkgcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMTc+Y3VycmVudAorICAgIG5vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNTQ+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jYWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTphY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZy0yPkFja25vd2xlZGdlIHRoZSB0b2tlbidzIDxpPnNlbGYtY2xvc2luZworICAgIGZsYWc8L2k+PC9hPiwgaWYgaXQgaXMgc2V0LjwvcD4KKworICAgIDxwPklmIHRoZSB0b2tlbiBkb2VzIG5vdCBoYXZlIGFuIGF0dHJpYnV0ZSB3aXRoIHRoZSBuYW1lICJ0eXBlIiwgb3IgaWYgaXQgZG9lcywgYnV0IHRoYXQKKyAgICBhdHRyaWJ1dGUncyB2YWx1ZSBpcyBub3QgYW4gPGEgaWQ9cGFyc2luZy1tYWluLWluYm9keTphc2NpaS1jYXNlLWluc2Vuc2l0aXZlIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNhc2NpaS1jYXNlLWluc2Vuc2l0aXZlPkFTQ0lJIGNhc2UtaW5zZW5zaXRpdmU8L2E+IG1hdGNoIGZvciB0aGUgc3RyaW5nICI8Y29kZT5oaWRkZW48L2NvZGU+IiwgdGhlbjogc2V0IHRoZSA8YSBocmVmPSNmcmFtZXNldC1vay1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6ZnJhbWVzZXQtb2stZmxhZy0xMT5mcmFtZXNldC1vayBmbGFnPC9hPiB0byAibm90IG9rIi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJtZW51aXRlbSIsICJwYXJhbSIsICJzb3VyY2UiLCAidHJhY2siPGRkPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMTg+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi4gSW1tZWRpYXRlbHkgcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMTg+Y3VycmVudAorICAgIG5vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNTU+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jYWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTphY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZy0zPkFja25vd2xlZGdlIHRoZSB0b2tlbidzIDxpPnNlbGYtY2xvc2luZworICAgIGZsYWc8L2k+PC9hPiwgaWYgaXQgaXMgc2V0LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJociI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNTY+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tYnV0dG9uLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aGFzLWFuLWVsZW1lbnQtaW4tYnV0dG9uLXNjb3BlLTEwPmhhcyBhCisgICAgPGNvZGU+cDwvY29kZT4gZWxlbWVudCBpbiBidXR0b24gc2NvcGU8L2E+LCB0aGVuIDxhIGhyZWY9I2Nsb3NlLWEtcC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y2xvc2UtYS1wLWVsZW1lbnQtMTA+Y2xvc2UgYSA8Y29kZT5wPC9jb2RlPgorICAgIGVsZW1lbnQ8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTE5Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uIEltbWVkaWF0ZWx5IHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTE5PmN1cnJlbnQKKyAgICBub2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTU3PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2Fja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6YWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWctND5BY2tub3dsZWRnZSB0aGUgdG9rZW4ncyA8aT5zZWxmLWNsb3NpbmcKKyAgICBmbGFnPC9pPjwvYT4sIGlmIGl0IGlzIHNldC48L3A+CisKKyAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTEyPmZyYW1lc2V0LW9rIGZsYWc8L2E+IHRvICJub3Qgb2siLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJpbWFnZSI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTM1PlBhcnNlIGVycm9yPC9hPi4gQ2hhbmdlIHRoZSB0b2tlbidzIHRhZyBuYW1lIHRvICJpbWciIGFuZCByZXByb2Nlc3MgaXQuIChEb24ndAorICAgIGFzay4pPC9wPgorICAgPGR0IGlkPWlzaW5kZXg+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImlzaW5kZXgiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci0zNj5QYXJzZSBlcnJvcjwvYT4uPC9wPgorCisgICAgPHA+SWYgdGhlcmUgaXMgbm8gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGVtcGxhdGUtZWxlbWVudC03PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiBlbGVtZW50IG9uIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy01OD5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBhbmQKKyAgICB0aGUgPGEgaHJlZj0jZm9ybS1lbGVtZW50LXBvaW50ZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmb3JtLWVsZW1lbnQtcG9pbnRlci01Pjxjb2RlPmZvcm08L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4gaXMgbm90IG51bGwsIHRoZW4gaWdub3JlIHRoZQorICAgIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKyAgICA8cD48YSBocmVmPSNhY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmFja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnLTU+QWNrbm93bGVkZ2UgdGhlIHRva2VuJ3MgPGk+c2VsZi1jbG9zaW5nCisgICAgZmxhZzwvaT48L2E+LCBpZiBpdCBpcyBzZXQuPC9wPgorCisgICAgPHA+U2V0IHRoZSA8YSBocmVmPSNmcmFtZXNldC1vay1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6ZnJhbWVzZXQtb2stZmxhZy0xMz5mcmFtZXNldC1vayBmbGFnPC9hPiB0byAibm90IG9rIi48L3A+CisKKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy01OT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGUtMTE+aGFzIGEKKyAgICA8Y29kZT5wPC9jb2RlPiBlbGVtZW50IGluIGJ1dHRvbiBzY29wZTwvYT4sIHRoZW4gPGEgaHJlZj0jY2xvc2UtYS1wLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjbG9zZS1hLXAtZWxlbWVudC0xMT5jbG9zZSBhIDxjb2RlPnA8L2NvZGU+CisgICAgZWxlbWVudDwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMjA+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIGEgImZvcm0iIHN0YXJ0IHRhZyB0b2tlbiB3aXRoIG5vIGF0dHJpYnV0ZXMsIGFuZCwgaWYKKyAgICB0aGVyZSBpcyBubyA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10ZW1wbGF0ZS1lbGVtZW50LTg+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTYwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCBzZXQgdGhlCisgICAgPGEgaHJlZj0jZm9ybS1lbGVtZW50LXBvaW50ZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmb3JtLWVsZW1lbnQtcG9pbnRlci02Pjxjb2RlPmZvcm08L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4gdG8gcG9pbnQgdG8gdGhlIGVsZW1lbnQKKyAgICBjcmVhdGVkLjwvcD4KKworICAgIDxwPklmIHRoZSB0b2tlbiBoYXMgYW4gYXR0cmlidXRlIGNhbGxlZCAiYWN0aW9uIiwgc2V0IHRoZSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmF0dHItZnMtYWN0aW9uPjxhIGhyZWY9Zm9ybXMuaHRtbCNhdHRyLWZzLWFjdGlvbj5hY3Rpb248L2E+PC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlIHJlc3VsdGluZyA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1mb3JtLWVsZW1lbnQtMz48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudD5mb3JtPC9hPjwvY29kZT4gZWxlbWVudCB0byB0aGUKKyAgICB2YWx1ZSBvZiB0aGUgImFjdGlvbiIgYXR0cmlidXRlIG9mIHRoZSB0b2tlbi48L3A+CisKKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTIxPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciBhbiAiaHIiIHN0YXJ0IHRhZyB0b2tlbiB3aXRoIG5vIGF0dHJpYnV0ZXMuCisgICAgSW1tZWRpYXRlbHkgcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMjA+Y3VycmVudCBub2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTYxPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworCisgICAgPHA+PGEgaHJlZj0jcmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTExPlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yMj5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgYSAibGFiZWwiIHN0YXJ0IHRhZyB0b2tlbiB3aXRoIG5vIGF0dHJpYnV0ZXMuPC9wPgorCisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jaGFyYWN0ZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYS1jaGFyYWN0ZXItMz5JbnNlcnQgY2hhcmFjdGVyczwvYT4gKHNlZSBiZWxvdyBmb3IgPGEgaHJlZj0jYXR0ci1pc2luZGV4LXByb21wdCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmF0dHItaXNpbmRleC1wcm9tcHQ+d2hhdCB0aGV5IHNob3VsZCBzYXk8L2E+KS48L3A+CisKKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTIzPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciBhbiAiaW5wdXQiIHN0YXJ0IHRhZyB0b2tlbiB3aXRoIGFsbCB0aGUgYXR0cmlidXRlcworICAgIGZyb20gdGhlICJpc2luZGV4IiB0b2tlbiBleGNlcHQgIm5hbWUiLCAiYWN0aW9uIiwgYW5kICJwcm9tcHQiLCBhbmQgd2l0aCBhbiBhdHRyaWJ1dGUgbmFtZWQKKyAgICAibmFtZSIgd2l0aCB0aGUgdmFsdWUgImlzaW5kZXgiLiAoVGhpcyBjcmVhdGVzIGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWlucHV0LWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1pbnB1dC1lbGVtZW50PmlucHV0PC9hPjwvY29kZT4gZWxlbWVudCB3aXRoIHRoZSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmF0dHItZmUtbmFtZT48YSBocmVmPWZvcm1zLmh0bWwjYXR0ci1mZS1uYW1lPm5hbWU8L2E+PC9jb2RlPiBhdHRyaWJ1dGUgc2V0IHRvIHRoZSBtYWdpYyB2YWx1ZSAiPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTphdHRyLWZlLW5hbWUtaXNpbmRleD48YSBocmVmPWZvcm1zLmh0bWwjYXR0ci1mZS1uYW1lLWlzaW5kZXg+aXNpbmRleDwvYT48L2NvZGU+Ii4pIEltbWVkaWF0ZWx5IHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTIxPmN1cnJlbnQgbm9kZTwvYT4gb2ZmCisgICAgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTYyPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY2hhcmFjdGVyIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWEtY2hhcmFjdGVyLTQ+SW5zZXJ0IG1vcmUgY2hhcmFjdGVyczwvYT4gKHNlZSBiZWxvdyBmb3IgPGEgaHJlZj0jYXR0ci1pc2luZGV4LXByb21wdCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmF0dHItaXNpbmRleC1wcm9tcHQtMj53aGF0IHRoZXkgc2hvdWxkIHNheTwvYT4pLjwvcD4KKworCisgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMjI+Y3VycmVudCBub2RlPC9hPiAod2hpY2ggd2lsbCBiZSB0aGUgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtbGFiZWwtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWxhYmVsLWVsZW1lbnQ+bGFiZWw8L2E+PC9jb2RlPiBlbGVtZW50IGNyZWF0ZWQKKyAgICBlYXJsaWVyKSBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTYzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMjQ+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIGFuICJociIgc3RhcnQgdGFnIHRva2VuIHdpdGggbm8gYXR0cmlidXRlcy4KKyAgICBJbW1lZGlhdGVseSBwb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0yMz5jdXJyZW50IG5vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNjQ+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0yND5jdXJyZW50IG5vZGU8L2E+ICh3aGljaCB3aWxsIGJlIHRoZSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1mb3JtLWVsZW1lbnQtND48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudD5mb3JtPC9hPjwvY29kZT4gZWxlbWVudCBjcmVhdGVkCisgICAgZWFybGllcikgb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy02NT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiwgYW5kLCBpZiB0aGVyZSBpcyBubyA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS10ZW1wbGF0ZS1lbGVtZW50LTk+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+CisgICAgZWxlbWVudCBvbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNjY+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIHNldCB0aGUgPGEgaHJlZj0jZm9ybS1lbGVtZW50LXBvaW50ZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmb3JtLWVsZW1lbnQtcG9pbnRlci03Pjxjb2RlPmZvcm08L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4gYmFjayB0byBudWxsLjwvcD4KKworCisgICAgPHA+PGRmbiBpZD1hdHRyLWlzaW5kZXgtcHJvbXB0PjxzdHJvbmc+UHJvbXB0PC9zdHJvbmc+PC9kZm4+OiBJZiB0aGUgdG9rZW4gaGFzIGFuIGF0dHJpYnV0ZQorICAgIHdpdGggdGhlIG5hbWUgInByb21wdCIsIHRoZW4gdGhlIGZpcnN0IHN0cmVhbSBvZiBjaGFyYWN0ZXJzIG11c3QgYmUgdGhlIHNhbWUgc3RyaW5nIGFzIGdpdmVuIGluCisgICAgdGhhdCBhdHRyaWJ1dGUsIGFuZCB0aGUgc2Vjb25kIHN0cmVhbSBvZiBjaGFyYWN0ZXJzIG11c3QgYmUgZW1wdHkuIE90aGVyd2lzZSwgdGhlIHR3byBzdHJlYW1zIG9mCisgICAgY2hhcmFjdGVyIHRva2VucyB0b2dldGhlciBzaG91bGQsIHRvZ2V0aGVyIHdpdGggdGhlIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLWlucHV0LWVsZW1lbnQtMj48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQ+aW5wdXQ8L2E+PC9jb2RlPiBlbGVtZW50LCBleHByZXNzIHRoZQorICAgIGVxdWl2YWxlbnQgb2YgIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6IChpbnB1dCBmaWVsZCkiIGluIHRoZSB1c2VyJ3MKKyAgICBwcmVmZXJyZWQgbGFuZ3VhZ2UuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRleHRhcmVhIjxkZD4KKworICAgIDxwPlJ1biB0aGVzZSBzdGVwczo8L3A+CisKKyAgICA8b2w+PGxpPjxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTI1Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPGxpPjxwPklmIHRoZSA8YSBocmVmPSNuZXh0LXRva2VuIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6bmV4dC10b2tlbi0yPm5leHQgdG9rZW48L2E+IGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUKKyAgICAgdGhhdCB0b2tlbiBhbmQgbW92ZSBvbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtdGV4dGFyZWEtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQ+dGV4dGFyZWE8L2E+PC9jb2RlPgorICAgICBlbGVtZW50cyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKTxsaT48cD5Td2l0Y2ggdGhlIHRva2VuaXplciB0byB0aGUgPGEgaHJlZj0jcmNkYXRhLXN0YXRlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cmNkYXRhLXN0YXRlPlJDREFUQSBzdGF0ZTwvYT4uPGxpPjxwPkxldCB0aGUgPGEgaHJlZj0jb3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpvcmlnaW5hbC1pbnNlcnRpb24tbW9kZT5vcmlnaW5hbCBpbnNlcnRpb24gbW9kZTwvYT4gYmUgdGhlIGN1cnJlbnQgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnRpb24tbW9kZS04Pmluc2VydGlvbgorICAgICBtb2RlPC9hPi48L3A+CisKKyAgICAgPGxpPjxwPlNldCB0aGUgPGEgaHJlZj0jZnJhbWVzZXQtb2stZmxhZyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmZyYW1lc2V0LW9rLWZsYWctMTQ+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPGxpPjxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnRpb24tbW9kZS05Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluY2RhdGEgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzaW5nLW1haW4taW5jZGF0YT50ZXh0PC9hPiIuPC9vbD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJ4bXAiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTY3PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omhhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZS0xMj5oYXMgYQorICAgIDxjb2RlPnA8L2NvZGU+IGVsZW1lbnQgaW4gYnV0dG9uIHNjb3BlPC9hPiwgdGhlbiA8YSBocmVmPSNjbG9zZS1hLXAtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmNsb3NlLWEtcC1lbGVtZW50LTEyPmNsb3NlIGEgPGNvZGU+cDwvY29kZT4KKyAgICBlbGVtZW50PC9hPi48L3A+CisKKyAgICA8cD48YSBocmVmPSNyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMTI+UmVjb25zdHJ1Y3QgdGhlIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiwgaWYgYW55LjwvcD4KKworICAgIDxwPlNldCB0aGUgPGEgaHJlZj0jZnJhbWVzZXQtb2stZmxhZyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmZyYW1lc2V0LW9rLWZsYWctMTU+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPC9wPgorCisgICAgPHA+Rm9sbG93IHRoZSA8YSBocmVmPSNnZW5lcmljLXJhdy10ZXh0LWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0gaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmljLXJhdy10ZXh0LWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0+Z2VuZXJpYyByYXcgdGV4dCBlbGVtZW50IHBhcnNpbmcgYWxnb3JpdGhtPC9hPi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaWZyYW1lIjxkZD4KKworICAgIDxwPlNldCB0aGUgPGEgaHJlZj0jZnJhbWVzZXQtb2stZmxhZyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmZyYW1lc2V0LW9rLWZsYWctMTY+ZnJhbWVzZXQtb2sgZmxhZzwvYT4gdG8gIm5vdCBvayIuPC9wPgorCisgICAgPHA+Rm9sbG93IHRoZSA8YSBocmVmPSNnZW5lcmljLXJhdy10ZXh0LWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0gaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmljLXJhdy10ZXh0LWVsZW1lbnQtcGFyc2luZy1hbGdvcml0aG0tMj5nZW5lcmljIHJhdyB0ZXh0IGVsZW1lbnQgcGFyc2luZyBhbGdvcml0aG08L2E+LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJub2VtYmVkIjxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAibm9zY3JpcHQiLCBpZiB0aGUgPGEgaHJlZj0jc2NyaXB0aW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzY3JpcHRpbmctZmxhZz5zY3JpcHRpbmcgZmxhZzwvYT4gaXMgZW5hYmxlZDxkZD4KKworICAgIDxwPkZvbGxvdyB0aGUgPGEgaHJlZj0jZ2VuZXJpYy1yYXctdGV4dC1lbGVtZW50LXBhcnNpbmctYWxnb3JpdGhtIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Z2VuZXJpYy1yYXctdGV4dC1lbGVtZW50LXBhcnNpbmctYWxnb3JpdGhtLTM+Z2VuZXJpYyByYXcgdGV4dCBlbGVtZW50IHBhcnNpbmcgYWxnb3JpdGhtPC9hPi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAic2VsZWN0IjxkZD4KKworICAgIDxwPjxhIGhyZWY9I3JlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnJlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0xMz5SZWNvbnN0cnVjdCB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpZiBhbnkuPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMjY+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluYm9keTpmcmFtZXNldC1vay1mbGFnLTE3PmZyYW1lc2V0LW9rIGZsYWc8L2E+IHRvICJub3Qgb2siLjwvcD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydGlvbi1tb2RlLTEwPmluc2VydGlvbiBtb2RlPC9hPiBpcyBvbmUgb2YgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRhYmxlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2luZy1tYWluLWludGFibGUtMj5pbgorICAgIHRhYmxlPC9hPiIsICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5jYXB0aW9uIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2luZy1tYWluLWluY2FwdGlvbj5pbiBjYXB0aW9uPC9hPiIsICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50Ym9keSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNpbmctbWFpbi1pbnRib2R5PmluIHRhYmxlIGJvZHk8L2E+IiwgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRyIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2luZy1tYWluLWludHI+aW4gcm93PC9hPiIsIG9yICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ZCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNpbmctbWFpbi1pbnRkPmluIGNlbGw8L2E+IiwgdGhlbiBzd2l0Y2ggdGhlCisgICAgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnRpb24tbW9kZS0xMT5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlPmluIHNlbGVjdCBpbgorICAgIHRhYmxlPC9hPiIuIE90aGVyd2lzZSwgc3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omluc2VydGlvbi1tb2RlLTEyPmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluc2VsZWN0IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2luZy1tYWluLWluc2VsZWN0PmluIHNlbGVjdDwvYT4iLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogIm9wdGdyb3VwIiwgIm9wdGlvbiI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTI1PmN1cnJlbnQgbm9kZTwvYT4gaXMgYW4gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtb3B0aW9uLWVsZW1lbnQtND48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGlvbi1lbGVtZW50Pm9wdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gcG9wIHRoZQorICAgIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0yNj5jdXJyZW50IG5vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNjg+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jcmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTE0PlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yNz5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogInJwIiwgInJ0IjxkZD4KKworCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNjk+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpoYXMtYW4tZWxlbWVudC1pbi1zY29wZS0xMT5oYXMgYQorICAgIDxjb2RlPnJ1Ynk8L2NvZGU+IGVsZW1lbnQgaW4gc2NvcGU8L2E+LCB0aGVuIDxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzLTEyPmdlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3M8L2E+LiBJZiB0aGUKKyAgICA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMjc+Y3VycmVudCBub2RlPC9hPiBpcyBub3QgdGhlbiBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXJ1YnktZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ydWJ5LWVsZW1lbnQ+cnVieTwvYT48L2NvZGU+IGVsZW1lbnQsIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTM3PnBhcnNlCisgICAgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTI4Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgIm1hdGgiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTE1PlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICA8cD48YSBocmVmPSNhZGp1c3QtbWF0aG1sLWF0dHJpYnV0ZXMgaWQ9cGFyc2luZy1tYWluLWluYm9keTphZGp1c3QtbWF0aG1sLWF0dHJpYnV0ZXM+QWRqdXN0IE1hdGhNTCBhdHRyaWJ1dGVzPC9hPiBmb3IgdGhlIHRva2VuLiAoVGhpcyBmaXhlcyB0aGUgY2FzZSBvZiBNYXRoTUwKKyAgICBhdHRyaWJ1dGVzIHRoYXQgYXJlIG5vdCBhbGwgbG93ZXJjYXNlLik8L3A+CisKKyAgICA8cD48YSBocmVmPSNhZGp1c3QtZm9yZWlnbi1hdHRyaWJ1dGVzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6YWRqdXN0LWZvcmVpZ24tYXR0cmlidXRlcz5BZGp1c3QgZm9yZWlnbiBhdHRyaWJ1dGVzPC9hPiBmb3IgdGhlIHRva2VuLiAoVGhpcyBmaXhlcyB0aGUgdXNlIG9mIG5hbWVzcGFjZWQKKyAgICBhdHRyaWJ1dGVzLCBpbiBwYXJ0aWN1bGFyIFhMaW5rLik8L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1mb3JlaWduLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYS1mb3JlaWduLWVsZW1lbnQ+SW5zZXJ0IGEgZm9yZWlnbiBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLCBpbiB0aGUgPGEgaWQ9cGFyc2luZy1tYWluLWluYm9keTptYXRobWwtbmFtZXNwYWNlIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNtYXRobWwtbmFtZXNwYWNlPk1hdGhNTAorICAgIG5hbWVzcGFjZTwvYT4uPC9wPgorCisKKworICAgIDxwPklmIHRoZSB0b2tlbiBoYXMgaXRzIDxpIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c2VsZi1jbG9zaW5nLWZsYWc+PGEgaHJlZj0jc2VsZi1jbG9zaW5nLWZsYWc+c2VsZi1jbG9zaW5nIGZsYWc8L2E+PC9pPiBzZXQsIHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTI4PmN1cnJlbnQgbm9kZTwvYT4gb2ZmIHRoZQorICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTcwPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGFuZCA8YSBocmVmPSNhY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmFja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnLTY+YWNrbm93bGVkZ2UKKyAgICB0aGUgdG9rZW4ncyA8aT5zZWxmLWNsb3NpbmcgZmxhZzwvaT48L2E+LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJzdmciPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTE2PlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICA8cD48YSBocmVmPSNhZGp1c3Qtc3ZnLWF0dHJpYnV0ZXMgaWQ9cGFyc2luZy1tYWluLWluYm9keTphZGp1c3Qtc3ZnLWF0dHJpYnV0ZXM+QWRqdXN0IFNWRyBhdHRyaWJ1dGVzPC9hPiBmb3IgdGhlIHRva2VuLiAoVGhpcyBmaXhlcyB0aGUgY2FzZSBvZiBTVkcgYXR0cmlidXRlcyB0aGF0CisgICAgYXJlIG5vdCBhbGwgbG93ZXJjYXNlLik8L3A+CisKKyAgICA8cD48YSBocmVmPSNhZGp1c3QtZm9yZWlnbi1hdHRyaWJ1dGVzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6YWRqdXN0LWZvcmVpZ24tYXR0cmlidXRlcy0yPkFkanVzdCBmb3JlaWduIGF0dHJpYnV0ZXM8L2E+IGZvciB0aGUgdG9rZW4uIChUaGlzIGZpeGVzIHRoZSB1c2Ugb2YgbmFtZXNwYWNlZAorICAgIGF0dHJpYnV0ZXMsIGluIHBhcnRpY3VsYXIgWExpbmsgaW4gU1ZHLik8L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1mb3JlaWduLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWluYm9keTppbnNlcnQtYS1mb3JlaWduLWVsZW1lbnQtMj5JbnNlcnQgYSBmb3JlaWduIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4sIGluIHRoZSA8YSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN2Zy1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3N2Zy1uYW1lc3BhY2U+U1ZHIG5hbWVzcGFjZTwvYT4uPC9wPgorCisKKworICAgIDxwPklmIHRoZSB0b2tlbiBoYXMgaXRzIDxpIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c2VsZi1jbG9zaW5nLWZsYWctMj48YSBocmVmPSNzZWxmLWNsb3NpbmctZmxhZz5zZWxmLWNsb3NpbmcgZmxhZzwvYT48L2k+IHNldCwgcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMjk+Y3VycmVudCBub2RlPC9hPiBvZmYgdGhlCisgICAgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNzE+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gYW5kIDxhIGhyZWY9I2Fja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6YWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWctNz5hY2tub3dsZWRnZQorICAgIHRoZSB0b2tlbidzIDxpPnNlbGYtY2xvc2luZyBmbGFnPC9pPjwvYT4uPC9wPgorCisgICA8ZHQ+QSBzdGFydCAgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImNhcHRpb24iLCAiY29sIiwgImNvbGdyb3VwIiwgImZyYW1lIiwKKyAgICJoZWFkIiwgInRib2R5IiwgInRkIiwgInRmb290IiwgInRoIiwgInRoZWFkIiwgInRyIjxkZD4KKworICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItMzg+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKworCisKKyAgIDxkdD5Bbnkgb3RoZXIgc3RhcnQgdGFnPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTE3PlJlY29uc3RydWN0IHRoZSBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIGlmIGFueS48L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yOT5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLjwvcD4KKworICAgIDxwIGNsYXNzPW5vdGU+VGhpcyBlbGVtZW50IHdpbGwgYmUgYW4gPGEgaHJlZj0jb3JkaW5hcnkgaWQ9cGFyc2luZy1tYWluLWluYm9keTpvcmRpbmFyeT5vcmRpbmFyeTwvYT4KKyAgICBlbGVtZW50LjwvcD4KKworICAgPGR0PkFueSBvdGhlciBlbmQgdGFnPGRkPgorCisgICAgPHA+UnVuIHRoZXNlIHN0ZXBzOjwvcD4KKworICAgIDxvbD48bGk+PHA+SW5pdGlhbGlzZSA8dmFyPm5vZGU8L3Zhcj4gdG8gYmUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0zMD5jdXJyZW50IG5vZGU8L2E+ICh0aGUgYm90dG9tbW9zdAorICAgICBub2RlIG9mIHRoZSBzdGFjaykuPGxpPjxwPjxpPkxvb3A8L2k+OiBJZiA8dmFyPm5vZGU8L3Zhcj4gaXMgYW4gPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpodG1sLWVsZW1lbnRzLTE1PkhUTUwKKyAgICAgZWxlbWVudDwvYT4gd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGUgdG9rZW4sIHRoZW46PC9wPgorCisgICAgICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzLTEzPkdlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3M8L2E+LCBleGNlcHQgZm9yIDxhIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1lbGVtZW50cy0xNiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cz5IVE1MIGVsZW1lbnRzPC9hPiB3aXRoIHRoZQorICAgICAgIHNhbWUgdGFnIG5hbWUgYXMgdGhlIHRva2VuLjxsaT48cD5JZiA8dmFyPm5vZGU8L3Zhcj4gaXMgbm90IHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMzE+Y3VycmVudCBub2RlPC9hPiwgdGhlbiB0aGlzIGlzIGEKKyAgICAgICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTM5PnBhcnNlIGVycm9yPC9hPi48bGk+PHA+UG9wIGFsbCB0aGUgbm9kZXMgZnJvbSB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6Y3VycmVudC1ub2RlLTMyPmN1cnJlbnQgbm9kZTwvYT4gdXAgdG8gPHZhcj5ub2RlPC92YXI+LAorICAgICAgIGluY2x1ZGluZyA8dmFyPm5vZGU8L3Zhcj4sIHRoZW4gc3RvcCB0aGVzZSBzdGVwcy48L29sPgorCisgICAgIDxsaT48cD5PdGhlcndpc2UsIGlmIDx2YXI+bm9kZTwvdmFyPiBpcyBpbiB0aGUgPGEgaHJlZj0jc3BlY2lhbCBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnNwZWNpYWwtMz5zcGVjaWFsPC9hPiBjYXRlZ29yeSwgdGhlbgorICAgICB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci00MD5wYXJzZSBlcnJvcjwvYT47IGlnbm9yZSB0aGUgdG9rZW4sIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy48bGk+PHA+U2V0IDx2YXI+bm9kZTwvdmFyPiB0byB0aGUgcHJldmlvdXMgZW50cnkgaW4gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTcyPnN0YWNrIG9mIG9wZW4KKyAgICAgZWxlbWVudHM8L2E+LjxsaT48cD5SZXR1cm4gdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5sb29wPC9pPi48L29sPgorCisgICA8L2RsPgorCisgIDxwPldoZW4gdGhlIHN0ZXBzIGFib3ZlIHNheSB0aGUgdXNlciBhZ2VudCBpcyB0byA8ZGZuIGlkPWNsb3NlLWEtcC1lbGVtZW50PmNsb3NlIGEgPGNvZGU+cDwvY29kZT4gZWxlbWVudDwvZGZuPiwgaXQKKyAgbWVhbnMgdGhhdCB0aGUgdXNlciBhZ2VudCBtdXN0IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOjwvcD4KKworICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWluYm9keTpnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzLTE0PkdlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3M8L2E+LCBleGNlcHQgZm9yIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6dGhlLXAtZWxlbWVudC02PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXAtZWxlbWVudD5wPC9hPjwvY29kZT4gZWxlbWVudHMuPGxpPjxwPklmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMzM+Y3VycmVudCBub2RlPC9hPiBpcyBub3QgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnRoZS1wLWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gdGhpcyBpcyBhCisgICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnBhcnNlLWVycm9yLTQxPnBhcnNlIGVycm9yPC9hPi48bGk+PHA+UG9wIGVsZW1lbnRzIGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTczPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTp0aGUtcC1lbGVtZW50LTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiBlbGVtZW50CisgICBoYXMgYmVlbiBwb3BwZWQgZnJvbSB0aGUgc3RhY2suPC9vbD4KKworCisgIDxwIGlkPWFkb3B0aW9uQWdlbmN5PlRoZSA8ZGZuIGlkPWFkb3B0aW9uLWFnZW5jeS1hbGdvcml0aG0+YWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobTwvZGZuPiwgd2hpY2ggdGFrZXMgYXMgaXRzIG9ubHkgYXJndW1lbnQKKyAgYSB0YWcgbmFtZSA8dmFyPnN1YmplY3Q8L3Zhcj4gZm9yIHdoaWNoIHRoZSBhbGdvcml0aG0gaXMgYmVpbmcgcnVuLCBjb25zaXN0cyBvZiB0aGUKKyAgZm9sbG93aW5nIHN0ZXBzOjwvcD4KKworICA8b2w+PGxpPjxwPklmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMzQ+Y3VycmVudCBub2RlPC9hPiBpcyBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omh0bWwtZWxlbWVudHMtMTc+SFRNTCBlbGVtZW50PC9hPgorICAgd2hvc2UgdGFnIG5hbWUgaXMgPHZhcj5zdWJqZWN0PC92YXI+LCBhbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0zNT5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBpbiB0aGUKKyAgIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTQ+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIHRoZW4gcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjdXJyZW50LW5vZGUtMzY+Y3VycmVudCBub2RlPC9hPiBvZmYgdGhlCisgICA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy03ND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiwgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLjxsaT48cD5MZXQgPHZhcj5vdXRlciBsb29wIGNvdW50ZXI8L3Zhcj4gYmUgemVyby48bGk+PHA+PGk+T3V0ZXIgbG9vcDwvaT46IElmIDx2YXI+b3V0ZXIgbG9vcCBjb3VudGVyPC92YXI+IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bworICAgZWlnaHQsIHRoZW4gYWJvcnQgdGhlc2Ugc3RlcHMuPGxpPjxwPkluY3JlbWVudCA8dmFyPm91dGVyIGxvb3AgY291bnRlcjwvdmFyPiBieSBvbmUuPGxpPgorCisgICAgPHA+TGV0IDx2YXI+Zm9ybWF0dGluZyBlbGVtZW50PC92YXI+IGJlIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTU+bGlzdCBvZiBhY3RpdmUKKyAgICBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiB0aGF0OjwvcD4KKworICAgIDx1bD48bGk+aXMgYmV0d2VlbiB0aGUgZW5kIG9mIHRoZSBsaXN0IGFuZCB0aGUgbGFzdCA8YSBocmVmPSNjb25jZXB0LXBhcnNlci1tYXJrZXIgaWQ9cGFyc2luZy1tYWluLWluYm9keTpjb25jZXB0LXBhcnNlci1tYXJrZXItND5tYXJrZXI8L2E+IGluIHRoZSBsaXN0LCBpZiBhbnksIG9yIHRoZSBzdGFydCBvZiB0aGUgbGlzdAorICAgICBvdGhlcndpc2UsIGFuZDxsaT5oYXMgdGhlIHRhZyBuYW1lIDx2YXI+c3ViamVjdDwvdmFyPi48L3VsPgorCisgICAgPHA+SWYgdGhlcmUgaXMgbm8gc3VjaCBlbGVtZW50LCB0aGVuIGFib3J0IHRoZXNlIHN0ZXBzIGFuZCBpbnN0ZWFkIGFjdCBhcyBkZXNjcmliZWQgaW4gdGhlICJhbnkKKyAgICBvdGhlciBlbmQgdGFnIiBlbnRyeSBhYm92ZS48L3A+CisKKyAgIDxsaT48cD5JZiA8dmFyPmZvcm1hdHRpbmcgZWxlbWVudDwvdmFyPiBpcyBub3QgaW4gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTc1PnN0YWNrIG9mIG9wZW4KKyAgIGVsZW1lbnRzPC9hPiwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci00Mj5wYXJzZSBlcnJvcjwvYT47IHJlbW92ZSB0aGUgZWxlbWVudCBmcm9tIHRoZSBsaXN0LCBhbmQKKyAgIGFib3J0IHRoZXNlIHN0ZXBzLjxsaT48cD5JZiA8dmFyPmZvcm1hdHRpbmcgZWxlbWVudDwvdmFyPiBpcyBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNzY+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sCisgICBidXQgdGhlIGVsZW1lbnQgaXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aGFzLWFuLWVsZW1lbnQtaW4tc2NvcGUtMTI+aW4gc2NvcGU8L2E+LCB0aGVuIHRoaXMgaXMgYQorICAgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluYm9keTpwYXJzZS1lcnJvci00Mz5wYXJzZSBlcnJvcjwvYT47IGFib3J0IHRoZXNlIHN0ZXBzLjxsaT48cD5JZiA8dmFyPmZvcm1hdHRpbmcgZWxlbWVudDwvdmFyPiBpcyBub3QgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0zNz5jdXJyZW50IG5vZGU8L2E+LCB0aGlzIGlzIGEKKyAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6cGFyc2UtZXJyb3ItNDQ+cGFyc2UgZXJyb3I8L2E+LiAoQnV0IGRvIG5vdCBhYm9ydCB0aGVzZSBzdGVwcy4pPGxpPjxwPkxldCA8dmFyPmZ1cnRoZXN0IGJsb2NrPC92YXI+IGJlIHRoZSB0b3Btb3N0IG5vZGUgaW4gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTc3PnN0YWNrIG9mIG9wZW4KKyAgIGVsZW1lbnRzPC9hPiB0aGF0IGlzIGxvd2VyIGluIHRoZSBzdGFjayB0aGFuIDx2YXI+Zm9ybWF0dGluZyBlbGVtZW50PC92YXI+LCBhbmQgaXMgYW4KKyAgIGVsZW1lbnQgaW4gdGhlIDxhIGhyZWY9I3NwZWNpYWwgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzcGVjaWFsLTQ+c3BlY2lhbDwvYT4gY2F0ZWdvcnkuIFRoZXJlIG1pZ2h0IG5vdCBiZSBvbmUuPGxpPjxwPklmIHRoZXJlIGlzIG5vIDx2YXI+ZnVydGhlc3QgYmxvY2s8L3Zhcj4sIHRoZW4gdGhlIFVBIG11c3QgZmlyc3QgcG9wIGFsbCB0aGUKKyAgIG5vZGVzIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNzg+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIGZyb20gdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmN1cnJlbnQtbm9kZS0zOD5jdXJyZW50CisgICBub2RlPC9hPiB1cCB0byBhbmQgaW5jbHVkaW5nIDx2YXI+Zm9ybWF0dGluZyBlbGVtZW50PC92YXI+LCB0aGVuIHJlbW92ZSA8dmFyPmZvcm1hdHRpbmcgZWxlbWVudDwvdmFyPiBmcm9tIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy02Pmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBhbmQKKyAgIGZpbmFsbHkgYWJvcnQgdGhlc2Ugc3RlcHMuPGxpPjxwPkxldCA8dmFyPmNvbW1vbiBhbmNlc3RvcjwvdmFyPiBiZSB0aGUgZWxlbWVudCBpbW1lZGlhdGVseSBhYm92ZSA8dmFyPmZvcm1hdHRpbmcgZWxlbWVudDwvdmFyPiBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNzk+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPGxpPjxwPkxldCBhIGJvb2ttYXJrIG5vdGUgdGhlIHBvc2l0aW9uIG9mIDx2YXI+Zm9ybWF0dGluZyBlbGVtZW50PC92YXI+IGluIHRoZQorICAgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtNz5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiByZWxhdGl2ZSB0byB0aGUgZWxlbWVudHMgb24gZWl0aGVyIHNpZGUgb2YgaXQgaW4KKyAgIHRoZSBsaXN0LjxsaT4KKworICAgIDxwPkxldCA8dmFyPm5vZGU8L3Zhcj4gYW5kIDx2YXI+bGFzdCBub2RlPC92YXI+IGJlIDx2YXI+ZnVydGhlc3QKKyAgICBibG9jazwvdmFyPi4gRm9sbG93IHRoZXNlIHN0ZXBzOjwvcD4KKworICAgIDxvbD48bGk+PHA+TGV0IDx2YXI+aW5uZXIgbG9vcCBjb3VudGVyPC92YXI+IGJlIHplcm8uPGxpPjxwPjxpPklubmVyIGxvb3A8L2k+OiBJbmNyZW1lbnQgPHZhcj5pbm5lciBsb29wIGNvdW50ZXI8L3Zhcj4gYnkgb25lLjxsaT48cD5MZXQgPHZhcj5ub2RlPC92YXI+IGJlIHRoZSBlbGVtZW50IGltbWVkaWF0ZWx5IGFib3ZlIDx2YXI+bm9kZTwvdmFyPgorICAgICBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtODA+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIG9yIGlmIDx2YXI+bm9kZTwvdmFyPiBpcyBubyBsb25nZXIgaW4gdGhlCisgICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTgxPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IChlLmcuIGJlY2F1c2UgaXQgZ290IHJlbW92ZWQgYnkgdGhpcyBhbGdvcml0aG0pLCB0aGUgZWxlbWVudCB0aGF0IHdhcyBpbW1lZGlhdGVseSBhYm92ZSA8dmFyPm5vZGU8L3Zhcj4gaW4gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTgyPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGJlZm9yZSA8dmFyPm5vZGU8L3Zhcj4KKyAgICAgd2FzIHJlbW92ZWQuPGxpPjxwPklmIDx2YXI+bm9kZTwvdmFyPiBpcyA8dmFyPmZvcm1hdHRpbmcgZWxlbWVudDwvdmFyPiwgdGhlbiBnbyB0byB0aGUKKyAgICAgbmV4dCBzdGVwIGluIHRoZSBvdmVyYWxsIGFsZ29yaXRobS48bGk+PHA+SWYgPHZhcj5pbm5lciBsb29wIGNvdW50ZXI8L3Zhcj4gaXMgZ3JlYXRlciB0aGFuIHRocmVlIGFuZCA8dmFyPm5vZGU8L3Zhcj4gaXMgaW4gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTg+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4sIHRoZW4gcmVtb3ZlIDx2YXI+bm9kZTwvdmFyPiBmcm9tIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy05Pmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LjxsaT48cD5JZiA8dmFyPm5vZGU8L3Zhcj4gaXMgbm90IGluIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy0xMD5saXN0IG9mIGFjdGl2ZQorICAgICBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiwgdGhlbiByZW1vdmUgPHZhcj5ub2RlPC92YXI+IGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTgzPnN0YWNrIG9mIG9wZW4KKyAgICAgZWxlbWVudHM8L2E+IGFuZCB0aGVuIGdvIGJhY2sgdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5pbm5lciBsb29wPC9pPi48bGk+PHA+PGEgaHJlZj0jY3JlYXRlLWFuLWVsZW1lbnQtZm9yLXRoZS10b2tlbiBpZD1wYXJzaW5nLW1haW4taW5ib2R5OmNyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4+Q3JlYXRlIGFuIGVsZW1lbnQgZm9yIHRoZSB0b2tlbjwvYT4gZm9yIHdoaWNoIHRoZSBlbGVtZW50IDx2YXI+bm9kZTwvdmFyPiB3YXMgY3JlYXRlZCwgaW4gdGhlIDxhIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT4sIHdpdGggPHZhcj5jb21tb24KKyAgICAgYW5jZXN0b3I8L3Zhcj4gYXMgdGhlIGludGVuZGVkIHBhcmVudDsgcmVwbGFjZSB0aGUgZW50cnkgZm9yIDx2YXI+bm9kZTwvdmFyPiBpbiB0aGUKKyAgICAgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMTE+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4gd2l0aCBhbiBlbnRyeSBmb3IgdGhlIG5ldyBlbGVtZW50LCByZXBsYWNlIHRoZQorICAgICBlbnRyeSBmb3IgPHZhcj5ub2RlPC92YXI+IGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy04ND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB3aXRoIGFuIGVudHJ5IGZvcgorICAgICB0aGUgbmV3IGVsZW1lbnQsIGFuZCBsZXQgPHZhcj5ub2RlPC92YXI+IGJlIHRoZSBuZXcgZWxlbWVudC48bGk+PHA+SWYgPHZhcj5sYXN0IG5vZGU8L3Zhcj4gaXMgPHZhcj5mdXJ0aGVzdCBibG9jazwvdmFyPiwgdGhlbiBtb3ZlIHRoZQorICAgICBhZm9yZW1lbnRpb25lZCBib29rbWFyayB0byBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbmV3IDx2YXI+bm9kZTwvdmFyPiBpbiB0aGUKKyAgICAgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMTI+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4uPGxpPjxwPkluc2VydCA8dmFyPmxhc3Qgbm9kZTwvdmFyPiBpbnRvIDx2YXI+bm9kZTwvdmFyPiwgZmlyc3QgcmVtb3ZpbmcgaXQKKyAgICAgZnJvbSBpdHMgcHJldmlvdXMgcGFyZW50IG5vZGUgaWYgYW55LjxsaT48cD5MZXQgPHZhcj5sYXN0IG5vZGU8L3Zhcj4gYmUgPHZhcj5ub2RlPC92YXI+LjxsaT48cD5SZXR1cm4gdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5pbm5lciBsb29wPC9pPi48L29sPgorCisgICA8bGk+PHA+SW5zZXJ0IHdoYXRldmVyIDx2YXI+bGFzdCBub2RlPC92YXI+IGVuZGVkIHVwIGJlaW5nIGluIHRoZSBwcmV2aW91cyBzdGVwIGF0IHRoZQorICAgPGEgaHJlZj0jYXBwcm9wcmlhdGUtcGxhY2UtZm9yLWluc2VydGluZy1hLW5vZGUgaWQ9cGFyc2luZy1tYWluLWluYm9keTphcHByb3ByaWF0ZS1wbGFjZS1mb3ItaW5zZXJ0aW5nLWEtbm9kZT5hcHByb3ByaWF0ZSBwbGFjZSBmb3IgaW5zZXJ0aW5nIGEgbm9kZTwvYT4sIGJ1dCB1c2luZyA8dmFyPmNvbW1vbgorICAgYW5jZXN0b3I8L3Zhcj4gYXMgdGhlIDxpPm92ZXJyaWRlIHRhcmdldDwvaT4uPGxpPjxwPjxhIGhyZWY9I2NyZWF0ZS1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4gaWQ9cGFyc2luZy1tYWluLWluYm9keTpjcmVhdGUtYW4tZWxlbWVudC1mb3ItdGhlLXRva2VuLTI+Q3JlYXRlIGFuIGVsZW1lbnQgZm9yIHRoZSB0b2tlbjwvYT4gZm9yIHdoaWNoIDx2YXI+Zm9ybWF0dGluZworICAgZWxlbWVudDwvdmFyPiB3YXMgY3JlYXRlZCwgaW4gdGhlIDxhIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6aHRtbC1uYW1lc3BhY2UtMi0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLW5hbWVzcGFjZS0yPkhUTUwgbmFtZXNwYWNlPC9hPiwgd2l0aCA8dmFyPmZ1cnRoZXN0CisgICBibG9jazwvdmFyPiBhcyB0aGUgaW50ZW5kZWQgcGFyZW50LjxsaT48cD5UYWtlIGFsbCBvZiB0aGUgY2hpbGQgbm9kZXMgb2YgPHZhcj5mdXJ0aGVzdCBibG9jazwvdmFyPiBhbmQgYXBwZW5kIHRoZW0gdG8gdGhlCisgICBlbGVtZW50IGNyZWF0ZWQgaW4gdGhlIGxhc3Qgc3RlcC48bGk+PHA+QXBwZW5kIHRoYXQgbmV3IGVsZW1lbnQgdG8gPHZhcj5mdXJ0aGVzdCBibG9jazwvdmFyPi48bGk+PHA+UmVtb3ZlIDx2YXI+Zm9ybWF0dGluZyBlbGVtZW50PC92YXI+IGZyb20gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTEzPmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcKKyAgIGVsZW1lbnRzPC9hPiwgYW5kIGluc2VydCB0aGUgbmV3IGVsZW1lbnQgaW50byB0aGUgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5ib2R5Omxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMTQ+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZworICAgZWxlbWVudHM8L2E+IGF0IHRoZSBwb3NpdGlvbiBvZiB0aGUgYWZvcmVtZW50aW9uZWQgYm9va21hcmsuPGxpPjxwPlJlbW92ZSA8dmFyPmZvcm1hdHRpbmcgZWxlbWVudDwvdmFyPiBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy04NT5zdGFjayBvZiBvcGVuCisgICBlbGVtZW50czwvYT4sIGFuZCBpbnNlcnQgdGhlIG5ldyBlbGVtZW50IGludG8gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluYm9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTg2PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+CisgICBpbW1lZGlhdGVseSBiZWxvdyB0aGUgcG9zaXRpb24gb2YgPHZhcj5mdXJ0aGVzdCBibG9jazwvdmFyPiBpbiB0aGF0IHN0YWNrLjxsaT48cD5KdW1wIGJhY2sgdG8gdGhlIHN0ZXAgbGFiZWxlZCA8aT5vdXRlciBsb29wPC9pPi48L29sPgorCisgIDxwIGNsYXNzPW5vdGU+VGhpcyBhbGdvcml0aG0ncyBuYW1lLCB0aGUgImFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0iLCBjb21lcyBmcm9tIHRoZSB3YXkgaXQKKyAgY2F1c2VzIGVsZW1lbnRzIHRvIGNoYW5nZSBwYXJlbnRzLCBhbmQgaXMgaW4gY29udHJhc3Qgd2l0aCBvdGhlciBwb3NzaWJsZSBhbGdvcml0aG1zIGZvciBkZWFsaW5nCisgIHdpdGggbWlzbmVzdGVkIGNvbnRlbnQsIHdoaWNoIGluY2x1ZGVkIHRoZSAiaW5jZXN0IGFsZ29yaXRobSIsIHRoZSAic2VjcmV0IGFmZmFpciBhbGdvcml0aG0iLCBhbmQKKyAgdGhlICJIZWlzZW5iZXJnIGFsZ29yaXRobSIuPC9wPgorCisKKworCisKKyAgPGg2IGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhPjEyLjIuNS40LjggVGhlICI8ZGZuPnRleHQ8L2Rmbj4iIGluc2VydGlvbiBtb2RlPC9oNj4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGlzIHRvIGFwcGx5IHRoZSBydWxlcyBmb3IgdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5jZGF0YSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpwYXJzaW5nLW1haW4taW5jZGF0YT50ZXh0PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+LCB0aGUgdXNlciBhZ2VudCBtdXN0IGhhbmRsZSB0aGUgdG9rZW4gYXMKKyAgZm9sbG93czo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+QSBjaGFyYWN0ZXIgdG9rZW48ZGQ+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jaGFyYWN0ZXIgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6aW5zZXJ0LWEtY2hhcmFjdGVyPkluc2VydCB0aGUgdG9rZW4ncyBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICAgIDxwIGNsYXNzPW5vdGU+VGhpcyBjYW4gbmV2ZXIgYmUgYSBVKzAwMDAgTlVMTCBjaGFyYWN0ZXI7IHRoZSB0b2tlbml6ZXIgY29udmVydHMgdGhvc2UgdG8KKyAgICBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIGNoYXJhY3RlcnMuPC9wPgorCisgICA8ZHQ+QW4gZW5kLW9mLWZpbGUgdG9rZW48ZGQ+CisKKworICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi48L3A+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmN1cnJlbnQtbm9kZT5jdXJyZW50IG5vZGU8L2E+IGlzIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6dGhlLXNjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+IGVsZW1lbnQsIG1hcmsgdGhlCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6dGhlLXNjcmlwdC1lbGVtZW50LTI+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4gZWxlbWVudCBhcyA8YSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTphbHJlYWR5LXN0YXJ0ZWQgaHJlZj1zY3JpcHRpbmcuaHRtbCNhbHJlYWR5LXN0YXJ0ZWQ+ImFscmVhZHkgc3RhcnRlZCI8L2E+LjwvcD4KKworICAgIDxwPlBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmN1cnJlbnQtbm9kZS0yPmN1cnJlbnQgbm9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTppbnNlcnRpb24tbW9kZS0yPmluc2VydGlvbiBtb2RlPC9hPiB0byB0aGUgPGEgaHJlZj0jb3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6b3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGU+b3JpZ2luYWwgaW5zZXJ0aW9uIG1vZGU8L2E+IGFuZAorICAgIHJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQgaWQ9c2NyaXB0RW5kVGFnPkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInNjcmlwdCI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6c3RhY2stb2Ytc2NyaXB0LXNldHRpbmdzLW9iamVjdHMgaHJlZj13ZWJhcHBhcGlzLmh0bWwjc3RhY2stb2Ytc2NyaXB0LXNldHRpbmdzLW9iamVjdHM+c3RhY2sgb2Ygc2NyaXB0IHNldHRpbmdzIG9iamVjdHM8L2E+IGlzIGVtcHR5LCA8YSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpwZXJmb3JtLWEtbWljcm90YXNrLWNoZWNrcG9pbnQgaHJlZj13ZWJhcHBhcGlzLmh0bWwjcGVyZm9ybS1hLW1pY3JvdGFzay1jaGVja3BvaW50PnBlcmZvcm0gYSBtaWNyb3Rhc2sgY2hlY2twb2ludDwvYT4uPC9wPgorCisgICAgPHA+TGV0IDx2YXI+c2NyaXB0PC92YXI+IGJlIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6Y3VycmVudC1ub2RlLTM+Y3VycmVudCBub2RlPC9hPiAod2hpY2ggd2lsbCBiZSBhCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6dGhlLXNjcmlwdC1lbGVtZW50LTM+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4gZWxlbWVudCkuPC9wPgorCisgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6Y3VycmVudC1ub2RlLTQ+Y3VycmVudCBub2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworICAgIDxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6aW5zZXJ0aW9uLW1vZGUtMz5pbnNlcnRpb24gbW9kZTwvYT4gdG8gdGhlIDxhIGhyZWY9I29yaWdpbmFsLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOm9yaWdpbmFsLWluc2VydGlvbi1tb2RlLTI+b3JpZ2luYWwgaW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgIDxwPkxldCB0aGUgPHZhcj5vbGQgaW5zZXJ0aW9uIHBvaW50PC92YXI+IGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIGN1cnJlbnQKKyAgICA8YSBocmVmPSNpbnNlcnRpb24tcG9pbnQgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6aW5zZXJ0aW9uLXBvaW50Pmluc2VydGlvbiBwb2ludDwvYT4uIExldCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLXBvaW50IGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmluc2VydGlvbi1wb2ludC0yPmluc2VydGlvbiBwb2ludDwvYT4gYmUganVzdCBiZWZvcmUgdGhlIDxhIGhyZWY9I25leHQtaW5wdXQtY2hhcmFjdGVyIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQKKyAgICBpbnB1dCBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICAgIDxwPkluY3JlbWVudCB0aGUgcGFyc2VyJ3MgPGEgaHJlZj0jc2NyaXB0LW5lc3RpbmctbGV2ZWwgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6c2NyaXB0LW5lc3RpbmctbGV2ZWw+c2NyaXB0IG5lc3RpbmcgbGV2ZWw8L2E+IGJ5IG9uZS48L3A+CisKKyAgICA8cD48YSBocmVmPXNjcmlwdGluZy5odG1sI3ByZXBhcmUtYS1zY3JpcHQgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6cHJlcGFyZS1hLXNjcmlwdD5QcmVwYXJlPC9hPiB0aGUgPHZhcj5zY3JpcHQ8L3Zhcj4uIFRoaXMgbWlnaHQKKyAgICBjYXVzZSBzb21lIHNjcmlwdCB0byBleGVjdXRlLCB3aGljaCBtaWdodCBjYXVzZSA8YSBocmVmPXdlYmFwcGFwaXMuaHRtbCNkb20tZG9jdW1lbnQtd3JpdGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6ZG9tLWRvY3VtZW50LXdyaXRlPm5ldyBjaGFyYWN0ZXJzCisgICAgdG8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgdG9rZW5pemVyPC9hPiwgYW5kIG1pZ2h0IGNhdXNlIHRoZSB0b2tlbml6ZXIgdG8gb3V0cHV0IG1vcmUgdG9rZW5zLAorICAgIHJlc3VsdGluZyBpbiBhIDxhIGhyZWY9I25lc3RlZFBhcnNpbmc+cmVlbnRyYW50IGludm9jYXRpb24gb2YgdGhlIHBhcnNlcjwvYT4uPC9wPgorCisgICAgPHA+RGVjcmVtZW50IHRoZSBwYXJzZXIncyA8YSBocmVmPSNzY3JpcHQtbmVzdGluZy1sZXZlbCBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpzY3JpcHQtbmVzdGluZy1sZXZlbC0yPnNjcmlwdCBuZXN0aW5nIGxldmVsPC9hPiBieSBvbmUuIElmIHRoZSBwYXJzZXIncyA8YSBocmVmPSNzY3JpcHQtbmVzdGluZy1sZXZlbCBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpzY3JpcHQtbmVzdGluZy1sZXZlbC0zPnNjcmlwdAorICAgIG5lc3RpbmcgbGV2ZWw8L2E+IGlzIHplcm8sIHRoZW4gc2V0IHRoZSA8YSBocmVmPSNwYXJzZXItcGF1c2UtZmxhZyBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpwYXJzZXItcGF1c2UtZmxhZz5wYXJzZXIgcGF1c2UgZmxhZzwvYT4gdG8gZmFsc2UuPC9wPgorCisgICAgPHA+TGV0IHRoZSA8YSBocmVmPSNpbnNlcnRpb24tcG9pbnQgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6aW5zZXJ0aW9uLXBvaW50LTM+aW5zZXJ0aW9uIHBvaW50PC9hPiBoYXZlIHRoZSB2YWx1ZSBvZiB0aGUgPHZhcj5vbGQgaW5zZXJ0aW9uCisgICAgcG9pbnQ8L3Zhcj4uIChJbiBvdGhlciB3b3JkcywgcmVzdG9yZSB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLXBvaW50IGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmluc2VydGlvbi1wb2ludC00Pmluc2VydGlvbiBwb2ludDwvYT4gdG8gaXRzIHByZXZpb3VzIHZhbHVlLgorICAgIFRoaXMgdmFsdWUgbWlnaHQgYmUgdGhlICJ1bmRlZmluZWQiIHZhbHVlLik8L3A+CisKKyAgICA8cCBpZD1zY3JpcHRUYWdQYXJzZXJSZXN1bWVzPkF0IHRoaXMgc3RhZ2UsIGlmIHRoZXJlIGlzIGEgPGEgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6cGVuZGluZy1wYXJzaW5nLWJsb2NraW5nLXNjcmlwdCBocmVmPXNjcmlwdGluZy5odG1sI3BlbmRpbmctcGFyc2luZy1ibG9ja2luZy1zY3JpcHQ+cGVuZGluZyBwYXJzaW5nLWJsb2NraW5nCisgICAgc2NyaXB0PC9hPiwgdGhlbjo8L3A+CisKKyAgICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5JZiB0aGUgPGEgaHJlZj0jc2NyaXB0LW5lc3RpbmctbGV2ZWwgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6c2NyaXB0LW5lc3RpbmctbGV2ZWwtND5zY3JpcHQgbmVzdGluZyBsZXZlbDwvYT4gaXMgbm90IHplcm86PGRkPgorCisgICAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I3BhcnNlci1wYXVzZS1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnBhcnNlci1wYXVzZS1mbGFnLTI+cGFyc2VyIHBhdXNlIGZsYWc8L2E+IHRvIHRydWUsIGFuZCBhYm9ydCB0aGUgcHJvY2Vzc2luZyBvZiBhbnkgbmVzdGVkCisgICAgICBpbnZvY2F0aW9ucyBvZiB0aGUgdG9rZW5pemVyLCB5aWVsZGluZyBjb250cm9sIGJhY2sgdG8gdGhlIGNhbGxlci4gKFRva2VuaXphdGlvbiB3aWxsIHJlc3VtZQorICAgICAgd2hlbiB0aGUgY2FsbGVyIHJldHVybnMgdG8gdGhlICJvdXRlciIgdHJlZSBjb25zdHJ1Y3Rpb24gc3RhZ2UuKTwvcD4KKworICAgICAgPHAgY2xhc3M9bm90ZT5UaGUgdHJlZSBjb25zdHJ1Y3Rpb24gc3RhZ2Ugb2YgdGhpcyBwYXJ0aWN1bGFyIHBhcnNlciBpcyA8YSBocmVmPSNuZXN0ZWRQYXJzaW5nPmJlaW5nIGNhbGxlZCByZWVudHJhbnRseTwvYT4sIHNheSBmcm9tIGEgY2FsbCB0byA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpkb20tZG9jdW1lbnQtd3JpdGUtMj48YSBocmVmPXdlYmFwcGFwaXMuaHRtbCNkb20tZG9jdW1lbnQtd3JpdGU+ZG9jdW1lbnQud3JpdGUoKTwvYT48L2NvZGU+LjwvcD4KKworICAgICA8ZHQ+T3RoZXJ3aXNlOjxkZD4KKworICAgICAgPHA+UnVuIHRoZXNlIHN0ZXBzOjwvcD4KKworICAgICAgPG9sPjxsaT48cD5MZXQgPHZhcj50aGUgc2NyaXB0PC92YXI+IGJlIHRoZSA8YSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpwZW5kaW5nLXBhcnNpbmctYmxvY2tpbmctc2NyaXB0LTIgaHJlZj1zY3JpcHRpbmcuaHRtbCNwZW5kaW5nLXBhcnNpbmctYmxvY2tpbmctc2NyaXB0PnBlbmRpbmcgcGFyc2luZy1ibG9ja2luZworICAgICAgIHNjcmlwdDwvYT4uIFRoZXJlIGlzIG5vIGxvbmdlciBhIDxhIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnBlbmRpbmctcGFyc2luZy1ibG9ja2luZy1zY3JpcHQtMyBocmVmPXNjcmlwdGluZy5odG1sI3BlbmRpbmctcGFyc2luZy1ibG9ja2luZy1zY3JpcHQ+cGVuZGluZyBwYXJzaW5nLWJsb2NraW5nIHNjcmlwdDwvYT4uPGxpPjxwPkJsb2NrIHRoZSA8YSBocmVmPSN0b2tlbml6YXRpb24gaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6dG9rZW5pemF0aW9uPnRva2VuaXplcjwvYT4gZm9yIHRoaXMgaW5zdGFuY2Ugb2YgdGhlCisgICAgICAgPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6aHRtbC1wYXJzZXI+SFRNTCBwYXJzZXI8L2E+LCBzdWNoIHRoYXQgdGhlIDxhIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmV2ZW50LWxvb3AgaHJlZj13ZWJhcHBhcGlzLmh0bWwjZXZlbnQtbG9vcD5ldmVudCBsb29wPC9hPiB3aWxsIG5vdCBydW4gPGEgaHJlZj13ZWJhcHBhcGlzLmh0bWwjY29uY2VwdC10YXNrIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmNvbmNlcHQtdGFzaz50YXNrczwvYT4gdGhhdCBpbnZva2UgdGhlIDxhIGhyZWY9I3Rva2VuaXphdGlvbiBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTp0b2tlbml6YXRpb24tMj50b2tlbml6ZXI8L2E+LjxsaT48cD5JZiB0aGUgcGFyc2VyJ3MgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6ZG9jdW1lbnQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IDxhIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmhhcy1hLXN0eWxlLXNoZWV0LXRoYXQtaXMtYmxvY2tpbmctc2NyaXB0cyBocmVmPXNlbWFudGljcy5odG1sI2hhcy1hLXN0eWxlLXNoZWV0LXRoYXQtaXMtYmxvY2tpbmctc2NyaXB0cz5oYXMgYSBzdHlsZSBzaGVldCB0aGF0IGlzIGJsb2NraW5nCisgICAgICAgc2NyaXB0czwvYT4gb3IgPHZhcj50aGUgc2NyaXB0PC92YXI+J3MgPGEgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6cmVhZHktdG8tYmUtcGFyc2VyLWV4ZWN1dGVkIGhyZWY9c2NyaXB0aW5nLmh0bWwjcmVhZHktdG8tYmUtcGFyc2VyLWV4ZWN1dGVkPiJyZWFkeSB0byBiZSBwYXJzZXItZXhlY3V0ZWQiPC9hPgorICAgICAgIGZsYWcgaXMgbm90IHNldDogPGEgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6c3Bpbi10aGUtZXZlbnQtbG9vcCBocmVmPXdlYmFwcGFwaXMuaHRtbCNzcGluLXRoZS1ldmVudC1sb29wPnNwaW4gdGhlIGV2ZW50IGxvb3A8L2E+IHVudGlsIHRoZSBwYXJzZXIncyA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpkb2N1bWVudC0yPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPgorICAgICAgIDxhIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmhhcy1uby1zdHlsZS1zaGVldC10aGF0LWlzLWJsb2NraW5nLXNjcmlwdHMgaHJlZj1zZW1hbnRpY3MuaHRtbCNoYXMtbm8tc3R5bGUtc2hlZXQtdGhhdC1pcy1ibG9ja2luZy1zY3JpcHRzPmhhcyBubyBzdHlsZSBzaGVldCB0aGF0IGlzIGJsb2NraW5nIHNjcmlwdHM8L2E+IGFuZCA8dmFyPnRoZSBzY3JpcHQ8L3Zhcj4ncworICAgICAgIDxhIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnJlYWR5LXRvLWJlLXBhcnNlci1leGVjdXRlZC0yIGhyZWY9c2NyaXB0aW5nLmh0bWwjcmVhZHktdG8tYmUtcGFyc2VyLWV4ZWN1dGVkPiJyZWFkeSB0byBiZSBwYXJzZXItZXhlY3V0ZWQiPC9hPiBmbGFnIGlzIHNldC48bGk+CisKKyAgICAgICAgPHA+SWYgdGhpcyA8YSBocmVmPSNhYm9ydC1hLXBhcnNlciBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTphYm9ydC1hLXBhcnNlcj5wYXJzZXIgaGFzIGJlZW4gYWJvcnRlZDwvYT4gaW4gdGhlIG1lYW50aW1lLAorICAgICAgICBhYm9ydCB0aGVzZSBzdGVwcy48L3A+CisKKyAgICAgICAgPHAgY2xhc3M9bm90ZT5UaGlzIGNvdWxkIGhhcHBlbiBpZiwgZS5nLiwgd2hpbGUgdGhlIDxhIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnNwaW4tdGhlLWV2ZW50LWxvb3AtMiBocmVmPXdlYmFwcGFwaXMuaHRtbCNzcGluLXRoZS1ldmVudC1sb29wPnNwaW4gdGhlIGV2ZW50IGxvb3A8L2E+CisgICAgICAgIGFsZ29yaXRobSBpcyBydW5uaW5nLCB0aGUgPGEgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6YnJvd3NpbmctY29udGV4dCBocmVmPWJyb3dzZXJzLmh0bWwjYnJvd3NpbmctY29udGV4dD5icm93c2luZyBjb250ZXh0PC9hPiBnZXRzIGNsb3NlZCwgb3IgdGhlIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmRvbS1kb2N1bWVudC1vcGVuPjxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2RvbS1kb2N1bWVudC1vcGVuPmRvY3VtZW50Lm9wZW4oKTwvYT48L2NvZGU+IG1ldGhvZCBnZXRzIGludm9rZWQgb24gdGhlCisgICAgICAgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmRvY3VtZW50LTM+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+LjwvcD4KKworICAgICAgIDxsaT48cD5VbmJsb2NrIHRoZSA8YSBocmVmPSN0b2tlbml6YXRpb24gaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6dG9rZW5pemF0aW9uLTM+dG9rZW5pemVyPC9hPiBmb3IgdGhpcyBpbnN0YW5jZSBvZiB0aGUKKyAgICAgICA8YSBocmVmPSNodG1sLXBhcnNlciBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpodG1sLXBhcnNlci0yPkhUTUwgcGFyc2VyPC9hPiwgc3VjaCB0aGF0IDxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2NvbmNlcHQtdGFzayBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpjb25jZXB0LXRhc2stMj50YXNrczwvYT4gdGhhdCBpbnZva2UgdGhlCisgICAgICAgPGEgaHJlZj0jdG9rZW5pemF0aW9uIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnRva2VuaXphdGlvbi00PnRva2VuaXplcjwvYT4gY2FuIGFnYWluIGJlIHJ1bi48bGk+PHA+TGV0IHRoZSA8YSBocmVmPSNpbnNlcnRpb24tcG9pbnQgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6aW5zZXJ0aW9uLXBvaW50LTU+aW5zZXJ0aW9uIHBvaW50PC9hPiBiZSBqdXN0IGJlZm9yZSB0aGUgPGEgaHJlZj0jbmV4dC1pbnB1dC1jaGFyYWN0ZXIgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6bmV4dC1pbnB1dC1jaGFyYWN0ZXItMj5uZXh0IGlucHV0CisgICAgICAgY2hhcmFjdGVyPC9hPi48bGk+PHA+SW5jcmVtZW50IHRoZSBwYXJzZXIncyA8YSBocmVmPSNzY3JpcHQtbmVzdGluZy1sZXZlbCBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpzY3JpcHQtbmVzdGluZy1sZXZlbC01PnNjcmlwdCBuZXN0aW5nIGxldmVsPC9hPiBieSBvbmUgKGl0IHNob3VsZCBiZSB6ZXJvCisgICAgICAgYmVmb3JlIHRoaXMgc3RlcCwgc28gdGhpcyBzZXRzIGl0IHRvIG9uZSkuPGxpPjxwPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjZXhlY3V0ZS10aGUtc2NyaXB0LWJsb2NrIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOmV4ZWN1dGUtdGhlLXNjcmlwdC1ibG9jaz5FeGVjdXRlPC9hPiA8dmFyPnRoZQorICAgICAgIHNjcmlwdDwvdmFyPi48bGk+PHA+RGVjcmVtZW50IHRoZSBwYXJzZXIncyA8YSBocmVmPSNzY3JpcHQtbmVzdGluZy1sZXZlbCBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpzY3JpcHQtbmVzdGluZy1sZXZlbC02PnNjcmlwdCBuZXN0aW5nIGxldmVsPC9hPiBieSBvbmUuIElmIHRoZSBwYXJzZXIncworICAgICAgIDxhIGhyZWY9I3NjcmlwdC1uZXN0aW5nLWxldmVsIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnNjcmlwdC1uZXN0aW5nLWxldmVsLTc+c2NyaXB0IG5lc3RpbmcgbGV2ZWw8L2E+IGlzIHplcm8gKHdoaWNoIGl0IGFsd2F5cyBzaG91bGQgYmUgYXQgdGhpcyBwb2ludCksIHRoZW4gc2V0CisgICAgICAgdGhlIDxhIGhyZWY9I3BhcnNlci1wYXVzZS1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnBhcnNlci1wYXVzZS1mbGFnLTM+cGFyc2VyIHBhdXNlIGZsYWc8L2E+IHRvIGZhbHNlLjwvcD4KKworICAgICAgIDxsaT48cD5MZXQgdGhlIDxhIGhyZWY9I2luc2VydGlvbi1wb2ludCBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTppbnNlcnRpb24tcG9pbnQtNj5pbnNlcnRpb24gcG9pbnQ8L2E+IGJlIHVuZGVmaW5lZCBhZ2Fpbi48bGk+PHA+SWYgdGhlcmUgaXMgb25jZSBhZ2FpbiBhIDxhIGlkPXBhcnNpbmctbWFpbi1pbmNkYXRhOnBlbmRpbmctcGFyc2luZy1ibG9ja2luZy1zY3JpcHQtNCBocmVmPXNjcmlwdGluZy5odG1sI3BlbmRpbmctcGFyc2luZy1ibG9ja2luZy1zY3JpcHQ+cGVuZGluZyBwYXJzaW5nLWJsb2NraW5nIHNjcmlwdDwvYT4sIHRoZW4gcmVwZWF0CisgICAgICAgdGhlc2Ugc3RlcHMgZnJvbSBzdGVwIDEuPC9vbD4KKworICAgICA8L2RsPgorCisgICA8ZHQ+QW55IG90aGVyIGVuZCB0YWc8ZGQ+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpjdXJyZW50LW5vZGUtNT5jdXJyZW50IG5vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5jZGF0YTppbnNlcnRpb24tbW9kZS00Pmluc2VydGlvbiBtb2RlPC9hPiB0byB0aGUgPGEgaHJlZj0jb3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluY2RhdGE6b3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGUtMz5vcmlnaW5hbCBpbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8L2RsPgorCisKKyAgPGg2IGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlPjEyLjIuNS40LjkgVGhlICI8ZGZuPmluIHRhYmxlPC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2luZy1tYWluLWludGFibGU+aW4KKyAgdGFibGU8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcyBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIGNoYXJhY3RlciB0b2tlbiwgaWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpjdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9hPiBpcyA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTp0aGUtdGFibGUtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4sIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnRoZS10Ym9keS1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6dGhlLXRmb290LWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGZvb3QtZWxlbWVudD50Zm9vdDwvYT48L2NvZGU+LCA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTp0aGUtdGhlYWQtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10aGVhZC1lbGVtZW50PnRoZWFkPC9hPjwvY29kZT4sIG9yIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnRoZS10ci1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiBlbGVtZW50PGRkPgorCisgICAgIDxwPkxldCB0aGUgPGRmbiBpZD1jb25jZXB0LXBlbmRpbmctdGFibGUtY2hhci10b2tlbnM+PHZhcj5wZW5kaW5nIHRhYmxlIGNoYXJhY3RlcgorICAgICB0b2tlbnM8L3Zhcj48L2Rmbj4gYmUgYW4gZW1wdHkgbGlzdCBvZiB0b2tlbnMuPC9wPgorCisgICAgIDxwPkxldCB0aGUgPGEgaHJlZj0jb3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6b3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGU+b3JpZ2luYWwgaW5zZXJ0aW9uIG1vZGU8L2E+IGJlIHRoZSBjdXJyZW50IDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmluc2VydGlvbi1tb2RlLTM+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZXRleHQgaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2luZy1tYWluLWludGFibGV0ZXh0PmluCisgICAgIHRhYmxlIHRleHQ8L2E+IiBhbmQgcmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDxkdD5BIGNvbW1lbnQgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY29tbWVudCBpZD1wYXJzaW5nLW1haW4taW50YWJsZTppbnNlcnQtYS1jb21tZW50Pkluc2VydCBhIGNvbW1lbnQ8L2E+LjwvcD4KKyAgIDxkdD5BIERPQ1RZUEUgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiY2FwdGlvbiI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWNvbnRleHQgaWQ9cGFyc2luZy1tYWluLWludGFibGU6Y2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1jb250ZXh0PkNsZWFyIHRoZSBzdGFjayBiYWNrIHRvIGEgdGFibGUgY29udGV4dDwvYT4uIChTZWUgYmVsb3cuKTwvcD4KKworICAgIDxwPkluc2VydCBhIDxhIGhyZWY9I2NvbmNlcHQtcGFyc2VyLW1hcmtlciBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpjb25jZXB0LXBhcnNlci1tYXJrZXI+bWFya2VyPC9hPiBhdCB0aGUgZW5kIG9mIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM+bGlzdCBvZgorICAgIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmluc2VydC1hbi1odG1sLWVsZW1lbnQ+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbiwgdGhlbiBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmluc2VydGlvbi1tb2RlLTQ+aW5zZXJ0aW9uCisgICAgbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmNhcHRpb24gaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2luZy1tYWluLWluY2FwdGlvbj5pbiBjYXB0aW9uPC9hPiIuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImNvbGdyb3VwIjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2NsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtY29udGV4dCBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWNvbnRleHQtMj5DbGVhciB0aGUgc3RhY2sgYmFjayB0byBhIHRhYmxlIGNvbnRleHQ8L2E+LiAoU2VlIGJlbG93Lik8L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmluc2VydC1hbi1odG1sLWVsZW1lbnQtMj5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLCB0aGVuIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6aW5zZXJ0aW9uLW1vZGUtNT5pbnNlcnRpb24KKyAgICBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluY29sZ3JvdXAgaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2luZy1tYWluLWluY29sZ3JvdXA+aW4gY29sdW1uIGdyb3VwPC9hPiIuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImNvbCI8ZGQ+CisKKworICAgIDxwPjxhIGhyZWY9I2NsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtY29udGV4dCBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWNvbnRleHQtMz5DbGVhciB0aGUgc3RhY2sgYmFjayB0byBhIHRhYmxlIGNvbnRleHQ8L2E+LiAoU2VlIGJlbG93Lik8L3A+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmluc2VydC1hbi1odG1sLWVsZW1lbnQtMz5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgYSAiY29sZ3JvdXAiIHN0YXJ0IHRhZyB0b2tlbiB3aXRoIG5vIGF0dHJpYnV0ZXMsIHRoZW4KKyAgICBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmluc2VydGlvbi1tb2RlLTY+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5jb2xncm91cCBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpwYXJzaW5nLW1haW4taW5jb2xncm91cC0yPmluCisgICAgY29sdW1uIGdyb3VwPC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIGN1cnJlbnQgdG9rZW4uPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAidGJvZHkiLCAidGZvb3QiLCAidGhlYWQiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jY2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1jb250ZXh0IGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmNsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtY29udGV4dC00PkNsZWFyIHRoZSBzdGFjayBiYWNrIHRvIGEgdGFibGUgY29udGV4dDwvYT4uIChTZWUgYmVsb3cuKTwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWludGFibGU6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC00Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4sIHRoZW4gc3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTppbnNlcnRpb24tbW9kZS03Pmluc2VydGlvbgorICAgIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50Ym9keSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpwYXJzaW5nLW1haW4taW50Ym9keT5pbiB0YWJsZSBib2R5PC9hPiIuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAidGQiLCAidGgiLCAidHIiPGRkPgorCisKKyAgICA8cD48YSBocmVmPSNjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWNvbnRleHQgaWQ9cGFyc2luZy1tYWluLWludGFibGU6Y2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1jb250ZXh0LTU+Q2xlYXIgdGhlIHN0YWNrIGJhY2sgdG8gYSB0YWJsZSBjb250ZXh0PC9hPi4gKFNlZSBiZWxvdy4pPC9wPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW50YWJsZTppbnNlcnQtYW4taHRtbC1lbGVtZW50LTU+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIGEgInRib2R5IiBzdGFydCB0YWcgdG9rZW4gd2l0aCBubyBhdHRyaWJ1dGVzLCB0aGVuCisgICAgc3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTppbnNlcnRpb24tbW9kZS04Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2luZy1tYWluLWludGJvZHktMj5pbiB0YWJsZQorICAgIGJvZHk8L2E+Ii48L3A+CisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgY3VycmVudCB0b2tlbi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAidGFibGUiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2UtZXJyb3ItMj5QYXJzZSBlcnJvcjwvYT4uPC9wPgorCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlPmhhdmUgYSA8Y29kZT50YWJsZTwvY29kZT4gZWxlbWVudCBpbiB0YWJsZSBzY29wZTwvYT4sIGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPlBvcCBlbGVtZW50cyBmcm9tIHRoaXMgc3RhY2sgdW50aWwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTp0aGUtdGFibGUtZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPiBlbGVtZW50IGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZQorICAgIHN0YWNrLjwvcD4KKworICAgIDxwPjxhIGhyZWY9I3Jlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5IGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnJlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5PlJlc2V0IHRoZSBpbnNlcnRpb24gbW9kZSBhcHByb3ByaWF0ZWx5PC9hPi48L3A+CisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAidGFibGUiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludGFibGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlLTI+aGF2ZSBhIDxjb2RlPnRhYmxlPC9jb2RlPiBlbGVtZW50IGluIHRhYmxlIHNjb3BlPC9hPiwgdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnBhcnNlLWVycm9yLTM+cGFyc2UKKyAgICBlcnJvcjwvYT47IGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPlBvcCBlbGVtZW50cyBmcm9tIHRoaXMgc3RhY2sgdW50aWwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTp0aGUtdGFibGUtZWxlbWVudC0zPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPiBlbGVtZW50IGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZQorICAgIHN0YWNrLjwvcD4KKworICAgIDxwPjxhIGhyZWY9I3Jlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5IGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnJlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5LTI+UmVzZXQgdGhlIGluc2VydGlvbiBtb2RlIGFwcHJvcHJpYXRlbHk8L2E+LjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYm9keSIsICJjYXB0aW9uIiwgImNvbCIsICJjb2xncm91cCIsICJodG1sIiwgInRib2R5IiwKKyAgICJ0ZCIsICJ0Zm9vdCIsICJ0aCIsICJ0aGVhZCIsICJ0ciI8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGFibGU6cGFyc2UtZXJyb3ItND5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogInN0eWxlIiwgInNjcmlwdCIsICJ0ZW1wbGF0ZSI8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAidGVtcGxhdGUiPGRkPgorCisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD1wYXJzaW5nLW1haW4taW50YWJsZTp1c2luZy10aGUtcnVsZXMtZm9yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluaGVhZCBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpwYXJzaW5nLW1haW4taW5oZWFkPmluIGhlYWQ8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTppbnNlcnRpb24tbW9kZS05Pmluc2VydGlvbgorICAgIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJpbnB1dCI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgdG9rZW4gZG9lcyBub3QgaGF2ZSBhbiBhdHRyaWJ1dGUgd2l0aCB0aGUgbmFtZSAidHlwZSIsIG9yIGlmIGl0IGRvZXMsIGJ1dCB0aGF0CisgICAgYXR0cmlidXRlJ3MgdmFsdWUgaXMgbm90IGFuIDxhIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmFzY2lpLWNhc2UtaW5zZW5zaXRpdmUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2FzY2lpLWNhc2UtaW5zZW5zaXRpdmU+QVNDSUkgY2FzZS1pbnNlbnNpdGl2ZTwvYT4gbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIjxjb2RlPmhpZGRlbjwvY29kZT4iLCB0aGVuOiBhY3QgYXMgZGVzY3JpYmVkIGluIHRoZSAiYW55dGhpbmcgZWxzZSIgZW50cnkgYmVsb3cuPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnBhcnNlLWVycm9yLTU+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWludGFibGU6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC02Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+UG9wIHRoYXQgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6dGhlLWlucHV0LWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1pbnB1dC1lbGVtZW50PmlucHV0PC9hPjwvY29kZT4gZWxlbWVudCBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludGFibGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2Fja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmFja25vd2xlZGdlLXNlbGYtY2xvc2luZy1mbGFnPkFja25vd2xlZGdlIHRoZSB0b2tlbidzIDxpPnNlbGYtY2xvc2luZworICAgIGZsYWc8L2k+PC9hPiwgaWYgaXQgaXMgc2V0LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJmb3JtIjxkZD4KKworICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnBhcnNlLWVycm9yLTY+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPklmIHRoZXJlIGlzIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6dGhlLXRlbXBsYXRlLWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQgb24gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludGFibGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCBvciBpZgorICAgIHRoZSA8YSBocmVmPSNmb3JtLWVsZW1lbnQtcG9pbnRlciBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpmb3JtLWVsZW1lbnQtcG9pbnRlcj48Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50IHBvaW50ZXI8L2E+IGlzIG5vdCBudWxsLCBpZ25vcmUgdGhlCisgICAgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWludGFibGU6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC03Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4sIGFuZCBzZXQgdGhlIDxhIGhyZWY9I2Zvcm0tZWxlbWVudC1wb2ludGVyIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOmZvcm0tZWxlbWVudC1wb2ludGVyLTI+PGNvZGU+Zm9ybTwvY29kZT4gZWxlbWVudCBwb2ludGVyPC9hPiB0byBwb2ludCB0byB0aGUgZWxlbWVudCBjcmVhdGVkLjwvcD4KKworICAgIDxwPlBvcCB0aGF0IDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnRoZS1mb3JtLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1mb3JtLWVsZW1lbnQ+Zm9ybTwvYT48L2NvZGU+IGVsZW1lbnQgb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgIDxkdD5BbiBlbmQtb2YtZmlsZSB0b2tlbjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWludGFibGU6dXNpbmctdGhlLXJ1bGVzLWZvci0yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTppbnNlcnRpb24tbW9kZS0xMD5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8ZHQ+QW55dGhpbmcgZWxzZTxkZD4KKworICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnBhcnNlLWVycm9yLTc+UGFyc2UgZXJyb3I8L2E+LiBFbmFibGUgPGEgaHJlZj0jZm9zdGVyLXBhcmVudCBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpmb3N0ZXItcGFyZW50PmZvc3RlciBwYXJlbnRpbmc8L2E+LCBwcm9jZXNzCisgICAgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWludGFibGU6dXNpbmctdGhlLXJ1bGVzLWZvci0zPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpwYXJzaW5nLW1haW4taW5ib2R5LTI+aW4KKyAgICBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6aW5zZXJ0aW9uLW1vZGUtMTE+aW5zZXJ0aW9uIG1vZGU8L2E+LCBhbmQgdGhlbiBkaXNhYmxlIDxhIGhyZWY9I2Zvc3Rlci1wYXJlbnQgaWQ9cGFyc2luZy1tYWluLWludGFibGU6Zm9zdGVyLXBhcmVudC0yPmZvc3RlcgorICAgIHBhcmVudGluZzwvYT4uPC9wPgorCisgICA8L2RsPgorCisgIDxwPldoZW4gdGhlIHN0ZXBzIGFib3ZlIHJlcXVpcmUgdGhlIFVBIHRvIDxkZm4gaWQ9Y2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1jb250ZXh0PmNsZWFyIHRoZSBzdGFjayBiYWNrIHRvIGEgdGFibGUgY29udGV4dDwvZGZuPiwgaXQKKyAgbWVhbnMgdGhhdCB0aGUgVUEgbXVzdCwgd2hpbGUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnRoZS10YWJsZS1lbGVtZW50LTQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+LAorICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTp0aGUtdGVtcGxhdGUtZWxlbWVudC0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiwgb3IgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6dGhlLWh0bWwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQsIHBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxlOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNj5zdGFjayBvZiBvcGVuCisgIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGlzIGlzIHRoZSBzYW1lIGxpc3Qgb2YgZWxlbWVudHMgYXMgdXNlZCBpbiB0aGUgPGkgaWQ9cGFyc2luZy1tYWluLWludGFibGU6aGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGUtMz48YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZT5oYXMgYW4gZWxlbWVudCBpbiB0YWJsZSBzY29wZTwvYT48L2k+IHN0ZXBzLjwvcD4KKworICA8cCBjbGFzcz1ub3RlPlRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGU6Y3VycmVudC1ub2RlLTM+Y3VycmVudCBub2RlPC9hPiBiZWluZyBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZTp0aGUtaHRtbC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50IGFmdGVyIHRoaXMKKyAgcHJvY2VzcyBpcyBhIDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWludGFibGU6ZnJhZ21lbnQtY2FzZT5mcmFnbWVudCBjYXNlPC9hPi48L3A+CisKKworCisgIDxoNiBpZD1wYXJzaW5nLW1haW4taW50YWJsZXRleHQ+MTIuMi41LjQuMTAgVGhlICI8ZGZuPmluIHRhYmxlIHRleHQ8L2Rmbj4iIGluc2VydGlvbiBtb2RlPC9oNj4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGlzIHRvIGFwcGx5IHRoZSBydWxlcyBmb3IgdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZXRleHQgaWQ9cGFyc2luZy1tYWluLWludGFibGV0ZXh0OnBhcnNpbmctbWFpbi1pbnRhYmxldGV4dD5pbiB0YWJsZSB0ZXh0PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGFibGV0ZXh0Omluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzCisgIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgVSswMDAwIE5VTEw8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW50YWJsZXRleHQ6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFueSBvdGhlciBjaGFyYWN0ZXIgdG9rZW48ZGQ+CisKKyAgICA8cD5BcHBlbmQgdGhlIGNoYXJhY3RlciB0b2tlbiB0byB0aGUgPHZhciBpZD1wYXJzaW5nLW1haW4taW50YWJsZXRleHQ6Y29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9rZW5zPjxhIGhyZWY9I2NvbmNlcHQtcGVuZGluZy10YWJsZS1jaGFyLXRva2Vucz5wZW5kaW5nCisgICAgdGFibGUgY2hhcmFjdGVyIHRva2VuczwvYT48L3Zhcj4gbGlzdC48L3A+CisKKyAgIDxkdD5Bbnl0aGluZyBlbHNlPGRkPgorCisKKworICAgIDxwPklmIGFueSBvZiB0aGUgdG9rZW5zIGluIHRoZSA8dmFyIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxldGV4dDpjb25jZXB0LXBlbmRpbmctdGFibGUtY2hhci10b2tlbnMtMj48YSBocmVmPSNjb25jZXB0LXBlbmRpbmctdGFibGUtY2hhci10b2tlbnM+cGVuZGluZyB0YWJsZQorICAgIGNoYXJhY3RlciB0b2tlbnM8L2E+PC92YXI+IGxpc3QgYXJlIGNoYXJhY3RlciB0b2tlbnMgdGhhdCBhcmUgbm90IDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9cGFyc2luZy1tYWluLWludGFibGV0ZXh0OnNwYWNlLWNoYXJhY3Rlcj5zcGFjZSBjaGFyYWN0ZXJzPC9hPiwgdGhlbiB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGFibGV0ZXh0OnBhcnNlLWVycm9yLTI+cGFyc2UgZXJyb3I8L2E+OiByZXByb2Nlc3MgdGhlCisgICAgY2hhcmFjdGVyIHRva2VucyBpbiB0aGUgPHZhciBpZD1wYXJzaW5nLW1haW4taW50YWJsZXRleHQ6Y29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9rZW5zLTM+PGEgaHJlZj0jY29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9rZW5zPnBlbmRpbmcgdGFibGUgY2hhcmFjdGVyCisgICAgdG9rZW5zPC9hPjwvdmFyPiBsaXN0IHVzaW5nIHRoZSBydWxlcyBnaXZlbiBpbiB0aGUgImFueXRoaW5nIGVsc2UiIGVudHJ5IGluIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGUgaWQ9cGFyc2luZy1tYWluLWludGFibGV0ZXh0OnBhcnNpbmctbWFpbi1pbnRhYmxlPmluIHRhYmxlPC9hPiIgaW5zZXJ0aW9uIG1vZGUuPC9wPgorCisKKworICAgIDxwPk90aGVyd2lzZSwgPGEgaHJlZj0jaW5zZXJ0LWEtY2hhcmFjdGVyIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxldGV4dDppbnNlcnQtYS1jaGFyYWN0ZXI+aW5zZXJ0IHRoZSBjaGFyYWN0ZXJzPC9hPiBnaXZlbiBieSB0aGUgPHZhciBpZD1wYXJzaW5nLW1haW4taW50YWJsZXRleHQ6Y29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9rZW5zLTQ+PGEgaHJlZj0jY29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9rZW5zPnBlbmRpbmcgdGFibGUgY2hhcmFjdGVyIHRva2VuczwvYT48L3Zhcj4gbGlzdC48L3A+CisKKworCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50YWJsZXRleHQ6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4gdG8gdGhlIDxhIGhyZWY9I29yaWdpbmFsLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRhYmxldGV4dDpvcmlnaW5hbC1pbnNlcnRpb24tbW9kZT5vcmlnaW5hbCBpbnNlcnRpb24gbW9kZTwvYT4gYW5kCisgICAgcmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDwvZGw+CisKKworICA8aDYgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbj4xMi4yLjUuNC4xMSBUaGUgIjxkZm4+aW4gY2FwdGlvbjwvZGZuPiIgaW5zZXJ0aW9uIG1vZGU8L2g2PgorCisgIDxwPldoZW4gdGhlIHVzZXIgYWdlbnQgaXMgdG8gYXBwbHkgdGhlIHJ1bGVzIGZvciB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmNhcHRpb24gaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpwYXJzaW5nLW1haW4taW5jYXB0aW9uPmluCisgIGNhcHRpb248L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5jYXB0aW9uOmluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImNhcHRpb24iPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246aGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGU+aGF2ZSBhIDxjb2RlPmNhcHRpb248L2NvZGU+IGVsZW1lbnQgaW4gdGFibGUgc2NvcGU8L2E+LCB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpwYXJzZS1lcnJvcj5wYXJzZQorICAgIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpmcmFnbWVudC1jYXNlPmZyYWdtZW50IGNhc2U8L2E+KTwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKyAgICA8cD48YSBocmVmPSNnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246Z2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncz5HZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPi48L3A+CisKKyAgICA8cD5Ob3csIGlmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpjdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9hPiBpcyBub3QgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5jYXB0aW9uOnRoZS1jYXB0aW9uLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtY2FwdGlvbi1lbGVtZW50PmNhcHRpb248L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYQorICAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246cGFyc2UtZXJyb3ItMj5wYXJzZSBlcnJvcjwvYT4uPC9wPgorCisgICAgPHA+UG9wIGVsZW1lbnRzIGZyb20gdGhpcyBzdGFjayB1bnRpbCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246dGhlLWNhcHRpb24tZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNhcHRpb24tZWxlbWVudD5jYXB0aW9uPC9hPjwvY29kZT4gZWxlbWVudCBoYXMgYmVlbiBwb3BwZWQgZnJvbSB0aGUKKyAgICBzdGFjay48L3A+CisKKyAgICA8cD48YSBocmVmPSNjbGVhci10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy11cC10by10aGUtbGFzdC1tYXJrZXIgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpjbGVhci10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy11cC10by10aGUtbGFzdC1tYXJrZXI+Q2xlYXIgdGhlIGxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRhYmxlIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246cGFyc2luZy1tYWluLWludGFibGU+aW4KKyAgICB0YWJsZTwvYT4iLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImNhcHRpb24iLCAiY29sIiwgImNvbGdyb3VwIiwgInRib2R5IiwgInRkIiwgInRmb290IiwKKyAgICJ0aCIsICJ0aGVhZCIsICJ0ciI8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAidGFibGUiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gZG9lcyBub3QgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZS0yPmhhdmUgYSA8Y29kZT5jYXB0aW9uPC9jb2RlPiBlbGVtZW50IGluIHRhYmxlIHNjb3BlPC9hPiwgdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246cGFyc2UtZXJyb3ItMz5wYXJzZQorICAgIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpmcmFnbWVudC1jYXNlLTI+ZnJhZ21lbnQgY2FzZTwvYT4pPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworCisgICAgPHA+PGEgaHJlZj0jZ2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncyBpZD1wYXJzaW5nLW1haW4taW5jYXB0aW9uOmdlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MtMj5HZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPi48L3A+CisKKyAgICA8cD5Ob3csIGlmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246dGhlLWNhcHRpb24tZWxlbWVudC0zPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNhcHRpb24tZWxlbWVudD5jYXB0aW9uPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiB0aGlzIGlzIGEKKyAgICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5jYXB0aW9uOnBhcnNlLWVycm9yLTQ+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPlBvcCBlbGVtZW50cyBmcm9tIHRoaXMgc3RhY2sgdW50aWwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5jYXB0aW9uOnRoZS1jYXB0aW9uLWVsZW1lbnQtND48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jYXB0aW9uLWVsZW1lbnQ+Y2FwdGlvbjwvYT48L2NvZGU+IGVsZW1lbnQgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlCisgICAgc3RhY2suPC9wPgorCisgICAgPHA+PGEgaHJlZj0jY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246Y2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyLTI+Q2xlYXIgdGhlIGxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246aW5zZXJ0aW9uLW1vZGUtMz5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRhYmxlIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246cGFyc2luZy1tYWluLWludGFibGUtMj5pbgorICAgIHRhYmxlPC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYm9keSIsICJjb2wiLCAiY29sZ3JvdXAiLCAiaHRtbCIsICJ0Ym9keSIsICJ0ZCIsCisgICAidGZvb3QiLCAidGgiLCAidGhlYWQiLCAidHIiPGRkPgorICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246cGFyc2UtZXJyb3ItNT5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbmNhcHRpb246dXNpbmctdGhlLXJ1bGVzLWZvcj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmJvZHkgaWQ9cGFyc2luZy1tYWluLWluY2FwdGlvbjpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5jYXB0aW9uOmluc2VydGlvbi1tb2RlLTQ+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPC9kbD4KKworCisgIDxoNiBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cD4xMi4yLjUuNC4xMiBUaGUgIjxkZm4+aW4gY29sdW1uIGdyb3VwPC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluY29sZ3JvdXAgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6cGFyc2luZy1tYWluLWluY29sZ3JvdXA+aW4gY29sdW1uIGdyb3VwPC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+LCB0aGUgdXNlciBhZ2VudCBtdXN0IGhhbmRsZSB0aGUgdG9rZW4KKyAgYXMgZm9sbG93czo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+QSBjaGFyYWN0ZXIgdG9rZW4gdGhhdCBpcyBvbmUgb2YgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OLCBVKzAwMEEgTElORSBGRUVEIChMRiksIFUrMDAwQworICAgRk9STSBGRUVEIChGRiksIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSwgb3IgVSswMDIwIFNQQUNFPGRkPgorICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNoYXJhY3RlciBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDppbnNlcnQtYS1jaGFyYWN0ZXI+SW5zZXJ0IHRoZSBjaGFyYWN0ZXI8L2E+LjwvcD4KKyAgIDxkdD5BIGNvbW1lbnQgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY29tbWVudCBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDppbnNlcnQtYS1jb21tZW50Pkluc2VydCBhIGNvbW1lbnQ8L2E+LjwvcD4KKyAgIDxkdD5BIERPQ1RZUEUgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaHRtbCI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnVzaW5nLXRoZS1ydWxlcy1mb3I+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnBhcnNpbmctbWFpbi1pbmJvZHk+aW4gYm9keTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOmluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJjb2wiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDppbnNlcnQtYW4taHRtbC1lbGVtZW50Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uIEltbWVkaWF0ZWx5IHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOmN1cnJlbnQtbm9kZT5jdXJyZW50CisgICAgbm9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jYWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6YWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWc+QWNrbm93bGVkZ2UgdGhlIHRva2VuJ3MgPGk+c2VsZi1jbG9zaW5nCisgICAgZmxhZzwvaT48L2E+LCBpZiBpdCBpcyBzZXQuPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiY29sZ3JvdXAiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnRoZS1jb2xncm91cC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNvbGdyb3VwLWVsZW1lbnQ+Y29sZ3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYQorICAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnBhcnNlLWVycm9yLTI+cGFyc2UgZXJyb3I8L2E+OyBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6Y3VycmVudC1ub2RlLTM+Y3VycmVudCBub2RlPC9hPiBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi4KKyAgICBTd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOmluc2VydGlvbi1tb2RlLTM+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZSBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDpwYXJzaW5nLW1haW4taW50YWJsZT5pbgorICAgIHRhYmxlPC9hPiIuPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiY29sIjxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gSWdub3JlIHRoZSB0b2tlbi48L3A+CisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRlbXBsYXRlIjxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJ0ZW1wbGF0ZSI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnVzaW5nLXRoZS1ydWxlcy1mb3ItMj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWQgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6cGFyc2luZy1tYWluLWluaGVhZD5pbiBoZWFkPC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6aW5zZXJ0aW9uLW1vZGUtND5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8ZHQ+QW4gZW5kLW9mLWZpbGUgdG9rZW48ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOnVzaW5nLXRoZS1ydWxlcy1mb3ItMz51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmJvZHkgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6cGFyc2luZy1tYWluLWluYm9keS0yPmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDppbnNlcnRpb24tbW9kZS01Pmluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgIDxkdD5Bbnl0aGluZyBlbHNlPGRkPgorCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOmN1cnJlbnQtbm9kZS00PmN1cnJlbnQgbm9kZTwvYT4gaXMgbm90IGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluY29sZ3JvdXA6dGhlLWNvbGdyb3VwLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS1jb2xncm91cC1lbGVtZW50PmNvbGdyb3VwPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiB0aGlzIGlzIGEKKyAgICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDpwYXJzZS1lcnJvci00PnBhcnNlIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOmN1cnJlbnQtbm9kZS01PmN1cnJlbnQgbm9kZTwvYT4gZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTM+c3RhY2sgb2Ygb3BlbgorICAgIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmNvbGdyb3VwOmluc2VydGlvbi1tb2RlLTY+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZSBpZD1wYXJzaW5nLW1haW4taW5jb2xncm91cDpwYXJzaW5nLW1haW4taW50YWJsZS0yPmluCisgICAgdGFibGU8L2E+Ii48L3A+CisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8L2RsPgorCisKKyAgPGg2IGlkPXBhcnNpbmctbWFpbi1pbnRib2R5PjEyLjIuNS40LjEzIFRoZSAiPGRmbj5pbiB0YWJsZSBib2R5PC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6cGFyc2luZy1tYWluLWludGJvZHk+aW4gdGFibGUgYm9keTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5Omluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzCisgIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJ0ciI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWJvZHktY29udGV4dCBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWJvZHktY29udGV4dD5DbGVhciB0aGUgc3RhY2sgYmFjayB0byBhIHRhYmxlIGJvZHkgY29udGV4dDwvYT4uIChTZWUgYmVsb3cuKTwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudD5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLCB0aGVuIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24KKyAgICBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludHIgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6cGFyc2luZy1tYWluLWludHI+aW4gcm93PC9hPiIuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAidGgiLCAidGQiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworCisgICAgPHA+PGEgaHJlZj0jY2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1ib2R5LWNvbnRleHQgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6Y2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1ib2R5LWNvbnRleHQtMj5DbGVhciB0aGUgc3RhY2sgYmFjayB0byBhIHRhYmxlIGJvZHkgY29udGV4dDwvYT4uIChTZWUgYmVsb3cuKTwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciBhICJ0ciIgc3RhcnQgdGFnIHRva2VuIHdpdGggbm8gYXR0cmlidXRlcywgdGhlbgorICAgIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6aW5zZXJ0aW9uLW1vZGUtMz5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRyIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OnBhcnNpbmctbWFpbi1pbnRyLTI+aW4KKyAgICByb3c8L2E+Ii48L3A+CisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgY3VycmVudCB0b2tlbi48L3A+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogInRib2R5IiwgInRmb290IiwKKyAgICJ0aGVhZCI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5Omhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlPmhhdmUgYW4gZWxlbWVudCBpbiB0YWJsZSBzY29wZTwvYT4gdGhhdCBpcyBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpodG1sLWVsZW1lbnRzPkhUTUwKKyAgICBlbGVtZW50PC9hPiB3aXRoIHRoZSBzYW1lIHRhZyBuYW1lIGFzIHRoZSB0b2tlbiwgdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OnBhcnNlLWVycm9yLTI+cGFyc2UgZXJyb3I8L2E+OworICAgIGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2NsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtYm9keS1jb250ZXh0IGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OmNsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtYm9keS1jb250ZXh0LTM+Q2xlYXIgdGhlIHN0YWNrIGJhY2sgdG8gYSB0YWJsZSBib2R5IGNvbnRleHQ8L2E+LiAoU2VlIGJlbG93Lik8L3A+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpjdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9hPiBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi4gU3dpdGNoIHRoZQorICAgIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5Omluc2VydGlvbi1tb2RlLTQ+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZSBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpwYXJzaW5nLW1haW4taW50YWJsZT5pbiB0YWJsZTwvYT4iLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImNhcHRpb24iLCAiY29sIiwKKyAgICJjb2xncm91cCIsICJ0Ym9keSIsICJ0Zm9vdCIsICJ0aGVhZCI8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAidGFibGUiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5Omhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlLTI+aGF2ZSBhIDxjb2RlPnRib2R5PC9jb2RlPiwgPGNvZGU+dGhlYWQ8L2NvZGU+LCBvciA8Y29kZT50Zm9vdDwvY29kZT4gZWxlbWVudCBpbiB0YWJsZQorICAgIHNjb3BlPC9hPiwgdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OnBhcnNlLWVycm9yLTM+cGFyc2UgZXJyb3I8L2E+OyBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKyAgICA8cD48YSBocmVmPSNjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWJvZHktY29udGV4dCBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWJvZHktY29udGV4dC00PkNsZWFyIHRoZSBzdGFjayBiYWNrIHRvIGEgdGFibGUgYm9keSBjb250ZXh0PC9hPi4gKFNlZSBiZWxvdy4pPC9wPgorCisKKworICAgIDxwPlBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OmN1cnJlbnQtbm9kZS0yPmN1cnJlbnQgbm9kZTwvYT4gZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTQ+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uIFN3aXRjaCB0aGUKKyAgICA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50Ym9keTppbnNlcnRpb24tbW9kZS01Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGUgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6cGFyc2luZy1tYWluLWludGFibGUtMj5pbiB0YWJsZTwvYT4iLjwvcD4KKworCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYm9keSIsICJjYXB0aW9uIiwgImNvbCIsICJjb2xncm91cCIsICJodG1sIiwgInRkIiwKKyAgICJ0aCIsICJ0ciI8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6cGFyc2UtZXJyb3ItND5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD1wYXJzaW5nLW1haW4taW50Ym9keTp1c2luZy10aGUtcnVsZXMtZm9yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGUgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6cGFyc2luZy1tYWluLWludGFibGUtMz5pbiB0YWJsZTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5Omluc2VydGlvbi1tb2RlLTY+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKyAgIDwvZGw+CisKKyAgPHA+V2hlbiB0aGUgc3RlcHMgYWJvdmUgcmVxdWlyZSB0aGUgVUEgdG8gPGRmbiBpZD1jbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWJvZHktY29udGV4dD5jbGVhciB0aGUgc3RhY2sgYmFjayB0byBhIHRhYmxlIGJvZHkgY29udGV4dDwvZGZuPiwKKyAgaXQgbWVhbnMgdGhhdCB0aGUgVUEgbXVzdCwgd2hpbGUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50Ym9keTpjdXJyZW50LW5vZGUtMz5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OnRoZS10Ym9keS1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiwKKyAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6dGhlLXRmb290LWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGZvb3QtZWxlbWVudD50Zm9vdDwvYT48L2NvZGU+LCA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50Ym9keTp0aGUtdGhlYWQtZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10aGVhZC1lbGVtZW50PnRoZWFkPC9hPjwvY29kZT4sIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OnRoZS10ZW1wbGF0ZS1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiwgb3IgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6dGhlLWh0bWwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQsIHBvcAorICBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNT5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OmN1cnJlbnQtbm9kZS00PmN1cnJlbnQgbm9kZTwvYT4gYmVpbmcgYW4gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGJvZHk6dGhlLWh0bWwtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCBhZnRlciB0aGlzCisgIHByb2Nlc3MgaXMgYSA8YSBocmVmPSNmcmFnbWVudC1jYXNlIGlkPXBhcnNpbmctbWFpbi1pbnRib2R5OmZyYWdtZW50LWNhc2U+ZnJhZ21lbnQgY2FzZTwvYT4uPC9wPgorCisKKyAgPGg2IGlkPXBhcnNpbmctbWFpbi1pbnRyPjEyLjIuNS40LjE0IFRoZSAiPGRmbj5pbiByb3c8L2Rmbj4iIGluc2VydGlvbiBtb2RlPC9oNj4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGlzIHRvIGFwcGx5IHRoZSBydWxlcyBmb3IgdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ciBpZD1wYXJzaW5nLW1haW4taW50cjpwYXJzaW5nLW1haW4taW50cj5pbgorICByb3c8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50cjppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcyBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJ0aCIsICJ0ZCI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLXJvdy1jb250ZXh0IGlkPXBhcnNpbmctbWFpbi1pbnRyOmNsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtcm93LWNvbnRleHQ+Q2xlYXIgdGhlIHN0YWNrIGJhY2sgdG8gYSB0YWJsZSByb3cgY29udGV4dDwvYT4uIChTZWUgYmVsb3cuKTwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hbi1odG1sLWVsZW1lbnQgaWQ9cGFyc2luZy1tYWluLWludHI6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudD5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLCB0aGVuIHN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludHI6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24KKyAgICBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGQgaWQ9cGFyc2luZy1tYWluLWludHI6cGFyc2luZy1tYWluLWludGQ+aW4gY2VsbDwvYT4iLjwvcD4KKworICAgIDxwPkluc2VydCBhIDxhIGhyZWY9I2NvbmNlcHQtcGFyc2VyLW1hcmtlciBpZD1wYXJzaW5nLW1haW4taW50cjpjb25jZXB0LXBhcnNlci1tYXJrZXI+bWFya2VyPC9hPiBhdCB0aGUgZW5kIG9mIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRyOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM+bGlzdCBvZgorICAgIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJ0ciI8ZGQ+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50cjpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnRyOmhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlPmhhdmUgYSA8Y29kZT50cjwvY29kZT4gZWxlbWVudCBpbiB0YWJsZSBzY29wZTwvYT4sIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW50cjpwYXJzZS1lcnJvcj5wYXJzZSBlcnJvcjwvYT47CisgICAgaWdub3JlIHRoZSB0b2tlbi48L3A+CisKKyAgICA8cD5PdGhlcndpc2U6PC9wPgorCisgICAgPHA+PGEgaHJlZj0jY2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1yb3ctY29udGV4dCBpZD1wYXJzaW5nLW1haW4taW50cjpjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLXJvdy1jb250ZXh0LTI+Q2xlYXIgdGhlIHN0YWNrIGJhY2sgdG8gYSB0YWJsZSByb3cgY29udGV4dDwvYT4uIChTZWUgYmVsb3cuKTwvcD4KKworICAgIDxwPlBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnRyOmN1cnJlbnQtbm9kZT5jdXJyZW50IG5vZGU8L2E+ICh3aGljaCB3aWxsIGJlIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludHI6dGhlLXRyLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdHItZWxlbWVudD50cjwvYT48L2NvZGU+IGVsZW1lbnQpIGZyb20gdGhlCisgICAgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50cjpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uIFN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludHI6aW5zZXJ0aW9uLW1vZGUtMz5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRib2R5IGlkPXBhcnNpbmctbWFpbi1pbnRyOnBhcnNpbmctbWFpbi1pbnRib2R5PmluIHRhYmxlIGJvZHk8L2E+Ii48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJjYXB0aW9uIiwgImNvbCIsICJjb2xncm91cCIsICJ0Ym9keSIsICJ0Zm9vdCIsCisgICAidGhlYWQiLCAidHIiPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRhYmxlIjxkZD4KKworCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludHI6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnRyOmhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlLTI+aGF2ZSBhIDxjb2RlPnRyPC9jb2RlPiBlbGVtZW50IGluIHRhYmxlIHNjb3BlPC9hPiwgdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRyOnBhcnNlLWVycm9yLTI+cGFyc2UgZXJyb3I8L2E+OworICAgIGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2NsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtcm93LWNvbnRleHQgaWQ9cGFyc2luZy1tYWluLWludHI6Y2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1yb3ctY29udGV4dC0zPkNsZWFyIHRoZSBzdGFjayBiYWNrIHRvIGEgdGFibGUgcm93IGNvbnRleHQ8L2E+LiAoU2VlIGJlbG93Lik8L3A+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50cjpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+ICh3aGljaCB3aWxsIGJlIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludHI6dGhlLXRyLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT4gZWxlbWVudCkgZnJvbSB0aGUKKyAgICA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRyOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi4gU3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50cjppbnNlcnRpb24tbW9kZS00Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9cGFyc2luZy1tYWluLWludHI6cGFyc2luZy1tYWluLWludGJvZHktMj5pbiB0YWJsZSBib2R5PC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAidGJvZHkiLCAidGZvb3QiLCAidGhlYWQiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludHI6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy01PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnRyOmhhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlLTM+aGF2ZSBhbiBlbGVtZW50IGluIHRhYmxlIHNjb3BlPC9hPiB0aGF0IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRyOmh0bWwtZWxlbWVudHM+SFRNTAorICAgIGVsZW1lbnQ8L2E+IHdpdGggdGhlIHNhbWUgdGFnIG5hbWUgYXMgdGhlIHRva2VuLCB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludHI6cGFyc2UtZXJyb3ItMz5wYXJzZSBlcnJvcjwvYT47CisgICAgaWdub3JlIHRoZSB0b2tlbi48L3A+CisKKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRyOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZSBpZD1wYXJzaW5nLW1haW4taW50cjpoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZS00PmhhdmUgYSA8Y29kZT50cjwvY29kZT4gZWxlbWVudCBpbiB0YWJsZSBzY29wZTwvYT4sIGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2NsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtcm93LWNvbnRleHQgaWQ9cGFyc2luZy1tYWluLWludHI6Y2xlYXItdGhlLXN0YWNrLWJhY2stdG8tYS10YWJsZS1yb3ctY29udGV4dC00PkNsZWFyIHRoZSBzdGFjayBiYWNrIHRvIGEgdGFibGUgcm93IGNvbnRleHQ8L2E+LiAoU2VlIGJlbG93Lik8L3A+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50cjpjdXJyZW50LW5vZGUtMz5jdXJyZW50IG5vZGU8L2E+ICh3aGljaCB3aWxsIGJlIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludHI6dGhlLXRyLWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT4gZWxlbWVudCkgZnJvbSB0aGUKKyAgICA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRyOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi4gU3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50cjppbnNlcnRpb24tbW9kZS01Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9cGFyc2luZy1tYWluLWludHI6cGFyc2luZy1tYWluLWludGJvZHktMz5pbiB0YWJsZSBib2R5PC9hPiIuPC9wPgorCisKKyAgICA8cD5SZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYm9keSIsICJjYXB0aW9uIiwgImNvbCIsICJjb2xncm91cCIsICJodG1sIiwgInRkIiwKKyAgICJ0aCI8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludHI6cGFyc2UtZXJyb3ItND5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbnRyOnVzaW5nLXRoZS1ydWxlcy1mb3I+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZSBpZD1wYXJzaW5nLW1haW4taW50cjpwYXJzaW5nLW1haW4taW50YWJsZT5pbiB0YWJsZTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRyOmluc2VydGlvbi1tb2RlLTY+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPC9kbD4KKworICA8cD5XaGVuIHRoZSBzdGVwcyBhYm92ZSByZXF1aXJlIHRoZSBVQSB0byA8ZGZuIGlkPWNsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtcm93LWNvbnRleHQ+Y2xlYXIgdGhlIHN0YWNrIGJhY2sgdG8gYSB0YWJsZSByb3cgY29udGV4dDwvZGZuPiwKKyAgaXQgbWVhbnMgdGhhdCB0aGUgVUEgbXVzdCwgd2hpbGUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50cjpjdXJyZW50LW5vZGUtND5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRyOnRoZS10ci1lbGVtZW50LTQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdHItZWxlbWVudD50cjwvYT48L2NvZGU+LAorICA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50cjp0aGUtdGVtcGxhdGUtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS10ZW1wbGF0ZS1lbGVtZW50PnRlbXBsYXRlPC9hPjwvY29kZT4sIG9yIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRyOnRoZS1odG1sLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50LCBwb3AgZWxlbWVudHMgZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50cjpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTg+c3RhY2sgb2Ygb3BlbgorICBlbGVtZW50czwvYT4uPC9wPgorCisgIDxwIGNsYXNzPW5vdGU+VGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW50cjpjdXJyZW50LW5vZGUtNT5jdXJyZW50IG5vZGU8L2E+IGJlaW5nIGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRyOnRoZS1odG1sLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+IGVsZW1lbnQgYWZ0ZXIgdGhpcworICBwcm9jZXNzIGlzIGEgPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD1wYXJzaW5nLW1haW4taW50cjpmcmFnbWVudC1jYXNlPmZyYWdtZW50IGNhc2U8L2E+LjwvcD4KKworCisgIDxoNiBpZD1wYXJzaW5nLW1haW4taW50ZD4xMi4yLjUuNC4xNSBUaGUgIjxkZm4+aW4gY2VsbDwvZGZuPiIgaW5zZXJ0aW9uIG1vZGU8L2g2PgorCisgIDxwPldoZW4gdGhlIHVzZXIgYWdlbnQgaXMgdG8gYXBwbHkgdGhlIHJ1bGVzIGZvciB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRkIGlkPXBhcnNpbmctbWFpbi1pbnRkOnBhcnNpbmctbWFpbi1pbnRkPmluIGNlbGw8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50ZDppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcyBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogInRkIiwgInRoIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRkOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gZG9lcyBub3QgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGUgaWQ9cGFyc2luZy1tYWluLWludGQ6aGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGU+aGF2ZSBhbiBlbGVtZW50IGluIHRhYmxlIHNjb3BlPC9hPiB0aGF0IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRkOmh0bWwtZWxlbWVudHM+SFRNTAorICAgIGVsZW1lbnQ8L2E+IHdpdGggdGhlIHNhbWUgdGFnIG5hbWUgYXMgdGhhdCBvZiB0aGUgdG9rZW4sIHRoZW4gdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRkOnBhcnNlLWVycm9yPnBhcnNlCisgICAgZXJyb3I8L2E+OyBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKyAgICA8cD48YSBocmVmPSNnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzIGlkPXBhcnNpbmctbWFpbi1pbnRkOmdlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3M+R2VuZXJhdGUgaW1wbGllZCBlbmQgdGFnczwvYT4uPC9wPgorCisgICAgPHA+Tm93LCBpZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnRkOmN1cnJlbnQtbm9kZT5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50ZDpodG1sLWVsZW1lbnRzLTI+SFRNTAorICAgIGVsZW1lbnQ8L2E+IHdpdGggdGhlIHNhbWUgdGFnIG5hbWUgYXMgdGhlIHRva2VuLCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW50ZDpwYXJzZS1lcnJvci0yPnBhcnNlIGVycm9yPC9hPi48L3A+CisKKyAgICA8cD5Qb3AgZWxlbWVudHMgZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50ZDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gc3RhY2sgdW50aWwgYW4gPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludGQ6aHRtbC1lbGVtZW50cy0zPkhUTUwgZWxlbWVudDwvYT4gd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGUgdG9rZW4gaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlCisgICAgc3RhY2suPC9wPgorCisgICAgPHA+PGEgaHJlZj0jY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyIGlkPXBhcnNpbmctbWFpbi1pbnRkOmNsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlcj5DbGVhciB0aGUgbGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50cyB1cCB0byB0aGUgbGFzdCBtYXJrZXI8L2E+LjwvcD4KKworICAgIDxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGQ6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRyIGlkPXBhcnNpbmctbWFpbi1pbnRkOnBhcnNpbmctbWFpbi1pbnRyPmluCisgICAgcm93PC9hPiIuPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiY2FwdGlvbiIsICJjb2wiLAorICAgImNvbGdyb3VwIiwgInRib2R5IiwgInRkIiwgInRmb290IiwgInRoIiwgInRoZWFkIiwgInRyIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRkOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIDxlbT5ub3Q8L2VtPiA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZSBpZD1wYXJzaW5nLW1haW4taW50ZDpoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZS0yPmhhdmUgYSA8Y29kZT50ZDwvY29kZT4gb3IgPGNvZGU+dGg8L2NvZGU+IGVsZW1lbnQgaW4gdGFibGUgc2NvcGU8L2E+LCB0aGVuIHRoaXMKKyAgICBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRkOnBhcnNlLWVycm9yLTM+cGFyc2UgZXJyb3I8L2E+OyBpZ25vcmUgdGhlIHRva2VuLiAoPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD1wYXJzaW5nLW1haW4taW50ZDpmcmFnbWVudC1jYXNlPmZyYWdtZW50IGNhc2U8L2E+KTwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgPGEgaHJlZj0jY2xvc2UtdGhlLWNlbGwgaWQ9cGFyc2luZy1tYWluLWludGQ6Y2xvc2UtdGhlLWNlbGw+Y2xvc2UgdGhlIGNlbGw8L2E+IChzZWUgYmVsb3cpIGFuZCByZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAiYm9keSIsICJjYXB0aW9uIiwKKyAgICJjb2wiLCAiY29sZ3JvdXAiLCAiaHRtbCI8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGQ6cGFyc2UtZXJyb3ItND5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgb25lIG9mOiAidGFibGUiLCAidGJvZHkiLAorICAgInRmb290IiwgInRoZWFkIiwgInRyIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRkOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZSBpZD1wYXJzaW5nLW1haW4taW50ZDpoYXMtYW4tZWxlbWVudC1pbi10YWJsZS1zY29wZS0zPmhhdmUgYW4gZWxlbWVudCBpbiB0YWJsZSBzY29wZTwvYT4gdGhhdCBpcyBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50ZDpodG1sLWVsZW1lbnRzLTQ+SFRNTAorICAgIGVsZW1lbnQ8L2E+IHdpdGggdGhlIHNhbWUgdGFnIG5hbWUgYXMgdGhhdCBvZiB0aGUgdG9rZW4sIHRoZW4gdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbnRkOnBhcnNlLWVycm9yLTU+cGFyc2UKKyAgICBlcnJvcjwvYT47IGlnbm9yZSB0aGUgdG9rZW4uPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlLCA8YSBocmVmPSNjbG9zZS10aGUtY2VsbCBpZD1wYXJzaW5nLW1haW4taW50ZDpjbG9zZS10aGUtY2VsbC0yPmNsb3NlIHRoZSBjZWxsPC9hPiAoc2VlIGJlbG93KSBhbmQgcmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDxkdD5Bbnl0aGluZyBlbHNlPGRkPgorCisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD1wYXJzaW5nLW1haW4taW50ZDp1c2luZy10aGUtcnVsZXMtZm9yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1wYXJzaW5nLW1haW4taW50ZDpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50ZDppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgIDwvZGw+CisKKyAgPHA+V2hlcmUgdGhlIHN0ZXBzIGFib3ZlIHNheSB0byA8ZGZuIGlkPWNsb3NlLXRoZS1jZWxsPmNsb3NlIHRoZSBjZWxsPC9kZm4+LCB0aGV5IG1lYW4gdG8gcnVuIHRoZSBmb2xsb3dpbmcKKyAgYWxnb3JpdGhtOjwvcD4KKworICA8b2w+PGxpPjxwPjxhIGhyZWY9I2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3MgaWQ9cGFyc2luZy1tYWluLWludGQ6Z2VuZXJhdGUtaW1wbGllZC1lbmQtdGFncy0yPkdlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3M8L2E+LjxsaT48cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnRkOmN1cnJlbnQtbm9kZS0yPmN1cnJlbnQgbm9kZTwvYT4gaXMgbm90IG5vdyBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRkOnRoZS10ZC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRkLWVsZW1lbnQ+dGQ8L2E+PC9jb2RlPiBlbGVtZW50IG9yIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGQ6dGhlLXRoLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+CisgICBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW50ZDpwYXJzZS1lcnJvci02PnBhcnNlIGVycm9yPC9hPi48bGk+PHA+UG9wIGVsZW1lbnRzIGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWludGQ6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy01PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHN0YWNrIHVudGlsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWludGQ6dGhlLXRkLWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ZC1lbGVtZW50PnRkPC9hPjwvY29kZT4KKyAgIGVsZW1lbnQgb3IgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50ZDp0aGUtdGgtZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRoLWVsZW1lbnQ+dGg8L2E+PC9jb2RlPiBlbGVtZW50IGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZSBzdGFjay48bGk+PHA+PGEgaHJlZj0jY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyIGlkPXBhcnNpbmctbWFpbi1pbnRkOmNsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlci0yPkNsZWFyIHRoZSBsaXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHVwIHRvIHRoZSBsYXN0IG1hcmtlcjwvYT4uPGxpPjxwPlN3aXRjaCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGQ6aW5zZXJ0aW9uLW1vZGUtND5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRyIGlkPXBhcnNpbmctbWFpbi1pbnRkOnBhcnNpbmctbWFpbi1pbnRyLTI+aW4KKyAgIHJvdzwvYT4iLjwvb2w+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50ZDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTY+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gY2Fubm90IGhhdmUgYm90aCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRkOnRoZS10ZC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+IGFuZCBhCisgIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRkOnRoZS10aC1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGgtZWxlbWVudD50aDwvYT48L2NvZGU+IGVsZW1lbnQgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGUgaWQ9cGFyc2luZy1tYWluLWludGQ6aGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGUtND5pbiB0YWJsZSBzY29wZTwvYT4gYXQgdGhlCisgIHNhbWUgdGltZSwgbm9yIGNhbiBpdCBoYXZlIG5laXRoZXIgd2hlbiB0aGUgPGEgaHJlZj0jY2xvc2UtdGhlLWNlbGwgaWQ9cGFyc2luZy1tYWluLWludGQ6Y2xvc2UtdGhlLWNlbGwtMz5jbG9zZSB0aGUgY2VsbDwvYT4gYWxnb3JpdGhtIGlzIGludm9rZWQuPC9wPgorCisKKyAgPGg2IGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdD4xMi4yLjUuNC4xNiBUaGUgIjxkZm4+aW4gc2VsZWN0PC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluc2VsZWN0IGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDpwYXJzaW5nLW1haW4taW5zZWxlY3Q+aW4KKyAgc2VsZWN0PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0Omluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgVSswMDAwIE5VTEw8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gSWdub3JlIHRoZSB0b2tlbi48L3A+CisgICA8ZHQ+QW55IG90aGVyIGNoYXJhY3RlciB0b2tlbjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNoYXJhY3RlciBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6aW5zZXJ0LWEtY2hhcmFjdGVyPkluc2VydCB0aGUgdG9rZW4ncyBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICAgPGR0PkEgY29tbWVudCB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jb21tZW50IGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDppbnNlcnQtYS1jb21tZW50Pkluc2VydCBhIGNvbW1lbnQ8L2E+LjwvcD4KKyAgIDxkdD5BIERPQ1RZUEUgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaHRtbCI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDp1c2luZy10aGUtcnVsZXMtZm9yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6cGFyc2luZy1tYWluLWluYm9keT5pbiBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0Omluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJvcHRpb24iPGRkPgorCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDpjdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9hPiBpcyBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6dGhlLW9wdGlvbi1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0aW9uLWVsZW1lbnQ+b3B0aW9uPC9hPjwvY29kZT4gZWxlbWVudCwgcG9wIHRoYXQgbm9kZSBmcm9tIHRoZQorICAgIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPC9wPgorCisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDppbnNlcnQtYW4taHRtbC1lbGVtZW50Pkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgIm9wdGdyb3VwIjxkZD4KKworCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6Y3VycmVudC1ub2RlLTI+Y3VycmVudCBub2RlPC9hPiBpcyBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6dGhlLW9wdGlvbi1lbGVtZW50LTI+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1vcHRpb24tZWxlbWVudD5vcHRpb248L2E+PC9jb2RlPiBlbGVtZW50LCBwb3AgdGhhdCBub2RlIGZyb20gdGhlCisgICAgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDpjdXJyZW50LW5vZGUtMz5jdXJyZW50IG5vZGU8L2E+IGlzIGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDp0aGUtb3B0Z3JvdXAtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGdyb3VwLWVsZW1lbnQ+b3B0Z3JvdXA8L2E+PC9jb2RlPiBlbGVtZW50LCBwb3AgdGhhdCBub2RlIGZyb20gdGhlCisgICAgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworCisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWFuLWh0bWwtZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6aW5zZXJ0LWFuLWh0bWwtZWxlbWVudC0yPkluc2VydCBhbiBIVE1MIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAib3B0Z3JvdXAiPGRkPgorCisKKyAgICA8cD5GaXJzdCwgaWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6Y3VycmVudC1ub2RlLTQ+Y3VycmVudCBub2RlPC9hPiBpcyBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6dGhlLW9wdGlvbi1lbGVtZW50LTM+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1vcHRpb24tZWxlbWVudD5vcHRpb248L2E+PC9jb2RlPiBlbGVtZW50LCBhbmQgdGhlIG5vZGUKKyAgICBpbW1lZGlhdGVseSBiZWZvcmUgaXQgaW4gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBpcyBhbiA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6dGhlLW9wdGdyb3VwLWVsZW1lbnQtMj48YSBocmVmPWZvcm1zLmh0bWwjdGhlLW9wdGdyb3VwLWVsZW1lbnQ+b3B0Z3JvdXA8L2E+PC9jb2RlPgorICAgIGVsZW1lbnQsIHRoZW4gcG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OmN1cnJlbnQtbm9kZS01PmN1cnJlbnQgbm9kZTwvYT4gZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy01PnN0YWNrIG9mIG9wZW4KKyAgICBlbGVtZW50czwvYT4uPC9wPgorCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDpjdXJyZW50LW5vZGUtNj5jdXJyZW50IG5vZGU8L2E+IGlzIGFuIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDp0aGUtb3B0Z3JvdXAtZWxlbWVudC0zPjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudD5vcHRncm91cDwvYT48L2NvZGU+IGVsZW1lbnQsIHRoZW4gcG9wIHRoYXQgbm9kZSBmcm9tCisgICAgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi4gT3RoZXJ3aXNlLCB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnBhcnNlLWVycm9yLTM+cGFyc2UgZXJyb3I8L2E+OyBpZ25vcmUKKyAgICB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAib3B0aW9uIjxkZD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OmN1cnJlbnQtbm9kZS03PmN1cnJlbnQgbm9kZTwvYT4gaXMgYW4gPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnRoZS1vcHRpb24tZWxlbWVudC00PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtb3B0aW9uLWVsZW1lbnQ+b3B0aW9uPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiBwb3AgdGhhdCBub2RlIGZyb20KKyAgICB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy03PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LiBPdGhlcndpc2UsIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6cGFyc2UtZXJyb3ItND5wYXJzZSBlcnJvcjwvYT47IGlnbm9yZQorICAgIHRoZSB0b2tlbi48L3A+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJzZWxlY3QiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtOD5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1zZWxlY3Qtc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0Omhhcy1hbi1lbGVtZW50LWluLXNlbGVjdC1zY29wZT5oYXZlIGEgPGNvZGU+c2VsZWN0PC9jb2RlPiBlbGVtZW50IGluIHNlbGVjdCBzY29wZTwvYT4sIHRoaXMgaXMgYSA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6cGFyc2UtZXJyb3ItNT5wYXJzZQorICAgIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OmZyYWdtZW50LWNhc2U+ZnJhZ21lbnQgY2FzZTwvYT4pPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlOjwvcD4KKworICAgIDxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTk+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gdW50aWwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6dGhlLXNlbGVjdC1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtc2VsZWN0LWVsZW1lbnQ+c2VsZWN0PC9hPjwvY29kZT4gZWxlbWVudAorICAgIGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZSBzdGFjay48L3A+CisKKyAgICA8cD48YSBocmVmPSNyZXNldC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlhdGVseSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6cmVzZXQtdGhlLWluc2VydGlvbi1tb2RlLWFwcHJvcHJpYXRlbHk+UmVzZXQgdGhlIGluc2VydGlvbiBtb2RlIGFwcHJvcHJpYXRlbHk8L2E+LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJzZWxlY3QiPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnBhcnNlLWVycm9yLTY+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMTA+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gZG9lcyBub3QgPGEgaHJlZj0jaGFzLWFuLWVsZW1lbnQtaW4tc2VsZWN0LXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDpoYXMtYW4tZWxlbWVudC1pbi1zZWxlY3Qtc2NvcGUtMj5oYXZlIGEgPGNvZGU+c2VsZWN0PC9jb2RlPiBlbGVtZW50IGluIHNlbGVjdCBzY29wZTwvYT4sIGlnbm9yZSB0aGUgdG9rZW4uCisgICAgKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OmZyYWdtZW50LWNhc2UtMj5mcmFnbWVudCBjYXNlPC9hPik8L3A+CisKKyAgICA8cD5PdGhlcndpc2U6PC9wPgorCisgICAgPHA+UG9wIGVsZW1lbnRzIGZyb20gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMTE+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gdW50aWwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6dGhlLXNlbGVjdC1lbGVtZW50LTI+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1zZWxlY3QtZWxlbWVudD5zZWxlY3Q8L2E+PC9jb2RlPiBlbGVtZW50CisgICAgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlIHN0YWNrLjwvcD4KKworICAgIDxwPjxhIGhyZWY9I3Jlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5IGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDpyZXNldC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlhdGVseS0yPlJlc2V0IHRoZSBpbnNlcnRpb24gbW9kZSBhcHByb3ByaWF0ZWx5PC9hPi48L3A+CisKKworICAgIDxwIGNsYXNzPW5vdGU+SXQganVzdCBnZXRzIHRyZWF0ZWQgbGlrZSBhbiBlbmQgdGFnLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImlucHV0IiwgImtleWdlbiIsICJ0ZXh0YXJlYSI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6cGFyc2UtZXJyb3ItNz5QYXJzZSBlcnJvcjwvYT4uPC9wPgorCisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0xMj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBkb2VzIG5vdCA8YSBocmVmPSNoYXMtYW4tZWxlbWVudC1pbi1zZWxlY3Qtc2NvcGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0Omhhcy1hbi1lbGVtZW50LWluLXNlbGVjdC1zY29wZS0zPmhhdmUgYSA8Y29kZT5zZWxlY3Q8L2NvZGU+IGVsZW1lbnQgaW4gc2VsZWN0IHNjb3BlPC9hPiwgaWdub3JlIHRoZSB0b2tlbi4KKyAgICAoPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6ZnJhZ21lbnQtY2FzZS0zPmZyYWdtZW50IGNhc2U8L2E+KTwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKyAgICA8cD5Qb3AgZWxlbWVudHMgZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3Q6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0xMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB1bnRpbCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDp0aGUtc2VsZWN0LWVsZW1lbnQtMz48YSBocmVmPWZvcm1zLmh0bWwjdGhlLXNlbGVjdC1lbGVtZW50PnNlbGVjdDwvYT48L2NvZGU+IGVsZW1lbnQKKyAgICBoYXMgYmVlbiBwb3BwZWQgZnJvbSB0aGUgc3RhY2suPC9wPgorCisgICAgPHA+PGEgaHJlZj0jcmVzZXQtdGhlLWluc2VydGlvbi1tb2RlLWFwcHJvcHJpYXRlbHkgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnJlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5LTM+UmVzZXQgdGhlIGluc2VydGlvbiBtb2RlIGFwcHJvcHJpYXRlbHk8L2E+LjwvcD4KKworCisgICAgPHA+UmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJzY3JpcHQiLCAidGVtcGxhdGUiPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgInRlbXBsYXRlIjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnVzaW5nLXRoZS1ydWxlcy1mb3ItMj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWQgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnBhcnNpbmctbWFpbi1pbmhlYWQ+aW4gaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdDppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgIDxkdD5BbiBlbmQtb2YtZmlsZSB0b2tlbjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnVzaW5nLXRoZS1ydWxlcy1mb3ItMz51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmJvZHkgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnBhcnNpbmctbWFpbi1pbmJvZHktMj5pbiBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0Omluc2VydGlvbi1tb2RlLTQ+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0OnBhcnNlLWVycm9yLTg+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDwvZGw+CisKKworICA8aDYgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0aW50YWJsZT4xMi4yLjUuNC4xNyBUaGUgIjxkZm4+aW4gc2VsZWN0IGluIHRhYmxlPC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluc2VsZWN0aW50YWJsZSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlOnBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU+aW4gc2VsZWN0IGluIHRhYmxlPC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0aW50YWJsZTppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZQorICB0b2tlbiBhcyBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJjYXB0aW9uIiwgInRhYmxlIiwgInRib2R5IiwgInRmb290IiwgInRoZWFkIiwgInRyIiwKKyAgICJ0ZCIsICJ0aCI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi48L3A+CisKKworICAgIDxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiB1bnRpbCBhIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6dGhlLXNlbGVjdC1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtc2VsZWN0LWVsZW1lbnQ+c2VsZWN0PC9hPjwvY29kZT4gZWxlbWVudAorICAgIGhhcyBiZWVuIHBvcHBlZCBmcm9tIHRoZSBzdGFjay48L3A+CisKKyAgICA8cD48YSBocmVmPSNyZXNldC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlhdGVseSBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlOnJlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5PlJlc2V0IHRoZSBpbnNlcnRpb24gbW9kZSBhcHByb3ByaWF0ZWx5PC9hPi48L3A+CisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJjYXB0aW9uIiwgInRhYmxlIiwgInRib2R5IiwgInRmb290IiwgInRoZWFkIiwgInRyIiwKKyAgICJ0ZCIsICJ0aCI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwPklmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGRvZXMgbm90IDxhIGhyZWY9I2hhcy1hbi1lbGVtZW50LWluLXRhYmxlLXNjb3BlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6aGFzLWFuLWVsZW1lbnQtaW4tdGFibGUtc2NvcGU+aGF2ZSBhbiBlbGVtZW50IGluIHRhYmxlIHNjb3BlPC9hPiB0aGF0IGlzIGFuIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNodG1sLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6aHRtbC1lbGVtZW50cz5IVE1MCisgICAgZWxlbWVudDwvYT4gd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSBhcyB0aGF0IG9mIHRoZSB0b2tlbiwgdGhlbiBpZ25vcmUgdGhlIHRva2VuLjwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKworICAgIDxwPlBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0zPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIGEgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0aW50YWJsZTp0aGUtc2VsZWN0LWVsZW1lbnQtMj48YSBocmVmPWZvcm1zLmh0bWwjdGhlLXNlbGVjdC1lbGVtZW50PnNlbGVjdDwvYT48L2NvZGU+IGVsZW1lbnQKKyAgICBoYXMgYmVlbiBwb3BwZWQgZnJvbSB0aGUgc3RhY2suPC9wPgorCisgICAgPHA+PGEgaHJlZj0jcmVzZXQtdGhlLWluc2VydGlvbi1tb2RlLWFwcHJvcHJpYXRlbHkgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0aW50YWJsZTpyZXNldC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlhdGVseS0yPlJlc2V0IHRoZSBpbnNlcnRpb24gbW9kZSBhcHByb3ByaWF0ZWx5PC9hPi48L3A+CisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QW55dGhpbmcgZWxzZTxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWluc2VsZWN0aW50YWJsZTp1c2luZy10aGUtcnVsZXMtZm9yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluc2VsZWN0IGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6cGFyc2luZy1tYWluLWluc2VsZWN0PmluIHNlbGVjdDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnNlbGVjdGludGFibGU6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8L2RsPgorCisKKworICA8aDYgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU+MTIuMi41LjQuMTggVGhlICI8ZGZuPmluIHRlbXBsYXRlPC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGVtcGxhdGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6cGFyc2luZy1tYWluLWludGVtcGxhdGU+aW4KKyAgdGVtcGxhdGU8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcyBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIGNoYXJhY3RlciB0b2tlbjxkdD5BIGNvbW1lbnQgdG9rZW48ZHQ+QSBET0NUWVBFIHRva2VuPGRkPgorCisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTp1c2luZy10aGUtcnVsZXMtZm9yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTppbnNlcnRpb24tbW9kZS0yPmluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJiYXNlIiwgImJhc2Vmb250IiwgImJnc291bmQiLCAibGluayIsICJtZXRhIiwgIm5vZnJhbWVzIiwgInNjcmlwdCIsICJzdHlsZSIsICJ0ZW1wbGF0ZSIsICJ0aXRsZSI8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAidGVtcGxhdGUiPGRkPgorCisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTp1c2luZy10aGUtcnVsZXMtZm9yLTI+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnBhcnNpbmctbWFpbi1pbmhlYWQ+aW4gaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmluc2VydGlvbi1tb2RlLTM+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzIG9uZSBvZjogImNhcHRpb24iLCAiY29sZ3JvdXAiLCAidGJvZHkiLCAidGZvb3QiLCAidGhlYWQiPGRkPgorCisgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LXRlbXBsYXRlLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmN1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGU+Y3VycmVudCB0ZW1wbGF0ZSBpbnNlcnRpb24gbW9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6c3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzPnN0YWNrIG9mIHRlbXBsYXRlCisgICAgaW5zZXJ0aW9uIG1vZGVzPC9hPi48L3A+CisKKyAgICA8cD5QdXNoICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50YWJsZSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpwYXJzaW5nLW1haW4taW50YWJsZT5pbiB0YWJsZTwvYT4iIG9udG8gdGhlIDxhIGhyZWY9I3N0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2RlcyBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMtMj5zdGFjayBvZgorICAgIHRlbXBsYXRlIGluc2VydGlvbiBtb2RlczwvYT4gc28gdGhhdCBpdCBpcyB0aGUgbmV3IDxhIGhyZWY9I2N1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZS0yPmN1cnJlbnQgdGVtcGxhdGUgaW5zZXJ0aW9uCisgICAgbW9kZTwvYT4uPC9wPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTppbnNlcnRpb24tbW9kZS00Pmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6cGFyc2luZy1tYWluLWludGFibGUtMj5pbgorICAgIHRhYmxlPC9hPiIsIGFuZCByZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJjb2wiPGRkPgorCisgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LXRlbXBsYXRlLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmN1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUtMz5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2RlcyBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMtMz5zdGFjayBvZiB0ZW1wbGF0ZQorICAgIGluc2VydGlvbiBtb2RlczwvYT4uPC9wPgorCisgICAgPHA+UHVzaCAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluY29sZ3JvdXAgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6cGFyc2luZy1tYWluLWluY29sZ3JvdXA+aW4gY29sdW1uIGdyb3VwPC9hPiIgb250byB0aGUKKyAgICA8YSBocmVmPSNzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6c3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzLTQ+c3RhY2sgb2YgdGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGVzPC9hPiBzbyB0aGF0IGl0IGlzIHRoZSBuZXcgPGEgaHJlZj0jY3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpjdXJyZW50LXRlbXBsYXRlLWluc2VydGlvbi1tb2RlLTQ+Y3VycmVudCB0ZW1wbGF0ZQorICAgIGluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmluc2VydGlvbi1tb2RlLTU+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5jb2xncm91cCBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpwYXJzaW5nLW1haW4taW5jb2xncm91cC0yPmluCisgICAgY29sdW1uIGdyb3VwPC9hPiIsIGFuZCByZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJ0ciI8ZGQ+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZS01PmN1cnJlbnQgdGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnN0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2Rlcy01PnN0YWNrIG9mIHRlbXBsYXRlCisgICAgaW5zZXJ0aW9uIG1vZGVzPC9hPi48L3A+CisKKyAgICA8cD5QdXNoICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50Ym9keSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpwYXJzaW5nLW1haW4taW50Ym9keT5pbiB0YWJsZSBib2R5PC9hPiIgb250byB0aGUgPGEgaHJlZj0jc3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnN0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2Rlcy02PnN0YWNrCisgICAgb2YgdGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGVzPC9hPiBzbyB0aGF0IGl0IGlzIHRoZSBuZXcgPGEgaHJlZj0jY3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpjdXJyZW50LXRlbXBsYXRlLWluc2VydGlvbi1tb2RlLTY+Y3VycmVudCB0ZW1wbGF0ZSBpbnNlcnRpb24KKyAgICBtb2RlPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmluc2VydGlvbi1tb2RlLTY+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50Ym9keSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpwYXJzaW5nLW1haW4taW50Ym9keS0yPmluCisgICAgdGFibGUgYm9keTwvYT4iLCBhbmQgcmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICJ0ZCIsICJ0aCI8ZGQ+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZS03PmN1cnJlbnQgdGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnN0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2Rlcy03PnN0YWNrIG9mIHRlbXBsYXRlCisgICAgaW5zZXJ0aW9uIG1vZGVzPC9hPi48L3A+CisKKyAgICA8cD5QdXNoICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ciBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpwYXJzaW5nLW1haW4taW50cj5pbiByb3c8L2E+IiBvbnRvIHRoZSA8YSBocmVmPSNzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6c3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzLTg+c3RhY2sgb2YgdGVtcGxhdGUKKyAgICBpbnNlcnRpb24gbW9kZXM8L2E+IHNvIHRoYXQgaXQgaXMgdGhlIG5ldyA8YSBocmVmPSNjdXJyZW50LXRlbXBsYXRlLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmN1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUtOD5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmluc2VydGlvbi1tb2RlLTc+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ciBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpwYXJzaW5nLW1haW4taW50ci0yPmluCisgICAgcm93PC9hPiIsIGFuZCByZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPGR0PkFueSBvdGhlciBzdGFydCB0YWc8ZGQ+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZS05PmN1cnJlbnQgdGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnN0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2Rlcy05PnN0YWNrIG9mIHRlbXBsYXRlCisgICAgaW5zZXJ0aW9uIG1vZGVzPC9hPi48L3A+CisKKyAgICA8cD5QdXNoICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnBhcnNpbmctbWFpbi1pbmJvZHktMj5pbiBib2R5PC9hPiIgb250byB0aGUgPGEgaHJlZj0jc3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnN0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2Rlcy0xMD5zdGFjayBvZiB0ZW1wbGF0ZQorICAgIGluc2VydGlvbiBtb2RlczwvYT4gc28gdGhhdCBpdCBpcyB0aGUgbmV3IDxhIGhyZWY9I2N1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZS0xMD5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgICA8cD5Td2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmluc2VydGlvbi1tb2RlLTg+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnBhcnNpbmctbWFpbi1pbmJvZHktMz5pbgorICAgIGJvZHk8L2E+IiwgYW5kIHJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8ZHQ+QW55IG90aGVyIGVuZCB0YWc8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BbiBlbmQtb2YtZmlsZSB0b2tlbjxkZD4KKworICAgIDxwPklmIHRoZXJlIGlzIG5vIDxjb2RlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnRoZS10ZW1wbGF0ZS1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiBlbGVtZW50IG9uIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4sIHRoZW4KKyAgICA8YSBocmVmPSNzdG9wLXBhcnNpbmcgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6c3RvcC1wYXJzaW5nPnN0b3AgcGFyc2luZzwvYT4uICg8YSBocmVmPSNmcmFnbWVudC1jYXNlIGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOmZyYWdtZW50LWNhc2U+ZnJhZ21lbnQgY2FzZTwvYT4pPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlLCB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6cGFyc2UtZXJyb3ItMj5wYXJzZSBlcnJvcjwvYT4uPC9wPgorCisKKyAgICA8cD5Qb3AgZWxlbWVudHMgZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gdW50aWwgYSA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTp0aGUtdGVtcGxhdGUtZWxlbWVudC0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPgorICAgIGVsZW1lbnQgaGFzIGJlZW4gcG9wcGVkIGZyb20gdGhlIHN0YWNrLjwvcD4KKworICAgIDxwPjxhIGhyZWY9I2NsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlciBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpjbGVhci10aGUtbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cy11cC10by10aGUtbGFzdC1tYXJrZXI+Q2xlYXIgdGhlIGxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyPC9hPi48L3A+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWludGVtcGxhdGU6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZS0xMT5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9hPiBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLXRlbXBsYXRlLWluc2VydGlvbi1tb2RlcyBpZD1wYXJzaW5nLW1haW4taW50ZW1wbGF0ZTpzdGFjay1vZi10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZXMtMTE+c3RhY2sgb2YgdGVtcGxhdGUKKyAgICBpbnNlcnRpb24gbW9kZXM8L2E+LjwvcD4KKworICAgIDxwPjxhIGhyZWY9I3Jlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5IGlkPXBhcnNpbmctbWFpbi1pbnRlbXBsYXRlOnJlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5PlJlc2V0IHRoZSBpbnNlcnRpb24gbW9kZSBhcHByb3ByaWF0ZWx5PC9hPi48L3A+CisKKworICAgIDxwPlJlcHJvY2VzcyB0aGUgdG9rZW4uPC9wPgorCisgICA8L2RsPgorCisKKyAgPGg2IGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk+MTIuMi41LjQuMTkgVGhlICI8ZGZuPmFmdGVyIGJvZHk8L2Rmbj4iIGluc2VydGlvbiBtb2RlPC9oNj4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGlzIHRvIGFwcGx5IHRoZSBydWxlcyBmb3IgdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4tYWZ0ZXJib2R5IGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6cGFyc2luZy1tYWluLWFmdGVyYm9keT5hZnRlciBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcyBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIGNoYXJhY3RlciB0b2tlbiB0aGF0IGlzIG9uZSBvZiBVKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04sIFUrMDAwQSBMSU5FIEZFRUQgKExGKSwgVSswMDBDCisgICBGT1JNIEZFRUQgKEZGKSwgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpLCBvciBVKzAwMjAgU1BBQ0U8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6dXNpbmctdGhlLXJ1bGVzLWZvcj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmJvZHkgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJib2R5Omluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkEgY29tbWVudCB0b2tlbjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNvbW1lbnQgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTppbnNlcnQtYS1jb21tZW50Pkluc2VydCBhIGNvbW1lbnQ8L2E+IGFzIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6c3RhY2stb2Ytb3Blbi1lbGVtZW50cz5zdGFjayBvZgorICAgIG9wZW4gZWxlbWVudHM8L2E+ICh0aGUgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTp0aGUtaHRtbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCkuPC9wPgorCisgICA8ZHQ+QSBET0NUWVBFIHRva2VuPGRkPgorICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaHRtbCI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6dXNpbmctdGhlLXJ1bGVzLWZvci0yPnVzaW5nIHRoZSBydWxlcyBmb3I8L2E+IHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJib2R5OnBhcnNpbmctbWFpbi1pbmJvZHktMj5pbiBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgIDxkdD5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJodG1sIjxkZD4KKworICAgIDxwPklmIHRoZSBwYXJzZXIgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBhcyBwYXJ0IG9mIHRoZSA8YSBocmVmPSNodG1sLWZyYWdtZW50LXBhcnNpbmctYWxnb3JpdGhtIGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6aHRtbC1mcmFnbWVudC1wYXJzaW5nLWFsZ29yaXRobT5IVE1MIGZyYWdtZW50IHBhcnNpbmcKKyAgICBhbGdvcml0aG08L2E+LCB0aGlzIGlzIGEgPGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTpwYXJzZS1lcnJvci0yPnBhcnNlIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTpmcmFnbWVudC1jYXNlPmZyYWdtZW50CisgICAgY2FzZTwvYT4pPC9wPgorCisgICAgPHA+T3RoZXJ3aXNlLCBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6aW5zZXJ0aW9uLW1vZGUtND5pbnNlcnRpb24gbW9kZTwvYT4gdG8gIjxhIGhyZWY9I3RoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6dGhlLWFmdGVyLWFmdGVyLWJvZHktaW5zZXJ0aW9uLW1vZGU+YWZ0ZXIgYWZ0ZXIgYm9keTwvYT4iLjwvcD4KKworICAgPGR0PkFuIGVuZC1vZi1maWxlIHRva2VuPGRkPgorICAgIDxwPjxhIGhyZWY9I3N0b3AtcGFyc2luZyBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJib2R5OnN0b3AtcGFyc2luZz5TdG9wIHBhcnNpbmc8L2E+LjwvcD4KKyAgIDxkdD5Bbnl0aGluZyBlbHNlPGRkPgorCisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWFmdGVyYm9keTpwYXJzZS1lcnJvci0zPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJib2R5Omluc2VydGlvbi1tb2RlLTU+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXBhcnNpbmctbWFpbi1hZnRlcmJvZHk6cGFyc2luZy1tYWluLWluYm9keS0zPmluIGJvZHk8L2E+IiBhbmQgcmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDwvZGw+CisKKworICA8aDYgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ+MTIuMi41LjQuMjAgVGhlICI8ZGZuPmluIGZyYW1lc2V0PC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluZnJhbWVzZXQgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6cGFyc2luZy1tYWluLWluZnJhbWVzZXQ+aW4KKyAgZnJhbWVzZXQ8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDppbnNlcnRpb24tbW9kZT5pbnNlcnRpb24gbW9kZTwvYT4sIHRoZSB1c2VyIGFnZW50IG11c3QgaGFuZGxlIHRoZSB0b2tlbiBhcyBmb2xsb3dzOjwvcD4KKworICA8ZGwgY2xhc3M9c3dpdGNoPjxkdD5BIGNoYXJhY3RlciB0b2tlbiB0aGF0IGlzIG9uZSBvZiBVKzAwMDkgQ0hBUkFDVEVSIFRBQlVMQVRJT04sIFUrMDAwQSBMSU5FIEZFRUQgKExGKSwgVSswMDBDCisgICBGT1JNIEZFRUQgKEZGKSwgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpLCBvciBVKzAwMjAgU1BBQ0U8ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY2hhcmFjdGVyIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0Omluc2VydC1hLWNoYXJhY3Rlcj5JbnNlcnQgdGhlIGNoYXJhY3RlcjwvYT4uPC9wPgorICAgPGR0PkEgY29tbWVudCB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jb21tZW50IGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0Omluc2VydC1hLWNvbW1lbnQ+SW5zZXJ0IGEgY29tbWVudDwvYT4uPC9wPgorICAgPGR0PkEgRE9DVFlQRSB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJodG1sIjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6dXNpbmctdGhlLXJ1bGVzLWZvcj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmJvZHkgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6cGFyc2luZy1tYWluLWluYm9keT5pbiBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImZyYW1lc2V0IjxkZD4KKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0Omluc2VydC1hbi1odG1sLWVsZW1lbnQ+SW5zZXJ0IGFuIEhUTUwgZWxlbWVudDwvYT4gZm9yIHRoZSB0b2tlbi48L3A+CisgICA8ZHQ+QW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiZnJhbWVzZXQiPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpjdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9hPiBpcyB0aGUgcm9vdCA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDp0aGUtaHRtbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiB0aGlzIGlzIGEKKyAgICA8YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpwYXJzZS1lcnJvci0yPnBhcnNlIGVycm9yPC9hPjsgaWdub3JlIHRoZSB0b2tlbi4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6ZnJhZ21lbnQtY2FzZT5mcmFnbWVudCBjYXNlPC9hPik8L3A+CisKKyAgICA8cD5PdGhlcndpc2UsIHBvcCB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0OmN1cnJlbnQtbm9kZS0yPmN1cnJlbnQgbm9kZTwvYT4gZnJvbSB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4KKyAgICBlbGVtZW50czwvYT4uPC9wPgorCisgICAgPHA+SWYgdGhlIHBhcnNlciB3YXMgPGVtPm5vdDwvZW0+IG9yaWdpbmFsbHkgY3JlYXRlZCBhcyBwYXJ0IG9mIHRoZSA8YSBocmVmPSNodG1sLWZyYWdtZW50LXBhcnNpbmctYWxnb3JpdGhtIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0Omh0bWwtZnJhZ21lbnQtcGFyc2luZy1hbGdvcml0aG0+SFRNTCBmcmFnbWVudCBwYXJzaW5nCisgICAgYWxnb3JpdGhtPC9hPiAoPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpmcmFnbWVudC1jYXNlLTI+ZnJhZ21lbnQgY2FzZTwvYT4pLCBhbmQgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpjdXJyZW50LW5vZGUtMz5jdXJyZW50IG5vZGU8L2E+IGlzIG5vIGxvbmdlciBhCisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6ZnJhbWVzZXQ+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI2ZyYW1lc2V0PmZyYW1lc2V0PC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiBzd2l0Y2ggdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0Omluc2VydGlvbi1tb2RlLTM+aW5zZXJ0aW9uIG1vZGU8L2E+IHRvICI8YSBocmVmPSNwYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldCBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpwYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldD5hZnRlciBmcmFtZXNldDwvYT4iLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJmcmFtZSI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYW4taHRtbC1lbGVtZW50IGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0Omluc2VydC1hbi1odG1sLWVsZW1lbnQtMj5JbnNlcnQgYW4gSFRNTCBlbGVtZW50PC9hPiBmb3IgdGhlIHRva2VuLiBJbW1lZGlhdGVseSBwb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpjdXJyZW50LW5vZGUtND5jdXJyZW50CisgICAgbm9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0OnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPi48L3A+CisKKyAgICA8cD48YSBocmVmPSNhY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZyBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDphY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZz5BY2tub3dsZWRnZSB0aGUgdG9rZW4ncyA8aT5zZWxmLWNsb3NpbmcKKyAgICBmbGFnPC9pPjwvYT4sIGlmIGl0IGlzIHNldC48L3A+CisKKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAibm9mcmFtZXMiPGRkPgorCisgICAgPHA+UHJvY2VzcyB0aGUgdG9rZW4gPGEgaHJlZj0jdXNpbmctdGhlLXJ1bGVzLWZvciBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDp1c2luZy10aGUtcnVsZXMtZm9yLTI+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5oZWFkIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0OnBhcnNpbmctbWFpbi1pbmhlYWQ+aW4gaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0Omluc2VydGlvbi1tb2RlLTQ+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkFuIGVuZC1vZi1maWxlIHRva2VuPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpjdXJyZW50LW5vZGUtNT5jdXJyZW50IG5vZGU8L2E+IGlzIG5vdCB0aGUgcm9vdCA8Y29kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDp0aGUtaHRtbC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiBlbGVtZW50LCB0aGVuIHRoaXMgaXMgYQorICAgIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0OnBhcnNlLWVycm9yLTM+cGFyc2UgZXJyb3I8L2E+LjwvcD4KKworICAgIDxwIGNsYXNzPW5vdGU+VGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpjdXJyZW50LW5vZGUtNj5jdXJyZW50IG5vZGU8L2E+IGNhbiBvbmx5IGJlIHRoZSByb290CisgICAgPGNvZGUgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6dGhlLWh0bWwtZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCBpbiB0aGUgPGEgaHJlZj0jZnJhZ21lbnQtY2FzZSBpZD1wYXJzaW5nLW1haW4taW5mcmFtZXNldDpmcmFnbWVudC1jYXNlLTM+ZnJhZ21lbnQgY2FzZTwvYT4uPC9wPgorCisgICAgPHA+PGEgaHJlZj0jc3RvcC1wYXJzaW5nIGlkPXBhcnNpbmctbWFpbi1pbmZyYW1lc2V0OnN0b3AtcGFyc2luZz5TdG9wIHBhcnNpbmc8L2E+LjwvcD4KKworICAgPGR0PkFueXRoaW5nIGVsc2U8ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWluZnJhbWVzZXQ6cGFyc2UtZXJyb3ItND5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPC9kbD4KKworCisgIDxoNiBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldD4xMi4yLjUuNC4yMSBUaGUgIjxkZm4+YWZ0ZXIgZnJhbWVzZXQ8L2Rmbj4iIGluc2VydGlvbiBtb2RlPC9oNj4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGlzIHRvIGFwcGx5IHRoZSBydWxlcyBmb3IgdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldCBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldDpwYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldD5hZnRlciBmcmFtZXNldDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0Omluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiwgdGhlIHVzZXIgYWdlbnQgbXVzdCBoYW5kbGUgdGhlIHRva2VuCisgIGFzIGZvbGxvd3M6PC9wPgorCisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+QSBjaGFyYWN0ZXIgdG9rZW4gdGhhdCBpcyBvbmUgb2YgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OLCBVKzAwMEEgTElORSBGRUVEIChMRiksIFUrMDAwQworICAgRk9STSBGRUVEIChGRiksIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSwgb3IgVSswMDIwIFNQQUNFPGRkPgorICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNoYXJhY3RlciBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldDppbnNlcnQtYS1jaGFyYWN0ZXI+SW5zZXJ0IHRoZSBjaGFyYWN0ZXI8L2E+LjwvcD4KKyAgIDxkdD5BIGNvbW1lbnQgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jaW5zZXJ0LWEtY29tbWVudCBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldDppbnNlcnQtYS1jb21tZW50Pkluc2VydCBhIGNvbW1lbnQ8L2E+LjwvcD4KKyAgIDxkdD5BIERPQ1RZUEUgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jcGFyc2UtZXJyb3IgaWQ9cGFyc2luZy1tYWluLWFmdGVyZnJhbWVzZXQ6cGFyc2UtZXJyb3I+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaHRtbCI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0OnVzaW5nLXRoZS1ydWxlcy1mb3I+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0OnBhcnNpbmctbWFpbi1pbmJvZHk+aW4gYm9keTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0Omluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgImh0bWwiPGRkPgorCisgICAgPHA+U3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldDppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jdGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0OnRoZS1hZnRlci1hZnRlci1mcmFtZXNldC1pbnNlcnRpb24tbW9kZT5hZnRlciBhZnRlciBmcmFtZXNldDwvYT4iLjwvcD4KKworICAgPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJub2ZyYW1lcyI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0OnVzaW5nLXRoZS1ydWxlcy1mb3ItMj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWQgaWQ9cGFyc2luZy1tYWluLWFmdGVyZnJhbWVzZXQ6cGFyc2luZy1tYWluLWluaGVhZD5pbiBoZWFkPC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9cGFyc2luZy1tYWluLWFmdGVyZnJhbWVzZXQ6aW5zZXJ0aW9uLW1vZGUtND5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8ZHQ+QW4gZW5kLW9mLWZpbGUgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jc3RvcC1wYXJzaW5nIGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0OnN0b3AtcGFyc2luZz5TdG9wIHBhcnNpbmc8L2E+LjwvcD4KKyAgIDxkdD5Bbnl0aGluZyBlbHNlPGRkPgorICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0OnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDwvZGw+CisKKworICA8aDYgaWQ9dGhlLWFmdGVyLWFmdGVyLWJvZHktaW5zZXJ0aW9uLW1vZGU+MTIuMi41LjQuMjIgVGhlICI8ZGZuPmFmdGVyIGFmdGVyIGJvZHk8L2Rmbj4iIGluc2VydGlvbiBtb2RlPC9oNj4KKworICA8cD5XaGVuIHRoZSB1c2VyIGFnZW50IGlzIHRvIGFwcGx5IHRoZSBydWxlcyBmb3IgdGhlICI8YSBocmVmPSN0aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNlcnRpb24tbW9kZSBpZD10aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNlcnRpb24tbW9kZTp0aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNlcnRpb24tbW9kZT5hZnRlciBhZnRlciBib2R5PC9hPiIgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dGhlLWFmdGVyLWFmdGVyLWJvZHktaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+LCB0aGUgdXNlciBhZ2VudCBtdXN0IGhhbmRsZSB0aGUgdG9rZW4KKyAgYXMgZm9sbG93czo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+QSBjb21tZW50IHRva2VuPGRkPgorICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNvbW1lbnQgaWQ9dGhlLWFmdGVyLWFmdGVyLWJvZHktaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0LWEtY29tbWVudD5JbnNlcnQgYSBjb21tZW50PC9hPiBhcyB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgPGNvZGUgaWQ9dGhlLWFmdGVyLWFmdGVyLWJvZHktaW5zZXJ0aW9uLW1vZGU6ZG9jdW1lbnQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG9iamVjdC48L3A+CisgICA8ZHQ+QSBET0NUWVBFIHRva2VuPGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgb25lIG9mIFUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiwgVSswMDBBIExJTkUgRkVFRCAoTEYpLCBVKzAwMEMKKyAgIEZPUk0gRkVFRCAoRkYpLCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUiksIG9yIFUrMDAyMCBTUEFDRTxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAiaHRtbCI8ZGQ+CisKKyAgICA8cD5Qcm9jZXNzIHRoZSB0b2tlbiA8YSBocmVmPSN1c2luZy10aGUtcnVsZXMtZm9yIGlkPXRoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlOnVzaW5nLXRoZS1ydWxlcy1mb3I+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXRoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmJvZHk+aW4gYm9keTwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlOmluc2VydGlvbi1tb2RlLTI+aW5zZXJ0aW9uIG1vZGU8L2E+LjwvcD4KKworICAgPGR0PkFuIGVuZC1vZi1maWxlIHRva2VuPGRkPgorICAgIDxwPjxhIGhyZWY9I3N0b3AtcGFyc2luZyBpZD10aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNlcnRpb24tbW9kZTpzdG9wLXBhcnNpbmc+U3RvcCBwYXJzaW5nPC9hPi48L3A+CisgICA8ZHQ+QW55dGhpbmcgZWxzZTxkZD4KKworICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gU3dpdGNoIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPiB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD10aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5ib2R5LTI+aW4gYm9keTwvYT4iIGFuZCByZXByb2Nlc3MgdGhlIHRva2VuLjwvcD4KKworICAgPC9kbD4KKworCisgIDxoNiBpZD10aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGU+MTIuMi41LjQuMjMgVGhlICI8ZGZuPmFmdGVyIGFmdGVyIGZyYW1lc2V0PC9kZm4+IiBpbnNlcnRpb24gbW9kZTwvaDY+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHRoZSAiPGEgaHJlZj0jdGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlIGlkPXRoZS1hZnRlci1hZnRlci1mcmFtZXNldC1pbnNlcnRpb24tbW9kZTp0aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGU+YWZ0ZXIgYWZ0ZXIgZnJhbWVzZXQ8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGU+aW5zZXJ0aW9uIG1vZGU8L2E+LCB0aGUgdXNlciBhZ2VudCBtdXN0IGhhbmRsZSB0aGUKKyAgdG9rZW4gYXMgZm9sbG93czo8L3A+CisKKyAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+QSBjb21tZW50IHRva2VuPGRkPgorICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNvbW1lbnQgaWQ9dGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlOmluc2VydC1hLWNvbW1lbnQ+SW5zZXJ0IGEgY29tbWVudDwvYT4gYXMgdGhlIGxhc3QgY2hpbGQgb2YgdGhlIDxjb2RlIGlkPXRoZS1hZnRlci1hZnRlci1mcmFtZXNldC1pbnNlcnRpb24tbW9kZTpkb2N1bWVudD48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gb2JqZWN0LjwvcD4KKyAgIDxkdD5BIERPQ1RZUEUgdG9rZW48ZHQ+QSBjaGFyYWN0ZXIgdG9rZW4gdGhhdCBpcyBvbmUgb2YgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OLCBVKzAwMEEgTElORSBGRUVEIChMRiksIFUrMDAwQworICAgRk9STSBGRUVEIChGRiksIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSwgb3IgVSswMDIwIFNQQUNFPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJodG1sIjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9dGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlOnVzaW5nLXRoZS1ydWxlcy1mb3I+dXNpbmcgdGhlIHJ1bGVzIGZvcjwvYT4gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXRoZS1hZnRlci1hZnRlci1mcmFtZXNldC1pbnNlcnRpb24tbW9kZTpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IiA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD10aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGU6aW5zZXJ0aW9uLW1vZGUtMj5pbnNlcnRpb24gbW9kZTwvYT4uPC9wPgorCisgICA8ZHQ+QW4gZW5kLW9mLWZpbGUgdG9rZW48ZGQ+CisgICAgPHA+PGEgaHJlZj0jc3RvcC1wYXJzaW5nIGlkPXRoZS1hZnRlci1hZnRlci1mcmFtZXNldC1pbnNlcnRpb24tbW9kZTpzdG9wLXBhcnNpbmc+U3RvcCBwYXJzaW5nPC9hPi48L3A+CisgICA8ZHQ+QSBzdGFydCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgIm5vZnJhbWVzIjxkZD4KKworICAgIDxwPlByb2Nlc3MgdGhlIHRva2VuIDxhIGhyZWY9I3VzaW5nLXRoZS1ydWxlcy1mb3IgaWQ9dGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlOnVzaW5nLXRoZS1ydWxlcy1mb3ItMj51c2luZyB0aGUgcnVsZXMgZm9yPC9hPiB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbmhlYWQgaWQ9dGhlLWFmdGVyLWFmdGVyLWZyYW1lc2V0LWluc2VydGlvbi1tb2RlOnBhcnNpbmctbWFpbi1pbmhlYWQ+aW4gaGVhZDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXRoZS1hZnRlci1hZnRlci1mcmFtZXNldC1pbnNlcnRpb24tbW9kZTppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgIDxkdD5Bbnl0aGluZyBlbHNlPGRkPgorICAgIDxwPjxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXRoZS1hZnRlci1hZnRlci1mcmFtZXNldC1pbnNlcnRpb24tbW9kZTpwYXJzZS1lcnJvcj5QYXJzZSBlcnJvcjwvYT4uIElnbm9yZSB0aGUgdG9rZW4uPC9wPgorICAgPC9kbD4KKworCisKKyAgPGg1IGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ24+MTIuMi41LjUgVGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyA8ZGZuPmluIGZvcmVpZ24gY29udGVudDwvZGZuPjwvaDU+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byBhcHBseSB0aGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIGZvcmVpZ24gY29udGVudCwgdGhlIHVzZXIgYWdlbnQKKyAgbXVzdCBoYW5kbGUgdGhlIHRva2VuIGFzIGZvbGxvd3M6PC9wPgorCisgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgVSswMDAwIE5VTEw8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnBhcnNlLWVycm9yPlBhcnNlIGVycm9yPC9hPi4gPGEgaHJlZj0jaW5zZXJ0LWEtY2hhcmFjdGVyIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246aW5zZXJ0LWEtY2hhcmFjdGVyPkluc2VydCBhIFUrRkZGRCBSRVBMQUNFTUVOVAorICAgIENIQVJBQ1RFUiBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICAgPGR0PkEgY2hhcmFjdGVyIHRva2VuIHRoYXQgaXMgb25lIG9mIFUrMDAwOSBDSEFSQUNURVIgVEFCVUxBVElPTiwgVSswMDBBIExJTkUgRkVFRCAoTEYpLCBVKzAwMEMKKyAgIEZPUk0gRkVFRCAoRkYpLCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUiksIG9yIFUrMDAyMCBTUEFDRTxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNoYXJhY3RlciBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmluc2VydC1hLWNoYXJhY3Rlci0yPkluc2VydCB0aGUgdG9rZW4ncyBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICAgPGR0PkFueSBvdGhlciBjaGFyYWN0ZXIgdG9rZW48ZGQ+CisKKyAgICA8cD48YSBocmVmPSNpbnNlcnQtYS1jaGFyYWN0ZXIgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjppbnNlcnQtYS1jaGFyYWN0ZXItMz5JbnNlcnQgdGhlIHRva2VuJ3MgY2hhcmFjdGVyPC9hPi48L3A+CisKKyAgICA8cD5TZXQgdGhlIDxhIGhyZWY9I2ZyYW1lc2V0LW9rLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpmcmFtZXNldC1vay1mbGFnPmZyYW1lc2V0LW9rIGZsYWc8L2E+IHRvICJub3Qgb2siLjwvcD4KKworICAgPGR0PkEgY29tbWVudCB0b2tlbjxkZD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWNvbW1lbnQgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjppbnNlcnQtYS1jb21tZW50Pkluc2VydCBhIGNvbW1lbnQ8L2E+LjwvcD4KKworICAgPGR0PkEgRE9DVFlQRSB0b2tlbjxkZD4KKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnBhcnNlLWVycm9yLTI+UGFyc2UgZXJyb3I8L2E+LiBJZ25vcmUgdGhlIHRva2VuLjwvcD4KKyAgIDxkdD5BIHN0YXJ0IHRhZyB3aG9zZSB0YWcgbmFtZSBpcyBvbmUgb2Y6ICAiYiIsICJiaWciLCAiYmxvY2txdW90ZSIsICJib2R5IiwgImJyIiwgImNlbnRlciIsICJjb2RlIiwgImRkIiwgImRpdiIsICJkbCIsICJkdCIsICJlbSIsICJlbWJlZCIsICJoMSIsICJoMiIsICJoMyIsICJoNCIsICJoNSIsICJoNiIsICJoZWFkIiwgImhyIiwgImkiLCAiaW1nIiwKKyAgICJsaSIsICJsaXN0aW5nIiwKKyAgICJtZW51IiwgIm1ldGEiLCAibm9iciIsICJvbCIsICJwIiwgInByZSIsICJydWJ5IiwgInMiLCAgInNtYWxsIiwgInNwYW4iLCAic3Ryb25nIiwgInN0cmlrZSIsICAic3ViIiwKKyAgICJzdXAiLCAidGFibGUiLCAidHQiLCAidSIsICJ1bCIsICJ2YXIiPGR0PkEgc3RhcnQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJmb250IiwgaWYgdGhlIHRva2VuIGhhcyBhbnkgYXR0cmlidXRlcyBuYW1lZCAiY29sb3IiLCAiZmFjZSIsCisgICBvciAic2l6ZSI8ZGQ+CisKKyAgICA8cD48YSBocmVmPSNwYXJzZS1lcnJvciBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnBhcnNlLWVycm9yLTM+UGFyc2UgZXJyb3I8L2E+LjwvcD4KKworCisKKyAgICA8cD5JZiB0aGUgcGFyc2VyIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgZm9yIHRoZSA8YSBocmVmPSNodG1sLWZyYWdtZW50LXBhcnNpbmctYWxnb3JpdGhtIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246aHRtbC1mcmFnbWVudC1wYXJzaW5nLWFsZ29yaXRobT5IVE1MIGZyYWdtZW50IHBhcnNpbmcgYWxnb3JpdGhtPC9hPiwKKyAgICB0aGVuIGFjdCBhcyBkZXNjcmliZWQgaW4gdGhlICJhbnkgb3RoZXIgc3RhcnQgdGFnIiBlbnRyeSBiZWxvdy4gKDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpmcmFnbWVudC1jYXNlPmZyYWdtZW50IGNhc2U8L2E+KTwvcD4KKworICAgIDxwPk90aGVyd2lzZTo8L3A+CisKKyAgICA8cD5Qb3AgYW4gZWxlbWVudCBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246c3RhY2stb2Ytb3Blbi1lbGVtZW50cz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiwgYW5kIHRoZW4ga2VlcCBwb3BwaW5nIG1vcmUKKyAgICBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IHVudGlsIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpjdXJyZW50LW5vZGU+Y3VycmVudCBub2RlPC9hPiBpcyBhCisgICAgPGEgaHJlZj0jbWF0aG1sLXRleHQtaW50ZWdyYXRpb24tcG9pbnQgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjptYXRobWwtdGV4dC1pbnRlZ3JhdGlvbi1wb2ludD5NYXRoTUwgdGV4dCBpbnRlZ3JhdGlvbiBwb2ludDwvYT4sIGFuIDxhIGhyZWY9I2h0bWwtaW50ZWdyYXRpb24tcG9pbnQgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpodG1sLWludGVncmF0aW9uLXBvaW50PkhUTUwgaW50ZWdyYXRpb24gcG9pbnQ8L2E+LCBvciBhbgorICAgIGVsZW1lbnQgaW4gdGhlIDxhIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT4uPC9wPgorCisgICAgPHA+VGhlbiwgcmVwcm9jZXNzIHRoZSB0b2tlbi48L3A+CisKKyAgIDxkdD5Bbnkgb3RoZXIgc3RhcnQgdGFnPGRkPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2FkanVzdGVkLWN1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmFkanVzdGVkLWN1cnJlbnQtbm9kZT5hZGp1c3RlZCBjdXJyZW50IG5vZGU8L2E+IGlzIGFuIGVsZW1lbnQgaW4gdGhlIDxhIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246bWF0aG1sLW5hbWVzcGFjZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbWF0aG1sLW5hbWVzcGFjZT5NYXRoTUwgbmFtZXNwYWNlPC9hPiwKKyAgICA8YSBocmVmPSNhZGp1c3QtbWF0aG1sLWF0dHJpYnV0ZXMgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjphZGp1c3QtbWF0aG1sLWF0dHJpYnV0ZXM+YWRqdXN0IE1hdGhNTCBhdHRyaWJ1dGVzPC9hPiBmb3IgdGhlIHRva2VuLiAoVGhpcyBmaXhlcyB0aGUgY2FzZSBvZiBNYXRoTUwgYXR0cmlidXRlcworICAgIHRoYXQgYXJlIG5vdCBhbGwgbG93ZXJjYXNlLik8L3A+CisKKyAgICA8cD5JZiB0aGUgPGEgaHJlZj0jYWRqdXN0ZWQtY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246YWRqdXN0ZWQtY3VycmVudC1ub2RlLTI+YWRqdXN0ZWQgY3VycmVudCBub2RlPC9hPiBpcyBhbiBlbGVtZW50IGluIHRoZSA8YSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnN2Zy1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3N2Zy1uYW1lc3BhY2U+U1ZHIG5hbWVzcGFjZTwvYT4sIGFuZCB0aGUKKyAgICB0b2tlbidzIHRhZyBuYW1lIGlzIG9uZSBvZiB0aGUgb25lcyBpbiB0aGUgZmlyc3QgY29sdW1uIG9mIHRoZSBmb2xsb3dpbmcgdGFibGUsIGNoYW5nZSB0aGUgdGFnCisgICAgbmFtZSB0byB0aGUgbmFtZSBnaXZlbiBpbiB0aGUgY29ycmVzcG9uZGluZyBjZWxsIGluIHRoZSBzZWNvbmQgY29sdW1uLiAoVGhpcyBmaXhlcyB0aGUgY2FzZSBvZgorICAgIFNWRyBlbGVtZW50cyB0aGF0IGFyZSBub3QgYWxsIGxvd2VyY2FzZS4pPC9wPgorCisgICAgPHRhYmxlPjx0aGVhZD48dHI+PHRoPiBUYWcgbmFtZSA8dGg+IEVsZW1lbnQgbmFtZQorICAgICA8dGJvZHk+PHRyPjx0ZD4gPGNvZGU+YWx0Z2x5cGg8L2NvZGU+IDx0ZD4gPGNvZGU+YWx0R2x5cGg8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5hbHRnbHlwaGRlZjwvY29kZT4gPHRkPiA8Y29kZT5hbHRHbHlwaERlZjwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmFsdGdseXBoaXRlbTwvY29kZT4gPHRkPiA8Y29kZT5hbHRHbHlwaEl0ZW08L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5hbmltYXRlY29sb3I8L2NvZGU+IDx0ZD4gPGNvZGU+YW5pbWF0ZUNvbG9yPC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+YW5pbWF0ZW1vdGlvbjwvY29kZT4gPHRkPiA8Y29kZT5hbmltYXRlTW90aW9uPC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+YW5pbWF0ZXRyYW5zZm9ybTwvY29kZT4gPHRkPiA8Y29kZT5hbmltYXRlVHJhbnNmb3JtPC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+Y2xpcHBhdGg8L2NvZGU+IDx0ZD4gPGNvZGU+Y2xpcFBhdGg8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWJsZW5kPC9jb2RlPiA8dGQ+IDxjb2RlPmZlQmxlbmQ8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWNvbG9ybWF0cml4PC9jb2RlPiA8dGQ+IDxjb2RlPmZlQ29sb3JNYXRyaXg8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWNvbXBvbmVudHRyYW5zZmVyPC9jb2RlPiA8dGQ+IDxjb2RlPmZlQ29tcG9uZW50VHJhbnNmZXI8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWNvbXBvc2l0ZTwvY29kZT4gPHRkPiA8Y29kZT5mZUNvbXBvc2l0ZTwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlY29udm9sdmVtYXRyaXg8L2NvZGU+IDx0ZD4gPGNvZGU+ZmVDb252b2x2ZU1hdHJpeDwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlZGlmZnVzZWxpZ2h0aW5nPC9jb2RlPiA8dGQ+IDxjb2RlPmZlRGlmZnVzZUxpZ2h0aW5nPC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+ZmVkaXNwbGFjZW1lbnRtYXA8L2NvZGU+IDx0ZD4gPGNvZGU+ZmVEaXNwbGFjZW1lbnRNYXA8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWRpc3RhbnRsaWdodDwvY29kZT4gPHRkPiA8Y29kZT5mZURpc3RhbnRMaWdodDwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlZHJvcHNoYWRvdzwvY29kZT4gPHRkPiA8Y29kZT5mZURyb3BTaGFkb3c8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWZsb29kPC9jb2RlPiA8dGQ+IDxjb2RlPmZlRmxvb2Q8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWZ1bmNhPC9jb2RlPiA8dGQ+IDxjb2RlPmZlRnVuY0E8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWZ1bmNiPC9jb2RlPiA8dGQ+IDxjb2RlPmZlRnVuY0I8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWZ1bmNnPC9jb2RlPiA8dGQ+IDxjb2RlPmZlRnVuY0c8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWZ1bmNyPC9jb2RlPiA8dGQ+IDxjb2RlPmZlRnVuY1I8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZWdhdXNzaWFuYmx1cjwvY29kZT4gPHRkPiA8Y29kZT5mZUdhdXNzaWFuQmx1cjwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlaW1hZ2U8L2NvZGU+IDx0ZD4gPGNvZGU+ZmVJbWFnZTwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlbWVyZ2U8L2NvZGU+IDx0ZD4gPGNvZGU+ZmVNZXJnZTwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlbWVyZ2Vub2RlPC9jb2RlPiA8dGQ+IDxjb2RlPmZlTWVyZ2VOb2RlPC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+ZmVtb3JwaG9sb2d5PC9jb2RlPiA8dGQ+IDxjb2RlPmZlTW9ycGhvbG9neTwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlb2Zmc2V0PC9jb2RlPiA8dGQ+IDxjb2RlPmZlT2Zmc2V0PC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+ZmVwb2ludGxpZ2h0PC9jb2RlPiA8dGQ+IDxjb2RlPmZlUG9pbnRMaWdodDwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZlc3BlY3VsYXJsaWdodGluZzwvY29kZT4gPHRkPiA8Y29kZT5mZVNwZWN1bGFyTGlnaHRpbmc8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZXNwb3RsaWdodDwvY29kZT4gPHRkPiA8Y29kZT5mZVNwb3RMaWdodDwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPmZldGlsZTwvY29kZT4gPHRkPiA8Y29kZT5mZVRpbGU8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5mZXR1cmJ1bGVuY2U8L2NvZGU+IDx0ZD4gPGNvZGU+ZmVUdXJidWxlbmNlPC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+Zm9yZWlnbm9iamVjdDwvY29kZT4gPHRkPiA8Y29kZT5mb3JlaWduT2JqZWN0PC9jb2RlPgorICAgICAgPHRyPjx0ZD4gPGNvZGU+Z2x5cGhyZWY8L2NvZGU+IDx0ZD4gPGNvZGU+Z2x5cGhSZWY8L2NvZGU+CisgICAgICA8dHI+PHRkPiA8Y29kZT5saW5lYXJncmFkaWVudDwvY29kZT4gPHRkPiA8Y29kZT5saW5lYXJHcmFkaWVudDwvY29kZT4KKyAgICAgIDx0cj48dGQ+IDxjb2RlPnJhZGlhbGdyYWRpZW50PC9jb2RlPiA8dGQ+IDxjb2RlPnJhZGlhbEdyYWRpZW50PC9jb2RlPgorCisgICAgICA8dHI+PHRkPiA8Y29kZT50ZXh0cGF0aDwvY29kZT4gPHRkPiA8Y29kZT50ZXh0UGF0aDwvY29kZT4KKyAgICA8L3RhYmxlPgorCisgICAgPHA+SWYgdGhlIDxhIGhyZWY9I2FkanVzdGVkLWN1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmFkanVzdGVkLWN1cnJlbnQtbm9kZS0zPmFkanVzdGVkIGN1cnJlbnQgbm9kZTwvYT4gaXMgYW4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpzdmctbmFtZXNwYWNlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3N2Zy1uYW1lc3BhY2U+U1ZHIG5hbWVzcGFjZTwvYT4sCisgICAgPGEgaHJlZj0jYWRqdXN0LXN2Zy1hdHRyaWJ1dGVzIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246YWRqdXN0LXN2Zy1hdHRyaWJ1dGVzPmFkanVzdCBTVkcgYXR0cmlidXRlczwvYT4gZm9yIHRoZSB0b2tlbi4gKFRoaXMgZml4ZXMgdGhlIGNhc2Ugb2YgU1ZHIGF0dHJpYnV0ZXMgdGhhdAorICAgIGFyZSBub3QgYWxsIGxvd2VyY2FzZS4pPC9wPgorCisgICAgPHA+PGEgaHJlZj0jYWRqdXN0LWZvcmVpZ24tYXR0cmlidXRlcyBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmFkanVzdC1mb3JlaWduLWF0dHJpYnV0ZXM+QWRqdXN0IGZvcmVpZ24gYXR0cmlidXRlczwvYT4gZm9yIHRoZSB0b2tlbi4gKFRoaXMgZml4ZXMgdGhlIHVzZSBvZiBuYW1lc3BhY2VkCisgICAgYXR0cmlidXRlcywgaW4gcGFydGljdWxhciBYTGluayBpbiBTVkcuKTwvcD4KKworICAgIDxwPjxhIGhyZWY9I2luc2VydC1hLWZvcmVpZ24tZWxlbWVudCBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmluc2VydC1hLWZvcmVpZ24tZWxlbWVudD5JbnNlcnQgYSBmb3JlaWduIGVsZW1lbnQ8L2E+IGZvciB0aGUgdG9rZW4sIGluIHRoZSBzYW1lIG5hbWVzcGFjZSBhcyB0aGUKKyAgICA8YSBocmVmPSNhZGp1c3RlZC1jdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjphZGp1c3RlZC1jdXJyZW50LW5vZGUtND5hZGp1c3RlZCBjdXJyZW50IG5vZGU8L2E+LjwvcD4KKworICAgIDxwPklmIHRoZSB0b2tlbiBoYXMgaXRzIDxpIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246c2VsZi1jbG9zaW5nLWZsYWc+PGEgaHJlZj0jc2VsZi1jbG9zaW5nLWZsYWc+c2VsZi1jbG9zaW5nIGZsYWc8L2E+PC9pPiBzZXQsIHRoZW4gcnVuIHRoZSBhcHByb3ByaWF0ZSBzdGVwcyBmcm9tIHRoZQorICAgIGZvbGxvd2luZyBsaXN0OjwvcD4KKworICAgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PklmIHRoZSB0b2tlbidzIHRhZyBuYW1lIGlzICJzY3JpcHQiLCBhbmQgdGhlIG5ldyA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpjdXJyZW50LW5vZGUtMj5jdXJyZW50IG5vZGU8L2E+IGlzIGluIHRoZSA8YSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnN2Zy1uYW1lc3BhY2UtMyBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3ZnLW5hbWVzcGFjZT5TVkcgbmFtZXNwYWNlPC9hPjxkZD4KKworICAgICAgPHA+PGEgaHJlZj0jYWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjphY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZz5BY2tub3dsZWRnZSB0aGUgdG9rZW4ncyA8aT5zZWxmLWNsb3NpbmcKKyAgICAgIGZsYWc8L2k+PC9hPiwgYW5kIHRoZW4gYWN0IGFzIGRlc2NyaWJlZCBpbiB0aGUgc3RlcHMgZm9yIGEgInNjcmlwdCIgZW5kIHRhZyBiZWxvdy48L3A+CisKKyAgICAgPGR0Pk90aGVyd2lzZTxkZD4KKworICAgICAgPHA+UG9wIHRoZSA8YSBocmVmPSNjdXJyZW50LW5vZGUgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpjdXJyZW50LW5vZGUtMz5jdXJyZW50IG5vZGU8L2E+IG9mZiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBhbmQgPGEgaHJlZj0jYWNrbm93bGVkZ2Utc2VsZi1jbG9zaW5nLWZsYWcgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjphY2tub3dsZWRnZS1zZWxmLWNsb3NpbmctZmxhZy0yPmFja25vd2xlZGdlIHRoZSB0b2tlbidzIDxpPnNlbGYtY2xvc2luZworICAgICAgZmxhZzwvaT48L2E+LjwvcD4KKworICAgICA8L2RsPgorCisgICA8ZHQgaWQ9c2NyaXB0Rm9yZWlnbkVuZFRhZz5BbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICJzY3JpcHQiLCBpZiB0aGUgPGEgaHJlZj0jY3VycmVudC1ub2RlIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246Y3VycmVudC1ub2RlLTQ+Y3VycmVudCBub2RlPC9hPiBpcyBhIDxjb2RlPnNjcmlwdDwvY29kZT4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpzdmctbmFtZXNwYWNlLTQgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3N2Zy1uYW1lc3BhY2U+U1ZHIG5hbWVzcGFjZTwvYT48ZGQ+CisKKyAgICA8cD5Qb3AgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmN1cnJlbnQtbm9kZS01PmN1cnJlbnQgbm9kZTwvYT4gb2ZmIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246c3RhY2stb2Ytb3Blbi1lbGVtZW50cy00PnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjwvcD4KKworICAgIDxwPkxldCB0aGUgPHZhcj5vbGQgaW5zZXJ0aW9uIHBvaW50PC92YXI+IGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIGN1cnJlbnQKKyAgICA8YSBocmVmPSNpbnNlcnRpb24tcG9pbnQgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjppbnNlcnRpb24tcG9pbnQ+aW5zZXJ0aW9uIHBvaW50PC9hPi4gTGV0IHRoZSA8YSBocmVmPSNpbnNlcnRpb24tcG9pbnQgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjppbnNlcnRpb24tcG9pbnQtMj5pbnNlcnRpb24gcG9pbnQ8L2E+IGJlIGp1c3QgYmVmb3JlIHRoZSA8YSBocmVmPSNuZXh0LWlucHV0LWNoYXJhY3RlciBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOm5leHQtaW5wdXQtY2hhcmFjdGVyPm5leHQKKyAgICBpbnB1dCBjaGFyYWN0ZXI8L2E+LjwvcD4KKworICAgIDxwPkluY3JlbWVudCB0aGUgcGFyc2VyJ3MgPGEgaHJlZj0jc2NyaXB0LW5lc3RpbmctbGV2ZWwgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpzY3JpcHQtbmVzdGluZy1sZXZlbD5zY3JpcHQgbmVzdGluZyBsZXZlbDwvYT4gYnkgb25lLiBTZXQgdGhlIDxhIGhyZWY9I3BhcnNlci1wYXVzZS1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246cGFyc2VyLXBhdXNlLWZsYWc+cGFyc2VyIHBhdXNlCisgICAgZmxhZzwvYT4gdG8gdHJ1ZS48L3A+CisKKyAgICA8cD48YSBocmVmPWh0dHA6Ly93d3cudzMub3JnL1RSL1NWR01vYmlsZTEyL3NjcmlwdC5odG1sI1NjcmlwdENvbnRlbnRQcm9jZXNzaW5nPlByb2Nlc3MgdGhlCisgICAgPGNvZGU+c2NyaXB0PC9jb2RlPiBlbGVtZW50PC9hPiBhY2NvcmRpbmcgdG8gdGhlIFNWRyBydWxlcywgaWYgdGhlIHVzZXIgYWdlbnQgc3VwcG9ydHMKKyAgICBTVkcuIDxhIGhyZWY9cmVmZXJlbmNlcy5odG1sI3JlZnNTVkc+W1NWR108L2E+PC9wPgorCisgICAgPHAgY2xhc3M9bm90ZT5FdmVuIGlmIHRoaXMgY2F1c2VzIDxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2RvbS1kb2N1bWVudC13cml0ZSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmRvbS1kb2N1bWVudC13cml0ZT5uZXcgY2hhcmFjdGVycyB0byBiZQorICAgIGluc2VydGVkIGludG8gdGhlIHRva2VuaXplcjwvYT4sIHRoZSBwYXJzZXIgd2lsbCBub3QgYmUgZXhlY3V0ZWQgcmVlbnRyYW50bHksIHNpbmNlIHRoZQorICAgIDxhIGhyZWY9I3BhcnNlci1wYXVzZS1mbGFnIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246cGFyc2VyLXBhdXNlLWZsYWctMj5wYXJzZXIgcGF1c2UgZmxhZzwvYT4gaXMgdHJ1ZS48L3A+CisKKyAgICA8cD5EZWNyZW1lbnQgdGhlIHBhcnNlcidzIDxhIGhyZWY9I3NjcmlwdC1uZXN0aW5nLWxldmVsIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246c2NyaXB0LW5lc3RpbmctbGV2ZWwtMj5zY3JpcHQgbmVzdGluZyBsZXZlbDwvYT4gYnkgb25lLiBJZiB0aGUgcGFyc2VyJ3MgPGEgaHJlZj0jc2NyaXB0LW5lc3RpbmctbGV2ZWwgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpzY3JpcHQtbmVzdGluZy1sZXZlbC0zPnNjcmlwdAorICAgIG5lc3RpbmcgbGV2ZWw8L2E+IGlzIHplcm8sIHRoZW4gc2V0IHRoZSA8YSBocmVmPSNwYXJzZXItcGF1c2UtZmxhZyBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnBhcnNlci1wYXVzZS1mbGFnLTM+cGFyc2VyIHBhdXNlIGZsYWc8L2E+IHRvIGZhbHNlLjwvcD4KKworICAgIDxwPkxldCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLXBvaW50IGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246aW5zZXJ0aW9uLXBvaW50LTM+aW5zZXJ0aW9uIHBvaW50PC9hPiBoYXZlIHRoZSB2YWx1ZSBvZiB0aGUgPHZhcj5vbGQgaW5zZXJ0aW9uCisgICAgcG9pbnQ8L3Zhcj4uIChJbiBvdGhlciB3b3JkcywgcmVzdG9yZSB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLXBvaW50IGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246aW5zZXJ0aW9uLXBvaW50LTQ+aW5zZXJ0aW9uIHBvaW50PC9hPiB0byBpdHMgcHJldmlvdXMgdmFsdWUuCisgICAgVGhpcyB2YWx1ZSBtaWdodCBiZSB0aGUgInVuZGVmaW5lZCIgdmFsdWUuKTwvcD4KKworICAgPGR0PkFueSBvdGhlciBlbmQgdGFnPGRkPgorCisgICAgPHA+UnVuIHRoZXNlIHN0ZXBzOjwvcD4KKworICAgIDxvbD48bGk+PHA+SW5pdGlhbGlzZSA8dmFyPm5vZGU8L3Zhcj4gdG8gYmUgdGhlIDxhIGhyZWY9I2N1cnJlbnQtbm9kZSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmN1cnJlbnQtbm9kZS02PmN1cnJlbnQgbm9kZTwvYT4gKHRoZSBib3R0b21tb3N0CisgICAgIG5vZGUgb2YgdGhlIHN0YWNrKS48bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+J3MgdGFnIG5hbWUsIDxhIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246Y29udmVydGVkLXRvLWFzY2lpLWxvd2VyY2FzZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY29udmVydGVkLXRvLWFzY2lpLWxvd2VyY2FzZT5jb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlPC9hPiwgaXMKKyAgICAgbm90IHRoZSBzYW1lIGFzIHRoZSB0YWcgbmFtZSBvZiB0aGUgdG9rZW4sIHRoZW4gdGhpcyBpcyBhIDxhIGhyZWY9I3BhcnNlLWVycm9yIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246cGFyc2UtZXJyb3ItND5wYXJzZSBlcnJvcjwvYT4uPGxpPjxwPjxpPkxvb3A8L2k+OiBJZiA8dmFyPm5vZGU8L3Zhcj4gaXMgdGhlIHRvcG1vc3QgZWxlbWVudCBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNT5zdGFjayBvZgorICAgICBvcGVuIGVsZW1lbnRzPC9hPiwgYWJvcnQgdGhlc2Ugc3RlcHMuICg8YSBocmVmPSNmcmFnbWVudC1jYXNlIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246ZnJhZ21lbnQtY2FzZS0yPmZyYWdtZW50IGNhc2U8L2E+KTxsaT48cD5JZiA8dmFyPm5vZGU8L3Zhcj4ncyB0YWcgbmFtZSwgPGEgaWQ9cGFyc2luZy1tYWluLWluZm9yZWlnbjpjb252ZXJ0ZWQtdG8tYXNjaWktbG93ZXJjYXNlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2NvbnZlcnRlZC10by1hc2NpaS1sb3dlcmNhc2U+Y29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZTwvYT4sIGlzCisgICAgIHRoZSBzYW1lIGFzIHRoZSB0YWcgbmFtZSBvZiB0aGUgdG9rZW4sIHBvcCBlbGVtZW50cyBmcm9tIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXBhcnNpbmctbWFpbi1pbmZvcmVpZ246c3RhY2stb2Ytb3Blbi1lbGVtZW50cy02PnN0YWNrIG9mIG9wZW4KKyAgICAgZWxlbWVudHM8L2E+IHVudGlsIDx2YXI+bm9kZTwvdmFyPiBoYXMgYmVlbiBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIGFuZCB0aGVuIGFib3J0CisgICAgIHRoZXNlIHN0ZXBzLjxsaT48cD5TZXQgPHZhcj5ub2RlPC92YXI+IHRvIHRoZSBwcmV2aW91cyBlbnRyeSBpbiB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtNz5zdGFjayBvZiBvcGVuCisgICAgIGVsZW1lbnRzPC9hPi48bGk+PHA+SWYgPHZhcj5ub2RlPC92YXI+IGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSA8YSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmh0bWwtbmFtZXNwYWNlLTItMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT4sIHJldHVybgorICAgICB0byB0aGUgc3RlcCBsYWJlbGVkIDxpPmxvb3A8L2k+LjxsaT48cD5PdGhlcndpc2UsIHByb2Nlc3MgdGhlIHRva2VuIGFjY29yZGluZyB0byB0aGUgcnVsZXMgZ2l2ZW4gaW4gdGhlIHNlY3Rpb24gY29ycmVzcG9uZGluZworICAgICB0byB0aGUgY3VycmVudCA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1wYXJzaW5nLW1haW4taW5mb3JlaWduOmluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiBpbiBIVE1MIGNvbnRlbnQuPC9vbD4KKworICAgPC9kbD4KKworCisKKworCisKKyAgPGg0IGlkPXRoZS1lbmQ+MTIuMi42IFRoZSBlbmQ8L2g0PgorCisgIDxwPk9uY2UgdGhlIHVzZXIgYWdlbnQgPGRmbiBpZD1zdG9wLXBhcnNpbmc+c3RvcHMgcGFyc2luZzwvZGZuPiB0aGUgZG9jdW1lbnQsIHRoZSB1c2VyIGFnZW50CisgIG11c3QgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6PGRpdiBjbGFzcz1zdGF0dXM+PGlucHV0IG9uY2xpY2s9dG9nZ2xlU3RhdHVzKHRoaXMpIHZhbHVlPeKLsCB0eXBlPWJ1dHRvbj48cCBjbGFzcz1zdXBwb3J0PjxzdHJvbmc+U3VwcG9ydDo8L3N0cm9uZz4gPHNwYW4gY2xhc3M9ImNocm9tZSB5ZXMiPjxzcGFuPkNocm9tZTwvc3Bhbj4gPHNwYW4+NCs8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJpZSB5ZXMiPjxzcGFuPklFPC9zcGFuPiA8c3Bhbj45Kzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImZpcmVmb3ggeWVzIj48c3Bhbj5GaXJlZm94PC9zcGFuPiA8c3Bhbj4yKzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImFuZF9jaHIgeWVzIj48c3Bhbj5DaHJvbWUgZm9yIEFuZHJvaWQ8L3NwYW4+IDxzcGFuPjM4Kzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9Imlvc19zYWYgeWVzIj48c3Bhbj5pT1MgU2FmYXJpPC9zcGFuPiA8c3Bhbj4zLjIrPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYW5kcm9pZCB5ZXMiPjxzcGFuPkFuZHJvaWQgQnJvd3Nlcjwvc3Bhbj4gPHNwYW4+Mi4xKzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9Im9wX21pbmkgeWVzIj48c3Bhbj5PcGVyYSBNaW5pPC9zcGFuPiA8c3Bhbj41LjAtOC4wKzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImFuZF91YyB5ZXMiPjxzcGFuPlVDIEJyb3dzZXIgZm9yIEFuZHJvaWQ8L3NwYW4+IDxzcGFuPjkuOSs8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJzYWZhcmkgeWVzIj48c3Bhbj5TYWZhcmk8L3NwYW4+IDxzcGFuPjMuMSs8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJvcGVyYSB5ZXMiPjxzcGFuPk9wZXJhPC9zcGFuPiA8c3Bhbj45LjUtOS42Kzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImllX21vYiB5ZXMiPjxzcGFuPklFIE1vYmlsZTwvc3Bhbj4gPHNwYW4+MTArPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYW5kX2ZmIHllcyI+PHNwYW4+RmlyZWZveCBmb3IgQW5kcm9pZDwvc3Bhbj4gPHNwYW4+MzIrPC9zcGFuPjwvc3Bhbj48cCBjbGFzcz1jYW5pdXNlPlNvdXJjZTogPGEgaHJlZj0iaHR0cDovL2Nhbml1c2UuY29tLyNmZWF0PWRvbWNvbnRlbnRsb2FkZWQiPmNhbml1c2UuY29tPC9hPjwvZGl2PgorCisgIDxvbD48bGk+PHA+U2V0IHRoZSA8YSBpZD10aGUtZW5kOmN1cnJlbnQtZG9jdW1lbnQtcmVhZGluZXNzIGhyZWY9ZG9tLmh0bWwjY3VycmVudC1kb2N1bWVudC1yZWFkaW5lc3M+Y3VycmVudCBkb2N1bWVudCByZWFkaW5lc3M8L2E+IHRvICI8Y29kZT5pbnRlcmFjdGl2ZTwvY29kZT4iCisgICAgYW5kIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tcG9pbnQgaWQ9dGhlLWVuZDppbnNlcnRpb24tcG9pbnQ+aW5zZXJ0aW9uIHBvaW50PC9hPiB0bworICAgdW5kZWZpbmVkLjxsaT48cD5Qb3AgPGVtPmFsbDwvZW0+IHRoZSBub2RlcyBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dGhlLWVuZDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LjxsaT48cD5JZiB0aGUgPGEgaWQ9dGhlLWVuZDpsaXN0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtd2hlbi10aGUtZG9jdW1lbnQtaGFzLWZpbmlzaGVkLXBhcnNpbmcgaHJlZj1zY3JpcHRpbmcuaHRtbCNsaXN0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtd2hlbi10aGUtZG9jdW1lbnQtaGFzLWZpbmlzaGVkLXBhcnNpbmc+bGlzdCBvZiBzY3JpcHRzIHRoYXQgd2lsbCBleGVjdXRlIHdoZW4gdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZAorICAgcGFyc2luZzwvYT4gaXMgbm90IGVtcHR5LCBydW4gdGhlc2Ugc3Vic3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD48YSBpZD10aGUtZW5kOnNwaW4tdGhlLWV2ZW50LWxvb3AgaHJlZj13ZWJhcHBhcGlzLmh0bWwjc3Bpbi10aGUtZXZlbnQtbG9vcD5TcGluIHRoZSBldmVudCBsb29wPC9hPiB1bnRpbCB0aGUgZmlyc3QgPGNvZGUgaWQ9dGhlLWVuZDp0aGUtc2NyaXB0LWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4gaW4gdGhlIDxhIGlkPXRoZS1lbmQ6bGlzdC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLXdoZW4tdGhlLWRvY3VtZW50LWhhcy1maW5pc2hlZC1wYXJzaW5nLTIgaHJlZj1zY3JpcHRpbmcuaHRtbCNsaXN0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtd2hlbi10aGUtZG9jdW1lbnQtaGFzLWZpbmlzaGVkLXBhcnNpbmc+bGlzdAorICAgICBvZiBzY3JpcHRzIHRoYXQgd2lsbCBleGVjdXRlIHdoZW4gdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBwYXJzaW5nPC9hPiBoYXMgaXRzIDxhIGlkPXRoZS1lbmQ6cmVhZHktdG8tYmUtcGFyc2VyLWV4ZWN1dGVkIGhyZWY9c2NyaXB0aW5nLmh0bWwjcmVhZHktdG8tYmUtcGFyc2VyLWV4ZWN1dGVkPiJyZWFkeQorICAgICB0byBiZSBwYXJzZXItZXhlY3V0ZWQiPC9hPiBmbGFnIHNldCA8ZW0+YW5kPC9lbT4gdGhlIHBhcnNlcidzIDxjb2RlIGlkPXRoZS1lbmQ6ZG9jdW1lbnQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+CisgICAgIDxhIGlkPXRoZS1lbmQ6aGFzLW5vLXN0eWxlLXNoZWV0LXRoYXQtaXMtYmxvY2tpbmctc2NyaXB0cyBocmVmPXNlbWFudGljcy5odG1sI2hhcy1uby1zdHlsZS1zaGVldC10aGF0LWlzLWJsb2NraW5nLXNjcmlwdHM+aGFzIG5vIHN0eWxlIHNoZWV0IHRoYXQgaXMgYmxvY2tpbmcgc2NyaXB0czwvYT4uPGxpPjxwPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjZXhlY3V0ZS10aGUtc2NyaXB0LWJsb2NrIGlkPXRoZS1lbmQ6ZXhlY3V0ZS10aGUtc2NyaXB0LWJsb2NrPkV4ZWN1dGU8L2E+IHRoZSBmaXJzdCA8Y29kZSBpZD10aGUtZW5kOnRoZS1zY3JpcHQtZWxlbWVudC0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+IGluCisgICAgIHRoZSA8YSBpZD10aGUtZW5kOmxpc3Qtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS13aGVuLXRoZS1kb2N1bWVudC1oYXMtZmluaXNoZWQtcGFyc2luZy0zIGhyZWY9c2NyaXB0aW5nLmh0bWwjbGlzdC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLXdoZW4tdGhlLWRvY3VtZW50LWhhcy1maW5pc2hlZC1wYXJzaW5nPmxpc3Qgb2Ygc2NyaXB0cyB0aGF0IHdpbGwgZXhlY3V0ZSB3aGVuIHRoZSBkb2N1bWVudCBoYXMgZmluaXNoZWQKKyAgICAgcGFyc2luZzwvYT4uPGxpPjxwPlJlbW92ZSB0aGUgZmlyc3QgPGNvZGUgaWQ9dGhlLWVuZDp0aGUtc2NyaXB0LWVsZW1lbnQtMz48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50IGZyb20gdGhlIDxhIGlkPXRoZS1lbmQ6bGlzdC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLXdoZW4tdGhlLWRvY3VtZW50LWhhcy1maW5pc2hlZC1wYXJzaW5nLTQgaHJlZj1zY3JpcHRpbmcuaHRtbCNsaXN0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtd2hlbi10aGUtZG9jdW1lbnQtaGFzLWZpbmlzaGVkLXBhcnNpbmc+bGlzdCBvZiBzY3JpcHRzIHRoYXQgd2lsbAorICAgICBleGVjdXRlIHdoZW4gdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZCBwYXJzaW5nPC9hPiAoaS5lLiBzaGlmdCBvdXQgdGhlIGZpcnN0IGVudHJ5IGluIHRoZQorICAgICBsaXN0KS48bGk+PHA+SWYgdGhlIDxhIGlkPXRoZS1lbmQ6bGlzdC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLXdoZW4tdGhlLWRvY3VtZW50LWhhcy1maW5pc2hlZC1wYXJzaW5nLTUgaHJlZj1zY3JpcHRpbmcuaHRtbCNsaXN0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtd2hlbi10aGUtZG9jdW1lbnQtaGFzLWZpbmlzaGVkLXBhcnNpbmc+bGlzdCBvZiBzY3JpcHRzIHRoYXQgd2lsbCBleGVjdXRlIHdoZW4gdGhlIGRvY3VtZW50IGhhcyBmaW5pc2hlZAorICAgICBwYXJzaW5nPC9hPiBpcyBzdGlsbCBub3QgZW1wdHksIHJlcGVhdCB0aGVzZSBzdWJzdGVwcyBhZ2FpbiBmcm9tIHN1YnN0ZXAgMS48L3A+CisKKyAgICA8L29sPgorCisgICA8bGk+PHA+PGEgaWQ9dGhlLWVuZDpxdWV1ZS1hLXRhc2sgaHJlZj13ZWJhcHBhcGlzLmh0bWwjcXVldWUtYS10YXNrPlF1ZXVlIGEgdGFzazwvYT4gdG8gPGEgaWQ9dGhlLWVuZDpmaXJlLWEtc2ltcGxlLWV2ZW50IGhyZWY9d2ViYXBwYXBpcy5odG1sI2ZpcmUtYS1zaW1wbGUtZXZlbnQ+ZmlyZSBhIHNpbXBsZSBldmVudDwvYT4gdGhhdCBidWJibGVzIG5hbWVkIDxjb2RlIGlkPXRoZS1lbmQ6ZXZlbnQtZG9tY29udGVudGxvYWRlZD48YSBocmVmPWluZGljZXMuaHRtbCNldmVudC1kb21jb250ZW50bG9hZGVkPkRPTUNvbnRlbnRMb2FkZWQ8L2E+PC9jb2RlPiBhdCB0aGUgPGNvZGUgaWQ9dGhlLWVuZDpkb2N1bWVudC0yPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPi48bGk+PHA+PGEgaWQ9dGhlLWVuZDpzcGluLXRoZS1ldmVudC1sb29wLTIgaHJlZj13ZWJhcHBhcGlzLmh0bWwjc3Bpbi10aGUtZXZlbnQtbG9vcD5TcGluIHRoZSBldmVudCBsb29wPC9hPiB1bnRpbCB0aGUgPGEgaWQ9dGhlLWVuZDpzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlIGhyZWY9c2NyaXB0aW5nLmh0bWwjc2V0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtYXMtc29vbi1hcy1wb3NzaWJsZT5zZXQgb2Ygc2NyaXB0cyB0aGF0IHdpbGwgZXhlY3V0ZSBhcyBzb29uCisgICBhcyBwb3NzaWJsZTwvYT4gYW5kIHRoZSA8YSBpZD10aGUtZW5kOmxpc3Qtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS1pbi1vcmRlci1hcy1zb29uLWFzLXBvc3NpYmxlIGhyZWY9c2NyaXB0aW5nLmh0bWwjbGlzdC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLWluLW9yZGVyLWFzLXNvb24tYXMtcG9zc2libGU+bGlzdCBvZiBzY3JpcHRzIHRoYXQgd2lsbCBleGVjdXRlIGluIG9yZGVyIGFzIHNvb24gYXMKKyAgIHBvc3NpYmxlPC9hPiBhcmUgZW1wdHkuPGxpPjxwPjxhIGlkPXRoZS1lbmQ6c3Bpbi10aGUtZXZlbnQtbG9vcC0zIGhyZWY9d2ViYXBwYXBpcy5odG1sI3NwaW4tdGhlLWV2ZW50LWxvb3A+U3BpbiB0aGUgZXZlbnQgbG9vcDwvYT4gdW50aWwgdGhlcmUgaXMgbm90aGluZyB0aGF0IDxkZm4gaWQ9ZGVsYXktdGhlLWxvYWQtZXZlbnQ+ZGVsYXlzIHRoZSBsb2FkIGV2ZW50PC9kZm4+IGluIHRoZSA8Y29kZSBpZD10aGUtZW5kOmRvY3VtZW50LTM+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+LjxsaT4KKworICAgIDxwPjxhIGlkPXRoZS1lbmQ6cXVldWUtYS10YXNrLTIgaHJlZj13ZWJhcHBhcGlzLmh0bWwjcXVldWUtYS10YXNrPlF1ZXVlIGEgdGFzazwvYT4gdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3Vic3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD5TZXQgdGhlIDxhIGlkPXRoZS1lbmQ6Y3VycmVudC1kb2N1bWVudC1yZWFkaW5lc3MtMiBocmVmPWRvbS5odG1sI2N1cnJlbnQtZG9jdW1lbnQtcmVhZGluZXNzPmN1cnJlbnQgZG9jdW1lbnQgcmVhZGluZXNzPC9hPiB0byAiPGNvZGU+Y29tcGxldGU8L2NvZGU+Ii48bGk+PHA+PGk+TG9hZCBldmVudDwvaT46IElmIHRoZSA8Y29kZSBpZD10aGUtZW5kOmRvY3VtZW50LTQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IGlzIGluIGEgPGEgaWQ9dGhlLWVuZDpicm93c2luZy1jb250ZXh0IGhyZWY9YnJvd3NlcnMuaHRtbCNicm93c2luZy1jb250ZXh0PmJyb3dzaW5nIGNvbnRleHQ8L2E+LAorICAgICA8YSBpZD10aGUtZW5kOmZpcmUtYS1zaW1wbGUtZXZlbnQtMiBocmVmPXdlYmFwcGFwaXMuaHRtbCNmaXJlLWEtc2ltcGxlLWV2ZW50PmZpcmUgYSBzaW1wbGUgZXZlbnQ8L2E+IG5hbWVkIDxjb2RlIGlkPXRoZS1lbmQ6ZXZlbnQtbG9hZD48YSBocmVmPWluZGljZXMuaHRtbCNldmVudC1sb2FkPmxvYWQ8L2E+PC9jb2RlPiBhdCB0aGUKKyAgICAgPGNvZGUgaWQ9dGhlLWVuZDpkb2N1bWVudC01PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPidzIDxjb2RlIGlkPXRoZS1lbmQ6d2luZG93PjxhIGhyZWY9YnJvd3NlcnMuaHRtbCN3aW5kb3c+V2luZG93PC9hPjwvY29kZT4gb2JqZWN0LCB3aXRoIDxpIGlkPXRoZS1lbmQ6Y29uY2VwdC1ldmVudC10YXJnZXQtb3ZlcnJpZGU+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2NvbmNlcHQtZXZlbnQtdGFyZ2V0LW92ZXJyaWRlPnRhcmdldCBvdmVycmlkZTwvYT48L2k+IHNldCB0byB0aGUgPGNvZGUgaWQ9dGhlLWVuZDpkb2N1bWVudC02PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPgorICAgICBvYmplY3QuPC9vbD4KKworICAgPGxpPgorCisgICAgPHA+SWYgdGhlIDxjb2RlIGlkPXRoZS1lbmQ6ZG9jdW1lbnQtNz48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gaXMgaW4gYSA8YSBpZD10aGUtZW5kOmJyb3dzaW5nLWNvbnRleHQtMiBocmVmPWJyb3dzZXJzLmh0bWwjYnJvd3NpbmctY29udGV4dD5icm93c2luZyBjb250ZXh0PC9hPiwgdGhlbiA8YSBpZD10aGUtZW5kOnF1ZXVlLWEtdGFzay0zIGhyZWY9d2ViYXBwYXBpcy5odG1sI3F1ZXVlLWEtdGFzaz5xdWV1ZSBhCisgICAgdGFzazwvYT4gdG8gcnVuIHRoZSBmb2xsb3dpbmcgc3Vic3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT48cD5JZiB0aGUgPGNvZGUgaWQ9dGhlLWVuZDpkb2N1bWVudC04PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPidzIDxhIGlkPXRoZS1lbmQ6cGFnZS1zaG93aW5nIGhyZWY9YnJvd3NlcnMuaHRtbCNwYWdlLXNob3dpbmc+cGFnZSBzaG93aW5nPC9hPiBmbGFnIGlzIHRydWUsIHRoZW4gYWJvcnQgdGhpcworICAgICB0YXNrIChpLmUuIGRvbid0IGZpcmUgdGhlIGV2ZW50IGJlbG93KS48bGk+PHA+U2V0IHRoZSA8Y29kZSBpZD10aGUtZW5kOmRvY3VtZW50LTk+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+J3MgPGEgaWQ9dGhlLWVuZDpwYWdlLXNob3dpbmctMiBocmVmPWJyb3dzZXJzLmh0bWwjcGFnZS1zaG93aW5nPnBhZ2Ugc2hvd2luZzwvYT4gZmxhZyB0byB0cnVlLjxsaT48cD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjY29uY2VwdC1ldmVudC1maXJlIGlkPXRoZS1lbmQ6Y29uY2VwdC1ldmVudC1maXJlPkZpcmU8L2E+IGEgPGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2NvbmNlcHQtZXZlbnRzLXRydXN0ZWQgaWQ9dGhlLWVuZDpjb25jZXB0LWV2ZW50cy10cnVzdGVkPnRydXN0ZWQ8L2E+IGV2ZW50IHdpdGggdGhlIG5hbWUgPGNvZGUgaWQ9dGhlLWVuZDpldmVudC1wYWdlc2hvdz48YSBocmVmPWluZGljZXMuaHRtbCNldmVudC1wYWdlc2hvdz5wYWdlc2hvdzwvYT48L2NvZGU+IGF0IHRoZSA8Y29kZSBpZD10aGUtZW5kOndpbmRvdy0yPjxhIGhyZWY9YnJvd3NlcnMuaHRtbCN3aW5kb3c+V2luZG93PC9hPjwvY29kZT4gb2JqZWN0IG9mIHRoZQorICAgICA8Y29kZSBpZD10aGUtZW5kOmRvY3VtZW50LTEwPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiwgd2l0aCA8aSBpZD10aGUtZW5kOmNvbmNlcHQtZXZlbnQtdGFyZ2V0LW92ZXJyaWRlLTI+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2NvbmNlcHQtZXZlbnQtdGFyZ2V0LW92ZXJyaWRlPnRhcmdldCBvdmVycmlkZTwvYT48L2k+IHNldCB0byB0aGUgPGNvZGUgaWQ9dGhlLWVuZDpkb2N1bWVudC0xMT48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4KKyAgICAgb2JqZWN0LAorICAgICB1c2luZyB0aGUgPGNvZGUgaWQ9dGhlLWVuZDpwYWdldHJhbnNpdGlvbmV2ZW50PjxhIGhyZWY9YnJvd3NlcnMuaHRtbCNwYWdldHJhbnNpdGlvbmV2ZW50PlBhZ2VUcmFuc2l0aW9uRXZlbnQ8L2E+PC9jb2RlPiBpbnRlcmZhY2UsIHdpdGggdGhlIDxjb2RlIGlkPXRoZS1lbmQ6ZG9tLXBhZ2V0cmFuc2l0aW9uZXZlbnQtcGVyc2lzdGVkPjxhIGhyZWY9YnJvd3NlcnMuaHRtbCNkb20tcGFnZXRyYW5zaXRpb25ldmVudC1wZXJzaXN0ZWQ+cGVyc2lzdGVkPC9hPjwvY29kZT4gYXR0cmlidXRlIGluaXRpYWxpc2VkIHRvIGZhbHNlLiBUaGlzCisgICAgIGV2ZW50IG11c3Qgbm90IGJ1YmJsZSwgbXVzdCBub3QgYmUgY2FuY2VsYWJsZSwgYW5kIGhhcyBubyBkZWZhdWx0IGFjdGlvbi48L29sPgorCisgICA8bGk+PHA+SWYgdGhlIDxjb2RlIGlkPXRoZS1lbmQ6ZG9jdW1lbnQtMTI+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IGhhcyBhbnkgPGEgaWQ9dGhlLWVuZDpwZW5kaW5nLWFwcGxpY2F0aW9uLWNhY2hlLWRvd25sb2FkLXByb2Nlc3MtdGFza3MgaHJlZj1icm93c2Vycy5odG1sI3BlbmRpbmctYXBwbGljYXRpb24tY2FjaGUtZG93bmxvYWQtcHJvY2Vzcy10YXNrcz5wZW5kaW5nIGFwcGxpY2F0aW9uIGNhY2hlIGRvd25sb2FkIHByb2Nlc3MKKyAgIHRhc2tzPC9hPiwgdGhlbiA8YSBocmVmPXdlYmFwcGFwaXMuaHRtbCNxdWV1ZS1hLXRhc2sgaWQ9dGhlLWVuZDpxdWV1ZS1hLXRhc2stND5xdWV1ZTwvYT4gZWFjaCBzdWNoIDxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2NvbmNlcHQtdGFzayBpZD10aGUtZW5kOmNvbmNlcHQtdGFzaz50YXNrPC9hPiBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGFkZGVkIHRvIHRoZSBsaXN0IG9mIDxhIGlkPXRoZS1lbmQ6cGVuZGluZy1hcHBsaWNhdGlvbi1jYWNoZS1kb3dubG9hZC1wcm9jZXNzLXRhc2tzLTIgaHJlZj1icm93c2Vycy5odG1sI3BlbmRpbmctYXBwbGljYXRpb24tY2FjaGUtZG93bmxvYWQtcHJvY2Vzcy10YXNrcz5wZW5kaW5nCisgICBhcHBsaWNhdGlvbiBjYWNoZSBkb3dubG9hZCBwcm9jZXNzIHRhc2tzPC9hPiwgYW5kIHRoZW4gZW1wdHkgdGhlIGxpc3Qgb2YgPGEgaWQ9dGhlLWVuZDpwZW5kaW5nLWFwcGxpY2F0aW9uLWNhY2hlLWRvd25sb2FkLXByb2Nlc3MtdGFza3MtMyBocmVmPWJyb3dzZXJzLmh0bWwjcGVuZGluZy1hcHBsaWNhdGlvbi1jYWNoZS1kb3dubG9hZC1wcm9jZXNzLXRhc2tzPnBlbmRpbmcKKyAgIGFwcGxpY2F0aW9uIGNhY2hlIGRvd25sb2FkIHByb2Nlc3MgdGFza3M8L2E+LiBUaGUgPGEgaWQ9dGhlLWVuZDp0YXNrLXNvdXJjZSBocmVmPXdlYmFwcGFwaXMuaHRtbCN0YXNrLXNvdXJjZT50YXNrIHNvdXJjZTwvYT4gZm9yIHRoZXNlIDxhIGhyZWY9d2ViYXBwYXBpcy5odG1sI2NvbmNlcHQtdGFzayBpZD10aGUtZW5kOmNvbmNlcHQtdGFzay0yPnRhc2tzPC9hPiBpcyB0aGUgPGEgaWQ9dGhlLWVuZDpuZXR3b3JraW5nLXRhc2stc291cmNlIGhyZWY9d2ViYXBwYXBpcy5odG1sI25ldHdvcmtpbmctdGFzay1zb3VyY2U+bmV0d29ya2luZyB0YXNrIHNvdXJjZTwvYT4uPGxpPjxwPklmIHRoZSA8Y29kZSBpZD10aGUtZW5kOmRvY3VtZW50LTEzPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPidzIDxhIGlkPXRoZS1lbmQ6cHJpbnQtd2hlbi1sb2FkZWQgaHJlZj13ZWJhcHBhcGlzLmh0bWwjcHJpbnQtd2hlbi1sb2FkZWQ+cHJpbnQgd2hlbiBsb2FkZWQ8L2E+IGZsYWcgaXMgc2V0LCB0aGVuIHJ1biB0aGUKKyAgIDxhIGlkPXRoZS1lbmQ6cHJpbnRpbmctc3RlcHMgaHJlZj13ZWJhcHBhcGlzLmh0bWwjcHJpbnRpbmctc3RlcHM+cHJpbnRpbmcgc3RlcHM8L2E+LjxsaT48cD5UaGUgPGNvZGUgaWQ9dGhlLWVuZDpkb2N1bWVudC0xND48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gaXMgbm93IDxkZm4gaWQ9cmVhZHktZm9yLXBvc3QtbG9hZC10YXNrcz5yZWFkeSBmb3IgcG9zdC1sb2FkIHRhc2tzPC9kZm4+LjxsaT48cD48YSBpZD10aGUtZW5kOnF1ZXVlLWEtdGFzay01IGhyZWY9d2ViYXBwYXBpcy5odG1sI3F1ZXVlLWEtdGFzaz5RdWV1ZSBhIHRhc2s8L2E+IHRvIG1hcmsgdGhlIDxjb2RlIGlkPXRoZS1lbmQ6ZG9jdW1lbnQtMTU+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IGFzIDxkZm4gaWQ9Y29tcGxldGVseS1sb2FkZWQ+Y29tcGxldGVseQorICAgbG9hZGVkPC9kZm4+Ljwvb2w+CisKKyAgPHA+V2hlbiB0aGUgdXNlciBhZ2VudCBpcyB0byA8ZGZuIGlkPWFib3J0LWEtcGFyc2VyPmFib3J0IGEgcGFyc2VyPC9kZm4+LCBpdCBtdXN0IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOjwvcD4KKworICA8b2w+PGxpPjxwPlRocm93IGF3YXkgYW55IHBlbmRpbmcgY29udGVudCBpbiB0aGUgPGEgaHJlZj0jaW5wdXQtc3RyZWFtIGlkPXRoZS1lbmQ6aW5wdXQtc3RyZWFtPmlucHV0IHN0cmVhbTwvYT4sIGFuZCBkaXNjYXJkIGFueSBmdXR1cmUKKyAgIGNvbnRlbnQgdGhhdCB3b3VsZCBoYXZlIGJlZW4gYWRkZWQgdG8gaXQuPGxpPjxwPlNldCB0aGUgPGEgaWQ9dGhlLWVuZDpjdXJyZW50LWRvY3VtZW50LXJlYWRpbmVzcy0zIGhyZWY9ZG9tLmh0bWwjY3VycmVudC1kb2N1bWVudC1yZWFkaW5lc3M+Y3VycmVudCBkb2N1bWVudCByZWFkaW5lc3M8L2E+IHRvICI8Y29kZT5pbnRlcmFjdGl2ZTwvY29kZT4iLjxsaT48cD5Qb3AgPGVtPmFsbDwvZW0+IHRoZSBub2RlcyBvZmYgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dGhlLWVuZDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTI+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4uPGxpPjxwPlNldCB0aGUgPGEgaWQ9dGhlLWVuZDpjdXJyZW50LWRvY3VtZW50LXJlYWRpbmVzcy00IGhyZWY9ZG9tLmh0bWwjY3VycmVudC1kb2N1bWVudC1yZWFkaW5lc3M+Y3VycmVudCBkb2N1bWVudCByZWFkaW5lc3M8L2E+IHRvICI8Y29kZT5jb21wbGV0ZTwvY29kZT4iLjwvb2w+CisKKyAgPHA+RXhjZXB0IHdoZXJlIG90aGVyd2lzZSBzcGVjaWZpZWQsIHRoZSA8YSBpZD10aGUtZW5kOnRhc2stc291cmNlLTIgaHJlZj13ZWJhcHBhcGlzLmh0bWwjdGFzay1zb3VyY2U+dGFzayBzb3VyY2U8L2E+IGZvciB0aGUgPGEgaHJlZj13ZWJhcHBhcGlzLmh0bWwjY29uY2VwdC10YXNrIGlkPXRoZS1lbmQ6Y29uY2VwdC10YXNrLTM+dGFza3M8L2E+IG1lbnRpb25lZCBpbiB0aGlzIHNlY3Rpb24gaXMgdGhlIDxhIGlkPXRoZS1lbmQ6ZG9tLW1hbmlwdWxhdGlvbi10YXNrLXNvdXJjZSBocmVmPXdlYmFwcGFwaXMuaHRtbCNkb20tbWFuaXB1bGF0aW9uLXRhc2stc291cmNlPkRPTSBtYW5pcHVsYXRpb24gdGFzaworICBzb3VyY2U8L2E+LjwvcD4KKworCisKKworCisKKyAgPGg0IGlkPWNvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldD4xMi4yLjcgQ29lcmNpbmcgYW4gSFRNTCBET00gaW50byBhbiBpbmZvc2V0PC9oND4KKworICA8cD5XaGVuIGFuIGFwcGxpY2F0aW9uIHVzZXMgYW4gPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0Omh0bWwtcGFyc2VyPkhUTUwgcGFyc2VyPC9hPiBpbiBjb25qdW5jdGlvbiB3aXRoIGFuIFhNTCBwaXBlbGluZSwgaXQgaXMKKyAgcG9zc2libGUgdGhhdCB0aGUgY29uc3RydWN0ZWQgRE9NIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIFhNTCB0b29sIGNoYWluIGluIGNlcnRhaW4gc3VidGxlCisgIHdheXMuIEZvciBleGFtcGxlLCBhbiBYTUwgdG9vbGNoYWluIG1pZ2h0IG5vdCBiZSBhYmxlIHRvIHJlcHJlc2VudCBhdHRyaWJ1dGVzIHdpdGggdGhlIG5hbWUgPGNvZGU+eG1sbnM8L2NvZGU+LCBzaW5jZSB0aGV5IGNvbmZsaWN0IHdpdGggdGhlIE5hbWVzcGFjZXMgaW4gWE1MIHN5bnRheC4gVGhlcmUgaXMgYWxzbyBzb21lCisgIGRhdGEgdGhhdCB0aGUgPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0Omh0bWwtcGFyc2VyLTI+SFRNTCBwYXJzZXI8L2E+IGdlbmVyYXRlcyB0aGF0IGlzbid0IGluY2x1ZGVkIGluIHRoZSBET00gaXRzZWxmLiBUaGlzCisgIHNlY3Rpb24gc3BlY2lmaWVzIHNvbWUgcnVsZXMgZm9yIGhhbmRsaW5nIHRoZXNlIGlzc3Vlcy48L3A+CisKKyAgPHA+SWYgdGhlIFhNTCBBUEkgYmVpbmcgdXNlZCBkb2Vzbid0IHN1cHBvcnQgRE9DVFlQRXMsIHRoZSB0b29sIG1heSBkcm9wIERPQ1RZUEVzIGFsdG9nZXRoZXIuPC9wPgorCisgIDxwPklmIHRoZSBYTUwgQVBJIGRvZXNuJ3Qgc3VwcG9ydCBhdHRyaWJ1dGVzIGluIG5vIG5hbWVzcGFjZSB0aGF0IGFyZSBuYW1lZCAiPGNvZGU+eG1sbnM8L2NvZGU+IiwgYXR0cmlidXRlcyB3aG9zZSBuYW1lcyBzdGFydCB3aXRoICI8Y29kZT54bWxuczo8L2NvZGU+Iiwgb3IKKyAgYXR0cmlidXRlcyBpbiB0aGUgPGEgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0OnhtbG5zLW5hbWVzcGFjZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjeG1sbnMtbmFtZXNwYWNlPlhNTE5TIG5hbWVzcGFjZTwvYT4sIHRoZW4gdGhlIHRvb2wgbWF5IGRyb3Agc3VjaCBhdHRyaWJ1dGVzLjwvcD4KKworICA8cD5UaGUgdG9vbCBtYXkgYW5ub3RhdGUgdGhlIG91dHB1dCB3aXRoIGFueSBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIHJlcXVpcmVkIGZvciBwcm9wZXIKKyAgb3BlcmF0aW9uLjwvcD4KKworICA8cD5JZiB0aGUgWE1MIEFQSSBiZWluZyB1c2VkIHJlc3RyaWN0cyB0aGUgYWxsb3dhYmxlIGNoYXJhY3RlcnMgaW4gdGhlIGxvY2FsIG5hbWVzIG9mIGVsZW1lbnRzIGFuZAorICBhdHRyaWJ1dGVzLCB0aGVuIHRoZSB0b29sIG1heSBtYXAgYWxsIGVsZW1lbnQgYW5kIGF0dHJpYnV0ZSBsb2NhbCBuYW1lcyB0aGF0IHRoZSBBUEkgd291bGRuJ3QKKyAgc3VwcG9ydCB0byBhIHNldCBvZiBuYW1lcyB0aGF0IDxlbT5hcmU8L2VtPiBhbGxvd2VkLCBieSByZXBsYWNpbmcgYW55IGNoYXJhY3RlciB0aGF0IGlzbid0CisgIHN1cHBvcnRlZCB3aXRoIHRoZSB1cHBlcmNhc2UgbGV0dGVyIFUgYW5kIHRoZSBzaXggZGlnaXRzIG9mIHRoZSBjaGFyYWN0ZXIncyBVbmljb2RlIGNvZGUgcG9pbnQKKyAgd2hlbiBleHByZXNzZWQgaW4gaGV4YWRlY2ltYWwsIHVzaW5nIGRpZ2l0cyAwLTkgYW5kIGNhcGl0YWwgbGV0dGVycyBBLUYgYXMgdGhlIHN5bWJvbHMsIGluCisgIGluY3JlYXNpbmcgbnVtZXJpYyBvcmRlci48L3A+CisKKyAgPHAgY2xhc3M9ZXhhbXBsZT5Gb3IgZXhhbXBsZSwgdGhlIGVsZW1lbnQgbmFtZSA8Y29kZT5mb28mbHQ7YmFyPC9jb2RlPiwgd2hpY2ggY2FuIGJlCisgIG91dHB1dCBieSB0aGUgPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0Omh0bWwtcGFyc2VyLTM+SFRNTCBwYXJzZXI8L2E+LCB0aG91Z2ggaXQgaXMgbmVpdGhlciBhIGxlZ2FsIEhUTUwgZWxlbWVudCBuYW1lIG5vciBhCisgIHdlbGwtZm9ybWVkIFhNTCBlbGVtZW50IG5hbWUsIHdvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIDxjb2RlPmZvb1UwMDAwM0NiYXI8L2NvZGU+LCB3aGljaAorICA8ZW0+aXM8L2VtPiBhIHdlbGwtZm9ybWVkIFhNTCBlbGVtZW50IG5hbWUgKHRob3VnaCBpdCdzIHN0aWxsIG5vdCBsZWdhbCBpbiBIVE1MIGJ5IGFueSBtZWFucykuPC9wPgorCisgIDxwIGNsYXNzPWV4YW1wbGU+QXMgYW5vdGhlciBleGFtcGxlLCBjb25zaWRlciB0aGUgYXR0cmlidXRlIDxjb2RlPnhsaW5rOmhyZWY8L2NvZGU+LgorICBVc2VkIG9uIGEgTWF0aE1MIGVsZW1lbnQsIGl0IGJlY29tZXMsIGFmdGVyIGJlaW5nIDxhIGhyZWY9I2FkanVzdC1mb3JlaWduLWF0dHJpYnV0ZXMgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0OmFkanVzdC1mb3JlaWduLWF0dHJpYnV0ZXM+YWRqdXN0ZWQ8L2E+LCBhbiBhdHRyaWJ1dGUgd2l0aCBhIHByZWZpeCAiPGNvZGU+eGxpbms8L2NvZGU+IiBhbmQgYSBsb2NhbAorICBuYW1lICI8Y29kZT5ocmVmPC9jb2RlPiIuIEhvd2V2ZXIsIHVzZWQgb24gYW4gSFRNTCBlbGVtZW50LCBpdCBiZWNvbWVzIGFuIGF0dHJpYnV0ZSB3aXRoCisgIG5vIHByZWZpeCBhbmQgdGhlIGxvY2FsIG5hbWUgIjxjb2RlPnhsaW5rOmhyZWY8L2NvZGU+Iiwgd2hpY2ggaXMgbm90IGEgdmFsaWQgTkNOYW1lLCBhbmQKKyAgdGh1cyBtaWdodCBub3QgYmUgYWNjZXB0ZWQgYnkgYW4gWE1MIEFQSS4gSXQgY291bGQgdGh1cyBnZXQgY29udmVydGVkLCBiZWNvbWluZyAiPGNvZGU+eGxpbmtVMDAwMDNBaHJlZjwvY29kZT4iLjwvcD4KKworICA8cCBjbGFzcz1ub3RlPlRoZSByZXN1bHRpbmcgbmFtZXMgZnJvbSB0aGlzIGNvbnZlcnNpb24gY29udmVuaWVudGx5IGNhbid0IGNsYXNoIHdpdGggYW55CisgIGF0dHJpYnV0ZSBnZW5lcmF0ZWQgYnkgdGhlIDxhIGhyZWY9I2h0bWwtcGFyc2VyIGlkPWNvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldDpodG1sLXBhcnNlci00PkhUTUwgcGFyc2VyPC9hPiwgc2luY2UgdGhvc2UgYXJlIGFsbCBlaXRoZXIgbG93ZXJjYXNlIG9yIHRob3NlCisgIGxpc3RlZCBpbiB0aGUgPGEgaHJlZj0jYWRqdXN0LWZvcmVpZ24tYXR0cmlidXRlcyBpZD1jb2VyY2luZy1hbi1odG1sLWRvbS1pbnRvLWFuLWluZm9zZXQ6YWRqdXN0LWZvcmVpZ24tYXR0cmlidXRlcy0yPmFkanVzdCBmb3JlaWduIGF0dHJpYnV0ZXM8L2E+IGFsZ29yaXRobSdzIHRhYmxlLjwvcD4KKworICA8cD5JZiB0aGUgWE1MIEFQSSByZXN0cmljdHMgY29tbWVudHMgZnJvbSBoYXZpbmcgdHdvIGNvbnNlY3V0aXZlIFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVycworICAoLS0pLCB0aGUgdG9vbCBtYXkgaW5zZXJ0IGEgc2luZ2xlIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIgYmV0d2VlbiBhbnkgc3VjaCBvZmZlbmRpbmcKKyAgY2hhcmFjdGVycy48L3A+CisKKyAgPHA+SWYgdGhlIFhNTCBBUEkgcmVzdHJpY3RzIGNvbW1lbnRzIGZyb20gZW5kaW5nIGluIGEgVSswMDJEIEhZUEhFTi1NSU5VUyBjaGFyYWN0ZXIgKC0pLCB0aGUgdG9vbAorICBtYXkgaW5zZXJ0IGEgc2luZ2xlIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIgYXQgdGhlIGVuZCBvZiBzdWNoIGNvbW1lbnRzLjwvcD4KKworICA8cD5JZiB0aGUgWE1MIEFQSSByZXN0cmljdHMgYWxsb3dlZCBjaGFyYWN0ZXJzIGluIGNoYXJhY3RlciBkYXRhLCBhdHRyaWJ1dGUgdmFsdWVzLCBvciBjb21tZW50cywKKyAgdGhlIHRvb2wgbWF5IHJlcGxhY2UgYW55IFUrMDAwQyBGT1JNIEZFRUQgKEZGKSBjaGFyYWN0ZXIgd2l0aCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIsIGFuZCBhbnkKKyAgb3RoZXIgbGl0ZXJhbCBub24tWE1MIGNoYXJhY3RlciB3aXRoIGEgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUi48L3A+CisKKyAgPHA+SWYgdGhlIHRvb2wgaGFzIG5vIHdheSB0byBjb252ZXkgb3V0LW9mLWJhbmQgaW5mb3JtYXRpb24sIHRoZW4gdGhlIHRvb2wgbWF5IGRyb3AgdGhlIGZvbGxvd2luZworICBpbmZvcm1hdGlvbjo8L3A+CisKKyAgPHVsPjxsaT5XaGV0aGVyIHRoZSBkb2N1bWVudCBpcyBzZXQgdG8gPGkgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0Om5vLXF1aXJrcy1tb2RlPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNuby1xdWlya3MtbW9kZT5uby1xdWlya3MgbW9kZTwvYT48L2k+LCA8aSBpZD1jb2VyY2luZy1hbi1odG1sLWRvbS1pbnRvLWFuLWluZm9zZXQ6bGltaXRlZC1xdWlya3MtbW9kZT48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbGltaXRlZC1xdWlya3MtbW9kZT5saW1pdGVkLXF1aXJrcyBtb2RlPC9hPjwvaT4sIG9yCisgICA8aSBpZD1jb2VyY2luZy1hbi1odG1sLWRvbS1pbnRvLWFuLWluZm9zZXQ6cXVpcmtzLW1vZGU+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3F1aXJrcy1tb2RlPnF1aXJrcyBtb2RlPC9hPjwvaT48bGk+VGhlIGFzc29jaWF0aW9uIGJldHdlZW4gZm9ybSBjb250cm9scyBhbmQgZm9ybXMgdGhhdCBhcmVuJ3QgdGhlaXIgbmVhcmVzdCA8Y29kZSBpZD1jb2VyY2luZy1hbi1odG1sLWRvbS1pbnRvLWFuLWluZm9zZXQ6dGhlLWZvcm0tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudD5mb3JtPC9hPjwvY29kZT4KKyAgIGVsZW1lbnQgYW5jZXN0b3IgKHVzZSBvZiB0aGUgPGEgaHJlZj0jZm9ybS1lbGVtZW50LXBvaW50ZXIgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0OmZvcm0tZWxlbWVudC1wb2ludGVyPjxjb2RlPmZvcm08L2NvZGU+IGVsZW1lbnQgcG9pbnRlcjwvYT4gaW4gdGhlIHBhcnNlcik8bGk+VGhlIDxhIGlkPWNvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldDp0ZW1wbGF0ZS1jb250ZW50cyBocmVmPXNjcmlwdGluZy5odG1sI3RlbXBsYXRlLWNvbnRlbnRzPnRlbXBsYXRlIGNvbnRlbnRzPC9hPiBvZiBhbnkgPGNvZGUgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0OnRoZS10ZW1wbGF0ZS1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiBlbGVtZW50cy48L3VsPgorCisgIDxwIGNsYXNzPW5vdGU+VGhlIG11dGF0aW9ucyBhbGxvd2VkIGJ5IHRoaXMgc2VjdGlvbiBhcHBseSA8ZW0+YWZ0ZXI8L2VtPiB0aGUgPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9Y29lcmNpbmctYW4taHRtbC1kb20taW50by1hbi1pbmZvc2V0Omh0bWwtcGFyc2VyLTU+SFRNTAorICBwYXJzZXI8L2E+J3MgcnVsZXMgaGF2ZSBiZWVuIGFwcGxpZWQuIEZvciBleGFtcGxlLCBhIDxjb2RlPiZsdDthOjo+PC9jb2RlPiBzdGFydCB0YWcKKyAgd2lsbCBiZSBjbG9zZWQgYnkgYSA8Y29kZT4mbHQ7L2E6Oj48L2NvZGU+IGVuZCB0YWcsIGFuZCBuZXZlciBieSBhIDxjb2RlPiZsdDsvYVUwMDAwM0FVMDAwMDNBPjwvY29kZT4gZW5kIHRhZywgZXZlbiBpZiB0aGUgdXNlciBhZ2VudCBpcyB1c2luZyB0aGUgcnVsZXMgYWJvdmUgdG8KKyAgdGhlbiBnZW5lcmF0ZSBhbiBhY3R1YWwgZWxlbWVudCBpbiB0aGUgRE9NIHdpdGggdGhlIG5hbWUgPGNvZGU+YVUwMDAwM0FVMDAwMDNBPC9jb2RlPiBmb3IKKyAgdGhhdCBzdGFydCB0YWcuPC9wPgorCisKKworCisKKworICA8aDQgaWQ9YW4taW50cm9kdWN0aW9uLXRvLWVycm9yLWhhbmRsaW5nLWFuZC1zdHJhbmdlLWNhc2VzLWluLXRoZS1wYXJzZXI+MTIuMi44IEFuIGludHJvZHVjdGlvbiB0byBlcnJvciBoYW5kbGluZyBhbmQgc3RyYW5nZSBjYXNlcyBpbiB0aGUgcGFyc2VyPC9oND4KKworICA8cD48aT5UaGlzIHNlY3Rpb24gaXMgbm9uLW5vcm1hdGl2ZS48L2k+PC9wPgorCisgIDxwPlRoaXMgc2VjdGlvbiBleGFtaW5lcyBzb21lIGVycm9uZW91cyBtYXJrdXAgYW5kIGRpc2N1c3NlcyBob3cgdGhlIDxhIGhyZWY9I2h0bWwtcGFyc2VyIGlkPWFuLWludHJvZHVjdGlvbi10by1lcnJvci1oYW5kbGluZy1hbmQtc3RyYW5nZS1jYXNlcy1pbi10aGUtcGFyc2VyOmh0bWwtcGFyc2VyPkhUTUwgcGFyc2VyPC9hPgorICBoYW5kbGVzIHRoZXNlIGNhc2VzLjwvcD4KKworCisgIDxoNSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pPjEyLjIuOC4xIE1pc25lc3RlZCB0YWdzOiAmbHQ7Yj4mbHQ7aT4mbHQ7L2I+Jmx0Oy9pPjwvaDU+CisKKyAgPHA+PGk+VGhpcyBzZWN0aW9uIGlzIG5vbi1ub3JtYXRpdmUuPC9pPjwvcD4KKworICA8cD5UaGUgbW9zdC1vZnRlbiBkaXNjdXNzZWQgZXhhbXBsZSBvZiBlcnJvbmVvdXMgbWFya3VwIGlzIGFzIGZvbGxvd3M6PC9wPgorCisgIDxwcmU+Jmx0O3A+MSZsdDtiPjImbHQ7aT4zJmx0Oy9iPjQmbHQ7L2k+NSZsdDsvcD48L3ByZT4KKworICA8cD5UaGUgcGFyc2luZyBvZiB0aGlzIG1hcmt1cCBpcyBzdHJhaWdodGZvcndhcmQgdXAgdG8gdGhlICIzIi4gQXQgdGhpcyBwb2ludCwgdGhlIERPTSBsb29rcyBsaWtlCisgIHRoaXM6PC9wPgorCisgIDx1bCBjbGFzcz1kb21UcmVlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1odG1sLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtaGVhZC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtYm9keS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGhlLXAtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRleHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+MTwvc3Bhbj48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtYi1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGV4dC0yPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PiN0ZXh0PC9hPjwvY29kZT46IDxzcGFuPjI8L3NwYW4+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGhlLWktZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1pLWVsZW1lbnQ+aTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRleHQtMz48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4zPC9zcGFuPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPgorCisgIDxwPkhlcmUsIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6c3RhY2stb2Ytb3Blbi1lbGVtZW50cz5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBoYXMgZml2ZSBlbGVtZW50cyBvbiBpdDogPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtaHRtbC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiwKKyAgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtYm9keS1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtcC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtYi1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiwgYW5kIDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGhlLWktZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWktZWxlbWVudD5pPC9hPjwvY29kZT4uIFRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cz5saXN0IG9mIGFjdGl2ZQorICBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiBqdXN0IGhhcyB0d286IDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGhlLWItZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gYW5kIDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGhlLWktZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWktZWxlbWVudD5pPC9hPjwvY29kZT4uIFRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOmluc2VydGlvbi1tb2RlPmluc2VydGlvbgorICBtb2RlPC9hPiBpcyAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnBhcnNpbmctbWFpbi1pbmJvZHk+aW4gYm9keTwvYT4iLjwvcD4KKworICA8cD5VcG9uIHJlY2VpdmluZyB0aGUgZW5kIHRhZyB0b2tlbiB3aXRoIHRoZSB0YWcgbmFtZSAiYiIsIHRoZSAiPGEgaHJlZj0jYWRvcHRpb25BZ2VuY3k+YWRvcHRpb24KKyAgYWdlbmN5IGFsZ29yaXRobTwvYT4iIGlzIGludm9rZWQuIFRoaXMgaXMgYSBzaW1wbGUgY2FzZSwgaW4gdGhhdCB0aGUgPHZhcj5mb3JtYXR0aW5nCisgIGVsZW1lbnQ8L3Zhcj4gaXMgdGhlIDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGhlLWItZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gZWxlbWVudCwgYW5kIHRoZXJlIGlzIG5vIDx2YXI+ZnVydGhlc3QgYmxvY2s8L3Zhcj4uCisgIFRodXMsIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGVuZHMgdXAgd2l0aCBqdXN0IHRocmVlIGVsZW1lbnRzOiA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1odG1sLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+LAorICA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1ib2R5LWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+LCBhbmQgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtcC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiwgd2hpbGUgdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTI+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4KKyAgaGFzIGp1c3Qgb25lOiA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1pLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1pLWVsZW1lbnQ+aTwvYT48L2NvZGU+LiBUaGUgRE9NIHRyZWUgaXMgdW5tb2RpZmllZCBhdCB0aGlzIHBvaW50LjwvcD4KKworICA8cD5UaGUgbmV4dCB0b2tlbiBpcyBhIGNoYXJhY3RlciAoIjQiKSwgdHJpZ2dlcnMgdGhlIDxhIGhyZWY9I3JlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnJlY29uc3RydWN0LXRoZS1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cz5yZWNvbnN0cnVjdGlvbiBvZiB0aGUgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBpbiB0aGlzIGNhc2UganVzdAorICB0aGUgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtaS1lbGVtZW50LTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaS1lbGVtZW50Pmk8L2E+PC9jb2RlPiBlbGVtZW50LiBBIG5ldyA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1pLWVsZW1lbnQtNj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1pLWVsZW1lbnQ+aTwvYT48L2NvZGU+IGVsZW1lbnQgaXMgdGh1cyBjcmVhdGVkIGZvciB0aGUgIjQiCisgIDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLWktL2ItL2k6dGV4dC00PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PlRleHQ8L2E+PC9jb2RlPiBub2RlLiBBZnRlciB0aGUgZW5kIHRhZyB0b2tlbiBmb3IgdGhlICJpIiBpcyBhbHNvIHJlY2VpdmVkLCBhbmQgdGhlICI1IgorICA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRleHQtNT48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD5UZXh0PC9hPjwvY29kZT4gbm9kZSBpcyBpbnNlcnRlZCwgdGhlIERPTSBsb29rcyBhcyBmb2xsb3dzOjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtaHRtbC1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtaGVhZC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1ib2R5LWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1wLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRleHQtNj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4xPC9zcGFuPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1iLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRleHQtNz48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4yPC9zcGFuPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRoZS1pLWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1pLWVsZW1lbnQ+aTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRleHQtOD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4zPC9zcGFuPjwvdWw+PC91bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0aGUtaS1lbGVtZW50LTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaS1lbGVtZW50Pmk8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDM+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaTp0ZXh0LTk+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+NDwvc3Bhbj48L3VsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pOnRleHQtMTA+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+NTwvc3Bhbj48L3VsPjwvdWw+PC91bD48L3VsPgorCisKKyAgPGg1IGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A+MTIuMi44LjIgTWlzbmVzdGVkIHRhZ3M6ICZsdDtiPiZsdDtwPiZsdDsvYj4mbHQ7L3A+PC9oNT4KKworICA8cD48aT5UaGlzIHNlY3Rpb24gaXMgbm9uLW5vcm1hdGl2ZS48L2k+PC9wPgorCisgIDxwPkEgY2FzZSBzaW1pbGFyIHRvIHRoZSBwcmV2aW91cyBvbmUgaXMgdGhlIGZvbGxvd2luZzo8L3A+CisKKyAgPHByZT4mbHQ7Yj4xJmx0O3A+MiZsdDsvYj4zJmx0Oy9wPjwvcHJlPgorCisgIDxwPlVwIHRvIHRoZSAiMiIgdGhlIHBhcnNpbmcgaGVyZSBpcyBzdHJhaWdodGZvcndhcmQ6PC9wPgorCisgIDx1bCBjbGFzcz1kb21UcmVlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1odG1sLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtaGVhZC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtYm9keS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWItZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRleHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+MTwvc3Bhbj48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtcC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXAtZWxlbWVudD5wPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGV4dC0yPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PiN0ZXh0PC9hPjwvY29kZT46IDxzcGFuPjI8L3NwYW4+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPgorCisgIDxwPlRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHdoZW4gdGhlIGVuZCB0YWcgdG9rZW4gd2l0aCB0aGUgdGFnIG5hbWUgImIiIGlzIHBhcnNlZC48L3A+CisKKyAgPHA+QmVmb3JlIHRoYXQgdG9rZW4gaXMgc2VlbiwgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IGhhcyBmb3VyIGVsZW1lbnRzIG9uIGl0OgorICA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1odG1sLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+LCA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1ib2R5LWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+LCA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1iLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+LCBhbmQgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtcC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPi4gVGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzPmxpc3Qgb2YgYWN0aXZlCisgIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+IGp1c3QgaGFzIHRoZSBvbmU6IDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWItZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4uIFRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOmluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiBpcworICAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWluYm9keSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnBhcnNpbmctbWFpbi1pbmJvZHk+aW4gYm9keTwvYT4iLjwvcD4KKworICA8cD5VcG9uIHJlY2VpdmluZyB0aGUgZW5kIHRhZyB0b2tlbiB3aXRoIHRoZSB0YWcgbmFtZSAiYiIsIHRoZSAiPGEgaHJlZj0jYWRvcHRpb25BZ2VuY3k+YWRvcHRpb24KKyAgYWdlbmN5IGFsZ29yaXRobTwvYT4iIGlzIGludm9rZWQsIGFzIGluIHRoZSBwcmV2aW91cyBleGFtcGxlLiBIb3dldmVyLCBpbiB0aGlzIGNhc2UsIHRoZXJlCisgIDxlbT5pczwvZW0+IGEgPHZhcj5mdXJ0aGVzdCBibG9jazwvdmFyPiwgbmFtZWx5IHRoZSA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1wLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+IGVsZW1lbnQuIFRodXMsIHRoaXMKKyAgdGltZSB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobSBpc24ndCBza2lwcGVkIG92ZXIuPC9wPgorCisgIDxwPlRoZSA8dmFyPmNvbW1vbiBhbmNlc3RvcjwvdmFyPiBpcyB0aGUgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtYm9keS1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiBlbGVtZW50LiBBIGNvbmNlcHR1YWwKKyAgImJvb2ttYXJrIiBtYXJrcyB0aGUgcG9zaXRpb24gb2YgdGhlIDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWItZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gaW4gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTI+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZworICBlbGVtZW50czwvYT4sIGJ1dCBzaW5jZSB0aGF0IGxpc3QgaGFzIG9ubHkgb25lIGVsZW1lbnQgaW4gaXQsIHRoZSBib29rbWFyayB3b24ndCBoYXZlIG11Y2gKKyAgZWZmZWN0LjwvcD4KKworICA8cD5BcyB0aGUgYWxnb3JpdGhtIHByb2dyZXNzZXMsIDx2YXI+bm9kZTwvdmFyPiBlbmRzIHVwIHNldCB0byB0aGUgZm9ybWF0dGluZyBlbGVtZW50CisgICg8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1iLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+KSwgYW5kIDx2YXI+bGFzdCBub2RlPC92YXI+IGVuZHMgdXAgc2V0IHRvIHRoZSA8dmFyPmZ1cnRoZXN0CisgIGJsb2NrPC92YXI+ICg8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1wLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+KS48L3A+CisKKyAgPHA+VGhlIDx2YXI+bGFzdCBub2RlPC92YXI+IGdldHMgYXBwZW5kZWQgKG1vdmVkKSB0byB0aGUgPHZhcj5jb21tb24KKyAgYW5jZXN0b3I8L3Zhcj4sIHNvIHRoYXQgdGhlIERPTSBsb29rcyBsaWtlOjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtaHRtbC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtaGVhZC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1ib2R5LWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1iLWVsZW1lbnQtNj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRleHQtMz48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4xPC9zcGFuPjwvdWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLXAtZWxlbWVudC01PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXAtZWxlbWVudD5wPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGV4dC00PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PiN0ZXh0PC9hPjwvY29kZT46IDxzcGFuPjI8L3NwYW4+PC91bD48L3VsPjwvdWw+PC91bD4KKworICA8cD5BIG5ldyA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1iLWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IGVsZW1lbnQgaXMgY3JlYXRlZCwgYW5kIHRoZSBjaGlsZHJlbiBvZiB0aGUgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtcC1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiBlbGVtZW50IGFyZQorICBtb3ZlZCB0byBpdDo8L3A+CisKKyAgPHVsIGNsYXNzPWRvbVRyZWU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWh0bWwtZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWhlYWQtZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtYm9keS1lbGVtZW50LTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtYi1lbGVtZW50LTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDM+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0ZXh0LTU+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+MTwvc3Bhbj48L3VsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1wLWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+PC91bD48L3VsPjwvdWw+CisgIDx1bCBjbGFzcz1kb21UcmVlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1iLWVsZW1lbnQtOT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRleHQtNj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4yPC9zcGFuPjwvdWw+PC91bD4KKworICA8cD5GaW5hbGx5LCB0aGUgbmV3IDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWItZWxlbWVudC0xMD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IGVsZW1lbnQgaXMgYXBwZW5kZWQgdG8gdGhlIDxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLXAtZWxlbWVudC04PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXAtZWxlbWVudD5wPC9hPjwvY29kZT4gZWxlbWVudCwgc28gdGhhdCB0aGUKKyAgRE9NIGxvb2tzIGxpa2U6PC9wPgorCisgIDx1bCBjbGFzcz1kb21UcmVlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1odG1sLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1oZWFkLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWJvZHktZWxlbWVudC02PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWItZWxlbWVudC0xMT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRleHQtNz48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4xPC9zcGFuPjwvdWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLXAtZWxlbWVudC05PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXAtZWxlbWVudD5wPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGhlLWItZWxlbWVudC0xMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRleHQtOD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4yPC9zcGFuPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD4KKworICA8cD5UaGUgPGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtYi1lbGVtZW50LTEzPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTM+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4KKyAgYW5kIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6c3RhY2stb2Ytb3Blbi1lbGVtZW50cy0yPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+LCBzbyB0aGF0IHdoZW4gdGhlICIzIiBpcyBwYXJzZWQsIGl0IGlzIGFwcGVuZGVkIHRvIHRoZQorICA8Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1wLWVsZW1lbnQtMTA+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPiBlbGVtZW50OjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtaHRtbC1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtaGVhZC1lbGVtZW50LTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1ib2R5LWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1iLWVsZW1lbnQtMTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDM+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0ZXh0LTk+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+MTwvc3Bhbj48L3VsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1taXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wOnRoZS1wLWVsZW1lbnQtMTE+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9bWlzbmVzdGVkLXRhZ3M6LWItcC0vYi0vcDp0aGUtYi1lbGVtZW50LTE1PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGV4dC0xMD48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4yPC9zcGFuPjwvdWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPW1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3A6dGV4dC0xMT48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj4zPC9zcGFuPjwvdWw+PC91bD48L3VsPjwvdWw+CisKKworICA8aDUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzPjEyLjIuOC4zIFVuZXhwZWN0ZWQgbWFya3VwIGluIHRhYmxlczwvaDU+CisKKyAgPHA+PGk+VGhpcyBzZWN0aW9uIGlzIG5vbi1ub3JtYXRpdmUuPC9pPjwvcD4KKworICA8cD5FcnJvciBoYW5kbGluZyBpbiB0YWJsZXMgaXMsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGVzcGVjaWFsbHkgc3RyYW5nZS4gRm9yIGV4YW1wbGUsIGNvbnNpZGVyCisgIHRoZSBmb2xsb3dpbmcgbWFya3VwOjwvcD4KKworICA8cHJlPiZsdDt0YWJsZT48c3Ryb25nPiZsdDtiPjwvc3Ryb25nPiZsdDt0cj4mbHQ7dGQ+YWFhJmx0Oy90ZD4mbHQ7L3RyPjxzdHJvbmc+YmJiPC9zdHJvbmc+Jmx0Oy90YWJsZT5jY2M8L3ByZT4KKworICA8cD5UaGUgaGlnaGxpZ2h0ZWQgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1iLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiBlbGVtZW50IHN0YXJ0IHRhZyBpcyBub3QgYWxsb3dlZCBkaXJlY3RseSBpbnNpZGUgYSB0YWJsZSBsaWtlCisgIHRoYXQsIGFuZCB0aGUgcGFyc2VyIGhhbmRsZXMgdGhpcyBjYXNlIGJ5IHBsYWNpbmcgdGhlIGVsZW1lbnQgPGVtPmJlZm9yZTwvZW0+IHRoZSB0YWJsZS4gKFRoaXMgaXMKKyAgY2FsbGVkIDxpIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpmb3N0ZXItcGFyZW50PjxhIGhyZWY9I2Zvc3Rlci1wYXJlbnQ+Zm9zdGVyIHBhcmVudGluZzwvYT48L2k+LikgVGhpcyBjYW4gYmUgc2VlbiBieSBleGFtaW5pbmcgdGhlIERPTSB0cmVlCisgIGFzIGl0IHN0YW5kcyBqdXN0IGFmdGVyIHRoZSA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRhYmxlLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+IGVsZW1lbnQncyBzdGFydCB0YWcgaGFzIGJlZW4gc2Vlbjo8L3A+CisKKyAgPHVsIGNsYXNzPWRvbVRyZWU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaHRtbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaGVhZC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1ib2R5LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10YWJsZS1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+PC91bD48L3VsPjwvdWw+CisKKyAgPHA+Li4uYW5kIHRoZW4gaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYi1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiBlbGVtZW50IHN0YXJ0IHRhZyBoYXMgYmVlbiBzZWVuOjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1odG1sLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWhlYWQtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1ib2R5LWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10YWJsZS1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+PC91bD48L3VsPjwvdWw+CisKKyAgPHA+QXQgdGhpcyBwb2ludCwgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gaGFzIG9uIGl0IHRoZSBlbGVtZW50cworICA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWh0bWwtZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4sIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYm9keS1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10YWJsZS1lbGVtZW50LTQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+LCBhbmQgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1iLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IChpbiB0aGF0IG9yZGVyLAorICBkZXNwaXRlIHRoZSByZXN1bHRpbmcgRE9NIHRyZWUpOyB0aGUgPGEgaHJlZj0jbGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cyBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6bGlzdC1vZi1hY3RpdmUtZm9ybWF0dGluZy1lbGVtZW50cz5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiBqdXN0IGhhcyB0aGUKKyAgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1iLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IGVsZW1lbnQgaW4gaXQ7IGFuZCB0aGUgPGEgaHJlZj0jaW5zZXJ0aW9uLW1vZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOmluc2VydGlvbi1tb2RlPmluc2VydGlvbiBtb2RlPC9hPiBpcyAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnBhcnNpbmctbWFpbi1pbnRhYmxlPmluIHRhYmxlPC9hPiIuPC9wPgorCisgIDxwPlRoZSA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRyLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdHItZWxlbWVudD50cjwvYT48L2NvZGU+IHN0YXJ0IHRhZyBjYXVzZXMgdGhlIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYi1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiBlbGVtZW50IHRvIGJlIHBvcHBlZCBvZmYgdGhlIHN0YWNrIGFuZAorICBhIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGJvZHktZWxlbWVudD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4gc3RhcnQgdGFnIHRvIGJlIGltcGxpZWQ7IHRoZSA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRib2R5LWVsZW1lbnQtMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4gYW5kIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdHItZWxlbWVudC0yPjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPiBlbGVtZW50cworICBhcmUgdGhlbiBoYW5kbGVkIGluIGEgcmF0aGVyIHN0cmFpZ2h0LWZvcndhcmQgbWFubmVyLCB0YWtpbmcgdGhlIHBhcnNlciB0aHJvdWdoIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnBhcnNpbmctbWFpbi1pbnRib2R5PmluIHRhYmxlIGJvZHk8L2E+IiBhbmQgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRyIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpwYXJzaW5nLW1haW4taW50cj5pbiByb3c8L2E+IiBpbnNlcnRpb24gbW9kZXMsIGFmdGVyIHdoaWNoIHRoZSBET00gbG9va3MgYXMgZm9sbG93czo8L3A+CisKKyAgPHVsIGNsYXNzPWRvbVRyZWU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaHRtbC1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1oZWFkLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYm9keS1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYm9keS1lbGVtZW50PmJvZHk8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1iLWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGFibGUtZWxlbWVudC01PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10Ym9keS1lbGVtZW50LTM+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRyLWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT48L3VsPjwvdWw+PC91bD48L3VsPjwvdWw+CisKKyAgPHA+SGVyZSwgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMj5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBoYXMgb24gaXQgdGhlIGVsZW1lbnRzIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaHRtbC1lbGVtZW50LTU+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiwKKyAgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1ib2R5LWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+LCA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRhYmxlLWVsZW1lbnQtNj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4sIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGJvZHktZWxlbWVudC00PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiwgYW5kIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdHItZWxlbWVudC00PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPjsgdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtMj5saXN0IG9mCisgIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiBzdGlsbCBoYXMgdGhlIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYi1lbGVtZW50LTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiBlbGVtZW50IGluIGl0OyBhbmQgdGhlCisgIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczppbnNlcnRpb24tbW9kZS0yPmluc2VydGlvbiBtb2RlPC9hPiBpcyAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludHIgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnBhcnNpbmctbWFpbi1pbnRyLTI+aW4gcm93PC9hPiIuPC9wPgorCisgIDxwPlRoZSA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRkLWVsZW1lbnQ+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+IGVsZW1lbnQgc3RhcnQgdGFnIHRva2VuLCBhZnRlciBwdXR0aW5nIGEgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10ZC1lbGVtZW50LTI+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+IGVsZW1lbnQgb24gdGhlCisgIHRyZWUsIHB1dHMgYSA8YSBocmVmPSNjb25jZXB0LXBhcnNlci1tYXJrZXIgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOmNvbmNlcHQtcGFyc2VyLW1hcmtlcj5tYXJrZXI8L2E+IG9uIHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTM+bGlzdCBvZiBhY3RpdmUKKyAgZm9ybWF0dGluZyBlbGVtZW50czwvYT4gKGl0IGFsc28gc3dpdGNoZXMgdG8gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW50ZCBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6cGFyc2luZy1tYWluLWludGQ+aW4KKyAgY2VsbDwvYT4iIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczppbnNlcnRpb24tbW9kZS0zPmluc2VydGlvbiBtb2RlPC9hPikuPC9wPgorCisgIDx1bCBjbGFzcz1kb21UcmVlPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWh0bWwtZWxlbWVudC02PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaGVhZC1lbGVtZW50LTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWJvZHktZWxlbWVudC02PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYi1lbGVtZW50LTk+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRhYmxlLWVsZW1lbnQtNz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGJvZHktZWxlbWVudC01PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10ci1lbGVtZW50LTU+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdHItZWxlbWVudD50cjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRkLWVsZW1lbnQtMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ZC1lbGVtZW50PnRkPC9hPjwvY29kZT48L3VsPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD4KKworICA8cD5UaGUgPGEgaHJlZj0jY29uY2VwdC1wYXJzZXItbWFya2VyIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpjb25jZXB0LXBhcnNlci1tYXJrZXItMj5tYXJrZXI8L2E+IG1lYW5zIHRoYXQgd2hlbiB0aGUgImFhYSIgY2hhcmFjdGVyCisgIHRva2VucyBhcmUgc2Vlbiwgbm8gPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1iLWVsZW1lbnQtMTA+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiBlbGVtZW50IGlzIGNyZWF0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0aW5nIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0ZXh0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PlRleHQ8L2E+PC9jb2RlPgorICBub2RlOjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1odG1sLWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWhlYWQtZWxlbWVudC01PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1ib2R5LWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0xMT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGFibGUtZWxlbWVudC04PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10Ym9keS1lbGVtZW50LTY+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGJvZHktZWxlbWVudD50Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRyLWVsZW1lbnQtNj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ci1lbGVtZW50PnRyPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGQtZWxlbWVudC00PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRkLWVsZW1lbnQ+dGQ8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDM+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRleHQtMj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj5hYWE8L3NwYW4+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD4KKworICA8cD5UaGUgZW5kIHRhZ3MgYXJlIGhhbmRsZWQgaW4gYSBzdHJhaWdodC1mb3J3YXJkIG1hbm5lcjsgYWZ0ZXIgaGFuZGxpbmcgdGhlbSwgdGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtMz5zdGFjayBvZgorICBvcGVuIGVsZW1lbnRzPC9hPiBoYXMgb24gaXQgdGhlIGVsZW1lbnRzIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaHRtbC1lbGVtZW50LTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1ib2R5LWVsZW1lbnQtOD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+LAorICA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRhYmxlLWVsZW1lbnQtOT48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4sIGFuZCA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRib2R5LWVsZW1lbnQtNz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT47IHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTQ+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4KKyAgc3RpbGwgaGFzIHRoZSA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0xMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IGVsZW1lbnQgaW4gaXQgKHRoZSA8YSBocmVmPSNjb25jZXB0LXBhcnNlci1tYXJrZXIgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOmNvbmNlcHQtcGFyc2VyLW1hcmtlci0zPm1hcmtlcjwvYT4KKyAgaGF2aW5nIGJlZW4gcmVtb3ZlZCBieSB0aGUgInRkIiBlbmQgdGFnIHRva2VuKTsgYW5kIHRoZSA8YSBocmVmPSNpbnNlcnRpb24tbW9kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6aW5zZXJ0aW9uLW1vZGUtND5pbnNlcnRpb24gbW9kZTwvYT4gaXMgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRib2R5IGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpwYXJzaW5nLW1haW4taW50Ym9keS0yPmluIHRhYmxlIGJvZHk8L2E+Ii48L3A+CisKKyAgPHA+VGh1cyBpdCBpcyB0aGF0IHRoZSAiYmJiIiBjaGFyYWN0ZXIgdG9rZW5zIGFyZSBmb3VuZC4gVGhlc2UgdHJpZ2dlciB0aGUgIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRhYmxldGV4dCBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6cGFyc2luZy1tYWluLWludGFibGV0ZXh0PmluIHRhYmxlIHRleHQ8L2E+IiBpbnNlcnRpb24gbW9kZSB0byBiZSB1c2VkICh3aXRoIHRoZSA8YSBocmVmPSNvcmlnaW5hbC1pbnNlcnRpb24tbW9kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6b3JpZ2luYWwtaW5zZXJ0aW9uLW1vZGU+b3JpZ2luYWwKKyAgaW5zZXJ0aW9uIG1vZGU8L2E+IHNldCB0byAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnBhcnNpbmctbWFpbi1pbnRib2R5LTM+aW4gdGFibGUgYm9keTwvYT4iKS4KKyAgVGhlIGNoYXJhY3RlciB0b2tlbnMgYXJlIGNvbGxlY3RlZCwgYW5kIHdoZW4gdGhlIG5leHQgdG9rZW4gKHRoZSA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRhYmxlLWVsZW1lbnQtMTA+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGFibGUtZWxlbWVudD50YWJsZTwvYT48L2NvZGU+IGVsZW1lbnQgZW5kCisgIHRhZykgaXMgc2VlbiwgdGhleSBhcmUgcHJvY2Vzc2VkIGFzIGEgZ3JvdXAuIFNpbmNlIHRoZXkgYXJlIG5vdCBhbGwgc3BhY2VzLCB0aGV5IGFyZSBoYW5kbGVkIGFzCisgIHBlciB0aGUgImFueXRoaW5nIGVsc2UiIHJ1bGVzIGluIHRoZSAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGFibGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnBhcnNpbmctbWFpbi1pbnRhYmxlLTI+aW4gdGFibGU8L2E+IgorICBpbnNlcnRpb24gbW9kZSwgd2hpY2ggZGVmZXIgdG8gdGhlICI8YSBocmVmPSNwYXJzaW5nLW1haW4taW5ib2R5IGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpwYXJzaW5nLW1haW4taW5ib2R5PmluIGJvZHk8L2E+IgorICBpbnNlcnRpb24gbW9kZSBidXQgd2l0aCA8YSBocmVmPSNmb3N0ZXItcGFyZW50IGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpmb3N0ZXItcGFyZW50LTI+Zm9zdGVyIHBhcmVudGluZzwvYT4uPC9wPgorCisgIDxwPldoZW4gPGEgaHJlZj0jcmVjb25zdHJ1Y3QtdGhlLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpyZWNvbnN0cnVjdC10aGUtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHM+dGhlIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzCisgIGFyZSByZWNvbnN0cnVjdGVkPC9hPiwgYSA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0xMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IGVsZW1lbnQgaXMgY3JlYXRlZCBhbmQgPGEgaHJlZj0jZm9zdGVyLXBhcmVudCBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6Zm9zdGVyLXBhcmVudC0zPmZvc3RlciBwYXJlbnRlZDwvYT4sIGFuZCB0aGVuIHRoZSAiYmJiIiA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGV4dC0zPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PlRleHQ8L2E+PC9jb2RlPiBub2RlIGlzIGFwcGVuZGVkIHRvIGl0OjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1odG1sLWVsZW1lbnQtOT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWhlYWQtZWxlbWVudC02PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1ib2R5LWVsZW1lbnQtOT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0xND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYi1lbGVtZW50LTE1PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0ZXh0LTQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+YmJiPC9zcGFuPjwvdWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGFibGUtZWxlbWVudC0xMT48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGJvZHktZWxlbWVudC04PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10ci1lbGVtZW50LTc+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdHItZWxlbWVudD50cjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLXRkLWVsZW1lbnQtNT48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10ZC1lbGVtZW50PnRkPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0ZXh0LTU+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+YWFhPC9zcGFuPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPjwvdWw+CisKKyAgPHA+VGhlIDxhIGhyZWY9I3N0YWNrLW9mLW9wZW4tZWxlbWVudHMgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHMtND5zdGFjayBvZiBvcGVuIGVsZW1lbnRzPC9hPiBoYXMgb24gaXQgdGhlIGVsZW1lbnRzIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaHRtbC1lbGVtZW50LTEwPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4sCisgIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYm9keS1lbGVtZW50LTEwPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT4sIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGFibGUtZWxlbWVudC0xMj48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4sIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGJvZHktZWxlbWVudC05PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRib2R5LWVsZW1lbnQ+dGJvZHk8L2E+PC9jb2RlPiwgYW5kIHRoZSBuZXcgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1iLWVsZW1lbnQtMTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiAoYWdhaW4sIG5vdGUKKyAgdGhhdCB0aGlzIGRvZXNuJ3QgbWF0Y2ggdGhlIHJlc3VsdGluZyB0cmVlISk7IHRoZSA8YSBocmVmPSNsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLTU+bGlzdCBvZiBhY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50czwvYT4KKyAgaGFzIHRoZSBuZXcgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS1iLWVsZW1lbnQtMTc+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiBlbGVtZW50IGluIGl0OyBhbmQgdGhlIDxhIGhyZWY9I2luc2VydGlvbi1tb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczppbnNlcnRpb24tbW9kZS01Pmluc2VydGlvbiBtb2RlPC9hPiBpcyBzdGlsbCAiPGEgaHJlZj0jcGFyc2luZy1tYWluLWludGJvZHkgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnBhcnNpbmctbWFpbi1pbnRib2R5LTQ+aW4gdGFibGUgYm9keTwvYT4iLjwvcD4KKworICA8cD5IYWQgdGhlIGNoYXJhY3RlciB0b2tlbnMgYmVlbiBvbmx5IDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnNwYWNlLWNoYXJhY3Rlcj5zcGFjZSBjaGFyYWN0ZXJzPC9hPgorICBpbnN0ZWFkIG9mICJiYmIiLCB0aGVuIHRob3NlIDxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNzcGFjZS1jaGFyYWN0ZXIgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnNwYWNlLWNoYXJhY3Rlci0yPnNwYWNlIGNoYXJhY3RlcnM8L2E+IHdvdWxkIGp1c3QgYmUKKyAgYXBwZW5kZWQgdG8gdGhlIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGJvZHktZWxlbWVudC0xMD48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT4gZWxlbWVudC48L3A+CisKKyAgPHA+RmluYWxseSwgdGhlIDxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGFibGUtZWxlbWVudC0xMz48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT4gaXMgY2xvc2VkIGJ5IGEgInRhYmxlIiBlbmQgdGFnLiBUaGlzIHBvcHMgYWxsIHRoZSBub2RlcyBmcm9tCisgIHRoZSA8YSBocmVmPSNzdGFjay1vZi1vcGVuLWVsZW1lbnRzIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczpzdGFjay1vZi1vcGVuLWVsZW1lbnRzLTU+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgPGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10YWJsZS1lbGVtZW50LTE0PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRhYmxlLWVsZW1lbnQ+dGFibGU8L2E+PC9jb2RlPiBlbGVtZW50LCBidXQgaXQKKyAgZG9lc24ndCBhZmZlY3QgdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOmxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtNj5saXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPiwgc28gdGhlICJjY2MiIGNoYXJhY3RlciB0b2tlbnMKKyAgYWZ0ZXIgdGhlIHRhYmxlIHJlc3VsdCBpbiB5ZXQgYW5vdGhlciA8Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0xOD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IGVsZW1lbnQgYmVpbmcgY3JlYXRlZCwgdGhpcyB0aW1lIGFmdGVyIHRoZQorICB0YWJsZTo8L3A+CisKKyAgPHVsIGNsYXNzPWRvbVRyZWU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaHRtbC1lbGVtZW50LTExPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtaGVhZC1lbGVtZW50LTc+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaGVhZC1lbGVtZW50PmhlYWQ8L2E+PC9jb2RlPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWJvZHktZWxlbWVudC0xMT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0xOT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtYi1lbGVtZW50LTIwPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQzPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0ZXh0LTY+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+YmJiPC9zcGFuPjwvdWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGFibGUtZWxlbWVudC0xNT48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50PnRhYmxlPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdGJvZHktZWxlbWVudC0xMT48YSBocmVmPXRhYmxlcy5odG1sI3RoZS10Ym9keS1lbGVtZW50PnRib2R5PC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlczp0aGUtdHItZWxlbWVudC04PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLXRyLWVsZW1lbnQ+dHI8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5leHBlY3RlZC1tYXJrdXAtaW4tdGFibGVzOnRoZS10ZC1lbGVtZW50LTY+PGEgaHJlZj10YWJsZXMuaHRtbCN0aGUtdGQtZWxlbWVudD50ZDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGV4dC03PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PiN0ZXh0PC9hPjwvY29kZT46IDxzcGFuPmFhYTwvc3Bhbj48L3VsPjwvdWw+PC91bD48L3VsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGhlLWItZWxlbWVudC0yMT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD11bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXM6dGV4dC04PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PiN0ZXh0PC9hPjwvY29kZT46IDxzcGFuPmNjYzwvc3Bhbj48L3VsPjwvdWw+PC91bD48L3VsPgorCisKKyAgPGg1IGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkPjEyLjIuOC40IFNjcmlwdHMgdGhhdCBtb2RpZnkgdGhlIHBhZ2UgYXMgaXQgaXMgYmVpbmcgcGFyc2VkPC9oNT4KKworICA8cD48aT5UaGlzIHNlY3Rpb24gaXMgbm9uLW5vcm1hdGl2ZS48L2k+PC9wPgorCisgIDxwPkNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgbWFya3VwLCB3aGljaCBmb3IgdGhpcyBleGFtcGxlIHdlIHdpbGwgYXNzdW1lIGlzIHRoZSBkb2N1bWVudCB3aXRoCisgIDxhIGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkOnVybCBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdXJsPlVSTDwvYT4gPGNvZGU+aHR0cDovL2V4YW1wbGUuY29tL2lubmVyPC9jb2RlPiwgYmVpbmcgcmVuZGVyZWQgYXMgdGhlIGNvbnRlbnQgb2YKKyAgYW4gPGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWlmcmFtZS1lbGVtZW50PjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI3RoZS1pZnJhbWUtZWxlbWVudD5pZnJhbWU8L2E+PC9jb2RlPiBpbiBhbm90aGVyIGRvY3VtZW50IHdpdGggdGhlIDxhIGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkOnVybC0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN1cmw+VVJMPC9hPiA8Y29kZT5odHRwOi8vZXhhbXBsZS5jb20vb3V0ZXI8L2NvZGU+OjwvcD4KKworICA8cHJlPiZsdDtkaXYgaWQ9YT4KKyAmbHQ7c2NyaXB0PgorICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2EnKTsKKyAgcGFyZW50LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAmbHQ7L3NjcmlwdD4KKyAmbHQ7c2NyaXB0PgorICBhbGVydChkb2N1bWVudC5VUkwpOworICZsdDsvc2NyaXB0PgorJmx0Oy9kaXY+CismbHQ7c2NyaXB0PgorIGFsZXJ0KGRvY3VtZW50LlVSTCk7CismbHQ7L3NjcmlwdD48L3ByZT4KKworICA8cD5VcCB0byB0aGUgZmlyc3QgInNjcmlwdCIgZW5kIHRhZywgYmVmb3JlIHRoZSBzY3JpcHQgaXMgcGFyc2VkLCB0aGUgcmVzdWx0IGlzIHJlbGF0aXZlbHkKKyAgc3RyYWlnaHRmb3J3YXJkOjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWh0bWwtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1odG1sLWVsZW1lbnQ+aHRtbDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0aGUtaGVhZC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWJvZHktZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0aGUtZGl2LWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZGl2LWVsZW1lbnQ+ZGl2PC9hPjwvY29kZT4gPHNwYW4gY2xhc3M9dDI+PGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWlkLWF0dHJpYnV0ZSBjbGFzcz0iYXR0cmlidXRlIG5hbWUiPjxhIGhyZWY9ZG9tLmh0bWwjdGhlLWlkLWF0dHJpYnV0ZT5pZDwvYT48L2NvZGU+PSI8Y29kZSBjbGFzcz0iYXR0cmlidXRlIHZhbHVlIj5hPC9jb2RlPiI8L3NwYW4+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0ZXh0PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0PiN0ZXh0PC9hPjwvY29kZT46IDxzcGFuPgorIDwvc3Bhbj48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLXNjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0ZXh0LTI+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+dmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhJyk7IOKPjiBwYXJlbnQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOzwvc3Bhbj48L3VsPjwvdWw+PC91bD48L3VsPjwvdWw+CisKKyAgPHA+QWZ0ZXIgdGhlIHNjcmlwdCBpcyBwYXJzZWQsIHRob3VnaCwgdGhlIDxjb2RlIGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkOnRoZS1kaXYtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWRpdi1lbGVtZW50PmRpdjwvYT48L2NvZGU+IGVsZW1lbnQgYW5kIGl0cyBjaGlsZAorICA8Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0aGUtc2NyaXB0LWVsZW1lbnQtMj48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50IGFyZSBnb25lOjwvcD4KKworICA8dWwgY2xhc3M9ZG9tVHJlZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWh0bWwtZWxlbWVudC0yPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkOnRoZS1oZWFkLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1oZWFkLWVsZW1lbnQ+aGVhZDwvYT48L2NvZGU+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkOnRoZS1ib2R5LWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1ib2R5LWVsZW1lbnQ+Ym9keTwvYT48L2NvZGU+PC91bD48L3VsPgorCisgIDxwPlRoZXkgYXJlLCBhdCB0aGlzIHBvaW50LCBpbiB0aGUgPGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6ZG9jdW1lbnQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBvdXRlcgorICA8YSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDpicm93c2luZy1jb250ZXh0IGhyZWY9YnJvd3NlcnMuaHRtbCNicm93c2luZy1jb250ZXh0PmJyb3dzaW5nIGNvbnRleHQ8L2E+LiBIb3dldmVyLCB0aGUgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDpzdGFjay1vZi1vcGVuLWVsZW1lbnRzPnN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+IDxlbT5zdGlsbCBjb250YWlucworICB0aGUgPGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWRpdi1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtZGl2LWVsZW1lbnQ+ZGl2PC9hPjwvY29kZT4gZWxlbWVudDwvZW0+LjwvcD4KKworICA8cD5UaHVzLCB3aGVuIHRoZSBzZWNvbmQgPGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLXNjcmlwdC1lbGVtZW50LTM+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4gZWxlbWVudCBpcyBwYXJzZWQsIGl0IGlzIGluc2VydGVkIDxlbT5pbnRvIHRoZSBvdXRlcgorICA8Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDpkb2N1bWVudC0yPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBvYmplY3Q8L2VtPi48L3A+CisKKyAgPHA+VGhvc2UgcGFyc2VkIGludG8gZGlmZmVyZW50IDxjb2RlIGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkOmRvY3VtZW50LTM+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+cyB0aGFuIHRoZSBvbmUgdGhlIHBhcnNlciB3YXMgY3JlYXRlZCBmb3IgZG8KKyAgbm90IGV4ZWN1dGUsIHNvIHRoZSBmaXJzdCBhbGVydCBkb2VzIG5vdCBzaG93LjwvcD4KKworICA8cD5PbmNlIHRoZSA8Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0aGUtZGl2LWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kaXYtZWxlbWVudD5kaXY8L2E+PC9jb2RlPiBlbGVtZW50J3MgZW5kIHRhZyBpcyBwYXJzZWQsIHRoZSA8Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0aGUtZGl2LWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1kaXYtZWxlbWVudD5kaXY8L2E+PC9jb2RlPiBlbGVtZW50IGlzIHBvcHBlZAorICBvZmYgdGhlIHN0YWNrLCBhbmQgc28gdGhlIG5leHQgPGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLXNjcmlwdC1lbGVtZW50LTQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4gZWxlbWVudCBpcyBpbiB0aGUgaW5uZXIKKyAgPGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6ZG9jdW1lbnQtND48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT46PC9wPgorCisgIDx1bCBjbGFzcz1kb21UcmVlPjxsaSBjbGFzcz10MT48Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0aGUtaHRtbC1lbGVtZW50LTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWhlYWQtZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9c2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQ6dGhlLWJvZHktZWxlbWVudC0zPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBhZ2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkOnRoZS1zY3JpcHQtZWxlbWVudC01PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD1zY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZDp0ZXh0LTM+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+YWxlcnQoZG9jdW1lbnQuVVJMKTs8L3NwYW4+PC91bD48L3VsPjwvdWw+PC91bD4KKworICA8cD5UaGlzIHNjcmlwdCBkb2VzIGV4ZWN1dGUsIHJlc3VsdGluZyBpbiBhbiBhbGVydCB0aGF0IHNheXMgImh0dHA6Ly9leGFtcGxlLmNvbS9pbm5lciIuPC9wPgorCisKKyAgPGg1IGlkPXRoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10aGF0LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50cz4xMi4yLjguNSBUaGUgZXhlY3V0aW9uIG9mIHNjcmlwdHMgdGhhdCBhcmUgbW92aW5nIGFjcm9zcyBtdWx0aXBsZSBkb2N1bWVudHM8L2g1PgorCisgIDxwPjxpPlRoaXMgc2VjdGlvbiBpcyBub24tbm9ybWF0aXZlLjwvaT48L3A+CisKKyAgPHA+RWxhYm9yYXRpbmcgb24gdGhlIGV4YW1wbGUgaW4gdGhlIHByZXZpb3VzIHNlY3Rpb24sIGNvbnNpZGVyIHRoZSBjYXNlIHdoZXJlIHRoZSBzZWNvbmQKKyAgPGNvZGUgaWQ9dGhlLWV4ZWN1dGlvbi1vZi1zY3JpcHRzLXRoYXQtYXJlLW1vdmluZy1hY3Jvc3MtbXVsdGlwbGUtZG9jdW1lbnRzOnRoZS1zY3JpcHQtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50IGlzIGFuIGV4dGVybmFsIHNjcmlwdCAoaS5lLiBvbmUgd2l0aCBhIDxjb2RlIGlkPXRoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10aGF0LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50czphdHRyLXNjcmlwdC1zcmM+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCNhdHRyLXNjcmlwdC1zcmM+c3JjPC9hPjwvY29kZT4gYXR0cmlidXRlKS4gU2luY2UgdGhlIGVsZW1lbnQgd2FzIG5vdCBpbiB0aGUgcGFyc2VyJ3MKKyAgPGNvZGUgaWQ9dGhlLWV4ZWN1dGlvbi1vZi1zY3JpcHRzLXRoYXQtYXJlLW1vdmluZy1hY3Jvc3MtbXVsdGlwbGUtZG9jdW1lbnRzOmRvY3VtZW50PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiB3aGVuIGl0IHdhcyBjcmVhdGVkLCB0aGF0IGV4dGVybmFsIHNjcmlwdCBpcyBub3QgZXZlbiBkb3dubG9hZGVkLjwvcD4KKworICA8cD5JbiBhIGNhc2Ugd2hlcmUgYSA8Y29kZSBpZD10aGUtZXhlY3V0aW9uLW9mLXNjcmlwdHMtdGhhdC1hcmUtbW92aW5nLWFjcm9zcy1tdWx0aXBsZS1kb2N1bWVudHM6dGhlLXNjcmlwdC1lbGVtZW50LTI+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtc2NyaXB0LWVsZW1lbnQ+c2NyaXB0PC9hPjwvY29kZT4gZWxlbWVudCB3aXRoIGEgPGNvZGUgaWQ9dGhlLWV4ZWN1dGlvbi1vZi1zY3JpcHRzLXRoYXQtYXJlLW1vdmluZy1hY3Jvc3MtbXVsdGlwbGUtZG9jdW1lbnRzOmF0dHItc2NyaXB0LXNyYy0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjYXR0ci1zY3JpcHQtc3JjPnNyYzwvYT48L2NvZGU+CisgIGF0dHJpYnV0ZSBpcyBwYXJzZWQgbm9ybWFsbHkgaW50byBpdHMgcGFyc2VyJ3MgPGNvZGUgaWQ9dGhlLWV4ZWN1dGlvbi1vZi1zY3JpcHRzLXRoYXQtYXJlLW1vdmluZy1hY3Jvc3MtbXVsdGlwbGUtZG9jdW1lbnRzOmRvY3VtZW50LTI+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+LCBidXQgd2hpbGUgdGhlIGV4dGVybmFsCisgIHNjcmlwdCBpcyBiZWluZyBkb3dubG9hZGVkLCB0aGUgZWxlbWVudCBpcyBtb3ZlZCB0byBhbm90aGVyIGRvY3VtZW50LCB0aGUgc2NyaXB0IGNvbnRpbnVlcyB0bworICBkb3dubG9hZCwgYnV0IGRvZXMgbm90IGV4ZWN1dGUuPC9wPgorCisgIDxwIGNsYXNzPW5vdGU+SW4gZ2VuZXJhbCwgbW92aW5nIDxjb2RlIGlkPXRoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10aGF0LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50czp0aGUtc2NyaXB0LWVsZW1lbnQtMz48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50cyBiZXR3ZWVuIDxjb2RlIGlkPXRoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10aGF0LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50czpkb2N1bWVudC0zPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPnMgaXMKKyAgY29uc2lkZXJlZCBhIGJhZCBwcmFjdGljZS48L3A+CisKKworCisgIDxoNSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzPjEyLjIuOC42IFVuY2xvc2VkIGZvcm1hdHRpbmcgZWxlbWVudHM8L2g1PgorCisgIDxwPjxpPlRoaXMgc2VjdGlvbiBpcyBub24tbm9ybWF0aXZlLjwvaT48L3A+CisKKyAgPHA+VGhlIGZvbGxvd2luZyBtYXJrdXAgc2hvd3MgaG93IG5lc3RlZCBmb3JtYXR0aW5nIGVsZW1lbnRzIChzdWNoIGFzIDxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+KSBnZXQKKyAgY29sbGVjdGVkIGFuZCBjb250aW51ZSB0byBiZSBhcHBsaWVkIGV2ZW4gYXMgdGhlIGVsZW1lbnRzIHRoZXkgYXJlIGNvbnRhaW5lZCBpbiBhcmUgY2xvc2VkLCBidXQKKyAgdGhhdCBleGNlc3NpdmUgZHVwbGljYXRlcyBhcmUgdGhyb3duIGF3YXkuPC9wPgorCisgIDxwcmU+Jmx0OyFET0NUWVBFIGh0bWw+CismbHQ7cD4mbHQ7YiBjbGFzcz14PiZsdDtiIGNsYXNzPXg+Jmx0O2I+Jmx0O2IgY2xhc3M9eD4mbHQ7YiBjbGFzcz14PiZsdDtiPlgKKyZsdDtwPlgKKyZsdDtwPiZsdDtiPiZsdDtiIGNsYXNzPXg+Jmx0O2I+WAorJmx0O3A+Jmx0Oy9iPiZsdDsvYj4mbHQ7L2I+Jmx0Oy9iPiZsdDsvYj4mbHQ7L2I+WDwvcHJlPgorCisgIDxwPlRoZSByZXN1bHRpbmcgRE9NIHRyZWUgaXMgYXMgZm9sbG93czo8L3A+CisKKyAgPHVsIGNsYXNzPWRvbVRyZWU+PGxpIGNsYXNzPXQxMD5ET0NUWVBFOiA8Y29kZT5odG1sPC9jb2RlPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1odG1sLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50Pmh0bWw8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtaGVhZC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudD5oZWFkPC9hPjwvY29kZT48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtYm9keS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJvZHktZWxlbWVudD5ib2R5PC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLXAtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IDxzcGFuIGNsYXNzPXQyPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6Y2xhc3NlcyBjbGFzcz0iYXR0cmlidXRlIG5hbWUiPjxhIGhyZWY9ZG9tLmh0bWwjY2xhc3Nlcz5jbGFzczwvYT48L2NvZGU+PSI8Y29kZSBjbGFzcz0iYXR0cmlidXRlIHZhbHVlIj54PC9jb2RlPiI8L3NwYW4+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IDxzcGFuIGNsYXNzPXQyPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6Y2xhc3Nlcy0yIGNsYXNzPSJhdHRyaWJ1dGUgbmFtZSI+PGEgaHJlZj1kb20uaHRtbCNjbGFzc2VzPmNsYXNzPC9hPjwvY29kZT49Ijxjb2RlIGNsYXNzPSJhdHRyaWJ1dGUgdmFsdWUiPng8L2NvZGU+Ijwvc3Bhbj48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC00PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC01PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gPHNwYW4gY2xhc3M9dDI+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czpjbGFzc2VzLTMgY2xhc3M9ImF0dHJpYnV0ZSBuYW1lIj48YSBocmVmPWRvbS5odG1sI2NsYXNzZXM+Y2xhc3M8L2E+PC9jb2RlPj0iPGNvZGUgY2xhc3M9ImF0dHJpYnV0ZSB2YWx1ZSI+eDwvY29kZT4iPC9zcGFuPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtYi1lbGVtZW50LTY+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiA8c3BhbiBjbGFzcz10Mj48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOmNsYXNzZXMtNCBjbGFzcz0iYXR0cmlidXRlIG5hbWUiPjxhIGhyZWY9ZG9tLmh0bWwjY2xhc3Nlcz5jbGFzczwvYT48L2NvZGU+PSI8Y29kZSBjbGFzcz0iYXR0cmlidXRlIHZhbHVlIj54PC9jb2RlPiI8L3NwYW4+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRleHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+I3RleHQ8L2E+PC9jb2RlPjogPHNwYW4+WOKPjjwvc3Bhbj48L3VsPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1wLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtOD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IDxzcGFuIGNsYXNzPXQyPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6Y2xhc3Nlcy01IGNsYXNzPSJhdHRyaWJ1dGUgbmFtZSI+PGEgaHJlZj1kb20uaHRtbCNjbGFzc2VzPmNsYXNzPC9hPjwvY29kZT49Ijxjb2RlIGNsYXNzPSJhdHRyaWJ1dGUgdmFsdWUiPng8L2NvZGU+Ijwvc3Bhbj48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC05PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC0xMD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IDxzcGFuIGNsYXNzPXQyPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6Y2xhc3Nlcy02IGNsYXNzPSJhdHRyaWJ1dGUgbmFtZSI+PGEgaHJlZj1kb20uaHRtbCNjbGFzc2VzPmNsYXNzPC9hPjwvY29kZT49Ijxjb2RlIGNsYXNzPSJhdHRyaWJ1dGUgdmFsdWUiPng8L2NvZGU+Ijwvc3Bhbj48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC0xMT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IDxzcGFuIGNsYXNzPXQyPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6Y2xhc3Nlcy03IGNsYXNzPSJhdHRyaWJ1dGUgbmFtZSI+PGEgaHJlZj1kb20uaHRtbCNjbGFzc2VzPmNsYXNzPC9hPjwvY29kZT49Ijxjb2RlIGNsYXNzPSJhdHRyaWJ1dGUgdmFsdWUiPng8L2NvZGU+Ijwvc3Bhbj48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC0xMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRleHQtMj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj5Y4o+OPC9zcGFuPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1wLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtMTM+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiA8c3BhbiBjbGFzcz10Mj48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOmNsYXNzZXMtOCBjbGFzcz0iYXR0cmlidXRlIG5hbWUiPjxhIGhyZWY9ZG9tLmh0bWwjY2xhc3Nlcz5jbGFzczwvYT48L2NvZGU+PSI8Y29kZSBjbGFzcz0iYXR0cmlidXRlIHZhbHVlIj54PC9jb2RlPiI8L3NwYW4+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtMTQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtYi1lbGVtZW50LTE1PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gPHNwYW4gY2xhc3M9dDI+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czpjbGFzc2VzLTkgY2xhc3M9ImF0dHJpYnV0ZSBuYW1lIj48YSBocmVmPWRvbS5odG1sI2NsYXNzZXM+Y2xhc3M8L2E+PC9jb2RlPj0iPGNvZGUgY2xhc3M9ImF0dHJpYnV0ZSB2YWx1ZSI+eDwvY29kZT4iPC9zcGFuPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtYi1lbGVtZW50LTE2PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gPHNwYW4gY2xhc3M9dDI+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czpjbGFzc2VzLTEwIGNsYXNzPSJhdHRyaWJ1dGUgbmFtZSI+PGEgaHJlZj1kb20uaHRtbCNjbGFzc2VzPmNsYXNzPC9hPjwvY29kZT49Ijxjb2RlIGNsYXNzPSJhdHRyaWJ1dGUgdmFsdWUiPng8L2NvZGU+Ijwvc3Bhbj48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC0xNz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtMTg+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPjx1bD48bGkgY2xhc3M9dDE+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtYi1lbGVtZW50LTE5PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gPHNwYW4gY2xhc3M9dDI+PGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czpjbGFzc2VzLTExIGNsYXNzPSJhdHRyaWJ1dGUgbmFtZSI+PGEgaHJlZj1kb20uaHRtbCNjbGFzc2VzPmNsYXNzPC9hPjwvY29kZT49Ijxjb2RlIGNsYXNzPSJhdHRyaWJ1dGUgdmFsdWUiPng8L2NvZGU+Ijwvc3Bhbj48dWw+PGxpIGNsYXNzPXQxPjxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC0yMD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRleHQtMz48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj5Y4o+OPC9zcGFuPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPjwvdWw+PC91bD48L3VsPjxsaSBjbGFzcz10MT48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1wLWVsZW1lbnQtND48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+PHVsPjxsaSBjbGFzcz10Mz48Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRleHQtND48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjdGV4dD4jdGV4dDwvYT48L2NvZGU+OiA8c3Bhbj5Y4o+OPC9zcGFuPjwvdWw+PC91bD48L3VsPjwvdWw+CisKKyAgPHA+Tm90ZSBob3cgdGhlIHNlY29uZCA8Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1wLWVsZW1lbnQtNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+IGVsZW1lbnQgaW4gdGhlIG1hcmt1cCBoYXMgbm8gZXhwbGljaXQgPGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtYi1lbGVtZW50LTIxPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4KKyAgZWxlbWVudHMsIGJ1dCBpbiB0aGUgcmVzdWx0aW5nIERPTSwgdXAgdG8gdGhyZWUgb2YgZWFjaCBraW5kIG9mIGZvcm1hdHRpbmcgZWxlbWVudCAoaW4gdGhpcyBjYXNlCisgIHRocmVlIDxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC0yMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IGVsZW1lbnRzIHdpdGggdGhlIGNsYXNzIGF0dHJpYnV0ZSwgYW5kIHR3byB1bmFkb3JuZWQgPGNvZGUgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czp0aGUtYi1lbGVtZW50LTIzPjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWItZWxlbWVudD5iPC9hPjwvY29kZT4gZWxlbWVudHMpCisgIGdldCByZWNvbnN0cnVjdGVkIGJlZm9yZSB0aGUgZWxlbWVudCdzICJYIi48L3A+CisKKyAgPHA+QWxzbyBub3RlIGhvdyB0aGlzIG1lYW5zIHRoYXQgaW4gdGhlIGZpbmFsIHBhcmFncmFwaCBvbmx5IHNpeCA8Y29kZSBpZD11bmNsb3NlZC1mb3JtYXR0aW5nLWVsZW1lbnRzOnRoZS1iLWVsZW1lbnQtMjQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50PmI8L2E+PC9jb2RlPiBlbmQgdGFncyBhcmUKKyAgbmVlZGVkIHRvIGNvbXBsZXRlbHkgY2xlYXIgdGhlIDxhIGhyZWY9I2xpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMgaWQ9dW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50czpsaXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzPmxpc3Qgb2YgYWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHM8L2E+LCBldmVuIHRob3VnaCBuaW5lCisgIDxjb2RlIGlkPXVuY2xvc2VkLWZvcm1hdHRpbmctZWxlbWVudHM6dGhlLWItZWxlbWVudC0yNT48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iLWVsZW1lbnQ+YjwvYT48L2NvZGU+IHN0YXJ0IHRhZ3MgaGF2ZSBiZWVuIHNlZW4gdXAgdG8gdGhpcyBwb2ludC48L3A+CisKKworCisKKworICA8aDMgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM+MTIuMyBTZXJpYWxpc2luZyBIVE1MIGZyYWdtZW50czwvaDM+CisKKyAgPHA+VGhlIGZvbGxvd2luZyBzdGVwcyBmb3JtIHRoZSA8ZGZuIGlkPWh0bWwtZnJhZ21lbnQtc2VyaWFsaXNhdGlvbi1hbGdvcml0aG0+SFRNTCBmcmFnbWVudCBzZXJpYWxpc2F0aW9uIGFsZ29yaXRobTwvZGZuPi4gVGhlIGFsZ29yaXRobQorICB0YWtlcyBhcyBpbnB1dCBhIERPTSA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czplbGVtZW50PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNlbGVtZW50PkVsZW1lbnQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6ZG9jdW1lbnQ+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+LCBvciA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpkb2N1bWVudGZyYWdtZW50PjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNkb2N1bWVudGZyYWdtZW50PkRvY3VtZW50RnJhZ21lbnQ8L2E+PC9jb2RlPgorICByZWZlcnJlZCB0byBhcyA8dmFyPnRoZSBub2RlPC92YXI+LCBhbmQgZWl0aGVyIHJldHVybnMgYSBzdHJpbmcgb3IgdGhyb3dzIGFuCisgIGV4Y2VwdGlvbi48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5UaGlzIGFsZ29yaXRobSBzZXJpYWxpc2VzIHRoZSA8ZW0+Y2hpbGRyZW48L2VtPiBvZiB0aGUgbm9kZSBiZWluZyBzZXJpYWxpc2VkLCBub3QKKyAgdGhlIG5vZGUgaXRzZWxmLjwvcD4KKworICA8b2w+PGxpPjxwPkxldCA8dmFyPnM8L3Zhcj4gYmUgYSBzdHJpbmcsIGFuZCBpbml0aWFsaXNlIGl0IHRvIHRoZSBlbXB0eSBzdHJpbmcuPGxpPjxwPklmIDx2YXI+dGhlIG5vZGU8L3Zhcj4gaXMgYSA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtdGVtcGxhdGUtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS10ZW1wbGF0ZS1lbGVtZW50PnRlbXBsYXRlPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiBsZXQgPHZhcj50aGUgbm9kZTwvdmFyPiBpbnN0ZWFkIGJlIHRoZSA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtdGVtcGxhdGUtZWxlbWVudC0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXRlbXBsYXRlLWVsZW1lbnQ+dGVtcGxhdGU8L2E+PC9jb2RlPiBlbGVtZW50J3MgPGEgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGVtcGxhdGUtY29udGVudHMgaHJlZj1zY3JpcHRpbmcuaHRtbCN0ZW1wbGF0ZS1jb250ZW50cz50ZW1wbGF0ZQorICAgY29udGVudHM8L2E+IChhIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOmRvY3VtZW50ZnJhZ21lbnQtMj48YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjZG9jdW1lbnRmcmFnbWVudD5Eb2N1bWVudEZyYWdtZW50PC9hPjwvY29kZT4gbm9kZSkuPGxpPgorCisgICAgPHA+Rm9yIGVhY2ggY2hpbGQgbm9kZSBvZiA8dmFyPnRoZSBub2RlPC92YXI+LCBpbiA8YSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0cmVlLW9yZGVyIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0cmVlLW9yZGVyPnRyZWUgb3JkZXI8L2E+LCBydW4gdGhlCisgICAgZm9sbG93aW5nIHN0ZXBzOgorCisgICAgPG9sPjxsaT48cD5MZXQgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4gYmUgdGhlIGNoaWxkIG5vZGUgYmVpbmcgcHJvY2Vzc2VkLjxsaT4KKworICAgICAgPHA+QXBwZW5kIHRoZSBhcHByb3ByaWF0ZSBzdHJpbmcgZnJvbSB0aGUgZm9sbG93aW5nIGxpc3QgdG8gPHZhcj5zPC92YXI+OjwvcD4KKworICAgICAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+SWYgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4gaXMgYW4gPGNvZGU+RWxlbWVudDwvY29kZT48ZGQ+CisKKyAgICAgICAgPHA+SWYgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4gaXMgYW4gZWxlbWVudCBpbiB0aGUgPGEgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6aHRtbC1uYW1lc3BhY2UtMiBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1uYW1lc3BhY2UtMj5IVE1MIG5hbWVzcGFjZTwvYT4sIHRoZQorICAgICAgICA8YSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czptYXRobWwtbmFtZXNwYWNlIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNtYXRobWwtbmFtZXNwYWNlPk1hdGhNTCBuYW1lc3BhY2U8L2E+LCBvciB0aGUgPGEgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6c3ZnLW5hbWVzcGFjZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjc3ZnLW5hbWVzcGFjZT5TVkcgbmFtZXNwYWNlPC9hPiwgdGhlbiBsZXQgPHZhcj50YWduYW1lPC92YXI+IGJlIDx2YXI+Y3VycmVudCBub2RlPC92YXI+J3MgbG9jYWwgbmFtZS4gT3RoZXJ3aXNlLCBsZXQgPHZhcj50YWduYW1lPC92YXI+IGJlIDx2YXI+Y3VycmVudCBub2RlPC92YXI+J3MgcXVhbGlmaWVkIG5hbWUuPC9wPgorCisgICAgICAgIDxwPkFwcGVuZCBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIgKCZsdDspLCBmb2xsb3dlZCBieSA8dmFyPnRhZ25hbWU8L3Zhcj4uPC9wPgorCisgICAgICAgIDxwIGNsYXNzPW5vdGU+Rm9yIDxhIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOmh0bWwtZWxlbWVudHMgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHM+SFRNTCBlbGVtZW50czwvYT4gY3JlYXRlZCBieSB0aGUgPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6aHRtbC1wYXJzZXI+SFRNTCBwYXJzZXI8L2E+IG9yCisgICAgICAgIDxjb2RlPkRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoKTwvY29kZT4sIDx2YXI+dGFnbmFtZTwvdmFyPiB3aWxsIGJlCisgICAgICAgIGxvd2VyY2FzZS48L3A+CisKKyAgICAgICAgPHA+Rm9yIGVhY2ggYXR0cmlidXRlIHRoYXQgdGhlIGVsZW1lbnQgaGFzLCBhcHBlbmQgYSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyLCB0aGUgPGEgaHJlZj0iI2F0dHJpYnV0ZSdzLXNlcmlhbGlzZWQtbmFtZSIgaWQ9InNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOmF0dHJpYnV0ZSdzLXNlcmlhbGlzZWQtbmFtZSI+YXR0cmlidXRlJ3Mgc2VyaWFsaXNlZCBuYW1lIGFzIGRlc2NyaWJlZCBiZWxvdzwvYT4sIGEKKyAgICAgICAgVSswMDNEIEVRVUFMUyBTSUdOIGNoYXJhY3RlciAoPSksIGEgVSswMDIyIFFVT1RBVElPTiBNQVJLIGNoYXJhY3RlciAoIiksIHRoZQorICAgICAgICBhdHRyaWJ1dGUncyB2YWx1ZSwgPGEgaHJlZj0jZXNjYXBpbmdTdHJpbmcgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6ZXNjYXBpbmdTdHJpbmc+ZXNjYXBlZCBhcyBkZXNjcmliZWQgYmVsb3c8L2E+IGluCisgICAgICAgIDxpPmF0dHJpYnV0ZSBtb2RlPC9pPiwgYW5kIGEgc2Vjb25kIFUrMDAyMiBRVU9UQVRJT04gTUFSSyBjaGFyYWN0ZXIgKCIpLjwvcD4KKworICAgICAgICA8cD5BbiA8ZGZuIGlkPSJhdHRyaWJ1dGUncy1zZXJpYWxpc2VkLW5hbWUiPmF0dHJpYnV0ZSdzIHNlcmlhbGlzZWQgbmFtZTwvZGZuPiBmb3IgdGhlIHB1cnBvc2VzIG9mIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGggbXVzdAorICAgICAgICBiZSBkZXRlcm1pbmVkIGFzIGZvbGxvd3M6PC9wPgorCisgICAgICAgIDxkbCBjbGFzcz1zd2l0Y2g+PGR0PklmIHRoZSBhdHRyaWJ1dGUgaGFzIG5vIG5hbWVzcGFjZTxkZD4KKworICAgICAgICAgIDxwPlRoZSBhdHRyaWJ1dGUncyBzZXJpYWxpc2VkIG5hbWUgaXMgdGhlIGF0dHJpYnV0ZSdzIGxvY2FsIG5hbWUuPC9wPgorCisgICAgICAgICAgPHAgY2xhc3M9bm90ZT5Gb3IgYXR0cmlidXRlcyBvbiA8YSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpodG1sLWVsZW1lbnRzLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2h0bWwtZWxlbWVudHM+SFRNTCBlbGVtZW50czwvYT4gc2V0IGJ5IHRoZSA8YSBocmVmPSNodG1sLXBhcnNlciBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpodG1sLXBhcnNlci0yPkhUTUwKKyAgICAgICAgICBwYXJzZXI8L2E+IG9yIGJ5IDxjb2RlPkVsZW1lbnQuc2V0QXR0cmlidXRlKCk8L2NvZGU+LCB0aGUgbG9jYWwgbmFtZSB3aWxsIGJlCisgICAgICAgICAgbG93ZXJjYXNlLjwvcD4KKworICAgICAgICAgPGR0PklmIHRoZSBhdHRyaWJ1dGUgaXMgaW4gdGhlIDxhIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnhtbC1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbC1uYW1lc3BhY2U+WE1MIG5hbWVzcGFjZTwvYT48ZGQ+PHA+VGhlIGF0dHJpYnV0ZSdzIHNlcmlhbGlzZWQgbmFtZSBpcyB0aGUgc3RyaW5nICI8Y29kZT54bWw6PC9jb2RlPiIgZm9sbG93ZWQKKyAgICAgICAgIGJ5IHRoZSBhdHRyaWJ1dGUncyBsb2NhbCBuYW1lLjxkdD5JZiB0aGUgYXR0cmlidXRlIGlzIGluIHRoZSA8YSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp4bWxucy1uYW1lc3BhY2UgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbG5zLW5hbWVzcGFjZT5YTUxOUyBuYW1lc3BhY2U8L2E+IGFuZCB0aGUgYXR0cmlidXRlJ3MgbG9jYWwgbmFtZQorICAgICAgICAgaXMgPGNvZGU+eG1sbnM8L2NvZGU+PGRkPjxwPlRoZSBhdHRyaWJ1dGUncyBzZXJpYWxpc2VkIG5hbWUgaXMgdGhlIHN0cmluZyAiPGNvZGU+eG1sbnM8L2NvZGU+Ii48ZHQ+SWYgdGhlIGF0dHJpYnV0ZSBpcyBpbiB0aGUgPGEgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6eG1sbnMtbmFtZXNwYWNlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3htbG5zLW5hbWVzcGFjZT5YTUxOUyBuYW1lc3BhY2U8L2E+IGFuZCB0aGUgYXR0cmlidXRlJ3MgbG9jYWwgbmFtZQorICAgICAgICAgaXMgbm90IDxjb2RlPnhtbG5zPC9jb2RlPjxkZD48cD5UaGUgYXR0cmlidXRlJ3Mgc2VyaWFsaXNlZCBuYW1lIGlzIHRoZSBzdHJpbmcgIjxjb2RlPnhtbG5zOjwvY29kZT4iCisgICAgICAgICBmb2xsb3dlZCBieSB0aGUgYXR0cmlidXRlJ3MgbG9jYWwgbmFtZS48ZHQ+SWYgdGhlIGF0dHJpYnV0ZSBpcyBpbiB0aGUgPGEgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6eGxpbmstbmFtZXNwYWNlIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN4bGluay1uYW1lc3BhY2U+WExpbmsgbmFtZXNwYWNlPC9hPjxkZD48cD5UaGUgYXR0cmlidXRlJ3Mgc2VyaWFsaXNlZCBuYW1lIGlzIHRoZSBzdHJpbmcgIjxjb2RlPnhsaW5rOjwvY29kZT4iCisgICAgICAgICBmb2xsb3dlZCBieSB0aGUgYXR0cmlidXRlJ3MgbG9jYWwgbmFtZS48ZHQ+SWYgdGhlIGF0dHJpYnV0ZSBpcyBpbiBzb21lIG90aGVyIG5hbWVzcGFjZTxkZD48cD5UaGUgYXR0cmlidXRlJ3Mgc2VyaWFsaXNlZCBuYW1lIGlzIHRoZSBhdHRyaWJ1dGUncyBxdWFsaWZpZWQgbmFtZS48L2RsPgorCisgICAgICAgIDxwPldoaWxlIHRoZSBleGFjdCBvcmRlciBvZiBhdHRyaWJ1dGVzIGlzIFVBLWRlZmluZWQsIGFuZCBtYXkgZGVwZW5kIG9uIGZhY3RvcnMgc3VjaCBhcyB0aGUKKyAgICAgICAgb3JkZXIgdGhhdCB0aGUgYXR0cmlidXRlcyB3ZXJlIGdpdmVuIGluIHRoZSBvcmlnaW5hbCBtYXJrdXAsIHRoZSBzb3J0IG9yZGVyIG11c3QgYmUgc3RhYmxlLAorICAgICAgICBzdWNoIHRoYXQgY29uc2VjdXRpdmUgaW52b2NhdGlvbnMgb2YgdGhpcyBhbGdvcml0aG0gc2VyaWFsaXNlIGFuIGVsZW1lbnQncyBhdHRyaWJ1dGVzIGluIHRoZQorICAgICAgICBzYW1lIG9yZGVyLjwvcD4KKworICAgICAgICA8cD5BcHBlbmQgYSBVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gY2hhcmFjdGVyICg+KS48L3A+CisKKyAgICAgICAgPHA+SWYgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4gaXMgYW4gPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLWFyZWEtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtYXJlYS1lbGVtZW50PmFyZWE8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLWJhc2UtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1iYXNlLWVsZW1lbnQ+YmFzZTwvYT48L2NvZGU+LAorICAgICAgICA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpiYXNlZm9udD48YSBocmVmPW9ic29sZXRlLmh0bWwjYmFzZWZvbnQ+YmFzZWZvbnQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6Ymdzb3VuZD48YSBocmVmPW9ic29sZXRlLmh0bWwjYmdzb3VuZD5iZ3NvdW5kPC9hPjwvY29kZT4sIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1ici1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWJyLWVsZW1lbnQ+YnI8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLWNvbC1lbGVtZW50PjxhIGhyZWY9dGFibGVzLmh0bWwjdGhlLWNvbC1lbGVtZW50PmNvbDwvYT48L2NvZGU+LAorICAgICAgICA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtZW1iZWQtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtZW1iZWQtZWxlbWVudD5lbWJlZDwvYT48L2NvZGU+LCA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpmcmFtZT48YSBocmVmPW9ic29sZXRlLmh0bWwjZnJhbWU+ZnJhbWU8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLWhyLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtaHItZWxlbWVudD5ocjwvYT48L2NvZGU+LCA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtaW1nLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLWltZy1lbGVtZW50PmltZzwvYT48L2NvZGU+LAorICAgICAgICA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtaW5wdXQtZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQ+aW5wdXQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLWtleWdlbi1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUta2V5Z2VuLWVsZW1lbnQ+a2V5Z2VuPC9hPjwvY29kZT4sIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1saW5rLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbGluay1lbGVtZW50Pmxpbms8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLW1lbnVpdGVtLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS1tZW51aXRlbS1lbGVtZW50Pm1lbnVpdGVtPC9hPjwvY29kZT4sCisgICAgICAgIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1tZXRhLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtbWV0YS1lbGVtZW50Pm1ldGE8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXBhcmFtLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLXBhcmFtLWVsZW1lbnQ+cGFyYW08L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXNvdXJjZS1lbGVtZW50PjxhIGhyZWY9ZW1iZWRkZWQtY29udGVudC5odG1sI3RoZS1zb3VyY2UtZWxlbWVudD5zb3VyY2U8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXRyYWNrLWVsZW1lbnQ+PGEgaHJlZj1lbWJlZGRlZC1jb250ZW50Lmh0bWwjdGhlLXRyYWNrLWVsZW1lbnQ+dHJhY2s8L2E+PC9jb2RlPiBvcgorICAgICAgICA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtd2JyLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtd2JyLWVsZW1lbnQ+d2JyPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlbiBjb250aW51ZSBvbiB0byB0aGUgbmV4dCBjaGlsZCBub2RlIGF0IHRoaXMgcG9pbnQuPC9wPgorCisKKworICAgICAgICA8cD5JZiA8dmFyPmN1cnJlbnQgbm9kZTwvdmFyPiBpcyBhIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1wcmUtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wcmUtZWxlbWVudD5wcmU8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXRleHRhcmVhLWVsZW1lbnQ+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS10ZXh0YXJlYS1lbGVtZW50PnRleHRhcmVhPC9hPjwvY29kZT4sIG9yCisgICAgICAgIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOmxpc3Rpbmc+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI2xpc3Rpbmc+bGlzdGluZzwvYT48L2NvZGU+IGVsZW1lbnQsIGFuZCB0aGUgZmlyc3QgY2hpbGQgbm9kZSBvZiB0aGUgZWxlbWVudCwgaWYgYW55LCBpcyBhCisgICAgICAgIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRleHQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+IG5vZGUgd2hvc2UgY2hhcmFjdGVyIGRhdGEgaGFzIGFzIGl0cyBmaXJzdCBjaGFyYWN0ZXIgYSBVKzAwMEEgTElORSBGRUVECisgICAgICAgIChMRikgY2hhcmFjdGVyLCB0aGVuIGFwcGVuZCBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIuPC9wPgorCisgICAgICAgIDxwPkFwcGVuZCB0aGUgdmFsdWUgb2YgcnVubmluZyB0aGUgPGEgaHJlZj0jaHRtbC1mcmFnbWVudC1zZXJpYWxpc2F0aW9uLWFsZ29yaXRobSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpodG1sLWZyYWdtZW50LXNlcmlhbGlzYXRpb24tYWxnb3JpdGhtPkhUTUwgZnJhZ21lbnQgc2VyaWFsaXNhdGlvbiBhbGdvcml0aG08L2E+IG9uIHRoZQorICAgICAgICA8dmFyPmN1cnJlbnQgbm9kZTwvdmFyPiBlbGVtZW50ICh0aHVzIHJlY3Vyc2luZyBpbnRvIHRoaXMgYWxnb3JpdGhtIGZvciB0aGF0CisgICAgICAgIGVsZW1lbnQpLCBmb2xsb3dlZCBieSBhIFUrMDAzQyBMRVNTLVRIQU4gU0lHTiBjaGFyYWN0ZXIgKCZsdDspLCBhIFUrMDAyRiBTT0xJRFVTIGNoYXJhY3RlcgorICAgICAgICAoLyksIDx2YXI+dGFnbmFtZTwvdmFyPiBhZ2FpbiwgYW5kIGZpbmFsbHkgYSBVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gY2hhcmFjdGVyCisgICAgICAgICg+KS48L3A+CisKKyAgICAgICA8ZHQ+SWYgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4gaXMgYSA8Y29kZT5UZXh0PC9jb2RlPiBub2RlPGRkPgorCisgICAgICAgIDxwPklmIHRoZSBwYXJlbnQgb2YgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4gaXMgYSA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtc3R5bGUtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1zdHlsZS1lbGVtZW50PnN0eWxlPC9hPjwvY29kZT4sCisgICAgICAgIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1zY3JpcHQtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6eG1wPjxhIGhyZWY9b2Jzb2xldGUuaHRtbCN4bXA+eG1wPC9hPjwvY29kZT4sIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1pZnJhbWUtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtaWZyYW1lLWVsZW1lbnQ+aWZyYW1lPC9hPjwvY29kZT4sIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOm5vZW1iZWQ+PGEgaHJlZj1vYnNvbGV0ZS5odG1sI25vZW1iZWQ+bm9lbWJlZDwvYT48L2NvZGU+LAorICAgICAgICA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpub2ZyYW1lcz48YSBocmVmPW9ic29sZXRlLmh0bWwjbm9mcmFtZXM+bm9mcmFtZXM8L2E+PC9jb2RlPiwgb3IgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6cGxhaW50ZXh0PjxhIGhyZWY9b2Jzb2xldGUuaHRtbCNwbGFpbnRleHQ+cGxhaW50ZXh0PC9hPjwvY29kZT4gZWxlbWVudCwgb3IgaWYgdGhlIHBhcmVudCBvZiA8dmFyPmN1cnJlbnQgbm9kZTwvdmFyPiBpcyBhIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1ub3NjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLW5vc2NyaXB0LWVsZW1lbnQ+bm9zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50IGFuZCA8YSBocmVmPXdlYmFwcGFwaXMuaHRtbCNjb25jZXB0LW4tc2NyaXB0IGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtbi1zY3JpcHQ+c2NyaXB0aW5nIGlzIGVuYWJsZWQ8L2E+IGZvciB0aGUgbm9kZSwgdGhlbiBhcHBlbmQgdGhlIHZhbHVlIG9mCisgICAgICAgIDx2YXI+Y3VycmVudCBub2RlPC92YXI+J3MgPGNvZGU+ZGF0YTwvY29kZT4gSURMIGF0dHJpYnV0ZSBsaXRlcmFsbHkuPC9wPgorCisgICAgICAgIDxwPk90aGVyd2lzZSwgYXBwZW5kIHRoZSB2YWx1ZSBvZiA8dmFyPmN1cnJlbnQgbm9kZTwvdmFyPidzIDxjb2RlPmRhdGE8L2NvZGU+IElETCBhdHRyaWJ1dGUsIDxhIGhyZWY9I2VzY2FwaW5nU3RyaW5nIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOmVzY2FwaW5nU3RyaW5nLTI+ZXNjYXBlZCBhcyBkZXNjcmliZWQKKyAgICAgICAgYmVsb3c8L2E+LjwvcD4KKworICAgICAgIDxkdD5JZiA8dmFyPmN1cnJlbnQgbm9kZTwvdmFyPiBpcyBhIDxjb2RlPkNvbW1lbnQ8L2NvZGU+PGRkPgorCisgICAgICAgIDxwPkFwcGVuZCB0aGUgbGl0ZXJhbCBzdHJpbmcgIjxjb2RlPiZsdDshLS08L2NvZGU+IiAoVSswMDNDIExFU1MtVEhBTiBTSUdOLCBVKzAwMjEKKyAgICAgICAgRVhDTEFNQVRJT04gTUFSSywgVSswMDJEIEhZUEhFTi1NSU5VUywgVSswMDJEIEhZUEhFTi1NSU5VUyksIGZvbGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiA8dmFyPmN1cnJlbnQgbm9kZTwvdmFyPidzIDxjb2RlPmRhdGE8L2NvZGU+IElETCBhdHRyaWJ1dGUsIGZvbGxvd2VkIGJ5IHRoZQorICAgICAgICBsaXRlcmFsIHN0cmluZyAiPGNvZGU+LS0+PC9jb2RlPiIgKFUrMDAyRCBIWVBIRU4tTUlOVVMsIFUrMDAyRCBIWVBIRU4tTUlOVVMsCisgICAgICAgIFUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTikuPC9wPgorCisgICAgICAgPGR0PklmIDx2YXI+Y3VycmVudCBub2RlPC92YXI+IGlzIGEgPGNvZGU+UHJvY2Vzc2luZ0luc3RydWN0aW9uPC9jb2RlPjxkZD4KKworICAgICAgICA8cD5BcHBlbmQgdGhlIGxpdGVyYWwgc3RyaW5nICI8Y29kZT4mbHQ7PzwvY29kZT4iIChVKzAwM0MgTEVTUy1USEFOIFNJR04sIFUrMDAzRgorICAgICAgICBRVUVTVElPTiBNQVJLKSwgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIDx2YXI+Y3VycmVudCBub2RlPC92YXI+J3MgPGNvZGU+dGFyZ2V0PC9jb2RlPiBJREwgYXR0cmlidXRlLCBmb2xsb3dlZCBieSBhIHNpbmdsZSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyLCBmb2xsb3dlZAorICAgICAgICBieSB0aGUgdmFsdWUgb2YgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4ncyA8Y29kZT5kYXRhPC9jb2RlPiBJREwKKyAgICAgICAgYXR0cmlidXRlLCBmb2xsb3dlZCBieSBhIHNpbmdsZSBVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04gY2hhcmFjdGVyICg+KS48L3A+CisKKyAgICAgICA8ZHQ+SWYgPHZhcj5jdXJyZW50IG5vZGU8L3Zhcj4gaXMgYSA8Y29kZT5Eb2N1bWVudFR5cGU8L2NvZGU+PGRkPgorCisgICAgICAgIDxwPkFwcGVuZCB0aGUgbGl0ZXJhbCBzdHJpbmcgIjxjb2RlPiZsdDshRE9DVFlQRTwvY29kZT4iIChVKzAwM0MgTEVTUy1USEFOIFNJR04sIFUrMDAyMQorICAgICAgICBFWENMQU1BVElPTiBNQVJLLCBVKzAwNDQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRCwgVSswMDRGIExBVElOIENBUElUQUwgTEVUVEVSIE8sIFUrMDA0MyBMQVRJTgorICAgICAgICBDQVBJVEFMIExFVFRFUiBDLCBVKzAwNTQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVCwgVSswMDU5IExBVElOIENBUElUQUwgTEVUVEVSIFksIFUrMDA1MCBMQVRJTgorICAgICAgICBDQVBJVEFMIExFVFRFUiBQLCBVKzAwNDUgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSksIGZvbGxvd2VkIGJ5IGEgc3BhY2UgKFUrMDAyMCBTUEFDRSksCisgICAgICAgIGZvbGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiA8dmFyPmN1cnJlbnQgbm9kZTwvdmFyPidzIDxjb2RlPm5hbWU8L2NvZGU+IElETAorICAgICAgICBhdHRyaWJ1dGUsIGZvbGxvd2VkIGJ5IHRoZSBsaXRlcmFsIHN0cmluZyAiPGNvZGU+PjwvY29kZT4iIChVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04pLjwvcD4KKworICAgICAgIDwvZGw+CisKKworCisgICAgIDwvb2w+CisKKyAgIDxsaT48cD5UaGUgcmVzdWx0IG9mIHRoZSBhbGdvcml0aG0gaXMgdGhlIHN0cmluZyA8dmFyPnM8L3Zhcj4uPC9vbD4KKworICA8cCBjbGFzcz13YXJuaW5nPkl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIG91dHB1dCBvZiB0aGlzIGFsZ29yaXRobSwgaWYgcGFyc2VkIHdpdGggYW4gPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6aHRtbC1wYXJzZXItMz5IVE1MCisgIHBhcnNlcjwvYT4sIHdpbGwgbm90IHJldHVybiB0aGUgb3JpZ2luYWwgdHJlZSBzdHJ1Y3R1cmUuPC9wPgorCisgIDxkaXYgY2xhc3M9ZXhhbXBsZT4KKworICAgPHA+Rm9yIGluc3RhbmNlLCBpZiBhIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS10ZXh0YXJlYS1lbGVtZW50LTI+PGEgaHJlZj1mb3Jtcy5odG1sI3RoZS10ZXh0YXJlYS1lbGVtZW50PnRleHRhcmVhPC9hPjwvY29kZT4gZWxlbWVudCB0byB3aGljaCBhIDxjb2RlPkNvbW1lbnQ8L2NvZGU+IG5vZGUKKyAgIGhhcyBiZWVuIGFwcGVuZGVkIGlzIHNlcmlhbGlzZWQgYW5kIHRoZSBvdXRwdXQgaXMgdGhlbiByZXBhcnNlZCwgdGhlIGNvbW1lbnQgd2lsbCBlbmQgdXAgYmVpbmcKKyAgIGRpc3BsYXllZCBpbiB0aGUgdGV4dCBmaWVsZC4gU2ltaWxhcmx5LCBpZiwgYXMgYSByZXN1bHQgb2YgRE9NIG1hbmlwdWxhdGlvbiwgYW4gZWxlbWVudCBjb250YWlucworICAgYSBjb21tZW50IHRoYXQgY29udGFpbnMgdGhlIGxpdGVyYWwgc3RyaW5nICI8Y29kZT4tLT48L2NvZGU+IiwgdGhlbiB3aGVuIHRoZSByZXN1bHQKKyAgIG9mIHNlcmlhbGlzaW5nIHRoZSBlbGVtZW50IGlzIHBhcnNlZCwgdGhlIGNvbW1lbnQgd2lsbCBiZSB0cnVuY2F0ZWQgYXQgdGhhdCBwb2ludCBhbmQgdGhlIHJlc3Qgb2YKKyAgIHRoZSBjb21tZW50IHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgbWFya3VwLiBNb3JlIGV4YW1wbGVzIHdvdWxkIGJlIG1ha2luZyBhIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1zY3JpcHQtZWxlbWVudC0yPjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50PnNjcmlwdDwvYT48L2NvZGU+CisgICBlbGVtZW50IGNvbnRhaW4gYSA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0ZXh0LTI+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHQ+VGV4dDwvYT48L2NvZGU+IG5vZGUgd2l0aCB0aGUgdGV4dCBzdHJpbmcgIjxjb2RlPiZsdDsvc2NyaXB0PjwvY29kZT4iLCBvcgorICAgaGF2aW5nIGEgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXAtZWxlbWVudD48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1wLWVsZW1lbnQ+cDwvYT48L2NvZGU+IGVsZW1lbnQgdGhhdCBjb250YWlucyBhIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS11bC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXVsLWVsZW1lbnQ+dWw8L2E+PC9jb2RlPiBlbGVtZW50IChhcyB0aGUgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXVsLWVsZW1lbnQtMj48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS11bC1lbGVtZW50PnVsPC9hPjwvY29kZT4KKyAgIGVsZW1lbnQncyA8YSBocmVmPSNzeW50YXgtc3RhcnQtdGFnIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnN5bnRheC1zdGFydC10YWc+c3RhcnQgdGFnPC9hPiB3b3VsZCBpbXBseSB0aGUgZW5kIHRhZyBmb3IgdGhlCisgICA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtcC1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtcC1lbGVtZW50PnA8L2E+PC9jb2RlPikuPC9wPgorCisgICA8cD5UaGlzIGNhbiBlbmFibGUgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgYXR0YWNrcy4gQW4gZXhhbXBsZSBvZiB0aGlzIHdvdWxkIGJlIGEgcGFnZSB0aGF0IGxldHMgdGhlCisgICB1c2VyIGVudGVyIHNvbWUgZm9udCBmYW1pbHkgbmFtZXMgdGhhdCBhcmUgdGhlbiBpbnNlcnRlZCBpbnRvIGEgQ1NTIDxjb2RlIGlkPXNlcmlhbGlzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1zdHlsZS1lbGVtZW50LTI+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtc3R5bGUtZWxlbWVudD5zdHlsZTwvYT48L2NvZGU+IGJsb2NrIHZpYQorICAgdGhlIERPTSBhbmQgd2hpY2ggdGhlbiB1c2VzIHRoZSA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czpkb20taW5uZXJodG1sPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNkb20taW5uZXJodG1sPmlubmVySFRNTDwvYT48L2NvZGU+IElETCBhdHRyaWJ1dGUgdG8gZ2V0CisgICB0aGUgSFRNTCBzZXJpYWxpc2F0aW9uIG9mIHRoYXQgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXN0eWxlLWVsZW1lbnQtMz48YSBocmVmPXNlbWFudGljcy5odG1sI3RoZS1zdHlsZS1lbGVtZW50PnN0eWxlPC9hPjwvY29kZT4gZWxlbWVudDogaWYgdGhlIHVzZXIgZW50ZXJzCisgICAiPGNvZGU+Jmx0Oy9zdHlsZT4mbHQ7c2NyaXB0PmF0dGFjayZsdDsvc2NyaXB0PjwvY29kZT4iIGFzIGEgZm9udCBmYW1pbHkgbmFtZSwgPGNvZGUgaWQ9c2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM6ZG9tLWlubmVyaHRtbC0yPjxhIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNkb20taW5uZXJodG1sPmlubmVySFRNTDwvYT48L2NvZGU+IHdpbGwgcmV0dXJuIG1hcmt1cCB0aGF0LCBpZiBwYXJzZWQgaW4gYSBkaWZmZXJlbnQgY29udGV4dCwKKyAgIHdvdWxkIGNvbnRhaW4gYSA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtc2NyaXB0LWVsZW1lbnQtMz48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiBub2RlLCBldmVuIHRob3VnaCBubyA8Y29kZSBpZD1zZXJpYWxpc2luZy1odG1sLWZyYWdtZW50czp0aGUtc2NyaXB0LWVsZW1lbnQtND48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiBub2RlIGV4aXN0ZWQgaW4gdGhlCisgICBvcmlnaW5hbCBET00uPC9wPgorCisgIDwvZGl2PgorCisgIDxwPjxkZm4gaWQ9ZXNjYXBpbmdTdHJpbmc+RXNjYXBpbmcgYSBzdHJpbmc8L2Rmbj4gKGZvciB0aGUgcHVycG9zZXMgb2YgdGhlIGFsZ29yaXRobSBhYm92ZSkKKyAgY29uc2lzdHMgb2YgcnVubmluZyB0aGUgZm9sbG93aW5nIHN0ZXBzOjwvcD4KKworICA8b2w+PGxpPjxwPlJlcGxhY2UgYW55IG9jY3VycmVuY2Ugb2YgdGhlICI8Y29kZT4mYW1wOzwvY29kZT4iIGNoYXJhY3RlciBieSB0aGUgc3RyaW5nICI8Y29kZT4mYW1wO2FtcDs8L2NvZGU+Ii48bGk+PHA+UmVwbGFjZSBhbnkgb2NjdXJyZW5jZXMgb2YgdGhlIFUrMDBBMCBOTy1CUkVBSyBTUEFDRSBjaGFyYWN0ZXIgYnkgdGhlIHN0cmluZyAiPGNvZGU+JmFtcDtuYnNwOzwvY29kZT4iLjxsaT48cD5JZiB0aGUgYWxnb3JpdGhtIHdhcyBpbnZva2VkIGluIHRoZSA8aT5hdHRyaWJ1dGUgbW9kZTwvaT4sIHJlcGxhY2UgYW55IG9jY3VycmVuY2VzIG9mIHRoZQorICAgIjxjb2RlPiI8L2NvZGU+IiBjaGFyYWN0ZXIgYnkgdGhlIHN0cmluZyAiPGNvZGU+JmFtcDtxdW90OzwvY29kZT4iLjxsaT48cD5JZiB0aGUgYWxnb3JpdGhtIHdhcyA8ZW0+bm90PC9lbT4gaW52b2tlZCBpbiB0aGUgPGk+YXR0cmlidXRlIG1vZGU8L2k+LCByZXBsYWNlIGFueQorICAgb2NjdXJyZW5jZXMgb2YgdGhlICI8Y29kZT4mbHQ7PC9jb2RlPiIgY2hhcmFjdGVyIGJ5IHRoZSBzdHJpbmcgIjxjb2RlPiZhbXA7bHQ7PC9jb2RlPiIsIGFuZCBhbnkgb2NjdXJyZW5jZXMgb2YgdGhlICI8Y29kZT4+PC9jb2RlPiIgY2hhcmFjdGVyIGJ5CisgICB0aGUgc3RyaW5nICI8Y29kZT4mYW1wO2d0OzwvY29kZT4iLjwvb2w+CisKKworICA8aDMgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50cz4xMi40IFBhcnNpbmcgSFRNTCBmcmFnbWVudHM8L2gzPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgc3RlcHMgZm9ybSB0aGUgPGRmbiBpZD1odG1sLWZyYWdtZW50LXBhcnNpbmctYWxnb3JpdGhtPkhUTUwgZnJhZ21lbnQgcGFyc2luZyBhbGdvcml0aG08L2Rmbj4uIFRoZSBhbGdvcml0aG0KKyAgb3B0aW9uYWxseSB0YWtlcyBhcyBpbnB1dCBhbiA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmVsZW1lbnQ+PGEgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2VsZW1lbnQ+RWxlbWVudDwvYT48L2NvZGU+IG5vZGUsIHJlZmVycmVkIHRvIGFzIHRoZSA8ZGZuIGlkPWNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0Pjx2YXI+Y29udGV4dDwvdmFyPjwvZGZuPiBlbGVtZW50LCB3aGljaCBnaXZlcyB0aGUgY29udGV4dCBmb3IKKyAgdGhlIHBhcnNlciwgYXMgd2VsbCBhcyA8dmFyPmlucHV0PC92YXI+LCBhIHN0cmluZyB0byBwYXJzZSwgYW5kIHJldHVybnMgYSBsaXN0IG9mIHplcm8gb3IKKyAgbW9yZSBub2Rlcy48L3A+CisKKyAgPHAgY2xhc3M9bm90ZT5QYXJ0cyBtYXJrZWQgPGRmbiBpZD1mcmFnbWVudC1jYXNlPmZyYWdtZW50IGNhc2U8L2Rmbj4gaW4gYWxnb3JpdGhtcyBpbiB0aGUgcGFyc2VyIHNlY3Rpb24gYXJlCisgIHBhcnRzIHRoYXQgb25seSBvY2N1ciBpZiB0aGUgcGFyc2VyIHdhcyBjcmVhdGVkIGZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBhbGdvcml0aG0gKGFuZCB3aXRoIGEKKyAgPHZhciBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PjxhIGhyZWY9I2NvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PmNvbnRleHQ8L2E+PC92YXI+IGVsZW1lbnQpLiBUaGUgYWxnb3JpdGhtcyBoYXZlIGJlZW4gYW5ub3RhdGVkCisgIHdpdGggc3VjaCBtYXJraW5ncyBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5OyBzdWNoIG1hcmtpbmdzIGhhdmUgbm8gbm9ybWF0aXZlIHdlaWdodC4gSWYgaXQKKyAgaXMgcG9zc2libGUgZm9yIGEgY29uZGl0aW9uIGRlc2NyaWJlZCBhcyBhIDxhIGhyZWY9I2ZyYWdtZW50LWNhc2UgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpmcmFnbWVudC1jYXNlPmZyYWdtZW50IGNhc2U8L2E+IHRvIG9jY3VyIGV2ZW4gd2hlbiB0aGUKKyAgcGFyc2VyIHdhc24ndCBjcmVhdGVkIGZvciB0aGUgcHVycG9zZXMgb2YgaGFuZGxpbmcgdGhpcyBhbGdvcml0aG0sIHRoZW4gdGhhdCBpcyBhbiBlcnJvciBpbiB0aGUKKyAgc3BlY2lmaWNhdGlvbi48L3A+CisKKyAgPG9sPjxsaT4KKworICAgIDxwPkNyZWF0ZSBhIG5ldyA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmRvY3VtZW50PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBub2RlLCBhbmQgbWFyayBpdCBhcyBiZWluZyBhbiA8YSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjaHRtbC1kb2N1bWVudHMgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpodG1sLWRvY3VtZW50cz5IVE1MIGRvY3VtZW50PC9hPi48L3A+CisKKyAgIDxsaT4KKworICAgIDxwPklmIHRoZXJlIGlzIGEgPHZhciBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0LTI+PGEgaHJlZj0jY29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQ+Y29udGV4dDwvYT48L3Zhcj4gZWxlbWVudCwgYW5kIHRoZQorICAgIDxhIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6bm9kZS1kb2N1bWVudCBocmVmPWh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1ub2RlLWRvY3VtZW50IGRhdGEteC1pbnRlcm5hbD1ub2RlLWRvY3VtZW50Pm5vZGUgZG9jdW1lbnQ8L2E+IG9mIHRoZSA8dmFyIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6Y29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQtMz48YSBocmVmPSNjb25jZXB0LWZyYWctcGFyc2UtY29udGV4dD5jb250ZXh0PC9hPjwvdmFyPiBlbGVtZW50IGlzIGluCisgICAgPGEgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpxdWlya3MtbW9kZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjcXVpcmtzLW1vZGU+cXVpcmtzIG1vZGU8L2E+LCB0aGVuIGxldCB0aGUgPGNvZGUgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpkb2N1bWVudC0yPjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBiZSBpbiA8YSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnF1aXJrcy1tb2RlLTIgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI3F1aXJrcy1tb2RlPnF1aXJrcyBtb2RlPC9hPi4KKyAgICBPdGhlcndpc2UsIGlmIHRoZXJlIGlzIGEgPHZhciBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0LTQ+PGEgaHJlZj0jY29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQ+Y29udGV4dDwvYT48L3Zhcj4gZWxlbWVudCwgYW5kIHRoZQorICAgIDxhIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6bm9kZS1kb2N1bWVudC0yIGhyZWY9aHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtZG9jdW1lbnQgZGF0YS14LWludGVybmFsPW5vZGUtZG9jdW1lbnQ+bm9kZSBkb2N1bWVudDwvYT4gb2YgdGhlIDx2YXIgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpjb25jZXB0LWZyYWctcGFyc2UtY29udGV4dC01PjxhIGhyZWY9I2NvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PmNvbnRleHQ8L2E+PC92YXI+IGVsZW1lbnQgaXMgaW4KKyAgICA8YSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmxpbWl0ZWQtcXVpcmtzLW1vZGUgaHJlZj1pbmZyYXN0cnVjdHVyZS5odG1sI2xpbWl0ZWQtcXVpcmtzLW1vZGU+bGltaXRlZC1xdWlya3MgbW9kZTwvYT4sIHRoZW4gbGV0IHRoZSA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmRvY3VtZW50LTM+PGEgaHJlZj1kb20uaHRtbCNkb2N1bWVudD5Eb2N1bWVudDwvYT48L2NvZGU+IGJlIGluIDxhIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6bGltaXRlZC1xdWlya3MtbW9kZS0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCNsaW1pdGVkLXF1aXJrcy1tb2RlPmxpbWl0ZWQtcXVpcmtzCisgICAgbW9kZTwvYT4uIE90aGVyd2lzZSwgbGVhdmUgdGhlIDxjb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6ZG9jdW1lbnQtND48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gaW4gPGEgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpuby1xdWlya3MtbW9kZSBocmVmPWluZnJhc3RydWN0dXJlLmh0bWwjbm8tcXVpcmtzLW1vZGU+bm8tcXVpcmtzIG1vZGU8L2E+LjwvcD4KKworICAgPGxpPgorCisgICAgPHA+Q3JlYXRlIGEgbmV3IDxhIGhyZWY9I2h0bWwtcGFyc2VyIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6aHRtbC1wYXJzZXI+SFRNTCBwYXJzZXI8L2E+LCBhbmQgYXNzb2NpYXRlIGl0IHdpdGggdGhlIGp1c3QgY3JlYXRlZAorICAgIDxjb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6ZG9jdW1lbnQtNT48YSBocmVmPWRvbS5odG1sI2RvY3VtZW50PkRvY3VtZW50PC9hPjwvY29kZT4gbm9kZS48L3A+CisKKyAgIDxsaT4KKworICAgIDxwPklmIHRoZXJlIGlzIGEgPHZhciBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0LTY+PGEgaHJlZj0jY29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQ+Y29udGV4dDwvYT48L3Zhcj4gZWxlbWVudCwgcnVuIHRoZXNlCisgICAgc3Vic3RlcHM6PC9wPgorCisgICAgPG9sPjxsaT4KKworICAgICAgPHA+U2V0IHRoZSBzdGF0ZSBvZiB0aGUgPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpodG1sLXBhcnNlci0yPkhUTUwgcGFyc2VyPC9hPidzIDxhIGhyZWY9I3Rva2VuaXphdGlvbiBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnRva2VuaXphdGlvbj50b2tlbml6YXRpb248L2E+IHN0YWdlIGFzCisgICAgICBmb2xsb3dzOjwvcD4KKworICAgICAgPGRsIGNsYXNzPXN3aXRjaD48ZHQ+SWYgaXQgaXMgYSA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS10aXRsZS1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLXRpdGxlLWVsZW1lbnQ+dGl0bGU8L2E+PC9jb2RlPiBvciA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS10ZXh0YXJlYS1lbGVtZW50PjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtdGV4dGFyZWEtZWxlbWVudD50ZXh0YXJlYTwvYT48L2NvZGU+IGVsZW1lbnQ8ZGQ+U3dpdGNoIHRoZSB0b2tlbml6ZXIgdG8gdGhlIDxhIGhyZWY9I3JjZGF0YS1zdGF0ZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnJjZGF0YS1zdGF0ZT5SQ0RBVEEgc3RhdGU8L2E+LjxkdD5JZiBpdCBpcyBhIDxjb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXN0eWxlLWVsZW1lbnQ+PGEgaHJlZj1zZW1hbnRpY3MuaHRtbCN0aGUtc3R5bGUtZWxlbWVudD5zdHlsZTwvYT48L2NvZGU+LCA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnhtcD48YSBocmVmPW9ic29sZXRlLmh0bWwjeG1wPnhtcDwvYT48L2NvZGU+LCA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1pZnJhbWUtZWxlbWVudD48YSBocmVmPWVtYmVkZGVkLWNvbnRlbnQuaHRtbCN0aGUtaWZyYW1lLWVsZW1lbnQ+aWZyYW1lPC9hPjwvY29kZT4sCisgICAgICAgPGNvZGUgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpub2VtYmVkPjxhIGhyZWY9b2Jzb2xldGUuaHRtbCNub2VtYmVkPm5vZW1iZWQ8L2E+PC9jb2RlPiwgb3IgPGNvZGUgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpub2ZyYW1lcz48YSBocmVmPW9ic29sZXRlLmh0bWwjbm9mcmFtZXM+bm9mcmFtZXM8L2E+PC9jb2RlPiBlbGVtZW50PGRkPlN3aXRjaCB0aGUgdG9rZW5pemVyIHRvIHRoZSA8YSBocmVmPSNyYXd0ZXh0LXN0YXRlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6cmF3dGV4dC1zdGF0ZT5SQVdURVhUIHN0YXRlPC9hPi48ZHQ+SWYgaXQgaXMgYSA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1zY3JpcHQtZWxlbWVudD48YSBocmVmPXNjcmlwdGluZy5odG1sI3RoZS1zY3JpcHQtZWxlbWVudD5zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50PGRkPlN3aXRjaCB0aGUgdG9rZW5pemVyIHRvIHRoZSA8YSBocmVmPSNzY3JpcHQtZGF0YS1zdGF0ZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnNjcmlwdC1kYXRhLXN0YXRlPnNjcmlwdCBkYXRhIHN0YXRlPC9hPi48ZHQ+SWYgaXQgaXMgYSA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1ub3NjcmlwdC1lbGVtZW50PjxhIGhyZWY9c2NyaXB0aW5nLmh0bWwjdGhlLW5vc2NyaXB0LWVsZW1lbnQ+bm9zY3JpcHQ8L2E+PC9jb2RlPiBlbGVtZW50PGRkPklmIHRoZSA8YSBocmVmPSNzY3JpcHRpbmctZmxhZyBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnNjcmlwdGluZy1mbGFnPnNjcmlwdGluZyBmbGFnPC9hPiBpcyBlbmFibGVkLCBzd2l0Y2ggdGhlIHRva2VuaXplciB0byB0aGUgPGEgaHJlZj0jcmF3dGV4dC1zdGF0ZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnJhd3RleHQtc3RhdGUtMj5SQVdURVhUCisgICAgICAgc3RhdGU8L2E+LiBPdGhlcndpc2UsIGxlYXZlIHRoZSB0b2tlbml6ZXIgaW4gdGhlIDxhIGhyZWY9I2RhdGEtc3RhdGUgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpkYXRhLXN0YXRlPmRhdGEgc3RhdGU8L2E+LjxkdD5JZiBpdCBpcyBhIDxjb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6cGxhaW50ZXh0PjxhIGhyZWY9b2Jzb2xldGUuaHRtbCNwbGFpbnRleHQ+cGxhaW50ZXh0PC9hPjwvY29kZT4gZWxlbWVudDxkZD5Td2l0Y2ggdGhlIHRva2VuaXplciB0byB0aGUgPGEgaHJlZj0jcGxhaW50ZXh0LXN0YXRlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6cGxhaW50ZXh0LXN0YXRlPlBMQUlOVEVYVCBzdGF0ZTwvYT4uPGR0Pk90aGVyd2lzZTxkZD5MZWF2ZSB0aGUgdG9rZW5pemVyIGluIHRoZSA8YSBocmVmPSNkYXRhLXN0YXRlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6ZGF0YS1zdGF0ZS0yPmRhdGEgc3RhdGU8L2E+LjwvZGw+CisKKyAgICAgIDxwIGNsYXNzPW5vdGU+Rm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIGFuIGltcGxlbWVudGF0aW9uIHRoYXQgZG9lcyBub3QgcmVwb3J0IGVycm9ycyBhbmQKKyAgICAgIHRoYXQgdXNlcyB0aGUgYWN0dWFsIHN0YXRlIG1hY2hpbmUgZGVzY3JpYmVkIGluIHRoaXMgc3BlY2lmaWNhdGlvbiBkaXJlY3RseSBjb3VsZCB1c2UgdGhlCisgICAgICBQTEFJTlRFWFQgc3RhdGUgaW5zdGVhZCBvZiB0aGUgUkFXVEVYVCBhbmQgc2NyaXB0IGRhdGEgc3RhdGVzIHdoZXJlIHRob3NlIGFyZSBtZW50aW9uZWQgaW4gdGhlCisgICAgICBsaXN0IGFib3ZlLiBFeGNlcHQgZm9yIHJ1bGVzIHJlZ2FyZGluZyBwYXJzZSBlcnJvcnMsIHRoZXkgYXJlIGVxdWl2YWxlbnQsIHNpbmNlIHRoZXJlIGlzIG5vCisgICAgICA8YSBocmVmPSNhcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6YXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbj5hcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuPC9hPiBpbiB0aGUgZnJhZ21lbnQgY2FzZSwgeWV0IHRoZXkgaW52b2x2ZSBmYXIgZmV3ZXIgc3RhdGUKKyAgICAgIHRyYW5zaXRpb25zLjwvcD4KKworICAgICA8bGk+CisKKyAgICAgIDxwPkxldCA8dmFyPnJvb3Q8L3Zhcj4gYmUgYSBuZXcgPGNvZGUgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czp0aGUtaHRtbC1lbGVtZW50PjxhIGhyZWY9c2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudD5odG1sPC9hPjwvY29kZT4gZWxlbWVudCB3aXRoIG5vIGF0dHJpYnV0ZXMuPC9wPgorCisgICAgIDxsaT4KKworICAgICAgPHA+QXBwZW5kIHRoZSBlbGVtZW50IDx2YXI+cm9vdDwvdmFyPiB0byB0aGUgPGNvZGUgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpkb2N1bWVudC02PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBub2RlIGNyZWF0ZWQKKyAgICAgIGFib3ZlLjwvcD4KKworICAgICA8bGk+CisKKyAgICAgIDxwPlNldCB1cCB0aGUgcGFyc2VyJ3MgPGEgaHJlZj0jc3RhY2stb2Ytb3Blbi1lbGVtZW50cyBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnN0YWNrLW9mLW9wZW4tZWxlbWVudHM+c3RhY2sgb2Ygb3BlbiBlbGVtZW50czwvYT4gc28gdGhhdCBpdCBjb250YWlucyBqdXN0IHRoZSBzaW5nbGUKKyAgICAgIGVsZW1lbnQgPHZhcj5yb290PC92YXI+LjwvcD4KKworICAgICA8bGk+CisKKyAgICAgIDxwPklmIHRoZSA8dmFyIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6Y29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQtNz48YSBocmVmPSNjb25jZXB0LWZyYWctcGFyc2UtY29udGV4dD5jb250ZXh0PC9hPjwvdmFyPiBlbGVtZW50IGlzIGEKKyAgICAgIDxjb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6dGhlLXRlbXBsYXRlLWVsZW1lbnQ+PGEgaHJlZj1zY3JpcHRpbmcuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudD50ZW1wbGF0ZTwvYT48L2NvZGU+IGVsZW1lbnQsIHB1c2ggIjxhIGhyZWY9I3BhcnNpbmctbWFpbi1pbnRlbXBsYXRlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6cGFyc2luZy1tYWluLWludGVtcGxhdGU+aW4KKyAgICAgIHRlbXBsYXRlPC9hPiIgb250byB0aGUgPGEgaHJlZj0jc3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6c3RhY2stb2YtdGVtcGxhdGUtaW5zZXJ0aW9uLW1vZGVzPnN0YWNrIG9mIHRlbXBsYXRlIGluc2VydGlvbiBtb2RlczwvYT4gc28gdGhhdCBpdCBpcyB0aGUgbmV3CisgICAgICA8YSBocmVmPSNjdXJyZW50LXRlbXBsYXRlLWluc2VydGlvbi1tb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6Y3VycmVudC10ZW1wbGF0ZS1pbnNlcnRpb24tbW9kZT5jdXJyZW50IHRlbXBsYXRlIGluc2VydGlvbiBtb2RlPC9hPi48L3A+CisKKyAgICAgPGxpPgorCisgICAgICA8cD5DcmVhdGUgYSBzdGFydCB0YWcgdG9rZW4gd2hvc2UgbmFtZSBpcyB0aGUgbG9jYWwgbmFtZSBvZiA8dmFyIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6Y29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQtOD48YSBocmVmPSNjb25jZXB0LWZyYWctcGFyc2UtY29udGV4dD5jb250ZXh0PC9hPjwvdmFyPiBhbmQgd2hvc2UgYXR0cmlidXRlcyBhcmUgdGhlIGF0dHJpYnV0ZXMgb2YKKyAgICAgIDx2YXIgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpjb25jZXB0LWZyYWctcGFyc2UtY29udGV4dC05PjxhIGhyZWY9I2NvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PmNvbnRleHQ8L2E+PC92YXI+LjwvcD4KKworICAgICAgPHA+TGV0IHRoaXMgc3RhcnQgdGFnIHRva2VuIGJlIHRoZSBzdGFydCB0YWcgdG9rZW4gb2YgdGhlIDx2YXIgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpjb25jZXB0LWZyYWctcGFyc2UtY29udGV4dC0xMD48YSBocmVmPSNjb25jZXB0LWZyYWctcGFyc2UtY29udGV4dD5jb250ZXh0PC9hPjwvdmFyPiBub2RlLCBlLmcuIGZvciB0aGUgcHVycG9zZXMgb2YgZGV0ZXJtaW5pbmcKKyAgICAgIGlmIGl0IGlzIGFuIDxhIGhyZWY9I2h0bWwtaW50ZWdyYXRpb24tcG9pbnQgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpodG1sLWludGVncmF0aW9uLXBvaW50PkhUTUwgaW50ZWdyYXRpb24gcG9pbnQ8L2E+LjwvcD4KKworICAgICA8bGk+CisKKyAgICAgIDxwPjxhIGhyZWY9I3Jlc2V0LXRoZS1pbnNlcnRpb24tbW9kZS1hcHByb3ByaWF0ZWx5IGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6cmVzZXQtdGhlLWluc2VydGlvbi1tb2RlLWFwcHJvcHJpYXRlbHk+UmVzZXQgdGhlIHBhcnNlcidzIGluc2VydGlvbiBtb2RlCisgICAgICBhcHByb3ByaWF0ZWx5PC9hPi48L3A+CisKKyAgICAgIDxwIGNsYXNzPW5vdGU+VGhlIHBhcnNlciB3aWxsIHJlZmVyZW5jZSB0aGUgPHZhciBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0LTExPjxhIGhyZWY9I2NvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PmNvbnRleHQ8L2E+PC92YXI+IGVsZW1lbnQgYXMgcGFydCBvZiB0aGF0IGFsZ29yaXRobS48L3A+CisKKyAgICAgPGxpPgorCisgICAgICA8cD5TZXQgdGhlIHBhcnNlcidzIDxhIGhyZWY9I2Zvcm0tZWxlbWVudC1wb2ludGVyIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6Zm9ybS1lbGVtZW50LXBvaW50ZXI+PGNvZGU+Zm9ybTwvY29kZT4gZWxlbWVudCBwb2ludGVyPC9hPiB0byB0aGUgbmVhcmVzdCBub2RlIHRvIHRoZQorICAgICAgPHZhciBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0LTEyPjxhIGhyZWY9I2NvbmNlcHQtZnJhZy1wYXJzZS1jb250ZXh0PmNvbnRleHQ8L2E+PC92YXI+IGVsZW1lbnQgdGhhdCBpcyBhIDxjb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6dGhlLWZvcm0tZWxlbWVudD48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudD5mb3JtPC9hPjwvY29kZT4KKyAgICAgIGVsZW1lbnQgKGdvaW5nIHN0cmFpZ2h0IHVwIHRoZSBhbmNlc3RvciBjaGFpbiwgYW5kIGluY2x1ZGluZyB0aGUgZWxlbWVudCBpdHNlbGYsIGlmIGl0IGlzIGEKKyAgICAgIDxjb2RlIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6dGhlLWZvcm0tZWxlbWVudC0yPjxhIGhyZWY9Zm9ybXMuaHRtbCN0aGUtZm9ybS1lbGVtZW50PmZvcm08L2E+PC9jb2RlPiBlbGVtZW50KSwgaWYgYW55LiAoSWYgdGhlcmUgaXMgbm8gc3VjaCA8Y29kZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOnRoZS1mb3JtLWVsZW1lbnQtMz48YSBocmVmPWZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudD5mb3JtPC9hPjwvY29kZT4gZWxlbWVudCwgdGhlCisgICAgICA8YSBocmVmPSNmb3JtLWVsZW1lbnQtcG9pbnRlciBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmZvcm0tZWxlbWVudC1wb2ludGVyLTI+PGNvZGU+Zm9ybTwvY29kZT4gZWxlbWVudCBwb2ludGVyPC9hPiBrZWVwcyBpdHMgaW5pdGlhbCB2YWx1ZSwgbnVsbC4pPC9wPgorCisgICAgIDwvb2w+CisKKyAgIDxsaT4KKworICAgIDxwPlBsYWNlIHRoZSA8dmFyPmlucHV0PC92YXI+IGludG8gdGhlIDxhIGhyZWY9I2lucHV0LXN0cmVhbSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmlucHV0LXN0cmVhbT5pbnB1dCBzdHJlYW08L2E+IGZvciB0aGUgPGEgaHJlZj0jaHRtbC1wYXJzZXIgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpodG1sLXBhcnNlci0zPkhUTUwKKyAgICBwYXJzZXI8L2E+IGp1c3QgY3JlYXRlZC4gVGhlIGVuY29kaW5nIDxhIGhyZWY9I2NvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZSBpZD1wYXJzaW5nLWh0bWwtZnJhZ21lbnRzOmNvbmNlcHQtZW5jb2RpbmctY29uZmlkZW5jZT5jb25maWRlbmNlPC9hPiBpcyA8aT5pcnJlbGV2YW50PC9pPi48L3A+CisKKyAgIDxsaT4KKworICAgIDxwPlN0YXJ0IHRoZSBwYXJzZXIgYW5kIGxldCBpdCBydW4gdW50aWwgaXQgaGFzIGNvbnN1bWVkIGFsbCB0aGUgY2hhcmFjdGVycyBqdXN0IGluc2VydGVkIGludG8KKyAgICB0aGUgaW5wdXQgc3RyZWFtLjwvcD4KKworICAgPGxpPgorCisgICAgPHA+SWYgdGhlcmUgaXMgYSA8dmFyIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6Y29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQtMTM+PGEgaHJlZj0jY29uY2VwdC1mcmFnLXBhcnNlLWNvbnRleHQ+Y29udGV4dDwvYT48L3Zhcj4gZWxlbWVudCwgcmV0dXJuIHRoZSBjaGlsZAorICAgIG5vZGVzIG9mIDx2YXI+cm9vdDwvdmFyPiwgaW4gPGEgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czp0cmVlLW9yZGVyIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0cmVlLW9yZGVyPnRyZWUgb3JkZXI8L2E+LjwvcD4KKworICAgIDxwPk90aGVyd2lzZSwgcmV0dXJuIHRoZSBjaGlsZHJlbiBvZiB0aGUgPGNvZGUgaWQ9cGFyc2luZy1odG1sLWZyYWdtZW50czpkb2N1bWVudC03PjxhIGhyZWY9ZG9tLmh0bWwjZG9jdW1lbnQ+RG9jdW1lbnQ8L2E+PC9jb2RlPiBvYmplY3QsIGluIDxhIGlkPXBhcnNpbmctaHRtbC1mcmFnbWVudHM6dHJlZS1vcmRlci0yIGhyZWY9aW5mcmFzdHJ1Y3R1cmUuaHRtbCN0cmVlLW9yZGVyPnRyZWUKKyAgICBvcmRlcjwvYT4uPC9wPgorCisgICA8L29sPgorCisKKworCisKKyAgPGgzIGlkPW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzPjEyLjUgPGRmbj5OYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlczwvZGZuPjwvaDM+CisKKyAgPHA+VGhpcyB0YWJsZSBsaXN0cyB0aGUgY2hhcmFjdGVyIHJlZmVyZW5jZSBuYW1lcyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgSFRNTCwgYW5kIHRoZSBjb2RlIHBvaW50cworICB0byB3aGljaCB0aGV5IHJlZmVyLiBJdCBpcyByZWZlcmVuY2VkIGJ5IHRoZSBwcmV2aW91cyBzZWN0aW9ucy48L3A+CisKKyAgPGRpdiBpZD1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy10YWJsZT4KKyAgIDx0YWJsZT48dGhlYWQ+PHRyPjx0aD4gTmFtZSA8dGg+IENoYXJhY3RlcihzKSA8dGg+IEdseXBoIDx0Ym9keT48dHIgaWQ9ZW50aXR5LUFhY3V0ZT48dGQ+IDxjb2RlPkFhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDBDMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOBPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUFhY3V0ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPkFhY3V0ZTwvY29kZT4gPHRkPiBVKzAwMEMxIDx0ZD4gPHNwYW4+w4E8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWFjdXRlPjx0ZD4gPGNvZGU+YWFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMEUxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w6E8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWFjdXRlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+YWFjdXRlPC9jb2RlPiA8dGQ+IFUrMDAwRTEgPHRkPiA8c3Bhbj7DoTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BYnJldmU+PHRkPiA8Y29kZT5BYnJldmU7PC9jb2RlPiA8dGQ+IFUrMDAxMDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Egjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hYnJldmU+PHRkPiA8Y29kZT5hYnJldmU7PC9jb2RlPiA8dGQ+IFUrMDAxMDMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Egzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hYz48dGQ+IDxjb2RlPmFjOzwvY29kZT4gPHRkPiBVKzAyMjNFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oi+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFjZD48dGQ+IDxjb2RlPmFjZDs8L2NvZGU+IDx0ZD4gVSswMjIzRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hY0U+PHRkPiA8Y29kZT5hY0U7PC9jb2RlPiA8dGQ+IFUrMDIyM0UgVSswMDMzMyA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oi+zLM8L3NwYW4+IDx0ciBpZD1lbnRpdHktQWNpcmM+PHRkPiA8Y29kZT5BY2lyYzs8L2NvZGU+IDx0ZD4gVSswMDBDMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUFjaXJjLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+QWNpcmM8L2NvZGU+IDx0ZD4gVSswMDBDMiA8dGQ+IDxzcGFuPsOCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFjaXJjPjx0ZD4gPGNvZGU+YWNpcmM7PC9jb2RlPiA8dGQ+IFUrMDAwRTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hY2lyYy1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmFjaXJjPC9jb2RlPiA8dGQ+IFUrMDAwRTIgPHRkPiA8c3Bhbj7Dojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hY3V0ZT48dGQ+IDxjb2RlPmFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMEI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWN1dGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5hY3V0ZTwvY29kZT4gPHRkPiBVKzAwMEI0IDx0ZD4gPHNwYW4+wrQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktQWN5Pjx0ZD4gPGNvZGU+QWN5OzwvY29kZT4gPHRkPiBVKzAwNDEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0JA8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWN5Pjx0ZD4gPGNvZGU+YWN5OzwvY29kZT4gPHRkPiBVKzAwNDMwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0LA8L3NwYW4+IDx0ciBpZD1lbnRpdHktQUVsaWc+PHRkPiA8Y29kZT5BRWxpZzs8L2NvZGU+IDx0ZD4gVSswMDBDNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUFFbGlnLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+QUVsaWc8L2NvZGU+IDx0ZD4gVSswMDBDNiA8dGQ+IDxzcGFuPsOGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFlbGlnPjx0ZD4gPGNvZGU+YWVsaWc7PC9jb2RlPiA8dGQ+IFUrMDAwRTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hZWxpZy1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmFlbGlnPC9jb2RlPiA8dGQ+IFUrMDAwRTYgPHRkPiA8c3Bhbj7Dpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hZj48dGQ+IDxjb2RlPmFmOzwvY29kZT4gPHRkPiBVKzAyMDYxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oGhPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUFmcj48dGQ+IDxjb2RlPkFmcjs8L2NvZGU+IDx0ZD4gVSsxRDUwNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlIQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWZyPjx0ZD4gPGNvZGU+YWZyOzwvY29kZT4gPHRkPiBVKzFENTFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Unjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BZ3JhdmU+PHRkPiA8Y29kZT5BZ3JhdmU7PC9jb2RlPiA8dGQ+IFUrMDAwQzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BZ3JhdmUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5BZ3JhdmU8L2NvZGU+IDx0ZD4gVSswMDBDMCA8dGQ+IDxzcGFuPsOAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFncmF2ZT48dGQ+IDxjb2RlPmFncmF2ZTs8L2NvZGU+IDx0ZD4gVSswMDBFMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOgPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFncmF2ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmFncmF2ZTwvY29kZT4gPHRkPiBVKzAwMEUwIDx0ZD4gPHNwYW4+w6A8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWxlZnN5bT48dGQ+IDxjb2RlPmFsZWZzeW07PC9jb2RlPiA8dGQ+IFUrMDIxMzUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihLU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWxlcGg+PHRkPiA8Y29kZT5hbGVwaDs8L2NvZGU+IDx0ZD4gVSswMjEzNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BbHBoYT48dGQ+IDxjb2RlPkFscGhhOzwvY29kZT4gPHRkPiBVKzAwMzkxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zpE8L3NwYW4+IDx0ciBpZD1lbnRpdHktYWxwaGE+PHRkPiA8Y29kZT5hbHBoYTs8L2NvZGU+IDx0ZD4gVSswMDNCMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6xPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUFtYWNyPjx0ZD4gPGNvZGU+QW1hY3I7PC9jb2RlPiA8dGQ+IFUrMDAxMDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbWFjcj48dGQ+IDxjb2RlPmFtYWNyOzwvY29kZT4gPHRkPiBVKzAwMTAxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xIE8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW1hbGc+PHRkPiA8Y29kZT5hbWFsZzs8L2NvZGU+IDx0ZD4gVSswMkEzRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKovzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BTVA+PHRkPiA8Y29kZT5BTVA7PC9jb2RlPiA8dGQ+IFUrMDAwMjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4mYW1wOzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BTVAtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5BTVA8L2NvZGU+IDx0ZD4gVSswMDAyNiA8dGQ+IDxzcGFuPiZhbXA7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFtcD48dGQ+IDxjb2RlPmFtcDs8L2NvZGU+IDx0ZD4gVSswMDAyNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPiZhbXA7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFtcC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmFtcDwvY29kZT4gPHRkPiBVKzAwMDI2IDx0ZD4gPHNwYW4+JmFtcDs8L3NwYW4+IDx0ciBpZD1lbnRpdHktQW5kPjx0ZD4gPGNvZGU+QW5kOzwvY29kZT4gPHRkPiBVKzAyQTUzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFuZD48dGQ+IDxjb2RlPmFuZDs8L2NvZGU+IDx0ZD4gVSswMjIyNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmRhbmQ+PHRkPiA8Y29kZT5hbmRhbmQ7PC9jb2RlPiA8dGQ+IFUrMDJBNTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqZU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5kZD48dGQ+IDxjb2RlPmFuZGQ7PC9jb2RlPiA8dGQ+IFUrMDJBNUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqZw8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5kc2xvcGU+PHRkPiA8Y29kZT5hbmRzbG9wZTs8L2NvZGU+IDx0ZD4gVSswMkE1OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmR2Pjx0ZD4gPGNvZGU+YW5kdjs8L2NvZGU+IDx0ZD4gVSswMkE1QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmc+PHRkPiA8Y29kZT5hbmc7PC9jb2RlPiA8dGQ+IFUrMDIyMjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKA8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5nZT48dGQ+IDxjb2RlPmFuZ2U7PC9jb2RlPiA8dGQ+IFUrMDI5QTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipqQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5nbGU+PHRkPiA8Y29kZT5hbmdsZTs8L2NvZGU+IDx0ZD4gVSswMjIyMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmdtc2Q+PHRkPiA8Y29kZT5hbmdtc2Q7PC9jb2RlPiA8dGQ+IFUrMDIyMjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKE8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5nbXNkYWE+PHRkPiA8Y29kZT5hbmdtc2RhYTs8L2NvZGU+IDx0ZD4gVSswMjlBOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmdtc2RhYj48dGQ+IDxjb2RlPmFuZ21zZGFiOzwvY29kZT4gPHRkPiBVKzAyOUE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qapPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFuZ21zZGFjPjx0ZD4gPGNvZGU+YW5nbXNkYWM7PC9jb2RlPiA8dGQ+IFUrMDI5QUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipqo8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5nbXNkYWQ+PHRkPiA8Y29kZT5hbmdtc2RhZDs8L2NvZGU+IDx0ZD4gVSswMjlBQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmdtc2RhZT48dGQ+IDxjb2RlPmFuZ21zZGFlOzwvY29kZT4gPHRkPiBVKzAyOUFDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qasPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFuZ21zZGFmPjx0ZD4gPGNvZGU+YW5nbXNkYWY7PC9jb2RlPiA8dGQ+IFUrMDI5QUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipq08L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5nbXNkYWc+PHRkPiA8Y29kZT5hbmdtc2RhZzs8L2NvZGU+IDx0ZD4gVSswMjlBRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmdtc2RhaD48dGQ+IDxjb2RlPmFuZ21zZGFoOzwvY29kZT4gPHRkPiBVKzAyOUFGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qavPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFuZ3J0Pjx0ZD4gPGNvZGU+YW5ncnQ7PC9jb2RlPiA8dGQ+IFUrMDIyMUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJ88L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5ncnR2Yj48dGQ+IDxjb2RlPmFuZ3J0dmI7PC9jb2RlPiA8dGQ+IFUrMDIyQkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iir48L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5ncnR2YmQ+PHRkPiA8Y29kZT5hbmdydHZiZDs8L2NvZGU+IDx0ZD4gVSswMjk5RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hbmdzcGg+PHRkPiA8Y29kZT5hbmdzcGg7PC9jb2RlPiA8dGQ+IFUrMDIyMjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKI8L3NwYW4+IDx0ciBpZD1lbnRpdHktYW5nc3Q+PHRkPiA8Y29kZT5hbmdzdDs8L2NvZGU+IDx0ZD4gVSswMDBDNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFuZ3phcnI+PHRkPiA8Y29kZT5hbmd6YXJyOzwvY29kZT4gPHRkPiBVKzAyMzdDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4o28PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUFvZ29uPjx0ZD4gPGNvZGU+QW9nb247PC9jb2RlPiA8dGQ+IFUrMDAxMDQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hb2dvbj48dGQ+IDxjb2RlPmFvZ29uOzwvY29kZT4gPHRkPiBVKzAwMTA1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xIU8L3NwYW4+IDx0ciBpZD1lbnRpdHktQW9wZj48dGQ+IDxjb2RlPkFvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1MzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZS4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFvcGY+PHRkPiA8Y29kZT5hb3BmOzwvY29kZT4gPHRkPiBVKzFENTUyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hcD48dGQ+IDxjb2RlPmFwOzwvY29kZT4gPHRkPiBVKzAyMjQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFwYWNpcj48dGQ+IDxjb2RlPmFwYWNpcjs8L2NvZGU+IDx0ZD4gVSswMkE2RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKprzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hcEU+PHRkPiA8Y29kZT5hcEU7PC9jb2RlPiA8dGQ+IFUrMDJBNzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbA8L3NwYW4+IDx0ciBpZD1lbnRpdHktYXBlPjx0ZD4gPGNvZGU+YXBlOzwvY29kZT4gPHRkPiBVKzAyMjRBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFwaWQ+PHRkPiA8Y29kZT5hcGlkOzwvY29kZT4gPHRkPiBVKzAyMjRCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFwb3M+PHRkPiA8Y29kZT5hcG9zOzwvY29kZT4gPHRkPiBVKzAwMDI3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Jzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BcHBseUZ1bmN0aW9uPjx0ZD4gPGNvZGU+QXBwbHlGdW5jdGlvbjs8L2NvZGU+IDx0ZD4gVSswMjA2MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKBoTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hcHByb3g+PHRkPiA8Y29kZT5hcHByb3g7PC9jb2RlPiA8dGQ+IFUrMDIyNDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYg8L3NwYW4+IDx0ciBpZD1lbnRpdHktYXBwcm94ZXE+PHRkPiA8Y29kZT5hcHByb3hlcTs8L2NvZGU+IDx0ZD4gVSswMjI0QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BcmluZz48dGQ+IDxjb2RlPkFyaW5nOzwvY29kZT4gPHRkPiBVKzAwMEM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w4U8L3NwYW4+IDx0ciBpZD1lbnRpdHktQXJpbmctbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5BcmluZzwvY29kZT4gPHRkPiBVKzAwMEM1IDx0ZD4gPHNwYW4+w4U8L3NwYW4+IDx0ciBpZD1lbnRpdHktYXJpbmc+PHRkPiA8Y29kZT5hcmluZzs8L2NvZGU+IDx0ZD4gVSswMDBFNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFyaW5nLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+YXJpbmc8L2NvZGU+IDx0ZD4gVSswMDBFNSA8dGQ+IDxzcGFuPsOlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUFzY3I+PHRkPiA8Y29kZT5Bc2NyOzwvY29kZT4gPHRkPiBVKzFENDlDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2SnDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hc2NyPjx0ZD4gPGNvZGU+YXNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRCNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdkrY8L3NwYW4+IDx0ciBpZD1lbnRpdHktQXNzaWduPjx0ZD4gPGNvZGU+QXNzaWduOzwvY29kZT4gPHRkPiBVKzAyMjU0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWFzdD48dGQ+IDxjb2RlPmFzdDs8L2NvZGU+IDx0ZD4gVSswMDAyQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPio8L3NwYW4+IDx0ciBpZD1lbnRpdHktYXN5bXA+PHRkPiA8Y29kZT5hc3ltcDs8L2NvZGU+IDx0ZD4gVSswMjI0OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hc3ltcGVxPjx0ZD4gPGNvZGU+YXN5bXBlcTs8L2NvZGU+IDx0ZD4gVSswMjI0RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BdGlsZGU+PHRkPiA8Y29kZT5BdGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDAwQzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dgzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BdGlsZGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5BdGlsZGU8L2NvZGU+IDx0ZD4gVSswMDBDMyA8dGQ+IDxzcGFuPsODPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWF0aWxkZT48dGQ+IDxjb2RlPmF0aWxkZTs8L2NvZGU+IDx0ZD4gVSswMDBFMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWF0aWxkZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmF0aWxkZTwvY29kZT4gPHRkPiBVKzAwMEUzIDx0ZD4gPHNwYW4+w6M8L3NwYW4+IDx0ciBpZD1lbnRpdHktQXVtbD48dGQ+IDxjb2RlPkF1bWw7PC9jb2RlPiA8dGQ+IFUrMDAwQzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1BdW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+QXVtbDwvY29kZT4gPHRkPiBVKzAwMEM0IDx0ZD4gPHNwYW4+w4Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktYXVtbD48dGQ+IDxjb2RlPmF1bWw7PC9jb2RlPiA8dGQ+IFUrMDAwRTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hdW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+YXVtbDwvY29kZT4gPHRkPiBVKzAwMEU0IDx0ZD4gPHNwYW4+w6Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktYXdjb25pbnQ+PHRkPiA8Y29kZT5hd2NvbmludDs8L2NvZGU+IDx0ZD4gVSswMjIzMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1hd2ludD48dGQ+IDxjb2RlPmF3aW50OzwvY29kZT4gPHRkPiBVKzAyQTExIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qiRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJhY2tjb25nPjx0ZD4gPGNvZGU+YmFja2Nvbmc7PC9jb2RlPiA8dGQ+IFUrMDIyNEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYw8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmFja2Vwc2lsb24+PHRkPiA8Y29kZT5iYWNrZXBzaWxvbjs8L2NvZGU+IDx0ZD4gVSswMDNGNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJhY2twcmltZT48dGQ+IDxjb2RlPmJhY2twcmltZTs8L2NvZGU+IDx0ZD4gVSswMjAzNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1iYWNrc2ltPjx0ZD4gPGNvZGU+YmFja3NpbTs8L2NvZGU+IDx0ZD4gVSswMjIzRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1iYWNrc2ltZXE+PHRkPiA8Y29kZT5iYWNrc2ltZXE7PC9jb2RlPiA8dGQ+IFUrMDIyQ0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii408L3NwYW4+IDx0ciBpZD1lbnRpdHktQmFja3NsYXNoPjx0ZD4gPGNvZGU+QmFja3NsYXNoOzwvY29kZT4gPHRkPiBVKzAyMjE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUJhcnY+PHRkPiA8Y29kZT5CYXJ2OzwvY29kZT4gPHRkPiBVKzAyQUU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qunPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJhcnZlZT48dGQ+IDxjb2RlPmJhcnZlZTs8L2NvZGU+IDx0ZD4gVSswMjJCRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1CYXJ3ZWQ+PHRkPiA8Y29kZT5CYXJ3ZWQ7PC9jb2RlPiA8dGQ+IFUrMDIzMDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijIY8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmFyd2VkPjx0ZD4gPGNvZGU+YmFyd2VkOzwvY29kZT4gPHRkPiBVKzAyMzA1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oyFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJhcndlZGdlPjx0ZD4gPGNvZGU+YmFyd2VkZ2U7PC9jb2RlPiA8dGQ+IFUrMDIzMDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijIU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmJyaz48dGQ+IDxjb2RlPmJicms7PC9jb2RlPiA8dGQ+IFUrMDIzQjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijrU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmJya3Ricms+PHRkPiA8Y29kZT5iYnJrdGJyazs8L2NvZGU+IDx0ZD4gVSswMjNCNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKOtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1iY29uZz48dGQ+IDxjb2RlPmJjb25nOzwvY29kZT4gPHRkPiBVKzAyMjRDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUJjeT48dGQ+IDxjb2RlPkJjeTs8L2NvZGU+IDx0ZD4gVSswMDQxMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJjeT48dGQ+IDxjb2RlPmJjeTs8L2NvZGU+IDx0ZD4gVSswMDQzMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJkcXVvPjx0ZD4gPGNvZGU+YmRxdW87PC9jb2RlPiA8dGQ+IFUrMDIwMUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igJ48L3NwYW4+IDx0ciBpZD1lbnRpdHktYmVjYXVzPjx0ZD4gPGNvZGU+YmVjYXVzOzwvY29kZT4gPHRkPiBVKzAyMjM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oi1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUJlY2F1c2U+PHRkPiA8Y29kZT5CZWNhdXNlOzwvY29kZT4gPHRkPiBVKzAyMjM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oi1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJlY2F1c2U+PHRkPiA8Y29kZT5iZWNhdXNlOzwvY29kZT4gPHRkPiBVKzAyMjM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oi1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJlbXB0eXY+PHRkPiA8Y29kZT5iZW1wdHl2OzwvY29kZT4gPHRkPiBVKzAyOUIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qawPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJlcHNpPjx0ZD4gPGNvZGU+YmVwc2k7PC9jb2RlPiA8dGQ+IFUrMDAzRjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ptjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1iZXJub3U+PHRkPiA8Y29kZT5iZXJub3U7PC9jb2RlPiA8dGQ+IFUrMDIxMkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihKw8L3NwYW4+IDx0ciBpZD1lbnRpdHktQmVybm91bGxpcz48dGQ+IDxjb2RlPkJlcm5vdWxsaXM7PC9jb2RlPiA8dGQ+IFUrMDIxMkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihKw8L3NwYW4+IDx0ciBpZD1lbnRpdHktQmV0YT48dGQ+IDxjb2RlPkJldGE7PC9jb2RlPiA8dGQ+IFUrMDAzOTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Okjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1iZXRhPjx0ZD4gPGNvZGU+YmV0YTs8L2NvZGU+IDx0ZD4gVSswMDNCMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6yPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJldGg+PHRkPiA8Y29kZT5iZXRoOzwvY29kZT4gPHRkPiBVKzAyMTM2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oS2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJldHdlZW4+PHRkPiA8Y29kZT5iZXR3ZWVuOzwvY29kZT4gPHRkPiBVKzAyMjZDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUJmcj48dGQ+IDxjb2RlPkJmcjs8L2NvZGU+IDx0ZD4gVSsxRDUwNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlIU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmZyPjx0ZD4gPGNvZGU+YmZyOzwvY29kZT4gPHRkPiBVKzFENTFGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Unzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1iaWdjYXA+PHRkPiA8Y29kZT5iaWdjYXA7PC9jb2RlPiA8dGQ+IFUrMDIyQzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4I8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmlnY2lyYz48dGQ+IDxjb2RlPmJpZ2NpcmM7PC9jb2RlPiA8dGQ+IFUrMDI1RUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7il688L3NwYW4+IDx0ciBpZD1lbnRpdHktYmlnY3VwPjx0ZD4gPGNvZGU+YmlnY3VwOzwvY29kZT4gPHRkPiBVKzAyMkMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJpZ29kb3Q+PHRkPiA8Y29kZT5iaWdvZG90OzwvY29kZT4gPHRkPiBVKzAyQTAwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qiAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJpZ29wbHVzPjx0ZD4gPGNvZGU+Ymlnb3BsdXM7PC9jb2RlPiA8dGQ+IFUrMDJBMDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqIE8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmlnb3RpbWVzPjx0ZD4gPGNvZGU+Ymlnb3RpbWVzOzwvY29kZT4gPHRkPiBVKzAyQTAyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qiCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJpZ3NxY3VwPjx0ZD4gPGNvZGU+Ymlnc3FjdXA7PC9jb2RlPiA8dGQ+IFUrMDJBMDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqIY8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmlnc3Rhcj48dGQ+IDxjb2RlPmJpZ3N0YXI7PC9jb2RlPiA8dGQ+IFUrMDI2MDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7imIU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmlndHJpYW5nbGVkb3duPjx0ZD4gPGNvZGU+YmlndHJpYW5nbGVkb3duOzwvY29kZT4gPHRkPiBVKzAyNUJEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pa9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJpZ3RyaWFuZ2xldXA+PHRkPiA8Y29kZT5iaWd0cmlhbmdsZXVwOzwvY29kZT4gPHRkPiBVKzAyNUIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pazPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJpZ3VwbHVzPjx0ZD4gPGNvZGU+YmlndXBsdXM7PC9jb2RlPiA8dGQ+IFUrMDJBMDQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqIQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmlndmVlPjx0ZD4gPGNvZGU+YmlndmVlOzwvY29kZT4gPHRkPiBVKzAyMkMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouBPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJpZ3dlZGdlPjx0ZD4gPGNvZGU+Ymlnd2VkZ2U7PC9jb2RlPiA8dGQ+IFUrMDIyQzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4A8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmthcm93Pjx0ZD4gPGNvZGU+Ymthcm93OzwvY29kZT4gPHRkPiBVKzAyOTBEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJsYWNrbG96ZW5nZT48dGQ+IDxjb2RlPmJsYWNrbG96ZW5nZTs8L2NvZGU+IDx0ZD4gVSswMjlFQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKnqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ibGFja3NxdWFyZT48dGQ+IDxjb2RlPmJsYWNrc3F1YXJlOzwvY29kZT4gPHRkPiBVKzAyNUFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4paqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJsYWNrdHJpYW5nbGU+PHRkPiA8Y29kZT5ibGFja3RyaWFuZ2xlOzwvY29kZT4gPHRkPiBVKzAyNUI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pa0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJsYWNrdHJpYW5nbGVkb3duPjx0ZD4gPGNvZGU+YmxhY2t0cmlhbmdsZWRvd247PC9jb2RlPiA8dGQ+IFUrMDI1QkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilr48L3NwYW4+IDx0ciBpZD1lbnRpdHktYmxhY2t0cmlhbmdsZWxlZnQ+PHRkPiA8Y29kZT5ibGFja3RyaWFuZ2xlbGVmdDs8L2NvZGU+IDx0ZD4gVSswMjVDMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKXgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ibGFja3RyaWFuZ2xlcmlnaHQ+PHRkPiA8Y29kZT5ibGFja3RyaWFuZ2xlcmlnaHQ7PC9jb2RlPiA8dGQ+IFUrMDI1QjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilrg8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmxhbms+PHRkPiA8Y29kZT5ibGFuazs8L2NvZGU+IDx0ZD4gVSswMjQyMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKQozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ibGsxMj48dGQ+IDxjb2RlPmJsazEyOzwvY29kZT4gPHRkPiBVKzAyNTkyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4paSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJsazE0Pjx0ZD4gPGNvZGU+YmxrMTQ7PC9jb2RlPiA8dGQ+IFUrMDI1OTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilpE8L3NwYW4+IDx0ciBpZD1lbnRpdHktYmxrMzQ+PHRkPiA8Y29kZT5ibGszNDs8L2NvZGU+IDx0ZD4gVSswMjU5MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ibG9jaz48dGQ+IDxjb2RlPmJsb2NrOzwvY29kZT4gPHRkPiBVKzAyNTg4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4paIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJuZT48dGQ+IDxjb2RlPmJuZTs8L2NvZGU+IDx0ZD4gVSswMDAzRCBVKzAyMEU1IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj494oOlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJuZXF1aXY+PHRkPiA8Y29kZT5ibmVxdWl2OzwvY29kZT4gPHRkPiBVKzAyMjYxIFUrMDIwRTUgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJoeKDpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1iTm90Pjx0ZD4gPGNvZGU+Yk5vdDs8L2NvZGU+IDx0ZD4gVSswMkFFRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ibm90Pjx0ZD4gPGNvZGU+Ym5vdDs8L2NvZGU+IDx0ZD4gVSswMjMxMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Cb3BmPjx0ZD4gPGNvZGU+Qm9wZjs8L2NvZGU+IDx0ZD4gVSsxRDUzOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlLk8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm9wZj48dGQ+IDxjb2RlPmJvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJvdD48dGQ+IDxjb2RlPmJvdDs8L2NvZGU+IDx0ZD4gVSswMjJBNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3R0b20+PHRkPiA8Y29kZT5ib3R0b207PC9jb2RlPiA8dGQ+IFUrMDIyQTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiqU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm93dGllPjx0ZD4gPGNvZGU+Ym93dGllOzwvY29kZT4gPHRkPiBVKzAyMkM4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveGJveD48dGQ+IDxjb2RlPmJveGJveDs8L2NvZGU+IDx0ZD4gVSswMjlDOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKniTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hETD48dGQ+IDxjb2RlPmJveERMOzwvY29kZT4gPHRkPiBVKzAyNTU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveERsPjx0ZD4gPGNvZGU+Ym94RGw7PC9jb2RlPiA8dGQ+IFUrMDI1NTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilZY8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94ZEw+PHRkPiA8Y29kZT5ib3hkTDs8L2NvZGU+IDx0ZD4gVSswMjU1NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVlTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hkbD48dGQ+IDxjb2RlPmJveGRsOzwvY29kZT4gPHRkPiBVKzAyNTEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pSQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveERSPjx0ZD4gPGNvZGU+Ym94RFI7PC9jb2RlPiA8dGQ+IFUrMDI1NTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilZQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94RHI+PHRkPiA8Y29kZT5ib3hEcjs8L2NvZGU+IDx0ZD4gVSswMjU1MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hkUj48dGQ+IDxjb2RlPmJveGRSOzwvY29kZT4gPHRkPiBVKzAyNTUyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveGRyPjx0ZD4gPGNvZGU+Ym94ZHI7PC9jb2RlPiA8dGQ+IFUrMDI1MEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilIw8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94SD48dGQ+IDxjb2RlPmJveEg7PC9jb2RlPiA8dGQ+IFUrMDI1NTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilZA8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94aD48dGQ+IDxjb2RlPmJveGg7PC9jb2RlPiA8dGQ+IFUrMDI1MDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94SEQ+PHRkPiA8Y29kZT5ib3hIRDs8L2NvZGU+IDx0ZD4gVSswMjU2NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hIZD48dGQ+IDxjb2RlPmJveEhkOzwvY29kZT4gPHRkPiBVKzAyNTY0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWkPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveGhEPjx0ZD4gPGNvZGU+Ym94aEQ7PC9jb2RlPiA8dGQ+IFUrMDI1NjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilaU8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94aGQ+PHRkPiA8Y29kZT5ib3hoZDs8L2NvZGU+IDx0ZD4gVSswMjUyQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKUrDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hIVT48dGQ+IDxjb2RlPmJveEhVOzwvY29kZT4gPHRkPiBVKzAyNTY5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWpPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveEh1Pjx0ZD4gPGNvZGU+Ym94SHU7PC9jb2RlPiA8dGQ+IFUrMDI1NjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilac8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94aFU+PHRkPiA8Y29kZT5ib3hoVTs8L2NvZGU+IDx0ZD4gVSswMjU2OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hodT48dGQ+IDxjb2RlPmJveGh1OzwvY29kZT4gPHRkPiBVKzAyNTM0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pS0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveG1pbnVzPjx0ZD4gPGNvZGU+Ym94bWludXM7PC9jb2RlPiA8dGQ+IFUrMDIyOUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iip88L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94cGx1cz48dGQ+IDxjb2RlPmJveHBsdXM7PC9jb2RlPiA8dGQ+IFUrMDIyOUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iip48L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94dGltZXM+PHRkPiA8Y29kZT5ib3h0aW1lczs8L2NvZGU+IDx0ZD4gVSswMjJBMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hVTD48dGQ+IDxjb2RlPmJveFVMOzwvY29kZT4gPHRkPiBVKzAyNTVEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWdPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveFVsPjx0ZD4gPGNvZGU+Ym94VWw7PC9jb2RlPiA8dGQ+IFUrMDI1NUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilZw8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94dUw+PHRkPiA8Y29kZT5ib3h1TDs8L2NvZGU+IDx0ZD4gVSswMjU1QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3h1bD48dGQ+IDxjb2RlPmJveHVsOzwvY29kZT4gPHRkPiBVKzAyNTE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pSYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveFVSPjx0ZD4gPGNvZGU+Ym94VVI7PC9jb2RlPiA8dGQ+IFUrMDI1NUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilZo8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94VXI+PHRkPiA8Y29kZT5ib3hVcjs8L2NvZGU+IDx0ZD4gVSswMjU1OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3h1Uj48dGQ+IDxjb2RlPmJveHVSOzwvY29kZT4gPHRkPiBVKzAyNTU4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveHVyPjx0ZD4gPGNvZGU+Ym94dXI7PC9jb2RlPiA8dGQ+IFUrMDI1MTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilJQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94Vj48dGQ+IDxjb2RlPmJveFY7PC9jb2RlPiA8dGQ+IFUrMDI1NTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilZE8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94dj48dGQ+IDxjb2RlPmJveHY7PC9jb2RlPiA8dGQ+IFUrMDI1MDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilII8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94Vkg+PHRkPiA8Y29kZT5ib3hWSDs8L2NvZGU+IDx0ZD4gVSswMjU2QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVrDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hWaD48dGQ+IDxjb2RlPmJveFZoOzwvY29kZT4gPHRkPiBVKzAyNTZCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWrPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveHZIPjx0ZD4gPGNvZGU+Ym94dkg7PC9jb2RlPiA8dGQ+IFUrMDI1NkEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilao8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94dmg+PHRkPiA8Y29kZT5ib3h2aDs8L2NvZGU+IDx0ZD4gVSswMjUzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKUvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3hWTD48dGQ+IDxjb2RlPmJveFZMOzwvY29kZT4gPHRkPiBVKzAyNTYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveFZsPjx0ZD4gPGNvZGU+Ym94Vmw7PC9jb2RlPiA8dGQ+IFUrMDI1NjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilaI8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94dkw+PHRkPiA8Y29kZT5ib3h2TDs8L2NvZGU+IDx0ZD4gVSswMjU2MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVoTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3h2bD48dGQ+IDxjb2RlPmJveHZsOzwvY29kZT4gPHRkPiBVKzAyNTI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pSkPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveFZSPjx0ZD4gPGNvZGU+Ym94VlI7PC9jb2RlPiA8dGQ+IFUrMDI1NjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilaA8L3NwYW4+IDx0ciBpZD1lbnRpdHktYm94VnI+PHRkPiA8Y29kZT5ib3hWcjs8L2NvZGU+IDx0ZD4gVSswMjU1RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKVnzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ib3h2Uj48dGQ+IDxjb2RlPmJveHZSOzwvY29kZT4gPHRkPiBVKzAyNTVFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pWePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJveHZyPjx0ZD4gPGNvZGU+Ym94dnI7PC9jb2RlPiA8dGQ+IFUrMDI1MUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilJw8L3NwYW4+IDx0ciBpZD1lbnRpdHktYnByaW1lPjx0ZD4gPGNvZGU+YnByaW1lOzwvY29kZT4gPHRkPiBVKzAyMDM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oC1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUJyZXZlPjx0ZD4gPGNvZGU+QnJldmU7PC9jb2RlPiA8dGQ+IFUrMDAyRDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7LmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1icmV2ZT48dGQ+IDxjb2RlPmJyZXZlOzwvY29kZT4gPHRkPiBVKzAwMkQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y5g8L3NwYW4+IDx0ciBpZD1lbnRpdHktYnJ2YmFyPjx0ZD4gPGNvZGU+YnJ2YmFyOzwvY29kZT4gPHRkPiBVKzAwMEE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wqY8L3NwYW4+IDx0ciBpZD1lbnRpdHktYnJ2YmFyLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+YnJ2YmFyPC9jb2RlPiA8dGQ+IFUrMDAwQTYgPHRkPiA8c3Bhbj7Cpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Cc2NyPjx0ZD4gPGNvZGU+QnNjcjs8L2NvZGU+IDx0ZD4gVSswMjEyQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKErDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ic2NyPjx0ZD4gPGNvZGU+YnNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRCNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdkrc8L3NwYW4+IDx0ciBpZD1lbnRpdHktYnNlbWk+PHRkPiA8Y29kZT5ic2VtaTs8L2NvZGU+IDx0ZD4gVSswMjA0RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKBjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ic2ltPjx0ZD4gPGNvZGU+YnNpbTs8L2NvZGU+IDx0ZD4gVSswMjIzRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ic2ltZT48dGQ+IDxjb2RlPmJzaW1lOzwvY29kZT4gPHRkPiBVKzAyMkNEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJzb2w+PHRkPiA8Y29kZT5ic29sOzwvY29kZT4gPHRkPiBVKzAwMDVDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+XDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ic29sYj48dGQ+IDxjb2RlPmJzb2xiOzwvY29kZT4gPHRkPiBVKzAyOUM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qeFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJzb2xoc3ViPjx0ZD4gPGNvZGU+YnNvbGhzdWI7PC9jb2RlPiA8dGQ+IFUrMDI3QzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in4g8L3NwYW4+IDx0ciBpZD1lbnRpdHktYnVsbD48dGQ+IDxjb2RlPmJ1bGw7PC9jb2RlPiA8dGQ+IFUrMDIwMjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igKI8L3NwYW4+IDx0ciBpZD1lbnRpdHktYnVsbGV0Pjx0ZD4gPGNvZGU+YnVsbGV0OzwvY29kZT4gPHRkPiBVKzAyMDIyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJ1bXA+PHRkPiA8Y29kZT5idW1wOzwvY29kZT4gPHRkPiBVKzAyMjRFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWJ1bXBFPjx0ZD4gPGNvZGU+YnVtcEU7PC9jb2RlPiA8dGQ+IFUrMDJBQUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqq48L3NwYW4+IDx0ciBpZD1lbnRpdHktYnVtcGU+PHRkPiA8Y29kZT5idW1wZTs8L2NvZGU+IDx0ZD4gVSswMjI0RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1CdW1wZXE+PHRkPiA8Y29kZT5CdW1wZXE7PC9jb2RlPiA8dGQ+IFUrMDIyNEUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiY48L3NwYW4+IDx0ciBpZD1lbnRpdHktYnVtcGVxPjx0ZD4gPGNvZGU+YnVtcGVxOzwvY29kZT4gPHRkPiBVKzAyMjRGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omPPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUNhY3V0ZT48dGQ+IDxjb2RlPkNhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDEwNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNhY3V0ZT48dGQ+IDxjb2RlPmNhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDEwNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUNhcD48dGQ+IDxjb2RlPkNhcDs8L2NvZGU+IDx0ZD4gVSswMjJEMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jYXA+PHRkPiA8Y29kZT5jYXA7PC9jb2RlPiA8dGQ+IFUrMDIyMjkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKk8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2FwYW5kPjx0ZD4gPGNvZGU+Y2FwYW5kOzwvY29kZT4gPHRkPiBVKzAyQTQ0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNhcGJyY3VwPjx0ZD4gPGNvZGU+Y2FwYnJjdXA7PC9jb2RlPiA8dGQ+IFUrMDJBNDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqYk8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2FwY2FwPjx0ZD4gPGNvZGU+Y2FwY2FwOzwvY29kZT4gPHRkPiBVKzAyQTRCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNhcGN1cD48dGQ+IDxjb2RlPmNhcGN1cDs8L2NvZGU+IDx0ZD4gVSswMkE0NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKphzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jYXBkb3Q+PHRkPiA8Y29kZT5jYXBkb3Q7PC9jb2RlPiA8dGQ+IFUrMDJBNDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqYA8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2FwaXRhbERpZmZlcmVudGlhbEQ+PHRkPiA8Y29kZT5DYXBpdGFsRGlmZmVyZW50aWFsRDs8L2NvZGU+IDx0ZD4gVSswMjE0NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jYXBzPjx0ZD4gPGNvZGU+Y2Fwczs8L2NvZGU+IDx0ZD4gVSswMjIyOSBVKzBGRTAwIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiKnvuIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2FyZXQ+PHRkPiA8Y29kZT5jYXJldDs8L2NvZGU+IDx0ZD4gVSswMjA0MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKBgTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jYXJvbj48dGQ+IDxjb2RlPmNhcm9uOzwvY29kZT4gPHRkPiBVKzAwMkM3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y4c8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2F5bGV5cz48dGQ+IDxjb2RlPkNheWxleXM7PC9jb2RlPiA8dGQ+IFUrMDIxMkQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihK08L3NwYW4+IDx0ciBpZD1lbnRpdHktY2NhcHM+PHRkPiA8Y29kZT5jY2Fwczs8L2NvZGU+IDx0ZD4gVSswMkE0RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DY2Fyb24+PHRkPiA8Y29kZT5DY2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxMEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EjDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jY2Fyb24+PHRkPiA8Y29kZT5jY2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxMEQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DY2VkaWw+PHRkPiA8Y29kZT5DY2VkaWw7PC9jb2RlPiA8dGQ+IFUrMDAwQzcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DY2VkaWwtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5DY2VkaWw8L2NvZGU+IDx0ZD4gVSswMDBDNyA8dGQ+IDxzcGFuPsOHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNjZWRpbD48dGQ+IDxjb2RlPmNjZWRpbDs8L2NvZGU+IDx0ZD4gVSswMDBFNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOnPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNjZWRpbC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmNjZWRpbDwvY29kZT4gPHRkPiBVKzAwMEU3IDx0ZD4gPHNwYW4+w6c8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2NpcmM+PHRkPiA8Y29kZT5DY2lyYzs8L2NvZGU+IDx0ZD4gVSswMDEwOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNjaXJjPjx0ZD4gPGNvZGU+Y2NpcmM7PC9jb2RlPiA8dGQ+IFUrMDAxMDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DY29uaW50Pjx0ZD4gPGNvZGU+Q2NvbmludDs8L2NvZGU+IDx0ZD4gVSswMjIzMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jY3Vwcz48dGQ+IDxjb2RlPmNjdXBzOzwvY29kZT4gPHRkPiBVKzAyQTRDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNjdXBzc20+PHRkPiA8Y29kZT5jY3Vwc3NtOzwvY29kZT4gPHRkPiBVKzAyQTUwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUNkb3Q+PHRkPiA8Y29kZT5DZG90OzwvY29kZT4gPHRkPiBVKzAwMTBBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xIo8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2RvdD48dGQ+IDxjb2RlPmNkb3Q7PC9jb2RlPiA8dGQ+IFUrMDAxMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Eizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jZWRpbD48dGQ+IDxjb2RlPmNlZGlsOzwvY29kZT4gPHRkPiBVKzAwMEI4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrg8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2VkaWwtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5jZWRpbDwvY29kZT4gPHRkPiBVKzAwMEI4IDx0ZD4gPHNwYW4+wrg8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2VkaWxsYT48dGQ+IDxjb2RlPkNlZGlsbGE7PC9jb2RlPiA8dGQ+IFUrMDAwQjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7CuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jZW1wdHl2Pjx0ZD4gPGNvZGU+Y2VtcHR5djs8L2NvZGU+IDx0ZD4gVSswMjlCMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmsjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jZW50Pjx0ZD4gPGNvZGU+Y2VudDs8L2NvZGU+IDx0ZD4gVSswMDBBMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNlbnQtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5jZW50PC9jb2RlPiA8dGQ+IFUrMDAwQTIgPHRkPiA8c3Bhbj7Cojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DZW50ZXJEb3Q+PHRkPiA8Y29kZT5DZW50ZXJEb3Q7PC9jb2RlPiA8dGQ+IFUrMDAwQjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ctzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jZW50ZXJkb3Q+PHRkPiA8Y29kZT5jZW50ZXJkb3Q7PC9jb2RlPiA8dGQ+IFUrMDAwQjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ctzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DZnI+PHRkPiA8Y29kZT5DZnI7PC9jb2RlPiA8dGQ+IFUrMDIxMkQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihK08L3NwYW4+IDx0ciBpZD1lbnRpdHktY2ZyPjx0ZD4gPGNvZGU+Y2ZyOzwvY29kZT4gPHRkPiBVKzFENTIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DSGN5Pjx0ZD4gPGNvZGU+Q0hjeTs8L2NvZGU+IDx0ZD4gVSswMDQyNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCnPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNoY3k+PHRkPiA8Y29kZT5jaGN5OzwvY29kZT4gPHRkPiBVKzAwNDQ3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Yc8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2hlY2s+PHRkPiA8Y29kZT5jaGVjazs8L2NvZGU+IDx0ZD4gVSswMjcxMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKckzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaGVja21hcms+PHRkPiA8Y29kZT5jaGVja21hcms7PC9jb2RlPiA8dGQ+IFUrMDI3MTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7inJM8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2hpPjx0ZD4gPGNvZGU+Q2hpOzwvY29kZT4gPHRkPiBVKzAwM0E3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zqc8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2hpPjx0ZD4gPGNvZGU+Y2hpOzwvY29kZT4gPHRkPiBVKzAwM0M3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z4c8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2lyPjx0ZD4gPGNvZGU+Y2lyOzwvY29kZT4gPHRkPiBVKzAyNUNCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4peLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNpcmM+PHRkPiA8Y29kZT5jaXJjOzwvY29kZT4gPHRkPiBVKzAwMkM2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y4Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktY2lyY2VxPjx0ZD4gPGNvZGU+Y2lyY2VxOzwvY29kZT4gPHRkPiBVKzAyMjU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNpcmNsZWFycm93bGVmdD48dGQ+IDxjb2RlPmNpcmNsZWFycm93bGVmdDs8L2NvZGU+IDx0ZD4gVSswMjFCQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGujwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJjbGVhcnJvd3JpZ2h0Pjx0ZD4gPGNvZGU+Y2lyY2xlYXJyb3dyaWdodDs8L2NvZGU+IDx0ZD4gVSswMjFCQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGuzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJjbGVkYXN0Pjx0ZD4gPGNvZGU+Y2lyY2xlZGFzdDs8L2NvZGU+IDx0ZD4gVSswMjI5QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJjbGVkY2lyYz48dGQ+IDxjb2RlPmNpcmNsZWRjaXJjOzwvY29kZT4gPHRkPiBVKzAyMjlBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNpcmNsZWRkYXNoPjx0ZD4gPGNvZGU+Y2lyY2xlZGRhc2g7PC9jb2RlPiA8dGQ+IFUrMDIyOUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iip08L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2lyY2xlRG90Pjx0ZD4gPGNvZGU+Q2lyY2xlRG90OzwvY29kZT4gPHRkPiBVKzAyMjk5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNpcmNsZWRSPjx0ZD4gPGNvZGU+Y2lyY2xlZFI7PC9jb2RlPiA8dGQ+IFUrMDAwQUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Crjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJjbGVkUz48dGQ+IDxjb2RlPmNpcmNsZWRTOzwvY29kZT4gPHRkPiBVKzAyNEM4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pOIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUNpcmNsZU1pbnVzPjx0ZD4gPGNvZGU+Q2lyY2xlTWludXM7PC9jb2RlPiA8dGQ+IFUrMDIyOTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iipY8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2lyY2xlUGx1cz48dGQ+IDxjb2RlPkNpcmNsZVBsdXM7PC9jb2RlPiA8dGQ+IFUrMDIyOTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iipU8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2lyY2xlVGltZXM+PHRkPiA8Y29kZT5DaXJjbGVUaW1lczs8L2NvZGU+IDx0ZD4gVSswMjI5NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKlzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJFPjx0ZD4gPGNvZGU+Y2lyRTs8L2NvZGU+IDx0ZD4gVSswMjlDMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKngzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJlPjx0ZD4gPGNvZGU+Y2lyZTs8L2NvZGU+IDx0ZD4gVSswMjI1NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJlzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJmbmludD48dGQ+IDxjb2RlPmNpcmZuaW50OzwvY29kZT4gPHRkPiBVKzAyQTEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qiQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNpcm1pZD48dGQ+IDxjb2RlPmNpcm1pZDs8L2NvZGU+IDx0ZD4gVSswMkFFRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrrzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jaXJzY2lyPjx0ZD4gPGNvZGU+Y2lyc2Npcjs8L2NvZGU+IDx0ZD4gVSswMjlDMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKngjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DbG9ja3dpc2VDb250b3VySW50ZWdyYWw+PHRkPiA8Y29kZT5DbG9ja3dpc2VDb250b3VySW50ZWdyYWw7PC9jb2RlPiA8dGQ+IFUrMDIyMzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiLI8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ2xvc2VDdXJseURvdWJsZVF1b3RlPjx0ZD4gPGNvZGU+Q2xvc2VDdXJseURvdWJsZVF1b3RlOzwvY29kZT4gPHRkPiBVKzAyMDFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCdPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUNsb3NlQ3VybHlRdW90ZT48dGQ+IDxjb2RlPkNsb3NlQ3VybHlRdW90ZTs8L2NvZGU+IDx0ZD4gVSswMjAxOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jbHVicz48dGQ+IDxjb2RlPmNsdWJzOzwvY29kZT4gPHRkPiBVKzAyNjYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pmjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNsdWJzdWl0Pjx0ZD4gPGNvZGU+Y2x1YnN1aXQ7PC9jb2RlPiA8dGQ+IFUrMDI2NjMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7imaM8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ29sb24+PHRkPiA8Y29kZT5Db2xvbjs8L2NvZGU+IDx0ZD4gVSswMjIzNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKItzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jb2xvbj48dGQ+IDxjb2RlPmNvbG9uOzwvY29kZT4gPHRkPiBVKzAwMDNBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Ojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Db2xvbmU+PHRkPiA8Y29kZT5Db2xvbmU7PC9jb2RlPiA8dGQ+IFUrMDJBNzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktY29sb25lPjx0ZD4gPGNvZGU+Y29sb25lOzwvY29kZT4gPHRkPiBVKzAyMjU0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNvbG9uZXE+PHRkPiA8Y29kZT5jb2xvbmVxOzwvY29kZT4gPHRkPiBVKzAyMjU0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNvbW1hPjx0ZD4gPGNvZGU+Y29tbWE7PC9jb2RlPiA8dGQ+IFUrMDAwMkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4sPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNvbW1hdD48dGQ+IDxjb2RlPmNvbW1hdDs8L2NvZGU+IDx0ZD4gVSswMDA0MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPkA8L3NwYW4+IDx0ciBpZD1lbnRpdHktY29tcD48dGQ+IDxjb2RlPmNvbXA7PC9jb2RlPiA8dGQ+IFUrMDIyMDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIE8L3NwYW4+IDx0ciBpZD1lbnRpdHktY29tcGZuPjx0ZD4gPGNvZGU+Y29tcGZuOzwvY29kZT4gPHRkPiBVKzAyMjE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNvbXBsZW1lbnQ+PHRkPiA8Y29kZT5jb21wbGVtZW50OzwvY29kZT4gPHRkPiBVKzAyMjAxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiBPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNvbXBsZXhlcz48dGQ+IDxjb2RlPmNvbXBsZXhlczs8L2NvZGU+IDx0ZD4gVSswMjEwMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jb25nPjx0ZD4gPGNvZGU+Y29uZzs8L2NvZGU+IDx0ZD4gVSswMjI0NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jb25nZG90Pjx0ZD4gPGNvZGU+Y29uZ2RvdDs8L2NvZGU+IDx0ZD4gVSswMkE2RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKprTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Db25ncnVlbnQ+PHRkPiA8Y29kZT5Db25ncnVlbnQ7PC9jb2RlPiA8dGQ+IFUrMDIyNjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiaE8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ29uaW50Pjx0ZD4gPGNvZGU+Q29uaW50OzwvY29kZT4gPHRkPiBVKzAyMjJGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oivPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNvbmludD48dGQ+IDxjb2RlPmNvbmludDs8L2NvZGU+IDx0ZD4gVSswMjIyRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Db250b3VySW50ZWdyYWw+PHRkPiA8Y29kZT5Db250b3VySW50ZWdyYWw7PC9jb2RlPiA8dGQ+IFUrMDIyMkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiK48L3NwYW4+IDx0ciBpZD1lbnRpdHktQ29wZj48dGQ+IDxjb2RlPkNvcGY7PC9jb2RlPiA8dGQ+IFUrMDIxMDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihII8L3NwYW4+IDx0ciBpZD1lbnRpdHktY29wZj48dGQ+IDxjb2RlPmNvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNvcHJvZD48dGQ+IDxjb2RlPmNvcHJvZDs8L2NvZGU+IDx0ZD4gVSswMjIxMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Db3Byb2R1Y3Q+PHRkPiA8Y29kZT5Db3Byb2R1Y3Q7PC9jb2RlPiA8dGQ+IFUrMDIyMTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJA8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ09QWT48dGQ+IDxjb2RlPkNPUFk7PC9jb2RlPiA8dGQ+IFUrMDAwQTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7CqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DT1BZLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+Q09QWTwvY29kZT4gPHRkPiBVKzAwMEE5IDx0ZD4gPHNwYW4+wqk8L3NwYW4+IDx0ciBpZD1lbnRpdHktY29weT48dGQ+IDxjb2RlPmNvcHk7PC9jb2RlPiA8dGQ+IFUrMDAwQTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7CqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jb3B5LWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+Y29weTwvY29kZT4gPHRkPiBVKzAwMEE5IDx0ZD4gPHNwYW4+wqk8L3NwYW4+IDx0ciBpZD1lbnRpdHktY29weXNyPjx0ZD4gPGNvZGU+Y29weXNyOzwvY29kZT4gPHRkPiBVKzAyMTE3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUNvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWw+PHRkPiA8Y29kZT5Db3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsOzwvY29kZT4gPHRkPiBVKzAyMjMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oizPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWNyYXJyPjx0ZD4gPGNvZGU+Y3JhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxQjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihrU8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ3Jvc3M+PHRkPiA8Y29kZT5Dcm9zczs8L2NvZGU+IDx0ZD4gVSswMkEyRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKorzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jcm9zcz48dGQ+IDxjb2RlPmNyb3NzOzwvY29kZT4gPHRkPiBVKzAyNzE3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pyXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUNzY3I+PHRkPiA8Y29kZT5Dc2NyOzwvY29kZT4gPHRkPiBVKzFENDlFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Snjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jc2NyPjx0ZD4gPGNvZGU+Y3Njcjs8L2NvZGU+IDx0ZD4gVSsxRDRCOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdkrg8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3N1Yj48dGQ+IDxjb2RlPmNzdWI7PC9jb2RlPiA8dGQ+IFUrMDJBQ0YgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq488L3NwYW4+IDx0ciBpZD1lbnRpdHktY3N1YmU+PHRkPiA8Y29kZT5jc3ViZTs8L2NvZGU+IDx0ZD4gVSswMkFEMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jc3VwPjx0ZD4gPGNvZGU+Y3N1cDs8L2NvZGU+IDx0ZD4gVSswMkFEMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jc3VwZT48dGQ+IDxjb2RlPmNzdXBlOzwvY29kZT4gPHRkPiBVKzAyQUQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN0ZG90Pjx0ZD4gPGNvZGU+Y3Rkb3Q7PC9jb2RlPiA8dGQ+IFUrMDIyRUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii688L3NwYW4+IDx0ciBpZD1lbnRpdHktY3VkYXJybD48dGQ+IDxjb2RlPmN1ZGFycmw7PC9jb2RlPiA8dGQ+IFUrMDI5MzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3VkYXJycj48dGQ+IDxjb2RlPmN1ZGFycnI7PC9jb2RlPiA8dGQ+IFUrMDI5MzUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipLU8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3VlcHI+PHRkPiA8Y29kZT5jdWVwcjs8L2NvZGU+IDx0ZD4gVSswMjJERSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLnjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdWVzYz48dGQ+IDxjb2RlPmN1ZXNjOzwvY29kZT4gPHRkPiBVKzAyMkRGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oufPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1bGFycj48dGQ+IDxjb2RlPmN1bGFycjs8L2NvZGU+IDx0ZD4gVSswMjFCNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdWxhcnJwPjx0ZD4gPGNvZGU+Y3VsYXJycDs8L2NvZGU+IDx0ZD4gVSswMjkzRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1DdXA+PHRkPiA8Y29kZT5DdXA7PC9jb2RlPiA8dGQ+IFUrMDIyRDMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5M8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3VwPjx0ZD4gPGNvZGU+Y3VwOzwvY29kZT4gPHRkPiBVKzAyMjJBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1cGJyY2FwPjx0ZD4gPGNvZGU+Y3VwYnJjYXA7PC9jb2RlPiA8dGQ+IFUrMDJBNDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqYg8L3NwYW4+IDx0ciBpZD1lbnRpdHktQ3VwQ2FwPjx0ZD4gPGNvZGU+Q3VwQ2FwOzwvY29kZT4gPHRkPiBVKzAyMjREIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1cGNhcD48dGQ+IDxjb2RlPmN1cGNhcDs8L2NvZGU+IDx0ZD4gVSswMkE0NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKphjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdXBjdXA+PHRkPiA8Y29kZT5jdXBjdXA7PC9jb2RlPiA8dGQ+IFUrMDJBNEEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqYo8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3VwZG90Pjx0ZD4gPGNvZGU+Y3VwZG90OzwvY29kZT4gPHRkPiBVKzAyMjhEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1cG9yPjx0ZD4gPGNvZGU+Y3Vwb3I7PC9jb2RlPiA8dGQ+IFUrMDJBNDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqYU8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3Vwcz48dGQ+IDxjb2RlPmN1cHM7PC9jb2RlPiA8dGQ+IFUrMDIyMkEgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oiq77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1cmFycj48dGQ+IDxjb2RlPmN1cmFycjs8L2NvZGU+IDx0ZD4gVSswMjFCNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdXJhcnJtPjx0ZD4gPGNvZGU+Y3VyYXJybTs8L2NvZGU+IDx0ZD4gVSswMjkzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdXJseWVxcHJlYz48dGQ+IDxjb2RlPmN1cmx5ZXFwcmVjOzwvY29kZT4gPHRkPiBVKzAyMkRFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1cmx5ZXFzdWNjPjx0ZD4gPGNvZGU+Y3VybHllcXN1Y2M7PC9jb2RlPiA8dGQ+IFUrMDIyREYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii588L3NwYW4+IDx0ciBpZD1lbnRpdHktY3VybHl2ZWU+PHRkPiA8Y29kZT5jdXJseXZlZTs8L2NvZGU+IDx0ZD4gVSswMjJDRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLjjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdXJseXdlZGdlPjx0ZD4gPGNvZGU+Y3VybHl3ZWRnZTs8L2NvZGU+IDx0ZD4gVSswMjJDRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdXJyZW4+PHRkPiA8Y29kZT5jdXJyZW47PC9jb2RlPiA8dGQ+IFUrMDAwQTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7CpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jdXJyZW4tbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5jdXJyZW48L2NvZGU+IDx0ZD4gVSswMDBBNCA8dGQ+IDxzcGFuPsKkPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1cnZlYXJyb3dsZWZ0Pjx0ZD4gPGNvZGU+Y3VydmVhcnJvd2xlZnQ7PC9jb2RlPiA8dGQ+IFUrMDIxQjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihrY8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3VydmVhcnJvd3JpZ2h0Pjx0ZD4gPGNvZGU+Y3VydmVhcnJvd3JpZ2h0OzwvY29kZT4gPHRkPiBVKzAyMUI3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oa3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN1dmVlPjx0ZD4gPGNvZGU+Y3V2ZWU7PC9jb2RlPiA8dGQ+IFUrMDIyQ0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii448L3NwYW4+IDx0ciBpZD1lbnRpdHktY3V3ZWQ+PHRkPiA8Y29kZT5jdXdlZDs8L2NvZGU+IDx0ZD4gVSswMjJDRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1jd2NvbmludD48dGQ+IDxjb2RlPmN3Y29uaW50OzwvY29kZT4gPHRkPiBVKzAyMjMyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiyPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWN3aW50Pjx0ZD4gPGNvZGU+Y3dpbnQ7PC9jb2RlPiA8dGQ+IFUrMDIyMzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiLE8L3NwYW4+IDx0ciBpZD1lbnRpdHktY3lsY3R5Pjx0ZD4gPGNvZGU+Y3lsY3R5OzwvY29kZT4gPHRkPiBVKzAyMzJEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oytPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURhZ2dlcj48dGQ+IDxjb2RlPkRhZ2dlcjs8L2NvZGU+IDx0ZD4gVSswMjAyMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAoTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kYWdnZXI+PHRkPiA8Y29kZT5kYWdnZXI7PC9jb2RlPiA8dGQ+IFUrMDIwMjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igKA8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGFsZXRoPjx0ZD4gPGNvZGU+ZGFsZXRoOzwvY29kZT4gPHRkPiBVKzAyMTM4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oS4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURhcnI+PHRkPiA8Y29kZT5EYXJyOzwvY29kZT4gPHRkPiBVKzAyMUExIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oahPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRBcnI+PHRkPiA8Y29kZT5kQXJyOzwvY29kZT4gPHRkPiBVKzAyMUQzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRhcnI+PHRkPiA8Y29kZT5kYXJyOzwvY29kZT4gPHRkPiBVKzAyMTkzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRhc2g+PHRkPiA8Y29kZT5kYXNoOzwvY29kZT4gPHRkPiBVKzAyMDEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURhc2h2Pjx0ZD4gPGNvZGU+RGFzaHY7PC9jb2RlPiA8dGQ+IFUrMDJBRTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq6Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGFzaHY+PHRkPiA8Y29kZT5kYXNodjs8L2NvZGU+IDx0ZD4gVSswMjJBMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kYmthcm93Pjx0ZD4gPGNvZGU+ZGJrYXJvdzs8L2NvZGU+IDx0ZD4gVSswMjkwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kYmxhYz48dGQ+IDxjb2RlPmRibGFjOzwvY29kZT4gPHRkPiBVKzAwMkREIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y508L3NwYW4+IDx0ciBpZD1lbnRpdHktRGNhcm9uPjx0ZD4gPGNvZGU+RGNhcm9uOzwvY29kZT4gPHRkPiBVKzAwMTBFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xI48L3NwYW4+IDx0ciBpZD1lbnRpdHktZGNhcm9uPjx0ZD4gPGNvZGU+ZGNhcm9uOzwvY29kZT4gPHRkPiBVKzAwMTBGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xI88L3NwYW4+IDx0ciBpZD1lbnRpdHktRGN5Pjx0ZD4gPGNvZGU+RGN5OzwvY29kZT4gPHRkPiBVKzAwNDE0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0JQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGN5Pjx0ZD4gPGNvZGU+ZGN5OzwvY29kZT4gPHRkPiBVKzAwNDM0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0LQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktREQ+PHRkPiA8Y29kZT5ERDs8L2NvZGU+IDx0ZD4gVSswMjE0NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kZD48dGQ+IDxjb2RlPmRkOzwvY29kZT4gPHRkPiBVKzAyMTQ2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oWGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRkYWdnZXI+PHRkPiA8Y29kZT5kZGFnZ2VyOzwvY29kZT4gPHRkPiBVKzAyMDIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oChPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRkYXJyPjx0ZD4gPGNvZGU+ZGRhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxQ0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4o8L3NwYW4+IDx0ciBpZD1lbnRpdHktRERvdHJhaGQ+PHRkPiA8Y29kZT5ERG90cmFoZDs8L2NvZGU+IDx0ZD4gVSswMjkxMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kZG90c2VxPjx0ZD4gPGNvZGU+ZGRvdHNlcTs8L2NvZGU+IDx0ZD4gVSswMkE3NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKptzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kZWc+PHRkPiA8Y29kZT5kZWc7PC9jb2RlPiA8dGQ+IFUrMDAwQjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7CsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kZWctbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5kZWc8L2NvZGU+IDx0ZD4gVSswMDBCMCA8dGQ+IDxzcGFuPsKwPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURlbD48dGQ+IDxjb2RlPkRlbDs8L2NvZGU+IDx0ZD4gVSswMjIwNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1EZWx0YT48dGQ+IDxjb2RlPkRlbHRhOzwvY29kZT4gPHRkPiBVKzAwMzk0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zpQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGVsdGE+PHRkPiA8Y29kZT5kZWx0YTs8L2NvZGU+IDx0ZD4gVSswMDNCNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs60PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRlbXB0eXY+PHRkPiA8Y29kZT5kZW1wdHl2OzwvY29kZT4gPHRkPiBVKzAyOUIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qaxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRmaXNodD48dGQ+IDxjb2RlPmRmaXNodDs8L2NvZGU+IDx0ZD4gVSswMjk3RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1EZnI+PHRkPiA8Y29kZT5EZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MDcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRmcj48dGQ+IDxjb2RlPmRmcjs8L2NvZGU+IDx0ZD4gVSsxRDUyMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlKE8L3NwYW4+IDx0ciBpZD1lbnRpdHktZEhhcj48dGQ+IDxjb2RlPmRIYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipaU8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGhhcmw+PHRkPiA8Y29kZT5kaGFybDs8L2NvZGU+IDx0ZD4gVSswMjFDMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHgzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kaGFycj48dGQ+IDxjb2RlPmRoYXJyOzwvY29kZT4gPHRkPiBVKzAyMUMyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURpYWNyaXRpY2FsQWN1dGU+PHRkPiA8Y29kZT5EaWFjcml0aWNhbEFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMEI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktRGlhY3JpdGljYWxEb3Q+PHRkPiA8Y29kZT5EaWFjcml0aWNhbERvdDs8L2NvZGU+IDx0ZD4gVSswMDJEOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsuZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURpYWNyaXRpY2FsRG91YmxlQWN1dGU+PHRkPiA8Y29kZT5EaWFjcml0aWNhbERvdWJsZUFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMkREIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y508L3NwYW4+IDx0ciBpZD1lbnRpdHktRGlhY3JpdGljYWxHcmF2ZT48dGQ+IDxjb2RlPkRpYWNyaXRpY2FsR3JhdmU7PC9jb2RlPiA8dGQ+IFUrMDAwNjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD5gPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURpYWNyaXRpY2FsVGlsZGU+PHRkPiA8Y29kZT5EaWFjcml0aWNhbFRpbGRlOzwvY29kZT4gPHRkPiBVKzAwMkRDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y5w8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGlhbT48dGQ+IDxjb2RlPmRpYW07PC9jb2RlPiA8dGQ+IFUrMDIyQzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktRGlhbW9uZD48dGQ+IDxjb2RlPkRpYW1vbmQ7PC9jb2RlPiA8dGQ+IFUrMDIyQzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGlhbW9uZD48dGQ+IDxjb2RlPmRpYW1vbmQ7PC9jb2RlPiA8dGQ+IFUrMDIyQzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGlhbW9uZHN1aXQ+PHRkPiA8Y29kZT5kaWFtb25kc3VpdDs8L2NvZGU+IDx0ZD4gVSswMjY2NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKZpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kaWFtcz48dGQ+IDxjb2RlPmRpYW1zOzwvY29kZT4gPHRkPiBVKzAyNjY2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pmmPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRpZT48dGQ+IDxjb2RlPmRpZTs8L2NvZGU+IDx0ZD4gVSswMDBBOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKoPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURpZmZlcmVudGlhbEQ+PHRkPiA8Y29kZT5EaWZmZXJlbnRpYWxEOzwvY29kZT4gPHRkPiBVKzAyMTQ2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oWGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRpZ2FtbWE+PHRkPiA8Y29kZT5kaWdhbW1hOzwvY29kZT4gPHRkPiBVKzAwM0REIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z508L3NwYW4+IDx0ciBpZD1lbnRpdHktZGlzaW4+PHRkPiA8Y29kZT5kaXNpbjs8L2NvZGU+IDx0ZD4gVSswMjJGMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLsjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kaXY+PHRkPiA8Y29kZT5kaXY7PC9jb2RlPiA8dGQ+IFUrMDAwRjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kaXZpZGU+PHRkPiA8Y29kZT5kaXZpZGU7PC9jb2RlPiA8dGQ+IFUrMDAwRjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kaXZpZGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5kaXZpZGU8L2NvZGU+IDx0ZD4gVSswMDBGNyA8dGQ+IDxzcGFuPsO3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRpdmlkZW9udGltZXM+PHRkPiA8Y29kZT5kaXZpZGVvbnRpbWVzOzwvY29kZT4gPHRkPiBVKzAyMkM3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRpdm9ueD48dGQ+IDxjb2RlPmRpdm9ueDs8L2NvZGU+IDx0ZD4gVSswMjJDNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ESmN5Pjx0ZD4gPGNvZGU+REpjeTs8L2NvZGU+IDx0ZD4gVSswMDQwMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRqY3k+PHRkPiA8Y29kZT5kamN5OzwvY29kZT4gPHRkPiBVKzAwNDUyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0ZI8L3NwYW4+IDx0ciBpZD1lbnRpdHktZGxjb3JuPjx0ZD4gPGNvZGU+ZGxjb3JuOzwvY29kZT4gPHRkPiBVKzAyMzFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oyePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRsY3JvcD48dGQ+IDxjb2RlPmRsY3JvcDs8L2NvZGU+IDx0ZD4gVSswMjMwRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kb2xsYXI+PHRkPiA8Y29kZT5kb2xsYXI7PC9jb2RlPiA8dGQ+IFUrMDAwMjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4kPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvcGY+PHRkPiA8Y29kZT5Eb3BmOzwvY29kZT4gPHRkPiBVKzFENTNCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Uuzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kb3BmPjx0ZD4gPGNvZGU+ZG9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU1NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlZU8L3NwYW4+IDx0ciBpZD1lbnRpdHktRG90Pjx0ZD4gPGNvZGU+RG90OzwvY29kZT4gPHRkPiBVKzAwMEE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wqg8L3NwYW4+IDx0ciBpZD1lbnRpdHktZG90Pjx0ZD4gPGNvZGU+ZG90OzwvY29kZT4gPHRkPiBVKzAwMkQ5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y5k8L3NwYW4+IDx0ciBpZD1lbnRpdHktRG90RG90Pjx0ZD4gPGNvZGU+RG90RG90OzwvY29kZT4gPHRkPiBVKzAyMERDIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvc2l0aW9uIj7il4zig5w8L3NwYW4+IDx0ciBpZD1lbnRpdHktZG90ZXE+PHRkPiA8Y29kZT5kb3RlcTs8L2NvZGU+IDx0ZD4gVSswMjI1MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kb3RlcWRvdD48dGQ+IDxjb2RlPmRvdGVxZG90OzwvY29kZT4gPHRkPiBVKzAyMjUxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvdEVxdWFsPjx0ZD4gPGNvZGU+RG90RXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyNTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiZA8L3NwYW4+IDx0ciBpZD1lbnRpdHktZG90bWludXM+PHRkPiA8Y29kZT5kb3RtaW51czs8L2NvZGU+IDx0ZD4gVSswMjIzOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kb3RwbHVzPjx0ZD4gPGNvZGU+ZG90cGx1czs8L2NvZGU+IDx0ZD4gVSswMjIxNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kb3RzcXVhcmU+PHRkPiA8Y29kZT5kb3RzcXVhcmU7PC9jb2RlPiA8dGQ+IFUrMDIyQTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiqE8L3NwYW4+IDx0ciBpZD1lbnRpdHktZG91YmxlYmFyd2VkZ2U+PHRkPiA8Y29kZT5kb3VibGViYXJ3ZWRnZTs8L2NvZGU+IDx0ZD4gVSswMjMwNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMhjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3VibGVDb250b3VySW50ZWdyYWw+PHRkPiA8Y29kZT5Eb3VibGVDb250b3VySW50ZWdyYWw7PC9jb2RlPiA8dGQ+IFUrMDIyMkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiK88L3NwYW4+IDx0ciBpZD1lbnRpdHktRG91YmxlRG90Pjx0ZD4gPGNvZGU+RG91YmxlRG90OzwvY29kZT4gPHRkPiBVKzAwMEE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wqg8L3NwYW4+IDx0ciBpZD1lbnRpdHktRG91YmxlRG93bkFycm93Pjx0ZD4gPGNvZGU+RG91YmxlRG93bkFycm93OzwvY29kZT4gPHRkPiBVKzAyMUQzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvdWJsZUxlZnRBcnJvdz48dGQ+IDxjb2RlPkRvdWJsZUxlZnRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFEMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3VibGVMZWZ0UmlnaHRBcnJvdz48dGQ+IDxjb2RlPkRvdWJsZUxlZnRSaWdodEFycm93OzwvY29kZT4gPHRkPiBVKzAyMUQ0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvdWJsZUxlZnRUZWU+PHRkPiA8Y29kZT5Eb3VibGVMZWZ0VGVlOzwvY29kZT4gPHRkPiBVKzAyQUU0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qukPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvdWJsZUxvbmdMZWZ0QXJyb3c+PHRkPiA8Y29kZT5Eb3VibGVMb25nTGVmdEFycm93OzwvY29kZT4gPHRkPiBVKzAyN0Y4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdz48dGQ+IDxjb2RlPkRvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjdGQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKfujwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3VibGVMb25nUmlnaHRBcnJvdz48dGQ+IDxjb2RlPkRvdWJsZUxvbmdSaWdodEFycm93OzwvY29kZT4gPHRkPiBVKzAyN0Y5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvdWJsZVJpZ2h0QXJyb3c+PHRkPiA8Y29kZT5Eb3VibGVSaWdodEFycm93OzwvY29kZT4gPHRkPiBVKzAyMUQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvdWJsZVJpZ2h0VGVlPjx0ZD4gPGNvZGU+RG91YmxlUmlnaHRUZWU7PC9jb2RlPiA8dGQ+IFUrMDIyQTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiqg8L3NwYW4+IDx0ciBpZD1lbnRpdHktRG91YmxlVXBBcnJvdz48dGQ+IDxjb2RlPkRvdWJsZVVwQXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxRDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5E8L3NwYW4+IDx0ciBpZD1lbnRpdHktRG91YmxlVXBEb3duQXJyb3c+PHRkPiA8Y29kZT5Eb3VibGVVcERvd25BcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFENSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHlTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3VibGVWZXJ0aWNhbEJhcj48dGQ+IDxjb2RlPkRvdWJsZVZlcnRpY2FsQmFyOzwvY29kZT4gPHRkPiBVKzAyMjI1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oilPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvd25BcnJvdz48dGQ+IDxjb2RlPkRvd25BcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3duYXJyb3c+PHRkPiA8Y29kZT5Eb3duYXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxRDMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5M8L3NwYW4+IDx0ciBpZD1lbnRpdHktZG93bmFycm93Pjx0ZD4gPGNvZGU+ZG93bmFycm93OzwvY29kZT4gPHRkPiBVKzAyMTkzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvd25BcnJvd0Jhcj48dGQ+IDxjb2RlPkRvd25BcnJvd0Jhcjs8L2NvZGU+IDx0ZD4gVSswMjkxMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3duQXJyb3dVcEFycm93Pjx0ZD4gPGNvZGU+RG93bkFycm93VXBBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFGNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3duQnJldmU+PHRkPiA8Y29kZT5Eb3duQnJldmU7PC9jb2RlPiA8dGQ+IFUrMDAzMTEgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG9zaXRpb24iPuKXjMyRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRvd25kb3duYXJyb3dzPjx0ZD4gPGNvZGU+ZG93bmRvd25hcnJvd3M7PC9jb2RlPiA8dGQ+IFUrMDIxQ0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4o8L3NwYW4+IDx0ciBpZD1lbnRpdHktZG93bmhhcnBvb25sZWZ0Pjx0ZD4gPGNvZGU+ZG93bmhhcnBvb25sZWZ0OzwvY29kZT4gPHRkPiBVKzAyMUMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRvd25oYXJwb29ucmlnaHQ+PHRkPiA8Y29kZT5kb3duaGFycG9vbnJpZ2h0OzwvY29kZT4gPHRkPiBVKzAyMUMyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvd25MZWZ0UmlnaHRWZWN0b3I+PHRkPiA8Y29kZT5Eb3duTGVmdFJpZ2h0VmVjdG9yOzwvY29kZT4gPHRkPiBVKzAyOTUwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvd25MZWZ0VGVlVmVjdG9yPjx0ZD4gPGNvZGU+RG93bkxlZnRUZWVWZWN0b3I7PC9jb2RlPiA8dGQ+IFUrMDI5NUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZ48L3NwYW4+IDx0ciBpZD1lbnRpdHktRG93bkxlZnRWZWN0b3I+PHRkPiA8Y29kZT5Eb3duTGVmdFZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjFCRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3duTGVmdFZlY3RvckJhcj48dGQ+IDxjb2RlPkRvd25MZWZ0VmVjdG9yQmFyOzwvY29kZT4gPHRkPiBVKzAyOTU2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvd25SaWdodFRlZVZlY3Rvcj48dGQ+IDxjb2RlPkRvd25SaWdodFRlZVZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjk1RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlnzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Eb3duUmlnaHRWZWN0b3I+PHRkPiA8Y29kZT5Eb3duUmlnaHRWZWN0b3I7PC9jb2RlPiA8dGQ+IFUrMDIxQzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4E8L3NwYW4+IDx0ciBpZD1lbnRpdHktRG93blJpZ2h0VmVjdG9yQmFyPjx0ZD4gPGNvZGU+RG93blJpZ2h0VmVjdG9yQmFyOzwvY29kZT4gPHRkPiBVKzAyOTU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvd25UZWU+PHRkPiA8Y29kZT5Eb3duVGVlOzwvY29kZT4gPHRkPiBVKzAyMkE0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqkPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LURvd25UZWVBcnJvdz48dGQ+IDxjb2RlPkRvd25UZWVBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFBNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kcmJrYXJvdz48dGQ+IDxjb2RlPmRyYmthcm93OzwvY29kZT4gPHRkPiBVKzAyOTEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRyY29ybj48dGQ+IDxjb2RlPmRyY29ybjs8L2NvZGU+IDx0ZD4gVSswMjMxRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMnzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kcmNyb3A+PHRkPiA8Y29kZT5kcmNyb3A7PC9jb2RlPiA8dGQ+IFUrMDIzMEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijIw8L3NwYW4+IDx0ciBpZD1lbnRpdHktRHNjcj48dGQ+IDxjb2RlPkRzY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0OUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZKfPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRzY3I+PHRkPiA8Y29kZT5kc2NyOzwvY29kZT4gPHRkPiBVKzFENEI5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2SuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1EU2N5Pjx0ZD4gPGNvZGU+RFNjeTs8L2NvZGU+IDx0ZD4gVSswMDQwNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWRzY3k+PHRkPiA8Y29kZT5kc2N5OzwvY29kZT4gPHRkPiBVKzAwNDU1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0ZU8L3NwYW4+IDx0ciBpZD1lbnRpdHktZHNvbD48dGQ+IDxjb2RlPmRzb2w7PC9jb2RlPiA8dGQ+IFUrMDI5RjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ip7Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktRHN0cm9rPjx0ZD4gPGNvZGU+RHN0cm9rOzwvY29kZT4gPHRkPiBVKzAwMTEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xJA8L3NwYW4+IDx0ciBpZD1lbnRpdHktZHN0cm9rPjx0ZD4gPGNvZGU+ZHN0cm9rOzwvY29kZT4gPHRkPiBVKzAwMTExIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xJE8L3NwYW4+IDx0ciBpZD1lbnRpdHktZHRkb3Q+PHRkPiA8Y29kZT5kdGRvdDs8L2NvZGU+IDx0ZD4gVSswMjJGMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLsTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kdHJpPjx0ZD4gPGNvZGU+ZHRyaTs8L2NvZGU+IDx0ZD4gVSswMjVCRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kdHJpZj48dGQ+IDxjb2RlPmR0cmlmOzwvY29kZT4gPHRkPiBVKzAyNUJFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pa+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWR1YXJyPjx0ZD4gPGNvZGU+ZHVhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxRjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih7U8L3NwYW4+IDx0ciBpZD1lbnRpdHktZHVoYXI+PHRkPiA8Y29kZT5kdWhhcjs8L2NvZGU+IDx0ZD4gVSswMjk2RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlrzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1kd2FuZ2xlPjx0ZD4gPGNvZGU+ZHdhbmdsZTs8L2NvZGU+IDx0ZD4gVSswMjlBNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1EWmN5Pjx0ZD4gPGNvZGU+RFpjeTs8L2NvZGU+IDx0ZD4gVSswMDQwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCPPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWR6Y3k+PHRkPiA8Y29kZT5kemN5OzwvY29kZT4gPHRkPiBVKzAwNDVGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Z88L3NwYW4+IDx0ciBpZD1lbnRpdHktZHppZ3JhcnI+PHRkPiA8Y29kZT5kemlncmFycjs8L2NvZGU+IDx0ZD4gVSswMjdGRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKfvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FYWN1dGU+PHRkPiA8Y29kZT5FYWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAwQzkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FYWN1dGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5FYWN1dGU8L2NvZGU+IDx0ZD4gVSswMDBDOSA8dGQ+IDxzcGFuPsOJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVhY3V0ZT48dGQ+IDxjb2RlPmVhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDBFOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOpPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVhY3V0ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmVhY3V0ZTwvY29kZT4gPHRkPiBVKzAwMEU5IDx0ZD4gPHNwYW4+w6k8L3NwYW4+IDx0ciBpZD1lbnRpdHktZWFzdGVyPjx0ZD4gPGNvZGU+ZWFzdGVyOzwvY29kZT4gPHRkPiBVKzAyQTZFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmuPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUVjYXJvbj48dGQ+IDxjb2RlPkVjYXJvbjs8L2NvZGU+IDx0ZD4gVSswMDExQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVjYXJvbj48dGQ+IDxjb2RlPmVjYXJvbjs8L2NvZGU+IDx0ZD4gVSswMDExQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSbPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVjaXI+PHRkPiA8Y29kZT5lY2lyOzwvY29kZT4gPHRkPiBVKzAyMjU2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUVjaXJjPjx0ZD4gPGNvZGU+RWNpcmM7PC9jb2RlPiA8dGQ+IFUrMDAwQ0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FY2lyYy1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPkVjaXJjPC9jb2RlPiA8dGQ+IFUrMDAwQ0EgPHRkPiA8c3Bhbj7Dijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lY2lyYz48dGQ+IDxjb2RlPmVjaXJjOzwvY29kZT4gPHRkPiBVKzAwMEVBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w6o8L3NwYW4+IDx0ciBpZD1lbnRpdHktZWNpcmMtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5lY2lyYzwvY29kZT4gPHRkPiBVKzAwMEVBIDx0ZD4gPHNwYW4+w6o8L3NwYW4+IDx0ciBpZD1lbnRpdHktZWNvbG9uPjx0ZD4gPGNvZGU+ZWNvbG9uOzwvY29kZT4gPHRkPiBVKzAyMjU1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omVPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUVjeT48dGQ+IDxjb2RlPkVjeTs8L2NvZGU+IDx0ZD4gVSswMDQyRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCtPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVjeT48dGQ+IDxjb2RlPmVjeTs8L2NvZGU+IDx0ZD4gVSswMDQ0RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVERG90Pjx0ZD4gPGNvZGU+ZUREb3Q7PC9jb2RlPiA8dGQ+IFUrMDJBNzcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbc8L3NwYW4+IDx0ciBpZD1lbnRpdHktRWRvdD48dGQ+IDxjb2RlPkVkb3Q7PC9jb2RlPiA8dGQ+IFUrMDAxMTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Eljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lRG90Pjx0ZD4gPGNvZGU+ZURvdDs8L2NvZGU+IDx0ZD4gVSswMjI1MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lZG90Pjx0ZD4gPGNvZGU+ZWRvdDs8L2NvZGU+IDx0ZD4gVSswMDExNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVlPjx0ZD4gPGNvZGU+ZWU7PC9jb2RlPiA8dGQ+IFUrMDIxNDcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihYc8L3NwYW4+IDx0ciBpZD1lbnRpdHktZWZEb3Q+PHRkPiA8Y29kZT5lZkRvdDs8L2NvZGU+IDx0ZD4gVSswMjI1MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FZnI+PHRkPiA8Y29kZT5FZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVmcj48dGQ+IDxjb2RlPmVmcjs8L2NvZGU+IDx0ZD4gVSsxRDUyMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlKI8L3NwYW4+IDx0ciBpZD1lbnRpdHktZWc+PHRkPiA8Y29kZT5lZzs8L2NvZGU+IDx0ZD4gVSswMkE5QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FZ3JhdmU+PHRkPiA8Y29kZT5FZ3JhdmU7PC9jb2RlPiA8dGQ+IFUrMDAwQzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FZ3JhdmUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5FZ3JhdmU8L2NvZGU+IDx0ZD4gVSswMDBDOCA8dGQ+IDxzcGFuPsOIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVncmF2ZT48dGQ+IDxjb2RlPmVncmF2ZTs8L2NvZGU+IDx0ZD4gVSswMDBFOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOoPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVncmF2ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmVncmF2ZTwvY29kZT4gPHRkPiBVKzAwMEU4IDx0ZD4gPHNwYW4+w6g8L3NwYW4+IDx0ciBpZD1lbnRpdHktZWdzPjx0ZD4gPGNvZGU+ZWdzOzwvY29kZT4gPHRkPiBVKzAyQTk2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVnc2RvdD48dGQ+IDxjb2RlPmVnc2RvdDs8L2NvZGU+IDx0ZD4gVSswMkE5OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lbD48dGQ+IDxjb2RlPmVsOzwvY29kZT4gPHRkPiBVKzAyQTk5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUVsZW1lbnQ+PHRkPiA8Y29kZT5FbGVtZW50OzwvY29kZT4gPHRkPiBVKzAyMjA4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVsaW50ZXJzPjx0ZD4gPGNvZGU+ZWxpbnRlcnM7PC9jb2RlPiA8dGQ+IFUrMDIzRTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ij6c8L3NwYW4+IDx0ciBpZD1lbnRpdHktZWxsPjx0ZD4gPGNvZGU+ZWxsOzwvY29kZT4gPHRkPiBVKzAyMTEzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVscz48dGQ+IDxjb2RlPmVsczs8L2NvZGU+IDx0ZD4gVSswMkE5NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqlTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lbHNkb3Q+PHRkPiA8Y29kZT5lbHNkb3Q7PC9jb2RlPiA8dGQ+IFUrMDJBOTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqpc8L3NwYW4+IDx0ciBpZD1lbnRpdHktRW1hY3I+PHRkPiA8Y29kZT5FbWFjcjs8L2NvZGU+IDx0ZD4gVSswMDExMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVtYWNyPjx0ZD4gPGNvZGU+ZW1hY3I7PC9jb2RlPiA8dGQ+IFUrMDAxMTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ekzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lbXB0eT48dGQ+IDxjb2RlPmVtcHR5OzwvY29kZT4gPHRkPiBVKzAyMjA1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVtcHR5c2V0Pjx0ZD4gPGNvZGU+ZW1wdHlzZXQ7PC9jb2RlPiA8dGQ+IFUrMDIyMDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIU8L3NwYW4+IDx0ciBpZD1lbnRpdHktRW1wdHlTbWFsbFNxdWFyZT48dGQ+IDxjb2RlPkVtcHR5U21hbGxTcXVhcmU7PC9jb2RlPiA8dGQ+IFUrMDI1RkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7il7s8L3NwYW4+IDx0ciBpZD1lbnRpdHktZW1wdHl2Pjx0ZD4gPGNvZGU+ZW1wdHl2OzwvY29kZT4gPHRkPiBVKzAyMjA1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUVtcHR5VmVyeVNtYWxsU3F1YXJlPjx0ZD4gPGNvZGU+RW1wdHlWZXJ5U21hbGxTcXVhcmU7PC9jb2RlPiA8dGQ+IFUrMDI1QUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilqs8L3NwYW4+IDx0ciBpZD1lbnRpdHktZW1zcD48dGQ+IDxjb2RlPmVtc3A7PC9jb2RlPiA8dGQ+IFUrMDIwMDMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igIM8L3NwYW4+IDx0ciBpZD1lbnRpdHktZW1zcDEzPjx0ZD4gPGNvZGU+ZW1zcDEzOzwvY29kZT4gPHRkPiBVKzAyMDA0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVtc3AxND48dGQ+IDxjb2RlPmVtc3AxNDs8L2NvZGU+IDx0ZD4gVSswMjAwNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FTkc+PHRkPiA8Y29kZT5FTkc7PC9jb2RlPiA8dGQ+IFUrMDAxNEEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lbmc+PHRkPiA8Y29kZT5lbmc7PC9jb2RlPiA8dGQ+IFUrMDAxNEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lbnNwPjx0ZD4gPGNvZGU+ZW5zcDs8L2NvZGU+IDx0ZD4gVSswMjAwMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Fb2dvbj48dGQ+IDxjb2RlPkVvZ29uOzwvY29kZT4gPHRkPiBVKzAwMTE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xJg8L3NwYW4+IDx0ciBpZD1lbnRpdHktZW9nb24+PHRkPiA8Y29kZT5lb2dvbjs8L2NvZGU+IDx0ZD4gVSswMDExOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUVvcGY+PHRkPiA8Y29kZT5Fb3BmOzwvY29kZT4gPHRkPiBVKzFENTNDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lb3BmPjx0ZD4gPGNvZGU+ZW9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU1NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlZY8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXBhcj48dGQ+IDxjb2RlPmVwYXI7PC9jb2RlPiA8dGQ+IFUrMDIyRDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5U8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXBhcnNsPjx0ZD4gPGNvZGU+ZXBhcnNsOzwvY29kZT4gPHRkPiBVKzAyOUUzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qejPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVwbHVzPjx0ZD4gPGNvZGU+ZXBsdXM7PC9jb2RlPiA8dGQ+IFUrMDJBNzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbE8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXBzaT48dGQ+IDxjb2RlPmVwc2k7PC9jb2RlPiA8dGQ+IFUrMDAzQjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7OtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FcHNpbG9uPjx0ZD4gPGNvZGU+RXBzaWxvbjs8L2NvZGU+IDx0ZD4gVSswMDM5NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6VPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVwc2lsb24+PHRkPiA8Y29kZT5lcHNpbG9uOzwvY29kZT4gPHRkPiBVKzAwM0I1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zrU8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXBzaXY+PHRkPiA8Y29kZT5lcHNpdjs8L2NvZGU+IDx0ZD4gVSswMDNGNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVxY2lyYz48dGQ+IDxjb2RlPmVxY2lyYzs8L2NvZGU+IDx0ZD4gVSswMjI1NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lcWNvbG9uPjx0ZD4gPGNvZGU+ZXFjb2xvbjs8L2NvZGU+IDx0ZD4gVSswMjI1NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJlTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lcXNpbT48dGQ+IDxjb2RlPmVxc2ltOzwvY29kZT4gPHRkPiBVKzAyMjQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVxc2xhbnRndHI+PHRkPiA8Y29kZT5lcXNsYW50Z3RyOzwvY29kZT4gPHRkPiBVKzAyQTk2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVxc2xhbnRsZXNzPjx0ZD4gPGNvZGU+ZXFzbGFudGxlc3M7PC9jb2RlPiA8dGQ+IFUrMDJBOTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqpU8L3NwYW4+IDx0ciBpZD1lbnRpdHktRXF1YWw+PHRkPiA8Y29kZT5FcXVhbDs8L2NvZGU+IDx0ZD4gVSswMkE3NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKptTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lcXVhbHM+PHRkPiA8Y29kZT5lcXVhbHM7PC9jb2RlPiA8dGQ+IFUrMDAwM0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD49PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUVxdWFsVGlsZGU+PHRkPiA8Y29kZT5FcXVhbFRpbGRlOzwvY29kZT4gPHRkPiBVKzAyMjQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVxdWVzdD48dGQ+IDxjb2RlPmVxdWVzdDs8L2NvZGU+IDx0ZD4gVSswMjI1RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJnzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FcXVpbGlicml1bT48dGQ+IDxjb2RlPkVxdWlsaWJyaXVtOzwvY29kZT4gPHRkPiBVKzAyMUNDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVxdWl2Pjx0ZD4gPGNvZGU+ZXF1aXY7PC9jb2RlPiA8dGQ+IFUrMDIyNjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiaE8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXF1aXZERD48dGQ+IDxjb2RlPmVxdWl2REQ7PC9jb2RlPiA8dGQ+IFUrMDJBNzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbg8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXF2cGFyc2w+PHRkPiA8Y29kZT5lcXZwYXJzbDs8L2NvZGU+IDx0ZD4gVSswMjlFNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKnpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lcmFycj48dGQ+IDxjb2RlPmVyYXJyOzwvY29kZT4gPHRkPiBVKzAyOTcxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWVyRG90Pjx0ZD4gPGNvZGU+ZXJEb3Q7PC9jb2RlPiA8dGQ+IFUrMDIyNTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiZM8L3NwYW4+IDx0ciBpZD1lbnRpdHktRXNjcj48dGQ+IDxjb2RlPkVzY3I7PC9jb2RlPiA8dGQ+IFUrMDIxMzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihLA8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXNjcj48dGQ+IDxjb2RlPmVzY3I7PC9jb2RlPiA8dGQ+IFUrMDIxMkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihK88L3NwYW4+IDx0ciBpZD1lbnRpdHktZXNkb3Q+PHRkPiA8Y29kZT5lc2RvdDs8L2NvZGU+IDx0ZD4gVSswMjI1MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Fc2ltPjx0ZD4gPGNvZGU+RXNpbTs8L2NvZGU+IDx0ZD4gVSswMkE3MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1lc2ltPjx0ZD4gPGNvZGU+ZXNpbTs8L2NvZGU+IDx0ZD4gVSswMjI0MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FdGE+PHRkPiA8Y29kZT5FdGE7PC9jb2RlPiA8dGQ+IFUrMDAzOTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Olzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ldGE+PHRkPiA8Y29kZT5ldGE7PC9jb2RlPiA8dGQ+IFUrMDAzQjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Otzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FVEg+PHRkPiA8Y29kZT5FVEg7PC9jb2RlPiA8dGQ+IFUrMDAwRDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FVEgtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5FVEg8L2NvZGU+IDx0ZD4gVSswMDBEMCA8dGQ+IDxzcGFuPsOQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWV0aD48dGQ+IDxjb2RlPmV0aDs8L2NvZGU+IDx0ZD4gVSswMDBGMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOwPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWV0aC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmV0aDwvY29kZT4gPHRkPiBVKzAwMEYwIDx0ZD4gPHNwYW4+w7A8L3NwYW4+IDx0ciBpZD1lbnRpdHktRXVtbD48dGQ+IDxjb2RlPkV1bWw7PC9jb2RlPiA8dGQ+IFUrMDAwQ0IgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1FdW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+RXVtbDwvY29kZT4gPHRkPiBVKzAwMENCIDx0ZD4gPHNwYW4+w4s8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXVtbD48dGQ+IDxjb2RlPmV1bWw7PC9jb2RlPiA8dGQ+IFUrMDAwRUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ldW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+ZXVtbDwvY29kZT4gPHRkPiBVKzAwMEVCIDx0ZD4gPHNwYW4+w6s8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXVybz48dGQ+IDxjb2RlPmV1cm87PC9jb2RlPiA8dGQ+IFUrMDIwQUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igqw8L3NwYW4+IDx0ciBpZD1lbnRpdHktZXhjbD48dGQ+IDxjb2RlPmV4Y2w7PC9jb2RlPiA8dGQ+IFUrMDAwMjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4hPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWV4aXN0Pjx0ZD4gPGNvZGU+ZXhpc3Q7PC9jb2RlPiA8dGQ+IFUrMDIyMDMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIM8L3NwYW4+IDx0ciBpZD1lbnRpdHktRXhpc3RzPjx0ZD4gPGNvZGU+RXhpc3RzOzwvY29kZT4gPHRkPiBVKzAyMjAzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWV4cGVjdGF0aW9uPjx0ZD4gPGNvZGU+ZXhwZWN0YXRpb247PC9jb2RlPiA8dGQ+IFUrMDIxMzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihLA8L3NwYW4+IDx0ciBpZD1lbnRpdHktRXhwb25lbnRpYWxFPjx0ZD4gPGNvZGU+RXhwb25lbnRpYWxFOzwvY29kZT4gPHRkPiBVKzAyMTQ3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oWHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWV4cG9uZW50aWFsZT48dGQ+IDxjb2RlPmV4cG9uZW50aWFsZTs8L2NvZGU+IDx0ZD4gVSswMjE0NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mYWxsaW5nZG90c2VxPjx0ZD4gPGNvZGU+ZmFsbGluZ2RvdHNlcTs8L2NvZGU+IDx0ZD4gVSswMjI1MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1GY3k+PHRkPiA8Y29kZT5GY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7QpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mY3k+PHRkPiA8Y29kZT5mY3k7PC9jb2RlPiA8dGQ+IFUrMDA0NDQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7RhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mZW1hbGU+PHRkPiA8Y29kZT5mZW1hbGU7PC9jb2RlPiA8dGQ+IFUrMDI2NDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7imYA8L3NwYW4+IDx0ciBpZD1lbnRpdHktZmZpbGlnPjx0ZD4gPGNvZGU+ZmZpbGlnOzwvY29kZT4gPHRkPiBVKzBGQjAzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+76yDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZmbGlnPjx0ZD4gPGNvZGU+ZmZsaWc7PC9jb2RlPiA8dGQ+IFUrMEZCMDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7vrIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktZmZsbGlnPjx0ZD4gPGNvZGU+ZmZsbGlnOzwvY29kZT4gPHRkPiBVKzBGQjA0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+76yEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUZmcj48dGQ+IDxjb2RlPkZmcjs8L2NvZGU+IDx0ZD4gVSsxRDUwOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlIk8L3NwYW4+IDx0ciBpZD1lbnRpdHktZmZyPjx0ZD4gPGNvZGU+ZmZyOzwvY29kZT4gPHRkPiBVKzFENTIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Uozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1maWxpZz48dGQ+IDxjb2RlPmZpbGlnOzwvY29kZT4gPHRkPiBVKzBGQjAxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+76yBPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUZpbGxlZFNtYWxsU3F1YXJlPjx0ZD4gPGNvZGU+RmlsbGVkU21hbGxTcXVhcmU7PC9jb2RlPiA8dGQ+IFUrMDI1RkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7il7w8L3NwYW4+IDx0ciBpZD1lbnRpdHktRmlsbGVkVmVyeVNtYWxsU3F1YXJlPjx0ZD4gPGNvZGU+RmlsbGVkVmVyeVNtYWxsU3F1YXJlOzwvY29kZT4gPHRkPiBVKzAyNUFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4paqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZqbGlnPjx0ZD4gPGNvZGU+ZmpsaWc7PC9jb2RlPiA8dGQ+IFUrMDAwNjYgVSswMDA2QSA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+Zmo8L3NwYW4+IDx0ciBpZD1lbnRpdHktZmxhdD48dGQ+IDxjb2RlPmZsYXQ7PC9jb2RlPiA8dGQ+IFUrMDI2NkQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ima08L3NwYW4+IDx0ciBpZD1lbnRpdHktZmxsaWc+PHRkPiA8Y29kZT5mbGxpZzs8L2NvZGU+IDx0ZD4gVSswRkIwMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPu+sgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mbHRucz48dGQ+IDxjb2RlPmZsdG5zOzwvY29kZT4gPHRkPiBVKzAyNUIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4paxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZub2Y+PHRkPiA8Y29kZT5mbm9mOzwvY29kZT4gPHRkPiBVKzAwMTkyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xpI8L3NwYW4+IDx0ciBpZD1lbnRpdHktRm9wZj48dGQ+IDxjb2RlPkZvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1M0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZS9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZvcGY+PHRkPiA8Y29kZT5mb3BmOzwvY29kZT4gPHRkPiBVKzFENTU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vlzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Gb3JBbGw+PHRkPiA8Y29kZT5Gb3JBbGw7PC9jb2RlPiA8dGQ+IFUrMDIyMDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktZm9yYWxsPjx0ZD4gPGNvZGU+Zm9yYWxsOzwvY29kZT4gPHRkPiBVKzAyMjAwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZvcms+PHRkPiA8Y29kZT5mb3JrOzwvY29kZT4gPHRkPiBVKzAyMkQ0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZvcmt2Pjx0ZD4gPGNvZGU+Zm9ya3Y7PC9jb2RlPiA8dGQ+IFUrMDJBRDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq5k8L3NwYW4+IDx0ciBpZD1lbnRpdHktRm91cmllcnRyZj48dGQ+IDxjb2RlPkZvdXJpZXJ0cmY7PC9jb2RlPiA8dGQ+IFUrMDIxMzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihLE8L3NwYW4+IDx0ciBpZD1lbnRpdHktZnBhcnRpbnQ+PHRkPiA8Y29kZT5mcGFydGludDs8L2NvZGU+IDx0ZD4gVSswMkEwRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKojTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjMTI+PHRkPiA8Y29kZT5mcmFjMTI7PC9jb2RlPiA8dGQ+IFUrMDAwQkQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7CvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjMTItbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5mcmFjMTI8L2NvZGU+IDx0ZD4gVSswMDBCRCA8dGQ+IDxzcGFuPsK9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZyYWMxMz48dGQ+IDxjb2RlPmZyYWMxMzs8L2NvZGU+IDx0ZD4gVSswMjE1MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjMTQ+PHRkPiA8Y29kZT5mcmFjMTQ7PC9jb2RlPiA8dGQ+IFUrMDAwQkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7CvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjMTQtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5mcmFjMTQ8L2NvZGU+IDx0ZD4gVSswMDBCQyA8dGQ+IDxzcGFuPsK8PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZyYWMxNT48dGQ+IDxjb2RlPmZyYWMxNTs8L2NvZGU+IDx0ZD4gVSswMjE1NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFlTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjMTY+PHRkPiA8Y29kZT5mcmFjMTY7PC9jb2RlPiA8dGQ+IFUrMDIxNTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihZk8L3NwYW4+IDx0ciBpZD1lbnRpdHktZnJhYzE4Pjx0ZD4gPGNvZGU+ZnJhYzE4OzwvY29kZT4gPHRkPiBVKzAyMTVCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oWbPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZyYWMyMz48dGQ+IDxjb2RlPmZyYWMyMzs8L2NvZGU+IDx0ZD4gVSswMjE1NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjMjU+PHRkPiA8Y29kZT5mcmFjMjU7PC9jb2RlPiA8dGQ+IFUrMDIxNTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihZY8L3NwYW4+IDx0ciBpZD1lbnRpdHktZnJhYzM0Pjx0ZD4gPGNvZGU+ZnJhYzM0OzwvY29kZT4gPHRkPiBVKzAwMEJFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wr48L3NwYW4+IDx0ciBpZD1lbnRpdHktZnJhYzM0LWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+ZnJhYzM0PC9jb2RlPiA8dGQ+IFUrMDAwQkUgPHRkPiA8c3Bhbj7Cvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjMzU+PHRkPiA8Y29kZT5mcmFjMzU7PC9jb2RlPiA8dGQ+IFUrMDIxNTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihZc8L3NwYW4+IDx0ciBpZD1lbnRpdHktZnJhYzM4Pjx0ZD4gPGNvZGU+ZnJhYzM4OzwvY29kZT4gPHRkPiBVKzAyMTVDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oWcPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZyYWM0NT48dGQ+IDxjb2RlPmZyYWM0NTs8L2NvZGU+IDx0ZD4gVSswMjE1OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFjNTY+PHRkPiA8Y29kZT5mcmFjNTY7PC9jb2RlPiA8dGQ+IFUrMDIxNUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihZo8L3NwYW4+IDx0ciBpZD1lbnRpdHktZnJhYzU4Pjx0ZD4gPGNvZGU+ZnJhYzU4OzwvY29kZT4gPHRkPiBVKzAyMTVEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oWdPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZyYWM3OD48dGQ+IDxjb2RlPmZyYWM3ODs8L2NvZGU+IDx0ZD4gVSswMjE1RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFnjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1mcmFzbD48dGQ+IDxjb2RlPmZyYXNsOzwvY29kZT4gPHRkPiBVKzAyMDQ0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oGEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWZyb3duPjx0ZD4gPGNvZGU+ZnJvd247PC9jb2RlPiA8dGQ+IFUrMDIzMjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijKI8L3NwYW4+IDx0ciBpZD1lbnRpdHktRnNjcj48dGQ+IDxjb2RlPkZzY3I7PC9jb2RlPiA8dGQ+IFUrMDIxMzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihLE8L3NwYW4+IDx0ciBpZD1lbnRpdHktZnNjcj48dGQ+IDxjb2RlPmZzY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0QkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZK7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdhY3V0ZT48dGQ+IDxjb2RlPmdhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDFGNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPse1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdhbW1hPjx0ZD4gPGNvZGU+R2FtbWE7PC9jb2RlPiA8dGQ+IFUrMDAzOTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Okzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nYW1tYT48dGQ+IDxjb2RlPmdhbW1hOzwvY29kZT4gPHRkPiBVKzAwM0IzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zrM8L3NwYW4+IDx0ciBpZD1lbnRpdHktR2FtbWFkPjx0ZD4gPGNvZGU+R2FtbWFkOzwvY29kZT4gPHRkPiBVKzAwM0RDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z5w8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2FtbWFkPjx0ZD4gPGNvZGU+Z2FtbWFkOzwvY29kZT4gPHRkPiBVKzAwM0REIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z508L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2FwPjx0ZD4gPGNvZGU+Z2FwOzwvY29kZT4gPHRkPiBVKzAyQTg2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdicmV2ZT48dGQ+IDxjb2RlPkdicmV2ZTs8L2NvZGU+IDx0ZD4gVSswMDExRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdicmV2ZT48dGQ+IDxjb2RlPmdicmV2ZTs8L2NvZGU+IDx0ZD4gVSswMDExRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSfPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdjZWRpbD48dGQ+IDxjb2RlPkdjZWRpbDs8L2NvZGU+IDx0ZD4gVSswMDEyMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdjaXJjPjx0ZD4gPGNvZGU+R2NpcmM7PC9jb2RlPiA8dGQ+IFUrMDAxMUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EnDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nY2lyYz48dGQ+IDxjb2RlPmdjaXJjOzwvY29kZT4gPHRkPiBVKzAwMTFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xJ08L3NwYW4+IDx0ciBpZD1lbnRpdHktR2N5Pjx0ZD4gPGNvZGU+R2N5OzwvY29kZT4gPHRkPiBVKzAwNDEzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0JM8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2N5Pjx0ZD4gPGNvZGU+Z2N5OzwvY29kZT4gPHRkPiBVKzAwNDMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0LM8L3NwYW4+IDx0ciBpZD1lbnRpdHktR2RvdD48dGQ+IDxjb2RlPkdkb3Q7PC9jb2RlPiA8dGQ+IFUrMDAxMjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZG90Pjx0ZD4gPGNvZGU+Z2RvdDs8L2NvZGU+IDx0ZD4gVSswMDEyMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsShPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdFPjx0ZD4gPGNvZGU+Z0U7PC9jb2RlPiA8dGQ+IFUrMDIyNjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiac8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2U+PHRkPiA8Y29kZT5nZTs8L2NvZGU+IDx0ZD4gVSswMjI2NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nRWw+PHRkPiA8Y29kZT5nRWw7PC9jb2RlPiA8dGQ+IFUrMDJBOEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqow8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2VsPjx0ZD4gPGNvZGU+Z2VsOzwvY29kZT4gPHRkPiBVKzAyMkRCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oubPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdlcT48dGQ+IDxjb2RlPmdlcTs8L2NvZGU+IDx0ZD4gVSswMjI2NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZXFxPjx0ZD4gPGNvZGU+Z2VxcTs8L2NvZGU+IDx0ZD4gVSswMjI2NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZXFzbGFudD48dGQ+IDxjb2RlPmdlcXNsYW50OzwvY29kZT4gPHRkPiBVKzAyQTdFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qm+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdlcz48dGQ+IDxjb2RlPmdlczs8L2NvZGU+IDx0ZD4gVSswMkE3RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZXNjYz48dGQ+IDxjb2RlPmdlc2NjOzwvY29kZT4gPHRkPiBVKzAyQUE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqpPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdlc2RvdD48dGQ+IDxjb2RlPmdlc2RvdDs8L2NvZGU+IDx0ZD4gVSswMkE4MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZXNkb3RvPjx0ZD4gPGNvZGU+Z2VzZG90bzs8L2NvZGU+IDx0ZD4gVSswMkE4MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZXNkb3RvbD48dGQ+IDxjb2RlPmdlc2RvdG9sOzwvY29kZT4gPHRkPiBVKzAyQTg0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdlc2w+PHRkPiA8Y29kZT5nZXNsOzwvY29kZT4gPHRkPiBVKzAyMkRCIFUrMEZFMDAgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKLm++4gDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZXNsZXM+PHRkPiA8Y29kZT5nZXNsZXM7PC9jb2RlPiA8dGQ+IFUrMDJBOTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqpQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktR2ZyPjx0ZD4gPGNvZGU+R2ZyOzwvY29kZT4gPHRkPiBVKzFENTBBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Uijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZnI+PHRkPiA8Y29kZT5nZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSkPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdnPjx0ZD4gPGNvZGU+R2c7PC9jb2RlPiA8dGQ+IFUrMDIyRDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5k8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2c+PHRkPiA8Y29kZT5nZzs8L2NvZGU+IDx0ZD4gVSswMjI2QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nZ2c+PHRkPiA8Y29kZT5nZ2c7PC9jb2RlPiA8dGQ+IFUrMDIyRDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5k8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2ltZWw+PHRkPiA8Y29kZT5naW1lbDs8L2NvZGU+IDx0ZD4gVSswMjEzNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1HSmN5Pjx0ZD4gPGNvZGU+R0pjeTs8L2NvZGU+IDx0ZD4gVSswMDQwMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdqY3k+PHRkPiA8Y29kZT5namN5OzwvY29kZT4gPHRkPiBVKzAwNDUzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0ZM8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2w+PHRkPiA8Y29kZT5nbDs8L2NvZGU+IDx0ZD4gVSswMjI3NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nbGE+PHRkPiA8Y29kZT5nbGE7PC9jb2RlPiA8dGQ+IFUrMDJBQTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqqU8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ2xFPjx0ZD4gPGNvZGU+Z2xFOzwvY29kZT4gPHRkPiBVKzAyQTkyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWdsaj48dGQ+IDxjb2RlPmdsajs8L2NvZGU+IDx0ZD4gVSswMkFBNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nbmFwPjx0ZD4gPGNvZGU+Z25hcDs8L2NvZGU+IDx0ZD4gVSswMkE4QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nbmFwcHJveD48dGQ+IDxjb2RlPmduYXBwcm94OzwvY29kZT4gPHRkPiBVKzAyQThBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWduRT48dGQ+IDxjb2RlPmduRTs8L2NvZGU+IDx0ZD4gVSswMjI2OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nbmU+PHRkPiA8Y29kZT5nbmU7PC9jb2RlPiA8dGQ+IFUrMDJBODggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqog8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ25lcT48dGQ+IDxjb2RlPmduZXE7PC9jb2RlPiA8dGQ+IFUrMDJBODggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqog8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ25lcXE+PHRkPiA8Y29kZT5nbmVxcTs8L2NvZGU+IDx0ZD4gVSswMjI2OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nbnNpbT48dGQ+IDxjb2RlPmduc2ltOzwvY29kZT4gPHRkPiBVKzAyMkU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ounPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdvcGY+PHRkPiA8Y29kZT5Hb3BmOzwvY29kZT4gPHRkPiBVKzFENTNFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Uvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nb3BmPjx0ZD4gPGNvZGU+Z29wZjs8L2NvZGU+IDx0ZD4gVSsxRDU1OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlZg8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3JhdmU+PHRkPiA8Y29kZT5ncmF2ZTs8L2NvZGU+IDx0ZD4gVSswMDA2MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPmA8L3NwYW4+IDx0ciBpZD1lbnRpdHktR3JlYXRlckVxdWFsPjx0ZD4gPGNvZGU+R3JlYXRlckVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMjY1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdyZWF0ZXJFcXVhbExlc3M+PHRkPiA8Y29kZT5HcmVhdGVyRXF1YWxMZXNzOzwvY29kZT4gPHRkPiBVKzAyMkRCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oubPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdyZWF0ZXJGdWxsRXF1YWw+PHRkPiA8Y29kZT5HcmVhdGVyRnVsbEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMjY3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omnPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdyZWF0ZXJHcmVhdGVyPjx0ZD4gPGNvZGU+R3JlYXRlckdyZWF0ZXI7PC9jb2RlPiA8dGQ+IFUrMDJBQTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqqI8L3NwYW4+IDx0ciBpZD1lbnRpdHktR3JlYXRlckxlc3M+PHRkPiA8Y29kZT5HcmVhdGVyTGVzczs8L2NvZGU+IDx0ZD4gVSswMjI3NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1HcmVhdGVyU2xhbnRFcXVhbD48dGQ+IDxjb2RlPkdyZWF0ZXJTbGFudEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyQTdFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qm+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdyZWF0ZXJUaWxkZT48dGQ+IDxjb2RlPkdyZWF0ZXJUaWxkZTs8L2NvZGU+IDx0ZD4gVSswMjI3MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Hc2NyPjx0ZD4gPGNvZGU+R3Njcjs8L2NvZGU+IDx0ZD4gVSsxRDRBMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdkqI8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3Njcj48dGQ+IDxjb2RlPmdzY3I7PC9jb2RlPiA8dGQ+IFUrMDIxMEEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihIo8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3NpbT48dGQ+IDxjb2RlPmdzaW07PC9jb2RlPiA8dGQ+IFUrMDIyNzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibM8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3NpbWU+PHRkPiA8Y29kZT5nc2ltZTs8L2NvZGU+IDx0ZD4gVSswMkE4RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqjjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1nc2ltbD48dGQ+IDxjb2RlPmdzaW1sOzwvY29kZT4gPHRkPiBVKzAyQTkwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdUPjx0ZD4gPGNvZGU+R1Q7PC9jb2RlPiA8dGQ+IFUrMDAwM0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUdULWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+R1Q8L2NvZGU+IDx0ZD4gVSswMDAzRSA8dGQ+IDxzcGFuPj48L3NwYW4+IDx0ciBpZD1lbnRpdHktR3Q+PHRkPiA8Y29kZT5HdDs8L2NvZGU+IDx0ZD4gVSswMjI2QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ndD48dGQ+IDxjb2RlPmd0OzwvY29kZT4gPHRkPiBVKzAwMDNFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Pjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ndC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmd0PC9jb2RlPiA8dGQ+IFUrMDAwM0UgPHRkPiA8c3Bhbj4+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWd0Y2M+PHRkPiA8Y29kZT5ndGNjOzwvY29kZT4gPHRkPiBVKzAyQUE3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqnPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWd0Y2lyPjx0ZD4gPGNvZGU+Z3RjaXI7PC9jb2RlPiA8dGQ+IFUrMDJBN0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbo8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3Rkb3Q+PHRkPiA8Y29kZT5ndGRvdDs8L2NvZGU+IDx0ZD4gVSswMjJENyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLlzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ndGxQYXI+PHRkPiA8Y29kZT5ndGxQYXI7PC9jb2RlPiA8dGQ+IFUrMDI5OTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ippU8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3RxdWVzdD48dGQ+IDxjb2RlPmd0cXVlc3Q7PC9jb2RlPiA8dGQ+IFUrMDJBN0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbw8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3RyYXBwcm94Pjx0ZD4gPGNvZGU+Z3RyYXBwcm94OzwvY29kZT4gPHRkPiBVKzAyQTg2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWd0cmFycj48dGQ+IDxjb2RlPmd0cmFycjs8L2NvZGU+IDx0ZD4gVSswMjk3OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKluDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ndHJkb3Q+PHRkPiA8Y29kZT5ndHJkb3Q7PC9jb2RlPiA8dGQ+IFUrMDIyRDcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5c8L3NwYW4+IDx0ciBpZD1lbnRpdHktZ3RyZXFsZXNzPjx0ZD4gPGNvZGU+Z3RyZXFsZXNzOzwvY29kZT4gPHRkPiBVKzAyMkRCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oubPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWd0cmVxcWxlc3M+PHRkPiA8Y29kZT5ndHJlcXFsZXNzOzwvY29kZT4gPHRkPiBVKzAyQThDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWd0cmxlc3M+PHRkPiA8Y29kZT5ndHJsZXNzOzwvY29kZT4gPHRkPiBVKzAyMjc3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWd0cnNpbT48dGQ+IDxjb2RlPmd0cnNpbTs8L2NvZGU+IDx0ZD4gVSswMjI3MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ndmVydG5lcXE+PHRkPiA8Y29kZT5ndmVydG5lcXE7PC9jb2RlPiA8dGQ+IFUrMDIyNjkgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4omp77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWd2bkU+PHRkPiA8Y29kZT5ndm5FOzwvY29kZT4gPHRkPiBVKzAyMjY5IFUrMEZFMDAgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJqe+4gDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1IYWNlaz48dGQ+IDxjb2RlPkhhY2VrOzwvY29kZT4gPHRkPiBVKzAwMkM3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+y4c8L3NwYW4+IDx0ciBpZD1lbnRpdHktaGFpcnNwPjx0ZD4gPGNvZGU+aGFpcnNwOzwvY29kZT4gPHRkPiBVKzAyMDBBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhhbGY+PHRkPiA8Y29kZT5oYWxmOzwvY29kZT4gPHRkPiBVKzAwMEJEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wr08L3NwYW4+IDx0ciBpZD1lbnRpdHktaGFtaWx0Pjx0ZD4gPGNvZGU+aGFtaWx0OzwvY29kZT4gPHRkPiBVKzAyMTBCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUhBUkRjeT48dGQ+IDxjb2RlPkhBUkRjeTs8L2NvZGU+IDx0ZD4gVSswMDQyQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhhcmRjeT48dGQ+IDxjb2RlPmhhcmRjeTs8L2NvZGU+IDx0ZD4gVSswMDQ0QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhBcnI+PHRkPiA8Y29kZT5oQXJyOzwvY29kZT4gPHRkPiBVKzAyMUQ0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhhcnI+PHRkPiA8Y29kZT5oYXJyOzwvY29kZT4gPHRkPiBVKzAyMTk0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhhcnJjaXI+PHRkPiA8Y29kZT5oYXJyY2lyOzwvY29kZT4gPHRkPiBVKzAyOTQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhhcnJ3Pjx0ZD4gPGNvZGU+aGFycnc7PC9jb2RlPiA8dGQ+IFUrMDIxQUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihq08L3NwYW4+IDx0ciBpZD1lbnRpdHktSGF0Pjx0ZD4gPGNvZGU+SGF0OzwvY29kZT4gPHRkPiBVKzAwMDVFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Xjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1oYmFyPjx0ZD4gPGNvZGU+aGJhcjs8L2NvZGU+IDx0ZD4gVSswMjEwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1IY2lyYz48dGQ+IDxjb2RlPkhjaXJjOzwvY29kZT4gPHRkPiBVKzAwMTI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xKQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktaGNpcmM+PHRkPiA8Y29kZT5oY2lyYzs8L2NvZGU+IDx0ZD4gVSswMDEyNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhlYXJ0cz48dGQ+IDxjb2RlPmhlYXJ0czs8L2NvZGU+IDx0ZD4gVSswMjY2NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKZpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1oZWFydHN1aXQ+PHRkPiA8Y29kZT5oZWFydHN1aXQ7PC9jb2RlPiA8dGQ+IFUrMDI2NjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7imaU8L3NwYW4+IDx0ciBpZD1lbnRpdHktaGVsbGlwPjx0ZD4gPGNvZGU+aGVsbGlwOzwvY29kZT4gPHRkPiBVKzAyMDI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCmPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhlcmNvbj48dGQ+IDxjb2RlPmhlcmNvbjs8L2NvZGU+IDx0ZD4gVSswMjJCOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1IZnI+PHRkPiA8Y29kZT5IZnI7PC9jb2RlPiA8dGQ+IFUrMDIxMEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihIw8L3NwYW4+IDx0ciBpZD1lbnRpdHktaGZyPjx0ZD4gPGNvZGU+aGZyOzwvY29kZT4gPHRkPiBVKzFENTI1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1IaWxiZXJ0U3BhY2U+PHRkPiA8Y29kZT5IaWxiZXJ0U3BhY2U7PC9jb2RlPiA8dGQ+IFUrMDIxMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktaGtzZWFyb3c+PHRkPiA8Y29kZT5oa3NlYXJvdzs8L2NvZGU+IDx0ZD4gVSswMjkyNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1oa3N3YXJvdz48dGQ+IDxjb2RlPmhrc3dhcm93OzwvY29kZT4gPHRkPiBVKzAyOTI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSmPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhvYXJyPjx0ZD4gPGNvZGU+aG9hcnI7PC9jb2RlPiA8dGQ+IFUrMDIxRkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih788L3NwYW4+IDx0ciBpZD1lbnRpdHktaG9tdGh0Pjx0ZD4gPGNvZGU+aG9tdGh0OzwvY29kZT4gPHRkPiBVKzAyMjNCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oi7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhvb2tsZWZ0YXJyb3c+PHRkPiA8Y29kZT5ob29rbGVmdGFycm93OzwvY29kZT4gPHRkPiBVKzAyMUE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oapPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhvb2tyaWdodGFycm93Pjx0ZD4gPGNvZGU+aG9va3JpZ2h0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxQUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihqo8L3NwYW4+IDx0ciBpZD1lbnRpdHktSG9wZj48dGQ+IDxjb2RlPkhvcGY7PC9jb2RlPiA8dGQ+IFUrMDIxMEQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihI08L3NwYW4+IDx0ciBpZD1lbnRpdHktaG9wZj48dGQ+IDxjb2RlPmhvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhvcmJhcj48dGQ+IDxjb2RlPmhvcmJhcjs8L2NvZGU+IDx0ZD4gVSswMjAxNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAlTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ib3Jpem9udGFsTGluZT48dGQ+IDxjb2RlPkhvcml6b250YWxMaW5lOzwvY29kZT4gPHRkPiBVKzAyNTAwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pSAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUhzY3I+PHRkPiA8Y29kZT5Ic2NyOzwvY29kZT4gPHRkPiBVKzAyMTBCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWhzY3I+PHRkPiA8Y29kZT5oc2NyOzwvY29kZT4gPHRkPiBVKzFENEJEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2SvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1oc2xhc2g+PHRkPiA8Y29kZT5oc2xhc2g7PC9jb2RlPiA8dGQ+IFUrMDIxMEYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihI88L3NwYW4+IDx0ciBpZD1lbnRpdHktSHN0cm9rPjx0ZD4gPGNvZGU+SHN0cm9rOzwvY29kZT4gPHRkPiBVKzAwMTI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xKY8L3NwYW4+IDx0ciBpZD1lbnRpdHktaHN0cm9rPjx0ZD4gPGNvZGU+aHN0cm9rOzwvY29kZT4gPHRkPiBVKzAwMTI3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xKc8L3NwYW4+IDx0ciBpZD1lbnRpdHktSHVtcERvd25IdW1wPjx0ZD4gPGNvZGU+SHVtcERvd25IdW1wOzwvY29kZT4gPHRkPiBVKzAyMjRFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUh1bXBFcXVhbD48dGQ+IDxjb2RlPkh1bXBFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI0RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1oeWJ1bGw+PHRkPiA8Y29kZT5oeWJ1bGw7PC9jb2RlPiA8dGQ+IFUrMDIwNDMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igYM8L3NwYW4+IDx0ciBpZD1lbnRpdHktaHlwaGVuPjx0ZD4gPGNvZGU+aHlwaGVuOzwvY29kZT4gPHRkPiBVKzAyMDEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUlhY3V0ZT48dGQ+IDxjb2RlPklhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDBDRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsONPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUlhY3V0ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPklhY3V0ZTwvY29kZT4gPHRkPiBVKzAwMENEIDx0ZD4gPHNwYW4+w408L3NwYW4+IDx0ciBpZD1lbnRpdHktaWFjdXRlPjx0ZD4gPGNvZGU+aWFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMEVEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w608L3NwYW4+IDx0ciBpZD1lbnRpdHktaWFjdXRlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+aWFjdXRlPC9jb2RlPiA8dGQ+IFUrMDAwRUQgPHRkPiA8c3Bhbj7DrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pYz48dGQ+IDxjb2RlPmljOzwvY29kZT4gPHRkPiBVKzAyMDYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oGjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUljaXJjPjx0ZD4gPGNvZGU+SWNpcmM7PC9jb2RlPiA8dGQ+IFUrMDAwQ0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Djjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JY2lyYy1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPkljaXJjPC9jb2RlPiA8dGQ+IFUrMDAwQ0UgPHRkPiA8c3Bhbj7Djjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pY2lyYz48dGQ+IDxjb2RlPmljaXJjOzwvY29kZT4gPHRkPiBVKzAwMEVFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w648L3NwYW4+IDx0ciBpZD1lbnRpdHktaWNpcmMtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5pY2lyYzwvY29kZT4gPHRkPiBVKzAwMEVFIDx0ZD4gPHNwYW4+w648L3NwYW4+IDx0ciBpZD1lbnRpdHktSWN5Pjx0ZD4gPGNvZGU+SWN5OzwvY29kZT4gPHRkPiBVKzAwNDE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Jg8L3NwYW4+IDx0ciBpZD1lbnRpdHktaWN5Pjx0ZD4gPGNvZGU+aWN5OzwvY29kZT4gPHRkPiBVKzAwNDM4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Lg8L3NwYW4+IDx0ciBpZD1lbnRpdHktSWRvdD48dGQ+IDxjb2RlPklkb3Q7PC9jb2RlPiA8dGQ+IFUrMDAxMzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JRWN5Pjx0ZD4gPGNvZGU+SUVjeTs8L2NvZGU+IDx0ZD4gVSswMDQxNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCVPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWllY3k+PHRkPiA8Y29kZT5pZWN5OzwvY29kZT4gPHRkPiBVKzAwNDM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0LU8L3NwYW4+IDx0ciBpZD1lbnRpdHktaWV4Y2w+PHRkPiA8Y29kZT5pZXhjbDs8L2NvZGU+IDx0ZD4gVSswMDBBMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKhPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlleGNsLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+aWV4Y2w8L2NvZGU+IDx0ZD4gVSswMDBBMSA8dGQ+IDxzcGFuPsKhPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlmZj48dGQ+IDxjb2RlPmlmZjs8L2NvZGU+IDx0ZD4gVSswMjFENCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JZnI+PHRkPiA8Y29kZT5JZnI7PC9jb2RlPiA8dGQ+IFUrMDIxMTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihJE8L3NwYW4+IDx0ciBpZD1lbnRpdHktaWZyPjx0ZD4gPGNvZGU+aWZyOzwvY29kZT4gPHRkPiBVKzFENTI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Upjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JZ3JhdmU+PHRkPiA8Y29kZT5JZ3JhdmU7PC9jb2RlPiA8dGQ+IFUrMDAwQ0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DjDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JZ3JhdmUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5JZ3JhdmU8L2NvZGU+IDx0ZD4gVSswMDBDQyA8dGQ+IDxzcGFuPsOMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlncmF2ZT48dGQ+IDxjb2RlPmlncmF2ZTs8L2NvZGU+IDx0ZD4gVSswMDBFQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlncmF2ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPmlncmF2ZTwvY29kZT4gPHRkPiBVKzAwMEVDIDx0ZD4gPHNwYW4+w6w8L3NwYW4+IDx0ciBpZD1lbnRpdHktaWk+PHRkPiA8Y29kZT5paTs8L2NvZGU+IDx0ZD4gVSswMjE0OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKFiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1paWlpbnQ+PHRkPiA8Y29kZT5paWlpbnQ7PC9jb2RlPiA8dGQ+IFUrMDJBMEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqIw8L3NwYW4+IDx0ciBpZD1lbnRpdHktaWlpbnQ+PHRkPiA8Y29kZT5paWludDs8L2NvZGU+IDx0ZD4gVSswMjIyRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1paW5maW4+PHRkPiA8Y29kZT5paW5maW47PC9jb2RlPiA8dGQ+IFUrMDI5REMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ip5w8L3NwYW4+IDx0ciBpZD1lbnRpdHktaWlvdGE+PHRkPiA8Y29kZT5paW90YTs8L2NvZGU+IDx0ZD4gVSswMjEyOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JSmxpZz48dGQ+IDxjb2RlPklKbGlnOzwvY29kZT4gPHRkPiBVKzAwMTMyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xLI8L3NwYW4+IDx0ciBpZD1lbnRpdHktaWpsaWc+PHRkPiA8Y29kZT5pamxpZzs8L2NvZGU+IDx0ZD4gVSswMDEzMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSzPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUltPjx0ZD4gPGNvZGU+SW07PC9jb2RlPiA8dGQ+IFUrMDIxMTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihJE8L3NwYW4+IDx0ciBpZD1lbnRpdHktSW1hY3I+PHRkPiA8Y29kZT5JbWFjcjs8L2NvZGU+IDx0ZD4gVSswMDEyQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsSqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWltYWNyPjx0ZD4gPGNvZGU+aW1hY3I7PC9jb2RlPiA8dGQ+IFUrMDAxMkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Eqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pbWFnZT48dGQ+IDxjb2RlPmltYWdlOzwvY29kZT4gPHRkPiBVKzAyMTExIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUltYWdpbmFyeUk+PHRkPiA8Y29kZT5JbWFnaW5hcnlJOzwvY29kZT4gPHRkPiBVKzAyMTQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oWIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWltYWdsaW5lPjx0ZD4gPGNvZGU+aW1hZ2xpbmU7PC9jb2RlPiA8dGQ+IFUrMDIxMTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihJA8L3NwYW4+IDx0ciBpZD1lbnRpdHktaW1hZ3BhcnQ+PHRkPiA8Y29kZT5pbWFncGFydDs8L2NvZGU+IDx0ZD4gVSswMjExMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pbWF0aD48dGQ+IDxjb2RlPmltYXRoOzwvY29kZT4gPHRkPiBVKzAwMTMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xLE8L3NwYW4+IDx0ciBpZD1lbnRpdHktaW1vZj48dGQ+IDxjb2RlPmltb2Y7PC9jb2RlPiA8dGQ+IFUrMDIyQjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirc8L3NwYW4+IDx0ciBpZD1lbnRpdHktaW1wZWQ+PHRkPiA8Y29kZT5pbXBlZDs8L2NvZGU+IDx0ZD4gVSswMDFCNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsa1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUltcGxpZXM+PHRkPiA8Y29kZT5JbXBsaWVzOzwvY29kZT4gPHRkPiBVKzAyMUQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWluPjx0ZD4gPGNvZGU+aW47PC9jb2RlPiA8dGQ+IFUrMDIyMDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIg8L3NwYW4+IDx0ciBpZD1lbnRpdHktaW5jYXJlPjx0ZD4gPGNvZGU+aW5jYXJlOzwvY29kZT4gPHRkPiBVKzAyMTA1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWluZmluPjx0ZD4gPGNvZGU+aW5maW47PC9jb2RlPiA8dGQ+IFUrMDIyMUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJ48L3NwYW4+IDx0ciBpZD1lbnRpdHktaW5maW50aWU+PHRkPiA8Y29kZT5pbmZpbnRpZTs8L2NvZGU+IDx0ZD4gVSswMjlERCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKnnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pbm9kb3Q+PHRkPiA8Y29kZT5pbm9kb3Q7PC9jb2RlPiA8dGQ+IFUrMDAxMzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EsTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JbnQ+PHRkPiA8Y29kZT5JbnQ7PC9jb2RlPiA8dGQ+IFUrMDIyMkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKw8L3NwYW4+IDx0ciBpZD1lbnRpdHktaW50Pjx0ZD4gPGNvZGU+aW50OzwvY29kZT4gPHRkPiBVKzAyMjJCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oirPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWludGNhbD48dGQ+IDxjb2RlPmludGNhbDs8L2NvZGU+IDx0ZD4gVSswMjJCQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKujwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pbnRlZ2Vycz48dGQ+IDxjb2RlPmludGVnZXJzOzwvY29kZT4gPHRkPiBVKzAyMTI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSkPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUludGVncmFsPjx0ZD4gPGNvZGU+SW50ZWdyYWw7PC9jb2RlPiA8dGQ+IFUrMDIyMkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKs8L3NwYW4+IDx0ciBpZD1lbnRpdHktaW50ZXJjYWw+PHRkPiA8Y29kZT5pbnRlcmNhbDs8L2NvZGU+IDx0ZD4gVSswMjJCQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKujwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JbnRlcnNlY3Rpb24+PHRkPiA8Y29kZT5JbnRlcnNlY3Rpb247PC9jb2RlPiA8dGQ+IFUrMDIyQzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4I8L3NwYW4+IDx0ciBpZD1lbnRpdHktaW50bGFyaGs+PHRkPiA8Y29kZT5pbnRsYXJoazs8L2NvZGU+IDx0ZD4gVSswMkExNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKolzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pbnRwcm9kPjx0ZD4gPGNvZGU+aW50cHJvZDs8L2NvZGU+IDx0ZD4gVSswMkEzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKovDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JbnZpc2libGVDb21tYT48dGQ+IDxjb2RlPkludmlzaWJsZUNvbW1hOzwvY29kZT4gPHRkPiBVKzAyMDYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oGjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUludmlzaWJsZVRpbWVzPjx0ZD4gPGNvZGU+SW52aXNpYmxlVGltZXM7PC9jb2RlPiA8dGQ+IFUrMDIwNjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igaI8L3NwYW4+IDx0ciBpZD1lbnRpdHktSU9jeT48dGQ+IDxjb2RlPklPY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7QgTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pb2N5Pjx0ZD4gPGNvZGU+aW9jeTs8L2NvZGU+IDx0ZD4gVSswMDQ1MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUlvZ29uPjx0ZD4gPGNvZGU+SW9nb247PC9jb2RlPiA8dGQ+IFUrMDAxMkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Erjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pb2dvbj48dGQ+IDxjb2RlPmlvZ29uOzwvY29kZT4gPHRkPiBVKzAwMTJGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xK88L3NwYW4+IDx0ciBpZD1lbnRpdHktSW9wZj48dGQ+IDxjb2RlPklvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlvcGY+PHRkPiA8Y29kZT5pb3BmOzwvY29kZT4gPHRkPiBVKzFENTVBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Jb3RhPjx0ZD4gPGNvZGU+SW90YTs8L2NvZGU+IDx0ZD4gVSswMDM5OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6ZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlvdGE+PHRkPiA8Y29kZT5pb3RhOzwvY29kZT4gPHRkPiBVKzAwM0I5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zrk8L3NwYW4+IDx0ciBpZD1lbnRpdHktaXByb2Q+PHRkPiA8Y29kZT5pcHJvZDs8L2NvZGU+IDx0ZD4gVSswMkEzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKovDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pcXVlc3Q+PHRkPiA8Y29kZT5pcXVlc3Q7PC9jb2RlPiA8dGQ+IFUrMDAwQkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Cvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pcXVlc3QtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5pcXVlc3Q8L2NvZGU+IDx0ZD4gVSswMDBCRiA8dGQ+IDxzcGFuPsK/PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUlzY3I+PHRkPiA8Y29kZT5Jc2NyOzwvY29kZT4gPHRkPiBVKzAyMTEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlzY3I+PHRkPiA8Y29kZT5pc2NyOzwvY29kZT4gPHRkPiBVKzFENEJFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Svjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pc2luPjx0ZD4gPGNvZGU+aXNpbjs8L2NvZGU+IDx0ZD4gVSswMjIwOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pc2luZG90Pjx0ZD4gPGNvZGU+aXNpbmRvdDs8L2NvZGU+IDx0ZD4gVSswMjJGNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pc2luRT48dGQ+IDxjb2RlPmlzaW5FOzwvY29kZT4gPHRkPiBVKzAyMkY5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ou5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlzaW5zPjx0ZD4gPGNvZGU+aXNpbnM7PC9jb2RlPiA8dGQ+IFUrMDIyRjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii7Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktaXNpbnN2Pjx0ZD4gPGNvZGU+aXNpbnN2OzwvY29kZT4gPHRkPiBVKzAyMkYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouzPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWlzaW52Pjx0ZD4gPGNvZGU+aXNpbnY7PC9jb2RlPiA8dGQ+IFUrMDIyMDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIg8L3NwYW4+IDx0ciBpZD1lbnRpdHktaXQ+PHRkPiA8Y29kZT5pdDs8L2NvZGU+IDx0ZD4gVSswMjA2MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKBojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JdGlsZGU+PHRkPiA8Y29kZT5JdGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDAxMjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1pdGlsZGU+PHRkPiA8Y29kZT5pdGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDAxMjkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1JdWtjeT48dGQ+IDxjb2RlPkl1a2N5OzwvY29kZT4gPHRkPiBVKzAwNDA2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0IY8L3NwYW4+IDx0ciBpZD1lbnRpdHktaXVrY3k+PHRkPiA8Y29kZT5pdWtjeTs8L2NvZGU+IDx0ZD4gVSswMDQ1NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUl1bWw+PHRkPiA8Y29kZT5JdW1sOzwvY29kZT4gPHRkPiBVKzAwMENGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w488L3NwYW4+IDx0ciBpZD1lbnRpdHktSXVtbC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPkl1bWw8L2NvZGU+IDx0ZD4gVSswMDBDRiA8dGQ+IDxzcGFuPsOPPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWl1bWw+PHRkPiA8Y29kZT5pdW1sOzwvY29kZT4gPHRkPiBVKzAwMEVGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w688L3NwYW4+IDx0ciBpZD1lbnRpdHktaXVtbC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPml1bWw8L2NvZGU+IDx0ZD4gVSswMDBFRiA8dGQ+IDxzcGFuPsOvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUpjaXJjPjx0ZD4gPGNvZGU+SmNpcmM7PC9jb2RlPiA8dGQ+IFUrMDAxMzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EtDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1qY2lyYz48dGQ+IDxjb2RlPmpjaXJjOzwvY29kZT4gPHRkPiBVKzAwMTM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xLU8L3NwYW4+IDx0ciBpZD1lbnRpdHktSmN5Pjx0ZD4gPGNvZGU+SmN5OzwvY29kZT4gPHRkPiBVKzAwNDE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Jk8L3NwYW4+IDx0ciBpZD1lbnRpdHktamN5Pjx0ZD4gPGNvZGU+amN5OzwvY29kZT4gPHRkPiBVKzAwNDM5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Lk8L3NwYW4+IDx0ciBpZD1lbnRpdHktSmZyPjx0ZD4gPGNvZGU+SmZyOzwvY29kZT4gPHRkPiBVKzFENTBEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1qZnI+PHRkPiA8Y29kZT5qZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSnPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWptYXRoPjx0ZD4gPGNvZGU+am1hdGg7PC9jb2RlPiA8dGQ+IFUrMDAyMzcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Itzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Kb3BmPjx0ZD4gPGNvZGU+Sm9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU0MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlYE8L3NwYW4+IDx0ciBpZD1lbnRpdHktam9wZj48dGQ+IDxjb2RlPmpvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWbPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUpzY3I+PHRkPiA8Y29kZT5Kc2NyOzwvY29kZT4gPHRkPiBVKzFENEE1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2SpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1qc2NyPjx0ZD4gPGNvZGU+anNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRCRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdkr88L3NwYW4+IDx0ciBpZD1lbnRpdHktSnNlcmN5Pjx0ZD4gPGNvZGU+SnNlcmN5OzwvY29kZT4gPHRkPiBVKzAwNDA4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Ig8L3NwYW4+IDx0ciBpZD1lbnRpdHktanNlcmN5Pjx0ZD4gPGNvZGU+anNlcmN5OzwvY29kZT4gPHRkPiBVKzAwNDU4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Zg8L3NwYW4+IDx0ciBpZD1lbnRpdHktSnVrY3k+PHRkPiA8Y29kZT5KdWtjeTs8L2NvZGU+IDx0ZD4gVSswMDQwNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWp1a2N5Pjx0ZD4gPGNvZGU+anVrY3k7PC9jb2RlPiA8dGQ+IFUrMDA0NTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7RlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1LYXBwYT48dGQ+IDxjb2RlPkthcHBhOzwvY29kZT4gPHRkPiBVKzAwMzlBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zpo8L3NwYW4+IDx0ciBpZD1lbnRpdHkta2FwcGE+PHRkPiA8Y29kZT5rYXBwYTs8L2NvZGU+IDx0ZD4gVSswMDNCQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs66PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWthcHBhdj48dGQ+IDxjb2RlPmthcHBhdjs8L2NvZGU+IDx0ZD4gVSswMDNGMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+wPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUtjZWRpbD48dGQ+IDxjb2RlPktjZWRpbDs8L2NvZGU+IDx0ZD4gVSswMDEzNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWtjZWRpbD48dGQ+IDxjb2RlPmtjZWRpbDs8L2NvZGU+IDx0ZD4gVSswMDEzNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUtjeT48dGQ+IDxjb2RlPktjeTs8L2NvZGU+IDx0ZD4gVSswMDQxQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWtjeT48dGQ+IDxjb2RlPmtjeTs8L2NvZGU+IDx0ZD4gVSswMDQzQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtC6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUtmcj48dGQ+IDxjb2RlPktmcjs8L2NvZGU+IDx0ZD4gVSsxRDUwRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlI48L3NwYW4+IDx0ciBpZD1lbnRpdHkta2ZyPjx0ZD4gPGNvZGU+a2ZyOzwvY29kZT4gPHRkPiBVKzFENTI4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1rZ3JlZW4+PHRkPiA8Y29kZT5rZ3JlZW47PC9jb2RlPiA8dGQ+IFUrMDAxMzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7EuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1LSGN5Pjx0ZD4gPGNvZGU+S0hjeTs8L2NvZGU+IDx0ZD4gVSswMDQyNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtClPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWtoY3k+PHRkPiA8Y29kZT5raGN5OzwvY29kZT4gPHRkPiBVKzAwNDQ1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0YU8L3NwYW4+IDx0ciBpZD1lbnRpdHktS0pjeT48dGQ+IDxjb2RlPktKY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7QjDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ramN5Pjx0ZD4gPGNvZGU+a2pjeTs8L2NvZGU+IDx0ZD4gVSswMDQ1QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGcPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUtvcGY+PHRkPiA8Y29kZT5Lb3BmOzwvY29kZT4gPHRkPiBVKzFENTQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1rb3BmPjx0ZD4gPGNvZGU+a29wZjs8L2NvZGU+IDx0ZD4gVSsxRDU1QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlZw8L3NwYW4+IDx0ciBpZD1lbnRpdHktS3Njcj48dGQ+IDxjb2RlPktzY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0QTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZKmPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWtzY3I+PHRkPiA8Y29kZT5rc2NyOzwvY29kZT4gPHRkPiBVKzFENEMwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2TgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sQWFycj48dGQ+IDxjb2RlPmxBYXJyOzwvY29kZT4gPHRkPiBVKzAyMURBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxhY3V0ZT48dGQ+IDxjb2RlPkxhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDEzOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhY3V0ZT48dGQ+IDxjb2RlPmxhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDEzQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhZW1wdHl2Pjx0ZD4gPGNvZGU+bGFlbXB0eXY7PC9jb2RlPiA8dGQ+IFUrMDI5QjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iprQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFncmFuPjx0ZD4gPGNvZGU+bGFncmFuOzwvY29kZT4gPHRkPiBVKzAyMTEyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxhbWJkYT48dGQ+IDxjb2RlPkxhbWJkYTs8L2NvZGU+IDx0ZD4gVSswMDM5QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6bPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhbWJkYT48dGQ+IDxjb2RlPmxhbWJkYTs8L2NvZGU+IDx0ZD4gVSswMDNCQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs67PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxhbmc+PHRkPiA8Y29kZT5MYW5nOzwvY29kZT4gPHRkPiBVKzAyN0VBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+qPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhbmc+PHRkPiA8Y29kZT5sYW5nOzwvY29kZT4gPHRkPiBVKzAyN0U4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+oPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhbmdkPjx0ZD4gPGNvZGU+bGFuZ2Q7PC9jb2RlPiA8dGQ+IFUrMDI5OTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ippE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFuZ2xlPjx0ZD4gPGNvZGU+bGFuZ2xlOzwvY29kZT4gPHRkPiBVKzAyN0U4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+oPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhcD48dGQ+IDxjb2RlPmxhcDs8L2NvZGU+IDx0ZD4gVSswMkE4NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MYXBsYWNldHJmPjx0ZD4gPGNvZGU+TGFwbGFjZXRyZjs8L2NvZGU+IDx0ZD4gVSswMjExMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sYXF1bz48dGQ+IDxjb2RlPmxhcXVvOzwvY29kZT4gPHRkPiBVKzAwMEFCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wqs8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFxdW8tbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5sYXF1bzwvY29kZT4gPHRkPiBVKzAwMEFCIDx0ZD4gPHNwYW4+wqs8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGFycj48dGQ+IDxjb2RlPkxhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxOUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihp48L3NwYW4+IDx0ciBpZD1lbnRpdHktbEFycj48dGQ+IDxjb2RlPmxBcnI7PC9jb2RlPiA8dGQ+IFUrMDIxRDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5A8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFycj48dGQ+IDxjb2RlPmxhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxOTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpA8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFycmI+PHRkPiA8Y29kZT5sYXJyYjs8L2NvZGU+IDx0ZD4gVSswMjFFNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sYXJyYmZzPjx0ZD4gPGNvZGU+bGFycmJmczs8L2NvZGU+IDx0ZD4gVSswMjkxRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKknzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sYXJyZnM+PHRkPiA8Y29kZT5sYXJyZnM7PC9jb2RlPiA8dGQ+IFUrMDI5MUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipJ08L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFycmhrPjx0ZD4gPGNvZGU+bGFycmhrOzwvY29kZT4gPHRkPiBVKzAyMUE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oapPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhcnJscD48dGQ+IDxjb2RlPmxhcnJscDs8L2NvZGU+IDx0ZD4gVSswMjFBQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sYXJycGw+PHRkPiA8Y29kZT5sYXJycGw7PC9jb2RlPiA8dGQ+IFUrMDI5MzkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipLk8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFycnNpbT48dGQ+IDxjb2RlPmxhcnJzaW07PC9jb2RlPiA8dGQ+IFUrMDI5NzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipbM8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGFycnRsPjx0ZD4gPGNvZGU+bGFycnRsOzwvY29kZT4gPHRkPiBVKzAyMUEyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhdD48dGQ+IDxjb2RlPmxhdDs8L2NvZGU+IDx0ZD4gVSswMkFBQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sQXRhaWw+PHRkPiA8Y29kZT5sQXRhaWw7PC9jb2RlPiA8dGQ+IFUrMDI5MUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipJs8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGF0YWlsPjx0ZD4gPGNvZGU+bGF0YWlsOzwvY29kZT4gPHRkPiBVKzAyOTE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhdGU+PHRkPiA8Y29kZT5sYXRlOzwvY29kZT4gPHRkPiBVKzAyQUFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqtPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxhdGVzPjx0ZD4gPGNvZGU+bGF0ZXM7PC9jb2RlPiA8dGQ+IFUrMDJBQUQgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qqt77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxCYXJyPjx0ZD4gPGNvZGU+bEJhcnI7PC9jb2RlPiA8dGQ+IFUrMDI5MEUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipI48L3NwYW4+IDx0ciBpZD1lbnRpdHktbGJhcnI+PHRkPiA8Y29kZT5sYmFycjs8L2NvZGU+IDx0ZD4gVSswMjkwQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkjDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sYmJyaz48dGQ+IDxjb2RlPmxiYnJrOzwvY29kZT4gPHRkPiBVKzAyNzcyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p2yPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxicmFjZT48dGQ+IDxjb2RlPmxicmFjZTs8L2NvZGU+IDx0ZD4gVSswMDA3QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPns8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGJyYWNrPjx0ZD4gPGNvZGU+bGJyYWNrOzwvY29kZT4gPHRkPiBVKzAwMDVCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Wzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sYnJrZT48dGQ+IDxjb2RlPmxicmtlOzwvY29kZT4gPHRkPiBVKzAyOThCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qaLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxicmtzbGQ+PHRkPiA8Y29kZT5sYnJrc2xkOzwvY29kZT4gPHRkPiBVKzAyOThGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qaPPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxicmtzbHU+PHRkPiA8Y29kZT5sYnJrc2x1OzwvY29kZT4gPHRkPiBVKzAyOThEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qaNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxjYXJvbj48dGQ+IDxjb2RlPkxjYXJvbjs8L2NvZGU+IDx0ZD4gVSswMDEzRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxjYXJvbj48dGQ+IDxjb2RlPmxjYXJvbjs8L2NvZGU+IDx0ZD4gVSswMDEzRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxjZWRpbD48dGQ+IDxjb2RlPkxjZWRpbDs8L2NvZGU+IDx0ZD4gVSswMDEzQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxjZWRpbD48dGQ+IDxjb2RlPmxjZWRpbDs8L2NvZGU+IDx0ZD4gVSswMDEzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS8PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxjZWlsPjx0ZD4gPGNvZGU+bGNlaWw7PC9jb2RlPiA8dGQ+IFUrMDIzMDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijIg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGN1Yj48dGQ+IDxjb2RlPmxjdWI7PC9jb2RlPiA8dGQ+IFUrMDAwN0IgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD57PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxjeT48dGQ+IDxjb2RlPkxjeTs8L2NvZGU+IDx0ZD4gVSswMDQxQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCbPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxjeT48dGQ+IDxjb2RlPmxjeTs8L2NvZGU+IDx0ZD4gVSswMDQzQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtC7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxkY2E+PHRkPiA8Y29kZT5sZGNhOzwvY29kZT4gPHRkPiBVKzAyOTM2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qS2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxkcXVvPjx0ZD4gPGNvZGU+bGRxdW87PC9jb2RlPiA8dGQ+IFUrMDIwMUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igJw8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGRxdW9yPjx0ZD4gPGNvZGU+bGRxdW9yOzwvY29kZT4gPHRkPiBVKzAyMDFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxkcmRoYXI+PHRkPiA8Y29kZT5sZHJkaGFyOzwvY29kZT4gPHRkPiBVKzAyOTY3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWnPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxkcnVzaGFyPjx0ZD4gPGNvZGU+bGRydXNoYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipYs8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGRzaD48dGQ+IDxjb2RlPmxkc2g7PC9jb2RlPiA8dGQ+IFUrMDIxQjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihrI8L3NwYW4+IDx0ciBpZD1lbnRpdHktbEU+PHRkPiA8Y29kZT5sRTs8L2NvZGU+IDx0ZD4gVSswMjI2NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZT48dGQ+IDxjb2RlPmxlOzwvY29kZT4gPHRkPiBVKzAyMjY0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omkPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnRBbmdsZUJyYWNrZXQ+PHRkPiA8Y29kZT5MZWZ0QW5nbGVCcmFja2V0OzwvY29kZT4gPHRkPiBVKzAyN0U4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+oPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnRBcnJvdz48dGQ+IDxjb2RlPkxlZnRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0YXJyb3c+PHRkPiA8Y29kZT5MZWZ0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxRDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5A8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVmdGFycm93Pjx0ZD4gPGNvZGU+bGVmdGFycm93OzwvY29kZT4gPHRkPiBVKzAyMTkwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaQPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnRBcnJvd0Jhcj48dGQ+IDxjb2RlPkxlZnRBcnJvd0Jhcjs8L2NvZGU+IDx0ZD4gVSswMjFFNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0QXJyb3dSaWdodEFycm93Pjx0ZD4gPGNvZGU+TGVmdEFycm93UmlnaHRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFDNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHhjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZWZ0YXJyb3d0YWlsPjx0ZD4gPGNvZGU+bGVmdGFycm93dGFpbDs8L2NvZGU+IDx0ZD4gVSswMjFBMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0Q2VpbGluZz48dGQ+IDxjb2RlPkxlZnRDZWlsaW5nOzwvY29kZT4gPHRkPiBVKzAyMzA4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oyIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnREb3VibGVCcmFja2V0Pjx0ZD4gPGNvZGU+TGVmdERvdWJsZUJyYWNrZXQ7PC9jb2RlPiA8dGQ+IFUrMDI3RTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in6Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdERvd25UZWVWZWN0b3I+PHRkPiA8Y29kZT5MZWZ0RG93blRlZVZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjk2MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKloTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0RG93blZlY3Rvcj48dGQ+IDxjb2RlPkxlZnREb3duVmVjdG9yOzwvY29kZT4gPHRkPiBVKzAyMUMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnREb3duVmVjdG9yQmFyPjx0ZD4gPGNvZGU+TGVmdERvd25WZWN0b3JCYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZk8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdEZsb29yPjx0ZD4gPGNvZGU+TGVmdEZsb29yOzwvY29kZT4gPHRkPiBVKzAyMzBBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oyKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlZnRoYXJwb29uZG93bj48dGQ+IDxjb2RlPmxlZnRoYXJwb29uZG93bjs8L2NvZGU+IDx0ZD4gVSswMjFCRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZWZ0aGFycG9vbnVwPjx0ZD4gPGNvZGU+bGVmdGhhcnBvb251cDs8L2NvZGU+IDx0ZD4gVSswMjFCQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZWZ0bGVmdGFycm93cz48dGQ+IDxjb2RlPmxlZnRsZWZ0YXJyb3dzOzwvY29kZT4gPHRkPiBVKzAyMUM3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnRSaWdodEFycm93Pjx0ZD4gPGNvZGU+TGVmdFJpZ2h0QXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdHJpZ2h0YXJyb3c+PHRkPiA8Y29kZT5MZWZ0cmlnaHRhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFENCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZWZ0cmlnaHRhcnJvdz48dGQ+IDxjb2RlPmxlZnRyaWdodGFycm93OzwvY29kZT4gPHRkPiBVKzAyMTk0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlZnRyaWdodGFycm93cz48dGQ+IDxjb2RlPmxlZnRyaWdodGFycm93czs8L2NvZGU+IDx0ZD4gVSswMjFDNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHhjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZWZ0cmlnaHRoYXJwb29ucz48dGQ+IDxjb2RlPmxlZnRyaWdodGhhcnBvb25zOzwvY29kZT4gPHRkPiBVKzAyMUNCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlZnRyaWdodHNxdWlnYXJyb3c+PHRkPiA8Y29kZT5sZWZ0cmlnaHRzcXVpZ2Fycm93OzwvY29kZT4gPHRkPiBVKzAyMUFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oatPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnRSaWdodFZlY3Rvcj48dGQ+IDxjb2RlPkxlZnRSaWdodFZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjk0RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKljjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0VGVlPjx0ZD4gPGNvZGU+TGVmdFRlZTs8L2NvZGU+IDx0ZD4gVSswMjJBMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0VGVlQXJyb3c+PHRkPiA8Y29kZT5MZWZ0VGVlQXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxQTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihqQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdFRlZVZlY3Rvcj48dGQ+IDxjb2RlPkxlZnRUZWVWZWN0b3I7PC9jb2RlPiA8dGQ+IFUrMDI5NUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZo8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVmdHRocmVldGltZXM+PHRkPiA8Y29kZT5sZWZ0dGhyZWV0aW1lczs8L2NvZGU+IDx0ZD4gVSswMjJDQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0VHJpYW5nbGU+PHRkPiA8Y29kZT5MZWZ0VHJpYW5nbGU7PC9jb2RlPiA8dGQ+IFUrMDIyQjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirI8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdFRyaWFuZ2xlQmFyPjx0ZD4gPGNvZGU+TGVmdFRyaWFuZ2xlQmFyOzwvY29kZT4gPHRkPiBVKzAyOUNGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qePPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnRUcmlhbmdsZUVxdWFsPjx0ZD4gPGNvZGU+TGVmdFRyaWFuZ2xlRXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyQjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdFVwRG93blZlY3Rvcj48dGQ+IDxjb2RlPkxlZnRVcERvd25WZWN0b3I7PC9jb2RlPiA8dGQ+IFUrMDI5NTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZE8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdFVwVGVlVmVjdG9yPjx0ZD4gPGNvZGU+TGVmdFVwVGVlVmVjdG9yOzwvY29kZT4gPHRkPiBVKzAyOTYwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWgPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlZnRVcFZlY3Rvcj48dGQ+IDxjb2RlPkxlZnRVcFZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjFCRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZWZ0VXBWZWN0b3JCYXI+PHRkPiA8Y29kZT5MZWZ0VXBWZWN0b3JCYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdFZlY3Rvcj48dGQ+IDxjb2RlPkxlZnRWZWN0b3I7PC9jb2RlPiA8dGQ+IFUrMDIxQkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihrw8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVmdFZlY3RvckJhcj48dGQ+IDxjb2RlPkxlZnRWZWN0b3JCYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZI8L3NwYW4+IDx0ciBpZD1lbnRpdHktbEVnPjx0ZD4gPGNvZGU+bEVnOzwvY29kZT4gPHRkPiBVKzAyQThCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlZz48dGQ+IDxjb2RlPmxlZzs8L2NvZGU+IDx0ZD4gVSswMjJEQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZXE+PHRkPiA8Y29kZT5sZXE7PC9jb2RlPiA8dGQ+IFUrMDIyNjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiaQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVxcT48dGQ+IDxjb2RlPmxlcXE7PC9jb2RlPiA8dGQ+IFUrMDIyNjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiaY8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVxc2xhbnQ+PHRkPiA8Y29kZT5sZXFzbGFudDs8L2NvZGU+IDx0ZD4gVSswMkE3RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZXM+PHRkPiA8Y29kZT5sZXM7PC9jb2RlPiA8dGQ+IFUrMDJBN0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqb08L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVzY2M+PHRkPiA8Y29kZT5sZXNjYzs8L2NvZGU+IDx0ZD4gVSswMkFBOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZXNkb3Q+PHRkPiA8Y29kZT5sZXNkb3Q7PC9jb2RlPiA8dGQ+IFUrMDJBN0YgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqb88L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVzZG90bz48dGQ+IDxjb2RlPmxlc2RvdG87PC9jb2RlPiA8dGQ+IFUrMDJBODEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqoE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVzZG90b3I+PHRkPiA8Y29kZT5sZXNkb3Rvcjs8L2NvZGU+IDx0ZD4gVSswMkE4MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqgzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZXNnPjx0ZD4gPGNvZGU+bGVzZzs8L2NvZGU+IDx0ZD4gVSswMjJEQSBVKzBGRTAwIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7ii5rvuIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVzZ2VzPjx0ZD4gPGNvZGU+bGVzZ2VzOzwvY29kZT4gPHRkPiBVKzAyQTkzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlc3NhcHByb3g+PHRkPiA8Y29kZT5sZXNzYXBwcm94OzwvY29kZT4gPHRkPiBVKzAyQTg1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlc3Nkb3Q+PHRkPiA8Y29kZT5sZXNzZG90OzwvY29kZT4gPHRkPiBVKzAyMkQ2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlc3NlcWd0cj48dGQ+IDxjb2RlPmxlc3NlcWd0cjs8L2NvZGU+IDx0ZD4gVSswMjJEQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZXNzZXFxZ3RyPjx0ZD4gPGNvZGU+bGVzc2VxcWd0cjs8L2NvZGU+IDx0ZD4gVSswMkE4QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZXNzRXF1YWxHcmVhdGVyPjx0ZD4gPGNvZGU+TGVzc0VxdWFsR3JlYXRlcjs8L2NvZGU+IDx0ZD4gVSswMjJEQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZXNzRnVsbEVxdWFsPjx0ZD4gPGNvZGU+TGVzc0Z1bGxFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI2NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZXNzR3JlYXRlcj48dGQ+IDxjb2RlPkxlc3NHcmVhdGVyOzwvY29kZT4gPHRkPiBVKzAyMjc2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxlc3NndHI+PHRkPiA8Y29kZT5sZXNzZ3RyOzwvY29kZT4gPHRkPiBVKzAyMjc2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxlc3NMZXNzPjx0ZD4gPGNvZGU+TGVzc0xlc3M7PC9jb2RlPiA8dGQ+IFUrMDJBQTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqqE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGVzc3NpbT48dGQ+IDxjb2RlPmxlc3NzaW07PC9jb2RlPiA8dGQ+IFUrMDIyNzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibI8L3NwYW4+IDx0ciBpZD1lbnRpdHktTGVzc1NsYW50RXF1YWw+PHRkPiA8Y29kZT5MZXNzU2xhbnRFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMkE3RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZXNzVGlsZGU+PHRkPiA8Y29kZT5MZXNzVGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyNzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibI8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGZpc2h0Pjx0ZD4gPGNvZGU+bGZpc2h0OzwvY29kZT4gPHRkPiBVKzAyOTdDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qW8PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxmbG9vcj48dGQ+IDxjb2RlPmxmbG9vcjs8L2NvZGU+IDx0ZD4gVSswMjMwQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MZnI+PHRkPiA8Y29kZT5MZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MEYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSPPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxmcj48dGQ+IDxjb2RlPmxmcjs8L2NvZGU+IDx0ZD4gVSsxRDUyOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlKk8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGc+PHRkPiA8Y29kZT5sZzs8L2NvZGU+IDx0ZD4gVSswMjI3NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sZ0U+PHRkPiA8Y29kZT5sZ0U7PC9jb2RlPiA8dGQ+IFUrMDJBOTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqpE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbEhhcj48dGQ+IDxjb2RlPmxIYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipaI8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGhhcmQ+PHRkPiA8Y29kZT5saGFyZDs8L2NvZGU+IDx0ZD4gVSswMjFCRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1saGFydT48dGQ+IDxjb2RlPmxoYXJ1OzwvY29kZT4gPHRkPiBVKzAyMUJDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oa8PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxoYXJ1bD48dGQ+IDxjb2RlPmxoYXJ1bDs8L2NvZGU+IDx0ZD4gVSswMjk2QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1saGJsaz48dGQ+IDxjb2RlPmxoYmxrOzwvY29kZT4gPHRkPiBVKzAyNTg0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4paEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxKY3k+PHRkPiA8Y29kZT5MSmN5OzwvY29kZT4gPHRkPiBVKzAwNDA5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Ik8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGpjeT48dGQ+IDxjb2RlPmxqY3k7PC9jb2RlPiA8dGQ+IFUrMDA0NTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7RmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MbD48dGQ+IDxjb2RlPkxsOzwvY29kZT4gPHRkPiBVKzAyMkQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxsPjx0ZD4gPGNvZGU+bGw7PC9jb2RlPiA8dGQ+IFUrMDIyNkEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiao8L3NwYW4+IDx0ciBpZD1lbnRpdHktbGxhcnI+PHRkPiA8Y29kZT5sbGFycjs8L2NvZGU+IDx0ZD4gVSswMjFDNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sbGNvcm5lcj48dGQ+IDxjb2RlPmxsY29ybmVyOzwvY29kZT4gPHRkPiBVKzAyMzFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oyePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxsZWZ0YXJyb3c+PHRkPiA8Y29kZT5MbGVmdGFycm93OzwvY29kZT4gPHRkPiBVKzAyMURBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxsaGFyZD48dGQ+IDxjb2RlPmxsaGFyZDs8L2NvZGU+IDx0ZD4gVSswMjk2QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sbHRyaT48dGQ+IDxjb2RlPmxsdHJpOzwvY29kZT4gPHRkPiBVKzAyNUZBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pe6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxtaWRvdD48dGQ+IDxjb2RlPkxtaWRvdDs8L2NvZGU+IDx0ZD4gVSswMDEzRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsS/PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxtaWRvdD48dGQ+IDxjb2RlPmxtaWRvdDs8L2NvZGU+IDx0ZD4gVSswMDE0MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxtb3VzdD48dGQ+IDxjb2RlPmxtb3VzdDs8L2NvZGU+IDx0ZD4gVSswMjNCMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKOsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sbW91c3RhY2hlPjx0ZD4gPGNvZGU+bG1vdXN0YWNoZTs8L2NvZGU+IDx0ZD4gVSswMjNCMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKOsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sbmFwPjx0ZD4gPGNvZGU+bG5hcDs8L2NvZGU+IDx0ZD4gVSswMkE4OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sbmFwcHJveD48dGQ+IDxjb2RlPmxuYXBwcm94OzwvY29kZT4gPHRkPiBVKzAyQTg5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxuRT48dGQ+IDxjb2RlPmxuRTs8L2NvZGU+IDx0ZD4gVSswMjI2OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sbmU+PHRkPiA8Y29kZT5sbmU7PC9jb2RlPiA8dGQ+IFUrMDJBODcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqoc8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG5lcT48dGQ+IDxjb2RlPmxuZXE7PC9jb2RlPiA8dGQ+IFUrMDJBODcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqoc8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG5lcXE+PHRkPiA8Y29kZT5sbmVxcTs8L2NvZGU+IDx0ZD4gVSswMjI2OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sbnNpbT48dGQ+IDxjb2RlPmxuc2ltOzwvY29kZT4gPHRkPiBVKzAyMkU2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oumPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxvYW5nPjx0ZD4gPGNvZGU+bG9hbmc7PC9jb2RlPiA8dGQ+IFUrMDI3RUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in6w8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG9hcnI+PHRkPiA8Y29kZT5sb2Fycjs8L2NvZGU+IDx0ZD4gVSswMjFGRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sb2Jyaz48dGQ+IDxjb2RlPmxvYnJrOzwvY29kZT4gPHRkPiBVKzAyN0U2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+mPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxvbmdMZWZ0QXJyb3c+PHRkPiA8Y29kZT5Mb25nTGVmdEFycm93OzwvY29kZT4gPHRkPiBVKzAyN0Y1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxvbmdsZWZ0YXJyb3c+PHRkPiA8Y29kZT5Mb25nbGVmdGFycm93OzwvY29kZT4gPHRkPiBVKzAyN0Y4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxvbmdsZWZ0YXJyb3c+PHRkPiA8Y29kZT5sb25nbGVmdGFycm93OzwvY29kZT4gPHRkPiBVKzAyN0Y1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxvbmdMZWZ0UmlnaHRBcnJvdz48dGQ+IDxjb2RlPkxvbmdMZWZ0UmlnaHRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjdGNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKftzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Mb25nbGVmdHJpZ2h0YXJyb3c+PHRkPiA8Y29kZT5Mb25nbGVmdHJpZ2h0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDI3RkEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in7o8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG9uZ2xlZnRyaWdodGFycm93Pjx0ZD4gPGNvZGU+bG9uZ2xlZnRyaWdodGFycm93OzwvY29kZT4gPHRkPiBVKzAyN0Y3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxvbmdtYXBzdG8+PHRkPiA8Y29kZT5sb25nbWFwc3RvOzwvY29kZT4gPHRkPiBVKzAyN0ZDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+8PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxvbmdSaWdodEFycm93Pjx0ZD4gPGNvZGU+TG9uZ1JpZ2h0QXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDI3RjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in7Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktTG9uZ3JpZ2h0YXJyb3c+PHRkPiA8Y29kZT5Mb25ncmlnaHRhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjdGOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKfuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sb25ncmlnaHRhcnJvdz48dGQ+IDxjb2RlPmxvbmdyaWdodGFycm93OzwvY29kZT4gPHRkPiBVKzAyN0Y2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxvb3BhcnJvd2xlZnQ+PHRkPiA8Y29kZT5sb29wYXJyb3dsZWZ0OzwvY29kZT4gPHRkPiBVKzAyMUFCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oarPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxvb3BhcnJvd3JpZ2h0Pjx0ZD4gPGNvZGU+bG9vcGFycm93cmlnaHQ7PC9jb2RlPiA8dGQ+IFUrMDIxQUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihqw8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG9wYXI+PHRkPiA8Y29kZT5sb3Bhcjs8L2NvZGU+IDx0ZD4gVSswMjk4NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Mb3BmPjx0ZD4gPGNvZGU+TG9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU0MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlYM8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG9wZj48dGQ+IDxjb2RlPmxvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWdPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxvcGx1cz48dGQ+IDxjb2RlPmxvcGx1czs8L2NvZGU+IDx0ZD4gVSswMkEyRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKorTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sb3RpbWVzPjx0ZD4gPGNvZGU+bG90aW1lczs8L2NvZGU+IDx0ZD4gVSswMkEzNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKotDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sb3dhc3Q+PHRkPiA8Y29kZT5sb3dhc3Q7PC9jb2RlPiA8dGQ+IFUrMDIyMTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJc8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG93YmFyPjx0ZD4gPGNvZGU+bG93YmFyOzwvY29kZT4gPHRkPiBVKzAwMDVGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Xzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Mb3dlckxlZnRBcnJvdz48dGQ+IDxjb2RlPkxvd2VyTGVmdEFycm93OzwvY29kZT4gPHRkPiBVKzAyMTk5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxvd2VyUmlnaHRBcnJvdz48dGQ+IDxjb2RlPkxvd2VyUmlnaHRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sb3o+PHRkPiA8Y29kZT5sb3o7PC9jb2RlPiA8dGQ+IFUrMDI1Q0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7il4o8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG96ZW5nZT48dGQ+IDxjb2RlPmxvemVuZ2U7PC9jb2RlPiA8dGQ+IFUrMDI1Q0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7il4o8L3NwYW4+IDx0ciBpZD1lbnRpdHktbG96Zj48dGQ+IDxjb2RlPmxvemY7PC9jb2RlPiA8dGQ+IFUrMDI5RUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ip6s8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHBhcj48dGQ+IDxjb2RlPmxwYXI7PC9jb2RlPiA8dGQ+IFUrMDAwMjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4oPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxwYXJsdD48dGQ+IDxjb2RlPmxwYXJsdDs8L2NvZGU+IDx0ZD4gVSswMjk5MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1scmFycj48dGQ+IDxjb2RlPmxyYXJyOzwvY29kZT4gPHRkPiBVKzAyMUM2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxyY29ybmVyPjx0ZD4gPGNvZGU+bHJjb3JuZXI7PC9jb2RlPiA8dGQ+IFUrMDIzMUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijJ88L3NwYW4+IDx0ciBpZD1lbnRpdHktbHJoYXI+PHRkPiA8Y29kZT5scmhhcjs8L2NvZGU+IDx0ZD4gVSswMjFDQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1scmhhcmQ+PHRkPiA8Y29kZT5scmhhcmQ7PC9jb2RlPiA8dGQ+IFUrMDI5NkQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipa08L3NwYW4+IDx0ciBpZD1lbnRpdHktbHJtPjx0ZD4gPGNvZGU+bHJtOzwvY29kZT4gPHRkPiBVKzAyMDBFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxydHJpPjx0ZD4gPGNvZGU+bHJ0cmk7PC9jb2RlPiA8dGQ+IFUrMDIyQkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iir88L3NwYW4+IDx0ciBpZD1lbnRpdHktbHNhcXVvPjx0ZD4gPGNvZGU+bHNhcXVvOzwvY29kZT4gPHRkPiBVKzAyMDM5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oC5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LUxzY3I+PHRkPiA8Y29kZT5Mc2NyOzwvY29kZT4gPHRkPiBVKzAyMTEyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxzY3I+PHRkPiA8Y29kZT5sc2NyOzwvY29kZT4gPHRkPiBVKzFENEMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2TgTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Mc2g+PHRkPiA8Y29kZT5Mc2g7PC9jb2RlPiA8dGQ+IFUrMDIxQjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihrA8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHNoPjx0ZD4gPGNvZGU+bHNoOzwvY29kZT4gPHRkPiBVKzAyMUIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oawPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxzaW0+PHRkPiA8Y29kZT5sc2ltOzwvY29kZT4gPHRkPiBVKzAyMjcyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omyPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWxzaW1lPjx0ZD4gPGNvZGU+bHNpbWU7PC9jb2RlPiA8dGQ+IFUrMDJBOEQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqo08L3NwYW4+IDx0ciBpZD1lbnRpdHktbHNpbWc+PHRkPiA8Y29kZT5sc2ltZzs8L2NvZGU+IDx0ZD4gVSswMkE4RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sc3FiPjx0ZD4gPGNvZGU+bHNxYjs8L2NvZGU+IDx0ZD4gVSswMDA1QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPls8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHNxdW8+PHRkPiA8Y29kZT5sc3F1bzs8L2NvZGU+IDx0ZD4gVSswMjAxOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sc3F1b3I+PHRkPiA8Y29kZT5sc3F1b3I7PC9jb2RlPiA8dGQ+IFUrMDIwMUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igJo8L3NwYW4+IDx0ciBpZD1lbnRpdHktTHN0cm9rPjx0ZD4gPGNvZGU+THN0cm9rOzwvY29kZT4gPHRkPiBVKzAwMTQxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xYE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHN0cm9rPjx0ZD4gPGNvZGU+bHN0cm9rOzwvY29kZT4gPHRkPiBVKzAwMTQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xYI8L3NwYW4+IDx0ciBpZD1lbnRpdHktTFQ+PHRkPiA8Y29kZT5MVDs8L2NvZGU+IDx0ZD4gVSswMDAzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPiZsdDs8L3NwYW4+IDx0ciBpZD1lbnRpdHktTFQtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5MVDwvY29kZT4gPHRkPiBVKzAwMDNDIDx0ZD4gPHNwYW4+Jmx0Ozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1MdD48dGQ+IDxjb2RlPkx0OzwvY29kZT4gPHRkPiBVKzAyMjZBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWx0Pjx0ZD4gPGNvZGU+bHQ7PC9jb2RlPiA8dGQ+IFUrMDAwM0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4mbHQ7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWx0LWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+bHQ8L2NvZGU+IDx0ZD4gVSswMDAzQyA8dGQ+IDxzcGFuPiZsdDs8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHRjYz48dGQ+IDxjb2RlPmx0Y2M7PC9jb2RlPiA8dGQ+IFUrMDJBQTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqqY8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHRjaXI+PHRkPiA8Y29kZT5sdGNpcjs8L2NvZGU+IDx0ZD4gVSswMkE3OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sdGRvdD48dGQ+IDxjb2RlPmx0ZG90OzwvY29kZT4gPHRkPiBVKzAyMkQ2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWx0aHJlZT48dGQ+IDxjb2RlPmx0aHJlZTs8L2NvZGU+IDx0ZD4gVSswMjJDQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sdGltZXM+PHRkPiA8Y29kZT5sdGltZXM7PC9jb2RlPiA8dGQ+IFUrMDIyQzkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4k8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHRsYXJyPjx0ZD4gPGNvZGU+bHRsYXJyOzwvY29kZT4gPHRkPiBVKzAyOTc2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qW2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWx0cXVlc3Q+PHRkPiA8Y29kZT5sdHF1ZXN0OzwvY29kZT4gPHRkPiBVKzAyQTdCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qm7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWx0cmk+PHRkPiA8Y29kZT5sdHJpOzwvY29kZT4gPHRkPiBVKzAyNUMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4peDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWx0cmllPjx0ZD4gPGNvZGU+bHRyaWU7PC9jb2RlPiA8dGQ+IFUrMDIyQjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHRyaWY+PHRkPiA8Y29kZT5sdHJpZjs8L2NvZGU+IDx0ZD4gVSswMjVDMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKXgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sdHJQYXI+PHRkPiA8Y29kZT5sdHJQYXI7PC9jb2RlPiA8dGQ+IFUrMDI5OTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ippY8L3NwYW4+IDx0ciBpZD1lbnRpdHktbHVyZHNoYXI+PHRkPiA8Y29kZT5sdXJkc2hhcjs8L2NvZGU+IDx0ZD4gVSswMjk0QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sdXJ1aGFyPjx0ZD4gPGNvZGU+bHVydWhhcjs8L2NvZGU+IDx0ZD4gVSswMjk2NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1sdmVydG5lcXE+PHRkPiA8Y29kZT5sdmVydG5lcXE7PC9jb2RlPiA8dGQ+IFUrMDIyNjggVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4omo77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LWx2bkU+PHRkPiA8Y29kZT5sdm5FOzwvY29kZT4gPHRkPiBVKzAyMjY4IFUrMEZFMDAgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJqO+4gDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tYWNyPjx0ZD4gPGNvZGU+bWFjcjs8L2NvZGU+IDx0ZD4gVSswMDBBRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1hY3ItbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5tYWNyPC9jb2RlPiA8dGQ+IFUrMDAwQUYgPHRkPiA8c3Bhbj7Crzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tYWxlPjx0ZD4gPGNvZGU+bWFsZTs8L2NvZGU+IDx0ZD4gVSswMjY0MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKZgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tYWx0Pjx0ZD4gPGNvZGU+bWFsdDs8L2NvZGU+IDx0ZD4gVSswMjcyMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKcoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tYWx0ZXNlPjx0ZD4gPGNvZGU+bWFsdGVzZTs8L2NvZGU+IDx0ZD4gVSswMjcyMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKcoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1NYXA+PHRkPiA8Y29kZT5NYXA7PC9jb2RlPiA8dGQ+IFUrMDI5MDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipIU8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWFwPjx0ZD4gPGNvZGU+bWFwOzwvY29kZT4gPHRkPiBVKzAyMUE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oamPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1hcHN0bz48dGQ+IDxjb2RlPm1hcHN0bzs8L2NvZGU+IDx0ZD4gVSswMjFBNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tYXBzdG9kb3duPjx0ZD4gPGNvZGU+bWFwc3RvZG93bjs8L2NvZGU+IDx0ZD4gVSswMjFBNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tYXBzdG9sZWZ0Pjx0ZD4gPGNvZGU+bWFwc3RvbGVmdDs8L2NvZGU+IDx0ZD4gVSswMjFBNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tYXBzdG91cD48dGQ+IDxjb2RlPm1hcHN0b3VwOzwvY29kZT4gPHRkPiBVKzAyMUE1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oalPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1hcmtlcj48dGQ+IDxjb2RlPm1hcmtlcjs8L2NvZGU+IDx0ZD4gVSswMjVBRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tY29tbWE+PHRkPiA8Y29kZT5tY29tbWE7PC9jb2RlPiA8dGQ+IFUrMDJBMjkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqKk8L3NwYW4+IDx0ciBpZD1lbnRpdHktTWN5Pjx0ZD4gPGNvZGU+TWN5OzwvY29kZT4gPHRkPiBVKzAwNDFDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Jw8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWN5Pjx0ZD4gPGNvZGU+bWN5OzwvY29kZT4gPHRkPiBVKzAwNDNDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Lw8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWRhc2g+PHRkPiA8Y29kZT5tZGFzaDs8L2NvZGU+IDx0ZD4gVSswMjAxNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1tRERvdD48dGQ+IDxjb2RlPm1ERG90OzwvY29kZT4gPHRkPiBVKzAyMjNBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oi6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1lYXN1cmVkYW5nbGU+PHRkPiA8Y29kZT5tZWFzdXJlZGFuZ2xlOzwvY29kZT4gPHRkPiBVKzAyMjIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oihPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU1lZGl1bVNwYWNlPjx0ZD4gPGNvZGU+TWVkaXVtU3BhY2U7PC9jb2RlPiA8dGQ+IFUrMDIwNUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igZ88L3NwYW4+IDx0ciBpZD1lbnRpdHktTWVsbGludHJmPjx0ZD4gPGNvZGU+TWVsbGludHJmOzwvY29kZT4gPHRkPiBVKzAyMTMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSzPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU1mcj48dGQ+IDxjb2RlPk1mcjs8L2NvZGU+IDx0ZD4gVSsxRDUxMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlJA8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWZyPjx0ZD4gPGNvZGU+bWZyOzwvY29kZT4gPHRkPiBVKzFENTJBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Uqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1taG8+PHRkPiA8Y29kZT5taG87PC9jb2RlPiA8dGQ+IFUrMDIxMjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihKc8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWljcm8+PHRkPiA8Y29kZT5taWNybzs8L2NvZGU+IDx0ZD4gVSswMDBCNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsK1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1pY3JvLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+bWljcm88L2NvZGU+IDx0ZD4gVSswMDBCNSA8dGQ+IDxzcGFuPsK1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1pZD48dGQ+IDxjb2RlPm1pZDs8L2NvZGU+IDx0ZD4gVSswMjIyMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1taWRhc3Q+PHRkPiA8Y29kZT5taWRhc3Q7PC9jb2RlPiA8dGQ+IFUrMDAwMkEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4qPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1pZGNpcj48dGQ+IDxjb2RlPm1pZGNpcjs8L2NvZGU+IDx0ZD4gVSswMkFGMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1taWRkb3Q+PHRkPiA8Y29kZT5taWRkb3Q7PC9jb2RlPiA8dGQ+IFUrMDAwQjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ctzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1taWRkb3QtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5taWRkb3Q8L2NvZGU+IDx0ZD4gVSswMDBCNyA8dGQ+IDxzcGFuPsK3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1pbnVzPjx0ZD4gPGNvZGU+bWludXM7PC9jb2RlPiA8dGQ+IFUrMDIyMTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJI8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWludXNiPjx0ZD4gPGNvZGU+bWludXNiOzwvY29kZT4gPHRkPiBVKzAyMjlGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqfPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1pbnVzZD48dGQ+IDxjb2RlPm1pbnVzZDs8L2NvZGU+IDx0ZD4gVSswMjIzOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1taW51c2R1Pjx0ZD4gPGNvZGU+bWludXNkdTs8L2NvZGU+IDx0ZD4gVSswMkEyQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKoqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1NaW51c1BsdXM+PHRkPiA8Y29kZT5NaW51c1BsdXM7PC9jb2RlPiA8dGQ+IFUrMDIyMTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJM8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWxjcD48dGQ+IDxjb2RlPm1sY3A7PC9jb2RlPiA8dGQ+IFUrMDJBREIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq5s8L3NwYW4+IDx0ciBpZD1lbnRpdHktbWxkcj48dGQ+IDxjb2RlPm1sZHI7PC9jb2RlPiA8dGQ+IFUrMDIwMjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igKY8L3NwYW4+IDx0ciBpZD1lbnRpdHktbW5wbHVzPjx0ZD4gPGNvZGU+bW5wbHVzOzwvY29kZT4gPHRkPiBVKzAyMjEzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1vZGVscz48dGQ+IDxjb2RlPm1vZGVsczs8L2NvZGU+IDx0ZD4gVSswMjJBNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Nb3BmPjx0ZD4gPGNvZGU+TW9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU0NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlYQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktbW9wZj48dGQ+IDxjb2RlPm1vcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1wPjx0ZD4gPGNvZGU+bXA7PC9jb2RlPiA8dGQ+IFUrMDIyMTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJM8L3NwYW4+IDx0ciBpZD1lbnRpdHktTXNjcj48dGQ+IDxjb2RlPk1zY3I7PC9jb2RlPiA8dGQ+IFUrMDIxMzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihLM8L3NwYW4+IDx0ciBpZD1lbnRpdHktbXNjcj48dGQ+IDxjb2RlPm1zY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0QzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZOCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW1zdHBvcz48dGQ+IDxjb2RlPm1zdHBvczs8L2NvZGU+IDx0ZD4gVSswMjIzRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1NdT48dGQ+IDxjb2RlPk11OzwvY29kZT4gPHRkPiBVKzAwMzlDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zpw8L3NwYW4+IDx0ciBpZD1lbnRpdHktbXU+PHRkPiA8Y29kZT5tdTs8L2NvZGU+IDx0ZD4gVSswMDNCQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs68PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW11bHRpbWFwPjx0ZD4gPGNvZGU+bXVsdGltYXA7PC9jb2RlPiA8dGQ+IFUrMDIyQjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbXVtYXA+PHRkPiA8Y29kZT5tdW1hcDs8L2NvZGU+IDx0ZD4gVSswMjJCOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uYWJsYT48dGQ+IDxjb2RlPm5hYmxhOzwvY29kZT4gPHRkPiBVKzAyMjA3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5hY3V0ZT48dGQ+IDxjb2RlPk5hY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDE0MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5hY3V0ZT48dGQ+IDxjb2RlPm5hY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDE0NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5hbmc+PHRkPiA8Y29kZT5uYW5nOzwvY29kZT4gPHRkPiBVKzAyMjIwIFUrMDIwRDIgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKIoOKDkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uYXA+PHRkPiA8Y29kZT5uYXA7PC9jb2RlPiA8dGQ+IFUrMDIyNDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYk8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmFwRT48dGQ+IDxjb2RlPm5hcEU7PC9jb2RlPiA8dGQ+IFUrMDJBNzAgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qmwzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmFwaWQ+PHRkPiA8Y29kZT5uYXBpZDs8L2NvZGU+IDx0ZD4gVSswMjI0QiBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiYvMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uYXBvcz48dGQ+IDxjb2RlPm5hcG9zOzwvY29kZT4gPHRkPiBVKzAwMTQ5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xYk8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmFwcHJveD48dGQ+IDxjb2RlPm5hcHByb3g7PC9jb2RlPiA8dGQ+IFUrMDIyNDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYk8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmF0dXI+PHRkPiA8Y29kZT5uYXR1cjs8L2NvZGU+IDx0ZD4gVSswMjY2RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKZrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uYXR1cmFsPjx0ZD4gPGNvZGU+bmF0dXJhbDs8L2NvZGU+IDx0ZD4gVSswMjY2RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKZrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uYXR1cmFscz48dGQ+IDxjb2RlPm5hdHVyYWxzOzwvY29kZT4gPHRkPiBVKzAyMTE1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSVPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5ic3A+PHRkPiA8Y29kZT5uYnNwOzwvY29kZT4gPHRkPiBVKzAwMEEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+IDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uYnNwLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+bmJzcDwvY29kZT4gPHRkPiBVKzAwMEEwIDx0ZD4gPHNwYW4+IDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uYnVtcD48dGQ+IDxjb2RlPm5idW1wOzwvY29kZT4gPHRkPiBVKzAyMjRFIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJjsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5idW1wZT48dGQ+IDxjb2RlPm5idW1wZTs8L2NvZGU+IDx0ZD4gVSswMjI0RiBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiY/MuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uY2FwPjx0ZD4gPGNvZGU+bmNhcDs8L2NvZGU+IDx0ZD4gVSswMkE0MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpgzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1OY2Fyb24+PHRkPiA8Y29kZT5OY2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxNDcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uY2Fyb24+PHRkPiA8Y29kZT5uY2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxNDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1OY2VkaWw+PHRkPiA8Y29kZT5OY2VkaWw7PC9jb2RlPiA8dGQ+IFUrMDAxNDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uY2VkaWw+PHRkPiA8Y29kZT5uY2VkaWw7PC9jb2RlPiA8dGQ+IFUrMDAxNDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fhjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uY29uZz48dGQ+IDxjb2RlPm5jb25nOzwvY29kZT4gPHRkPiBVKzAyMjQ3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5jb25nZG90Pjx0ZD4gPGNvZGU+bmNvbmdkb3Q7PC9jb2RlPiA8dGQ+IFUrMDJBNkQgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qmtzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmN1cD48dGQ+IDxjb2RlPm5jdXA7PC9jb2RlPiA8dGQ+IFUrMDJBNDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqYI8L3NwYW4+IDx0ciBpZD1lbnRpdHktTmN5Pjx0ZD4gPGNvZGU+TmN5OzwvY29kZT4gPHRkPiBVKzAwNDFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0J08L3NwYW4+IDx0ciBpZD1lbnRpdHktbmN5Pjx0ZD4gPGNvZGU+bmN5OzwvY29kZT4gPHRkPiBVKzAwNDNEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0L08L3NwYW4+IDx0ciBpZD1lbnRpdHktbmRhc2g+PHRkPiA8Y29kZT5uZGFzaDs8L2NvZGU+IDx0ZD4gVSswMjAxMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uZT48dGQ+IDxjb2RlPm5lOzwvY29kZT4gPHRkPiBVKzAyMjYwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omgPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5lYXJoaz48dGQ+IDxjb2RlPm5lYXJoazs8L2NvZGU+IDx0ZD4gVSswMjkyNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uZUFycj48dGQ+IDxjb2RlPm5lQXJyOzwvY29kZT4gPHRkPiBVKzAyMUQ3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5lYXJyPjx0ZD4gPGNvZGU+bmVhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxOTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpc8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmVhcnJvdz48dGQ+IDxjb2RlPm5lYXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpc8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmVkb3Q+PHRkPiA8Y29kZT5uZWRvdDs8L2NvZGU+IDx0ZD4gVSswMjI1MCBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiZDMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1OZWdhdGl2ZU1lZGl1bVNwYWNlPjx0ZD4gPGNvZGU+TmVnYXRpdmVNZWRpdW1TcGFjZTs8L2NvZGU+IDx0ZD4gVSswMjAwQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1OZWdhdGl2ZVRoaWNrU3BhY2U+PHRkPiA8Y29kZT5OZWdhdGl2ZVRoaWNrU3BhY2U7PC9jb2RlPiA8dGQ+IFUrMDIwMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktTmVnYXRpdmVUaGluU3BhY2U+PHRkPiA8Y29kZT5OZWdhdGl2ZVRoaW5TcGFjZTs8L2NvZGU+IDx0ZD4gVSswMjAwQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1OZWdhdGl2ZVZlcnlUaGluU3BhY2U+PHRkPiA8Y29kZT5OZWdhdGl2ZVZlcnlUaGluU3BhY2U7PC9jb2RlPiA8dGQ+IFUrMDIwMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmVxdWl2Pjx0ZD4gPGNvZGU+bmVxdWl2OzwvY29kZT4gPHRkPiBVKzAyMjYyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5lc2Vhcj48dGQ+IDxjb2RlPm5lc2Vhcjs8L2NvZGU+IDx0ZD4gVSswMjkyOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uZXNpbT48dGQ+IDxjb2RlPm5lc2ltOzwvY29kZT4gPHRkPiBVKzAyMjQyIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJgsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5lc3RlZEdyZWF0ZXJHcmVhdGVyPjx0ZD4gPGNvZGU+TmVzdGVkR3JlYXRlckdyZWF0ZXI7PC9jb2RlPiA8dGQ+IFUrMDIyNkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iias8L3NwYW4+IDx0ciBpZD1lbnRpdHktTmVzdGVkTGVzc0xlc3M+PHRkPiA8Y29kZT5OZXN0ZWRMZXNzTGVzczs8L2NvZGU+IDx0ZD4gVSswMjI2QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1OZXdMaW5lPjx0ZD4gPGNvZGU+TmV3TGluZTs8L2NvZGU+IDx0ZD4gVSswMDAwQSA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb250cm9sIj7ikIo8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmV4aXN0Pjx0ZD4gPGNvZGU+bmV4aXN0OzwvY29kZT4gPHRkPiBVKzAyMjA0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5leGlzdHM+PHRkPiA8Y29kZT5uZXhpc3RzOzwvY29kZT4gPHRkPiBVKzAyMjA0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5mcj48dGQ+IDxjb2RlPk5mcjs8L2NvZGU+IDx0ZD4gVSsxRDUxMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlJE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmZyPjx0ZD4gPGNvZGU+bmZyOzwvY29kZT4gPHRkPiBVKzFENTJCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Uqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uZ0U+PHRkPiA8Y29kZT5uZ0U7PC9jb2RlPiA8dGQ+IFUrMDIyNjcgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4omnzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmdlPjx0ZD4gPGNvZGU+bmdlOzwvY29kZT4gPHRkPiBVKzAyMjcxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5nZXE+PHRkPiA8Y29kZT5uZ2VxOzwvY29kZT4gPHRkPiBVKzAyMjcxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5nZXFxPjx0ZD4gPGNvZGU+bmdlcXE7PC9jb2RlPiA8dGQ+IFUrMDIyNjcgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4omnzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmdlcXNsYW50Pjx0ZD4gPGNvZGU+bmdlcXNsYW50OzwvY29kZT4gPHRkPiBVKzAyQTdFIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKpvsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5nZXM+PHRkPiA8Y29kZT5uZ2VzOzwvY29kZT4gPHRkPiBVKzAyQTdFIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKpvsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5HZz48dGQ+IDxjb2RlPm5HZzs8L2NvZGU+IDx0ZD4gVSswMjJEOSBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7ii5nMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uZ3NpbT48dGQ+IDxjb2RlPm5nc2ltOzwvY29kZT4gPHRkPiBVKzAyMjc1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5HdD48dGQ+IDxjb2RlPm5HdDs8L2NvZGU+IDx0ZD4gVSswMjI2QiBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiavig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmd0Pjx0ZD4gPGNvZGU+bmd0OzwvY29kZT4gPHRkPiBVKzAyMjZGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5ndHI+PHRkPiA8Y29kZT5uZ3RyOzwvY29kZT4gPHRkPiBVKzAyMjZGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5HdHY+PHRkPiA8Y29kZT5uR3R2OzwvY29kZT4gPHRkPiBVKzAyMjZCIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJq8y4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5oQXJyPjx0ZD4gPGNvZGU+bmhBcnI7PC9jb2RlPiA8dGQ+IFUrMDIxQ0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih448L3NwYW4+IDx0ciBpZD1lbnRpdHktbmhhcnI+PHRkPiA8Y29kZT5uaGFycjs8L2NvZGU+IDx0ZD4gVSswMjFBRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uaHBhcj48dGQ+IDxjb2RlPm5ocGFyOzwvY29kZT4gPHRkPiBVKzAyQUYyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quyPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5pPjx0ZD4gPGNvZGU+bmk7PC9jb2RlPiA8dGQ+IFUrMDIyMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmlzPjx0ZD4gPGNvZGU+bmlzOzwvY29kZT4gPHRkPiBVKzAyMkZDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ou8PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5pc2Q+PHRkPiA8Y29kZT5uaXNkOzwvY29kZT4gPHRkPiBVKzAyMkZBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ou6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5pdj48dGQ+IDxjb2RlPm5pdjs8L2NvZGU+IDx0ZD4gVSswMjIwQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1OSmN5Pjx0ZD4gPGNvZGU+TkpjeTs8L2NvZGU+IDx0ZD4gVSswMDQwQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5qY3k+PHRkPiA8Y29kZT5uamN5OzwvY29kZT4gPHRkPiBVKzAwNDVBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Zo8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmxBcnI+PHRkPiA8Y29kZT5ubEFycjs8L2NvZGU+IDx0ZD4gVSswMjFDRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ubGFycj48dGQ+IDxjb2RlPm5sYXJyOzwvY29kZT4gPHRkPiBVKzAyMTlBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5sZHI+PHRkPiA8Y29kZT5ubGRyOzwvY29kZT4gPHRkPiBVKzAyMDI1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oClPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5sRT48dGQ+IDxjb2RlPm5sRTs8L2NvZGU+IDx0ZD4gVSswMjI2NiBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiabMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ubGU+PHRkPiA8Y29kZT5ubGU7PC9jb2RlPiA8dGQ+IFUrMDIyNzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibA8L3NwYW4+IDx0ciBpZD1lbnRpdHktbkxlZnRhcnJvdz48dGQ+IDxjb2RlPm5MZWZ0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxQ0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih408L3NwYW4+IDx0ciBpZD1lbnRpdHktbmxlZnRhcnJvdz48dGQ+IDxjb2RlPm5sZWZ0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpo8L3NwYW4+IDx0ciBpZD1lbnRpdHktbkxlZnRyaWdodGFycm93Pjx0ZD4gPGNvZGU+bkxlZnRyaWdodGFycm93OzwvY29kZT4gPHRkPiBVKzAyMUNFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5sZWZ0cmlnaHRhcnJvdz48dGQ+IDxjb2RlPm5sZWZ0cmlnaHRhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFBRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ubGVxPjx0ZD4gPGNvZGU+bmxlcTs8L2NvZGU+IDx0ZD4gVSswMjI3MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ubGVxcT48dGQ+IDxjb2RlPm5sZXFxOzwvY29kZT4gPHRkPiBVKzAyMjY2IFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJpsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5sZXFzbGFudD48dGQ+IDxjb2RlPm5sZXFzbGFudDs8L2NvZGU+IDx0ZD4gVSswMkE3RCBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iqb3MuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ubGVzPjx0ZD4gPGNvZGU+bmxlczs8L2NvZGU+IDx0ZD4gVSswMkE3RCBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iqb3MuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ubGVzcz48dGQ+IDxjb2RlPm5sZXNzOzwvY29kZT4gPHRkPiBVKzAyMjZFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omuPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5MbD48dGQ+IDxjb2RlPm5MbDs8L2NvZGU+IDx0ZD4gVSswMjJEOCBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7ii5jMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ubHNpbT48dGQ+IDxjb2RlPm5sc2ltOzwvY29kZT4gPHRkPiBVKzAyMjc0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5MdD48dGQ+IDxjb2RlPm5MdDs8L2NvZGU+IDx0ZD4gVSswMjI2QSBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiarig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmx0Pjx0ZD4gPGNvZGU+bmx0OzwvY29kZT4gPHRkPiBVKzAyMjZFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omuPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5sdHJpPjx0ZD4gPGNvZGU+bmx0cmk7PC9jb2RlPiA8dGQ+IFUrMDIyRUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii6o8L3NwYW4+IDx0ciBpZD1lbnRpdHktbmx0cmllPjx0ZD4gPGNvZGU+bmx0cmllOzwvY29kZT4gPHRkPiBVKzAyMkVDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ousPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5MdHY+PHRkPiA8Y29kZT5uTHR2OzwvY29kZT4gPHRkPiBVKzAyMjZBIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJqsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5taWQ+PHRkPiA8Y29kZT5ubWlkOzwvY29kZT4gPHRkPiBVKzAyMjI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oikPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vQnJlYWs+PHRkPiA8Y29kZT5Ob0JyZWFrOzwvY29kZT4gPHRkPiBVKzAyMDYwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oGgPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vbkJyZWFraW5nU3BhY2U+PHRkPiA8Y29kZT5Ob25CcmVha2luZ1NwYWNlOzwvY29kZT4gPHRkPiBVKzAwMEEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+IDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3BmPjx0ZD4gPGNvZGU+Tm9wZjs8L2NvZGU+IDx0ZD4gVSswMjExNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKElTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ub3BmPjx0ZD4gPGNvZGU+bm9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU1RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlZ88L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90Pjx0ZD4gPGNvZGU+Tm90OzwvY29kZT4gPHRkPiBVKzAyQUVDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qusPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdD48dGQ+IDxjb2RlPm5vdDs8L2NvZGU+IDx0ZD4gVSswMDBBQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPm5vdDwvY29kZT4gPHRkPiBVKzAwMEFDIDx0ZD4gPHNwYW4+wqw8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90Q29uZ3J1ZW50Pjx0ZD4gPGNvZGU+Tm90Q29uZ3J1ZW50OzwvY29kZT4gPHRkPiBVKzAyMjYyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdEN1cENhcD48dGQ+IDxjb2RlPk5vdEN1cENhcDs8L2NvZGU+IDx0ZD4gVSswMjI2RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3REb3VibGVWZXJ0aWNhbEJhcj48dGQ+IDxjb2RlPk5vdERvdWJsZVZlcnRpY2FsQmFyOzwvY29kZT4gPHRkPiBVKzAyMjI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oimPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdEVsZW1lbnQ+PHRkPiA8Y29kZT5Ob3RFbGVtZW50OzwvY29kZT4gPHRkPiBVKzAyMjA5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdEVxdWFsPjx0ZD4gPGNvZGU+Tm90RXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyNjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiaA8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90RXF1YWxUaWxkZT48dGQ+IDxjb2RlPk5vdEVxdWFsVGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyNDIgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4omCzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90RXhpc3RzPjx0ZD4gPGNvZGU+Tm90RXhpc3RzOzwvY29kZT4gPHRkPiBVKzAyMjA0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdEdyZWF0ZXI+PHRkPiA8Y29kZT5Ob3RHcmVhdGVyOzwvY29kZT4gPHRkPiBVKzAyMjZGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdEdyZWF0ZXJFcXVhbD48dGQ+IDxjb2RlPk5vdEdyZWF0ZXJFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI3MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJsTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RHcmVhdGVyRnVsbEVxdWFsPjx0ZD4gPGNvZGU+Tm90R3JlYXRlckZ1bGxFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI2NyBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiafMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RHcmVhdGVyR3JlYXRlcj48dGQ+IDxjb2RlPk5vdEdyZWF0ZXJHcmVhdGVyOzwvY29kZT4gPHRkPiBVKzAyMjZCIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJq8y4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdEdyZWF0ZXJMZXNzPjx0ZD4gPGNvZGU+Tm90R3JlYXRlckxlc3M7PC9jb2RlPiA8dGQ+IFUrMDIyNzkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibk8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90R3JlYXRlclNsYW50RXF1YWw+PHRkPiA8Y29kZT5Ob3RHcmVhdGVyU2xhbnRFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMkE3RSBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iqb7MuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RHcmVhdGVyVGlsZGU+PHRkPiA8Y29kZT5Ob3RHcmVhdGVyVGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyNzUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibU8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90SHVtcERvd25IdW1wPjx0ZD4gPGNvZGU+Tm90SHVtcERvd25IdW1wOzwvY29kZT4gPHRkPiBVKzAyMjRFIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJjsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdEh1bXBFcXVhbD48dGQ+IDxjb2RlPk5vdEh1bXBFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI0RiBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiY/MuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ub3Rpbj48dGQ+IDxjb2RlPm5vdGluOzwvY29kZT4gPHRkPiBVKzAyMjA5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdGluZG90Pjx0ZD4gPGNvZGU+bm90aW5kb3Q7PC9jb2RlPiA8dGQ+IFUrMDIyRjUgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4ou1zLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbm90aW5FPjx0ZD4gPGNvZGU+bm90aW5FOzwvY29kZT4gPHRkPiBVKzAyMkY5IFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKLucy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdGludmE+PHRkPiA8Y29kZT5ub3RpbnZhOzwvY29kZT4gPHRkPiBVKzAyMjA5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdGludmI+PHRkPiA8Y29kZT5ub3RpbnZiOzwvY29kZT4gPHRkPiBVKzAyMkY3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ou3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdGludmM+PHRkPiA8Y29kZT5ub3RpbnZjOzwvY29kZT4gPHRkPiBVKzAyMkY2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ou2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdExlZnRUcmlhbmdsZT48dGQ+IDxjb2RlPk5vdExlZnRUcmlhbmdsZTs8L2NvZGU+IDx0ZD4gVSswMjJFQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RMZWZ0VHJpYW5nbGVCYXI+PHRkPiA8Y29kZT5Ob3RMZWZ0VHJpYW5nbGVCYXI7PC9jb2RlPiA8dGQ+IFUrMDI5Q0YgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qePzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90TGVmdFRyaWFuZ2xlRXF1YWw+PHRkPiA8Y29kZT5Ob3RMZWZ0VHJpYW5nbGVFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjJFQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLrDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RMZXNzPjx0ZD4gPGNvZGU+Tm90TGVzczs8L2NvZGU+IDx0ZD4gVSswMjI2RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RMZXNzRXF1YWw+PHRkPiA8Y29kZT5Ob3RMZXNzRXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyNzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibA8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90TGVzc0dyZWF0ZXI+PHRkPiA8Y29kZT5Ob3RMZXNzR3JlYXRlcjs8L2NvZGU+IDx0ZD4gVSswMjI3OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RMZXNzTGVzcz48dGQ+IDxjb2RlPk5vdExlc3NMZXNzOzwvY29kZT4gPHRkPiBVKzAyMjZBIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJqsy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdExlc3NTbGFudEVxdWFsPjx0ZD4gPGNvZGU+Tm90TGVzc1NsYW50RXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDJBN0QgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qm9zLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90TGVzc1RpbGRlPjx0ZD4gPGNvZGU+Tm90TGVzc1RpbGRlOzwvY29kZT4gPHRkPiBVKzAyMjc0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdE5lc3RlZEdyZWF0ZXJHcmVhdGVyPjx0ZD4gPGNvZGU+Tm90TmVzdGVkR3JlYXRlckdyZWF0ZXI7PC9jb2RlPiA8dGQ+IFUrMDJBQTIgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qqizLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90TmVzdGVkTGVzc0xlc3M+PHRkPiA8Y29kZT5Ob3ROZXN0ZWRMZXNzTGVzczs8L2NvZGU+IDx0ZD4gVSswMkFBMSBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iqqHMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ub3RuaT48dGQ+IDxjb2RlPm5vdG5pOzwvY29kZT4gPHRkPiBVKzAyMjBDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdG5pdmE+PHRkPiA8Y29kZT5ub3RuaXZhOzwvY29kZT4gPHRkPiBVKzAyMjBDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdG5pdmI+PHRkPiA8Y29kZT5ub3RuaXZiOzwvY29kZT4gPHRkPiBVKzAyMkZFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ou+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5vdG5pdmM+PHRkPiA8Y29kZT5ub3RuaXZjOzwvY29kZT4gPHRkPiBVKzAyMkZEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ou9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFByZWNlZGVzPjx0ZD4gPGNvZGU+Tm90UHJlY2VkZXM7PC9jb2RlPiA8dGQ+IFUrMDIyODAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioA8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90UHJlY2VkZXNFcXVhbD48dGQ+IDxjb2RlPk5vdFByZWNlZGVzRXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDJBQUYgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qqvzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90UHJlY2VkZXNTbGFudEVxdWFsPjx0ZD4gPGNvZGU+Tm90UHJlY2VkZXNTbGFudEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMkUwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ougPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFJldmVyc2VFbGVtZW50Pjx0ZD4gPGNvZGU+Tm90UmV2ZXJzZUVsZW1lbnQ7PC9jb2RlPiA8dGQ+IFUrMDIyMEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIw8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90UmlnaHRUcmlhbmdsZT48dGQ+IDxjb2RlPk5vdFJpZ2h0VHJpYW5nbGU7PC9jb2RlPiA8dGQ+IFUrMDIyRUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii6s8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90UmlnaHRUcmlhbmdsZUJhcj48dGQ+IDxjb2RlPk5vdFJpZ2h0VHJpYW5nbGVCYXI7PC9jb2RlPiA8dGQ+IFUrMDI5RDAgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qeQzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90UmlnaHRUcmlhbmdsZUVxdWFsPjx0ZD4gPGNvZGU+Tm90UmlnaHRUcmlhbmdsZUVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMkVEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4outPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFNxdWFyZVN1YnNldD48dGQ+IDxjb2RlPk5vdFNxdWFyZVN1YnNldDs8L2NvZGU+IDx0ZD4gVSswMjI4RiBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iio/MuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RTcXVhcmVTdWJzZXRFcXVhbD48dGQ+IDxjb2RlPk5vdFNxdWFyZVN1YnNldEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMkUyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFNxdWFyZVN1cGVyc2V0Pjx0ZD4gPGNvZGU+Tm90U3F1YXJlU3VwZXJzZXQ7PC9jb2RlPiA8dGQ+IFUrMDIyOTAgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oqQzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90U3F1YXJlU3VwZXJzZXRFcXVhbD48dGQ+IDxjb2RlPk5vdFNxdWFyZVN1cGVyc2V0RXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyRTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii6M8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90U3Vic2V0Pjx0ZD4gPGNvZGU+Tm90U3Vic2V0OzwvY29kZT4gPHRkPiBVKzAyMjgyIFUrMDIwRDIgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKKguKDkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RTdWJzZXRFcXVhbD48dGQ+IDxjb2RlPk5vdFN1YnNldEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMjg4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFN1Y2NlZWRzPjx0ZD4gPGNvZGU+Tm90U3VjY2VlZHM7PC9jb2RlPiA8dGQ+IFUrMDIyODEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioE8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90U3VjY2VlZHNFcXVhbD48dGQ+IDxjb2RlPk5vdFN1Y2NlZWRzRXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDJBQjAgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qqwzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90U3VjY2VlZHNTbGFudEVxdWFsPjx0ZD4gPGNvZGU+Tm90U3VjY2VlZHNTbGFudEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMkUxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouhPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFN1Y2NlZWRzVGlsZGU+PHRkPiA8Y29kZT5Ob3RTdWNjZWVkc1RpbGRlOzwvY29kZT4gPHRkPiBVKzAyMjdGIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJv8y4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFN1cGVyc2V0Pjx0ZD4gPGNvZGU+Tm90U3VwZXJzZXQ7PC9jb2RlPiA8dGQ+IFUrMDIyODMgVSswMjBEMiA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oqD4oOSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFN1cGVyc2V0RXF1YWw+PHRkPiA8Y29kZT5Ob3RTdXBlcnNldEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMjg5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5vdFRpbGRlPjx0ZD4gPGNvZGU+Tm90VGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyNDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYE8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90VGlsZGVFcXVhbD48dGQ+IDxjb2RlPk5vdFRpbGRlRXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyNDQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktTm90VGlsZGVGdWxsRXF1YWw+PHRkPiA8Y29kZT5Ob3RUaWxkZUZ1bGxFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI0NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RUaWxkZVRpbGRlPjx0ZD4gPGNvZGU+Tm90VGlsZGVUaWxkZTs8L2NvZGU+IDx0ZD4gVSswMjI0OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ob3RWZXJ0aWNhbEJhcj48dGQ+IDxjb2RlPk5vdFZlcnRpY2FsQmFyOzwvY29kZT4gPHRkPiBVKzAyMjI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oikPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5wYXI+PHRkPiA8Y29kZT5ucGFyOzwvY29kZT4gPHRkPiBVKzAyMjI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oimPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5wYXJhbGxlbD48dGQ+IDxjb2RlPm5wYXJhbGxlbDs8L2NvZGU+IDx0ZD4gVSswMjIyNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ucGFyc2w+PHRkPiA8Y29kZT5ucGFyc2w7PC9jb2RlPiA8dGQ+IFUrMDJBRkQgVSswMjBFNSA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qu94oOlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5wYXJ0Pjx0ZD4gPGNvZGU+bnBhcnQ7PC9jb2RlPiA8dGQ+IFUrMDIyMDIgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oiCzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnBvbGludD48dGQ+IDxjb2RlPm5wb2xpbnQ7PC9jb2RlPiA8dGQ+IFUrMDJBMTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqJQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnByPjx0ZD4gPGNvZGU+bnByOzwvY29kZT4gPHRkPiBVKzAyMjgwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5wcmN1ZT48dGQ+IDxjb2RlPm5wcmN1ZTs8L2NvZGU+IDx0ZD4gVSswMjJFMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ucHJlPjx0ZD4gPGNvZGU+bnByZTs8L2NvZGU+IDx0ZD4gVSswMkFBRiBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iqq/MuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ucHJlYz48dGQ+IDxjb2RlPm5wcmVjOzwvY29kZT4gPHRkPiBVKzAyMjgwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5wcmVjZXE+PHRkPiA8Y29kZT5ucHJlY2VxOzwvY29kZT4gPHRkPiBVKzAyQUFGIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKqr8y4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5yQXJyPjx0ZD4gPGNvZGU+bnJBcnI7PC9jb2RlPiA8dGQ+IFUrMDIxQ0YgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih488L3NwYW4+IDx0ciBpZD1lbnRpdHktbnJhcnI+PHRkPiA8Y29kZT5ucmFycjs8L2NvZGU+IDx0ZD4gVSswMjE5QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ucmFycmM+PHRkPiA8Y29kZT5ucmFycmM7PC9jb2RlPiA8dGQ+IFUrMDI5MzMgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qSzzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnJhcnJ3Pjx0ZD4gPGNvZGU+bnJhcnJ3OzwvY29kZT4gPHRkPiBVKzAyMTlEIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKGncy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5SaWdodGFycm93Pjx0ZD4gPGNvZGU+blJpZ2h0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxQ0YgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih488L3NwYW4+IDx0ciBpZD1lbnRpdHktbnJpZ2h0YXJyb3c+PHRkPiA8Y29kZT5ucmlnaHRhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ucnRyaT48dGQ+IDxjb2RlPm5ydHJpOzwvY29kZT4gPHRkPiBVKzAyMkVCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ourPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5ydHJpZT48dGQ+IDxjb2RlPm5ydHJpZTs8L2NvZGU+IDx0ZD4gVSswMjJFRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uc2M+PHRkPiA8Y29kZT5uc2M7PC9jb2RlPiA8dGQ+IFUrMDIyODEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnNjY3VlPjx0ZD4gPGNvZGU+bnNjY3VlOzwvY29kZT4gPHRkPiBVKzAyMkUxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouhPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zY2U+PHRkPiA8Y29kZT5uc2NlOzwvY29kZT4gPHRkPiBVKzAyQUIwIFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKqsMy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU5zY3I+PHRkPiA8Y29kZT5Oc2NyOzwvY29kZT4gPHRkPiBVKzFENEE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2SqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uc2NyPjx0ZD4gPGNvZGU+bnNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRDMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdk4M8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnNob3J0bWlkPjx0ZD4gPGNvZGU+bnNob3J0bWlkOzwvY29kZT4gPHRkPiBVKzAyMjI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oikPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zaG9ydHBhcmFsbGVsPjx0ZD4gPGNvZGU+bnNob3J0cGFyYWxsZWw7PC9jb2RlPiA8dGQ+IFUrMDIyMjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKY8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnNpbT48dGQ+IDxjb2RlPm5zaW07PC9jb2RlPiA8dGQ+IFUrMDIyNDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnNpbWU+PHRkPiA8Y29kZT5uc2ltZTs8L2NvZGU+IDx0ZD4gVSswMjI0NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uc2ltZXE+PHRkPiA8Y29kZT5uc2ltZXE7PC9jb2RlPiA8dGQ+IFUrMDIyNDQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnNtaWQ+PHRkPiA8Y29kZT5uc21pZDs8L2NvZGU+IDx0ZD4gVSswMjIyNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uc3Bhcj48dGQ+IDxjb2RlPm5zcGFyOzwvY29kZT4gPHRkPiBVKzAyMjI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oimPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zcXN1YmU+PHRkPiA8Y29kZT5uc3FzdWJlOzwvY29kZT4gPHRkPiBVKzAyMkUyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zcXN1cGU+PHRkPiA8Y29kZT5uc3FzdXBlOzwvY29kZT4gPHRkPiBVKzAyMkUzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oujPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zdWI+PHRkPiA8Y29kZT5uc3ViOzwvY29kZT4gPHRkPiBVKzAyMjg0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqEPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zdWJFPjx0ZD4gPGNvZGU+bnN1YkU7PC9jb2RlPiA8dGQ+IFUrMDJBQzUgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4quFzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnN1YmU+PHRkPiA8Y29kZT5uc3ViZTs8L2NvZGU+IDx0ZD4gVSswMjI4OCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uc3Vic2V0Pjx0ZD4gPGNvZGU+bnN1YnNldDs8L2NvZGU+IDx0ZD4gVSswMjI4MiBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iioLig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnN1YnNldGVxPjx0ZD4gPGNvZGU+bnN1YnNldGVxOzwvY29kZT4gPHRkPiBVKzAyMjg4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zdWJzZXRlcXE+PHRkPiA8Y29kZT5uc3Vic2V0ZXFxOzwvY29kZT4gPHRkPiBVKzAyQUM1IFUrMDAzMzggPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKrhcy4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zdWNjPjx0ZD4gPGNvZGU+bnN1Y2M7PC9jb2RlPiA8dGQ+IFUrMDIyODEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioE8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnN1Y2NlcT48dGQ+IDxjb2RlPm5zdWNjZXE7PC9jb2RlPiA8dGQ+IFUrMDJBQjAgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qqwzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnN1cD48dGQ+IDxjb2RlPm5zdXA7PC9jb2RlPiA8dGQ+IFUrMDIyODUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioU8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnN1cEU+PHRkPiA8Y29kZT5uc3VwRTs8L2NvZGU+IDx0ZD4gVSswMkFDNiBVKzAwMzM4IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iq4bMuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uc3VwZT48dGQ+IDxjb2RlPm5zdXBlOzwvY29kZT4gPHRkPiBVKzAyMjg5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5zdXBzZXQ+PHRkPiA8Y29kZT5uc3Vwc2V0OzwvY29kZT4gPHRkPiBVKzAyMjgzIFUrMDIwRDIgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKKg+KDkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1uc3Vwc2V0ZXE+PHRkPiA8Y29kZT5uc3Vwc2V0ZXE7PC9jb2RlPiA8dGQ+IFUrMDIyODkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiok8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnN1cHNldGVxcT48dGQ+IDxjb2RlPm5zdXBzZXRlcXE7PC9jb2RlPiA8dGQ+IFUrMDJBQzYgVSswMDMzOCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4quGzLg8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnRnbD48dGQ+IDxjb2RlPm50Z2w7PC9jb2RlPiA8dGQ+IFUrMDIyNzkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibk8L3NwYW4+IDx0ciBpZD1lbnRpdHktTnRpbGRlPjx0ZD4gPGNvZGU+TnRpbGRlOzwvY29kZT4gPHRkPiBVKzAwMEQxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w5E8L3NwYW4+IDx0ciBpZD1lbnRpdHktTnRpbGRlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+TnRpbGRlPC9jb2RlPiA8dGQ+IFUrMDAwRDEgPHRkPiA8c3Bhbj7DkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udGlsZGU+PHRkPiA8Y29kZT5udGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDAwRjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DsTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udGlsZGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5udGlsZGU8L2NvZGU+IDx0ZD4gVSswMDBGMSA8dGQ+IDxzcGFuPsOxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW50bGc+PHRkPiA8Y29kZT5udGxnOzwvY29kZT4gPHRkPiBVKzAyMjc4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW50cmlhbmdsZWxlZnQ+PHRkPiA8Y29kZT5udHJpYW5nbGVsZWZ0OzwvY29kZT4gPHRkPiBVKzAyMkVBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW50cmlhbmdsZWxlZnRlcT48dGQ+IDxjb2RlPm50cmlhbmdsZWxlZnRlcTs8L2NvZGU+IDx0ZD4gVSswMjJFQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLrDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udHJpYW5nbGVyaWdodD48dGQ+IDxjb2RlPm50cmlhbmdsZXJpZ2h0OzwvY29kZT4gPHRkPiBVKzAyMkVCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ourPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW50cmlhbmdsZXJpZ2h0ZXE+PHRkPiA8Y29kZT5udHJpYW5nbGVyaWdodGVxOzwvY29kZT4gPHRkPiBVKzAyMkVEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4outPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU51Pjx0ZD4gPGNvZGU+TnU7PC9jb2RlPiA8dGQ+IFUrMDAzOUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7OnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udT48dGQ+IDxjb2RlPm51OzwvY29kZT4gPHRkPiBVKzAwM0JEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zr08L3NwYW4+IDx0ciBpZD1lbnRpdHktbnVtPjx0ZD4gPGNvZGU+bnVtOzwvY29kZT4gPHRkPiBVKzAwMDIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Izwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udW1lcm8+PHRkPiA8Y29kZT5udW1lcm87PC9jb2RlPiA8dGQ+IFUrMDIxMTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihJY8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnVtc3A+PHRkPiA8Y29kZT5udW1zcDs8L2NvZGU+IDx0ZD4gVSswMjAwNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udmFwPjx0ZD4gPGNvZGU+bnZhcDs8L2NvZGU+IDx0ZD4gVSswMjI0RCBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiY3ig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktblZEYXNoPjx0ZD4gPGNvZGU+blZEYXNoOzwvY29kZT4gPHRkPiBVKzAyMkFGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW5WZGFzaD48dGQ+IDxjb2RlPm5WZGFzaDs8L2NvZGU+IDx0ZD4gVSswMjJBRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udkRhc2g+PHRkPiA8Y29kZT5udkRhc2g7PC9jb2RlPiA8dGQ+IFUrMDIyQUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiq08L3NwYW4+IDx0ciBpZD1lbnRpdHktbnZkYXNoPjx0ZD4gPGNvZGU+bnZkYXNoOzwvY29kZT4gPHRkPiBVKzAyMkFDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW52Z2U+PHRkPiA8Y29kZT5udmdlOzwvY29kZT4gPHRkPiBVKzAyMjY1IFUrMDIwRDIgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKJpeKDkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udmd0Pjx0ZD4gPGNvZGU+bnZndDs8L2NvZGU+IDx0ZD4gVSswMDAzRSBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj4+4oOSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW52SGFycj48dGQ+IDxjb2RlPm52SGFycjs8L2NvZGU+IDx0ZD4gVSswMjkwNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udmluZmluPjx0ZD4gPGNvZGU+bnZpbmZpbjs8L2NvZGU+IDx0ZD4gVSswMjlERSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKnnjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udmxBcnI+PHRkPiA8Y29kZT5udmxBcnI7PC9jb2RlPiA8dGQ+IFUrMDI5MDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipII8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnZsZT48dGQ+IDxjb2RlPm52bGU7PC9jb2RlPiA8dGQ+IFUrMDIyNjQgVSswMjBEMiA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4omk4oOSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW52bHQ+PHRkPiA8Y29kZT5udmx0OzwvY29kZT4gPHRkPiBVKzAwMDNDIFUrMDIwRDIgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPiZsdDvig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnZsdHJpZT48dGQ+IDxjb2RlPm52bHRyaWU7PC9jb2RlPiA8dGQ+IFUrMDIyQjQgVSswMjBEMiA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oq04oOSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW52ckFycj48dGQ+IDxjb2RlPm52ckFycjs8L2NvZGU+IDx0ZD4gVSswMjkwMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkgzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1udnJ0cmllPjx0ZD4gPGNvZGU+bnZydHJpZTs8L2NvZGU+IDx0ZD4gVSswMjJCNSBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iirXig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktbnZzaW0+PHRkPiA8Y29kZT5udnNpbTs8L2NvZGU+IDx0ZD4gVSswMjIzQyBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiLzig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktbndhcmhrPjx0ZD4gPGNvZGU+bndhcmhrOzwvY29kZT4gPHRkPiBVKzAyOTIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW53QXJyPjx0ZD4gPGNvZGU+bndBcnI7PC9jb2RlPiA8dGQ+IFUrMDIxRDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktbndhcnI+PHRkPiA8Y29kZT5ud2Fycjs8L2NvZGU+IDx0ZD4gVSswMjE5NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ud2Fycm93Pjx0ZD4gPGNvZGU+bndhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ud25lYXI+PHRkPiA8Y29kZT5ud25lYXI7PC9jb2RlPiA8dGQ+IFUrMDI5MjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipKc8L3NwYW4+IDx0ciBpZD1lbnRpdHktT2FjdXRlPjx0ZD4gPGNvZGU+T2FjdXRlOzwvY29kZT4gPHRkPiBVKzAwMEQzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w5M8L3NwYW4+IDx0ciBpZD1lbnRpdHktT2FjdXRlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+T2FjdXRlPC9jb2RlPiA8dGQ+IFUrMDAwRDMgPHRkPiA8c3Bhbj7Dkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vYWN1dGU+PHRkPiA8Y29kZT5vYWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAwRjMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vYWN1dGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5vYWN1dGU8L2NvZGU+IDx0ZD4gVSswMDBGMyA8dGQ+IDxzcGFuPsOzPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9hc3Q+PHRkPiA8Y29kZT5vYXN0OzwvY29kZT4gPHRkPiBVKzAyMjlCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqbPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9jaXI+PHRkPiA8Y29kZT5vY2lyOzwvY29kZT4gPHRkPiBVKzAyMjlBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU9jaXJjPjx0ZD4gPGNvZGU+T2NpcmM7PC9jb2RlPiA8dGQ+IFUrMDAwRDQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PY2lyYy1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPk9jaXJjPC9jb2RlPiA8dGQ+IFUrMDAwRDQgPHRkPiA8c3Bhbj7DlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vY2lyYz48dGQ+IDxjb2RlPm9jaXJjOzwvY29kZT4gPHRkPiBVKzAwMEY0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w7Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktb2NpcmMtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5vY2lyYzwvY29kZT4gPHRkPiBVKzAwMEY0IDx0ZD4gPHNwYW4+w7Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktT2N5Pjx0ZD4gPGNvZGU+T2N5OzwvY29kZT4gPHRkPiBVKzAwNDFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0J48L3NwYW4+IDx0ciBpZD1lbnRpdHktb2N5Pjx0ZD4gPGNvZGU+b2N5OzwvY29kZT4gPHRkPiBVKzAwNDNFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0L48L3NwYW4+IDx0ciBpZD1lbnRpdHktb2Rhc2g+PHRkPiA8Y29kZT5vZGFzaDs8L2NvZGU+IDx0ZD4gVSswMjI5RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PZGJsYWM+PHRkPiA8Y29kZT5PZGJsYWM7PC9jb2RlPiA8dGQ+IFUrMDAxNTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vZGJsYWM+PHRkPiA8Y29kZT5vZGJsYWM7PC9jb2RlPiA8dGQ+IFUrMDAxNTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vZGl2Pjx0ZD4gPGNvZGU+b2Rpdjs8L2NvZGU+IDx0ZD4gVSswMkEzOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKouDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vZG90Pjx0ZD4gPGNvZGU+b2RvdDs8L2NvZGU+IDx0ZD4gVSswMjI5OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vZHNvbGQ+PHRkPiA8Y29kZT5vZHNvbGQ7PC9jb2RlPiA8dGQ+IFUrMDI5QkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iprw8L3NwYW4+IDx0ciBpZD1lbnRpdHktT0VsaWc+PHRkPiA8Y29kZT5PRWxpZzs8L2NvZGU+IDx0ZD4gVSswMDE1MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9lbGlnPjx0ZD4gPGNvZGU+b2VsaWc7PC9jb2RlPiA8dGQ+IFUrMDAxNTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vZmNpcj48dGQ+IDxjb2RlPm9mY2lyOzwvY29kZT4gPHRkPiBVKzAyOUJGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qa/PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU9mcj48dGQ+IDxjb2RlPk9mcjs8L2NvZGU+IDx0ZD4gVSsxRDUxMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlJI8L3NwYW4+IDx0ciBpZD1lbnRpdHktb2ZyPjx0ZD4gPGNvZGU+b2ZyOzwvY29kZT4gPHRkPiBVKzFENTJDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UrDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vZ29uPjx0ZD4gPGNvZGU+b2dvbjs8L2NvZGU+IDx0ZD4gVSswMDJEQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsubPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU9ncmF2ZT48dGQ+IDxjb2RlPk9ncmF2ZTs8L2NvZGU+IDx0ZD4gVSswMDBEMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU9ncmF2ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPk9ncmF2ZTwvY29kZT4gPHRkPiBVKzAwMEQyIDx0ZD4gPHNwYW4+w5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktb2dyYXZlPjx0ZD4gPGNvZGU+b2dyYXZlOzwvY29kZT4gPHRkPiBVKzAwMEYyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w7I8L3NwYW4+IDx0ciBpZD1lbnRpdHktb2dyYXZlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+b2dyYXZlPC9jb2RlPiA8dGQ+IFUrMDAwRjIgPHRkPiA8c3Bhbj7Dsjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vZ3Q+PHRkPiA8Y29kZT5vZ3Q7PC9jb2RlPiA8dGQ+IFUrMDI5QzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ip4E8L3NwYW4+IDx0ciBpZD1lbnRpdHktb2hiYXI+PHRkPiA8Y29kZT5vaGJhcjs8L2NvZGU+IDx0ZD4gVSswMjlCNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vaG0+PHRkPiA8Y29kZT5vaG07PC9jb2RlPiA8dGQ+IFUrMDAzQTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7OqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vaW50Pjx0ZD4gPGNvZGU+b2ludDs8L2NvZGU+IDx0ZD4gVSswMjIyRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vbGFycj48dGQ+IDxjb2RlPm9sYXJyOzwvY29kZT4gPHRkPiBVKzAyMUJBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oa6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9sY2lyPjx0ZD4gPGNvZGU+b2xjaXI7PC9jb2RlPiA8dGQ+IFUrMDI5QkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipr48L3NwYW4+IDx0ciBpZD1lbnRpdHktb2xjcm9zcz48dGQ+IDxjb2RlPm9sY3Jvc3M7PC9jb2RlPiA8dGQ+IFUrMDI5QkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iprs8L3NwYW4+IDx0ciBpZD1lbnRpdHktb2xpbmU+PHRkPiA8Y29kZT5vbGluZTs8L2NvZGU+IDx0ZD4gVSswMjAzRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vbHQ+PHRkPiA8Y29kZT5vbHQ7PC9jb2RlPiA8dGQ+IFUrMDI5QzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ip4A8L3NwYW4+IDx0ciBpZD1lbnRpdHktT21hY3I+PHRkPiA8Y29kZT5PbWFjcjs8L2NvZGU+IDx0ZD4gVSswMDE0QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9tYWNyPjx0ZD4gPGNvZGU+b21hY3I7PC9jb2RlPiA8dGQ+IFUrMDAxNEQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PbWVnYT48dGQ+IDxjb2RlPk9tZWdhOzwvY29kZT4gPHRkPiBVKzAwM0E5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zqk8L3NwYW4+IDx0ciBpZD1lbnRpdHktb21lZ2E+PHRkPiA8Y29kZT5vbWVnYTs8L2NvZGU+IDx0ZD4gVSswMDNDOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+JPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU9taWNyb24+PHRkPiA8Y29kZT5PbWljcm9uOzwvY29kZT4gPHRkPiBVKzAwMzlGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zp88L3NwYW4+IDx0ciBpZD1lbnRpdHktb21pY3Jvbj48dGQ+IDxjb2RlPm9taWNyb247PC9jb2RlPiA8dGQ+IFUrMDAzQkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ovzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vbWlkPjx0ZD4gPGNvZGU+b21pZDs8L2NvZGU+IDx0ZD4gVSswMjlCNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vbWludXM+PHRkPiA8Y29kZT5vbWludXM7PC9jb2RlPiA8dGQ+IFUrMDIyOTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iipY8L3NwYW4+IDx0ciBpZD1lbnRpdHktT29wZj48dGQ+IDxjb2RlPk9vcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9vcGY+PHRkPiA8Y29kZT5vb3BmOzwvY29kZT4gPHRkPiBVKzFENTYwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2VoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vcGFyPjx0ZD4gPGNvZGU+b3Bhcjs8L2NvZGU+IDx0ZD4gVSswMjlCNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PcGVuQ3VybHlEb3VibGVRdW90ZT48dGQ+IDxjb2RlPk9wZW5DdXJseURvdWJsZVF1b3RlOzwvY29kZT4gPHRkPiBVKzAyMDFDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCcPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU9wZW5DdXJseVF1b3RlPjx0ZD4gPGNvZGU+T3BlbkN1cmx5UXVvdGU7PC9jb2RlPiA8dGQ+IFUrMDIwMTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igJg8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3BlcnA+PHRkPiA8Y29kZT5vcGVycDs8L2NvZGU+IDx0ZD4gVSswMjlCOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vcGx1cz48dGQ+IDxjb2RlPm9wbHVzOzwvY29kZT4gPHRkPiBVKzAyMjk1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqVPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU9yPjx0ZD4gPGNvZGU+T3I7PC9jb2RlPiA8dGQ+IFUrMDJBNTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqZQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3I+PHRkPiA8Y29kZT5vcjs8L2NvZGU+IDx0ZD4gVSswMjIyOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vcmFycj48dGQ+IDxjb2RlPm9yYXJyOzwvY29kZT4gPHRkPiBVKzAyMUJCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oa7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9yZD48dGQ+IDxjb2RlPm9yZDs8L2NvZGU+IDx0ZD4gVSswMkE1RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vcmRlcj48dGQ+IDxjb2RlPm9yZGVyOzwvY29kZT4gPHRkPiBVKzAyMTM0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oS0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9yZGVyb2Y+PHRkPiA8Y29kZT5vcmRlcm9mOzwvY29kZT4gPHRkPiBVKzAyMTM0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oS0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9yZGY+PHRkPiA8Y29kZT5vcmRmOzwvY29kZT4gPHRkPiBVKzAwMEFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wqo8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3JkZi1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPm9yZGY8L2NvZGU+IDx0ZD4gVSswMDBBQSA8dGQ+IDxzcGFuPsKqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9yZG0+PHRkPiA8Y29kZT5vcmRtOzwvY29kZT4gPHRkPiBVKzAwMEJBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wro8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3JkbS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPm9yZG08L2NvZGU+IDx0ZD4gVSswMDBCQSA8dGQ+IDxzcGFuPsK6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9yaWdvZj48dGQ+IDxjb2RlPm9yaWdvZjs8L2NvZGU+IDx0ZD4gVSswMjJCNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vcm9yPjx0ZD4gPGNvZGU+b3Jvcjs8L2NvZGU+IDx0ZD4gVSswMkE1NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vcnNsb3BlPjx0ZD4gPGNvZGU+b3JzbG9wZTs8L2NvZGU+IDx0ZD4gVSswMkE1NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKplzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vcnY+PHRkPiA8Y29kZT5vcnY7PC9jb2RlPiA8dGQ+IFUrMDJBNUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqZs8L3NwYW4+IDx0ciBpZD1lbnRpdHktb1M+PHRkPiA8Y29kZT5vUzs8L2NvZGU+IDx0ZD4gVSswMjRDOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKTiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Pc2NyPjx0ZD4gPGNvZGU+T3Njcjs8L2NvZGU+IDx0ZD4gVSsxRDRBQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdkqo8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3Njcj48dGQ+IDxjb2RlPm9zY3I7PC9jb2RlPiA8dGQ+IFUrMDIxMzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihLQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktT3NsYXNoPjx0ZD4gPGNvZGU+T3NsYXNoOzwvY29kZT4gPHRkPiBVKzAwMEQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w5g8L3NwYW4+IDx0ciBpZD1lbnRpdHktT3NsYXNoLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+T3NsYXNoPC9jb2RlPiA8dGQ+IFUrMDAwRDggPHRkPiA8c3Bhbj7DmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vc2xhc2g+PHRkPiA8Y29kZT5vc2xhc2g7PC9jb2RlPiA8dGQ+IFUrMDAwRjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vc2xhc2gtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5vc2xhc2g8L2NvZGU+IDx0ZD4gVSswMDBGOCA8dGQ+IDxzcGFuPsO4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW9zb2w+PHRkPiA8Y29kZT5vc29sOzwvY29kZT4gPHRkPiBVKzAyMjk4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU90aWxkZT48dGQ+IDxjb2RlPk90aWxkZTs8L2NvZGU+IDx0ZD4gVSswMDBENSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOVPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LU90aWxkZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPk90aWxkZTwvY29kZT4gPHRkPiBVKzAwMEQ1IDx0ZD4gPHNwYW4+w5U8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3RpbGRlPjx0ZD4gPGNvZGU+b3RpbGRlOzwvY29kZT4gPHRkPiBVKzAwMEY1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w7U8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3RpbGRlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+b3RpbGRlPC9jb2RlPiA8dGQ+IFUrMDAwRjUgPHRkPiA8c3Bhbj7DtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PdGltZXM+PHRkPiA8Y29kZT5PdGltZXM7PC9jb2RlPiA8dGQ+IFUrMDJBMzcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqLc8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3RpbWVzPjx0ZD4gPGNvZGU+b3RpbWVzOzwvY29kZT4gPHRkPiBVKzAyMjk3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LW90aW1lc2FzPjx0ZD4gPGNvZGU+b3RpbWVzYXM7PC9jb2RlPiA8dGQ+IFUrMDJBMzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqLY8L3NwYW4+IDx0ciBpZD1lbnRpdHktT3VtbD48dGQ+IDxjb2RlPk91bWw7PC9jb2RlPiA8dGQ+IFUrMDAwRDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PdW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+T3VtbDwvY29kZT4gPHRkPiBVKzAwMEQ2IDx0ZD4gPHNwYW4+w5Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3VtbD48dGQ+IDxjb2RlPm91bWw7PC9jb2RlPiA8dGQ+IFUrMDAwRjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1vdW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+b3VtbDwvY29kZT4gPHRkPiBVKzAwMEY2IDx0ZD4gPHNwYW4+w7Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktb3ZiYXI+PHRkPiA8Y29kZT5vdmJhcjs8L2NvZGU+IDx0ZD4gVSswMjMzRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PdmVyQmFyPjx0ZD4gPGNvZGU+T3ZlckJhcjs8L2NvZGU+IDx0ZD4gVSswMjAzRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PdmVyQnJhY2U+PHRkPiA8Y29kZT5PdmVyQnJhY2U7PC9jb2RlPiA8dGQ+IFUrMDIzREUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ij548L3NwYW4+IDx0ciBpZD1lbnRpdHktT3ZlckJyYWNrZXQ+PHRkPiA8Y29kZT5PdmVyQnJhY2tldDs8L2NvZGU+IDx0ZD4gVSswMjNCNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKOtDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1PdmVyUGFyZW50aGVzaXM+PHRkPiA8Y29kZT5PdmVyUGFyZW50aGVzaXM7PC9jb2RlPiA8dGQ+IFUrMDIzREMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ij5w8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGFyPjx0ZD4gPGNvZGU+cGFyOzwvY29kZT4gPHRkPiBVKzAyMjI1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oilPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBhcmE+PHRkPiA8Y29kZT5wYXJhOzwvY29kZT4gPHRkPiBVKzAwMEI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrY8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGFyYS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPnBhcmE8L2NvZGU+IDx0ZD4gVSswMDBCNiA8dGQ+IDxzcGFuPsK2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBhcmFsbGVsPjx0ZD4gPGNvZGU+cGFyYWxsZWw7PC9jb2RlPiA8dGQ+IFUrMDIyMjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKU8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGFyc2ltPjx0ZD4gPGNvZGU+cGFyc2ltOzwvY29kZT4gPHRkPiBVKzAyQUYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quzPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBhcnNsPjx0ZD4gPGNvZGU+cGFyc2w7PC9jb2RlPiA8dGQ+IFUrMDJBRkQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq708L3NwYW4+IDx0ciBpZD1lbnRpdHktcGFydD48dGQ+IDxjb2RlPnBhcnQ7PC9jb2RlPiA8dGQ+IFUrMDIyMDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiII8L3NwYW4+IDx0ciBpZD1lbnRpdHktUGFydGlhbEQ+PHRkPiA8Y29kZT5QYXJ0aWFsRDs8L2NvZGU+IDx0ZD4gVSswMjIwMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1QY3k+PHRkPiA8Y29kZT5QY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qnzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wY3k+PHRkPiA8Y29kZT5wY3k7PC9jb2RlPiA8dGQ+IFUrMDA0M0YgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wZXJjbnQ+PHRkPiA8Y29kZT5wZXJjbnQ7PC9jb2RlPiA8dGQ+IFUrMDAwMjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4lPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBlcmlvZD48dGQ+IDxjb2RlPnBlcmlvZDs8L2NvZGU+IDx0ZD4gVSswMDAyRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPi48L3NwYW4+IDx0ciBpZD1lbnRpdHktcGVybWlsPjx0ZD4gPGNvZGU+cGVybWlsOzwvY29kZT4gPHRkPiBVKzAyMDMwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCwPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBlcnA+PHRkPiA8Y29kZT5wZXJwOzwvY29kZT4gPHRkPiBVKzAyMkE1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBlcnRlbms+PHRkPiA8Y29kZT5wZXJ0ZW5rOzwvY29kZT4gPHRkPiBVKzAyMDMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVBmcj48dGQ+IDxjb2RlPlBmcjs8L2NvZGU+IDx0ZD4gVSsxRDUxMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlJM8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGZyPjx0ZD4gPGNvZGU+cGZyOzwvY29kZT4gPHRkPiBVKzFENTJEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1QaGk+PHRkPiA8Y29kZT5QaGk7PC9jb2RlPiA8dGQ+IFUrMDAzQTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Opjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1waGk+PHRkPiA8Y29kZT5waGk7PC9jb2RlPiA8dGQ+IFUrMDAzQzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Phjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1waGl2Pjx0ZD4gPGNvZGU+cGhpdjs8L2NvZGU+IDx0ZD4gVSswMDNENSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+VPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBobW1hdD48dGQ+IDxjb2RlPnBobW1hdDs8L2NvZGU+IDx0ZD4gVSswMjEzMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1waG9uZT48dGQ+IDxjb2RlPnBob25lOzwvY29kZT4gPHRkPiBVKzAyNjBFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4piOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVBpPjx0ZD4gPGNvZGU+UGk7PC9jb2RlPiA8dGQ+IFUrMDAzQTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7OoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1waT48dGQ+IDxjb2RlPnBpOzwvY29kZT4gPHRkPiBVKzAwM0MwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z4A8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGl0Y2hmb3JrPjx0ZD4gPGNvZGU+cGl0Y2hmb3JrOzwvY29kZT4gPHRkPiBVKzAyMkQ0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBpdj48dGQ+IDxjb2RlPnBpdjs8L2NvZGU+IDx0ZD4gVSswMDNENiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+WPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBsYW5jaz48dGQ+IDxjb2RlPnBsYW5jazs8L2NvZGU+IDx0ZD4gVSswMjEwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wbGFuY2toPjx0ZD4gPGNvZGU+cGxhbmNraDs8L2NvZGU+IDx0ZD4gVSswMjEwRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEjjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wbGFua3Y+PHRkPiA8Y29kZT5wbGFua3Y7PC9jb2RlPiA8dGQ+IFUrMDIxMEYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihI88L3NwYW4+IDx0ciBpZD1lbnRpdHktcGx1cz48dGQ+IDxjb2RlPnBsdXM7PC9jb2RlPiA8dGQ+IFUrMDAwMkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4rPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBsdXNhY2lyPjx0ZD4gPGNvZGU+cGx1c2FjaXI7PC9jb2RlPiA8dGQ+IFUrMDJBMjMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqKM8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGx1c2I+PHRkPiA8Y29kZT5wbHVzYjs8L2NvZGU+IDx0ZD4gVSswMjI5RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKnjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wbHVzY2lyPjx0ZD4gPGNvZGU+cGx1c2Npcjs8L2NvZGU+IDx0ZD4gVSswMkEyMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKoojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wbHVzZG8+PHRkPiA8Y29kZT5wbHVzZG87PC9jb2RlPiA8dGQ+IFUrMDIyMTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGx1c2R1Pjx0ZD4gPGNvZGU+cGx1c2R1OzwvY29kZT4gPHRkPiBVKzAyQTI1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qilPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBsdXNlPjx0ZD4gPGNvZGU+cGx1c2U7PC9jb2RlPiA8dGQ+IFUrMDJBNzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqbI8L3NwYW4+IDx0ciBpZD1lbnRpdHktUGx1c01pbnVzPjx0ZD4gPGNvZGU+UGx1c01pbnVzOzwvY29kZT4gPHRkPiBVKzAwMEIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrE8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGx1c21uPjx0ZD4gPGNvZGU+cGx1c21uOzwvY29kZT4gPHRkPiBVKzAwMEIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrE8L3NwYW4+IDx0ciBpZD1lbnRpdHktcGx1c21uLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+cGx1c21uPC9jb2RlPiA8dGQ+IFUrMDAwQjEgPHRkPiA8c3Bhbj7CsTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wbHVzc2ltPjx0ZD4gPGNvZGU+cGx1c3NpbTs8L2NvZGU+IDx0ZD4gVSswMkEyNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKopjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wbHVzdHdvPjx0ZD4gPGNvZGU+cGx1c3R3bzs8L2NvZGU+IDx0ZD4gVSswMkEyNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKopzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wbT48dGQ+IDxjb2RlPnBtOzwvY29kZT4gPHRkPiBVKzAwMEIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrE8L3NwYW4+IDx0ciBpZD1lbnRpdHktUG9pbmNhcmVwbGFuZT48dGQ+IDxjb2RlPlBvaW5jYXJlcGxhbmU7PC9jb2RlPiA8dGQ+IFUrMDIxMEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihIw8L3NwYW4+IDx0ciBpZD1lbnRpdHktcG9pbnRpbnQ+PHRkPiA8Y29kZT5wb2ludGludDs8L2NvZGU+IDx0ZD4gVSswMkExNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKolTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Qb3BmPjx0ZD4gPGNvZGU+UG9wZjs8L2NvZGU+IDx0ZD4gVSswMjExOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wb3BmPjx0ZD4gPGNvZGU+cG9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU2MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlaE8L3NwYW4+IDx0ciBpZD1lbnRpdHktcG91bmQ+PHRkPiA8Y29kZT5wb3VuZDs8L2NvZGU+IDx0ZD4gVSswMDBBMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBvdW5kLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+cG91bmQ8L2NvZGU+IDx0ZD4gVSswMDBBMyA8dGQ+IDxzcGFuPsKjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVByPjx0ZD4gPGNvZGU+UHI7PC9jb2RlPiA8dGQ+IFUrMDJBQkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqrs8L3NwYW4+IDx0ciBpZD1lbnRpdHktcHI+PHRkPiA8Y29kZT5wcjs8L2NvZGU+IDx0ZD4gVSswMjI3QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJujwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcmFwPjx0ZD4gPGNvZGU+cHJhcDs8L2NvZGU+IDx0ZD4gVSswMkFCNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcmN1ZT48dGQ+IDxjb2RlPnByY3VlOzwvY29kZT4gPHRkPiBVKzAyMjdDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om8PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXByRT48dGQ+IDxjb2RlPnByRTs8L2NvZGU+IDx0ZD4gVSswMkFCMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcmU+PHRkPiA8Y29kZT5wcmU7PC9jb2RlPiA8dGQ+IFUrMDJBQUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqq88L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJlYz48dGQ+IDxjb2RlPnByZWM7PC9jb2RlPiA8dGQ+IFUrMDIyN0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iibo8L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJlY2FwcHJveD48dGQ+IDxjb2RlPnByZWNhcHByb3g7PC9jb2RlPiA8dGQ+IFUrMDJBQjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqrc8L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJlY2N1cmx5ZXE+PHRkPiA8Y29kZT5wcmVjY3VybHllcTs8L2NvZGU+IDx0ZD4gVSswMjI3QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1QcmVjZWRlcz48dGQ+IDxjb2RlPlByZWNlZGVzOzwvY29kZT4gPHRkPiBVKzAyMjdBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVByZWNlZGVzRXF1YWw+PHRkPiA8Y29kZT5QcmVjZWRlc0VxdWFsOzwvY29kZT4gPHRkPiBVKzAyQUFGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVByZWNlZGVzU2xhbnRFcXVhbD48dGQ+IDxjb2RlPlByZWNlZGVzU2xhbnRFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI3QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1QcmVjZWRlc1RpbGRlPjx0ZD4gPGNvZGU+UHJlY2VkZXNUaWxkZTs8L2NvZGU+IDx0ZD4gVSswMjI3RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcmVjZXE+PHRkPiA8Y29kZT5wcmVjZXE7PC9jb2RlPiA8dGQ+IFUrMDJBQUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqq88L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJlY25hcHByb3g+PHRkPiA8Y29kZT5wcmVjbmFwcHJveDs8L2NvZGU+IDx0ZD4gVSswMkFCOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKquTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcmVjbmVxcT48dGQ+IDxjb2RlPnByZWNuZXFxOzwvY29kZT4gPHRkPiBVKzAyQUI1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qq1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXByZWNuc2ltPjx0ZD4gPGNvZGU+cHJlY25zaW07PC9jb2RlPiA8dGQ+IFUrMDIyRTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii6g8L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJlY3NpbT48dGQ+IDxjb2RlPnByZWNzaW07PC9jb2RlPiA8dGQ+IFUrMDIyN0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iib48L3NwYW4+IDx0ciBpZD1lbnRpdHktUHJpbWU+PHRkPiA8Y29kZT5QcmltZTs8L2NvZGU+IDx0ZD4gVSswMjAzMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcmltZT48dGQ+IDxjb2RlPnByaW1lOzwvY29kZT4gPHRkPiBVKzAyMDMyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCyPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXByaW1lcz48dGQ+IDxjb2RlPnByaW1lczs8L2NvZGU+IDx0ZD4gVSswMjExOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcm5hcD48dGQ+IDxjb2RlPnBybmFwOzwvY29kZT4gPHRkPiBVKzAyQUI5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qq5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBybkU+PHRkPiA8Y29kZT5wcm5FOzwvY29kZT4gPHRkPiBVKzAyQUI1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qq1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXBybnNpbT48dGQ+IDxjb2RlPnBybnNpbTs8L2NvZGU+IDx0ZD4gVSswMjJFOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcm9kPjx0ZD4gPGNvZGU+cHJvZDs8L2NvZGU+IDx0ZD4gVSswMjIwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Qcm9kdWN0Pjx0ZD4gPGNvZGU+UHJvZHVjdDs8L2NvZGU+IDx0ZD4gVSswMjIwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcm9mYWxhcj48dGQ+IDxjb2RlPnByb2ZhbGFyOzwvY29kZT4gPHRkPiBVKzAyMzJFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oyuPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXByb2ZsaW5lPjx0ZD4gPGNvZGU+cHJvZmxpbmU7PC9jb2RlPiA8dGQ+IFUrMDIzMTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijJI8L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJvZnN1cmY+PHRkPiA8Y29kZT5wcm9mc3VyZjs8L2NvZGU+IDx0ZD4gVSswMjMxMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMkzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wcm9wPjx0ZD4gPGNvZGU+cHJvcDs8L2NvZGU+IDx0ZD4gVSswMjIxRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKInTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Qcm9wb3J0aW9uPjx0ZD4gPGNvZGU+UHJvcG9ydGlvbjs8L2NvZGU+IDx0ZD4gVSswMjIzNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKItzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Qcm9wb3J0aW9uYWw+PHRkPiA8Y29kZT5Qcm9wb3J0aW9uYWw7PC9jb2RlPiA8dGQ+IFUrMDIyMUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJ08L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJvcHRvPjx0ZD4gPGNvZGU+cHJvcHRvOzwvY29kZT4gPHRkPiBVKzAyMjFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oidPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXByc2ltPjx0ZD4gPGNvZGU+cHJzaW07PC9jb2RlPiA8dGQ+IFUrMDIyN0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iib48L3NwYW4+IDx0ciBpZD1lbnRpdHktcHJ1cmVsPjx0ZD4gPGNvZGU+cHJ1cmVsOzwvY29kZT4gPHRkPiBVKzAyMkIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqwPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVBzY3I+PHRkPiA8Y29kZT5Qc2NyOzwvY29kZT4gPHRkPiBVKzFENEFCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Sqzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1wc2NyPjx0ZD4gPGNvZGU+cHNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRDNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdk4U8L3NwYW4+IDx0ciBpZD1lbnRpdHktUHNpPjx0ZD4gPGNvZGU+UHNpOzwvY29kZT4gPHRkPiBVKzAwM0E4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zqg8L3NwYW4+IDx0ciBpZD1lbnRpdHktcHNpPjx0ZD4gPGNvZGU+cHNpOzwvY29kZT4gPHRkPiBVKzAwM0M4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z4g8L3NwYW4+IDx0ciBpZD1lbnRpdHktcHVuY3NwPjx0ZD4gPGNvZGU+cHVuY3NwOzwvY29kZT4gPHRkPiBVKzAyMDA4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVFmcj48dGQ+IDxjb2RlPlFmcjs8L2NvZGU+IDx0ZD4gVSsxRDUxNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlJQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktcWZyPjx0ZD4gPGNvZGU+cWZyOzwvY29kZT4gPHRkPiBVKzFENTJFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Urjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1xaW50Pjx0ZD4gPGNvZGU+cWludDs8L2NvZGU+IDx0ZD4gVSswMkEwQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKojDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Rb3BmPjx0ZD4gPGNvZGU+UW9wZjs8L2NvZGU+IDx0ZD4gVSswMjExQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1xb3BmPjx0ZD4gPGNvZGU+cW9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU2MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlaI8L3NwYW4+IDx0ciBpZD1lbnRpdHktcXByaW1lPjx0ZD4gPGNvZGU+cXByaW1lOzwvY29kZT4gPHRkPiBVKzAyMDU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oGXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVFzY3I+PHRkPiA8Y29kZT5Rc2NyOzwvY29kZT4gPHRkPiBVKzFENEFDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2SrDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1xc2NyPjx0ZD4gPGNvZGU+cXNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRDNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdk4Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktcXVhdGVybmlvbnM+PHRkPiA8Y29kZT5xdWF0ZXJuaW9uczs8L2NvZGU+IDx0ZD4gVSswMjEwRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEjTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1xdWF0aW50Pjx0ZD4gPGNvZGU+cXVhdGludDs8L2NvZGU+IDx0ZD4gVSswMkExNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKoljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1xdWVzdD48dGQ+IDxjb2RlPnF1ZXN0OzwvY29kZT4gPHRkPiBVKzAwMDNGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+Pzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1xdWVzdGVxPjx0ZD4gPGNvZGU+cXVlc3RlcTs8L2NvZGU+IDx0ZD4gVSswMjI1RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJnzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1RVU9UPjx0ZD4gPGNvZGU+UVVPVDs8L2NvZGU+IDx0ZD4gVSswMDAyMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPiI8L3NwYW4+IDx0ciBpZD1lbnRpdHktUVVPVC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPlFVT1Q8L2NvZGU+IDx0ZD4gVSswMDAyMiA8dGQ+IDxzcGFuPiI8L3NwYW4+IDx0ciBpZD1lbnRpdHktcXVvdD48dGQ+IDxjb2RlPnF1b3Q7PC9jb2RlPiA8dGQ+IFUrMDAwMjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD4iPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXF1b3QtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5xdW90PC9jb2RlPiA8dGQ+IFUrMDAwMjIgPHRkPiA8c3Bhbj4iPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJBYXJyPjx0ZD4gPGNvZGU+ckFhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxREIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5s8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFjZT48dGQ+IDxjb2RlPnJhY2U7PC9jb2RlPiA8dGQ+IFUrMDIyM0QgVSswMDMzMSA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oi9zLE8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmFjdXRlPjx0ZD4gPGNvZGU+UmFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMTU0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFjdXRlPjx0ZD4gPGNvZGU+cmFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMTU1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZU8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFkaWM+PHRkPiA8Y29kZT5yYWRpYzs8L2NvZGU+IDx0ZD4gVSswMjIxQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKImjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yYWVtcHR5dj48dGQ+IDxjb2RlPnJhZW1wdHl2OzwvY29kZT4gPHRkPiBVKzAyOUIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qazPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJhbmc+PHRkPiA8Y29kZT5SYW5nOzwvY29kZT4gPHRkPiBVKzAyN0VCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+rPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhbmc+PHRkPiA8Y29kZT5yYW5nOzwvY29kZT4gPHRkPiBVKzAyN0U5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+pPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhbmdkPjx0ZD4gPGNvZGU+cmFuZ2Q7PC9jb2RlPiA8dGQ+IFUrMDI5OTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ippI8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFuZ2U+PHRkPiA8Y29kZT5yYW5nZTs8L2NvZGU+IDx0ZD4gVSswMjlBNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yYW5nbGU+PHRkPiA8Y29kZT5yYW5nbGU7PC9jb2RlPiA8dGQ+IFUrMDI3RTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in6k8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFxdW8+PHRkPiA8Y29kZT5yYXF1bzs8L2NvZGU+IDx0ZD4gVSswMDBCQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsK7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhcXVvLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+cmFxdW88L2NvZGU+IDx0ZD4gVSswMDBCQiA8dGQ+IDxzcGFuPsK7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJhcnI+PHRkPiA8Y29kZT5SYXJyOzwvY29kZT4gPHRkPiBVKzAyMUEwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oagPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJBcnI+PHRkPiA8Y29kZT5yQXJyOzwvY29kZT4gPHRkPiBVKzAyMUQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhcnI+PHRkPiA8Y29kZT5yYXJyOzwvY29kZT4gPHRkPiBVKzAyMTkyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhcnJhcD48dGQ+IDxjb2RlPnJhcnJhcDs8L2NvZGU+IDx0ZD4gVSswMjk3NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKltTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yYXJyYj48dGQ+IDxjb2RlPnJhcnJiOzwvY29kZT4gPHRkPiBVKzAyMUU1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oelPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhcnJiZnM+PHRkPiA8Y29kZT5yYXJyYmZzOzwvY29kZT4gPHRkPiBVKzAyOTIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSgPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhcnJjPjx0ZD4gPGNvZGU+cmFycmM7PC9jb2RlPiA8dGQ+IFUrMDI5MzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipLM8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFycmZzPjx0ZD4gPGNvZGU+cmFycmZzOzwvY29kZT4gPHRkPiBVKzAyOTFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhcnJoaz48dGQ+IDxjb2RlPnJhcnJoazs8L2NvZGU+IDx0ZD4gVSswMjFBQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yYXJybHA+PHRkPiA8Y29kZT5yYXJybHA7PC9jb2RlPiA8dGQ+IFUrMDIxQUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihqw8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFycnBsPjx0ZD4gPGNvZGU+cmFycnBsOzwvY29kZT4gPHRkPiBVKzAyOTQ1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhcnJzaW0+PHRkPiA8Y29kZT5yYXJyc2ltOzwvY29kZT4gPHRkPiBVKzAyOTc0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qW0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJhcnJ0bD48dGQ+IDxjb2RlPlJhcnJ0bDs8L2NvZGU+IDx0ZD4gVSswMjkxNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yYXJydGw+PHRkPiA8Y29kZT5yYXJydGw7PC9jb2RlPiA8dGQ+IFUrMDIxQTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihqM8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmFycnc+PHRkPiA8Y29kZT5yYXJydzs8L2NvZGU+IDx0ZD4gVSswMjE5RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yQXRhaWw+PHRkPiA8Y29kZT5yQXRhaWw7PC9jb2RlPiA8dGQ+IFUrMDI5MUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipJw8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmF0YWlsPjx0ZD4gPGNvZGU+cmF0YWlsOzwvY29kZT4gPHRkPiBVKzAyOTFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJhdGlvPjx0ZD4gPGNvZGU+cmF0aW87PC9jb2RlPiA8dGQ+IFUrMDIyMzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiLY8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmF0aW9uYWxzPjx0ZD4gPGNvZGU+cmF0aW9uYWxzOzwvY29kZT4gPHRkPiBVKzAyMTFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJCYXJyPjx0ZD4gPGNvZGU+UkJhcnI7PC9jb2RlPiA8dGQ+IFUrMDI5MTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipJA8L3NwYW4+IDx0ciBpZD1lbnRpdHktckJhcnI+PHRkPiA8Y29kZT5yQmFycjs8L2NvZGU+IDx0ZD4gVSswMjkwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yYmFycj48dGQ+IDxjb2RlPnJiYXJyOzwvY29kZT4gPHRkPiBVKzAyOTBEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJiYnJrPjx0ZD4gPGNvZGU+cmJicms7PC9jb2RlPiA8dGQ+IFUrMDI3NzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7inbM8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmJyYWNlPjx0ZD4gPGNvZGU+cmJyYWNlOzwvY29kZT4gPHRkPiBVKzAwMDdEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+fTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yYnJhY2s+PHRkPiA8Y29kZT5yYnJhY2s7PC9jb2RlPiA8dGQ+IFUrMDAwNUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD5dPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJicmtlPjx0ZD4gPGNvZGU+cmJya2U7PC9jb2RlPiA8dGQ+IFUrMDI5OEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipow8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmJya3NsZD48dGQ+IDxjb2RlPnJicmtzbGQ7PC9jb2RlPiA8dGQ+IFUrMDI5OEUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipo48L3NwYW4+IDx0ciBpZD1lbnRpdHktcmJya3NsdT48dGQ+IDxjb2RlPnJicmtzbHU7PC9jb2RlPiA8dGQ+IFUrMDI5OTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ippA8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmNhcm9uPjx0ZD4gPGNvZGU+UmNhcm9uOzwvY29kZT4gPHRkPiBVKzAwMTU4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZg8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmNhcm9uPjx0ZD4gPGNvZGU+cmNhcm9uOzwvY29kZT4gPHRkPiBVKzAwMTU5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZk8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmNlZGlsPjx0ZD4gPGNvZGU+UmNlZGlsOzwvY29kZT4gPHRkPiBVKzAwMTU2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZY8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmNlZGlsPjx0ZD4gPGNvZGU+cmNlZGlsOzwvY29kZT4gPHRkPiBVKzAwMTU3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZc8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmNlaWw+PHRkPiA8Y29kZT5yY2VpbDs8L2NvZGU+IDx0ZD4gVSswMjMwOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yY3ViPjx0ZD4gPGNvZGU+cmN1Yjs8L2NvZGU+IDx0ZD4gVSswMDA3RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPn08L3NwYW4+IDx0ciBpZD1lbnRpdHktUmN5Pjx0ZD4gPGNvZGU+UmN5OzwvY29kZT4gPHRkPiBVKzAwNDIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0KA8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmN5Pjx0ZD4gPGNvZGU+cmN5OzwvY29kZT4gPHRkPiBVKzAwNDQwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0YA8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmRjYT48dGQ+IDxjb2RlPnJkY2E7PC9jb2RlPiA8dGQ+IFUrMDI5MzcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipLc8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmRsZGhhcj48dGQ+IDxjb2RlPnJkbGRoYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NjkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipak8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmRxdW8+PHRkPiA8Y29kZT5yZHF1bzs8L2NvZGU+IDx0ZD4gVSswMjAxRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yZHF1b3I+PHRkPiA8Y29kZT5yZHF1b3I7PC9jb2RlPiA8dGQ+IFUrMDIwMUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igJ08L3NwYW4+IDx0ciBpZD1lbnRpdHktcmRzaD48dGQ+IDxjb2RlPnJkc2g7PC9jb2RlPiA8dGQ+IFUrMDIxQjMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihrM8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmU+PHRkPiA8Y29kZT5SZTs8L2NvZGU+IDx0ZD4gVSswMjExQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEnDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yZWFsPjx0ZD4gPGNvZGU+cmVhbDs8L2NvZGU+IDx0ZD4gVSswMjExQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEnDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yZWFsaW5lPjx0ZD4gPGNvZGU+cmVhbGluZTs8L2NvZGU+IDx0ZD4gVSswMjExQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yZWFscGFydD48dGQ+IDxjb2RlPnJlYWxwYXJ0OzwvY29kZT4gPHRkPiBVKzAyMTFDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oScPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJlYWxzPjx0ZD4gPGNvZGU+cmVhbHM7PC9jb2RlPiA8dGQ+IFUrMDIxMUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihJ08L3NwYW4+IDx0ciBpZD1lbnRpdHktcmVjdD48dGQ+IDxjb2RlPnJlY3Q7PC9jb2RlPiA8dGQ+IFUrMDI1QUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilq08L3NwYW4+IDx0ciBpZD1lbnRpdHktUkVHPjx0ZD4gPGNvZGU+UkVHOzwvY29kZT4gPHRkPiBVKzAwMEFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wq48L3NwYW4+IDx0ciBpZD1lbnRpdHktUkVHLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+UkVHPC9jb2RlPiA8dGQ+IFUrMDAwQUUgPHRkPiA8c3Bhbj7Crjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yZWc+PHRkPiA8Y29kZT5yZWc7PC9jb2RlPiA8dGQ+IFUrMDAwQUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Crjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yZWctbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5yZWc8L2NvZGU+IDx0ZD4gVSswMDBBRSA8dGQ+IDxzcGFuPsKuPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJldmVyc2VFbGVtZW50Pjx0ZD4gPGNvZGU+UmV2ZXJzZUVsZW1lbnQ7PC9jb2RlPiA8dGQ+IFUrMDIyMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmV2ZXJzZUVxdWlsaWJyaXVtPjx0ZD4gPGNvZGU+UmV2ZXJzZUVxdWlsaWJyaXVtOzwvY29kZT4gPHRkPiBVKzAyMUNCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJldmVyc2VVcEVxdWlsaWJyaXVtPjx0ZD4gPGNvZGU+UmV2ZXJzZVVwRXF1aWxpYnJpdW07PC9jb2RlPiA8dGQ+IFUrMDI5NkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipa88L3NwYW4+IDx0ciBpZD1lbnRpdHktcmZpc2h0Pjx0ZD4gPGNvZGU+cmZpc2h0OzwvY29kZT4gPHRkPiBVKzAyOTdEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qW9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJmbG9vcj48dGQ+IDxjb2RlPnJmbG9vcjs8L2NvZGU+IDx0ZD4gVSswMjMwQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SZnI+PHRkPiA8Y29kZT5SZnI7PC9jb2RlPiA8dGQ+IFUrMDIxMUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihJw8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmZyPjx0ZD4gPGNvZGU+cmZyOzwvY29kZT4gPHRkPiBVKzFENTJGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Urzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ySGFyPjx0ZD4gPGNvZGU+ckhhcjs8L2NvZGU+IDx0ZD4gVSswMjk2NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yaGFyZD48dGQ+IDxjb2RlPnJoYXJkOzwvY29kZT4gPHRkPiBVKzAyMUMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeBPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJoYXJ1Pjx0ZD4gPGNvZGU+cmhhcnU7PC9jb2RlPiA8dGQ+IFUrMDIxQzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4A8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmhhcnVsPjx0ZD4gPGNvZGU+cmhhcnVsOzwvY29kZT4gPHRkPiBVKzAyOTZDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJobz48dGQ+IDxjb2RlPlJobzs8L2NvZGU+IDx0ZD4gVSswMDNBMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6hPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJobz48dGQ+IDxjb2RlPnJobzs8L2NvZGU+IDx0ZD4gVSswMDNDMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+BPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJob3Y+PHRkPiA8Y29kZT5yaG92OzwvY29kZT4gPHRkPiBVKzAwM0YxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z7E8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmlnaHRBbmdsZUJyYWNrZXQ+PHRkPiA8Y29kZT5SaWdodEFuZ2xlQnJhY2tldDs8L2NvZGU+IDx0ZD4gVSswMjdFOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKfqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodEFycm93Pjx0ZD4gPGNvZGU+UmlnaHRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodGFycm93Pjx0ZD4gPGNvZGU+UmlnaHRhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFEMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yaWdodGFycm93Pjx0ZD4gPGNvZGU+cmlnaHRhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodEFycm93QmFyPjx0ZD4gPGNvZGU+UmlnaHRBcnJvd0Jhcjs8L2NvZGU+IDx0ZD4gVSswMjFFNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodEFycm93TGVmdEFycm93Pjx0ZD4gPGNvZGU+UmlnaHRBcnJvd0xlZnRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFDNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yaWdodGFycm93dGFpbD48dGQ+IDxjb2RlPnJpZ2h0YXJyb3d0YWlsOzwvY29kZT4gPHRkPiBVKzAyMUEzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oajPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJpZ2h0Q2VpbGluZz48dGQ+IDxjb2RlPlJpZ2h0Q2VpbGluZzs8L2NvZGU+IDx0ZD4gVSswMjMwOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodERvdWJsZUJyYWNrZXQ+PHRkPiA8Y29kZT5SaWdodERvdWJsZUJyYWNrZXQ7PC9jb2RlPiA8dGQ+IFUrMDI3RTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in6c8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmlnaHREb3duVGVlVmVjdG9yPjx0ZD4gPGNvZGU+UmlnaHREb3duVGVlVmVjdG9yOzwvY29kZT4gPHRkPiBVKzAyOTVEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWdPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJpZ2h0RG93blZlY3Rvcj48dGQ+IDxjb2RlPlJpZ2h0RG93blZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjFDMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodERvd25WZWN0b3JCYXI+PHRkPiA8Y29kZT5SaWdodERvd25WZWN0b3JCYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZU8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmlnaHRGbG9vcj48dGQ+IDxjb2RlPlJpZ2h0Rmxvb3I7PC9jb2RlPiA8dGQ+IFUrMDIzMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmlnaHRoYXJwb29uZG93bj48dGQ+IDxjb2RlPnJpZ2h0aGFycG9vbmRvd247PC9jb2RlPiA8dGQ+IFUrMDIxQzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4E8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmlnaHRoYXJwb29udXA+PHRkPiA8Y29kZT5yaWdodGhhcnBvb251cDs8L2NvZGU+IDx0ZD4gVSswMjFDMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yaWdodGxlZnRhcnJvd3M+PHRkPiA8Y29kZT5yaWdodGxlZnRhcnJvd3M7PC9jb2RlPiA8dGQ+IFUrMDIxQzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmlnaHRsZWZ0aGFycG9vbnM+PHRkPiA8Y29kZT5yaWdodGxlZnRoYXJwb29uczs8L2NvZGU+IDx0ZD4gVSswMjFDQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHjDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yaWdodHJpZ2h0YXJyb3dzPjx0ZD4gPGNvZGU+cmlnaHRyaWdodGFycm93czs8L2NvZGU+IDx0ZD4gVSswMjFDOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yaWdodHNxdWlnYXJyb3c+PHRkPiA8Y29kZT5yaWdodHNxdWlnYXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihp08L3NwYW4+IDx0ciBpZD1lbnRpdHktUmlnaHRUZWU+PHRkPiA8Y29kZT5SaWdodFRlZTs8L2NvZGU+IDx0ZD4gVSswMjJBMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFRlZUFycm93Pjx0ZD4gPGNvZGU+UmlnaHRUZWVBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFBNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFRlZVZlY3Rvcj48dGQ+IDxjb2RlPlJpZ2h0VGVlVmVjdG9yOzwvY29kZT4gPHRkPiBVKzAyOTVCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWbPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJpZ2h0dGhyZWV0aW1lcz48dGQ+IDxjb2RlPnJpZ2h0dGhyZWV0aW1lczs8L2NvZGU+IDx0ZD4gVSswMjJDQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLjDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFRyaWFuZ2xlPjx0ZD4gPGNvZGU+UmlnaHRUcmlhbmdsZTs8L2NvZGU+IDx0ZD4gVSswMjJCMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFRyaWFuZ2xlQmFyPjx0ZD4gPGNvZGU+UmlnaHRUcmlhbmdsZUJhcjs8L2NvZGU+IDx0ZD4gVSswMjlEMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKnkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFRyaWFuZ2xlRXF1YWw+PHRkPiA8Y29kZT5SaWdodFRyaWFuZ2xlRXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyQjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirU8L3NwYW4+IDx0ciBpZD1lbnRpdHktUmlnaHRVcERvd25WZWN0b3I+PHRkPiA8Y29kZT5SaWdodFVwRG93blZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjk0RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKljzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFVwVGVlVmVjdG9yPjx0ZD4gPGNvZGU+UmlnaHRVcFRlZVZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjk1QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlnDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFVwVmVjdG9yPjx0ZD4gPGNvZGU+UmlnaHRVcFZlY3Rvcjs8L2NvZGU+IDx0ZD4gVSswMjFCRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFVwVmVjdG9yQmFyPjx0ZD4gPGNvZGU+UmlnaHRVcFZlY3RvckJhcjs8L2NvZGU+IDx0ZD4gVSswMjk1NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKllDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1SaWdodFZlY3Rvcj48dGQ+IDxjb2RlPlJpZ2h0VmVjdG9yOzwvY29kZT4gPHRkPiBVKzAyMUMwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJpZ2h0VmVjdG9yQmFyPjx0ZD4gPGNvZGU+UmlnaHRWZWN0b3JCYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipZM8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmluZz48dGQ+IDxjb2RlPnJpbmc7PC9jb2RlPiA8dGQ+IFUrMDAyREEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Lmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yaXNpbmdkb3RzZXE+PHRkPiA8Y29kZT5yaXNpbmdkb3RzZXE7PC9jb2RlPiA8dGQ+IFUrMDIyNTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiZM8L3NwYW4+IDx0ciBpZD1lbnRpdHktcmxhcnI+PHRkPiA8Y29kZT5ybGFycjs8L2NvZGU+IDx0ZD4gVSswMjFDNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ybGhhcj48dGQ+IDxjb2RlPnJsaGFyOzwvY29kZT4gPHRkPiBVKzAyMUNDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJsbT48dGQ+IDxjb2RlPnJsbTs8L2NvZGU+IDx0ZD4gVSswMjAwRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ybW91c3Q+PHRkPiA8Y29kZT5ybW91c3Q7PC9jb2RlPiA8dGQ+IFUrMDIzQjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijrE8L3NwYW4+IDx0ciBpZD1lbnRpdHktcm1vdXN0YWNoZT48dGQ+IDxjb2RlPnJtb3VzdGFjaGU7PC9jb2RlPiA8dGQ+IFUrMDIzQjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijrE8L3NwYW4+IDx0ciBpZD1lbnRpdHktcm5taWQ+PHRkPiA8Y29kZT5ybm1pZDs8L2NvZGU+IDx0ZD4gVSswMkFFRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yb2FuZz48dGQ+IDxjb2RlPnJvYW5nOzwvY29kZT4gPHRkPiBVKzAyN0VEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+tPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJvYXJyPjx0ZD4gPGNvZGU+cm9hcnI7PC9jb2RlPiA8dGQ+IFUrMDIxRkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih748L3NwYW4+IDx0ciBpZD1lbnRpdHktcm9icms+PHRkPiA8Y29kZT5yb2Jyazs8L2NvZGU+IDx0ZD4gVSswMjdFNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKfpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yb3Bhcj48dGQ+IDxjb2RlPnJvcGFyOzwvY29kZT4gPHRkPiBVKzAyOTg2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qaGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJvcGY+PHRkPiA8Y29kZT5Sb3BmOzwvY29kZT4gPHRkPiBVKzAyMTFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSdPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJvcGY+PHRkPiA8Y29kZT5yb3BmOzwvY29kZT4gPHRkPiBVKzFENTYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yb3BsdXM+PHRkPiA8Y29kZT5yb3BsdXM7PC9jb2RlPiA8dGQ+IFUrMDJBMkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqK48L3NwYW4+IDx0ciBpZD1lbnRpdHktcm90aW1lcz48dGQ+IDxjb2RlPnJvdGltZXM7PC9jb2RlPiA8dGQ+IFUrMDJBMzUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqLU8L3NwYW4+IDx0ciBpZD1lbnRpdHktUm91bmRJbXBsaWVzPjx0ZD4gPGNvZGU+Um91bmRJbXBsaWVzOzwvY29kZT4gPHRkPiBVKzAyOTcwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qWwPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJwYXI+PHRkPiA8Y29kZT5ycGFyOzwvY29kZT4gPHRkPiBVKzAwMDI5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+KTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ycGFyZ3Q+PHRkPiA8Y29kZT5ycGFyZ3Q7PC9jb2RlPiA8dGQ+IFUrMDI5OTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ippQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktcnBwb2xpbnQ+PHRkPiA8Y29kZT5ycHBvbGludDs8L2NvZGU+IDx0ZD4gVSswMkExMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKokjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ycmFycj48dGQ+IDxjb2RlPnJyYXJyOzwvY29kZT4gPHRkPiBVKzAyMUM5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJyaWdodGFycm93Pjx0ZD4gPGNvZGU+UnJpZ2h0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxREIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5s8L3NwYW4+IDx0ciBpZD1lbnRpdHktcnNhcXVvPjx0ZD4gPGNvZGU+cnNhcXVvOzwvY29kZT4gPHRkPiBVKzAyMDNBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oC6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJzY3I+PHRkPiA8Y29kZT5Sc2NyOzwvY29kZT4gPHRkPiBVKzAyMTFCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSbPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJzY3I+PHRkPiA8Y29kZT5yc2NyOzwvY29kZT4gPHRkPiBVKzFENEM3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Thzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Sc2g+PHRkPiA8Y29kZT5Sc2g7PC9jb2RlPiA8dGQ+IFUrMDIxQjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihrE8L3NwYW4+IDx0ciBpZD1lbnRpdHktcnNoPjx0ZD4gPGNvZGU+cnNoOzwvY29kZT4gPHRkPiBVKzAyMUIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJzcWI+PHRkPiA8Y29kZT5yc3FiOzwvY29kZT4gPHRkPiBVKzAwMDVEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+XTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1yc3F1bz48dGQ+IDxjb2RlPnJzcXVvOzwvY29kZT4gPHRkPiBVKzAyMDE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJzcXVvcj48dGQ+IDxjb2RlPnJzcXVvcjs8L2NvZGU+IDx0ZD4gVSswMjAxOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ydGhyZWU+PHRkPiA8Y29kZT5ydGhyZWU7PC9jb2RlPiA8dGQ+IFUrMDIyQ0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4w8L3NwYW4+IDx0ciBpZD1lbnRpdHktcnRpbWVzPjx0ZD4gPGNvZGU+cnRpbWVzOzwvY29kZT4gPHRkPiBVKzAyMkNBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJ0cmk+PHRkPiA8Y29kZT5ydHJpOzwvY29kZT4gPHRkPiBVKzAyNUI5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pa5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXJ0cmllPjx0ZD4gPGNvZGU+cnRyaWU7PC9jb2RlPiA8dGQ+IFUrMDIyQjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirU8L3NwYW4+IDx0ciBpZD1lbnRpdHktcnRyaWY+PHRkPiA8Y29kZT5ydHJpZjs8L2NvZGU+IDx0ZD4gVSswMjVCOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ydHJpbHRyaT48dGQ+IDxjb2RlPnJ0cmlsdHJpOzwvY29kZT4gPHRkPiBVKzAyOUNFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qeOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVJ1bGVEZWxheWVkPjx0ZD4gPGNvZGU+UnVsZURlbGF5ZWQ7PC9jb2RlPiA8dGQ+IFUrMDI5RjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ip7Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktcnVsdWhhcj48dGQ+IDxjb2RlPnJ1bHVoYXI7PC9jb2RlPiA8dGQ+IFUrMDI5NjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipag8L3NwYW4+IDx0ciBpZD1lbnRpdHktcng+PHRkPiA8Y29kZT5yeDs8L2NvZGU+IDx0ZD4gVSswMjExRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEnjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TYWN1dGU+PHRkPiA8Y29kZT5TYWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAxNUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zYWN1dGU+PHRkPiA8Y29kZT5zYWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAxNUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zYnF1bz48dGQ+IDxjb2RlPnNicXVvOzwvY29kZT4gPHRkPiBVKzAyMDFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNjPjx0ZD4gPGNvZGU+U2M7PC9jb2RlPiA8dGQ+IFUrMDJBQkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqrw8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2M+PHRkPiA8Y29kZT5zYzs8L2NvZGU+IDx0ZD4gVSswMjI3QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJuzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zY2FwPjx0ZD4gPGNvZGU+c2NhcDs8L2NvZGU+IDx0ZD4gVSswMkFCOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKquDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TY2Fyb24+PHRkPiA8Y29kZT5TY2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxNjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zY2Fyb24+PHRkPiA8Y29kZT5zY2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxNjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FoTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zY2N1ZT48dGQ+IDxjb2RlPnNjY3VlOzwvY29kZT4gPHRkPiBVKzAyMjdEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNjRT48dGQ+IDxjb2RlPnNjRTs8L2NvZGU+IDx0ZD4gVSswMkFCNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqtDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zY2U+PHRkPiA8Y29kZT5zY2U7PC9jb2RlPiA8dGQ+IFUrMDJBQjAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqrA8L3NwYW4+IDx0ciBpZD1lbnRpdHktU2NlZGlsPjx0ZD4gPGNvZGU+U2NlZGlsOzwvY29kZT4gPHRkPiBVKzAwMTVFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZ48L3NwYW4+IDx0ciBpZD1lbnRpdHktc2NlZGlsPjx0ZD4gPGNvZGU+c2NlZGlsOzwvY29kZT4gPHRkPiBVKzAwMTVGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xZ88L3NwYW4+IDx0ciBpZD1lbnRpdHktU2NpcmM+PHRkPiA8Y29kZT5TY2lyYzs8L2NvZGU+IDx0ZD4gVSswMDE1QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWcPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNjaXJjPjx0ZD4gPGNvZGU+c2NpcmM7PC9jb2RlPiA8dGQ+IFUrMDAxNUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zY25hcD48dGQ+IDxjb2RlPnNjbmFwOzwvY29kZT4gPHRkPiBVKzAyQUJBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qq6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNjbkU+PHRkPiA8Y29kZT5zY25FOzwvY29kZT4gPHRkPiBVKzAyQUI2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qq2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNjbnNpbT48dGQ+IDxjb2RlPnNjbnNpbTs8L2NvZGU+IDx0ZD4gVSswMjJFOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zY3BvbGludD48dGQ+IDxjb2RlPnNjcG9saW50OzwvY29kZT4gPHRkPiBVKzAyQTEzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qiTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNjc2ltPjx0ZD4gPGNvZGU+c2NzaW07PC9jb2RlPiA8dGQ+IFUrMDIyN0YgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iib88L3NwYW4+IDx0ciBpZD1lbnRpdHktU2N5Pjx0ZD4gPGNvZGU+U2N5OzwvY29kZT4gPHRkPiBVKzAwNDIxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0KE8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2N5Pjx0ZD4gPGNvZGU+c2N5OzwvY29kZT4gPHRkPiBVKzAwNDQxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0YE8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2RvdD48dGQ+IDxjb2RlPnNkb3Q7PC9jb2RlPiA8dGQ+IFUrMDIyQzUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4U8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2RvdGI+PHRkPiA8Y29kZT5zZG90Yjs8L2NvZGU+IDx0ZD4gVSswMjJBMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKoTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zZG90ZT48dGQ+IDxjb2RlPnNkb3RlOzwvY29kZT4gPHRkPiBVKzAyQTY2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmmPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNlYXJoaz48dGQ+IDxjb2RlPnNlYXJoazs8L2NvZGU+IDx0ZD4gVSswMjkyNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zZUFycj48dGQ+IDxjb2RlPnNlQXJyOzwvY29kZT4gPHRkPiBVKzAyMUQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNlYXJyPjx0ZD4gPGNvZGU+c2VhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxOTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpg8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2VhcnJvdz48dGQ+IDxjb2RlPnNlYXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpg8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2VjdD48dGQ+IDxjb2RlPnNlY3Q7PC9jb2RlPiA8dGQ+IFUrMDAwQTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Cpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zZWN0LWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+c2VjdDwvY29kZT4gPHRkPiBVKzAwMEE3IDx0ZD4gPHNwYW4+wqc8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2VtaT48dGQ+IDxjb2RlPnNlbWk7PC9jb2RlPiA8dGQ+IFUrMDAwM0IgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD47PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNlc3dhcj48dGQ+IDxjb2RlPnNlc3dhcjs8L2NvZGU+IDx0ZD4gVSswMjkyOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zZXRtaW51cz48dGQ+IDxjb2RlPnNldG1pbnVzOzwvY29kZT4gPHRkPiBVKzAyMjE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNldG1uPjx0ZD4gPGNvZGU+c2V0bW47PC9jb2RlPiA8dGQ+IFUrMDIyMTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJY8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2V4dD48dGQ+IDxjb2RlPnNleHQ7PC9jb2RlPiA8dGQ+IFUrMDI3MzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7inLY8L3NwYW4+IDx0ciBpZD1lbnRpdHktU2ZyPjx0ZD4gPGNvZGU+U2ZyOzwvY29kZT4gPHRkPiBVKzFENTE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Uljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zZnI+PHRkPiA8Y29kZT5zZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MzAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSwPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNmcm93bj48dGQ+IDxjb2RlPnNmcm93bjs8L2NvZGU+IDx0ZD4gVSswMjMyMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMojwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zaGFycD48dGQ+IDxjb2RlPnNoYXJwOzwvY29kZT4gPHRkPiBVKzAyNjZGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pmvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNIQ0hjeT48dGQ+IDxjb2RlPlNIQ0hjeTs8L2NvZGU+IDx0ZD4gVSswMDQyOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCpPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNoY2hjeT48dGQ+IDxjb2RlPnNoY2hjeTs8L2NvZGU+IDx0ZD4gVSswMDQ0OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNIY3k+PHRkPiA8Y29kZT5TSGN5OzwvY29kZT4gPHRkPiBVKzAwNDI4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Kg8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2hjeT48dGQ+IDxjb2RlPnNoY3k7PC9jb2RlPiA8dGQ+IFUrMDA0NDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7RiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TaG9ydERvd25BcnJvdz48dGQ+IDxjb2RlPlNob3J0RG93bkFycm93OzwvY29kZT4gPHRkPiBVKzAyMTkzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNob3J0TGVmdEFycm93Pjx0ZD4gPGNvZGU+U2hvcnRMZWZ0QXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpA8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2hvcnRtaWQ+PHRkPiA8Y29kZT5zaG9ydG1pZDs8L2NvZGU+IDx0ZD4gVSswMjIyMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zaG9ydHBhcmFsbGVsPjx0ZD4gPGNvZGU+c2hvcnRwYXJhbGxlbDs8L2NvZGU+IDx0ZD4gVSswMjIyNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TaG9ydFJpZ2h0QXJyb3c+PHRkPiA8Y29kZT5TaG9ydFJpZ2h0QXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpI8L3NwYW4+IDx0ciBpZD1lbnRpdHktU2hvcnRVcEFycm93Pjx0ZD4gPGNvZGU+U2hvcnRVcEFycm93OzwvY29kZT4gPHRkPiBVKzAyMTkxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNoeT48dGQ+IDxjb2RlPnNoeTs8L2NvZGU+IDx0ZD4gVSswMDBBRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKtPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNoeS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPnNoeTwvY29kZT4gPHRkPiBVKzAwMEFEIDx0ZD4gPHNwYW4+wq08L3NwYW4+IDx0ciBpZD1lbnRpdHktU2lnbWE+PHRkPiA8Y29kZT5TaWdtYTs8L2NvZGU+IDx0ZD4gVSswMDNBMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6jPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNpZ21hPjx0ZD4gPGNvZGU+c2lnbWE7PC9jb2RlPiA8dGQ+IFUrMDAzQzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Pgzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zaWdtYWY+PHRkPiA8Y29kZT5zaWdtYWY7PC9jb2RlPiA8dGQ+IFUrMDAzQzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Pgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zaWdtYXY+PHRkPiA8Y29kZT5zaWdtYXY7PC9jb2RlPiA8dGQ+IFUrMDAzQzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Pgjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zaW0+PHRkPiA8Y29kZT5zaW07PC9jb2RlPiA8dGQ+IFUrMDIyM0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiLw8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2ltZG90Pjx0ZD4gPGNvZGU+c2ltZG90OzwvY29kZT4gPHRkPiBVKzAyQTZBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qmqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNpbWU+PHRkPiA8Y29kZT5zaW1lOzwvY29kZT4gPHRkPiBVKzAyMjQzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNpbWVxPjx0ZD4gPGNvZGU+c2ltZXE7PC9jb2RlPiA8dGQ+IFUrMDIyNDMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYM8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2ltZz48dGQ+IDxjb2RlPnNpbWc7PC9jb2RlPiA8dGQ+IFUrMDJBOUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqp48L3NwYW4+IDx0ciBpZD1lbnRpdHktc2ltZ0U+PHRkPiA8Y29kZT5zaW1nRTs8L2NvZGU+IDx0ZD4gVSswMkFBMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zaW1sPjx0ZD4gPGNvZGU+c2ltbDs8L2NvZGU+IDx0ZD4gVSswMkE5RCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zaW1sRT48dGQ+IDxjb2RlPnNpbWxFOzwvY29kZT4gPHRkPiBVKzAyQTlGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqfPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNpbW5lPjx0ZD4gPGNvZGU+c2ltbmU7PC9jb2RlPiA8dGQ+IFUrMDIyNDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYY8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2ltcGx1cz48dGQ+IDxjb2RlPnNpbXBsdXM7PC9jb2RlPiA8dGQ+IFUrMDJBMjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqKQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2ltcmFycj48dGQ+IDxjb2RlPnNpbXJhcnI7PC9jb2RlPiA8dGQ+IFUrMDI5NzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipbI8L3NwYW4+IDx0ciBpZD1lbnRpdHktc2xhcnI+PHRkPiA8Y29kZT5zbGFycjs8L2NvZGU+IDx0ZD4gVSswMjE5MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TbWFsbENpcmNsZT48dGQ+IDxjb2RlPlNtYWxsQ2lyY2xlOzwvY29kZT4gPHRkPiBVKzAyMjE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNtYWxsc2V0bWludXM+PHRkPiA8Y29kZT5zbWFsbHNldG1pbnVzOzwvY29kZT4gPHRkPiBVKzAyMjE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNtYXNocD48dGQ+IDxjb2RlPnNtYXNocDs8L2NvZGU+IDx0ZD4gVSswMkEzMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKoszwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zbWVwYXJzbD48dGQ+IDxjb2RlPnNtZXBhcnNsOzwvY29kZT4gPHRkPiBVKzAyOUU0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qekPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNtaWQ+PHRkPiA8Y29kZT5zbWlkOzwvY29kZT4gPHRkPiBVKzAyMjIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oijPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNtaWxlPjx0ZD4gPGNvZGU+c21pbGU7PC9jb2RlPiA8dGQ+IFUrMDIzMjMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijKM8L3NwYW4+IDx0ciBpZD1lbnRpdHktc210Pjx0ZD4gPGNvZGU+c210OzwvY29kZT4gPHRkPiBVKzAyQUFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqqPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNtdGU+PHRkPiA8Y29kZT5zbXRlOzwvY29kZT4gPHRkPiBVKzAyQUFDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNtdGVzPjx0ZD4gPGNvZGU+c210ZXM7PC9jb2RlPiA8dGQ+IFUrMDJBQUMgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4qqs77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNPRlRjeT48dGQ+IDxjb2RlPlNPRlRjeTs8L2NvZGU+IDx0ZD4gVSswMDQyQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNvZnRjeT48dGQ+IDxjb2RlPnNvZnRjeTs8L2NvZGU+IDx0ZD4gVSswMDQ0QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNvbD48dGQ+IDxjb2RlPnNvbDs8L2NvZGU+IDx0ZD4gVSswMDAyRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPi88L3NwYW4+IDx0ciBpZD1lbnRpdHktc29sYj48dGQ+IDxjb2RlPnNvbGI7PC9jb2RlPiA8dGQ+IFUrMDI5QzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ip4Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktc29sYmFyPjx0ZD4gPGNvZGU+c29sYmFyOzwvY29kZT4gPHRkPiBVKzAyMzNGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oy/PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNvcGY+PHRkPiA8Y29kZT5Tb3BmOzwvY29kZT4gPHRkPiBVKzFENTRBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zb3BmPjx0ZD4gPGNvZGU+c29wZjs8L2NvZGU+IDx0ZD4gVSsxRDU2NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlaQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3BhZGVzPjx0ZD4gPGNvZGU+c3BhZGVzOzwvY29kZT4gPHRkPiBVKzAyNjYwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pmgPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNwYWRlc3VpdD48dGQ+IDxjb2RlPnNwYWRlc3VpdDs8L2NvZGU+IDx0ZD4gVSswMjY2MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKZoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcGFyPjx0ZD4gPGNvZGU+c3Bhcjs8L2NvZGU+IDx0ZD4gVSswMjIyNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcWNhcD48dGQ+IDxjb2RlPnNxY2FwOzwvY29kZT4gPHRkPiBVKzAyMjkzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNxY2Fwcz48dGQ+IDxjb2RlPnNxY2Fwczs8L2NvZGU+IDx0ZD4gVSswMjI5MyBVKzBGRTAwIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iipPvuIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3FjdXA+PHRkPiA8Y29kZT5zcWN1cDs8L2NvZGU+IDx0ZD4gVSswMjI5NCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKlDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcWN1cHM+PHRkPiA8Y29kZT5zcWN1cHM7PC9jb2RlPiA8dGQ+IFUrMDIyOTQgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oqU77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNxcnQ+PHRkPiA8Y29kZT5TcXJ0OzwvY29kZT4gPHRkPiBVKzAyMjFBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNxc3ViPjx0ZD4gPGNvZGU+c3FzdWI7PC9jb2RlPiA8dGQ+IFUrMDIyOEYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iio88L3NwYW4+IDx0ciBpZD1lbnRpdHktc3FzdWJlPjx0ZD4gPGNvZGU+c3FzdWJlOzwvY29kZT4gPHRkPiBVKzAyMjkxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNxc3Vic2V0Pjx0ZD4gPGNvZGU+c3FzdWJzZXQ7PC9jb2RlPiA8dGQ+IFUrMDIyOEYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iio88L3NwYW4+IDx0ciBpZD1lbnRpdHktc3FzdWJzZXRlcT48dGQ+IDxjb2RlPnNxc3Vic2V0ZXE7PC9jb2RlPiA8dGQ+IFUrMDIyOTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iipE8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3FzdXA+PHRkPiA8Y29kZT5zcXN1cDs8L2NvZGU+IDx0ZD4gVSswMjI5MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcXN1cGU+PHRkPiA8Y29kZT5zcXN1cGU7PC9jb2RlPiA8dGQ+IFUrMDIyOTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iipI8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3FzdXBzZXQ+PHRkPiA8Y29kZT5zcXN1cHNldDs8L2NvZGU+IDx0ZD4gVSswMjI5MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcXN1cHNldGVxPjx0ZD4gPGNvZGU+c3FzdXBzZXRlcTs8L2NvZGU+IDx0ZD4gVSswMjI5MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcXU+PHRkPiA8Y29kZT5zcXU7PC9jb2RlPiA8dGQ+IFUrMDI1QTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilqE8L3NwYW4+IDx0ciBpZD1lbnRpdHktU3F1YXJlPjx0ZD4gPGNvZGU+U3F1YXJlOzwvY29kZT4gPHRkPiBVKzAyNUExIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pahPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNxdWFyZT48dGQ+IDxjb2RlPnNxdWFyZTs8L2NvZGU+IDx0ZD4gVSswMjVBMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWoTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TcXVhcmVJbnRlcnNlY3Rpb24+PHRkPiA8Y29kZT5TcXVhcmVJbnRlcnNlY3Rpb247PC9jb2RlPiA8dGQ+IFUrMDIyOTMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iipM8L3NwYW4+IDx0ciBpZD1lbnRpdHktU3F1YXJlU3Vic2V0Pjx0ZD4gPGNvZGU+U3F1YXJlU3Vic2V0OzwvY29kZT4gPHRkPiBVKzAyMjhGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqPPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNxdWFyZVN1YnNldEVxdWFsPjx0ZD4gPGNvZGU+U3F1YXJlU3Vic2V0RXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyOTEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iipE8L3NwYW4+IDx0ciBpZD1lbnRpdHktU3F1YXJlU3VwZXJzZXQ+PHRkPiA8Y29kZT5TcXVhcmVTdXBlcnNldDs8L2NvZGU+IDx0ZD4gVSswMjI5MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TcXVhcmVTdXBlcnNldEVxdWFsPjx0ZD4gPGNvZGU+U3F1YXJlU3VwZXJzZXRFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMjI5MiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TcXVhcmVVbmlvbj48dGQ+IDxjb2RlPlNxdWFyZVVuaW9uOzwvY29kZT4gPHRkPiBVKzAyMjk0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNxdWFyZj48dGQ+IDxjb2RlPnNxdWFyZjs8L2NvZGU+IDx0ZD4gVSswMjVBQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcXVmPjx0ZD4gPGNvZGU+c3F1Zjs8L2NvZGU+IDx0ZD4gVSswMjVBQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zcmFycj48dGQ+IDxjb2RlPnNyYXJyOzwvY29kZT4gPHRkPiBVKzAyMTkyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaSPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVNzY3I+PHRkPiA8Y29kZT5Tc2NyOzwvY29kZT4gPHRkPiBVKzFENEFFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Srjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zc2NyPjx0ZD4gPGNvZGU+c3Njcjs8L2NvZGU+IDx0ZD4gVSsxRDRDOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdk4g8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3NldG1uPjx0ZD4gPGNvZGU+c3NldG1uOzwvY29kZT4gPHRkPiBVKzAyMjE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiWPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXNzbWlsZT48dGQ+IDxjb2RlPnNzbWlsZTs8L2NvZGU+IDx0ZD4gVSswMjMyMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zc3RhcmY+PHRkPiA8Y29kZT5zc3RhcmY7PC9jb2RlPiA8dGQ+IFUrMDIyQzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktU3Rhcj48dGQ+IDxjb2RlPlN0YXI7PC9jb2RlPiA8dGQ+IFUrMDIyQzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4Y8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Rhcj48dGQ+IDxjb2RlPnN0YXI7PC9jb2RlPiA8dGQ+IFUrMDI2MDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7imIY8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3RhcmY+PHRkPiA8Y29kZT5zdGFyZjs8L2NvZGU+IDx0ZD4gVSswMjYwNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKYhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdHJhaWdodGVwc2lsb24+PHRkPiA8Y29kZT5zdHJhaWdodGVwc2lsb247PC9jb2RlPiA8dGQ+IFUrMDAzRjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7PtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdHJhaWdodHBoaT48dGQ+IDxjb2RlPnN0cmFpZ2h0cGhpOzwvY29kZT4gPHRkPiBVKzAwM0Q1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z5U8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3RybnM+PHRkPiA8Y29kZT5zdHJuczs8L2NvZGU+IDx0ZD4gVSswMDBBRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVN1Yj48dGQ+IDxjb2RlPlN1Yjs8L2NvZGU+IDx0ZD4gVSswMjJEMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdWI+PHRkPiA8Y29kZT5zdWI7PC9jb2RlPiA8dGQ+IFUrMDIyODIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioI8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3ViZG90Pjx0ZD4gPGNvZGU+c3ViZG90OzwvY29kZT4gPHRkPiBVKzAyQUJEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qq9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1YkU+PHRkPiA8Y29kZT5zdWJFOzwvY29kZT4gPHRkPiBVKzAyQUM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1YmU+PHRkPiA8Y29kZT5zdWJlOzwvY29kZT4gPHRkPiBVKzAyMjg2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1YmVkb3Q+PHRkPiA8Y29kZT5zdWJlZG90OzwvY29kZT4gPHRkPiBVKzAyQUMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1Ym11bHQ+PHRkPiA8Y29kZT5zdWJtdWx0OzwvY29kZT4gPHRkPiBVKzAyQUMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quBPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1Ym5FPjx0ZD4gPGNvZGU+c3VibkU7PC9jb2RlPiA8dGQ+IFUrMDJBQ0IgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq4s8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VibmU+PHRkPiA8Y29kZT5zdWJuZTs8L2NvZGU+IDx0ZD4gVSswMjI4QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKijwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdWJwbHVzPjx0ZD4gPGNvZGU+c3VicGx1czs8L2NvZGU+IDx0ZD4gVSswMkFCRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdWJyYXJyPjx0ZD4gPGNvZGU+c3VicmFycjs8L2NvZGU+IDx0ZD4gVSswMjk3OSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKluTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TdWJzZXQ+PHRkPiA8Y29kZT5TdWJzZXQ7PC9jb2RlPiA8dGQ+IFUrMDIyRDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5A8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Vic2V0Pjx0ZD4gPGNvZGU+c3Vic2V0OzwvY29kZT4gPHRkPiBVKzAyMjgyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1YnNldGVxPjx0ZD4gPGNvZGU+c3Vic2V0ZXE7PC9jb2RlPiA8dGQ+IFUrMDIyODYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioY8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Vic2V0ZXFxPjx0ZD4gPGNvZGU+c3Vic2V0ZXFxOzwvY29kZT4gPHRkPiBVKzAyQUM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVN1YnNldEVxdWFsPjx0ZD4gPGNvZGU+U3Vic2V0RXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyODYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioY8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Vic2V0bmVxPjx0ZD4gPGNvZGU+c3Vic2V0bmVxOzwvY29kZT4gPHRkPiBVKzAyMjhBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqKPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1YnNldG5lcXE+PHRkPiA8Y29kZT5zdWJzZXRuZXFxOzwvY29kZT4gPHRkPiBVKzAyQUNCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1YnNpbT48dGQ+IDxjb2RlPnN1YnNpbTs8L2NvZGU+IDx0ZD4gVSswMkFDNyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdWJzdWI+PHRkPiA8Y29kZT5zdWJzdWI7PC9jb2RlPiA8dGQ+IFUrMDJBRDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq5U8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Vic3VwPjx0ZD4gPGNvZGU+c3Vic3VwOzwvY29kZT4gPHRkPiBVKzAyQUQzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quTPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1Y2M+PHRkPiA8Y29kZT5zdWNjOzwvY29kZT4gPHRkPiBVKzAyMjdCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1Y2NhcHByb3g+PHRkPiA8Y29kZT5zdWNjYXBwcm94OzwvY29kZT4gPHRkPiBVKzAyQUI4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qq4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1Y2NjdXJseWVxPjx0ZD4gPGNvZGU+c3VjY2N1cmx5ZXE7PC9jb2RlPiA8dGQ+IFUrMDIyN0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iib08L3NwYW4+IDx0ciBpZD1lbnRpdHktU3VjY2VlZHM+PHRkPiA8Y29kZT5TdWNjZWVkczs8L2NvZGU+IDx0ZD4gVSswMjI3QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKJuzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TdWNjZWVkc0VxdWFsPjx0ZD4gPGNvZGU+U3VjY2VlZHNFcXVhbDs8L2NvZGU+IDx0ZD4gVSswMkFCMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TdWNjZWVkc1NsYW50RXF1YWw+PHRkPiA8Y29kZT5TdWNjZWVkc1NsYW50RXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyN0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iib08L3NwYW4+IDx0ciBpZD1lbnRpdHktU3VjY2VlZHNUaWxkZT48dGQ+IDxjb2RlPlN1Y2NlZWRzVGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyN0YgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iib88L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VjY2VxPjx0ZD4gPGNvZGU+c3VjY2VxOzwvY29kZT4gPHRkPiBVKzAyQUIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qqwPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1Y2NuYXBwcm94Pjx0ZD4gPGNvZGU+c3VjY25hcHByb3g7PC9jb2RlPiA8dGQ+IFUrMDJBQkEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqro8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VjY25lcXE+PHRkPiA8Y29kZT5zdWNjbmVxcTs8L2NvZGU+IDx0ZD4gVSswMkFCNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdWNjbnNpbT48dGQ+IDxjb2RlPnN1Y2Nuc2ltOzwvY29kZT4gPHRkPiBVKzAyMkU5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oupPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1Y2NzaW0+PHRkPiA8Y29kZT5zdWNjc2ltOzwvY29kZT4gPHRkPiBVKzAyMjdGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4om/PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVN1Y2hUaGF0Pjx0ZD4gPGNvZGU+U3VjaFRoYXQ7PC9jb2RlPiA8dGQ+IFUrMDIyMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktU3VtPjx0ZD4gPGNvZGU+U3VtOzwvY29kZT4gPHRkPiBVKzAyMjExIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1bT48dGQ+IDxjb2RlPnN1bTs8L2NvZGU+IDx0ZD4gVSswMjIxMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdW5nPjx0ZD4gPGNvZGU+c3VuZzs8L2NvZGU+IDx0ZD4gVSswMjY2QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKZqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TdXA+PHRkPiA8Y29kZT5TdXA7PC9jb2RlPiA8dGQ+IFUrMDIyRDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5E8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VwPjx0ZD4gPGNvZGU+c3VwOzwvY29kZT4gPHRkPiBVKzAyMjgzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cDE+PHRkPiA8Y29kZT5zdXAxOzwvY29kZT4gPHRkPiBVKzAwMEI5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrk8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VwMS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPnN1cDE8L2NvZGU+IDx0ZD4gVSswMDBCOSA8dGQ+IDxzcGFuPsK5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cDI+PHRkPiA8Y29kZT5zdXAyOzwvY29kZT4gPHRkPiBVKzAwMEIyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrI8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VwMi1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPnN1cDI8L2NvZGU+IDx0ZD4gVSswMDBCMiA8dGQ+IDxzcGFuPsKyPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cDM+PHRkPiA8Y29kZT5zdXAzOzwvY29kZT4gPHRkPiBVKzAwMEIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wrM8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VwMy1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPnN1cDM8L2NvZGU+IDx0ZD4gVSswMDBCMyA8dGQ+IDxzcGFuPsKzPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cGRvdD48dGQ+IDxjb2RlPnN1cGRvdDs8L2NvZGU+IDx0ZD4gVSswMkFCRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKqvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdXBkc3ViPjx0ZD4gPGNvZGU+c3VwZHN1Yjs8L2NvZGU+IDx0ZD4gVSswMkFEOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdXBFPjx0ZD4gPGNvZGU+c3VwRTs8L2NvZGU+IDx0ZD4gVSswMkFDNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrhjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdXBlPjx0ZD4gPGNvZGU+c3VwZTs8L2NvZGU+IDx0ZD4gVSswMjI4NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdXBlZG90Pjx0ZD4gPGNvZGU+c3VwZWRvdDs8L2NvZGU+IDx0ZD4gVSswMkFDNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrhDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TdXBlcnNldD48dGQ+IDxjb2RlPlN1cGVyc2V0OzwvY29kZT4gPHRkPiBVKzAyMjgzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVN1cGVyc2V0RXF1YWw+PHRkPiA8Y29kZT5TdXBlcnNldEVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMjg3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqHPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cGhzb2w+PHRkPiA8Y29kZT5zdXBoc29sOzwvY29kZT4gPHRkPiBVKzAyN0M5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+JPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cGhzdWI+PHRkPiA8Y29kZT5zdXBoc3ViOzwvY29kZT4gPHRkPiBVKzAyQUQ3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cGxhcnI+PHRkPiA8Y29kZT5zdXBsYXJyOzwvY29kZT4gPHRkPiBVKzAyOTdCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qW7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cG11bHQ+PHRkPiA8Y29kZT5zdXBtdWx0OzwvY29kZT4gPHRkPiBVKzAyQUMyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quCPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cG5FPjx0ZD4gPGNvZGU+c3VwbkU7PC9jb2RlPiA8dGQ+IFUrMDJBQ0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq4w8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3VwbmU+PHRkPiA8Y29kZT5zdXBuZTs8L2NvZGU+IDx0ZD4gVSswMjI4QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdXBwbHVzPjx0ZD4gPGNvZGU+c3VwcGx1czs8L2NvZGU+IDx0ZD4gVSswMkFDMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1TdXBzZXQ+PHRkPiA8Y29kZT5TdXBzZXQ7PC9jb2RlPiA8dGQ+IFUrMDIyRDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii5E8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Vwc2V0Pjx0ZD4gPGNvZGU+c3Vwc2V0OzwvY29kZT4gPHRkPiBVKzAyMjgzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cHNldGVxPjx0ZD4gPGNvZGU+c3Vwc2V0ZXE7PC9jb2RlPiA8dGQ+IFUrMDIyODcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iioc8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Vwc2V0ZXFxPjx0ZD4gPGNvZGU+c3Vwc2V0ZXFxOzwvY29kZT4gPHRkPiBVKzAyQUM2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cHNldG5lcT48dGQ+IDxjb2RlPnN1cHNldG5lcTs8L2NvZGU+IDx0ZD4gVSswMjI4QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKizwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdXBzZXRuZXFxPjx0ZD4gPGNvZGU+c3Vwc2V0bmVxcTs8L2NvZGU+IDx0ZD4gVSswMkFDQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrjDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zdXBzaW0+PHRkPiA8Y29kZT5zdXBzaW07PC9jb2RlPiA8dGQ+IFUrMDJBQzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq4g8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3Vwc3ViPjx0ZD4gPGNvZGU+c3Vwc3ViOzwvY29kZT4gPHRkPiBVKzAyQUQ0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quUPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN1cHN1cD48dGQ+IDxjb2RlPnN1cHN1cDs8L2NvZGU+IDx0ZD4gVSswMkFENiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zd2FyaGs+PHRkPiA8Y29kZT5zd2FyaGs7PC9jb2RlPiA8dGQ+IFUrMDI5MjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipKY8L3NwYW4+IDx0ciBpZD1lbnRpdHktc3dBcnI+PHRkPiA8Y29kZT5zd0Fycjs8L2NvZGU+IDx0ZD4gVSswMjFEOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zd2Fycj48dGQ+IDxjb2RlPnN3YXJyOzwvY29kZT4gPHRkPiBVKzAyMTk5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN3YXJyb3c+PHRkPiA8Y29kZT5zd2Fycm93OzwvY29kZT4gPHRkPiBVKzAyMTk5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXN3bndhcj48dGQ+IDxjb2RlPnN3bndhcjs8L2NvZGU+IDx0ZD4gVSswMjkyQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1zemxpZz48dGQ+IDxjb2RlPnN6bGlnOzwvY29kZT4gPHRkPiBVKzAwMERGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w588L3NwYW4+IDx0ciBpZD1lbnRpdHktc3psaWctbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5zemxpZzwvY29kZT4gPHRkPiBVKzAwMERGIDx0ZD4gPHNwYW4+w588L3NwYW4+IDx0ciBpZD1lbnRpdHktVGFiPjx0ZD4gPGNvZGU+VGFiOzwvY29kZT4gPHRkPiBVKzAwMDA5IDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbnRyb2wiPuKQiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS10YXJnZXQ+PHRkPiA8Y29kZT50YXJnZXQ7PC9jb2RlPiA8dGQ+IFUrMDIzMTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijJY8L3NwYW4+IDx0ciBpZD1lbnRpdHktVGF1Pjx0ZD4gPGNvZGU+VGF1OzwvY29kZT4gPHRkPiBVKzAwM0E0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zqQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGF1Pjx0ZD4gPGNvZGU+dGF1OzwvY29kZT4gPHRkPiBVKzAwM0M0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z4Q8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGJyaz48dGQ+IDxjb2RlPnRicms7PC9jb2RlPiA8dGQ+IFUrMDIzQjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijrQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktVGNhcm9uPjx0ZD4gPGNvZGU+VGNhcm9uOzwvY29kZT4gPHRkPiBVKzAwMTY0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xaQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGNhcm9uPjx0ZD4gPGNvZGU+dGNhcm9uOzwvY29kZT4gPHRkPiBVKzAwMTY1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xaU8L3NwYW4+IDx0ciBpZD1lbnRpdHktVGNlZGlsPjx0ZD4gPGNvZGU+VGNlZGlsOzwvY29kZT4gPHRkPiBVKzAwMTYyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xaI8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGNlZGlsPjx0ZD4gPGNvZGU+dGNlZGlsOzwvY29kZT4gPHRkPiBVKzAwMTYzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xaM8L3NwYW4+IDx0ciBpZD1lbnRpdHktVGN5Pjx0ZD4gPGNvZGU+VGN5OzwvY29kZT4gPHRkPiBVKzAwNDIyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0KI8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGN5Pjx0ZD4gPGNvZGU+dGN5OzwvY29kZT4gPHRkPiBVKzAwNDQyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0YI8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGRvdD48dGQ+IDxjb2RlPnRkb3Q7PC9jb2RlPiA8dGQ+IFUrMDIwREIgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG9zaXRpb24iPuKXjOKDmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS10ZWxyZWM+PHRkPiA8Y29kZT50ZWxyZWM7PC9jb2RlPiA8dGQ+IFUrMDIzMTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijJU8L3NwYW4+IDx0ciBpZD1lbnRpdHktVGZyPjx0ZD4gPGNvZGU+VGZyOzwvY29kZT4gPHRkPiBVKzFENTE3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Ulzwvc3Bhbj4gPHRyIGlkPWVudGl0eS10ZnI+PHRkPiA8Y29kZT50ZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRoZXJlND48dGQ+IDxjb2RlPnRoZXJlNDs8L2NvZGU+IDx0ZD4gVSswMjIzNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKItDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1UaGVyZWZvcmU+PHRkPiA8Y29kZT5UaGVyZWZvcmU7PC9jb2RlPiA8dGQ+IFUrMDIyMzQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiLQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGhlcmVmb3JlPjx0ZD4gPGNvZGU+dGhlcmVmb3JlOzwvY29kZT4gPHRkPiBVKzAyMjM0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oi0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVRoZXRhPjx0ZD4gPGNvZGU+VGhldGE7PC9jb2RlPiA8dGQ+IFUrMDAzOTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7OmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS10aGV0YT48dGQ+IDxjb2RlPnRoZXRhOzwvY29kZT4gPHRkPiBVKzAwM0I4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+zrg8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGhldGFzeW0+PHRkPiA8Y29kZT50aGV0YXN5bTs8L2NvZGU+IDx0ZD4gVSswMDNEMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+RPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRoZXRhdj48dGQ+IDxjb2RlPnRoZXRhdjs8L2NvZGU+IDx0ZD4gVSswMDNEMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+RPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRoaWNrYXBwcm94Pjx0ZD4gPGNvZGU+dGhpY2thcHByb3g7PC9jb2RlPiA8dGQ+IFUrMDIyNDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYg8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGhpY2tzaW0+PHRkPiA8Y29kZT50aGlja3NpbTs8L2NvZGU+IDx0ZD4gVSswMjIzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1UaGlja1NwYWNlPjx0ZD4gPGNvZGU+VGhpY2tTcGFjZTs8L2NvZGU+IDx0ZD4gVSswMjA1RiBVKzAyMDBBIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7igZ/igIo8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGhpbnNwPjx0ZD4gPGNvZGU+dGhpbnNwOzwvY29kZT4gPHRkPiBVKzAyMDA5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oCJPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVRoaW5TcGFjZT48dGQ+IDxjb2RlPlRoaW5TcGFjZTs8L2NvZGU+IDx0ZD4gVSswMjAwOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS10aGthcD48dGQ+IDxjb2RlPnRoa2FwOzwvY29kZT4gPHRkPiBVKzAyMjQ4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omIPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRoa3NpbT48dGQ+IDxjb2RlPnRoa3NpbTs8L2NvZGU+IDx0ZD4gVSswMjIzQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1USE9STj48dGQ+IDxjb2RlPlRIT1JOOzwvY29kZT4gPHRkPiBVKzAwMERFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w548L3NwYW4+IDx0ciBpZD1lbnRpdHktVEhPUk4tbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5USE9STjwvY29kZT4gPHRkPiBVKzAwMERFIDx0ZD4gPHNwYW4+w548L3NwYW4+IDx0ciBpZD1lbnRpdHktdGhvcm4+PHRkPiA8Y29kZT50aG9ybjs8L2NvZGU+IDx0ZD4gVSswMDBGRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsO+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRob3JuLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+dGhvcm48L2NvZGU+IDx0ZD4gVSswMDBGRSA8dGQ+IDxzcGFuPsO+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVRpbGRlPjx0ZD4gPGNvZGU+VGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyM0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiLw8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGlsZGU+PHRkPiA8Y29kZT50aWxkZTs8L2NvZGU+IDx0ZD4gVSswMDJEQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsucPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVRpbGRlRXF1YWw+PHRkPiA8Y29kZT5UaWxkZUVxdWFsOzwvY29kZT4gPHRkPiBVKzAyMjQzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVRpbGRlRnVsbEVxdWFsPjx0ZD4gPGNvZGU+VGlsZGVGdWxsRXF1YWw7PC9jb2RlPiA8dGQ+IFUrMDIyNDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYU8L3NwYW4+IDx0ciBpZD1lbnRpdHktVGlsZGVUaWxkZT48dGQ+IDxjb2RlPlRpbGRlVGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyNDggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYg8L3NwYW4+IDx0ciBpZD1lbnRpdHktdGltZXM+PHRkPiA8Y29kZT50aW1lczs8L2NvZGU+IDx0ZD4gVSswMDBENyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRpbWVzLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+dGltZXM8L2NvZGU+IDx0ZD4gVSswMDBENyA8dGQ+IDxzcGFuPsOXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRpbWVzYj48dGQ+IDxjb2RlPnRpbWVzYjs8L2NvZGU+IDx0ZD4gVSswMjJBMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKoDwvc3Bhbj4gPHRyIGlkPWVudGl0eS10aW1lc2Jhcj48dGQ+IDxjb2RlPnRpbWVzYmFyOzwvY29kZT4gPHRkPiBVKzAyQTMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qixPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRpbWVzZD48dGQ+IDxjb2RlPnRpbWVzZDs8L2NvZGU+IDx0ZD4gVSswMkEzMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKosDwvc3Bhbj4gPHRyIGlkPWVudGl0eS10aW50Pjx0ZD4gPGNvZGU+dGludDs8L2NvZGU+IDx0ZD4gVSswMjIyRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS10b2VhPjx0ZD4gPGNvZGU+dG9lYTs8L2NvZGU+IDx0ZD4gVSswMjkyOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS10b3A+PHRkPiA8Y29kZT50b3A7PC9jb2RlPiA8dGQ+IFUrMDIyQTQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiqQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktdG9wYm90Pjx0ZD4gPGNvZGU+dG9wYm90OzwvY29kZT4gPHRkPiBVKzAyMzM2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oy2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRvcGNpcj48dGQ+IDxjb2RlPnRvcGNpcjs8L2NvZGU+IDx0ZD4gVSswMkFGMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrsTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Ub3BmPjx0ZD4gPGNvZGU+VG9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU0QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlYs8L3NwYW4+IDx0ciBpZD1lbnRpdHktdG9wZj48dGQ+IDxjb2RlPnRvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWlPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRvcGZvcms+PHRkPiA8Y29kZT50b3Bmb3JrOzwvY29kZT4gPHRkPiBVKzAyQURBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4quaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRvc2E+PHRkPiA8Y29kZT50b3NhOzwvY29kZT4gPHRkPiBVKzAyOTI5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qSpPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRwcmltZT48dGQ+IDxjb2RlPnRwcmltZTs8L2NvZGU+IDx0ZD4gVSswMjAzNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAtDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1UUkFERT48dGQ+IDxjb2RlPlRSQURFOzwvY29kZT4gPHRkPiBVKzAyMTIyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRyYWRlPjx0ZD4gPGNvZGU+dHJhZGU7PC9jb2RlPiA8dGQ+IFUrMDIxMjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihKI8L3NwYW4+IDx0ciBpZD1lbnRpdHktdHJpYW5nbGU+PHRkPiA8Y29kZT50cmlhbmdsZTs8L2NvZGU+IDx0ZD4gVSswMjVCNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS10cmlhbmdsZWRvd24+PHRkPiA8Y29kZT50cmlhbmdsZWRvd247PC9jb2RlPiA8dGQ+IFUrMDI1QkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ilr88L3NwYW4+IDx0ciBpZD1lbnRpdHktdHJpYW5nbGVsZWZ0Pjx0ZD4gPGNvZGU+dHJpYW5nbGVsZWZ0OzwvY29kZT4gPHRkPiBVKzAyNUMzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4peDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRyaWFuZ2xlbGVmdGVxPjx0ZD4gPGNvZGU+dHJpYW5nbGVsZWZ0ZXE7PC9jb2RlPiA8dGQ+IFUrMDIyQjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktdHJpYW5nbGVxPjx0ZD4gPGNvZGU+dHJpYW5nbGVxOzwvY29kZT4gPHRkPiBVKzAyMjVDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omcPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRyaWFuZ2xlcmlnaHQ+PHRkPiA8Y29kZT50cmlhbmdsZXJpZ2h0OzwvY29kZT4gPHRkPiBVKzAyNUI5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pa5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRyaWFuZ2xlcmlnaHRlcT48dGQ+IDxjb2RlPnRyaWFuZ2xlcmlnaHRlcTs8L2NvZGU+IDx0ZD4gVSswMjJCNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS10cmlkb3Q+PHRkPiA8Y29kZT50cmlkb3Q7PC9jb2RlPiA8dGQ+IFUrMDI1RUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7il6w8L3NwYW4+IDx0ciBpZD1lbnRpdHktdHJpZT48dGQ+IDxjb2RlPnRyaWU7PC9jb2RlPiA8dGQ+IFUrMDIyNUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiZw8L3NwYW4+IDx0ciBpZD1lbnRpdHktdHJpbWludXM+PHRkPiA8Y29kZT50cmltaW51czs8L2NvZGU+IDx0ZD4gVSswMkEzQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKoujwvc3Bhbj4gPHRyIGlkPWVudGl0eS1UcmlwbGVEb3Q+PHRkPiA8Y29kZT5UcmlwbGVEb3Q7PC9jb2RlPiA8dGQ+IFUrMDIwREIgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG9zaXRpb24iPuKXjOKDmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS10cmlwbHVzPjx0ZD4gPGNvZGU+dHJpcGx1czs8L2NvZGU+IDx0ZD4gVSswMkEzOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKouTwvc3Bhbj4gPHRyIGlkPWVudGl0eS10cmlzYj48dGQ+IDxjb2RlPnRyaXNiOzwvY29kZT4gPHRkPiBVKzAyOUNEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qeNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRyaXRpbWU+PHRkPiA8Y29kZT50cml0aW1lOzwvY29kZT4gPHRkPiBVKzAyQTNCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qi7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRycGV6aXVtPjx0ZD4gPGNvZGU+dHJwZXppdW07PC9jb2RlPiA8dGQ+IFUrMDIzRTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ij6I8L3NwYW4+IDx0ciBpZD1lbnRpdHktVHNjcj48dGQ+IDxjb2RlPlRzY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0QUYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZKvPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRzY3I+PHRkPiA8Y29kZT50c2NyOzwvY29kZT4gPHRkPiBVKzFENEM5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2TiTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1UU2N5Pjx0ZD4gPGNvZGU+VFNjeTs8L2NvZGU+IDx0ZD4gVSswMDQyNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCmPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRzY3k+PHRkPiA8Y29kZT50c2N5OzwvY29kZT4gPHRkPiBVKzAwNDQ2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0YY8L3NwYW4+IDx0ciBpZD1lbnRpdHktVFNIY3k+PHRkPiA8Y29kZT5UU0hjeTs8L2NvZGU+IDx0ZD4gVSswMDQwQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCLPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXRzaGN5Pjx0ZD4gPGNvZGU+dHNoY3k7PC9jb2RlPiA8dGQ+IFUrMDA0NUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Rmzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Uc3Ryb2s+PHRkPiA8Y29kZT5Uc3Ryb2s7PC9jb2RlPiA8dGQ+IFUrMDAxNjYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS10c3Ryb2s+PHRkPiA8Y29kZT50c3Ryb2s7PC9jb2RlPiA8dGQ+IFUrMDAxNjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS10d2l4dD48dGQ+IDxjb2RlPnR3aXh0OzwvY29kZT4gPHRkPiBVKzAyMjZDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omsPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXR3b2hlYWRsZWZ0YXJyb3c+PHRkPiA8Y29kZT50d29oZWFkbGVmdGFycm93OzwvY29kZT4gPHRkPiBVKzAyMTlFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXR3b2hlYWRyaWdodGFycm93Pjx0ZD4gPGNvZGU+dHdvaGVhZHJpZ2h0YXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxQTAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihqA8L3NwYW4+IDx0ciBpZD1lbnRpdHktVWFjdXRlPjx0ZD4gPGNvZGU+VWFjdXRlOzwvY29kZT4gPHRkPiBVKzAwMERBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w5o8L3NwYW4+IDx0ciBpZD1lbnRpdHktVWFjdXRlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+VWFjdXRlPC9jb2RlPiA8dGQ+IFUrMDAwREEgPHRkPiA8c3Bhbj7Dmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS11YWN1dGU+PHRkPiA8Y29kZT51YWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAwRkEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Dujwvc3Bhbj4gPHRyIGlkPWVudGl0eS11YWN1dGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT51YWN1dGU8L2NvZGU+IDx0ZD4gVSswMDBGQSA8dGQ+IDxzcGFuPsO6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVhcnI+PHRkPiA8Y29kZT5VYXJyOzwvY29kZT4gPHRkPiBVKzAyMTlGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oafPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVBcnI+PHRkPiA8Y29kZT51QXJyOzwvY29kZT4gPHRkPiBVKzAyMUQxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oeRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVhcnI+PHRkPiA8Y29kZT51YXJyOzwvY29kZT4gPHRkPiBVKzAyMTkxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaRPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVhcnJvY2lyPjx0ZD4gPGNvZGU+VWFycm9jaXI7PC9jb2RlPiA8dGQ+IFUrMDI5NDkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipYk8L3NwYW4+IDx0ciBpZD1lbnRpdHktVWJyY3k+PHRkPiA8Y29kZT5VYnJjeTs8L2NvZGU+IDx0ZD4gVSswMDQwRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVicmN5Pjx0ZD4gPGNvZGU+dWJyY3k7PC9jb2RlPiA8dGQ+IFUrMDA0NUUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Rnjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VYnJldmU+PHRkPiA8Y29kZT5VYnJldmU7PC9jb2RlPiA8dGQ+IFUrMDAxNkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FrDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11YnJldmU+PHRkPiA8Y29kZT51YnJldmU7PC9jb2RlPiA8dGQ+IFUrMDAxNkQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FrTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VY2lyYz48dGQ+IDxjb2RlPlVjaXJjOzwvY29kZT4gPHRkPiBVKzAwMERCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w5s8L3NwYW4+IDx0ciBpZD1lbnRpdHktVWNpcmMtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5VY2lyYzwvY29kZT4gPHRkPiBVKzAwMERCIDx0ZD4gPHNwYW4+w5s8L3NwYW4+IDx0ciBpZD1lbnRpdHktdWNpcmM+PHRkPiA8Y29kZT51Y2lyYzs8L2NvZGU+IDx0ZD4gVSswMDBGQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsO7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVjaXJjLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+dWNpcmM8L2NvZGU+IDx0ZD4gVSswMDBGQiA8dGQ+IDxzcGFuPsO7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVjeT48dGQ+IDxjb2RlPlVjeTs8L2NvZGU+IDx0ZD4gVSswMDQyMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCjPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVjeT48dGQ+IDxjb2RlPnVjeTs8L2NvZGU+IDx0ZD4gVSswMDQ0MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGDPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVkYXJyPjx0ZD4gPGNvZGU+dWRhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxQzUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4U8L3NwYW4+IDx0ciBpZD1lbnRpdHktVWRibGFjPjx0ZD4gPGNvZGU+VWRibGFjOzwvY29kZT4gPHRkPiBVKzAwMTcwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xbA8L3NwYW4+IDx0ciBpZD1lbnRpdHktdWRibGFjPjx0ZD4gPGNvZGU+dWRibGFjOzwvY29kZT4gPHRkPiBVKzAwMTcxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xbE8L3NwYW4+IDx0ciBpZD1lbnRpdHktdWRoYXI+PHRkPiA8Y29kZT51ZGhhcjs8L2NvZGU+IDx0ZD4gVSswMjk2RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS11ZmlzaHQ+PHRkPiA8Y29kZT51ZmlzaHQ7PC9jb2RlPiA8dGQ+IFUrMDI5N0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipb48L3NwYW4+IDx0ciBpZD1lbnRpdHktVWZyPjx0ZD4gPGNvZGU+VWZyOzwvY29kZT4gPHRkPiBVKzFENTE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11ZnI+PHRkPiA8Y29kZT51ZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSyPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVncmF2ZT48dGQ+IDxjb2RlPlVncmF2ZTs8L2NvZGU+IDx0ZD4gVSswMDBEOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsOZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVncmF2ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPlVncmF2ZTwvY29kZT4gPHRkPiBVKzAwMEQ5IDx0ZD4gPHNwYW4+w5k8L3NwYW4+IDx0ciBpZD1lbnRpdHktdWdyYXZlPjx0ZD4gPGNvZGU+dWdyYXZlOzwvY29kZT4gPHRkPiBVKzAwMEY5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+w7k8L3NwYW4+IDx0ciBpZD1lbnRpdHktdWdyYXZlLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+dWdyYXZlPC9jb2RlPiA8dGQ+IFUrMDAwRjkgPHRkPiA8c3Bhbj7DuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS11SGFyPjx0ZD4gPGNvZGU+dUhhcjs8L2NvZGU+IDx0ZD4gVSswMjk2MyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlozwvc3Bhbj4gPHRyIGlkPWVudGl0eS11aGFybD48dGQ+IDxjb2RlPnVoYXJsOzwvY29kZT4gPHRkPiBVKzAyMUJGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oa/PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVoYXJyPjx0ZD4gPGNvZGU+dWhhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxQkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihr48L3NwYW4+IDx0ciBpZD1lbnRpdHktdWhibGs+PHRkPiA8Y29kZT51aGJsazs8L2NvZGU+IDx0ZD4gVSswMjU4MCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11bGNvcm4+PHRkPiA8Y29kZT51bGNvcm47PC9jb2RlPiA8dGQ+IFUrMDIzMUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijJw8L3NwYW4+IDx0ciBpZD1lbnRpdHktdWxjb3JuZXI+PHRkPiA8Y29kZT51bGNvcm5lcjs8L2NvZGU+IDx0ZD4gVSswMjMxQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMnDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11bGNyb3A+PHRkPiA8Y29kZT51bGNyb3A7PC9jb2RlPiA8dGQ+IFUrMDIzMEYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijI88L3NwYW4+IDx0ciBpZD1lbnRpdHktdWx0cmk+PHRkPiA8Y29kZT51bHRyaTs8L2NvZGU+IDx0ZD4gVSswMjVGOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKXuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VbWFjcj48dGQ+IDxjb2RlPlVtYWNyOzwvY29kZT4gPHRkPiBVKzAwMTZBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xao8L3NwYW4+IDx0ciBpZD1lbnRpdHktdW1hY3I+PHRkPiA8Y29kZT51bWFjcjs8L2NvZGU+IDx0ZD4gVSswMDE2QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWrPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVtbD48dGQ+IDxjb2RlPnVtbDs8L2NvZGU+IDx0ZD4gVSswMDBBOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsKoPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVtbC1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPnVtbDwvY29kZT4gPHRkPiBVKzAwMEE4IDx0ZD4gPHNwYW4+wqg8L3NwYW4+IDx0ciBpZD1lbnRpdHktVW5kZXJCYXI+PHRkPiA8Y29kZT5VbmRlckJhcjs8L2NvZGU+IDx0ZD4gVSswMDA1RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPl88L3NwYW4+IDx0ciBpZD1lbnRpdHktVW5kZXJCcmFjZT48dGQ+IDxjb2RlPlVuZGVyQnJhY2U7PC9jb2RlPiA8dGQ+IFUrMDIzREYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ij588L3NwYW4+IDx0ciBpZD1lbnRpdHktVW5kZXJCcmFja2V0Pjx0ZD4gPGNvZGU+VW5kZXJCcmFja2V0OzwvY29kZT4gPHRkPiBVKzAyM0I1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4o61PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVuZGVyUGFyZW50aGVzaXM+PHRkPiA8Y29kZT5VbmRlclBhcmVudGhlc2lzOzwvY29kZT4gPHRkPiBVKzAyM0REIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4o+dPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVuaW9uPjx0ZD4gPGNvZGU+VW5pb247PC9jb2RlPiA8dGQ+IFUrMDIyQzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4M8L3NwYW4+IDx0ciBpZD1lbnRpdHktVW5pb25QbHVzPjx0ZD4gPGNvZGU+VW5pb25QbHVzOzwvY29kZT4gPHRkPiBVKzAyMjhFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVvZ29uPjx0ZD4gPGNvZGU+VW9nb247PC9jb2RlPiA8dGQ+IFUrMDAxNzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fsjwvc3Bhbj4gPHRyIGlkPWVudGl0eS11b2dvbj48dGQ+IDxjb2RlPnVvZ29uOzwvY29kZT4gPHRkPiBVKzAwMTczIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xbM8L3NwYW4+IDx0ciBpZD1lbnRpdHktVW9wZj48dGQ+IDxjb2RlPlVvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWMPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVvcGY+PHRkPiA8Y29kZT51b3BmOzwvY29kZT4gPHRkPiBVKzFENTY2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcEFycm93Pjx0ZD4gPGNvZGU+VXBBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcGFycm93Pjx0ZD4gPGNvZGU+VXBhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFEMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cGFycm93Pjx0ZD4gPGNvZGU+dXBhcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5MSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcEFycm93QmFyPjx0ZD4gPGNvZGU+VXBBcnJvd0Jhcjs8L2NvZGU+IDx0ZD4gVSswMjkxMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKkkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcEFycm93RG93bkFycm93Pjx0ZD4gPGNvZGU+VXBBcnJvd0Rvd25BcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFDNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHhTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcERvd25BcnJvdz48dGQ+IDxjb2RlPlVwRG93bkFycm93OzwvY29kZT4gPHRkPiBVKzAyMTk1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oaVPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVwZG93bmFycm93Pjx0ZD4gPGNvZGU+VXBkb3duYXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxRDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5U8L3NwYW4+IDx0ciBpZD1lbnRpdHktdXBkb3duYXJyb3c+PHRkPiA8Y29kZT51cGRvd25hcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGlTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcEVxdWlsaWJyaXVtPjx0ZD4gPGNvZGU+VXBFcXVpbGlicml1bTs8L2NvZGU+IDx0ZD4gVSswMjk2RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKlrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cGhhcnBvb25sZWZ0Pjx0ZD4gPGNvZGU+dXBoYXJwb29ubGVmdDs8L2NvZGU+IDx0ZD4gVSswMjFCRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cGhhcnBvb25yaWdodD48dGQ+IDxjb2RlPnVwaGFycG9vbnJpZ2h0OzwvY29kZT4gPHRkPiBVKzAyMUJFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oa+PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVwbHVzPjx0ZD4gPGNvZGU+dXBsdXM7PC9jb2RlPiA8dGQ+IFUrMDIyOEUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iio48L3NwYW4+IDx0ciBpZD1lbnRpdHktVXBwZXJMZWZ0QXJyb3c+PHRkPiA8Y29kZT5VcHBlckxlZnRBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjE5NiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGljwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcHBlclJpZ2h0QXJyb3c+PHRkPiA8Y29kZT5VcHBlclJpZ2h0QXJyb3c7PC9jb2RlPiA8dGQ+IFUrMDIxOTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpc8L3NwYW4+IDx0ciBpZD1lbnRpdHktVXBzaT48dGQ+IDxjb2RlPlVwc2k7PC9jb2RlPiA8dGQ+IFUrMDAzRDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Pkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cHNpPjx0ZD4gPGNvZGU+dXBzaTs8L2NvZGU+IDx0ZD4gVSswMDNDNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+FPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVwc2loPjx0ZD4gPGNvZGU+dXBzaWg7PC9jb2RlPiA8dGQ+IFUrMDAzRDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Pkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcHNpbG9uPjx0ZD4gPGNvZGU+VXBzaWxvbjs8L2NvZGU+IDx0ZD4gVSswMDNBNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6lPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVwc2lsb24+PHRkPiA8Y29kZT51cHNpbG9uOzwvY29kZT4gPHRkPiBVKzAwM0M1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z4U8L3NwYW4+IDx0ciBpZD1lbnRpdHktVXBUZWU+PHRkPiA8Y29kZT5VcFRlZTs8L2NvZGU+IDx0ZD4gVSswMjJBNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VcFRlZUFycm93Pjx0ZD4gPGNvZGU+VXBUZWVBcnJvdzs8L2NvZGU+IDx0ZD4gVSswMjFBNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKGpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cHVwYXJyb3dzPjx0ZD4gPGNvZGU+dXB1cGFycm93czs8L2NvZGU+IDx0ZD4gVSswMjFDOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHiDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cmNvcm4+PHRkPiA8Y29kZT51cmNvcm47PC9jb2RlPiA8dGQ+IFUrMDIzMUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijJ08L3NwYW4+IDx0ciBpZD1lbnRpdHktdXJjb3JuZXI+PHRkPiA8Y29kZT51cmNvcm5lcjs8L2NvZGU+IDx0ZD4gVSswMjMxRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKMnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cmNyb3A+PHRkPiA8Y29kZT51cmNyb3A7PC9jb2RlPiA8dGQ+IFUrMDIzMEUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ijI48L3NwYW4+IDx0ciBpZD1lbnRpdHktVXJpbmc+PHRkPiA8Y29kZT5VcmluZzs8L2NvZGU+IDx0ZD4gVSswMDE2RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsWuPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXVyaW5nPjx0ZD4gPGNvZGU+dXJpbmc7PC9jb2RlPiA8dGQ+IFUrMDAxNkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Frzwvc3Bhbj4gPHRyIGlkPWVudGl0eS11cnRyaT48dGQ+IDxjb2RlPnVydHJpOzwvY29kZT4gPHRkPiBVKzAyNUY5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pe5PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVVzY3I+PHRkPiA8Y29kZT5Vc2NyOzwvY29kZT4gPHRkPiBVKzFENEIwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2SsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11c2NyPjx0ZD4gPGNvZGU+dXNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRDQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdk4o8L3NwYW4+IDx0ciBpZD1lbnRpdHktdXRkb3Q+PHRkPiA8Y29kZT51dGRvdDs8L2NvZGU+IDx0ZD4gVSswMjJGMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLsDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VdGlsZGU+PHRkPiA8Y29kZT5VdGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDAxNjggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11dGlsZGU+PHRkPiA8Y29kZT51dGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDAxNjkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS11dHJpPjx0ZD4gPGNvZGU+dXRyaTs8L2NvZGU+IDx0ZD4gVSswMjVCNSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKWtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS11dHJpZj48dGQ+IDxjb2RlPnV0cmlmOzwvY29kZT4gPHRkPiBVKzAyNUI0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pa0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXV1YXJyPjx0ZD4gPGNvZGU+dXVhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxQzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih4g8L3NwYW4+IDx0ciBpZD1lbnRpdHktVXVtbD48dGQ+IDxjb2RlPlV1bWw7PC9jb2RlPiA8dGQ+IFUrMDAwREMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DnDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1VdW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+VXVtbDwvY29kZT4gPHRkPiBVKzAwMERDIDx0ZD4gPHNwYW4+w5w8L3NwYW4+IDx0ciBpZD1lbnRpdHktdXVtbD48dGQ+IDxjb2RlPnV1bWw7PC9jb2RlPiA8dGQ+IFUrMDAwRkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DvDwvc3Bhbj4gPHRyIGlkPWVudGl0eS11dW1sLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+dXVtbDwvY29kZT4gPHRkPiBVKzAwMEZDIDx0ZD4gPHNwYW4+w7w8L3NwYW4+IDx0ciBpZD1lbnRpdHktdXdhbmdsZT48dGQ+IDxjb2RlPnV3YW5nbGU7PC9jb2RlPiA8dGQ+IFUrMDI5QTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ipqc8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFuZ3J0Pjx0ZD4gPGNvZGU+dmFuZ3J0OzwvY29kZT4gPHRkPiBVKzAyOTlDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qacPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZhcmVwc2lsb24+PHRkPiA8Y29kZT52YXJlcHNpbG9uOzwvY29kZT4gPHRkPiBVKzAwM0Y1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z7U8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFya2FwcGE+PHRkPiA8Y29kZT52YXJrYXBwYTs8L2NvZGU+IDx0ZD4gVSswMDNGMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+wPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZhcm5vdGhpbmc+PHRkPiA8Y29kZT52YXJub3RoaW5nOzwvY29kZT4gPHRkPiBVKzAyMjA1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oiFPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZhcnBoaT48dGQ+IDxjb2RlPnZhcnBoaTs8L2NvZGU+IDx0ZD4gVSswMDNENSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+VPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZhcnBpPjx0ZD4gPGNvZGU+dmFycGk7PC9jb2RlPiA8dGQ+IFUrMDAzRDYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Pljwvc3Bhbj4gPHRyIGlkPWVudGl0eS12YXJwcm9wdG8+PHRkPiA8Y29kZT52YXJwcm9wdG87PC9jb2RlPiA8dGQ+IFUrMDIyMUQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiJ08L3NwYW4+IDx0ciBpZD1lbnRpdHktdkFycj48dGQ+IDxjb2RlPnZBcnI7PC9jb2RlPiA8dGQ+IFUrMDIxRDUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ih5U8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFycj48dGQ+IDxjb2RlPnZhcnI7PC9jb2RlPiA8dGQ+IFUrMDIxOTUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ihpU8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFycmhvPjx0ZD4gPGNvZGU+dmFycmhvOzwvY29kZT4gPHRkPiBVKzAwM0YxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+z7E8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFyc2lnbWE+PHRkPiA8Y29kZT52YXJzaWdtYTs8L2NvZGU+IDx0ZD4gVSswMDNDMiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs+CPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZhcnN1YnNldG5lcT48dGQ+IDxjb2RlPnZhcnN1YnNldG5lcTs8L2NvZGU+IDx0ZD4gVSswMjI4QSBVKzBGRTAwIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiorvuIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFyc3Vic2V0bmVxcT48dGQ+IDxjb2RlPnZhcnN1YnNldG5lcXE7PC9jb2RlPiA8dGQ+IFUrMDJBQ0IgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4quL77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZhcnN1cHNldG5lcT48dGQ+IDxjb2RlPnZhcnN1cHNldG5lcTs8L2NvZGU+IDx0ZD4gVSswMjI4QiBVKzBGRTAwIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiovvuIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFyc3Vwc2V0bmVxcT48dGQ+IDxjb2RlPnZhcnN1cHNldG5lcXE7PC9jb2RlPiA8dGQ+IFUrMDJBQ0MgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4quM77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZhcnRoZXRhPjx0ZD4gPGNvZGU+dmFydGhldGE7PC9jb2RlPiA8dGQ+IFUrMDAzRDEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7PkTwvc3Bhbj4gPHRyIGlkPWVudGl0eS12YXJ0cmlhbmdsZWxlZnQ+PHRkPiA8Y29kZT52YXJ0cmlhbmdsZWxlZnQ7PC9jb2RlPiA8dGQ+IFUrMDIyQjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirI8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmFydHJpYW5nbGVyaWdodD48dGQ+IDxjb2RlPnZhcnRyaWFuZ2xlcmlnaHQ7PC9jb2RlPiA8dGQ+IFUrMDIyQjMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirM8L3NwYW4+IDx0ciBpZD1lbnRpdHktVmJhcj48dGQ+IDxjb2RlPlZiYXI7PC9jb2RlPiA8dGQ+IFUrMDJBRUIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq6s8L3NwYW4+IDx0ciBpZD1lbnRpdHktdkJhcj48dGQ+IDxjb2RlPnZCYXI7PC9jb2RlPiA8dGQ+IFUrMDJBRTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iq6g8L3NwYW4+IDx0ciBpZD1lbnRpdHktdkJhcnY+PHRkPiA8Y29kZT52QmFydjs8L2NvZGU+IDx0ZD4gVSswMkFFOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrqTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1WY3k+PHRkPiA8Y29kZT5WY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MTIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qkjwvc3Bhbj4gPHRyIGlkPWVudGl0eS12Y3k+PHRkPiA8Y29kZT52Y3k7PC9jb2RlPiA8dGQ+IFUrMDA0MzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qsjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1WRGFzaD48dGQ+IDxjb2RlPlZEYXNoOzwvY29kZT4gPHRkPiBVKzAyMkFCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqrPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVZkYXNoPjx0ZD4gPGNvZGU+VmRhc2g7PC9jb2RlPiA8dGQ+IFUrMDIyQTkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiqk8L3NwYW4+IDx0ciBpZD1lbnRpdHktdkRhc2g+PHRkPiA8Y29kZT52RGFzaDs8L2NvZGU+IDx0ZD4gVSswMjJBOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS12ZGFzaD48dGQ+IDxjb2RlPnZkYXNoOzwvY29kZT4gPHRkPiBVKzAyMkEyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oqiPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVZkYXNobD48dGQ+IDxjb2RlPlZkYXNobDs8L2NvZGU+IDx0ZD4gVSswMkFFNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKrpjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1WZWU+PHRkPiA8Y29kZT5WZWU7PC9jb2RlPiA8dGQ+IFUrMDIyQzEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4E8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmVlPjx0ZD4gPGNvZGU+dmVlOzwvY29kZT4gPHRkPiBVKzAyMjI4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oioPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZlZWJhcj48dGQ+IDxjb2RlPnZlZWJhcjs8L2NvZGU+IDx0ZD4gVSswMjJCQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKuzwvc3Bhbj4gPHRyIGlkPWVudGl0eS12ZWVlcT48dGQ+IDxjb2RlPnZlZWVxOzwvY29kZT4gPHRkPiBVKzAyMjVBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZlbGxpcD48dGQ+IDxjb2RlPnZlbGxpcDs8L2NvZGU+IDx0ZD4gVSswMjJFRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLrjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1WZXJiYXI+PHRkPiA8Y29kZT5WZXJiYXI7PC9jb2RlPiA8dGQ+IFUrMDIwMTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igJY8L3NwYW4+IDx0ciBpZD1lbnRpdHktdmVyYmFyPjx0ZD4gPGNvZGU+dmVyYmFyOzwvY29kZT4gPHRkPiBVKzAwMDdDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+fDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1WZXJ0Pjx0ZD4gPGNvZGU+VmVydDs8L2NvZGU+IDx0ZD4gVSswMjAxNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKAljwvc3Bhbj4gPHRyIGlkPWVudGl0eS12ZXJ0Pjx0ZD4gPGNvZGU+dmVydDs8L2NvZGU+IDx0ZD4gVSswMDA3QyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPnw8L3NwYW4+IDx0ciBpZD1lbnRpdHktVmVydGljYWxCYXI+PHRkPiA8Y29kZT5WZXJ0aWNhbEJhcjs8L2NvZGU+IDx0ZD4gVSswMjIyMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKIozwvc3Bhbj4gPHRyIGlkPWVudGl0eS1WZXJ0aWNhbExpbmU+PHRkPiA8Y29kZT5WZXJ0aWNhbExpbmU7PC9jb2RlPiA8dGQ+IFUrMDAwN0MgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD58PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVZlcnRpY2FsU2VwYXJhdG9yPjx0ZD4gPGNvZGU+VmVydGljYWxTZXBhcmF0b3I7PC9jb2RlPiA8dGQ+IFUrMDI3NTggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7inZg8L3NwYW4+IDx0ciBpZD1lbnRpdHktVmVydGljYWxUaWxkZT48dGQ+IDxjb2RlPlZlcnRpY2FsVGlsZGU7PC9jb2RlPiA8dGQ+IFUrMDIyNDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYA8L3NwYW4+IDx0ciBpZD1lbnRpdHktVmVyeVRoaW5TcGFjZT48dGQ+IDxjb2RlPlZlcnlUaGluU3BhY2U7PC9jb2RlPiA8dGQ+IFUrMDIwMEEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igIo8L3NwYW4+IDx0ciBpZD1lbnRpdHktVmZyPjx0ZD4gPGNvZGU+VmZyOzwvY29kZT4gPHRkPiBVKzFENTE5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UmTwvc3Bhbj4gPHRyIGlkPWVudGl0eS12ZnI+PHRkPiA8Y29kZT52ZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MzMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSzPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZsdHJpPjx0ZD4gPGNvZGU+dmx0cmk7PC9jb2RlPiA8dGQ+IFUrMDIyQjIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirI8L3NwYW4+IDx0ciBpZD1lbnRpdHktdm5zdWI+PHRkPiA8Y29kZT52bnN1Yjs8L2NvZGU+IDx0ZD4gVSswMjI4MiBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iioLig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktdm5zdXA+PHRkPiA8Y29kZT52bnN1cDs8L2NvZGU+IDx0ZD4gVSswMjI4MyBVKzAyMEQyIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iioPig5I8L3NwYW4+IDx0ciBpZD1lbnRpdHktVm9wZj48dGQ+IDxjb2RlPlZvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NEQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWNPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZvcGY+PHRkPiA8Y29kZT52b3BmOzwvY29kZT4gPHRkPiBVKzFENTY3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Vpzwvc3Bhbj4gPHRyIGlkPWVudGl0eS12cHJvcD48dGQ+IDxjb2RlPnZwcm9wOzwvY29kZT4gPHRkPiBVKzAyMjFEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oidPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZydHJpPjx0ZD4gPGNvZGU+dnJ0cmk7PC9jb2RlPiA8dGQ+IFUrMDIyQjMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iirM8L3NwYW4+IDx0ciBpZD1lbnRpdHktVnNjcj48dGQ+IDxjb2RlPlZzY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0QjEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZKxPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZzY3I+PHRkPiA8Y29kZT52c2NyOzwvY29kZT4gPHRkPiBVKzFENENCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Tizwvc3Bhbj4gPHRyIGlkPWVudGl0eS12c3VibkU+PHRkPiA8Y29kZT52c3VibkU7PC9jb2RlPiA8dGQ+IFUrMDJBQ0IgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4quL77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXZzdWJuZT48dGQ+IDxjb2RlPnZzdWJuZTs8L2NvZGU+IDx0ZD4gVSswMjI4QSBVKzBGRTAwIDx0ZD4gPHNwYW4gY2xhc3M9ImdseXBoIGNvbXBvdW5kIj7iiorvuIA8L3NwYW4+IDx0ciBpZD1lbnRpdHktdnN1cG5FPjx0ZD4gPGNvZGU+dnN1cG5FOzwvY29kZT4gPHRkPiBVKzAyQUNDIFUrMEZFMDAgPHRkPiA8c3BhbiBjbGFzcz0iZ2x5cGggY29tcG91bmQiPuKrjO+4gDwvc3Bhbj4gPHRyIGlkPWVudGl0eS12c3VwbmU+PHRkPiA8Y29kZT52c3VwbmU7PC9jb2RlPiA8dGQ+IFUrMDIyOEIgVSswRkUwMCA8dGQ+IDxzcGFuIGNsYXNzPSJnbHlwaCBjb21wb3VuZCI+4oqL77iAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVZ2ZGFzaD48dGQ+IDxjb2RlPlZ2ZGFzaDs8L2NvZGU+IDx0ZD4gVSswMjJBQSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKKqjwvc3Bhbj4gPHRyIGlkPWVudGl0eS12emlnemFnPjx0ZD4gPGNvZGU+dnppZ3phZzs8L2NvZGU+IDx0ZD4gVSswMjk5QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKmmjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1XY2lyYz48dGQ+IDxjb2RlPldjaXJjOzwvY29kZT4gPHRkPiBVKzAwMTc0IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xbQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktd2NpcmM+PHRkPiA8Y29kZT53Y2lyYzs8L2NvZGU+IDx0ZD4gVSswMDE3NSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsW1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXdlZGJhcj48dGQ+IDxjb2RlPndlZGJhcjs8L2NvZGU+IDx0ZD4gVSswMkE1RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKpnzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1XZWRnZT48dGQ+IDxjb2RlPldlZGdlOzwvY29kZT4gPHRkPiBVKzAyMkMwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXdlZGdlPjx0ZD4gPGNvZGU+d2VkZ2U7PC9jb2RlPiA8dGQ+IFUrMDIyMjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiKc8L3NwYW4+IDx0ciBpZD1lbnRpdHktd2VkZ2VxPjx0ZD4gPGNvZGU+d2VkZ2VxOzwvY29kZT4gPHRkPiBVKzAyMjU5IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omZPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXdlaWVycD48dGQ+IDxjb2RlPndlaWVycDs8L2NvZGU+IDx0ZD4gVSswMjExOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEmDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1XZnI+PHRkPiA8Y29kZT5XZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MUEgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZSaPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXdmcj48dGQ+IDxjb2RlPndmcjs8L2NvZGU+IDx0ZD4gVSsxRDUzNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlLQ8L3NwYW4+IDx0ciBpZD1lbnRpdHktV29wZj48dGQ+IDxjb2RlPldvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NEUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWOPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXdvcGY+PHRkPiA8Y29kZT53b3BmOzwvY29kZT4gPHRkPiBVKzFENTY4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2VqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS13cD48dGQ+IDxjb2RlPndwOzwvY29kZT4gPHRkPiBVKzAyMTE4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSYPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXdyPjx0ZD4gPGNvZGU+d3I7PC9jb2RlPiA8dGQ+IFUrMDIyNDAgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iiYA8L3NwYW4+IDx0ciBpZD1lbnRpdHktd3JlYXRoPjx0ZD4gPGNvZGU+d3JlYXRoOzwvY29kZT4gPHRkPiBVKzAyMjQwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4omAPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVdzY3I+PHRkPiA8Y29kZT5Xc2NyOzwvY29kZT4gPHRkPiBVKzFENEIyIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Ssjwvc3Bhbj4gPHRyIGlkPWVudGl0eS13c2NyPjx0ZD4gPGNvZGU+d3Njcjs8L2NvZGU+IDx0ZD4gVSsxRDRDQyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdk4w8L3NwYW4+IDx0ciBpZD1lbnRpdHkteGNhcD48dGQ+IDxjb2RlPnhjYXA7PC9jb2RlPiA8dGQ+IFUrMDIyQzIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii4I8L3NwYW4+IDx0ciBpZD1lbnRpdHkteGNpcmM+PHRkPiA8Y29kZT54Y2lyYzs8L2NvZGU+IDx0ZD4gVSswMjVFRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKXrzwvc3Bhbj4gPHRyIGlkPWVudGl0eS14Y3VwPjx0ZD4gPGNvZGU+eGN1cDs8L2NvZGU+IDx0ZD4gVSswMjJDMyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLgzwvc3Bhbj4gPHRyIGlkPWVudGl0eS14ZHRyaT48dGQ+IDxjb2RlPnhkdHJpOzwvY29kZT4gPHRkPiBVKzAyNUJEIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pa9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVhmcj48dGQ+IDxjb2RlPlhmcjs8L2NvZGU+IDx0ZD4gVSsxRDUxQiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlJs8L3NwYW4+IDx0ciBpZD1lbnRpdHkteGZyPjx0ZD4gPGNvZGU+eGZyOzwvY29kZT4gPHRkPiBVKzFENTM1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2UtTwvc3Bhbj4gPHRyIGlkPWVudGl0eS14aEFycj48dGQ+IDxjb2RlPnhoQXJyOzwvY29kZT4gPHRkPiBVKzAyN0ZBIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+6PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXhoYXJyPjx0ZD4gPGNvZGU+eGhhcnI7PC9jb2RlPiA8dGQ+IFUrMDI3RjcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in7c8L3NwYW4+IDx0ciBpZD1lbnRpdHktWGk+PHRkPiA8Y29kZT5YaTs8L2NvZGU+IDx0ZD4gVSswMDM5RSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs6ePC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXhpPjx0ZD4gPGNvZGU+eGk7PC9jb2RlPiA8dGQ+IFUrMDAzQkUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ovjwvc3Bhbj4gPHRyIGlkPWVudGl0eS14bEFycj48dGQ+IDxjb2RlPnhsQXJyOzwvY29kZT4gPHRkPiBVKzAyN0Y4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+4PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXhsYXJyPjx0ZD4gPGNvZGU+eGxhcnI7PC9jb2RlPiA8dGQ+IFUrMDI3RjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in7U8L3NwYW4+IDx0ciBpZD1lbnRpdHkteG1hcD48dGQ+IDxjb2RlPnhtYXA7PC9jb2RlPiA8dGQ+IFUrMDI3RkMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7in7w8L3NwYW4+IDx0ciBpZD1lbnRpdHkteG5pcz48dGQ+IDxjb2RlPnhuaXM7PC9jb2RlPiA8dGQ+IFUrMDIyRkIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7ii7s8L3NwYW4+IDx0ciBpZD1lbnRpdHkteG9kb3Q+PHRkPiA8Y29kZT54b2RvdDs8L2NvZGU+IDx0ZD4gVSswMkEwMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKogDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1Yb3BmPjx0ZD4gPGNvZGU+WG9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU0RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlY88L3NwYW4+IDx0ciBpZD1lbnRpdHkteG9wZj48dGQ+IDxjb2RlPnhvcGY7PC9jb2RlPiA8dGQ+IFUrMUQ1NjkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZWpPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXhvcGx1cz48dGQ+IDxjb2RlPnhvcGx1czs8L2NvZGU+IDx0ZD4gVSswMkEwMSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKogTwvc3Bhbj4gPHRyIGlkPWVudGl0eS14b3RpbWU+PHRkPiA8Y29kZT54b3RpbWU7PC9jb2RlPiA8dGQ+IFUrMDJBMDIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7iqII8L3NwYW4+IDx0ciBpZD1lbnRpdHkteHJBcnI+PHRkPiA8Y29kZT54ckFycjs8L2NvZGU+IDx0ZD4gVSswMjdGOSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKfuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS14cmFycj48dGQ+IDxjb2RlPnhyYXJyOzwvY29kZT4gPHRkPiBVKzAyN0Y2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4p+2PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVhzY3I+PHRkPiA8Y29kZT5Yc2NyOzwvY29kZT4gPHRkPiBVKzFENEIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Sszwvc3Bhbj4gPHRyIGlkPWVudGl0eS14c2NyPjx0ZD4gPGNvZGU+eHNjcjs8L2NvZGU+IDx0ZD4gVSsxRDRDRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdk408L3NwYW4+IDx0ciBpZD1lbnRpdHkteHNxY3VwPjx0ZD4gPGNvZGU+eHNxY3VwOzwvY29kZT4gPHRkPiBVKzAyQTA2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4qiGPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXh1cGx1cz48dGQ+IDxjb2RlPnh1cGx1czs8L2NvZGU+IDx0ZD4gVSswMkEwNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKohDwvc3Bhbj4gPHRyIGlkPWVudGl0eS14dXRyaT48dGQ+IDxjb2RlPnh1dHJpOzwvY29kZT4gPHRkPiBVKzAyNUIzIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4pazPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXh2ZWU+PHRkPiA8Y29kZT54dmVlOzwvY29kZT4gPHRkPiBVKzAyMkMxIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4ouBPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXh3ZWRnZT48dGQ+IDxjb2RlPnh3ZWRnZTs8L2NvZGU+IDx0ZD4gVSswMjJDMCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKLgDwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ZYWN1dGU+PHRkPiA8Y29kZT5ZYWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAwREQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7DnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ZYWN1dGUtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT5ZYWN1dGU8L2NvZGU+IDx0ZD4gVSswMDBERCA8dGQ+IDxzcGFuPsOdPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXlhY3V0ZT48dGQ+IDxjb2RlPnlhY3V0ZTs8L2NvZGU+IDx0ZD4gVSswMDBGRCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsO9PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXlhY3V0ZS1sZWdhY3kgY2xhc3M9aW1wbD48dGQ+IDxjb2RlPnlhY3V0ZTwvY29kZT4gPHRkPiBVKzAwMEZEIDx0ZD4gPHNwYW4+w708L3NwYW4+IDx0ciBpZD1lbnRpdHktWUFjeT48dGQ+IDxjb2RlPllBY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MkYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qrzwvc3Bhbj4gPHRyIGlkPWVudGl0eS15YWN5Pjx0ZD4gPGNvZGU+eWFjeTs8L2NvZGU+IDx0ZD4gVSswMDQ0RiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGPPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVljaXJjPjx0ZD4gPGNvZGU+WWNpcmM7PC9jb2RlPiA8dGQ+IFUrMDAxNzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Ftjwvc3Bhbj4gPHRyIGlkPWVudGl0eS15Y2lyYz48dGQ+IDxjb2RlPnljaXJjOzwvY29kZT4gPHRkPiBVKzAwMTc3IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xbc8L3NwYW4+IDx0ciBpZD1lbnRpdHktWWN5Pjx0ZD4gPGNvZGU+WWN5OzwvY29kZT4gPHRkPiBVKzAwNDJCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Ks8L3NwYW4+IDx0ciBpZD1lbnRpdHkteWN5Pjx0ZD4gPGNvZGU+eWN5OzwvY29kZT4gPHRkPiBVKzAwNDRCIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Ys8L3NwYW4+IDx0ciBpZD1lbnRpdHkteWVuPjx0ZD4gPGNvZGU+eWVuOzwvY29kZT4gPHRkPiBVKzAwMEE1IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+wqU8L3NwYW4+IDx0ciBpZD1lbnRpdHkteWVuLWxlZ2FjeSBjbGFzcz1pbXBsPjx0ZD4gPGNvZGU+eWVuPC9jb2RlPiA8dGQ+IFUrMDAwQTUgPHRkPiA8c3Bhbj7CpTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ZZnI+PHRkPiA8Y29kZT5ZZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MUMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZScPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXlmcj48dGQ+IDxjb2RlPnlmcjs8L2NvZGU+IDx0ZD4gVSsxRDUzNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlLY8L3NwYW4+IDx0ciBpZD1lbnRpdHktWUljeT48dGQ+IDxjb2RlPllJY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MDcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qhzwvc3Bhbj4gPHRyIGlkPWVudGl0eS15aWN5Pjx0ZD4gPGNvZGU+eWljeTs8L2NvZGU+IDx0ZD4gVSswMDQ1NyA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtGXPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVlvcGY+PHRkPiA8Y29kZT5Zb3BmOzwvY29kZT4gPHRkPiBVKzFENTUwIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2VkDwvc3Bhbj4gPHRyIGlkPWVudGl0eS15b3BmPjx0ZD4gPGNvZGU+eW9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU2QSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlao8L3NwYW4+IDx0ciBpZD1lbnRpdHktWXNjcj48dGQ+IDxjb2RlPllzY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0QjQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZK0PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXlzY3I+PHRkPiA8Y29kZT55c2NyOzwvY29kZT4gPHRkPiBVKzFENENFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Tjjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ZVWN5Pjx0ZD4gPGNvZGU+WVVjeTs8L2NvZGU+IDx0ZD4gVSswMDQyRSA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPtCuPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXl1Y3k+PHRkPiA8Y29kZT55dWN5OzwvY29kZT4gPHRkPiBVKzAwNDRFIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0Y48L3NwYW4+IDx0ciBpZD1lbnRpdHktWXVtbD48dGQ+IDxjb2RlPll1bWw7PC9jb2RlPiA8dGQ+IFUrMDAxNzggPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FuDwvc3Bhbj4gPHRyIGlkPWVudGl0eS15dW1sPjx0ZD4gPGNvZGU+eXVtbDs8L2NvZGU+IDx0ZD4gVSswMDBGRiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsO/PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXl1bWwtbGVnYWN5IGNsYXNzPWltcGw+PHRkPiA8Y29kZT55dW1sPC9jb2RlPiA8dGQ+IFUrMDAwRkYgPHRkPiA8c3Bhbj7Dvzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1aYWN1dGU+PHRkPiA8Y29kZT5aYWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAxNzkgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FuTwvc3Bhbj4gPHRyIGlkPWVudGl0eS16YWN1dGU+PHRkPiA8Y29kZT56YWN1dGU7PC9jb2RlPiA8dGQ+IFUrMDAxN0EgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fujwvc3Bhbj4gPHRyIGlkPWVudGl0eS1aY2Fyb24+PHRkPiA8Y29kZT5aY2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxN0QgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7FvTwvc3Bhbj4gPHRyIGlkPWVudGl0eS16Y2Fyb24+PHRkPiA8Y29kZT56Y2Fyb247PC9jb2RlPiA8dGQ+IFUrMDAxN0UgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Fvjwvc3Bhbj4gPHRyIGlkPWVudGl0eS1aY3k+PHRkPiA8Y29kZT5aY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MTcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qlzwvc3Bhbj4gPHRyIGlkPWVudGl0eS16Y3k+PHRkPiA8Y29kZT56Y3k7PC9jb2RlPiA8dGQ+IFUrMDA0MzcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qtzwvc3Bhbj4gPHRyIGlkPWVudGl0eS1aZG90Pjx0ZD4gPGNvZGU+WmRvdDs8L2NvZGU+IDx0ZD4gVSswMDE3QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPsW7PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXpkb3Q+PHRkPiA8Y29kZT56ZG90OzwvY29kZT4gPHRkPiBVKzAwMTdDIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+xbw8L3NwYW4+IDx0ciBpZD1lbnRpdHktemVldHJmPjx0ZD4gPGNvZGU+emVldHJmOzwvY29kZT4gPHRkPiBVKzAyMTI4IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+4oSoPC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVplcm9XaWR0aFNwYWNlPjx0ZD4gPGNvZGU+WmVyb1dpZHRoU3BhY2U7PC9jb2RlPiA8dGQ+IFUrMDIwMEIgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igIs8L3NwYW4+IDx0ciBpZD1lbnRpdHktWmV0YT48dGQ+IDxjb2RlPlpldGE7PC9jb2RlPiA8dGQ+IFUrMDAzOTYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Oljwvc3Bhbj4gPHRyIGlkPWVudGl0eS16ZXRhPjx0ZD4gPGNvZGU+emV0YTs8L2NvZGU+IDx0ZD4gVSswMDNCNiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPs62PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVpmcj48dGQ+IDxjb2RlPlpmcjs8L2NvZGU+IDx0ZD4gVSswMjEyOCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEqDwvc3Bhbj4gPHRyIGlkPWVudGl0eS16ZnI+PHRkPiA8Y29kZT56ZnI7PC9jb2RlPiA8dGQ+IFUrMUQ1MzcgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZS3PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LVpIY3k+PHRkPiA8Y29kZT5aSGN5OzwvY29kZT4gPHRkPiBVKzAwNDE2IDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+0JY8L3NwYW4+IDx0ciBpZD1lbnRpdHktemhjeT48dGQ+IDxjb2RlPnpoY3k7PC9jb2RlPiA8dGQ+IFUrMDA0MzYgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7Qtjwvc3Bhbj4gPHRyIGlkPWVudGl0eS16aWdyYXJyPjx0ZD4gPGNvZGU+emlncmFycjs8L2NvZGU+IDx0ZD4gVSswMjFERCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKHnTwvc3Bhbj4gPHRyIGlkPWVudGl0eS1ab3BmPjx0ZD4gPGNvZGU+Wm9wZjs8L2NvZGU+IDx0ZD4gVSswMjEyNCA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPuKEpDwvc3Bhbj4gPHRyIGlkPWVudGl0eS16b3BmPjx0ZD4gPGNvZGU+em9wZjs8L2NvZGU+IDx0ZD4gVSsxRDU2QiA8dGQ+IDxzcGFuIGNsYXNzPWdseXBoPvCdlas8L3NwYW4+IDx0ciBpZD1lbnRpdHktWnNjcj48dGQ+IDxjb2RlPlpzY3I7PC9jb2RlPiA8dGQ+IFUrMUQ0QjUgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7wnZK1PC9zcGFuPiA8dHIgaWQ9ZW50aXR5LXpzY3I+PHRkPiA8Y29kZT56c2NyOzwvY29kZT4gPHRkPiBVKzFENENGIDx0ZD4gPHNwYW4gY2xhc3M9Z2x5cGg+8J2Tjzwvc3Bhbj4gPHRyIGlkPWVudGl0eS16d2o+PHRkPiA8Y29kZT56d2o7PC9jb2RlPiA8dGQ+IFUrMDIwMEQgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igI08L3NwYW4+IDx0ciBpZD1lbnRpdHktenduaj48dGQ+IDxjb2RlPnp3bmo7PC9jb2RlPiA8dGQ+IFUrMDIwMEMgPHRkPiA8c3BhbiBjbGFzcz1nbHlwaD7igIw8L3NwYW4+IDwvdGFibGU+CisKKyAgPC9kaXY+CisKKyAgPHA+VGhpcyBkYXRhIGlzIGFsc28gYXZhaWxhYmxlIDxhIGhyZWY9ZW50aXRpZXMuanNvbj5hcyBhIEpTT04gZmlsZTwvYT4uPC9wPgorCisgIDxwPjxpPlRoZSBnbHlwaHMgZGlzcGxheWVkIGFib3ZlIGFyZSBub24tbm9ybWF0aXZlLiBSZWZlciB0byB0aGUgVW5pY29kZSBzcGVjaWZpY2F0aW9ucyBmb3IgZm9ybWFsCisgIGRlZmluaXRpb25zIG9mIHRoZSBjaGFyYWN0ZXJzIGxpc3RlZCBhYm92ZS48L2k+PC9wPgorCisKKyAgPG5hdj48YSBocmVmPXdlYnN0b3JhZ2UuaHRtbD7ihpAgMTEgV2ViIHN0b3JhZ2U8L2E+IOKAlCA8YSBocmVmPWluZGV4Lmh0bWw+VGFibGUgb2YgQ29udGVudHM8L2E+IOKAlCA8YSBocmVmPXhodG1sLmh0bWw+MTMgVGhlIFhIVE1MIHN5bnRheCDihpI8L2E+PC9uYXY+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9pbmRleC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2luZGV4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNDY0ZDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9pbmRleC5qcwpAQCAtMCwwICsxLDEyIEBACisndXNlIHN0cmljdCc7CisKK2V4cG9ydHMuUGFyc2VyID0gcmVxdWlyZSgnLi9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vcGFyc2VyJyk7CitleHBvcnRzLlNpbXBsZUFwaVBhcnNlciA9IHJlcXVpcmUoJy4vbGliL3NpbXBsZV9hcGkvc2ltcGxlX2FwaV9wYXJzZXInKTsKK2V4cG9ydHMuVHJlZVNlcmlhbGl6ZXIgPQorZXhwb3J0cy5TZXJpYWxpemVyID0gcmVxdWlyZSgnLi9saWIvc2VyaWFsaXphdGlvbi9zZXJpYWxpemVyJyk7CitleHBvcnRzLkpzRG9tUGFyc2VyID0gcmVxdWlyZSgnLi9saWIvanNkb20vanNkb21fcGFyc2VyJyk7CisKK2V4cG9ydHMuVHJlZUFkYXB0ZXJzID0geworICAgIGRlZmF1bHQ6IHJlcXVpcmUoJy4vbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdCcpLAorICAgIGh0bWxwYXJzZXIyOiByZXF1aXJlKCcuL2xpYi90cmVlX2FkYXB0ZXJzL2h0bWxwYXJzZXIyJykKK307CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvY29tbW9uL2RvY3R5cGUuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvY29tbW9uL2RvY3R5cGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNmM2MwYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9jb21tb24vZG9jdHlwZS5qcwpAQCAtMCwwICsxLDEzNCBAQAorJ3VzZSBzdHJpY3QnOworCisvL0NvbnN0Cit2YXIgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnLAorICAgIFFVSVJLU19NT0RFX1NZU1RFTV9JRCA9ICdodHRwOi8vd3d3LmlibS5jb20vZGF0YS9kdGQvdjExL2libXhodG1sMS10cmFuc2l0aW9uYWwuZHRkJywKKyAgICBRVUlSS1NfTU9ERV9QVUJMSUNfSURfUFJFRklYRVMgPSBbCisgICAgICAgICIrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy9lbiIsCisgICAgICAgICItLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vZW4iLAorICAgICAgICAiLS8vYXMvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAyLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDEvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdC8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMi4wLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAzLjAvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDMuMC8vZW4vLyIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAzLjIgZmluYWwvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDMuMi8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMy8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMC8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMC8vZW4vLzIuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy9lbi8vMi4wIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDIvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDIvL2VuLy8yLjAiLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMy8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMy8vZW4vLzMuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDAvL2VuLy8yLjAiLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAxLy9lbi8vMi4wIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMi8vZW4vLzIuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDMvL2VuLy8zLjAiLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QvL2VuLy8yLjAiLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly9lbi8vMy4wIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbC8vZW4vLzIuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbC8vZW4vLzMuMCIsCisgICAgICAgICItLy9tZXRyaXVzLy9kdGQgbWV0cml1cyBwcmVzZW50YXRpb25hbC8vZW4iLAorICAgICAgICAiLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwgc3RyaWN0Ly9lbiIsCisgICAgICAgICItLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbC8vZW4iLAorICAgICAgICAiLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIHRhYmxlcy8vZW4iLAorICAgICAgICAiLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwgc3RyaWN0Ly9lbiIsCisgICAgICAgICItLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbC8vZW4iLAorICAgICAgICAiLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIHRhYmxlcy8vZW4iLAorICAgICAgICAiLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBodG1sLy9lbiIsCisgICAgICAgICItLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIHN0cmljdCBodG1sLy9lbiIsCisgICAgICAgICItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgMi4wLy9lbiIsCisgICAgICAgICItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgMS4wLy9lbiIsCisgICAgICAgICItLy9zcHlnbGFzcy8vZHRkIGh0bWwgMi4wIGV4dGVuZGVkLy9lbiIsCisgICAgICAgICItLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vZW4iLAorICAgICAgICAiLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vZW4iLAorICAgICAgICAiLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgc3RyaWN0IGh0bWwvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly9lbiIsCisgICAgICAgICItLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vZW4iLAorICAgICAgICAiLS8vdzNjLy9kdGQgaHRtbCAzLjIgZmluYWwvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgMy4yLy9lbiIsCisgICAgICAgICItLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgNC4wIGZyYW1lc2V0Ly9lbiIsCisgICAgICAgICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy9lbiIsCisgICAgICAgICItLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCA5NzA0MjEvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIHczIGh0bWwvL2VuIiwKKyAgICAgICAgIi0vL3czby8vZHRkIHczIGh0bWwgMy4wLy9lbiIsCisgICAgICAgICItLy93M28vL2R0ZCB3MyBodG1sIDMuMC8vZW4vLyIsCisgICAgICAgICItLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvL2VuIiwKKyAgICAgICAgIi0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sLy9lbiIKKyAgICBdLAorICAgIFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbCisgICAgICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsCisgICAgICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgdHJhbnNpdGlvbmFsLy8nCisgICAgXSwKKyAgICBRVUlSS1NfTU9ERV9QVUJMSUNfSURTID0gWworICAgICAgICAnLS8vdzNvLy9kdGQgdzMgaHRtbCBzdHJpY3QgMy4wLy9lbi8vJywKKyAgICAgICAgJy0vdzNjL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvZW4nLAorICAgICAgICAnaHRtbCcKKyAgICBdOworCisKKy8vVXRpbHMKK2Z1bmN0aW9uIGVucXVvdGVEb2N0eXBlSWQoaWQpIHsKKyAgICB2YXIgcXVvdGUgPSBpZC5pbmRleE9mKCciJykgIT09IC0xID8gJ1wnJyA6ICciJzsKKworICAgIHJldHVybiBxdW90ZSArIGlkICsgcXVvdGU7Cit9CisKKworLy9BUEkKK2V4cG9ydHMuaXNRdWlya3MgPSBmdW5jdGlvbiAobmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSB7CisgICAgaWYgKG5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoc3lzdGVtSWQgJiYgc3lzdGVtSWQudG9Mb3dlckNhc2UoKSA9PT0gUVVJUktTX01PREVfU1lTVEVNX0lEKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChwdWJsaWNJZCAhPT0gbnVsbCkgeworICAgICAgICBwdWJsaWNJZCA9IHB1YmxpY0lkLnRvTG93ZXJDYXNlKCk7CisKKyAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaW5kZXhPZihwdWJsaWNJZCkgPiAtMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHZhciBwcmVmaXhlcyA9IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUzsKKworICAgICAgICBpZiAoc3lzdGVtSWQgPT09IG51bGwpCisgICAgICAgICAgICBwcmVmaXhlcyA9IHByZWZpeGVzLmNvbmNhdChRVUlSS1NfTU9ERV9OT19TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByZWZpeGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAocHVibGljSWQuaW5kZXhPZihwcmVmaXhlc1tpXSkgPT09IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9OworCitleHBvcnRzLnNlcmlhbGl6ZUNvbnRlbnQgPSBmdW5jdGlvbiAobmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSB7CisgICAgdmFyIHN0ciA9ICchRE9DVFlQRSAnICsgbmFtZTsKKworICAgIGlmIChwdWJsaWNJZCAhPT0gbnVsbCkKKyAgICAgICAgc3RyICs9ICcgUFVCTElDICcgKyBlbnF1b3RlRG9jdHlwZUlkKHB1YmxpY0lkKTsKKworICAgIGVsc2UgaWYgKHN5c3RlbUlkICE9PSBudWxsKQorICAgICAgICBzdHIgKz0gJyBTWVNURU0nOworCisgICAgaWYgKHN5c3RlbUlkICE9PSBudWxsKQorICAgICAgICBzdHIgKz0gJyAnICsgZW5xdW90ZURvY3R5cGVJZChzeXN0ZW1JZCk7CisKKyAgICByZXR1cm4gc3RyOworfTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9jb21tb24vZm9yZWlnbl9jb250ZW50LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL2NvbW1vbi9mb3JlaWduX2NvbnRlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTMzNTk2MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9jb21tb24vZm9yZWlnbl9jb250ZW50LmpzCkBAIC0wLDAgKzEsMjU3IEBACisndXNlIHN0cmljdCc7CisKK3ZhciBUb2tlbml6ZXIgPSByZXF1aXJlKCcuLi90b2tlbml6YXRpb24vdG9rZW5pemVyJyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4vaHRtbCcpOworCisvL0FsaWFzZXMKK3ZhciAkID0gSFRNTC5UQUdfTkFNRVMsCisgICAgTlMgPSBIVE1MLk5BTUVTUEFDRVMsCisgICAgQVRUUlMgPSBIVE1MLkFUVFJTOworCisKKy8vTUlNRSB0eXBlcwordmFyIE1JTUVfVFlQRVMgPSB7CisgICAgVEVYVF9IVE1MOiAndGV4dC9odG1sJywKKyAgICBBUFBMSUNBVElPTl9YTUw6ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnCit9OworCisvL0F0dHJpYnV0ZXMKK3ZhciBERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb251cmwnLAorICAgIEFESlVTVEVEX0RFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvblVSTCcsCisgICAgU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQID0geworICAgICAgICAnYXR0cmlidXRlbmFtZSc6ICdhdHRyaWJ1dGVOYW1lJywKKyAgICAgICAgJ2F0dHJpYnV0ZXR5cGUnOiAnYXR0cmlidXRlVHlwZScsCisgICAgICAgICdiYXNlZnJlcXVlbmN5JzogJ2Jhc2VGcmVxdWVuY3knLAorICAgICAgICAnYmFzZXByb2ZpbGUnOiAnYmFzZVByb2ZpbGUnLAorICAgICAgICAnY2FsY21vZGUnOiAnY2FsY01vZGUnLAorICAgICAgICAnY2xpcHBhdGh1bml0cyc6ICdjbGlwUGF0aFVuaXRzJywKKyAgICAgICAgJ2NvbnRlbnRzY3JpcHR0eXBlJzogJ2NvbnRlbnRTY3JpcHRUeXBlJywKKyAgICAgICAgJ2NvbnRlbnRzdHlsZXR5cGUnOiAnY29udGVudFN0eWxlVHlwZScsCisgICAgICAgICdkaWZmdXNlY29uc3RhbnQnOiAnZGlmZnVzZUNvbnN0YW50JywKKyAgICAgICAgJ2VkZ2Vtb2RlJzogJ2VkZ2VNb2RlJywKKyAgICAgICAgJ2V4dGVybmFscmVzb3VyY2VzcmVxdWlyZWQnOiAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcsCisgICAgICAgICdmaWx0ZXJyZXMnOiAnZmlsdGVyUmVzJywKKyAgICAgICAgJ2ZpbHRlcnVuaXRzJzogJ2ZpbHRlclVuaXRzJywKKyAgICAgICAgJ2dseXBocmVmJzogJ2dseXBoUmVmJywKKyAgICAgICAgJ2dyYWRpZW50dHJhbnNmb3JtJzogJ2dyYWRpZW50VHJhbnNmb3JtJywKKyAgICAgICAgJ2dyYWRpZW50dW5pdHMnOiAnZ3JhZGllbnRVbml0cycsCisgICAgICAgICdrZXJuZWxtYXRyaXgnOiAna2VybmVsTWF0cml4JywKKyAgICAgICAgJ2tlcm5lbHVuaXRsZW5ndGgnOiAna2VybmVsVW5pdExlbmd0aCcsCisgICAgICAgICdrZXlwb2ludHMnOiAna2V5UG9pbnRzJywKKyAgICAgICAgJ2tleXNwbGluZXMnOiAna2V5U3BsaW5lcycsCisgICAgICAgICdrZXl0aW1lcyc6ICdrZXlUaW1lcycsCisgICAgICAgICdsZW5ndGhhZGp1c3QnOiAnbGVuZ3RoQWRqdXN0JywKKyAgICAgICAgJ2xpbWl0aW5nY29uZWFuZ2xlJzogJ2xpbWl0aW5nQ29uZUFuZ2xlJywKKyAgICAgICAgJ21hcmtlcmhlaWdodCc6ICdtYXJrZXJIZWlnaHQnLAorICAgICAgICAnbWFya2VydW5pdHMnOiAnbWFya2VyVW5pdHMnLAorICAgICAgICAnbWFya2Vyd2lkdGgnOiAnbWFya2VyV2lkdGgnLAorICAgICAgICAnbWFza2NvbnRlbnR1bml0cyc6ICdtYXNrQ29udGVudFVuaXRzJywKKyAgICAgICAgJ21hc2t1bml0cyc6ICdtYXNrVW5pdHMnLAorICAgICAgICAnbnVtb2N0YXZlcyc6ICdudW1PY3RhdmVzJywKKyAgICAgICAgJ3BhdGhsZW5ndGgnOiAncGF0aExlbmd0aCcsCisgICAgICAgICdwYXR0ZXJuY29udGVudHVuaXRzJzogJ3BhdHRlcm5Db250ZW50VW5pdHMnLAorICAgICAgICAncGF0dGVybnRyYW5zZm9ybSc6ICdwYXR0ZXJuVHJhbnNmb3JtJywKKyAgICAgICAgJ3BhdHRlcm51bml0cyc6ICdwYXR0ZXJuVW5pdHMnLAorICAgICAgICAncG9pbnRzYXR4JzogJ3BvaW50c0F0WCcsCisgICAgICAgICdwb2ludHNhdHknOiAncG9pbnRzQXRZJywKKyAgICAgICAgJ3BvaW50c2F0eic6ICdwb2ludHNBdFonLAorICAgICAgICAncHJlc2VydmVhbHBoYSc6ICdwcmVzZXJ2ZUFscGhhJywKKyAgICAgICAgJ3ByZXNlcnZlYXNwZWN0cmF0aW8nOiAncHJlc2VydmVBc3BlY3RSYXRpbycsCisgICAgICAgICdwcmltaXRpdmV1bml0cyc6ICdwcmltaXRpdmVVbml0cycsCisgICAgICAgICdyZWZ4JzogJ3JlZlgnLAorICAgICAgICAncmVmeSc6ICdyZWZZJywKKyAgICAgICAgJ3JlcGVhdGNvdW50JzogJ3JlcGVhdENvdW50JywKKyAgICAgICAgJ3JlcGVhdGR1cic6ICdyZXBlYXREdXInLAorICAgICAgICAncmVxdWlyZWRleHRlbnNpb25zJzogJ3JlcXVpcmVkRXh0ZW5zaW9ucycsCisgICAgICAgICdyZXF1aXJlZGZlYXR1cmVzJzogJ3JlcXVpcmVkRmVhdHVyZXMnLAorICAgICAgICAnc3BlY3VsYXJjb25zdGFudCc6ICdzcGVjdWxhckNvbnN0YW50JywKKyAgICAgICAgJ3NwZWN1bGFyZXhwb25lbnQnOiAnc3BlY3VsYXJFeHBvbmVudCcsCisgICAgICAgICdzcHJlYWRtZXRob2QnOiAnc3ByZWFkTWV0aG9kJywKKyAgICAgICAgJ3N0YXJ0b2Zmc2V0JzogJ3N0YXJ0T2Zmc2V0JywKKyAgICAgICAgJ3N0ZGRldmlhdGlvbic6ICdzdGREZXZpYXRpb24nLAorICAgICAgICAnc3RpdGNodGlsZXMnOiAnc3RpdGNoVGlsZXMnLAorICAgICAgICAnc3VyZmFjZXNjYWxlJzogJ3N1cmZhY2VTY2FsZScsCisgICAgICAgICdzeXN0ZW1sYW5ndWFnZSc6ICdzeXN0ZW1MYW5ndWFnZScsCisgICAgICAgICd0YWJsZXZhbHVlcyc6ICd0YWJsZVZhbHVlcycsCisgICAgICAgICd0YXJnZXR4JzogJ3RhcmdldFgnLAorICAgICAgICAndGFyZ2V0eSc6ICd0YXJnZXRZJywKKyAgICAgICAgJ3RleHRsZW5ndGgnOiAndGV4dExlbmd0aCcsCisgICAgICAgICd2aWV3Ym94JzogJ3ZpZXdCb3gnLAorICAgICAgICAndmlld3RhcmdldCc6ICd2aWV3VGFyZ2V0JywKKyAgICAgICAgJ3hjaGFubmVsc2VsZWN0b3InOiAneENoYW5uZWxTZWxlY3RvcicsCisgICAgICAgICd5Y2hhbm5lbHNlbGVjdG9yJzogJ3lDaGFubmVsU2VsZWN0b3InLAorICAgICAgICAnem9vbWFuZHBhbic6ICd6b29tQW5kUGFuJworICAgIH0sCisgICAgWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQID0geworICAgICAgICAneGxpbms6YWN0dWF0ZSc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhY3R1YXRlJywgbmFtZXNwYWNlOiBOUy5YTElOS30sCisgICAgICAgICd4bGluazphcmNyb2xlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FyY3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSwKKyAgICAgICAgJ3hsaW5rOmhyZWYnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAnaHJlZicsIG5hbWVzcGFjZTogTlMuWExJTkt9LAorICAgICAgICAneGxpbms6cm9sZSc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOS30sCisgICAgICAgICd4bGluazpzaG93Jzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3Nob3cnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSwKKyAgICAgICAgJ3hsaW5rOnRpdGxlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3RpdGxlJywgbmFtZXNwYWNlOiBOUy5YTElOS30sCisgICAgICAgICd4bGluazp0eXBlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3R5cGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSwKKyAgICAgICAgJ3htbDpiYXNlJzoge3ByZWZpeDogJ3htbCcsIG5hbWU6ICdiYXNlJywgbmFtZXNwYWNlOiBOUy5YTUx9LAorICAgICAgICAneG1sOmxhbmcnOiB7cHJlZml4OiAneG1sJywgbmFtZTogJ2xhbmcnLCBuYW1lc3BhY2U6IE5TLlhNTH0sCisgICAgICAgICd4bWw6c3BhY2UnOiB7cHJlZml4OiAneG1sJywgbmFtZTogJ3NwYWNlJywgbmFtZXNwYWNlOiBOUy5YTUx9LAorICAgICAgICAneG1sbnMnOiB7cHJlZml4OiAnJywgbmFtZTogJ3htbG5zJywgbmFtZXNwYWNlOiBOUy5YTUxOU30sCisgICAgICAgICd4bWxuczp4bGluayc6IHtwcmVmaXg6ICd4bWxucycsIG5hbWU6ICd4bGluaycsIG5hbWVzcGFjZTogTlMuWE1MTlN9CisKKyAgICB9OworCisvL1NWRyB0YWcgbmFtZXMgYWRqdXN0bWVudCBtYXAKK3ZhciBTVkdfVEFHX05BTUVTX0FESlVTVE1FTlRfTUFQID0geworICAgICdhbHRnbHlwaCc6ICdhbHRHbHlwaCcsCisgICAgJ2FsdGdseXBoZGVmJzogJ2FsdEdseXBoRGVmJywKKyAgICAnYWx0Z2x5cGhpdGVtJzogJ2FsdEdseXBoSXRlbScsCisgICAgJ2FuaW1hdGVjb2xvcic6ICdhbmltYXRlQ29sb3InLAorICAgICdhbmltYXRlbW90aW9uJzogJ2FuaW1hdGVNb3Rpb24nLAorICAgICdhbmltYXRldHJhbnNmb3JtJzogJ2FuaW1hdGVUcmFuc2Zvcm0nLAorICAgICdjbGlwcGF0aCc6ICdjbGlwUGF0aCcsCisgICAgJ2ZlYmxlbmQnOiAnZmVCbGVuZCcsCisgICAgJ2ZlY29sb3JtYXRyaXgnOiAnZmVDb2xvck1hdHJpeCcsCisgICAgJ2ZlY29tcG9uZW50dHJhbnNmZXInOiAnZmVDb21wb25lbnRUcmFuc2ZlcicsCisgICAgJ2ZlY29tcG9zaXRlJzogJ2ZlQ29tcG9zaXRlJywKKyAgICAnZmVjb252b2x2ZW1hdHJpeCc6ICdmZUNvbnZvbHZlTWF0cml4JywKKyAgICAnZmVkaWZmdXNlbGlnaHRpbmcnOiAnZmVEaWZmdXNlTGlnaHRpbmcnLAorICAgICdmZWRpc3BsYWNlbWVudG1hcCc6ICdmZURpc3BsYWNlbWVudE1hcCcsCisgICAgJ2ZlZGlzdGFudGxpZ2h0JzogJ2ZlRGlzdGFudExpZ2h0JywKKyAgICAnZmVmbG9vZCc6ICdmZUZsb29kJywKKyAgICAnZmVmdW5jYSc6ICdmZUZ1bmNBJywKKyAgICAnZmVmdW5jYic6ICdmZUZ1bmNCJywKKyAgICAnZmVmdW5jZyc6ICdmZUZ1bmNHJywKKyAgICAnZmVmdW5jcic6ICdmZUZ1bmNSJywKKyAgICAnZmVnYXVzc2lhbmJsdXInOiAnZmVHYXVzc2lhbkJsdXInLAorICAgICdmZWltYWdlJzogJ2ZlSW1hZ2UnLAorICAgICdmZW1lcmdlJzogJ2ZlTWVyZ2UnLAorICAgICdmZW1lcmdlbm9kZSc6ICdmZU1lcmdlTm9kZScsCisgICAgJ2ZlbW9ycGhvbG9neSc6ICdmZU1vcnBob2xvZ3knLAorICAgICdmZW9mZnNldCc6ICdmZU9mZnNldCcsCisgICAgJ2ZlcG9pbnRsaWdodCc6ICdmZVBvaW50TGlnaHQnLAorICAgICdmZXNwZWN1bGFybGlnaHRpbmcnOiAnZmVTcGVjdWxhckxpZ2h0aW5nJywKKyAgICAnZmVzcG90bGlnaHQnOiAnZmVTcG90TGlnaHQnLAorICAgICdmZXRpbGUnOiAnZmVUaWxlJywKKyAgICAnZmV0dXJidWxlbmNlJzogJ2ZlVHVyYnVsZW5jZScsCisgICAgJ2ZvcmVpZ25vYmplY3QnOiAnZm9yZWlnbk9iamVjdCcsCisgICAgJ2dseXBocmVmJzogJ2dseXBoUmVmJywKKyAgICAnbGluZWFyZ3JhZGllbnQnOiAnbGluZWFyR3JhZGllbnQnLAorICAgICdyYWRpYWxncmFkaWVudCc6ICdyYWRpYWxHcmFkaWVudCcsCisgICAgJ3RleHRwYXRoJzogJ3RleHRQYXRoJworfTsKKworLy9UYWdzIHRoYXQgY2F1c2VzIGV4aXQgZnJvbSBmb3JlaWduIGNvbnRlbnQKK3ZhciBFWElUU19GT1JFSUdOX0NPTlRFTlQgPSB7fTsKKworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQl0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQklHXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5CTE9DS1FVT1RFXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5CT0RZXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5CUl0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQ0VOVEVSXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5DT0RFXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5ERF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRElWXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5ETF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRFRdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkVNXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5FTUJFRF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDFdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkgyXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5IM10gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDRdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkg1XSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5INl0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSEVBRF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSFJdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkldID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLklNR10gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuTEldID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkxJU1RJTkddID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLk1FTlVdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLk1FVEFdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLk5PQlJdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLk9MXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5QXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5QUkVdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlJVQlldID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNNQUxMXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TUEFOXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TVFJPTkddID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNUUklLRV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1VCXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TVVBdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlRBQkxFXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5UVF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuVV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuVUxdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlZBUl0gPSB0cnVlOworCisvL0NoZWNrIGV4aXQgZnJvbSBmb3JlaWduIGNvbnRlbnQKK2V4cG9ydHMuY2F1c2VzRXhpdCA9IGZ1bmN0aW9uIChzdGFydFRhZ1Rva2VuKSB7CisgICAgdmFyIHRuID0gc3RhcnRUYWdUb2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkZPTlQgJiYgKFRva2VuaXplci5nZXRUb2tlbkF0dHIoc3RhcnRUYWdUb2tlbiwgQVRUUlMuQ09MT1IpICE9PSBudWxsIHx8CisgICAgICAgIFRva2VuaXplci5nZXRUb2tlbkF0dHIoc3RhcnRUYWdUb2tlbiwgQVRUUlMuU0laRSkgIT09IG51bGwgfHwKKyAgICAgICAgVG9rZW5pemVyLmdldFRva2VuQXR0cihzdGFydFRhZ1Rva2VuLCBBVFRSUy5GQUNFKSAhPT0gbnVsbCkpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIEVYSVRTX0ZPUkVJR05fQ09OVEVOVFt0bl07Cit9OworCisvL1Rva2VuIGFkanVzdG1lbnRzCitleHBvcnRzLmFkanVzdFRva2VuTWF0aE1MQXR0cnMgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmICh0b2tlbi5hdHRyc1tpXS5uYW1lID09PSBERUZJTklUSU9OX1VSTF9BVFRSKSB7CisgICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfTsKKworZXhwb3J0cy5hZGp1c3RUb2tlblNWR0F0dHJzID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgYWRqdXN0ZWRBdHRyTmFtZSA9IFNWR19BVFRSU19BREpVU1RNRU5UX01BUFt0b2tlbi5hdHRyc1tpXS5uYW1lXTsKKworICAgICAgICBpZiAoYWRqdXN0ZWRBdHRyTmFtZSkKKyAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBhZGp1c3RlZEF0dHJOYW1lOworICAgIH0KK307CisKK2V4cG9ydHMuYWRqdXN0VG9rZW5YTUxBdHRycyA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGFkanVzdGVkQXR0ckVudHJ5ID0gWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQW3Rva2VuLmF0dHJzW2ldLm5hbWVdOworCisgICAgICAgIGlmIChhZGp1c3RlZEF0dHJFbnRyeSkgeworICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ucHJlZml4ID0gYWRqdXN0ZWRBdHRyRW50cnkucHJlZml4OworICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWU7CisgICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lc3BhY2UgPSBhZGp1c3RlZEF0dHJFbnRyeS5uYW1lc3BhY2U7CisgICAgICAgIH0KKyAgICB9Cit9OworCitleHBvcnRzLmFkanVzdFRva2VuU1ZHVGFnTmFtZSA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIHZhciBhZGp1c3RlZFRhZ05hbWUgPSBTVkdfVEFHX05BTUVTX0FESlVTVE1FTlRfTUFQW3Rva2VuLnRhZ05hbWVdOworCisgICAgaWYgKGFkanVzdGVkVGFnTmFtZSkKKyAgICAgICAgdG9rZW4udGFnTmFtZSA9IGFkanVzdGVkVGFnTmFtZTsKK307CisKKy8vSW50ZWdyYXRpb24gcG9pbnRzCitleHBvcnRzLmlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQgPSBmdW5jdGlvbiAodG4sIG5zKSB7CisgICAgcmV0dXJuIG5zID09PSBOUy5NQVRITUwgJiYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TIHx8IHRuID09PSAkLk1URVhUKTsKK307CisKK2V4cG9ydHMuaXNIdG1sSW50ZWdyYXRpb25Qb2ludCA9IGZ1bmN0aW9uICh0biwgbnMsIGF0dHJzKSB7CisgICAgaWYgKG5zID09PSBOUy5NQVRITUwgJiYgdG4gPT09ICQuQU5OT1RBVElPTl9YTUwpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGF0dHJzW2ldLm5hbWUgPT09IEFUVFJTLkVOQ09ESU5HKSB7CisgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYXR0cnNbaV0udmFsdWUudG9Mb3dlckNhc2UoKTsKKworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5URVhUX0hUTUwgfHwgdmFsdWUgPT09IE1JTUVfVFlQRVMuQVBQTElDQVRJT05fWE1MOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG5zID09PSBOUy5TVkcgJiYgKHRuID09PSAkLkZPUkVJR05fT0JKRUNUIHx8IHRuID09PSAkLkRFU0MgfHwgdG4gPT09ICQuVElUTEUpOworfTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9jb21tb24vaHRtbC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9jb21tb24vaHRtbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDhhZDRmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL2NvbW1vbi9odG1sLmpzCkBAIC0wLDAgKzEsMjY4IEBACisndXNlIHN0cmljdCc7CisKK3ZhciBOUyA9IGV4cG9ydHMuTkFNRVNQQUNFUyA9IHsKKyAgICBIVE1MOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsCisgICAgTUFUSE1MOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsCisgICAgU1ZHOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLAorICAgIFhMSU5LOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsCisgICAgWE1MOiAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJywKKyAgICBYTUxOUzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvJworfTsKKworZXhwb3J0cy5BVFRSUyA9IHsKKyAgICBUWVBFOiAndHlwZScsCisgICAgQUNUSU9OOiAnYWN0aW9uJywKKyAgICBFTkNPRElORzogJ2VuY29kaW5nJywKKyAgICBQUk9NUFQ6ICdwcm9tcHQnLAorICAgIE5BTUU6ICduYW1lJywKKyAgICBDT0xPUjogJ2NvbG9yJywKKyAgICBGQUNFOiAnZmFjZScsCisgICAgU0laRTogJ3NpemUnCit9OworCit2YXIgJCA9IGV4cG9ydHMuVEFHX05BTUVTID0geworICAgIEE6ICdhJywKKyAgICBBRERSRVNTOiAnYWRkcmVzcycsCisgICAgQU5OT1RBVElPTl9YTUw6ICdhbm5vdGF0aW9uLXhtbCcsCisgICAgQVBQTEVUOiAnYXBwbGV0JywKKyAgICBBUkVBOiAnYXJlYScsCisgICAgQVJUSUNMRTogJ2FydGljbGUnLAorICAgIEFTSURFOiAnYXNpZGUnLAorCisgICAgQjogJ2InLAorICAgIEJBU0U6ICdiYXNlJywKKyAgICBCQVNFRk9OVDogJ2Jhc2Vmb250JywKKyAgICBCR1NPVU5EOiAnYmdzb3VuZCcsCisgICAgQklHOiAnYmlnJywKKyAgICBCTE9DS1FVT1RFOiAnYmxvY2txdW90ZScsCisgICAgQk9EWTogJ2JvZHknLAorICAgIEJSOiAnYnInLAorICAgIEJVVFRPTjogJ2J1dHRvbicsCisKKyAgICBDQVBUSU9OOiAnY2FwdGlvbicsCisgICAgQ0VOVEVSOiAnY2VudGVyJywKKyAgICBDT0RFOiAnY29kZScsCisgICAgQ09MOiAnY29sJywKKyAgICBDT0xHUk9VUDogJ2NvbGdyb3VwJywKKyAgICBDT01NQU5EOiAnY29tbWFuZCcsCisKKyAgICBERDogJ2RkJywKKyAgICBERVNDOiAnZGVzYycsCisgICAgREVUQUlMUzogJ2RldGFpbHMnLAorICAgIERJQUxPRzogJ2RpYWxvZycsCisgICAgRElSOiAnZGlyJywKKyAgICBESVY6ICdkaXYnLAorICAgIERMOiAnZGwnLAorICAgIERUOiAnZHQnLAorCisgICAgRU06ICdlbScsCisgICAgRU1CRUQ6ICdlbWJlZCcsCisKKyAgICBGSUVMRFNFVDogJ2ZpZWxkc2V0JywKKyAgICBGSUdDQVBUSU9OOiAnZmlnY2FwdGlvbicsCisgICAgRklHVVJFOiAnZmlndXJlJywKKyAgICBGT05UOiAnZm9udCcsCisgICAgRk9PVEVSOiAnZm9vdGVyJywKKyAgICBGT1JFSUdOX09CSkVDVDogJ2ZvcmVpZ25PYmplY3QnLAorICAgIEZPUk06ICdmb3JtJywKKyAgICBGUkFNRTogJ2ZyYW1lJywKKyAgICBGUkFNRVNFVDogJ2ZyYW1lc2V0JywKKworICAgIEgxOiAnaDEnLAorICAgIEgyOiAnaDInLAorICAgIEgzOiAnaDMnLAorICAgIEg0OiAnaDQnLAorICAgIEg1OiAnaDUnLAorICAgIEg2OiAnaDYnLAorICAgIEhFQUQ6ICdoZWFkJywKKyAgICBIRUFERVI6ICdoZWFkZXInLAorICAgIEhHUk9VUDogJ2hncm91cCcsCisgICAgSFI6ICdocicsCisgICAgSFRNTDogJ2h0bWwnLAorCisgICAgSTogJ2knLAorICAgIElNRzogJ2ltZycsCisgICAgSU1BR0U6ICdpbWFnZScsCisgICAgSU5QVVQ6ICdpbnB1dCcsCisgICAgSUZSQU1FOiAnaWZyYW1lJywKKyAgICBJU0lOREVYOiAnaXNpbmRleCcsCisKKyAgICBLRVlHRU46ICdrZXlnZW4nLAorCisgICAgTEFCRUw6ICdsYWJlbCcsCisgICAgTEk6ICdsaScsCisgICAgTElOSzogJ2xpbmsnLAorICAgIExJU1RJTkc6ICdsaXN0aW5nJywKKworICAgIE1BSU46ICdtYWluJywKKyAgICBNQUxJR05NQVJLOiAnbWFsaWdubWFyaycsCisgICAgTUFSUVVFRTogJ21hcnF1ZWUnLAorICAgIE1BVEg6ICdtYXRoJywKKyAgICBNRU5VOiAnbWVudScsCisgICAgTUVOVUlURU06ICdtZW51aXRlbScsCisgICAgTUVUQTogJ21ldGEnLAorICAgIE1HTFlQSDogJ21nbHlwaCcsCisgICAgTUk6ICdtaScsCisgICAgTU86ICdtbycsCisgICAgTU46ICdtbicsCisgICAgTVM6ICdtcycsCisgICAgTVRFWFQ6ICdtdGV4dCcsCisKKyAgICBOQVY6ICduYXYnLAorICAgIE5PQlI6ICdub2JyJywKKyAgICBOT0ZSQU1FUzogJ25vZnJhbWVzJywKKyAgICBOT0VNQkVEOiAnbm9lbWJlZCcsCisgICAgTk9TQ1JJUFQ6ICdub3NjcmlwdCcsCisKKyAgICBPQkpFQ1Q6ICdvYmplY3QnLAorICAgIE9MOiAnb2wnLAorICAgIE9QVEdST1VQOiAnb3B0Z3JvdXAnLAorICAgIE9QVElPTjogJ29wdGlvbicsCisKKyAgICBQOiAncCcsCisgICAgUEFSQU06ICdwYXJhbScsCisgICAgUExBSU5URVhUOiAncGxhaW50ZXh0JywKKyAgICBQUkU6ICdwcmUnLAorCisgICAgUlA6ICdycCcsCisgICAgUlQ6ICdydCcsCisgICAgUlVCWTogJ3J1YnknLAorCisgICAgUzogJ3MnLAorICAgIFNDUklQVDogJ3NjcmlwdCcsCisgICAgU0VDVElPTjogJ3NlY3Rpb24nLAorICAgIFNFTEVDVDogJ3NlbGVjdCcsCisgICAgU09VUkNFOiAnc291cmNlJywKKyAgICBTTUFMTDogJ3NtYWxsJywKKyAgICBTUEFOOiAnc3BhbicsCisgICAgU1RSSUtFOiAnc3RyaWtlJywKKyAgICBTVFJPTkc6ICdzdHJvbmcnLAorICAgIFNUWUxFOiAnc3R5bGUnLAorICAgIFNVQjogJ3N1YicsCisgICAgU1VNTUFSWTogJ3N1bW1hcnknLAorICAgIFNVUDogJ3N1cCcsCisKKyAgICBUQUJMRTogJ3RhYmxlJywKKyAgICBUQk9EWTogJ3Rib2R5JywKKyAgICBURU1QTEFURTogJ3RlbXBsYXRlJywKKyAgICBURVhUQVJFQTogJ3RleHRhcmVhJywKKyAgICBURk9PVDogJ3Rmb290JywKKyAgICBURDogJ3RkJywKKyAgICBUSDogJ3RoJywKKyAgICBUSEVBRDogJ3RoZWFkJywKKyAgICBUSVRMRTogJ3RpdGxlJywKKyAgICBUUjogJ3RyJywKKyAgICBUUkFDSzogJ3RyYWNrJywKKyAgICBUVDogJ3R0JywKKworICAgIFU6ICd1JywKKyAgICBVTDogJ3VsJywKKworICAgIFNWRzogJ3N2ZycsCisKKyAgICBWQVI6ICd2YXInLAorCisgICAgV0JSOiAnd2JyJywKKworICAgIFhNUDogJ3htcCcKK307CisKK3ZhciBTUEVDSUFMX0VMRU1FTlRTID0gZXhwb3J0cy5TUEVDSUFMX0VMRU1FTlRTID0ge307CisKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF0gPSB7fTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5BRERSRVNTXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQVBQTEVUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQVJFQV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkFSVElDTEVdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5BU0lERV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJBU0VdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CQVNFRk9OVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJHU09VTkRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CTE9DS1FVT1RFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQk9EWV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJSXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQlVUVE9OXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQ0FQVElPTl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNFTlRFUl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNPTF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNPTEdST1VQXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRERdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5ERVRBSUxTXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRElSXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRElWXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRExdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5EVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkVNQkVEXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRklFTERTRVRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5GSUdDQVBUSU9OXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRklHVVJFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRk9PVEVSXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRk9STV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZSQU1FXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRlJBTUVTRVRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IMV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkgyXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDNdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5INF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkg1XSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDZdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IRUFEXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSEVBREVSXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSEdST1VQXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSFJdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IVE1MXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSUZSQU1FXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSU1HXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSU5QVVRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5JU0lOREVYXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTEldID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5MSU5LXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTElTVElOR10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1BSU5dID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5NQVJRVUVFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTUVOVV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1FTlVJVEVNXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTUVUQV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5BVl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5PRU1CRURdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5OT0ZSQU1FU10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5PU0NSSVBUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuT0JKRUNUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuT0xdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuUEFSQU1dID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QTEFJTlRFWFRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QUkVdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TQ1JJUFRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TRUNUSU9OXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU0VMRUNUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU09VUkNFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU1RZTEVdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TVU1NQVJZXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEFCTEVdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5UQk9EWV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlREXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEVNUExBVEVdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5URVhUQVJFQV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRGT09UXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEhdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5USEVBRF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRJVExFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVFJdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5UUkFDS10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlVMXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuV0JSXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuWE1QXSA9IHRydWU7CisKK1NQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXSA9IHt9OworU1BFQ0lBTF9FTEVNRU5UU1tOUy5NQVRITUxdWyQuTUldID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1PXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLk1BVEhNTF1bJC5NTl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5NQVRITUxdWyQuTVNdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1URVhUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLk1BVEhNTF1bJC5BTk5PVEFUSU9OX1hNTF0gPSB0cnVlOworCitTUEVDSUFMX0VMRU1FTlRTW05TLlNWR10gPSB7fTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuU1ZHXVskLlRJVExFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLlNWR11bJC5GT1JFSUdOX09CSkVDVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5TVkddWyQuREVTQ10gPSB0cnVlOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL2NvbW1vbi91bmljb2RlLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL2NvbW1vbi91bmljb2RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5OTZkZGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvY29tbW9uL3VuaWNvZGUuanMKQEAgLTAsMCArMSw0OCBAQAorJ3VzZSBzdHJpY3QnOw0KKw0KK2V4cG9ydHMuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSID0gJ1x1RkZGRCc7DQorDQorZXhwb3J0cy5DT0RFX1BPSU5UUyA9IHsNCisgICAgRU9GOiAtMSwNCisgICAgTlVMTDogMHgwMCwNCisgICAgVEFCVUxBVElPTjogMHgwOSwNCisgICAgQ0FSUklBR0VfUkVUVVJOOiAweDBELA0KKyAgICBMSU5FX0ZFRUQ6IDB4MEEsDQorICAgIEZPUk1fRkVFRDogMHgwQywNCisgICAgU1BBQ0U6IDB4MjAsDQorICAgIEVYQ0xBTUFUSU9OX01BUks6IDB4MjEsDQorICAgIFFVT1RBVElPTl9NQVJLOiAweDIyLA0KKyAgICBOVU1CRVJfU0lHTjogMHgyMywNCisgICAgQU1QRVJTQU5EOiAweDI2LA0KKyAgICBBUE9TVFJPUEhFOiAweDI3LA0KKyAgICBIWVBIRU5fTUlOVVM6IDB4MkQsDQorICAgIFNPTElEVVM6IDB4MkYsDQorICAgIERJR0lUXzA6IDB4MzAsDQorICAgIERJR0lUXzk6IDB4MzksDQorICAgIFNFTUlDT0xPTjogMHgzQiwNCisgICAgTEVTU19USEFOX1NJR046IDB4M0MsDQorICAgIEVRVUFMU19TSUdOOiAweDNELA0KKyAgICBHUkVBVEVSX1RIQU5fU0lHTjogMHgzRSwNCisgICAgUVVFU1RJT05fTUFSSzogMHgzRiwNCisgICAgTEFUSU5fQ0FQSVRBTF9BOiAweDQxLA0KKyAgICBMQVRJTl9DQVBJVEFMX0Y6IDB4NDYsDQorICAgIExBVElOX0NBUElUQUxfWDogMHg1OCwNCisgICAgTEFUSU5fQ0FQSVRBTF9aOiAweDVBLA0KKyAgICBHUkFWRV9BQ0NFTlQ6IDB4NjAsDQorICAgIExBVElOX1NNQUxMX0E6IDB4NjEsDQorICAgIExBVElOX1NNQUxMX0Y6IDB4NjYsDQorICAgIExBVElOX1NNQUxMX1g6IDB4NzgsDQorICAgIExBVElOX1NNQUxMX1o6IDB4N0EsDQorICAgIEJPTTogMHhGRUZGLA0KKyAgICBSRVBMQUNFTUVOVF9DSEFSQUNURVI6IDB4RkZGRA0KK307DQorDQorZXhwb3J0cy5DT0RFX1BPSU5UX1NFUVVFTkNFUyA9IHsNCisgICAgREFTSF9EQVNIX1NUUklORzogWzB4MkQsIDB4MkRdLCAvLy0tDQorICAgIERPQ1RZUEVfU1RSSU5HOiBbMHg0NCwgMHg0RiwgMHg0MywgMHg1NCwgMHg1OSwgMHg1MCwgMHg0NV0sIC8vRE9DVFlQRQ0KKyAgICBDREFUQV9TVEFSVF9TVFJJTkc6IFsweDVCLCAweDQzLCAweDQ0LCAweDQxLCAweDU0LCAweDQxLCAweDVCXSwgLy9bQ0RBVEFbDQorICAgIENEQVRBX0VORF9TVFJJTkc6IFsweDVELCAweDVELCAweDNFXSwgLy9dXT4NCisgICAgU0NSSVBUX1NUUklORzogWzB4NzMsIDB4NjMsIDB4NzIsIDB4NjksIDB4NzAsIDB4NzRdLCAvL3NjcmlwdA0KKyAgICBQVUJMSUNfU1RSSU5HOiBbMHg1MCwgMHg1NSwgMHg0MiwgMHg0QywgMHg0OSwgMHg0M10sIC8vUFVCTElDDQorICAgIFNZU1RFTV9TVFJJTkc6IFsweDUzLCAweDU5LCAweDUzLCAweDU0LCAweDQ1LCAweDREXSAvL1NZU1RFTQ0KK307DQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL2NvbW1vbi91dGlscy5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9jb21tb24vdXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU5NGU1YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9jb21tb24vdXRpbHMuanMKQEAgLTAsMCArMSwxMyBAQAorJ3VzZSBzdHJpY3QnOworCitleHBvcnRzLm1lcmdlT3B0aW9ucyA9IGZ1bmN0aW9uIChkZWZhdWx0cywgb3B0aW9ucykgeworICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OworCisgICAgcmV0dXJuIFtkZWZhdWx0cywgb3B0aW9uc10ucmVkdWNlKGZ1bmN0aW9uIChtZXJnZWQsIG9wdE9iaikgeworICAgICAgICBPYmplY3Qua2V5cyhvcHRPYmopLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeworICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSBvcHRPYmpba2V5XTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmV0dXJuIG1lcmdlZDsKKyAgICB9LCB7fSk7Cit9OwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL2pzZG9tL2pzZG9tX3BhcnNlci5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9qc2RvbS9qc2RvbV9wYXJzZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZmYThkMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9qc2RvbS9qc2RvbV9wYXJzZXIuanMKQEAgLTAsMCArMSwzOSBAQAorJ3VzZSBzdHJpY3QnOworCit2YXIgUGFyc2VyID0gcmVxdWlyZSgnLi4vdHJlZV9jb25zdHJ1Y3Rpb24vcGFyc2VyJyksCisgICAgUGFyc2luZ1VuaXQgPSByZXF1aXJlKCcuL3BhcnNpbmdfdW5pdCcpOworCisvL0FQSQorZXhwb3J0cy5wYXJzZURvY3VtZW50ID0gZnVuY3Rpb24gKGh0bWwsIHRyZWVBZGFwdGVyKSB7CisgICAgLy9OT1RFOiB0aGlzIHNob3VsZCBiZSByZWVudHJhbnQsIHNvIHdlIGNyZWF0ZSBuZXcgcGFyc2VyIGhlcmUKKyAgICB2YXIgcGFyc2VyID0gbmV3IFBhcnNlcih0cmVlQWRhcHRlciksCisgICAgICAgIHBhcnNpbmdVbml0ID0gbmV3IFBhcnNpbmdVbml0KHBhcnNlcik7CisKKyAgICAvL05PVEU6IG92ZXJyaWRlIHBhcnNlciBsb29wIG1ldGhvZAorICAgIHBhcnNlci5fcnVuUGFyc2luZ0xvb3AgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHBhcnNpbmdVbml0LnBhcnNpbmdMb29wTG9jayA9IHRydWU7CisKKyAgICAgICAgd2hpbGUgKCFwYXJzaW5nVW5pdC5zdXNwZW5kZWQgJiYgIXRoaXMuc3RvcHBlZCkKKyAgICAgICAgICAgIHRoaXMuX2l0ZXJhdGVQYXJzaW5nTG9vcCgpOworCisgICAgICAgIHBhcnNpbmdVbml0LnBhcnNpbmdMb29wTG9jayA9IGZhbHNlOworCisgICAgICAgIGlmICh0aGlzLnN0b3BwZWQpCisgICAgICAgICAgICBwYXJzaW5nVW5pdC5jYWxsYmFjayh0aGlzLmRvY3VtZW50KTsKKyAgICB9OworCisgICAgLy9OT1RFOiB3YWl0IHdoaWxlIHBhcnNlckNvbnRyb2xsZXIgd2lsbCBiZSBhZG9wdGVkIGJ5IGNhbGxpbmcgY29kZSwgdGhlbgorICAgIC8vc3RhcnQgcGFyc2luZworICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkgeworICAgICAgICBwYXJzZXIucGFyc2UoaHRtbCk7CisgICAgfSk7CisKKyAgICByZXR1cm4gcGFyc2luZ1VuaXQ7Cit9OworCitleHBvcnRzLnBhcnNlSW5uZXJIdG1sID0gZnVuY3Rpb24gKGlubmVySHRtbCwgY29udGV4dEVsZW1lbnQsIHRyZWVBZGFwdGVyKSB7CisgICAgLy9OT1RFOiB0aGlzIHNob3VsZCBiZSByZWVudHJhbnQsIHNvIHdlIGNyZWF0ZSBuZXcgcGFyc2VyIGhlcmUKKyAgICB2YXIgcGFyc2VyID0gbmV3IFBhcnNlcih0cmVlQWRhcHRlcik7CisKKyAgICByZXR1cm4gcGFyc2VyLnBhcnNlRnJhZ21lbnQoaW5uZXJIdG1sLCBjb250ZXh0RWxlbWVudCk7Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9qc2RvbS9wYXJzaW5nX3VuaXQuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvanNkb20vcGFyc2luZ191bml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNjA4OTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvanNkb20vcGFyc2luZ191bml0LmpzCkBAIC0wLDAgKzEsNTMgQEAKKyd1c2Ugc3RyaWN0JzsKKwordmFyIFBhcnNpbmdVbml0ID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocGFyc2VyKSB7CisgICAgdGhpcy5wYXJzZXIgPSBwYXJzZXI7CisgICAgdGhpcy5zdXNwZW5kZWQgPSBmYWxzZTsKKyAgICB0aGlzLnBhcnNpbmdMb29wTG9jayA9IGZhbHNlOworICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsOworfTsKKworUGFyc2luZ1VuaXQucHJvdG90eXBlLl9zdGF0ZUd1YXJkID0gZnVuY3Rpb24gKHN1c3BlbmQpIHsKKyAgICBpZiAodGhpcy5zdXNwZW5kZWQgJiYgc3VzcGVuZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYXJzZTU6IFBhcnNlciB3YXMgYWxyZWFkeSBzdXNwZW5kZWQuIFBsZWFzZSwgY2hlY2sgeW91ciBjb250cm9sIGZsb3cgbG9naWMuJyk7CisKKyAgICBlbHNlIGlmICghdGhpcy5zdXNwZW5kZWQgJiYgIXN1c3BlbmQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigncGFyc2U1OiBQYXJzZXIgd2FzIGFscmVhZHkgcmVzdW1lZC4gUGxlYXNlLCBjaGVjayB5b3VyIGNvbnRyb2wgZmxvdyBsb2dpYy4nKTsKKworICAgIHJldHVybiBzdXNwZW5kOworfTsKKworUGFyc2luZ1VuaXQucHJvdG90eXBlLnN1c3BlbmQgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5zdXNwZW5kZWQgPSB0aGlzLl9zdGF0ZUd1YXJkKHRydWUpOworCisgICAgcmV0dXJuIHRoaXM7Cit9OworCitQYXJzaW5nVW5pdC5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuc3VzcGVuZGVkID0gdGhpcy5fc3RhdGVHdWFyZChmYWxzZSk7CisKKyAgICAvL05PVEU6IGRvbid0IGVudGVyIHBhcnNpbmcgbG9vcCBpZiBpdCBpcyBsb2NrZWQuIFdpdGhvdXQgdGhpcyBsb2NrIF9ydW5QYXJzaW5nTG9vcCgpIG1heSBiZSBjYWxsZWQKKyAgICAvL3doaWxlIHBhcnNpbmcgbG9vcCBpcyBzdGlsbCBydW5uaW5nLiBFLmcuIHdoZW4gc3VzcGVuZCgpIGFuZCByZXN1bWUoKSBjYWxsZWQgc3luY2hyb25vdXNseS4KKyAgICBpZiAoIXRoaXMucGFyc2luZ0xvb3BMb2NrKQorICAgICAgICB0aGlzLnBhcnNlci5fcnVuUGFyc2luZ0xvb3AoKTsKKworICAgIHJldHVybiB0aGlzOworfTsKKworUGFyc2luZ1VuaXQucHJvdG90eXBlLmRvY3VtZW50V3JpdGUgPSBmdW5jdGlvbiAoaHRtbCkgeworICAgIHRoaXMucGFyc2VyLnRva2VuaXplci5wcmVwcm9jZXNzb3Iud3JpdGUoaHRtbCk7CisKKyAgICByZXR1cm4gdGhpczsKK307CisKK1BhcnNpbmdVbml0LnByb3RvdHlwZS5oYW5kbGVTY3JpcHRzID0gZnVuY3Rpb24gKHNjcmlwdEhhbmRsZXIpIHsKKyAgICB0aGlzLnBhcnNlci5zY3JpcHRIYW5kbGVyID0gc2NyaXB0SGFuZGxlcjsKKworICAgIHJldHVybiB0aGlzOworfTsKKworUGFyc2luZ1VuaXQucHJvdG90eXBlLmRvbmUgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKKyAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7CisKKyAgICByZXR1cm4gdGhpczsKK307CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvc2VyaWFsaXphdGlvbi9zZXJpYWxpemVyLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3NlcmlhbGl6YXRpb24vc2VyaWFsaXplci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODA4MjJlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3NlcmlhbGl6YXRpb24vc2VyaWFsaXplci5qcwpAQCAtMCwwICsxLDE3OSBAQAorJ3VzZSBzdHJpY3QnOworCit2YXIgRGVmYXVsdFRyZWVBZGFwdGVyID0gcmVxdWlyZSgnLi4vdHJlZV9hZGFwdGVycy9kZWZhdWx0JyksCisgICAgRG9jdHlwZSA9IHJlcXVpcmUoJy4uL2NvbW1vbi9kb2N0eXBlJyksCisgICAgVXRpbHMgPSByZXF1aXJlKCcuLi9jb21tb24vdXRpbHMnKSwKKyAgICBIVE1MID0gcmVxdWlyZSgnLi4vY29tbW9uL2h0bWwnKTsKKworLy9BbGlhc2VzCit2YXIgJCA9IEhUTUwuVEFHX05BTUVTLAorICAgIE5TID0gSFRNTC5OQU1FU1BBQ0VTOworCisvL0RlZmF1bHQgc2VyaWFsaXplciBvcHRpb25zCit2YXIgREVGQVVMVF9PUFRJT05TID0geworICAgIGVuY29kZUh0bWxFbnRpdGllczogdHJ1ZQorfTsKKworLy9Fc2NhcGluZyByZWdleGVzCit2YXIgQU1QX1JFR0VYID0gLyYvZywKKyAgICBOQlNQX1JFR0VYID0gL1x1MDBhMC9nLAorICAgIERPVUJMRV9RVU9URV9SRUdFWCA9IC8iL2csCisgICAgTFRfUkVHRVggPSAvPC9nLAorICAgIEdUX1JFR0VYID0gLz4vZzsKKworLy9Fc2NhcGUgc3RyaW5nCitmdW5jdGlvbiBlc2NhcGVTdHJpbmcoc3RyLCBhdHRyTW9kZSkgeworICAgIHN0ciA9IHN0cgorICAgICAgICAucmVwbGFjZShBTVBfUkVHRVgsICcmYW1wOycpCisgICAgICAgIC5yZXBsYWNlKE5CU1BfUkVHRVgsICcmbmJzcDsnKTsKKworICAgIGlmIChhdHRyTW9kZSkKKyAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoRE9VQkxFX1FVT1RFX1JFR0VYLCAnJnF1b3Q7Jyk7CisKKyAgICBlbHNlIHsKKyAgICAgICAgc3RyID0gc3RyCisgICAgICAgICAgICAucmVwbGFjZShMVF9SRUdFWCwgJyZsdDsnKQorICAgICAgICAgICAgLnJlcGxhY2UoR1RfUkVHRVgsICcmZ3Q7Jyk7CisgICAgfQorCisgICAgcmV0dXJuIHN0cjsKK30KKworCisvL0VucXVvdGUgZG9jdHlwZSBJRAorCisKKworLy9TZXJpYWxpemVyCit2YXIgU2VyaWFsaXplciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRyZWVBZGFwdGVyLCBvcHRpb25zKSB7CisgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyIHx8IERlZmF1bHRUcmVlQWRhcHRlcjsKKyAgICB0aGlzLm9wdGlvbnMgPSBVdGlscy5tZXJnZU9wdGlvbnMoREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTsKK307CisKKworLy9BUEkKK1NlcmlhbGl6ZXIucHJvdG90eXBlLnNlcmlhbGl6ZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgdGhpcy5odG1sID0gJyc7CisgICAgdGhpcy5fc2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlKTsKKworICAgIHJldHVybiB0aGlzLmh0bWw7Cit9OworCisKKy8vSW50ZXJuYWxzCitTZXJpYWxpemVyLnByb3RvdHlwZS5fc2VyaWFsaXplQ2hpbGROb2RlcyA9IGZ1bmN0aW9uIChwYXJlbnROb2RlKSB7CisgICAgdmFyIGNoaWxkTm9kZXMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocGFyZW50Tm9kZSk7CisKKyAgICBpZiAoY2hpbGROb2RlcykgeworICAgICAgICBmb3IgKHZhciBpID0gMCwgY25MZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGNuTGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBjdXJyZW50Tm9kZSA9IGNoaWxkTm9kZXNbaV07CisKKyAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUoY3VycmVudE5vZGUpKQorICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZUVsZW1lbnQoY3VycmVudE5vZGUpOworCisgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnRyZWVBZGFwdGVyLmlzVGV4dE5vZGUoY3VycmVudE5vZGUpKQorICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZVRleHROb2RlKGN1cnJlbnROb2RlKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50cmVlQWRhcHRlci5pc0NvbW1lbnROb2RlKGN1cnJlbnROb2RlKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVDb21tZW50Tm9kZShjdXJyZW50Tm9kZSk7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKGN1cnJlbnROb2RlKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVEb2N1bWVudFR5cGVOb2RlKGN1cnJlbnROb2RlKTsKKyAgICAgICAgfQorICAgIH0KK307CisKK1NlcmlhbGl6ZXIucHJvdG90eXBlLl9zZXJpYWxpemVFbGVtZW50ID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSksCisgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkobm9kZSksCisgICAgICAgIHF1YWxpZmllZFRuID0gKG5zID09PSBOUy5IVE1MIHx8IG5zID09PSBOUy5TVkcgfHwgbnMgPT09IE5TLk1BVEhNTCkgPyB0biA6IChucyArICc6JyArIHRuKTsKKworICAgIHRoaXMuaHRtbCArPSAnPCcgKyBxdWFsaWZpZWRUbjsKKyAgICB0aGlzLl9zZXJpYWxpemVBdHRyaWJ1dGVzKG5vZGUpOworICAgIHRoaXMuaHRtbCArPSAnPic7CisKKyAgICBpZiAodG4gIT09ICQuQVJFQSAmJiB0biAhPT0gJC5CQVNFICYmIHRuICE9PSAkLkJBU0VGT05UICYmIHRuICE9PSAkLkJHU09VTkQgJiYgdG4gIT09ICQuQlIgJiYgdG4gIT09ICQuQlIgJiYKKyAgICAgICAgdG4gIT09ICQuQ09MICYmIHRuICE9PSAkLkVNQkVEICYmIHRuICE9PSAkLkZSQU1FICYmIHRuICE9PSAkLkhSICYmIHRuICE9PSAkLklNRyAmJiB0biAhPT0gJC5JTlBVVCAmJgorICAgICAgICB0biAhPT0gJC5LRVlHRU4gJiYgdG4gIT09ICQuTElOSyAmJiB0biAhPT0gJC5NRU5VSVRFTSAmJiB0biAhPT0gJC5NRVRBICYmIHRuICE9PSAkLlBBUkFNICYmIHRuICE9PSAkLlNPVVJDRSAmJgorICAgICAgICB0biAhPT0gJC5UUkFDSyAmJiB0biAhPT0gJC5XQlIpIHsKKworICAgICAgICBpZiAodG4gPT09ICQuUFJFIHx8IHRuID09PSAkLlRFWFRBUkVBIHx8IHRuID09PSAkLkxJU1RJTkcpIHsKKyAgICAgICAgICAgIHZhciBmaXJzdENoaWxkID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKG5vZGUpOworCisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZCAmJiB0aGlzLnRyZWVBZGFwdGVyLmlzVGV4dE5vZGUoZmlyc3RDaGlsZCkpIHsKKyAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGV4dE5vZGVDb250ZW50KGZpcnN0Q2hpbGQpOworCisgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRbMF0gPT09ICdcbicpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuaHRtbCArPSAnXG4nOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdmFyIGNoaWxkTm9kZXNIb2xkZXIgPSB0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTCA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKG5vZGUpWzBdIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlOworCisgICAgICAgIHRoaXMuX3NlcmlhbGl6ZUNoaWxkTm9kZXMoY2hpbGROb2Rlc0hvbGRlcik7CisgICAgICAgIHRoaXMuaHRtbCArPSAnPC8nICsgcXVhbGlmaWVkVG4gKyAnPic7CisgICAgfQorfTsKKworU2VyaWFsaXplci5wcm90b3R5cGUuX3NlcmlhbGl6ZUF0dHJpYnV0ZXMgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHZhciBhdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3Qobm9kZSk7CisKKyAgICBmb3IgKHZhciBpID0gMCwgYXR0cnNMZW5ndGggPSBhdHRycy5sZW5ndGg7IGkgPCBhdHRyc0xlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBhdHRyID0gYXR0cnNbaV0sCisgICAgICAgICAgICB2YWx1ZSA9IHRoaXMub3B0aW9ucy5lbmNvZGVIdG1sRW50aXRpZXMgPyBlc2NhcGVTdHJpbmcoYXR0ci52YWx1ZSwgdHJ1ZSkgOiBhdHRyLnZhbHVlOworCisgICAgICAgIHRoaXMuaHRtbCArPSAnICc7CisKKyAgICAgICAgaWYgKCFhdHRyLm5hbWVzcGFjZSkKKyAgICAgICAgICAgIHRoaXMuaHRtbCArPSBhdHRyLm5hbWU7CisKKyAgICAgICAgZWxzZSBpZiAoYXR0ci5uYW1lc3BhY2UgPT09IE5TLlhNTCkKKyAgICAgICAgICAgIHRoaXMuaHRtbCArPSAneG1sOicgKyBhdHRyLm5hbWU7CisKKyAgICAgICAgZWxzZSBpZiAoYXR0ci5uYW1lc3BhY2UgPT09IE5TLlhNTE5TKSB7CisgICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAneG1sbnMnKQorICAgICAgICAgICAgICAgIHRoaXMuaHRtbCArPSAneG1sbnM6JzsKKworICAgICAgICAgICAgdGhpcy5odG1sICs9IGF0dHIubmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKGF0dHIubmFtZXNwYWNlID09PSBOUy5YTElOSykKKyAgICAgICAgICAgIHRoaXMuaHRtbCArPSAneGxpbms6JyArIGF0dHIubmFtZTsKKworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLmh0bWwgKz0gYXR0ci5uYW1lc3BhY2UgKyAnOicgKyBhdHRyLm5hbWU7CisKKyAgICAgICAgdGhpcy5odG1sICs9ICc9IicgKyB2YWx1ZSArICciJzsKKyAgICB9Cit9OworCitTZXJpYWxpemVyLnByb3RvdHlwZS5fc2VyaWFsaXplVGV4dE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHZhciBjb250ZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRUZXh0Tm9kZUNvbnRlbnQobm9kZSksCisgICAgICAgIHBhcmVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKSwKKyAgICAgICAgcGFyZW50VG4gPSB2b2lkIDA7CisKKyAgICBpZiAocGFyZW50ICYmIHRoaXMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnQpKQorICAgICAgICBwYXJlbnRUbiA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnQpOworCisgICAgaWYgKHBhcmVudFRuID09PSAkLlNUWUxFIHx8IHBhcmVudFRuID09PSAkLlNDUklQVCB8fCBwYXJlbnRUbiA9PT0gJC5YTVAgfHwgcGFyZW50VG4gPT09ICQuSUZSQU1FIHx8CisgICAgICAgIHBhcmVudFRuID09PSAkLk5PRU1CRUQgfHwgcGFyZW50VG4gPT09ICQuTk9GUkFNRVMgfHwgcGFyZW50VG4gPT09ICQuUExBSU5URVhUIHx8IHBhcmVudFRuID09PSAkLk5PU0NSSVBUKSB7CisgICAgICAgIHRoaXMuaHRtbCArPSBjb250ZW50OworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5odG1sICs9IHRoaXMub3B0aW9ucy5lbmNvZGVIdG1sRW50aXRpZXMgPyBlc2NhcGVTdHJpbmcoY29udGVudCwgZmFsc2UpIDogY29udGVudDsKK307CisKK1NlcmlhbGl6ZXIucHJvdG90eXBlLl9zZXJpYWxpemVDb21tZW50Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgdGhpcy5odG1sICs9ICc8IS0tJyArIHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q29tbWVudE5vZGVDb250ZW50KG5vZGUpICsgJy0tPic7Cit9OworCitTZXJpYWxpemVyLnByb3RvdHlwZS5fc2VyaWFsaXplRG9jdW1lbnRUeXBlTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgdmFyIG5hbWUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVOYW1lKG5vZGUpLAorICAgICAgICBwdWJsaWNJZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkKG5vZGUpLAorICAgICAgICBzeXN0ZW1JZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRUeXBlTm9kZVN5c3RlbUlkKG5vZGUpOworCisgICAgdGhpcy5odG1sICs9ICc8JyArIERvY3R5cGUuc2VyaWFsaXplQ29udGVudChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpICsgJz4nOworfTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9zaW1wbGVfYXBpL3NpbXBsZV9hcGlfcGFyc2VyLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3NpbXBsZV9hcGkvc2ltcGxlX2FwaV9wYXJzZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NmYTQ5MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9zaW1wbGVfYXBpL3NpbXBsZV9hcGlfcGFyc2VyLmpzCkBAIC0wLDAgKzEsMTA3IEBACisndXNlIHN0cmljdCc7CisKK3ZhciBUb2tlbml6ZXIgPSByZXF1aXJlKCcuLi90b2tlbml6YXRpb24vdG9rZW5pemVyJyksCisgICAgVG9rZW5pemVyUHJveHkgPSByZXF1aXJlKCcuL3Rva2VuaXplcl9wcm94eScpLAorICAgIFV0aWxzID0gcmVxdWlyZSgnLi4vY29tbW9uL3V0aWxzJyk7CisKKy8vRGVmYXVsdCBvcHRpb25zCit2YXIgREVGQVVMVF9PUFRJT05TID0geworICAgIGRlY29kZUh0bWxFbnRpdGllczogdHJ1ZSwKKyAgICBsb2NhdGlvbkluZm86IGZhbHNlCit9OworCisvL1NraXBwaW5nIGhhbmRsZXIKK2Z1bmN0aW9uIHNraXAoKSB7CisgICAgLy9OT1RFOiBkbyBub3RoaW5nID0pCit9CisKKy8vU2ltcGxlQXBpUGFyc2VyCit2YXIgU2ltcGxlQXBpUGFyc2VyID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaGFuZGxlcnMsIG9wdGlvbnMpIHsKKyAgICB0aGlzLm9wdGlvbnMgPSBVdGlscy5tZXJnZU9wdGlvbnMoREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTsKKyAgICB0aGlzLmhhbmRsZXJzID0geworICAgICAgICBkb2N0eXBlOiB0aGlzLl93cmFwSGFuZGxlcihoYW5kbGVycy5kb2N0eXBlKSwKKyAgICAgICAgc3RhcnRUYWc6IHRoaXMuX3dyYXBIYW5kbGVyKGhhbmRsZXJzLnN0YXJ0VGFnKSwKKyAgICAgICAgZW5kVGFnOiB0aGlzLl93cmFwSGFuZGxlcihoYW5kbGVycy5lbmRUYWcpLAorICAgICAgICB0ZXh0OiB0aGlzLl93cmFwSGFuZGxlcihoYW5kbGVycy50ZXh0KSwKKyAgICAgICAgY29tbWVudDogdGhpcy5fd3JhcEhhbmRsZXIoaGFuZGxlcnMuY29tbWVudCkKKyAgICB9OworfTsKKworU2ltcGxlQXBpUGFyc2VyLnByb3RvdHlwZS5fd3JhcEhhbmRsZXIgPSBmdW5jdGlvbiAoaGFuZGxlcikgeworICAgIHZhciBwYXJzZXIgPSB0aGlzOworCisgICAgaGFuZGxlciA9IGhhbmRsZXIgfHwgc2tpcDsKKworICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb25JbmZvKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7CisgICAgICAgICAgICBhcmdzLnB1c2gocGFyc2VyLmN1cnJlbnRUb2tlbkxvY2F0aW9uKTsKKyAgICAgICAgICAgIGhhbmRsZXIuYXBwbHkoaGFuZGxlciwgYXJncyk7CisgICAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIGhhbmRsZXI7Cit9OworCisvL0FQSQorU2ltcGxlQXBpUGFyc2VyLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uIChodG1sKSB7CisgICAgdmFyIHRva2VuID0gbnVsbDsKKworICAgIHRoaXMuX3Jlc2V0KGh0bWwpOworCisgICAgZG8geworICAgICAgICB0b2tlbiA9IHRoaXMudG9rZW5pemVyUHJveHkuZ2V0TmV4dFRva2VuKCk7CisKKyAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5DSEFSQUNURVJfVE9LRU4gfHwKKyAgICAgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTiB8fAorICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOKSB7CisKKyAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb25JbmZvKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMucGVuZGluZ1RleHQgPT09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuTG9jYXRpb24gPSB0b2tlbi5sb2NhdGlvbjsKKworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9rZW5Mb2NhdGlvbi5lbmQgPSB0b2tlbi5sb2NhdGlvbi5lbmQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMucGVuZGluZ1RleHQgPSAodGhpcy5wZW5kaW5nVGV4dCB8fCAnJykgKyB0b2tlbi5jaGFyczsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhpcy5fZW1pdFBlbmRpbmdUZXh0KCk7CisgICAgICAgICAgICB0aGlzLl9oYW5kbGVUb2tlbih0b2tlbik7CisgICAgICAgIH0KKyAgICB9IHdoaWxlICh0b2tlbi50eXBlICE9PSBUb2tlbml6ZXIuRU9GX1RPS0VOKTsKK307CisKKy8vSW50ZXJuYWxzCitTaW1wbGVBcGlQYXJzZXIucHJvdG90eXBlLl9oYW5kbGVUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYXRpb25JbmZvKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbkxvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247CisKKyAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTikKKyAgICAgICAgdGhpcy5oYW5kbGVycy5zdGFydFRhZyh0b2tlbi50YWdOYW1lLCB0b2tlbi5hdHRycywgdG9rZW4uc2VsZkNsb3NpbmcpOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4pCisgICAgICAgIHRoaXMuaGFuZGxlcnMuZW5kVGFnKHRva2VuLnRhZ05hbWUpOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkNPTU1FTlRfVE9LRU4pCisgICAgICAgIHRoaXMuaGFuZGxlcnMuY29tbWVudCh0b2tlbi5kYXRhKTsKKworICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5ET0NUWVBFX1RPS0VOKQorICAgICAgICB0aGlzLmhhbmRsZXJzLmRvY3R5cGUodG9rZW4ubmFtZSwgdG9rZW4ucHVibGljSWQsIHRva2VuLnN5c3RlbUlkKTsKKworfTsKKworU2ltcGxlQXBpUGFyc2VyLnByb3RvdHlwZS5fcmVzZXQgPSBmdW5jdGlvbiAoaHRtbCkgeworICAgIHRoaXMudG9rZW5pemVyUHJveHkgPSBuZXcgVG9rZW5pemVyUHJveHkoaHRtbCwgdGhpcy5vcHRpb25zKTsKKyAgICB0aGlzLnBlbmRpbmdUZXh0ID0gbnVsbDsKKyAgICB0aGlzLmN1cnJlbnRUb2tlbkxvY2F0aW9uID0gbnVsbDsKK307CisKK1NpbXBsZUFwaVBhcnNlci5wcm90b3R5cGUuX2VtaXRQZW5kaW5nVGV4dCA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAodGhpcy5wZW5kaW5nVGV4dCAhPT0gbnVsbCkgeworICAgICAgICB0aGlzLmhhbmRsZXJzLnRleHQodGhpcy5wZW5kaW5nVGV4dCk7CisgICAgICAgIHRoaXMucGVuZGluZ1RleHQgPSBudWxsOworICAgIH0KK307CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvc2ltcGxlX2FwaS90b2tlbml6ZXJfcHJveHkuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvc2ltcGxlX2FwaS90b2tlbml6ZXJfcHJveHkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxZGQ4NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi9zaW1wbGVfYXBpL3Rva2VuaXplcl9wcm94eS5qcwpAQCAtMCwwICsxLDEyMiBAQAorJ3VzZSBzdHJpY3QnOworCit2YXIgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplcicpLAorICAgIEZvcmVpZ25Db250ZW50ID0gcmVxdWlyZSgnLi4vY29tbW9uL2ZvcmVpZ25fY29udGVudCcpLAorICAgIFVOSUNPREUgPSByZXF1aXJlKCcuLi9jb21tb24vdW5pY29kZScpLAorICAgIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpOworCisvL0FsaWFzZXMKK3ZhciAkID0gSFRNTC5UQUdfTkFNRVMsCisgICAgTlMgPSBIVE1MLk5BTUVTUEFDRVM7CisKKworLy9Ub2tlbml6ZXIgcHJveHkKKy8vTk9URTogdGhpcyBwcm94eSBzaW11bGF0ZXMgYWRqdXN0bWVudCBvZiB0aGUgVG9rZW5pemVyIHdoaWNoIHBlcmZvcm1lZCBieSBzdGFuZGFyZCBwYXJzZXIgZHVyaW5nIHRyZWUgY29uc3RydWN0aW9uLgordmFyIFRva2VuaXplclByb3h5ID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaHRtbCwgb3B0aW9ucykgeworICAgIHRoaXMudG9rZW5pemVyID0gbmV3IFRva2VuaXplcihodG1sLCBvcHRpb25zKTsKKworICAgIHRoaXMubmFtZXNwYWNlU3RhY2sgPSBbXTsKKyAgICB0aGlzLm5hbWVzcGFjZVN0YWNrVG9wID0gLTE7CisgICAgdGhpcy5jdXJyZW50TmFtZXNwYWNlID0gbnVsbDsKKyAgICB0aGlzLmluRm9yZWlnbkNvbnRlbnQgPSBmYWxzZTsKK307CisKKy8vQVBJCitUb2tlbml6ZXJQcm94eS5wcm90b3R5cGUuZ2V0TmV4dFRva2VuID0gZnVuY3Rpb24gKCkgeworICAgIHZhciB0b2tlbiA9IHRoaXMudG9rZW5pemVyLmdldE5leHRUb2tlbigpOworCisgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4pCisgICAgICAgIHRoaXMuX2hhbmRsZVN0YXJ0VGFnVG9rZW4odG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4pCisgICAgICAgIHRoaXMuX2hhbmRsZUVuZFRhZ1Rva2VuKHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTiAmJiB0aGlzLmluRm9yZWlnbkNvbnRlbnQpIHsKKyAgICAgICAgdG9rZW4udHlwZSA9IFRva2VuaXplci5DSEFSQUNURVJfVE9LRU47CisgICAgICAgIHRva2VuLmNoYXJzID0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgfQorCisgICAgcmV0dXJuIHRva2VuOworfTsKKworLy9OYW1lc3BhY2Ugc3RhY2sgbXV0YXRpb25zCitUb2tlbml6ZXJQcm94eS5wcm90b3R5cGUuX2VudGVyTmFtZXNwYWNlID0gZnVuY3Rpb24gKG5hbWVzcGFjZSkgeworICAgIHRoaXMubmFtZXNwYWNlU3RhY2tUb3ArKzsKKyAgICB0aGlzLm5hbWVzcGFjZVN0YWNrLnB1c2gobmFtZXNwYWNlKTsKKworICAgIHRoaXMuaW5Gb3JlaWduQ29udGVudCA9IG5hbWVzcGFjZSAhPT0gTlMuSFRNTDsKKyAgICB0aGlzLmN1cnJlbnROYW1lc3BhY2UgPSBuYW1lc3BhY2U7CisgICAgdGhpcy50b2tlbml6ZXIuYWxsb3dDREFUQSA9IHRoaXMuaW5Gb3JlaWduQ29udGVudDsKK307CisKK1Rva2VuaXplclByb3h5LnByb3RvdHlwZS5fbGVhdmVDdXJyZW50TmFtZXNwYWNlID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMubmFtZXNwYWNlU3RhY2tUb3AtLTsKKyAgICB0aGlzLm5hbWVzcGFjZVN0YWNrLnBvcCgpOworCisgICAgdGhpcy5jdXJyZW50TmFtZXNwYWNlID0gdGhpcy5uYW1lc3BhY2VTdGFja1t0aGlzLm5hbWVzcGFjZVN0YWNrVG9wXTsKKyAgICB0aGlzLmluRm9yZWlnbkNvbnRlbnQgPSB0aGlzLmN1cnJlbnROYW1lc3BhY2UgIT09IE5TLkhUTUw7CisgICAgdGhpcy50b2tlbml6ZXIuYWxsb3dDREFUQSA9IHRoaXMuaW5Gb3JlaWduQ29udGVudDsKK307CisKKy8vVG9rZW4gaGFuZGxlcnMKK1Rva2VuaXplclByb3h5LnByb3RvdHlwZS5fZW5zdXJlVG9rZW5pemVyTW9kZSA9IGZ1bmN0aW9uICh0bikgeworICAgIGlmICh0biA9PT0gJC5URVhUQVJFQSB8fCB0biA9PT0gJC5USVRMRSkKKyAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQ0RBVEE7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5QTEFJTlRFWFQpCisgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUExBSU5URVhUOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKQorICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlNDUklQVF9EQVRBOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuU1RZTEUgfHwgdG4gPT09ICQuSUZSQU1FIHx8IHRuID09PSAkLlhNUCB8fAorICAgICAgICAgICAgIHRuID09PSAkLk5PRU1CRUQgfHwgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuTk9TQ1JJUFQpIHsKKyAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQVdURVhUOworICAgIH0KK307CisKK1Rva2VuaXplclByb3h5LnByb3RvdHlwZS5faGFuZGxlU3RhcnRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuU1ZHKQorICAgICAgICB0aGlzLl9lbnRlck5hbWVzcGFjZShOUy5TVkcpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuTUFUSCkKKyAgICAgICAgdGhpcy5fZW50ZXJOYW1lc3BhY2UoTlMuTUFUSE1MKTsKKworICAgIGVsc2UgeworICAgICAgICBpZiAodGhpcy5pbkZvcmVpZ25Db250ZW50KSB7CisgICAgICAgICAgICBpZiAoRm9yZWlnbkNvbnRlbnQuY2F1c2VzRXhpdCh0b2tlbikpCisgICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVDdXJyZW50TmFtZXNwYWNlKCk7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKEZvcmVpZ25Db250ZW50LmlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIHRoaXMuY3VycmVudE5hbWVzcGFjZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgIEZvcmVpZ25Db250ZW50LmlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIHRoaXMuY3VycmVudE5hbWVzcGFjZSwgdG9rZW4uYXR0cnMpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZW50ZXJOYW1lc3BhY2UoTlMuSFRNTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9lbnN1cmVUb2tlbml6ZXJNb2RlKHRuKTsKKyAgICB9Cit9OworCitUb2tlbml6ZXJQcm94eS5wcm90b3R5cGUuX2hhbmRsZUVuZFRhZ1Rva2VuID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICghdGhpcy5pbkZvcmVpZ25Db250ZW50KSB7CisgICAgICAgIHZhciBwcmV2aW91c05zID0gdGhpcy5uYW1lc3BhY2VTdGFja1t0aGlzLm5hbWVzcGFjZVN0YWNrVG9wIC0gMV07CisKKyAgICAgICAgLy9OT1RFOiBjaGVjayBmb3IgZXhpdCBmcm9tIGludGVncmF0aW9uIHBvaW50CisgICAgICAgIGlmIChGb3JlaWduQ29udGVudC5pc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBwcmV2aW91c05zKSB8fAorICAgICAgICAgICAgRm9yZWlnbkNvbnRlbnQuaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgcHJldmlvdXNOcywgdG9rZW4uYXR0cnMpKSB7CisgICAgICAgICAgICB0aGlzLl9sZWF2ZUN1cnJlbnROYW1lc3BhY2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNDUklQVCkKKyAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuREFUQTsKKyAgICB9CisKKyAgICBlbHNlIGlmICgodG4gPT09ICQuU1ZHICYmIHRoaXMuY3VycmVudE5hbWVzcGFjZSA9PT0gTlMuU1ZHKSB8fAorICAgICAgICAgICAgICh0biA9PT0gJC5NQVRIICYmIHRoaXMuY3VycmVudE5hbWVzcGFjZSA9PT0gTlMuTUFUSE1MKSkKKyAgICAgICAgdGhpcy5fbGVhdmVDdXJyZW50TmFtZXNwYWNlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3Rva2VuaXphdGlvbi9sb2NhdGlvbl9pbmZvX21peGluLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3Rva2VuaXphdGlvbi9sb2NhdGlvbl9pbmZvX21peGluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNTJlZjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdG9rZW5pemF0aW9uL2xvY2F0aW9uX2luZm9fbWl4aW4uanMKQEAgLTAsMCArMSw4MCBAQAorJ3VzZSBzdHJpY3QnOworCitleHBvcnRzLmFzc2lnbiA9IGZ1bmN0aW9uICh0b2tlbml6ZXIpIHsKKyAgICAvL05PVEU6IG9idGFpbiBUb2tlbml6ZXIgcHJvdG8gdGhpcyB3YXkgdG8gYXZvaWQgbW9kdWxlIGNpcmN1bGFyIHJlZmVyZW5jZXMKKyAgICB2YXIgdG9rZW5pemVyUHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodG9rZW5pemVyKTsKKworICAgIHRva2VuaXplci50b2tlblN0YXJ0TG9jID0gLTE7CisKKyAgICAvL05PVEU6IGFkZCBsb2NhdGlvbiBpbmZvIGJ1aWxkZXIgbWV0aG9kCisgICAgdG9rZW5pemVyLl9hdHRhY2hMb2NhdGlvbkluZm8gPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgdG9rZW4ubG9jYXRpb24gPSB7CisgICAgICAgICAgICBzdGFydDogdGhpcy50b2tlblN0YXJ0TG9jLAorICAgICAgICAgICAgZW5kOiAtMQorICAgICAgICB9OworICAgIH07CisKKyAgICAvL05PVEU6IHBhdGNoIHRva2VuIGNyZWF0aW9uIG1ldGhvZHMgYW5kIGF0dGFjaCBsb2NhdGlvbiBvYmplY3RzCisgICAgdG9rZW5pemVyLl9jcmVhdGVTdGFydFRhZ1Rva2VuID0gZnVuY3Rpb24gKHRhZ05hbWVGaXJzdENoKSB7CisgICAgICAgIHRva2VuaXplclByb3RvLl9jcmVhdGVTdGFydFRhZ1Rva2VuLmNhbGwodGhpcywgdGFnTmFtZUZpcnN0Q2gpOworICAgICAgICB0aGlzLl9hdHRhY2hMb2NhdGlvbkluZm8odGhpcy5jdXJyZW50VG9rZW4pOworICAgIH07CisKKyAgICB0b2tlbml6ZXIuX2NyZWF0ZUVuZFRhZ1Rva2VuID0gZnVuY3Rpb24gKHRhZ05hbWVGaXJzdENoKSB7CisgICAgICAgIHRva2VuaXplclByb3RvLl9jcmVhdGVFbmRUYWdUb2tlbi5jYWxsKHRoaXMsIHRhZ05hbWVGaXJzdENoKTsKKyAgICAgICAgdGhpcy5fYXR0YWNoTG9jYXRpb25JbmZvKHRoaXMuY3VycmVudFRva2VuKTsKKyAgICB9OworCisgICAgdG9rZW5pemVyLl9jcmVhdGVDb21tZW50VG9rZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRva2VuaXplclByb3RvLl9jcmVhdGVDb21tZW50VG9rZW4uY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5fYXR0YWNoTG9jYXRpb25JbmZvKHRoaXMuY3VycmVudFRva2VuKTsKKyAgICB9OworCisgICAgdG9rZW5pemVyLl9jcmVhdGVEb2N0eXBlVG9rZW4gPSBmdW5jdGlvbiAoZG9jdHlwZU5hbWVGaXJzdENoKSB7CisgICAgICAgIHRva2VuaXplclByb3RvLl9jcmVhdGVEb2N0eXBlVG9rZW4uY2FsbCh0aGlzLCBkb2N0eXBlTmFtZUZpcnN0Q2gpOworICAgICAgICB0aGlzLl9hdHRhY2hMb2NhdGlvbkluZm8odGhpcy5jdXJyZW50VG9rZW4pOworICAgIH07CisKKyAgICB0b2tlbml6ZXIuX2NyZWF0ZUNoYXJhY3RlclRva2VuID0gZnVuY3Rpb24gKHR5cGUsIGNoKSB7CisgICAgICAgIHRva2VuaXplclByb3RvLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbi5jYWxsKHRoaXMsIHR5cGUsIGNoKTsKKyAgICAgICAgdGhpcy5fYXR0YWNoTG9jYXRpb25JbmZvKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTsKKyAgICB9OworCisgICAgLy9OT1RFOiBwYXRjaCB0b2tlbiBlbWlzc2lvbiBtZXRob2RzIHRvIGRldGVybWluZSBlbmQgbG9jYXRpb24KKyAgICB0b2tlbml6ZXIuX2VtaXRDdXJyZW50VG9rZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBwZW5kaW5nIGNoYXJhY3RlciB0b2tlbiBtYWtlIGl0J3MgZW5kIGxvY2F0aW9uIGVxdWFsIHRvIHRoZQorICAgICAgICAvL2N1cnJlbnQgdG9rZW4ncyBzdGFydCBsb2NhdGlvbi4KKyAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKQorICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kID0gdGhpcy5jdXJyZW50VG9rZW4ubG9jYXRpb24uc3RhcnQ7CisKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ubG9jYXRpb24uZW5kID0gdGhpcy5wcmVwcm9jZXNzb3IucG9zICsgMTsKKyAgICAgICAgdG9rZW5pemVyUHJvdG8uX2VtaXRDdXJyZW50VG9rZW4uY2FsbCh0aGlzKTsKKyAgICB9OworCisgICAgdG9rZW5pemVyLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuID0gZnVuY3Rpb24gKCkgeworICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgY2hhcmFjdGVyIHRva2VuIGFuZCBpdCdzIGxvY2F0aW9uIHdhc24ndCBzZXQgaW4gdGhlIF9lbWl0Q3VycmVudFRva2VuKCksCisgICAgICAgIC8vdGhlbiBzZXQgaXQncyBsb2NhdGlvbiBhdCB0aGUgY3VycmVudCBwcmVwcm9jZXNzb3IgcG9zaXRpb24KKyAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZCA9PT0gLTEpIHsKKyAgICAgICAgICAgIC8vTk9URTogd2UgZG9uJ3QgbmVlZCB0byBpbmNyZW1lbnQgcHJlcHJvY2Vzc29yIHBvc2l0aW9uLCBzaW5jZSBjaGFyYWN0ZXIgdG9rZW4KKyAgICAgICAgICAgIC8vZW1pc3Npb24gaXMgYWx3YXlzIGZvcmNlZCBieSB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY2hhcmFjdGVyIHRva2VuIGhlcmUuCisgICAgICAgICAgICAvL1NvLCB3ZSBhbHJlYWR5IGhhdmUgYWR2YW5jZWQgcG9zaXRpb24uCisgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmQgPSB0aGlzLnByZXByb2Nlc3Nvci5wb3M7CisgICAgICAgIH0KKworICAgICAgICB0b2tlbml6ZXJQcm90by5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5jYWxsKHRoaXMpOworICAgIH07CisKKyAgICAvL05PVEU6IHBhdGNoIGluaXRpYWwgc3RhdGVzIGZvciBlYWNoIG1vZGUgdG8gb2J0YWluIHRva2VuIHN0YXJ0IHBvc2l0aW9uCisgICAgT2JqZWN0LmtleXModG9rZW5pemVyUHJvdG8uTU9ERSkKKworICAgICAgICAubWFwKGZ1bmN0aW9uIChtb2RlTmFtZSkgeworICAgICAgICAgICAgcmV0dXJuIHRva2VuaXplclByb3RvLk1PREVbbW9kZU5hbWVdOworICAgICAgICB9KQorCisgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChzdGF0ZSkgeworICAgICAgICAgICAgdG9rZW5pemVyW3N0YXRlXSA9IGZ1bmN0aW9uIChjcCkgeworICAgICAgICAgICAgICAgIHRoaXMudG9rZW5TdGFydExvYyA9IHRoaXMucHJlcHJvY2Vzc29yLnBvczsKKyAgICAgICAgICAgICAgICB0b2tlbml6ZXJQcm90b1tzdGF0ZV0uY2FsbCh0aGlzLCBjcCk7CisgICAgICAgICAgICB9OworICAgICAgICB9KTsKK307CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdG9rZW5pemF0aW9uL25hbWVkX2VudGl0eV90cmllLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3Rva2VuaXphdGlvbi9uYW1lZF9lbnRpdHlfdHJpZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTQyMWM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3Rva2VuaXphdGlvbi9uYW1lZF9lbnRpdHlfdHJpZS5qcwpAQCAtMCwwICsxLDYgQEAKKyd1c2Ugc3RyaWN0JzsKKworLy9OT1RFOiB0aGlzIGZpbGUgY29udGFpbnMgYXV0byBnZW5lcmF0ZWQgdHJpZSBzdHJ1Y3R1cmUgdGhhdCBpcyB1c2VkIGZvciBuYW1lZCBlbnRpdHkgcmVmZXJlbmNlcyBjb25zdW1wdGlvbgorLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90b2tlbml6YXRpb24uaHRtbCN0b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzIGFuZAorLy9odHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy5odG1sI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzKQorbW9kdWxlLmV4cG9ydHMgPSB7NjU6e2w6ezY5OntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMTk4XX19LGM6WzE5OF19fX19fX19LDc3OntsOns4MDp7bDp7NTk6e2M6WzM4XX19LGM6WzM4XX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsxOTNdfX0sYzpbMTkzXX19fX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjU4XX19fX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsxOTRdfX0sYzpbMTk0XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNDBdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNjhdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzE5Ml19fSxjOlsxOTJdfX19fX19fX19LDEwODp7bDp7MTEyOntsOnsxMDQ6e2w6ezk3OntsOns1OTp7YzpbOTEzXX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjU2XX19fX19fX19fSwxMTA6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODM1XX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI2MF19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTIwXX19fX19fX0sMTEyOntsOnsxMTI6e2w6ezEwODp7bDp7MTIxOntsOns3MDp7bDp7MTE3OntsOnsxMTA6e2w6ezk5OntsOnsxMTY6e2w6ezEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4Mjg5XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMTk3XX19LGM6WzE5N119fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk2NF19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTAzOntsOnsxMTA6e2w6ezU5OntjOls4Nzg4XX19fX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMTk1XX19LGM6WzE5NV19fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzE5Nl19fSxjOlsxOTZdfX19fX19fSw2Njp7bDp7OTc6e2w6ezk5OntsOnsxMDc6e2w6ezExNTp7bDp7MTA4OntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4NzI2XX19fX19fX19fX19fX19fSwxMTQ6e2w6ezExODp7bDp7NTk6e2M6WzEwOTgzXX19fSwxMTk6e2w6ezEwMTp7bDp7MTAwOntsOns1OTp7YzpbODk2Nl19fX19fX19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA0MV19fX19fSwxMDE6e2w6ezk5OntsOns5Nzp7bDp7MTE3OntsOnsxMTU6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NTddfX19fX19fX19fX0sMTE0OntsOnsxMTA6e2w6ezExMTp7bDp7MTE3OntsOnsxMDg6e2w6ezEwODp7bDp7MTA1OntsOnsxMTU6e2w6ezU5OntjOls4NDkyXX19fX19fX19fX19fX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5MTRdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA2OV19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTIxXX19fX19fX0sMTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbNzI4XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDkyXX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezExMjp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4NzgyXX19fX19fX19fX19fX0sNjc6e2w6ezcyOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA2M119fX19fX19LDc5OntsOns4MDp7bDp7ODk6e2w6ezU5OntjOlsxNjldfX0sYzpbMTY5XX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzI2Ml19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODkxNF19LDEwNTp7bDp7MTE2OntsOns5Nzp7bDp7MTA4OntsOns2ODp7bDp7MTA1OntsOnsxMDI6e2w6ezEwMjp7bDp7MTAxOntsOnsxMTQ6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwNTp7bDp7OTc6e2w6ezEwODp7bDp7Njg6e2w6ezU5OntjOls4NTE3XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTIxOntsOnsxMDg6e2w6ezEwMTp7bDp7MTIxOntsOnsxMTU6e2w6ezU5OntjOls4NDkzXX19fX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjY4XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsxOTldfX0sYzpbMTk5XX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjY0XX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzUyXX19fX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzI2Nl19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7MTA4OntsOns5Nzp7bDp7NTk6e2M6WzE4NF19fX19fX19fX19fSwxMTA6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzE4M119fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6Wzg0OTNdfX19fX0sMTA0OntsOnsxMDU6e2w6ezU5OntjOls5MzVdfX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOnsxMDg6e2w6ezEwMTp7bDp7Njg6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODg1N119fX19fX19LDc3OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODU0XX19fX19fX19fX19LDgwOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg1M119fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NTVdfX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTExOntsOns5OTp7bDp7MTA3OntsOnsxMTk6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMTE6e2w6ezExNzp7bDp7MTE0OntsOns3Mzp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzU0XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDE6e2w6ezY3OntsOnsxMTc6e2w6ezExNDp7bDp7MTA4OntsOnsxMjE6e2w6ezY4OntsOnsxMTE6e2w6ezExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns4MTp7bDp7MTE3OntsOnsxMTE6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbODIyMV19fX19fX19fX19fX19fX19fX19fX19fSw4MTp7bDp7MTE3OntsOnsxMTE6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbODIxN119fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4NzU5XX0sMTAxOntsOns1OTp7YzpbMTA4NjhdfX19fX19fX19LDExMDp7bDp7MTAzOntsOnsxMTQ6e2w6ezExNzp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MDFdfX19fX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1MV19fX19fX19LDExNjp7bDp7MTExOntsOnsxMTc6e2w6ezExNDp7bDp7NzM6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc1MF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOls4NDUwXX19fSwxMTQ6e2w6ezExMTp7bDp7MTAwOntsOnsxMTc6e2w6ezk5OntsOnsxMTY6e2w6ezU5OntjOls4NzIwXX19fX19fX19fX19fX19fSwxMTc6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7Njc6e2w6ezEwODp7bDp7MTExOntsOns5OTp7bDp7MTA3OntsOnsxMTk6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMTE6e2w6ezExNzp7bDp7MTE0OntsOns3Mzp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzU1XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMTE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbMTA3OTldfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk2Nl19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODkxNV19LDY3OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODc4MV19fX19fX19fX19fX19LDY4OntsOns2ODp7bDp7NTk6e2M6Wzg1MTddfSwxMTE6e2w6ezExNjp7bDp7MTE0OntsOns5Nzp7bDp7MTA0OntsOnsxMDA6e2w6ezU5OntjOlsxMDUxM119fX19fX19fX19fX19fX0sNzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDI2XX19fX19fX0sODM6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDI5XX19fX19fX0sOTA6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM5XX19fX19fX0sOTc6e2w6ezEwMzp7bDp7MTAzOntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6WzgyMjVdfX19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwOV19fX19fSwxMTU6e2w6ezEwNDp7bDp7MTE4OntsOns1OTp7YzpbMTA5ODBdfX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI3MF19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA0NF19fX19fSwxMDE6e2w6ezEwODp7bDp7NTk6e2M6Wzg3MTFdfSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTE2XX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3MV19fX19fSwxMDU6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOnsxMDU6e2w6ezExNjp7bDp7MTA1OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NjU6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMTgwXX19fX19fX19fX19LDY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzcyOV19fX0sMTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY1OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzczM119fX19fX19fX19fX19fX19fX19fX19fSw3MTp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOls5Nl19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbNzMyXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMDk6e2w6ezExMTp7bDp7MTEwOntsOnsxMDA6e2w6ezU5OntjOls4OTAwXX19fX19fX19fX19LDEwMjp7bDp7MTAyOntsOnsxMDE6e2w6ezExNDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOns2ODp7bDp7NTk6e2M6Wzg1MThdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTIzXX19fX19LDExNjp7bDp7NTk6e2M6WzE2OF19LDY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg0MTJdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4Nzg0XX19fX19fX19fX19fX0sMTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMTE6e2w6ezExNzp7bDp7MTE0OntsOns3Mzp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzUxXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTY4XX19fSwxMTk6e2w6ezExMDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTldfX19fX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTZdfX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NjBdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6WzEwOTgwXX19fX19fX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzMl19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzRdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMzXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU4XX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NzJdfX19fX19fX19fX19fX19fX0sODU6e2w6ezExMjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTddfX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjYxXX19fX19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE2OntsOnsxMDU6e2w6ezk5OntsOns5Nzp7bDp7MTA4OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg3NDFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTk6e2w6ezExMDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTVdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTE1XX19fX19fX0sODU6e2w6ezExMjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2OTNdfX19fX19fX19fX19fX19fX19fX19fX19fSw2Njp7bDp7MTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbNzg1XX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc2XX19fX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5MF19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODYzN119LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODJdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5MV19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODY0MV19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODNdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg2OF19LDY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjE1XX19fX19fX19fX19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU5XX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk2N119fX19fSwxMTY6e2w6ezExNDp7bDp7MTExOntsOnsxMDc6e2w6ezU5OntjOlsyNzJdfX19fX19fX19fX19fSw2OTp7bDp7Nzg6e2w6ezcxOntsOns1OTp7YzpbMzMwXX19fX19LDg0OntsOns3Mjp7bDp7NTk6e2M6WzIwOF19fSxjOlsyMDhdfX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIwMV19fSxjOlsyMDFdfX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI4Ml19fX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjAyXX19LGM6WzIwMl19fX19fSwxMjE6e2w6ezU5OntjOlsxMDY5XX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsyNzhdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3Ml19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjAwXX19LGM6WzIwMF19fX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTJdfX19fX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjc0XX19fX19fX0sMTEyOntsOnsxMTY6e2w6ezEyMTp7bDp7ODM6e2w6ezEwOTp7bDp7OTc6e2w6ezEwODp7bDp7MTA4OntsOns4Mzp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzk3MjNdfX19fX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7MTE0OntsOnsxMjE6e2w6ezgzOntsOnsxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7ODM6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NjQzXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyODBdfX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyNF19fX19fX19LDExMjp7bDp7MTE1OntsOnsxMDU6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls5MTddfX19fX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwODY5XX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzBdfX19fX19fX19fX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezk4OntsOnsxMTQ6e2w6ezEwNTp7bDp7MTE3OntsOnsxMDk6e2w6ezU5OntjOls4NjUyXX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDk2XX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbMTA4NjddfX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTE5XX19fX19LDExNzp7bDp7MTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMDNdfX0sYzpbMjAzXX19fX19LDEyMDp7bDp7MTA1OntsOnsxMTU6e2w6ezExNjp7bDp7MTE1OntsOns1OTp7YzpbODcwN119fX19fX19fX0sMTEyOntsOnsxMTE6e2w6ezExMDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOns2OTp7bDp7NTk6e2M6Wzg1MTldfX19fX19fX19fX19fX19fX19fX19fX19fSw3MDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjBdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzNdfX19fX0sMTA1OntsOnsxMDg6e2w6ezEwODp7bDp7MTAxOntsOnsxMDA6e2w6ezgzOntsOnsxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7ODM6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NzI0XX19fX19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTIxOntsOns4Mzp7bDp7MTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezgzOntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns1OTp7YzpbOTY0Ml19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTI1XX19fX19LDExNDp7bDp7NjU6e2w6ezEwODp7bDp7MTA4OntsOns1OTp7YzpbODcwNF19fX19fX19fX0sMTE3OntsOnsxMTQ6e2w6ezEwNTp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTE0OntsOnsxMDI6e2w6ezU5OntjOls4NDk3XX19fX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5N119fX19fX19fX0sNzE6e2w6ezc0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyN119fX19fX19LDg0OntsOns1OTp7YzpbNjJdfX0sYzpbNjJdfSw5Nzp7bDp7MTA5OntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTE1XX0sMTAwOntsOns1OTp7YzpbOTg4XX19fX19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyODZdfX19fX19fX19fX0sOTk6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzI5MF19fX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjg0XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA0M119fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMjg4XX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzRdfX19fX0sMTAzOntsOns1OTp7YzpbODkyMV19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyNl19fX19fX19LDExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgwNV19LDc2OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODkyM119fX19fX19fX19fX19fX19fX19LDcwOntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODA3XX19fX19fX19fX19fX19fX19fX0sNzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6WzEwOTE0XX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjNdfX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA4NzhdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODE5XX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk3MF19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTFdfX19fX0sNzI6e2w6ezY1OntsOns4Mjp7bDp7Njg6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDY2XX19fX19fX19fX19LDk3OntsOns5OTp7bDp7MTAxOntsOnsxMDc6e2w6ezU5OntjOls3MTFdfX19fX19fSwxMTY6e2w6ezU5OntjOls5NF19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjkyXX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NjBdfX19fX0sMTA1OntsOnsxMDg6e2w6ezk4OntsOnsxMDE6e2w6ezExNDp7bDp7MTE2OntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6Wzg0NTldfX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NjFdfX19fX0sMTE0OntsOnsxMDU6e2w6ezEyMjp7bDp7MTExOntsOnsxMTA6e2w6ezExNjp7bDp7OTc6e2w6ezEwODp7bDp7NzY6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOls5NDcyXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDU5XX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzI5NF19fX19fX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NzI6e2w6ezExNzp7bDp7MTA5OntsOnsxMTI6e2w6ezU5OntjOls4NzgyXX19fX19fX19fX19fX19fX19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg3ODNdfX19fX19fX19fX19fX19fX19fSw3Mzp7bDp7Njk6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDQ1XX19fX19fX0sNzQ6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlszMDZdfX19fX19fX19LDc5OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyNV19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIwNV19fSxjOlsyMDVdfX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyMDZdfX0sYzpbMjA2XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNDhdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzMwNF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbODQ2NV19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjA0XX19LGM6WzIwNF19fX19fX19fX0sMTA5OntsOns1OTp7YzpbODQ2NV19LDk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjk4XX19fX19LDEwMzp7bDp7MTA1OntsOnsxMTA6e2w6ezk3OntsOnsxMTQ6e2w6ezEyMTp7bDp7NzM6e2w6ezU5OntjOls4NTIwXX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODY1OF19fX19fX19fX19fX19LDExMDp7bDp7MTE2OntsOns1OTp7YzpbODc0OF19LDEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzQ3XX19fX19fX19fSwxMTQ6e2w6ezExNTp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODg5OF19fX19fX19fX19fX19fX19fX19fX0sMTE4OntsOnsxMDU6e2w6ezExNTp7bDp7MTA1OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzgyOTFdfX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzgyOTBdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzMwMl19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTI4XX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5MjFdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDY0XX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlsyOTZdfX19fX19fX19fX0sMTE3OntsOnsxMDc6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDMwXX19fX19fX0sMTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMDddfX0sYzpbMjA3XX19fX19fX0sNzQ6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszMDhdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDQ5XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDc3XX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxMjldfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NzNdfX19fX0sMTAxOntsOnsxMTQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDMyXX19fX19fX19fX19LDExNzp7bDp7MTA3OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyOF19fX19fX19fX19fSw3NTp7bDp7NzI6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDYxXX19fX19fX0sNzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM2XX19fX19fX0sOTc6e2w6ezExMjp7bDp7MTEyOntsOns5Nzp7bDp7NTk6e2M6WzkyMl19fX19fX19fX0sOTk6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMxMF19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA1MF19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3OF19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTMwXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTc0XX19fX19fX19fSw3Njp7bDp7NzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDMzXX19fX19fX0sODQ6e2w6ezU5OntjOls2MF19fSxjOls2MF19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzMxM119fX19fX19fX0sMTA5OntsOns5ODp7bDp7MTAwOntsOns5Nzp7bDp7NTk6e2M6WzkyM119fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOlsxMDIxOF19fX19fSwxMTI6e2w6ezEwODp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezExNjp7bDp7MTE0OntsOnsxMDI6e2w6ezU5OntjOls4NDY2XX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwNl19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzMxN119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzE1XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDUxXX19fX19LDEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezY2OntsOnsxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzEwMjE2XX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTJdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NzZdfX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY0Nl19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDY3OntsOnsxMDE6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbODk2OF19fX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY2OntsOnsxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzEwMjE0XX19fX19fX19fX19fX19fX19fX19fX19LDExOTp7bDp7MTEwOntsOns4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA1OTNdfX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDNdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg1XX19fX19fX19fX19fX19fX19fX19fX19fX19fSw3MDp7bDp7MTA4OntsOnsxMTE6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODk3MF19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5Nl19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc0XX19fX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjddfSw2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxMl19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg2XX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODg4Ml19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA3MDNdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODg0XX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4NTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3N119fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTkyXX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4NjM5XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4NF19fX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MzZdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc4XX19fX19fX19fX19fX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTZdfX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjYwXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTU6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg5MjJdfX19fX19fX19fX19fX19fX19fX19fX19fSw3MDp7bDp7MTE3OntsOnsxMDg6e2w6ezEwODp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgwNl19fX19fX19fX19fX19fX19fX19LDcxOntsOnsxMTQ6e2w6ezEwMTp7bDp7OTc6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4ODIyXX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTEzXX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwODc3XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgxOF19fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3OV19fX19fSwxMDg6e2w6ezU5OntjOls4OTIwXX0sMTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NjZdfX19fX19fX19fX19fX19fX19fSwxMDk6e2w6ezEwNTp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzMxOV19fX19fX19fX19fSwxMTE6e2w6ezExMDp7bDp7MTAzOntsOns3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjI5XX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzMV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzBdfX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMyXX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzRdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzM119fX19fX19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTMxXX19fX19LDExOTp7bDp7MTAxOntsOnsxMTQ6e2w6ezc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYwMV19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjAwXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NjZdfX19fX0sMTA0OntsOns1OTp7YzpbODYyNF19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMzIxXX19fX19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTBdfX19fX0sNzc6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDUwMV19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA1Ml19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4Mjg3XX19fX19fX19fX19fX19fX19fX0sMTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezExNDp7bDp7MTAyOntsOns1OTp7YzpbODQ5OV19fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4MF19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezgwOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODcyM119fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTMyXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5OV19fX19fX19LDExNzp7bDp7NTk6e2M6WzkyNF19fX19fSw3ODp7bDp7NzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM0XX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzIzXX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzMyN119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzI1XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDUzXX19fX19LDEwMTp7bDp7MTAzOntsOns5Nzp7bDp7MTE2OntsOnsxMDU6e2w6ezExODp7bDp7MTAxOntsOns3Nzp7bDp7MTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTE3OntsOnsxMDk6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwM119fX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA0OntsOnsxMDU6e2w6ezk5OntsOnsxMDc6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwM119fX19fX19fX19fX19fX0sMTEwOntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMDNdfX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOnsxMTQ6e2w6ezEyMTp7bDp7ODQ6e2w6ezEwNDp7bDp7MTA1OntsOnsxMTA6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwM119fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTY6e2w6ezEwMTp7bDp7MTAwOntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODgxMV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODEwXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE5OntsOns3Njp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6WzEwXX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODFdfX19fX0sMTExOntsOns2Njp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMDc6e2w6ezU5OntjOls4Mjg4XX19fX19fX19fX19LDExMDp7bDp7NjY6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTA3OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzE2MF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NjldfX19fX0sMTE2OntsOns1OTp7YzpbMTA5ODhdfSw2Nzp7bDp7MTExOntsOnsxMTA6e2w6ezEwMzp7bDp7MTE0OntsOnsxMTc6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4ODAyXX19fX19fX19fX19fX19fX19LDExNzp7bDp7MTEyOntsOns2Nzp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4MTNdfX19fX19fX19fX19fSw2ODp7bDp7MTExOntsOnsxMTc6e2w6ezk4OntsOnsxMDg6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTY6e2w6ezEwNTp7bDp7OTk6e2w6ezk3OntsOnsxMDg6e2w6ezY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODc0Ml19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw2OTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTNdfX19fX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MDBdfSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODc3MCw4MjRdfX19fX19fX19fX19fX19fX19fSwxMjA6e2w6ezEwNTp7bDp7MTE1OntsOnsxMTY6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MDhdfX19fX19fX19fX19fSw3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODgxNV19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MTddfX19fX19fX19fX0sNzA6e2w6ezExNzp7bDp7MTA4OntsOnsxMDg6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MDcsODI0XX19fX19fX19fX19fX19fX19fX0sNzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg4MTEsODI0XX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjVdfX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA4NzgsODI0XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgyMV19fX19fX19fX19fX19fX19fX19fX19fX19LDcyOntsOnsxMTc6e2w6ezEwOTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NzI6e2w6ezExNzp7bDp7MTA5OntsOnsxMTI6e2w6ezU5OntjOls4NzgyLDgyNF19fX19fX19fX19fX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzgzLDgyNF19fX19fX19fX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns4NDp7bDp7MTE0OntsOnsxMDU6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4OTM4XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDcwMyw4MjRdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4OTQwXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODE0XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgxNl19fX19fX19fX19fSw3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODgyNF19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODEwLDgyNF19fX19fX19fX0sODM6e2w6ezEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTE2OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDg3Nyw4MjRdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODIwXX19fX19fX19fX19fX19fX19fX0sNzg6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTY6e2w6ezEwMTp7bDp7MTAwOntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbMTA5MTQsODI0XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTEzLDgyNF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4MDp7bDp7MTE0OntsOnsxMDE6e2w6ezk5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4ODMyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA5MjcsODI0XX19fX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODkyOF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOns2OTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTZdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7ODQ6e2w6ezExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODkzOV19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA3MDQsODI0XX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODk0MV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgzOntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns4Mzp7bDp7MTE3OntsOns5ODp7bDp7MTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDcsODI0XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODkzMF19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ4LDgyNF19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg5MzFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezk4OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNCw4NDAyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg0MF19fX19fX19fX19fX19fX19fX19LDk5OntsOns5OTp7bDp7MTAxOntsOnsxMDE6e2w6ezEwMDp7bDp7MTE1OntsOns1OTp7YzpbODgzM119LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwOTI4LDgyNF19fX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg5MjldfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODMxLDgyNF19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNSw4NDAyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg0MV19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NjldfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzcyXX19fX19fX19fX19LDcwOntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4Nzc1XX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzddfX19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE2OntsOnsxMDU6e2w6ezk5OntsOns5Nzp7bDp7MTA4OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg3NDBdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk3N119fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjA5XX19LGM6WzIwOV19fX19fX19fX0sMTE3OntsOns1OTp7YzpbOTI1XX19fX19LDc5OntsOns2OTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzMzOF19fX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMjExXX19LGM6WzIxMV19fX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzIxMl19fSxjOlsyMTJdfX19fX0sMTIxOntsOns1OTp7YzpbMTA1NF19fX19fSwxMDA6e2w6ezk4OntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzMzNl19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4Ml19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjEwXX19LGM6WzIxMF19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzMzMl19fX19fX19LDEwMTp7bDp7MTAzOntsOns5Nzp7bDp7NTk6e2M6WzkzN119fX19fX19LDEwNTp7bDp7OTk6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls5MjddfX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTM0XX19fX19fX0sMTEyOntsOnsxMDE6e2w6ezExMDp7bDp7Njc6e2w6ezExNzp7bDp7MTE0OntsOnsxMDg6e2w6ezEyMTp7bDp7Njg6e2w6ezExMTp7bDp7MTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezgxOntsOnsxMTc6e2w6ezExMTp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOls4MjIwXX19fX19fX19fX19fX19fX19fX19fX19LDgxOntsOnsxMTc6e2w6ezExMTp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOls4MjE2XX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMDgzNl19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTc4XX19fX19LDEwODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbMjE2XX19LGM6WzIxNl19fX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlsyMTNdfX0sYzpbMjEzXX19fX19LDEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDgwN119fX19fX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjE0XX19LGM6WzIxNF19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTE0OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzgyNTRdfX19fX0sMTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzkxODJdfX19LDEwNzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls5MTQwXX19fX19fX19fX19fX19fSw4MDp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA0OntsOnsxMDE6e2w6ezExNTp7bDp7MTA1OntsOnsxMTU6e2w6ezU5OntjOls5MTgwXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOns2ODp7bDp7NTk6e2M6Wzg3MDZdfX19fX19fX19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDU1XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDgzXX19fX19LDEwNDp7bDp7MTA1OntsOns1OTp7YzpbOTM0XX19fX19LDEwNTp7bDp7NTk6e2M6WzkyOF19fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7Nzc6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzE3N119fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwNTp7bDp7MTEwOntsOns5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMTI6e2w6ezEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTAxOntsOns1OTp7YzpbODQ2MF19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NzNdfX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMDkzOV19LDEwMTp7bDp7OTk6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjZdfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDkyN119fX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MjhdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODMwXX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezU5OntjOls4MjQzXX19fX19fX0sMTExOntsOnsxMDA6e2w6ezExNzp7bDp7OTk6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTldfX19fX19fX19LDExMjp7bDp7MTExOntsOnsxMTQ6e2w6ezExNjp7bDp7MTA1OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg3NTldfSw5Nzp7bDp7MTA4OntsOns1OTp7YzpbODczM119fX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NzldfX19fX0sMTA1OntsOns1OTp7YzpbOTM2XX19fX19fX0sODE6e2w6ezg1OntsOns3OTp7bDp7ODQ6e2w6ezU5OntjOlszNF19fSxjOlszNF19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4NF19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbODQ3NF19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4MF19fX19fX19fX0sODI6e2w6ezY2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUxMl19fX19fX19fX0sNjk6e2w6ezcxOntsOns1OTp7YzpbMTc0XX19LGM6WzE3NF19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzQwXX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjE5XX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwOF19LDExNjp7bDp7MTA4OntsOns1OTp7YzpbMTA1MThdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzQ0XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNDJdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNTZdfX19fX0sMTAxOntsOns1OTp7YzpbODQ3Nl19LDExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOns2OTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTVdfX19fX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMDg6e2w6ezEwNTp7bDp7OTg6e2w6ezExNDp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7NTk6e2M6Wzg2NTFdfX19fX19fX19fX19fX19fX19fX19fX0sODU6e2w6ezExMjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOnsxMDU6e2w6ezEwODp7bDp7MTA1OntsOns5ODp7bDp7MTE0OntsOnsxMDU6e2w6ezExNzp7bDp7MTA5OntsOns1OTp7YzpbMTA2MDddfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbODQ3Nl19fX19fSwxMDQ6e2w6ezExMTp7bDp7NTk6e2M6WzkyOV19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezY2OntsOnsxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzEwMjE3XX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTRdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NzddfX19fX19fSw3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NDRdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNjc6e2w6ezEwMTp7bDp7MTA1OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOls4OTY5XX19fX19fX19fX19fX19fSw2ODp7bDp7MTExOntsOnsxMTc6e2w6ezk4OntsOnsxMDg6e2w6ezEwMTp7bDp7NjY6e2w6ezExNDp7bDp7OTc6e2w6ezk5OntsOnsxMDc6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbMTAyMTVdfX19fX19fX19fX19fX19fX19fX19fX0sMTE5OntsOnsxMTA6e2w6ezg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4OV19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODY0Ml19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODFdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDcwOntsOnsxMDg6e2w6ezExMTp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4OTcxXX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjZdfSw2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxNF19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg3XX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODg4M119LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA3MDRdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODg1XX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4NTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3NV19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg4XX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4NjM4XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4MF19fX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDBdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc5XX19fX19fX19fX19fX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NThdfX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbODQ3N119fX19fSwxMTc6e2w6ezExMDp7bDp7MTAwOntsOns3Mzp7bDp7MTA5OntsOnsxMTI6e2w6ezEwODp7bDp7MTA1OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwNjA4XX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY2N119fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ3NV19fX19fSwxMDQ6e2w6ezU5OntjOls4NjI1XX19fX19LDExNzp7bDp7MTA4OntsOnsxMDE6e2w6ezY4OntsOnsxMDE6e2w6ezEwODp7bDp7OTc6e2w6ezEyMTp7bDp7MTAxOntsOnsxMDA6e2w6ezU5OntjOlsxMDc0MF19fX19fX19fX19fX19fX19fX19fX19fSw4Mzp7bDp7NzI6e2w6ezY3OntsOns3Mjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjVdfX19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDY0XX19fX19fX0sNzk6e2w6ezcwOntsOns4NDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjhdfX19fX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzQ2XX19fX19fX19fX19LDk5OntsOns1OTp7YzpbMTA5NDBdfSw5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM1Ml19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzUwXX19fX19fX19fSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszNDhdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDU3XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDg2XX19fX19LDEwNDp7bDp7MTExOntsOnsxMTQ6e2w6ezExNjp7bDp7Njg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk1XX19fX19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkyXX19fX19fX19fX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTRdfX19fX19fX19fX19fX19fX19fX19LDg1OntsOnsxMTI6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkzXX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTAzOntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTMxXX19fX19fX19fSwxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7Njc6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4NzI4XX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTM4XX19fX19fX0sMTEzOntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MzBdfX19fX0sMTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NjMzXX0sNzM6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE1OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4ODUxXX19fX19fX19fX19fX19fX19fX19fX19fX0sODM6e2w6ezExNzp7bDp7OTg6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ3XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg0OV19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ4XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg1MF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODU6e2w6ezExMDp7bDp7MTA1OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg4NTJdfX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4Ml19fX19fX19LDExNjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg5MDJdfX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbODkxMl19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4OTEyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgzOF19fX19fX19fX19fX19fX19fX19LDk5OntsOns5OTp7bDp7MTAxOntsOnsxMDE6e2w6ezEwMDp7bDp7MTE1OntsOns1OTp7YzpbODgyN119LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwOTI4XX19fX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgyOV19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MzFdfX19fX19fX19fX19fX19fX19fX19LDEwNDp7bDp7ODQ6e2w6ezEwNDp7bDp7OTc6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTVdfX19fX19fX19fX19fSwxMDk6e2w6ezU5OntjOls4NzIxXX19fSwxMTI6e2w6ezU5OntjOls4OTEzXX0sMTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODM1XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgzOV19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MTNdfX19fX19fX19fX19fSw4NDp7bDp7NzI6e2w6ezc5OntsOns4Mjp7bDp7Nzg6e2w6ezU5OntjOlsyMjJdfX0sYzpbMjIyXX19fX19fX0sODI6e2w6ezY1OntsOns2ODp7bDp7Njk6e2w6ezU5OntjOls4NDgyXX19fX19fX19fSw4Mzp7bDp7NzI6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM1XX19fX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjJdfX19fX19fSw5Nzp7bDp7OTg6e2w6ezU5OntjOls5XX19fSwxMTc6e2w6ezU5OntjOls5MzJdfX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzU2XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNTRdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNThdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODddfX19fX0sMTA0OntsOnsxMDE6e2w6ezExNDp7bDp7MTAxOntsOnsxMDI6e2w6ezExMTp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls4NzU2XX19fX19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6WzkyMF19fX19fX19LDEwNTp7bDp7OTk6e2w6ezEwNzp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4Mjg3LDgyMDJdfX19fX19fX19fX19fX19LDExMDp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4MjAxXX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NjRdfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzcxXX19fX19fX19fX19LDcwOntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzczXX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzZdfX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTM5XX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezExMjp7bDp7MTA4OntsOnsxMDE6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg0MTFdfX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTgzXX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzM1OF19fX19fX19fX19fX19LDg1OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMThdfX0sYzpbMjE4XX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjA3XX0sMTExOntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU2OV19fX19fX19fX19fX19fX0sOTg6e2w6ezExNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwMzhdfX19fX0sMTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzM2NF19fX19fX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjE5XX19LGM6WzIxOV19fX19fSwxMjE6e2w6ezU5OntjOlsxMDU5XX19fX19LDEwMDp7bDp7OTg6e2w6ezEwODp7bDp7OTc6e2w6ezk5OntsOns1OTp7YzpbMzY4XX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDg4XX19fX19LDEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyMTddfX0sYzpbMjE3XX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMzYyXX19fX19fX19fSwxMTA6e2w6ezEwMDp7bDp7MTAxOntsOnsxMTQ6e2w6ezY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbOTVdfX19fX0sMTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzkxODNdfX19LDEwNzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls5MTQxXX19fX19fX19fX19fX19fSw4MDp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA0OntsOnsxMDE6e2w6ezExNTp7bDp7MTA1OntsOnsxMTU6e2w6ezU5OntjOls5MTgxXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4ODk5XX0sODA6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODQ2XX19fX19fX19fX19fX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM3MF19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQwXX19fX19fX0sMTEyOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5M119LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1MTRdfX19fX19fSw2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NDVdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk3XX19fX19fX19fX19fX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOnsxMDU6e2w6ezEwODp7bDp7MTA1OntsOns5ODp7bDp7MTE0OntsOnsxMDU6e2w6ezExNzp7bDp7MTA5OntsOns1OTp7YzpbMTA2MDZdfX19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg2OV19LDY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjEzXX19fX19fX19fX19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU3XX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NjFdfX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMTp7bDp7MTE0OntsOns3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OThdfX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5OV19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezU5OntjOls5NzhdfSwxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbOTMzXX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMzY2XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODRdfX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzM2MF19fX19fX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjIwXX19LGM6WzIyMF19fX19fX19LDg2OntsOns2ODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3NV19fX19fX19fX0sOTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDk4N119fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDQyXX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3M119LDEwODp7bDp7NTk6e2M6WzEwOTgyXX19fX19fX19fX19LDEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg5N119fX0sMTE0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzgyMTRdfX19fX19fSwxMTY6e2w6ezU5OntjOls4MjE0XX0sMTA1OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NzM5XX19fX19fX0sNzY6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOlsxMjRdfX19fX19fX19LDgzOntsOnsxMDE6e2w6ezExMjp7bDp7OTc6e2w6ezExNDp7bDp7OTc6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDA3Ml19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4NzY4XX19fX19fX19fX19fX19fX19fX19fSwxMjE6e2w6ezg0OntsOnsxMDQ6e2w6ezEwNTp7bDp7MTEwOntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMDJdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4OV19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQxXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTg1XX19fX19fX0sMTE4OntsOnsxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzRdfX19fX19fX19fX19fSw4Nzp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzM3Ml19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbODg5Nl19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwOTBdfX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0Ml19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4Nl19fX19fX19fX0sODg6e2w6ezEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDkxXX19fX19LDEwNTp7bDp7NTk6e2M6WzkyNl19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0M119fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4N119fX19fX19fX0sODk6e2w6ezY1OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA3MV19fX19fX19LDczOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzMV19fX19fX19LDg1OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA3MF19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIyMV19fSxjOlsyMjFdfX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszNzRdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDY3XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDkyXX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDRdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODhdfX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMzc2XX19fX19fX19fSw5MDp7bDp7NzI6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDQ2XX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzc3XX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM4MV19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA0N119fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMzc5XX19fX19fX0sMTAxOntsOnsxMTQ6e2w6ezExMTp7bDp7ODc6e2w6ezEwNTp7bDp7MTAwOntsOnsxMTY6e2w6ezEwNDp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4MjAzXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6WzkxOF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbODQ4OF19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbODQ4NF19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4OV19fX19fX19fX0sOTc6e2w6ezk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIyNV19fSxjOlsyMjVdfX19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyNTldfX19fX19fX19fX0sOTk6e2w6ezU5OntjOls4NzY2XX0sNjk6e2w6ezU5OntjOls4NzY2LDgxOV19fX0sMTAwOntsOns1OTp7YzpbODc2N119fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjI2XX19LGM6WzIyNl19fX19fSwxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMTgwXX19LGM6WzE4MF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDcyXX19fX19LDEwMTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzIzMF19fSxjOlsyMzBdfX19fX19fSwxMDI6e2w6ezU5OntjOls4Mjg5XX0sMTE0OntsOns1OTp7YzpbMTIwMDk0XX19fX19LDEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyMjRdfX0sYzpbMjI0XX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTU6e2w6ezEyMTp7bDp7MTA5OntsOns1OTp7YzpbODUwMV19fX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezU5OntjOls4NTAxXX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezk3OntsOns1OTp7YzpbOTQ1XX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjU3XX19fX19LDEwODp7bDp7MTAzOntsOns1OTp7YzpbMTA4MTVdfX19fX19fSwxMTI6e2w6ezU5OntjOlszOF19fSxjOlszOF19fX0sMTEwOntsOnsxMDA6e2w6ezU5OntjOls4NzQzXX0sOTc6e2w6ezExMDp7bDp7MTAwOntsOns1OTp7YzpbMTA4MzddfX19fX19fSwxMDA6e2w6ezU5OntjOlsxMDg0NF19fX0sMTE1OntsOnsxMDg6e2w6ezExMTp7bDp7MTEyOntsOnsxMDE6e2w6ezU5OntjOlsxMDg0MF19fX19fX19fX19fSwxMTg6e2w6ezU5OntjOlsxMDg0Ml19fX19fSwxMDM6e2w6ezU5OntjOls4NzM2XX0sMTAxOntsOns1OTp7YzpbMTA2NjBdfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbODczNl19fX19fSwxMDk6e2w6ezExNTp7bDp7MTAwOntsOns1OTp7YzpbODczN119LDk3OntsOns5Nzp7bDp7NTk6e2M6WzEwNjY0XX19fSw5ODp7bDp7NTk6e2M6WzEwNjY1XX19fSw5OTp7bDp7NTk6e2M6WzEwNjY2XX19fSwxMDA6e2w6ezU5OntjOlsxMDY2N119fX0sMTAxOntsOns1OTp7YzpbMTA2NjhdfX19LDEwMjp7bDp7NTk6e2M6WzEwNjY5XX19fSwxMDM6e2w6ezU5OntjOlsxMDY3MF19fX0sMTA0OntsOns1OTp7YzpbMTA2NzFdfX19fX19fX19fX0sMTE0OntsOnsxMTY6e2w6ezU5OntjOls4NzM1XX0sMTE4OntsOns5ODp7bDp7NTk6e2M6Wzg4OTRdfSwxMDA6e2w6ezU5OntjOlsxMDY1M119fX19fX19fX19fSwxMTU6e2w6ezExMjp7bDp7MTA0OntsOns1OTp7YzpbODczOF19fX19fSwxMTY6e2w6ezU5OntjOlsxOTddfX19fX0sMTIyOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls5MDg0XX19fX19fX19fX19fX0sMTExOntsOnsxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjYxXX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDZdfX19fX19fSwxMTI6e2w6ezU5OntjOls4Nzc2XX0sNjk6e2w6ezU5OntjOlsxMDg2NF19fX0sOTc6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwODYzXX19fX19fX19fSwxMDE6e2w6ezU5OntjOls4Nzc4XX19fSwxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3NzldfX19fX0sMTExOntsOnsxMTU6e2w6ezU5OntjOlszOV19fX19fSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOls4Nzc2XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzc4XX19fX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOlsyMjldfX0sYzpbMjI5XX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTkwXX19fX19LDExNjp7bDp7NTk6e2M6WzQyXX19fSwxMjE6e2w6ezEwOTp7bDp7MTEyOntsOns1OTp7YzpbODc3Nl19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc4MV19fX19fX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjI3XX19LGM6WzIyN119fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzIyOF19fSxjOlsyMjhdfX19fX0sMTE5OntsOns5OTp7bDp7MTExOntsOnsxMTA6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzU1XX19fX19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzY5XX19fX19fX19fX19LDk4OntsOns3ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk4OV19fX19fX19LDk3OntsOns5OTp7bDp7MTA3OntsOns5OTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg3ODBdfX19fX19fX19LDEwMTp7bDp7MTEyOntsOnsxMTU6e2w6ezEwNTp7bDp7MTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzEwMTRdfX19fX19fX19fX19fX19LDExMjp7bDp7MTE0OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbODI0NV19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc2NV19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODkwOV19fX19fX19fX19fX19fX0sMTE0OntsOnsxMTg6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg5M119fX19fX19LDExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezU5OntjOls4OTY1XX0sMTAzOntsOnsxMDE6e2w6ezU5OntjOls4OTY1XX19fX19fX19fX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOls5MTQxXX0sMTE2OntsOns5ODp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOls5MTQyXX19fX19fX19fX19fX19fSw5OTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg3ODBdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDczXX19fX19LDEwMDp7bDp7MTEzOntsOnsxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyMjJdfX19fX19fX19LDEwMTp7bDp7OTk6e2w6ezk3OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3NTddfSwxMDE6e2w6ezU5OntjOls4NzU3XX19fX19fX19fX19LDEwOTp7bDp7MTEyOntsOnsxMTY6e2w6ezEyMTp7bDp7MTE4OntsOns1OTp7YzpbMTA2NzJdfX19fX19fX19fX0sMTEyOntsOnsxMTU6e2w6ezEwNTp7bDp7NTk6e2M6WzEwMTRdfX19fX19fSwxMTQ6e2w6ezExMDp7bDp7MTExOntsOnsxMTc6e2w6ezU5OntjOls4NDkyXX19fX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTQ2XX19fSwxMDQ6e2w6ezU5OntjOls4NTAyXX19fSwxMTk6e2w6ezEwMTp7bDp7MTAxOntsOnsxMTA6e2w6ezU5OntjOls4ODEyXX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwOTVdfX19fX0sMTA1OntsOnsxMDM6e2w6ezk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODg5OF19fX19fSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOls5NzExXX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOls4ODk5XX19fX19fX0sMTExOntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA3NTJdfX19fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc1M119fX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDc1NF19fX19fX19fX19fX19LDExNTp7bDp7MTEzOntsOns5OTp7bDp7MTE3OntsOnsxMTI6e2w6ezU5OntjOlsxMDc1OF19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbOTczM119fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7MTAwOntsOnsxMTE6e2w6ezExOTp7bDp7MTEwOntsOns1OTp7YzpbOTY2MV19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOls5NjUxXX19fX19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwNzU2XX19fX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4ODk3XX19fX19fX0sMTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4ODk2XX19fX19fX19fX19fX19fSwxMDc6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTA1MDldfX19fX19fX19fX0sMTA4OntsOns5Nzp7bDp7OTk6e2w6ezEwNzp7bDp7MTA4OntsOnsxMTE6e2w6ezEyMjp7bDp7MTAxOntsOnsxMTA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbMTA3MzFdfX19fX19fX19fX19fX19LDExNTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2NDJdfX19fX19fX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbOTY1Ml19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzk2NjJdfX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzk2NjZdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbOTY1Nl19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExMDp7bDp7MTA3OntsOns1OTp7YzpbOTI1MV19fX19fX19LDEwNzp7bDp7NDk6e2w6ezUwOntsOns1OTp7YzpbOTYxOF19fX0sNTI6e2w6ezU5OntjOls5NjE3XX19fX19LDUxOntsOns1Mjp7bDp7NTk6e2M6Wzk2MTldfX19fX19fSwxMTE6e2w6ezk5OntsOnsxMDc6e2w6ezU5OntjOls5NjA4XX19fX19fX19fSwxMTA6e2w6ezEwMTp7bDp7NTk6e2M6WzYxLDg0MjFdfSwxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMTg6e2w6ezU5OntjOls4ODAxLDg0MjFdfX19fX19fX19fX0sMTExOntsOnsxMTY6e2w6ezU5OntjOls4OTc2XX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0N119fX19fSwxMTY6e2w6ezU5OntjOls4ODY5XX0sMTE2OntsOnsxMTE6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4NjldfX19fX19fX19LDExOTp7bDp7MTE2OntsOnsxMDU6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MDRdfX19fX19fX19LDEyMDp7bDp7Njg6e2w6ezc2OntsOns1OTp7YzpbOTU1OV19fX0sODI6e2w6ezU5OntjOls5NTU2XX19fSwxMDg6e2w6ezU5OntjOls5NTU4XX19fSwxMTQ6e2w6ezU5OntjOls5NTU1XX19fX19LDcyOntsOns1OTp7YzpbOTU1Ml19LDY4OntsOns1OTp7YzpbOTU3NF19fX0sODU6e2w6ezU5OntjOls5NTc3XX19fSwxMDA6e2w6ezU5OntjOls5NTcyXX19fSwxMTc6e2w6ezU5OntjOls5NTc1XX19fX19LDg1OntsOns3Njp7bDp7NTk6e2M6Wzk1NjVdfX19LDgyOntsOns1OTp7YzpbOTU2Ml19fX0sMTA4OntsOns1OTp7YzpbOTU2NF19fX0sMTE0OntsOns1OTp7YzpbOTU2MV19fX19fSw4Njp7bDp7NTk6e2M6Wzk1NTNdfSw3Mjp7bDp7NTk6e2M6Wzk1ODBdfX19LDc2OntsOns1OTp7YzpbOTU3MV19fX0sODI6e2w6ezU5OntjOls5NTY4XX19fSwxMDQ6e2w6ezU5OntjOls5NTc5XX19fSwxMDg6e2w6ezU5OntjOls5NTcwXX19fSwxMTQ6e2w6ezU5OntjOls5NTY3XX19fX19LDk4OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6WzEwNjk3XX19fX19fX0sMTAwOntsOns3Njp7bDp7NTk6e2M6Wzk1NTddfX19LDgyOntsOns1OTp7YzpbOTU1NF19fX0sMTA4OntsOns1OTp7YzpbOTQ4OF19fX0sMTE0OntsOns1OTp7YzpbOTQ4NF19fX19fSwxMDQ6e2w6ezU5OntjOls5NDcyXX0sNjg6e2w6ezU5OntjOls5NTczXX19fSw4NTp7bDp7NTk6e2M6Wzk1NzZdfX19LDEwMDp7bDp7NTk6e2M6Wzk1MTZdfX19LDExNzp7bDp7NTk6e2M6Wzk1MjRdfX19fX0sMTA5OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODYzXX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NjJdfX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODg2NF19fX19fX19fX19fSwxMTc6e2w6ezc2OntsOns1OTp7YzpbOTU2M119fX0sODI6e2w6ezU5OntjOls5NTYwXX19fSwxMDg6e2w6ezU5OntjOls5NDk2XX19fSwxMTQ6e2w6ezU5OntjOls5NDkyXX19fX19LDExODp7bDp7NTk6e2M6Wzk0NzRdfSw3Mjp7bDp7NTk6e2M6Wzk1NzhdfX19LDc2OntsOns1OTp7YzpbOTU2OV19fX0sODI6e2w6ezU5OntjOls5NTY2XX19fSwxMDQ6e2w6ezU5OntjOls5NTMyXX19fSwxMDg6e2w6ezU5OntjOls5NTA4XX19fSwxMTQ6e2w6ezU5OntjOls5NTAwXX19fX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNDVdfX19fX19fX19fX0sMTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbNzI4XX19fX19fX0sMTE4OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzE2Nl19fSxjOlsxNjZdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5MV19fX19fSwxMDE6e2w6ezEwOTp7bDp7MTA1OntsOns1OTp7YzpbODI3MV19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc2NV19LDEwMTp7bDp7NTk6e2M6Wzg5MDldfX19fX19fSwxMTE6e2w6ezEwODp7bDp7NTk6e2M6WzkyXX0sOTg6e2w6ezU5OntjOlsxMDY5M119fX0sMTA0OntsOnsxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezU5OntjOlsxMDE4NF19fX19fX19fX19fX19fX0sMTE3OntsOnsxMDg6e2w6ezEwODp7bDp7NTk6e2M6WzgyMjZdfSwxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzgyMjZdfX19fX19fX19LDEwOTp7bDp7MTEyOntsOns1OTp7YzpbODc4Ml19LDY5OntsOns1OTp7YzpbMTA5MjZdfX19LDEwMTp7bDp7NTk6e2M6Wzg3ODNdfSwxMTM6e2w6ezU5OntjOls4NzgzXX19fX19fX19fX19fX0sOTk6e2w6ezk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzI2M119fX19fX19fX0sMTEyOntsOns1OTp7YzpbODc0NV19LDk3OntsOnsxMTA6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODIwXX19fX19fX0sOTg6e2w6ezExNDp7bDp7OTk6e2w6ezExNzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MjVdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgyN119fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODIzXX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODE2XX19fX19fX0sMTE1OntsOns1OTp7YzpbODc0NSw2NTAyNF19fX19fSwxMTQ6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODI1N119fX19fSwxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzcxMV19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTI6e2w6ezExNTp7bDp7NTk6e2M6WzEwODI5XX19fX19LDExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyNjldfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzIzMV19fSxjOlsyMzFdfX19fX19fSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyNjVdfX19fX19fSwxMTc6e2w6ezExMjp7bDp7MTE1OntsOns1OTp7YzpbMTA4MjhdfSwxMTU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwODMyXX19fX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzI2N119fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzE4NF19fSxjOlsxODRdfX19fX0sMTA5OntsOnsxMTI6e2w6ezExNjp7bDp7MTIxOntsOnsxMTg6e2w6ezU5OntjOlsxMDY3NF19fX19fX19fX19fSwxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzE2Ml19LDEwMTp7bDp7MTE0OntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTgzXX19fX19fX19fX19fSxjOlsxNjJdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwOTZdfX19fX0sMTA0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA5NV19fX19fSwxMDE6e2w6ezk5OntsOnsxMDc6e2w6ezU5OntjOlsxMDAwM119LDEwOTp7bDp7OTc6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTAwMDNdfX19fX19fX19fX19fX19LDEwNTp7bDp7NTk6e2M6Wzk2N119fX19fSwxMDU6e2w6ezExNDp7bDp7NTk6e2M6Wzk2NzVdfSw2OTp7bDp7NTk6e2M6WzEwNjkxXX19fSw5OTp7bDp7NTk6e2M6WzcxMF19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc5MV19fX19fSwxMDg6e2w6ezEwMTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODYzNF19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls4NjM1XX19fX19fX19fX19fX19fX19fX19fSwxMDA6e2w6ezgyOntsOns1OTp7YzpbMTc0XX19fSw4Mzp7bDp7NTk6e2M6Wzk0MTZdfX19LDk3OntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NTldfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbODg1OF19fX19fX19fX0sMTAwOntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4ODYxXX19fX19fX19fX19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg3OTFdfX19LDEwMjp7bDp7MTEwOntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NjhdfX19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6WzEwOTkxXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDY5MF19fX19fX19fX19fX19LDEwODp7bDp7MTE3OntsOns5ODp7bDp7MTE1OntsOns1OTp7YzpbOTgyN119LDExNzp7bDp7MTA1OntsOnsxMTY6e2w6ezU5OntjOls5ODI3XX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls1OF19LDEwMTp7bDp7NTk6e2M6Wzg3ODhdfSwxMTM6e2w6ezU5OntjOls4Nzg4XX19fX19fX19fX19LDEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzQ0XX0sMTE2OntsOns1OTp7YzpbNjRdfX19fX19fSwxMTI6e2w6ezU5OntjOls4NzA1XX0sMTAyOntsOnsxMTA6e2w6ezU5OntjOls4NzI4XX19fX19LDEwODp7bDp7MTAxOntsOnsxMDk6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzA1XX19fX19fX19fSwxMjA6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODQ1MF19fX19fX19fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOls4NzczXX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODYxXX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1MF19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDhdfX19LDExNDp7bDp7MTExOntsOnsxMDA6e2w6ezU5OntjOls4NzIwXX19fX19fX0sMTIxOntsOns1OTp7YzpbMTY5XX0sMTE1OntsOnsxMTQ6e2w6ezU5OntjOls4NDcxXX19fX19fSxjOlsxNjldfX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjI5XX19fX19fX0sMTExOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwMDA3XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5OTJdfX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEwOTU5XX0sMTAxOntsOns1OTp7YzpbMTA5NjFdfX19fX0sMTEyOntsOns1OTp7YzpbMTA5NjBdfSwxMDE6e2w6ezU5OntjOlsxMDk2Ml19fX19fX19fX0sMTE2OntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODk0M119fX19fX19fX0sMTE3OntsOnsxMDA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTA4OntsOns1OTp7YzpbMTA1NTJdfX19LDExNDp7bDp7NTk6e2M6WzEwNTQ5XX19fX19fX19fX19LDEwMTp7bDp7MTEyOntsOnsxMTQ6e2w6ezU5OntjOls4OTI2XX19fX19LDExNTp7bDp7OTk6e2w6ezU5OntjOls4OTI3XX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjMwXX0sMTEyOntsOns1OTp7YzpbMTA1NTddfX19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODc0Nl19LDk4OntsOnsxMTQ6e2w6ezk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MjRdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgyMl19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODI2XX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDVdfX19fX19fSwxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwODIxXX19fX19LDExNTp7bDp7NTk6e2M6Wzg3NDYsNjUwMjRdfX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjMxXX0sMTA5OntsOns1OTp7YzpbMTA1NTZdfX19fX19fX19LDEwODp7bDp7MTIxOntsOnsxMDE6e2w6ezExMzp7bDp7MTEyOntsOnsxMTQ6e2w6ezEwMTp7bDp7OTk6e2w6ezU5OntjOls4OTI2XX19fX19fX19fSwxMTU6e2w6ezExNzp7bDp7OTk6e2w6ezk5OntsOns1OTp7YzpbODkyN119fX19fX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4OTEwXX19fX19fX0sMTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4OTExXX19fX19fX19fX19fX19fSwxMTQ6e2w6ezEwMTp7bDp7MTEwOntsOns1OTp7YzpbMTY0XX19LGM6WzE2NF19fX19fSwxMTg6e2w6ezEwMTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODYzMF19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls4NjMxXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODkxMF19fX19fX19LDExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezU5OntjOls4OTExXX19fX19fX19fSwxMTk6e2w6ezk5OntsOnsxMTE6e2w6ezExMDp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NTRdfX19fX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1M119fX19fX19fX0sMTIxOntsOnsxMDg6e2w6ezk5OntsOnsxMTY6e2w6ezEyMTp7bDp7NTk6e2M6WzkwMDVdfX19fX19fX19fX19fSwxMDA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTldfX19fX19fSw3Mjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTk3XX19fX19fX0sOTc6e2w6ezEwMzp7bDp7MTAzOntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6WzgyMjRdfX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMTY6e2w6ezEwNDp7bDp7NTk6e2M6Wzg1MDRdfX19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5NV19fX19fSwxMTU6e2w6ezEwNDp7bDp7NTk6e2M6WzgyMDhdfSwxMTg6e2w6ezU5OntjOls4ODY3XX19fX19fX19fSw5ODp7bDp7MTA3OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwNTExXX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezk5OntsOns1OTp7YzpbNzMzXX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyNzFdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNzZdfX19fX0sMTAwOntsOns1OTp7YzpbODUxOF19LDk3OntsOnsxMDM6e2w6ezEwMzp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4MjI1XX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTBdfX19fX19fSwxMTE6e2w6ezExNjp7bDp7MTE1OntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwODcxXX19fX19fX19fX19fX0sMTAxOntsOnsxMDM6e2w6ezU5OntjOlsxNzZdfX0sYzpbMTc2XX0sMTA4OntsOnsxMTY6e2w6ezk3OntsOns1OTp7YzpbOTQ4XX19fX19fX0sMTA5OntsOnsxMTI6e2w6ezExNjp7bDp7MTIxOntsOnsxMTg6e2w6ezU5OntjOlsxMDY3M119fX19fX19fX19fX19LDEwMjp7bDp7MTA1OntsOnsxMTU6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbMTA2MjNdfX19fX19fX19LDExNDp7bDp7NTk6e2M6WzEyMDA5N119fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezEwODp7bDp7NTk6e2M6Wzg2NDNdfX19LDExNDp7bDp7NTk6e2M6Wzg2NDJdfX19fX19fX19LDEwNTp7bDp7OTc6e2w6ezEwOTp7bDp7NTk6e2M6Wzg5MDBdfSwxMTE6e2w6ezExMDp7bDp7MTAwOntsOns1OTp7YzpbODkwMF19LDExNTp7bDp7MTE3OntsOnsxMDU6e2w6ezExNjp7bDp7NTk6e2M6Wzk4MzBdfX19fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6Wzk4MzBdfX19fX19fSwxMDE6e2w6ezU5OntjOlsxNjhdfX19LDEwMzp7bDp7OTc6e2w6ezEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6Wzk4OV19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTEwOntsOns1OTp7YzpbODk0Nl19fX19fX19LDExODp7bDp7NTk6e2M6WzI0N119LDEwNTp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlsyNDddfSwxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4OTAzXX19fX19fX19fX19fX19fX0sYzpbMjQ3XX19fX19LDExMTp7bDp7MTEwOntsOnsxMjA6e2w6ezU5OntjOls4OTAzXX19fX19fX19fX19LDEwNjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDZdfX19fX19fSwxMDg6e2w6ezk5OntsOnsxMTE6e2w6ezExNDp7bDp7MTEwOntsOns1OTp7YzpbODk5MF19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4OTczXX19fX19fX19fX19LDExMTp7bDp7MTA4OntsOnsxMDg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlszNl19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDldfX19fX0sMTE2OntsOns1OTp7YzpbNzI5XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzg0XX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODVdfX19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4NzYwXX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjRdfX19fX19fX19LDExNTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjVdfX19fX19fX19fX19fX19LDExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7MTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4OTY2XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE5OntsOnsxMTA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk1XX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY1MF19fX19fX19fX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezExMTp7bDp7MTExOntsOnsxMTA6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg2NDNdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODY0Ml19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7OTg6e2w6ezEwNzp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDUxMl19fX19fX19fX19fX19LDk5OntsOnsxMTE6e2w6ezExNDp7bDp7MTEwOntsOns1OTp7YzpbODk5MV19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4OTcyXX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5M119fX0sMTIxOntsOns1OTp7YzpbMTEwOV19fX19fSwxMTE6e2w6ezEwODp7bDp7NTk6e2M6WzEwNzQyXX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzI3M119fX19fX19fX19fSwxMTY6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTQ1XX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezU5OntjOls5NjYzXX0sMTAyOntsOns1OTp7YzpbOTY2Ml19fX19fX19fX0sMTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjkzXX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDddfX19fX19fX19LDExOTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNjYyXX19fX19fX19fX19fX0sMTIyOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExOV19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDIzOV19fX19fX19fX19fX19fX19fSwxMDE6e2w6ezY4OntsOns2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDg3MV19fX19fX19LDExMTp7bDp7MTE2OntsOns1OTp7YzpbODc4NV19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIzM119fSxjOlsyMzNdfX19fX19fSwxMTU6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOlsxMDg2Ml19fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyODNdfX19fX19fX19LDEwNTp7bDp7MTE0OntsOns1OTp7YzpbODc5MF19LDk5OntsOns1OTp7YzpbMjM0XX19LGM6WzIzNF19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4Nzg5XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMTAxXX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsyNzldfX19fX19fSwxMDE6e2w6ezU5OntjOls4NTE5XX19fSwxMDI6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODZdfX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMjAwOThdfX19fX0sMTAzOntsOns1OTp7YzpbMTA5MDZdfSwxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzIzMl19fSxjOlsyMzJdfX19fX19fSwxMTU6e2w6ezU5OntjOlsxMDkwMl19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDkwNF19fX19fX19fX19fSwxMDg6e2w6ezU5OntjOlsxMDkwNV19LDEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezU5OntjOls5MTkxXX19fX19fX19fX19fX0sMTA4OntsOns1OTp7YzpbODQ2N119fX0sMTE1OntsOns1OTp7YzpbMTA5MDFdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5MDNdfX19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzI3NV19fX19fX19LDExMjp7bDp7MTE2OntsOnsxMjE6e2w6ezU5OntjOls4NzA5XX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MDldfX19fX19fSwxMTg6e2w6ezU5OntjOls4NzA5XX19fX19fX19fSwxMTU6e2w6ezExMjp7bDp7NDk6e2w6ezUxOntsOns1OTp7YzpbODE5Nl19fX0sNTI6e2w6ezU5OntjOls4MTk3XX19fX19LDU5OntjOls4MTk1XX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOlszMzFdfX19LDExNTp7bDp7MTEyOntsOns1OTp7YzpbODE5NF19fX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI4MV19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTUwXX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODkxN119LDExNTp7bDp7MTA4OntsOns1OTp7YzpbMTA3MjNdfX19fX19fX19LDEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDg2NV19fX19fX19LDExNTp7bDp7MTA1OntsOns1OTp7YzpbOTQ5XX0sMTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzk0OV19fX19fX19LDExODp7bDp7NTk6e2M6WzEwMTNdfX19fX19fX19LDExMzp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6Wzg3OTBdfX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4Nzg5XX19fX19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4NzcwXX19fX19LDEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTE2OntsOnsxMDM6e2w6ezExNjp7bDp7MTE0OntsOns1OTp7YzpbMTA5MDJdfX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOlsxMDkwMV19fX19fX19fX19fX19fX19fX19LDExNzp7bDp7OTc6e2w6ezEwODp7bDp7MTE1OntsOns1OTp7YzpbNjFdfX19fX19fSwxMDE6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbODc5OV19fX19fX19LDEwNTp7bDp7MTE4OntsOns1OTp7YzpbODgwMV19LDY4OntsOns2ODp7bDp7NTk6e2M6WzEwODcyXX19fX19fX19fX19LDExODp7bDp7MTEyOntsOns5Nzp7bDp7MTE0OntsOnsxMTU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNzI1XX19fX19fX19fX19fX19fSwxMTQ6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODddfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYwOV19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5NV19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODc4NF19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc3MF19fX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5NTFdfX19LDEwNDp7bDp7NTk6e2M6WzI0MF19fSxjOlsyNDBdfX19LDExNzp7bDp7MTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMzVdfX0sYzpbMjM1XX19fSwxMTQ6e2w6ezExMTp7bDp7NTk6e2M6WzgzNjRdfX19fX19fSwxMjA6e2w6ezk5OntsOnsxMDg6e2w6ezU5OntjOlszM119fX19fSwxMDU6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbODcwN119fX19fX19LDExMjp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOns5Nzp7bDp7MTE2OntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODQ5Nl19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4NTE5XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAyOntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezExNTp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzg2XX19fX19fX19fX19fX19fX19fX19fX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOTJdfX19fX0sMTAxOntsOnsxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzk3OTJdfX19fX19fX19fX0sMTAyOntsOnsxMDU6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI1OV19fX19fX19fX0sMTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzY0MjU2XX19fX19LDEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI2MF19fX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMDk5XX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzY0MjU3XX19fX19fX19fSwxMDY6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlsxMDIsMTA2XX19fX19fX19fSwxMDg6e2w6ezk3OntsOnsxMTY6e2w6ezU5OntjOls5ODM3XX19fX19LDEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI1OF19fX19fX19LDExNjp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls5NjQ5XX19fX19fX19fSwxMTA6e2w6ezExMTp7bDp7MTAyOntsOns1OTp7YzpbNDAyXX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1MV19fX19fSwxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7NTk6e2M6Wzg3MDRdfX19fX19fSwxMDc6e2w6ezU5OntjOls4OTE2XX0sMTE4OntsOns1OTp7YzpbMTA5NjldfX19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE2OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NjVdfX19fX19fX19fX19fX19LDExNDp7bDp7OTc6e2w6ezk5OntsOns0OTp7bDp7NTA6e2w6ezU5OntjOlsxODldfX0sYzpbMTg5XX0sNTE6e2w6ezU5OntjOls4NTMxXX19fSw1Mjp7bDp7NTk6e2M6WzE4OF19fSxjOlsxODhdfSw1Mzp7bDp7NTk6e2M6Wzg1MzNdfX19LDU0OntsOns1OTp7YzpbODUzN119fX0sNTY6e2w6ezU5OntjOls4NTM5XX19fX19LDUwOntsOns1MTp7bDp7NTk6e2M6Wzg1MzJdfX19LDUzOntsOns1OTp7YzpbODUzNF19fX19fSw1MTp7bDp7NTI6e2w6ezU5OntjOlsxOTBdfX0sYzpbMTkwXX0sNTM6e2w6ezU5OntjOls4NTM1XX19fSw1Njp7bDp7NTk6e2M6Wzg1NDBdfX19fX0sNTI6e2w6ezUzOntsOns1OTp7YzpbODUzNl19fX19fSw1Mzp7bDp7NTQ6e2w6ezU5OntjOls4NTM4XX19fSw1Njp7bDp7NTk6e2M6Wzg1NDFdfX19fX0sNTU6e2w6ezU2OntsOns1OTp7YzpbODU0Ml19fX19fX19LDExNTp7bDp7MTA4OntsOns1OTp7YzpbODI2MF19fX19fX19LDExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls4OTk0XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5OTVdfX19fX19fX19LDEwMzp7bDp7Njk6e2w6ezU5OntjOls4ODA3XX0sMTA4OntsOns1OTp7YzpbMTA4OTJdfX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbNTAxXX19fX19fX19fSwxMDk6e2w6ezEwOTp7bDp7OTc6e2w6ezU5OntjOls5NDddfSwxMDA6e2w6ezU5OntjOls5ODldfX19fX19fX19LDExMjp7bDp7NTk6e2M6WzEwODg2XX19fX19LDk4OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyODddfX19fX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzI4NV19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNzVdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzI4OV19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MDVdfSwxMDg6e2w6ezU5OntjOls4OTIzXX19fSwxMTM6e2w6ezU5OntjOls4ODA1XX0sMTEzOntsOns1OTp7YzpbODgwN119fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc4XX19fX19fX19fX19fX0sMTE1OntsOns1OTp7YzpbMTA4NzhdfSw5OTp7bDp7OTk6e2w6ezU5OntjOlsxMDkyMV19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4ODBdfSwxMTE6e2w6ezU5OntjOlsxMDg4Ml19LDEwODp7bDp7NTk6e2M6WzEwODg0XX19fX19fX19fX19LDEwODp7bDp7NTk6e2M6Wzg5MjMsNjUwMjRdfSwxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTAwXX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTAwXX19fX19LDEwMzp7bDp7NTk6e2M6Wzg4MTFdfSwxMDM6e2w6ezU5OntjOls4OTIxXX19fX19LDEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezEwODp7bDp7NTk6e2M6Wzg1MDNdfX19fX19fX19LDEwNjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDddfX19fX19fSwxMDg6e2w6ezU5OntjOls4ODIzXX0sNjk6e2w6ezU5OntjOlsxMDg5OF19fX0sOTc6e2w6ezU5OntjOlsxMDkxN119fX0sMTA2OntsOns1OTp7YzpbMTA5MTZdfX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6Wzg4MDldfX19LDk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDg5MF19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6WzEwODkwXX19fX19fX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA4ODhdfSwxMTM6e2w6ezU5OntjOlsxMDg4OF19LDExMzp7bDp7NTk6e2M6Wzg4MDldfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODkzNV19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1Ml19fX19fX19LDExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbOTZdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NThdfX19fX0sMTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODE5XX0sMTAxOntsOns1OTp7YzpbMTA4OTRdfX19LDEwODp7bDp7NTk6e2M6WzEwODk2XX19fX19fX19fSwxMTY6e2w6ezU5OntjOls2Ml19LDk5OntsOns5OTp7bDp7NTk6e2M6WzEwOTE5XX19fSwxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwODc0XX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MTldfX19fX19fSwxMDg6e2w6ezgwOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2NDVdfX19fX19fX19LDExMzp7bDp7MTE3OntsOnsxMDE6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NzZdfX19fX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDg4Nl19fX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjE2XX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MTldfX19fX19fSwxMDE6e2w6ezExMzp7bDp7MTA4OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODkyM119fX19fX19fX0sMTEzOntsOnsxMDg6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOlsxMDg5Ml19fX19fX19fX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODgyM119fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MTldfX19fX19fX19fSxjOls2Ml19LDExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTEwOntsOnsxMDE6e2w6ezExMzp7bDp7MTEzOntsOns1OTp7YzpbODgwOSw2NTAyNF19fX19fX19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6Wzg4MDksNjUwMjRdfX19fX19fX19LDEwNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY2MF19fX19fX19LDk3OntsOnsxMDU6e2w6ezExNDp7bDp7MTE1OntsOnsxMTI6e2w6ezU5OntjOls4MjAyXX19fX19fX19fSwxMDg6e2w6ezEwMjp7bDp7NTk6e2M6WzE4OV19fX19fSwxMDk6e2w6ezEwNTp7bDp7MTA4OntsOnsxMTY6e2w6ezU5OntjOls4NDU5XX19fX19fX19fSwxMTQ6e2w6ezEwMDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOThdfX19fX19fSwxMTQ6e2w6ezU5OntjOls4NTk2XX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA1NjhdfX19fX19fSwxMTk6e2w6ezU5OntjOls4NjIxXX19fX19fX19fSw5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NjNdfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjkzXX19fX19fX19fSwxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7MTE1OntsOns1OTp7YzpbOTgyOV19LDExNzp7bDp7MTA1OntsOnsxMTY6e2w6ezU5OntjOls5ODI5XX19fX19fX19fX19fX19fSwxMDg6e2w6ezEwODp7bDp7MTA1OntsOnsxMTI6e2w6ezU5OntjOls4MjMwXX19fX19fX19fSwxMTQ6e2w6ezk5OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg4ODldfX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMDFdfX19fX0sMTA3OntsOnsxMTU6e2w6ezEwMTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDUzM119fX19fX19fX19fSwxMTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTA1MzRdfX19fX19fX19fX19fX19LDExMTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODcwM119fX19fX19LDEwOTp7bDp7MTE2OntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NjNdfX19fX19fX19LDExMTp7bDp7MTA3OntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjE3XX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjE4XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTNdfX19fX0sMTE0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzgyMTNdfX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTk3XX19fX19LDEwODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODQ2M119fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMjk1XX19fX19fX19fX19LDEyMTp7bDp7OTg6e2w6ezExNzp7bDp7MTA4OntsOnsxMDg6e2w6ezU5OntjOls4MjU5XX19fX19fX19fSwxMTI6e2w6ezEwNDp7bDp7MTAxOntsOnsxMTA6e2w6ezU5OntjOls4MjA4XX19fX19fX19fX19fX0sMTA1OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMzddfX0sYzpbMjM3XX19fX19fX19fSw5OTp7bDp7NTk6e2M6WzgyOTFdfSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyMzhdfX0sYzpbMjM4XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwODBdfX19fX0sMTAxOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA3N119fX19fSwxMjA6e2w6ezk5OntsOnsxMDg6e2w6ezU5OntjOlsxNjFdfX0sYzpbMTYxXX19fX19fX0sMTAyOntsOnsxMDI6e2w6ezU5OntjOls4NjYwXX19fSwxMTQ6e2w6ezU5OntjOlsxMjAxMDJdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzIzNl19fSxjOlsyMzZdfX19fX19fX19LDEwNTp7bDp7NTk6e2M6Wzg1MjBdfSwxMDU6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDc2NF19fX19fX19LDExMDp7bDp7MTE2OntsOns1OTp7YzpbODc0OV19fX19fX19LDExMDp7bDp7MTAyOntsOnsxMDU6e2w6ezExMDp7bDp7NTk6e2M6WzEwNzE2XX19fX19fX19fSwxMTE6e2w6ezExNjp7bDp7OTc6e2w6ezU5OntjOls4NDg5XX19fX19fX19fSwxMDY6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlszMDddfX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsyOTldfX19fX0sMTAzOntsOnsxMDE6e2w6ezU5OntjOls4NDY1XX19fSwxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOls4NDY0XX19fX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg0NjVdfX19fX19fX19fX0sMTE2OntsOnsxMDQ6e2w6ezU5OntjOlszMDVdfX19fX19fSwxMTE6e2w6ezEwMjp7bDp7NTk6e2M6Wzg4ODddfX19fX0sMTEyOntsOnsxMDE6e2w6ezEwMDp7bDp7NTk6e2M6WzQzN119fX19fX19fX0sMTEwOntsOns1OTp7YzpbODcxMl19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls4NDUzXX19fX19fX19fSwxMDI6e2w6ezEwNTp7bDp7MTEwOntsOns1OTp7YzpbODczNF19LDExNjp7bDp7MTA1OntsOnsxMDE6e2w6ezU5OntjOlsxMDcxN119fX19fX19fX19fX19LDExMTp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzMwNV19fX19fX19fX0sMTE2OntsOns1OTp7YzpbODc0N119LDk5OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg5MF19fX19fX19LDEwMTp7bDp7MTAzOntsOnsxMDE6e2w6ezExNDp7bDp7MTE1OntsOns1OTp7YzpbODQ4NF19fX19fX19fX0sMTE0OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4OTBdfX19fX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNzc1XX19fX19fX19fX19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODEyXX19fX19fX19fX19fX0sMTExOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTEwNV19fX19fSwxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzAzXX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTRdfX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk1M119fX19fX19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODEyXX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7MTAxOntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6WzE5MV19fSxjOlsxOTFdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5OF19fX19fSwxMDU6e2w6ezExMDp7bDp7NTk6e2M6Wzg3MTJdfSw2OTp7bDp7NTk6e2M6Wzg5NTNdfX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTQ5XX19fX19fX0sMTE1OntsOns1OTp7YzpbODk0OF19LDExODp7bDp7NTk6e2M6Wzg5NDddfX19fX0sMTE4OntsOns1OTp7YzpbODcxMl19fX19fX19fX0sMTE2OntsOns1OTp7YzpbODI5MF19LDEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzI5N119fX19fX19fX19fSwxMTc6e2w6ezEwNzp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMTBdfX19fX19fSwxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzIzOV19fSxjOlsyMzldfX19fX19fSwxMDY6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszMDldfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDgxXX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTAzXX19fX19LDEwOTp7bDp7OTc6e2w6ezExNjp7bDp7MTA0OntsOns1OTp7YzpbNTY3XX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTU1XX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTk5XX19fX19LDEwMTp7bDp7MTE0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExMl19fX19fX19fX19fSwxMTc6e2w6ezEwNzp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDhdfX19fX19fX19fX0sMTA3OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezk3OntsOns1OTp7YzpbOTU0XX0sMTE4OntsOns1OTp7YzpbMTAwOF19fX19fX19fX19fSw5OTp7bDp7MTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzExXX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDgyXX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTA0XX19fX19LDEwMzp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7MTEwOntsOns1OTp7YzpbMzEyXX19fX19fX19fX19LDEwNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOTNdfX19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTE2XX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1Nl19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwMF19fX19fX19fX0sMTA4OntsOns2NTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY2Nl19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1Nl19fX19fSwxMTY6e2w6ezk3OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTIzXX19fX19fX19fX19LDY2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUxMF19fX19fX19fX0sNjk6e2w6ezU5OntjOls4ODA2XX0sMTAzOntsOns1OTp7YzpbMTA4OTFdfX19fX0sNzI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5NF19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzMxNF19fX19fX19fX0sMTAxOntsOnsxMDk6e2w6ezExMjp7bDp7MTE2OntsOnsxMjE6e2w6ezExODp7bDp7NTk6e2M6WzEwNjc2XX19fX19fX19fX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTA6e2w6ezU5OntjOls4NDY2XX19fX19fX19fSwxMDk6e2w6ezk4OntsOnsxMDA6e2w6ezk3OntsOns1OTp7YzpbOTU1XX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjE2XX0sMTAwOntsOns1OTp7YzpbMTA2NDFdfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbMTAyMTZdfX19fX19fX19LDExMjp7bDp7NTk6e2M6WzEwODg1XX19fSwxMTM6e2w6ezExNzp7bDp7MTExOntsOns1OTp7YzpbMTcxXX19LGM6WzE3MV19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg1OTJdfSw5ODp7bDp7NTk6e2M6Wzg2NzZdfSwxMDI6e2w6ezExNTp7bDp7NTk6e2M6WzEwNTI3XX19fX19fX0sMTAyOntsOnsxMTU6e2w6ezU5OntjOlsxMDUyNV19fX19fSwxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6Wzg2MTddfX19fX0sMTA4OntsOnsxMTI6e2w6ezU5OntjOls4NjE5XX19fX19LDExMjp7bDp7MTA4OntsOns1OTp7YzpbMTA1NTNdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwNjExXX19fX19fX0sMTE2OntsOnsxMDg6e2w6ezU5OntjOls4NjEwXX19fX19fX19fSwxMTY6e2w6ezU5OntjOlsxMDkyM119LDk3OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTIxXX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA5MjVdfSwxMTU6e2w6ezU5OntjOlsxMDkyNSw2NTAyNF19fX19fX19fX0sOTg6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTA4XX19fX19fX0sOTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTAwOThdfX19fX19fSwxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbMTIzXX19fSwxMDc6e2w6ezU5OntjOls5MV19fX19fX19LDEwNzp7bDp7MTAxOntsOns1OTp7YzpbMTA2MzVdfX19LDExNTp7bDp7MTA4OntsOnsxMDA6e2w6ezU5OntjOlsxMDYzOV19fX0sMTE3OntsOns1OTp7YzpbMTA2MzddfX19fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszMThdfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMxNl19fX19fX19LDEwNTp7bDp7MTA4OntsOns1OTp7YzpbODk2OF19fX19fX19LDExNzp7bDp7OTg6e2w6ezU5OntjOlsxMjNdfX19fX0sMTIxOntsOns1OTp7YzpbMTA4M119fX19fSwxMDA6e2w6ezk5OntsOns5Nzp7bDp7NTk6e2M6WzEwNTUwXX19fX19LDExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjIwXX0sMTE0OntsOns1OTp7YzpbODIyMl19fX19fX19fX0sMTE0OntsOnsxMDA6e2w6ezEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTk5XX19fX19fX19fSwxMTc6e2w6ezExNTp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1NzFdfX19fX19fX19fX19fSwxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg2MjZdfX19fX19fSwxMDE6e2w6ezU5OntjOls4ODA0XX0sMTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkyXX0sMTE2OntsOns5Nzp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOls4NjEwXX19fX19fX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezExMTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzg2MzddfX19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODYzNl19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY0N119fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk2XX0sMTE1OntsOns1OTp7YzpbODY0Nl19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTEyOntsOnsxMTE6e2w6ezExMTp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls4NjUxXX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTEzOntsOnsxMTc6e2w6ezEwNTp7bDp7MTAzOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYyMV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNjp7bDp7MTA0OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTAxOntsOnsxMTY6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg5MDddfX19fX19fX19fX19fX19fX19fX19fX19fSwxMDM6e2w6ezU5OntjOls4OTIyXX19fSwxMTM6e2w6ezU5OntjOls4ODA0XX0sMTEzOntsOns1OTp7YzpbODgwNl19fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc3XX19fX19fX19fX19fX0sMTE1OntsOns1OTp7YzpbMTA4NzddfSw5OTp7bDp7OTk6e2w6ezU5OntjOlsxMDkyMF19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NzldfSwxMTE6e2w6ezU5OntjOlsxMDg4MV19LDExNDp7bDp7NTk6e2M6WzEwODgzXX19fX19fX19fX19LDEwMzp7bDp7NTk6e2M6Wzg5MjIsNjUwMjRdfSwxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwODk5XX19fX19fX0sMTE1OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDg4NV19fX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTE4XX19fX19fX0sMTAxOntsOnsxMTM6e2w6ezEwMzp7bDp7MTE2OntsOnsxMTQ6e2w6ezU5OntjOls4OTIyXX19fX19fX0sMTEzOntsOnsxMDM6e2w6ezExNjp7bDp7MTE0OntsOns1OTp7YzpbMTA4OTFdfX19fX19fX19fX19fSwxMDM6e2w6ezExNjp7bDp7MTE0OntsOns1OTp7YzpbODgyMl19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODE4XX19fX19fX19fX19fX0sMTAyOntsOnsxMDU6e2w6ezExNTp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOlsxMDYyMF19fX19fX19fX0sMTA4OntsOnsxMTE6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODk3MF19fX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMTA1XX19fX19LDEwMzp7bDp7NTk6e2M6Wzg4MjJdfSw2OTp7bDp7NTk6e2M6WzEwODk3XX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTAwOntsOns1OTp7YzpbODYzN119fX0sMTE3OntsOns1OTp7YzpbODYzNl19LDEwODp7bDp7NTk6e2M6WzEwNjAyXX19fX19fX19fSw5ODp7bDp7MTA4OntsOnsxMDc6e2w6ezU5OntjOls5NjA0XX19fX19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTEzXX19fX19fX0sMTA4OntsOns1OTp7YzpbODgxMF19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDddfX19fX19fSw5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTkwXX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMDA6e2w6ezU5OntjOlsxMDYwM119fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk3MjJdfX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMzIwXX19fX19fX19fSwxMTE6e2w6ezExNzp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOls5MTM2XX0sOTc6e2w6ezk5OntsOnsxMDQ6e2w6ezEwMTp7bDp7NTk6e2M6WzkxMzZdfX19fX19fX19fX19fX19fX19fSwxMTA6e2w6ezY5OntsOns1OTp7YzpbODgwOF19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODg5XX0sMTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA4ODldfX19fX19fX19fX19fSwxMDE6e2w6ezU5OntjOlsxMDg4N119LDExMzp7bDp7NTk6e2M6WzEwODg3XX0sMTEzOntsOns1OTp7YzpbODgwOF19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM0XX19fX19fX19fSwxMTE6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjIwXX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODcwMV19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwMjE0XX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjI5XX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7MTEyOntsOnsxMTU6e2w6ezExNjp7bDp7MTExOntsOns1OTp7YzpbMTAyMzZdfX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMwXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg2MTldfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODYyMF19fX19fX19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjI5XX19fX19LDEwMjp7bDp7NTk6e2M6WzEyMDE1N119fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwNzk3XX19fX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwODA0XX19fX19fX19fX19LDExOTp7bDp7OTc6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbODcyN119fX19fX19LDk4OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbOTVdfX19fX19fX19LDEyMjp7bDp7NTk6e2M6Wzk2NzRdfSwxMDE6e2w6ezExMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls5Njc0XX19fX19fX19fSwxMDI6e2w6ezU5OntjOlsxMDczMV19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzQwXX0sMTA4OntsOnsxMTY6e2w6ezU5OntjOlsxMDY0M119fX19fX19fX19fSwxMTQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDZdfX19fX19fSw5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTkxXX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODY1MV19LDEwMDp7bDp7NTk6e2M6WzEwNjA1XX19fX19fX19fSwxMDk6e2w6ezU5OntjOls4MjA2XX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOns1OTp7YzpbODg5NV19fX19fX19fX0sMTE1OntsOns5Nzp7bDp7MTEzOntsOnsxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyNDldfX19fX19fX19LDk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMDFdfX19fX0sMTA0OntsOns1OTp7YzpbODYyNF19fX0sMTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODE4XX0sMTAxOntsOns1OTp7YzpbMTA4OTNdfX19LDEwMzp7bDp7NTk6e2M6WzEwODk1XX19fX19fX0sMTEzOntsOns5ODp7bDp7NTk6e2M6WzkxXX19fSwxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyMTZdfSwxMTQ6e2w6ezU5OntjOls4MjE4XX19fX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTExOntsOnsxMDc6e2w6ezU5OntjOlszMjJdfX19fX19fX19fX0sMTE2OntsOns1OTp7YzpbNjBdfSw5OTp7bDp7OTk6e2w6ezU5OntjOlsxMDkxOF19fX0sMTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDg3M119fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTE4XX19fX19fX0sMTA0OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODkwN119fX19fX19fX0sMTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODkwNV19fX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYxNF19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOlsxMDg3NV19fX19fX19fX19fSwxMTQ6e2w6ezgwOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2NDZdfX19fX19fSwxMDU6e2w6ezU5OntjOls5NjY3XX0sMTAxOntsOns1OTp7YzpbODg4NF19fX0sMTAyOntsOns1OTp7YzpbOTY2Nl19fX19fX19fSxjOls2MF19LDExNzp7bDp7MTE0OntsOnsxMDA6e2w6ezExNTp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1NzBdfX19fX19fX19fX0sMTE3OntsOnsxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5OF19fX19fX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTEwOntsOnsxMDE6e2w6ezExMzp7bDp7MTEzOntsOns1OTp7YzpbODgwOCw2NTAyNF19fX19fX19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6Wzg4MDgsNjUwMjRdfX19fX19fX19LDEwOTp7bDp7Njg6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NjJdfX19fX19fX19LDk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTc1XX19LGM6WzE3NV19fX0sMTA4OntsOnsxMDE6e2w6ezU5OntjOls5Nzk0XX19fSwxMTY6e2w6ezU5OntjOlsxMDAxNl19LDEwMTp7bDp7MTE1OntsOnsxMDE6e2w6ezU5OntjOlsxMDAxNl19fX19fX19fX19fSwxMTI6e2w6ezU5OntjOls4NjE0XX0sMTE1OntsOnsxMTY6e2w6ezExMTp7bDp7NTk6e2M6Wzg2MTRdfSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls4NjE1XX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls4NjEyXX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg2MTNdfX19fX19fX19fX19fSwxMTQ6e2w6ezEwNzp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls5NjQ2XX19fX19fX19fX19LDk5OntsOnsxMTE6e2w6ezEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzEwNzkzXX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg0XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODIxMl19fX19fX19fX0sMTAxOntsOns5Nzp7bDp7MTE1OntsOnsxMTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMDA6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4NzM3XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMDZdfX19fX0sMTA0OntsOnsxMTE6e2w6ezU5OntjOls4NDg3XX19fX19LDEwNTp7bDp7OTk6e2w6ezExNDp7bDp7MTExOntsOns1OTp7YzpbMTgxXX19LGM6WzE4MV19fX19fSwxMDA6e2w6ezU5OntjOls4NzM5XX0sOTc6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbNDJdfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDk5Ml19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxODNdfX0sYzpbMTgzXX19fX19fX0sMTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjJdfSw5ODp7bDp7NTk6e2M6Wzg4NjNdfX19LDEwMDp7bDp7NTk6e2M6Wzg3NjBdfSwxMTc6e2w6ezU5OntjOlsxMDc5NF19fX19fX19fX19fX19LDEwODp7bDp7OTk6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTcxXX19fX19LDEwMDp7bDp7MTE0OntsOns1OTp7YzpbODIzMF19fX19fX19LDExMDp7bDp7MTEyOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODcyM119fX19fX19fX19fSwxMTE6e2w6ezEwMDp7bDp7MTAxOntsOnsxMDg6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NzFdfX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTU4XX19fX19fX0sMTEyOntsOns1OTp7YzpbODcyM119fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDAyXX19fX19LDExNjp7bDp7MTEyOntsOnsxMTE6e2w6ezExNTp7bDp7NTk6e2M6Wzg3NjZdfX19fX19fX19fX0sMTE3OntsOns1OTp7YzpbOTU2XX0sMTA4OntsOnsxMTY6e2w6ezEwNTp7bDp7MTA5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODg4OF19fX19fX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4ODhdfX19fX19fX19fX0sMTEwOntsOns3MTp7bDp7MTAzOntsOns1OTp7YzpbODkyMSw4MjRdfX19LDExNjp7bDp7NTk6e2M6Wzg4MTEsODQwMl19LDExODp7bDp7NTk6e2M6Wzg4MTEsODI0XX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjUzXX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY1NF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA4OntsOns1OTp7YzpbODkyMCw4MjRdfX19LDExNjp7bDp7NTk6e2M6Wzg4MTAsODQwMl19LDExODp7bDp7NTk6e2M6Wzg4MTAsODI0XX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTVdfX19fX19fX19fX19fX19fX19fX19LDg2OntsOns2ODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3OV19fX19fX19fX0sMTAwOntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4ODc4XX19fX19fX19fX19LDk3OntsOns5ODp7bDp7MTA4OntsOns5Nzp7bDp7NTk6e2M6Wzg3MTFdfX19fX19fSw5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzMyNF19fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOls4NzM2LDg0MDJdfX19fX0sMTEyOntsOns1OTp7YzpbODc3N119LDY5OntsOns1OTp7YzpbMTA4NjQsODI0XX19fSwxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3NzksODI0XX19fX19LDExMTp7bDp7MTE1OntsOns1OTp7YzpbMzI5XX19fX19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6Wzg3NzddfX19fX19fX19fX0sMTE2OntsOnsxMTc6e2w6ezExNDp7bDp7NTk6e2M6Wzk4MzhdfSw5Nzp7bDp7MTA4OntsOns1OTp7YzpbOTgzOF19LDExNTp7bDp7NTk6e2M6Wzg0NjldfX19fX19fX19fX19fX19LDk4OntsOnsxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzE2MF19fSxjOlsxNjBdfX19LDExNzp7bDp7MTA5OntsOnsxMTI6e2w6ezU5OntjOls4NzgyLDgyNF19LDEwMTp7bDp7NTk6e2M6Wzg3ODMsODI0XX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MTldfX19LDExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszMjhdfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMyNl19fX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg3NzVdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NjEsODI0XX19fX19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgxOF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg1XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODIxMV19fX19fX19fX0sMTAxOntsOns1OTp7YzpbODgwMF19LDY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjNdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTMyXX19fX19LDExNDp7bDp7NTk6e2M6Wzg1OTldfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTldfX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODQsODI0XX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezEwNTp7bDp7MTE4OntsOns1OTp7YzpbODgwMl19fX19fX19fX0sMTE1OntsOnsxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzNl19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc3MCw4MjRdfX19fX19fSwxMjA6e2w6ezEwNTp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOls4NzA4XX0sMTE1OntsOns1OTp7YzpbODcwOF19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTA3XX19fX19LDEwMzp7bDp7Njk6e2w6ezU5OntjOls4ODA3LDgyNF19fX0sMTAxOntsOns1OTp7YzpbODgxN119LDExMzp7bDp7NTk6e2M6Wzg4MTddfSwxMTM6e2w6ezU5OntjOls4ODA3LDgyNF19fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc4LDgyNF19fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6WzEwODc4LDgyNF19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgyMV19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTVdfSwxMTQ6e2w6ezU5OntjOls4ODE1XX19fX19fX0sMTA0OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjU0XX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYyMl19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwOTk0XX19fX19fX19fSwxMDU6e2w6ezU5OntjOls4NzE1XX0sMTE1OntsOns1OTp7YzpbODk1Nl19LDEwMDp7bDp7NTk6e2M6Wzg5NTRdfX19fX0sMTE4OntsOns1OTp7YzpbODcxNV19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTE0XX19fX19fX0sMTA4OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjUzXX19fX19fX0sNjk6e2w6ezU5OntjOls4ODA2LDgyNF19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwMl19fX19fX19LDEwMDp7bDp7MTE0OntsOns1OTp7YzpbODIyOV19fX19fSwxMDE6e2w6ezU5OntjOls4ODE2XX0sMTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjAyXX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYyMl19fX19fX19fX19fX19fX19fX19fX19fX19LDExMzp7bDp7NTk6e2M6Wzg4MTZdfSwxMTM6e2w6ezU5OntjOls4ODA2LDgyNF19fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc3LDgyNF19fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6WzEwODc3LDgyNF19LDExNTp7bDp7NTk6e2M6Wzg4MTRdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgyMF19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTRdfSwxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzg5MzhdfSwxMDE6e2w6ezU5OntjOls4OTQwXX19fX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDA6e2w6ezU5OntjOls4NzQwXX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1OV19fX19fSwxMTY6e2w6ezU5OntjOlsxNzJdfSwxMDU6e2w6ezExMDp7bDp7NTk6e2M6Wzg3MTNdfSw2OTp7bDp7NTk6e2M6Wzg5NTMsODI0XX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODk0OSw4MjRdfX19fX19fSwxMTg6e2w6ezk3OntsOns1OTp7YzpbODcxM119fX0sOTg6e2w6ezU5OntjOls4OTUxXX19fSw5OTp7bDp7NTk6e2M6Wzg5NTBdfX19fX19fX19LDExMDp7bDp7MTA1OntsOns1OTp7YzpbODcxNl19LDExODp7bDp7OTc6e2w6ezU5OntjOls4NzE2XX19fSw5ODp7bDp7NTk6e2M6Wzg5NThdfX19LDk5OntsOns1OTp7YzpbODk1N119fX19fX19fX19LGM6WzE3Ml19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODc0Ml19LDk3OntsOnsxMDg6e2w6ezEwODp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4NzQyXX19fX19fX19fX19LDExNTp7bDp7MTA4OntsOns1OTp7YzpbMTEwMDUsODQyMV19fX19fSwxMTY6e2w6ezU5OntjOls4NzA2LDgyNF19fX19fX19LDExMTp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzJdfX19fX19fX19fX0sMTE0OntsOns1OTp7YzpbODgzMl19LDk5OntsOnsxMTc6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MjhdfX19fX19fSwxMDE6e2w6ezU5OntjOlsxMDkyNyw4MjRdfSw5OTp7bDp7NTk6e2M6Wzg4MzJdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwOTI3LDgyNF19fX19fX19fX19fX19LDExNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1NV19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MDNdfSw5OTp7bDp7NTk6e2M6WzEwNTQ3LDgyNF19fX0sMTE5OntsOns1OTp7YzpbODYwNSw4MjRdfX19fX19fX19LDEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MDNdfX19fX19fX19fX19fX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOns1OTp7YzpbODkzOV19LDEwMTp7bDp7NTk6e2M6Wzg5NDFdfX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7NTk6e2M6Wzg4MzNdfSw5OTp7bDp7MTE3OntsOnsxMDE6e2w6ezU5OntjOls4OTI5XX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA5MjgsODI0XX19fSwxMTQ6e2w6ezU5OntjOlsxMjAwMDNdfX19fX0sMTA0OntsOnsxMTE6e2w6ezExNDp7bDp7MTE2OntsOnsxMDk6e2w6ezEwNTp7bDp7MTAwOntsOns1OTp7YzpbODc0MF19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7OTc6e2w6ezEwODp7bDp7MTA4OntsOnsxMDE6e2w6ezEwODp7bDp7NTk6e2M6Wzg3NDJdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjldfSwxMDE6e2w6ezU5OntjOls4NzcyXX0sMTEzOntsOns1OTp7YzpbODc3Ml19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3NDBdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NzQyXX19fX19fX0sMTEzOntsOnsxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MzBdfX19fX0sMTEyOntsOnsxMDE6e2w6ezU5OntjOls4OTMxXX19fX19fX19fX19LDExNzp7bDp7OTg6e2w6ezU5OntjOls4ODM2XX0sNjk6e2w6ezU5OntjOlsxMDk0OSw4MjRdfX19LDEwMTp7bDp7NTk6e2M6Wzg4NDBdfX19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODM0LDg0MDJdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDBdfSwxMTM6e2w6ezU5OntjOlsxMDk0OSw4MjRdfX19fX19fX19fX19fX19LDk5OntsOns5OTp7bDp7NTk6e2M6Wzg4MzNdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwOTI4LDgyNF19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODgzN119LDY5OntsOns1OTp7YzpbMTA5NTAsODI0XX19fSwxMDE6e2w6ezU5OntjOls4ODQxXX19fSwxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNSw4NDAyXX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODQxXX0sMTEzOntsOns1OTp7YzpbMTA5NTAsODI0XX19fX19fX19fX19fX19fX19fX0sMTE2OntsOnsxMDM6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MjVdfX19fX0sMTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjQxXX19LGM6WzI0MV19fX19fX19LDEwODp7bDp7MTAzOntsOns1OTp7YzpbODgyNF19fX19fSwxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODkzOF19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODk0MF19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODkzOV19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODk0MV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNzp7bDp7NTk6e2M6Wzk1N119LDEwOTp7bDp7NTk6e2M6WzM1XX0sMTAxOntsOnsxMTQ6e2w6ezExMTp7bDp7NTk6e2M6Wzg0NzBdfX19fX19fSwxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzgxOTldfX19fX19fX19LDExODp7bDp7Njg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzddfX19fX19fX19LDcyOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUwMF19fX19fX19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg3ODEsODQwMl19fX19fSwxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzZdfX19fX19fX19LDEwMzp7bDp7MTAxOntsOns1OTp7YzpbODgwNSw4NDAyXX19fSwxMTY6e2w6ezU5OntjOls2Miw4NDAyXX19fX19LDEwNTp7bDp7MTEwOntsOnsxMDI6e2w6ezEwNTp7bDp7MTEwOntsOns1OTp7YzpbMTA3MThdfX19fX19fX19fX0sMTA4OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDQ5OF19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MDQsODQwMl19fX0sMTE2OntsOns1OTp7YzpbNjAsODQwMl19LDExNDp7bDp7MTA1OntsOnsxMDE6e2w6ezU5OntjOls4ODg0LDg0MDJdfX19fX19fX19fX0sMTE0OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDQ5OV19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4ODUsODQwMl19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc2NCw4NDAyXX19fX19fX19fSwxMTk6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjJdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTMxXX19fX19LDExNDp7bDp7NTk6e2M6Wzg1OThdfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OThdfX19fX19fX19fX0sMTEwOntsOnsxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzNV19fX19fX19fX19fX19LDExMTp7bDp7ODM6e2w6ezU5OntjOls5NDE2XX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNDNdfX0sYzpbMjQzXX19fX19fX0sMTE1OntsOnsxMTY6e2w6ezU5OntjOls4ODU5XX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbODg1OF19LDk5OntsOns1OTp7YzpbMjQ0XX19LGM6WzI0NF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg2XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg2MV19fX19fX19LDk4OntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzMzN119fX19fX19fX0sMTA1OntsOnsxMTg6e2w6ezU5OntjOlsxMDgwOF19fX19fSwxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NTddfX19fX0sMTE1OntsOnsxMTE6e2w6ezEwODp7bDp7MTAwOntsOns1OTp7YzpbMTA2ODRdfX19fX19fX19fX0sMTAxOntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMzM5XX19fX19fX19fSwxMDI6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjg3XX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMTA4XX19fX19LDEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls3MzFdfX19fX0sMTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyNDJdfX0sYzpbMjQyXX19fX19fX0sMTE2OntsOns1OTp7YzpbMTA2ODldfX19fX0sMTA0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjc3XX19fX19fX0sMTA5OntsOns1OTp7YzpbOTM3XX19fX19LDEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzUwXX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjM0XX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA2ODZdfX19fX0sMTE0OntsOnsxMTE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbMTA2ODNdfX19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNTRdfX19fX19fSwxMTY6e2w6ezU5OntjOlsxMDY4OF19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMzMzXX19fX19fX0sMTAxOntsOnsxMDM6e2w6ezk3OntsOns1OTp7YzpbOTY5XX19fX19fX0sMTA1OntsOns5OTp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzk1OV19fX19fX19fX0sMTAwOntsOns1OTp7YzpbMTA2NzhdfX19LDExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODU0XX19fX19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjBdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDY3OV19fX19fSwxMDE6e2w6ezExNDp7bDp7MTEyOntsOns1OTp7YzpbMTA2ODFdfX19fX19fSwxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg1M119fX19fX19fX0sMTE0OntsOns1OTp7YzpbODc0NF19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MzVdfX19fX19fSwxMDA6e2w6ezU5OntjOlsxMDg0NV19LDEwMTp7bDp7MTE0OntsOns1OTp7YzpbODUwMF19LDExMTp7bDp7MTAyOntsOns1OTp7YzpbODUwMF19fX19fX19fX0sMTAyOntsOns1OTp7YzpbMTcwXX19LGM6WzE3MF19LDEwOTp7bDp7NTk6e2M6WzE4Nl19fSxjOlsxODZdfX19LDEwNTp7bDp7MTAzOntsOnsxMTE6e2w6ezEwMjp7bDp7NTk6e2M6Wzg4ODZdfX19fX19fX19LDExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA4MzhdfX19fX0sMTE1OntsOnsxMDg6e2w6ezExMTp7bDp7MTEyOntsOnsxMDE6e2w6ezU5OntjOlsxMDgzOV19fX19fX19fX19fSwxMTg6e2w6ezU5OntjOlsxMDg0M119fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NTAwXX19fX19LDEwODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbMjQ4XX19LGM6WzI0OF19fX19fX19LDExMTp7bDp7MTA4OntsOns1OTp7YzpbODg1Nl19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjQ1XX19LGM6WzI0NV19fX19fSwxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODg1NV19LDk3OntsOnsxMTU6e2w6ezU5OntjOlsxMDgwNl19fX19fX19fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzI0Nl19fSxjOlsyNDZdfX19fX0sMTE4OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzkwMjFdfX19fX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODc0MV19LDk3OntsOns1OTp7YzpbMTgyXX0sMTA4OntsOnsxMDg6e2w6ezEwMTp7bDp7MTA4OntsOns1OTp7YzpbODc0MV19fX19fX19fX19LGM6WzE4Ml19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDk5NV19fX19fSwxMDg6e2w6ezU5OntjOlsxMTAwNV19fX19fSwxMTY6e2w6ezU5OntjOls4NzA2XX19fX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwODddfX19fX0sMTAxOntsOnsxMTQ6e2w6ezk5OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzM3XX19fX19fX0sMTA1OntsOnsxMTE6e2w6ezEwMDp7bDp7NTk6e2M6WzQ2XX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzgyNDBdfX19fX19fSwxMTI6e2w6ezU5OntjOls4ODY5XX19fSwxMTY6e2w6ezEwMTp7bDp7MTEwOntsOnsxMDc6e2w6ezU5OntjOls4MjQxXX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMDldfX19fX0sMTA0OntsOnsxMDU6e2w6ezU5OntjOls5NjZdfSwxMTg6e2w6ezU5OntjOls5ODFdfX19fX0sMTA5OntsOnsxMDk6e2w6ezk3OntsOnsxMTY6e2w6ezU5OntjOls4NDk5XX19fX19fX19fSwxMTE6e2w6ezExMDp7bDp7MTAxOntsOns1OTp7YzpbOTc0Ml19fX19fX19fX0sMTA1OntsOns1OTp7YzpbOTYwXX0sMTE2OntsOns5OTp7bDp7MTA0OntsOnsxMDI6e2w6ezExMTp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOls4OTE2XX19fX19fX19fX19fX19fSwxMTg6e2w6ezU5OntjOls5ODJdfX19fX0sMTA4OntsOns5Nzp7bDp7MTEwOntsOns5OTp7bDp7MTA3OntsOns1OTp7YzpbODQ2M119LDEwNDp7bDp7NTk6e2M6Wzg0NjJdfX19fX19fSwxMDc6e2w6ezExODp7bDp7NTk6e2M6Wzg0NjNdfX19fX19fX19LDExNzp7bDp7MTE1OntsOns1OTp7YzpbNDNdfSw5Nzp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA3ODddfX19fX19fX19LDk4OntsOns1OTp7YzpbODg2Ml19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA3ODZdfX19fX19fSwxMDA6e2w6ezExMTp7bDp7NTk6e2M6Wzg3MjRdfX19LDExNzp7bDp7NTk6e2M6WzEwNzg5XX19fX19LDEwMTp7bDp7NTk6e2M6WzEwODY2XX19fSwxMDk6e2w6ezExMDp7bDp7NTk6e2M6WzE3N119fSxjOlsxNzddfX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDc5MF19fX19fX19LDExNjp7bDp7MTE5OntsOnsxMTE6e2w6ezU5OntjOlsxMDc5MV19fX19fX19fX19fX19LDEwOTp7bDp7NTk6e2M6WzE3N119fX0sMTExOntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzNdfX19fX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE2MV19fX19fSwxMTc6e2w6ezExMDp7bDp7MTAwOntsOns1OTp7YzpbMTYzXX19LGM6WzE2M119fX19fX19LDExNDp7bDp7NTk6e2M6Wzg4MjZdfSw2OTp7bDp7NTk6e2M6WzEwOTMxXX19fSw5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA5MzVdfX19fX0sOTk6e2w6ezExNzp7bDp7MTAxOntsOns1OTp7YzpbODgyOF19fX19fX19LDEwMTp7bDp7NTk6e2M6WzEwOTI3XX0sOTk6e2w6ezU5OntjOls4ODI2XX0sOTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA5MzVdfX19fX19fX19fX19fSw5OTp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwODp7bDp7MTIxOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4MjhdfX19fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbMTA5MjddfX19fX0sMTEwOntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDkzN119fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOnsxMTM6e2w6ezU5OntjOlsxMDkzM119fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM2XX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgzMF19fX19fX19fX19fSwxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbODI0Ml19LDExNTp7bDp7NTk6e2M6Wzg0NzNdfX19fX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOlsxMDkzM119fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTM3XX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM2XX19fX19fX19fSwxMTE6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3MTldfX19LDEwMjp7bDp7OTc6e2w6ezEwODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzkwMDZdfX19fX19fX19LDEwODp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5NzhdfX19fX19fX19LDExNTp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwMjp7bDp7NTk6e2M6Wzg5NzldfX19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODczM119LDExNjp7bDp7MTExOntsOns1OTp7YzpbODczM119fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MzBdfX19fX19fSwxMTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4ODgwXX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwNV19fX19fSwxMDU6e2w6ezU5OntjOls5NjhdfX19fX0sMTE3OntsOnsxMTA6e2w6ezk5OntsOnsxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzgyMDBdfX19fX19fX19fX19fSwxMTM6e2w6ezEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTEwXX19fX19LDEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDc2NF19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjJdfX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNzldfX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDA2XX19fX19fX0sMTE3OntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7MTEwOntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls4NDYxXX19fX19fX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzRdfX19fX19fX19fX0sMTAxOntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6WzYzXX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzk5XX19fX19fX19fX19LDExMTp7bDp7MTE2OntsOns1OTp7YzpbMzRdfX0sYzpbMzRdfX19fX19fSwxMTQ6e2w6ezY1OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjY3XX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjU4XX19fX19LDExNjp7bDp7OTc6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMTA1MjRdfX19fX19fX19fX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTExXX19fX19fX19fSw3Mjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTk2XX19fX19fX0sOTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4NzY1LDgxN119fX0sMTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzM0MV19fX19fX19fX0sMTAwOntsOnsxMDU6e2w6ezk5OntsOns1OTp7YzpbODczMF19fX19fX19LDEwMTp7bDp7MTA5OntsOnsxMTI6e2w6ezExNjp7bDp7MTIxOntsOnsxMTg6e2w6ezU5OntjOlsxMDY3NV19fX19fX19fX19fX19LDExMDp7bDp7MTAzOntsOns1OTp7YzpbMTAyMTddfSwxMDA6e2w6ezU5OntjOlsxMDY0Ml19fX0sMTAxOntsOns1OTp7YzpbMTA2NjFdfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbMTAyMTddfX19fX19fX19LDExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOlsxODddfX0sYzpbMTg3XX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5NF19LDk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDYxM119fX19fSw5ODp7bDp7NTk6e2M6Wzg2NzddfSwxMDI6e2w6ezExNTp7bDp7NTk6e2M6WzEwNTI4XX19fX19fX0sOTk6e2w6ezU5OntjOlsxMDU0N119fX0sMTAyOntsOnsxMTU6e2w6ezU5OntjOlsxMDUyNl19fX19fSwxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6Wzg2MThdfX19fX0sMTA4OntsOnsxMTI6e2w6ezU5OntjOls4NjIwXX19fX19LDExMjp7bDp7MTA4OntsOns1OTp7YzpbMTA1NjVdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwNjEyXX19fX19fX0sMTE2OntsOnsxMDg6e2w6ezU5OntjOls4NjExXX19fX19LDExOTp7bDp7NTk6e2M6Wzg2MDVdfX19fX19fSwxMTY6e2w6ezk3OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTIyXX19fX19fX0sMTA1OntsOnsxMTE6e2w6ezU5OntjOls4NzU4XX0sMTEwOntsOns5Nzp7bDp7MTA4OntsOnsxMTU6e2w6ezU5OntjOls4NDc0XX19fX19fX19fX19fX19fX19LDk4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUwOV19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwMDk5XX19fX19fX0sMTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzEyNV19fX0sMTA3OntsOns1OTp7YzpbOTNdfX19fX19fSwxMDc6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNjM2XX19fSwxMTU6e2w6ezEwODp7bDp7MTAwOntsOns1OTp7YzpbMTA2MzhdfX19LDExNzp7bDp7NTk6e2M6WzEwNjQwXX19fX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzQ1XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNDNdfX19fX19fSwxMDU6e2w6ezEwODp7bDp7NTk6e2M6Wzg5NjldfX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbMTI1XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwODhdfX19fX0sMTAwOntsOns5OTp7bDp7OTc6e2w6ezU5OntjOlsxMDU1MV19fX19fSwxMDg6e2w6ezEwMDp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDFdfX19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyMjFdfSwxMTQ6e2w6ezU5OntjOls4MjIxXX19fX19fX19fSwxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg2MjddfX19fX19fSwxMDE6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NDc2XX0sMTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg0NzVdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg0NzZdfX19fX19fX19LDExNTp7bDp7NTk6e2M6Wzg0NzddfX19fX19fSw5OTp7bDp7MTE2OntsOns1OTp7YzpbOTY0NV19fX19fSwxMDM6e2w6ezU5OntjOlsxNzRdfX0sYzpbMTc0XX19fSwxMDI6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6WzEwNjIxXX19fX19fX19fSwxMDg6e2w6ezExMTp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4OTcxXX19fX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMjAxMTFdfX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMDA6e2w6ezU5OntjOls4NjQxXX19fSwxMTc6e2w6ezU5OntjOls4NjQwXX0sMTA4OntsOns1OTp7YzpbMTA2MDRdfX19fX19fX19LDExMTp7bDp7NTk6e2M6Wzk2MV19LDExODp7bDp7NTk6e2M6WzEwMDldfX19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk0XX0sMTE2OntsOns5Nzp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOls4NjExXX19fX19fX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezExMTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzg2NDFdfX19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODY0MF19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY0NF19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTEyOntsOnsxMTE6e2w6ezExMTp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls4NjUyXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezExNTp7bDp7NTk6e2M6Wzg2NDldfX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMDM6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjA1XX19fX19fX19fX19fX19fX19fX19fSwxMTY6e2w6ezEwNDp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7MTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4OTA4XX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzczMF19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezExNTp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzg3XX19fX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY0NF19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTJdfX19fX19fSwxMDk6e2w6ezU5OntjOls4MjA3XX19fX19LDEwOTp7bDp7MTExOntsOnsxMTc6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbOTEzN119LDk3OntsOns5OTp7bDp7MTA0OntsOnsxMDE6e2w6ezU5OntjOls5MTM3XX19fX19fX19fX19fX19fX19fX0sMTEwOntsOnsxMDk6e2w6ezEwNTp7bDp7MTAwOntsOns1OTp7YzpbMTA5OTBdfX19fX19fX19LDExMTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMTAyMjFdfX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NzAyXX19fX19fX0sOTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTAyMTVdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYzMF19fX19fSwxMDI6e2w6ezU5OntjOlsxMjAxNjNdfX19LDEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc5OF19fX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDgwNV19fX19fX19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzQxXX0sMTAzOntsOnsxMTY6e2w6ezU5OntjOlsxMDY0NF19fX19fX19fX0sMTEyOntsOnsxMTE6e2w6ezEwODp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzcwXX19fX19fX19fX19fX19fSwxMTQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDldfX19fX19fX19LDExNTp7bDp7OTc6e2w6ezExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjUwXX19fX19fX19fSw5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDA3XX19fX19LDEwNDp7bDp7NTk6e2M6Wzg2MjVdfX19LDExMzp7bDp7OTg6e2w6ezU5OntjOls5M119fX0sMTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjE3XX0sMTE0OntsOns1OTp7YzpbODIxN119fX19fX19fX19fSwxMTY6e2w6ezEwNDp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MDhdfX19fX19fX19LDEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg5MDZdfX19fX19fX19LDExNDp7bDp7MTA1OntsOns1OTp7YzpbOTY1N119LDEwMTp7bDp7NTk6e2M6Wzg4ODVdfX19LDEwMjp7bDp7NTk6e2M6Wzk2NTZdfX19LDEwODp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6WzEwNzAyXX19fX19fX19fX19fX19fSwxMTc6e2w6ezEwODp7bDp7MTE3OntsOnsxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYwMF19fX19fX19fX19fX19LDEyMDp7bDp7NTk6e2M6Wzg0NzhdfX19fX0sMTE1OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlszNDddfX19fX19fX19fX0sOTg6e2w6ezExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjE4XX19fX19fX19fSw5OTp7bDp7NTk6e2M6Wzg4MjddfSw2OTp7bDp7NTk6e2M6WzEwOTMyXX19fSw5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA5MzZdfX19LDExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszNTNdfX19fX19fX19LDk5OntsOnsxMTc6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MjldfX19fX19fSwxMDE6e2w6ezU5OntjOlsxMDkyOF19LDEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNTFdfX19fX19fX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzM0OV19fX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOlsxMDkzNF19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTM4XX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM3XX19fX19fX19fSwxMTI6e2w6ezExMTp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzFdfX19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgzMV19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwODldfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MDFdfSw5ODp7bDp7NTk6e2M6Wzg4NjVdfX19LDEwMTp7bDp7NTk6e2M6WzEwODU0XX19fX19fX19fSwxMDE6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjRdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTMzXX19fX19LDExNDp7bDp7NTk6e2M6Wzg2MDBdfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MDBdfX19fX19fX19fX0sOTk6e2w6ezExNjp7bDp7NTk6e2M6WzE2N119fSxjOlsxNjddfX19LDEwOTp7bDp7MTA1OntsOns1OTp7YzpbNTldfX19fX0sMTE1OntsOnsxMTk6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzN119fX19fX19fX0sMTE2OntsOnsxMDk6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjZdfX19fX19fX19LDExMDp7bDp7NTk6e2M6Wzg3MjZdfX19fX19fSwxMjA6e2w6ezExNjp7bDp7NTk6e2M6WzEwMDM4XX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMTJdfSwxMTE6e2w6ezExOTp7bDp7MTEwOntsOns1OTp7YzpbODk5NF19fX19fX19fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExMjp7bDp7NTk6e2M6Wzk4MzldfX19fX19fSw5OTp7bDp7MTA0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA5N119fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwOTZdfX19fX0sMTExOntsOnsxMTQ6e2w6ezExNjp7bDp7MTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3MzldfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4NzQxXX19fX19fX19fX19fX19fX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzE3M119fSxjOlsxNzNdfX19LDEwNTp7bDp7MTAzOntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTYzXX0sMTAyOntsOns1OTp7YzpbOTYyXX19fSwxMTg6e2w6ezU5OntjOls5NjJdfX19fX19fX19LDEwOTp7bDp7NTk6e2M6Wzg3NjRdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NThdfX19fX19fSwxMDE6e2w6ezU5OntjOls4NzcxXX0sMTEzOntsOns1OTp7YzpbODc3MV19fX19fSwxMDM6e2w6ezU5OntjOlsxMDkxMF19LDY5OntsOns1OTp7YzpbMTA5MTJdfX19fX0sMTA4OntsOns1OTp7YzpbMTA5MDldfSw2OTp7bDp7NTk6e2M6WzEwOTExXX19fX19LDExMDp7bDp7MTAxOntsOns1OTp7YzpbODc3NF19fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc4OF19fX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYxMF19fX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5Ml19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezEwOTp7bDp7MTA1OntsOnsxMTA6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODcyNl19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDQ6e2w6ezExMjp7bDp7NTk6e2M6WzEwODAzXX19fX19fX19fSwxMDE6e2w6ezExMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE1OntsOnsxMDg6e2w6ezU5OntjOlsxMDcyNF19fX19fX19fX19fX19LDEwNTp7bDp7MTAwOntsOns1OTp7YzpbODczOV19fX0sMTA4OntsOnsxMDE6e2w6ezU5OntjOls4OTk1XX19fX19fX0sMTE2OntsOns1OTp7YzpbMTA5MjJdfSwxMDE6e2w6ezU5OntjOlsxMDkyNF19LDExNTp7bDp7NTk6e2M6WzEwOTI0LDY1MDI0XX19fX19fX19fSwxMTE6e2w6ezEwMjp7bDp7MTE2OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTEwMF19fX19fX19fX0sMTA4OntsOns1OTp7YzpbNDddfSw5ODp7bDp7NTk6e2M6WzEwNjkyXX0sOTc6e2w6ezExNDp7bDp7NTk6e2M6WzkwMjNdfX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTY0XX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTAwOntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzk4MjRdfSwxMTc6e2w6ezEwNTp7bDp7MTE2OntsOns1OTp7YzpbOTgyNF19fX19fX19fX19fX19LDExNDp7bDp7NTk6e2M6Wzg3NDFdfX19fX19fSwxMTM6e2w6ezk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODg1MV19LDExNTp7bDp7NTk6e2M6Wzg4NTEsNjUwMjRdfX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4NTJdfSwxMTU6e2w6ezU5OntjOls4ODUyLDY1MDI0XX19fX19fX19fSwxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezU5OntjOls4ODQ3XX0sMTAxOntsOns1OTp7YzpbODg0OV19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDddfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDldfX19fX19fX19fX19fSwxMTI6e2w6ezU5OntjOls4ODQ4XX0sMTAxOntsOns1OTp7YzpbODg1MF19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDhdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NTBdfX19fX19fX19fX19fX19fX0sMTE3OntsOns1OTp7YzpbOTYzM119LDk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2MzNdfX19LDEwMjp7bDp7NTk6e2M6Wzk2NDJdfX19fX19fSwxMDI6e2w6ezU5OntjOls5NjQyXX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NTk0XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMDhdfX19fX0sMTAxOntsOnsxMTY6e2w6ezEwOTp7bDp7MTEwOntsOns1OTp7YzpbODcyNl19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODk5NV19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMDI6e2w6ezU5OntjOls4OTAyXX19fX19fX19fX19LDExNjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzk3MzRdfSwxMDI6e2w6ezU5OntjOls5NzMzXX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOnsxMDE6e2w6ezExMjp7bDp7MTE1OntsOnsxMDU6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsxMDEzXX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwNDp7bDp7MTA1OntsOns1OTp7YzpbOTgxXX19fX19fX19fX19fX19fX19LDExMDp7bDp7MTE1OntsOns1OTp7YzpbMTc1XX19fX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbODgzNF19LDY5OntsOns1OTp7YzpbMTA5NDldfX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk0MV19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MzhdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5NDddfX19fX19fX19LDEwOTp7bDp7MTE3OntsOnsxMDg6e2w6ezExNjp7bDp7NTk6e2M6WzEwOTQ1XX19fX19fX19fSwxMTA6e2w6ezY5OntsOns1OTp7YzpbMTA5NTVdfX19LDEwMTp7bDp7NTk6e2M6Wzg4NDJdfX19fX0sMTEyOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA5NDNdfX19fX19fX19LDExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA2MTddfX19fX19fX19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODM0XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODM4XX0sMTEzOntsOns1OTp7YzpbMTA5NDldfX19fX19fSwxMTA6e2w6ezEwMTp7bDp7MTEzOntsOns1OTp7YzpbODg0Ml19LDExMzp7bDp7NTk6e2M6WzEwOTU1XX19fX19fX19fX19fX0sMTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDk1MV19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbMTA5NjVdfX19LDExMjp7bDp7NTk6e2M6WzEwOTYzXX19fX19fX19fSw5OTp7bDp7OTk6e2w6ezU5OntjOls4ODI3XX0sOTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA5MzZdfX19fX19fX19fX19fSw5OTp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwODp7bDp7MTIxOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4MjldfX19fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbMTA5MjhdfX19fX0sMTEwOntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDkzOF19fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOnsxMTM6e2w6ezU5OntjOlsxMDkzNF19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM3XX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgzMV19fX19fX19fX19fSwxMDk6e2w6ezU5OntjOls4NzIxXX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzk4MzRdfX19fX0sMTEyOntsOns0OTp7bDp7NTk6e2M6WzE4NV19fSxjOlsxODVdfSw1MDp7bDp7NTk6e2M6WzE3OF19fSxjOlsxNzhdfSw1MTp7bDp7NTk6e2M6WzE3OV19fSxjOlsxNzldfSw1OTp7YzpbODgzNV19LDY5OntsOns1OTp7YzpbMTA5NTBdfX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk0Ml19fX19fSwxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezU5OntjOlsxMDk2OF19fX19fX19fX0sMTAxOntsOns1OTp7YzpbODgzOV19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk0OF19fX19fX19fX0sMTA0OntsOnsxMTU6e2w6ezExMTp7bDp7MTA4OntsOns1OTp7YzpbMTAxODVdfX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEwOTY3XX19fX19fX19fSwxMDg6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjE5XX19fX19fX19fSwxMDk6e2w6ezExNzp7bDp7MTA4OntsOnsxMTY6e2w6ezU5OntjOlsxMDk0Nl19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6WzEwOTU2XX19fSwxMDE6e2w6ezU5OntjOls4ODQzXX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTQ0XX19fX19fX19fSwxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNV19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODgzOV19LDExMzp7bDp7NTk6e2M6WzEwOTUwXX19fX19fX0sMTEwOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDNdfSwxMTM6e2w6ezU5OntjOlsxMDk1Nl19fX19fX19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbMTA5NTJdfX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEwOTY0XX19fSwxMTI6e2w6ezU5OntjOlsxMDk2Nl19fX19fX19fX19fSwxMTk6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjVdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTM0XX19fX19LDExNDp7bDp7NTk6e2M6Wzg2MDFdfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MDFdfX19fX19fX19fX0sMTEwOntsOnsxMTk6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzOF19fX19fX19fX19fSwxMjI6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlsyMjNdfX0sYzpbMjIzXX19fX19fX19fSwxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4OTgyXX19fX19fX19fSwxMTc6e2w6ezU5OntjOls5NjRdfX19fX0sOTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbOTE0MF19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM1N119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzU1XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDkwXX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4NDExXX19fX19fX0sMTAxOntsOnsxMDg6e2w6ezExNDp7bDp7MTAxOntsOns5OTp7bDp7NTk6e2M6Wzg5ODFdfX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMTNdfX19fX0sMTA0OntsOnsxMDE6e2w6ezExNDp7bDp7MTAxOntsOns1Mjp7bDp7NTk6e2M6Wzg3NTZdfX19LDEwMjp7bDp7MTExOntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NTZdfX19fX19fX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTUyXX0sMTE1OntsOnsxMjE6e2w6ezEwOTp7bDp7NTk6e2M6Wzk3N119fX19fX19LDExODp7bDp7NTk6e2M6Wzk3N119fX19fX19fX0sMTA1OntsOns5OTp7bDp7MTA3OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOls4Nzc2XX19fX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjRdfX19fX19fX19fX0sMTEwOntsOnsxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzgyMDFdfX19fX19fX19LDEwNzp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg3NzZdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjRdfX19fX19fX19LDExMTp7bDp7MTE0OntsOnsxMTA6e2w6ezU5OntjOlsyNTRdfX0sYzpbMjU0XX19fX19fX0sMTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbNzMyXX19fX19fX0sMTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzIxNV19LDk4OntsOns1OTp7YzpbODg2NF19LDk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDgwMV19fX19fX19LDEwMDp7bDp7NTk6e2M6WzEwODAwXX19fX0sYzpbMjE1XX19fX19LDExMDp7bDp7MTE2OntsOns1OTp7YzpbODc0OV19fX19fX19LDExMTp7bDp7MTAxOntsOns5Nzp7bDp7NTk6e2M6WzEwNTM2XX19fX19LDExMjp7bDp7NTk6e2M6Wzg4NjhdfSw5ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls5MDE0XX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA5OTNdfX19fX19fSwxMDI6e2w6ezU5OntjOlsxMjAxNjVdfSwxMTE6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTA5NzBdfX19fX19fX19fX0sMTE1OntsOns5Nzp7bDp7NTk6e2M6WzEwNTM3XX19fX19fX0sMTEyOntsOnsxMTQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezU5OntjOls4MjQ0XX19fX19fX19fX19LDExNDp7bDp7OTc6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODQ4Ml19fX19fX19LDEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2NTNdfSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls5NjYzXX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls5NjY3XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODg0XX19fX19fX19fX19fX0sMTEzOntsOns1OTp7YzpbODc5Nl19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls5NjU3XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODg1XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzk3MDhdfX19fX19fSwxMDE6e2w6ezU5OntjOls4Nzk2XX19fSwxMDk6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwODEwXX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwODA5XX19fX19fX19fSwxMTU6e2w6ezk4OntsOns1OTp7YzpbMTA3MDFdfX19fX0sMTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbMTA4MTFdfX19fX19fX19fX0sMTEyOntsOnsxMDE6e2w6ezEyMjp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7NTk6e2M6WzkxODZdfX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwOV19fX0sMTIxOntsOns1OTp7YzpbMTA5NF19fX19fSwxMDQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTE1XX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMzU5XX19fX19fX19fX19LDExOTp7bDp7MTA1OntsOnsxMjA6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MTJdfX19fX19fSwxMTE6e2w6ezEwNDp7bDp7MTAxOntsOns5Nzp7bDp7MTAwOntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjA2XX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjA4XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNzp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1N119fX19fX19LDcyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1OTVdfX19fX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNTBdfX0sYzpbMjUwXX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NTkzXX19fX19fX0sOTg6e2w6ezExNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMThdfX19fX0sMTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzM2NV19fX19fX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjUxXX19LGM6WzI1MV19fX19fSwxMjE6e2w6ezU5OntjOlsxMDkxXX19fX19LDEwMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY0NV19fX19fX19LDk4OntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzM2OV19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDZdfX19fX19fX19LDEwMjp7bDp7MTA1OntsOnsxMTU6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbMTA2MjJdfX19fX19fX19LDExNDp7bDp7NTk6e2M6WzEyMDExNF19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjQ5XX19LGM6WzI0OV19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMDg6e2w6ezU5OntjOls4NjM5XX19fSwxMTQ6e2w6ezU5OntjOls4NjM4XX19fX19fX0sOTg6e2w6ezEwODp7bDp7MTA3OntsOns1OTp7YzpbOTYwMF19fX19fX19fX0sMTA4OntsOns5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7NTk6e2M6Wzg5ODhdfSwxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg5ODhdfX19fX19fX19fX0sMTE0OntsOnsxMTE6e2w6ezExMjp7bDp7NTk6e2M6Wzg5NzVdfX19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls5NzIwXX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMzYzXX19fX19fX0sMTA4OntsOns1OTp7YzpbMTY4XX19LGM6WzE2OF19fX0sMTExOntsOnsxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzcxXX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjZdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkzXX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTddfX19fX19fX19fX19fX19fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExMjp7bDp7MTExOntsOnsxMTE6e2w6ezExMDp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODYzOV19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls4NjM4XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NDZdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NV19LDEwNDp7bDp7NTk6e2M6Wzk3OF19fX0sMTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzk2NV19fX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY0OF19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7OTk6e2w6ezExMTp7bDp7MTE0OntsOnsxMTA6e2w6ezU5OntjOls4OTg5XX0sMTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTg5XX19fX19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4OTc0XX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMzY3XX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk3MjFdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxMF19fX19fX19LDExNjp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5NDRdfX19fX19fSwxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlszNjFdfX19fX19fX19LDExNDp7bDp7MTA1OntsOns1OTp7YzpbOTY1M119LDEwMjp7bDp7NTk6e2M6Wzk2NTJdfX19fX19fX19LDExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY0OF19fX19fX19LDEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjUyXX19LGM6WzI1Ml19fX19fSwxMTk6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOlsxMDY2M119fX19fX19fX19fX19fX0sMTE4OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjYxXX19fX19fX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDk4NF19LDExODp7bDp7NTk6e2M6WzEwOTg1XX19fX19fX19fSw2ODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3Ml19fX19fX19fX0sOTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6WzEwNjUyXX19fX19fX19fSwxMTQ6e2w6ezEwMTp7bDp7MTEyOntsOnsxMTU6e2w6ezEwNTp7bDp7MTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzEwMTNdfX19fX19fX19fX19fX19LDEwNzp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOns5Nzp7bDp7NTk6e2M6WzEwMDhdfX19fX19fX19fX0sMTEwOntsOnsxMTE6e2w6ezExNjp7bDp7MTA0OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbODcwOV19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk4MV19fX19fSwxMDU6e2w6ezU5OntjOls5ODJdfX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezExNjp7bDp7MTExOntsOns1OTp7YzpbODczM119fX19fX19fX19fX19LDExNDp7bDp7NTk6e2M6Wzg1OTddfSwxMDQ6e2w6ezExMTp7bDp7NTk6e2M6WzEwMDldfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTYyXX19fX19fX19fSwxMTc6e2w6ezk4OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOnsxMTA6e2w6ezEwMTp7bDp7MTEzOntsOns1OTp7YzpbODg0Miw2NTAyNF19LDExMzp7bDp7NTk6e2M6WzEwOTU1LDY1MDI0XX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTE1OntsOnsxMDE6e2w6ezExNjp7bDp7MTEwOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDMsNjUwMjRdfSwxMTM6e2w6ezU5OntjOlsxMDk1Niw2NTAyNF19fX19fX19fX19fX19fX19fX19fX0sMTE2OntsOnsxMDQ6e2w6ezEwMTp7bDp7MTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk3N119fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg4ODJdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODg4M119fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDc0XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg2Nl19fX19fX19fX0sMTAxOntsOnsxMDE6e2w6ezU5OntjOls4NzQ0XX0sOTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4ODkxXX19fX19fX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzk0XX19fX19fX0sMTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEyOntsOns1OTp7YzpbODk0Ml19fX19fX19fX0sMTE0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEyNF19fX19fX19LDExNjp7bDp7NTk6e2M6WzEyNF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE1XX19fX19LDEwODp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzg4ODJdfX19fX19fX19LDExMDp7bDp7MTE1OntsOnsxMTc6e2w6ezk4OntsOns1OTp7YzpbODgzNCw4NDAyXX19fSwxMTI6e2w6ezU5OntjOls4ODM1LDg0MDJdfX19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjddfX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4NzMzXX19fX19fX19fSwxMTQ6e2w6ezExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls4ODgzXX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMTFdfX19fX0sMTE3OntsOns5ODp7bDp7MTEwOntsOns2OTp7bDp7NTk6e2M6WzEwOTU1LDY1MDI0XX19fSwxMDE6e2w6ezU5OntjOls4ODQyLDY1MDI0XX19fX19fX0sMTEyOntsOnsxMTA6e2w6ezY5OntsOns1OTp7YzpbMTA5NTYsNjUwMjRdfX19LDEwMTp7bDp7NTk6e2M6Wzg4NDMsNjUwMjRdfX19fX19fX19fX0sMTIyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTIyOntsOns5Nzp7bDp7MTAzOntsOns1OTp7YzpbMTA2NTBdfX19fX19fX19fX19fX19LDExOTp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzM3M119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezk4OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA4NDddfX19fX19fSwxMDM6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NDNdfSwxMTM6e2w6ezU5OntjOls4NzkzXX19fX19fX19fSwxMDU6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTI6e2w6ezU5OntjOls4NDcyXX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE2XX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjhdfX19fX19fSwxMTI6e2w6ezU5OntjOls4NDcyXX19fSwxMTQ6e2w6ezU5OntjOls4NzY4XX0sMTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDQ6e2w6ezU5OntjOls4NzY4XX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxMl19fX19fX19fX0sMTIwOntsOns5OTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4OThdfX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbOTcxMV19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODg5OV19fX19fX19LDEwMDp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NjFdfX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE3XX19fX19LDEwNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMzRdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDIzMV19fX19fX19fX0sMTA1OntsOns1OTp7YzpbOTU4XX19fSwxMDg6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwMjMyXX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMjldfX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwMjM2XX19fX19fX0sMTEwOntsOnsxMDU6e2w6ezExNTp7bDp7NTk6e2M6Wzg5NTVdfX19fX19fSwxMTE6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDc1Ml19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTY5XX19fSwxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA3NTNdfX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNzU0XX19fX19fX19fX19LDExNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMzNdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDIzMF19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDEzXX19fX19LDExMzp7bDp7OTk6e2w6ezExNzp7bDp7MTEyOntsOns1OTp7YzpbMTA3NThdfX19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc1Nl19fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NTFdfX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4ODk3XX19fX19fX0sMTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4ODk2XX19fX19fX19fX19fX0sMTIxOntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNTNdfX0sYzpbMjUzXX19fX19LDEyMTp7bDp7NTk6e2M6WzExMDNdfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMzc1XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA5OV19fX19fSwxMDE6e2w6ezExMDp7bDp7NTk6e2M6WzE2NV19fSxjOlsxNjVdfX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE4XX19fX19LDEwNTp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMTFdfX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTcwXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDE0XX19fX19fX0sMTE3OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTEwMl19fX19fSwxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzI1NV19fSxjOlsyNTVdfX19fX19fSwxMjI6e2w6ezk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzM3OF19fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszODJdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNzldfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzM4MF19fX19fX19LDEwMTp7bDp7MTAxOntsOnsxMTY6e2w6ezExNDp7bDp7MTAyOntsOns1OTp7YzpbODQ4OF19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk1MF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE5XX19fX19LDEwNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNzhdfX19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjY5XX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE3MV19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxNV19fX19fX19LDExOTp7bDp7MTA2OntsOns1OTp7YzpbODIwNV19fX0sMTEwOntsOnsxMDY6e2w6ezU5OntjOls4MjA0XX19fX19fX19fX07CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdG9rZW5pemF0aW9uL3ByZXByb2Nlc3Nvci5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi90b2tlbml6YXRpb24vcHJlcHJvY2Vzc29yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5NmNkMjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdG9rZW5pemF0aW9uL3ByZXByb2Nlc3Nvci5qcwpAQCAtMCwwICsxLDExNSBAQAorJ3VzZSBzdHJpY3QnOworCit2YXIgVU5JQ09ERSA9IHJlcXVpcmUoJy4uL2NvbW1vbi91bmljb2RlJyk7CisKKy8vQWxpYXNlcwordmFyICQgPSBVTklDT0RFLkNPREVfUE9JTlRTOworCisvL1V0aWxzCisKKy8vT1BUSU1JWkFUSU9OOiB0aGVzZSB1dGlsaXR5IGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIG1vdmVkIG91dCBvZiB0aGlzIG1vZHVsZS4gVjggQ3JhbmtzaGFmdCB3aWxsIG5vdCBpbmxpbmUKKy8vdGhpcyBmdW5jdGlvbnMgaWYgdGhleSB3aWxsIGJlIHNpdHVhdGVkIGluIGFub3RoZXIgbW9kdWxlIGR1ZSB0byBjb250ZXh0IHN3aXRjaC4KKy8vQWx3YXlzIHBlcmZvcm0gaW5saW5pbmcgY2hlY2sgYmVmb3JlIG1vZGlmeWluZyB0aGlzIGZ1bmN0aW9ucyAoJ25vZGUgLS10cmFjZS1pbmxpbmluZycpLgorZnVuY3Rpb24gaXNSZXNlcnZlZENvZGVQb2ludChjcCkgeworICAgIHJldHVybiBjcCA+PSAweEQ4MDAgJiYgY3AgPD0gMHhERkZGIHx8IGNwID4gMHgxMEZGRkY7Cit9CisKK2Z1bmN0aW9uIGlzU3Vycm9nYXRlUGFpcihjcDEsIGNwMikgeworICAgIHJldHVybiBjcDEgPj0gMHhEODAwICYmIGNwMSA8PSAweERCRkYgJiYgY3AyID49IDB4REMwMCAmJiBjcDIgPD0gMHhERkZGOworfQorCitmdW5jdGlvbiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwMSwgY3AyKSB7CisgICAgcmV0dXJuIChjcDEgLSAweEQ4MDApICogMHg0MDAgKyAweDI0MDAgKyBjcDI7Cit9CisKKy8vUHJlcHJvY2Vzc29yCisvL05PVEU6IEhUTUwgaW5wdXQgcHJlcHJvY2Vzc2luZworLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtKQordmFyIFByZXByb2Nlc3NvciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGh0bWwpIHsKKyAgICB0aGlzLndyaXRlKGh0bWwpOworCisgICAgLy9OT1RFOiBvbmUgbGVhZGluZyBVK0ZFRkYgQllURSBPUkRFUiBNQVJLIGNoYXJhY3RlciBtdXN0IGJlIGlnbm9yZWQgaWYgYW55IGFyZSBwcmVzZW50IGluIHRoZSBpbnB1dCBzdHJlYW0uCisgICAgdGhpcy5wb3MgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCgwKSA9PT0gJC5CT00gPyAwIDogLTE7CisKKyAgICB0aGlzLmdhcFN0YWNrID0gW107CisgICAgdGhpcy5sYXN0R2FwUG9zID0gLTE7CisgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKK307CisKK1ByZXByb2Nlc3Nvci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoaHRtbCkgeworICAgIGlmICh0aGlzLmh0bWwpIHsKKyAgICAgICAgdGhpcy5odG1sID0gdGhpcy5odG1sLnN1YnN0cmluZygwLCB0aGlzLnBvcyArIDEpICsKKyAgICAgICAgICAgICAgICAgICAgaHRtbCArCisgICAgICAgICAgICAgICAgICAgIHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MgKyAxLCB0aGlzLmh0bWwubGVuZ3RoKTsKKworICAgIH0KKyAgICBlbHNlCisgICAgICAgIHRoaXMuaHRtbCA9IGh0bWw7CisKKworICAgIHRoaXMubGFzdENoYXJQb3MgPSB0aGlzLmh0bWwubGVuZ3RoIC0gMTsKK307CisKK1ByZXByb2Nlc3Nvci5wcm90b3R5cGUuYWR2YW5jZUFuZFBlZWtDb2RlUG9pbnQgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5wb3MrKzsKKworICAgIGlmICh0aGlzLnBvcyA+IHRoaXMubGFzdENoYXJQb3MpCisgICAgICAgIHJldHVybiAkLkVPRjsKKworICAgIHZhciBjcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zKTsKKworICAgIC8vTk9URTogYW55IFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzIHRoYXQgaW1tZWRpYXRlbHkgZm9sbG93IGEgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlcgorICAgIC8vbXVzdCBiZSBpZ25vcmVkLgorICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSAmJiBjcCA9PT0gJC5MSU5FX0ZFRUQpIHsKKyAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fYWRkR2FwKCk7CisgICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2VBbmRQZWVrQ29kZVBvaW50KCk7CisgICAgfQorCisgICAgLy9OT1RFOiBhbGwgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlcnMgbXVzdCBiZSBjb252ZXJ0ZWQgdG8gVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlcnMKKyAgICBpZiAoY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7CisgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuICQuTElORV9GRUVEOworICAgIH0KKworICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7CisKKyAgICAvL09QVElNSVpBVElPTjogZmlyc3QgcGVyZm9ybSBjaGVjayBpZiB0aGUgY29kZSBwb2ludCBpbiB0aGUgYWxsb3dlZCByYW5nZSB0aGF0IGNvdmVycyBtb3N0IGNvbW1vbgorICAgIC8vSFRNTCBpbnB1dCAoZS5nLiBBU0NJSSBjb2RlcykgdG8gYXZvaWQgcGVyZm9ybWFuY2UtY29zdCBvcGVyYXRpb25zIGZvciBoaWdoLXJhbmdlIGNvZGUgcG9pbnRzLgorICAgIHJldHVybiBjcCA+PSAweEQ4MDAgPyB0aGlzLl9wcm9jZXNzSGlnaFJhbmdlQ29kZVBvaW50KGNwKSA6IGNwOworfTsKKworUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5fcHJvY2Vzc0hpZ2hSYW5nZUNvZGVQb2ludCA9IGZ1bmN0aW9uIChjcCkgeworICAgIC8vTk9URTogdHJ5IHRvIHBlZWsgYSBzdXJyb2dhdGUgcGFpcgorICAgIGlmICh0aGlzLnBvcyAhPT0gdGhpcy5sYXN0Q2hhclBvcykgeworICAgICAgICB2YXIgbmV4dENwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyAxKTsKKworICAgICAgICBpZiAoaXNTdXJyb2dhdGVQYWlyKGNwLCBuZXh0Q3ApKSB7CisgICAgICAgICAgICAvL05PVEU6IHdlIGhhdmUgYSBzdXJyb2dhdGUgcGFpci4gUGVlayBwYWlyIGNoYXJhY3RlciBhbmQgcmVjYWxjdWxhdGUgY29kZSBwb2ludC4KKyAgICAgICAgICAgIHRoaXMucG9zKys7CisgICAgICAgICAgICBjcCA9IGdldFN1cnJvZ2F0ZVBhaXJDb2RlUG9pbnQoY3AsIG5leHRDcCk7CisKKyAgICAgICAgICAgIC8vTk9URTogYWRkIGdhcCB0aGF0IHNob3VsZCBiZSBhdm9pZGVkIGR1cmluZyByZXRyZWF0CisgICAgICAgICAgICB0aGlzLl9hZGRHYXAoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChpc1Jlc2VydmVkQ29kZVBvaW50KGNwKSkKKyAgICAgICAgY3AgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIHJldHVybiBjcDsKK307CisKK1ByZXByb2Nlc3Nvci5wcm90b3R5cGUuX2FkZEdhcCA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLmdhcFN0YWNrLnB1c2godGhpcy5sYXN0R2FwUG9zKTsKKyAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLnBvczsKK307CisKK1ByZXByb2Nlc3Nvci5wcm90b3R5cGUucmV0cmVhdCA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAodGhpcy5wb3MgPT09IHRoaXMubGFzdEdhcFBvcykgeworICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLmdhcFN0YWNrLnBvcCgpOworICAgICAgICB0aGlzLnBvcy0tOworICAgIH0KKworICAgIHRoaXMucG9zLS07Cit9OwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3Rva2VuaXphdGlvbi90b2tlbml6ZXIuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdG9rZW5pemF0aW9uL3Rva2VuaXplci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDU2Mzg2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3Rva2VuaXphdGlvbi90b2tlbml6ZXIuanMKQEAgLTAsMCArMSwyMzE3IEBACisndXNlIHN0cmljdCc7CisKK3ZhciBQcmVwcm9jZXNzb3IgPSByZXF1aXJlKCcuL3ByZXByb2Nlc3NvcicpLAorICAgIExvY2F0aW9uSW5mb01peGluID0gcmVxdWlyZSgnLi9sb2NhdGlvbl9pbmZvX21peGluJyksCisgICAgVU5JQ09ERSA9IHJlcXVpcmUoJy4uL2NvbW1vbi91bmljb2RlJyksCisgICAgTkFNRURfRU5USVRZX1RSSUUgPSByZXF1aXJlKCcuL25hbWVkX2VudGl0eV90cmllJyk7CisKKy8vQWxpYXNlcwordmFyICQgPSBVTklDT0RFLkNPREVfUE9JTlRTLAorICAgICQkID0gVU5JQ09ERS5DT0RFX1BPSU5UX1NFUVVFTkNFUzsKKworLy9SZXBsYWNlbWVudCBjb2RlIHBvaW50cyBmb3IgbnVtZXJpYyBlbnRpdGllcwordmFyIE5VTUVSSUNfRU5USVRZX1JFUExBQ0VNRU5UUyA9IHsKKyAgICAweDAwOiAweEZGRkQsIDB4MEQ6IDB4MDAwRCwgMHg4MDogMHgyMEFDLCAweDgxOiAweDAwODEsIDB4ODI6IDB4MjAxQSwgMHg4MzogMHgwMTkyLCAweDg0OiAweDIwMUUsCisgICAgMHg4NTogMHgyMDI2LCAweDg2OiAweDIwMjAsIDB4ODc6IDB4MjAyMSwgMHg4ODogMHgwMkM2LCAweDg5OiAweDIwMzAsIDB4OEE6IDB4MDE2MCwgMHg4QjogMHgyMDM5LAorICAgIDB4OEM6IDB4MDE1MiwgMHg4RDogMHgwMDhELCAweDhFOiAweDAxN0QsIDB4OEY6IDB4MDA4RiwgMHg5MDogMHgwMDkwLCAweDkxOiAweDIwMTgsIDB4OTI6IDB4MjAxOSwKKyAgICAweDkzOiAweDIwMUMsIDB4OTQ6IDB4MjAxRCwgMHg5NTogMHgyMDIyLCAweDk2OiAweDIwMTMsIDB4OTc6IDB4MjAxNCwgMHg5ODogMHgwMkRDLCAweDk5OiAweDIxMjIsCisgICAgMHg5QTogMHgwMTYxLCAweDlCOiAweDIwM0EsIDB4OUM6IDB4MDE1MywgMHg5RDogMHgwMDlELCAweDlFOiAweDAxN0UsIDB4OUY6IDB4MDE3OAorfTsKKworLy9TdGF0ZXMKK3ZhciBEQVRBX1NUQVRFID0gJ0RBVEFfU1RBVEUnLAorICAgIENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fREFUQV9TVEFURSA9ICdDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0RBVEFfU1RBVEUnLAorICAgIFJDREFUQV9TVEFURSA9ICdSQ0RBVEFfU1RBVEUnLAorICAgIENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fUkNEQVRBX1NUQVRFID0gJ0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fUkNEQVRBX1NUQVRFJywKKyAgICBSQVdURVhUX1NUQVRFID0gJ1JBV1RFWFRfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX1NUQVRFID0gJ1NDUklQVF9EQVRBX1NUQVRFJywKKyAgICBQTEFJTlRFWFRfU1RBVEUgPSAnUExBSU5URVhUX1NUQVRFJywKKyAgICBUQUdfT1BFTl9TVEFURSA9ICdUQUdfT1BFTl9TVEFURScsCisgICAgRU5EX1RBR19PUEVOX1NUQVRFID0gJ0VORF9UQUdfT1BFTl9TVEFURScsCisgICAgVEFHX05BTUVfU1RBVEUgPSAnVEFHX05BTUVfU1RBVEUnLAorICAgIFJDREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURSA9ICdSQ0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEUnLAorICAgIFJDREFUQV9FTkRfVEFHX09QRU5fU1RBVEUgPSAnUkNEQVRBX0VORF9UQUdfT1BFTl9TVEFURScsCisgICAgUkNEQVRBX0VORF9UQUdfTkFNRV9TVEFURSA9ICdSQ0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFJywKKyAgICBSQVdURVhUX0xFU1NfVEhBTl9TSUdOX1NUQVRFID0gJ1JBV1RFWFRfTEVTU19USEFOX1NJR05fU1RBVEUnLAorICAgIFJBV1RFWFRfRU5EX1RBR19PUEVOX1NUQVRFID0gJ1JBV1RFWFRfRU5EX1RBR19PUEVOX1NUQVRFJywKKyAgICBSQVdURVhUX0VORF9UQUdfTkFNRV9TVEFURSA9ICdSQVdURVhUX0VORF9UQUdfTkFNRV9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEUgPSAnU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VORF9UQUdfT1BFTl9TVEFURSA9ICdTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5fU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VORF9UQUdfTkFNRV9TVEFURSA9ICdTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRV9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRV9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVF9TVEFURSA9ICdTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURSA9ICdTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9TVEFURSA9ICdTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURSA9ICdTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRfU1RBVEUnLAorICAgIEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURSA9ICdCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUnLAorICAgIEFUVFJJQlVURV9OQU1FX1NUQVRFID0gJ0FUVFJJQlVURV9OQU1FX1NUQVRFJywKKyAgICBBRlRFUl9BVFRSSUJVVEVfTkFNRV9TVEFURSA9ICdBRlRFUl9BVFRSSUJVVEVfTkFNRV9TVEFURScsCisgICAgQkVGT1JFX0FUVFJJQlVURV9WQUxVRV9TVEFURSA9ICdCRUZPUkVfQVRUUklCVVRFX1ZBTFVFX1NUQVRFJywKKyAgICBBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRF9TVEFURSA9ICdBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRF9TVEFURScsCisgICAgQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURfU1RBVEUgPSAnQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURfU1RBVEUnLAorICAgIEFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRF9TVEFURSA9ICdBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEUnLAorICAgIENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fQVRUUklCVVRFX1ZBTFVFX1NUQVRFID0gJ0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fQVRUUklCVVRFX1ZBTFVFX1NUQVRFJywKKyAgICBBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFID0gJ0FGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURfU1RBVEUnLAorICAgIFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEUgPSAnU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURScsCisgICAgQk9HVVNfQ09NTUVOVF9TVEFURSA9ICdCT0dVU19DT01NRU5UX1NUQVRFJywKKyAgICBNQVJLVVBfREVDTEFSQVRJT05fT1BFTl9TVEFURSA9ICdNQVJLVVBfREVDTEFSQVRJT05fT1BFTl9TVEFURScsCisgICAgQ09NTUVOVF9TVEFSVF9TVEFURSA9ICdDT01NRU5UX1NUQVJUX1NUQVRFJywKKyAgICBDT01NRU5UX1NUQVJUX0RBU0hfU1RBVEUgPSAnQ09NTUVOVF9TVEFSVF9EQVNIX1NUQVRFJywKKyAgICBDT01NRU5UX1NUQVRFID0gJ0NPTU1FTlRfU1RBVEUnLAorICAgIENPTU1FTlRfRU5EX0RBU0hfU1RBVEUgPSAnQ09NTUVOVF9FTkRfREFTSF9TVEFURScsCisgICAgQ09NTUVOVF9FTkRfU1RBVEUgPSAnQ09NTUVOVF9FTkRfU1RBVEUnLAorICAgIENPTU1FTlRfRU5EX0JBTkdfU1RBVEUgPSAnQ09NTUVOVF9FTkRfQkFOR19TVEFURScsCisgICAgRE9DVFlQRV9TVEFURSA9ICdET0NUWVBFX1NUQVRFJywKKyAgICBCRUZPUkVfRE9DVFlQRV9OQU1FX1NUQVRFID0gJ0JFRk9SRV9ET0NUWVBFX05BTUVfU1RBVEUnLAorICAgIERPQ1RZUEVfTkFNRV9TVEFURSA9ICdET0NUWVBFX05BTUVfU1RBVEUnLAorICAgIEFGVEVSX0RPQ1RZUEVfTkFNRV9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX05BTUVfU1RBVEUnLAorICAgIEFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRfU1RBVEUgPSAnQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRF9TVEFURScsCisgICAgQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEUgPSAnQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEUnLAorICAgIERPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURSA9ICdET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEUnLAorICAgIERPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURSA9ICdET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEUnLAorICAgIEFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEUgPSAnQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TVEFURScsCisgICAgQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTX1NUQVRFID0gJ0JFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU19TVEFURScsCisgICAgQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRF9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEX1NUQVRFJywKKyAgICBCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURSA9ICdCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURScsCisgICAgRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURScsCisgICAgRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURScsCisgICAgQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFJywKKyAgICBCT0dVU19ET0NUWVBFX1NUQVRFID0gJ0JPR1VTX0RPQ1RZUEVfU1RBVEUnLAorICAgIENEQVRBX1NFQ1RJT05fU1RBVEUgPSAnQ0RBVEFfU0VDVElPTl9TVEFURSc7CisKKy8vVXRpbHMKKworLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZQorLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLgorLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuCitmdW5jdGlvbiBpc1doaXRlc3BhY2UoY3ApIHsKKyAgICByZXR1cm4gY3AgPT09ICQuU1BBQ0UgfHwgY3AgPT09ICQuTElORV9GRUVEIHx8IGNwID09PSAkLlRBQlVMQVRJT04gfHwgY3AgPT09ICQuRk9STV9GRUVEOworfQorCitmdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHsKKyAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTsKK30KKworZnVuY3Rpb24gaXNBc2NpaVVwcGVyKGNwKSB7CisgICAgcmV0dXJuIGNwID49ICQuTEFUSU5fQ0FQSVRBTF9BICYmIGNwIDw9ICQuTEFUSU5fQ0FQSVRBTF9aOworfQorCitmdW5jdGlvbiBpc0FzY2lpTG93ZXIoY3ApIHsKKyAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfWjsKK30KKworZnVuY3Rpb24gaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkgeworICAgIHJldHVybiBpc0FzY2lpRGlnaXQoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCkgfHwgaXNBc2NpaUxvd2VyKGNwKTsKK30KKworZnVuY3Rpb24gaXNEaWdpdChjcCwgaXNIZXgpIHsKKyAgICByZXR1cm4gaXNBc2NpaURpZ2l0KGNwKSB8fCAoaXNIZXggJiYgKChjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfRikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9GKSkpOworfQorCitmdW5jdGlvbiBpc1Jlc2VydmVkQ29kZVBvaW50KGNwKSB7CisgICAgcmV0dXJuIGNwID49IDB4RDgwMCAmJiBjcCA8PSAweERGRkYgfHwgY3AgPiAweDEwRkZGRjsKK30KKworZnVuY3Rpb24gdG9Bc2NpaUxvd2VyQ29kZVBvaW50KGNwKSB7CisgICAgcmV0dXJuIGNwICsgMHgwMDIwOworfQorCisvL05PVEU6IFN0cmluZy5mcm9tQ2hhckNvZGUoKSBmdW5jdGlvbiBjYW4gaGFuZGxlIG9ubHkgY2hhcmFjdGVycyBmcm9tIEJNUCBzdWJzZXQuCisvL1NvLCB3ZSBuZWVkIHRvIHdvcmthcm91bmQgdGhpcyBtYW51YWxseS4KKy8vKHNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9TdHJpbmcvZnJvbUNoYXJDb2RlI0dldHRpbmdfaXRfdG9fd29ya193aXRoX2hpZ2hlcl92YWx1ZXMpCitmdW5jdGlvbiB0b0NoYXIoY3ApIHsKKyAgICBpZiAoY3AgPD0gMHhGRkZGKQorICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjcCk7CisKKyAgICBjcCAtPSAweDEwMDAwOworICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNwID4+PiAxMCAmIDB4M0ZGIHwgMHhEODAwKSArIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhEQzAwIHwgY3AgJiAweDNGRik7Cit9CisKK2Z1bmN0aW9uIHRvQXNjaWlMb3dlckNoYXIoY3ApIHsKKyAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0b0FzY2lpTG93ZXJDb2RlUG9pbnQoY3ApKTsKK30KKworLy9Ub2tlbml6ZXIKK3ZhciBUb2tlbml6ZXIgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChodG1sLCBvcHRpb25zKSB7CisgICAgdGhpcy5kaXNhYmxlRW50aXRpZXNEZWNvZGluZyA9IGZhbHNlOworCisgICAgdGhpcy5wcmVwcm9jZXNzb3IgPSBuZXcgUHJlcHJvY2Vzc29yKGh0bWwpOworCisgICAgdGhpcy50b2tlblF1ZXVlID0gW107CisKKyAgICB0aGlzLmFsbG93Q0RBVEEgPSBmYWxzZTsKKworICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIHRoaXMucmV0dXJuU3RhdGUgPSAnJzsKKworICAgIHRoaXMuY29uc3VtcHRpb25Qb3MgPSAwOworCisgICAgdGhpcy50ZW1wQnVmZiA9IFtdOworICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9IHZvaWQgMDsKKyAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSAnJzsKKworICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0gbnVsbDsKKyAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7CisgICAgdGhpcy5jdXJyZW50QXR0ciA9IG51bGw7CisKKyAgICBpZiAob3B0aW9ucykgeworICAgICAgICB0aGlzLmRpc2FibGVFbnRpdGllc0RlY29kaW5nID0gIW9wdGlvbnMuZGVjb2RlSHRtbEVudGl0aWVzOworCisgICAgICAgIGlmIChvcHRpb25zLmxvY2F0aW9uSW5mbykKKyAgICAgICAgICAgIExvY2F0aW9uSW5mb01peGluLmFzc2lnbih0aGlzKTsKKyAgICB9Cit9OworCisvL1Rva2VuIHR5cGVzCitUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOID0gJ0NIQVJBQ1RFUl9UT0tFTic7CitUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU4gPSAnTlVMTF9DSEFSQUNURVJfVE9LRU4nOworVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOID0gJ1dISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOJzsKK1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gPSAnU1RBUlRfVEFHX1RPS0VOJzsKK1Rva2VuaXplci5FTkRfVEFHX1RPS0VOID0gJ0VORF9UQUdfVE9LRU4nOworVG9rZW5pemVyLkNPTU1FTlRfVE9LRU4gPSAnQ09NTUVOVF9UT0tFTic7CitUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTiA9ICdET0NUWVBFX1RPS0VOJzsKK1Rva2VuaXplci5FT0ZfVE9LRU4gPSAnRU9GX1RPS0VOJzsKKworLy9Ub2tlbml6ZXIgaW5pdGlhbCBzdGF0ZXMgZm9yIGRpZmZlcmVudCBtb2RlcworVG9rZW5pemVyLk1PREUgPSBUb2tlbml6ZXIucHJvdG90eXBlLk1PREUgPSB7CisgICAgREFUQTogREFUQV9TVEFURSwKKyAgICBSQ0RBVEE6IFJDREFUQV9TVEFURSwKKyAgICBSQVdURVhUOiBSQVdURVhUX1NUQVRFLAorICAgIFNDUklQVF9EQVRBOiBTQ1JJUFRfREFUQV9TVEFURSwKKyAgICBQTEFJTlRFWFQ6IFBMQUlOVEVYVF9TVEFURQorfTsKKworLy9TdGF0aWMKK1Rva2VuaXplci5nZXRUb2tlbkF0dHIgPSBmdW5jdGlvbiAodG9rZW4sIGF0dHJOYW1lKSB7CisgICAgZm9yICh2YXIgaSA9IHRva2VuLmF0dHJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlmICh0b2tlbi5hdHRyc1tpXS5uYW1lID09PSBhdHRyTmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbi5hdHRyc1tpXS52YWx1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbDsKK307CisKKy8vR2V0IHRva2VuCitUb2tlbml6ZXIucHJvdG90eXBlLmdldE5leHRUb2tlbiA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAoIXRoaXMudG9rZW5RdWV1ZS5sZW5ndGgpCisgICAgICAgIHRoaXNbdGhpcy5zdGF0ZV0odGhpcy5fY29uc3VtZSgpKTsKKworICAgIHJldHVybiB0aGlzLnRva2VuUXVldWUuc2hpZnQoKTsKK307CisKKy8vQ29uc3VtcHRpb24KK1Rva2VuaXplci5wcm90b3R5cGUuX2NvbnN1bWUgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5jb25zdW1wdGlvblBvcysrOworICAgIHJldHVybiB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlQW5kUGVla0NvZGVQb2ludCgpOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fdW5jb25zdW1lID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuY29uc3VtcHRpb25Qb3MtLTsKKyAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KCk7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl91bmNvbnN1bWVTZXZlcmFsID0gZnVuY3Rpb24gKGNvdW50KSB7CisgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgIHRoaXMuX3VuY29uc3VtZSgpOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fcmVjb25zdW1lSW5TdGF0ZSA9IGZ1bmN0aW9uIChzdGF0ZSkgeworICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTsKKyAgICB0aGlzLl91bmNvbnN1bWUoKTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCA9IGZ1bmN0aW9uIChwYXR0ZXJuLCBzdGFydENwLCBjYXNlU2Vuc2l0aXZlKSB7CisgICAgdmFyIHJvbGxiYWNrUG9zID0gdGhpcy5jb25zdW1wdGlvblBvcywKKyAgICAgICAgaXNNYXRjaCA9IHRydWUsCisgICAgICAgIHBhdHRlcm5MZW5ndGggPSBwYXR0ZXJuLmxlbmd0aCwKKyAgICAgICAgcGF0dGVyblBvcyA9IDAsCisgICAgICAgIGNwID0gc3RhcnRDcCwKKyAgICAgICAgcGF0dGVybkNwID0gdm9pZCAwOworCisgICAgZm9yICg7IHBhdHRlcm5Qb3MgPCBwYXR0ZXJuTGVuZ3RoOyBwYXR0ZXJuUG9zKyspIHsKKyAgICAgICAgaWYgKHBhdHRlcm5Qb3MgPiAwKQorICAgICAgICAgICAgY3AgPSB0aGlzLl9jb25zdW1lKCk7CisKKyAgICAgICAgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICAgICAgaXNNYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBwYXR0ZXJuQ3AgPSBwYXR0ZXJuW3BhdHRlcm5Qb3NdOworCisgICAgICAgIGlmIChjcCAhPT0gcGF0dGVybkNwICYmIChjYXNlU2Vuc2l0aXZlIHx8IGNwICE9PSB0b0FzY2lpTG93ZXJDb2RlUG9pbnQocGF0dGVybkNwKSkpIHsKKyAgICAgICAgICAgIGlzTWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFpc01hdGNoKQorICAgICAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKHRoaXMuY29uc3VtcHRpb25Qb3MgLSByb2xsYmFja1Bvcyk7CisKKyAgICByZXR1cm4gaXNNYXRjaDsKK307CisKKy8vTG9va2FoZWFkCitUb2tlbml6ZXIucHJvdG90eXBlLl9sb29rYWhlYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGNwID0gdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZUFuZFBlZWtDb2RlUG9pbnQoKTsKKyAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KCk7CisKKyAgICByZXR1cm4gY3A7Cit9OworCisvL1RlbXAgYnVmZmVyCitUb2tlbml6ZXIucHJvdG90eXBlLmlzVGVtcEJ1ZmZlckVxdWFsVG9TY3JpcHRTdHJpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgaWYgKHRoaXMudGVtcEJ1ZmYubGVuZ3RoICE9PSAkJC5TQ1JJUFRfU1RSSU5HLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRlbXBCdWZmLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmICh0aGlzLnRlbXBCdWZmW2ldICE9PSAkJC5TQ1JJUFRfU1RSSU5HW2ldKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfTsKKworLy9Ub2tlbiBjcmVhdGlvbgorVG9rZW5pemVyLnByb3RvdHlwZS5idWlsZFN0YXJ0VGFnVG9rZW4gPSBmdW5jdGlvbiAodGFnTmFtZSkgeworICAgIHJldHVybiB7CisgICAgICAgIHR5cGU6IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4sCisgICAgICAgIHRhZ05hbWU6IHRhZ05hbWUsCisgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSwKKyAgICAgICAgYXR0cnM6IFtdCisgICAgfTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuYnVpbGRFbmRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgdHlwZTogVG9rZW5pemVyLkVORF9UQUdfVE9LRU4sCisgICAgICAgIHRhZ05hbWU6IHRhZ05hbWUsCisgICAgICAgIGlnbm9yZWQ6IGZhbHNlLAorICAgICAgICBhdHRyczogW10KKyAgICB9OworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlU3RhcnRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0YWdOYW1lRmlyc3RDaCkgeworICAgIHRoaXMuY3VycmVudFRva2VuID0gdGhpcy5idWlsZFN0YXJ0VGFnVG9rZW4odGFnTmFtZUZpcnN0Q2gpOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlRW5kVGFnVG9rZW4gPSBmdW5jdGlvbiAodGFnTmFtZUZpcnN0Q2gpIHsKKyAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRoaXMuYnVpbGRFbmRUYWdUb2tlbih0YWdOYW1lRmlyc3RDaCk7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVDb21tZW50VG9rZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7CisgICAgICAgIHR5cGU6IFRva2VuaXplci5DT01NRU5UX1RPS0VOLAorICAgICAgICBkYXRhOiAnJworICAgIH07Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVEb2N0eXBlVG9rZW4gPSBmdW5jdGlvbiAoZG9jdHlwZU5hbWVGaXJzdENoKSB7CisgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7CisgICAgICAgIHR5cGU6IFRva2VuaXplci5ET0NUWVBFX1RPS0VOLAorICAgICAgICBuYW1lOiBkb2N0eXBlTmFtZUZpcnN0Q2ggfHwgJycsCisgICAgICAgIGZvcmNlUXVpcmtzOiBmYWxzZSwKKyAgICAgICAgcHVibGljSWQ6IG51bGwsCisgICAgICAgIHN5c3RlbUlkOiBudWxsCisgICAgfTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2NyZWF0ZUNoYXJhY3RlclRva2VuID0gZnVuY3Rpb24gKHR5cGUsIGNoKSB7CisgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSB7CisgICAgICAgIHR5cGU6IHR5cGUsCisgICAgICAgIGNoYXJzOiBjaAorICAgIH07Cit9OworCisvL1RhZyBhdHRyaWJ1dGVzCitUb2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVBdHRyID0gZnVuY3Rpb24gKGF0dHJOYW1lRmlyc3RDaCkgeworICAgIHRoaXMuY3VycmVudEF0dHIgPSB7CisgICAgICAgIG5hbWU6IGF0dHJOYW1lRmlyc3RDaCwKKyAgICAgICAgdmFsdWU6ICcnCisgICAgfTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2lzRHVwbGljYXRlQXR0ciA9IGZ1bmN0aW9uICgpIHsKKyAgICByZXR1cm4gVG9rZW5pemVyLmdldFRva2VuQXR0cih0aGlzLmN1cnJlbnRUb2tlbiwgdGhpcy5jdXJyZW50QXR0ci5uYW1lKSAhPT0gbnVsbDsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2xlYXZlQXR0ck5hbWUgPSBmdW5jdGlvbiAodG9TdGF0ZSkgeworICAgIHRoaXMuc3RhdGUgPSB0b1N0YXRlOworCisgICAgaWYgKCF0aGlzLl9pc0R1cGxpY2F0ZUF0dHIoKSkKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uYXR0cnMucHVzaCh0aGlzLmN1cnJlbnRBdHRyKTsKK307CisKKy8vQXBwcm9wcmlhdGUgZW5kIHRhZyB0b2tlbgorLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90b2tlbml6YXRpb24uaHRtbCNhcHByb3ByaWF0ZS1lbmQtdGFnLXRva2VuKQorVG9rZW5pemVyLnByb3RvdHlwZS5faXNBcHByb3ByaWF0ZUVuZFRhZ1Rva2VuID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPT09IHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWU7Cit9OworCisvL1Rva2VuIGVtaXNzaW9uCitUb2tlbml6ZXIucHJvdG90eXBlLl9lbWl0Q3VycmVudFRva2VuID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4oKTsKKworICAgIC8vTk9URTogc3RvcmUgZW1pdGVkIHN0YXJ0IHRhZydzIHRhZ05hbWUgdG8gZGV0ZXJtaW5lIGlzIHRoZSBmb2xsb3dpbmcgZW5kIHRhZyB0b2tlbiBpcyBhcHByb3ByaWF0ZS4KKyAgICBpZiAodGhpcy5jdXJyZW50VG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTikKKyAgICAgICAgdGhpcy5sYXN0U3RhcnRUYWdOYW1lID0gdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZTsKKworICAgIHRoaXMudG9rZW5RdWV1ZS5wdXNoKHRoaXMuY3VycmVudFRva2VuKTsKKyAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuID0gZnVuY3Rpb24gKCkgeworICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikgeworICAgICAgICB0aGlzLnRva2VuUXVldWUucHVzaCh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7CisgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0gbnVsbDsKKyAgICB9Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9lbWl0RU9GVG9rZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbigpOworICAgIHRoaXMudG9rZW5RdWV1ZS5wdXNoKHt0eXBlOiBUb2tlbml6ZXIuRU9GX1RPS0VOfSk7Cit9OworCisvL0NoYXJhY3RlcnMgZW1pc3Npb24KKworLy9PUFRJTUlaQVRJT046IHNwZWNpZmljYXRpb24gdXNlcyBvbmx5IG9uZSB0eXBlIG9mIGNoYXJhY3RlciB0b2tlbnMgKG9uZSB0b2tlbiBwZXIgY2hhcmFjdGVyKS4KKy8vVGhpcyBjYXVzZXMgYSBodWdlIG1lbW9yeSBvdmVyaGVhZCBhbmQgYSBsb3Qgb2YgdW5uZWNlc3NhcnkgcGFyc2VyIGxvb3BzLiBwYXJzZTUgdXNlcyAzIGdyb3VwcyBvZiBjaGFyYWN0ZXJzLgorLy9JZiB3ZSBoYXZlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSBncm91cCwgcGFyc2VyIGNhbiBwcm9jZXNzIGl0CisvL2FzIGEgc2luZ2xlIHNvbGlkIGNoYXJhY3RlciB0b2tlbi4KKy8vU28sIHRoZXJlIGFyZSAzIHR5cGVzIG9mIGNoYXJhY3RlciB0b2tlbnMgaW4gcGFyc2U1OgorLy8xKU5VTExfQ0hBUkFDVEVSX1RPS0VOIC0gXHUwMDAwLWNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1x1MDAwMFx1MDAwMFx1MDAwMCcpCisvLzIpV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4gLSBhbnkgd2hpdGVzcGFjZS9uZXctbGluZSBjaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcbiAgXHJcdCAgIFxmJykKKy8vMylDSEFSQUNURVJfVE9LRU4gLSBhbnkgY2hhcmFjdGVyIHNlcXVlbmNlIHdoaWNoIGRvbid0IGJlbG9uZyB0byBncm91cHMgMSBhbmQgMiAoZS5nLiAnYWJjZGVmMTIzNEBAIyQlXicpCitUb2tlbml6ZXIucHJvdG90eXBlLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBmdW5jdGlvbiAodHlwZSwgY2gpIHsKKyAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gJiYgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4udHlwZSAhPT0gdHlwZSkKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbigpOworCisgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKQorICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5jaGFycyArPSBjaDsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fY3JlYXRlQ2hhcmFjdGVyVG9rZW4odHlwZSwgY2gpOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdENvZGVQb2ludCA9IGZ1bmN0aW9uIChjcCkgeworICAgIHZhciB0eXBlID0gVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTjsKKworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0eXBlID0gVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdHlwZSA9IFRva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTjsKKworICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCB0b0NoYXIoY3ApKTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyA9IGZ1bmN0aW9uIChjb2RlUG9pbnRzKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2RlUG9pbnRzLmxlbmd0aDsgaSsrKQorICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNvZGVQb2ludHNbaV0pOworfTsKKworLy9OT1RFOiB1c2VkIHRoZW4gd2UgZW1pdCBjaGFyYWN0ZXIgZXhwbGljaXRseS4gVGhpcyBpcyBhbHdheXMgYSBub24td2hpdGVzcGFjZSBhbmQgYSBub24tbnVsbCBjaGFyYWN0ZXIuCisvL1NvIHdlIGNhbiBhdm9pZCBhZGRpdGlvbmFsIGNoZWNrcyBoZXJlLgorVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdENoYXIgPSBmdW5jdGlvbiAoY2gpIHsKKyAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4oVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTiwgY2gpOworfTsKKworLy9DaGFyYWN0ZXIgcmVmZXJlbmNlIHRva2VuaXphdGlvbgorVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZU51bWVyaWNFbnRpdHkgPSBmdW5jdGlvbiAoaXNIZXgpIHsKKyAgICB2YXIgZGlnaXRzID0gJycsCisgICAgICAgIG5leHRDcCA9IHZvaWQgMDsKKworICAgIGRvIHsKKyAgICAgICAgZGlnaXRzICs9IHRvQ2hhcih0aGlzLl9jb25zdW1lKCkpOworICAgICAgICBuZXh0Q3AgPSB0aGlzLl9sb29rYWhlYWQoKTsKKyAgICB9IHdoaWxlIChuZXh0Q3AgIT09ICQuRU9GICYmIGlzRGlnaXQobmV4dENwLCBpc0hleCkpOworCisgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgpID09PSAkLlNFTUlDT0xPTikKKyAgICAgICAgdGhpcy5fY29uc3VtZSgpOworCisgICAgdmFyIHJlZmVyZW5jZWRDcCA9IHBhcnNlSW50KGRpZ2l0cywgaXNIZXggPyAxNiA6IDEwKSwKKyAgICAgICAgcmVwbGFjZW1lbnQgPSBOVU1FUklDX0VOVElUWV9SRVBMQUNFTUVOVFNbcmVmZXJlbmNlZENwXTsKKworICAgIGlmIChyZXBsYWNlbWVudCkKKyAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50OworCisgICAgaWYgKGlzUmVzZXJ2ZWRDb2RlUG9pbnQocmVmZXJlbmNlZENwKSkKKyAgICAgICAgcmV0dXJuICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgcmV0dXJuIHJlZmVyZW5jZWRDcDsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2NvbnN1bWVOYW1lZEVudGl0eSA9IGZ1bmN0aW9uIChzdGFydENwLCBpbkF0dHIpIHsKKyAgICB2YXIgcmVmZXJlbmNlZENvZGVQb2ludHMgPSBudWxsLAorICAgICAgICBlbnRpdHlDb2RlUG9pbnRzQ291bnQgPSAwLAorICAgICAgICBjcCA9IHN0YXJ0Q3AsCisgICAgICAgIGxlYWYgPSBOQU1FRF9FTlRJVFlfVFJJRVtjcF0sCisgICAgICAgIGNvbnN1bWVkQ291bnQgPSAxLAorICAgICAgICBzZW1pY29sb25UZXJtaW5hdGVkID0gZmFsc2U7CisKKyAgICBmb3IgKDsgbGVhZiAmJiBjcCAhPT0gJC5FT0Y7IGNwID0gdGhpcy5fY29uc3VtZSgpLCBjb25zdW1lZENvdW50KyssIGxlYWYgPSBsZWFmLmwgJiYgbGVhZi5sW2NwXSkgeworICAgICAgICBpZiAobGVhZi5jKSB7CisgICAgICAgICAgICAvL05PVEU6IHdlIGhhdmUgYXQgbGVhc3Qgb25lIG5hbWVkIHJlZmVyZW5jZSBtYXRjaC4gQnV0IHdlIGRvbid0IHN0b3AgbG9va3VwIGF0IHRoaXMgcG9pbnQsCisgICAgICAgICAgICAvL2JlY2F1c2UgbG9uZ2VyIG1hdGNoZXMgc3RpbGwgY2FuIGJlIGZvdW5kIChlLmcuICcmbm90JyBhbmQgJyZub3RpbjsnKSBleGNlcHQgdGhlIGNhc2UKKyAgICAgICAgICAgIC8vdGhlbiBmb3VuZCBtYXRjaCBpcyB0ZXJtaW5hdGVkIGJ5IHNlbWljb2xvbi4KKyAgICAgICAgICAgIHJlZmVyZW5jZWRDb2RlUG9pbnRzID0gbGVhZi5jOworICAgICAgICAgICAgZW50aXR5Q29kZVBvaW50c0NvdW50ID0gY29uc3VtZWRDb3VudDsKKworICAgICAgICAgICAgaWYgKGNwID09PSAkLlNFTUlDT0xPTikgeworICAgICAgICAgICAgICAgIHNlbWljb2xvblRlcm1pbmF0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHJlZmVyZW5jZWRDb2RlUG9pbnRzKSB7CisgICAgICAgIGlmICghc2VtaWNvbG9uVGVybWluYXRlZCkgeworICAgICAgICAgICAgLy9OT1RFOiB1bmNvbnN1bWUgZXhjZXNzIChlLmcuICdpdCcgaW4gJyZub3RpdCcpCisgICAgICAgICAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGNvbnN1bWVkQ291bnQgLSBlbnRpdHlDb2RlUG9pbnRzQ291bnQpOworCisgICAgICAgICAgICAvL05PVEU6IElmIHRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGlzIGJlaW5nIGNvbnN1bWVkIGFzIHBhcnQgb2YgYW4gYXR0cmlidXRlIGFuZCB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vaXMgZWl0aGVyIGEgVSswMDNEIEVRVUFMUyBTSUdOIGNoYXJhY3RlciAoPSkgb3IgYW4gYWxwaGFudW1lcmljIEFTQ0lJIGNoYXJhY3RlciwgdGhlbiwgZm9yIGhpc3RvcmljYWwKKyAgICAgICAgICAgIC8vcmVhc29ucywgYWxsIHRoZSBjaGFyYWN0ZXJzIHRoYXQgd2VyZSBtYXRjaGVkIGFmdGVyIHRoZSBVKzAwMjYgQU1QRVJTQU5EIGNoYXJhY3RlciAoJikgbXVzdCBiZQorICAgICAgICAgICAgLy91bmNvbnN1bWVkLCBhbmQgbm90aGluZyBpcyByZXR1cm5lZC4KKyAgICAgICAgICAgIC8vSG93ZXZlciwgaWYgdGhpcyBuZXh0IGNoYXJhY3RlciBpcyBpbiBmYWN0IGEgVSswMDNEIEVRVUFMUyBTSUdOIGNoYXJhY3RlciAoPSksIHRoZW4gdGhpcyBpcyBhCisgICAgICAgICAgICAvL3BhcnNlIGVycm9yLCBiZWNhdXNlIHNvbWUgbGVnYWN5IHVzZXIgYWdlbnRzIHdpbGwgbWlzaW50ZXJwcmV0IHRoZSBtYXJrdXAgaW4gdGhvc2UgY2FzZXMuCisgICAgICAgICAgICAvLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1sI3Rva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXMpCisgICAgICAgICAgICBpZiAoaW5BdHRyKSB7CisgICAgICAgICAgICAgICAgdmFyIG5leHRDcCA9IHRoaXMuX2xvb2thaGVhZCgpOworCisgICAgICAgICAgICAgICAgaWYgKG5leHRDcCA9PT0gJC5FUVVBTFNfU0lHTiB8fCBpc0FzY2lpQWxwaGFOdW1lcmljKG5leHRDcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lU2V2ZXJhbChlbnRpdHlDb2RlUG9pbnRzQ291bnQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVmZXJlbmNlZENvZGVQb2ludHM7CisgICAgfQorCisgICAgdGhpcy5fdW5jb25zdW1lU2V2ZXJhbChjb25zdW1lZENvdW50KTsKKworICAgIHJldHVybiBudWxsOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZSA9IGZ1bmN0aW9uIChzdGFydENwLCBpbkF0dHIpIHsKKyAgICBpZiAodGhpcy5kaXNhYmxlRW50aXRpZXNEZWNvZGluZyB8fCBpc1doaXRlc3BhY2Uoc3RhcnRDcCkgfHwgc3RhcnRDcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTiB8fAorICAgICAgICBzdGFydENwID09PSAkLkFNUEVSU0FORCB8fCBzdGFydENwID09PSB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgfHwgc3RhcnRDcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgLy9OT1RFOiBub3QgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBObyBjaGFyYWN0ZXJzIGFyZSBjb25zdW1lZCwgYW5kIG5vdGhpbmcgaXMgcmV0dXJuZWQuCisgICAgICAgIHRoaXMuX3VuY29uc3VtZSgpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBlbHNlIGlmIChzdGFydENwID09PSAkLk5VTUJFUl9TSUdOKSB7CisgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhIG51bWVyaWMgZW50aXR5IGNhbmRpZGF0ZSwgbm93IHdlIHNob3VsZCBkZXRlcm1pbmUgaWYgaXQncyBoZXggb3IgZGVjaW1hbAorICAgICAgICB2YXIgaXNIZXggPSBmYWxzZSwKKyAgICAgICAgICAgIG5leHRDcCA9IHRoaXMuX2xvb2thaGVhZCgpOworCisgICAgICAgIGlmIChuZXh0Q3AgPT09ICQuTEFUSU5fU01BTExfWCB8fCBuZXh0Q3AgPT09ICQuTEFUSU5fQ0FQSVRBTF9YKSB7CisgICAgICAgICAgICB0aGlzLl9jb25zdW1lKCk7CisgICAgICAgICAgICBpc0hleCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBuZXh0Q3AgPSB0aGlzLl9sb29rYWhlYWQoKTsKKworICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgYXQgbGVhc3Qgb25lIGRpZ2l0IHRoaXMgaXMgYSBudW1lcmljIGVudGl0eSBmb3Igc3VyZSwgc28gd2UgY29uc3VtZSBpdAorICAgICAgICBpZiAobmV4dENwICE9PSAkLkVPRiAmJiBpc0RpZ2l0KG5leHRDcCwgaXNIZXgpKQorICAgICAgICAgICAgcmV0dXJuIFt0aGlzLl9jb25zdW1lTnVtZXJpY0VudGl0eShpc0hleCldOworCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy9OT1RFOiBvdGhlcndpc2UgdGhpcyBpcyBhIGJvZ3VzIG51bWJlciBlbnRpdHkgYW5kIGEgcGFyc2UgZXJyb3IuIFVuY29uc3VtZSB0aGUgbnVtYmVyIHNpZ24KKyAgICAgICAgICAgIC8vYW5kIHRoZSAneCctY2hhcmFjdGVyIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lU2V2ZXJhbChpc0hleCA/IDIgOiAxKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgZWxzZQorICAgICAgICByZXR1cm4gdGhpcy5fY29uc3VtZU5hbWVkRW50aXR5KHN0YXJ0Q3AsIGluQXR0cik7Cit9OworCisvL1N0YXRlIG1hY2hpbmUKK3ZhciBfID0gVG9rZW5pemVyLnByb3RvdHlwZTsKKworLy8xMi4yLjQuMSBEYXRhIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tEQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIGRhdGFTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpCisgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0RBVEFfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFRBR19PUEVOX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpOworCisgICAgZWxzZQorICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKK307CisKKworLy8xMi4yLjQuMiBDaGFyYWN0ZXIgcmVmZXJlbmNlIGluIGRhdGEgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fREFUQV9TVEFURV0gPSBmdW5jdGlvbiBjaGFyYWN0ZXJSZWZlcmVuY2VJbkRhdGFTdGF0ZShjcCkgeworICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9IHZvaWQgMDsKKworICAgIHZhciByZWZlcmVuY2VkQ29kZVBvaW50cyA9IHRoaXMuX2NvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UoY3AsIGZhbHNlKTsKKworICAgIGlmIChyZWZlcmVuY2VkQ29kZVBvaW50cykKKyAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHJlZmVyZW5jZWRDb2RlUG9pbnRzKTsKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcmJyk7Cit9OworCisKKy8vMTIuMi40LjMgUkNEQVRBIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tSQ0RBVEFfU1RBVEVdID0gZnVuY3Rpb24gcmNkYXRhU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuQU1QRVJTQU5EKQorICAgICAgICB0aGlzLnN0YXRlID0gQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9SQ0RBVEFfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFJDREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworfTsKKworCisvLzEyLjIuNC40IENoYXJhY3RlciByZWZlcmVuY2UgaW4gUkNEQVRBIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tDSEFSQUNURVJfUkVGRVJFTkNFX0lOX1JDREFUQV9TVEFURV0gPSBmdW5jdGlvbiBjaGFyYWN0ZXJSZWZlcmVuY2VJblJjZGF0YVN0YXRlKGNwKSB7CisgICAgdGhpcy5zdGF0ZSA9IFJDREFUQV9TVEFURTsKKyAgICB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgPSB2b2lkIDA7CisKKyAgICB2YXIgcmVmZXJlbmNlZENvZGVQb2ludHMgPSB0aGlzLl9jb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKGNwLCBmYWxzZSk7CisKKyAgICBpZiAocmVmZXJlbmNlZENvZGVQb2ludHMpCisgICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyhyZWZlcmVuY2VkQ29kZVBvaW50cyk7CisgICAgZWxzZQorICAgICAgICB0aGlzLl9lbWl0Q2hhcignJicpOworfTsKKworCisvLzEyLjIuNC41IFJBV1RFWFQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1JBV1RFWFRfU1RBVEVdID0gZnVuY3Rpb24gcmF3dGV4dFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLnN0YXRlID0gUkFXVEVYVF9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworfTsKKworCisvLzEyLjIuNC42IFNjcmlwdCBkYXRhIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pCisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworfTsKKworCisvLzEyLjIuNC43IFBMQUlOVEVYVCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bUExBSU5URVhUX1NUQVRFXSA9IGZ1bmN0aW9uIHBsYWludGV4dFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworfTsKKworCisvLzEyLjIuNC44IFRhZyBvcGVuIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tUQUdfT1BFTl9TVEFURV0gPSBmdW5jdGlvbiB0YWdPcGVuU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuRVhDTEFNQVRJT05fTUFSSykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IE1BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuU09MSURVUykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEVORF9UQUdfT1BFTl9TVEFURTsKKworICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlU3RhcnRUYWdUb2tlbih0b0FzY2lpTG93ZXJDaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBUQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZVN0YXJ0VGFnVG9rZW4odG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBUQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5RVUVTVElPTl9NQVJLKSB7CisgICAgICAgIC8vTk9URTogY2FsbCBib2d1cyBjb21tZW50IHN0YXRlIGRpcmVjdGx5IHdpdGggY3VycmVudCBjb25zdW1lZCBjaGFyYWN0ZXIgdG8gYXZvaWQgdW5uZWNlc3NhcnkgcmVjb25zdW1wdGlvbi4KKyAgICAgICAgdGhpc1tCT0dVU19DT01NRU5UX1NUQVRFXShjcCk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC45IEVuZCB0YWcgb3BlbiBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIGVuZFRhZ09wZW5TdGF0ZShjcCkgeworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKHRvQXNjaWlMb3dlckNoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFRBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBUQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgLy9OT1RFOiBjYWxsIGJvZ3VzIGNvbW1lbnQgc3RhdGUgZGlyZWN0bHkgd2l0aCBjdXJyZW50IGNvbnN1bWVkIGNoYXJhY3RlciB0byBhdm9pZCB1bm5lY2Vzc2FyeSByZWNvbnN1bXB0aW9uLgorICAgICAgICB0aGlzW0JPR1VTX0NPTU1FTlRfU1RBVEVdKGNwKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjEwIFRhZyBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tUQUdfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiB0YWdOYW1lU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLlNPTElEVVMpCisgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0NoYXIoY3ApOworfTsKKworCisvLzEyLjIuNC4xMSBSQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1JDREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURV0gPSBmdW5jdGlvbiByY2RhdGFMZXNzVGhhblNpZ25TdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFJDREFUQV9FTkRfVEFHX09QRU5fU1RBVEU7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkNEQVRBX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjEyIFJDREFUQSBlbmQgdGFnIG9wZW4gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1JDREFUQV9FTkRfVEFHX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gcmNkYXRhRW5kVGFnT3BlblN0YXRlKGNwKSB7CisgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9Bc2NpaUxvd2VyQ2hhcihjcCkpOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gUkNEQVRBX0VORF9UQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKHRvQ2hhcihjcCkpOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gUkNEQVRBX0VORF9UQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQ0RBVEFfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuMTMgUkNEQVRBIGVuZCB0YWcgbmFtZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bUkNEQVRBX0VORF9UQUdfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiByY2RhdGFFbmRUYWdOYW1lU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0NoYXIoY3ApOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICBpZiAodGhpcy5faXNBcHByb3ByaWF0ZUVuZFRhZ1Rva2VuKCkpIHsKKyAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHRoaXMudGVtcEJ1ZmYpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJDREFUQV9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4xNCBSQVdURVhUIGxlc3MtdGhhbiBzaWduIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tSQVdURVhUX0xFU1NfVEhBTl9TSUdOX1NUQVRFXSA9IGZ1bmN0aW9uIHJhd3RleHRMZXNzVGhhblNpZ25TdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFJBV1RFWFRfRU5EX1RBR19PUEVOX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJBV1RFWFRfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuMTUgUkFXVEVYVCBlbmQgdGFnIG9wZW4gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1JBV1RFWFRfRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHJhd3RleHRFbmRUYWdPcGVuU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbih0b0FzY2lpTG93ZXJDaGFyKGNwKSk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBSQVdURVhUX0VORF9UQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKHRvQ2hhcihjcCkpOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gUkFXVEVYVF9FTkRfVEFHX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkFXVEVYVF9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4xNiBSQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bUkFXVEVYVF9FTkRfVEFHX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gcmF3dGV4dEVuZFRhZ05hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGlmICh0aGlzLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4oKSkgeworICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpOworICAgICAgICB0aGlzLl9lbWl0U2V2ZXJhbENvZGVQb2ludHModGhpcy50ZW1wQnVmZik7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkFXVEVYVF9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4xNyBTY3JpcHQgZGF0YSBsZXNzLXRoYW4gc2lnbiBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUxlc3NUaGFuU2lnblN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdOworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVYQ0xBTUFUSU9OX01BUkspIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJyEnKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4xOCBTY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VORF9UQUdfT1BFTl9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRW5kVGFnT3BlblN0YXRlKGNwKSB7CisgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9Bc2NpaUxvd2VyQ2hhcihjcCkpOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuMTkgU2NyaXB0IGRhdGEgZW5kIHRhZyBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVuZFRhZ05hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGlmICh0aGlzLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4oKSkgeworICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuU09MSURVUykgeworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHRoaXMudGVtcEJ1ZmYpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjIwIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVTdGFydFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTsKK307CisKKworLy8xMi4yLjQuMjEgU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IGRhc2ggc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVTdGFydERhc2hTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9TVEFURSk7Cit9OworCisKKy8vMTIuMi40LjIyIFNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZWRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworfTsKKworCisvLzEyLjIuNC4yMyBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlZERhc2hTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KK307CisKKworLy8xMi4yLjQuMjQgU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2hTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc+Jyk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4yNSBTY3JpcHQgZGF0YSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuU09MSURVUykgeworICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTl9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKHRvQXNjaWlMb3dlckNvZGVQb2ludChjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjI2IFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTl9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlZEVuZFRhZ09wZW5TdGF0ZShjcCkgeworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKHRvQXNjaWlMb3dlckNoYXIoY3ApKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjI3IFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGlmICh0aGlzLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4oKSkgeworICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpOworICAgICAgICB0aGlzLl9lbWl0U2V2ZXJhbENvZGVQb2ludHModGhpcy50ZW1wQnVmZik7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4yOCBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIHN0YXJ0IHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydFN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkgfHwgY3AgPT09ICQuU09MSURVUyB8fCBjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5pc1RlbXBCdWZmZXJFcXVhbFRvU2NyaXB0U3RyaW5nKCkgPyBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURSA6IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKHRvQXNjaWlMb3dlckNvZGVQb2ludChjcCkpOworICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFKTsKK307CisKKworLy8xMi4yLjQuMjkgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFEb3VibGVFc2NhcGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworfTsKKworCisvLzEyLjIuNC4zMCBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KK307CisKKworLy8xMi4yLjQuMzEgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc+Jyk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjMyIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRG91YmxlRXNjYXBlZExlc3NUaGFuU2lnblN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdOworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFKTsKK307CisKKworLy8xMi4yLjQuMzMgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBlbmQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmRTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuaXNUZW1wQnVmZmVyRXF1YWxUb1NjcmlwdFN0cmluZygpID8gU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURSA6IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFOworCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKHRvQXNjaWlMb3dlckNvZGVQb2ludChjcCkpOworICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURSk7Cit9OworCisKKy8vMTIuMi40LjM0IEJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGJlZm9yZUF0dHJpYnV0ZU5hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY3AgPT09ICQuU09MSURVUykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlQXR0cih0b0FzY2lpTG93ZXJDaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUksgfHwgY3AgPT09ICQuQVBPU1RST1BIRSB8fCBjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTiB8fCBjcCA9PT0gJC5FUVVBTFNfU0lHTikgeworICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKHRvQ2hhcihjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIodG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfTkFNRV9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjM1IEF0dHJpYnV0ZSBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBVFRSSUJVVEVfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBhdHRyaWJ1dGVOYW1lU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZShBRlRFUl9BVFRSSUJVVEVfTkFNRV9TVEFURSk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5TT0xJRFVTKQorICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEUpOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRVFVQUxTX1NJR04pCisgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoQkVGT1JFX0FUVFJJQlVURV9WQUxVRV9TVEFURSk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKERBVEFfU1RBVEUpOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUksgfHwgY3AgPT09ICQuQVBPU1RST1BIRSB8fCBjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IHRvQ2hhcihjcCk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSB0b0NoYXIoY3ApOworfTsKKworCisvLzEyLjIuNC4zNiBBZnRlciBhdHRyaWJ1dGUgbmFtZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQUZURVJfQVRUUklCVVRFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gYWZ0ZXJBdHRyaWJ1dGVOYW1lU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNwID09PSAkLlNPTElEVVMpCisgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRVFVQUxTX1NJR04pCisgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX1ZBTFVFX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIodG9Bc2NpaUxvd2VyQ2hhcihjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkgeworICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLIHx8IGNwID09PSAkLkFQT1NUUk9QSEUgfHwgY3AgPT09ICQuTEVTU19USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlQXR0cih0b0NoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UgeworICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKHRvQ2hhcihjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4zNyBCZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tCRUZPUkVfQVRUUklCVVRFX1ZBTFVFX1NUQVRFXSA9IGZ1bmN0aW9uIGJlZm9yZUF0dHJpYnV0ZVZhbHVlU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKQorICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEX1NUQVRFKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpCisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRF9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOIHx8IGNwID09PSAkLkVRVUFMU19TSUdOIHx8IGNwID09PSAkLkdSQVZFX0FDQ0VOVCkgeworICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRF9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjM4IEF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0FUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuQU1QRVJTQU5EKSB7CisgICAgICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9ICQuUVVPVEFUSU9OX01BUks7CisgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSB0aGlzLnN0YXRlOworICAgICAgICB0aGlzLnN0YXRlID0gQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9BVFRSSUJVVEVfVkFMVUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIoY3ApOworfTsKKworCisvLzEyLjIuNC4zOSBBdHRyaWJ1dGUgdmFsdWUgKHNpbmdsZS1xdW90ZWQpIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBhdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuQU1QRVJTQU5EKSB7CisgICAgICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9ICQuQVBPU1RST1BIRTsKKyAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IHRoaXMuc3RhdGU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZQorICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjQwIEF0dHJpYnV0ZSB2YWx1ZSAodW5xdW90ZWQpIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gYXR0cmlidXRlVmFsdWVVbnF1b3RlZFN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpIHsKKyAgICAgICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gJC5HUkVBVEVSX1RIQU5fU0lHTjsKKyAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IHRoaXMuc3RhdGU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSyB8fCBjcCA9PT0gJC5BUE9TVFJPUEhFIHx8IGNwID09PSAkLkxFU1NfVEhBTl9TSUdOIHx8CisgICAgICAgICAgICAgY3AgPT09ICQuRVFVQUxTX1NJR04gfHwgY3AgPT09ICQuR1JBVkVfQUNDRU5UKSB7CisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKGNwKTsKK307CisKKworLy8xMi4yLjQuNDEgQ2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fQVRUUklCVVRFX1ZBTFVFX1NUQVRFXSA9IGZ1bmN0aW9uIGNoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlVmFsdWVTdGF0ZShjcCkgeworICAgIHZhciByZWZlcmVuY2VkQ29kZVBvaW50cyA9IHRoaXMuX2NvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UoY3AsIHRydWUpOworCisgICAgaWYgKHJlZmVyZW5jZWRDb2RlUG9pbnRzKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVmZXJlbmNlZENvZGVQb2ludHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihyZWZlcmVuY2VkQ29kZVBvaW50c1tpXSk7CisgICAgfSBlbHNlCisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gJyYnOworCisgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7Cit9OworCisKKy8vMTIuMi40LjQyIEFmdGVyIGF0dHJpYnV0ZSB2YWx1ZSAocXVvdGVkKSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBhZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLlNPTElEVVMpCisgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFKTsKK307CisKKworLy8xMi4yLjQuNDMgU2VsZi1jbG9zaW5nIHN0YXJ0IHRhZyBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURV0gPSBmdW5jdGlvbiBzZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc2VsZkNsb3NpbmcgPSB0cnVlOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUpOworfTsKKworCisvLzEyLjIuNC40NCBCb2d1cyBjb21tZW50IHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tCT0dVU19DT01NRU5UX1NUQVRFXSA9IGZ1bmN0aW9uIGJvZ3VzQ29tbWVudFN0YXRlKGNwKSB7CisgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCk7CisKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBjcCA9PT0gJC5OVUxMID8gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIgOiB0b0NoYXIoY3ApOworICAgICAgICAgICAgY3AgPSB0aGlzLl9jb25zdW1lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7Cit9OworCisKKy8vMTIuMi40LjQ1IE1hcmt1cCBkZWNsYXJhdGlvbiBvcGVuIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tNQVJLVVBfREVDTEFSQVRJT05fT1BFTl9TVEFURV0gPSBmdW5jdGlvbiBtYXJrdXBEZWNsYXJhdGlvbk9wZW5TdGF0ZShjcCkgeworICAgIGlmICh0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuREFTSF9EQVNIX1NUUklORywgY3AsIHRydWUpKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFSVF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuRE9DVFlQRV9TVFJJTkcsIGNwLCBmYWxzZSkpCisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NUQVRFOworCisgICAgZWxzZSBpZiAodGhpcy5hbGxvd0NEQVRBICYmIHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5DREFUQV9TVEFSVF9TVFJJTkcsIGNwLCB0cnVlKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENEQVRBX1NFQ1RJT05fU1RBVEU7CisKKyAgICBlbHNlIHsKKyAgICAgICAgLy9OT1RFOiBjYWxsIGJvZ3VzIGNvbW1lbnQgc3RhdGUgZGlyZWN0bHkgd2l0aCBjdXJyZW50IGNvbnN1bWVkIGNoYXJhY3RlciB0byBhdm9pZCB1bm5lY2Vzc2FyeSByZWNvbnN1bXB0aW9uLgorICAgICAgICB0aGlzW0JPR1VTX0NPTU1FTlRfU1RBVEVdKGNwKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjQ2IENvbW1lbnQgc3RhcnQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NPTU1FTlRfU1RBUlRfU1RBVEVdID0gZnVuY3Rpb24gY29tbWVudFN0YXJ0U3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKQorICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFSVF9EQVNIX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC40NyBDb21tZW50IHN0YXJ0IGRhc2ggc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NPTU1FTlRfU1RBUlRfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBjb21tZW50U3RhcnREYXNoU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKQorICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9FTkRfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0nOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0nOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNDggQ29tbWVudCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQ09NTUVOVF9TVEFURV0gPSBmdW5jdGlvbiBjb21tZW50U3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKQorICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9FTkRfREFTSF9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSB0b0NoYXIoY3ApOworfTsKKworCisvLzEyLjIuNC40OSBDb21tZW50IGVuZCBkYXNoIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tDT01NRU5UX0VORF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRFbmREYXNoU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKQorICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9FTkRfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0nOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctJzsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSB0b0NoYXIoY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjUwIENvbW1lbnQgZW5kIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tDT01NRU5UX0VORF9TVEFURV0gPSBmdW5jdGlvbiBjb21tZW50RW5kU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FWENMQU1BVElPTl9NQVJLKQorICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9FTkRfQkFOR19TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0tJzsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLS0nOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNTEgQ29tbWVudCBlbmQgYmFuZyBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQ09NTUVOVF9FTkRfQkFOR19TVEFURV0gPSBmdW5jdGlvbiBjb21tZW50RW5kQmFuZ1N0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSEnOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9FTkRfREFTSF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLS0hJzsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLS0hJzsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSB0b0NoYXIoY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjUyIERPQ1RZUEUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0RPQ1RZUEVfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZVN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfRE9DVFlQRV9OQU1FX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbigpOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQkVGT1JFX0RPQ1RZUEVfTkFNRV9TVEFURSk7Cit9OworCisKKy8vMTIuMi40LjUzIEJlZm9yZSBET0NUWVBFIG5hbWUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0JFRk9SRV9ET0NUWVBFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlRG9jdHlwZU5hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4odG9Bc2NpaUxvd2VyQ2hhcihjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbigpOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbigpOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbih0b0NoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfTkFNRV9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjU0IERPQ1RZUEUgbmFtZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bRE9DVFlQRV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVOYW1lU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0RPQ1RZUEVfTkFNRV9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ubmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLm5hbWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5uYW1lICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjU1IEFmdGVyIERPQ1RZUEUgbmFtZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQUZURVJfRE9DVFlQRV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyRG9jdHlwZU5hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSBpZiAodGhpcy5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoKCQkLlBVQkxJQ19TVFJJTkcsIGNwLCBmYWxzZSkpCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEX1NUQVRFOworCisgICAgZWxzZSBpZiAodGhpcy5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoKCQkLlNZU1RFTV9TVFJJTkcsIGNwLCBmYWxzZSkpCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEX1NUQVRFOworCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJPR1VTX0RPQ1RZUEVfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC41NiBBZnRlciBET0NUWVBFIHB1YmxpYyBrZXl3b3JkIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmRTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCA9ICcnOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNTcgQmVmb3JlIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0JFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFXSA9IGZ1bmN0aW9uIGJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCA9ICcnOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJPR1VTX0RPQ1RZUEVfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC41OCBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgKz0gdG9DaGFyKGNwKTsKK307CisKKworLy8xMi4yLjQuNTkgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBkb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgKz0gdG9DaGFyKGNwKTsKK307CisKKworLy8xMi4yLjQuNjAgQWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TVEFURV0gPSBmdW5jdGlvbiBhZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU19TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNjEgQmV0d2VlbiBET0NUWVBFIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNfU1RBVEVdID0gZnVuY3Rpb24gYmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1N0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNjIgQWZ0ZXIgRE9DVFlQRSBzeXN0ZW0ga2V5d29yZCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRF9TVEFURV0gPSBmdW5jdGlvbiBhZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLnN0YXRlID0gQk9HVVNfRE9DVFlQRV9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjYzIEJlZm9yZSBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURV0gPSBmdW5jdGlvbiBiZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCA9ICcnOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNjQgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBkb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKQorICAgICAgICB0aGlzLnN0YXRlID0gQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjY1IERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKQorICAgICAgICB0aGlzLnN0YXRlID0gQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjY2IEFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0FGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEVdID0gZnVuY3Rpb24gYWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFOworfTsKKworCisvLzEyLjIuNC42NyBCb2d1cyBET0NUWVBFIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tCT0dVU19ET0NUWVBFX1NUQVRFXSA9IGZ1bmN0aW9uIGJvZ3VzRG9jdHlwZVN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjY4IENEQVRBIHNlY3Rpb24gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NEQVRBX1NFQ1RJT05fU1RBVEVdID0gZnVuY3Rpb24gY2RhdGFTZWN0aW9uU3RhdGUoY3ApIHsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuQ0RBVEFfRU5EX1NUUklORywgY3AsIHRydWUpKSB7CisgICAgICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKyAgICAgICAgICAgIGNwID0gdGhpcy5fY29uc3VtZSgpOworICAgICAgICB9CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMDNjOTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzCkBAIC0wLDAgKzEsMjAwIEBACisndXNlIHN0cmljdCc7DQorDQorLy9Ob2RlIGNvbnN0cnVjdGlvbg0KK2V4cG9ydHMuY3JlYXRlRG9jdW1lbnQgPSBmdW5jdGlvbiAoKSB7DQorICAgIHJldHVybiB7DQorICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudCcsDQorICAgICAgICBxdWlya3NNb2RlOiBmYWxzZSwNCisgICAgICAgIGNoaWxkTm9kZXM6IFtdDQorICAgIH07DQorfTsNCisNCitleHBvcnRzLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQgPSBmdW5jdGlvbiAoKSB7DQorICAgIHJldHVybiB7DQorICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudC1mcmFnbWVudCcsDQorICAgICAgICBxdWlya3NNb2RlOiBmYWxzZSwNCisgICAgICAgIGNoaWxkTm9kZXM6IFtdDQorICAgIH07DQorfTsNCisNCitleHBvcnRzLmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiAodGFnTmFtZSwgbmFtZXNwYWNlVVJJLCBhdHRycykgew0KKyAgICByZXR1cm4gew0KKyAgICAgICAgbm9kZU5hbWU6IHRhZ05hbWUsDQorICAgICAgICB0YWdOYW1lOiB0YWdOYW1lLA0KKyAgICAgICAgYXR0cnM6IGF0dHJzLA0KKyAgICAgICAgbmFtZXNwYWNlVVJJOiBuYW1lc3BhY2VVUkksDQorICAgICAgICBjaGlsZE5vZGVzOiBbXSwNCisgICAgICAgIHBhcmVudE5vZGU6IG51bGwNCisgICAgfTsNCit9Ow0KKw0KK2V4cG9ydHMuY3JlYXRlQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAoZGF0YSkgew0KKyAgICByZXR1cm4gew0KKyAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsDQorICAgICAgICBkYXRhOiBkYXRhLA0KKyAgICAgICAgcGFyZW50Tm9kZTogbnVsbA0KKyAgICB9Ow0KK307DQorDQordmFyIGNyZWF0ZVRleHROb2RlID0gZnVuY3Rpb24gKHZhbHVlKSB7DQorICAgIHJldHVybiB7DQorICAgICAgICBub2RlTmFtZTogJyN0ZXh0JywNCisgICAgICAgIHZhbHVlOiB2YWx1ZSwNCisgICAgICAgIHBhcmVudE5vZGU6IG51bGwNCisgICAgfQ0KK307DQorDQorDQorLy9UcmVlIG11dGF0aW9uDQorZXhwb3J0cy5zZXREb2N1bWVudFR5cGUgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkgew0KKyAgICB2YXIgZG9jdHlwZU5vZGUgPSBudWxsOw0KKw0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHsNCisgICAgICAgIGlmIChkb2N1bWVudC5jaGlsZE5vZGVzW2ldLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZScpIHsNCisgICAgICAgICAgICBkb2N0eXBlTm9kZSA9IGRvY3VtZW50LmNoaWxkTm9kZXNbaV07DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgaWYgKGRvY3R5cGVOb2RlKSB7DQorICAgICAgICBkb2N0eXBlTm9kZS5uYW1lID0gbmFtZTsNCisgICAgICAgIGRvY3R5cGVOb2RlLnB1YmxpY0lkID0gcHVibGljSWQ7DQorICAgICAgICBkb2N0eXBlTm9kZS5zeXN0ZW1JZCA9IHN5c3RlbUlkOw0KKyAgICB9DQorDQorICAgIGVsc2Ugew0KKyAgICAgICAgYXBwZW5kQ2hpbGQoZG9jdW1lbnQsIHsNCisgICAgICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudFR5cGUnLA0KKyAgICAgICAgICAgIG5hbWU6IG5hbWUsDQorICAgICAgICAgICAgcHVibGljSWQ6IHB1YmxpY0lkLA0KKyAgICAgICAgICAgIHN5c3RlbUlkOiBzeXN0ZW1JZA0KKyAgICAgICAgfSk7DQorICAgIH0NCit9Ow0KKw0KK2V4cG9ydHMuc2V0UXVpcmtzTW9kZSA9IGZ1bmN0aW9uIChkb2N1bWVudCkgew0KKyAgICBkb2N1bWVudC5xdWlya3NNb2RlID0gdHJ1ZTsNCit9Ow0KKw0KK2V4cG9ydHMuaXNRdWlya3NNb2RlID0gZnVuY3Rpb24gKGRvY3VtZW50KSB7DQorICAgIHJldHVybiBkb2N1bWVudC5xdWlya3NNb2RlOw0KK307DQorDQordmFyIGFwcGVuZENoaWxkID0gZXhwb3J0cy5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCBuZXdOb2RlKSB7DQorICAgIHBhcmVudE5vZGUuY2hpbGROb2Rlcy5wdXNoKG5ld05vZGUpOw0KKyAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlOw0KK307DQorDQordmFyIGluc2VydEJlZm9yZSA9IGV4cG9ydHMuaW5zZXJ0QmVmb3JlID0gZnVuY3Rpb24gKHBhcmVudE5vZGUsIG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpIHsNCisgICAgdmFyIGluc2VydGlvbklkeCA9IHBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpOw0KKw0KKyAgICBwYXJlbnROb2RlLmNoaWxkTm9kZXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3Tm9kZSk7DQorICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7DQorfTsNCisNCitleHBvcnRzLmRldGFjaE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgew0KKyAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7DQorICAgICAgICB2YXIgaWR4ID0gbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihub2RlKTsNCisNCisgICAgICAgIG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpZHgsIDEpOw0KKyAgICAgICAgbm9kZS5wYXJlbnROb2RlID0gbnVsbDsNCisgICAgfQ0KK307DQorDQorZXhwb3J0cy5pbnNlcnRUZXh0ID0gZnVuY3Rpb24gKHBhcmVudE5vZGUsIHRleHQpIHsNCisgICAgaWYgKHBhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGgpIHsNCisgICAgICAgIHZhciBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMubGVuZ3RoIC0gMV07DQorDQorICAgICAgICBpZiAocHJldk5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpIHsNCisgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0Ow0KKyAgICAgICAgICAgIHJldHVybjsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICBhcHBlbmRDaGlsZChwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7DQorfTsNCisNCitleHBvcnRzLmluc2VydFRleHRCZWZvcmUgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdGV4dCwgcmVmZXJlbmNlTm9kZSkgew0KKyAgICB2YXIgcHJldk5vZGUgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXNbcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2YocmVmZXJlbmNlTm9kZSkgLSAxXTsNCisNCisgICAgaWYgKHByZXZOb2RlICYmIHByZXZOb2RlLm5vZGVOYW1lID09PSAnI3RleHQnKQ0KKyAgICAgICAgcHJldk5vZGUudmFsdWUgKz0gdGV4dDsNCisgICAgZWxzZQ0KKyAgICAgICAgaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpLCByZWZlcmVuY2VOb2RlKTsNCit9Ow0KKw0KK2V4cG9ydHMuYWRvcHRBdHRyaWJ1dGVzID0gZnVuY3Rpb24gKHJlY2lwaWVudE5vZGUsIGF0dHJzKSB7DQorICAgIHZhciByZWNpcGllbnRBdHRyc01hcCA9IFtdOw0KKw0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY2lwaWVudE5vZGUuYXR0cnMubGVuZ3RoOyBpKyspDQorICAgICAgICByZWNpcGllbnRBdHRyc01hcC5wdXNoKHJlY2lwaWVudE5vZGUuYXR0cnNbaV0ubmFtZSk7DQorDQorICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0cnMubGVuZ3RoOyBqKyspIHsNCisgICAgICAgIGlmIChyZWNpcGllbnRBdHRyc01hcC5pbmRleE9mKGF0dHJzW2pdLm5hbWUpID09PSAtMSkNCisgICAgICAgICAgICByZWNpcGllbnROb2RlLmF0dHJzLnB1c2goYXR0cnNbal0pOw0KKyAgICB9DQorfTsNCisNCisNCisvL1RyZWUgdHJhdmVyc2luZw0KK2V4cG9ydHMuZ2V0Rmlyc3RDaGlsZCA9IGZ1bmN0aW9uIChub2RlKSB7DQorICAgIHJldHVybiBub2RlLmNoaWxkTm9kZXNbMF07DQorfTsNCisNCitleHBvcnRzLmdldENoaWxkTm9kZXMgPSBmdW5jdGlvbiAobm9kZSkgew0KKyAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzOw0KK307DQorDQorZXhwb3J0cy5nZXRQYXJlbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsNCisgICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZTsNCit9Ow0KKw0KK2V4cG9ydHMuZ2V0QXR0ckxpc3QgPSBmdW5jdGlvbiAobm9kZSkgew0KKyAgICByZXR1cm4gbm9kZS5hdHRyczsNCit9Ow0KKw0KKy8vTm9kZSBkYXRhDQorZXhwb3J0cy5nZXRUYWdOYW1lID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsNCisgICAgcmV0dXJuIGVsZW1lbnQudGFnTmFtZTsNCit9Ow0KKw0KK2V4cG9ydHMuZ2V0TmFtZXNwYWNlVVJJID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsNCisgICAgcmV0dXJuIGVsZW1lbnQubmFtZXNwYWNlVVJJOw0KK307DQorDQorZXhwb3J0cy5nZXRUZXh0Tm9kZUNvbnRlbnQgPSBmdW5jdGlvbiAodGV4dE5vZGUpIHsNCisgICAgcmV0dXJuIHRleHROb2RlLnZhbHVlOw0KK307DQorDQorZXhwb3J0cy5nZXRDb21tZW50Tm9kZUNvbnRlbnQgPSBmdW5jdGlvbiAoY29tbWVudE5vZGUpIHsNCisgICAgcmV0dXJuIGNvbW1lbnROb2RlLmRhdGE7DQorfTsNCisNCitleHBvcnRzLmdldERvY3VtZW50VHlwZU5vZGVOYW1lID0gZnVuY3Rpb24gKGRvY3R5cGVOb2RlKSB7DQorICAgIHJldHVybiBkb2N0eXBlTm9kZS5uYW1lOw0KK307DQorDQorZXhwb3J0cy5nZXREb2N1bWVudFR5cGVOb2RlUHVibGljSWQgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHsNCisgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnB1YmxpY0lkOw0KK307DQorDQorZXhwb3J0cy5nZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHsNCisgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnN5c3RlbUlkOw0KK307DQorDQorLy9Ob2RlIHR5cGVzDQorZXhwb3J0cy5pc1RleHROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsNCisgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCc7DQorfTsNCisNCitleHBvcnRzLmlzQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgew0KKyAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyNjb21tZW50JzsNCit9Ow0KKw0KK2V4cG9ydHMuaXNEb2N1bWVudFR5cGVOb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsNCisgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJzsNCit9Ow0KKw0KK2V4cG9ydHMuaXNFbGVtZW50Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7DQorICAgIHJldHVybiAhIW5vZGUudGFnTmFtZTsNCit9Ow0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi90cmVlX2FkYXB0ZXJzL2h0bWxwYXJzZXIyLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3RyZWVfYWRhcHRlcnMvaHRtbHBhcnNlcjIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIxMGVlNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi90cmVlX2FkYXB0ZXJzL2h0bWxwYXJzZXIyLmpzCkBAIC0wLDAgKzEsMzE3IEBACisndXNlIHN0cmljdCc7CisKK3ZhciBEb2N0eXBlID0gcmVxdWlyZSgnLi4vY29tbW9uL2RvY3R5cGUnKTsKKworLy9Db252ZXJzaW9uIHRhYmxlcyBmb3IgRE9NIExldmVsMSBzdHJ1Y3R1cmUgZW11bGF0aW9uCit2YXIgbm9kZVR5cGVzID0geworICAgIGVsZW1lbnQ6IDEsCisgICAgdGV4dDogMywKKyAgICBjZGF0YTogNCwKKyAgICBjb21tZW50OiA4Cit9OworCit2YXIgbm9kZVByb3BlcnR5U2hvcnRoYW5kcyA9IHsKKyAgICB0YWdOYW1lOiAnbmFtZScsCisgICAgY2hpbGROb2RlczogJ2NoaWxkcmVuJywKKyAgICBwYXJlbnROb2RlOiAncGFyZW50JywKKyAgICBwcmV2aW91c1NpYmxpbmc6ICdwcmV2JywKKyAgICBuZXh0U2libGluZzogJ25leHQnLAorICAgIG5vZGVWYWx1ZTogJ2RhdGEnCit9OworCisvL05vZGUKK3ZhciBOb2RlID0gZnVuY3Rpb24gKHByb3BzKSB7CisgICAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7CisgICAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eShrZXkpKQorICAgICAgICAgICAgdGhpc1trZXldID0gcHJvcHNba2V5XTsKKyAgICB9Cit9OworCitOb2RlLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgZmlyc3RDaGlsZCgpIHsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjsKKyAgICAgICAgcmV0dXJuIGNoaWxkcmVuICYmIGNoaWxkcmVuWzBdIHx8IG51bGw7CisgICAgfSwKKworICAgIGdldCBsYXN0Q2hpbGQoKSB7CisgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW47CisgICAgICAgIHJldHVybiBjaGlsZHJlbiAmJiBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXSB8fCBudWxsOworICAgIH0sCisKKyAgICBnZXQgbm9kZVR5cGUoKSB7CisgICAgICAgIHJldHVybiBub2RlVHlwZXNbdGhpcy50eXBlXSB8fCBub2RlVHlwZXMuZWxlbWVudDsKKyAgICB9Cit9OworCitPYmplY3Qua2V5cyhub2RlUHJvcGVydHlTaG9ydGhhbmRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKKyAgICB2YXIgc2hvcnRoYW5kID0gbm9kZVByb3BlcnR5U2hvcnRoYW5kc1trZXldOworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCBrZXksIHsKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpc1tzaG9ydGhhbmRdIHx8IG51bGw7CisgICAgICAgIH0sCisgICAgICAgIHNldDogZnVuY3Rpb24gKHZhbCkgeworICAgICAgICAgICAgdGhpc1tzaG9ydGhhbmRdID0gdmFsOworICAgICAgICAgICAgcmV0dXJuIHZhbDsKKyAgICAgICAgfQorICAgIH0pOworfSk7CisKKworLy9Ob2RlIGNvbnN0cnVjdGlvbgorZXhwb3J0cy5jcmVhdGVEb2N1bWVudCA9CitleHBvcnRzLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIG5ldyBOb2RlKHsKKyAgICAgICAgdHlwZTogJ3Jvb3QnLAorICAgICAgICBuYW1lOiAncm9vdCcsCisgICAgICAgIHBhcmVudDogbnVsbCwKKyAgICAgICAgcHJldjogbnVsbCwKKyAgICAgICAgbmV4dDogbnVsbCwKKyAgICAgICAgY2hpbGRyZW46IFtdCisgICAgfSk7Cit9OworCitleHBvcnRzLmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiAodGFnTmFtZSwgbmFtZXNwYWNlVVJJLCBhdHRycykgeworICAgIHZhciBhdHRyaWJzID0ge30sCisgICAgICAgIGF0dHJpYnNOYW1lc3BhY2UgPSB7fSwKKyAgICAgICAgYXR0cmlic1ByZWZpeCA9IHt9OworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgYXR0ck5hbWUgPSBhdHRyc1tpXS5uYW1lOworCisgICAgICAgIGF0dHJpYnNbYXR0ck5hbWVdID0gYXR0cnNbaV0udmFsdWU7CisgICAgICAgIGF0dHJpYnNOYW1lc3BhY2VbYXR0ck5hbWVdID0gYXR0cnNbaV0ubmFtZXNwYWNlOworICAgICAgICBhdHRyaWJzUHJlZml4W2F0dHJOYW1lXSA9IGF0dHJzW2ldLnByZWZpeDsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IE5vZGUoeworICAgICAgICB0eXBlOiB0YWdOYW1lID09PSAnc2NyaXB0JyB8fCB0YWdOYW1lID09PSAnc3R5bGUnID8gdGFnTmFtZSA6ICd0YWcnLAorICAgICAgICBuYW1lOiB0YWdOYW1lLAorICAgICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZVVSSSwKKyAgICAgICAgYXR0cmliczogYXR0cmlicywKKyAgICAgICAgJ3gtYXR0cmlic05hbWVzcGFjZSc6IGF0dHJpYnNOYW1lc3BhY2UsCisgICAgICAgICd4LWF0dHJpYnNQcmVmaXgnOiBhdHRyaWJzUHJlZml4LAorICAgICAgICBjaGlsZHJlbjogW10sCisgICAgICAgIHBhcmVudDogbnVsbCwKKyAgICAgICAgcHJldjogbnVsbCwKKyAgICAgICAgbmV4dDogbnVsbAorICAgIH0pOworfTsKKworZXhwb3J0cy5jcmVhdGVDb21tZW50Tm9kZSA9IGZ1bmN0aW9uIChkYXRhKSB7CisgICAgcmV0dXJuIG5ldyBOb2RlKHsKKyAgICAgICAgdHlwZTogJ2NvbW1lbnQnLAorICAgICAgICBkYXRhOiBkYXRhLAorICAgICAgICBwYXJlbnQ6IG51bGwsCisgICAgICAgIHByZXY6IG51bGwsCisgICAgICAgIG5leHQ6IG51bGwKKyAgICB9KTsKK307CisKK3ZhciBjcmVhdGVUZXh0Tm9kZSA9IGZ1bmN0aW9uICh2YWx1ZSkgeworICAgIHJldHVybiBuZXcgTm9kZSh7CisgICAgICAgIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgZGF0YTogdmFsdWUsCisgICAgICAgIHBhcmVudDogbnVsbCwKKyAgICAgICAgcHJldjogbnVsbCwKKyAgICAgICAgbmV4dDogbnVsbAorICAgIH0pOworfTsKKworCisvL1RyZWUgbXV0YXRpb24KK2V4cG9ydHMuc2V0RG9jdW1lbnRUeXBlID0gZnVuY3Rpb24gKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHsKKyAgICB2YXIgZGF0YSA9IERvY3R5cGUuc2VyaWFsaXplQ29udGVudChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpLAorICAgICAgICBkb2N0eXBlTm9kZSA9IG51bGw7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jaGlsZHJlbltpXS50eXBlID09PSAnZGlyZWN0aXZlJyAmJiBkb2N1bWVudC5jaGlsZHJlbltpXS5uYW1lID09PSAnIWRvY3R5cGUnKSB7CisgICAgICAgICAgICBkb2N0eXBlTm9kZSA9IGRvY3VtZW50LmNoaWxkcmVuW2ldOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdHlwZU5vZGUpIHsKKyAgICAgICAgZG9jdHlwZU5vZGUuZGF0YSA9IGRhdGE7CisgICAgICAgIGRvY3R5cGVOb2RlWyd4LW5hbWUnXSA9IG5hbWU7CisgICAgICAgIGRvY3R5cGVOb2RlWyd4LXB1YmxpY0lkJ10gPSBwdWJsaWNJZDsKKyAgICAgICAgZG9jdHlwZU5vZGVbJ3gtc3lzdGVtSWQnXSA9IHN5c3RlbUlkOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICBhcHBlbmRDaGlsZChkb2N1bWVudCwgbmV3IE5vZGUoeworICAgICAgICAgICAgdHlwZTogJ2RpcmVjdGl2ZScsCisgICAgICAgICAgICBuYW1lOiAnIWRvY3R5cGUnLAorICAgICAgICAgICAgZGF0YTogZGF0YSwKKyAgICAgICAgICAgICd4LW5hbWUnOiBuYW1lLAorICAgICAgICAgICAgJ3gtcHVibGljSWQnOiBwdWJsaWNJZCwKKyAgICAgICAgICAgICd4LXN5c3RlbUlkJzogc3lzdGVtSWQKKyAgICAgICAgfSkpOworICAgIH0KKworfTsKKworZXhwb3J0cy5zZXRRdWlya3NNb2RlID0gZnVuY3Rpb24gKGRvY3VtZW50KSB7CisgICAgZG9jdW1lbnQucXVpcmtzTW9kZSA9IHRydWU7Cit9OworCitleHBvcnRzLmlzUXVpcmtzTW9kZSA9IGZ1bmN0aW9uIChkb2N1bWVudCkgeworICAgIHJldHVybiBkb2N1bWVudC5xdWlya3NNb2RlOworfTsKKwordmFyIGFwcGVuZENoaWxkID0gZXhwb3J0cy5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCBuZXdOb2RlKSB7CisgICAgdmFyIHByZXYgPSBwYXJlbnROb2RlLmNoaWxkcmVuW3BhcmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMV07CisKKyAgICBpZiAocHJldikgeworICAgICAgICBwcmV2Lm5leHQgPSBuZXdOb2RlOworICAgICAgICBuZXdOb2RlLnByZXYgPSBwcmV2OworICAgIH0KKworICAgIHBhcmVudE5vZGUuY2hpbGRyZW4ucHVzaChuZXdOb2RlKTsKKyAgICBuZXdOb2RlLnBhcmVudCA9IHBhcmVudE5vZGU7Cit9OworCit2YXIgaW5zZXJ0QmVmb3JlID0gZXhwb3J0cy5pbnNlcnRCZWZvcmUgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkgeworICAgIHZhciBpbnNlcnRpb25JZHggPSBwYXJlbnROb2RlLmNoaWxkcmVuLmluZGV4T2YocmVmZXJlbmNlTm9kZSksCisgICAgICAgIHByZXYgPSByZWZlcmVuY2VOb2RlLnByZXY7CisKKyAgICBpZiAocHJldikgeworICAgICAgICBwcmV2Lm5leHQgPSBuZXdOb2RlOworICAgICAgICBuZXdOb2RlLnByZXYgPSBwcmV2OworICAgIH0KKworICAgIHJlZmVyZW5jZU5vZGUucHJldiA9IG5ld05vZGU7CisgICAgbmV3Tm9kZS5uZXh0ID0gcmVmZXJlbmNlTm9kZTsKKworICAgIHBhcmVudE5vZGUuY2hpbGRyZW4uc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3Tm9kZSk7CisgICAgbmV3Tm9kZS5wYXJlbnQgPSBwYXJlbnROb2RlOworfTsKKworZXhwb3J0cy5kZXRhY2hOb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICBpZiAobm9kZS5wYXJlbnQpIHsKKyAgICAgICAgdmFyIGlkeCA9IG5vZGUucGFyZW50LmNoaWxkcmVuLmluZGV4T2Yobm9kZSksCisgICAgICAgICAgICBwcmV2ID0gbm9kZS5wcmV2LAorICAgICAgICAgICAgbmV4dCA9IG5vZGUubmV4dDsKKworICAgICAgICBub2RlLnByZXYgPSBudWxsOworICAgICAgICBub2RlLm5leHQgPSBudWxsOworCisgICAgICAgIGlmIChwcmV2KQorICAgICAgICAgICAgcHJldi5uZXh0ID0gbmV4dDsKKworICAgICAgICBpZiAobmV4dCkKKyAgICAgICAgICAgIG5leHQucHJldiA9IHByZXY7CisKKyAgICAgICAgbm9kZS5wYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGlkeCwgMSk7CisgICAgICAgIG5vZGUucGFyZW50ID0gbnVsbDsKKyAgICB9Cit9OworCitleHBvcnRzLmluc2VydFRleHQgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdGV4dCkgeworICAgIHZhciBsYXN0Q2hpbGQgPSBwYXJlbnROb2RlLmNoaWxkcmVuW3BhcmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMV07CisKKyAgICBpZiAobGFzdENoaWxkICYmIGxhc3RDaGlsZC50eXBlID09PSAndGV4dCcpCisgICAgICAgIGxhc3RDaGlsZC5kYXRhICs9IHRleHQ7CisgICAgZWxzZQorICAgICAgICBhcHBlbmRDaGlsZChwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Cit9OworCitleHBvcnRzLmluc2VydFRleHRCZWZvcmUgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdGV4dCwgcmVmZXJlbmNlTm9kZSkgeworICAgIHZhciBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGRyZW5bcGFyZW50Tm9kZS5jaGlsZHJlbi5pbmRleE9mKHJlZmVyZW5jZU5vZGUpIC0gMV07CisKKyAgICBpZiAocHJldk5vZGUgJiYgcHJldk5vZGUudHlwZSA9PT0gJ3RleHQnKQorICAgICAgICBwcmV2Tm9kZS5kYXRhICs9IHRleHQ7CisgICAgZWxzZQorICAgICAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCksIHJlZmVyZW5jZU5vZGUpOworfTsKKworZXhwb3J0cy5hZG9wdEF0dHJpYnV0ZXMgPSBmdW5jdGlvbiAocmVjaXBpZW50Tm9kZSwgYXR0cnMpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBhdHRyTmFtZSA9IGF0dHJzW2ldLm5hbWU7CisKKyAgICAgICAgaWYgKHR5cGVvZiByZWNpcGllbnROb2RlLmF0dHJpYnNbYXR0ck5hbWVdID09PSAndW5kZWZpbmVkJykgeworICAgICAgICAgICAgcmVjaXBpZW50Tm9kZS5hdHRyaWJzW2F0dHJOYW1lXSA9IGF0dHJzW2ldLnZhbHVlOworICAgICAgICAgICAgcmVjaXBpZW50Tm9kZVsneC1hdHRyaWJzTmFtZXNwYWNlJ11bYXR0ck5hbWVdID0gYXR0cnNbaV0ubmFtZXNwYWNlOworICAgICAgICAgICAgcmVjaXBpZW50Tm9kZVsneC1hdHRyaWJzUHJlZml4J11bYXR0ck5hbWVdID0gYXR0cnNbaV0ucHJlZml4OworICAgICAgICB9CisgICAgfQorfTsKKworCisvL1RyZWUgdHJhdmVyc2luZworZXhwb3J0cy5nZXRGaXJzdENoaWxkID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS5jaGlsZHJlblswXTsKK307CisKK2V4cG9ydHMuZ2V0Q2hpbGROb2RlcyA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47Cit9OworCitleHBvcnRzLmdldFBhcmVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHJldHVybiBub2RlLnBhcmVudDsKK307CisKK2V4cG9ydHMuZ2V0QXR0ckxpc3QgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHZhciBhdHRyTGlzdCA9IFtdOworCisgICAgZm9yICh2YXIgbmFtZSBpbiBub2RlLmF0dHJpYnMpIHsKKyAgICAgICAgaWYgKG5vZGUuYXR0cmlicy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgeworICAgICAgICAgICAgYXR0ckxpc3QucHVzaCh7CisgICAgICAgICAgICAgICAgbmFtZTogbmFtZSwKKyAgICAgICAgICAgICAgICB2YWx1ZTogbm9kZS5hdHRyaWJzW25hbWVdLAorICAgICAgICAgICAgICAgIG5hbWVzcGFjZTogbm9kZVsneC1hdHRyaWJzTmFtZXNwYWNlJ11bbmFtZV0sCisgICAgICAgICAgICAgICAgcHJlZml4OiBub2RlWyd4LWF0dHJpYnNQcmVmaXgnXVtuYW1lXQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gYXR0ckxpc3Q7Cit9OworCisKKy8vTm9kZSBkYXRhCitleHBvcnRzLmdldFRhZ05hbWUgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHJldHVybiBlbGVtZW50Lm5hbWU7Cit9OworCitleHBvcnRzLmdldE5hbWVzcGFjZVVSSSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgcmV0dXJuIGVsZW1lbnQubmFtZXNwYWNlOworfTsKKworZXhwb3J0cy5nZXRUZXh0Tm9kZUNvbnRlbnQgPSBmdW5jdGlvbiAodGV4dE5vZGUpIHsKKyAgICByZXR1cm4gdGV4dE5vZGUuZGF0YTsKK307CisKK2V4cG9ydHMuZ2V0Q29tbWVudE5vZGVDb250ZW50ID0gZnVuY3Rpb24gKGNvbW1lbnROb2RlKSB7CisgICAgcmV0dXJuIGNvbW1lbnROb2RlLmRhdGE7Cit9OworCitleHBvcnRzLmdldERvY3VtZW50VHlwZU5vZGVOYW1lID0gZnVuY3Rpb24gKGRvY3R5cGVOb2RlKSB7CisgICAgcmV0dXJuIGRvY3R5cGVOb2RlWyd4LW5hbWUnXTsKK307CisKK2V4cG9ydHMuZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkID0gZnVuY3Rpb24gKGRvY3R5cGVOb2RlKSB7CisgICAgcmV0dXJuIGRvY3R5cGVOb2RlWyd4LXB1YmxpY0lkJ107Cit9OworCitleHBvcnRzLmdldERvY3VtZW50VHlwZU5vZGVTeXN0ZW1JZCA9IGZ1bmN0aW9uIChkb2N0eXBlTm9kZSkgeworICAgIHJldHVybiBkb2N0eXBlTm9kZVsneC1zeXN0ZW1JZCddOworfTsKKworCisvL05vZGUgdHlwZXMKK2V4cG9ydHMuaXNUZXh0Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ3RleHQnOworfTsKKworZXhwb3J0cy5pc0NvbW1lbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS50eXBlID09PSAnY29tbWVudCc7Cit9OworCitleHBvcnRzLmlzRG9jdW1lbnRUeXBlTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ2RpcmVjdGl2ZScgJiYgbm9kZS5uYW1lID09PSAnIWRvY3R5cGUnOworfTsKKworZXhwb3J0cy5pc0VsZW1lbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gISFub2RlLmF0dHJpYnM7Cit9OwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3RyZWVfY29uc3RydWN0aW9uL2Zvcm1hdHRpbmdfZWxlbWVudF9saXN0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3RyZWVfY29uc3RydWN0aW9uL2Zvcm1hdHRpbmdfZWxlbWVudF9saXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMGUwYmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vZm9ybWF0dGluZ19lbGVtZW50X2xpc3QuanMKQEAgLTAsMCArMSwxNjcgQEAKKyd1c2Ugc3RyaWN0JzsNCisNCisvL0NvbnN0DQordmFyIE5PQUhfQVJLX0NBUEFDSVRZID0gMzsNCisNCisvL0xpc3Qgb2YgZm9ybWF0dGluZyBlbGVtZW50cw0KK3ZhciBGb3JtYXR0aW5nRWxlbWVudExpc3QgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0cmVlQWRhcHRlcikgew0KKyAgICB0aGlzLmxlbmd0aCA9IDA7DQorICAgIHRoaXMuZW50cmllcyA9IFtdOw0KKyAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7DQorICAgIHRoaXMuYm9va21hcmsgPSBudWxsOw0KK307DQorDQorLy9FbnRyeSB0eXBlcw0KK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUlkgPSAnTUFSS0VSX0VOVFJZJzsNCitGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSA9ICdFTEVNRU5UX0VOVFJZJzsNCisNCisvL05vYWggQXJrJ3MgY29uZGl0aW9uDQorLy9PUFRJTUlaQVRJT046IGF0IGZpcnN0IHdlIHRyeSB0byBmaW5kIHBvc3NpYmxlIGNhbmRpZGF0ZXMgZm9yIGV4Y2x1c2lvbiB1c2luZw0KKy8vbGlnaHR3ZWlnaHQgaGV1cmlzdGljcyB3aXRob3V0IHRob3JvdWdoIGF0dHJpYnV0ZXMgY2hlY2suDQorRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5fZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMgPSBmdW5jdGlvbiAobmV3RWxlbWVudCkgew0KKyAgICB2YXIgY2FuZGlkYXRlcyA9IFtdOw0KKw0KKyAgICBpZiAodGhpcy5sZW5ndGggPj0gTk9BSF9BUktfQ0FQQUNJVFkpIHsNCisgICAgICAgIHZhciBuZUF0dHJzTGVuZ3RoID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KS5sZW5ndGgsDQorICAgICAgICAgICAgbmVUYWdOYW1lID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5ld0VsZW1lbnQpLA0KKyAgICAgICAgICAgIG5lTmFtZXNwYWNlVVJJID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkobmV3RWxlbWVudCk7DQorDQorICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KKyAgICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZW50cmllc1tpXTsNCisNCisgICAgICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSkNCisgICAgICAgICAgICAgICAgYnJlYWs7DQorDQorICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBlbnRyeS5lbGVtZW50LA0KKyAgICAgICAgICAgICAgICBlbGVtZW50QXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpOw0KKw0KKyAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IG5lVGFnTmFtZSAmJg0KKyAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gbmVOYW1lc3BhY2VVUkkgJiYNCisgICAgICAgICAgICAgICAgZWxlbWVudEF0dHJzLmxlbmd0aCA9PT0gbmVBdHRyc0xlbmd0aCkgew0KKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLnB1c2goe2lkeDogaSwgYXR0cnM6IGVsZW1lbnRBdHRyc30pOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICByZXR1cm4gY2FuZGlkYXRlcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSA/IFtdIDogY2FuZGlkYXRlczsNCit9Ow0KKw0KK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24gPSBmdW5jdGlvbiAobmV3RWxlbWVudCkgew0KKyAgICB2YXIgY2FuZGlkYXRlcyA9IHRoaXMuX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQpLA0KKyAgICAgICAgY0xlbmd0aCA9IGNhbmRpZGF0ZXMubGVuZ3RoOw0KKw0KKyAgICBpZiAoY0xlbmd0aCkgew0KKyAgICAgICAgdmFyIG5lQXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KG5ld0VsZW1lbnQpLA0KKyAgICAgICAgICAgIG5lQXR0cnNMZW5ndGggPSBuZUF0dHJzLmxlbmd0aCwNCisgICAgICAgICAgICBuZUF0dHJzTWFwID0ge307DQorDQorICAgICAgICAvL05PVEU6IGJ1aWxkIGF0dHJzIG1hcCBmb3IgdGhlIG5ldyBlbGVtZW50IHNvIHdlIGNhbiBwZXJmb3JtIGZhc3QgbG9va3Vwcw0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZUF0dHJzTGVuZ3RoOyBpKyspIHsNCisgICAgICAgICAgICB2YXIgbmVBdHRyID0gbmVBdHRyc1tpXTsNCisNCisgICAgICAgICAgICBuZUF0dHJzTWFwW25lQXR0ci5uYW1lXSA9IG5lQXR0ci52YWx1ZTsNCisgICAgICAgIH0NCisNCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmVBdHRyc0xlbmd0aDsgaSsrKSB7DQorICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjTGVuZ3RoOyBqKyspIHsNCisgICAgICAgICAgICAgICAgdmFyIGNBdHRyID0gY2FuZGlkYXRlc1tqXS5hdHRyc1tpXTsNCisNCisgICAgICAgICAgICAgICAgaWYgKG5lQXR0cnNNYXBbY0F0dHIubmFtZV0gIT09IGNBdHRyLnZhbHVlKSB7DQorICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLnNwbGljZShqLCAxKTsNCisgICAgICAgICAgICAgICAgICAgIGNMZW5ndGgtLTsNCisgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSkNCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorDQorICAgICAgICAvL05PVEU6IHJlbW92ZSBib3R0b21tb3N0IGNhbmRpZGF0ZXMgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0DQorICAgICAgICBmb3IgKHZhciBpID0gY0xlbmd0aCAtIDE7IGkgPj0gTk9BSF9BUktfQ0FQQUNJVFkgLSAxOyBpLS0pIHsNCisgICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGNhbmRpZGF0ZXNbaV0uaWR4LCAxKTsNCisgICAgICAgICAgICB0aGlzLmxlbmd0aC0tOw0KKyAgICAgICAgfQ0KKyAgICB9DQorfTsNCisNCisvL011dGF0aW9ucw0KK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuaW5zZXJ0TWFya2VyID0gZnVuY3Rpb24gKCkgew0KKyAgICB0aGlzLmVudHJpZXMucHVzaCh7dHlwZTogRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWX0pOw0KKyAgICB0aGlzLmxlbmd0aCsrOw0KK307DQorDQorRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5wdXNoRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50LCB0b2tlbikgew0KKyAgICB0aGlzLl9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uKGVsZW1lbnQpOw0KKw0KKyAgICB0aGlzLmVudHJpZXMucHVzaCh7DQorICAgICAgICB0eXBlOiBGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSwNCisgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsDQorICAgICAgICB0b2tlbjogdG9rZW4NCisgICAgfSk7DQorDQorICAgIHRoaXMubGVuZ3RoKys7DQorfTsNCisNCitGb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrID0gZnVuY3Rpb24gKGVsZW1lbnQsIHRva2VuKSB7DQorICAgIHZhciBib29rbWFya0lkeCA9IHRoaXMubGVuZ3RoIC0gMTsNCisNCisgICAgZm9yICg7IGJvb2ttYXJrSWR4ID49IDA7IGJvb2ttYXJrSWR4LS0pIHsNCisgICAgICAgIGlmICh0aGlzLmVudHJpZXNbYm9va21hcmtJZHhdID09PSB0aGlzLmJvb2ttYXJrKQ0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICB9DQorDQorICAgIHRoaXMuZW50cmllcy5zcGxpY2UoYm9va21hcmtJZHggKyAxLCAwLCB7DQorICAgICAgICB0eXBlOiBGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSwNCisgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsDQorICAgICAgICB0b2tlbjogdG9rZW4NCisgICAgfSk7DQorDQorICAgIHRoaXMubGVuZ3RoKys7DQorfTsNCisNCitGb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLnJlbW92ZUVudHJ5ID0gZnVuY3Rpb24gKGVudHJ5KSB7DQorICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQorICAgICAgICBpZiAodGhpcy5lbnRyaWVzW2ldID09PSBlbnRyeSkgew0KKyAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoaSwgMSk7DQorICAgICAgICAgICAgdGhpcy5sZW5ndGgtLTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIH0NCisgICAgfQ0KK307DQorDQorRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5jbGVhclRvTGFzdE1hcmtlciA9IGZ1bmN0aW9uICgpIHsNCisgICAgd2hpbGUgKHRoaXMubGVuZ3RoKSB7DQorICAgICAgICB2YXIgZW50cnkgPSB0aGlzLmVudHJpZXMucG9wKCk7DQorDQorICAgICAgICB0aGlzLmxlbmd0aC0tOw0KKw0KKyAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUlkpDQorICAgICAgICAgICAgYnJlYWs7DQorICAgIH0NCit9Ow0KKw0KKy8vU2VhcmNoDQorRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUgPSBmdW5jdGlvbiAodGFnTmFtZSkgew0KKyAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KKyAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldOw0KKw0KKyAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUlkpDQorICAgICAgICAgICAgcmV0dXJuIG51bGw7DQorDQorICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVudHJ5LmVsZW1lbnQpID09PSB0YWdOYW1lKQ0KKyAgICAgICAgICAgIHJldHVybiBlbnRyeTsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gbnVsbDsNCit9Ow0KKw0KK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuZ2V0RWxlbWVudEVudHJ5ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsNCisgICAgZm9yICh2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCisgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZW50cmllc1tpXTsNCisNCisgICAgICAgIGlmIChlbnRyeS50eXBlID09PSBGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSAmJiBlbnRyeS5lbGVtZW50ID09IGVsZW1lbnQpDQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5Ow0KKyAgICB9DQorDQorICAgIHJldHVybiBudWxsOw0KK307DQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3RyZWVfY29uc3RydWN0aW9uL2xvY2F0aW9uX2luZm9fbWl4aW4uanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vbG9jYXRpb25faW5mb19taXhpbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2Y1Yzg2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3RyZWVfY29uc3RydWN0aW9uL2xvY2F0aW9uX2luZm9fbWl4aW4uanMKQEAgLTAsMCArMSwxOTcgQEAKKyd1c2Ugc3RyaWN0JzsKKwordmFyIE9wZW5FbGVtZW50U3RhY2sgPSByZXF1aXJlKCcuL29wZW5fZWxlbWVudF9zdGFjaycpLAorICAgIFRva2VuaXplciA9IHJlcXVpcmUoJy4uL3Rva2VuaXphdGlvbi90b2tlbml6ZXInKSwKKyAgICBIVE1MID0gcmVxdWlyZSgnLi4vY29tbW9uL2h0bWwnKTsKKworCisvL0FsaWFzZXMKK3ZhciAkID0gSFRNTC5UQUdfTkFNRVM7CisKKworZnVuY3Rpb24gc2V0RW5kTG9jYXRpb24oZWxlbWVudCwgY2xvc2luZ1Rva2VuLCB0cmVlQWRhcHRlcikgeworICAgIHZhciBsb2MgPSBlbGVtZW50Ll9fbG9jYXRpb247CisKKyAgICBpZiAoIWxvYykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFsb2Muc3RhcnRUYWcpIHsKKyAgICAgICAgbG9jLnN0YXJ0VGFnID0geworICAgICAgICAgICAgc3RhcnQ6IGxvYy5zdGFydCwKKyAgICAgICAgICAgIGVuZDogbG9jLmVuZAorICAgICAgICB9OworICAgIH0KKworICAgIGlmIChjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHsKKyAgICAgICAgdmFyIHRuID0gdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSwKKyAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmcgdGFnIGFuZAorICAgICAgICAgICAgLy8gZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZworICAgICAgICAgICAgaXNDbG9zaW5nRW5kVGFnID0gY2xvc2luZ1Rva2VuLnR5cGUgPT09IFRva2VuaXplci5FTkRfVEFHX1RPS0VOICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0biA9PT0gY2xvc2luZ1Rva2VuLnRhZ05hbWU7CisKKyAgICAgICAgaWYgKGlzQ2xvc2luZ0VuZFRhZykgeworICAgICAgICAgICAgbG9jLmVuZFRhZyA9IHsKKyAgICAgICAgICAgICAgICBzdGFydDogY2xvc2luZ1Rva2VuLmxvY2F0aW9uLnN0YXJ0LAorICAgICAgICAgICAgICAgIGVuZDogY2xvc2luZ1Rva2VuLmxvY2F0aW9uLmVuZAorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIGxvYy5lbmQgPSBjbG9zaW5nVG9rZW4ubG9jYXRpb24uZW5kOworICAgIH0KK30KKworLy9OT1RFOiBwYXRjaCBvcGVuIGVsZW1lbnRzIHN0YWNrLCBzbyB3ZSBjYW4gYXNzaWduIGVuZCBsb2NhdGlvbiBmb3IgdGhlIGVsZW1lbnRzCitmdW5jdGlvbiBwYXRjaE9wZW5FbGVtZW50c1N0YWNrKHN0YWNrLCBwYXJzZXIpIHsKKyAgICB2YXIgdHJlZUFkYXB0ZXIgPSBwYXJzZXIudHJlZUFkYXB0ZXI7CisKKyAgICBzdGFjay5wb3AgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHNldEVuZExvY2F0aW9uKHRoaXMuY3VycmVudCwgcGFyc2VyLmN1cnJlbnRUb2tlbiwgdHJlZUFkYXB0ZXIpOworICAgICAgICBPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3AuY2FsbCh0aGlzKTsKKyAgICB9OworCisgICAgc3RhY2sucG9wQWxsVXBUb0h0bWxFbGVtZW50ID0gZnVuY3Rpb24gKCkgeworICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+IDA7IGktLSkKKyAgICAgICAgICAgIHNldEVuZExvY2F0aW9uKHRoaXMuaXRlbXNbaV0sIHBhcnNlci5jdXJyZW50VG9rZW4sIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BBbGxVcFRvSHRtbEVsZW1lbnQuY2FsbCh0aGlzKTsKKyAgICB9OworCisgICAgc3RhY2sucmVtb3ZlID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICAgICAgc2V0RW5kTG9jYXRpb24oZWxlbWVudCwgcGFyc2VyLmN1cnJlbnRUb2tlbiwgdHJlZUFkYXB0ZXIpOworICAgICAgICBPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzLCBlbGVtZW50KTsKKyAgICB9OworfQorCitleHBvcnRzLmFzc2lnbiA9IGZ1bmN0aW9uIChwYXJzZXIpIHsKKyAgICAvL05PVEU6IG9idGFpbiBQYXJzZXIgcHJvdG8gdGhpcyB3YXkgdG8gYXZvaWQgbW9kdWxlIGNpcmN1bGFyIHJlZmVyZW5jZXMKKyAgICB2YXIgcGFyc2VyUHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocGFyc2VyKSwKKyAgICAgICAgdHJlZUFkYXB0ZXIgPSBwYXJzZXIudHJlZUFkYXB0ZXI7CisKKworICAgIC8vTk9URTogcGF0Y2ggX3Jlc2V0IG1ldGhvZAorICAgIHBhcnNlci5fcmVzZXQgPSBmdW5jdGlvbiAoaHRtbCwgZG9jdW1lbnQsIGZyYWdtZW50Q29udGV4dCkgeworICAgICAgICBwYXJzZXJQcm90by5fcmVzZXQuY2FsbCh0aGlzLCBodG1sLCBkb2N1bWVudCwgZnJhZ21lbnRDb250ZXh0KTsKKworICAgICAgICB0aGlzLmF0dGFjaGFibGVFbGVtZW50TG9jYXRpb24gPSBudWxsOworICAgICAgICB0aGlzLmxhc3RGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbiA9IG51bGw7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDsKKworICAgICAgICBwYXRjaE9wZW5FbGVtZW50c1N0YWNrKHRoaXMub3BlbkVsZW1lbnRzLCBwYXJzZXIpOworICAgIH07CisKKyAgICBwYXJzZXIuX3Byb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB0b2tlbjsKKyAgICAgICAgcGFyc2VyUHJvdG8uX3Byb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQuY2FsbCh0aGlzLCB0b2tlbik7CisgICAgfTsKKworICAgIHBhcnNlci5fcHJvY2Vzc1Rva2VuID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gdG9rZW47CisgICAgICAgIHBhcnNlclByb3RvLl9wcm9jZXNzVG9rZW4uY2FsbCh0aGlzLCB0b2tlbik7CisKKyAgICAgICAgLy9OT1RFOiA8Ym9keT4gYW5kIDxodG1sPiBhcmUgbmV2ZXIgcG9wcGVkIGZyb20gdGhlIHN0YWNrLCBzbyB3ZSBuZWVkIHRvIHVwZGF0ZWQKKyAgICAgICAgLy90aGVpciBlbmQgbG9jYXRpb24gZXhwbGljaXRseS4KKyAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5FTkRfVEFHX1RPS0VOICYmCisgICAgICAgICAgICAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MIHx8CisgICAgICAgICAgICAodG9rZW4udGFnTmFtZSA9PT0gJC5CT0RZICYmIHRoaXMub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkpKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTsKKworICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IHRva2VuLnRhZ05hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5kTG9jYXRpb24oZWxlbWVudCwgdG9rZW4sIHRyZWVBZGFwdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKKworICAgIC8vRG9jdHlwZQorICAgIHBhcnNlci5fc2V0RG9jdW1lbnRUeXBlID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgICAgIHBhcnNlclByb3RvLl9zZXREb2N1bWVudFR5cGUuY2FsbCh0aGlzLCB0b2tlbik7CisKKyAgICAgICAgdmFyIGRvY3VtZW50Q2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5kb2N1bWVudCksCisgICAgICAgICAgICBjbkxlbmd0aCA9IGRvY3VtZW50Q2hpbGRyZW4ubGVuZ3RoOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY25MZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIG5vZGUgPSBkb2N1bWVudENoaWxkcmVuW2ldOworCisgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpIHsKKyAgICAgICAgICAgICAgICBub2RlLl9fbG9jYXRpb24gPSB0b2tlbi5sb2NhdGlvbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH07CisKKyAgICAvL0VsZW1lbnRzCisgICAgcGFyc2VyLl9hdHRhY2hFbGVtZW50VG9UcmVlID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICAgICAgLy9OT1RFOiBfYXR0YWNoRWxlbWVudFRvVHJlZSBpcyBjYWxsZWQgZnJvbSBfYXBwZW5kRWxlbWVudCwgX2luc2VydEVsZW1lbnQgYW5kIF9pbnNlcnRUZW1wbGF0ZSBtZXRob2RzLgorICAgICAgICAvL1NvIHdlIHdpbGwgdXNlIHRva2VuIGxvY2F0aW9uIHN0b3JlZCBpbiB0aGlzIG1ldGhvZHMgZm9yIHRoZSBlbGVtZW50LgorICAgICAgICBlbGVtZW50Ll9fbG9jYXRpb24gPSB0aGlzLmF0dGFjaGFibGVFbGVtZW50TG9jYXRpb24gfHwgbnVsbDsKKyAgICAgICAgdGhpcy5hdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uID0gbnVsbDsKKyAgICAgICAgcGFyc2VyUHJvdG8uX2F0dGFjaEVsZW1lbnRUb1RyZWUuY2FsbCh0aGlzLCBlbGVtZW50KTsKKyAgICB9OworCisgICAgcGFyc2VyLl9hcHBlbmRFbGVtZW50ID0gZnVuY3Rpb24gKHRva2VuLCBuYW1lc3BhY2VVUkkpIHsKKyAgICAgICAgdGhpcy5hdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247CisgICAgICAgIHBhcnNlclByb3RvLl9hcHBlbmRFbGVtZW50LmNhbGwodGhpcywgdG9rZW4sIG5hbWVzcGFjZVVSSSk7CisgICAgfTsKKworICAgIHBhcnNlci5faW5zZXJ0RWxlbWVudCA9IGZ1bmN0aW9uICh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7CisgICAgICAgIHRoaXMuYXR0YWNoYWJsZUVsZW1lbnRMb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uOworICAgICAgICBwYXJzZXJQcm90by5faW5zZXJ0RWxlbWVudC5jYWxsKHRoaXMsIHRva2VuLCBuYW1lc3BhY2VVUkkpOworICAgIH07CisKKyAgICBwYXJzZXIuX2luc2VydFRlbXBsYXRlID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgICAgIHRoaXMuYXR0YWNoYWJsZUVsZW1lbnRMb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uOworICAgICAgICBwYXJzZXJQcm90by5faW5zZXJ0VGVtcGxhdGUuY2FsbCh0aGlzLCB0b2tlbik7CisKKyAgICAgICAgdmFyIHRtcGxDb250ZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQpWzBdOworCisgICAgICAgIHRtcGxDb250ZW50Ll9fbG9jYXRpb24gPSBudWxsOworICAgIH07CisKKyAgICBwYXJzZXIuX2luc2VydEZha2VSb290RWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcGFyc2VyUHJvdG8uX2luc2VydEZha2VSb290RWxlbWVudC5jYWxsKHRoaXMpOworICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50Ll9fbG9jYXRpb24gPSBudWxsOworICAgIH07CisKKyAgICAvL0NvbW1lbnRzCisgICAgcGFyc2VyLl9hcHBlbmRDb21tZW50Tm9kZSA9IGZ1bmN0aW9uICh0b2tlbiwgcGFyZW50KSB7CisgICAgICAgIHBhcnNlclByb3RvLl9hcHBlbmRDb21tZW50Tm9kZS5jYWxsKHRoaXMsIHRva2VuLCBwYXJlbnQpOworCisgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2RlcyhwYXJlbnQpLAorICAgICAgICAgICAgY29tbWVudE5vZGUgPSBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXTsKKworICAgICAgICBjb21tZW50Tm9kZS5fX2xvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247CisgICAgfTsKKworICAgIC8vVGV4dAorICAgIHBhcnNlci5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uID0gZnVuY3Rpb24gKCkgeworICAgICAgICAvL05PVEU6IHN0b3JlIGxhc3QgZm9zdGVyIHBhcmVudGluZyBsb2NhdGlvbiwgc28gd2Ugd2lsbCBiZSBhYmxlIHRvIGZpbmQgaW5zZXJ0ZWQgdGV4dAorICAgICAgICAvL2luIGNhc2Ugb2YgZm9zdGVyIHBhcmVudGluZworICAgICAgICB0aGlzLmxhc3RGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbiA9IHBhcnNlclByb3RvLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24uY2FsbCh0aGlzKTsKKyAgICAgICAgcmV0dXJuIHRoaXMubGFzdEZvc3RlclBhcmVudGluZ0xvY2F0aW9uOworICAgIH07CisKKyAgICBwYXJzZXIuX2luc2VydENoYXJhY3RlcnMgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgcGFyc2VyUHJvdG8uX2luc2VydENoYXJhY3RlcnMuY2FsbCh0aGlzLCB0b2tlbik7CisKKyAgICAgICAgdmFyIGhhc0Zvc3RlclBhcmVudCA9IHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCksCisgICAgICAgICAgICBwYXJlbnRpbmdMb2NhdGlvbiA9IHRoaXMubGFzdEZvc3RlclBhcmVudGluZ0xvY2F0aW9uLAorICAgICAgICAgICAgcGFyZW50ID0gKGhhc0Zvc3RlclBhcmVudCAmJiBwYXJlbnRpbmdMb2NhdGlvbi5wYXJlbnQpIHx8CisgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsCisgICAgICAgICAgICBzaWJsaW5ncyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2RlcyhwYXJlbnQpLAorICAgICAgICAgICAgdGV4dE5vZGVJZHggPSBoYXNGb3N0ZXJQYXJlbnQgJiYgcGFyZW50aW5nTG9jYXRpb24uYmVmb3JlRWxlbWVudCA/CisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpYmxpbmdzLmluZGV4T2YocGFyZW50aW5nTG9jYXRpb24uYmVmb3JlRWxlbWVudCkgLSAxIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2libGluZ3MubGVuZ3RoIC0gMSwKKyAgICAgICAgICAgIHRleHROb2RlID0gc2libGluZ3NbdGV4dE5vZGVJZHhdOworCisgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBsb2NhdGlvbiBhc3NpZ25lZCBieSBhbm90aGVyIHRva2VuLCB0aGVuIGp1c3QgdXBkYXRlIGVuZCBwb3NpdGlvbgorICAgICAgICBpZiAodGV4dE5vZGUuX19sb2NhdGlvbikKKyAgICAgICAgICAgIHRleHROb2RlLl9fbG9jYXRpb24uZW5kID0gdG9rZW4ubG9jYXRpb24uZW5kOworCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRleHROb2RlLl9fbG9jYXRpb24gPSB0b2tlbi5sb2NhdGlvbjsKKyAgICB9OworfTsKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvbGliL3RyZWVfY29uc3RydWN0aW9uL29wZW5fZWxlbWVudF9zdGFjay5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi90cmVlX2NvbnN0cnVjdGlvbi9vcGVuX2VsZW1lbnRfc3RhY2suanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI0NTgyMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi90cmVlX2NvbnN0cnVjdGlvbi9vcGVuX2VsZW1lbnRfc3RhY2suanMKQEAgLTAsMCArMSwzNzkgQEAKKyd1c2Ugc3RyaWN0JzsKKwordmFyIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpOworCisvL0FsaWFzZXMKK3ZhciAkID0gSFRNTC5UQUdfTkFNRVMsCisgICAgTlMgPSBIVE1MLk5BTUVTUEFDRVM7CisKKy8vRWxlbWVudCB1dGlscworCisvL09QVElNSVpBVElPTjogSW50ZWdlciBjb21wYXJpc29ucyBhcmUgbG93LWNvc3QsIHNvIHdlIGNhbiB1c2UgdmVyeSBmYXN0IHRhZyBuYW1lIGxlbmd0aCBmaWx0ZXJzIGhlcmUuCisvL0l0J3MgZmFzdGVyIHRoYW4gdXNpbmcgZGljdGlvbmFyeS4KK2Z1bmN0aW9uIGlzSW1wbGllZEVuZFRhZ1JlcXVpcmVkKHRuKSB7CisgICAgc3dpdGNoICh0bi5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlA7CisKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlJQIHx8IHRuID09PSAkLlJUIHx8IHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUIHx8IHRuID09PSAkLkxJOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5PUFRJT047CisKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLk9QVEdST1VQOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gaXNTY29waW5nRWxlbWVudCh0biwgbnMpIHsKKyAgICBzd2l0Y2ggKHRuLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5zID09PSBOUy5IVE1MOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NSSB8fCB0biA9PT0gJC5NTyB8fCB0biA9PSAkLk1OIHx8IHRuID09PSAkLk1TKQorICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuSFRNTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkRFU0MpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5zID09PSBOUy5TVkc7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1URVhUKQorICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5USVRMRSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLlNWRzsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgcmV0dXJuICh0biA9PT0gJC5BUFBMRVQgfHwgdG4gPT09ICQuT0JKRUNUKSAmJiBucyA9PT0gTlMuSFRNTDsKKworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXR1cm4gKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuTUFSUVVFRSkgJiYgbnMgPT09IE5TLkhUTUw7CisKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MOworCisgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICByZXR1cm4gdG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgJiYgbnMgPT09IE5TLlNWRzsKKworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLkFOTk9UQVRJT05fWE1MICYmIG5zID09PSBOUy5NQVRITUw7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvL1N0YWNrIG9mIG9wZW4gZWxlbWVudHMKK3ZhciBPcGVuRWxlbWVudFN0YWNrID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIHRyZWVBZGFwdGVyKSB7CisgICAgdGhpcy5zdGFja1RvcCA9IC0xOworICAgIHRoaXMuaXRlbXMgPSBbXTsKKyAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDsKKyAgICB0aGlzLmN1cnJlbnRUYWdOYW1lID0gbnVsbDsKKyAgICB0aGlzLmN1cnJlbnRUbXBsQ29udGVudCA9IG51bGw7CisgICAgdGhpcy50bXBsQ291bnQgPSAwOworICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjsKK307CisKKy8vSW5kZXggb2YgZWxlbWVudAorT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuX2luZGV4T2YgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciBpZHggPSAtMTsKKworICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICBpZiAodGhpcy5pdGVtc1tpXSA9PT0gZWxlbWVudCkgeworICAgICAgICAgICAgaWR4ID0gaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBpZHg7Cit9OworCisvL1VwZGF0ZSBjdXJyZW50IGVsZW1lbnQKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLl9pc0luVGVtcGxhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgaWYgKHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEVNUExBVEUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpID09PSBOUy5IVE1MOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuX3VwZGF0ZUN1cnJlbnRFbGVtZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuY3VycmVudCA9IHRoaXMuaXRlbXNbdGhpcy5zdGFja1RvcF07CisgICAgdGhpcy5jdXJyZW50VGFnTmFtZSA9IHRoaXMuY3VycmVudCAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5jdXJyZW50KTsKKworICAgIHRoaXMuY3VycmVudFRtcGxDb250ZW50ID0gdGhpcy5faXNJblRlbXBsYXRlKCkgPyB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5jdXJyZW50KVswXSA6IG51bGw7Cit9OworCisvL011dGF0aW9ucworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgdGhpcy5pdGVtc1srK3RoaXMuc3RhY2tUb3BdID0gZWxlbWVudDsKKyAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpOworCisgICAgaWYgKHRoaXMuX2lzSW5UZW1wbGF0ZSgpKQorICAgICAgICB0aGlzLnRtcGxDb3VudCsrOworCit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5zdGFja1RvcC0tOworCisgICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSkKKyAgICAgICAgdGhpcy50bXBsQ291bnQtLTsKKworICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5yZXBsYWNlID0gZnVuY3Rpb24gKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHsKKyAgICB2YXIgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTsKKyAgICB0aGlzLml0ZW1zW2lkeF0gPSBuZXdFbGVtZW50OworCisgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkKKyAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmluc2VydEFmdGVyID0gZnVuY3Rpb24gKHJlZmVyZW5jZUVsZW1lbnQsIG5ld0VsZW1lbnQpIHsKKyAgICB2YXIgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7CisKKyAgICB0aGlzLml0ZW1zLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnQpOworCisgICAgaWYgKGluc2VydGlvbklkeCA9PSArK3RoaXMuc3RhY2tUb3ApCisgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BVbnRpbFRhZ05hbWVQb3BwZWQgPSBmdW5jdGlvbiAodGFnTmFtZSkgeworICAgIHdoaWxlICh0aGlzLnN0YWNrVG9wID4gLTEpIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy5jdXJyZW50VGFnTmFtZTsKKworICAgICAgICB0aGlzLnBvcCgpOworCisgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcFVudGlsVGVtcGxhdGVQb3BwZWQgPSBmdW5jdGlvbiAoKSB7CisgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPiAtMSkgeworICAgICAgICB2YXIgdG4gPSB0aGlzLmN1cnJlbnRUYWdOYW1lLAorICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpOworCisgICAgICAgIHRoaXMucG9wKCk7CisKKyAgICAgICAgaWYgKHRuID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucG9wVW50aWxFbGVtZW50UG9wcGVkID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+IC0xKSB7CisgICAgICAgIHZhciBwb3BwZWRFbGVtZW50ID0gdGhpcy5jdXJyZW50OworCisgICAgICAgIHRoaXMucG9wKCk7CisKKyAgICAgICAgaWYgKHBvcHBlZEVsZW1lbnQgPT09IGVsZW1lbnQpCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkID0gZnVuY3Rpb24gKCkgeworICAgIHdoaWxlICh0aGlzLnN0YWNrVG9wID4gLTEpIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy5jdXJyZW50VGFnTmFtZTsKKworICAgICAgICB0aGlzLnBvcCgpOworCisgICAgICAgIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INikKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcEFsbFVwVG9IdG1sRWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICAvL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc28KKyAgICAvL3dlIHBlcmZvcm0gdGhpcyBmYXN0IHN0YWNrIGNsZWFuIHVwLgorICAgIHRoaXMuc3RhY2tUb3AgPSAwOworICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UQUJMRSAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRFTVBMQVRFICYmIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuSFRNTCkKKyAgICAgICAgdGhpcy5wb3AoKTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UQk9EWSAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRGT09UICYmCisgICAgICAgICAgIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEhFQUQgJiYgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5URU1QTEFURSAmJgorICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkhUTUwpIHsKKyAgICAgICAgdGhpcy5wb3AoKTsKKyAgICB9Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UUiAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRFTVBMQVRFICYmIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuSFRNTCkKKyAgICAgICAgdGhpcy5wb3AoKTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlmICh0aGlzLml0ZW1zW2ldID09PSBlbGVtZW50KSB7CisgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpLCAxKTsKKyAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK307CisKKy8vU2VhcmNoCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICAvL1Byb3Blcmx5IG5lc3RlZCA8Ym9keT4gZWxlbWVudCAoc2hvdWxkIGJlIHNlY29uZCBlbGVtZW50IGluIHN0YWNrKS4KKyAgICB2YXIgZWxlbWVudCA9IHRoaXMuaXRlbXNbMV07CisgICAgcmV0dXJuIGVsZW1lbnQgJiYgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSAkLkJPRFkgPyBlbGVtZW50IDogbnVsbDsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICByZXR1cm4gdGhpcy5faW5kZXhPZihlbGVtZW50KSA+IC0xOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuZ2V0Q29tbW9uQW5jZXN0b3IgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciBlbGVtZW50SWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTsKKworICAgIHJldHVybiAtLWVsZW1lbnRJZHggPj0gMCA/IHRoaXMuaXRlbXNbZWxlbWVudElkeF0gOiBudWxsOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuY3VycmVudFRhZ05hbWUgPT09ICQuSFRNTDsKK307CisKKy8vRWxlbWVudCBpbiBzY29wZQorT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzSW5TY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAoaXNTY29waW5nRWxlbWVudCh0biwgbnMpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlID0gZnVuY3Rpb24gKCkgeworICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSk7CisKKyAgICAgICAgaWYgKHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGlzU2NvcGluZ0VsZW1lbnQodG4sIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luTGlzdEl0ZW1TY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAoKCh0biA9PT0gJC5VTCB8fCB0biA9PT0gJC5PTCkgJiYgbnMgPT09IE5TLkhUTUwpIHx8IGlzU2NvcGluZ0VsZW1lbnQodG4sIG5zKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luQnV0dG9uU2NvcGUgPSBmdW5jdGlvbiAodGFnTmFtZSkgeworICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSk7CisKKyAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgdmFyIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7CisKKyAgICAgICAgaWYgKCh0biA9PT0gJC5CVVRUT04gJiYgbnMgPT09IE5TLkhUTUwpIHx8IGlzU2NvcGluZ0VsZW1lbnQodG4sIG5zKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luVGFibGVTY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAoKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRFTVBMQVRFIHx8IHRuID09PSAkLkhUTUwpICYmIG5zID09PSBOUy5IVE1MKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSA9IGZ1bmN0aW9uICgpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5URk9PVCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHZhciBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICgodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuSFRNTCkgJiYgbnMgPT09IE5TLkhUTUwpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5oYXNJblNlbGVjdFNjb3BlID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHZhciBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICh0biAhPT0gJC5PUFRJT04gJiYgdG4gIT09ICQuT1BUR1JPVVAgJiYgbnMgPT09IE5TLkhUTUwpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9OworCisvL0ltcGxpZWQgZW5kIHRhZ3MKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MgPSBmdW5jdGlvbiAoKSB7CisgICAgd2hpbGUgKGlzSW1wbGllZEVuZFRhZ1JlcXVpcmVkKHRoaXMuY3VycmVudFRhZ05hbWUpKQorICAgICAgICB0aGlzLnBvcCgpOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24gPSBmdW5jdGlvbiAoZXhjbHVzaW9uVGFnTmFtZSkgeworICAgIHdoaWxlIChpc0ltcGxpZWRFbmRUYWdSZXF1aXJlZCh0aGlzLmN1cnJlbnRUYWdOYW1lKSAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSBleGNsdXNpb25UYWdOYW1lKQorICAgICAgICB0aGlzLnBvcCgpOworfTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xpYi90cmVlX2NvbnN0cnVjdGlvbi9wYXJzZXIuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vcGFyc2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5YzQwNDgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vcGFyc2VyLmpzCkBAIC0wLDAgKzEsMjgyNyBAQAorJ3VzZSBzdHJpY3QnOworCit2YXIgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplcicpLAorICAgIE9wZW5FbGVtZW50U3RhY2sgPSByZXF1aXJlKCcuL29wZW5fZWxlbWVudF9zdGFjaycpLAorICAgIEZvcm1hdHRpbmdFbGVtZW50TGlzdCA9IHJlcXVpcmUoJy4vZm9ybWF0dGluZ19lbGVtZW50X2xpc3QnKSwKKyAgICBMb2NhdGlvbkluZm9NaXhpbiA9IHJlcXVpcmUoJy4vbG9jYXRpb25faW5mb19taXhpbicpLAorICAgIERlZmF1bHRUcmVlQWRhcHRlciA9IHJlcXVpcmUoJy4uL3RyZWVfYWRhcHRlcnMvZGVmYXVsdCcpLAorICAgIERvY3R5cGUgPSByZXF1aXJlKCcuLi9jb21tb24vZG9jdHlwZScpLAorICAgIEZvcmVpZ25Db250ZW50ID0gcmVxdWlyZSgnLi4vY29tbW9uL2ZvcmVpZ25fY29udGVudCcpLAorICAgIFV0aWxzID0gcmVxdWlyZSgnLi4vY29tbW9uL3V0aWxzJyksCisgICAgVU5JQ09ERSA9IHJlcXVpcmUoJy4uL2NvbW1vbi91bmljb2RlJyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4uL2NvbW1vbi9odG1sJyk7CisKKy8vQWxpYXNlcwordmFyICQgPSBIVE1MLlRBR19OQU1FUywKKyAgICBOUyA9IEhUTUwuTkFNRVNQQUNFUywKKyAgICBBVFRSUyA9IEhUTUwuQVRUUlM7CisKKy8vRGVmYXVsdCBvcHRpb25zCit2YXIgREVGQVVMVF9PUFRJT05TID0geworICAgIGRlY29kZUh0bWxFbnRpdGllczogdHJ1ZSwKKyAgICBsb2NhdGlvbkluZm86IGZhbHNlCit9OworCisvL01pc2MgY29uc3RhbnRzCit2YXIgU0VBUkNIQUJMRV9JTkRFWF9ERUZBVUxUX1BST01QVCA9ICdUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAnLAorICAgIFNFQVJDSEFCTEVfSU5ERVhfSU5QVVRfTkFNRSA9ICdpc2luZGV4JywKKyAgICBISURERU5fSU5QVVRfVFlQRSA9ICdoaWRkZW4nOworCisvL0Fkb3B0aW9uIGFnZW5jeSBsb29wcyBpdGVyYXRpb24gY291bnQKK3ZhciBBQV9PVVRFUl9MT09QX0lURVIgPSA4LAorICAgIEFBX0lOTkVSX0xPT1BfSVRFUiA9IDM7CisKKy8vSW5zZXJ0aW9uIG1vZGVzCit2YXIgSU5JVElBTF9NT0RFID0gJ0lOSVRJQUxfTU9ERScsCisgICAgQkVGT1JFX0hUTUxfTU9ERSA9ICdCRUZPUkVfSFRNTF9NT0RFJywKKyAgICBCRUZPUkVfSEVBRF9NT0RFID0gJ0JFRk9SRV9IRUFEX01PREUnLAorICAgIElOX0hFQURfTU9ERSA9ICdJTl9IRUFEX01PREUnLAorICAgIEFGVEVSX0hFQURfTU9ERSA9ICdBRlRFUl9IRUFEX01PREUnLAorICAgIElOX0JPRFlfTU9ERSA9ICdJTl9CT0RZX01PREUnLAorICAgIFRFWFRfTU9ERSA9ICdURVhUX01PREUnLAorICAgIElOX1RBQkxFX01PREUgPSAnSU5fVEFCTEVfTU9ERScsCisgICAgSU5fVEFCTEVfVEVYVF9NT0RFID0gJ0lOX1RBQkxFX1RFWFRfTU9ERScsCisgICAgSU5fQ0FQVElPTl9NT0RFID0gJ0lOX0NBUFRJT05fTU9ERScsCisgICAgSU5fQ09MVU1OX0dST1VQX01PREUgPSAnSU5fQ09MVU1OX0dST1VQX01PREUnLAorICAgIElOX1RBQkxFX0JPRFlfTU9ERSA9ICdJTl9UQUJMRV9CT0RZX01PREUnLAorICAgIElOX1JPV19NT0RFID0gJ0lOX1JPV19NT0RFJywKKyAgICBJTl9DRUxMX01PREUgPSAnSU5fQ0VMTF9NT0RFJywKKyAgICBJTl9TRUxFQ1RfTU9ERSA9ICdJTl9TRUxFQ1RfTU9ERScsCisgICAgSU5fU0VMRUNUX0lOX1RBQkxFX01PREUgPSAnSU5fU0VMRUNUX0lOX1RBQkxFX01PREUnLAorICAgIElOX1RFTVBMQVRFX01PREUgPSAnSU5fVEVNUExBVEVfTU9ERScsCisgICAgQUZURVJfQk9EWV9NT0RFID0gJ0FGVEVSX0JPRFlfTU9ERScsCisgICAgSU5fRlJBTUVTRVRfTU9ERSA9ICdJTl9GUkFNRVNFVF9NT0RFJywKKyAgICBBRlRFUl9GUkFNRVNFVF9NT0RFID0gJ0FGVEVSX0ZSQU1FU0VUX01PREUnLAorICAgIEFGVEVSX0FGVEVSX0JPRFlfTU9ERSA9ICdBRlRFUl9BRlRFUl9CT0RZX01PREUnLAorICAgIEFGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREUgPSAnQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERSc7CisKKy8vSW5zZXJ0aW9uIG1vZGUgcmVzZXQgbWFwCit2YXIgSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQID0ge307CisKK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLlRSXSA9IElOX1JPV19NT0RFOworSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEJPRFldID0KK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLlRIRUFEXSA9CitJTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5URk9PVF0gPSBJTl9UQUJMRV9CT0RZX01PREU7CitJTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5DQVBUSU9OXSA9IElOX0NBUFRJT05fTU9ERTsKK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLkNPTEdST1VQXSA9IElOX0NPTFVNTl9HUk9VUF9NT0RFOworSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEFCTEVdID0gSU5fVEFCTEVfTU9ERTsKK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLkJPRFldID0gSU5fQk9EWV9NT0RFOworSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuRlJBTUVTRVRdID0gSU5fRlJBTUVTRVRfTU9ERTsKKworLy9UZW1wbGF0ZSBpbnNlcnRpb24gbW9kZSBzd2l0Y2ggbWFwCit2YXIgVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUCA9IHt9OworCitURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ0FQVElPTl0gPQorVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLkNPTEdST1VQXSA9CitURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuVEJPRFldID0KK1RFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5URk9PVF0gPQorVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRIRUFEXSA9IElOX1RBQkxFX01PREU7CitURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ09MXSA9IElOX0NPTFVNTl9HUk9VUF9NT0RFOworVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRSXSA9IElOX1RBQkxFX0JPRFlfTU9ERTsKK1RFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5URF0gPQorVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRIXSA9IElOX1JPV19NT0RFOworCisvL1Rva2VuIGhhbmRsZXJzIG1hcCBmb3IgaW5zZXJ0aW9uIG1vZGVzCit2YXIgXyA9IHt9OworCitfW0lOSVRJQUxfTU9ERV0gPSB7fTsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuSW5Jbml0aWFsTW9kZTsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBkb2N0eXBlSW5Jbml0aWFsTW9kZTsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9CitfW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0KK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuSW5Jbml0aWFsTW9kZTsKKworX1tCRUZPUkVfSFRNTF9NT0RFXSA9IHt9OworX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkJlZm9yZUh0bWw7CitfW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdCZWZvcmVIdG1sOworX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdCZWZvcmVIdG1sOworX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQmVmb3JlSHRtbDsKKworX1tCRUZPUkVfSEVBRF9NT0RFXSA9IHt9OworX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkJlZm9yZUhlYWQ7CitfW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdCZWZvcmVIZWFkOworX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdCZWZvcmVIZWFkOworX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQmVmb3JlSGVhZDsKKworX1tJTl9IRUFEX01PREVdID0ge307CitfW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkluSGVhZDsKK19bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50OworX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkhlYWQ7CitfW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5IZWFkOworX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gdG9rZW5JbkhlYWQ7CisKK19bQUZURVJfSEVBRF9NT0RFXSA9IHt9OworX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckhlYWQ7CitfW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7CitfW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJIZWFkOworX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVySGVhZDsKK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQWZ0ZXJIZWFkOworCitfW0lOX0JPRFlfTU9ERV0gPSB7fTsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7CitfW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5Cb2R5OworX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luQm9keTsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tURVhUX01PREVdID0ge307CitfW1RFWFRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tURVhUX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPQorX1tURVhUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzOworX1tURVhUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9CitfW1RFWFRfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0KK19bVEVYVF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tURVhUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luVGV4dDsKK19bVEVYVF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluVGV4dDsKKworX1tJTl9UQUJMRV9NT0RFXSA9IHt9OworX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPQorX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gY2hhcmFjdGVySW5UYWJsZTsKK19bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblRhYmxlOworX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRhYmxlOworX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9UQUJMRV9URVhUX01PREVdID0ge307CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJblRhYmxlVGV4dDsKK19bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dDsKK19bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPQorX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPQorX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSB0b2tlbkluVGFibGVUZXh0OworCitfW0lOX0NBUFRJT05fTU9ERV0gPSB7fTsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7CitfW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5DYXB0aW9uOworX1tJTl9DQVBUSU9OX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luQ2FwdGlvbjsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV0gPSB7fTsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkluQ29sdW1uR3JvdXA7CitfW0lOX0NPTFVNTl9HUk9VUF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX0NPTFVNTl9HUk9VUF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkNvbHVtbkdyb3VwOworX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Db2x1bW5Hcm91cDsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5Cb2R5OworCitfW0lOX1RBQkxFX0JPRFlfTU9ERV0gPSB7fTsKK19bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluVGFibGU7CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5UYWJsZUJvZHk7CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5UYWJsZUJvZHk7CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7CisKK19bSU5fUk9XX01PREVdID0ge307CitfW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0KK19bSU5fUk9XX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJblRhYmxlOworX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fUk9XX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luUm93OworX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Sb3c7CitfW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9DRUxMX01PREVdID0ge307CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJbkJvZHk7CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5OworX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luQ2VsbDsKK19bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkNlbGw7CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7CisKK19bSU5fU0VMRUNUX01PREVdID0ge307CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblNlbGVjdDsKK19bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luU2VsZWN0OworX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7CisKK19bSU5fU0VMRUNUX0lOX1RBQkxFX01PREVdID0ge307CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fU0VMRUNUX0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fU0VMRUNUX0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblNlbGVjdEluVGFibGU7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblNlbGVjdEluVGFibGU7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9URU1QTEFURV9NT0RFXSA9IHt9OworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTsKK19bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTsKK19bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1RFTVBMQVRFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblRlbXBsYXRlOworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRlbXBsYXRlOworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluVGVtcGxhdGU7CisKK19bQUZURVJfQk9EWV9NT0RFXSA9IHt9OworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckJvZHk7CitfW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7CitfW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50OworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdBZnRlckJvZHk7CitfW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnQWZ0ZXJCb2R5OworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7CisKK19bSU5fRlJBTUVTRVRfTU9ERV0gPSB7fTsKK19bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzOworX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50OworX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luRnJhbWVzZXQ7CitfW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luRnJhbWVzZXQ7CitfW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7CisKK19bQUZURVJfRlJBTUVTRVRfTU9ERV0gPSB7fTsKK19bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzOworX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50OworX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0FmdGVyRnJhbWVzZXQ7CitfW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVyRnJhbWVzZXQ7CitfW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7CisKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXSA9IHt9OworX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckFmdGVyQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckFmdGVyQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50VG9Eb2N1bWVudDsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHk7CitfW0FGVEVSX0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gdG9rZW5BZnRlckFmdGVyQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHN0b3BQYXJzaW5nOworCitfW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdID0ge307CitfW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTsKK19bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQ7CitfW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0OworX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBzdG9wUGFyc2luZzsKKworLy9TZWFyY2hhYmxlIGluZGV4IGJ1aWxkaW5nIHV0aWxzICg8aXNpbmRleD4gdGFnKQorZnVuY3Rpb24gZ2V0U2VhcmNoYWJsZUluZGV4Rm9ybUF0dHJzKGlzaW5kZXhTdGFydFRhZ1Rva2VuKSB7CisgICAgdmFyIGluZGV4QWN0aW9uID0gVG9rZW5pemVyLmdldFRva2VuQXR0cihpc2luZGV4U3RhcnRUYWdUb2tlbiwgQVRUUlMuQUNUSU9OKSwKKyAgICAgICAgYXR0cnMgPSBbXTsKKworICAgIGlmIChpbmRleEFjdGlvbiAhPT0gbnVsbCkgeworICAgICAgICBhdHRycy5wdXNoKHsKKyAgICAgICAgICAgIG5hbWU6IEFUVFJTLkFDVElPTiwKKyAgICAgICAgICAgIHZhbHVlOiBpbmRleEFjdGlvbgorICAgICAgICB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gYXR0cnM7Cit9CisKK2Z1bmN0aW9uIGdldFNlYXJjaGFibGVJbmRleExhYmVsVGV4dChpc2luZGV4U3RhcnRUYWdUb2tlbikgeworICAgIHZhciBpbmRleFByb21wdCA9IFRva2VuaXplci5nZXRUb2tlbkF0dHIoaXNpbmRleFN0YXJ0VGFnVG9rZW4sIEFUVFJTLlBST01QVCk7CisKKyAgICByZXR1cm4gaW5kZXhQcm9tcHQgPT09IG51bGwgPyBTRUFSQ0hBQkxFX0lOREVYX0RFRkFVTFRfUFJPTVBUIDogaW5kZXhQcm9tcHQ7Cit9CisKK2Z1bmN0aW9uIGdldFNlYXJjaGFibGVJbmRleElucHV0QXR0cnMoaXNpbmRleFN0YXJ0VGFnVG9rZW4pIHsKKyAgICB2YXIgaXNpbmRleEF0dHJzID0gaXNpbmRleFN0YXJ0VGFnVG9rZW4uYXR0cnMsCisgICAgICAgIGlucHV0QXR0cnMgPSBbXTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXNpbmRleEF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBuYW1lID0gaXNpbmRleEF0dHJzW2ldLm5hbWU7CisKKyAgICAgICAgaWYgKG5hbWUgIT09IEFUVFJTLk5BTUUgJiYgbmFtZSAhPT0gQVRUUlMuQUNUSU9OICYmIG5hbWUgIT09IEFUVFJTLlBST01QVCkKKyAgICAgICAgICAgIGlucHV0QXR0cnMucHVzaChpc2luZGV4QXR0cnNbaV0pOworICAgIH0KKworICAgIGlucHV0QXR0cnMucHVzaCh7CisgICAgICAgIG5hbWU6IEFUVFJTLk5BTUUsCisgICAgICAgIHZhbHVlOiBTRUFSQ0hBQkxFX0lOREVYX0lOUFVUX05BTUUKKyAgICB9KTsKKworICAgIHJldHVybiBpbnB1dEF0dHJzOworfQorCisvL1BhcnNlcgordmFyIFBhcnNlciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRyZWVBZGFwdGVyLCBvcHRpb25zKSB7CisgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyIHx8IERlZmF1bHRUcmVlQWRhcHRlcjsKKyAgICB0aGlzLm9wdGlvbnMgPSBVdGlscy5tZXJnZU9wdGlvbnMoREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTsKKyAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBudWxsOworCisgICAgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbkluZm8pCisgICAgICAgIExvY2F0aW9uSW5mb01peGluLmFzc2lnbih0aGlzKTsKK307CisKKy8vQVBJCitQYXJzZXIucHJvdG90eXBlLnBhcnNlID0gZnVuY3Rpb24gKGh0bWwpIHsKKyAgICB2YXIgZG9jdW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCk7CisKKyAgICB0aGlzLl9yZXNldChodG1sLCBkb2N1bWVudCwgbnVsbCk7CisgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTsKKworICAgIHJldHVybiBkb2N1bWVudDsKK307CisKK1BhcnNlci5wcm90b3R5cGUucGFyc2VGcmFnbWVudCA9IGZ1bmN0aW9uIChodG1sLCBmcmFnbWVudENvbnRleHQpIHsKKyAgICAvL05PVEU6IHVzZSA8dGVtcGxhdGU+IGVsZW1lbnQgYXMgYSBmcmFnbWVudCBjb250ZXh0IGlmIGNvbnRleHQgZWxlbWVudCB3YXMgbm90IHByb3ZpZGVkLAorICAgIC8vc28gd2Ugd2lsbCBwYXJzZSBpbiAiZm9yZ2l2aW5nIiBtYW5uZXIKKyAgICBpZiAoIWZyYWdtZW50Q29udGV4dCkKKyAgICAgICAgZnJhZ21lbnRDb250ZXh0ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVEVNUExBVEUsIE5TLkhUTUwsIFtdKTsKKworICAgIC8vTk9URTogY3JlYXRlIGZha2UgZWxlbWVudCB3aGljaCB3aWxsIGJlIHVzZWQgYXMgJ2RvY3VtZW50JyBmb3IgZnJhZ21lbnQgcGFyc2luZy4KKyAgICAvL1RoaXMgaXMgaW1wb3J0YW50IGZvciBqc2RvbSB0aGVyZSAnZG9jdW1lbnQnIGNhbid0IGJlIHJlY3JlYXRlZCwgdGhlcmVmb3JlCisgICAgLy9mcmFnbWVudCBwYXJzaW5nIGNhdXNlcyBtZXNzaW5nIG9mIHRoZSBtYWluIGBkb2N1bWVudGAuCisgICAgdmFyIGRvY3VtZW50TW9jayA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnZG9jdW1lbnRtb2NrJywgTlMuSFRNTCwgW10pOworCisgICAgdGhpcy5fcmVzZXQoaHRtbCwgZG9jdW1lbnRNb2NrLCBmcmFnbWVudENvbnRleHQpOworCisgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShmcmFnbWVudENvbnRleHQpID09PSAkLlRFTVBMQVRFKQorICAgICAgICB0aGlzLl9wdXNoVG1wbEluc2VydGlvbk1vZGUoSU5fVEVNUExBVEVfTU9ERSk7CisKKyAgICB0aGlzLl9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCk7CisgICAgdGhpcy5faW5zZXJ0RmFrZVJvb3RFbGVtZW50KCk7CisgICAgdGhpcy5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7CisgICAgdGhpcy5fZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpOworICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7CisKKyAgICB2YXIgcm9vdEVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9jdW1lbnRNb2NrKSwKKyAgICAgICAgZnJhZ21lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKworICAgIHRoaXMuX2Fkb3B0Tm9kZXMocm9vdEVsZW1lbnQsIGZyYWdtZW50KTsKKworICAgIHJldHVybiBmcmFnbWVudDsKK307CisKKy8vUmVzZXQgc3RhdGUKK1BhcnNlci5wcm90b3R5cGUuX3Jlc2V0ID0gZnVuY3Rpb24gKGh0bWwsIGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpIHsKKyAgICB0aGlzLnRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIoaHRtbCwgdGhpcy5vcHRpb25zKTsKKworICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlOworCisgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5JVElBTF9NT0RFOworICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gJyc7CisKKyAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7CisgICAgdGhpcy5mcmFnbWVudENvbnRleHQgPSBmcmFnbWVudENvbnRleHQ7CisKKyAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDsKKyAgICB0aGlzLmZvcm1FbGVtZW50ID0gbnVsbDsKKworICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlcik7CisgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRoaXMudHJlZUFkYXB0ZXIpOworCisgICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrID0gW107CisgICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrVG9wID0gLTE7CisgICAgdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGUgPSBudWxsOworCisgICAgdGhpcy5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zID0gW107CisgICAgdGhpcy5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7CisKKyAgICB0aGlzLmZyYW1lc2V0T2sgPSB0cnVlOworICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7CisgICAgdGhpcy5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gZmFsc2U7Cit9OworCisvL1BhcnNpbmcgbG9vcAorUGFyc2VyLnByb3RvdHlwZS5faXRlcmF0ZVBhcnNpbmdMb29wID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuX3NldHVwVG9rZW5pemVyQ0RBVEFNb2RlKCk7CisKKyAgICB2YXIgdG9rZW4gPSB0aGlzLnRva2VuaXplci5nZXROZXh0VG9rZW4oKTsKKworICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSkgeworICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlOworCisgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4gJiYgdG9rZW4uY2hhcnNbMF0gPT09ICdcbicpIHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5sZW5ndGggPT09IDEpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh0aGlzLl9zaG91bGRQcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkKKyAgICAgICAgdGhpcy5fcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbik7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9ydW5QYXJzaW5nTG9vcCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAoIXRoaXMuc3RvcHBlZCkKKyAgICAgICAgdGhpcy5faXRlcmF0ZVBhcnNpbmdMb29wKCk7Cit9OworCisvL1RleHQgcGFyc2luZworUGFyc2VyLnByb3RvdHlwZS5fc2V0dXBUb2tlbml6ZXJDREFUQU1vZGUgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGN1cnJlbnQgPSB0aGlzLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCk7CisKKyAgICB0aGlzLnRva2VuaXplci5hbGxvd0NEQVRBID0gY3VycmVudCAmJiBjdXJyZW50ICE9PSB0aGlzLmRvY3VtZW50ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpICE9PSBOUy5IVE1MICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICghdGhpcy5faXNIdG1sSW50ZWdyYXRpb25Qb2ludChjdXJyZW50KSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCF0aGlzLl9pc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnQpKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3N3aXRjaFRvVGV4dFBhcnNpbmcgPSBmdW5jdGlvbiAoY3VycmVudFRva2VuLCBuZXh0VG9rZW5pemVyU3RhdGUpIHsKKyAgICB0aGlzLl9pbnNlcnRFbGVtZW50KGN1cnJlbnRUb2tlbiwgTlMuSFRNTCk7CisgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7CisgICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSB0aGlzLmluc2VydGlvbk1vZGU7CisgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gVEVYVF9NT0RFOworfTsKKworLy9GcmFnbWVudCBwYXJzaW5nCitQYXJzZXIucHJvdG90eXBlLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCA/CisgICAgICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0IDoKKyAgICAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIG5vZGUgPSB0aGlzLmZyYWdtZW50Q29udGV4dDsKKworICAgIGRvIHsKKyAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKSA9PT0gJC5GT1JNKSB7CisgICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbm9kZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgbm9kZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKTsKKyAgICB9IHdoaWxlIChub2RlKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuZnJhZ21lbnRDb250ZXh0KTsKKworICAgIGlmICh0biA9PT0gJC5USVRMRSB8fCB0biA9PT0gJC5URVhUQVJFQSkKKyAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQ0RBVEE7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5TVFlMRSB8fCB0biA9PT0gJC5YTVAgfHwgdG4gPT09ICQuSUZSQU1FIHx8CisgICAgICAgICAgICAgdG4gPT09ICQuTk9FTUJFRCB8fCB0biA9PT0gJC5OT0ZSQU1FUyB8fCB0biA9PT0gJC5OT1NDUklQVCkgeworICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlJBV1RFWFQ7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKQorICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlNDUklQVF9EQVRBOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuUExBSU5URVhUKQorICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlBMQUlOVEVYVDsKK307CisKKy8vVHJlZSBtdXRhdGlvbgorUGFyc2VyLnByb3RvdHlwZS5fc2V0RG9jdW1lbnRUeXBlID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgdGhpcy50cmVlQWRhcHRlci5zZXREb2N1bWVudFR5cGUodGhpcy5kb2N1bWVudCwgdG9rZW4ubmFtZSwgdG9rZW4ucHVibGljSWQsIHRva2VuLnN5c3RlbUlkKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2F0dGFjaEVsZW1lbnRUb1RyZWUgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKQorICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpOworCisgICAgZWxzZSB7CisgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDsKKworICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudCwgZWxlbWVudCk7CisgICAgfQorfTsKKworUGFyc2VyLnByb3RvdHlwZS5fYXBwZW5kRWxlbWVudCA9IGZ1bmN0aW9uICh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7CisgICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7CisKKyAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQpOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5faW5zZXJ0RWxlbWVudCA9IGZ1bmN0aW9uICh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7CisgICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7CisKKyAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQpOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9pbnNlcnRUZW1wbGF0ZSA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIHZhciB0bXBsID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIE5TLkhUTUwsIHRva2VuLmF0dHJzKSwKKyAgICAgICAgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworCisgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0bXBsLCBjb250ZW50KTsKKyAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKHRtcGwpOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2godG1wbCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSk7CisKKyAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsIGVsZW1lbnQpOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9hcHBlbmRDb21tZW50Tm9kZSA9IGZ1bmN0aW9uICh0b2tlbiwgcGFyZW50KSB7CisgICAgdmFyIGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTsKKworICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBjb21tZW50Tm9kZSk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9pbnNlcnRDaGFyYWN0ZXJzID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpCisgICAgICAgIHRoaXMuX2Zvc3RlclBhcmVudFRleHQodG9rZW4uY2hhcnMpOworCisgICAgZWxzZSB7CisgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDsKKworICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7CisgICAgfQorfTsKKworUGFyc2VyLnByb3RvdHlwZS5fYWRvcHROb2RlcyA9IGZ1bmN0aW9uIChkb25vciwgcmVjaXBpZW50KSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgdmFyIGNoaWxkID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKGRvbm9yKTsKKworICAgICAgICBpZiAoIWNoaWxkKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgdGhpcy50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGNoaWxkKTsKKyAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChyZWNpcGllbnQsIGNoaWxkKTsKKyAgICB9Cit9OworCisvL1Rva2VuIHByb2Nlc3NpbmcKK1BhcnNlci5wcm90b3R5cGUuX3Nob3VsZFByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICB2YXIgY3VycmVudCA9IHRoaXMuX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKTsKKworICAgIGlmICghY3VycmVudCB8fCBjdXJyZW50ID09PSB0aGlzLmRvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTsKKworICAgIGlmIChucyA9PT0gTlMuSFRNTCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShjdXJyZW50KSA9PT0gJC5BTk5PVEFUSU9OX1hNTCAmJiBucyA9PT0gTlMuTUFUSE1MICYmCisgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gJiYgdG9rZW4udGFnTmFtZSA9PT0gJC5TVkcpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZhciBpc0NoYXJhY3RlclRva2VuID0gdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4sCisgICAgICAgIGlzTWF0aE1MVGV4dFN0YXJ0VGFnID0gdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgIT09ICQuTUdMWVBIICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSAhPT0gJC5NQUxJR05NQVJLOworCisgICAgaWYgKChpc01hdGhNTFRleHRTdGFydFRhZyB8fCBpc0NoYXJhY3RlclRva2VuKSAmJiB0aGlzLl9pc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gfHwgaXNDaGFyYWN0ZXJUb2tlbikgJiYgdGhpcy5faXNIdG1sSW50ZWdyYXRpb25Qb2ludChjdXJyZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRva2VuLnR5cGUgIT09IFRva2VuaXplci5FT0ZfVE9LRU47Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzVG9rZW4gPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICBfW3RoaXMuaW5zZXJ0aW9uTW9kZV1bdG9rZW4udHlwZV0odGhpcywgdG9rZW4pOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fcHJvY2Vzc1Rva2VuSW5Cb2R5TW9kZSA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIF9bSU5fQk9EWV9NT0RFXVt0b2tlbi50eXBlXSh0aGlzLCB0b2tlbik7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50ID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5DSEFSQUNURVJfVE9LRU4pCisgICAgICAgIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOKQorICAgICAgICBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4pCisgICAgICAgIGluc2VydENoYXJhY3RlcnModGhpcywgdG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkNPTU1FTlRfVE9LRU4pCisgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTikKKyAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5FTkRfVEFHX1RPS0VOKQorICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3Byb2Nlc3NGYWtlU3RhcnRUYWdXaXRoQXR0cnMgPSBmdW5jdGlvbiAodGFnTmFtZSwgYXR0cnMpIHsKKyAgICB2YXIgZmFrZVRva2VuID0gdGhpcy50b2tlbml6ZXIuYnVpbGRTdGFydFRhZ1Rva2VuKHRhZ05hbWUpOworCisgICAgZmFrZVRva2VuLmF0dHJzID0gYXR0cnM7CisgICAgdGhpcy5fcHJvY2Vzc1Rva2VuKGZha2VUb2tlbik7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzRmFrZVN0YXJ0VGFnID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICB2YXIgZmFrZVRva2VuID0gdGhpcy50b2tlbml6ZXIuYnVpbGRTdGFydFRhZ1Rva2VuKHRhZ05hbWUpOworCisgICAgdGhpcy5fcHJvY2Vzc1Rva2VuKGZha2VUb2tlbik7CisgICAgcmV0dXJuIGZha2VUb2tlbjsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3Byb2Nlc3NGYWtlRW5kVGFnID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICB2YXIgZmFrZVRva2VuID0gdGhpcy50b2tlbml6ZXIuYnVpbGRFbmRUYWdUb2tlbih0YWdOYW1lKTsKKworICAgIHRoaXMuX3Byb2Nlc3NUb2tlbihmYWtlVG9rZW4pOworICAgIHJldHVybiBmYWtlVG9rZW47Cit9OworCisvL0ludGVncmF0aW9uIHBvaW50cworUGFyc2VyLnByb3RvdHlwZS5faXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLAorICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpOworCisgICAgcmV0dXJuIEZvcmVpZ25Db250ZW50LmlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2lzSHRtbEludGVncmF0aW9uUG9pbnQgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSwKKyAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSwKKyAgICAgICAgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpOworCisgICAgcmV0dXJuIEZvcmVpZ25Db250ZW50LmlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycyk7Cit9OworCisvL0FjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHJlY29uc3RydWN0aW9uCitQYXJzZXIucHJvdG90eXBlLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyA9IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgbGlzdExlbmd0aCA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmxlbmd0aDsKKworICAgIGlmIChsaXN0TGVuZ3RoKSB7CisgICAgICAgIHZhciB1bm9wZW5JZHggPSBsaXN0TGVuZ3RoLAorICAgICAgICAgICAgZW50cnkgPSBudWxsOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHVub3BlbklkeC0tOworICAgICAgICAgICAgZW50cnkgPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzW3Vub3BlbklkeF07CisKKyAgICAgICAgICAgIGlmIChlbnRyeS50eXBlID09PSBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgdW5vcGVuSWR4Kys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKHVub3BlbklkeCA+IDApOworCisgICAgICAgIGZvciAodmFyIGkgPSB1bm9wZW5JZHg7IGkgPCBsaXN0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGVudHJ5ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllc1tpXTsKKyAgICAgICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoZW50cnkudG9rZW4sIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVudHJ5LmVsZW1lbnQpKTsKKyAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50OworICAgICAgICB9CisgICAgfQorfTsKKworLy9DbG9zZSBlbGVtZW50cworUGFyc2VyLnByb3RvdHlwZS5fY2xvc2VUYWJsZUNlbGwgPSBmdW5jdGlvbiAoKSB7CisgICAgaWYgKHRoaXMub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlREKSkKKyAgICAgICAgdGhpcy5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5URCk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuVEgpOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fY2xvc2VQRWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlApOworfTsKKworLy9JbnNlcnRpb24gbW9kZXMKK1BhcnNlci5wcm90b3R5cGUuX3Jlc2V0SW5zZXJ0aW9uTW9kZSA9IGZ1bmN0aW9uICgpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AsIGxhc3QgPSBmYWxzZTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTsKKworICAgICAgICBpZiAoaSA9PT0gMCkgeworICAgICAgICAgICAgbGFzdCA9IHRydWU7CisKKyAgICAgICAgICAgIGlmICh0aGlzLmZyYWdtZW50Q29udGV4dCkKKyAgICAgICAgICAgICAgICBlbGVtZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7CisgICAgICAgIH0KKworICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCksCisgICAgICAgICAgICBuZXdJbnNlcnRpb25Nb2RlID0gSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQW3RuXTsKKworICAgICAgICBpZiAobmV3SW5zZXJ0aW9uTW9kZSkgeworICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gbmV3SW5zZXJ0aW9uTW9kZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSBpZiAoIWxhc3QgJiYgKHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIKSkgeworICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fQ0VMTF9NT0RFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmICghbGFzdCAmJiB0biA9PT0gJC5IRUFEKSB7CisgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJTl9IRUFEX01PREU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCkgeworICAgICAgICAgICAgdGhpcy5fcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KGkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkgeworICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkhUTUwpIHsKKyAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMuaGVhZEVsZW1lbnQgPyBBRlRFUl9IRUFEX01PREUgOiBCRUZPUkVfSEVBRF9NT0RFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmIChsYXN0KSB7CisgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK307CisKK1BhcnNlci5wcm90b3R5cGUuX3Jlc2V0SW5zZXJ0aW9uTW9kZUZvclNlbGVjdCA9IGZ1bmN0aW9uIChzZWxlY3RJZHgpIHsKKyAgICBpZiAoc2VsZWN0SWR4ID4gMCkgeworICAgICAgICBmb3IgKHZhciBpID0gc2VsZWN0SWR4IC0gMTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgdmFyIGFuY2VzdG9yID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaV0sCisgICAgICAgICAgICAgICAgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoYW5jZXN0b3IpOworCisgICAgICAgICAgICBpZiAodG4gPT09ICQuVEVNUExBVEUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7CisgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fU0VMRUNUX0lOX1RBQkxFX01PREU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fU0VMRUNUX01PREU7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wdXNoVG1wbEluc2VydGlvbk1vZGUgPSBmdW5jdGlvbiAobW9kZSkgeworICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjay5wdXNoKG1vZGUpOworICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1RvcCsrOworICAgIHRoaXMuY3VycmVudFRtcGxJbnNlcnRpb25Nb2RlID0gbW9kZTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3BvcFRtcGxJbnNlcnRpb25Nb2RlID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjay5wb3AoKTsKKyAgICB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3AtLTsKKyAgICB0aGlzLmN1cnJlbnRUbXBsSW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1t0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3BdOworfTsKKworLy9Gb3N0ZXIgcGFyZW50aW5nCitQYXJzZXIucHJvdG90eXBlLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KTsKKworICAgIHJldHVybiB0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24gPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCAmJiB0aGlzLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGxvY2F0aW9uID0geworICAgICAgICBwYXJlbnQ6IG51bGwsCisgICAgICAgIGJlZm9yZUVsZW1lbnQ6IG51bGwKKyAgICB9OworCisgICAgZm9yICh2YXIgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgb3BlbkVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwKKyAgICAgICAgICAgIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG9wZW5FbGVtZW50KSwKKyAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpOworCisgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTCkgeworICAgICAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKG9wZW5FbGVtZW50KVswXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHsKKyAgICAgICAgICAgIGxvY2F0aW9uLnBhcmVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShvcGVuRWxlbWVudCk7CisKKyAgICAgICAgICAgIGlmIChsb2NhdGlvbi5wYXJlbnQpCisgICAgICAgICAgICAgICAgbG9jYXRpb24uYmVmb3JlRWxlbWVudCA9IG9wZW5FbGVtZW50OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvY2F0aW9uLnBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2kgLSAxXTsKKworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWxvY2F0aW9uLnBhcmVudCkKKyAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbMF07CisKKyAgICByZXR1cm4gbG9jYXRpb247Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9mb3N0ZXJQYXJlbnRFbGVtZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKTsKKworICAgIGlmIChsb2NhdGlvbi5iZWZvcmVFbGVtZW50KQorICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShsb2NhdGlvbi5wYXJlbnQsIGVsZW1lbnQsIGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpOworICAgIGVsc2UKKyAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChsb2NhdGlvbi5wYXJlbnQsIGVsZW1lbnQpOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fZm9zdGVyUGFyZW50VGV4dCA9IGZ1bmN0aW9uIChjaGFycykgeworICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpOworCisgICAgaWYgKGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpCisgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dEJlZm9yZShsb2NhdGlvbi5wYXJlbnQsIGNoYXJzLCBsb2NhdGlvbi5iZWZvcmVFbGVtZW50KTsKKyAgICBlbHNlCisgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChsb2NhdGlvbi5wYXJlbnQsIGNoYXJzKTsKK307CisKKy8vU3BlY2lhbCBlbGVtZW50cworUGFyc2VyLnByb3RvdHlwZS5faXNTcGVjaWFsRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLAorICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpOworCisgICAgcmV0dXJuIEhUTUwuU1BFQ0lBTF9FTEVNRU5UU1tuc11bdG5dOworfTsKKworLy9BZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtCisvLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjYWRvcHRpb25BZ2VuY3kpCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvL1N0ZXBzIDUtOCBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pIHsKKyAgICB2YXIgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0b2tlbi50YWdOYW1lKTsKKworICAgIGlmIChmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7CisgICAgICAgIGlmICghcC5vcGVuRWxlbWVudHMuY29udGFpbnMoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KSkgeworICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7CisgICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRva2VuLnRhZ05hbWUpKQorICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIHJldHVybiBmb3JtYXR0aW5nRWxlbWVudEVudHJ5OworfQorCisvL1N0ZXBzIDkgYW5kIDEwIG9mIHRoZSBhbGdvcml0aG0KK2Z1bmN0aW9uIGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7CisgICAgdmFyIGZ1cnRoZXN0QmxvY2sgPSBudWxsOworCisgICAgZm9yICh2YXIgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldOworCisgICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAocC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgICAgIGZ1cnRoZXN0QmxvY2sgPSBlbGVtZW50OworICAgIH0KKworICAgIGlmICghZnVydGhlc3RCbG9jaykgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbEVsZW1lbnRQb3BwZWQoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTsKKyAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIGZ1cnRoZXN0QmxvY2s7Cit9CisKKy8vU3RlcCAxMyBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudCkgeworICAgIHZhciBlbGVtZW50ID0gbnVsbCwKKyAgICAgICAgbGFzdEVsZW1lbnQgPSBmdXJ0aGVzdEJsb2NrLAorICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZ1cnRoZXN0QmxvY2spOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBBQV9JTk5FUl9MT09QX0lURVI7IGkrKykgeworICAgICAgICBlbGVtZW50ID0gbmV4dEVsZW1lbnQ7CisKKyAgICAgICAgLy9OT1RFOiBzdG9yZSBuZXh0IGVsZW1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uIChpdCBtYXkgYmUgZGVsZXRlZCBmcm9tIHRoZSBzdGFjayBieSBzdGVwIDkuNSkKKyAgICAgICAgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihlbGVtZW50KTsKKworICAgICAgICB2YXIgZWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5KGVsZW1lbnQpOworCisgICAgICAgIGlmICghZWxlbWVudEVudHJ5KSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGVsZW1lbnQgPSBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpOworCisgICAgICAgIGlmIChsYXN0RWxlbWVudCA9PT0gZnVydGhlc3RCbG9jaykKKyAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZWxlbWVudEVudHJ5OworCisgICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7CisgICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCwgbGFzdEVsZW1lbnQpOworICAgICAgICBsYXN0RWxlbWVudCA9IGVsZW1lbnQ7CisgICAgfQorCisgICAgcmV0dXJuIGxhc3RFbGVtZW50OworfQorCisvL1N0ZXAgMTMuNyBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpIHsKKyAgICB2YXIgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50RW50cnkuZWxlbWVudCksCisgICAgICAgIG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoZWxlbWVudEVudHJ5LnRva2VuLnRhZ05hbWUsIG5zLCBlbGVtZW50RW50cnkudG9rZW4uYXR0cnMpOworCisgICAgcC5vcGVuRWxlbWVudHMucmVwbGFjZShlbGVtZW50RW50cnkuZWxlbWVudCwgbmV3RWxlbWVudCk7CisgICAgZWxlbWVudEVudHJ5LmVsZW1lbnQgPSBuZXdFbGVtZW50OworCisgICAgcmV0dXJuIG5ld0VsZW1lbnQ7Cit9CisKKy8vU3RlcCAxNCBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpIHsKKyAgICBpZiAocC5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKGNvbW1vbkFuY2VzdG9yKSkKKyAgICAgICAgcC5fZm9zdGVyUGFyZW50RWxlbWVudChsYXN0RWxlbWVudCk7CisKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIHRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGNvbW1vbkFuY2VzdG9yKSwKKyAgICAgICAgICAgIG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY29tbW9uQW5jZXN0b3IpOworCisgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTCkKKyAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKGNvbW1vbkFuY2VzdG9yKVswXTsKKworICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7CisgICAgfQorfQorCisvL1N0ZXBzIDE1LTE5IG9mIHRoZSBhbGdvcml0aG0KK2Z1bmN0aW9uIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHsKKyAgICB2YXIgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpLAorICAgICAgICB0b2tlbiA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnkudG9rZW4sCisgICAgICAgIG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbnMsIHRva2VuLmF0dHJzKTsKKworICAgIHAuX2Fkb3B0Tm9kZXMoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7CisgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTsKKworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrKG5ld0VsZW1lbnQsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkudG9rZW4pOworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpOworCisgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7CisgICAgcC5vcGVuRWxlbWVudHMuaW5zZXJ0QWZ0ZXIoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7Cit9CisKKy8vQWxnb3JpdGhtIGVudHJ5IHBvaW50CitmdW5jdGlvbiBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IEFBX09VVEVSX0xPT1BfSVRFUjsgaSsrKSB7CisgICAgICAgIHZhciBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTsKKworICAgICAgICBpZiAoIWZvcm1hdHRpbmdFbGVtZW50RW50cnkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICB2YXIgZnVydGhlc3RCbG9jayA9IGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTsKKworICAgICAgICBpZiAoIWZ1cnRoZXN0QmxvY2spCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5ib29rbWFyayA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7CisKKyAgICAgICAgdmFyIGxhc3RFbGVtZW50ID0gYWFJbm5lckxvb3AocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KSwKKyAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTsKKworICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpOworICAgICAgICBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpOworICAgICAgICBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTsKKyAgICB9Cit9CisKKworLy9HZW5lcmljIHRva2VuIGhhbmRsZXJzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gaWdub3JlVG9rZW4ocCwgdG9rZW4pIHsKKyAgICAvL05PVEU6IGRvIG5vdGhpbmcgPSkKK30KKworZnVuY3Rpb24gYXBwZW5kQ29tbWVudChwLCB0b2tlbikgeworICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwgcC5vcGVuRWxlbWVudHMuY3VycmVudCkKK30KKworZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHAsIHRva2VuKSB7CisgICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdKTsKK30KKworZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQocCwgdG9rZW4pIHsKKyAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5kb2N1bWVudCk7Cit9CisKK2Z1bmN0aW9uIGluc2VydENoYXJhY3RlcnMocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTsKK30KKworZnVuY3Rpb24gc3RvcFBhcnNpbmcocCwgdG9rZW4pIHsKKyAgICBwLnN0b3BwZWQgPSB0cnVlOworfQorCisvLzEyLjIuNS40LjEgVGhlICJpbml0aWFsIiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIGRvY3R5cGVJbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7CisgICAgcC5fc2V0RG9jdW1lbnRUeXBlKHRva2VuKTsKKworICAgIGlmICh0b2tlbi5mb3JjZVF1aXJrcyB8fCBEb2N0eXBlLmlzUXVpcmtzKHRva2VuLm5hbWUsIHRva2VuLnB1YmxpY0lkLCB0b2tlbi5zeXN0ZW1JZCkpCisgICAgICAgIHAudHJlZUFkYXB0ZXIuc2V0UXVpcmtzTW9kZShwLmRvY3VtZW50KTsKKworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEJFRk9SRV9IVE1MX01PREU7Cit9CisKK2Z1bmN0aW9uIHRva2VuSW5Jbml0aWFsTW9kZShwLCB0b2tlbikgeworICAgIHAudHJlZUFkYXB0ZXIuc2V0UXVpcmtzTW9kZShwLmRvY3VtZW50KTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSFRNTF9NT0RFOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC4yIFRoZSAiYmVmb3JlIGh0bWwiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7CisgICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTCkgeworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQkVGT1JFX0hFQURfTU9ERTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkJSKQorICAgICAgICB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSEVBRF9NT0RFOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC4zIFRoZSAiYmVmb3JlIGhlYWQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIZWFkKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5IRUFEKSB7CisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgICAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fSEVBRF9NT0RFOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnQmVmb3JlSGVhZChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuQlIpCisgICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbikgeworICAgIHAuX3Byb2Nlc3NGYWtlU3RhcnRUYWcoJC5IRUFEKTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisKKy8vMTIuMi41LjQuNCBUaGUgImluIGhlYWQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkJBU0UgfHwgdG4gPT09ICQuQkFTRUZPTlQgfHwgdG4gPT09ICQuQkdTT1VORCB8fAorICAgICAgICAgICAgIHRuID09PSAkLkNPTU1BTkQgfHwgdG4gPT09ICQuTElOSyB8fCB0biA9PT0gJC5NRVRBKSB7CisgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRJVExFKQorICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXIuTU9ERS5SQ0RBVEEpOworCisgICAgLy9OT1RFOiBoZXJlIHdlIGFzc3VtZSB0aGF0IHdlIGFsd2F5cyBhY3QgYXMgYW4gaW50ZXJhY3RpdmUgdXNlciBhZ2VudCB3aXRoIGVuYWJsZWQgc2NyaXB0aW5nLCBzbyB3ZSBwYXJzZQorICAgIC8vPG5vc2NyaXB0PiBhcyBhIHJhd3RleHQuCisgICAgZWxzZSBpZiAodG4gPT09ICQuTk9TQ1JJUFQgfHwgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuU1RZTEUpCisgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlJBV1RFWFQpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKQorICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXIuTU9ERS5TQ1JJUFRfREFUQSk7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkgeworICAgICAgICBwLl9pbnNlcnRUZW1wbGF0ZSh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpOworICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEVNUExBVEVfTU9ERTsKKyAgICAgICAgcC5fcHVzaFRtcGxJbnNlcnRpb25Nb2RlKElOX1RFTVBMQVRFX01PREUpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkhFQUQpCisgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IRUFEKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBBRlRFUl9IRUFEX01PREU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5CUiB8fCB0biA9PT0gJC5IVE1MKQorICAgICAgICB0b2tlbkluSGVhZChwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUZW1wbGF0ZVBvcHBlZCgpOworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpOworICAgICAgICBwLl9wb3BUbXBsSW5zZXJ0aW9uTW9kZSgpOworICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRva2VuSW5IZWFkKHAsIHRva2VuKSB7CisgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5IRUFEKTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisKKy8vMTIuMi41LjQuNiBUaGUgImFmdGVyIGhlYWQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkJPRFkpIHsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuRlJBTUVTRVQpIHsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0ZSQU1FU0VUX01PREU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5CQVNFRk9OVCB8fCB0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSB8fAorICAgICAgICAgICAgIHRuID09PSAkLk5PRlJBTUVTIHx8IHRuID09PSAkLlNDUklQVCB8fCB0biA9PT0gJC5TVFlMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5USVRMRSkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5wdXNoKHAuaGVhZEVsZW1lbnQpOworICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShwLmhlYWRFbGVtZW50KTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biAhPT0gJC5IRUFEKQorICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0FmdGVySGVhZChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKQorICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pIHsKKyAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuQk9EWSk7CisgICAgcC5mcmFtZXNldE9rID0gdHJ1ZTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisKKy8vMTIuMi41LjQuNyBUaGUgImluIGJvZHkiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keShwLCB0b2tlbikgeworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNoYXJhY3RlckluQm9keShwLCB0b2tlbikgeworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7CisgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApCisgICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbi5hdHRycyk7Cit9CisKK2Z1bmN0aW9uIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7CisKKyAgICBpZiAoYm9keUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7CisgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgICAgICBwLnRyZWVBZGFwdGVyLmFkb3B0QXR0cmlidXRlcyhib2R5RWxlbWVudCwgdG9rZW4uYXR0cnMpOworICAgIH0KK30KKworZnVuY3Rpb24gZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7CisKKyAgICBpZiAocC5mcmFtZXNldE9rICYmIGJvZHlFbGVtZW50KSB7CisgICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShib2R5RWxlbWVudCk7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcEFsbFVwVG9IdG1sRWxlbWVudCgpOworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fRlJBTUVTRVRfTU9ERTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpCisgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkKKyAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgdmFyIHRuID0gcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuSDEgfHwgdG4gPT09ICQuSDIgfHwgdG4gPT09ICQuSDMgfHwgdG4gPT09ICQuSDQgfHwgdG4gPT09ICQuSDUgfHwgdG4gPT09ICQuSDYpCisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworCisgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7Cit9CisKK2Z1bmN0aW9uIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkKKyAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgLy9OT1RFOiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIgdG9rZW4sIHRoZW4gaWdub3JlIHRoYXQgdG9rZW4gYW5kIG1vdmUKKyAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiBwcmUgYmxvY2tzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pCisgICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworfQorCitmdW5jdGlvbiBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgaW5UZW1wbGF0ZSA9IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDA7CisKKyAgICBpZiAoIXAuZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKQorICAgICAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworCisgICAgICAgIGlmICghaW5UZW1wbGF0ZSkKKyAgICAgICAgICAgIHAuZm9ybUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50OworICAgIH0KK30KKworZnVuY3Rpb24gbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworCisgICAgZm9yICh2YXIgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLAorICAgICAgICAgICAgdG4gPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7CisKKyAgICAgICAgaWYgKCh0b2tlbi50YWdOYW1lID09PSAkLkxJICYmIHRuID09PSAkLkxJKSB8fAorICAgICAgICAgICAgKCh0b2tlbi50YWdOYW1lID09PSAkLkREIHx8IHRva2VuLnRhZ05hbWUgPT09ICQuRFQpICYmICh0biA9PT0gJC5ERCB8fCB0biA9PSAkLkRUKSkpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKHRuKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRuICE9PSAkLkFERFJFU1MgJiYgdG4gIT09ICQuRElWICYmIHRuICE9PSAkLlAgJiYgcC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpCisgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpCisgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUExBSU5URVhUOworfQorCitmdW5jdGlvbiBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQlVUVE9OKSkgeworICAgICAgICBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkJVVFRPTik7CisgICAgICAgIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIH0KK30KKworZnVuY3Rpb24gYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgdmFyIGFjdGl2ZUVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSgkLkEpOworCisgICAgaWYgKGFjdGl2ZUVsZW1lbnRFbnRyeSkgeworICAgICAgICBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkEpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoYWN0aXZlRWxlbWVudEVudHJ5LmVsZW1lbnQpOworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShhY3RpdmVFbGVtZW50RW50cnkpOworICAgIH0KKworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTsKK30KKworZnVuY3Rpb24gbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuTk9CUikpIHsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5OT0JSKTsKKyAgICAgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICB9CisKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKK30KKworZnVuY3Rpb24gdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmICghcC50cmVlQWRhcHRlci5pc1F1aXJrc01vZGUocC5kb2N1bWVudCkgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKQorICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7CisKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFOworfQorCitmdW5jdGlvbiBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworfQorCitmdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKworICAgIHZhciBpbnB1dFR5cGUgPSBUb2tlbml6ZXIuZ2V0VG9rZW5BdHRyKHRva2VuLCBBVFRSUy5UWVBFKTsKKworICAgIGlmICghaW5wdXRUeXBlIHx8IGlucHV0VHlwZS50b0xvd2VyQ2FzZSgpICE9PSBISURERU5fSU5QVVRfVFlQRSkKKyAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7CisKK30KKworZnVuY3Rpb24gcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkKKyAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGltYWdlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB0b2tlbi50YWdOYW1lID0gJC5JTUc7CisgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gaXNpbmRleFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKCFwLmZvcm1FbGVtZW50IHx8IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDApIHsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZ1dpdGhBdHRycygkLkZPUk0sIGdldFNlYXJjaGFibGVJbmRleEZvcm1BdHRycyh0b2tlbikpOworICAgICAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuSFIpOworICAgICAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuTEFCRUwpOworICAgICAgICBwLnRyZWVBZGFwdGVyLmluc2VydFRleHQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgZ2V0U2VhcmNoYWJsZUluZGV4TGFiZWxUZXh0KHRva2VuKSk7CisgICAgICAgIHAuX3Byb2Nlc3NGYWtlU3RhcnRUYWdXaXRoQXR0cnMoJC5JTlBVVCwgZ2V0U2VhcmNoYWJsZUluZGV4SW5wdXRBdHRycyh0b2tlbikpOworICAgICAgICBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkxBQkVMKTsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLkhSKTsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5GT1JNKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRleHRhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZQorICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHRleHRhcmVhIGVsZW1lbnRzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pCisgICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlOworICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUkNEQVRBOworICAgIHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gcC5pbnNlcnRpb25Nb2RlOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IFRFWFRfTU9ERTsKK30KKworZnVuY3Rpb24geG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKQorICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7CisKKyAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlJBV1RFWFQpOworfQorCitmdW5jdGlvbiBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlJBV1RFWFQpOworfQorCisvL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBwbHVnaW5zLCBzbyB3ZSBwYXJzZQorLy88bm9lbWJlZD4gYXMgYSByYXd0ZXh0LgorZnVuY3Rpb24gbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkFXVEVYVCk7Cit9CisKK2Z1bmN0aW9uIHNlbGVjdFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKKworICAgIGlmIChwLmluc2VydGlvbk1vZGUgPT09IElOX1RBQkxFX01PREUgfHwgcC5pbnNlcnRpb25Nb2RlID09PSBJTl9DQVBUSU9OX01PREUgfHwKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJTl9UQUJMRV9CT0RZX01PREUgfHwgcC5pbnNlcnRpb25Nb2RlID09PSBJTl9ST1dfTU9ERSB8fAorICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IElOX0NFTExfTU9ERSkgeworICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1NFTEVDVF9NT0RFOworfQorCitmdW5jdGlvbiBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk9QVElPTikKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5PUFRJT04pOworCisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKK30KKworZnVuY3Rpb24gcnBTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpCisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBtZW51aXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7Cit9CisKK2Z1bmN0aW9uIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisKKyAgICBGb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTsKKyAgICBGb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTsKKworICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykKKyAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTsKKyAgICBlbHNlCisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7Cit9CisKK2Z1bmN0aW9uIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKworICAgIEZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pOworICAgIEZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pOworCisgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKQorICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5TVkcpOworICAgIGVsc2UKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuU1ZHKTsKK30KKworZnVuY3Rpb24gZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKK30KKworLy9PUFRJTUlaQVRJT046IEludGVnZXIgY29tcGFyaXNvbnMgYXJlIGxvdy1jb3N0LCBzbyB3ZSBjYW4gdXNlIHZlcnkgZmFzdCB0YWcgbmFtZSBsZW5ndGggZmlsdGVycyBoZXJlLgorLy9JdCdzIGZhc3RlciB0aGFuIHVzaW5nIGRpY3Rpb25hcnkuCitmdW5jdGlvbiBzdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBzd2l0Y2ggKHRuLmxlbmd0aCkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuSSB8fCB0biA9PT0gJC5TIHx8IHRuID09PSAkLkIgfHwgdG4gPT09ICQuVSkKKyAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkEpCisgICAgICAgICAgICAgICAgYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5ETCB8fCB0biA9PT0gJC5PTCB8fCB0biA9PT0gJC5VTCkKKyAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INikKKyAgICAgICAgICAgICAgICBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTEkgfHwgdG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpCisgICAgICAgICAgICAgICAgbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkVNIHx8IHRuID09PSAkLlRUKQorICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJSKQorICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkhSKQorICAgICAgICAgICAgICAgIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5SUCB8fCB0biA9PT0gJC5SVCkKKyAgICAgICAgICAgICAgICBycFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gIT09ICQuVEggJiYgdG4gIT09ICQuVEQgJiYgdG4gIT09ICQuVFIpCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkRJViB8fCB0biA9PT0gJC5ESVIgfHwgdG4gPT09ICQuTkFWKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlBSRSkKKyAgICAgICAgICAgICAgICBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJJRykKKyAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5JTUcgfHwgdG4gPT09ICQuV0JSKQorICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlhNUCkKKyAgICAgICAgICAgICAgICB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNWRykKKyAgICAgICAgICAgICAgICBzdmdTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkNPTCkKKyAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuSFRNTCkKKyAgICAgICAgICAgICAgICBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CQVNFIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSkKKyAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJPRFkpCisgICAgICAgICAgICAgICAgYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUFJTiB8fCB0biA9PT0gJC5NRU5VKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkZPUk0pCisgICAgICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQ09ERSB8fCB0biA9PT0gJC5GT05UKQorICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk5PQlIpCisgICAgICAgICAgICAgICAgbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVJFQSkKKyAgICAgICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NQVRIKQorICAgICAgICAgICAgICAgIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkhFQUQpCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlNUWUxFIHx8IHRuID09PSAkLlRJVExFKQorICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVNJREUpCisgICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU01BTEwpCisgICAgICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpCisgICAgICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkVNQkVEKQorICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklOUFVUKQorICAgICAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QQVJBTSB8fCB0biA9PT0gJC5UUkFDSykKKyAgICAgICAgICAgICAgICBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSU1BR0UpCisgICAgICAgICAgICAgICAgaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkZSQU1FICYmIHRuICE9PSAkLlRCT0RZICYmIHRuICE9PSAkLlRGT09UICYmIHRuICE9PSAkLlRIRUFEKQorICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5TQ1JJUFQpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5DRU5URVIgfHwgdG4gPT09ICQuRklHVVJFIHx8IHRuID09PSAkLkZPT1RFUiB8fCB0biA9PT0gJC5IRUFERVIgfHwgdG4gPT09ICQuSEdST1VQKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJVVFRPTikKKyAgICAgICAgICAgICAgICBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNUUklLRSB8fCB0biA9PT0gJC5TVFJPTkcpCisgICAgICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVBQTEVUIHx8IHRuID09PSAkLk9CSkVDVCkKKyAgICAgICAgICAgICAgICBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLktFWUdFTikKKyAgICAgICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TT1VSQ0UpCisgICAgICAgICAgICAgICAgcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklGUkFNRSkKKyAgICAgICAgICAgICAgICBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCkKKyAgICAgICAgICAgICAgICBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVElPTikKKyAgICAgICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkNPTU1BTkQpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5ERVRBSUxTIHx8IHRuID09PSAkLkFERFJFU1MgfHwgdG4gPT09ICQuQVJUSUNMRSB8fCB0biA9PT0gJC5TRUNUSU9OIHx8IHRuID09PSAkLlNVTU1BUlkpCisgICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTElTVElORykKKyAgICAgICAgICAgICAgICBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1BUlFVRUUpCisgICAgICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5JU0lOREVYKQorICAgICAgICAgICAgICAgIGlzaW5kZXhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRU1CRUQpCisgICAgICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gIT09ICQuQ0FQVElPTikKKyAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuQkFTRUZPTlQgfHwgdG4gPT09ICQuTUVOVUlURU0pCisgICAgICAgICAgICAgICAgbWVudWl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FU0VUKQorICAgICAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5GSUVMRFNFVCkKKyAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URVhUQVJFQSkKKyAgICAgICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5OT1NDUklQVCkKKyAgICAgICAgICAgICAgICBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRHUk9VUCkKKyAgICAgICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gIT09ICQuQ09MR1JPVVApCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlBMQUlOVEVYVCkKKyAgICAgICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkJMT0NLUVVPVEUgfHwgdG4gPT09ICQuRklHQ0FQVElPTikKKyAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisgICAgfQorfQorCitmdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQk9EWV9NT0RFOworCisgICAgZWxzZQorICAgICAgICB0b2tlbi5pZ25vcmVkID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gaHRtbEVuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkJPRFkpOworCisgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKK30KKworZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pOworICAgIH0KK30KKworZnVuY3Rpb24gZm9ybUVuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCwKKyAgICAgICAgZm9ybUVsZW1lbnQgPSBwLmZvcm1FbGVtZW50OworCisgICAgaWYgKCFpblRlbXBsYXRlKQorICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDsKKworICAgIGlmICgoZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkZPUk0pKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKworICAgICAgICBpZiAoaW5UZW1wbGF0ZSkKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkZPUk0pOworCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7CisgICAgfQorfQorCitmdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5QKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLlApOworICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworICAgIH0KK30KKworZnVuY3Rpb24gbGlFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5MaXN0SXRlbVNjb3BlKCQuTEkpKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuTEkpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5MSSk7CisgICAgfQorfQorCitmdW5jdGlvbiBkZEVuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pOworICAgIH0KK30KKworZnVuY3Rpb24gbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBhcHBsZXRFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTsKKyAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLkJSKTsKK30KKworZnVuY3Rpb24gZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBmb3IgKHZhciBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTsKKworICAgICAgICBpZiAocC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSB0bikgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pOworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAocC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLy9PUFRJTUlaQVRJT046IEludGVnZXIgY29tcGFyaXNvbnMgYXJlIGxvdy1jb3N0LCBzbyB3ZSBjYW4gdXNlIHZlcnkgZmFzdCB0YWcgbmFtZSBsZW5ndGggZmlsdGVycyBoZXJlLgorLy9JdCdzIGZhc3RlciB0aGFuIHVzaW5nIGRpY3Rpb25hcnkuCitmdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgc3dpdGNoICh0bi5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkEgfHwgdG4gPT09ICQuQiB8fCB0biA9PT0gJC5JIHx8IHRuID09PSAkLlMgfHwgdG4gPT0gJC5VKQorICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlApCisgICAgICAgICAgICAgICAgcEVuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHRuID09ICQuREwgfHwgdG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkxJKQorICAgICAgICAgICAgICAgIGxpRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpCisgICAgICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INikKKyAgICAgICAgICAgICAgICBudW1iZXJlZEhlYWRlckVuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJSKQorICAgICAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuRU0gfHwgdG4gPT09ICQuVFQpCisgICAgICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuQklHKQorICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkRJUiB8fCB0biA9PT0gJC5ESVYgfHwgdG4gPT09ICQuTkFWKQorICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5CT0RZKQorICAgICAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5GT1JNKQorICAgICAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5DT0RFIHx8IHRuID09PSAkLkZPTlQgfHwgdG4gPT09ICQuTk9CUikKKyAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NQUlOIHx8IHRuID09PSAkLk1FTlUpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkFTSURFKQorICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TTUFMTCkKKyAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5DRU5URVIgfHwgdG4gPT09ICQuRklHVVJFIHx8IHRuID09PSAkLkZPT1RFUiB8fCB0biA9PT0gJC5IRUFERVIgfHwgdG4gPT09ICQuSEdST1VQKQorICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5BUFBMRVQgfHwgdG4gPT09ICQuT0JKRUNUKQorICAgICAgICAgICAgICAgIGFwcGxldEVuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09ICQuU1RSSUtFIHx8IHRuID09PSAkLlNUUk9ORykKKyAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5BRERSRVNTIHx8IHRuID09PSAkLkFSVElDTEUgfHwgdG4gPT09ICQuREVUQUlMUyB8fCB0biA9PT0gJC5TRUNUSU9OIHx8IHRuID09PSAkLlNVTU1BUlkpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1BUlFVRUUpCisgICAgICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuRklFTERTRVQpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRFTVBMQVRFKQorICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZChwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5CTE9DS1FVT1RFIHx8IHRuID09PSAkLkZJR0NBUFRJT04pCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdCA6CisgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGVvZkluQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3AgPiAtMSkKKyAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7CisKKyAgICBlbHNlCisgICAgICAgIHAuc3RvcHBlZCA9IHRydWU7Cit9CisKKy8vMTIuMi41LjQuOCBUaGUgInRleHQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7CisgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLnNjcmlwdEhhbmRsZXIgJiYgdG9rZW4udGFnTmFtZSA9PT0gJC5TQ1JJUFQpCisgICAgICAgIHAuc2NyaXB0SGFuZGxlcihwLmRvY3VtZW50LCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTsKKworICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlOworfQorCisKK2Z1bmN0aW9uIGVvZkluVGV4dChwLCB0b2tlbikgeworICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC45IFRoZSAiaW4gdGFibGUiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZShwLCB0b2tlbikgeworICAgIHZhciBjdXJUbiA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lOworCisgICAgaWYgKGN1clRuID09PSAkLlRBQkxFIHx8IGN1clRuID09PSAkLlRCT0RZIHx8IGN1clRuID09PSAkLlRGT09UIHx8IGN1clRuID09PSAkLlRIRUFEIHx8IGN1clRuID09PSAkLlRSKSB7CisgICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2VucyA9IFtdOworICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTsKKyAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX1RFWFRfTU9ERTsKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpOworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpOworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0NBUFRJT05fTU9ERTsKK30KKworZnVuY3Rpb24gY29sZ3JvdXBTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpOworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0NPTFVNTl9HUk9VUF9NT0RFOworfQorCitmdW5jdGlvbiBjb2xTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuQ09MR1JPVVApOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRib2R5U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7CisgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7Cit9CisKK2Z1bmN0aW9uIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7CisgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLlRCT0RZKTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCitmdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikgeworICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLlRBQkxFKTsKKworICAgIC8vTk9URTogVGhlIGZha2UgZW5kIHRhZyB0b2tlbiBoZXJlIGNhbiBvbmx5IGJlIGlnbm9yZWQgaW4gdGhlIGZyYWdtZW50IGNhc2UuCisgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKK30KKworZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgaW5wdXRUeXBlID0gVG9rZW5pemVyLmdldFRva2VuQXR0cih0b2tlbiwgQVRUUlMuVFlQRSk7CisKKyAgICBpZiAoaW5wdXRUeXBlICYmIGlucHV0VHlwZS50b0xvd2VyQ2FzZSgpID09PSBISURERU5fSU5QVVRfVFlQRSkKKyAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisKKyAgICBlbHNlCisgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7CisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgc3dpdGNoICh0bi5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIIHx8IHRuID09PSAkLlRSKQorICAgICAgICAgICAgICAgIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5DT0wpCisgICAgICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5GT1JNKQorICAgICAgICAgICAgICAgIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKQorICAgICAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU1RZTEUpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkKKyAgICAgICAgICAgICAgICB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklOUFVUKQorICAgICAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5TQ1JJUFQpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkNBUFRJT04pCisgICAgICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuQ09MR1JPVVApCisgICAgICAgICAgICAgICAgY29sZ3JvdXBTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTsKKyAgICB9CisKK30KKworZnVuY3Rpb24gZW5kVGFnSW5UYWJsZShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuVEFCTEUpIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRBQkxFKSkgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpOworICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7CisgICAgICAgIH0KKworICAgICAgICBlbHNlCisgICAgICAgICAgICB0b2tlbi5pZ25vcmVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCAmJgorICAgICAgICAgICAgIHRuICE9PSAkLlRCT0RZICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRGT09UICYmIHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlRIRUFEICYmIHRuICE9PSAkLlRSKSB7CisgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisgICAgfQorfQorCitmdW5jdGlvbiB0b2tlbkluVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDsKKworICAgIHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IHRydWU7CisgICAgcC5fcHJvY2Vzc1Rva2VuSW5Cb2R5TW9kZSh0b2tlbik7CisgICAgcC5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZTsKK30KKworCisvLzEyLjIuNS40LjEwIFRoZSAiaW4gdGFibGUgdGV4dCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHsKKyAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7CisgICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pOworICAgIHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHsKKyAgICBpZiAocC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyhwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pOworICAgIH0KKworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC4xMSBUaGUgImluIGNhcHRpb24iIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuQ09MIHx8IHRuID09PSAkLkNPTEdST1VQIHx8IHRuID09PSAkLlRCT0RZIHx8CisgICAgICAgIHRuID09PSAkLlREIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7CisgICAgICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkNBUFRJT04pOworCisgICAgICAgIC8vTk9URTogVGhlIGZha2UgZW5kIHRhZyB0b2tlbiBoZXJlIGNhbiBvbmx5IGJlIGlnbm9yZWQgaW4gdGhlIGZyYWdtZW50IGNhc2UuCisgICAgICAgIGlmICghZmFrZVRva2VuLmlnbm9yZWQpCisgICAgICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkNBUFRJT04pIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTsKKyAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFOworICAgICAgICB9CisKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdG9rZW4uaWdub3JlZCA9IHRydWU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHsKKyAgICAgICAgdmFyIGZha2VUb2tlbiA9IHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuQ0FQVElPTik7CisKKyAgICAgICAgLy9OT1RFOiBUaGUgZmFrZSBlbmQgdGFnIHRva2VuIGhlcmUgY2FuIG9ubHkgYmUgaWdub3JlZCBpbiB0aGUgZnJhZ21lbnQgY2FzZS4KKyAgICAgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gIT09ICQuQk9EWSAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCAmJiB0biAhPT0gJC5UQk9EWSAmJgorICAgICAgICAgICAgIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRGT09UICYmIHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlRIRUFEICYmIHRuICE9PSAkLlRSKSB7CisgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7CisgICAgfQorfQorCisKKy8vMTIuMi41LjQuMTIgVGhlICJpbiBjb2x1bW4gZ3JvdXAiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5DT0wpCisgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpCisgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQ09MR1JPVVApIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkNPTEdST1VQKQorICAgICAgICAgICAgdG9rZW4uaWdub3JlZCA9IHRydWU7CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTsKKyAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX01PREU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkNPTCkKKyAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7CisgICAgdmFyIGZha2VUb2tlbiA9IHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuQ09MR1JPVVApOworCisgICAgLy9OT1RFOiBUaGUgZmFrZSBlbmQgdGFnIHRva2VuIGhlcmUgY2FuIG9ubHkgYmUgaWdub3JlZCBpbiB0aGUgZnJhZ21lbnQgY2FzZS4KKyAgICBpZiAoIWZha2VUb2tlbi5pZ25vcmVkKQorICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisvLzEyLjIuNS40LjEzIFRoZSAiaW4gdGFibGUgYm9keSIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5UUikgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1JPV19NT0RFOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRIIHx8IHRuID09PSAkLlREKSB7CisgICAgICAgIHAuX3Byb2Nlc3NGYWtlU3RhcnRUYWcoJC5UUik7CisgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHwKKyAgICAgICAgICAgICB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkgeworCisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpOworICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfTU9ERTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpOworICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgfHwKKyAgICAgICAgICAgICB0biAhPT0gJC5IVE1MICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlRSKSB7CisgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pOworICAgIH0KK30KKworLy8xMi4yLjUuNC4xNCBUaGUgImluIHJvdyIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luUm93KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5USCB8fCB0biA9PT0gJC5URCkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpOworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQ0VMTF9NT0RFOworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8IHRuID09PSAkLkNPTCB8fCB0biA9PT0gJC5DT0xHUk9VUCB8fCB0biA9PT0gJC5UQk9EWSB8fAorICAgICAgICAgICAgIHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7CisgICAgICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLlRSKTsKKworICAgICAgICAvL05PVEU6IFRoZSBmYWtlIGVuZCB0YWcgdG9rZW4gaGVyZSBjYW4gb25seSBiZSBpZ25vcmVkIGluIHRoZSBmcmFnbWVudCBjYXNlLgorICAgICAgICBpZiAoIWZha2VUb2tlbi5pZ25vcmVkKQorICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5UUikgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpOworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7CisgICAgICAgIH0KKworICAgICAgICBlbHNlCisgICAgICAgICAgICB0b2tlbi5pZ25vcmVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5UQUJMRSkgeworICAgICAgICB2YXIgZmFrZVRva2VuID0gcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5UUik7CisKKyAgICAgICAgLy9OT1RFOiBUaGUgZmFrZSBlbmQgdGFnIHRva2VuIGhlcmUgY2FuIG9ubHkgYmUgaWdub3JlZCBpbiB0aGUgZnJhZ21lbnQgY2FzZS4KKyAgICAgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEhFQUQpIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuVFIpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgfHwKKyAgICAgICAgICAgICB0biAhPT0gJC5IVE1MICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRIKSB7CisgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pOworICAgIH0KK30KKworCisvLzEyLjIuNS40LjE1IFRoZSAiaW4gY2VsbCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luQ2VsbChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHwgdG4gPT09ICQuVEJPRFkgfHwKKyAgICAgICAgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEggfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIpIHsKKworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRIKSkgeworICAgICAgICAgICAgcC5fY2xvc2VUYWJsZUNlbGwoKTsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5DZWxsKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5URCB8fCB0biA9PT0gJC5USCkgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTsKKyAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9ST1dfTU9ERTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7CisgICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCkKKyAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKK30KKworLy8xMi4yLjUuNC4xNiBUaGUgImluIHNlbGVjdCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRJT04pIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk9QVElPTikKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuT1BUSU9OKTsKKworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRHUk9VUCkgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKQorICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5PUFRJT04pOworCisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRHUk9VUCkKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuT1BUR1JPVVApOworCisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCkKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5TRUxFQ1QpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuSU5QVVQgfHwgdG4gPT09ICQuS0VZR0VOIHx8IHRuID09PSAkLlRFWFRBUkVBKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkgeworICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5TRUxFQ1QpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlNDUklQVCB8fCB0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuT1BUR1JPVVApIHsKKyAgICAgICAgdmFyIHByZXZPcGVuRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW3Aub3BlbkVsZW1lbnRzLnN0YWNrVG9wIC0gMV0sCisgICAgICAgICAgICBwcmV2T3BlbkVsZW1lbnRUbiA9IHByZXZPcGVuRWxlbWVudCAmJiBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocHJldk9wZW5FbGVtZW50KTsKKworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OICYmIHByZXZPcGVuRWxlbWVudFRuID09PSAkLk9QVEdST1VQKQorICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5PUFRJT04pOworCisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRHUk9VUCkKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVElPTikgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKQorICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0VMRUNUICYmIHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7CisgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRFTVBMQVRFKQorICAgICAgICBlbmRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCisvLzEyLjIuNS40LjE3IFRoZSAiaW4gc2VsZWN0IGluIHRhYmxlIiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8IHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8CisgICAgICAgIHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSIHx8IHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIKSB7CisgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuU0VMRUNUKTsKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEZPT1QgfHwKKyAgICAgICAgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIgfHwgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuU0VMRUNUKTsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTsKK30KKworLy8xMi4yLjUuNC4xOCBUaGUgImluIHRlbXBsYXRlIiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIHN0YXJ0VGFnSW5UZW1wbGF0ZShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5CQVNFRk9OVCB8fCB0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSB8fAorICAgICAgICB0biA9PT0gJC5OT0ZSQU1FUyB8fCB0biA9PT0gJC5TQ1JJUFQgfHwgdG4gPT09ICQuU1RZTEUgfHwgdG4gPT09ICQuVEVNUExBVEUgfHwgdG4gPT09ICQuVElUTEUpIHsKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB2YXIgbmV3SW5zZXJ0aW9uTW9kZSA9IFRFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbdG5dIHx8IElOX0JPRFlfTU9ERTsKKworICAgICAgICBwLl9wb3BUbXBsSW5zZXJ0aW9uTW9kZSgpOworICAgICAgICBwLl9wdXNoVG1wbEluc2VydGlvbk1vZGUobmV3SW5zZXJ0aW9uTW9kZSk7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IG5ld0luc2VydGlvbk1vZGU7CisgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorfQorCitmdW5jdGlvbiBlbmRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7CisgICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuVEVNUExBVEUpCisgICAgICAgIGVuZFRhZ0luSGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRlbXBsYXRlUG9wcGVkKCk7CisgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAgICAgIHAuX3BvcFRtcGxJbnNlcnRpb25Nb2RlKCk7CisgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpOworICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgcC5zdG9wcGVkID0gdHJ1ZTsKK30KKworCisvLzEyLjIuNS40LjE5IFRoZSAiYWZ0ZXIgYm9keSIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0FmdGVyQm9keShwLCB0b2tlbikgeworICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MKSB7CisgICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQpCisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBBRlRFUl9BRlRFUl9CT0RZX01PREU7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKSB7CisgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQk9EWV9NT0RFOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKy8vMTIuMi41LjQuMjAgVGhlICJpbiBmcmFtZXNldCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FU0VUKQorICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FKQorICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRlJBTUVTKQorICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHsKKyAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5GUkFNRVNFVCAmJiAhcC5vcGVuRWxlbWVudHMuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50KCkpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisKKyAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSAhPT0gJC5GUkFNRVNFVCkKKyAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEFGVEVSX0ZSQU1FU0VUX01PREU7CisgICAgfQorfQorCisvLzEyLjIuNS40LjIxIFRoZSAiYWZ0ZXIgZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5OT0ZSQU1FUykKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7CisgICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTCkKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERTsKK30KKworLy8xMi4yLjUuNC4yMiBUaGUgImFmdGVyIGFmdGVyIGJvZHkiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyQm9keShwLCB0b2tlbikgeworICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7CisgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKK30KKworLy8xMi4yLjUuNC4yMyBUaGUgImFmdGVyIGFmdGVyIGZyYW1lc2V0IiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5OT0ZSQU1FUykKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCisKKy8vMTIuMi41LjUgVGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnQKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikgeworICAgIHRva2VuLmNoYXJzID0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKK30KKworZnVuY3Rpb24gc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7CisgICAgaWYgKEZvcmVpZ25Db250ZW50LmNhdXNlc0V4aXQodG9rZW4pICYmICFwLmZyYWdtZW50Q29udGV4dCkgeworICAgICAgICB3aGlsZSAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocC5vcGVuRWxlbWVudHMuY3VycmVudCkgIT09IE5TLkhUTUwgJiYKKyAgICAgICAgICAgICAgICghcC5faXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkgJiYKKyAgICAgICAgICAgICAgICghcC5faXNIdG1sSW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkpIHsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgICAgICB9CisKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIGN1cnJlbnQgPSBwLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCksCisgICAgICAgICAgICBjdXJyZW50TnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTsKKworICAgICAgICBpZiAoY3VycmVudE5zID09PSBOUy5NQVRITUwpCisgICAgICAgICAgICBGb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTsKKworICAgICAgICBlbHNlIGlmIChjdXJyZW50TnMgPT09IE5TLlNWRykgeworICAgICAgICAgICAgRm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKTsKKyAgICAgICAgICAgIEZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pOworICAgICAgICB9CisKKyAgICAgICAgRm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7CisKKyAgICAgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKQorICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHsKKyAgICBmb3IgKHZhciBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTsKKworICAgICAgICBpZiAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCkgPT09IE5TLkhUTUwpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkudG9Mb3dlckNhc2UoKSA9PT0gdG9rZW4udGFnTmFtZSkgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9sb2dvLnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L2xvZ28ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MTQwMjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9sb2dvLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9wYWNrYWdlLmpzb24gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9wYWNrYWdlLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FkNjI4ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3BhY2thZ2UuanNvbgpAQCAtMCwwICsxLDQ3IEBACit7CisgICJuYW1lIjogInBhcnNlNSIsCisgICJkZXNjcmlwdGlvbiI6ICJXSEFUV0cgSFRNTDUgc3BlY2lmaWNhdGlvbi1jb21wbGlhbnQsIGZhc3QgYW5kIHJlYWR5IGZvciBwcm9kdWN0aW9uIEhUTUwgcGFyc2luZy9zZXJpYWxpemF0aW9uIHRvb2xzZXQgZm9yIE5vZGUgYW5kIGlvLmpzLiIsCisgICJ2ZXJzaW9uIjogIjEuNS4wIiwKKyAgImF1dGhvciI6ICJJdmFuIE5pa3VsaW4gPGlmYWFhbkBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4pIiwKKyAgImNvbnRyaWJ1dG9ycyI6IFsKKyAgICAiQWxhbiBDbGFya2UgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGFuY2xhcmtlKSIsCisgICAgIlNha3NoYW0gQWdnYXJ3YWwgPHMuYWdnMjAyMUBnbWFpbC5jb20+IiwKKyAgICAiU2ViYXN0aWFuIE1heXIgPHNlYm1hc3RlcjE2QGdtYWlsLmNvbT4gKGh0dHA6Ly9ibG9nLnNtYXlyLm5hbWUpIiwKKyAgICAiU2VhbiBMYW5nIDxzbGFuZzgwMEBnbWFpbC5jb20+IChodHRwOi8vc2xhbmcuY3gpIgorICBdLAorICAiaG9tZXBhZ2UiOiAiaHR0cDovL2luaWt1bGluLmdpdGh1Yi5pby9wYXJzZTUvIiwKKyAgImRldkRlcGVuZGVuY2llcyI6IHsKKyAgICAibW9jaGEiOiAiMS4yMS40IgorICB9LAorICAia2V5d29yZHMiOiBbCisgICAgImh0bWwiLAorICAgICJwYXJzZXIiLAorICAgICJodG1sNSIsCisgICAgIldIQVRXRyIsCisgICAgInNwZWNpZmljYXRpb24iLAorICAgICJmYXN0IiwKKyAgICAiaHRtbCBwYXJzZXIiLAorICAgICJodG1sNSBwYXJzZXIiLAorICAgICJodG1scGFyc2VyIiwKKyAgICAicGFyc2U1IiwKKyAgICAic2VyaWFsaXplciIsCisgICAgImh0bWwgc2VyaWFsaXplciIsCisgICAgImh0bWxzZXJpYWxpemVyIiwKKyAgICAic2F4IiwKKyAgICAic2ltcGxlIGFwaSIKKyAgXSwKKyAgImxpY2Vuc2VzIjogWworICAgIHsKKyAgICAgICJ0eXBlIjogIk1JVCIsCisgICAgICAidXJsIjogImh0dHBzOi8vcmF3LmdpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L21hc3Rlci9MSUNFTlNFIgorICAgIH0KKyAgXSwKKyAgIm1haW4iOiAiLi9pbmRleC5qcyIsCisgICJyZXBvc2l0b3J5IjogeworICAgICJ0eXBlIjogImdpdCIsCisgICAgInVybCI6ICJnaXQ6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS5naXQiCisgIH0sCisgICJzY3JpcHRzIjogeworICAgICJ0ZXN0IjogIm5vZGUgdGVzdC9ydW5fdGVzdHMuanMiCisgIH0KK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3BhcnNlNS5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3BhcnNlNS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjY5MDhmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvcGFyc2U1LmpzCkBAIC0wLDAgKzEsNzk3NyBAQAorKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT0iZnVuY3Rpb24iJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbysiJyIpO3Rocm93IGYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT0iZnVuY3Rpb24iJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSh7MTpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7CisndXNlIHN0cmljdCc7CisKKy8vQ29uc3QKK3ZhciBWQUxJRF9ET0NUWVBFX05BTUUgPSAnaHRtbCcsCisgICAgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnLAorICAgIFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsKKyAgICAgICAgIisvL3NpbG1hcmlsLy9kdGQgaHRtbCBwcm8gdjByMTEgMTk5NzAxMDEvL2VuIiwKKyAgICAgICAgIi0vL2FkdmFzb2Z0IGx0ZC8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy9lbiIsCisgICAgICAgICItLy9hcy8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAyLjAgbGV2ZWwgMS8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDIvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMS8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdCBsZXZlbCAyLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0Ly9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAyLjAvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDIuMWUvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDMuMC8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMy4wLy9lbi8vIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIDMuMiBmaW5hbC8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCAzLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy9lbi8vMi4wIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDEvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDEvL2VuLy8yLjAiLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMi8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMi8vZW4vLzIuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy9lbi8vMy4wIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAwLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vZW4vLzIuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMS8vZW4iLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvL2VuLy8yLjAiLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDIvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy9lbi8vMi4wIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAzLy9lbiIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vZW4vLzMuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sIHN0cmljdC8vZW4vLzIuMCIsCisgICAgICAgICItLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QvL2VuLy8zLjAiLAorICAgICAgICAiLS8vaWV0Zi8vZHRkIGh0bWwvL2VuIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sLy9lbi8vMi4wIiwKKyAgICAgICAgIi0vL2lldGYvL2R0ZCBodG1sLy9lbi8vMy4wIiwKKyAgICAgICAgIi0vL21ldHJpdXMvL2R0ZCBtZXRyaXVzIHByZXNlbnRhdGlvbmFsLy9lbiIsCisgICAgICAgICItLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbCBzdHJpY3QvL2VuIiwKKyAgICAgICAgIi0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sLy9lbiIsCisgICAgICAgICItLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgdGFibGVzLy9lbiIsCisgICAgICAgICItLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbCBzdHJpY3QvL2VuIiwKKyAgICAgICAgIi0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sLy9lbiIsCisgICAgICAgICItLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgdGFibGVzLy9lbiIsCisgICAgICAgICItLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIGh0bWwvL2VuIiwKKyAgICAgICAgIi0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgc3RyaWN0IGh0bWwvL2VuIiwKKyAgICAgICAgIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCAyLjAvL2VuIiwKKyAgICAgICAgIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCBleHRlbmRlZCAxLjAvL2VuIiwKKyAgICAgICAgIi0vL3NweWdsYXNzLy9kdGQgaHRtbCAyLjAgZXh0ZW5kZWQvL2VuIiwKKyAgICAgICAgIi0vL3NxLy9kdGQgaHRtbCAyLjAgaG90bWV0YWwgKyBleHRlbnNpb25zLy9lbiIsCisgICAgICAgICItLy9zdW4gbWljcm9zeXN0ZW1zIGNvcnAuLy9kdGQgaG90amF2YSBodG1sLy9lbiIsCisgICAgICAgICItLy9zdW4gbWljcm9zeXN0ZW1zIGNvcnAuLy9kdGQgaG90amF2YSBzdHJpY3QgaHRtbC8vZW4iLAorICAgICAgICAiLS8vdzNjLy9kdGQgaHRtbCAzIDE5OTUtMDMtMjQvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgMy4yIGRyYWZ0Ly9lbiIsCisgICAgICAgICItLy93M2MvL2R0ZCBodG1sIDMuMiBmaW5hbC8vZW4iLAorICAgICAgICAiLS8vdzNjLy9kdGQgaHRtbCAzLjIvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgMy4ycyBkcmFmdC8vZW4iLAorICAgICAgICAiLS8vdzNjLy9kdGQgaHRtbCA0LjAgZnJhbWVzZXQvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC8vZW4iLAorICAgICAgICAiLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgMTk5NjA3MTIvL2VuIiwKKyAgICAgICAgIi0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDk3MDQyMS8vZW4iLAorICAgICAgICAiLS8vdzNjLy9kdGQgdzMgaHRtbC8vZW4iLAorICAgICAgICAiLS8vdzNvLy9kdGQgdzMgaHRtbCAzLjAvL2VuIiwKKyAgICAgICAgIi0vL3czby8vZHRkIHczIGh0bWwgMy4wLy9lbi8vIiwKKyAgICAgICAgIi0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sIDIuMC8vZW4iLAorICAgICAgICAiLS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwvL2VuIgorICAgIF0sCisgICAgUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsKKyAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSBmcmFtZXNldC8vJywKKyAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycKKyAgICBdLAorICAgIFFVSVJLU19NT0RFX1BVQkxJQ19JRFMgPSBbCisgICAgICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLAorICAgICAgICAnLS93M2MvZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC9lbicsCisgICAgICAgICdodG1sJworICAgIF07CisKKworLy9VdGlscworZnVuY3Rpb24gZW5xdW90ZURvY3R5cGVJZChpZCkgeworICAgIHZhciBxdW90ZSA9IGlkLmluZGV4T2YoJyInKSAhPT0gLTEgPyAnXCcnIDogJyInOworCisgICAgcmV0dXJuIHF1b3RlICsgaWQgKyBxdW90ZTsKK30KKworCisvL0FQSQorZXhwb3J0cy5pc1F1aXJrcyA9IGZ1bmN0aW9uIChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHsKKyAgICBpZiAobmFtZSAhPT0gVkFMSURfRE9DVFlQRV9OQU1FKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChzeXN0ZW1JZCAmJiBzeXN0ZW1JZC50b0xvd2VyQ2FzZSgpID09PSBRVUlSS1NfTU9ERV9TWVNURU1fSUQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKSB7CisgICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTsKKworICAgICAgICBpZiAoUVVJUktTX01PREVfUFVCTElDX0lEUy5pbmRleE9mKHB1YmxpY0lkKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgdmFyIHByZWZpeGVzID0gUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTOworCisgICAgICAgIGlmIChzeXN0ZW1JZCA9PT0gbnVsbCkKKyAgICAgICAgICAgIHByZWZpeGVzID0gcHJlZml4ZXMuY29uY2F0KFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlZml4ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChwdWJsaWNJZC5pbmRleE9mKHByZWZpeGVzW2ldKSA9PT0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK307CisKK2V4cG9ydHMuc2VyaWFsaXplQ29udGVudCA9IGZ1bmN0aW9uIChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHsKKyAgICB2YXIgc3RyID0gJyFET0NUWVBFICcgKyBuYW1lOworCisgICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKQorICAgICAgICBzdHIgKz0gJyBQVUJMSUMgJyArIGVucXVvdGVEb2N0eXBlSWQocHVibGljSWQpOworCisgICAgZWxzZSBpZiAoc3lzdGVtSWQgIT09IG51bGwpCisgICAgICAgIHN0ciArPSAnIFNZU1RFTSc7CisKKyAgICBpZiAoc3lzdGVtSWQgIT09IG51bGwpCisgICAgICAgIHN0ciArPSAnICcgKyBlbnF1b3RlRG9jdHlwZUlkKHN5c3RlbUlkKTsKKworICAgIHJldHVybiBzdHI7Cit9OworCit9LHt9XSwyOltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyd1c2Ugc3RyaWN0JzsKKwordmFyIFRva2VuaXplciA9IHJlcXVpcmUoJy4uL3Rva2VuaXphdGlvbi90b2tlbml6ZXInKSwKKyAgICBIVE1MID0gcmVxdWlyZSgnLi9odG1sJyk7CisKKy8vQWxpYXNlcwordmFyICQgPSBIVE1MLlRBR19OQU1FUywKKyAgICBOUyA9IEhUTUwuTkFNRVNQQUNFUywKKyAgICBBVFRSUyA9IEhUTUwuQVRUUlM7CisKKworLy9NSU1FIHR5cGVzCit2YXIgTUlNRV9UWVBFUyA9IHsKKyAgICBURVhUX0hUTUw6ICd0ZXh0L2h0bWwnLAorICAgIEFQUExJQ0FUSU9OX1hNTDogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcKK307CisKKy8vQXR0cmlidXRlcwordmFyIERFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvbnVybCcsCisgICAgQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUiA9ICdkZWZpbml0aW9uVVJMJywKKyAgICBTVkdfQVRUUlNfQURKVVNUTUVOVF9NQVAgPSB7CisgICAgICAgICdhdHRyaWJ1dGVuYW1lJzogJ2F0dHJpYnV0ZU5hbWUnLAorICAgICAgICAnYXR0cmlidXRldHlwZSc6ICdhdHRyaWJ1dGVUeXBlJywKKyAgICAgICAgJ2Jhc2VmcmVxdWVuY3knOiAnYmFzZUZyZXF1ZW5jeScsCisgICAgICAgICdiYXNlcHJvZmlsZSc6ICdiYXNlUHJvZmlsZScsCisgICAgICAgICdjYWxjbW9kZSc6ICdjYWxjTW9kZScsCisgICAgICAgICdjbGlwcGF0aHVuaXRzJzogJ2NsaXBQYXRoVW5pdHMnLAorICAgICAgICAnY29udGVudHNjcmlwdHR5cGUnOiAnY29udGVudFNjcmlwdFR5cGUnLAorICAgICAgICAnY29udGVudHN0eWxldHlwZSc6ICdjb250ZW50U3R5bGVUeXBlJywKKyAgICAgICAgJ2RpZmZ1c2Vjb25zdGFudCc6ICdkaWZmdXNlQ29uc3RhbnQnLAorICAgICAgICAnZWRnZW1vZGUnOiAnZWRnZU1vZGUnLAorICAgICAgICAnZXh0ZXJuYWxyZXNvdXJjZXNyZXF1aXJlZCc6ICdleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkJywKKyAgICAgICAgJ2ZpbHRlcnJlcyc6ICdmaWx0ZXJSZXMnLAorICAgICAgICAnZmlsdGVydW5pdHMnOiAnZmlsdGVyVW5pdHMnLAorICAgICAgICAnZ2x5cGhyZWYnOiAnZ2x5cGhSZWYnLAorICAgICAgICAnZ3JhZGllbnR0cmFuc2Zvcm0nOiAnZ3JhZGllbnRUcmFuc2Zvcm0nLAorICAgICAgICAnZ3JhZGllbnR1bml0cyc6ICdncmFkaWVudFVuaXRzJywKKyAgICAgICAgJ2tlcm5lbG1hdHJpeCc6ICdrZXJuZWxNYXRyaXgnLAorICAgICAgICAna2VybmVsdW5pdGxlbmd0aCc6ICdrZXJuZWxVbml0TGVuZ3RoJywKKyAgICAgICAgJ2tleXBvaW50cyc6ICdrZXlQb2ludHMnLAorICAgICAgICAna2V5c3BsaW5lcyc6ICdrZXlTcGxpbmVzJywKKyAgICAgICAgJ2tleXRpbWVzJzogJ2tleVRpbWVzJywKKyAgICAgICAgJ2xlbmd0aGFkanVzdCc6ICdsZW5ndGhBZGp1c3QnLAorICAgICAgICAnbGltaXRpbmdjb25lYW5nbGUnOiAnbGltaXRpbmdDb25lQW5nbGUnLAorICAgICAgICAnbWFya2VyaGVpZ2h0JzogJ21hcmtlckhlaWdodCcsCisgICAgICAgICdtYXJrZXJ1bml0cyc6ICdtYXJrZXJVbml0cycsCisgICAgICAgICdtYXJrZXJ3aWR0aCc6ICdtYXJrZXJXaWR0aCcsCisgICAgICAgICdtYXNrY29udGVudHVuaXRzJzogJ21hc2tDb250ZW50VW5pdHMnLAorICAgICAgICAnbWFza3VuaXRzJzogJ21hc2tVbml0cycsCisgICAgICAgICdudW1vY3RhdmVzJzogJ251bU9jdGF2ZXMnLAorICAgICAgICAncGF0aGxlbmd0aCc6ICdwYXRoTGVuZ3RoJywKKyAgICAgICAgJ3BhdHRlcm5jb250ZW50dW5pdHMnOiAncGF0dGVybkNvbnRlbnRVbml0cycsCisgICAgICAgICdwYXR0ZXJudHJhbnNmb3JtJzogJ3BhdHRlcm5UcmFuc2Zvcm0nLAorICAgICAgICAncGF0dGVybnVuaXRzJzogJ3BhdHRlcm5Vbml0cycsCisgICAgICAgICdwb2ludHNhdHgnOiAncG9pbnRzQXRYJywKKyAgICAgICAgJ3BvaW50c2F0eSc6ICdwb2ludHNBdFknLAorICAgICAgICAncG9pbnRzYXR6JzogJ3BvaW50c0F0WicsCisgICAgICAgICdwcmVzZXJ2ZWFscGhhJzogJ3ByZXNlcnZlQWxwaGEnLAorICAgICAgICAncHJlc2VydmVhc3BlY3RyYXRpbyc6ICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJywKKyAgICAgICAgJ3ByaW1pdGl2ZXVuaXRzJzogJ3ByaW1pdGl2ZVVuaXRzJywKKyAgICAgICAgJ3JlZngnOiAncmVmWCcsCisgICAgICAgICdyZWZ5JzogJ3JlZlknLAorICAgICAgICAncmVwZWF0Y291bnQnOiAncmVwZWF0Q291bnQnLAorICAgICAgICAncmVwZWF0ZHVyJzogJ3JlcGVhdER1cicsCisgICAgICAgICdyZXF1aXJlZGV4dGVuc2lvbnMnOiAncmVxdWlyZWRFeHRlbnNpb25zJywKKyAgICAgICAgJ3JlcXVpcmVkZmVhdHVyZXMnOiAncmVxdWlyZWRGZWF0dXJlcycsCisgICAgICAgICdzcGVjdWxhcmNvbnN0YW50JzogJ3NwZWN1bGFyQ29uc3RhbnQnLAorICAgICAgICAnc3BlY3VsYXJleHBvbmVudCc6ICdzcGVjdWxhckV4cG9uZW50JywKKyAgICAgICAgJ3NwcmVhZG1ldGhvZCc6ICdzcHJlYWRNZXRob2QnLAorICAgICAgICAnc3RhcnRvZmZzZXQnOiAnc3RhcnRPZmZzZXQnLAorICAgICAgICAnc3RkZGV2aWF0aW9uJzogJ3N0ZERldmlhdGlvbicsCisgICAgICAgICdzdGl0Y2h0aWxlcyc6ICdzdGl0Y2hUaWxlcycsCisgICAgICAgICdzdXJmYWNlc2NhbGUnOiAnc3VyZmFjZVNjYWxlJywKKyAgICAgICAgJ3N5c3RlbWxhbmd1YWdlJzogJ3N5c3RlbUxhbmd1YWdlJywKKyAgICAgICAgJ3RhYmxldmFsdWVzJzogJ3RhYmxlVmFsdWVzJywKKyAgICAgICAgJ3RhcmdldHgnOiAndGFyZ2V0WCcsCisgICAgICAgICd0YXJnZXR5JzogJ3RhcmdldFknLAorICAgICAgICAndGV4dGxlbmd0aCc6ICd0ZXh0TGVuZ3RoJywKKyAgICAgICAgJ3ZpZXdib3gnOiAndmlld0JveCcsCisgICAgICAgICd2aWV3dGFyZ2V0JzogJ3ZpZXdUYXJnZXQnLAorICAgICAgICAneGNoYW5uZWxzZWxlY3Rvcic6ICd4Q2hhbm5lbFNlbGVjdG9yJywKKyAgICAgICAgJ3ljaGFubmVsc2VsZWN0b3InOiAneUNoYW5uZWxTZWxlY3RvcicsCisgICAgICAgICd6b29tYW5kcGFuJzogJ3pvb21BbmRQYW4nCisgICAgfSwKKyAgICBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVAgPSB7CisgICAgICAgICd4bGluazphY3R1YXRlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FjdHVhdGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSwKKyAgICAgICAgJ3hsaW5rOmFyY3JvbGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYXJjcm9sZScsIG5hbWVzcGFjZTogTlMuWExJTkt9LAorICAgICAgICAneGxpbms6aHJlZic6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdocmVmJywgbmFtZXNwYWNlOiBOUy5YTElOS30sCisgICAgICAgICd4bGluazpyb2xlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSwKKyAgICAgICAgJ3hsaW5rOnNob3cnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAnc2hvdycsIG5hbWVzcGFjZTogTlMuWExJTkt9LAorICAgICAgICAneGxpbms6dGl0bGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAndGl0bGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSwKKyAgICAgICAgJ3hsaW5rOnR5cGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAndHlwZScsIG5hbWVzcGFjZTogTlMuWExJTkt9LAorICAgICAgICAneG1sOmJhc2UnOiB7cHJlZml4OiAneG1sJywgbmFtZTogJ2Jhc2UnLCBuYW1lc3BhY2U6IE5TLlhNTH0sCisgICAgICAgICd4bWw6bGFuZyc6IHtwcmVmaXg6ICd4bWwnLCBuYW1lOiAnbGFuZycsIG5hbWVzcGFjZTogTlMuWE1MfSwKKyAgICAgICAgJ3htbDpzcGFjZSc6IHtwcmVmaXg6ICd4bWwnLCBuYW1lOiAnc3BhY2UnLCBuYW1lc3BhY2U6IE5TLlhNTH0sCisgICAgICAgICd4bWxucyc6IHtwcmVmaXg6ICcnLCBuYW1lOiAneG1sbnMnLCBuYW1lc3BhY2U6IE5TLlhNTE5TfSwKKyAgICAgICAgJ3htbG5zOnhsaW5rJzoge3ByZWZpeDogJ3htbG5zJywgbmFtZTogJ3hsaW5rJywgbmFtZXNwYWNlOiBOUy5YTUxOU30KKworICAgIH07CisKKy8vU1ZHIHRhZyBuYW1lcyBhZGp1c3RtZW50IG1hcAordmFyIFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAgPSB7CisgICAgJ2FsdGdseXBoJzogJ2FsdEdseXBoJywKKyAgICAnYWx0Z2x5cGhkZWYnOiAnYWx0R2x5cGhEZWYnLAorICAgICdhbHRnbHlwaGl0ZW0nOiAnYWx0R2x5cGhJdGVtJywKKyAgICAnYW5pbWF0ZWNvbG9yJzogJ2FuaW1hdGVDb2xvcicsCisgICAgJ2FuaW1hdGVtb3Rpb24nOiAnYW5pbWF0ZU1vdGlvbicsCisgICAgJ2FuaW1hdGV0cmFuc2Zvcm0nOiAnYW5pbWF0ZVRyYW5zZm9ybScsCisgICAgJ2NsaXBwYXRoJzogJ2NsaXBQYXRoJywKKyAgICAnZmVibGVuZCc6ICdmZUJsZW5kJywKKyAgICAnZmVjb2xvcm1hdHJpeCc6ICdmZUNvbG9yTWF0cml4JywKKyAgICAnZmVjb21wb25lbnR0cmFuc2Zlcic6ICdmZUNvbXBvbmVudFRyYW5zZmVyJywKKyAgICAnZmVjb21wb3NpdGUnOiAnZmVDb21wb3NpdGUnLAorICAgICdmZWNvbnZvbHZlbWF0cml4JzogJ2ZlQ29udm9sdmVNYXRyaXgnLAorICAgICdmZWRpZmZ1c2VsaWdodGluZyc6ICdmZURpZmZ1c2VMaWdodGluZycsCisgICAgJ2ZlZGlzcGxhY2VtZW50bWFwJzogJ2ZlRGlzcGxhY2VtZW50TWFwJywKKyAgICAnZmVkaXN0YW50bGlnaHQnOiAnZmVEaXN0YW50TGlnaHQnLAorICAgICdmZWZsb29kJzogJ2ZlRmxvb2QnLAorICAgICdmZWZ1bmNhJzogJ2ZlRnVuY0EnLAorICAgICdmZWZ1bmNiJzogJ2ZlRnVuY0InLAorICAgICdmZWZ1bmNnJzogJ2ZlRnVuY0cnLAorICAgICdmZWZ1bmNyJzogJ2ZlRnVuY1InLAorICAgICdmZWdhdXNzaWFuYmx1cic6ICdmZUdhdXNzaWFuQmx1cicsCisgICAgJ2ZlaW1hZ2UnOiAnZmVJbWFnZScsCisgICAgJ2ZlbWVyZ2UnOiAnZmVNZXJnZScsCisgICAgJ2ZlbWVyZ2Vub2RlJzogJ2ZlTWVyZ2VOb2RlJywKKyAgICAnZmVtb3JwaG9sb2d5JzogJ2ZlTW9ycGhvbG9neScsCisgICAgJ2Zlb2Zmc2V0JzogJ2ZlT2Zmc2V0JywKKyAgICAnZmVwb2ludGxpZ2h0JzogJ2ZlUG9pbnRMaWdodCcsCisgICAgJ2Zlc3BlY3VsYXJsaWdodGluZyc6ICdmZVNwZWN1bGFyTGlnaHRpbmcnLAorICAgICdmZXNwb3RsaWdodCc6ICdmZVNwb3RMaWdodCcsCisgICAgJ2ZldGlsZSc6ICdmZVRpbGUnLAorICAgICdmZXR1cmJ1bGVuY2UnOiAnZmVUdXJidWxlbmNlJywKKyAgICAnZm9yZWlnbm9iamVjdCc6ICdmb3JlaWduT2JqZWN0JywKKyAgICAnZ2x5cGhyZWYnOiAnZ2x5cGhSZWYnLAorICAgICdsaW5lYXJncmFkaWVudCc6ICdsaW5lYXJHcmFkaWVudCcsCisgICAgJ3JhZGlhbGdyYWRpZW50JzogJ3JhZGlhbEdyYWRpZW50JywKKyAgICAndGV4dHBhdGgnOiAndGV4dFBhdGgnCit9OworCisvL1RhZ3MgdGhhdCBjYXVzZXMgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudAordmFyIEVYSVRTX0ZPUkVJR05fQ09OVEVOVCA9IHt9OworCitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5CXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5CSUddID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkJMT0NLUVVPVEVdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkJPRFldID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkJSXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5DRU5URVJdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkNPREVdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkREXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5ESVZdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkRMXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5EVF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRU1dID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkVNQkVEXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5IMV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDJdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkgzXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5INF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDVdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkg2XSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5IRUFEXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5IUl0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSU1HXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5MSV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuTElTVElOR10gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuTUVOVV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuTUVUQV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuTk9CUl0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuT0xdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlBdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlBSRV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuUlVCWV0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU10gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU01BTExdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNQQU5dID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNUUk9OR10gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1RSSUtFXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TVUJdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNVUF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuVEFCTEVdID0gdHJ1ZTsKK0VYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlRUXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5VXSA9IHRydWU7CitFWElUU19GT1JFSUdOX0NPTlRFTlRbJC5VTF0gPSB0cnVlOworRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuVkFSXSA9IHRydWU7CisKKy8vQ2hlY2sgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudAorZXhwb3J0cy5jYXVzZXNFeGl0ID0gZnVuY3Rpb24gKHN0YXJ0VGFnVG9rZW4pIHsKKyAgICB2YXIgdG4gPSBzdGFydFRhZ1Rva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuRk9OVCAmJiAoVG9rZW5pemVyLmdldFRva2VuQXR0cihzdGFydFRhZ1Rva2VuLCBBVFRSUy5DT0xPUikgIT09IG51bGwgfHwKKyAgICAgICAgVG9rZW5pemVyLmdldFRva2VuQXR0cihzdGFydFRhZ1Rva2VuLCBBVFRSUy5TSVpFKSAhPT0gbnVsbCB8fAorICAgICAgICBUb2tlbml6ZXIuZ2V0VG9rZW5BdHRyKHN0YXJ0VGFnVG9rZW4sIEFUVFJTLkZBQ0UpICE9PSBudWxsKSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gRVhJVFNfRk9SRUlHTl9DT05URU5UW3RuXTsKK307CisKKy8vVG9rZW4gYWRqdXN0bWVudHMKK2V4cG9ydHMuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IERFRklOSVRJT05fVVJMX0FUVFIpIHsKKyAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9OworCitleHBvcnRzLmFkanVzdFRva2VuU1ZHQXR0cnMgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBhZGp1c3RlZEF0dHJOYW1lID0gU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQW3Rva2VuLmF0dHJzW2ldLm5hbWVdOworCisgICAgICAgIGlmIChhZGp1c3RlZEF0dHJOYW1lKQorICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ck5hbWU7CisgICAgfQorfTsKKworZXhwb3J0cy5hZGp1c3RUb2tlblhNTEF0dHJzID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgYWRqdXN0ZWRBdHRyRW50cnkgPSBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVBbdG9rZW4uYXR0cnNbaV0ubmFtZV07CisKKyAgICAgICAgaWYgKGFkanVzdGVkQXR0ckVudHJ5KSB7CisgICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5wcmVmaXggPSBhZGp1c3RlZEF0dHJFbnRyeS5wcmVmaXg7CisgICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZTsKKyAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWVzcGFjZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWVzcGFjZTsKKyAgICAgICAgfQorICAgIH0KK307CisKK2V4cG9ydHMuYWRqdXN0VG9rZW5TVkdUYWdOYW1lID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgdmFyIGFkanVzdGVkVGFnTmFtZSA9IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVBbdG9rZW4udGFnTmFtZV07CisKKyAgICBpZiAoYWRqdXN0ZWRUYWdOYW1lKQorICAgICAgICB0b2tlbi50YWdOYW1lID0gYWRqdXN0ZWRUYWdOYW1lOworfTsKKworLy9JbnRlZ3JhdGlvbiBwb2ludHMKK2V4cG9ydHMuaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCA9IGZ1bmN0aW9uICh0biwgbnMpIHsKKyAgICByZXR1cm4gbnMgPT09IE5TLk1BVEhNTCAmJiAodG4gPT09ICQuTUkgfHwgdG4gPT09ICQuTU8gfHwgdG4gPT09ICQuTU4gfHwgdG4gPT09ICQuTVMgfHwgdG4gPT09ICQuTVRFWFQpOworfTsKKworZXhwb3J0cy5pc0h0bWxJbnRlZ3JhdGlvblBvaW50ID0gZnVuY3Rpb24gKHRuLCBucywgYXR0cnMpIHsKKyAgICBpZiAobnMgPT09IE5TLk1BVEhNTCAmJiB0biA9PT0gJC5BTk5PVEFUSU9OX1hNTCkgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoYXR0cnNbaV0ubmFtZSA9PT0gQVRUUlMuRU5DT0RJTkcpIHsKKyAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBhdHRyc1tpXS52YWx1ZS50b0xvd2VyQ2FzZSgpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBNSU1FX1RZUEVTLlRFWFRfSFRNTCB8fCB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5BUFBMSUNBVElPTl9YTUw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnMgPT09IE5TLlNWRyAmJiAodG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgfHwgdG4gPT09ICQuREVTQyB8fCB0biA9PT0gJC5USVRMRSk7Cit9OworCit9LHsiLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplciI6MTQsIi4vaHRtbCI6M31dLDM6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpeworJ3VzZSBzdHJpY3QnOworCit2YXIgTlMgPSBleHBvcnRzLk5BTUVTUEFDRVMgPSB7CisgICAgSFRNTDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLAorICAgIE1BVEhNTDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnLAorICAgIFNWRzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywKKyAgICBYTElOSzogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLAorICAgIFhNTDogJ2h0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZScsCisgICAgWE1MTlM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLycKK307CisKK2V4cG9ydHMuQVRUUlMgPSB7CisgICAgVFlQRTogJ3R5cGUnLAorICAgIEFDVElPTjogJ2FjdGlvbicsCisgICAgRU5DT0RJTkc6ICdlbmNvZGluZycsCisgICAgUFJPTVBUOiAncHJvbXB0JywKKyAgICBOQU1FOiAnbmFtZScsCisgICAgQ09MT1I6ICdjb2xvcicsCisgICAgRkFDRTogJ2ZhY2UnLAorICAgIFNJWkU6ICdzaXplJworfTsKKwordmFyICQgPSBleHBvcnRzLlRBR19OQU1FUyA9IHsKKyAgICBBOiAnYScsCisgICAgQUREUkVTUzogJ2FkZHJlc3MnLAorICAgIEFOTk9UQVRJT05fWE1MOiAnYW5ub3RhdGlvbi14bWwnLAorICAgIEFQUExFVDogJ2FwcGxldCcsCisgICAgQVJFQTogJ2FyZWEnLAorICAgIEFSVElDTEU6ICdhcnRpY2xlJywKKyAgICBBU0lERTogJ2FzaWRlJywKKworICAgIEI6ICdiJywKKyAgICBCQVNFOiAnYmFzZScsCisgICAgQkFTRUZPTlQ6ICdiYXNlZm9udCcsCisgICAgQkdTT1VORDogJ2Jnc291bmQnLAorICAgIEJJRzogJ2JpZycsCisgICAgQkxPQ0tRVU9URTogJ2Jsb2NrcXVvdGUnLAorICAgIEJPRFk6ICdib2R5JywKKyAgICBCUjogJ2JyJywKKyAgICBCVVRUT046ICdidXR0b24nLAorCisgICAgQ0FQVElPTjogJ2NhcHRpb24nLAorICAgIENFTlRFUjogJ2NlbnRlcicsCisgICAgQ09ERTogJ2NvZGUnLAorICAgIENPTDogJ2NvbCcsCisgICAgQ09MR1JPVVA6ICdjb2xncm91cCcsCisgICAgQ09NTUFORDogJ2NvbW1hbmQnLAorCisgICAgREQ6ICdkZCcsCisgICAgREVTQzogJ2Rlc2MnLAorICAgIERFVEFJTFM6ICdkZXRhaWxzJywKKyAgICBESUFMT0c6ICdkaWFsb2cnLAorICAgIERJUjogJ2RpcicsCisgICAgRElWOiAnZGl2JywKKyAgICBETDogJ2RsJywKKyAgICBEVDogJ2R0JywKKworICAgIEVNOiAnZW0nLAorICAgIEVNQkVEOiAnZW1iZWQnLAorCisgICAgRklFTERTRVQ6ICdmaWVsZHNldCcsCisgICAgRklHQ0FQVElPTjogJ2ZpZ2NhcHRpb24nLAorICAgIEZJR1VSRTogJ2ZpZ3VyZScsCisgICAgRk9OVDogJ2ZvbnQnLAorICAgIEZPT1RFUjogJ2Zvb3RlcicsCisgICAgRk9SRUlHTl9PQkpFQ1Q6ICdmb3JlaWduT2JqZWN0JywKKyAgICBGT1JNOiAnZm9ybScsCisgICAgRlJBTUU6ICdmcmFtZScsCisgICAgRlJBTUVTRVQ6ICdmcmFtZXNldCcsCisKKyAgICBIMTogJ2gxJywKKyAgICBIMjogJ2gyJywKKyAgICBIMzogJ2gzJywKKyAgICBINDogJ2g0JywKKyAgICBINTogJ2g1JywKKyAgICBINjogJ2g2JywKKyAgICBIRUFEOiAnaGVhZCcsCisgICAgSEVBREVSOiAnaGVhZGVyJywKKyAgICBIR1JPVVA6ICdoZ3JvdXAnLAorICAgIEhSOiAnaHInLAorICAgIEhUTUw6ICdodG1sJywKKworICAgIEk6ICdpJywKKyAgICBJTUc6ICdpbWcnLAorICAgIElNQUdFOiAnaW1hZ2UnLAorICAgIElOUFVUOiAnaW5wdXQnLAorICAgIElGUkFNRTogJ2lmcmFtZScsCisgICAgSVNJTkRFWDogJ2lzaW5kZXgnLAorCisgICAgS0VZR0VOOiAna2V5Z2VuJywKKworICAgIExBQkVMOiAnbGFiZWwnLAorICAgIExJOiAnbGknLAorICAgIExJTks6ICdsaW5rJywKKyAgICBMSVNUSU5HOiAnbGlzdGluZycsCisKKyAgICBNQUlOOiAnbWFpbicsCisgICAgTUFMSUdOTUFSSzogJ21hbGlnbm1hcmsnLAorICAgIE1BUlFVRUU6ICdtYXJxdWVlJywKKyAgICBNQVRIOiAnbWF0aCcsCisgICAgTUVOVTogJ21lbnUnLAorICAgIE1FTlVJVEVNOiAnbWVudWl0ZW0nLAorICAgIE1FVEE6ICdtZXRhJywKKyAgICBNR0xZUEg6ICdtZ2x5cGgnLAorICAgIE1JOiAnbWknLAorICAgIE1POiAnbW8nLAorICAgIE1OOiAnbW4nLAorICAgIE1TOiAnbXMnLAorICAgIE1URVhUOiAnbXRleHQnLAorCisgICAgTkFWOiAnbmF2JywKKyAgICBOT0JSOiAnbm9icicsCisgICAgTk9GUkFNRVM6ICdub2ZyYW1lcycsCisgICAgTk9FTUJFRDogJ25vZW1iZWQnLAorICAgIE5PU0NSSVBUOiAnbm9zY3JpcHQnLAorCisgICAgT0JKRUNUOiAnb2JqZWN0JywKKyAgICBPTDogJ29sJywKKyAgICBPUFRHUk9VUDogJ29wdGdyb3VwJywKKyAgICBPUFRJT046ICdvcHRpb24nLAorCisgICAgUDogJ3AnLAorICAgIFBBUkFNOiAncGFyYW0nLAorICAgIFBMQUlOVEVYVDogJ3BsYWludGV4dCcsCisgICAgUFJFOiAncHJlJywKKworICAgIFJQOiAncnAnLAorICAgIFJUOiAncnQnLAorICAgIFJVQlk6ICdydWJ5JywKKworICAgIFM6ICdzJywKKyAgICBTQ1JJUFQ6ICdzY3JpcHQnLAorICAgIFNFQ1RJT046ICdzZWN0aW9uJywKKyAgICBTRUxFQ1Q6ICdzZWxlY3QnLAorICAgIFNPVVJDRTogJ3NvdXJjZScsCisgICAgU01BTEw6ICdzbWFsbCcsCisgICAgU1BBTjogJ3NwYW4nLAorICAgIFNUUklLRTogJ3N0cmlrZScsCisgICAgU1RST05HOiAnc3Ryb25nJywKKyAgICBTVFlMRTogJ3N0eWxlJywKKyAgICBTVUI6ICdzdWInLAorICAgIFNVTU1BUlk6ICdzdW1tYXJ5JywKKyAgICBTVVA6ICdzdXAnLAorCisgICAgVEFCTEU6ICd0YWJsZScsCisgICAgVEJPRFk6ICd0Ym9keScsCisgICAgVEVNUExBVEU6ICd0ZW1wbGF0ZScsCisgICAgVEVYVEFSRUE6ICd0ZXh0YXJlYScsCisgICAgVEZPT1Q6ICd0Zm9vdCcsCisgICAgVEQ6ICd0ZCcsCisgICAgVEg6ICd0aCcsCisgICAgVEhFQUQ6ICd0aGVhZCcsCisgICAgVElUTEU6ICd0aXRsZScsCisgICAgVFI6ICd0cicsCisgICAgVFJBQ0s6ICd0cmFjaycsCisgICAgVFQ6ICd0dCcsCisKKyAgICBVOiAndScsCisgICAgVUw6ICd1bCcsCisKKyAgICBTVkc6ICdzdmcnLAorCisgICAgVkFSOiAndmFyJywKKworICAgIFdCUjogJ3dicicsCisKKyAgICBYTVA6ICd4bXAnCit9OworCit2YXIgU1BFQ0lBTF9FTEVNRU5UUyA9IGV4cG9ydHMuU1BFQ0lBTF9FTEVNRU5UUyA9IHt9OworCitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdID0ge307CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQUREUkVTU10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkFQUExFVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkFSRUFdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5BUlRJQ0xFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQVNJREVdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CQVNFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQkFTRUZPTlRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CR1NPVU5EXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQkxPQ0tRVU9URV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJPRFldID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CUl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJVVFRPTl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNBUFRJT05dID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5DRU5URVJdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5DT0xdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5DT0xHUk9VUF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkREXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuREVUQUlMU10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkRJUl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkRJVl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkRMXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRFRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5FTUJFRF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZJRUxEU0VUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRklHQ0FQVElPTl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZJR1VSRV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZPT1RFUl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZPUk1dID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5GUkFNRV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZSQU1FU0VUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDFdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IMl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkgzXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDRdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5INV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkg2XSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSEVBRF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkhFQURFUl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkhHUk9VUF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkhSXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSFRNTF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLklGUkFNRV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLklNR10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLklOUFVUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSVNJTkRFWF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkxJXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTElOS10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkxJU1RJTkddID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5NQUlOXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTUFSUVVFRV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1FTlVdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5NRU5VSVRFTV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1FVEFdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5OQVZdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5OT0VNQkVEXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTk9GUkFNRVNdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5OT1NDUklQVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk9CSkVDVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk9MXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuUF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlBBUkFNXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuUExBSU5URVhUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuUFJFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU0NSSVBUXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU0VDVElPTl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlNFTEVDVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlNPVVJDRV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlNUWUxFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU1VNTUFSWV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRBQkxFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEJPRFldID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5URF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRFTVBMQVRFXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEVYVEFSRUFdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5URk9PVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRIXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEhFQURdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5USVRMRV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRSXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVFJBQ0tdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5VTF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLldCUl0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlhNUF0gPSB0cnVlOworCitTUEVDSUFMX0VMRU1FTlRTW05TLk1BVEhNTF0gPSB7fTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1JXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLk1BVEhNTF1bJC5NT10gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5NQVRITUxdWyQuTU5dID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1TXSA9IHRydWU7CitTUEVDSUFMX0VMRU1FTlRTW05TLk1BVEhNTF1bJC5NVEVYVF0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5NQVRITUxdWyQuQU5OT1RBVElPTl9YTUxdID0gdHJ1ZTsKKworU1BFQ0lBTF9FTEVNRU5UU1tOUy5TVkddID0ge307CitTUEVDSUFMX0VMRU1FTlRTW05TLlNWR11bJC5USVRMRV0gPSB0cnVlOworU1BFQ0lBTF9FTEVNRU5UU1tOUy5TVkddWyQuRk9SRUlHTl9PQkpFQ1RdID0gdHJ1ZTsKK1NQRUNJQUxfRUxFTUVOVFNbTlMuU1ZHXVskLkRFU0NdID0gdHJ1ZTsKKworfSx7fV0sNDpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7CisndXNlIHN0cmljdCc7CisKK2V4cG9ydHMuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSID0gJ1x1RkZGRCc7CisKK2V4cG9ydHMuQ09ERV9QT0lOVFMgPSB7CisgICAgRU9GOiAtMSwKKyAgICBOVUxMOiAweDAwLAorICAgIFRBQlVMQVRJT046IDB4MDksCisgICAgQ0FSUklBR0VfUkVUVVJOOiAweDBELAorICAgIExJTkVfRkVFRDogMHgwQSwKKyAgICBGT1JNX0ZFRUQ6IDB4MEMsCisgICAgU1BBQ0U6IDB4MjAsCisgICAgRVhDTEFNQVRJT05fTUFSSzogMHgyMSwKKyAgICBRVU9UQVRJT05fTUFSSzogMHgyMiwKKyAgICBOVU1CRVJfU0lHTjogMHgyMywKKyAgICBBTVBFUlNBTkQ6IDB4MjYsCisgICAgQVBPU1RST1BIRTogMHgyNywKKyAgICBIWVBIRU5fTUlOVVM6IDB4MkQsCisgICAgU09MSURVUzogMHgyRiwKKyAgICBESUdJVF8wOiAweDMwLAorICAgIERJR0lUXzk6IDB4MzksCisgICAgU0VNSUNPTE9OOiAweDNCLAorICAgIExFU1NfVEhBTl9TSUdOOiAweDNDLAorICAgIEVRVUFMU19TSUdOOiAweDNELAorICAgIEdSRUFURVJfVEhBTl9TSUdOOiAweDNFLAorICAgIFFVRVNUSU9OX01BUks6IDB4M0YsCisgICAgTEFUSU5fQ0FQSVRBTF9BOiAweDQxLAorICAgIExBVElOX0NBUElUQUxfRjogMHg0NiwKKyAgICBMQVRJTl9DQVBJVEFMX1g6IDB4NTgsCisgICAgTEFUSU5fQ0FQSVRBTF9aOiAweDVBLAorICAgIEdSQVZFX0FDQ0VOVDogMHg2MCwKKyAgICBMQVRJTl9TTUFMTF9BOiAweDYxLAorICAgIExBVElOX1NNQUxMX0Y6IDB4NjYsCisgICAgTEFUSU5fU01BTExfWDogMHg3OCwKKyAgICBMQVRJTl9TTUFMTF9aOiAweDdBLAorICAgIEJPTTogMHhGRUZGLAorICAgIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjogMHhGRkZECit9OworCitleHBvcnRzLkNPREVfUE9JTlRfU0VRVUVOQ0VTID0geworICAgIERBU0hfREFTSF9TVFJJTkc6IFsweDJELCAweDJEXSwgLy8tLQorICAgIERPQ1RZUEVfU1RSSU5HOiBbMHg0NCwgMHg0RiwgMHg0MywgMHg1NCwgMHg1OSwgMHg1MCwgMHg0NV0sIC8vRE9DVFlQRQorICAgIENEQVRBX1NUQVJUX1NUUklORzogWzB4NUIsIDB4NDMsIDB4NDQsIDB4NDEsIDB4NTQsIDB4NDEsIDB4NUJdLCAvL1tDREFUQVsKKyAgICBDREFUQV9FTkRfU1RSSU5HOiBbMHg1RCwgMHg1RCwgMHgzRV0sIC8vXV0+CisgICAgU0NSSVBUX1NUUklORzogWzB4NzMsIDB4NjMsIDB4NzIsIDB4NjksIDB4NzAsIDB4NzRdLCAvL3NjcmlwdAorICAgIFBVQkxJQ19TVFJJTkc6IFsweDUwLCAweDU1LCAweDQyLCAweDRDLCAweDQ5LCAweDQzXSwgLy9QVUJMSUMKKyAgICBTWVNURU1fU1RSSU5HOiBbMHg1MywgMHg1OSwgMHg1MywgMHg1NCwgMHg0NSwgMHg0RF0gLy9TWVNURU0KK307CisKK30se31dLDU6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpeworJ3VzZSBzdHJpY3QnOworCitleHBvcnRzLm1lcmdlT3B0aW9ucyA9IGZ1bmN0aW9uIChkZWZhdWx0cywgb3B0aW9ucykgeworICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OworCisgICAgcmV0dXJuIFtkZWZhdWx0cywgb3B0aW9uc10ucmVkdWNlKGZ1bmN0aW9uIChtZXJnZWQsIG9wdE9iaikgeworICAgICAgICBPYmplY3Qua2V5cyhvcHRPYmopLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeworICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSBvcHRPYmpba2V5XTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmV0dXJuIG1lcmdlZDsKKyAgICB9LCB7fSk7Cit9OworCit9LHt9XSw2OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyhmdW5jdGlvbiAocHJvY2Vzcyl7CisndXNlIHN0cmljdCc7CisKK3ZhciBQYXJzZXIgPSByZXF1aXJlKCcuLi90cmVlX2NvbnN0cnVjdGlvbi9wYXJzZXInKSwKKyAgICBQYXJzaW5nVW5pdCA9IHJlcXVpcmUoJy4vcGFyc2luZ191bml0Jyk7CisKKy8vQVBJCitleHBvcnRzLnBhcnNlRG9jdW1lbnQgPSBmdW5jdGlvbiAoaHRtbCwgdHJlZUFkYXB0ZXIpIHsKKyAgICAvL05PVEU6IHRoaXMgc2hvdWxkIGJlIHJlZW50cmFudCwgc28gd2UgY3JlYXRlIG5ldyBwYXJzZXIgaGVyZQorICAgIHZhciBwYXJzZXIgPSBuZXcgUGFyc2VyKHRyZWVBZGFwdGVyKSwKKyAgICAgICAgcGFyc2luZ1VuaXQgPSBuZXcgUGFyc2luZ1VuaXQocGFyc2VyKTsKKworICAgIC8vTk9URTogb3ZlcnJpZGUgcGFyc2VyIGxvb3AgbWV0aG9kCisgICAgcGFyc2VyLl9ydW5QYXJzaW5nTG9vcCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcGFyc2luZ1VuaXQucGFyc2luZ0xvb3BMb2NrID0gdHJ1ZTsKKworICAgICAgICB3aGlsZSAoIXBhcnNpbmdVbml0LnN1c3BlbmRlZCAmJiAhdGhpcy5zdG9wcGVkKQorICAgICAgICAgICAgdGhpcy5faXRlcmF0ZVBhcnNpbmdMb29wKCk7CisKKyAgICAgICAgcGFyc2luZ1VuaXQucGFyc2luZ0xvb3BMb2NrID0gZmFsc2U7CisKKyAgICAgICAgaWYgKHRoaXMuc3RvcHBlZCkKKyAgICAgICAgICAgIHBhcnNpbmdVbml0LmNhbGxiYWNrKHRoaXMuZG9jdW1lbnQpOworICAgIH07CisKKyAgICAvL05PVEU6IHdhaXQgd2hpbGUgcGFyc2VyQ29udHJvbGxlciB3aWxsIGJlIGFkb3B0ZWQgYnkgY2FsbGluZyBjb2RlLCB0aGVuCisgICAgLy9zdGFydCBwYXJzaW5nCisgICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7CisgICAgICAgIHBhcnNlci5wYXJzZShodG1sKTsKKyAgICB9KTsKKworICAgIHJldHVybiBwYXJzaW5nVW5pdDsKK307CisKK2V4cG9ydHMucGFyc2VJbm5lckh0bWwgPSBmdW5jdGlvbiAoaW5uZXJIdG1sLCBjb250ZXh0RWxlbWVudCwgdHJlZUFkYXB0ZXIpIHsKKyAgICAvL05PVEU6IHRoaXMgc2hvdWxkIGJlIHJlZW50cmFudCwgc28gd2UgY3JlYXRlIG5ldyBwYXJzZXIgaGVyZQorICAgIHZhciBwYXJzZXIgPSBuZXcgUGFyc2VyKHRyZWVBZGFwdGVyKTsKKworICAgIHJldHVybiBwYXJzZXIucGFyc2VGcmFnbWVudChpbm5lckh0bWwsIGNvbnRleHRFbGVtZW50KTsKK307Cit9KS5jYWxsKHRoaXMscmVxdWlyZSgnX3Byb2Nlc3MnKSkKK30seyIuLi90cmVlX2NvbnN0cnVjdGlvbi9wYXJzZXIiOjIwLCIuL3BhcnNpbmdfdW5pdCI6NywiX3Byb2Nlc3MiOjIyfV0sNzpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7CisndXNlIHN0cmljdCc7CisKK3ZhciBQYXJzaW5nVW5pdCA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHBhcnNlcikgeworICAgIHRoaXMucGFyc2VyID0gcGFyc2VyOworICAgIHRoaXMuc3VzcGVuZGVkID0gZmFsc2U7CisgICAgdGhpcy5wYXJzaW5nTG9vcExvY2sgPSBmYWxzZTsKKyAgICB0aGlzLmNhbGxiYWNrID0gbnVsbDsKK307CisKK1BhcnNpbmdVbml0LnByb3RvdHlwZS5fc3RhdGVHdWFyZCA9IGZ1bmN0aW9uIChzdXNwZW5kKSB7CisgICAgaWYgKHRoaXMuc3VzcGVuZGVkICYmIHN1c3BlbmQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigncGFyc2U1OiBQYXJzZXIgd2FzIGFscmVhZHkgc3VzcGVuZGVkLiBQbGVhc2UsIGNoZWNrIHlvdXIgY29udHJvbCBmbG93IGxvZ2ljLicpOworCisgICAgZWxzZSBpZiAoIXRoaXMuc3VzcGVuZGVkICYmICFzdXNwZW5kKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnNlNTogUGFyc2VyIHdhcyBhbHJlYWR5IHJlc3VtZWQuIFBsZWFzZSwgY2hlY2sgeW91ciBjb250cm9sIGZsb3cgbG9naWMuJyk7CisKKyAgICByZXR1cm4gc3VzcGVuZDsKK307CisKK1BhcnNpbmdVbml0LnByb3RvdHlwZS5zdXNwZW5kID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuc3VzcGVuZGVkID0gdGhpcy5fc3RhdGVHdWFyZCh0cnVlKTsKKworICAgIHJldHVybiB0aGlzOworfTsKKworUGFyc2luZ1VuaXQucHJvdG90eXBlLnJlc3VtZSA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLnN1c3BlbmRlZCA9IHRoaXMuX3N0YXRlR3VhcmQoZmFsc2UpOworCisgICAgLy9OT1RFOiBkb24ndCBlbnRlciBwYXJzaW5nIGxvb3AgaWYgaXQgaXMgbG9ja2VkLiBXaXRob3V0IHRoaXMgbG9jayBfcnVuUGFyc2luZ0xvb3AoKSBtYXkgYmUgY2FsbGVkCisgICAgLy93aGlsZSBwYXJzaW5nIGxvb3AgaXMgc3RpbGwgcnVubmluZy4gRS5nLiB3aGVuIHN1c3BlbmQoKSBhbmQgcmVzdW1lKCkgY2FsbGVkIHN5bmNocm9ub3VzbHkuCisgICAgaWYgKCF0aGlzLnBhcnNpbmdMb29wTG9jaykKKyAgICAgICAgdGhpcy5wYXJzZXIuX3J1blBhcnNpbmdMb29wKCk7CisKKyAgICByZXR1cm4gdGhpczsKK307CisKK1BhcnNpbmdVbml0LnByb3RvdHlwZS5kb2N1bWVudFdyaXRlID0gZnVuY3Rpb24gKGh0bWwpIHsKKyAgICB0aGlzLnBhcnNlci50b2tlbml6ZXIucHJlcHJvY2Vzc29yLndyaXRlKGh0bWwpOworCisgICAgcmV0dXJuIHRoaXM7Cit9OworCitQYXJzaW5nVW5pdC5wcm90b3R5cGUuaGFuZGxlU2NyaXB0cyA9IGZ1bmN0aW9uIChzY3JpcHRIYW5kbGVyKSB7CisgICAgdGhpcy5wYXJzZXIuc2NyaXB0SGFuZGxlciA9IHNjcmlwdEhhbmRsZXI7CisKKyAgICByZXR1cm4gdGhpczsKK307CisKK1BhcnNpbmdVbml0LnByb3RvdHlwZS5kb25lID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7CisgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIHRoaXM7Cit9OworCit9LHt9XSw4OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyd1c2Ugc3RyaWN0JzsKKwordmFyIERlZmF1bHRUcmVlQWRhcHRlciA9IHJlcXVpcmUoJy4uL3RyZWVfYWRhcHRlcnMvZGVmYXVsdCcpLAorICAgIERvY3R5cGUgPSByZXF1aXJlKCcuLi9jb21tb24vZG9jdHlwZScpLAorICAgIFV0aWxzID0gcmVxdWlyZSgnLi4vY29tbW9uL3V0aWxzJyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4uL2NvbW1vbi9odG1sJyk7CisKKy8vQWxpYXNlcwordmFyICQgPSBIVE1MLlRBR19OQU1FUywKKyAgICBOUyA9IEhUTUwuTkFNRVNQQUNFUzsKKworLy9EZWZhdWx0IHNlcmlhbGl6ZXIgb3B0aW9ucwordmFyIERFRkFVTFRfT1BUSU9OUyA9IHsKKyAgICBlbmNvZGVIdG1sRW50aXRpZXM6IHRydWUKK307CisKKy8vRXNjYXBpbmcgcmVnZXhlcwordmFyIEFNUF9SRUdFWCA9IC8mL2csCisgICAgTkJTUF9SRUdFWCA9IC9cdTAwYTAvZywKKyAgICBET1VCTEVfUVVPVEVfUkVHRVggPSAvIi9nLAorICAgIExUX1JFR0VYID0gLzwvZywKKyAgICBHVF9SRUdFWCA9IC8+L2c7CisKKy8vRXNjYXBlIHN0cmluZworZnVuY3Rpb24gZXNjYXBlU3RyaW5nKHN0ciwgYXR0ck1vZGUpIHsKKyAgICBzdHIgPSBzdHIKKyAgICAgICAgLnJlcGxhY2UoQU1QX1JFR0VYLCAnJmFtcDsnKQorICAgICAgICAucmVwbGFjZShOQlNQX1JFR0VYLCAnJm5ic3A7Jyk7CisKKyAgICBpZiAoYXR0ck1vZGUpCisgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKERPVUJMRV9RVU9URV9SRUdFWCwgJyZxdW90OycpOworCisgICAgZWxzZSB7CisgICAgICAgIHN0ciA9IHN0cgorICAgICAgICAgICAgLnJlcGxhY2UoTFRfUkVHRVgsICcmbHQ7JykKKyAgICAgICAgICAgIC5yZXBsYWNlKEdUX1JFR0VYLCAnJmd0OycpOworICAgIH0KKworICAgIHJldHVybiBzdHI7Cit9CisKKworLy9FbnF1b3RlIGRvY3R5cGUgSUQKKworCisKKy8vU2VyaWFsaXplcgordmFyIFNlcmlhbGl6ZXIgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0cmVlQWRhcHRlciwgb3B0aW9ucykgeworICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlciB8fCBEZWZhdWx0VHJlZUFkYXB0ZXI7CisgICAgdGhpcy5vcHRpb25zID0gVXRpbHMubWVyZ2VPcHRpb25zKERFRkFVTFRfT1BUSU9OUywgb3B0aW9ucyk7Cit9OworCisKKy8vQVBJCitTZXJpYWxpemVyLnByb3RvdHlwZS5zZXJpYWxpemUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHRoaXMuaHRtbCA9ICcnOworICAgIHRoaXMuX3NlcmlhbGl6ZUNoaWxkTm9kZXMobm9kZSk7CisKKyAgICByZXR1cm4gdGhpcy5odG1sOworfTsKKworCisvL0ludGVybmFscworU2VyaWFsaXplci5wcm90b3R5cGUuX3NlcmlhbGl6ZUNoaWxkTm9kZXMgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSkgeworICAgIHZhciBjaGlsZE5vZGVzID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHBhcmVudE5vZGUpOworCisgICAgaWYgKGNoaWxkTm9kZXMpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGNuTGVuZ3RoID0gY2hpbGROb2Rlcy5sZW5ndGg7IGkgPCBjbkxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgY3VycmVudE5vZGUgPSBjaGlsZE5vZGVzW2ldOworCisgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKGN1cnJlbnROb2RlKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVFbGVtZW50KGN1cnJlbnROb2RlKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50cmVlQWRhcHRlci5pc1RleHROb2RlKGN1cnJlbnROb2RlKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVUZXh0Tm9kZShjdXJyZW50Tm9kZSk7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudHJlZUFkYXB0ZXIuaXNDb21tZW50Tm9kZShjdXJyZW50Tm9kZSkpCisgICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplQ29tbWVudE5vZGUoY3VycmVudE5vZGUpOworCisgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnRyZWVBZGFwdGVyLmlzRG9jdW1lbnRUeXBlTm9kZShjdXJyZW50Tm9kZSkpCisgICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplRG9jdW1lbnRUeXBlTm9kZShjdXJyZW50Tm9kZSk7CisgICAgICAgIH0KKyAgICB9Cit9OworCitTZXJpYWxpemVyLnByb3RvdHlwZS5fc2VyaWFsaXplRWxlbWVudCA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpLAorICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5vZGUpLAorICAgICAgICBxdWFsaWZpZWRUbiA9IChucyA9PT0gTlMuSFRNTCB8fCBucyA9PT0gTlMuU1ZHIHx8IG5zID09PSBOUy5NQVRITUwpID8gdG4gOiAobnMgKyAnOicgKyB0bik7CisKKyAgICB0aGlzLmh0bWwgKz0gJzwnICsgcXVhbGlmaWVkVG47CisgICAgdGhpcy5fc2VyaWFsaXplQXR0cmlidXRlcyhub2RlKTsKKyAgICB0aGlzLmh0bWwgKz0gJz4nOworCisgICAgaWYgKHRuICE9PSAkLkFSRUEgJiYgdG4gIT09ICQuQkFTRSAmJiB0biAhPT0gJC5CQVNFRk9OVCAmJiB0biAhPT0gJC5CR1NPVU5EICYmIHRuICE9PSAkLkJSICYmIHRuICE9PSAkLkJSICYmCisgICAgICAgIHRuICE9PSAkLkNPTCAmJiB0biAhPT0gJC5FTUJFRCAmJiB0biAhPT0gJC5GUkFNRSAmJiB0biAhPT0gJC5IUiAmJiB0biAhPT0gJC5JTUcgJiYgdG4gIT09ICQuSU5QVVQgJiYKKyAgICAgICAgdG4gIT09ICQuS0VZR0VOICYmIHRuICE9PSAkLkxJTksgJiYgdG4gIT09ICQuTUVOVUlURU0gJiYgdG4gIT09ICQuTUVUQSAmJiB0biAhPT0gJC5QQVJBTSAmJiB0biAhPT0gJC5TT1VSQ0UgJiYKKyAgICAgICAgdG4gIT09ICQuVFJBQ0sgJiYgdG4gIT09ICQuV0JSKSB7CisKKyAgICAgICAgaWYgKHRuID09PSAkLlBSRSB8fCB0biA9PT0gJC5URVhUQVJFQSB8fCB0biA9PT0gJC5MSVNUSU5HKSB7CisgICAgICAgICAgICB2YXIgZmlyc3RDaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChub2RlKTsKKworICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQgJiYgdGhpcy50cmVlQWRhcHRlci5pc1RleHROb2RlKGZpcnN0Q2hpbGQpKSB7CisgICAgICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRleHROb2RlQ29udGVudChmaXJzdENoaWxkKTsKKworICAgICAgICAgICAgICAgIGlmIChjb250ZW50WzBdID09PSAnXG4nKQorICAgICAgICAgICAgICAgICAgICB0aGlzLmh0bWwgKz0gJ1xuJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZhciBjaGlsZE5vZGVzSG9sZGVyID0gdG4gPT09ICQuVEVNUExBVEUgJiYgbnMgPT09IE5TLkhUTUwgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyhub2RlKVswXSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTsKKworICAgICAgICB0aGlzLl9zZXJpYWxpemVDaGlsZE5vZGVzKGNoaWxkTm9kZXNIb2xkZXIpOworICAgICAgICB0aGlzLmh0bWwgKz0gJzwvJyArIHF1YWxpZmllZFRuICsgJz4nOworICAgIH0KK307CisKK1NlcmlhbGl6ZXIucHJvdG90eXBlLl9zZXJpYWxpemVBdHRyaWJ1dGVzID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICB2YXIgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KG5vZGUpOworCisgICAgZm9yICh2YXIgaSA9IDAsIGF0dHJzTGVuZ3RoID0gYXR0cnMubGVuZ3RoOyBpIDwgYXR0cnNMZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgYXR0ciA9IGF0dHJzW2ldLAorICAgICAgICAgICAgdmFsdWUgPSB0aGlzLm9wdGlvbnMuZW5jb2RlSHRtbEVudGl0aWVzID8gZXNjYXBlU3RyaW5nKGF0dHIudmFsdWUsIHRydWUpIDogYXR0ci52YWx1ZTsKKworICAgICAgICB0aGlzLmh0bWwgKz0gJyAnOworCisgICAgICAgIGlmICghYXR0ci5uYW1lc3BhY2UpCisgICAgICAgICAgICB0aGlzLmh0bWwgKz0gYXR0ci5uYW1lOworCisgICAgICAgIGVsc2UgaWYgKGF0dHIubmFtZXNwYWNlID09PSBOUy5YTUwpCisgICAgICAgICAgICB0aGlzLmh0bWwgKz0gJ3htbDonICsgYXR0ci5uYW1lOworCisgICAgICAgIGVsc2UgaWYgKGF0dHIubmFtZXNwYWNlID09PSBOUy5YTUxOUykgeworICAgICAgICAgICAgaWYgKGF0dHIubmFtZSAhPT0gJ3htbG5zJykKKyAgICAgICAgICAgICAgICB0aGlzLmh0bWwgKz0gJ3htbG5zOic7CisKKyAgICAgICAgICAgIHRoaXMuaHRtbCArPSBhdHRyLm5hbWU7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmIChhdHRyLm5hbWVzcGFjZSA9PT0gTlMuWExJTkspCisgICAgICAgICAgICB0aGlzLmh0bWwgKz0gJ3hsaW5rOicgKyBhdHRyLm5hbWU7CisKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5odG1sICs9IGF0dHIubmFtZXNwYWNlICsgJzonICsgYXR0ci5uYW1lOworCisgICAgICAgIHRoaXMuaHRtbCArPSAnPSInICsgdmFsdWUgKyAnIic7CisgICAgfQorfTsKKworU2VyaWFsaXplci5wcm90b3R5cGUuX3NlcmlhbGl6ZVRleHROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICB2YXIgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGV4dE5vZGVDb250ZW50KG5vZGUpLAorICAgICAgICBwYXJlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSksCisgICAgICAgIHBhcmVudFRuID0gdm9pZCAwOworCisgICAgaWYgKHBhcmVudCAmJiB0aGlzLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUocGFyZW50KSkKKyAgICAgICAgcGFyZW50VG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50KTsKKworICAgIGlmIChwYXJlbnRUbiA9PT0gJC5TVFlMRSB8fCBwYXJlbnRUbiA9PT0gJC5TQ1JJUFQgfHwgcGFyZW50VG4gPT09ICQuWE1QIHx8IHBhcmVudFRuID09PSAkLklGUkFNRSB8fAorICAgICAgICBwYXJlbnRUbiA9PT0gJC5OT0VNQkVEIHx8IHBhcmVudFRuID09PSAkLk5PRlJBTUVTIHx8IHBhcmVudFRuID09PSAkLlBMQUlOVEVYVCB8fCBwYXJlbnRUbiA9PT0gJC5OT1NDUklQVCkgeworICAgICAgICB0aGlzLmh0bWwgKz0gY29udGVudDsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuaHRtbCArPSB0aGlzLm9wdGlvbnMuZW5jb2RlSHRtbEVudGl0aWVzID8gZXNjYXBlU3RyaW5nKGNvbnRlbnQsIGZhbHNlKSA6IGNvbnRlbnQ7Cit9OworCitTZXJpYWxpemVyLnByb3RvdHlwZS5fc2VyaWFsaXplQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHRoaXMuaHRtbCArPSAnPCEtLScgKyB0aGlzLnRyZWVBZGFwdGVyLmdldENvbW1lbnROb2RlQ29udGVudChub2RlKSArICctLT4nOworfTsKKworU2VyaWFsaXplci5wcm90b3R5cGUuX3NlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHZhciBuYW1lID0gdGhpcy50cmVlQWRhcHRlci5nZXREb2N1bWVudFR5cGVOb2RlTmFtZShub2RlKSwKKyAgICAgICAgcHVibGljSWQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVQdWJsaWNJZChub2RlKSwKKyAgICAgICAgc3lzdGVtSWQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVTeXN0ZW1JZChub2RlKTsKKworICAgIHRoaXMuaHRtbCArPSAnPCcgKyBEb2N0eXBlLnNlcmlhbGl6ZUNvbnRlbnQobmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSArICc+JzsKK307CisKK30seyIuLi9jb21tb24vZG9jdHlwZSI6MSwiLi4vY29tbW9uL2h0bWwiOjMsIi4uL2NvbW1vbi91dGlscyI6NSwiLi4vdHJlZV9hZGFwdGVycy9kZWZhdWx0IjoxNX1dLDk6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpeworJ3VzZSBzdHJpY3QnOworCit2YXIgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplcicpLAorICAgIFRva2VuaXplclByb3h5ID0gcmVxdWlyZSgnLi90b2tlbml6ZXJfcHJveHknKSwKKyAgICBVdGlscyA9IHJlcXVpcmUoJy4uL2NvbW1vbi91dGlscycpOworCisvL0RlZmF1bHQgb3B0aW9ucwordmFyIERFRkFVTFRfT1BUSU9OUyA9IHsKKyAgICBkZWNvZGVIdG1sRW50aXRpZXM6IHRydWUsCisgICAgbG9jYXRpb25JbmZvOiBmYWxzZQorfTsKKworLy9Ta2lwcGluZyBoYW5kbGVyCitmdW5jdGlvbiBza2lwKCkgeworICAgIC8vTk9URTogZG8gbm90aGluZyA9KQorfQorCisvL1NpbXBsZUFwaVBhcnNlcgordmFyIFNpbXBsZUFwaVBhcnNlciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGhhbmRsZXJzLCBvcHRpb25zKSB7CisgICAgdGhpcy5vcHRpb25zID0gVXRpbHMubWVyZ2VPcHRpb25zKERFRkFVTFRfT1BUSU9OUywgb3B0aW9ucyk7CisgICAgdGhpcy5oYW5kbGVycyA9IHsKKyAgICAgICAgZG9jdHlwZTogdGhpcy5fd3JhcEhhbmRsZXIoaGFuZGxlcnMuZG9jdHlwZSksCisgICAgICAgIHN0YXJ0VGFnOiB0aGlzLl93cmFwSGFuZGxlcihoYW5kbGVycy5zdGFydFRhZyksCisgICAgICAgIGVuZFRhZzogdGhpcy5fd3JhcEhhbmRsZXIoaGFuZGxlcnMuZW5kVGFnKSwKKyAgICAgICAgdGV4dDogdGhpcy5fd3JhcEhhbmRsZXIoaGFuZGxlcnMudGV4dCksCisgICAgICAgIGNvbW1lbnQ6IHRoaXMuX3dyYXBIYW5kbGVyKGhhbmRsZXJzLmNvbW1lbnQpCisgICAgfTsKK307CisKK1NpbXBsZUFwaVBhcnNlci5wcm90b3R5cGUuX3dyYXBIYW5kbGVyID0gZnVuY3Rpb24gKGhhbmRsZXIpIHsKKyAgICB2YXIgcGFyc2VyID0gdGhpczsKKworICAgIGhhbmRsZXIgPSBoYW5kbGVyIHx8IHNraXA7CisKKyAgICBpZiAodGhpcy5vcHRpb25zLmxvY2F0aW9uSW5mbykgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpOworICAgICAgICAgICAgYXJncy5wdXNoKHBhcnNlci5jdXJyZW50VG9rZW5Mb2NhdGlvbik7CisgICAgICAgICAgICBoYW5kbGVyLmFwcGx5KGhhbmRsZXIsIGFyZ3MpOworICAgICAgICB9OworICAgIH0KKworICAgIHJldHVybiBoYW5kbGVyOworfTsKKworLy9BUEkKK1NpbXBsZUFwaVBhcnNlci5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoaHRtbCkgeworICAgIHZhciB0b2tlbiA9IG51bGw7CisKKyAgICB0aGlzLl9yZXNldChodG1sKTsKKworICAgIGRvIHsKKyAgICAgICAgdG9rZW4gPSB0aGlzLnRva2VuaXplclByb3h5LmdldE5leHRUb2tlbigpOworCisgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOIHx8CisgICAgICAgICAgICB0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4gfHwKKyAgICAgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTikgeworCisgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvY2F0aW9uSW5mbykgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdUZXh0ID09PSBudWxsKQorICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbkxvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247CisKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuTG9jYXRpb24uZW5kID0gdG9rZW4ubG9jYXRpb24uZW5kOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aGlzLnBlbmRpbmdUZXh0ID0gKHRoaXMucGVuZGluZ1RleHQgfHwgJycpICsgdG9rZW4uY2hhcnM7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2VtaXRQZW5kaW5nVGV4dCgpOworICAgICAgICAgICAgdGhpcy5faGFuZGxlVG9rZW4odG9rZW4pOworICAgICAgICB9CisgICAgfSB3aGlsZSAodG9rZW4udHlwZSAhPT0gVG9rZW5pemVyLkVPRl9UT0tFTik7Cit9OworCisvL0ludGVybmFscworU2ltcGxlQXBpUGFyc2VyLnByb3RvdHlwZS5faGFuZGxlVG9rZW4gPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICBpZiAodGhpcy5vcHRpb25zLmxvY2F0aW9uSW5mbykKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW5Mb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uOworCisgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4pCisgICAgICAgIHRoaXMuaGFuZGxlcnMuc3RhcnRUYWcodG9rZW4udGFnTmFtZSwgdG9rZW4uYXR0cnMsIHRva2VuLnNlbGZDbG9zaW5nKTsKKworICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5FTkRfVEFHX1RPS0VOKQorICAgICAgICB0aGlzLmhhbmRsZXJzLmVuZFRhZyh0b2tlbi50YWdOYW1lKTsKKworICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5DT01NRU5UX1RPS0VOKQorICAgICAgICB0aGlzLmhhbmRsZXJzLmNvbW1lbnQodG9rZW4uZGF0YSk7CisKKyAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTikKKyAgICAgICAgdGhpcy5oYW5kbGVycy5kb2N0eXBlKHRva2VuLm5hbWUsIHRva2VuLnB1YmxpY0lkLCB0b2tlbi5zeXN0ZW1JZCk7CisKK307CisKK1NpbXBsZUFwaVBhcnNlci5wcm90b3R5cGUuX3Jlc2V0ID0gZnVuY3Rpb24gKGh0bWwpIHsKKyAgICB0aGlzLnRva2VuaXplclByb3h5ID0gbmV3IFRva2VuaXplclByb3h5KGh0bWwsIHRoaXMub3B0aW9ucyk7CisgICAgdGhpcy5wZW5kaW5nVGV4dCA9IG51bGw7CisgICAgdGhpcy5jdXJyZW50VG9rZW5Mb2NhdGlvbiA9IG51bGw7Cit9OworCitTaW1wbGVBcGlQYXJzZXIucHJvdG90eXBlLl9lbWl0UGVuZGluZ1RleHQgPSBmdW5jdGlvbiAoKSB7CisgICAgaWYgKHRoaXMucGVuZGluZ1RleHQgIT09IG51bGwpIHsKKyAgICAgICAgdGhpcy5oYW5kbGVycy50ZXh0KHRoaXMucGVuZGluZ1RleHQpOworICAgICAgICB0aGlzLnBlbmRpbmdUZXh0ID0gbnVsbDsKKyAgICB9Cit9OworCit9LHsiLi4vY29tbW9uL3V0aWxzIjo1LCIuLi90b2tlbml6YXRpb24vdG9rZW5pemVyIjoxNCwiLi90b2tlbml6ZXJfcHJveHkiOjEwfV0sMTA6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpeworJ3VzZSBzdHJpY3QnOworCit2YXIgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplcicpLAorICAgIEZvcmVpZ25Db250ZW50ID0gcmVxdWlyZSgnLi4vY29tbW9uL2ZvcmVpZ25fY29udGVudCcpLAorICAgIFVOSUNPREUgPSByZXF1aXJlKCcuLi9jb21tb24vdW5pY29kZScpLAorICAgIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpOworCisvL0FsaWFzZXMKK3ZhciAkID0gSFRNTC5UQUdfTkFNRVMsCisgICAgTlMgPSBIVE1MLk5BTUVTUEFDRVM7CisKKworLy9Ub2tlbml6ZXIgcHJveHkKKy8vTk9URTogdGhpcyBwcm94eSBzaW11bGF0ZXMgYWRqdXN0bWVudCBvZiB0aGUgVG9rZW5pemVyIHdoaWNoIHBlcmZvcm1lZCBieSBzdGFuZGFyZCBwYXJzZXIgZHVyaW5nIHRyZWUgY29uc3RydWN0aW9uLgordmFyIFRva2VuaXplclByb3h5ID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaHRtbCwgb3B0aW9ucykgeworICAgIHRoaXMudG9rZW5pemVyID0gbmV3IFRva2VuaXplcihodG1sLCBvcHRpb25zKTsKKworICAgIHRoaXMubmFtZXNwYWNlU3RhY2sgPSBbXTsKKyAgICB0aGlzLm5hbWVzcGFjZVN0YWNrVG9wID0gLTE7CisgICAgdGhpcy5jdXJyZW50TmFtZXNwYWNlID0gbnVsbDsKKyAgICB0aGlzLmluRm9yZWlnbkNvbnRlbnQgPSBmYWxzZTsKK307CisKKy8vQVBJCitUb2tlbml6ZXJQcm94eS5wcm90b3R5cGUuZ2V0TmV4dFRva2VuID0gZnVuY3Rpb24gKCkgeworICAgIHZhciB0b2tlbiA9IHRoaXMudG9rZW5pemVyLmdldE5leHRUb2tlbigpOworCisgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4pCisgICAgICAgIHRoaXMuX2hhbmRsZVN0YXJ0VGFnVG9rZW4odG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4pCisgICAgICAgIHRoaXMuX2hhbmRsZUVuZFRhZ1Rva2VuKHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTiAmJiB0aGlzLmluRm9yZWlnbkNvbnRlbnQpIHsKKyAgICAgICAgdG9rZW4udHlwZSA9IFRva2VuaXplci5DSEFSQUNURVJfVE9LRU47CisgICAgICAgIHRva2VuLmNoYXJzID0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgfQorCisgICAgcmV0dXJuIHRva2VuOworfTsKKworLy9OYW1lc3BhY2Ugc3RhY2sgbXV0YXRpb25zCitUb2tlbml6ZXJQcm94eS5wcm90b3R5cGUuX2VudGVyTmFtZXNwYWNlID0gZnVuY3Rpb24gKG5hbWVzcGFjZSkgeworICAgIHRoaXMubmFtZXNwYWNlU3RhY2tUb3ArKzsKKyAgICB0aGlzLm5hbWVzcGFjZVN0YWNrLnB1c2gobmFtZXNwYWNlKTsKKworICAgIHRoaXMuaW5Gb3JlaWduQ29udGVudCA9IG5hbWVzcGFjZSAhPT0gTlMuSFRNTDsKKyAgICB0aGlzLmN1cnJlbnROYW1lc3BhY2UgPSBuYW1lc3BhY2U7CisgICAgdGhpcy50b2tlbml6ZXIuYWxsb3dDREFUQSA9IHRoaXMuaW5Gb3JlaWduQ29udGVudDsKK307CisKK1Rva2VuaXplclByb3h5LnByb3RvdHlwZS5fbGVhdmVDdXJyZW50TmFtZXNwYWNlID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMubmFtZXNwYWNlU3RhY2tUb3AtLTsKKyAgICB0aGlzLm5hbWVzcGFjZVN0YWNrLnBvcCgpOworCisgICAgdGhpcy5jdXJyZW50TmFtZXNwYWNlID0gdGhpcy5uYW1lc3BhY2VTdGFja1t0aGlzLm5hbWVzcGFjZVN0YWNrVG9wXTsKKyAgICB0aGlzLmluRm9yZWlnbkNvbnRlbnQgPSB0aGlzLmN1cnJlbnROYW1lc3BhY2UgIT09IE5TLkhUTUw7CisgICAgdGhpcy50b2tlbml6ZXIuYWxsb3dDREFUQSA9IHRoaXMuaW5Gb3JlaWduQ29udGVudDsKK307CisKKy8vVG9rZW4gaGFuZGxlcnMKK1Rva2VuaXplclByb3h5LnByb3RvdHlwZS5fZW5zdXJlVG9rZW5pemVyTW9kZSA9IGZ1bmN0aW9uICh0bikgeworICAgIGlmICh0biA9PT0gJC5URVhUQVJFQSB8fCB0biA9PT0gJC5USVRMRSkKKyAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQ0RBVEE7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5QTEFJTlRFWFQpCisgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUExBSU5URVhUOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKQorICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlNDUklQVF9EQVRBOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuU1RZTEUgfHwgdG4gPT09ICQuSUZSQU1FIHx8IHRuID09PSAkLlhNUCB8fAorICAgICAgICAgICAgIHRuID09PSAkLk5PRU1CRUQgfHwgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuTk9TQ1JJUFQpIHsKKyAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQVdURVhUOworICAgIH0KK307CisKK1Rva2VuaXplclByb3h5LnByb3RvdHlwZS5faGFuZGxlU3RhcnRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuU1ZHKQorICAgICAgICB0aGlzLl9lbnRlck5hbWVzcGFjZShOUy5TVkcpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuTUFUSCkKKyAgICAgICAgdGhpcy5fZW50ZXJOYW1lc3BhY2UoTlMuTUFUSE1MKTsKKworICAgIGVsc2UgeworICAgICAgICBpZiAodGhpcy5pbkZvcmVpZ25Db250ZW50KSB7CisgICAgICAgICAgICBpZiAoRm9yZWlnbkNvbnRlbnQuY2F1c2VzRXhpdCh0b2tlbikpCisgICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVDdXJyZW50TmFtZXNwYWNlKCk7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKEZvcmVpZ25Db250ZW50LmlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIHRoaXMuY3VycmVudE5hbWVzcGFjZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgIEZvcmVpZ25Db250ZW50LmlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIHRoaXMuY3VycmVudE5hbWVzcGFjZSwgdG9rZW4uYXR0cnMpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZW50ZXJOYW1lc3BhY2UoTlMuSFRNTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9lbnN1cmVUb2tlbml6ZXJNb2RlKHRuKTsKKyAgICB9Cit9OworCitUb2tlbml6ZXJQcm94eS5wcm90b3R5cGUuX2hhbmRsZUVuZFRhZ1Rva2VuID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICghdGhpcy5pbkZvcmVpZ25Db250ZW50KSB7CisgICAgICAgIHZhciBwcmV2aW91c05zID0gdGhpcy5uYW1lc3BhY2VTdGFja1t0aGlzLm5hbWVzcGFjZVN0YWNrVG9wIC0gMV07CisKKyAgICAgICAgLy9OT1RFOiBjaGVjayBmb3IgZXhpdCBmcm9tIGludGVncmF0aW9uIHBvaW50CisgICAgICAgIGlmIChGb3JlaWduQ29udGVudC5pc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBwcmV2aW91c05zKSB8fAorICAgICAgICAgICAgRm9yZWlnbkNvbnRlbnQuaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgcHJldmlvdXNOcywgdG9rZW4uYXR0cnMpKSB7CisgICAgICAgICAgICB0aGlzLl9sZWF2ZUN1cnJlbnROYW1lc3BhY2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNDUklQVCkKKyAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuREFUQTsKKyAgICB9CisKKyAgICBlbHNlIGlmICgodG4gPT09ICQuU1ZHICYmIHRoaXMuY3VycmVudE5hbWVzcGFjZSA9PT0gTlMuU1ZHKSB8fAorICAgICAgICAgICAgICh0biA9PT0gJC5NQVRIICYmIHRoaXMuY3VycmVudE5hbWVzcGFjZSA9PT0gTlMuTUFUSE1MKSkKKyAgICAgICAgdGhpcy5fbGVhdmVDdXJyZW50TmFtZXNwYWNlKCk7Cit9OworCit9LHsiLi4vY29tbW9uL2ZvcmVpZ25fY29udGVudCI6MiwiLi4vY29tbW9uL2h0bWwiOjMsIi4uL2NvbW1vbi91bmljb2RlIjo0LCIuLi90b2tlbml6YXRpb24vdG9rZW5pemVyIjoxNH1dLDExOltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyd1c2Ugc3RyaWN0JzsKKworZXhwb3J0cy5hc3NpZ24gPSBmdW5jdGlvbiAodG9rZW5pemVyKSB7CisgICAgLy9OT1RFOiBvYnRhaW4gVG9rZW5pemVyIHByb3RvIHRoaXMgd2F5IHRvIGF2b2lkIG1vZHVsZSBjaXJjdWxhciByZWZlcmVuY2VzCisgICAgdmFyIHRva2VuaXplclByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRva2VuaXplcik7CisKKyAgICB0b2tlbml6ZXIudG9rZW5TdGFydExvYyA9IC0xOworCisgICAgLy9OT1RFOiBhZGQgbG9jYXRpb24gaW5mbyBidWlsZGVyIG1ldGhvZAorICAgIHRva2VuaXplci5fYXR0YWNoTG9jYXRpb25JbmZvID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgICAgIHRva2VuLmxvY2F0aW9uID0geworICAgICAgICAgICAgc3RhcnQ6IHRoaXMudG9rZW5TdGFydExvYywKKyAgICAgICAgICAgIGVuZDogLTEKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgLy9OT1RFOiBwYXRjaCB0b2tlbiBjcmVhdGlvbiBtZXRob2RzIGFuZCBhdHRhY2ggbG9jYXRpb24gb2JqZWN0cworICAgIHRva2VuaXplci5fY3JlYXRlU3RhcnRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0YWdOYW1lRmlyc3RDaCkgeworICAgICAgICB0b2tlbml6ZXJQcm90by5fY3JlYXRlU3RhcnRUYWdUb2tlbi5jYWxsKHRoaXMsIHRhZ05hbWVGaXJzdENoKTsKKyAgICAgICAgdGhpcy5fYXR0YWNoTG9jYXRpb25JbmZvKHRoaXMuY3VycmVudFRva2VuKTsKKyAgICB9OworCisgICAgdG9rZW5pemVyLl9jcmVhdGVFbmRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0YWdOYW1lRmlyc3RDaCkgeworICAgICAgICB0b2tlbml6ZXJQcm90by5fY3JlYXRlRW5kVGFnVG9rZW4uY2FsbCh0aGlzLCB0YWdOYW1lRmlyc3RDaCk7CisgICAgICAgIHRoaXMuX2F0dGFjaExvY2F0aW9uSW5mbyh0aGlzLmN1cnJlbnRUb2tlbik7CisgICAgfTsKKworICAgIHRva2VuaXplci5fY3JlYXRlQ29tbWVudFRva2VuID0gZnVuY3Rpb24gKCkgeworICAgICAgICB0b2tlbml6ZXJQcm90by5fY3JlYXRlQ29tbWVudFRva2VuLmNhbGwodGhpcyk7CisgICAgICAgIHRoaXMuX2F0dGFjaExvY2F0aW9uSW5mbyh0aGlzLmN1cnJlbnRUb2tlbik7CisgICAgfTsKKworICAgIHRva2VuaXplci5fY3JlYXRlRG9jdHlwZVRva2VuID0gZnVuY3Rpb24gKGRvY3R5cGVOYW1lRmlyc3RDaCkgeworICAgICAgICB0b2tlbml6ZXJQcm90by5fY3JlYXRlRG9jdHlwZVRva2VuLmNhbGwodGhpcywgZG9jdHlwZU5hbWVGaXJzdENoKTsKKyAgICAgICAgdGhpcy5fYXR0YWNoTG9jYXRpb25JbmZvKHRoaXMuY3VycmVudFRva2VuKTsKKyAgICB9OworCisgICAgdG9rZW5pemVyLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbiA9IGZ1bmN0aW9uICh0eXBlLCBjaCkgeworICAgICAgICB0b2tlbml6ZXJQcm90by5fY3JlYXRlQ2hhcmFjdGVyVG9rZW4uY2FsbCh0aGlzLCB0eXBlLCBjaCk7CisgICAgICAgIHRoaXMuX2F0dGFjaExvY2F0aW9uSW5mbyh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7CisgICAgfTsKKworICAgIC8vTk9URTogcGF0Y2ggdG9rZW4gZW1pc3Npb24gbWV0aG9kcyB0byBkZXRlcm1pbmUgZW5kIGxvY2F0aW9uCisgICAgdG9rZW5pemVyLl9lbWl0Q3VycmVudFRva2VuID0gZnVuY3Rpb24gKCkgeworICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgcGVuZGluZyBjaGFyYWN0ZXIgdG9rZW4gbWFrZSBpdCdzIGVuZCBsb2NhdGlvbiBlcXVhbCB0byB0aGUKKyAgICAgICAgLy9jdXJyZW50IHRva2VuJ3Mgc3RhcnQgbG9jYXRpb24uCisgICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikKKyAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZCA9IHRoaXMuY3VycmVudFRva2VuLmxvY2F0aW9uLnN0YXJ0OworCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmxvY2F0aW9uLmVuZCA9IHRoaXMucHJlcHJvY2Vzc29yLnBvcyArIDE7CisgICAgICAgIHRva2VuaXplclByb3RvLl9lbWl0Q3VycmVudFRva2VuLmNhbGwodGhpcyk7CisgICAgfTsKKworICAgIHRva2VuaXplci5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGNoYXJhY3RlciB0b2tlbiBhbmQgaXQncyBsb2NhdGlvbiB3YXNuJ3Qgc2V0IGluIHRoZSBfZW1pdEN1cnJlbnRUb2tlbigpLAorICAgICAgICAvL3RoZW4gc2V0IGl0J3MgbG9jYXRpb24gYXQgdGhlIGN1cnJlbnQgcHJlcHJvY2Vzc29yIHBvc2l0aW9uCisgICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiAmJiB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmQgPT09IC0xKSB7CisgICAgICAgICAgICAvL05PVEU6IHdlIGRvbid0IG5lZWQgdG8gaW5jcmVtZW50IHByZXByb2Nlc3NvciBwb3NpdGlvbiwgc2luY2UgY2hhcmFjdGVyIHRva2VuCisgICAgICAgICAgICAvL2VtaXNzaW9uIGlzIGFsd2F5cyBmb3JjZWQgYnkgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0b2tlbiBoZXJlLgorICAgICAgICAgICAgLy9Tbywgd2UgYWxyZWFkeSBoYXZlIGFkdmFuY2VkIHBvc2l0aW9uLgorICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kID0gdGhpcy5wcmVwcm9jZXNzb3IucG9zOworICAgICAgICB9CisKKyAgICAgICAgdG9rZW5pemVyUHJvdG8uX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2FsbCh0aGlzKTsKKyAgICB9OworCisgICAgLy9OT1RFOiBwYXRjaCBpbml0aWFsIHN0YXRlcyBmb3IgZWFjaCBtb2RlIHRvIG9idGFpbiB0b2tlbiBzdGFydCBwb3NpdGlvbgorICAgIE9iamVjdC5rZXlzKHRva2VuaXplclByb3RvLk1PREUpCisKKyAgICAgICAgLm1hcChmdW5jdGlvbiAobW9kZU5hbWUpIHsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbml6ZXJQcm90by5NT0RFW21vZGVOYW1lXTsKKyAgICAgICAgfSkKKworICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUpIHsKKyAgICAgICAgICAgIHRva2VuaXplcltzdGF0ZV0gPSBmdW5jdGlvbiAoY3ApIHsKKyAgICAgICAgICAgICAgICB0aGlzLnRva2VuU3RhcnRMb2MgPSB0aGlzLnByZXByb2Nlc3Nvci5wb3M7CisgICAgICAgICAgICAgICAgdG9rZW5pemVyUHJvdG9bc3RhdGVdLmNhbGwodGhpcywgY3ApOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7Cit9OworCit9LHt9XSwxMjpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7CisndXNlIHN0cmljdCc7CisKKy8vTk9URTogdGhpcyBmaWxlIGNvbnRhaW5zIGF1dG8gZ2VuZXJhdGVkIHRyaWUgc3RydWN0dXJlIHRoYXQgaXMgdXNlZCBmb3IgbmFtZWQgZW50aXR5IHJlZmVyZW5jZXMgY29uc3VtcHRpb24KKy8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0aW9uLmh0bWwjdG9rZW5pemluZy1jaGFyYWN0ZXItcmVmZXJlbmNlcyBhbmQKKy8vaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMuaHRtbCNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcykKK21vZHVsZS5leHBvcnRzID0gezY1OntsOns2OTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzE5OF19fSxjOlsxOThdfX19fX19fSw3Nzp7bDp7ODA6e2w6ezU5OntjOlszOF19fSxjOlszOF19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMTkzXX19LGM6WzE5M119fX19fX19fX0sOTg6e2w6ezExNDp7bDp7MTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzI1OF19fX19fX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMTk0XX19LGM6WzE5NF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDQwXX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDY4XX19fX19LDEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsxOTJdfX0sYzpbMTkyXX19fX19fX19fSwxMDg6e2w6ezExMjp7bDp7MTA0OntsOns5Nzp7bDp7NTk6e2M6WzkxM119fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzI1Nl19fX19fX19fX0sMTEwOntsOnsxMDA6e2w6ezU5OntjOlsxMDgzNV19fX19fSwxMTE6e2w6ezEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyNjBdfX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyMF19fX19fX19LDExMjp7bDp7MTEyOntsOnsxMDg6e2w6ezEyMTp7bDp7NzA6e2w6ezExNzp7bDp7MTEwOntsOns5OTp7bDp7MTE2OntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODI4OV19fX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzE5N119fSxjOlsxOTddfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NjRdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwMzp7bDp7MTEwOntsOns1OTp7YzpbODc4OF19fX19fX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzE5NV19fSxjOlsxOTVdfX19fX19fX19LDExNzp7bDp7MTA5OntsOnsxMDg6e2w6ezU5OntjOlsxOTZdfX0sYzpbMTk2XX19fX19fX0sNjY6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMTU6e2w6ezEwODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODcyNl19fX19fX19fX19fX19fX0sMTE0OntsOnsxMTg6e2w6ezU5OntjOlsxMDk4M119fX0sMTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7NTk6e2M6Wzg5NjZdfX19fX19fX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNDFdfX19fX0sMTAxOntsOns5OTp7bDp7OTc6e2w6ezExNzp7bDp7MTE1OntsOnsxMDE6e2w6ezU5OntjOls4NzU3XX19fX19fX19fX19LDExNDp7bDp7MTEwOntsOnsxMTE6e2w6ezExNzp7bDp7MTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTE1OntsOns1OTp7YzpbODQ5Ml19fX19fX19fX19fX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTE0XX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNjldfX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyMV19fX19fX19LDExNDp7bDp7MTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzcyOF19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5Ml19fX19fX19LDExNzp7bDp7MTA5OntsOnsxMTI6e2w6ezEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc4Ml19fX19fX19fX19fX19LDY3OntsOns3Mjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjNdfX19fX19fSw3OTp7bDp7ODA6e2w6ezg5OntsOns1OTp7YzpbMTY5XX19LGM6WzE2OV19fX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNjJdfX19fX19fX19LDExMjp7bDp7NTk6e2M6Wzg5MTRdfSwxMDU6e2w6ezExNjp7bDp7OTc6e2w6ezEwODp7bDp7Njg6e2w6ezEwNTp7bDp7MTAyOntsOnsxMDI6e2w6ezEwMTp7bDp7MTE0OntsOnsxMDE6e2w6ezExMDp7bDp7MTE2OntsOnsxMDU6e2w6ezk3OntsOnsxMDg6e2w6ezY4OntsOns1OTp7YzpbODUxN119fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDEyMTp7bDp7MTA4OntsOnsxMDE6e2w6ezEyMTp7bDp7MTE1OntsOns1OTp7YzpbODQ5M119fX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI2OF19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMTk5XX19LGM6WzE5OV19fX19fX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzI2NF19fX19fX19LDExMTp7bDp7MTEwOntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1Ml19fX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsyNjZdfX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwODp7bDp7OTc6e2w6ezU5OntjOlsxODRdfX19fX19fX19fX0sMTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxODNdfX19fX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOls4NDkzXX19fX19LDEwNDp7bDp7MTA1OntsOns1OTp7YzpbOTM1XX19fX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7MTA4OntsOnsxMDE6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NTddfX19fX19fSw3Nzp7bDp7MTA1OntsOnsxMTA6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg1NF19fX19fX19fX19fSw4MDp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NTNdfX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4ODU1XX19fX19fX19fX19fX19fX19fX19fSwxMDg6e2w6ezExMTp7bDp7OTk6e2w6ezEwNzp7bDp7MTE5OntsOnsxMDU6e2w6ezExNTp7bDp7MTAxOntsOns2Nzp7bDp7MTExOntsOnsxMTA6e2w6ezExNjp7bDp7MTExOntsOnsxMTc6e2w6ezExNDp7bDp7NzM6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc1NF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTAxOntsOns2Nzp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwODp7bDp7MTIxOntsOns2ODp7bDp7MTExOntsOnsxMTc6e2w6ezk4OntsOnsxMDg6e2w6ezEwMTp7bDp7ODE6e2w6ezExNzp7bDp7MTExOntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMjFdfX19fX19fX19fX19fX19fX19fX19fX0sODE6e2w6ezExNzp7bDp7MTExOntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMTddfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODc1OV19LDEwMTp7bDp7NTk6e2M6WzEwODY4XX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7MTE0OntsOnsxMTc6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4ODAxXX19fX19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NTFdfX19fX19fSwxMTY6e2w6ezExMTp7bDp7MTE3OntsOnsxMTQ6e2w6ezczOntsOnsxMTA6e2w6ezExNjp7bDp7MTAxOntsOnsxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg3NTBdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbODQ1MF19fX0sMTE0OntsOnsxMTE6e2w6ezEwMDp7bDp7MTE3OntsOns5OTp7bDp7MTE2OntsOns1OTp7YzpbODcyMF19fX19fX19fX19fX19fX0sMTE3OntsOnsxMTA6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezY3OntsOnsxMDg6e2w6ezExMTp7bDp7OTk6e2w6ezEwNzp7bDp7MTE5OntsOnsxMDU6e2w6ezExNTp7bDp7MTAxOntsOns2Nzp7bDp7MTExOntsOnsxMTA6e2w6ezExNjp7bDp7MTExOntsOnsxMTc6e2w6ezExNDp7bDp7NzM6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc1NV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwNzk5XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NjZdfX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg5MTVdfSw2Nzp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg3ODFdfX19fX19fX19fX19fSw2ODp7bDp7Njg6e2w6ezU5OntjOls4NTE3XX0sMTExOntsOnsxMTY6e2w6ezExNDp7bDp7OTc6e2w6ezEwNDp7bDp7MTAwOntsOns1OTp7YzpbMTA1MTNdfX19fX19fX19fX19fX19LDc0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyNl19fX19fX19LDgzOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyOV19fX19fX19LDkwOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzOV19fX19fX19LDk3OntsOnsxMDM6e2w6ezEwMzp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4MjI1XX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MDldfX19fX0sMTE1OntsOnsxMDQ6e2w6ezExODp7bDp7NTk6e2M6WzEwOTgwXX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyNzBdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNDRdfX19fX0sMTAxOntsOnsxMDg6e2w6ezU5OntjOls4NzExXX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6WzkxNl19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzFdfX19fX0sMTA1OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7MTA1OntsOnsxMTY6e2w6ezEwNTp7bDp7OTk6e2w6ezk3OntsOnsxMDg6e2w6ezY1OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzE4MF19fX19fX19fX19fSw2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls3MjldfX19LDExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns2NTp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOls3MzNdfX19fX19fX19fX19fX19fX19fX19fX0sNzE6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbOTZdfX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzczMl19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA5OntsOnsxMTE6e2w6ezExMDp7bDp7MTAwOntsOns1OTp7YzpbODkwMF19fX19fX19fX19fSwxMDI6e2w6ezEwMjp7bDp7MTAxOntsOnsxMTQ6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwNTp7bDp7OTc6e2w6ezEwODp7bDp7Njg6e2w6ezU5OntjOls4NTE4XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyM119fX19fSwxMTY6e2w6ezU5OntjOlsxNjhdfSw2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4NDEyXX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc4NF19fX19fX19fX19fX19LDExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns2Nzp7bDp7MTExOntsOnsxMTA6e2w6ezExNjp7bDp7MTExOntsOnsxMTc6e2w6ezExNDp7bDp7NzM6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc1MV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzE2OF19fX0sMTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU5XX19fX19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU2XX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjYwXX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOlsxMDk4MF19fX19fX19fX19fX19LDExMTp7bDp7MTEwOntsOnsxMDM6e2w6ezc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzJdfX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjM0XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzM119fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY1OF19fX19fX19fX19fSw4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4ODcyXX19fX19fX19fX19fX19fX19LDg1OntsOnsxMTI6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU3XX19fX19fX19fX19LDY4OntsOnsxMTE6e2w6ezExOTp7bDp7MTEwOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY2MV19fX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTA1OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NzQxXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk1XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUxNV19fX19fX19LDg1OntsOnsxMTI6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjkzXX19fX19fX19fX19fX19fX19fX19fX19fX0sNjY6e2w6ezExNDp7bDp7MTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6Wzc4NV19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7ODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3Nl19fX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA1OTBdfX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MzddfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTgyXX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA1OTFdfX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDFdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTgzXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjhdfSw2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxNV19fX19fX19fX19fX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY1OV19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NjddfX19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMjcyXX19fX19fX19fX19fX0sNjk6e2w6ezc4OntsOns3MTp7bDp7NTk6e2M6WzMzMF19fX19fSw4NDp7bDp7NzI6e2w6ezU5OntjOlsyMDhdfX0sYzpbMjA4XX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMDFdfX0sYzpbMjAxXX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyODJdfX19fX19fX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzIwMl19fSxjOlsyMDJdfX19fX0sMTIxOntsOns1OTp7YzpbMTA2OV19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMjc4XX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzJdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzIwMF19fSxjOlsyMDBdfX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDk6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzEyXX19fX19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzI3NF19fX19fX19LDExMjp7bDp7MTE2OntsOnsxMjE6e2w6ezgzOntsOnsxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7ODM6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NzIzXX19fX19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTIxOntsOns4Mzp7bDp7MTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezgzOntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns1OTp7YzpbOTY0M119fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjgwXX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxMjRdfX19fX19fSwxMTI6e2w6ezExNTp7bDp7MTA1OntsOnsxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbOTE3XX19fX19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDg2OV19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4NzcwXX19fX19fX19fX19fX19fSwxMDU6e2w6ezEwODp7bDp7MTA1OntsOns5ODp7bDp7MTE0OntsOnsxMDU6e2w6ezExNzp7bDp7MTA5OntsOns1OTp7YzpbODY1Ml19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5Nl19fX19fSwxMDU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwODY3XX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6WzkxOV19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjAzXX19LGM6WzIwM119fX19fSwxMjA6e2w6ezEwNTp7bDp7MTE1OntsOnsxMTY6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MDddfX19fX19fX19LDExMjp7bDp7MTExOntsOnsxMTA6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwNTp7bDp7OTc6e2w6ezEwODp7bDp7Njk6e2w6ezU5OntjOls4NTE5XX19fX19fX19fX19fX19fX19fX19fX19fX0sNzA6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDYwXX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDczXX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDg6e2w6ezEwMTp7bDp7MTAwOntsOns4Mzp7bDp7MTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezgzOntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns1OTp7YzpbOTcyNF19fX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOnsxMTQ6e2w6ezEyMTp7bDp7ODM6e2w6ezEwOTp7bDp7OTc6e2w6ezEwODp7bDp7MTA4OntsOns4Mzp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2NDJdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyNV19fX19fSwxMTQ6e2w6ezY1OntsOnsxMDg6e2w6ezEwODp7bDp7NTk6e2M6Wzg3MDRdfX19fX19fX19LDExNzp7bDp7MTE0OntsOnsxMDU6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTY6e2w6ezExNDp7bDp7MTAyOntsOns1OTp7YzpbODQ5N119fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0OTddfX19fX19fX19LDcxOntsOns3NDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwMjddfX19fX19fSw4NDp7bDp7NTk6e2M6WzYyXX19LGM6WzYyXX0sOTc6e2w6ezEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzkxNV19LDEwMDp7bDp7NTk6e2M6Wzk4OF19fX19fX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjg2XX19fX19fX19fX19LDk5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsyOTBdfX19fX19fX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzI4NF19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNDNdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzI4OF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDc0XX19fX19LDEwMzp7bDp7NTk6e2M6Wzg5MjFdfX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxMjZdfX19fX19fSwxMTQ6e2w6ezEwMTp7bDp7OTc6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MDVdfSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6Wzg5MjNdfX19fX19fX19fX19fX19fX19fSw3MDp7bDp7MTE3OntsOnsxMDg6e2w6ezEwODp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgwN119fX19fX19fX19fX19fX19fX19LDcxOntsOnsxMTQ6e2w6ezEwMTp7bDp7OTc6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOlsxMDkxNF19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODIzXX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwODc4XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgxOV19fX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NzBdfX19fX19fSwxMTY6e2w6ezU5OntjOls4ODExXX19fX19LDcyOntsOns2NTp7bDp7ODI6e2w6ezY4OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA2Nl19fX19fX19fX19fSw5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7MTA3OntsOns1OTp7YzpbNzExXX19fX19fX0sMTE2OntsOns1OTp7YzpbOTRdfX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzI5Ml19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOls4NDYwXX19fX19LDEwNTp7bDp7MTA4OntsOns5ODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4NDU5XX19fX19fX19fX19fX19fX19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOls4NDYxXX19fX19LDExNDp7bDp7MTA1OntsOnsxMjI6e2w6ezExMTp7bDp7MTEwOntsOnsxMTY6e2w6ezk3OntsOnsxMDg6e2w6ezc2OntsOnsxMDU6e2w6ezExMDp7bDp7MTAxOntsOns1OTp7YzpbOTQ3Ml19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ1OV19fX19fSwxMTY6e2w6ezExNDp7bDp7MTExOntsOnsxMDc6e2w6ezU5OntjOlsyOTRdfX19fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezExMjp7bDp7Njg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezcyOntsOnsxMTc6e2w6ezEwOTp7bDp7MTEyOntsOns1OTp7YzpbODc4Ml19fX19fX19fX19fX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzgzXX19fX19fX19fX19fX19fX19fX0sNzM6e2w6ezY5OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA0NV19fX19fX19LDc0OntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMzA2XX19fX19fX19fSw3OTp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwMjVdfX19fX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMDVdfX0sYzpbMjA1XX19fX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjA2XX19LGM6WzIwNl19fX19fSwxMjE6e2w6ezU5OntjOlsxMDQ4XX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlszMDRdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NjVdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzIwNF19fSxjOlsyMDRdfX19fX19fX19LDEwOTp7bDp7NTk6e2M6Wzg0NjVdfSw5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzI5OF19fX19fSwxMDM6e2w6ezEwNTp7bDp7MTEwOntsOns5Nzp7bDp7MTE0OntsOnsxMjE6e2w6ezczOntsOns1OTp7YzpbODUyMF19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwODp7bDp7MTA1OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg2NThdfX19fX19fX19fX19fSwxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NDhdfSwxMDE6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc0N119fX19fX19fX0sMTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTA1OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg4OThdfX19fX19fX19fX19fX19fX19fX19LDExODp7bDp7MTA1OntsOnsxMTU6e2w6ezEwNTp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns2Nzp7bDp7MTExOntsOnsxMDk6e2w6ezEwOTp7bDp7OTc6e2w6ezU5OntjOls4MjkxXX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4MjkwXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszMDJdfX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyOF19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTIxXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ2NF19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjk2XX19fX19fX19fX19LDExNzp7bDp7MTA3OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzMF19fX19fX19LDEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjA3XX19LGM6WzIwN119fX19fX19LDc0OntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMzA4XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA0OV19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3N119fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTI5XX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTczXX19fX19LDEwMTp7bDp7MTE0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzMl19fX19fX19fX19fSwxMTc6e2w6ezEwNzp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwMjhdfX19fX19fX19fX0sNzU6e2w6ezcyOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA2MV19fX19fX19LDc0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzNl19fX19fX19LDk3OntsOnsxMTI6e2w6ezExMjp7bDp7OTc6e2w6ezU5OntjOls5MjJdfX19fX19fX19LDk5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszMTBdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNTBdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzhdfX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEzMF19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk3NF19fX19fX19fX0sNzY6e2w6ezc0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzM119fX19fX19LDg0OntsOns1OTp7YzpbNjBdfX0sYzpbNjBdfSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlszMTNdfX19fX19fX19LDEwOTp7bDp7OTg6e2w6ezEwMDp7bDp7OTc6e2w6ezU5OntjOls5MjNdfX19fX19fX19LDExMDp7bDp7MTAzOntsOns1OTp7YzpbMTAyMThdfX19fX0sMTEyOntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOnsxMTY6e2w6ezExNDp7bDp7MTAyOntsOns1OTp7YzpbODQ2Nl19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MDZdfX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszMTddfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMxNV19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA1MV19fX19fSwxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns2NTp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns2Njp7bDp7MTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwNzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOlsxMDIxNl19fX19fX19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkyXX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4Njc2XX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NDZdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw2Nzp7bDp7MTAxOntsOnsxMDU6e2w6ezEwODp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg5NjhdfX19fX19fX19fX19fX19LDY4OntsOnsxMTE6e2w6ezExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns2Njp7bDp7MTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwNzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOlsxMDIxNF19fX19fX19fX19fX19fX19fX19fX19fSwxMTk6e2w6ezExMDp7bDp7ODQ6e2w6ezEwMTp7bDp7MTAxOntsOns4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTkzXX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4NjQzXX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4NV19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNzA6e2w6ezEwODp7bDp7MTExOntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg5NzBdfX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTZdfX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3NF19fX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4ODY3XX0sNjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MTJdfX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4Nl19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4ODJdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNzAzXX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg4NF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODU6e2w6ezExMjp7bDp7Njg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA1NzddfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5Ml19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODYzOV19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODRdfX19fX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4NjM2XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3OF19fX19fX19fX19fX19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU2XX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY2MF19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTE1OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezcxOntsOnsxMTQ6e2w6ezEwMTp7bDp7OTc6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTIyXX19fX19fX19fX19fX19fX19fX19fX19fX0sNzA6e2w6ezExNzp7bDp7MTA4OntsOnsxMDg6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MDZdfX19fX19fX19fX19fX19fX19fSw3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODgyMl19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOlsxMDkxM119fX19fX19fX0sODM6e2w6ezEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTE2OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDg3N119fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MThdfX19fX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzldfX19fX0sMTA4OntsOns1OTp7YzpbODkyMF19LDEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjY2XX19fX19fX19fX19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlszMTldfX19fX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIyOV19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMwXX19fX19fX19fX19fX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzMl19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjM0XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzNdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEzMV19fX19fSwxMTk6e2w6ezEwMTp7bDp7MTE0OntsOns3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MDFdfX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYwMF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDY2XX19fX19LDEwNDp7bDp7NTk6e2M6Wzg2MjRdfX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzMyMV19fX19fX19fX19fSwxMTY6e2w6ezU5OntjOls4ODEwXX19fX19LDc3OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA1MDFdfX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNTJdfX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTE3OntsOnsxMDk6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODI4N119fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0OTldfX19fX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODBdfX19fX0sMTA1OntsOnsxMTA6e2w6ezExNzp7bDp7MTE1OntsOns4MDp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjNdfX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEzMl19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0OTldfX19fX19fSwxMTc6e2w6ezU5OntjOls5MjRdfX19fX0sNzg6e2w6ezc0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzNF19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzMyM119fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszMjddfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMyNV19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA1M119fX19fSwxMDE6e2w6ezEwMzp7bDp7OTc6e2w6ezExNjp7bDp7MTA1OntsOnsxMTg6e2w6ezEwMTp7bDp7Nzc6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezExNzp7bDp7MTA5OntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMDNdfX19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNDp7bDp7MTA1OntsOns5OTp7bDp7MTA3OntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMDNdfX19fX19fX19fX19fX19LDExMDp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4MjAzXX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7MTE0OntsOnsxMjE6e2w6ezg0OntsOnsxMDQ6e2w6ezEwNTp7bDp7MTEwOntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMDNdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTE2OntsOnsxMDE6e2w6ezEwMDp7bDp7NzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg4MTFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezc2OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODgxMF19fX19fX19fX19fX19fX19fX19fX19fX19LDExOTp7bDp7NzY6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOlsxMF19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDgxXX19fX19LDExMTp7bDp7NjY6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTA3OntsOns1OTp7YzpbODI4OF19fX19fX19fX19fSwxMTA6e2w6ezY2OntsOnsxMTQ6e2w6ezEwMTp7bDp7OTc6e2w6ezEwNzp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMzp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOlsxNjBdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOls4NDY5XX19fX19LDExNjp7bDp7NTk6e2M6WzEwOTg4XX0sNjc6e2w6ezExMTp7bDp7MTEwOntsOnsxMDM6e2w6ezExNDp7bDp7MTE3OntsOnsxMDE6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODgwMl19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7Njc6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOls4ODEzXX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE2OntsOnsxMDU6e2w6ezk5OntsOns5Nzp7bDp7MTA4OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg3NDJdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNjk6e2w6ezEwODp7bDp7MTAxOntsOnsxMDk6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzEzXX19fX19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODAwXX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzAsODI0XX19fX19fX19fX19fX19fX19fX0sMTIwOntsOnsxMDU6e2w6ezExNTp7bDp7MTE2OntsOnsxMTU6e2w6ezU5OntjOls4NzA4XX19fX19fX19fX19fX0sNzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg4MTVdfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODE3XX19fX19fX19fX19LDcwOntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODA3LDgyNF19fX19fX19fX19fX19fX19fX19LDcxOntsOnsxMTQ6e2w6ezEwMTp7bDp7OTc6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4ODExLDgyNF19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODI1XX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwODc4LDgyNF19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MjFdfX19fX19fX19fX19fX19fX19fX19fX19fSw3Mjp7bDp7MTE3OntsOnsxMDk6e2w6ezExMjp7bDp7Njg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezcyOntsOnsxMTc6e2w6ezEwOTp7bDp7MTEyOntsOns1OTp7YzpbODc4Miw4MjRdfX19fX19fX19fX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc4Myw4MjRdfX19fX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7ODQ6e2w6ezExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODkzOF19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA3MDMsODI0XX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODk0MF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTE1OntsOns1OTp7YzpbODgxNF19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MTZdfX19fX19fX19fX0sNzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg4MjRdfX19fX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODgxMCw4MjRdfX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA4NzcsODI0XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgyMF19fX19fX19fX19fX19fX19fX19LDc4OntsOnsxMDE6e2w6ezExNTp7bDp7MTE2OntsOnsxMDE6e2w6ezEwMDp7bDp7NzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6WzEwOTE0LDgyNF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOlsxMDkxMyw4MjRdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODA6e2w6ezExNDp7bDp7MTAxOntsOns5OTp7bDp7MTAxOntsOnsxMDA6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODgzMl19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwOTI3LDgyNF19fX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg5MjhdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7Njk6e2w6ezEwODp7bDp7MTAxOntsOnsxMDk6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzE2XX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezg0OntsOnsxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MzldfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNzA0LDgyNF19fX19fX19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg5NDFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4Mzp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7ODM6e2w6ezExNzp7bDp7OTg6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ3LDgyNF19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg5MzBdfX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODg0OCw4MjRdfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4OTMxXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE3OntsOns5ODp7bDp7MTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MzQsODQwMl19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4NDBdfX19fX19fX19fX19fX19fX19fSw5OTp7bDp7OTk6e2w6ezEwMTp7bDp7MTAxOntsOnsxMDA6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MzNdfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDkyOCw4MjRdfX19fX19fX19fX0sODM6e2w6ezEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTE2OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4OTI5XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgzMSw4MjRdfX19fX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDE6e2w6ezExNDp7bDp7MTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MzUsODQwMl19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4NDFdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4NzY5XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc3Ml19fX19fX19fX19fSw3MDp7bDp7MTE3OntsOnsxMDg6e2w6ezEwODp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc3NV19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4Nzc3XX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTA1OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NzQwXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NzddfX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzIwOV19fSxjOlsyMDldfX19fX19fX19LDExNzp7bDp7NTk6e2M6WzkyNV19fX19fSw3OTp7bDp7Njk6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlszMzhdfX19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIxMV19fSxjOlsyMTFdfX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyMTJdfX0sYzpbMjEyXX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNTRdfX19fX0sMTAwOntsOns5ODp7bDp7MTA4OntsOns5Nzp7bDp7OTk6e2w6ezU5OntjOlszMzZdfX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODJdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzIxMF19fSxjOlsyMTBdfX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlszMzJdfX19fX19fSwxMDE6e2w6ezEwMzp7bDp7OTc6e2w6ezU5OntjOls5MzddfX19fX19fSwxMDU6e2w6ezk5OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbOTI3XX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEzNF19fX19fX19LDExMjp7bDp7MTAxOntsOnsxMTA6e2w6ezY3OntsOnsxMTc6e2w6ezExNDp7bDp7MTA4OntsOnsxMjE6e2w6ezY4OntsOnsxMTE6e2w6ezExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns4MTp7bDp7MTE3OntsOnsxMTE6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbODIyMF19fX19fX19fX19fX19fX19fX19fX19fSw4MTp7bDp7MTE3OntsOnsxMTE6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbODIxNl19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOns1OTp7YzpbMTA4MzZdfX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk3OF19fX19fSwxMDg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6WzIxNl19fSxjOlsyMTZdfX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjEzXX19LGM6WzIxM119fX19fSwxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbMTA4MDddfX19fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzIxNF19fSxjOlsyMTRdfX19fX0sMTE4OntsOnsxMDE6e2w6ezExNDp7bDp7NjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4MjU0XX19fX19LDExNDp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls5MTgyXX19fSwxMDc6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbOTE0MF19fX19fX19fX19fX19fX0sODA6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwNDp7bDp7MTAxOntsOnsxMTU6e2w6ezEwNTp7bDp7MTE1OntsOns1OTp7YzpbOTE4MF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgwOntsOns5Nzp7bDp7MTE0OntsOnsxMTY6e2w6ezEwNTp7bDp7OTc6e2w6ezEwODp7bDp7Njg6e2w6ezU5OntjOls4NzA2XX19fX19fX19fX19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA1NV19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4M119fX19fSwxMDQ6e2w6ezEwNTp7bDp7NTk6e2M6WzkzNF19fX19fSwxMDU6e2w6ezU5OntjOls5MjhdfX19LDEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezc3OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxNzddfX19fX19fX19fX19fX19fX0sMTExOntsOnsxMDU6e2w6ezExMDp7bDp7OTk6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTEyOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg0NjBdfX19fX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOls4NDczXX19fX19fX0sMTE0OntsOns1OTp7YzpbMTA5MzldfSwxMDE6e2w6ezk5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4ODI2XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA5MjddfX19fX19fX19fX0sODM6e2w6ezEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTE2OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODI4XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgzMF19fX19fX19fX19fX19fX19fX19fX19fSwxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbODI0M119fX19fX19LDExMTp7bDp7MTAwOntsOnsxMTc6e2w6ezk5OntsOnsxMTY6e2w6ezU5OntjOls4NzE5XX19fX19fX19fSwxMTI6e2w6ezExMTp7bDp7MTE0OntsOnsxMTY6e2w6ezEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4NzU5XX0sOTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg3MzNdfX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTc5XX19fX19LDEwNTp7bDp7NTk6e2M6WzkzNl19fX19fX19LDgxOntsOns4NTp7bDp7Nzk6e2w6ezg0OntsOns1OTp7YzpbMzRdfX0sYzpbMzRdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODRdfX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NzRdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODBdfX19fX19fX19LDgyOntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA1MTJdfX19fX19fX19LDY5OntsOns3MTp7bDp7NTk6e2M6WzE3NF19fSxjOlsxNzRdfX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzM0MF19fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOlsxMDIxOV19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MDhdfSwxMTY6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTE4XX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM0NF19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzQyXX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDU2XX19fX19LDEwMTp7bDp7NTk6e2M6Wzg0NzZdfSwxMTg6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7Njk6e2w6ezEwODp7bDp7MTAxOntsOnsxMDk6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzE1XX19fX19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezk4OntsOnsxMTQ6e2w6ezEwNTp7bDp7MTE3OntsOnsxMDk6e2w6ezU5OntjOls4NjUxXX19fX19fX19fX19fX19fX19fX19fX19LDg1OntsOnsxMTI6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMDg6e2w6ezEwNTp7bDp7OTg6e2w6ezExNDp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7NTk6e2M6WzEwNjA3XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NzZdfX19fX0sMTA0OntsOnsxMTE6e2w6ezU5OntjOls5MjldfX19fX0sMTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns2Njp7bDp7MTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwNzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOlsxMDIxN119fX19fX19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk0XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4Njc3XX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjQ0XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDY3OntsOnsxMDE6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbODk2OV19fX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY2OntsOnsxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzEwMjE1XX19fX19fX19fX19fX19fX19fX19fX19LDExOTp7bDp7MTEwOntsOns4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODldfX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDJdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTgxXX19fX19fX19fX19fX19fX19fX19fX19fX19fSw3MDp7bDp7MTA4OntsOnsxMTE6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODk3MV19fX19fX19fX19fSw4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4ODY2XX0sNjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MTRdfX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4N119fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4ODNdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNzA0XX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg4NV19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODU6e2w6ezExMjp7bDp7Njg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA1NzVdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4OF19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODYzOF19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODBdfX19fX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4NjQwXX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3OV19fX19fX19fX19fX19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU4XX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NzddfX19fX0sMTE3OntsOnsxMTA6e2w6ezEwMDp7bDp7NzM6e2w6ezEwOTp7bDp7MTEyOntsOnsxMDg6e2w6ezEwNTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDYwOF19fX19fX19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NjddfX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NzVdfX19fX0sMTA0OntsOns1OTp7YzpbODYyNV19fX19fSwxMTc6e2w6ezEwODp7bDp7MTAxOntsOns2ODp7bDp7MTAxOntsOnsxMDg6e2w6ezk3OntsOnsxMjE6e2w6ezEwMTp7bDp7MTAwOntsOns1OTp7YzpbMTA3NDBdfX19fX19fX19fX19fX19fX19fX19fX0sODM6e2w6ezcyOntsOns2Nzp7bDp7NzI6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDY1XX19fX19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA2NF19fX19fX19LDc5OntsOns3MDp7bDp7ODQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDY4XX19fX19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzM0Nl19fX19fX19fX19fSw5OTp7bDp7NTk6e2M6WzEwOTQwXX0sOTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszNTJdfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzM1MF19fX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMzQ4XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA1N119fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4Nl19fX19fSwxMDQ6e2w6ezExMTp7bDp7MTE0OntsOnsxMTY6e2w6ezY4OntsOnsxMTE6e2w6ezExOTp7bDp7MTEwOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5NV19fX19fX19fX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5Ml19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk0XX19fX19fX19fX19fX19fX19fX19fSw4NTp7bDp7MTEyOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5M119fX19fX19fX19fX19fX19fX19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzkzMV19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezY3OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODcyOF19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEzOF19fX19fX19LDExMzp7bDp7MTE0OntsOnsxMTY6e2w6ezU5OntjOls4NzMwXX19fX19LDExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns1OTp7YzpbOTYzM119LDczOntsOnsxMTA6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODg1MV19fX19fX19fX19fX19fX19fX19fX19fX19LDgzOntsOnsxMTc6e2w6ezk4OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODg0N119LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4NDldfX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODg0OF19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4NTBdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDg1OntsOnsxMTA6e2w6ezEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4ODUyXX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODJdfX19fX19fSwxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4OTAyXX19fX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6Wzg5MTJdfSwxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODkxMl19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MzhdfX19fX19fX19fX19fX19fX19fSw5OTp7bDp7OTk6e2w6ezEwMTp7bDp7MTAxOntsOnsxMDA6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjddfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDkyOF19fX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MjldfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODMxXX19fX19fX19fX19fX19fX19fX19fSwxMDQ6e2w6ezg0OntsOnsxMDQ6e2w6ezk3OntsOnsxMTY6e2w6ezU5OntjOls4NzE1XX19fX19fX19fX19fX0sMTA5OntsOns1OTp7YzpbODcyMV19fX0sMTEyOntsOns1OTp7YzpbODkxM119LDEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNV19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MzldfX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4OTEzXX19fX19fX19fX19fX0sODQ6e2w6ezcyOntsOns3OTp7bDp7ODI6e2w6ezc4OntsOns1OTp7YzpbMjIyXX19LGM6WzIyMl19fX19fX19LDgyOntsOns2NTp7bDp7Njg6e2w6ezY5OntsOns1OTp7YzpbODQ4Ml19fX19fX19fX0sODM6e2w6ezcyOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzNV19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDYyXX19fX19fX0sOTc6e2w6ezk4OntsOns1OTp7YzpbOV19fX0sMTE3OntsOns1OTp7YzpbOTMyXX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM1Nl19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzU0XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDU4XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDg3XX19fX19LDEwNDp7bDp7MTAxOntsOnsxMTQ6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTE6e2w6ezExNDp7bDp7MTAxOntsOns1OTp7YzpbODc1Nl19fX19fX19fX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5MjBdfX19fX19fSwxMDU6e2w6ezk5OntsOnsxMDc6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODI4Nyw4MjAyXX19fX19fX19fX19fX19fSwxMTA6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwMV19fX19fX19fX19fX19fX19fSwxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4NzY0XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc3MV19fX19fX19fX19fSw3MDp7bDp7MTE3OntsOnsxMDg6e2w6ezEwODp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc3M119fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4Nzc2XX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEzOV19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMTI6e2w6ezEwODp7bDp7MTAxOntsOns2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4NDExXX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4M119fX19fSwxMTY6e2w6ezExNDp7bDp7MTExOntsOnsxMDc6e2w6ezU5OntjOlszNThdfX19fX19fX19fX19fSw4NTp7bDp7OTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMjE4XX19LGM6WzIxOF19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwN119LDExMTp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA1NjldfX19fX19fX19fX19fX19LDk4OntsOnsxMTQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM4XX19fX19LDEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlszNjRdfX19fX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzIxOV19fSxjOlsyMTldfX19fX0sMTIxOntsOns1OTp7YzpbMTA1OV19fX19fSwxMDA6e2w6ezk4OntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzM2OF19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4OF19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjE3XX19LGM6WzIxN119fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzM2Ml19fX19fX19fX0sMTEwOntsOnsxMDA6e2w6ezEwMTp7bDp7MTE0OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzk1XX19fX19LDExNDp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls5MTgzXX19fSwxMDc6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbOTE0MV19fX19fX19fX19fX19fX0sODA6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwNDp7bDp7MTAxOntsOnsxMTU6e2w6ezEwNTp7bDp7MTE1OntsOns1OTp7YzpbOTE4MV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMDU6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODg5OV19LDgwOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg0Nl19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszNzBdfX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0MF19fX19fX19LDExMjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTNdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTE0XX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjQ1XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDY4OntsOnsxMTE6e2w6ezExOTp7bDp7MTEwOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5N119fX19fX19fX19fX19fX19fX19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMDg6e2w6ezEwNTp7bDp7OTg6e2w6ezExNDp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7NTk6e2M6WzEwNjA2XX19fX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjldfSw2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxM119fX19fX19fX19fX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY1N119fX19fX19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjYxXX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDE6e2w6ezExNDp7bDp7NzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk4XX19fX19fX19fX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTldfX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTA1OntsOns1OTp7YzpbOTc4XX0sMTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzkzM119fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzM2Nl19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTg0XX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlszNjBdfX19fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzIyMF19fSxjOlsyMjBdfX19fX19fSw4Njp7bDp7Njg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzVdfX19fX19fX19LDk4OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA5ODddfX19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA0Ml19fX19fSwxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzNdfSwxMDg6e2w6ezU5OntjOlsxMDk4Ml19fX19fX19fX19fSwxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4OTddfX19LDExNDp7bDp7OTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4MjE0XX19fX19fX0sMTE2OntsOns1OTp7YzpbODIxNF19LDEwNTp7bDp7OTk6e2w6ezk3OntsOnsxMDg6e2w6ezY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODczOV19fX19fX19LDc2OntsOnsxMDU6e2w6ezExMDp7bDp7MTAxOntsOns1OTp7YzpbMTI0XX19fX19fX19fSw4Mzp7bDp7MTAxOntsOnsxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezk3OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTAwNzJdfX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODc2OF19fX19fX19fX19fX19fX19fX19fX0sMTIxOntsOns4NDp7bDp7MTA0OntsOnsxMDU6e2w6ezExMDp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4MjAyXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODldfX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0MV19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4NV19fX19fX19LDExODp7bDp7MTAwOntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4ODc0XX19fX19fX19fX19fX0sODc6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszNzJdfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDM6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4OTZdfX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDkwXX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDJdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODZdfX19fX19fX19LDg4OntsOnsxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA5MV19fX19fSwxMDU6e2w6ezU5OntjOls5MjZdfX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDNdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODddfX19fX19fX19LDg5OntsOns2NTp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNzFdfX19fX19fSw3Mzp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwMzFdfX19fX19fSw4NTp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNzBdfX19fX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMjFdfX0sYzpbMjIxXX19fX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMzc0XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA2N119fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA5Ml19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQ0XX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTg4XX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzM3Nl19fX19fX19fX0sOTA6e2w6ezcyOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA0Nl19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzM3N119fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszODFdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNDddfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzM3OV19fX19fX19LDEwMTp7bDp7MTE0OntsOnsxMTE6e2w6ezg3OntsOnsxMDU6e2w6ezEwMDp7bDp7MTE2OntsOnsxMDQ6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwM119fX19fX19fX19fX19fX19fX19fX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5MThdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6Wzg0ODhdfX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0ODRdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODldfX19fX19fX19LDk3OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMjVdfX0sYzpbMjI1XX19fX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjU5XX19fX19fX19fX19LDk5OntsOns1OTp7YzpbODc2Nl19LDY5OntsOns1OTp7YzpbODc2Niw4MTldfX19LDEwMDp7bDp7NTk6e2M6Wzg3NjddfX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzIyNl19fSxjOlsyMjZdfX19fX0sMTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzE4MF19fSxjOlsxODBdfX19fX0sMTIxOntsOns1OTp7YzpbMTA3Ml19fX19fSwxMDE6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlsyMzBdfX0sYzpbMjMwXX19fX19fX0sMTAyOntsOns1OTp7YzpbODI4OV19LDExNDp7bDp7NTk6e2M6WzEyMDA5NF19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjI0XX19LGM6WzIyNF19fX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE1OntsOnsxMjE6e2w6ezEwOTp7bDp7NTk6e2M6Wzg1MDFdfX19fX19fX19LDExMjp7bDp7MTA0OntsOns1OTp7YzpbODUwMV19fX19fX19LDExMjp7bDp7MTA0OntsOns5Nzp7bDp7NTk6e2M6Wzk0NV19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzI1N119fX19fSwxMDg6e2w6ezEwMzp7bDp7NTk6e2M6WzEwODE1XX19fX19fX0sMTEyOntsOns1OTp7YzpbMzhdfX0sYzpbMzhdfX19LDExMDp7bDp7MTAwOntsOns1OTp7YzpbODc0M119LDk3OntsOnsxMTA6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODM3XX19fX19fX0sMTAwOntsOns1OTp7YzpbMTA4NDRdfX19LDExNTp7bDp7MTA4OntsOnsxMTE6e2w6ezExMjp7bDp7MTAxOntsOns1OTp7YzpbMTA4NDBdfX19fX19fX19fX0sMTE4OntsOns1OTp7YzpbMTA4NDJdfX19fX0sMTAzOntsOns1OTp7YzpbODczNl19LDEwMTp7bDp7NTk6e2M6WzEwNjYwXX19fSwxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3MzZdfX19fX0sMTA5OntsOnsxMTU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3MzddfSw5Nzp7bDp7OTc6e2w6ezU5OntjOlsxMDY2NF19fX0sOTg6e2w6ezU5OntjOlsxMDY2NV19fX0sOTk6e2w6ezU5OntjOlsxMDY2Nl19fX0sMTAwOntsOns1OTp7YzpbMTA2NjddfX19LDEwMTp7bDp7NTk6e2M6WzEwNjY4XX19fSwxMDI6e2w6ezU5OntjOlsxMDY2OV19fX0sMTAzOntsOns1OTp7YzpbMTA2NzBdfX19LDEwNDp7bDp7NTk6e2M6WzEwNjcxXX19fX19fX19fX19LDExNDp7bDp7MTE2OntsOns1OTp7YzpbODczNV19LDExODp7bDp7OTg6e2w6ezU5OntjOls4ODk0XX0sMTAwOntsOns1OTp7YzpbMTA2NTNdfX19fX19fX19fX0sMTE1OntsOnsxMTI6e2w6ezEwNDp7bDp7NTk6e2M6Wzg3MzhdfX19fX0sMTE2OntsOns1OTp7YzpbMTk3XX19fX19LDEyMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbOTA4NF19fX19fX19fX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI2MV19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQ2XX19fX19fX0sMTEyOntsOns1OTp7YzpbODc3Nl19LDY5OntsOns1OTp7YzpbMTA4NjRdfX19LDk3OntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDg2M119fX19fX19fX0sMTAxOntsOns1OTp7YzpbODc3OF19fX0sMTA1OntsOnsxMDA6e2w6ezU5OntjOls4Nzc5XX19fX19LDExMTp7bDp7MTE1OntsOns1OTp7YzpbMzldfX19fX0sMTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbODc3Nl19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc3OF19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMjI5XX19LGM6WzIyOV19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5MF19fX19fSwxMTY6e2w6ezU5OntjOls0Ml19fX0sMTIxOntsOnsxMDk6e2w6ezExMjp7bDp7NTk6e2M6Wzg3NzZdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg3ODFdfX19fX19fX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzIyN119fSxjOlsyMjddfX19fX19fX19LDExNzp7bDp7MTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMjhdfX0sYzpbMjI4XX19fX19LDExOTp7bDp7OTk6e2w6ezExMTp7bDp7MTEwOntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1NV19fX19fX19fX19fX19LDEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDc2OV19fX19fX19fX19fSw5ODp7bDp7Nzg6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5ODldfX19fX19fSw5Nzp7bDp7OTk6e2w6ezEwNzp7bDp7OTk6e2w6ezExMTp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOls4NzgwXX19fX19fX19fSwxMDE6e2w6ezExMjp7bDp7MTE1OntsOnsxMDU6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsxMDE0XX19fX19fX19fX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNDVdfX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjVdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg5MDldfX19fX19fX19fX19fX19LDExNDp7bDp7MTE4OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4OTNdfX19fX19fSwxMTk6e2w6ezEwMTp7bDp7MTAwOntsOns1OTp7YzpbODk2NV19LDEwMzp7bDp7MTAxOntsOns1OTp7YzpbODk2NV19fX19fX19fX19fX19fX0sOTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbOTE0MV19LDExNjp7bDp7OTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbOTE0Ml19fX19fX19fX19fX19fX0sOTk6e2w6ezExMTp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOls4NzgwXX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA3M119fX19fSwxMDA6e2w6ezExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjIyXX19fX19fX19fSwxMDE6e2w6ezk5OntsOns5Nzp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4NzU3XX0sMTAxOntsOns1OTp7YzpbODc1N119fX19fX19fX19fSwxMDk6e2w6ezExMjp7bDp7MTE2OntsOnsxMjE6e2w6ezExODp7bDp7NTk6e2M6WzEwNjcyXX19fX19fX19fX19LDExMjp7bDp7MTE1OntsOnsxMDU6e2w6ezU5OntjOlsxMDE0XX19fX19fX0sMTE0OntsOnsxMTA6e2w6ezExMTp7bDp7MTE3OntsOns1OTp7YzpbODQ5Ml19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk0Nl19fX0sMTA0OntsOns1OTp7YzpbODUwMl19fX0sMTE5OntsOnsxMDE6e2w6ezEwMTp7bDp7MTEwOntsOns1OTp7YzpbODgxMl19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDk1XX19fX19LDEwNTp7bDp7MTAzOntsOns5OTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4OThdfX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbOTcxMV19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODg5OV19fX19fX19LDExMTp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzUyXX19fX19fX0sMTEyOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA3NTNdfX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbMTA3NTRdfX19fX19fX19fX19fSwxMTU6e2w6ezExMzp7bDp7OTk6e2w6ezExNzp7bDp7MTEyOntsOns1OTp7YzpbMTA3NThdfX19fX19fX19LDExNjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzk3MzNdfX19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzk2NjFdfX19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbOTY1MV19fX19fX19fX19fX19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc1Nl19fX19fX19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg5N119fX19fX19LDExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbODg5Nl19fX19fX19fX19fX19fX0sMTA3OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwNTA5XX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezk5OntsOnsxMDc6e2w6ezEwODp7bDp7MTExOntsOnsxMjI6e2w6ezEwMTp7bDp7MTEwOntsOnsxMDM6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNzMxXX19fX19fX19fX19fX19fSwxMTU6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NjQyXX19fX19fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2NTJdfSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls5NjYyXX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls5NjY2XX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6Wzk2NTZdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTA6e2w6ezEwNzp7bDp7NTk6e2M6WzkyNTFdfX19fX19fSwxMDc6e2w6ezQ5OntsOns1MDp7bDp7NTk6e2M6Wzk2MThdfX19LDUyOntsOns1OTp7YzpbOTYxN119fX19fSw1MTp7bDp7NTI6e2w6ezU5OntjOls5NjE5XX19fX19fX0sMTExOntsOns5OTp7bDp7MTA3OntsOns1OTp7YzpbOTYwOF19fX19fX19fX0sMTEwOntsOnsxMDE6e2w6ezU5OntjOls2MSw4NDIxXX0sMTEzOntsOnsxMTc6e2w6ezEwNTp7bDp7MTE4OntsOns1OTp7YzpbODgwMSw4NDIxXX19fX19fX19fX19LDExMTp7bDp7MTE2OntsOns1OTp7YzpbODk3Nl19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDddfX19fX0sMTE2OntsOns1OTp7YzpbODg2OV19LDExNjp7bDp7MTExOntsOnsxMDk6e2w6ezU5OntjOls4ODY5XX19fX19fX19fSwxMTk6e2w6ezExNjp7bDp7MTA1OntsOnsxMDE6e2w6ezU5OntjOls4OTA0XX19fX19fX19fSwxMjA6e2w6ezY4OntsOns3Njp7bDp7NTk6e2M6Wzk1NTldfX19LDgyOntsOns1OTp7YzpbOTU1Nl19fX0sMTA4OntsOns1OTp7YzpbOTU1OF19fX0sMTE0OntsOns1OTp7YzpbOTU1NV19fX19fSw3Mjp7bDp7NTk6e2M6Wzk1NTJdfSw2ODp7bDp7NTk6e2M6Wzk1NzRdfX19LDg1OntsOns1OTp7YzpbOTU3N119fX0sMTAwOntsOns1OTp7YzpbOTU3Ml19fX0sMTE3OntsOns1OTp7YzpbOTU3NV19fX19fSw4NTp7bDp7NzY6e2w6ezU5OntjOls5NTY1XX19fSw4Mjp7bDp7NTk6e2M6Wzk1NjJdfX19LDEwODp7bDp7NTk6e2M6Wzk1NjRdfX19LDExNDp7bDp7NTk6e2M6Wzk1NjFdfX19fX0sODY6e2w6ezU5OntjOls5NTUzXX0sNzI6e2w6ezU5OntjOls5NTgwXX19fSw3Njp7bDp7NTk6e2M6Wzk1NzFdfX19LDgyOntsOns1OTp7YzpbOTU2OF19fX0sMTA0OntsOns1OTp7YzpbOTU3OV19fX0sMTA4OntsOns1OTp7YzpbOTU3MF19fX0sMTE0OntsOns1OTp7YzpbOTU2N119fX19fSw5ODp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDY5N119fX19fX19LDEwMDp7bDp7NzY6e2w6ezU5OntjOls5NTU3XX19fSw4Mjp7bDp7NTk6e2M6Wzk1NTRdfX19LDEwODp7bDp7NTk6e2M6Wzk0ODhdfX19LDExNDp7bDp7NTk6e2M6Wzk0ODRdfX19fX0sMTA0OntsOns1OTp7YzpbOTQ3Ml19LDY4OntsOns1OTp7YzpbOTU3M119fX0sODU6e2w6ezU5OntjOls5NTc2XX19fSwxMDA6e2w6ezU5OntjOls5NTE2XX19fSwxMTc6e2w6ezU5OntjOls5NTI0XX19fX19LDEwOTp7bDp7MTA1OntsOnsxMTA6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg2M119fX19fX19fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODYyXX19fX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NjRdfX19fX19fX19fX0sMTE3OntsOns3Njp7bDp7NTk6e2M6Wzk1NjNdfX19LDgyOntsOns1OTp7YzpbOTU2MF19fX0sMTA4OntsOns1OTp7YzpbOTQ5Nl19fX0sMTE0OntsOns1OTp7YzpbOTQ5Ml19fX19fSwxMTg6e2w6ezU5OntjOls5NDc0XX0sNzI6e2w6ezU5OntjOls5NTc4XX19fSw3Njp7bDp7NTk6e2M6Wzk1NjldfX19LDgyOntsOns1OTp7YzpbOTU2Nl19fX0sMTA0OntsOns1OTp7YzpbOTUzMl19fX0sMTA4OntsOns1OTp7YzpbOTUwOF19fX0sMTE0OntsOns1OTp7YzpbOTUwMF19fX19fX19fX0sMTEyOntsOnsxMTQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezU5OntjOls4MjQ1XX19fX19fX19fX19LDExNDp7bDp7MTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzcyOF19fX19fX19LDExODp7bDp7OTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxNjZdfX0sYzpbMTY2XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5OTFdfX19fX0sMTAxOntsOnsxMDk6e2w6ezEwNTp7bDp7NTk6e2M6WzgyNzFdfX19fX19fSwxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjVdfSwxMDE6e2w6ezU5OntjOls4OTA5XX19fX19fX0sMTExOntsOnsxMDg6e2w6ezU5OntjOls5Ml19LDk4OntsOns1OTp7YzpbMTA2OTNdfX19LDEwNDp7bDp7MTE1OntsOnsxMTc6e2w6ezk4OntsOns1OTp7YzpbMTAxODRdfX19fX19fX19fX19fX19LDExNzp7bDp7MTA4OntsOnsxMDg6e2w6ezU5OntjOls4MjI2XX0sMTAxOntsOnsxMTY6e2w6ezU5OntjOls4MjI2XX19fX19fX19fSwxMDk6e2w6ezExMjp7bDp7NTk6e2M6Wzg3ODJdfSw2OTp7bDp7NTk6e2M6WzEwOTI2XX19fSwxMDE6e2w6ezU5OntjOls4NzgzXX0sMTEzOntsOns1OTp7YzpbODc4M119fX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNjNdfX19fX19fX19LDExMjp7bDp7NTk6e2M6Wzg3NDVdfSw5Nzp7bDp7MTEwOntsOnsxMDA6e2w6ezU5OntjOlsxMDgyMF19fX19fX19LDk4OntsOnsxMTQ6e2w6ezk5OntsOnsxMTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODI1XX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MjddfX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgyM119fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDgxNl19fX19fX19LDExNTp7bDp7NTk6e2M6Wzg3NDUsNjUwMjRdfX19fX0sMTE0OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzgyNTddfX19fX0sMTExOntsOnsxMTA6e2w6ezU5OntjOls3MTFdfX19fX19fX19LDk5OntsOns5Nzp7bDp7MTEyOntsOnsxMTU6e2w6ezU5OntjOlsxMDgyOV19fX19fSwxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjY5XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsyMzFdfX0sYzpbMjMxXX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjY1XX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezExNTp7bDp7NTk6e2M6WzEwODI4XX0sMTE1OntsOnsxMDk6e2w6ezU5OntjOlsxMDgzMl19fX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsyNjddfX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsxODRdfX0sYzpbMTg0XX19fX19LDEwOTp7bDp7MTEyOntsOnsxMTY6e2w6ezEyMTp7bDp7MTE4OntsOns1OTp7YzpbMTA2NzRdfX19fX19fX19fX0sMTEwOntsOnsxMTY6e2w6ezU5OntjOlsxNjJdfSwxMDE6e2w6ezExNDp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzE4M119fX19fX19fX19fX0sYzpbMTYyXX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDk2XX19fX19LDEwNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOTVdfX19fX0sMTAxOntsOns5OTp7bDp7MTA3OntsOns1OTp7YzpbMTAwMDNdfSwxMDk6e2w6ezk3OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwMDAzXX19fX19fX19fX19fX19fSwxMDU6e2w6ezU5OntjOls5NjddfX19fX0sMTA1OntsOnsxMTQ6e2w6ezU5OntjOls5Njc1XX0sNjk6e2w6ezU5OntjOlsxMDY5MV19fX0sOTk6e2w6ezU5OntjOls3MTBdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg3OTFdfX19fX0sMTA4OntsOnsxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg2MzRdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODYzNV19fX19fX19fX19fX19fX19fX19fX0sMTAwOntsOns4Mjp7bDp7NTk6e2M6WzE3NF19fX0sODM6e2w6ezU5OntjOls5NDE2XX19fSw5Nzp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOls4ODU5XX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6Wzg4NThdfX19fX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg2MV19fX19fX19fX19fX19fX19fSwxMDE6e2w6ezU5OntjOls4NzkxXX19fSwxMDI6e2w6ezExMDp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzY4XX19fX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDA6e2w6ezU5OntjOlsxMDk5MV19fX19fX19LDExNTp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA2OTBdfX19fX19fX19fX19fSwxMDg6e2w6ezExNzp7bDp7OTg6e2w6ezExNTp7bDp7NTk6e2M6Wzk4MjddfSwxMTc6e2w6ezEwNTp7bDp7MTE2OntsOns1OTp7YzpbOTgyN119fX19fX19fX19fX19fX0sMTExOntsOnsxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbNThdfSwxMDE6e2w6ezU5OntjOls4Nzg4XX0sMTEzOntsOns1OTp7YzpbODc4OF19fX19fX19fX19fSwxMDk6e2w6ezEwOTp7bDp7OTc6e2w6ezU5OntjOls0NF19LDExNjp7bDp7NTk6e2M6WzY0XX19fX19fX0sMTEyOntsOns1OTp7YzpbODcwNV19LDEwMjp7bDp7MTEwOntsOns1OTp7YzpbODcyOF19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTA5OntsOnsxMDE6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODcwNV19fX19fX19fX0sMTIwOntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg0NTBdfX19fX19fX19fX19fX19LDExMDp7bDp7MTAzOntsOns1OTp7YzpbODc3M119LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDg2MV19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NTBdfX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQ4XX19fSwxMTQ6e2w6ezExMTp7bDp7MTAwOntsOns1OTp7YzpbODcyMF19fX19fX19LDEyMTp7bDp7NTk6e2M6WzE2OV19LDExNTp7bDp7MTE0OntsOns1OTp7YzpbODQ3MV19fX19fX0sYzpbMTY5XX19fX19LDExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYyOV19fX19fX19LDExMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOlsxMDAwN119fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTkyXX19fX19LDExNzp7bDp7OTg6e2w6ezU5OntjOlsxMDk1OV19LDEwMTp7bDp7NTk6e2M6WzEwOTYxXX19fX19LDExMjp7bDp7NTk6e2M6WzEwOTYwXX0sMTAxOntsOns1OTp7YzpbMTA5NjJdfX19fX19fX19LDExNjp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5NDNdfX19fX19fX19LDExNzp7bDp7MTAwOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTUyXX19fSwxMTQ6e2w6ezU5OntjOlsxMDU0OV19fX19fX19fX19fSwxMDE6e2w6ezExMjp7bDp7MTE0OntsOns1OTp7YzpbODkyNl19fX19fSwxMTU6e2w6ezk5OntsOns1OTp7YzpbODkyN119fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYzMF19LDExMjp7bDp7NTk6e2M6WzEwNTU3XX19fX19fX19fX19LDExMjp7bDp7NTk6e2M6Wzg3NDZdfSw5ODp7bDp7MTE0OntsOns5OTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODI0XX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MjJdfX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgyNl19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4ODQ1XX19fX19fX0sMTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDgyMV19fX19fSwxMTU6e2w6ezU5OntjOls4NzQ2LDY1MDI0XX19fX19LDExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYzMV19LDEwOTp7bDp7NTk6e2M6WzEwNTU2XX19fX19fX19fSwxMDg6e2w6ezEyMTp7bDp7MTAxOntsOnsxMTM6e2w6ezExMjp7bDp7MTE0OntsOnsxMDE6e2w6ezk5OntsOns1OTp7YzpbODkyNl19fX19fX19fX0sMTE1OntsOnsxMTc6e2w6ezk5OntsOns5OTp7bDp7NTk6e2M6Wzg5MjddfX19fX19fX19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODkxMF19fX19fX19LDExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbODkxMV19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDE6e2w6ezExMDp7bDp7NTk6e2M6WzE2NF19fSxjOlsxNjRdfX19fX0sMTE4OntsOnsxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg2MzBdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODYzMV19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE4OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MTBdfX19fX19fSwxMTk6e2w6ezEwMTp7bDp7MTAwOntsOns1OTp7YzpbODkxMV19fX19fX19fX0sMTE5OntsOns5OTp7bDp7MTExOntsOnsxMTA6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzU0XX19fX19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NTNdfX19fX19fX19LDEyMTp7bDp7MTA4OntsOns5OTp7bDp7MTE2OntsOnsxMjE6e2w6ezU5OntjOls5MDA1XX19fX19fX19fX19fX0sMTAwOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjU5XX19fX19fX0sNzI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5N119fX19fX19LDk3OntsOnsxMDM6e2w6ezEwMzp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4MjI0XX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTE2OntsOnsxMDQ6e2w6ezU5OntjOls4NTA0XX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg1OTVdfX19fX0sMTE1OntsOnsxMDQ6e2w6ezU5OntjOls4MjA4XX0sMTE4OntsOns1OTp7YzpbODg2N119fX19fX19fX0sOTg6e2w6ezEwNzp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDUxMV19fX19fX19fX19fSwxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzczM119fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjcxXX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDc2XX19fX19LDEwMDp7bDp7NTk6e2M6Wzg1MThdfSw5Nzp7bDp7MTAzOntsOnsxMDM6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODIyNV19fX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjUwXX19fX19fX0sMTExOntsOnsxMTY6e2w6ezExNTp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOlsxMDg3MV19fX19fX19fX19fX19LDEwMTp7bDp7MTAzOntsOns1OTp7YzpbMTc2XX19LGM6WzE3Nl19LDEwODp7bDp7MTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk0OF19fX19fX19LDEwOTp7bDp7MTEyOntsOnsxMTY6e2w6ezEyMTp7bDp7MTE4OntsOns1OTp7YzpbMTA2NzNdfX19fX19fX19fX19fSwxMDI6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6WzEwNjIzXX19fX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMjAwOTddfX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMDg6e2w6ezU5OntjOls4NjQzXX19fSwxMTQ6e2w6ezU5OntjOls4NjQyXX19fX19fX19fSwxMDU6e2w6ezk3OntsOnsxMDk6e2w6ezU5OntjOls4OTAwXX0sMTExOntsOnsxMTA6e2w6ezEwMDp7bDp7NTk6e2M6Wzg5MDBdfSwxMTU6e2w6ezExNzp7bDp7MTA1OntsOnsxMTY6e2w6ezU5OntjOls5ODMwXX19fX19fX19fX19fX19fSwxMTU6e2w6ezU5OntjOls5ODMwXX19fX19fX0sMTAxOntsOns1OTp7YzpbMTY4XX19fSwxMDM6e2w6ezk3OntsOnsxMDk6e2w6ezEwOTp7bDp7OTc6e2w6ezU5OntjOls5ODldfX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezExMDp7bDp7NTk6e2M6Wzg5NDZdfX19fX19fSwxMTg6e2w6ezU5OntjOlsyNDddfSwxMDU6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjQ3XX0sMTExOntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODkwM119fX19fX19fX19fX19fX19LGM6WzI0N119fX19fSwxMTE6e2w6ezExMDp7bDp7MTIwOntsOns1OTp7YzpbODkwM119fX19fX19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTA2XX19fX19fX0sMTA4OntsOns5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7NTk6e2M6Wzg5OTBdfX19fX19fSwxMTQ6e2w6ezExMTp7bDp7MTEyOntsOns1OTp7YzpbODk3M119fX19fX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTA4OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMzZdfX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQ5XX19fX19LDExNjp7bDp7NTk6e2M6WzcyOV19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc4NF19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4Nzg1XX19fX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMTA6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODc2MF19fX19fX19fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4NzI0XX19fX19fX19fSwxMTU6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls4ODY1XX19fX19fX19fX19fX19fSwxMTc6e2w6ezk4OntsOnsxMDg6e2w6ezEwMTp7bDp7OTg6e2w6ezk3OntsOnsxMTQ6e2w6ezExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbODk2Nl19fX19fX19fX19fX19fX19fX19fX19fX19LDExOTp7bDp7MTEwOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5NV19fX19fX19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezExNTp7bDp7NTk6e2M6Wzg2NTBdfX19fX19fX19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTEyOntsOnsxMTE6e2w6ezExMTp7bDp7MTEwOntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls4NjQzXX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg2NDJdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezk4OntsOnsxMDc6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTA1MTJdfX19fX19fX19fX19fSw5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7NTk6e2M6Wzg5OTFdfX19fX19fSwxMTQ6e2w6ezExMTp7bDp7MTEyOntsOns1OTp7YzpbODk3Ml19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5OTNdfX19LDEyMTp7bDp7NTk6e2M6WzExMDldfX19fX0sMTExOntsOnsxMDg6e2w6ezU5OntjOlsxMDc0Ml19fX19fSwxMTY6e2w6ezExNDp7bDp7MTExOntsOnsxMDc6e2w6ezU5OntjOlsyNzNdfX19fX19fX19fX0sMTE2OntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODk0NV19fX19fX19LDExNDp7bDp7MTA1OntsOns1OTp7YzpbOTY2M119LDEwMjp7bDp7NTk6e2M6Wzk2NjJdfX19fX19fX19LDExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY5M119fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjA3XX19fX19fX19fSwxMTk6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOlsxMDY2Ml19fX19fX19fX19fX19LDEyMjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMTldfX19fX0sMTA1OntsOnsxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMzldfX19fX19fX19fX19fX19fX0sMTAxOntsOns2ODp7bDp7Njg6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NzFdfX19fX19fSwxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODVdfX19fX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMzNdfX0sYzpbMjMzXX19fX19fX0sMTE1OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbMTA4NjJdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjgzXX19fX19fX19fSwxMDU6e2w6ezExNDp7bDp7NTk6e2M6Wzg3OTBdfSw5OTp7bDp7NTk6e2M6WzIzNF19fSxjOlsyMzRdfX19fX0sMTExOntsOnsxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODc4OV19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTEwMV19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMjc5XX19fX19fX0sMTAxOntsOns1OTp7YzpbODUxOV19fX0sMTAyOntsOns2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4Nzg2XX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMDk4XX19fX19LDEwMzp7bDp7NTk6e2M6WzEwOTA2XX0sMTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyMzJdfX0sYzpbMjMyXX19fX19fX0sMTE1OntsOns1OTp7YzpbMTA5MDJdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5MDRdfX19fX19fX19fX0sMTA4OntsOns1OTp7YzpbMTA5MDVdfSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE1OntsOns1OTp7YzpbOTE5MV19fX19fX19fX19fX19LDEwODp7bDp7NTk6e2M6Wzg0NjddfX19LDExNTp7bDp7NTk6e2M6WzEwOTAxXX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwOTAzXX19fX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsyNzVdfX19fX19fSwxMTI6e2w6ezExNjp7bDp7MTIxOntsOns1OTp7YzpbODcwOV19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4NzA5XX19fX19fX0sMTE4OntsOns1OTp7YzpbODcwOV19fX19fX19fX0sMTE1OntsOnsxMTI6e2w6ezQ5OntsOns1MTp7bDp7NTk6e2M6WzgxOTZdfX19LDUyOntsOns1OTp7YzpbODE5N119fX19fSw1OTp7YzpbODE5NV19fX19fX19LDExMDp7bDp7MTAzOntsOns1OTp7YzpbMzMxXX19fSwxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzgxOTRdfX19fX19fSwxMTE6e2w6ezEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyODFdfX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1MF19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg5MTddfSwxMTU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNzIzXX19fX19fX19fSwxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA4NjVdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7NTk6e2M6Wzk0OV19LDEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls5NDldfX19fX19fSwxMTg6e2w6ezU5OntjOlsxMDEzXX19fX19fX19fSwxMTM6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOls4NzkwXX19fX19fX0sMTExOntsOnsxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODc4OV19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc3MF19fX19fSwxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7MTAzOntsOnsxMTY6e2w6ezExNDp7bDp7NTk6e2M6WzEwOTAyXX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbMTA5MDFdfX19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezExNTp7bDp7NTk6e2M6WzYxXX19fX19fX0sMTAxOntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6Wzg3OTldfX19fX19fSwxMDU6e2w6ezExODp7bDp7NTk6e2M6Wzg4MDFdfSw2ODp7bDp7Njg6e2w6ezU5OntjOlsxMDg3Ml19fX19fX19fX19fSwxMTg6e2w6ezExMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE1OntsOnsxMDg6e2w6ezU5OntjOlsxMDcyNV19fX19fX19fX19fX19fX0sMTE0OntsOns2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4Nzg3XX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDldfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0OTVdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODRdfX19fX19fSwxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NzBdfX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTUxXX19fSwxMDQ6e2w6ezU5OntjOlsyNDBdfX0sYzpbMjQwXX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjM1XX19LGM6WzIzNV19fX0sMTE0OntsOnsxMTE6e2w6ezU5OntjOls4MzY0XX19fX19fX0sMTIwOntsOns5OTp7bDp7MTA4OntsOns1OTp7YzpbMzNdfX19fX0sMTA1OntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MDddfX19fX19fSwxMTI6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7OTc6e2w6ezExNjp7bDp7MTA1OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg0OTZdfX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwNTp7bDp7OTc6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODUxOV19fX19fX19fX19fX19fX19fX19fX19fX19LDEwMjp7bDp7OTc6e2w6ezEwODp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOnsxMTU6e2w6ezEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc4Nl19fX19fX19fX19fX19fX19fX19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDkyXX19fX19LDEwMTp7bDp7MTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls5NzkyXX19fX19fX19fX19LDEwMjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbNjQyNTldfX19fX19fX19LDEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI1Nl19fX19fSwxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbNjQyNjBdfX19fX19fX19LDExNDp7bDp7NTk6e2M6WzEyMDA5OV19fX19fSwxMDU6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI1N119fX19fX19fX0sMTA2OntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMTAyLDEwNl19fX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE2OntsOns1OTp7YzpbOTgzN119fX19fSwxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbNjQyNThdfX19fX19fSwxMTY6e2w6ezExMDp7bDp7MTE1OntsOns1OTp7YzpbOTY0OV19fX19fX19fX0sMTEwOntsOnsxMTE6e2w6ezEwMjp7bDp7NTk6e2M6WzQwMl19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTFdfX19fX0sMTE0OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezU5OntjOls4NzA0XX19fX19fX0sMTA3OntsOns1OTp7YzpbODkxNl19LDExODp7bDp7NTk6e2M6WzEwOTY5XX19fX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzY1XX19fX19fX19fX19fX19fSwxMTQ6e2w6ezk3OntsOns5OTp7bDp7NDk6e2w6ezUwOntsOns1OTp7YzpbMTg5XX19LGM6WzE4OV19LDUxOntsOns1OTp7YzpbODUzMV19fX0sNTI6e2w6ezU5OntjOlsxODhdfX0sYzpbMTg4XX0sNTM6e2w6ezU5OntjOls4NTMzXX19fSw1NDp7bDp7NTk6e2M6Wzg1MzddfX19LDU2OntsOns1OTp7YzpbODUzOV19fX19fSw1MDp7bDp7NTE6e2w6ezU5OntjOls4NTMyXX19fSw1Mzp7bDp7NTk6e2M6Wzg1MzRdfX19fX0sNTE6e2w6ezUyOntsOns1OTp7YzpbMTkwXX19LGM6WzE5MF19LDUzOntsOns1OTp7YzpbODUzNV19fX0sNTY6e2w6ezU5OntjOls4NTQwXX19fX19LDUyOntsOns1Mzp7bDp7NTk6e2M6Wzg1MzZdfX19fX0sNTM6e2w6ezU0OntsOns1OTp7YzpbODUzOF19fX0sNTY6e2w6ezU5OntjOls4NTQxXX19fX19LDU1OntsOns1Njp7bDp7NTk6e2M6Wzg1NDJdfX19fX19fSwxMTU6e2w6ezEwODp7bDp7NTk6e2M6WzgyNjBdfX19fX19fSwxMTE6e2w6ezExOTp7bDp7MTEwOntsOns1OTp7YzpbODk5NF19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTk1XX19fX19fX19fSwxMDM6e2w6ezY5OntsOns1OTp7YzpbODgwN119LDEwODp7bDp7NTk6e2M6WzEwODkyXX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzUwMV19fX19fX19fX0sMTA5OntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTQ3XX0sMTAwOntsOns1OTp7YzpbOTg5XX19fX19fX19fSwxMTI6e2w6ezU5OntjOlsxMDg4Nl19fX19fSw5ODp7bDp7MTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjg3XX19fX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyODVdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDc1XX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsyODldfX19fX19fSwxMDE6e2w6ezU5OntjOls4ODA1XX0sMTA4OntsOns1OTp7YzpbODkyM119fX0sMTEzOntsOns1OTp7YzpbODgwNV19LDExMzp7bDp7NTk6e2M6Wzg4MDddfX19LDExNTp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDg3OF19fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6WzEwODc4XX0sOTk6e2w6ezk5OntsOns1OTp7YzpbMTA5MjFdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODgwXX0sMTExOntsOns1OTp7YzpbMTA4ODJdfSwxMDg6e2w6ezU5OntjOlsxMDg4NF19fX19fX19fX19fSwxMDg6e2w6ezU5OntjOls4OTIzLDY1MDI0XX0sMTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDkwMF19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDEwMF19fX19fSwxMDM6e2w6ezU5OntjOls4ODExXX0sMTAzOntsOns1OTp7YzpbODkyMV19fX19fSwxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4NTAzXX19fX19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTA3XX19fX19fX0sMTA4OntsOns1OTp7YzpbODgyM119LDY5OntsOns1OTp7YzpbMTA4OThdfX19LDk3OntsOns1OTp7YzpbMTA5MTddfX19LDEwNjp7bDp7NTk6e2M6WzEwOTE2XX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOls4ODA5XX19fSw5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA4OTBdfSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDg5MF19fX19fX19fX19fX19LDEwMTp7bDp7NTk6e2M6WzEwODg4XX0sMTEzOntsOns1OTp7YzpbMTA4ODhdfSwxMTM6e2w6ezU5OntjOls4ODA5XX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg5MzVdfX19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTJdfX19fX19fSwxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDU4XX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgxOV19LDEwMTp7bDp7NTk6e2M6WzEwODk0XX19fSwxMDg6e2w6ezU5OntjOlsxMDg5Nl19fX19fX19fX0sMTE2OntsOns1OTp7YzpbNjJdfSw5OTp7bDp7OTk6e2w6ezU5OntjOlsxMDkxOV19fX0sMTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDg3NF19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTE5XX19fX19fX0sMTA4OntsOns4MDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjQ1XX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7MTAxOntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc2XX19fX19fX19fX19LDExNDp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA4ODZdfX19fX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYxNl19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTE5XX19fX19fX0sMTAxOntsOnsxMTM6e2w6ezEwODp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6Wzg5MjNdfX19fX19fX19LDExMzp7bDp7MTA4OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbMTA4OTJdfX19fX19fX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjNdfX19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODE5XX19fX19fX19fX0sYzpbNjJdfSwxMTg6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTY6e2w6ezExMDp7bDp7MTAxOntsOnsxMTM6e2w6ezExMzp7bDp7NTk6e2M6Wzg4MDksNjUwMjRdfX19fX19fX19fX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOls4ODA5LDY1MDI0XX19fX19fX19fSwxMDQ6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjBdfX19fX19fSw5Nzp7bDp7MTA1OntsOnsxMTQ6e2w6ezExNTp7bDp7MTEyOntsOns1OTp7YzpbODIwMl19fX19fX19fX0sMTA4OntsOnsxMDI6e2w6ezU5OntjOlsxODldfX19fX0sMTA5OntsOnsxMDU6e2w6ezEwODp7bDp7MTE2OntsOns1OTp7YzpbODQ1OV19fX19fX19fX0sMTE0OntsOnsxMDA6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDk4XX19fX19fX0sMTE0OntsOns1OTp7YzpbODU5Nl19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTY4XX19fX19fX0sMTE5OntsOns1OTp7YzpbODYyMV19fX19fX19fX0sOTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NDYzXX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzI5M119fX19fX19fX0sMTAxOntsOns5Nzp7bDp7MTE0OntsOnsxMTY6e2w6ezExNTp7bDp7NTk6e2M6Wzk4MjldfSwxMTc6e2w6ezEwNTp7bDp7MTE2OntsOns1OTp7YzpbOTgyOV19fX19fX19fX19fX19fX0sMTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEyOntsOns1OTp7YzpbODIzMF19fX19fX19fX0sMTE0OntsOns5OTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4ODg5XX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTAxXX19fX19LDEwNzp7bDp7MTE1OntsOnsxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTA1MzNdfX19fX19fX19fX0sMTE5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwNTM0XX19fX19fX19fX19fX19fSwxMTE6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg3MDNdfX19fX19fSwxMDk6e2w6ezExNjp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls4NzYzXX19fX19fX19fSwxMTE6e2w6ezEwNzp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxN119fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxOF19fX19fX19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTUzXX19fX19LDExNDp7bDp7OTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4MjEzXX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5N119fX19fSwxMDg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg0NjNdfX19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzI5NV19fX19fX19fX19fSwxMjE6e2w6ezk4OntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns1OTp7YzpbODI1OV19fX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezEwMTp7bDp7MTEwOntsOns1OTp7YzpbODIwOF19fX19fX19fX19fX19LDEwNTp7bDp7OTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMjM3XX19LGM6WzIzN119fX19fX19fX0sOTk6e2w6ezU5OntjOls4MjkxXX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjM4XX19LGM6WzIzOF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDgwXX19fX19LDEwMTp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNzddfX19fX0sMTIwOntsOns5OTp7bDp7MTA4OntsOns1OTp7YzpbMTYxXX19LGM6WzE2MV19fX19fX19LDEwMjp7bDp7MTAyOntsOns1OTp7YzpbODY2MF19fX0sMTE0OntsOns1OTp7YzpbMTIwMTAyXX19fX19LDEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyMzZdfX0sYzpbMjM2XX19fX19fX19fSwxMDU6e2w6ezU5OntjOls4NTIwXX0sMTA1OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NjRdfX19fX19fSwxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NDldfX19fX19fSwxMTA6e2w6ezEwMjp7bDp7MTA1OntsOnsxMTA6e2w6ezU5OntjOlsxMDcxNl19fX19fX19fX0sMTExOntsOnsxMTY6e2w6ezk3OntsOns1OTp7YzpbODQ4OV19fX19fX19fX0sMTA2OntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMzA3XX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjk5XX19fX19LDEwMzp7bDp7MTAxOntsOns1OTp7YzpbODQ2NV19fX0sMTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTAxOntsOns1OTp7YzpbODQ2NF19fX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOnsxMTY6e2w6ezU5OntjOls4NDY1XX19fX19fX19fX19LDExNjp7bDp7MTA0OntsOns1OTp7YzpbMzA1XX19fX19fX0sMTExOntsOnsxMDI6e2w6ezU5OntjOls4ODg3XX19fX19LDExMjp7bDp7MTAxOntsOnsxMDA6e2w6ezU5OntjOls0MzddfX19fX19fX19LDExMDp7bDp7NTk6e2M6Wzg3MTJdfSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns1OTp7YzpbODQ1M119fX19fX19fX0sMTAyOntsOnsxMDU6e2w6ezExMDp7bDp7NTk6e2M6Wzg3MzRdfSwxMTY6e2w6ezEwNTp7bDp7MTAxOntsOns1OTp7YzpbMTA3MTddfX19fX19fX19fX19fSwxMTE6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlszMDVdfX19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg3NDddfSw5OTp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4OTBdfX19fX19fSwxMDE6e2w6ezEwMzp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7NTk6e2M6Wzg0ODRdfX19fX19fX19LDExNDp7bDp7OTk6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODkwXX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTA0OntsOnsxMDc6e2w6ezU5OntjOlsxMDc3NV19fX19fX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMDA6e2w6ezU5OntjOlsxMDgxMl19fX19fX19fX19fX19LDExMTp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDVdfX19fX0sMTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzMwM119fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTU0XX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5NTNdfX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMDA6e2w6ezU5OntjOlsxMDgxMl19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOlsxOTFdfX0sYzpbMTkxXX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5OThdfX19fX0sMTA1OntsOnsxMTA6e2w6ezU5OntjOls4NzEyXX0sNjk6e2w6ezU5OntjOls4OTUzXX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODk0OV19fX19fX19LDExNTp7bDp7NTk6e2M6Wzg5NDhdfSwxMTg6e2w6ezU5OntjOls4OTQ3XX19fX19LDExODp7bDp7NTk6e2M6Wzg3MTJdfX19fX19fX19LDExNjp7bDp7NTk6e2M6WzgyOTBdfSwxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlsyOTddfX19fX19fX19fX0sMTE3OntsOnsxMDc6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTEwXX19fX19fX0sMTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMzldfX0sYzpbMjM5XX19fX19fX0sMTA2OntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMzA5XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA4MV19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDEwM119fX19fSwxMDk6e2w6ezk3OntsOnsxMTY6e2w6ezEwNDp7bDp7NTk6e2M6WzU2N119fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1NV19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5OV19fX19fSwxMDE6e2w6ezExNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMTJdfX19fX19fX19fX0sMTE3OntsOnsxMDc6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTA4XX19fX19fX19fX19LDEwNzp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOns5Nzp7bDp7NTk6e2M6Wzk1NF19LDExODp7bDp7NTk6e2M6WzEwMDhdfX19fX19fX19fX0sOTk6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMxMV19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA4Ml19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDEwNF19fX19fSwxMDM6e2w6ezExNDp7bDp7MTAxOntsOnsxMDE6e2w6ezExMDp7bDp7NTk6e2M6WzMxMl19fX19fX19fX19fSwxMDQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDkzXX19fX19fX0sMTA2OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExNl19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTZdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMDBdfX19fX19fX19LDEwODp7bDp7NjU6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjZdfX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTZdfX19fX0sMTE2OntsOns5Nzp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsxMDUyM119fX19fX19fX19fSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA1MTBdfX19fX19fX19LDY5OntsOns1OTp7YzpbODgwNl19LDEwMzp7bDp7NTk6e2M6WzEwODkxXX19fX19LDcyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1OTRdfX19fX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlszMTRdfX19fX19fX19LDEwMTp7bDp7MTA5OntsOnsxMTI6e2w6ezExNjp7bDp7MTIxOntsOnsxMTg6e2w6ezU5OntjOlsxMDY3Nl19fX19fX19fX19fX19LDEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTEwOntsOns1OTp7YzpbODQ2Nl19fX19fX19fX0sMTA5OntsOns5ODp7bDp7MTAwOntsOns5Nzp7bDp7NTk6e2M6Wzk1NV19fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOlsxMDIxNl19LDEwMDp7bDp7NTk6e2M6WzEwNjQxXX19fSwxMDg6e2w6ezEwMTp7bDp7NTk6e2M6WzEwMjE2XX19fX19fX19fSwxMTI6e2w6ezU5OntjOlsxMDg4NV19fX0sMTEzOntsOnsxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzE3MV19fSxjOlsxNzFdfX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NTkyXX0sOTg6e2w6ezU5OntjOls4Njc2XX0sMTAyOntsOnsxMTU6e2w6ezU5OntjOlsxMDUyN119fX19fX19LDEwMjp7bDp7MTE1OntsOns1OTp7YzpbMTA1MjVdfX19fX0sMTA0OntsOnsxMDc6e2w6ezU5OntjOls4NjE3XX19fX19LDEwODp7bDp7MTEyOntsOns1OTp7YzpbODYxOV19fX19fSwxMTI6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTUzXX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDYxMV19fX19fX19LDExNjp7bDp7MTA4OntsOns1OTp7YzpbODYxMF19fX19fX19fX0sMTE2OntsOns1OTp7YzpbMTA5MjNdfSw5Nzp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsxMDUyMV19fX19fX19LDEwMTp7bDp7NTk6e2M6WzEwOTI1XX0sMTE1OntsOns1OTp7YzpbMTA5MjUsNjUwMjRdfX19fX19fX19LDk4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUwOF19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwMDk4XX19fX19fX0sMTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzEyM119fX0sMTA3OntsOns1OTp7YzpbOTFdfX19fX19fSwxMDc6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNjM1XX19fSwxMTU6e2w6ezEwODp7bDp7MTAwOntsOns1OTp7YzpbMTA2MzldfX19LDExNzp7bDp7NTk6e2M6WzEwNjM3XX19fX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzE4XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszMTZdfX19fX19fSwxMDU6e2w6ezEwODp7bDp7NTk6e2M6Wzg5NjhdfX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbMTIzXX19fX19LDEyMTp7bDp7NTk6e2M6WzEwODNdfX19fX0sMTAwOntsOns5OTp7bDp7OTc6e2w6ezU5OntjOlsxMDU1MF19fX19fSwxMTM6e2w6ezExNzp7bDp7MTExOntsOns1OTp7YzpbODIyMF19LDExNDp7bDp7NTk6e2M6WzgyMjJdfX19fX19fX19LDExNDp7bDp7MTAwOntsOnsxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5OV19fX19fX19fX0sMTE3OntsOnsxMTU6e2w6ezEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTcxXX19fX19fX19fX19fX0sMTE1OntsOnsxMDQ6e2w6ezU5OntjOls4NjI2XX19fX19fX0sMTAxOntsOns1OTp7YzpbODgwNF19LDEwMjp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5Ml19LDExNjp7bDp7OTc6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbODYxMF19fX19fX19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTEyOntsOnsxMTE6e2w6ezExMTp7bDp7MTEwOntsOnsxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls4NjM3XX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg2MzZdfX19fX19fX19fX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezExNTp7bDp7NTk6e2M6Wzg2NDddfX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5Nl19LDExNTp7bDp7NTk6e2M6Wzg2NDZdfX19fX19fX19fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExMjp7bDp7MTExOntsOnsxMTE6e2w6ezExMDp7bDp7MTE1OntsOns1OTp7YzpbODY1MV19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezExMzp7bDp7MTE3OntsOnsxMDU6e2w6ezEwMzp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MjFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTY6e2w6ezEwNDp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7MTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4OTA3XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAzOntsOns1OTp7YzpbODkyMl19fX0sMTEzOntsOns1OTp7YzpbODgwNF19LDExMzp7bDp7NTk6e2M6Wzg4MDZdfX19LDExNTp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDg3N119fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6WzEwODc3XX0sOTk6e2w6ezk5OntsOns1OTp7YzpbMTA5MjBdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc5XX0sMTExOntsOns1OTp7YzpbMTA4ODFdfSwxMTQ6e2w6ezU5OntjOlsxMDg4M119fX19fX19fX19fSwxMDM6e2w6ezU5OntjOls4OTIyLDY1MDI0XX0sMTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDg5OV19fX19fX19LDExNTp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA4ODVdfX19fX19fX19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODkxOF19fX19fX19LDEwMTp7bDp7MTEzOntsOnsxMDM6e2w6ezExNjp7bDp7MTE0OntsOns1OTp7YzpbODkyMl19fX19fX19LDExMzp7bDp7MTAzOntsOnsxMTY6e2w6ezExNDp7bDp7NTk6e2M6WzEwODkxXX19fX19fX19fX19fX0sMTAzOntsOnsxMTY6e2w6ezExNDp7bDp7NTk6e2M6Wzg4MjJdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgxOF19fX19fX19fX19fX19LDEwMjp7bDp7MTA1OntsOnsxMTU6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbMTA2MjBdfX19fX19fX19LDEwODp7bDp7MTExOntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg5NzBdfX19fX19fX19LDExNDp7bDp7NTk6e2M6WzEyMDEwNV19fX19fSwxMDM6e2w6ezU5OntjOls4ODIyXX0sNjk6e2w6ezU5OntjOlsxMDg5N119fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMDp7bDp7NTk6e2M6Wzg2MzddfX19LDExNzp7bDp7NTk6e2M6Wzg2MzZdfSwxMDg6e2w6ezU5OntjOlsxMDYwMl19fX19fX19fX0sOTg6e2w6ezEwODp7bDp7MTA3OntsOns1OTp7YzpbOTYwNF19fX19fX19fX0sMTA2OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExM119fX19fX19LDEwODp7bDp7NTk6e2M6Wzg4MTBdfSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjQ3XX19fX19fX0sOTk6e2w6ezExMTp7bDp7MTE0OntsOnsxMTA6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODk5MF19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTAwOntsOns1OTp7YzpbMTA2MDNdfX19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls5NzIyXX19fX19fX19fSwxMDk6e2w6ezEwNTp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzMyMF19fX19fX19fX0sMTExOntsOnsxMTc6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbOTEzNl19LDk3OntsOns5OTp7bDp7MTA0OntsOnsxMDE6e2w6ezU5OntjOls5MTM2XX19fX19fX19fX19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6Wzg4MDhdfX19LDk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDg4OV19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6WzEwODg5XX19fX19fX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA4ODddfSwxMTM6e2w6ezU5OntjOlsxMDg4N119LDExMzp7bDp7NTk6e2M6Wzg4MDhdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODkzNF19fX19fX19fX0sMTExOntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOlsxMDIyMF19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg3MDFdfX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOlsxMDIxNF19fX19fX19LDExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIyOV19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMxXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezExMjp7bDp7MTE1OntsOnsxMTY6e2w6ezExMTp7bDp7NTk6e2M6WzEwMjM2XX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzMF19fX19fX19fX19fX19fX19fX19fX19fX19LDExMTp7bDp7MTEyOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls4NjE5XX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg2MjBdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYyOV19fX19fSwxMDI6e2w6ezU5OntjOlsxMjAxNTddfX19LDEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc5N119fX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDgwNF19fX19fX19fX19fSwxMTk6e2w6ezk3OntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MjddfX19fX19fSw5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzk1XX19fX19fX19fSwxMjI6e2w6ezU5OntjOls5Njc0XX0sMTAxOntsOnsxMTA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbOTY3NF19fX19fX19fX0sMTAyOntsOns1OTp7YzpbMTA3MzFdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls0MF19LDEwODp7bDp7MTE2OntsOns1OTp7YzpbMTA2NDNdfX19fX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjQ2XX19fX19fX0sOTk6e2w6ezExMTp7bDp7MTE0OntsOnsxMTA6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODk5MV19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTFdfSwxMDA6e2w6ezU5OntjOlsxMDYwNV19fX19fX19fX0sMTA5OntsOns1OTp7YzpbODIwNl19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzg4OTVdfX19fX19fX19LDExNTp7bDp7OTc6e2w6ezExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjQ5XX19fX19fX19fSw5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDAxXX19fX19LDEwNDp7bDp7NTk6e2M6Wzg2MjRdfX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgxOF19LDEwMTp7bDp7NTk6e2M6WzEwODkzXX19fSwxMDM6e2w6ezU5OntjOlsxMDg5NV19fX19fX19LDExMzp7bDp7OTg6e2w6ezU5OntjOls5MV19fX0sMTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjE2XX0sMTE0OntsOns1OTp7YzpbODIxOF19fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMzIyXX19fX19fX19fX19LDExNjp7bDp7NTk6e2M6WzYwXX0sOTk6e2w6ezk5OntsOns1OTp7YzpbMTA5MThdfX19LDEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA4NzNdfX19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODkxOF19fX19fX19LDEwNDp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MDddfX19fX19fX19LDEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg5MDVdfX19fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA2MTRdfX19fX19fX19LDExMzp7bDp7MTE3OntsOnsxMDE6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NzVdfX19fX19fX19fX0sMTE0OntsOns4MDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjQ2XX19fX19fX0sMTA1OntsOns1OTp7YzpbOTY2N119LDEwMTp7bDp7NTk6e2M6Wzg4ODRdfX19LDEwMjp7bDp7NTk6e2M6Wzk2NjZdfX19fX19fX0sYzpbNjBdfSwxMTc6e2w6ezExNDp7bDp7MTAwOntsOnsxMTU6e2w6ezEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTcwXX19fX19fX19fX19LDExNzp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1OThdfX19fX19fX19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTY6e2w6ezExMDp7bDp7MTAxOntsOnsxMTM6e2w6ezExMzp7bDp7NTk6e2M6Wzg4MDgsNjUwMjRdfX19fX19fX19fX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOls4ODA4LDY1MDI0XX19fX19fX19fSwxMDk6e2w6ezY4OntsOns2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4NzYyXX19fX19fX19fSw5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzE3NV19fSxjOlsxNzVdfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbOTc5NF19fX0sMTE2OntsOns1OTp7YzpbMTAwMTZdfSwxMDE6e2w6ezExNTp7bDp7MTAxOntsOns1OTp7YzpbMTAwMTZdfX19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODYxNF19LDExNTp7bDp7MTE2OntsOnsxMTE6e2w6ezU5OntjOls4NjE0XX0sMTAwOntsOnsxMTE6e2w6ezExOTp7bDp7MTEwOntsOns1OTp7YzpbODYxNV19fX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODYxMl19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOls4NjEzXX19fX19fX19fX19fX0sMTE0OntsOnsxMDc6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbOTY0Nl19fX19fX19fX19fSw5OTp7bDp7MTExOntsOnsxMDk6e2w6ezEwOTp7bDp7OTc6e2w6ezU5OntjOlsxMDc5M119fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA4NF19fX19fSwxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6WzgyMTJdfX19fX19fX19LDEwMTp7bDp7OTc6e2w6ezExNTp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTAwOntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODczN119fX19fX19fX19fX19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTA2XX19fX19LDEwNDp7bDp7MTExOntsOns1OTp7YzpbODQ4N119fX19fSwxMDU6e2w6ezk5OntsOnsxMTQ6e2w6ezExMTp7bDp7NTk6e2M6WzE4MV19fSxjOlsxODFdfX19fX0sMTAwOntsOns1OTp7YzpbODczOV19LDk3OntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6WzQyXX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA5OTJdfX19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTgzXX19LGM6WzE4M119fX19fX19LDExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4NzIyXX0sOTg6e2w6ezU5OntjOls4ODYzXX19fSwxMDA6e2w6ezU5OntjOls4NzYwXX0sMTE3OntsOns1OTp7YzpbMTA3OTRdfX19fX19fX19fX19fSwxMDg6e2w6ezk5OntsOnsxMTI6e2w6ezU5OntjOlsxMDk3MV19fX19fSwxMDA6e2w6ezExNDp7bDp7NTk6e2M6WzgyMzBdfX19fX19fSwxMTA6e2w6ezExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjNdfX19fX19fX19fX0sMTExOntsOnsxMDA6e2w6ezEwMTp7bDp7MTA4OntsOnsxMTU6e2w6ezU5OntjOls4ODcxXX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1OF19fX19fX19LDExMjp7bDp7NTk6e2M6Wzg3MjNdfX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwMl19fX19fSwxMTY6e2w6ezExMjp7bDp7MTExOntsOnsxMTU6e2w6ezU5OntjOls4NzY2XX19fX19fX19fX19LDExNzp7bDp7NTk6e2M6Wzk1Nl19LDEwODp7bDp7MTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4ODhdfX19fX19fX19fX19fSwxMDk6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOls4ODg4XX19fX19fX19fX19LDExMDp7bDp7NzE6e2w6ezEwMzp7bDp7NTk6e2M6Wzg5MjEsODI0XX19fSwxMTY6e2w6ezU5OntjOls4ODExLDg0MDJdfSwxMTg6e2w6ezU5OntjOls4ODExLDgyNF19fX19fX19LDc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY1M119fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTRdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7NTk6e2M6Wzg5MjAsODI0XX19fSwxMTY6e2w6ezU5OntjOls4ODEwLDg0MDJdfSwxMTg6e2w6ezU5OntjOls4ODEwLDgyNF19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU1XX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7Njg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzldfX19fX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3OF19fX19fX19fX19fSw5Nzp7bDp7OTg6e2w6ezEwODp7bDp7OTc6e2w6ezU5OntjOls4NzExXX19fX19fX0sOTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlszMjRdfX19fX19fX19LDExMDp7bDp7MTAzOntsOns1OTp7YzpbODczNiw4NDAyXX19fX19LDExMjp7bDp7NTk6e2M6Wzg3NzddfSw2OTp7bDp7NTk6e2M6WzEwODY0LDgyNF19fX0sMTA1OntsOnsxMDA6e2w6ezU5OntjOls4Nzc5LDgyNF19fX19fSwxMTE6e2w6ezExNTp7bDp7NTk6e2M6WzMyOV19fX19fSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOls4Nzc3XX19fX19fX19fX19LDExNjp7bDp7MTE3OntsOnsxMTQ6e2w6ezU5OntjOls5ODM4XX0sOTc6e2w6ezEwODp7bDp7NTk6e2M6Wzk4MzhdfSwxMTU6e2w6ezU5OntjOls4NDY5XX19fX19fX19fX19fX19fSw5ODp7bDp7MTE1OntsOnsxMTI6e2w6ezU5OntjOlsxNjBdfX0sYzpbMTYwXX19fSwxMTc6e2w6ezEwOTp7bDp7MTEyOntsOns1OTp7YzpbODc4Miw4MjRdfSwxMDE6e2w6ezU5OntjOls4NzgzLDgyNF19fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODE5XX19fSwxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzI4XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszMjZdfX19fX19fX19LDExMTp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOls4Nzc1XX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODYxLDgyNF19fX19fX19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MThdfX19fX0sMTIxOntsOns1OTp7YzpbMTA4NV19fX19fSwxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6WzgyMTFdfX19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MDBdfSw2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjYzXX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTA0OntsOnsxMDc6e2w6ezU5OntjOlsxMDUzMl19fX19fSwxMTQ6e2w6ezU5OntjOls4NTk5XX0sMTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk5XX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4Nzg0LDgyNF19fX19fX19LDExMzp7bDp7MTE3OntsOnsxMDU6e2w6ezExODp7bDp7NTk6e2M6Wzg4MDJdfX19fX19fX19LDExNTp7bDp7MTAxOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1MzZdfX19fX19fSwxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NzAsODI0XX19fX19fX0sMTIwOntsOnsxMDU6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbODcwOF19LDExNTp7bDp7NTk6e2M6Wzg3MDhdfX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDEwN119fX19fSwxMDM6e2w6ezY5OntsOns1OTp7YzpbODgwNyw4MjRdfX19LDEwMTp7bDp7NTk6e2M6Wzg4MTddfSwxMTM6e2w6ezU5OntjOls4ODE3XX0sMTEzOntsOns1OTp7YzpbODgwNyw4MjRdfX19LDExNTp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDg3OCw4MjRdfX19fX19fX19fX19fSwxMTU6e2w6ezU5OntjOlsxMDg3OCw4MjRdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MjFdfX19fX19fSwxMTY6e2w6ezU5OntjOls4ODE1XX0sMTE0OntsOns1OTp7YzpbODgxNV19fX19fX19LDEwNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1NF19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MjJdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDk5NF19fX19fX19fX0sMTA1OntsOns1OTp7YzpbODcxNV19LDExNTp7bDp7NTk6e2M6Wzg5NTZdfSwxMDA6e2w6ezU5OntjOls4OTU0XX19fX19LDExODp7bDp7NTk6e2M6Wzg3MTVdfX19fX0sMTA2OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExNF19fX19fX19LDEwODp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1M119fX19fX19LDY5OntsOns1OTp7YzpbODgwNiw4MjRdfX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MDJdfX19fX19fSwxMDA6e2w6ezExNDp7bDp7NTk6e2M6WzgyMjldfX19fX0sMTAxOntsOns1OTp7YzpbODgxNl19LDEwMjp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYwMl19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MjJdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMTM6e2w6ezU5OntjOls4ODE2XX0sMTEzOntsOns1OTp7YzpbODgwNiw4MjRdfX19LDExNTp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDg3Nyw4MjRdfX19fX19fX19fX19fSwxMTU6e2w6ezU5OntjOlsxMDg3Nyw4MjRdfSwxMTU6e2w6ezU5OntjOls4ODE0XX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MjBdfX19fX19fSwxMTY6e2w6ezU5OntjOls4ODE0XX0sMTE0OntsOnsxMDU6e2w6ezU5OntjOls4OTM4XX0sMTAxOntsOns1OTp7YzpbODk0MF19fX19fX19fX19fSwxMDk6e2w6ezEwNTp7bDp7MTAwOntsOns1OTp7YzpbODc0MF19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTldfX19fX0sMTE2OntsOns1OTp7YzpbMTcyXX0sMTA1OntsOnsxMTA6e2w6ezU5OntjOls4NzEzXX0sNjk6e2w6ezU5OntjOls4OTUzLDgyNF19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5NDksODI0XX19fX19fX0sMTE4OntsOns5Nzp7bDp7NTk6e2M6Wzg3MTNdfX19LDk4OntsOns1OTp7YzpbODk1MV19fX0sOTk6e2w6ezU5OntjOls4OTUwXX19fX19fX19fSwxMTA6e2w6ezEwNTp7bDp7NTk6e2M6Wzg3MTZdfSwxMTg6e2w6ezk3OntsOns1OTp7YzpbODcxNl19fX0sOTg6e2w6ezU5OntjOls4OTU4XX19fSw5OTp7bDp7NTk6e2M6Wzg5NTddfX19fX19fX19fSxjOlsxNzJdfX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg3NDJdfSw5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezEwMTp7bDp7MTA4OntsOns1OTp7YzpbODc0Ml19fX19fX19fX19fSwxMTU6e2w6ezEwODp7bDp7NTk6e2M6WzExMDA1LDg0MjFdfX19fX0sMTE2OntsOns1OTp7YzpbODcwNiw4MjRdfX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzcyXX19fX19fX19fX19LDExNDp7bDp7NTk6e2M6Wzg4MzJdfSw5OTp7bDp7MTE3OntsOnsxMDE6e2w6ezU5OntjOls4OTI4XX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA5MjcsODI0XX0sOTk6e2w6ezU5OntjOls4ODMyXX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOlsxMDkyNyw4MjRdfX19fX19fX19fX19fSwxMTQ6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTVdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjAzXX0sOTk6e2w6ezU5OntjOlsxMDU0Nyw4MjRdfX19LDExOTp7bDp7NTk6e2M6Wzg2MDUsODI0XX19fX19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjAzXX19fX19fX19fX19fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzg5MzldfSwxMDE6e2w6ezU5OntjOls4OTQxXX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezU5OntjOls4ODMzXX0sOTk6e2w6ezExNzp7bDp7MTAxOntsOns1OTp7YzpbODkyOV19fX19fX19LDEwMTp7bDp7NTk6e2M6WzEwOTI4LDgyNF19fX0sMTE0OntsOns1OTp7YzpbMTIwMDAzXX19fX19LDEwNDp7bDp7MTExOntsOnsxMTQ6e2w6ezExNjp7bDp7MTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3NDBdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4NzQyXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA1OntsOnsxMDk6e2w6ezU5OntjOls4NzY5XX0sMTAxOntsOns1OTp7YzpbODc3Ml19LDExMzp7bDp7NTk6e2M6Wzg3NzJdfX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDA6e2w6ezU5OntjOls4NzQwXX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODc0Ml19fX19fX19LDExMzp7bDp7MTE1OntsOnsxMTc6e2w6ezk4OntsOnsxMDE6e2w6ezU5OntjOls4OTMwXX19fX19LDExMjp7bDp7MTAxOntsOns1OTp7YzpbODkzMV19fX19fX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbODgzNl19LDY5OntsOns1OTp7YzpbMTA5NDksODI0XX19fSwxMDE6e2w6ezU5OntjOls4ODQwXX19fSwxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNCw4NDAyXX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODQwXX0sMTEzOntsOns1OTp7YzpbMTA5NDksODI0XX19fX19fX19fX19fX19fSw5OTp7bDp7OTk6e2w6ezU5OntjOls4ODMzXX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOlsxMDkyOCw4MjRdfX19fX19fX19LDExMjp7bDp7NTk6e2M6Wzg4MzddfSw2OTp7bDp7NTk6e2M6WzEwOTUwLDgyNF19fX0sMTAxOntsOns1OTp7YzpbODg0MV19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MzUsODQwMl19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODg0MV19LDExMzp7bDp7NTk6e2M6WzEwOTUwLDgyNF19fX19fX19fX19fX19fX19fX19LDExNjp7bDp7MTAzOntsOnsxMDg6e2w6ezU5OntjOls4ODI1XX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzI0MV19fSxjOlsyNDFdfX19fX19fSwxMDg6e2w6ezEwMzp7bDp7NTk6e2M6Wzg4MjRdfX19fX0sMTE0OntsOnsxMDU6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MzhdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg5NDBdfX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MzldfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg5NDFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezU5OntjOls5NTddfSwxMDk6e2w6ezU5OntjOlszNV19LDEwMTp7bDp7MTE0OntsOnsxMTE6e2w6ezU5OntjOls4NDcwXX19fX19fX0sMTE1OntsOnsxMTI6e2w6ezU5OntjOls4MTk5XX19fX19fX19fSwxMTg6e2w6ezY4OntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4ODc3XX19fX19fX19fSw3Mjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA1MDBdfX19fX19fX19LDk3OntsOnsxMTI6e2w6ezU5OntjOls4NzgxLDg0MDJdfX19fX0sMTAwOntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4ODc2XX19fX19fX19fSwxMDM6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MDUsODQwMl19fX0sMTE2OntsOns1OTp7YzpbNjIsODQwMl19fX19fSwxMDU6e2w6ezExMDp7bDp7MTAyOntsOnsxMDU6e2w6ezExMDp7bDp7NTk6e2M6WzEwNzE4XX19fX19fX19fX19LDEwODp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA0OThdfX19fX19fSwxMDE6e2w6ezU5OntjOls4ODA0LDg0MDJdfX19LDExNjp7bDp7NTk6e2M6WzYwLDg0MDJdfSwxMTQ6e2w6ezEwNTp7bDp7MTAxOntsOns1OTp7YzpbODg4NCw4NDAyXX19fX19fX19fX19LDExNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA0OTldfX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOnsxMDE6e2w6ezU5OntjOls4ODg1LDg0MDJdfX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjQsODQwMl19fX19fX19fX0sMTE5OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjYyXX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTA0OntsOnsxMDc6e2w6ezU5OntjOlsxMDUzMV19fX19fSwxMTQ6e2w6ezU5OntjOls4NTk4XX0sMTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk4XX19fX19fX19fX19LDExMDp7bDp7MTAxOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1MzVdfX19fX19fX19fX19fSwxMTE6e2w6ezgzOntsOns1OTp7YzpbOTQxNl19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMjQzXX19LGM6WzI0M119fX19fX19LDExNTp7bDp7MTE2OntsOns1OTp7YzpbODg1OV19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6Wzg4NThdfSw5OTp7bDp7NTk6e2M6WzI0NF19fSxjOlsyNDRdfX19fX0sMTIxOntsOns1OTp7YzpbMTA4Nl19fX19fSwxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NjFdfX19fX19fSw5ODp7bDp7MTA4OntsOns5Nzp7bDp7OTk6e2w6ezU5OntjOlszMzddfX19fX19fX19LDEwNTp7bDp7MTE4OntsOns1OTp7YzpbMTA4MDhdfX19fX0sMTExOntsOnsxMTY6e2w6ezU5OntjOls4ODU3XX19fX19LDExNTp7bDp7MTExOntsOnsxMDg6e2w6ezEwMDp7bDp7NTk6e2M6WzEwNjg0XX19fX19fX19fX19LDEwMTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzMzOV19fX19fX19fX0sMTAyOntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDY4N119fX19fX19LDExNDp7bDp7NTk6e2M6WzEyMDEwOF19fX19fSwxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbNzMxXX19fX19LDExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjQyXX19LGM6WzI0Ml19fX19fX19LDExNjp7bDp7NTk6e2M6WzEwNjg5XX19fX19LDEwNDp7bDp7OTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDY3N119fX19fX19LDEwOTp7bDp7NTk6e2M6WzkzN119fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1MF19fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYzNF19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjg2XX19fX19LDExNDp7bDp7MTExOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwNjgzXX19fX19fX19fX19LDEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOls4MjU0XX19fX19fX0sMTE2OntsOns1OTp7YzpbMTA2ODhdfX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzMzM119fX19fX19LDEwMTp7bDp7MTAzOntsOns5Nzp7bDp7NTk6e2M6Wzk2OV19fX19fX19LDEwNTp7bDp7OTk6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls5NTldfX19fX19fX19LDEwMDp7bDp7NTk6e2M6WzEwNjc4XX19fSwxMTA6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg1NF19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTYwXX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2NzldfX19fX0sMTAxOntsOnsxMTQ6e2w6ezExMjp7bDp7NTk6e2M6WzEwNjgxXX19fX19fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NTNdfX19fX19fX19LDExNDp7bDp7NTk6e2M6Wzg3NDRdfSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjM1XX19fX19fX0sMTAwOntsOns1OTp7YzpbMTA4NDVdfSwxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg1MDBdfSwxMTE6e2w6ezEwMjp7bDp7NTk6e2M6Wzg1MDBdfX19fX19fX19LDEwMjp7bDp7NTk6e2M6WzE3MF19fSxjOlsxNzBdfSwxMDk6e2w6ezU5OntjOlsxODZdfX0sYzpbMTg2XX19fSwxMDU6e2w6ezEwMzp7bDp7MTExOntsOnsxMDI6e2w6ezU5OntjOls4ODg2XX19fX19fX19fSwxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwODM4XX19fX19LDExNTp7bDp7MTA4OntsOnsxMTE6e2w6ezExMjp7bDp7MTAxOntsOns1OTp7YzpbMTA4MzldfX19fX19fX19fX0sMTE4OntsOns1OTp7YzpbMTA4NDNdfX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODUwMF19fX19fSwxMDg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6WzI0OF19fSxjOlsyNDhdfX19fX19fSwxMTE6e2w6ezEwODp7bDp7NTk6e2M6Wzg4NTZdfX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzI0NV19fSxjOlsyNDVdfX19fX0sMTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NTVdfSw5Nzp7bDp7MTE1OntsOns1OTp7YzpbMTA4MDZdfX19fX19fX19fX19fX19LDExNzp7bDp7MTA5OntsOnsxMDg6e2w6ezU5OntjOlsyNDZdfX0sYzpbMjQ2XX19fX19LDExODp7bDp7OTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls5MDIxXX19fX19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg3NDFdfSw5Nzp7bDp7NTk6e2M6WzE4Ml19LDEwODp7bDp7MTA4OntsOnsxMDE6e2w6ezEwODp7bDp7NTk6e2M6Wzg3NDFdfX19fX19fX19fSxjOlsxODJdfSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbMTA5OTVdfX19fX0sMTA4OntsOns1OTp7YzpbMTEwMDVdfX19fX0sMTE2OntsOns1OTp7YzpbODcwNl19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDg3XX19fX19LDEwMTp7bDp7MTE0OntsOns5OTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlszN119fX19fX19LDEwNTp7bDp7MTExOntsOnsxMDA6e2w6ezU5OntjOls0Nl19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOls4MjQwXX19fX19fX0sMTEyOntsOns1OTp7YzpbODg2OV19fX0sMTE2OntsOnsxMDE6e2w6ezExMDp7bDp7MTA3OntsOns1OTp7YzpbODI0MV19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTA5XX19fX19LDEwNDp7bDp7MTA1OntsOns1OTp7YzpbOTY2XX0sMTE4OntsOns1OTp7YzpbOTgxXX19fX19LDEwOTp7bDp7MTA5OntsOns5Nzp7bDp7MTE2OntsOns1OTp7YzpbODQ5OV19fX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6Wzk3NDJdfX19fX19fX19LDEwNTp7bDp7NTk6e2M6Wzk2MF19LDExNjp7bDp7OTk6e2w6ezEwNDp7bDp7MTAyOntsOnsxMTE6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbODkxNl19fX19fX19fX19fX19fX0sMTE4OntsOns1OTp7YzpbOTgyXX19fX19LDEwODp7bDp7OTc6e2w6ezExMDp7bDp7OTk6e2w6ezEwNzp7bDp7NTk6e2M6Wzg0NjNdfSwxMDQ6e2w6ezU5OntjOls4NDYyXX19fX19fX0sMTA3OntsOnsxMTg6e2w6ezU5OntjOls4NDYzXX19fX19fX19fSwxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzQzXX0sOTc6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwNzg3XX19fX19fX19fSw5ODp7bDp7NTk6e2M6Wzg4NjJdfX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwNzg2XX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezU5OntjOls4NzI0XX19fSwxMTc6e2w6ezU5OntjOlsxMDc4OV19fX19fSwxMDE6e2w6ezU5OntjOlsxMDg2Nl19fX0sMTA5OntsOnsxMTA6e2w6ezU5OntjOlsxNzddfX0sYzpbMTc3XX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbMTA3OTBdfX19fX19fSwxMTY6e2w6ezExOTp7bDp7MTExOntsOns1OTp7YzpbMTA3OTFdfX19fX19fX19fX19fSwxMDk6e2w6ezU5OntjOlsxNzddfX19LDExMTp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzczXX19fX19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjFdfX19fX0sMTE3OntsOnsxMTA6e2w6ezEwMDp7bDp7NTk6e2M6WzE2M119fSxjOlsxNjNdfX19fX19fSwxMTQ6e2w6ezU5OntjOls4ODI2XX0sNjk6e2w6ezU5OntjOlsxMDkzMV19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTM1XX19fX19LDk5OntsOnsxMTc6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MjhdfX19fX19fSwxMDE6e2w6ezU5OntjOlsxMDkyN119LDk5OntsOns1OTp7YzpbODgyNl19LDk3OntsOnsxMTI6e2w6ezExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6WzEwOTM1XX19fX19fX19fX19fX0sOTk6e2w6ezExNzp7bDp7MTE0OntsOnsxMDg6e2w6ezEyMTp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODI4XX19fX19fX19fX19fX19fSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwOTI3XX19fX19LDExMDp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA5MzddfX19fX19fX19fX19fSwxMDE6e2w6ezExMzp7bDp7MTEzOntsOns1OTp7YzpbMTA5MzNdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODkzNl19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MzBdfX19fX19fX19fX0sMTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNDJdfSwxMTU6e2w6ezU5OntjOls4NDczXX19fX19fX19fSwxMTA6e2w6ezY5OntsOns1OTp7YzpbMTA5MzNdfX19LDk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDkzN119fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODkzNl19fX19fX19fX0sMTExOntsOnsxMDA6e2w6ezU5OntjOls4NzE5XX19fSwxMDI6e2w6ezk3OntsOnsxMDg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls5MDA2XX19fX19fX19fSwxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOls4OTc4XX19fX19fX19fSwxMTU6e2w6ezExNzp7bDp7MTE0OntsOnsxMDI6e2w6ezU5OntjOls4OTc5XX19fX19fX19fX19LDExMjp7bDp7NTk6e2M6Wzg3MzNdfSwxMTY6e2w6ezExMTp7bDp7NTk6e2M6Wzg3MzNdfX19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODMwXX19fX19fX0sMTE3OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTA4OntsOns1OTp7YzpbODg4MF19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMDVdfX19fX0sMTA1OntsOns1OTp7YzpbOTY4XX19fX19LDExNzp7bDp7MTEwOntsOns5OTp7bDp7MTE1OntsOnsxMTI6e2w6ezU5OntjOls4MjAwXX19fX19fX19fX19fX0sMTEzOntsOnsxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDExMF19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NjRdfX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTYyXX19fX19fX0sMTEyOntsOnsxMTQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezU5OntjOls4Mjc5XX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwNl19fX19fX19LDExNzp7bDp7OTc6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezExMDp7bDp7MTA1OntsOnsxMTE6e2w6ezExMDp7bDp7MTE1OntsOns1OTp7YzpbODQ2MV19fX19fX19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzc0XX19fX19fX19fX19LDEwMTp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOls2M119LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc5OV19fX19fX19fX19fSwxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzM0XX19LGM6WzM0XX19fX19fX0sMTE0OntsOns2NTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY2N119fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1OF19fX19fSwxMTY6e2w6ezk3OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTI0XX19fX19fX19fX19LDY2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUxMV19fX19fX19fX0sNzI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5Nl19fX19fX19LDk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODc2NSw4MTddfX19LDExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlszNDFdfX19fX19fX19LDEwMDp7bDp7MTA1OntsOns5OTp7bDp7NTk6e2M6Wzg3MzBdfX19fX19fSwxMDE6e2w6ezEwOTp7bDp7MTEyOntsOnsxMTY6e2w6ezEyMTp7bDp7MTE4OntsOns1OTp7YzpbMTA2NzVdfX19fX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjE3XX0sMTAwOntsOns1OTp7YzpbMTA2NDJdfX19LDEwMTp7bDp7NTk6e2M6WzEwNjYxXX19fSwxMDg6e2w6ezEwMTp7bDp7NTk6e2M6WzEwMjE3XX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7MTExOntsOns1OTp7YzpbMTg3XX19LGM6WzE4N119fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg1OTRdfSw5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA2MTNdfX19fX0sOTg6e2w6ezU5OntjOls4Njc3XX0sMTAyOntsOnsxMTU6e2w6ezU5OntjOlsxMDUyOF19fX19fX19LDk5OntsOns1OTp7YzpbMTA1NDddfX19LDEwMjp7bDp7MTE1OntsOns1OTp7YzpbMTA1MjZdfX19fX0sMTA0OntsOnsxMDc6e2w6ezU5OntjOls4NjE4XX19fX19LDEwODp7bDp7MTEyOntsOns1OTp7YzpbODYyMF19fX19fSwxMTI6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTY1XX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDYxMl19fX19fX19LDExNjp7bDp7MTA4OntsOns1OTp7YzpbODYxMV19fX19fSwxMTk6e2w6ezU5OntjOls4NjA1XX19fX19fX0sMTE2OntsOns5Nzp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsxMDUyMl19fX19fX19LDEwNTp7bDp7MTExOntsOns1OTp7YzpbODc1OF19LDExMDp7bDp7OTc6e2w6ezEwODp7bDp7MTE1OntsOns1OTp7YzpbODQ3NF19fX19fX19fX19fX19fX19fSw5ODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA1MDldfX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOlsxMDA5OV19fX19fX19LDExNDp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOlsxMjVdfX19LDEwNzp7bDp7NTk6e2M6WzkzXX19fX19fX0sMTA3OntsOnsxMDE6e2w6ezU5OntjOlsxMDYzNl19fX0sMTE1OntsOnsxMDg6e2w6ezEwMDp7bDp7NTk6e2M6WzEwNjM4XX19fSwxMTc6e2w6ezU5OntjOlsxMDY0MF19fX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM0NV19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzQzXX19fX19fX0sMTA1OntsOnsxMDg6e2w6ezU5OntjOls4OTY5XX19fX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEyNV19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg4XX19fX19LDEwMDp7bDp7OTk6e2w6ezk3OntsOns1OTp7YzpbMTA1NTFdfX19fX0sMTA4OntsOnsxMDA6e2w6ezEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjAxXX19fX19fX19fX19LDExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjIxXX0sMTE0OntsOns1OTp7YzpbODIyMV19fX19fX19fX0sMTE1OntsOnsxMDQ6e2w6ezU5OntjOls4NjI3XX19fX19fX0sMTAxOntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODQ3Nl19LDEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOls4NDc1XX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOnsxMTY6e2w6ezU5OntjOls4NDc2XX19fX19fX19fSwxMTU6e2w6ezU5OntjOls4NDc3XX19fX19fX0sOTk6e2w6ezExNjp7bDp7NTk6e2M6Wzk2NDVdfX19fX0sMTAzOntsOns1OTp7YzpbMTc0XX19LGM6WzE3NF19fX0sMTAyOntsOnsxMDU6e2w6ezExNTp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOlsxMDYyMV19fX19fX19fX0sMTA4OntsOnsxMTE6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODk3MV19fX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMTExXX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTAwOntsOns1OTp7YzpbODY0MV19fX0sMTE3OntsOns1OTp7YzpbODY0MF19LDEwODp7bDp7NTk6e2M6WzEwNjA0XX19fX19fX19fSwxMTE6e2w6ezU5OntjOls5NjFdfSwxMTg6e2w6ezU5OntjOlsxMDA5XX19fX19fX0sMTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5NF19LDExNjp7bDp7OTc6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbODYxMV19fX19fX19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTEyOntsOnsxMTE6e2w6ezExMTp7bDp7MTEwOntsOnsxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls4NjQxXX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg2NDBdfX19fX19fX19fX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezExNTp7bDp7NTk6e2M6Wzg2NDRdfX19fX19fX19fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExMjp7bDp7MTExOntsOnsxMTE6e2w6ezExMDp7bDp7MTE1OntsOns1OTp7YzpbODY1Ml19fX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOnsxMTU6e2w6ezU5OntjOls4NjQ5XX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTEzOntsOnsxMTc6e2w6ezEwNTp7bDp7MTAzOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYwNV19fX19fX19fX19fX19fX19fX19fX0sMTE2OntsOnsxMDQ6e2w6ezExNDp7bDp7MTAxOntsOnsxMDE6e2w6ezExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODkwOF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOls3MzBdfX19fX0sMTE1OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOnsxMTU6e2w6ezEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc4N119fX19fX19fX19fX19fX19fX19fX19fSwxMDg6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDRdfX19fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NjUyXX19fX19fX0sMTA5OntsOns1OTp7YzpbODIwN119fX19fSwxMDk6e2w6ezExMTp7bDp7MTE3OntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6WzkxMzddfSw5Nzp7bDp7OTk6e2w6ezEwNDp7bDp7MTAxOntsOns1OTp7YzpbOTEzN119fX19fX19fX19fX19fX19fX19LDExMDp7bDp7MTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6WzEwOTkwXX19fX19fX19fSwxMTE6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjIxXX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODcwMl19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwMjE1XX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MzBdfX19fX0sMTAyOntsOns1OTp7YzpbMTIwMTYzXX19fSwxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA3OThdfX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbMTA4MDVdfX19fX19fX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls0MV19LDEwMzp7bDp7MTE2OntsOns1OTp7YzpbMTA2NDRdfX19fX19fX19LDExMjp7bDp7MTExOntsOnsxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDc3MF19fX19fX19fX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjQ5XX19fX19fX19fSwxMTU6e2w6ezk3OntsOnsxMTM6e2w6ezExNzp7bDp7MTExOntsOns1OTp7YzpbODI1MF19fX19fX19fX0sOTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwN119fX19fSwxMDQ6e2w6ezU5OntjOls4NjI1XX19fSwxMTM6e2w6ezk4OntsOns1OTp7YzpbOTNdfX19LDExNzp7bDp7MTExOntsOns1OTp7YzpbODIxN119LDExNDp7bDp7NTk6e2M6WzgyMTddfX19fX19fX19fX0sMTE2OntsOnsxMDQ6e2w6ezExNDp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4OTA4XX19fX19fX19fSwxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4OTA2XX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NTddfSwxMDE6e2w6ezU5OntjOls4ODg1XX19fSwxMDI6e2w6ezU5OntjOls5NjU2XX19fSwxMDg6e2w6ezExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOlsxMDcwMl19fX19fX19fX19fX19fX0sMTE3OntsOnsxMDg6e2w6ezExNzp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDBdfX19fX19fX19fX19fSwxMjA6e2w6ezU5OntjOls4NDc4XX19fX19LDExNTp7bDp7OTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzQ3XX19fX19fX19fX19LDk4OntsOnsxMTM6e2w6ezExNzp7bDp7MTExOntsOns1OTp7YzpbODIxOF19fX19fX19fX0sOTk6e2w6ezU5OntjOls4ODI3XX0sNjk6e2w6ezU5OntjOlsxMDkzMl19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTM2XX19fSwxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzUzXX19fX19fX19fSw5OTp7bDp7MTE3OntsOnsxMDE6e2w6ezU5OntjOls4ODI5XX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA5MjhdfSwxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzUxXX19fX19fX19fSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszNDldfX19fX19fSwxMTA6e2w6ezY5OntsOns1OTp7YzpbMTA5MzRdfX19LDk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDkzOF19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODkzN119fX19fX19fX0sMTEyOntsOnsxMTE6e2w6ezEwODp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzcxXX19fX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MzFdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg5XX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTAxXX0sOTg6e2w6ezU5OntjOls4ODY1XX19fSwxMDE6e2w6ezU5OntjOlsxMDg1NF19fX19fX19fX0sMTAxOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjY0XX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTA0OntsOnsxMDc6e2w6ezU5OntjOlsxMDUzM119fX19fSwxMTQ6e2w6ezU5OntjOls4NjAwXX0sMTExOntsOnsxMTk6e2w6ezU5OntjOls4NjAwXX19fX19fX19fX19LDk5OntsOnsxMTY6e2w6ezU5OntjOlsxNjddfX0sYzpbMTY3XX19fSwxMDk6e2w6ezEwNTp7bDp7NTk6e2M6WzU5XX19fX19LDExNTp7bDp7MTE5OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1MzddfX19fX19fX19LDExNjp7bDp7MTA5OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4NzI2XX19fX19fX19fSwxMTA6e2w6ezU5OntjOls4NzI2XX19fX19fX0sMTIwOntsOnsxMTY6e2w6ezU5OntjOlsxMDAzOF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTEyXX0sMTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzg5OTRdfX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezU5OntjOls5ODM5XX19fX19fX0sOTk6e2w6ezEwNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOTddfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDk2XX19fX19LDExMTp7bDp7MTE0OntsOnsxMTY6e2w6ezEwOTp7bDp7MTA1OntsOnsxMDA6e2w6ezU5OntjOls4NzM5XX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezEwMTp7bDp7MTA4OntsOns1OTp7YzpbODc0MV19fX19fX19fX19fX19fX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxNzNdfX0sYzpbMTczXX19fSwxMDU6e2w6ezEwMzp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6Wzk2M119LDEwMjp7bDp7NTk6e2M6Wzk2Ml19fX0sMTE4OntsOns1OTp7YzpbOTYyXX19fX19fX19fSwxMDk6e2w6ezU5OntjOls4NzY0XX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODU4XX19fX19fX0sMTAxOntsOns1OTp7YzpbODc3MV19LDExMzp7bDp7NTk6e2M6Wzg3NzFdfX19fX0sMTAzOntsOns1OTp7YzpbMTA5MTBdfSw2OTp7bDp7NTk6e2M6WzEwOTEyXX19fX19LDEwODp7bDp7NTk6e2M6WzEwOTA5XX0sNjk6e2w6ezU5OntjOlsxMDkxMV19fX19fSwxMTA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzRdfX19fX0sMTEyOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA3ODhdfX19fX19fX19LDExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA2MTBdfX19fX19fX19fX19fSwxMDg6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg1OTJdfX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezEwODp7bDp7MTA4OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOnsxMDk6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjZdfX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTA0OntsOnsxMTI6e2w6ezU5OntjOlsxMDgwM119fX19fX19fX0sMTAxOntsOnsxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNTp7bDp7MTA4OntsOns1OTp7YzpbMTA3MjRdfX19fX19fX19fX19fSwxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3MzldfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbODk5NV19fX19fX19LDExNjp7bDp7NTk6e2M6WzEwOTIyXX0sMTAxOntsOns1OTp7YzpbMTA5MjRdfSwxMTU6e2w6ezU5OntjOlsxMDkyNCw2NTAyNF19fX19fX19fX0sMTExOntsOnsxMDI6e2w6ezExNjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDBdfX19fX19fX19LDEwODp7bDp7NTk6e2M6WzQ3XX0sOTg6e2w6ezU5OntjOlsxMDY5Ml19LDk3OntsOnsxMTQ6e2w6ezU5OntjOls5MDIzXX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE2NF19fX19fX19LDExMjp7bDp7OTc6e2w6ezEwMDp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls5ODI0XX0sMTE3OntsOnsxMDU6e2w6ezExNjp7bDp7NTk6e2M6Wzk4MjRdfX19fX19fX19fX19fSwxMTQ6e2w6ezU5OntjOls4NzQxXX19fX19fX0sMTEzOntsOns5OTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4NTFdfSwxMTU6e2w6ezU5OntjOls4ODUxLDY1MDI0XX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOls4ODUyXX0sMTE1OntsOns1OTp7YzpbODg1Miw2NTAyNF19fX19fX19fX0sMTE1OntsOnsxMTc6e2w6ezk4OntsOns1OTp7YzpbODg0N119LDEwMTp7bDp7NTk6e2M6Wzg4NDldfX19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ3XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODQ5XX19fX19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODg0OF19LDEwMTp7bDp7NTk6e2M6Wzg4NTBdfX19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ4XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODUwXX19fX19fX19fX19fX19fX19LDExNzp7bDp7NTk6e2M6Wzk2MzNdfSw5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NjMzXX19fSwxMDI6e2w6ezU5OntjOls5NjQyXX19fX19fX0sMTAyOntsOns1OTp7YzpbOTY0Ml19fX19fX19LDExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5NF19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDA4XX19fX19LDEwMTp7bDp7MTE2OntsOnsxMDk6e2w6ezExMDp7bDp7NTk6e2M6Wzg3MjZdfX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5OTVdfX19fX19fX19LDExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTAyOntsOns1OTp7YzpbODkwMl19fX19fX19fX19fSwxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls5NzM0XX0sMTAyOntsOns1OTp7YzpbOTczM119fX19fX19LDExNDp7bDp7OTc6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7MTAxOntsOnsxMTI6e2w6ezExNTp7bDp7MTA1OntsOnsxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMTAxM119fX19fX19fX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk4MV19fX19fX19fX19fX19fX19fSwxMTA6e2w6ezExNTp7bDp7NTk6e2M6WzE3NV19fX19fX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6Wzg4MzRdfSw2OTp7bDp7NTk6e2M6WzEwOTQ5XX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5NDFdfX19fX19fSwxMDE6e2w6ezU5OntjOls4ODM4XX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwOTQ3XX19fX19fX19fSwxMDk6e2w6ezExNzp7bDp7MTA4OntsOnsxMTY6e2w6ezU5OntjOlsxMDk0NV19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6WzEwOTU1XX19fSwxMDE6e2w6ezU5OntjOls4ODQyXX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTQzXX19fX19fX19fSwxMTQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjE3XX19fX19fX19fSwxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNF19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODgzOF19LDExMzp7bDp7NTk6e2M6WzEwOTQ5XX19fX19fX0sMTEwOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDJdfSwxMTM6e2w6ezU5OntjOlsxMDk1NV19fX19fX19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbMTA5NTFdfX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEwOTY1XX19fSwxMTI6e2w6ezU5OntjOlsxMDk2M119fX19fX19fX0sOTk6e2w6ezk5OntsOns1OTp7YzpbODgyN119LDk3OntsOnsxMTI6e2w6ezExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6WzEwOTM2XX19fX19fX19fX19fX0sOTk6e2w6ezExNzp7bDp7MTE0OntsOnsxMDg6e2w6ezEyMTp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODI5XX19fX19fX19fX19fX19fSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwOTI4XX19fX19LDExMDp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA5MzhdfX19fX19fX19fX19fSwxMDE6e2w6ezExMzp7bDp7MTEzOntsOns1OTp7YzpbMTA5MzRdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODkzN119fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MzFdfX19fX19fX19fX0sMTA5OntsOns1OTp7YzpbODcyMV19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOls5ODM0XX19fX19LDExMjp7bDp7NDk6e2w6ezU5OntjOlsxODVdfX0sYzpbMTg1XX0sNTA6e2w6ezU5OntjOlsxNzhdfX0sYzpbMTc4XX0sNTE6e2w6ezU5OntjOlsxNzldfX0sYzpbMTc5XX0sNTk6e2M6Wzg4MzVdfSw2OTp7bDp7NTk6e2M6WzEwOTUwXX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5NDJdfX19fX0sMTE1OntsOnsxMTc6e2w6ezk4OntsOns1OTp7YzpbMTA5NjhdfX19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MzldfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5NDhdfX19fX19fX19LDEwNDp7bDp7MTE1OntsOnsxMTE6e2w6ezEwODp7bDp7NTk6e2M6WzEwMTg1XX19fX19LDExNzp7bDp7OTg6e2w6ezU5OntjOlsxMDk2N119fX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYxOV19fX19fX19fX0sMTA5OntsOnsxMTc6e2w6ezEwODp7bDp7MTE2OntsOns1OTp7YzpbMTA5NDZdfX19fX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOlsxMDk1Nl19fX0sMTAxOntsOns1OTp7YzpbODg0M119fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDk0NF19fX19fX19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MzVdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4MzldfSwxMTM6e2w6ezU5OntjOlsxMDk1MF19fX19fX19LDExMDp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODQzXX0sMTEzOntsOns1OTp7YzpbMTA5NTZdfX19fX19fX19fX19fSwxMDU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwOTUyXX19fX19LDExNzp7bDp7OTg6e2w6ezU5OntjOlsxMDk2NF19fX0sMTEyOntsOns1OTp7YzpbMTA5NjZdfX19fX19fX19fX0sMTE5OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjY1XX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTA0OntsOnsxMDc6e2w6ezU5OntjOlsxMDUzNF19fX19fSwxMTQ6e2w6ezU5OntjOls4NjAxXX0sMTExOntsOnsxMTk6e2w6ezU5OntjOls4NjAxXX19fX19fX19fX19LDExMDp7bDp7MTE5OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1MzhdfX19fX19fX19fX0sMTIyOntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMjIzXX19LGM6WzIyM119fX19fX19fX0sMTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMDM6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODk4Ml19fX19fX19fX0sMTE3OntsOns1OTp7YzpbOTY0XX19fX19LDk4OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzkxNDBdfX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszNTddfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzM1NV19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA5MF19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODQxMV19fX19fX19LDEwMTp7bDp7MTA4OntsOnsxMTQ6e2w6ezEwMTp7bDp7OTk6e2w6ezU5OntjOls4OTgxXX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTEzXX19fX19LDEwNDp7bDp7MTAxOntsOnsxMTQ6e2w6ezEwMTp7bDp7NTI6e2w6ezU5OntjOls4NzU2XX19fSwxMDI6e2w6ezExMTp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls4NzU2XX19fX19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk1Ml19LDExNTp7bDp7MTIxOntsOnsxMDk6e2w6ezU5OntjOls5NzddfX19fX19fSwxMTg6e2w6ezU5OntjOls5NzddfX19fX19fX19LDEwNTp7bDp7OTk6e2w6ezEwNzp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbODc3Nl19fX19fX19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4NzY0XX19fX19fX19fX19LDExMDp7bDp7MTE1OntsOnsxMTI6e2w6ezU5OntjOls4MjAxXX19fX19fX19fSwxMDc6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOls4Nzc2XX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4NzY0XX19fX19fX19fSwxMTE6e2w6ezExNDp7bDp7MTEwOntsOns1OTp7YzpbMjU0XX19LGM6WzI1NF19fX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzczMl19fX19fX19LDEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsyMTVdfSw5ODp7bDp7NTk6e2M6Wzg4NjRdfSw5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA4MDFdfX19fX19fSwxMDA6e2w6ezU5OntjOlsxMDgwMF19fX19LGM6WzIxNV19fX19fSwxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NDldfX19fX19fSwxMTE6e2w6ezEwMTp7bDp7OTc6e2w6ezU5OntjOlsxMDUzNl19fX19fSwxMTI6e2w6ezU5OntjOls4ODY4XX0sOTg6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbOTAxNF19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwOTkzXX19fX19fX0sMTAyOntsOns1OTp7YzpbMTIwMTY1XX0sMTExOntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwOTcwXX19fX19fX19fX19LDExNTp7bDp7OTc6e2w6ezU5OntjOlsxMDUzN119fX19fX19LDExMjp7bDp7MTE0OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbODI0NF19fX19fX19fX19fSwxMTQ6e2w6ezk3OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg0ODJdfX19fX19fSwxMDU6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls5NjUzXX0sMTAwOntsOnsxMTE6e2w6ezExOTp7bDp7MTEwOntsOns1OTp7YzpbOTY2M119fX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbOTY2N119LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODg4NF19fX19fX19fX19fX19LDExMzp7bDp7NTk6e2M6Wzg3OTZdfX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbOTY1N119LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODg4NV19fX19fX19fX19fX19fX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls5NzA4XX19fX19fX0sMTAxOntsOns1OTp7YzpbODc5Nl19fX0sMTA5OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDgxMF19fX19fX19fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDgwOV19fX19fX19fX0sMTE1OntsOns5ODp7bDp7NTk6e2M6WzEwNzAxXX19fX19LDExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzEwODExXX19fX19fX19fX19LDExMjp7bDp7MTAxOntsOnsxMjI6e2w6ezEwNTp7bDp7MTE3OntsOnsxMDk6e2w6ezU5OntjOls5MTg2XX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMDldfX19LDEyMTp7bDp7NTk6e2M6WzEwOTRdfX19fX0sMTA0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExNV19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzM1OV19fX19fX19fX19fSwxMTk6e2w6ezEwNTp7bDp7MTIwOntsOnsxMTY6e2w6ezU5OntjOls4ODEyXX19fX19fX0sMTExOntsOnsxMDQ6e2w6ezEwMTp7bDp7OTc6e2w6ezEwMDp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYwNl19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYwOF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTddfX19fX19fSw3Mjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTk1XX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMjUwXX19LGM6WzI1MF19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5M119fX19fX19LDk4OntsOnsxMTQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTE4XX19fX19LDEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlszNjVdfX19fX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzI1MV19fSxjOlsyNTFdfX19fX0sMTIxOntsOns1OTp7YzpbMTA5MV19fX19fSwxMDA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDVdfX19fX19fSw5ODp7bDp7MTA4OntsOns5Nzp7bDp7OTk6e2w6ezU5OntjOlszNjldfX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjA2XX19fX19fX19fSwxMDI6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6WzEwNjIyXX19fX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMjAxMTRdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzI0OV19fSxjOlsyNDldfX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTA4OntsOns1OTp7YzpbODYzOV19fX0sMTE0OntsOns1OTp7YzpbODYzOF19fX19fX19LDk4OntsOnsxMDg6e2w6ezEwNzp7bDp7NTk6e2M6Wzk2MDBdfX19fX19fX19LDEwODp7bDp7OTk6e2w6ezExMTp7bDp7MTE0OntsOnsxMTA6e2w6ezU5OntjOls4OTg4XX0sMTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTg4XX19fX19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4OTc1XX19fX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOns1OTp7YzpbOTcyMF19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzM2M119fX19fX19LDEwODp7bDp7NTk6e2M6WzE2OF19fSxjOlsxNjhdfX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM3MV19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTY2XX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5M119fX19fX19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk3XX19fX19fX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezExMTp7bDp7MTExOntsOnsxMTA6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg2MzldfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODYzOF19fX19fX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODQ2XX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezU5OntjOls5NjVdfSwxMDQ6e2w6ezU5OntjOls5NzhdfX19LDEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls5NjVdfX19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezExNTp7bDp7NTk6e2M6Wzg2NDhdfX19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezk5OntsOnsxMTE6e2w6ezExNDp7bDp7MTEwOntsOns1OTp7YzpbODk4OV19LDEwMTp7bDp7MTE0OntsOns1OTp7YzpbODk4OV19fX19fX19fX19fSwxMTQ6e2w6ezExMTp7bDp7MTEyOntsOns1OTp7YzpbODk3NF19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzM2N119fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls5NzIxXX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMTBdfX19fX19fSwxMTY6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTQ0XX19fX19fX0sMTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMzYxXX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NTNdfSwxMDI6e2w6ezU5OntjOls5NjUyXX19fX19fX19fSwxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDhdfX19fX19fSwxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzI1Ml19fSxjOlsyNTJdfX19fX0sMTE5OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbMTA2NjNdfX19fX19fX19fX19fX19LDExODp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY2MV19fX19fX19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA5ODRdfSwxMTg6e2w6ezU5OntjOlsxMDk4NV19fX19fX19fX0sNjg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzJdfX19fX19fX19LDk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTE0OntsOnsxMTY6e2w6ezU5OntjOlsxMDY1Ml19fX19fX19fX0sMTE0OntsOnsxMDE6e2w6ezExMjp7bDp7MTE1OntsOnsxMDU6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsxMDEzXX19fX19fX19fX19fX19fSwxMDc6e2w6ezk3OntsOnsxMTI6e2w6ezExMjp7bDp7OTc6e2w6ezU5OntjOlsxMDA4XX19fX19fX19fX19LDExMDp7bDp7MTExOntsOnsxMTY6e2w6ezEwNDp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg3MDldfX19fX19fX19fX19fX19LDExMjp7bDp7MTA0OntsOnsxMDU6e2w6ezU5OntjOls5ODFdfX19fX0sMTA1OntsOns1OTp7YzpbOTgyXX19fSwxMTQ6e2w6ezExMTp7bDp7MTEyOntsOnsxMTY6e2w6ezExMTp7bDp7NTk6e2M6Wzg3MzNdfX19fX19fX19fX19fSwxMTQ6e2w6ezU5OntjOls4NTk3XX0sMTA0OntsOnsxMTE6e2w6ezU5OntjOlsxMDA5XX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6Wzk2Ml19fX19fX19fX0sMTE3OntsOns5ODp7bDp7MTE1OntsOnsxMDE6e2w6ezExNjp7bDp7MTEwOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDIsNjUwMjRdfSwxMTM6e2w6ezU5OntjOlsxMDk1NSw2NTAyNF19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezExMDp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODQzLDY1MDI0XX0sMTEzOntsOns1OTp7YzpbMTA5NTYsNjUwMjRdfX19fX19fX19fX19fX19fX19fX19LDExNjp7bDp7MTA0OntsOnsxMDE6e2w6ezExNjp7bDp7OTc6e2w6ezU5OntjOls5NzddfX19fX19fX19LDExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls4ODgyXX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg4ODNdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA3NF19fX19fSwxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NjZdfX19fX19fX19LDEwMTp7bDp7MTAxOntsOns1OTp7YzpbODc0NF19LDk4OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODg5MV19fX19fX19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc5NF19fX19fX19LDEwODp7bDp7MTA4OntsOnsxMDU6e2w6ezExMjp7bDp7NTk6e2M6Wzg5NDJdfX19fX19fX19LDExNDp7bDp7OTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMjRdfX19fX19fSwxMTY6e2w6ezU5OntjOlsxMjRdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDExNV19fX19fSwxMDg6e2w6ezExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls4ODgyXX19fX19fX19fSwxMTA6e2w6ezExNTp7bDp7MTE3OntsOns5ODp7bDp7NTk6e2M6Wzg4MzQsODQwMl19fX0sMTEyOntsOns1OTp7YzpbODgzNSw4NDAyXX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTY3XX19fX19fX0sMTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTEyOntsOns1OTp7YzpbODczM119fX19fX19fX0sMTE0OntsOnsxMTY6e2w6ezExNDp7bDp7MTA1OntsOns1OTp7YzpbODg4M119fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDExXX19fX19LDExNzp7bDp7OTg6e2w6ezExMDp7bDp7Njk6e2w6ezU5OntjOlsxMDk1NSw2NTAyNF19fX0sMTAxOntsOns1OTp7YzpbODg0Miw2NTAyNF19fX19fX19LDExMjp7bDp7MTEwOntsOns2OTp7bDp7NTk6e2M6WzEwOTU2LDY1MDI0XX19fSwxMDE6e2w6ezU5OntjOls4ODQzLDY1MDI0XX19fX19fX19fX19LDEyMjp7bDp7MTA1OntsOnsxMDM6e2w6ezEyMjp7bDp7OTc6e2w6ezEwMzp7bDp7NTk6e2M6WzEwNjUwXX19fX19fX19fX19fX19fSwxMTk6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszNzNdfX19fX19fX19LDEwMTp7bDp7MTAwOntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwODQ3XX19fX19fX0sMTAzOntsOnsxMDE6e2w6ezU5OntjOls4NzQzXX0sMTEzOntsOns1OTp7YzpbODc5M119fX19fX19fX0sMTA1OntsOnsxMDE6e2w6ezExNDp7bDp7MTEyOntsOns1OTp7YzpbODQ3Ml19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDExNl19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTY4XX19fX19fX0sMTEyOntsOns1OTp7YzpbODQ3Ml19fX0sMTE0OntsOns1OTp7YzpbODc2OF19LDEwMTp7bDp7OTc6e2w6ezExNjp7bDp7MTA0OntsOns1OTp7YzpbODc2OF19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMTJdfX19fX19fX19LDEyMDp7bDp7OTk6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOls4ODk4XX19fX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6Wzk3MTFdfX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4OTldfX19fX19fSwxMDA6e2w6ezExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls5NjYxXX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDExN119fX19fSwxMDQ6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwMjM0XX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMzFdfX19fX19fX19LDEwNTp7bDp7NTk6e2M6Wzk1OF19fX0sMTA4OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDIzMl19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwMjI5XX19fX19fX19fSwxMDk6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDIzNl19fX19fX19LDExMDp7bDp7MTA1OntsOnsxMTU6e2w6ezU5OntjOls4OTU1XX19fX19fX0sMTExOntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA3NTJdfX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE2OV19fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwNzUzXX19fX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezU5OntjOlsxMDc1NF19fX19fX19fX19fSwxMTQ6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwMjMzXX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMzBdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxM119fX19fSwxMTM6e2w6ezk5OntsOnsxMTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwNzU4XX19fX19fX19fX19LDExNzp7bDp7MTEyOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA3NTZdfX19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls5NjUxXX19fX19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg5N119fX19fX19LDExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbODg5Nl19fX19fX19fX19fX19LDEyMTp7bDp7OTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMjUzXX19LGM6WzI1M119fX19fSwxMjE6e2w6ezU5OntjOlsxMTAzXX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzM3NV19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwOTldfX19fX0sMTAxOntsOnsxMTA6e2w6ezU5OntjOlsxNjVdfX0sYzpbMTY1XX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDExOF19fX19fSwxMDU6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTExXX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE3MF19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxNF19fX19fX19LDExNzp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDJdfX19fX0sMTA5OntsOnsxMDg6e2w6ezU5OntjOlsyNTVdfX0sYzpbMjU1XX19fX19fX0sMTIyOntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlszNzhdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzgyXX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDc5XX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlszODBdfX19fX19fSwxMDE6e2w6ezEwMTp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0ODhdfX19fX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5NTBdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDExOV19fX19fSwxMDQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDc4XX19fX19fX0sMTA1OntsOnsxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY2OV19fX19fX19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNzFdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMTVdfX19fX19fSwxMTk6e2w6ezEwNjp7bDp7NTk6e2M6WzgyMDVdfX19LDExMDp7bDp7MTA2OntsOns1OTp7YzpbODIwNF19fX19fX19fX19OworCit9LHt9XSwxMzpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7CisndXNlIHN0cmljdCc7CisKK3ZhciBVTklDT0RFID0gcmVxdWlyZSgnLi4vY29tbW9uL3VuaWNvZGUnKTsKKworLy9BbGlhc2VzCit2YXIgJCA9IFVOSUNPREUuQ09ERV9QT0lOVFM7CisKKy8vVXRpbHMKKworLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZQorLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLgorLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuCitmdW5jdGlvbiBpc1Jlc2VydmVkQ29kZVBvaW50KGNwKSB7CisgICAgcmV0dXJuIGNwID49IDB4RDgwMCAmJiBjcCA8PSAweERGRkYgfHwgY3AgPiAweDEwRkZGRjsKK30KKworZnVuY3Rpb24gaXNTdXJyb2dhdGVQYWlyKGNwMSwgY3AyKSB7CisgICAgcmV0dXJuIGNwMSA+PSAweEQ4MDAgJiYgY3AxIDw9IDB4REJGRiAmJiBjcDIgPj0gMHhEQzAwICYmIGNwMiA8PSAweERGRkY7Cit9CisKK2Z1bmN0aW9uIGdldFN1cnJvZ2F0ZVBhaXJDb2RlUG9pbnQoY3AxLCBjcDIpIHsKKyAgICByZXR1cm4gKGNwMSAtIDB4RDgwMCkgKiAweDQwMCArIDB4MjQwMCArIGNwMjsKK30KKworLy9QcmVwcm9jZXNzb3IKKy8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nCisvLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pCit2YXIgUHJlcHJvY2Vzc29yID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaHRtbCkgeworICAgIHRoaXMud3JpdGUoaHRtbCk7CisKKyAgICAvL05PVEU6IG9uZSBsZWFkaW5nIFUrRkVGRiBCWVRFIE9SREVSIE1BUksgY2hhcmFjdGVyIG11c3QgYmUgaWdub3JlZCBpZiBhbnkgYXJlIHByZXNlbnQgaW4gdGhlIGlucHV0IHN0cmVhbS4KKyAgICB0aGlzLnBvcyA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KDApID09PSAkLkJPTSA/IDAgOiAtMTsKKworICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTsKKyAgICB0aGlzLmxhc3RHYXBQb3MgPSAtMTsKKyAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlOworfTsKKworUHJlcHJvY2Vzc29yLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChodG1sKSB7CisgICAgaWYgKHRoaXMuaHRtbCkgeworICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKDAsIHRoaXMucG9zICsgMSkgKworICAgICAgICAgICAgICAgICAgICBodG1sICsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyArIDEsIHRoaXMuaHRtbC5sZW5ndGgpOworCisgICAgfQorICAgIGVsc2UKKyAgICAgICAgdGhpcy5odG1sID0gaHRtbDsKKworCisgICAgdGhpcy5sYXN0Q2hhclBvcyA9IHRoaXMuaHRtbC5sZW5ndGggLSAxOworfTsKKworUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5hZHZhbmNlQW5kUGVla0NvZGVQb2ludCA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLnBvcysrOworCisgICAgaWYgKHRoaXMucG9zID4gdGhpcy5sYXN0Q2hhclBvcykKKyAgICAgICAgcmV0dXJuICQuRU9GOworCisgICAgdmFyIGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MpOworCisgICAgLy9OT1RFOiBhbnkgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlcnMgdGhhdCBpbW1lZGlhdGVseSBmb2xsb3cgYSBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVyCisgICAgLy9tdXN0IGJlIGlnbm9yZWQuCisgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lICYmIGNwID09PSAkLkxJTkVfRkVFRCkgeworICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlOworICAgICAgICB0aGlzLl9hZGRHYXAoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuYWR2YW5jZUFuZFBlZWtDb2RlUG9pbnQoKTsKKyAgICB9CisKKyAgICAvL05PVEU6IGFsbCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVycyBtdXN0IGJlIGNvbnZlcnRlZCB0byBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVycworICAgIGlmIChjcCA9PT0gJC5DQVJSSUFHRV9SRVRVUk4pIHsKKyAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSB0cnVlOworICAgICAgICByZXR1cm4gJC5MSU5FX0ZFRUQ7CisgICAgfQorCisgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKKworICAgIC8vT1BUSU1JWkFUSU9OOiBmaXJzdCBwZXJmb3JtIGNoZWNrIGlmIHRoZSBjb2RlIHBvaW50IGluIHRoZSBhbGxvd2VkIHJhbmdlIHRoYXQgY292ZXJzIG1vc3QgY29tbW9uCisgICAgLy9IVE1MIGlucHV0IChlLmcuIEFTQ0lJIGNvZGVzKSB0byBhdm9pZCBwZXJmb3JtYW5jZS1jb3N0IG9wZXJhdGlvbnMgZm9yIGhpZ2gtcmFuZ2UgY29kZSBwb2ludHMuCisgICAgcmV0dXJuIGNwID49IDB4RDgwMCA/IHRoaXMuX3Byb2Nlc3NIaWdoUmFuZ2VDb2RlUG9pbnQoY3ApIDogY3A7Cit9OworCitQcmVwcm9jZXNzb3IucHJvdG90eXBlLl9wcm9jZXNzSGlnaFJhbmdlQ29kZVBvaW50ID0gZnVuY3Rpb24gKGNwKSB7CisgICAgLy9OT1RFOiB0cnkgdG8gcGVlayBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgaWYgKHRoaXMucG9zICE9PSB0aGlzLmxhc3RDaGFyUG9zKSB7CisgICAgICAgIHZhciBuZXh0Q3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyArIDEpOworCisgICAgICAgIGlmIChpc1N1cnJvZ2F0ZVBhaXIoY3AsIG5leHRDcCkpIHsKKyAgICAgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhIHN1cnJvZ2F0ZSBwYWlyLiBQZWVrIHBhaXIgY2hhcmFjdGVyIGFuZCByZWNhbGN1bGF0ZSBjb2RlIHBvaW50LgorICAgICAgICAgICAgdGhpcy5wb3MrKzsKKyAgICAgICAgICAgIGNwID0gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcCwgbmV4dENwKTsKKworICAgICAgICAgICAgLy9OT1RFOiBhZGQgZ2FwIHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQgZHVyaW5nIHJldHJlYXQKKyAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGlzUmVzZXJ2ZWRDb2RlUG9pbnQoY3ApKQorICAgICAgICBjcCA9ICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgcmV0dXJuIGNwOworfTsKKworUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5fYWRkR2FwID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuZ2FwU3RhY2sucHVzaCh0aGlzLmxhc3RHYXBQb3MpOworICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMucG9zOworfTsKKworUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5yZXRyZWF0ID0gZnVuY3Rpb24gKCkgeworICAgIGlmICh0aGlzLnBvcyA9PT0gdGhpcy5sYXN0R2FwUG9zKSB7CisgICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMuZ2FwU3RhY2sucG9wKCk7CisgICAgICAgIHRoaXMucG9zLS07CisgICAgfQorCisgICAgdGhpcy5wb3MtLTsKK307CisKK30seyIuLi9jb21tb24vdW5pY29kZSI6NH1dLDE0OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyd1c2Ugc3RyaWN0JzsKKwordmFyIFByZXByb2Nlc3NvciA9IHJlcXVpcmUoJy4vcHJlcHJvY2Vzc29yJyksCisgICAgTG9jYXRpb25JbmZvTWl4aW4gPSByZXF1aXJlKCcuL2xvY2F0aW9uX2luZm9fbWl4aW4nKSwKKyAgICBVTklDT0RFID0gcmVxdWlyZSgnLi4vY29tbW9uL3VuaWNvZGUnKSwKKyAgICBOQU1FRF9FTlRJVFlfVFJJRSA9IHJlcXVpcmUoJy4vbmFtZWRfZW50aXR5X3RyaWUnKTsKKworLy9BbGlhc2VzCit2YXIgJCA9IFVOSUNPREUuQ09ERV9QT0lOVFMsCisgICAgJCQgPSBVTklDT0RFLkNPREVfUE9JTlRfU0VRVUVOQ0VTOworCisvL1JlcGxhY2VtZW50IGNvZGUgcG9pbnRzIGZvciBudW1lcmljIGVudGl0aWVzCit2YXIgTlVNRVJJQ19FTlRJVFlfUkVQTEFDRU1FTlRTID0geworICAgIDB4MDA6IDB4RkZGRCwgMHgwRDogMHgwMDBELCAweDgwOiAweDIwQUMsIDB4ODE6IDB4MDA4MSwgMHg4MjogMHgyMDFBLCAweDgzOiAweDAxOTIsIDB4ODQ6IDB4MjAxRSwKKyAgICAweDg1OiAweDIwMjYsIDB4ODY6IDB4MjAyMCwgMHg4NzogMHgyMDIxLCAweDg4OiAweDAyQzYsIDB4ODk6IDB4MjAzMCwgMHg4QTogMHgwMTYwLCAweDhCOiAweDIwMzksCisgICAgMHg4QzogMHgwMTUyLCAweDhEOiAweDAwOEQsIDB4OEU6IDB4MDE3RCwgMHg4RjogMHgwMDhGLCAweDkwOiAweDAwOTAsIDB4OTE6IDB4MjAxOCwgMHg5MjogMHgyMDE5LAorICAgIDB4OTM6IDB4MjAxQywgMHg5NDogMHgyMDFELCAweDk1OiAweDIwMjIsIDB4OTY6IDB4MjAxMywgMHg5NzogMHgyMDE0LCAweDk4OiAweDAyREMsIDB4OTk6IDB4MjEyMiwKKyAgICAweDlBOiAweDAxNjEsIDB4OUI6IDB4MjAzQSwgMHg5QzogMHgwMTUzLCAweDlEOiAweDAwOUQsIDB4OUU6IDB4MDE3RSwgMHg5RjogMHgwMTc4Cit9OworCisvL1N0YXRlcwordmFyIERBVEFfU1RBVEUgPSAnREFUQV9TVEFURScsCisgICAgQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9EQVRBX1NUQVRFID0gJ0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fREFUQV9TVEFURScsCisgICAgUkNEQVRBX1NUQVRFID0gJ1JDREFUQV9TVEFURScsCisgICAgQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9SQ0RBVEFfU1RBVEUgPSAnQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9SQ0RBVEFfU1RBVEUnLAorICAgIFJBV1RFWFRfU1RBVEUgPSAnUkFXVEVYVF9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfU1RBVEUgPSAnU0NSSVBUX0RBVEFfU1RBVEUnLAorICAgIFBMQUlOVEVYVF9TVEFURSA9ICdQTEFJTlRFWFRfU1RBVEUnLAorICAgIFRBR19PUEVOX1NUQVRFID0gJ1RBR19PUEVOX1NUQVRFJywKKyAgICBFTkRfVEFHX09QRU5fU1RBVEUgPSAnRU5EX1RBR19PUEVOX1NUQVRFJywKKyAgICBUQUdfTkFNRV9TVEFURSA9ICdUQUdfTkFNRV9TVEFURScsCisgICAgUkNEQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFID0gJ1JDREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURScsCisgICAgUkNEQVRBX0VORF9UQUdfT1BFTl9TVEFURSA9ICdSQ0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFJywKKyAgICBSQ0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFID0gJ1JDREFUQV9FTkRfVEFHX05BTUVfU1RBVEUnLAorICAgIFJBV1RFWFRfTEVTU19USEFOX1NJR05fU1RBVEUgPSAnUkFXVEVYVF9MRVNTX1RIQU5fU0lHTl9TVEFURScsCisgICAgUkFXVEVYVF9FTkRfVEFHX09QRU5fU1RBVEUgPSAnUkFXVEVYVF9FTkRfVEFHX09QRU5fU1RBVEUnLAorICAgIFJBV1RFWFRfRU5EX1RBR19OQU1FX1NUQVRFID0gJ1JBV1RFWFRfRU5EX1RBR19OQU1FX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURSA9ICdTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VORF9UQUdfT1BFTl9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VORF9UQUdfTkFNRV9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURScsCisgICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5fU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5fU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FX1NUQVRFID0gJ1NDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURSA9ICdTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEUnLAorICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFJywKKyAgICBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORF9TVEFURSA9ICdTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORF9TVEFURScsCisgICAgQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFID0gJ0JFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURScsCisgICAgQVRUUklCVVRFX05BTUVfU1RBVEUgPSAnQVRUUklCVVRFX05BTUVfU1RBVEUnLAorICAgIEFGVEVSX0FUVFJJQlVURV9OQU1FX1NUQVRFID0gJ0FGVEVSX0FUVFJJQlVURV9OQU1FX1NUQVRFJywKKyAgICBCRUZPUkVfQVRUUklCVVRFX1ZBTFVFX1NUQVRFID0gJ0JFRk9SRV9BVFRSSUJVVEVfVkFMVUVfU1RBVEUnLAorICAgIEFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEX1NUQVRFID0gJ0FUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEX1NUQVRFJywKKyAgICBBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRF9TVEFURSA9ICdBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRF9TVEFURScsCisgICAgQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEX1NUQVRFID0gJ0FUVFJJQlVURV9WQUxVRV9VTlFVT1RFRF9TVEFURScsCisgICAgQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9BVFRSSUJVVEVfVkFMVUVfU1RBVEUgPSAnQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9BVFRSSUJVVEVfVkFMVUVfU1RBVEUnLAorICAgIEFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURfU1RBVEUgPSAnQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRF9TVEFURScsCisgICAgU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURSA9ICdTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFJywKKyAgICBCT0dVU19DT01NRU5UX1NUQVRFID0gJ0JPR1VTX0NPTU1FTlRfU1RBVEUnLAorICAgIE1BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFID0gJ01BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFJywKKyAgICBDT01NRU5UX1NUQVJUX1NUQVRFID0gJ0NPTU1FTlRfU1RBUlRfU1RBVEUnLAorICAgIENPTU1FTlRfU1RBUlRfREFTSF9TVEFURSA9ICdDT01NRU5UX1NUQVJUX0RBU0hfU1RBVEUnLAorICAgIENPTU1FTlRfU1RBVEUgPSAnQ09NTUVOVF9TVEFURScsCisgICAgQ09NTUVOVF9FTkRfREFTSF9TVEFURSA9ICdDT01NRU5UX0VORF9EQVNIX1NUQVRFJywKKyAgICBDT01NRU5UX0VORF9TVEFURSA9ICdDT01NRU5UX0VORF9TVEFURScsCisgICAgQ09NTUVOVF9FTkRfQkFOR19TVEFURSA9ICdDT01NRU5UX0VORF9CQU5HX1NUQVRFJywKKyAgICBET0NUWVBFX1NUQVRFID0gJ0RPQ1RZUEVfU1RBVEUnLAorICAgIEJFRk9SRV9ET0NUWVBFX05BTUVfU1RBVEUgPSAnQkVGT1JFX0RPQ1RZUEVfTkFNRV9TVEFURScsCisgICAgRE9DVFlQRV9OQU1FX1NUQVRFID0gJ0RPQ1RZUEVfTkFNRV9TVEFURScsCisgICAgQUZURVJfRE9DVFlQRV9OQU1FX1NUQVRFID0gJ0FGVEVSX0RPQ1RZUEVfTkFNRV9TVEFURScsCisgICAgQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRF9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEX1NUQVRFJywKKyAgICBCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TVEFURSA9ICdCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TVEFURScsCisgICAgRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURScsCisgICAgRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURScsCisgICAgQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFJywKKyAgICBCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNfU1RBVEUgPSAnQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTX1NUQVRFJywKKyAgICBBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEX1NUQVRFID0gJ0FGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRfU1RBVEUnLAorICAgIEJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFID0gJ0JFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFJywKKyAgICBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEUgPSAnRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFJywKKyAgICBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEUgPSAnRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFJywKKyAgICBBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFID0gJ0FGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEUnLAorICAgIEJPR1VTX0RPQ1RZUEVfU1RBVEUgPSAnQk9HVVNfRE9DVFlQRV9TVEFURScsCisgICAgQ0RBVEFfU0VDVElPTl9TVEFURSA9ICdDREFUQV9TRUNUSU9OX1NUQVRFJzsKKworLy9VdGlscworCisvL09QVElNSVpBVElPTjogdGhlc2UgdXRpbGl0eSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBtb3ZlZCBvdXQgb2YgdGhpcyBtb2R1bGUuIFY4IENyYW5rc2hhZnQgd2lsbCBub3QgaW5saW5lCisvL3RoaXMgZnVuY3Rpb25zIGlmIHRoZXkgd2lsbCBiZSBzaXR1YXRlZCBpbiBhbm90aGVyIG1vZHVsZSBkdWUgdG8gY29udGV4dCBzd2l0Y2guCisvL0Fsd2F5cyBwZXJmb3JtIGlubGluaW5nIGNoZWNrIGJlZm9yZSBtb2RpZnlpbmcgdGhpcyBmdW5jdGlvbnMgKCdub2RlIC0tdHJhY2UtaW5saW5pbmcnKS4KK2Z1bmN0aW9uIGlzV2hpdGVzcGFjZShjcCkgeworICAgIHJldHVybiBjcCA9PT0gJC5TUEFDRSB8fCBjcCA9PT0gJC5MSU5FX0ZFRUQgfHwgY3AgPT09ICQuVEFCVUxBVElPTiB8fCBjcCA9PT0gJC5GT1JNX0ZFRUQ7Cit9CisKK2Z1bmN0aW9uIGlzQXNjaWlEaWdpdChjcCkgeworICAgIHJldHVybiBjcCA+PSAkLkRJR0lUXzAgJiYgY3AgPD0gJC5ESUdJVF85OworfQorCitmdW5jdGlvbiBpc0FzY2lpVXBwZXIoY3ApIHsKKyAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9DQVBJVEFMX0EgJiYgY3AgPD0gJC5MQVRJTl9DQVBJVEFMX1o7Cit9CisKK2Z1bmN0aW9uIGlzQXNjaWlMb3dlcihjcCkgeworICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9aOworfQorCitmdW5jdGlvbiBpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSB7CisgICAgcmV0dXJuIGlzQXNjaWlEaWdpdChjcCkgfHwgaXNBc2NpaVVwcGVyKGNwKSB8fCBpc0FzY2lpTG93ZXIoY3ApOworfQorCitmdW5jdGlvbiBpc0RpZ2l0KGNwLCBpc0hleCkgeworICAgIHJldHVybiBpc0FzY2lpRGlnaXQoY3ApIHx8IChpc0hleCAmJiAoKGNwID49ICQuTEFUSU5fQ0FQSVRBTF9BICYmIGNwIDw9ICQuTEFUSU5fQ0FQSVRBTF9GKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNwID49ICQuTEFUSU5fU01BTExfQSAmJiBjcCA8PSAkLkxBVElOX1NNQUxMX0YpKSk7Cit9CisKK2Z1bmN0aW9uIGlzUmVzZXJ2ZWRDb2RlUG9pbnQoY3ApIHsKKyAgICByZXR1cm4gY3AgPj0gMHhEODAwICYmIGNwIDw9IDB4REZGRiB8fCBjcCA+IDB4MTBGRkZGOworfQorCitmdW5jdGlvbiB0b0FzY2lpTG93ZXJDb2RlUG9pbnQoY3ApIHsKKyAgICByZXR1cm4gY3AgKyAweDAwMjA7Cit9CisKKy8vTk9URTogU3RyaW5nLmZyb21DaGFyQ29kZSgpIGZ1bmN0aW9uIGNhbiBoYW5kbGUgb25seSBjaGFyYWN0ZXJzIGZyb20gQk1QIHN1YnNldC4KKy8vU28sIHdlIG5lZWQgdG8gd29ya2Fyb3VuZCB0aGlzIG1hbnVhbGx5LgorLy8oc2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1N0cmluZy9mcm9tQ2hhckNvZGUjR2V0dGluZ19pdF90b193b3JrX3dpdGhfaGlnaGVyX3ZhbHVlcykKK2Z1bmN0aW9uIHRvQ2hhcihjcCkgeworICAgIGlmIChjcCA8PSAweEZGRkYpCisgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNwKTsKKworICAgIGNwIC09IDB4MTAwMDA7CisgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY3AgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweERDMDAgfCBjcCAmIDB4M0ZGKTsKK30KKworZnVuY3Rpb24gdG9Bc2NpaUxvd2VyQ2hhcihjcCkgeworICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHRvQXNjaWlMb3dlckNvZGVQb2ludChjcCkpOworfQorCisvL1Rva2VuaXplcgordmFyIFRva2VuaXplciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGh0bWwsIG9wdGlvbnMpIHsKKyAgICB0aGlzLmRpc2FibGVFbnRpdGllc0RlY29kaW5nID0gZmFsc2U7CisKKyAgICB0aGlzLnByZXByb2Nlc3NvciA9IG5ldyBQcmVwcm9jZXNzb3IoaHRtbCk7CisKKyAgICB0aGlzLnRva2VuUXVldWUgPSBbXTsKKworICAgIHRoaXMuYWxsb3dDREFUQSA9IGZhbHNlOworCisgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgdGhpcy5yZXR1cm5TdGF0ZSA9ICcnOworCisgICAgdGhpcy5jb25zdW1wdGlvblBvcyA9IDA7CisKKyAgICB0aGlzLnRlbXBCdWZmID0gW107CisgICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gdm9pZCAwOworICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnOworCisgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsOworICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDsKKyAgICB0aGlzLmN1cnJlbnRBdHRyID0gbnVsbDsKKworICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgIHRoaXMuZGlzYWJsZUVudGl0aWVzRGVjb2RpbmcgPSAhb3B0aW9ucy5kZWNvZGVIdG1sRW50aXRpZXM7CisKKyAgICAgICAgaWYgKG9wdGlvbnMubG9jYXRpb25JbmZvKQorICAgICAgICAgICAgTG9jYXRpb25JbmZvTWl4aW4uYXNzaWduKHRoaXMpOworICAgIH0KK307CisKKy8vVG9rZW4gdHlwZXMKK1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU4gPSAnQ0hBUkFDVEVSX1RPS0VOJzsKK1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTiA9ICdOVUxMX0NIQVJBQ1RFUl9UT0tFTic7CitUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4gPSAnV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4nOworVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTiA9ICdTVEFSVF9UQUdfVE9LRU4nOworVG9rZW5pemVyLkVORF9UQUdfVE9LRU4gPSAnRU5EX1RBR19UT0tFTic7CitUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTiA9ICdDT01NRU5UX1RPS0VOJzsKK1Rva2VuaXplci5ET0NUWVBFX1RPS0VOID0gJ0RPQ1RZUEVfVE9LRU4nOworVG9rZW5pemVyLkVPRl9UT0tFTiA9ICdFT0ZfVE9LRU4nOworCisvL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzCitUb2tlbml6ZXIuTU9ERSA9IFRva2VuaXplci5wcm90b3R5cGUuTU9ERSA9IHsKKyAgICBEQVRBOiBEQVRBX1NUQVRFLAorICAgIFJDREFUQTogUkNEQVRBX1NUQVRFLAorICAgIFJBV1RFWFQ6IFJBV1RFWFRfU1RBVEUsCisgICAgU0NSSVBUX0RBVEE6IFNDUklQVF9EQVRBX1NUQVRFLAorICAgIFBMQUlOVEVYVDogUExBSU5URVhUX1NUQVRFCit9OworCisvL1N0YXRpYworVG9rZW5pemVyLmdldFRva2VuQXR0ciA9IGZ1bmN0aW9uICh0b2tlbiwgYXR0ck5hbWUpIHsKKyAgICBmb3IgKHZhciBpID0gdG9rZW4uYXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IGF0dHJOYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuLmF0dHJzW2ldLnZhbHVlOworICAgIH0KKworICAgIHJldHVybiBudWxsOworfTsKKworLy9HZXQgdG9rZW4KK1Rva2VuaXplci5wcm90b3R5cGUuZ2V0TmV4dFRva2VuID0gZnVuY3Rpb24gKCkgeworICAgIHdoaWxlICghdGhpcy50b2tlblF1ZXVlLmxlbmd0aCkKKyAgICAgICAgdGhpc1t0aGlzLnN0YXRlXSh0aGlzLl9jb25zdW1lKCkpOworCisgICAgcmV0dXJuIHRoaXMudG9rZW5RdWV1ZS5zaGlmdCgpOworfTsKKworLy9Db25zdW1wdGlvbgorVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZSA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLmNvbnN1bXB0aW9uUG9zKys7CisgICAgcmV0dXJuIHRoaXMucHJlcHJvY2Vzc29yLmFkdmFuY2VBbmRQZWVrQ29kZVBvaW50KCk7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl91bmNvbnN1bWUgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5jb25zdW1wdGlvblBvcy0tOworICAgIHRoaXMucHJlcHJvY2Vzc29yLnJldHJlYXQoKTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX3VuY29uc3VtZVNldmVyYWwgPSBmdW5jdGlvbiAoY291bnQpIHsKKyAgICB3aGlsZSAoY291bnQtLSkKKyAgICAgICAgdGhpcy5fdW5jb25zdW1lKCk7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9yZWNvbnN1bWVJblN0YXRlID0gZnVuY3Rpb24gKHN0YXRlKSB7CisgICAgdGhpcy5zdGF0ZSA9IHN0YXRlOworICAgIHRoaXMuX3VuY29uc3VtZSgpOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoID0gZnVuY3Rpb24gKHBhdHRlcm4sIHN0YXJ0Q3AsIGNhc2VTZW5zaXRpdmUpIHsKKyAgICB2YXIgcm9sbGJhY2tQb3MgPSB0aGlzLmNvbnN1bXB0aW9uUG9zLAorICAgICAgICBpc01hdGNoID0gdHJ1ZSwKKyAgICAgICAgcGF0dGVybkxlbmd0aCA9IHBhdHRlcm4ubGVuZ3RoLAorICAgICAgICBwYXR0ZXJuUG9zID0gMCwKKyAgICAgICAgY3AgPSBzdGFydENwLAorICAgICAgICBwYXR0ZXJuQ3AgPSB2b2lkIDA7CisKKyAgICBmb3IgKDsgcGF0dGVyblBvcyA8IHBhdHRlcm5MZW5ndGg7IHBhdHRlcm5Qb3MrKykgeworICAgICAgICBpZiAocGF0dGVyblBvcyA+IDApCisgICAgICAgICAgICBjcCA9IHRoaXMuX2NvbnN1bWUoKTsKKworICAgICAgICBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHBhdHRlcm5DcCA9IHBhdHRlcm5bcGF0dGVyblBvc107CisKKyAgICAgICAgaWYgKGNwICE9PSBwYXR0ZXJuQ3AgJiYgKGNhc2VTZW5zaXRpdmUgfHwgY3AgIT09IHRvQXNjaWlMb3dlckNvZGVQb2ludChwYXR0ZXJuQ3ApKSkgeworICAgICAgICAgICAgaXNNYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWlzTWF0Y2gpCisgICAgICAgIHRoaXMuX3VuY29uc3VtZVNldmVyYWwodGhpcy5jb25zdW1wdGlvblBvcyAtIHJvbGxiYWNrUG9zKTsKKworICAgIHJldHVybiBpc01hdGNoOworfTsKKworLy9Mb29rYWhlYWQKK1Rva2VuaXplci5wcm90b3R5cGUuX2xvb2thaGVhZCA9IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgY3AgPSB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlQW5kUGVla0NvZGVQb2ludCgpOworICAgIHRoaXMucHJlcHJvY2Vzc29yLnJldHJlYXQoKTsKKworICAgIHJldHVybiBjcDsKK307CisKKy8vVGVtcCBidWZmZXIKK1Rva2VuaXplci5wcm90b3R5cGUuaXNUZW1wQnVmZmVyRXF1YWxUb1NjcmlwdFN0cmluZyA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAodGhpcy50ZW1wQnVmZi5sZW5ndGggIT09ICQkLlNDUklQVF9TVFJJTkcubGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGVtcEJ1ZmYubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHRoaXMudGVtcEJ1ZmZbaV0gIT09ICQkLlNDUklQVF9TVFJJTkdbaV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9OworCisvL1Rva2VuIGNyZWF0aW9uCitUb2tlbml6ZXIucHJvdG90eXBlLmJ1aWxkU3RhcnRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgdHlwZTogVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTiwKKyAgICAgICAgdGFnTmFtZTogdGFnTmFtZSwKKyAgICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLAorICAgICAgICBhdHRyczogW10KKyAgICB9OworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5idWlsZEVuZFRhZ1Rva2VuID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICByZXR1cm4geworICAgICAgICB0eXBlOiBUb2tlbml6ZXIuRU5EX1RBR19UT0tFTiwKKyAgICAgICAgdGFnTmFtZTogdGFnTmFtZSwKKyAgICAgICAgaWdub3JlZDogZmFsc2UsCisgICAgICAgIGF0dHJzOiBbXQorICAgIH07Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVTdGFydFRhZ1Rva2VuID0gZnVuY3Rpb24gKHRhZ05hbWVGaXJzdENoKSB7CisgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB0aGlzLmJ1aWxkU3RhcnRUYWdUb2tlbih0YWdOYW1lRmlyc3RDaCk7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVFbmRUYWdUb2tlbiA9IGZ1bmN0aW9uICh0YWdOYW1lRmlyc3RDaCkgeworICAgIHRoaXMuY3VycmVudFRva2VuID0gdGhpcy5idWlsZEVuZFRhZ1Rva2VuKHRhZ05hbWVGaXJzdENoKTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2NyZWF0ZUNvbW1lbnRUb2tlbiA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHsKKyAgICAgICAgdHlwZTogVG9rZW5pemVyLkNPTU1FTlRfVE9LRU4sCisgICAgICAgIGRhdGE6ICcnCisgICAgfTsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2NyZWF0ZURvY3R5cGVUb2tlbiA9IGZ1bmN0aW9uIChkb2N0eXBlTmFtZUZpcnN0Q2gpIHsKKyAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHsKKyAgICAgICAgdHlwZTogVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU4sCisgICAgICAgIG5hbWU6IGRvY3R5cGVOYW1lRmlyc3RDaCB8fCAnJywKKyAgICAgICAgZm9yY2VRdWlya3M6IGZhbHNlLAorICAgICAgICBwdWJsaWNJZDogbnVsbCwKKyAgICAgICAgc3lzdGVtSWQ6IG51bGwKKyAgICB9OworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlQ2hhcmFjdGVyVG9rZW4gPSBmdW5jdGlvbiAodHlwZSwgY2gpIHsKKyAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IHsKKyAgICAgICAgdHlwZTogdHlwZSwKKyAgICAgICAgY2hhcnM6IGNoCisgICAgfTsKK307CisKKy8vVGFnIGF0dHJpYnV0ZXMKK1Rva2VuaXplci5wcm90b3R5cGUuX2NyZWF0ZUF0dHIgPSBmdW5jdGlvbiAoYXR0ck5hbWVGaXJzdENoKSB7CisgICAgdGhpcy5jdXJyZW50QXR0ciA9IHsKKyAgICAgICAgbmFtZTogYXR0ck5hbWVGaXJzdENoLAorICAgICAgICB2YWx1ZTogJycKKyAgICB9OworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5faXNEdXBsaWNhdGVBdHRyID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiBUb2tlbml6ZXIuZ2V0VG9rZW5BdHRyKHRoaXMuY3VycmVudFRva2VuLCB0aGlzLmN1cnJlbnRBdHRyLm5hbWUpICE9PSBudWxsOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fbGVhdmVBdHRyTmFtZSA9IGZ1bmN0aW9uICh0b1N0YXRlKSB7CisgICAgdGhpcy5zdGF0ZSA9IHRvU3RhdGU7CisKKyAgICBpZiAoIXRoaXMuX2lzRHVwbGljYXRlQXR0cigpKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5hdHRycy5wdXNoKHRoaXMuY3VycmVudEF0dHIpOworfTsKKworLy9BcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuCisvLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1sI2FwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4pCitUb2tlbml6ZXIucHJvdG90eXBlLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9PT0gdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZTsKK307CisKKy8vVG9rZW4gZW1pc3Npb24KK1Rva2VuaXplci5wcm90b3R5cGUuX2VtaXRDdXJyZW50VG9rZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbigpOworCisgICAgLy9OT1RFOiBzdG9yZSBlbWl0ZWQgc3RhcnQgdGFnJ3MgdGFnTmFtZSB0byBkZXRlcm1pbmUgaXMgdGhlIGZvbGxvd2luZyBlbmQgdGFnIHRva2VuIGlzIGFwcHJvcHJpYXRlLgorICAgIGlmICh0aGlzLmN1cnJlbnRUb2tlbi50eXBlID09PSBUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOKQorICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lOworCisgICAgdGhpcy50b2tlblF1ZXVlLnB1c2godGhpcy5jdXJyZW50VG9rZW4pOworICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDsKK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKSB7CisgICAgICAgIHRoaXMudG9rZW5RdWV1ZS5wdXNoKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTsKKyAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsOworICAgIH0KK307CisKK1Rva2VuaXplci5wcm90b3R5cGUuX2VtaXRFT0ZUb2tlbiA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKCk7CisgICAgdGhpcy50b2tlblF1ZXVlLnB1c2goe3R5cGU6IFRva2VuaXplci5FT0ZfVE9LRU59KTsKK307CisKKy8vQ2hhcmFjdGVycyBlbWlzc2lvbgorCisvL09QVElNSVpBVElPTjogc3BlY2lmaWNhdGlvbiB1c2VzIG9ubHkgb25lIHR5cGUgb2YgY2hhcmFjdGVyIHRva2VucyAob25lIHRva2VuIHBlciBjaGFyYWN0ZXIpLgorLy9UaGlzIGNhdXNlcyBhIGh1Z2UgbWVtb3J5IG92ZXJoZWFkIGFuZCBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBwYXJzZXIgbG9vcHMuIHBhcnNlNSB1c2VzIDMgZ3JvdXBzIG9mIGNoYXJhY3RlcnMuCisvL0lmIHdlIGhhdmUgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwLCBwYXJzZXIgY2FuIHByb2Nlc3MgaXQKKy8vYXMgYSBzaW5nbGUgc29saWQgY2hhcmFjdGVyIHRva2VuLgorLy9TbywgdGhlcmUgYXJlIDMgdHlwZXMgb2YgY2hhcmFjdGVyIHRva2VucyBpbiBwYXJzZTU6CisvLzEpTlVMTF9DSEFSQUNURVJfVE9LRU4gLSBcdTAwMDAtY2hhcmFjdGVyIHNlcXVlbmNlcyAoZS5nLiAnXHUwMDAwXHUwMDAwXHUwMDAwJykKKy8vMilXSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTiAtIGFueSB3aGl0ZXNwYWNlL25ldy1saW5lIGNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xuICBcclx0ICAgXGYnKQorLy8zKUNIQVJBQ1RFUl9UT0tFTiAtIGFueSBjaGFyYWN0ZXIgc2VxdWVuY2Ugd2hpY2ggZG9uJ3QgYmVsb25nIHRvIGdyb3VwcyAxIGFuZCAyIChlLmcuICdhYmNkZWYxMjM0QEAjJCVeJykKK1Rva2VuaXplci5wcm90b3R5cGUuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IGZ1bmN0aW9uICh0eXBlLCBjaCkgeworICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiAmJiB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlICE9PSB0eXBlKQorICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKCk7CisKKyAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pCisgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmNoYXJzICs9IGNoOworCisgICAgZWxzZQorICAgICAgICB0aGlzLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCk7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9lbWl0Q29kZVBvaW50ID0gZnVuY3Rpb24gKGNwKSB7CisgICAgdmFyIHR5cGUgPSBUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOOworCisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHR5cGUgPSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU47CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0eXBlID0gVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOOworCisgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIHRvQ2hhcihjcCkpOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdFNldmVyYWxDb2RlUG9pbnRzID0gZnVuY3Rpb24gKGNvZGVQb2ludHMpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvZGVQb2ludHMubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY29kZVBvaW50c1tpXSk7Cit9OworCisvL05PVEU6IHVzZWQgdGhlbiB3ZSBlbWl0IGNoYXJhY3RlciBleHBsaWNpdGx5LiBUaGlzIGlzIGFsd2F5cyBhIG5vbi13aGl0ZXNwYWNlIGFuZCBhIG5vbi1udWxsIGNoYXJhY3Rlci4KKy8vU28gd2UgY2FuIGF2b2lkIGFkZGl0aW9uYWwgY2hlY2tzIGhlcmUuCitUb2tlbml6ZXIucHJvdG90eXBlLl9lbWl0Q2hhciA9IGZ1bmN0aW9uIChjaCkgeworICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbihUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOLCBjaCk7Cit9OworCisvL0NoYXJhY3RlciByZWZlcmVuY2UgdG9rZW5pemF0aW9uCitUb2tlbml6ZXIucHJvdG90eXBlLl9jb25zdW1lTnVtZXJpY0VudGl0eSA9IGZ1bmN0aW9uIChpc0hleCkgeworICAgIHZhciBkaWdpdHMgPSAnJywKKyAgICAgICAgbmV4dENwID0gdm9pZCAwOworCisgICAgZG8geworICAgICAgICBkaWdpdHMgKz0gdG9DaGFyKHRoaXMuX2NvbnN1bWUoKSk7CisgICAgICAgIG5leHRDcCA9IHRoaXMuX2xvb2thaGVhZCgpOworICAgIH0gd2hpbGUgKG5leHRDcCAhPT0gJC5FT0YgJiYgaXNEaWdpdChuZXh0Q3AsIGlzSGV4KSk7CisKKyAgICBpZiAodGhpcy5fbG9va2FoZWFkKCkgPT09ICQuU0VNSUNPTE9OKQorICAgICAgICB0aGlzLl9jb25zdW1lKCk7CisKKyAgICB2YXIgcmVmZXJlbmNlZENwID0gcGFyc2VJbnQoZGlnaXRzLCBpc0hleCA/IDE2IDogMTApLAorICAgICAgICByZXBsYWNlbWVudCA9IE5VTUVSSUNfRU5USVRZX1JFUExBQ0VNRU5UU1tyZWZlcmVuY2VkQ3BdOworCisgICAgaWYgKHJlcGxhY2VtZW50KQorICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQ7CisKKyAgICBpZiAoaXNSZXNlcnZlZENvZGVQb2ludChyZWZlcmVuY2VkQ3ApKQorICAgICAgICByZXR1cm4gJC5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICByZXR1cm4gcmVmZXJlbmNlZENwOworfTsKKworVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZU5hbWVkRW50aXR5ID0gZnVuY3Rpb24gKHN0YXJ0Q3AsIGluQXR0cikgeworICAgIHZhciByZWZlcmVuY2VkQ29kZVBvaW50cyA9IG51bGwsCisgICAgICAgIGVudGl0eUNvZGVQb2ludHNDb3VudCA9IDAsCisgICAgICAgIGNwID0gc3RhcnRDcCwKKyAgICAgICAgbGVhZiA9IE5BTUVEX0VOVElUWV9UUklFW2NwXSwKKyAgICAgICAgY29uc3VtZWRDb3VudCA9IDEsCisgICAgICAgIHNlbWljb2xvblRlcm1pbmF0ZWQgPSBmYWxzZTsKKworICAgIGZvciAoOyBsZWFmICYmIGNwICE9PSAkLkVPRjsgY3AgPSB0aGlzLl9jb25zdW1lKCksIGNvbnN1bWVkQ291bnQrKywgbGVhZiA9IGxlYWYubCAmJiBsZWFmLmxbY3BdKSB7CisgICAgICAgIGlmIChsZWFmLmMpIHsKKyAgICAgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhdCBsZWFzdCBvbmUgbmFtZWQgcmVmZXJlbmNlIG1hdGNoLiBCdXQgd2UgZG9uJ3Qgc3RvcCBsb29rdXAgYXQgdGhpcyBwb2ludCwKKyAgICAgICAgICAgIC8vYmVjYXVzZSBsb25nZXIgbWF0Y2hlcyBzdGlsbCBjYW4gYmUgZm91bmQgKGUuZy4gJyZub3QnIGFuZCAnJm5vdGluOycpIGV4Y2VwdCB0aGUgY2FzZQorICAgICAgICAgICAgLy90aGVuIGZvdW5kIG1hdGNoIGlzIHRlcm1pbmF0ZWQgYnkgc2VtaWNvbG9uLgorICAgICAgICAgICAgcmVmZXJlbmNlZENvZGVQb2ludHMgPSBsZWFmLmM7CisgICAgICAgICAgICBlbnRpdHlDb2RlUG9pbnRzQ291bnQgPSBjb25zdW1lZENvdW50OworCisgICAgICAgICAgICBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7CisgICAgICAgICAgICAgICAgc2VtaWNvbG9uVGVybWluYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmVmZXJlbmNlZENvZGVQb2ludHMpIHsKKyAgICAgICAgaWYgKCFzZW1pY29sb25UZXJtaW5hdGVkKSB7CisgICAgICAgICAgICAvL05PVEU6IHVuY29uc3VtZSBleGNlc3MgKGUuZy4gJ2l0JyBpbiAnJm5vdGl0JykKKyAgICAgICAgICAgIHRoaXMuX3VuY29uc3VtZVNldmVyYWwoY29uc3VtZWRDb3VudCAtIGVudGl0eUNvZGVQb2ludHNDb3VudCk7CisKKyAgICAgICAgICAgIC8vTk9URTogSWYgdGhlIGNoYXJhY3RlciByZWZlcmVuY2UgaXMgYmVpbmcgY29uc3VtZWQgYXMgcGFydCBvZiBhbiBhdHRyaWJ1dGUgYW5kIHRoZSBuZXh0IGNoYXJhY3RlcgorICAgICAgICAgICAgLy9pcyBlaXRoZXIgYSBVKzAwM0QgRVFVQUxTIFNJR04gY2hhcmFjdGVyICg9KSBvciBhbiBhbHBoYW51bWVyaWMgQVNDSUkgY2hhcmFjdGVyLCB0aGVuLCBmb3IgaGlzdG9yaWNhbAorICAgICAgICAgICAgLy9yZWFzb25zLCBhbGwgdGhlIGNoYXJhY3RlcnMgdGhhdCB3ZXJlIG1hdGNoZWQgYWZ0ZXIgdGhlIFUrMDAyNiBBTVBFUlNBTkQgY2hhcmFjdGVyICgmKSBtdXN0IGJlCisgICAgICAgICAgICAvL3VuY29uc3VtZWQsIGFuZCBub3RoaW5nIGlzIHJldHVybmVkLgorICAgICAgICAgICAgLy9Ib3dldmVyLCBpZiB0aGlzIG5leHQgY2hhcmFjdGVyIGlzIGluIGZhY3QgYSBVKzAwM0QgRVFVQUxTIFNJR04gY2hhcmFjdGVyICg9KSwgdGhlbiB0aGlzIGlzIGEKKyAgICAgICAgICAgIC8vcGFyc2UgZXJyb3IsIGJlY2F1c2Ugc29tZSBsZWdhY3kgdXNlciBhZ2VudHMgd2lsbCBtaXNpbnRlcnByZXQgdGhlIG1hcmt1cCBpbiB0aG9zZSBjYXNlcy4KKyAgICAgICAgICAgIC8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0aW9uLmh0bWwjdG9rZW5pemluZy1jaGFyYWN0ZXItcmVmZXJlbmNlcykKKyAgICAgICAgICAgIGlmIChpbkF0dHIpIHsKKyAgICAgICAgICAgICAgICB2YXIgbmV4dENwID0gdGhpcy5fbG9va2FoZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAobmV4dENwID09PSAkLkVRVUFMU19TSUdOIHx8IGlzQXNjaWlBbHBoYU51bWVyaWMobmV4dENwKSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGVudGl0eUNvZGVQb2ludHNDb3VudCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZWZlcmVuY2VkQ29kZVBvaW50czsKKyAgICB9CisKKyAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGNvbnN1bWVkQ291bnQpOworCisgICAgcmV0dXJuIG51bGw7Cit9OworCitUb2tlbml6ZXIucHJvdG90eXBlLl9jb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlID0gZnVuY3Rpb24gKHN0YXJ0Q3AsIGluQXR0cikgeworICAgIGlmICh0aGlzLmRpc2FibGVFbnRpdGllc0RlY29kaW5nIHx8IGlzV2hpdGVzcGFjZShzdGFydENwKSB8fCBzdGFydENwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOIHx8CisgICAgICAgIHN0YXJ0Q3AgPT09ICQuQU1QRVJTQU5EIHx8IHN0YXJ0Q3AgPT09IHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCB8fCBzdGFydENwID09PSAkLkVPRikgeworICAgICAgICAvL05PVEU6IG5vdCBhIGNoYXJhY3RlciByZWZlcmVuY2UuIE5vIGNoYXJhY3RlcnMgYXJlIGNvbnN1bWVkLCBhbmQgbm90aGluZyBpcyByZXR1cm5lZC4KKyAgICAgICAgdGhpcy5fdW5jb25zdW1lKCk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIGVsc2UgaWYgKHN0YXJ0Q3AgPT09ICQuTlVNQkVSX1NJR04pIHsKKyAgICAgICAgLy9OT1RFOiB3ZSBoYXZlIGEgbnVtZXJpYyBlbnRpdHkgY2FuZGlkYXRlLCBub3cgd2Ugc2hvdWxkIGRldGVybWluZSBpZiBpdCdzIGhleCBvciBkZWNpbWFsCisgICAgICAgIHZhciBpc0hleCA9IGZhbHNlLAorICAgICAgICAgICAgbmV4dENwID0gdGhpcy5fbG9va2FoZWFkKCk7CisKKyAgICAgICAgaWYgKG5leHRDcCA9PT0gJC5MQVRJTl9TTUFMTF9YIHx8IG5leHRDcCA9PT0gJC5MQVRJTl9DQVBJVEFMX1gpIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbnN1bWUoKTsKKyAgICAgICAgICAgIGlzSGV4ID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIG5leHRDcCA9IHRoaXMuX2xvb2thaGVhZCgpOworCisgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhdCBsZWFzdCBvbmUgZGlnaXQgdGhpcyBpcyBhIG51bWVyaWMgZW50aXR5IGZvciBzdXJlLCBzbyB3ZSBjb25zdW1lIGl0CisgICAgICAgIGlmIChuZXh0Q3AgIT09ICQuRU9GICYmIGlzRGlnaXQobmV4dENwLCBpc0hleCkpCisgICAgICAgICAgICByZXR1cm4gW3RoaXMuX2NvbnN1bWVOdW1lcmljRW50aXR5KGlzSGV4KV07CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvL05PVEU6IG90aGVyd2lzZSB0aGlzIGlzIGEgYm9ndXMgbnVtYmVyIGVudGl0eSBhbmQgYSBwYXJzZSBlcnJvci4gVW5jb25zdW1lIHRoZSBudW1iZXIgc2lnbgorICAgICAgICAgICAgLy9hbmQgdGhlICd4Jy1jaGFyYWN0ZXIgaWYgYXBwcm9wcmlhdGUuCisgICAgICAgICAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGlzSGV4ID8gMiA6IDEpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHJldHVybiB0aGlzLl9jb25zdW1lTmFtZWRFbnRpdHkoc3RhcnRDcCwgaW5BdHRyKTsKK307CisKKy8vU3RhdGUgbWFjaGluZQordmFyIF8gPSBUb2tlbml6ZXIucHJvdG90eXBlOworCisvLzEyLjIuNC4xIERhdGEgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0RBVEFfU1RBVEVdID0gZnVuY3Rpb24gZGF0YVN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkFNUEVSU0FORCkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fREFUQV9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLnN0YXRlID0gVEFHX09QRU5fU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworfTsKKworCisvLzEyLjIuNC4yIENoYXJhY3RlciByZWZlcmVuY2UgaW4gZGF0YSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9EQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIGNoYXJhY3RlclJlZmVyZW5jZUluRGF0YVN0YXRlKGNwKSB7CisgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gdm9pZCAwOworCisgICAgdmFyIHJlZmVyZW5jZWRDb2RlUG9pbnRzID0gdGhpcy5fY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZShjcCwgZmFsc2UpOworCisgICAgaWYgKHJlZmVyZW5jZWRDb2RlUG9pbnRzKQorICAgICAgICB0aGlzLl9lbWl0U2V2ZXJhbENvZGVQb2ludHMocmVmZXJlbmNlZENvZGVQb2ludHMpOworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJyYnKTsKK307CisKKworLy8xMi4yLjQuMyBSQ0RBVEEgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1JDREFUQV9TVEFURV0gPSBmdW5jdGlvbiByY2RhdGFTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpCisgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX1JDREFUQV9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLnN0YXRlID0gUkNEQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7Cit9OworCisKKy8vMTIuMi40LjQgQ2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBSQ0RBVEEgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fUkNEQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIGNoYXJhY3RlclJlZmVyZW5jZUluUmNkYXRhU3RhdGUoY3ApIHsKKyAgICB0aGlzLnN0YXRlID0gUkNEQVRBX1NUQVRFOworICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9IHZvaWQgMDsKKworICAgIHZhciByZWZlcmVuY2VkQ29kZVBvaW50cyA9IHRoaXMuX2NvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UoY3AsIGZhbHNlKTsKKworICAgIGlmIChyZWZlcmVuY2VkQ29kZVBvaW50cykKKyAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHJlZmVyZW5jZWRDb2RlUG9pbnRzKTsKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcmJyk7Cit9OworCisKKy8vMTIuMi40LjUgUkFXVEVYVCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bUkFXVEVYVF9TVEFURV0gPSBmdW5jdGlvbiByYXd0ZXh0U3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pCisgICAgICAgIHRoaXMuc3RhdGUgPSBSQVdURVhUX0xFU1NfVEhBTl9TSUdOX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7Cit9OworCisKKy8vMTIuMi40LjYgU2NyaXB0IGRhdGEgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7Cit9OworCisKKy8vMTIuMi40LjcgUExBSU5URVhUIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tQTEFJTlRFWFRfU1RBVEVdID0gZnVuY3Rpb24gcGxhaW50ZXh0U3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7Cit9OworCisKKy8vMTIuMi40LjggVGFnIG9wZW4gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHRhZ09wZW5TdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5FWENMQU1BVElPTl9NQVJLKQorICAgICAgICB0aGlzLnN0YXRlID0gTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5fU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5TT0xJRFVTKQorICAgICAgICB0aGlzLnN0YXRlID0gRU5EX1RBR19PUEVOX1NUQVRFOworCisgICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVTdGFydFRhZ1Rva2VuKHRvQXNjaWlMb3dlckNoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFRBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlU3RhcnRUYWdUb2tlbih0b0NoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFRBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLlFVRVNUSU9OX01BUkspIHsKKyAgICAgICAgLy9OT1RFOiBjYWxsIGJvZ3VzIGNvbW1lbnQgc3RhdGUgZGlyZWN0bHkgd2l0aCBjdXJyZW50IGNvbnN1bWVkIGNoYXJhY3RlciB0byBhdm9pZCB1bm5lY2Vzc2FyeSByZWNvbnN1bXB0aW9uLgorICAgICAgICB0aGlzW0JPR1VTX0NPTU1FTlRfU1RBVEVdKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjkgRW5kIHRhZyBvcGVuIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tFTkRfVEFHX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gZW5kVGFnT3BlblN0YXRlKGNwKSB7CisgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9Bc2NpaUxvd2VyQ2hhcihjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gVEFHX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbih0b0NoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFRBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICAvL05PVEU6IGNhbGwgYm9ndXMgY29tbWVudCBzdGF0ZSBkaXJlY3RseSB3aXRoIGN1cnJlbnQgY29uc3VtZWQgY2hhcmFjdGVyIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHJlY29uc3VtcHRpb24uCisgICAgICAgIHRoaXNbQk9HVVNfQ09NTUVOVF9TVEFURV0oY3ApOworICAgIH0KK307CisKKworLy8xMi4yLjQuMTAgVGFnIG5hbWUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1RBR19OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIHRhZ05hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuU09MSURVUykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjExIFJDREFUQSBsZXNzLXRoYW4gc2lnbiBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bUkNEQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFXSA9IGZ1bmN0aW9uIHJjZGF0YUxlc3NUaGFuU2lnblN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdOworICAgICAgICB0aGlzLnN0YXRlID0gUkNEQVRBX0VORF9UQUdfT1BFTl9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQ0RBVEFfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuMTIgUkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bUkNEQVRBX0VORF9UQUdfT1BFTl9TVEFURV0gPSBmdW5jdGlvbiByY2RhdGFFbmRUYWdPcGVuU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbih0b0FzY2lpTG93ZXJDaGFyKGNwKSk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBSQ0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBSQ0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJDREFUQV9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4xMyBSQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tSQ0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIHJjZGF0YUVuZFRhZ05hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGlmICh0aGlzLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4oKSkgeworICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpOworICAgICAgICB0aGlzLl9lbWl0U2V2ZXJhbENvZGVQb2ludHModGhpcy50ZW1wQnVmZik7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkNEQVRBX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjE0IFJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1JBV1RFWFRfTEVTU19USEFOX1NJR05fU1RBVEVdID0gZnVuY3Rpb24gcmF3dGV4dExlc3NUaGFuU2lnblN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdOworICAgICAgICB0aGlzLnN0YXRlID0gUkFXVEVYVF9FTkRfVEFHX09QRU5fU1RBVEU7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkFXVEVYVF9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4xNSBSQVdURVhUIGVuZCB0YWcgb3BlbiBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bUkFXVEVYVF9FTkRfVEFHX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gcmF3dGV4dEVuZFRhZ09wZW5TdGF0ZShjcCkgeworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKHRvQXNjaWlMb3dlckNoYXIoY3ApKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFJBV1RFWFRfRU5EX1RBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBSQVdURVhUX0VORF9UQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQVdURVhUX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjE2IFJBV1RFWFQgZW5kIHRhZyBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tSQVdURVhUX0VORF9UQUdfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiByYXd0ZXh0RW5kVGFnTmFtZVN0YXRlKGNwKSB7CisgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbigpKSB7CisgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkgeworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykgeworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7CisgICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyh0aGlzLnRlbXBCdWZmKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQVdURVhUX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjE3IFNjcmlwdCBkYXRhIGxlc3MtdGhhbiBzaWduIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhTGVzc1RoYW5TaWduU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuU09MSURVUykgeworICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5fU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRVhDTEFNQVRJT05fTUFSSykgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignIScpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjE4IFNjcmlwdCBkYXRhIGVuZCB0YWcgb3BlbiBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFbmRUYWdPcGVuU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbih0b0FzY2lpTG93ZXJDaGFyKGNwKSk7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbih0b0NoYXIoY3ApKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VORF9UQUdfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9TVEFURSk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4xOSBTY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VORF9UQUdfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRW5kVGFnTmFtZVN0YXRlKGNwKSB7CisgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbigpKSB7CisgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkgeworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpOworICAgICAgICB0aGlzLl9lbWl0U2V2ZXJhbENvZGVQb2ludHModGhpcy50ZW1wQnVmZik7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuMjAgU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZVN0YXJ0U3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfU1RBVEUpOworfTsKKworCisvLzEyLjIuNC4yMSBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgZGFzaCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTsKK307CisKKworLy8xMi4yLjQuMjIgU2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlZFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7Cit9OworCisKKy8vMTIuMi40LjIzIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkRGFzaFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pCisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4yNCBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggZGFzaCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJz4nKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjI1IFNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2godG9Bc2NpaUxvd2VyQ29kZVBvaW50KGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuMjYgU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG9wZW4gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlblN0YXRlKGNwKSB7CisgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4odG9Bc2NpaUxvd2VyQ2hhcihjcCkpOworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbih0b0NoYXIoY3ApKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuMjcgU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG5hbWUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZVN0YXRlKGNwKSB7CisgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbigpKSB7CisgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkgeworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykgeworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7CisgICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyh0aGlzLnRlbXBCdWZmKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFKTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjI4IFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0U3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSB8fCBjcCA9PT0gJC5TT0xJRFVTIHx8IGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmlzVGVtcEJ1ZmZlckVxdWFsVG9TY3JpcHRTdHJpbmcoKSA/IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFIDogU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2godG9Bc2NpaUxvd2VyQ29kZVBvaW50KGNwKSk7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUpOworfTsKKworCisvLzEyLjIuNC4yOSBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZWRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7Cit9OworCisKKy8vMTIuMi40LjMwIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorfTsKKworCisvLzEyLjIuNC4zMSBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKQorICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJz4nKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UgeworICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEU7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KK307CisKKworLy8xMi4yLjQuMzIgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuU09MSURVUykgeworICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107CisgICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORF9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUpOworfTsKKworCisvLzEyLjIuNC4zMyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIGVuZCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZFN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkgfHwgY3AgPT09ICQuU09MSURVUyB8fCBjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5pc1RlbXBCdWZmZXJFcXVhbFRvU2NyaXB0U3RyaW5nKCkgPyBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFIDogU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEU7CisKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2godG9Bc2NpaUxvd2VyQ29kZVBvaW50KGNwKSk7CisgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHsKKyAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTsKKyAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFKTsKK307CisKKworLy8xMi4yLjQuMzQgQmVmb3JlIGF0dHJpYnV0ZSBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlQXR0cmlidXRlTmFtZVN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKQorICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkgeworICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKHRvQXNjaWlMb3dlckNoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9OQU1FX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlQXR0cihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7CisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSyB8fCBjcCA9PT0gJC5BUE9TVFJPUEhFIHx8IGNwID09PSAkLkxFU1NfVEhBTl9TSUdOIHx8IGNwID09PSAkLkVRVUFMU19TSUdOKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIodG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlQXR0cih0b0NoYXIoY3ApKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9OQU1FX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuMzUgQXR0cmlidXRlIG5hbWUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0FUVFJJQlVURV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGF0dHJpYnV0ZU5hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKEFGVEVSX0FUVFJJQlVURV9OQU1FX1NUQVRFKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLlNPTElEVVMpCisgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURSk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FUVVBTFNfU0lHTikKKyAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZShCRUZPUkVfQVRUUklCVVRFX1ZBTFVFX1NUQVRFKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoREFUQV9TVEFURSk7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKQorICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSyB8fCBjcCA9PT0gJC5BUE9TVFJPUEhFIHx8IGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKQorICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gdG9DaGFyKGNwKTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjM2IEFmdGVyIGF0dHJpYnV0ZSBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBRlRFUl9BVFRSSUJVVEVfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBhZnRlckF0dHJpYnV0ZU5hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY3AgPT09ICQuU09MSURVUykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FUVVBTFNfU0lHTikKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfVkFMVUVfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlQXR0cih0b0FzY2lpTG93ZXJDaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUksgfHwgY3AgPT09ICQuQVBPU1RST1BIRSB8fCBjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKHRvQ2hhcihjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIodG9DaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfTkFNRV9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjM3IEJlZm9yZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0JFRk9SRV9BVFRSSUJVVEVfVkFMVUVfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlQXR0cmlidXRlVmFsdWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspCisgICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRF9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFNUEVSU0FORCkKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEUpOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkgeworICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04gfHwgY3AgPT09ICQuRVFVQUxTX1NJR04gfHwgY3AgPT09ICQuR1JBVkVfQUNDRU5UKSB7CisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIoY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuMzggQXR0cmlidXRlIHZhbHVlIChkb3VibGUtcXVvdGVkKSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gYXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpIHsKKyAgICAgICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gJC5RVU9UQVRJT05fTUFSSzsKKyAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IHRoaXMuc3RhdGU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZQorICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjM5IEF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0FUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpIHsKKyAgICAgICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gJC5BUE9TVFJPUEhFOworICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gdGhpcy5zdGF0ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fQVRUUklCVVRFX1ZBTFVFX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpCisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKGNwKTsKK307CisKKworLy8xMi4yLjQuNDAgQXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0FUVFJJQlVURV9WQUxVRV9VTlFVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBhdHRyaWJ1dGVWYWx1ZVVucXVvdGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFNUEVSU0FORCkgeworICAgICAgICB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgPSAkLkdSRUFURVJfVEhBTl9TSUdOOworICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gdGhpcy5zdGF0ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fQVRUUklCVVRFX1ZBTFVFX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLIHx8IGNwID09PSAkLkFQT1NUUk9QSEUgfHwgY3AgPT09ICQuTEVTU19USEFOX1NJR04gfHwKKyAgICAgICAgICAgICBjcCA9PT0gJC5FUVVBTFNfU0lHTiB8fCBjcCA9PT0gJC5HUkFWRV9BQ0NFTlQpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIoY3ApOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIoY3ApOworfTsKKworCisvLzEyLjIuNC40MSBDaGFyYWN0ZXIgcmVmZXJlbmNlIGluIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9BVFRSSUJVVEVfVkFMVUVfU1RBVEVdID0gZnVuY3Rpb24gY2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGVWYWx1ZVN0YXRlKGNwKSB7CisgICAgdmFyIHJlZmVyZW5jZWRDb2RlUG9pbnRzID0gdGhpcy5fY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZShjcCwgdHJ1ZSk7CisKKyAgICBpZiAocmVmZXJlbmNlZENvZGVQb2ludHMpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWZlcmVuY2VkQ29kZVBvaW50cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKHJlZmVyZW5jZWRDb2RlUG9pbnRzW2ldKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSAnJic7CisKKyAgICB0aGlzLnN0YXRlID0gdGhpcy5yZXR1cm5TdGF0ZTsKK307CisKKworLy8xMi4yLjQuNDIgQWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWRTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuU09MSURVUykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUpOworfTsKKworCisvLzEyLjIuNC40MyBTZWxmLWNsb3Npbmcgc3RhcnQgdGFnIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFXSA9IGZ1bmN0aW9uIHNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zZWxmQ2xvc2luZyA9IHRydWU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworCisgICAgZWxzZQorICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURSk7Cit9OworCisKKy8vMTIuMi40LjQ0IEJvZ3VzIGNvbW1lbnQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0JPR1VTX0NPTU1FTlRfU1RBVEVdID0gZnVuY3Rpb24gYm9ndXNDb21tZW50U3RhdGUoY3ApIHsKKyAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oKTsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IGNwID09PSAkLk5VTEwgPyBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA6IHRvQ2hhcihjcCk7CisgICAgICAgICAgICBjcCA9IHRoaXMuX2NvbnN1bWUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKK307CisKKworLy8xMi4yLjQuNDUgTWFya3VwIGRlY2xhcmF0aW9uIG9wZW4gc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW01BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIG1hcmt1cERlY2xhcmF0aW9uT3BlblN0YXRlKGNwKSB7CisgICAgaWYgKHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5EQVNIX0RBU0hfU1RSSU5HLCBjcCwgdHJ1ZSkpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVJUX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5ET0NUWVBFX1NUUklORywgY3AsIGZhbHNlKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1RBVEU7CisKKyAgICBlbHNlIGlmICh0aGlzLmFsbG93Q0RBVEEgJiYgdGhpcy5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoKCQkLkNEQVRBX1NUQVJUX1NUUklORywgY3AsIHRydWUpKQorICAgICAgICB0aGlzLnN0YXRlID0gQ0RBVEFfU0VDVElPTl9TVEFURTsKKworICAgIGVsc2UgeworICAgICAgICAvL05PVEU6IGNhbGwgYm9ndXMgY29tbWVudCBzdGF0ZSBkaXJlY3RseSB3aXRoIGN1cnJlbnQgY29uc3VtZWQgY2hhcmFjdGVyIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHJlY29uc3VtcHRpb24uCisgICAgICAgIHRoaXNbQk9HVVNfQ09NTUVOVF9TVEFURV0oY3ApOworICAgIH0KK307CisKKworLy8xMi4yLjQuNDYgQ29tbWVudCBzdGFydCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQ09NTUVOVF9TVEFSVF9TVEFURV0gPSBmdW5jdGlvbiBjb21tZW50U3RhcnRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpCisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVJUX0RBU0hfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSB0b0NoYXIoY3ApOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjQ3IENvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQ09NTUVOVF9TVEFSVF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRTdGFydERhc2hTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpCisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC40OCBDb21tZW50IHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tDT01NRU5UX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpCisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9EQVNIX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7Cit9OworCisKKy8vMTIuMi40LjQ5IENvbW1lbnQgZW5kIGRhc2ggc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NPTU1FTlRfRU5EX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gY29tbWVudEVuZERhc2hTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpCisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0nOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNTAgQ29tbWVudCBlbmQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0NPTU1FTlRfRU5EX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRFbmRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVYQ0xBTUFUSU9OX01BUkspCisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9CQU5HX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctJzsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLS0nOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSc7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC41MSBDb21tZW50IGVuZCBiYW5nIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tDT01NRU5UX0VORF9CQU5HX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRFbmRCYW5nU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0tISc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9EQVNIX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSEnOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSEnOworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNTIgRE9DVFlQRSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bRE9DVFlQRV9TVEFURV0gPSBmdW5jdGlvbiBkb2N0eXBlU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9ET0NUWVBFX05BTUVfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKCk7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCRUZPUkVfRE9DVFlQRV9OQU1FX1NUQVRFKTsKK307CisKKworLy8xMi4yLjQuNTMgQmVmb3JlIERPQ1RZUEUgbmFtZSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQkVGT1JFX0RPQ1RZUEVfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBiZWZvcmVEb2N0eXBlTmFtZVN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7CisgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbih0b0FzY2lpTG93ZXJDaGFyKGNwKSk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX05BTUVfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKCk7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKCk7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfTkFNRV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKHRvQ2hhcihjcCkpOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9OQU1FX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNTQgRE9DVFlQRSBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tET0NUWVBFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZU5hbWVTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0aGlzLnN0YXRlID0gQUZURVJfRE9DVFlQRV9OQU1FX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5uYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ubmFtZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLm5hbWUgKz0gdG9DaGFyKGNwKTsKK307CisKKworLy8xMi4yLjQuNTUgQWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBRlRFUl9ET0NUWVBFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gYWZ0ZXJEb2N0eXBlTmFtZVN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuUFVCTElDX1NUUklORywgY3AsIGZhbHNlKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRfU1RBVEU7CisKKyAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuU1lTVEVNX1NUUklORywgY3AsIGZhbHNlKSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRfU1RBVEU7CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLnN0YXRlID0gQk9HVVNfRE9DVFlQRV9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjU2IEFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0FGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRfU1RBVEVdID0gZnVuY3Rpb24gYWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZFN0YXRlKGNwKSB7CisgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpCisgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TVEFURTsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCA9ICcnOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJPR1VTX0RPQ1RZUEVfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC41NyBCZWZvcmUgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLnN0YXRlID0gQk9HVVNfRE9DVFlQRV9TVEFURTsKKyAgICB9Cit9OworCisKKy8vMTIuMi40LjU4IERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWRTdGF0ZShjcCkgeworICAgIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCArPSB0b0NoYXIoY3ApOworfTsKKworCisvLzEyLjIuNC41OSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCArPSB0b0NoYXIoY3ApOworfTsKKworCisvLzEyLjIuNC42MCBBZnRlciBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0aGlzLnN0YXRlID0gQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCA9ICcnOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJPR1VTX0RPQ1RZUEVfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC42MSBCZXR3ZWVuIERPQ1RZUEUgcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0JFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU19TVEFURV0gPSBmdW5jdGlvbiBiZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJPR1VTX0RPQ1RZUEVfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC42MiBBZnRlciBET0NUWVBFIHN5c3RlbSBrZXl3b3JkIHN0YXRlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorX1tBRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmRTdGF0ZShjcCkgeworICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKQorICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEU7CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCA9ICcnOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJzsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7CisgICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFOworICAgIH0KK307CisKKworLy8xMi4yLjQuNjMgQmVmb3JlIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0JFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFXSA9IGZ1bmN0aW9uIGJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7CisgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCA9ICcnOworICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJPR1VTX0RPQ1RZUEVfU1RBVEU7CisgICAgfQorfTsKKworCisvLzEyLjIuNC42NCBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgKz0gdG9DaGFyKGNwKTsKK307CisKKworLy8xMi4yLjQuNjUgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBkb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKGNwKSB7CisgICAgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpCisgICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlOworICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgIH0KKworICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpCisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgKz0gdG9DaGFyKGNwKTsKK307CisKKworLy8xMi4yLjQuNjYgQWZ0ZXIgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURV0gPSBmdW5jdGlvbiBhZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU3RhdGUoY3ApIHsKKyAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7CisgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7CisgICAgfQorCisgICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7CisgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdGhpcy5zdGF0ZSA9IEJPR1VTX0RPQ1RZUEVfU1RBVEU7Cit9OworCisKKy8vMTIuMi40LjY3IEJvZ3VzIERPQ1RZUEUgc3RhdGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitfW0JPR1VTX0RPQ1RZUEVfU1RBVEVdID0gZnVuY3Rpb24gYm9ndXNEb2N0eXBlU3RhdGUoY3ApIHsKKyAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTsKKyAgICB9CisKKyAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpOworICAgIH0KK307CisKKworLy8xMi4yLjQuNjggQ0RBVEEgc2VjdGlvbiBzdGF0ZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK19bQ0RBVEFfU0VDVElPTl9TVEFURV0gPSBmdW5jdGlvbiBjZGF0YVNlY3Rpb25TdGF0ZShjcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIGlmIChjcCA9PT0gJC5FT0YpIHsKKyAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5DREFUQV9FTkRfU1RSSU5HLCBjcCwgdHJ1ZSkpIHsKKyAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApOworICAgICAgICAgICAgY3AgPSB0aGlzLl9jb25zdW1lKCk7CisgICAgICAgIH0KKyAgICB9Cit9OworCit9LHsiLi4vY29tbW9uL3VuaWNvZGUiOjQsIi4vbG9jYXRpb25faW5mb19taXhpbiI6MTEsIi4vbmFtZWRfZW50aXR5X3RyaWUiOjEyLCIuL3ByZXByb2Nlc3NvciI6MTN9XSwxNTpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7CisndXNlIHN0cmljdCc7CisKKy8vTm9kZSBjb25zdHJ1Y3Rpb24KK2V4cG9ydHMuY3JlYXRlRG9jdW1lbnQgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQnLAorICAgICAgICBxdWlya3NNb2RlOiBmYWxzZSwKKyAgICAgICAgY2hpbGROb2RlczogW10KKyAgICB9OworfTsKKworZXhwb3J0cy5jcmVhdGVEb2N1bWVudEZyYWdtZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiB7CisgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50LWZyYWdtZW50JywKKyAgICAgICAgcXVpcmtzTW9kZTogZmFsc2UsCisgICAgICAgIGNoaWxkTm9kZXM6IFtdCisgICAgfTsKK307CisKK2V4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uICh0YWdOYW1lLCBuYW1lc3BhY2VVUkksIGF0dHJzKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgbm9kZU5hbWU6IHRhZ05hbWUsCisgICAgICAgIHRhZ05hbWU6IHRhZ05hbWUsCisgICAgICAgIGF0dHJzOiBhdHRycywKKyAgICAgICAgbmFtZXNwYWNlVVJJOiBuYW1lc3BhY2VVUkksCisgICAgICAgIGNoaWxkTm9kZXM6IFtdLAorICAgICAgICBwYXJlbnROb2RlOiBudWxsCisgICAgfTsKK307CisKK2V4cG9ydHMuY3JlYXRlQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAoZGF0YSkgeworICAgIHJldHVybiB7CisgICAgICAgIG5vZGVOYW1lOiAnI2NvbW1lbnQnLAorICAgICAgICBkYXRhOiBkYXRhLAorICAgICAgICBwYXJlbnROb2RlOiBudWxsCisgICAgfTsKK307CisKK3ZhciBjcmVhdGVUZXh0Tm9kZSA9IGZ1bmN0aW9uICh2YWx1ZSkgeworICAgIHJldHVybiB7CisgICAgICAgIG5vZGVOYW1lOiAnI3RleHQnLAorICAgICAgICB2YWx1ZTogdmFsdWUsCisgICAgICAgIHBhcmVudE5vZGU6IG51bGwKKyAgICB9Cit9OworCisKKy8vVHJlZSBtdXRhdGlvbgorZXhwb3J0cy5zZXREb2N1bWVudFR5cGUgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkgeworICAgIHZhciBkb2N0eXBlTm9kZSA9IG51bGw7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNoaWxkTm9kZXNbaV0ubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJykgeworICAgICAgICAgICAgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzW2ldOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdHlwZU5vZGUpIHsKKyAgICAgICAgZG9jdHlwZU5vZGUubmFtZSA9IG5hbWU7CisgICAgICAgIGRvY3R5cGVOb2RlLnB1YmxpY0lkID0gcHVibGljSWQ7CisgICAgICAgIGRvY3R5cGVOb2RlLnN5c3RlbUlkID0gc3lzdGVtSWQ7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGFwcGVuZENoaWxkKGRvY3VtZW50LCB7CisgICAgICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudFR5cGUnLAorICAgICAgICAgICAgbmFtZTogbmFtZSwKKyAgICAgICAgICAgIHB1YmxpY0lkOiBwdWJsaWNJZCwKKyAgICAgICAgICAgIHN5c3RlbUlkOiBzeXN0ZW1JZAorICAgICAgICB9KTsKKyAgICB9Cit9OworCitleHBvcnRzLnNldFF1aXJrc01vZGUgPSBmdW5jdGlvbiAoZG9jdW1lbnQpIHsKKyAgICBkb2N1bWVudC5xdWlya3NNb2RlID0gdHJ1ZTsKK307CisKK2V4cG9ydHMuaXNRdWlya3NNb2RlID0gZnVuY3Rpb24gKGRvY3VtZW50KSB7CisgICAgcmV0dXJuIGRvY3VtZW50LnF1aXJrc01vZGU7Cit9OworCit2YXIgYXBwZW5kQ2hpbGQgPSBleHBvcnRzLmFwcGVuZENoaWxkID0gZnVuY3Rpb24gKHBhcmVudE5vZGUsIG5ld05vZGUpIHsKKyAgICBwYXJlbnROb2RlLmNoaWxkTm9kZXMucHVzaChuZXdOb2RlKTsKKyAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlOworfTsKKwordmFyIGluc2VydEJlZm9yZSA9IGV4cG9ydHMuaW5zZXJ0QmVmb3JlID0gZnVuY3Rpb24gKHBhcmVudE5vZGUsIG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpIHsKKyAgICB2YXIgaW5zZXJ0aW9uSWR4ID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2YocmVmZXJlbmNlTm9kZSk7CisKKyAgICBwYXJlbnROb2RlLmNoaWxkTm9kZXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3Tm9kZSk7CisgICAgbmV3Tm9kZS5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTsKK307CisKK2V4cG9ydHMuZGV0YWNoTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgaWYgKG5vZGUucGFyZW50Tm9kZSkgeworICAgICAgICB2YXIgaWR4ID0gbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihub2RlKTsKKworICAgICAgICBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaWR4LCAxKTsKKyAgICAgICAgbm9kZS5wYXJlbnROb2RlID0gbnVsbDsKKyAgICB9Cit9OworCitleHBvcnRzLmluc2VydFRleHQgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdGV4dCkgeworICAgIGlmIChwYXJlbnROb2RlLmNoaWxkTm9kZXMubGVuZ3RoKSB7CisgICAgICAgIHZhciBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMubGVuZ3RoIC0gMV07CisKKyAgICAgICAgaWYgKHByZXZOb2RlLm5vZGVOYW1lID09PSAnI3RleHQnKSB7CisgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCkpOworfTsKKworZXhwb3J0cy5pbnNlcnRUZXh0QmVmb3JlID0gZnVuY3Rpb24gKHBhcmVudE5vZGUsIHRleHQsIHJlZmVyZW5jZU5vZGUpIHsKKyAgICB2YXIgcHJldk5vZGUgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXNbcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2YocmVmZXJlbmNlTm9kZSkgLSAxXTsKKworICAgIGlmIChwcmV2Tm9kZSAmJiBwcmV2Tm9kZS5ub2RlTmFtZSA9PT0gJyN0ZXh0JykKKyAgICAgICAgcHJldk5vZGUudmFsdWUgKz0gdGV4dDsKKyAgICBlbHNlCisgICAgICAgIGluc2VydEJlZm9yZShwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSwgcmVmZXJlbmNlTm9kZSk7Cit9OworCitleHBvcnRzLmFkb3B0QXR0cmlidXRlcyA9IGZ1bmN0aW9uIChyZWNpcGllbnROb2RlLCBhdHRycykgeworICAgIHZhciByZWNpcGllbnRBdHRyc01hcCA9IFtdOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNpcGllbnROb2RlLmF0dHJzLmxlbmd0aDsgaSsrKQorICAgICAgICByZWNpcGllbnRBdHRyc01hcC5wdXNoKHJlY2lwaWVudE5vZGUuYXR0cnNbaV0ubmFtZSk7CisKKyAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7CisgICAgICAgIGlmIChyZWNpcGllbnRBdHRyc01hcC5pbmRleE9mKGF0dHJzW2pdLm5hbWUpID09PSAtMSkKKyAgICAgICAgICAgIHJlY2lwaWVudE5vZGUuYXR0cnMucHVzaChhdHRyc1tqXSk7CisgICAgfQorfTsKKworCisvL1RyZWUgdHJhdmVyc2luZworZXhwb3J0cy5nZXRGaXJzdENoaWxkID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzWzBdOworfTsKKworZXhwb3J0cy5nZXRDaGlsZE5vZGVzID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzOworfTsKKworZXhwb3J0cy5nZXRQYXJlbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlOworfTsKKworZXhwb3J0cy5nZXRBdHRyTGlzdCA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgcmV0dXJuIG5vZGUuYXR0cnM7Cit9OworCisvL05vZGUgZGF0YQorZXhwb3J0cy5nZXRUYWdOYW1lID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICByZXR1cm4gZWxlbWVudC50YWdOYW1lOworfTsKKworZXhwb3J0cy5nZXROYW1lc3BhY2VVUkkgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHJldHVybiBlbGVtZW50Lm5hbWVzcGFjZVVSSTsKK307CisKK2V4cG9ydHMuZ2V0VGV4dE5vZGVDb250ZW50ID0gZnVuY3Rpb24gKHRleHROb2RlKSB7CisgICAgcmV0dXJuIHRleHROb2RlLnZhbHVlOworfTsKKworZXhwb3J0cy5nZXRDb21tZW50Tm9kZUNvbnRlbnQgPSBmdW5jdGlvbiAoY29tbWVudE5vZGUpIHsKKyAgICByZXR1cm4gY29tbWVudE5vZGUuZGF0YTsKK307CisKK2V4cG9ydHMuZ2V0RG9jdW1lbnRUeXBlTm9kZU5hbWUgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHsKKyAgICByZXR1cm4gZG9jdHlwZU5vZGUubmFtZTsKK307CisKK2V4cG9ydHMuZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkID0gZnVuY3Rpb24gKGRvY3R5cGVOb2RlKSB7CisgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnB1YmxpY0lkOworfTsKKworZXhwb3J0cy5nZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHsKKyAgICByZXR1cm4gZG9jdHlwZU5vZGUuc3lzdGVtSWQ7Cit9OworCisvL05vZGUgdHlwZXMKK2V4cG9ydHMuaXNUZXh0Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCc7Cit9OworCitleHBvcnRzLmlzQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2NvbW1lbnQnOworfTsKKworZXhwb3J0cy5pc0RvY3VtZW50VHlwZU5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZSc7Cit9OworCitleHBvcnRzLmlzRWxlbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHJldHVybiAhIW5vZGUudGFnTmFtZTsKK307CisKK30se31dLDE2OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyd1c2Ugc3RyaWN0JzsKKwordmFyIERvY3R5cGUgPSByZXF1aXJlKCcuLi9jb21tb24vZG9jdHlwZScpOworCisvL0NvbnZlcnNpb24gdGFibGVzIGZvciBET00gTGV2ZWwxIHN0cnVjdHVyZSBlbXVsYXRpb24KK3ZhciBub2RlVHlwZXMgPSB7CisgICAgZWxlbWVudDogMSwKKyAgICB0ZXh0OiAzLAorICAgIGNkYXRhOiA0LAorICAgIGNvbW1lbnQ6IDgKK307CisKK3ZhciBub2RlUHJvcGVydHlTaG9ydGhhbmRzID0geworICAgIHRhZ05hbWU6ICduYW1lJywKKyAgICBjaGlsZE5vZGVzOiAnY2hpbGRyZW4nLAorICAgIHBhcmVudE5vZGU6ICdwYXJlbnQnLAorICAgIHByZXZpb3VzU2libGluZzogJ3ByZXYnLAorICAgIG5leHRTaWJsaW5nOiAnbmV4dCcsCisgICAgbm9kZVZhbHVlOiAnZGF0YScKK307CisKKy8vTm9kZQordmFyIE5vZGUgPSBmdW5jdGlvbiAocHJvcHMpIHsKKyAgICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHsKKyAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KGtleSkpCisgICAgICAgICAgICB0aGlzW2tleV0gPSBwcm9wc1trZXldOworICAgIH0KK307CisKK05vZGUucHJvdG90eXBlID0geworICAgIGdldCBmaXJzdENoaWxkKCkgeworICAgICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuOworICAgICAgICByZXR1cm4gY2hpbGRyZW4gJiYgY2hpbGRyZW5bMF0gfHwgbnVsbDsKKyAgICB9LAorCisgICAgZ2V0IGxhc3RDaGlsZCgpIHsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjsKKyAgICAgICAgcmV0dXJuIGNoaWxkcmVuICYmIGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdIHx8IG51bGw7CisgICAgfSwKKworICAgIGdldCBub2RlVHlwZSgpIHsKKyAgICAgICAgcmV0dXJuIG5vZGVUeXBlc1t0aGlzLnR5cGVdIHx8IG5vZGVUeXBlcy5lbGVtZW50OworICAgIH0KK307CisKK09iamVjdC5rZXlzKG5vZGVQcm9wZXJ0eVNob3J0aGFuZHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeworICAgIHZhciBzaG9ydGhhbmQgPSBub2RlUHJvcGVydHlTaG9ydGhhbmRzW2tleV07CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsIGtleSwgeworICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzW3Nob3J0aGFuZF0gfHwgbnVsbDsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsKSB7CisgICAgICAgICAgICB0aGlzW3Nob3J0aGFuZF0gPSB2YWw7CisgICAgICAgICAgICByZXR1cm4gdmFsOworICAgICAgICB9CisgICAgfSk7Cit9KTsKKworCisvL05vZGUgY29uc3RydWN0aW9uCitleHBvcnRzLmNyZWF0ZURvY3VtZW50ID0KK2V4cG9ydHMuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICByZXR1cm4gbmV3IE5vZGUoeworICAgICAgICB0eXBlOiAncm9vdCcsCisgICAgICAgIG5hbWU6ICdyb290JywKKyAgICAgICAgcGFyZW50OiBudWxsLAorICAgICAgICBwcmV2OiBudWxsLAorICAgICAgICBuZXh0OiBudWxsLAorICAgICAgICBjaGlsZHJlbjogW10KKyAgICB9KTsKK307CisKK2V4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uICh0YWdOYW1lLCBuYW1lc3BhY2VVUkksIGF0dHJzKSB7CisgICAgdmFyIGF0dHJpYnMgPSB7fSwKKyAgICAgICAgYXR0cmlic05hbWVzcGFjZSA9IHt9LAorICAgICAgICBhdHRyaWJzUHJlZml4ID0ge307CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBhdHRyTmFtZSA9IGF0dHJzW2ldLm5hbWU7CisKKyAgICAgICAgYXR0cmlic1thdHRyTmFtZV0gPSBhdHRyc1tpXS52YWx1ZTsKKyAgICAgICAgYXR0cmlic05hbWVzcGFjZVthdHRyTmFtZV0gPSBhdHRyc1tpXS5uYW1lc3BhY2U7CisgICAgICAgIGF0dHJpYnNQcmVmaXhbYXR0ck5hbWVdID0gYXR0cnNbaV0ucHJlZml4OworICAgIH0KKworICAgIHJldHVybiBuZXcgTm9kZSh7CisgICAgICAgIHR5cGU6IHRhZ05hbWUgPT09ICdzY3JpcHQnIHx8IHRhZ05hbWUgPT09ICdzdHlsZScgPyB0YWdOYW1lIDogJ3RhZycsCisgICAgICAgIG5hbWU6IHRhZ05hbWUsCisgICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlVVJJLAorICAgICAgICBhdHRyaWJzOiBhdHRyaWJzLAorICAgICAgICAneC1hdHRyaWJzTmFtZXNwYWNlJzogYXR0cmlic05hbWVzcGFjZSwKKyAgICAgICAgJ3gtYXR0cmlic1ByZWZpeCc6IGF0dHJpYnNQcmVmaXgsCisgICAgICAgIGNoaWxkcmVuOiBbXSwKKyAgICAgICAgcGFyZW50OiBudWxsLAorICAgICAgICBwcmV2OiBudWxsLAorICAgICAgICBuZXh0OiBudWxsCisgICAgfSk7Cit9OworCitleHBvcnRzLmNyZWF0ZUNvbW1lbnROb2RlID0gZnVuY3Rpb24gKGRhdGEpIHsKKyAgICByZXR1cm4gbmV3IE5vZGUoeworICAgICAgICB0eXBlOiAnY29tbWVudCcsCisgICAgICAgIGRhdGE6IGRhdGEsCisgICAgICAgIHBhcmVudDogbnVsbCwKKyAgICAgICAgcHJldjogbnVsbCwKKyAgICAgICAgbmV4dDogbnVsbAorICAgIH0pOworfTsKKwordmFyIGNyZWF0ZVRleHROb2RlID0gZnVuY3Rpb24gKHZhbHVlKSB7CisgICAgcmV0dXJuIG5ldyBOb2RlKHsKKyAgICAgICAgdHlwZTogJ3RleHQnLAorICAgICAgICBkYXRhOiB2YWx1ZSwKKyAgICAgICAgcGFyZW50OiBudWxsLAorICAgICAgICBwcmV2OiBudWxsLAorICAgICAgICBuZXh0OiBudWxsCisgICAgfSk7Cit9OworCisKKy8vVHJlZSBtdXRhdGlvbgorZXhwb3J0cy5zZXREb2N1bWVudFR5cGUgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkgeworICAgIHZhciBkYXRhID0gRG9jdHlwZS5zZXJpYWxpemVDb250ZW50KG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCksCisgICAgICAgIGRvY3R5cGVOb2RlID0gbnVsbDsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZG9jdW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNoaWxkcmVuW2ldLnR5cGUgPT09ICdkaXJlY3RpdmUnICYmIGRvY3VtZW50LmNoaWxkcmVuW2ldLm5hbWUgPT09ICchZG9jdHlwZScpIHsKKyAgICAgICAgICAgIGRvY3R5cGVOb2RlID0gZG9jdW1lbnQuY2hpbGRyZW5baV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N0eXBlTm9kZSkgeworICAgICAgICBkb2N0eXBlTm9kZS5kYXRhID0gZGF0YTsKKyAgICAgICAgZG9jdHlwZU5vZGVbJ3gtbmFtZSddID0gbmFtZTsKKyAgICAgICAgZG9jdHlwZU5vZGVbJ3gtcHVibGljSWQnXSA9IHB1YmxpY0lkOworICAgICAgICBkb2N0eXBlTm9kZVsneC1zeXN0ZW1JZCddID0gc3lzdGVtSWQ7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGFwcGVuZENoaWxkKGRvY3VtZW50LCBuZXcgTm9kZSh7CisgICAgICAgICAgICB0eXBlOiAnZGlyZWN0aXZlJywKKyAgICAgICAgICAgIG5hbWU6ICchZG9jdHlwZScsCisgICAgICAgICAgICBkYXRhOiBkYXRhLAorICAgICAgICAgICAgJ3gtbmFtZSc6IG5hbWUsCisgICAgICAgICAgICAneC1wdWJsaWNJZCc6IHB1YmxpY0lkLAorICAgICAgICAgICAgJ3gtc3lzdGVtSWQnOiBzeXN0ZW1JZAorICAgICAgICB9KSk7CisgICAgfQorCit9OworCitleHBvcnRzLnNldFF1aXJrc01vZGUgPSBmdW5jdGlvbiAoZG9jdW1lbnQpIHsKKyAgICBkb2N1bWVudC5xdWlya3NNb2RlID0gdHJ1ZTsKK307CisKK2V4cG9ydHMuaXNRdWlya3NNb2RlID0gZnVuY3Rpb24gKGRvY3VtZW50KSB7CisgICAgcmV0dXJuIGRvY3VtZW50LnF1aXJrc01vZGU7Cit9OworCit2YXIgYXBwZW5kQ2hpbGQgPSBleHBvcnRzLmFwcGVuZENoaWxkID0gZnVuY3Rpb24gKHBhcmVudE5vZGUsIG5ld05vZGUpIHsKKyAgICB2YXIgcHJldiA9IHBhcmVudE5vZGUuY2hpbGRyZW5bcGFyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXTsKKworICAgIGlmIChwcmV2KSB7CisgICAgICAgIHByZXYubmV4dCA9IG5ld05vZGU7CisgICAgICAgIG5ld05vZGUucHJldiA9IHByZXY7CisgICAgfQorCisgICAgcGFyZW50Tm9kZS5jaGlsZHJlbi5wdXNoKG5ld05vZGUpOworICAgIG5ld05vZGUucGFyZW50ID0gcGFyZW50Tm9kZTsKK307CisKK3ZhciBpbnNlcnRCZWZvcmUgPSBleHBvcnRzLmluc2VydEJlZm9yZSA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCBuZXdOb2RlLCByZWZlcmVuY2VOb2RlKSB7CisgICAgdmFyIGluc2VydGlvbklkeCA9IHBhcmVudE5vZGUuY2hpbGRyZW4uaW5kZXhPZihyZWZlcmVuY2VOb2RlKSwKKyAgICAgICAgcHJldiA9IHJlZmVyZW5jZU5vZGUucHJldjsKKworICAgIGlmIChwcmV2KSB7CisgICAgICAgIHByZXYubmV4dCA9IG5ld05vZGU7CisgICAgICAgIG5ld05vZGUucHJldiA9IHByZXY7CisgICAgfQorCisgICAgcmVmZXJlbmNlTm9kZS5wcmV2ID0gbmV3Tm9kZTsKKyAgICBuZXdOb2RlLm5leHQgPSByZWZlcmVuY2VOb2RlOworCisgICAgcGFyZW50Tm9kZS5jaGlsZHJlbi5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdOb2RlKTsKKyAgICBuZXdOb2RlLnBhcmVudCA9IHBhcmVudE5vZGU7Cit9OworCitleHBvcnRzLmRldGFjaE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIGlmIChub2RlLnBhcmVudCkgeworICAgICAgICB2YXIgaWR4ID0gbm9kZS5wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihub2RlKSwKKyAgICAgICAgICAgIHByZXYgPSBub2RlLnByZXYsCisgICAgICAgICAgICBuZXh0ID0gbm9kZS5uZXh0OworCisgICAgICAgIG5vZGUucHJldiA9IG51bGw7CisgICAgICAgIG5vZGUubmV4dCA9IG51bGw7CisKKyAgICAgICAgaWYgKHByZXYpCisgICAgICAgICAgICBwcmV2Lm5leHQgPSBuZXh0OworCisgICAgICAgIGlmIChuZXh0KQorICAgICAgICAgICAgbmV4dC5wcmV2ID0gcHJldjsKKworICAgICAgICBub2RlLnBhcmVudC5jaGlsZHJlbi5zcGxpY2UoaWR4LCAxKTsKKyAgICAgICAgbm9kZS5wYXJlbnQgPSBudWxsOworICAgIH0KK307CisKK2V4cG9ydHMuaW5zZXJ0VGV4dCA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCB0ZXh0KSB7CisgICAgdmFyIGxhc3RDaGlsZCA9IHBhcmVudE5vZGUuY2hpbGRyZW5bcGFyZW50Tm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXTsKKworICAgIGlmIChsYXN0Q2hpbGQgJiYgbGFzdENoaWxkLnR5cGUgPT09ICd0ZXh0JykKKyAgICAgICAgbGFzdENoaWxkLmRhdGEgKz0gdGV4dDsKKyAgICBlbHNlCisgICAgICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpKTsKK307CisKK2V4cG9ydHMuaW5zZXJ0VGV4dEJlZm9yZSA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCB0ZXh0LCByZWZlcmVuY2VOb2RlKSB7CisgICAgdmFyIHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZHJlbltwYXJlbnROb2RlLmNoaWxkcmVuLmluZGV4T2YocmVmZXJlbmNlTm9kZSkgLSAxXTsKKworICAgIGlmIChwcmV2Tm9kZSAmJiBwcmV2Tm9kZS50eXBlID09PSAndGV4dCcpCisgICAgICAgIHByZXZOb2RlLmRhdGEgKz0gdGV4dDsKKyAgICBlbHNlCisgICAgICAgIGluc2VydEJlZm9yZShwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSwgcmVmZXJlbmNlTm9kZSk7Cit9OworCitleHBvcnRzLmFkb3B0QXR0cmlidXRlcyA9IGZ1bmN0aW9uIChyZWNpcGllbnROb2RlLCBhdHRycykgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGF0dHJOYW1lID0gYXR0cnNbaV0ubmFtZTsKKworICAgICAgICBpZiAodHlwZW9mIHJlY2lwaWVudE5vZGUuYXR0cmlic1thdHRyTmFtZV0gPT09ICd1bmRlZmluZWQnKSB7CisgICAgICAgICAgICByZWNpcGllbnROb2RlLmF0dHJpYnNbYXR0ck5hbWVdID0gYXR0cnNbaV0udmFsdWU7CisgICAgICAgICAgICByZWNpcGllbnROb2RlWyd4LWF0dHJpYnNOYW1lc3BhY2UnXVthdHRyTmFtZV0gPSBhdHRyc1tpXS5uYW1lc3BhY2U7CisgICAgICAgICAgICByZWNpcGllbnROb2RlWyd4LWF0dHJpYnNQcmVmaXgnXVthdHRyTmFtZV0gPSBhdHRyc1tpXS5wcmVmaXg7CisgICAgICAgIH0KKyAgICB9Cit9OworCisKKy8vVHJlZSB0cmF2ZXJzaW5nCitleHBvcnRzLmdldEZpcnN0Q2hpbGQgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHJldHVybiBub2RlLmNoaWxkcmVuWzBdOworfTsKKworZXhwb3J0cy5nZXRDaGlsZE5vZGVzID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS5jaGlsZHJlbjsKK307CisKK2V4cG9ydHMuZ2V0UGFyZW50Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgcmV0dXJuIG5vZGUucGFyZW50OworfTsKKworZXhwb3J0cy5nZXRBdHRyTGlzdCA9IGZ1bmN0aW9uIChub2RlKSB7CisgICAgdmFyIGF0dHJMaXN0ID0gW107CisKKyAgICBmb3IgKHZhciBuYW1lIGluIG5vZGUuYXR0cmlicykgeworICAgICAgICBpZiAobm9kZS5hdHRyaWJzLmhhc093blByb3BlcnR5KG5hbWUpKSB7CisgICAgICAgICAgICBhdHRyTGlzdC5wdXNoKHsKKyAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLAorICAgICAgICAgICAgICAgIHZhbHVlOiBub2RlLmF0dHJpYnNbbmFtZV0sCisgICAgICAgICAgICAgICAgbmFtZXNwYWNlOiBub2RlWyd4LWF0dHJpYnNOYW1lc3BhY2UnXVtuYW1lXSwKKyAgICAgICAgICAgICAgICBwcmVmaXg6IG5vZGVbJ3gtYXR0cmlic1ByZWZpeCddW25hbWVdCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBhdHRyTGlzdDsKK307CisKKworLy9Ob2RlIGRhdGEKK2V4cG9ydHMuZ2V0VGFnTmFtZSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgcmV0dXJuIGVsZW1lbnQubmFtZTsKK307CisKK2V4cG9ydHMuZ2V0TmFtZXNwYWNlVVJJID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICByZXR1cm4gZWxlbWVudC5uYW1lc3BhY2U7Cit9OworCitleHBvcnRzLmdldFRleHROb2RlQ29udGVudCA9IGZ1bmN0aW9uICh0ZXh0Tm9kZSkgeworICAgIHJldHVybiB0ZXh0Tm9kZS5kYXRhOworfTsKKworZXhwb3J0cy5nZXRDb21tZW50Tm9kZUNvbnRlbnQgPSBmdW5jdGlvbiAoY29tbWVudE5vZGUpIHsKKyAgICByZXR1cm4gY29tbWVudE5vZGUuZGF0YTsKK307CisKK2V4cG9ydHMuZ2V0RG9jdW1lbnRUeXBlTm9kZU5hbWUgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHsKKyAgICByZXR1cm4gZG9jdHlwZU5vZGVbJ3gtbmFtZSddOworfTsKKworZXhwb3J0cy5nZXREb2N1bWVudFR5cGVOb2RlUHVibGljSWQgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHsKKyAgICByZXR1cm4gZG9jdHlwZU5vZGVbJ3gtcHVibGljSWQnXTsKK307CisKK2V4cG9ydHMuZ2V0RG9jdW1lbnRUeXBlTm9kZVN5c3RlbUlkID0gZnVuY3Rpb24gKGRvY3R5cGVOb2RlKSB7CisgICAgcmV0dXJuIGRvY3R5cGVOb2RlWyd4LXN5c3RlbUlkJ107Cit9OworCisKKy8vTm9kZSB0eXBlcworZXhwb3J0cy5pc1RleHROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS50eXBlID09PSAndGV4dCc7Cit9OworCitleHBvcnRzLmlzQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHJldHVybiBub2RlLnR5cGUgPT09ICdjb21tZW50JzsKK307CisKK2V4cG9ydHMuaXNEb2N1bWVudFR5cGVOb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKKyAgICByZXR1cm4gbm9kZS50eXBlID09PSAnZGlyZWN0aXZlJyAmJiBub2RlLm5hbWUgPT09ICchZG9jdHlwZSc7Cit9OworCitleHBvcnRzLmlzRWxlbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkgeworICAgIHJldHVybiAhIW5vZGUuYXR0cmliczsKK307CisKK30seyIuLi9jb21tb24vZG9jdHlwZSI6MX1dLDE3OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyd1c2Ugc3RyaWN0JzsKKworLy9Db25zdAordmFyIE5PQUhfQVJLX0NBUEFDSVRZID0gMzsKKworLy9MaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHMKK3ZhciBGb3JtYXR0aW5nRWxlbWVudExpc3QgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0cmVlQWRhcHRlcikgeworICAgIHRoaXMubGVuZ3RoID0gMDsKKyAgICB0aGlzLmVudHJpZXMgPSBbXTsKKyAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7CisgICAgdGhpcy5ib29rbWFyayA9IG51bGw7Cit9OworCisvL0VudHJ5IHR5cGVzCitGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZID0gJ01BUktFUl9FTlRSWSc7CitGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSA9ICdFTEVNRU5UX0VOVFJZJzsKKworLy9Ob2FoIEFyaydzIGNvbmRpdGlvbgorLy9PUFRJTUlaQVRJT046IGF0IGZpcnN0IHdlIHRyeSB0byBmaW5kIHBvc3NpYmxlIGNhbmRpZGF0ZXMgZm9yIGV4Y2x1c2lvbiB1c2luZworLy9saWdodHdlaWdodCBoZXVyaXN0aWNzIHdpdGhvdXQgdGhvcm91Z2ggYXR0cmlidXRlcyBjaGVjay4KK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzID0gZnVuY3Rpb24gKG5ld0VsZW1lbnQpIHsKKyAgICB2YXIgY2FuZGlkYXRlcyA9IFtdOworCisgICAgaWYgKHRoaXMubGVuZ3RoID49IE5PQUhfQVJLX0NBUEFDSVRZKSB7CisgICAgICAgIHZhciBuZUF0dHJzTGVuZ3RoID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KS5sZW5ndGgsCisgICAgICAgICAgICBuZVRhZ05hbWUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobmV3RWxlbWVudCksCisgICAgICAgICAgICBuZU5hbWVzcGFjZVVSSSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5ld0VsZW1lbnQpOworCisgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLmVudHJpZXNbaV07CisKKyAgICAgICAgICAgIGlmIChlbnRyeS50eXBlID09PSBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGVudHJ5LmVsZW1lbnQsCisgICAgICAgICAgICAgICAgZWxlbWVudEF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChlbGVtZW50KTsKKworICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gbmVUYWdOYW1lICYmCisgICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCkgPT09IG5lTmFtZXNwYWNlVVJJICYmCisgICAgICAgICAgICAgICAgZWxlbWVudEF0dHJzLmxlbmd0aCA9PT0gbmVBdHRyc0xlbmd0aCkgeworICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMucHVzaCh7aWR4OiBpLCBhdHRyczogZWxlbWVudEF0dHJzfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gY2FuZGlkYXRlcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSA/IFtdIDogY2FuZGlkYXRlczsKK307CisKK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24gPSBmdW5jdGlvbiAobmV3RWxlbWVudCkgeworICAgIHZhciBjYW5kaWRhdGVzID0gdGhpcy5fZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMobmV3RWxlbWVudCksCisgICAgICAgIGNMZW5ndGggPSBjYW5kaWRhdGVzLmxlbmd0aDsKKworICAgIGlmIChjTGVuZ3RoKSB7CisgICAgICAgIHZhciBuZUF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KSwKKyAgICAgICAgICAgIG5lQXR0cnNMZW5ndGggPSBuZUF0dHJzLmxlbmd0aCwKKyAgICAgICAgICAgIG5lQXR0cnNNYXAgPSB7fTsKKworICAgICAgICAvL05PVEU6IGJ1aWxkIGF0dHJzIG1hcCBmb3IgdGhlIG5ldyBlbGVtZW50IHNvIHdlIGNhbiBwZXJmb3JtIGZhc3QgbG9va3VwcworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5lQXR0cnNMZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIG5lQXR0ciA9IG5lQXR0cnNbaV07CisKKyAgICAgICAgICAgIG5lQXR0cnNNYXBbbmVBdHRyLm5hbWVdID0gbmVBdHRyLnZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZUF0dHJzTGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY0xlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgdmFyIGNBdHRyID0gY2FuZGlkYXRlc1tqXS5hdHRyc1tpXTsKKworICAgICAgICAgICAgICAgIGlmIChuZUF0dHJzTWFwW2NBdHRyLm5hbWVdICE9PSBjQXR0ci52YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLnNwbGljZShqLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgY0xlbmd0aC0tOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvL05PVEU6IHJlbW92ZSBib3R0b21tb3N0IGNhbmRpZGF0ZXMgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0CisgICAgICAgIGZvciAodmFyIGkgPSBjTGVuZ3RoIC0gMTsgaSA+PSBOT0FIX0FSS19DQVBBQ0lUWSAtIDE7IGktLSkgeworICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShjYW5kaWRhdGVzW2ldLmlkeCwgMSk7CisgICAgICAgICAgICB0aGlzLmxlbmd0aC0tOworICAgICAgICB9CisgICAgfQorfTsKKworLy9NdXRhdGlvbnMKK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuaW5zZXJ0TWFya2VyID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuZW50cmllcy5wdXNoKHt0eXBlOiBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZfSk7CisgICAgdGhpcy5sZW5ndGgrKzsKK307CisKK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUucHVzaEVsZW1lbnQgPSBmdW5jdGlvbiAoZWxlbWVudCwgdG9rZW4pIHsKKyAgICB0aGlzLl9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uKGVsZW1lbnQpOworCisgICAgdGhpcy5lbnRyaWVzLnB1c2goeworICAgICAgICB0eXBlOiBGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSwKKyAgICAgICAgZWxlbWVudDogZWxlbWVudCwKKyAgICAgICAgdG9rZW46IHRva2VuCisgICAgfSk7CisKKyAgICB0aGlzLmxlbmd0aCsrOworfTsKKworRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayA9IGZ1bmN0aW9uIChlbGVtZW50LCB0b2tlbikgeworICAgIHZhciBib29rbWFya0lkeCA9IHRoaXMubGVuZ3RoIC0gMTsKKworICAgIGZvciAoOyBib29rbWFya0lkeCA+PSAwOyBib29rbWFya0lkeC0tKSB7CisgICAgICAgIGlmICh0aGlzLmVudHJpZXNbYm9va21hcmtJZHhdID09PSB0aGlzLmJvb2ttYXJrKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgdGhpcy5lbnRyaWVzLnNwbGljZShib29rbWFya0lkeCArIDEsIDAsIHsKKyAgICAgICAgdHlwZTogRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlksCisgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsCisgICAgICAgIHRva2VuOiB0b2tlbgorICAgIH0pOworCisgICAgdGhpcy5sZW5ndGgrKzsKK307CisKK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUucmVtb3ZlRW50cnkgPSBmdW5jdGlvbiAoZW50cnkpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICBpZiAodGhpcy5lbnRyaWVzW2ldID09PSBlbnRyeSkgeworICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShpLCAxKTsKKyAgICAgICAgICAgIHRoaXMubGVuZ3RoLS07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK307CisKK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuY2xlYXJUb0xhc3RNYXJrZXIgPSBmdW5jdGlvbiAoKSB7CisgICAgd2hpbGUgKHRoaXMubGVuZ3RoKSB7CisgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZW50cmllcy5wb3AoKTsKKworICAgICAgICB0aGlzLmxlbmd0aC0tOworCisgICAgICAgIGlmIChlbnRyeS50eXBlID09PSBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfTsKKworLy9TZWFyY2gKK0Zvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgZW50cnkgPSB0aGlzLmVudHJpZXNbaV07CisKKyAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUlkpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVudHJ5LmVsZW1lbnQpID09PSB0YWdOYW1lKQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5OworICAgIH0KKworICAgIHJldHVybiBudWxsOworfTsKKworRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5nZXRFbGVtZW50RW50cnkgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZW50cmllc1tpXTsKKworICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlkgJiYgZW50cnkuZWxlbWVudCA9PSBlbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5OworICAgIH0KKworICAgIHJldHVybiBudWxsOworfTsKKworfSx7fV0sMTg6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpeworJ3VzZSBzdHJpY3QnOworCit2YXIgT3BlbkVsZW1lbnRTdGFjayA9IHJlcXVpcmUoJy4vb3Blbl9lbGVtZW50X3N0YWNrJyksCisgICAgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplcicpLAorICAgIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpOworCisKKy8vQWxpYXNlcwordmFyICQgPSBIVE1MLlRBR19OQU1FUzsKKworCitmdW5jdGlvbiBzZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4sIHRyZWVBZGFwdGVyKSB7CisgICAgdmFyIGxvYyA9IGVsZW1lbnQuX19sb2NhdGlvbjsKKworICAgIGlmICghbG9jKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWxvYy5zdGFydFRhZykgeworICAgICAgICBsb2Muc3RhcnRUYWcgPSB7CisgICAgICAgICAgICBzdGFydDogbG9jLnN0YXJ0LAorICAgICAgICAgICAgZW5kOiBsb2MuZW5kCisgICAgICAgIH07CisgICAgfQorCisgICAgaWYgKGNsb3NpbmdUb2tlbi5sb2NhdGlvbikgeworICAgICAgICB2YXIgdG4gPSB0cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLAorICAgICAgICAgICAgLy8gTk9URTogRm9yIGNhc2VzIGxpa2UgPHA+IDxwPiA8L3A+IC0gRmlyc3QgJ3AnIGNsb3NlcyB3aXRob3V0IGEgY2xvc2luZyB0YWcgYW5kCisgICAgICAgICAgICAvLyBmb3IgY2FzZXMgbGlrZSA8dGQ+IDxwPiA8L3RkPiAtICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmcgdGFnCisgICAgICAgICAgICBpc0Nsb3NpbmdFbmRUYWcgPSBjbG9zaW5nVG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRuID09PSBjbG9zaW5nVG9rZW4udGFnTmFtZTsKKworICAgICAgICBpZiAoaXNDbG9zaW5nRW5kVGFnKSB7CisgICAgICAgICAgICBsb2MuZW5kVGFnID0geworICAgICAgICAgICAgICAgIHN0YXJ0OiBjbG9zaW5nVG9rZW4ubG9jYXRpb24uc3RhcnQsCisgICAgICAgICAgICAgICAgZW5kOiBjbG9zaW5nVG9rZW4ubG9jYXRpb24uZW5kCisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgbG9jLmVuZCA9IGNsb3NpbmdUb2tlbi5sb2NhdGlvbi5lbmQ7CisgICAgfQorfQorCisvL05PVEU6IHBhdGNoIG9wZW4gZWxlbWVudHMgc3RhY2ssIHNvIHdlIGNhbiBhc3NpZ24gZW5kIGxvY2F0aW9uIGZvciB0aGUgZWxlbWVudHMKK2Z1bmN0aW9uIHBhdGNoT3BlbkVsZW1lbnRzU3RhY2soc3RhY2ssIHBhcnNlcikgeworICAgIHZhciB0cmVlQWRhcHRlciA9IHBhcnNlci50cmVlQWRhcHRlcjsKKworICAgIHN0YWNrLnBvcCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgc2V0RW5kTG9jYXRpb24odGhpcy5jdXJyZW50LCBwYXJzZXIuY3VycmVudFRva2VuLCB0cmVlQWRhcHRlcik7CisgICAgICAgIE9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcC5jYWxsKHRoaXMpOworICAgIH07CisKKyAgICBzdGFjay5wb3BBbGxVcFRvSHRtbEVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID4gMDsgaS0tKQorICAgICAgICAgICAgc2V0RW5kTG9jYXRpb24odGhpcy5pdGVtc1tpXSwgcGFyc2VyLmN1cnJlbnRUb2tlbiwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIE9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcEFsbFVwVG9IdG1sRWxlbWVudC5jYWxsKHRoaXMpOworICAgIH07CisKKyAgICBzdGFjay5yZW1vdmUgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgICAgICBzZXRFbmRMb2NhdGlvbihlbGVtZW50LCBwYXJzZXIuY3VycmVudFRva2VuLCB0cmVlQWRhcHRlcik7CisgICAgICAgIE9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMsIGVsZW1lbnQpOworICAgIH07Cit9CisKK2V4cG9ydHMuYXNzaWduID0gZnVuY3Rpb24gKHBhcnNlcikgeworICAgIC8vTk9URTogb2J0YWluIFBhcnNlciBwcm90byB0aGlzIHdheSB0byBhdm9pZCBtb2R1bGUgY2lyY3VsYXIgcmVmZXJlbmNlcworICAgIHZhciBwYXJzZXJQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwYXJzZXIpLAorICAgICAgICB0cmVlQWRhcHRlciA9IHBhcnNlci50cmVlQWRhcHRlcjsKKworCisgICAgLy9OT1RFOiBwYXRjaCBfcmVzZXQgbWV0aG9kCisgICAgcGFyc2VyLl9yZXNldCA9IGZ1bmN0aW9uIChodG1sLCBkb2N1bWVudCwgZnJhZ21lbnRDb250ZXh0KSB7CisgICAgICAgIHBhcnNlclByb3RvLl9yZXNldC5jYWxsKHRoaXMsIGh0bWwsIGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpOworCisgICAgICAgIHRoaXMuYXR0YWNoYWJsZUVsZW1lbnRMb2NhdGlvbiA9IG51bGw7CisgICAgICAgIHRoaXMubGFzdEZvc3RlclBhcmVudGluZ0xvY2F0aW9uID0gbnVsbDsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsOworCisgICAgICAgIHBhdGNoT3BlbkVsZW1lbnRzU3RhY2sodGhpcy5vcGVuRWxlbWVudHMsIHBhcnNlcik7CisgICAgfTsKKworICAgIHBhcnNlci5fcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuOworICAgICAgICBwYXJzZXJQcm90by5fcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudC5jYWxsKHRoaXMsIHRva2VuKTsKKyAgICB9OworCisgICAgcGFyc2VyLl9wcm9jZXNzVG9rZW4gPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB0b2tlbjsKKyAgICAgICAgcGFyc2VyUHJvdG8uX3Byb2Nlc3NUb2tlbi5jYWxsKHRoaXMsIHRva2VuKTsKKworICAgICAgICAvL05PVEU6IDxib2R5PiBhbmQgPGh0bWw+IGFyZSBuZXZlciBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIHNvIHdlIG5lZWQgdG8gdXBkYXRlZAorICAgICAgICAvL3RoZWlyIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LgorICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4gJiYKKyAgICAgICAgICAgICh0b2tlbi50YWdOYW1lID09PSAkLkhUTUwgfHwKKyAgICAgICAgICAgICh0b2tlbi50YWdOYW1lID09PSAkLkJPRFkgJiYgdGhpcy5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJPRFkpKSkpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2ldOworCisgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG9rZW4udGFnTmFtZSkgeworICAgICAgICAgICAgICAgICAgICBzZXRFbmRMb2NhdGlvbihlbGVtZW50LCB0b2tlbiwgdHJlZUFkYXB0ZXIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworCisgICAgLy9Eb2N0eXBlCisgICAgcGFyc2VyLl9zZXREb2N1bWVudFR5cGUgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgcGFyc2VyUHJvdG8uX3NldERvY3VtZW50VHlwZS5jYWxsKHRoaXMsIHRva2VuKTsKKworICAgICAgICB2YXIgZG9jdW1lbnRDaGlsZHJlbiA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyh0aGlzLmRvY3VtZW50KSwKKyAgICAgICAgICAgIGNuTGVuZ3RoID0gZG9jdW1lbnRDaGlsZHJlbi5sZW5ndGg7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbkxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgbm9kZSA9IGRvY3VtZW50Q2hpbGRyZW5baV07CisKKyAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSkgeworICAgICAgICAgICAgICAgIG5vZGUuX19sb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKKworICAgIC8vRWxlbWVudHMKKyAgICBwYXJzZXIuX2F0dGFjaEVsZW1lbnRUb1RyZWUgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgICAgICAvL05PVEU6IF9hdHRhY2hFbGVtZW50VG9UcmVlIGlzIGNhbGxlZCBmcm9tIF9hcHBlbmRFbGVtZW50LCBfaW5zZXJ0RWxlbWVudCBhbmQgX2luc2VydFRlbXBsYXRlIG1ldGhvZHMuCisgICAgICAgIC8vU28gd2Ugd2lsbCB1c2UgdG9rZW4gbG9jYXRpb24gc3RvcmVkIGluIHRoaXMgbWV0aG9kcyBmb3IgdGhlIGVsZW1lbnQuCisgICAgICAgIGVsZW1lbnQuX19sb2NhdGlvbiA9IHRoaXMuYXR0YWNoYWJsZUVsZW1lbnRMb2NhdGlvbiB8fCBudWxsOworICAgICAgICB0aGlzLmF0dGFjaGFibGVFbGVtZW50TG9jYXRpb24gPSBudWxsOworICAgICAgICBwYXJzZXJQcm90by5fYXR0YWNoRWxlbWVudFRvVHJlZS5jYWxsKHRoaXMsIGVsZW1lbnQpOworICAgIH07CisKKyAgICBwYXJzZXIuX2FwcGVuZEVsZW1lbnQgPSBmdW5jdGlvbiAodG9rZW4sIG5hbWVzcGFjZVVSSSkgeworICAgICAgICB0aGlzLmF0dGFjaGFibGVFbGVtZW50TG9jYXRpb24gPSB0b2tlbi5sb2NhdGlvbjsKKyAgICAgICAgcGFyc2VyUHJvdG8uX2FwcGVuZEVsZW1lbnQuY2FsbCh0aGlzLCB0b2tlbiwgbmFtZXNwYWNlVVJJKTsKKyAgICB9OworCisgICAgcGFyc2VyLl9pbnNlcnRFbGVtZW50ID0gZnVuY3Rpb24gKHRva2VuLCBuYW1lc3BhY2VVUkkpIHsKKyAgICAgICAgdGhpcy5hdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247CisgICAgICAgIHBhcnNlclByb3RvLl9pbnNlcnRFbGVtZW50LmNhbGwodGhpcywgdG9rZW4sIG5hbWVzcGFjZVVSSSk7CisgICAgfTsKKworICAgIHBhcnNlci5faW5zZXJ0VGVtcGxhdGUgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgdGhpcy5hdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247CisgICAgICAgIHBhcnNlclByb3RvLl9pbnNlcnRUZW1wbGF0ZS5jYWxsKHRoaXMsIHRva2VuKTsKKworICAgICAgICB2YXIgdG1wbENvbnRlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5vcGVuRWxlbWVudHMuY3VycmVudClbMF07CisKKyAgICAgICAgdG1wbENvbnRlbnQuX19sb2NhdGlvbiA9IG51bGw7CisgICAgfTsKKworICAgIHBhcnNlci5faW5zZXJ0RmFrZVJvb3RFbGVtZW50ID0gZnVuY3Rpb24gKCkgeworICAgICAgICBwYXJzZXJQcm90by5faW5zZXJ0RmFrZVJvb3RFbGVtZW50LmNhbGwodGhpcyk7CisgICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQuX19sb2NhdGlvbiA9IG51bGw7CisgICAgfTsKKworICAgIC8vQ29tbWVudHMKKyAgICBwYXJzZXIuX2FwcGVuZENvbW1lbnROb2RlID0gZnVuY3Rpb24gKHRva2VuLCBwYXJlbnQpIHsKKyAgICAgICAgcGFyc2VyUHJvdG8uX2FwcGVuZENvbW1lbnROb2RlLmNhbGwodGhpcywgdG9rZW4sIHBhcmVudCk7CisKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHBhcmVudCksCisgICAgICAgICAgICBjb21tZW50Tm9kZSA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdOworCisgICAgICAgIGNvbW1lbnROb2RlLl9fbG9jYXRpb24gPSB0b2tlbi5sb2NhdGlvbjsKKyAgICB9OworCisgICAgLy9UZXh0CisgICAgcGFyc2VyLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIC8vTk9URTogc3RvcmUgbGFzdCBmb3N0ZXIgcGFyZW50aW5nIGxvY2F0aW9uLCBzbyB3ZSB3aWxsIGJlIGFibGUgdG8gZmluZCBpbnNlcnRlZCB0ZXh0CisgICAgICAgIC8vaW4gY2FzZSBvZiBmb3N0ZXIgcGFyZW50aW5nCisgICAgICAgIHRoaXMubGFzdEZvc3RlclBhcmVudGluZ0xvY2F0aW9uID0gcGFyc2VyUHJvdG8uX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbi5jYWxsKHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy5sYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb247CisgICAgfTsKKworICAgIHBhcnNlci5faW5zZXJ0Q2hhcmFjdGVycyA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgICAgICBwYXJzZXJQcm90by5faW5zZXJ0Q2hhcmFjdGVycy5jYWxsKHRoaXMsIHRva2VuKTsKKworICAgICAgICB2YXIgaGFzRm9zdGVyUGFyZW50ID0gdGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSwKKyAgICAgICAgICAgIHBhcmVudGluZ0xvY2F0aW9uID0gdGhpcy5sYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24sCisgICAgICAgICAgICBwYXJlbnQgPSAoaGFzRm9zdGVyUGFyZW50ICYmIHBhcmVudGluZ0xvY2F0aW9uLnBhcmVudCkgfHwKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudCB8fAorICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCwKKyAgICAgICAgICAgIHNpYmxpbmdzID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHBhcmVudCksCisgICAgICAgICAgICB0ZXh0Tm9kZUlkeCA9IGhhc0Zvc3RlclBhcmVudCAmJiBwYXJlbnRpbmdMb2NhdGlvbi5iZWZvcmVFbGVtZW50ID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2libGluZ3MuaW5kZXhPZihwYXJlbnRpbmdMb2NhdGlvbi5iZWZvcmVFbGVtZW50KSAtIDEgOgorICAgICAgICAgICAgICAgICAgICAgICAgICBzaWJsaW5ncy5sZW5ndGggLSAxLAorICAgICAgICAgICAgdGV4dE5vZGUgPSBzaWJsaW5nc1t0ZXh0Tm9kZUlkeF07CisKKyAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGxvY2F0aW9uIGFzc2lnbmVkIGJ5IGFub3RoZXIgdG9rZW4sIHRoZW4ganVzdCB1cGRhdGUgZW5kIHBvc2l0aW9uCisgICAgICAgIGlmICh0ZXh0Tm9kZS5fX2xvY2F0aW9uKQorICAgICAgICAgICAgdGV4dE5vZGUuX19sb2NhdGlvbi5lbmQgPSB0b2tlbi5sb2NhdGlvbi5lbmQ7CisKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGV4dE5vZGUuX19sb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uOworICAgIH07Cit9OworCisKK30seyIuLi9jb21tb24vaHRtbCI6MywiLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplciI6MTQsIi4vb3Blbl9lbGVtZW50X3N0YWNrIjoxOX1dLDE5OltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKyd1c2Ugc3RyaWN0JzsKKwordmFyIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpOworCisvL0FsaWFzZXMKK3ZhciAkID0gSFRNTC5UQUdfTkFNRVMsCisgICAgTlMgPSBIVE1MLk5BTUVTUEFDRVM7CisKKy8vRWxlbWVudCB1dGlscworCisvL09QVElNSVpBVElPTjogSW50ZWdlciBjb21wYXJpc29ucyBhcmUgbG93LWNvc3QsIHNvIHdlIGNhbiB1c2UgdmVyeSBmYXN0IHRhZyBuYW1lIGxlbmd0aCBmaWx0ZXJzIGhlcmUuCisvL0l0J3MgZmFzdGVyIHRoYW4gdXNpbmcgZGljdGlvbmFyeS4KK2Z1bmN0aW9uIGlzSW1wbGllZEVuZFRhZ1JlcXVpcmVkKHRuKSB7CisgICAgc3dpdGNoICh0bi5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlA7CisKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlJQIHx8IHRuID09PSAkLlJUIHx8IHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUIHx8IHRuID09PSAkLkxJOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5PUFRJT047CisKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLk9QVEdST1VQOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gaXNTY29waW5nRWxlbWVudCh0biwgbnMpIHsKKyAgICBzd2l0Y2ggKHRuLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5zID09PSBOUy5IVE1MOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NSSB8fCB0biA9PT0gJC5NTyB8fCB0biA9PSAkLk1OIHx8IHRuID09PSAkLk1TKQorICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuSFRNTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkRFU0MpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5zID09PSBOUy5TVkc7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1URVhUKQorICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5USVRMRSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLlNWRzsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgcmV0dXJuICh0biA9PT0gJC5BUFBMRVQgfHwgdG4gPT09ICQuT0JKRUNUKSAmJiBucyA9PT0gTlMuSFRNTDsKKworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXR1cm4gKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuTUFSUVVFRSkgJiYgbnMgPT09IE5TLkhUTUw7CisKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MOworCisgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICByZXR1cm4gdG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgJiYgbnMgPT09IE5TLlNWRzsKKworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLkFOTk9UQVRJT05fWE1MICYmIG5zID09PSBOUy5NQVRITUw7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvL1N0YWNrIG9mIG9wZW4gZWxlbWVudHMKK3ZhciBPcGVuRWxlbWVudFN0YWNrID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIHRyZWVBZGFwdGVyKSB7CisgICAgdGhpcy5zdGFja1RvcCA9IC0xOworICAgIHRoaXMuaXRlbXMgPSBbXTsKKyAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDsKKyAgICB0aGlzLmN1cnJlbnRUYWdOYW1lID0gbnVsbDsKKyAgICB0aGlzLmN1cnJlbnRUbXBsQ29udGVudCA9IG51bGw7CisgICAgdGhpcy50bXBsQ291bnQgPSAwOworICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjsKK307CisKKy8vSW5kZXggb2YgZWxlbWVudAorT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuX2luZGV4T2YgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciBpZHggPSAtMTsKKworICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICBpZiAodGhpcy5pdGVtc1tpXSA9PT0gZWxlbWVudCkgeworICAgICAgICAgICAgaWR4ID0gaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBpZHg7Cit9OworCisvL1VwZGF0ZSBjdXJyZW50IGVsZW1lbnQKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLl9pc0luVGVtcGxhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgaWYgKHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEVNUExBVEUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpID09PSBOUy5IVE1MOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuX3VwZGF0ZUN1cnJlbnRFbGVtZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuY3VycmVudCA9IHRoaXMuaXRlbXNbdGhpcy5zdGFja1RvcF07CisgICAgdGhpcy5jdXJyZW50VGFnTmFtZSA9IHRoaXMuY3VycmVudCAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5jdXJyZW50KTsKKworICAgIHRoaXMuY3VycmVudFRtcGxDb250ZW50ID0gdGhpcy5faXNJblRlbXBsYXRlKCkgPyB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5jdXJyZW50KVswXSA6IG51bGw7Cit9OworCisvL011dGF0aW9ucworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgdGhpcy5pdGVtc1srK3RoaXMuc3RhY2tUb3BdID0gZWxlbWVudDsKKyAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpOworCisgICAgaWYgKHRoaXMuX2lzSW5UZW1wbGF0ZSgpKQorICAgICAgICB0aGlzLnRtcGxDb3VudCsrOworCit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5zdGFja1RvcC0tOworCisgICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSkKKyAgICAgICAgdGhpcy50bXBsQ291bnQtLTsKKworICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5yZXBsYWNlID0gZnVuY3Rpb24gKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHsKKyAgICB2YXIgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTsKKyAgICB0aGlzLml0ZW1zW2lkeF0gPSBuZXdFbGVtZW50OworCisgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkKKyAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmluc2VydEFmdGVyID0gZnVuY3Rpb24gKHJlZmVyZW5jZUVsZW1lbnQsIG5ld0VsZW1lbnQpIHsKKyAgICB2YXIgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7CisKKyAgICB0aGlzLml0ZW1zLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnQpOworCisgICAgaWYgKGluc2VydGlvbklkeCA9PSArK3RoaXMuc3RhY2tUb3ApCisgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BVbnRpbFRhZ05hbWVQb3BwZWQgPSBmdW5jdGlvbiAodGFnTmFtZSkgeworICAgIHdoaWxlICh0aGlzLnN0YWNrVG9wID4gLTEpIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy5jdXJyZW50VGFnTmFtZTsKKworICAgICAgICB0aGlzLnBvcCgpOworCisgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcFVudGlsVGVtcGxhdGVQb3BwZWQgPSBmdW5jdGlvbiAoKSB7CisgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPiAtMSkgeworICAgICAgICB2YXIgdG4gPSB0aGlzLmN1cnJlbnRUYWdOYW1lLAorICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpOworCisgICAgICAgIHRoaXMucG9wKCk7CisKKyAgICAgICAgaWYgKHRuID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucG9wVW50aWxFbGVtZW50UG9wcGVkID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+IC0xKSB7CisgICAgICAgIHZhciBwb3BwZWRFbGVtZW50ID0gdGhpcy5jdXJyZW50OworCisgICAgICAgIHRoaXMucG9wKCk7CisKKyAgICAgICAgaWYgKHBvcHBlZEVsZW1lbnQgPT09IGVsZW1lbnQpCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkID0gZnVuY3Rpb24gKCkgeworICAgIHdoaWxlICh0aGlzLnN0YWNrVG9wID4gLTEpIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy5jdXJyZW50VGFnTmFtZTsKKworICAgICAgICB0aGlzLnBvcCgpOworCisgICAgICAgIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INikKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcEFsbFVwVG9IdG1sRWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICAvL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc28KKyAgICAvL3dlIHBlcmZvcm0gdGhpcyBmYXN0IHN0YWNrIGNsZWFuIHVwLgorICAgIHRoaXMuc3RhY2tUb3AgPSAwOworICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UQUJMRSAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRFTVBMQVRFICYmIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuSFRNTCkKKyAgICAgICAgdGhpcy5wb3AoKTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UQk9EWSAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRGT09UICYmCisgICAgICAgICAgIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEhFQUQgJiYgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5URU1QTEFURSAmJgorICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkhUTUwpIHsKKyAgICAgICAgdGhpcy5wb3AoKTsKKyAgICB9Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UUiAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRFTVBMQVRFICYmIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuSFRNTCkKKyAgICAgICAgdGhpcy5wb3AoKTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGlmICh0aGlzLml0ZW1zW2ldID09PSBlbGVtZW50KSB7CisgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpLCAxKTsKKyAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK307CisKKy8vU2VhcmNoCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICAvL1Byb3Blcmx5IG5lc3RlZCA8Ym9keT4gZWxlbWVudCAoc2hvdWxkIGJlIHNlY29uZCBlbGVtZW50IGluIHN0YWNrKS4KKyAgICB2YXIgZWxlbWVudCA9IHRoaXMuaXRlbXNbMV07CisgICAgcmV0dXJuIGVsZW1lbnQgJiYgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSAkLkJPRFkgPyBlbGVtZW50IDogbnVsbDsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICByZXR1cm4gdGhpcy5faW5kZXhPZihlbGVtZW50KSA+IC0xOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuZ2V0Q29tbW9uQW5jZXN0b3IgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciBlbGVtZW50SWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTsKKworICAgIHJldHVybiAtLWVsZW1lbnRJZHggPj0gMCA/IHRoaXMuaXRlbXNbZWxlbWVudElkeF0gOiBudWxsOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuY3VycmVudFRhZ05hbWUgPT09ICQuSFRNTDsKK307CisKKy8vRWxlbWVudCBpbiBzY29wZQorT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzSW5TY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAoaXNTY29waW5nRWxlbWVudCh0biwgbnMpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlID0gZnVuY3Rpb24gKCkgeworICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSk7CisKKyAgICAgICAgaWYgKHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGlzU2NvcGluZ0VsZW1lbnQodG4sIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luTGlzdEl0ZW1TY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAoKCh0biA9PT0gJC5VTCB8fCB0biA9PT0gJC5PTCkgJiYgbnMgPT09IE5TLkhUTUwpIHx8IGlzU2NvcGluZ0VsZW1lbnQodG4sIG5zKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luQnV0dG9uU2NvcGUgPSBmdW5jdGlvbiAodGFnTmFtZSkgeworICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSk7CisKKyAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgdmFyIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7CisKKyAgICAgICAgaWYgKCh0biA9PT0gJC5CVVRUT04gJiYgbnMgPT09IE5TLkhUTUwpIHx8IGlzU2NvcGluZ0VsZW1lbnQodG4sIG5zKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK307CisKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luVGFibGVTY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7CisgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTsKKworICAgICAgICBpZiAoKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRFTVBMQVRFIHx8IHRuID09PSAkLkhUTUwpICYmIG5zID09PSBOUy5IVE1MKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSA9IGZ1bmN0aW9uICgpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5URk9PVCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHZhciBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICgodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuSFRNTCkgJiYgbnMgPT09IE5TLkhUTUwpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9OworCitPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5oYXNJblNlbGVjdFNjb3BlID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHZhciBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pOworCisgICAgICAgIGlmICh0biAhPT0gJC5PUFRJT04gJiYgdG4gIT09ICQuT1BUR1JPVVAgJiYgbnMgPT09IE5TLkhUTUwpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9OworCisvL0ltcGxpZWQgZW5kIHRhZ3MKK09wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MgPSBmdW5jdGlvbiAoKSB7CisgICAgd2hpbGUgKGlzSW1wbGllZEVuZFRhZ1JlcXVpcmVkKHRoaXMuY3VycmVudFRhZ05hbWUpKQorICAgICAgICB0aGlzLnBvcCgpOworfTsKKworT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24gPSBmdW5jdGlvbiAoZXhjbHVzaW9uVGFnTmFtZSkgeworICAgIHdoaWxlIChpc0ltcGxpZWRFbmRUYWdSZXF1aXJlZCh0aGlzLmN1cnJlbnRUYWdOYW1lKSAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSBleGNsdXNpb25UYWdOYW1lKQorICAgICAgICB0aGlzLnBvcCgpOworfTsKKworfSx7Ii4uL2NvbW1vbi9odG1sIjozfV0sMjA6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpeworJ3VzZSBzdHJpY3QnOworCit2YXIgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemF0aW9uL3Rva2VuaXplcicpLAorICAgIE9wZW5FbGVtZW50U3RhY2sgPSByZXF1aXJlKCcuL29wZW5fZWxlbWVudF9zdGFjaycpLAorICAgIEZvcm1hdHRpbmdFbGVtZW50TGlzdCA9IHJlcXVpcmUoJy4vZm9ybWF0dGluZ19lbGVtZW50X2xpc3QnKSwKKyAgICBMb2NhdGlvbkluZm9NaXhpbiA9IHJlcXVpcmUoJy4vbG9jYXRpb25faW5mb19taXhpbicpLAorICAgIERlZmF1bHRUcmVlQWRhcHRlciA9IHJlcXVpcmUoJy4uL3RyZWVfYWRhcHRlcnMvZGVmYXVsdCcpLAorICAgIERvY3R5cGUgPSByZXF1aXJlKCcuLi9jb21tb24vZG9jdHlwZScpLAorICAgIEZvcmVpZ25Db250ZW50ID0gcmVxdWlyZSgnLi4vY29tbW9uL2ZvcmVpZ25fY29udGVudCcpLAorICAgIFV0aWxzID0gcmVxdWlyZSgnLi4vY29tbW9uL3V0aWxzJyksCisgICAgVU5JQ09ERSA9IHJlcXVpcmUoJy4uL2NvbW1vbi91bmljb2RlJyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4uL2NvbW1vbi9odG1sJyk7CisKKy8vQWxpYXNlcwordmFyICQgPSBIVE1MLlRBR19OQU1FUywKKyAgICBOUyA9IEhUTUwuTkFNRVNQQUNFUywKKyAgICBBVFRSUyA9IEhUTUwuQVRUUlM7CisKKy8vRGVmYXVsdCBvcHRpb25zCit2YXIgREVGQVVMVF9PUFRJT05TID0geworICAgIGRlY29kZUh0bWxFbnRpdGllczogdHJ1ZSwKKyAgICBsb2NhdGlvbkluZm86IGZhbHNlCit9OworCisvL01pc2MgY29uc3RhbnRzCit2YXIgU0VBUkNIQUJMRV9JTkRFWF9ERUZBVUxUX1BST01QVCA9ICdUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAnLAorICAgIFNFQVJDSEFCTEVfSU5ERVhfSU5QVVRfTkFNRSA9ICdpc2luZGV4JywKKyAgICBISURERU5fSU5QVVRfVFlQRSA9ICdoaWRkZW4nOworCisvL0Fkb3B0aW9uIGFnZW5jeSBsb29wcyBpdGVyYXRpb24gY291bnQKK3ZhciBBQV9PVVRFUl9MT09QX0lURVIgPSA4LAorICAgIEFBX0lOTkVSX0xPT1BfSVRFUiA9IDM7CisKKy8vSW5zZXJ0aW9uIG1vZGVzCit2YXIgSU5JVElBTF9NT0RFID0gJ0lOSVRJQUxfTU9ERScsCisgICAgQkVGT1JFX0hUTUxfTU9ERSA9ICdCRUZPUkVfSFRNTF9NT0RFJywKKyAgICBCRUZPUkVfSEVBRF9NT0RFID0gJ0JFRk9SRV9IRUFEX01PREUnLAorICAgIElOX0hFQURfTU9ERSA9ICdJTl9IRUFEX01PREUnLAorICAgIEFGVEVSX0hFQURfTU9ERSA9ICdBRlRFUl9IRUFEX01PREUnLAorICAgIElOX0JPRFlfTU9ERSA9ICdJTl9CT0RZX01PREUnLAorICAgIFRFWFRfTU9ERSA9ICdURVhUX01PREUnLAorICAgIElOX1RBQkxFX01PREUgPSAnSU5fVEFCTEVfTU9ERScsCisgICAgSU5fVEFCTEVfVEVYVF9NT0RFID0gJ0lOX1RBQkxFX1RFWFRfTU9ERScsCisgICAgSU5fQ0FQVElPTl9NT0RFID0gJ0lOX0NBUFRJT05fTU9ERScsCisgICAgSU5fQ09MVU1OX0dST1VQX01PREUgPSAnSU5fQ09MVU1OX0dST1VQX01PREUnLAorICAgIElOX1RBQkxFX0JPRFlfTU9ERSA9ICdJTl9UQUJMRV9CT0RZX01PREUnLAorICAgIElOX1JPV19NT0RFID0gJ0lOX1JPV19NT0RFJywKKyAgICBJTl9DRUxMX01PREUgPSAnSU5fQ0VMTF9NT0RFJywKKyAgICBJTl9TRUxFQ1RfTU9ERSA9ICdJTl9TRUxFQ1RfTU9ERScsCisgICAgSU5fU0VMRUNUX0lOX1RBQkxFX01PREUgPSAnSU5fU0VMRUNUX0lOX1RBQkxFX01PREUnLAorICAgIElOX1RFTVBMQVRFX01PREUgPSAnSU5fVEVNUExBVEVfTU9ERScsCisgICAgQUZURVJfQk9EWV9NT0RFID0gJ0FGVEVSX0JPRFlfTU9ERScsCisgICAgSU5fRlJBTUVTRVRfTU9ERSA9ICdJTl9GUkFNRVNFVF9NT0RFJywKKyAgICBBRlRFUl9GUkFNRVNFVF9NT0RFID0gJ0FGVEVSX0ZSQU1FU0VUX01PREUnLAorICAgIEFGVEVSX0FGVEVSX0JPRFlfTU9ERSA9ICdBRlRFUl9BRlRFUl9CT0RZX01PREUnLAorICAgIEFGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREUgPSAnQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERSc7CisKKy8vSW5zZXJ0aW9uIG1vZGUgcmVzZXQgbWFwCit2YXIgSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQID0ge307CisKK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLlRSXSA9IElOX1JPV19NT0RFOworSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEJPRFldID0KK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLlRIRUFEXSA9CitJTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5URk9PVF0gPSBJTl9UQUJMRV9CT0RZX01PREU7CitJTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5DQVBUSU9OXSA9IElOX0NBUFRJT05fTU9ERTsKK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLkNPTEdST1VQXSA9IElOX0NPTFVNTl9HUk9VUF9NT0RFOworSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEFCTEVdID0gSU5fVEFCTEVfTU9ERTsKK0lOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLkJPRFldID0gSU5fQk9EWV9NT0RFOworSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuRlJBTUVTRVRdID0gSU5fRlJBTUVTRVRfTU9ERTsKKworLy9UZW1wbGF0ZSBpbnNlcnRpb24gbW9kZSBzd2l0Y2ggbWFwCit2YXIgVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUCA9IHt9OworCitURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ0FQVElPTl0gPQorVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLkNPTEdST1VQXSA9CitURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuVEJPRFldID0KK1RFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5URk9PVF0gPQorVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRIRUFEXSA9IElOX1RBQkxFX01PREU7CitURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ09MXSA9IElOX0NPTFVNTl9HUk9VUF9NT0RFOworVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRSXSA9IElOX1RBQkxFX0JPRFlfTU9ERTsKK1RFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5URF0gPQorVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRIXSA9IElOX1JPV19NT0RFOworCisvL1Rva2VuIGhhbmRsZXJzIG1hcCBmb3IgaW5zZXJ0aW9uIG1vZGVzCit2YXIgXyA9IHt9OworCitfW0lOSVRJQUxfTU9ERV0gPSB7fTsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuSW5Jbml0aWFsTW9kZTsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBkb2N0eXBlSW5Jbml0aWFsTW9kZTsKK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9CitfW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0KK19bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuSW5Jbml0aWFsTW9kZTsKKworX1tCRUZPUkVfSFRNTF9NT0RFXSA9IHt9OworX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkJlZm9yZUh0bWw7CitfW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdCZWZvcmVIdG1sOworX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdCZWZvcmVIdG1sOworX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQmVmb3JlSHRtbDsKKworX1tCRUZPUkVfSEVBRF9NT0RFXSA9IHt9OworX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkJlZm9yZUhlYWQ7CitfW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdCZWZvcmVIZWFkOworX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdCZWZvcmVIZWFkOworX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQmVmb3JlSGVhZDsKKworX1tJTl9IRUFEX01PREVdID0ge307CitfW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkluSGVhZDsKK19bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50OworX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkhlYWQ7CitfW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5IZWFkOworX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gdG9rZW5JbkhlYWQ7CisKK19bQUZURVJfSEVBRF9NT0RFXSA9IHt9OworX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckhlYWQ7CitfW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7CitfW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJIZWFkOworX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVySGVhZDsKK19bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQWZ0ZXJIZWFkOworCitfW0lOX0JPRFlfTU9ERV0gPSB7fTsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7CitfW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5Cb2R5OworX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luQm9keTsKK19bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tURVhUX01PREVdID0ge307CitfW1RFWFRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tURVhUX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPQorX1tURVhUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzOworX1tURVhUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9CitfW1RFWFRfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0KK19bVEVYVF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tURVhUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luVGV4dDsKK19bVEVYVF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluVGV4dDsKKworX1tJTl9UQUJMRV9NT0RFXSA9IHt9OworX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPQorX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gY2hhcmFjdGVySW5UYWJsZTsKK19bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblRhYmxlOworX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRhYmxlOworX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9UQUJMRV9URVhUX01PREVdID0ge307CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJblRhYmxlVGV4dDsKK19bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dDsKK19bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPQorX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPQorX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9CitfW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSB0b2tlbkluVGFibGVUZXh0OworCitfW0lOX0NBUFRJT05fTU9ERV0gPSB7fTsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7CitfW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5DYXB0aW9uOworX1tJTl9DQVBUSU9OX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luQ2FwdGlvbjsKK19bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV0gPSB7fTsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkluQ29sdW1uR3JvdXA7CitfW0lOX0NPTFVNTl9HUk9VUF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX0NPTFVNTl9HUk9VUF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkNvbHVtbkdyb3VwOworX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Db2x1bW5Hcm91cDsKK19bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5Cb2R5OworCitfW0lOX1RBQkxFX0JPRFlfTU9ERV0gPSB7fTsKK19bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluVGFibGU7CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5UYWJsZUJvZHk7CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5UYWJsZUJvZHk7CitfW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7CisKK19bSU5fUk9XX01PREVdID0ge307CitfW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9CitfW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0KK19bSU5fUk9XX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJblRhYmxlOworX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fUk9XX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luUm93OworX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Sb3c7CitfW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9DRUxMX01PREVdID0ge307CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJbkJvZHk7CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5OworX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luQ2VsbDsKK19bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkNlbGw7CitfW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7CisKK19bSU5fU0VMRUNUX01PREVdID0ge307CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblNlbGVjdDsKK19bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luU2VsZWN0OworX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7CisKK19bSU5fU0VMRUNUX0lOX1RBQkxFX01PREVdID0ge307CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVyczsKK19bSU5fU0VMRUNUX0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fU0VMRUNUX0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblNlbGVjdEluVGFibGU7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblNlbGVjdEluVGFibGU7CitfW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTsKKworX1tJTl9URU1QTEFURV9NT0RFXSA9IHt9OworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTsKK19bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTsKK19bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDsKK19bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX1RFTVBMQVRFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblRlbXBsYXRlOworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRlbXBsYXRlOworX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluVGVtcGxhdGU7CisKK19bQUZURVJfQk9EWV9NT0RFXSA9IHt9OworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckJvZHk7CitfW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7CitfW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50OworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdBZnRlckJvZHk7CitfW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnQWZ0ZXJCb2R5OworX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7CisKK19bSU5fRlJBTUVTRVRfTU9ERV0gPSB7fTsKK19bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzOworX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50OworX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luRnJhbWVzZXQ7CitfW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luRnJhbWVzZXQ7CitfW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7CisKK19bQUZURVJfRlJBTUVTRVRfTU9ERV0gPSB7fTsKK19bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPQorX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47CitfW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzOworX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50OworX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0FmdGVyRnJhbWVzZXQ7CitfW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVyRnJhbWVzZXQ7CitfW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7CisKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXSA9IHt9OworX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckFmdGVyQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckFmdGVyQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50VG9Eb2N1bWVudDsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHk7CitfW0FGVEVSX0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gdG9rZW5BZnRlckFmdGVyQm9keTsKK19bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHN0b3BQYXJzaW5nOworCitfW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdID0ge307CitfW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0KK19bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTsKK19bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQ7CitfW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuOworX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0OworX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBpZ25vcmVUb2tlbjsKK19bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBzdG9wUGFyc2luZzsKKworLy9TZWFyY2hhYmxlIGluZGV4IGJ1aWxkaW5nIHV0aWxzICg8aXNpbmRleD4gdGFnKQorZnVuY3Rpb24gZ2V0U2VhcmNoYWJsZUluZGV4Rm9ybUF0dHJzKGlzaW5kZXhTdGFydFRhZ1Rva2VuKSB7CisgICAgdmFyIGluZGV4QWN0aW9uID0gVG9rZW5pemVyLmdldFRva2VuQXR0cihpc2luZGV4U3RhcnRUYWdUb2tlbiwgQVRUUlMuQUNUSU9OKSwKKyAgICAgICAgYXR0cnMgPSBbXTsKKworICAgIGlmIChpbmRleEFjdGlvbiAhPT0gbnVsbCkgeworICAgICAgICBhdHRycy5wdXNoKHsKKyAgICAgICAgICAgIG5hbWU6IEFUVFJTLkFDVElPTiwKKyAgICAgICAgICAgIHZhbHVlOiBpbmRleEFjdGlvbgorICAgICAgICB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gYXR0cnM7Cit9CisKK2Z1bmN0aW9uIGdldFNlYXJjaGFibGVJbmRleExhYmVsVGV4dChpc2luZGV4U3RhcnRUYWdUb2tlbikgeworICAgIHZhciBpbmRleFByb21wdCA9IFRva2VuaXplci5nZXRUb2tlbkF0dHIoaXNpbmRleFN0YXJ0VGFnVG9rZW4sIEFUVFJTLlBST01QVCk7CisKKyAgICByZXR1cm4gaW5kZXhQcm9tcHQgPT09IG51bGwgPyBTRUFSQ0hBQkxFX0lOREVYX0RFRkFVTFRfUFJPTVBUIDogaW5kZXhQcm9tcHQ7Cit9CisKK2Z1bmN0aW9uIGdldFNlYXJjaGFibGVJbmRleElucHV0QXR0cnMoaXNpbmRleFN0YXJ0VGFnVG9rZW4pIHsKKyAgICB2YXIgaXNpbmRleEF0dHJzID0gaXNpbmRleFN0YXJ0VGFnVG9rZW4uYXR0cnMsCisgICAgICAgIGlucHV0QXR0cnMgPSBbXTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXNpbmRleEF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBuYW1lID0gaXNpbmRleEF0dHJzW2ldLm5hbWU7CisKKyAgICAgICAgaWYgKG5hbWUgIT09IEFUVFJTLk5BTUUgJiYgbmFtZSAhPT0gQVRUUlMuQUNUSU9OICYmIG5hbWUgIT09IEFUVFJTLlBST01QVCkKKyAgICAgICAgICAgIGlucHV0QXR0cnMucHVzaChpc2luZGV4QXR0cnNbaV0pOworICAgIH0KKworICAgIGlucHV0QXR0cnMucHVzaCh7CisgICAgICAgIG5hbWU6IEFUVFJTLk5BTUUsCisgICAgICAgIHZhbHVlOiBTRUFSQ0hBQkxFX0lOREVYX0lOUFVUX05BTUUKKyAgICB9KTsKKworICAgIHJldHVybiBpbnB1dEF0dHJzOworfQorCisvL1BhcnNlcgordmFyIFBhcnNlciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRyZWVBZGFwdGVyLCBvcHRpb25zKSB7CisgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyIHx8IERlZmF1bHRUcmVlQWRhcHRlcjsKKyAgICB0aGlzLm9wdGlvbnMgPSBVdGlscy5tZXJnZU9wdGlvbnMoREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTsKKyAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBudWxsOworCisgICAgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbkluZm8pCisgICAgICAgIExvY2F0aW9uSW5mb01peGluLmFzc2lnbih0aGlzKTsKK307CisKKy8vQVBJCitQYXJzZXIucHJvdG90eXBlLnBhcnNlID0gZnVuY3Rpb24gKGh0bWwpIHsKKyAgICB2YXIgZG9jdW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCk7CisKKyAgICB0aGlzLl9yZXNldChodG1sLCBkb2N1bWVudCwgbnVsbCk7CisgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTsKKworICAgIHJldHVybiBkb2N1bWVudDsKK307CisKK1BhcnNlci5wcm90b3R5cGUucGFyc2VGcmFnbWVudCA9IGZ1bmN0aW9uIChodG1sLCBmcmFnbWVudENvbnRleHQpIHsKKyAgICAvL05PVEU6IHVzZSA8dGVtcGxhdGU+IGVsZW1lbnQgYXMgYSBmcmFnbWVudCBjb250ZXh0IGlmIGNvbnRleHQgZWxlbWVudCB3YXMgbm90IHByb3ZpZGVkLAorICAgIC8vc28gd2Ugd2lsbCBwYXJzZSBpbiAiZm9yZ2l2aW5nIiBtYW5uZXIKKyAgICBpZiAoIWZyYWdtZW50Q29udGV4dCkKKyAgICAgICAgZnJhZ21lbnRDb250ZXh0ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVEVNUExBVEUsIE5TLkhUTUwsIFtdKTsKKworICAgIC8vTk9URTogY3JlYXRlIGZha2UgZWxlbWVudCB3aGljaCB3aWxsIGJlIHVzZWQgYXMgJ2RvY3VtZW50JyBmb3IgZnJhZ21lbnQgcGFyc2luZy4KKyAgICAvL1RoaXMgaXMgaW1wb3J0YW50IGZvciBqc2RvbSB0aGVyZSAnZG9jdW1lbnQnIGNhbid0IGJlIHJlY3JlYXRlZCwgdGhlcmVmb3JlCisgICAgLy9mcmFnbWVudCBwYXJzaW5nIGNhdXNlcyBtZXNzaW5nIG9mIHRoZSBtYWluIGBkb2N1bWVudGAuCisgICAgdmFyIGRvY3VtZW50TW9jayA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnZG9jdW1lbnRtb2NrJywgTlMuSFRNTCwgW10pOworCisgICAgdGhpcy5fcmVzZXQoaHRtbCwgZG9jdW1lbnRNb2NrLCBmcmFnbWVudENvbnRleHQpOworCisgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShmcmFnbWVudENvbnRleHQpID09PSAkLlRFTVBMQVRFKQorICAgICAgICB0aGlzLl9wdXNoVG1wbEluc2VydGlvbk1vZGUoSU5fVEVNUExBVEVfTU9ERSk7CisKKyAgICB0aGlzLl9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCk7CisgICAgdGhpcy5faW5zZXJ0RmFrZVJvb3RFbGVtZW50KCk7CisgICAgdGhpcy5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7CisgICAgdGhpcy5fZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpOworICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7CisKKyAgICB2YXIgcm9vdEVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9jdW1lbnRNb2NrKSwKKyAgICAgICAgZnJhZ21lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKworICAgIHRoaXMuX2Fkb3B0Tm9kZXMocm9vdEVsZW1lbnQsIGZyYWdtZW50KTsKKworICAgIHJldHVybiBmcmFnbWVudDsKK307CisKKy8vUmVzZXQgc3RhdGUKK1BhcnNlci5wcm90b3R5cGUuX3Jlc2V0ID0gZnVuY3Rpb24gKGh0bWwsIGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpIHsKKyAgICB0aGlzLnRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIoaHRtbCwgdGhpcy5vcHRpb25zKTsKKworICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlOworCisgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5JVElBTF9NT0RFOworICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gJyc7CisKKyAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7CisgICAgdGhpcy5mcmFnbWVudENvbnRleHQgPSBmcmFnbWVudENvbnRleHQ7CisKKyAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDsKKyAgICB0aGlzLmZvcm1FbGVtZW50ID0gbnVsbDsKKworICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlcik7CisgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRoaXMudHJlZUFkYXB0ZXIpOworCisgICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrID0gW107CisgICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrVG9wID0gLTE7CisgICAgdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGUgPSBudWxsOworCisgICAgdGhpcy5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zID0gW107CisgICAgdGhpcy5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7CisKKyAgICB0aGlzLmZyYW1lc2V0T2sgPSB0cnVlOworICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7CisgICAgdGhpcy5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gZmFsc2U7Cit9OworCisvL1BhcnNpbmcgbG9vcAorUGFyc2VyLnByb3RvdHlwZS5faXRlcmF0ZVBhcnNpbmdMb29wID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuX3NldHVwVG9rZW5pemVyQ0RBVEFNb2RlKCk7CisKKyAgICB2YXIgdG9rZW4gPSB0aGlzLnRva2VuaXplci5nZXROZXh0VG9rZW4oKTsKKworICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSkgeworICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlOworCisgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4gJiYgdG9rZW4uY2hhcnNbMF0gPT09ICdcbicpIHsKKyAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5sZW5ndGggPT09IDEpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh0aGlzLl9zaG91bGRQcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkKKyAgICAgICAgdGhpcy5fcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbik7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9ydW5QYXJzaW5nTG9vcCA9IGZ1bmN0aW9uICgpIHsKKyAgICB3aGlsZSAoIXRoaXMuc3RvcHBlZCkKKyAgICAgICAgdGhpcy5faXRlcmF0ZVBhcnNpbmdMb29wKCk7Cit9OworCisvL1RleHQgcGFyc2luZworUGFyc2VyLnByb3RvdHlwZS5fc2V0dXBUb2tlbml6ZXJDREFUQU1vZGUgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGN1cnJlbnQgPSB0aGlzLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCk7CisKKyAgICB0aGlzLnRva2VuaXplci5hbGxvd0NEQVRBID0gY3VycmVudCAmJiBjdXJyZW50ICE9PSB0aGlzLmRvY3VtZW50ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpICE9PSBOUy5IVE1MICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICghdGhpcy5faXNIdG1sSW50ZWdyYXRpb25Qb2ludChjdXJyZW50KSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCF0aGlzLl9pc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnQpKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3N3aXRjaFRvVGV4dFBhcnNpbmcgPSBmdW5jdGlvbiAoY3VycmVudFRva2VuLCBuZXh0VG9rZW5pemVyU3RhdGUpIHsKKyAgICB0aGlzLl9pbnNlcnRFbGVtZW50KGN1cnJlbnRUb2tlbiwgTlMuSFRNTCk7CisgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7CisgICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSB0aGlzLmluc2VydGlvbk1vZGU7CisgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gVEVYVF9NT0RFOworfTsKKworLy9GcmFnbWVudCBwYXJzaW5nCitQYXJzZXIucHJvdG90eXBlLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50ID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCA/CisgICAgICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0IDoKKyAgICAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIG5vZGUgPSB0aGlzLmZyYWdtZW50Q29udGV4dDsKKworICAgIGRvIHsKKyAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKSA9PT0gJC5GT1JNKSB7CisgICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbm9kZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgbm9kZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKTsKKyAgICB9IHdoaWxlIChub2RlKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuZnJhZ21lbnRDb250ZXh0KTsKKworICAgIGlmICh0biA9PT0gJC5USVRMRSB8fCB0biA9PT0gJC5URVhUQVJFQSkKKyAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQ0RBVEE7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5TVFlMRSB8fCB0biA9PT0gJC5YTVAgfHwgdG4gPT09ICQuSUZSQU1FIHx8CisgICAgICAgICAgICAgdG4gPT09ICQuTk9FTUJFRCB8fCB0biA9PT0gJC5OT0ZSQU1FUyB8fCB0biA9PT0gJC5OT1NDUklQVCkgeworICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlJBV1RFWFQ7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKQorICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlNDUklQVF9EQVRBOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuUExBSU5URVhUKQorICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlBMQUlOVEVYVDsKK307CisKKy8vVHJlZSBtdXRhdGlvbgorUGFyc2VyLnByb3RvdHlwZS5fc2V0RG9jdW1lbnRUeXBlID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgdGhpcy50cmVlQWRhcHRlci5zZXREb2N1bWVudFR5cGUodGhpcy5kb2N1bWVudCwgdG9rZW4ubmFtZSwgdG9rZW4ucHVibGljSWQsIHRva2VuLnN5c3RlbUlkKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2F0dGFjaEVsZW1lbnRUb1RyZWUgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKQorICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpOworCisgICAgZWxzZSB7CisgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDsKKworICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudCwgZWxlbWVudCk7CisgICAgfQorfTsKKworUGFyc2VyLnByb3RvdHlwZS5fYXBwZW5kRWxlbWVudCA9IGZ1bmN0aW9uICh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7CisgICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7CisKKyAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQpOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5faW5zZXJ0RWxlbWVudCA9IGZ1bmN0aW9uICh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7CisgICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7CisKKyAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQpOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9pbnNlcnRUZW1wbGF0ZSA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIHZhciB0bXBsID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIE5TLkhUTUwsIHRva2VuLmF0dHJzKSwKKyAgICAgICAgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworCisgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0bXBsLCBjb250ZW50KTsKKyAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKHRtcGwpOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2godG1wbCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSk7CisKKyAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsIGVsZW1lbnQpOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9hcHBlbmRDb21tZW50Tm9kZSA9IGZ1bmN0aW9uICh0b2tlbiwgcGFyZW50KSB7CisgICAgdmFyIGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTsKKworICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBjb21tZW50Tm9kZSk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9pbnNlcnRDaGFyYWN0ZXJzID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpCisgICAgICAgIHRoaXMuX2Zvc3RlclBhcmVudFRleHQodG9rZW4uY2hhcnMpOworCisgICAgZWxzZSB7CisgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwgdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDsKKworICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7CisgICAgfQorfTsKKworUGFyc2VyLnByb3RvdHlwZS5fYWRvcHROb2RlcyA9IGZ1bmN0aW9uIChkb25vciwgcmVjaXBpZW50KSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgdmFyIGNoaWxkID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKGRvbm9yKTsKKworICAgICAgICBpZiAoIWNoaWxkKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgdGhpcy50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGNoaWxkKTsKKyAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChyZWNpcGllbnQsIGNoaWxkKTsKKyAgICB9Cit9OworCisvL1Rva2VuIHByb2Nlc3NpbmcKK1BhcnNlci5wcm90b3R5cGUuX3Nob3VsZFByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQgPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICB2YXIgY3VycmVudCA9IHRoaXMuX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKTsKKworICAgIGlmICghY3VycmVudCB8fCBjdXJyZW50ID09PSB0aGlzLmRvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTsKKworICAgIGlmIChucyA9PT0gTlMuSFRNTCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShjdXJyZW50KSA9PT0gJC5BTk5PVEFUSU9OX1hNTCAmJiBucyA9PT0gTlMuTUFUSE1MICYmCisgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gJiYgdG9rZW4udGFnTmFtZSA9PT0gJC5TVkcpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZhciBpc0NoYXJhY3RlclRva2VuID0gdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4sCisgICAgICAgIGlzTWF0aE1MVGV4dFN0YXJ0VGFnID0gdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgIT09ICQuTUdMWVBIICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSAhPT0gJC5NQUxJR05NQVJLOworCisgICAgaWYgKChpc01hdGhNTFRleHRTdGFydFRhZyB8fCBpc0NoYXJhY3RlclRva2VuKSAmJiB0aGlzLl9pc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gfHwgaXNDaGFyYWN0ZXJUb2tlbikgJiYgdGhpcy5faXNIdG1sSW50ZWdyYXRpb25Qb2ludChjdXJyZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRva2VuLnR5cGUgIT09IFRva2VuaXplci5FT0ZfVE9LRU47Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzVG9rZW4gPSBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICBfW3RoaXMuaW5zZXJ0aW9uTW9kZV1bdG9rZW4udHlwZV0odGhpcywgdG9rZW4pOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fcHJvY2Vzc1Rva2VuSW5Cb2R5TW9kZSA9IGZ1bmN0aW9uICh0b2tlbikgeworICAgIF9bSU5fQk9EWV9NT0RFXVt0b2tlbi50eXBlXSh0aGlzLCB0b2tlbik7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50ID0gZnVuY3Rpb24gKHRva2VuKSB7CisgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5DSEFSQUNURVJfVE9LRU4pCisgICAgICAgIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOKQorICAgICAgICBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4pCisgICAgICAgIGluc2VydENoYXJhY3RlcnModGhpcywgdG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkNPTU1FTlRfVE9LRU4pCisgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pOworCisgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTikKKyAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5FTkRfVEFHX1RPS0VOKQorICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3Byb2Nlc3NGYWtlU3RhcnRUYWdXaXRoQXR0cnMgPSBmdW5jdGlvbiAodGFnTmFtZSwgYXR0cnMpIHsKKyAgICB2YXIgZmFrZVRva2VuID0gdGhpcy50b2tlbml6ZXIuYnVpbGRTdGFydFRhZ1Rva2VuKHRhZ05hbWUpOworCisgICAgZmFrZVRva2VuLmF0dHJzID0gYXR0cnM7CisgICAgdGhpcy5fcHJvY2Vzc1Rva2VuKGZha2VUb2tlbik7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzRmFrZVN0YXJ0VGFnID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICB2YXIgZmFrZVRva2VuID0gdGhpcy50b2tlbml6ZXIuYnVpbGRTdGFydFRhZ1Rva2VuKHRhZ05hbWUpOworCisgICAgdGhpcy5fcHJvY2Vzc1Rva2VuKGZha2VUb2tlbik7CisgICAgcmV0dXJuIGZha2VUb2tlbjsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3Byb2Nlc3NGYWtlRW5kVGFnID0gZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICB2YXIgZmFrZVRva2VuID0gdGhpcy50b2tlbml6ZXIuYnVpbGRFbmRUYWdUb2tlbih0YWdOYW1lKTsKKworICAgIHRoaXMuX3Byb2Nlc3NUb2tlbihmYWtlVG9rZW4pOworICAgIHJldHVybiBmYWtlVG9rZW47Cit9OworCisvL0ludGVncmF0aW9uIHBvaW50cworUGFyc2VyLnByb3RvdHlwZS5faXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLAorICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpOworCisgICAgcmV0dXJuIEZvcmVpZ25Db250ZW50LmlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX2lzSHRtbEludGVncmF0aW9uUG9pbnQgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSwKKyAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSwKKyAgICAgICAgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpOworCisgICAgcmV0dXJuIEZvcmVpZ25Db250ZW50LmlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycyk7Cit9OworCisvL0FjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHJlY29uc3RydWN0aW9uCitQYXJzZXIucHJvdG90eXBlLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyA9IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgbGlzdExlbmd0aCA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmxlbmd0aDsKKworICAgIGlmIChsaXN0TGVuZ3RoKSB7CisgICAgICAgIHZhciB1bm9wZW5JZHggPSBsaXN0TGVuZ3RoLAorICAgICAgICAgICAgZW50cnkgPSBudWxsOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHVub3BlbklkeC0tOworICAgICAgICAgICAgZW50cnkgPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzW3Vub3BlbklkeF07CisKKyAgICAgICAgICAgIGlmIChlbnRyeS50eXBlID09PSBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgdW5vcGVuSWR4Kys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKHVub3BlbklkeCA+IDApOworCisgICAgICAgIGZvciAodmFyIGkgPSB1bm9wZW5JZHg7IGkgPCBsaXN0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGVudHJ5ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllc1tpXTsKKyAgICAgICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoZW50cnkudG9rZW4sIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVudHJ5LmVsZW1lbnQpKTsKKyAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50OworICAgICAgICB9CisgICAgfQorfTsKKworLy9DbG9zZSBlbGVtZW50cworUGFyc2VyLnByb3RvdHlwZS5fY2xvc2VUYWJsZUNlbGwgPSBmdW5jdGlvbiAoKSB7CisgICAgaWYgKHRoaXMub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlREKSkKKyAgICAgICAgdGhpcy5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5URCk7CisKKyAgICBlbHNlCisgICAgICAgIHRoaXMuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuVEgpOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fY2xvc2VQRWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApOworICAgIHRoaXMub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlApOworfTsKKworLy9JbnNlcnRpb24gbW9kZXMKK1BhcnNlci5wcm90b3R5cGUuX3Jlc2V0SW5zZXJ0aW9uTW9kZSA9IGZ1bmN0aW9uICgpIHsKKyAgICBmb3IgKHZhciBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AsIGxhc3QgPSBmYWxzZTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTsKKworICAgICAgICBpZiAoaSA9PT0gMCkgeworICAgICAgICAgICAgbGFzdCA9IHRydWU7CisKKyAgICAgICAgICAgIGlmICh0aGlzLmZyYWdtZW50Q29udGV4dCkKKyAgICAgICAgICAgICAgICBlbGVtZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7CisgICAgICAgIH0KKworICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCksCisgICAgICAgICAgICBuZXdJbnNlcnRpb25Nb2RlID0gSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQW3RuXTsKKworICAgICAgICBpZiAobmV3SW5zZXJ0aW9uTW9kZSkgeworICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gbmV3SW5zZXJ0aW9uTW9kZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSBpZiAoIWxhc3QgJiYgKHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIKSkgeworICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fQ0VMTF9NT0RFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmICghbGFzdCAmJiB0biA9PT0gJC5IRUFEKSB7CisgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJTl9IRUFEX01PREU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCkgeworICAgICAgICAgICAgdGhpcy5fcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KGkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkgeworICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkhUTUwpIHsKKyAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMuaGVhZEVsZW1lbnQgPyBBRlRFUl9IRUFEX01PREUgOiBCRUZPUkVfSEVBRF9NT0RFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIGlmIChsYXN0KSB7CisgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK307CisKK1BhcnNlci5wcm90b3R5cGUuX3Jlc2V0SW5zZXJ0aW9uTW9kZUZvclNlbGVjdCA9IGZ1bmN0aW9uIChzZWxlY3RJZHgpIHsKKyAgICBpZiAoc2VsZWN0SWR4ID4gMCkgeworICAgICAgICBmb3IgKHZhciBpID0gc2VsZWN0SWR4IC0gMTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgdmFyIGFuY2VzdG9yID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaV0sCisgICAgICAgICAgICAgICAgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoYW5jZXN0b3IpOworCisgICAgICAgICAgICBpZiAodG4gPT09ICQuVEVNUExBVEUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7CisgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fU0VMRUNUX0lOX1RBQkxFX01PREU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fU0VMRUNUX01PREU7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9wdXNoVG1wbEluc2VydGlvbk1vZGUgPSBmdW5jdGlvbiAobW9kZSkgeworICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjay5wdXNoKG1vZGUpOworICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1RvcCsrOworICAgIHRoaXMuY3VycmVudFRtcGxJbnNlcnRpb25Nb2RlID0gbW9kZTsKK307CisKK1BhcnNlci5wcm90b3R5cGUuX3BvcFRtcGxJbnNlcnRpb25Nb2RlID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjay5wb3AoKTsKKyAgICB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3AtLTsKKyAgICB0aGlzLmN1cnJlbnRUbXBsSW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1t0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3BdOworfTsKKworLy9Gb3N0ZXIgcGFyZW50aW5nCitQYXJzZXIucHJvdG90eXBlLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcgPSBmdW5jdGlvbiAoZWxlbWVudCkgeworICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KTsKKworICAgIHJldHVybiB0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24gPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCAmJiB0aGlzLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCk7Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGxvY2F0aW9uID0geworICAgICAgICBwYXJlbnQ6IG51bGwsCisgICAgICAgIGJlZm9yZUVsZW1lbnQ6IG51bGwKKyAgICB9OworCisgICAgZm9yICh2YXIgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgb3BlbkVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwKKyAgICAgICAgICAgIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG9wZW5FbGVtZW50KSwKKyAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpOworCisgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTCkgeworICAgICAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKG9wZW5FbGVtZW50KVswXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHsKKyAgICAgICAgICAgIGxvY2F0aW9uLnBhcmVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShvcGVuRWxlbWVudCk7CisKKyAgICAgICAgICAgIGlmIChsb2NhdGlvbi5wYXJlbnQpCisgICAgICAgICAgICAgICAgbG9jYXRpb24uYmVmb3JlRWxlbWVudCA9IG9wZW5FbGVtZW50OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvY2F0aW9uLnBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2kgLSAxXTsKKworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWxvY2F0aW9uLnBhcmVudCkKKyAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbMF07CisKKyAgICByZXR1cm4gbG9jYXRpb247Cit9OworCitQYXJzZXIucHJvdG90eXBlLl9mb3N0ZXJQYXJlbnRFbGVtZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKKyAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKTsKKworICAgIGlmIChsb2NhdGlvbi5iZWZvcmVFbGVtZW50KQorICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShsb2NhdGlvbi5wYXJlbnQsIGVsZW1lbnQsIGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpOworICAgIGVsc2UKKyAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChsb2NhdGlvbi5wYXJlbnQsIGVsZW1lbnQpOworfTsKKworUGFyc2VyLnByb3RvdHlwZS5fZm9zdGVyUGFyZW50VGV4dCA9IGZ1bmN0aW9uIChjaGFycykgeworICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpOworCisgICAgaWYgKGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpCisgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dEJlZm9yZShsb2NhdGlvbi5wYXJlbnQsIGNoYXJzLCBsb2NhdGlvbi5iZWZvcmVFbGVtZW50KTsKKyAgICBlbHNlCisgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChsb2NhdGlvbi5wYXJlbnQsIGNoYXJzKTsKK307CisKKy8vU3BlY2lhbCBlbGVtZW50cworUGFyc2VyLnByb3RvdHlwZS5faXNTcGVjaWFsRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLAorICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpOworCisgICAgcmV0dXJuIEhUTUwuU1BFQ0lBTF9FTEVNRU5UU1tuc11bdG5dOworfTsKKworLy9BZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtCisvLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjYWRvcHRpb25BZ2VuY3kpCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvL1N0ZXBzIDUtOCBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pIHsKKyAgICB2YXIgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0b2tlbi50YWdOYW1lKTsKKworICAgIGlmIChmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7CisgICAgICAgIGlmICghcC5vcGVuRWxlbWVudHMuY29udGFpbnMoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KSkgeworICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7CisgICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRva2VuLnRhZ05hbWUpKQorICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIHJldHVybiBmb3JtYXR0aW5nRWxlbWVudEVudHJ5OworfQorCisvL1N0ZXBzIDkgYW5kIDEwIG9mIHRoZSBhbGdvcml0aG0KK2Z1bmN0aW9uIGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7CisgICAgdmFyIGZ1cnRoZXN0QmxvY2sgPSBudWxsOworCisgICAgZm9yICh2YXIgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldOworCisgICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAocC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgICAgIGZ1cnRoZXN0QmxvY2sgPSBlbGVtZW50OworICAgIH0KKworICAgIGlmICghZnVydGhlc3RCbG9jaykgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbEVsZW1lbnRQb3BwZWQoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTsKKyAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIGZ1cnRoZXN0QmxvY2s7Cit9CisKKy8vU3RlcCAxMyBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudCkgeworICAgIHZhciBlbGVtZW50ID0gbnVsbCwKKyAgICAgICAgbGFzdEVsZW1lbnQgPSBmdXJ0aGVzdEJsb2NrLAorICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZ1cnRoZXN0QmxvY2spOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBBQV9JTk5FUl9MT09QX0lURVI7IGkrKykgeworICAgICAgICBlbGVtZW50ID0gbmV4dEVsZW1lbnQ7CisKKyAgICAgICAgLy9OT1RFOiBzdG9yZSBuZXh0IGVsZW1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uIChpdCBtYXkgYmUgZGVsZXRlZCBmcm9tIHRoZSBzdGFjayBieSBzdGVwIDkuNSkKKyAgICAgICAgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihlbGVtZW50KTsKKworICAgICAgICB2YXIgZWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5KGVsZW1lbnQpOworCisgICAgICAgIGlmICghZWxlbWVudEVudHJ5KSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGVsZW1lbnQgPSBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpOworCisgICAgICAgIGlmIChsYXN0RWxlbWVudCA9PT0gZnVydGhlc3RCbG9jaykKKyAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZWxlbWVudEVudHJ5OworCisgICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7CisgICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCwgbGFzdEVsZW1lbnQpOworICAgICAgICBsYXN0RWxlbWVudCA9IGVsZW1lbnQ7CisgICAgfQorCisgICAgcmV0dXJuIGxhc3RFbGVtZW50OworfQorCisvL1N0ZXAgMTMuNyBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpIHsKKyAgICB2YXIgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50RW50cnkuZWxlbWVudCksCisgICAgICAgIG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoZWxlbWVudEVudHJ5LnRva2VuLnRhZ05hbWUsIG5zLCBlbGVtZW50RW50cnkudG9rZW4uYXR0cnMpOworCisgICAgcC5vcGVuRWxlbWVudHMucmVwbGFjZShlbGVtZW50RW50cnkuZWxlbWVudCwgbmV3RWxlbWVudCk7CisgICAgZWxlbWVudEVudHJ5LmVsZW1lbnQgPSBuZXdFbGVtZW50OworCisgICAgcmV0dXJuIG5ld0VsZW1lbnQ7Cit9CisKKy8vU3RlcCAxNCBvZiB0aGUgYWxnb3JpdGhtCitmdW5jdGlvbiBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpIHsKKyAgICBpZiAocC5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKGNvbW1vbkFuY2VzdG9yKSkKKyAgICAgICAgcC5fZm9zdGVyUGFyZW50RWxlbWVudChsYXN0RWxlbWVudCk7CisKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIHRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGNvbW1vbkFuY2VzdG9yKSwKKyAgICAgICAgICAgIG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY29tbW9uQW5jZXN0b3IpOworCisgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTCkKKyAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKGNvbW1vbkFuY2VzdG9yKVswXTsKKworICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7CisgICAgfQorfQorCisvL1N0ZXBzIDE1LTE5IG9mIHRoZSBhbGdvcml0aG0KK2Z1bmN0aW9uIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHsKKyAgICB2YXIgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpLAorICAgICAgICB0b2tlbiA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnkudG9rZW4sCisgICAgICAgIG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbnMsIHRva2VuLmF0dHJzKTsKKworICAgIHAuX2Fkb3B0Tm9kZXMoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7CisgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTsKKworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrKG5ld0VsZW1lbnQsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkudG9rZW4pOworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpOworCisgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7CisgICAgcC5vcGVuRWxlbWVudHMuaW5zZXJ0QWZ0ZXIoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7Cit9CisKKy8vQWxnb3JpdGhtIGVudHJ5IHBvaW50CitmdW5jdGlvbiBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IEFBX09VVEVSX0xPT1BfSVRFUjsgaSsrKSB7CisgICAgICAgIHZhciBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTsKKworICAgICAgICBpZiAoIWZvcm1hdHRpbmdFbGVtZW50RW50cnkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICB2YXIgZnVydGhlc3RCbG9jayA9IGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTsKKworICAgICAgICBpZiAoIWZ1cnRoZXN0QmxvY2spCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5ib29rbWFyayA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7CisKKyAgICAgICAgdmFyIGxhc3RFbGVtZW50ID0gYWFJbm5lckxvb3AocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KSwKKyAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTsKKworICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpOworICAgICAgICBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpOworICAgICAgICBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTsKKyAgICB9Cit9CisKKworLy9HZW5lcmljIHRva2VuIGhhbmRsZXJzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gaWdub3JlVG9rZW4ocCwgdG9rZW4pIHsKKyAgICAvL05PVEU6IGRvIG5vdGhpbmcgPSkKK30KKworZnVuY3Rpb24gYXBwZW5kQ29tbWVudChwLCB0b2tlbikgeworICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwgcC5vcGVuRWxlbWVudHMuY3VycmVudCkKK30KKworZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHAsIHRva2VuKSB7CisgICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdKTsKK30KKworZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQocCwgdG9rZW4pIHsKKyAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5kb2N1bWVudCk7Cit9CisKK2Z1bmN0aW9uIGluc2VydENoYXJhY3RlcnMocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTsKK30KKworZnVuY3Rpb24gc3RvcFBhcnNpbmcocCwgdG9rZW4pIHsKKyAgICBwLnN0b3BwZWQgPSB0cnVlOworfQorCisvLzEyLjIuNS40LjEgVGhlICJpbml0aWFsIiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIGRvY3R5cGVJbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7CisgICAgcC5fc2V0RG9jdW1lbnRUeXBlKHRva2VuKTsKKworICAgIGlmICh0b2tlbi5mb3JjZVF1aXJrcyB8fCBEb2N0eXBlLmlzUXVpcmtzKHRva2VuLm5hbWUsIHRva2VuLnB1YmxpY0lkLCB0b2tlbi5zeXN0ZW1JZCkpCisgICAgICAgIHAudHJlZUFkYXB0ZXIuc2V0UXVpcmtzTW9kZShwLmRvY3VtZW50KTsKKworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEJFRk9SRV9IVE1MX01PREU7Cit9CisKK2Z1bmN0aW9uIHRva2VuSW5Jbml0aWFsTW9kZShwLCB0b2tlbikgeworICAgIHAudHJlZUFkYXB0ZXIuc2V0UXVpcmtzTW9kZShwLmRvY3VtZW50KTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSFRNTF9NT0RFOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC4yIFRoZSAiYmVmb3JlIGh0bWwiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7CisgICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTCkgeworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQkVGT1JFX0hFQURfTU9ERTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkJSKQorICAgICAgICB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSEVBRF9NT0RFOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC4zIFRoZSAiYmVmb3JlIGhlYWQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIZWFkKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5IRUFEKSB7CisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgICAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fSEVBRF9NT0RFOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnQmVmb3JlSGVhZChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuQlIpCisgICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbikgeworICAgIHAuX3Byb2Nlc3NGYWtlU3RhcnRUYWcoJC5IRUFEKTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisKKy8vMTIuMi41LjQuNCBUaGUgImluIGhlYWQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkJBU0UgfHwgdG4gPT09ICQuQkFTRUZPTlQgfHwgdG4gPT09ICQuQkdTT1VORCB8fAorICAgICAgICAgICAgIHRuID09PSAkLkNPTU1BTkQgfHwgdG4gPT09ICQuTElOSyB8fCB0biA9PT0gJC5NRVRBKSB7CisgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRJVExFKQorICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXIuTU9ERS5SQ0RBVEEpOworCisgICAgLy9OT1RFOiBoZXJlIHdlIGFzc3VtZSB0aGF0IHdlIGFsd2F5cyBhY3QgYXMgYW4gaW50ZXJhY3RpdmUgdXNlciBhZ2VudCB3aXRoIGVuYWJsZWQgc2NyaXB0aW5nLCBzbyB3ZSBwYXJzZQorICAgIC8vPG5vc2NyaXB0PiBhcyBhIHJhd3RleHQuCisgICAgZWxzZSBpZiAodG4gPT09ICQuTk9TQ1JJUFQgfHwgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuU1RZTEUpCisgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlJBV1RFWFQpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKQorICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXIuTU9ERS5TQ1JJUFRfREFUQSk7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkgeworICAgICAgICBwLl9pbnNlcnRUZW1wbGF0ZSh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpOworICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEVNUExBVEVfTU9ERTsKKyAgICAgICAgcC5fcHVzaFRtcGxJbnNlcnRpb25Nb2RlKElOX1RFTVBMQVRFX01PREUpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkhFQUQpCisgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IRUFEKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBBRlRFUl9IRUFEX01PREU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5CUiB8fCB0biA9PT0gJC5IVE1MKQorICAgICAgICB0b2tlbkluSGVhZChwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUZW1wbGF0ZVBvcHBlZCgpOworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpOworICAgICAgICBwLl9wb3BUbXBsSW5zZXJ0aW9uTW9kZSgpOworICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRva2VuSW5IZWFkKHAsIHRva2VuKSB7CisgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5IRUFEKTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisKKy8vMTIuMi41LjQuNiBUaGUgImFmdGVyIGhlYWQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkJPRFkpIHsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuRlJBTUVTRVQpIHsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0ZSQU1FU0VUX01PREU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5CQVNFRk9OVCB8fCB0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSB8fAorICAgICAgICAgICAgIHRuID09PSAkLk5PRlJBTUVTIHx8IHRuID09PSAkLlNDUklQVCB8fCB0biA9PT0gJC5TVFlMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5USVRMRSkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5wdXNoKHAuaGVhZEVsZW1lbnQpOworICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShwLmhlYWRFbGVtZW50KTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biAhPT0gJC5IRUFEKQorICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0FmdGVySGVhZChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKQorICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pIHsKKyAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuQk9EWSk7CisgICAgcC5mcmFtZXNldE9rID0gdHJ1ZTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisKKy8vMTIuMi41LjQuNyBUaGUgImluIGJvZHkiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keShwLCB0b2tlbikgeworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNoYXJhY3RlckluQm9keShwLCB0b2tlbikgeworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7CisgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApCisgICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbi5hdHRycyk7Cit9CisKK2Z1bmN0aW9uIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7CisKKyAgICBpZiAoYm9keUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7CisgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgICAgICBwLnRyZWVBZGFwdGVyLmFkb3B0QXR0cmlidXRlcyhib2R5RWxlbWVudCwgdG9rZW4uYXR0cnMpOworICAgIH0KK30KKworZnVuY3Rpb24gZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7CisKKyAgICBpZiAocC5mcmFtZXNldE9rICYmIGJvZHlFbGVtZW50KSB7CisgICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShib2R5RWxlbWVudCk7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcEFsbFVwVG9IdG1sRWxlbWVudCgpOworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fRlJBTUVTRVRfTU9ERTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpCisgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkKKyAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgdmFyIHRuID0gcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuSDEgfHwgdG4gPT09ICQuSDIgfHwgdG4gPT09ICQuSDMgfHwgdG4gPT09ICQuSDQgfHwgdG4gPT09ICQuSDUgfHwgdG4gPT09ICQuSDYpCisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworCisgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7Cit9CisKK2Z1bmN0aW9uIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkKKyAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgLy9OT1RFOiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIgdG9rZW4sIHRoZW4gaWdub3JlIHRoYXQgdG9rZW4gYW5kIG1vdmUKKyAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiBwcmUgYmxvY2tzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pCisgICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworfQorCitmdW5jdGlvbiBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgaW5UZW1wbGF0ZSA9IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDA7CisKKyAgICBpZiAoIXAuZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKQorICAgICAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworCisgICAgICAgIGlmICghaW5UZW1wbGF0ZSkKKyAgICAgICAgICAgIHAuZm9ybUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50OworICAgIH0KK30KKworZnVuY3Rpb24gbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworCisgICAgZm9yICh2YXIgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLAorICAgICAgICAgICAgdG4gPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7CisKKyAgICAgICAgaWYgKCh0b2tlbi50YWdOYW1lID09PSAkLkxJICYmIHRuID09PSAkLkxJKSB8fAorICAgICAgICAgICAgKCh0b2tlbi50YWdOYW1lID09PSAkLkREIHx8IHRva2VuLnRhZ05hbWUgPT09ICQuRFQpICYmICh0biA9PT0gJC5ERCB8fCB0biA9PSAkLkRUKSkpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKHRuKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRuICE9PSAkLkFERFJFU1MgJiYgdG4gIT09ICQuRElWICYmIHRuICE9PSAkLlAgJiYgcC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpCisgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpCisgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUExBSU5URVhUOworfQorCitmdW5jdGlvbiBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQlVUVE9OKSkgeworICAgICAgICBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkJVVFRPTik7CisgICAgICAgIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIH0KK30KKworZnVuY3Rpb24gYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgdmFyIGFjdGl2ZUVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSgkLkEpOworCisgICAgaWYgKGFjdGl2ZUVsZW1lbnRFbnRyeSkgeworICAgICAgICBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkEpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoYWN0aXZlRWxlbWVudEVudHJ5LmVsZW1lbnQpOworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShhY3RpdmVFbGVtZW50RW50cnkpOworICAgIH0KKworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTsKK30KKworZnVuY3Rpb24gbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuTk9CUikpIHsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5OT0JSKTsKKyAgICAgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICB9CisKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKK30KKworZnVuY3Rpb24gdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmICghcC50cmVlQWRhcHRlci5pc1F1aXJrc01vZGUocC5kb2N1bWVudCkgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKQorICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7CisKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFOworfQorCitmdW5jdGlvbiBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworfQorCitmdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKworICAgIHZhciBpbnB1dFR5cGUgPSBUb2tlbml6ZXIuZ2V0VG9rZW5BdHRyKHRva2VuLCBBVFRSUy5UWVBFKTsKKworICAgIGlmICghaW5wdXRUeXBlIHx8IGlucHV0VHlwZS50b0xvd2VyQ2FzZSgpICE9PSBISURERU5fSU5QVVRfVFlQRSkKKyAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7CisKK30KKworZnVuY3Rpb24gcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkKKyAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpOworCisgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7Cit9CisKK2Z1bmN0aW9uIGltYWdlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB0b2tlbi50YWdOYW1lID0gJC5JTUc7CisgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gaXNpbmRleFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKCFwLmZvcm1FbGVtZW50IHx8IHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDApIHsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZ1dpdGhBdHRycygkLkZPUk0sIGdldFNlYXJjaGFibGVJbmRleEZvcm1BdHRycyh0b2tlbikpOworICAgICAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuSFIpOworICAgICAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuTEFCRUwpOworICAgICAgICBwLnRyZWVBZGFwdGVyLmluc2VydFRleHQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgZ2V0U2VhcmNoYWJsZUluZGV4TGFiZWxUZXh0KHRva2VuKSk7CisgICAgICAgIHAuX3Byb2Nlc3NGYWtlU3RhcnRUYWdXaXRoQXR0cnMoJC5JTlBVVCwgZ2V0U2VhcmNoYWJsZUluZGV4SW5wdXRBdHRycyh0b2tlbikpOworICAgICAgICBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkxBQkVMKTsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLkhSKTsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5GT1JNKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRleHRhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZQorICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHRleHRhcmVhIGVsZW1lbnRzIGFyZSBpZ25vcmVkIGFzIGFuIGF1dGhvcmluZyBjb252ZW5pZW5jZS4pCisgICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlOworICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUkNEQVRBOworICAgIHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gcC5pbnNlcnRpb25Nb2RlOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IFRFWFRfTU9ERTsKK30KKworZnVuY3Rpb24geG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKQorICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7CisKKyAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlJBV1RFWFQpOworfQorCitmdW5jdGlvbiBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlOworICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlJBV1RFWFQpOworfQorCisvL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBwbHVnaW5zLCBzbyB3ZSBwYXJzZQorLy88bm9lbWJlZD4gYXMgYSByYXd0ZXh0LgorZnVuY3Rpb24gbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkFXVEVYVCk7Cit9CisKK2Z1bmN0aW9uIHNlbGVjdFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKKworICAgIGlmIChwLmluc2VydGlvbk1vZGUgPT09IElOX1RBQkxFX01PREUgfHwgcC5pbnNlcnRpb25Nb2RlID09PSBJTl9DQVBUSU9OX01PREUgfHwKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJTl9UQUJMRV9CT0RZX01PREUgfHwgcC5pbnNlcnRpb25Nb2RlID09PSBJTl9ST1dfTU9ERSB8fAorICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IElOX0NFTExfTU9ERSkgeworICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1NFTEVDVF9NT0RFOworfQorCitmdW5jdGlvbiBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk9QVElPTikKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5PUFRJT04pOworCisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKK30KKworZnVuY3Rpb24gcnBTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpCisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworfQorCitmdW5jdGlvbiBtZW51aXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7Cit9CisKK2Z1bmN0aW9uIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisKKyAgICBGb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTsKKyAgICBGb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTsKKworICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykKKyAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTsKKyAgICBlbHNlCisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7Cit9CisKK2Z1bmN0aW9uIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKworICAgIEZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pOworICAgIEZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pOworCisgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKQorICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5TVkcpOworICAgIGVsc2UKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuU1ZHKTsKK30KKworZnVuY3Rpb24gZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKK30KKworLy9PUFRJTUlaQVRJT046IEludGVnZXIgY29tcGFyaXNvbnMgYXJlIGxvdy1jb3N0LCBzbyB3ZSBjYW4gdXNlIHZlcnkgZmFzdCB0YWcgbmFtZSBsZW5ndGggZmlsdGVycyBoZXJlLgorLy9JdCdzIGZhc3RlciB0aGFuIHVzaW5nIGRpY3Rpb25hcnkuCitmdW5jdGlvbiBzdGFydFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBzd2l0Y2ggKHRuLmxlbmd0aCkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuSSB8fCB0biA9PT0gJC5TIHx8IHRuID09PSAkLkIgfHwgdG4gPT09ICQuVSkKKyAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkEpCisgICAgICAgICAgICAgICAgYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5ETCB8fCB0biA9PT0gJC5PTCB8fCB0biA9PT0gJC5VTCkKKyAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INikKKyAgICAgICAgICAgICAgICBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTEkgfHwgdG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpCisgICAgICAgICAgICAgICAgbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkVNIHx8IHRuID09PSAkLlRUKQorICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJSKQorICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkhSKQorICAgICAgICAgICAgICAgIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5SUCB8fCB0biA9PT0gJC5SVCkKKyAgICAgICAgICAgICAgICBycFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gIT09ICQuVEggJiYgdG4gIT09ICQuVEQgJiYgdG4gIT09ICQuVFIpCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkRJViB8fCB0biA9PT0gJC5ESVIgfHwgdG4gPT09ICQuTkFWKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlBSRSkKKyAgICAgICAgICAgICAgICBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJJRykKKyAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5JTUcgfHwgdG4gPT09ICQuV0JSKQorICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlhNUCkKKyAgICAgICAgICAgICAgICB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNWRykKKyAgICAgICAgICAgICAgICBzdmdTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkNPTCkKKyAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuSFRNTCkKKyAgICAgICAgICAgICAgICBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CQVNFIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSkKKyAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJPRFkpCisgICAgICAgICAgICAgICAgYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUFJTiB8fCB0biA9PT0gJC5NRU5VKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkZPUk0pCisgICAgICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQ09ERSB8fCB0biA9PT0gJC5GT05UKQorICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk5PQlIpCisgICAgICAgICAgICAgICAgbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVJFQSkKKyAgICAgICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NQVRIKQorICAgICAgICAgICAgICAgIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkhFQUQpCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlNUWUxFIHx8IHRuID09PSAkLlRJVExFKQorICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVNJREUpCisgICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU01BTEwpCisgICAgICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpCisgICAgICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkVNQkVEKQorICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklOUFVUKQorICAgICAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QQVJBTSB8fCB0biA9PT0gJC5UUkFDSykKKyAgICAgICAgICAgICAgICBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSU1BR0UpCisgICAgICAgICAgICAgICAgaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkZSQU1FICYmIHRuICE9PSAkLlRCT0RZICYmIHRuICE9PSAkLlRGT09UICYmIHRuICE9PSAkLlRIRUFEKQorICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5TQ1JJUFQpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5DRU5URVIgfHwgdG4gPT09ICQuRklHVVJFIHx8IHRuID09PSAkLkZPT1RFUiB8fCB0biA9PT0gJC5IRUFERVIgfHwgdG4gPT09ICQuSEdST1VQKQorICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJVVFRPTikKKyAgICAgICAgICAgICAgICBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNUUklLRSB8fCB0biA9PT0gJC5TVFJPTkcpCisgICAgICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVBQTEVUIHx8IHRuID09PSAkLk9CSkVDVCkKKyAgICAgICAgICAgICAgICBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLktFWUdFTikKKyAgICAgICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TT1VSQ0UpCisgICAgICAgICAgICAgICAgcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklGUkFNRSkKKyAgICAgICAgICAgICAgICBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCkKKyAgICAgICAgICAgICAgICBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVElPTikKKyAgICAgICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkNPTU1BTkQpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5ERVRBSUxTIHx8IHRuID09PSAkLkFERFJFU1MgfHwgdG4gPT09ICQuQVJUSUNMRSB8fCB0biA9PT0gJC5TRUNUSU9OIHx8IHRuID09PSAkLlNVTU1BUlkpCisgICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTElTVElORykKKyAgICAgICAgICAgICAgICBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1BUlFVRUUpCisgICAgICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5JU0lOREVYKQorICAgICAgICAgICAgICAgIGlzaW5kZXhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRU1CRUQpCisgICAgICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gIT09ICQuQ0FQVElPTikKKyAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuQkFTRUZPTlQgfHwgdG4gPT09ICQuTUVOVUlURU0pCisgICAgICAgICAgICAgICAgbWVudWl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FU0VUKQorICAgICAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5GSUVMRFNFVCkKKyAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URVhUQVJFQSkKKyAgICAgICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5OT1NDUklQVCkKKyAgICAgICAgICAgICAgICBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRHUk9VUCkKKyAgICAgICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gIT09ICQuQ09MR1JPVVApCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlBMQUlOVEVYVCkKKyAgICAgICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkJMT0NLUVVPVEUgfHwgdG4gPT09ICQuRklHQ0FQVElPTikKKyAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisgICAgfQorfQorCitmdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQk9EWV9NT0RFOworCisgICAgZWxzZQorICAgICAgICB0b2tlbi5pZ25vcmVkID0gdHJ1ZTsKK30KKworZnVuY3Rpb24gaHRtbEVuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkJPRFkpOworCisgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKK30KKworZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pOworICAgIH0KK30KKworZnVuY3Rpb24gZm9ybUVuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCwKKyAgICAgICAgZm9ybUVsZW1lbnQgPSBwLmZvcm1FbGVtZW50OworCisgICAgaWYgKCFpblRlbXBsYXRlKQorICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDsKKworICAgIGlmICgoZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkZPUk0pKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKworICAgICAgICBpZiAoaW5UZW1wbGF0ZSkKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkZPUk0pOworCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7CisgICAgfQorfQorCitmdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5QKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLlApOworICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworICAgIH0KK30KKworZnVuY3Rpb24gbGlFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5MaXN0SXRlbVNjb3BlKCQuTEkpKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuTEkpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5MSSk7CisgICAgfQorfQorCitmdW5jdGlvbiBkZEVuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pOworICAgIH0KK30KKworZnVuY3Rpb24gbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBhcHBsZXRFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTsKKyAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7CisgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLkJSKTsKK30KKworZnVuY3Rpb24gZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBmb3IgKHZhciBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTsKKworICAgICAgICBpZiAocC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSB0bikgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pOworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAocC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLy9PUFRJTUlaQVRJT046IEludGVnZXIgY29tcGFyaXNvbnMgYXJlIGxvdy1jb3N0LCBzbyB3ZSBjYW4gdXNlIHZlcnkgZmFzdCB0YWcgbmFtZSBsZW5ndGggZmlsdGVycyBoZXJlLgorLy9JdCdzIGZhc3RlciB0aGFuIHVzaW5nIGRpY3Rpb25hcnkuCitmdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgc3dpdGNoICh0bi5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkEgfHwgdG4gPT09ICQuQiB8fCB0biA9PT0gJC5JIHx8IHRuID09PSAkLlMgfHwgdG4gPT0gJC5VKQorICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlApCisgICAgICAgICAgICAgICAgcEVuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHRuID09ICQuREwgfHwgdG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkxJKQorICAgICAgICAgICAgICAgIGxpRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpCisgICAgICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INikKKyAgICAgICAgICAgICAgICBudW1iZXJlZEhlYWRlckVuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJSKQorICAgICAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuRU0gfHwgdG4gPT09ICQuVFQpCisgICAgICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuQklHKQorICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkRJUiB8fCB0biA9PT0gJC5ESVYgfHwgdG4gPT09ICQuTkFWKQorICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5CT0RZKQorICAgICAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5GT1JNKQorICAgICAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5DT0RFIHx8IHRuID09PSAkLkZPTlQgfHwgdG4gPT09ICQuTk9CUikKKyAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NQUlOIHx8IHRuID09PSAkLk1FTlUpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkFTSURFKQorICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TTUFMTCkKKyAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5DRU5URVIgfHwgdG4gPT09ICQuRklHVVJFIHx8IHRuID09PSAkLkZPT1RFUiB8fCB0biA9PT0gJC5IRUFERVIgfHwgdG4gPT09ICQuSEdST1VQKQorICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5BUFBMRVQgfHwgdG4gPT09ICQuT0JKRUNUKQorICAgICAgICAgICAgICAgIGFwcGxldEVuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09ICQuU1RSSUtFIHx8IHRuID09PSAkLlNUUk9ORykKKyAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5BRERSRVNTIHx8IHRuID09PSAkLkFSVElDTEUgfHwgdG4gPT09ICQuREVUQUlMUyB8fCB0biA9PT0gJC5TRUNUSU9OIHx8IHRuID09PSAkLlNVTU1BUlkpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1BUlFVRUUpCisgICAgICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuRklFTERTRVQpCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRFTVBMQVRFKQorICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZChwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5CTE9DS1FVT1RFIHx8IHRuID09PSAkLkZJR0NBUFRJT04pCisgICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdCA6CisgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGVvZkluQm9keShwLCB0b2tlbikgeworICAgIGlmIChwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3AgPiAtMSkKKyAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7CisKKyAgICBlbHNlCisgICAgICAgIHAuc3RvcHBlZCA9IHRydWU7Cit9CisKKy8vMTIuMi41LjQuOCBUaGUgInRleHQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7CisgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLnNjcmlwdEhhbmRsZXIgJiYgdG9rZW4udGFnTmFtZSA9PT0gJC5TQ1JJUFQpCisgICAgICAgIHAuc2NyaXB0SGFuZGxlcihwLmRvY3VtZW50LCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTsKKworICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlOworfQorCisKK2Z1bmN0aW9uIGVvZkluVGV4dChwLCB0b2tlbikgeworICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC45IFRoZSAiaW4gdGFibGUiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZShwLCB0b2tlbikgeworICAgIHZhciBjdXJUbiA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lOworCisgICAgaWYgKGN1clRuID09PSAkLlRBQkxFIHx8IGN1clRuID09PSAkLlRCT0RZIHx8IGN1clRuID09PSAkLlRGT09UIHx8IGN1clRuID09PSAkLlRIRUFEIHx8IGN1clRuID09PSAkLlRSKSB7CisgICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2VucyA9IFtdOworICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTsKKyAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX1RFWFRfTU9ERTsKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpOworICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpOworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0NBUFRJT05fTU9ERTsKK30KKworZnVuY3Rpb24gY29sZ3JvdXBTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpOworICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0NPTFVNTl9HUk9VUF9NT0RFOworfQorCitmdW5jdGlvbiBjb2xTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBwLl9wcm9jZXNzRmFrZVN0YXJ0VGFnKCQuQ09MR1JPVVApOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRib2R5U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7CisgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTsKKyAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7Cit9CisKK2Z1bmN0aW9uIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7CisgICAgcC5fcHJvY2Vzc0Zha2VTdGFydFRhZygkLlRCT0RZKTsKKyAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCitmdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikgeworICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLlRBQkxFKTsKKworICAgIC8vTk9URTogVGhlIGZha2UgZW5kIHRhZyB0b2tlbiBoZXJlIGNhbiBvbmx5IGJlIGlnbm9yZWQgaW4gdGhlIGZyYWdtZW50IGNhc2UuCisgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKK30KKworZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgaW5wdXRUeXBlID0gVG9rZW5pemVyLmdldFRva2VuQXR0cih0b2tlbiwgQVRUUlMuVFlQRSk7CisKKyAgICBpZiAoaW5wdXRUeXBlICYmIGlucHV0VHlwZS50b0xvd2VyQ2FzZSgpID09PSBISURERU5fSU5QVVRfVFlQRSkKKyAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisKKyAgICBlbHNlCisgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7CisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgc3dpdGNoICh0bi5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIIHx8IHRuID09PSAkLlRSKQorICAgICAgICAgICAgICAgIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5DT0wpCisgICAgICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5GT1JNKQorICAgICAgICAgICAgICAgIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKQorICAgICAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU1RZTEUpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkKKyAgICAgICAgICAgICAgICB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklOUFVUKQorICAgICAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmICh0biA9PT0gJC5TQ1JJUFQpCisgICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTsKKworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgaWYgKHRuID09PSAkLkNBUFRJT04pCisgICAgICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodG4gPT09ICQuQ09MR1JPVVApCisgICAgICAgICAgICAgICAgY29sZ3JvdXBTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7CisKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pOworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTsKKyAgICB9CisKK30KKworZnVuY3Rpb24gZW5kVGFnSW5UYWJsZShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuVEFCTEUpIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRBQkxFKSkgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpOworICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7CisgICAgICAgIH0KKworICAgICAgICBlbHNlCisgICAgICAgICAgICB0b2tlbi5pZ25vcmVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCAmJgorICAgICAgICAgICAgIHRuICE9PSAkLlRCT0RZICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRGT09UICYmIHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlRIRUFEICYmIHRuICE9PSAkLlRSKSB7CisgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7CisgICAgfQorfQorCitmdW5jdGlvbiB0b2tlbkluVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDsKKworICAgIHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IHRydWU7CisgICAgcC5fcHJvY2Vzc1Rva2VuSW5Cb2R5TW9kZSh0b2tlbik7CisgICAgcC5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZTsKK30KKworCisvLzEyLjIuNS40LjEwIFRoZSAiaW4gdGFibGUgdGV4dCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHsKKyAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7CisgICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pOworICAgIHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHsKKyAgICBpZiAocC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7CisgICAgfQorCisgICAgZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyhwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pOworICAgIH0KKworICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKworLy8xMi4yLjUuNC4xMSBUaGUgImluIGNhcHRpb24iIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuQ09MIHx8IHRuID09PSAkLkNPTEdST1VQIHx8IHRuID09PSAkLlRCT0RZIHx8CisgICAgICAgIHRuID09PSAkLlREIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7CisgICAgICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLkNBUFRJT04pOworCisgICAgICAgIC8vTk9URTogVGhlIGZha2UgZW5kIHRhZyB0b2tlbiBoZXJlIGNhbiBvbmx5IGJlIGlnbm9yZWQgaW4gdGhlIGZyYWdtZW50IGNhc2UuCisgICAgICAgIGlmICghZmFrZVRva2VuLmlnbm9yZWQpCisgICAgICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkNBUFRJT04pIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTsKKyAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFOworICAgICAgICB9CisKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdG9rZW4uaWdub3JlZCA9IHRydWU7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHsKKyAgICAgICAgdmFyIGZha2VUb2tlbiA9IHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuQ0FQVElPTik7CisKKyAgICAgICAgLy9OT1RFOiBUaGUgZmFrZSBlbmQgdGFnIHRva2VuIGhlcmUgY2FuIG9ubHkgYmUgaWdub3JlZCBpbiB0aGUgZnJhZ21lbnQgY2FzZS4KKyAgICAgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gIT09ICQuQk9EWSAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCAmJiB0biAhPT0gJC5UQk9EWSAmJgorICAgICAgICAgICAgIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRGT09UICYmIHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlRIRUFEICYmIHRuICE9PSAkLlRSKSB7CisgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7CisgICAgfQorfQorCisKKy8vMTIuMi41LjQuMTIgVGhlICJpbiBjb2x1bW4gZ3JvdXAiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5DT0wpCisgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpCisgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQ09MR1JPVVApIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkNPTEdST1VQKQorICAgICAgICAgICAgdG9rZW4uaWdub3JlZCA9IHRydWU7CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTsKKyAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX01PREU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkNPTCkKKyAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7CisgICAgdmFyIGZha2VUb2tlbiA9IHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuQ09MR1JPVVApOworCisgICAgLy9OT1RFOiBUaGUgZmFrZSBlbmQgdGFnIHRva2VuIGhlcmUgY2FuIG9ubHkgYmUgaWdub3JlZCBpbiB0aGUgZnJhZ21lbnQgY2FzZS4KKyAgICBpZiAoIWZha2VUb2tlbi5pZ25vcmVkKQorICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworfQorCisvLzEyLjIuNS40LjEzIFRoZSAiaW4gdGFibGUgYm9keSIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5UUikgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTsKKyAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1JPV19NT0RFOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRIIHx8IHRuID09PSAkLlREKSB7CisgICAgICAgIHAuX3Byb2Nlc3NGYWtlU3RhcnRUYWcoJC5UUik7CisgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHwKKyAgICAgICAgICAgICB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkgeworCisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpOworICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfTU9ERTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpOworICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgfHwKKyAgICAgICAgICAgICB0biAhPT0gJC5IVE1MICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlRSKSB7CisgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pOworICAgIH0KK30KKworLy8xMi4yLjUuNC4xNCBUaGUgImluIHJvdyIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luUm93KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5USCB8fCB0biA9PT0gJC5URCkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpOworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQ0VMTF9NT0RFOworICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8IHRuID09PSAkLkNPTCB8fCB0biA9PT0gJC5DT0xHUk9VUCB8fCB0biA9PT0gJC5UQk9EWSB8fAorICAgICAgICAgICAgIHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7CisgICAgICAgIHZhciBmYWtlVG9rZW4gPSBwLl9wcm9jZXNzRmFrZUVuZFRhZygkLlRSKTsKKworICAgICAgICAvL05PVEU6IFRoZSBmYWtlIGVuZCB0YWcgdG9rZW4gaGVyZSBjYW4gb25seSBiZSBpZ25vcmVkIGluIHRoZSBmcmFnbWVudCBjYXNlLgorICAgICAgICBpZiAoIWZha2VUb2tlbi5pZ25vcmVkKQorICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5UUikgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7CisgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpOworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7CisgICAgICAgIH0KKworICAgICAgICBlbHNlCisgICAgICAgICAgICB0b2tlbi5pZ25vcmVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5UQUJMRSkgeworICAgICAgICB2YXIgZmFrZVRva2VuID0gcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5UUik7CisKKyAgICAgICAgLy9OT1RFOiBUaGUgZmFrZSBlbmQgdGFnIHRva2VuIGhlcmUgY2FuIG9ubHkgYmUgaWdub3JlZCBpbiB0aGUgZnJhZ21lbnQgY2FzZS4KKyAgICAgICAgaWYgKCFmYWtlVG9rZW4uaWdub3JlZCkKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEhFQUQpIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuVFIpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgfHwKKyAgICAgICAgICAgICB0biAhPT0gJC5IVE1MICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRIKSB7CisgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pOworICAgIH0KK30KKworCisvLzEyLjIuNS40LjE1IFRoZSAiaW4gY2VsbCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luQ2VsbChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHwgdG4gPT09ICQuVEJPRFkgfHwKKyAgICAgICAgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEggfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIpIHsKKworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRIKSkgeworICAgICAgICAgICAgcC5fY2xvc2VUYWJsZUNlbGwoKTsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKK30KKworZnVuY3Rpb24gZW5kVGFnSW5DZWxsKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5URCB8fCB0biA9PT0gJC5USCkgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTsKKyAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9ST1dfTU9ERTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7CisgICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCkKKyAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTsKK30KKworLy8xMi4yLjUuNC4xNiBUaGUgImluIHNlbGVjdCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRJT04pIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk9QVElPTikKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuT1BUSU9OKTsKKworICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKyAgICB9CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRHUk9VUCkgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKQorICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5PUFRJT04pOworCisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRHUk9VUCkKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuT1BUR1JPVVApOworCisgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCkKKyAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5TRUxFQ1QpOworCisgICAgZWxzZSBpZiAodG4gPT09ICQuSU5QVVQgfHwgdG4gPT09ICQuS0VZR0VOIHx8IHRuID09PSAkLlRFWFRBUkVBKSB7CisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkgeworICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5TRUxFQ1QpOworICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlNDUklQVCB8fCB0biA9PT0gJC5URU1QTEFURSkKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuT1BUR1JPVVApIHsKKyAgICAgICAgdmFyIHByZXZPcGVuRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW3Aub3BlbkVsZW1lbnRzLnN0YWNrVG9wIC0gMV0sCisgICAgICAgICAgICBwcmV2T3BlbkVsZW1lbnRUbiA9IHByZXZPcGVuRWxlbWVudCAmJiBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocHJldk9wZW5FbGVtZW50KTsKKworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OICYmIHByZXZPcGVuRWxlbWVudFRuID09PSAkLk9QVEdST1VQKQorICAgICAgICAgICAgcC5fcHJvY2Vzc0Zha2VFbmRUYWcoJC5PUFRJT04pOworCisgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRHUk9VUCkKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVElPTikgeworICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKQorICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisgICAgfQorCisgICAgZWxzZSBpZiAodG4gPT09ICQuU0VMRUNUICYmIHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7CisgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7CisgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpOworICAgIH0KKworICAgIGVsc2UgaWYgKHRuID09PSAkLlRFTVBMQVRFKQorICAgICAgICBlbmRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCisvLzEyLjIuNS40LjE3IFRoZSAiaW4gc2VsZWN0IGluIHRhYmxlIiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8IHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8CisgICAgICAgIHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSIHx8IHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIKSB7CisgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuU0VMRUNUKTsKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEZPT1QgfHwKKyAgICAgICAgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIgfHwgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpIHsKKyAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NGYWtlRW5kVGFnKCQuU0VMRUNUKTsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbHNlCisgICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTsKK30KKworLy8xMi4yLjUuNC4xOCBUaGUgImluIHRlbXBsYXRlIiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIHN0YXJ0VGFnSW5UZW1wbGF0ZShwLCB0b2tlbikgeworICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7CisKKyAgICBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5CQVNFRk9OVCB8fCB0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSB8fAorICAgICAgICB0biA9PT0gJC5OT0ZSQU1FUyB8fCB0biA9PT0gJC5TQ1JJUFQgfHwgdG4gPT09ICQuU1RZTEUgfHwgdG4gPT09ICQuVEVNUExBVEUgfHwgdG4gPT09ICQuVElUTEUpIHsKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworICAgIH0KKworICAgIGVsc2UgeworICAgICAgICB2YXIgbmV3SW5zZXJ0aW9uTW9kZSA9IFRFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbdG5dIHx8IElOX0JPRFlfTU9ERTsKKworICAgICAgICBwLl9wb3BUbXBsSW5zZXJ0aW9uTW9kZSgpOworICAgICAgICBwLl9wdXNoVG1wbEluc2VydGlvbk1vZGUobmV3SW5zZXJ0aW9uTW9kZSk7CisgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IG5ld0luc2VydGlvbk1vZGU7CisgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgfQorfQorCitmdW5jdGlvbiBlbmRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7CisgICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuVEVNUExBVEUpCisgICAgICAgIGVuZFRhZ0luSGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pIHsKKyAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkgeworICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRlbXBsYXRlUG9wcGVkKCk7CisgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7CisgICAgICAgIHAuX3BvcFRtcGxJbnNlcnRpb25Nb2RlKCk7CisgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpOworICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pOworICAgIH0KKworICAgIGVsc2UKKyAgICAgICAgcC5zdG9wcGVkID0gdHJ1ZTsKK30KKworCisvLzEyLjIuNS40LjE5IFRoZSAiYWZ0ZXIgYm9keSIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0FmdGVyQm9keShwLCB0b2tlbikgeworICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHsKKyAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MKSB7CisgICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQpCisgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBBRlRFUl9BRlRFUl9CT0RZX01PREU7CisgICAgfQorCisgICAgZWxzZQorICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKSB7CisgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQk9EWV9NT0RFOworICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7Cit9CisKKy8vMTIuMi41LjQuMjAgVGhlICJpbiBmcmFtZXNldCIgaW5zZXJ0aW9uIG1vZGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBzdGFydFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHsKKyAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lOworCisgICAgaWYgKHRuID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FU0VUKQorICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FKQorICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTsKKworICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRlJBTUVTKQorICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHsKKyAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5GUkFNRVNFVCAmJiAhcC5vcGVuRWxlbWVudHMuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50KCkpIHsKKyAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7CisKKyAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSAhPT0gJC5GUkFNRVNFVCkKKyAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEFGVEVSX0ZSQU1FU0VUX01PREU7CisgICAgfQorfQorCisvLzEyLjIuNS40LjIxIFRoZSAiYWZ0ZXIgZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5OT0ZSQU1FUykKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCitmdW5jdGlvbiBlbmRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7CisgICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTCkKKyAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERTsKK30KKworLy8xMi4yLjUuNC4yMiBUaGUgImFmdGVyIGFmdGVyIGJvZHkiIGluc2VydGlvbiBtb2RlCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyQm9keShwLCB0b2tlbikgeworICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLkhUTUwpCisgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTsKKworICAgIGVsc2UKKyAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbik7Cit9CisKK2Z1bmN0aW9uIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHsKKyAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7CisgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKK30KKworLy8xMi4yLjUuNC4yMyBUaGUgImFmdGVyIGFmdGVyIGZyYW1lc2V0IiBpbnNlcnRpb24gbW9kZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Z1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7CisgICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTsKKworICAgIGlmICh0biA9PT0gJC5IVE1MKQorICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7CisKKyAgICBlbHNlIGlmICh0biA9PT0gJC5OT0ZSQU1FUykKKyAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pOworfQorCisKKy8vMTIuMi41LjUgVGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnQKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitmdW5jdGlvbiBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikgeworICAgIHRva2VuLmNoYXJzID0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7CisgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7Cit9CisKK2Z1bmN0aW9uIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHsKKyAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTsKKyAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTsKK30KKworZnVuY3Rpb24gc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7CisgICAgaWYgKEZvcmVpZ25Db250ZW50LmNhdXNlc0V4aXQodG9rZW4pICYmICFwLmZyYWdtZW50Q29udGV4dCkgeworICAgICAgICB3aGlsZSAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocC5vcGVuRWxlbWVudHMuY3VycmVudCkgIT09IE5TLkhUTUwgJiYKKyAgICAgICAgICAgICAgICghcC5faXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkgJiYKKyAgICAgICAgICAgICAgICghcC5faXNIdG1sSW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkpIHsKKyAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpOworICAgICAgICB9CisKKyAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICB9CisKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIGN1cnJlbnQgPSBwLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCksCisgICAgICAgICAgICBjdXJyZW50TnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTsKKworICAgICAgICBpZiAoY3VycmVudE5zID09PSBOUy5NQVRITUwpCisgICAgICAgICAgICBGb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTsKKworICAgICAgICBlbHNlIGlmIChjdXJyZW50TnMgPT09IE5TLlNWRykgeworICAgICAgICAgICAgRm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKTsKKyAgICAgICAgICAgIEZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pOworICAgICAgICB9CisKKyAgICAgICAgRm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7CisKKyAgICAgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKQorICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGVuZFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHsKKyAgICBmb3IgKHZhciBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTsKKworICAgICAgICBpZiAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCkgPT09IE5TLkhUTUwpIHsKKyAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkudG9Mb3dlckNhc2UoKSA9PT0gdG9rZW4udGFnTmFtZSkgeworICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30seyIuLi9jb21tb24vZG9jdHlwZSI6MSwiLi4vY29tbW9uL2ZvcmVpZ25fY29udGVudCI6MiwiLi4vY29tbW9uL2h0bWwiOjMsIi4uL2NvbW1vbi91bmljb2RlIjo0LCIuLi9jb21tb24vdXRpbHMiOjUsIi4uL3Rva2VuaXphdGlvbi90b2tlbml6ZXIiOjE0LCIuLi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQiOjE1LCIuL2Zvcm1hdHRpbmdfZWxlbWVudF9saXN0IjoxNywiLi9sb2NhdGlvbl9pbmZvX21peGluIjoxOCwiLi9vcGVuX2VsZW1lbnRfc3RhY2siOjE5fV0sMjE6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpeworKGZ1bmN0aW9uIChnbG9iYWwpeworJ3VzZSBzdHJpY3QnOworCitnbG9iYWwucGFyc2U1ID0ge307CisKK3BhcnNlNS5QYXJzZXIgPSByZXF1aXJlKCcuL2xpYi90cmVlX2NvbnN0cnVjdGlvbi9wYXJzZXInKTsKK3BhcnNlNS5TaW1wbGVBcGlQYXJzZXIgPSByZXF1aXJlKCcuL2xpYi9zaW1wbGVfYXBpL3NpbXBsZV9hcGlfcGFyc2VyJyk7CitwYXJzZTUuVHJlZVNlcmlhbGl6ZXIgPQorcGFyc2U1LlNlcmlhbGl6ZXIgPSByZXF1aXJlKCcuL2xpYi9zZXJpYWxpemF0aW9uL3NlcmlhbGl6ZXInKTsKK3BhcnNlNS5Kc0RvbVBhcnNlciA9IHJlcXVpcmUoJy4vbGliL2pzZG9tL2pzZG9tX3BhcnNlcicpOworCitwYXJzZTUuVHJlZUFkYXB0ZXJzID0geworICAgIGRlZmF1bHQ6IHJlcXVpcmUoJy4vbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdCcpLAorICAgIGh0bWxwYXJzZXIyOiByZXF1aXJlKCcuL2xpYi90cmVlX2FkYXB0ZXJzL2h0bWxwYXJzZXIyJykKK307CisKK30pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsICE9PSAidW5kZWZpbmVkIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSAidW5kZWZpbmVkIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSAidW5kZWZpbmVkIiA/IHdpbmRvdyA6IHt9KQorfSx7Ii4vbGliL2pzZG9tL2pzZG9tX3BhcnNlciI6NiwiLi9saWIvc2VyaWFsaXphdGlvbi9zZXJpYWxpemVyIjo4LCIuL2xpYi9zaW1wbGVfYXBpL3NpbXBsZV9hcGlfcGFyc2VyIjo5LCIuL2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQiOjE1LCIuL2xpYi90cmVlX2FkYXB0ZXJzL2h0bWxwYXJzZXIyIjoxNiwiLi9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vcGFyc2VyIjoyMH1dLDIyOltmdW5jdGlvbihyZXF1aXJlLG1vZHVsZSxleHBvcnRzKXsKKy8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlcgorCit2YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307Cit2YXIgcXVldWUgPSBbXTsKK3ZhciBkcmFpbmluZyA9IGZhbHNlOwordmFyIGN1cnJlbnRRdWV1ZTsKK3ZhciBxdWV1ZUluZGV4ID0gLTE7CisKK2Z1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHsKKyAgICBkcmFpbmluZyA9IGZhbHNlOworICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7CisgICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcXVldWVJbmRleCA9IC0xOworICAgIH0KKyAgICBpZiAocXVldWUubGVuZ3RoKSB7CisgICAgICAgIGRyYWluUXVldWUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRyYWluUXVldWUoKSB7CisgICAgaWYgKGRyYWluaW5nKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7CisgICAgZHJhaW5pbmcgPSB0cnVlOworCisgICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDsKKyAgICB3aGlsZShsZW4pIHsKKyAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7CisgICAgICAgIHF1ZXVlID0gW107CisgICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHsKKyAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTsKKyAgICAgICAgfQorICAgICAgICBxdWV1ZUluZGV4ID0gLTE7CisgICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDsKKyAgICB9CisgICAgY3VycmVudFF1ZXVlID0gbnVsbDsKKyAgICBkcmFpbmluZyA9IGZhbHNlOworICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTsKK30KKworcHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHsKKyAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7CisgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTsKKyAgICAgICAgfQorICAgIH0KKyAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpOworICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7CisgICAgICAgIHNldFRpbWVvdXQoZHJhaW5RdWV1ZSwgMCk7CisgICAgfQorfTsKKworLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0cworZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7CisgICAgdGhpcy5mdW4gPSBmdW47CisgICAgdGhpcy5hcnJheSA9IGFycmF5OworfQorSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkgeworICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpOworfTsKK3Byb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7Citwcm9jZXNzLmJyb3dzZXIgPSB0cnVlOworcHJvY2Vzcy5lbnYgPSB7fTsKK3Byb2Nlc3MuYXJndiA9IFtdOworcHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzCitwcm9jZXNzLnZlcnNpb25zID0ge307CisKK2Z1bmN0aW9uIG5vb3AoKSB7fQorCitwcm9jZXNzLm9uID0gbm9vcDsKK3Byb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wOworcHJvY2Vzcy5vbmNlID0gbm9vcDsKK3Byb2Nlc3Mub2ZmID0gbm9vcDsKK3Byb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wOworcHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBub29wOworcHJvY2Vzcy5lbWl0ID0gbm9vcDsKKworcHJvY2Vzcy5iaW5kaW5nID0gZnVuY3Rpb24gKG5hbWUpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7Cit9OworCisvLyBUT0RPKHNodHlsbWFuKQorcHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTsKK3Byb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTsKK307Citwcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9OworCit9LHt9XX0se30sWzIxXSk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS9wYXJzZTVfbGliLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvcGFyc2U1X2xpYi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzBkZWI3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvcGFyc2U1X2xpYi5qcwpAQCAtMCwwICsxLDE0IEBACisndXNlIHN0cmljdCc7CisKK2dsb2JhbC5wYXJzZTUgPSB7fTsKKworcGFyc2U1LlBhcnNlciA9IHJlcXVpcmUoJy4vbGliL3RyZWVfY29uc3RydWN0aW9uL3BhcnNlcicpOworcGFyc2U1LlNpbXBsZUFwaVBhcnNlciA9IHJlcXVpcmUoJy4vbGliL3NpbXBsZV9hcGkvc2ltcGxlX2FwaV9wYXJzZXInKTsKK3BhcnNlNS5UcmVlU2VyaWFsaXplciA9CitwYXJzZTUuU2VyaWFsaXplciA9IHJlcXVpcmUoJy4vbGliL3NlcmlhbGl6YXRpb24vc2VyaWFsaXplcicpOworcGFyc2U1LkpzRG9tUGFyc2VyID0gcmVxdWlyZSgnLi9saWIvanNkb20vanNkb21fcGFyc2VyJyk7CisKK3BhcnNlNS5UcmVlQWRhcHRlcnMgPSB7CisgICAgZGVmYXVsdDogcmVxdWlyZSgnLi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0JyksCisgICAgaHRtbHBhcnNlcjI6IHJlcXVpcmUoJy4vbGliL3RyZWVfYWRhcHRlcnMvaHRtbHBhcnNlcjInKQorfTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL2Nlcm4vZXhwZWN0ZWQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL2Nlcm4vZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmQwOTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vY2Vybi9leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS1baWYgSUVNb2JpbGUgN10+PGh0bWwgY2xhc3M9ImllbTciICBsYW5nPSJlbiIgZGlyPSJsdHIiPjwhW2VuZGlmXS0tPgorPCEtLVtpZiBsdGUgSUUgNl0+PGh0bWwgY2xhc3M9ImllNiBpZTYtNyBpZTYtOCIgIGxhbmc9ImVuIiBkaXI9Imx0ciI+PCFbZW5kaWZdLS0+Cis8IS0tW2lmIChJRSA3KSYoIUlFTW9iaWxlKV0+PGh0bWwgY2xhc3M9ImllNyBpZTYtNyBpZTYtOCIgIGxhbmc9ImVuIiBkaXI9Imx0ciI+PCFbZW5kaWZdLS0+Cis8IS0tW2lmIElFIDhdPjxodG1sIGNsYXNzPSJpZTggaWU2LTgiICBsYW5nPSJlbiIgZGlyPSJsdHIiPjwhW2VuZGlmXS0tPgorPCEtLVtpZiAoZ3RlIElFIDkpfChndCBJRU1vYmlsZSA3KV0+PCEtLT4KKzxodG1sIGxhbmc9ImVuIiBkaXI9Imx0ciIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iIHhtbG5zOmZvYWY9Imh0dHA6Ly94bWxucy5jb20vZm9hZi8wLjEvIiB4bWxuczpvZz0iaHR0cDovL29ncC5tZS9ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOnNpb2M9Imh0dHA6Ly9yZGZzLm9yZy9zaW9jL25zIyIgeG1sbnM6c2lvY3Q9Imh0dHA6Ly9yZGZzLm9yZy9zaW9jL3R5cGVzIyIgeG1sbnM6c2tvcz0iaHR0cDovL3d3dy53My5vcmcvMjAwNC8wMi9za29zL2NvcmUjIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIyI+PCEtLTwhW2VuZGlmXS0tPjxoZWFkIHByb2ZpbGU9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwvdm9jYWIiPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPGxpbmsgcmVsPSJzaG9ydGxpbmsiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL25vZGUvMTg2Ij4KKzxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9wdWJsaWMvZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbiI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRydXBhbCA3IChodHRwOi8vZHJ1cGFsLm9yZykiPgorPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9InBoeXNpY3MsIENFUk4sIExhcmdlIEhhZHJvbiBDb2xsaWRlciwgTEhDLCBoaWdoLWVuZXJneSBwaHlzaWNzLCBwYXJ0aWNsZXMsIHNjaWVuY2UiPgorPG1ldGEgY29udGVudD0iV2VsY29tZSIgYWJvdXQ9Ii93ZWxjb21lIiBwcm9wZXJ0eT0iZGM6dGl0bGUiPgorPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNFUk4sIHRoZSBFdXJvcGVhbiBPcmdhbml6YXRpb24gZm9yIE51Y2xlYXIgUmVzZWFyY2gsIGlzIG9uZSBvZiB0aGUgd29ybGTigJlzIGxhcmdlc3QgYW5kIG1vc3QgcmVzcGVjdGVkIGNlbnRyZXMgZm9yIHNjaWVudGlmaWMgcmVzZWFyY2guIEl0cyBidXNpbmVzcyBpcyBmdW5kYW1lbnRhbCBwaHlzaWNzLCBmaW5kaW5nIG91dCB3aGF0IHRoZSBVbml2ZXJzZSBpcyBtYWRlIG9mIGFuZCBob3cgaXQgd29ya3MuIj4KKzxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC8iPgorPHRpdGxlPkNFUk4gfCBBY2NlbGVyYXRpbmcgc2NpZW5jZTwvdGl0bGU+CisKKzxtZXRhIG5hbWU9Ik1vYmlsZU9wdGltaXplZCIgY29udGVudD0id2lkdGgiPgorPG1ldGEgbmFtZT0iSGFuZGhlbGRGcmllbmRseSIgY29udGVudD0idHJ1ZSI+Cis8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPgorPG1ldGEgaHR0cC1lcXVpdj0iY2xlYXJ0eXBlIiBjb250ZW50PSJvbiI+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWluaW11bS1zY2FsZT0xLjAiPgorCis8IS0tW2lmIChsdCBJRSA5KSAmICghSUVNb2JpbGUpXT4KKzxzY3JpcHQgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9iYXNlL2pzL2llL2h0bWw1LXNoaXYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL3RoZW1lcy9jZXJuX2Jhc2UvanMvaWUvcmVzcG9uZC5taW4uanMiPjwvc2NyaXB0PgorPCFbZW5kaWZdLS0+CisKKzwhLS0gVHlwZSBmcm9tIEdvb2dsZSBGb250cyAtLT4KKzwhLS08bGluayBocmVmPScvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9UFQrU2Fuczo0MDAsNDAwaXRhbGljLDcwMCcgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgLz4gLS0+CisKKzwhLS0gVHlwZSBmcm9tIENFUk4gRnJhbWV3b3JrIC0tPgorPCEtLTxsaW5rIGhyZWY9Jy8vZnJhbWV3b3JrLndlYi5jZXJuLmNoL2ZyYW1ld29yay8yLjAvZm9udHMvUFRTYW5zV2ViL1BUU2Fuc1dlYi5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+IC0tPgorCis8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2Nzcy9jc3NfQWhaYjktLXpjalZUVmVXNkNaUWNOZWtoZ1I4ajZmYnp5WVAwMEZkYUNSdy5jc3MiIG1lZGlhPSJhbGwiPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX2oyODNzQkd0SDNob3VEckhHS2xsWjF2NVM1TGFNN0hpSWJ3Vm5sZll2OU0uY3NzIiBtZWRpYT0iYWxsIj4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19RS3AyTTRnczg1X052ZGs2aXVMS1lrdnVrdllEd25taUV3VkJuRmtvWU1FLmNzcyIgbWVkaWE9ImFsbCI+Cis8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vZnJhbWV3b3JrLndlYi5jZXJuLmNoL2ZyYW1ld29yay8yLjAvZm9udHMvUFRTYW5zV2ViL1BUU2Fuc1dlYi5jc3MiIG1lZGlhPSJhbGwiPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX1NNR3NXc0d0eV9TbDVkbU14TUhDbmhwVWs2bTRpS0gtR0lzNHp2SzBvVlkuY3NzIiBtZWRpYT0iYWxsIj4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19SOGFLOVYwcGxjbDFoZkFOMUZ0alU0R3dpMXdaYkNYOW1ldTc2R3ZSR19vLmNzcyIgbWVkaWE9ImFsbCI+Cis8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2Nzcy9jc3NfZTBPaThJMUw4Y0dKN0t4Y1ViaW1Ma08taXZsUERvWlh1QlpNV0tBejVHWS5jc3MiIG1lZGlhPSJwcmludCI+CisKKzwhLS1baWYgbHQgSUUgOF0+Cis8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2Nzcy9jc3NfSUo1WjBqNnB5eG5yNFRFbU8waGlYV3JoOEZNcFQ2YXFfaFduMUxwUk5PWS5jc3MiIG1lZGlhPSJhbGwiIC8+Cis8IVtlbmRpZl0tLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfeEFQbDBxSWs5ZW93eV9pUzl0TmtDV1hMVVZvYXQ5NFNRVDQ4VUJDRmt5US5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2pzL2pzX1pjVzdHUGotbEJUZHExNEh6b3phTGZXZllRRlhvVkthTHd0MEJKT0FvUXcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9tb2R1bGVzL2xpZ2h0Ym94Mi9qcy9saWdodGJveC5qcz8xMzkwOTE0ODMzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfY1pEaV9GNFVkWkx4RUZxXzl4ZTJHMGY2MTNwVkpKZmFocElqVmpOXzlBcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cis8IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCit2YXIgX2dhcSA9IF9nYXEgfHwgW107X2dhcS5wdXNoKFsiX3NldEFjY291bnQiLCAiVUEtODA1ODA3OS0yMyJdKTtfZ2FxLnB1c2goWyJfdHJhY2tQYWdldmlldyJdKTsoZnVuY3Rpb24oKSB7dmFyIGdhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Z2EudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2dhLmFzeW5jID0gdHJ1ZTtnYS5zcmMgPSAoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgPyAiaHR0cHM6Ly9zc2wiIDogImh0dHA6Ly93d3ciKSArICIuZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMiO3ZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZ2EsIHMpO30pKCk7CisvLy0tPjwhXV0+Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfbnJDWUZyS1c3VnhVeFFuR3NheDlSQTgzZHNWYjZORkExODJJaG5OLWhKRS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2pzL2pzX3FmRkpJOG9HZzNLX01OdzVqcl9oY3dIU0hGWDFodC1xMmtTNHl3bF9lZ0UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorPCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQoralF1ZXJ5LmV4dGVuZChEcnVwYWwuc2V0dGluZ3MsIHsiYmFzZVBhdGgiOiJcLyIsInBhdGhQcmVmaXgiOiIiLCJhamF4UGFnZVN0YXRlIjp7InRoZW1lIjoiY2Vybl9wdWJsaWMiLCJ0aGVtZV90b2tlbiI6ImtSZTU4OGEwRG95Sm4tTVFqdmhhWjJKbDJ0SV9FOGJUTlViUFJETEw2bm8iLCJqcyI6eyJtaXNjXC9qcXVlcnkuanMiOjEsIm1pc2NcL2pxdWVyeS5vbmNlLmpzIjoxLCJtaXNjXC9kcnVwYWwuanMiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2V4dGxpbmtcL2V4dGxpbmsuanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9saWdodGJveDJcL2pzXC9saWdodGJveC5qcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2N1c3RvbV9zZWFyY2hcL2pzXC9jdXN0b21fc2VhcmNoLmpzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvbGlua2l0XC9lZGl0b3JzXC9ja2VkaXRvclwvbGlua2l0RGlhbG9nLmpzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9nb29nbGVfYW5hbHl0aWNzXC9nb29nbGVhbmFseXRpY3MuanMiOjEsIjAiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvanNcL2lvcy1vcmllbnRhdGlvbmNoYW5nZS1maXguanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvanNcL2pxdWVyeS53aWRvd0ZpeC0xLjMuMi5taW4uanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvanNcL2Nlcm4uanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9qc1wvc2NyaXB0LmpzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX3B1YmxpY1wvanNcL2Nlcm4uaG9tZS5qcyI6MX0sImNzcyI6eyJtb2R1bGVzXC9zeXN0ZW1cL3N5c3RlbS5iYXNlLmNzcyI6MSwibW9kdWxlc1wvc3lzdGVtXC9zeXN0ZW0ubWVudXMuY3NzIjoxLCJtb2R1bGVzXC9zeXN0ZW1cL3N5c3RlbS5tZXNzYWdlcy5jc3MiOjEsIm1vZHVsZXNcL3N5c3RlbVwvc3lzdGVtLnRoZW1lLmNzcyI6MSwibW9kdWxlc1wvYWdncmVnYXRvclwvYWdncmVnYXRvci5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2Nlcm5zZWFyY2hib3hcL2Nlcm5zZWFyY2guY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvY2Vybl90b29sYmFyXC9jc3NcL3JlbW92ZV9leHQuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9kYXRlXC9kYXRlX2FwaVwvZGF0ZS5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2RhdGVcL2RhdGVfcG9wdXBcL3RoZW1lc1wvZGF0ZXBpY2tlci4xLjcuY3NzIjoxLCJtb2R1bGVzXC9maWVsZFwvdGhlbWVcL2ZpZWxkLmNzcyI6MSwibW9kdWxlc1wvbm9kZVwvbm9kZS5jc3MiOjEsIm1vZHVsZXNcL3NlYXJjaFwvc2VhcmNoLmNzcyI6MSwibW9kdWxlc1wvdXNlclwvdXNlci5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2V4dGxpbmtcL2V4dGxpbmsuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC92aWV3c1wvY3NzXC92aWV3cy5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL3NoaWJfYXV0aFwvc2hpYl9hdXRoLmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvY2tlZGl0b3JcL2NrZWRpdG9yLmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvY3Rvb2xzXC9jc3NcL2N0b29scy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9saWdodGJveDJcL2Nzc1wvbGlnaHRib3guY3NzIjoxLCJtb2R1bGVzXC9sb2NhbGVcL2xvY2FsZS5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9jdXN0b21fc2VhcmNoXC9jdXN0b21fc2VhcmNoLmNzcyI6MSwiaHR0cDpcL1wvZnJhbWV3b3JrLndlYi5jZXJuLmNoXC9mcmFtZXdvcmtcLzIuMFwvZm9udHNcL1BUU2Fuc1dlYlwvUFRTYW5zV2ViLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2Nlcm5fdG9vbGJhclwvY3NzXC9zY3JlZW4uY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX2Jhc2VcL2Nzc1wvZGlzYWJsZVwvc3lzdGVtLm1lbnVzLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9jc3NcL2Rpc2FibGVcL3N5c3RlbS5tZXNzYWdlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9kaXNhYmxlXC9hZHZhbmNlZC1mb3J1bS5zaWx2ZXJfYmVsbHMuaW1hZ2VzLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9jc3NcL2Rpc2FibGVcL2FkdmFuY2VkLWZvcnVtLnNpbHZlcl9iZWxscy5zdHlsZS5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9iYXNlLXN0eWxlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9jc3NcL3N0eWxlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9jc3NcL3ByaW50LmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2Nlcm5fdG9vbGJhclwvY3NzXC9pZS5jc3MiOjF9fSwibGlnaHRib3gyIjp7InJ0bCI6IjAiLCJmaWxlX3BhdGgiOiJcLyhcXHdcXHdcLylwdWJsaWM6XC8iLCJkZWZhdWx0X2ltYWdlIjoiXC9zaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvbGlnaHRib3gyXC9pbWFnZXNcL2Jyb2tlbmltYWdlLmpwZyIsImJvcmRlcl9zaXplIjoxMCwiZm9udF9jb2xvciI6IjAwMCIsImJveF9jb2xvciI6ImZmZiIsInRvcF9wb3NpdGlvbiI6IiIsIm92ZXJsYXlfb3BhY2l0eSI6IjAuOCIsIm92ZXJsYXlfY29sb3IiOiIwMDAiLCJkaXNhYmxlX2Nsb3NlX2NsaWNrIjoxLCJyZXNpemVfc2VxdWVuY2UiOjAsInJlc2l6ZV9zcGVlZCI6NDAwLCJmYWRlX2luX3NwZWVkIjo0MDAsInNsaWRlX2Rvd25fc3BlZWQiOjYwMCwidXNlX2FsdF9sYXlvdXQiOjAsImRpc2FibGVfcmVzaXplIjowLCJkaXNhYmxlX3pvb20iOjEsImZvcmNlX3Nob3dfbmF2IjowLCJzaG93X2NhcHRpb24iOjEsImxvb3BfaXRlbXMiOjAsIm5vZGVfbGlua190ZXh0IjoiVmlldyBJbWFnZSBEZXRhaWxzIiwibm9kZV9saW5rX3RhcmdldCI6MCwiaW1hZ2VfY291bnQiOiJJbWFnZSAhY3VycmVudCBvZiAhdG90YWwiLCJ2aWRlb19jb3VudCI6IlZpZGVvICFjdXJyZW50IG9mICF0b3RhbCIsInBhZ2VfY291bnQiOiJQYWdlICFjdXJyZW50IG9mICF0b3RhbCIsImxpdGVfcHJlc3NfeF9jbG9zZSI6InByZXNzIFx1MDAzQ2EgaHJlZj1cdTAwMjIjXHUwMDIyIG9uY2xpY2s9XHUwMDIyaGlkZUxpZ2h0Ym94KCk7IHJldHVybiBGQUxTRTtcdTAwMjJcdTAwM0VcdTAwM0NrYmRcdTAwM0V4XHUwMDNDXC9rYmRcdTAwM0VcdTAwM0NcL2FcdTAwM0UgdG8gY2xvc2UiLCJkb3dubG9hZF9saW5rX3RleHQiOiIiLCJlbmFibGVfbG9naW4iOmZhbHNlLCJlbmFibGVfY29udGFjdCI6ZmFsc2UsImtleXNfY2xvc2UiOiJjIHggMjciLCJrZXlzX3ByZXZpb3VzIjoicCAzNyIsImtleXNfbmV4dCI6Im4gMzkiLCJrZXlzX3pvb20iOiJ6Iiwia2V5c19wbGF5X3BhdXNlIjoiMzIiLCJkaXNwbGF5X2ltYWdlX3NpemUiOiJvcmlnaW5hbCIsImltYWdlX25vZGVfc2l6ZXMiOiIoKSIsInRyaWdnZXJfbGlnaHRib3hfY2xhc3NlcyI6IiIsInRyaWdnZXJfbGlnaHRib3hfZ3JvdXBfY2xhc3NlcyI6IiIsInRyaWdnZXJfc2xpZGVzaG93X2NsYXNzZXMiOiIiLCJ0cmlnZ2VyX2xpZ2h0ZnJhbWVfY2xhc3NlcyI6IiIsInRyaWdnZXJfbGlnaHRmcmFtZV9ncm91cF9jbGFzc2VzIjoiIiwiY3VzdG9tX2NsYXNzX2hhbmRsZXIiOjAsImN1c3RvbV90cmlnZ2VyX2NsYXNzZXMiOiIiLCJkaXNhYmxlX2Zvcl9nYWxsZXJ5X2xpc3RzIjp0cnVlLCJkaXNhYmxlX2Zvcl9hY2lkZnJlZV9nYWxsZXJ5X2xpc3RzIjp0cnVlLCJlbmFibGVfYWNpZGZyZWVfdmlkZW9zIjp0cnVlLCJzbGlkZXNob3dfaW50ZXJ2YWwiOjUwMDAsInNsaWRlc2hvd19hdXRvbWF0aWNfc3RhcnQiOnRydWUsInNsaWRlc2hvd19hdXRvbWF0aWNfZXhpdCI6dHJ1ZSwic2hvd19wbGF5X3BhdXNlIjp0cnVlLCJwYXVzZV9vbl9uZXh0X2NsaWNrIjpmYWxzZSwicGF1c2Vfb25fcHJldmlvdXNfY2xpY2siOnRydWUsImxvb3Bfc2xpZGVzIjpmYWxzZSwiaWZyYW1lX3dpZHRoIjo2MDAsImlmcmFtZV9oZWlnaHQiOjQwMCwiaWZyYW1lX2JvcmRlciI6MSwiZW5hYmxlX3ZpZGVvIjowfSwiY3VzdG9tX3NlYXJjaCI6eyJmb3JtX3RhcmdldCI6Il9zZWxmIiwic29sciI6MH0sImV4dGxpbmsiOnsiZXh0VGFyZ2V0IjowLCJleHRDbGFzcyI6ImV4dCIsImV4dFN1YmRvbWFpbnMiOjEsImV4dEV4Y2x1ZGUiOiJeQ29sbGxpZGVAQ0VSTiQiLCJleHRJbmNsdWRlIjoiIiwiZXh0Q3NzRXhjbHVkZSI6IiIsImV4dENzc0V4cGxpY2l0IjoiIiwiZXh0QWxlcnQiOjAsImV4dEFsZXJ0VGV4dCI6IlRoaXMgbGluayB3aWxsIHRha2UgeW91IHRvIGFuIGV4dGVybmFsIHdlYiBzaXRlLiBXZSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciB0aGVpciBjb250ZW50LiIsIm1haWx0b0NsYXNzIjoibWFpbHRvIn0sImdvb2dsZWFuYWx5dGljcyI6eyJ0cmFja091dGJvdW5kIjoxLCJ0cmFja01haWx0byI6MSwidHJhY2tEb3dubG9hZCI6MSwidHJhY2tEb3dubG9hZEV4dGVuc2lvbnMiOiI3enxhYWN8YXJjfGFyanxhc2Z8YXN4fGF2aXxiaW58Y3N2fGRvY3xleGV8Zmx2fGdpZnxnenxnemlwfGhxeHxqYXJ8anBlP2d8anN8bXAoMnwzfDR8ZT9nKXxtb3YoaWUpP3xtc2l8bXNwfHBkZnxwaHBzfHBuZ3xwcHR8cXRtP3xyYShtfHIpP3xzZWF8c2l0fHRhcnx0Z3p8dG9ycmVudHx0eHR8d2F2fHdtYXx3bXZ8d3BkfHhsc3x4bWx8enx6aXAifSwiY2Vybl9wdWJsaWMiOnsibGFuZ3VhZ2UiOiJlbiIsInBhdGgiOiJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX3B1YmxpYyJ9fSk7CisvLy0tPjwhXV0+Cis8L3NjcmlwdD4KKworPC9oZWFkPgorCis8Ym9keSBpZD0icGFnZS1ob21lcGFnZSIgY2xhc3M9InNlY3Rpb24taG9tZXBhZ2UiPgorPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1wYWdlLXRvcCI+CisKKworPGRpdiBpZD0iY2Vybi10b29sYmFyIiBjbGFzcz0idXNlci1ub3QtYXV0aGVudGljYXRlZCI+Cis8aDE+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2giIHRpdGxlPSJDRVJOIj5DRVJOIDxzcGFuPkFjY2VsZXJhdGluZyBzY2llbmNlPC9zcGFuPjwvYT48L2gxPjx1bD48bGkgY2xhc3M9ImNlcm4tYWNjb3VudGxpIj48YSBocmVmPSJodHRwczovL2hvbWUud2ViLmNlcm4uY2gvU2hpYmJvbGV0aC5zc28vP3RhcmdldD1odHRwcyUzQSUyRiUyRmhvbWUud2ViLmNlcm4uY2glMkZzaGliX2xvZ2luJTJGbm9kZSUyRjE4NiIgdGl0bGU9IlNpZ24gaW4gdG8geW91ciBDRVJOIGFjY291bnQiIGNsYXNzPSJjZXJuLWFjY291bnQiPlNpZ24gaW48L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvZGlyZWN0b3J5IiB0aXRsZT0iU2VhcmNoIENFUk4gcmVzb3VyY2VzIGFuZCBicm93c2UgdGhlIGRpcmVjdG9yeSIgY2xhc3M9ImNlcm4tZGlyZWN0b3J5Ij5EaXJlY3Rvcnk8L2E+PC9saT48L3VsPjwvZGl2PgorPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzwhLS0gUEFHRS5UUEwgZnJvbSBDRVJOIFB1YmxpYyB0aGVtZSAtLT4KKzxkaXYgaWQ9ImJnLWltZyI+Cis8aGVhZGVyIGlkPSJoZWFkZXIiIHJvbGU9ImJhbm5lciI+CisKKzxoMSBpZD0iY2Vybi1sb2dvIj48YSBocmVmPSIvIiB0aXRsZT0iSG9tZSIgcmVsPSJob21lIj5DRVJOPC9hPjwvaDE+CisKKworPGRpdiBpZD0iaGVhZGVyLWNvbnRlbnQiPgorPGRpdiBpZD0ibmF2LWJhciI+Cis8bmF2IGlkPSJtYWluLW1lbnUiIHJvbGU9Im5hdmlnYXRpb24iPgorPGgyIGNsYXNzPSJlbGVtZW50LWludmlzaWJsZSI+TWFpbiBtZW51PC9oMj48dWwgaWQ9Im5hdiIgY2xhc3M9Im1lbnUiPjxsaSBjbGFzcz0ibWVudS00NjEgZmlyc3QiPjxhIGhyZWY9Ii9hYm91dCI+QWJvdXQgQ0VSTjwvYT48L2xpPgorPGxpIGNsYXNzPSJtZW51LTY3NSI+PGEgaHJlZj0iL3N0dWRlbnRzLWVkdWNhdG9ycyI+U3R1ZGVudHMgJmFtcDsgRWR1Y2F0b3JzPC9hPjwvbGk+Cis8bGkgY2xhc3M9Im1lbnUtNjczIj48YSBocmVmPSIvc2NpZW50aXN0cyI+U2NpZW50aXN0czwvYT48L2xpPgorPGxpIGNsYXNzPSJtZW51LTY3NCBsYXN0Ij48YSBocmVmPSIvY2Vybi1wZW9wbGUiPkNFUk4gcGVvcGxlPC9hPjwvbGk+Cis8L3VsPgorPC9uYXY+Cis8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWxhbmctc3dpdGNoIj4KKzxkaXYgaWQ9ImJsb2NrLWxvY2FsZS1sYW5ndWFnZSIgY2xhc3M9ImJsb2NrIGJsb2NrLWxvY2FsZSI+CisKKworPHVsIGNsYXNzPSJsYW5ndWFnZS1zd2l0Y2hlci1sb2NhbGUtdXJsIj48bGkgY2xhc3M9ImVuIGZpcnN0IGFjdGl2ZSI+PGEgaHJlZj0iLyIgY2xhc3M9Imxhbmd1YWdlLWxpbmsgYWN0aXZlIiBsYW5nPSJlbiI+RW5nbGlzaDwvYT48L2xpPgorPGxpIGNsYXNzPSJmciBsYXN0Ij48YSBocmVmPSIvZnIiIGNsYXNzPSJsYW5ndWFnZS1saW5rIiBsYW5nPSJmciI+RnJhbsOnYWlzPC9hPjwvbGk+Cis8L3VsPiAgCis8L2Rpdj4KKzwvZGl2PjwhLS0gLy5yZWdpb24gLS0+Cis8L2Rpdj4KKzwvZGl2PgorCisKKzwvaGVhZGVyPgorCis8ZGl2IGlkPSJtYWluIiByb2xlPSJtYWluIj4KKworPGEgaWQ9Im1haW4tY29udGVudCI+PC9hPgorCisKKzwhLS0gbm9kZS50cGwgZnJvbSBjZXJuX3B1YmxpYyBiZWdpbnMgLS0+CisKKworCisKKworCis8IS0tIC9ub2RlLnRwbCBmcm9tIGNlcm5fcHVibGljIGVuZHMgLS0+CisKKzxkaXYgY2xhc3M9InVwZGF0ZS1hcmVhIj4KKzxzZWN0aW9uIGlkPSJibG9jay1ibG9jay0xNiIgY2xhc3M9ImJsb2NrIGJsb2NrLWJsb2NrIj4KKworCis8aDI+Q0VSTiBVcGRhdGVzPC9oMj4KKworPC9zZWN0aW9uPgorPHNlY3Rpb24gaWQ9ImJsb2NrLXZpZXdzLTQxMjBkM2I0OGZkZDJmY2M1NjQ3NzYxMTI4MzZkMGYwIiBjbGFzcz0iYmxvY2sgYmxvY2stdmlld3MgYmxvY2stdXBkYXRlcy1zdGFuZGFyZCI+CisKKworPGRpdiBjbGFzcz0idmlldyB2aWV3LUhvbWVwYWdlLXVwZGF0ZXMtYmxvY2tzIHZpZXctaWQtSG9tZXBhZ2VfdXBkYXRlc19ibG9ja3Mgdmlldy1kaXNwbGF5LWlkLWJsb2NrX3VwZGF0ZXNfc3RhbmRhcmQgdmlldy1kb20taWQtYjU3N2I0NWJjMTllMjU3ZDQ0ODM0NmZmMWFlZTk0NTEiPgorCisKKworPGRpdiBjbGFzcz0idmlldy1jb250ZW50Ij4KKzxkaXYgY2xhc3M9Iml0ZW0tbGlzdCI+ICAgIDx1bD4gICAgICAgICAgPGxpIGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTEgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctZmlyc3QiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDEvdG9kYXktMTk3MS1maXJzdC1wcm90b24tcHJvdG9uLWNvbGxpc2lvbnMiPlRvZGF5IGluIDE5NzE6IEZpcnN0IHByb3Rvbi1wcm90b24gY29sbGlzaW9uczwvYT48c3BhbiBjbGFzcz0iZmllbGQtY29udGVudCI+MjcgSmFudWFyeTwvc3Bhbj4KKzwvbGk+Cis8bGkgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMiB2aWV3cy1yb3ctZXZlbiI+PGEgaHJlZj0iaHR0cDovL3d3dy5zeW1tZXRyeW1hZ2F6aW5lLm9yZy9hcnRpY2xlL2phbnVhcnktMjAxNC9mZXJtaWxhYi1maWxscy1pbi1mb3ItY2Vybi1kdXJpbmctYWNjZWxlcmF0b3Itc2h1dGRvd24iIHRpdGxlPSJWaXNpdCBleHRlcm5hbCB3ZWJzaXRlIj5MYWJzIHdvcmsgdG9nZXRoZXIgdG93YXJkIGhpZ2hlci1lbmVyZ3kgTEhDPC9hPjxzcGFuIGNsYXNzPSJmaWVsZC1jb250ZW50Ij4yNyBKYW51YXJ5PC9zcGFuPgorPC9saT4KKzxsaSBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDEvYW50aW1hdHRlci1leHBlcmltZW50LXByb2R1Y2VzLWZpcnN0LWJlYW0tYW50aWh5ZHJvZ2VuIj5BbnRpbWF0dGVyIGV4cGVyaW1lbnQgcHJvZHVjZXMgZmlyc3QgYmVhbSBvZiBhbnRpaHlkcm9nZW48L2E+PHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjIxIEphbnVhcnk8L3NwYW4+Cis8L2xpPgorPGxpIGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTQgdmlld3Mtcm93LWV2ZW4gdmlld3Mtcm93LWxhc3QiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDEvZmlmdHkteWVhcnMtcXVhcmtzIj5GaWZ0eSB5ZWFycyBvZiBxdWFya3M8L2E+PHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjE3IEphbnVhcnk8L3NwYW4+Cis8L2xpPgorPC91bD48L2Rpdj4gICAgPC9kaXY+CisKKworCisKKzxkaXYgY2xhc3M9Im1vcmUtbGluayI+Cis8YSBocmVmPSIvYWJvdXQvdXBkYXRlcyI+CitQYXN0IHVwZGF0ZXMgIDwvYT4KKzwvZGl2PgorCisKKworCisKKzwvZGl2PiAgCis8L3NlY3Rpb24+Cis8c2VjdGlvbiBpZD0iYmxvY2stc2VhcmNoLWZvcm0iIGNsYXNzPSJibG9jayBibG9jay1zZWFyY2giPgorCisKKzxmb3JtIGNsYXNzPSJzZWFyY2gtZm9ybSIgYWN0aW9uPSIvIiBtZXRob2Q9InBvc3QiIGlkPSJzZWFyY2gtYmxvY2stZm9ybSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04Ij48ZGl2PjxkaXYgY2xhc3M9ImNvbnRhaW5lci1pbmxpbmUiPgorPGgyIGNsYXNzPSJlbGVtZW50LWludmlzaWJsZSI+U2VhcmNoIGZvcm08L2gyPgorPGRpdiBjbGFzcz0iZm9ybS1pdGVtIGZvcm0tdHlwZS10ZXh0ZmllbGQgZm9ybS1pdGVtLXNlYXJjaC1ibG9jay1mb3JtIj4KKzxsYWJlbCBjbGFzcz0iZWxlbWVudC1pbnZpc2libGUiIGZvcj0iZWRpdC1zZWFyY2gtYmxvY2stZm9ybS0tMiI+U2VhcmNoIHRoaXMgc2l0ZSA8L2xhYmVsPgorPGlucHV0IHRpdGxlPSJFbnRlciB0aGUgdGVybXMgeW91IHdpc2ggdG8gc2VhcmNoIGZvci4iIGNsYXNzPSJjdXN0b20tc2VhcmNoLWJveCBmb3JtLXRleHQiIHBsYWNlaG9sZGVyPSIiIG9uYmx1cj0iaWYgKHRoaXMudmFsdWUgPT0gJycpIHt0aGlzLnZhbHVlID0gJ1NlYXJjaCB0aGlzIHNpdGUnO30iIG9uZm9jdXM9ImlmICh0aGlzLnZhbHVlID09ICdTZWFyY2ggdGhpcyBzaXRlJykge3RoaXMudmFsdWUgPSAnJzt9IiB0eXBlPSJ0ZXh0IiBpZD0iZWRpdC1zZWFyY2gtYmxvY2stZm9ybS0tMiIgbmFtZT0ic2VhcmNoX2Jsb2NrX2Zvcm0iIHZhbHVlPSJTZWFyY2ggdGhpcyBzaXRlIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIxMjgiPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJmb3JtLWFjdGlvbnMgZm9ybS13cmFwcGVyIiBpZD0iZWRpdC1hY3Rpb25zIj48aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iZWRpdC1zdWJtaXQiIG5hbWU9Im9wIiB2YWx1ZT0iU2VhcmNoIiBjbGFzcz0iZm9ybS1zdWJtaXQiPjwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fYnVpbGRfaWQiIHZhbHVlPSJmb3JtLWdxaXV6TXpWWGk2eTQzVWQ0Z2RrVjZ1ZWdUaG05WVFaOS1xcXllNDdtYmsiPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9pZCIgdmFsdWU9InNlYXJjaF9ibG9ja19mb3JtIj4KKzwvZGl2PgorPC9kaXY+PC9mb3JtPiAgCis8L3NlY3Rpb24+Cis8L2Rpdj4KKworPC9kaXY+PCEtLSAvI21haW4gLS0+CisKKworPC9kaXY+PCEtLSAvI2JnLWltZyAtLT4KKworPGZvb3RlciBpZD0iZm9vdGVyIiByb2xlPSJjb250ZW50aW5mbyI+Cis8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWZvb3Rlci0yIj4KKzxkaXYgaWQ9ImJsb2NrLW1lbnUtbWVudS1nbG9iYWwtZm9vdGVyLW1lbnUtMiIgY2xhc3M9ImJsb2NrIGJsb2NrLW1lbnUiPgorCis8aDI+R2VuZXJhbCBpbmZvPC9oMj4KKworPHVsIGNsYXNzPSJtZW51Ij48bGkgY2xhc3M9ImZpcnN0IGxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL2pvYnMiIHRpdGxlPSIiPkpvYnM8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvb3V0cmVhY2giIHRpdGxlPSIiPlZpc2l0czwvYT48L2xpPgorPGxpIGNsYXNzPSJsYXN0IGxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL3ByZXNzIiB0aXRsZT0iIj5QcmVzczwvYT48L2xpPgorPC91bD4gIAorPC9kaXY+Cis8L2Rpdj48IS0tIC8ucmVnaW9uIC0tPgorPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1mb290ZXItMyI+Cis8ZGl2IGlkPSJibG9jay1tZW51LW1lbnUtZ2xvYmFsLWZvb3Rlci1tZW51LTMiIGNsYXNzPSJibG9jayBibG9jay1tZW51Ij4KKworPGgyPkNFUk4gJmFtcDsgeW91PC9oMj4KKworPHVsIGNsYXNzPSJtZW51Ij48bGkgY2xhc3M9ImZpcnN0IGxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL3Byb2N1cmVtZW50IiB0aXRsZT0iIj5Eb2luZyBidXNpbmVzcyB3aXRoIENFUk48L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gva25vd2xlZGdldHJhbnNmZXIiIHRpdGxlPSIiPktub3dsZWRnZSB0cmFuc2ZlcjwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9wcm9qZWN0LXZvaXNpbnMvIiB0aXRsZT0iIj5DRVJOJ3MgbmVpZ2hib3VyczwvYT48L2xpPgorPGxpIGNsYXNzPSJsYXN0IGxlYWYiPjxhIGhyZWY9Ii9wYXJ0bmVyc2hpcHMiIHRpdGxlPSIiPlBhcnRuZXJzaGlwczwvYT48L2xpPgorPC91bD4gIAorPC9kaXY+Cis8L2Rpdj48IS0tIC8ucmVnaW9uIC0tPgorPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1mb290ZXItNSI+Cis8ZGl2IGlkPSJibG9jay1ibG9jay01IiBjbGFzcz0iYmxvY2sgYmxvY2stYmxvY2siPgorCis8aDI+Q29udGFjdDwvaDI+CisKKzxwPkNFUk48YnI+CitDSC0xMjExIEdlbmV2YSAyMzxicj4KK1N3aXR6ZXJsYW5kPC9wPgorPHA+PGEgaHJlZj0iL2NvbnRhY3QiPkhvdyB0byByZWFjaCB1czwvYT48L3A+CisKKzwvZGl2PgorPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzxkaXYgY2xhc3M9InJlZ2lvbiByZWdpb24tZm9vdGVyLTQiPgorPGRpdiBpZD0iYmxvY2stbWVudS1tZW51LWdsb2JhbC1mb290ZXItbWVudS01IiBjbGFzcz0iYmxvY2sgYmxvY2stbWVudSI+CisKKzxoMj5Db25uZWN0IHdpdGggQ0VSTjwvaDI+CisKKzx1bCBjbGFzcz0ibWVudSI+PGxpIGNsYXNzPSJmaXJzdCBsZWFmIj48YSBocmVmPSJodHRwOi8vZmFjZWJvb2suY29tL2Nlcm4iIHRpdGxlPSIiPkZhY2Vib29rPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9jZXJuIiB0aXRsZT0iIj5Ud2l0dGVyPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK0NFUk4vIiB0aXRsZT0iIj5Hb29nbGUrPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly95b3V0dWJlLmNvbS9jZXJuIiB0aXRsZT0iIj5Zb3VUdWJlPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9pdHVuZXMuYXBwbGUuY29tL2luc3RpdHV0aW9uL2Nlcm4tZXVyb3BlYW4tb3JnYW5pemF0aW9uL2lkMzkwMTE4NjkyIiB0aXRsZT0iIj5pVHVuZXMgVTwvYT48L2xpPgorPGxpIGNsYXNzPSJsYXN0IGxlYWYiPjxhIGhyZWY9Ii9mZWVkcyIgdGl0bGU9IiI+RmVlZHM8L2E+PC9saT4KKzwvdWw+ICAKKzwvZGl2PgorPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzxkaXYgY2xhc3M9InJlZ2lvbiByZWdpb24tZm9vdGVyLTEiPgorPGRpdiBpZD0iYmxvY2stYmxvY2stNCIgY2xhc3M9ImJsb2NrIGJsb2NrLWJsb2NrIj4KKworCis8cD48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9jb3B5cmlnaHQiPsKpIENvcHlyaWdodCBDRVJOIDIwMTQ8L2E+PC9wPgorCisKKzxwPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL2Nlcm42MCI+PGltZyBhbHQ9IiIgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy91My9sb2dvLTYwLW5lZ2F0aWZfYTgwLnBuZyIgc3R5bGU9ImZsb2F0OnJpZ2h0Ij48L2E+PC9wPiAgCis8L2Rpdj4KKzwvZGl2PjwhLS0gLy5yZWdpb24gLS0+Cis8L2Zvb3Rlcj4KKworPCEtLVtpZiBsdGUgSUUgOF0+PGltZyBpZD0iYmciIHNyYz0iIiAvPjwhW2VuZGlmXS0tPgorCisKKzwhLS1baWYgKGx0IElFIDkpICYgKCFJRU1vYmlsZSldPgorPHNjcmlwdCBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL3RoZW1lcy9jZXJuX2Jhc2UvanMvaWUvaW1nc2l6ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL3RoZW1lcy9jZXJuX2Jhc2UvanMvaWUvc2VsZWN0aXZpenItbWluLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9iYXNlL2pzL2llL2pxdWVyeS1leHRyYS1zZWxlY3RvcnMuanMiPjwvc2NyaXB0PgorPCFbZW5kaWZdLS0+CisKKzwhLS0gUHJvbXB0cyBhbGwgSUU2IHVzZXJzIHRvIGluc3RhbGwgR29vZ2xlIENocm9tZWZyYW1lIC0tPgorPCEtLVtpZiBsdCBJRSA3XT4KKzxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2Nocm9tZS1mcmFtZS8xL0NGSW5zdGFsbC5taW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdD5DRkluc3RhbGwuY2hlY2soKTs8L3NjcmlwdD4KKzwhW2VuZGlmXS0tPgorCis8c2NyaXB0IHNyYz0iaHR0cHM6Ly9nZXQuZ3JpZHNldGFwcC5jb20vMTI1L292ZXJsYXkvIj48L3NjcmlwdD4KKworCisKKworCisKKzwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vY2Vybi9zcmMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL2Nlcm4vc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUyNzFiNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL2Nlcm4vc3JjLmh0bWwKQEAgLTAsMCArMSwyNzMgQEAKKworPCFET0NUWVBFIGh0bWw+Cis8IS0tW2lmIElFTW9iaWxlIDddPjxodG1sIGNsYXNzPSJpZW03IiAgbGFuZz0iZW4iIGRpcj0ibHRyIj48IVtlbmRpZl0tLT4KKzwhLS1baWYgbHRlIElFIDZdPjxodG1sIGNsYXNzPSJpZTYgaWU2LTcgaWU2LTgiICBsYW5nPSJlbiIgZGlyPSJsdHIiPjwhW2VuZGlmXS0tPgorPCEtLVtpZiAoSUUgNykmKCFJRU1vYmlsZSldPjxodG1sIGNsYXNzPSJpZTcgaWU2LTcgaWU2LTgiICBsYW5nPSJlbiIgZGlyPSJsdHIiPjwhW2VuZGlmXS0tPgorPCEtLVtpZiBJRSA4XT48aHRtbCBjbGFzcz0iaWU4IGllNi04IiAgbGFuZz0iZW4iIGRpcj0ibHRyIj48IVtlbmRpZl0tLT4KKzwhLS1baWYgKGd0ZSBJRSA5KXwoZ3QgSUVNb2JpbGUgNyldPjwhLS0+PGh0bWwgIGxhbmc9ImVuIiBkaXI9Imx0ciIKK3htbG5zOmNvbnRlbnQ9Imh0dHA6Ly9wdXJsLm9yZy9yc3MvMS4wL21vZHVsZXMvY29udGVudC8iCit4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyIKK3htbG5zOmZvYWY9Imh0dHA6Ly94bWxucy5jb20vZm9hZi8wLjEvIgoreG1sbnM6b2c9Imh0dHA6Ly9vZ3AubWUvbnMjIgoreG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyIKK3htbG5zOnNpb2M9Imh0dHA6Ly9yZGZzLm9yZy9zaW9jL25zIyIKK3htbG5zOnNpb2N0PSJodHRwOi8vcmRmcy5vcmcvc2lvYy90eXBlcyMiCit4bWxuczpza29zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA0LzAyL3Nrb3MvY29yZSMiCit4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIyI+PCEtLTwhW2VuZGlmXS0tPgorCis8aGVhZCBwcm9maWxlPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sL3ZvY2FiIj4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorPGxpbmsgcmVsPSJzaG9ydGxpbmsiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL25vZGUvMTg2IiAvPgorPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL3RoZW1lcy9jZXJuX3B1YmxpYy9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uIiAvPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEcnVwYWwgNyAoaHR0cDovL2RydXBhbC5vcmcpIiAvPgorPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9InBoeXNpY3MsIENFUk4sIExhcmdlIEhhZHJvbiBDb2xsaWRlciwgTEhDLCBoaWdoLWVuZXJneSBwaHlzaWNzLCBwYXJ0aWNsZXMsIHNjaWVuY2UiIC8+Cis8bWV0YSBjb250ZW50PSJXZWxjb21lIiBhYm91dD0iL3dlbGNvbWUiIHByb3BlcnR5PSJkYzp0aXRsZSIgLz4KKzxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJDRVJOLCB0aGUgRXVyb3BlYW4gT3JnYW5pemF0aW9uIGZvciBOdWNsZWFyIFJlc2VhcmNoLCBpcyBvbmUgb2YgdGhlIHdvcmxk4oCZcyBsYXJnZXN0IGFuZCBtb3N0IHJlc3BlY3RlZCBjZW50cmVzIGZvciBzY2llbnRpZmljIHJlc2VhcmNoLiBJdHMgYnVzaW5lc3MgaXMgZnVuZGFtZW50YWwgcGh5c2ljcywgZmluZGluZyBvdXQgd2hhdCB0aGUgVW5pdmVyc2UgaXMgbWFkZSBvZiBhbmQgaG93IGl0IHdvcmtzLiIgLz4KKzxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC8iIC8+Cis8dGl0bGU+Q0VSTiB8IEFjY2VsZXJhdGluZyBzY2llbmNlPC90aXRsZT4KKworPG1ldGEgbmFtZT0iTW9iaWxlT3B0aW1pemVkIiBjb250ZW50PSJ3aWR0aCI+Cis8bWV0YSBuYW1lPSJIYW5kaGVsZEZyaWVuZGx5IiBjb250ZW50PSJ0cnVlIj4KKzxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+Cis8bWV0YSBodHRwLWVxdWl2PSJjbGVhcnR5cGUiIGNvbnRlbnQ9Im9uIj4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSI+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtaW5pbXVtLXNjYWxlPTEuMCIgLz4KKworPCEtLVtpZiAobHQgSUUgOSkgJiAoIUlFTW9iaWxlKV0+Cis8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9odG1sNS1zaGl2LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9iYXNlL2pzL2llL3Jlc3BvbmQubWluLmpzIj48L3NjcmlwdD4KKzwhW2VuZGlmXS0tPgorCis8IS0tIFR5cGUgZnJvbSBHb29nbGUgRm9udHMgLS0+Cis8IS0tPGxpbmsgaHJlZj0nLy9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVBUK1NhbnM6NDAwLDQwMGl0YWxpYyw3MDAnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+IC0tPgorCis8IS0tIFR5cGUgZnJvbSBDRVJOIEZyYW1ld29yayAtLT4KKzwhLS08bGluayBocmVmPScvL2ZyYW1ld29yay53ZWIuY2Vybi5jaC9mcmFtZXdvcmsvMi4wL2ZvbnRzL1BUU2Fuc1dlYi9QVFNhbnNXZWIuY3NzJyByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJyAvPiAtLT4KKworPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX0FoWmI5LS16Y2pWVFZlVzZDWlFjTmVraGdSOGo2ZmJ6eVlQMDBGZGFDUncuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX2oyODNzQkd0SDNob3VEckhHS2xsWjF2NVM1TGFNN0hpSWJ3Vm5sZll2OU0uY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX1FLcDJNNGdzODVfTnZkazZpdUxLWWt2dWt2WUR3bm1pRXdWQm5Ga29ZTUUuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2ZyYW1ld29yay53ZWIuY2Vybi5jaC9mcmFtZXdvcmsvMi4wL2ZvbnRzL1BUU2Fuc1dlYi9QVFNhbnNXZWIuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX1NNR3NXc0d0eV9TbDVkbU14TUhDbmhwVWs2bTRpS0gtR0lzNHp2SzBvVlkuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX1I4YUs5VjBwbGNsMWhmQU4xRnRqVTRHd2kxd1piQ1g5bWV1NzZHdlJHX28uY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX2UwT2k4STFMOGNHSjdLeGNVYmltTGtPLWl2bFBEb1pYdUJaTVdLQXo1R1kuY3NzIiBtZWRpYT0icHJpbnQiIC8+CisKKzwhLS1baWYgbHQgSUUgOF0+Cis8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2Nzcy9jc3NfSUo1WjBqNnB5eG5yNFRFbU8waGlYV3JoOEZNcFQ2YXFfaFduMUxwUk5PWS5jc3MiIG1lZGlhPSJhbGwiIC8+Cis8IVtlbmRpZl0tLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfeEFQbDBxSWs5ZW93eV9pUzl0TmtDV1hMVVZvYXQ5NFNRVDQ4VUJDRmt5US5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2pzL2pzX1pjVzdHUGotbEJUZHExNEh6b3phTGZXZllRRlhvVkthTHd0MEJKT0FvUXcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9tb2R1bGVzL2xpZ2h0Ym94Mi9qcy9saWdodGJveC5qcz8xMzkwOTE0ODMzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfY1pEaV9GNFVkWkx4RUZxXzl4ZTJHMGY2MTNwVkpKZmFocElqVmpOXzlBcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cis8IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCit2YXIgX2dhcSA9IF9nYXEgfHwgW107X2dhcS5wdXNoKFsiX3NldEFjY291bnQiLCAiVUEtODA1ODA3OS0yMyJdKTtfZ2FxLnB1c2goWyJfdHJhY2tQYWdldmlldyJdKTsoZnVuY3Rpb24oKSB7dmFyIGdhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Z2EudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2dhLmFzeW5jID0gdHJ1ZTtnYS5zcmMgPSAoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgPyAiaHR0cHM6Ly9zc2wiIDogImh0dHA6Ly93d3ciKSArICIuZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMiO3ZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZ2EsIHMpO30pKCk7CisvLy0tPjwhXV0+Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfbnJDWUZyS1c3VnhVeFFuR3NheDlSQTgzZHNWYjZORkExODJJaG5OLWhKRS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2pzL2pzX3FmRkpJOG9HZzNLX01OdzVqcl9oY3dIU0hGWDFodC1xMmtTNHl3bF9lZ0UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorPCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQoralF1ZXJ5LmV4dGVuZChEcnVwYWwuc2V0dGluZ3MsIHsiYmFzZVBhdGgiOiJcLyIsInBhdGhQcmVmaXgiOiIiLCJhamF4UGFnZVN0YXRlIjp7InRoZW1lIjoiY2Vybl9wdWJsaWMiLCJ0aGVtZV90b2tlbiI6ImtSZTU4OGEwRG95Sm4tTVFqdmhhWjJKbDJ0SV9FOGJUTlViUFJETEw2bm8iLCJqcyI6eyJtaXNjXC9qcXVlcnkuanMiOjEsIm1pc2NcL2pxdWVyeS5vbmNlLmpzIjoxLCJtaXNjXC9kcnVwYWwuanMiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2V4dGxpbmtcL2V4dGxpbmsuanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9saWdodGJveDJcL2pzXC9saWdodGJveC5qcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2N1c3RvbV9zZWFyY2hcL2pzXC9jdXN0b21fc2VhcmNoLmpzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvbGlua2l0XC9lZGl0b3JzXC9ja2VkaXRvclwvbGlua2l0RGlhbG9nLmpzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9nb29nbGVfYW5hbHl0aWNzXC9nb29nbGVhbmFseXRpY3MuanMiOjEsIjAiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvanNcL2lvcy1vcmllbnRhdGlvbmNoYW5nZS1maXguanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvanNcL2pxdWVyeS53aWRvd0ZpeC0xLjMuMi5taW4uanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvanNcL2Nlcm4uanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9qc1wvc2NyaXB0LmpzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX3B1YmxpY1wvanNcL2Nlcm4uaG9tZS5qcyI6MX0sImNzcyI6eyJtb2R1bGVzXC9zeXN0ZW1cL3N5c3RlbS5iYXNlLmNzcyI6MSwibW9kdWxlc1wvc3lzdGVtXC9zeXN0ZW0ubWVudXMuY3NzIjoxLCJtb2R1bGVzXC9zeXN0ZW1cL3N5c3RlbS5tZXNzYWdlcy5jc3MiOjEsIm1vZHVsZXNcL3N5c3RlbVwvc3lzdGVtLnRoZW1lLmNzcyI6MSwibW9kdWxlc1wvYWdncmVnYXRvclwvYWdncmVnYXRvci5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2Nlcm5zZWFyY2hib3hcL2Nlcm5zZWFyY2guY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvY2Vybl90b29sYmFyXC9jc3NcL3JlbW92ZV9leHQuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9kYXRlXC9kYXRlX2FwaVwvZGF0ZS5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2RhdGVcL2RhdGVfcG9wdXBcL3RoZW1lc1wvZGF0ZXBpY2tlci4xLjcuY3NzIjoxLCJtb2R1bGVzXC9maWVsZFwvdGhlbWVcL2ZpZWxkLmNzcyI6MSwibW9kdWxlc1wvbm9kZVwvbm9kZS5jc3MiOjEsIm1vZHVsZXNcL3NlYXJjaFwvc2VhcmNoLmNzcyI6MSwibW9kdWxlc1wvdXNlclwvdXNlci5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2V4dGxpbmtcL2V4dGxpbmsuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC92aWV3c1wvY3NzXC92aWV3cy5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL3NoaWJfYXV0aFwvc2hpYl9hdXRoLmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvY2tlZGl0b3JcL2NrZWRpdG9yLmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvY3Rvb2xzXC9jc3NcL2N0b29scy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9saWdodGJveDJcL2Nzc1wvbGlnaHRib3guY3NzIjoxLCJtb2R1bGVzXC9sb2NhbGVcL2xvY2FsZS5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9jdXN0b21fc2VhcmNoXC9jdXN0b21fc2VhcmNoLmNzcyI6MSwiaHR0cDpcL1wvZnJhbWV3b3JrLndlYi5jZXJuLmNoXC9mcmFtZXdvcmtcLzIuMFwvZm9udHNcL1BUU2Fuc1dlYlwvUFRTYW5zV2ViLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2Nlcm5fdG9vbGJhclwvY3NzXC9zY3JlZW4uY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX2Jhc2VcL2Nzc1wvZGlzYWJsZVwvc3lzdGVtLm1lbnVzLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9jc3NcL2Rpc2FibGVcL3N5c3RlbS5tZXNzYWdlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9kaXNhYmxlXC9hZHZhbmNlZC1mb3J1bS5zaWx2ZXJfYmVsbHMuaW1hZ2VzLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9jc3NcL2Rpc2FibGVcL2FkdmFuY2VkLWZvcnVtLnNpbHZlcl9iZWxscy5zdHlsZS5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9iYXNlLXN0eWxlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9jc3NcL3N0eWxlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9jc3NcL3ByaW50LmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2Nlcm5fdG9vbGJhclwvY3NzXC9pZS5jc3MiOjF9fSwibGlnaHRib3gyIjp7InJ0bCI6IjAiLCJmaWxlX3BhdGgiOiJcLyhcXHdcXHdcLylwdWJsaWM6XC8iLCJkZWZhdWx0X2ltYWdlIjoiXC9zaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvbGlnaHRib3gyXC9pbWFnZXNcL2Jyb2tlbmltYWdlLmpwZyIsImJvcmRlcl9zaXplIjoxMCwiZm9udF9jb2xvciI6IjAwMCIsImJveF9jb2xvciI6ImZmZiIsInRvcF9wb3NpdGlvbiI6IiIsIm92ZXJsYXlfb3BhY2l0eSI6IjAuOCIsIm92ZXJsYXlfY29sb3IiOiIwMDAiLCJkaXNhYmxlX2Nsb3NlX2NsaWNrIjoxLCJyZXNpemVfc2VxdWVuY2UiOjAsInJlc2l6ZV9zcGVlZCI6NDAwLCJmYWRlX2luX3NwZWVkIjo0MDAsInNsaWRlX2Rvd25fc3BlZWQiOjYwMCwidXNlX2FsdF9sYXlvdXQiOjAsImRpc2FibGVfcmVzaXplIjowLCJkaXNhYmxlX3pvb20iOjEsImZvcmNlX3Nob3dfbmF2IjowLCJzaG93X2NhcHRpb24iOjEsImxvb3BfaXRlbXMiOjAsIm5vZGVfbGlua190ZXh0IjoiVmlldyBJbWFnZSBEZXRhaWxzIiwibm9kZV9saW5rX3RhcmdldCI6MCwiaW1hZ2VfY291bnQiOiJJbWFnZSAhY3VycmVudCBvZiAhdG90YWwiLCJ2aWRlb19jb3VudCI6IlZpZGVvICFjdXJyZW50IG9mICF0b3RhbCIsInBhZ2VfY291bnQiOiJQYWdlICFjdXJyZW50IG9mICF0b3RhbCIsImxpdGVfcHJlc3NfeF9jbG9zZSI6InByZXNzIFx1MDAzQ2EgaHJlZj1cdTAwMjIjXHUwMDIyIG9uY2xpY2s9XHUwMDIyaGlkZUxpZ2h0Ym94KCk7IHJldHVybiBGQUxTRTtcdTAwMjJcdTAwM0VcdTAwM0NrYmRcdTAwM0V4XHUwMDNDXC9rYmRcdTAwM0VcdTAwM0NcL2FcdTAwM0UgdG8gY2xvc2UiLCJkb3dubG9hZF9saW5rX3RleHQiOiIiLCJlbmFibGVfbG9naW4iOmZhbHNlLCJlbmFibGVfY29udGFjdCI6ZmFsc2UsImtleXNfY2xvc2UiOiJjIHggMjciLCJrZXlzX3ByZXZpb3VzIjoicCAzNyIsImtleXNfbmV4dCI6Im4gMzkiLCJrZXlzX3pvb20iOiJ6Iiwia2V5c19wbGF5X3BhdXNlIjoiMzIiLCJkaXNwbGF5X2ltYWdlX3NpemUiOiJvcmlnaW5hbCIsImltYWdlX25vZGVfc2l6ZXMiOiIoKSIsInRyaWdnZXJfbGlnaHRib3hfY2xhc3NlcyI6IiIsInRyaWdnZXJfbGlnaHRib3hfZ3JvdXBfY2xhc3NlcyI6IiIsInRyaWdnZXJfc2xpZGVzaG93X2NsYXNzZXMiOiIiLCJ0cmlnZ2VyX2xpZ2h0ZnJhbWVfY2xhc3NlcyI6IiIsInRyaWdnZXJfbGlnaHRmcmFtZV9ncm91cF9jbGFzc2VzIjoiIiwiY3VzdG9tX2NsYXNzX2hhbmRsZXIiOjAsImN1c3RvbV90cmlnZ2VyX2NsYXNzZXMiOiIiLCJkaXNhYmxlX2Zvcl9nYWxsZXJ5X2xpc3RzIjp0cnVlLCJkaXNhYmxlX2Zvcl9hY2lkZnJlZV9nYWxsZXJ5X2xpc3RzIjp0cnVlLCJlbmFibGVfYWNpZGZyZWVfdmlkZW9zIjp0cnVlLCJzbGlkZXNob3dfaW50ZXJ2YWwiOjUwMDAsInNsaWRlc2hvd19hdXRvbWF0aWNfc3RhcnQiOnRydWUsInNsaWRlc2hvd19hdXRvbWF0aWNfZXhpdCI6dHJ1ZSwic2hvd19wbGF5X3BhdXNlIjp0cnVlLCJwYXVzZV9vbl9uZXh0X2NsaWNrIjpmYWxzZSwicGF1c2Vfb25fcHJldmlvdXNfY2xpY2siOnRydWUsImxvb3Bfc2xpZGVzIjpmYWxzZSwiaWZyYW1lX3dpZHRoIjo2MDAsImlmcmFtZV9oZWlnaHQiOjQwMCwiaWZyYW1lX2JvcmRlciI6MSwiZW5hYmxlX3ZpZGVvIjowfSwiY3VzdG9tX3NlYXJjaCI6eyJmb3JtX3RhcmdldCI6Il9zZWxmIiwic29sciI6MH0sImV4dGxpbmsiOnsiZXh0VGFyZ2V0IjowLCJleHRDbGFzcyI6ImV4dCIsImV4dFN1YmRvbWFpbnMiOjEsImV4dEV4Y2x1ZGUiOiJeQ29sbGxpZGVAQ0VSTiQiLCJleHRJbmNsdWRlIjoiIiwiZXh0Q3NzRXhjbHVkZSI6IiIsImV4dENzc0V4cGxpY2l0IjoiIiwiZXh0QWxlcnQiOjAsImV4dEFsZXJ0VGV4dCI6IlRoaXMgbGluayB3aWxsIHRha2UgeW91IHRvIGFuIGV4dGVybmFsIHdlYiBzaXRlLiBXZSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciB0aGVpciBjb250ZW50LiIsIm1haWx0b0NsYXNzIjoibWFpbHRvIn0sImdvb2dsZWFuYWx5dGljcyI6eyJ0cmFja091dGJvdW5kIjoxLCJ0cmFja01haWx0byI6MSwidHJhY2tEb3dubG9hZCI6MSwidHJhY2tEb3dubG9hZEV4dGVuc2lvbnMiOiI3enxhYWN8YXJjfGFyanxhc2Z8YXN4fGF2aXxiaW58Y3N2fGRvY3xleGV8Zmx2fGdpZnxnenxnemlwfGhxeHxqYXJ8anBlP2d8anN8bXAoMnwzfDR8ZT9nKXxtb3YoaWUpP3xtc2l8bXNwfHBkZnxwaHBzfHBuZ3xwcHR8cXRtP3xyYShtfHIpP3xzZWF8c2l0fHRhcnx0Z3p8dG9ycmVudHx0eHR8d2F2fHdtYXx3bXZ8d3BkfHhsc3x4bWx8enx6aXAifSwiY2Vybl9wdWJsaWMiOnsibGFuZ3VhZ2UiOiJlbiIsInBhdGgiOiJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX3B1YmxpYyJ9fSk7CisvLy0tPjwhXV0+Cis8L3NjcmlwdD4KKworPC9oZWFkPgorCis8Ym9keSBpZD0icGFnZS1ob21lcGFnZSIgY2xhc3M9InNlY3Rpb24taG9tZXBhZ2UiPgorPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1wYWdlLXRvcCI+CisKKworPGRpdiBpZD0iY2Vybi10b29sYmFyIiBjbGFzcz0idXNlci1ub3QtYXV0aGVudGljYXRlZCI+Cis8aDE+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2giIHRpdGxlPSJDRVJOIj5DRVJOIDxzcGFuPkFjY2VsZXJhdGluZyBzY2llbmNlPC9zcGFuPjwvYT48L2gxPjx1bD48bGkgY2xhc3M9ImNlcm4tYWNjb3VudGxpIj48YSBocmVmPSJodHRwczovL2hvbWUud2ViLmNlcm4uY2gvU2hpYmJvbGV0aC5zc28vP3RhcmdldD1odHRwcyUzQSUyRiUyRmhvbWUud2ViLmNlcm4uY2glMkZzaGliX2xvZ2luJTJGbm9kZSUyRjE4NiIgdGl0bGU9IlNpZ24gaW4gdG8geW91ciBDRVJOIGFjY291bnQiIGNsYXNzPSJjZXJuLWFjY291bnQiPlNpZ24gaW48L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvZGlyZWN0b3J5IiB0aXRsZT0iU2VhcmNoIENFUk4gcmVzb3VyY2VzIGFuZCBicm93c2UgdGhlIGRpcmVjdG9yeSIgY2xhc3M9ImNlcm4tZGlyZWN0b3J5Ij5EaXJlY3Rvcnk8L2E+PC9saT48L3VsPjwvZGl2PgorPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzwhLS0gUEFHRS5UUEwgZnJvbSBDRVJOIFB1YmxpYyB0aGVtZSAtLT4KKzxkaXYgaWQ9ImJnLWltZyI+Cis8aGVhZGVyIGlkPSJoZWFkZXIiIHJvbGU9ImJhbm5lciI+CisKKzxoMSBpZD0iY2Vybi1sb2dvIj48YSBocmVmPSIvIiB0aXRsZT0iSG9tZSIgcmVsPSJob21lIj5DRVJOPC9hPjwvaDE+CisKKworPGRpdiBpZD0iaGVhZGVyLWNvbnRlbnQiPgorPGRpdiBpZD0ibmF2LWJhciI+Cis8bmF2IGlkPSJtYWluLW1lbnUiIHJvbGU9Im5hdmlnYXRpb24iPgorPGgyIGNsYXNzPSJlbGVtZW50LWludmlzaWJsZSI+TWFpbiBtZW51PC9oMj48dWwgaWQ9Im5hdiIgY2xhc3M9Im1lbnUiPjxsaSBjbGFzcz0ibWVudS00NjEgZmlyc3QiPjxhIGhyZWY9Ii9hYm91dCI+QWJvdXQgQ0VSTjwvYT48L2xpPgorPGxpIGNsYXNzPSJtZW51LTY3NSI+PGEgaHJlZj0iL3N0dWRlbnRzLWVkdWNhdG9ycyI+U3R1ZGVudHMgJmFtcDsgRWR1Y2F0b3JzPC9hPjwvbGk+Cis8bGkgY2xhc3M9Im1lbnUtNjczIj48YSBocmVmPSIvc2NpZW50aXN0cyI+U2NpZW50aXN0czwvYT48L2xpPgorPGxpIGNsYXNzPSJtZW51LTY3NCBsYXN0Ij48YSBocmVmPSIvY2Vybi1wZW9wbGUiPkNFUk4gcGVvcGxlPC9hPjwvbGk+Cis8L3VsPgorPC9uYXY+Cis8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWxhbmctc3dpdGNoIj4KKzxkaXYgaWQ9ImJsb2NrLWxvY2FsZS1sYW5ndWFnZSIgY2xhc3M9ImJsb2NrIGJsb2NrLWxvY2FsZSI+CisKKworPHVsIGNsYXNzPSJsYW5ndWFnZS1zd2l0Y2hlci1sb2NhbGUtdXJsIj48bGkgY2xhc3M9ImVuIGZpcnN0IGFjdGl2ZSI+PGEgaHJlZj0iLyIgY2xhc3M9Imxhbmd1YWdlLWxpbmsgYWN0aXZlIiBsYW5nPSJlbiI+RW5nbGlzaDwvYT48L2xpPgorPGxpIGNsYXNzPSJmciBsYXN0Ij48YSBocmVmPSIvZnIiIGNsYXNzPSJsYW5ndWFnZS1saW5rIiBsYW5nPSJmciI+RnJhbsOnYWlzPC9hPjwvbGk+Cis8L3VsPiAgCis8L2Rpdj4KKzwvZGl2PjwhLS0gLy5yZWdpb24gLS0+Cis8L2Rpdj4KKzwvZGl2PgorCisKKzwvaGVhZGVyPgorCis8ZGl2IGlkPSJtYWluIiByb2xlPSJtYWluIj4KKworPGEgaWQ9Im1haW4tY29udGVudCI+PC9hPgorCisKKzwhLS0gbm9kZS50cGwgZnJvbSBjZXJuX3B1YmxpYyBiZWdpbnMgLS0+CisKKworCisKKworCis8IS0tIC9ub2RlLnRwbCBmcm9tIGNlcm5fcHVibGljIGVuZHMgLS0+CisKKzxkaXYgY2xhc3M9InVwZGF0ZS1hcmVhIj4KKzxzZWN0aW9uIGlkPSJibG9jay1ibG9jay0xNiIgY2xhc3M9ImJsb2NrIGJsb2NrLWJsb2NrIj4KKworCis8aDI+Q0VSTiBVcGRhdGVzPC9oMj4KKworPC9zZWN0aW9uPgorPHNlY3Rpb24gaWQ9ImJsb2NrLXZpZXdzLTQxMjBkM2I0OGZkZDJmY2M1NjQ3NzYxMTI4MzZkMGYwIiBjbGFzcz0iYmxvY2sgYmxvY2stdmlld3MgYmxvY2stdXBkYXRlcy1zdGFuZGFyZCI+CisKKworPGRpdiBjbGFzcz0idmlldyB2aWV3LUhvbWVwYWdlLXVwZGF0ZXMtYmxvY2tzIHZpZXctaWQtSG9tZXBhZ2VfdXBkYXRlc19ibG9ja3Mgdmlldy1kaXNwbGF5LWlkLWJsb2NrX3VwZGF0ZXNfc3RhbmRhcmQgdmlldy1kb20taWQtYjU3N2I0NWJjMTllMjU3ZDQ0ODM0NmZmMWFlZTk0NTEiPgorCisKKworPGRpdiBjbGFzcz0idmlldy1jb250ZW50Ij4KKzxkaXYgY2xhc3M9Iml0ZW0tbGlzdCI+ICAgIDx1bD4gICAgICAgICAgPGxpIGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTEgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctZmlyc3QiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDEvdG9kYXktMTk3MS1maXJzdC1wcm90b24tcHJvdG9uLWNvbGxpc2lvbnMiPlRvZGF5IGluIDE5NzE6IEZpcnN0IHByb3Rvbi1wcm90b24gY29sbGlzaW9uczwvYT48c3BhbiBjbGFzcz0iZmllbGQtY29udGVudCI+MjcgSmFudWFyeTwvc3Bhbj4KKzwvbGk+Cis8bGkgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMiB2aWV3cy1yb3ctZXZlbiI+PGEgaHJlZj0iaHR0cDovL3d3dy5zeW1tZXRyeW1hZ2F6aW5lLm9yZy9hcnRpY2xlL2phbnVhcnktMjAxNC9mZXJtaWxhYi1maWxscy1pbi1mb3ItY2Vybi1kdXJpbmctYWNjZWxlcmF0b3Itc2h1dGRvd24iIHRpdGxlPSJWaXNpdCBleHRlcm5hbCB3ZWJzaXRlIj5MYWJzIHdvcmsgdG9nZXRoZXIgdG93YXJkIGhpZ2hlci1lbmVyZ3kgTEhDPC9hPjxzcGFuIGNsYXNzPSJmaWVsZC1jb250ZW50Ij4yNyBKYW51YXJ5PC9zcGFuPgorPC9saT4KKzxsaSBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDEvYW50aW1hdHRlci1leHBlcmltZW50LXByb2R1Y2VzLWZpcnN0LWJlYW0tYW50aWh5ZHJvZ2VuIj5BbnRpbWF0dGVyIGV4cGVyaW1lbnQgcHJvZHVjZXMgZmlyc3QgYmVhbSBvZiBhbnRpaHlkcm9nZW48L2E+PHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjIxIEphbnVhcnk8L3NwYW4+Cis8L2xpPgorPGxpIGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTQgdmlld3Mtcm93LWV2ZW4gdmlld3Mtcm93LWxhc3QiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDEvZmlmdHkteWVhcnMtcXVhcmtzIj5GaWZ0eSB5ZWFycyBvZiBxdWFya3M8L2E+PHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjE3IEphbnVhcnk8L3NwYW4+Cis8L2xpPgorPC91bD48L2Rpdj4gICAgPC9kaXY+CisKKworCisKKzxkaXYgY2xhc3M9Im1vcmUtbGluayI+Cis8YSBocmVmPSIvYWJvdXQvdXBkYXRlcyI+CitQYXN0IHVwZGF0ZXMgIDwvYT4KKzwvZGl2PgorCisKKworCisKKzwvZGl2PiAgCis8L3NlY3Rpb24+Cis8c2VjdGlvbiBpZD0iYmxvY2stc2VhcmNoLWZvcm0iIGNsYXNzPSJibG9jayBibG9jay1zZWFyY2giPgorCisKKzxmb3JtIGNsYXNzPSJzZWFyY2gtZm9ybSIgYWN0aW9uPSIvIiBtZXRob2Q9InBvc3QiIGlkPSJzZWFyY2gtYmxvY2stZm9ybSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04Ij48ZGl2PjxkaXYgY2xhc3M9ImNvbnRhaW5lci1pbmxpbmUiPgorPGgyIGNsYXNzPSJlbGVtZW50LWludmlzaWJsZSI+U2VhcmNoIGZvcm08L2gyPgorPGRpdiBjbGFzcz0iZm9ybS1pdGVtIGZvcm0tdHlwZS10ZXh0ZmllbGQgZm9ybS1pdGVtLXNlYXJjaC1ibG9jay1mb3JtIj4KKzxsYWJlbCBjbGFzcz0iZWxlbWVudC1pbnZpc2libGUiIGZvcj0iZWRpdC1zZWFyY2gtYmxvY2stZm9ybS0tMiI+U2VhcmNoIHRoaXMgc2l0ZSA8L2xhYmVsPgorPGlucHV0IHRpdGxlPSJFbnRlciB0aGUgdGVybXMgeW91IHdpc2ggdG8gc2VhcmNoIGZvci4iIGNsYXNzPSJjdXN0b20tc2VhcmNoLWJveCBmb3JtLXRleHQiIHBsYWNlaG9sZGVyPSIiIG9uYmx1cj0iaWYgKHRoaXMudmFsdWUgPT0gJiMwMzk7JiMwMzk7KSB7dGhpcy52YWx1ZSA9ICYjMDM5O1NlYXJjaCB0aGlzIHNpdGUmIzAzOTs7fSIgb25mb2N1cz0iaWYgKHRoaXMudmFsdWUgPT0gJiMwMzk7U2VhcmNoIHRoaXMgc2l0ZSYjMDM5Oykge3RoaXMudmFsdWUgPSAmIzAzOTsmIzAzOTs7fSIgdHlwZT0idGV4dCIgaWQ9ImVkaXQtc2VhcmNoLWJsb2NrLWZvcm0tLTIiIG5hbWU9InNlYXJjaF9ibG9ja19mb3JtIiB2YWx1ZT0iU2VhcmNoIHRoaXMgc2l0ZSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMTI4IiAvPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJmb3JtLWFjdGlvbnMgZm9ybS13cmFwcGVyIiBpZD0iZWRpdC1hY3Rpb25zIj48aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iZWRpdC1zdWJtaXQiIG5hbWU9Im9wIiB2YWx1ZT0iU2VhcmNoIiBjbGFzcz0iZm9ybS1zdWJtaXQiIC8+PC9kaXY+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9idWlsZF9pZCIgdmFsdWU9ImZvcm0tZ3FpdXpNelZYaTZ5NDNVZDRnZGtWNnVlZ1RobTlZUVo5LXFxeWU0N21iayIgLz4KKzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1faWQiIHZhbHVlPSJzZWFyY2hfYmxvY2tfZm9ybSIgLz4KKzwvZGl2PgorPC9kaXY+PC9mb3JtPiAgCis8L3NlY3Rpb24+Cis8L2Rpdj4KKworPC9kaXY+PCEtLSAvI21haW4gLS0+CisKKworPC9kaXY+PCEtLSAvI2JnLWltZyAtLT4KKworPGZvb3RlciBpZD0iZm9vdGVyIiByb2xlPSJjb250ZW50aW5mbyI+Cis8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWZvb3Rlci0yIj4KKzxkaXYgaWQ9ImJsb2NrLW1lbnUtbWVudS1nbG9iYWwtZm9vdGVyLW1lbnUtMiIgY2xhc3M9ImJsb2NrIGJsb2NrLW1lbnUiPgorCis8aDI+R2VuZXJhbCBpbmZvPC9oMj4KKworPHVsIGNsYXNzPSJtZW51Ij48bGkgY2xhc3M9ImZpcnN0IGxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL2pvYnMiIHRpdGxlPSIiPkpvYnM8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvb3V0cmVhY2giIHRpdGxlPSIiPlZpc2l0czwvYT48L2xpPgorPGxpIGNsYXNzPSJsYXN0IGxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL3ByZXNzIiB0aXRsZT0iIj5QcmVzczwvYT48L2xpPgorPC91bD4gIAorPC9kaXY+Cis8L2Rpdj48IS0tIC8ucmVnaW9uIC0tPgorPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1mb290ZXItMyI+Cis8ZGl2IGlkPSJibG9jay1tZW51LW1lbnUtZ2xvYmFsLWZvb3Rlci1tZW51LTMiIGNsYXNzPSJibG9jayBibG9jay1tZW51Ij4KKworPGgyPkNFUk4gJmFtcDsgeW91PC9oMj4KKworPHVsIGNsYXNzPSJtZW51Ij48bGkgY2xhc3M9ImZpcnN0IGxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL3Byb2N1cmVtZW50IiB0aXRsZT0iIj5Eb2luZyBidXNpbmVzcyB3aXRoIENFUk48L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gva25vd2xlZGdldHJhbnNmZXIiIHRpdGxlPSIiPktub3dsZWRnZSB0cmFuc2ZlcjwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9wcm9qZWN0LXZvaXNpbnMvIiB0aXRsZT0iIj5DRVJOJiMwMzk7cyBuZWlnaGJvdXJzPC9hPjwvbGk+Cis8bGkgY2xhc3M9Imxhc3QgbGVhZiI+PGEgaHJlZj0iL3BhcnRuZXJzaGlwcyIgdGl0bGU9IiI+UGFydG5lcnNoaXBzPC9hPjwvbGk+Cis8L3VsPiAgCis8L2Rpdj4KKzwvZGl2PjwhLS0gLy5yZWdpb24gLS0+Cis8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWZvb3Rlci01Ij4KKzxkaXYgaWQ9ImJsb2NrLWJsb2NrLTUiIGNsYXNzPSJibG9jayBibG9jay1ibG9jayI+CisKKzxoMj5Db250YWN0PC9oMj4KKworPHA+Q0VSTjxiciAvPgorQ0gtMTIxMSBHZW5ldmEgMjM8YnIgLz4KK1N3aXR6ZXJsYW5kPC9wPgorPHA+PGEgaHJlZj0iL2NvbnRhY3QiPkhvdyB0byByZWFjaCB1czwvYT48L3A+CisKKzwvZGl2PgorPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzxkaXYgY2xhc3M9InJlZ2lvbiByZWdpb24tZm9vdGVyLTQiPgorPGRpdiBpZD0iYmxvY2stbWVudS1tZW51LWdsb2JhbC1mb290ZXItbWVudS01IiBjbGFzcz0iYmxvY2sgYmxvY2stbWVudSI+CisKKzxoMj5Db25uZWN0IHdpdGggQ0VSTjwvaDI+CisKKzx1bCBjbGFzcz0ibWVudSI+PGxpIGNsYXNzPSJmaXJzdCBsZWFmIj48YSBocmVmPSJodHRwOi8vZmFjZWJvb2suY29tL2Nlcm4iIHRpdGxlPSIiPkZhY2Vib29rPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9jZXJuIiB0aXRsZT0iIj5Ud2l0dGVyPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK0NFUk4vIiB0aXRsZT0iIj5Hb29nbGUrPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly95b3V0dWJlLmNvbS9jZXJuIiB0aXRsZT0iIj5Zb3VUdWJlPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9pdHVuZXMuYXBwbGUuY29tL2luc3RpdHV0aW9uL2Nlcm4tZXVyb3BlYW4tb3JnYW5pemF0aW9uL2lkMzkwMTE4NjkyIiB0aXRsZT0iIj5pVHVuZXMgVTwvYT48L2xpPgorPGxpIGNsYXNzPSJsYXN0IGxlYWYiPjxhIGhyZWY9Ii9mZWVkcyIgdGl0bGU9IiI+RmVlZHM8L2E+PC9saT4KKzwvdWw+ICAKKzwvZGl2PgorPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzxkaXYgY2xhc3M9InJlZ2lvbiByZWdpb24tZm9vdGVyLTEiPgorPGRpdiBpZD0iYmxvY2stYmxvY2stNCIgY2xhc3M9ImJsb2NrIGJsb2NrLWJsb2NrIj4KKworCis8cD48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9jb3B5cmlnaHQiPsKpIENvcHlyaWdodCBDRVJOIDIwMTQ8L2E+PC9wPgorCisKKzxwPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL2Nlcm42MCI+PGltZyBhbHQ9IiIgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy91My9sb2dvLTYwLW5lZ2F0aWZfYTgwLnBuZyIgc3R5bGU9ImZsb2F0OnJpZ2h0IiAvPjwvYT48L3A+ICAKKzwvZGl2PgorPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzwvZm9vdGVyPgorCis8IS0tW2lmIGx0ZSBJRSA4XT48aW1nIGlkPSJiZyIgc3JjPSIiIC8+PCFbZW5kaWZdLS0+CisKKworPCEtLVtpZiAobHQgSUUgOSkgJiAoIUlFTW9iaWxlKV0+Cis8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9pbWdzaXplci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9zZWxlY3Rpdml6ci1taW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL3RoZW1lcy9jZXJuX2Jhc2UvanMvaWUvanF1ZXJ5LWV4dHJhLXNlbGVjdG9ycy5qcyI+PC9zY3JpcHQ+Cis8IVtlbmRpZl0tLT4KKworPCEtLSBQcm9tcHRzIGFsbCBJRTYgdXNlcnMgdG8gaW5zdGFsbCBHb29nbGUgQ2hyb21lZnJhbWUgLS0+Cis8IS0tW2lmIGx0IElFIDddPgorPHNjcmlwdCBzcmM9Imh0dHBzOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvY2hyb21lLWZyYW1lLzEvQ0ZJbnN0YWxsLm1pbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PkNGSW5zdGFsbC5jaGVjaygpOzwvc2NyaXB0PgorPCFbZW5kaWZdLS0+CisKKzxzY3JpcHQgc3JjPSJodHRwczovL2dldC5ncmlkc2V0YXBwLmNvbS8xMjUvb3ZlcmxheS8iPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CisKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2VyaWFsaXphdGlvbi9keC9leHBlY3RlZC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vZHgvZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDU3NmJiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vZHgvZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE2NDMgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj48aGVhZD48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvRFhSLmF4ZD9yPTJfMSwxXzQsMl8yLDFfMywxXzItaDR3UjciPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8vIDwhW0NEQVRBWwordmFyIElzTG9nZ2VkSW4gPSBmYWxzZTsgdmFyIElzRW1wbG95ZWUgPSBmYWxzZTsgdmFyIElzUG9zdGJhY2sgPSBmYWxzZTsgdmFyIFByZWZlcnJlZExhbmd1YWdlID0gJ3J1LVJVJworLy8gXV0+Cis8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvLyA8IVtDREFUQVsKK3ZhciBfd3NEYXRhID0geyJTZXR0aW5ncyI6eyJUcmFja2luZ0VuYWJsZWQiOnRydWV9LCJVc2VySW5mbyI6eyJJc0VtcGxveWVlIjpmYWxzZSwiSXNMb2dnZWRJbiI6ZmFsc2V9fTsKKy8vXV0+Cis8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvRFhSLmF4ZD9yPTk5OTlfMTctMEdXOTgiIGlkPSJkeC1qcXVlcnkiPjwvc2NyaXB0PjxsaW5rIGhyZWY9IkFwcF9UaGVtZXMvRFgvQ29tbW9uL2NvbW1vbi5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PGxpbmsgaHJlZj0iQXBwX1RoZW1lcy9EWC9Db21tb24vY29yZS5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PGxpbmsgaHJlZj0iQXBwX1RoZW1lcy9EWC9Db21tb24vdmlzdWFsLmNzcz93c0NhY2hlPTJfMF8xXzI4NTY1IiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0Ij48bGluayBocmVmPSJBcHBfVGhlbWVzL0RYL0VkaXRvcnMvc3R5bGVzLmNzcz93c0NhY2hlPTJfMF8xXzI4NTY1IiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0Ij48bGluayBocmVmPSJBcHBfVGhlbWVzL0RYL1dlYi9zdHlsZXMuY3NzP3dzQ2FjaGU9Ml8wXzFfMjg1NjUiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiPjx0aXRsZT4KK0RldkV4cHJlc3M6IFVJIENvbnRyb2xzLCBSZXBvcnRpbmcsIERldmVsb3BlciBUb29scyBhbmQgT1JNCis8L3RpdGxlPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD0xMjA1Ij48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TdHlsZS1UeXBlIiBjb250ZW50PSJ0ZXh0L2NzcyI+PG1ldGEgbmFtZT0idmVyaWZ5LXYxIiBjb250ZW50PSJLTlFlTTFnOW1LTktlSUMwTnhsaVczM2hBVXJ5Ym9GZldWYzdFVTFHTUg4PSI+PG1ldGEgaHR0cC1lcXVpdj0iaW1hZ2V0b29sYmFyIiBjb250ZW50PSJubyI+PG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJOT09EUCI+PG1ldGEgaWQ9InNoYXJlSW1hZ2UiIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vRFhSLmF4ZD9yPTk5OTlfMTUtMEdXOTgiPjxsaW5rIGlkPSJmYXZJY29uMSIgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Ii9mYXZpY29uLmljbz92PTIiPjxsaW5rIGlkPSJmYXZJY29uMiIgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Ii9mYXZpY29uLmljbz92PTIiPjxsaW5rIGlkPSJpUGhvbmVJY29uIiByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL2kvaXBob25lLnBuZyI+PGxpbmsgaHJlZj0iQXBwX1RoZW1lcy9XUy9Db21tb24vV2ViU2l0ZS5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PGxpbmsgaHJlZj0iQXBwX1RoZW1lcy9XUy9QbHVnaW5zL3RuMy9keElubGluZS5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PGxpbmsgaHJlZj0iQXBwX1RoZW1lcy9XUy9XZWIvc3R5bGVzLmNzcz93c0NhY2hlPTJfMF8xXzI4NTY1IiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0Ij48bGluayBocmVmPSIvRFhSLmF4ZD9yPTk5OTlfMS0wR1c5OCIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIF9nYXEgPSBfZ2FxIHx8IFtdOworX2dhcS5wdXNoKFsnX3JlcXVpcmUnLCAnaW5wYWdlX2xpbmtpZCcsICcvL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9wbHVnaW5zL2dhL2lucGFnZV9saW5raWQuanMnXSk7CitfZ2FxLnB1c2goWydfc2V0QWNjb3VudCcsICdVQS0xMzg0Njc4LTEnXSk7CitfZ2FxLnB1c2goWydfc2V0RG9tYWluTmFtZScsICcuZGV2ZXhwcmVzcy5jb20nXSk7CitfZ2FxLnB1c2goWydfc2V0Q3VzdG9tVmFyJywgMSwgJ1Zpc2l0b3JTdGF0dXMnLCAnU2lnbmVkT3V0J10pOworX2dhcS5wdXNoKFsnX3RyYWNrUGFnZXZpZXcnXSk7CisKKyhmdW5jdGlvbigpIHsKK3ZhciBnYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyBnYS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IGdhLmFzeW5jID0gdHJ1ZTsKK2dhLnNyYyA9ICgnaHR0cHM6JyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/ICdodHRwczovL3NzbCcgOiAnaHR0cDovL3d3dycpICsgJy5nb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcyc7Cit2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYSwgcyk7Cit9KSgpOworPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIF9raXEgPSBfa2lxIHx8IFtdOworX2tpcS5wdXNoKFsnc2V0JywgeyAnU2lnbmVkSW4nOiAnZmFsc2UnLCB9XSk7Cis8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20va2kuanMvNDc3NzYvOUtGLmpzP3dzQ2FjaGU9Ml8wXzFfMjg1NjUiIGFzeW5jPSJ0cnVlIj48L3NjcmlwdD48bGluayBocmVmPSIvaG9tZS9Ib21lQ3VzdG9tQ29udGVudC9zdHlsZXMtMy5jc3M/d3NDYWNoZT02MzUyNTU1MTg0NzI0MjU1NTMiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiPjxsaW5rIGhyZWY9Ii9jc3MvY3NzLmNzcz93c0NhY2hlPTYzNTI1OTA5NzYwMjY2NDgwMCIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkRldkV4cHJlc3M6IEZlYXR1cmUtQ29tcGxldGUgVUkgQ29udHJvbHMsIElERSBUb29scywgYW5kIEJ1c2luZXNzIEFwcGxpY2F0aW9uIEZyYW1ld29ya3MgZm9yIFZpc3VhbCBTdHVkaW8sIERlbHBoaSBhbmQgQysrQnVpbGRlciI+PG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJEZXZlbG9wZXIgRXhwcmVzcyBJbmMuIj48bWV0YSBuYW1lPSJjb3B5cmlnaHQiIGNvbnRlbnQ9IkNvcHlyaWdodCAoYykgMTk5OC0yMDE0IERldmVsb3BlciBFeHByZXNzIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iPjxtZXRhIG5hbWU9ImRpc3RyaWJ1dGlvbiIgY29udGVudD0iR2xvYmFsIj48bWV0YSBuYW1lPSJyYXRpbmciIGNvbnRlbnQ9IkdlbmVyYWwiPjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9ImVuIj48bGluayBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9yc3MvbmV3cy9uZXdzMjAueG1sIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkRldmVsb3BlciBFeHByZXNzIE5ld3MiPjwvaGVhZD4KKzxib2R5PgorPGZvcm0gbmFtZT0iYXNwbmV0Rm9ybSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249IiIgaWQ9ImFzcG5ldEZvcm0iPgorPGRpdj4KKzxpbnB1dCB0eXBlPSJoaWRkZW4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBuYW1lPSJfX0VWRU5UVEFSR0VUIiBpZD0iX19FVkVOVFRBUkdFVCIgdmFsdWU9IiI+Cis8aW5wdXQgdHlwZT0iaGlkZGVuIiBhdXRvY29tcGxldGU9Im9mZiIgbmFtZT0iX19FVkVOVEFSR1VNRU5UIiBpZD0iX19FVkVOVEFSR1VNRU5UIiB2YWx1ZT0iIj4KKzxpbnB1dCB0eXBlPSJoaWRkZW4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBuYW1lPSJfX1ZTVEFURSIgaWQ9Il9fVlNUQVRFIiB2YWx1ZT0iL3dFUEdBRUZIbDlmUTI5dWRISnZiSE5TWlhGMWFYSmxVRzl6ZEVKaFkydExaWGxmWHhZQkJSOWpkR3d3TUNSUWIzTjBRMjl1ZEdWdWRDUmpkR3d5TnlSM2MxQnZjSFZ3RHdVS01URXpOelkxT0RZeE4yUT0iPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgYXV0b2NvbXBsZXRlPSJvZmYiIG5hbWU9Il9fVklFV1NUQVRFIiBpZD0iX19WSUVXU1RBVEUiIHZhbHVlPSIiPgorPC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8vPCFbQ0RBVEFbCit2YXIgdGhlRm9ybSA9IGRvY3VtZW50LmZvcm1zWydhc3BuZXRGb3JtJ107CitpZiAoIXRoZUZvcm0pIHsKK3RoZUZvcm0gPSBkb2N1bWVudC5hc3BuZXRGb3JtOworfQorZnVuY3Rpb24gX19kb1Bvc3RCYWNrKGV2ZW50VGFyZ2V0LCBldmVudEFyZ3VtZW50KSB7CitpZiAoIXRoZUZvcm0ub25zdWJtaXQgfHwgKHRoZUZvcm0ub25zdWJtaXQoKSAhPSBmYWxzZSkpIHsKK3RoZUZvcm0uX19FVkVOVFRBUkdFVC52YWx1ZSA9IGV2ZW50VGFyZ2V0OwordGhlRm9ybS5fX0VWRU5UQVJHVU1FTlQudmFsdWUgPSBldmVudEFyZ3VtZW50OwordGhlRm9ybS5zdWJtaXQoKTsKK30KK30KKy8vXV0+Cis8L3NjcmlwdD4KKworCis8c2NyaXB0IHNyYz0iL1dlYlJlc291cmNlLmF4ZD9kPWJxQ2JfaDdPWWxCSFdKSVI3UEpOSlVtbTRvWWhhVGdMN2RzVW85VjFDYUtobVpVVkZOYkVYUnNqOVllb1FMamlWNFlfMUZFUUU2dE9UbElDeTEyZVk4RnhTYXcxJmFtcDt0PTYzNTA4OTc0MzQ4MDAwMDAwMCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKworCis8c2NyaXB0IHNyYz0iL0RYUi5heGQ/cj05OTk5XzAtMEdXOTgiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL0h5cGVyQ3ViZS9zY3JpcHRzLmpzP3dzQ2FjaGU9Ml8wXzFfMjg1NjUiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL0h5cGVyQ3ViZS90cmFja2luZ1NjcmlwdHMuanM/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKworPGRpdiBpZD0iSGVhZGVyIiBjbGFzcz0iVE9DdjMiPgorPGRpdiBjbGFzcz0iVG9wQmFyIEdyZXlCYXIiPgorPGRpdiBjbGFzcz0iQ29udGVudCI+Cis8c2NyaXB0IGlkPSJkeGlzXzk5MjUwMzEyNSIgc3JjPSIvRFhSLmF4ZD9yPTFfNDQsMV83NiwxXzY5LDFfNjcsMV80My1oNHdSNyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48YSBjbGFzcz0icC1mLXJpZ2h0IiBpZD0iY3RsMDBfVE9DU2lnbkluIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9NeUFjY291bnQvP3JldHVyblVybD1odHRwcyUzYSUyZiUyZnd3dy5kZXZleHByZXNzLmNvbSUyZiI+TG9nIEluPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGlkPSJUT0NCYXIiIGNsYXNzPSJNYWluTWVudUJhciBGdWxsQ29udGVudCI+Cis8ZGl2IGlkPSJUb29sYmFyIiBjbGFzcz0iVG9vbGJhciI+Cis8YSBpZD0iY3RsMDBfVE9DLUNhcnQiIHRpdGxlPSJTaG9wcGluZyBDYXJ0IiBjbGFzcz0iSXRlbSBDYXJ0IEVtcHR5IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9DbGllbnRDZW50ZXIvUHVyY2hhc2UvIj48c3Bhbj4wPC9zcGFuPjwvYT48YSBpZD0iY3RsMDBfVE9DLUJsb2dzIiB0aXRsZT0iQmxvZ3MiIGNsYXNzPSJJdGVtIEJsb2ciIGhyZWY9Imh0dHBzOi8vY29tbXVuaXR5LmRldmV4cHJlc3MuY29tL2Jsb2dzLyI+PC9hPjxkaXYgY2xhc3M9Ikl0ZW0gU2VhcmNoIj4KKzxkaXYgY2xhc3M9IkNhbGxvdXQgSG92ZXIiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJTdWJNZW51QmFjayBIb3ZlciI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IlNlYXJjaEJveCI+Cis8aW5wdXQgaWQ9InRiU2l0ZVNlYXJjaCIgY2xhc3M9IlRleHRCb3giIHZhbHVlPSJUeXBlIGtleXdvcmRzIGhlcmUiIHR5cGU9InRleHQiIGF1dG9jb21wbGV0ZT0ib2ZmIj48aW5wdXQgaWQ9ImJ0blNpdGVTZWFyY2giIGNsYXNzPSJCdXR0b25TZWFyY2giIHR5cGU9ImJ1dHRvbiI+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIF93c1Rvb2xCYXIgPSBuZXcgX3dzVG9vbEJhckNvbnRyb2xsZXIoKTsKK3dpbmRvdy5TZWFyY2hTZXJ2aWNlVXJsID0gJ2h0dHA6Ly9zZWFyY2guZGV2ZXhwcmVzcy5jb20vP3E9JworPC9zY3JpcHQ+Cis8L2Rpdj48dWwgaWQ9IlRPQ3YzTWVudSIgY2xhc3M9Ik1haW5NZW51Ij4KKzxsaSBjbGFzcz0iSXRlbSI+PHNwYW4gY2xhc3M9Ikl0ZW1UaXRsZSI+UHJvZHVjdHM8L3NwYW4+PGRpdiBjbGFzcz0iU2VwYXJhdG9yIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2FsbG91dCBIb3ZlciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IlN1Yk1lbnUgSG92ZXIiPgorPGRpdiBjbGFzcz0iU3ViTWVudUNvbnRhaW5lciI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IlByb2R1Y3RzIFN1aXRlcyI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK1N1aXRlcworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitCRVNUIFZBTFVFCis8L2Rpdj48ZGl2IGNsYXNzPSJCZXN0VmFsdWVJdGVtIj4KKzxkaXYgY2xhc3M9IkNoaWNrbGV0IFUiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtQmVzdFZhbHVlVSIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy9Vbml2ZXJzYWwueG1sIj5Vbml2ZXJzYWw8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1EZXNjcmlwdGlvbiI+CisoaW5jbHVkZXMgYWxsIERldkV4cHJlc3MgLk5FVCBwcm9kdWN0cyBpbiBvbmUgaW50ZWdyYXRlZCBzdWl0ZSkKKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iQmVzdFZhbHVlSXRlbSI+Cis8ZGl2IGNsYXNzPSJDaGlja2xldCBEWFAiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtQmVzdFZhbHVlRFhQIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdWJzY3JpcHRpb25zL0RYcGVyaWVuY2UueG1sIj5EWHBlcmllbmNlPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtRGVzY3JpcHRpb24iPgorKGluY2x1ZGVzIGFsbCBEZXZFeHByZXNzIC5ORVQgQ29udHJvbHMgYWxvbmcgd2l0aCBDb2RlUnVzaCkKKzwvZGl2PgorPC9kaXY+PGEgaWQ9ImN0bDAwX1RPQy1CZXN0VmFsdWVDb21wYXJlIiBjbGFzcz0iQ29tcGFyZSIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy8iPjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IlByb2R1Y3RzIEdyb3VwQnJlYWsgRnVsbCBORVRQcm9kdWN0cyI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KKy5ORVQgUHJvZHVjdHMKKzwvZGl2PjxkaXYgY2xhc3M9IkZpcnN0Q29sdW1uIj4KKzxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorSU5ESVZJRFVBTCBQTEFURk9STVMKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzV2luRm9ybXMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9XaW5Gb3Jtcy8iIHRhcmdldD0iX3NlbGYiPldpbkZvcm1zPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNBU1AiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvIiB0YXJnZXQ9Il9zZWxmIj5BU1AuTkVUPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNBU1BNVkMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvTVZDLyIgdGFyZ2V0PSJfc2VsZiI+TVZDPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNXUEYiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9XUEYvIiB0YXJnZXQ9Il9zZWxmIj5XUEY8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRDb250cm9sc1NpbHZlcmxpZ2h0IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvU2lsdmVybGlnaHQvIiB0YXJnZXQ9Il9zZWxmIj5TaWx2ZXJsaWdodDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzV2luUlQiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9XaW5SVC8iIHRhcmdldD0iX3NlbGYiPldpbmRvd3MgOCBYQU1MPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlCcmVhayI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorRlJBTUVXT1JLUworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQXBwbGljYXRpb25fRnJhbWV3b3JrIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQXBwbGljYXRpb25fRnJhbWV3b3JrLyIgdGFyZ2V0PSJfc2VsZiI+ZVhwcmVzc0FwcCBGcmFtZXdvcms8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUJyZWFrIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitDT0RFLURFQlVHLVJFRkFDVE9SCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNDb2RlUnVzaCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvQ29kZVJ1c2gvIiB0YXJnZXQ9Il9zZWxmIj5Db2RlUnVzaCBmb3IgVmlzdWFsIFN0dWRpbzwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iU2Vjb25kQ29sdW1uIj4KKzxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorTU9CSUxFIChIVE1MIEpTKQorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzSFRNTEpTIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9IVE1MLUpTLyIgdGFyZ2V0PSJfc2VsZiI+RGV2RXh0cmVtZTwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5QnJlYWsiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0NST1NTLVBMQVRGT1JNCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtU3Vic2NyaXB0aW9uc1JlcG9ydGluZyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy9SZXBvcnRpbmcvIiB0YXJnZXQ9Il9zZWxmIj5SZXBvcnRpbmc8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVREb2N1bWVudFNlcnZlciIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0RvY3VtZW50LVNlcnZlci8iIHRhcmdldD0iX3NlbGYiPkRvY3VtZW50IEdlbmVyYXRpb248L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUJyZWFrIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitFTlRFUlBSSVNFIFRPT0xTCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRSZXBvcnRTZXJ2ZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9SZXBvcnQtU2VydmVyLyIgdGFyZ2V0PSJfc2VsZiI+UmVwb3J0IFNlcnZlcjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVERhc2hib2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0Rhc2hib2FyZC8iIHRhcmdldD0iX3NlbGYiPkFuYWx5dGljcyBEYXNoYm9hcmQ8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUJyZWFrIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSBEdW1teSI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1TdWJzY3JpcHRpb25zTmV3MjAxM3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy9OZXctMjAxMy54bWwiIHRhcmdldD0iX3NlbGYiPlNlZSBXaGF0J3MgTmV3IGluIDIwMTM8L2E+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iUHJvZHVjdHMgR3JvdXBCcmVhayBPdGhlciI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK0hUTUwgSmF2YVNjcmlwdCBQcm9kdWN0cworPC9kaXY+PGRpdiBjbGFzcz0iRmlyc3RDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitNT0JJTEUKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwcGhvbmVqc2RldmV4cHJlc3Njb20iIGhyZWY9Imh0dHBzOi8vcGhvbmVqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5QaG9uZSBKUzwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iU2Vjb25kQ29sdW1uIj4KKzxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorSFRNTCA1IEpTIFdJREdFVFMKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwY2hhcnRqc2RldmV4cHJlc3Njb20iIGhyZWY9Imh0dHBzOi8vY2hhcnRqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5DaGFydCBKUzwvYT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJQcm9kdWN0cyBHcm91cEJyZWFrIE90aGVyIj4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorVGVzdGluZyBUb29scworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitXRUIgVEVTVElORworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHB0ZXN0Y2FmZWRldmV4cHJlc3Njb20iIGhyZWY9Imh0dHBzOi8vdGVzdGNhZmUuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+VGVzdENhZsOpPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJQcm9kdWN0cyBHcm91cEJyZWFrIE90aGVyIj4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorRGVscGhpICZhbXA7IEMrK0J1aWxkZXIgUHJvZHVjdHMKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorREVMUEhJICZhbXA7IEMrK0JVSUxERVIKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c1ZDTCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvVkNMLyIgdGFyZ2V0PSJfc2VsZiI+VkNMPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9saT48bGkgY2xhc3M9Ikl0ZW0iPjxzcGFuIGNsYXNzPSJJdGVtVGl0bGUiPkZyZWUgVHJpYWxzICZhbXA7IERlbW9zPC9zcGFuPjxkaXYgY2xhc3M9IlNlcGFyYXRvciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhbGxvdXQgSG92ZXIiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJTdWJNZW51IEhvdmVyIj4KKzxkaXYgY2xhc3M9IlN1Yk1lbnVDb250YWluZXIiPgorPGRpdiBjbGFzcz0iQ29udGVudCI+Cis8ZGl2IGNsYXNzPSJEb3dubG9hZHMgVHJpYWwiPgorPGRpdiBjbGFzcz0iRnJlZVRyaWFsIj4KKworPC9kaXY+PGEgaWQ9ImN0bDAwX1RPQy1Eb3dubG9hZFRyaWFsIiBjbGFzcz0iRG93bmxvYWQiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvdHJ5LnhtbCI+PC9hPjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbURlc2NyaXB0aW9uIFRyaWFsRG93bmxvYWREZXNjcmlwdGlvbiI+CisoaW5jbHVkZXMgYWxsIERldkV4cHJlc3MgLk5FVCBwcm9kdWN0cyBhbmQgZnJlZSB0ZWNobmljYWwgc3VwcG9ydCkKKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iRG93bmxvYWRzIEdyb3VwQnJlYWsgRnVsbCI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KKy5ORVQgUHJvZHVjdCBEZW1vcworPC9kaXY+PGRpdiBjbGFzcz0iRmlyc3RDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitCWSBQTEFURk9STVMKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzV2luRm9ybXNkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+V2luRm9ybXM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRDb250cm9sc0FTUGRlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvQVNQL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+QVNQLk5FVDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzQVNQTVZDZGVtb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvTVZDL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+TVZDPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNXUEZkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dQRi9kZW1vcy54bWwiIHRhcmdldD0iX3NlbGYiPldQRjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzU2lsdmVybGlnaHRkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1NpbHZlcmxpZ2h0L2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+U2lsdmVybGlnaHQ8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRDb250cm9sc1dpblJUZGVtb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9XaW5SVC9kZW1vcy54bWwiIHRhcmdldD0iX3NlbGYiPldpbmRvd3MgOCBYQU1MPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlCcmVhayI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorQ1JPU1MtUExBVEZPUk0KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1TdWJzY3JpcHRpb25zUmVwb3J0aW5nZGVtb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1YnNjcmlwdGlvbnMvUmVwb3J0aW5nL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+UmVwb3J0aW5nPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVURG9jdW1lbnRTZXJ2ZXJkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0RvY3VtZW50LVNlcnZlci9kZW1vcy54bWwiIHRhcmdldD0iX3NlbGYiPkRvY3VtZW50IEdlbmVyYXRpb248L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUJyZWFrIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJTZWNvbmRDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitNT0JJTEUgKEhUTUwgSlMpCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNIVE1MSlNkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvSFRNTC1KUy9kZW1vcy54bWwiIHRhcmdldD0iX3NlbGYiPkRldkV4dHJlbWU8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUJyZWFrIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitFTlRFUlBSSVNFIFRPT0xTCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRSZXBvcnRTZXJ2ZXJkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL1JlcG9ydC1TZXJ2ZXIvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5SZXBvcnQgU2VydmVyPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVURGFzaGJvYXJkZGVtb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9EYXNoYm9hcmQvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5BbmFseXRpY3MgRGFzaGJvYXJkPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayBEdW1teSI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5QnJlYWsiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0ZSQU1FV09SS1MKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVEFwcGxpY2F0aW9uX0ZyYW1ld29ya2RlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQXBwbGljYXRpb25fRnJhbWV3b3JrL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+ZVhwcmVzc0FwcCBGcmFtZXdvcms8L2E+Cis8L2Rpdj48YSBpZD0iY3RsMDBfVE9DLVZpZXdBbGxEZW1vcyIgY2xhc3M9IlZpZXdBbGxEZW1vcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9EZW1vcy8iPjwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iRG93bmxvYWRzIEdyb3VwQnJlYWsgT3RoZXIiPgorPGRpdiBjbGFzcz0iR3JvdXBUaXRsZSI+CitIVE1MIEphdmEgU2NyaXB0IERvd25sb2FkcworPC9kaXY+PGRpdiBjbGFzcz0iRmlyc3RDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitNT0JJTEUKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwcGhvbmVqc2RldmV4cHJlc3Njb20tMSIgaHJlZj0iaHR0cHM6Ly9waG9uZWpzLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPlBob25lIEpTPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJTZWNvbmRDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitIVE1MIDUgSlMgV0lER0VUUworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBjaGFydGpzZGV2ZXhwcmVzc2NvbS0xIiBocmVmPSJodHRwczovL2NoYXJ0anMuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+Q2hhcnQgSlM8L2E+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iRG93bmxvYWRzIEdyb3VwQnJlYWsgT3RoZXIiPgorPGRpdiBjbGFzcz0iR3JvdXBUaXRsZSI+CitUZXN0aW5nIFRvb2xzIERvd25sb2FkcworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitXRUIgVEVTVElORworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHB0ZXN0Y2FmZWRldmV4cHJlc3Njb20tMSIgaHJlZj0iaHR0cHM6Ly90ZXN0Y2FmZS5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5UZXN0Q2Fmw6k8L2E+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IkRvd25sb2FkcyBHcm91cEJyZWFrIE90aGVyIj4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorRGVscGhpICZhbXA7IEMrK0J1aWxkZXIgRG93bmxvYWRzCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0NPTlRST0xTCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNWQ0xkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvVkNML2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+VkNMPC9hPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2xpPjxsaSBjbGFzcz0iSXRlbSI+PHNwYW4gY2xhc3M9Ikl0ZW1UaXRsZSI+QnV5PC9zcGFuPjxkaXYgY2xhc3M9IlNlcGFyYXRvciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhbGxvdXQgSG92ZXIiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJTdWJNZW51IEhvdmVyIj4KKzxkaXYgY2xhc3M9IlN1Yk1lbnVDb250YWluZXIiPgorPGRpdiBjbGFzcz0iQ29udGVudCI+Cis8ZGl2IGNsYXNzPSJCdXkiPgorPHRhYmxlIGNsYXNzPSJCaWdJY29uSXRlbXMiIGJvcmRlcj0iMCI+Cis8dGJvZHk+PHRyPgorPHRkPjxhIGlkPSJjdGwwMF9UT0MtU3Vic2NyaXB0aW9ucyIgY2xhc3M9Ikljb24gQ29tcGFyZSIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy8iPjxzcGFuPjwvc3Bhbj5Db21wYXJlIEZlYXR1cmVzPGJyPmFuZCBQcmljaW5nPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3Vic2NyaXB0aW9uc2J1eXhtbCIgY2xhc3M9Ikljb24gQnV5IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdWJzY3JpcHRpb25zL2J1eS54bWwiPjxzcGFuPjwvc3Bhbj5CdXkgYSBOZXc8YnI+UHJvZHVjdCBTdWJzY3JpcHRpb248L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1DbGllbnRDZW50ZXJQdXJjaGFzZVVwZ3JhZGVzIiBjbGFzcz0iSWNvbiBSZW5ldyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vQ2xpZW50Q2VudGVyL1B1cmNoYXNlLyNVcGdyYWRlcyI+PHNwYW4+PC9zcGFuPlJlbmV3IGFuPGJyPkV4aXN0aW5nIFN1YnNjcmlwdGlvbjwvYT48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT48ZGl2IGNsYXNzPSJCaWdEZXNjcmlwdGlvbiI+CitOZWVkIGhlbHAgb3IgcmVxdWlyZSBtb3JlIGluZm9ybWF0aW9uPzxicj5FbWFpbCB1cyBhdCA8YSBocmVmPSJtYWlsdG86aW5mb0BkZXZleHByZXNzLmNvbSI+aW5mb0BkZXZleHByZXNzLmNvbTwvYT4gb3IgY2FsbCArMSAoODE4KSA4NDQtMzM4MyBiZXR3ZWVuIDc6MzBBTSBhbmQgNDozMFBNIFBhY2lmaWMgVGltZS4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9saT48bGkgY2xhc3M9Ikl0ZW0iPjxzcGFuIGNsYXNzPSJJdGVtVGl0bGUiPlN1cHBvcnQ8L3NwYW4+PGRpdiBjbGFzcz0iU2VwYXJhdG9yIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2FsbG91dCBIb3ZlciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IlN1Yk1lbnUgSG92ZXIiPgorPGRpdiBjbGFzcz0iU3ViTWVudUNvbnRhaW5lciI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IlN1cHBvcnQgTGVmdCI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK1N1cHBvcnQgQ2VudGVyCis8L2Rpdj48dGFibGUgY2xhc3M9IkJpZ0ljb25JdGVtcyIgYm9yZGVyPSIwIj4KKzx0Ym9keT48dHI+Cis8dGQ+PGEgaWQ9ImN0bDAwX1RPQy1TdXBwb3J0Q2VudGVyIiBjbGFzcz0iSWNvbiBLQiIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9DZW50ZXIvIj48c3Bhbj48L3NwYW4+U2VhcmNoIHRoZSBLQjwvYT48L3RkPjx0ZD48YSBpZD0iY3RsMDBfVE9DLVN1cHBvcnRDZW50ZXJRdWVzdGlvbkNoYW5nZUZpbHRlclNldDFGYXZvcml0ZXNPbmx5RmFsc2VNeUl0ZW1zT25seVRydWVNeVRlYW1JdGVtc09ubHlGYWxzZVBsYXRmb3JtTmFtZUFsbFBsYXRmb3Jtc1Byb2R1Y3ROYW1lQWxsUHJvZHVjdHNUaWNrZXRUeXBlQWxsIiBjbGFzcz0iSWNvbiBRIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0NlbnRlci9RdWVzdGlvbi9DaGFuZ2VGaWx0ZXJTZXQvMT9GYXZvcml0ZXNPbmx5PUZhbHNlJmFtcDtNeUl0ZW1zT25seT1UcnVlJmFtcDtNeVRlYW1JdGVtc09ubHk9RmFsc2UmYW1wO1BsYXRmb3JtTmFtZT1BbGxQbGF0Zm9ybXMmYW1wO1Byb2R1Y3ROYW1lPUFsbFByb2R1Y3RzJmFtcDtUaWNrZXRUeXBlPUFsbCI+PHNwYW4+PC9zcGFuPk15IFF1ZXN0aW9uczwvYT48L3RkPjx0ZD48YSBpZD0iY3RsMDBfVE9DLVN1cHBvcnRDZW50ZXJFeGFtcGxlTGlzdCIgY2xhc3M9Ikljb24gRXhhbXBsZXMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvQ2VudGVyL0V4YW1wbGUvTGlzdCI+PHNwYW4+PC9zcGFuPkNvZGUgRXhhbXBsZXM8L2E+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJTdXBwb3J0Ij4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorUmVzb3VyY2VzCis8L2Rpdj48dGFibGUgY2xhc3M9IkJpZ0ljb25JdGVtcyIgYm9yZGVyPSIwIj4KKzx0Ym9keT48dHI+Cis8dGQ+PGEgaWQ9ImN0bDAwX1RPQy1TdXBwb3J0U3RhcnQiIGNsYXNzPSJJY29uIEdldFN0YXJ0ZWQiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvU3RhcnQvIj48c3Bhbj48L3NwYW4+R2V0dGluZyBTdGFydGVkPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtaHR0cGRvY3VtZW50YXRpb25kZXZleHByZXNzY29tIiBjbGFzcz0iSWNvbiBEb2MiIGhyZWY9Imh0dHBzOi8vZG9jdW1lbnRhdGlvbi5kZXZleHByZXNzLmNvbS8iPjxzcGFuPjwvc3Bhbj5Eb2N1bWVudGF0aW9uPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3VwcG9ydERlbW9zIiBjbGFzcz0iSWNvbiBEZW1vcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9EZW1vcy8iPjxzcGFuPjwvc3Bhbj5EZW1vczwvYT48L3RkPjx0ZD48YSBjbGFzcz0iSWNvbiBUcmFpbmluZyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9UcmFpbmluZy8iPjxzcGFuPjwvc3Bhbj5UcmFpbmluZzwvYT48ZGl2IGNsYXNzPSJJY29uIEFycm93Ij4KKzxzcGFuPjxkaXY+CitOZXcgVHJhaW5pbmc8YnI+Q2xhc3NlcyBBbm5vdW5jZWQKKzwvZGl2Pjwvc3Bhbj4KKzwvZGl2PjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3VwcG9ydFdlYmluYXJzIiBjbGFzcz0iSWNvbiBXZWJpbmFycyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9XZWJpbmFycy8iPjxzcGFuPjwvc3Bhbj5XZWJpbmFyczwvYT48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvbGk+PGxpIGNsYXNzPSJJdGVtIj48c3BhbiBjbGFzcz0iSXRlbVRpdGxlIj5NeSBBY2NvdW50PC9zcGFuPjxkaXYgY2xhc3M9IlNlcGFyYXRvciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhbGxvdXQgSG92ZXIiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJTdWJNZW51IEhvdmVyIj4KKzxkaXYgY2xhc3M9IlN1Yk1lbnVDb250YWluZXIiPgorPGRpdiBjbGFzcz0iQ29udGVudCI+Cis8ZGl2IGNsYXNzPSJNeUFjY291bnQiPgorPHRhYmxlIGNsYXNzPSJCaWdJY29uSXRlbXMiIGJvcmRlcj0iMCI+Cis8dGJvZHk+PHRyPgorPHRkPjxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tTXlBY2NvdW50IiBjbGFzcz0iSWNvbiBNYW5hZ2VBY2NvdW50IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9NeUFjY291bnQvIj48c3Bhbj48L3NwYW4+TWFuYWdlPGJyPllvdXIgUHJvZmlsZTxkaXYgY2xhc3M9IlN1YkRlc2NyaXB0aW9uIj4KK0NoYW5nZSB5b3VyIGFkZHJlc3M8YnI+ZW1haWwgYW5kIHBhc3N3b3JkCis8L2Rpdj48L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21DbGllbnRDZW50ZXJDb250YWN0c0RlZmF1bHRhc3B4IiBjbGFzcz0iSWNvbiBNYW5hZ2VMaWNlbnNlcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vQ2xpZW50Q2VudGVyL0NvbnRhY3RzL0RlZmF1bHQuYXNweCI+PHNwYW4+PC9zcGFuPkFzc2lnbiA8YnI+TGljZW5zZXM8ZGl2IGNsYXNzPSJTdWJEZXNjcmlwdGlvbiI+CitNYW5hZ2UgbGljZW5zZXM8YnI+Zm9yIHlvdXIgZGV2IHRlYW0KKzwvZGl2PjwvYT48L3RkPjx0ZD48YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUNsaWVudENlbnRlclB1cmNoYXNlVXBncmFkZXMiIGNsYXNzPSJJY29uIFJlbmV3IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9DbGllbnRDZW50ZXIvUHVyY2hhc2UvI1VwZ3JhZGVzIj48c3Bhbj48L3NwYW4+UmVuZXcgYW48YnI+RXhpc3RpbmcgU3Vic2NyaXB0aW9uPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tQ2xpZW50Q2VudGVyUHVyY2hhc2VIaXN0b3J5YXNweCIgY2xhc3M9Ikljb24gUHVyY2hhc2VIaXN0b3J5IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9DbGllbnRDZW50ZXIvUHVyY2hhc2VIaXN0b3J5LmFzcHgiPjxzcGFuPjwvc3Bhbj5QdXJjaGFzZTxicj5IaXN0b3J5PGRpdiBjbGFzcz0iU3ViRGVzY3JpcHRpb24iPgorTmV3IG9yZGVyIHN0YXR1czxicj5hbmQgcHJldmlvdXMgcHVyY2hhc2VzCis8L2Rpdj48L2E+PC90ZD48dGQgY2xhc3M9IlNlcGFyYXRvciI+PC90ZD48dGQgY2xhc3M9Ikxhc3QiPjxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tQ2xpZW50Q2VudGVyRG93bmxvYWRzRG93bmxvYWRNYW5hZ2VyIiBjbGFzcz0iSWNvbiBEb3dubG9hZCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vQ2xpZW50Q2VudGVyL0Rvd25sb2Fkcy8jRG93bmxvYWRNYW5hZ2VyIj48c3Bhbj48L3NwYW4+RG93bmxvYWQ8YnI+WW91ciBQcm9kdWN0czwvYT48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT48ZGl2IGNsYXNzPSJCaWdEZXNjcmlwdGlvbiI+CitOZWVkIGhlbHAgb3IgcmVxdWlyZSBtb3JlIGluZm9ybWF0aW9uPzxicj5FbWFpbCB1cyBhdCA8YSBocmVmPSJtYWlsdG86Y2xpZW50c2VydmljZXNAZGV2ZXhwcmVzcy5jb20iPmNsaWVudHNlcnZpY2VzQGRldmV4cHJlc3MuY29tPC9hPiBvciBjYWxsICsxICg4MTgpIDg0NC0zMzgzIGJldHdlZW4gNzozMEFNIGFuZCA0OjMwUE0gUGFjaWZpYyBUaW1lLgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2xpPjxsaSBjbGFzcz0iSXRlbSI+PHNwYW4gY2xhc3M9Ikl0ZW1UaXRsZSI+QWJvdXQgVXM8L3NwYW4+PGRpdiBjbGFzcz0iU2VwYXJhdG9yIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2FsbG91dCBIb3ZlciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IlN1Yk1lbnUgSG92ZXIiPgorPGRpdiBjbGFzcz0iU3ViTWVudUNvbnRhaW5lciI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IkFib3V0VXMgTGVmdCI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK0Nvbm5lY3Qgd2l0aCBEZXZFeHByZXNzCis8L2Rpdj48dGFibGUgY2xhc3M9IkJpZ0ljb25JdGVtcyIgYm9yZGVyPSIwIj4KKzx0Ym9keT48dHI+Cis8dGQ+PGEgaWQ9ImN0bDAwX1RPQy1odHRwc2NvbW11bml0eWRldmV4cHJlc3Njb21ibG9ncyIgY2xhc3M9Ikljb24gQmxvZ3MiIGhyZWY9Imh0dHBzOi8vY29tbXVuaXR5LmRldmV4cHJlc3MuY29tL2Jsb2dzLyI+PHNwYW4+PC9zcGFuPkJsb2dzPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtSG9tZUNvbW11bml0eSIgY2xhc3M9Ikljb24gRXZlbnRzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbW11bml0eS8iPjxzcGFuPjwvc3Bhbj5VcGNvbWluZzxicj5FdmVudHM8L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1Ib21lVHJhaW5pbmciIGNsYXNzPSJJY29uIFRyYWluaW5nIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL1RyYWluaW5nLyI+PHNwYW4+PC9zcGFuPlRyYWluaW5nPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3VwcG9ydFdlYmluYXJzLTEiIGNsYXNzPSJJY29uIFdlYmluYXJzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L1dlYmluYXJzLyI+PHNwYW4+PC9zcGFuPldlYmluYXJzPC9hPjwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0iQWJvdXRVcyBSaWdodCI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK0xlYXJuIE1vcmUgYWJvdXQgRGV2RXhwcmVzcworPC9kaXY+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9InAtZi1sZWZ0Ij4KKzxkaXY+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUhvbWVNaXNzaW9ueG1sIiBjbGFzcz0iSWNvbkxpbmsgQWJvdXRVcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9NaXNzaW9uLnhtbCI+PHNwYW4+PC9zcGFuPkFib3V0IFVzPC9hPjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj4KKzwvZGl2PjxkaXY+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUhvbWVBbm5vdW5jZXMiIGNsYXNzPSJJY29uTGluayBOZXdzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0Fubm91bmNlcy8iPjxzcGFuPjwvc3Bhbj5OZXdzPC9hPjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj4KKzwvZGl2PjxkaXY+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUhvbWVDb21tZW50c3htbCIgY2xhc3M9Ikljb25MaW5rIENvbW1lbnRzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbW1lbnRzLnhtbCI+PHNwYW4+PC9zcGFuPlVzZXIgQ29tbWVudHM8L2E+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PgorPC9kaXY+PGRpdj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tSG9tZUNhc2VTdHVkaWVzIiBjbGFzcz0iSWNvbkxpbmsgQ2FzZVN0dWRpZXMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvQ2FzZS1TdHVkaWVzLyI+PHNwYW4+PC9zcGFuPkNhc2UgU3R1ZGllczwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9Ikdyb3VwQnJlYWsgTm9TZXBhcmF0b3IiPgorPGRpdj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tSG9tZUF3YXJkc3htbCIgY2xhc3M9Ikljb25MaW5rIEF3YXJkcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Bd2FyZHMueG1sIj48c3Bhbj48L3NwYW4+T3VyIEF3YXJkczwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2PgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21Ib21lUHVibGljYXRpb25zeG1sIiBjbGFzcz0iSWNvbkxpbmsgUmV2aWV3IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL1B1YmxpY2F0aW9ucy54bWwiPjxzcGFuPjwvc3Bhbj5SZXZpZXdzICZhbXA7IFB1YmxpY2F0aW9uczwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2PgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21Ib21lQ29tbXVuaXR5TVZQeG1sIiBjbGFzcz0iSWNvbkxpbmsgTVZQIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbW11bml0eS9NVlAueG1sIj48c3Bhbj48L3NwYW4+TVZQIFByb2dyYW08L2E+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PgorPC9kaXY+PGRpdj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tSG9tZUNvbnRhY3RVc3htbCIgY2xhc3M9Ikljb25MaW5rIENvbnRhY3RVcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Db250YWN0VXMueG1sIj48c3Bhbj48L3NwYW4+Q29udGFjdCBVczwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkJpZ0Rlc2NyaXB0aW9uIEFib3V0VXNEZXNjcmlwdGlvbiI+CitOZWVkIGhlbHA/IENvbnRhY3Qgb3VyICA8YSBpZD0iVE9DLUFib3V0VXNEZXNjcmlwdGlvbkxpbmsiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvZGV2ZXhwcmVzcy1jYXJlcy54bWwiPkRldmVsb3BlciBBZHZvY2F0ZXM8L2E+IGFueXRpbWUuCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2xpPgorPC91bD48ZGl2IGNsYXNzPSJTdWJNZW51QmFjayI+CisKKzwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIF93c01lbnUgPSBuZXcgX3dzTWVudUNvbnRyb2xsZXIoKTsKKzwvc2NyaXB0PgorPGEgaWQ9ImN0bDAwX1RPQy1Mb2dvIiB0aXRsZT0iRGV2RXhwcmVzcyIgY2xhc3M9IkxvZ28iIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tLyI+PC9hPjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKworPGRpdiBjbGFzcz0iTGlnaHRCb3ggSG9tZSI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IlRleHQiPgorPGRpdj4KKzxkaXYgY2xhc3M9ImNvbnRlbnRibG9jayIgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7Ij4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyI+Cis8dGJvZHk+PHRyPgorPHRkIGNsYXNzPSJjb250ZW50YXJlYSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxMDAlOyI+PGRpdiBjbGFzcz0ibGlnaHQtZm9udCIgc3R5bGU9ImZvbnQtc2l6ZTozNnB4O3BhZGRpbmctdG9wOjMwcHg7bGluZS1oZWlnaHQ6MTAwJTttYXJnaW4tcmlnaHQ6LTMwcHg7Ij4KKworTWVldCBEZXZFeHByZXNzIFVuaXZlcnNhbCAxMy4yCisKKzwvZGl2PjxkaXYgY2xhc3M9ImxpZ2h0LWZvbnQiIHN0eWxlPSJmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDoxMjAlO2NvbG9yOiM2YTZhNmE7Ij4KKworV2hlbiBvbmx5IHRoZSBiZXN0IHdpbGwgZG8uCisKKzwvZGl2PjxkaXYgc3R5bGU9InBhZGRpbmctdG9wOjIwcHg7Y29sb3I6IzZhNmE2YTttYXJnaW4tcmlnaHQ6LTMwcHg7Ij4KKworVm90ZWQgYmVzdCBpbiBpdHMgY2xhc3MsIHRoZSBuZXcgcHJvZHVjdHMgYW5kIGZlYXR1cmVzIHRoYXQgbWFrZSB1cCBvdXI8YnI+CisKK1VuaXZlcnNhbCBTdWJzY3JpcHRpb24gd2lsbCBoZWxwIHlvdSBjcmVhdGUgZWxlZ2FudCwgdWx0cmEtZmFzdCBhbmQgdG91Y2ggZW5hYmxlZDxicj4KKworc29sdXRpb25zIGFjcm9zcyBhbGwgbWFqb3IgLk5FVCBwbGF0Zm9ybXMuPGJyPgorCis8L2Rpdj48ZGl2IHN0eWxlPSJwYWRkaW5nLXRvcDoyNXB4O3dpZHRoOjQ2NXB4OyI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGEgaWQ9ImN0bDAwX1ByZUNvbnRlbnRfY3RsMjciIGNsYXNzPSJWM0J1dHRvbiIgdHJhY2toYW5kbGVyaWQ9ImN0bDAwX1ByZUNvbnRlbnRfY3RsMjciIGhyZWY9Imh0dHBzOi8vZ28uZGV2ZXhwcmVzcy5jb20vRGV2RXhwcmVzc0Rvd25sb2FkX1VuaXZlcnNhbFRyaWFsLmFzcHgiPjxzcGFuPgorRG93bmxvYWQgIEZyZWUgVHJpYWwKKzwvc3Bhbj48L2E+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGlkPSJkeHNzX2xpbmtUcmFjayI+CitpZih0eXBlb2YgX2FfVHJhY2tEb3dubG9hZFVuaXZlcnNhbFRyaWFsSG9tZSA9PSAnZnVuY3Rpb24nKSB7ICQoImFbdHJhY2tIYW5kbGVySWQ9J2N0bDAwX1ByZUNvbnRlbnRfY3RsMjcnXSIpLmJpbmQoJ2NsaWNrJywgX2FfVHJhY2tEb3dubG9hZFVuaXZlcnNhbFRyaWFsSG9tZSk7IH0KKzwvc2NyaXB0PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6MTBweDsiPgorPGEgY2xhc3M9IlYzQnV0dG9uIiBocmVmPSIvU3Vic2NyaXB0aW9ucy9OZXctMjAxMy54bWwiPjxzcGFuPgorU2VlIFdoYXQncyBOZXcKKzwvc3Bhbj48L2E+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvZGl2PgorPC9kaXY+PGRpdiBzdHlsZT0icGFkZGluZy10b3A6MjFweDttYXJnaW4tbGVmdDotMjBweDttYXJnaW4tcmlnaHQ6LTIwcHg7Ij4KKzxkaXYgY2xhc3M9ImNvbnRlbnRibG9jayI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0iaW1hZ2VhcmVhIiB2YWxpZ249InRvcCI+PGEgaHJlZj0iL0hvbWUvYXdhcmRzLTIwMTMueG1sIj48aW1nIGlkPSJjdGwwMF9QcmVDb250ZW50X2N0bDQwIiBhbHQ9IkRldkV4cHJlc3MgQXdhcmRzIC0gRGV2UHJvIDIwMTMgR29sZC5wbmciIHNyYz0iL2kvYXdhcmRzL0RldkV4cHJlc3MtQXdhcmRzLURldlByby0yMDEzLnBuZyIgc3R5bGU9ImhlaWdodDo2OHB4O3dpZHRoOjEwM3B4O2JvcmRlci1zdHlsZTpub25lOyI+PC9hPjwvdGQ+PHRkIGNsYXNzPSJjb250ZW50c3BhY2VyIj48ZGl2PgorCis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0iY29udGVudGFyZWEiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTAwJTsiPjxwIHN0eWxlPSJmb250LXNpemU6MTJweDsiPgorT25jZSBhZ2FpbiBEZXZFeHByZXNzIGhhcyBkb21pbmF0ZWQgdGhlIERldlByb0Nvbm5lY3Rpb25zIE1hZ2F6aW5lIFJlYWRlcnMgQ2hvaWNlIEF3YXJkcy4gT3VyIGRlZXBlc3QgdGhhbmtzIHRvIGV2ZXJ5b25lIHdobyB2b3RlZCBvdXIgcHJvZHVjdHMgdGhlIGJlc3QuCis8L3A+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJjb250ZW50c3BhY2VyIj48ZGl2PgorCis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0iaW1hZ2VhcmVhIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0ibWFyZ2luLXRvcDotMnB4O21hcmdpbi1sZWZ0Oi0yNXB4OyI+Cis8aW1nIGlkPSJjdGwwMF9QcmVDb250ZW50X2N0bDQ1IiBhbHQ9IkRldkV4cHJlc3MgQ29udHJvbHMgZm9yIERlc2t0b3AgYW5kIE1vYmlsZSBBcHBsaWNhdGlvbnMiIHNyYz0iL2kvYmFubmVycy9EZXZFeHByZXNzLUNvbnRyb2xzLWZvci1EZXNrdG9wLWFuZC1Nb2JpbGUtQXBwcy5wbmciIHN0eWxlPSJoZWlnaHQ6MzYwcHg7d2lkdGg6NzE5cHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0iaC1jbGVhciI+PC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJQYWdlLVdyYXBwZXIiPgorPGRpdiBjbGFzcz0ibC1kYXRhIENvbnRlbnQgTWFpbiI+CisKKworPGRpdiBjbGFzcz0iSG9yaXpvbnRhbEJhciI+Cis8ZGl2IGNsYXNzPSJJbm5lckNvbnRhaW5lciBMaWdodEJveC1CYXIiPgorPGRpdiBjbGFzcz0iTGlua3MgYmxhY2stdGV4dCB1bmRlcmxpbmUiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nLXRvcDoxMHB4OyI+Cis8YSBocmVmPSIvSG9tZS9Bd2FyZHMtMjAxMy54bWwiPlZvdGVkIEJlc3QgaW4gMjArIFByb2R1Y3QgQ2F0ZWdvcmllczwvYT48c3BhbiBzdHlsZT0icGFkZGluZy1sZWZ0OjIwcHg7cGFkZGluZy1yaWdodDoyMHB4O2NvbG9yOiNjY2M7Ij58PC9zcGFuPjxhIGhyZWY9Ii9Ib21lL1ZTMjAxMy54bWwiPlZpc3VhbCBTdHVkaW8gMjAxMyBzdXBwb3J0IGlzIGhlcmU8L2E+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9ImxpZ2h0LWZvbnQiIHN0eWxlPSJmb250LXNpemU6MzZweDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nLWJvdHRvbToxMHB4O3BhZGRpbmctdG9wOjMwcHg7Ij4KKworWW91ciBuZXh0IGdyZWF0IGFwcCBzdGFydHMgaGVyZS4KKworPC9kaXY+PGRpdiBjbGFzcz0ibGlnaHQtZm9udCI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MjRweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorCitFeHBsb3JlIG91ciBjb21wcmVoZW5zaXZlIHByb2R1Y3QgbGluZSBhbmQgZXhwZXJpZW5jZSB0aGUgRGV2RXhwcmVzcyBEaWZmZXJlbmNlLgorCis8L2Rpdj4KKzwvZGl2PjxkaXYgc3R5bGU9InBhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206NDBweDsiPgorPGRpdiBjbGFzcz0iCitpZC1DYXJvdXNlbAorcGFyYW0tUm91bmQKK3BhcmFtLU1vdmluZ1N0YXJ0CisiIHN0eWxlPSJtYXJnaW4tbGVmdDotNThweDt2aXNpYmlsaXR5OmhpZGRlbjsiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSIgc3R5bGU9Im1hcmdpbi1ib3R0b206MHB4OyI+Cis8dGFibGUgY2xhc3M9InQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgYWxpZ249ImxlZnQiIHZhbGlnbj0ibWlkZGxlIiBzdHlsZT0id2lkdGg6NTAlOyI+PGRpdiBjbGFzcz0iQ2Fyb3VzZWwtUHJldkJ1dHRvbiBpZC1DYXJvdXNlbC1QcmV2RXZlbnQiPgorCis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ij4KKzxkaXYgY2xhc3M9ImlkLUNhcm91c2VsQ29udGVudCIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4OyI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgY2xhc3M9ImlkLUNhcm91c2VsUGFnZSI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL0NvZGVSdXNoLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw4NCIgYWx0PSJDb2RlUnVzaCIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL2NvZGVydXNoLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorQ29kZVJ1c2gKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+Q29kZS1EZWJ1Zy1SZWZhY3Rvcjwvc3Ryb25nPjxicj4KK1dyaXRlIGNvZGUgYXQgdGhlIHNwZWVkIG9mIHRob3VnaHQuIEZpbmQgYW5kIGZpeCBkZWZlY3RzLiBSZWZhY3RvciB3aXRoIGVhc2UuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iaHR0cHM6Ly9waG9uZWpzLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsOTgiIGFsdD0iUGhvbmVKUyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL1Bob25lLUpTLW1vYmlsZS1mcmFtZXdvcmsucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitQaG9uZUpTCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPkhUTUwgNSBKUyBNb2JpbGUgRnJhbWV3b3JrPC9zdHJvbmc+PGJyPgorQ3JlYXRlIG5hdGl2ZSBtb2JpbGUgYXBwbGljYXRpb25zIHVzaW5nIEhUTUw1IGFuZCBKYXZhU2NyaXB0IHdpdGggYSBzaW5nbGUgY29kZWJhc2UgYW5kIGRlbGl2ZXIgc29sdXRpb25zIHRoYXQgdGFyZ2V0IHRvZGF5J3MgbW9zdCBwb3B1bGFyIHNtYXJ0cGhvbmVzIGFuZCB0YWJsZXQgZGV2aWNlcy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIHRsYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iaHR0cHM6Ly9jaGFydGpzLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMTEyIiBhbHQ9IkNoYXJ0SlMiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9jaGFydC1qcy1odG1sLXdpZGdldHMucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitDaGFydEpTCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPkhUTUwgNSBKUyBEYXRhIFZpc3VhbGl6YXRpb248L3N0cm9uZz48YnI+CitUaGUgRGV2RXhwcmVzcyBDaGFydEpTIExpYnJhcnkgb2ZmZXJzIHlvdSBhIGZ1bGx5IGludGVncmF0ZWQgY29sbGVjdGlvbiBvZiBibGF6aW5nIGZhc3QgYW5kIGZ1bGx5IGludGVyYWN0aXZlIGRhdGEgdmlzdWFsaXphdGlvbiB3aWRnZXRzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPgorPC90cj48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9XaW5Gb3Jtcy9Db2RlZC1VSS8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMTI2IiBhbHQ9IkNvZGVkIFVJIFN1cHBvcnQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9Db2RlZFVJLVN1cHBvcnQtZm9yLVdpbkZvcm1zLmpwZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorQ29kZWQgVUkgU3VwcG9ydAorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5GdW5jdGlvbmFsIFRlc3RpbmcgZm9yIFdpbkZvcm1zPC9zdHJvbmc+PGJyPgorRGV2RXhwcmVzcyBXaW5Gb3JtcyBDb2RlZCBVSSBleHRlbnNpb25zIGhhdmUgYmVlbiBzcGVjaWZpY2FsbHkgZW5naW5lZXJlZCB0byBleHBsb2l0IHRoZSBwb3dlciBvZiBNaWNyb3NvZnQncyBUZXN0aW5nIEZyYW1ld29yay4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSJodHRwczovL3Rlc3RjYWZlLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMTQwIiBhbHQ9IlRlc3RDYWbDqSIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL3Rlc3QtY2FmZS13ZWIucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MHB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitUZXN0Q2Fmw6kKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+V2ViIFRlc3RpbmcgUmVkZWZpbmVkPC9zdHJvbmc+PGJyPgorUmVjb3JkIGFuZCBleGVjdXRlIHRlc3RzIG9uIFdpbmRvd3MsIE1hYyBhbmQgTGludXggaW4gYW55IGRlc2t0b3Agb3IgbW9iaWxlIGJyb3dzZXIgdGhhdCBzdXBwb3J0cyBIVE1MIDUuIEluY2x1ZGVzIGJ1aWx0LWluIFRlc3QgUmVjb3JkZXIgYW5kIFRyYWZmaWMtTWFya3VwLUVycm9yIEFuYWx5c2lzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvVkNMLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwxNTQiIGFsdD0iVkNMIENvbnRyb2xzIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvdmNsLWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorVkNMIENvbnRyb2xzCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPmZvciBEZWxwaGkgYW5kIEMrK0J1aWxkZXI8L3N0cm9uZz48YnI+CitEZWxpdmVyIHRoZSBzb2x1dGlvbnMgeW91ciBjdXN0b21lcnMgZXhwZWN0IHRvZGF5IGFuZCBsZXZlcmFnZSB5b3VyIGV4aXN0aW5nIFZDTCBza2lsbHNldCB0byBidWlsZCBuZXh0IGdlbmVyYXRpb24gYXBwbGljYXRpb25zIGZvciB0b21vcnJvdy4gVGhlIERldkV4cHJlc3MgVkNMIHByb2R1Y3QgbGluZSBpbmNsdWRlcyBvdmVyIDE4MCBjb250cm9scyBhbmQgbGlicmFyaWVzIG9wdGltaXplZCBmb3IgRGVscGhpIGFuZCBDKytCdWlsZGVyLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvZGl2PgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBjbGFzcz0iaWQtQ2Fyb3VzZWxQYWdlIj4KKzxkaXYgY2xhc3M9ImR4dGFibGUiPgorPHRhYmxlIGNsYXNzPSJ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwxODEiIGFsdD0iV2luRm9ybXMiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC93aW5mb3Jtcy1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK1dpbkZvcm1zCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgMTIwIENvbnRyb2xzIGFuZCBMaWJyYXJpZXM8L3N0cm9uZz48YnI+CitBIHJvYnVzdCBhbmQgYWxsLWluY2x1c2l2ZSBkZXZlbG9wbWVudCB0b29sc2V0IGRlc2lnbmVkIHRvIGFkZHJlc3MgdGhlIG5lZWRzIG9mIGRldmVsb3BlcnMgdGFyZ2V0aW5nIHRoZSBXaW5Gb3JtcyBwbGF0Zm9ybS4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMTk1IiBhbHQ9IkFTUC5ORVQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9hc3AtbmV0LWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorQVNQLk5FVAorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDkwIEFKQVggQ29udHJvbHMgYW5kIExpYnJhcmllczwvc3Ryb25nPjxicj4KK0NyZWF0ZSBlbmdhZ2luZywgaW50ZXJhY3RpdmUgYW5kIHRvdWNoLWVuYWJsZWQgd2ViIGV4cGVyaWVuY2VzIHRoYXQgZW11bGF0ZSB0aGUgbG9vaywgZmVlbCBhbmQgY2FwYWJpbGl0aWVzIG9mIHRvZGF5J3MgbW9zdCBwb3B1bGFyIHdlYiBhcHBsaWNhdGlvbnMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvQVNQL01WQy8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMjA5IiBhbHQ9Ik1WQyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL212Yy1leHRlbnNpb25zLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorTVZDCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgNTUgTmF0aXZlIE1WQyBFeHRlbnNpb25zPC9zdHJvbmc+PGJyPgorQ3JlYXRlIGVuZ2FnaW5nLCBpbnRlcmFjdGl2ZSBhbmQgdG91Y2gtZW5hYmxlZCB3ZWIgZXhwZXJpZW5jZXMgdGhhdCBlbXVsYXRlIHRoZSBsb29rLCBmZWVsIGFuZCBjYXBhYmlsaXRpZXMgb2YgdG9kYXkncyBtb3N0IHBvcHVsYXIgd2ViIGFwcGxpY2F0aW9ucy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD4KKzwvdHI+PHRyPgorPHRkIGNsYXNzPSJ0YyB0ZmMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV1BGLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwyMjMiIGFsdD0iV1BGIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvd3BmLWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorV1BGCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgODAgQ29udHJvbHMgYW5kIExpYnJhcmllczwvc3Ryb25nPjxicj4KK0RlbGl2ZXIgaGlnaGx5IGludGVyYWN0aXZlIFhBTUwgYmFzZWQgV2luZG93cyBkZXNrdG9wIGFwcGxpY2F0aW9ucyB0aGF0IGFkZHJlc3MgY3VzdG9tZXIgbmVlZHMgdG9kYXkgYW5kIGJ1aWxkIG5leHQgZ2VuZXJhdGlvbiB0b3VjaCBlbmFibGVkIHNvbHV0aW9ucyBmb3IgdG9tb3Jyb3cuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9TaWx2ZXJsaWdodC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMjM3IiBhbHQ9IlNpbHZlcmxpZ2h0IiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvc2lsdmVybGlnaHQtY29udHJvbHMucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MHB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitTaWx2ZXJsaWdodAorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDgwIENvbnRyb2xzIGFuZCBMaWJyYXJpZXM8L3N0cm9uZz48YnI+CitEZWxpdmVyIGhpZ2hseSBpbnRlcmFjdGl2ZSBYQU1MIHBvd2VyZWQgYnJvd3Nlci1iYXNlZCBhcHBsaWNhdGlvbnMgdGhhdCBhZGRyZXNzIGN1c3RvbWVyIG5lZWRzIHRvZGF5IGFuZCBidWlsZCBuZXh0IGdlbmVyYXRpb24gdG91Y2ggZW5hYmxlZCBzb2x1dGlvbnMgZm9yIHRvbW9ycm93LgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpblJULyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwyNTEiIGFsdD0iV2luZG93cyA4IFhBTUwiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC93aW5kb3dzLTgteGFtbC1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK1dpbmRvd3MgOCBYQU1MCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk1vZGVybiBVSSBBcHBzIGZvciBXaW5kb3dzPC9zdHJvbmc+PGJyPgorUG93ZXJmdWwgVUkgY29udHJvbHMgc28geW91IGNhbiBjcmVhdGUgY29tcGVsbGluZyBidXNpbmVzcyBzb2x1dGlvbnMgdGhhdCBleHBsb2l0IHRoZSBiZXN0IHBhcnRzIG9mIFdpbmRvd3PCriA4IHdoZW4gdGFyZ2V0aW5nIG5leHQgZ2VuZXJhdGlvbiBkZXZpY2VzIHN1Y2ggYXMgTWljcm9zb2Z0IFN1cmZhY2UuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMiIHZhbGlnbj0idG9wIj48ZGl2IGNsYXNzPSJpZC1DYXJvdXNlbFBhZ2UiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSI+Cis8dGFibGUgY2xhc3M9InQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyI+Cis8dGJvZHk+PHRyPgorPHRkIGNsYXNzPSJ0YyB0ZmMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9TdWJzY3JpcHRpb25zL1JlcG9ydGluZy8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMjc4IiBhbHQ9IlJlcG9ydGluZyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL25ldC1yZXBvcnRpbmcucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitSZXBvcnRpbmcKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+Zm9yIFdpbkZvcm1zLCBBU1AuTkVULCBXUEYgYW5kIFNpbHZlcmxpZ2h0PC9zdHJvbmc+PGJyPgorQSBwb3dlcmhvdXNlIHJlcG9ydGluZyBwbGF0Zm9ybSB0aGF0IGluY2x1ZGVzIG5hdGl2ZSBpbnRlZ3JhdGlvbiB3aXRoIERldkV4cHJlc3MgY29udHJvbHMgZm9yIGFuIHVuZXF1YWxsZWQgZGVzaWduLXRpbWUgZXhwZXJpZW5jZSBhbmQgdW5tYXRjaGVkIHJ1bnRpbWUgZmxleGliaWxpdHkuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Eb2N1bWVudC1TZXJ2ZXIvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDI5MiIgYWx0PSJET0MsIFhMUywgWklQIEZpbGUgR2VuIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvZG9jdW1lbnQtc2VydmVyLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorRE9DLCBYTFMsIFpJUCBGaWxlIEdlbgorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz50aGUgVWx0aW1hdGUgRG9jdW1lbnQgR2VuZXJhdGlvbiBUb29sPC9zdHJvbmc+PGJyPgorR2VuZXJhdGUgWExTLCBYTFN4LCBET0MsIERPQ3gsIFJURiwgQ1NWIGFuZCBTbmFwIFJlcG9ydCBmaWxlcyB1c2luZyBhIHN0cmFpZ2h0Zm9yd2FyZCAuTkVUIEFQSSB3aXRob3V0IHVzaW5nIE1pY3Jvc29mdCBPZmZpY2UuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9IVE1MLUpTLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwzMDYiIGFsdD0iRGV2RXh0cmVtZSBNb2JpbGUiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9keHRyZW1lLW1vYmlsZS1odG1sLWpzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorRGV2RXh0cmVtZSBNb2JpbGUKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+TXVsdGktRGV2aWNlIEhUTUwgNSBEZXZlbG9wbWVudDwvc3Ryb25nPjxicj4KK0EgZnVsbHkgaW50ZWdyYXRlZCBKYXZhU2NyaXB0IG1vYmlsZSBkZXZlbG9wbWVudCBmcmFtZXdvcmsgc28geW91IGNhbiBjcmVhdGUgc3RvcmUtcmVhZHksIG11bHRpLWRldmljZSBhcHBsaWNhdGlvbnMgYWNyb3NzIHBsYXRmb3JtcyBhbmQgZGV2aWNlcy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD4KKzwvdHI+PHRyPgorPHRkIGNsYXNzPSJ0YyB0ZmMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQXBwbGljYXRpb25fRnJhbWV3b3JrLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwzMjAiIGFsdD0iZVhwcmVzc0FwcCBGcmFtZXdvcmsiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9uZXQtYXBwbGljYXRpb24tZnJhbWV3b3JrLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorZVhwcmVzc0FwcCBGcmFtZXdvcmsKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+Zm9yIFdpbmRvd3MgYW5kIFdlYiBEZXZlbG9wbWVudDwvc3Ryb25nPjxicj4KK0EgZmxleGlibGUgYXBwbGljYXRpb24gZnJhbWV3b3JrIHRoYXQgYWxsb3dzIHlvdSB0byBjcmVhdGUgcG93ZXJmdWwgbGluZS1vZi1idXNpbmVzcyBhcHBsaWNhdGlvbnMgdGhhdCBzaW11bHRhbmVvdXNseSB0YXJnZXQgV2luZG93cyBhbmQgdGhlIFdlYi4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0Rhc2hib2FyZC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMzM0IiBhbHQ9Ii5ORVQgRGFzaGJvYXJkIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvZGFzaGJvYXJkLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorLk5FVCBEYXNoYm9hcmQKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+Zm9yIFdpbmRvd3MgYW5kIHRoZSBXZWI8L3N0cm9uZz48YnI+CitFbGVnYW50bHkgaW50ZXJhY3RpdmUgYW5hbHl0aWNzIERhc2hib2FyZCB3aXRoIGJ1aWx0LWluIHBlcmZvcm1hbmNlIGluZGljYXRvcnMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvUmVwb3J0LVNlcnZlci8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMzQ4IiBhbHQ9IlJlcG9ydCBTZXJ2ZXIiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9yZXBvcnQtc2VydmVyLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorUmVwb3J0IFNlcnZlcgorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5FbnRlcnByaXNlLVJlYWR5LCBDb3N0LUVmZmVjdGl2ZTwvc3Ryb25nPjxicj4KK09wdGltaXplZCBmb3IgdGhlIGVudGVycHJpc2UgYW5kIG1hZGUgdG8gcmVkdWNlIHByZXNzdXJlcyBvbiBkZXZlbG9wbWVudCB0ZWFtcyBieSBlbXBvd2VyaW5nIHVzZXJzIHRvIGdlbmVyYXRlIGFuZCBtYW5hZ2UgcmVwb3J0cy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgY2xhc3M9ImlkLUNhcm91c2VsUGFnZSI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL0NvZGVSdXNoLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwzNzUiIGFsdD0iQ29kZVJ1c2giIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9jb2RlcnVzaC5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK0NvZGVSdXNoCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPkNvZGUtRGVidWctUmVmYWN0b3I8L3N0cm9uZz48YnI+CitXcml0ZSBjb2RlIGF0IHRoZSBzcGVlZCBvZiB0aG91Z2h0LiBGaW5kIGFuZCBmaXggZGVmZWN0cy4gUmVmYWN0b3Igd2l0aCBlYXNlLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Imh0dHBzOi8vcGhvbmVqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDM4OSIgYWx0PSJQaG9uZUpTIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvUGhvbmUtSlMtbW9iaWxlLWZyYW1ld29yay5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK1Bob25lSlMKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+SFRNTCA1IEpTIE1vYmlsZSBGcmFtZXdvcms8L3N0cm9uZz48YnI+CitDcmVhdGUgbmF0aXZlIG1vYmlsZSBhcHBsaWNhdGlvbnMgdXNpbmcgSFRNTDUgYW5kIEphdmFTY3JpcHQgd2l0aCBhIHNpbmdsZSBjb2RlYmFzZSBhbmQgZGVsaXZlciBzb2x1dGlvbnMgdGhhdCB0YXJnZXQgdG9kYXkncyBtb3N0IHBvcHVsYXIgc21hcnRwaG9uZXMgYW5kIHRhYmxldCBkZXZpY2VzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSJodHRwczovL2NoYXJ0anMuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw0MDMiIGFsdD0iQ2hhcnRKUyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL2NoYXJ0LWpzLWh0bWwtd2lkZ2V0cy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK0NoYXJ0SlMKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+SFRNTCA1IEpTIERhdGEgVmlzdWFsaXphdGlvbjwvc3Ryb25nPjxicj4KK1RoZSBEZXZFeHByZXNzIENoYXJ0SlMgTGlicmFyeSBvZmZlcnMgeW91IGEgZnVsbHkgaW50ZWdyYXRlZCBjb2xsZWN0aW9uIG9mIGJsYXppbmcgZmFzdCBhbmQgZnVsbHkgaW50ZXJhY3RpdmUgZGF0YSB2aXN1YWxpemF0aW9uIHdpZGdldHMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zL0NvZGVkLVVJLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw0MTciIGFsdD0iQ29kZWQgVUkgU3VwcG9ydCIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL0NvZGVkVUktU3VwcG9ydC1mb3ItV2luRm9ybXMuanBnIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitDb2RlZCBVSSBTdXBwb3J0Cis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPkZ1bmN0aW9uYWwgVGVzdGluZyBmb3IgV2luRm9ybXM8L3N0cm9uZz48YnI+CitEZXZFeHByZXNzIFdpbkZvcm1zIENvZGVkIFVJIGV4dGVuc2lvbnMgaGF2ZSBiZWVuIHNwZWNpZmljYWxseSBlbmdpbmVlcmVkIHRvIGV4cGxvaXQgdGhlIHBvd2VyIG9mIE1pY3Jvc29mdCdzIFRlc3RpbmcgRnJhbWV3b3JrLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Imh0dHBzOi8vdGVzdGNhZmUuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw0MzEiIGFsdD0iVGVzdENhZsOpIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvdGVzdC1jYWZlLXdlYi5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDowcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK1Rlc3RDYWbDqQorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5XZWIgVGVzdGluZyBSZWRlZmluZWQ8L3N0cm9uZz48YnI+CitSZWNvcmQgYW5kIGV4ZWN1dGUgdGVzdHMgb24gV2luZG93cywgTWFjIGFuZCBMaW51eCBpbiBhbnkgZGVza3RvcCBvciBtb2JpbGUgYnJvd3NlciB0aGF0IHN1cHBvcnRzIEhUTUwgNS4gSW5jbHVkZXMgYnVpbHQtaW4gVGVzdCBSZWNvcmRlciBhbmQgVHJhZmZpYy1NYXJrdXAtRXJyb3IgQW5hbHlzaXMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9WQ0wvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDQ0NSIgYWx0PSJWQ0wgQ29udHJvbHMiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC92Y2wtY29udHJvbHMucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitWQ0wgQ29udHJvbHMKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+Zm9yIERlbHBoaSBhbmQgQysrQnVpbGRlcjwvc3Ryb25nPjxicj4KK0RlbGl2ZXIgdGhlIHNvbHV0aW9ucyB5b3VyIGN1c3RvbWVycyBleHBlY3QgdG9kYXkgYW5kIGxldmVyYWdlIHlvdXIgZXhpc3RpbmcgVkNMIHNraWxsc2V0IHRvIGJ1aWxkIG5leHQgZ2VuZXJhdGlvbiBhcHBsaWNhdGlvbnMgZm9yIHRvbW9ycm93LiBUaGUgRGV2RXhwcmVzcyBWQ0wgcHJvZHVjdCBsaW5lIGluY2x1ZGVzIG92ZXIgMTgwIGNvbnRyb2xzIGFuZCBsaWJyYXJpZXMgb3B0aW1pemVkIGZvciBEZWxwaGkgYW5kIEMrK0J1aWxkZXIuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBjbGFzcz0iaWQtQ2Fyb3VzZWxQYWdlIj4KKzxkaXYgY2xhc3M9ImR4dGFibGUiPgorPHRhYmxlIGNsYXNzPSJ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw0NzIiIGFsdD0iV2luRm9ybXMiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC93aW5mb3Jtcy1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK1dpbkZvcm1zCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgMTIwIENvbnRyb2xzIGFuZCBMaWJyYXJpZXM8L3N0cm9uZz48YnI+CitBIHJvYnVzdCBhbmQgYWxsLWluY2x1c2l2ZSBkZXZlbG9wbWVudCB0b29sc2V0IGRlc2lnbmVkIHRvIGFkZHJlc3MgdGhlIG5lZWRzIG9mIGRldmVsb3BlcnMgdGFyZ2V0aW5nIHRoZSBXaW5Gb3JtcyBwbGF0Zm9ybS4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsNDg2IiBhbHQ9IkFTUC5ORVQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9hc3AtbmV0LWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorQVNQLk5FVAorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDkwIEFKQVggQ29udHJvbHMgYW5kIExpYnJhcmllczwvc3Ryb25nPjxicj4KK0NyZWF0ZSBlbmdhZ2luZywgaW50ZXJhY3RpdmUgYW5kIHRvdWNoLWVuYWJsZWQgd2ViIGV4cGVyaWVuY2VzIHRoYXQgZW11bGF0ZSB0aGUgbG9vaywgZmVlbCBhbmQgY2FwYWJpbGl0aWVzIG9mIHRvZGF5J3MgbW9zdCBwb3B1bGFyIHdlYiBhcHBsaWNhdGlvbnMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvQVNQL01WQy8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsNTAwIiBhbHQ9Ik1WQyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL212Yy1leHRlbnNpb25zLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorTVZDCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgNTUgTmF0aXZlIE1WQyBFeHRlbnNpb25zPC9zdHJvbmc+PGJyPgorQ3JlYXRlIGVuZ2FnaW5nLCBpbnRlcmFjdGl2ZSBhbmQgdG91Y2gtZW5hYmxlZCB3ZWIgZXhwZXJpZW5jZXMgdGhhdCBlbXVsYXRlIHRoZSBsb29rLCBmZWVsIGFuZCBjYXBhYmlsaXRpZXMgb2YgdG9kYXkncyBtb3N0IHBvcHVsYXIgd2ViIGFwcGxpY2F0aW9ucy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD4KKzwvdHI+PHRyPgorPHRkIGNsYXNzPSJ0YyB0ZmMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV1BGLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1MTQiIGFsdD0iV1BGIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvd3BmLWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorV1BGCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgODAgQ29udHJvbHMgYW5kIExpYnJhcmllczwvc3Ryb25nPjxicj4KK0RlbGl2ZXIgaGlnaGx5IGludGVyYWN0aXZlIFhBTUwgYmFzZWQgV2luZG93cyBkZXNrdG9wIGFwcGxpY2F0aW9ucyB0aGF0IGFkZHJlc3MgY3VzdG9tZXIgbmVlZHMgdG9kYXkgYW5kIGJ1aWxkIG5leHQgZ2VuZXJhdGlvbiB0b3VjaCBlbmFibGVkIHNvbHV0aW9ucyBmb3IgdG9tb3Jyb3cuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9TaWx2ZXJsaWdodC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsNTI4IiBhbHQ9IlNpbHZlcmxpZ2h0IiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvc2lsdmVybGlnaHQtY29udHJvbHMucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MHB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitTaWx2ZXJsaWdodAorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDgwIENvbnRyb2xzIGFuZCBMaWJyYXJpZXM8L3N0cm9uZz48YnI+CitEZWxpdmVyIGhpZ2hseSBpbnRlcmFjdGl2ZSBYQU1MIHBvd2VyZWQgYnJvd3Nlci1iYXNlZCBhcHBsaWNhdGlvbnMgdGhhdCBhZGRyZXNzIGN1c3RvbWVyIG5lZWRzIHRvZGF5IGFuZCBidWlsZCBuZXh0IGdlbmVyYXRpb24gdG91Y2ggZW5hYmxlZCBzb2x1dGlvbnMgZm9yIHRvbW9ycm93LgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpblJULyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1NDIiIGFsdD0iV2luZG93cyA4IFhBTUwiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC93aW5kb3dzLTgteGFtbC1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK1dpbmRvd3MgOCBYQU1MCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk1vZGVybiBVSSBBcHBzIGZvciBXaW5kb3dzPC9zdHJvbmc+PGJyPgorUG93ZXJmdWwgVUkgY29udHJvbHMgc28geW91IGNhbiBjcmVhdGUgY29tcGVsbGluZyBidXNpbmVzcyBzb2x1dGlvbnMgdGhhdCBleHBsb2l0IHRoZSBiZXN0IHBhcnRzIG9mIFdpbmRvd3PCriA4IHdoZW4gdGFyZ2V0aW5nIG5leHQgZ2VuZXJhdGlvbiBkZXZpY2VzIHN1Y2ggYXMgTWljcm9zb2Z0IFN1cmZhY2UuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0ibWlkZGxlIiBzdHlsZT0id2lkdGg6NTAlOyI+PGRpdiBjbGFzcz0iQ2Fyb3VzZWwtTmV4dEJ1dHRvbiBpZC1DYXJvdXNlbC1OZXh0RXZlbnQiPgorCis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvZGl2PgorPC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgeworKGZ1bmN0aW9uICgpIHsKK3ZhciBzd2lwZVVwID0gJCgiLmlkLXN3aXBlVXAiKTsKK3ZhciBzd2lwZVVwRGVzY3JpcHRpb24gPSBzd2lwZVVwLmZpbmQoJy5pZC1zd2lwZVVwLWRlc2NyaXB0aW9uJyk7Cit2YXIgc3dpcGVVcENvbnRlbnQgPSBzd2lwZVVwLmZpbmQoJy5pZC1zd2lwZVVwLWNvbnRlbnQnKTsKK3N3aXBlVXAuYXR0cigiaG90dHJhY2tlZCIsICJmYWxzZSIpOwordmFyIHRpbWVTd2lwZSA9IDEwMDsKK3ZhciBkZWxheVN3aXBlID0gMTUwOwordmFyIHRpbWVyOworc3dpcGVVcC5ob3Zlcih1cCwgZG93bik7CisKK3N3aXBlVXAub24oJ2NsaWNrJywgaXRlbUNsaWNrKTsKKy8vIHN3aXBlVXAub24oJ3RvdWNoU3RhcnQnLCBpdGVtQ2xpY2spOworCitmdW5jdGlvbiBpdGVtQ2xpY2soZXZlbnQpIHsKKworaWYoJCh0aGlzKS5hdHRyKCdob3R0cmFja2VkJykgIT0gJ3RydWUnKQorZXZlbnQucHJldmVudERlZmF1bHRzKCk7CisvL3ZhciBob3RUcmFja0NsaWNrID0gJCh0aGlzKS5hdHRyKCdob3R0cmFja2VkJyk7CisvL3ZhciBjbGlja2VkRWxlbWVudCA9ICQodGhpcykuZmluZCgnLmlkLXN3aXBlVXAtZGVzY3JpcHRpb24nKTsKKy8vaWYgKCAhaG90VHJhY2tDbGljayApIHsKKy8vZXZlbnQucHJldmVudERlZmF1bHQoKTsKKy8vJCgiLmlkLXN3aXBlVXAiKS5hdHRyKCJob3R0cmFja2VkIiwgImZhbHNlIik7CisvLyQodGhpcykuYXR0cigiaG90dHJhY2tlZCIsICJ0cnVlIik7CisvL3N3aXBlVXBEZXNjcmlwdGlvbi5zbGlkZVVwKHRpbWVTd2lwZSk7CisvL2NsaWNrZWRFbGVtZW50LnNob3codGltZVN3aXBlKTsKKy8vc3dpcGVVcENvbnRlbnQuY3NzKCdib3JkZXItdG9wLXN0eWxlJywgJ25vbmUnKTsKKy8vJCh0aGlzKS5maW5kKCcuaWQtc3dpcGVVcC1jb250ZW50JykuY3NzKCdib3JkZXItdG9wLXN0eWxlJywgJ3NvbGlkJyk7CisvL30KK30KK2Z1bmN0aW9uIHVwKGV2ZW50KSB7Citjb25zb2xlLmxvZygnaW5zaWRlIHVwJyk7CiskKCIuaWQtc3dpcGVVcCIpLmF0dHIoImhvdHRyYWNrZWQiLCAiZmFsc2UiKTsKKyQodGhpcykuYXR0cigiaG90dHJhY2tlZCIsICJ0cnVlIik7Cit2YXIgZGVzY3JpcHRpb24gPSAkKHRoaXMpLmZpbmQoJy5pZC1zd2lwZVVwLWRlc2NyaXB0aW9uJyk7Cit2YXIgY29udGVudCA9ICQodGhpcykuZmluZCgnLmlkLXN3aXBlVXAtY29udGVudCcpOwordGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKK2NvbnRlbnQuY3NzKCdib3JkZXItdG9wLXN0eWxlJywgJ3NvbGlkJyk7CitkZXNjcmlwdGlvbi5zbGlkZURvd24odGltZVN3aXBlKTsKK30sIGRlbGF5U3dpcGUpOworfTsKK2Z1bmN0aW9uIGRvd24oZXZlbnQpIHsKK2NsZWFyVGltZW91dCh0aW1lcik7Cit2YXIgY29udGVudCA9ICQodGhpcykuZmluZCgnLmlkLXN3aXBlVXAtY29udGVudCcpOworJCh0aGlzKS5maW5kKCcuaWQtc3dpcGVVcC1kZXNjcmlwdGlvbicpLnNsaWRlVXAodGltZVN3aXBlLCBmdW5jdGlvbiAoKSB7IGNvbnRlbnQuY3NzKCdib3JkZXItdG9wLXN0eWxlJywgJ25vbmUnKTsgfSk7Cit9OworfSkoKTsKK30pOworPC9zY3JpcHQ+Cis8L2Rpdj48ZGl2IGNsYXNzPSJsaWdodC1mb250IiBzdHlsZT0iZm9udC1zaXplOjMwcHg7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy1ib3R0b206NDBweDtwYWRkaW5nLXRvcDoyMHB4OyI+CisKK1NlZSB3aHkgZGV2ZWxvcGVycyBqdXN0IGxpa2UgeW91IHRydXN0PGJyPgorCitEZXZFeHByZXNzIGZvciBhbGwgdGhlaXIgc29mdHdhcmUgZGV2ZWxvcG1lbnQgbmVlZHMuCisKKworPC9kaXY+PGRpdiBzdHlsZT0icGFkZGluZy1ib3R0b206MjBweDsiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSBkeGludGVybmFsdGFibGUgaS1keHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjUwJTsiPjxkaXYgc3R5bGU9InBhZGRpbmctcmlnaHQ6MjBweDsiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSBkeGludGVybmFsdGFibGUgaS1keHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9Im1hcmdpbi1yaWdodDozMHB4O3BhZGRpbmctdG9wOjEwcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsNTc1IiBhbHQ9IlBoaWxpcCBkZSBLb2NrIiBzcmM9Ii9pL3F1b3Rlcy9QaGlsaXAtZGUtS29jay5wbmciIHN0eWxlPSJoZWlnaHQ6MTAwcHg7d2lkdGg6MTAwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ij4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48aDY+CitQaGlsaXAgZGUgS29jaworPC9oNj48ZGl2IHN0eWxlPSJib3JkZXI6c29saWQgI2Q5ZDlkOSAxcHg7cGFkZGluZy10b3A6MTVweDttYXJnaW4tdG9wOjEwcHg7cGFkZGluZy1ib3R0b206MTVweDtwYWRkaW5nLWxlZnQ6MjVweDtwYWRkaW5nLXJpZ2h0OjI1cHg7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjE2MHB4OyI+Cis8cD5JIGhhdmUgYmVlbiB1c2luZyBEZXZFeHByZXNzIHNpbmNlIHRoZSBjb21wYW55IHN0YXJ0ZWQg4oCTIHNvIGFsbCAxNSB5ZWFycy4gTXkgQ29tcGFueSwgRmFudHVzIFRlY2hub2xvZ2llcywgdXNlcyBEZXZFeHByZXNzIGV4dGVuc2l2ZWx5IGFuZCBoYXZlIGZvdW5kIHRoYXQgb3VyIGN1c3RvbWVycyByYXZlIGFib3V0IHRoZSBHcmlkcywgUGl2b3RzLCBSZXBvcnRzIGFuZCBDaGFydHMgYWxsIHRoZSB0aW1lLiAgVGhleSBhbG1vc3QgYWx3YXlzIG1ha2UgdXMgbG9vayBnb29kLjwvcD48cD5UaGFuayB5b3UgZm9yIHN1Y2ggYnJpbGxpYW50IHByb2R1Y3RzIGFuZCBrZWVwIHVwIHRoZSBnb29kIHdvcmsuPC9wPjxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTI4cHg7dG9wOjQwcHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoJy9Ib21lL2kvcXVvdGVzL2NhbGxvdXQtbGVmdC5wbmcnKTt3aWR0aDoyOHB4O2hlaWdodDoyOXB4OyI+CisKKzwvZGl2PgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L2Rpdj48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmctdG9wOjVweDsiPgorPHA+CitMZWFybiBtb3JlIGFib3V0IDxhIGhyZWY9Ii9TdWJzY3JpcHRpb25zL1JlcG9ydGluZy8iPlJlcG9ydGluZzwvYT4gYW5kIDxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luRm9ybXMvIj5XaW5Gb3JtczwvYT4gQ29udHJvbHMKKzwvcD4KKzwvZGl2PgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIHRsYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmctbGVmdDoyMHB4OyI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIGR4aW50ZXJuYWx0YWJsZSBpLWR4dGFibGUiPgorPHRhYmxlIGNsYXNzPSJ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjMwcHg7cGFkZGluZy10b3A6MTBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1OTEiIGFsdD0iSXZ5IEhvYW5nIiBzcmM9Ii9pL3F1b3Rlcy9JdnktSG9hbmcucG5nIiBzdHlsZT0iaGVpZ2h0OjEwMHB4O3dpZHRoOjEwMHB4O2JvcmRlci1zdHlsZTpub25lOyI+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGg2PgorSXZ5IEhvYW5nCis8L2g2PjxkaXYgc3R5bGU9ImJvcmRlcjpzb2xpZCAjZDlkOWQ5IDFweDtwYWRkaW5nLXRvcDoxNXB4O21hcmdpbi10b3A6MTBweDtwYWRkaW5nLWJvdHRvbToxNXB4O3BhZGRpbmctbGVmdDoyNXB4O3BhZGRpbmctcmlnaHQ6MjVweDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTIwcHg7Ij4KKzxwPkkgaGF2ZSBoYWQgdGhlIHBsZWFzdXJlIHRvIHdvcmsgd2l0aCBXUEYsIFdpbkZvcm1zLCBhbmQgQVNQLk5FVCBhbmQgbm8gb25lIG9mZmVycyBhIG1vcmUgcG93ZXJmdWwsIGNvbXByZWhlbnNpdmUsIGFuZCBqdXN0IHBsYWluIGF3ZXNvbWUgc2V0IG9mIHRvb2xzIGFzIERldkV4cHJlc3MuPC9wPjxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTI4cHg7dG9wOjQwcHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoJy9Ib21lL2kvcXVvdGVzL2NhbGxvdXQtbGVmdC5wbmcnKTt3aWR0aDoyOHB4O2hlaWdodDoyOXB4OyI+CisKKzwvZGl2PgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7cGFkZGluZy10b3A6NXB4OyI+Cis8cD4KK0xlYXJuIG1vcmUgYWJvdXQgPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvIj5BU1AuTkVUPC9hPiBhbmQgPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9XUEYvIj5XUEY8L2E+IENvbnRyb2xzCis8L3A+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvZGl2PgorPC9kaXY+CisKKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJQb3N0Q29udGVudCI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9ImR4dGFibGUgZHhpbnRlcm5hbHRhYmxlIGktZHh0YWJsZSI+Cis8dGFibGUgY2xhc3M9InQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo1MCU7Ij48ZGl2IHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjIwcHg7Ij4KKzxkaXYgY2xhc3M9ImxpZ2h0LWZvbnQgZ3JheS10ZXh0LW9uLWJsYWNrIiBzdHlsZT0iZm9udC1zaXplOjM2cHg7Ij4KKworTmV3cyAmYW1wOyBFdmVudHMKKworPC9kaXY+PGRpdj4KKzxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDsiPgorPGEgaHJlZj0iL0hvbWUvQW5ub3VuY2VzLzIwMTMtVkNMLUNvbnRyb2xzLTEzLTIueG1sIj5Bbm5vdW5jaW5nIERldkV4cHJlc3MgVkNMIDEzLjI8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KK1dpdGggdGhpcyByZWxlYXNlLCBEZXZFeHByZXNzIGNvbnRpbnVlcyBpdHMgMTUgeWVhciBjb21taXRtZW50IHRvIHRoZSBEZWxwaGkgYW5kIEMrK0J1aWxkZXIgZGV2ZWxvcGVyIGNvbW11bml0eSBieSBleHRlbmRpbmcgaXRzIHByb2R1Y3QgbGluZSB3aXRoIHBvd2VyZnVsIG5ldyBmZWF0dXJlcyBkZXNpZ25lZCB0byBoZWxwIFZDTCBkZXZlbG9wZXJzIGJ1aWxkIG5leHQtZ2VuZXJhdGlvbiB1c2VyIGV4cGVyaWVuY2VzIG9uIHRoZSBXaW5kb3dzIHBsYXRmb3JtLgorPC9kaXY+PGRpdiBjbGFzcz0id2hpdGUtdGV4dCIgc3R5bGU9InBhZGRpbmctYm90dG9tOjEwcHg7Ij4KKzxhIGhyZWY9Ii9Ib21lL0Fubm91bmNlcy8yMDEzLVZDTC1Db250cm9scy0xMy0yLnhtbCI+CitSZWFkIG1vcmUKKzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDsiPgorPGEgaHJlZj0iL0hvbWUvQW5ub3VuY2VzLzIwMTMtVW5pdmVyc2FsLXYxMy0yLnhtbCI+RGV2RXhwcmVzcyBBbm5vdW5jZXMgaXRzIE5ld2VzdCBSZWxlYXNlIGZvciAuTkVUIERldmVsb3BlcnM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKworTGV0J3MgYnVpbGQgZ3JlYXQgYXBwcywgdG9nZXRoZXIuIExlYXJuIGhvdyBEZXZFeHByZXNzIGhhcyBldm9sdmVkIGl0cyBhd2FyZC13aW5uaW5nIHByb2R1Y3QgbGluZSBhbmQgYWRkcmVzc2VkIHRoZSBuZWVkcyBvZiB0b2RheSBhbmQgdGVjaG5vbG9neSByZXF1aXJlbWVudHMgb2YgdG9tb3Jyb3cuCisKKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJwYWRkaW5nLWJvdHRvbToxMHB4OyI+Cis8YSBocmVmPSIvSG9tZS9Bbm5vdW5jZXMvMjAxMy1Vbml2ZXJzYWwtdjEzLTIueG1sIj4KK1JlYWQgbW9yZQorPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2PgorPGRpdiBjbGFzcz0id2hpdGUtdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206NXB4OyI+Cis8YSBocmVmPSIvSG9tZS9Db21tdW5pdHkvIj5Db2RlIFBhTE9Vc2EgMjAxNDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9ImdyYXktdGV4dC1vbi1ibGFjayIgc3R5bGU9InBhZGRpbmctYm90dG9tOjVweDsiPgorT25lIHRoaW5nIGFib3V0IENvZGUgUGFMT1VzYSBhdHRlbmRlZXMgaXMgdGhhdCB0aGV5IGFyZSBsZWFkZXJzLCB3aGV0aGVyIHRoYXQgYmUgaW4gdGhlIGNvbW11bml0eSBhcyBhIHdob2xlIG9yIGp1c3Qgd2l0aGluIHRoZWlyIGNvbXBhbnkuCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0icGFkZGluZy1ib3R0b206MTBweDsiPgorPGEgaHJlZj0iL0hvbWUvQ29tbXVuaXR5LyI+CitSZWFkIG1vcmUKKzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDsiPgorPGEgaHJlZj0iL0hvbWUvQ29tbXVuaXR5LyI+QkFTVEEhIFNwcmluZyAyMDE0PC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIiBzdHlsZT0icGFkZGluZy1ib3R0b206NXB4OyI+CitJbmRlcGVuZGVudCBkZXZlbG9wZXIgY29uZmVyZW5jZSBmb3IgTWljcm9zb2Z0IHRlY2hub2xvZ2llcyBpbiBHZXJtYW55LgorSGVyZSwgcGFydGljaXBhbnRzIGNhbiBiZW5lZml0IGZyb20gdGhlIGV4cGVyaWVuY2Ugb2YgcmVub3duZWQgZXhwZXJ0cyBmcm9tCithbGwgb3ZlciBFdXJvcGUuCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0icGFkZGluZy1ib3R0b206MTBweDsiPgorPGEgaHJlZj0iL0hvbWUvQ29tbXVuaXR5LyI+CitSZWFkIG1vcmUKKzwvYT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjUwJTsiPjxkaXYgc3R5bGU9InBhZGRpbmctbGVmdDoyMHB4OyI+Cis8ZGl2IGNsYXNzPSJsaWdodC1mb250ICBncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJmb250LXNpemU6MzZweDsiPgorCitGZWF0dXJlZCBUb29scworCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE4cHg7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvdG91Y2gueG1sIj4KK1RoZSBGdXR1cmUsIEhlcmUgVG9kYXkgPGJyPgorCitUb3VjaC1lbmFibGVkIGNvbnRyb2xzIGFjcm9zcyBwbGF0Zm9ybXMuCis8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKworTmVlZCB0byB0YXJnZXQgbXVsdGlwbGUgdmVyc2lvbnMgb2YgV2luZG93cyBhbmQgc3RpbGwgZGVsaXZlciBXaW5kb3dzIDggaW5zcGlyZWQgdXNlciBleHBlcmllbmNlcz8gU2VlIGhvdyBEZXZFeHByZXNzIGNvbnRyb2xzIGNhbiBicmluZyB0aGUgcG93ZXIgb2YgdG91Y2ggdG8geW91ciBkZXNrdG9wIGFwcHM6PGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy90b3VjaC54bWwiPldlYnBhZ2U8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE4cHg7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvQVNQL0dyaWQvIj4KK0JsYXppbmcgRmFzdCBBU1AuTkVUIEdyaWQgPGJyPgorCitCZWNhdXNlIHBlcmZvcm1hbmNlIG1hdHRlcnMuCis8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKworV2FudCB0byBzZWUgaG93IGZhc3QgdGhlIERldkV4cHJlc3MgQVNQeEdyaWRWaWV3IGNhbiBsb2FkIGRhdGE/IEhvdyBpdCBjYW4gaGFuZGxlIGh1bmRyZWRzIG9mIHRob3VzYW5kcyBvZiByZWNvcmRzIHdpdGggZWFzZSBhbmQgZ3JvdXAgYW5kIHNvcnQganVzdCBsaWtlIE1pY3Jvc29mdCBPdXRsb29rPworCis8L2Rpdj48ZGl2IGNsYXNzPSJncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJwYWRkaW5nLWJvdHRvbToxMHB4O2Rpc3BsYXk6aW5saW5lO2Zsb2F0OmxlZnQ7Ij4KKworVGFrZSBhIGxvb2sgYXQgb3VyIDY1MGsgZGF0YXNldCBkZW1vIHRvZGF5OgorCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0iZGlzcGxheTppbmxpbmU7cGFkZGluZy1sZWZ0OjEwcHg7Ij4KKzxhIGhyZWY9Imh0dHBzOi8vZGVtb3MuZGV2ZXhwcmVzcy5jb20vQVNQL1BlcmZvcm1hbmNlLyI+RGVtbzwvYT4gfCA8aW5wdXQgdHlwZT0iaGlkZGVuIiBhdXRvY29tcGxldGU9Im9mZiIgaWQ9IndzUG9wdXBXUyIgbmFtZT0id3NQb3B1cFdTIiB2YWx1ZT0iMDowOi0xOi0xMDAwMDotMTAwMDA6MDotMTAwMDA6LTEwMDAwOjEiPjx0YWJsZSBpZD0id3NQb3B1cF9QVzAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4O3otaW5kZXg6MTAwMDA7dmlzaWJpbGl0eTpoaWRkZW47ZGlzcGxheTpub25lOyI+Cis8dGJvZHk+PHRyPgorPHRkIGNsYXNzPSJkeHBjQ29udHJvbF9WaWRlbyIgb25tb3VzZWRvd249ImFzcHhQV01Eb3duKGV2ZW50LCd3c1BvcHVwJywwLGZhbHNlKSIgc3R5bGU9ImhlaWdodDozOTdweDt3aWR0aDo2NjNweDtjdXJzb3I6ZGVmYXVsdDttaW4td2lkdGg6MC4wMDAwMSU7Ij48dGFibGUgaWQ9IndzUG9wdXBfQ0xXMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJoZWlnaHQ6Mzk3cHg7d2lkdGg6NjYzcHg7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBpZD0id3NQb3B1cF9QV0MwIiBjbGFzcz0iZHhwY0NvbnRlbnRfVmlkZW8iIHN0eWxlPSJoZWlnaHQ6MTAwJTsiPjxkaXYgaWQ9IndzUG9wdXBfQ1NEMCIgY2xhc3M9ImR4cGNDb250ZW50UGFkZGluZ3NfVmlkZW8iPgorPGRpdiBjbGFzcz0ibC1kYXRhIiBpZD0id3NQb3B1cF8wX1Jvb3RDYWxsYmFja1BhbmVsIiBzdHlsZT0ib3ZlcmZsb3cteTpoaWRkZW47b3ZlcmZsb3cteDpoaWRkZW47Ij4KKworPC9kaXY+PHRhYmxlIGlkPSJ3c1BvcHVwXzBfUm9vdENhbGxiYWNrUGFuZWxfTFAiIGNsYXNzPSJkeGNwTG9hZGluZ1BhbmVsV2l0aENvbnRlbnRfRFgiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2xlZnQ6MHB4O3RvcDowcHg7ei1pbmRleDozMDAwMDtkaXNwbGF5Om5vbmU7Ij4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9ImR4Ij48aW1nIHNyYz0iL0RYUi5heGQ/cj05OTk5XzE5LTBHVzk4IiBhbHQ9IiIgYWxpZ249Im1pZGRsZSIgc3R5bGU9ImhlaWdodDozNnB4O3dpZHRoOjM2cHg7Ij48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT48ZGl2IGlkPSJ3c1BvcHVwXzBfUm9vdENhbGxiYWNrUGFuZWxfTEQiIGNsYXNzPSJkeGNwTG9hZGluZ0Rpdl9EWCIgc3R5bGU9ImxlZnQ6MHB4O3RvcDowcHg7ei1pbmRleDoyOTk5OTtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ij4KKworPC9kaXY+PHNjcmlwdCBpZD0iZHhzc182MTg2MDY3MzkiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cis8IS0tCisKK3ZhciBkeG8gPSBuZXcgQVNQeENsaWVudENhbGxiYWNrUGFuZWwoJ3dzUG9wdXBfMF9Sb290Q2FsbGJhY2tQYW5lbCcpOword2luZG93Wyd3c1BvcHVwX2NwXzAnXSA9IGR4bzsKK2R4by5jYWxsQmFjayA9IGZ1bmN0aW9uKGFyZykgeyBXZWJGb3JtX0RvQ2FsbGJhY2soJ2N0bDAwJFBvc3RDb250ZW50JGN0bDI3JHdzUG9wdXAkd3NQb3B1cF8wX1Jvb3RDYWxsYmFja1BhbmVsJyxhcmcsYXNweENhbGxiYWNrLCd3c1BvcHVwXzBfUm9vdENhbGxiYWNrUGFuZWwnLGFzcHhDYWxsYmFja0Vycm9yLHRydWUpOyB9OworZHhvLnVuaXF1ZUlEID0gJ2N0bDAwJFBvc3RDb250ZW50JGN0bDI3JHdzUG9wdXAkd3NQb3B1cF8wX1Jvb3RDYWxsYmFja1BhbmVsJzsKK2R4by5FbmRDYWxsYmFjay5BZGRIYW5kbGVyKGZ1bmN0aW9uKHMsIGFyZ3MpIHsgX3dzUG9wdXBXaW5kb3dDYWxsYmFja0NvbXBsZXRlKHdzUG9wdXAuR2V0V2luZG93KDApLCBzKTsgfSk7CitkeG8uY3BXaW5kb3dXaWR0aD02NjM7CitkeG8uY3BDb250ZW50V2lkdGg9Jzg1NHB4JzsKK2R4by5jcFdpbmRvdz0nd3NQb3B1cF9jcF8wJzsKK2R4by5oaWRlQ29udGVudE9uQ2FsbGJhY2s9ZmFsc2U7CitkeG8uSW5saW5lSW5pdGlhbGl6ZSgpOworCisvLy0tPgorPC9zY3JpcHQ+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT48aWZyYW1lIGlkPSJ3c1BvcHVwX0RYUFdJRjAiIHNyYz0iamF2YXNjcmlwdDpmYWxzZSIgc2Nyb2xsaW5nPSJubyIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Om5vbmU7ei1pbmRleDo5OTk5O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoU3R5bGU9MCwgT3BhY2l0eT0wKTsiPgorCis8L2lmcmFtZT48ZGl2IGlkPSJ3c1BvcHVwX0RYUFdNQjAiIGNsYXNzPSJkeHBjTW9kYWxCYWNrZ3JvdW5kX1ZpZGVvIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47bGVmdDowcHg7dG9wOjBweDt6LWluZGV4Ojk5OTk7Ij4KKworPC9kaXY+PHRhYmxlIGlkPSJ3c1BvcHVwX0xQIiBjbGFzcz0iZHhwY0xvYWRpbmdQYW5lbF9WaWRlbyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7bGVmdDowcHg7dG9wOjBweDt6LWluZGV4OjMwMDAwO2Rpc3BsYXk6bm9uZTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0iZHgiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjhweDsiPjxpbWcgc3JjPSIvRFhSLmF4ZD9yPTFfMTMtaDR3UjciIGFsdD0iIiBhbGlnbj0ibWlkZGxlIj48L3RkPjx0ZCBjbGFzcz0iZHgiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MHB4OyI+PHNwYW4gaWQ9IndzUG9wdXBfVEwiPkxvYWRpbmfigKY8L3NwYW4+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+PGRpdiBpZD0id3NQb3B1cF9MRCIgY2xhc3M9ImR4cGNMb2FkaW5nRGl2X1ZpZGVvIiBzdHlsZT0ibGVmdDowcHg7dG9wOjBweDt6LWluZGV4OjI5OTk5O2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTsiPgorCis8L2Rpdj48c2NyaXB0IGlkPSJkeHNzXzE3NTI5MTM3NSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKzwhLS0KK2FzcHhBZGRIb3Zlckl0ZW1zKCd3c1BvcHVwJyxbW1snZHhwY0Nsb3NlQnV0dG9uSG92ZXJfVmlkZW8nXSxbJyddLFsnSENCMCddLCxbWycnXV0sWydJbWcnXV1dKTsKKwordmFyIGR4byA9IG5ldyBBU1B4Q2xpZW50UG9wdXBDb250cm9sKCd3c1BvcHVwJyk7Cit3aW5kb3dbJ3dzUG9wdXAnXSA9IGR4bzsKK2R4by5jYWxsQmFjayA9IGZ1bmN0aW9uKGFyZykgeyBXZWJGb3JtX0RvQ2FsbGJhY2soJ2N0bDAwJFBvc3RDb250ZW50JGN0bDI3JHdzUG9wdXAnLGFyZyxhc3B4Q2FsbGJhY2ssJ3dzUG9wdXAnLGFzcHhDYWxsYmFja0Vycm9yLHRydWUpOyB9OworZHhvLnVuaXF1ZUlEID0gJ2N0bDAwJFBvc3RDb250ZW50JGN0bDI3JHdzUG9wdXAnOworZHhvLnJlbmRlcklGcmFtZUZvclBvcHVwRWxlbWVudHMgPSB0cnVlOworZHhvLkluaXQuQWRkSGFuZGxlcihfd3NBdHRhY2hFU0NPbkluaXQpOworZHhvLlBvcFVwLkFkZEhhbmRsZXIoX3dzU2hvd1BvcHVwV2luZG93KTsKK2R4by5DbG9zaW5nLkFkZEhhbmRsZXIoU3RvcFZpZGVvKTsKK2R4by5jcEVuYWJsZUNhbGxiYWNrcz10cnVlOworZHhvLmNwU2VuZENhbGxiYWNrSWZMb2FkZWQ9dHJ1ZTsKK2R4by5lbmFibGVBbmltYXRpb249ZmFsc2U7CitkeG8ucG9wdXBIb3Jpem9udGFsQWxpZ249J1dpbmRvd0NlbnRlcic7CitkeG8ucG9wdXBWZXJ0aWNhbEFsaWduPSdXaW5kb3dDZW50ZXInOworZHhvLmlzUG9wdXBQb3NpdGlvbkNvcnJlY3Rpb25Pbj1mYWxzZTsKK2R4by5zaGFkb3dWaXNpYmxlPWZhbHNlOworZHhvLmhpZGVCb2R5U2Nyb2xsV2hlbk1vZGFsID0gZmFsc2U7CitkeG8ud2luZG93c1BvcHVwRWxlbWVudElETGlzdD1bXTsKK2R4by5DcmVhdGVXaW5kb3dzKFsnd3NQb3B1cF9jcF8wJ10pOworZHhvLklubGluZUluaXRpYWxpemUoKTsKKworLy8tLT4KKzwvc2NyaXB0PjxhIGNsYXNzPSJoLXJlbGF0aXZlIGgtaW5saW5lLWJsb2NrIiBvbmNsaWNrPSJ3c1BvcHVwLlNob3dXaW5kb3cod3NQb3B1cC5HZXRXaW5kb3coMCkpOyByZXR1cm4gZmFsc2U7IiBocmVmPSJodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL3RTek11ZS0xRWhFP2F1dG9wbGF5PTEiPlZpZGVvPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0id2hpdGUtdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206NXB4OyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zL1NwcmVhZHNoZWV0LyI+CitTcHJlYWRzaGVldHMgRXZlcnl3aGVyZTxicj4KKworV2luRm9ybXMsIFdQRiBhbmQgQVNQLk5FVAorPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIiBzdHlsZT0icGFkZGluZy1ib3R0b206NXB4OyI+CisKK1JlYWR5IHRvIHJlcGxpY2F0ZSB0aGUgY2FwYWJpbGl0aWVzIG9mIEV4Y2VsIGFuZCBpbnRyb2R1Y2UgdGhlIHBvd2VyIG9mIHNwcmVhZHNoZWV0cyB0byB5b3VyIGFwcGxpY2F0aW9uPworCis8L2Rpdj48ZGl2IGNsYXNzPSJncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJwYWRkaW5nLWJvdHRvbToxMHB4O2Rpc3BsYXk6aW5saW5lO2Zsb2F0OmxlZnQ7Ij4KKworTGVhcm4gbW9yZSBhYm91dCBvdXIgc3ByZWFkc2hlZXQgY29udHJvbHMgYnkgcGxhdGZvcm06CisKKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJkaXNwbGF5OmlubGluZTtwYWRkaW5nLWxlZnQ6MTBweDsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9XaW5Gb3Jtcy9TcHJlYWRzaGVldC8iPldpbkZvcm1zPC9hPiB8IDxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvQVNQL1NwcmVhZHNoZWV0LyI+QVNQLk5FVDwvYT4gfCA8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dQRi9TcHJlYWRzaGVldC8iPldQRjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDsiPgorPGEgaHJlZj0iaHR0cHM6Ly90ZXN0Y2FmZS5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj4KK1dlYiBUZXN0aW5nIENhbiBCZSBGdW48YnI+CisKK1dlIGRvIHRoZSBoZWF2eSBsaWZ0aW5nLCB5b3UgdGFrZSB0aGUgY3JlZGl0LgorPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIj4KKworVGlyZWQgb2YgYnJvd3NlciBhdXRvbWF0aW9uIHRvb2xzIHByZXRlbmRpbmcgdG8gYmUgcmVhbCB3ZWIgdGVzdGluZyB0b29scz8gV2FudCBhIHRvb2wgdGhhdCBhbGxvd3MgeW91IHRvIGxldmVyYWdlIHlvdXIgSmF2YVNjcmlwdCBrbm93bGVkZ2U/CitUYWtlIGEgbG9vayBhdCBUZXN0Q2FmZSBhbmQgc2VlIHdoYXQgdGhlIGZ1dHVyZSBob2xkcyBpbiBzdG9yZSBmb3IgeW91OjxhIGhyZWY9Imh0dHBzOi8vdGVzdGNhZmUuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+V2VicGFnZTwvYT4KKzwvZGl2PgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9IkZvb3RlclYzIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iVG9wIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iTWFpbkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iTGVmdCI+Cis8ZGl2IGNsYXNzPSJHcm91cCI+CitERVZFWFBSRVNTCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLUhvbWVNaXNzaW9ueG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL01pc3Npb24ueG1sIiB0YXJnZXQ9Il9zZWxmIj5BYm91dCBVczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItSG9tZUFubm91bmNlcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Bbm5vdW5jZXMvIiB0YXJnZXQ9Il9zZWxmIj5OZXdzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lYXdhcmRzeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL2F3YXJkcy54bWwiIHRhcmdldD0iX3NlbGYiPk91ciBBd2FyZHM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLUhvbWVDb21tdW5pdHkiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvQ29tbXVuaXR5LyIgdGFyZ2V0PSJfc2VsZiI+VXBjb21pbmcgRXZlbnRzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lQ29tbWVudHN4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvQ29tbWVudHMueG1sIiB0YXJnZXQ9Il9zZWxmIj5Vc2VyIENvbW1lbnRzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lQ2FzZVN0dWRpZXMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvQ2FzZS1TdHVkaWVzLyIgdGFyZ2V0PSJfc2VsZiI+Q2FzZSBTdHVkaWVzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lcHVibGljYXRpb25zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL3B1YmxpY2F0aW9ucy54bWwiIHRhcmdldD0iX3NlbGYiPlJldmlld3MgYW5kIFB1YmxpY2F0aW9uczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3VwcG9ydGxpY2Vuc2luZ2ZhcXhtbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9saWNlbnNpbmdmYXEueG1sIiB0YXJnZXQ9Il9zZWxmIj5MaWNlbnNpbmc8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1cHBvcnRPcmRlciIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9PcmRlci8iIHRhcmdldD0iX3NlbGYiPlB1cmNoYXNpbmc8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLUhvbWVDb21tdW5pdHltdnB4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvQ29tbXVuaXR5L212cC54bWwiIHRhcmdldD0iX3NlbGYiPk1WUCBQcm9ncmFtPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lQ29udGFjdFVzeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbnRhY3RVcy54bWwiIHRhcmdldD0iX3NlbGYiPkNvbnRhY3QgVXM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLUhvbWVMb2dvc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Mb2dvcy54bWwiIHRhcmdldD0iX3NlbGYiPkxvZ29zPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJNaWRkbGUiPgorPGRpdiBjbGFzcz0iQ29sdW1uIj4KKzxkaXYgY2xhc3M9Ikdyb3VwIj4KKy5ORVQgQ09OVFJPTFMKKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNORVRDb250cm9sc1dpbkZvcm1zIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luRm9ybXMvIiB0YXJnZXQ9Il9zZWxmIj5XaW5Gb3JtczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNORVRDb250cm9sc0FTUCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC8iIHRhcmdldD0iX3NlbGYiPkFTUC5ORVQ8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzTkVUQ29udHJvbHNBU1BNVkMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvTVZDLyIgdGFyZ2V0PSJfc2VsZiI+TVZDPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c05FVENvbnRyb2xzV1BGIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV1BGLyIgdGFyZ2V0PSJfc2VsZiI+V1BGPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c05FVENvbnRyb2xzU2lsdmVybGlnaHQiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9TaWx2ZXJsaWdodC8iIHRhcmdldD0iX3NlbGYiPlNpbHZlcmxpZ2h0PC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c05FVENvbnRyb2xzV2luUlQiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9XaW5SVC8iIHRhcmdldD0iX3NlbGYiPldpbmRvd3MgOCBYQU1MPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iR3JvdXAgQnJlYWsiPgorQ1JPU1MgUExBVEZPUk0KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3Vic2NyaXB0aW9uc1JlcG9ydGluZyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy9SZXBvcnRpbmcvIiB0YXJnZXQ9Il9zZWxmIj5SZXBvcnRpbmc8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzTkVURG9jdW1lbnRTZXJ2ZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Eb2N1bWVudC1TZXJ2ZXIvIiB0YXJnZXQ9Il9zZWxmIj5Eb2N1bWVudCBBdXRvbWF0aW9uPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDb2x1bW4iPgorPGRpdiBjbGFzcz0iR3JvdXAiPgorTU9CSUxFIChIVE1MIEpTKQorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c0hUTUxKUyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvSFRNTC1KUy8iIHRhcmdldD0iX3NlbGYiPkRldkV4dHJlbWU8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJHcm91cCBCcmVhayI+CitFTlRFUlBSSVNFIFRPT0xTCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzTkVUUmVwb3J0U2VydmVyIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvUmVwb3J0LVNlcnZlci8iIHRhcmdldD0iX3NlbGYiPlJlcG9ydCBTZXJ2ZXI8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzTkVURGFzaGJvYXJkIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvRGFzaGJvYXJkLyIgdGFyZ2V0PSJfc2VsZiI+QW5hbHl0aWNzIERhc2hib2FyZDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikdyb3VwIEJyZWFrIj4KK0ZSQU1FV09SS1MKKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNORVRBcHBsaWNhdGlvbl9GcmFtZXdvcmsiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9BcHBsaWNhdGlvbl9GcmFtZXdvcmsvIiB0YXJnZXQ9Il9zZWxmIj5lWHByZXNzQXBwIEZyYW1ld29yazwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikdyb3VwIEJyZWFrIj4KK0NPREUtREVCVUctUkVGQUNUT1IKKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNWaXN1YWxfU3R1ZGlvX0FkZGluQ29kaW5nX0Fzc2lzdGFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL1Zpc3VhbF9TdHVkaW9fQWRkLWluL0NvZGluZ19Bc3Npc3RhbmNlLyIgdGFyZ2V0PSJfc2VsZiI+Q29kZVJ1c2ggZm9yIFZpc3VhbCBTdHVkaW88L2E+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IkNvbHVtbiBMYXN0Ij4KKzxkaXYgY2xhc3M9Ikdyb3VwIj4KK0hUTUwgSkFWQVNDUklQVAorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1odHRwcGhvbmVqc2RldmV4cHJlc3Njb20iIGhyZWY9Imh0dHBzOi8vcGhvbmVqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5QaG9uZUpTPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1odHRwY2hhcnRqc2RldmV4cHJlc3Njb20iIGhyZWY9Imh0dHBzOi8vY2hhcnRqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5DaGFydEpTPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iR3JvdXAgQnJlYWsiPgorRlVOQ1RJT05BTCBXRUIgVEVTVElORworPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1odHRwdGVzdGNhZmVkZXZleHByZXNzY29tIiBocmVmPSJodHRwczovL3Rlc3RjYWZlLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPlRlc3RDYWbDqTwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikdyb3VwIEJyZWFrIj4KK0RFTFBISSBDKytCVUlMREVSCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzVkNMIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9WQ0wvIiB0YXJnZXQ9Il9zZWxmIj5WQ0w8L2E+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iUmlnaHQiPgorPGRpdiBjbGFzcz0iR3JvdXAiPgorU1VQUE9SVAorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1TdXBwb3J0Q2VudGVyIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0NlbnRlci8iIHRhcmdldD0iX3NlbGYiPlNlYXJjaCB0aGUgS25vd2xlZGdlIEJhc2U8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1cHBvcnRDZW50ZXJRdWVzdGlvbkNoYW5nZUZpbHRlclNldDFGYXZvcml0ZXNPbmx5RmFsc2VNeUl0ZW1zT25seVRydWVNeVRlYW1JdGVtc09ubHlGYWxzZVBsYXRmb3JtTmFtZUFsbFBsYXRmb3Jtc1Byb2R1Y3ROYW1lQWxsUHJvZHVjdHNUaWNrZXRUeXBlQWxsIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0NlbnRlci9RdWVzdGlvbi9DaGFuZ2VGaWx0ZXJTZXQvMT9GYXZvcml0ZXNPbmx5PUZhbHNlJmFtcDtNeUl0ZW1zT25seT1UcnVlJmFtcDtNeVRlYW1JdGVtc09ubHk9RmFsc2UmYW1wO1BsYXRmb3JtTmFtZT1BbGxQbGF0Zm9ybXMmYW1wO1Byb2R1Y3ROYW1lPUFsbFByb2R1Y3RzJmFtcDtUaWNrZXRUeXBlPUFsbCIgdGFyZ2V0PSJfc2VsZiI+TXkgUXVlc3Rpb25zPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1TdXBwb3J0Q2VudGVyRXhhbXBsZUxpc3QiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvQ2VudGVyL0V4YW1wbGUvTGlzdCIgdGFyZ2V0PSJfc2VsZiI+Q29kZSBFeGFtcGxlczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3VwcG9ydFN0YXJ0IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L1N0YXJ0LyIgdGFyZ2V0PSJfc2VsZiI+R2V0dGluZyBTdGFydGVkPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1TdXBwb3J0RGVtb3MiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvRGVtb3MvIiB0YXJnZXQ9Il9zZWxmIj5EZW1vczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItaHR0cGRvY3VtZW50YXRpb25kZXZleHByZXNzY29tIiBocmVmPSJodHRwczovL2RvY3VtZW50YXRpb24uZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9zZWxmIj5Eb2N1bWVudGF0aW9uPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1odHRwY29tbXVuaXR5ZGV2ZXhwcmVzc2NvbWJsb2dzIiBocmVmPSJodHRwczovL2NvbW11bml0eS5kZXZleHByZXNzLmNvbS9ibG9ncy8iIHRhcmdldD0iX3NlbGYiPkJsb2dzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lVHJhaW5pbmciIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvVHJhaW5pbmcvIiB0YXJnZXQ9Il9zZWxmIj5UcmFpbmluZzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3VwcG9ydFdlYmluYXJzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L1dlYmluYXJzLyIgdGFyZ2V0PSJfc2VsZiI+V2ViaW5hcnM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtQnJlYWsiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1cHBvcnR2ZXJzaW9uc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC92ZXJzaW9ucy54bWwiIHRhcmdldD0iX3NlbGYiPkN1cnJlbnQgVmVyc2lvbi9CdWlsZDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3VwcG9ydFdoYXRzTmV3IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L1doYXRzTmV3LyIgdGFyZ2V0PSJfc2VsZiI+VmVyc2lvbiBIaXN0b3J5PC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDaGF0SW5mbyI+Cis8ZGl2IGNsYXNzPSJDaGF0QnV0dG9uIE9mZmxpbmUiIGlkPSJGb290ZXJDaGF0QnV0dG9uIj4KK0xJVkUgQ0hBVDxkaXYgdGl0bGU9IkxpdmUgQ2hhdCBpcyBjdXJyZW50bHkgb2ZmbGluZS4iIHRvbmxpbmU9IkxpdmUgQ2hhdCIgdG9mZmxpbmU9IkxpdmUgQ2hhdCBpcyBjdXJyZW50bHkgb2ZmbGluZS4iPgorCis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj48cD5DaGF0IGlzIG9uZSBvZiB0aGUgbWFueSB3YXlzIHlvdSBjYW4gY29udGFjdCBtZW1iZXJzIG9mIHRoZSBEZXZFeHByZXNzIFRlYW0uPGJyPldlIGFyZSBhdmFpbGFibGUgTW9uZGF5LUZyaWRheSBiZXR3ZWVuIDc6MzBhbSBhbmQgNDozMHBtIFBhY2lmaWMgVGltZS48L3A+PHA+SWYgeW91IG5lZWQgYWRkaXRpb25hbCBwcm9kdWN0IGluZm9ybWF0aW9uLCB3cml0ZSB0byB1cyBhdCA8YSBocmVmPSJtYWlsdG86aW5mb0BkZXZleHByZXNzLmNvbSI+aW5mb0BkZXZleHByZXNzLmNvbTwvYT4gb3IgY2FsbCB1cyBhdCA8c3Ryb25nPisxICg4MTgpIDg0NC0zMzgzPC9zdHJvbmc+PC9wPgorPC9kaXY+PGRpdiBjbGFzcz0iRm9sbG93VXMiPgorPGRpdj4KK0ZPTExPVyBVUworPC9kaXY+PGEgaWQ9ImN0bDAwX0Zvb3Rlci1GYWNrYm9vayIgdGl0bGU9IkZhY2Vib29rIiBjbGFzcz0iRm9sbG93SWNvbiBGYWNlYm9vayIgaHJlZj0iaHR0cDovL3d3dy5mYWNlYm9vay5jb20vRGV2RXhwcmVzcyI+PC9hPjxhIGlkPSJjdGwwMF9Gb290ZXItVHdpdHRlciIgdGl0bGU9IlR3aXR0ZXIiIGNsYXNzPSJGb2xsb3dJY29uIFR3aXR0ZXIiIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9EZXZFeHByZXNzIj48L2E+PGEgaWQ9ImN0bDAwX0Zvb3Rlci1HUGx1cyIgdGl0bGU9Ikdvb2dsZSsiIGNsYXNzPSJGb2xsb3dJY29uIEdQbHVzIiByZWw9InB1Ymxpc2hlciIgaHJlZj0iaHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vK2RldmV4cHJlc3MvcG9zdHMiPjwvYT48YSBpZD0iY3RsMDBfRm9vdGVyLVlvdVR1YmUiIHRpdGxlPSJZb3VUdWJlIiBjbGFzcz0iRm9sbG93SWNvbiBZb3VUdWJlIiBocmVmPSJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3VzZXIvRGV2ZWxvcGVyRXhwcmVzcyI+PC9hPjxhIGlkPSJjdGwwMF9Gb290ZXItQmxvZ3MiIHRpdGxlPSJEZXZFeHByZXNzIEJsb2dzIiBjbGFzcz0iRm9sbG93SWNvbiBCbG9ncyIgaHJlZj0iaHR0cHM6Ly9jb21tdW5pdHkuZGV2ZXhwcmVzcy5jb20vYmxvZ3MvIj48L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQm90dG9tIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IlN1YkZvb3RlclYzIENvbnRlbnQiPgorPGRpdiBjbGFzcz0iTGVmdCI+Cis8cD5EZXZFeHByZXNzIGVuZ2luZWVycyBmZWF0dXJlLWNvbXBsZXRlIFByZXNlbnRhdGlvbiBDb250cm9scywgSURFIFByb2R1Y3Rpdml0eSBUb29scywgQnVzaW5lc3MgQXBwbGljYXRpb24gRnJhbWV3b3JrcywgYW5kIFJlcG9ydGluZyBTeXN0ZW1zIGZvciBWaXN1YWwgU3R1ZGlvLCBhbG9uZyB3aXRoIGhpZ2gtcGVyZm9ybWFuY2UgSFRNTCBKUyBNb2JpbGUgRnJhbWV3b3JrcyBmb3IgZGV2ZWxvcGVycyB0YXJnZXRpbmcgaU9TLCBBbmRyb2lkIGFuZCBXaW5kb3dzIFBob25lLiBXaGV0aGVyIHVzaW5nIFdQRiwgU2lsdmVybGlnaHQsIEFTUC5ORVQsIFdpbkZvcm1zLCBIVE1MNSBvciBXaW5kb3dzIDgsIERldkV4cHJlc3MgdG9vbHMgaGVscCB5b3UgYnVpbGQgYW5kIGRlbGl2ZXIgeW91ciBiZXN0IGluIHRoZSBzaG9ydGVzdCB0aW1lIHBvc3NpYmxlLjwvcD4KKzwvZGl2PjxkaXYgY2xhc3M9IlJpZ2h0IExvZ28iPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJVbmRlckZvb3RlclYzIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iTGVmdCI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByaXZhY3lMaW5rIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0xlZ2FsLnhtbCI+WW91ciBQcml2YWN5IC0gTGVnYWwgU3RhdGVtZW50czwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IlJpZ2h0Ij4KK0NvcHlyaWdodCDCqSAxOTk4LTIwMTQgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLjxicj5BbGwgdHJhZGVtYXJrcyBvciByZWdpc3RlcmVkIHRyYWRlbWFya3MgYXJlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzCis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZSI+Cis8c3BhbiBpZD0ibHBCdXREaXZJRC0xMzIxODYyNTM0NTY2Ij48L3NwYW4+Cis8ZGl2IGlkPSJscE1haW5TY3JpcHRQbGFjZWhvbGRlciI+PC9kaXY+Cis8ZGl2IGlkPSJscE1vbml0b3JTY3JpcHRQbGFjZWhvbGRlciI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisoZnVuY3Rpb24oKSB7CitmdW5jdGlvbiBpbml0X2xwX2FzeW5jKCkgeworbG9hZF9tYWluX3NjcmlwdCgpOworbG9hZF9scF9tb25pdG9yKCk7Cit9CitmdW5jdGlvbiBsb2FkX21haW5fc2NyaXB0KCkgewordmFyIG15c2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CitteXNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CitteXNjcmlwdC5zcmMgPSAoJ2h0dHBzOi8vc2VydmVyLmlhZC5saXZlcGVyc29uLm5ldC9oYy84NDE4MDI3NS8/Y21kPW1UYWdSZXBzdGF0ZSZzaXRlPTg0MTgwMjc1JmJ1dHRvbklEPTcmZGl2SUQ9bHBCdXREaXZJRC0xMzIxODYyNTM0NTY2JmJ0PTMmYz0xJyk7Cit2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdscE1haW5TY3JpcHRQbGFjZWhvbGRlcicpOworcy5hcHBlbmRDaGlsZChteXNjcmlwdCk7Cit9CitmdW5jdGlvbiBsb2FkX2xwX21vbml0b3IoKSB7Cit2YXIgbXlzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKK215c2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKK215c2NyaXB0LnNyYyA9ICgnL0RYUi5heGQ/cj05OTk5XzIwLTBHVzk4Jyk7Cit2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdscE1vbml0b3JTY3JpcHRQbGFjZWhvbGRlcicpOworcy5hcHBlbmRDaGlsZChteXNjcmlwdCk7Cit9CitpZiAod2luZG93LmF0dGFjaEV2ZW50KSB7Cit3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsIGluaXRfbHBfYXN5bmMpOworfSBlbHNlIHsKK2lmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgeword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBpbml0X2xwX2FzeW5jLCBmYWxzZSk7Cit9Cit9CisKK3ZhciBsY0NvbnRhaW5lciA9ICQoJyNscEJ1dERpdklELTEzMjE4NjI1MzQ1NjYnKTsKKworaWYobGNDb250YWluZXIgIT0gbnVsbCAmJiB0eXBlb2YgX3dzTGl2ZUNoYXRTdGF0ZUNoYW5nZWQgIT0gJ3VuZGVmaW5lZCcpIHsKK2xjQ29udGFpbmVyLmJpbmQoJ2NvbnRlbnRjaGFuZ2UnLCBfd3NMaXZlQ2hhdFN0YXRlQ2hhbmdlZCk7Cit9Cit9KSgpOworPC9zY3JpcHQ+Cis8IS0tIEJFR0lOIExpdmVQZXJzb24gTW9uaXRvci4gLS0+Cis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KK3ZhciBscE1UYWdDb25maWcgPSB7ICdscFNlcnZlcic6ICJzZXJ2ZXIuaWFkLmxpdmVwZXJzb24ubmV0IiwgJ2xwTnVtYmVyJzogIjg0MTgwMjc1IiwgJ2xwUHJvdG9jb2wnOiAoZG9jdW1lbnQubG9jYXRpb24udG9TdHJpbmcoKS5pbmRleE9mKCdodHRwczonKSA9PSAwKSA/ICdodHRwcycgOiAnaHR0cCcgfTsgZnVuY3Rpb24gbHBBZGRNb25pdG9yVGFnKHNyYykgeyBpZiAodHlwZW9mIChzcmMpID09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiAoc3JjKSA9PSAnb2JqZWN0JykgeyBzcmMgPSBscE1UYWdDb25maWcubHBNVGFnU3JjID8gbHBNVGFnQ29uZmlnLmxwTVRhZ1NyYyA6ICcvaGNwL2h0bWwvbVRhZy5qcyc7IH0gaWYgKHNyYy5pbmRleE9mKCdodHRwJykgIT0gMCkgeyBzcmMgPSBscE1UYWdDb25maWcubHBQcm90b2NvbCArICI6Ly8iICsgbHBNVGFnQ29uZmlnLmxwU2VydmVyICsgc3JjICsgJz9zaXRlPScgKyBscE1UYWdDb25maWcubHBOdW1iZXI7IH0gZWxzZSB7IGlmIChzcmMuaW5kZXhPZignc2l0ZT0nKSA8IDApIHsgaWYgKHNyYy5pbmRleE9mKCc/JykgPCAwKSBzcmMgPSBzcmMgKyAnPyc7IGVsc2Ugc3JjID0gc3JjICsgJyYnOyBzcmMgPSBzcmMgKyAnc2l0ZT0nICsgbHBNVGFnQ29uZmlnLmxwTnVtYmVyOyB9IH07IHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IHMuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOyBzLnNldEF0dHJpYnV0ZSgnY2hhcnNldCcsICdpc28tODg1OS0xJyk7IHMuc2V0QXR0cmlidXRlKCdzcmMnLCBzcmMpOyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpLml0ZW0oMCkuYXBwZW5kQ2hpbGQocyk7IH0gaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkgd2luZG93LmF0dGFjaEV2ZW50KCdvbmxvYWQnLCBscEFkZE1vbml0b3JUYWcpOyBlbHNlIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgbHBBZGRNb25pdG9yVGFnLCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwhLS0gRU5EIExpdmVQZXJzb24gTW9uaXRvci4gLS0+Cis8IS0tIEJFR0lOIE1vbml0b3IgVHJhY2tpbmcgVmFyaWFibGVzICAtLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2lmICh0eXBlb2YgKGxwTVRhZ0NvbmZpZykgPT0gInVuZGVmaW5lZCIpIHsgbHBNVGFnQ29uZmlnID0ge307IH0KK2lmICh0eXBlb2YgKGxwTVRhZ0NvbmZpZy5wYWdlVmFyKSA9PSAidW5kZWZpbmVkIikgeyBscE1UYWdDb25maWcucGFnZVZhciA9IFtdOyB9CitpZiAodHlwZW9mKGxwTVRhZ0NvbmZpZy52aXNpdG9yVmFyKSA9PSAidW5kZWZpbmVkIikgeyBscE1UYWdDb25maWcudmlzaXRvclZhciA9IFtdOyB9CitscE1UYWdDb25maWcudmlzaXRvclZhcltscE1UYWdDb25maWcudmlzaXRvclZhci5sZW5ndGhdID0gJ2N1c3RvbWVyPTAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCc7Cis8L3NjcmlwdD4KKzwhLS0gRW5kIE1vbml0b3IgVHJhY2tpbmcgVmFyaWFibGVzICAtLT4KKzwvZGl2PgorCis8L2Rpdj4KKzxkaXYgaWQ9IkluUGFnZUNoYXQiIGNsYXNzPSJJblBhZ2VDaGF0IEhpZGRlbiI+Cis8ZGl2PgorTGl2ZSBDaGF0Cis8L2Rpdj4KKzwvZGl2PjxkaXYgc3R5bGU9IndpZHRoOjBweDtoZWlnaHQ6MHB4O292ZXJmbG93OmhpZGRlbjsiPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogPCFbQ0RBVEFbICovCit2YXIgZ29vZ2xlX2NvbnZlcnNpb25faWQgPSAxMDcxNzU5NjQxOwordmFyIGdvb2dsZV9jdXN0b21fcGFyYW1zID0gd2luZG93Lmdvb2dsZV90YWdfcGFyYW1zOwordmFyIGdvb2dsZV9yZW1hcmtldGluZ19vbmx5ID0gdHJ1ZTsKKy8qIF1dPiAqLworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGVhZHNlcnZpY2VzLmNvbS9wYWdlYWQvY29udmVyc2lvbi5qcz93c0NhY2hlPTJfMF8xXzI4NTY1Ij48L3NjcmlwdD4KKzxub3NjcmlwdD4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lOyI+Cis8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJib3JkZXItc3R5bGU6bm9uZTsiIGFsdD0iIiBzcmM9Imh0dHBzOi8vZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0L3BhZ2VhZC92aWV3dGhyb3VnaGNvbnZlcnNpb24vMTA3MTc1OTY0MS8/dmFsdWU9MCZhbXA7Z3VpZD1PTiZhbXA7c2NyaXB0PTAiLz4KKzwvZGl2PgorPC9ub3NjcmlwdD4KKzwvZGl2PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvLzwhW0NEQVRBWworCit2YXIgY2FsbEJhY2tGcmFtZVVybD0nL1dlYlJlc291cmNlLmF4ZD9kPTg0cC1HdGd3akxJRFJ0MFktNy1JR3Q0aUhXdEQ0b2NDVFA1bGx6bnhPYVNpTjk3S1ZGaWF3VVg0MFVXcVEzVDIwSDRkUVFGM2pBSDBOUkhiRGM2Z2pVTkNFaXcxJnQ9NjM1MDg5NzQzNDgwMDAwMDAwJzsKK1dlYkZvcm1fSW5pdENhbGxiYWNrKCk7Ly9dXT4KKzwvc2NyaXB0PgorPC9mb3JtPgorCisKKzwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vZHgvc3JjLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2VyaWFsaXphdGlvbi9keC9zcmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjA5M2UwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vZHgvc3JjLmh0bWwKQEAgLTAsMCArMSwxNjQ1IEBACisKKworPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL0RYUi5heGQ/cj0yXzEsMV80LDJfMiwxXzMsMV8yLWg0d1I3IiAvPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8vIDwhW0NEQVRBWwordmFyIElzTG9nZ2VkSW4gPSBmYWxzZTsgdmFyIElzRW1wbG95ZWUgPSBmYWxzZTsgdmFyIElzUG9zdGJhY2sgPSBmYWxzZTsgdmFyIFByZWZlcnJlZExhbmd1YWdlID0gJ3J1LVJVJworLy8gXV0+Cis8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvLyA8IVtDREFUQVsKK3ZhciBfd3NEYXRhID0geyJTZXR0aW5ncyI6eyJUcmFja2luZ0VuYWJsZWQiOnRydWV9LCJVc2VySW5mbyI6eyJJc0VtcGxveWVlIjpmYWxzZSwiSXNMb2dnZWRJbiI6ZmFsc2V9fTsKKy8vXV0+Cis8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvRFhSLmF4ZD9yPTk5OTlfMTctMEdXOTgiIGlkPSJkeC1qcXVlcnkiPjwvc2NyaXB0PjxsaW5rIGhyZWY9IkFwcF9UaGVtZXMvRFgvQ29tbW9uL2NvbW1vbi5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz48bGluayBocmVmPSJBcHBfVGhlbWVzL0RYL0NvbW1vbi9jb3JlLmNzcz93c0NhY2hlPTJfMF8xXzI4NTY1IiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPjxsaW5rIGhyZWY9IkFwcF9UaGVtZXMvRFgvQ29tbW9uL3Zpc3VhbC5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz48bGluayBocmVmPSJBcHBfVGhlbWVzL0RYL0VkaXRvcnMvc3R5bGVzLmNzcz93c0NhY2hlPTJfMF8xXzI4NTY1IiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPjxsaW5rIGhyZWY9IkFwcF9UaGVtZXMvRFgvV2ViL3N0eWxlcy5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz48dGl0bGU+CitEZXZFeHByZXNzOiBVSSBDb250cm9scywgUmVwb3J0aW5nLCBEZXZlbG9wZXIgVG9vbHMgYW5kIE9STQorPC90aXRsZT48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9MTIwNSIgLz48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIiAvPjxtZXRhIG5hbWU9InZlcmlmeS12MSIgY29udGVudD0iS05RZU0xZzltS05LZUlDME54bGlXMzNoQVVyeWJvRmZXVmM3RVUxR01IOD0iIC8+PG1ldGEgaHR0cC1lcXVpdj0iaW1hZ2V0b29sYmFyIiBjb250ZW50PSJubyIgLz48bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Ik5PT0RQIiAvPjxtZXRhIGlkPSJzaGFyZUltYWdlIiBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0RYUi5heGQ/cj05OTk5XzE1LTBHVzk4IiAvPjxsaW5rIGlkPSJmYXZJY29uMSIgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Ii9mYXZpY29uLmljbz92PTIiIC8+PGxpbmsgaWQ9ImZhdkljb24yIiByZWw9Imljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iL2Zhdmljb24uaWNvP3Y9MiIgLz48bGluayBpZD0iaVBob25lSWNvbiIgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9pL2lwaG9uZS5wbmciIC8+PGxpbmsgaHJlZj0iQXBwX1RoZW1lcy9XUy9Db21tb24vV2ViU2l0ZS5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz48bGluayBocmVmPSJBcHBfVGhlbWVzL1dTL1BsdWdpbnMvdG4zL2R4SW5saW5lLmNzcz93c0NhY2hlPTJfMF8xXzI4NTY1IiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPjxsaW5rIGhyZWY9IkFwcF9UaGVtZXMvV1MvV2ViL3N0eWxlcy5jc3M/d3NDYWNoZT0yXzBfMV8yODU2NSIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz48bGluayBocmVmPSIvRFhSLmF4ZD9yPTk5OTlfMS0wR1c5OCIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgX2dhcSA9IF9nYXEgfHwgW107CitfZ2FxLnB1c2goWydfcmVxdWlyZScsICdpbnBhZ2VfbGlua2lkJywgJy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL3BsdWdpbnMvZ2EvaW5wYWdlX2xpbmtpZC5qcyddKTsKK19nYXEucHVzaChbJ19zZXRBY2NvdW50JywgJ1VBLTEzODQ2NzgtMSddKTsKK19nYXEucHVzaChbJ19zZXREb21haW5OYW1lJywgJy5kZXZleHByZXNzLmNvbSddKTsKK19nYXEucHVzaChbJ19zZXRDdXN0b21WYXInLCAxLCAnVmlzaXRvclN0YXR1cycsICdTaWduZWRPdXQnXSk7CitfZ2FxLnB1c2goWydfdHJhY2tQYWdldmlldyddKTsKKworKGZ1bmN0aW9uKCkgewordmFyIGdhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IGdhLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsgZ2EuYXN5bmMgPSB0cnVlOworZ2Euc3JjID0gKCdodHRwczonID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID8gJ2h0dHBzOi8vc3NsJyA6ICdodHRwOi8vd3d3JykgKyAnLmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJzsKK3ZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOyBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGdhLCBzKTsKK30pKCk7Cis8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgX2tpcSA9IF9raXEgfHwgW107Citfa2lxLnB1c2goWydzZXQnLCB7ICdTaWduZWRJbic6ICdmYWxzZScsIH1dKTsKKzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9raS5qcy80Nzc3Ni85S0YuanM/d3NDYWNoZT0yXzBfMV8yODU2NSIgYXN5bmM9InRydWUiPjwvc2NyaXB0PjxsaW5rIGhyZWY9Ii9ob21lL0hvbWVDdXN0b21Db250ZW50L3N0eWxlcy0zLmNzcz93c0NhY2hlPTYzNTI1NTUxODQ3MjQyNTU1MyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz48bGluayBocmVmPSIvY3NzL2Nzcy5jc3M/d3NDYWNoZT02MzUyNTkwOTc2MDI2NjQ4MDAiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIC8+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkRldkV4cHJlc3M6IEZlYXR1cmUtQ29tcGxldGUgVUkgQ29udHJvbHMsIElERSBUb29scywgYW5kIEJ1c2luZXNzIEFwcGxpY2F0aW9uIEZyYW1ld29ya3MgZm9yIFZpc3VhbCBTdHVkaW8sIERlbHBoaSBhbmQgQysrQnVpbGRlciIgLz48bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IkRldmVsb3BlciBFeHByZXNzIEluYy4iIC8+PG1ldGEgbmFtZT0iY29weXJpZ2h0IiBjb250ZW50PSJDb3B5cmlnaHQgKGMpIDE5OTgtMjAxNCBEZXZlbG9wZXIgRXhwcmVzcyBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIiAvPjxtZXRhIG5hbWU9ImRpc3RyaWJ1dGlvbiIgY29udGVudD0iR2xvYmFsIiAvPjxtZXRhIG5hbWU9InJhdGluZyIgY29udGVudD0iR2VuZXJhbCIgLz48bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LWxhbmd1YWdlIiBjb250ZW50PSJlbiIgLz48bGluayBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9yc3MvbmV3cy9uZXdzMjAueG1sIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkRldmVsb3BlciBFeHByZXNzIE5ld3MiIC8+PC9oZWFkPgorPGJvZHk+Cis8Zm9ybSBuYW1lPSJhc3BuZXRGb3JtIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIiBpZD0iYXNwbmV0Rm9ybSI+Cis8ZGl2PgorPGlucHV0IHR5cGU9ImhpZGRlbiIgYXV0b2NvbXBsZXRlPSJvZmYiIG5hbWU9Il9fRVZFTlRUQVJHRVQiIGlkPSJfX0VWRU5UVEFSR0VUIiB2YWx1ZT0iIiAvPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgYXV0b2NvbXBsZXRlPSJvZmYiIG5hbWU9Il9fRVZFTlRBUkdVTUVOVCIgaWQ9Il9fRVZFTlRBUkdVTUVOVCIgdmFsdWU9IiIgLz4KKzxpbnB1dCB0eXBlPSJoaWRkZW4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBuYW1lPSJfX1ZTVEFURSIgaWQ9Il9fVlNUQVRFIiB2YWx1ZT0iL3dFUEdBRUZIbDlmUTI5dWRISnZiSE5TWlhGMWFYSmxVRzl6ZEVKaFkydExaWGxmWHhZQkJSOWpkR3d3TUNSUWIzTjBRMjl1ZEdWdWRDUmpkR3d5TnlSM2MxQnZjSFZ3RHdVS01URXpOelkxT0RZeE4yUT0iIC8+Cis8aW5wdXQgdHlwZT0iaGlkZGVuIiBhdXRvY29tcGxldGU9Im9mZiIgbmFtZT0iX19WSUVXU1RBVEUiIGlkPSJfX1ZJRVdTVEFURSIgdmFsdWU9IiIgLz4KKzwvZGl2PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvLzwhW0NEQVRBWwordmFyIHRoZUZvcm0gPSBkb2N1bWVudC5mb3Jtc1snYXNwbmV0Rm9ybSddOworaWYgKCF0aGVGb3JtKSB7Cit0aGVGb3JtID0gZG9jdW1lbnQuYXNwbmV0Rm9ybTsKK30KK2Z1bmN0aW9uIF9fZG9Qb3N0QmFjayhldmVudFRhcmdldCwgZXZlbnRBcmd1bWVudCkgeworaWYgKCF0aGVGb3JtLm9uc3VibWl0IHx8ICh0aGVGb3JtLm9uc3VibWl0KCkgIT0gZmFsc2UpKSB7Cit0aGVGb3JtLl9fRVZFTlRUQVJHRVQudmFsdWUgPSBldmVudFRhcmdldDsKK3RoZUZvcm0uX19FVkVOVEFSR1VNRU5ULnZhbHVlID0gZXZlbnRBcmd1bWVudDsKK3RoZUZvcm0uc3VibWl0KCk7Cit9Cit9CisvL11dPgorPC9zY3JpcHQ+CisKKworPHNjcmlwdCBzcmM9Ii9XZWJSZXNvdXJjZS5heGQ/ZD1icUNiX2g3T1lsQkhXSklSN1BKTkpVbW00b1loYVRnTDdkc1VvOVYxQ2FLaG1aVVZGTmJFWFJzajlZZW9RTGppVjRZXzFGRVFFNnRPVGxJQ3kxMmVZOEZ4U2F3MSZhbXA7dD02MzUwODk3NDM0ODAwMDAwMDAiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CisKKworPHNjcmlwdCBzcmM9Ii9EWFIuYXhkP3I9OTk5OV8wLTBHVzk4IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9IeXBlckN1YmUvc2NyaXB0cy5qcz93c0NhY2hlPTJfMF8xXzI4NTY1IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9IeXBlckN1YmUvdHJhY2tpbmdTY3JpcHRzLmpzP3dzQ2FjaGU9Ml8wXzFfMjg1NjUiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9IkhlYWRlciIgY2xhc3M9IlRPQ3YzIj4KKzxkaXYgY2xhc3M9IlRvcEJhciBHcmV5QmFyIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPHNjcmlwdCBpZD0iZHhpc185OTI1MDMxMjUiIHNyYz0iL0RYUi5heGQ/cj0xXzQ0LDFfNzYsMV82OSwxXzY3LDFfNDMtaDR3UjciIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PGEgY2xhc3M9InAtZi1yaWdodCIgaWQ9ImN0bDAwX1RPQ1NpZ25JbiIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vTXlBY2NvdW50Lz9yZXR1cm5Vcmw9aHR0cHMlM2ElMmYlMmZ3d3cuZGV2ZXhwcmVzcy5jb20lMmYiPkxvZyBJbjwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBpZD0iVE9DQmFyIiBjbGFzcz0iTWFpbk1lbnVCYXIgRnVsbENvbnRlbnQiPgorPGRpdiBpZD0iVG9vbGJhciIgY2xhc3M9IlRvb2xiYXIiPgorPGEgaWQ9ImN0bDAwX1RPQy1DYXJ0IiB0aXRsZT0iU2hvcHBpbmcgQ2FydCIgY2xhc3M9Ikl0ZW0gQ2FydCBFbXB0eSIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vQ2xpZW50Q2VudGVyL1B1cmNoYXNlLyI+PHNwYW4+MDwvc3Bhbj48L2E+PGEgaWQ9ImN0bDAwX1RPQy1CbG9ncyIgdGl0bGU9IkJsb2dzIiBjbGFzcz0iSXRlbSBCbG9nIiBocmVmPSJodHRwczovL2NvbW11bml0eS5kZXZleHByZXNzLmNvbS9ibG9ncy8iPjwvYT48ZGl2IGNsYXNzPSJJdGVtIFNlYXJjaCI+Cis8ZGl2IGNsYXNzPSJDYWxsb3V0IEhvdmVyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iU3ViTWVudUJhY2sgSG92ZXIiPgorPGRpdiBjbGFzcz0iQ29udGVudCI+Cis8ZGl2IGNsYXNzPSJTZWFyY2hCb3giPgorPGlucHV0IGlkPSJ0YlNpdGVTZWFyY2giIGNsYXNzPSJUZXh0Qm94IiB2YWx1ZT0iVHlwZSBrZXl3b3JkcyBoZXJlIiB0eXBlPSJ0ZXh0IiBhdXRvY29tcGxldGU9Im9mZiIgLz48aW5wdXQgaWQ9ImJ0blNpdGVTZWFyY2giIGNsYXNzPSJCdXR0b25TZWFyY2giIHR5cGU9ImJ1dHRvbiIgLz48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgX3dzVG9vbEJhciA9IG5ldyBfd3NUb29sQmFyQ29udHJvbGxlcigpOword2luZG93LlNlYXJjaFNlcnZpY2VVcmwgPSAnaHR0cDovL3NlYXJjaC5kZXZleHByZXNzLmNvbS8/cT0nCis8L3NjcmlwdD4KKzwvZGl2Pjx1bCBpZD0iVE9DdjNNZW51IiBjbGFzcz0iTWFpbk1lbnUiPgorPGxpIGNsYXNzPSJJdGVtIj48c3BhbiBjbGFzcz0iSXRlbVRpdGxlIj5Qcm9kdWN0czwvc3Bhbj48ZGl2IGNsYXNzPSJTZXBhcmF0b3IiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYWxsb3V0IEhvdmVyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iU3ViTWVudSBIb3ZlciI+Cis8ZGl2IGNsYXNzPSJTdWJNZW51Q29udGFpbmVyIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iUHJvZHVjdHMgU3VpdGVzIj4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorU3VpdGVzCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0JFU1QgVkFMVUUKKzwvZGl2PjxkaXYgY2xhc3M9IkJlc3RWYWx1ZUl0ZW0iPgorPGRpdiBjbGFzcz0iQ2hpY2tsZXQgVSI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1CZXN0VmFsdWVVIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdWJzY3JpcHRpb25zL1VuaXZlcnNhbC54bWwiPlVuaXZlcnNhbDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbURlc2NyaXB0aW9uIj4KKyhpbmNsdWRlcyBhbGwgRGV2RXhwcmVzcyAuTkVUIHByb2R1Y3RzIGluIG9uZSBpbnRlZ3JhdGVkIHN1aXRlKQorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJCZXN0VmFsdWVJdGVtIj4KKzxkaXYgY2xhc3M9IkNoaWNrbGV0IERYUCI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1CZXN0VmFsdWVEWFAiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1YnNjcmlwdGlvbnMvRFhwZXJpZW5jZS54bWwiPkRYcGVyaWVuY2U8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1EZXNjcmlwdGlvbiI+CisoaW5jbHVkZXMgYWxsIERldkV4cHJlc3MgLk5FVCBDb250cm9scyBhbG9uZyB3aXRoIENvZGVSdXNoKQorPC9kaXY+Cis8L2Rpdj48YSBpZD0iY3RsMDBfVE9DLUJlc3RWYWx1ZUNvbXBhcmUiIGNsYXNzPSJDb21wYXJlIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdWJzY3JpcHRpb25zLyI+PC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iUHJvZHVjdHMgR3JvdXBCcmVhayBGdWxsIE5FVFByb2R1Y3RzIj4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorLk5FVCBQcm9kdWN0cworPC9kaXY+PGRpdiBjbGFzcz0iRmlyc3RDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitJTkRJVklEVUFMIFBMQVRGT1JNUworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNXaW5Gb3JtcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zLyIgdGFyZ2V0PSJfc2VsZiI+V2luRm9ybXM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRDb250cm9sc0FTUCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC8iIHRhcmdldD0iX3NlbGYiPkFTUC5ORVQ8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRDb250cm9sc0FTUE1WQyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC9NVkMvIiB0YXJnZXQ9Il9zZWxmIj5NVkM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRDb250cm9sc1dQRiIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dQRi8iIHRhcmdldD0iX3NlbGYiPldQRjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzU2lsdmVybGlnaHQiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9TaWx2ZXJsaWdodC8iIHRhcmdldD0iX3NlbGYiPlNpbHZlcmxpZ2h0PC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNXaW5SVCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpblJULyIgdGFyZ2V0PSJfc2VsZiI+V2luZG93cyA4IFhBTUw8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUJyZWFrIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitGUkFNRVdPUktTCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRBcHBsaWNhdGlvbl9GcmFtZXdvcmsiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9BcHBsaWNhdGlvbl9GcmFtZXdvcmsvIiB0YXJnZXQ9Il9zZWxmIj5lWHByZXNzQXBwIEZyYW1ld29yazwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5QnJlYWsiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0NPREUtREVCVUctUkVGQUNUT1IKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c0NvZGVSdXNoIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9Db2RlUnVzaC8iIHRhcmdldD0iX3NlbGYiPkNvZGVSdXNoIGZvciBWaXN1YWwgU3R1ZGlvPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJTZWNvbmRDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitNT0JJTEUgKEhUTUwgSlMpCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNIVE1MSlMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL0hUTUwtSlMvIiB0YXJnZXQ9Il9zZWxmIj5EZXZFeHRyZW1lPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlCcmVhayI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorQ1JPU1MtUExBVEZPUk0KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1TdWJzY3JpcHRpb25zUmVwb3J0aW5nIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdWJzY3JpcHRpb25zL1JlcG9ydGluZy8iIHRhcmdldD0iX3NlbGYiPlJlcG9ydGluZzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVERvY3VtZW50U2VydmVyIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvRG9jdW1lbnQtU2VydmVyLyIgdGFyZ2V0PSJfc2VsZiI+RG9jdW1lbnQgR2VuZXJhdGlvbjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5QnJlYWsiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0VOVEVSUFJJU0UgVE9PTFMKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVFJlcG9ydFNlcnZlciIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL1JlcG9ydC1TZXJ2ZXIvIiB0YXJnZXQ9Il9zZWxmIj5SZXBvcnQgU2VydmVyPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVURGFzaGJvYXJkIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvRGFzaGJvYXJkLyIgdGFyZ2V0PSJfc2VsZiI+QW5hbHl0aWNzIERhc2hib2FyZDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5QnJlYWsiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIER1bW15Ij4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVN1YnNjcmlwdGlvbnNOZXcyMDEzeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdWJzY3JpcHRpb25zL05ldy0yMDEzLnhtbCIgdGFyZ2V0PSJfc2VsZiI+U2VlIFdoYXQncyBOZXcgaW4gMjAxMzwvYT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJQcm9kdWN0cyBHcm91cEJyZWFrIE90aGVyIj4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorSFRNTCBKYXZhU2NyaXB0IFByb2R1Y3RzCis8L2Rpdj48ZGl2IGNsYXNzPSJGaXJzdENvbHVtbiI+Cis8ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK01PQklMRQorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBwaG9uZWpzZGV2ZXhwcmVzc2NvbSIgaHJlZj0iaHR0cHM6Ly9waG9uZWpzLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPlBob25lIEpTPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJTZWNvbmRDb2x1bW4iPgorPGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitIVE1MIDUgSlMgV0lER0VUUworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBjaGFydGpzZGV2ZXhwcmVzc2NvbSIgaHJlZj0iaHR0cHM6Ly9jaGFydGpzLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPkNoYXJ0IEpTPC9hPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IlByb2R1Y3RzIEdyb3VwQnJlYWsgT3RoZXIiPgorPGRpdiBjbGFzcz0iR3JvdXBUaXRsZSI+CitUZXN0aW5nIFRvb2xzCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK1dFQiBURVNUSU5HCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cHRlc3RjYWZlZGV2ZXhwcmVzc2NvbSIgaHJlZj0iaHR0cHM6Ly90ZXN0Y2FmZS5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5UZXN0Q2Fmw6k8L2E+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IlByb2R1Y3RzIEdyb3VwQnJlYWsgT3RoZXIiPgorPGRpdiBjbGFzcz0iR3JvdXBUaXRsZSI+CitEZWxwaGkgJiBDKytCdWlsZGVyIFByb2R1Y3RzCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0RFTFBISSAmIEMrK0JVSUxERVIKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c1ZDTCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvVkNMLyIgdGFyZ2V0PSJfc2VsZiI+VkNMPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9saT48bGkgY2xhc3M9Ikl0ZW0iPjxzcGFuIGNsYXNzPSJJdGVtVGl0bGUiPkZyZWUgVHJpYWxzICYgRGVtb3M8L3NwYW4+PGRpdiBjbGFzcz0iU2VwYXJhdG9yIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2FsbG91dCBIb3ZlciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IlN1Yk1lbnUgSG92ZXIiPgorPGRpdiBjbGFzcz0iU3ViTWVudUNvbnRhaW5lciI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IkRvd25sb2FkcyBUcmlhbCI+Cis8ZGl2IGNsYXNzPSJGcmVlVHJpYWwiPgorCis8L2Rpdj48YSBpZD0iY3RsMDBfVE9DLURvd25sb2FkVHJpYWwiIGNsYXNzPSJEb3dubG9hZCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS90cnkueG1sIj48L2E+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtRGVzY3JpcHRpb24gVHJpYWxEb3dubG9hZERlc2NyaXB0aW9uIj4KKyhpbmNsdWRlcyBhbGwgRGV2RXhwcmVzcyAuTkVUIHByb2R1Y3RzIGFuZCBmcmVlIHRlY2huaWNhbCBzdXBwb3J0KQorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJEb3dubG9hZHMgR3JvdXBCcmVhayBGdWxsIj4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorLk5FVCBQcm9kdWN0IERlbW9zCis8L2Rpdj48ZGl2IGNsYXNzPSJGaXJzdENvbHVtbiI+Cis8ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0JZIFBMQVRGT1JNUworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNXaW5Gb3Jtc2RlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luRm9ybXMvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5XaW5Gb3JtczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzQVNQZGVtb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5BU1AuTkVUPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNBU1BNVkNkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC9NVkMvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5NVkM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVRDb250cm9sc1dQRmRlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV1BGL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+V1BGPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQ29udHJvbHNTaWx2ZXJsaWdodGRlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvU2lsdmVybGlnaHQvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5TaWx2ZXJsaWdodDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVENvbnRyb2xzV2luUlRkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpblJUL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+V2luZG93cyA4IFhBTUw8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUJyZWFrIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitDUk9TUy1QTEFURk9STQorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVN1YnNjcmlwdGlvbnNSZXBvcnRpbmdkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy9SZXBvcnRpbmcvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5SZXBvcnRpbmc8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVREb2N1bWVudFNlcnZlcmRlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvRG9jdW1lbnQtU2VydmVyL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+RG9jdW1lbnQgR2VuZXJhdGlvbjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5QnJlYWsiPgorCis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IlNlY29uZENvbHVtbiI+Cis8ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK01PQklMRSAoSFRNTCBKUykKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c0hUTUxKU2RlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9IVE1MLUpTL2RlbW9zLnhtbCIgdGFyZ2V0PSJfc2VsZiI+RGV2RXh0cmVtZTwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5QnJlYWsiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0VOVEVSUFJJU0UgVE9PTFMKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5SXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX1RPQy1Qcm9kdWN0c05FVFJlcG9ydFNlcnZlcmRlbW9zeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvUmVwb3J0LVNlcnZlci9kZW1vcy54bWwiIHRhcmdldD0iX3NlbGYiPlJlcG9ydCBTZXJ2ZXI8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtUHJvZHVjdHNORVREYXNoYm9hcmRkZW1vc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0Rhc2hib2FyZC9kZW1vcy54bWwiIHRhcmdldD0iX3NlbGYiPkFuYWx5dGljcyBEYXNoYm9hcmQ8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIER1bW15Ij4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlCcmVhayI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkNhdGVnb3J5VGl0bGUiPgorRlJBTUVXT1JLUworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzTkVUQXBwbGljYXRpb25fRnJhbWV3b3JrZGVtb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9BcHBsaWNhdGlvbl9GcmFtZXdvcmsvZGVtb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5lWHByZXNzQXBwIEZyYW1ld29yazwvYT4KKzwvZGl2PjxhIGlkPSJjdGwwMF9UT0MtVmlld0FsbERlbW9zIiBjbGFzcz0iVmlld0FsbERlbW9zIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0RlbW9zLyI+PC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJEb3dubG9hZHMgR3JvdXBCcmVhayBPdGhlciI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK0hUTUwgSmF2YSBTY3JpcHQgRG93bmxvYWRzCis8L2Rpdj48ZGl2IGNsYXNzPSJGaXJzdENvbHVtbiI+Cis8ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK01PQklMRQorPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBwaG9uZWpzZGV2ZXhwcmVzc2NvbS0xIiBocmVmPSJodHRwczovL3Bob25lanMuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+UGhvbmUgSlM8L2E+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IlNlY29uZENvbHVtbiI+Cis8ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK0hUTUwgNSBKUyBXSURHRVRTCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cGNoYXJ0anNkZXZleHByZXNzY29tLTEiIGhyZWY9Imh0dHBzOi8vY2hhcnRqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5DaGFydCBKUzwvYT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJEb3dubG9hZHMgR3JvdXBCcmVhayBPdGhlciI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK1Rlc3RpbmcgVG9vbHMgRG93bmxvYWRzCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVRpdGxlIj4KK1dFQiBURVNUSU5HCis8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeUl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cHRlc3RjYWZlZGV2ZXhwcmVzc2NvbS0xIiBocmVmPSJodHRwczovL3Rlc3RjYWZlLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPlRlc3RDYWbDqTwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iRG93bmxvYWRzIEdyb3VwQnJlYWsgT3RoZXIiPgorPGRpdiBjbGFzcz0iR3JvdXBUaXRsZSI+CitEZWxwaGkgJiBDKytCdWlsZGVyIERvd25sb2FkcworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlUaXRsZSI+CitDT05UUk9MUworPC9kaXY+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfVE9DLVByb2R1Y3RzVkNMZGVtb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL1ZDTC9kZW1vcy54bWwiIHRhcmdldD0iX3NlbGYiPlZDTDwvYT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9saT48bGkgY2xhc3M9Ikl0ZW0iPjxzcGFuIGNsYXNzPSJJdGVtVGl0bGUiPkJ1eTwvc3Bhbj48ZGl2IGNsYXNzPSJTZXBhcmF0b3IiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYWxsb3V0IEhvdmVyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iU3ViTWVudSBIb3ZlciI+Cis8ZGl2IGNsYXNzPSJTdWJNZW51Q29udGFpbmVyIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iQnV5Ij4KKzx0YWJsZSBjbGFzcz0iQmlnSWNvbkl0ZW1zIiBib3JkZXI9IjAiPgorPHRyPgorPHRkPjxhIGlkPSJjdGwwMF9UT0MtU3Vic2NyaXB0aW9ucyIgY2xhc3M9Ikljb24gQ29tcGFyZSIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3Vic2NyaXB0aW9ucy8iPjxzcGFuPjwvc3Bhbj5Db21wYXJlIEZlYXR1cmVzPGJyIC8+YW5kIFByaWNpbmc8L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1TdWJzY3JpcHRpb25zYnV5eG1sIiBjbGFzcz0iSWNvbiBCdXkiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1YnNjcmlwdGlvbnMvYnV5LnhtbCI+PHNwYW4+PC9zcGFuPkJ1eSBhIE5ldzxiciAvPlByb2R1Y3QgU3Vic2NyaXB0aW9uPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtQ2xpZW50Q2VudGVyUHVyY2hhc2VVcGdyYWRlcyIgY2xhc3M9Ikljb24gUmVuZXciIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0NsaWVudENlbnRlci9QdXJjaGFzZS8jVXBncmFkZXMiPjxzcGFuPjwvc3Bhbj5SZW5ldyBhbjxiciAvPkV4aXN0aW5nIFN1YnNjcmlwdGlvbjwvYT48L3RkPgorPC90cj4KKzwvdGFibGU+PGRpdiBjbGFzcz0iQmlnRGVzY3JpcHRpb24iPgorTmVlZCBoZWxwIG9yIHJlcXVpcmUgbW9yZSBpbmZvcm1hdGlvbj88YnIgLz5FbWFpbCB1cyBhdCA8YSBocmVmPSJtYWlsdG86aW5mb0BkZXZleHByZXNzLmNvbSI+aW5mb0BkZXZleHByZXNzLmNvbTwvYT4gb3IgY2FsbCArMSAoODE4KSA4NDQtMzM4MyBiZXR3ZWVuIDc6MzBBTSBhbmQgNDozMFBNIFBhY2lmaWMgVGltZS4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9saT48bGkgY2xhc3M9Ikl0ZW0iPjxzcGFuIGNsYXNzPSJJdGVtVGl0bGUiPlN1cHBvcnQ8L3NwYW4+PGRpdiBjbGFzcz0iU2VwYXJhdG9yIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQ2FsbG91dCBIb3ZlciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IlN1Yk1lbnUgSG92ZXIiPgorPGRpdiBjbGFzcz0iU3ViTWVudUNvbnRhaW5lciI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IlN1cHBvcnQgTGVmdCI+Cis8ZGl2IGNsYXNzPSJHcm91cFRpdGxlIj4KK1N1cHBvcnQgQ2VudGVyCis8L2Rpdj48dGFibGUgY2xhc3M9IkJpZ0ljb25JdGVtcyIgYm9yZGVyPSIwIj4KKzx0cj4KKzx0ZD48YSBpZD0iY3RsMDBfVE9DLVN1cHBvcnRDZW50ZXIiIGNsYXNzPSJJY29uIEtCIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0NlbnRlci8iPjxzcGFuPjwvc3Bhbj5TZWFyY2ggdGhlIEtCPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3VwcG9ydENlbnRlclF1ZXN0aW9uQ2hhbmdlRmlsdGVyU2V0MUZhdm9yaXRlc09ubHlGYWxzZU15SXRlbXNPbmx5VHJ1ZU15VGVhbUl0ZW1zT25seUZhbHNlUGxhdGZvcm1OYW1lQWxsUGxhdGZvcm1zUHJvZHVjdE5hbWVBbGxQcm9kdWN0c1RpY2tldFR5cGVBbGwiIGNsYXNzPSJJY29uIFEiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvQ2VudGVyL1F1ZXN0aW9uL0NoYW5nZUZpbHRlclNldC8xP0Zhdm9yaXRlc09ubHk9RmFsc2UmYW1wO015SXRlbXNPbmx5PVRydWUmYW1wO015VGVhbUl0ZW1zT25seT1GYWxzZSZhbXA7UGxhdGZvcm1OYW1lPUFsbFBsYXRmb3JtcyZhbXA7UHJvZHVjdE5hbWU9QWxsUHJvZHVjdHMmYW1wO1RpY2tldFR5cGU9QWxsIj48c3Bhbj48L3NwYW4+TXkgUXVlc3Rpb25zPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3VwcG9ydENlbnRlckV4YW1wbGVMaXN0IiBjbGFzcz0iSWNvbiBFeGFtcGxlcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9DZW50ZXIvRXhhbXBsZS9MaXN0Ij48c3Bhbj48L3NwYW4+Q29kZSBFeGFtcGxlczwvYT48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJTdXBwb3J0Ij4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorUmVzb3VyY2VzCis8L2Rpdj48dGFibGUgY2xhc3M9IkJpZ0ljb25JdGVtcyIgYm9yZGVyPSIwIj4KKzx0cj4KKzx0ZD48YSBpZD0iY3RsMDBfVE9DLVN1cHBvcnRTdGFydCIgY2xhc3M9Ikljb24gR2V0U3RhcnRlZCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9TdGFydC8iPjxzcGFuPjwvc3Bhbj5HZXR0aW5nIFN0YXJ0ZWQ8L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1odHRwZG9jdW1lbnRhdGlvbmRldmV4cHJlc3Njb20iIGNsYXNzPSJJY29uIERvYyIgaHJlZj0iaHR0cHM6Ly9kb2N1bWVudGF0aW9uLmRldmV4cHJlc3MuY29tLyI+PHNwYW4+PC9zcGFuPkRvY3VtZW50YXRpb248L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1TdXBwb3J0RGVtb3MiIGNsYXNzPSJJY29uIERlbW9zIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0RlbW9zLyI+PHNwYW4+PC9zcGFuPkRlbW9zPC9hPjwvdGQ+PHRkPjxhIGNsYXNzPSJJY29uIFRyYWluaW5nIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL1RyYWluaW5nLyI+PHNwYW4+PC9zcGFuPlRyYWluaW5nPC9hPjxkaXYgY2xhc3M9Ikljb24gQXJyb3ciPgorPHNwYW4+PGRpdj4KK05ldyBUcmFpbmluZzxici8+Q2xhc3NlcyBBbm5vdW5jZWQKKzwvZGl2Pjwvc3Bhbj4KKzwvZGl2PjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3VwcG9ydFdlYmluYXJzIiBjbGFzcz0iSWNvbiBXZWJpbmFycyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9XZWJpbmFycy8iPjxzcGFuPjwvc3Bhbj5XZWJpbmFyczwvYT48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2xpPjxsaSBjbGFzcz0iSXRlbSI+PHNwYW4gY2xhc3M9Ikl0ZW1UaXRsZSI+TXkgQWNjb3VudDwvc3Bhbj48ZGl2IGNsYXNzPSJTZXBhcmF0b3IiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYWxsb3V0IEhvdmVyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iU3ViTWVudSBIb3ZlciI+Cis8ZGl2IGNsYXNzPSJTdWJNZW51Q29udGFpbmVyIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iTXlBY2NvdW50Ij4KKzx0YWJsZSBjbGFzcz0iQmlnSWNvbkl0ZW1zIiBib3JkZXI9IjAiPgorPHRyPgorPHRkPjxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tTXlBY2NvdW50IiBjbGFzcz0iSWNvbiBNYW5hZ2VBY2NvdW50IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9NeUFjY291bnQvIj48c3Bhbj48L3NwYW4+TWFuYWdlPGJyLz5Zb3VyIFByb2ZpbGU8ZGl2IGNsYXNzPSJTdWJEZXNjcmlwdGlvbiI+CitDaGFuZ2UgeW91ciBhZGRyZXNzPGJyIC8+ZW1haWwgYW5kIHBhc3N3b3JkCis8L2Rpdj48L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21DbGllbnRDZW50ZXJDb250YWN0c0RlZmF1bHRhc3B4IiBjbGFzcz0iSWNvbiBNYW5hZ2VMaWNlbnNlcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vQ2xpZW50Q2VudGVyL0NvbnRhY3RzL0RlZmF1bHQuYXNweCI+PHNwYW4+PC9zcGFuPkFzc2lnbiA8YnIvPkxpY2Vuc2VzPGRpdiBjbGFzcz0iU3ViRGVzY3JpcHRpb24iPgorTWFuYWdlIGxpY2Vuc2VzPGJyIC8+Zm9yIHlvdXIgZGV2IHRlYW0KKzwvZGl2PjwvYT48L3RkPjx0ZD48YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUNsaWVudENlbnRlclB1cmNoYXNlVXBncmFkZXMiIGNsYXNzPSJJY29uIFJlbmV3IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9DbGllbnRDZW50ZXIvUHVyY2hhc2UvI1VwZ3JhZGVzIj48c3Bhbj48L3NwYW4+UmVuZXcgYW48YnIvPkV4aXN0aW5nIFN1YnNjcmlwdGlvbjwvYT48L3RkPjx0ZD48YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUNsaWVudENlbnRlclB1cmNoYXNlSGlzdG9yeWFzcHgiIGNsYXNzPSJJY29uIFB1cmNoYXNlSGlzdG9yeSIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vQ2xpZW50Q2VudGVyL1B1cmNoYXNlSGlzdG9yeS5hc3B4Ij48c3Bhbj48L3NwYW4+UHVyY2hhc2U8YnIvPkhpc3Rvcnk8ZGl2IGNsYXNzPSJTdWJEZXNjcmlwdGlvbiI+CitOZXcgb3JkZXIgc3RhdHVzPGJyIC8+YW5kIHByZXZpb3VzIHB1cmNoYXNlcworPC9kaXY+PC9hPjwvdGQ+PHRkIGNsYXNzPSJTZXBhcmF0b3IiPjwvdGQ+PHRkIGNsYXNzPSJMYXN0Ij48YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUNsaWVudENlbnRlckRvd25sb2Fkc0Rvd25sb2FkTWFuYWdlciIgY2xhc3M9Ikljb24gRG93bmxvYWQiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0NsaWVudENlbnRlci9Eb3dubG9hZHMvI0Rvd25sb2FkTWFuYWdlciI+PHNwYW4+PC9zcGFuPkRvd25sb2FkPGJyLz5Zb3VyIFByb2R1Y3RzPC9hPjwvdGQ+Cis8L3RyPgorPC90YWJsZT48ZGl2IGNsYXNzPSJCaWdEZXNjcmlwdGlvbiI+CitOZWVkIGhlbHAgb3IgcmVxdWlyZSBtb3JlIGluZm9ybWF0aW9uPzxiciAvPkVtYWlsIHVzIGF0IDxhIGhyZWY9Im1haWx0bzpjbGllbnRzZXJ2aWNlc0BkZXZleHByZXNzLmNvbSI+Y2xpZW50c2VydmljZXNAZGV2ZXhwcmVzcy5jb208L2E+IG9yIGNhbGwgKzEgKDgxOCkgODQ0LTMzODMgYmV0d2VlbiA3OjMwQU0gYW5kIDQ6MzBQTSBQYWNpZmljIFRpbWUuCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvbGk+PGxpIGNsYXNzPSJJdGVtIj48c3BhbiBjbGFzcz0iSXRlbVRpdGxlIj5BYm91dCBVczwvc3Bhbj48ZGl2IGNsYXNzPSJTZXBhcmF0b3IiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJDYWxsb3V0IEhvdmVyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iU3ViTWVudSBIb3ZlciI+Cis8ZGl2IGNsYXNzPSJTdWJNZW51Q29udGFpbmVyIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iQWJvdXRVcyBMZWZ0Ij4KKzxkaXYgY2xhc3M9Ikdyb3VwVGl0bGUiPgorQ29ubmVjdCB3aXRoIERldkV4cHJlc3MKKzwvZGl2Pjx0YWJsZSBjbGFzcz0iQmlnSWNvbkl0ZW1zIiBib3JkZXI9IjAiPgorPHRyPgorPHRkPjxhIGlkPSJjdGwwMF9UT0MtaHR0cHNjb21tdW5pdHlkZXZleHByZXNzY29tYmxvZ3MiIGNsYXNzPSJJY29uIEJsb2dzIiBocmVmPSJodHRwczovL2NvbW11bml0eS5kZXZleHByZXNzLmNvbS9ibG9ncy8iPjxzcGFuPjwvc3Bhbj5CbG9nczwvYT48L3RkPjx0ZD48YSBpZD0iY3RsMDBfVE9DLUhvbWVDb21tdW5pdHkiIGNsYXNzPSJJY29uIEV2ZW50cyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Db21tdW5pdHkvIj48c3Bhbj48L3NwYW4+VXBjb21pbmc8YnIgLz5FdmVudHM8L2E+PC90ZD48dGQ+PGEgaWQ9ImN0bDAwX1RPQy1Ib21lVHJhaW5pbmciIGNsYXNzPSJJY29uIFRyYWluaW5nIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL1RyYWluaW5nLyI+PHNwYW4+PC9zcGFuPlRyYWluaW5nPC9hPjwvdGQ+PHRkPjxhIGlkPSJjdGwwMF9UT0MtU3VwcG9ydFdlYmluYXJzLTEiIGNsYXNzPSJJY29uIFdlYmluYXJzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L1dlYmluYXJzLyI+PHNwYW4+PC9zcGFuPldlYmluYXJzPC9hPjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9IkFib3V0VXMgUmlnaHQiPgorPGRpdiBjbGFzcz0iR3JvdXBUaXRsZSI+CitMZWFybiBNb3JlIGFib3V0IERldkV4cHJlc3MKKzwvZGl2PjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJwLWYtbGVmdCI+Cis8ZGl2PgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21Ib21lTWlzc2lvbnhtbCIgY2xhc3M9Ikljb25MaW5rIEFib3V0VXMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvTWlzc2lvbi54bWwiPjxzcGFuPjwvc3Bhbj5BYm91dCBVczwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2PgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21Ib21lQW5ub3VuY2VzIiBjbGFzcz0iSWNvbkxpbmsgTmV3cyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Bbm5vdW5jZXMvIj48c3Bhbj48L3NwYW4+TmV3czwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2PgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21Ib21lQ29tbWVudHN4bWwiIGNsYXNzPSJJY29uTGluayBDb21tZW50cyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Db21tZW50cy54bWwiPjxzcGFuPjwvc3Bhbj5Vc2VyIENvbW1lbnRzPC9hPjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj4KKzwvZGl2PjxkaXY+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUhvbWVDYXNlU3R1ZGllcyIgY2xhc3M9Ikljb25MaW5rIENhc2VTdHVkaWVzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0Nhc2UtU3R1ZGllcy8iPjxzcGFuPjwvc3Bhbj5DYXNlIFN0dWRpZXM8L2E+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJHcm91cEJyZWFrIE5vU2VwYXJhdG9yIj4KKzxkaXY+Cis8YSBpZD0iY3RsMDBfVE9DLWh0dHBzd3d3ZGV2ZXhwcmVzc2NvbUhvbWVBd2FyZHN4bWwiIGNsYXNzPSJJY29uTGluayBBd2FyZHMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvQXdhcmRzLnhtbCI+PHNwYW4+PC9zcGFuPk91ciBBd2FyZHM8L2E+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PgorPC9kaXY+PGRpdj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tSG9tZVB1YmxpY2F0aW9uc3htbCIgY2xhc3M9Ikljb25MaW5rIFJldmlldyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9QdWJsaWNhdGlvbnMueG1sIj48c3Bhbj48L3NwYW4+UmV2aWV3cyAmIFB1YmxpY2F0aW9uczwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2PgorPGEgaWQ9ImN0bDAwX1RPQy1odHRwc3d3d2RldmV4cHJlc3Njb21Ib21lQ29tbXVuaXR5TVZQeG1sIiBjbGFzcz0iSWNvbkxpbmsgTVZQIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbW11bml0eS9NVlAueG1sIj48c3Bhbj48L3NwYW4+TVZQIFByb2dyYW08L2E+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PgorPC9kaXY+PGRpdj4KKzxhIGlkPSJjdGwwMF9UT0MtaHR0cHN3d3dkZXZleHByZXNzY29tSG9tZUNvbnRhY3RVc3htbCIgY2xhc3M9Ikljb25MaW5rIENvbnRhY3RVcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Db250YWN0VXMueG1sIj48c3Bhbj48L3NwYW4+Q29udGFjdCBVczwvYT48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PjxkaXYgY2xhc3M9IkJpZ0Rlc2NyaXB0aW9uIEFib3V0VXNEZXNjcmlwdGlvbiI+CitOZWVkIGhlbHA/IENvbnRhY3Qgb3VyICA8YSBpZD0iVE9DLUFib3V0VXNEZXNjcmlwdGlvbkxpbmsiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvZGV2ZXhwcmVzcy1jYXJlcy54bWwiPkRldmVsb3BlciBBZHZvY2F0ZXM8L2E+IGFueXRpbWUuCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2xpPgorPC91bD48ZGl2IGNsYXNzPSJTdWJNZW51QmFjayI+CisKKzwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIF93c01lbnUgPSBuZXcgX3dzTWVudUNvbnRyb2xsZXIoKTsKKzwvc2NyaXB0PgorPGEgaWQ9ImN0bDAwX1RPQy1Mb2dvIiB0aXRsZT0iRGV2RXhwcmVzcyIgY2xhc3M9IkxvZ28iIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tLyI+PC9hPjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKworPGRpdiBjbGFzcz0iTGlnaHRCb3ggSG9tZSI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IlRleHQiPgorPGRpdj4KKzxkaXYgY2xhc3M9ImNvbnRlbnRibG9jayIgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7Ij4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyI+Cis8dHI+Cis8dGQgY2xhc3M9ImNvbnRlbnRhcmVhIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEwMCU7Ij48ZGl2IGNsYXNzPSJsaWdodC1mb250IiBzdHlsZT0iZm9udC1zaXplOjM2cHg7cGFkZGluZy10b3A6MzBweDtsaW5lLWhlaWdodDoxMDAlO21hcmdpbi1yaWdodDotMzBweDsiPgorCitNZWV0IERldkV4cHJlc3MgVW5pdmVyc2FsIDEzLjIKKworPC9kaXY+PGRpdiBjbGFzcz0ibGlnaHQtZm9udCIgc3R5bGU9ImZvbnQtc2l6ZToyNHB4O2xpbmUtaGVpZ2h0OjEyMCU7Y29sb3I6IzZhNmE2YTsiPgorCitXaGVuIG9ubHkgdGhlIGJlc3Qgd2lsbCBkby4KKworPC9kaXY+PGRpdiBzdHlsZT0icGFkZGluZy10b3A6MjBweDtjb2xvcjojNmE2YTZhO21hcmdpbi1yaWdodDotMzBweDsiPgorCitWb3RlZCBiZXN0IGluIGl0cyBjbGFzcywgdGhlIG5ldyBwcm9kdWN0cyBhbmQgZmVhdHVyZXMgdGhhdCBtYWtlIHVwIG91cjxiciAvPgorCitVbml2ZXJzYWwgU3Vic2NyaXB0aW9uIHdpbGwgaGVscCB5b3UgY3JlYXRlIGVsZWdhbnQsIHVsdHJhLWZhc3QgYW5kIHRvdWNoIGVuYWJsZWQ8YnIgLz4KKworc29sdXRpb25zIGFjcm9zcyBhbGwgbWFqb3IgLk5FVCBwbGF0Zm9ybXMuPGJyIC8+CisKKzwvZGl2PjxkaXYgc3R5bGU9InBhZGRpbmctdG9wOjI1cHg7d2lkdGg6NDY1cHg7Ij4KKzxkaXYgY2xhc3M9ImR4dGFibGUiPgorPHRhYmxlIGNsYXNzPSJ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyI+Cis8dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxhIGlkPSJjdGwwMF9QcmVDb250ZW50X2N0bDI3IiBjbGFzcz0iVjNCdXR0b24iIHRyYWNrSGFuZGxlcklkPSJjdGwwMF9QcmVDb250ZW50X2N0bDI3IiBocmVmPSJodHRwczovL2dvLmRldmV4cHJlc3MuY29tL0RldkV4cHJlc3NEb3dubG9hZF9Vbml2ZXJzYWxUcmlhbC5hc3B4Ij48c3Bhbj4KK0Rvd25sb2FkICBGcmVlIFRyaWFsCis8L3NwYW4+PC9hPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0iZHhzc19saW5rVHJhY2siPgoraWYodHlwZW9mIF9hX1RyYWNrRG93bmxvYWRVbml2ZXJzYWxUcmlhbEhvbWUgPT0gJ2Z1bmN0aW9uJykgeyAkKCJhW3RyYWNrSGFuZGxlcklkPSdjdGwwMF9QcmVDb250ZW50X2N0bDI3J10iKS5iaW5kKCdjbGljaycsIF9hX1RyYWNrRG93bmxvYWRVbml2ZXJzYWxUcmlhbEhvbWUpOyB9Cis8L3NjcmlwdD48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZy1sZWZ0OjEwcHg7Ij4KKzxhIGNsYXNzPSJWM0J1dHRvbiIgaHJlZj0iL1N1YnNjcmlwdGlvbnMvTmV3LTIwMTMueG1sIj48c3Bhbj4KK1NlZSBXaGF0JiMzOTtzIE5ldworPC9zcGFuPjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9kaXY+PGRpdiBzdHlsZT0icGFkZGluZy10b3A6MjFweDttYXJnaW4tbGVmdDotMjBweDttYXJnaW4tcmlnaHQ6LTIwcHg7Ij4KKzxkaXYgY2xhc3M9ImNvbnRlbnRibG9jayI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRyPgorPHRkIGNsYXNzPSJpbWFnZWFyZWEiIHZhbGlnbj0idG9wIj48YSBocmVmPSIvSG9tZS9hd2FyZHMtMjAxMy54bWwiPjxpbWcgaWQ9ImN0bDAwX1ByZUNvbnRlbnRfY3RsNDAiIGFsdD0iRGV2RXhwcmVzcyBBd2FyZHMgLSBEZXZQcm8gMjAxMyBHb2xkLnBuZyIgc3JjPSIvaS9hd2FyZHMvRGV2RXhwcmVzcy1Bd2FyZHMtRGV2UHJvLTIwMTMucG5nIiBzdHlsZT0iaGVpZ2h0OjY4cHg7d2lkdGg6MTAzcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPjwvYT48L3RkPjx0ZCBjbGFzcz0iY29udGVudHNwYWNlciI+PGRpdj4KKworPC9kaXY+PC90ZD48dGQgY2xhc3M9ImNvbnRlbnRhcmVhIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEwMCU7Ij48cCBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij4KK09uY2UgYWdhaW4gRGV2RXhwcmVzcyBoYXMgZG9taW5hdGVkIHRoZSBEZXZQcm9Db25uZWN0aW9ucyBNYWdhemluZSBSZWFkZXJzIENob2ljZSBBd2FyZHMuIE91ciBkZWVwZXN0IHRoYW5rcyB0byBldmVyeW9uZSB3aG8gdm90ZWQgb3VyIHByb2R1Y3RzIHRoZSBiZXN0LgorPC9wPjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9kaXY+PC90ZD48dGQgY2xhc3M9ImNvbnRlbnRzcGFjZXIiPjxkaXY+CisKKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJpbWFnZWFyZWEiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOi0ycHg7bWFyZ2luLWxlZnQ6LTI1cHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX1ByZUNvbnRlbnRfY3RsNDUiIGFsdD0iRGV2RXhwcmVzcyBDb250cm9scyBmb3IgRGVza3RvcCBhbmQgTW9iaWxlIEFwcGxpY2F0aW9ucyIgc3JjPSIvaS9iYW5uZXJzL0RldkV4cHJlc3MtQ29udHJvbHMtZm9yLURlc2t0b3AtYW5kLU1vYmlsZS1BcHBzLnBuZyIgc3R5bGU9ImhlaWdodDozNjBweDt3aWR0aDo3MTlweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJoLWNsZWFyIj48L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9IlBhZ2UtV3JhcHBlciI+Cis8ZGl2IGNsYXNzPSJsLWRhdGEgQ29udGVudCBNYWluIj4KKworCis8ZGl2IGNsYXNzPSJIb3Jpem9udGFsQmFyIj4KKzxkaXYgY2xhc3M9IklubmVyQ29udGFpbmVyIExpZ2h0Qm94LUJhciI+Cis8ZGl2IGNsYXNzPSJMaW5rcyBibGFjay10ZXh0IHVuZGVybGluZSIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctdG9wOjEwcHg7Ij4KKzxhIGhyZWY9Ii9Ib21lL0F3YXJkcy0yMDEzLnhtbCI+Vm90ZWQgQmVzdCBpbiAyMCsgUHJvZHVjdCBDYXRlZ29yaWVzPC9hPjxzcGFuIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDtwYWRkaW5nLXJpZ2h0OjIwcHg7Y29sb3I6I2NjYzsiPnw8L3NwYW4+PGEgaHJlZj0iL0hvbWUvVlMyMDEzLnhtbCI+VmlzdWFsIFN0dWRpbyAyMDEzIHN1cHBvcnQgaXMgaGVyZTwvYT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0ibGlnaHQtZm9udCIgc3R5bGU9ImZvbnQtc2l6ZTozNnB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctYm90dG9tOjEwcHg7cGFkZGluZy10b3A6MzBweDsiPgorCitZb3VyIG5leHQgZ3JlYXQgYXBwIHN0YXJ0cyBoZXJlLgorCis8L2Rpdj48ZGl2IGNsYXNzPSJsaWdodC1mb250Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToyNHB4O3RleHQtYWxpZ246Y2VudGVyOyI+CisKK0V4cGxvcmUgb3VyIGNvbXByZWhlbnNpdmUgcHJvZHVjdCBsaW5lIGFuZCBleHBlcmllbmNlIHRoZSBEZXZFeHByZXNzIERpZmZlcmVuY2UuCisKKzwvZGl2PgorPC9kaXY+PGRpdiBzdHlsZT0icGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbTo0MHB4OyI+Cis8ZGl2IGNsYXNzPSIKK2lkLUNhcm91c2VsCitwYXJhbS1Sb3VuZAorcGFyYW0tTW92aW5nU3RhcnQKKyIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi01OHB4O3Zpc2liaWxpdHk6aGlkZGVuOyI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTowcHg7Ij4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRyPgorPHRkIGNsYXNzPSJ0YyB0ZmMiIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSIgc3R5bGU9IndpZHRoOjUwJTsiPjxkaXYgY2xhc3M9IkNhcm91c2VsLVByZXZCdXR0b24gaWQtQ2Fyb3VzZWwtUHJldkV2ZW50Ij4KKworPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuOyI+Cis8ZGl2IGNsYXNzPSJpZC1DYXJvdXNlbENvbnRlbnQiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDsiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSI+Cis8dGFibGUgY2xhc3M9InQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyI+Cis8dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgY2xhc3M9ImlkLUNhcm91c2VsUGFnZSI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvQ29kZVJ1c2gvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDg0IiBhbHQ9IkNvZGVSdXNoIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvY29kZXJ1c2gucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyIgLz4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK0NvZGVSdXNoCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPkNvZGUtRGVidWctUmVmYWN0b3I8L3N0cm9uZz48YnIgLz4KK1dyaXRlIGNvZGUgYXQgdGhlIHNwZWVkIG9mIHRob3VnaHQuIEZpbmQgYW5kIGZpeCBkZWZlY3RzLiBSZWZhY3RvciB3aXRoIGVhc2UuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iaHR0cHM6Ly9waG9uZWpzLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsOTgiIGFsdD0iUGhvbmVKUyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL1Bob25lLUpTLW1vYmlsZS1mcmFtZXdvcmsucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyIgLz4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK1Bob25lSlMKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+SFRNTCA1IEpTIE1vYmlsZSBGcmFtZXdvcms8L3N0cm9uZz48YnIgLz4KK0NyZWF0ZSBuYXRpdmUgbW9iaWxlIGFwcGxpY2F0aW9ucyB1c2luZyBIVE1MNSBhbmQgSmF2YVNjcmlwdCB3aXRoIGEgc2luZ2xlIGNvZGViYXNlIGFuZCBkZWxpdmVyIHNvbHV0aW9ucyB0aGF0IHRhcmdldCB0b2RheSYjMzk7cyBtb3N0IHBvcHVsYXIgc21hcnRwaG9uZXMgYW5kIHRhYmxldCBkZXZpY2VzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSJodHRwczovL2NoYXJ0anMuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwxMTIiIGFsdD0iQ2hhcnRKUyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL2NoYXJ0LWpzLWh0bWwtd2lkZ2V0cy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorQ2hhcnRKUworPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5IVE1MIDUgSlMgRGF0YSBWaXN1YWxpemF0aW9uPC9zdHJvbmc+PGJyIC8+CitUaGUgRGV2RXhwcmVzcyBDaGFydEpTIExpYnJhcnkgb2ZmZXJzIHlvdSBhIGZ1bGx5IGludGVncmF0ZWQgY29sbGVjdGlvbiBvZiBibGF6aW5nIGZhc3QgYW5kIGZ1bGx5IGludGVyYWN0aXZlIGRhdGEgdmlzdWFsaXphdGlvbiB3aWRnZXRzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPgorPC90cj48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9XaW5Gb3Jtcy9Db2RlZC1VSS8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMTI2IiBhbHQ9IkNvZGVkIFVJIFN1cHBvcnQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9Db2RlZFVJLVN1cHBvcnQtZm9yLVdpbkZvcm1zLmpwZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitDb2RlZCBVSSBTdXBwb3J0Cis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPkZ1bmN0aW9uYWwgVGVzdGluZyBmb3IgV2luRm9ybXM8L3N0cm9uZz48YnIgLz4KK0RldkV4cHJlc3MgV2luRm9ybXMgQ29kZWQgVUkgZXh0ZW5zaW9ucyBoYXZlIGJlZW4gc3BlY2lmaWNhbGx5IGVuZ2luZWVyZWQgdG8gZXhwbG9pdCB0aGUgcG93ZXIgb2YgTWljcm9zb2Z0JiMzOTtzIFRlc3RpbmcgRnJhbWV3b3JrLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Imh0dHBzOi8vdGVzdGNhZmUuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwxNDAiIGFsdD0iVGVzdENhZsOpIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvdGVzdC1jYWZlLXdlYi5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorVGVzdENhZiYjMjMzOworPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5XZWIgVGVzdGluZyBSZWRlZmluZWQ8L3N0cm9uZz48YnIgLz4KK1JlY29yZCBhbmQgZXhlY3V0ZSB0ZXN0cyBvbiBXaW5kb3dzLCBNYWMgYW5kIExpbnV4IGluIGFueSBkZXNrdG9wIG9yIG1vYmlsZSBicm93c2VyIHRoYXQgc3VwcG9ydHMgSFRNTCA1LiBJbmNsdWRlcyBidWlsdC1pbiBUZXN0IFJlY29yZGVyIGFuZCBUcmFmZmljLU1hcmt1cC1FcnJvciBBbmFseXNpcy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIHRsYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL1ZDTC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMTU0IiBhbHQ9IlZDTCBDb250cm9scyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL3ZjbC1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorVkNMIENvbnRyb2xzCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPmZvciBEZWxwaGkgYW5kIEMrK0J1aWxkZXI8L3N0cm9uZz48YnIgLz4KK0RlbGl2ZXIgdGhlIHNvbHV0aW9ucyB5b3VyIGN1c3RvbWVycyBleHBlY3QgdG9kYXkgYW5kIGxldmVyYWdlIHlvdXIgZXhpc3RpbmcgVkNMIHNraWxsc2V0IHRvIGJ1aWxkIG5leHQgZ2VuZXJhdGlvbiBhcHBsaWNhdGlvbnMgZm9yIHRvbW9ycm93LiBUaGUgRGV2RXhwcmVzcyBWQ0wgcHJvZHVjdCBsaW5lIGluY2x1ZGVzIG92ZXIgMTgwIGNvbnRyb2xzIGFuZCBsaWJyYXJpZXMgb3B0aW1pemVkIGZvciBEZWxwaGkgYW5kIEMrK0J1aWxkZXIuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBjbGFzcz0iaWQtQ2Fyb3VzZWxQYWdlIj4KKzxkaXYgY2xhc3M9ImR4dGFibGUiPgorPHRhYmxlIGNsYXNzPSJ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRyPgorPHRkIGNsYXNzPSJ0YyB0ZmMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luRm9ybXMvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDE4MSIgYWx0PSJXaW5Gb3JtcyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL3dpbmZvcm1zLWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitXaW5Gb3JtcworPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDEyMCBDb250cm9scyBhbmQgTGlicmFyaWVzPC9zdHJvbmc+PGJyIC8+CitBIHJvYnVzdCBhbmQgYWxsLWluY2x1c2l2ZSBkZXZlbG9wbWVudCB0b29sc2V0IGRlc2lnbmVkIHRvIGFkZHJlc3MgdGhlIG5lZWRzIG9mIGRldmVsb3BlcnMgdGFyZ2V0aW5nIHRoZSBXaW5Gb3JtcyBwbGF0Zm9ybS4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMTk1IiBhbHQ9IkFTUC5ORVQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9hc3AtbmV0LWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitBU1AuTkVUCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgOTAgQUpBWCBDb250cm9scyBhbmQgTGlicmFyaWVzPC9zdHJvbmc+PGJyIC8+CitDcmVhdGUgZW5nYWdpbmcsIGludGVyYWN0aXZlIGFuZCB0b3VjaC1lbmFibGVkIHdlYiBleHBlcmllbmNlcyB0aGF0IGVtdWxhdGUgdGhlIGxvb2ssIGZlZWwgYW5kIGNhcGFiaWxpdGllcyBvZiB0b2RheSYjMzk7cyBtb3N0IHBvcHVsYXIgd2ViIGFwcGxpY2F0aW9ucy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIHRsYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvTVZDLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwyMDkiIGFsdD0iTVZDIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvbXZjLWV4dGVuc2lvbnMucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyIgLz4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK01WQworPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDU1IE5hdGl2ZSBNVkMgRXh0ZW5zaW9uczwvc3Ryb25nPjxiciAvPgorQ3JlYXRlIGVuZ2FnaW5nLCBpbnRlcmFjdGl2ZSBhbmQgdG91Y2gtZW5hYmxlZCB3ZWIgZXhwZXJpZW5jZXMgdGhhdCBlbXVsYXRlIHRoZSBsb29rLCBmZWVsIGFuZCBjYXBhYmlsaXRpZXMgb2YgdG9kYXkmIzM5O3MgbW9zdCBwb3B1bGFyIHdlYiBhcHBsaWNhdGlvbnMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dQRi8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMjIzIiBhbHQ9IldQRiIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL3dwZi1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorV1BGCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgODAgQ29udHJvbHMgYW5kIExpYnJhcmllczwvc3Ryb25nPjxiciAvPgorRGVsaXZlciBoaWdobHkgaW50ZXJhY3RpdmUgWEFNTCBiYXNlZCBXaW5kb3dzIGRlc2t0b3AgYXBwbGljYXRpb25zIHRoYXQgYWRkcmVzcyBjdXN0b21lciBuZWVkcyB0b2RheSBhbmQgYnVpbGQgbmV4dCBnZW5lcmF0aW9uIHRvdWNoIGVuYWJsZWQgc29sdXRpb25zIGZvciB0b21vcnJvdy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1NpbHZlcmxpZ2h0LyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwyMzciIGFsdD0iU2lsdmVybGlnaHQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9zaWx2ZXJsaWdodC1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorU2lsdmVybGlnaHQKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+T3ZlciA4MCBDb250cm9scyBhbmQgTGlicmFyaWVzPC9zdHJvbmc+PGJyIC8+CitEZWxpdmVyIGhpZ2hseSBpbnRlcmFjdGl2ZSBYQU1MIHBvd2VyZWQgYnJvd3Nlci1iYXNlZCBhcHBsaWNhdGlvbnMgdGhhdCBhZGRyZXNzIGN1c3RvbWVyIG5lZWRzIHRvZGF5IGFuZCBidWlsZCBuZXh0IGdlbmVyYXRpb24gdG91Y2ggZW5hYmxlZCBzb2x1dGlvbnMgZm9yIHRvbW9ycm93LgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpblJULyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwyNTEiIGFsdD0iV2luZG93cyA4IFhBTUwiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC93aW5kb3dzLTgteGFtbC1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorV2luZG93cyA4IFhBTUwKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+TW9kZXJuIFVJIEFwcHMgZm9yIFdpbmRvd3M8L3N0cm9uZz48YnIgLz4KK1Bvd2VyZnVsIFVJIGNvbnRyb2xzIHNvIHlvdSBjYW4gY3JlYXRlIGNvbXBlbGxpbmcgYnVzaW5lc3Mgc29sdXRpb25zIHRoYXQgZXhwbG9pdCB0aGUgYmVzdCBwYXJ0cyBvZiBXaW5kb3dzJiMxNzQ7IDggd2hlbiB0YXJnZXRpbmcgbmV4dCBnZW5lcmF0aW9uIGRldmljZXMgc3VjaCBhcyBNaWNyb3NvZnQgU3VyZmFjZS4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMiIHZhbGlnbj0idG9wIj48ZGl2IGNsYXNzPSJpZC1DYXJvdXNlbFBhZ2UiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSI+Cis8dGFibGUgY2xhc3M9InQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyI+Cis8dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1N1YnNjcmlwdGlvbnMvUmVwb3J0aW5nLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGwyNzgiIGFsdD0iUmVwb3J0aW5nIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvbmV0LXJlcG9ydGluZy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorUmVwb3J0aW5nCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPmZvciBXaW5Gb3JtcywgQVNQLk5FVCwgV1BGIGFuZCBTaWx2ZXJsaWdodDwvc3Ryb25nPjxiciAvPgorQSBwb3dlcmhvdXNlIHJlcG9ydGluZyBwbGF0Zm9ybSB0aGF0IGluY2x1ZGVzIG5hdGl2ZSBpbnRlZ3JhdGlvbiB3aXRoIERldkV4cHJlc3MgY29udHJvbHMgZm9yIGFuIHVuZXF1YWxsZWQgZGVzaWduLXRpbWUgZXhwZXJpZW5jZSBhbmQgdW5tYXRjaGVkIHJ1bnRpbWUgZmxleGliaWxpdHkuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Eb2N1bWVudC1TZXJ2ZXIvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDI5MiIgYWx0PSJET0MsIFhMUywgWklQIEZpbGUgR2VuIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvZG9jdW1lbnQtc2VydmVyLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitET0MsIFhMUywgWklQIEZpbGUgR2VuCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPnRoZSBVbHRpbWF0ZSBEb2N1bWVudCBHZW5lcmF0aW9uIFRvb2w8L3N0cm9uZz48YnIgLz4KK0dlbmVyYXRlIFhMUywgWExTeCwgRE9DLCBET0N4LCBSVEYsIENTViBhbmQgU25hcCBSZXBvcnQgZmlsZXMgdXNpbmcgYSBzdHJhaWdodGZvcndhcmQgLk5FVCBBUEkgd2l0aG91dCB1c2luZyBNaWNyb3NvZnQgT2ZmaWNlLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvSFRNTC1KUy8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMzA2IiBhbHQ9IkRldkV4dHJlbWUgTW9iaWxlIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvZHh0cmVtZS1tb2JpbGUtaHRtbC1qcy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorRGV2RXh0cmVtZSBNb2JpbGUKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+TXVsdGktRGV2aWNlIEhUTUwgNSBEZXZlbG9wbWVudDwvc3Ryb25nPjxiciAvPgorQSBmdWxseSBpbnRlZ3JhdGVkIEphdmFTY3JpcHQgbW9iaWxlIGRldmVsb3BtZW50IGZyYW1ld29yayBzbyB5b3UgY2FuIGNyZWF0ZSBzdG9yZS1yZWFkeSwgbXVsdGktZGV2aWNlIGFwcGxpY2F0aW9ucyBhY3Jvc3MgcGxhdGZvcm1zIGFuZCBkZXZpY2VzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPgorPC90cj48dHI+Cis8dGQgY2xhc3M9InRjIHRmYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9BcHBsaWNhdGlvbl9GcmFtZXdvcmsvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDMyMCIgYWx0PSJlWHByZXNzQXBwIEZyYW1ld29yayIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL25ldC1hcHBsaWNhdGlvbi1mcmFtZXdvcmsucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyIgLz4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK2VYcHJlc3NBcHAgRnJhbWV3b3JrCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPmZvciBXaW5kb3dzIGFuZCBXZWIgRGV2ZWxvcG1lbnQ8L3N0cm9uZz48YnIgLz4KK0EgZmxleGlibGUgYXBwbGljYXRpb24gZnJhbWV3b3JrIHRoYXQgYWxsb3dzIHlvdSB0byBjcmVhdGUgcG93ZXJmdWwgbGluZS1vZi1idXNpbmVzcyBhcHBsaWNhdGlvbnMgdGhhdCBzaW11bHRhbmVvdXNseSB0YXJnZXQgV2luZG93cyBhbmQgdGhlIFdlYi4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0Rhc2hib2FyZC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsMzM0IiBhbHQ9Ii5ORVQgRGFzaGJvYXJkIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvZGFzaGJvYXJkLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MHB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CisuTkVUIERhc2hib2FyZAorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5mb3IgV2luZG93cyBhbmQgdGhlIFdlYjwvc3Ryb25nPjxiciAvPgorRWxlZ2FudGx5IGludGVyYWN0aXZlIGFuYWx5dGljcyBEYXNoYm9hcmQgd2l0aCBidWlsdC1pbiBwZXJmb3JtYW5jZSBpbmRpY2F0b3JzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL1JlcG9ydC1TZXJ2ZXIvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDM0OCIgYWx0PSJSZXBvcnQgU2VydmVyIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvcmVwb3J0LXNlcnZlci5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorUmVwb3J0IFNlcnZlcgorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5FbnRlcnByaXNlLVJlYWR5LCBDb3N0LUVmZmVjdGl2ZTwvc3Ryb25nPjxiciAvPgorT3B0aW1pemVkIGZvciB0aGUgZW50ZXJwcmlzZSBhbmQgbWFkZSB0byByZWR1Y2UgcHJlc3N1cmVzIG9uIGRldmVsb3BtZW50IHRlYW1zIGJ5IGVtcG93ZXJpbmcgdXNlcnMgdG8gZ2VuZXJhdGUgYW5kIG1hbmFnZSByZXBvcnRzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgY2xhc3M9ImlkLUNhcm91c2VsUGFnZSI+Cis8ZGl2IGNsYXNzPSJkeHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvQ29kZVJ1c2gvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDM3NSIgYWx0PSJDb2RlUnVzaCIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL2NvZGVydXNoLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitDb2RlUnVzaAorPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5Db2RlLURlYnVnLVJlZmFjdG9yPC9zdHJvbmc+PGJyIC8+CitXcml0ZSBjb2RlIGF0IHRoZSBzcGVlZCBvZiB0aG91Z2h0LiBGaW5kIGFuZCBmaXggZGVmZWN0cy4gUmVmYWN0b3Igd2l0aCBlYXNlLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Imh0dHBzOi8vcGhvbmVqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDM4OSIgYWx0PSJQaG9uZUpTIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvUGhvbmUtSlMtbW9iaWxlLWZyYW1ld29yay5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorUGhvbmVKUworPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5IVE1MIDUgSlMgTW9iaWxlIEZyYW1ld29yazwvc3Ryb25nPjxiciAvPgorQ3JlYXRlIG5hdGl2ZSBtb2JpbGUgYXBwbGljYXRpb25zIHVzaW5nIEhUTUw1IGFuZCBKYXZhU2NyaXB0IHdpdGggYSBzaW5nbGUgY29kZWJhc2UgYW5kIGRlbGl2ZXIgc29sdXRpb25zIHRoYXQgdGFyZ2V0IHRvZGF5JiMzOTtzIG1vc3QgcG9wdWxhciBzbWFydHBob25lcyBhbmQgdGFibGV0IGRldmljZXMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Imh0dHBzOi8vY2hhcnRqcy5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDQwMyIgYWx0PSJDaGFydEpTIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvY2hhcnQtanMtaHRtbC13aWRnZXRzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitDaGFydEpTCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPkhUTUwgNSBKUyBEYXRhIFZpc3VhbGl6YXRpb248L3N0cm9uZz48YnIgLz4KK1RoZSBEZXZFeHByZXNzIENoYXJ0SlMgTGlicmFyeSBvZmZlcnMgeW91IGEgZnVsbHkgaW50ZWdyYXRlZCBjb2xsZWN0aW9uIG9mIGJsYXppbmcgZmFzdCBhbmQgZnVsbHkgaW50ZXJhY3RpdmUgZGF0YSB2aXN1YWxpemF0aW9uIHdpZGdldHMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zL0NvZGVkLVVJLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw0MTciIGFsdD0iQ29kZWQgVUkgU3VwcG9ydCIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL0NvZGVkVUktU3VwcG9ydC1mb3ItV2luRm9ybXMuanBnIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyIgLz4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK0NvZGVkIFVJIFN1cHBvcnQKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+RnVuY3Rpb25hbCBUZXN0aW5nIGZvciBXaW5Gb3Jtczwvc3Ryb25nPjxiciAvPgorRGV2RXhwcmVzcyBXaW5Gb3JtcyBDb2RlZCBVSSBleHRlbnNpb25zIGhhdmUgYmVlbiBzcGVjaWZpY2FsbHkgZW5naW5lZXJlZCB0byBleHBsb2l0IHRoZSBwb3dlciBvZiBNaWNyb3NvZnQmIzM5O3MgVGVzdGluZyBGcmFtZXdvcmsuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iaHR0cHM6Ly90ZXN0Y2FmZS5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDQzMSIgYWx0PSJUZXN0Q2Fmw6kiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC90ZXN0LWNhZmUtd2ViLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MHB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitUZXN0Q2FmJiMyMzM7Cis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPldlYiBUZXN0aW5nIFJlZGVmaW5lZDwvc3Ryb25nPjxiciAvPgorUmVjb3JkIGFuZCBleGVjdXRlIHRlc3RzIG9uIFdpbmRvd3MsIE1hYyBhbmQgTGludXggaW4gYW55IGRlc2t0b3Agb3IgbW9iaWxlIGJyb3dzZXIgdGhhdCBzdXBwb3J0cyBIVE1MIDUuIEluY2x1ZGVzIGJ1aWx0LWluIFRlc3QgUmVjb3JkZXIgYW5kIFRyYWZmaWMtTWFya3VwLUVycm9yIEFuYWx5c2lzLgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvVkNMLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw0NDUiIGFsdD0iVkNMIENvbnRyb2xzIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvdmNsLWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitWQ0wgQ29udHJvbHMKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+Zm9yIERlbHBoaSBhbmQgQysrQnVpbGRlcjwvc3Ryb25nPjxiciAvPgorRGVsaXZlciB0aGUgc29sdXRpb25zIHlvdXIgY3VzdG9tZXJzIGV4cGVjdCB0b2RheSBhbmQgbGV2ZXJhZ2UgeW91ciBleGlzdGluZyBWQ0wgc2tpbGxzZXQgdG8gYnVpbGQgbmV4dCBnZW5lcmF0aW9uIGFwcGxpY2F0aW9ucyBmb3IgdG9tb3Jyb3cuIFRoZSBEZXZFeHByZXNzIFZDTCBwcm9kdWN0IGxpbmUgaW5jbHVkZXMgb3ZlciAxODAgY29udHJvbHMgYW5kIGxpYnJhcmllcyBvcHRpbWl6ZWQgZm9yIERlbHBoaSBhbmQgQysrQnVpbGRlci4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBjbGFzcz0iaWQtQ2Fyb3VzZWxQYWdlIj4KKzxkaXYgY2xhc3M9ImR4dGFibGUiPgorPHRhYmxlIGNsYXNzPSJ0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPgorPHRyPgorPHRkIGNsYXNzPSJ0YyB0ZmMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luRm9ybXMvIj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzMwcHg7aGVpZ2h0OjIwNXB4O2JvcmRlcjoxcHggc29saWQgI2NmY2ZjZjtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5OmlubGluZS1ibG9jazsiPgorPGRpdiBzdHlsZT0id2lkdGg6MzEwcHg7aGVpZ2h0OjE1MHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5O21hcmdpbjoxMHB4O21hcmdpbi1ib3R0b206MHB4OyI+Cis8aW1nIGlkPSJjdGwwMF9Db250ZW50X2N0bDQ3MiIgYWx0PSJXaW5Gb3JtcyIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL3dpbmZvcm1zLWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitXaW5Gb3JtcworPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDEyMCBDb250cm9scyBhbmQgTGlicmFyaWVzPC9zdHJvbmc+PGJyIC8+CitBIHJvYnVzdCBhbmQgYWxsLWluY2x1c2l2ZSBkZXZlbG9wbWVudCB0b29sc2V0IGRlc2lnbmVkIHRvIGFkZHJlc3MgdGhlIG5lZWRzIG9mIGRldmVsb3BlcnMgdGFyZ2V0aW5nIHRoZSBXaW5Gb3JtcyBwbGF0Zm9ybS4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsNDg2IiBhbHQ9IkFTUC5ORVQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9hc3AtbmV0LWNvbnRyb2xzLnBuZyIgc3R5bGU9ImhlaWdodDoxNTBweDt3aWR0aDozMTBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O2JvdHRvbTowcHg7Ij4KKzxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtY29udGVudCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXRvcC1jb2xvcjpsaWdodGdyYXk7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci10b3Atd2lkdGg6MXB4OyI+Cis8ZGl2IGNsYXNzPSJncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTZweDt3aWR0aDppbmhlcml0O3BhZGRpbmctYm90dG9tOjEzcHg7cGFkZGluZy10b3A6OHB4OyI+CitBU1AuTkVUCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgOTAgQUpBWCBDb250cm9scyBhbmQgTGlicmFyaWVzPC9zdHJvbmc+PGJyIC8+CitDcmVhdGUgZW5nYWdpbmcsIGludGVyYWN0aXZlIGFuZCB0b3VjaC1lbmFibGVkIHdlYiBleHBlcmllbmNlcyB0aGF0IGVtdWxhdGUgdGhlIGxvb2ssIGZlZWwgYW5kIGNhcGFiaWxpdGllcyBvZiB0b2RheSYjMzk7cyBtb3N0IHBvcHVsYXIgd2ViIGFwcGxpY2F0aW9ucy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIHRsYyIgdmFsaWduPSJ0b3AiPjxkaXYgc3R5bGU9InBhZGRpbmc6MThweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvTVZDLyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1MDAiIGFsdD0iTVZDIiBzcmM9Ii9Ib21lL2kvY2Fyb3VzZWwvbXZjLWV4dGVuc2lvbnMucG5nIiBzdHlsZT0iaGVpZ2h0OjE1MHB4O3dpZHRoOjMxMHB4O2JvcmRlci1zdHlsZTpub25lOyIgLz4KKzwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7Ym90dG9tOjBweDsiPgorPGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1jb250ZW50IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDt3aWR0aDozMTBweDtib3JkZXItdG9wLWNvbG9yOmxpZ2h0Z3JheTtib3JkZXItdG9wLXN0eWxlOm5vbmU7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ij4KKzxkaXYgY2xhc3M9ImdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O3dpZHRoOmluaGVyaXQ7cGFkZGluZy1ib3R0b206MTNweDtwYWRkaW5nLXRvcDo4cHg7Ij4KK01WQworPC9kaXY+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcC1kZXNjcmlwdGlvbiBncmF5LXRleHQiIHN0eWxlPSJmb250LXNpemU6MTNweDtkaXNwbGF5Om5vbmU7cGFkZGluZy1ib3R0b206N3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTBweDsiPgorPHN0cm9uZz5PdmVyIDU1IE5hdGl2ZSBNVkMgRXh0ZW5zaW9uczwvc3Ryb25nPjxiciAvPgorQ3JlYXRlIGVuZ2FnaW5nLCBpbnRlcmFjdGl2ZSBhbmQgdG91Y2gtZW5hYmxlZCB3ZWIgZXhwZXJpZW5jZXMgdGhhdCBlbXVsYXRlIHRoZSBsb29rLCBmZWVsIGFuZCBjYXBhYmlsaXRpZXMgb2YgdG9kYXkmIzM5O3MgbW9zdCBwb3B1bGFyIHdlYiBhcHBsaWNhdGlvbnMuCisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjwvYT4KKzwvZGl2PjwvdGQ+Cis8L3RyPjx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dQRi8iPjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozMzBweDtoZWlnaHQ6MjA1cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2ZjZmNmO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+Cis8ZGl2IHN0eWxlPSJ3aWR0aDozMTBweDtoZWlnaHQ6MTUwcHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7bWFyZ2luOjEwcHg7bWFyZ2luLWJvdHRvbTowcHg7Ij4KKzxpbWcgaWQ9ImN0bDAwX0NvbnRlbnRfY3RsNTE0IiBhbHQ9IldQRiIgc3JjPSIvSG9tZS9pL2Nhcm91c2VsL3dwZi1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorV1BGCis8L2Rpdj48ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWRlc2NyaXB0aW9uIGdyYXktdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xMHB4OyI+Cis8c3Ryb25nPk92ZXIgODAgQ29udHJvbHMgYW5kIExpYnJhcmllczwvc3Ryb25nPjxiciAvPgorRGVsaXZlciBoaWdobHkgaW50ZXJhY3RpdmUgWEFNTCBiYXNlZCBXaW5kb3dzIGRlc2t0b3AgYXBwbGljYXRpb25zIHRoYXQgYWRkcmVzcyBjdXN0b21lciBuZWVkcyB0b2RheSBhbmQgYnVpbGQgbmV4dCBnZW5lcmF0aW9uIHRvdWNoIGVuYWJsZWQgc29sdXRpb25zIGZvciB0b21vcnJvdy4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1NpbHZlcmxpZ2h0LyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1MjgiIGFsdD0iU2lsdmVybGlnaHQiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC9zaWx2ZXJsaWdodC1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjBweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorU2lsdmVybGlnaHQKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+T3ZlciA4MCBDb250cm9scyBhbmQgTGlicmFyaWVzPC9zdHJvbmc+PGJyIC8+CitEZWxpdmVyIGhpZ2hseSBpbnRlcmFjdGl2ZSBYQU1MIHBvd2VyZWQgYnJvd3Nlci1iYXNlZCBhcHBsaWNhdGlvbnMgdGhhdCBhZGRyZXNzIGN1c3RvbWVyIG5lZWRzIHRvZGF5IGFuZCBidWlsZCBuZXh0IGdlbmVyYXRpb24gdG91Y2ggZW5hYmxlZCBzb2x1dGlvbnMgZm9yIHRvbW9ycm93LgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L2E+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0icGFkZGluZzoxOHB4O3RleHQtYWxpZ246Y2VudGVyOyI+Cis8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpblJULyI+PGRpdiBjbGFzcz0iaWQtc3dpcGVVcCIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMzMHB4O2hlaWdodDoyMDVweDtib3JkZXI6MXB4IHNvbGlkICNjZmNmY2Y7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KKzxkaXYgc3R5bGU9IndpZHRoOjMxMHB4O2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTttYXJnaW46MTBweDttYXJnaW4tYm90dG9tOjBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1NDIiIGFsdD0iV2luZG93cyA4IFhBTUwiIHNyYz0iL0hvbWUvaS9jYXJvdXNlbC93aW5kb3dzLTgteGFtbC1jb250cm9scy5wbmciIHN0eWxlPSJoZWlnaHQ6MTUwcHg7d2lkdGg6MzEwcHg7Ym9yZGVyLXN0eWxlOm5vbmU7IiAvPgorPC9kaXY+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDtib3R0b206MHB4OyI+Cis8ZGl2IGNsYXNzPSJpZC1zd2lwZVVwLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4O3dpZHRoOjMxMHB4O2JvcmRlci10b3AtY29sb3I6bGlnaHRncmF5O2JvcmRlci10b3Atc3R5bGU6bm9uZTtib3JkZXItdG9wLXdpZHRoOjFweDsiPgorPGRpdiBjbGFzcz0iZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE2cHg7d2lkdGg6aW5oZXJpdDtwYWRkaW5nLWJvdHRvbToxM3B4O3BhZGRpbmctdG9wOjhweDsiPgorV2luZG93cyA4IFhBTUwKKzwvZGl2PjxkaXYgY2xhc3M9ImlkLXN3aXBlVXAtZGVzY3JpcHRpb24gZ3JheS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEzcHg7ZGlzcGxheTpub25lO3BhZGRpbmctYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEwcHg7Ij4KKzxzdHJvbmc+TW9kZXJuIFVJIEFwcHMgZm9yIFdpbmRvd3M8L3N0cm9uZz48YnIgLz4KK1Bvd2VyZnVsIFVJIGNvbnRyb2xzIHNvIHlvdSBjYW4gY3JlYXRlIGNvbXBlbGxpbmcgYnVzaW5lc3Mgc29sdXRpb25zIHRoYXQgZXhwbG9pdCB0aGUgYmVzdCBwYXJ0cyBvZiBXaW5kb3dzJiMxNzQ7IDggd2hlbiB0YXJnZXRpbmcgbmV4dCBnZW5lcmF0aW9uIGRldmljZXMgc3VjaCBhcyBNaWNyb3NvZnQgU3VyZmFjZS4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC9hPgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PC90ZD48dGQgY2xhc3M9InRjIHRsYyIgYWxpZ249InJpZ2h0IiB2YWxpZ249Im1pZGRsZSIgc3R5bGU9IndpZHRoOjUwJTsiPjxkaXYgY2xhc3M9IkNhcm91c2VsLU5leHRCdXR0b24gaWQtQ2Fyb3VzZWwtTmV4dEV2ZW50Ij4KKworPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7CisoZnVuY3Rpb24gKCkgewordmFyIHN3aXBlVXAgPSAkKCIuaWQtc3dpcGVVcCIpOwordmFyIHN3aXBlVXBEZXNjcmlwdGlvbiA9IHN3aXBlVXAuZmluZCgnLmlkLXN3aXBlVXAtZGVzY3JpcHRpb24nKTsKK3ZhciBzd2lwZVVwQ29udGVudCA9IHN3aXBlVXAuZmluZCgnLmlkLXN3aXBlVXAtY29udGVudCcpOworc3dpcGVVcC5hdHRyKCJob3R0cmFja2VkIiwgImZhbHNlIik7Cit2YXIgdGltZVN3aXBlID0gMTAwOwordmFyIGRlbGF5U3dpcGUgPSAxNTA7Cit2YXIgdGltZXI7Citzd2lwZVVwLmhvdmVyKHVwLCBkb3duKTsKKworc3dpcGVVcC5vbignY2xpY2snLCBpdGVtQ2xpY2spOworLy8gc3dpcGVVcC5vbigndG91Y2hTdGFydCcsIGl0ZW1DbGljayk7CisKK2Z1bmN0aW9uIGl0ZW1DbGljayhldmVudCkgeworCitpZigkKHRoaXMpLmF0dHIoJ2hvdHRyYWNrZWQnKSAhPSAndHJ1ZScpCitldmVudC5wcmV2ZW50RGVmYXVsdHMoKTsKKy8vdmFyIGhvdFRyYWNrQ2xpY2sgPSAkKHRoaXMpLmF0dHIoJ2hvdHRyYWNrZWQnKTsKKy8vdmFyIGNsaWNrZWRFbGVtZW50ID0gJCh0aGlzKS5maW5kKCcuaWQtc3dpcGVVcC1kZXNjcmlwdGlvbicpOworLy9pZiAoICFob3RUcmFja0NsaWNrICkgeworLy9ldmVudC5wcmV2ZW50RGVmYXVsdCgpOworLy8kKCIuaWQtc3dpcGVVcCIpLmF0dHIoImhvdHRyYWNrZWQiLCAiZmFsc2UiKTsKKy8vJCh0aGlzKS5hdHRyKCJob3R0cmFja2VkIiwgInRydWUiKTsKKy8vc3dpcGVVcERlc2NyaXB0aW9uLnNsaWRlVXAodGltZVN3aXBlKTsKKy8vY2xpY2tlZEVsZW1lbnQuc2hvdyh0aW1lU3dpcGUpOworLy9zd2lwZVVwQ29udGVudC5jc3MoJ2JvcmRlci10b3Atc3R5bGUnLCAnbm9uZScpOworLy8kKHRoaXMpLmZpbmQoJy5pZC1zd2lwZVVwLWNvbnRlbnQnKS5jc3MoJ2JvcmRlci10b3Atc3R5bGUnLCAnc29saWQnKTsKKy8vfQorfQorZnVuY3Rpb24gdXAoZXZlbnQpIHsKK2NvbnNvbGUubG9nKCdpbnNpZGUgdXAnKTsKKyQoIi5pZC1zd2lwZVVwIikuYXR0cigiaG90dHJhY2tlZCIsICJmYWxzZSIpOworJCh0aGlzKS5hdHRyKCJob3R0cmFja2VkIiwgInRydWUiKTsKK3ZhciBkZXNjcmlwdGlvbiA9ICQodGhpcykuZmluZCgnLmlkLXN3aXBlVXAtZGVzY3JpcHRpb24nKTsKK3ZhciBjb250ZW50ID0gJCh0aGlzKS5maW5kKCcuaWQtc3dpcGVVcC1jb250ZW50Jyk7Cit0aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworY29udGVudC5jc3MoJ2JvcmRlci10b3Atc3R5bGUnLCAnc29saWQnKTsKK2Rlc2NyaXB0aW9uLnNsaWRlRG93bih0aW1lU3dpcGUpOworfSwgZGVsYXlTd2lwZSk7Cit9OworZnVuY3Rpb24gZG93bihldmVudCkgeworY2xlYXJUaW1lb3V0KHRpbWVyKTsKK3ZhciBjb250ZW50ID0gJCh0aGlzKS5maW5kKCcuaWQtc3dpcGVVcC1jb250ZW50Jyk7CiskKHRoaXMpLmZpbmQoJy5pZC1zd2lwZVVwLWRlc2NyaXB0aW9uJykuc2xpZGVVcCh0aW1lU3dpcGUsIGZ1bmN0aW9uICgpIHsgY29udGVudC5jc3MoJ2JvcmRlci10b3Atc3R5bGUnLCAnbm9uZScpOyB9KTsKK307Cit9KSgpOworfSk7Cis8L3NjcmlwdD4KKzwvZGl2PjxkaXYgY2xhc3M9ImxpZ2h0LWZvbnQiIHN0eWxlPSJmb250LXNpemU6MzBweDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nLWJvdHRvbTo0MHB4O3BhZGRpbmctdG9wOjIwcHg7Ij4KKworU2VlIHdoeSBkZXZlbG9wZXJzIGp1c3QgbGlrZSB5b3UgdHJ1c3Q8YnIgLz4KKworRGV2RXhwcmVzcyBmb3IgYWxsIHRoZWlyIHNvZnR3YXJlIGRldmVsb3BtZW50IG5lZWRzLgorCisKKzwvZGl2PjxkaXYgc3R5bGU9InBhZGRpbmctYm90dG9tOjIwcHg7Ij4KKzxkaXYgY2xhc3M9ImR4dGFibGUgZHhpbnRlcm5hbHRhYmxlIGktZHh0YWJsZSI+Cis8dGFibGUgY2xhc3M9InQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjUwJTsiPjxkaXYgc3R5bGU9InBhZGRpbmctcmlnaHQ6MjBweDsiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSBkeGludGVybmFsdGFibGUgaS1keHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjMwcHg7cGFkZGluZy10b3A6MTBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1NzUiIGFsdD0iUGhpbGlwIGRlIEtvY2siIHNyYz0iL2kvcXVvdGVzL1BoaWxpcC1kZS1Lb2NrLnBuZyIgc3R5bGU9ImhlaWdodDoxMDBweDt3aWR0aDoxMDBweDtib3JkZXItc3R5bGU6bm9uZTsiIC8+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCI+PGg2PgorUGhpbGlwIGRlIEtvY2sKKzwvaDY+PGRpdiBzdHlsZT0iYm9yZGVyOnNvbGlkICNkOWQ5ZDkgMXB4O3BhZGRpbmctdG9wOjE1cHg7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmctYm90dG9tOjE1cHg7cGFkZGluZy1sZWZ0OjI1cHg7cGFkZGluZy1yaWdodDoyNXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxNjBweDsiPgorPHA+SSBoYXZlIGJlZW4gdXNpbmcgRGV2RXhwcmVzcyBzaW5jZSB0aGUgY29tcGFueSBzdGFydGVkIOKAkyBzbyBhbGwgMTUgeWVhcnMuIE15IENvbXBhbnksIEZhbnR1cyBUZWNobm9sb2dpZXMsIHVzZXMgRGV2RXhwcmVzcyBleHRlbnNpdmVseSBhbmQgaGF2ZSBmb3VuZCB0aGF0IG91ciBjdXN0b21lcnMgcmF2ZSBhYm91dCB0aGUgR3JpZHMsIFBpdm90cywgUmVwb3J0cyBhbmQgQ2hhcnRzIGFsbCB0aGUgdGltZS4gIFRoZXkgYWxtb3N0IGFsd2F5cyBtYWtlIHVzIGxvb2sgZ29vZC48L3A+PHA+VGhhbmsgeW91IGZvciBzdWNoIGJyaWxsaWFudCBwcm9kdWN0cyBhbmQga2VlcCB1cCB0aGUgZ29vZCB3b3JrLjwvcD48ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0yOHB4O3RvcDo0MHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCYjMzk7L0hvbWUvaS9xdW90ZXMvY2FsbG91dC1sZWZ0LnBuZyYjMzk7KTt3aWR0aDoyOHB4O2hlaWdodDoyOXB4OyI+CisKKzwvZGl2PgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9kaXY+PGRpdiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDtwYWRkaW5nLXRvcDo1cHg7Ij4KKzxwPgorTGVhcm4gbW9yZSBhYm91dCA8YSBocmVmPSIvU3Vic2NyaXB0aW9ucy9SZXBvcnRpbmcvIj5SZXBvcnRpbmc8L2E+IGFuZCA8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zLyI+V2luRm9ybXM8L2E+IENvbnRyb2xzCis8L3A+Cis8L2Rpdj4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDsiPgorPGRpdiBjbGFzcz0iZHh0YWJsZSBkeGludGVybmFsdGFibGUgaS1keHRhYmxlIj4KKzx0YWJsZSBjbGFzcz0idCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCI+PGRpdiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjMwcHg7cGFkZGluZy10b3A6MTBweDsiPgorPGltZyBpZD0iY3RsMDBfQ29udGVudF9jdGw1OTEiIGFsdD0iSXZ5IEhvYW5nIiBzcmM9Ii9pL3F1b3Rlcy9JdnktSG9hbmcucG5nIiBzdHlsZT0iaGVpZ2h0OjEwMHB4O3dpZHRoOjEwMHB4O2JvcmRlci1zdHlsZTpub25lOyIgLz4KKzwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJ0YyB0bGMiIHZhbGlnbj0idG9wIj48aDY+CitJdnkgSG9hbmcKKzwvaDY+PGRpdiBzdHlsZT0iYm9yZGVyOnNvbGlkICNkOWQ5ZDkgMXB4O3BhZGRpbmctdG9wOjE1cHg7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmctYm90dG9tOjE1cHg7cGFkZGluZy1sZWZ0OjI1cHg7cGFkZGluZy1yaWdodDoyNXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxMjBweDsiPgorPHA+SSBoYXZlIGhhZCB0aGUgcGxlYXN1cmUgdG8gd29yayB3aXRoIFdQRiwgV2luRm9ybXMsIGFuZCBBU1AuTkVUIGFuZCBubyBvbmUgb2ZmZXJzIGEgbW9yZSBwb3dlcmZ1bCwgY29tcHJlaGVuc2l2ZSwgYW5kIGp1c3QgcGxhaW4gYXdlc29tZSBzZXQgb2YgdG9vbHMgYXMgRGV2RXhwcmVzcy48L3A+PGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMjhweDt0b3A6NDBweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgmIzM5Oy9Ib21lL2kvcXVvdGVzL2NhbGxvdXQtbGVmdC5wbmcmIzM5Oyk7d2lkdGg6MjhweDtoZWlnaHQ6MjlweDsiPgorCis8L2Rpdj4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9kaXY+PGRpdiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDtwYWRkaW5nLXRvcDo1cHg7Ij4KKzxwPgorTGVhcm4gbW9yZSBhYm91dCA8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC8iPkFTUC5ORVQ8L2E+IGFuZCA8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dQRi8iPldQRjwvYT4gQ29udHJvbHMKKzwvcD4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9kaXY+CisKKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJQb3N0Q29udGVudCI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9ImR4dGFibGUgZHhpbnRlcm5hbHRhYmxlIGktZHh0YWJsZSI+Cis8dGFibGUgY2xhc3M9InQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0idGMgdGZjIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjUwJTsiPjxkaXYgc3R5bGU9InBhZGRpbmctcmlnaHQ6MjBweDsiPgorPGRpdiBjbGFzcz0ibGlnaHQtZm9udCBncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJmb250LXNpemU6MzZweDsiPgorCitOZXdzICZhbXA7IEV2ZW50cworCis8L2Rpdj48ZGl2PgorPGRpdiBjbGFzcz0id2hpdGUtdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206NXB4OyI+Cis8YSBocmVmPSIvSG9tZS9Bbm5vdW5jZXMvMjAxMy1WQ0wtQ29udHJvbHMtMTMtMi54bWwiPkFubm91bmNpbmcgRGV2RXhwcmVzcyBWQ0wgMTMuMjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9ImdyYXktdGV4dC1vbi1ibGFjayIgc3R5bGU9InBhZGRpbmctYm90dG9tOjVweDsiPgorV2l0aCB0aGlzIHJlbGVhc2UsIERldkV4cHJlc3MgY29udGludWVzIGl0cyAxNSB5ZWFyIGNvbW1pdG1lbnQgdG8gdGhlIERlbHBoaSBhbmQgQysrQnVpbGRlciBkZXZlbG9wZXIgY29tbXVuaXR5IGJ5IGV4dGVuZGluZyBpdHMgcHJvZHVjdCBsaW5lIHdpdGggcG93ZXJmdWwgbmV3IGZlYXR1cmVzIGRlc2lnbmVkIHRvIGhlbHAgVkNMIGRldmVsb3BlcnMgYnVpbGQgbmV4dC1nZW5lcmF0aW9uIHVzZXIgZXhwZXJpZW5jZXMgb24gdGhlIFdpbmRvd3MgcGxhdGZvcm0uCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0icGFkZGluZy1ib3R0b206MTBweDsiPgorPGEgaHJlZj0iL0hvbWUvQW5ub3VuY2VzLzIwMTMtVkNMLUNvbnRyb2xzLTEzLTIueG1sIj4KK1JlYWQgbW9yZQorPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0id2hpdGUtdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206NXB4OyI+Cis8YSBocmVmPSIvSG9tZS9Bbm5vdW5jZXMvMjAxMy1Vbml2ZXJzYWwtdjEzLTIueG1sIj5EZXZFeHByZXNzIEFubm91bmNlcyBpdHMgTmV3ZXN0IFJlbGVhc2UgZm9yIC5ORVQgRGV2ZWxvcGVyczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9ImdyYXktdGV4dC1vbi1ibGFjayIgc3R5bGU9InBhZGRpbmctYm90dG9tOjVweDsiPgorCitMZXQmIzM5O3MgYnVpbGQgZ3JlYXQgYXBwcywgdG9nZXRoZXIuIExlYXJuIGhvdyBEZXZFeHByZXNzIGhhcyBldm9sdmVkIGl0cyBhd2FyZC13aW5uaW5nIHByb2R1Y3QgbGluZSBhbmQgYWRkcmVzc2VkIHRoZSBuZWVkcyBvZiB0b2RheSBhbmQgdGVjaG5vbG9neSByZXF1aXJlbWVudHMgb2YgdG9tb3Jyb3cuCisKKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJwYWRkaW5nLWJvdHRvbToxMHB4OyI+Cis8YSBocmVmPSIvSG9tZS9Bbm5vdW5jZXMvMjAxMy1Vbml2ZXJzYWwtdjEzLTIueG1sIj4KK1JlYWQgbW9yZQorPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2PgorPGRpdiBjbGFzcz0id2hpdGUtdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206NXB4OyI+Cis8YSBocmVmPSIvSG9tZS9Db21tdW5pdHkvIj5Db2RlIFBhTE9Vc2EgMjAxNDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9ImdyYXktdGV4dC1vbi1ibGFjayIgc3R5bGU9InBhZGRpbmctYm90dG9tOjVweDsiPgorT25lIHRoaW5nIGFib3V0IENvZGUgUGFMT1VzYSBhdHRlbmRlZXMgaXMgdGhhdCB0aGV5IGFyZSBsZWFkZXJzLCB3aGV0aGVyIHRoYXQgYmUgaW4gdGhlIGNvbW11bml0eSBhcyBhIHdob2xlIG9yIGp1c3Qgd2l0aGluIHRoZWlyIGNvbXBhbnkuCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0icGFkZGluZy1ib3R0b206MTBweDsiPgorPGEgaHJlZj0iL0hvbWUvQ29tbXVuaXR5LyI+CitSZWFkIG1vcmUKKzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDsiPgorPGEgaHJlZj0iL0hvbWUvQ29tbXVuaXR5LyI+QkFTVEEhIFNwcmluZyAyMDE0PC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIiBzdHlsZT0icGFkZGluZy1ib3R0b206NXB4OyI+CitJbmRlcGVuZGVudCBkZXZlbG9wZXIgY29uZmVyZW5jZSBmb3IgTWljcm9zb2Z0IHRlY2hub2xvZ2llcyBpbiBHZXJtYW55LgorSGVyZSwgcGFydGljaXBhbnRzIGNhbiBiZW5lZml0IGZyb20gdGhlIGV4cGVyaWVuY2Ugb2YgcmVub3duZWQgZXhwZXJ0cyBmcm9tCithbGwgb3ZlciBFdXJvcGUuCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0icGFkZGluZy1ib3R0b206MTBweDsiPgorPGEgaHJlZj0iL0hvbWUvQ29tbXVuaXR5LyI+CitSZWFkIG1vcmUKKzwvYT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48L3RkPjx0ZCBjbGFzcz0idGMgdGxjIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjUwJTsiPjxkaXYgc3R5bGU9InBhZGRpbmctbGVmdDoyMHB4OyI+Cis8ZGl2IGNsYXNzPSJsaWdodC1mb250ICBncmF5LXRleHQtb24tYmxhY2siIHN0eWxlPSJmb250LXNpemU6MzZweDsiPgorCitGZWF0dXJlZCBUb29scworCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE4cHg7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvdG91Y2gueG1sIj4KK1RoZSBGdXR1cmUsIEhlcmUgVG9kYXkgPGJyIC8+CisKK1RvdWNoLWVuYWJsZWQgY29udHJvbHMgYWNyb3NzIHBsYXRmb3Jtcy4KKzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9ImdyYXktdGV4dC1vbi1ibGFjayIgc3R5bGU9InBhZGRpbmctYm90dG9tOjVweDsiPgorCitOZWVkIHRvIHRhcmdldCBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBXaW5kb3dzIGFuZCBzdGlsbCBkZWxpdmVyIFdpbmRvd3MgOCBpbnNwaXJlZCB1c2VyIGV4cGVyaWVuY2VzPyBTZWUgaG93IERldkV4cHJlc3MgY29udHJvbHMgY2FuIGJyaW5nIHRoZSBwb3dlciBvZiB0b3VjaCB0byB5b3VyIGRlc2t0b3AgYXBwczo8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL3RvdWNoLnhtbCI+V2VicGFnZTwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IndoaXRlLXRleHQiIHN0eWxlPSJmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDsiPgorPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvR3JpZC8iPgorQmxhemluZyBGYXN0IEFTUC5ORVQgR3JpZCA8YnIgLz4KKworQmVjYXVzZSBwZXJmb3JtYW5jZSBtYXR0ZXJzLgorPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIiBzdHlsZT0icGFkZGluZy1ib3R0b206NXB4OyI+CisKK1dhbnQgdG8gc2VlIGhvdyBmYXN0IHRoZSBEZXZFeHByZXNzIEFTUHhHcmlkVmlldyBjYW4gbG9hZCBkYXRhPyBIb3cgaXQgY2FuIGhhbmRsZSBodW5kcmVkcyBvZiB0aG91c2FuZHMgb2YgcmVjb3JkcyB3aXRoIGVhc2UgYW5kIGdyb3VwIGFuZCBzb3J0IGp1c3QgbGlrZSBNaWNyb3NvZnQgT3V0bG9vaz8KKworPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIiBzdHlsZT0icGFkZGluZy1ib3R0b206MTBweDtkaXNwbGF5OmlubGluZTtmbG9hdDpsZWZ0OyI+CisKK1Rha2UgYSBsb29rIGF0IG91ciA2NTBrIGRhdGFzZXQgZGVtbyB0b2RheToKKworPC9kaXY+PGRpdiBjbGFzcz0id2hpdGUtdGV4dCIgc3R5bGU9ImRpc3BsYXk6aW5saW5lO3BhZGRpbmctbGVmdDoxMHB4OyI+Cis8YSBocmVmPSJodHRwczovL2RlbW9zLmRldmV4cHJlc3MuY29tL0FTUC9QZXJmb3JtYW5jZS8iPkRlbW88L2E+IHwgPGlucHV0IHR5cGU9ImhpZGRlbiIgYXV0b2NvbXBsZXRlPSJvZmYiIGlkPSJ3c1BvcHVwV1MiIG5hbWU9IndzUG9wdXBXUyIgdmFsdWU9IjA6MDotMTotMTAwMDA6LTEwMDAwOjA6LTEwMDAwOi0xMDAwMDoxIiAvPjx0YWJsZSBpZD0id3NQb3B1cF9QVzAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4O3otaW5kZXg6MTAwMDA7dmlzaWJpbGl0eTpoaWRkZW47ZGlzcGxheTpub25lOyI+Cis8dHI+Cis8dGQgY2xhc3M9ImR4cGNDb250cm9sX1ZpZGVvIiBvbm1vdXNlZG93bj0iYXNweFBXTURvd24oZXZlbnQsJiMzOTt3c1BvcHVwJiMzOTssMCxmYWxzZSkiIHN0eWxlPSJoZWlnaHQ6Mzk3cHg7d2lkdGg6NjYzcHg7Y3Vyc29yOmRlZmF1bHQ7bWluLXdpZHRoOjAuMDAwMDElOyI+PHRhYmxlIGlkPSJ3c1BvcHVwX0NMVzAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iaGVpZ2h0OjM5N3B4O3dpZHRoOjY2M3B4O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ij4KKzx0cj4KKzx0ZCBpZD0id3NQb3B1cF9QV0MwIiBjbGFzcz0iZHhwY0NvbnRlbnRfVmlkZW8iIHN0eWxlPSJoZWlnaHQ6MTAwJTsiPjxkaXYgaWQ9IndzUG9wdXBfQ1NEMCIgY2xhc3M9ImR4cGNDb250ZW50UGFkZGluZ3NfVmlkZW8iPgorPGRpdiBjbGFzcz0ibC1kYXRhIiBpZD0id3NQb3B1cF8wX1Jvb3RDYWxsYmFja1BhbmVsIiBzdHlsZT0ib3ZlcmZsb3cteTpoaWRkZW47b3ZlcmZsb3cteDpoaWRkZW47Ij4KKworPC9kaXY+PHRhYmxlIGlkPSJ3c1BvcHVwXzBfUm9vdENhbGxiYWNrUGFuZWxfTFAiIGNsYXNzPSJkeGNwTG9hZGluZ1BhbmVsV2l0aENvbnRlbnRfRFgiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2xlZnQ6MHB4O3RvcDowcHg7ei1pbmRleDozMDAwMDtkaXNwbGF5Om5vbmU7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0iZHgiPjxpbWcgc3JjPSIvRFhSLmF4ZD9yPTk5OTlfMTktMEdXOTgiIGFsdD0iIiBhbGlnbj0ibWlkZGxlIiBzdHlsZT0iaGVpZ2h0OjM2cHg7d2lkdGg6MzZweDsiIC8+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPjxkaXYgaWQ9IndzUG9wdXBfMF9Sb290Q2FsbGJhY2tQYW5lbF9MRCIgY2xhc3M9ImR4Y3BMb2FkaW5nRGl2X0RYIiBzdHlsZT0ibGVmdDowcHg7dG9wOjBweDt6LWluZGV4OjI5OTk5O2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTsiPgorCis8L2Rpdj48c2NyaXB0IGlkPSJkeHNzXzYxODYwNjczOSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKzwhLS0KKwordmFyIGR4byA9IG5ldyBBU1B4Q2xpZW50Q2FsbGJhY2tQYW5lbCgnd3NQb3B1cF8wX1Jvb3RDYWxsYmFja1BhbmVsJyk7Cit3aW5kb3dbJ3dzUG9wdXBfY3BfMCddID0gZHhvOworZHhvLmNhbGxCYWNrID0gZnVuY3Rpb24oYXJnKSB7IFdlYkZvcm1fRG9DYWxsYmFjaygnY3RsMDAkUG9zdENvbnRlbnQkY3RsMjckd3NQb3B1cCR3c1BvcHVwXzBfUm9vdENhbGxiYWNrUGFuZWwnLGFyZyxhc3B4Q2FsbGJhY2ssJ3dzUG9wdXBfMF9Sb290Q2FsbGJhY2tQYW5lbCcsYXNweENhbGxiYWNrRXJyb3IsdHJ1ZSk7IH07CitkeG8udW5pcXVlSUQgPSAnY3RsMDAkUG9zdENvbnRlbnQkY3RsMjckd3NQb3B1cCR3c1BvcHVwXzBfUm9vdENhbGxiYWNrUGFuZWwnOworZHhvLkVuZENhbGxiYWNrLkFkZEhhbmRsZXIoZnVuY3Rpb24ocywgYXJncykgeyBfd3NQb3B1cFdpbmRvd0NhbGxiYWNrQ29tcGxldGUod3NQb3B1cC5HZXRXaW5kb3coMCksIHMpOyB9KTsKK2R4by5jcFdpbmRvd1dpZHRoPTY2MzsKK2R4by5jcENvbnRlbnRXaWR0aD0nODU0cHgnOworZHhvLmNwV2luZG93PSd3c1BvcHVwX2NwXzAnOworZHhvLmhpZGVDb250ZW50T25DYWxsYmFjaz1mYWxzZTsKK2R4by5JbmxpbmVJbml0aWFsaXplKCk7CisKKy8vLS0+Cis8L3NjcmlwdD4KKzwvZGl2PjwvdGQ+Cis8L3RyPgorPC90YWJsZT48L3RkPgorPC90cj4KKzwvdGFibGU+PGlmcmFtZSBpZD0id3NQb3B1cF9EWFBXSUYwIiBzcmM9ImphdmFzY3JpcHQ6ZmFsc2UiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpub25lO3otaW5kZXg6OTk5OTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKFN0eWxlPTAsIE9wYWNpdHk9MCk7Ij4KKworPC9pZnJhbWU+PGRpdiBpZD0id3NQb3B1cF9EWFBXTUIwIiBjbGFzcz0iZHhwY01vZGFsQmFja2dyb3VuZF9WaWRlbyIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuO2xlZnQ6MHB4O3RvcDowcHg7ei1pbmRleDo5OTk5OyI+CisKKzwvZGl2Pjx0YWJsZSBpZD0id3NQb3B1cF9MUCIgY2xhc3M9ImR4cGNMb2FkaW5nUGFuZWxfVmlkZW8iIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2xlZnQ6MHB4O3RvcDowcHg7ei1pbmRleDozMDAwMDtkaXNwbGF5Om5vbmU7Ij4KKzx0cj4KKzx0ZCBjbGFzcz0iZHgiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjhweDsiPjxpbWcgc3JjPSIvRFhSLmF4ZD9yPTFfMTMtaDR3UjciIGFsdD0iIiBhbGlnbj0ibWlkZGxlIiAvPjwvdGQ+PHRkIGNsYXNzPSJkeCIgc3R5bGU9InBhZGRpbmctbGVmdDowcHg7Ij48c3BhbiBpZD0id3NQb3B1cF9UTCI+TG9hZGluZyZoZWxsaXA7PC9zcGFuPjwvdGQ+Cis8L3RyPgorPC90YWJsZT48ZGl2IGlkPSJ3c1BvcHVwX0xEIiBjbGFzcz0iZHhwY0xvYWRpbmdEaXZfVmlkZW8iIHN0eWxlPSJsZWZ0OjBweDt0b3A6MHB4O3otaW5kZXg6Mjk5OTk7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlOyI+CisKKzwvZGl2PjxzY3JpcHQgaWQ9ImR4c3NfMTc1MjkxMzc1IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorPCEtLQorYXNweEFkZEhvdmVySXRlbXMoJ3dzUG9wdXAnLFtbWydkeHBjQ2xvc2VCdXR0b25Ib3Zlcl9WaWRlbyddLFsnJ10sWydIQ0IwJ10sLFtbJyddXSxbJ0ltZyddXV0pOworCit2YXIgZHhvID0gbmV3IEFTUHhDbGllbnRQb3B1cENvbnRyb2woJ3dzUG9wdXAnKTsKK3dpbmRvd1snd3NQb3B1cCddID0gZHhvOworZHhvLmNhbGxCYWNrID0gZnVuY3Rpb24oYXJnKSB7IFdlYkZvcm1fRG9DYWxsYmFjaygnY3RsMDAkUG9zdENvbnRlbnQkY3RsMjckd3NQb3B1cCcsYXJnLGFzcHhDYWxsYmFjaywnd3NQb3B1cCcsYXNweENhbGxiYWNrRXJyb3IsdHJ1ZSk7IH07CitkeG8udW5pcXVlSUQgPSAnY3RsMDAkUG9zdENvbnRlbnQkY3RsMjckd3NQb3B1cCc7CitkeG8ucmVuZGVySUZyYW1lRm9yUG9wdXBFbGVtZW50cyA9IHRydWU7CitkeG8uSW5pdC5BZGRIYW5kbGVyKF93c0F0dGFjaEVTQ09uSW5pdCk7CitkeG8uUG9wVXAuQWRkSGFuZGxlcihfd3NTaG93UG9wdXBXaW5kb3cpOworZHhvLkNsb3NpbmcuQWRkSGFuZGxlcihTdG9wVmlkZW8pOworZHhvLmNwRW5hYmxlQ2FsbGJhY2tzPXRydWU7CitkeG8uY3BTZW5kQ2FsbGJhY2tJZkxvYWRlZD10cnVlOworZHhvLmVuYWJsZUFuaW1hdGlvbj1mYWxzZTsKK2R4by5wb3B1cEhvcml6b250YWxBbGlnbj0nV2luZG93Q2VudGVyJzsKK2R4by5wb3B1cFZlcnRpY2FsQWxpZ249J1dpbmRvd0NlbnRlcic7CitkeG8uaXNQb3B1cFBvc2l0aW9uQ29ycmVjdGlvbk9uPWZhbHNlOworZHhvLnNoYWRvd1Zpc2libGU9ZmFsc2U7CitkeG8uaGlkZUJvZHlTY3JvbGxXaGVuTW9kYWwgPSBmYWxzZTsKK2R4by53aW5kb3dzUG9wdXBFbGVtZW50SURMaXN0PVtdOworZHhvLkNyZWF0ZVdpbmRvd3MoWyd3c1BvcHVwX2NwXzAnXSk7CitkeG8uSW5saW5lSW5pdGlhbGl6ZSgpOworCisvLy0tPgorPC9zY3JpcHQ+PGEgY2xhc3M9ImgtcmVsYXRpdmUgaC1pbmxpbmUtYmxvY2siIG9uY2xpY2s9IndzUG9wdXAuU2hvd1dpbmRvdyh3c1BvcHVwLkdldFdpbmRvdygwKSk7IHJldHVybiBmYWxzZTsiIGhyZWY9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvdFN6TXVlLTFFaEU/YXV0b3BsYXk9MSI+VmlkZW88L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE4cHg7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luRm9ybXMvU3ByZWFkc2hlZXQvIj4KK1NwcmVhZHNoZWV0cyBFdmVyeXdoZXJlPGJyIC8+CisKK1dpbkZvcm1zLCBXUEYgYW5kIEFTUC5ORVQKKzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9ImdyYXktdGV4dC1vbi1ibGFjayIgc3R5bGU9InBhZGRpbmctYm90dG9tOjVweDsiPgorCitSZWFkeSB0byByZXBsaWNhdGUgdGhlIGNhcGFiaWxpdGllcyBvZiBFeGNlbCBhbmQgaW50cm9kdWNlIHRoZSBwb3dlciBvZiBzcHJlYWRzaGVldHMgdG8geW91ciBhcHBsaWNhdGlvbj8KKworPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIiBzdHlsZT0icGFkZGluZy1ib3R0b206MTBweDtkaXNwbGF5OmlubGluZTtmbG9hdDpsZWZ0OyI+CisKK0xlYXJuIG1vcmUgYWJvdXQgb3VyIHNwcmVhZHNoZWV0IGNvbnRyb2xzIGJ5IHBsYXRmb3JtOgorCis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0iZGlzcGxheTppbmxpbmU7cGFkZGluZy1sZWZ0OjEwcHg7Ij4KKzxhIGhyZWY9Ii9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luRm9ybXMvU3ByZWFkc2hlZXQvIj5XaW5Gb3JtczwvYT4gfCA8YSBocmVmPSIvUHJvZHVjdHMvTkVUL0NvbnRyb2xzL0FTUC9TcHJlYWRzaGVldC8iPkFTUC5ORVQ8L2E+IHwgPGEgaHJlZj0iL1Byb2R1Y3RzL05FVC9Db250cm9scy9XUEYvU3ByZWFkc2hlZXQvIj5XUEY8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJ3aGl0ZS10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjE4cHg7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7Ij4KKzxhIGhyZWY9Imh0dHBzOi8vdGVzdGNhZmUuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+CitXZWIgVGVzdGluZyBDYW4gQmUgRnVuPGJyIC8+CisKK1dlIGRvIHRoZSBoZWF2eSBsaWZ0aW5nLCB5b3UgdGFrZSB0aGUgY3JlZGl0LgorPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iZ3JheS10ZXh0LW9uLWJsYWNrIj4KKworVGlyZWQgb2YgYnJvd3NlciBhdXRvbWF0aW9uIHRvb2xzIHByZXRlbmRpbmcgdG8gYmUgcmVhbCB3ZWIgdGVzdGluZyB0b29scz8gV2FudCBhIHRvb2wgdGhhdCBhbGxvd3MgeW91IHRvIGxldmVyYWdlIHlvdXIgSmF2YVNjcmlwdCBrbm93bGVkZ2U/CitUYWtlIGEgbG9vayBhdCBUZXN0Q2FmZSBhbmQgc2VlIHdoYXQgdGhlIGZ1dHVyZSBob2xkcyBpbiBzdG9yZSBmb3IgeW91OjxhIGhyZWY9Imh0dHBzOi8vdGVzdGNhZmUuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+V2VicGFnZTwvYT4KKzwvZGl2PgorPC9kaXY+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJGb290ZXJWMyI+Cis8ZGl2IGNsYXNzPSJDb250ZW50Ij4KKzxkaXYgY2xhc3M9IlRvcCI+CisKKzwvZGl2PjxkaXYgY2xhc3M9Ik1haW5Db250ZW50Ij4KKzxkaXYgY2xhc3M9IkxlZnQiPgorPGRpdiBjbGFzcz0iR3JvdXAiPgorREVWRVhQUkVTUworPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lTWlzc2lvbnhtbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9NaXNzaW9uLnhtbCIgdGFyZ2V0PSJfc2VsZiI+QWJvdXQgVXM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLUhvbWVBbm5vdW5jZXMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvQW5ub3VuY2VzLyIgdGFyZ2V0PSJfc2VsZiI+TmV3czwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItSG9tZWF3YXJkc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9hd2FyZHMueG1sIiB0YXJnZXQ9Il9zZWxmIj5PdXIgQXdhcmRzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lQ29tbXVuaXR5IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbW11bml0eS8iIHRhcmdldD0iX3NlbGYiPlVwY29taW5nIEV2ZW50czwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItSG9tZUNvbW1lbnRzeG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbW1lbnRzLnhtbCIgdGFyZ2V0PSJfc2VsZiI+VXNlciBDb21tZW50czwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItSG9tZUNhc2VTdHVkaWVzIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0Nhc2UtU3R1ZGllcy8iIHRhcmdldD0iX3NlbGYiPkNhc2UgU3R1ZGllczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItSG9tZXB1YmxpY2F0aW9uc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9wdWJsaWNhdGlvbnMueG1sIiB0YXJnZXQ9Il9zZWxmIj5SZXZpZXdzIGFuZCBQdWJsaWNhdGlvbnM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1cHBvcnRsaWNlbnNpbmdmYXF4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvbGljZW5zaW5nZmFxLnhtbCIgdGFyZ2V0PSJfc2VsZiI+TGljZW5zaW5nPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1TdXBwb3J0T3JkZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvT3JkZXIvIiB0YXJnZXQ9Il9zZWxmIj5QdXJjaGFzaW5nPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lQ29tbXVuaXR5bXZweG1sIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0NvbW11bml0eS9tdnAueG1sIiB0YXJnZXQ9Il9zZWxmIj5NVlAgUHJvZ3JhbTwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItSG9tZUNvbnRhY3RVc3htbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vSG9tZS9Db250YWN0VXMueG1sIiB0YXJnZXQ9Il9zZWxmIj5Db250YWN0IFVzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Ib21lTG9nb3N4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL0hvbWUvTG9nb3MueG1sIiB0YXJnZXQ9Il9zZWxmIj5Mb2dvczwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iTWlkZGxlIj4KKzxkaXYgY2xhc3M9IkNvbHVtbiI+Cis8ZGl2IGNsYXNzPSJHcm91cCI+CisuTkVUIENPTlRST0xTCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzTkVUQ29udHJvbHNXaW5Gb3JtcyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dpbkZvcm1zLyIgdGFyZ2V0PSJfc2VsZiI+V2luRm9ybXM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzTkVUQ29udHJvbHNBU1AiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL05FVC9Db250cm9scy9BU1AvIiB0YXJnZXQ9Il9zZWxmIj5BU1AuTkVUPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c05FVENvbnRyb2xzQVNQTVZDIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvQVNQL01WQy8iIHRhcmdldD0iX3NlbGYiPk1WQzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNORVRDb250cm9sc1dQRiIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0NvbnRyb2xzL1dQRi8iIHRhcmdldD0iX3NlbGYiPldQRjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNORVRDb250cm9sc1NpbHZlcmxpZ2h0IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvU2lsdmVybGlnaHQvIiB0YXJnZXQ9Il9zZWxmIj5TaWx2ZXJsaWdodDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNORVRDb250cm9sc1dpblJUIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQ29udHJvbHMvV2luUlQvIiB0YXJnZXQ9Il9zZWxmIj5XaW5kb3dzIDggWEFNTDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikdyb3VwIEJyZWFrIj4KK0NST1NTIFBMQVRGT1JNCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1YnNjcmlwdGlvbnNSZXBvcnRpbmciIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1YnNjcmlwdGlvbnMvUmVwb3J0aW5nLyIgdGFyZ2V0PSJfc2VsZiI+UmVwb3J0aW5nPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c05FVERvY3VtZW50U2VydmVyIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvRG9jdW1lbnQtU2VydmVyLyIgdGFyZ2V0PSJfc2VsZiI+RG9jdW1lbnQgQXV0b21hdGlvbjwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iQ29sdW1uIj4KKzxkaXYgY2xhc3M9Ikdyb3VwIj4KK01PQklMRSAoSFRNTCBKUykKKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItUHJvZHVjdHNIVE1MSlMiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1Byb2R1Y3RzL0hUTUwtSlMvIiB0YXJnZXQ9Il9zZWxmIj5EZXZFeHRyZW1lPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iR3JvdXAgQnJlYWsiPgorRU5URVJQUklTRSBUT09MUworPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c05FVFJlcG9ydFNlcnZlciIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL1JlcG9ydC1TZXJ2ZXIvIiB0YXJnZXQ9Il9zZWxmIj5SZXBvcnQgU2VydmVyPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c05FVERhc2hib2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvTkVUL0Rhc2hib2FyZC8iIHRhcmdldD0iX3NlbGYiPkFuYWx5dGljcyBEYXNoYm9hcmQ8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJHcm91cCBCcmVhayI+CitGUkFNRVdPUktTCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzTkVUQXBwbGljYXRpb25fRnJhbWV3b3JrIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9ORVQvQXBwbGljYXRpb25fRnJhbWV3b3JrLyIgdGFyZ2V0PSJfc2VsZiI+ZVhwcmVzc0FwcCBGcmFtZXdvcms8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJHcm91cCBCcmVhayI+CitDT0RFLURFQlVHLVJFRkFDVE9SCis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByb2R1Y3RzVmlzdWFsX1N0dWRpb19BZGRpbkNvZGluZ19Bc3Npc3RhbmNlIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Qcm9kdWN0cy9WaXN1YWxfU3R1ZGlvX0FkZC1pbi9Db2RpbmdfQXNzaXN0YW5jZS8iIHRhcmdldD0iX3NlbGYiPkNvZGVSdXNoIGZvciBWaXN1YWwgU3R1ZGlvPC9hPgorPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJDb2x1bW4gTGFzdCI+Cis8ZGl2IGNsYXNzPSJHcm91cCI+CitIVE1MIEpBVkFTQ1JJUFQKKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItaHR0cHBob25lanNkZXZleHByZXNzY29tIiBocmVmPSJodHRwczovL3Bob25lanMuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+UGhvbmVKUzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItaHR0cGNoYXJ0anNkZXZleHByZXNzY29tIiBocmVmPSJodHRwczovL2NoYXJ0anMuZGV2ZXhwcmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+Q2hhcnRKUzwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikdyb3VwIEJyZWFrIj4KK0ZVTkNUSU9OQUwgV0VCIFRFU1RJTkcKKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItaHR0cHRlc3RjYWZlZGV2ZXhwcmVzc2NvbSIgaHJlZj0iaHR0cHM6Ly90ZXN0Y2FmZS5kZXZleHByZXNzLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5UZXN0Q2Fmw6k8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJHcm91cCBCcmVhayI+CitERUxQSEkgQysrQlVJTERFUgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1Qcm9kdWN0c1ZDTCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vUHJvZHVjdHMvVkNMLyIgdGFyZ2V0PSJfc2VsZiI+VkNMPC9hPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IlJpZ2h0Ij4KKzxkaXYgY2xhc3M9Ikdyb3VwIj4KK1NVUFBPUlQKKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3VwcG9ydENlbnRlciIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9DZW50ZXIvIiB0YXJnZXQ9Il9zZWxmIj5TZWFyY2ggdGhlIEtub3dsZWRnZSBCYXNlPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1TdXBwb3J0Q2VudGVyUXVlc3Rpb25DaGFuZ2VGaWx0ZXJTZXQxRmF2b3JpdGVzT25seUZhbHNlTXlJdGVtc09ubHlUcnVlTXlUZWFtSXRlbXNPbmx5RmFsc2VQbGF0Zm9ybU5hbWVBbGxQbGF0Zm9ybXNQcm9kdWN0TmFtZUFsbFByb2R1Y3RzVGlja2V0VHlwZUFsbCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9DZW50ZXIvUXVlc3Rpb24vQ2hhbmdlRmlsdGVyU2V0LzE/RmF2b3JpdGVzT25seT1GYWxzZSZhbXA7TXlJdGVtc09ubHk9VHJ1ZSZhbXA7TXlUZWFtSXRlbXNPbmx5PUZhbHNlJmFtcDtQbGF0Zm9ybU5hbWU9QWxsUGxhdGZvcm1zJmFtcDtQcm9kdWN0TmFtZT1BbGxQcm9kdWN0cyZhbXA7VGlja2V0VHlwZT1BbGwiIHRhcmdldD0iX3NlbGYiPk15IFF1ZXN0aW9uczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3VwcG9ydENlbnRlckV4YW1wbGVMaXN0IiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0NlbnRlci9FeGFtcGxlL0xpc3QiIHRhcmdldD0iX3NlbGYiPkNvZGUgRXhhbXBsZXM8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1cHBvcnRTdGFydCIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9TdGFydC8iIHRhcmdldD0iX3NlbGYiPkdldHRpbmcgU3RhcnRlZDwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItU3VwcG9ydERlbW9zIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9TdXBwb3J0L0RlbW9zLyIgdGFyZ2V0PSJfc2VsZiI+RGVtb3M8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLWh0dHBkb2N1bWVudGF0aW9uZGV2ZXhwcmVzc2NvbSIgaHJlZj0iaHR0cHM6Ly9kb2N1bWVudGF0aW9uLmRldmV4cHJlc3MuY29tLyIgdGFyZ2V0PSJfc2VsZiI+RG9jdW1lbnRhdGlvbjwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItaHR0cGNvbW11bml0eWRldmV4cHJlc3Njb21ibG9ncyIgaHJlZj0iaHR0cHM6Ly9jb21tdW5pdHkuZGV2ZXhwcmVzcy5jb20vYmxvZ3MvIiB0YXJnZXQ9Il9zZWxmIj5CbG9nczwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9Ikl0ZW1MaW5rIj4KKzxhIGlkPSJjdGwwMF9Gb290ZXItSG9tZVRyYWluaW5nIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL1RyYWluaW5nLyIgdGFyZ2V0PSJfc2VsZiI+VHJhaW5pbmc8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1cHBvcnRXZWJpbmFycyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9XZWJpbmFycy8iIHRhcmdldD0iX3NlbGYiPldlYmluYXJzPC9hPgorPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUJyZWFrIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iSXRlbUxpbmsiPgorPGEgaWQ9ImN0bDAwX0Zvb3Rlci1TdXBwb3J0dmVyc2lvbnN4bWwiIGhyZWY9Imh0dHBzOi8vd3d3LmRldmV4cHJlc3MuY29tL1N1cHBvcnQvdmVyc2lvbnMueG1sIiB0YXJnZXQ9Il9zZWxmIj5DdXJyZW50IFZlcnNpb24vQnVpbGQ8L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJJdGVtTGluayI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVN1cHBvcnRXaGF0c05ldyIgaHJlZj0iaHR0cHM6Ly93d3cuZGV2ZXhwcmVzcy5jb20vU3VwcG9ydC9XaGF0c05ldy8iIHRhcmdldD0iX3NlbGYiPlZlcnNpb24gSGlzdG9yeTwvYT4KKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iaC1jbGVhciI+CisKKzwvZGl2PgorPC9kaXY+PGRpdiBjbGFzcz0iQ2hhdEluZm8iPgorPGRpdiBjbGFzcz0iQ2hhdEJ1dHRvbiBPZmZsaW5lIiBpZD0iRm9vdGVyQ2hhdEJ1dHRvbiI+CitMSVZFIENIQVQ8ZGl2IHRpdGxlPSJMaXZlIENoYXQgaXMgY3VycmVudGx5IG9mZmxpbmUuIiB0T25saW5lPSJMaXZlIENoYXQiIHRPZmZsaW5lPSJMaXZlIENoYXQgaXMgY3VycmVudGx5IG9mZmxpbmUuIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+PHA+Q2hhdCBpcyBvbmUgb2YgdGhlIG1hbnkgd2F5cyB5b3UgY2FuIGNvbnRhY3QgbWVtYmVycyBvZiB0aGUgRGV2RXhwcmVzcyBUZWFtLjxiciAvPldlIGFyZSBhdmFpbGFibGUgTW9uZGF5LUZyaWRheSBiZXR3ZWVuIDc6MzBhbSBhbmQgNDozMHBtIFBhY2lmaWMgVGltZS48L3A+PHA+SWYgeW91IG5lZWQgYWRkaXRpb25hbCBwcm9kdWN0IGluZm9ybWF0aW9uLCB3cml0ZSB0byB1cyBhdCA8YSBocmVmPSJtYWlsdG86aW5mb0BkZXZleHByZXNzLmNvbSI+aW5mb0BkZXZleHByZXNzLmNvbTwvYT4gb3IgY2FsbCB1cyBhdCA8c3Ryb25nPisxICg4MTgpIDg0NC0zMzgzPC9zdHJvbmc+PC9wPgorPC9kaXY+PGRpdiBjbGFzcz0iRm9sbG93VXMiPgorPGRpdj4KK0ZPTExPVyBVUworPC9kaXY+PGEgaWQ9ImN0bDAwX0Zvb3Rlci1GYWNrYm9vayIgdGl0bGU9IkZhY2Vib29rIiBjbGFzcz0iRm9sbG93SWNvbiBGYWNlYm9vayIgaHJlZj0iaHR0cDovL3d3dy5mYWNlYm9vay5jb20vRGV2RXhwcmVzcyI+PC9hPjxhIGlkPSJjdGwwMF9Gb290ZXItVHdpdHRlciIgdGl0bGU9IlR3aXR0ZXIiIGNsYXNzPSJGb2xsb3dJY29uIFR3aXR0ZXIiIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9EZXZFeHByZXNzIj48L2E+PGEgaWQ9ImN0bDAwX0Zvb3Rlci1HUGx1cyIgdGl0bGU9Ikdvb2dsZSsiIGNsYXNzPSJGb2xsb3dJY29uIEdQbHVzIiByZWw9InB1Ymxpc2hlciIgaHJlZj0iaHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vK2RldmV4cHJlc3MvcG9zdHMiPjwvYT48YSBpZD0iY3RsMDBfRm9vdGVyLVlvdVR1YmUiIHRpdGxlPSJZb3VUdWJlIiBjbGFzcz0iRm9sbG93SWNvbiBZb3VUdWJlIiBocmVmPSJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3VzZXIvRGV2ZWxvcGVyRXhwcmVzcyI+PC9hPjxhIGlkPSJjdGwwMF9Gb290ZXItQmxvZ3MiIHRpdGxlPSJEZXZFeHByZXNzIEJsb2dzIiBjbGFzcz0iRm9sbG93SWNvbiBCbG9ncyIgaHJlZj0iaHR0cHM6Ly9jb21tdW5pdHkuZGV2ZXhwcmVzcy5jb20vYmxvZ3MvIj48L2E+Cis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+PGRpdiBjbGFzcz0iQm90dG9tIj4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PjxkaXYgY2xhc3M9IlN1YkZvb3RlclYzIENvbnRlbnQiPgorPGRpdiBjbGFzcz0iTGVmdCI+Cis8cD5EZXZFeHByZXNzIGVuZ2luZWVycyBmZWF0dXJlLWNvbXBsZXRlIFByZXNlbnRhdGlvbiBDb250cm9scywgSURFIFByb2R1Y3Rpdml0eSBUb29scywgQnVzaW5lc3MgQXBwbGljYXRpb24gRnJhbWV3b3JrcywgYW5kIFJlcG9ydGluZyBTeXN0ZW1zIGZvciBWaXN1YWwgU3R1ZGlvLCBhbG9uZyB3aXRoIGhpZ2gtcGVyZm9ybWFuY2UgSFRNTCBKUyBNb2JpbGUgRnJhbWV3b3JrcyBmb3IgZGV2ZWxvcGVycyB0YXJnZXRpbmcgaU9TLCBBbmRyb2lkIGFuZCBXaW5kb3dzIFBob25lLiBXaGV0aGVyIHVzaW5nIFdQRiwgU2lsdmVybGlnaHQsIEFTUC5ORVQsIFdpbkZvcm1zLCBIVE1MNSBvciBXaW5kb3dzIDgsIERldkV4cHJlc3MgdG9vbHMgaGVscCB5b3UgYnVpbGQgYW5kIGRlbGl2ZXIgeW91ciBiZXN0IGluIHRoZSBzaG9ydGVzdCB0aW1lIHBvc3NpYmxlLjwvcD4KKzwvZGl2PjxkaXYgY2xhc3M9IlJpZ2h0IExvZ28iPgorCis8L2Rpdj48ZGl2IGNsYXNzPSJoLWNsZWFyIj4KKworPC9kaXY+Cis8L2Rpdj48ZGl2IGNsYXNzPSJVbmRlckZvb3RlclYzIj4KKzxkaXYgY2xhc3M9IkNvbnRlbnQiPgorPGRpdiBjbGFzcz0iTGVmdCI+Cis8YSBpZD0iY3RsMDBfRm9vdGVyLVByaXZhY3lMaW5rIiBocmVmPSJodHRwczovL3d3dy5kZXZleHByZXNzLmNvbS9Ib21lL0xlZ2FsLnhtbCI+WW91ciBQcml2YWN5IC0gTGVnYWwgU3RhdGVtZW50czwvYT4KKzwvZGl2PjxkaXYgY2xhc3M9IlJpZ2h0Ij4KK0NvcHlyaWdodCDCqSAxOTk4LTIwMTQgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLjxiciAvPkFsbCB0cmFkZW1hcmtzIG9yIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBhcmUgcHJvcGVydHkgb2YgdGhlaXIgcmVzcGVjdGl2ZSBvd25lcnMKKzwvZGl2PjxkaXYgY2xhc3M9ImgtY2xlYXIiPgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lIj4KKzxzcGFuIGlkPSJscEJ1dERpdklELTEzMjE4NjI1MzQ1NjYiPjwvc3Bhbj4KKzxkaXYgaWQ9ImxwTWFpblNjcmlwdFBsYWNlaG9sZGVyIj48L2Rpdj4KKzxkaXYgaWQ9ImxwTW9uaXRvclNjcmlwdFBsYWNlaG9sZGVyIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyhmdW5jdGlvbigpIHsKK2Z1bmN0aW9uIGluaXRfbHBfYXN5bmMoKSB7Citsb2FkX21haW5fc2NyaXB0KCk7Citsb2FkX2xwX21vbml0b3IoKTsKK30KK2Z1bmN0aW9uIGxvYWRfbWFpbl9zY3JpcHQoKSB7Cit2YXIgbXlzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKK215c2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKK215c2NyaXB0LnNyYyA9ICgnaHR0cHM6Ly9zZXJ2ZXIuaWFkLmxpdmVwZXJzb24ubmV0L2hjLzg0MTgwMjc1Lz9jbWQ9bVRhZ1JlcHN0YXRlJnNpdGU9ODQxODAyNzUmYnV0dG9uSUQ9NyZkaXZJRD1scEJ1dERpdklELTEzMjE4NjI1MzQ1NjYmYnQ9MyZjPTEnKTsKK3ZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xwTWFpblNjcmlwdFBsYWNlaG9sZGVyJyk7CitzLmFwcGVuZENoaWxkKG15c2NyaXB0KTsKK30KK2Z1bmN0aW9uIGxvYWRfbHBfbW9uaXRvcigpIHsKK3ZhciBteXNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworbXlzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOworbXlzY3JpcHQuc3JjID0gKCcvRFhSLmF4ZD9yPTk5OTlfMjAtMEdXOTgnKTsKK3ZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xwTW9uaXRvclNjcmlwdFBsYWNlaG9sZGVyJyk7CitzLmFwcGVuZENoaWxkKG15c2NyaXB0KTsKK30KK2lmICh3aW5kb3cuYXR0YWNoRXZlbnQpIHsKK3dpbmRvdy5hdHRhY2hFdmVudCgnb25sb2FkJywgaW5pdF9scF9hc3luYyk7Cit9IGVsc2UgeworaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGluaXRfbHBfYXN5bmMsIGZhbHNlKTsKK30KK30KKwordmFyIGxjQ29udGFpbmVyID0gJCgnI2xwQnV0RGl2SUQtMTMyMTg2MjUzNDU2NicpOworCitpZihsY0NvbnRhaW5lciAhPSBudWxsICYmIHR5cGVvZiBfd3NMaXZlQ2hhdFN0YXRlQ2hhbmdlZCAhPSAndW5kZWZpbmVkJykgeworbGNDb250YWluZXIuYmluZCgnY29udGVudGNoYW5nZScsIF93c0xpdmVDaGF0U3RhdGVDaGFuZ2VkKTsKK30KK30pKCk7Cis8L3NjcmlwdD4KKzwhLS0gQkVHSU4gTGl2ZVBlcnNvbiBNb25pdG9yLiAtLT4KKzxzY3JpcHQgbGFuZ3VhZ2U9J2phdmFzY3JpcHQnPgordmFyIGxwTVRhZ0NvbmZpZyA9IHsgJ2xwU2VydmVyJzogInNlcnZlci5pYWQubGl2ZXBlcnNvbi5uZXQiLCAnbHBOdW1iZXInOiAiODQxODAyNzUiLCAnbHBQcm90b2NvbCc6IChkb2N1bWVudC5sb2NhdGlvbi50b1N0cmluZygpLmluZGV4T2YoJ2h0dHBzOicpID09IDApID8gJ2h0dHBzJyA6ICdodHRwJyB9OyBmdW5jdGlvbiBscEFkZE1vbml0b3JUYWcoc3JjKSB7IGlmICh0eXBlb2YgKHNyYykgPT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIChzcmMpID09ICdvYmplY3QnKSB7IHNyYyA9IGxwTVRhZ0NvbmZpZy5scE1UYWdTcmMgPyBscE1UYWdDb25maWcubHBNVGFnU3JjIDogJy9oY3AvaHRtbC9tVGFnLmpzJzsgfSBpZiAoc3JjLmluZGV4T2YoJ2h0dHAnKSAhPSAwKSB7IHNyYyA9IGxwTVRhZ0NvbmZpZy5scFByb3RvY29sICsgIjovLyIgKyBscE1UYWdDb25maWcubHBTZXJ2ZXIgKyBzcmMgKyAnP3NpdGU9JyArIGxwTVRhZ0NvbmZpZy5scE51bWJlcjsgfSBlbHNlIHsgaWYgKHNyYy5pbmRleE9mKCdzaXRlPScpIDwgMCkgeyBpZiAoc3JjLmluZGV4T2YoJz8nKSA8IDApIHNyYyA9IHNyYyArICc/JzsgZWxzZSBzcmMgPSBzcmMgKyAnJic7IHNyYyA9IHNyYyArICdzaXRlPScgKyBscE1UYWdDb25maWcubHBOdW1iZXI7IH0gfTsgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgcy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7IHMuc2V0QXR0cmlidXRlKCdjaGFyc2V0JywgJ2lzby04ODU5LTEnKTsgcy5zZXRBdHRyaWJ1dGUoJ3NyYycsIHNyYyk7IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJykuaXRlbSgwKS5hcHBlbmRDaGlsZChzKTsgfSBpZiAod2luZG93LmF0dGFjaEV2ZW50KSB3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsIGxwQWRkTW9uaXRvclRhZyk7IGVsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBscEFkZE1vbml0b3JUYWcsIGZhbHNlKTsKKzwvc2NyaXB0PgorPCEtLSBFTkQgTGl2ZVBlcnNvbiBNb25pdG9yLiAtLT4KKzwhLS0gQkVHSU4gTW9uaXRvciBUcmFja2luZyBWYXJpYWJsZXMgIC0tPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoraWYgKHR5cGVvZiAobHBNVGFnQ29uZmlnKSA9PSAidW5kZWZpbmVkIikgeyBscE1UYWdDb25maWcgPSB7fTsgfQoraWYgKHR5cGVvZiAobHBNVGFnQ29uZmlnLnBhZ2VWYXIpID09ICJ1bmRlZmluZWQiKSB7IGxwTVRhZ0NvbmZpZy5wYWdlVmFyID0gW107IH0KK2lmICh0eXBlb2YobHBNVGFnQ29uZmlnLnZpc2l0b3JWYXIpID09ICJ1bmRlZmluZWQiKSB7IGxwTVRhZ0NvbmZpZy52aXNpdG9yVmFyID0gW107IH0KK2xwTVRhZ0NvbmZpZy52aXNpdG9yVmFyW2xwTVRhZ0NvbmZpZy52aXNpdG9yVmFyLmxlbmd0aF0gPSAnY3VzdG9tZXI9MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJzsKKzwvc2NyaXB0PgorPCEtLSBFbmQgTW9uaXRvciBUcmFja2luZyBWYXJpYWJsZXMgIC0tPgorPC9kaXY+CisKKzwvZGl2PgorPGRpdiBpZD0iSW5QYWdlQ2hhdCIgY2xhc3M9IkluUGFnZUNoYXQgSGlkZGVuIj4KKzxkaXY+CitMaXZlIENoYXQKKzwvZGl2PgorPC9kaXY+PGRpdiBzdHlsZT0id2lkdGg6MHB4O2hlaWdodDowcHg7b3ZlcmZsb3c6aGlkZGVuOyI+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiA8IVtDREFUQVsgKi8KK3ZhciBnb29nbGVfY29udmVyc2lvbl9pZCA9IDEwNzE3NTk2NDE7Cit2YXIgZ29vZ2xlX2N1c3RvbV9wYXJhbXMgPSB3aW5kb3cuZ29vZ2xlX3RhZ19wYXJhbXM7Cit2YXIgZ29vZ2xlX3JlbWFya2V0aW5nX29ubHkgPSB0cnVlOworLyogXV0+ICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZWFkc2VydmljZXMuY29tL3BhZ2VhZC9jb252ZXJzaW9uLmpzP3dzQ2FjaGU9Ml8wXzFfMjg1NjUiPjwvc2NyaXB0PgorPG5vc2NyaXB0PgorPGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmU7Ij4KKzxpbWcgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgc3R5bGU9ImJvcmRlci1zdHlsZTpub25lOyIgYWx0PSIiIHNyYz0iaHR0cHM6Ly9nb29nbGVhZHMuZy5kb3VibGVjbGljay5uZXQvcGFnZWFkL3ZpZXd0aHJvdWdoY29udmVyc2lvbi8xMDcxNzU5NjQxLz92YWx1ZT0wJmFtcDtndWlkPU9OJmFtcDtzY3JpcHQ9MCIvPgorPC9kaXY+Cis8L25vc2NyaXB0PgorPC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8vPCFbQ0RBVEFbCisKK3ZhciBjYWxsQmFja0ZyYW1lVXJsPScvV2ViUmVzb3VyY2UuYXhkP2Q9ODRwLUd0Z3dqTElEUnQwWS03LUlHdDRpSFd0RDRvY0NUUDVsbHpueE9hU2lOOTdLVkZpYXdVWDQwVVdxUTNUMjBINGRRUUYzakFIME5SSGJEYzZnalVOQ0VpdzEmdD02MzUwODk3NDM0ODAwMDAwMDAnOworV2ViRm9ybV9Jbml0Q2FsbGJhY2soKTsvL11dPgorPC9zY3JpcHQ+Cis8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2VyaWFsaXphdGlvbi9naXRodWJfcGFyc2U1L2V4cGVjdGVkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2VyaWFsaXphdGlvbi9naXRodWJfcGFyc2U1L2V4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdmYmFmOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL2dpdGh1Yl9wYXJzZTUvZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD48aGVhZCBwcmVmaXg9Im9nOiBodHRwOi8vb2dwLm1lL25zIyBmYjogaHR0cDovL29ncC5tZS9ucy9mYiMgb2JqZWN0OiBodHRwOi8vb2dwLm1lL25zL29iamVjdCMgYXJ0aWNsZTogaHR0cDovL29ncC5tZS9ucy9hcnRpY2xlIyBwcm9maWxlOiBodHRwOi8vb2dwLm1lL25zL3Byb2ZpbGUjIj4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+Cis8dGl0bGU+aW5pa3VsaW4vcGFyc2U1PC90aXRsZT4KKzxsaW5rIHJlbD0ic2VhcmNoIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiBocmVmPSIvb3BlbnNlYXJjaC54bWwiIHRpdGxlPSJHaXRIdWIiPgorPGxpbmsgcmVsPSJmbHVpZC1pY29uIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmx1aWRpY29uLnBuZyIgdGl0bGU9IkdpdEh1YiI+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI1N3g1NyIgaHJlZj0iL2FwcGxlLXRvdWNoLWljb24tMTE0LnBuZyI+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIvYXBwbGUtdG91Y2gtaWNvbi0xMTQucG5nIj4KKzxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjcyeDcyIiBocmVmPSIvYXBwbGUtdG91Y2gtaWNvbi0xNDQucG5nIj4KKzxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjE0NHgxNDQiIGhyZWY9Ii9hcHBsZS10b3VjaC1pY29uLTE0NC5wbmciPgorPG1ldGEgcHJvcGVydHk9ImZiOmFwcF9pZCIgY29udGVudD0iMTQwMTQ4ODY5MzQzNjUyOCI+Cis8bWV0YSBjb250ZW50PSJAZ2l0aHViIiBuYW1lPSJ0d2l0dGVyOnNpdGUiPjxtZXRhIGNvbnRlbnQ9InN1bW1hcnkiIG5hbWU9InR3aXR0ZXI6Y2FyZCI+PG1ldGEgY29udGVudD0iaW5pa3VsaW4vcGFyc2U1IiBuYW1lPSJ0d2l0dGVyOnRpdGxlIj48bWV0YSBjb250ZW50PSJwYXJzZTUgLSBGYXN0IGZ1bGwtZmVhdHVyZWQgSFRNTCBwYXJzZXIgZm9yIE5vZGUuIEJhc2VkIG9uIFdIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLiIgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiI+PG1ldGEgY29udGVudD0iaHR0cHM6Ly8wLmdyYXZhdGFyLmNvbS9hdmF0YXIvNjRlZTQ5N2M0YTUzMzE0NGE5YmY5Y2UyYTZjMDEwYzU/ZD1odHRwcyUzQSUyRiUyRmlkZW50aWNvbnMuZ2l0aHViLmNvbSUyRjlkZDRkYzU2MzRlM2QzZDk3YzdkNWEzNGJhMjhiODUwLnBuZyZhbXA7cj14JmFtcDtzPTQwMCIgbmFtZT0idHdpdHRlcjppbWFnZTpzcmMiPgorPG1ldGEgY29udGVudD0iR2l0SHViIiBwcm9wZXJ0eT0ib2c6c2l0ZV9uYW1lIj48bWV0YSBjb250ZW50PSJvYmplY3QiIHByb3BlcnR5PSJvZzp0eXBlIj48bWV0YSBjb250ZW50PSJodHRwczovLzAuZ3JhdmF0YXIuY29tL2F2YXRhci82NGVlNDk3YzRhNTMzMTQ0YTliZjljZTJhNmMwMTBjNT9kPWh0dHBzJTNBJTJGJTJGaWRlbnRpY29ucy5naXRodWIuY29tJTJGOWRkNGRjNTYzNGUzZDNkOTdjN2Q1YTM0YmEyOGI4NTAucG5nJmFtcDtyPXgmYW1wO3M9NDAwIiBwcm9wZXJ0eT0ib2c6aW1hZ2UiPjxtZXRhIGNvbnRlbnQ9ImluaWt1bGluL3BhcnNlNSIgcHJvcGVydHk9Im9nOnRpdGxlIj48bWV0YSBjb250ZW50PSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1IiBwcm9wZXJ0eT0ib2c6dXJsIj48bWV0YSBjb250ZW50PSJwYXJzZTUgLSBGYXN0IGZ1bGwtZmVhdHVyZWQgSFRNTCBwYXJzZXIgZm9yIE5vZGUuIEJhc2VkIG9uIFdIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLiIgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIj4KKworPG1ldGEgbmFtZT0iaG9zdG5hbWUiIGNvbnRlbnQ9ImdpdGh1Yi1mZTEzOS1jcDEtcHJkLmlhZC5naXRodWIubmV0Ij4KKzxtZXRhIG5hbWU9InJ1YnkiIGNvbnRlbnQ9InJ1YnkgMi4xLjBwMC1naXRodWItdGNtYWxsb2MgKDYwMTM5NTgxZTEpIFt4ODZfNjQtbGludXhdIj4KKzxsaW5rIHJlbD0iYXNzZXRzIiBocmVmPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvIj4KKzxsaW5rIHJlbD0iY29uZHVpdC14aHIiIGhyZWY9Imh0dHBzOi8vZ2hjb25kdWl0LmNvbToyNTAzNS8iPgorPGxpbmsgcmVsPSJ4aHItc29ja2V0IiBocmVmPSIvX3NvY2tldHMiPgorCisKKworPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlSW1hZ2UiIGNvbnRlbnQ9Ii93aW5kb3dzLXRpbGUucG5nIj4KKzxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KKzxtZXRhIG5hbWU9InNlbGVjdGVkLWxpbmsiIHZhbHVlPSJyZXBvX3NvdXJjZSIgZGF0YS1wamF4LXRyYW5zaWVudD0iIj4KKzxtZXRhIGNvbnRlbnQ9ImNvbGxlY3Rvci5naXRodWJhcHAuY29tIiBuYW1lPSJvY3RvbHl0aWNzLWhvc3QiPjxtZXRhIGNvbnRlbnQ9ImNvbGxlY3Rvci1jZG4uZ2l0aHViLmNvbSIgbmFtZT0ib2N0b2x5dGljcy1zY3JpcHQtaG9zdCI+PG1ldGEgY29udGVudD0iZ2l0aHViIiBuYW1lPSJvY3RvbHl0aWNzLWFwcC1pZCI+PG1ldGEgY29udGVudD0iQkM4MDI0NTA6NzdCODoxQkVGQkJCOjUyRTdCMEFEIiBuYW1lPSJvY3RvbHl0aWNzLWRpbWVuc2lvbi1yZXF1ZXN0X2lkIj48bWV0YSBjb250ZW50PSI0NTMwNzEiIG5hbWU9Im9jdG9seXRpY3MtYWN0b3ItaWQiPjxtZXRhIGNvbnRlbnQ9ImluaWt1bGluIiBuYW1lPSJvY3RvbHl0aWNzLWFjdG9yLWxvZ2luIj48bWV0YSBjb250ZW50PSJkY2QyOTJlNGY1YTE0ZmNjYTkwNDdlYzU5MjgxODZiZWYyOTI1Yjc4ZjU3NGFlODljNmJlOTljMDk5Njk1MDkzIiBuYW1lPSJvY3RvbHl0aWNzLWFjdG9yLWhhc2giPgorCisKKworCis8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iL2Zhdmljb24uaWNvIj4KKworPG1ldGEgY29udGVudD0iYXV0aGVudGljaXR5X3Rva2VuIiBuYW1lPSJjc3JmLXBhcmFtIj4KKzxtZXRhIGNvbnRlbnQ9IlFDamRaU1EvYVdHS2lPa25rc1UzVUFhbnBqcjQxNUUvVWY1SFBxMDdEekU9IiBuYW1lPSJjc3JmLXRva2VuIj4KKworPGxpbmsgaHJlZj0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2Fzc2V0cy9naXRodWItODk0YjA1YzM4YzJkY2M5MjQxMTVjNWE2ODViNTE0ZjBlZDExZWNiZS5jc3MiIG1lZGlhPSJhbGwiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgorPGxpbmsgaHJlZj0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2Fzc2V0cy9naXRodWIyLTEwZjdiNjk5OWJhMDU0M2VhYTg2YjlmZTU4MjQ0NWYwZWU3NDc3NDEuY3NzIiBtZWRpYT0iYWxsIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KKworCisKKzxzY3JpcHQgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvYXNzZXRzL2ZyYW1ld29ya3MtMjA4NmI3NjM5NmQ3MDE4YWNmMzkwNDU3MzU3YjE0MTIxZjNlMTZmMy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgYXN5bmM9ImFzeW5jIiBkZWZlcj0iZGVmZXIiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2Fzc2V0cy9naXRodWItNGYzZmVhMDJhYzEzYzdmNzVmMGU4NTMwZTA5OTZlOTBjNmU3ODE5NC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKworPG1ldGEgaHR0cC1lcXVpdj0ieC1wamF4LXZlcnNpb24iIGNvbnRlbnQ9ImMzNjBkNzNhMDhlZjk5YWQxMjM3NGE0YzE3Njg5NDYxIj4KKworCis8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0icGFyc2U1IC0gRmFzdCBmdWxsLWZlYXR1cmVkIEhUTUwgcGFyc2VyIGZvciBOb2RlLiBCYXNlZCBvbiBXSEFUV0cgSFRNTDUgc3BlY2lmaWNhdGlvbi4iPgorCis8bWV0YSBjb250ZW50PSI0NTMwNzEiIG5hbWU9Im9jdG9seXRpY3MtZGltZW5zaW9uLXVzZXJfaWQiPjxtZXRhIGNvbnRlbnQ9ImluaWt1bGluIiBuYW1lPSJvY3RvbHl0aWNzLWRpbWVuc2lvbi11c2VyX2xvZ2luIj48bWV0YSBjb250ZW50PSI4ODYyNTkzIiBuYW1lPSJvY3RvbHl0aWNzLWRpbWVuc2lvbi1yZXBvc2l0b3J5X2lkIj48bWV0YSBjb250ZW50PSJpbmlrdWxpbi9wYXJzZTUiIG5hbWU9Im9jdG9seXRpY3MtZGltZW5zaW9uLXJlcG9zaXRvcnlfbndvIj48bWV0YSBjb250ZW50PSJ0cnVlIiBuYW1lPSJvY3RvbHl0aWNzLWRpbWVuc2lvbi1yZXBvc2l0b3J5X3B1YmxpYyI+PG1ldGEgY29udGVudD0iZmFsc2UiIG5hbWU9Im9jdG9seXRpY3MtZGltZW5zaW9uLXJlcG9zaXRvcnlfaXNfZm9yayI+PG1ldGEgY29udGVudD0iODg2MjU5MyIgbmFtZT0ib2N0b2x5dGljcy1kaW1lbnNpb24tcmVwb3NpdG9yeV9uZXR3b3JrX3Jvb3RfaWQiPjxtZXRhIGNvbnRlbnQ9ImluaWt1bGluL3BhcnNlNSIgbmFtZT0ib2N0b2x5dGljcy1kaW1lbnNpb24tcmVwb3NpdG9yeV9uZXR3b3JrX3Jvb3RfbndvIj4KKzxsaW5rIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvY29tbWl0cy9tYXN0ZXIuYXRvbSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJSZWNlbnQgQ29tbWl0cyB0byBwYXJzZTU6bWFzdGVyIiB0eXBlPSJhcHBsaWNhdGlvbi9hdG9tK3htbCI+CisKKzwvaGVhZD4KKworCis8Ym9keSBjbGFzcz0ibG9nZ2VkX2luICBlbnYtcHJvZHVjdGlvbiB3aW5kb3dzIHZpcy1wdWJsaWMiPgorPGRpdiBjbGFzcz0id3JhcHBlciI+CisKKworCisKKworCis8ZGl2IGNsYXNzPSJoZWFkZXIgaGVhZGVyLWxvZ2dlZC1pbiB0cnVlIj4KKzxkaXYgY2xhc3M9ImNvbnRhaW5lciBjbGVhcmZpeCI+CisKKzxhIGNsYXNzPSJoZWFkZXItbG9nby1pbnZlcnRvY2F0IiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vIj4KKzxzcGFuIGNsYXNzPSJtZWdhLW9jdGljb24gb2N0aWNvbi1tYXJrLWdpdGh1YiI+PC9zcGFuPgorPC9hPgorCisKKzxhIGhyZWY9Ii9ub3RpZmljYXRpb25zIiBjbGFzcz0ibm90aWZpY2F0aW9uLWluZGljYXRvciB0b29sdGlwcGVkIGRvd253YXJkcyIgZGF0YS1nb3Rva2V5PSJuIiB0aXRsZT0iWW91IGhhdmUgbm8gdW5yZWFkIG5vdGlmaWNhdGlvbnMiPgorPHNwYW4gY2xhc3M9Im1haWwtc3RhdHVzIGFsbC1yZWFkIj48L3NwYW4+Cis8L2E+CisKKzxkaXYgY2xhc3M9ImNvbW1hbmQtYmFyIGpzLWNvbW1hbmQtYmFyICBpbi1yZXBvc2l0b3J5Ij4KKzxmb3JtIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgYWN0aW9uPSIvc2VhcmNoIiBjbGFzcz0iY29tbWFuZC1iYXItZm9ybSIgaWQ9InRvcF9zZWFyY2hfZm9ybSIgbWV0aG9kPSJnZXQiPgorCis8aW5wdXQgdHlwZT0idGV4dCIgZGF0YS1ob3RrZXk9Ii8gcyIgbmFtZT0icSIgaWQ9ImpzLWNvbW1hbmQtYmFyLWZpZWxkIiBwbGFjZWhvbGRlcj0iU2VhcmNoIG9yIHR5cGUgYSBjb21tYW5kIiB0YWJpbmRleD0iMSIgYXV0b2NhcGl0YWxpemU9Im9mZiIgZGF0YS11c2VybmFtZT0iaW5pa3VsaW4iIGRhdGEtcmVwbz0iaW5pa3VsaW4vcGFyc2U1IiBkYXRhLWJyYW5jaD0ibWFzdGVyIiBkYXRhLXNoYT0iODA1ZGY5OWUyOGUxMzczOTk2YzU2ZmFhOTBhOTZmYTM2NmUxZmMxMiI+CisKKzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im53byIgdmFsdWU9ImluaWt1bGluL3BhcnNlNSI+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51IGpzLW1lbnUtY29udGFpbmVyIGpzLXNlbGVjdC1tZW51IHNlYXJjaC1jb250ZXh0LXNlbGVjdC1tZW51Ij4KKzxzcGFuIGNsYXNzPSJtaW5pYnV0dG9uIHNlbGVjdC1tZW51LWJ1dHRvbiBqcy1tZW51LXRhcmdldCI+Cis8c3BhbiBjbGFzcz0ianMtc2VsZWN0LWJ1dHRvbiI+VGhpcyByZXBvc2l0b3J5PC9zcGFuPgorPC9zcGFuPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1tb2RhbC1ob2xkZXIganMtbWVudS1jb250ZW50IGpzLW5hdmlnYXRpb24tY29udGFpbmVyIj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LW1vZGFsIj4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbSBqcy1uYXZpZ2F0aW9uLWl0ZW0ganMtdGhpcy1yZXBvc2l0b3J5LW5hdmlnYXRpb24taXRlbSBzZWxlY3RlZCI+Cis8c3BhbiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS1pY29uIG9jdGljb24gb2N0aWNvbi1jaGVjayI+PC9zcGFuPgorPGlucHV0IHR5cGU9InJhZGlvIiBjbGFzcz0ianMtc2VhcmNoLXRoaXMtcmVwb3NpdG9yeSIgbmFtZT0ic2VhcmNoX3RhcmdldCIgdmFsdWU9InJlcG9zaXRvcnkiIGNoZWNrZWQ9ImNoZWNrZWQiPgorPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS10ZXh0IGpzLXNlbGVjdC1idXR0b24tdGV4dCI+VGhpcyByZXBvc2l0b3J5PC9kaXY+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWl0ZW0gLS0+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0ganMtbmF2aWdhdGlvbi1pdGVtIGpzLWFsbC1yZXBvc2l0b3JpZXMtbmF2aWdhdGlvbi1pdGVtIj4KKzxzcGFuIGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtLWljb24gb2N0aWNvbiBvY3RpY29uLWNoZWNrIj48L3NwYW4+Cis8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InNlYXJjaF90YXJnZXQiIHZhbHVlPSJnbG9iYWwiPgorPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS10ZXh0IGpzLXNlbGVjdC1idXR0b24tdGV4dCI+QWxsIHJlcG9zaXRvcmllczwvZGl2PgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1pdGVtIC0tPgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxzcGFuIGNsYXNzPSJvY3RpY29uIGhlbHAgdG9vbHRpcHBlZCBkb3dud2FyZHMiIHRpdGxlPSJTaG93IGNvbW1hbmQgYmFyIGhlbHAiPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1xdWVzdGlvbiI+PC9zcGFuPgorPC9zcGFuPgorCisKKzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZiIgdmFsdWU9ImNtZGZvcm0iPgorCis8L2Zvcm0+Cis8dWwgY2xhc3M9InRvcC1uYXYiPgorPGxpIGNsYXNzPSJleHBsb3JlIj48YSBocmVmPSIvZXhwbG9yZSI+RXhwbG9yZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tIj5HaXN0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL2Jsb2ciPkJsb2c8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2hlbHAuZ2l0aHViLmNvbSI+SGVscDwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorCisKKworCis8dWwgaWQ9InVzZXItbGlua3MiPgorPGxpPgorPGEgaHJlZj0iL2luaWt1bGluIiBjbGFzcz0ibmFtZSI+Cis8aW1nIGFsdD0iSXZhbiBOaWt1bGluIiBoZWlnaHQ9IjIwIiBzcmM9Imh0dHBzOi8vMi5ncmF2YXRhci5jb20vYXZhdGFyLzY0ZWU0OTdjNGE1MzMxNDRhOWJmOWNlMmE2YzAxMGM1P2Q9aHR0cHMlM0ElMkYlMkZpZGVudGljb25zLmdpdGh1Yi5jb20lMkY5ZGQ0ZGM1NjM0ZTNkM2Q5N2M3ZDVhMzRiYTI4Yjg1MC5wbmcmYW1wO3I9eCZhbXA7cz0xNDAiIHdpZHRoPSIyMCI+IGluaWt1bGluCis8L2E+Cis8L2xpPgorCis8bGkgY2xhc3M9Im5ldy1tZW51IGRyb3Bkb3duLXRvZ2dsZSBqcy1tZW51LWNvbnRhaW5lciI+Cis8YSBocmVmPSIjIiBjbGFzcz0ianMtbWVudS10YXJnZXQgdG9vbHRpcHBlZCBkb3dud2FyZHMiIHRpdGxlPSJDcmVhdGUgbmV3Li4uIiBhcmlhLWxhYmVsPSJDcmVhdGUgbmV3Li4uIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcGx1cyI+PC9zcGFuPgorPHNwYW4gY2xhc3M9ImRyb3Bkb3duLWFycm93Ij48L3NwYW4+Cis8L2E+CisKKzxkaXYgY2xhc3M9ImpzLW1lbnUtY29udGVudCI+Cis8L2Rpdj4KKzwvbGk+CisKKzxsaT4KKzxhIGhyZWY9Ii9zZXR0aW5ncy9wcm9maWxlIiBpZD0iYWNjb3VudF9zZXR0aW5ncyIgY2xhc3M9InRvb2x0aXBwZWQgZG93bndhcmRzIiBhcmlhLWxhYmVsPSJBY2NvdW50IHNldHRpbmdzICIgdGl0bGU9IkFjY291bnQgc2V0dGluZ3MgIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tdG9vbHMiPjwvc3Bhbj4KKzwvYT4KKzwvbGk+Cis8bGk+Cis8YSBjbGFzcz0idG9vbHRpcHBlZCBkb3dud2FyZHMiIGhyZWY9Ii9sb2dvdXQiIGRhdGEtbWV0aG9kPSJwb3N0IiBpZD0ibG9nb3V0IiB0aXRsZT0iU2lnbiBvdXQiIGFyaWEtbGFiZWw9IlNpZ24gb3V0Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbG9nLW91dCI+PC9zcGFuPgorPC9hPgorPC9saT4KKworPC91bD4KKworPGRpdiBjbGFzcz0ianMtbmV3LWRyb3Bkb3duLWNvbnRlbnRzIGhpZGRlbiI+CisKKworPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KKzxsaT4KKzxhIGhyZWY9Ii9uZXciPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcmVwby1jcmVhdGUiPjwvc3Bhbj4gTmV3IHJlcG9zaXRvcnk8L2E+Cis8L2xpPgorPGxpPgorPGEgaHJlZj0iL29yZ2FuaXphdGlvbnMvbmV3Ij48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLW9yZ2FuaXphdGlvbiI+PC9zcGFuPiBOZXcgb3JnYW5pemF0aW9uPC9hPgorPC9saT4KKworCisKKzxsaSBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Cis8c3BhbiB0aXRsZT0iaW5pa3VsaW4vcGFyc2U1Ij5UaGlzIHJlcG9zaXRvcnk8L3NwYW4+Cis8L2xpPgorPGxpPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMvbmV3Ij48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWlzc3VlLW9wZW5lZCI+PC9zcGFuPiBOZXcgaXNzdWU8L2E+Cis8L2xpPgorPGxpPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9zZXR0aW5ncy9jb2xsYWJvcmF0aW9uIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXBlcnNvbi1hZGQiPjwvc3Bhbj4gTmV3IGNvbGxhYm9yYXRvcjwvYT4KKzwvbGk+Cis8L3VsPgorCis8L2Rpdj4KKworCisKKzwvZGl2PgorPC9kaXY+CisKKworCisKKworCisKKworPGRpdiBjbGFzcz0ic2l0ZSIgaXRlbXNjb3BlPSIiIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9XZWJQYWdlIj4KKworPGRpdiBjbGFzcz0icGFnZWhlYWQgcmVwb2hlYWQgaW5zdGFwYXBlcl9pZ25vcmUgcmVhZGFiaWxpdHktbWVudSI+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCisKKzx1bCBjbGFzcz0icGFnZWhlYWQtYWN0aW9ucyI+CisKKzxsaSBjbGFzcz0ic3Vic2NyaXB0aW9uIj4KKzxmb3JtIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgYWN0aW9uPSIvbm90aWZpY2F0aW9ucy9zdWJzY3JpYmUiIGNsYXNzPSJqcy1zb2NpYWwtY29udGFpbmVyIiBkYXRhLWF1dG9zdWJtaXQ9InRydWUiIGRhdGEtcmVtb3RlPSJ0cnVlIiBtZXRob2Q9InBvc3QiPjxkaXYgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZSI+PGlucHV0IG5hbWU9ImF1dGhlbnRpY2l0eV90b2tlbiIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iUUNqZFpTUS9hV0dLaU9rbmtzVTNVQWFucGpyNDE1RS9VZjVIUHEwN0R6RT0iPjwvZGl2PiAgPGlucHV0IGlkPSJyZXBvc2l0b3J5X2lkIiBuYW1lPSJyZXBvc2l0b3J5X2lkIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSI4ODYyNTkzIj4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUganMtbWVudS1jb250YWluZXIganMtc2VsZWN0LW1lbnUiPgorPGEgY2xhc3M9InNvY2lhbC1jb3VudCBqcy1zb2NpYWwtY291bnQiIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvd2F0Y2hlcnMiPgorMjIKKzwvYT4KKzxzcGFuIGNsYXNzPSJtaW5pYnV0dG9uIHNlbGVjdC1tZW51LWJ1dHRvbiB3aXRoLWNvdW50IGpzLW1lbnUtdGFyZ2V0IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj4KKzxzcGFuIGNsYXNzPSJqcy1zZWxlY3QtYnV0dG9uIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZXllLXVud2F0Y2giPjwvc3Bhbj4KK1Vud2F0Y2gKKzwvc3Bhbj4KKzwvc3Bhbj4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtbW9kYWwtaG9sZGVyIj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LW1vZGFsIHN1YnNjcmlwdGlvbi1tZW51LW1vZGFsIGpzLW1lbnUtY29udGVudCI+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1oZWFkZXIiPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LXRpdGxlIj5Ob3RpZmljYXRpb24gc3RhdHVzPC9zcGFuPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1yZW1vdmUtY2xvc2UganMtbWVudS1jbG9zZSI+PC9zcGFuPgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1oZWFkZXIgLS0+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWxpc3QganMtbmF2aWdhdGlvbi1jb250YWluZXIiIHJvbGU9Im1lbnUiPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtIGpzLW5hdmlnYXRpb24taXRlbSAiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iMCI+Cis8c3BhbiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS1pY29uIG9jdGljb24gb2N0aWNvbi1jaGVjayI+PC9zcGFuPgorPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS10ZXh0Ij4KKzxpbnB1dCBpZD0iZG9faW5jbHVkZWQiIG5hbWU9ImRvIiB0eXBlPSJyYWRpbyIgdmFsdWU9ImluY2x1ZGVkIj4KKzxoND5Ob3Qgd2F0Y2hpbmc8L2g0PgorPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5Zb3Ugb25seSByZWNlaXZlIG5vdGlmaWNhdGlvbnMgZm9yIGNvbnZlcnNhdGlvbnMgaW4gd2hpY2ggeW91IHBhcnRpY2lwYXRlIG9yIGFyZSBAbWVudGlvbmVkLjwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJqcy1zZWxlY3QtYnV0dG9uLXRleHQgaGlkZGVuLXNlbGVjdC1idXR0b24tdGV4dCI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWV5ZS13YXRjaCI+PC9zcGFuPgorV2F0Y2gKKzwvc3Bhbj4KKzwvZGl2PgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1pdGVtIC0tPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtIGpzLW5hdmlnYXRpb24taXRlbSBzZWxlY3RlZCIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSIwIj4KKzxzcGFuIGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtLWljb24gb2N0aWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0tdGV4dCI+Cis8aW5wdXQgY2hlY2tlZD0iY2hlY2tlZCIgaWQ9ImRvX3N1YnNjcmliZWQiIG5hbWU9ImRvIiB0eXBlPSJyYWRpbyIgdmFsdWU9InN1YnNjcmliZWQiPgorPGg0PldhdGNoaW5nPC9oND4KKzxzcGFuIGNsYXNzPSJkZXNjcmlwdGlvbiI+WW91IHJlY2VpdmUgbm90aWZpY2F0aW9ucyBmb3IgYWxsIGNvbnZlcnNhdGlvbnMgaW4gdGhpcyByZXBvc2l0b3J5Ljwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJqcy1zZWxlY3QtYnV0dG9uLXRleHQgaGlkZGVuLXNlbGVjdC1idXR0b24tdGV4dCI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWV5ZS11bndhdGNoIj48L3NwYW4+CitVbndhdGNoCis8L3NwYW4+Cis8L2Rpdj4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtaXRlbSAtLT4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbSBqcy1uYXZpZ2F0aW9uLWl0ZW0gIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9IjAiPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0taWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0tdGV4dCI+Cis8aW5wdXQgaWQ9ImRvX2lnbm9yZSIgbmFtZT0iZG8iIHR5cGU9InJhZGlvIiB2YWx1ZT0iaWdub3JlIj4KKzxoND5JZ25vcmluZzwvaDQ+Cis8c3BhbiBjbGFzcz0iZGVzY3JpcHRpb24iPllvdSBkbyBub3QgcmVjZWl2ZSBhbnkgbm90aWZpY2F0aW9ucyBmb3IgY29udmVyc2F0aW9ucyBpbiB0aGlzIHJlcG9zaXRvcnkuPC9zcGFuPgorPHNwYW4gY2xhc3M9ImpzLXNlbGVjdC1idXR0b24tdGV4dCBoaWRkZW4tc2VsZWN0LWJ1dHRvbi10ZXh0Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbXV0ZSI+PC9zcGFuPgorU3RvcCBpZ25vcmluZworPC9zcGFuPgorPC9kaXY+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWl0ZW0gLS0+CisKKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtbGlzdCAtLT4KKworPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1tb2RhbCAtLT4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtbW9kYWwtaG9sZGVyIC0tPgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudSAtLT4KKworPC9mb3JtPgorPC9saT4KKworPGxpPgorCisKKzxkaXYgY2xhc3M9ImpzLXRvZ2dsZXItY29udGFpbmVyIGpzLXNvY2lhbC1jb250YWluZXIgc3RhcnJpbmctY29udGFpbmVyIG9uIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvdW5zdGFyIiBjbGFzcz0ibWluaWJ1dHRvbiB3aXRoLWNvdW50IGpzLXRvZ2dsZXItdGFyZ2V0IHN0YXItYnV0dG9uIHN0YXJyZWQgdXB3YXJkcyIgdGl0bGU9IlVuc3RhciB0aGlzIHJlcG9zaXRvcnkiIGRhdGEtcmVtb3RlPSJ0cnVlIiBkYXRhLW1ldGhvZD0icG9zdCIgcmVsPSJub2ZvbGxvdyI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXN0YXItZGVsZXRlIj48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPlVuc3Rhcjwvc3Bhbj4KKzwvYT4KKworPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9zdGFyIiBjbGFzcz0ibWluaWJ1dHRvbiB3aXRoLWNvdW50IGpzLXRvZ2dsZXItdGFyZ2V0IHN0YXItYnV0dG9uIHVuc3RhcnJlZCB1cHdhcmRzIiB0aXRsZT0iU3RhciB0aGlzIHJlcG9zaXRvcnkiIGRhdGEtcmVtb3RlPSJ0cnVlIiBkYXRhLW1ldGhvZD0icG9zdCIgcmVsPSJub2ZvbGxvdyI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXN0YXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+U3Rhcjwvc3Bhbj4KKzwvYT4KKworPGEgY2xhc3M9InNvY2lhbC1jb3VudCBqcy1zb2NpYWwtY291bnQiIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvc3RhcmdhemVycyI+Cis0MDYKKzwvYT4KKzwvZGl2PgorCis8L2xpPgorCisKKzxsaT4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvZm9yayIgY2xhc3M9Im1pbmlidXR0b24gd2l0aC1jb3VudCBqcy10b2dnbGVyLXRhcmdldCBmb3JrLWJ1dHRvbiBsaWdodGVyIHVwd2FyZHMiIHRpdGxlPSJGb3JrIHRoaXMgcmVwbyIgcmVsPSJmYWNlYm94IG5vZm9sbG93Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZ2l0LWJyYW5jaC1jcmVhdGUiPjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+Rm9yazwvc3Bhbj4KKzwvYT4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvbmV0d29yayIgY2xhc3M9InNvY2lhbC1jb3VudCI+MTQ8L2E+Cis8L2xpPgorCisKKzwvdWw+CisKKzxoMSBpdGVtc2NvcGU9IiIgaXRlbXR5cGU9Imh0dHA6Ly9kYXRhLXZvY2FidWxhcnkub3JnL0JyZWFkY3J1bWIiIGNsYXNzPSJlbnRyeS10aXRsZSBwdWJsaWMiPgorPHNwYW4gY2xhc3M9InJlcG8tbGFiZWwiPjxzcGFuPnB1YmxpYzwvc3Bhbj48L3NwYW4+Cis8c3BhbiBjbGFzcz0ibWVnYS1vY3RpY29uIG9jdGljb24tcmVwbyI+PC9zcGFuPgorPHNwYW4gY2xhc3M9ImF1dGhvciI+Cis8YSBocmVmPSIvaW5pa3VsaW4iIGNsYXNzPSJ1cmwgZm4iIGl0ZW1wcm9wPSJ1cmwiIHJlbD0iYXV0aG9yIj48c3BhbiBpdGVtcHJvcD0idGl0bGUiPmluaWt1bGluPC9zcGFuPjwvYT4KKzwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJyZXBvaGVhZC1uYW1lLWRpdmlkZXIiPi88L3NwYW4+Cis8c3Ryb25nPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUiIGNsYXNzPSJqcy1jdXJyZW50LXJlcG9zaXRvcnkganMtcmVwby1ob21lLWxpbmsiPnBhcnNlNTwvYT48L3N0cm9uZz4KKworPHNwYW4gY2xhc3M9InBhZ2UtY29udGV4dC1sb2FkZXIiPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiI+Cis8L3NwYW4+CisKKzwvaDE+Cis8L2Rpdj48IS0tIC8uY29udGFpbmVyIC0tPgorPC9kaXY+PCEtLSAvLnJlcG9oZWFkIC0tPgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCisKKzxkaXYgY2xhc3M9InJlcG9zaXRvcnktd2l0aC1zaWRlYmFyIHJlcG8tY29udGFpbmVyIHdpdGgtZnVsbC1uYXZpZ2F0aW9uICI+CisKKzxkaXYgY2xhc3M9InJlcG9zaXRvcnktc2lkZWJhciI+CisKKworPGRpdiBjbGFzcz0ic3Vua2VuLW1lbnUgdmVydGljYWwtcmlnaHQgcmVwby1uYXYganMtcmVwby1uYXYganMtcmVwb3NpdG9yeS1jb250YWluZXItcGpheCBqcy1vY3RpY29uLWxvYWRlcnMiPgorPGRpdiBjbGFzcz0ic3Vua2VuLW1lbnUtY29udGVudHMiPgorPHVsIGNsYXNzPSJzdW5rZW4tbWVudS1ncm91cCI+Cis8bGkgY2xhc3M9InRvb2x0aXBwZWQgbGVmdHdhcmRzIiB0aXRsZT0iQ29kZSI+Cis8YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1IiBhcmlhLWxhYmVsPSJDb2RlIiBjbGFzcz0ic2VsZWN0ZWQganMtc2VsZWN0ZWQtbmF2aWdhdGlvbi1pdGVtIHN1bmtlbi1tZW51LWl0ZW0iIGRhdGEtZ290b2tleT0iYyIgZGF0YS1wamF4PSJ0cnVlIiBkYXRhLXNlbGVjdGVkLWxpbmtzPSJyZXBvX3NvdXJjZSByZXBvX2Rvd25sb2FkcyByZXBvX2NvbW1pdHMgcmVwb190YWdzIHJlcG9fYnJhbmNoZXMgL2luaWt1bGluL3BhcnNlNSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWNvZGUiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImZ1bGwtd29yZCI+Q29kZTwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJtaW5pLWxvYWRlciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiI+Cis8L2E+ICAgICAgPC9saT4KKworPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9Iklzc3VlcyI+Cis8YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2lzc3VlcyIgYXJpYS1sYWJlbD0iSXNzdWVzIiBjbGFzcz0ianMtc2VsZWN0ZWQtbmF2aWdhdGlvbi1pdGVtIHN1bmtlbi1tZW51LWl0ZW0ganMtZGlzYWJsZS1wamF4IiBkYXRhLWdvdG9rZXk9ImkiIGRhdGEtc2VsZWN0ZWQtbGlua3M9InJlcG9faXNzdWVzIC9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24taXNzdWUtb3BlbmVkIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPklzc3Vlczwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJjb3VudGVyIj4wPC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9Im1pbmktbG9hZGVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2Ij4KKzwvYT4gICAgICAgIDwvbGk+CisKKzxsaSBjbGFzcz0idG9vbHRpcHBlZCBsZWZ0d2FyZHMiIHRpdGxlPSJQdWxsIFJlcXVlc3RzIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvcHVsbHMiIGFyaWEtbGFiZWw9IlB1bGwgUmVxdWVzdHMiIGNsYXNzPSJqcy1zZWxlY3RlZC1uYXZpZ2F0aW9uLWl0ZW0gc3Vua2VuLW1lbnUtaXRlbSBqcy1kaXNhYmxlLXBqYXgiIGRhdGEtZ290b2tleT0icCIgZGF0YS1zZWxlY3RlZC1saW5rcz0icmVwb19wdWxscyAvaW5pa3VsaW4vcGFyc2U1L3B1bGxzIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZ2l0LXB1bGwtcmVxdWVzdCI+PC9zcGFuPiA8c3BhbiBjbGFzcz0iZnVsbC13b3JkIj5QdWxsIFJlcXVlc3RzPC9zcGFuPgorPHNwYW4gY2xhc3M9ImNvdW50ZXIiPjA8L3NwYW4+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBjbGFzcz0ibWluaS1sb2FkZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiPgorPC9hPiAgICAgIDwvbGk+CisKKworPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9Ildpa2kiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS93aWtpIiBhcmlhLWxhYmVsPSJXaWtpIiBjbGFzcz0ianMtc2VsZWN0ZWQtbmF2aWdhdGlvbi1pdGVtIHN1bmtlbi1tZW51LWl0ZW0iIGRhdGEtcGpheD0idHJ1ZSIgZGF0YS1zZWxlY3RlZC1saW5rcz0icmVwb193aWtpIC9pbmlrdWxpbi9wYXJzZTUvd2lraSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWJvb2siPjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImZ1bGwtd29yZCI+V2lraTwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJtaW5pLWxvYWRlciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiI+Cis8L2E+ICAgICAgICA8L2xpPgorPC91bD4KKzxkaXYgY2xhc3M9InN1bmtlbi1tZW51LXNlcGFyYXRvciI+PC9kaXY+Cis8dWwgY2xhc3M9InN1bmtlbi1tZW51LWdyb3VwIj4KKworPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9IlB1bHNlIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvcHVsc2UiIGFyaWEtbGFiZWw9IlB1bHNlIiBjbGFzcz0ianMtc2VsZWN0ZWQtbmF2aWdhdGlvbi1pdGVtIHN1bmtlbi1tZW51LWl0ZW0iIGRhdGEtcGpheD0idHJ1ZSIgZGF0YS1zZWxlY3RlZC1saW5rcz0icHVsc2UgL2luaWt1bGluL3BhcnNlNS9wdWxzZSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXB1bHNlIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPlB1bHNlPC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9Im1pbmktbG9hZGVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2Ij4KKzwvYT4gICAgICA8L2xpPgorCis8bGkgY2xhc3M9InRvb2x0aXBwZWQgbGVmdHdhcmRzIiB0aXRsZT0iR3JhcGhzIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvZ3JhcGhzIiBhcmlhLWxhYmVsPSJHcmFwaHMiIGNsYXNzPSJqcy1zZWxlY3RlZC1uYXZpZ2F0aW9uLWl0ZW0gc3Vua2VuLW1lbnUtaXRlbSIgZGF0YS1wamF4PSJ0cnVlIiBkYXRhLXNlbGVjdGVkLWxpbmtzPSJyZXBvX2dyYXBocyByZXBvX2NvbnRyaWJ1dG9ycyAvaW5pa3VsaW4vcGFyc2U1L2dyYXBocyI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWdyYXBoIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPkdyYXBoczwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJtaW5pLWxvYWRlciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiI+Cis8L2E+ICAgICAgPC9saT4KKworPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9Ik5ldHdvcmsiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9uZXR3b3JrIiBhcmlhLWxhYmVsPSJOZXR3b3JrIiBjbGFzcz0ianMtc2VsZWN0ZWQtbmF2aWdhdGlvbi1pdGVtIHN1bmtlbi1tZW51LWl0ZW0ganMtZGlzYWJsZS1wamF4IiBkYXRhLXNlbGVjdGVkLWxpbmtzPSJyZXBvX25ldHdvcmsgL2luaWt1bGluL3BhcnNlNS9uZXR3b3JrIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZ2l0LWJyYW5jaCI+PC9zcGFuPiA8c3BhbiBjbGFzcz0iZnVsbC13b3JkIj5OZXR3b3JrPC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9Im1pbmktbG9hZGVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2Ij4KKzwvYT4gICAgICA8L2xpPgorPC91bD4KKworCis8ZGl2IGNsYXNzPSJzdW5rZW4tbWVudS1zZXBhcmF0b3IiPjwvZGl2PgorPHVsIGNsYXNzPSJzdW5rZW4tbWVudS1ncm91cCI+Cis8bGkgY2xhc3M9InRvb2x0aXBwZWQgbGVmdHdhcmRzIiB0aXRsZT0iU2V0dGluZ3MiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9zZXR0aW5ncyIgY2xhc3M9InN1bmtlbi1tZW51LWl0ZW0iIGRhdGEtcGpheD0iIiBhcmlhLWxhYmVsPSJTZXR0aW5ncyI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXRvb2xzIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPlNldHRpbmdzPC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9Im1pbmktbG9hZGVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2Ij4KKzwvYT4KKzwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ib25seS13aXRoLWZ1bGwtbmF2Ij4KKworCisKKworPGRpdiBjbGFzcz0iY2xvbmUtdXJsICIgZGF0YS1wcm90b2NvbC10eXBlPSJodHRwIiBkYXRhLXVybD0iL3VzZXJzL3NldF9wcm90b2NvbD9wcm90b2NvbF9zZWxlY3Rvcj1odHRwJmFtcDtwcm90b2NvbF90eXBlPXB1c2giPgorPGgzPjxzdHJvbmc+SFRUUFM8L3N0cm9uZz4gY2xvbmUgVVJMPC9oMz4KKzxkaXYgY2xhc3M9ImNsb25lLXVybC1ib3giPgorPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJjbG9uZSBqcy11cmwtZmllbGQiIHZhbHVlPSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1LmdpdCIgcmVhZG9ubHk9InJlYWRvbmx5Ij4KKworPHNwYW4gY2xhc3M9ImpzLXplcm9jbGlwYm9hcmQgdXJsLWJveC1jbGlwcHkgbWluaWJ1dHRvbiB6ZXJvY2xpcGJvYXJkLWJ1dHRvbiIgZGF0YS1jbGlwYm9hcmQtdGV4dD0iaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS5naXQiIGRhdGEtY29waWVkLWhpbnQ9ImNvcGllZCEiIHRpdGxlPSJjb3B5IHRvIGNsaXBib2FyZCI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1jbGlwcHkiPjwvc3Bhbj48L3NwYW4+Cis8L2Rpdj4KKzwvZGl2PgorCisKKworPGRpdiBjbGFzcz0iY2xvbmUtdXJsICIgZGF0YS1wcm90b2NvbC10eXBlPSJzc2giIGRhdGEtdXJsPSIvdXNlcnMvc2V0X3Byb3RvY29sP3Byb3RvY29sX3NlbGVjdG9yPXNzaCZhbXA7cHJvdG9jb2xfdHlwZT1wdXNoIj4KKzxoMz48c3Ryb25nPlNTSDwvc3Ryb25nPiBjbG9uZSBVUkw8L2gzPgorPGRpdiBjbGFzcz0iY2xvbmUtdXJsLWJveCI+Cis8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNsb25lIGpzLXVybC1maWVsZCIgdmFsdWU9ImdpdEBnaXRodWIuY29tOmluaWt1bGluL3BhcnNlNS5naXQiIHJlYWRvbmx5PSJyZWFkb25seSI+CisKKzxzcGFuIGNsYXNzPSJqcy16ZXJvY2xpcGJvYXJkIHVybC1ib3gtY2xpcHB5IG1pbmlidXR0b24gemVyb2NsaXBib2FyZC1idXR0b24iIGRhdGEtY2xpcGJvYXJkLXRleHQ9ImdpdEBnaXRodWIuY29tOmluaWt1bGluL3BhcnNlNS5naXQiIGRhdGEtY29waWVkLWhpbnQ9ImNvcGllZCEiIHRpdGxlPSJjb3B5IHRvIGNsaXBib2FyZCI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1jbGlwcHkiPjwvc3Bhbj48L3NwYW4+Cis8L2Rpdj4KKzwvZGl2PgorCisKKworPGRpdiBjbGFzcz0iY2xvbmUtdXJsIG9wZW4iIGRhdGEtcHJvdG9jb2wtdHlwZT0ic3VidmVyc2lvbiIgZGF0YS11cmw9Ii91c2Vycy9zZXRfcHJvdG9jb2w/cHJvdG9jb2xfc2VsZWN0b3I9c3VidmVyc2lvbiZhbXA7cHJvdG9jb2xfdHlwZT1wdXNoIj4KKzxoMz48c3Ryb25nPlN1YnZlcnNpb248L3N0cm9uZz4gY2hlY2tvdXQgVVJMPC9oMz4KKzxkaXYgY2xhc3M9ImNsb25lLXVybC1ib3giPgorPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJjbG9uZSBqcy11cmwtZmllbGQiIHZhbHVlPSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1IiByZWFkb25seT0icmVhZG9ubHkiPgorCis8c3BhbiBjbGFzcz0ianMtemVyb2NsaXBib2FyZCB1cmwtYm94LWNsaXBweSBtaW5pYnV0dG9uIHplcm9jbGlwYm9hcmQtYnV0dG9uIiBkYXRhLWNsaXBib2FyZC10ZXh0PSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1IiBkYXRhLWNvcGllZC1oaW50PSJjb3BpZWQhIiB0aXRsZT0iY29weSB0byBjbGlwYm9hcmQiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tY2xpcHB5Ij48L3NwYW4+PC9zcGFuPgorPC9kaXY+Cis8L2Rpdj4KKworCis8cCBjbGFzcz0iY2xvbmUtb3B0aW9ucyI+WW91IGNhbiBjbG9uZSB3aXRoCis8YSBocmVmPSIjIiBjbGFzcz0ianMtY2xvbmUtc2VsZWN0b3IiIGRhdGEtcHJvdG9jb2w9Imh0dHAiPkhUVFBTPC9hPiwKKzxhIGhyZWY9IiMiIGNsYXNzPSJqcy1jbG9uZS1zZWxlY3RvciIgZGF0YS1wcm90b2NvbD0ic3NoIj5TU0g8L2E+LAorb3IgPGEgaHJlZj0iIyIgY2xhc3M9ImpzLWNsb25lLXNlbGVjdG9yIiBkYXRhLXByb3RvY29sPSJzdWJ2ZXJzaW9uIj5TdWJ2ZXJzaW9uPC9hPi4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIGhlbHAgdG9vbHRpcHBlZCB1cHdhcmRzIiB0aXRsZT0iR2V0IGhlbHAgb24gd2hpY2ggVVJMIGlzIHJpZ2h0IGZvciB5b3UuIj4KKzxhIGhyZWY9Imh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL3doaWNoLXJlbW90ZS11cmwtc2hvdWxkLWktdXNlIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcXVlc3Rpb24iPjwvc3Bhbj4KKzwvYT4KKzwvc3Bhbj4KKzwvcD4KKworCis8YSBocmVmPSJodHRwOi8vd2luZG93cy5naXRodWIuY29tIiBjbGFzcz0ibWluaWJ1dHRvbiBzaWRlYmFyLWJ1dHRvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWRldmljZS1kZXNrdG9wIj48L3NwYW4+CitDbG9uZSBpbiBEZXNrdG9wCis8L2E+CisKKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvYXJjaGl2ZS9tYXN0ZXIuemlwIiBjbGFzcz0ibWluaWJ1dHRvbiBzaWRlYmFyLWJ1dHRvbiIgdGl0bGU9IkRvd25sb2FkIHRoaXMgcmVwb3NpdG9yeSBhcyBhIHppcCBmaWxlIiByZWw9Im5vZm9sbG93Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tY2xvdWQtZG93bmxvYWQiPjwvc3Bhbj4KK0Rvd25sb2FkIFpJUAorPC9hPgorPC9kaXY+Cis8L2Rpdj48IS0tIC8ucmVwb3NpdG9yeS1zaWRlYmFyIC0tPgorCis8ZGl2IGlkPSJqcy1yZXBvLXBqYXgtY29udGFpbmVyIiBjbGFzcz0icmVwb3NpdG9yeS1jb250ZW50IGNvbnRleHQtbG9hZGVyLWNvbnRhaW5lciIgZGF0YS1wamF4LWNvbnRhaW5lcj0iIj4KKworCis8c3BhbiBpZD0ianMtc2hvdy1mdWxsLW5hdmlnYXRpb24iPjwvc3Bhbj4KKworPGRpdiBjbGFzcz0icmVwb3NpdG9yeS1tZXRhIGpzLWRldGFpbHMtY29udGFpbmVyICI+Cis8ZGl2IGNsYXNzPSJyZXBvc2l0b3J5LWRlc2NyaXB0aW9uIGpzLWRldGFpbHMtc2hvdyI+Cis8cD5GYXN0IGZ1bGwtZmVhdHVyZWQgSFRNTCBwYXJzZXIgZm9yIE5vZGUuIEJhc2VkIG9uIFdIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLjwvcD4KKzwvZGl2PgorCisKKzxzcGFuIGNsYXNzPSJlZGl0LWxpbmsganMtZGV0YWlscy1zaG93IGpzLWRldGFpbHMtdGFyZ2V0Ij7igJQgPGEgaHJlZj0iIyI+RWRpdDwvYT48L3NwYW4+Cis8Zm9ybSBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGFjdGlvbj0iL2luaWt1bGluL3BhcnNlNS9zZXR0aW5ncy91cGRhdGVfbWV0YSIgY2xhc3M9ImVkaXQtcmVwb3NpdG9yeS1tZXRhIGpzLWRldGFpbHMtZWRpdCIgbWV0aG9kPSJwb3N0Ij48ZGl2IHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjA7ZGlzcGxheTppbmxpbmUiPjxpbnB1dCBuYW1lPSJfbWV0aG9kIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJwdXQiPjxpbnB1dCBuYW1lPSJhdXRoZW50aWNpdHlfdG9rZW4iIHR5cGU9ImhpZGRlbiIgdmFsdWU9IlFDamRaU1EvYVdHS2lPa25rc1UzVUFhbnBqcjQxNUUvVWY1SFBxMDdEekU9Ij48L2Rpdj4KKworPGRpdiBjbGFzcz0iZmllbGQgZGVzY3JpcHRpb24tZmllbGQiPgorPGxhYmVsIGZvcj0icmVwb19kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L2xhYmVsPgorPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InJlcG9fZGVzY3JpcHRpb24iIHZhbHVlPSJGYXN0IGZ1bGwtZmVhdHVyZWQgSFRNTCBwYXJzZXIgZm9yIE5vZGUuIEJhc2VkIG9uIFdIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLiIgcGxhY2Vob2xkZXI9IlNob3J0IGRlc2NyaXB0aW9uIG9mIHRoaXMgcmVwb3NpdG9yeSI+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZmllbGQgd2Vic2l0ZS1maWVsZCI+Cis8bGFiZWwgZm9yPSJyZXBvX2hvbWVwYWdlIj5XZWJzaXRlPC9sYWJlbD4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJyZXBvX2hvbWVwYWdlIiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iV2Vic2l0ZSBmb3IgdGhpcyByZXBvc2l0b3J5IChvcHRpb25hbCkiPgorPC9kaXY+CisKKzxidXR0b24gY2xhc3M9ImJ1dHRvbiBjbGFzc3kiPlNhdmU8L2J1dHRvbj4KKzxzcGFuIGNsYXNzPSJjYW5jZWwiPm9yIDxhIGhyZWY9IiMiIGNsYXNzPSJqcy1kZXRhaWxzLXRhcmdldCI+Y2FuY2VsPC9hPjwvc3Bhbj4KKzwvZm9ybT4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjYXBwZWQtYm94IG92ZXJhbGwtc3VtbWFyeSAiPgorCis8ZGl2IGNsYXNzPSJzdGF0cy1zd2l0Y2hlci12aWV3cG9ydCBqcy1zdGF0cy1zd2l0Y2hlci12aWV3cG9ydCI+CisKKzx1bCBjbGFzcz0ibnVtYmVycy1zdW1tYXJ5Ij4KKzxsaSBjbGFzcz0iY29tbWl0cyI+Cis8YSBkYXRhLXBqYXg9IiIgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXRzL21hc3RlciI+Cis8c3BhbiBjbGFzcz0ibnVtIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24taGlzdG9yeSI+PC9zcGFuPgorMTQ5Cis8L3NwYW4+Citjb21taXRzCis8L2E+Cis8L2xpPgorPGxpPgorPGEgZGF0YS1wamF4PSIiIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvYnJhbmNoZXMiPgorPHNwYW4gY2xhc3M9Im51bSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWdpdC1icmFuY2giPjwvc3Bhbj4KKzEKKzwvc3Bhbj4KK2JyYW5jaAorPC9hPgorPC9saT4KKworPGxpPgorPGEgZGF0YS1wamF4PSIiIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvcmVsZWFzZXMiPgorPHNwYW4gY2xhc3M9Im51bSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXRhZyI+PC9zcGFuPgorMgorPC9zcGFuPgorcmVsZWFzZXMKKzwvYT4KKzwvbGk+CisKKzxsaT4KKworPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9ncmFwaHMvY29udHJpYnV0b3JzIj4KKzxzcGFuIGNsYXNzPSJudW0iPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1vcmdhbml6YXRpb24iPjwvc3Bhbj4KKzIKKzwvc3Bhbj4KK2NvbnRyaWJ1dG9ycworPC9hPgorPC9saT4KKzwvdWw+CisKKzxkaXYgY2xhc3M9InJlcG9zaXRvcnktbGFuZy1zdGF0cyI+Cis8b2wgY2xhc3M9InJlcG9zaXRvcnktbGFuZy1zdGF0cy1udW1iZXJzIj4KKzxsaT4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvc2VhcmNoP2w9amF2YXNjcmlwdCI+Cis8c3BhbiBjbGFzcz0iY29sb3ItYmxvY2sgbGFuZ3VhZ2UtY29sb3IiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmMTU1MDE7Ij48L3NwYW4+Cis8c3BhbiBjbGFzcz0ibGFuZyI+SmF2YVNjcmlwdDwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJwZXJjZW50Ij4xMDAlPC9zcGFuPgorPC9hPgorPC9saT4KKzwvb2w+Cis8L2Rpdj4KKzwvZGl2PgorCis8L2Rpdj4KKworPGEgaHJlZj0iIyIgY2xhc3M9InJlcG9zaXRvcnktbGFuZy1zdGF0cy1ncmFwaCBqcy10b2dnbGUtbGFuZy1zdGF0cyB0b29sdGlwcGVkIGRvd253YXJkcyIgdGl0bGU9IlNob3cgbGFuZ3VhZ2Ugc3RhdGlzdGljcyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2YxNTUwMSI+Cis8c3BhbiBjbGFzcz0ibGFuZ3VhZ2UtY29sb3IiIHN0eWxlPSJ3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmMTU1MDE7IiBpdGVtcHJvcD0ia2V5d29yZHMiPkphdmFTY3JpcHQ8L3NwYW4+Cis8L2E+CisKKworPGRpdj4KKzwvZGl2PgorCisKKzxkaXYgY2xhc3M9ImZpbGUtbmF2aWdhdGlvbiBpbi1taWQtcGFnZSI+Cis8YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2NvbXBhcmUiIGFyaWEtbGFiZWw9IkNvbXBhcmUsIHJldmlldywgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IiBjbGFzcz0ibWluaWJ1dHRvbiBjb21wYWN0IHByaW1hcnkgdG9vbHRpcHBlZCBkb3dud2FyZHMiIHRpdGxlPSJDb21wYXJlICZhbXA7IHJldmlldyIgZGF0YS1wamF4PSIiPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1naXQtY29tcGFyZSI+PC9zcGFuPgorPC9hPgorCisKKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUganMtbWVudS1jb250YWluZXIganMtc2VsZWN0LW1lbnUiPgorPHNwYW4gY2xhc3M9Im1pbmlidXR0b24gc2VsZWN0LW1lbnUtYnV0dG9uIGpzLW1lbnUtdGFyZ2V0IiBkYXRhLWhvdGtleT0idyIgZGF0YS1tYXN0ZXItYnJhbmNoPSJtYXN0ZXIiIGRhdGEtcmVmPSJtYXN0ZXIiIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU3dpdGNoIGJyYW5jaGVzIG9yIHRhZ3MiIHRhYmluZGV4PSIwIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZ2l0LWJyYW5jaCI+PC9zcGFuPgorPGk+YnJhbmNoOjwvaT4KKzxzcGFuIGNsYXNzPSJqcy1zZWxlY3QtYnV0dG9uIj5tYXN0ZXI8L3NwYW4+Cis8L3NwYW4+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LW1vZGFsLWhvbGRlciBqcy1tZW51LWNvbnRlbnQganMtbmF2aWdhdGlvbi1jb250YWluZXIiIGRhdGEtcGpheD0iIj4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtbW9kYWwiPgorPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaGVhZGVyIj4KKzxzcGFuIGNsYXNzPSJzZWxlY3QtbWVudS10aXRsZSI+U3dpdGNoIGJyYW5jaGVzL3RhZ3M8L3NwYW4+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXJlbW92ZS1jbG9zZSBqcy1tZW51LWNsb3NlIj48L3NwYW4+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWhlYWRlciAtLT4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtZmlsdGVycyI+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS10ZXh0LWZpbHRlciI+Cis8aW5wdXQgdHlwZT0idGV4dCIgYXJpYS1sYWJlbD0iRmluZCBvciBjcmVhdGUgYSBicmFuY2jigKYiIGlkPSJjb250ZXh0LWNvbW1pdGlzaC1maWx0ZXItZmllbGQiIGNsYXNzPSJqcy1maWx0ZXJhYmxlLWZpZWxkIGpzLW5hdmlnYXRpb24tZW5hYmxlIiBwbGFjZWhvbGRlcj0iRmluZCBvciBjcmVhdGUgYSBicmFuY2jigKYiPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS10YWJzIj4KKzx1bD4KKzxsaSBjbGFzcz0ic2VsZWN0LW1lbnUtdGFiIj4KKzxhIGhyZWY9IiMiIGRhdGEtdGFiLWZpbHRlcj0iYnJhbmNoZXMiIGNsYXNzPSJqcy1zZWxlY3QtbWVudS10YWIiPkJyYW5jaGVzPC9hPgorPC9saT4KKzxsaSBjbGFzcz0ic2VsZWN0LW1lbnUtdGFiIj4KKzxhIGhyZWY9IiMiIGRhdGEtdGFiLWZpbHRlcj0idGFncyIgY2xhc3M9ImpzLXNlbGVjdC1tZW51LXRhYiI+VGFnczwvYT4KKzwvbGk+Cis8L3VsPgorPC9kaXY+PCEtLSAvLnNlbGVjdC1tZW51LXRhYnMgLS0+Cis8L2Rpdj48IS0tIC8uc2VsZWN0LW1lbnUtZmlsdGVycyAtLT4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtbGlzdCBzZWxlY3QtbWVudS10YWItYnVja2V0IGpzLXNlbGVjdC1tZW51LXRhYi1idWNrZXQiIGRhdGEtdGFiLWZpbHRlcj0iYnJhbmNoZXMiPgorCis8ZGl2IGRhdGEtZmlsdGVyYWJsZS1mb3I9ImNvbnRleHQtY29tbWl0aXNoLWZpbHRlci1maWVsZCIgZGF0YS1maWx0ZXJhYmxlLXR5cGU9InN1YnN0cmluZyI+CisKKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbSBqcy1uYXZpZ2F0aW9uLWl0ZW0gc2VsZWN0ZWQiPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0taWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvdHJlZS9tYXN0ZXIiIGRhdGEtbmFtZT0ibWFzdGVyIiBkYXRhLXNraXAtcGpheD0idHJ1ZSIgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImpzLW5hdmlnYXRpb24tb3BlbiBzZWxlY3QtbWVudS1pdGVtLXRleHQganMtc2VsZWN0LWJ1dHRvbi10ZXh0IGNzcy10cnVuY2F0ZS10YXJnZXQiIHRpdGxlPSJtYXN0ZXIiPm1hc3RlcjwvYT4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtaXRlbSAtLT4KKzwvZGl2PgorCis8Zm9ybSBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGFjdGlvbj0iL2luaWt1bGluL3BhcnNlNS9icmFuY2hlcyIgY2xhc3M9ImpzLWNyZWF0ZS1icmFuY2ggc2VsZWN0LW1lbnUtaXRlbSBzZWxlY3QtbWVudS1uZXctaXRlbS1mb3JtIGpzLW5hdmlnYXRpb24taXRlbSBqcy1uZXctaXRlbS1mb3JtIiBtZXRob2Q9InBvc3QiPjxkaXYgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZSI+PGlucHV0IG5hbWU9ImF1dGhlbnRpY2l0eV90b2tlbiIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iUUNqZFpTUS9hV0dLaU9rbmtzVTNVQWFucGpyNDE1RS9VZjVIUHEwN0R6RT0iPjwvZGl2PgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1naXQtYnJhbmNoLWNyZWF0ZSBzZWxlY3QtbWVudS1pdGVtLWljb24iPjwvc3Bhbj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0tdGV4dCI+Cis8aDQ+Q3JlYXRlIGJyYW5jaDogPHNwYW4gY2xhc3M9ImpzLW5ldy1pdGVtLW5hbWUiPjwvc3Bhbj48L2g0PgorPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5mcm9tIOKAmG1hc3RlcuKAmTwvc3Bhbj4KKzwvZGl2PgorPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibmFtZSIgaWQ9Im5hbWUiIGNsYXNzPSJqcy1uZXctaXRlbS12YWx1ZSI+Cis8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuY2giIGlkPSJicmFuY2giIHZhbHVlPSJtYXN0ZXIiPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgaWQ9InBhdGgiIHZhbHVlPSIiPgorPC9mb3JtPiA8IS0tIC8uc2VsZWN0LW1lbnUtaXRlbSAtLT4KKworPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1saXN0IC0tPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1saXN0IHNlbGVjdC1tZW51LXRhYi1idWNrZXQganMtc2VsZWN0LW1lbnUtdGFiLWJ1Y2tldCIgZGF0YS10YWItZmlsdGVyPSJ0YWdzIj4KKzxkaXYgZGF0YS1maWx0ZXJhYmxlLWZvcj0iY29udGV4dC1jb21taXRpc2gtZmlsdGVyLWZpZWxkIiBkYXRhLWZpbHRlcmFibGUtdHlwZT0ic3Vic3RyaW5nIj4KKworCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtIGpzLW5hdmlnYXRpb24taXRlbSAiPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0taWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvdHJlZS92MC42LjAiIGRhdGEtbmFtZT0idjAuNi4wIiBkYXRhLXNraXAtcGpheD0idHJ1ZSIgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImpzLW5hdmlnYXRpb24tb3BlbiBzZWxlY3QtbWVudS1pdGVtLXRleHQganMtc2VsZWN0LWJ1dHRvbi10ZXh0IGNzcy10cnVuY2F0ZS10YXJnZXQiIHRpdGxlPSJ2MC42LjAiPnYwLjYuMDwvYT4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtaXRlbSAtLT4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0ganMtbmF2aWdhdGlvbi1pdGVtICI+Cis8c3BhbiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS1pY29uIG9jdGljb24gb2N0aWNvbi1jaGVjayI+PC9zcGFuPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS90cmVlLzAuNi4xIiBkYXRhLW5hbWU9IjAuNi4xIiBkYXRhLXNraXAtcGpheD0idHJ1ZSIgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImpzLW5hdmlnYXRpb24tb3BlbiBzZWxlY3QtbWVudS1pdGVtLXRleHQganMtc2VsZWN0LWJ1dHRvbi10ZXh0IGNzcy10cnVuY2F0ZS10YXJnZXQiIHRpdGxlPSIwLjYuMSI+MC42LjE8L2E+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWl0ZW0gLS0+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtbm8tcmVzdWx0cyI+Tm90aGluZyB0byBzaG93PC9kaXY+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWxpc3QgLS0+CisKKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtbW9kYWwgLS0+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LW1vZGFsLWhvbGRlciAtLT4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUgLS0+CisKKworPGRpdiBjbGFzcz0iYnJlYWRjcnVtYiI+PHNwYW4gY2xhc3M9InJlcG8tcm9vdCBqcy1yZXBvLXJvb3QiPjxzcGFuIGl0ZW1zY29wZT0iIiBpdGVtdHlwZT0iaHR0cDovL2RhdGEtdm9jYWJ1bGFyeS5vcmcvQnJlYWRjcnVtYiI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNSIgZGF0YS1icmFuY2g9Im1hc3RlciIgZGF0YS1kaXJlY3Rpb249ImJhY2siIGRhdGEtcGpheD0idHJ1ZSIgaXRlbXNjb3BlPSJ1cmwiPjxzcGFuIGl0ZW1wcm9wPSJ0aXRsZSI+cGFyc2U1PC9zcGFuPjwvYT48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXBhcmF0b3IiPiAvIDwvc3Bhbj48Zm9ybSBhY3Rpb249Ii9pbmlrdWxpbi9wYXJzZTUvbmV3L21hc3RlciIgY2xhc3M9ImpzLW5ldy1ibG9iLWZvcm0gdG9vbHRpcHBlZCByaWdodHdhcmRzIG5ldy1maWxlLWxpbmsiIG1ldGhvZD0icG9zdCIgdGl0bGU9IkNyZWF0ZSBhIG5ldyBmaWxlIGhlcmUiPjxzcGFuIGFyaWEtbGFiZWw9IkNyZWF0ZSBhIG5ldyBmaWxlIGhlcmUiIGNsYXNzPSJqcy1uZXctYmxvYi1zdWJtaXQgb2N0aWNvbiBvY3RpY29uLWZpbGUtYWRkIiBkYXRhLXRlc3QtaWQ9ImNyZWF0ZS1uZXctZ2l0LWZpbGUiIHJvbGU9ImJ1dHRvbiI+PC9zcGFuPjwvZm9ybT48L2Rpdj4KKzwvZGl2PgorCisKKworPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9maW5kL21hc3RlciIgZGF0YS1ob3RrZXk9InQiIGNsYXNzPSJqcy1zaG93LWZpbGUtZmluZGVyIiBzdHlsZT0iZGlzcGxheTpub25lIiBkYXRhLXBqYXg9IiI+U2hvdyBGaWxlIEZpbmRlcjwvYT4KKzxkaXYgY2xhc3M9ImJ1YmJsZSBmaWxlcy1idWJibGUiPgorCisKKzxkaXYgY2xhc3M9ImNvbW1pdCBjb21taXQtdGVhc2UganMtZGV0YWlscy1jb250YWluZXIiPgorPHAgY2xhc3M9ImNvbW1pdC10aXRsZSAiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvMzM5NzIxOTM1MzAwMDNjYmFmMjRjM2NkZGU0YWIyZDNjOTRlZGU2NyIgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGpheD0idHJ1ZSIgdGl0bGU9Imh0bWxwYXJzZXIyIHRyZWUgYWRhcHRlciB0ZXN0ZWQiPmh0bWxwYXJzZXIyIHRyZWUgYWRhcHRlciB0ZXN0ZWQ8L2E+CisKKzwvcD4KKzxkaXYgY2xhc3M9ImNvbW1pdC1tZXRhIj4KKzxzcGFuIGNsYXNzPSJqcy16ZXJvY2xpcGJvYXJkIHplcm9jbGlwYm9hcmQtbGluayIgZGF0YS1jbGlwYm9hcmQtdGV4dD0iMzM5NzIxOTM1MzAwMDNjYmFmMjRjM2NkZGU0YWIyZDNjOTRlZGU2NyIgZGF0YS1jb3BpZWQtaGludD0iY29waWVkISIgdGl0bGU9IkNvcHkgU0hBIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWNsaXBweSI+PC9zcGFuPjwvc3Bhbj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvY29tbWl0LzMzOTcyMTkzNTMwMDAzY2JhZjI0YzNjZGRlNGFiMmQzYzk0ZWRlNjciIGNsYXNzPSJzaGEtYmxvY2siIGRhdGEtcGpheD0iIj5sYXRlc3QgY29tbWl0IDxzcGFuIGNsYXNzPSJzaGEiPjMzOTcyMTkzNTM8L3NwYW4+PC9hPgorCis8ZGl2IGNsYXNzPSJhdXRob3JzaGlwIj4KKzxpbWcgYWx0PSJJdmFuIE5pa3VsaW4iIGNsYXNzPSJncmF2YXRhciIgaGVpZ2h0PSIyMCIgc3JjPSJodHRwczovLzIuZ3JhdmF0YXIuY29tL2F2YXRhci82NGVlNDk3YzRhNTMzMTQ0YTliZjljZTJhNmMwMTBjNT9kPWh0dHBzJTNBJTJGJTJGaWRlbnRpY29ucy5naXRodWIuY29tJTJGOWRkNGRjNTYzNGUzZDNkOTdjN2Q1YTM0YmEyOGI4NTAucG5nJmFtcDtyPXgmYW1wO3M9MTQwIiB3aWR0aD0iMjAiPgorPHNwYW4gY2xhc3M9ImF1dGhvci1uYW1lIj48YSBocmVmPSIvaW5pa3VsaW4iIGRhdGEtc2tpcC1wamF4PSJ0cnVlIiByZWw9ImF1dGhvciI+aW5pa3VsaW48L2E+PC9zcGFuPgorYXV0aG9yZWQgPHRpbWUgY2xhc3M9ImpzLXJlbGF0aXZlLWRhdGUgdXBkYXRlZCIgZGF0ZXRpbWU9IjIwMTQtMDEtMjdUMDI6MDI6NTAtMDg6MDAiIHRpdGxlPSIyMDE0LTAxLTI3IDAyOjAyOjUwIj5KYW51YXJ5IDI3LCAyMDE0PC90aW1lPgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzx0YWJsZSBjbGFzcz0iZmlsZXMiIGRhdGEtcGpheD0iIj4KKworCis8dGJvZHkgY2xhc3M9IiIgZGF0YS11cmw9Ii9pbmlrdWxpbi9wYXJzZTUvZmlsZS1saXN0L21hc3RlciI+Cis8dHI+Cis8dGQgY2xhc3M9Imljb24iPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1maWxlLWRpcmVjdG9yeSI+PC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9InNwaW5uZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiPgorPC90ZD4KKzx0ZCBjbGFzcz0iY29udGVudCI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvdHJlZS9tYXN0ZXIvbGliIiBjbGFzcz0ianMtZGlyZWN0b3J5LWxpbmsiIGlkPSJlOGFjYzYzYjFlMjM4ZjMyNTVjOTAwZWVkMzcyNTRiOC05YzBlMTE5ODJmZWU4ZWM5OTA1MzI4YTBmMTI1NTg4MDg5NWViY2U4IiB0aXRsZT0ibGliIj5saWI8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0ibWVzc2FnZSI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvY29tbWl0LzMzOTcyMTkzNTMwMDAzY2JhZjI0YzNjZGRlNGFiMmQzYzk0ZWRlNjciIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBqYXg9InRydWUiIHRpdGxlPSJodG1scGFyc2VyMiB0cmVlIGFkYXB0ZXIgdGVzdGVkIj5odG1scGFyc2VyMiB0cmVlIGFkYXB0ZXIgdGVzdGVkPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9ImFnZSI+PHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48dGltZSBjbGFzcz0ianMtcmVsYXRpdmUtZGF0ZSIgZGF0ZXRpbWU9IjIwMTQtMDEtMjdUMDI6MDI6NTAtMDg6MDAiIHRpdGxlPSIyMDE0LTAxLTI3IDAyOjAyOjUwIj5KYW51YXJ5IDI3LCAyMDE0PC90aW1lPjwvc3Bhbj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjbGFzcz0iaWNvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWZpbGUtZGlyZWN0b3J5Ij48L3NwYW4+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBjbGFzcz0ic3Bpbm5lciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiI+Cis8L3RkPgorPHRkIGNsYXNzPSJjb250ZW50Ij4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS90cmVlL21hc3Rlci90ZXN0IiBjbGFzcz0ianMtZGlyZWN0b3J5LWxpbmsiIGlkPSIwOThmNmJjZDQ2MjFkMzczY2FkZTRlODMyNjI3YjRmNi1lOGQ0MzI2ODMzYzA4YTY3MzE4NTFlNGY3OWRjOGIzYTE3MmVkMWZjIiB0aXRsZT0idGVzdCI+dGVzdDwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJtZXNzYWdlIj4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvMzM5NzIxOTM1MzAwMDNjYmFmMjRjM2NkZGU0YWIyZDNjOTRlZGU2NyIgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGpheD0idHJ1ZSIgdGl0bGU9Imh0bWxwYXJzZXIyIHRyZWUgYWRhcHRlciB0ZXN0ZWQiPmh0bWxwYXJzZXIyIHRyZWUgYWRhcHRlciB0ZXN0ZWQ8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0iYWdlIj48c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjx0aW1lIGNsYXNzPSJqcy1yZWxhdGl2ZS1kYXRlIiBkYXRldGltZT0iMjAxNC0wMS0yN1QwMjowMjo1MC0wODowMCIgdGl0bGU9IjIwMTQtMDEtMjcgMDI6MDI6NTAiPkphbnVhcnkgMjcsIDIwMTQ8L3RpbWU+PC9zcGFuPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNsYXNzPSJpY29uIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZmlsZS10ZXh0Ij48L3NwYW4+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBjbGFzcz0ic3Bpbm5lciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiI+Cis8L3RkPgorPHRkIGNsYXNzPSJjb250ZW50Ij4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9ibG9iL21hc3Rlci8uZ2l0aWdub3JlIiBjbGFzcz0ianMtZGlyZWN0b3J5LWxpbmsiIGlkPSJhMDg0Yjc5NGJjMDc1OWU3YTZiNzc4MTBlMDE4NzRmMi0wMDk0MzIyMzYxNGRiMWY5YzIzODYyMjc5NTBhM2Q4NDEyMDgxOWY0IiB0aXRsZT0iLmdpdGlnbm9yZSI+LmdpdGlnbm9yZTwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJtZXNzYWdlIj4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvMzNjNTUyMjE0NmYxYjQ4MDU0MjU5ODQ4Y2Y3MTFhZWJiZTEzMzMzNyIgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGpheD0idHJ1ZSIgdGl0bGU9Ik1lcmdlIj5NZXJnZTwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJhZ2UiPjxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PHRpbWUgY2xhc3M9ImpzLXJlbGF0aXZlLWRhdGUiIGRhdGV0aW1lPSIyMDEzLTA3LTE1VDA5OjMzOjE3LTA3OjAwIiB0aXRsZT0iMjAxMy0wNy0xNSAwOTozMzoxNyI+SnVseSAxNSwgMjAxMzwvdGltZT48L3NwYW4+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY2xhc3M9Imljb24iPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1maWxlLXRleHQiPjwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJzcGlubmVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2Ij4KKzwvdGQ+Cis8dGQgY2xhc3M9ImNvbnRlbnQiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2Jsb2IvbWFzdGVyL0xJQ0VOU0UiIGNsYXNzPSJqcy1kaXJlY3RvcnktbGluayIgaWQ9Ijk4NzlkNmRiOTZmZDI5MTM0ZmM4MDIyMTQxNjNiOTVhLTZjNjMwYTA4NzFlODIzOTc2MTgxM2FjMDc0YzE3ODgyMDYwYjczYTYiIHRpdGxlPSJMSUNFTlNFIj5MSUNFTlNFPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9Im1lc3NhZ2UiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2NvbW1pdC8zM2M1NTIyMTQ2ZjFiNDgwNTQyNTk4NDhjZjcxMWFlYmJlMTMzMzM3IiBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wamF4PSJ0cnVlIiB0aXRsZT0iTWVyZ2UiPk1lcmdlPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9ImFnZSI+PHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48dGltZSBjbGFzcz0ianMtcmVsYXRpdmUtZGF0ZSIgZGF0ZXRpbWU9IjIwMTMtMDctMTVUMDk6MzM6MTctMDc6MDAiIHRpdGxlPSIyMDEzLTA3LTE1IDA5OjMzOjE3Ij5KdWx5IDE1LCAyMDEzPC90aW1lPjwvc3Bhbj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjbGFzcz0iaWNvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWZpbGUtdGV4dCI+PC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9InNwaW5uZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiPgorPC90ZD4KKzx0ZCBjbGFzcz0iY29udGVudCI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiBjbGFzcz0ianMtZGlyZWN0b3J5LWxpbmsiIGlkPSIwNGM2ZTkwZmFhYzI2NzVhYTg5ZTIxNzZkMmVlYzdkOC00MTQyMDJlMTc5OTkwOGQ3NzI3ZWZiY2JiOWZlMmU1OGVmNDJkMTE0IiB0aXRsZT0iUkVBRE1FLm1kIj5SRUFETUUubWQ8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0ibWVzc2FnZSI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvY29tbWl0LzZjNTQxNDk4ZDMyM2NjNjEzMGQwOThmMjQyZWJjMTAxMzJhZDFlYWEiIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBqYXg9InRydWUiIHRpdGxlPSJBZGQgYSBCaXRkZWxpIGJhZGdlIHRvIFJFQURNRSI+QWRkIGEgQml0ZGVsaSBiYWRnZSB0byBSRUFETUU8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0iYWdlIj48c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjx0aW1lIGNsYXNzPSJqcy1yZWxhdGl2ZS1kYXRlIiBkYXRldGltZT0iMjAxMy0xMi0xMFQwNzozMzozMS0wODowMCIgdGl0bGU9IjIwMTMtMTItMTAgMDc6MzM6MzEiPkRlY2VtYmVyIDEwLCAyMDEzPC90aW1lPjwvc3Bhbj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjbGFzcz0iaWNvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWZpbGUtdGV4dCI+PC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9InNwaW5uZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiPgorPC90ZD4KKzx0ZCBjbGFzcz0iY29udGVudCI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvYmxvYi9tYXN0ZXIvaW5kZXguanMiIGNsYXNzPSJqcy1kaXJlY3RvcnktbGluayIgaWQ9IjE2ODcyNmRiZTk2YjNjZTQyN2U3ZmVkY2UzMWJiMGJjLTQyM2I5YTE1MTFlMGU4ZDhlNDM0MzRmZWJjYmNjY2E2MjY3MWRmMTkiIHRpdGxlPSJpbmRleC5qcyI+aW5kZXguanM8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0ibWVzc2FnZSI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvY29tbWl0L2U3YWY0Mzc0MTA4Mjc2Nzk2YTk5OTFkNDkyNzg0MjllYjMzMjkzYWIiIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBqYXg9InRydWUiIHRpdGxlPSJJbXBsZW1lbnRhdGlvbiBvZiB0aGUgaHRtbHBhcnNlcjIgdHJlZSBzdXBwb3J0IHN0YXJ0ZWQiPkltcGxlbWVudGF0aW9uIG9mIHRoZSBodG1scGFyc2VyMiB0cmVlIHN1cHBvcnQgc3RhcnRlZDwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJhZ2UiPjxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PHRpbWUgY2xhc3M9ImpzLXJlbGF0aXZlLWRhdGUiIGRhdGV0aW1lPSIyMDE0LTAxLTI0VDA0OjExOjUyLTA4OjAwIiB0aXRsZT0iMjAxNC0wMS0yNCAwNDoxMTo1MiI+SmFudWFyeSAyNCwgMjAxNDwvdGltZT48L3NwYW4+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY2xhc3M9Imljb24iPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1maWxlLXRleHQiPjwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJzcGlubmVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2Ij4KKzwvdGQ+Cis8dGQgY2xhc3M9ImNvbnRlbnQiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2Jsb2IvbWFzdGVyL3BhY2thZ2UuanNvbiIgY2xhc3M9ImpzLWRpcmVjdG9yeS1saW5rIiBpZD0iYjljZmM3ZjJjZGY3OGE3ZjRiOTFhNzUzZDEwODY1YTItOTkzOTdhMWRkMzEzMzJiOWE2NGQ5YWY5Y2YzMmI3MzQwYTYwMGY5MiIgdGl0bGU9InBhY2thZ2UuanNvbiI+cGFja2FnZS5qc29uPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9Im1lc3NhZ2UiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2NvbW1pdC9iOGQ1NjI1Nzg5NzM1N2U2NTVhNzFiYTIxZDRiZDQwZTEyYjMzMjMwIiBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wamF4PSJ0cnVlIiB0aXRsZT0iRXhwb3NlIFRva2VuaXplciI+RXhwb3NlIFRva2VuaXplcjwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJhZ2UiPjxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PHRpbWUgY2xhc3M9ImpzLXJlbGF0aXZlLWRhdGUiIGRhdGV0aW1lPSIyMDE0LTAxLTI0VDAxOjI3OjQzLTA4OjAwIiB0aXRsZT0iMjAxNC0wMS0yNCAwMToyNzo0MyI+SmFudWFyeSAyNCwgMjAxNDwvdGltZT48L3NwYW4+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorCis8L3RhYmxlPgorPC9kaXY+CisKKzxkaXYgaWQ9InJlYWRtZSIgY2xhc3M9ImNsZWFyZml4IGFubm91bmNlIGluc3RhcGFwZXJfYm9keSBtZCI+Cis8c3BhbiBjbGFzcz0ibmFtZSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWJvb2siPjwvc3Bhbj4KK1JFQURNRS5tZAorPC9zcGFuPgorCis8YXJ0aWNsZSBjbGFzcz0ibWFya2Rvd24tYm9keSBlbnRyeS1jb250ZW50IiBpdGVtcHJvcD0ibWFpbkNvbnRlbnRPZlBhZ2UiPjxoMT4KKzxhIG5hbWU9InBhcnNlNSIgY2xhc3M9ImFuY2hvciIgaHJlZj0iI3BhcnNlNSI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIj48L3NwYW4+PC9hPnBhcnNlNTwvaDE+CisKKzxwPkZhc3QgZnVsbC1mZWF0dXJlZCBIVE1MIHBhcnNlciBmb3IgTm9kZS4gQmFzZWQgb24gV0hBVFdHIEhUTUw1IHNwZWNpZmljYXRpb24uPGJyPgorVG8gYnVpbGQgPGEgaHJlZj0iaHR0cDovL3Rlc3RjYWZlLmRldmV4cHJlc3MuY29tLyI+VGVzdENhZsOpPC9hPiB3ZSBuZWVkZWQgZmFzdCBhbmQgcmVhZHkgZm9yIHByb2R1Y3Rpb24gSFRNTCBwYXJzZXIgZm9yIG5vZGUuanMsIHdoaWNoIHdpbGwgcGFyc2UgSFRNTCBhcyBhIG1vZGVybiBicm93c2VyJ3MgcGFyc2VyLgorRXhpc3Rpbmcgc29sdXRpb25zIHdlcmUgZWl0aGVyIHRvbyBzbG93IG9yIHRoZWlyIG91dHB1dCB3YXMgdG9vIGluYWNjdXJhdGUuIFNvLCB0aGlzIGlzIGhvdyBwYXJzZTUgd2FzIGJvcm4uPC9wPgorCis8aDI+Cis8YSBuYW1lPSJpbnN0YWxsIiBjbGFzcz0iYW5jaG9yIiBocmVmPSIjaW5zdGFsbCI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIj48L3NwYW4+PC9hPkluc3RhbGw8L2gyPgorCis8cHJlPjxjb2RlPiQgbnBtIGluc3RhbGwgcGFyc2U1Cis8L2NvZGU+PC9wcmU+CisKKzxoMj4KKzxhIG5hbWU9InVzYWdlLWFuZC1hcGkiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiN1c2FnZS1hbmQtYXBpIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+VXNhZ2UgYW5kIEFQSTwvaDI+CisKKzxkaXYgY2xhc3M9ImhpZ2hsaWdodCBoaWdobGlnaHQtanMiPjxwcmU+PHNwYW4gY2xhc3M9ImtkIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+UGFyc2VyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibyI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im54Ij5yZXF1aXJlPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzMSI+J3BhcnNlNSc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPikuPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+UGFyc2VyPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgorCis8c3BhbiBjbGFzcz0iYzEiPi8vSW5zdGFudGlhdGUgcGFyc2VyPC9zcGFuPgorPHNwYW4gY2xhc3M9ImtkIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+cGFyc2VyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibyI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImsiPm5ldzwvc3Bhbj4gPHNwYW4gY2xhc3M9Im54Ij5QYXJzZXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPigpOzwvc3Bhbj4KKworPHNwYW4gY2xhc3M9ImMxIj4vL1RoZW4gZmVlZCBpdCB3aXRoIGFuIEhUTUwgZG9jdW1lbnQ8L3NwYW4+Cis8c3BhbiBjbGFzcz0ia2QiPnZhcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj5kb2N1bWVudDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+cGFyc2VyPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+cGFyc2U8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9InMxIj4nJmx0OyFET0NUWVBFIGh0bWwmZ3Q7Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7Jmx0Oy9oZWFkJmd0OyZsdDtib2R5Jmd0O0hpIHRoZXJlISZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7Jzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTwvc3Bhbj4KKworPHNwYW4gY2xhc3M9ImMxIj4vL05vdyBsZXQncyBwYXJzZSBIVE1MLXNuaXBwZXQ8L3NwYW4+Cis8c3BhbiBjbGFzcz0ia2QiPnZhcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im54Ij5mcmFnbWVudDwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+cGFyc2VyPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+cGFyc2VGcmFnbWVudDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iczEiPicmbHQ7dGl0bGUmZ3Q7UGFyc2U1IGlzICZhbXA7IzEwMjsmYW1wOyMxMTc7JmFtcDsjOTk7JmFtcDsjMTA3O2luZyBhd2Vzb21lISZsdDsvdGl0bGUmZ3Q7Jmx0O2gxJmd0OzQyJmx0Oy9oMSZndDsnPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pOzwvc3Bhbj4KKworPC9wcmU+PC9kaXY+CisKKzxoMj4KKzxhIG5hbWU9ImlzLWl0LWZhc3QiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiNpcy1pdC1mYXN0Ij48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+SXMgaXQgZmFzdD88L2gyPgorCis8cD5DaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL25vZGUtaHRtbC1wYXJzZXItYmVuY2giPnRoaXMgYmVuY2htYXJrPC9hPi48L3A+CisKKzxwcmU+PGNvZGU+U3RhcnRpbmcgYmVuY2htYXJrLiBGYXN0ZW4geW91ciBzZWF0YmVsdHMuLi4KK2h0bWw1IChodHRwczovL2dpdGh1Yi5jb20vYXJlZHJpZGVsL2h0bWw1KSB4IDAuMTggb3BzL3NlYyDCsTUuOTIlICg1IHJ1bnMgc2FtcGxlZCkKK2h0bWxwYXJzZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS90YXV0b2xvZ2lzdGljcy9ub2RlLWh0bWxwYXJzZXIvKSB4IDMuODMgb3BzL3NlYyDCsTQyLjQzJSAoMTQgcnVucyBzYW1wbGVkKQoraHRtbHBhcnNlcjIgKGh0dHBzOi8vZ2l0aHViLmNvbS9mYjU1L2h0bWxwYXJzZXIyKSB4IDQuMDUgb3BzL3NlYyDCsTM5LjI3JSAoMTUgcnVucyBzYW1wbGVkKQorcGFyc2U1IChodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1KSB4IDMuMDQgb3BzL3NlYyDCsTUxLjgxJSAoMTMgcnVucyBzYW1wbGVkKQorRmFzdGVzdCBpcyBodG1scGFyc2VyMiAoaHR0cHM6Ly9naXRodWIuY29tL2ZiNTUvaHRtbHBhcnNlcjIpLHBhcnNlNSAoaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNSkKKzwvY29kZT48L3ByZT4KKworPHA+U28sIHBhcnNlNSBpcyBhcyBmYXN0IGFzIHNpbXBsZSBzcGVjaWZpY2F0aW9uIGluY29tcGF0aWJsZSBwYXJzZXJzIGFuZCB+MTUtdGltZXMoISkgZmFzdGVyIHRoYW4gdGhlIGN1cnJlbnQgc3BlY2lmaWNhdGlvbiBjb21wYXRpYmxlIHBhcnNlciBhdmFpbGFibGUgZm9yIHRoZSBub2RlLjwvcD4KKworPGgyPgorPGEgbmFtZT0idGVzdGluZyIgY2xhc3M9ImFuY2hvciIgaHJlZj0iI3Rlc3RpbmciPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwvYT5UZXN0aW5nPC9oMj4KKworPHA+VGVzdCBkYXRhIGlzIGFkb3B0ZWQgZnJvbSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIiPmh0bWw1bGliIHByb2plY3Q8L2E+LiBQYXJzZXIgaXMgY292ZXJlZCBieSBtb3JlIHRoYW4gODAwMCB0ZXN0IGNhc2VzLgorVG8gcnVuIHRlc3RzOjwvcD4KKworPHByZT48Y29kZT4kIG5vZGUgdGVzdC9ydW5fdGVzdHMuanMKKzwvY29kZT48L3ByZT4KKworPGgyPgorPGEgbmFtZT0iY3VzdG9tLXRyZWUtYWRhcHRlciIgY2xhc3M9ImFuY2hvciIgaHJlZj0iI2N1c3RvbS10cmVlLWFkYXB0ZXIiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwvYT5DdXN0b20gdHJlZSBhZGFwdGVyPC9oMj4KKworPHA+WW91IGNhbiBjcmVhdGUgYSBjdXN0b20gdHJlZSBhZGFwdGVyIHNvIHBhcnNlNSBjYW4gd29yayB3aXRoIHlvdXIgb3duIERPTS10cmVlIGltcGxlbWVudGF0aW9uLgorSnVzdCBwYXNzIHlvdXIgYWRhcHRlciBpbXBsZW1lbnRhdGlvbiB0byB0aGUgcGFyc2VyJ3MgY29uc3RydWN0b3IgYXMgYW4gYXJndW1lbnQ6PC9wPgorCis8ZGl2IGNsYXNzPSJoaWdobGlnaHQgaGlnaGxpZ2h0LWpzIj48cHJlPjxzcGFuIGNsYXNzPSJrZCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPlBhcnNlcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+cmVxdWlyZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iczEiPidwYXJzZTUnPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pLjwvc3Bhbj48c3BhbiBjbGFzcz0ibngiPlBhcnNlcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KKworPHNwYW4gY2xhc3M9ImtkIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+bXlUcmVlQWRhcHRlcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgorPHNwYW4gY2xhc3M9ImMxIj4vL0FkYXB0ZXIgbWV0aG9kcy4uLjwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJwIj59Ozwvc3Bhbj4KKworPHNwYW4gY2xhc3M9ImMxIj4vL0luc3RhbnRpYXRlIHBhcnNlcjwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJrZCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPnBhcnNlcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJrIj5uZXc8L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+UGFyc2VyPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJueCI+bXlUcmVlQWRhcHRlcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTs8L3NwYW4+Cis8L3ByZT48L2Rpdj4KKworPHA+U2FtcGxlIGltcGxlbWVudGF0aW9uIGNhbiBiZSBmb3VuZCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2Jsb2IvbWFzdGVyL2xpYi9kZWZhdWx0X3RyZWVfYWRhcHRlci5qcyI+aGVyZTwvYT4uCitUaGUgY3VzdG9tIHRyZWUgYWRhcHRlciBzaG91bGQgaW1wbGVtZW50IGFsbCBtZXRob2RzIGV4cG9zZWQgdmlhIDxjb2RlPmV4cG9ydHM8L2NvZGU+IGluIHRoZSBzYW1wbGUgaW1wbGVtZW50YXRpb24uPC9wPgorCis8aDI+Cis8YSBuYW1lPSJxdWVzdGlvbnMtb3Itc3VnZ2VzdGlvbnMiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiNxdWVzdGlvbnMtb3Itc3VnZ2VzdGlvbnMiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwvYT5RdWVzdGlvbnMgb3Igc3VnZ2VzdGlvbnM/PC9oMj4KKworPHA+SWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucywgcGxlYXNlIGZlZWwgZnJlZSB0byBjcmVhdGUgYW4gaXNzdWUgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMiPmhlcmUgb24gZ2l0aHViPC9hPi48L3A+CisKKzxoMj4KKzxhIG5hbWU9ImF1dGhvciIgY2xhc3M9ImFuY2hvciIgaHJlZj0iI2F1dGhvciI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIj48L3NwYW4+PC9hPkF1dGhvcjwvaDI+CisKKzxwPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbiI+SXZhbiBOaWt1bGluPC9hPiAoPGEgaHJlZj0ibWFpbHRvOmlmYWFhbkBnbWFpbC5jb20iPmlmYWFhbkBnbWFpbC5jb208L2E+KTwvcD4KKworPHA+PGEgaHJlZj0iaHR0cHM6Ly9iaXRkZWxpLmNvbS9mcmVlIiB0aXRsZT0iQml0ZGVsaSBCYWRnZSI+PGltZyBzcmM9Imh0dHBzOi8vZDJ3ZWN6aHZsODIzdjAuY2xvdWRmcm9udC5uZXQvaW5pa3VsaW4vcGFyc2U1L3RyZW5kLnBuZyIgYWx0PSJCaXRkZWxpIEJhZGdlIiBzdHlsZT0ibWF4LXdpZHRoOjEwMCU7Ij48L2E+PC9wPjwvYXJ0aWNsZT4KKzwvZGl2PgorCisKKzwvZGl2PgorCis8L2Rpdj48IS0tIC8ucmVwby1jb250YWluZXIgLS0+Cis8ZGl2IGNsYXNzPSJtb2RhbC1iYWNrZHJvcCI+PC9kaXY+Cis8L2Rpdj48IS0tIC8uY29udGFpbmVyIC0tPgorPC9kaXY+PCEtLSAvLnNpdGUgLS0+CisKKworPC9kaXY+PCEtLSAvLndyYXBwZXIgLS0+CisKKzxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cis8ZGl2IGNsYXNzPSJzaXRlLWZvb3RlciI+Cis8dWwgY2xhc3M9InNpdGUtZm9vdGVyLWxpbmtzIHJpZ2h0Ij4KKzxsaT48YSBocmVmPSJodHRwczovL3N0YXR1cy5naXRodWIuY29tLyI+U3RhdHVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci5naXRodWIuY29tIj5BUEk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vdHJhaW5pbmcuZ2l0aHViLmNvbSI+VHJhaW5pbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwOi8vc2hvcC5naXRodWIuY29tIj5TaG9wPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL2Jsb2ciPkJsb2c8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvYWJvdXQiPkFib3V0PC9hPjwvbGk+CisKKzwvdWw+CisKKzxhIGhyZWY9Ii8iPgorPHNwYW4gY2xhc3M9Im1lZ2Etb2N0aWNvbiBvY3RpY29uLW1hcmstZ2l0aHViIiB0aXRsZT0iR2l0SHViIj48L3NwYW4+Cis8L2E+CisKKzx1bCBjbGFzcz0ic2l0ZS1mb290ZXItbGlua3MiPgorPGxpPsKpIDIwMTQgPHNwYW4gdGl0bGU9IjAuMDQ2NDlzIGZyb20gZ2l0aHViLWZlMTM5LWNwMS1wcmQuaWFkLmdpdGh1Yi5uZXQiPkdpdEh1Yjwvc3Bhbj4sIEluYy48L2xpPgorPGxpPjxhIGhyZWY9Ii9zaXRlL3Rlcm1zIj5UZXJtczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii9zaXRlL3ByaXZhY3kiPlByaXZhY3k8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvc2VjdXJpdHkiPlNlY3VyaXR5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL2NvbnRhY3QiPkNvbnRhY3Q8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj48IS0tIC8uc2l0ZS1mb290ZXIgLS0+Cis8L2Rpdj48IS0tIC8uY29udGFpbmVyIC0tPgorCisKKzxkaXYgY2xhc3M9ImZ1bGxzY3JlZW4tb3ZlcmxheSBqcy1mdWxsc2NyZWVuLW92ZXJsYXkiIGlkPSJmdWxsc2NyZWVuX292ZXJsYXkiPgorPGRpdiBjbGFzcz0iZnVsbHNjcmVlbi1jb250YWluZXIganMtZnVsbHNjcmVlbi1jb250YWluZXIiPgorPGRpdiBjbGFzcz0idGV4dGFyZWEtd3JhcCI+Cis8dGV4dGFyZWEgbmFtZT0iZnVsbHNjcmVlbi1jb250ZW50cyIgaWQ9ImZ1bGxzY3JlZW4tY29udGVudHMiIGNsYXNzPSJqcy1mdWxsc2NyZWVuLWNvbnRlbnRzIiBwbGFjZWhvbGRlcj0iIiBkYXRhLXN1Z2dlc3Rlcj0iZnVsbHNjcmVlbl9zdWdnZXN0ZXIiPjwvdGV4dGFyZWE+Cis8ZGl2IGNsYXNzPSJzdWdnZXN0ZXItY29udGFpbmVyIj4KKzxkaXYgY2xhc3M9InN1Z2dlc3RlciBmdWxsc2NyZWVuLXN1Z2dlc3RlciBqcy1uYXZpZ2F0aW9uLWNvbnRhaW5lciIgaWQ9ImZ1bGxzY3JlZW5fc3VnZ2VzdGVyIiBkYXRhLXVybD0iL2luaWt1bGluL3BhcnNlNS9zdWdnZXN0aW9ucy9jb21taXQiPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJmdWxsc2NyZWVuLXNpZGViYXIiPgorPGEgaHJlZj0iIyIgY2xhc3M9ImV4aXQtZnVsbHNjcmVlbiBqcy1leGl0LWZ1bGxzY3JlZW4gdG9vbHRpcHBlZCBsZWZ0d2FyZHMiIHRpdGxlPSJFeGl0IFplbiBNb2RlIj4KKzxzcGFuIGNsYXNzPSJtZWdhLW9jdGljb24gb2N0aWNvbi1zY3JlZW4tbm9ybWFsIj48L3NwYW4+Cis8L2E+Cis8YSBocmVmPSIjIiBjbGFzcz0idGhlbWUtc3dpdGNoZXIganMtdGhlbWUtc3dpdGNoZXIgdG9vbHRpcHBlZCBsZWZ0d2FyZHMiIHRpdGxlPSJTd2l0Y2ggdGhlbWVzIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tY29sb3ItbW9kZSI+PC9zcGFuPgorPC9hPgorPC9kaXY+Cis8L2Rpdj4KKworCisKKzxkaXYgaWQ9ImFqYXgtZXJyb3ItbWVzc2FnZSIgY2xhc3M9ImZsYXNoIGZsYXNoLWVycm9yIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tYWxlcnQiPjwvc3Bhbj4KKzxhIGhyZWY9IiMiIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcmVtb3ZlLWNsb3NlIGNsb3NlIGpzLWFqYXgtZXJyb3ItZGlzbWlzcyI+PC9hPgorU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGF0IHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4uCis8L2Rpdj4KKworCisKKworPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2VyaWFsaXphdGlvbi9naXRodWJfcGFyc2U1L3NyYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vZ2l0aHViX3BhcnNlNS9zcmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2IxOTE1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vZ2l0aHViX3BhcnNlNS9zcmMuaHRtbApAQCAtMCwwICsxLDk4MiBAQAorCisKKworCisKKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkIHByZWZpeD0ib2c6IGh0dHA6Ly9vZ3AubWUvbnMjIGZiOiBodHRwOi8vb2dwLm1lL25zL2ZiIyBvYmplY3Q6IGh0dHA6Ly9vZ3AubWUvbnMvb2JqZWN0IyBhcnRpY2xlOiBodHRwOi8vb2dwLm1lL25zL2FydGljbGUjIHByb2ZpbGU6IGh0dHA6Ly9vZ3AubWUvbnMvcHJvZmlsZSMiPgorPG1ldGEgY2hhcnNldD0ndXRmLTgnPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KKzx0aXRsZT5pbmlrdWxpbi9wYXJzZTU8L3RpdGxlPgorPGxpbmsgcmVsPSJzZWFyY2giIHR5cGU9ImFwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwiIGhyZWY9Ii9vcGVuc2VhcmNoLnhtbCIgdGl0bGU9IkdpdEh1YiIgLz4KKzxsaW5rIHJlbD0iZmx1aWQtaWNvbiIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ZsdWlkaWNvbi5wbmciIHRpdGxlPSJHaXRIdWIiIC8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI1N3g1NyIgaHJlZj0iL2FwcGxlLXRvdWNoLWljb24tMTE0LnBuZyIgLz4KKzxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjExNHgxMTQiIGhyZWY9Ii9hcHBsZS10b3VjaC1pY29uLTExNC5wbmciIC8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iL2FwcGxlLXRvdWNoLWljb24tMTQ0LnBuZyIgLz4KKzxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjE0NHgxNDQiIGhyZWY9Ii9hcHBsZS10b3VjaC1pY29uLTE0NC5wbmciIC8+Cis8bWV0YSBwcm9wZXJ0eT0iZmI6YXBwX2lkIiBjb250ZW50PSIxNDAxNDg4NjkzNDM2NTI4Ii8+Cis8bWV0YSBjb250ZW50PSJAZ2l0aHViIiBuYW1lPSJ0d2l0dGVyOnNpdGUiIC8+PG1ldGEgY29udGVudD0ic3VtbWFyeSIgbmFtZT0idHdpdHRlcjpjYXJkIiAvPjxtZXRhIGNvbnRlbnQ9ImluaWt1bGluL3BhcnNlNSIgbmFtZT0idHdpdHRlcjp0aXRsZSIgLz48bWV0YSBjb250ZW50PSJwYXJzZTUgLSBGYXN0IGZ1bGwtZmVhdHVyZWQgSFRNTCBwYXJzZXIgZm9yIE5vZGUuIEJhc2VkIG9uIFdIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLiIgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgLz48bWV0YSBjb250ZW50PSJodHRwczovLzAuZ3JhdmF0YXIuY29tL2F2YXRhci82NGVlNDk3YzRhNTMzMTQ0YTliZjljZTJhNmMwMTBjNT9kPWh0dHBzJTNBJTJGJTJGaWRlbnRpY29ucy5naXRodWIuY29tJTJGOWRkNGRjNTYzNGUzZDNkOTdjN2Q1YTM0YmEyOGI4NTAucG5nJmFtcDtyPXgmYW1wO3M9NDAwIiBuYW1lPSJ0d2l0dGVyOmltYWdlOnNyYyIgLz4KKzxtZXRhIGNvbnRlbnQ9IkdpdEh1YiIgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgLz48bWV0YSBjb250ZW50PSJvYmplY3QiIHByb3BlcnR5PSJvZzp0eXBlIiAvPjxtZXRhIGNvbnRlbnQ9Imh0dHBzOi8vMC5ncmF2YXRhci5jb20vYXZhdGFyLzY0ZWU0OTdjNGE1MzMxNDRhOWJmOWNlMmE2YzAxMGM1P2Q9aHR0cHMlM0ElMkYlMkZpZGVudGljb25zLmdpdGh1Yi5jb20lMkY5ZGQ0ZGM1NjM0ZTNkM2Q5N2M3ZDVhMzRiYTI4Yjg1MC5wbmcmYW1wO3I9eCZhbXA7cz00MDAiIHByb3BlcnR5PSJvZzppbWFnZSIgLz48bWV0YSBjb250ZW50PSJpbmlrdWxpbi9wYXJzZTUiIHByb3BlcnR5PSJvZzp0aXRsZSIgLz48bWV0YSBjb250ZW50PSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1IiBwcm9wZXJ0eT0ib2c6dXJsIiAvPjxtZXRhIGNvbnRlbnQ9InBhcnNlNSAtIEZhc3QgZnVsbC1mZWF0dXJlZCBIVE1MIHBhcnNlciBmb3IgTm9kZS4gQmFzZWQgb24gV0hBVFdHIEhUTUw1IHNwZWNpZmljYXRpb24uIiBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIC8+CisKKzxtZXRhIG5hbWU9Imhvc3RuYW1lIiBjb250ZW50PSJnaXRodWItZmUxMzktY3AxLXByZC5pYWQuZ2l0aHViLm5ldCI+Cis8bWV0YSBuYW1lPSJydWJ5IiBjb250ZW50PSJydWJ5IDIuMS4wcDAtZ2l0aHViLXRjbWFsbG9jICg2MDEzOTU4MWUxKSBbeDg2XzY0LWxpbnV4XSI+Cis8bGluayByZWw9ImFzc2V0cyIgaHJlZj0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0LyI+Cis8bGluayByZWw9ImNvbmR1aXQteGhyIiBocmVmPSJodHRwczovL2doY29uZHVpdC5jb206MjUwMzUvIj4KKzxsaW5rIHJlbD0ieGhyLXNvY2tldCIgaHJlZj0iL19zb2NrZXRzIiAvPgorCisKKworPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlSW1hZ2UiIGNvbnRlbnQ9Ii93aW5kb3dzLXRpbGUucG5nIiAvPgorPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlQ29sb3IiIGNvbnRlbnQ9IiNmZmZmZmYiIC8+Cis8bWV0YSBuYW1lPSJzZWxlY3RlZC1saW5rIiB2YWx1ZT0icmVwb19zb3VyY2UiIGRhdGEtcGpheC10cmFuc2llbnQgLz4KKzxtZXRhIGNvbnRlbnQ9ImNvbGxlY3Rvci5naXRodWJhcHAuY29tIiBuYW1lPSJvY3RvbHl0aWNzLWhvc3QiIC8+PG1ldGEgY29udGVudD0iY29sbGVjdG9yLWNkbi5naXRodWIuY29tIiBuYW1lPSJvY3RvbHl0aWNzLXNjcmlwdC1ob3N0IiAvPjxtZXRhIGNvbnRlbnQ9ImdpdGh1YiIgbmFtZT0ib2N0b2x5dGljcy1hcHAtaWQiIC8+PG1ldGEgY29udGVudD0iQkM4MDI0NTA6NzdCODoxQkVGQkJCOjUyRTdCMEFEIiBuYW1lPSJvY3RvbHl0aWNzLWRpbWVuc2lvbi1yZXF1ZXN0X2lkIiAvPjxtZXRhIGNvbnRlbnQ9IjQ1MzA3MSIgbmFtZT0ib2N0b2x5dGljcy1hY3Rvci1pZCIgLz48bWV0YSBjb250ZW50PSJpbmlrdWxpbiIgbmFtZT0ib2N0b2x5dGljcy1hY3Rvci1sb2dpbiIgLz48bWV0YSBjb250ZW50PSJkY2QyOTJlNGY1YTE0ZmNjYTkwNDdlYzU5MjgxODZiZWYyOTI1Yjc4ZjU3NGFlODljNmJlOTljMDk5Njk1MDkzIiBuYW1lPSJvY3RvbHl0aWNzLWFjdG9yLWhhc2giIC8+CisKKworCisKKzxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSIvZmF2aWNvbi5pY28iIC8+CisKKzxtZXRhIGNvbnRlbnQ9ImF1dGhlbnRpY2l0eV90b2tlbiIgbmFtZT0iY3NyZi1wYXJhbSIgLz4KKzxtZXRhIGNvbnRlbnQ9IlFDamRaU1EvYVdHS2lPa25rc1UzVUFhbnBqcjQxNUUvVWY1SFBxMDdEekU9IiBuYW1lPSJjc3JmLXRva2VuIiAvPgorCis8bGluayBocmVmPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvYXNzZXRzL2dpdGh1Yi04OTRiMDVjMzhjMmRjYzkyNDExNWM1YTY4NWI1MTRmMGVkMTFlY2JlLmNzcyIgbWVkaWE9ImFsbCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKzxsaW5rIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9hc3NldHMvZ2l0aHViMi0xMGY3YjY5OTliYTA1NDNlYWE4NmI5ZmU1ODI0NDVmMGVlNzQ3NzQxLmNzcyIgbWVkaWE9ImFsbCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKworCisKKzxzY3JpcHQgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvYXNzZXRzL2ZyYW1ld29ya3MtMjA4NmI3NjM5NmQ3MDE4YWNmMzkwNDU3MzU3YjE0MTIxZjNlMTZmMy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgYXN5bmM9ImFzeW5jIiBkZWZlcj0iZGVmZXIiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2Fzc2V0cy9naXRodWItNGYzZmVhMDJhYzEzYzdmNzVmMGU4NTMwZTA5OTZlOTBjNmU3ODE5NC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKworPG1ldGEgaHR0cC1lcXVpdj0ieC1wamF4LXZlcnNpb24iIGNvbnRlbnQ9ImMzNjBkNzNhMDhlZjk5YWQxMjM3NGE0YzE3Njg5NDYxIj4KKworCis8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0icGFyc2U1IC0gRmFzdCBmdWxsLWZlYXR1cmVkIEhUTUwgcGFyc2VyIGZvciBOb2RlLiBCYXNlZCBvbiBXSEFUV0cgSFRNTDUgc3BlY2lmaWNhdGlvbi4iIC8+CisKKzxtZXRhIGNvbnRlbnQ9IjQ1MzA3MSIgbmFtZT0ib2N0b2x5dGljcy1kaW1lbnNpb24tdXNlcl9pZCIgLz48bWV0YSBjb250ZW50PSJpbmlrdWxpbiIgbmFtZT0ib2N0b2x5dGljcy1kaW1lbnNpb24tdXNlcl9sb2dpbiIgLz48bWV0YSBjb250ZW50PSI4ODYyNTkzIiBuYW1lPSJvY3RvbHl0aWNzLWRpbWVuc2lvbi1yZXBvc2l0b3J5X2lkIiAvPjxtZXRhIGNvbnRlbnQ9ImluaWt1bGluL3BhcnNlNSIgbmFtZT0ib2N0b2x5dGljcy1kaW1lbnNpb24tcmVwb3NpdG9yeV9ud28iIC8+PG1ldGEgY29udGVudD0idHJ1ZSIgbmFtZT0ib2N0b2x5dGljcy1kaW1lbnNpb24tcmVwb3NpdG9yeV9wdWJsaWMiIC8+PG1ldGEgY29udGVudD0iZmFsc2UiIG5hbWU9Im9jdG9seXRpY3MtZGltZW5zaW9uLXJlcG9zaXRvcnlfaXNfZm9yayIgLz48bWV0YSBjb250ZW50PSI4ODYyNTkzIiBuYW1lPSJvY3RvbHl0aWNzLWRpbWVuc2lvbi1yZXBvc2l0b3J5X25ldHdvcmtfcm9vdF9pZCIgLz48bWV0YSBjb250ZW50PSJpbmlrdWxpbi9wYXJzZTUiIG5hbWU9Im9jdG9seXRpY3MtZGltZW5zaW9uLXJlcG9zaXRvcnlfbmV0d29ya19yb290X253byIgLz4KKzxsaW5rIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvY29tbWl0cy9tYXN0ZXIuYXRvbSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJSZWNlbnQgQ29tbWl0cyB0byBwYXJzZTU6bWFzdGVyIiB0eXBlPSJhcHBsaWNhdGlvbi9hdG9tK3htbCIgLz4KKworPC9oZWFkPgorCisKKzxib2R5IGNsYXNzPSJsb2dnZWRfaW4gIGVudi1wcm9kdWN0aW9uIHdpbmRvd3MgdmlzLXB1YmxpYyI+Cis8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKworCisKKworCisKKzxkaXYgY2xhc3M9ImhlYWRlciBoZWFkZXItbG9nZ2VkLWluIHRydWUiPgorPGRpdiBjbGFzcz0iY29udGFpbmVyIGNsZWFyZml4Ij4KKworPGEgY2xhc3M9ImhlYWRlci1sb2dvLWludmVydG9jYXQiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS8iPgorPHNwYW4gY2xhc3M9Im1lZ2Etb2N0aWNvbiBvY3RpY29uLW1hcmstZ2l0aHViIj48L3NwYW4+Cis8L2E+CisKKworPGEgaHJlZj0iL25vdGlmaWNhdGlvbnMiIGNsYXNzPSJub3RpZmljYXRpb24taW5kaWNhdG9yIHRvb2x0aXBwZWQgZG93bndhcmRzIiBkYXRhLWdvdG9rZXk9Im4iIHRpdGxlPSJZb3UgaGF2ZSBubyB1bnJlYWQgbm90aWZpY2F0aW9ucyI+Cis8c3BhbiBjbGFzcz0ibWFpbC1zdGF0dXMgYWxsLXJlYWQiPjwvc3Bhbj4KKzwvYT4KKworPGRpdiBjbGFzcz0iY29tbWFuZC1iYXIganMtY29tbWFuZC1iYXIgIGluLXJlcG9zaXRvcnkiPgorPGZvcm0gYWNjZXB0LWNoYXJzZXQ9IlVURi04IiBhY3Rpb249Ii9zZWFyY2giIGNsYXNzPSJjb21tYW5kLWJhci1mb3JtIiBpZD0idG9wX3NlYXJjaF9mb3JtIiBtZXRob2Q9ImdldCI+CisKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBkYXRhLWhvdGtleT0iLyBzIiBuYW1lPSJxIiBpZD0ianMtY29tbWFuZC1iYXItZmllbGQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggb3IgdHlwZSBhIGNvbW1hbmQiIHRhYmluZGV4PSIxIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIgorCitkYXRhLXVzZXJuYW1lPSJpbmlrdWxpbiIKK2RhdGEtcmVwbz0iaW5pa3VsaW4vcGFyc2U1IgorZGF0YS1icmFuY2g9Im1hc3RlciIKK2RhdGEtc2hhPSI4MDVkZjk5ZTI4ZTEzNzM5OTZjNTZmYWE5MGE5NmZhMzY2ZTFmYzEyIgorPgorCis8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJud28iIHZhbHVlPSJpbmlrdWxpbi9wYXJzZTUiIC8+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51IGpzLW1lbnUtY29udGFpbmVyIGpzLXNlbGVjdC1tZW51IHNlYXJjaC1jb250ZXh0LXNlbGVjdC1tZW51Ij4KKzxzcGFuIGNsYXNzPSJtaW5pYnV0dG9uIHNlbGVjdC1tZW51LWJ1dHRvbiBqcy1tZW51LXRhcmdldCI+Cis8c3BhbiBjbGFzcz0ianMtc2VsZWN0LWJ1dHRvbiI+VGhpcyByZXBvc2l0b3J5PC9zcGFuPgorPC9zcGFuPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1tb2RhbC1ob2xkZXIganMtbWVudS1jb250ZW50IGpzLW5hdmlnYXRpb24tY29udGFpbmVyIj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LW1vZGFsIj4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbSBqcy1uYXZpZ2F0aW9uLWl0ZW0ganMtdGhpcy1yZXBvc2l0b3J5LW5hdmlnYXRpb24taXRlbSBzZWxlY3RlZCI+Cis8c3BhbiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS1pY29uIG9jdGljb24gb2N0aWNvbi1jaGVjayI+PC9zcGFuPgorPGlucHV0IHR5cGU9InJhZGlvIiBjbGFzcz0ianMtc2VhcmNoLXRoaXMtcmVwb3NpdG9yeSIgbmFtZT0ic2VhcmNoX3RhcmdldCIgdmFsdWU9InJlcG9zaXRvcnkiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtLXRleHQganMtc2VsZWN0LWJ1dHRvbi10ZXh0Ij5UaGlzIHJlcG9zaXRvcnk8L2Rpdj4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtaXRlbSAtLT4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbSBqcy1uYXZpZ2F0aW9uLWl0ZW0ganMtYWxsLXJlcG9zaXRvcmllcy1uYXZpZ2F0aW9uLWl0ZW0iPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0taWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ic2VhcmNoX3RhcmdldCIgdmFsdWU9Imdsb2JhbCIgLz4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0tdGV4dCBqcy1zZWxlY3QtYnV0dG9uLXRleHQiPkFsbCByZXBvc2l0b3JpZXM8L2Rpdj4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtaXRlbSAtLT4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorCis8c3BhbiBjbGFzcz0ib2N0aWNvbiBoZWxwIHRvb2x0aXBwZWQgZG93bndhcmRzIiB0aXRsZT0iU2hvdyBjb21tYW5kIGJhciBoZWxwIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcXVlc3Rpb24iPjwvc3Bhbj4KKzwvc3Bhbj4KKworCis8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWYiIHZhbHVlPSJjbWRmb3JtIj4KKworPC9mb3JtPgorPHVsIGNsYXNzPSJ0b3AtbmF2Ij4KKzxsaSBjbGFzcz0iZXhwbG9yZSI+PGEgaHJlZj0iL2V4cGxvcmUiPkV4cGxvcmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2dpc3QuZ2l0aHViLmNvbSI+R2lzdDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii9ibG9nIj5CbG9nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20iPkhlbHA8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKworCisKKworPHVsIGlkPSJ1c2VyLWxpbmtzIj4KKzxsaT4KKzxhIGhyZWY9Ii9pbmlrdWxpbiIgY2xhc3M9Im5hbWUiPgorPGltZyBhbHQ9Ikl2YW4gTmlrdWxpbiIgaGVpZ2h0PSIyMCIgc3JjPSJodHRwczovLzIuZ3JhdmF0YXIuY29tL2F2YXRhci82NGVlNDk3YzRhNTMzMTQ0YTliZjljZTJhNmMwMTBjNT9kPWh0dHBzJTNBJTJGJTJGaWRlbnRpY29ucy5naXRodWIuY29tJTJGOWRkNGRjNTYzNGUzZDNkOTdjN2Q1YTM0YmEyOGI4NTAucG5nJmFtcDtyPXgmYW1wO3M9MTQwIiB3aWR0aD0iMjAiIC8+IGluaWt1bGluCis8L2E+Cis8L2xpPgorCis8bGkgY2xhc3M9Im5ldy1tZW51IGRyb3Bkb3duLXRvZ2dsZSBqcy1tZW51LWNvbnRhaW5lciI+Cis8YSBocmVmPSIjIiBjbGFzcz0ianMtbWVudS10YXJnZXQgdG9vbHRpcHBlZCBkb3dud2FyZHMiIHRpdGxlPSJDcmVhdGUgbmV3Li4uIiBhcmlhLWxhYmVsPSJDcmVhdGUgbmV3Li4uIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcGx1cyI+PC9zcGFuPgorPHNwYW4gY2xhc3M9ImRyb3Bkb3duLWFycm93Ij48L3NwYW4+Cis8L2E+CisKKzxkaXYgY2xhc3M9ImpzLW1lbnUtY29udGVudCI+Cis8L2Rpdj4KKzwvbGk+CisKKzxsaT4KKzxhIGhyZWY9Ii9zZXR0aW5ncy9wcm9maWxlIiBpZD0iYWNjb3VudF9zZXR0aW5ncyIKK2NsYXNzPSJ0b29sdGlwcGVkIGRvd253YXJkcyIKK2FyaWEtbGFiZWw9IkFjY291bnQgc2V0dGluZ3MgIgordGl0bGU9IkFjY291bnQgc2V0dGluZ3MgIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tdG9vbHMiPjwvc3Bhbj4KKzwvYT4KKzwvbGk+Cis8bGk+Cis8YSBjbGFzcz0idG9vbHRpcHBlZCBkb3dud2FyZHMiIGhyZWY9Ii9sb2dvdXQiIGRhdGEtbWV0aG9kPSJwb3N0IiBpZD0ibG9nb3V0IiB0aXRsZT0iU2lnbiBvdXQiIGFyaWEtbGFiZWw9IlNpZ24gb3V0Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbG9nLW91dCI+PC9zcGFuPgorPC9hPgorPC9saT4KKworPC91bD4KKworPGRpdiBjbGFzcz0ianMtbmV3LWRyb3Bkb3duLWNvbnRlbnRzIGhpZGRlbiI+CisKKworPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KKzxsaT4KKzxhIGhyZWY9Ii9uZXciPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcmVwby1jcmVhdGUiPjwvc3Bhbj4gTmV3IHJlcG9zaXRvcnk8L2E+Cis8L2xpPgorPGxpPgorPGEgaHJlZj0iL29yZ2FuaXphdGlvbnMvbmV3Ij48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLW9yZ2FuaXphdGlvbiI+PC9zcGFuPiBOZXcgb3JnYW5pemF0aW9uPC9hPgorPC9saT4KKworCisKKzxsaSBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Cis8c3BhbiB0aXRsZT0iaW5pa3VsaW4vcGFyc2U1Ij5UaGlzIHJlcG9zaXRvcnk8L3NwYW4+Cis8L2xpPgorPGxpPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9pc3N1ZXMvbmV3Ij48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWlzc3VlLW9wZW5lZCI+PC9zcGFuPiBOZXcgaXNzdWU8L2E+Cis8L2xpPgorPGxpPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9zZXR0aW5ncy9jb2xsYWJvcmF0aW9uIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXBlcnNvbi1hZGQiPjwvc3Bhbj4gTmV3IGNvbGxhYm9yYXRvcjwvYT4KKzwvbGk+Cis8L3VsPgorCis8L2Rpdj4KKworCisKKzwvZGl2PgorPC9kaXY+CisKKworCisKKworCisKKworPGRpdiBjbGFzcz0ic2l0ZSIgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9XZWJQYWdlIj4KKworPGRpdiBjbGFzcz0icGFnZWhlYWQgcmVwb2hlYWQgaW5zdGFwYXBlcl9pZ25vcmUgcmVhZGFiaWxpdHktbWVudSI+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCisKKzx1bCBjbGFzcz0icGFnZWhlYWQtYWN0aW9ucyI+CisKKzxsaSBjbGFzcz0ic3Vic2NyaXB0aW9uIj4KKzxmb3JtIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgYWN0aW9uPSIvbm90aWZpY2F0aW9ucy9zdWJzY3JpYmUiIGNsYXNzPSJqcy1zb2NpYWwtY29udGFpbmVyIiBkYXRhLWF1dG9zdWJtaXQ9InRydWUiIGRhdGEtcmVtb3RlPSJ0cnVlIiBtZXRob2Q9InBvc3QiPjxkaXYgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZSI+PGlucHV0IG5hbWU9ImF1dGhlbnRpY2l0eV90b2tlbiIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iUUNqZFpTUS9hV0dLaU9rbmtzVTNVQWFucGpyNDE1RS9VZjVIUHEwN0R6RT0iIC8+PC9kaXY+ICA8aW5wdXQgaWQ9InJlcG9zaXRvcnlfaWQiIG5hbWU9InJlcG9zaXRvcnlfaWQiIHR5cGU9ImhpZGRlbiIgdmFsdWU9Ijg4NjI1OTMiIC8+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51IGpzLW1lbnUtY29udGFpbmVyIGpzLXNlbGVjdC1tZW51Ij4KKzxhIGNsYXNzPSJzb2NpYWwtY291bnQganMtc29jaWFsLWNvdW50IiBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L3dhdGNoZXJzIj4KKzIyCis8L2E+Cis8c3BhbiBjbGFzcz0ibWluaWJ1dHRvbiBzZWxlY3QtbWVudS1idXR0b24gd2l0aC1jb3VudCBqcy1tZW51LXRhcmdldCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+Cis8c3BhbiBjbGFzcz0ianMtc2VsZWN0LWJ1dHRvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWV5ZS11bndhdGNoIj48L3NwYW4+CitVbndhdGNoCis8L3NwYW4+Cis8L3NwYW4+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LW1vZGFsLWhvbGRlciI+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1tb2RhbCBzdWJzY3JpcHRpb24tbWVudS1tb2RhbCBqcy1tZW51LWNvbnRlbnQiPgorPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaGVhZGVyIj4KKzxzcGFuIGNsYXNzPSJzZWxlY3QtbWVudS10aXRsZSI+Tm90aWZpY2F0aW9uIHN0YXR1czwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcmVtb3ZlLWNsb3NlIGpzLW1lbnUtY2xvc2UiPjwvc3Bhbj4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtaGVhZGVyIC0tPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1saXN0IGpzLW5hdmlnYXRpb24tY29udGFpbmVyIiByb2xlPSJtZW51Ij4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbSBqcy1uYXZpZ2F0aW9uLWl0ZW0gIiByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9IjAiPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0taWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0tdGV4dCI+Cis8aW5wdXQgaWQ9ImRvX2luY2x1ZGVkIiBuYW1lPSJkbyIgdHlwZT0icmFkaW8iIHZhbHVlPSJpbmNsdWRlZCIgLz4KKzxoND5Ob3Qgd2F0Y2hpbmc8L2g0PgorPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5Zb3Ugb25seSByZWNlaXZlIG5vdGlmaWNhdGlvbnMgZm9yIGNvbnZlcnNhdGlvbnMgaW4gd2hpY2ggeW91IHBhcnRpY2lwYXRlIG9yIGFyZSBAbWVudGlvbmVkLjwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJqcy1zZWxlY3QtYnV0dG9uLXRleHQgaGlkZGVuLXNlbGVjdC1idXR0b24tdGV4dCI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWV5ZS13YXRjaCI+PC9zcGFuPgorV2F0Y2gKKzwvc3Bhbj4KKzwvZGl2PgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1pdGVtIC0tPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtIGpzLW5hdmlnYXRpb24taXRlbSBzZWxlY3RlZCIgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSIwIj4KKzxzcGFuIGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtLWljb24gb2N0aWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0tdGV4dCI+Cis8aW5wdXQgY2hlY2tlZD0iY2hlY2tlZCIgaWQ9ImRvX3N1YnNjcmliZWQiIG5hbWU9ImRvIiB0eXBlPSJyYWRpbyIgdmFsdWU9InN1YnNjcmliZWQiIC8+Cis8aDQ+V2F0Y2hpbmc8L2g0PgorPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5Zb3UgcmVjZWl2ZSBub3RpZmljYXRpb25zIGZvciBhbGwgY29udmVyc2F0aW9ucyBpbiB0aGlzIHJlcG9zaXRvcnkuPC9zcGFuPgorPHNwYW4gY2xhc3M9ImpzLXNlbGVjdC1idXR0b24tdGV4dCBoaWRkZW4tc2VsZWN0LWJ1dHRvbi10ZXh0Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZXllLXVud2F0Y2giPjwvc3Bhbj4KK1Vud2F0Y2gKKzwvc3Bhbj4KKzwvZGl2PgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1pdGVtIC0tPgorCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtIGpzLW5hdmlnYXRpb24taXRlbSAiIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iMCI+Cis8c3BhbiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS1pY29uIG9jdGljb24gb2N0aWNvbi1jaGVjayI+PC9zcGFuPgorPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS10ZXh0Ij4KKzxpbnB1dCBpZD0iZG9faWdub3JlIiBuYW1lPSJkbyIgdHlwZT0icmFkaW8iIHZhbHVlPSJpZ25vcmUiIC8+Cis8aDQ+SWdub3Jpbmc8L2g0PgorPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj5Zb3UgZG8gbm90IHJlY2VpdmUgYW55IG5vdGlmaWNhdGlvbnMgZm9yIGNvbnZlcnNhdGlvbnMgaW4gdGhpcyByZXBvc2l0b3J5Ljwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJqcy1zZWxlY3QtYnV0dG9uLXRleHQgaGlkZGVuLXNlbGVjdC1idXR0b24tdGV4dCI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLW11dGUiPjwvc3Bhbj4KK1N0b3AgaWdub3JpbmcKKzwvc3Bhbj4KKzwvZGl2PgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1pdGVtIC0tPgorCis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWxpc3QgLS0+CisKKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtbW9kYWwgLS0+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LW1vZGFsLWhvbGRlciAtLT4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUgLS0+CisKKzwvZm9ybT4KKzwvbGk+CisKKzxsaT4KKworCis8ZGl2IGNsYXNzPSJqcy10b2dnbGVyLWNvbnRhaW5lciBqcy1zb2NpYWwtY29udGFpbmVyIHN0YXJyaW5nLWNvbnRhaW5lciBvbiI+Cis8YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L3Vuc3RhciIKK2NsYXNzPSJtaW5pYnV0dG9uIHdpdGgtY291bnQganMtdG9nZ2xlci10YXJnZXQgc3Rhci1idXR0b24gc3RhcnJlZCB1cHdhcmRzIgordGl0bGU9IlVuc3RhciB0aGlzIHJlcG9zaXRvcnkiIGRhdGEtcmVtb3RlPSJ0cnVlIiBkYXRhLW1ldGhvZD0icG9zdCIgcmVsPSJub2ZvbGxvdyI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXN0YXItZGVsZXRlIj48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPlVuc3Rhcjwvc3Bhbj4KKzwvYT4KKworPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9zdGFyIgorY2xhc3M9Im1pbmlidXR0b24gd2l0aC1jb3VudCBqcy10b2dnbGVyLXRhcmdldCBzdGFyLWJ1dHRvbiB1bnN0YXJyZWQgdXB3YXJkcyIKK3RpdGxlPSJTdGFyIHRoaXMgcmVwb3NpdG9yeSIgZGF0YS1yZW1vdGU9InRydWUiIGRhdGEtbWV0aG9kPSJwb3N0IiByZWw9Im5vZm9sbG93Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tc3RhciI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij5TdGFyPC9zcGFuPgorPC9hPgorCis8YSBjbGFzcz0ic29jaWFsLWNvdW50IGpzLXNvY2lhbC1jb3VudCIgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9zdGFyZ2F6ZXJzIj4KKzQwNgorPC9hPgorPC9kaXY+CisKKzwvbGk+CisKKworPGxpPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9mb3JrIiBjbGFzcz0ibWluaWJ1dHRvbiB3aXRoLWNvdW50IGpzLXRvZ2dsZXItdGFyZ2V0IGZvcmstYnV0dG9uIGxpZ2h0ZXIgdXB3YXJkcyIgdGl0bGU9IkZvcmsgdGhpcyByZXBvIiByZWw9ImZhY2Vib3ggbm9mb2xsb3ciPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1naXQtYnJhbmNoLWNyZWF0ZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij5Gb3JrPC9zcGFuPgorPC9hPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9uZXR3b3JrIiBjbGFzcz0ic29jaWFsLWNvdW50Ij4xNDwvYT4KKzwvbGk+CisKKworPC91bD4KKworPGgxIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cDovL2RhdGEtdm9jYWJ1bGFyeS5vcmcvQnJlYWRjcnVtYiIgY2xhc3M9ImVudHJ5LXRpdGxlIHB1YmxpYyI+Cis8c3BhbiBjbGFzcz0icmVwby1sYWJlbCI+PHNwYW4+cHVibGljPC9zcGFuPjwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJtZWdhLW9jdGljb24gb2N0aWNvbi1yZXBvIj48L3NwYW4+Cis8c3BhbiBjbGFzcz0iYXV0aG9yIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbiIgY2xhc3M9InVybCBmbiIgaXRlbXByb3A9InVybCIgcmVsPSJhdXRob3IiPjxzcGFuIGl0ZW1wcm9wPSJ0aXRsZSI+aW5pa3VsaW48L3NwYW4+PC9hPgorPC9zcGFuPgorPHNwYW4gY2xhc3M9InJlcG9oZWFkLW5hbWUtZGl2aWRlciI+Lzwvc3Bhbj4KKzxzdHJvbmc+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNSIgY2xhc3M9ImpzLWN1cnJlbnQtcmVwb3NpdG9yeSBqcy1yZXBvLWhvbWUtbGluayI+cGFyc2U1PC9hPjwvc3Ryb25nPgorCis8c3BhbiBjbGFzcz0icGFnZS1jb250ZXh0LWxvYWRlciI+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2IiAvPgorPC9zcGFuPgorCis8L2gxPgorPC9kaXY+PCEtLSAvLmNvbnRhaW5lciAtLT4KKzwvZGl2PjwhLS0gLy5yZXBvaGVhZCAtLT4KKworPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKworCis8ZGl2IGNsYXNzPSJyZXBvc2l0b3J5LXdpdGgtc2lkZWJhciByZXBvLWNvbnRhaW5lciB3aXRoLWZ1bGwtbmF2aWdhdGlvbiAiPgorCis8ZGl2IGNsYXNzPSJyZXBvc2l0b3J5LXNpZGViYXIiPgorCisKKzxkaXYgY2xhc3M9InN1bmtlbi1tZW51IHZlcnRpY2FsLXJpZ2h0IHJlcG8tbmF2IGpzLXJlcG8tbmF2IGpzLXJlcG9zaXRvcnktY29udGFpbmVyLXBqYXgganMtb2N0aWNvbi1sb2FkZXJzIj4KKzxkaXYgY2xhc3M9InN1bmtlbi1tZW51LWNvbnRlbnRzIj4KKzx1bCBjbGFzcz0ic3Vua2VuLW1lbnUtZ3JvdXAiPgorPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9IkNvZGUiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNSIgYXJpYS1sYWJlbD0iQ29kZSIgY2xhc3M9InNlbGVjdGVkIGpzLXNlbGVjdGVkLW5hdmlnYXRpb24taXRlbSBzdW5rZW4tbWVudS1pdGVtIiBkYXRhLWdvdG9rZXk9ImMiIGRhdGEtcGpheD0idHJ1ZSIgZGF0YS1zZWxlY3RlZC1saW5rcz0icmVwb19zb3VyY2UgcmVwb19kb3dubG9hZHMgcmVwb19jb21taXRzIHJlcG9fdGFncyByZXBvX2JyYW5jaGVzIC9pbmlrdWxpbi9wYXJzZTUiPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1jb2RlIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPkNvZGU8L3NwYW4+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBjbGFzcz0ibWluaS1sb2FkZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiIC8+Cis8L2E+ICAgICAgPC9saT4KKworPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9Iklzc3VlcyI+Cis8YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2lzc3VlcyIgYXJpYS1sYWJlbD0iSXNzdWVzIiBjbGFzcz0ianMtc2VsZWN0ZWQtbmF2aWdhdGlvbi1pdGVtIHN1bmtlbi1tZW51LWl0ZW0ganMtZGlzYWJsZS1wamF4IiBkYXRhLWdvdG9rZXk9ImkiIGRhdGEtc2VsZWN0ZWQtbGlua3M9InJlcG9faXNzdWVzIC9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24taXNzdWUtb3BlbmVkIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPklzc3Vlczwvc3Bhbj4KKzxzcGFuIGNsYXNzPSdjb3VudGVyJz4wPC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9Im1pbmktbG9hZGVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2IiAvPgorPC9hPiAgICAgICAgPC9saT4KKworPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9IlB1bGwgUmVxdWVzdHMiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9wdWxscyIgYXJpYS1sYWJlbD0iUHVsbCBSZXF1ZXN0cyIgY2xhc3M9ImpzLXNlbGVjdGVkLW5hdmlnYXRpb24taXRlbSBzdW5rZW4tbWVudS1pdGVtIGpzLWRpc2FibGUtcGpheCIgZGF0YS1nb3Rva2V5PSJwIiBkYXRhLXNlbGVjdGVkLWxpbmtzPSJyZXBvX3B1bGxzIC9pbmlrdWxpbi9wYXJzZTUvcHVsbHMiPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1naXQtcHVsbC1yZXF1ZXN0Ij48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPlB1bGwgUmVxdWVzdHM8L3NwYW4+Cis8c3BhbiBjbGFzcz0nY291bnRlcic+MDwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJtaW5pLWxvYWRlciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiIgLz4KKzwvYT4gICAgICA8L2xpPgorCisKKzxsaSBjbGFzcz0idG9vbHRpcHBlZCBsZWZ0d2FyZHMiIHRpdGxlPSJXaWtpIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvd2lraSIgYXJpYS1sYWJlbD0iV2lraSIgY2xhc3M9ImpzLXNlbGVjdGVkLW5hdmlnYXRpb24taXRlbSBzdW5rZW4tbWVudS1pdGVtIiBkYXRhLXBqYXg9InRydWUiIGRhdGEtc2VsZWN0ZWQtbGlua3M9InJlcG9fd2lraSAvaW5pa3VsaW4vcGFyc2U1L3dpa2kiPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1ib29rIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPldpa2k8L3NwYW4+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBjbGFzcz0ibWluaS1sb2FkZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiIC8+Cis8L2E+ICAgICAgICA8L2xpPgorPC91bD4KKzxkaXYgY2xhc3M9InN1bmtlbi1tZW51LXNlcGFyYXRvciI+PC9kaXY+Cis8dWwgY2xhc3M9InN1bmtlbi1tZW51LWdyb3VwIj4KKworPGxpIGNsYXNzPSJ0b29sdGlwcGVkIGxlZnR3YXJkcyIgdGl0bGU9IlB1bHNlIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvcHVsc2UiIGFyaWEtbGFiZWw9IlB1bHNlIiBjbGFzcz0ianMtc2VsZWN0ZWQtbmF2aWdhdGlvbi1pdGVtIHN1bmtlbi1tZW51LWl0ZW0iIGRhdGEtcGpheD0idHJ1ZSIgZGF0YS1zZWxlY3RlZC1saW5rcz0icHVsc2UgL2luaWt1bGluL3BhcnNlNS9wdWxzZSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXB1bHNlIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJmdWxsLXdvcmQiPlB1bHNlPC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9Im1pbmktbG9hZGVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2IiAvPgorPC9hPiAgICAgIDwvbGk+CisKKzxsaSBjbGFzcz0idG9vbHRpcHBlZCBsZWZ0d2FyZHMiIHRpdGxlPSJHcmFwaHMiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9ncmFwaHMiIGFyaWEtbGFiZWw9IkdyYXBocyIgY2xhc3M9ImpzLXNlbGVjdGVkLW5hdmlnYXRpb24taXRlbSBzdW5rZW4tbWVudS1pdGVtIiBkYXRhLXBqYXg9InRydWUiIGRhdGEtc2VsZWN0ZWQtbGlua3M9InJlcG9fZ3JhcGhzIHJlcG9fY29udHJpYnV0b3JzIC9pbmlrdWxpbi9wYXJzZTUvZ3JhcGhzIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZ3JhcGgiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImZ1bGwtd29yZCI+R3JhcGhzPC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9Im1pbmktbG9hZGVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2IiAvPgorPC9hPiAgICAgIDwvbGk+CisKKzxsaSBjbGFzcz0idG9vbHRpcHBlZCBsZWZ0d2FyZHMiIHRpdGxlPSJOZXR3b3JrIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvbmV0d29yayIgYXJpYS1sYWJlbD0iTmV0d29yayIgY2xhc3M9ImpzLXNlbGVjdGVkLW5hdmlnYXRpb24taXRlbSBzdW5rZW4tbWVudS1pdGVtIGpzLWRpc2FibGUtcGpheCIgZGF0YS1zZWxlY3RlZC1saW5rcz0icmVwb19uZXR3b3JrIC9pbmlrdWxpbi9wYXJzZTUvbmV0d29yayI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWdpdC1icmFuY2giPjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImZ1bGwtd29yZCI+TmV0d29yazwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJtaW5pLWxvYWRlciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiIgLz4KKzwvYT4gICAgICA8L2xpPgorPC91bD4KKworCis8ZGl2IGNsYXNzPSJzdW5rZW4tbWVudS1zZXBhcmF0b3IiPjwvZGl2PgorPHVsIGNsYXNzPSJzdW5rZW4tbWVudS1ncm91cCI+Cis8bGkgY2xhc3M9InRvb2x0aXBwZWQgbGVmdHdhcmRzIiB0aXRsZT0iU2V0dGluZ3MiPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9zZXR0aW5ncyIKK2NsYXNzPSJzdW5rZW4tbWVudS1pdGVtIiBkYXRhLXBqYXggYXJpYS1sYWJlbD0iU2V0dGluZ3MiPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi10b29scyI+PC9zcGFuPiA8c3BhbiBjbGFzcz0iZnVsbC13b3JkIj5TZXR0aW5nczwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJtaW5pLWxvYWRlciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiIgLz4KKzwvYT4KKzwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ib25seS13aXRoLWZ1bGwtbmF2Ij4KKworCisKKworPGRpdiBjbGFzcz0iY2xvbmUtdXJsICIKK2RhdGEtcHJvdG9jb2wtdHlwZT0iaHR0cCIKK2RhdGEtdXJsPSIvdXNlcnMvc2V0X3Byb3RvY29sP3Byb3RvY29sX3NlbGVjdG9yPWh0dHAmYW1wO3Byb3RvY29sX3R5cGU9cHVzaCI+Cis8aDM+PHN0cm9uZz5IVFRQUzwvc3Ryb25nPiBjbG9uZSBVUkw8L2gzPgorPGRpdiBjbGFzcz0iY2xvbmUtdXJsLWJveCI+Cis8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNsb25lIGpzLXVybC1maWVsZCIKK3ZhbHVlPSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1LmdpdCIgcmVhZG9ubHk9InJlYWRvbmx5Ij4KKworPHNwYW4gY2xhc3M9ImpzLXplcm9jbGlwYm9hcmQgdXJsLWJveC1jbGlwcHkgbWluaWJ1dHRvbiB6ZXJvY2xpcGJvYXJkLWJ1dHRvbiIgZGF0YS1jbGlwYm9hcmQtdGV4dD0iaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS5naXQiIGRhdGEtY29waWVkLWhpbnQ9ImNvcGllZCEiIHRpdGxlPSJjb3B5IHRvIGNsaXBib2FyZCI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1jbGlwcHkiPjwvc3Bhbj48L3NwYW4+Cis8L2Rpdj4KKzwvZGl2PgorCisKKworPGRpdiBjbGFzcz0iY2xvbmUtdXJsICIKK2RhdGEtcHJvdG9jb2wtdHlwZT0ic3NoIgorZGF0YS11cmw9Ii91c2Vycy9zZXRfcHJvdG9jb2w/cHJvdG9jb2xfc2VsZWN0b3I9c3NoJmFtcDtwcm90b2NvbF90eXBlPXB1c2giPgorPGgzPjxzdHJvbmc+U1NIPC9zdHJvbmc+IGNsb25lIFVSTDwvaDM+Cis8ZGl2IGNsYXNzPSJjbG9uZS11cmwtYm94Ij4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iY2xvbmUganMtdXJsLWZpZWxkIgordmFsdWU9ImdpdEBnaXRodWIuY29tOmluaWt1bGluL3BhcnNlNS5naXQiIHJlYWRvbmx5PSJyZWFkb25seSI+CisKKzxzcGFuIGNsYXNzPSJqcy16ZXJvY2xpcGJvYXJkIHVybC1ib3gtY2xpcHB5IG1pbmlidXR0b24gemVyb2NsaXBib2FyZC1idXR0b24iIGRhdGEtY2xpcGJvYXJkLXRleHQ9ImdpdEBnaXRodWIuY29tOmluaWt1bGluL3BhcnNlNS5naXQiIGRhdGEtY29waWVkLWhpbnQ9ImNvcGllZCEiIHRpdGxlPSJjb3B5IHRvIGNsaXBib2FyZCI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1jbGlwcHkiPjwvc3Bhbj48L3NwYW4+Cis8L2Rpdj4KKzwvZGl2PgorCisKKworPGRpdiBjbGFzcz0iY2xvbmUtdXJsIG9wZW4iCitkYXRhLXByb3RvY29sLXR5cGU9InN1YnZlcnNpb24iCitkYXRhLXVybD0iL3VzZXJzL3NldF9wcm90b2NvbD9wcm90b2NvbF9zZWxlY3Rvcj1zdWJ2ZXJzaW9uJmFtcDtwcm90b2NvbF90eXBlPXB1c2giPgorPGgzPjxzdHJvbmc+U3VidmVyc2lvbjwvc3Ryb25nPiBjaGVja291dCBVUkw8L2gzPgorPGRpdiBjbGFzcz0iY2xvbmUtdXJsLWJveCI+Cis8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNsb25lIGpzLXVybC1maWVsZCIKK3ZhbHVlPSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1IiByZWFkb25seT0icmVhZG9ubHkiPgorCis8c3BhbiBjbGFzcz0ianMtemVyb2NsaXBib2FyZCB1cmwtYm94LWNsaXBweSBtaW5pYnV0dG9uIHplcm9jbGlwYm9hcmQtYnV0dG9uIiBkYXRhLWNsaXBib2FyZC10ZXh0PSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1IiBkYXRhLWNvcGllZC1oaW50PSJjb3BpZWQhIiB0aXRsZT0iY29weSB0byBjbGlwYm9hcmQiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tY2xpcHB5Ij48L3NwYW4+PC9zcGFuPgorPC9kaXY+Cis8L2Rpdj4KKworCis8cCBjbGFzcz0iY2xvbmUtb3B0aW9ucyI+WW91IGNhbiBjbG9uZSB3aXRoCis8YSBocmVmPSIjIiBjbGFzcz0ianMtY2xvbmUtc2VsZWN0b3IiIGRhdGEtcHJvdG9jb2w9Imh0dHAiPkhUVFBTPC9hPiwKKzxhIGhyZWY9IiMiIGNsYXNzPSJqcy1jbG9uZS1zZWxlY3RvciIgZGF0YS1wcm90b2NvbD0ic3NoIj5TU0g8L2E+LAorb3IgPGEgaHJlZj0iIyIgY2xhc3M9ImpzLWNsb25lLXNlbGVjdG9yIiBkYXRhLXByb3RvY29sPSJzdWJ2ZXJzaW9uIj5TdWJ2ZXJzaW9uPC9hPi4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIGhlbHAgdG9vbHRpcHBlZCB1cHdhcmRzIiB0aXRsZT0iR2V0IGhlbHAgb24gd2hpY2ggVVJMIGlzIHJpZ2h0IGZvciB5b3UuIj4KKzxhIGhyZWY9Imh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL3doaWNoLXJlbW90ZS11cmwtc2hvdWxkLWktdXNlIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tcXVlc3Rpb24iPjwvc3Bhbj4KKzwvYT4KKzwvc3Bhbj4KKzwvcD4KKworCis8YSBocmVmPSJodHRwOi8vd2luZG93cy5naXRodWIuY29tIiBjbGFzcz0ibWluaWJ1dHRvbiBzaWRlYmFyLWJ1dHRvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWRldmljZS1kZXNrdG9wIj48L3NwYW4+CitDbG9uZSBpbiBEZXNrdG9wCis8L2E+CisKKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvYXJjaGl2ZS9tYXN0ZXIuemlwIgorY2xhc3M9Im1pbmlidXR0b24gc2lkZWJhci1idXR0b24iCit0aXRsZT0iRG93bmxvYWQgdGhpcyByZXBvc2l0b3J5IGFzIGEgemlwIGZpbGUiCityZWw9Im5vZm9sbG93Ij4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tY2xvdWQtZG93bmxvYWQiPjwvc3Bhbj4KK0Rvd25sb2FkIFpJUAorPC9hPgorPC9kaXY+Cis8L2Rpdj48IS0tIC8ucmVwb3NpdG9yeS1zaWRlYmFyIC0tPgorCis8ZGl2IGlkPSJqcy1yZXBvLXBqYXgtY29udGFpbmVyIiBjbGFzcz0icmVwb3NpdG9yeS1jb250ZW50IGNvbnRleHQtbG9hZGVyLWNvbnRhaW5lciIgZGF0YS1wamF4LWNvbnRhaW5lcj4KKworCis8c3BhbiBpZD0ianMtc2hvdy1mdWxsLW5hdmlnYXRpb24iPjwvc3Bhbj4KKworPGRpdiBjbGFzcz0icmVwb3NpdG9yeS1tZXRhIGpzLWRldGFpbHMtY29udGFpbmVyICI+Cis8ZGl2IGNsYXNzPSJyZXBvc2l0b3J5LWRlc2NyaXB0aW9uIGpzLWRldGFpbHMtc2hvdyI+Cis8cD5GYXN0IGZ1bGwtZmVhdHVyZWQgSFRNTCBwYXJzZXIgZm9yIE5vZGUuIEJhc2VkIG9uIFdIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLjwvcD4KKzwvZGl2PgorCisKKzxzcGFuIGNsYXNzPSJlZGl0LWxpbmsganMtZGV0YWlscy1zaG93IGpzLWRldGFpbHMtdGFyZ2V0Ij7igJQgPGEgaHJlZj0iIyI+RWRpdDwvYT48L3NwYW4+Cis8Zm9ybSBhY2NlcHQtY2hhcnNldD0iVVRGLTgiIGFjdGlvbj0iL2luaWt1bGluL3BhcnNlNS9zZXR0aW5ncy91cGRhdGVfbWV0YSIgY2xhc3M9ImVkaXQtcmVwb3NpdG9yeS1tZXRhIGpzLWRldGFpbHMtZWRpdCIgbWV0aG9kPSJwb3N0Ij48ZGl2IHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjA7ZGlzcGxheTppbmxpbmUiPjxpbnB1dCBuYW1lPSJfbWV0aG9kIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJwdXQiIC8+PGlucHV0IG5hbWU9ImF1dGhlbnRpY2l0eV90b2tlbiIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iUUNqZFpTUS9hV0dLaU9rbmtzVTNVQWFucGpyNDE1RS9VZjVIUHEwN0R6RT0iIC8+PC9kaXY+CisKKzxkaXYgY2xhc3M9ImZpZWxkIGRlc2NyaXB0aW9uLWZpZWxkIj4KKzxsYWJlbCBmb3I9InJlcG9fZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC9sYWJlbD4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJyZXBvX2Rlc2NyaXB0aW9uIiB2YWx1ZT0iRmFzdCBmdWxsLWZlYXR1cmVkIEhUTUwgcGFyc2VyIGZvciBOb2RlLiBCYXNlZCBvbiBXSEFUV0cgSFRNTDUgc3BlY2lmaWNhdGlvbi4iIHBsYWNlaG9sZGVyPSJTaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGlzIHJlcG9zaXRvcnkiIC8+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZmllbGQgd2Vic2l0ZS1maWVsZCIgPgorPGxhYmVsIGZvcj0icmVwb19ob21lcGFnZSI+V2Vic2l0ZTwvbGFiZWw+Cis8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icmVwb19ob21lcGFnZSIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IldlYnNpdGUgZm9yIHRoaXMgcmVwb3NpdG9yeSAob3B0aW9uYWwpIiAvPgorPC9kaXY+CisKKzxidXR0b24gY2xhc3M9ImJ1dHRvbiBjbGFzc3kiPlNhdmU8L2J1dHRvbj4KKzxzcGFuIGNsYXNzPSJjYW5jZWwiPm9yIDxhIGhyZWY9IiMiIGNsYXNzPSJqcy1kZXRhaWxzLXRhcmdldCI+Y2FuY2VsPC9hPjwvc3Bhbj4KKzwvZm9ybT4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjYXBwZWQtYm94IG92ZXJhbGwtc3VtbWFyeSAiPgorCis8ZGl2IGNsYXNzPSJzdGF0cy1zd2l0Y2hlci12aWV3cG9ydCBqcy1zdGF0cy1zd2l0Y2hlci12aWV3cG9ydCI+CisKKzx1bCBjbGFzcz0ibnVtYmVycy1zdW1tYXJ5Ij4KKzxsaSBjbGFzcz0iY29tbWl0cyI+Cis8YSBkYXRhLXBqYXggaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXRzL21hc3RlciI+Cis8c3BhbiBjbGFzcz0ibnVtIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24taGlzdG9yeSI+PC9zcGFuPgorMTQ5Cis8L3NwYW4+Citjb21taXRzCis8L2E+Cis8L2xpPgorPGxpPgorPGEgZGF0YS1wamF4IGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvYnJhbmNoZXMiPgorPHNwYW4gY2xhc3M9Im51bSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWdpdC1icmFuY2giPjwvc3Bhbj4KKzEKKzwvc3Bhbj4KK2JyYW5jaAorPC9hPgorPC9saT4KKworPGxpPgorPGEgZGF0YS1wamF4IGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvcmVsZWFzZXMiPgorPHNwYW4gY2xhc3M9Im51bSI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXRhZyI+PC9zcGFuPgorMgorPC9zcGFuPgorcmVsZWFzZXMKKzwvYT4KKzwvbGk+CisKKzxsaT4KKworPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9ncmFwaHMvY29udHJpYnV0b3JzIj4KKzxzcGFuIGNsYXNzPSJudW0iPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1vcmdhbml6YXRpb24iPjwvc3Bhbj4KKzIKKzwvc3Bhbj4KK2NvbnRyaWJ1dG9ycworPC9hPgorPC9saT4KKzwvdWw+CisKKzxkaXYgY2xhc3M9InJlcG9zaXRvcnktbGFuZy1zdGF0cyI+Cis8b2wgY2xhc3M9InJlcG9zaXRvcnktbGFuZy1zdGF0cy1udW1iZXJzIj4KKzxsaT4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvc2VhcmNoP2w9amF2YXNjcmlwdCI+Cis8c3BhbiBjbGFzcz0iY29sb3ItYmxvY2sgbGFuZ3VhZ2UtY29sb3IiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmMTU1MDE7Ij48L3NwYW4+Cis8c3BhbiBjbGFzcz0ibGFuZyI+SmF2YVNjcmlwdDwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJwZXJjZW50Ij4xMDAlPC9zcGFuPgorPC9hPgorPC9saT4KKzwvb2w+Cis8L2Rpdj4KKzwvZGl2PgorCis8L2Rpdj4KKworPGEgaHJlZj0iIyIKK2NsYXNzPSJyZXBvc2l0b3J5LWxhbmctc3RhdHMtZ3JhcGgganMtdG9nZ2xlLWxhbmctc3RhdHMgdG9vbHRpcHBlZCBkb3dud2FyZHMiCit0aXRsZT0iU2hvdyBsYW5ndWFnZSBzdGF0aXN0aWNzIgorc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2YxNTUwMSI+Cis8c3BhbiBjbGFzcz0ibGFuZ3VhZ2UtY29sb3IiIHN0eWxlPSJ3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmMTU1MDE7IiBpdGVtcHJvcD0ia2V5d29yZHMiPkphdmFTY3JpcHQ8L3NwYW4+Cis8L2E+CisKKworPGRpdgorPgorPC9kaXY+CisKKworPGRpdiBjbGFzcz0iZmlsZS1uYXZpZ2F0aW9uIGluLW1pZC1wYWdlIj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvY29tcGFyZSIgYXJpYS1sYWJlbD0iQ29tcGFyZSwgcmV2aWV3LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3QiIGNsYXNzPSJtaW5pYnV0dG9uIGNvbXBhY3QgcHJpbWFyeSB0b29sdGlwcGVkIGRvd253YXJkcyIgdGl0bGU9IkNvbXBhcmUgJmFtcDsgcmV2aWV3IiBkYXRhLXBqYXg+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWdpdC1jb21wYXJlIj48L3NwYW4+Cis8L2E+CisKKworCis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudSBqcy1tZW51LWNvbnRhaW5lciBqcy1zZWxlY3QtbWVudSIgPgorPHNwYW4gY2xhc3M9Im1pbmlidXR0b24gc2VsZWN0LW1lbnUtYnV0dG9uIGpzLW1lbnUtdGFyZ2V0IiBkYXRhLWhvdGtleT0idyIKK2RhdGEtbWFzdGVyLWJyYW5jaD0ibWFzdGVyIgorZGF0YS1yZWY9Im1hc3RlciIKK3JvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU3dpdGNoIGJyYW5jaGVzIG9yIHRhZ3MiIHRhYmluZGV4PSIwIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZ2l0LWJyYW5jaCI+PC9zcGFuPgorPGk+YnJhbmNoOjwvaT4KKzxzcGFuIGNsYXNzPSJqcy1zZWxlY3QtYnV0dG9uIj5tYXN0ZXI8L3NwYW4+Cis8L3NwYW4+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LW1vZGFsLWhvbGRlciBqcy1tZW51LWNvbnRlbnQganMtbmF2aWdhdGlvbi1jb250YWluZXIiIGRhdGEtcGpheD4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtbW9kYWwiPgorPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaGVhZGVyIj4KKzxzcGFuIGNsYXNzPSJzZWxlY3QtbWVudS10aXRsZSI+U3dpdGNoIGJyYW5jaGVzL3RhZ3M8L3NwYW4+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXJlbW92ZS1jbG9zZSBqcy1tZW51LWNsb3NlIj48L3NwYW4+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWhlYWRlciAtLT4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtZmlsdGVycyI+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS10ZXh0LWZpbHRlciI+Cis8aW5wdXQgdHlwZT0idGV4dCIgYXJpYS1sYWJlbD0iRmluZCBvciBjcmVhdGUgYSBicmFuY2jigKYiIGlkPSJjb250ZXh0LWNvbW1pdGlzaC1maWx0ZXItZmllbGQiIGNsYXNzPSJqcy1maWx0ZXJhYmxlLWZpZWxkIGpzLW5hdmlnYXRpb24tZW5hYmxlIiBwbGFjZWhvbGRlcj0iRmluZCBvciBjcmVhdGUgYSBicmFuY2jigKYiPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS10YWJzIj4KKzx1bD4KKzxsaSBjbGFzcz0ic2VsZWN0LW1lbnUtdGFiIj4KKzxhIGhyZWY9IiMiIGRhdGEtdGFiLWZpbHRlcj0iYnJhbmNoZXMiIGNsYXNzPSJqcy1zZWxlY3QtbWVudS10YWIiPkJyYW5jaGVzPC9hPgorPC9saT4KKzxsaSBjbGFzcz0ic2VsZWN0LW1lbnUtdGFiIj4KKzxhIGhyZWY9IiMiIGRhdGEtdGFiLWZpbHRlcj0idGFncyIgY2xhc3M9ImpzLXNlbGVjdC1tZW51LXRhYiI+VGFnczwvYT4KKzwvbGk+Cis8L3VsPgorPC9kaXY+PCEtLSAvLnNlbGVjdC1tZW51LXRhYnMgLS0+Cis8L2Rpdj48IS0tIC8uc2VsZWN0LW1lbnUtZmlsdGVycyAtLT4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtbGlzdCBzZWxlY3QtbWVudS10YWItYnVja2V0IGpzLXNlbGVjdC1tZW51LXRhYi1idWNrZXQiIGRhdGEtdGFiLWZpbHRlcj0iYnJhbmNoZXMiPgorCis8ZGl2IGRhdGEtZmlsdGVyYWJsZS1mb3I9ImNvbnRleHQtY29tbWl0aXNoLWZpbHRlci1maWVsZCIgZGF0YS1maWx0ZXJhYmxlLXR5cGU9InN1YnN0cmluZyI+CisKKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbSBqcy1uYXZpZ2F0aW9uLWl0ZW0gc2VsZWN0ZWQiPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0taWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvdHJlZS9tYXN0ZXIiCitkYXRhLW5hbWU9Im1hc3RlciIKK2RhdGEtc2tpcC1wamF4PSJ0cnVlIgorcmVsPSJub2ZvbGxvdyIKK2NsYXNzPSJqcy1uYXZpZ2F0aW9uLW9wZW4gc2VsZWN0LW1lbnUtaXRlbS10ZXh0IGpzLXNlbGVjdC1idXR0b24tdGV4dCBjc3MtdHJ1bmNhdGUtdGFyZ2V0IgordGl0bGU9Im1hc3RlciI+bWFzdGVyPC9hPgorPC9kaXY+IDwhLS0gLy5zZWxlY3QtbWVudS1pdGVtIC0tPgorPC9kaXY+CisKKzxmb3JtIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIgYWN0aW9uPSIvaW5pa3VsaW4vcGFyc2U1L2JyYW5jaGVzIiBjbGFzcz0ianMtY3JlYXRlLWJyYW5jaCBzZWxlY3QtbWVudS1pdGVtIHNlbGVjdC1tZW51LW5ldy1pdGVtLWZvcm0ganMtbmF2aWdhdGlvbi1pdGVtIGpzLW5ldy1pdGVtLWZvcm0iIG1ldGhvZD0icG9zdCI+PGRpdiBzdHlsZT0ibWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lIj48aW5wdXQgbmFtZT0iYXV0aGVudGljaXR5X3Rva2VuIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJRQ2pkWlNRL2FXR0tpT2tua3NVM1VBYW5wanI0MTVFL1VmNUhQcTA3RHpFPSIgLz48L2Rpdj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZ2l0LWJyYW5jaC1jcmVhdGUgc2VsZWN0LW1lbnUtaXRlbS1pY29uIj48L3NwYW4+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtLXRleHQiPgorPGg0PkNyZWF0ZSBicmFuY2g6IDxzcGFuIGNsYXNzPSJqcy1uZXctaXRlbS1uYW1lIj48L3NwYW4+PC9oND4KKzxzcGFuIGNsYXNzPSJkZXNjcmlwdGlvbiI+ZnJvbSDigJhtYXN0ZXLigJk8L3NwYW4+Cis8L2Rpdj4KKzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im5hbWUiIGlkPSJuYW1lIiBjbGFzcz0ianMtbmV3LWl0ZW0tdmFsdWUiPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmNoIiBpZD0iYnJhbmNoIiB2YWx1ZT0ibWFzdGVyIiAvPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgaWQ9InBhdGgiIHZhbHVlPSIiIC8+Cis8L2Zvcm0+IDwhLS0gLy5zZWxlY3QtbWVudS1pdGVtIC0tPgorCis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWxpc3QgLS0+CisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWxpc3Qgc2VsZWN0LW1lbnUtdGFiLWJ1Y2tldCBqcy1zZWxlY3QtbWVudS10YWItYnVja2V0IiBkYXRhLXRhYi1maWx0ZXI9InRhZ3MiPgorPGRpdiBkYXRhLWZpbHRlcmFibGUtZm9yPSJjb250ZXh0LWNvbW1pdGlzaC1maWx0ZXItZmllbGQiIGRhdGEtZmlsdGVyYWJsZS10eXBlPSJzdWJzdHJpbmciPgorCisKKzxkaXYgY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0ganMtbmF2aWdhdGlvbi1pdGVtICI+Cis8c3BhbiBjbGFzcz0ic2VsZWN0LW1lbnUtaXRlbS1pY29uIG9jdGljb24gb2N0aWNvbi1jaGVjayI+PC9zcGFuPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS90cmVlL3YwLjYuMCIKK2RhdGEtbmFtZT0idjAuNi4wIgorZGF0YS1za2lwLXBqYXg9InRydWUiCityZWw9Im5vZm9sbG93IgorY2xhc3M9ImpzLW5hdmlnYXRpb24tb3BlbiBzZWxlY3QtbWVudS1pdGVtLXRleHQganMtc2VsZWN0LWJ1dHRvbi10ZXh0IGNzcy10cnVuY2F0ZS10YXJnZXQiCit0aXRsZT0idjAuNi4wIj52MC42LjA8L2E+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWl0ZW0gLS0+Cis8ZGl2IGNsYXNzPSJzZWxlY3QtbWVudS1pdGVtIGpzLW5hdmlnYXRpb24taXRlbSAiPgorPHNwYW4gY2xhc3M9InNlbGVjdC1tZW51LWl0ZW0taWNvbiBvY3RpY29uIG9jdGljb24tY2hlY2siPjwvc3Bhbj4KKzxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvdHJlZS8wLjYuMSIKK2RhdGEtbmFtZT0iMC42LjEiCitkYXRhLXNraXAtcGpheD0idHJ1ZSIKK3JlbD0ibm9mb2xsb3ciCitjbGFzcz0ianMtbmF2aWdhdGlvbi1vcGVuIHNlbGVjdC1tZW51LWl0ZW0tdGV4dCBqcy1zZWxlY3QtYnV0dG9uLXRleHQgY3NzLXRydW5jYXRlLXRhcmdldCIKK3RpdGxlPSIwLjYuMSI+MC42LjE8L2E+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWl0ZW0gLS0+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0ic2VsZWN0LW1lbnUtbm8tcmVzdWx0cyI+Tm90aGluZyB0byBzaG93PC9kaXY+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LWxpc3QgLS0+CisKKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUtbW9kYWwgLS0+Cis8L2Rpdj4gPCEtLSAvLnNlbGVjdC1tZW51LW1vZGFsLWhvbGRlciAtLT4KKzwvZGl2PiA8IS0tIC8uc2VsZWN0LW1lbnUgLS0+CisKKworPGRpdiBjbGFzcz0iYnJlYWRjcnVtYiI+PHNwYW4gY2xhc3M9J3JlcG8tcm9vdCBqcy1yZXBvLXJvb3QnPjxzcGFuIGl0ZW1zY29wZT0iIiBpdGVtdHlwZT0iaHR0cDovL2RhdGEtdm9jYWJ1bGFyeS5vcmcvQnJlYWRjcnVtYiI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNSIgZGF0YS1icmFuY2g9Im1hc3RlciIgZGF0YS1kaXJlY3Rpb249ImJhY2siIGRhdGEtcGpheD0idHJ1ZSIgaXRlbXNjb3BlPSJ1cmwiPjxzcGFuIGl0ZW1wcm9wPSJ0aXRsZSI+cGFyc2U1PC9zcGFuPjwvYT48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXBhcmF0b3IiPiAvIDwvc3Bhbj48Zm9ybSBhY3Rpb249Ii9pbmlrdWxpbi9wYXJzZTUvbmV3L21hc3RlciIgY2xhc3M9ImpzLW5ldy1ibG9iLWZvcm0gdG9vbHRpcHBlZCByaWdodHdhcmRzIG5ldy1maWxlLWxpbmsiIG1ldGhvZD0icG9zdCIgdGl0bGU9IkNyZWF0ZSBhIG5ldyBmaWxlIGhlcmUiPjxzcGFuIGFyaWEtbGFiZWw9IkNyZWF0ZSBhIG5ldyBmaWxlIGhlcmUiIGNsYXNzPSJqcy1uZXctYmxvYi1zdWJtaXQgb2N0aWNvbiBvY3RpY29uLWZpbGUtYWRkIiBkYXRhLXRlc3QtaWQ9ImNyZWF0ZS1uZXctZ2l0LWZpbGUiIHJvbGU9ImJ1dHRvbiI+PC9zcGFuPjwvZm9ybT48L2Rpdj4KKzwvZGl2PgorCisKKworPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9maW5kL21hc3RlciIKK2RhdGEtaG90a2V5PSJ0IiBjbGFzcz0ianMtc2hvdy1maWxlLWZpbmRlciIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgZGF0YS1wamF4PlNob3cgRmlsZSBGaW5kZXI8L2E+Cis8ZGl2IGNsYXNzPSJidWJibGUgZmlsZXMtYnViYmxlIj4KKworCis8ZGl2IGNsYXNzPSJjb21taXQgY29tbWl0LXRlYXNlIGpzLWRldGFpbHMtY29udGFpbmVyIiA+Cis8cCBjbGFzcz0iY29tbWl0LXRpdGxlICI+Cis8YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2NvbW1pdC8zMzk3MjE5MzUzMDAwM2NiYWYyNGMzY2RkZTRhYjJkM2M5NGVkZTY3IiBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wamF4PSJ0cnVlIiB0aXRsZT0iaHRtbHBhcnNlcjIgdHJlZSBhZGFwdGVyIHRlc3RlZCI+aHRtbHBhcnNlcjIgdHJlZSBhZGFwdGVyIHRlc3RlZDwvYT4KKworPC9wPgorPGRpdiBjbGFzcz0iY29tbWl0LW1ldGEiPgorPHNwYW4gY2xhc3M9ImpzLXplcm9jbGlwYm9hcmQgemVyb2NsaXBib2FyZC1saW5rIiBkYXRhLWNsaXBib2FyZC10ZXh0PSIzMzk3MjE5MzUzMDAwM2NiYWYyNGMzY2RkZTRhYjJkM2M5NGVkZTY3IiBkYXRhLWNvcGllZC1oaW50PSJjb3BpZWQhIiB0aXRsZT0iQ29weSBTSEEiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tY2xpcHB5Ij48L3NwYW4+PC9zcGFuPgorPGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvMzM5NzIxOTM1MzAwMDNjYmFmMjRjM2NkZGU0YWIyZDNjOTRlZGU2NyIgY2xhc3M9InNoYS1ibG9jayIgZGF0YS1wamF4PmxhdGVzdCBjb21taXQgPHNwYW4gY2xhc3M9InNoYSI+MzM5NzIxOTM1Mzwvc3Bhbj48L2E+CisKKzxkaXYgY2xhc3M9ImF1dGhvcnNoaXAiPgorPGltZyBhbHQ9Ikl2YW4gTmlrdWxpbiIgY2xhc3M9ImdyYXZhdGFyIiBoZWlnaHQ9IjIwIiBzcmM9Imh0dHBzOi8vMi5ncmF2YXRhci5jb20vYXZhdGFyLzY0ZWU0OTdjNGE1MzMxNDRhOWJmOWNlMmE2YzAxMGM1P2Q9aHR0cHMlM0ElMkYlMkZpZGVudGljb25zLmdpdGh1Yi5jb20lMkY5ZGQ0ZGM1NjM0ZTNkM2Q5N2M3ZDVhMzRiYTI4Yjg1MC5wbmcmYW1wO3I9eCZhbXA7cz0xNDAiIHdpZHRoPSIyMCIgLz4KKzxzcGFuIGNsYXNzPSJhdXRob3ItbmFtZSI+PGEgaHJlZj0iL2luaWt1bGluIiBkYXRhLXNraXAtcGpheD0idHJ1ZSIgcmVsPSJhdXRob3IiPmluaWt1bGluPC9hPjwvc3Bhbj4KK2F1dGhvcmVkIDx0aW1lIGNsYXNzPSJqcy1yZWxhdGl2ZS1kYXRlIHVwZGF0ZWQiIGRhdGV0aW1lPSIyMDE0LTAxLTI3VDAyOjAyOjUwLTA4OjAwIiB0aXRsZT0iMjAxNC0wMS0yNyAwMjowMjo1MCI+SmFudWFyeSAyNywgMjAxNDwvdGltZT4KKworPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorCis8dGFibGUgY2xhc3M9ImZpbGVzIiBkYXRhLXBqYXg+CisKKworPHRib2R5IGNsYXNzPSIiCitkYXRhLXVybD0iL2luaWt1bGluL3BhcnNlNS9maWxlLWxpc3QvbWFzdGVyIj4KKzx0cj4KKzx0ZCBjbGFzcz0iaWNvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWZpbGUtZGlyZWN0b3J5Ij48L3NwYW4+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBjbGFzcz0ic3Bpbm5lciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiIgLz4KKzwvdGQ+Cis8dGQgY2xhc3M9ImNvbnRlbnQiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L3RyZWUvbWFzdGVyL2xpYiIgY2xhc3M9ImpzLWRpcmVjdG9yeS1saW5rIiBpZD0iZThhY2M2M2IxZTIzOGYzMjU1YzkwMGVlZDM3MjU0YjgtOWMwZTExOTgyZmVlOGVjOTkwNTMyOGEwZjEyNTU4ODA4OTVlYmNlOCIgdGl0bGU9ImxpYiI+bGliPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9Im1lc3NhZ2UiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2NvbW1pdC8zMzk3MjE5MzUzMDAwM2NiYWYyNGMzY2RkZTRhYjJkM2M5NGVkZTY3IiBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wamF4PSJ0cnVlIiB0aXRsZT0iaHRtbHBhcnNlcjIgdHJlZSBhZGFwdGVyIHRlc3RlZCI+aHRtbHBhcnNlcjIgdHJlZSBhZGFwdGVyIHRlc3RlZDwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJhZ2UiPjxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PHRpbWUgY2xhc3M9ImpzLXJlbGF0aXZlLWRhdGUiIGRhdGV0aW1lPSIyMDE0LTAxLTI3VDAyOjAyOjUwLTA4OjAwIiB0aXRsZT0iMjAxNC0wMS0yNyAwMjowMjo1MCI+SmFudWFyeSAyNywgMjAxNDwvdGltZT48L3NwYW4+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY2xhc3M9Imljb24iPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1maWxlLWRpcmVjdG9yeSI+PC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9InNwaW5uZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiIC8+Cis8L3RkPgorPHRkIGNsYXNzPSJjb250ZW50Ij4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS90cmVlL21hc3Rlci90ZXN0IiBjbGFzcz0ianMtZGlyZWN0b3J5LWxpbmsiIGlkPSIwOThmNmJjZDQ2MjFkMzczY2FkZTRlODMyNjI3YjRmNi1lOGQ0MzI2ODMzYzA4YTY3MzE4NTFlNGY3OWRjOGIzYTE3MmVkMWZjIiB0aXRsZT0idGVzdCI+dGVzdDwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJtZXNzYWdlIj4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvMzM5NzIxOTM1MzAwMDNjYmFmMjRjM2NkZGU0YWIyZDNjOTRlZGU2NyIgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGpheD0idHJ1ZSIgdGl0bGU9Imh0bWxwYXJzZXIyIHRyZWUgYWRhcHRlciB0ZXN0ZWQiPmh0bWxwYXJzZXIyIHRyZWUgYWRhcHRlciB0ZXN0ZWQ8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0iYWdlIj48c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjx0aW1lIGNsYXNzPSJqcy1yZWxhdGl2ZS1kYXRlIiBkYXRldGltZT0iMjAxNC0wMS0yN1QwMjowMjo1MC0wODowMCIgdGl0bGU9IjIwMTQtMDEtMjcgMDI6MDI6NTAiPkphbnVhcnkgMjcsIDIwMTQ8L3RpbWU+PC9zcGFuPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNsYXNzPSJpY29uIj4KKzxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tZmlsZS10ZXh0Ij48L3NwYW4+Cis8aW1nIGFsdD0iT2N0b2NhdC1zcGlubmVyLTMyIiBjbGFzcz0ic3Bpbm5lciIgaGVpZ2h0PSIxNiIgc3JjPSJodHRwczovL2dpdGh1Yi5nbG9iYWwuc3NsLmZhc3RseS5uZXQvaW1hZ2VzL3NwaW5uZXJzL29jdG9jYXQtc3Bpbm5lci0zMi5naWYiIHdpZHRoPSIxNiIgLz4KKzwvdGQ+Cis8dGQgY2xhc3M9ImNvbnRlbnQiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2Jsb2IvbWFzdGVyLy5naXRpZ25vcmUiIGNsYXNzPSJqcy1kaXJlY3RvcnktbGluayIgaWQ9ImEwODRiNzk0YmMwNzU5ZTdhNmI3NzgxMGUwMTg3NGYyLTAwOTQzMjIzNjE0ZGIxZjljMjM4NjIyNzk1MGEzZDg0MTIwODE5ZjQiIHRpdGxlPSIuZ2l0aWdub3JlIj4uZ2l0aWdub3JlPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9Im1lc3NhZ2UiPgorPHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48YSBocmVmPSIvaW5pa3VsaW4vcGFyc2U1L2NvbW1pdC8zM2M1NTIyMTQ2ZjFiNDgwNTQyNTk4NDhjZjcxMWFlYmJlMTMzMzM3IiBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wamF4PSJ0cnVlIiB0aXRsZT0iTWVyZ2UiPk1lcmdlPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9ImFnZSI+PHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48dGltZSBjbGFzcz0ianMtcmVsYXRpdmUtZGF0ZSIgZGF0ZXRpbWU9IjIwMTMtMDctMTVUMDk6MzM6MTctMDc6MDAiIHRpdGxlPSIyMDEzLTA3LTE1IDA5OjMzOjE3Ij5KdWx5IDE1LCAyMDEzPC90aW1lPjwvc3Bhbj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjbGFzcz0iaWNvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWZpbGUtdGV4dCI+PC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9InNwaW5uZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiIC8+Cis8L3RkPgorPHRkIGNsYXNzPSJjb250ZW50Ij4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9ibG9iL21hc3Rlci9MSUNFTlNFIiBjbGFzcz0ianMtZGlyZWN0b3J5LWxpbmsiIGlkPSI5ODc5ZDZkYjk2ZmQyOTEzNGZjODAyMjE0MTYzYjk1YS02YzYzMGEwODcxZTgyMzk3NjE4MTNhYzA3NGMxNzg4MjA2MGI3M2E2IiB0aXRsZT0iTElDRU5TRSI+TElDRU5TRTwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJtZXNzYWdlIj4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvMzNjNTUyMjE0NmYxYjQ4MDU0MjU5ODQ4Y2Y3MTFhZWJiZTEzMzMzNyIgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGpheD0idHJ1ZSIgdGl0bGU9Ik1lcmdlIj5NZXJnZTwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJhZ2UiPjxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PHRpbWUgY2xhc3M9ImpzLXJlbGF0aXZlLWRhdGUiIGRhdGV0aW1lPSIyMDEzLTA3LTE1VDA5OjMzOjE3LTA3OjAwIiB0aXRsZT0iMjAxMy0wNy0xNSAwOTozMzoxNyI+SnVseSAxNSwgMjAxMzwvdGltZT48L3NwYW4+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY2xhc3M9Imljb24iPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1maWxlLXRleHQiPjwvc3Bhbj4KKzxpbWcgYWx0PSJPY3RvY2F0LXNwaW5uZXItMzIiIGNsYXNzPSJzcGlubmVyIiBoZWlnaHQ9IjE2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9pbWFnZXMvc3Bpbm5lcnMvb2N0b2NhdC1zcGlubmVyLTMyLmdpZiIgd2lkdGg9IjE2IiAvPgorPC90ZD4KKzx0ZCBjbGFzcz0iY29udGVudCI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiBjbGFzcz0ianMtZGlyZWN0b3J5LWxpbmsiIGlkPSIwNGM2ZTkwZmFhYzI2NzVhYTg5ZTIxNzZkMmVlYzdkOC00MTQyMDJlMTc5OTkwOGQ3NzI3ZWZiY2JiOWZlMmU1OGVmNDJkMTE0IiB0aXRsZT0iUkVBRE1FLm1kIj5SRUFETUUubWQ8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0ibWVzc2FnZSI+Cis8c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjxhIGhyZWY9Ii9pbmlrdWxpbi9wYXJzZTUvY29tbWl0LzZjNTQxNDk4ZDMyM2NjNjEzMGQwOThmMjQyZWJjMTAxMzJhZDFlYWEiIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBqYXg9InRydWUiIHRpdGxlPSJBZGQgYSBCaXRkZWxpIGJhZGdlIHRvIFJFQURNRSI+QWRkIGEgQml0ZGVsaSBiYWRnZSB0byBSRUFETUU8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0iYWdlIj48c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjx0aW1lIGNsYXNzPSJqcy1yZWxhdGl2ZS1kYXRlIiBkYXRldGltZT0iMjAxMy0xMi0xMFQwNzozMzozMS0wODowMCIgdGl0bGU9IjIwMTMtMTItMTAgMDc6MzM6MzEiPkRlY2VtYmVyIDEwLCAyMDEzPC90aW1lPjwvc3Bhbj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjbGFzcz0iaWNvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWZpbGUtdGV4dCI+PC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9InNwaW5uZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiIC8+Cis8L3RkPgorPHRkIGNsYXNzPSJjb250ZW50Ij4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9ibG9iL21hc3Rlci9pbmRleC5qcyIgY2xhc3M9ImpzLWRpcmVjdG9yeS1saW5rIiBpZD0iMTY4NzI2ZGJlOTZiM2NlNDI3ZTdmZWRjZTMxYmIwYmMtNDIzYjlhMTUxMWUwZThkOGU0MzQzNGZlYmNiY2NjYTYyNjcxZGYxOSIgdGl0bGU9ImluZGV4LmpzIj5pbmRleC5qczwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJtZXNzYWdlIj4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvZTdhZjQzNzQxMDgyNzY3OTZhOTk5MWQ0OTI3ODQyOWViMzMyOTNhYiIgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGpheD0idHJ1ZSIgdGl0bGU9IkltcGxlbWVudGF0aW9uIG9mIHRoZSBodG1scGFyc2VyMiB0cmVlIHN1cHBvcnQgc3RhcnRlZCI+SW1wbGVtZW50YXRpb24gb2YgdGhlIGh0bWxwYXJzZXIyIHRyZWUgc3VwcG9ydCBzdGFydGVkPC9hPjwvc3Bhbj4KKzwvdGQ+Cis8dGQgY2xhc3M9ImFnZSI+PHNwYW4gY2xhc3M9ImNzcy10cnVuY2F0ZSBjc3MtdHJ1bmNhdGUtdGFyZ2V0Ij48dGltZSBjbGFzcz0ianMtcmVsYXRpdmUtZGF0ZSIgZGF0ZXRpbWU9IjIwMTQtMDEtMjRUMDQ6MTE6NTItMDg6MDAiIHRpdGxlPSIyMDE0LTAxLTI0IDA0OjExOjUyIj5KYW51YXJ5IDI0LCAyMDE0PC90aW1lPjwvc3Bhbj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjbGFzcz0iaWNvbiI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWZpbGUtdGV4dCI+PC9zcGFuPgorPGltZyBhbHQ9Ik9jdG9jYXQtc3Bpbm5lci0zMiIgY2xhc3M9InNwaW5uZXIiIGhlaWdodD0iMTYiIHNyYz0iaHR0cHM6Ly9naXRodWIuZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2ltYWdlcy9zcGlubmVycy9vY3RvY2F0LXNwaW5uZXItMzIuZ2lmIiB3aWR0aD0iMTYiIC8+Cis8L3RkPgorPHRkIGNsYXNzPSJjb250ZW50Ij4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9ibG9iL21hc3Rlci9wYWNrYWdlLmpzb24iIGNsYXNzPSJqcy1kaXJlY3RvcnktbGluayIgaWQ9ImI5Y2ZjN2YyY2RmNzhhN2Y0YjkxYTc1M2QxMDg2NWEyLTk5Mzk3YTFkZDMxMzMyYjlhNjRkOWFmOWNmMzJiNzM0MGE2MDBmOTIiIHRpdGxlPSJwYWNrYWdlLmpzb24iPnBhY2thZ2UuanNvbjwvYT48L3NwYW4+Cis8L3RkPgorPHRkIGNsYXNzPSJtZXNzYWdlIj4KKzxzcGFuIGNsYXNzPSJjc3MtdHJ1bmNhdGUgY3NzLXRydW5jYXRlLXRhcmdldCI+PGEgaHJlZj0iL2luaWt1bGluL3BhcnNlNS9jb21taXQvYjhkNTYyNTc4OTczNTdlNjU1YTcxYmEyMWQ0YmQ0MGUxMmIzMzIzMCIgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGpheD0idHJ1ZSIgdGl0bGU9IkV4cG9zZSBUb2tlbml6ZXIiPkV4cG9zZSBUb2tlbml6ZXI8L2E+PC9zcGFuPgorPC90ZD4KKzx0ZCBjbGFzcz0iYWdlIj48c3BhbiBjbGFzcz0iY3NzLXRydW5jYXRlIGNzcy10cnVuY2F0ZS10YXJnZXQiPjx0aW1lIGNsYXNzPSJqcy1yZWxhdGl2ZS1kYXRlIiBkYXRldGltZT0iMjAxNC0wMS0yNFQwMToyNzo0My0wODowMCIgdGl0bGU9IjIwMTQtMDEtMjQgMDE6Mjc6NDMiPkphbnVhcnkgMjQsIDIwMTQ8L3RpbWU+PC9zcGFuPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKworPC90YWJsZT4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZWFkbWUiIGNsYXNzPSJjbGVhcmZpeCBhbm5vdW5jZSBpbnN0YXBhcGVyX2JvZHkgbWQiPgorPHNwYW4gY2xhc3M9Im5hbWUiPgorPHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1ib29rIj48L3NwYW4+CitSRUFETUUubWQKKzwvc3Bhbj4KKworPGFydGljbGUgY2xhc3M9Im1hcmtkb3duLWJvZHkgZW50cnktY29udGVudCIgaXRlbXByb3A9Im1haW5Db250ZW50T2ZQYWdlIj48aDE+Cis8YSBuYW1lPSJwYXJzZTUiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiNwYXJzZTUiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwvYT5wYXJzZTU8L2gxPgorCis8cD5GYXN0IGZ1bGwtZmVhdHVyZWQgSFRNTCBwYXJzZXIgZm9yIE5vZGUuIEJhc2VkIG9uIFdIQVRXRyBIVE1MNSBzcGVjaWZpY2F0aW9uLjxicj4KK1RvIGJ1aWxkIDxhIGhyZWY9Imh0dHA6Ly90ZXN0Y2FmZS5kZXZleHByZXNzLmNvbS8iPlRlc3RDYWbDqTwvYT4gd2UgbmVlZGVkIGZhc3QgYW5kIHJlYWR5IGZvciBwcm9kdWN0aW9uIEhUTUwgcGFyc2VyIGZvciBub2RlLmpzLCB3aGljaCB3aWxsIHBhcnNlIEhUTUwgYXMgYSBtb2Rlcm4gYnJvd3NlcidzIHBhcnNlci4KK0V4aXN0aW5nIHNvbHV0aW9ucyB3ZXJlIGVpdGhlciB0b28gc2xvdyBvciB0aGVpciBvdXRwdXQgd2FzIHRvbyBpbmFjY3VyYXRlLiBTbywgdGhpcyBpcyBob3cgcGFyc2U1IHdhcyBib3JuLjwvcD4KKworPGgyPgorPGEgbmFtZT0iaW5zdGFsbCIgY2xhc3M9ImFuY2hvciIgaHJlZj0iI2luc3RhbGwiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwvYT5JbnN0YWxsPC9oMj4KKworPHByZT48Y29kZT4kIG5wbSBpbnN0YWxsIHBhcnNlNQorPC9jb2RlPjwvcHJlPgorCis8aDI+Cis8YSBuYW1lPSJ1c2FnZS1hbmQtYXBpIiBjbGFzcz0iYW5jaG9yIiBocmVmPSIjdXNhZ2UtYW5kLWFwaSI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIj48L3NwYW4+PC9hPlVzYWdlIGFuZCBBUEk8L2gyPgorCis8ZGl2IGNsYXNzPSJoaWdobGlnaHQgaGlnaGxpZ2h0LWpzIj48cHJlPjxzcGFuIGNsYXNzPSJrZCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPlBhcnNlcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+cmVxdWlyZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0iczEiPidwYXJzZTUnPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pLjwvc3Bhbj48c3BhbiBjbGFzcz0ibngiPlBhcnNlcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KKworPHNwYW4gY2xhc3M9ImMxIj4vL0luc3RhbnRpYXRlIHBhcnNlcjwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJrZCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPnBhcnNlcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im8iPj08L3NwYW4+IDxzcGFuIGNsYXNzPSJrIj5uZXc8L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+UGFyc2VyPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4oKTs8L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJjMSI+Ly9UaGVuIGZlZWQgaXQgd2l0aCBhbiBIVE1MIGRvY3VtZW50PC9zcGFuPgorPHNwYW4gY2xhc3M9ImtkIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+ZG9jdW1lbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPnBhcnNlcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0ibngiPnBhcnNlPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4oPC9zcGFuPjxzcGFuIGNsYXNzPSJzMSI+JyZsdDshRE9DVFlQRSBodG1sJmd0OyZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OyZsdDsvaGVhZCZndDsmbHQ7Ym9keSZndDtIaSB0aGVyZSEmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Oyc8L3NwYW4+PHNwYW4gY2xhc3M9InAiPik8L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJjMSI+Ly9Ob3cgbGV0J3MgcGFyc2UgSFRNTC1zbmlwcGV0PC9zcGFuPgorPHNwYW4gY2xhc3M9ImtkIj52YXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJueCI+ZnJhZ21lbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPnBhcnNlcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0ibngiPnBhcnNlRnJhZ21lbnQ8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9InMxIj4nJmx0O3RpdGxlJmd0O1BhcnNlNSBpcyAmYW1wOyMxMDI7JmFtcDsjMTE3OyZhbXA7Izk5OyZhbXA7IzEwNztpbmcgYXdlc29tZSEmbHQ7L3RpdGxlJmd0OyZsdDtoMSZndDs0MiZsdDsvaDEmZ3Q7Jzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KTs8L3NwYW4+CisKKzwvcHJlPjwvZGl2PgorCis8aDI+Cis8YSBuYW1lPSJpcy1pdC1mYXN0IiBjbGFzcz0iYW5jaG9yIiBocmVmPSIjaXMtaXQtZmFzdCI+PHNwYW4gY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIj48L3NwYW4+PC9hPklzIGl0IGZhc3Q/PC9oMj4KKworPHA+Q2hlY2sgb3V0IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9ub2RlLWh0bWwtcGFyc2VyLWJlbmNoIj50aGlzIGJlbmNobWFyazwvYT4uPC9wPgorCis8cHJlPjxjb2RlPlN0YXJ0aW5nIGJlbmNobWFyay4gRmFzdGVuIHlvdXIgc2VhdGJlbHRzLi4uCitodG1sNSAoaHR0cHM6Ly9naXRodWIuY29tL2FyZWRyaWRlbC9odG1sNSkgeCAwLjE4IG9wcy9zZWMgwrE1LjkyJSAoNSBydW5zIHNhbXBsZWQpCitodG1scGFyc2VyIChodHRwczovL2dpdGh1Yi5jb20vdGF1dG9sb2dpc3RpY3Mvbm9kZS1odG1scGFyc2VyLykgeCAzLjgzIG9wcy9zZWMgwrE0Mi40MyUgKDE0IHJ1bnMgc2FtcGxlZCkKK2h0bWxwYXJzZXIyIChodHRwczovL2dpdGh1Yi5jb20vZmI1NS9odG1scGFyc2VyMikgeCA0LjA1IG9wcy9zZWMgwrEzOS4yNyUgKDE1IHJ1bnMgc2FtcGxlZCkKK3BhcnNlNSAoaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNSkgeCAzLjA0IG9wcy9zZWMgwrE1MS44MSUgKDEzIHJ1bnMgc2FtcGxlZCkKK0Zhc3Rlc3QgaXMgaHRtbHBhcnNlcjIgKGh0dHBzOi8vZ2l0aHViLmNvbS9mYjU1L2h0bWxwYXJzZXIyKSxwYXJzZTUgKGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUpCis8L2NvZGU+PC9wcmU+CisKKzxwPlNvLCBwYXJzZTUgaXMgYXMgZmFzdCBhcyBzaW1wbGUgc3BlY2lmaWNhdGlvbiBpbmNvbXBhdGlibGUgcGFyc2VycyBhbmQgfjE1LXRpbWVzKCEpIGZhc3RlciB0aGFuIHRoZSBjdXJyZW50IHNwZWNpZmljYXRpb24gY29tcGF0aWJsZSBwYXJzZXIgYXZhaWxhYmxlIGZvciB0aGUgbm9kZS48L3A+CisKKzxoMj4KKzxhIG5hbWU9InRlc3RpbmciIGNsYXNzPSJhbmNob3IiIGhyZWY9IiN0ZXN0aW5nIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+VGVzdGluZzwvaDI+CisKKzxwPlRlc3QgZGF0YSBpcyBhZG9wdGVkIGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2h0bWw1bGliIj5odG1sNWxpYiBwcm9qZWN0PC9hPi4gUGFyc2VyIGlzIGNvdmVyZWQgYnkgbW9yZSB0aGFuIDgwMDAgdGVzdCBjYXNlcy4KK1RvIHJ1biB0ZXN0czo8L3A+CisKKzxwcmU+PGNvZGU+JCBub2RlIHRlc3QvcnVuX3Rlc3RzLmpzCis8L2NvZGU+PC9wcmU+CisKKzxoMj4KKzxhIG5hbWU9ImN1c3RvbS10cmVlLWFkYXB0ZXIiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiNjdXN0b20tdHJlZS1hZGFwdGVyIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+Q3VzdG9tIHRyZWUgYWRhcHRlcjwvaDI+CisKKzxwPllvdSBjYW4gY3JlYXRlIGEgY3VzdG9tIHRyZWUgYWRhcHRlciBzbyBwYXJzZTUgY2FuIHdvcmsgd2l0aCB5b3VyIG93biBET00tdHJlZSBpbXBsZW1lbnRhdGlvbi4KK0p1c3QgcGFzcyB5b3VyIGFkYXB0ZXIgaW1wbGVtZW50YXRpb24gdG8gdGhlIHBhcnNlcidzIGNvbnN0cnVjdG9yIGFzIGFuIGFyZ3VtZW50OjwvcD4KKworPGRpdiBjbGFzcz0iaGlnaGxpZ2h0IGhpZ2hsaWdodC1qcyI+PHByZT48c3BhbiBjbGFzcz0ia2QiPnZhcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im54Ij5QYXJzZXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPnJlcXVpcmU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPig8L3NwYW4+PHNwYW4gY2xhc3M9InMxIj4ncGFyc2U1Jzwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KS48L3NwYW4+PHNwYW4gY2xhc3M9Im54Ij5QYXJzZXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJrZCI+dmFyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPm15VHJlZUFkYXB0ZXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KKzxzcGFuIGNsYXNzPSJjMSI+Ly9BZGFwdGVyIG1ldGhvZHMuLi48L3NwYW4+Cis8c3BhbiBjbGFzcz0icCI+fTs8L3NwYW4+CisKKzxzcGFuIGNsYXNzPSJjMSI+Ly9JbnN0YW50aWF0ZSBwYXJzZXI8L3NwYW4+Cis8c3BhbiBjbGFzcz0ia2QiPnZhcjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im54Ij5wYXJzZXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0iayI+bmV3PC9zcGFuPiA8c3BhbiBjbGFzcz0ibngiPlBhcnNlcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibngiPm15VHJlZUFkYXB0ZXI8L3NwYW4+PHNwYW4gY2xhc3M9InAiPik7PC9zcGFuPgorPC9wcmU+PC9kaXY+CisKKzxwPlNhbXBsZSBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL21hc3Rlci9saWIvZGVmYXVsdF90cmVlX2FkYXB0ZXIuanMiPmhlcmU8L2E+LgorVGhlIGN1c3RvbSB0cmVlIGFkYXB0ZXIgc2hvdWxkIGltcGxlbWVudCBhbGwgbWV0aG9kcyBleHBvc2VkIHZpYSA8Y29kZT5leHBvcnRzPC9jb2RlPiBpbiB0aGUgc2FtcGxlIGltcGxlbWVudGF0aW9uLjwvcD4KKworPGgyPgorPGEgbmFtZT0icXVlc3Rpb25zLW9yLXN1Z2dlc3Rpb25zIiBjbGFzcz0iYW5jaG9yIiBocmVmPSIjcXVlc3Rpb25zLW9yLXN1Z2dlc3Rpb25zIj48c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiPjwvc3Bhbj48L2E+UXVlc3Rpb25zIG9yIHN1Z2dlc3Rpb25zPzwvaDI+CisKKzxwPklmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMsIHBsZWFzZSBmZWVsIGZyZWUgdG8gY3JlYXRlIGFuIGlzc3VlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzIj5oZXJlIG9uIGdpdGh1YjwvYT4uPC9wPgorCis8aDI+Cis8YSBuYW1lPSJhdXRob3IiIGNsYXNzPSJhbmNob3IiIGhyZWY9IiNhdXRob3IiPjxzcGFuIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayI+PC9zcGFuPjwvYT5BdXRob3I8L2gyPgorCis8cD48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4iPkl2YW4gTmlrdWxpbjwvYT4gKDxhIGhyZWY9Im1haWx0bzppZmFhYW5AZ21haWwuY29tIj5pZmFhYW5AZ21haWwuY29tPC9hPik8L3A+CisKKzxwPjxhIGhyZWY9Imh0dHBzOi8vYml0ZGVsaS5jb20vZnJlZSIgdGl0bGU9IkJpdGRlbGkgQmFkZ2UiPjxpbWcgc3JjPSJodHRwczovL2Qyd2Vjemh2bDgyM3YwLmNsb3VkZnJvbnQubmV0L2luaWt1bGluL3BhcnNlNS90cmVuZC5wbmciIGFsdD0iQml0ZGVsaSBCYWRnZSIgc3R5bGU9Im1heC13aWR0aDoxMDAlOyI+PC9hPjwvcD48L2FydGljbGU+Cis8L2Rpdj4KKworCis8L2Rpdj4KKworPC9kaXY+PCEtLSAvLnJlcG8tY29udGFpbmVyIC0tPgorPGRpdiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AiPjwvZGl2PgorPC9kaXY+PCEtLSAvLmNvbnRhaW5lciAtLT4KKzwvZGl2PjwhLS0gLy5zaXRlIC0tPgorCisKKzwvZGl2PjwhLS0gLy53cmFwcGVyIC0tPgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorPGRpdiBjbGFzcz0ic2l0ZS1mb290ZXIiPgorPHVsIGNsYXNzPSJzaXRlLWZvb3Rlci1saW5rcyByaWdodCI+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9zdGF0dXMuZ2l0aHViLmNvbS8iPlN0YXR1czwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbSI+QVBJPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3RyYWluaW5nLmdpdGh1Yi5jb20iPlRyYWluaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL3Nob3AuZ2l0aHViLmNvbSI+U2hvcDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii9ibG9nIj5CbG9nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL2Fib3V0Ij5BYm91dDwvYT48L2xpPgorCis8L3VsPgorCis8YSBocmVmPSIvIj4KKzxzcGFuIGNsYXNzPSJtZWdhLW9jdGljb24gb2N0aWNvbi1tYXJrLWdpdGh1YiIgdGl0bGU9IkdpdEh1YiI+PC9zcGFuPgorPC9hPgorCis8dWwgY2xhc3M9InNpdGUtZm9vdGVyLWxpbmtzIj4KKzxsaT4mY29weTsgMjAxNCA8c3BhbiB0aXRsZT0iMC4wNDY0OXMgZnJvbSBnaXRodWItZmUxMzktY3AxLXByZC5pYWQuZ2l0aHViLm5ldCI+R2l0SHViPC9zcGFuPiwgSW5jLjwvbGk+Cis8bGk+PGEgaHJlZj0iL3NpdGUvdGVybXMiPlRlcm1zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3NpdGUvcHJpdmFjeSI+UHJpdmFjeTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii9zZWN1cml0eSI+U2VjdXJpdHk8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvY29udGFjdCI+Q29udGFjdDwvYT48L2xpPgorPC91bD4KKzwvZGl2PjwhLS0gLy5zaXRlLWZvb3RlciAtLT4KKzwvZGl2PjwhLS0gLy5jb250YWluZXIgLS0+CisKKworPGRpdiBjbGFzcz0iZnVsbHNjcmVlbi1vdmVybGF5IGpzLWZ1bGxzY3JlZW4tb3ZlcmxheSIgaWQ9ImZ1bGxzY3JlZW5fb3ZlcmxheSI+Cis8ZGl2IGNsYXNzPSJmdWxsc2NyZWVuLWNvbnRhaW5lciBqcy1mdWxsc2NyZWVuLWNvbnRhaW5lciI+Cis8ZGl2IGNsYXNzPSJ0ZXh0YXJlYS13cmFwIj4KKzx0ZXh0YXJlYSBuYW1lPSJmdWxsc2NyZWVuLWNvbnRlbnRzIiBpZD0iZnVsbHNjcmVlbi1jb250ZW50cyIgY2xhc3M9ImpzLWZ1bGxzY3JlZW4tY29udGVudHMiIHBsYWNlaG9sZGVyPSIiIGRhdGEtc3VnZ2VzdGVyPSJmdWxsc2NyZWVuX3N1Z2dlc3RlciI+PC90ZXh0YXJlYT4KKzxkaXYgY2xhc3M9InN1Z2dlc3Rlci1jb250YWluZXIiPgorPGRpdiBjbGFzcz0ic3VnZ2VzdGVyIGZ1bGxzY3JlZW4tc3VnZ2VzdGVyIGpzLW5hdmlnYXRpb24tY29udGFpbmVyIiBpZD0iZnVsbHNjcmVlbl9zdWdnZXN0ZXIiCitkYXRhLXVybD0iL2luaWt1bGluL3BhcnNlNS9zdWdnZXN0aW9ucy9jb21taXQiPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJmdWxsc2NyZWVuLXNpZGViYXIiPgorPGEgaHJlZj0iIyIgY2xhc3M9ImV4aXQtZnVsbHNjcmVlbiBqcy1leGl0LWZ1bGxzY3JlZW4gdG9vbHRpcHBlZCBsZWZ0d2FyZHMiIHRpdGxlPSJFeGl0IFplbiBNb2RlIj4KKzxzcGFuIGNsYXNzPSJtZWdhLW9jdGljb24gb2N0aWNvbi1zY3JlZW4tbm9ybWFsIj48L3NwYW4+Cis8L2E+Cis8YSBocmVmPSIjIiBjbGFzcz0idGhlbWUtc3dpdGNoZXIganMtdGhlbWUtc3dpdGNoZXIgdG9vbHRpcHBlZCBsZWZ0d2FyZHMiCit0aXRsZT0iU3dpdGNoIHRoZW1lcyI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWNvbG9yLW1vZGUiPjwvc3Bhbj4KKzwvYT4KKzwvZGl2PgorPC9kaXY+CisKKworCis8ZGl2IGlkPSJhamF4LWVycm9yLW1lc3NhZ2UiIGNsYXNzPSJmbGFzaCBmbGFzaC1lcnJvciI+Cis8c3BhbiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWFsZXJ0Ij48L3NwYW4+Cis8YSBocmVmPSIjIiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXJlbW92ZS1jbG9zZSBjbG9zZSBqcy1hamF4LWVycm9yLWRpc21pc3MiPjwvYT4KK1NvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhhdCByZXF1ZXN0LiBQbGVhc2UgdHJ5IGFnYWluLgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vd2hhdHdnX2h0bWwvZXhwZWN0ZWQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL3doYXR3Z19odG1sL2V4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZmZmE1OAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL3doYXR3Z19odG1sL2V4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMzA1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuLVVTLXgtaGl4aWUiIGNsYXNzPSJzcGxpdCBpbmRleCI+PGhlYWQ+PHRpdGxlPkhUTUwgU3RhbmRhcmQ8L3RpdGxlPjxzY3JpcHQ+Cit2YXIgbG9hZFRpbWVyID0gbmV3IERhdGUoKTsKK3ZhciBjdXJyZW50X3JldmlzaW9uID0gInIiICsgIiRSZXZpc2lvbjogODQzNCAkIi5zdWJzdHIoMTEpOworY3VycmVudF9yZXZpc2lvbiA9IGN1cnJlbnRfcmV2aXNpb24uc3Vic3RyKDAsIGN1cnJlbnRfcmV2aXNpb24ubGVuZ3RoIC0gMik7Cit2YXIgbGFzdF9rbm93bl9yZXZpc2lvbiA9IGN1cnJlbnRfcmV2aXNpb247CitmdW5jdGlvbiBGKCAvKiB2YXJhcmdzLi4uICovKSB7Cit2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Citmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggKz0gMSkgeworaWYgKGFyZ3VtZW50c1tpbmRleF0gaW5zdGFuY2VvZiBBcnJheSkgeworZnJhZ21lbnQuYXBwZW5kQ2hpbGQoRi5hcHBseSh0aGlzLCBhcmd1bWVudHNbaW5kZXhdKSk7Cit9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHNbaW5kZXhdID09ICdzdHJpbmcnKSB7CitmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShhcmd1bWVudHNbaW5kZXhdKSk7Cit9IGVsc2UgeworZnJhZ21lbnQuYXBwZW5kQ2hpbGQoYXJndW1lbnRzW2luZGV4XSk7Cit9Cit9CityZXR1cm4gZnJhZ21lbnQ7Cit9CitmdW5jdGlvbiBFKG5hbWUsIC8qIG9wdGlvbmFsICovIGF0dHJpYnV0ZXMgLyosIHZhcmFyZ3MuLi4gKi8pIHsKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTsKK3ZhciBpbmRleCA9IDE7CitpZiAoKGFyZ3VtZW50cy5sZW5ndGggPiAxKSAmJiAodHlwZW9mIGF0dHJpYnV0ZXMgIT0gJ3N0cmluZycpICYmCisoIShhdHRyaWJ1dGVzIGluc3RhbmNlb2YgTm9kZSkpICYmICghKGF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBBcnJheSkpKSB7Citmb3IgKHZhciBhdHROYW1lIGluIGF0dHJpYnV0ZXMpIHsKK2lmICh0eXBlb2YgYXR0cmlidXRlc1thdHROYW1lXSA9PSAnYm9vbGVhbicpIHsKK2lmIChhdHRyaWJ1dGVzW2F0dE5hbWVdKQorZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0TmFtZSwgJycpOworfSBlbHNlIGlmICh0eXBlb2YgYXR0cmlidXRlc1thdHROYW1lXSA9PSAnZnVuY3Rpb24nKSB7CitlbGVtZW50W2F0dE5hbWVdID0gYXR0cmlidXRlc1thdHROYW1lXTsKK30gZWxzZSB7CitlbGVtZW50LnNldEF0dHJpYnV0ZShhdHROYW1lLCBhdHRyaWJ1dGVzW2F0dE5hbWVdKTsKK30KK30KK2luZGV4ID0gMjsKK30KK2ZvciAoOyBpbmRleCA8IGFyZ3VtZW50cy5sZW5ndGg7IGluZGV4ICs9IDEpIHsKK2lmIChhcmd1bWVudHNbaW5kZXhdIGluc3RhbmNlb2YgQXJyYXkpIHsKK2VsZW1lbnQuYXBwZW5kQ2hpbGQoRi5hcHBseSh0aGlzLCBhcmd1bWVudHNbaW5kZXhdKSk7Cit9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHNbaW5kZXhdID09ICdzdHJpbmcnKSB7CitlbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGFyZ3VtZW50c1tpbmRleF0pKTsKK30gZWxzZSB7CitlbGVtZW50LmFwcGVuZENoaWxkKGFyZ3VtZW50c1tpbmRleF0pOworfQorfQorcmV0dXJuIGVsZW1lbnQ7Cit9CitmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgewordmFyIHBhcmFtcyA9IGxvY2F0aW9uLnNlYXJjaC5zdWJzdHIoMSkuc3BsaXQoIiYiKTsKK2ZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBwYXJhbXMubGVuZ3RoOyBpbmRleCsrKSB7CitpZiAocGFyYW1zW2luZGV4XSA9PSBuYW1lKQorcmV0dXJuICIxIjsKK3ZhciBkYXRhID0gcGFyYW1zW2luZGV4XS5zcGxpdCgiPSIpOworaWYgKGRhdGFbMF0gPT0gbmFtZSkKK3JldHVybiB1bmVzY2FwZShkYXRhWzFdKTsKK30KK3ZhciBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCI7ICIpOworZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGNvb2tpZXMubGVuZ3RoOyBpbmRleCsrKSB7Cit2YXIgZGF0YSA9IGNvb2tpZXNbaW5kZXhdLnNwbGl0KCI9Iik7CitpZiAoZGF0YVswXSA9PSBuYW1lKQorcmV0dXJuIHVuZXNjYXBlKGRhdGFbMV0pOworfQorcmV0dXJuIG51bGw7Cit9Cit2YXIgY3VycmVudEFsZXJ0OwordmFyIGN1cnJlbnRBbGVydFRpbWVvdXQ7CitmdW5jdGlvbiBzaG93QWxlcnQocywgaHJlZikgeworaWYgKCFjdXJyZW50QWxlcnQpIHsKK2N1cnJlbnRBbGVydCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY3VycmVudEFsZXJ0LmlkID0gJ2FsZXJ0JzsKK3ZhciB4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Cit4LnRleHRDb250ZW50ID0gJ1x1MjU3Myc7Cit4Lm9uY2xpY2sgPSBjbG9zZUFsZXJ0MjsKK2N1cnJlbnRBbGVydC5hcHBlbmRDaGlsZCh4KTsKK2N1cnJlbnRBbGVydC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworY3VycmVudEFsZXJ0Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24gKCkgeworY2xlYXJUaW1lb3V0KGN1cnJlbnRBbGVydFRpbWVvdXQpOworY3VycmVudEFsZXJ0LmNsYXNzTmFtZSA9ICcnOworY3VycmVudEFsZXJ0VGltZW91dCA9IHNldFRpbWVvdXQoY2xvc2VBbGVydCwgMTAwMDApOworfQorZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjdXJyZW50QWxlcnQpOworfSBlbHNlIHsKK2NsZWFyVGltZW91dChjdXJyZW50QWxlcnRUaW1lb3V0KTsKK2N1cnJlbnRBbGVydC5jbGFzc05hbWUgPSAnJzsKK30KK2N1cnJlbnRBbGVydC5sYXN0Q2hpbGQudGV4dENvbnRlbnQgPSAnJzsKK2N1cnJlbnRBbGVydC5sYXN0Q2hpbGQuYXBwZW5kQ2hpbGQoRihzKSk7CitpZiAoaHJlZikgewordmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CitsaW5rLmhyZWYgPSBocmVmOworbGluay50ZXh0Q29udGVudCA9IGhyZWY7CitjdXJyZW50QWxlcnQubGFzdENoaWxkLmFwcGVuZENoaWxkKEYoJyAnLCBsaW5rKSk7Cit9CitjdXJyZW50QWxlcnRUaW1lb3V0ID0gc2V0VGltZW91dChjbG9zZUFsZXJ0LCAxMDAwMCk7Cit9CitmdW5jdGlvbiBjbG9zZUFsZXJ0KCkgeworY2xlYXJUaW1lb3V0KGN1cnJlbnRBbGVydFRpbWVvdXQpOworaWYgKGN1cnJlbnRBbGVydCkgeworY3VycmVudEFsZXJ0LmNsYXNzTmFtZSA9ICdjbG9zZWQnOworY3VycmVudEFsZXJ0VGltZW91dCA9IHNldFRpbWVvdXQoY2xvc2VBbGVydDIsIDMwMDApOworfQorfQorZnVuY3Rpb24gY2xvc2VBbGVydDIoKSB7CitjbGVhclRpbWVvdXQoY3VycmVudEFsZXJ0VGltZW91dCk7CitpZiAoY3VycmVudEFsZXJ0KSB7CitjdXJyZW50QWxlcnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjdXJyZW50QWxlcnQpOworY3VycmVudEFsZXJ0ID0gbnVsbDsKK30KK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGV2ZW50KSB7CitpZiAoZXZlbnQua2V5Q29kZSA9PSAyNykgeworaWYgKGN1cnJlbnRBbGVydCkKK2Nsb3NlQWxlcnQyKCk7Cit9IGVsc2UgeworY2xvc2VBbGVydCgpOworfQorfSwgZmFsc2UpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZ1bmN0aW9uIChldmVudCkgeworY2xvc2VBbGVydCgpOworfSwgZmFsc2UpOworZnVuY3Rpb24gbG9hZChzY3JpcHQpIHsKK3ZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CitlLnNldEF0dHJpYnV0ZSgnc3JjJywgJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvJyArIHNjcmlwdCk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOworfQorPC9zY3JpcHQ+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3R5bGUvc3BlY2lmaWNhdGlvbiI+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvaW1hZ2VzL2ljb24iPjxzdHlsZT4KKy5wcm9wb3NhbCB7IGJvcmRlcjogYmx1ZSBzb2xpZDsgcGFkZGluZzogMWVtOyB9CisuYmFkLCAuYmFkICo6bm90KC5YWFgpIHsgY29sb3I6IGdyYXk7IGJvcmRlci1jb2xvcjogZ3JheTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH0KKyN1cGRhdGVzU3RhdHVzIHsgZGlzcGxheTogbm9uZTsgei1pbmRleDogMTA7IH0KKyN1cGRhdGVzU3RhdHVzLnJlbGV2YW50IHsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBmaXhlZDsgcmlnaHQ6IDFlbTsgdG9wOiAxZW07IHBhZGRpbmc6IDAuNWVtOyBmb250OiBib2xkIHNtYWxsIHNhbnMtc2VyaWY7IG1pbi13aWR0aDogMjVlbTsgd2lkdGg6IDMwJTsgbWF4LXdpZHRoOiA0MGVtOyBoZWlnaHQ6IGF1dG87IGJvcmRlcjogcmlkZ2UgNHB4IGdyYXk7IGJhY2tncm91bmQ6ICNFRUVFRUU7IGNvbG9yOiBibGFjazsgfQorZGl2LmhlYWQgLmxvZ28geyB3aWR0aDogMTFlbTsgbWFyZ2luLWJvdHRvbTogMjBlbTsgfQorI2NvbmZpZ1VJIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAyMDsgdG9wOiAxMGVtOyByaWdodDogMDsgd2lkdGg6IDExZW07IHBhZGRpbmc6IDAgMC41ZW0gMCAwLjVlbTsgZm9udC1zaXplOiBzbWFsbDsgYmFja2dyb3VuZDogZ3JheTsgYmFja2dyb3VuZDogcmdiYSgzMiwzMiwzMiwwLjkpOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDFlbSAwIDAgMWVtOyAtbW96LWJvcmRlci1yYWRpdXM6IDFlbSAwIDAgMWVtOyB9CisjY29uZmlnVUkgcCB7IG1hcmdpbjogMC43NWVtIDA7IHBhZGRpbmc6IDAuM2VtOyB9CisjY29uZmlnVUkgcCBsYWJlbCB7IGRpc3BsYXk6IGJsb2NrOyB9CisjY29uZmlnVUkgI3VwZGF0ZVVJLCAjY29uZmlnVUkgLmxvZ2luVUkgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKyNjb25maWdVSSBpbnB1dFt0eXBlPWJ1dHRvbl0geyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyB9CisjY29uZmlnVUkgOmxpbmssICNjb25maWdVSSA6dmlzaXRlZCB7IGNvbG9yOiB3aGl0ZTsgfQorI2NvbmZpZ1VJIDpsaW5rOmhvdmVyLCAjY29uZmlnVUkgOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfQorI3Jldmlld2VyIHsgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDA7IHJpZ2h0OiAwOyBwYWRkaW5nOiAwLjE1ZW0gMC4yNWVtIDBlbSAwLjVlbTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgei1pbmRleDogMzA7IGJhY2tncm91bmQ6IGdyYXk7IGJhY2tncm91bmQ6IHJnYmEoMzIsMzIsMzIsMC45KTsgY29sb3I6IHdoaXRlOyBib3JkZXItcmFkaXVzOiAxZW0gMCAwIDA7IC1tb3otYm9yZGVyLXJhZGl1czogMWVtIDAgMCAwOyBtYXgtd2lkdGg6IDkwJTsgfQorI3Jldmlld2VyIGlucHV0IHsgbWF4LXdpZHRoOiA1MCU7IH0KKyNyZXZpZXdlciAqIHsgZm9udC1zaXplOiBzbWFsbDsgfQorI3Jldmlld2VyLm9mZiA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IGRpc3BsYXk6IG5vbmU7IH0KKyNhbGVydCB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAyMCU7IGxlZnQ6IDIwJTsgcmlnaHQ6IDIwJTsgZm9udC1zaXplOiAyZW07IHBhZGRpbmc6IDAuNWVtOyB6LWluZGV4OiA0MDsgYmFja2dyb3VuZDogZ3JheTsgYmFja2dyb3VuZDogcmdiYSgzMiwzMiwzMiwwLjkpOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDFlbTsgLW1vei1ib3JkZXItcmFkaXVzOiAxZW07IC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBsaW5lYXI7IH0KKyNhbGVydC5jbG9zZWQgeyBvcGFjaXR5OiAwOyB9CisjYWxlcnQgYnV0dG9uIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0xZW07IHJpZ2h0OiAyZW07IGJvcmRlci1yYWRpdXM6IDFlbSAxZW0gMCAwOyBib3JkZXI6IG5vbmU7IGxpbmUtaGVpZ2h0OiAwLjk7IGNvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZDogcmdiKDY0LDY0LDY0KTsgZm9udC1zaXplOiAwLjZlbTsgZm9udC13ZWlnaHQ6IDkwMDsgY3Vyc29yOiBwb2ludGVyOyB9CisjYWxlcnQgOmxpbmssICNhbGVydCA6dmlzaXRlZCB7IGNvbG9yOiB3aGl0ZTsgfQorI2FsZXJ0IDpsaW5rOmhvdmVyLCAjYWxlcnQgOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfQorQG1lZGlhIHByaW50IHsgI2NvbmZpZ1VJIHsgZGlzcGxheTogbm9uZTsgfSB9CisucmZjMjExOSB7IGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsgdGV4dC1zaGFkb3c6IDAgMCAwLjVlbSB5ZWxsb3c7IHBvc2l0aW9uOiBzdGF0aWM7IH0KKy5yZmMyMTE5OjphZnRlciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgd2lkdGg6IDI1cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHllbGxvdzsgdGV4dC1zaGFkb3c6IDAuMDc1ZW0gMC4wNzVlbSAwLjJlbSBibGFjazsgfQorLnJmYzIxMTkubVx1c3Q6OmFmdGVyIHsgY29udGVudDogJ1wyNjA1JzsgfQorLnJmYzIxMTkuc1xob3VsZDo6YWZ0ZXIgeyBjb250ZW50OiAnXDI2MDYnOyB9CitbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworLmZpbmdlcnByaW50IHsgZmxvYXQ6IHJpZ2h0OyB9CisKKy5hcHBsaWVzIHRoZWFkIHRoID4gKiB7IGRpc3BsYXk6IGJsb2NrOyB9CisuYXBwbGllcyB0aGVhZCBjb2RlIHsgZGlzcGxheTogYmxvY2s7IH0KKy5hcHBsaWVzIHRkIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuYXBwbGllcyAueWVzIHsgYmFja2dyb3VuZDogeWVsbG93OyB9CisKKy5tYXRyaXgsIC5tYXRyaXggdGQgeyBib3JkZXI6IGhpZGRlbjsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5tYXRyaXggeyBtYXJnaW4tbGVmdDogMmVtOyB9CisKKy52ZXJ0aWNhbC1zdW1tYXJ5LXRhYmxlIHRyID4gdGhbcm93c3Bhbj0iMiJdOmZpcnN0LWNoaWxkICsgdGgsCisudmVydGljYWwtc3VtbWFyeS10YWJsZSB0ciA+IHRkW3Jvd3NwYW49IjIiXTpmaXJzdC1jaGlsZCArIHRkIHsgYm9yZGVyLWJvdHRvbTogaGlkZGVuOyB9CisKKy5kaWNlLWV4YW1wbGUgeyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IGhpZGRlbiBzb2xpZCBzb2xpZCBoaWRkZW47IGJvcmRlci13aWR0aDogdGhpbjsgbWFyZ2luLWxlZnQ6IDNlbTsgfQorLmRpY2UtZXhhbXBsZSBjYXB0aW9uIHsgd2lkdGg6IDMwZW07IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC1zdHlsZTogaXRhbGljOyBwYWRkaW5nOiAwLjc1ZW0gMDsgdGV4dC1hbGlnbjogbGVmdDsgfQorLmRpY2UtZXhhbXBsZSB0ZCwgLmRpY2UtZXhhbXBsZSB0aCB7IGJvcmRlcjogc29saWQgdGhpbjsgd2lkdGg6IDEuMzVlbTsgaGVpZ2h0OiAxLjA1ZW07IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMDsgfQorCit0ZC5lZyB7IGJvcmRlci13aWR0aDogdGhpbjsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisKKyN0YWJsZS1leGFtcGxlLTEgeyBib3JkZXI6IHNvbGlkIHRoaW47IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1hcmdpbi1sZWZ0OiAzZW07IH0KKyN0YWJsZS1leGFtcGxlLTEgKiB7IGZvbnQtZmFtaWx5OiAiRXNzYXlzMTc0MyIsIHNlcmlmOyBsaW5lLWhlaWdodDogMS4wMWVtOyB9CisjdGFibGUtZXhhbXBsZS0xIGNhcHRpb24geyBwYWRkaW5nLWJvdHRvbTogMC41ZW07IH0KKyN0YWJsZS1leGFtcGxlLTEgdGhlYWQsICN0YWJsZS1leGFtcGxlLTEgdGJvZHkgeyBib3JkZXI6IG5vbmU7IH0KKyN0YWJsZS1leGFtcGxlLTEgdGgsICN0YWJsZS1leGFtcGxlLTEgdGQgeyBib3JkZXI6IHNvbGlkIHRoaW47IH0KKyN0YWJsZS1leGFtcGxlLTEgdGggeyBmb250LXdlaWdodDogbm9ybWFsOyB9CisjdGFibGUtZXhhbXBsZS0xIHRkIHsgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9CisjdGFibGUtZXhhbXBsZS0xIHRoIHsgcGFkZGluZzogMC41ZW07IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7IHBhZGRpbmctdG9wOiAwLjVlbTsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgcGFkZGluZy1ib3R0b206IDEuNWVtOyB9CisjdGFibGUtZXhhbXBsZS0xIHRib2R5IHRkOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAyLjVlbTsgcGFkZGluZy1yaWdodDogMDsgd2lkdGg6IDllbTsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIgeyBjb250ZW50OiBsZWFkZXIoIi4gIik7IH0KKyN0YWJsZS1leGFtcGxlLTEgdGJvZHkgdGQgeyBwYWRkaW5nLWxlZnQ6IDJlbTsgcGFkZGluZy1yaWdodDogMmVtOyB9CisjdGFibGUtZXhhbXBsZS0xIHRib2R5IHRkOmZpcnN0LWNoaWxkICsgdGQgeyB3aWR0aDogMTBlbTsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCArIHRkIH4gdGQgeyB3aWR0aDogMi41ZW07IH0KKyN0YWJsZS1leGFtcGxlLTEgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQgKyB0ZCArIHRkICsgdGQgfiB0ZCB7IHdpZHRoOiAxLjI1ZW07IH0KKworLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHsgYm9yZGVyOiBub25lOyBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyBib3JkZXItc3BhY2luZzogMS41ZW0gMGVtOyB3aWR0aDogNDBlbTsgbWFyZ2luLWxlZnQ6IDNlbTsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzICogeyBmb250LWZhbWlseTogIlRpbWVzIiwgc2VyaWY7IH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcyB0ZCwgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRoIHsgYm9yZGVyOiBub25lOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBwYWRkaW5nLXRvcDogMDsgcGFkZGluZy1ib3R0b206IDA7IH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcyB0Ym9keSB0aDpmaXJzdC1jaGlsZCB7IGJvcmRlci1sZWZ0OiBub25lOyB3aWR0aDogMTAwJTsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRoZWFkIHRoOmZpcnN0LWNoaWxkIH4gdGggeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkZXI7IGJvcmRlci1ib3R0b206IHNvbGlkIDJweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuYXBwbGUtdGFibGUtZXhhbXBsZXMgdGJvZHkgdGg6OmFmdGVyLCAuYXBwbGUtdGFibGUtZXhhbXBsZXMgdGZvb3QgdGg6OmFmdGVyIHsgY29udGVudDogbGVhZGVyKCIuICIpIH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcyB0Ym9keSB0aCwgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRmb290IHRoIHsgZm9udDogaW5oZXJpdDsgdGV4dC1hbGlnbjogbGVmdDsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRkIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcy5lMSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4OyB9CisuYXBwbGUtdGFibGUtZXhhbXBsZXMuZTEgdGJvZHkgKyB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogZG91YmxlIDNweDsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzLmUyIHRoW3Njb3BlPXJvd10geyBwYWRkaW5nLWxlZnQ6IDFlbTsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHN1cCB7IGxpbmUtaGVpZ2h0OiAwOyB9CisKKy50aHJlZS1jb2x1bW4tbm93cmFwIHRyID4gdGQ6Zmlyc3QtY2hpbGQsCisudGhyZWUtY29sdW1uLW5vd3JhcCB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQsCisudGhyZWUtY29sdW1uLW5vd3JhcCB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQgKyB0ZCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KKworLmRldGFpbHMtZXhhbXBsZSBpbWcgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9CisKKyNiYXNlNjQtdGFibGUgeword2hpdGUtc3BhY2U6IG5vd3JhcDsKK2ZvbnQtc2l6ZTogMC42ZW07Citjb2x1bW4td2lkdGg6IDZlbTsKK2NvbHVtbi1jb3VudDogNTsKK2NvbHVtbi1nYXA6IDFlbTsKKy1tb3otY29sdW1uLXdpZHRoOiA2ZW07CistbW96LWNvbHVtbi1jb3VudDogNTsKKy1tb3otY29sdW1uLWdhcDogMWVtOworLXdlYmtpdC1jb2x1bW4td2lkdGg6IDZlbTsKKy13ZWJraXQtY29sdW1uLWNvdW50OiA1OworLXdlYmtpdC1jb2x1bW4tZ2FwOiAxZW07Cit9CisjYmFzZTY0LXRhYmxlIHRoZWFkIHsgZGlzcGxheTogbm9uZTsgfQorI2Jhc2U2NC10YWJsZSAqIHsgYm9yZGVyOiBub25lOyB9CisjYmFzZTY0LXRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkOmFmdGVyIHsgY29udGVudDogJzonOyB9CisjYmFzZTY0LXRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQgeyB0ZXh0LWFsaWduOiByaWdodDsgfQorCisjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMtdGFibGUgeword2hpdGUtc3BhY2U6IG5vd3JhcDsKK2ZvbnQtc2l6ZTogMC42ZW07Citjb2x1bW4td2lkdGg6IDMwZW07Citjb2x1bW4tZ2FwOiAxZW07CistbW96LWNvbHVtbi13aWR0aDogMzBlbTsKKy1tb3otY29sdW1uLWdhcDogMWVtOworLXdlYmtpdC1jb2x1bW4td2lkdGg6IDMwZW07Cistd2Via2l0LWNvbHVtbi1nYXA6IDFlbTsKK30KKyNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQsCisjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkOmhvdmVyID4gc3BhbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiBhdXRvOyBsZWZ0OiBhdXRvOyBtYXJnaW4tbGVmdDogMC41ZW07IGxpbmUtaGVpZ2h0OiAxLjI7IGZvbnQtc2l6ZTogNWVtOyBib3JkZXI6IG91dHNldDsgcGFkZGluZzogMC4yNWVtIDAuNWVtOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgd2lkdGg6IDEuMjVlbTsgaGVpZ2h0OiBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKyNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciNlbnRpdHktQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCA+IHRkOmZpcnN0LWNoaWxkIHsgZm9udC1zaXplOiAwLjVlbTsgfQorCisuZ2x5cGguY29udHJvbCB7IGNvbG9yOiByZWQ7IH0KKworQGZvbnQtZmFjZSB7Citmb250LWZhbWlseTogJ0Vzc2F5czE3NDMnOworc3JjOiB1cmwoJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvZm9udHMvRXNzYXlzMTc0My50dGYnKTsKK30KK0Bmb250LWZhY2UgeworZm9udC1mYW1pbHk6ICdFc3NheXMxNzQzJzsKK2ZvbnQtd2VpZ2h0OiBib2xkOworc3JjOiB1cmwoJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvZm9udHMvRXNzYXlzMTc0My1Cb2xkLnR0ZicpOworfQorQGZvbnQtZmFjZSB7Citmb250LWZhbWlseTogJ0Vzc2F5czE3NDMnOworZm9udC1zdHlsZTogaXRhbGljOworc3JjOiB1cmwoJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvZm9udHMvRXNzYXlzMTc0My1JdGFsaWMudHRmJyk7Cit9CitAZm9udC1mYWNlIHsKK2ZvbnQtZmFtaWx5OiAnRXNzYXlzMTc0Myc7Citmb250LXN0eWxlOiBpdGFsaWM7Citmb250LXdlaWdodDogYm9sZDsKK3NyYzogdXJsKCdodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL2ZvbnRzL0Vzc2F5czE3NDMtQm9sZEl0YWxpYy50dGYnKTsKK30KKworPC9zdHlsZT48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsIiB0aXRsZT0iTm9ybWFsIj48bGluayByZWw9InN0eWxlc2hlZXQgYWx0ZXJuYXRlIiBocmVmPSJkYXRhOnRleHQvY3NzLC5pbXBsJTIwJTdCJTIwYmFja2dyb3VuZDolMjBwaW5rOyUyMCU3RCIgdGl0bGU9IkhpZ2hsaWdodCBpbXBsZW1lbnRhdGlvbi1vbmx5IHByb3NlIj48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0YXR1cy5jc3MiPjxzY3JpcHQ+Cit2YXIgc3RhcnRlZEluaXQgPSAwOworZnVuY3Rpb24gaW5pdCgpIHsKK3N0YXJ0ZWRJbml0ID0gMTsKK2lmIChsb2NhdGlvbi5zZWFyY2ggPT0gJz9zbG93LWJyb3dzZXInKQorcmV0dXJuOwordmFyIGNvbmZpZ1VJID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb25maWdVSS5pZCA9ICdjb25maWdVSSc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbmZpZ1VJKTsKK2xvYWQoJ3Jldmlld2VyLmpzJyk7CitpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZSA9PSAiIiB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lID09ICJzcGxpdCBpbmRleCIpCitsb2FkKCd0b2MuanMnKTsKK2xvYWQoJ3VwZGF0ZXIuanMnKTsKK2xvYWQoJ2Rmbi5qcycpOworbG9hZCgnc3RhdHVzLmpzJyk7CitpZiAoZ2V0Q29va2llKCdwcm9maWxlJykgPT0gJzEnKQorZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gyJylbMF0udGV4dENvbnRlbnQgKz0gJzsgbG9hZDogJyArIChuZXcgRGF0ZSgpIC0gbG9hZFRpbWVyKSArICdtcyc7Cit9CitpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZSA9PSAiIikKK3NldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworaWYgKCFzdGFydGVkSW5pdCkKK3Nob3dBbGVydCgiVG9vIHNsb3c/IFRyeSByZWFkaW5nIHRoZSBtdWx0aXBhZ2UgY29weSBvZiB0aGUgc3BlYyBpbnN0ZWFkOiIsICJodHRwOi8vd2hhdHdnLm9yZy9odG1sIik7Cit9LCA2MDAwKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgZnVuY3Rpb24gKGV2ZW50KSB7CitpZiAoKGV2ZW50LndoaWNoID09IDExNCkgJiYgKGV2ZW50Lm1ldGFLZXkpKSB7CitpZiAoIWNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZWxvYWQgdGhpcyBwYWdlPycpKQorZXZlbnQucHJldmVudERlZmF1bHQoKTsKK30KK30sIGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ibGluay1maXh1cC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+PGJvZHkgb25sb2FkPSJmaXhCcm9rZW5MaW5rKCk7IGluaXQoKSI+PGhlYWRlciBjbGFzcz0iaGVhZCIgaWQ9ImhlYWQiPjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cud2hhdHdnLm9yZy8iIGNsYXNzPSJsb2dvIj48aW1nIHdpZHRoPSIxMDEiIHNyYz0iL2ltYWdlcy9sb2dvIiBhbHQ9IldIQVRXRyIgaGVpZ2h0PSIxMDEiPjwvYT48L3A+Cis8aGdyb3VwPjxoMSBjbGFzcz0iYWxsY2FwcyI+SFRNTDwvaDE+Cis8aDIgY2xhc3M9Im5vLW51bSBuby10b2MiPkxpdmluZyBTdGFuZGFyZCDigJQgTGFzdCBVcGRhdGVkIDI4IEphbnVhcnkgMjAxNDwvaDI+Cis8L2hncm91cD48ZGw+PGR0PjxzdHJvbmc+V2ViIGRldmVsb3BlciBlZGl0aW9uOjwvc3Ryb25nPjwvZHQ+Cis8ZGQ+PHN0cm9uZz48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVycy53aGF0d2cub3JnLyI+aHR0cDovL2RldmVsb3BlcnMud2hhdHdnLm9yZy88L2E+PC9zdHJvbmc+PC9kZD4KKzxkdD5NdWx0aXBsZS1wYWdlIHZlcnNpb246PC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS8iPmh0dHA6Ly93aGF0d2cub3JnL2h0bWw8L2E+PC9kZD4KKzxkdD5PbmUtcGFnZSB2ZXJzaW9uOjwvZHQ+Cis8ZGQ+PGEgaHJlZj0iaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8iPmh0dHA6Ly93aGF0d2cub3JnL2M8L2E+PC9kZD4KKzxkdD5WYWxpZGF0b3JzPC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vdmFsaWRhdG9yLndoYXR3Zy5vcmcvIj5odHRwOi8vdmFsaWRhdG9yLndoYXR3Zy5vcmcvPC9hPjwvZGQ+Cis8ZHQ+UGFydGljaXBhdGU6PC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvbWFpbGluZy1saXN0Ij53aGF0d2dAd2hhdHdnLm9yZzwvYT48L2RkPgorPGRkPjxhIGhyZWY9Imh0dHA6Ly9mb3J1bXMud2hhdHdnLm9yZy8iPmh0dHA6Ly9mb3J1bXMud2hhdHdnLm9yZy88L2E+PC9kZD4KKzxkZD48YSBocmVmPSJodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvSVJDIj5JUkM6ICN3aGF0d2cgb24gRnJlZW5vZGU8L2E+PC9kZD4KKzxkdD5GQVE6PC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRkFRIj5odHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRkFRPC9hPjwvZGQ+Cis8ZHQ+VmVyc2lvbiBoaXN0b3J5OjwvZHQ+Cis8ZGQ+VHdpdHRlciB1cGRhdGVzOiA8YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vV0hBVFdHIj5odHRwOi8vdHdpdHRlci5jb20vV0hBVFdHPC9hPjwvZGQ+Cis8ZGQ+Q29tbWl0LVdhdGNoZXJzIG1haWxpbmcgbGlzdDogPGEgaHJlZj0iaHR0cDovL2xpc3RzLndoYXR3Zy5vcmcvbGlzdGluZm8uY2dpL2NvbW1pdC13YXRjaGVycy13aGF0d2cub3JnIj5odHRwOi8vbGlzdHMud2hhdHdnLm9yZy9saXN0aW5mby5jZ2kvY29tbWl0LXdhdGNoZXJzLXdoYXR3Zy5vcmc8L2E+PC9kZD4KKzxkZD5JbnRlcmFjdGl2ZSBXZWIgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vaHRtbDUub3JnL3Rvb2xzL3dlYi1hcHBzLXRyYWNrZXIiPmh0dHA6Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcjwvYT48L2RkPgorPGRkPlN1YnZlcnNpb24gaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vc3ZuLndoYXR3Zy5vcmcvIj5odHRwOi8vc3ZuLndoYXR3Zy5vcmcvPC9hPjwvZGQ+Cis8ZHQ+SXNzdWVzOjwvZHQ+Cis8ZGQ+VG8gdmlldyB0aGUgb3BlbiBidWdzOiA8YSBocmVmPSJodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvYnVnbGlzdC5jZ2k/cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmFtcDtzaG9ydF9kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO3Nob3J0X2Rlc2M9JmFtcDtwcm9kdWN0PVdIQVRXRyZhbXA7Y29tcG9uZW50PUhUTUwmYW1wO2xvbmdkZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2xvbmdkZXNjPSZhbXA7YnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO3N0YXR1c193aGl0ZWJvYXJkX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO3N0YXR1c193aGl0ZWJvYXJkPSZhbXA7a2V5d29yZHNfdHlwZT1hbGx3b3JkcyZhbXA7a2V5d29yZHM9JmFtcDtidWdfc3RhdHVzPVVOQ09ORklSTUVEJmFtcDtidWdfc3RhdHVzPU5FVyZhbXA7YnVnX3N0YXR1cz1BU1NJR05FRCZhbXA7YnVnX3N0YXR1cz1SRU9QRU5FRCZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsMT0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbDI9JmFtcDtidWdfaWRfdHlwZT1hbnlleGFjdCZhbXA7YnVnX2lkPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO2NtZHR5cGU9ZG9pdCZhbXA7b3JkZXI9UmV1c2Urc2FtZStzb3J0K2FzK2xhc3QrdGltZSZhbXA7ZmllbGQwLTAtMD1ub29wJmFtcDt0eXBlMC0wLTA9bm9vcCZhbXA7dmFsdWUwLTAtMD0iPkhUTUwgYnVnIGxpc3Q8L2E+PC9kZD4KKzxkZD5UbyBmaWxlIGJ1Z3MsIHVzZSB0aGUgInN1Ym1pdCByZXZpZXcgY29tbWVudHMiIGZlYXR1cmUgYXQgdGhlIGJvdHRvbSBvZiB0aGUgd2luZG93PC9kZD4KKzxkZD5UbyBzZW5kIGZlZWRiYWNrIGJ5IGUtbWFpbDogPGEgaHJlZj0iaHR0cDovL3d3dy53aGF0d2cub3JnL21haWxpbmctbGlzdCI+d2hhdHdnQHdoYXR3Zy5vcmc8L2E+PC9kZD4KKzxkZD5UbyB2aWV3IGFuZCB2b3RlIG9uIGUtbWFpbCBmZWVkYmFjazogPGEgaHJlZj0iaHR0cDovL3d3dy53aGF0d2cub3JnL2lzc3Vlcy8iPmh0dHA6Ly93d3cud2hhdHdnLm9yZy9pc3N1ZXMvPC9hPjwvZGQ+Cis8ZHQ+RWRpdG9yOjwvZHQ+Cis8ZGQ+SWFuIEhpY2tzb24sIEdvb2dsZSwgaWFuQGhpeGllLmNoPC9kZD4KKzwvZGw+PHAgY2xhc3M9ImNvcHlyaWdodCI+wqkgQ29weXJpZ2h0IDIwMDQtMjAxMSBBcHBsZSBDb21wdXRlciwgSW5jLiwKK01vemlsbGEgRm91bmRhdGlvbiwgYW5kIE9wZXJhIFNvZnR3YXJlIEFTQS48L3A+Cis8cCBjbGFzcz0iY29weXJpZ2h0Ij5Zb3UgYXJlIGdyYW50ZWQgYSBsaWNlbnNlIHRvIHVzZSwgcmVwcm9kdWNlCithbmQgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhpcyBkb2N1bWVudC48L3A+Cis8L2hlYWRlcj48aHI+PGgyIGNsYXNzPSJuby1udW0gbm8tdG9jIiBpZD0iY29udGVudHMiPlRhYmxlIG9mIGNvbnRlbnRzPC9oMj4KKworPCEtLWJlZ2luLXRvYy0tPgorPG9sIGNsYXNzPSJ0b2MiPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNpbnRyb2R1Y3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNhYnN0cmFjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEgPC9zcGFuPldoZXJlIGRvZXMgdGhpcyBzcGVjaWZpY2F0aW9uIGZpdD88L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNpcy10aGlzLWh0bWw1PyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjIgPC9zcGFuPklzIHRoaXMgSFRNTDU/PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjYmFja2dyb3VuZCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjMgPC9zcGFuPkJhY2tncm91bmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNhdWRpZW5jZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjQgPC9zcGFuPkF1ZGllbmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjc2NvcGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS41IDwvc3Bhbj5TY29wZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2hpc3RvcnktMSI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjYgPC9zcGFuPkhpc3Rvcnk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNkZXNpZ24tbm90ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS43IDwvc3Bhbj5EZXNpZ24gbm90ZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3NlcmlhbGl6YWJpbGl0eS1vZi1zY3JpcHQtZXhlY3V0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuNy4xIDwvc3Bhbj5TZXJpYWxpemFiaWxpdHkgb2Ygc2NyaXB0IGV4ZWN1dGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2NvbXBsaWFuY2Utd2l0aC1vdGhlci1zcGVjaWZpY2F0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjcuMiA8L3NwYW4+Q29tcGxpYW5jZSB3aXRoIG90aGVyIHNwZWNpZmljYXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjZXh0ZW5zaWJpbGl0eSI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjcuMyA8L3NwYW4+RXh0ZW5zaWJpbGl0eTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNodG1sLXZzLXhodG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuOCA8L3NwYW4+SFRNTCB2cyBYSFRNTDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3N0cnVjdHVyZS1vZi10aGlzLXNwZWNpZmljYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MS45IDwvc3Bhbj5TdHJ1Y3R1cmUgb2YgdGhpcyBzcGVjaWZpY2F0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNob3ctdG8tcmVhZC10aGlzLXNwZWNpZmljYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MS45LjEgPC9zcGFuPkhvdyB0byByZWFkIHRoaXMgc3BlY2lmaWNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3R5cG9ncmFwaGljLWNvbnZlbnRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuOS4yIDwvc3Bhbj5UeXBvZ3JhcGhpYyBjb252ZW50aW9uczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNmaW5nZXJwcmludCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEwIDwvc3Bhbj5Qcml2YWN5IGNvbmNlcm5zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjYS1xdWljay1pbnRyb2R1Y3Rpb24tdG8taHRtbCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjExIDwvc3Bhbj5BIHF1aWNrIGludHJvZHVjdGlvbiB0byBIVE1MPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCN3cml0aW5nLXNlY3VyZS1hcHBsaWNhdGlvbnMtd2l0aC1odG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuMTEuMSA8L3NwYW4+V3JpdGluZyBzZWN1cmUgYXBwbGljYXRpb25zIHdpdGggSFRNTDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2NvbW1vbi1waXRmYWxscy10by1hdm9pZC13aGVuLXVzaW5nLXRoZS1zY3JpcHRpbmctYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjExLjIgPC9zcGFuPkNvbW1vbiBwaXRmYWxscyB0byBhdm9pZCB3aGVuIHVzaW5nIHRoZSBzY3JpcHRpbmcgQVBJczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2hvdy10by1jYXRjaC1taXN0YWtlcy13aGVuLXdyaXRpbmctaHRtbDotdmFsaWRhdG9ycy1hbmQtY29uZm9ybWFuY2UtY2hlY2tlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS4xMS4zIDwvc3Bhbj5Ib3cgdG8gY2F0Y2ggbWlzdGFrZXMgd2hlbiB3cml0aW5nIEhUTUw6IHZhbGlkYXRvcnMgYW5kIGNvbmZvcm1hbmNlIGNoZWNrZXJzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy1mb3ItYXV0aG9ycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEyIDwvc3Bhbj5Db25mb3JtYW5jZSByZXF1aXJlbWVudHMgZm9yIGF1dGhvcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3ByZXNlbnRhdGlvbmFsLW1hcmt1cCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEyLjEgPC9zcGFuPlByZXNlbnRhdGlvbmFsIG1hcmt1cDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3N5bnRheC1lcnJvcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS4xMi4yIDwvc3Bhbj5TeW50YXggZXJyb3JzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjcmVzdHJpY3Rpb25zLW9uLWNvbnRlbnQtbW9kZWxzLWFuZC1vbi1hdHRyaWJ1dGUtdmFsdWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuMTIuMyA8L3NwYW4+UmVzdHJpY3Rpb25zIG9uIGNvbnRlbnQgbW9kZWxzIGFuZCBvbiBhdHRyaWJ1dGUgdmFsdWVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3N1Z2dlc3RlZC1yZWFkaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuMTMgPC9zcGFuPlN1Z2dlc3RlZCByZWFkaW5nPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjaW5mcmFzdHJ1Y3R1cmUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MiA8L3NwYW4+Q29tbW9uIGluZnJhc3RydWN0dXJlPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI3Rlcm1pbm9sb2d5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuMSA8L3NwYW4+VGVybWlub2xvZ3k8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjcmVzb3VyY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuMS4xIDwvc3Bhbj5SZXNvdXJjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI3htbCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjEuMiA8L3NwYW4+WE1MPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW5mcmFzdHJ1Y3R1cmUuaHRtbCNkb20tdHJlZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4xLjMgPC9zcGFuPkRPTSB0cmVlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjc2NyaXB0aW5nLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4xLjQgPC9zcGFuPlNjcmlwdGluZzwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjcGx1Z2lucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjEuNSA8L3NwYW4+UGx1Z2luczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjZW5jb2RpbmctdGVybWlub2xvZ3kiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4xLjYgPC9zcGFuPkNoYXJhY3RlciBlbmNvZGluZ3M8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW5mcmFzdHJ1Y3R1cmUuaHRtbCNjb25mb3JtYW5jZS1yZXF1aXJlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4yIDwvc3Bhbj5Db25mb3JtYW5jZSByZXF1aXJlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjY29uZm9ybWFuY2UtY2xhc3NlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjIuMSA8L3NwYW4+Q29uZm9ybWFuY2UgY2xhc3NlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjZGVwZW5kZW5jaWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuMi4yIDwvc3Bhbj5EZXBlbmRlbmNpZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI2V4dGVuc2liaWxpdHktMCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjIuMyA8L3NwYW4+RXh0ZW5zaWJpbGl0eTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjaW50ZXJhY3Rpb25zLXdpdGgteHBhdGgtYW5kLXhzbHQiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4yLjQgPC9zcGFuPkludGVyYWN0aW9ucyB3aXRoIFhQYXRoIGFuZCBYU0xUPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjY2FzZS1zZW5zaXRpdml0eS1hbmQtc3RyaW5nLWNvbXBhcmlzb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4zIDwvc3Bhbj5DYXNlLXNlbnNpdGl2aXR5IGFuZCBzdHJpbmcgY29tcGFyaXNvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjY29tbW9uLW1pY3Jvc3ludGF4ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40IDwvc3Bhbj5Db21tb24gbWljcm9zeW50YXhlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNjb21tb24tcGFyc2VyLWlkaW9tcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuMSA8L3NwYW4+Q29tbW9uIHBhcnNlciBpZGlvbXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2Jvb2xlYW4tYXR0cmlidXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuMiA8L3NwYW4+Qm9vbGVhbiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNrZXl3b3Jkcy1hbmQtZW51bWVyYXRlZC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC4zIDwvc3Bhbj5LZXl3b3JkcyBhbmQgZW51bWVyYXRlZCBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNudW1iZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC40IDwvc3Bhbj5OdW1iZXJzPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI3NpZ25lZC1pbnRlZ2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNC4xIDwvc3Bhbj5TaWduZWQgaW50ZWdlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI25vbi1uZWdhdGl2ZS1pbnRlZ2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNC4yIDwvc3Bhbj5Ob24tbmVnYXRpdmUgaW50ZWdlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2Zsb2F0aW5nLXBvaW50LW51bWJlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjQuMyA8L3NwYW4+RmxvYXRpbmctcG9pbnQgbnVtYmVyczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjcGVyY2VudGFnZXMtYW5kLWRpbWVuc2lvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjQuNCA8L3NwYW4+UGVyY2VudGFnZXMgYW5kIGxlbmd0aHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2xpc3RzLW9mLWludGVnZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC40LjUgPC9zcGFuPkxpc3RzIG9mIGludGVnZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNsaXN0cy1vZi1kaW1lbnNpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC40LjYgPC9zcGFuPkxpc3RzIG9mIGRpbWVuc2lvbnM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNkYXRlcy1hbmQtdGltZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUgPC9zcGFuPkRhdGVzIGFuZCB0aW1lczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNtb250aHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuMSA8L3NwYW4+TW9udGhzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNkYXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNS4yIDwvc3Bhbj5EYXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjeWVhcmxlc3MtZGF0ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuMyA8L3NwYW4+WWVhcmxlc3MgZGF0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI3RpbWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC41LjQgPC9zcGFuPlRpbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNsb2NhbC1kYXRlcy1hbmQtdGltZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuNSA8L3NwYW4+TG9jYWwgZGF0ZXMgYW5kIHRpbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCN0aW1lLXpvbmVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC41LjYgPC9zcGFuPlRpbWUgem9uZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2dsb2JhbC1kYXRlcy1hbmQtdGltZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuNyA8L3NwYW4+R2xvYmFsIGRhdGVzIGFuZCB0aW1lczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjd2Vla3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuOCA8L3NwYW4+V2Vla3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2R1cmF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNS45IDwvc3Bhbj5EdXJhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI3ZhZ3Vlci1tb21lbnRzLWluLXRpbWUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuMTAgPC9zcGFuPlZhZ3VlciBtb21lbnRzIGluIHRpbWU8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNjb2xvcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjYgPC9zcGFuPkNvbG9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjc3BhY2Utc2VwYXJhdGVkLXRva2VucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNyA8L3NwYW4+U3BhY2Utc2VwYXJhdGVkIHRva2VuczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjY29tbWEtc2VwYXJhdGVkLXRva2VucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuOCA8L3NwYW4+Q29tbWEtc2VwYXJhdGVkIHRva2VuczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjc3ludGF4LXJlZmVyZW5jZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjkgPC9zcGFuPlJlZmVyZW5jZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI21xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC4xMCA8L3NwYW4+TWVkaWEgcXVlcmllczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ1cmxzLmh0bWwjdXJscyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjUgPC9zcGFuPlVSTHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InVybHMuaHRtbCN0ZXJtaW5vbG9neS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNS4xIDwvc3Bhbj5UZXJtaW5vbG9neTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVybHMuaHRtbCNyZXNvbHZpbmctdXJscyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjUuMiA8L3NwYW4+UmVzb2x2aW5nIFVSTHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ1cmxzLmh0bWwjZHluYW1pYy1jaGFuZ2VzLXRvLWJhc2UtdXJscyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjUuMyA8L3NwYW4+RHluYW1pYyBjaGFuZ2VzIHRvIGJhc2UgVVJMczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJmZXRjaGluZy1yZXNvdXJjZXMuaHRtbCNmZXRjaGluZy1yZXNvdXJjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42IDwvc3Bhbj5GZXRjaGluZyByZXNvdXJjZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI3Rlcm1pbm9sb2d5LTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42LjEgPC9zcGFuPlRlcm1pbm9sb2d5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZmV0Y2hpbmctcmVzb3VyY2VzLmh0bWwjcHJvY2Vzc2luZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjYuMiA8L3NwYW4+UHJvY2Vzc2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI2VuY3J5cHRlZC1odHRwLWFuZC1yZWxhdGVkLXNlY3VyaXR5LWNvbmNlcm5zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNi4zIDwvc3Bhbj5FbmNyeXB0ZWQgSFRUUCBhbmQgcmVsYXRlZCBzZWN1cml0eSBjb25jZXJuczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI2NvbnRlbnQtdHlwZS1zbmlmZmluZyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjYuNCA8L3NwYW4+RGV0ZXJtaW5pbmcgdGhlIHR5cGUgb2YgYSByZXNvdXJjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI2V4dHJhY3RpbmctY2hhcmFjdGVyLWVuY29kaW5ncy1mcm9tLW1ldGEtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42LjUgPC9zcGFuPkV4dHJhY3RpbmcgY2hhcmFjdGVyIGVuY29kaW5ncyBmcm9tIDxjb2RlPm1ldGE8L2NvZGU+IGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZmV0Y2hpbmctcmVzb3VyY2VzLmh0bWwjY29ycy1zZXR0aW5ncy1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNi42IDwvc3Bhbj5DT1JTIHNldHRpbmdzIGF0dHJpYnV0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJmZXRjaGluZy1yZXNvdXJjZXMuaHRtbCNjb3JzLWVuYWJsZWQtZmV0Y2giPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42LjcgPC9zcGFuPkNPUlMtZW5hYmxlZCBmZXRjaDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNjb21tb24tZG9tLWludGVyZmFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi43IDwvc3Bhbj5Db21tb24gRE9NIGludGVyZmFjZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3JlZmxlY3RpbmctY29udGVudC1hdHRyaWJ1dGVzLWluLWlkbC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4xIDwvc3Bhbj5SZWZsZWN0aW5nIGNvbnRlbnQgYXR0cmlidXRlcyBpbiBJREwgYXR0cmlidXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2NvbGxlY3Rpb25zLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi43LjIgPC9zcGFuPkNvbGxlY3Rpb25zPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNodG1sYWxsY29sbGVjdGlvbi0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4yLjEgPC9zcGFuPkhUTUxBbGxDb2xsZWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjaHRtbGZvcm1jb250cm9sc2NvbGxlY3Rpb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuMi4yIDwvc3Bhbj5IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2h0bWxvcHRpb25zY29sbGVjdGlvbi0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4yLjMgPC9zcGFuPkhUTUxPcHRpb25zQ29sbGVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2h0bWxwcm9wZXJ0aWVzY29sbGVjdGlvbi0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4yLjQgPC9zcGFuPkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNkb21zdHJpbmdtYXAtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuMyA8L3NwYW4+RE9NU3RyaW5nTWFwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjZG9tZWxlbWVudG1hcC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy40IDwvc3Bhbj5ET01FbGVtZW50TWFwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjdHJhbnNmZXJhYmxlLW9iamVjdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi43LjUgPC9zcGFuPlRyYW5zZmVyYWJsZSBvYmplY3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuNiA8L3NwYW4+U2FmZSBwYXNzaW5nIG9mIHN0cnVjdHVyZWQgZGF0YTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2NhbGxiYWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuNyA8L3NwYW4+Q2FsbGJhY2tzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjZ2FyYmFnZS1jb2xsZWN0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy44IDwvc3Bhbj5HYXJiYWdlIGNvbGxlY3Rpb248L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sI25hbWVzcGFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi44IDwvc3Bhbj5OYW1lc3BhY2VzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImRvbS5odG1sI2RvbSI+PHNwYW4gY2xhc3M9InNlY25vIj4zIDwvc3Bhbj5TZW1hbnRpY3MsIHN0cnVjdHVyZSwgYW5kIEFQSXMgb2YgSFRNTCBkb2N1bWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImRvbS5odG1sI2RvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjEgPC9zcGFuPkRvY3VtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZG9tLmh0bWwjdGhlLWRvY3VtZW50LW9iamVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjEuMSA8L3NwYW4+VGhlIDxjb2RlPkRvY3VtZW50PC9jb2RlPiBvYmplY3Q8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkb20uaHRtbCNyZXNvdXJjZS1tZXRhZGF0YS1tYW5hZ2VtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMS4yIDwvc3Bhbj5SZXNvdXJjZSBtZXRhZGF0YSBtYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG9tLmh0bWwjZG9tLXRyZWUtYWNjZXNzb3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMS4zIDwvc3Bhbj5ET00gdHJlZSBhY2Nlc3NvcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkb20uaHRtbCNsb2FkaW5nLXhtbC1kb2N1bWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4xLjQgPC9zcGFuPkxvYWRpbmcgWE1MIGRvY3VtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2VsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMiA8L3NwYW4+RWxlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjc2VtYW50aWNzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjEgPC9zcGFuPlNlbWFudGljczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjZWxlbWVudHMtaW4tdGhlLWRvbSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuMiA8L3NwYW4+RWxlbWVudHMgaW4gdGhlIERPTTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjZWxlbWVudC1kZWZpbml0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuMyA8L3NwYW4+RWxlbWVudCBkZWZpbml0aW9uczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNhdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi4zLjEgPC9zcGFuPkF0dHJpYnV0ZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNjb250ZW50LW1vZGVscyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNCA8L3NwYW4+Q29udGVudCBtb2RlbHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwja2luZHMtb2YtY29udGVudCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xIDwvc3Bhbj5LaW5kcyBvZiBjb250ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI21ldGFkYXRhLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjEgPC9zcGFuPk1ldGFkYXRhIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2Zsb3ctY29udGVudC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi40LjEuMiA8L3NwYW4+RmxvdyBjb250ZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNzZWN0aW9uaW5nLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjMgPC9zcGFuPlNlY3Rpb25pbmcgY29udGVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjaGVhZGluZy1jb250ZW50LTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjQuMS40IDwvc3Bhbj5IZWFkaW5nIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3BocmFzaW5nLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjUgPC9zcGFuPlBocmFzaW5nIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2VtYmVkZGVkLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjYgPC9zcGFuPkVtYmVkZGVkIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2ludGVyYWN0aXZlLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjcgPC9zcGFuPkludGVyYWN0aXZlIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3BhbHBhYmxlLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjggPC9zcGFuPlBhbHBhYmxlIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3NjcmlwdC1zdXBwb3J0aW5nLWVsZW1lbnRzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjQuMS45IDwvc3Bhbj5TY3JpcHQtc3VwcG9ydGluZyBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3RyYW5zcGFyZW50LWNvbnRlbnQtbW9kZWxzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi40LjIgPC9zcGFuPlRyYW5zcGFyZW50IGNvbnRlbnQgbW9kZWxzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNwYXJhZ3JhcGhzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi40LjMgPC9zcGFuPlBhcmFncmFwaHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNnbG9iYWwtYXR0cmlidXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNSA8L3NwYW4+R2xvYmFsIGF0dHJpYnV0ZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLWlkLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS4xIDwvc3Bhbj5UaGUgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLXRpdGxlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS4yIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItdGl0bGUiPnRpdGxlPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3RoZS1sYW5nLWFuZC14bWw6bGFuZy1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjMgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1sYW5nIj5sYW5nPC9jb2RlPiBhbmQgPGNvZGUgdGl0bGU9ImF0dHIteG1sLWxhbmciPnhtbDpsYW5nPC9jb2RlPiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCN0aGUtdHJhbnNsYXRlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS40IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItdHJhbnNsYXRlIj50cmFuc2xhdGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLXhtbDpiYXNlLWF0dHJpYnV0ZS0oeG1sLW9ubHkpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjUgPC9zcGFuPlRoZSA8Y29kZT54bWw6YmFzZTwvY29kZT4gYXR0cmlidXRlIChYTUwgb25seSk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3RoZS1kaXItYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjYgPC9zcGFuPlRoZSA8Y29kZT5kaXI8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjY2xhc3NlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS43IDwvc3Bhbj5UaGUgPGNvZGU+Y2xhc3M8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLXN0eWxlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS44IDwvc3Bhbj5UaGUgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjZW1iZWRkaW5nLWN1c3RvbS1ub24tdmlzaWJsZS1kYXRhLXdpdGgtdGhlLWRhdGEtKi1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjkgPC9zcGFuPkVtYmVkZGluZyBjdXN0b20gbm9uLXZpc2libGUgZGF0YSB3aXRoIHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1kYXRhLSoiPmRhdGEtKjwvY29kZT4gYXR0cmlidXRlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3JlcXVpcmVtZW50cy1yZWxhdGluZy10by10aGUtYmlkaXJlY3Rpb25hbC1hbGdvcml0aG0iPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjYgPC9zcGFuPlJlcXVpcmVtZW50cyByZWxhdGluZyB0byB0aGUgYmlkaXJlY3Rpb25hbCBhbGdvcml0aG08L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjYXV0aG9yaW5nLWNvbmZvcm1hbmNlLWNyaXRlcmlhLWZvci1iaWRpcmVjdGlvbmFsLWFsZ29yaXRobS1mb3JtYXR0aW5nLWNoYXJhY3RlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjYuMSA8L3NwYW4+QXV0aG9yaW5nIGNvbmZvcm1hbmNlIGNyaXRlcmlhIGZvciBiaWRpcmVjdGlvbmFsLWFsZ29yaXRobSBmb3JtYXR0aW5nIGNoYXJhY3RlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3VzZXItYWdlbnQtY29uZm9ybWFuY2UtY3JpdGVyaWEiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjYuMiA8L3NwYW4+VXNlciBhZ2VudCBjb25mb3JtYW5jZSBjcml0ZXJpYTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3dhaS1hcmlhIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi43IDwvc3Bhbj5XQUktQVJJQTwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjc2VtYW50aWNzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQgPC9zcGFuPlRoZSBlbGVtZW50cyBvZiBIVE1MPC9hPgorPG9sPjxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCN0aGUtcm9vdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMSA8L3NwYW4+VGhlIHJvb3QgZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEuMSA8L3NwYW4+VGhlIDxjb2RlPmh0bWw8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjZG9jdW1lbnQtbWV0YWRhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yIDwvc3Bhbj5Eb2N1bWVudCBtZXRhZGF0YTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuMSA8L3NwYW4+VGhlIDxjb2RlPmhlYWQ8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCN0aGUtdGl0bGUtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuMiA8L3NwYW4+VGhlIDxjb2RlPnRpdGxlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLWJhc2UtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuMyA8L3NwYW4+VGhlIDxjb2RlPmJhc2U8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCN0aGUtbGluay1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMi40IDwvc3Bhbj5UaGUgPGNvZGU+bGluazwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbWFudGljcy5odG1sI3RoZS1tZXRhLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjUgPC9zcGFuPlRoZSA8Y29kZT5tZXRhPC9jb2RlPiBlbGVtZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCNzdGFuZGFyZC1tZXRhZGF0YS1uYW1lcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuNS4xIDwvc3Bhbj5TdGFuZGFyZCBtZXRhZGF0YSBuYW1lczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbWFudGljcy5odG1sI290aGVyLW1ldGFkYXRhLW5hbWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMi41LjIgPC9zcGFuPk90aGVyIG1ldGFkYXRhIG5hbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjcHJhZ21hLWRpcmVjdGl2ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjUuMyA8L3NwYW4+UHJhZ21hIGRpcmVjdGl2ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCNvdGhlci1wcmFnbWEtZGlyZWN0aXZlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuNS40IDwvc3Bhbj5PdGhlciBwcmFnbWEgZGlyZWN0aXZlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbWFudGljcy5odG1sI2NoYXJzZXQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjUuNSA8L3NwYW4+U3BlY2lmeWluZyB0aGUgZG9jdW1lbnQncyBjaGFyYWN0ZXIgZW5jb2Rpbmc8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLXN0eWxlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjYgPC9zcGFuPlRoZSA8Y29kZT5zdHlsZTwvY29kZT4gZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLUBnbG9iYWwtcnVsZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuNi4xIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9IiI+QGdsb2JhbDwvY29kZT4gcnVsZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCNpbnRlcmFjdGlvbnMtb2Ytc3R5bGluZy1hbmQtc2NyaXB0aW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMi43IDwvc3Bhbj5JbnRlcmFjdGlvbnMgb2Ygc3R5bGluZyBhbmQgc2NyaXB0aW5nPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjc2VjdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zIDwvc3Bhbj5TZWN0aW9uczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCN0aGUtYm9keS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy4xIDwvc3Bhbj5UaGUgPGNvZGU+Ym9keTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdGhlLWFydGljbGUtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuMiA8L3NwYW4+VGhlIDxjb2RlPmFydGljbGU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1zZWN0aW9uLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjMgPC9zcGFuPlRoZSA8Y29kZT5zZWN0aW9uPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCN0aGUtbmF2LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjQgPC9zcGFuPlRoZSA8Y29kZT5uYXY8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1hc2lkZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy41IDwvc3Bhbj5UaGUgPGNvZGU+YXNpZGU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuNiA8L3NwYW4+VGhlIDxjb2RlPmgxPC9jb2RlPiwgPGNvZGU+aDI8L2NvZGU+LCA8Y29kZT5oMzwvY29kZT4sIDxjb2RlPmg0PC9jb2RlPiwgPGNvZGU+aDU8L2NvZGU+LCBhbmQKKzxjb2RlPmg2PC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdGhlLWhncm91cC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy43IDwvc3Bhbj5UaGUgPGNvZGU+aGdyb3VwPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCN0aGUtaGVhZGVyLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjggPC9zcGFuPlRoZSA8Y29kZT5oZWFkZXI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1mb290ZXItZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuOSA8L3NwYW4+VGhlIDxjb2RlPmZvb3RlcjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdGhlLWFkZHJlc3MtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuMTAgPC9zcGFuPlRoZSA8Y29kZT5hZGRyZXNzPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCNoZWFkaW5ncy1hbmQtc2VjdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjExIDwvc3Bhbj5IZWFkaW5ncyBhbmQgc2VjdGlvbnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjb3V0bGluZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjExLjEgPC9zcGFuPkNyZWF0aW5nIGFuIG91dGxpbmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3NhbXBsZS1vdXRsaW5lcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuMTEuMiA8L3NwYW4+U2FtcGxlIG91dGxpbmVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdXNhZ2Utc3VtbWFyeS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy4xMiA8L3NwYW4+VXNhZ2Ugc3VtbWFyeTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCNhcnRpY2xlLW9yLXNlY3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjEyLjEgPC9zcGFuPkFydGljbGUgb3Igc2VjdGlvbj88L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCNncm91cGluZy1jb250ZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNCA8L3NwYW4+R3JvdXBpbmcgY29udGVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1wLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjEgPC9zcGFuPlRoZSA8Y29kZT5wPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1oci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4yIDwvc3Bhbj5UaGUgPGNvZGU+aHI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLXByZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4zIDwvc3Bhbj5UaGUgPGNvZGU+cHJlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1ibG9ja3F1b3RlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjQgPC9zcGFuPlRoZSA8Y29kZT5ibG9ja3F1b3RlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1vbC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC41IDwvc3Bhbj5UaGUgPGNvZGU+b2w8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLXVsLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjYgPC9zcGFuPlRoZSA8Y29kZT51bDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtbGktZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjQuNyA8L3NwYW4+VGhlIDxjb2RlPmxpPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1kbC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC44IDwvc3Bhbj5UaGUgPGNvZGU+ZGw8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLWR0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjkgPC9zcGFuPlRoZSA8Y29kZT5kdDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtZGQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjQuMTAgPC9zcGFuPlRoZSA8Y29kZT5kZDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtZmlndXJlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjExIDwvc3Bhbj5UaGUgPGNvZGU+ZmlndXJlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1maWdjYXB0aW9uLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjEyIDwvc3Bhbj5UaGUgPGNvZGU+ZmlnY2FwdGlvbjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtbWFpbi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4xMyA8L3NwYW4+VGhlIDxjb2RlPm1haW48L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLWRpdi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4xNCA8L3NwYW4+VGhlIDxjb2RlPmRpdjwvY29kZT4gZWxlbWVudDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RleHQtbGV2ZWwtc2VtYW50aWNzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNSA8L3NwYW4+VGV4dC1sZXZlbCBzZW1hbnRpY3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWEtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMSA8L3NwYW4+VGhlIDxjb2RlPmE8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1lbS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yIDwvc3Bhbj5UaGUgPGNvZGU+ZW08L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1zdHJvbmctZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMyA8L3NwYW4+VGhlIDxjb2RlPnN0cm9uZzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXNtYWxsLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjQgPC9zcGFuPlRoZSA8Y29kZT5zbWFsbDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXMtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuNSA8L3NwYW4+VGhlIDxjb2RlPnM8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1jaXRlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjYgPC9zcGFuPlRoZSA8Y29kZT5jaXRlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtcS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS43IDwvc3Bhbj5UaGUgPGNvZGU+cTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWRmbi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS44IDwvc3Bhbj5UaGUgPGNvZGU+ZGZuPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYWJici1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS45IDwvc3Bhbj5UaGUgPGNvZGU+YWJicjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWRhdGEtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMTAgPC9zcGFuPlRoZSA8Y29kZT5kYXRhPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtdGltZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4xMSA8L3NwYW4+VGhlIDxjb2RlPnRpbWU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1jb2RlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjEyIDwvc3Bhbj5UaGUgPGNvZGU+Y29kZTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXZhci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4xMyA8L3NwYW4+VGhlIDxjb2RlPnZhcjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXNhbXAtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMTQgPC9zcGFuPlRoZSA8Y29kZT5zYW1wPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUta2JkLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjE1IDwvc3Bhbj5UaGUgPGNvZGU+a2JkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtc3ViLWFuZC1zdXAtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjE2IDwvc3Bhbj5UaGUgPGNvZGU+c3ViPC9jb2RlPiBhbmQgPGNvZGU+c3VwPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWktZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMTcgPC9zcGFuPlRoZSA8Y29kZT5pPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4xOCA8L3NwYW4+VGhlIDxjb2RlPmI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS11LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjE5IDwvc3Bhbj5UaGUgPGNvZGU+dTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLW1hcmstZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjAgPC9zcGFuPlRoZSA8Y29kZT5tYXJrPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtcnVieS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yMSA8L3NwYW4+VGhlIDxjb2RlPnJ1Ynk8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1ydC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yMiA8L3NwYW4+VGhlIDxjb2RlPnJ0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtcnAtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjMgPC9zcGFuPlRoZSA8Y29kZT5ycDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWJkaS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yNCA8L3NwYW4+VGhlIDxjb2RlPmJkaTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWJkby1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yNSA8L3NwYW4+VGhlIDxjb2RlPmJkbzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXNwYW4tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjYgPC9zcGFuPlRoZSA8Y29kZT5zcGFuPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYnItZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjcgPC9zcGFuPlRoZSA8Y29kZT5icjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXdici1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yOCA8L3NwYW4+VGhlIDxjb2RlPndicjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdXNhZ2Utc3VtbWFyeSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjkgPC9zcGFuPlVzYWdlIHN1bW1hcnk8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdHMuaHRtbCNlZGl0cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYgPC9zcGFuPkVkaXRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJlZGl0cy5odG1sI3RoZS1pbnMtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYuMSA8L3NwYW4+VGhlIDxjb2RlPmluczwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRzLmh0bWwjdGhlLWRlbC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNi4yIDwvc3Bhbj5UaGUgPGNvZGU+ZGVsPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdHMuaHRtbCNhdHRyaWJ1dGVzLWNvbW1vbi10by1pbnMtYW5kLWRlbC1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYuMyA8L3NwYW4+QXR0cmlidXRlcyBjb21tb24gdG8gPGNvZGU+aW5zPC9jb2RlPiBhbmQgPGNvZGU+ZGVsPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRzLmh0bWwjZWRpdHMtYW5kLXBhcmFncmFwaHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC42LjQgPC9zcGFuPkVkaXRzIGFuZCBwYXJhZ3JhcGhzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdHMuaHRtbCNlZGl0cy1hbmQtbGlzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC42LjUgPC9zcGFuPkVkaXRzIGFuZCBsaXN0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRzLmh0bWwjZWRpdHMtYW5kLXRhYmxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYuNiA8L3NwYW4+RWRpdHMgYW5kIHRhYmxlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNlbWJlZGRlZC1jb250ZW50LTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43IDwvc3Bhbj5FbWJlZGRlZCBjb250ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCN0aGUtaW1nLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEgPC9zcGFuPlRoZSA8Y29kZT5pbWc8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2FsdCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMS4xIDwvc3Bhbj5SZXF1aXJlbWVudHMgZm9yIHByb3ZpZGluZyB0ZXh0IHRvIGFjdCBhcyBhbiBhbHRlcm5hdGl2ZSBmb3IgaW1hZ2VzPC9hPgorPG9sPjxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNnZW5lcmFsLWd1aWRlbGluZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS4xIDwvc3Bhbj5HZW5lcmFsIGd1aWRlbGluZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLWxpbmstb3ItYnV0dG9uLWNvbnRhaW5pbmctbm90aGluZy1idXQtdGhlLWltYWdlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMiA8L3NwYW4+QSBsaW5rIG9yIGJ1dHRvbiBjb250YWluaW5nIG5vdGhpbmcgYnV0IHRoZSBpbWFnZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2EtcGhyYXNlLW9yLXBhcmFncmFwaC13aXRoLWFuLWFsdGVybmF0aXZlLWdyYXBoaWNhbC1yZXByZXNlbnRhdGlvbjotY2hhcnRzLC1kaWFncmFtcywtZ3JhcGhzLC1tYXBzLC1pbGx1c3RyYXRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMyA8L3NwYW4+QSBwaHJhc2Ugb3IgcGFyYWdyYXBoIHdpdGggYW4gYWx0ZXJuYXRpdmUgZ3JhcGhpY2FsIHJlcHJlc2VudGF0aW9uOiBjaGFydHMsIGRpYWdyYW1zLCBncmFwaHMsIG1hcHMsIGlsbHVzdHJhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLXNob3J0LXBocmFzZS1vci1sYWJlbC13aXRoLWFuLWFsdGVybmF0aXZlLWdyYXBoaWNhbC1yZXByZXNlbnRhdGlvbjotaWNvbnMsLWxvZ29zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuNCA8L3NwYW4+QSBzaG9ydCBwaHJhc2Ugb3IgbGFiZWwgd2l0aCBhbiBhbHRlcm5hdGl2ZSBncmFwaGljYWwgcmVwcmVzZW50YXRpb246IGljb25zLCBsb2dvczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI3RleHQtdGhhdC1oYXMtYmVlbi1yZW5kZXJlZC10by1hLWdyYXBoaWMtZm9yLXR5cG9ncmFwaGljYWwtZWZmZWN0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuNSA8L3NwYW4+VGV4dCB0aGF0IGhhcyBiZWVuIHJlbmRlcmVkIHRvIGEgZ3JhcGhpYyBmb3IgdHlwb2dyYXBoaWNhbCBlZmZlY3Q8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLWdyYXBoaWNhbC1yZXByZXNlbnRhdGlvbi1vZi1zb21lLW9mLXRoZS1zdXJyb3VuZGluZy10ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuNiA8L3NwYW4+QSBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gb2Ygc29tZSBvZiB0aGUgc3Vycm91bmRpbmcgdGV4dDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2EtcHVyZWx5LWRlY29yYXRpdmUtaW1hZ2UtdGhhdC1kb2Vzbid0LWFkZC1hbnktaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS43IDwvc3Bhbj5BIHB1cmVseSBkZWNvcmF0aXZlIGltYWdlIHRoYXQgZG9lc24ndCBhZGQgYW55IGluZm9ybWF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW1iZWRkZWQtY29udGVudC0xLmh0bWwjYS1ncm91cC1vZi1pbWFnZXMtdGhhdC1mb3JtLWEtc2luZ2xlLWxhcmdlci1waWN0dXJlLXdpdGgtbm8tbGlua3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS44IDwvc3Bhbj5BIGdyb3VwIG9mIGltYWdlcyB0aGF0IGZvcm0gYSBzaW5nbGUgbGFyZ2VyIHBpY3R1cmUgd2l0aCBubyBsaW5rczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2EtZ3JvdXAtb2YtaW1hZ2VzLXRoYXQtZm9ybS1hLXNpbmdsZS1sYXJnZXItcGljdHVyZS13aXRoLWxpbmtzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuOSA8L3NwYW4+QSBncm91cCBvZiBpbWFnZXMgdGhhdCBmb3JtIGEgc2luZ2xlIGxhcmdlciBwaWN0dXJlIHdpdGggbGlua3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLWtleS1wYXJ0LW9mLXRoZS1jb250ZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMTAgPC9zcGFuPkEga2V5IHBhcnQgb2YgdGhlIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhbi1pbWFnZS1ub3QtaW50ZW5kZWQtZm9yLXRoZS11c2VyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMTEgPC9zcGFuPkFuIGltYWdlIG5vdCBpbnRlbmRlZCBmb3IgdGhlIHVzZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhbi1pbWFnZS1pbi1hbi1lLW1haWwtb3ItcHJpdmF0ZS1kb2N1bWVudC1pbnRlbmRlZC1mb3ItYS1zcGVjaWZpYy1wZXJzb24td2hvLWlzLWtub3duLXRvLWJlLWFibGUtdG8tdmlldy1pbWFnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS4xMiA8L3NwYW4+QW4gaW1hZ2UgaW4gYW4gZS1tYWlsIG9yIHByaXZhdGUgZG9jdW1lbnQgaW50ZW5kZWQgZm9yIGEgc3BlY2lmaWMgcGVyc29uIHdobyBpcyBrbm93biB0byBiZSBhYmxlIHRvIHZpZXcgaW1hZ2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW1iZWRkZWQtY29udGVudC0xLmh0bWwjZ3VpZGFuY2UtZm9yLW1hcmt1cC1nZW5lcmF0b3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMTMgPC9zcGFuPkd1aWRhbmNlIGZvciBtYXJrdXAgZ2VuZXJhdG9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2d1aWRhbmNlLWZvci1jb25mb3JtYW5jZS1jaGVja2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMS4xLjE0IDwvc3Bhbj5HdWlkYW5jZSBmb3IgY29uZm9ybWFuY2UgY2hlY2tlcnM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW1iZWRkZWQtY29udGVudC0xLmh0bWwjYWRhcHRpdmUtaW1hZ2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjIgPC9zcGFuPkFkYXB0aXZlIGltYWdlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtaWZyYW1lLWVsZW1lbnQuaHRtbCN0aGUtaWZyYW1lLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjIgPC9zcGFuPlRoZSA8Y29kZT5pZnJhbWU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtaWZyYW1lLWVsZW1lbnQuaHRtbCN0aGUtZW1iZWQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMyA8L3NwYW4+VGhlIDxjb2RlPmVtYmVkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWlmcmFtZS1lbGVtZW50Lmh0bWwjdGhlLW9iamVjdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy40IDwvc3Bhbj5UaGUgPGNvZGU+b2JqZWN0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWlmcmFtZS1lbGVtZW50Lmh0bWwjdGhlLXBhcmFtLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjUgPC9zcGFuPlRoZSA8Y29kZT5wYXJhbTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLXZpZGVvLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjYgPC9zcGFuPlRoZSA8Y29kZT52aWRlbzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLWF1ZGlvLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjcgPC9zcGFuPlRoZSA8Y29kZT5hdWRpbzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLXNvdXJjZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy44IDwvc3Bhbj5UaGUgPGNvZGU+c291cmNlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCN0aGUtdHJhY2stZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuOSA8L3NwYW4+VGhlIDxjb2RlPnRyYWNrPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNtZWRpYS1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAgPC9zcGFuPk1lZGlhIGVsZW1lbnRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2Vycm9yLWNvZGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xIDwvc3Bhbj5FcnJvciBjb2RlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjbG9jYXRpb24tb2YtdGhlLW1lZGlhLXJlc291cmNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4yIDwvc3Bhbj5Mb2NhdGlvbiBvZiB0aGUgbWVkaWEgcmVzb3VyY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI21pbWUtdHlwZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjMgPC9zcGFuPk1JTUUgdHlwZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI25ldHdvcmstc3RhdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC40IDwvc3Bhbj5OZXR3b3JrIHN0YXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjbG9hZGluZy10aGUtbWVkaWEtcmVzb3VyY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjUgPC9zcGFuPkxvYWRpbmcgdGhlIG1lZGlhIHJlc291cmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNvZmZzZXRzLWludG8tdGhlLW1lZGlhLXJlc291cmNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC42IDwvc3Bhbj5PZmZzZXRzIGludG8gdGhlIG1lZGlhIHJlc291cmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNyZWFkeS1zdGF0ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjcgPC9zcGFuPlJlYWR5IHN0YXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjggPC9zcGFuPlBsYXlpbmcgdGhlIG1lZGlhIHJlc291cmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzZWVraW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC45IDwvc3Bhbj5TZWVraW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNtZWRpYS1yZXNvdXJjZXMtd2l0aC1tdWx0aXBsZS1tZWRpYS10cmFja3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEwIDwvc3Bhbj5NZWRpYSByZXNvdXJjZXMgd2l0aCBtdWx0aXBsZSBtZWRpYSB0cmFja3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjYXVkaW90cmFja2xpc3QtYW5kLXZpZGVvdHJhY2tsaXN0LW9iamVjdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEwLjEgPC9zcGFuPjxjb2RlPkF1ZGlvVHJhY2tMaXN0PC9jb2RlPiBhbmQgPGNvZGU+VmlkZW9UcmFja0xpc3Q8L2NvZGU+IG9iamVjdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI3NlbGVjdGluZy1zcGVjaWZpYy1hdWRpby1hbmQtdmlkZW8tdHJhY2tzLWRlY2xhcmF0aXZlbHkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEwLjIgPC9zcGFuPlNlbGVjdGluZyBzcGVjaWZpYyBhdWRpbyBhbmQgdmlkZW8gdHJhY2tzIGRlY2xhcmF0aXZlbHk8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzeW5jaHJvbmlzaW5nLW11bHRpcGxlLW1lZGlhLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xMSA8L3NwYW4+U3luY2hyb25pc2luZyBtdWx0aXBsZSBtZWRpYSBlbGVtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNpbnRyb2R1Y3Rpb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTEuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNtZWRpYS1jb250cm9sbGVycyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTEuMiA8L3NwYW4+TWVkaWEgY29udHJvbGxlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2Fzc2lnbmluZy1hLW1lZGlhLWNvbnRyb2xsZXItZGVjbGFyYXRpdmVseSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTEuMyA8L3NwYW4+QXNzaWduaW5nIGEgbWVkaWEgY29udHJvbGxlciBkZWNsYXJhdGl2ZWx5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGltZWQtdGV4dC10cmFja3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEyIDwvc3Bhbj5UaW1lZCB0ZXh0IHRyYWNrczwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCN0ZXh0LXRyYWNrLW1vZGVsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xMi4xIDwvc3Bhbj5UZXh0IHRyYWNrIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzb3VyY2luZy1pbi1iYW5kLXRleHQtdHJhY2tzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xMi4yIDwvc3Bhbj5Tb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzb3VyY2luZy1vdXQtb2YtYmFuZC10ZXh0LXRyYWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuMyA8L3NwYW4+U291cmNpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFja3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2d1aWRlbGluZXMtZm9yLWV4cG9zaW5nLWN1ZXMtaW4tdmFyaW91cy1mb3JtYXRzLWFzLXRleHQtdHJhY2stY3VlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuNCA8L3NwYW4+R3VpZGVsaW5lcyBmb3IgZXhwb3NpbmcgY3VlcyBpbiB2YXJpb3VzIGZvcm1hdHMgYXMgdGV4dCB0cmFjayBjdWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCN0ZXh0LXRyYWNrLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuNSA8L3NwYW4+VGV4dCB0cmFjayBBUEk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI3RleHQtdHJhY2tzLWRlc2NyaWJpbmctY2hhcHRlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEyLjYgPC9zcGFuPlRleHQgdHJhY2tzIGRlc2NyaWJpbmcgY2hhcHRlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2N1ZS1ldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEyLjcgPC9zcGFuPkV2ZW50IGhhbmRsZXJzIGZvciBvYmplY3RzIG9mIHRoZSB0ZXh0IHRyYWNrIEFQSXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2Jlc3QtcHJhY3RpY2VzLWZvci1tZXRhZGF0YS10ZXh0LXRyYWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuOCA8L3NwYW4+QmVzdCBwcmFjdGljZXMgZm9yIG1ldGFkYXRhIHRleHQgdHJhY2tzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdXNlci1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEzIDwvc3Bhbj5Vc2VyIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGltZS1yYW5nZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjE0IDwvc3Bhbj5UaW1lIHJhbmdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLXRyYWNrZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xNSA8L3NwYW4+VGhlIDxjb2RlPlRyYWNrRXZlbnQ8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjbWVkaWFldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjE2IDwvc3Bhbj5FdmVudCBzdW1tYXJ5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzZWN1cml0eS1hbmQtcHJpdmFjeS1jb25zaWRlcmF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTcgPC9zcGFuPlNlY3VyaXR5IGFuZCBwcml2YWN5IGNvbnNpZGVyYXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNiZXN0LXByYWN0aWNlcy1mb3ItYXV0aG9ycy11c2luZy1tZWRpYS1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTggPC9zcGFuPkJlc3QgcHJhY3RpY2VzIGZvciBhdXRob3JzIHVzaW5nIG1lZGlhIGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNiZXN0LXByYWN0aWNlcy1mb3ItaW1wbGVtZW50b3JzLW9mLW1lZGlhLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xOSA8L3NwYW4+QmVzdCBwcmFjdGljZXMgZm9yIGltcGxlbWVudG9ycyBvZiBtZWRpYSBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtbWFwLWVsZW1lbnQuaHRtbCN0aGUtbWFwLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjExIDwvc3Bhbj5UaGUgPGNvZGU+bWFwPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjdGhlLWFyZWEtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTIgPC9zcGFuPlRoZSA8Y29kZT5hcmVhPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjaW1hZ2UtbWFwcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTMgPC9zcGFuPkltYWdlIG1hcHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS1tYXAtZWxlbWVudC5odG1sI2F1dGhvcmluZyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTMuMSA8L3NwYW4+QXV0aG9yaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjcHJvY2Vzc2luZy1tb2RlbC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMy4yIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1tYXAtZWxlbWVudC5odG1sI21hdGhtbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTQgPC9zcGFuPk1hdGhNTDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1tYXAtZWxlbWVudC5odG1sI3N2Zy0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xNSA8L3NwYW4+U1ZHPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjZGltZW5zaW9uLWF0dHJpYnV0ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjE2IDwvc3Bhbj5EaW1lbnNpb24gYXR0cmlidXRlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmtzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOCA8L3NwYW4+TGlua3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjaW50cm9kdWN0aW9uLTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGlua3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC4yIDwvc3Bhbj5MaW5rcyBjcmVhdGVkIGJ5IDxjb2RlPmE8L2NvZGU+IGFuZCA8Y29kZT5hcmVhPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjZm9sbG93aW5nLWh5cGVybGlua3MtMCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguMyA8L3NwYW4+Rm9sbG93aW5nIGh5cGVybGlua3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2Rvd25sb2FkaW5nLXJlc291cmNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNCA8L3NwYW4+RG93bmxvYWRpbmcgcmVzb3VyY2VzPC9hPgorPG9sPjxsaT48YSBocmVmPSJsaW5rcy5odG1sI2h5cGVybGluay1hdWRpdGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNC4xIDwvc3Bhbj5IeXBlcmxpbmsgYXVkaXRpbmc8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rVHlwZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUgPC9zcGFuPkxpbmsgdHlwZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjcmVsLWFsdGVybmF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS4xIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmFsdGVybmF0ZTwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtYXV0aG9yIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjIgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+YXV0aG9yPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1ib29rbWFyayI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS4zIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmJvb2ttYXJrPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1leHRlcm5hbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS40IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmV4dGVybmFsPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1oZWxwIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjUgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+aGVscDwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNyZWwtaWNvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS42IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmljb248L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLWxpY2Vuc2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuNyA8L3NwYW4+TGluayB0eXBlICI8Y29kZT5saWNlbnNlPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1ub2ZvbGxvdyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS44IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPm5vZm9sbG93PC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1ub3JlZmVycmVyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjkgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+bm9yZWZlcnJlcjwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtcGluZ2JhY2siPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTAgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+cGluZ2JhY2s8L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLXByZWZldGNoIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjExIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPnByZWZldGNoPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1zZWFyY2giPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTIgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+c2VhcmNoPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1zaWRlYmFyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjEzIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPnNpZGViYXI8L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLXN0eWxlc2hlZXQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTQgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+c3R5bGVzaGVldDwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtdGFnIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjE1IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPnRhZzwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNzZXF1ZW50aWFsLWxpbmstdHlwZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTYgPC9zcGFuPlNlcXVlbnRpYWwgbGluayB0eXBlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtbmV4dCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS4xNi4xIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPm5leHQ8L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLXByZXYiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTYuMiA8L3NwYW4+TGluayB0eXBlICI8Y29kZT5wcmV2PC9jb2RlPiI8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNvdGhlci1saW5rLXR5cGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjE3IDwvc3Bhbj5PdGhlciBsaW5rIHR5cGVzPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCN0YWJ1bGFyLWRhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45IDwvc3Bhbj5UYWJ1bGFyIGRhdGE8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS10YWJsZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS4xIDwvc3Bhbj5UaGUgPGNvZGU+dGFibGU8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RhYmxlLWRlc2NyaXB0aW9ucy10ZWNobmlxdWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS4xLjEgPC9zcGFuPlRlY2huaXF1ZXMgZm9yIGRlc2NyaWJpbmcgdGFibGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGFibGUtbGF5b3V0LXRlY2huaXF1ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjEuMiA8L3NwYW4+VGVjaG5pcXVlcyBmb3IgdGFibGUgZGVzaWduPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS1jYXB0aW9uLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjIgPC9zcGFuPlRoZSA8Y29kZT5jYXB0aW9uPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGhlLWNvbGdyb3VwLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjMgPC9zcGFuPlRoZSA8Y29kZT5jb2xncm91cDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS1jb2wtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuNCA8L3NwYW4+VGhlIDxjb2RlPmNvbDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS10Ym9keS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS41IDwvc3Bhbj5UaGUgPGNvZGU+dGJvZHk8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCN0aGUtdGhlYWQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuNiA8L3NwYW4+VGhlIDxjb2RlPnRoZWFkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGhlLXRmb290LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjcgPC9zcGFuPlRoZSA8Y29kZT50Zm9vdDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS10ci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS44IDwvc3Bhbj5UaGUgPGNvZGU+dHI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCN0aGUtdGQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuOSA8L3NwYW4+VGhlIDxjb2RlPnRkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGhlLXRoLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjEwIDwvc3Bhbj5UaGUgPGNvZGU+dGg8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCNhdHRyaWJ1dGVzLWNvbW1vbi10by10ZC1hbmQtdGgtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjExIDwvc3Bhbj5BdHRyaWJ1dGVzIGNvbW1vbiB0byA8Y29kZT50ZDwvY29kZT4gYW5kIDxjb2RlPnRoPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3Byb2Nlc3NpbmctbW9kZWwtMSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTIgPC9zcGFuPlByb2Nlc3NpbmcgbW9kZWw8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI2Zvcm1pbmctYS10YWJsZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTIuMSA8L3NwYW4+Rm9ybWluZyBhIHRhYmxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjaGVhZGVyLWFuZC1kYXRhLWNlbGwtc2VtYW50aWNzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS4xMi4yIDwvc3Bhbj5Gb3JtaW5nIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBkYXRhIGNlbGxzIGFuZCBoZWFkZXIgY2VsbHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGFibGUtc29ydGluZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTMgPC9zcGFuPlRhYmxlIHNvcnRpbmcgbW9kZWw8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCNleGFtcGxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTQgPC9zcGFuPkV4YW1wbGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjZm9ybXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMCA8L3NwYW4+Rm9ybXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjaW50cm9kdWN0aW9uLTIiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjd3JpdGluZy1hLWZvcm0ncy11c2VyLWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuMSA8L3NwYW4+V3JpdGluZyBhIGZvcm0ncyB1c2VyIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjaW1wbGVtZW50aW5nLXRoZS1zZXJ2ZXItc2lkZS1wcm9jZXNzaW5nLWZvci1hLWZvcm0iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xLjIgPC9zcGFuPkltcGxlbWVudGluZyB0aGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBmb3IgYSBmb3JtPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNjb25maWd1cmluZy1hLWZvcm0tdG8tY29tbXVuaWNhdGUtd2l0aC1hLXNlcnZlciI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuMyA8L3NwYW4+Q29uZmlndXJpbmcgYSBmb3JtIHRvIGNvbW11bmljYXRlIHdpdGggYSBzZXJ2ZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJmb3Jtcy5odG1sI2NsaWVudC1zaWRlLWZvcm0tdmFsaWRhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuNCA8L3NwYW4+Q2xpZW50LXNpZGUgZm9ybSB2YWxpZGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNlbmFibGluZy1jbGllbnQtc2lkZS1hdXRvbWF0aWMtZmlsbGluZy1vZi1mb3JtLWNvbnRyb2xzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMS41IDwvc3Bhbj5FbmFibGluZyBjbGllbnQtc2lkZSBhdXRvbWF0aWMgZmlsbGluZyBvZiBmb3JtIGNvbnRyb2xzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNpbXByb3ZpbmctdGhlLXVzZXItZXhwZXJpZW5jZS1vbi1tb2JpbGUtZGV2aWNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuNiA8L3NwYW4+SW1wcm92aW5nIHRoZSB1c2VyIGV4cGVyaWVuY2Ugb24gbW9iaWxlIGRldmljZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJmb3Jtcy5odG1sI3RoZS1kaWZmZXJlbmNlLWJldHdlZW4tdGhlLWZpZWxkLXR5cGUsLXRoZS1hdXRvZmlsbC1maWVsZC1uYW1lLC1hbmQtdGhlLWlucHV0LW1vZGFsaXR5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMS43IDwvc3Bhbj5UaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBmaWVsZCB0eXBlLCB0aGUgYXV0b2ZpbGwgZmllbGQgbmFtZSwgYW5kIHRoZSBpbnB1dCBtb2RhbGl0eTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjaW5wdXQtYXV0aG9yLW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMS44IDwvc3Bhbj5EYXRlLCB0aW1lLCBhbmQgbnVtYmVyIGZvcm1hdHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNjYXRlZ29yaWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMiA8L3NwYW4+Q2F0ZWdvcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjMgPC9zcGFuPlRoZSA8Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCN0aGUtbGFiZWwtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjQgPC9zcGFuPlRoZSA8Y29kZT5sYWJlbDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1pbnB1dC1lbGVtZW50Lmh0bWwjdGhlLWlucHV0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41IDwvc3Bhbj5UaGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xIDwvc3Bhbj5TdGF0ZXMgb2YgdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LXR5cGUiPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI2hpZGRlbi1zdGF0ZS0odHlwZT1oaWRkZW4pIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjEgPC9zcGFuPkhpZGRlbiBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1oaWRkZW48L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN0ZXh0LSh0eXBlPXRleHQpLXN0YXRlLWFuZC1zZWFyY2gtc3RhdGUtKHR5cGU9c2VhcmNoKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4yIDwvc3Bhbj5UZXh0ICg8Y29kZSB0aXRsZT0iIj50eXBlPXRleHQ8L2NvZGU+KSBzdGF0ZSBhbmQgU2VhcmNoIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXNlYXJjaDwvY29kZT4pPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI3RlbGVwaG9uZS1zdGF0ZS0odHlwZT10ZWwpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjMgPC9zcGFuPlRlbGVwaG9uZSBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT10ZWw8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN1cmwtc3RhdGUtKHR5cGU9dXJsKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS40IDwvc3Bhbj5VUkwgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9dXJsPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjZS1tYWlsLXN0YXRlLSh0eXBlPWVtYWlsKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS41IDwvc3Bhbj5FLW1haWwgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9ZW1haWw8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNwYXNzd29yZC1zdGF0ZS0odHlwZT1wYXNzd29yZCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuNiA8L3NwYW4+UGFzc3dvcmQgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9cGFzc3dvcmQ8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNkYXRlLWFuZC10aW1lLXN0YXRlLSh0eXBlPWRhdGV0aW1lKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS43IDwvc3Bhbj5EYXRlIGFuZCBUaW1lIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWRhdGV0aW1lPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjZGF0ZS1zdGF0ZS0odHlwZT1kYXRlKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS44IDwvc3Bhbj5EYXRlIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWRhdGU8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNtb250aC1zdGF0ZS0odHlwZT1tb250aCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuOSA8L3NwYW4+TW9udGggc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9bW9udGg8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN3ZWVrLXN0YXRlLSh0eXBlPXdlZWspIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjEwIDwvc3Bhbj5XZWVrIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXdlZWs8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN0aW1lLXN0YXRlLSh0eXBlPXRpbWUpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjExIDwvc3Bhbj5UaW1lIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXRpbWU8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNsb2NhbC1kYXRlLWFuZC10aW1lLXN0YXRlLSh0eXBlPWRhdGV0aW1lLWxvY2FsKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4xMiA8L3NwYW4+TG9jYWwgRGF0ZSBhbmQgVGltZSBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1kYXRldGltZS1sb2NhbDwvY29kZT4pPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI251bWJlci1zdGF0ZS0odHlwZT1udW1iZXIpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjEzIDwvc3Bhbj5OdW1iZXIgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9bnVtYmVyPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjcmFuZ2Utc3RhdGUtKHR5cGU9cmFuZ2UpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjE0IDwvc3Bhbj5SYW5nZSBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1yYW5nZTwvY29kZT4pPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI2NvbG9yLXN0YXRlLSh0eXBlPWNvbG9yKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4xNSA8L3NwYW4+Q29sb3Igc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9Y29sb3I8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNjaGVja2JveC1zdGF0ZS0odHlwZT1jaGVja2JveCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMTYgPC9zcGFuPkNoZWNrYm94IHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWNoZWNrYm94PC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjcmFkaW8tYnV0dG9uLXN0YXRlLSh0eXBlPXJhZGlvKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4xNyA8L3NwYW4+UmFkaW8gQnV0dG9uIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXJhZGlvPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjZmlsZS11cGxvYWQtc3RhdGUtKHR5cGU9ZmlsZSkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMTggPC9zcGFuPkZpbGUgVXBsb2FkIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWZpbGU8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNzdWJtaXQtYnV0dG9uLXN0YXRlLSh0eXBlPXN1Ym1pdCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMTkgPC9zcGFuPlN1Ym1pdCBCdXR0b24gc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9c3VibWl0PC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjaW1hZ2UtYnV0dG9uLXN0YXRlLSh0eXBlPWltYWdlKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4yMCA8L3NwYW4+SW1hZ2UgQnV0dG9uIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWltYWdlPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjcmVzZXQtYnV0dG9uLXN0YXRlLSh0eXBlPXJlc2V0KSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4yMSA8L3NwYW4+UmVzZXQgQnV0dG9uIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXJlc2V0PC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjYnV0dG9uLXN0YXRlLSh0eXBlPWJ1dHRvbikiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMjIgPC9zcGFuPkJ1dHRvbiBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1idXR0b248L2NvZGU+KTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjaW5wdXQtaW1wbC1ub3RlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMiA8L3NwYW4+SW1wbGVtZW50aW9uIG5vdGVzIHJlZ2FyZGluZyBsb2NhbGl6YXRpb24gb2YgZm9ybSBjb250cm9sczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1pbnB1dC1lbGVtZW50LWF0dHJpYnV0ZXMuaHRtbCNjb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4zIDwvc3Bhbj5Db21tb24gPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQgYXR0cmlidXRlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1tYXhsZW5ndGgtYW5kLW1pbmxlbmd0aC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4zLjEgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1pbnB1dC1tYXhsZW5ndGgiPm1heGxlbmd0aDwvY29kZT4gYW5kIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LW1pbmxlbmd0aCI+bWlubGVuZ3RoPC9jb2RlPiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1zaXplLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy4yIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtc2l6ZSI+c2l6ZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1yZWFkb25seS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuMyA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LXJlYWRvbmx5Ij5yZWFkb25seTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1yZXF1aXJlZC1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuNCA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LXJlcXVpcmVkIj5yZXF1aXJlZDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1tdWx0aXBsZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuNSA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LW11bHRpcGxlIj5tdWx0aXBsZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1wYXR0ZXJuLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy42IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtcGF0dGVybiI+cGF0dGVybjwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1taW4tYW5kLW1heC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4zLjcgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1pbnB1dC1taW4iPm1pbjwvY29kZT4gYW5kIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LW1heCI+bWF4PC9jb2RlPiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1zdGVwLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy44IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtc3RlcCI+c3RlcDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1saXN0LWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy45IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtbGlzdCI+bGlzdDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1wbGFjZWhvbGRlci1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuMTAgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1pbnB1dC1wbGFjZWhvbGRlciI+cGxhY2Vob2xkZXI8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwjY29tbW9uLWlucHV0LWVsZW1lbnQtYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuNCA8L3NwYW4+Q29tbW9uIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IEFQSXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwjY29tbW9uLWlucHV0LWVsZW1lbnQtZXZlbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS41IDwvc3Bhbj5Db21tb24gZXZlbnQgYmVoYXZpb3JzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1idXR0b24tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjYgPC9zcGFuPlRoZSA8Y29kZT5idXR0b248L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCN0aGUtc2VsZWN0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC43IDwvc3Bhbj5UaGUgPGNvZGU+c2VsZWN0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjdGhlLWRhdGFsaXN0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC44IDwvc3Bhbj5UaGUgPGNvZGU+ZGF0YWxpc3Q8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjkgPC9zcGFuPlRoZSA8Y29kZT5vcHRncm91cDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1vcHRpb24tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEwIDwvc3Bhbj5UaGUgPGNvZGU+b3B0aW9uPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xMSA8L3NwYW4+VGhlIDxjb2RlPnRleHRhcmVhPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjdGhlLWtleWdlbi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTIgPC9zcGFuPlRoZSA8Y29kZT5rZXlnZW48L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCN0aGUtb3V0cHV0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xMyA8L3NwYW4+VGhlIDxjb2RlPm91dHB1dDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1wcm9ncmVzcy1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTQgPC9zcGFuPlRoZSA8Y29kZT5wcm9ncmVzczwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1tZXRlci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTUgPC9zcGFuPlRoZSA8Y29kZT5tZXRlcjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1maWVsZHNldC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTYgPC9zcGFuPlRoZSA8Y29kZT5maWVsZHNldDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1sZWdlbmQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE3IDwvc3Bhbj5UaGUgPGNvZGU+bGVnZW5kPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjZm9ybS1jb250cm9sLWluZnJhc3RydWN0dXJlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTggPC9zcGFuPkZvcm0gY29udHJvbCBpbmZyYXN0cnVjdHVyZTwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjYS1mb3JtLWNvbnRyb2wncy12YWx1ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE4LjEgPC9zcGFuPkEgZm9ybSBjb250cm9sJ3MgdmFsdWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCNtdXRhYmlsaXR5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTguMiA8L3NwYW4+TXV0YWJpbGl0eTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2Fzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3JtcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE4LjMgPC9zcGFuPkFzc29jaWF0aW9uIG9mIGNvbnRyb2xzIGFuZCBmb3JtczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNhdHRyaWJ1dGVzLWNvbW1vbi10by1mb3JtLWNvbnRyb2xzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkgPC9zcGFuPkF0dHJpYnV0ZXMgY29tbW9uIHRvIGZvcm0gY29udHJvbHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI25hbWluZy1mb3JtLWNvbnRyb2xzOi10aGUtbmFtZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xOS4xIDwvc3Bhbj5OYW1pbmcgZm9ybSBjb250cm9sczogdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWZlLW5hbWUiPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI3N1Ym1pdHRpbmctZWxlbWVudC1kaXJlY3Rpb25hbGl0eTotdGhlLWRpcm5hbWUtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuMiA8L3NwYW4+U3VibWl0dGluZyBlbGVtZW50IGRpcmVjdGlvbmFsaXR5OiB0aGUgPGNvZGUgdGl0bGU9ImF0dHItZmUtZGlybmFtZSI+ZGlybmFtZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjbGltaXRpbmctdXNlci1pbnB1dC1sZW5ndGg6LXRoZS1tYXhsZW5ndGgtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuMyA8L3NwYW4+TGltaXRpbmcgdXNlciBpbnB1dCBsZW5ndGg6IHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1mZS1tYXhsZW5ndGgiPm1heGxlbmd0aDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjc2V0dGluZy1taW5pbXVtLWlucHV0LWxlbmd0aC1yZXF1aXJlbWVudHM6LXRoZS1taW5sZW5ndGgtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuNCA8L3NwYW4+U2V0dGluZyBtaW5pbXVtIGlucHV0IGxlbmd0aCByZXF1aXJlbWVudHM6IHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1mZS1taW5sZW5ndGgiPm1pbmxlbmd0aDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjZW5hYmxpbmctYW5kLWRpc2FibGluZy1mb3JtLWNvbnRyb2xzOi10aGUtZGlzYWJsZWQtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuNSA8L3NwYW4+RW5hYmxpbmcgYW5kIGRpc2FibGluZyBmb3JtIGNvbnRyb2xzOiB0aGUgPGNvZGUgdGl0bGU9ImF0dHItZmUtZGlzYWJsZWQiPmRpc2FibGVkPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNmb3JtLXN1Ym1pc3Npb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE5LjYgPC9zcGFuPkZvcm0gc3VibWlzc2lvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2F1dG9mb2N1c2luZy1hLWZvcm0tY29udHJvbDotdGhlLWF1dG9mb2N1cy1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xOS43IDwvc3Bhbj5BdXRvZm9jdXNpbmcgYSBmb3JtIGNvbnRyb2w6IHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1mZS1hdXRvZm9jdXMiPmF1dG9mb2N1czwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjaW5wdXQtbW9kYWxpdGllczotdGhlLWlucHV0bW9kZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xOS44IDwvc3Bhbj5JbnB1dCBtb2RhbGl0aWVzOiB0aGUgPGNvZGUgdGl0bGU9ImF0dHItZmUtaW5wdXRtb2RlIj5pbnB1dG1vZGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2F1dG9maWxsaW5nLWZvcm0tY29udHJvbHM6LXRoZS1hdXRvY29tcGxldGUtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuOSA8L3NwYW4+QXV0b2ZpbGxpbmcgZm9ybSBjb250cm9sczogdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWZlLWF1dG9jb21wbGV0ZSI+YXV0b2NvbXBsZXRlPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjdGV4dEZpZWxkU2VsZWN0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjAgPC9zcGFuPkFQSXMgZm9yIHRoZSB0ZXh0IGZpZWxkIHNlbGVjdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNjb25zdHJhaW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIxIDwvc3Bhbj5Db25zdHJhaW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjZGVmaW5pdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4yMS4xIDwvc3Bhbj5EZWZpbml0aW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2NvbnN0cmFpbnQtdmFsaWRhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIxLjIgPC9zcGFuPkNvbnN0cmFpbnQgdmFsaWRhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI3RoZS1jb25zdHJhaW50LXZhbGlkYXRpb24tYXBpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjEuMyA8L3NwYW4+VGhlIGNvbnN0cmFpbnQgdmFsaWRhdGlvbiBBUEk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNzZWN1cml0eS1mb3JtcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIxLjQgPC9zcGFuPlNlY3VyaXR5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2Zvcm0tc3VibWlzc2lvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyIDwvc3Bhbj5Gb3JtIHN1Ym1pc3Npb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2ludHJvZHVjdGlvbi0zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjaW1wbGljaXQtc3VibWlzc2lvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyLjIgPC9zcGFuPkltcGxpY2l0IHN1Ym1pc3Npb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNmb3JtLXN1Ym1pc3Npb24tYWxnb3JpdGhtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuMyA8L3NwYW4+Rm9ybSBzdWJtaXNzaW9uIGFsZ29yaXRobTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2NvbnN0cnVjdGluZy1mb3JtLWRhdGEtc2V0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuNCA8L3NwYW4+Q29uc3RydWN0aW5nIHRoZSBmb3JtIGRhdGEgc2V0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjc2VsZWN0aW5nLWEtZm9ybS1zdWJtaXNzaW9uLWVuY29kaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuNSA8L3NwYW4+U2VsZWN0aW5nIGEgZm9ybSBzdWJtaXNzaW9uIGVuY29kaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjdXJsLWVuY29kZWQtZm9ybS1kYXRhIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuNiA8L3NwYW4+VVJMLWVuY29kZWQgZm9ybSBkYXRhPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjbXVsdGlwYXJ0LWZvcm0tZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyLjcgPC9zcGFuPk11bHRpcGFydCBmb3JtIGRhdGE8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNwbGFpbi10ZXh0LWZvcm0tZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyLjggPC9zcGFuPlBsYWluIHRleHQgZm9ybSBkYXRhPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI3Jlc2V0dGluZy1hLWZvcm0iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4yMyA8L3NwYW4+UmVzZXR0aW5nIGEgZm9ybTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpbnRlcmFjdGl2ZS1lbGVtZW50cy5odG1sI2ludGVyYWN0aXZlLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEgPC9zcGFuPkludGVyYWN0aXZlIGVsZW1lbnRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRlcmFjdGl2ZS1lbGVtZW50cy5odG1sI3RoZS1kZXRhaWxzLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS4xIDwvc3Bhbj5UaGUgPGNvZGU+ZGV0YWlsczwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyYWN0aXZlLWVsZW1lbnRzLmh0bWwjdGhlLXN1bW1hcnktZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjIgPC9zcGFuPlRoZSA8Y29kZT5zdW1tYXJ5PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCN0aGUtbWVudS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuMyA8L3NwYW4+VGhlIDxjb2RlPm1lbnU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRlcmFjdGl2ZS1lbGVtZW50cy5odG1sI3RoZS1tZW51aXRlbS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNCA8L3NwYW4+VGhlIDxjb2RlPm1lbnVpdGVtPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCNjb250ZXh0LW1lbnVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNSA8L3NwYW4+Q29udGV4dCBtZW51czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCNkZWNsYXJpbmctYS1jb250ZXh0LW1lbnUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS41LjEgPC9zcGFuPkRlY2xhcmluZyBhIGNvbnRleHQgbWVudTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyYWN0aXZlLWVsZW1lbnRzLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC0yIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNS4yIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCN0aGUtcmVsYXRlZGV2ZW50LWludGVyZmFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS41LjMgPC9zcGFuPlRoZSA8Y29kZT5SZWxhdGVkRXZlbnQ8L2NvZGU+IGludGVyZmFjZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbWFuZHMuaHRtbCNjb21tYW5kcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYgPC9zcGFuPkNvbW1hbmRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI2ZhY2V0cy0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNi4xIDwvc3Bhbj5GYWNldHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1hLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuMiA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlPmE8L2NvZGU+IGVsZW1lbnQgdG8gZGVmaW5lIGEgY29tbWFuZDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWJ1dHRvbi1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjMgPC9zcGFuPlVzaW5nIHRoZSA8Y29kZT5idXR0b248L2NvZGU+IGVsZW1lbnQgdG8gZGVmaW5lIGEgY29tbWFuZDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWlucHV0LWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuNCA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1vcHRpb24tZWxlbWVudC10by1kZWZpbmUtYS1jb21tYW5kIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNi41IDwvc3Bhbj5Vc2luZyB0aGUgPGNvZGU+b3B0aW9uPC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1tZW51aXRlbS1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjYgPC9zcGFuPlVzaW5nIHRoZSA8Y29kZT5tZW51aXRlbTwvY29kZT4gZWxlbWVudCB0byBkZWZpbmUgYQorY29tbWFuZDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWNvbW1hbmQtYXR0cmlidXRlLW9uLW1lbnVpdGVtLWVsZW1lbnRzLXRvLWRlZmluZS1hLWNvbW1hbmQtaW5kaXJlY3RseSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuNyA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlIHRpdGxlPSJhdHRyLW1lbnVpdGVtLWNvbW1hbmQiPmNvbW1hbmQ8L2NvZGU+IGF0dHJpYnV0ZSBvbiA8Y29kZT5tZW51aXRlbTwvY29kZT4gZWxlbWVudHMgdG8gZGVmaW5lCithIGNvbW1hbmQgaW5kaXJlY3RseTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtb24tYS1sYWJlbC1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjggPC9zcGFuPlVzaW5nIHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1hY2Nlc3NrZXkiPmFjY2Vzc2tleTwvY29kZT4gYXR0cmlidXRlCitvbiBhIDxjb2RlPmxhYmVsPC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1hY2Nlc3NrZXktYXR0cmlidXRlLW9uLWEtbGVnZW5kLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuOSA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWFjY2Vzc2tleSI+YWNjZXNza2V5PC9jb2RlPiBhdHRyaWJ1dGUKK29uIGEgPGNvZGU+bGVnZW5kPC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1hY2Nlc3NrZXktYXR0cmlidXRlLXRvLWRlZmluZS1hLWNvbW1hbmQtb24tb3RoZXItZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjEwIDwvc3Bhbj5Vc2luZyB0aGUgPGNvZGUgdGl0bGU9ImF0dHItYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L2NvZGU+CithdHRyaWJ1dGUgdG8gZGVmaW5lIGEgY29tbWFuZCBvbiBvdGhlciBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3RoZS1kaWFsb2ctZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjcgPC9zcGFuPlRoZSA8Y29kZT5kaWFsb2c8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjYW5jaG9yLXBvaW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjcuMSA8L3NwYW4+QW5jaG9yIHBvaW50czwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCNzY3JpcHRpbmctMSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyIDwvc3Bhbj5TY3JpcHRpbmc8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InNjcmlwdGluZy0xLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMSA8L3NwYW4+VGhlIDxjb2RlPnNjcmlwdDwvY29kZT4gZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCNzY3JpcHRpbmdMYW5ndWFnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi4xLjEgPC9zcGFuPlNjcmlwdGluZyBsYW5ndWFnZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzY3JpcHRpbmctMS5odG1sI3Jlc3RyaWN0aW9ucy1mb3ItY29udGVudHMtb2Ytc2NyaXB0LWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMS4yIDwvc3Bhbj5SZXN0cmljdGlvbnMgZm9yIGNvbnRlbnRzIG9mIDxjb2RlPnNjcmlwdDwvY29kZT4gZWxlbWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzY3JpcHRpbmctMS5odG1sI2lubGluZS1kb2N1bWVudGF0aW9uLWZvci1leHRlcm5hbC1zY3JpcHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMS4zIDwvc3Bhbj5JbmxpbmUgZG9jdW1lbnRhdGlvbiBmb3IgZXh0ZXJuYWwgc2NyaXB0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNjcmlwdGluZy0xLmh0bWwjc2NyaXB0VGFnWFNMVCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjEuNCA8L3NwYW4+SW50ZXJhY3Rpb24gb2YgPGNvZGU+c2NyaXB0PC9jb2RlPiBlbGVtZW50cyBhbmQgWFNMVDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzY3JpcHRpbmctMS5odG1sI3RoZS1ub3NjcmlwdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMiA8L3NwYW4+VGhlIDxjb2RlPm5vc2NyaXB0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjMgPC9zcGFuPlRoZSA8Y29kZT50ZW1wbGF0ZTwvY29kZT4gZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCN0ZW1wbGF0ZS1YU0xULVhQYXRoIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMy4xIDwvc3Bhbj5JbnRlcmFjdGlvbiBvZiA8Y29kZT50ZW1wbGF0ZTwvY29kZT4gZWxlbWVudHMgd2l0aCBYU0xUIGFuZCBYUGF0aDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCN0aGUtY2FudmFzLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40IDwvc3Bhbj5UaGUgPGNvZGU+Y2FudmFzPC9jb2RlPiBlbGVtZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNwcm94eWluZy1jYW52YXNlcy10by13b3JrZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4xIDwvc3Bhbj5Qcm94eWluZyBjYW52YXNlcyB0byB3b3JrZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjMmRjb250ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yIDwvc3Bhbj5UaGUgMkQgcmVuZGVyaW5nIGNvbnRleHQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2ltcGxlbWVudGF0aW9uLW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjEgPC9zcGFuPkltcGxlbWVudGF0aW9uIG5vdGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjdGhlLWNhbnZhcy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4yIDwvc3Bhbj5UaGUgY2FudmFzIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjZHJhd2luZ3N0eWxlLW9iamVjdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMyA8L3NwYW4+PGNvZGU+RHJhd2luZ1N0eWxlPC9jb2RlPiBvYmplY3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjbGluZS1zdHlsZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuNCA8L3NwYW4+TGluZSBzdHlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCN0ZXh0LXN0eWxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi41IDwvc3Bhbj5UZXh0IHN0eWxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2J1aWxkaW5nLXBhdGhzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjYgPC9zcGFuPkJ1aWxkaW5nIHBhdGhzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjcGF0aC1vYmplY3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjcgPC9zcGFuPjxjb2RlPlBhdGg8L2NvZGU+IG9iamVjdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCN0cmFuc2Zvcm1hdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuOCA8L3NwYW4+VHJhbnNmb3JtYXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjaW1hZ2Utc291cmNlcy1mb3ItMmQtcmVuZGVyaW5nLWNvbnRleHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjkgPC9zcGFuPkltYWdlIHNvdXJjZXMgZm9yIDJEIHJlbmRlcmluZyBjb250ZXh0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMTAgPC9zcGFuPkZpbGwgYW5kIHN0cm9rZSBzdHlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNkcmF3aW5nLXJlY3RhbmdsZXMtdG8tdGhlLWJpdG1hcCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4xMSA8L3NwYW4+RHJhd2luZyByZWN0YW5nbGVzIHRvIHRoZSBiaXRtYXA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNkcmF3aW5nLXRleHQtdG8tdGhlLWJpdG1hcCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4xMiA8L3NwYW4+RHJhd2luZyB0ZXh0IHRvIHRoZSBiaXRtYXA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNkcmF3aW5nLXBhdGhzLXRvLXRoZS1jYW52YXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMTMgPC9zcGFuPkRyYXdpbmcgcGF0aHMgdG8gdGhlIGNhbnZhczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2RyYXdpbmctaW1hZ2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE0IDwvc3Bhbj5EcmF3aW5nIGltYWdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2hpdC1yZWdpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE1IDwvc3Bhbj5IaXQgcmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI3BpeGVsLW1hbmlwdWxhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4xNiA8L3NwYW4+UGl4ZWwgbWFuaXB1bGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjY29tcG9zaXRpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMTcgPC9zcGFuPkNvbXBvc2l0aW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjaW1hZ2Utc21vb3RoaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE4IDwvc3Bhbj5JbWFnZSBzbW9vdGhpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNzaGFkb3dzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE5IDwvc3Bhbj5TaGFkb3dzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjZHJhd2luZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4yMCA8L3NwYW4+RHJhd2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2Jlc3QtcHJhY3RpY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjIxIDwvc3Bhbj5CZXN0IHByYWN0aWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2V4YW1wbGVzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMjIgPC9zcGFuPkV4YW1wbGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2NvbG9yLXNwYWNlcy1hbmQtY29sb3ItY29ycmVjdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMyA8L3NwYW4+Q29sb3Igc3BhY2VzIGFuZCBjb2xvciBjb3JyZWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjc2VyaWFsaXppbmctYml0bWFwcy10by1hLWZpbGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjQgPC9zcGFuPlNlcmlhbGl6aW5nIGJpdG1hcHMgdG8gYSBmaWxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjc2VjdXJpdHktd2l0aC1jYW52YXMtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjUgPC9zcGFuPlNlY3VyaXR5IHdpdGggPGNvZGU+Y2FudmFzPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlkaW9tcy5odG1sI2NvbW1vbi1pZGlvbXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMyA8L3NwYW4+Q29tbW9uIGlkaW9tcyB3aXRob3V0IGRlZGljYXRlZCBlbGVtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLWlkaW9tcy5odG1sI3RoZS1tYWluLXBhcnQtb2YtdGhlLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMy4xIDwvc3Bhbj5UaGUgbWFpbiBwYXJ0IG9mIHRoZSBjb250ZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlkaW9tcy5odG1sI3JlbC11cCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEzLjIgPC9zcGFuPkJyZWFkIGNydW1iIG5hdmlnYXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taWRpb21zLmh0bWwjdGFnLWNsb3VkcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEzLjMgPC9zcGFuPlRhZyBjbG91ZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taWRpb21zLmh0bWwjY29udmVyc2F0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEzLjQgPC9zcGFuPkNvbnZlcnNhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taWRpb21zLmh0bWwjZm9vdG5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTMuNSA8L3NwYW4+Rm9vdG5vdGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1pZGlvbXMuaHRtbCNkaXNhYmxlZC1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE0IDwvc3Bhbj5EaXNhYmxlZCBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbGVjdG9ycy5odG1sI3NlbGVjdG9ycyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE1IDwvc3Bhbj5NYXRjaGluZyBIVE1MIGVsZW1lbnRzIHVzaW5nIHNlbGVjdG9yczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VsZWN0b3JzLmh0bWwjY2FzZS1zZW5zaXRpdml0eSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE1LjEgPC9zcGFuPkNhc2Utc2Vuc2l0aXZpdHk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWxlY3RvcnMuaHRtbCNwc2V1ZG8tY2xhc3NlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE1LjIgPC9zcGFuPlBzZXVkby1jbGFzc2VzPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNtaWNyb2RhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NSA8L3NwYW4+TWljcm9kYXRhPC9hPgorPG9sPjxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNpbnRyb2R1Y3Rpb24tNCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjb3ZlcnZpZXciPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4xLjEgPC9zcGFuPk92ZXJ2aWV3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjdGhlLWJhc2ljLXN5bnRheCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjEuMiA8L3NwYW4+VGhlIGJhc2ljIHN5bnRheDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI3R5cGVkLWl0ZW1zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuMS4zIDwvc3Bhbj5UeXBlZCBpdGVtczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2dsb2JhbC1pZGVudGlmaWVycy1mb3ItaXRlbXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4xLjQgPC9zcGFuPkdsb2JhbCBpZGVudGlmaWVycyBmb3IgaXRlbXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNzZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVsYXJpZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4xLjUgPC9zcGFuPlNlbGVjdGluZyBuYW1lcyB3aGVuIGRlZmluaW5nIHZvY2FidWxhcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI3VzaW5nLXRoZS1taWNyb2RhdGEtZG9tLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj41LjEuNiA8L3NwYW4+VXNpbmcgdGhlIG1pY3JvZGF0YSBET00gQVBJPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2VuY29kaW5nLW1pY3JvZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj41LjIgPC9zcGFuPkVuY29kaW5nIG1pY3JvZGF0YTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjdGhlLW1pY3JvZGF0YS1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjIuMSA8L3NwYW4+VGhlIG1pY3JvZGF0YSBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2l0ZW1zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuMi4yIDwvc3Bhbj5JdGVtczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI25hbWVzOi10aGUtaXRlbXByb3AtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuMi4zIDwvc3Bhbj5OYW1lczogdGhlIDxjb2RlPml0ZW1wcm9wPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCN2YWx1ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4yLjQgPC9zcGFuPlZhbHVlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2Fzc29jaWF0aW5nLW5hbWVzLXdpdGgtaXRlbXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4yLjUgPC9zcGFuPkFzc29jaWF0aW5nIG5hbWVzIHdpdGggaXRlbXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNtaWNyb2RhdGEtYW5kLW90aGVyLW5hbWVzcGFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4yLjYgPC9zcGFuPk1pY3JvZGF0YSBhbmQgb3RoZXIgbmFtZXNwYWNlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNtaWNyb2RhdGEtZG9tLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj41LjMgPC9zcGFuPk1pY3JvZGF0YSBET00gQVBJPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjbWR2b2NhYnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40IDwvc3Bhbj5TYW1wbGUgbWljcm9kYXRhIHZvY2FidWxhcmllczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjdmNhcmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40LjEgPC9zcGFuPnZDYXJkPC9hPgorPG9sPjxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNjb252ZXJzaW9uLXRvLXZjYXJkIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNC4xLjEgPC9zcGFuPkNvbnZlcnNpb24gdG8gdkNhcmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNleGFtcGxlcy0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNC4xLjIgPC9zcGFuPkV4YW1wbGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI3ZldmVudCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjQuMiA8L3NwYW4+dkV2ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNjb252ZXJzaW9uLXRvLWljYWxlbmRhciI+PHNwYW4gY2xhc3M9InNlY25vIj41LjQuMi4xIDwvc3Bhbj5Db252ZXJzaW9uIHRvIGlDYWxlbmRhcjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2V4YW1wbGVzLTIiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40LjIuMiA8L3NwYW4+RXhhbXBsZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjbGljZW5zaW5nLXdvcmtzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNC4zIDwvc3Bhbj5MaWNlbnNpbmcgd29ya3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2V4YW1wbGVzLTMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40LjMuMSA8L3NwYW4+RXhhbXBsZXM8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2NvbnZlcnRpbmctaHRtbC10by1vdGhlci1mb3JtYXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNSA8L3NwYW4+Q29udmVydGluZyBIVE1MIHRvIG90aGVyIGZvcm1hdHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2pzb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+NS41LjEgPC9zcGFuPkpTT048L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjYnJvd3NlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NiA8L3NwYW4+TG9hZGluZyBXZWIgcGFnZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjd2luZG93cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEgPC9zcGFuPkJyb3dzaW5nIGNvbnRleHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI25lc3RlZC1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuMSA8L3NwYW4+TmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI25hdmlnYXRpbmctbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzLWluLXRoZS1kb20iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjEuMSA8L3NwYW4+TmF2aWdhdGluZyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgaW4gdGhlIERPTTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuMiA8L3NwYW4+QXV4aWxpYXJ5IGJyb3dzaW5nIGNvbnRleHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI25hdmlnYXRpbmctYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzLWluLXRoZS1kb20iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjIuMSA8L3NwYW4+TmF2aWdhdGluZyBhdXhpbGlhcnkgYnJvd3NpbmcgY29udGV4dHMgaW4gdGhlIERPTTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI3NlY29uZGFyeS1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuMyA8L3NwYW4+U2Vjb25kYXJ5IGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnJvd3NlcnMuaHRtbCNzZWN1cml0eS1uYXYiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjQgPC9zcGFuPlNlY3VyaXR5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnJvd3NlcnMuaHRtbCNncm91cGluZ3Mtb2YtYnJvd3NpbmctY29udGV4dHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjUgPC9zcGFuPkdyb3VwaW5ncyBvZiBicm93c2luZyBjb250ZXh0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjYnJvd3NpbmctY29udGV4dC1uYW1lcyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuNiA8L3NwYW4+QnJvd3NpbmcgY29udGV4dCBuYW1lczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI3RoZS13aW5kb3ctb2JqZWN0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuMiA8L3NwYW4+VGhlIDxjb2RlPldpbmRvdzwvY29kZT4gb2JqZWN0PC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI3NlY3VyaXR5LXdpbmRvdyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjIuMSA8L3NwYW4+U2VjdXJpdHk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjIgPC9zcGFuPkFQSXMgZm9yIGNyZWF0aW5nIGFuZCBuYXZpZ2F0aW5nIGJyb3dzaW5nIGNvbnRleHRzIGJ5IG5hbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2FjY2Vzc2luZy1vdGhlci1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjIuMyA8L3NwYW4+QWNjZXNzaW5nIG90aGVyIGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnJvd3NlcnMuaHRtbCNuYW1lZC1hY2Nlc3Mtb24tdGhlLXdpbmRvdy1vYmplY3QiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjQgPC9zcGFuPk5hbWVkIGFjY2VzcyBvbiB0aGUgPGNvZGU+V2luZG93PC9jb2RlPiBvYmplY3Q8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2dhcmJhZ2UtY29sbGVjdGlvbi1hbmQtYnJvd3NpbmctY29udGV4dHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjUgPC9zcGFuPkdhcmJhZ2UgY29sbGVjdGlvbiBhbmQgYnJvd3NpbmcgY29udGV4dHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2Nsb3NpbmctYnJvd3NpbmctY29udGV4dHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjYgPC9zcGFuPkNsb3NpbmcgYnJvd3NpbmcgY29udGV4dHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2Jyb3dzZXItaW50ZXJmYWNlLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuMi43IDwvc3Bhbj5Ccm93c2VyIGludGVyZmFjZSBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjdGhlLXdpbmRvd3Byb3h5LW9iamVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjIuOCA8L3NwYW4+VGhlIDxjb2RlPldpbmRvd1Byb3h5PC9jb2RlPiBvYmplY3Q8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ib3JpZ2luLTAuaHRtbCNvcmlnaW4tMCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjMgPC9zcGFuPk9yaWdpbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0ib3JpZ2luLTAuaHRtbCNyZWxheGluZy10aGUtc2FtZS1vcmlnaW4tcmVzdHJpY3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4zLjEgPC9zcGFuPlJlbGF4aW5nIHRoZSBzYW1lLW9yaWdpbiByZXN0cmljdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJvcmlnaW4tMC5odG1sI3NhbmRib3hpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni40IDwvc3Bhbj5TYW5kYm94aW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI2hpc3RvcnkiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni41IDwvc3Bhbj5TZXNzaW9uIGhpc3RvcnkgYW5kIG5hdmlnYXRpb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCN0aGUtc2Vzc2lvbi1oaXN0b3J5LW9mLWJyb3dzaW5nLWNvbnRleHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS4xIDwvc3Bhbj5UaGUgc2Vzc2lvbiBoaXN0b3J5IG9mIGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3RoZS1oaXN0b3J5LWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjUuMiA8L3NwYW4+VGhlIDxjb2RlPkhpc3Rvcnk8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCN0aGUtbG9jYXRpb24taW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS4zIDwvc3Bhbj5UaGUgPGNvZGU+TG9jYXRpb248L2NvZGU+IGludGVyZmFjZTwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3NlY3VyaXR5LWxvY2F0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS4zLjEgPC9zcGFuPlNlY3VyaXR5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNoaXN0b3J5LW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS40IDwvc3Bhbj5JbXBsZW1lbnRhdGlvbiBub3RlcyBmb3Igc2Vzc2lvbiBoaXN0b3J5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNicm93c2luZy10aGUtd2ViIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNiA8L3NwYW4+QnJvd3NpbmcgdGhlIFdlYjwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuMSA8L3NwYW4+TmF2aWdhdGluZyBhY3Jvc3MgZG9jdW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3JlYWQtaHRtbCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuMiA8L3NwYW4+UGFnZSBsb2FkIHByb2Nlc3NpbmcgbW9kZWwgZm9yIEhUTUwgZmlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjcmVhZC14bWwiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjMgPC9zcGFuPlBhZ2UgbG9hZCBwcm9jZXNzaW5nIG1vZGVsIGZvciBYTUwgZmlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjcmVhZC10ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi40IDwvc3Bhbj5QYWdlIGxvYWQgcHJvY2Vzc2luZyBtb2RlbCBmb3IgdGV4dCBmaWxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNyZWFkLW11bHRpcGFydC14LW1peGVkLXJlcGxhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjUgPC9zcGFuPlBhZ2UgbG9hZCBwcm9jZXNzaW5nIG1vZGVsIGZvciA8Y29kZT5tdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlPC9jb2RlPiByZXNvdXJjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjcmVhZC1tZWRpYSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuNiA8L3NwYW4+UGFnZSBsb2FkIHByb2Nlc3NpbmcgbW9kZWwgZm9yIG1lZGlhPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3JlYWQtcGx1Z2luIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi43IDwvc3Bhbj5QYWdlIGxvYWQgcHJvY2Vzc2luZyBtb2RlbCBmb3IgY29udGVudCB0aGF0IHVzZXMgcGx1Z2luczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNyZWFkLXVhLWlubGluZSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuOCA8L3NwYW4+UGFnZSBsb2FkIHByb2Nlc3NpbmcgbW9kZWwgZm9yIGlubGluZQorY29udGVudCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIERPTTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNzY3JvbGwtdG8tZnJhZ2lkIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi45IDwvc3Bhbj5OYXZpZ2F0aW5nIHRvIGEgZnJhZ21lbnQgaWRlbnRpZmllcjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNoaXN0b3J5LXRyYXZlcnNhbCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuMTAgPC9zcGFuPkhpc3RvcnkgdHJhdmVyc2FsPC9hPgorPG9sPjxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjdGhlLXBvcHN0YXRlZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMC4xIDwvc3Bhbj5UaGUgPGNvZGU+UG9wU3RhdGVFdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3RoZS1oYXNoY2hhbmdlZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMC4yIDwvc3Bhbj5UaGUgPGNvZGU+SGFzaENoYW5nZUV2ZW50PC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjdGhlLXBhZ2V0cmFuc2l0aW9uZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMC4zIDwvc3Bhbj5UaGUgPGNvZGU+UGFnZVRyYW5zaXRpb25FdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCN1bmxvYWRpbmctZG9jdW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMSA8L3NwYW4+VW5sb2FkaW5nIGRvY3VtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3RoZS1iZWZvcmV1bmxvYWRldmVudC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjExLjEgPC9zcGFuPlRoZSA8Y29kZT5CZWZvcmVVbmxvYWRFdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNhYm9ydGluZy1hLWRvY3VtZW50LWxvYWQiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjEyIDwvc3Bhbj5BYm9ydGluZyBhIGRvY3VtZW50IGxvYWQ8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI29mZmxpbmUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43IDwvc3Bhbj5PZmZsaW5lIFdlYiBhcHBsaWNhdGlvbnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNpbnRyb2R1Y3Rpb24tNSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjc3VwcG9ydGluZy1vZmZsaW5lLWNhY2hpbmctZm9yLWxlZ2FjeS1hcHBsaWNhdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjEuMSA8L3NwYW4+U3VwcG9ydGluZyBvZmZsaW5lIGNhY2hpbmcgZm9yIGxlZ2FjeSBhcHBsaWNhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjYXBwY2FjaGVldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjEuMiA8L3NwYW4+RXZlbnQgc3VtbWFyeTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjYXBwY2FjaGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjIgPC9zcGFuPkFwcGxpY2F0aW9uIGNhY2hlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNtYW5pZmVzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjMgPC9zcGFuPlRoZSBjYWNoZSBtYW5pZmVzdCBzeW50YXg8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNzb21lLXNhbXBsZS1tYW5pZmVzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjMuMSA8L3NwYW4+U29tZSBzYW1wbGUgbWFuaWZlc3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI3dyaXRpbmctY2FjaGUtbWFuaWZlc3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNy4zLjIgPC9zcGFuPldyaXRpbmcgY2FjaGUgbWFuaWZlc3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI3BhcnNpbmctY2FjaGUtbWFuaWZlc3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNy4zLjMgPC9zcGFuPlBhcnNpbmcgY2FjaGUgbWFuaWZlc3RzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNkb3dubG9hZGluZy1vci11cGRhdGluZy1hbi1hcHBsaWNhdGlvbi1jYWNoZSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuNCA8L3NwYW4+RG93bmxvYWRpbmcgb3IgdXBkYXRpbmcgYW4gYXBwbGljYXRpb24gY2FjaGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjdGhlLWFwcGxpY2F0aW9uLWNhY2hlLXNlbGVjdGlvbi1hbGdvcml0aG0iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjUgPC9zcGFuPlRoZSBhcHBsaWNhdGlvbiBjYWNoZSBzZWxlY3Rpb24gYWxnb3JpdGhtPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI2NoYW5nZXNUb05ldHdvcmtpbmdNb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuNiA8L3NwYW4+Q2hhbmdlcyB0byB0aGUgbmV0d29ya2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNleHBpcmluZy1hcHBsaWNhdGlvbi1jYWNoZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjcgPC9zcGFuPkV4cGlyaW5nIGFwcGxpY2F0aW9uIGNhY2hlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNkaXNrLXNwYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNy44IDwvc3Bhbj5EaXNrIHNwYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI2FwcGxpY2F0aW9uLWNhY2hlLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuOSA8L3NwYW4+QXBwbGljYXRpb24gY2FjaGUgQVBJPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI2Jyb3dzZXItc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjEwIDwvc3Bhbj5Ccm93c2VyIHN0YXRlPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjd2ViYXBwYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj43IDwvc3Bhbj5XZWIgYXBwbGljYXRpb24gQVBJczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3NjcmlwdGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEgPC9zcGFuPlNjcmlwdGluZzwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2ludHJvZHVjdGlvbi02Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZW5hYmxpbmctYW5kLWRpc2FibGluZy1zY3JpcHRpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjIgPC9zcGFuPkVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgc2NyaXB0aW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3Byb2Nlc3NpbmctbW9kZWwtMyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMyA8L3NwYW4+UHJvY2Vzc2luZyBtb2RlbDwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2RlZmluaXRpb25zLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjMuMSA8L3NwYW4+RGVmaW5pdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjc2NyaXB0LXNldHRpbmdzLWZvci1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy4yIDwvc3Bhbj5TY3JpcHQgc2V0dGluZ3MgZm9yIGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2NhbGxpbmctc2NyaXB0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy4zIDwvc3Bhbj5DYWxsaW5nIHNjcmlwdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjY3JlYXRpbmctc2NyaXB0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy40IDwvc3Bhbj5DcmVhdGluZyBzY3JpcHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2tpbGxpbmctc2NyaXB0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy41IDwvc3Bhbj5LaWxsaW5nIHNjcmlwdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjcnVudGltZS1zY3JpcHQtZXJyb3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS4zLjYgPC9zcGFuPlJ1bnRpbWUgc2NyaXB0IGVycm9yczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3J1bnRpbWUtc2NyaXB0LWVycm9ycy1pbi1kb2N1bWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjMuNi4xIDwvc3Bhbj5SdW50aW1lIHNjcmlwdCBlcnJvcnMgaW4gZG9jdW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3RoZS1lcnJvcmV2ZW50LWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy42LjIgPC9zcGFuPlRoZSA8Y29kZT5FcnJvckV2ZW50PC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudC1sb29wcyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNCA8L3NwYW4+RXZlbnQgbG9vcHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNkZWZpbml0aW9ucy0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS40LjEgPC9zcGFuPkRlZmluaXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3Byb2Nlc3NpbmctbW9kZWwtNCI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNC4yIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2dlbmVyaWMtdGFzay1zb3VyY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS40LjMgPC9zcGFuPkdlbmVyaWMgdGFzayBzb3VyY2VzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjUgPC9zcGFuPkV2ZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2V2ZW50LWhhbmRsZXItYXR0cmlidXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNS4xIDwvc3Bhbj5FdmVudCBoYW5kbGVyczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudC1oYW5kbGVycy1vbi1lbGVtZW50cywtZG9jdW1lbnQtb2JqZWN0cywtYW5kLXdpbmRvdy1vYmplY3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS41LjIgPC9zcGFuPkV2ZW50IGhhbmRsZXJzIG9uIGVsZW1lbnRzLCA8Y29kZT5Eb2N1bWVudDwvY29kZT4gb2JqZWN0cywgYW5kIDxjb2RlPldpbmRvdzwvY29kZT4gb2JqZWN0czwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2lkbC1kZWZpbml0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNS4yLjEgPC9zcGFuPklETCBkZWZpbml0aW9uczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZXZlbnQtZmlyaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS41LjMgPC9zcGFuPkV2ZW50IGZpcmluZzwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudHMtYW5kLXRoZS13aW5kb3ctb2JqZWN0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS41LjQgPC9zcGFuPkV2ZW50cyBhbmQgdGhlIDxjb2RlPldpbmRvdzwvY29kZT4gb2JqZWN0PC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjYXRvYiI+PHNwYW4gY2xhc3M9InNlY25vIj43LjIgPC9zcGFuPkJhc2U2NCB1dGlsaXR5IG1ldGhvZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMyA8L3NwYW4+RHluYW1pYyBtYXJrdXAgaW5zZXJ0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjb3BlbmluZy10aGUtaW5wdXQtc3RyZWFtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMy4xIDwvc3Bhbj5PcGVuaW5nIHRoZSBpbnB1dCBzdHJlYW08L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjY2xvc2luZy10aGUtaW5wdXQtc3RyZWFtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMy4yIDwvc3Bhbj5DbG9zaW5nIHRoZSBpbnB1dCBzdHJlYW08L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZG9jdW1lbnQud3JpdGUoKSI+PHNwYW4gY2xhc3M9InNlY25vIj43LjMuMyA8L3NwYW4+PGNvZGUgdGl0bGU9ImRvbS1kb2N1bWVudC13cml0ZSI+ZG9jdW1lbnQud3JpdGUoKTwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZG9jdW1lbnQud3JpdGVsbigpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMy40IDwvc3Bhbj48Y29kZSB0aXRsZT0iZG9tLWRvY3VtZW50LXdyaXRlbG4iPmRvY3VtZW50LndyaXRlbG4oKTwvY29kZT48L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjdGltZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNCA8L3NwYW4+VGltZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjdXNlci1wcm9tcHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNSA8L3NwYW4+VXNlciBwcm9tcHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNzaW1wbGUtZGlhbG9ncyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjUuMSA8L3NwYW4+U2ltcGxlIGRpYWxvZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNwcmludGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjUuMiA8L3NwYW4+UHJpbnRpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNkaWFsb2dzLWltcGxlbWVudGVkLXVzaW5nLXNlcGFyYXRlLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjUuMyA8L3NwYW4+RGlhbG9ncyBpbXBsZW1lbnRlZCB1c2luZyBzZXBhcmF0ZSBkb2N1bWVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny42IDwvc3Bhbj5TeXN0ZW0gc3RhdGUgYW5kIGNhcGFiaWxpdGllczwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjdGhlLW5hdmlnYXRvci1vYmplY3QiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny42LjEgPC9zcGFuPlRoZSA8Y29kZT5OYXZpZ2F0b3I8L2NvZGU+IG9iamVjdDwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjY2xpZW50LWlkZW50aWZpY2F0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjEgPC9zcGFuPkNsaWVudCBpZGVudGlmaWNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRpbWVycy5odG1sI2xhbmd1YWdlLXByZWZlcmVuY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjIgPC9zcGFuPkxhbmd1YWdlIHByZWZlcmVuY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjY3VzdG9tLWhhbmRsZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjMgPC9zcGFuPkN1c3RvbSBzY2hlbWUgYW5kIGNvbnRlbnQgaGFuZGxlcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRpbWVycy5odG1sI3NlY3VyaXR5LWFuZC1wcml2YWN5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjMuMSA8L3NwYW4+U2VjdXJpdHkgYW5kIHByaXZhY3k8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNzYW1wbGUtaGFuZGxlci1pbXBsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjMuMiA8L3NwYW4+U2FtcGxlIHVzZXIgaW50ZXJmYWNlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRpbWVycy5odG1sI21hbnVhbGx5LXJlbGVhc2luZy10aGUtc3RvcmFnZS1tdXRleCI+PHNwYW4gY2xhc3M9InNlY25vIj43LjYuMS40IDwvc3Bhbj5NYW51YWxseSByZWxlYXNpbmcgdGhlIHN0b3JhZ2UgbXV0ZXg8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNwbHVnaW5zLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny42LjEuNSA8L3NwYW4+UGx1Z2luczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCN0aGUtZXh0ZXJuYWwtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4yIDwvc3Bhbj5UaGUgPGNvZGU+RXh0ZXJuYWw8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNpbWFnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny43IDwvc3Bhbj5JbWFnZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VkaXRpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+OCA8L3NwYW4+VXNlciBpbnRlcmFjdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI3RoZS1oaWRkZW4tYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguMSA8L3NwYW4+VGhlIDxjb2RlPmhpZGRlbjwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2luZXJ0LXN1YnRyZWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguMiA8L3NwYW4+SW5lcnQgc3VidHJlZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCN0aGUtaW5lcnQtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguMi4xIDwvc3Bhbj5UaGUgPGNvZGU+aW5lcnQ8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjYWN0aXZhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj44LjMgPC9zcGFuPkFjdGl2YXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjZm9jdXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC40IDwvc3Bhbj5Gb2N1czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI3NlcXVlbnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj44LjQuMSA8L3NwYW4+U2VxdWVudGlhbCBmb2N1cyBuYXZpZ2F0aW9uIGFuZCB0aGUgPGNvZGUgdGl0bGU9ImF0dHItdGFiaW5kZXgiPnRhYmluZGV4PC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjZm9jdXMtbWFuYWdlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj44LjQuMiA8L3NwYW4+Rm9jdXMgbWFuYWdlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNkb2N1bWVudC1sZXZlbC1mb2N1cy1hcGlzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNC4zIDwvc3Bhbj5Eb2N1bWVudC1sZXZlbCBmb2N1cyBBUElzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VsZW1lbnQtbGV2ZWwtZm9jdXMtYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj44LjQuNCA8L3NwYW4+RWxlbWVudC1sZXZlbCBmb2N1cyBBUElzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNhc3NpZ25pbmcta2V5Ym9hcmQtc2hvcnRjdXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNSA8L3NwYW4+QXNzaWduaW5nIGtleWJvYXJkIHNob3J0Y3V0czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2ludHJvZHVjdGlvbi03Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNS4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC41LjIgPC9zcGFuPlRoZSA8Y29kZT5hY2Nlc3NrZXk8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNwcm9jZXNzaW5nLW1vZGVsLTUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC41LjMgPC9zcGFuPlByb2Nlc3NpbmcgbW9kZWw8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VkaXRpbmctMCI+PHNwYW4gY2xhc3M9InNlY25vIj44LjYgPC9zcGFuPkVkaXRpbmc8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNjb250ZW50ZWRpdGFibGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC42LjEgPC9zcGFuPk1ha2luZyBkb2N1bWVudCByZWdpb25zIGVkaXRhYmxlOiBUaGUgPGNvZGUgdGl0bGU9ImF0dHItY29udGVudGVkaXRhYmxlIj5jb250ZW50ZWRpdGFibGU8L2NvZGU+IGNvbnRlbnQgYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI21ha2luZy1lbnRpcmUtZG9jdW1lbnRzLWVkaXRhYmxlOi10aGUtZGVzaWdubW9kZS1pZGwtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNi4yIDwvc3Bhbj5NYWtpbmcgZW50aXJlIGRvY3VtZW50cyBlZGl0YWJsZTogVGhlIDxjb2RlIHRpdGxlPSJkb20tZG9jdW1lbnQtZGVzaWduTW9kZSI+ZGVzaWduTW9kZTwvY29kZT4gSURMIGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNiZXN0LXByYWN0aWNlcy1mb3ItaW4tcGFnZS1lZGl0b3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNi4zIDwvc3Bhbj5CZXN0IHByYWN0aWNlcyBmb3IgaW4tcGFnZSBlZGl0b3JzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VkaXRpbmctYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj44LjYuNCA8L3NwYW4+RWRpdGluZyBBUElzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI3NwZWxsaW5nLWFuZC1ncmFtbWFyLWNoZWNraW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNi41IDwvc3Bhbj5TcGVsbGluZyBhbmQgZ3JhbW1hciBjaGVja2luZzwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCNkbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43IDwvc3Bhbj5EcmFnIGFuZCBkcm9wPC9hPgorPG9sPjxsaT48YSBocmVmPSJkbmQuaHRtbCNpbnRyb2R1Y3Rpb24tOCI+PHNwYW4gY2xhc3M9InNlY25vIj44LjcuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjdGhlLWRyYWctZGF0YS1zdG9yZSI+PHNwYW4gY2xhc3M9InNlY25vIj44LjcuMiA8L3NwYW4+VGhlIGRyYWcgZGF0YSBzdG9yZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRuZC5odG1sI3RoZS1kYXRhdHJhbnNmZXItaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNy4zIDwvc3Bhbj5UaGUgPGNvZGU+RGF0YVRyYW5zZmVyPC9jb2RlPiBpbnRlcmZhY2U8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImRuZC5odG1sI3RoZS1kYXRhdHJhbnNmZXJpdGVtbGlzdC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjMuMSA8L3NwYW4+VGhlIDxjb2RlPkRhdGFUcmFuc2Zlckl0ZW1MaXN0PC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCN0aGUtZGF0YXRyYW5zZmVyaXRlbS1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjMuMiA8L3NwYW4+VGhlIDxjb2RlPkRhdGFUcmFuc2Zlckl0ZW08L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCN0aGUtZHJhZ2V2ZW50LWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj44LjcuNCA8L3NwYW4+VGhlIDxjb2RlPkRyYWdFdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjZHJhZy1hbmQtZHJvcC1wcm9jZXNzaW5nLW1vZGVsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNy41IDwvc3Bhbj5EcmFnLWFuZC1kcm9wIHByb2Nlc3NpbmcgbW9kZWw8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCNkbmRldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjYgPC9zcGFuPkV2ZW50cyBzdW1tYXJ5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjcgPC9zcGFuPlRoZSA8Y29kZT5kcmFnZ2FibGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRuZC5odG1sI3RoZS1kcm9wem9uZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjggPC9zcGFuPlRoZSA8Y29kZT5kcm9wem9uZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjc2VjdXJpdHktcmlza3MtaW4tdGhlLWRyYWctYW5kLWRyb3AtbW9kZWwiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjkgPC9zcGFuPlNlY3VyaXR5IHJpc2tzIGluIHRoZSBkcmFnLWFuZC1kcm9wIG1vZGVsPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tcy5odG1sI2NvbW1zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkgPC9zcGFuPkNvbW11bmljYXRpb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjdGhlLW1lc3NhZ2VldmVudC1pbnRlcmZhY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMSA8L3NwYW4+VGhlIDxjb2RlPk1lc3NhZ2VFdmVudDwvY29kZT4gaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjc2VydmVyLXNlbnQtZXZlbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMiA8L3NwYW4+U2VydmVyLXNlbnQgZXZlbnRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tcy5odG1sI3NlcnZlci1zZW50LWV2ZW50cy1pbnRybyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCN0aGUtZXZlbnRzb3VyY2UtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMi4yIDwvc3Bhbj5UaGUgPGNvZGU+RXZlbnRTb3VyY2U8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC02Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMi4zIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCNwYXJzaW5nLWFuLWV2ZW50LXN0cmVhbSI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuNCA8L3NwYW4+UGFyc2luZyBhbiBldmVudCBzdHJlYW08L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tcy5odG1sI2V2ZW50LXN0cmVhbS1pbnRlcnByZXRhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuNSA8L3NwYW4+SW50ZXJwcmV0aW5nIGFuIGV2ZW50IHN0cmVhbTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjYXV0aG9yaW5nLW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMi42IDwvc3Bhbj5BdXRob3Jpbmcgbm90ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tcy5odG1sI2V2ZW50c291cmNlLXB1c2giPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4yLjcgPC9zcGFuPkNvbm5lY3Rpb25sZXNzIHB1c2ggYW5kIG90aGVyIGZlYXR1cmVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCNnYXJiYWdlLWNvbGxlY3Rpb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuOCA8L3NwYW4+R2FyYmFnZSBjb2xsZWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCNpbXBsZW1lbnRhdGlvbi1hZHZpY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4yLjkgPC9zcGFuPkltcGxlbWVudGF0aW9uIGFkdmljZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjaWFuYS1jb25zaWRlcmF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuMTAgPC9zcGFuPklBTkEgY29uc2lkZXJhdGlvbnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjdGV4dC9ldmVudC1zdHJlYW0iPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4yLjEwLjEgPC9zcGFuPjxjb2RlPnRleHQvZXZlbnQtc3RyZWFtPC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjbGFzdC1ldmVudC1pZCI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuMTAuMiA8L3NwYW4+PGNvZGU+TGFzdC1FdmVudC1JRDwvY29kZT48L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im5ldHdvcmsuaHRtbCNuZXR3b3JrIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMyA8L3NwYW4+V2ViIHNvY2tldHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im5ldHdvcmsuaHRtbCNuZXR3b3JrLWludHJvIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMy4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjdGhlLXdlYnNvY2tldC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjIgPC9zcGFuPlRoZSA8Y29kZT5XZWJTb2NrZXQ8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im5ldHdvcmsuaHRtbCNmZWVkYmFjay1mcm9tLXRoZS1wcm90b2NvbCI+PHNwYW4gY2xhc3M9InNlY25vIj45LjMuMyA8L3NwYW4+RmVlZGJhY2sgZnJvbSB0aGUgcHJvdG9jb2w8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjcGluZy1hbmQtcG9uZy1mcmFtZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjQgPC9zcGFuPlBpbmcgYW5kIFBvbmcgZnJhbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmV0d29yay5odG1sI3BhcnNpbmctd2Vic29ja2V0LXVybHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjUgPC9zcGFuPlBhcnNpbmcgV2ViU29ja2V0IFVSTHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjdGhlLWNsb3NlZXZlbnQtaW50ZXJmYWNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjMuNiA8L3NwYW4+VGhlIDxjb2RlPkNsb3NlRXZlbnQ8L2NvZGU+IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjZ2FyYmFnZS1jb2xsZWN0aW9uLTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjcgPC9zcGFuPkdhcmJhZ2UgY29sbGVjdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjd2ViLW1lc3NhZ2luZyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjQgPC9zcGFuPkNyb3NzLWRvY3VtZW50IG1lc3NhZ2luZzwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2ludHJvZHVjdGlvbi05Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNC4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjc2VjdXJpdHktcG9zdG1zZyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjQuMiA8L3NwYW4+U2VjdXJpdHk8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYi1tZXNzYWdpbmcuaHRtbCNhdXRob3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNC4yLjEgPC9zcGFuPkF1dGhvcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjdXNlci1hZ2VudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS40LjIuMiA8L3NwYW4+VXNlciBhZ2VudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI3Bvc3RpbmctbWVzc2FnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS40LjMgPC9zcGFuPlBvc3RpbmcgbWVzc2FnZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2NoYW5uZWwtbWVzc2FnaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNSA8L3NwYW4+Q2hhbm5lbCBtZXNzYWdpbmc8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYi1tZXNzYWdpbmcuaHRtbCNpbnRyb2R1Y3Rpb24tMTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2V4YW1wbGVzLTQiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjEuMSA8L3NwYW4+RXhhbXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjcG9ydHMtYXMtdGhlLWJhc2lzLW9mLWFuLW9iamVjdC1jYXBhYmlsaXR5LW1vZGVsLW9uLXRoZS13ZWIiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjEuMiA8L3NwYW4+UG9ydHMgYXMgdGhlIGJhc2lzIG9mIGFuIG9iamVjdC1jYXBhYmlsaXR5IG1vZGVsIG9uIHRoZSBXZWI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjcG9ydHMtYXMtdGhlLWJhc2lzLW9mLWFic3RyYWN0aW5nLW91dC1zZXJ2aWNlLWltcGxlbWVudGF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjUuMS4zIDwvc3Bhbj5Qb3J0cyBhcyB0aGUgYmFzaXMgb2YgYWJzdHJhY3Rpbmcgb3V0IHNlcnZpY2UgaW1wbGVtZW50YXRpb25zPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYi1tZXNzYWdpbmcuaHRtbCNtZXNzYWdlLWNoYW5uZWxzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNS4yIDwvc3Bhbj5NZXNzYWdlIGNoYW5uZWxzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI21lc3NhZ2UtcG9ydHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjMgPC9zcGFuPk1lc3NhZ2UgcG9ydHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjYnJvYWRjYXN0aW5nLXRvLW1hbnktcG9ydHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjQgPC9zcGFuPkJyb2FkY2FzdGluZyB0byBtYW55IHBvcnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI3BvcnRzLWFuZC1nYXJiYWdlLWNvbGxlY3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjUgPC9zcGFuPlBvcnRzIGFuZCBnYXJiYWdlIGNvbGxlY3Rpb248L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2Jyb2FkY2FzdGluZy10by1vdGhlci1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjYgPC9zcGFuPkJyb2FkY2FzdGluZyB0byBvdGhlciBicm93c2luZyBjb250ZXh0czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjd29ya2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMCA8L3NwYW4+V2ViIHdvcmtlcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbnRyb2R1Y3Rpb24tMTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjc2NvcGUtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjEgPC9zcGFuPlNjb3BlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2V4YW1wbGVzLTUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMS4yIDwvc3Bhbj5FeGFtcGxlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2EtYmFja2dyb3VuZC1udW1iZXItY3J1bmNoaW5nLXdvcmtlciI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuMSA8L3NwYW4+QSBiYWNrZ3JvdW5kIG51bWJlci1jcnVuY2hpbmcgd29ya2VyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3dvcmtlci11c2VkLWZvci1iYWNrZ3JvdW5kLWkvbyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuMiA8L3NwYW4+V29ya2VyIHVzZWQgZm9yIGJhY2tncm91bmQgSS9PPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3NoYXJlZC13b3JrZXJzLWludHJvZHVjdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuMyA8L3NwYW4+U2hhcmVkIHdvcmtlcnMgaW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3NoYXJlZC1zdGF0ZS11c2luZy1hLXNoYXJlZC13b3JrZXIiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMS4yLjQgPC9zcGFuPlNoYXJlZCBzdGF0ZSB1c2luZyBhIHNoYXJlZCB3b3JrZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjZGVsZWdhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuNSA8L3NwYW4+RGVsZWdhdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjdHV0b3JpYWxzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjEuMyA8L3NwYW4+VHV0b3JpYWxzPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjY3JlYXRpbmctYS1kZWRpY2F0ZWQtd29ya2VyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjEuMy4xIDwvc3Bhbj5DcmVhdGluZyBhIGRlZGljYXRlZCB3b3JrZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjY29tbXVuaWNhdGluZy13aXRoLWEtZGVkaWNhdGVkLXdvcmtlciI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjMuMiA8L3NwYW4+Q29tbXVuaWNhdGluZyB3aXRoIGEgZGVkaWNhdGVkIHdvcmtlcjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNzaGFyZWQtd29ya2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjMuMyA8L3NwYW4+U2hhcmVkIHdvcmtlcnM8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbmZyYXN0cnVjdHVyZS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIgPC9zcGFuPkluZnJhc3RydWN0dXJlPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjdGhlLWdsb2JhbC1zY29wZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjEgPC9zcGFuPlRoZSBnbG9iYWwgc2NvcGU8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN0aGUtd29ya2VyZ2xvYmFsc2NvcGUtY29tbW9uLWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjEuMSA8L3NwYW4+VGhlIDxjb2RlPldvcmtlckdsb2JhbFNjb3BlPC9jb2RlPiBjb21tb24gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2RlZGljYXRlZC13b3JrZXJzLWFuZC10aGUtZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGUtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIuMS4yIDwvc3Bhbj5EZWRpY2F0ZWQgd29ya2VycyBhbmQgdGhlIDxjb2RlPkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjc2hhcmVkLXdvcmtlcnMtYW5kLXRoZS1zaGFyZWR3b3JrZXJnbG9iYWxzY29wZS1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi4xLjMgPC9zcGFuPlNoYXJlZCB3b3JrZXJzIGFuZCB0aGUgPGNvZGU+U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjd29ya2VyLWV2ZW50LWxvb3AiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi4yIDwvc3Bhbj5UaGUgZXZlbnQgbG9vcDwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN0aGUtd29ya2VyJ3MtbGlmZXRpbWUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi4zIDwvc3Bhbj5UaGUgd29ya2VyJ3MgbGlmZXRpbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC03Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIuNCA8L3NwYW4+UHJvY2Vzc2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNydW50aW1lLXNjcmlwdC1lcnJvcnMtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjUgPC9zcGFuPlJ1bnRpbWUgc2NyaXB0IGVycm9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNjcmVhdGluZy13b3JrZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIuNiA8L3NwYW4+Q3JlYXRpbmcgd29ya2VyczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3RoZS1hYnN0cmFjdHdvcmtlci1hYnN0cmFjdC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi42LjEgPC9zcGFuPlRoZSA8Y29kZT5BYnN0cmFjdFdvcmtlcjwvY29kZT4gYWJzdHJhY3QgaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3NjcmlwdC1zZXR0aW5ncy1mb3Itd29ya2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjYuMiA8L3NwYW4+U2NyaXB0IHNldHRpbmdzIGZvciB3b3JrZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2RlZGljYXRlZC13b3JrZXJzLWFuZC10aGUtd29ya2VyLWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjYuMyA8L3NwYW4+RGVkaWNhdGVkIHdvcmtlcnMgYW5kIHRoZSA8Y29kZT5Xb3JrZXI8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNzaGFyZWQtd29ya2Vycy1hbmQtdGhlLXNoYXJlZHdvcmtlci1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi42LjQgPC9zcGFuPlNoYXJlZCB3b3JrZXJzIGFuZCB0aGUgPGNvZGU+U2hhcmVkV29ya2VyPC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNhcGlzLWF2YWlsYWJsZS10by13b3JrZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMgPC9zcGFuPkFQSXMgYXZhaWxhYmxlIHRvIHdvcmtlcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMuMSA8L3NwYW4+SW1wb3J0aW5nIHNjcmlwdHMgYW5kIGxpYnJhcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN0aGUtd29ya2VybmF2aWdhdG9yLW9iamVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4zLjIgPC9zcGFuPlRoZSA8Y29kZT5Xb3JrZXJOYXZpZ2F0b3I8L2NvZGU+IG9iamVjdDwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbnRlcmZhY2Utb2JqZWN0cy1hbmQtY29uc3RydWN0b3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMuMyA8L3NwYW4+SW50ZXJmYWNlIG9iamVjdHMgYW5kIGNvbnN0cnVjdG9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN3b3JrZXItbG9jYXRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMuNCA8L3NwYW4+V29ya2VyIGxvY2F0aW9uczwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3dlYnN0b3JhZ2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEgPC9zcGFuPldlYiBzdG9yYWdlPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjaW50cm9kdWN0aW9uLTEyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCNzdG9yYWdlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjIgPC9zcGFuPlRoZSBBUEk8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCN0aGUtc3RvcmFnZS1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi4xIDwvc3Bhbj5UaGUgPGNvZGU+U3RvcmFnZTwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3RoZS1zZXNzaW9uc3RvcmFnZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi4yIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImRvbS1zZXNzaW9uU3RvcmFnZSI+c2Vzc2lvblN0b3JhZ2U8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCN0aGUtbG9jYWxzdG9yYWdlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS4yLjMgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iZG9tLWxvY2FsU3RvcmFnZSI+bG9jYWxTdG9yYWdlPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjdGhlLXN0b3JhZ2UtZXZlbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi40IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImV2ZW50LXN0b3JhZ2UiPnN0b3JhZ2U8L2NvZGU+IGV2ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjdGhlLXN0b3JhZ2VldmVudC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi40LjEgPC9zcGFuPlRoZSA8Y29kZT5TdG9yYWdlRXZlbnQ8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjdGhyZWFkcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS4yLjUgPC9zcGFuPlRocmVhZHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI2Rpc2stc3BhY2UtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS4zIDwvc3Bhbj5EaXNrIHNwYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3ByaXZhY3kiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNCA8L3NwYW4+UHJpdmFjeTwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3VzZXItdHJhY2tpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNC4xIDwvc3Bhbj5Vc2VyIHRyYWNraW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3NlbnNpdGl2aXR5LW9mLWRhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNC4yIDwvc3Bhbj5TZW5zaXRpdml0eSBvZiBkYXRhPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCNzZWN1cml0eS1zdG9yYWdlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjUgPC9zcGFuPlNlY3VyaXR5PC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjZG5zLXNwb29maW5nLWF0dGFja3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNS4xIDwvc3Bhbj5ETlMgc3Bvb2ZpbmcgYXR0YWNrczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCNjcm9zcy1kaXJlY3RvcnktYXR0YWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS41LjIgPC9zcGFuPkNyb3NzLWRpcmVjdG9yeSBhdHRhY2tzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI2ltcGxlbWVudGF0aW9uLXJpc2tzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjUuMyA8L3NwYW4+SW1wbGVtZW50YXRpb24gcmlza3M8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InN5bnRheC5odG1sI3N5bnRheCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMiA8L3NwYW4+VGhlIEhUTUwgc3ludGF4PC9hPgorPG9sPjxsaT48YSBocmVmPSJzeW50YXguaHRtbCN3cml0aW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEgPC9zcGFuPldyaXRpbmcgSFRNTCBkb2N1bWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InN5bnRheC5odG1sI3RoZS1kb2N0eXBlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuMSA8L3NwYW4+VGhlIERPQ1RZUEU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNlbGVtZW50cy0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuMiA8L3NwYW4+RWxlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InN5bnRheC5odG1sI3N0YXJ0LXRhZ3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjEgPC9zcGFuPlN0YXJ0IHRhZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNlbmQtdGFncyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4xLjIuMiA8L3NwYW4+RW5kIHRhZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNhdHRyaWJ1dGVzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjMgPC9zcGFuPkF0dHJpYnV0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNvcHRpb25hbC10YWdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuMi40IDwvc3Bhbj5PcHRpb25hbCB0YWdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3ludGF4Lmh0bWwjZWxlbWVudC1yZXN0cmljdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjUgPC9zcGFuPlJlc3RyaWN0aW9ucyBvbiBjb250ZW50IG1vZGVsczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN5bnRheC5odG1sI2NkYXRhLXJjZGF0YS1yZXN0cmljdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjYgPC9zcGFuPlJlc3RyaWN0aW9ucyBvbiB0aGUgY29udGVudHMgb2YgcmF3IHRleHQgYW5kIGVzY2FwYWJsZSByYXcgdGV4dCBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCN0ZXh0LTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4zIDwvc3Bhbj5UZXh0PC9hPgorPG9sPjxsaT48YSBocmVmPSJzeW50YXguaHRtbCNuZXdsaW5lcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4xLjMuMSA8L3NwYW4+TmV3bGluZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3ludGF4Lmh0bWwjY2hhcmFjdGVyLXJlZmVyZW5jZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS40IDwvc3Bhbj5DaGFyYWN0ZXIgcmVmZXJlbmNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN5bnRheC5odG1sI2NkYXRhLXNlY3Rpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuNSA8L3NwYW4+Q0RBVEEgc2VjdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNjb21tZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4xLjYgPC9zcGFuPkNvbW1lbnRzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNwYXJzaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIgPC9zcGFuPlBhcnNpbmcgSFRNTCBkb2N1bWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNvdmVydmlldy1vZi10aGUtcGFyc2luZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjEgPC9zcGFuPk92ZXJ2aWV3IG9mIHRoZSBwYXJzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3RoZS1pbnB1dC1ieXRlLXN0cmVhbSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIgPC9zcGFuPlRoZSBpbnB1dCBieXRlIHN0cmVhbTwvYT4KKzxvbD48bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3BhcnNpbmctd2l0aC1hLWtub3duLWNoYXJhY3Rlci1lbmNvZGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIuMSA8L3NwYW4+UGFyc2luZyB3aXRoIGEga25vd24gY2hhcmFjdGVyIGVuY29kaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI2RldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2RpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi4yLjIgPC9zcGFuPkRldGVybWluaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJwYXJzaW5nLmh0bWwjY2hhcmFjdGVyLWVuY29kaW5ncyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIuMyA8L3NwYW4+Q2hhcmFjdGVyIGVuY29kaW5nczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNjaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIuNCA8L3NwYW4+Q2hhbmdpbmcgdGhlIGVuY29kaW5nIHdoaWxlIHBhcnNpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJwYXJzaW5nLmh0bWwjcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMi41IDwvc3Bhbj5QcmVwcm9jZXNzaW5nIHRoZSBpbnB1dCBzdHJlYW08L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3BhcnNlLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMyA8L3NwYW4+UGFyc2Ugc3RhdGU8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCN0aGUtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi4zLjEgPC9zcGFuPlRoZSBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCN0aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjMuMiA8L3NwYW4+VGhlIHN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJwYXJzaW5nLmh0bWwjdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi4zLjMgPC9zcGFuPlRoZSBsaXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3RoZS1lbGVtZW50LXBvaW50ZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMy40IDwvc3Bhbj5UaGUgZWxlbWVudCBwb2ludGVyczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNvdGhlci1wYXJzaW5nLXN0YXRlLWZsYWdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMy41IDwvc3Bhbj5PdGhlciBwYXJzaW5nIHN0YXRlIGZsYWdzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3Rva2VuaXphdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQgPC9zcGFuPlRva2VuaXphdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjZGF0YS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMSA8L3NwYW4+RGF0YSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NoYXJhY3Rlci1yZWZlcmVuY2UtaW4tZGF0YS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMiA8L3NwYW4+Q2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBkYXRhIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcmNkYXRhLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zIDwvc3Bhbj5SQ0RBVEEgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjaGFyYWN0ZXItcmVmZXJlbmNlLWluLXJjZGF0YS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNCA8L3NwYW4+Q2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBSQ0RBVEEgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyYXd0ZXh0LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41IDwvc3Bhbj5SQVdURVhUIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjYgPC9zcGFuPlNjcmlwdCBkYXRhIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcGxhaW50ZXh0LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC43IDwvc3Bhbj5QTEFJTlRFWFQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCN0YWctb3Blbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuOCA8L3NwYW4+VGFnIG9wZW4gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNlbmQtdGFnLW9wZW4tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjkgPC9zcGFuPkVuZCB0YWcgb3BlbiBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3RhZy1uYW1lLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4xMCA8L3NwYW4+VGFnIG5hbWUgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyY2RhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjExIDwvc3Bhbj5SQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4xMiA8L3NwYW4+UkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3JjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjEzIDwvc3Bhbj5SQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcmF3dGV4dC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMTQgPC9zcGFuPlJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyYXd0ZXh0LWVuZC10YWctb3Blbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMTUgPC9zcGFuPlJBV1RFWFQgZW5kIHRhZyBvcGVuIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjE2IDwvc3Bhbj5SQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4xNyA8L3NwYW4+U2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjE4IDwvc3Bhbj5TY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjE5IDwvc3Bhbj5TY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGUtc3RhcnQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjIwIDwvc3Bhbj5TY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGUtc3RhcnQtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjEgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjIgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjIzIDwvc3Bhbj5TY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjQgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjUgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctb3Blbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjYgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjI3IDwvc3Bhbj5TY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtc3RhcnQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjI4IDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIHN0YXJ0IHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjI5IDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjMwIDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zMSA8L3NwYW4+U2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjMyIDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtZW5kLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zMyA8L3NwYW4+U2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBlbmQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjM0IDwvc3Bhbj5CZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNhdHRyaWJ1dGUtbmFtZS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMzUgPC9zcGFuPkF0dHJpYnV0ZSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjM2IDwvc3Bhbj5BZnRlciBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2JlZm9yZS1hdHRyaWJ1dGUtdmFsdWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjM3IDwvc3Bhbj5CZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMzggPC9zcGFuPkF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNhdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zOSA8L3NwYW4+QXR0cmlidXRlIHZhbHVlIChzaW5nbGUtcXVvdGVkKSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2F0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40MCA8L3NwYW4+QXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjaGFyYWN0ZXItcmVmZXJlbmNlLWluLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDEgPC9zcGFuPkNoYXJhY3RlciByZWZlcmVuY2UgaW4gYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItYXR0cmlidXRlLXZhbHVlLShxdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40MiA8L3NwYW4+QWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDMgPC9zcGFuPlNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNib2d1cy1jb21tZW50LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40NCA8L3NwYW4+Qm9ndXMgY29tbWVudCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI21hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40NSA8L3NwYW4+TWFya3VwIGRlY2xhcmF0aW9uIG9wZW4gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjb21tZW50LXN0YXJ0LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40NiA8L3NwYW4+Q29tbWVudCBzdGFydCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDcgPC9zcGFuPkNvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NvbW1lbnQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjQ4IDwvc3Bhbj5Db21tZW50IHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjY29tbWVudC1lbmQtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDkgPC9zcGFuPkNvbW1lbnQgZW5kIGRhc2ggc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjb21tZW50LWVuZC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTAgPC9zcGFuPkNvbW1lbnQgZW5kIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjY29tbWVudC1lbmQtYmFuZy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTEgPC9zcGFuPkNvbW1lbnQgZW5kIGJhbmcgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNkb2N0eXBlLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41MiA8L3NwYW4+RE9DVFlQRSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2JlZm9yZS1kb2N0eXBlLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjUzIDwvc3Bhbj5CZWZvcmUgRE9DVFlQRSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjZG9jdHlwZS1uYW1lLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41NCA8L3NwYW4+RE9DVFlQRSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41NSA8L3NwYW4+QWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTYgPC9zcGFuPkFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNiZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTcgPC9zcGFuPkJlZm9yZSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjU4IDwvc3Bhbj5ET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2RvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41OSA8L3NwYW4+RE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNhZnRlci1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC42MCA8L3NwYW4+QWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2JldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVycy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjEgPC9zcGFuPkJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2FmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjYyIDwvc3Bhbj5BZnRlciBET0NUWVBFIHN5c3RlbSBrZXl3b3JkIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjYzIDwvc3Bhbj5CZWZvcmUgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2RvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC42NCA8L3NwYW4+RE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjUgPC9zcGFuPkRPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjYgPC9zcGFuPkFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNib2d1cy1kb2N0eXBlLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC42NyA8L3NwYW4+Qm9ndXMgRE9DVFlQRSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NkYXRhLXNlY3Rpb24tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjY4IDwvc3Bhbj5DREFUQSBzZWN0aW9uIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjdG9rZW5pemluZy1jaGFyYWN0ZXItcmVmZXJlbmNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjkgPC9zcGFuPlRva2VuaXppbmcgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0cmVlLWNvbnN0cnVjdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUgPC9zcGFuPlRyZWUgY29uc3RydWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI2NyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjEgPC9zcGFuPkNyZWF0aW5nIGFuZCBpbnNlcnRpbmcgbm9kZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3BhcnNpbmctZWxlbWVudHMtdGhhdC1jb250YWluLW9ubHktdGV4dCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuMiA8L3NwYW4+UGFyc2luZyBlbGVtZW50cyB0aGF0IGNvbnRhaW4gb25seSB0ZXh0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNjbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS4zIDwvc3Bhbj5DbG9zaW5nIGVsZW1lbnRzIHRoYXQgaGF2ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5odG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40IDwvc3Bhbj5UaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIEhUTUwgY29udGVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xIDwvc3Bhbj5UaGUgImluaXRpYWwiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMiA8L3NwYW4+VGhlICJiZWZvcmUgaHRtbCIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3RoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4zIDwvc3Bhbj5UaGUgImJlZm9yZSBoZWFkIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluaGVhZCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC40IDwvc3Bhbj5UaGUgImluIGhlYWQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuNSA8L3NwYW4+VGhlICJpbiBoZWFkIG5vc2NyaXB0IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjdGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuNiA8L3NwYW4+VGhlICJhZnRlciBoZWFkIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluYm9keSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC43IDwvc3Bhbj5UaGUgImluIGJvZHkiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5jZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC44IDwvc3Bhbj5UaGUgInRleHQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW50YWJsZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC45IDwvc3Bhbj5UaGUgImluIHRhYmxlIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWludGFibGV0ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjEwIDwvc3Bhbj5UaGUgImluIHRhYmxlIHRleHQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5jYXB0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjExIDwvc3Bhbj5UaGUgImluIGNhcHRpb24iIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5jb2xncm91cCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xMiA8L3NwYW4+VGhlICJpbiBjb2x1bW4gZ3JvdXAiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW50Ym9keSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xMyA8L3NwYW4+VGhlICJpbiB0YWJsZSBib2R5IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWludHIiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMTQgPC9zcGFuPlRoZSAiaW4gcm93IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWludGQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMTUgPC9zcGFuPlRoZSAiaW4gY2VsbCIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xNiA8L3NwYW4+VGhlICJpbiBzZWxlY3QiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjE3IDwvc3Bhbj5UaGUgImluIHNlbGVjdCBpbiB0YWJsZSIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3BhcnNpbmctbWFpbi1pbnRlbXBsYXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjE4IDwvc3Bhbj5UaGUgImluIHRlbXBsYXRlIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWFmdGVyYm9keSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xOSA8L3NwYW4+VGhlICJhZnRlciBib2R5IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluZnJhbWVzZXQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMjAgPC9zcGFuPlRoZSAiaW4gZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4yMSA8L3NwYW4+VGhlICJhZnRlciBmcmFtZXNldCIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3RoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjIyIDwvc3Bhbj5UaGUgImFmdGVyIGFmdGVyIGJvZHkiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMjMgPC9zcGFuPlRoZSAiYWZ0ZXIgYWZ0ZXIgZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluZm9yZWlnbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNSA8L3NwYW4+VGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnQ8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI3RoZS1lbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi42IDwvc3Bhbj5UaGUgZW5kPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI2NvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjcgPC9zcGFuPkNvZXJjaW5nIGFuIEhUTUwgRE9NIGludG8gYW4gaW5mb3NldDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1lbmQuaHRtbCNhbi1pbnRyb2R1Y3Rpb24tdG8tZXJyb3ItaGFuZGxpbmctYW5kLXN0cmFuZ2UtY2FzZXMtaW4tdGhlLXBhcnNlciI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjggPC9zcGFuPkFuIGludHJvZHVjdGlvbiB0byBlcnJvciBoYW5kbGluZyBhbmQgc3RyYW5nZSBjYXNlcyBpbiB0aGUgcGFyc2VyPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aGUtZW5kLmh0bWwjbWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjguMSA8L3NwYW4+TWlzbmVzdGVkIHRhZ3M6ICZsdDtiJmd0OyZsdDtpJmd0OyZsdDsvYiZndDsmbHQ7L2kmZ3Q7PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI21pc25lc3RlZC10YWdzOi1iLXAtL2ItL3AiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi44LjIgPC9zcGFuPk1pc25lc3RlZCB0YWdzOiAmbHQ7YiZndDsmbHQ7cCZndDsmbHQ7L2ImZ3Q7Jmx0Oy9wJmd0OzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1lbmQuaHRtbCN1bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi44LjMgPC9zcGFuPlVuZXhwZWN0ZWQgbWFya3VwIGluIHRhYmxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1lbmQuaHRtbCNzY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjguNCA8L3NwYW4+U2NyaXB0cyB0aGF0IG1vZGlmeSB0aGUgcGFnZSBhcyBpdCBpcyBiZWluZyBwYXJzZWQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtZW5kLmh0bWwjdGhlLWV4ZWN1dGlvbi1vZi1zY3JpcHRzLXRoYXQtYXJlLW1vdmluZy1hY3Jvc3MtbXVsdGlwbGUtZG9jdW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuOC41IDwvc3Bhbj5UaGUgZXhlY3V0aW9uIG9mIHNjcmlwdHMgdGhhdCBhcmUgbW92aW5nIGFjcm9zcyBtdWx0aXBsZSBkb2N1bWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtZW5kLmh0bWwjdW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjguNiA8L3NwYW4+VW5jbG9zZWQgZm9ybWF0dGluZyBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI3NlcmlhbGl6aW5nLWh0bWwtZnJhZ21lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjMgPC9zcGFuPlNlcmlhbGl6aW5nIEhUTUwgZnJhZ21lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI3BhcnNpbmctaHRtbC1mcmFnbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuNCA8L3NwYW4+UGFyc2luZyBIVE1MIGZyYWdtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzLmh0bWwjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuNSA8L3NwYW4+TmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXhodG1sLXN5bnRheC5odG1sI3RoZS14aHRtbC1zeW50YXgiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTMgPC9zcGFuPlRoZSBYSFRNTCBzeW50YXg8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS14aHRtbC1zeW50YXguaHRtbCN3cml0aW5nLXhodG1sLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMy4xIDwvc3Bhbj5Xcml0aW5nIFhIVE1MIGRvY3VtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS14aHRtbC1zeW50YXguaHRtbCNwYXJzaW5nLXhodG1sLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMy4yIDwvc3Bhbj5QYXJzaW5nIFhIVE1MIGRvY3VtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS14aHRtbC1zeW50YXguaHRtbCNzZXJpYWxpemluZy14aHRtbC1mcmFnbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTMuMyA8L3NwYW4+U2VyaWFsaXppbmcgWEhUTUwgZnJhZ21lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXhodG1sLXN5bnRheC5odG1sI3BhcnNpbmcteGh0bWwtZnJhZ21lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEzLjQgPC9zcGFuPlBhcnNpbmcgWEhUTUwgZnJhZ21lbnRzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3JlbmRlcmluZyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNCA8L3NwYW4+UmVuZGVyaW5nPC9hPgorPG9sPjxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCNpbnRyb2R1Y3Rpb24tMTMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWNzcy11c2VyLWFnZW50LXN0eWxlLXNoZWV0LWFuZC1wcmVzZW50YXRpb25hbC1oaW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC4yIDwvc3Bhbj5UaGUgQ1NTIHVzZXIgYWdlbnQgc3R5bGUgc2hlZXQgYW5kIHByZXNlbnRhdGlvbmFsIGhpbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjbm9uLXJlcGxhY2VkLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMgPC9zcGFuPk5vbi1yZXBsYWNlZCBlbGVtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjaGlkZGVuLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMSA8L3NwYW4+SGlkZGVuIGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXBhZ2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuMy4yIDwvc3Bhbj5UaGUgcGFnZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2Zsb3ctY29udGVudC0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMyA8L3NwYW4+RmxvdyBjb250ZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcGhyYXNpbmctY29udGVudC0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNCA8L3NwYW4+UGhyYXNpbmcgY29udGVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2JpZGktcmVuZGVyaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNSA8L3NwYW4+QmlkaXJlY3Rpb25hbCB0ZXh0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcXVvdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNiA8L3NwYW4+UXVvdGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjc2VjdGlvbnMtYW5kLWhlYWRpbmdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNyA8L3NwYW4+U2VjdGlvbnMgYW5kIGhlYWRpbmdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjbGlzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuMy44IDwvc3Bhbj5MaXN0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RhYmxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC4zLjkgPC9zcGFuPlRhYmxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI21hcmdpbi1jb2xsYXBzaW5nLXF1aXJrcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC4zLjEwIDwvc3Bhbj5NYXJnaW4gY29sbGFwc2luZyBxdWlya3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCNmb3JtLWNvbnRyb2xzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMTEgPC9zcGFuPkZvcm0gY29udHJvbHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUtaHItZWxlbWVudC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMTIgPC9zcGFuPlRoZSA8Y29kZT5ocjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1maWVsZHNldC1hbmQtbGVnZW5kLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMTMgPC9zcGFuPlRoZSA8Y29kZT5maWVsZHNldDwvY29kZT4gYW5kIDxjb2RlPmxlZ2VuZDwvY29kZT4gZWxlbWVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcmVwbGFjZWQtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNCA8L3NwYW4+UmVwbGFjZWQgZWxlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2VtYmVkZGVkLWNvbnRlbnQtMiI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjEgPC9zcGFuPkVtYmVkZGVkIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCNpbWFnZXMtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjIgPC9zcGFuPkltYWdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjMgPC9zcGFuPkF0dHJpYnV0ZXMgZm9yIGVtYmVkZGVkIGNvbnRlbnQgYW5kIGltYWdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2ltYWdlLW1hcHMtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjQgPC9zcGFuPkltYWdlIG1hcHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjYmluZGluZ3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNSA8L3NwYW4+QmluZGluZ3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2ludHJvZHVjdGlvbi0xNCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1idXR0b24tZWxlbWVudC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuMiA8L3NwYW4+VGhlIDxjb2RlPmJ1dHRvbjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1kZXRhaWxzLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjMgPC9zcGFuPlRoZSA8Y29kZT5kZXRhaWxzPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtYS10ZXh0LWVudHJ5LXdpZGdldCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjQgPC9zcGFuPlRoZSA8Y29kZT5pbnB1dDwvY29kZT4gZWxlbWVudCBhcyBhIHRleHQgZW50cnkgd2lkZ2V0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtZG9tYWluLXNwZWNpZmljLXdpZGdldHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNS41IDwvc3Bhbj5UaGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQgYXMgZG9tYWluLXNwZWNpZmljIHdpZGdldHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUtaW5wdXQtZWxlbWVudC1hcy1hLXJhbmdlLWNvbnRyb2wiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNS42IDwvc3Bhbj5UaGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQgYXMgYSByYW5nZSBjb250cm9sPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtYS1jb2xvci13ZWxsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuNyA8L3NwYW4+VGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IGFzIGEgY29sb3Igd2VsbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1dHRvbi13aWRnZXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuOCA8L3NwYW4+VGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IGFzIGEgY2hlY2tib3ggYW5kIHJhZGlvIGJ1dHRvbiB3aWRnZXRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtYS1maWxlLXVwbG9hZC1jb250cm9sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuOSA8L3NwYW4+VGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IGFzIGEgZmlsZSB1cGxvYWQgY29udHJvbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuMTAgPC9zcGFuPlRoZSA8Y29kZT5pbnB1dDwvY29kZT4gZWxlbWVudCBhcyBhIGJ1dHRvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1tYXJxdWVlLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjExIDwvc3Bhbj5UaGUgPGNvZGU+bWFycXVlZTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1tZXRlci1lbGVtZW50LTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNS4xMiA8L3NwYW4+VGhlIDxjb2RlPm1ldGVyPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXByb2dyZXNzLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjEzIDwvc3Bhbj5UaGUgPGNvZGU+cHJvZ3Jlc3M8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUtc2VsZWN0LWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjE0IDwvc3Bhbj5UaGUgPGNvZGU+c2VsZWN0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjE1IDwvc3Bhbj5UaGUgPGNvZGU+dGV4dGFyZWE8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUta2V5Z2VuLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjE2IDwvc3Bhbj5UaGUgPGNvZGU+a2V5Z2VuPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2ZyYW1lcy1hbmQtZnJhbWVzZXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjYgPC9zcGFuPkZyYW1lcyBhbmQgZnJhbWVzZXRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjaW50ZXJhY3RpdmUtbWVkaWEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNyA8L3NwYW4+SW50ZXJhY3RpdmUgbWVkaWE8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2xpbmtzLC1mb3JtcywtYW5kLW5hdmlnYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNy4xIDwvc3Bhbj5MaW5rcywgZm9ybXMsIGFuZCBuYXZpZ2F0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXRpdGxlLWF0dHJpYnV0ZS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjcuMiA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLXRpdGxlIj50aXRsZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjZWRpdGluZy1ob3N0cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC43LjMgPC9zcGFuPkVkaXRpbmcgaG9zdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0ZXh0LXJlbmRlcmVkLWluLW5hdGl2ZS11c2VyLWludGVyZmFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNy40IDwvc3Bhbj5UZXh0IHJlbmRlcmVkIGluIG5hdGl2ZSB1c2VyIGludGVyZmFjZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcHJpbnQtbWVkaWEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuOCA8L3NwYW4+UHJpbnQgbWVkaWE8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN1bnN0eWxlZC14bWwtZG9jdW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjkgPC9zcGFuPlVuc3R5bGVkIFhNTCBkb2N1bWVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2Jzb2xldGUuaHRtbCNvYnNvbGV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xNSA8L3NwYW4+T2Jzb2xldGUgZmVhdHVyZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjb2Jzb2xldGUtYnV0LWNvbmZvcm1pbmctZmVhdHVyZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTUuMSA8L3NwYW4+T2Jzb2xldGUgYnV0IGNvbmZvcm1pbmcgZmVhdHVyZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjd2FybmluZ3MtZm9yLW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE1LjEuMSA8L3NwYW4+V2FybmluZ3MgZm9yIG9ic29sZXRlIGJ1dCBjb25mb3JtaW5nIGZlYXR1cmVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjbm9uLWNvbmZvcm1pbmctZmVhdHVyZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTUuMiA8L3NwYW4+Tm9uLWNvbmZvcm1pbmcgZmVhdHVyZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvYnNvbGV0ZS5odG1sI3JlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE1LjMgPC9zcGFuPlJlcXVpcmVtZW50cyBmb3IgaW1wbGVtZW50YXRpb25zPC9hPgorPG9sPjxsaT48YSBocmVmPSJvYnNvbGV0ZS5odG1sI3RoZS1hcHBsZXQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNS4zLjEgPC9zcGFuPlRoZSA8Y29kZT5hcHBsZXQ8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvYnNvbGV0ZS5odG1sI3RoZS1tYXJxdWVlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTUuMy4yIDwvc3Bhbj5UaGUgPGNvZGU+bWFycXVlZTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjZnJhbWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE1LjMuMyA8L3NwYW4+RnJhbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2Jzb2xldGUuaHRtbCNvdGhlci1lbGVtZW50cywtYXR0cmlidXRlcy1hbmQtYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNS4zLjQgPC9zcGFuPk90aGVyIGVsZW1lbnRzLCBhdHRyaWJ1dGVzIGFuZCBBUElzPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjaWFuYSI+PHNwYW4gY2xhc3M9InNlY25vIj4xNiA8L3NwYW4+SUFOQSBjb25zaWRlcmF0aW9uczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaWFuYS5odG1sI3RleHQvaHRtbCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi4xIDwvc3Bhbj48Y29kZT50ZXh0L2h0bWw8L2NvZGU+PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaWFuYS5odG1sI211bHRpcGFydC94LW1peGVkLXJlcGxhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTYuMiA8L3NwYW4+PGNvZGU+bXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZTwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjYXBwbGljYXRpb24veGh0bWwreG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE2LjMgPC9zcGFuPjxjb2RlPmFwcGxpY2F0aW9uL3hodG1sK3htbDwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE2LjQgPC9zcGFuPjxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjdGV4dC9jYWNoZS1tYW5pZmVzdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi41IDwvc3Bhbj48Y29kZT50ZXh0L2NhY2hlLW1hbmlmZXN0PC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImlhbmEuaHRtbCN0ZXh0L3BpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+MTYuNiA8L3NwYW4+PGNvZGU+dGV4dC9waW5nPC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImlhbmEuaHRtbCNhcHBsaWNhdGlvbi9taWNyb2RhdGEranNvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi43IDwvc3Bhbj48Y29kZT5hcHBsaWNhdGlvbi9taWNyb2RhdGEranNvbjwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjcGluZy1mcm9tIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE2LjggPC9zcGFuPjxjb2RlPlBpbmctRnJvbTwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjcGluZy10byI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi45IDwvc3Bhbj48Y29kZT5QaW5nLVRvPC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImlhbmEuaHRtbCN3ZWIrLXNjaGVtZS1wcmVmaXgiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTYuMTAgPC9zcGFuPjxjb2RlPndlYis8L2NvZGU+IHNjaGVtZSBwcmVmaXg8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2luZGV4IiBjbGFzcz0ibm8tbnVtIj5JbmRleDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2VsZW1lbnRzLTEiIGNsYXNzPSJuby1udW0iPkVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2VsZW1lbnQtY29udGVudC1jYXRlZ29yaWVzIiBjbGFzcz0ibm8tbnVtIj5FbGVtZW50IGNvbnRlbnQgY2F0ZWdvcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb24taW5kZXguaHRtbCNhdHRyaWJ1dGVzLTEiIGNsYXNzPSJuby1udW0iPkF0dHJpYnV0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9uLWluZGV4Lmh0bWwjZWxlbWVudC1pbnRlcmZhY2VzIiBjbGFzcz0ibm8tbnVtIj5FbGVtZW50IEludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9uLWluZGV4Lmh0bWwjYWxsLWludGVyZmFjZXMiIGNsYXNzPSJuby1udW0iPkFsbCBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2V2ZW50cy0wIiBjbGFzcz0ibm8tbnVtIj5FdmVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVmZXJlbmNlcy5odG1sI3JlZmVyZW5jZXMiIGNsYXNzPSJuby1udW0iPlJlZmVyZW5jZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhY2tub3dsZWRnbWVudHMuaHRtbCNhY2tub3dsZWRnbWVudHMiIGNsYXNzPSJuby1udW0iPkFja25vd2xlZGdtZW50czwvYT48L2xpPjwvb2w+PCEtLWVuZC10b2MtLT48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL3doYXR3Z19odG1sL3NyYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vd2hhdHdnX2h0bWwvc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGEyYzVlYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL3doYXR3Z19odG1sL3NyYy5odG1sCkBAIC0wLDAgKzEsMTMwNiBAQAorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuLVVTLXgtaGl4aWUiIGNsYXNzPSJzcGxpdCBpbmRleCI+PGhlYWQ+PHRpdGxlPkhUTUwgU3RhbmRhcmQ8L3RpdGxlPjxzY3JpcHQ+Cit2YXIgbG9hZFRpbWVyID0gbmV3IERhdGUoKTsKK3ZhciBjdXJyZW50X3JldmlzaW9uID0gInIiICsgIiRSZXZpc2lvbjogODQzNCAkIi5zdWJzdHIoMTEpOworY3VycmVudF9yZXZpc2lvbiA9IGN1cnJlbnRfcmV2aXNpb24uc3Vic3RyKDAsIGN1cnJlbnRfcmV2aXNpb24ubGVuZ3RoIC0gMik7Cit2YXIgbGFzdF9rbm93bl9yZXZpc2lvbiA9IGN1cnJlbnRfcmV2aXNpb247CitmdW5jdGlvbiBGKCAvKiB2YXJhcmdzLi4uICovKSB7Cit2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Citmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggKz0gMSkgeworaWYgKGFyZ3VtZW50c1tpbmRleF0gaW5zdGFuY2VvZiBBcnJheSkgeworZnJhZ21lbnQuYXBwZW5kQ2hpbGQoRi5hcHBseSh0aGlzLCBhcmd1bWVudHNbaW5kZXhdKSk7Cit9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHNbaW5kZXhdID09ICdzdHJpbmcnKSB7CitmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShhcmd1bWVudHNbaW5kZXhdKSk7Cit9IGVsc2UgeworZnJhZ21lbnQuYXBwZW5kQ2hpbGQoYXJndW1lbnRzW2luZGV4XSk7Cit9Cit9CityZXR1cm4gZnJhZ21lbnQ7Cit9CitmdW5jdGlvbiBFKG5hbWUsIC8qIG9wdGlvbmFsICovIGF0dHJpYnV0ZXMgLyosIHZhcmFyZ3MuLi4gKi8pIHsKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTsKK3ZhciBpbmRleCA9IDE7CitpZiAoKGFyZ3VtZW50cy5sZW5ndGggPiAxKSAmJiAodHlwZW9mIGF0dHJpYnV0ZXMgIT0gJ3N0cmluZycpICYmCisoIShhdHRyaWJ1dGVzIGluc3RhbmNlb2YgTm9kZSkpICYmICghKGF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBBcnJheSkpKSB7Citmb3IgKHZhciBhdHROYW1lIGluIGF0dHJpYnV0ZXMpIHsKK2lmICh0eXBlb2YgYXR0cmlidXRlc1thdHROYW1lXSA9PSAnYm9vbGVhbicpIHsKK2lmIChhdHRyaWJ1dGVzW2F0dE5hbWVdKQorZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0TmFtZSwgJycpOworfSBlbHNlIGlmICh0eXBlb2YgYXR0cmlidXRlc1thdHROYW1lXSA9PSAnZnVuY3Rpb24nKSB7CitlbGVtZW50W2F0dE5hbWVdID0gYXR0cmlidXRlc1thdHROYW1lXTsKK30gZWxzZSB7CitlbGVtZW50LnNldEF0dHJpYnV0ZShhdHROYW1lLCBhdHRyaWJ1dGVzW2F0dE5hbWVdKTsKK30KK30KK2luZGV4ID0gMjsKK30KK2ZvciAoOyBpbmRleCA8IGFyZ3VtZW50cy5sZW5ndGg7IGluZGV4ICs9IDEpIHsKK2lmIChhcmd1bWVudHNbaW5kZXhdIGluc3RhbmNlb2YgQXJyYXkpIHsKK2VsZW1lbnQuYXBwZW5kQ2hpbGQoRi5hcHBseSh0aGlzLCBhcmd1bWVudHNbaW5kZXhdKSk7Cit9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHNbaW5kZXhdID09ICdzdHJpbmcnKSB7CitlbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGFyZ3VtZW50c1tpbmRleF0pKTsKK30gZWxzZSB7CitlbGVtZW50LmFwcGVuZENoaWxkKGFyZ3VtZW50c1tpbmRleF0pOworfQorfQorcmV0dXJuIGVsZW1lbnQ7Cit9CitmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgewordmFyIHBhcmFtcyA9IGxvY2F0aW9uLnNlYXJjaC5zdWJzdHIoMSkuc3BsaXQoIiYiKTsKK2ZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBwYXJhbXMubGVuZ3RoOyBpbmRleCsrKSB7CitpZiAocGFyYW1zW2luZGV4XSA9PSBuYW1lKQorcmV0dXJuICIxIjsKK3ZhciBkYXRhID0gcGFyYW1zW2luZGV4XS5zcGxpdCgiPSIpOworaWYgKGRhdGFbMF0gPT0gbmFtZSkKK3JldHVybiB1bmVzY2FwZShkYXRhWzFdKTsKK30KK3ZhciBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCI7ICIpOworZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGNvb2tpZXMubGVuZ3RoOyBpbmRleCsrKSB7Cit2YXIgZGF0YSA9IGNvb2tpZXNbaW5kZXhdLnNwbGl0KCI9Iik7CitpZiAoZGF0YVswXSA9PSBuYW1lKQorcmV0dXJuIHVuZXNjYXBlKGRhdGFbMV0pOworfQorcmV0dXJuIG51bGw7Cit9Cit2YXIgY3VycmVudEFsZXJ0OwordmFyIGN1cnJlbnRBbGVydFRpbWVvdXQ7CitmdW5jdGlvbiBzaG93QWxlcnQocywgaHJlZikgeworaWYgKCFjdXJyZW50QWxlcnQpIHsKK2N1cnJlbnRBbGVydCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY3VycmVudEFsZXJ0LmlkID0gJ2FsZXJ0JzsKK3ZhciB4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Cit4LnRleHRDb250ZW50ID0gJ1x1MjU3Myc7Cit4Lm9uY2xpY2sgPSBjbG9zZUFsZXJ0MjsKK2N1cnJlbnRBbGVydC5hcHBlbmRDaGlsZCh4KTsKK2N1cnJlbnRBbGVydC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworY3VycmVudEFsZXJ0Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24gKCkgeworY2xlYXJUaW1lb3V0KGN1cnJlbnRBbGVydFRpbWVvdXQpOworY3VycmVudEFsZXJ0LmNsYXNzTmFtZSA9ICcnOworY3VycmVudEFsZXJ0VGltZW91dCA9IHNldFRpbWVvdXQoY2xvc2VBbGVydCwgMTAwMDApOworfQorZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjdXJyZW50QWxlcnQpOworfSBlbHNlIHsKK2NsZWFyVGltZW91dChjdXJyZW50QWxlcnRUaW1lb3V0KTsKK2N1cnJlbnRBbGVydC5jbGFzc05hbWUgPSAnJzsKK30KK2N1cnJlbnRBbGVydC5sYXN0Q2hpbGQudGV4dENvbnRlbnQgPSAnJzsKK2N1cnJlbnRBbGVydC5sYXN0Q2hpbGQuYXBwZW5kQ2hpbGQoRihzKSk7CitpZiAoaHJlZikgewordmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CitsaW5rLmhyZWYgPSBocmVmOworbGluay50ZXh0Q29udGVudCA9IGhyZWY7CitjdXJyZW50QWxlcnQubGFzdENoaWxkLmFwcGVuZENoaWxkKEYoJyAnLCBsaW5rKSk7Cit9CitjdXJyZW50QWxlcnRUaW1lb3V0ID0gc2V0VGltZW91dChjbG9zZUFsZXJ0LCAxMDAwMCk7Cit9CitmdW5jdGlvbiBjbG9zZUFsZXJ0KCkgeworY2xlYXJUaW1lb3V0KGN1cnJlbnRBbGVydFRpbWVvdXQpOworaWYgKGN1cnJlbnRBbGVydCkgeworY3VycmVudEFsZXJ0LmNsYXNzTmFtZSA9ICdjbG9zZWQnOworY3VycmVudEFsZXJ0VGltZW91dCA9IHNldFRpbWVvdXQoY2xvc2VBbGVydDIsIDMwMDApOworfQorfQorZnVuY3Rpb24gY2xvc2VBbGVydDIoKSB7CitjbGVhclRpbWVvdXQoY3VycmVudEFsZXJ0VGltZW91dCk7CitpZiAoY3VycmVudEFsZXJ0KSB7CitjdXJyZW50QWxlcnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjdXJyZW50QWxlcnQpOworY3VycmVudEFsZXJ0ID0gbnVsbDsKK30KK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGV2ZW50KSB7CitpZiAoZXZlbnQua2V5Q29kZSA9PSAyNykgeworaWYgKGN1cnJlbnRBbGVydCkKK2Nsb3NlQWxlcnQyKCk7Cit9IGVsc2UgeworY2xvc2VBbGVydCgpOworfQorfSwgZmFsc2UpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZ1bmN0aW9uIChldmVudCkgeworY2xvc2VBbGVydCgpOworfSwgZmFsc2UpOworZnVuY3Rpb24gbG9hZChzY3JpcHQpIHsKK3ZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CitlLnNldEF0dHJpYnV0ZSgnc3JjJywgJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvJyArIHNjcmlwdCk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOworfQorPC9zY3JpcHQ+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3R5bGUvc3BlY2lmaWNhdGlvbiI+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvaW1hZ2VzL2ljb24iPjxzdHlsZT4KKy5wcm9wb3NhbCB7IGJvcmRlcjogYmx1ZSBzb2xpZDsgcGFkZGluZzogMWVtOyB9CisuYmFkLCAuYmFkICo6bm90KC5YWFgpIHsgY29sb3I6IGdyYXk7IGJvcmRlci1jb2xvcjogZ3JheTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH0KKyN1cGRhdGVzU3RhdHVzIHsgZGlzcGxheTogbm9uZTsgei1pbmRleDogMTA7IH0KKyN1cGRhdGVzU3RhdHVzLnJlbGV2YW50IHsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBmaXhlZDsgcmlnaHQ6IDFlbTsgdG9wOiAxZW07IHBhZGRpbmc6IDAuNWVtOyBmb250OiBib2xkIHNtYWxsIHNhbnMtc2VyaWY7IG1pbi13aWR0aDogMjVlbTsgd2lkdGg6IDMwJTsgbWF4LXdpZHRoOiA0MGVtOyBoZWlnaHQ6IGF1dG87IGJvcmRlcjogcmlkZ2UgNHB4IGdyYXk7IGJhY2tncm91bmQ6ICNFRUVFRUU7IGNvbG9yOiBibGFjazsgfQorZGl2LmhlYWQgLmxvZ28geyB3aWR0aDogMTFlbTsgbWFyZ2luLWJvdHRvbTogMjBlbTsgfQorI2NvbmZpZ1VJIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAyMDsgdG9wOiAxMGVtOyByaWdodDogMDsgd2lkdGg6IDExZW07IHBhZGRpbmc6IDAgMC41ZW0gMCAwLjVlbTsgZm9udC1zaXplOiBzbWFsbDsgYmFja2dyb3VuZDogZ3JheTsgYmFja2dyb3VuZDogcmdiYSgzMiwzMiwzMiwwLjkpOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDFlbSAwIDAgMWVtOyAtbW96LWJvcmRlci1yYWRpdXM6IDFlbSAwIDAgMWVtOyB9CisjY29uZmlnVUkgcCB7IG1hcmdpbjogMC43NWVtIDA7IHBhZGRpbmc6IDAuM2VtOyB9CisjY29uZmlnVUkgcCBsYWJlbCB7IGRpc3BsYXk6IGJsb2NrOyB9CisjY29uZmlnVUkgI3VwZGF0ZVVJLCAjY29uZmlnVUkgLmxvZ2luVUkgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKyNjb25maWdVSSBpbnB1dFt0eXBlPWJ1dHRvbl0geyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyB9CisjY29uZmlnVUkgOmxpbmssICNjb25maWdVSSA6dmlzaXRlZCB7IGNvbG9yOiB3aGl0ZTsgfQorI2NvbmZpZ1VJIDpsaW5rOmhvdmVyLCAjY29uZmlnVUkgOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfQorI3Jldmlld2VyIHsgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDA7IHJpZ2h0OiAwOyBwYWRkaW5nOiAwLjE1ZW0gMC4yNWVtIDBlbSAwLjVlbTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgei1pbmRleDogMzA7IGJhY2tncm91bmQ6IGdyYXk7IGJhY2tncm91bmQ6IHJnYmEoMzIsMzIsMzIsMC45KTsgY29sb3I6IHdoaXRlOyBib3JkZXItcmFkaXVzOiAxZW0gMCAwIDA7IC1tb3otYm9yZGVyLXJhZGl1czogMWVtIDAgMCAwOyBtYXgtd2lkdGg6IDkwJTsgfQorI3Jldmlld2VyIGlucHV0IHsgbWF4LXdpZHRoOiA1MCU7IH0KKyNyZXZpZXdlciAqIHsgZm9udC1zaXplOiBzbWFsbDsgfQorI3Jldmlld2VyLm9mZiA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IGRpc3BsYXk6IG5vbmU7IH0KKyNhbGVydCB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAyMCU7IGxlZnQ6IDIwJTsgcmlnaHQ6IDIwJTsgZm9udC1zaXplOiAyZW07IHBhZGRpbmc6IDAuNWVtOyB6LWluZGV4OiA0MDsgYmFja2dyb3VuZDogZ3JheTsgYmFja2dyb3VuZDogcmdiYSgzMiwzMiwzMiwwLjkpOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDFlbTsgLW1vei1ib3JkZXItcmFkaXVzOiAxZW07IC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBsaW5lYXI7IH0KKyNhbGVydC5jbG9zZWQgeyBvcGFjaXR5OiAwOyB9CisjYWxlcnQgYnV0dG9uIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0xZW07IHJpZ2h0OiAyZW07IGJvcmRlci1yYWRpdXM6IDFlbSAxZW0gMCAwOyBib3JkZXI6IG5vbmU7IGxpbmUtaGVpZ2h0OiAwLjk7IGNvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZDogcmdiKDY0LDY0LDY0KTsgZm9udC1zaXplOiAwLjZlbTsgZm9udC13ZWlnaHQ6IDkwMDsgY3Vyc29yOiBwb2ludGVyOyB9CisjYWxlcnQgOmxpbmssICNhbGVydCA6dmlzaXRlZCB7IGNvbG9yOiB3aGl0ZTsgfQorI2FsZXJ0IDpsaW5rOmhvdmVyLCAjYWxlcnQgOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfQorQG1lZGlhIHByaW50IHsgI2NvbmZpZ1VJIHsgZGlzcGxheTogbm9uZTsgfSB9CisucmZjMjExOSB7IGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsgdGV4dC1zaGFkb3c6IDAgMCAwLjVlbSB5ZWxsb3c7IHBvc2l0aW9uOiBzdGF0aWM7IH0KKy5yZmMyMTE5OjphZnRlciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgd2lkdGg6IDI1cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHllbGxvdzsgdGV4dC1zaGFkb3c6IDAuMDc1ZW0gMC4wNzVlbSAwLjJlbSBibGFjazsgfQorLnJmYzIxMTkubVx1c3Q6OmFmdGVyIHsgY29udGVudDogJ1wyNjA1JzsgfQorLnJmYzIxMTkuc1xob3VsZDo6YWZ0ZXIgeyBjb250ZW50OiAnXDI2MDYnOyB9CitbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0KKzwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworLmZpbmdlcnByaW50IHsgZmxvYXQ6IHJpZ2h0OyB9CisKKy5hcHBsaWVzIHRoZWFkIHRoID4gKiB7IGRpc3BsYXk6IGJsb2NrOyB9CisuYXBwbGllcyB0aGVhZCBjb2RlIHsgZGlzcGxheTogYmxvY2s7IH0KKy5hcHBsaWVzIHRkIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuYXBwbGllcyAueWVzIHsgYmFja2dyb3VuZDogeWVsbG93OyB9CisKKy5tYXRyaXgsIC5tYXRyaXggdGQgeyBib3JkZXI6IGhpZGRlbjsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5tYXRyaXggeyBtYXJnaW4tbGVmdDogMmVtOyB9CisKKy52ZXJ0aWNhbC1zdW1tYXJ5LXRhYmxlIHRyID4gdGhbcm93c3Bhbj0iMiJdOmZpcnN0LWNoaWxkICsgdGgsCisudmVydGljYWwtc3VtbWFyeS10YWJsZSB0ciA+IHRkW3Jvd3NwYW49IjIiXTpmaXJzdC1jaGlsZCArIHRkIHsgYm9yZGVyLWJvdHRvbTogaGlkZGVuOyB9CisKKy5kaWNlLWV4YW1wbGUgeyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IGhpZGRlbiBzb2xpZCBzb2xpZCBoaWRkZW47IGJvcmRlci13aWR0aDogdGhpbjsgbWFyZ2luLWxlZnQ6IDNlbTsgfQorLmRpY2UtZXhhbXBsZSBjYXB0aW9uIHsgd2lkdGg6IDMwZW07IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC1zdHlsZTogaXRhbGljOyBwYWRkaW5nOiAwLjc1ZW0gMDsgdGV4dC1hbGlnbjogbGVmdDsgfQorLmRpY2UtZXhhbXBsZSB0ZCwgLmRpY2UtZXhhbXBsZSB0aCB7IGJvcmRlcjogc29saWQgdGhpbjsgd2lkdGg6IDEuMzVlbTsgaGVpZ2h0OiAxLjA1ZW07IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMDsgfQorCit0ZC5lZyB7IGJvcmRlci13aWR0aDogdGhpbjsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisKKyN0YWJsZS1leGFtcGxlLTEgeyBib3JkZXI6IHNvbGlkIHRoaW47IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1hcmdpbi1sZWZ0OiAzZW07IH0KKyN0YWJsZS1leGFtcGxlLTEgKiB7IGZvbnQtZmFtaWx5OiAiRXNzYXlzMTc0MyIsIHNlcmlmOyBsaW5lLWhlaWdodDogMS4wMWVtOyB9CisjdGFibGUtZXhhbXBsZS0xIGNhcHRpb24geyBwYWRkaW5nLWJvdHRvbTogMC41ZW07IH0KKyN0YWJsZS1leGFtcGxlLTEgdGhlYWQsICN0YWJsZS1leGFtcGxlLTEgdGJvZHkgeyBib3JkZXI6IG5vbmU7IH0KKyN0YWJsZS1leGFtcGxlLTEgdGgsICN0YWJsZS1leGFtcGxlLTEgdGQgeyBib3JkZXI6IHNvbGlkIHRoaW47IH0KKyN0YWJsZS1leGFtcGxlLTEgdGggeyBmb250LXdlaWdodDogbm9ybWFsOyB9CisjdGFibGUtZXhhbXBsZS0xIHRkIHsgYm9yZGVyLXN0eWxlOiBub25lIHNvbGlkOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9CisjdGFibGUtZXhhbXBsZS0xIHRoIHsgcGFkZGluZzogMC41ZW07IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7IHBhZGRpbmctdG9wOiAwLjVlbTsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgcGFkZGluZy1ib3R0b206IDEuNWVtOyB9CisjdGFibGUtZXhhbXBsZS0xIHRib2R5IHRkOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAyLjVlbTsgcGFkZGluZy1yaWdodDogMDsgd2lkdGg6IDllbTsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIgeyBjb250ZW50OiBsZWFkZXIoIi4gIik7IH0KKyN0YWJsZS1leGFtcGxlLTEgdGJvZHkgdGQgeyBwYWRkaW5nLWxlZnQ6IDJlbTsgcGFkZGluZy1yaWdodDogMmVtOyB9CisjdGFibGUtZXhhbXBsZS0xIHRib2R5IHRkOmZpcnN0LWNoaWxkICsgdGQgeyB3aWR0aDogMTBlbTsgfQorI3RhYmxlLWV4YW1wbGUtMSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCArIHRkIH4gdGQgeyB3aWR0aDogMi41ZW07IH0KKyN0YWJsZS1leGFtcGxlLTEgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQgKyB0ZCArIHRkICsgdGQgfiB0ZCB7IHdpZHRoOiAxLjI1ZW07IH0KKworLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHsgYm9yZGVyOiBub25lOyBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyBib3JkZXItc3BhY2luZzogMS41ZW0gMGVtOyB3aWR0aDogNDBlbTsgbWFyZ2luLWxlZnQ6IDNlbTsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzICogeyBmb250LWZhbWlseTogIlRpbWVzIiwgc2VyaWY7IH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcyB0ZCwgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRoIHsgYm9yZGVyOiBub25lOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBwYWRkaW5nLXRvcDogMDsgcGFkZGluZy1ib3R0b206IDA7IH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcyB0Ym9keSB0aDpmaXJzdC1jaGlsZCB7IGJvcmRlci1sZWZ0OiBub25lOyB3aWR0aDogMTAwJTsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRoZWFkIHRoOmZpcnN0LWNoaWxkIH4gdGggeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkZXI7IGJvcmRlci1ib3R0b206IHNvbGlkIDJweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuYXBwbGUtdGFibGUtZXhhbXBsZXMgdGJvZHkgdGg6OmFmdGVyLCAuYXBwbGUtdGFibGUtZXhhbXBsZXMgdGZvb3QgdGg6OmFmdGVyIHsgY29udGVudDogbGVhZGVyKCIuICIpIH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcyB0Ym9keSB0aCwgLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRmb290IHRoIHsgZm9udDogaW5oZXJpdDsgdGV4dC1hbGlnbjogbGVmdDsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHRkIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KKy5hcHBsZS10YWJsZS1leGFtcGxlcy5lMSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4OyB9CisuYXBwbGUtdGFibGUtZXhhbXBsZXMuZTEgdGJvZHkgKyB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogZG91YmxlIDNweDsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzLmUyIHRoW3Njb3BlPXJvd10geyBwYWRkaW5nLWxlZnQ6IDFlbTsgfQorLmFwcGxlLXRhYmxlLWV4YW1wbGVzIHN1cCB7IGxpbmUtaGVpZ2h0OiAwOyB9CisKKy50aHJlZS1jb2x1bW4tbm93cmFwIHRyID4gdGQ6Zmlyc3QtY2hpbGQsCisudGhyZWUtY29sdW1uLW5vd3JhcCB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQsCisudGhyZWUtY29sdW1uLW5vd3JhcCB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQgKyB0ZCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KKworLmRldGFpbHMtZXhhbXBsZSBpbWcgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9CisKKyNiYXNlNjQtdGFibGUgeword2hpdGUtc3BhY2U6IG5vd3JhcDsKK2ZvbnQtc2l6ZTogMC42ZW07Citjb2x1bW4td2lkdGg6IDZlbTsKK2NvbHVtbi1jb3VudDogNTsKK2NvbHVtbi1nYXA6IDFlbTsKKy1tb3otY29sdW1uLXdpZHRoOiA2ZW07CistbW96LWNvbHVtbi1jb3VudDogNTsKKy1tb3otY29sdW1uLWdhcDogMWVtOworLXdlYmtpdC1jb2x1bW4td2lkdGg6IDZlbTsKKy13ZWJraXQtY29sdW1uLWNvdW50OiA1OworLXdlYmtpdC1jb2x1bW4tZ2FwOiAxZW07Cit9CisjYmFzZTY0LXRhYmxlIHRoZWFkIHsgZGlzcGxheTogbm9uZTsgfQorI2Jhc2U2NC10YWJsZSAqIHsgYm9yZGVyOiBub25lOyB9CisjYmFzZTY0LXRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkOmFmdGVyIHsgY29udGVudDogJzonOyB9CisjYmFzZTY0LXRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQgeyB0ZXh0LWFsaWduOiByaWdodDsgfQorCisjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMtdGFibGUgeword2hpdGUtc3BhY2U6IG5vd3JhcDsKK2ZvbnQtc2l6ZTogMC42ZW07Citjb2x1bW4td2lkdGg6IDMwZW07Citjb2x1bW4tZ2FwOiAxZW07CistbW96LWNvbHVtbi13aWR0aDogMzBlbTsKKy1tb3otY29sdW1uLWdhcDogMWVtOworLXdlYmtpdC1jb2x1bW4td2lkdGg6IDMwZW07Cistd2Via2l0LWNvbHVtbi1nYXA6IDFlbTsKK30KKyNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkICsgdGQsCisjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CisjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkOmhvdmVyID4gc3BhbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiBhdXRvOyBsZWZ0OiBhdXRvOyBtYXJnaW4tbGVmdDogMC41ZW07IGxpbmUtaGVpZ2h0OiAxLjI7IGZvbnQtc2l6ZTogNWVtOyBib3JkZXI6IG91dHNldDsgcGFkZGluZzogMC4yNWVtIDAuNWVtOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgd2lkdGg6IDEuMjVlbTsgaGVpZ2h0OiBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKyNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciNlbnRpdHktQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCA+IHRkOmZpcnN0LWNoaWxkIHsgZm9udC1zaXplOiAwLjVlbTsgfQorCisuZ2x5cGguY29udHJvbCB7IGNvbG9yOiByZWQ7IH0KKworQGZvbnQtZmFjZSB7Citmb250LWZhbWlseTogJ0Vzc2F5czE3NDMnOworc3JjOiB1cmwoJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvZm9udHMvRXNzYXlzMTc0My50dGYnKTsKK30KK0Bmb250LWZhY2UgeworZm9udC1mYW1pbHk6ICdFc3NheXMxNzQzJzsKK2ZvbnQtd2VpZ2h0OiBib2xkOworc3JjOiB1cmwoJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvZm9udHMvRXNzYXlzMTc0My1Cb2xkLnR0ZicpOworfQorQGZvbnQtZmFjZSB7Citmb250LWZhbWlseTogJ0Vzc2F5czE3NDMnOworZm9udC1zdHlsZTogaXRhbGljOworc3JjOiB1cmwoJ2h0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvZm9udHMvRXNzYXlzMTc0My1JdGFsaWMudHRmJyk7Cit9CitAZm9udC1mYWNlIHsKK2ZvbnQtZmFtaWx5OiAnRXNzYXlzMTc0Myc7Citmb250LXN0eWxlOiBpdGFsaWM7Citmb250LXdlaWdodDogYm9sZDsKK3NyYzogdXJsKCdodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL2ZvbnRzL0Vzc2F5czE3NDMtQm9sZEl0YWxpYy50dGYnKTsKK30KKworPC9zdHlsZT48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImRhdGE6dGV4dC9jc3MsIiB0aXRsZT0iTm9ybWFsIj48bGluayByZWw9InN0eWxlc2hlZXQgYWx0ZXJuYXRlIiBocmVmPSJkYXRhOnRleHQvY3NzLC5pbXBsJTIwJTdCJTIwYmFja2dyb3VuZDolMjBwaW5rOyUyMCU3RCIgdGl0bGU9IkhpZ2hsaWdodCBpbXBsZW1lbnRhdGlvbi1vbmx5IHByb3NlIj48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0YXR1cy5jc3MiPjxzY3JpcHQ+Cit2YXIgc3RhcnRlZEluaXQgPSAwOworZnVuY3Rpb24gaW5pdCgpIHsKK3N0YXJ0ZWRJbml0ID0gMTsKK2lmIChsb2NhdGlvbi5zZWFyY2ggPT0gJz9zbG93LWJyb3dzZXInKQorcmV0dXJuOwordmFyIGNvbmZpZ1VJID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb25maWdVSS5pZCA9ICdjb25maWdVSSc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbmZpZ1VJKTsKK2xvYWQoJ3Jldmlld2VyLmpzJyk7CitpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZSA9PSAiIiB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lID09ICJzcGxpdCBpbmRleCIpCitsb2FkKCd0b2MuanMnKTsKK2xvYWQoJ3VwZGF0ZXIuanMnKTsKK2xvYWQoJ2Rmbi5qcycpOworbG9hZCgnc3RhdHVzLmpzJyk7CitpZiAoZ2V0Q29va2llKCdwcm9maWxlJykgPT0gJzEnKQorZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gyJylbMF0udGV4dENvbnRlbnQgKz0gJzsgbG9hZDogJyArIChuZXcgRGF0ZSgpIC0gbG9hZFRpbWVyKSArICdtcyc7Cit9CitpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZSA9PSAiIikKK3NldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworaWYgKCFzdGFydGVkSW5pdCkKK3Nob3dBbGVydCgiVG9vIHNsb3c/IFRyeSByZWFkaW5nIHRoZSBtdWx0aXBhZ2UgY29weSBvZiB0aGUgc3BlYyBpbnN0ZWFkOiIsICJodHRwOi8vd2hhdHdnLm9yZy9odG1sIik7Cit9LCA2MDAwKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgZnVuY3Rpb24gKGV2ZW50KSB7CitpZiAoKGV2ZW50LndoaWNoID09IDExNCkgJiYgKGV2ZW50Lm1ldGFLZXkpKSB7CitpZiAoIWNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZWxvYWQgdGhpcyBwYWdlPycpKQorZXZlbnQucHJldmVudERlZmF1bHQoKTsKK30KK30sIGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ibGluay1maXh1cC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+PGJvZHkgb25sb2FkPSJmaXhCcm9rZW5MaW5rKCk7IGluaXQoKSI+PGhlYWRlciBjbGFzcz0iaGVhZCIgaWQ9ImhlYWQiPjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cud2hhdHdnLm9yZy8iIGNsYXNzPSJsb2dvIj48aW1nIHdpZHRoPSIxMDEiIHNyYz0iL2ltYWdlcy9sb2dvIiBhbHQ9IldIQVRXRyIgaGVpZ2h0PSIxMDEiPjwvYT48L3A+Cis8aGdyb3VwPjxoMSBjbGFzcz0iYWxsY2FwcyI+SFRNTDwvaDE+Cis8aDIgY2xhc3M9Im5vLW51bSBuby10b2MiPkxpdmluZyBTdGFuZGFyZCDigJQgTGFzdCBVcGRhdGVkIDI4IEphbnVhcnkgMjAxNDwvaDI+Cis8L2hncm91cD48ZGw+PGR0PjxzdHJvbmc+V2ViIGRldmVsb3BlciBlZGl0aW9uOjwvc3Ryb25nPjwvZHQ+Cis8ZGQ+PHN0cm9uZz48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVycy53aGF0d2cub3JnLyI+aHR0cDovL2RldmVsb3BlcnMud2hhdHdnLm9yZy88L2E+PC9zdHJvbmc+PC9kZD4KKzxkdD5NdWx0aXBsZS1wYWdlIHZlcnNpb246PC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS8iPmh0dHA6Ly93aGF0d2cub3JnL2h0bWw8L2E+PC9kZD4KKzxkdD5PbmUtcGFnZSB2ZXJzaW9uOjwvZHQ+Cis8ZGQ+PGEgaHJlZj0iaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8iPmh0dHA6Ly93aGF0d2cub3JnL2M8L2E+PC9kZD4KKzxkdD5WYWxpZGF0b3JzPC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vdmFsaWRhdG9yLndoYXR3Zy5vcmcvIj5odHRwOi8vdmFsaWRhdG9yLndoYXR3Zy5vcmcvPC9hPjwvZGQ+Cis8ZHQ+UGFydGljaXBhdGU6PC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vd3d3LndoYXR3Zy5vcmcvbWFpbGluZy1saXN0Ij53aGF0d2dAd2hhdHdnLm9yZzwvYT48L2RkPgorPGRkPjxhIGhyZWY9Imh0dHA6Ly9mb3J1bXMud2hhdHdnLm9yZy8iPmh0dHA6Ly9mb3J1bXMud2hhdHdnLm9yZy88L2E+PC9kZD4KKzxkZD48YSBocmVmPSJodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvSVJDIj5JUkM6ICN3aGF0d2cgb24gRnJlZW5vZGU8L2E+PC9kZD4KKzxkdD5GQVE6PC9kdD4KKzxkZD48YSBocmVmPSJodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRkFRIj5odHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRkFRPC9hPjwvZGQ+Cis8ZHQ+VmVyc2lvbiBoaXN0b3J5OjwvZHQ+Cis8ZGQ+VHdpdHRlciB1cGRhdGVzOiA8YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vV0hBVFdHIj5odHRwOi8vdHdpdHRlci5jb20vV0hBVFdHPC9hPjwvZGQ+Cis8ZGQ+Q29tbWl0LVdhdGNoZXJzIG1haWxpbmcgbGlzdDogPGEgaHJlZj0iaHR0cDovL2xpc3RzLndoYXR3Zy5vcmcvbGlzdGluZm8uY2dpL2NvbW1pdC13YXRjaGVycy13aGF0d2cub3JnIj5odHRwOi8vbGlzdHMud2hhdHdnLm9yZy9saXN0aW5mby5jZ2kvY29tbWl0LXdhdGNoZXJzLXdoYXR3Zy5vcmc8L2E+PC9kZD4KKzxkZD5JbnRlcmFjdGl2ZSBXZWIgaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vaHRtbDUub3JnL3Rvb2xzL3dlYi1hcHBzLXRyYWNrZXIiPmh0dHA6Ly9odG1sNS5vcmcvdG9vbHMvd2ViLWFwcHMtdHJhY2tlcjwvYT48L2RkPgorPGRkPlN1YnZlcnNpb24gaW50ZXJmYWNlOiA8YSBocmVmPSJodHRwOi8vc3ZuLndoYXR3Zy5vcmcvIj5odHRwOi8vc3ZuLndoYXR3Zy5vcmcvPC9hPjwvZGQ+Cis8ZHQ+SXNzdWVzOjwvZHQ+Cis8ZGQ+VG8gdmlldyB0aGUgb3BlbiBidWdzOiA8YSBocmVmPSJodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvYnVnbGlzdC5jZ2k/cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmFtcDtzaG9ydF9kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO3Nob3J0X2Rlc2M9JmFtcDtwcm9kdWN0PVdIQVRXRyZhbXA7Y29tcG9uZW50PUhUTUwmYW1wO2xvbmdkZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2xvbmdkZXNjPSZhbXA7YnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO3N0YXR1c193aGl0ZWJvYXJkX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO3N0YXR1c193aGl0ZWJvYXJkPSZhbXA7a2V5d29yZHNfdHlwZT1hbGx3b3JkcyZhbXA7a2V5d29yZHM9JmFtcDtidWdfc3RhdHVzPVVOQ09ORklSTUVEJmFtcDtidWdfc3RhdHVzPU5FVyZhbXA7YnVnX3N0YXR1cz1BU1NJR05FRCZhbXA7YnVnX3N0YXR1cz1SRU9QRU5FRCZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsMT0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbDI9JmFtcDtidWdfaWRfdHlwZT1hbnlleGFjdCZhbXA7YnVnX2lkPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO2NtZHR5cGU9ZG9pdCZhbXA7b3JkZXI9UmV1c2Urc2FtZStzb3J0K2FzK2xhc3QrdGltZSZhbXA7ZmllbGQwLTAtMD1ub29wJmFtcDt0eXBlMC0wLTA9bm9vcCZhbXA7dmFsdWUwLTAtMD0iPkhUTUwgYnVnIGxpc3Q8L2E+PC9kZD4KKzxkZD5UbyBmaWxlIGJ1Z3MsIHVzZSB0aGUgInN1Ym1pdCByZXZpZXcgY29tbWVudHMiIGZlYXR1cmUgYXQgdGhlIGJvdHRvbSBvZiB0aGUgd2luZG93PC9kZD4KKzxkZD5UbyBzZW5kIGZlZWRiYWNrIGJ5IGUtbWFpbDogPGEgaHJlZj0iaHR0cDovL3d3dy53aGF0d2cub3JnL21haWxpbmctbGlzdCI+d2hhdHdnQHdoYXR3Zy5vcmc8L2E+PC9kZD4KKzxkZD5UbyB2aWV3IGFuZCB2b3RlIG9uIGUtbWFpbCBmZWVkYmFjazogPGEgaHJlZj0iaHR0cDovL3d3dy53aGF0d2cub3JnL2lzc3Vlcy8iPmh0dHA6Ly93d3cud2hhdHdnLm9yZy9pc3N1ZXMvPC9hPjwvZGQ+Cis8ZHQ+RWRpdG9yOjwvZHQ+Cis8ZGQ+SWFuIEhpY2tzb24sIEdvb2dsZSwgaWFuQGhpeGllLmNoPC9kZD4KKzwvZGw+PHAgY2xhc3M9ImNvcHlyaWdodCI+wqkgQ29weXJpZ2h0IDIwMDQtMjAxMSBBcHBsZSBDb21wdXRlciwgSW5jLiwKK01vemlsbGEgRm91bmRhdGlvbiwgYW5kIE9wZXJhIFNvZnR3YXJlIEFTQS48L3A+Cis8cCBjbGFzcz0iY29weXJpZ2h0Ij5Zb3UgYXJlIGdyYW50ZWQgYSBsaWNlbnNlIHRvIHVzZSwgcmVwcm9kdWNlCithbmQgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhpcyBkb2N1bWVudC48L3A+Cis8L2hlYWRlcj48aHI+PGgyIGNsYXNzPSJuby1udW0gbm8tdG9jIiBpZD0iY29udGVudHMiPlRhYmxlIG9mIGNvbnRlbnRzPC9oMj4KKworPCEtLWJlZ2luLXRvYy0tPgorPG9sIGNsYXNzPSJ0b2MiPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNpbnRyb2R1Y3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNhYnN0cmFjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEgPC9zcGFuPldoZXJlIGRvZXMgdGhpcyBzcGVjaWZpY2F0aW9uIGZpdD88L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNpcy10aGlzLWh0bWw1PyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjIgPC9zcGFuPklzIHRoaXMgSFRNTDU/PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjYmFja2dyb3VuZCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjMgPC9zcGFuPkJhY2tncm91bmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNhdWRpZW5jZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjQgPC9zcGFuPkF1ZGllbmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjc2NvcGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS41IDwvc3Bhbj5TY29wZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2hpc3RvcnktMSI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjYgPC9zcGFuPkhpc3Rvcnk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNkZXNpZ24tbm90ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS43IDwvc3Bhbj5EZXNpZ24gbm90ZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3NlcmlhbGl6YWJpbGl0eS1vZi1zY3JpcHQtZXhlY3V0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuNy4xIDwvc3Bhbj5TZXJpYWxpemFiaWxpdHkgb2Ygc2NyaXB0IGV4ZWN1dGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2NvbXBsaWFuY2Utd2l0aC1vdGhlci1zcGVjaWZpY2F0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjcuMiA8L3NwYW4+Q29tcGxpYW5jZSB3aXRoIG90aGVyIHNwZWNpZmljYXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjZXh0ZW5zaWJpbGl0eSI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjcuMyA8L3NwYW4+RXh0ZW5zaWJpbGl0eTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNodG1sLXZzLXhodG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuOCA8L3NwYW4+SFRNTCB2cyBYSFRNTDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3N0cnVjdHVyZS1vZi10aGlzLXNwZWNpZmljYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MS45IDwvc3Bhbj5TdHJ1Y3R1cmUgb2YgdGhpcyBzcGVjaWZpY2F0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNob3ctdG8tcmVhZC10aGlzLXNwZWNpZmljYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MS45LjEgPC9zcGFuPkhvdyB0byByZWFkIHRoaXMgc3BlY2lmaWNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3R5cG9ncmFwaGljLWNvbnZlbnRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuOS4yIDwvc3Bhbj5UeXBvZ3JhcGhpYyBjb252ZW50aW9uczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNmaW5nZXJwcmludCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEwIDwvc3Bhbj5Qcml2YWN5IGNvbmNlcm5zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjYS1xdWljay1pbnRyb2R1Y3Rpb24tdG8taHRtbCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjExIDwvc3Bhbj5BIHF1aWNrIGludHJvZHVjdGlvbiB0byBIVE1MPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCN3cml0aW5nLXNlY3VyZS1hcHBsaWNhdGlvbnMtd2l0aC1odG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuMTEuMSA8L3NwYW4+V3JpdGluZyBzZWN1cmUgYXBwbGljYXRpb25zIHdpdGggSFRNTDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2NvbW1vbi1waXRmYWxscy10by1hdm9pZC13aGVuLXVzaW5nLXRoZS1zY3JpcHRpbmctYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjExLjIgPC9zcGFuPkNvbW1vbiBwaXRmYWxscyB0byBhdm9pZCB3aGVuIHVzaW5nIHRoZSBzY3JpcHRpbmcgQVBJczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2hvdy10by1jYXRjaC1taXN0YWtlcy13aGVuLXdyaXRpbmctaHRtbDotdmFsaWRhdG9ycy1hbmQtY29uZm9ybWFuY2UtY2hlY2tlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS4xMS4zIDwvc3Bhbj5Ib3cgdG8gY2F0Y2ggbWlzdGFrZXMgd2hlbiB3cml0aW5nIEhUTUw6IHZhbGlkYXRvcnMgYW5kIGNvbmZvcm1hbmNlIGNoZWNrZXJzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy1mb3ItYXV0aG9ycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEyIDwvc3Bhbj5Db25mb3JtYW5jZSByZXF1aXJlbWVudHMgZm9yIGF1dGhvcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3ByZXNlbnRhdGlvbmFsLW1hcmt1cCI+PHNwYW4gY2xhc3M9InNlY25vIj4xLjEyLjEgPC9zcGFuPlByZXNlbnRhdGlvbmFsIG1hcmt1cDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3N5bnRheC1lcnJvcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MS4xMi4yIDwvc3Bhbj5TeW50YXggZXJyb3JzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjcmVzdHJpY3Rpb25zLW9uLWNvbnRlbnQtbW9kZWxzLWFuZC1vbi1hdHRyaWJ1dGUtdmFsdWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuMTIuMyA8L3NwYW4+UmVzdHJpY3Rpb25zIG9uIGNvbnRlbnQgbW9kZWxzIGFuZCBvbiBhdHRyaWJ1dGUgdmFsdWVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI3N1Z2dlc3RlZC1yZWFkaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEuMTMgPC9zcGFuPlN1Z2dlc3RlZCByZWFkaW5nPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjaW5mcmFzdHJ1Y3R1cmUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MiA8L3NwYW4+Q29tbW9uIGluZnJhc3RydWN0dXJlPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI3Rlcm1pbm9sb2d5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuMSA8L3NwYW4+VGVybWlub2xvZ3k8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjcmVzb3VyY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuMS4xIDwvc3Bhbj5SZXNvdXJjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI3htbCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjEuMiA8L3NwYW4+WE1MPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW5mcmFzdHJ1Y3R1cmUuaHRtbCNkb20tdHJlZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4xLjMgPC9zcGFuPkRPTSB0cmVlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjc2NyaXB0aW5nLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4xLjQgPC9zcGFuPlNjcmlwdGluZzwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjcGx1Z2lucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjEuNSA8L3NwYW4+UGx1Z2luczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjZW5jb2RpbmctdGVybWlub2xvZ3kiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4xLjYgPC9zcGFuPkNoYXJhY3RlciBlbmNvZGluZ3M8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW5mcmFzdHJ1Y3R1cmUuaHRtbCNjb25mb3JtYW5jZS1yZXF1aXJlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4yIDwvc3Bhbj5Db25mb3JtYW5jZSByZXF1aXJlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjY29uZm9ybWFuY2UtY2xhc3NlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjIuMSA8L3NwYW4+Q29uZm9ybWFuY2UgY2xhc3NlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjZGVwZW5kZW5jaWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuMi4yIDwvc3Bhbj5EZXBlbmRlbmNpZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbmZyYXN0cnVjdHVyZS5odG1sI2V4dGVuc2liaWxpdHktMCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjIuMyA8L3NwYW4+RXh0ZW5zaWJpbGl0eTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjaW50ZXJhY3Rpb25zLXdpdGgteHBhdGgtYW5kLXhzbHQiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4yLjQgPC9zcGFuPkludGVyYWN0aW9ucyB3aXRoIFhQYXRoIGFuZCBYU0xUPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImluZnJhc3RydWN0dXJlLmh0bWwjY2FzZS1zZW5zaXRpdml0eS1hbmQtc3RyaW5nLWNvbXBhcmlzb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi4zIDwvc3Bhbj5DYXNlLXNlbnNpdGl2aXR5IGFuZCBzdHJpbmcgY29tcGFyaXNvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjY29tbW9uLW1pY3Jvc3ludGF4ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40IDwvc3Bhbj5Db21tb24gbWljcm9zeW50YXhlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNjb21tb24tcGFyc2VyLWlkaW9tcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuMSA8L3NwYW4+Q29tbW9uIHBhcnNlciBpZGlvbXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2Jvb2xlYW4tYXR0cmlidXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuMiA8L3NwYW4+Qm9vbGVhbiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNrZXl3b3Jkcy1hbmQtZW51bWVyYXRlZC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC4zIDwvc3Bhbj5LZXl3b3JkcyBhbmQgZW51bWVyYXRlZCBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNudW1iZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC40IDwvc3Bhbj5OdW1iZXJzPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI3NpZ25lZC1pbnRlZ2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNC4xIDwvc3Bhbj5TaWduZWQgaW50ZWdlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI25vbi1uZWdhdGl2ZS1pbnRlZ2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNC4yIDwvc3Bhbj5Ob24tbmVnYXRpdmUgaW50ZWdlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2Zsb2F0aW5nLXBvaW50LW51bWJlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjQuMyA8L3NwYW4+RmxvYXRpbmctcG9pbnQgbnVtYmVyczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjcGVyY2VudGFnZXMtYW5kLWRpbWVuc2lvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjQuNCA8L3NwYW4+UGVyY2VudGFnZXMgYW5kIGxlbmd0aHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2xpc3RzLW9mLWludGVnZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC40LjUgPC9zcGFuPkxpc3RzIG9mIGludGVnZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNsaXN0cy1vZi1kaW1lbnNpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC40LjYgPC9zcGFuPkxpc3RzIG9mIGRpbWVuc2lvbnM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNkYXRlcy1hbmQtdGltZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUgPC9zcGFuPkRhdGVzIGFuZCB0aW1lczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNtb250aHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuMSA8L3NwYW4+TW9udGhzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNkYXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNS4yIDwvc3Bhbj5EYXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjeWVhcmxlc3MtZGF0ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuMyA8L3NwYW4+WWVhcmxlc3MgZGF0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI3RpbWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC41LjQgPC9zcGFuPlRpbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNsb2NhbC1kYXRlcy1hbmQtdGltZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuNSA8L3NwYW4+TG9jYWwgZGF0ZXMgYW5kIHRpbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCN0aW1lLXpvbmVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC41LjYgPC9zcGFuPlRpbWUgem9uZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2dsb2JhbC1kYXRlcy1hbmQtdGltZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuNyA8L3NwYW4+R2xvYmFsIGRhdGVzIGFuZCB0aW1lczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjd2Vla3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuOCA8L3NwYW4+V2Vla3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI2R1cmF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNS45IDwvc3Bhbj5EdXJhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI3ZhZ3Vlci1tb21lbnRzLWluLXRpbWUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjUuMTAgPC9zcGFuPlZhZ3VlciBtb21lbnRzIGluIHRpbWU8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNjb2xvcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjYgPC9zcGFuPkNvbG9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjc3BhY2Utc2VwYXJhdGVkLXRva2VucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuNyA8L3NwYW4+U3BhY2Utc2VwYXJhdGVkIHRva2VuczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjY29tbWEtc2VwYXJhdGVkLXRva2VucyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjQuOCA8L3NwYW4+Q29tbWEtc2VwYXJhdGVkIHRva2VuczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjc3ludGF4LXJlZmVyZW5jZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi40LjkgPC9zcGFuPlJlZmVyZW5jZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tbWljcm9zeW50YXhlcy5odG1sI21xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNC4xMCA8L3NwYW4+TWVkaWEgcXVlcmllczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ1cmxzLmh0bWwjdXJscyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjUgPC9zcGFuPlVSTHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InVybHMuaHRtbCN0ZXJtaW5vbG9neS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNS4xIDwvc3Bhbj5UZXJtaW5vbG9neTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InVybHMuaHRtbCNyZXNvbHZpbmctdXJscyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjUuMiA8L3NwYW4+UmVzb2x2aW5nIFVSTHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ1cmxzLmh0bWwjZHluYW1pYy1jaGFuZ2VzLXRvLWJhc2UtdXJscyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjUuMyA8L3NwYW4+RHluYW1pYyBjaGFuZ2VzIHRvIGJhc2UgVVJMczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJmZXRjaGluZy1yZXNvdXJjZXMuaHRtbCNmZXRjaGluZy1yZXNvdXJjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42IDwvc3Bhbj5GZXRjaGluZyByZXNvdXJjZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI3Rlcm1pbm9sb2d5LTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42LjEgPC9zcGFuPlRlcm1pbm9sb2d5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZmV0Y2hpbmctcmVzb3VyY2VzLmh0bWwjcHJvY2Vzc2luZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjYuMiA8L3NwYW4+UHJvY2Vzc2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI2VuY3J5cHRlZC1odHRwLWFuZC1yZWxhdGVkLXNlY3VyaXR5LWNvbmNlcm5zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNi4zIDwvc3Bhbj5FbmNyeXB0ZWQgSFRUUCBhbmQgcmVsYXRlZCBzZWN1cml0eSBjb25jZXJuczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI2NvbnRlbnQtdHlwZS1zbmlmZmluZyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjYuNCA8L3NwYW4+RGV0ZXJtaW5pbmcgdGhlIHR5cGUgb2YgYSByZXNvdXJjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZldGNoaW5nLXJlc291cmNlcy5odG1sI2V4dHJhY3RpbmctY2hhcmFjdGVyLWVuY29kaW5ncy1mcm9tLW1ldGEtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42LjUgPC9zcGFuPkV4dHJhY3RpbmcgY2hhcmFjdGVyIGVuY29kaW5ncyBmcm9tIDxjb2RlPm1ldGE8L2NvZGU+IGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZmV0Y2hpbmctcmVzb3VyY2VzLmh0bWwjY29ycy1zZXR0aW5ncy1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNi42IDwvc3Bhbj5DT1JTIHNldHRpbmdzIGF0dHJpYnV0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJmZXRjaGluZy1yZXNvdXJjZXMuaHRtbCNjb3JzLWVuYWJsZWQtZmV0Y2giPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi42LjcgPC9zcGFuPkNPUlMtZW5hYmxlZCBmZXRjaDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNjb21tb24tZG9tLWludGVyZmFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi43IDwvc3Bhbj5Db21tb24gRE9NIGludGVyZmFjZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3JlZmxlY3RpbmctY29udGVudC1hdHRyaWJ1dGVzLWluLWlkbC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4xIDwvc3Bhbj5SZWZsZWN0aW5nIGNvbnRlbnQgYXR0cmlidXRlcyBpbiBJREwgYXR0cmlidXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2NvbGxlY3Rpb25zLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi43LjIgPC9zcGFuPkNvbGxlY3Rpb25zPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNodG1sYWxsY29sbGVjdGlvbi0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4yLjEgPC9zcGFuPkhUTUxBbGxDb2xsZWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjaHRtbGZvcm1jb250cm9sc2NvbGxlY3Rpb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuMi4yIDwvc3Bhbj5IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2h0bWxvcHRpb25zY29sbGVjdGlvbi0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4yLjMgPC9zcGFuPkhUTUxPcHRpb25zQ29sbGVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2h0bWxwcm9wZXJ0aWVzY29sbGVjdGlvbi0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy4yLjQgPC9zcGFuPkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNkb21zdHJpbmdtYXAtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuMyA8L3NwYW4+RE9NU3RyaW5nTWFwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjZG9tZWxlbWVudG1hcC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy40IDwvc3Bhbj5ET01FbGVtZW50TWFwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjdHJhbnNmZXJhYmxlLW9iamVjdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi43LjUgPC9zcGFuPlRyYW5zZmVyYWJsZSBvYmplY3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuNiA8L3NwYW4+U2FmZSBwYXNzaW5nIG9mIHN0cnVjdHVyZWQgZGF0YTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2NhbGxiYWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj4yLjcuNyA8L3NwYW4+Q2FsbGJhY2tzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjZ2FyYmFnZS1jb2xsZWN0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjIuNy44IDwvc3Bhbj5HYXJiYWdlIGNvbGxlY3Rpb248L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sI25hbWVzcGFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Mi44IDwvc3Bhbj5OYW1lc3BhY2VzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImRvbS5odG1sI2RvbSI+PHNwYW4gY2xhc3M9InNlY25vIj4zIDwvc3Bhbj5TZW1hbnRpY3MsIHN0cnVjdHVyZSwgYW5kIEFQSXMgb2YgSFRNTCBkb2N1bWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImRvbS5odG1sI2RvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjEgPC9zcGFuPkRvY3VtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZG9tLmh0bWwjdGhlLWRvY3VtZW50LW9iamVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjEuMSA8L3NwYW4+VGhlIDxjb2RlPkRvY3VtZW50PC9jb2RlPiBvYmplY3Q8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkb20uaHRtbCNyZXNvdXJjZS1tZXRhZGF0YS1tYW5hZ2VtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMS4yIDwvc3Bhbj5SZXNvdXJjZSBtZXRhZGF0YSBtYW5hZ2VtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG9tLmh0bWwjZG9tLXRyZWUtYWNjZXNzb3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMS4zIDwvc3Bhbj5ET00gdHJlZSBhY2Nlc3NvcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkb20uaHRtbCNsb2FkaW5nLXhtbC1kb2N1bWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4xLjQgPC9zcGFuPkxvYWRpbmcgWE1MIGRvY3VtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2VsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMiA8L3NwYW4+RWxlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjc2VtYW50aWNzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjEgPC9zcGFuPlNlbWFudGljczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjZWxlbWVudHMtaW4tdGhlLWRvbSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuMiA8L3NwYW4+RWxlbWVudHMgaW4gdGhlIERPTTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjZWxlbWVudC1kZWZpbml0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuMyA8L3NwYW4+RWxlbWVudCBkZWZpbml0aW9uczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNhdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi4zLjEgPC9zcGFuPkF0dHJpYnV0ZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNjb250ZW50LW1vZGVscyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNCA8L3NwYW4+Q29udGVudCBtb2RlbHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwja2luZHMtb2YtY29udGVudCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xIDwvc3Bhbj5LaW5kcyBvZiBjb250ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI21ldGFkYXRhLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjEgPC9zcGFuPk1ldGFkYXRhIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2Zsb3ctY29udGVudC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi40LjEuMiA8L3NwYW4+RmxvdyBjb250ZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNzZWN0aW9uaW5nLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjMgPC9zcGFuPlNlY3Rpb25pbmcgY29udGVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjaGVhZGluZy1jb250ZW50LTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjQuMS40IDwvc3Bhbj5IZWFkaW5nIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3BocmFzaW5nLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjUgPC9zcGFuPlBocmFzaW5nIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2VtYmVkZGVkLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjYgPC9zcGFuPkVtYmVkZGVkIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI2ludGVyYWN0aXZlLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjcgPC9zcGFuPkludGVyYWN0aXZlIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3BhbHBhYmxlLWNvbnRlbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNC4xLjggPC9zcGFuPlBhbHBhYmxlIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3NjcmlwdC1zdXBwb3J0aW5nLWVsZW1lbnRzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjQuMS45IDwvc3Bhbj5TY3JpcHQtc3VwcG9ydGluZyBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3RyYW5zcGFyZW50LWNvbnRlbnQtbW9kZWxzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi40LjIgPC9zcGFuPlRyYW5zcGFyZW50IGNvbnRlbnQgbW9kZWxzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNwYXJhZ3JhcGhzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi40LjMgPC9zcGFuPlBhcmFncmFwaHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCNnbG9iYWwtYXR0cmlidXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNSA8L3NwYW4+R2xvYmFsIGF0dHJpYnV0ZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLWlkLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS4xIDwvc3Bhbj5UaGUgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLXRpdGxlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS4yIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItdGl0bGUiPnRpdGxlPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3RoZS1sYW5nLWFuZC14bWw6bGFuZy1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjMgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1sYW5nIj5sYW5nPC9jb2RlPiBhbmQgPGNvZGUgdGl0bGU9ImF0dHIteG1sLWxhbmciPnhtbDpsYW5nPC9jb2RlPiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWxlbWVudHMuaHRtbCN0aGUtdHJhbnNsYXRlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS40IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItdHJhbnNsYXRlIj50cmFuc2xhdGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLXhtbDpiYXNlLWF0dHJpYnV0ZS0oeG1sLW9ubHkpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjUgPC9zcGFuPlRoZSA8Y29kZT54bWw6YmFzZTwvY29kZT4gYXR0cmlidXRlIChYTUwgb25seSk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3RoZS1kaXItYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjYgPC9zcGFuPlRoZSA8Y29kZT5kaXI8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjY2xhc3NlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS43IDwvc3Bhbj5UaGUgPGNvZGU+Y2xhc3M8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjdGhlLXN0eWxlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4zLjIuNS44IDwvc3Bhbj5UaGUgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjZW1iZWRkaW5nLWN1c3RvbS1ub24tdmlzaWJsZS1kYXRhLXdpdGgtdGhlLWRhdGEtKi1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi41LjkgPC9zcGFuPkVtYmVkZGluZyBjdXN0b20gbm9uLXZpc2libGUgZGF0YSB3aXRoIHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1kYXRhLSoiPmRhdGEtKjwvY29kZT4gYXR0cmlidXRlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3JlcXVpcmVtZW50cy1yZWxhdGluZy10by10aGUtYmlkaXJlY3Rpb25hbC1hbGdvcml0aG0iPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjYgPC9zcGFuPlJlcXVpcmVtZW50cyByZWxhdGluZyB0byB0aGUgYmlkaXJlY3Rpb25hbCBhbGdvcml0aG08L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVsZW1lbnRzLmh0bWwjYXV0aG9yaW5nLWNvbmZvcm1hbmNlLWNyaXRlcmlhLWZvci1iaWRpcmVjdGlvbmFsLWFsZ29yaXRobS1mb3JtYXR0aW5nLWNoYXJhY3RlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjYuMSA8L3NwYW4+QXV0aG9yaW5nIGNvbmZvcm1hbmNlIGNyaXRlcmlhIGZvciBiaWRpcmVjdGlvbmFsLWFsZ29yaXRobSBmb3JtYXR0aW5nIGNoYXJhY3RlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3VzZXItYWdlbnQtY29uZm9ybWFuY2UtY3JpdGVyaWEiPjxzcGFuIGNsYXNzPSJzZWNubyI+My4yLjYuMiA8L3NwYW4+VXNlciBhZ2VudCBjb25mb3JtYW5jZSBjcml0ZXJpYTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbGVtZW50cy5odG1sI3dhaS1hcmlhIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjMuMi43IDwvc3Bhbj5XQUktQVJJQTwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjc2VtYW50aWNzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQgPC9zcGFuPlRoZSBlbGVtZW50cyBvZiBIVE1MPC9hPgorPG9sPjxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCN0aGUtcm9vdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMSA8L3NwYW4+VGhlIHJvb3QgZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEuMSA8L3NwYW4+VGhlIDxjb2RlPmh0bWw8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjZG9jdW1lbnQtbWV0YWRhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yIDwvc3Bhbj5Eb2N1bWVudCBtZXRhZGF0YTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLWhlYWQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuMSA8L3NwYW4+VGhlIDxjb2RlPmhlYWQ8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCN0aGUtdGl0bGUtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuMiA8L3NwYW4+VGhlIDxjb2RlPnRpdGxlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLWJhc2UtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuMyA8L3NwYW4+VGhlIDxjb2RlPmJhc2U8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCN0aGUtbGluay1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMi40IDwvc3Bhbj5UaGUgPGNvZGU+bGluazwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbWFudGljcy5odG1sI3RoZS1tZXRhLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjUgPC9zcGFuPlRoZSA8Y29kZT5tZXRhPC9jb2RlPiBlbGVtZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCNzdGFuZGFyZC1tZXRhZGF0YS1uYW1lcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuNS4xIDwvc3Bhbj5TdGFuZGFyZCBtZXRhZGF0YSBuYW1lczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbWFudGljcy5odG1sI290aGVyLW1ldGFkYXRhLW5hbWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMi41LjIgPC9zcGFuPk90aGVyIG1ldGFkYXRhIG5hbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjcHJhZ21hLWRpcmVjdGl2ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjUuMyA8L3NwYW4+UHJhZ21hIGRpcmVjdGl2ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCNvdGhlci1wcmFnbWEtZGlyZWN0aXZlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuNS40IDwvc3Bhbj5PdGhlciBwcmFnbWEgZGlyZWN0aXZlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbWFudGljcy5odG1sI2NoYXJzZXQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjUuNSA8L3NwYW4+U3BlY2lmeWluZyB0aGUgZG9jdW1lbnQncyBjaGFyYWN0ZXIgZW5jb2Rpbmc8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLXN0eWxlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4yLjYgPC9zcGFuPlRoZSA8Y29kZT5zdHlsZTwvY29kZT4gZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VtYW50aWNzLmh0bWwjdGhlLUBnbG9iYWwtcnVsZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjIuNi4xIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9IiI+QGdsb2JhbDwvY29kZT4gcnVsZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzZW1hbnRpY3MuaHRtbCNpbnRlcmFjdGlvbnMtb2Ytc3R5bGluZy1hbmQtc2NyaXB0aW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMi43IDwvc3Bhbj5JbnRlcmFjdGlvbnMgb2Ygc3R5bGluZyBhbmQgc2NyaXB0aW5nPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjc2VjdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zIDwvc3Bhbj5TZWN0aW9uczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCN0aGUtYm9keS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy4xIDwvc3Bhbj5UaGUgPGNvZGU+Ym9keTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdGhlLWFydGljbGUtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuMiA8L3NwYW4+VGhlIDxjb2RlPmFydGljbGU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1zZWN0aW9uLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjMgPC9zcGFuPlRoZSA8Y29kZT5zZWN0aW9uPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCN0aGUtbmF2LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjQgPC9zcGFuPlRoZSA8Y29kZT5uYXY8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1hc2lkZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy41IDwvc3Bhbj5UaGUgPGNvZGU+YXNpZGU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1oMSwtaDIsLWgzLC1oNCwtaDUsLWFuZC1oNi1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuNiA8L3NwYW4+VGhlIDxjb2RlPmgxPC9jb2RlPiwgPGNvZGU+aDI8L2NvZGU+LCA8Y29kZT5oMzwvY29kZT4sIDxjb2RlPmg0PC9jb2RlPiwgPGNvZGU+aDU8L2NvZGU+LCBhbmQKKzxjb2RlPmg2PC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdGhlLWhncm91cC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy43IDwvc3Bhbj5UaGUgPGNvZGU+aGdyb3VwPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCN0aGUtaGVhZGVyLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjggPC9zcGFuPlRoZSA8Y29kZT5oZWFkZXI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3RoZS1mb290ZXItZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuOSA8L3NwYW4+VGhlIDxjb2RlPmZvb3RlcjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdGhlLWFkZHJlc3MtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuMTAgPC9zcGFuPlRoZSA8Y29kZT5hZGRyZXNzPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCNoZWFkaW5ncy1hbmQtc2VjdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjExIDwvc3Bhbj5IZWFkaW5ncyBhbmQgc2VjdGlvbnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjb3V0bGluZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjExLjEgPC9zcGFuPkNyZWF0aW5nIGFuIG91dGxpbmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9ucy5odG1sI3NhbXBsZS1vdXRsaW5lcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjMuMTEuMiA8L3NwYW4+U2FtcGxlIG91dGxpbmVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb25zLmh0bWwjdXNhZ2Utc3VtbWFyeS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMy4xMiA8L3NwYW4+VXNhZ2Ugc3VtbWFyeTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VjdGlvbnMuaHRtbCNhcnRpY2xlLW9yLXNlY3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4zLjEyLjEgPC9zcGFuPkFydGljbGUgb3Igc2VjdGlvbj88L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCNncm91cGluZy1jb250ZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNCA8L3NwYW4+R3JvdXBpbmcgY29udGVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1wLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjEgPC9zcGFuPlRoZSA8Y29kZT5wPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1oci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4yIDwvc3Bhbj5UaGUgPGNvZGU+aHI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLXByZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4zIDwvc3Bhbj5UaGUgPGNvZGU+cHJlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1ibG9ja3F1b3RlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjQgPC9zcGFuPlRoZSA8Y29kZT5ibG9ja3F1b3RlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1vbC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC41IDwvc3Bhbj5UaGUgPGNvZGU+b2w8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLXVsLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjYgPC9zcGFuPlRoZSA8Y29kZT51bDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtbGktZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjQuNyA8L3NwYW4+VGhlIDxjb2RlPmxpPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1kbC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC44IDwvc3Bhbj5UaGUgPGNvZGU+ZGw8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLWR0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjkgPC9zcGFuPlRoZSA8Y29kZT5kdDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtZGQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjQuMTAgPC9zcGFuPlRoZSA8Y29kZT5kZDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtZmlndXJlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjExIDwvc3Bhbj5UaGUgPGNvZGU+ZmlndXJlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZ3JvdXBpbmctY29udGVudC5odG1sI3RoZS1maWdjYXB0aW9uLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC40LjEyIDwvc3Bhbj5UaGUgPGNvZGU+ZmlnY2FwdGlvbjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imdyb3VwaW5nLWNvbnRlbnQuaHRtbCN0aGUtbWFpbi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4xMyA8L3NwYW4+VGhlIDxjb2RlPm1haW48L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJncm91cGluZy1jb250ZW50Lmh0bWwjdGhlLWRpdi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNC4xNCA8L3NwYW4+VGhlIDxjb2RlPmRpdjwvY29kZT4gZWxlbWVudDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RleHQtbGV2ZWwtc2VtYW50aWNzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNSA8L3NwYW4+VGV4dC1sZXZlbCBzZW1hbnRpY3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWEtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMSA8L3NwYW4+VGhlIDxjb2RlPmE8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1lbS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yIDwvc3Bhbj5UaGUgPGNvZGU+ZW08L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1zdHJvbmctZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMyA8L3NwYW4+VGhlIDxjb2RlPnN0cm9uZzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXNtYWxsLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjQgPC9zcGFuPlRoZSA8Y29kZT5zbWFsbDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXMtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuNSA8L3NwYW4+VGhlIDxjb2RlPnM8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1jaXRlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjYgPC9zcGFuPlRoZSA8Y29kZT5jaXRlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtcS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS43IDwvc3Bhbj5UaGUgPGNvZGU+cTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWRmbi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS44IDwvc3Bhbj5UaGUgPGNvZGU+ZGZuPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYWJici1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS45IDwvc3Bhbj5UaGUgPGNvZGU+YWJicjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWRhdGEtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMTAgPC9zcGFuPlRoZSA8Y29kZT5kYXRhPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtdGltZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4xMSA8L3NwYW4+VGhlIDxjb2RlPnRpbWU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1jb2RlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjEyIDwvc3Bhbj5UaGUgPGNvZGU+Y29kZTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXZhci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4xMyA8L3NwYW4+VGhlIDxjb2RlPnZhcjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXNhbXAtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMTQgPC9zcGFuPlRoZSA8Y29kZT5zYW1wPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUta2JkLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjE1IDwvc3Bhbj5UaGUgPGNvZGU+a2JkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtc3ViLWFuZC1zdXAtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjE2IDwvc3Bhbj5UaGUgPGNvZGU+c3ViPC9jb2RlPiBhbmQgPGNvZGU+c3VwPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWktZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMTcgPC9zcGFuPlRoZSA8Y29kZT5pPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4xOCA8L3NwYW4+VGhlIDxjb2RlPmI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS11LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC41LjE5IDwvc3Bhbj5UaGUgPGNvZGU+dTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLW1hcmstZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjAgPC9zcGFuPlRoZSA8Y29kZT5tYXJrPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtcnVieS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yMSA8L3NwYW4+VGhlIDxjb2RlPnJ1Ynk8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0ZXh0LWxldmVsLXNlbWFudGljcy5odG1sI3RoZS1ydC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yMiA8L3NwYW4+VGhlIDxjb2RlPnJ0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtcnAtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjMgPC9zcGFuPlRoZSA8Y29kZT5ycDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWJkaS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yNCA8L3NwYW4+VGhlIDxjb2RlPmJkaTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLWJkby1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yNSA8L3NwYW4+VGhlIDxjb2RlPmJkbzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXNwYW4tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjYgPC9zcGFuPlRoZSA8Y29kZT5zcGFuPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGV4dC1sZXZlbC1zZW1hbnRpY3MuaHRtbCN0aGUtYnItZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjcgPC9zcGFuPlRoZSA8Y29kZT5icjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdGhlLXdici1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNS4yOCA8L3NwYW4+VGhlIDxjb2RlPndicjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRleHQtbGV2ZWwtc2VtYW50aWNzLmh0bWwjdXNhZ2Utc3VtbWFyeSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjUuMjkgPC9zcGFuPlVzYWdlIHN1bW1hcnk8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdHMuaHRtbCNlZGl0cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYgPC9zcGFuPkVkaXRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJlZGl0cy5odG1sI3RoZS1pbnMtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYuMSA8L3NwYW4+VGhlIDxjb2RlPmluczwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRzLmh0bWwjdGhlLWRlbC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNi4yIDwvc3Bhbj5UaGUgPGNvZGU+ZGVsPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdHMuaHRtbCNhdHRyaWJ1dGVzLWNvbW1vbi10by1pbnMtYW5kLWRlbC1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYuMyA8L3NwYW4+QXR0cmlidXRlcyBjb21tb24gdG8gPGNvZGU+aW5zPC9jb2RlPiBhbmQgPGNvZGU+ZGVsPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRzLmh0bWwjZWRpdHMtYW5kLXBhcmFncmFwaHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC42LjQgPC9zcGFuPkVkaXRzIGFuZCBwYXJhZ3JhcGhzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdHMuaHRtbCNlZGl0cy1hbmQtbGlzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC42LjUgPC9zcGFuPkVkaXRzIGFuZCBsaXN0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRzLmh0bWwjZWRpdHMtYW5kLXRhYmxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjYuNiA8L3NwYW4+RWRpdHMgYW5kIHRhYmxlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNlbWJlZGRlZC1jb250ZW50LTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43IDwvc3Bhbj5FbWJlZGRlZCBjb250ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCN0aGUtaW1nLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEgPC9zcGFuPlRoZSA8Y29kZT5pbWc8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2FsdCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMS4xIDwvc3Bhbj5SZXF1aXJlbWVudHMgZm9yIHByb3ZpZGluZyB0ZXh0IHRvIGFjdCBhcyBhbiBhbHRlcm5hdGl2ZSBmb3IgaW1hZ2VzPC9hPgorPG9sPjxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNnZW5lcmFsLWd1aWRlbGluZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS4xIDwvc3Bhbj5HZW5lcmFsIGd1aWRlbGluZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLWxpbmstb3ItYnV0dG9uLWNvbnRhaW5pbmctbm90aGluZy1idXQtdGhlLWltYWdlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMiA8L3NwYW4+QSBsaW5rIG9yIGJ1dHRvbiBjb250YWluaW5nIG5vdGhpbmcgYnV0IHRoZSBpbWFnZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2EtcGhyYXNlLW9yLXBhcmFncmFwaC13aXRoLWFuLWFsdGVybmF0aXZlLWdyYXBoaWNhbC1yZXByZXNlbnRhdGlvbjotY2hhcnRzLC1kaWFncmFtcywtZ3JhcGhzLC1tYXBzLC1pbGx1c3RyYXRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMyA8L3NwYW4+QSBwaHJhc2Ugb3IgcGFyYWdyYXBoIHdpdGggYW4gYWx0ZXJuYXRpdmUgZ3JhcGhpY2FsIHJlcHJlc2VudGF0aW9uOiBjaGFydHMsIGRpYWdyYW1zLCBncmFwaHMsIG1hcHMsIGlsbHVzdHJhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLXNob3J0LXBocmFzZS1vci1sYWJlbC13aXRoLWFuLWFsdGVybmF0aXZlLWdyYXBoaWNhbC1yZXByZXNlbnRhdGlvbjotaWNvbnMsLWxvZ29zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuNCA8L3NwYW4+QSBzaG9ydCBwaHJhc2Ugb3IgbGFiZWwgd2l0aCBhbiBhbHRlcm5hdGl2ZSBncmFwaGljYWwgcmVwcmVzZW50YXRpb246IGljb25zLCBsb2dvczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI3RleHQtdGhhdC1oYXMtYmVlbi1yZW5kZXJlZC10by1hLWdyYXBoaWMtZm9yLXR5cG9ncmFwaGljYWwtZWZmZWN0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuNSA8L3NwYW4+VGV4dCB0aGF0IGhhcyBiZWVuIHJlbmRlcmVkIHRvIGEgZ3JhcGhpYyBmb3IgdHlwb2dyYXBoaWNhbCBlZmZlY3Q8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLWdyYXBoaWNhbC1yZXByZXNlbnRhdGlvbi1vZi1zb21lLW9mLXRoZS1zdXJyb3VuZGluZy10ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuNiA8L3NwYW4+QSBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gb2Ygc29tZSBvZiB0aGUgc3Vycm91bmRpbmcgdGV4dDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2EtcHVyZWx5LWRlY29yYXRpdmUtaW1hZ2UtdGhhdC1kb2Vzbid0LWFkZC1hbnktaW5mb3JtYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS43IDwvc3Bhbj5BIHB1cmVseSBkZWNvcmF0aXZlIGltYWdlIHRoYXQgZG9lc24ndCBhZGQgYW55IGluZm9ybWF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW1iZWRkZWQtY29udGVudC0xLmh0bWwjYS1ncm91cC1vZi1pbWFnZXMtdGhhdC1mb3JtLWEtc2luZ2xlLWxhcmdlci1waWN0dXJlLXdpdGgtbm8tbGlua3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS44IDwvc3Bhbj5BIGdyb3VwIG9mIGltYWdlcyB0aGF0IGZvcm0gYSBzaW5nbGUgbGFyZ2VyIHBpY3R1cmUgd2l0aCBubyBsaW5rczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2EtZ3JvdXAtb2YtaW1hZ2VzLXRoYXQtZm9ybS1hLXNpbmdsZS1sYXJnZXItcGljdHVyZS13aXRoLWxpbmtzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuOSA8L3NwYW4+QSBncm91cCBvZiBpbWFnZXMgdGhhdCBmb3JtIGEgc2luZ2xlIGxhcmdlciBwaWN0dXJlIHdpdGggbGlua3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhLWtleS1wYXJ0LW9mLXRoZS1jb250ZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMTAgPC9zcGFuPkEga2V5IHBhcnQgb2YgdGhlIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhbi1pbWFnZS1ub3QtaW50ZW5kZWQtZm9yLXRoZS11c2VyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMTEgPC9zcGFuPkFuIGltYWdlIG5vdCBpbnRlbmRlZCBmb3IgdGhlIHVzZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlbWJlZGRlZC1jb250ZW50LTEuaHRtbCNhbi1pbWFnZS1pbi1hbi1lLW1haWwtb3ItcHJpdmF0ZS1kb2N1bWVudC1pbnRlbmRlZC1mb3ItYS1zcGVjaWZpYy1wZXJzb24td2hvLWlzLWtub3duLXRvLWJlLWFibGUtdG8tdmlldy1pbWFnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEuMS4xMiA8L3NwYW4+QW4gaW1hZ2UgaW4gYW4gZS1tYWlsIG9yIHByaXZhdGUgZG9jdW1lbnQgaW50ZW5kZWQgZm9yIGEgc3BlY2lmaWMgcGVyc29uIHdobyBpcyBrbm93biB0byBiZSBhYmxlIHRvIHZpZXcgaW1hZ2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW1iZWRkZWQtY29udGVudC0xLmh0bWwjZ3VpZGFuY2UtZm9yLW1hcmt1cC1nZW5lcmF0b3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjEuMTMgPC9zcGFuPkd1aWRhbmNlIGZvciBtYXJrdXAgZ2VuZXJhdG9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVtYmVkZGVkLWNvbnRlbnQtMS5odG1sI2d1aWRhbmNlLWZvci1jb25mb3JtYW5jZS1jaGVja2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMS4xLjE0IDwvc3Bhbj5HdWlkYW5jZSBmb3IgY29uZm9ybWFuY2UgY2hlY2tlcnM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZW1iZWRkZWQtY29udGVudC0xLmh0bWwjYWRhcHRpdmUtaW1hZ2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xLjIgPC9zcGFuPkFkYXB0aXZlIGltYWdlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtaWZyYW1lLWVsZW1lbnQuaHRtbCN0aGUtaWZyYW1lLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjIgPC9zcGFuPlRoZSA8Y29kZT5pZnJhbWU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtaWZyYW1lLWVsZW1lbnQuaHRtbCN0aGUtZW1iZWQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMyA8L3NwYW4+VGhlIDxjb2RlPmVtYmVkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWlmcmFtZS1lbGVtZW50Lmh0bWwjdGhlLW9iamVjdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy40IDwvc3Bhbj5UaGUgPGNvZGU+b2JqZWN0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWlmcmFtZS1lbGVtZW50Lmh0bWwjdGhlLXBhcmFtLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjUgPC9zcGFuPlRoZSA8Y29kZT5wYXJhbTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLXZpZGVvLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjYgPC9zcGFuPlRoZSA8Y29kZT52aWRlbzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLWF1ZGlvLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjcgPC9zcGFuPlRoZSA8Y29kZT5hdWRpbzwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLXNvdXJjZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy44IDwvc3Bhbj5UaGUgPGNvZGU+c291cmNlPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCN0aGUtdHJhY2stZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuOSA8L3NwYW4+VGhlIDxjb2RlPnRyYWNrPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNtZWRpYS1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAgPC9zcGFuPk1lZGlhIGVsZW1lbnRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2Vycm9yLWNvZGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xIDwvc3Bhbj5FcnJvciBjb2RlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjbG9jYXRpb24tb2YtdGhlLW1lZGlhLXJlc291cmNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4yIDwvc3Bhbj5Mb2NhdGlvbiBvZiB0aGUgbWVkaWEgcmVzb3VyY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI21pbWUtdHlwZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjMgPC9zcGFuPk1JTUUgdHlwZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI25ldHdvcmstc3RhdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC40IDwvc3Bhbj5OZXR3b3JrIHN0YXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjbG9hZGluZy10aGUtbWVkaWEtcmVzb3VyY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjUgPC9zcGFuPkxvYWRpbmcgdGhlIG1lZGlhIHJlc291cmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNvZmZzZXRzLWludG8tdGhlLW1lZGlhLXJlc291cmNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC42IDwvc3Bhbj5PZmZzZXRzIGludG8gdGhlIG1lZGlhIHJlc291cmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNyZWFkeS1zdGF0ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjcgPC9zcGFuPlJlYWR5IHN0YXRlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjggPC9zcGFuPlBsYXlpbmcgdGhlIG1lZGlhIHJlc291cmNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzZWVraW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC45IDwvc3Bhbj5TZWVraW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNtZWRpYS1yZXNvdXJjZXMtd2l0aC1tdWx0aXBsZS1tZWRpYS10cmFja3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEwIDwvc3Bhbj5NZWRpYSByZXNvdXJjZXMgd2l0aCBtdWx0aXBsZSBtZWRpYSB0cmFja3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjYXVkaW90cmFja2xpc3QtYW5kLXZpZGVvdHJhY2tsaXN0LW9iamVjdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEwLjEgPC9zcGFuPjxjb2RlPkF1ZGlvVHJhY2tMaXN0PC9jb2RlPiBhbmQgPGNvZGU+VmlkZW9UcmFja0xpc3Q8L2NvZGU+IG9iamVjdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI3NlbGVjdGluZy1zcGVjaWZpYy1hdWRpby1hbmQtdmlkZW8tdHJhY2tzLWRlY2xhcmF0aXZlbHkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEwLjIgPC9zcGFuPlNlbGVjdGluZyBzcGVjaWZpYyBhdWRpbyBhbmQgdmlkZW8gdHJhY2tzIGRlY2xhcmF0aXZlbHk8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzeW5jaHJvbmlzaW5nLW11bHRpcGxlLW1lZGlhLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xMSA8L3NwYW4+U3luY2hyb25pc2luZyBtdWx0aXBsZSBtZWRpYSBlbGVtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNpbnRyb2R1Y3Rpb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTEuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNtZWRpYS1jb250cm9sbGVycyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTEuMiA8L3NwYW4+TWVkaWEgY29udHJvbGxlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2Fzc2lnbmluZy1hLW1lZGlhLWNvbnRyb2xsZXItZGVjbGFyYXRpdmVseSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTEuMyA8L3NwYW4+QXNzaWduaW5nIGEgbWVkaWEgY29udHJvbGxlciBkZWNsYXJhdGl2ZWx5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGltZWQtdGV4dC10cmFja3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEyIDwvc3Bhbj5UaW1lZCB0ZXh0IHRyYWNrczwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCN0ZXh0LXRyYWNrLW1vZGVsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xMi4xIDwvc3Bhbj5UZXh0IHRyYWNrIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzb3VyY2luZy1pbi1iYW5kLXRleHQtdHJhY2tzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xMi4yIDwvc3Bhbj5Tb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzb3VyY2luZy1vdXQtb2YtYmFuZC10ZXh0LXRyYWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuMyA8L3NwYW4+U291cmNpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFja3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2d1aWRlbGluZXMtZm9yLWV4cG9zaW5nLWN1ZXMtaW4tdmFyaW91cy1mb3JtYXRzLWFzLXRleHQtdHJhY2stY3VlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuNCA8L3NwYW4+R3VpZGVsaW5lcyBmb3IgZXhwb3NpbmcgY3VlcyBpbiB2YXJpb3VzIGZvcm1hdHMgYXMgdGV4dCB0cmFjayBjdWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCN0ZXh0LXRyYWNrLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuNSA8L3NwYW4+VGV4dCB0cmFjayBBUEk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI3RleHQtdHJhY2tzLWRlc2NyaWJpbmctY2hhcHRlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEyLjYgPC9zcGFuPlRleHQgdHJhY2tzIGRlc2NyaWJpbmcgY2hhcHRlcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2N1ZS1ldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEyLjcgPC9zcGFuPkV2ZW50IGhhbmRsZXJzIGZvciBvYmplY3RzIG9mIHRoZSB0ZXh0IHRyYWNrIEFQSXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtdmlkZW8tZWxlbWVudC5odG1sI2Jlc3QtcHJhY3RpY2VzLWZvci1tZXRhZGF0YS10ZXh0LXRyYWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTIuOCA8L3NwYW4+QmVzdCBwcmFjdGljZXMgZm9yIG1ldGFkYXRhIHRleHQgdHJhY2tzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdXNlci1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjEzIDwvc3Bhbj5Vc2VyIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGltZS1yYW5nZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjE0IDwvc3Bhbj5UaW1lIHJhbmdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjdGhlLXRyYWNrZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xNSA8L3NwYW4+VGhlIDxjb2RlPlRyYWNrRXZlbnQ8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS12aWRlby1lbGVtZW50Lmh0bWwjbWVkaWFldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjEwLjE2IDwvc3Bhbj5FdmVudCBzdW1tYXJ5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNzZWN1cml0eS1hbmQtcHJpdmFjeS1jb25zaWRlcmF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTcgPC9zcGFuPlNlY3VyaXR5IGFuZCBwcml2YWN5IGNvbnNpZGVyYXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNiZXN0LXByYWN0aWNlcy1mb3ItYXV0aG9ycy11c2luZy1tZWRpYS1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTAuMTggPC9zcGFuPkJlc3QgcHJhY3RpY2VzIGZvciBhdXRob3JzIHVzaW5nIG1lZGlhIGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXZpZGVvLWVsZW1lbnQuaHRtbCNiZXN0LXByYWN0aWNlcy1mb3ItaW1wbGVtZW50b3JzLW9mLW1lZGlhLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMC4xOSA8L3NwYW4+QmVzdCBwcmFjdGljZXMgZm9yIGltcGxlbWVudG9ycyBvZiBtZWRpYSBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtbWFwLWVsZW1lbnQuaHRtbCN0aGUtbWFwLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjExIDwvc3Bhbj5UaGUgPGNvZGU+bWFwPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjdGhlLWFyZWEtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTIgPC9zcGFuPlRoZSA8Y29kZT5hcmVhPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjaW1hZ2UtbWFwcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTMgPC9zcGFuPkltYWdlIG1hcHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS1tYXAtZWxlbWVudC5odG1sI2F1dGhvcmluZyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTMuMSA8L3NwYW4+QXV0aG9yaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjcHJvY2Vzc2luZy1tb2RlbC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xMy4yIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1tYXAtZWxlbWVudC5odG1sI21hdGhtbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjcuMTQgPC9zcGFuPk1hdGhNTDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1tYXAtZWxlbWVudC5odG1sI3N2Zy0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuNy4xNSA8L3NwYW4+U1ZHPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLW1hcC1lbGVtZW50Lmh0bWwjZGltZW5zaW9uLWF0dHJpYnV0ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC43LjE2IDwvc3Bhbj5EaW1lbnNpb24gYXR0cmlidXRlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmtzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOCA8L3NwYW4+TGlua3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjaW50cm9kdWN0aW9uLTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGlua3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC4yIDwvc3Bhbj5MaW5rcyBjcmVhdGVkIGJ5IDxjb2RlPmE8L2NvZGU+IGFuZCA8Y29kZT5hcmVhPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjZm9sbG93aW5nLWh5cGVybGlua3MtMCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguMyA8L3NwYW4+Rm9sbG93aW5nIGh5cGVybGlua3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2Rvd25sb2FkaW5nLXJlc291cmNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNCA8L3NwYW4+RG93bmxvYWRpbmcgcmVzb3VyY2VzPC9hPgorPG9sPjxsaT48YSBocmVmPSJsaW5rcy5odG1sI2h5cGVybGluay1hdWRpdGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNC4xIDwvc3Bhbj5IeXBlcmxpbmsgYXVkaXRpbmc8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rVHlwZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUgPC9zcGFuPkxpbmsgdHlwZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjcmVsLWFsdGVybmF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS4xIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmFsdGVybmF0ZTwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtYXV0aG9yIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjIgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+YXV0aG9yPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1ib29rbWFyayI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS4zIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmJvb2ttYXJrPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1leHRlcm5hbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS40IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmV4dGVybmFsPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1oZWxwIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjUgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+aGVscDwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNyZWwtaWNvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS42IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPmljb248L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLWxpY2Vuc2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuNyA8L3NwYW4+TGluayB0eXBlICI8Y29kZT5saWNlbnNlPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1ub2ZvbGxvdyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS44IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPm5vZm9sbG93PC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1ub3JlZmVycmVyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjkgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+bm9yZWZlcnJlcjwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtcGluZ2JhY2siPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTAgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+cGluZ2JhY2s8L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLXByZWZldGNoIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjExIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPnByZWZldGNoPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1zZWFyY2giPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTIgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+c2VhcmNoPC9jb2RlPiI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJsaW5rcy5odG1sI2xpbmstdHlwZS1zaWRlYmFyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjEzIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPnNpZGViYXI8L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLXN0eWxlc2hlZXQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTQgPC9zcGFuPkxpbmsgdHlwZSAiPGNvZGU+c3R5bGVzaGVldDwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtdGFnIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjE1IDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPnRhZzwvY29kZT4iPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNzZXF1ZW50aWFsLWxpbmstdHlwZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTYgPC9zcGFuPlNlcXVlbnRpYWwgbGluayB0eXBlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNsaW5rLXR5cGUtbmV4dCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjguNS4xNi4xIDwvc3Bhbj5MaW5rIHR5cGUgIjxjb2RlPm5leHQ8L2NvZGU+IjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImxpbmtzLmh0bWwjbGluay10eXBlLXByZXYiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC44LjUuMTYuMiA8L3NwYW4+TGluayB0eXBlICI8Y29kZT5wcmV2PC9jb2RlPiI8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibGlua3MuaHRtbCNvdGhlci1saW5rLXR5cGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOC41LjE3IDwvc3Bhbj5PdGhlciBsaW5rIHR5cGVzPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCN0YWJ1bGFyLWRhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45IDwvc3Bhbj5UYWJ1bGFyIGRhdGE8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS10YWJsZS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS4xIDwvc3Bhbj5UaGUgPGNvZGU+dGFibGU8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RhYmxlLWRlc2NyaXB0aW9ucy10ZWNobmlxdWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS4xLjEgPC9zcGFuPlRlY2huaXF1ZXMgZm9yIGRlc2NyaWJpbmcgdGFibGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGFibGUtbGF5b3V0LXRlY2huaXF1ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjEuMiA8L3NwYW4+VGVjaG5pcXVlcyBmb3IgdGFibGUgZGVzaWduPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS1jYXB0aW9uLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjIgPC9zcGFuPlRoZSA8Y29kZT5jYXB0aW9uPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGhlLWNvbGdyb3VwLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjMgPC9zcGFuPlRoZSA8Y29kZT5jb2xncm91cDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS1jb2wtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuNCA8L3NwYW4+VGhlIDxjb2RlPmNvbDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS10Ym9keS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS41IDwvc3Bhbj5UaGUgPGNvZGU+dGJvZHk8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCN0aGUtdGhlYWQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuNiA8L3NwYW4+VGhlIDxjb2RlPnRoZWFkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGhlLXRmb290LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjcgPC9zcGFuPlRoZSA8Y29kZT50Zm9vdDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3RoZS10ci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS44IDwvc3Bhbj5UaGUgPGNvZGU+dHI8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCN0aGUtdGQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuOSA8L3NwYW4+VGhlIDxjb2RlPnRkPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGhlLXRoLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjEwIDwvc3Bhbj5UaGUgPGNvZGU+dGg8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCNhdHRyaWJ1dGVzLWNvbW1vbi10by10ZC1hbmQtdGgtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC45LjExIDwvc3Bhbj5BdHRyaWJ1dGVzIGNvbW1vbiB0byA8Y29kZT50ZDwvY29kZT4gYW5kIDxjb2RlPnRoPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI3Byb2Nlc3NpbmctbW9kZWwtMSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTIgPC9zcGFuPlByb2Nlc3NpbmcgbW9kZWw8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRhYnVsYXItZGF0YS5odG1sI2Zvcm1pbmctYS10YWJsZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTIuMSA8L3NwYW4+Rm9ybWluZyBhIHRhYmxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjaGVhZGVyLWFuZC1kYXRhLWNlbGwtc2VtYW50aWNzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuOS4xMi4yIDwvc3Bhbj5Gb3JtaW5nIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBkYXRhIGNlbGxzIGFuZCBoZWFkZXIgY2VsbHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGFidWxhci1kYXRhLmh0bWwjdGFibGUtc29ydGluZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTMgPC9zcGFuPlRhYmxlIHNvcnRpbmcgbW9kZWw8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0YWJ1bGFyLWRhdGEuaHRtbCNleGFtcGxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjkuMTQgPC9zcGFuPkV4YW1wbGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjZm9ybXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMCA8L3NwYW4+Rm9ybXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjaW50cm9kdWN0aW9uLTIiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjd3JpdGluZy1hLWZvcm0ncy11c2VyLWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuMSA8L3NwYW4+V3JpdGluZyBhIGZvcm0ncyB1c2VyIGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjaW1wbGVtZW50aW5nLXRoZS1zZXJ2ZXItc2lkZS1wcm9jZXNzaW5nLWZvci1hLWZvcm0iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xLjIgPC9zcGFuPkltcGxlbWVudGluZyB0aGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBmb3IgYSBmb3JtPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNjb25maWd1cmluZy1hLWZvcm0tdG8tY29tbXVuaWNhdGUtd2l0aC1hLXNlcnZlciI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuMyA8L3NwYW4+Q29uZmlndXJpbmcgYSBmb3JtIHRvIGNvbW11bmljYXRlIHdpdGggYSBzZXJ2ZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJmb3Jtcy5odG1sI2NsaWVudC1zaWRlLWZvcm0tdmFsaWRhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuNCA8L3NwYW4+Q2xpZW50LXNpZGUgZm9ybSB2YWxpZGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNlbmFibGluZy1jbGllbnQtc2lkZS1hdXRvbWF0aWMtZmlsbGluZy1vZi1mb3JtLWNvbnRyb2xzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMS41IDwvc3Bhbj5FbmFibGluZyBjbGllbnQtc2lkZSBhdXRvbWF0aWMgZmlsbGluZyBvZiBmb3JtIGNvbnRyb2xzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNpbXByb3ZpbmctdGhlLXVzZXItZXhwZXJpZW5jZS1vbi1tb2JpbGUtZGV2aWNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEuNiA8L3NwYW4+SW1wcm92aW5nIHRoZSB1c2VyIGV4cGVyaWVuY2Ugb24gbW9iaWxlIGRldmljZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJmb3Jtcy5odG1sI3RoZS1kaWZmZXJlbmNlLWJldHdlZW4tdGhlLWZpZWxkLXR5cGUsLXRoZS1hdXRvZmlsbC1maWVsZC1uYW1lLC1hbmQtdGhlLWlucHV0LW1vZGFsaXR5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMS43IDwvc3Bhbj5UaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBmaWVsZCB0eXBlLCB0aGUgYXV0b2ZpbGwgZmllbGQgbmFtZSwgYW5kIHRoZSBpbnB1dCBtb2RhbGl0eTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjaW5wdXQtYXV0aG9yLW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMS44IDwvc3Bhbj5EYXRlLCB0aW1lLCBhbmQgbnVtYmVyIGZvcm1hdHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCNjYXRlZ29yaWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMiA8L3NwYW4+Q2F0ZWdvcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImZvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjMgPC9zcGFuPlRoZSA8Y29kZT5mb3JtPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZm9ybXMuaHRtbCN0aGUtbGFiZWwtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjQgPC9zcGFuPlRoZSA8Y29kZT5sYWJlbDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1pbnB1dC1lbGVtZW50Lmh0bWwjdGhlLWlucHV0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41IDwvc3Bhbj5UaGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xIDwvc3Bhbj5TdGF0ZXMgb2YgdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LXR5cGUiPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI2hpZGRlbi1zdGF0ZS0odHlwZT1oaWRkZW4pIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjEgPC9zcGFuPkhpZGRlbiBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1oaWRkZW48L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN0ZXh0LSh0eXBlPXRleHQpLXN0YXRlLWFuZC1zZWFyY2gtc3RhdGUtKHR5cGU9c2VhcmNoKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4yIDwvc3Bhbj5UZXh0ICg8Y29kZSB0aXRsZT0iIj50eXBlPXRleHQ8L2NvZGU+KSBzdGF0ZSBhbmQgU2VhcmNoIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXNlYXJjaDwvY29kZT4pPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI3RlbGVwaG9uZS1zdGF0ZS0odHlwZT10ZWwpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjMgPC9zcGFuPlRlbGVwaG9uZSBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT10ZWw8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN1cmwtc3RhdGUtKHR5cGU9dXJsKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS40IDwvc3Bhbj5VUkwgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9dXJsPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjZS1tYWlsLXN0YXRlLSh0eXBlPWVtYWlsKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS41IDwvc3Bhbj5FLW1haWwgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9ZW1haWw8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNwYXNzd29yZC1zdGF0ZS0odHlwZT1wYXNzd29yZCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuNiA8L3NwYW4+UGFzc3dvcmQgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9cGFzc3dvcmQ8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNkYXRlLWFuZC10aW1lLXN0YXRlLSh0eXBlPWRhdGV0aW1lKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS43IDwvc3Bhbj5EYXRlIGFuZCBUaW1lIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWRhdGV0aW1lPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjZGF0ZS1zdGF0ZS0odHlwZT1kYXRlKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS44IDwvc3Bhbj5EYXRlIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWRhdGU8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNtb250aC1zdGF0ZS0odHlwZT1tb250aCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuOSA8L3NwYW4+TW9udGggc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9bW9udGg8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN3ZWVrLXN0YXRlLSh0eXBlPXdlZWspIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjEwIDwvc3Bhbj5XZWVrIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXdlZWs8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCN0aW1lLXN0YXRlLSh0eXBlPXRpbWUpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjExIDwvc3Bhbj5UaW1lIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXRpbWU8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNsb2NhbC1kYXRlLWFuZC10aW1lLXN0YXRlLSh0eXBlPWRhdGV0aW1lLWxvY2FsKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4xMiA8L3NwYW4+TG9jYWwgRGF0ZSBhbmQgVGltZSBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1kYXRldGltZS1sb2NhbDwvY29kZT4pPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI251bWJlci1zdGF0ZS0odHlwZT1udW1iZXIpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjEzIDwvc3Bhbj5OdW1iZXIgc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9bnVtYmVyPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjcmFuZ2Utc3RhdGUtKHR5cGU9cmFuZ2UpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4xLjE0IDwvc3Bhbj5SYW5nZSBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1yYW5nZTwvY29kZT4pPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZS5odG1sI2NvbG9yLXN0YXRlLSh0eXBlPWNvbG9yKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4xNSA8L3NwYW4+Q29sb3Igc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9Y29sb3I8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNjaGVja2JveC1zdGF0ZS0odHlwZT1jaGVja2JveCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMTYgPC9zcGFuPkNoZWNrYm94IHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWNoZWNrYm94PC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjcmFkaW8tYnV0dG9uLXN0YXRlLSh0eXBlPXJhZGlvKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4xNyA8L3NwYW4+UmFkaW8gQnV0dG9uIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXJhZGlvPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjZmlsZS11cGxvYWQtc3RhdGUtKHR5cGU9ZmlsZSkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMTggPC9zcGFuPkZpbGUgVXBsb2FkIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWZpbGU8L2NvZGU+KTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0YXRlcy1vZi10aGUtdHlwZS1hdHRyaWJ1dGUuaHRtbCNzdWJtaXQtYnV0dG9uLXN0YXRlLSh0eXBlPXN1Ym1pdCkiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMTkgPC9zcGFuPlN1Ym1pdCBCdXR0b24gc3RhdGUgKDxjb2RlIHRpdGxlPSIiPnR5cGU9c3VibWl0PC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjaW1hZ2UtYnV0dG9uLXN0YXRlLSh0eXBlPWltYWdlKSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4yMCA8L3NwYW4+SW1hZ2UgQnV0dG9uIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPWltYWdlPC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjcmVzZXQtYnV0dG9uLXN0YXRlLSh0eXBlPXJlc2V0KSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMS4yMSA8L3NwYW4+UmVzZXQgQnV0dG9uIHN0YXRlICg8Y29kZSB0aXRsZT0iIj50eXBlPXJlc2V0PC9jb2RlPik8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjYnV0dG9uLXN0YXRlLSh0eXBlPWJ1dHRvbikiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjEuMjIgPC9zcGFuPkJ1dHRvbiBzdGF0ZSAoPGNvZGUgdGl0bGU9IiI+dHlwZT1idXR0b248L2NvZGU+KTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRlLmh0bWwjaW5wdXQtaW1wbC1ub3RlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMiA8L3NwYW4+SW1wbGVtZW50aW9uIG5vdGVzIHJlZ2FyZGluZyBsb2NhbGl6YXRpb24gb2YgZm9ybSBjb250cm9sczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1pbnB1dC1lbGVtZW50LWF0dHJpYnV0ZXMuaHRtbCNjb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4zIDwvc3Bhbj5Db21tb24gPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQgYXR0cmlidXRlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1tYXhsZW5ndGgtYW5kLW1pbmxlbmd0aC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4zLjEgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1pbnB1dC1tYXhsZW5ndGgiPm1heGxlbmd0aDwvY29kZT4gYW5kIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LW1pbmxlbmd0aCI+bWlubGVuZ3RoPC9jb2RlPiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1zaXplLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy4yIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtc2l6ZSI+c2l6ZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1yZWFkb25seS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuMyA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LXJlYWRvbmx5Ij5yZWFkb25seTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1yZXF1aXJlZC1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuNCA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LXJlcXVpcmVkIj5yZXF1aXJlZDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1tdWx0aXBsZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuNSA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LW11bHRpcGxlIj5tdWx0aXBsZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1wYXR0ZXJuLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy42IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtcGF0dGVybiI+cGF0dGVybjwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1taW4tYW5kLW1heC1hdHRyaWJ1dGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS4zLjcgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1pbnB1dC1taW4iPm1pbjwvY29kZT4gYW5kIDxjb2RlIHRpdGxlPSJhdHRyLWlucHV0LW1heCI+bWF4PC9jb2RlPiBhdHRyaWJ1dGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1zdGVwLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy44IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtc3RlcCI+c3RlcDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1saXN0LWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuMy45IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImF0dHItaW5wdXQtbGlzdCI+bGlzdDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcy5odG1sI3RoZS1wbGFjZWhvbGRlci1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC41LjMuMTAgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iYXR0ci1pbnB1dC1wbGFjZWhvbGRlciI+cGxhY2Vob2xkZXI8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwjY29tbW9uLWlucHV0LWVsZW1lbnQtYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjUuNCA8L3NwYW4+Q29tbW9uIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IEFQSXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzLmh0bWwjY29tbW9uLWlucHV0LWVsZW1lbnQtZXZlbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuNS41IDwvc3Bhbj5Db21tb24gZXZlbnQgYmVoYXZpb3JzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1idXR0b24tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjYgPC9zcGFuPlRoZSA8Y29kZT5idXR0b248L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCN0aGUtc2VsZWN0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC43IDwvc3Bhbj5UaGUgPGNvZGU+c2VsZWN0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjdGhlLWRhdGFsaXN0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC44IDwvc3Bhbj5UaGUgPGNvZGU+ZGF0YWxpc3Q8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCN0aGUtb3B0Z3JvdXAtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjkgPC9zcGFuPlRoZSA8Y29kZT5vcHRncm91cDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1vcHRpb24tZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjEwIDwvc3Bhbj5UaGUgPGNvZGU+b3B0aW9uPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xMSA8L3NwYW4+VGhlIDxjb2RlPnRleHRhcmVhPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjdGhlLWtleWdlbi1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTIgPC9zcGFuPlRoZSA8Y29kZT5rZXlnZW48L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCN0aGUtb3V0cHV0LWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xMyA8L3NwYW4+VGhlIDxjb2RlPm91dHB1dDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1wcm9ncmVzcy1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTQgPC9zcGFuPlRoZSA8Y29kZT5wcm9ncmVzczwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1tZXRlci1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTUgPC9zcGFuPlRoZSA8Y29kZT5tZXRlcjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1maWVsZHNldC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTYgPC9zcGFuPlRoZSA8Y29kZT5maWVsZHNldDwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1idXR0b24tZWxlbWVudC5odG1sI3RoZS1sZWdlbmQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE3IDwvc3Bhbj5UaGUgPGNvZGU+bGVnZW5kPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjZm9ybS1jb250cm9sLWluZnJhc3RydWN0dXJlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTggPC9zcGFuPkZvcm0gY29udHJvbCBpbmZyYXN0cnVjdHVyZTwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGhlLWJ1dHRvbi1lbGVtZW50Lmh0bWwjYS1mb3JtLWNvbnRyb2wncy12YWx1ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE4LjEgPC9zcGFuPkEgZm9ybSBjb250cm9sJ3MgdmFsdWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtYnV0dG9uLWVsZW1lbnQuaHRtbCNtdXRhYmlsaXR5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTguMiA8L3NwYW4+TXV0YWJpbGl0eTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2Fzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3JtcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE4LjMgPC9zcGFuPkFzc29jaWF0aW9uIG9mIGNvbnRyb2xzIGFuZCBmb3JtczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNhdHRyaWJ1dGVzLWNvbW1vbi10by1mb3JtLWNvbnRyb2xzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkgPC9zcGFuPkF0dHJpYnV0ZXMgY29tbW9uIHRvIGZvcm0gY29udHJvbHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI25hbWluZy1mb3JtLWNvbnRyb2xzOi10aGUtbmFtZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xOS4xIDwvc3Bhbj5OYW1pbmcgZm9ybSBjb250cm9sczogdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWZlLW5hbWUiPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI3N1Ym1pdHRpbmctZWxlbWVudC1kaXJlY3Rpb25hbGl0eTotdGhlLWRpcm5hbWUtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuMiA8L3NwYW4+U3VibWl0dGluZyBlbGVtZW50IGRpcmVjdGlvbmFsaXR5OiB0aGUgPGNvZGUgdGl0bGU9ImF0dHItZmUtZGlybmFtZSI+ZGlybmFtZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjbGltaXRpbmctdXNlci1pbnB1dC1sZW5ndGg6LXRoZS1tYXhsZW5ndGgtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuMyA8L3NwYW4+TGltaXRpbmcgdXNlciBpbnB1dCBsZW5ndGg6IHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1mZS1tYXhsZW5ndGgiPm1heGxlbmd0aDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjc2V0dGluZy1taW5pbXVtLWlucHV0LWxlbmd0aC1yZXF1aXJlbWVudHM6LXRoZS1taW5sZW5ndGgtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuNCA8L3NwYW4+U2V0dGluZyBtaW5pbXVtIGlucHV0IGxlbmd0aCByZXF1aXJlbWVudHM6IHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1mZS1taW5sZW5ndGgiPm1pbmxlbmd0aDwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjZW5hYmxpbmctYW5kLWRpc2FibGluZy1mb3JtLWNvbnRyb2xzOi10aGUtZGlzYWJsZWQtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuNSA8L3NwYW4+RW5hYmxpbmcgYW5kIGRpc2FibGluZyBmb3JtIGNvbnRyb2xzOiB0aGUgPGNvZGUgdGl0bGU9ImF0dHItZmUtZGlzYWJsZWQiPmRpc2FibGVkPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNmb3JtLXN1Ym1pc3Npb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjE5LjYgPC9zcGFuPkZvcm0gc3VibWlzc2lvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2F1dG9mb2N1c2luZy1hLWZvcm0tY29udHJvbDotdGhlLWF1dG9mb2N1cy1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xOS43IDwvc3Bhbj5BdXRvZm9jdXNpbmcgYSBmb3JtIGNvbnRyb2w6IHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1mZS1hdXRvZm9jdXMiPmF1dG9mb2N1czwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjaW5wdXQtbW9kYWxpdGllczotdGhlLWlucHV0bW9kZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4xOS44IDwvc3Bhbj5JbnB1dCBtb2RhbGl0aWVzOiB0aGUgPGNvZGUgdGl0bGU9ImF0dHItZmUtaW5wdXRtb2RlIj5pbnB1dG1vZGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2F1dG9maWxsaW5nLWZvcm0tY29udHJvbHM6LXRoZS1hdXRvY29tcGxldGUtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMTkuOSA8L3NwYW4+QXV0b2ZpbGxpbmcgZm9ybSBjb250cm9sczogdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWZlLWF1dG9jb21wbGV0ZSI+YXV0b2NvbXBsZXRlPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjdGV4dEZpZWxkU2VsZWN0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjAgPC9zcGFuPkFQSXMgZm9yIHRoZSB0ZXh0IGZpZWxkIHNlbGVjdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNjb25zdHJhaW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIxIDwvc3Bhbj5Db25zdHJhaW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjZGVmaW5pdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4yMS4xIDwvc3Bhbj5EZWZpbml0aW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2NvbnN0cmFpbnQtdmFsaWRhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIxLjIgPC9zcGFuPkNvbnN0cmFpbnQgdmFsaWRhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI3RoZS1jb25zdHJhaW50LXZhbGlkYXRpb24tYXBpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjEuMyA8L3NwYW4+VGhlIGNvbnN0cmFpbnQgdmFsaWRhdGlvbiBBUEk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNzZWN1cml0eS1mb3JtcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIxLjQgPC9zcGFuPlNlY3VyaXR5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2Zvcm0tc3VibWlzc2lvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyIDwvc3Bhbj5Gb3JtIHN1Ym1pc3Npb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2ludHJvZHVjdGlvbi0zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjaW1wbGljaXQtc3VibWlzc2lvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyLjIgPC9zcGFuPkltcGxpY2l0IHN1Ym1pc3Npb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNmb3JtLXN1Ym1pc3Npb24tYWxnb3JpdGhtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuMyA8L3NwYW4+Rm9ybSBzdWJtaXNzaW9uIGFsZ29yaXRobTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI2NvbnN0cnVjdGluZy1mb3JtLWRhdGEtc2V0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuNCA8L3NwYW4+Q29uc3RydWN0aW5nIHRoZSBmb3JtIGRhdGEgc2V0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjc2VsZWN0aW5nLWEtZm9ybS1zdWJtaXNzaW9uLWVuY29kaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuNSA8L3NwYW4+U2VsZWN0aW5nIGEgZm9ybSBzdWJtaXNzaW9uIGVuY29kaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjdXJsLWVuY29kZWQtZm9ybS1kYXRhIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTAuMjIuNiA8L3NwYW4+VVJMLWVuY29kZWQgZm9ybSBkYXRhPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZvcm1zLmh0bWwjbXVsdGlwYXJ0LWZvcm0tZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyLjcgPC9zcGFuPk11bHRpcGFydCBmb3JtIGRhdGE8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhc3NvY2lhdGlvbi1vZi1jb250cm9scy1hbmQtZm9ybXMuaHRtbCNwbGFpbi10ZXh0LWZvcm0tZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEwLjIyLjggPC9zcGFuPlBsYWluIHRleHQgZm9ybSBkYXRhPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImFzc29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3Jtcy5odG1sI3Jlc2V0dGluZy1hLWZvcm0iPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMC4yMyA8L3NwYW4+UmVzZXR0aW5nIGEgZm9ybTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpbnRlcmFjdGl2ZS1lbGVtZW50cy5odG1sI2ludGVyYWN0aXZlLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEgPC9zcGFuPkludGVyYWN0aXZlIGVsZW1lbnRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJpbnRlcmFjdGl2ZS1lbGVtZW50cy5odG1sI3RoZS1kZXRhaWxzLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS4xIDwvc3Bhbj5UaGUgPGNvZGU+ZGV0YWlsczwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyYWN0aXZlLWVsZW1lbnRzLmh0bWwjdGhlLXN1bW1hcnktZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjIgPC9zcGFuPlRoZSA8Y29kZT5zdW1tYXJ5PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCN0aGUtbWVudS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuMyA8L3NwYW4+VGhlIDxjb2RlPm1lbnU8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJpbnRlcmFjdGl2ZS1lbGVtZW50cy5odG1sI3RoZS1tZW51aXRlbS1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNCA8L3NwYW4+VGhlIDxjb2RlPm1lbnVpdGVtPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCNjb250ZXh0LW1lbnVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNSA8L3NwYW4+Q29udGV4dCBtZW51czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCNkZWNsYXJpbmctYS1jb250ZXh0LW1lbnUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS41LjEgPC9zcGFuPkRlY2xhcmluZyBhIGNvbnRleHQgbWVudTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImludGVyYWN0aXZlLWVsZW1lbnRzLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC0yIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNS4yIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaW50ZXJhY3RpdmUtZWxlbWVudHMuaHRtbCN0aGUtcmVsYXRlZGV2ZW50LWludGVyZmFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS41LjMgPC9zcGFuPlRoZSA8Y29kZT5SZWxhdGVkRXZlbnQ8L2NvZGU+IGludGVyZmFjZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbWFuZHMuaHRtbCNjb21tYW5kcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYgPC9zcGFuPkNvbW1hbmRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI2ZhY2V0cy0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNi4xIDwvc3Bhbj5GYWNldHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1hLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuMiA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlPmE8L2NvZGU+IGVsZW1lbnQgdG8gZGVmaW5lIGEgY29tbWFuZDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWJ1dHRvbi1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjMgPC9zcGFuPlVzaW5nIHRoZSA8Y29kZT5idXR0b248L2NvZGU+IGVsZW1lbnQgdG8gZGVmaW5lIGEgY29tbWFuZDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWlucHV0LWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuNCA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1vcHRpb24tZWxlbWVudC10by1kZWZpbmUtYS1jb21tYW5kIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTEuNi41IDwvc3Bhbj5Vc2luZyB0aGUgPGNvZGU+b3B0aW9uPC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1tZW51aXRlbS1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjYgPC9zcGFuPlVzaW5nIHRoZSA8Y29kZT5tZW51aXRlbTwvY29kZT4gZWxlbWVudCB0byBkZWZpbmUgYQorY29tbWFuZDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWNvbW1hbmQtYXR0cmlidXRlLW9uLW1lbnVpdGVtLWVsZW1lbnRzLXRvLWRlZmluZS1hLWNvbW1hbmQtaW5kaXJlY3RseSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuNyA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlIHRpdGxlPSJhdHRyLW1lbnVpdGVtLWNvbW1hbmQiPmNvbW1hbmQ8L2NvZGU+IGF0dHJpYnV0ZSBvbiA8Y29kZT5tZW51aXRlbTwvY29kZT4gZWxlbWVudHMgdG8gZGVmaW5lCithIGNvbW1hbmQgaW5kaXJlY3RseTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjdXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtb24tYS1sYWJlbC1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjggPC9zcGFuPlVzaW5nIHRoZSA8Y29kZSB0aXRsZT0iYXR0ci1hY2Nlc3NrZXkiPmFjY2Vzc2tleTwvY29kZT4gYXR0cmlidXRlCitvbiBhIDxjb2RlPmxhYmVsPC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1hY2Nlc3NrZXktYXR0cmlidXRlLW9uLWEtbGVnZW5kLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjYuOSA8L3NwYW4+VXNpbmcgdGhlIDxjb2RlIHRpdGxlPSJhdHRyLWFjY2Vzc2tleSI+YWNjZXNza2V5PC9jb2RlPiBhdHRyaWJ1dGUKK29uIGEgPGNvZGU+bGVnZW5kPC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSBhIGNvbW1hbmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3VzaW5nLXRoZS1hY2Nlc3NrZXktYXR0cmlidXRlLXRvLWRlZmluZS1hLWNvbW1hbmQtb24tb3RoZXItZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMS42LjEwIDwvc3Bhbj5Vc2luZyB0aGUgPGNvZGUgdGl0bGU9ImF0dHItYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L2NvZGU+CithdHRyaWJ1dGUgdG8gZGVmaW5lIGEgY29tbWFuZCBvbiBvdGhlciBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tYW5kcy5odG1sI3RoZS1kaWFsb2ctZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjcgPC9zcGFuPlRoZSA8Y29kZT5kaWFsb2c8L2NvZGU+IGVsZW1lbnQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1hbmRzLmh0bWwjYW5jaG9yLXBvaW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjExLjcuMSA8L3NwYW4+QW5jaG9yIHBvaW50czwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCNzY3JpcHRpbmctMSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyIDwvc3Bhbj5TY3JpcHRpbmc8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InNjcmlwdGluZy0xLmh0bWwjdGhlLXNjcmlwdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMSA8L3NwYW4+VGhlIDxjb2RlPnNjcmlwdDwvY29kZT4gZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCNzY3JpcHRpbmdMYW5ndWFnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi4xLjEgPC9zcGFuPlNjcmlwdGluZyBsYW5ndWFnZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzY3JpcHRpbmctMS5odG1sI3Jlc3RyaWN0aW9ucy1mb3ItY29udGVudHMtb2Ytc2NyaXB0LWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMS4yIDwvc3Bhbj5SZXN0cmljdGlvbnMgZm9yIGNvbnRlbnRzIG9mIDxjb2RlPnNjcmlwdDwvY29kZT4gZWxlbWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzY3JpcHRpbmctMS5odG1sI2lubGluZS1kb2N1bWVudGF0aW9uLWZvci1leHRlcm5hbC1zY3JpcHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMS4zIDwvc3Bhbj5JbmxpbmUgZG9jdW1lbnRhdGlvbiBmb3IgZXh0ZXJuYWwgc2NyaXB0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNjcmlwdGluZy0xLmh0bWwjc2NyaXB0VGFnWFNMVCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjEuNCA8L3NwYW4+SW50ZXJhY3Rpb24gb2YgPGNvZGU+c2NyaXB0PC9jb2RlPiBlbGVtZW50cyBhbmQgWFNMVDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzY3JpcHRpbmctMS5odG1sI3RoZS1ub3NjcmlwdC1lbGVtZW50Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMiA8L3NwYW4+VGhlIDxjb2RlPm5vc2NyaXB0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCN0aGUtdGVtcGxhdGUtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjMgPC9zcGFuPlRoZSA8Y29kZT50ZW1wbGF0ZTwvY29kZT4gZWxlbWVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2NyaXB0aW5nLTEuaHRtbCN0ZW1wbGF0ZS1YU0xULVhQYXRoIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuMy4xIDwvc3Bhbj5JbnRlcmFjdGlvbiBvZiA8Y29kZT50ZW1wbGF0ZTwvY29kZT4gZWxlbWVudHMgd2l0aCBYU0xUIGFuZCBYUGF0aDwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCN0aGUtY2FudmFzLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40IDwvc3Bhbj5UaGUgPGNvZGU+Y2FudmFzPC9jb2RlPiBlbGVtZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNwcm94eWluZy1jYW52YXNlcy10by13b3JrZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4xIDwvc3Bhbj5Qcm94eWluZyBjYW52YXNlcyB0byB3b3JrZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjMmRjb250ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yIDwvc3Bhbj5UaGUgMkQgcmVuZGVyaW5nIGNvbnRleHQ8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2ltcGxlbWVudGF0aW9uLW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjEgPC9zcGFuPkltcGxlbWVudGF0aW9uIG5vdGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjdGhlLWNhbnZhcy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4yIDwvc3Bhbj5UaGUgY2FudmFzIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjZHJhd2luZ3N0eWxlLW9iamVjdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMyA8L3NwYW4+PGNvZGU+RHJhd2luZ1N0eWxlPC9jb2RlPiBvYmplY3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjbGluZS1zdHlsZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuNCA8L3NwYW4+TGluZSBzdHlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCN0ZXh0LXN0eWxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi41IDwvc3Bhbj5UZXh0IHN0eWxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2J1aWxkaW5nLXBhdGhzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjYgPC9zcGFuPkJ1aWxkaW5nIHBhdGhzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjcGF0aC1vYmplY3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjcgPC9zcGFuPjxjb2RlPlBhdGg8L2NvZGU+IG9iamVjdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCN0cmFuc2Zvcm1hdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuOCA8L3NwYW4+VHJhbnNmb3JtYXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjaW1hZ2Utc291cmNlcy1mb3ItMmQtcmVuZGVyaW5nLWNvbnRleHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjkgPC9zcGFuPkltYWdlIHNvdXJjZXMgZm9yIDJEIHJlbmRlcmluZyBjb250ZXh0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMTAgPC9zcGFuPkZpbGwgYW5kIHN0cm9rZSBzdHlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNkcmF3aW5nLXJlY3RhbmdsZXMtdG8tdGhlLWJpdG1hcCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4xMSA8L3NwYW4+RHJhd2luZyByZWN0YW5nbGVzIHRvIHRoZSBiaXRtYXA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNkcmF3aW5nLXRleHQtdG8tdGhlLWJpdG1hcCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4xMiA8L3NwYW4+RHJhd2luZyB0ZXh0IHRvIHRoZSBiaXRtYXA8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNkcmF3aW5nLXBhdGhzLXRvLXRoZS1jYW52YXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMTMgPC9zcGFuPkRyYXdpbmcgcGF0aHMgdG8gdGhlIGNhbnZhczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2RyYXdpbmctaW1hZ2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE0IDwvc3Bhbj5EcmF3aW5nIGltYWdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2hpdC1yZWdpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE1IDwvc3Bhbj5IaXQgcmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI3BpeGVsLW1hbmlwdWxhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4xNiA8L3NwYW4+UGl4ZWwgbWFuaXB1bGF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjY29tcG9zaXRpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMTcgPC9zcGFuPkNvbXBvc2l0aW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjaW1hZ2Utc21vb3RoaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE4IDwvc3Bhbj5JbWFnZSBzbW9vdGhpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtY2FudmFzLWVsZW1lbnQuaHRtbCNzaGFkb3dzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjE5IDwvc3Bhbj5TaGFkb3dzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjZHJhd2luZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMi4yMCA8L3NwYW4+RHJhd2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2Jlc3QtcHJhY3RpY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTIuNC4yLjIxIDwvc3Bhbj5CZXN0IHByYWN0aWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2V4YW1wbGVzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjIuMjIgPC9zcGFuPkV4YW1wbGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1jYW52YXMtZWxlbWVudC5odG1sI2NvbG9yLXNwYWNlcy1hbmQtY29sb3ItY29ycmVjdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEyLjQuMyA8L3NwYW4+Q29sb3Igc3BhY2VzIGFuZCBjb2xvciBjb3JyZWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjc2VyaWFsaXppbmctYml0bWFwcy10by1hLWZpbGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjQgPC9zcGFuPlNlcmlhbGl6aW5nIGJpdG1hcHMgdG8gYSBmaWxlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWNhbnZhcy1lbGVtZW50Lmh0bWwjc2VjdXJpdHktd2l0aC1jYW52YXMtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMi40LjUgPC9zcGFuPlNlY3VyaXR5IHdpdGggPGNvZGU+Y2FudmFzPC9jb2RlPiBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlkaW9tcy5odG1sI2NvbW1vbi1pZGlvbXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMyA8L3NwYW4+Q29tbW9uIGlkaW9tcyB3aXRob3V0IGRlZGljYXRlZCBlbGVtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iY29tbW9uLWlkaW9tcy5odG1sI3RoZS1tYWluLXBhcnQtb2YtdGhlLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NC4xMy4xIDwvc3Bhbj5UaGUgbWFpbiBwYXJ0IG9mIHRoZSBjb250ZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbW9uLWlkaW9tcy5odG1sI3JlbC11cCI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEzLjIgPC9zcGFuPkJyZWFkIGNydW1iIG5hdmlnYXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taWRpb21zLmh0bWwjdGFnLWNsb3VkcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEzLjMgPC9zcGFuPlRhZyBjbG91ZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taWRpb21zLmh0bWwjY29udmVyc2F0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjEzLjQgPC9zcGFuPkNvbnZlcnNhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tb24taWRpb21zLmh0bWwjZm9vdG5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjQuMTMuNSA8L3NwYW4+Rm9vdG5vdGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1vbi1pZGlvbXMuaHRtbCNkaXNhYmxlZC1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE0IDwvc3Bhbj5EaXNhYmxlZCBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlbGVjdG9ycy5odG1sI3NlbGVjdG9ycyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE1IDwvc3Bhbj5NYXRjaGluZyBIVE1MIGVsZW1lbnRzIHVzaW5nIHNlbGVjdG9yczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VsZWN0b3JzLmh0bWwjY2FzZS1zZW5zaXRpdml0eSI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE1LjEgPC9zcGFuPkNhc2Utc2Vuc2l0aXZpdHk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWxlY3RvcnMuaHRtbCNwc2V1ZG8tY2xhc3NlcyI+PHNwYW4gY2xhc3M9InNlY25vIj40LjE1LjIgPC9zcGFuPlBzZXVkby1jbGFzc2VzPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNtaWNyb2RhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+NSA8L3NwYW4+TWljcm9kYXRhPC9hPgorPG9sPjxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNpbnRyb2R1Y3Rpb24tNCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjb3ZlcnZpZXciPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4xLjEgPC9zcGFuPk92ZXJ2aWV3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjdGhlLWJhc2ljLXN5bnRheCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjEuMiA8L3NwYW4+VGhlIGJhc2ljIHN5bnRheDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI3R5cGVkLWl0ZW1zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuMS4zIDwvc3Bhbj5UeXBlZCBpdGVtczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2dsb2JhbC1pZGVudGlmaWVycy1mb3ItaXRlbXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4xLjQgPC9zcGFuPkdsb2JhbCBpZGVudGlmaWVycyBmb3IgaXRlbXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNzZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVsYXJpZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4xLjUgPC9zcGFuPlNlbGVjdGluZyBuYW1lcyB3aGVuIGRlZmluaW5nIHZvY2FidWxhcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI3VzaW5nLXRoZS1taWNyb2RhdGEtZG9tLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj41LjEuNiA8L3NwYW4+VXNpbmcgdGhlIG1pY3JvZGF0YSBET00gQVBJPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2VuY29kaW5nLW1pY3JvZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj41LjIgPC9zcGFuPkVuY29kaW5nIG1pY3JvZGF0YTwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjdGhlLW1pY3JvZGF0YS1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjIuMSA8L3NwYW4+VGhlIG1pY3JvZGF0YSBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2l0ZW1zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuMi4yIDwvc3Bhbj5JdGVtczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI25hbWVzOi10aGUtaXRlbXByb3AtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuMi4zIDwvc3Bhbj5OYW1lczogdGhlIDxjb2RlPml0ZW1wcm9wPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCN2YWx1ZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4yLjQgPC9zcGFuPlZhbHVlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2Fzc29jaWF0aW5nLW5hbWVzLXdpdGgtaXRlbXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4yLjUgPC9zcGFuPkFzc29jaWF0aW5nIG5hbWVzIHdpdGggaXRlbXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNtaWNyb2RhdGEtYW5kLW90aGVyLW5hbWVzcGFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS4yLjYgPC9zcGFuPk1pY3JvZGF0YSBhbmQgb3RoZXIgbmFtZXNwYWNlczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNtaWNyb2RhdGEtZG9tLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj41LjMgPC9zcGFuPk1pY3JvZGF0YSBET00gQVBJPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjbWR2b2NhYnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40IDwvc3Bhbj5TYW1wbGUgbWljcm9kYXRhIHZvY2FidWxhcmllczwvYT4KKzxvbD48bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjdmNhcmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40LjEgPC9zcGFuPnZDYXJkPC9hPgorPG9sPjxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNjb252ZXJzaW9uLXRvLXZjYXJkIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNC4xLjEgPC9zcGFuPkNvbnZlcnNpb24gdG8gdkNhcmQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNleGFtcGxlcy0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNC4xLjIgPC9zcGFuPkV4YW1wbGVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI3ZldmVudCI+PHNwYW4gY2xhc3M9InNlY25vIj41LjQuMiA8L3NwYW4+dkV2ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJtaWNyb2RhdGEuaHRtbCNjb252ZXJzaW9uLXRvLWljYWxlbmRhciI+PHNwYW4gY2xhc3M9InNlY25vIj41LjQuMi4xIDwvc3Bhbj5Db252ZXJzaW9uIHRvIGlDYWxlbmRhcjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2V4YW1wbGVzLTIiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40LjIuMiA8L3NwYW4+RXhhbXBsZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ibWljcm9kYXRhLmh0bWwjbGljZW5zaW5nLXdvcmtzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNC4zIDwvc3Bhbj5MaWNlbnNpbmcgd29ya3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2V4YW1wbGVzLTMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NS40LjMuMSA8L3NwYW4+RXhhbXBsZXM8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2NvbnZlcnRpbmctaHRtbC10by1vdGhlci1mb3JtYXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjUuNSA8L3NwYW4+Q29udmVydGluZyBIVE1MIHRvIG90aGVyIGZvcm1hdHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im1pY3JvZGF0YS5odG1sI2pzb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+NS41LjEgPC9zcGFuPkpTT048L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjYnJvd3NlcnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+NiA8L3NwYW4+TG9hZGluZyBXZWIgcGFnZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjd2luZG93cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEgPC9zcGFuPkJyb3dzaW5nIGNvbnRleHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI25lc3RlZC1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuMSA8L3NwYW4+TmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI25hdmlnYXRpbmctbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzLWluLXRoZS1kb20iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjEuMSA8L3NwYW4+TmF2aWdhdGluZyBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgaW4gdGhlIERPTTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuMiA8L3NwYW4+QXV4aWxpYXJ5IGJyb3dzaW5nIGNvbnRleHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI25hdmlnYXRpbmctYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzLWluLXRoZS1kb20iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjIuMSA8L3NwYW4+TmF2aWdhdGluZyBhdXhpbGlhcnkgYnJvd3NpbmcgY29udGV4dHMgaW4gdGhlIERPTTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI3NlY29uZGFyeS1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuMyA8L3NwYW4+U2Vjb25kYXJ5IGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnJvd3NlcnMuaHRtbCNzZWN1cml0eS1uYXYiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjQgPC9zcGFuPlNlY3VyaXR5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnJvd3NlcnMuaHRtbCNncm91cGluZ3Mtb2YtYnJvd3NpbmctY29udGV4dHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4xLjUgPC9zcGFuPkdyb3VwaW5ncyBvZiBicm93c2luZyBjb250ZXh0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjYnJvd3NpbmctY29udGV4dC1uYW1lcyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjEuNiA8L3NwYW4+QnJvd3NpbmcgY29udGV4dCBuYW1lczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI3RoZS13aW5kb3ctb2JqZWN0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuMiA8L3NwYW4+VGhlIDxjb2RlPldpbmRvdzwvY29kZT4gb2JqZWN0PC9hPgorPG9sPjxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI3NlY3VyaXR5LXdpbmRvdyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjIuMSA8L3NwYW4+U2VjdXJpdHk8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjIgPC9zcGFuPkFQSXMgZm9yIGNyZWF0aW5nIGFuZCBuYXZpZ2F0aW5nIGJyb3dzaW5nIGNvbnRleHRzIGJ5IG5hbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2FjY2Vzc2luZy1vdGhlci1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjIuMyA8L3NwYW4+QWNjZXNzaW5nIG90aGVyIGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iYnJvd3NlcnMuaHRtbCNuYW1lZC1hY2Nlc3Mtb24tdGhlLXdpbmRvdy1vYmplY3QiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjQgPC9zcGFuPk5hbWVkIGFjY2VzcyBvbiB0aGUgPGNvZGU+V2luZG93PC9jb2RlPiBvYmplY3Q8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2dhcmJhZ2UtY29sbGVjdGlvbi1hbmQtYnJvd3NpbmctY29udGV4dHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjUgPC9zcGFuPkdhcmJhZ2UgY29sbGVjdGlvbiBhbmQgYnJvd3NpbmcgY29udGV4dHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2Nsb3NpbmctYnJvd3NpbmctY29udGV4dHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4yLjYgPC9zcGFuPkNsb3NpbmcgYnJvd3NpbmcgY29udGV4dHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJicm93c2Vycy5odG1sI2Jyb3dzZXItaW50ZXJmYWNlLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuMi43IDwvc3Bhbj5Ccm93c2VyIGludGVyZmFjZSBlbGVtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImJyb3dzZXJzLmh0bWwjdGhlLXdpbmRvd3Byb3h5LW9iamVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjIuOCA8L3NwYW4+VGhlIDxjb2RlPldpbmRvd1Byb3h5PC9jb2RlPiBvYmplY3Q8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ib3JpZ2luLTAuaHRtbCNvcmlnaW4tMCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjMgPC9zcGFuPk9yaWdpbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0ib3JpZ2luLTAuaHRtbCNyZWxheGluZy10aGUtc2FtZS1vcmlnaW4tcmVzdHJpY3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni4zLjEgPC9zcGFuPlJlbGF4aW5nIHRoZSBzYW1lLW9yaWdpbiByZXN0cmljdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJvcmlnaW4tMC5odG1sI3NhbmRib3hpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni40IDwvc3Bhbj5TYW5kYm94aW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI2hpc3RvcnkiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni41IDwvc3Bhbj5TZXNzaW9uIGhpc3RvcnkgYW5kIG5hdmlnYXRpb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCN0aGUtc2Vzc2lvbi1oaXN0b3J5LW9mLWJyb3dzaW5nLWNvbnRleHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS4xIDwvc3Bhbj5UaGUgc2Vzc2lvbiBoaXN0b3J5IG9mIGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3RoZS1oaXN0b3J5LWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjUuMiA8L3NwYW4+VGhlIDxjb2RlPkhpc3Rvcnk8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCN0aGUtbG9jYXRpb24taW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS4zIDwvc3Bhbj5UaGUgPGNvZGU+TG9jYXRpb248L2NvZGU+IGludGVyZmFjZTwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3NlY3VyaXR5LWxvY2F0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS4zLjEgPC9zcGFuPlNlY3VyaXR5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNoaXN0b3J5LW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNS40IDwvc3Bhbj5JbXBsZW1lbnRhdGlvbiBub3RlcyBmb3Igc2Vzc2lvbiBoaXN0b3J5PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNicm93c2luZy10aGUtd2ViIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNiA8L3NwYW4+QnJvd3NpbmcgdGhlIFdlYjwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuMSA8L3NwYW4+TmF2aWdhdGluZyBhY3Jvc3MgZG9jdW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3JlYWQtaHRtbCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuMiA8L3NwYW4+UGFnZSBsb2FkIHByb2Nlc3NpbmcgbW9kZWwgZm9yIEhUTUwgZmlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjcmVhZC14bWwiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjMgPC9zcGFuPlBhZ2UgbG9hZCBwcm9jZXNzaW5nIG1vZGVsIGZvciBYTUwgZmlsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjcmVhZC10ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi40IDwvc3Bhbj5QYWdlIGxvYWQgcHJvY2Vzc2luZyBtb2RlbCBmb3IgdGV4dCBmaWxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNyZWFkLW11bHRpcGFydC14LW1peGVkLXJlcGxhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjUgPC9zcGFuPlBhZ2UgbG9hZCBwcm9jZXNzaW5nIG1vZGVsIGZvciA8Y29kZT5tdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlPC9jb2RlPiByZXNvdXJjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjcmVhZC1tZWRpYSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuNiA8L3NwYW4+UGFnZSBsb2FkIHByb2Nlc3NpbmcgbW9kZWwgZm9yIG1lZGlhPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3JlYWQtcGx1Z2luIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi43IDwvc3Bhbj5QYWdlIGxvYWQgcHJvY2Vzc2luZyBtb2RlbCBmb3IgY29udGVudCB0aGF0IHVzZXMgcGx1Z2luczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNyZWFkLXVhLWlubGluZSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuOCA8L3NwYW4+UGFnZSBsb2FkIHByb2Nlc3NpbmcgbW9kZWwgZm9yIGlubGluZQorY29udGVudCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIERPTTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNzY3JvbGwtdG8tZnJhZ2lkIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi45IDwvc3Bhbj5OYXZpZ2F0aW5nIHRvIGEgZnJhZ21lbnQgaWRlbnRpZmllcjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNoaXN0b3J5LXRyYXZlcnNhbCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjYuMTAgPC9zcGFuPkhpc3RvcnkgdHJhdmVyc2FsPC9hPgorPG9sPjxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjdGhlLXBvcHN0YXRlZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMC4xIDwvc3Bhbj5UaGUgPGNvZGU+UG9wU3RhdGVFdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3RoZS1oYXNoY2hhbmdlZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMC4yIDwvc3Bhbj5UaGUgPGNvZGU+SGFzaENoYW5nZUV2ZW50PC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJoaXN0b3J5Lmh0bWwjdGhlLXBhZ2V0cmFuc2l0aW9uZXZlbnQtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMC4zIDwvc3Bhbj5UaGUgPGNvZGU+UGFnZVRyYW5zaXRpb25FdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCN1bmxvYWRpbmctZG9jdW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNi4xMSA8L3NwYW4+VW5sb2FkaW5nIGRvY3VtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaGlzdG9yeS5odG1sI3RoZS1iZWZvcmV1bmxvYWRldmVudC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjExLjEgPC9zcGFuPlRoZSA8Y29kZT5CZWZvcmVVbmxvYWRFdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Imhpc3RvcnkuaHRtbCNhYm9ydGluZy1hLWRvY3VtZW50LWxvYWQiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni42LjEyIDwvc3Bhbj5BYm9ydGluZyBhIGRvY3VtZW50IGxvYWQ8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI29mZmxpbmUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43IDwvc3Bhbj5PZmZsaW5lIFdlYiBhcHBsaWNhdGlvbnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNpbnRyb2R1Y3Rpb24tNSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjc3VwcG9ydGluZy1vZmZsaW5lLWNhY2hpbmctZm9yLWxlZ2FjeS1hcHBsaWNhdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjEuMSA8L3NwYW4+U3VwcG9ydGluZyBvZmZsaW5lIGNhY2hpbmcgZm9yIGxlZ2FjeSBhcHBsaWNhdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjYXBwY2FjaGVldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjEuMiA8L3NwYW4+RXZlbnQgc3VtbWFyeTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjYXBwY2FjaGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjIgPC9zcGFuPkFwcGxpY2F0aW9uIGNhY2hlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNtYW5pZmVzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjMgPC9zcGFuPlRoZSBjYWNoZSBtYW5pZmVzdCBzeW50YXg8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNzb21lLXNhbXBsZS1tYW5pZmVzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjMuMSA8L3NwYW4+U29tZSBzYW1wbGUgbWFuaWZlc3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI3dyaXRpbmctY2FjaGUtbWFuaWZlc3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNy4zLjIgPC9zcGFuPldyaXRpbmcgY2FjaGUgbWFuaWZlc3RzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI3BhcnNpbmctY2FjaGUtbWFuaWZlc3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNy4zLjMgPC9zcGFuPlBhcnNpbmcgY2FjaGUgbWFuaWZlc3RzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNkb3dubG9hZGluZy1vci11cGRhdGluZy1hbi1hcHBsaWNhdGlvbi1jYWNoZSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuNCA8L3NwYW4+RG93bmxvYWRpbmcgb3IgdXBkYXRpbmcgYW4gYXBwbGljYXRpb24gY2FjaGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvZmZsaW5lLmh0bWwjdGhlLWFwcGxpY2F0aW9uLWNhY2hlLXNlbGVjdGlvbi1hbGdvcml0aG0iPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjUgPC9zcGFuPlRoZSBhcHBsaWNhdGlvbiBjYWNoZSBzZWxlY3Rpb24gYWxnb3JpdGhtPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI2NoYW5nZXNUb05ldHdvcmtpbmdNb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuNiA8L3NwYW4+Q2hhbmdlcyB0byB0aGUgbmV0d29ya2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNleHBpcmluZy1hcHBsaWNhdGlvbi1jYWNoZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjcgPC9zcGFuPkV4cGlyaW5nIGFwcGxpY2F0aW9uIGNhY2hlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9mZmxpbmUuaHRtbCNkaXNrLXNwYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjYuNy44IDwvc3Bhbj5EaXNrIHNwYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI2FwcGxpY2F0aW9uLWNhY2hlLWFwaSI+PHNwYW4gY2xhc3M9InNlY25vIj42LjcuOSA8L3NwYW4+QXBwbGljYXRpb24gY2FjaGUgQVBJPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2ZmbGluZS5odG1sI2Jyb3dzZXItc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ni43LjEwIDwvc3Bhbj5Ccm93c2VyIHN0YXRlPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjd2ViYXBwYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj43IDwvc3Bhbj5XZWIgYXBwbGljYXRpb24gQVBJczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3NjcmlwdGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEgPC9zcGFuPlNjcmlwdGluZzwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2ludHJvZHVjdGlvbi02Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZW5hYmxpbmctYW5kLWRpc2FibGluZy1zY3JpcHRpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjIgPC9zcGFuPkVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgc2NyaXB0aW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3Byb2Nlc3NpbmctbW9kZWwtMyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMyA8L3NwYW4+UHJvY2Vzc2luZyBtb2RlbDwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2RlZmluaXRpb25zLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjMuMSA8L3NwYW4+RGVmaW5pdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjc2NyaXB0LXNldHRpbmdzLWZvci1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy4yIDwvc3Bhbj5TY3JpcHQgc2V0dGluZ3MgZm9yIGJyb3dzaW5nIGNvbnRleHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2NhbGxpbmctc2NyaXB0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy4zIDwvc3Bhbj5DYWxsaW5nIHNjcmlwdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjY3JlYXRpbmctc2NyaXB0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy40IDwvc3Bhbj5DcmVhdGluZyBzY3JpcHRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2tpbGxpbmctc2NyaXB0cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy41IDwvc3Bhbj5LaWxsaW5nIHNjcmlwdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjcnVudGltZS1zY3JpcHQtZXJyb3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS4zLjYgPC9zcGFuPlJ1bnRpbWUgc2NyaXB0IGVycm9yczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3J1bnRpbWUtc2NyaXB0LWVycm9ycy1pbi1kb2N1bWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjMuNi4xIDwvc3Bhbj5SdW50aW1lIHNjcmlwdCBlcnJvcnMgaW4gZG9jdW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3RoZS1lcnJvcmV2ZW50LWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuMy42LjIgPC9zcGFuPlRoZSA8Y29kZT5FcnJvckV2ZW50PC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudC1sb29wcyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNCA8L3NwYW4+RXZlbnQgbG9vcHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNkZWZpbml0aW9ucy0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS40LjEgPC9zcGFuPkRlZmluaXRpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI3Byb2Nlc3NpbmctbW9kZWwtNCI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNC4yIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2dlbmVyaWMtdGFzay1zb3VyY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS40LjMgPC9zcGFuPkdlbmVyaWMgdGFzayBzb3VyY2VzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny4xLjUgPC9zcGFuPkV2ZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2V2ZW50LWhhbmRsZXItYXR0cmlidXRlcyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNS4xIDwvc3Bhbj5FdmVudCBoYW5kbGVyczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudC1oYW5kbGVycy1vbi1lbGVtZW50cywtZG9jdW1lbnQtb2JqZWN0cywtYW5kLXdpbmRvdy1vYmplY3RzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS41LjIgPC9zcGFuPkV2ZW50IGhhbmRsZXJzIG9uIGVsZW1lbnRzLCA8Y29kZT5Eb2N1bWVudDwvY29kZT4gb2JqZWN0cywgYW5kIDxjb2RlPldpbmRvdzwvY29kZT4gb2JqZWN0czwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViYXBwYXBpcy5odG1sI2lkbC1kZWZpbml0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjEuNS4yLjEgPC9zcGFuPklETCBkZWZpbml0aW9uczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZXZlbnQtZmlyaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS41LjMgPC9zcGFuPkV2ZW50IGZpcmluZzwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYmFwcGFwaXMuaHRtbCNldmVudHMtYW5kLXRoZS13aW5kb3ctb2JqZWN0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMS41LjQgPC9zcGFuPkV2ZW50cyBhbmQgdGhlIDxjb2RlPldpbmRvdzwvY29kZT4gb2JqZWN0PC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjYXRvYiI+PHNwYW4gY2xhc3M9InNlY25vIj43LjIgPC9zcGFuPkJhc2U2NCB1dGlsaXR5IG1ldGhvZHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMyA8L3NwYW4+RHluYW1pYyBtYXJrdXAgaW5zZXJ0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjb3BlbmluZy10aGUtaW5wdXQtc3RyZWFtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMy4xIDwvc3Bhbj5PcGVuaW5nIHRoZSBpbnB1dCBzdHJlYW08L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjY2xvc2luZy10aGUtaW5wdXQtc3RyZWFtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMy4yIDwvc3Bhbj5DbG9zaW5nIHRoZSBpbnB1dCBzdHJlYW08L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZG9jdW1lbnQud3JpdGUoKSI+PHNwYW4gY2xhc3M9InNlY25vIj43LjMuMyA8L3NwYW4+PGNvZGUgdGl0bGU9ImRvbS1kb2N1bWVudC13cml0ZSI+ZG9jdW1lbnQud3JpdGUoKTwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJhcHBhcGlzLmh0bWwjZG9jdW1lbnQud3JpdGVsbigpIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuMy40IDwvc3Bhbj48Y29kZSB0aXRsZT0iZG9tLWRvY3VtZW50LXdyaXRlbG4iPmRvY3VtZW50LndyaXRlbG4oKTwvY29kZT48L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjdGltZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNCA8L3NwYW4+VGltZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjdXNlci1wcm9tcHRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNSA8L3NwYW4+VXNlciBwcm9tcHRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNzaW1wbGUtZGlhbG9ncyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjUuMSA8L3NwYW4+U2ltcGxlIGRpYWxvZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNwcmludGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjUuMiA8L3NwYW4+UHJpbnRpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNkaWFsb2dzLWltcGxlbWVudGVkLXVzaW5nLXNlcGFyYXRlLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj43LjUuMyA8L3NwYW4+RGlhbG9ncyBpbXBsZW1lbnRlZCB1c2luZyBzZXBhcmF0ZSBkb2N1bWVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny42IDwvc3Bhbj5TeXN0ZW0gc3RhdGUgYW5kIGNhcGFiaWxpdGllczwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjdGhlLW5hdmlnYXRvci1vYmplY3QiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny42LjEgPC9zcGFuPlRoZSA8Y29kZT5OYXZpZ2F0b3I8L2NvZGU+IG9iamVjdDwvYT4KKzxvbD48bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjY2xpZW50LWlkZW50aWZpY2F0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjEgPC9zcGFuPkNsaWVudCBpZGVudGlmaWNhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRpbWVycy5odG1sI2xhbmd1YWdlLXByZWZlcmVuY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjIgPC9zcGFuPkxhbmd1YWdlIHByZWZlcmVuY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGltZXJzLmh0bWwjY3VzdG9tLWhhbmRsZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjMgPC9zcGFuPkN1c3RvbSBzY2hlbWUgYW5kIGNvbnRlbnQgaGFuZGxlcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRpbWVycy5odG1sI3NlY3VyaXR5LWFuZC1wcml2YWN5Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjMuMSA8L3NwYW4+U2VjdXJpdHkgYW5kIHByaXZhY3k8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNzYW1wbGUtaGFuZGxlci1pbXBsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4xLjMuMiA8L3NwYW4+U2FtcGxlIHVzZXIgaW50ZXJmYWNlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRpbWVycy5odG1sI21hbnVhbGx5LXJlbGVhc2luZy10aGUtc3RvcmFnZS1tdXRleCI+PHNwYW4gY2xhc3M9InNlY25vIj43LjYuMS40IDwvc3Bhbj5NYW51YWxseSByZWxlYXNpbmcgdGhlIHN0b3JhZ2UgbXV0ZXg8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNwbHVnaW5zLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny42LjEuNSA8L3NwYW4+UGx1Z2luczwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCN0aGUtZXh0ZXJuYWwtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjcuNi4yIDwvc3Bhbj5UaGUgPGNvZGU+RXh0ZXJuYWw8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ0aW1lcnMuaHRtbCNpbWFnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+Ny43IDwvc3Bhbj5JbWFnZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VkaXRpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+OCA8L3NwYW4+VXNlciBpbnRlcmFjdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI3RoZS1oaWRkZW4tYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguMSA8L3NwYW4+VGhlIDxjb2RlPmhpZGRlbjwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2luZXJ0LXN1YnRyZWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguMiA8L3NwYW4+SW5lcnQgc3VidHJlZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCN0aGUtaW5lcnQtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguMi4xIDwvc3Bhbj5UaGUgPGNvZGU+aW5lcnQ8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjYWN0aXZhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj44LjMgPC9zcGFuPkFjdGl2YXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjZm9jdXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC40IDwvc3Bhbj5Gb2N1czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI3NlcXVlbnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj44LjQuMSA8L3NwYW4+U2VxdWVudGlhbCBmb2N1cyBuYXZpZ2F0aW9uIGFuZCB0aGUgPGNvZGUgdGl0bGU9ImF0dHItdGFiaW5kZXgiPnRhYmluZGV4PC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjZm9jdXMtbWFuYWdlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj44LjQuMiA8L3NwYW4+Rm9jdXMgbWFuYWdlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNkb2N1bWVudC1sZXZlbC1mb2N1cy1hcGlzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNC4zIDwvc3Bhbj5Eb2N1bWVudC1sZXZlbCBmb2N1cyBBUElzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VsZW1lbnQtbGV2ZWwtZm9jdXMtYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj44LjQuNCA8L3NwYW4+RWxlbWVudC1sZXZlbCBmb2N1cyBBUElzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNhc3NpZ25pbmcta2V5Ym9hcmQtc2hvcnRjdXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNSA8L3NwYW4+QXNzaWduaW5nIGtleWJvYXJkIHNob3J0Y3V0czwvYT4KKzxvbD48bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2ludHJvZHVjdGlvbi03Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNS4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwjdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC41LjIgPC9zcGFuPlRoZSA8Y29kZT5hY2Nlc3NrZXk8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNwcm9jZXNzaW5nLW1vZGVsLTUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC41LjMgPC9zcGFuPlByb2Nlc3NpbmcgbW9kZWw8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VkaXRpbmctMCI+PHNwYW4gY2xhc3M9InNlY25vIj44LjYgPC9zcGFuPkVkaXRpbmc8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNjb250ZW50ZWRpdGFibGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC42LjEgPC9zcGFuPk1ha2luZyBkb2N1bWVudCByZWdpb25zIGVkaXRhYmxlOiBUaGUgPGNvZGUgdGl0bGU9ImF0dHItY29udGVudGVkaXRhYmxlIj5jb250ZW50ZWRpdGFibGU8L2NvZGU+IGNvbnRlbnQgYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI21ha2luZy1lbnRpcmUtZG9jdW1lbnRzLWVkaXRhYmxlOi10aGUtZGVzaWdubW9kZS1pZGwtYXR0cmlidXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNi4yIDwvc3Bhbj5NYWtpbmcgZW50aXJlIGRvY3VtZW50cyBlZGl0YWJsZTogVGhlIDxjb2RlIHRpdGxlPSJkb20tZG9jdW1lbnQtZGVzaWduTW9kZSI+ZGVzaWduTW9kZTwvY29kZT4gSURMIGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCNiZXN0LXByYWN0aWNlcy1mb3ItaW4tcGFnZS1lZGl0b3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNi4zIDwvc3Bhbj5CZXN0IHByYWN0aWNlcyBmb3IgaW4tcGFnZSBlZGl0b3JzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI2VkaXRpbmctYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj44LjYuNCA8L3NwYW4+RWRpdGluZyBBUElzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sI3NwZWxsaW5nLWFuZC1ncmFtbWFyLWNoZWNraW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNi41IDwvc3Bhbj5TcGVsbGluZyBhbmQgZ3JhbW1hciBjaGVja2luZzwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCNkbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43IDwvc3Bhbj5EcmFnIGFuZCBkcm9wPC9hPgorPG9sPjxsaT48YSBocmVmPSJkbmQuaHRtbCNpbnRyb2R1Y3Rpb24tOCI+PHNwYW4gY2xhc3M9InNlY25vIj44LjcuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjdGhlLWRyYWctZGF0YS1zdG9yZSI+PHNwYW4gY2xhc3M9InNlY25vIj44LjcuMiA8L3NwYW4+VGhlIGRyYWcgZGF0YSBzdG9yZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRuZC5odG1sI3RoZS1kYXRhdHJhbnNmZXItaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNy4zIDwvc3Bhbj5UaGUgPGNvZGU+RGF0YVRyYW5zZmVyPC9jb2RlPiBpbnRlcmZhY2U8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImRuZC5odG1sI3RoZS1kYXRhdHJhbnNmZXJpdGVtbGlzdC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjMuMSA8L3NwYW4+VGhlIDxjb2RlPkRhdGFUcmFuc2Zlckl0ZW1MaXN0PC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCN0aGUtZGF0YXRyYW5zZmVyaXRlbS1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjMuMiA8L3NwYW4+VGhlIDxjb2RlPkRhdGFUcmFuc2Zlckl0ZW08L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCN0aGUtZHJhZ2V2ZW50LWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj44LjcuNCA8L3NwYW4+VGhlIDxjb2RlPkRyYWdFdmVudDwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjZHJhZy1hbmQtZHJvcC1wcm9jZXNzaW5nLW1vZGVsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjguNy41IDwvc3Bhbj5EcmFnLWFuZC1kcm9wIHByb2Nlc3NpbmcgbW9kZWw8L2E+PC9saT4KKzxsaT48YSBocmVmPSJkbmQuaHRtbCNkbmRldmVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjYgPC9zcGFuPkV2ZW50cyBzdW1tYXJ5PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjcgPC9zcGFuPlRoZSA8Y29kZT5kcmFnZ2FibGU8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImRuZC5odG1sI3RoZS1kcm9wem9uZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjggPC9zcGFuPlRoZSA8Y29kZT5kcm9wem9uZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iZG5kLmh0bWwjc2VjdXJpdHktcmlza3MtaW4tdGhlLWRyYWctYW5kLWRyb3AtbW9kZWwiPjxzcGFuIGNsYXNzPSJzZWNubyI+OC43LjkgPC9zcGFuPlNlY3VyaXR5IHJpc2tzIGluIHRoZSBkcmFnLWFuZC1kcm9wIG1vZGVsPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJjb21tcy5odG1sI2NvbW1zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkgPC9zcGFuPkNvbW11bmljYXRpb248L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjdGhlLW1lc3NhZ2VldmVudC1pbnRlcmZhY2VzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMSA8L3NwYW4+VGhlIDxjb2RlPk1lc3NhZ2VFdmVudDwvY29kZT4gaW50ZXJmYWNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjc2VydmVyLXNlbnQtZXZlbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMiA8L3NwYW4+U2VydmVyLXNlbnQgZXZlbnRzPC9hPgorPG9sPjxsaT48YSBocmVmPSJjb21tcy5odG1sI3NlcnZlci1zZW50LWV2ZW50cy1pbnRybyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCN0aGUtZXZlbnRzb3VyY2UtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMi4yIDwvc3Bhbj5UaGUgPGNvZGU+RXZlbnRTb3VyY2U8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC02Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMi4zIDwvc3Bhbj5Qcm9jZXNzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCNwYXJzaW5nLWFuLWV2ZW50LXN0cmVhbSI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuNCA8L3NwYW4+UGFyc2luZyBhbiBldmVudCBzdHJlYW08L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tcy5odG1sI2V2ZW50LXN0cmVhbS1pbnRlcnByZXRhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuNSA8L3NwYW4+SW50ZXJwcmV0aW5nIGFuIGV2ZW50IHN0cmVhbTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjYXV0aG9yaW5nLW5vdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMi42IDwvc3Bhbj5BdXRob3Jpbmcgbm90ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJjb21tcy5odG1sI2V2ZW50c291cmNlLXB1c2giPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4yLjcgPC9zcGFuPkNvbm5lY3Rpb25sZXNzIHB1c2ggYW5kIG90aGVyIGZlYXR1cmVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCNnYXJiYWdlLWNvbGxlY3Rpb24tMCI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuOCA8L3NwYW4+R2FyYmFnZSBjb2xsZWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iY29tbXMuaHRtbCNpbXBsZW1lbnRhdGlvbi1hZHZpY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4yLjkgPC9zcGFuPkltcGxlbWVudGF0aW9uIGFkdmljZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjaWFuYS1jb25zaWRlcmF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuMTAgPC9zcGFuPklBTkEgY29uc2lkZXJhdGlvbnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjdGV4dC9ldmVudC1zdHJlYW0iPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4yLjEwLjEgPC9zcGFuPjxjb2RlPnRleHQvZXZlbnQtc3RyZWFtPC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImNvbW1zLmh0bWwjbGFzdC1ldmVudC1pZCI+PHNwYW4gY2xhc3M9InNlY25vIj45LjIuMTAuMiA8L3NwYW4+PGNvZGU+TGFzdC1FdmVudC1JRDwvY29kZT48L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im5ldHdvcmsuaHRtbCNuZXR3b3JrIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMyA8L3NwYW4+V2ViIHNvY2tldHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im5ldHdvcmsuaHRtbCNuZXR3b3JrLWludHJvIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuMy4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjdGhlLXdlYnNvY2tldC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjIgPC9zcGFuPlRoZSA8Y29kZT5XZWJTb2NrZXQ8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im5ldHdvcmsuaHRtbCNmZWVkYmFjay1mcm9tLXRoZS1wcm90b2NvbCI+PHNwYW4gY2xhc3M9InNlY25vIj45LjMuMyA8L3NwYW4+RmVlZGJhY2sgZnJvbSB0aGUgcHJvdG9jb2w8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjcGluZy1hbmQtcG9uZy1mcmFtZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjQgPC9zcGFuPlBpbmcgYW5kIFBvbmcgZnJhbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ibmV0d29yay5odG1sI3BhcnNpbmctd2Vic29ja2V0LXVybHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjUgPC9zcGFuPlBhcnNpbmcgV2ViU29ja2V0IFVSTHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjdGhlLWNsb3NlZXZlbnQtaW50ZXJmYWNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjMuNiA8L3NwYW4+VGhlIDxjb2RlPkNsb3NlRXZlbnQ8L2NvZGU+IGludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJuZXR3b3JrLmh0bWwjZ2FyYmFnZS1jb2xsZWN0aW9uLTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS4zLjcgPC9zcGFuPkdhcmJhZ2UgY29sbGVjdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjd2ViLW1lc3NhZ2luZyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjQgPC9zcGFuPkNyb3NzLWRvY3VtZW50IG1lc3NhZ2luZzwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2ludHJvZHVjdGlvbi05Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNC4xIDwvc3Bhbj5JbnRyb2R1Y3Rpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjc2VjdXJpdHktcG9zdG1zZyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjQuMiA8L3NwYW4+U2VjdXJpdHk8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYi1tZXNzYWdpbmcuaHRtbCNhdXRob3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNC4yLjEgPC9zcGFuPkF1dGhvcnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjdXNlci1hZ2VudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS40LjIuMiA8L3NwYW4+VXNlciBhZ2VudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI3Bvc3RpbmctbWVzc2FnZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS40LjMgPC9zcGFuPlBvc3RpbmcgbWVzc2FnZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2NoYW5uZWwtbWVzc2FnaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNSA8L3NwYW4+Q2hhbm5lbCBtZXNzYWdpbmc8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYi1tZXNzYWdpbmcuaHRtbCNpbnRyb2R1Y3Rpb24tMTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2V4YW1wbGVzLTQiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjEuMSA8L3NwYW4+RXhhbXBsZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjcG9ydHMtYXMtdGhlLWJhc2lzLW9mLWFuLW9iamVjdC1jYXBhYmlsaXR5LW1vZGVsLW9uLXRoZS13ZWIiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjEuMiA8L3NwYW4+UG9ydHMgYXMgdGhlIGJhc2lzIG9mIGFuIG9iamVjdC1jYXBhYmlsaXR5IG1vZGVsIG9uIHRoZSBXZWI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjcG9ydHMtYXMtdGhlLWJhc2lzLW9mLWFic3RyYWN0aW5nLW91dC1zZXJ2aWNlLWltcGxlbWVudGF0aW9ucyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjUuMS4zIDwvc3Bhbj5Qb3J0cyBhcyB0aGUgYmFzaXMgb2YgYWJzdHJhY3Rpbmcgb3V0IHNlcnZpY2UgaW1wbGVtZW50YXRpb25zPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYi1tZXNzYWdpbmcuaHRtbCNtZXNzYWdlLWNoYW5uZWxzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjkuNS4yIDwvc3Bhbj5NZXNzYWdlIGNoYW5uZWxzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI21lc3NhZ2UtcG9ydHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjMgPC9zcGFuPk1lc3NhZ2UgcG9ydHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWItbWVzc2FnaW5nLmh0bWwjYnJvYWRjYXN0aW5nLXRvLW1hbnktcG9ydHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjQgPC9zcGFuPkJyb2FkY2FzdGluZyB0byBtYW55IHBvcnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI3BvcnRzLWFuZC1nYXJiYWdlLWNvbGxlY3Rpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+OS41LjUgPC9zcGFuPlBvcnRzIGFuZCBnYXJiYWdlIGNvbGxlY3Rpb248L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2ViLW1lc3NhZ2luZy5odG1sI2Jyb2FkY2FzdGluZy10by1vdGhlci1icm93c2luZy1jb250ZXh0cyI+PHNwYW4gY2xhc3M9InNlY25vIj45LjYgPC9zcGFuPkJyb2FkY2FzdGluZyB0byBvdGhlciBicm93c2luZyBjb250ZXh0czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjd29ya2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMCA8L3NwYW4+V2ViIHdvcmtlcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbnRyb2R1Y3Rpb24tMTEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjc2NvcGUtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjEgPC9zcGFuPlNjb3BlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2V4YW1wbGVzLTUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMS4yIDwvc3Bhbj5FeGFtcGxlczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2EtYmFja2dyb3VuZC1udW1iZXItY3J1bmNoaW5nLXdvcmtlciI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuMSA8L3NwYW4+QSBiYWNrZ3JvdW5kIG51bWJlci1jcnVuY2hpbmcgd29ya2VyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3dvcmtlci11c2VkLWZvci1iYWNrZ3JvdW5kLWkvbyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuMiA8L3NwYW4+V29ya2VyIHVzZWQgZm9yIGJhY2tncm91bmQgSS9PPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3NoYXJlZC13b3JrZXJzLWludHJvZHVjdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuMyA8L3NwYW4+U2hhcmVkIHdvcmtlcnMgaW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3NoYXJlZC1zdGF0ZS11c2luZy1hLXNoYXJlZC13b3JrZXIiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMS4yLjQgPC9zcGFuPlNoYXJlZCBzdGF0ZSB1c2luZyBhIHNoYXJlZCB3b3JrZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjZGVsZWdhdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjIuNSA8L3NwYW4+RGVsZWdhdGlvbjwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjdHV0b3JpYWxzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjEuMyA8L3NwYW4+VHV0b3JpYWxzPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjY3JlYXRpbmctYS1kZWRpY2F0ZWQtd29ya2VyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjEuMy4xIDwvc3Bhbj5DcmVhdGluZyBhIGRlZGljYXRlZCB3b3JrZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjY29tbXVuaWNhdGluZy13aXRoLWEtZGVkaWNhdGVkLXdvcmtlciI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjMuMiA8L3NwYW4+Q29tbXVuaWNhdGluZyB3aXRoIGEgZGVkaWNhdGVkIHdvcmtlcjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNzaGFyZWQtd29ya2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4xLjMuMyA8L3NwYW4+U2hhcmVkIHdvcmtlcnM8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbmZyYXN0cnVjdHVyZS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIgPC9zcGFuPkluZnJhc3RydWN0dXJlPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjdGhlLWdsb2JhbC1zY29wZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjEgPC9zcGFuPlRoZSBnbG9iYWwgc2NvcGU8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN0aGUtd29ya2VyZ2xvYmFsc2NvcGUtY29tbW9uLWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjEuMSA8L3NwYW4+VGhlIDxjb2RlPldvcmtlckdsb2JhbFNjb3BlPC9jb2RlPiBjb21tb24gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2RlZGljYXRlZC13b3JrZXJzLWFuZC10aGUtZGVkaWNhdGVkd29ya2VyZ2xvYmFsc2NvcGUtaW50ZXJmYWNlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIuMS4yIDwvc3Bhbj5EZWRpY2F0ZWQgd29ya2VycyBhbmQgdGhlIDxjb2RlPkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjc2hhcmVkLXdvcmtlcnMtYW5kLXRoZS1zaGFyZWR3b3JrZXJnbG9iYWxzY29wZS1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi4xLjMgPC9zcGFuPlNoYXJlZCB3b3JrZXJzIGFuZCB0aGUgPGNvZGU+U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjd29ya2VyLWV2ZW50LWxvb3AiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi4yIDwvc3Bhbj5UaGUgZXZlbnQgbG9vcDwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN0aGUtd29ya2VyJ3MtbGlmZXRpbWUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi4zIDwvc3Bhbj5UaGUgd29ya2VyJ3MgbGlmZXRpbWU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3b3JrZXJzLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC03Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIuNCA8L3NwYW4+UHJvY2Vzc2luZyBtb2RlbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNydW50aW1lLXNjcmlwdC1lcnJvcnMtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjUgPC9zcGFuPlJ1bnRpbWUgc2NyaXB0IGVycm9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNjcmVhdGluZy13b3JrZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjIuNiA8L3NwYW4+Q3JlYXRpbmcgd29ya2VyczwvYT4KKzxvbD48bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3RoZS1hYnN0cmFjdHdvcmtlci1hYnN0cmFjdC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi42LjEgPC9zcGFuPlRoZSA8Y29kZT5BYnN0cmFjdFdvcmtlcjwvY29kZT4gYWJzdHJhY3QgaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI3NjcmlwdC1zZXR0aW5ncy1mb3Itd29ya2VycyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjYuMiA8L3NwYW4+U2NyaXB0IHNldHRpbmdzIGZvciB3b3JrZXJzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id29ya2Vycy5odG1sI2RlZGljYXRlZC13b3JrZXJzLWFuZC10aGUtd29ya2VyLWludGVyZmFjZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4yLjYuMyA8L3NwYW4+RGVkaWNhdGVkIHdvcmtlcnMgYW5kIHRoZSA8Y29kZT5Xb3JrZXI8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNzaGFyZWQtd29ya2Vycy1hbmQtdGhlLXNoYXJlZHdvcmtlci1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTAuMi42LjQgPC9zcGFuPlNoYXJlZCB3b3JrZXJzIGFuZCB0aGUgPGNvZGU+U2hhcmVkV29ya2VyPC9jb2RlPiBpbnRlcmZhY2U8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNhcGlzLWF2YWlsYWJsZS10by13b3JrZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMgPC9zcGFuPkFQSXMgYXZhaWxhYmxlIHRvIHdvcmtlcnM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMuMSA8L3NwYW4+SW1wb3J0aW5nIHNjcmlwdHMgYW5kIGxpYnJhcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN0aGUtd29ya2VybmF2aWdhdG9yLW9iamVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMC4zLjIgPC9zcGFuPlRoZSA8Y29kZT5Xb3JrZXJOYXZpZ2F0b3I8L2NvZGU+IG9iamVjdDwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCNpbnRlcmZhY2Utb2JqZWN0cy1hbmQtY29uc3RydWN0b3JzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMuMyA8L3NwYW4+SW50ZXJmYWNlIG9iamVjdHMgYW5kIGNvbnN0cnVjdG9yczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndvcmtlcnMuaHRtbCN3b3JrZXItbG9jYXRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEwLjMuNCA8L3NwYW4+V29ya2VyIGxvY2F0aW9uczwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3dlYnN0b3JhZ2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEgPC9zcGFuPldlYiBzdG9yYWdlPC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjaW50cm9kdWN0aW9uLTEyIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCNzdG9yYWdlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjIgPC9zcGFuPlRoZSBBUEk8L2E+Cis8b2w+PGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCN0aGUtc3RvcmFnZS1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi4xIDwvc3Bhbj5UaGUgPGNvZGU+U3RvcmFnZTwvY29kZT4gaW50ZXJmYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3RoZS1zZXNzaW9uc3RvcmFnZS1hdHRyaWJ1dGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi4yIDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImRvbS1zZXNzaW9uU3RvcmFnZSI+c2Vzc2lvblN0b3JhZ2U8L2NvZGU+IGF0dHJpYnV0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCN0aGUtbG9jYWxzdG9yYWdlLWF0dHJpYnV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS4yLjMgPC9zcGFuPlRoZSA8Y29kZSB0aXRsZT0iZG9tLWxvY2FsU3RvcmFnZSI+bG9jYWxTdG9yYWdlPC9jb2RlPiBhdHRyaWJ1dGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjdGhlLXN0b3JhZ2UtZXZlbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi40IDwvc3Bhbj5UaGUgPGNvZGUgdGl0bGU9ImV2ZW50LXN0b3JhZ2UiPnN0b3JhZ2U8L2NvZGU+IGV2ZW50PC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjdGhlLXN0b3JhZ2VldmVudC1pbnRlcmZhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuMi40LjEgPC9zcGFuPlRoZSA8Y29kZT5TdG9yYWdlRXZlbnQ8L2NvZGU+IGludGVyZmFjZTwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjdGhyZWFkcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS4yLjUgPC9zcGFuPlRocmVhZHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI2Rpc2stc3BhY2UtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS4zIDwvc3Bhbj5EaXNrIHNwYWNlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3ByaXZhY3kiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNCA8L3NwYW4+UHJpdmFjeTwvYT4KKzxvbD48bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3VzZXItdHJhY2tpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNC4xIDwvc3Bhbj5Vc2VyIHRyYWNraW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI3NlbnNpdGl2aXR5LW9mLWRhdGEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNC4yIDwvc3Bhbj5TZW5zaXRpdml0eSBvZiBkYXRhPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCNzZWN1cml0eS1zdG9yYWdlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjUgPC9zcGFuPlNlY3VyaXR5PC9hPgorPG9sPjxsaT48YSBocmVmPSJ3ZWJzdG9yYWdlLmh0bWwjZG5zLXNwb29maW5nLWF0dGFja3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTEuNS4xIDwvc3Bhbj5ETlMgc3Bvb2ZpbmcgYXR0YWNrczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IndlYnN0b3JhZ2UuaHRtbCNjcm9zcy1kaXJlY3RvcnktYXR0YWNrcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMS41LjIgPC9zcGFuPkNyb3NzLWRpcmVjdG9yeSBhdHRhY2tzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0id2Vic3RvcmFnZS5odG1sI2ltcGxlbWVudGF0aW9uLXJpc2tzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjExLjUuMyA8L3NwYW4+SW1wbGVtZW50YXRpb24gcmlza3M8L2E+PC9saT48L29sPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InN5bnRheC5odG1sI3N5bnRheCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMiA8L3NwYW4+VGhlIEhUTUwgc3ludGF4PC9hPgorPG9sPjxsaT48YSBocmVmPSJzeW50YXguaHRtbCN3cml0aW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEgPC9zcGFuPldyaXRpbmcgSFRNTCBkb2N1bWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InN5bnRheC5odG1sI3RoZS1kb2N0eXBlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuMSA8L3NwYW4+VGhlIERPQ1RZUEU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNlbGVtZW50cy0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuMiA8L3NwYW4+RWxlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InN5bnRheC5odG1sI3N0YXJ0LXRhZ3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjEgPC9zcGFuPlN0YXJ0IHRhZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNlbmQtdGFncyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4xLjIuMiA8L3NwYW4+RW5kIHRhZ3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNhdHRyaWJ1dGVzLTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjMgPC9zcGFuPkF0dHJpYnV0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNvcHRpb25hbC10YWdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuMi40IDwvc3Bhbj5PcHRpb25hbCB0YWdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3ludGF4Lmh0bWwjZWxlbWVudC1yZXN0cmljdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjUgPC9zcGFuPlJlc3RyaWN0aW9ucyBvbiBjb250ZW50IG1vZGVsczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN5bnRheC5odG1sI2NkYXRhLXJjZGF0YS1yZXN0cmljdGlvbnMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4yLjYgPC9zcGFuPlJlc3RyaWN0aW9ucyBvbiB0aGUgY29udGVudHMgb2YgcmF3IHRleHQgYW5kIGVzY2FwYWJsZSByYXcgdGV4dCBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCN0ZXh0LTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS4zIDwvc3Bhbj5UZXh0PC9hPgorPG9sPjxsaT48YSBocmVmPSJzeW50YXguaHRtbCNuZXdsaW5lcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4xLjMuMSA8L3NwYW4+TmV3bGluZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3ludGF4Lmh0bWwjY2hhcmFjdGVyLXJlZmVyZW5jZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMS40IDwvc3Bhbj5DaGFyYWN0ZXIgcmVmZXJlbmNlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN5bnRheC5odG1sI2NkYXRhLXNlY3Rpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjEuNSA8L3NwYW4+Q0RBVEEgc2VjdGlvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzeW50YXguaHRtbCNjb21tZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4xLjYgPC9zcGFuPkNvbW1lbnRzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNwYXJzaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIgPC9zcGFuPlBhcnNpbmcgSFRNTCBkb2N1bWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNvdmVydmlldy1vZi10aGUtcGFyc2luZy1tb2RlbCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjEgPC9zcGFuPk92ZXJ2aWV3IG9mIHRoZSBwYXJzaW5nIG1vZGVsPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3RoZS1pbnB1dC1ieXRlLXN0cmVhbSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIgPC9zcGFuPlRoZSBpbnB1dCBieXRlIHN0cmVhbTwvYT4KKzxvbD48bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3BhcnNpbmctd2l0aC1hLWtub3duLWNoYXJhY3Rlci1lbmNvZGluZyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIuMSA8L3NwYW4+UGFyc2luZyB3aXRoIGEga25vd24gY2hhcmFjdGVyIGVuY29kaW5nPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI2RldGVybWluaW5nLXRoZS1jaGFyYWN0ZXItZW5jb2RpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi4yLjIgPC9zcGFuPkRldGVybWluaW5nIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJwYXJzaW5nLmh0bWwjY2hhcmFjdGVyLWVuY29kaW5ncyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIuMyA8L3NwYW4+Q2hhcmFjdGVyIGVuY29kaW5nczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNjaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjIuNCA8L3NwYW4+Q2hhbmdpbmcgdGhlIGVuY29kaW5nIHdoaWxlIHBhcnNpbmc8L2E+PC9saT4KKzxsaT48YSBocmVmPSJwYXJzaW5nLmh0bWwjcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMi41IDwvc3Bhbj5QcmVwcm9jZXNzaW5nIHRoZSBpbnB1dCBzdHJlYW08L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3BhcnNlLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMyA8L3NwYW4+UGFyc2Ugc3RhdGU8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCN0aGUtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi4zLjEgPC9zcGFuPlRoZSBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCN0aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjMuMiA8L3NwYW4+VGhlIHN0YWNrIG9mIG9wZW4gZWxlbWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJwYXJzaW5nLmh0bWwjdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi4zLjMgPC9zcGFuPlRoZSBsaXN0IG9mIGFjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icGFyc2luZy5odG1sI3RoZS1lbGVtZW50LXBvaW50ZXJzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMy40IDwvc3Bhbj5UaGUgZWxlbWVudCBwb2ludGVyczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InBhcnNpbmcuaHRtbCNvdGhlci1wYXJzaW5nLXN0YXRlLWZsYWdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuMy41IDwvc3Bhbj5PdGhlciBwYXJzaW5nIHN0YXRlIGZsYWdzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3Rva2VuaXphdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQgPC9zcGFuPlRva2VuaXphdGlvbjwvYT4KKzxvbD48bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjZGF0YS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMSA8L3NwYW4+RGF0YSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NoYXJhY3Rlci1yZWZlcmVuY2UtaW4tZGF0YS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMiA8L3NwYW4+Q2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBkYXRhIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcmNkYXRhLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zIDwvc3Bhbj5SQ0RBVEEgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjaGFyYWN0ZXItcmVmZXJlbmNlLWluLXJjZGF0YS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNCA8L3NwYW4+Q2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBSQ0RBVEEgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyYXd0ZXh0LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41IDwvc3Bhbj5SQVdURVhUIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjYgPC9zcGFuPlNjcmlwdCBkYXRhIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcGxhaW50ZXh0LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC43IDwvc3Bhbj5QTEFJTlRFWFQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCN0YWctb3Blbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuOCA8L3NwYW4+VGFnIG9wZW4gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNlbmQtdGFnLW9wZW4tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjkgPC9zcGFuPkVuZCB0YWcgb3BlbiBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3RhZy1uYW1lLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4xMCA8L3NwYW4+VGFnIG5hbWUgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyY2RhdGEtbGVzcy10aGFuLXNpZ24tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjExIDwvc3Bhbj5SQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4xMiA8L3NwYW4+UkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3JjZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjEzIDwvc3Bhbj5SQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcmF3dGV4dC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMTQgPC9zcGFuPlJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNyYXd0ZXh0LWVuZC10YWctb3Blbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMTUgPC9zcGFuPlJBV1RFWFQgZW5kIHRhZyBvcGVuIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjcmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjE2IDwvc3Bhbj5SQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4xNyA8L3NwYW4+U2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lbmQtdGFnLW9wZW4tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjE4IDwvc3Bhbj5TY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjE5IDwvc3Bhbj5TY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGUtc3RhcnQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjIwIDwvc3Bhbj5TY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGUtc3RhcnQtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjEgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjIgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjIzIDwvc3Bhbj5TY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjQgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjUgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNzY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctb3Blbi1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMjYgPC9zcGFuPlNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQtdGFnLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjI3IDwvc3Bhbj5TY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtc3RhcnQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjI4IDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIHN0YXJ0IHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjI5IDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjMwIDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1kYXNoLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zMSA8L3NwYW4+U2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjMyIDwvc3Bhbj5TY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI3NjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGUtZW5kLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zMyA8L3NwYW4+U2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBlbmQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNiZWZvcmUtYXR0cmlidXRlLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjM0IDwvc3Bhbj5CZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNhdHRyaWJ1dGUtbmFtZS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMzUgPC9zcGFuPkF0dHJpYnV0ZSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItYXR0cmlidXRlLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjM2IDwvc3Bhbj5BZnRlciBhdHRyaWJ1dGUgbmFtZSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2JlZm9yZS1hdHRyaWJ1dGUtdmFsdWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjM3IDwvc3Bhbj5CZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYXR0cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuMzggPC9zcGFuPkF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNhdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC4zOSA8L3NwYW4+QXR0cmlidXRlIHZhbHVlIChzaW5nbGUtcXVvdGVkKSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2F0dHJpYnV0ZS12YWx1ZS0odW5xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40MCA8L3NwYW4+QXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjaGFyYWN0ZXItcmVmZXJlbmNlLWluLWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDEgPC9zcGFuPkNoYXJhY3RlciByZWZlcmVuY2UgaW4gYXR0cmlidXRlIHZhbHVlIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItYXR0cmlidXRlLXZhbHVlLShxdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40MiA8L3NwYW4+QWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjc2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDMgPC9zcGFuPlNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNib2d1cy1jb21tZW50LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40NCA8L3NwYW4+Qm9ndXMgY29tbWVudCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI21hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40NSA8L3NwYW4+TWFya3VwIGRlY2xhcmF0aW9uIG9wZW4gc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjb21tZW50LXN0YXJ0LXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC40NiA8L3NwYW4+Q29tbWVudCBzdGFydCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDcgPC9zcGFuPkNvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NvbW1lbnQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjQ4IDwvc3Bhbj5Db21tZW50IHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjY29tbWVudC1lbmQtZGFzaC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNDkgPC9zcGFuPkNvbW1lbnQgZW5kIGRhc2ggc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNjb21tZW50LWVuZC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTAgPC9zcGFuPkNvbW1lbnQgZW5kIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjY29tbWVudC1lbmQtYmFuZy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTEgPC9zcGFuPkNvbW1lbnQgZW5kIGJhbmcgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNkb2N0eXBlLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41MiA8L3NwYW4+RE9DVFlQRSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2JlZm9yZS1kb2N0eXBlLW5hbWUtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjUzIDwvc3Bhbj5CZWZvcmUgRE9DVFlQRSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjZG9jdHlwZS1uYW1lLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41NCA8L3NwYW4+RE9DVFlQRSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItZG9jdHlwZS1uYW1lLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41NSA8L3NwYW4+QWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTYgPC9zcGFuPkFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNiZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNTcgPC9zcGFuPkJlZm9yZSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjU4IDwvc3Bhbj5ET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2RvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC41OSA8L3NwYW4+RE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNhZnRlci1kb2N0eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC42MCA8L3NwYW4+QWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2JldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVycy1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjEgPC9zcGFuPkJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2FmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjYyIDwvc3Bhbj5BZnRlciBET0NUWVBFIHN5c3RlbSBrZXl3b3JkIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYmVmb3JlLWRvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjYzIDwvc3Bhbj5CZWZvcmUgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2RvY3R5cGUtc3lzdGVtLWlkZW50aWZpZXItKGRvdWJsZS1xdW90ZWQpLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC42NCA8L3NwYW4+RE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNkb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjUgPC9zcGFuPkRPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjYgPC9zcGFuPkFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0b2tlbml6YXRpb24uaHRtbCNib2d1cy1kb2N0eXBlLXN0YXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNC42NyA8L3NwYW4+Qm9ndXMgRE9DVFlQRSBzdGF0ZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRva2VuaXphdGlvbi5odG1sI2NkYXRhLXNlY3Rpb24tc3RhdGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi40LjY4IDwvc3Bhbj5DREFUQSBzZWN0aW9uIHN0YXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idG9rZW5pemF0aW9uLmh0bWwjdG9rZW5pemluZy1jaGFyYWN0ZXItcmVmZXJlbmNlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjQuNjkgPC9zcGFuPlRva2VuaXppbmcgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0cmVlLWNvbnN0cnVjdGlvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUgPC9zcGFuPlRyZWUgY29uc3RydWN0aW9uPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI2NyZWF0aW5nLWFuZC1pbnNlcnRpbmctbm9kZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjEgPC9zcGFuPkNyZWF0aW5nIGFuZCBpbnNlcnRpbmcgbm9kZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3BhcnNpbmctZWxlbWVudHMtdGhhdC1jb250YWluLW9ubHktdGV4dCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuMiA8L3NwYW4+UGFyc2luZyBlbGVtZW50cyB0aGF0IGNvbnRhaW4gb25seSB0ZXh0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNjbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS4zIDwvc3Bhbj5DbG9zaW5nIGVsZW1lbnRzIHRoYXQgaGF2ZSBpbXBsaWVkIGVuZCB0YWdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5odG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40IDwvc3Bhbj5UaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIEhUTUwgY29udGVudDwvYT4KKzxvbD48bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0aGUtaW5pdGlhbC1pbnNlcnRpb24tbW9kZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xIDwvc3Bhbj5UaGUgImluaXRpYWwiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0aGUtYmVmb3JlLWh0bWwtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMiA8L3NwYW4+VGhlICJiZWZvcmUgaHRtbCIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3RoZS1iZWZvcmUtaGVhZC1pbnNlcnRpb24tbW9kZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4zIDwvc3Bhbj5UaGUgImJlZm9yZSBoZWFkIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluaGVhZCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC40IDwvc3Bhbj5UaGUgImluIGhlYWQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuNSA8L3NwYW4+VGhlICJpbiBoZWFkIG5vc2NyaXB0IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjdGhlLWFmdGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuNiA8L3NwYW4+VGhlICJhZnRlciBoZWFkIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluYm9keSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC43IDwvc3Bhbj5UaGUgImluIGJvZHkiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5jZGF0YSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC44IDwvc3Bhbj5UaGUgInRleHQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW50YWJsZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC45IDwvc3Bhbj5UaGUgImluIHRhYmxlIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWludGFibGV0ZXh0Ij48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjEwIDwvc3Bhbj5UaGUgImluIHRhYmxlIHRleHQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5jYXB0aW9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjExIDwvc3Bhbj5UaGUgImluIGNhcHRpb24iIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5jb2xncm91cCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xMiA8L3NwYW4+VGhlICJpbiBjb2x1bW4gZ3JvdXAiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW50Ym9keSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xMyA8L3NwYW4+VGhlICJpbiB0YWJsZSBib2R5IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWludHIiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMTQgPC9zcGFuPlRoZSAiaW4gcm93IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWludGQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMTUgPC9zcGFuPlRoZSAiaW4gY2VsbCIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xNiA8L3NwYW4+VGhlICJpbiBzZWxlY3QiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjE3IDwvc3Bhbj5UaGUgImluIHNlbGVjdCBpbiB0YWJsZSIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3BhcnNpbmctbWFpbi1pbnRlbXBsYXRlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjE4IDwvc3Bhbj5UaGUgImluIHRlbXBsYXRlIiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWFmdGVyYm9keSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4xOSA8L3NwYW4+VGhlICJhZnRlciBib2R5IiBpbnNlcnRpb24gbW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluZnJhbWVzZXQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMjAgPC9zcGFuPlRoZSAiaW4gZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNwYXJzaW5nLW1haW4tYWZ0ZXJmcmFtZXNldCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNC4yMSA8L3NwYW4+VGhlICJhZnRlciBmcmFtZXNldCIgaW5zZXJ0aW9uIG1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0cmVlLWNvbnN0cnVjdGlvbi5odG1sI3RoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuNS40LjIyIDwvc3Bhbj5UaGUgImFmdGVyIGFmdGVyIGJvZHkiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCN0aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGUiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi41LjQuMjMgPC9zcGFuPlRoZSAiYWZ0ZXIgYWZ0ZXIgZnJhbWVzZXQiIGluc2VydGlvbiBtb2RlPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InRyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2luZy1tYWluLWluZm9yZWlnbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjUuNSA8L3NwYW4+VGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnQ8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI3RoZS1lbmQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi42IDwvc3Bhbj5UaGUgZW5kPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI2NvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjcgPC9zcGFuPkNvZXJjaW5nIGFuIEhUTUwgRE9NIGludG8gYW4gaW5mb3NldDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1lbmQuaHRtbCNhbi1pbnRyb2R1Y3Rpb24tdG8tZXJyb3ItaGFuZGxpbmctYW5kLXN0cmFuZ2UtY2FzZXMtaW4tdGhlLXBhcnNlciI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjggPC9zcGFuPkFuIGludHJvZHVjdGlvbiB0byBlcnJvciBoYW5kbGluZyBhbmQgc3RyYW5nZSBjYXNlcyBpbiB0aGUgcGFyc2VyPC9hPgorPG9sPjxsaT48YSBocmVmPSJ0aGUtZW5kLmh0bWwjbWlzbmVzdGVkLXRhZ3M6LWItaS0vYi0vaSI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjguMSA8L3NwYW4+TWlzbmVzdGVkIHRhZ3M6ICZsdDtiJmd0OyZsdDtpJmd0OyZsdDsvYiZndDsmbHQ7L2kmZ3Q7PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI21pc25lc3RlZC10YWdzOi1iLXAtL2ItL3AiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi44LjIgPC9zcGFuPk1pc25lc3RlZCB0YWdzOiAmbHQ7YiZndDsmbHQ7cCZndDsmbHQ7L2ImZ3Q7Jmx0Oy9wJmd0OzwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1lbmQuaHRtbCN1bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuMi44LjMgPC9zcGFuPlVuZXhwZWN0ZWQgbWFya3VwIGluIHRhYmxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS1lbmQuaHRtbCNzY3JpcHRzLXRoYXQtbW9kaWZ5LXRoZS1wYWdlLWFzLWl0LWlzLWJlaW5nLXBhcnNlZCI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjguNCA8L3NwYW4+U2NyaXB0cyB0aGF0IG1vZGlmeSB0aGUgcGFnZSBhcyBpdCBpcyBiZWluZyBwYXJzZWQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtZW5kLmh0bWwjdGhlLWV4ZWN1dGlvbi1vZi1zY3JpcHRzLXRoYXQtYXJlLW1vdmluZy1hY3Jvc3MtbXVsdGlwbGUtZG9jdW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjIuOC41IDwvc3Bhbj5UaGUgZXhlY3V0aW9uIG9mIHNjcmlwdHMgdGhhdCBhcmUgbW92aW5nIGFjcm9zcyBtdWx0aXBsZSBkb2N1bWVudHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJ0aGUtZW5kLmh0bWwjdW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMi4yLjguNiA8L3NwYW4+VW5jbG9zZWQgZm9ybWF0dGluZyBlbGVtZW50czwvYT48L2xpPjwvb2w+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI3NlcmlhbGl6aW5nLWh0bWwtZnJhZ21lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEyLjMgPC9zcGFuPlNlcmlhbGl6aW5nIEhUTUwgZnJhZ21lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLWVuZC5odG1sI3BhcnNpbmctaHRtbC1mcmFnbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuNCA8L3NwYW4+UGFyc2luZyBIVE1MIGZyYWdtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzLmh0bWwjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTIuNSA8L3NwYW4+TmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXhodG1sLXN5bnRheC5odG1sI3RoZS14aHRtbC1zeW50YXgiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTMgPC9zcGFuPlRoZSBYSFRNTCBzeW50YXg8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InRoZS14aHRtbC1zeW50YXguaHRtbCN3cml0aW5nLXhodG1sLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMy4xIDwvc3Bhbj5Xcml0aW5nIFhIVE1MIGRvY3VtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS14aHRtbC1zeW50YXguaHRtbCNwYXJzaW5nLXhodG1sLWRvY3VtZW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xMy4yIDwvc3Bhbj5QYXJzaW5nIFhIVE1MIGRvY3VtZW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InRoZS14aHRtbC1zeW50YXguaHRtbCNzZXJpYWxpemluZy14aHRtbC1mcmFnbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTMuMyA8L3NwYW4+U2VyaWFsaXppbmcgWEhUTUwgZnJhZ21lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0idGhlLXhodG1sLXN5bnRheC5odG1sI3BhcnNpbmcteGh0bWwtZnJhZ21lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjEzLjQgPC9zcGFuPlBhcnNpbmcgWEhUTUwgZnJhZ21lbnRzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3JlbmRlcmluZyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNCA8L3NwYW4+UmVuZGVyaW5nPC9hPgorPG9sPjxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCNpbnRyb2R1Y3Rpb24tMTMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuMSA8L3NwYW4+SW50cm9kdWN0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWNzcy11c2VyLWFnZW50LXN0eWxlLXNoZWV0LWFuZC1wcmVzZW50YXRpb25hbC1oaW50cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC4yIDwvc3Bhbj5UaGUgQ1NTIHVzZXIgYWdlbnQgc3R5bGUgc2hlZXQgYW5kIHByZXNlbnRhdGlvbmFsIGhpbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjbm9uLXJlcGxhY2VkLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMgPC9zcGFuPk5vbi1yZXBsYWNlZCBlbGVtZW50czwvYT4KKzxvbD48bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjaGlkZGVuLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMSA8L3NwYW4+SGlkZGVuIGVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXBhZ2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuMy4yIDwvc3Bhbj5UaGUgcGFnZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2Zsb3ctY29udGVudC0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMyA8L3NwYW4+RmxvdyBjb250ZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcGhyYXNpbmctY29udGVudC0xIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNCA8L3NwYW4+UGhyYXNpbmcgY29udGVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2JpZGktcmVuZGVyaW5nIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNSA8L3NwYW4+QmlkaXJlY3Rpb25hbCB0ZXh0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcXVvdGVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNiA8L3NwYW4+UXVvdGVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjc2VjdGlvbnMtYW5kLWhlYWRpbmdzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuNyA8L3NwYW4+U2VjdGlvbnMgYW5kIGhlYWRpbmdzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjbGlzdHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuMy44IDwvc3Bhbj5MaXN0czwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RhYmxlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC4zLjkgPC9zcGFuPlRhYmxlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI21hcmdpbi1jb2xsYXBzaW5nLXF1aXJrcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC4zLjEwIDwvc3Bhbj5NYXJnaW4gY29sbGFwc2luZyBxdWlya3M8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCNmb3JtLWNvbnRyb2xzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMTEgPC9zcGFuPkZvcm0gY29udHJvbHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUtaHItZWxlbWVudC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMTIgPC9zcGFuPlRoZSA8Y29kZT5ocjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1maWVsZHNldC1hbmQtbGVnZW5kLWVsZW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjMuMTMgPC9zcGFuPlRoZSA8Y29kZT5maWVsZHNldDwvY29kZT4gYW5kIDxjb2RlPmxlZ2VuZDwvY29kZT4gZWxlbWVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcmVwbGFjZWQtZWxlbWVudHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNCA8L3NwYW4+UmVwbGFjZWQgZWxlbWVudHM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2VtYmVkZGVkLWNvbnRlbnQtMiI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjEgPC9zcGFuPkVtYmVkZGVkIGNvbnRlbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCNpbWFnZXMtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjIgPC9zcGFuPkltYWdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjMgPC9zcGFuPkF0dHJpYnV0ZXMgZm9yIGVtYmVkZGVkIGNvbnRlbnQgYW5kIGltYWdlczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2ltYWdlLW1hcHMtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC40LjQgPC9zcGFuPkltYWdlIG1hcHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjYmluZGluZ3MiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNSA8L3NwYW4+QmluZGluZ3M8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2ludHJvZHVjdGlvbi0xNCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjEgPC9zcGFuPkludHJvZHVjdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1idXR0b24tZWxlbWVudC0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuMiA8L3NwYW4+VGhlIDxjb2RlPmJ1dHRvbjwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1kZXRhaWxzLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjMgPC9zcGFuPlRoZSA8Y29kZT5kZXRhaWxzPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtYS10ZXh0LWVudHJ5LXdpZGdldCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjQgPC9zcGFuPlRoZSA8Y29kZT5pbnB1dDwvY29kZT4gZWxlbWVudCBhcyBhIHRleHQgZW50cnkgd2lkZ2V0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtZG9tYWluLXNwZWNpZmljLXdpZGdldHMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNS41IDwvc3Bhbj5UaGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQgYXMgZG9tYWluLXNwZWNpZmljIHdpZGdldHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUtaW5wdXQtZWxlbWVudC1hcy1hLXJhbmdlLWNvbnRyb2wiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNS42IDwvc3Bhbj5UaGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGVsZW1lbnQgYXMgYSByYW5nZSBjb250cm9sPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtYS1jb2xvci13ZWxsIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuNyA8L3NwYW4+VGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IGFzIGEgY29sb3Igd2VsbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1dHRvbi13aWRnZXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuOCA8L3NwYW4+VGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IGFzIGEgY2hlY2tib3ggYW5kIHJhZGlvIGJ1dHRvbiB3aWRnZXRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLWlucHV0LWVsZW1lbnQtYXMtYS1maWxlLXVwbG9hZC1jb250cm9sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuOSA8L3NwYW4+VGhlIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IGFzIGEgZmlsZSB1cGxvYWQgY29udHJvbDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjUuMTAgPC9zcGFuPlRoZSA8Y29kZT5pbnB1dDwvY29kZT4gZWxlbWVudCBhcyBhIGJ1dHRvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1tYXJxdWVlLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjExIDwvc3Bhbj5UaGUgPGNvZGU+bWFycXVlZTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI3RoZS1tZXRlci1lbGVtZW50LTAiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNS4xMiA8L3NwYW4+VGhlIDxjb2RlPm1ldGVyPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXByb2dyZXNzLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjEzIDwvc3Bhbj5UaGUgPGNvZGU+cHJvZ3Jlc3M8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUtc2VsZWN0LWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjE0IDwvc3Bhbj5UaGUgPGNvZGU+c2VsZWN0PC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjE1IDwvc3Bhbj5UaGUgPGNvZGU+dGV4dGFyZWE8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0aGUta2V5Z2VuLWVsZW1lbnQtMCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC41LjE2IDwvc3Bhbj5UaGUgPGNvZGU+a2V5Z2VuPC9jb2RlPiBlbGVtZW50PC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2ZyYW1lcy1hbmQtZnJhbWVzZXRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjYgPC9zcGFuPkZyYW1lcyBhbmQgZnJhbWVzZXRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjaW50ZXJhY3RpdmUtbWVkaWEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNyA8L3NwYW4+SW50ZXJhY3RpdmUgbWVkaWE8L2E+Cis8b2w+PGxpPjxhIGhyZWY9InJlbmRlcmluZy5odG1sI2xpbmtzLC1mb3JtcywtYW5kLW5hdmlnYXRpb24iPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNy4xIDwvc3Bhbj5MaW5rcywgZm9ybXMsIGFuZCBuYXZpZ2F0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjdGhlLXRpdGxlLWF0dHJpYnV0ZS0wIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjcuMiA8L3NwYW4+VGhlIDxjb2RlIHRpdGxlPSJhdHRyLXRpdGxlIj50aXRsZTwvY29kZT4gYXR0cmlidXRlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjZWRpdGluZy1ob3N0cyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNC43LjMgPC9zcGFuPkVkaXRpbmcgaG9zdHM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN0ZXh0LXJlbmRlcmVkLWluLW5hdGl2ZS11c2VyLWludGVyZmFjZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuNy40IDwvc3Bhbj5UZXh0IHJlbmRlcmVkIGluIG5hdGl2ZSB1c2VyIGludGVyZmFjZXM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVuZGVyaW5nLmh0bWwjcHJpbnQtbWVkaWEiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTQuOCA8L3NwYW4+UHJpbnQgbWVkaWE8L2E+PC9saT4KKzxsaT48YSBocmVmPSJyZW5kZXJpbmcuaHRtbCN1bnN0eWxlZC14bWwtZG9jdW1lbnRzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE0LjkgPC9zcGFuPlVuc3R5bGVkIFhNTCBkb2N1bWVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2Jzb2xldGUuaHRtbCNvYnNvbGV0ZSI+PHNwYW4gY2xhc3M9InNlY25vIj4xNSA8L3NwYW4+T2Jzb2xldGUgZmVhdHVyZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjb2Jzb2xldGUtYnV0LWNvbmZvcm1pbmctZmVhdHVyZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTUuMSA8L3NwYW4+T2Jzb2xldGUgYnV0IGNvbmZvcm1pbmcgZmVhdHVyZXM8L2E+Cis8b2w+PGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjd2FybmluZ3MtZm9yLW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE1LjEuMSA8L3NwYW4+V2FybmluZ3MgZm9yIG9ic29sZXRlIGJ1dCBjb25mb3JtaW5nIGZlYXR1cmVzPC9hPjwvbGk+PC9vbD48L2xpPgorPGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjbm9uLWNvbmZvcm1pbmctZmVhdHVyZXMiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTUuMiA8L3NwYW4+Tm9uLWNvbmZvcm1pbmcgZmVhdHVyZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvYnNvbGV0ZS5odG1sI3JlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE1LjMgPC9zcGFuPlJlcXVpcmVtZW50cyBmb3IgaW1wbGVtZW50YXRpb25zPC9hPgorPG9sPjxsaT48YSBocmVmPSJvYnNvbGV0ZS5odG1sI3RoZS1hcHBsZXQtZWxlbWVudCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNS4zLjEgPC9zcGFuPlRoZSA8Y29kZT5hcHBsZXQ8L2NvZGU+IGVsZW1lbnQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSJvYnNvbGV0ZS5odG1sI3RoZS1tYXJxdWVlLWVsZW1lbnQiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTUuMy4yIDwvc3Bhbj5UaGUgPGNvZGU+bWFycXVlZTwvY29kZT4gZWxlbWVudDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Im9ic29sZXRlLmh0bWwjZnJhbWVzIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE1LjMuMyA8L3NwYW4+RnJhbWVzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ib2Jzb2xldGUuaHRtbCNvdGhlci1lbGVtZW50cywtYXR0cmlidXRlcy1hbmQtYXBpcyI+PHNwYW4gY2xhc3M9InNlY25vIj4xNS4zLjQgPC9zcGFuPk90aGVyIGVsZW1lbnRzLCBhdHRyaWJ1dGVzIGFuZCBBUElzPC9hPjwvbGk+PC9vbD48L2xpPjwvb2w+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjaWFuYSI+PHNwYW4gY2xhc3M9InNlY25vIj4xNiA8L3NwYW4+SUFOQSBjb25zaWRlcmF0aW9uczwvYT4KKzxvbD48bGk+PGEgaHJlZj0iaWFuYS5odG1sI3RleHQvaHRtbCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi4xIDwvc3Bhbj48Y29kZT50ZXh0L2h0bWw8L2NvZGU+PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iaWFuYS5odG1sI211bHRpcGFydC94LW1peGVkLXJlcGxhY2UiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTYuMiA8L3NwYW4+PGNvZGU+bXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZTwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjYXBwbGljYXRpb24veGh0bWwreG1sIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE2LjMgPC9zcGFuPjxjb2RlPmFwcGxpY2F0aW9uL3hodG1sK3htbDwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE2LjQgPC9zcGFuPjxjb2RlPmFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjdGV4dC9jYWNoZS1tYW5pZmVzdCI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi41IDwvc3Bhbj48Y29kZT50ZXh0L2NhY2hlLW1hbmlmZXN0PC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImlhbmEuaHRtbCN0ZXh0L3BpbmciPjxzcGFuIGNsYXNzPSJzZWNubyI+MTYuNiA8L3NwYW4+PGNvZGU+dGV4dC9waW5nPC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImlhbmEuaHRtbCNhcHBsaWNhdGlvbi9taWNyb2RhdGEranNvbiI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi43IDwvc3Bhbj48Y29kZT5hcHBsaWNhdGlvbi9taWNyb2RhdGEranNvbjwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjcGluZy1mcm9tIj48c3BhbiBjbGFzcz0ic2Vjbm8iPjE2LjggPC9zcGFuPjxjb2RlPlBpbmctRnJvbTwvY29kZT48L2E+PC9saT4KKzxsaT48YSBocmVmPSJpYW5hLmh0bWwjcGluZy10byI+PHNwYW4gY2xhc3M9InNlY25vIj4xNi45IDwvc3Bhbj48Y29kZT5QaW5nLVRvPC9jb2RlPjwvYT48L2xpPgorPGxpPjxhIGhyZWY9ImlhbmEuaHRtbCN3ZWIrLXNjaGVtZS1wcmVmaXgiPjxzcGFuIGNsYXNzPSJzZWNubyI+MTYuMTAgPC9zcGFuPjxjb2RlPndlYis8L2NvZGU+IHNjaGVtZSBwcmVmaXg8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2luZGV4IiBjbGFzcz0ibm8tbnVtIj5JbmRleDwvYT4KKzxvbD48bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2VsZW1lbnRzLTEiIGNsYXNzPSJuby1udW0iPkVsZW1lbnRzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2VsZW1lbnQtY29udGVudC1jYXRlZ29yaWVzIiBjbGFzcz0ibm8tbnVtIj5FbGVtZW50IGNvbnRlbnQgY2F0ZWdvcmllczwvYT48L2xpPgorPGxpPjxhIGhyZWY9InNlY3Rpb24taW5kZXguaHRtbCNhdHRyaWJ1dGVzLTEiIGNsYXNzPSJuby1udW0iPkF0dHJpYnV0ZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9uLWluZGV4Lmh0bWwjZWxlbWVudC1pbnRlcmZhY2VzIiBjbGFzcz0ibm8tbnVtIj5FbGVtZW50IEludGVyZmFjZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJzZWN0aW9uLWluZGV4Lmh0bWwjYWxsLWludGVyZmFjZXMiIGNsYXNzPSJuby1udW0iPkFsbCBJbnRlcmZhY2VzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic2VjdGlvbi1pbmRleC5odG1sI2V2ZW50cy0wIiBjbGFzcz0ibm8tbnVtIj5FdmVudHM8L2E+PC9saT48L29sPjwvbGk+Cis8bGk+PGEgaHJlZj0icmVmZXJlbmNlcy5odG1sI3JlZmVyZW5jZXMiIGNsYXNzPSJuby1udW0iPlJlZmVyZW5jZXM8L2E+PC9saT4KKzxsaT48YSBocmVmPSJhY2tub3dsZWRnbWVudHMuaHRtbCNhY2tub3dsZWRnbWVudHMiIGNsYXNzPSJuby1udW0iPkFja25vd2xlZGdtZW50czwvYT48L2xpPjwvb2w+PCEtLWVuZC10b2MtLT48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL3dpa2lfNDIvZXhwZWN0ZWQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL3dpa2lfNDIvZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmJmOGViCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NlcmlhbGl6YXRpb24vd2lraV80Mi9leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzE0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiIgZGlyPSJsdHIiIGNsYXNzPSJjbGllbnQtbm9qcyI+PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJVVEYtOCI+PHRpdGxlPjQyIChudW1iZXIpIC0gV2lraXBlZGlhLCB0aGUgZnJlZSBlbmN5Y2xvcGVkaWE8L3RpdGxlPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJNZWRpYVdpa2kgMS4yM3dtZjEwIj4KKzxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdpa2kiIHRpdGxlPSJFZGl0IHRoaXMgcGFnZSIgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCI+Cis8bGluayByZWw9ImVkaXQiIHRpdGxlPSJFZGl0IHRoaXMgcGFnZSIgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCI+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Ii8vYml0cy53aWtpbWVkaWEub3JnL2FwcGxlLXRvdWNoL3dpa2lwZWRpYS5wbmciPgorPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvL2JpdHMud2lraW1lZGlhLm9yZy9mYXZpY29uL3dpa2lwZWRpYS5pY28iPgorPGxpbmsgcmVsPSJzZWFyY2giIHR5cGU9ImFwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwiIGhyZWY9Ii93L29wZW5zZWFyY2hfZGVzYy5waHAiIHRpdGxlPSJXaWtpcGVkaWEgKGVuKSI+Cis8bGluayByZWw9IkVkaXRVUkkiIHR5cGU9ImFwcGxpY2F0aW9uL3JzZCt4bWwiIGhyZWY9Ii8vZW4ud2lraXBlZGlhLm9yZy93L2FwaS5waHA/YWN0aW9uPXJzZCI+Cis8bGluayByZWw9ImNvcHlyaWdodCIgaHJlZj0iLy9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzMuMC8iPgorPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL2F0b20reG1sIiB0aXRsZT0iV2lraXBlZGlhIEF0b20gZmVlZCIgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPVNwZWNpYWw6UmVjZW50Q2hhbmdlcyZhbXA7ZmVlZD1hdG9tIj4KKzxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpLzQyXyhudW1iZXIpIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy9iaXRzLndpa2ltZWRpYS5vcmcvZW4ud2lraXBlZGlhLm9yZy9sb2FkLnBocD9kZWJ1Zz1mYWxzZSZhbXA7bGFuZz1lbiZhbXA7bW9kdWxlcz1leHQuZmxhZ2dlZFJldnMuYmFzaWMlN0NleHQuZ2FkZ2V0LkRSTi13aXphcmQlMkNSZWZlcmVuY2VUb29sdGlwcyUyQ2NoYXJpbnNlcnQlMkN0ZWFob3VzZSU3Q2V4dC5ydGxjaXRlJTJDd2lraWhpZXJvJTdDZXh0LnZpc3VhbEVkaXRvci52aWV3UGFnZVRhcmdldC5ub3NjcmlwdCU3Q21lZGlhd2lraS5sZWdhY3kuY29tbW9uUHJpbnQlMkNzaGFyZWQlN0Nza2lucy5jb21tb24uaW50ZXJmYWNlJTdDc2tpbnMudmVjdG9yLnN0eWxlcyZhbXA7b25seT1zdHlsZXMmYW1wO3NraW49dmVjdG9yJmFtcDsqIj4KKzxtZXRhIG5hbWU9IlJlc291cmNlTG9hZGVyRHluYW1pY1N0eWxlcyIgY29udGVudD0iIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy9iaXRzLndpa2ltZWRpYS5vcmcvZW4ud2lraXBlZGlhLm9yZy9sb2FkLnBocD9kZWJ1Zz1mYWxzZSZhbXA7bGFuZz1lbiZhbXA7bW9kdWxlcz1zaXRlJmFtcDtvbmx5PXN0eWxlcyZhbXA7c2tpbj12ZWN0b3ImYW1wOyoiPgorPHN0eWxlPmE6bGFuZyhhciksYTpsYW5nKGtrLWFyYWIpLGE6bGFuZyhtem4pLGE6bGFuZyhwcyksYTpsYW5nKHVyKXt0ZXh0LWRlY29yYXRpb246bm9uZX0KKy8qIGNhY2hlIGtleTogZW53aWtpOnJlc291cmNlbG9hZGVyOmZpbHRlcjptaW5pZnktY3NzOjc6MzkwNGQyNGEwOGFhMDhmNmE2OGRjMzM4ZjliZTI3N2UgKi88L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iLy9iaXRzLndpa2ltZWRpYS5vcmcvZW4ud2lraXBlZGlhLm9yZy9sb2FkLnBocD9kZWJ1Zz1mYWxzZSZhbXA7bGFuZz1lbiZhbXA7bW9kdWxlcz1zdGFydHVwJmFtcDtvbmx5PXNjcmlwdHMmYW1wO3NraW49dmVjdG9yJmFtcDsqIj48L3NjcmlwdD4KKzxzY3JpcHQ+aWYod2luZG93Lm13KXsKK213LmNvbmZpZy5zZXQoeyJ3Z0Nhbm9uaWNhbE5hbWVzcGFjZSI6IiIsIndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIjpmYWxzZSwid2dOYW1lc3BhY2VOdW1iZXIiOjAsIndnUGFnZU5hbWUiOiI0Ml8obnVtYmVyKSIsIndnVGl0bGUiOiI0MiAobnVtYmVyKSIsIndnQ3VyUmV2aXNpb25JZCI6NTkyNzgyMTczLCJ3Z1JldmlzaW9uSWQiOjU5Mjc4MjE3Mywid2dBcnRpY2xlSWQiOjE5MTE3OCwid2dJc0FydGljbGUiOnRydWUsIndnSXNSZWRpcmVjdCI6ZmFsc2UsIndnQWN0aW9uIjoidmlldyIsIndnVXNlck5hbWUiOm51bGwsIndnVXNlckdyb3VwcyI6WyIqIl0sIndnQ2F0ZWdvcmllcyI6WyJDUzEgZXJyb3JzOiBkYXRlcyIsIldpa2lwZWRpYSBwZW5kaW5nIGNoYW5nZXMgcHJvdGVjdGVkIHBhZ2VzIChsZXZlbCAxKSIsIldpa2lwZWRpYSBwcm90ZWN0ZWQgcGFnZXMgd2l0aG91dCBleHBpcnkiLCJBcnRpY2xlcyBuZWVkaW5nIGFkZGl0aW9uYWwgcmVmZXJlbmNlcyBmcm9tIEZlYnJ1YXJ5IDIwMTEiLCJBbGwgYXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMiLCJBbGwgYXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyIsIkFydGljbGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHMgZnJvbSBGZWJydWFyeSAyMDExIiwiQ29tbW9ucyBjYXRlZ29yeSB3aXRoIGxvY2FsIGxpbmsgc2FtZSBhcyBvbiBXaWtpZGF0YSIsIkludGVnZXJzIl0sIndnQnJlYWtGcmFtZXMiOmZhbHNlLCJ3Z1BhZ2VDb250ZW50TGFuZ3VhZ2UiOiJlbiIsIndnUGFnZUNvbnRlbnRNb2RlbCI6Indpa2l0ZXh0Iiwid2dTZXBhcmF0b3JUcmFuc2Zvcm1UYWJsZSI6WyIiLCIiXSwid2dEaWdpdFRyYW5zZm9ybVRhYmxlIjpbIiIsIiJdLCJ3Z0RlZmF1bHREYXRlRm9ybWF0IjoiZG15Iiwid2dNb250aE5hbWVzIjpbIiIsIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sIndnTW9udGhOYW1lc1Nob3J0IjpbIiIsIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJ3Z1JlbGV2YW50UGFnZU5hbWUiOiI0Ml8obnVtYmVyKSIsIndnSXNQcm9iYWJseUVkaXRhYmxlIjp0cnVlLCJ3Z1Jlc3RyaWN0aW9uRWRpdCI6W10sIndnUmVzdHJpY3Rpb25Nb3ZlIjpbXSwid2dXaWtpRWRpdG9yRW5hYmxlZE1vZHVsZXMiOnsidG9vbGJhciI6dHJ1ZSwiZGlhbG9ncyI6dHJ1ZSwiaGlkZXNpZyI6dHJ1ZSwidGVtcGxhdGVFZGl0b3IiOmZhbHNlLCJ0ZW1wbGF0ZXMiOmZhbHNlLCJwcmV2aWV3IjpmYWxzZSwicHJldmlld0RpYWxvZyI6ZmFsc2UsInB1Ymxpc2giOmZhbHNlLCJ0b2MiOmZhbHNlfSwid2dBcnRpY2xlRmVlZGJhY2t2NVBlcm1pc3Npb25zIjp7ImFmdC1yZWFkZXIiOnRydWUsImFmdC1tZW1iZXIiOmZhbHNlLCJhZnQtZWRpdG9yIjpmYWxzZSwiYWZ0LW1vbml0b3IiOmZhbHNlLCJhZnQtYWRtaW5pc3RyYXRvciI6ZmFsc2UsImFmdC1vdmVyc2lnaHRlciI6ZmFsc2UsImFmdC1ub29uZSI6ZmFsc2V9LCJ3Z0JldGFGZWF0dXJlc0ZlYXR1cmVzIjpbXSwid2dWaXN1YWxFZGl0b3IiOnsiaXNQYWdlV2F0Y2hlZCI6ZmFsc2UsIm1hZ25pZnlDbGlwSWNvblVSTCI6Ii8vYml0cy53aWtpbWVkaWEub3JnL3N0YXRpYy0xLjIzd21mMTAvc2tpbnMvY29tbW9uL2ltYWdlcy9tYWduaWZ5LWNsaXAucG5nIiwicGFnZUxhbmd1YWdlQ29kZSI6ImVuIiwicGFnZUxhbmd1YWdlRGlyIjoibHRyIn0sIndpa2lsb3ZlLXJlY2lwaWVudCI6IiIsIndpa2lsb3ZlLWFub24iOjAsIndnR3VpZGVkVG91ckhlbHBHdWlkZXJVcmwiOiJIZWxwOkd1aWRlZCB0b3Vycy9ndWlkZXIiLCJ3Z1VMU0FjY2VwdExhbmd1YWdlTGlzdCI6WyJlbi11cyIsImVuIl0sIndnVUxTQ3VycmVudEF1dG9ueW0iOiJFbmdsaXNoIiwid2dGbGFnZ2VkUmV2c1BhcmFtcyI6eyJ0YWdzIjp7InN0YXR1cyI6eyJsZXZlbHMiOjEsInF1YWxpdHkiOjIsInByaXN0aW5lIjozfX19LCJ3Z1N0YWJsZVJldmlzaW9uSWQiOjU5Mjc4MjE3Mywid2dDYXRlZ29yeVRyZWVQYWdlQ2F0ZWdvcnlPcHRpb25zIjoie1wibW9kZVwiOjAsXCJoaWRlcHJlZml4XCI6MjAsXCJzaG93Y291bnRcIjp0cnVlLFwibmFtZXNwYWNlc1wiOmZhbHNlfSIsIkdlbyI6eyJjaXR5IjoiIiwiY291bnRyeSI6IiJ9LCJ3Z05vdGljZVByb2plY3QiOiJ3aWtpcGVkaWEiLCJhZnR2NUFydGljbGUiOnsiaWQiOjE5MTE3OCwidGl0bGUiOiI0MiAobnVtYmVyKSIsIm5hbWVzcGFjZSI6MCwiY2F0ZWdvcmllcyI6WyJBbGwgYXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMiLCJBbGwgYXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyIsIkFydGljbGVzIG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVuY2VzIGZyb20gRmVicnVhcnkgMjAxMSIsIkFydGljbGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHMgZnJvbSBGZWJydWFyeSAyMDExIiwiQ1MxIGVycm9yczogZGF0ZXMiLCJDb21tb25zIGNhdGVnb3J5IHdpdGggbG9jYWwgbGluayBzYW1lIGFzIG9uIFdpa2lkYXRhIiwiSW50ZWdlcnMiLCJXaWtpcGVkaWEgcGVuZGluZyBjaGFuZ2VzIHByb3RlY3RlZCBwYWdlcyAobGV2ZWwgMSkiLCJXaWtpcGVkaWEgcHJvdGVjdGVkIHBhZ2VzIHdpdGhvdXQgZXhwaXJ5Il0sInBlcm1pc3Npb25MZXZlbCI6ZmFsc2V9LCJ3Z1dpa2liYXNlSXRlbUlkIjoiUTgxMjk5NiJ9KTsKK308L3NjcmlwdD48c2NyaXB0PmlmKHdpbmRvdy5tdyl7Cittdy5sb2FkZXIuaW1wbGVtZW50KCJ1c2VyLm9wdGlvbnMiLGZ1bmN0aW9uKCl7bXcudXNlci5vcHRpb25zLnNldCh7ImNjbWVvbmVtYWlscyI6MCwiY29scyI6ODAsImRhdGUiOiJkZWZhdWx0IiwiZGlmZm9ubHkiOjAsImRpc2FibGVtYWlsIjowLCJlZGl0Zm9udCI6ImRlZmF1bHQiLCJlZGl0b25kYmxjbGljayI6MCwiZWRpdHNlY3Rpb24iOjEsImVkaXRzZWN0aW9ub25yaWdodGNsaWNrIjowLCJlbm90aWZtaW5vcmVkaXRzIjowLCJlbm90aWZyZXZlYWxhZGRyIjowLCJlbm90aWZ1c2VydGFsa3BhZ2VzIjoxLCJlbm90aWZ3YXRjaGxpc3RwYWdlcyI6MCwiZXh0ZW5kd2F0Y2hsaXN0IjowLCJmYW5jeXNpZyI6MCwiZm9yY2VlZGl0c3VtbWFyeSI6MCwiZ2VuZGVyIjoidW5rbm93biIsImhpZGVtaW5vciI6MCwiaGlkZXBhdHJvbGxlZCI6MCwiaW1hZ2VzaXplIjoyLCJqdXN0aWZ5IjowLCJtYXRoIjowLCJtaW5vcmRlZmF1bHQiOjAsIm5ld3BhZ2VzaGlkZXBhdHJvbGxlZCI6MCwibmlja25hbWUiOiIiLCJub2NvbnZlcnRsaW5rIjowLCJub3JvbGxiYWNrZGlmZiI6MCwibnVtYmVyaGVhZGluZ3MiOjAsInByZXZpZXdvbmZpcnN0IjowLCJwcmV2aWV3b250b3AiOjEsInJjZGF5cyI6NywicmNsaW1pdCI6NTAsInJlbWVtYmVycGFzc3dvcmQiOjAsInJvd3MiOjI1LCJzaG93aGlkZGVuY2F0cyI6ZmFsc2UsInNob3dudW1iZXJzd2F0Y2hpbmciOjEsInNob3d0b2MiOjEsInNob3d0b29sYmFyIjoxLCJza2luIjoidmVjdG9yIiwic3R1YnRocmVzaG9sZCI6MCwidGh1bWJzaXplIjo0LCJ1bmRlcmxpbmUiOjIsInVzZWxpdmVwcmV2aWV3IjowLCJ1c2VuZXdyYyI6MCwidmVjdG9yLXNpbXBsZXNlYXJjaCI6MSwid2F0Y2hjcmVhdGlvbnMiOjEsIndhdGNoZGVmYXVsdCI6MCwid2F0Y2hkZWxldGlvbiI6MCwid2F0Y2hsaXN0ZGF5cyI6Mywid2F0Y2hsaXN0aGlkZWFub25zIjowLCJ3YXRjaGxpc3RoaWRlYm90cyI6MCwid2F0Y2hsaXN0aGlkZWxpdSI6MCwKKyJ3YXRjaGxpc3RoaWRlbWlub3IiOjAsIndhdGNobGlzdGhpZGVvd24iOjAsIndhdGNobGlzdGhpZGVwYXRyb2xsZWQiOjAsIndhdGNobW92ZXMiOjAsIndsbGltaXQiOjI1MCwidXNlZWRpdHdhcm5pbmciOjEsInByZWZlcnNodHRwcyI6MSwiZmxhZ2dlZHJldnNzaW1wbGV1aSI6MSwiZmxhZ2dlZHJldnNzdGFibGUiOjAsImZsYWdnZWRyZXZzZWRpdGRpZmZzIjp0cnVlLCJmbGFnZ2VkcmV2c3ZpZXdkaWZmcyI6ZmFsc2UsInVzZWJldGF0b29sYmFyIjoxLCJ1c2ViZXRhdG9vbGJhci1jZ2QiOjEsImFmdHY1LWxhc3QtZmlsdGVyIjpudWxsLCJ2aXN1YWxlZGl0b3ItZW5hYmxlIjowLCJ2aXN1YWxlZGl0b3ItZW5hYmxlLWV4cGVyaW1lbnRhbCI6MCwidmlzdWFsZWRpdG9yLWVuYWJsZS1td21hdGgiOjAsInZpc3VhbGVkaXRvci1iZXRhdGVtcGRpc2FibGUiOjAsIndpa2lsb3ZlLWVuYWJsZWQiOjEsImVjaG8tc3Vic2NyaXB0aW9ucy13ZWItcGFnZS1yZXZpZXciOnRydWUsImVjaG8tc3Vic2NyaXB0aW9ucy1lbWFpbC1wYWdlLXJldmlldyI6ZmFsc2UsImVwX3Nob3d0b3BsaW5rIjpmYWxzZSwiZXBfYnVsa2RlbG9yZ3MiOmZhbHNlLCJlcF9idWxrZGVsY291cnNlcyI6dHJ1ZSwiZXBfc2hvd2R5ayI6dHJ1ZSwiZWNoby1ub3RpZnktc2hvdy1saW5rIjp0cnVlLCJlY2hvLXNob3ctYWxlcnQiOnRydWUsImVjaG8tZW1haWwtZnJlcXVlbmN5IjowLCJlY2hvLWVtYWlsLWZvcm1hdCI6Imh0bWwiLCJlY2hvLXN1YnNjcmlwdGlvbnMtZW1haWwtc3lzdGVtIjp0cnVlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLXN5c3RlbSI6dHJ1ZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLW90aGVyIjpmYWxzZSwiZWNoby1zdWJzY3JpcHRpb25zLXdlYi1vdGhlciI6dHJ1ZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLWVkaXQtdXNlci10YWxrIjpmYWxzZSwiZWNoby1zdWJzY3JpcHRpb25zLXdlYi1lZGl0LXVzZXItdGFsayI6dHJ1ZSwKKyJlY2hvLXN1YnNjcmlwdGlvbnMtZW1haWwtcmV2ZXJ0ZWQiOmZhbHNlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLXJldmVydGVkIjp0cnVlLCJlY2hvLXN1YnNjcmlwdGlvbnMtZW1haWwtYXJ0aWNsZS1saW5rZWQiOmZhbHNlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLWFydGljbGUtbGlua2VkIjpmYWxzZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLW1lbnRpb24iOmZhbHNlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLW1lbnRpb24iOnRydWUsImVjaG8tc3Vic2NyaXB0aW9ucy13ZWItZWRpdC10aGFuayI6dHJ1ZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLWVkaXQtdGhhbmsiOmZhbHNlLCJnZXR0aW5nc3RhcnRlZC10YXNrLXRvb2xiYXItc2hvdy1pbnRybyI6dHJ1ZSwidWxzLXByZWZlcmVuY2VzIjoiIiwidWxzLWVuYWJsZSI6IiIsImxhbmd1YWdlIjoiZW4iLCJ2YXJpYW50LWdhbiI6ImdhbiIsInZhcmlhbnQtaXUiOiJpdSIsInZhcmlhbnQta2siOiJrayIsInZhcmlhbnQta3UiOiJrdSIsInZhcmlhbnQtc2hpIjoic2hpIiwidmFyaWFudC1zciI6InNyIiwidmFyaWFudC10ZyI6InRnIiwidmFyaWFudC11eiI6InV6IiwidmFyaWFudC16aCI6InpoIiwic2VhcmNoTnMwIjp0cnVlLCJzZWFyY2hOczEiOmZhbHNlLCJzZWFyY2hOczIiOmZhbHNlLCJzZWFyY2hOczMiOmZhbHNlLCJzZWFyY2hOczQiOmZhbHNlLCJzZWFyY2hOczUiOmZhbHNlLCJzZWFyY2hOczYiOmZhbHNlLCJzZWFyY2hOczciOmZhbHNlLCJzZWFyY2hOczgiOmZhbHNlLCJzZWFyY2hOczkiOmZhbHNlLCJzZWFyY2hOczEwIjpmYWxzZSwic2VhcmNoTnMxMSI6ZmFsc2UsInNlYXJjaE5zMTIiOmZhbHNlLCJzZWFyY2hOczEzIjpmYWxzZSwic2VhcmNoTnMxNCI6ZmFsc2UsInNlYXJjaE5zMTUiOmZhbHNlLCJzZWFyY2hOczEwMCI6ZmFsc2UsInNlYXJjaE5zMTAxIjpmYWxzZSwic2VhcmNoTnMxMDgiOmZhbHNlLCJzZWFyY2hOczEwOSI6ZmFsc2UsInNlYXJjaE5zMTE4IjpmYWxzZSwKKyJzZWFyY2hOczExOSI6ZmFsc2UsInNlYXJjaE5zNDQ2IjpmYWxzZSwic2VhcmNoTnM0NDciOmZhbHNlLCJzZWFyY2hOczcxMCI6ZmFsc2UsInNlYXJjaE5zNzExIjpmYWxzZSwic2VhcmNoTnM4MjgiOmZhbHNlLCJzZWFyY2hOczgyOSI6ZmFsc2UsImdhZGdldC10ZWFob3VzZSI6MSwiZ2FkZ2V0LVJlZmVyZW5jZVRvb2x0aXBzIjoxLCJnYWRnZXQtRFJOLXdpemFyZCI6MSwiZ2FkZ2V0LWNoYXJpbnNlcnQiOjEsImdhZGdldC1teVNhbmRib3giOjEsInZhcmlhbnQiOiJlbiJ9KTt9LHt9LHt9KTttdy5sb2FkZXIuaW1wbGVtZW50KCJ1c2VyLnRva2VucyIsZnVuY3Rpb24oKXttdy51c2VyLnRva2Vucy5zZXQoeyJlZGl0VG9rZW4iOiIrXFwiLCJwYXRyb2xUb2tlbiI6ZmFsc2UsIndhdGNoVG9rZW4iOmZhbHNlfSk7fSx7fSx7fSk7CisvKiBjYWNoZSBrZXk6IGVud2lraTpyZXNvdXJjZWxvYWRlcjpmaWx0ZXI6bWluaWZ5LWpzOjc6MDk5M2I4ODk4ODI1MzdhODE4ZTQwZTE4YWQyNWIwOWQgKi8KK308L3NjcmlwdD4KKzxzY3JpcHQ+aWYod2luZG93Lm13KXsKK213LmxvYWRlci5sb2FkKFsibWVkaWF3aWtpLnBhZ2Uuc3RhcnR1cCIsIm1lZGlhd2lraS5sZWdhY3kud2lraWJpdHMiLCJtZWRpYXdpa2kubGVnYWN5LmFqYXgiLCJleHQuY2VudHJhbGF1dGguY2VudHJhbGF1dG9sb2dpbiIsImV4dC52aXN1YWxFZGl0b3Iudmlld1BhZ2VUYXJnZXQuaW5pdCIsIndpa2liYXNlLmNsaWVudC5pbml0IiwiZXh0LmNlbnRyYWxOb3RpY2UuYmFubmVyQ29udHJvbGxlciIsInNraW5zLnZlY3Rvci5qcyJdKTsKK308L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvL2JpdHMud2lraW1lZGlhLm9yZy9nZW9pcGxvb2t1cCI+PC9zY3JpcHQ+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Ii8vbWV0YS53aWtpbWVkaWEub3JnIj48IS0tW2lmIGx0IElFIDddPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ym9keXtiZWhhdmlvcjp1cmwoIi93L3N0YXRpYy0xLjIzd21mMTAvc2tpbnMvdmVjdG9yL2Nzc2hvdmVyLm1pbi5odGMiKX08L3N0eWxlPjwhW2VuZGlmXS0tPjwvaGVhZD4KKzxib2R5IGNsYXNzPSJtZWRpYXdpa2kgbHRyIHNpdGVkaXItbHRyIG5zLTAgbnMtc3ViamVjdCBwYWdlLTQyX251bWJlciBza2luLXZlY3RvciBhY3Rpb24tdmlldyB2ZWN0b3ItYW5pbWF0ZUxheW91dCI+Cis8ZGl2IGlkPSJtdy1wYWdlLWJhc2UiIGNsYXNzPSJub3ByaW50Ij48L2Rpdj4KKzxkaXYgaWQ9Im13LWhlYWQtYmFzZSIgY2xhc3M9Im5vcHJpbnQiPjwvZGl2PgorPGRpdiBpZD0iY29udGVudCIgY2xhc3M9Im13LWJvZHkiIHJvbGU9Im1haW4iPgorPGEgaWQ9InRvcCI+PC9hPgorPGRpdiBpZD0ibXctanMtbWVzc2FnZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvZGl2PgorPGRpdiBpZD0ic2l0ZU5vdGljZSI+PCEtLSBDZW50cmFsTm90aWNlIC0tPjwvZGl2PgorPGgxIGlkPSJmaXJzdEhlYWRpbmciIGNsYXNzPSJmaXJzdEhlYWRpbmciIGxhbmc9ImVuIj48c3BhbiBkaXI9ImF1dG8iPjQyIChudW1iZXIpPC9zcGFuPjwvaDE+Cis8ZGl2IGlkPSJib2R5Q29udGVudCI+Cis8ZGl2IGlkPSJzaXRlU3ViIj5Gcm9tIFdpa2lwZWRpYSwgdGhlIGZyZWUgZW5jeWNsb3BlZGlhPC9kaXY+Cis8ZGl2IGlkPSJjb250ZW50U3ViIj48ZGl2IGlkPSJtdy1mci1yZXZpc2lvbnRhZyIgY2xhc3M9ImZsYWdnZWRyZXZzX3Nob3J0IHBsYWlubGlua3Mgbm9wcmludCI+PGRpdiBjbGFzcz0iZmxhZ2dlZHJldnNfc2hvcnRfYmFzaWMiPjxpbWcgY2xhc3M9ImZsYWdnZWRyZXZzLWljb24iIHNyYz0iLy9iaXRzLndpa2ltZWRpYS5vcmcvc3RhdGljLTEuMjN3bWYxMC9leHRlbnNpb25zL0ZsYWdnZWRSZXZzL2Zyb250ZW5kL21vZHVsZXMvaW1nL2RvYy1tYWduaWZ5LnBuZyIgYWx0PSJDaGFuZ2VzIG11c3QgYmUgcmV2aWV3ZWQgYmVmb3JlIGJlaW5nIGRpc3BsYXllZCBvbiB0aGlzIHBhZ2UuIiB0aXRsZT0iQ2hhbmdlcyBtdXN0IGJlIHJldmlld2VkIGJlZm9yZSBiZWluZyBkaXNwbGF5ZWQgb24gdGhpcyBwYWdlLiI+PGltZyBpZD0ibXctZnItcmV2aXNpb250b2dnbGUiIGNsYXNzPSJmci10b2dnbGUtYXJyb3ciIHNyYz0iLy9iaXRzLndpa2ltZWRpYS5vcmcvc3RhdGljLTEuMjN3bWYxMC9leHRlbnNpb25zL0ZsYWdnZWRSZXZzL2Zyb250ZW5kL21vZHVsZXMvaW1nL2Fycm93LWRvd24ucG5nIiBzdHlsZT0iZGlzcGxheTpub25lOyIgYWx0PSJzaG93L2hpZGUgZGV0YWlscyI+PC9kaXY+Cis8ZGl2IGlkPSJtdy1mci1yZXZpc2lvbmRldGFpbHMtd3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyI+PGRpdiBpZD0ibXctZnItcmV2aXNpb25kZXRhaWxzIiBjbGFzcz0iZmxhZ2dlZHJldnNfc2hvcnRfZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+VGhpcyBpcyB0aGUgPGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOlBlbmRpbmdfY2hhbmdlcyIgdGl0bGU9Ildpa2lwZWRpYTpQZW5kaW5nIGNoYW5nZXMiPmxhdGVzdCBhY2NlcHRlZCByZXZpc2lvbjwvYT4sIDxhIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9U3BlY2lhbDpMb2cmYW1wO3R5cGU9cmV2aWV3JmFtcDtwYWdlPTQyXyhudW1iZXIpIj5hY2NlcHRlZDwvYT4gb24gPGk+MjggSmFudWFyeSAyMDE0PC9pPi48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9Imp1bXAtdG8tbmF2IiBjbGFzcz0ibXctanVtcCI+CitKdW1wIHRvOgkJCQkJPGEgaHJlZj0iI213LW5hdmlnYXRpb24iPm5hdmlnYXRpb248L2E+LCAJCQkJCTxhIGhyZWY9IiNwLXNlYXJjaCI+c2VhcmNoPC9hPgorPC9kaXY+Cis8ZGl2IGlkPSJtdy1jb250ZW50LXRleHQiIGxhbmc9ImVuIiBkaXI9Imx0ciIgY2xhc3M9Im13LWNvbnRlbnQtbHRyIj48ZGl2IGNsYXNzPSJtZXRhZGF0YSB0b3BpY29uIG5vcG9wdXBzIiBpZD0icHJvdGVjdGVkLWljb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7IHJpZ2h0OjI1cHg7Ij48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6UHJvdGVjdGlvbl9wb2xpY3kjcGMxIiB0aXRsZT0iQWxsIGVkaXRzIGJ5IHVucmVnaXN0ZXJlZCBhbmQgbmV3IHVzZXJzIGFyZSBzdWJqZWN0IHRvIHJldmlldy4iPjxpbWcgYWx0PSJQYWdlIHByb3RlY3RlZCB3aXRoIHBlbmRpbmcgY2hhbmdlcyBsZXZlbCAxIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvMi8yOC9QYWRsb2NrLXNpbHZlci1saWdodC5zdmcvMjBweC1QYWRsb2NrLXNpbHZlci1saWdodC5zdmcucG5nIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHNyY3NldD0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8yLzI4L1BhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy8zMHB4LVBhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy5wbmcgMS41eCwgLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8yLzI4L1BhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy80MHB4LVBhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy5wbmcgMngiPjwvYT48L2Rpdj4KKzxkaXYgY2xhc3M9Im1ldGFkYXRhIHRvcGljb24gbm9wb3B1cHMiIGlkPSJwcm90ZWN0ZWQtaWNvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgcmlnaHQ6MjVweDsiPjxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpQcm90ZWN0aW9uX3BvbGljeSNwYzEiIHRpdGxlPSJBbGwgZWRpdHMgYnkgdW5yZWdpc3RlcmVkIGFuZCBuZXcgdXNlcnMgYXJlIHN1YmplY3QgdG8gcmV2aWV3LiI+PGltZyBhbHQ9IlBhZ2UgcHJvdGVjdGVkIHdpdGggcGVuZGluZyBjaGFuZ2VzIGxldmVsIDEiIHNyYz0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8yLzI4L1BhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy8yMHB4LVBhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy5wbmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgc3Jjc2V0PSIvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iLzIvMjgvUGFkbG9jay1zaWx2ZXItbGlnaHQuc3ZnLzMwcHgtUGFkbG9jay1zaWx2ZXItbGlnaHQuc3ZnLnBuZyAxLjV4LCAvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iLzIvMjgvUGFkbG9jay1zaWx2ZXItbGlnaHQuc3ZnLzQwcHgtUGFkbG9jay1zaWx2ZXItbGlnaHQuc3ZnLnBuZyAyeCI+PC9hPjwvZGl2PgorPHRhYmxlIGNsYXNzPSJtZXRhZGF0YSBwbGFpbmxpbmtzIGFtYm94IGFtYm94LWNvbnRlbnQgYW1ib3gtUmVmaW1wcm92ZSIgcm9sZT0icHJlc2VudGF0aW9uIj4KKzx0Ym9keT48dHI+Cis8dGQgY2xhc3M9Im1ib3gtaW1hZ2UiPgorPGRpdiBzdHlsZT0id2lkdGg6NTJweDsiPjxhIGhyZWY9Ii93aWtpL0ZpbGU6UXVlc3Rpb25fYm9vay1uZXcuc3ZnIiBjbGFzcz0iaW1hZ2UiPjxpbWcgYWx0PSIiIHNyYz0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvZW4vdGh1bWIvOS85OS9RdWVzdGlvbl9ib29rLW5ldy5zdmcvNTBweC1RdWVzdGlvbl9ib29rLW5ldy5zdmcucG5nIiB3aWR0aD0iNTAiIGhlaWdodD0iMzkiIHNyY3NldD0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvZW4vdGh1bWIvOS85OS9RdWVzdGlvbl9ib29rLW5ldy5zdmcvNzVweC1RdWVzdGlvbl9ib29rLW5ldy5zdmcucG5nIDEuNXgsIC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL3RodW1iLzkvOTkvUXVlc3Rpb25fYm9vay1uZXcuc3ZnLzEwMHB4LVF1ZXN0aW9uX2Jvb2stbmV3LnN2Zy5wbmcgMngiPjwvYT48L2Rpdj4KKzwvdGQ+Cis8dGQgY2xhc3M9Im1ib3gtdGV4dCI+PHNwYW4gY2xhc3M9Im1ib3gtdGV4dC1zcGFuIj5UaGlzIGFydGljbGUgPGI+bmVlZHMgYWRkaXRpb25hbCBjaXRhdGlvbnMgZm9yIDxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpWZXJpZmlhYmlsaXR5IiB0aXRsZT0iV2lraXBlZGlhOlZlcmlmaWFiaWxpdHkiPnZlcmlmaWNhdGlvbjwvYT48L2I+LiA8c3BhbiBjbGFzcz0iaGlkZS13aGVuLWNvbXBhY3QiPlBsZWFzZSBoZWxwIDxhIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0Ij5pbXByb3ZlIHRoaXMgYXJ0aWNsZTwvYT4gYnkgPGEgaHJlZj0iL3dpa2kvSGVscDpJbnRyb2R1Y3Rpb25fdG9fcmVmZXJlbmNpbmcvMSIgdGl0bGU9IkhlbHA6SW50cm9kdWN0aW9uIHRvIHJlZmVyZW5jaW5nLzEiPmFkZGluZyBjaXRhdGlvbnMgdG8gcmVsaWFibGUgc291cmNlczwvYT4uIFVuc291cmNlZCBtYXRlcmlhbCBtYXkgYmUgY2hhbGxlbmdlZCBhbmQgcmVtb3ZlZC48L3NwYW4+IDxzbWFsbD48aT4oRmVicnVhcnkgMjAxMSk8L2k+PC9zbWFsbD48L3NwYW4+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8dGFibGUgY2xhc3M9ImluZm9ib3giIGNlbGxzcGFjaW5nPSIzIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6M3B4O3dpZHRoOjIyZW07bGluZS1oZWlnaHQ6IDEuNWVtOyI+Cis8dGJvZHk+PHRyPgorPHRoIGNvbHNwYW49IjIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTI1JTtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTogMTUwJTsiPgorPHRhYmxlIHN0eWxlPSJ3aWR0aDoxMDAlOyBtYXJnaW46MCI+Cis8dGJvZHk+PHRyPgorPHRkIHN0eWxlPSJ3aWR0aDoxNSU7IHRleHQtYWxpZ246bGVmdDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgZm9udC1zaXplOnNtYWxsZXIiPjxhIGhyZWY9Ii93aWtpLzQxXyhudW1iZXIpIiB0aXRsZT0iNDEgKG51bWJlcikiPjxzcGFuIGNsYXNzPSJVbmljb2RlIj7ihpA8L3NwYW4+IDQxPC9hPjwvdGQ+Cis8dGQgc3R5bGU9IndpZHRoOjcwJTsgcGFkZGluZy1sZWZ0OjFlbTsgcGFkZGluZy1yaWdodDoxZW0iPjQyPC90ZD4KKzx0ZCBzdHlsZT0id2lkdGg6MTUlOyB0ZXh0LWFsaWduOnJpZ2h0OyB3aGl0ZS1zcGFjZTogbm93cmFwOyBmb250LXNpemU6c21hbGxlciI+PGEgaHJlZj0iL3dpa2kvNDNfKG51bWJlcikiIHRpdGxlPSI0MyAobnVtYmVyKSI+NDMgPHNwYW4gY2xhc3M9IlVuaWNvZGUiPuKGkjwvc3Bhbj48L2E+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L3RoPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEwMCU7OyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6c21hbGxlcjt3aGl0ZS1zcGFjZTpub3dyYXA7Ij48YSBocmVmPSIvd2lraS8zOV8obnVtYmVyKSIgdGl0bGU9IjM5IChudW1iZXIpIj48c3BhbiBjbGFzcz0iVW5pY29kZSI+4oaQPC9zcGFuPjwvYT4gPGEgaHJlZj0iL3dpa2kvNDBfKG51bWJlcikiIHRpdGxlPSI0MCAobnVtYmVyKSI+NDA8L2E+IDxhIGhyZWY9Ii93aWtpLzQxXyhudW1iZXIpIiB0aXRsZT0iNDEgKG51bWJlcikiPjQxPC9hPiA8c3Ryb25nIGNsYXNzPSJzZWxmbGluayI+NDI8L3N0cm9uZz4gPGEgaHJlZj0iL3dpa2kvNDNfKG51bWJlcikiIHRpdGxlPSI0MyAobnVtYmVyKSI+NDM8L2E+IDxhIGhyZWY9Ii93aWtpLzQ0XyhudW1iZXIpIiB0aXRsZT0iNDQgKG51bWJlcikiPjQ0PC9hPiA8YSBocmVmPSIvd2lraS80NV8obnVtYmVyKSIgdGl0bGU9IjQ1IChudW1iZXIpIj40NTwvYT4gPGEgaHJlZj0iL3dpa2kvNDZfKG51bWJlcikiIHRpdGxlPSI0NiAobnVtYmVyKSI+NDY8L2E+IDxhIGhyZWY9Ii93aWtpLzQ3XyhudW1iZXIpIiB0aXRsZT0iNDcgKG51bWJlcikiPjQ3PC9hPiA8YSBocmVmPSIvd2lraS80OF8obnVtYmVyKSIgdGl0bGU9IjQ4IChudW1iZXIpIj40ODwvYT4gPGEgaHJlZj0iL3dpa2kvNDlfKG51bWJlcikiIHRpdGxlPSI0OSAobnVtYmVyKSI+NDk8L2E+IDxhIGhyZWY9Ii93aWtpLzUwXyhudW1iZXIpIiB0aXRsZT0iNTAgKG51bWJlcikiPjxzcGFuIGNsYXNzPSJVbmljb2RlIj7ihpI8L3NwYW4+PC9hPjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOnNtYWxsZXI7d2hpdGUtc3BhY2U6bm93cmFwOyI+PGEgaHJlZj0iL3dpa2kvTGlzdF9vZl9udW1iZXJzIiB0aXRsZT0iTGlzdCBvZiBudW1iZXJzIj5MaXN0IG9mIG51bWJlcnM8L2E+IOKAlCA8YSBocmVmPSIvd2lraS9JbnRlZ2VyIiB0aXRsZT0iSW50ZWdlciI+SW50ZWdlcnM8L2E+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6c21hbGxlcjt3aGl0ZS1zcGFjZTpub3dyYXA7Ij48YSBocmVmPSIvd2lraS9OZWdhdGl2ZV9udW1iZXIiIHRpdGxlPSJOZWdhdGl2ZSBudW1iZXIiPjxzcGFuIGNsYXNzPSJVbmljb2RlIj7ihpA8L3NwYW4+PC9hPiA8YSBocmVmPSIvd2lraS8wXyhudW1iZXIpIiB0aXRsZT0iMCAobnVtYmVyKSI+MDwvYT4gPGEgaHJlZj0iL3dpa2kvMTBfKG51bWJlcikiIHRpdGxlPSIxMCAobnVtYmVyKSI+MTA8L2E+IDxhIGhyZWY9Ii93aWtpLzIwXyhudW1iZXIpIiB0aXRsZT0iMjAgKG51bWJlcikiPjIwPC9hPiA8YSBocmVmPSIvd2lraS8zMF8obnVtYmVyKSIgdGl0bGU9IjMwIChudW1iZXIpIj4zMDwvYT4gPGEgaHJlZj0iL3dpa2kvNDBfKG51bWJlcikiIHRpdGxlPSI0MCAobnVtYmVyKSI+NDA8L2E+IDxhIGhyZWY9Ii93aWtpLzUwXyhudW1iZXIpIiB0aXRsZT0iNTAgKG51bWJlcikiPjUwPC9hPiA8YSBocmVmPSIvd2lraS82MF8obnVtYmVyKSIgdGl0bGU9IjYwIChudW1iZXIpIj42MDwvYT4gPGEgaHJlZj0iL3dpa2kvNzBfKG51bWJlcikiIHRpdGxlPSI3MCAobnVtYmVyKSI+NzA8L2E+IDxhIGhyZWY9Ii93aWtpLzgwXyhudW1iZXIpIiB0aXRsZT0iODAgKG51bWJlcikiPjgwPC9hPiA8YSBocmVmPSIvd2lraS85MF8obnVtYmVyKSIgdGl0bGU9IjkwIChudW1iZXIpIj45MDwvYT4gPGEgaHJlZj0iL3dpa2kvMTAwXyhudW1iZXIpIiB0aXRsZT0iMTAwIChudW1iZXIpIj48c3BhbiBjbGFzcz0iVW5pY29kZSI+4oaSPC9zcGFuPjwvYT48L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvQ2FyZGluYWxfbnVtYmVyXyhsaW5ndWlzdGljcykiIHRpdGxlPSJDYXJkaW5hbCBudW1iZXIgKGxpbmd1aXN0aWNzKSI+Q2FyZGluYWw8L2E+PC90aD4KKzx0ZD5mb3J0eS10d288L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL09yZGluYWxfbnVtYmVyXyhsaW5ndWlzdGljcykiIHRpdGxlPSJPcmRpbmFsIG51bWJlciAobGluZ3Vpc3RpY3MpIj5PcmRpbmFsPC9hPjwvdGg+Cis8dGQ+NDJuZDxicj4KKyhmb3J0eS1zZWNvbmQpPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9GYWN0b3JpemF0aW9uIiB0aXRsZT0iRmFjdG9yaXphdGlvbiI+RmFjdG9yaXphdGlvbjwvYT48L3RoPgorPHRkPjxzcGFuIGNsYXNzPSJ0ZXhodG1sIiBzdHlsZT0iZm9udC1zaXplOjE2NSUiPjIgwrcgMyDCtyA3PC9zcGFuPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvRGl2aXNvciIgdGl0bGU9IkRpdmlzb3IiPkRpdmlzb3JzPC9hPjwvdGg+Cis8dGQ+MSwgMiwgMywgNiwgNywgMTQsIDIxLCA0MjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvUm9tYW5fbnVtZXJhbHMiIHRpdGxlPSJSb21hbiBudW1lcmFscyI+Um9tYW4gbnVtZXJhbDwvYT48L3RoPgorPHRkPlhMSUk8L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL1VuaWNvZGUiIHRpdGxlPSJVbmljb2RlIj5Vbmljb2RlPC9hPiBzeW1ib2wocyk8L3RoPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvR3JlZWtfbGFuZ3VhZ2UiIHRpdGxlPSJHcmVlayBsYW5ndWFnZSI+R3JlZWs8L2E+IDxhIGhyZWY9Ii93aWtpL051bWVyYWxfcHJlZml4IiB0aXRsZT0iTnVtZXJhbCBwcmVmaXgiPnByZWZpeDwvYT48L3RoPgorPHRkPs68zrI8L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL0JpbmFyeV9udW1iZXIiIHRpdGxlPSJCaW5hcnkgbnVtYmVyIj5CaW5hcnk8L2E+PC90aD4KKzx0ZD4xMDEwMTA8c3ViPjI8L3N1Yj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL1Rlcm5hcnlfbnVtZXJhbF9zeXN0ZW0iIHRpdGxlPSJUZXJuYXJ5IG51bWVyYWwgc3lzdGVtIj5UZXJuYXJ5PC9hPjwvdGg+Cis8dGQ+MTEyMDxzdWI+Mzwvc3ViPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvUXVhdGVybmFyeV9udW1lcmFsX3N5c3RlbSIgdGl0bGU9IlF1YXRlcm5hcnkgbnVtZXJhbCBzeXN0ZW0iPlF1YXRlcm5hcnk8L2E+PC90aD4KKzx0ZD4yMjI8c3ViPjQ8L3N1Yj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL1F1aW5hcnkiIHRpdGxlPSJRdWluYXJ5Ij5RdWluYXJ5PC9hPjwvdGg+Cis8dGQ+MTMyPHN1Yj41PC9zdWI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9TZW5hcnkiIHRpdGxlPSJTZW5hcnkiPlNlbmFyeTwvYT48L3RoPgorPHRkPjExMDxzdWI+Njwvc3ViPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvT2N0YWwiIHRpdGxlPSJPY3RhbCI+T2N0YWw8L2E+PC90aD4KKzx0ZD41MjxzdWI+ODwvc3ViPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvRHVvZGVjaW1hbCIgdGl0bGU9IkR1b2RlY2ltYWwiPkR1b2RlY2ltYWw8L2E+PC90aD4KKzx0ZD4zNjxzdWI+MTI8L3N1Yj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL0hleGFkZWNpbWFsIiB0aXRsZT0iSGV4YWRlY2ltYWwiPkhleGFkZWNpbWFsPC9hPjwvdGg+Cis8dGQ+MkE8c3ViPjE2PC9zdWI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9WaWdlc2ltYWwiIHRpdGxlPSJWaWdlc2ltYWwiPlZpZ2VzaW1hbDwvYT48L3RoPgorPHRkPjIyPHN1Yj4yMDwvc3ViPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvQmFzZV8zNiIgdGl0bGU9IkJhc2UgMzYiPkJhc2UgMzY8L2E+PC90aD4KKzx0ZD4xNjxzdWI+MzY8L3N1Yj48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzxwPjxiPjQyPC9iPiAoPGI+Zm9ydHktdHdvPC9iPikgaXMgdGhlIDxhIGhyZWY9Ii93aWtpL05hdHVyYWxfbnVtYmVyIiB0aXRsZT0iTmF0dXJhbCBudW1iZXIiPm5hdHVyYWwgbnVtYmVyPC9hPiBpbW1lZGlhdGVseSBmb2xsb3dpbmcgPGEgaHJlZj0iL3dpa2kvNDFfKG51bWJlcikiIHRpdGxlPSI0MSAobnVtYmVyKSI+NDE8L2E+IGFuZCBkaXJlY3RseSBwcmVjZWRpbmcgPGEgaHJlZj0iL3dpa2kvNDNfKG51bWJlcikiIHRpdGxlPSI0MyAobnVtYmVyKSI+NDM8L2E+LiBUaGUgbnVtYmVyIGhhcyByZWNlaXZlZCBjb25zaWRlcmFibGUgYXR0ZW50aW9uIGluIHBvcHVsYXIgY3VsdHVyZSBhcyBhIHJlc3VsdCBvZiBpdHMgY2VudHJhbCBhcHBlYXJhbmNlIGluIDxpPjxhIGhyZWY9Ii93aWtpL1RoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5IiB0aXRsZT0iVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5Ij5UaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHk8L2E+PC9pPiBhcyB0aGUgIjxhIGhyZWY9Ii93aWtpL1BocmFzZXNfZnJvbV9UaGVfSGl0Y2hoaWtlciUyN3NfR3VpZGVfdG9fdGhlX0dhbGF4eSNBbnN3ZXJfdG9fdGhlX1VsdGltYXRlX1F1ZXN0aW9uX29mX0xpZmUuMkNfdGhlX1VuaXZlcnNlLjJDX2FuZF9FdmVyeXRoaW5nXy4yODQyLjI5IiB0aXRsZT0iUGhyYXNlcyBmcm9tIFRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eSI+QW5zd2VyIHRvIFRoZSBVbHRpbWF0ZSBRdWVzdGlvbiBvZiBMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nPC9hPiIuPC9wPgorPHA+PC9wPgorPGRpdiBpZD0idG9jIiBjbGFzcz0idG9jIj4KKzxkaXYgaWQ9InRvY3RpdGxlIj4KKzxoMj5Db250ZW50czwvaDI+Cis8L2Rpdj4KKzx1bD4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTEiPjxhIGhyZWY9IiNNYXRoZW1hdGljcyI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+MTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPk1hdGhlbWF0aWNzPC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMiI+PGEgaHJlZj0iI1NjaWVuY2UiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjI8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5TY2llbmNlPC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMyI+PGEgaHJlZj0iI1RlY2hub2xvZ3kiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjM8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5UZWNobm9sb2d5PC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tNCI+PGEgaHJlZj0iI0FzdHJvbm9teSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+NDwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPkFzdHJvbm9teTwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTUiPjxhIGhyZWY9IiNSZWxpZ2lvbiI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+NTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlJlbGlnaW9uPC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tNiI+PGEgaHJlZj0iI1BvcHVsYXJfY3VsdHVyZSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+Njwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlBvcHVsYXIgY3VsdHVyZTwvc3Bhbj48L2E+Cis8dWw+Cis8bGkgY2xhc3M9InRvY2xldmVsLTIgdG9jc2VjdGlvbi03Ij48YSBocmVmPSIjVGhlX0hpdGNoaGlrZXIuMjdzX0d1aWRlX3RvX3RoZV9HYWxheHkiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjYuMTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPjxpPlRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eTwvaT48L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTIgdG9jc2VjdGlvbi04Ij48YSBocmVmPSIjV29ya3Nfb2ZfTGV3aXNfQ2Fycm9sbCI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+Ni4yPC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+V29ya3Mgb2YgTGV3aXMgQ2Fycm9sbDwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMiB0b2NzZWN0aW9uLTkiPjxhIGhyZWY9IiNNdXNpYyI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+Ni4zPC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+TXVzaWM8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTIgdG9jc2VjdGlvbi0xMCI+PGEgaHJlZj0iI1RlbGV2aXNpb25fYW5kX2ZpbG0iPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjYuNDwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlRlbGV2aXNpb24gYW5kIGZpbG08L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTIgdG9jc2VjdGlvbi0xMSI+PGEgaHJlZj0iI1ZpZGVvX2dhbWVzIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj42LjU8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5WaWRlbyBnYW1lczwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMiB0b2NzZWN0aW9uLTEyIj48YSBocmVmPSIjU3BvcnRzIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj42LjY8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5TcG9ydHM8L3NwYW4+PC9hPjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTEzIj48YSBocmVmPSIjT3RoZXJfZmllbGRzIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj43PC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+T3RoZXIgZmllbGRzPC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMTQiPjxhIGhyZWY9IiNPdGhlcl9sYW5ndWFnZXMiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjg8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5PdGhlciBsYW5ndWFnZXM8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTEgdG9jc2VjdGlvbi0xNSI+PGEgaHJlZj0iI1JlZmVyZW5jZXMiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjk8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5SZWZlcmVuY2VzPC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMTYiPjxhIGhyZWY9IiNFeHRlcm5hbF9saW5rcyI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+MTA8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5FeHRlcm5hbCBsaW5rczwvc3Bhbj48L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzxwPjwvcD4KKzxoMj48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJNYXRoZW1hdGljcyI+TWF0aGVtYXRpY3M8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTEiIHRpdGxlPSJFZGl0IHNlY3Rpb246IE1hdGhlbWF0aWNzIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPHVsPgorPGxpPkZvcnR5LXR3byBpcyBhIDxhIGhyZWY9Ii93aWtpL1Byb25pY19udW1iZXIiIHRpdGxlPSJQcm9uaWMgbnVtYmVyIj5wcm9uaWMgbnVtYmVyPC9hPiBhbmQgYW4gPGEgaHJlZj0iL3dpa2kvQWJ1bmRhbnRfbnVtYmVyIiB0aXRsZT0iQWJ1bmRhbnQgbnVtYmVyIj5hYnVuZGFudCBudW1iZXI8L2E+OyBpdHMgPGEgaHJlZj0iL3dpa2kvUHJpbWVfZmFjdG9yaXphdGlvbiIgdGl0bGU9IlByaW1lIGZhY3Rvcml6YXRpb24iIGNsYXNzPSJtdy1yZWRpcmVjdCI+cHJpbWUgZmFjdG9yaXphdGlvbjwvYT4gMiZuYnNwO8K3Jm5ic3A7MyZuYnNwO8K3Jm5ic3A7NyBtYWtlcyBpdCB0aGUgc2Vjb25kIDxhIGhyZWY9Ii93aWtpL1NwaGVuaWNfbnVtYmVyIiB0aXRsZT0iU3BoZW5pYyBudW1iZXIiPnNwaGVuaWMgbnVtYmVyPC9hPiBhbmQgYWxzbyB0aGUgc2Vjb25kIG9mIHRoZSBmb3JtIHsmbmJzcDsyJm5ic3A7wrcmbmJzcDszJm5ic3A7wrcmbmJzcDs8aT5yPC9pPiZuYnNwO30uIEFzIHdpdGggYWxsIHNwaGVuaWMgbnVtYmVycyBvZiB0aGlzIGZvcm0sIHRoZSA8YSBocmVmPSIvd2lraS9BbGlxdW90X3N1bSIgdGl0bGU9IkFsaXF1b3Qgc3VtIiBjbGFzcz0ibXctcmVkaXJlY3QiPmFsaXF1b3Q8L2E+IHN1bSBpcyA8YSBocmVmPSIvd2lraS9BYnVuZGFudF9udW1iZXIiIHRpdGxlPSJBYnVuZGFudCBudW1iZXIiPmFidW5kYW50PC9hPiBieSAxMi4gNDIgaXMgYWxzbyB0aGUgc2Vjb25kIHNwaGVuaWMgbnVtYmVyIHRvIGJlIGJyYWNrZXRlZCBieSA8YSBocmVmPSIvd2lraS9Ud2luX3ByaW1lIiB0aXRsZT0iVHdpbiBwcmltZSI+dHdpbiBwcmltZXM8L2E+OyA8YSBocmVmPSIvd2lraS8zMF8obnVtYmVyKSIgdGl0bGU9IjMwIChudW1iZXIpIj4zMDwvYT4gaXMgYWxzbyBhIHByb25pYyBudW1iZXIgYW5kIGFsc28gcmVzdHMgYmV0d2VlbiB0d28gcHJpbWVzLiA0MiBoYXMgYSAxNCBtZW1iZXIgPGEgaHJlZj0iL3dpa2kvQWxpcXVvdF9zZXF1ZW5jZSIgdGl0bGU9IkFsaXF1b3Qgc2VxdWVuY2UiPmFsaXF1b3Qgc2VxdWVuY2U8L2E+IDQyLCA1NCwgNjYsIDc4LCA5MCwgMTQ0LCAyNTksIDQ1LCAzMywgMTUsIDksIDQsIDMsIDEsIDAgYW5kIGlzIGl0c2VsZiBwYXJ0IG9mIHRoZSA8YSBocmVmPSIvd2lraS9BbGlxdW90X3NlcXVlbmNlIiB0aXRsZT0iQWxpcXVvdCBzZXF1ZW5jZSI+YWxpcXVvdCBzZXF1ZW5jZTwvYT4gY29tbWVuY2luZyB3aXRoIHRoZSBmaXJzdCBzcGhlbmljIG51bWJlciA8YSBocmVmPSIvd2lraS8zMF8obnVtYmVyKSIgdGl0bGU9IjMwIChudW1iZXIpIj4zMDwvYT4uIEZ1cnRoZXIsIDQyIGlzIHRoZSAxMHRoIG1lbWJlciBvZiB0aGUgMy1hbGlxdW90IHRyZWUuPC9saT4KKzxsaT5JdCBpcyB0aGUgdGhpcmQgPGEgaHJlZj0iL3dpa2kvUHJpbWFyeV9wc2V1ZG9wZXJmZWN0X251bWJlciIgdGl0bGU9IlByaW1hcnkgcHNldWRvcGVyZmVjdCBudW1iZXIiPnByaW1hcnkgcHNldWRvcGVyZmVjdCBudW1iZXI8L2E+LjwvbGk+Cis8bGk+SXQgaXMgYSA8YSBocmVmPSIvd2lraS9DYXRhbGFuX251bWJlciIgdGl0bGU9IkNhdGFsYW4gbnVtYmVyIj5DYXRhbGFuIG51bWJlcjwvYT4uIENvbnNlcXVlbnRseTsgNDIgaXMgdGhlIG51bWJlciBvZiA8YSBocmVmPSIvd2lraS9Ob25jcm9zc2luZ19wYXJ0aXRpb24iIHRpdGxlPSJOb25jcm9zc2luZyBwYXJ0aXRpb24iPm5vbmNyb3NzaW5nIHBhcnRpdGlvbnM8L2E+IG9mIGEgc2V0IG9mIGZpdmUgZWxlbWVudHMsIHRoZSBudW1iZXIgb2YgdHJpYW5ndWxhdGlvbnMgb2YgYSA8YSBocmVmPSIvd2lraS9IZXB0YWdvbiIgdGl0bGU9IkhlcHRhZ29uIj5oZXB0YWdvbjwvYT4sIHRoZSBudW1iZXIgb2Ygcm9vdGVkIG9yZGVyZWQgYmluYXJ5IDxhIGhyZWY9Ii93aWtpL1RyZWVfKGdyYXBoX3RoZW9yeSkiIHRpdGxlPSJUcmVlIChncmFwaCB0aGVvcnkpIj50cmVlczwvYT4gd2l0aCBzaXggbGVhdmVzLCB0aGUgbnVtYmVyIG9mIHdheXMgaW4gd2hpY2ggZml2ZSBwYWlycyBvZiBuZXN0ZWQgcGFyZW50aGVzZXMgY2FuIGJlIGFycmFuZ2VkLCBldGMuPC9saT4KKzxsaT5JdCBpcyB0aGUgbnVtYmVyIG9mIDxhIGhyZWY9Ii93aWtpL0ludGVnZXJfcGFydGl0aW9uIiB0aXRsZT0iSW50ZWdlciBwYXJ0aXRpb24iIGNsYXNzPSJtdy1yZWRpcmVjdCI+cGFydGl0aW9uczwvYT4gb2YgMTAgLSB0aGUgbnVtYmVyIG9mIHdheXMgb2YgZXhwcmVzc2luZyAxMCBhcyBhIHN1bSBvZiBwb3NpdGl2ZSBpbnRlZ2VycyAobm90ZSBhIGRpZmZlcmVudCBzZW5zZSBvZiBwYXJ0aXRpb24gZnJvbSB0aGF0IGFib3ZlKS48L2xpPgorPC91bD4KKzxkaXYgY2xhc3M9InRodW1iIHRyaWdodCI+Cis8ZGl2IGNsYXNzPSJ0aHVtYmlubmVyIiBzdHlsZT0id2lkdGg6MjIycHg7Ij48YSBocmVmPSIvd2lraS9GaWxlOlNpbXBsZV9NYWdpY19DdWJlLnN2ZyIgY2xhc3M9ImltYWdlIj48aW1nIGFsdD0iIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvNi82My9TaW1wbGVfTWFnaWNfQ3ViZS5zdmcvMjIwcHgtU2ltcGxlX01hZ2ljX0N1YmUuc3ZnLnBuZyIgd2lkdGg9IjIyMCIgaGVpZ2h0PSIyMDUiIGNsYXNzPSJ0aHVtYmltYWdlIiBzcmNzZXQ9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvNi82My9TaW1wbGVfTWFnaWNfQ3ViZS5zdmcvMzMwcHgtU2ltcGxlX01hZ2ljX0N1YmUuc3ZnLnBuZyAxLjV4LCAvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iLzYvNjMvU2ltcGxlX01hZ2ljX0N1YmUuc3ZnLzQ0MHB4LVNpbXBsZV9NYWdpY19DdWJlLnN2Zy5wbmcgMngiPjwvYT4KKzxkaXYgY2xhc3M9InRodW1iY2FwdGlvbiI+Cis8ZGl2IGNsYXNzPSJtYWduaWZ5Ij48YSBocmVmPSIvd2lraS9GaWxlOlNpbXBsZV9NYWdpY19DdWJlLnN2ZyIgY2xhc3M9ImludGVybmFsIiB0aXRsZT0iRW5sYXJnZSI+PGltZyBzcmM9Ii8vYml0cy53aWtpbWVkaWEub3JnL3N0YXRpYy0xLjIzd21mMTAvc2tpbnMvY29tbW9uL2ltYWdlcy9tYWduaWZ5LWNsaXAucG5nIiB3aWR0aD0iMTUiIGhlaWdodD0iMTEiIGFsdD0iIj48L2E+PC9kaXY+CitUaGUgMyZuYnNwO8OXJm5ic3A7MyZuYnNwO8OXJm5ic3A7MyBtYWdpYyBjdWJlIHdpdGggcm93cyBzdW1taW5nIHRvIDQyLjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzx1bD4KKzxsaT5HaXZlbiAyNyBzYW1lLXNpemUgY3ViZXMgd2hvc2Ugbm9taW5hbCB2YWx1ZXMgcHJvZ3Jlc3MgZnJvbSAxIHRvIDI3LCBhIDPDlzPDlzMgPGEgaHJlZj0iL3dpa2kvTWFnaWNfY3ViZSIgdGl0bGU9Ik1hZ2ljIGN1YmUiPm1hZ2ljIGN1YmU8L2E+IGNhbiBiZSBjb25zdHJ1Y3RlZCBzdWNoIHRoYXQgZXZlcnkgcm93LCBjb2x1bW4sIGFuZCBjb3JyaWRvciwgYW5kIGV2ZXJ5IGRpYWdvbmFsIHBhc3NpbmcgdGhyb3VnaCB0aGUgY2VudGVyLCBpcyBjb21wb3NlZCBvZiAzIGN1YmVzIHdob3NlIHN1bSBvZiB2YWx1ZXMgaXMgNDIuPC9saT4KKzxsaT5JdCBpcyB0aGUgdGhpcmQgPGEgaHJlZj0iL3dpa2kvUG9seWdvbmFsX251bWJlciIgdGl0bGU9IlBvbHlnb25hbCBudW1iZXIiPnBlbnRhZGVjYWdvbmFsIG51bWJlcjwvYT4uIEl0IGlzIGEgPGEgaHJlZj0iL3dpa2kvTWVhbmRlcl8obWF0aGVtYXRpY3MpIiB0aXRsZT0iTWVhbmRlciAobWF0aGVtYXRpY3MpIj5tZWFuZHJpYyBudW1iZXI8L2E+IGFuZCBhbiA8YSBocmVmPSIvd2lraS9NZWFuZGVyXyhtYXRoZW1hdGljcykjT3Blbl9tZWFuZHJpY19udW1iZXJzIiB0aXRsZT0iTWVhbmRlciAobWF0aGVtYXRpY3MpIj5vcGVuIG1lYW5kcmljIG51bWJlcjwvYT4uPC9saT4KKzxsaT5JdCBpcyBjb25qZWN0dXJlZCB0byBiZSB0aGUgc2NhbGluZyBmYWN0b3IgaW4gdGhlIDxhIGhyZWY9Ii93aWtpL0xlYWRpbmctb3JkZXIiIHRpdGxlPSJMZWFkaW5nLW9yZGVyIiBjbGFzcz0ibXctcmVkaXJlY3QiPmxlYWRpbmcgb3JkZXI8L2E+IHRlcm0gb2YgdGhlICJzaXh0aCA8YSBocmVmPSIvd2lraS9Nb21lbnRfKG1hdGhlbWF0aWNzKSIgdGl0bGU9Ik1vbWVudCAobWF0aGVtYXRpY3MpIj5tb21lbnQ8L2E+IG9mIHRoZSA8YSBocmVmPSIvd2lraS9CZXJuaGFyZF9SaWVtYW5uIiB0aXRsZT0iQmVybmhhcmQgUmllbWFubiI+UmllbWFubjwvYT4gPGEgaHJlZj0iL3dpa2kvUmllbWFubl96ZXRhX2Z1bmN0aW9uIiB0aXRsZT0iUmllbWFubiB6ZXRhIGZ1bmN0aW9uIj56ZXRhIGZ1bmN0aW9uPC9hPiIuIEluIHBhcnRpY3VsYXIsIENvbnJleSAmYW1wOyBHaG9zaCBoYXZlIGNvbmplY3R1cmVkIHRoYXQKKzxkbD4KKzxkZD48aW1nIGNsYXNzPSJ0ZXgiIGFsdD0iezEgXG92ZXIgVH1caW50XzBeVCBcbGVmdHwgXHpldGFcbGVmdCh7MSBcb3ZlciAyfSArIGl0XHJpZ2h0KSBccmlnaHR8XjZcLGR0IFxzaW0gezQyIFxvdmVyIDkhfVxwcm9kX3AgXGxlZnRcezEtezFcb3ZlciBwfVxyaWdodFx9XjQgXGxlZnQoIDEgKyB7NCBcb3ZlciBwfSArIHsxIFxvdmVyIHBeMn0gXHJpZ2h0KSBcbG9nXjkgVCwgIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvbWF0aC8xLzMvMi8xMzIwZjNkYTRiYzZmYzUxNDVmZmUwODExMTU1MThjZS5wbmciPjwvZGQ+Cis8ZGQ+LjwvZGQ+Cis8ZGQ+d2hlcmUgdGhlIDxhIGhyZWY9Ii93aWtpL0luZmluaXRlX3Byb2R1Y3QiIHRpdGxlPSJJbmZpbml0ZSBwcm9kdWN0Ij5pbmZpbml0ZSBwcm9kdWN0PC9hPiBpcyBvdmVyIGFsbCBwcmltZSBudW1iZXJzLCA8aT5wPC9pPi48c3VwIGlkPSJjaXRlX3JlZi0xIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTEiPjxzcGFuPls8L3NwYW4+MTxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjxzdXAgaWQ9ImNpdGVfcmVmLTIiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMiI+PHNwYW4+Wzwvc3Bhbj4yPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9kZD4KKzwvZGw+Cis8L2xpPgorPGxpPjQyIGlzIGEgPGEgaHJlZj0iL3dpa2kvU3QlQzMlQjhybWVyX251bWJlciIgdGl0bGU9IlN0w7hybWVyIG51bWJlciI+U3TDuHJtZXIgbnVtYmVyPC9hPi48L2xpPgorPGxpPkluIGJhc2UgMTAsIHRoaXMgbnVtYmVyIGlzIGEgPGEgaHJlZj0iL3dpa2kvSGFyc2hhZF9udW1iZXIiIHRpdGxlPSJIYXJzaGFkIG51bWJlciI+SGFyc2hhZCBudW1iZXI8L2E+IGFuZCBhIDxhIGhyZWY9Ii93aWtpL1NlbGZfbnVtYmVyIiB0aXRsZT0iU2VsZiBudW1iZXIiPnNlbGYgbnVtYmVyPC9hPiwgd2hpbGUgaXQgaXMgYSA8YSBocmVmPSIvd2lraS9SZXBkaWdpdCIgdGl0bGU9IlJlcGRpZ2l0Ij5yZXBkaWdpdDwvYT4gaW4gYmFzZSA0IChhcyAyMjIpLjwvbGk+Cis8bGk+NDIgaXMgdGhlIG9ubHkga25vd24gdmFsdWUgdGhhdCBpcyB0aGUgbnVtYmVyIG9mIHNldHMgb2YgZm91ciBkaXN0aW5jdCBwb3NpdGl2ZSBpbnRlZ2VycyBhLGIsYyxkLCBlYWNoIGxlc3MgdGhhbiB0aGUgdmFsdWUgaXRzZWxmLCBzdWNoIHRoYXQgYWItY2QsIGFjLWJkLCBhbmQgYWQtYmMgYXJlIGVhY2ggbXVsdGlwbGVzIG9mIHRoZSB2YWx1ZS4gV2hldGhlciB0aGVyZSBhcmUgb3RoZXIgdmFsdWVzIHJlbWFpbnMgYW4gb3BlbiBxdWVzdGlvbi48c3VwIGlkPSJjaXRlX3JlZi0zIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTMiPjxzcGFuPls8L3NwYW4+MzxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cis8bGk+NDIgaXMgYSAoMiw2KS1wZXJmZWN0IG51bWJlciAoPGEgaHJlZj0iL3dpa2kvU3VwZXJwZXJmZWN0X251bWJlciIgdGl0bGU9IlN1cGVycGVyZmVjdCBudW1iZXIiPnN1cGVyLW11bHRpcGVyZmVjdDwvYT4pLCBhcyA8aW1nIGNsYXNzPSJ0ZXgiIGFsdD0iXHNpZ21hXjIobik9XHNpZ21hKFxzaWdtYShuKSk9Nm5cLCIgc3JjPSIvL3VwbG9hZC53aWtpbWVkaWEub3JnL21hdGgvZC9mLzUvZGY1ZWY5N2I4NDBiYjJlYmRjNDgyNmIyODdjZjFhYTcucG5nIj48c3VwIGlkPSJjaXRlX3JlZi00IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTQiPjxzcGFuPls8L3NwYW4+NDxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cis8bGk+NDIgaXMgYSBwZXJmZWN0IHNjb3JlIG9uIHRoZSBVU0EgTWF0aCBPbHltcGlhZCAoPGEgaHJlZj0iL3dpa2kvVW5pdGVkX1N0YXRlc19vZl9BbWVyaWNhX01hdGhlbWF0aWNhbF9PbHltcGlhZCIgdGl0bGU9IlVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYSBNYXRoZW1hdGljYWwgT2x5bXBpYWQiPlVTQU1PPC9hPik8c3VwIGlkPSJjaXRlX3JlZi01IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTUiPjxzcGFuPls8L3NwYW4+NTxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPiBhbmQgPGEgaHJlZj0iL3dpa2kvSW50ZXJuYXRpb25hbF9NYXRoZW1hdGljYWxfT2x5bXBpYWQiIHRpdGxlPSJJbnRlcm5hdGlvbmFsIE1hdGhlbWF0aWNhbCBPbHltcGlhZCI+SW50ZXJuYXRpb25hbCBNYXRoZW1hdGljYWwgT2x5bXBpYWQ8L2E+IChJTU8pLjxzdXAgaWQ9ImNpdGVfcmVmLTYiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtNiI+PHNwYW4+Wzwvc3Bhbj42PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzxsaT40MiBpcyB0aGUgbWF4aW11bSBvZiBjb3JlIHBvaW50cyBhd2FyZGVkIGluIEludGVybmF0aW9uYWwgQmFjY2FsYXVyZWF0ZSBEaXBsb21hIFByb2dyYW1tZS48L2xpPgorPGxpPjQyIGlzIHRoZSByZXN1bHRpbmcgbnVtYmVyIG9mIHRoZSBvcmlnaW5hbCA8YSBocmVmPSIvd2lraS9TbWl0aF9udW1iZXIiIHRpdGxlPSJTbWl0aCBudW1iZXIiPlNtaXRoIG51bWJlcjwvYT4gKDQ5Mzc3NzUpOiBCb3RoIHRoZSBzdW0gb2YgaXRzIGRpZ2l0cyAoNCs5KzMrNys3KzcrNSkgYXMgdGhlIHN1bSBvZiB0aGUgZGlnaXRzIGluIGl0cyBwcmltZSBmYWN0b3JpemF0aW9uICgzKzUrNSsoNis1KzgrMys3KSkgcmVzdWx0IGluIDQyLjwvbGk+Cis8bGk+VGhlIGRpbWVuc2lvbiBvZiB0aGUgPGEgaHJlZj0iL3dpa2kvQm9yZWxfc3ViYWxnZWJyYSIgdGl0bGU9IkJvcmVsIHN1YmFsZ2VicmEiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Qm9yZWwgc3ViYWxnZWJyYTwvYT4gaW4gdGhlIDxhIGhyZWY9Ii93aWtpL0V4Y2VwdGlvbmFsX0xpZV9hbGdlYnJhIiB0aXRsZT0iRXhjZXB0aW9uYWwgTGllIGFsZ2VicmEiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ZXhjZXB0aW9uYWwgTGllIGFsZ2VicmE8L2E+IDxhIGhyZWY9Ii93aWtpL0U2XyhtYXRoZW1hdGljcykiIHRpdGxlPSJFNiAobWF0aGVtYXRpY3MpIj48aT5lPC9pPjxzdWI+Njwvc3ViPjwvYT4gaXMgNDIuPC9saT4KKzwvdWw+Cis8aDI+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iU2NpZW5jZSI+U2NpZW5jZTwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249MiIgdGl0bGU9IkVkaXQgc2VjdGlvbjogU2NpZW5jZSI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMj4KKzx1bD4KKzxsaT5UaGUgPGEgaHJlZj0iL3dpa2kvQXRvbWljX251bWJlciIgdGl0bGU9IkF0b21pYyBudW1iZXIiPmF0b21pYyBudW1iZXI8L2E+IG9mIDxhIGhyZWY9Ii93aWtpL01vbHliZGVudW0iIHRpdGxlPSJNb2x5YmRlbnVtIj5tb2x5YmRlbnVtPC9hPi48L2xpPgorPGxpPlRoZSBhbmdsZSByb3VuZGVkIHRvIHdob2xlIGRlZ3JlZXMgZm9yIHdoaWNoIGEgPGEgaHJlZj0iL3dpa2kvV2F0ZXJfbGVucyIgdGl0bGU9IldhdGVyIGxlbnMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+cmFpbmJvdzwvYT4gYXBwZWFycyAodGhlIGNyaXRpY2FsIGFuZ2xlKS48L2xpPgorPGxpPkluIDE5NjYsIG1hdGhlbWF0aWNpYW4gPGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPVBhdWxfQ29vcGVyXyhtYXRoZW1hdGljaWFuKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3JlZGxpbms9MSIgY2xhc3M9Im5ldyIgdGl0bGU9IlBhdWwgQ29vcGVyIChtYXRoZW1hdGljaWFuKSAocGFnZSBkb2VzIG5vdCBleGlzdCkiPlBhdWwgQ29vcGVyPC9hPiB0aGVvcml6ZWQgdGhhdCB0aGUgZmFzdGVzdCwgbW9zdCBlZmZpY2llbnQgd2F5IHRvIHRyYXZlbCBhY3Jvc3MgY29udGluZW50cyB3b3VsZCBiZSB0byBib3JlIGEgc3RyYWlnaHQgaG9sbG93IHR1YmUgZGlyZWN0bHkgdGhyb3VnaCB0aGUgPGEgaHJlZj0iL3dpa2kvRWFydGgiIHRpdGxlPSJFYXJ0aCI+RWFydGg8L2E+LCBjb25uZWN0aW5nIGEgc2V0IG9mIDxhIGhyZWY9Ii93aWtpL0FudGlwb2RlcyIgdGl0bGU9IkFudGlwb2RlcyI+YW50aXBvZGVzPC9hPiwgcmVtb3ZlIHRoZSBhaXIgZnJvbSB0aGUgdHViZSBhbmQgZmFsbCB0aHJvdWdoLjxzdXAgaWQ9ImNpdGVfcmVmLTciIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtNyI+PHNwYW4+Wzwvc3Bhbj43PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+IFRoZSBmaXJzdCBoYWxmIG9mIHRoZSBqb3VybmV5IGNvbnNpc3RzIG9mIGZyZWUtZmFsbCBhY2NlbGVyYXRpb24sIHdoaWxlIHRoZSBzZWNvbmQgaGFsZiBjb25zaXN0cyBvZiBhbiBleGFjdGx5IGVxdWFsIGRlY2VsZXJhdGlvbi4gVGhlIHRpbWUgZm9yIHN1Y2ggYSBqb3VybmV5IHdvcmtzIG91dCB0byBiZSA0MiZuYnNwO21pbnV0ZXMuIEV2ZW4gaWYgdGhlIHR1YmUgZG9lcyBub3QgcGFzcyB0aHJvdWdoIHRoZSBleGFjdCBjZW50ZXIgb2YgdGhlIEVhcnRoLCB0aGUgdGltZSBmb3IgYSBqb3VybmV5IHBvd2VyZWQgZW50aXJlbHkgYnkgZ3Jhdml0eSAoa25vd24gYXMgYSA8YSBocmVmPSIvd2lraS9HcmF2aXR5X3RyYWluIiB0aXRsZT0iR3Jhdml0eSB0cmFpbiI+Z3Jhdml0eSB0cmFpbjwvYT4pIGFsd2F5cyB3b3JrcyBvdXQgdG8gYmUgNDImbmJzcDttaW51dGVzLCBzbyBsb25nIGFzIHRoZSB0dWJlIHJlbWFpbnMgZnJpY3Rpb24tZnJlZSwgYXMgd2hpbGUgdGhlIGZvcmNlIG9mIGdyYXZpdHkgd291bGQgYmUgbGVzc2VuZWQsIHRoZSBkaXN0YW5jZSB0cmF2ZWxlZCBpcyByZWR1Y2VkIGF0IGFuIGVxdWFsIHJhdGUuPHN1cCBpZD0iY2l0ZV9yZWYtOCIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS04Ij48c3Bhbj5bPC9zcGFuPjg8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48c3VwIGlkPSJjaXRlX3JlZi05IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTkiPjxzcGFuPls8L3NwYW4+OTxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPiAoVGhlIHNhbWUgaWRlYSB3YXMgcHJvcG9zZWQsIHdpdGhvdXQgY2FsY3VsYXRpb24gYnkgPGEgaHJlZj0iL3dpa2kvTGV3aXNfQ2Fycm9sbCIgdGl0bGU9Ikxld2lzIENhcnJvbGwiPkxld2lzIENhcnJvbGw8L2E+IGluIDE4OTMgaW4gPGk+PGEgaHJlZj0iL3dpa2kvU3lsdmllX2FuZF9CcnVub19Db25jbHVkZWQiIHRpdGxlPSJTeWx2aWUgYW5kIEJydW5vIENvbmNsdWRlZCIgY2xhc3M9Im13LXJlZGlyZWN0Ij5TeWx2aWUgYW5kIEJydW5vIENvbmNsdWRlZDwvYT48L2k+LjxzdXAgaWQ9ImNpdGVfcmVmLTEwIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTEwIj48c3Bhbj5bPC9zcGFuPjEwPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+KTwvbGk+Cis8L3VsPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlRlY2hub2xvZ3kiPlRlY2hub2xvZ3k8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTMiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFRlY2hub2xvZ3kiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvTWFnaWNfbnVtYmVyXyhwcm9ncmFtbWluZykiIHRpdGxlPSJNYWdpYyBudW1iZXIgKHByb2dyYW1taW5nKSI+TWFnaWMgbnVtYmVyczwvYT4gdXNlZCBieSA8YSBocmVmPSIvd2lraS9Qcm9ncmFtbWVyIiB0aXRsZT0iUHJvZ3JhbW1lciI+cHJvZ3JhbW1lcnM8L2E+OgorPHVsPgorPGxpPlRoZSBnbHlwaCwgb3IgY2hhcmFjdGVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBudW1iZXIgNDIgaW4gdGhlIDxhIGhyZWY9Ii93aWtpL1ByaW50YWJsZV9jaGFyYWN0ZXJzIiB0aXRsZT0iUHJpbnRhYmxlIGNoYXJhY3RlcnMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+QVNDSUk8L2E+IGNoYXJhY3RlciBzZXQsIGlzICosIHRoZSA8YSBocmVmPSIvd2lraS9Bc3RlcmlzayIgdGl0bGU9IkFzdGVyaXNrIj5hc3RlcmlzazwvYT4sIGNvbW1vbmx5IGtub3duIGFzIHRoZSA8YSBocmVmPSIvd2lraS9XaWxkY2FyZF9jaGFyYWN0ZXIiIHRpdGxlPSJXaWxkY2FyZCBjaGFyYWN0ZXIiPndpbGRjYXJkIGNoYXJhY3RlcjwvYT4uPC9saT4KKzxsaT5JbiB0aGUgPGEgaHJlZj0iL3dpa2kvVGFnZ2VkX0ltYWdlX0ZpbGVfRm9ybWF0IiB0aXRsZT0iVGFnZ2VkIEltYWdlIEZpbGUgRm9ybWF0Ij5USUZGPC9hPiBpbWFnZSBmaWxlIGZvcm1hdCwgdGhlIHNlY29uZCA8YSBocmVmPSIvd2lraS8xNi1iaXQiIHRpdGxlPSIxNi1iaXQiPjE2LWJpdDwvYT4gPGEgaHJlZj0iL3dpa2kvV29yZF8oZGF0YV90eXBlKSIgdGl0bGU9IldvcmQgKGRhdGEgdHlwZSkiIGNsYXNzPSJtdy1yZWRpcmVjdCI+d29yZDwvYT4gb2YgZXZlcnkgZmlsZSBpcyA0Miwgd2hpY2ggaXMgdXNlZCB0b2dldGhlciB3aXRoIHRoZSBmaXJzdCB3b3JkIHRvIGluZGljYXRlIDxhIGhyZWY9Ii93aWtpL0VuZGlhbm5lc3MiIHRpdGxlPSJFbmRpYW5uZXNzIj5ieXRlIG9yZGVyPC9hPi48L2xpPgorPGxpPkluIHRoZSA8YSBocmVmPSIvd2lraS9SZWlzZXI0IiB0aXRsZT0iUmVpc2VyNCI+cmVpc2VyNDwvYT4gZmlsZSBzeXN0ZW0sIDQyIGlzIHRoZSA8YSBocmVmPSIvd2lraS9Jbm9kZSIgdGl0bGU9Iklub2RlIj5pbm9kZTwvYT4gbnVtYmVyIG9mIHRoZSA8YSBocmVmPSIvd2lraS9Sb290X2RpcmVjdG9yeSIgdGl0bGU9IlJvb3QgZGlyZWN0b3J5Ij5yb290IGRpcmVjdG9yeTwvYT4uPC9saT4KKzxsaT5JbiB0aGUgbWlsaXRhcnkgPGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cuaXJpZzEwNi5vcmcvZG9jcy8xMDYtMDkvY2hhcHRlcjEwLnBkZiI+SVJJRyAxMDYgQ2hhcHRlciAxMDwvYT4gZGF0YSByZWNvcmRpbmcgc3RhbmRhcmQsIHRoZSBoZXggdmFsdWUgMHg0NjRGNTI1NDU5NzQ3NzZGIChBU0NJSSAiRk9SVFl0d28iKSBpcyB1c2VkIGFzIGEgbWFnaWMgbnVtYmVyIHRvIGlkZW50aWZ5IGRpcmVjdG9yeSBibG9ja3MuPC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPlRoZSA8YSBocmVmPSIvd2lraS9HTlVfQ19MaWJyYXJ5IiB0aXRsZT0iR05VIEMgTGlicmFyeSI+R05VIEMgTGlicmFyeTwvYT4sIGEgc2V0IG9mIHN0YW5kYXJkIHJvdXRpbmVzIGF2YWlsYWJsZSBmb3IgdXNlIGluIDxhIGhyZWY9Ii93aWtpL0NvbXB1dGVyX3Byb2dyYW1taW5nIiB0aXRsZT0iQ29tcHV0ZXIgcHJvZ3JhbW1pbmciPmNvbXB1dGVyIHByb2dyYW1taW5nPC9hPiwgY29udGFpbnMgYSA8YSBocmVmPSIvd2lraS9TdWJyb3V0aW5lIiB0aXRsZT0iU3Vicm91dGluZSI+ZnVuY3Rpb248L2E+4oCUPGI+PHR0Pm1lbWZyb2IoKTwvdHQ+PC9iPuKAlHdoaWNoIHBlcmZvcm1zIGFuIDxhIGhyZWY9Ii93aWtpL0V4Y2x1c2l2ZV9vciIgdGl0bGU9IkV4Y2x1c2l2ZSBvciI+WE9SPC9hPiBjb21iaW5hdGlvbiBvZiBhIGdpdmVuIHZhcmlhYmxlIGFuZCB0aGUgPGEgaHJlZj0iL3dpa2kvQmluYXJ5X251bWVyYWxfc3lzdGVtIiB0aXRsZT0iQmluYXJ5IG51bWVyYWwgc3lzdGVtIiBjbGFzcz0ibXctcmVkaXJlY3QiPmJpbmFyeTwvYT4gcGF0dGVybiAwMDEwMTAxMCAoNDIpIGFzIGFuIDxhIGhyZWY9Ii93aWtpL1hPUl9jaXBoZXIiIHRpdGxlPSJYT1IgY2lwaGVyIj5YT1IgY2lwaGVyPC9hPi48L2xpPgorPGxpPjQyIGlzIHRoZSByZXN1bHQgZ2l2ZW4gYnkgdGhlIDxhIGhyZWY9Ii93aWtpL1dlYl9zZWFyY2hfZW5naW5lIiB0aXRsZT0iV2ViIHNlYXJjaCBlbmdpbmUiPndlYiBzZWFyY2ggZW5naW5lczwvYT4gPGEgaHJlZj0iL3dpa2kvR29vZ2xlIiB0aXRsZT0iR29vZ2xlIj5Hb29nbGU8L2E+IGFuZCA8YSBocmVmPSIvd2lraS9Xb2xmcmFtX0FscGhhIiB0aXRsZT0iV29sZnJhbSBBbHBoYSI+V29sZnJhbSBBbHBoYTwvYT4gd2hlbiB0aGUgcXVlcnkgIjxhIGhyZWY9Ii93aWtpL1RoZV9hbnN3ZXJfdG9fbGlmZV90aGVfdW5pdmVyc2VfYW5kX2V2ZXJ5dGhpbmciIHRpdGxlPSJUaGUgYW5zd2VyIHRvIGxpZmUgdGhlIHVuaXZlcnNlIGFuZCBldmVyeXRoaW5nIiBjbGFzcz0ibXctcmVkaXJlY3QiPnRoZSBhbnN3ZXIgdG8gbGlmZSB0aGUgdW5pdmVyc2UgYW5kIGV2ZXJ5dGhpbmc8L2E+IiBpcyBlbnRlcmVkIGFzIGEgc2VhcmNoLjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvSGV4YWdvbmFsX3RpbGluZyIgdGl0bGU9IkhleGFnb25hbCB0aWxpbmciPlRpbGluZyBhIHBsYW5lIHVzaW5nIHJlZ3VsYXIgaGV4YWdvbnM8L2E+LCB3aGljaCBpcyA8YSBocmVmPSIvd2lraS9Ib25leWNvbWIiIHRpdGxlPSJIb25leWNvbWIiPmhvbmV5Y29tYjwvYT4gaW4gYXBwZWFyYW5jZSwgaXMgYXBwcm94aW1hdGVkIGluIGEgPGEgaHJlZj0iL3dpa2kvSGV4YWdvbmFsX3RpbGluZyNUb3BvbG9naWNhbGx5X2lkZW50aWNhbF90aWxpbmdzIiB0aXRsZT0iSGV4YWdvbmFsIHRpbGluZyI+dG9wb2xvZ2ljYWwgc2Vuc2U8L2E+IHRvIGFuIGFjY3VyYWN5IG9mIGJldHRlciB0aGFuIDElIHVzaW5nIGEgPGEgaHJlZj0iL3dpa2kvQnJpY2t3b3JrI0JvbmRzIiB0aXRsZT0iQnJpY2t3b3JrIj5zdHJldGNoZXIgYm9uZCBicmljayBwYXR0ZXJuPC9hPiB3aXRoIGJyaWNrcyBvZiA0MiBzcXVhcmVzICg2IGJ5IDcpLjxzdXAgaWQ9ImNpdGVfcmVmLTExIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTExIj48c3Bhbj5bPC9zcGFuPjExPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzxsaT5UaGUgcGFzc3dvcmQgZXhwaXJhdGlvbiBwb2xpY3kgZm9yIGEgPGEgaHJlZj0iL3dpa2kvV2luZG93c19kb21haW4iIHRpdGxlPSJXaW5kb3dzIGRvbWFpbiI+TWljcm9zb2Z0IFdpbmRvd3MgZG9tYWluPC9hPiBkZWZhdWx0cyB0byA0MiBkYXlzLjxzdXAgaWQ9ImNpdGVfcmVmLTEyIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTEyIj48c3Bhbj5bPC9zcGFuPjEyPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzwvdWw+Cis8aDI+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iQXN0cm9ub215Ij5Bc3Ryb25vbXk8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTQiIHRpdGxlPSJFZGl0IHNlY3Rpb246IEFzdHJvbm9teSI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMj4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS9NZXNzaWVyX29iamVjdCIgdGl0bGU9Ik1lc3NpZXIgb2JqZWN0Ij5NZXNzaWVyIG9iamVjdDwvYT4gPGEgaHJlZj0iL3dpa2kvT3Jpb25fTmVidWxhIiB0aXRsZT0iT3Jpb24gTmVidWxhIj5NNDI8L2E+LCBhIDxhIGhyZWY9Ii93aWtpL0FwcGFyZW50X21hZ25pdHVkZSIgdGl0bGU9IkFwcGFyZW50IG1hZ25pdHVkZSI+bWFnbml0dWRlPC9hPiA1LjAgPGEgaHJlZj0iL3dpa2kvRGlmZnVzZV9uZWJ1bGEiIHRpdGxlPSJEaWZmdXNlIG5lYnVsYSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5kaWZmdXNlIG5lYnVsYTwvYT4gaW4gdGhlIDxhIGhyZWY9Ii93aWtpL0NvbnN0ZWxsYXRpb24iIHRpdGxlPSJDb25zdGVsbGF0aW9uIj5jb25zdGVsbGF0aW9uPC9hPiA8YSBocmVmPSIvd2lraS9Pcmlvbl8oY29uc3RlbGxhdGlvbikiIHRpdGxlPSJPcmlvbiAoY29uc3RlbGxhdGlvbikiPk9yaW9uPC9hPiwgYWxzbyBrbm93biBhcyB0aGUgPGEgaHJlZj0iL3dpa2kvT3Jpb25fTmVidWxhIiB0aXRsZT0iT3Jpb24gTmVidWxhIj5PcmlvbiBOZWJ1bGE8L2E+PC9saT4KKzxsaT5UaGUgPGEgaHJlZj0iL3dpa2kvTmV3X0dlbmVyYWxfQ2F0YWxvZ3VlIiB0aXRsZT0iTmV3IEdlbmVyYWwgQ2F0YWxvZ3VlIj5OZXcgR2VuZXJhbCBDYXRhbG9ndWU8L2E+IG9iamVjdCBOR0MgNDIsIGEgPGEgaHJlZj0iL3dpa2kvU3BpcmFsX2dhbGF4eSIgdGl0bGU9IlNwaXJhbCBnYWxheHkiPnNwaXJhbCBnYWxheHk8L2E+IGluIHRoZSBjb25zdGVsbGF0aW9uIDxhIGhyZWY9Ii93aWtpL1BlZ2FzdXNfKGNvbnN0ZWxsYXRpb24pIiB0aXRsZT0iUGVnYXN1cyAoY29uc3RlbGxhdGlvbikiPlBlZ2FzdXM8L2E+PC9saT4KKzxsaT5JbiBKYW51YXJ5IDIwMDQsIDxhIGhyZWY9Ii93aWtpL0FzdGVyb2lkIiB0aXRsZT0iQXN0ZXJvaWQiPmFzdGVyb2lkPC9hPiA8c3BhbiBjbGFzcz0ibm93cmFwIj4yMDAxIERBPHN1Yj40Mjwvc3ViPjwvc3Bhbj4gd2FzIGdpdmVuIHRoZSBwZXJtYW5lbnQgbmFtZSA8YSBocmVmPSIvd2lraS8yNTkyNF9Eb3VnbGFzYWRhbXMiIHRpdGxlPSIyNTkyNCBEb3VnbGFzYWRhbXMiPjI1OTI0IERvdWdsYXNhZGFtczwvYT4sIGZvciB0aGUgYXV0aG9yIDxhIGhyZWY9Ii93aWtpL0RvdWdsYXNfQWRhbXMiIHRpdGxlPSJEb3VnbGFzIEFkYW1zIj5Eb3VnbGFzIEFkYW1zPC9hPiB3aG8gcG9wdWxhcml6ZWQgdGhlIG51bWJlciA0MiBhbmQgZGllZCBpbiAyMDAxLiA8YSBocmVmPSIvd2lraS9Ccmlhbl9HLl9NYXJzZGVuIiB0aXRsZT0iQnJpYW4gRy4gTWFyc2RlbiI+QnJpYW4gRy4gTWFyc2RlbjwvYT4sIHRoZSBkaXJlY3RvciBvZiB0aGUgPGEgaHJlZj0iL3dpa2kvTWlub3JfUGxhbmV0X0NlbnRlciIgdGl0bGU9Ik1pbm9yIFBsYW5ldCBDZW50ZXIiPk1pbm9yIFBsYW5ldCBDZW50ZXI8L2E+IGFuZCB0aGUgc2VjcmV0YXJ5IGZvciB0aGUgbmFtaW5nIGNvbW1pdHRlZSwgcmVtYXJrZWQgdGhhdCwgd2l0aCBldmVuIGhpcyBpbml0aWFscyBpbiB0aGUgcHJvdmlzaW9uYWwgZGVzaWduYXRpb24sICJUaGlzIHdhcyBzb3J0IG9mIG1hZGUgZm9yIGhpbSwgd2Fzbid0IGl0PyI8L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpL0tlcGxlci00MiIgdGl0bGU9IktlcGxlci00MiI+S2VwbGVyLTQyPC9hPiwgYSByZWQgZHdhcmYgaW4gdGhlIGNvbnN0ZWxsYXRpb24gPGEgaHJlZj0iL3dpa2kvQ3lnbnVzXyhjb25zdGVsbGF0aW9uKSIgdGl0bGU9IkN5Z251cyAoY29uc3RlbGxhdGlvbikiPkN5Z251czwvYT4gYXJvdW5kIHdoaWNoIG9yYml0cyB0aGUgdGhyZWUgc21hbGxlc3QgPGEgaHJlZj0iL3dpa2kvRXhvcGxhbmV0cyIgdGl0bGU9IkV4b3BsYW5ldHMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ZXhvcGxhbmV0czwvYT4gZm91bmQgdG8gZGF0ZS48L2xpPgorPC91bD4KKzxoMj48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJSZWxpZ2lvbiI+UmVsaWdpb248L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTUiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFJlbGlnaW9uIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPHVsPgorPGxpPkluIEphcGFuZXNlIGN1bHR1cmUsIHRoZSBudW1iZXIgNDIgaXMgY29uc2lkZXJlZCB1bmx1Y2t5IGJlY2F1c2UgdGhlIG51bWVyYWxzIHdoZW4gcHJvbm91bmNlZCBzZXBhcmF0ZWx5IOKAlCAic2hpIG5pIiAoZm91ciB0d28pIOKAlCBzb3VuZCBsaWtlIHRoZSBwaHJhc2UsICJ1bnRvIGRlYXRoIi48c3VwIGlkPSJjaXRlX3JlZi0xMyIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xMyI+PHNwYW4+Wzwvc3Bhbj4xMzxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cis8bGk+VGhlcmUgYXJlIDQyIHByaW5jaXBsZXMgb2YgPGEgaHJlZj0iL3dpa2kvTWElMjdhdCIgdGl0bGU9Ik1hJ2F0IiBjbGFzcz0ibXctcmVkaXJlY3QiPk1hJ2F0PC9hPiwgdGhlIEFuY2llbnQgRWd5cHRpYW4gcGVyc29uaWZpY2F0aW9uIG9mIHBoeXNpY2FsIGFuZCBtb3JhbCBsYXcsIG9yZGVyLCBhbmQgdHJ1dGguIEluIHRoZSBqdWRnbWVudCBzY2VuZSBkZXNjcmliZWQgaW4gdGhlIEVneXB0aWFuIGFuZCB0aGUgQm9vayBvZiB0aGUgQ29taW5nL0dvaW5nIEZvcnRoIGJ5IERheSAodGhlIDxhIGhyZWY9Ii93aWtpL0Jvb2tfb2ZfdGhlX0RlYWQiIHRpdGxlPSJCb29rIG9mIHRoZSBEZWFkIj5Cb29rIG9mIHRoZSBEZWFkPC9hPiAod2hpY2ggZXZvbHZlZCBmcm9tIHRoZSA8YSBocmVmPSIvd2lraS9Db2ZmaW5fVGV4dHMiIHRpdGxlPSJDb2ZmaW4gVGV4dHMiPkNvZmZpbiBUZXh0czwvYT4gYW5kIHRoZSA8YSBocmVmPSIvd2lraS9QeXJhbWlkX1RleHRzIiB0aXRsZT0iUHlyYW1pZCBUZXh0cyI+UHlyYW1pZCBUZXh0czwvYT4pKSwgdGhlcmUgYXJlIDQyIGdvZHMgYW5kIGdvZGRlc3NlcyBvZiBFZ3lwdCwgcGVyc29uaWZ5aW5nIHRoZSBwcmluY2lwbGVzIG9mIDxhIGhyZWY9Ii93aWtpL01hJTI3YXQiIHRpdGxlPSJNYSdhdCIgY2xhc3M9Im13LXJlZGlyZWN0Ij5NYSdhdDwvYT4uIFRoZXNlIDQyIGNvcnJlc3BvbmQgdG8gdGhlIDQyIDxhIGhyZWY9Ii93aWtpL05vbWVfKEVneXB0KSIgdGl0bGU9Ik5vbWUgKEVneXB0KSI+Tm9tZXM8L2E+IChHb3Zlcm5tZW50YWwgVW5pdHMpIG9mIEVneXB0LiBJZiB0aGUgZGVwYXJ0ZWQgc3VjY2Vzc2Z1bGx5IGFuc3dlcnMgYWxsIDQyLCBzL2hlIGJlY29tZXMgYW4gPGEgaHJlZj0iL3dpa2kvT3NpcmlzIiB0aXRsZT0iT3NpcmlzIj5Pc2lyaXM8L2E+LjwvbGk+Cis8bGk+NDIgaXMgdGhlIG51bWJlciB3aXRoIHdoaWNoIEdvZCBjcmVhdGVzIHRoZSBVbml2ZXJzZSBpbiA8YSBocmVmPSIvd2lraS9LYWJiYWxhaCIgdGl0bGU9IkthYmJhbGFoIj5LYWJiYWxpc3RpYyB0cmFkaXRpb248L2E+LiBJbiBLYWJiYWxhaCwgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgbmFtZSBpcyB0aGF0IG9mIHRoZSBFbiBTb2YgKGFsc28ga25vd24gYXMgIjxhIGhyZWY9Ii93aWtpL0Vpbl9Tb2YiIHRpdGxlPSJFaW4gU29mIj5FaW4gU29mPC9hPiIsICJJbmZpbml0ZSIgb3IgIkVuZGxlc3MiKSwgd2hvIGlzIGFib3ZlIHRoZSBTZWZpcm90IChzb21ldGltZXMgc3BlbGxlZCAiPGEgaHJlZj0iL3dpa2kvU2VwaGlyb3QiIHRpdGxlPSJTZXBoaXJvdCI+U2VwaGlyb3Q8L2E+IikuPHN1cCBpZD0iY2l0ZV9yZWYtMTQiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMTQiPjxzcGFuPls8L3NwYW4+MTQ8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD4gVGhlIEZvcnR5LVR3by1MZXR0ZXJlZCBOYW1lIGNvbnRhaW5zIGZvdXIgY29tYmluZWQgbmFtZXMgd2hpY2ggYXJlIHNwZWxsZWQgaW4gSGVicmV3IGxldHRlcnMgKHNwZWxsZWQgaW4gbGV0dGVycyA9IDQyIGxldHRlcnMpLCB3aGljaCBpcyB0aGUgbmFtZSBvZiBBemlsdXQgKG9yICI8YSBocmVmPSIvd2lraS9BdHppbHV0aCIgdGl0bGU9IkF0emlsdXRoIj5BdHppbHV0aDwvYT4iICJFbWFuYXRpb24iKS4gV2hpbGUgdGhlcmUgYXJlIG9idmlvdXMgbGlua3MgYmV0d2VlbiB0aGUgRm9ydHktVHdvIExldHRlcmVkIE5hbWUgb2YgdGhlIEJhYnlsb25pYW4gVGFsbXVkIGFuZCB0aGUgS2FiYmFsYWgncyBGb3J0eS1Ud28gTGV0dGVyZWQgTmFtZSwgdGhleSBhcmUgcHJvYmFibHkgbm90IGlkZW50aWNhbCBiZWNhdXNlIG9mIHRoZSBLYWJiYWxhaCdzIGVtcGhhc2lzIG9uIG51bWJlcnMuIFRoZSBLYWJiYWxhaCBhbHNvIGNvbnRhaW5zIGEgRm9ydHktRml2ZSBMZXR0ZXJlZCBOYW1lIGFuZCBhIFNldmVudHktVHdvIExldHRlcmVkIE5hbWUuPC9saT4KKzxsaT5UaGUgbnVtYmVyIDQyIGFwcGVhcnMgaW4gdmFyaW91cyBjb250ZXh0cyBpbiA8YSBocmVmPSIvd2lraS9DaHJpc3RpYW5pdHkiIHRpdGxlPSJDaHJpc3RpYW5pdHkiPkNocmlzdGlhbml0eTwvYT4uIFRoZXJlIGFyZSA0MiBnZW5lcmF0aW9ucyAobmFtZXMpIGluIHRoZSA8YSBocmVmPSIvd2lraS9Hb3NwZWxfb2ZfTWF0dGhldyIgdGl0bGU9Ikdvc3BlbCBvZiBNYXR0aGV3Ij5Hb3NwZWwgb2YgTWF0dGhldzwvYT4ncyB2ZXJzaW9uIG9mIHRoZSA8YSBocmVmPSIvd2lraS9HZW5lYWxvZ3lfb2ZfSmVzdXMiIHRpdGxlPSJHZW5lYWxvZ3kgb2YgSmVzdXMiPkdlbmVhbG9neSBvZiBKZXN1czwvYT47IGl0IGlzIHByb3BoZXNpZWQgdGhhdCBmb3IgNDIgbW9udGhzIHRoZSA8YSBocmVmPSIvd2lraS9UaGVfQmVhc3RfKFJldmVsYXRpb24pIiB0aXRsZT0iVGhlIEJlYXN0IChSZXZlbGF0aW9uKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5CZWFzdDwvYT4gd2lsbCBob2xkIGRvbWluaW9uIG92ZXIgdGhlIEVhcnRoICg8YSBocmVmPSIvd2lraS9Cb29rX29mX1JldmVsYXRpb24iIHRpdGxlPSJCb29rIG9mIFJldmVsYXRpb24iPlJldmVsYXRpb248L2E+IDEzOjUpOyA0MiBtZW4gb2YgQmV0aC1hem1hdmV0aCB3ZXJlIGNvdW50ZWQgaW4gdGhlIDxhIGhyZWY9Ii93aWtpL0NlbnN1cyIgdGl0bGU9IkNlbnN1cyI+Y2Vuc3VzPC9hPiBvZiBtZW4gb2YgPGEgaHJlZj0iL3dpa2kvSXNyYWVsIiB0aXRsZT0iSXNyYWVsIj5Jc3JhZWw8L2E+IHVwb24gcmV0dXJuIGZyb20gZXhpbGUgKDxhIGhyZWY9Ii93aWtpL0Jvb2tfb2ZfRXpyYSIgdGl0bGU9IkJvb2sgb2YgRXpyYSI+RXpyYTwvYT4gMjoyNCk7IDxhIGhyZWY9Ii93aWtpL0dvZCIgdGl0bGU9IkdvZCI+R29kPC9hPiBzZW50IGJlYXJzIHRvIG1hdWwgNDIgb2YgdGhlIHRlZW5hZ2UgYm95cyB3aG8gbW9ja2VkIDxhIGhyZWY9Ii93aWtpL0VsaXNoYSIgdGl0bGU9IkVsaXNoYSI+RWxpc2hhPC9hPiBmb3IgaGlzIGJhbGRuZXNzICg8YSBocmVmPSIvd2lraS9Cb29rc19vZl9LaW5ncyIgdGl0bGU9IkJvb2tzIG9mIEtpbmdzIj4yIEtpbmdzPC9hPiAyOjIzKSwgZXRjLjwvbGk+Cis8bGk+SW4gPGEgaHJlZj0iL3dpa2kvSnVkYWlzbSIgdGl0bGU9Ikp1ZGFpc20iPkp1ZGFpc208L2E+LCB0aGUgbnVtYmVyIChpbiB0aGUgPGk+QmFieWxvbmlhbiBUYWxtdWQ8L2k+LCBjb21waWxlZCAzNzUmbmJzcDtBRCB0byA0OTkmbmJzcDtBRCkgb2YgdGhlICJGb3J0eS1Ud28gTGV0dGVyZWQgTmFtZSIgYXNjcmliZWQgdG8gR29kLiBSYWIgKG9yIFJhYmhzKSwgYSAzcmQtY2VudHVyeSBzb3VyY2UgaW4gdGhlIFRhbG11ZCBzdGF0ZWQgIlRoZSBGb3J0eS1Ud28gTGV0dGVyZWQgTmFtZSBpcyBlbnRydXN0ZWQgb25seSB0byBoaW0gd2hvIGlzIHBpb3VzLCBtZWVrLCBtaWRkbGUtYWdlZCwgZnJlZSBmcm9tIGJhZCB0ZW1wZXIsIHNvYmVyLCBhbmQgbm90IGluc2lzdGVudCBvbiBoaXMgcmlnaHRzIi4gW1NvdXJjZTogPGk+VGFsbXVkIEtpZGR1c2NoaW48L2k+IDcxYSwgVHJhbnNsYXRlZCBieSBSYWJiaSBEci4gSS4gRXBzdGVpbl0uIDxhIGhyZWY9Ii93aWtpL01haW1vbmlkZXMiIHRpdGxlPSJNYWltb25pZGVzIj5NYWltb25pZGVzPC9hPiBmZWx0IHRoYXQgdGhlIG9yaWdpbmFsIFRhbG11ZGljIEZvcnR5LVR3byBMZXR0ZXJlZCBOYW1lIHdhcyBwZXJoYXBzIGNvbXBvc2VkIG9mIHNldmVyYWwgY29tYmluZWQgZGl2aW5lIG5hbWVzIFtNYWltb25pZGVzICJNb3JlaCJdLiBUaGUgYXBwYXJlbnRseSB1bnByb25vdW5jYWJsZSA8YSBocmVmPSIvd2lraS9UZXRyYWdyYW1tYXRvbiIgdGl0bGU9IlRldHJhZ3JhbW1hdG9uIj5UZXRyYWdyYW1tYXRvbjwvYT4gcHJvdmlkZXMgdGhlIGJhY2tkcm9wIGZyb20gdGhlIFR3ZWx2ZS1MZXR0ZXJlZCBOYW1lIGFuZCB0aGUgRm9ydHktVHdvIExldHRlcmVkIE5hbWUgb2YgdGhlIFRhbG11ZC48c3VwIGNsYXNzPSJUZW1wbGF0ZS1GYWN0IiBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFwOyI+WzxpPjxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpDaXRhdGlvbl9uZWVkZWQiIHRpdGxlPSJXaWtpcGVkaWE6Q2l0YXRpb24gbmVlZGVkIj48c3BhbiB0aXRsZT0iVGhpcyBjbGFpbSBuZWVkcyByZWZlcmVuY2VzIHRvIHJlbGlhYmxlIHNvdXJjZXMuIChGZWJydWFyeSAyMDExKSI+Y2l0YXRpb24gbmVlZGVkPC9zcGFuPjwvYT48L2k+XTwvc3VwPjwvbGk+Cis8bGk+VGhlIDxhIGhyZWY9Ii93aWtpL0d1dGVuYmVyZ19CaWJsZSIgdGl0bGU9Ikd1dGVuYmVyZyBCaWJsZSI+R3V0ZW5iZXJnIEJpYmxlPC9hPiBpcyBhbHNvIGtub3duIGFzIHRoZSAiNDItbGluZSBCaWJsZSIsIGFzIHRoZSBib29rIGNvbnRhaW5lZCA0MiBsaW5lcyBwZXIgcGFnZS48L2xpPgorPGxpPlRoZSA8YSBocmVmPSIvd2lraS9Gb3J0eS1Ud29fQXJ0aWNsZXMiIHRpdGxlPSJGb3J0eS1Ud28gQXJ0aWNsZXMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Rm9ydHktVHdvIEFydGljbGVzICgxNTUyKTwvYT4sIGxhcmdlbHkgdGhlIHdvcmsgb2YgPGEgaHJlZj0iL3dpa2kvVGhvbWFzX0NyYW5tZXIiIHRpdGxlPSJUaG9tYXMgQ3Jhbm1lciI+VGhvbWFzIENyYW5tZXI8L2E+LCB3ZXJlIGludGVuZGVkIHRvIHN1bW1hcmlzZSBBbmdsaWNhbiBkb2N0cmluZSwgYXMgaXQgbm93IGV4aXN0ZWQgdW5kZXIgdGhlIHJlaWduIG9mIDxhIGhyZWY9Ii93aWtpL0Vkd2FyZF9WSSIgdGl0bGU9IkVkd2FyZCBWSSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5FZHdhcmQgVkk8L2E+LjwvbGk+Cis8L3VsPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlBvcHVsYXJfY3VsdHVyZSI+UG9wdWxhciBjdWx0dXJlPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj02IiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBQb3B1bGFyIGN1bHR1cmUiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8aDM+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iVGhlX0hpdGNoaGlrZXIuMjdzX0d1aWRlX3RvX3RoZV9HYWxheHkiPjxpPlRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eTwvaT48L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTciIHRpdGxlPSJFZGl0IHNlY3Rpb246IFRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eSI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMz4KKzxwPlRoZSBudW1iZXIgNDIgaXMsIGluIDxpPjxhIGhyZWY9Ii93aWtpL1RoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5IiB0aXRsZT0iVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5Ij5UaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHk8L2E+PC9pPiBieSA8YSBocmVmPSIvd2lraS9Eb3VnbGFzX0FkYW1zIiB0aXRsZT0iRG91Z2xhcyBBZGFtcyI+RG91Z2xhcyBBZGFtczwvYT4sICJUaGUgPGEgaHJlZj0iL3dpa2kvUGhyYXNlc19mcm9tX1RoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5I0Fuc3dlcl90b190aGVfVWx0aW1hdGVfUXVlc3Rpb25fb2ZfTGlmZS4yQ190aGVfVW5pdmVyc2UuMkNfYW5kX0V2ZXJ5dGhpbmdfLjI4NDIuMjkiIHRpdGxlPSJQaHJhc2VzIGZyb20gVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5Ij5BbnN3ZXIgdG8gdGhlIFVsdGltYXRlIFF1ZXN0aW9uIG9mIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmc8L2E+IiwgY2FsY3VsYXRlZCBieSA8YSBocmVmPSIvd2lraS9EZWVwX1Rob3VnaHRfKFRoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5KSIgdGl0bGU9IkRlZXAgVGhvdWdodCAoVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5KSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5hbiBlbm9ybW91cyBzdXBlcmNvbXB1dGVyPC9hPiBvdmVyIGEgcGVyaW9kIG9mIDcuNSBtaWxsaW9uIHllYXJzLiBVbmZvcnR1bmF0ZWx5IG5vIG9uZSBrbm93cyB3aGF0IHRoZSBxdWVzdGlvbiBpcy4gVGh1cywgdG8gY2FsY3VsYXRlIHRoZSBVbHRpbWF0ZSBRdWVzdGlvbiwgYSBzcGVjaWFsIGNvbXB1dGVyIHRoZSBzaXplIG9mIGEgc21hbGwgcGxhbmV0IGFuZCBidWlsdCBmcm9tIG9yZ2FuaWMgY29tcG9uZW50cyB3YXMgY3JlYXRlZCBhbmQgbmFtZWQgIkVhcnRoIi4gVGhpcyBhcHBlYXJlZCBmaXJzdCBpbiB0aGUgPGEgaHJlZj0iL3dpa2kvUmFkaW9fcGxheSIgdGl0bGU9IlJhZGlvIHBsYXkiIGNsYXNzPSJtdy1yZWRpcmVjdCI+cmFkaW8gcGxheTwvYT4gYW5kIGxhdGVyIGluIHRoZSBub3ZlbGl6YXRpb24gb2YgPGk+VGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5PC9pPi4gVGhlIGZvdXJ0aCBib29rIGluIHRoZSBzZXJpZXMsIHRoZSBub3ZlbCA8aT48YSBocmVmPSIvd2lraS9Tb19Mb25nLF9hbmRfVGhhbmtzX2Zvcl9BbGxfdGhlX0Zpc2giIHRpdGxlPSJTbyBMb25nLCBhbmQgVGhhbmtzIGZvciBBbGwgdGhlIEZpc2giPlNvIExvbmcsIGFuZCBUaGFua3MgZm9yIEFsbCB0aGUgRmlzaDwvYT48L2k+LCBjb250YWlucyA0MiBjaGFwdGVycy4gQWNjb3JkaW5nIHRvIHRoZSBub3ZlbCA8aT48YSBocmVmPSIvd2lraS9Nb3N0bHlfSGFybWxlc3MiIHRpdGxlPSJNb3N0bHkgSGFybWxlc3MiPk1vc3RseSBIYXJtbGVzczwvYT48L2k+LCA0MiBpcyB0aGUgc3RyZWV0IGFkZHJlc3Mgb2YgPGEgaHJlZj0iL3dpa2kvUGxhY2VzX2luX1RoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5I1N0YXZyb211bGFfQmV0YSIgdGl0bGU9IlBsYWNlcyBpbiBUaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHkiPlN0YXZyb211bGEgQmV0YTwvYT4uIEluIDE5OTQgQWRhbXMgY3JlYXRlZCB0aGUgPGk+PGEgaHJlZj0iL3dpa2kvNDJfUHV6emxlIiB0aXRsZT0iNDIgUHV6emxlIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQyIFB1enpsZTwvYT48L2k+LCBhIGdhbWUgYmFzZWQgb24gdGhlIG51bWJlciA0Mi48L3A+Cis8cD5UaGUgYm9vayA8aT40MjogRG91Z2xhcyBBZGFtcycgQW1hemluZ2x5IEFjY3VyYXRlIEFuc3dlciB0byBMaWZlLCB0aGUgVW5pdmVyc2UgYW5kIEV2ZXJ5dGhpbmc8L2k+PHN1cCBpZD0iY2l0ZV9yZWYtMTUiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMTUiPjxzcGFuPls8L3NwYW4+MTU8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD4gZXhhbWluZXMgQWRhbXMnIGNob2ljZSBvZiB0aGUgbnVtYmVyIDQyIGFuZCBhbHNvIGNvbnRhaW5zIGEgY29tcGVuZGl1bSBvZiBzb21lIGluc3RhbmNlcyBvZiB0aGUgbnVtYmVyIGluIHNjaWVuY2UsIHBvcHVsYXIgY3VsdHVyZSwgYW5kIGh1bW91ci48L3A+Cis8aDM+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iV29ya3Nfb2ZfTGV3aXNfQ2Fycm9sbCI+V29ya3Mgb2YgTGV3aXMgQ2Fycm9sbDwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249OCIgdGl0bGU9IkVkaXQgc2VjdGlvbjogV29ya3Mgb2YgTGV3aXMgQ2Fycm9sbCI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMz4KKzxwPjxhIGhyZWY9Ii93aWtpL0xld2lzX0NhcnJvbGwiIHRpdGxlPSJMZXdpcyBDYXJyb2xsIj5MZXdpcyBDYXJyb2xsPC9hPjxzdXAgaWQ9ImNpdGVfcmVmLTE2IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTE2Ij48c3Bhbj5bPC9zcGFuPjE2PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+IG1hZGUgcmVwZWF0ZWQgdXNlIG9mIHRoaXMgbnVtYmVyIGluIGhpcyB3cml0aW5ncy48c3VwIGlkPSJjaXRlX3JlZi0xNyIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xNyI+PHNwYW4+Wzwvc3Bhbj4xNzxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvcD4KKzxwPkV4YW1wbGVzIG9mIENhcnJvbGwncyB1c2Ugb2YgNDI6PC9wPgorPHVsPgorPGxpPkFsaWNlJ3MgQWR2ZW50dXJlcyBpbiBXb25kZXJsYW5kIGhhcyA0MiBpbGx1c3RyYXRpb25zLjwvbGk+Cis8bGk+UnVsZSBGb3J0eS10d28gaW4gPGEgaHJlZj0iL3dpa2kvQWxpY2UlMjdzX0FkdmVudHVyZXNfaW5fV29uZGVybGFuZCIgdGl0bGU9IkFsaWNlJ3MgQWR2ZW50dXJlcyBpbiBXb25kZXJsYW5kIj5BbGljZSdzIEFkdmVudHVyZXMgaW4gV29uZGVybGFuZDwvYT4gKCJBbGwgcGVyc29ucyBtb3JlIHRoYW4gYSBtaWxlIGhpZ2ggdG8gbGVhdmUgdGhlIGNvdXJ0IikuPC9saT4KKzxsaT5SdWxlIDQyIG9mIHRoZSBDb2RlIGluIHRoZSBwcmVmYWNlPHN1cCBpZD0iY2l0ZV9yZWYtMTgiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMTgiPjxzcGFuPls8L3NwYW4+MTg8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD4gdG8gPGEgaHJlZj0iL3dpa2kvVGhlX0h1bnRpbmdfb2ZfdGhlX1NuYXJrIiB0aXRsZT0iVGhlIEh1bnRpbmcgb2YgdGhlIFNuYXJrIj5UaGUgSHVudGluZyBvZiB0aGUgU25hcms8L2E+ICgiTm8gb25lIHNoYWxsIHNwZWFrIHRvIHRoZSBNYW4gYXQgdGhlIEhlbG0iKS48L2xpPgorPGxpPkluICJmaXQgdGhlIGZpcnN0IiBvZiA8YSBocmVmPSIvd2lraS9UaGVfSHVudGluZ19vZl90aGVfU25hcmsiIHRpdGxlPSJUaGUgSHVudGluZyBvZiB0aGUgU25hcmsiPlRoZSBIdW50aW5nIG9mIHRoZSBTbmFyazwvYT4gdGhlIEJha2VyIGhhZCAiZm9ydHktdHdvIGJveGVzLCBhbGwgY2FyZWZ1bGx5IHBhY2tlZCwgV2l0aCBoaXMgbmFtZSBwYWludGVkIGNsZWFybHkgb24gZWFjaC4iPHN1cCBpZD0iY2l0ZV9yZWYtMTkiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMTkiPjxzcGFuPls8L3NwYW4+MTk8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L2xpPgorPGxpPlRoZSBXaGl0ZSBRdWVlbiBhbm5vdW5jZXMgaGVyIGFnZSBhcyAib25lIGh1bmRyZWQgYW5kIG9uZSwgZml2ZSBtb250aHMgYW5kIGEgZGF5Iiwgd2hpY2ggLSBpZiB0aGUgYmVzdCBwb3NzaWJsZSBkYXRlIGlzIGFzc3VtZWQgZm9yIHRoZSBhY3Rpb24gb2YgPGk+VGhyb3VnaCB0aGUgTG9va2luZy1HbGFzczwvaT4gLSBnaXZlcyBhIHRvdGFsIG9mIDM3LDA0NCBkYXlzLiBXaXRoIHRoZSBmdXJ0aGVyICh0ZXh0dWFsbHkgdW5jb25maXJtZWQpIGFzc3VtcHRpb24gdGhhdCBib3RoIFF1ZWVucyB3ZXJlIGJvcm4gb24gdGhlIHNhbWUgZGF5IHRoZWlyIGNvbWJpbmVkIGFnZSBiZWNvbWVzIDc0LDA4OCBkYXlzLCB3aGljaCBpcyA0MiB4IDQyIHggNDIuIFNvbWUgY29tbWVudGF0b3JzIGhhdmUgYXNzZXJ0ZWQgdGhhdCB0aGlzIGlzIGRlbGliZXJhdGUgb24gQ2Fycm9sbCdzIHBhcnQuPHN1cCBpZD0iY2l0ZV9yZWYtMjAiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMjAiPjxzcGFuPls8L3NwYW4+MjA8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L2xpPgorPC91bD4KKzxoMz48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJNdXNpYyI+TXVzaWM8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTkiIHRpdGxlPSJFZGl0IHNlY3Rpb246IE11c2ljIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gzPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpL0xldmVsXzQyIiB0aXRsZT0iTGV2ZWwgNDIiPkxldmVsIDQyPC9hPiBpcyBhbiBFbmdsaXNoIDxhIGhyZWY9Ii93aWtpL1BvcF9tdXNpYyIgdGl0bGU9IlBvcCBtdXNpYyI+cG9wPC9hPi88YSBocmVmPSIvd2lraS9Sb2NrX211c2ljIiB0aXRsZT0iUm9jayBtdXNpYyI+cm9jazwvYT4gbXVzaWMgYmFuZC48L2xpPgorPGxpPiI8YSBocmVmPSIvd2lraS80Ml8oc29uZykiIHRpdGxlPSI0MiAoc29uZykiPjQyPC9hPiIgaXMgb25lIG9mIHRoZSB0cmFja3Mgb24gPGEgaHJlZj0iL3dpa2kvQ29sZHBsYXkiIHRpdGxlPSJDb2xkcGxheSI+Q29sZHBsYXk8L2E+J3MgMjAwOCBhbGJ1bSA8aT48YSBocmVmPSIvd2lraS9WaXZhX2xhX1ZpZGFfb3JfRGVhdGhfYW5kX0FsbF9IaXNfRnJpZW5kcyIgdGl0bGU9IlZpdmEgbGEgVmlkYSBvciBEZWF0aCBhbmQgQWxsIEhpcyBGcmllbmRzIj5WaXZhIGxhIFZpZGEgb3IgRGVhdGggYW5kIEFsbCBIaXMgRnJpZW5kczwvYT48L2k+LjwvbGk+Cis8bGk+IjxhIGhyZWY9Ii93aWtpL0NoYW5uZWxfNDJfKHNvbmcpIiB0aXRsZT0iQ2hhbm5lbCA0MiAoc29uZykiPkNoYW5uZWwgNDI8L2E+IiBpcyBhIHRyYWNrIGZyb20gPGEgaHJlZj0iL3dpa2kvRGVhZG1hdTUiIHRpdGxlPSJEZWFkbWF1NSI+ZGVhZG1hdTU8L2E+JyAyMDEyIGFsYnVtIDxpPjxhIGhyZWY9Ii93aWtpL0FsYnVtX1RpdGxlX0dvZXNfSGVyZSIgdGl0bGU9IkFsYnVtIFRpdGxlIEdvZXMgSGVyZSI+QWxidW0gVGl0bGUgR29lcyBIZXJlPC9hPjwvaT4uPC9saT4KKzxsaT4iPGEgaHJlZj0iL3dpa2kvNDJfKHNvbmcpIiB0aXRsZT0iNDIgKHNvbmcpIj40MjwvYT4iIGlzIGEgdHJhY2sgYnkgPGEgaHJlZj0iL3dpa2kvVGhlX0Rpc2NvX0Jpc2N1aXRzIiB0aXRsZT0iVGhlIERpc2NvIEJpc2N1aXRzIiBjbGFzcz0ibXctcmVkaXJlY3QiPlRoZSBEaXNjbyBCaXNjdWl0czwvYT4gYW5kIHdhcyB3cml0dGVuIGJ5ICI8YSBocmVmPSIvd2lraS9NYXJjX0Jyb3duc3RlaW4iIHRpdGxlPSJNYXJjIEJyb3duc3RlaW4iPk1hcmMgQnJvd25zdGVpbjwvYT4iLjwvbGk+Cis8L3VsPgorPGgzPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlRlbGV2aXNpb25fYW5kX2ZpbG0iPlRlbGV2aXNpb24gYW5kIGZpbG08L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTEwIiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBUZWxldmlzaW9uIGFuZCBmaWxtIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gzPgorPHVsPgorPGxpPjxpPjxhIGhyZWY9Ii93aWtpL1RoZV9LdW1hcnNfYXRfTm8uXzQyIiB0aXRsZT0iVGhlIEt1bWFycyBhdCBOby4gNDIiPlRoZSBLdW1hcnMgYXQgTm8uIDQyPC9hPjwvaT4gdGVsZXZpc2lvbiBzZXJpZXMuIEluIDIwMDMsIDxhIGhyZWY9Ii93aWtpL1NhbmplZXZfQmhhc2thciIgdGl0bGU9IlNhbmplZXYgQmhhc2thciI+U2FuamVldiBCaGFza2FyPC9hPiBob3N0ZWQgYSA8YSBocmVmPSIvd2lraS9CQkMiIHRpdGxlPSJCQkMiPkJCQzwvYT4gc2hvdyBub21pbmF0aW5nIDxpPjxhIGhyZWY9Ii93aWtpL1RoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5IiB0aXRsZT0iVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5Ij5UaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHk8L2E+PC9pPiBhcyA8aT48YSBocmVmPSIvd2lraS9HcmVhdF9Ccml0YWluIiB0aXRsZT0iR3JlYXQgQnJpdGFpbiI+QnJpdGFpbjwvYT4ncyBCZXN0IExvdmVkIEJvb2s8L2k+LjwvbGk+Cis8bGk+QSBtYWRlIGZvciBUViBtb3ZpZSA8aT40MjogRm9ydHkgVHdvIFVwPC9pPiAtIGFuIGluc3RhbGxtZW50IGluIGEgc2VyaWVzIG9mIGRvY3VtZW50YXJpZXMgd2hlcmVpbiB0aGUgZGlyZWN0b3IgcmV2aXNpdHMgdGhlIHNhbWUgZ3JvdXAgb2YgQnJpdGlzaC1ib3JuIGluZGl2aWR1YWxzIGV2ZXJ5IDcgeWVhcnMuPHN1cCBpZD0iY2l0ZV9yZWYtMjEiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMjEiPjxzcGFuPls8L3NwYW4+MjE8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L2xpPgorPGxpPiI8YSBocmVmPSIvd2lraS80Ml8oRG9jdG9yX1dobykiIHRpdGxlPSI0MiAoRG9jdG9yIFdobykiPjQyPC9hPiIgaXMgYW4gZXBpc29kZSBvZiA8aT48YSBocmVmPSIvd2lraS9Eb2N0b3JfV2hvIiB0aXRsZT0iRG9jdG9yIFdobyI+RG9jdG9yIFdobzwvYT48L2k+LCBzZXQgaW4gPGEgaHJlZj0iL3dpa2kvUmVhbF90aW1lXyhtZWRpYSkiIHRpdGxlPSJSZWFsIHRpbWUgKG1lZGlhKSI+cmVhbCB0aW1lPC9hPiBsYXN0aW5nIGFwcHJveGltYXRlbHkgNDImbmJzcDttaW51dGVzLjwvbGk+Cis8bGk+VGhlIDxhIGhyZWY9Ii93aWtpL1VTU19FbnRlcnByaXNlXyhOQ0MtMTcwMS1EKSIgdGl0bGU9IlVTUyBFbnRlcnByaXNlIChOQ0MtMTcwMS1EKSI+VVNTIEVudGVycHJpc2UgRDwvYT4gaGFkIDQyIGRlY2tzPC9saT4KKzxsaT5JbiBhbiBlcGlzb2RlIG9mIDxpPlN0YXJnYXRlIEF0bGFudGlzPC9pPiB0aGUgY2hhcmFjdGVyIEpvaG4gU2hlcHBhcmQgcmV2ZWFscyB0aGF0IHRoZSBudW1iZXIgaXMgdGhlIHVsdGltYXRlIGFuc3dlciB0byBsaWZlLCB0aGUgdW5pdmVyc2UgYW5kIGV2ZXJ5dGhpbmcsIHRvIHRoZSBjb25mdXNpb24gb2YgaGlzIGFsaWVuIGNvbXBhbmlvbi48L2xpPgorPGxpPk9uIHRoZSBnYW1lIHNob3cgPGk+PGEgaHJlZj0iL3dpa2kvSmVvcGFyZHkhIiB0aXRsZT0iSmVvcGFyZHkhIj5KZW9wYXJkeSE8L2E+PC9pPiwgIjxhIGhyZWY9Ii93aWtpL1dhdHNvbl8oY29tcHV0ZXIpIiB0aXRsZT0iV2F0c29uIChjb21wdXRlcikiPldhdHNvbjwvYT4iIHRoZSBJQk0gc3VwZXJjb21wdXRlciwgaGFzIDQyICJ0aHJlYWRzIiBpbiBpdHMgYXZhdGFyLjxzdXAgaWQ9ImNpdGVfcmVmLTIyIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTIyIj48c3Bhbj5bPC9zcGFuPjIyPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzxsaT5PbiB0aGUgPGk+PGEgaHJlZj0iL3dpa2kvVGhlX1VudXN1YWxzIiB0aXRsZT0iVGhlIFVudXN1YWxzIj5VbnVzdWFsczwvYT48L2k+IFRWLXNob3cgdGhlcmUncyBhbiBlcGlzb2RlIGNhbGxlZCAiNDIiLiBEZXRlY3RpdmUgTGVvIEJhbmtzIHJlY2VudGx5IHR1cm5lZCA0Mi4gT24gYWNjb3VudCBvZiBoaXMgZmF0aGVyLCB1bmNsZSwgYW5kIGdyYW5kZmF0aGVyIGRyb3BwaW5nIGRlYWQgYXQgNDIsIExlbyBpcyBjb252aW5jZWQgaGUnbGwgc2hhcmUgdGhlaXIgZmF0ZS4gVGhlcmUgd2VyZSA0MnMgYWxsIG92ZXIgdGhlIGVwaXNvZGUuPC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80Ml8oZmlsbSkiIHRpdGxlPSI0MiAoZmlsbSkiPjQyIChmaWxtKTwvYT4gaXMgYSBmaWxtIG9uIHRoZSBsaWZlIG9mIEFtZXJpY2FuIGJhc2ViYWxsIHBsYXllciBKYWNraWUgUm9iaW5zb24uPC9saT4KKzxsaT48YSBocmVmPSIvd2lraS9JLF9Sb2JvdF8oZmlsbSkiIHRpdGxlPSJJLCBSb2JvdCAoZmlsbSkiPkksIFJvYm90IChmaWxtKTwvYT4gNDIgaXMgdGhlIG51bWJlciBvZiB0aGUgZmlyc3Qgcm9ib3Qgc2hvd24gaW4gdGhlIG1vdmllLCBhIEZlZEV4IERlbGl2ZXJ5IHJvYm90LjwvbGk+Cis8bGk+NDIgaXMgdGhlIG51bWJlciBvZiA8YSBocmVmPSIvd2lraS9Ub255X1N0YXJrIiB0aXRsZT0iVG9ueSBTdGFyayIgY2xhc3M9Im13LXJlZGlyZWN0Ij5Ub255IFN0YXJrPC9hPidzIGxhdGVzdCBhcm1vciAoTWFyayA0MikgaW4gPGEgaHJlZj0iL3dpa2kvTWFydmVsX1N0dWRpb3MiIHRpdGxlPSJNYXJ2ZWwgU3R1ZGlvcyI+TWFydmVsIFN0dWRpb3M8L2E+JyBtb3ZpZSA8YSBocmVmPSIvd2lraS9Jcm9uX01hbl8zIiB0aXRsZT0iSXJvbiBNYW4gMyI+SXJvbiBNYW4gMzwvYT4gYnkgPGEgaHJlZj0iL3dpa2kvU2hhbmVfQmxhY2siIHRpdGxlPSJTaGFuZSBCbGFjayI+U2hhbmUgQmxhY2s8L2E+IHN0YXJyaW5nIDxhIGhyZWY9Ii93aWtpL1JvYmVydF9Eb3duZXlfSnIiIHRpdGxlPSJSb2JlcnQgRG93bmV5IEpyIiBjbGFzcz0ibXctcmVkaXJlY3QiPlJvYmVydCBEb3duZXkgSnI8L2E+LjwvbGk+Cis8L3VsPgorPGgzPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlZpZGVvX2dhbWVzIj5WaWRlbyBnYW1lczwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249MTEiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFZpZGVvIGdhbWVzIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gzPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyX0VudGVydGFpbm1lbnQiIHRpdGxlPSI0MiBFbnRlcnRhaW5tZW50Ij40MiBFbnRlcnRhaW5tZW50PC9hPiBpcyB0aGUgY29tcGFueSByZXNwb25zaWJsZSBmb3Igc2V2ZXJhbCA8YSBocmVmPSIvd2lraS9BbHRlcm5hdGVfcmVhbGl0eV9nYW1lIiB0aXRsZT0iQWx0ZXJuYXRlIHJlYWxpdHkgZ2FtZSI+YWx0ZXJuYXRlIHJlYWxpdHkgZ2FtZXM8L2E+LCBpbmNsdWRpbmcgPGk+PGEgaHJlZj0iL3dpa2kvSV9Mb3ZlX0JlZXMiIHRpdGxlPSJJIExvdmUgQmVlcyI+SSBMb3ZlIEJlZXM8L2E+PC9pPiwgPGk+PGEgaHJlZj0iL3dpa2kvWWVhcl9aZXJvXyhnYW1lKSIgdGl0bGU9IlllYXIgWmVybyAoZ2FtZSkiPlllYXIgWmVybzwvYT48L2k+LCBhbmQgPGk+V2h5IFNvIFNlcmlvdXM8L2k+LjwvbGk+Cis8bGk+SW4gPGk+PGEgaHJlZj0iL3dpa2kvU3BvcmVfKDIwMDhfdmlkZW9fZ2FtZSkiIHRpdGxlPSJTcG9yZSAoMjAwOCB2aWRlbyBnYW1lKSI+U3BvcmU8L2E+PC9pPiwgcmVhY2hpbmcgdGhlIGNlbnRlciBvZiB0aGUgZ2FsYXh5IHlpZWxkcyBhIHBvd2VyZnVsIGl0ZW0ga25vd24gYXMgdGhlICJTdGFmZiBvZiBMaWZlIiB3aGljaCBoYXMgYSBsaW1pdGVkIDQyIHVzZXMuIEl0IGFsc28gZ3JhbnRzIHRoZSBwbGF5ZXIgYW4gYWNoaWV2ZW1lbnQgdGl0bGVkICI0MiIuPC9saT4KKzxsaT5JbiA8aT48YSBocmVmPSIvd2lraS9GYWJsZV9JSSIgdGl0bGU9IkZhYmxlIElJIj5GYWJsZSBJSTwvYT48L2k+LCB0aGUgbGFzdCBpbiBhIHNlcmllcyBvZiBhbmNpZW50IGFydGlmYWN0cyB0aGUgcGxheWVyIGNhbiBmaW5kIHNheXMgIk5vdyBqdXN0IHRoaW5rIG9mIHRoZSBudW1iZXIgNDIuIjwvbGk+Cis8bGk+SW4gPGk+PGEgaHJlZj0iL3dpa2kvTGVmdF80X0RlYWRfMiIgdGl0bGU9IkxlZnQgNCBEZWFkIDIiPkxlZnQgNCBEZWFkIDI8L2E+PC9pPiwgNDIgaXMgdGhlIG51bWJlciBvZiBNb3VzdGFjaGlvcyB0aGF0IG11c3QgYmUgc2hvdCBpbiB0aGUgRGFyayBDYXJuaXZhbCBjYW1wYWlnbidzIFdoYWNrLWEtTW9sZSBzdHlsZSBtaW5pLWdhbWUgaW4gb3JkZXIgdG8gdW5sb2NrIHRoZSBTVEFDSCBXQUNLRVIgYWNoaWV2ZW1lbnQuPC9saT4KKzxsaT5JbiA8aT48YSBocmVmPSIvd2lraS9IYWxvX1dhcnMiIHRpdGxlPSJIYWxvIFdhcnMiPkhhbG8gV2FyczwvYT48L2k+IHRoZXJlIGlzIGEgU3BhcnRhbi1JSSBDb21tYW5kbyBjYWxsZWQgRG91Z2xhcy0wNDIuPC9saT4KKzwvdWw+Cis8aDM+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iU3BvcnRzIj5TcG9ydHM8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTEyIiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBTcG9ydHMiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDM+Cis8ZGl2IGNsYXNzPSJ0aHVtYiB0cmlnaHQiPgorPGRpdiBjbGFzcz0idGh1bWJpbm5lciIgc3R5bGU9IndpZHRoOjIyMnB4OyI+PGEgaHJlZj0iL3dpa2kvRmlsZTpKcm9iaW5zb24uanBnIiBjbGFzcz0iaW1hZ2UiPjxpbWcgYWx0PSIiIHNyYz0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi80LzQyL0pyb2JpbnNvbi5qcGcvMjIwcHgtSnJvYmluc29uLmpwZyIgd2lkdGg9IjIyMCIgaGVpZ2h0PSIxNzQiIGNsYXNzPSJ0aHVtYmltYWdlIiBzcmNzZXQ9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvNC80Mi9Kcm9iaW5zb24uanBnLzMzMHB4LUpyb2JpbnNvbi5qcGcgMS41eCwgLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi80LzQyL0pyb2JpbnNvbi5qcGcvNDQwcHgtSnJvYmluc29uLmpwZyAyeCI+PC9hPgorPGRpdiBjbGFzcz0idGh1bWJjYXB0aW9uIj4KKzxkaXYgY2xhc3M9Im1hZ25pZnkiPjxhIGhyZWY9Ii93aWtpL0ZpbGU6SnJvYmluc29uLmpwZyIgY2xhc3M9ImludGVybmFsIiB0aXRsZT0iRW5sYXJnZSI+PGltZyBzcmM9Ii8vYml0cy53aWtpbWVkaWEub3JnL3N0YXRpYy0xLjIzd21mMTAvc2tpbnMvY29tbW9uL2ltYWdlcy9tYWduaWZ5LWNsaXAucG5nIiB3aWR0aD0iMTUiIGhlaWdodD0iMTEiIGFsdD0iIj48L2E+PC9kaXY+Cis8YSBocmVmPSIvd2lraS9KYWNraWVfUm9iaW5zb24iIHRpdGxlPSJKYWNraWUgUm9iaW5zb24iPkphY2tpZSBSb2JpbnNvbjwvYT4gaW4gaGlzIG5vdy1yZXRpcmVkIG51bWJlciA0MiBqZXJzZXkuPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPHVsPgorPGxpPlRoZSA8YSBocmVmPSIvd2lraS9TcXVhZF9udW1iZXIiIHRpdGxlPSJTcXVhZCBudW1iZXIiIGNsYXNzPSJtdy1yZWRpcmVjdCI+amVyc2V5IG51bWJlcjwvYT4gb2YgPGEgaHJlZj0iL3dpa2kvSmFja2llX1JvYmluc29uIiB0aXRsZT0iSmFja2llIFJvYmluc29uIj5KYWNraWUgUm9iaW5zb248L2E+LCB3aGljaCBpcyB0aGUgb25seSBudW1iZXIgcmV0aXJlZCBieSBhbGwgPGEgaHJlZj0iL3dpa2kvTWFqb3JfTGVhZ3VlX0Jhc2ViYWxsIiB0aXRsZT0iTWFqb3IgTGVhZ3VlIEJhc2ViYWxsIj5NYWpvciBMZWFndWUgQmFzZWJhbGw8L2E+IHRlYW1zLiBBbHRob3VnaCB0aGUgbnVtYmVyIHdhcyByZXRpcmVkIGluIDE5OTcsIDxhIGhyZWY9Ii93aWtpL01hcmlhbm9fUml2ZXJhIiB0aXRsZT0iTWFyaWFubyBSaXZlcmEiPk1hcmlhbm8gUml2ZXJhPC9hPiBvZiB0aGUgPGEgaHJlZj0iL3dpa2kvTmV3X1lvcmtfWWFua2VlcyIgdGl0bGU9Ik5ldyBZb3JrIFlhbmtlZXMiPk5ldyBZb3JrIFlhbmtlZXM8L2E+LCB0aGUgbGFzdCBwcm9mZXNzaW9uYWwgYmFzZWJhbGwgcGxheWVyIHRvIHdlYXIgbnVtYmVyIDQyLCBjb250aW51ZWQgdG8gd2VhciBpdCB1bnRpbCBoZSByZXRpcmVkIGF0IHRoZSBlbmQgb2YgdGhlIDIwMTMgc2Vhc29uLiBBcyBvZiB0aGUgMjAxNCBzZWFzb24sIG5vIHBsYXllciB3aWxsIGV2ZXIgYWdhaW4gd2VhciB0aGUgbnVtYmVyIDQyIGluIE1ham9yIExlYWd1ZSBCYXNlYmFsbCBleGNlcHQgb24gPGEgaHJlZj0iL3dpa2kvSmFja2llX1JvYmluc29uX0RheSIgdGl0bGU9IkphY2tpZSBSb2JpbnNvbiBEYXkiPkphY2tpZSBSb2JpbnNvbiBEYXk8L2E+IChBcHJpbCAxNSksIHdoZW4gPGk+YWxsPC9pPiB1bmlmb3JtZWQgcGVyc29ubmVsIChwbGF5ZXJzLCBtYW5hZ2VycywgY29hY2hlcywgYW5kIHVtcGlyZXMpIHdlYXIgdGhlIG51bWJlci48L2xpPgorPGxpPlRoZSBqZXJzZXkgbnVtYmVyIG9mIDxhIGhyZWY9Ii93aWtpL0Jhc2tldGJhbGxfSGFsbF9vZl9GYW1lIiB0aXRsZT0iQmFza2V0YmFsbCBIYWxsIG9mIEZhbWUiIGNsYXNzPSJtdy1yZWRpcmVjdCI+YmFza2V0YmFsbCBIYWxsIG9mIEZhbWVyPC9hPiBhbmQgb25lIG9mIHRoZSA8YSBocmVmPSIvd2lraS81MF9HcmVhdGVzdF9QbGF5ZXJzX2luX05CQV9IaXN0b3J5IiB0aXRsZT0iNTAgR3JlYXRlc3QgUGxheWVycyBpbiBOQkEgSGlzdG9yeSI+NTAgR3JlYXRlc3QgUGxheWVycyBpbiBOQkEgSGlzdG9yeTwvYT4gPGEgaHJlZj0iL3dpa2kvSmFtZXNfV29ydGh5IiB0aXRsZT0iSmFtZXMgV29ydGh5Ij5KYW1lcyBXb3J0aHk8L2E+LCBzbWFsbCBmb3J3YXJkIGZvciB0aGUgPGEgaHJlZj0iL3dpa2kvTG9zX0FuZ2VsZXNfTGFrZXJzIiB0aXRsZT0iTG9zIEFuZ2VsZXMgTGFrZXJzIj5Mb3MgQW5nZWxlcyBMYWtlcnM8L2E+LCB3aG8gcmV0aXJlZCBoaXMgamVyc2V5IG51bWJlciBpbiAxOTk1LjwvbGk+Cis8bGk+VGhlIGplcnNleSBudW1iZXIgb2YgPGEgaHJlZj0iL3dpa2kvUHJvX0Zvb3RiYWxsX0hhbGxfb2ZfRmFtZSIgdGl0bGU9IlBybyBGb290YmFsbCBIYWxsIG9mIEZhbWUiPkFtZXJpY2FuIGZvb3RiYWxsIEhhbGwgb2YgRmFtZTwvYT4sIDxhIGhyZWY9Ii93aWtpL1Jvbm5pZV9Mb3R0IiB0aXRsZT0iUm9ubmllIExvdHQiPlJvbm5pZSBMb3R0PC9hPiwgc2FmZXR5IGZvciB0aGUgPGEgaHJlZj0iL3dpa2kvU2FuX0ZyYW5jaXNjb180OWVycyIgdGl0bGU9IlNhbiBGcmFuY2lzY28gNDllcnMiPlNhbiBGcmFuY2lzY28gNDllcnM8L2E+LCB3aG8gcmV0aXJlZCBoaXMgamVyc2V5IG51bWJlciBpbiAyMDAzLjwvbGk+Cis8bGk+VGhlIGplcnNleSBudW1iZXIgb2YgPGEgaHJlZj0iL3dpa2kvQ2hpY2Fnb19CZWFycyIgdGl0bGU9IkNoaWNhZ28gQmVhcnMiPkNoaWNhZ28gQmVhcnM8L2E+IGxlZ2VuZCA8YSBocmVmPSIvd2lraS9TaWRfTHVja21hbiIgdGl0bGU9IlNpZCBMdWNrbWFuIj5TaWQgTHVja21hbjwvYT4sIHdoaWNoIHdhcyByZXRpcmVkIGJ5IHRoZSBCZWFycy48L2xpPgorPGxpPlRoZSBqZXJzZXkgbnVtYmVyIG9mIDxhIGhyZWY9Ii93aWtpL1BhdF9UaWxsbWFuIiB0aXRsZT0iUGF0IFRpbGxtYW4iPlBhdCBUaWxsbWFuPC9hPiwgd2hpY2ggd2FzIHJldGlyZWQgb24gTm92ZW1iZXIgMTMsIDIwMDQgYnkgPGEgaHJlZj0iL3dpa2kvQXJpem9uYV9TdGF0ZV9TdW5fRGV2aWxzX2Zvb3RiYWxsIiB0aXRsZT0iQXJpem9uYSBTdGF0ZSBTdW4gRGV2aWxzIGZvb3RiYWxsIj5Bcml6b25hIFN0YXRlIFVuaXZlcnNpdHk8L2E+LjwvbGk+Cis8bGk+VGhlIGplcnNleSBudW1iZXIgb2YgPGEgaHJlZj0iL3dpa2kvTmF0aW9uYWxfQmFzZWJhbGxfSGFsbF9vZl9GYW1lX2FuZF9NdXNldW0iIHRpdGxlPSJOYXRpb25hbCBCYXNlYmFsbCBIYWxsIG9mIEZhbWUgYW5kIE11c2V1bSI+YmFzZWJhbGwgSGFsbCBvZiBGYW1lcjwvYT4gPGEgaHJlZj0iL3dpa2kvQnJ1Y2VfU3V0dGVyIiB0aXRsZT0iQnJ1Y2UgU3V0dGVyIj5CcnVjZSBTdXR0ZXI8L2E+LCByZXRpcmVkIGJ5IHRoZSA8YSBocmVmPSIvd2lraS9TdC5fTG91aXNfQ2FyZGluYWxzIiB0aXRsZT0iU3QuIExvdWlzIENhcmRpbmFscyI+U3QuIExvdWlzIENhcmRpbmFsczwvYT4gb24gU2VwdGVtYmVyIDE3LCAyMDA2LjwvbGk+Cis8bGk+VGhlIG51bWJlciBvZiA8YSBocmVmPSIvd2lraS9MYXdzX29mX2NyaWNrZXQiIHRpdGxlPSJMYXdzIG9mIGNyaWNrZXQiPmxhd3Mgb2YgY3JpY2tldDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpL1J1bGVfNDIiIHRpdGxlPSJSdWxlIDQyIj5SdWxlIDQyPC9hPiBpcyB0aGUgaGlzdG9yaWMgbmFtZSBvZiBhIDxhIGhyZWY9Ii93aWtpL0dhZWxpY19BdGhsZXRpY19Bc3NvY2lhdGlvbiIgdGl0bGU9IkdhZWxpYyBBdGhsZXRpYyBBc3NvY2lhdGlvbiI+R2FlbGljIEF0aGxldGljIEFzc29jaWF0aW9uPC9hPiBydWxlIChub3cgY29kaWZpZWQgaW4gUnVsZSA1LjEgYW5kIFJ1bGUgNDQpIHRoYXQgaW4gcHJhY3RpY2UgcHJvaGliaXRzIHRoZSBwbGF5aW5nIG9mICJmb3JlaWduIHNwb3J0cyIgKGdlbmVyYWxseSA8YSBocmVmPSIvd2lraS9Bc3NvY2lhdGlvbl9mb290YmFsbCIgdGl0bGU9IkFzc29jaWF0aW9uIGZvb3RiYWxsIj5hc3NvY2lhdGlvbiBmb290YmFsbDwvYT4gYW5kIHRoZSA8YSBocmVmPSIvd2lraS9SdWdieV9mb290YmFsbCIgdGl0bGU9IlJ1Z2J5IGZvb3RiYWxsIj5ydWdieSBjb2RlczwvYT4pIGF0IEdBQSBncm91bmRzLjwvbGk+Cis8bGk+NDIgaXMgdGhlIG51bWJlciBvZiBhIDxhIGhyZWY9Ii93aWtpL05BU0NBUiIgdGl0bGU9Ik5BU0NBUiI+TkFTQ0FSPC9hPiBjYXIgb3duZWQgYnkgPGEgaHJlZj0iL3dpa2kvRWFybmhhcmR0X0dhbmFzc2lfUmFjaW5nIiB0aXRsZT0iRWFybmhhcmR0IEdhbmFzc2kgUmFjaW5nIiBjbGFzcz0ibXctcmVkaXJlY3QiPkVhcm5oYXJkdCBHYW5hc3NpIFJhY2luZzwvYT4uIEFzIG9mIHRoZSB1cGNvbWluZyAyMDE0IHNlYXNvbiwgaXQgd2lsbCBiZSBkcml2ZW4gYnkgPGEgaHJlZj0iL3dpa2kvS3lsZV9MYXJzb24iIHRpdGxlPSJLeWxlIExhcnNvbiI+S3lsZSBMYXJzb248L2E+LjwvbGk+Cis8L3VsPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9Ik90aGVyX2ZpZWxkcyI+T3RoZXIgZmllbGRzPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0xMyIgdGl0bGU9IkVkaXQgc2VjdGlvbjogT3RoZXIgZmllbGRzIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPHVsPgorPGxpPnRoZSAzRCBnYW1lcyBvZiBUUklBREVNIHVzZSA0MiBwaWVjZXMgd2l0aCA2IHBsYXllcnMgYW5kIHRoZSBib2FyZCBzdHJ1Y3R1cmUgY29uc2lzdHMgb2YgbWFueSBvY2N1cnJlbmNlcyBvZiA0Mi48L2xpPgorPGxpPis0MiBpcyB0aGUgaGlzdG9yaWMgPGEgaHJlZj0iL3dpa2kvQ291bnRyeV9jYWxsaW5nX2NvZGUiIHRpdGxlPSJDb3VudHJ5IGNhbGxpbmcgY29kZSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5Db3VudHJ5IGNhbGxpbmcgY29kZTwvYT4gZm9yIHRoZSBmb3JtZXIgY291bnRyeSBvZiA8YSBocmVmPSIvd2lraS9DemVjaG9zbG92YWtpYSIgdGl0bGU9IkN6ZWNob3Nsb3Zha2lhIj5DemVjaG9zbG92YWtpYTwvYT4uPC9saT4KKzxsaT5UaGVyZSBhcmUgNDIgVVMgZ2FsbG9ucyBpbiBhIGJhcnJlbCBvZiBvaWwuPC9saT4KKzxsaT40MiBpcyB0aGUgbnVtYmVyIG9mIHRoZSBGcmVuY2ggPGEgaHJlZj0iL3dpa2kvRGVwYXJ0bWVudHNfb2ZfRnJhbmNlIiB0aXRsZT0iRGVwYXJ0bWVudHMgb2YgRnJhbmNlIj5kZXBhcnRtZW50PC9hPiBvZiA8YSBocmVmPSIvd2lraS9Mb2lyZV8oZGVwYXJ0bWVudCkiIHRpdGxlPSJMb2lyZSAoZGVwYXJ0bWVudCkiPkxvaXJlPC9hPi4gVGhlIG51bWJlciBpcyBhbHNvIHJlZmxlY3RlZCBpbiB0aGUgPGEgaHJlZj0iL3dpa2kvUG9zdGFsX2NvZGVzX2luX0ZyYW5jZSIgdGl0bGU9IlBvc3RhbCBjb2RlcyBpbiBGcmFuY2UiPnBvc3RhbCBjb2RlPC9hPiBmb3IgdGhhdCBhcmVhLjwvbGk+Cis8bGk+VGhlIGJvYXJkIGdhbWUgPGEgaHJlZj0iL3dpa2kvUmlza18oZ2FtZSkiIHRpdGxlPSJSaXNrIChnYW1lKSI+UmlzayAoZ2FtZSk8L2E+IGhhcyBmb3J0eS10d28gdGVycml0b3JpZXM8L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpL1Rvd2VyXzQyIiB0aXRsZT0iVG93ZXIgNDIiPlRvd2VyIDQyPC9hPiBpcyBhIHNreXNjcmFwZXIgaW4gdGhlIDxhIGhyZWY9Ii93aWtpL0NpdHlfb2ZfTG9uZG9uIiB0aXRsZT0iQ2l0eSBvZiBMb25kb24iPkNpdHkgb2YgTG9uZG9uPC9hPiwgZm9ybWVybHkga25vd24gYXMgdGhlIDxhIGhyZWY9Ii93aWtpL05hdGlvbmFsX1dlc3RtaW5zdGVyX0JhbmsiIHRpdGxlPSJOYXRpb25hbCBXZXN0bWluc3RlciBCYW5rIj5OYXRXZXN0PC9hPiBUb3dlci48L2xpPgorPGxpPlRoZSBuYW1lIG9mIGEgVGV4YW4gPGEgaHJlZj0iL3dpa2kvVHJpY2stdGFraW5nX2dhbWUiIHRpdGxlPSJUcmljay10YWtpbmcgZ2FtZSI+dHJpY2stdGFraW5nIGdhbWU8L2E+IHBsYXllZCB3aXRoIDxhIGhyZWY9Ii93aWtpL0RvbWlub2VzIiB0aXRsZT0iRG9taW5vZXMiPmRvbWlub2VzPC9hPiAoc2VlIDxhIGhyZWY9Ii93aWtpLzQyXyhkb21pbm9lcykiIHRpdGxlPSI0MiAoZG9taW5vZXMpIj40MiAoZG9taW5vZXMpPC9hPikuPC9saT4KKzxsaT5UaGUgbnVtYmVyIG9mIHNwb3RzIChvciBwaXBzLCBjaXJjdWxhciBwYXRjaGVzIG9yIHBpdHMpIG9uIGEgcGFpciBvZiBzdGFuZGFyZCBzaXgtc2lkZWQgPGEgaHJlZj0iL3dpa2kvRGljZSIgdGl0bGU9IkRpY2UiPmRpY2U8L2E+LjwvbGk+Cis8bGk+SW4gPGEgaHJlZj0iL3dpa2kvTmV3X1lvcmtfQ2l0eSIgdGl0bGU9Ik5ldyBZb3JrIENpdHkiPk5ldyBZb3JrIENpdHk8L2E+LCA8YSBocmVmPSIvd2lraS80Mm5kX1N0cmVldF8oTWFuaGF0dGFuKSIgdGl0bGU9IjQybmQgU3RyZWV0IChNYW5oYXR0YW4pIj40Mm5kIFN0cmVldDwvYT4gaXMgYSBtYWluIGFuZCB2ZXJ5IHBvcHVsYXIgdHdvLXdheSB0aG9yb3VnaGZhcmUuIExhbmRtYXJrcyBvbiBpdCBpbmNsdWRlIHRoZSA8YSBocmVmPSIvd2lraS9DaHJ5c2xlcl9CdWlsZGluZyIgdGl0bGU9IkNocnlzbGVyIEJ1aWxkaW5nIj5DaHJ5c2xlciBCdWlsZGluZzwvYT4sIDxhIGhyZWY9Ii93aWtpL0dyYW5kX0NlbnRyYWxfVGVybWluYWwiIHRpdGxlPSJHcmFuZCBDZW50cmFsIFRlcm1pbmFsIj5HcmFuZCBDZW50cmFsIFRlcm1pbmFsPC9hPiwgdGhlIG1haW4gYnJhbmNoIG9mIHRoZSA8YSBocmVmPSIvd2lraS9OZXdfWW9ya19QdWJsaWNfTGlicmFyeSIgdGl0bGU9Ik5ldyBZb3JrIFB1YmxpYyBMaWJyYXJ5Ij5OZXcgWW9yayBQdWJsaWMgTGlicmFyeTwvYT4sIGFuZCA8YSBocmVmPSIvd2lraS9UaW1lc19TcXVhcmUiIHRpdGxlPSJUaW1lcyBTcXVhcmUiPlRpbWVzIFNxdWFyZTwvYT4uIFRoZSBOZXcgWW9yayBDaXR5IHN0cmVldCBpcyBhbHNvIHRoZSBzZXR0aW5nIGZvciBhIDxhIGhyZWY9Ii93aWtpLzQybmRfU3RyZWV0XyhmaWxtKSIgdGl0bGU9IjQybmQgU3RyZWV0IChmaWxtKSI+bW92aWU8L2E+IGJ5IHRoZSBzYW1lIG5hbWUgKHdoaWNoIGFsc28gZ2F2ZSBmYW1lIHRvIGl0cyBlcG9ueW1vdXMgdGl0bGUgc29uZyksIGFuZCB3aGljaCBsYXRlciBpbnNwaXJlZCBhIG11c2ljYWwgYWRhcHRhdGlvbiwgPGk+PGEgaHJlZj0iL3dpa2kvNDJuZF9TdHJlZXRfKG11c2ljYWwpIiB0aXRsZT0iNDJuZCBTdHJlZXQgKG11c2ljYWwpIj40Mm5kIFN0cmVldDwvYT4uPC9pPjwvbGk+Cis8bGk+UG9wdWxhciBnYWRnZXQgbWFnYXppbmUgPGEgaHJlZj0iL3dpa2kvU3R1ZmZfKG1hZ2F6aW5lKSIgdGl0bGU9IlN0dWZmIChtYWdhemluZSkiPlN0dWZmPC9hPiBkaWQgbm90IHByb2R1Y2UgYW4gaXNzdWUgbnVtYmVyZWQgNDIsIGluIGhvbm9yIG9mIFRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eSwgaW5zdGVhZCwgdGhlIDQxc3QgaXNzdWUgd2FzIGZvbGxvd2VkIGJ5IHRoZSA0M3JkLjwvbGk+Cis8bGk+VGhlIGRlc2lnbmF0aW9uIHdpdGhpbiA8YSBocmVmPSIvd2lraS9JU08vSUVDX0pUQzEiIHRpdGxlPSJJU08vSUVDIEpUQzEiIGNsYXNzPSJtdy1yZWRpcmVjdCI+SVNPL0lFQyBKVEMxL1NDNzwvYT4gb2YgaXRzIHdvcmtpbmcgZ3JvdXAgb24gQXJjaGl0ZWN0dXJlIHdhcyBjaG9zZW4gdG8gYmUgIldHIDQyIiBiZWNhdXNlIGFyY2hpdGVjdHVyZSBpcyB0aGUgYW5zd2VyIHRvICJMaWZlLCB0aGUgVW5pdmVyc2UgYW5kIEV2ZXJ5dGhpbmciLCBza2lwcGluZyBvdmVyIGRlc2lnbmF0aW9ucyAyNiB0aHJvdWdoIDQxLjwvbGk+Cis8bGk+RmljdGlvbmFsIGNvbWljIGJvb2sgc3VwZXJoZXJvIDxhIGhyZWY9Ii93aWtpL01pbGVzX01vcmFsZXMiIHRpdGxlPSJNaWxlcyBNb3JhbGVzIiBjbGFzcz0ibXctcmVkaXJlY3QiPk1pbGVzIE1vcmFsZXM8L2E+IGlzIGJpdHRlbiBieSBhIGdlbmV0aWNhbGx5IGFsdGVyZWQgc3BpZGVyIHdpdGggYSByZWQgNDIgbWFya2VkIG9uIGl0cyBhYmRvbWVuLiBNb3JhbGVzIGxhdGVyIGFzc3VtZXMgdGhlIHJvbGUgb2YgPGEgaHJlZj0iL3dpa2kvU3BpZGVyLU1hbiIgdGl0bGU9IlNwaWRlci1NYW4iPlNwaWRlci1NYW48L2E+IGFzIGEgcmVzdWx0IG9mIHRoZSBiaXRlIGFuZCBmb2xsb3dpbmcgdGhlIGRlYXRoIG9mIFBldGVyIFBhcmtlciBpbiB0aGUgPGEgaHJlZj0iL3dpa2kvVWx0aW1hdGVfTWFydmVsIiB0aXRsZT0iVWx0aW1hdGUgTWFydmVsIj5VbHRpbWF0ZSBNYXJ2ZWw8L2E+IHVuaXZlcnNlIGZyb20gPGEgaHJlZj0iL3dpa2kvTWFydmVsX0NvbWljcyIgdGl0bGU9Ik1hcnZlbCBDb21pY3MiPk1hcnZlbCBDb21pY3M8L2E+LiBNb3JhbGVzIGFsc28gd2lucyBhIGNvdmV0ZWQgc3BvdCBpbiBhIHByZXN0aWdpb3VzIGNoYXJ0ZXIgc2Nob29sIGFmdGVyIGhpcyBudW1iZXIgKDQyKSBpcyBjaG9zZW4gZHVyaW5nIGEgbG90dGVyeS48L2xpPgorPGxpPkluIHRoZSBTaGFrZXNwZWFyZWFuIHBsYXkgPGEgaHJlZj0iL3dpa2kvUm9tZW9fYW5kX0p1bGlldCIgdGl0bGU9IlJvbWVvIGFuZCBKdWxpZXQiPlJvbWVvIGFuZCBKdWxpZXQ8L2E+LCBKdWxpZXQgdGFrZXMgYSBwb3Rpb24gdGhhdCBtYWtlcyBoZXIgYXBwZWFyIGRlYWQgZm9yIDQyIGhvdXJzLjwvbGk+Cis8bGk+PGk+NDI8L2k+IGlzIGEgZnJlZSB0YWJsb2lkIGRldm90ZWQgdG8gdGVjaG5vbG9neSBuZXdzIGluIDxhIGhyZWY9Ii93aWtpL0h1bnRzdmlsbGUsX0FsYWJhbWEiIHRpdGxlPSJIdW50c3ZpbGxlLCBBbGFiYW1hIj5IdW50c3ZpbGxlLCBBbGFiYW1hPC9hPi4gSXQgaXMgcHVibGlzaGVkIGJ5IHRoZSA8aT48YSBocmVmPSIvd2lraS9IdW50c3ZpbGxlX1RpbWVzIiB0aXRsZT0iSHVudHN2aWxsZSBUaW1lcyIgY2xhc3M9Im13LXJlZGlyZWN0Ij5IdW50c3ZpbGxlIFRpbWVzPC9hPjwvaT4gYW5kIGlzIG5hbWVkIGZvciAiPGEgaHJlZj0iL3dpa2kvUGhyYXNlc19mcm9tX1RoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5I0Fuc3dlcl90b190aGVfVWx0aW1hdGVfUXVlc3Rpb25fb2ZfTGlmZS4yQ190aGVfVW5pdmVyc2UuMkNfYW5kX0V2ZXJ5dGhpbmdfLjI4NDIuMjkiIHRpdGxlPSJQaHJhc2VzIGZyb20gVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5Ij5UaGUgQW5zd2VyIHRvIHRoZSBVbHRpbWF0ZSBRdWVzdGlvbiBvZiBMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nPC9hPiI8L2xpPgorPC91bD4KKzxoMj48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJPdGhlcl9sYW5ndWFnZXMiPk90aGVyIGxhbmd1YWdlczwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249MTQiIHRpdGxlPSJFZGl0IHNlY3Rpb246IE90aGVyIGxhbmd1YWdlcyI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMj4KKzx0YWJsZSBjbGFzcz0id2lraXRhYmxlIGNvbGxhcHNpYmxlIGNvbGxhcHNlZCIgc3R5bGU9Im1hcmdpbjoxZW0gYXV0byAxZW0gYXV0bzsiPgorPHRib2R5Pjx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246Ym90dG9tOyI+Cis8dGggc2NvcGU9ImNvbCI+TGFuZ3VhZ2U8L3RoPgorPHRoIHNjb3BlPSJjb2wiPlRyYW5zbGF0aW9uPC90aD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvQWZyaWthYW5zX0xhbmd1YWdlIiB0aXRsZT0iQWZyaWthYW5zIExhbmd1YWdlIiBjbGFzcz0ibXctcmVkaXJlY3QiPkFmcmlrYWFuczwvYT48L3RkPgorPHRkPnR3ZWUtZW4tdmVlcnRpZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0FyYWJpY19udW1lcmFscyIgdGl0bGU9IkFyYWJpYyBudW1lcmFscyI+QXJhYmljPC9hPjwvdGQ+Cis8dGQ+2KXYq9mG2KfZhiDZiCDYo9ix2KjYudmI2YY8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9CYXNxdWVfbGFuZ3VhZ2UiIHRpdGxlPSJCYXNxdWUgbGFuZ3VhZ2UiPkJhc3F1ZTwvYT48L3RkPgorPHRkPkJlcnJvZ2VpdGEgYmk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9CdWxnYXJpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJCdWxnYXJpYW4gbGFuZ3VhZ2UiPkJ1bGdhcmlhbjwvYT48L3RkPgorPHRkPtGH0LXRgtC40YDQuNC00LXRgdC10YIg0Lgg0LTQstC1PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvQ2F0YWxhbl9sYW5ndWFnZSIgdGl0bGU9IkNhdGFsYW4gbGFuZ3VhZ2UiPkNhdGFsYW48L2E+PC90ZD4KKzx0ZD5xdWFyYW50YS1kb3M8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9DaGluZXNlX251bWVyYWxzIiB0aXRsZT0iQ2hpbmVzZSBudW1lcmFscyI+Q2hpbmVzZTwvYT48L3RkPgorPHRkPuWbm+WNgeS6jCAo6IKG5ou+6LSwKTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0NodXZhc2hfbnVtZXJhbHMiIHRpdGxlPSJDaHV2YXNoIG51bWVyYWxzIj5DaHV2YXNoPC9hPjwvdGQ+Cis8dGQ+0YXEldGAxJXRhSDQuNC60LrElSAoSUlYWFhYKTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0Nyb2F0aWFuX2xhbmd1YWdlIiB0aXRsZT0iQ3JvYXRpYW4gbGFuZ3VhZ2UiPkNyb2F0aWFuPC9hPjwvdGQ+Cis8dGQ+xI1ldHJkZXNldGR2YTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0N6ZWNoX2xhbmd1YWdlIiB0aXRsZT0iQ3plY2ggbGFuZ3VhZ2UiPkN6ZWNoPC9hPjwvdGQ+Cis8dGQ+xI10ecWZaWNldCBkdmE8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9EYW5pc2hfbGFuZ3VhZ2UiIHRpdGxlPSJEYW5pc2ggbGFuZ3VhZ2UiPkRhbmlzaDwvYT48L3RkPgorPHRkPnRvb2dmeXJyZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0R1dGNoX2xhbmd1YWdlIiB0aXRsZT0iRHV0Y2ggbGFuZ3VhZ2UiPkR1dGNoPC9hPjwvdGQ+Cis8dGQ+dHdlZcOrbnZlZXJ0aWc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Fc3BlcmFudG8iIHRpdGxlPSJFc3BlcmFudG8iPkVzcGVyYW50bzwvYT48L3RkPgorPHRkPmt2YXJkZWsgZHU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Fc3Rvbmlhbl9sYW5ndWFnZSIgdGl0bGU9IkVzdG9uaWFuIGxhbmd1YWdlIj5Fc3RvbmlhbjwvYT48L3RkPgorPHRkPm5lbGlrw7xtbWVuZCBrYWtzPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvRmlubmlzaF9sYW5ndWFnZSIgdGl0bGU9IkZpbm5pc2ggbGFuZ3VhZ2UiPkZpbm5pc2g8L2E+PC90ZD4KKzx0ZD5uZWxqw6RreW1tZW50w6RrYWtzaTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0ZpbGlwaW5vX2xhbmd1YWdlIiB0aXRsZT0iRmlsaXBpbm8gbGFuZ3VhZ2UiPkZpbGlwaW5vPC9hPjwvdGQ+Cis8dGQ+YXBhdG5hcHUndCBkYWxhd2E8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9GcmVuY2hfbGFuZ3VhZ2UiIHRpdGxlPSJGcmVuY2ggbGFuZ3VhZ2UiPkZyZW5jaDwvYT48L3RkPgorPHRkPnF1YXJhbnRlLWRldXg8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9XZXN0X0ZyaXNpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJXZXN0IEZyaXNpYW4gbGFuZ3VhZ2UiPkZyaXNpYW48L2E+PC90ZD4KKzx0ZD50d2FlbmZqaXJ0aWNoPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvR2VvcmdpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJHZW9yZ2lhbiBsYW5ndWFnZSI+R2VvcmdpYW48L2E+PC90ZD4KKzx0ZD7hg53hg6Dhg5vhg53hg6rhg5Phg5Dhg53hg6Dhg5ggW29ybW9jZGFvcmldPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvR2VybWFuX2xhbmd1YWdlIiB0aXRsZT0iR2VybWFuIGxhbmd1YWdlIj5HZXJtYW48L2E+PC90ZD4KKzx0ZD56d2VpdW5kdmllcnppZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0dyZWVrX2xhbmd1YWdlIiB0aXRsZT0iR3JlZWsgbGFuZ3VhZ2UiPkdyZWVrPC9hPjwvdGQ+Cis8dGQ+z4POsc+BzqzOvc+EzrEgzrTPjc6/PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvSGVicmV3X251bWVyYWxzIiB0aXRsZT0iSGVicmV3IG51bWVyYWxzIj5IZWJyZXc8L2E+PC90ZD4KKzx0ZD7XkNeo15HXoteZ150g15XXqdeq15nXmdedIChhcmJheWltIHUtc2h0YXlpbSk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9IaW5kaV9sYW5ndWFnZSIgdGl0bGU9IkhpbmRpIGxhbmd1YWdlIiBjbGFzcz0ibXctcmVkaXJlY3QiPkhpbmRpPC9hPjwvdGQ+Cis8dGQ+4KSs4KSv4KS+4KSy4KWA4KS4LCDgpargpag8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9IdW5nYXJpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJIdW5nYXJpYW4gbGFuZ3VhZ2UiPkh1bmdhcmlhbjwvYT48L3RkPgorPHRkPm5lZ3l2ZW5rZXR0xZE8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9JY2VsYW5kaWNfbGFuZ3VhZ2UiIHRpdGxlPSJJY2VsYW5kaWMgbGFuZ3VhZ2UiPkljZWxhbmRpYzwvYT48L3RkPgorPHRkPmZqw7ZydXTDrXUgb2cgdHZlaXI8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9JbmRvbmVzaWFuX2xhbmd1YWdlIiB0aXRsZT0iSW5kb25lc2lhbiBsYW5ndWFnZSI+SW5kb25lc2lhbjwvYT48L3RkPgorPHRkPmVtcGF0IHB1bHVoIGR1YTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0lyaXNoX0xhbmd1YWdlIiB0aXRsZT0iSXJpc2ggTGFuZ3VhZ2UiIGNsYXNzPSJtdy1yZWRpcmVjdCI+SXJpc2g8L2E+PC90ZD4KKzx0ZD5kYWljaGVhZCBjZWF0aGFyPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvSXRhbGlhbl9sYW5ndWFnZSIgdGl0bGU9Ikl0YWxpYW4gbGFuZ3VhZ2UiPkl0YWxpYW48L2E+PC90ZD4KKzx0ZD5xdWFyYW50YWR1ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0phcGFuZXNlX3dyaXRpbmdfc3lzdGVtIiB0aXRsZT0iSmFwYW5lc2Ugd3JpdGluZyBzeXN0ZW0iPkphcGFuZXNlPC9hPjwvdGQ+Cis8dGQ+5Zub5Y2B5LqMICjjgojjgpPjgZjjgoXjgYbjgaspPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvS2F6YWtoX2xhbmd1YWdlIiB0aXRsZT0iS2F6YWtoIGxhbmd1YWdlIj5LYXpha2g8L2E+PC90ZD4KKzx0ZD7SmtGL0YDRi9KbINC10LrRljwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0tvcmVhbl93cml0aW5nX3N5c3RlbSIgdGl0bGU9IktvcmVhbiB3cml0aW5nIHN5c3RlbSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5Lb3JlYW48L2E+PC90ZD4KKzx0ZD7sgqzsi63snbQgKOuniO2dlOuRmCk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9LYW5uYWRhX0xhbmd1YWdlIiB0aXRsZT0iS2FubmFkYSBMYW5ndWFnZSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5LYW5uYWRhPC9hPjwvdGQ+Cis8dGQ+TmFsYXZhdGggeWVyYWR1PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvTGF0dmlhbl9sYW5ndWFnZSIgdGl0bGU9IkxhdHZpYW4gbGFuZ3VhZ2UiPkxhdHZpYW48L2E+PC90ZD4KKzx0ZD7EjWV0cmRlc21pdCBkaXZpPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvTGl0aHVhbmlhbl9sYW5ndWFnZSIgdGl0bGU9IkxpdGh1YW5pYW4gbGFuZ3VhZ2UiPkxpZXR1dmnFszwvYT48L3RkPgorPHRkPmtldHVyaWFzZGXFoWltdCBkdTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0xvamJhbiIgdGl0bGU9IkxvamJhbiI+TG9qYmFuPC9hPjwvdGQ+Cis8dGQ+dm9yZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0x1eGVtYm91cmdpc2hfbGFuZ3VhZ2UiIHRpdGxlPSJMdXhlbWJvdXJnaXNoIGxhbmd1YWdlIj5MdXhlbWJvdXJnaXNoPC9hPjwvdGQ+Cis8dGQ+endlZWF2w6lpZXJ6ZWc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9NYWNlZG9uaWFuX2xhbmd1YWdlIiB0aXRsZT0iTWFjZWRvbmlhbiBsYW5ndWFnZSI+TWFjZWRvbmlhbjwvYT48L3RkPgorPHRkPtGH0LXRgtC40YDQuNC10YHQtdGCINC4INC00LLQsDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL01hbGF5YWxhbV9sYW5ndWFnZSIgdGl0bGU9Ik1hbGF5YWxhbSBsYW5ndWFnZSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5NYWxheWFsYW08L2E+PC90ZD4KKzx0ZD5uYWFscGF0aGkgcmFuZHU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9NYWx0ZXNlX2xhbmd1YWdlIiB0aXRsZT0iTWFsdGVzZSBsYW5ndWFnZSI+TWFsdGVzZTwvYT48L3RkPgorPHRkPnRuZWpuIHUgZXJiZ2hpbjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL01hb3JpX2xhbmd1YWdlIiB0aXRsZT0iTWFvcmkgbGFuZ3VhZ2UiIGNsYXNzPSJtdy1yZWRpcmVjdCI+TcSBb3JpPC9hPjwvdGQ+Cis8dGQ+d2jEgSB0ZWthdSBtYSBydWE8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9NYXJhdGhpX2xhbmd1YWdlIiB0aXRsZT0iTWFyYXRoaSBsYW5ndWFnZSI+TWFyYXRoaTwvYT48L3RkPgorPHRkPmJlY2hhbGlzPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvTW9uZ29saWFuX2xhbmd1YWdlIiB0aXRsZT0iTW9uZ29saWFuIGxhbmd1YWdlIj5Nb25nb2xpYW48L2E+PC90ZD4KKzx0ZD7QtNOp0YfQuNC9INGF0L7RkdGAPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvTm9yd2VnaWFuX2xhbmd1YWdlIiB0aXRsZT0iTm9yd2VnaWFuIGxhbmd1YWdlIj5Ob3J3ZWdpYW48L2E+PC90ZD4KKzx0ZD5mw7hydGl0bzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1BlcnNpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJQZXJzaWFuIGxhbmd1YWdlIj5QZXJzaWFuPC9hPjwvdGQ+Cis8dGQ+2obZh9mEINmIINiv2Yg8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Qb2xpc2hfbGFuZ3VhZ2UiIHRpdGxlPSJQb2xpc2ggbGFuZ3VhZ2UiPlBvbGlzaDwvYT48L3RkPgorPHRkPmN6dGVyZHppZcWbY2kgZHdhPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvUG9ydHVndWVzZV9sYW5ndWFnZSIgdGl0bGU9IlBvcnR1Z3Vlc2UgbGFuZ3VhZ2UiPlBvcnR1Z3Vlc2U8L2E+PC90ZD4KKzx0ZD5xdWFyZW50YSBlIGRvaXM8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Sb21hbmlhbl9sYW5ndWFnZSIgdGl0bGU9IlJvbWFuaWFuIGxhbmd1YWdlIj5Sb21hbmlhbjwvYT48L3RkPgorPHRkPnBhdHJ1emVjaSDImWkgZG9pPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvUnVzc2lhbl9sYW5ndWFnZSIgdGl0bGU9IlJ1c3NpYW4gbGFuZ3VhZ2UiPlJ1c3NpYW48L2E+PC90ZD4KKzx0ZD7RgdC+0YDQvtC6INC00LLQsDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1NlcmJpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJTZXJiaWFuIGxhbmd1YWdlIj5TZXJiaWFuPC9hPjwvdGQ+Cis8dGQ+0YfQtdGC0YDQtNC10YHQtdGCINC4INC00LLQsCAoYWx0LiDRh9C10YLRgNC00LXRgdC10YIg0LTQstCwKTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1NpbmhhbGFfbGFuZ3VhZ2UiIHRpdGxlPSJTaW5oYWxhIGxhbmd1YWdlIj5TaW5oYWxhPC9hPjwvdGQ+Cis8dGQ+4LeE4Lat4La94LeS4LeD4LeKIOC2r+C3meC2miAoSGF0aGFsaXMgRGVrYSk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9TbG92ZW5lX2xhbmd1YWdlIiB0aXRsZT0iU2xvdmVuZSBsYW5ndWFnZSI+U2xvdmVuZTwvYT48L3RkPgorPHRkPmR2YWluxaF0aXJpZGVzZXQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9TbG92YWtfbGFuZ3VhZ2UiIHRpdGxlPSJTbG92YWsgbGFuZ3VhZ2UiPlNsb3ZhazwvYT48L3RkPgorPHRkPsWhdHlyaWRzYcWlZHZhPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvU29tYWxpX2xhbmd1YWdlIiB0aXRsZT0iU29tYWxpIGxhbmd1YWdlIj5Tb21hbGk8L2E+PC90ZD4KKzx0ZD5sYWJhIGl5byBhZmFydGFuPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvU3BhbmlzaF9sYW5ndWFnZSIgdGl0bGU9IlNwYW5pc2ggbGFuZ3VhZ2UiPlNwYW5pc2g8L2E+PC90ZD4KKzx0ZD5jdWFyZW50YSB5IGRvczwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1N3ZWRpc2hfbGFuZ3VhZ2UiIHRpdGxlPSJTd2VkaXNoIGxhbmd1YWdlIj5Td2VkaXNoPC9hPjwvdGQ+Cis8dGQ+ZnlydGlvdHbDpTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1RhZ2Fsb2dfbGFuZ3VhZ2UiIHRpdGxlPSJUYWdhbG9nIGxhbmd1YWdlIj5UYWdhbG9nPC9hPjwvdGQ+Cis8dGQ+YXBhdG5hcHUndCBkYWxhd2E8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9UYW1pbF9sYW5ndWFnZSIgdGl0bGU9IlRhbWlsIGxhbmd1YWdlIj5UYW1pbDwvYT48L3RkPgorPHRkPuCuqOCuvuCuseCvjeCuquCupOCvjeCupOCuv+CusOCuo+CvjeCun+CvgSAoTmFycGF0dGkgRXJydW5kdSk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9UZWx1Z3VfbGFuZ3VhZ2UiIHRpdGxlPSJUZWx1Z3UgbGFuZ3VhZ2UiPlRlbHVndTwvYT48L3RkPgorPHRkPuCwqOCwsuCwreCxiCDgsLDgsYbgsILgsKHgsYEgKE5hbGFiYWkgUmVuZHUpPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvVGhhaV9sYW5ndWFnZSIgdGl0bGU9IlRoYWkgbGFuZ3VhZ2UiPlRoYWk8L2E+PC90ZD4KKzx0ZD7guKrguLXguYjguKrguLTguJrguKrguK3guIc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9UdXJraXNoX2xhbmd1YWdlIiB0aXRsZT0iVHVya2lzaCBsYW5ndWFnZSI+VHVya2lzaDwvYT48L3RkPgorPHRkPmvEsXJrIGlraTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1VrcmFpbmlhbl9sYW5ndWFnZSIgdGl0bGU9IlVrcmFpbmlhbiBsYW5ndWFnZSI+VWtyYWluaWFuPC9hPjwvdGQ+Cis8dGQ+0KHQvtGA0L7QuiDQtNCy0LA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9VcmR1IiB0aXRsZT0iVXJkdSI+VXJkdTwvYT48L3RkPgorPHRkPtio24zYp9mE24zYszwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1ZpZXRuYW1lc2VfbGFuZ3VhZ2UiIHRpdGxlPSJWaWV0bmFtZXNlIGxhbmd1YWdlIj5WaWV0bmFtZXNlPC9hPjwvdGQ+Cis8dGQ+YuG7kW4gbcawxqFpIGhhaTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1dlbHNoX2xhbmd1YWdlIiB0aXRsZT0iV2Vsc2ggbGFuZ3VhZ2UiPldlbHNoPC9hPjwvdGQ+Cis8dGQ+cGVkd2FyLWRlZy1kYXUsIGRhdS1hci1kZGV1Z2FpbjwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlJlZmVyZW5jZXMiPlJlZmVyZW5jZXM8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTE1IiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBSZWZlcmVuY2VzIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPGRpdiBjbGFzcz0icmVmbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDsiPgorPG9sIGNsYXNzPSJyZWZlcmVuY2VzIj4KKzxsaSBpZD0iY2l0ZV9ub3RlLTEiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMSI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPkouIEIuIENvbnJleSAmYW1wOyBBLiBHaG9zaCwgIkEgY29uamVjdHVyZSBmb3IgdGhlIHNpeHRoIHBvd2VyIG1vbWVudCBvZiB0aGUgUmllbWFubiB6ZXRhLWZ1bmN0aW9uIiA8aT5JbnRlcm5hdGlvbmFsIE1hdGhlbWF0aWNzIFJlc2VhcmNoIE5vdGljZXM8L2k+ICgxOTk4KTwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMiI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0yIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+Si4gQi4gQ29ucmV5ICZhbXA7IFMuIE0uIEdvbmVrLCAiSGlnaCBtb21lbnRzIG9mIHRoZSBSaWVtYW5uIHpldGEtZnVuY3Rpb24iIDxpPkR1a2UgTWF0aCBKLjwvaT4gPGI+MTA3PC9iPiAzICgyMDAxKTogNTc3Jm5ic3A74oCTIDYwNDwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMyI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0zIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cubWF0aHBhZ2VzLmNvbS9ob21lL2ttYXRoMjU1Lmh0bSI+RGlmZmVyZW50bHkgUGVyZmVjdCAtIG1hdGhwYWdlcy5jb208L2E+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS00Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTQiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL29laXMub3JnL0EwMTkyODMiPlNlcXVlbmNlIEEwMTkyODMgaW48L2E+IDxhIGhyZWY9Ii93aWtpL09FSVMiIHRpdGxlPSJPRUlTIiBjbGFzcz0ibXctcmVkaXJlY3QiPk9FSVM8L2E+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS01Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTUiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3d3dy51bmkudWl1Yy5lZHUvZ2FyZ295bGUvMjAwNy8wNS96aGFpX3BvaXNlZF90b19yZXByZXNlbnRfdW5pdGUuaHRtIj5BbGV4IFpoYWkgdGllcyBmb3Igc2Vjb25kLWhpZ2hlc3Qgc2NvcmUgaW4gMjAwNyBVU0EgTWF0aGVtYXRpY2FsIE9seW1waWFkPC9hPiAtIEJ5IEFuZHJldyBMb3ZkYWhsIEdhcmdveWxlIHN0YWZmIHJlcG9ydGVyIFBvc3RlZCBNb25kYXksIE1heSA3LCAyMDA3LCBUaGUgT0csIG5ld3MgJmFtcDsgc3R1ZGVudCBhd2FyZHMgLSBPbmxpbmUgR2FyZ295bGU8L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTYiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtNiI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPkNCQyBOZXdzIHN0YWZmLCAiPGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cuY2JjLmNhL2hlYWx0aC9zdG9yeS8yMDA0LzA3LzIwL21hdGhfd2luMDQwNzIwLmh0bWwiPkNhbmFkaWFuIG1hdGggY2hhbXAncyBza2lsbHMgYWRkIHVwIHRvIGEgcGVyZmVjdCBzY29yZTwvYT4iIDxhIGhyZWY9Ii93aWtpL0NCQ19OZXdzIiB0aXRsZT0iQ0JDIE5ld3MiPkNCQyBOZXdzPC9hPiBKdWx5IDIwLCAyMDA0LiAiQSAxNi15ZWFyLW9sZCBDYW5hZGlhbiB3YXMgb25lIG9mIGZvdXIgc3R1ZGVudHMgd2hvIGFjaGlldmVkIGEgcGVyZmVjdCBzY29yZSBhdCBhbiBpbnRlcm5hdGlvbmFsIG1hdGhlbWF0aWNzIGNvbXBldGl0aW9uLiBKYWNvYiBUc2ltZXJtYW4gb2YgVG9yb250byBzY29yZWQgNDIgb3V0IG9mIDQyLCBtYWtpbmcgaGltIG9uZSBvZiA0NSBpbmRpdmlkdWFsIGdvbGQgbWVkYWxsaXN0cyBhdCB0aGUgNDV0aCBJbnRlcm5hdGlvbmFsIE1hdGhlbWF0aWNhbCBPbHltcGlhZCBpbiBBdGhlbnMuIjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtNyI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi03Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIGpvdXJuYWwiPkNvb3BlciwgUGF1bCBXLiAoMTk2NikuICJUaHJvdWdoIHRoZSBFYXJ0aCBpbiBGb3J0eSBNaW51dGVzIi4gPGk+QW1lcmljYW4gSm91cm5hbCBvZiBQaHlzaWNzPC9pPiA8Yj4zNDwvYj4gKDEpOiA2OOKAkzY5LiA8YSBocmVmPSIvd2lraS9EaWdpdGFsX29iamVjdF9pZGVudGlmaWVyIiB0aXRsZT0iRGlnaXRhbCBvYmplY3QgaWRlbnRpZmllciI+ZG9pPC9hPjo8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL2R4LmRvaS5vcmcvMTAuMTExOSUyRjEuMTk3Mjc3MyI+MTAuMTExOS8xLjE5NzI3NzM8L2E+Ljwvc3Bhbj48c3BhbiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZyX2lkPWluZm8lM0FzaWQlMkZlbi53aWtpcGVkaWEub3JnJTNBNDIrJTI4bnVtYmVyJTI5JmFtcDtyZnQuYXRpdGxlPVRocm91Z2grdGhlK0VhcnRoK2luK0ZvcnR5K01pbnV0ZXMmYW1wO3JmdC5hdT1Db29wZXIlMkMrUGF1bCtXLiZhbXA7cmZ0LmF1Zmlyc3Q9UGF1bCtXLiZhbXA7cmZ0LmF1bGFzdD1Db29wZXImYW1wO3JmdC5kYXRlPTE5NjYmYW1wO3JmdC5nZW5yZT1hcnRpY2xlJmFtcDtyZnRfaWQ9aW5mbyUzQWRvaSUyRjEwLjExMTklMkYxLjE5NzI3NzMmYW1wO3JmdC5pc3N1ZT0xJmFtcDtyZnQuanRpdGxlPUFtZXJpY2FuK0pvdXJuYWwrb2YrUGh5c2ljcyZhbXA7cmZ0LnBhZ2VzPTY4JUUyJTgwJTkzNjkmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fqb3VybmFsJmFtcDtyZnQudm9sdW1lPTM0IiBjbGFzcz0iWjM5ODgiPjxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4mbmJzcDs8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtOCI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi04Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIG5ld3MiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd3d3LnRpbWUuY29tL3RpbWUvbWFnYXppbmUvYXJ0aWNsZS8wLDkxNzEsODQyNDY5LDAwLmh0bWwiPiJUbyBFdmVyeXdoZXJlIGluIDQyIE1pbnV0ZXMiPC9hPi4gPGk+VGltZTwvaT4uIEZlYnJ1YXJ5IDExLCAxOTY2LiA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwODA1MTIxMzExNTYvaHR0cDovL3d3dy50aW1lLmNvbS90aW1lL21hZ2F6aW5lL2FydGljbGUvMCw5MTcxLDg0MjQ2OSwwMC5odG1sIj5BcmNoaXZlZDwvYT4gZnJvbSB0aGUgb3JpZ2luYWwgb24gMTIgTWF5IDIwMDg8c3BhbiBjbGFzcz0icmVmZXJlbmNlLWFjY2Vzc2RhdGUiPi4gUmV0cmlldmVkIDIwMDgtMDUtMTg8L3NwYW4+Ljwvc3Bhbj48c3BhbiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZyX2lkPWluZm8lM0FzaWQlMkZlbi53aWtpcGVkaWEub3JnJTNBNDIrJTI4bnVtYmVyJTI5JmFtcDtyZnQuYXRpdGxlPVRvK0V2ZXJ5d2hlcmUraW4rNDIrTWludXRlcyZhbXA7cmZ0LmRhdGU9RmVicnVhcnkrMTElMkMrMTk2NiZhbXA7cmZ0LmdlbnJlPWFydGljbGUmYW1wO3JmdF9pZD1odHRwJTNBJTJGJTJGd3d3LnRpbWUuY29tJTJGdGltZSUyRm1hZ2F6aW5lJTJGYXJ0aWNsZSUyRjAlMkM5MTcxJTJDODQyNDY5JTJDMDAuaHRtbCZhbXA7cmZ0Lmp0aXRsZT1UaW1lJmFtcDtyZnRfdmFsX2ZtdD1pbmZvJTNBb2ZpJTJGZm10JTNBa2V2JTNBbXR4JTNBam91cm5hbCIgY2xhc3M9IlozOTg4Ij48c3BhbiBzdHlsZT0iZGlzcGxheTpub25lOyI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTkiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtOSI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxzcGFuIGNsYXNzPSJjaXRhdGlvbiB3ZWIiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA4MDYwMjE0Mjc1NS9odHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RkFGVVNiSXM1S0EiPiJKdW1waW5nIGludG8gYSA3LDk2NSZuYnNwO21pbGUgZGVlcCBob2xlIjwvYT4uIEFyY2hpdmVkIGZyb20gPGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GQUZVU2JJczVLQSI+dGhlIG9yaWdpbmFsPC9hPiBvbiBKdW5lIDIsIDIwMDg8c3BhbiBjbGFzcz0icmVmZXJlbmNlLWFjY2Vzc2RhdGUiPi4gUmV0cmlldmVkIDIwMDgtMDUtMTg8L3NwYW4+Ljwvc3Bhbj48c3BhbiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZyX2lkPWluZm8lM0FzaWQlMkZlbi53aWtpcGVkaWEub3JnJTNBNDIrJTI4bnVtYmVyJTI5JmFtcDtyZnQuYnRpdGxlPUp1bXBpbmcraW50bythKzclMkM5NjUlMjZuYnNwJTNCbWlsZStkZWVwK2hvbGUmYW1wO3JmdC5nZW5yZT1ib29rJmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRnd3dy55b3V0dWJlLmNvbSUyRndhdGNoJTNGdiUzREZBRlVTYklzNUtBJmFtcDtyZnRfdmFsX2ZtdD1pbmZvJTNBb2ZpJTJGZm10JTNBa2V2JTNBbXR4JTNBYm9vayIgY2xhc3M9IlozOTg4Ij48c3BhbiBzdHlsZT0iZGlzcGxheTpub25lOyI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTEwIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTEwIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIGJvb2siPjxhIGhyZWY9Ii93aWtpL0xld2lzX0NhcnJvbGwiIHRpdGxlPSJMZXdpcyBDYXJyb2xsIj5DYXJyb2xsLCBMZXdpczwvYT4gKDI5IERlY2VtYmVyIDE4OTMpLiAiQ2hhcHRlciA3Ii4gPGk+PGEgaHJlZj0iL3dpa2kvU3lsdmllX2FuZF9CcnVub19Db25jbHVkZWQiIHRpdGxlPSJTeWx2aWUgYW5kIEJydW5vIENvbmNsdWRlZCIgY2xhc3M9Im13LXJlZGlyZWN0Ij5TeWx2aWUgYW5kIEJydW5vIENvbmNsdWRlZDwvYT48L2k+IDxiPjI8L2I+LiBpbGx1c3RyYXRlZCBieSA8YSBocmVmPSIvd2lraS9IYXJyeV9GdXJuaXNzIiB0aXRsZT0iSGFycnkgRnVybmlzcyI+SGFycnkgRnVybmlzczwvYT4uIFVuaXRlZCBLaW5nZG9tOiBNYWNtaWxsYW4gYW5kIENvLiAiRWFjaCByYWlsd2F5IGlzIGluIGEgbG9uZyB0dW5uZWwsIHBlcmZlY3RseSBzdHJhaWdodDogc28gb2YgY291cnNlIHRoZSA8aT5taWRkbGU8L2k+IG9mIGl0IGlzIG5lYXJlciB0aGUgY2VudHJlIG9mIHRoZSBnbG9iZSB0aGFuIHRoZSB0d28gZW5kczogc28gZXZlcnkgdHJhaW4gcnVucyBoYWxmLXdheSA8aT5kb3duPC9pPi1oaWxsLCBhbmQgdGhhdCBnaXZlcyBpdCBmb3JjZSBlbm91Z2ggdG8gcnVuIHRoZSA8aT5vdGhlcjwvaT4gaGFsZiA8aT51cDwvaT4taGlsbC4iPC9zcGFuPjxzcGFuIHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnJfaWQ9aW5mbyUzQXNpZCUyRmVuLndpa2lwZWRpYS5vcmclM0E0MislMjhudW1iZXIlMjkmYW1wO3JmdC5hdGl0bGU9U3lsdmllK2FuZCtCcnVubytDb25jbHVkZWQmYW1wO3JmdC5hdT1DYXJyb2xsJTJDK0xld2lzJmFtcDtyZnQuYXVmaXJzdD1MZXdpcyZhbXA7cmZ0LmF1bGFzdD1DYXJyb2xsJmFtcDtyZnQuYnRpdGxlPUNoYXB0ZXIrNyZhbXA7cmZ0LmRhdGU9MjkrRGVjZW1iZXIrMTg5MyZhbXA7cmZ0LmdlbnJlPWJvb2tpdGVtJmFtcDtyZnQucGxhY2U9VW5pdGVkK0tpbmdkb20mYW1wO3JmdC5wdWI9TWFjbWlsbGFuK2FuZCtDby4mYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fib29rJmFtcDtyZnQudm9sdW1lPTIiIGNsYXNzPSJaMzk4OCI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0xMSI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xMSI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxzcGFuIGNsYXNzPSJjaXRhdGlvbiBqb3VybmFsIj5MZWUgTWlkZGxldG9uOyBKYXlhbnRoaSBTaXZhc3dhbXkgKDIwMDIpLiA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3NwaWVkbC5haXAub3JnL2dldGFicy9zZXJ2bGV0L0dldGFic1NlcnZsZXQ/cHJvZz1ub3JtYWwmYW1wO2lkPUpFSU1FNTAwMDAxMTAwMDAwMTAwMDEwNDAwMDAwMSZhbXA7aWR0eXBlPWN2aXBzJmFtcDtnaWZzPXllcyZhbXA7cmVmPW5vIj4iRnJhbWV3b3JrIGZvciBwcmFjdGljYWwgaGV4YWdvbmFsLWltYWdlIHByb2Nlc3NpbmciPC9hPi4gPGk+Sm91cm5hbCBvZiBFbGVjdHJvbmljIEltYWdpbmc8L2k+IDxiPjExPC9iPiAoMTA0KS4gPGEgaHJlZj0iL3dpa2kvRGlnaXRhbF9vYmplY3RfaWRlbnRpZmllciIgdGl0bGU9IkRpZ2l0YWwgb2JqZWN0IGlkZW50aWZpZXIiPmRvaTwvYT46PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly9keC5kb2kub3JnLzEwLjExMTclMkYxLjE0MjYwNzgiPjEwLjExMTcvMS4xNDI2MDc4PC9hPjxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtYWNjZXNzZGF0ZSI+LiBSZXRyaWV2ZWQgSmFudWFyeSAxNywgMjAxMCAoYWJzdHJhY3Qgb25seSk8L3NwYW4+Ljwvc3Bhbj48c3BhbiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZyX2lkPWluZm8lM0FzaWQlMkZlbi53aWtpcGVkaWEub3JnJTNBNDIrJTI4bnVtYmVyJTI5JmFtcDtyZnQuYXRpdGxlPUZyYW1ld29yaytmb3IrcHJhY3RpY2FsK2hleGFnb25hbC1pbWFnZStwcm9jZXNzaW5nJmFtcDtyZnQuYXU9SmF5YW50aGkrU2l2YXN3YW15JmFtcDtyZnQuYXVsYXN0PUxlZStNaWRkbGV0b24mYW1wO3JmdC5hdT1MZWUrTWlkZGxldG9uJmFtcDtyZnQuZGF0ZT0yMDAyJmFtcDtyZnQuZ2VucmU9YXJ0aWNsZSZhbXA7cmZ0X2lkPWh0dHAlM0ElMkYlMkZzcGllZGwuYWlwLm9yZyUyRmdldGFicyUyRnNlcnZsZXQlMkZHZXRhYnNTZXJ2bGV0JTNGcHJvZyUzRG5vcm1hbCUyNmlkJTNESkVJTUU1MDAwMDExMDAwMDAxMDAwMTA0MDAwMDAxJTI2aWR0eXBlJTNEY3ZpcHMlMjZnaWZzJTNEeWVzJTI2cmVmJTNEbm8mYW1wO3JmdF9pZD1pbmZvJTNBZG9pJTJGMTAuMTExNyUyRjEuMTQyNjA3OCZhbXA7cmZ0Lmlzc3VlPTEwNCZhbXA7cmZ0Lmp0aXRsZT1Kb3VybmFsK29mK0VsZWN0cm9uaWMrSW1hZ2luZyZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUzQW10eCUzQWpvdXJuYWwmYW1wO3JmdC52b2x1bWU9MTEiIGNsYXNzPSJaMzk4OCI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiZuYnNwOzwvc3Bhbj48L3NwYW4+IDxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Zm9udC1zaXplOjEwMCUiIGNsYXNzPSJlcnJvciBjaXRhdGlvbi1jb21tZW50Ij5DaGVjayBkYXRlIHZhbHVlcyBpbjogPGNvZGU+fGFjY2Vzc2RhdGU9PC9jb2RlPiAoPGEgaHJlZj0iL3dpa2kvSGVscDpDUzFfZXJyb3JzI2JhZF9kYXRlIiB0aXRsZT0iSGVscDpDUzEgZXJyb3JzIj5oZWxwPC9hPik8L3NwYW4+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0xMiI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xMiI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxzcGFuIGNsYXNzPSJjaXRhdGlvbiB3ZWIiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vdGVjaG5ldC5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaGg5OTQ1NzMuYXNweCI+Ik1heGltdW0gcGFzc3dvcmQgYWdlIjwvYT4uIE1pY3Jvc29mdCBUZWNoTmV0PHNwYW4gY2xhc3M9InJlZmVyZW5jZS1hY2Nlc3NkYXRlIj4uIFJldHJpZXZlZCAxNSBKYW51YXJ5IDIwMTQ8L3NwYW4+Ljwvc3Bhbj48c3BhbiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZyX2lkPWluZm8lM0FzaWQlMkZlbi53aWtpcGVkaWEub3JnJTNBNDIrJTI4bnVtYmVyJTI5JmFtcDtyZnQuYnRpdGxlPU1heGltdW0rcGFzc3dvcmQrYWdlJmFtcDtyZnQuZ2VucmU9Ym9vayZhbXA7cmZ0X2lkPWh0dHAlM0ElMkYlMkZ0ZWNobmV0Lm1pY3Jvc29mdC5jb20lMkZlbi11cyUyRmxpYnJhcnklMkZoaDk5NDU3My5hc3B4JmFtcDtyZnQucHViPU1pY3Jvc29mdCtUZWNoTmV0JmFtcDtyZnRfdmFsX2ZtdD1pbmZvJTNBb2ZpJTJGZm10JTNBa2V2JTNBbXR4JTNBYm9vayIgY2xhc3M9IlozOTg4Ij48c3BhbiBzdHlsZT0iZGlzcGxheTpub25lOyI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTEzIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTEzIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+TmlpeWEsIEJyaWFuLiBKYXBhbmVzZSBBbWVyaWNhbiBoaXN0b3J5OiBhbiBBLXRvLVogcmVmZXJlbmNlIGZyb20gMTg2OCB0byB0aGUgcHJlc2VudC4gRmFjdHMgb24gRmlsZSwgSW5jLiwgMTk5MywgcC4gMzUyPC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0xNCI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xNCI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxzcGFuIGNsYXNzPSJjaXRhdGlvbiB3ZWIiPkpvZWwgUHJpbWFjazsgTmFuY3kgRS4gQWJyYW1zLiA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3BoeXNpY3MudWNzYy5lZHUvY29zbW8vcHJpbWFja19hYnJhbXMvSW5BQmVnaW5uaW5nVGlra3VuMTk5NS5wZGYiPiJJbiBBIEJlZ2lubmluZy4uLlF1YW50dW0gQ29zbW9sb2d5IGFuZCBLYWJiYWxhaCI8L2E+IChQREYpPHNwYW4gY2xhc3M9InJlZmVyZW5jZS1hY2Nlc3NkYXRlIj4uIFJldHJpZXZlZCAyMDA4LTAzLTE0PC9zcGFuPi48L3NwYW4+PHNwYW4gdGl0bGU9ImN0eF92ZXI9WjM5Ljg4LTIwMDQmYW1wO3Jmcl9pZD1pbmZvJTNBc2lkJTJGZW4ud2lraXBlZGlhLm9yZyUzQTQyKyUyOG51bWJlciUyOSZhbXA7cmZ0LmF1PUpvZWwrUHJpbWFjayZhbXA7cmZ0LmF1bGFzdD1Kb2VsK1ByaW1hY2smYW1wO3JmdC5hdT1OYW5jeStFLitBYnJhbXMmYW1wO3JmdC5idGl0bGU9SW4rQStCZWdpbm5pbmcuLi5RdWFudHVtK0Nvc21vbG9neSthbmQrS2FiYmFsYWgmYW1wO3JmdC5nZW5yZT1ib29rJmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRnBoeXNpY3MudWNzYy5lZHUlMkZjb3NtbyUyRnByaW1hY2tfYWJyYW1zJTJGSW5BQmVnaW5uaW5nVGlra3VuMTk5NS5wZGYmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fib29rIiBjbGFzcz0iWjM5ODgiPjxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4mbmJzcDs8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMTUiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMTUiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48c3BhbiBjbGFzcz0iY2l0YXRpb24gbmV3cyI+R2lsbCwgUGV0ZXIgKEZlYnJ1YXJ5IDMsIDIwMTEpLiA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9ib29rcy8yMDExL2ZlYi8wMy9kb3VnbGFzLWFkYW1zLTQyLWhpdGNoaGlrZXI/SU5UQ01QPVNSQ0giPiI0MjogRG91Z2xhcyBBZGFtcycgQW1hemluZ2x5IEFjY3VyYXRlIEFuc3dlciB0byBMaWZlIHRoZSBVbml2ZXJzZSBhbmQgRXZlcnl0aGluZyI8L2E+LiBMb25kb246IEd1YXJkaWFuPHNwYW4gY2xhc3M9InJlZmVyZW5jZS1hY2Nlc3NkYXRlIj4uIFJldHJpZXZlZCAwMy8wNC8yMDExPC9zcGFuPi48L3NwYW4+PHNwYW4gdGl0bGU9ImN0eF92ZXI9WjM5Ljg4LTIwMDQmYW1wO3Jmcl9pZD1pbmZvJTNBc2lkJTJGZW4ud2lraXBlZGlhLm9yZyUzQTQyKyUyOG51bWJlciUyOSZhbXA7cmZ0LmF1Zmlyc3Q9UGV0ZXImYW1wO3JmdC5hdT1HaWxsJTJDK1BldGVyJmFtcDtyZnQuYXVsYXN0PUdpbGwmYW1wO3JmdC5idGl0bGU9NDIlM0ErRG91Z2xhcytBZGFtcyUyNytBbWF6aW5nbHkrQWNjdXJhdGUrQW5zd2VyK3RvK0xpZmUrdGhlK1VuaXZlcnNlK2FuZCtFdmVyeXRoaW5nJmFtcDtyZnQuZGF0ZT1GZWJydWFyeSszJTJDKzIwMTEmYW1wO3JmdC5nZW5yZT1ib29rJmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRnd3dy5ndWFyZGlhbi5jby51ayUyRmJvb2tzJTJGMjAxMSUyRmZlYiUyRjAzJTJGZG91Z2xhcy1hZGFtcy00Mi1oaXRjaGhpa2VyJTNGSU5UQ01QJTNEU1JDSCZhbXA7cmZ0LnBsYWNlPUxvbmRvbiZhbXA7cmZ0LnB1Yj1HdWFyZGlhbiZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUzQW10eCUzQWJvb2siIGNsYXNzPSJaMzk4OCI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiZuYnNwOzwvc3Bhbj48L3NwYW4+IDxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Zm9udC1zaXplOjEwMCUiIGNsYXNzPSJlcnJvciBjaXRhdGlvbi1jb21tZW50Ij5DaGVjayBkYXRlIHZhbHVlcyBpbjogPGNvZGU+fGFjY2Vzc2RhdGU9PC9jb2RlPiAoPGEgaHJlZj0iL3dpa2kvSGVscDpDUzFfZXJyb3JzI2JhZF9kYXRlIiB0aXRsZT0iSGVscDpDUzEgZXJyb3JzIj5oZWxwPC9hPik8L3NwYW4+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0xNiI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xNiI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vZmluZGFydGljbGVzLmNvbS9wL2FydGljbGVzL21pX2hiMzQ2L2lzXzFfMzgvYWlfbjI5MTYyNTY1LyI+TGV3aXMgQ2Fycm9sbCBhbmQgRG91Z2xhcyBBZGFtczwvYT48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTE3Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTE3Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGk+VGhlIE15c3Rlcnkgb2YgTGV3aXMgQ2Fycm9sbCw8L2k+IEplbm55IFdvb2xmPC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0xOCI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xOCI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd3d3LnNucmsuZGUvc25hcmtodW50Lz9uZXdwaWNzPW5vI3ByZWZhY2UiPlRoZSBIdW50aW5nIG9mIHRoZSBTbmFyaywgYnkgTGV3aXMgQ2Fycm9sbDwvYT48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTE5Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTE5Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cuc25yay5kZS9zbmFya2h1bnQvP25ld3BpY3M9bm8jMDI1Ij5UaGUgSHVudGluZyBvZiB0aGUgU25hcmssIGJ5IExld2lzIENhcnJvbGw8L2E+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0yMCI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0yMCI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd3d3LnNsYXRlLmNvbS9pZC8yMjQ1NjQ3LyI+V2hhdCBMZXdpcyBDYXJyb2xsIFRhdWdodCBVczogQWxpY2UncyBjcmVhdG9yIGtuZXcgYWxsIGFib3V0IHJvbGUtcGxheWluZy48L2E+IGJ5IFNldGggTGVyZXIsIE1hcmNoIDQsIDIwMTA8L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTIxIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTIxIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGEgaHJlZj0iaHR0cDovL3d3dy5pbWRiLmNvbS90aXRsZS90dDAxNjQzMTIvIiBjbGFzcz0iZXh0aXciIHRpdGxlPSJpbWRidGl0bGU6MDE2NDMxMiI+PGk+NDI6IEZvcnR5IFR3byBVcDwvaT48L2E+IGF0IElNREI8L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTIyIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTIyIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGk+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIGZyZWUiIGhyZWY9Imh0dHA6Ly93d3cuc2xhdGUuY29tL2lkLzIyODQ3MjEvIj5odHRwOi8vd3d3LnNsYXRlLmNvbS9pZC8yMjg0NzIxLzwvYT48L2k+IEtlbiBKZW5uaW5nczwvc3Bhbj48L2xpPgorPC9vbD4KKzwvZGl2PgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IkV4dGVybmFsX2xpbmtzIj5FeHRlcm5hbCBsaW5rczwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249MTYiIHRpdGxlPSJFZGl0IHNlY3Rpb246IEV4dGVybmFsIGxpbmtzIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPHRhYmxlIGNsYXNzPSJtZXRhZGF0YSBtYm94LXNtYWxsIHBsYWlubGlua3MiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNhYWE7IGJhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0ibWJveC1pbWFnZSI+PGltZyBhbHQ9IiIgc3JjPSIvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iL2YvZjgvV2lrdGlvbmFyeS1sb2dvLWVuLnN2Zy8zN3B4LVdpa3Rpb25hcnktbG9nby1lbi5zdmcucG5nIiB3aWR0aD0iMzciIGhlaWdodD0iNDAiIHNyY3NldD0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9mL2Y4L1dpa3Rpb25hcnktbG9nby1lbi5zdmcvNTVweC1XaWt0aW9uYXJ5LWxvZ28tZW4uc3ZnLnBuZyAxLjV4LCAvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iL2YvZjgvV2lrdGlvbmFyeS1sb2dvLWVuLnN2Zy83M3B4LVdpa3Rpb25hcnktbG9nby1lbi5zdmcucG5nIDJ4Ij48L3RkPgorPHRkIGNsYXNzPSJtYm94LXRleHQgcGxhaW5saXN0IiBzdHlsZT0iIj5Mb29rIHVwIDxpPjxiPjxhIGhyZWY9Ii8vZW4ud2lrdGlvbmFyeS5vcmcvd2lraS9mb3J0eS10d28iIGNsYXNzPSJleHRpdyIgdGl0bGU9Indpa3Rpb25hcnk6Zm9ydHktdHdvIj5mb3J0eS10d288L2E+PC9iPjwvaT4gaW4gV2lrdGlvbmFyeSwgdGhlIGZyZWUgZGljdGlvbmFyeS48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzx1bD4KKzxsaT48c3BhbiBjbGFzcz0iY2l0YXRpb24gd2ViIj5HcmltZSwgSmFtZXM7IEdlcmFyZG8gQWRlc3NvOyBQaGlsIE1vcmlhcnR5LiA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3d3dy5udW1iZXJwaGlsZS5jb20vdmlkZW9zLzQyLmh0bWwiPiI0MiBhbmQgRG91Z2xhcyBBZGFtcyI8L2E+LiA8aT5OdW1iZXJwaGlsZTwvaT4uIDxhIGhyZWY9Ii93aWtpL0JyYWR5X0hhcmFuIiB0aXRsZT0iQnJhZHkgSGFyYW4iPkJyYWR5IEhhcmFuPC9hPi48L3NwYW4+PHNwYW4gdGl0bGU9ImN0eF92ZXI9WjM5Ljg4LTIwMDQmYW1wO3Jmcl9pZD1pbmZvJTNBc2lkJTJGZW4ud2lraXBlZGlhLm9yZyUzQTQyKyUyOG51bWJlciUyOSZhbXA7cmZ0LmF0aXRsZT00MithbmQrRG91Z2xhcytBZGFtcyZhbXA7cmZ0LmF1Zmlyc3Q9SmFtZXMmYW1wO3JmdC5hdT1HZXJhcmRvK0FkZXNzbyZhbXA7cmZ0LmF1PUdyaW1lJTJDK0phbWVzJmFtcDtyZnQuYXVsYXN0PUdyaW1lJmFtcDtyZnQuYXU9UGhpbCtNb3JpYXJ0eSZhbXA7cmZ0LmdlbnJlPWFydGljbGUmYW1wO3JmdF9pZD1odHRwJTNBJTJGJTJGd3d3Lm51bWJlcnBoaWxlLmNvbSUyRnZpZGVvcyUyRjQyLmh0bWwmYW1wO3JmdC5qdGl0bGU9TnVtYmVycGhpbGUmYW1wO3JmdC5wdWI9QnJhZHkrSGFyYW4mYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fqb3VybmFsIiBjbGFzcz0iWjM5ODgiPjxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4mbmJzcDs8L3NwYW4+PC9zcGFuPjwvbGk+Cis8L3VsPgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibmF2Ym94IiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDtjbGVhcjpub25lOyB3aWR0aDo3MCU7bWluLXdpZHRoOjQwZW07Ij4KKzx0Ym9keT48dHI+Cis8dGQgc3R5bGU9InBhZGRpbmc6MnB4OyI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSB1bmNvbGxhcHNlIG5hdmJveC1pbm5lciIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0OyI+Cis8dGJvZHk+PHRyPgorPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJuYXZib3gtdGl0bGUiIGNvbHNwYW49IjIiPgorPGRpdiBjbGFzcz0icGxhaW5saW5rcyBobGlzdCBuYXZiYXIgbWluaSI+Cis8dWw+Cis8bGkgY2xhc3M9Im52LXZpZXciPjxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOkludGVnZXJzIiB0aXRsZT0iVGVtcGxhdGU6SW50ZWdlcnMiPjxzcGFuIHRpdGxlPSJWaWV3IHRoaXMgdGVtcGxhdGUiIHN0eWxlPSI7O2JhY2tncm91bmQ6bm9uZSB0cmFuc3BhcmVudDtib3JkZXI6bm9uZTs7Ij52PC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJudi10YWxrIj48YSBocmVmPSIvd2lraS9UZW1wbGF0ZV90YWxrOkludGVnZXJzIiB0aXRsZT0iVGVtcGxhdGUgdGFsazpJbnRlZ2VycyI+PHNwYW4gdGl0bGU9IkRpc2N1c3MgdGhpcyB0ZW1wbGF0ZSIgc3R5bGU9Ijs7YmFja2dyb3VuZDpub25lIHRyYW5zcGFyZW50O2JvcmRlcjpub25lOzsiPnQ8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9Im52LWVkaXQiPjxhIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9VGVtcGxhdGU6SW50ZWdlcnMmYW1wO2FjdGlvbj1lZGl0Ij48c3BhbiB0aXRsZT0iRWRpdCB0aGlzIHRlbXBsYXRlIiBzdHlsZT0iOztiYWNrZ3JvdW5kOm5vbmUgdHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7OyI+ZTwvc3Bhbj48L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJlZj0iL3dpa2kvSW50ZWdlciIgdGl0bGU9IkludGVnZXIiPkludGVnZXJzPC9hPjwvZGl2PgorPC90aD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCBobGlzdCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPjwvZGl2PgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93cmFwbGlua3MgY29sbGFwc2libGUgdW5jb2xsYXBzZWQgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDsiPgorPHRib2R5Pjx0cj4KKzx0aCBzY29wZT0iY29sIiBjbGFzcz0ibmF2Ym94LXRpdGxlIiBjb2xzcGFuPSIyIj48c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo2ZW07Ij4mbmJzcDs8L3NwYW4+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEwJTsiPjxhIGhyZWY9Ii93aWtpLzBfKG51bWJlcikiIHRpdGxlPSIwIChudW1iZXIpIj4wczwvYT48L2Rpdj4KKzwvdGg+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT4mbmJzcDs8YSBocmVmPSIvd2lraS8wXyhudW1iZXIpIiB0aXRsZT0iMCAobnVtYmVyKSI+MDwvYT4mbmJzcDs8L2xpPgorPGxpPiZuYnNwOzxhIGhyZWY9Ii93aWtpLzFfKG51bWJlcikiIHRpdGxlPSIxIChudW1iZXIpIj4xPC9hPiZuYnNwOzwvbGk+Cis8bGk+Jm5ic3A7PGEgaHJlZj0iL3dpa2kvMl8obnVtYmVyKSIgdGl0bGU9IjIgKG51bWJlcikiPjI8L2E+Jm5ic3A7PC9saT4KKzxsaT4mbmJzcDs8YSBocmVmPSIvd2lraS8zXyhudW1iZXIpIiB0aXRsZT0iMyAobnVtYmVyKSI+MzwvYT4mbmJzcDs8L2xpPgorPGxpPiZuYnNwOzxhIGhyZWY9Ii93aWtpLzRfKG51bWJlcikiIHRpdGxlPSI0IChudW1iZXIpIj40PC9hPiZuYnNwOzwvbGk+Cis8bGk+Jm5ic3A7PGEgaHJlZj0iL3dpa2kvNV8obnVtYmVyKSIgdGl0bGU9IjUgKG51bWJlcikiPjU8L2E+Jm5ic3A7PC9saT4KKzxsaT4mbmJzcDs8YSBocmVmPSIvd2lraS82XyhudW1iZXIpIiB0aXRsZT0iNiAobnVtYmVyKSI+NjwvYT4mbmJzcDs8L2xpPgorPGxpPiZuYnNwOzxhIGhyZWY9Ii93aWtpLzdfKG51bWJlcikiIHRpdGxlPSI3IChudW1iZXIpIj43PC9hPiZuYnNwOzwvbGk+Cis8bGk+Jm5ic3A7PGEgaHJlZj0iL3dpa2kvOF8obnVtYmVyKSIgdGl0bGU9IjggKG51bWJlcikiPjg8L2E+Jm5ic3A7PC9saT4KKzxsaT4mbmJzcDs8YSBocmVmPSIvd2lraS85XyhudW1iZXIpIiB0aXRsZT0iOSAobnVtYmVyKSI+OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xMF8obnVtYmVyKSIgdGl0bGU9IjEwIChudW1iZXIpIj4xMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzExXyhudW1iZXIpIiB0aXRsZT0iMTEgKG51bWJlcikiPjExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTJfKG51bWJlcikiIHRpdGxlPSIxMiAobnVtYmVyKSI+MTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xM18obnVtYmVyKSIgdGl0bGU9IjEzIChudW1iZXIpIj4xMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0XyhudW1iZXIpIiB0aXRsZT0iMTQgKG51bWJlcikiPjE0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTVfKG51bWJlcikiIHRpdGxlPSIxNSAobnVtYmVyKSI+MTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNl8obnVtYmVyKSIgdGl0bGU9IjE2IChudW1iZXIpIj4xNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE3XyhudW1iZXIpIiB0aXRsZT0iMTcgKG51bWJlcikiPjE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMThfKG51bWJlcikiIHRpdGxlPSIxOCAobnVtYmVyKSI+MTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xOV8obnVtYmVyKSIgdGl0bGU9IjE5IChudW1iZXIpIj4xOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwXyhudW1iZXIpIiB0aXRsZT0iMjAgKG51bWJlcikiPjIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjFfKG51bWJlcikiIHRpdGxlPSIyMSAobnVtYmVyKSI+MjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMl8obnVtYmVyKSIgdGl0bGU9IjIyIChudW1iZXIpIj4yMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzXyhudW1iZXIpIiB0aXRsZT0iMjMgKG51bWJlcikiPjIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjRfKG51bWJlcikiIHRpdGxlPSIyNCAobnVtYmVyKSI+MjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNV8obnVtYmVyKSIgdGl0bGU9IjI1IChudW1iZXIpIj4yNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2XyhudW1iZXIpIiB0aXRsZT0iMjYgKG51bWJlcikiPjI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjdfKG51bWJlcikiIHRpdGxlPSIyNyAobnVtYmVyKSI+Mjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOF8obnVtYmVyKSIgdGl0bGU9IjI4IChudW1iZXIpIj4yODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI5XyhudW1iZXIpIiB0aXRsZT0iMjkgKG51bWJlcikiPjI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwXyhudW1iZXIpIiB0aXRsZT0iMzAgKG51bWJlcikiPjMwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzFfKG51bWJlcikiIHRpdGxlPSIzMSAobnVtYmVyKSI+MzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMl8obnVtYmVyKSIgdGl0bGU9IjMyIChudW1iZXIpIj4zMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzXyhudW1iZXIpIiB0aXRsZT0iMzMgKG51bWJlcikiPjMzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzRfKG51bWJlcikiIHRpdGxlPSIzNCAobnVtYmVyKSI+MzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNV8obnVtYmVyKSIgdGl0bGU9IjM1IChudW1iZXIpIj4zNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2XyhudW1iZXIpIiB0aXRsZT0iMzYgKG51bWJlcikiPjM2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzdfKG51bWJlcikiIHRpdGxlPSIzNyAobnVtYmVyKSI+Mzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOF8obnVtYmVyKSIgdGl0bGU9IjM4IChudW1iZXIpIj4zODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5XyhudW1iZXIpIiB0aXRsZT0iMzkgKG51bWJlcikiPjM5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDBfKG51bWJlcikiIHRpdGxlPSI0MCAobnVtYmVyKSI+NDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MV8obnVtYmVyKSIgdGl0bGU9IjQxIChudW1iZXIpIj40MTwvYT48L2xpPgorPGxpPjxzdHJvbmcgY2xhc3M9InNlbGZsaW5rIj40Mjwvc3Ryb25nPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDNfKG51bWJlcikiIHRpdGxlPSI0MyAobnVtYmVyKSI+NDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NF8obnVtYmVyKSIgdGl0bGU9IjQ0IChudW1iZXIpIj40NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ1XyhudW1iZXIpIiB0aXRsZT0iNDUgKG51bWJlcikiPjQ1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDZfKG51bWJlcikiIHRpdGxlPSI0NiAobnVtYmVyKSI+NDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80N18obnVtYmVyKSIgdGl0bGU9IjQ3IChudW1iZXIpIj40NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4XyhudW1iZXIpIiB0aXRsZT0iNDggKG51bWJlcikiPjQ4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDlfKG51bWJlcikiIHRpdGxlPSI0OSAobnVtYmVyKSI+NDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTBfKG51bWJlcikiIHRpdGxlPSI1MCAobnVtYmVyKSI+NTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MV8obnVtYmVyKSIgdGl0bGU9IjUxIChudW1iZXIpIj41MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyXyhudW1iZXIpIiB0aXRsZT0iNTIgKG51bWJlcikiPjUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTNfKG51bWJlcikiIHRpdGxlPSI1MyAobnVtYmVyKSI+NTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NF8obnVtYmVyKSIgdGl0bGU9IjU0IChudW1iZXIpIj41NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1XyhudW1iZXIpIiB0aXRsZT0iNTUgKG51bWJlcikiPjU1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTZfKG51bWJlcikiIHRpdGxlPSI1NiAobnVtYmVyKSI+NTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81N18obnVtYmVyKSIgdGl0bGU9IjU3IChudW1iZXIpIj41NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU4XyhudW1iZXIpIiB0aXRsZT0iNTggKG51bWJlcikiPjU4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTlfKG51bWJlcikiIHRpdGxlPSI1OSAobnVtYmVyKSI+NTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82MF8obnVtYmVyKSIgdGl0bGU9IjYwIChudW1iZXIpIj42MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxXyhudW1iZXIpIiB0aXRsZT0iNjEgKG51bWJlcikiPjYxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjJfKG51bWJlcikiIHRpdGxlPSI2MiAobnVtYmVyKSI+NjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82M18obnVtYmVyKSIgdGl0bGU9IjYzIChudW1iZXIpIj42MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY0XyhudW1iZXIpIiB0aXRsZT0iNjQgKG51bWJlcikiPjY0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjVfKG51bWJlcikiIHRpdGxlPSI2NSAobnVtYmVyKSI+NjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82Nl8obnVtYmVyKSIgdGl0bGU9IjY2IChudW1iZXIpIj42NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY3XyhudW1iZXIpIiB0aXRsZT0iNjcgKG51bWJlcikiPjY3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjhfKG51bWJlcikiIHRpdGxlPSI2OCAobnVtYmVyKSI+Njg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82OV8obnVtYmVyKSIgdGl0bGU9IjY5IChudW1iZXIpIj42OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS83MF8obnVtYmVyKSIgdGl0bGU9IjcwIChudW1iZXIpIj43MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcxXyhudW1iZXIpIiB0aXRsZT0iNzEgKG51bWJlcikiPjcxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzJfKG51bWJlcikiIHRpdGxlPSI3MiAobnVtYmVyKSI+NzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83M18obnVtYmVyKSIgdGl0bGU9IjczIChudW1iZXIpIj43MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0XyhudW1iZXIpIiB0aXRsZT0iNzQgKG51bWJlcikiPjc0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzVfKG51bWJlcikiIHRpdGxlPSI3NSAobnVtYmVyKSI+NzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83Nl8obnVtYmVyKSIgdGl0bGU9Ijc2IChudW1iZXIpIj43NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc3XyhudW1iZXIpIiB0aXRsZT0iNzcgKG51bWJlcikiPjc3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzhfKG51bWJlcikiIHRpdGxlPSI3OCAobnVtYmVyKSI+Nzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83OV8obnVtYmVyKSIgdGl0bGU9Ijc5IChudW1iZXIpIj43OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgwXyhudW1iZXIpIiB0aXRsZT0iODAgKG51bWJlcikiPjgwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODFfKG51bWJlcikiIHRpdGxlPSI4MSAobnVtYmVyKSI+ODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84Ml8obnVtYmVyKSIgdGl0bGU9IjgyIChudW1iZXIpIj44MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzXyhudW1iZXIpIiB0aXRsZT0iODMgKG51bWJlcikiPjgzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODRfKG51bWJlcikiIHRpdGxlPSI4NCAobnVtYmVyKSI+ODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NV8obnVtYmVyKSIgdGl0bGU9Ijg1IChudW1iZXIpIj44NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2XyhudW1iZXIpIiB0aXRsZT0iODYgKG51bWJlcikiPjg2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODdfKG51bWJlcikiIHRpdGxlPSI4NyAobnVtYmVyKSI+ODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OF8obnVtYmVyKSIgdGl0bGU9Ijg4IChudW1iZXIpIj44ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg5XyhudW1iZXIpIiB0aXRsZT0iODkgKG51bWJlcikiPjg5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkwXyhudW1iZXIpIiB0aXRsZT0iOTAgKG51bWJlcikiPjkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTFfKG51bWJlcikiIHRpdGxlPSI5MSAobnVtYmVyKSI+OTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85Ml8obnVtYmVyKSIgdGl0bGU9IjkyIChudW1iZXIpIj45MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzXyhudW1iZXIpIiB0aXRsZT0iOTMgKG51bWJlcikiPjkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTRfKG51bWJlcikiIHRpdGxlPSI5NCAobnVtYmVyKSI+OTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NV8obnVtYmVyKSIgdGl0bGU9Ijk1IChudW1iZXIpIj45NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2XyhudW1iZXIpIiB0aXRsZT0iOTYgKG51bWJlcikiPjk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTdfKG51bWJlcikiIHRpdGxlPSI5NyAobnVtYmVyKSI+OTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OF8obnVtYmVyKSIgdGl0bGU9Ijk4IChudW1iZXIpIj45ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5XyhudW1iZXIpIiB0aXRsZT0iOTkgKG51bWJlcikiPjk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIGhsaXN0IiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+PC9kaXY+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSBjb2xsYXBzZWQgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDsiPgorPHRib2R5Pjx0cj4KKzx0aCBzY29wZT0iY29sIiBjbGFzcz0ibmF2Ym94LXRpdGxlIiBjb2xzcGFuPSIyIj48c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo2ZW07Ij4mbmJzcDs8L3NwYW4+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEwJTsiPjxhIGhyZWY9Ii93aWtpLzEwMF8obnVtYmVyKSIgdGl0bGU9IjEwMCAobnVtYmVyKSI+MTAwczwvYT48L2Rpdj4KKzwvdGg+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xMDBfKG51bWJlcikiIHRpdGxlPSIxMDAgKG51bWJlcikiPjEwMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEwMV8obnVtYmVyKSIgdGl0bGU9IjEwMSAobnVtYmVyKSI+MTAxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTAyXyhudW1iZXIpIiB0aXRsZT0iMTAyIChudW1iZXIpIj4xMDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMDNfKG51bWJlcikiIHRpdGxlPSIxMDMgKG51bWJlcikiPjEwMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEwNF8obnVtYmVyKSIgdGl0bGU9IjEwNCAobnVtYmVyKSI+MTA0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTA1XyhudW1iZXIpIiB0aXRsZT0iMTA1IChudW1iZXIpIj4xMDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMDZfKG51bWJlcikiIHRpdGxlPSIxMDYgKG51bWJlcikiPjEwNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEwN18obnVtYmVyKSIgdGl0bGU9IjEwNyAobnVtYmVyKSI+MTA3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTA4XyhudW1iZXIpIiB0aXRsZT0iMTA4IChudW1iZXIpIj4xMDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMDlfKG51bWJlcikiIHRpdGxlPSIxMDkgKG51bWJlcikiPjEwOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xMTBfKG51bWJlcikiIHRpdGxlPSIxMTAgKG51bWJlcikiPjExMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzExMV8obnVtYmVyKSIgdGl0bGU9IjExMSAobnVtYmVyKSI+MTExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTEyXyhudW1iZXIpIiB0aXRsZT0iMTEyIChudW1iZXIpIj4xMTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMTNfKG51bWJlcikiIHRpdGxlPSIxMTMgKG51bWJlcikiPjExMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzExNF8obnVtYmVyKSIgdGl0bGU9IjExNCAobnVtYmVyKSI+MTE0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTE1XyhudW1iZXIpIiB0aXRsZT0iMTE1IChudW1iZXIpIj4xMTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMTZfKG51bWJlcikiIHRpdGxlPSIxMTYgKG51bWJlcikiPjExNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzExN18obnVtYmVyKSIgdGl0bGU9IjExNyAobnVtYmVyKSI+MTE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTE4XyhudW1iZXIpIiB0aXRsZT0iMTE4IChudW1iZXIpIj4xMTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMTlfKG51bWJlcikiIHRpdGxlPSIxMTkgKG51bWJlcikiPjExOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyMF8obnVtYmVyKSIgdGl0bGU9IjEyMCAobnVtYmVyKSI+MTIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTIxXyhudW1iZXIpIiB0aXRsZT0iMTIxIChudW1iZXIpIj4xMjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMjJfKG51bWJlcikiIHRpdGxlPSIxMjIgKG51bWJlcikiPjEyMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyM18obnVtYmVyKSIgdGl0bGU9IjEyMyAobnVtYmVyKSI+MTIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTI0XyhudW1iZXIpIiB0aXRsZT0iMTI0IChudW1iZXIpIj4xMjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMjVfKG51bWJlcikiIHRpdGxlPSIxMjUgKG51bWJlcikiPjEyNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyNl8obnVtYmVyKSIgdGl0bGU9IjEyNiAobnVtYmVyKSI+MTI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTI3XyhudW1iZXIpIiB0aXRsZT0iMTI3IChudW1iZXIpIj4xMjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMjhfKG51bWJlcikiIHRpdGxlPSIxMjggKG51bWJlcikiPjEyODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyOV8obnVtYmVyKSIgdGl0bGU9IjEyOSAobnVtYmVyKSI+MTI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEzMF8obnVtYmVyKSIgdGl0bGU9IjEzMCAobnVtYmVyKSI+MTMwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTMxXyhudW1iZXIpIiB0aXRsZT0iMTMxIChudW1iZXIpIj4xMzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMzJfKG51bWJlcikiIHRpdGxlPSIxMzIgKG51bWJlcikiPjEzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEzM18obnVtYmVyKSIgdGl0bGU9IjEzMyAobnVtYmVyKSI+MTMzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTM0XyhudW1iZXIpIiB0aXRsZT0iMTM0IChudW1iZXIpIj4xMzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMzVfKG51bWJlcikiIHRpdGxlPSIxMzUgKG51bWJlcikiPjEzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEzNl8obnVtYmVyKSIgdGl0bGU9IjEzNiAobnVtYmVyKSI+MTM2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTM3XyhudW1iZXIpIiB0aXRsZT0iMTM3IChudW1iZXIpIj4xMzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMzhfKG51bWJlcikiIHRpdGxlPSIxMzggKG51bWJlcikiPjEzODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEzOV8obnVtYmVyKSIgdGl0bGU9IjEzOSAobnVtYmVyKSI+MTM5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTQwXyhudW1iZXIpIiB0aXRsZT0iMTQwIChudW1iZXIpIj4xNDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNDFfKG51bWJlcikiIHRpdGxlPSIxNDEgKG51bWJlcikiPjE0MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0Ml8obnVtYmVyKSIgdGl0bGU9IjE0MiAobnVtYmVyKSI+MTQyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTQzXyhudW1iZXIpIiB0aXRsZT0iMTQzIChudW1iZXIpIj4xNDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNDRfKG51bWJlcikiIHRpdGxlPSIxNDQgKG51bWJlcikiPjE0NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0NV8obnVtYmVyKSIgdGl0bGU9IjE0NSAobnVtYmVyKSI+MTQ1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTQ2XyhudW1iZXIpIiB0aXRsZT0iMTQ2IChudW1iZXIpIj4xNDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNDdfKG51bWJlcikiIHRpdGxlPSIxNDcgKG51bWJlcikiPjE0NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0OF8obnVtYmVyKSIgdGl0bGU9IjE0OCAobnVtYmVyKSI+MTQ4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTQ5XyhudW1iZXIpIiB0aXRsZT0iMTQ5IChudW1iZXIpIj4xNDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTUwXyhudW1iZXIpIiB0aXRsZT0iMTUwIChudW1iZXIpIj4xNTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNTFfKG51bWJlcikiIHRpdGxlPSIxNTEgKG51bWJlcikiPjE1MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1Ml8obnVtYmVyKSIgdGl0bGU9IjE1MiAobnVtYmVyKSI+MTUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTUzXyhudW1iZXIpIiB0aXRsZT0iMTUzIChudW1iZXIpIj4xNTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNTRfKG51bWJlcikiIHRpdGxlPSIxNTQgKG51bWJlcikiPjE1NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1NV8obnVtYmVyKSIgdGl0bGU9IjE1NSAobnVtYmVyKSI+MTU1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTU2XyhudW1iZXIpIiB0aXRsZT0iMTU2IChudW1iZXIpIj4xNTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNTdfKG51bWJlcikiIHRpdGxlPSIxNTcgKG51bWJlcikiPjE1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1OF8obnVtYmVyKSIgdGl0bGU9IjE1OCAobnVtYmVyKSI+MTU4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTU5XyhudW1iZXIpIiB0aXRsZT0iMTU5IChudW1iZXIpIj4xNTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xNjBfKG51bWJlcikiIHRpdGxlPSIxNjAgKG51bWJlcikiPjE2MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE2MV8obnVtYmVyKSIgdGl0bGU9IjE2MSAobnVtYmVyKSI+MTYxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTYyXyhudW1iZXIpIiB0aXRsZT0iMTYyIChudW1iZXIpIj4xNjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNjNfKG51bWJlcikiIHRpdGxlPSIxNjMgKG51bWJlcikiPjE2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE2NF8obnVtYmVyKSIgdGl0bGU9IjE2NCAobnVtYmVyKSI+MTY0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTY1XyhudW1iZXIpIiB0aXRsZT0iMTY1IChudW1iZXIpIj4xNjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNjZfKG51bWJlcikiIHRpdGxlPSIxNjYgKG51bWJlcikiPjE2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE2N18obnVtYmVyKSIgdGl0bGU9IjE2NyAobnVtYmVyKSI+MTY3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTY4XyhudW1iZXIpIiB0aXRsZT0iMTY4IChudW1iZXIpIj4xNjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNjlfKG51bWJlcikiIHRpdGxlPSIxNjkgKG51bWJlcikiPjE2OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xNzBfKG51bWJlcikiIHRpdGxlPSIxNzAgKG51bWJlcikiPjE3MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE3MV8obnVtYmVyKSIgdGl0bGU9IjE3MSAobnVtYmVyKSI+MTcxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTcyXyhudW1iZXIpIiB0aXRsZT0iMTcyIChudW1iZXIpIj4xNzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNzNfKG51bWJlcikiIHRpdGxlPSIxNzMgKG51bWJlcikiPjE3MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE3NF8obnVtYmVyKSIgdGl0bGU9IjE3NCAobnVtYmVyKSI+MTc0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTc1XyhudW1iZXIpIiB0aXRsZT0iMTc1IChudW1iZXIpIj4xNzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNzZfKG51bWJlcikiIHRpdGxlPSIxNzYgKG51bWJlcikiPjE3NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE3N18obnVtYmVyKSIgdGl0bGU9IjE3NyAobnVtYmVyKSI+MTc3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTc4XyhudW1iZXIpIiB0aXRsZT0iMTc4IChudW1iZXIpIj4xNzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNzlfKG51bWJlcikiIHRpdGxlPSIxNzkgKG51bWJlcikiPjE3OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4MF8obnVtYmVyKSIgdGl0bGU9IjE4MCAobnVtYmVyKSI+MTgwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTgxXyhudW1iZXIpIiB0aXRsZT0iMTgxIChudW1iZXIpIj4xODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xODJfKG51bWJlcikiIHRpdGxlPSIxODIgKG51bWJlcikiPjE4MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4M18obnVtYmVyKSIgdGl0bGU9IjE4MyAobnVtYmVyKSI+MTgzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTg0XyhudW1iZXIpIiB0aXRsZT0iMTg0IChudW1iZXIpIj4xODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xODVfKG51bWJlcikiIHRpdGxlPSIxODUgKG51bWJlcikiPjE4NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4Nl8obnVtYmVyKSIgdGl0bGU9IjE4NiAobnVtYmVyKSI+MTg2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTg3XyhudW1iZXIpIiB0aXRsZT0iMTg3IChudW1iZXIpIj4xODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xODhfKG51bWJlcikiIHRpdGxlPSIxODggKG51bWJlcikiPjE4ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4OV8obnVtYmVyKSIgdGl0bGU9IjE4OSAobnVtYmVyKSI+MTg5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE5MF8obnVtYmVyKSIgdGl0bGU9IjE5MCAobnVtYmVyKSI+MTkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTkxXyhudW1iZXIpIiB0aXRsZT0iMTkxIChudW1iZXIpIj4xOTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xOTJfKG51bWJlcikiIHRpdGxlPSIxOTIgKG51bWJlcikiPjE5MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE5M18obnVtYmVyKSIgdGl0bGU9IjE5MyAobnVtYmVyKSI+MTkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTk0XyhudW1iZXIpIiB0aXRsZT0iMTk0IChudW1iZXIpIj4xOTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xOTVfKG51bWJlcikiIHRpdGxlPSIxOTUgKG51bWJlcikiPjE5NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE5Nl8obnVtYmVyKSIgdGl0bGU9IjE5NiAobnVtYmVyKSI+MTk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTk3XyhudW1iZXIpIiB0aXRsZT0iMTk3IChudW1iZXIpIj4xOTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xOThfKG51bWJlcikiIHRpdGxlPSIxOTggKG51bWJlcikiPjE5ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE5OV8obnVtYmVyKSIgdGl0bGU9IjE5OSAobnVtYmVyKSI+MTk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQgaGxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij48L2Rpdj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtzIGNvbGxhcHNpYmxlIGNvbGxhcHNlZCBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJib3JkZXItc3BhY2luZzowOyI+Cis8dGJvZHk+PHRyPgorPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJuYXZib3gtdGl0bGUiIGNvbHNwYW49IjIiPjxzcGFuIHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjZlbTsiPiZuYnNwOzwvc3Bhbj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJlZj0iL3dpa2kvMjAwXyhudW1iZXIpIiB0aXRsZT0iMjAwIChudW1iZXIpIj4yMDBzPC9hPjwvZGl2PgorPC90aD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwMF8obnVtYmVyKSIgdGl0bGU9IjIwMCAobnVtYmVyKSI+MjAwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjAxXyhudW1iZXIpIiB0aXRsZT0iMjAxIChudW1iZXIpIj4yMDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMDJfKG51bWJlcikiIHRpdGxlPSIyMDIgKG51bWJlcikiPjIwMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwM18obnVtYmVyKSIgdGl0bGU9IjIwMyAobnVtYmVyKSI+MjAzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjA0XyhudW1iZXIpIiB0aXRsZT0iMjA0IChudW1iZXIpIj4yMDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMDVfKG51bWJlcikiIHRpdGxlPSIyMDUgKG51bWJlcikiPjIwNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwNl8obnVtYmVyKSIgdGl0bGU9IjIwNiAobnVtYmVyKSI+MjA2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjA3XyhudW1iZXIpIiB0aXRsZT0iMjA3IChudW1iZXIpIj4yMDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMDhfKG51bWJlcikiIHRpdGxlPSIyMDggKG51bWJlcikiPjIwODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwOV8obnVtYmVyKSIgdGl0bGU9IjIwOSAobnVtYmVyKSI+MjA5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxMF8obnVtYmVyKSIgdGl0bGU9IjIxMCAobnVtYmVyKSI+MjEwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjExXyhudW1iZXIpIiB0aXRsZT0iMjExIChudW1iZXIpIj4yMTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMTJfKG51bWJlcikiIHRpdGxlPSIyMTIgKG51bWJlcikiPjIxMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxM18obnVtYmVyKSIgdGl0bGU9IjIxMyAobnVtYmVyKSI+MjEzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjE0XyhudW1iZXIpIiB0aXRsZT0iMjE0IChudW1iZXIpIj4yMTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMTVfKG51bWJlcikiIHRpdGxlPSIyMTUgKG51bWJlcikiPjIxNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxNl8obnVtYmVyKSIgdGl0bGU9IjIxNiAobnVtYmVyKSI+MjE2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjE3XyhudW1iZXIpIiB0aXRsZT0iMjE3IChudW1iZXIpIj4yMTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMThfKG51bWJlcikiIHRpdGxlPSIyMTggKG51bWJlcikiPjIxODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxOV8obnVtYmVyKSIgdGl0bGU9IjIxOSAobnVtYmVyKSI+MjE5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjIwXyhudW1iZXIpIiB0aXRsZT0iMjIwIChudW1iZXIpIj4yMjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMjFfKG51bWJlcikiIHRpdGxlPSIyMjEgKG51bWJlcikiPjIyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIyMl8obnVtYmVyKSIgdGl0bGU9IjIyMiAobnVtYmVyKSI+MjIyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjIzXyhudW1iZXIpIiB0aXRsZT0iMjIzIChudW1iZXIpIj4yMjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMjRfKG51bWJlcikiIHRpdGxlPSIyMjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjI0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjI1XyhudW1iZXIpIiB0aXRsZT0iMjI1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjIyNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIyNl8obnVtYmVyKSIgdGl0bGU9IjIyNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yMjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMjdfKG51bWJlcikiIHRpdGxlPSIyMjcgKG51bWJlcikiPjIyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIyOF8obnVtYmVyKSIgdGl0bGU9IjIyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yMjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMjlfKG51bWJlcikiIHRpdGxlPSIyMjkgKG51bWJlcikiPjIyOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yMzBfKG51bWJlcikiIHRpdGxlPSIyMzAgKG51bWJlcikiPjIzMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzMV8obnVtYmVyKSIgdGl0bGU9IjIzMSAobnVtYmVyKSI+MjMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjMyXyhudW1iZXIpIiB0aXRsZT0iMjMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjIzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzM18obnVtYmVyKSIgdGl0bGU9IjIzMyAobnVtYmVyKSI+MjMzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjM0XyhudW1iZXIpIiB0aXRsZT0iMjM0IChudW1iZXIpIj4yMzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMzVfKG51bWJlcikiIHRpdGxlPSIyMzUgKG51bWJlcikiPjIzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzNl8obnVtYmVyKSIgdGl0bGU9IjIzNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yMzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMzdfKG51bWJlcikiIHRpdGxlPSIyMzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjM4XyhudW1iZXIpIiB0aXRsZT0iMjM4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjIzODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzOV8obnVtYmVyKSIgdGl0bGU9IjIzOSAobnVtYmVyKSI+MjM5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQwXyhudW1iZXIpIiB0aXRsZT0iMjQwIChudW1iZXIpIj4yNDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNDFfKG51bWJlcikiIHRpdGxlPSIyNDEgKG51bWJlcikiPjI0MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI0Ml8obnVtYmVyKSIgdGl0bGU9IjI0MiAobnVtYmVyKSI+MjQyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQzXyhudW1iZXIpIiB0aXRsZT0iMjQzIChudW1iZXIpIj4yNDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNDRfKG51bWJlcikiIHRpdGxlPSIyNDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjQ0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQ1XyhudW1iZXIpIiB0aXRsZT0iMjQ1IChudW1iZXIpIj4yNDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNDZfKG51bWJlcikiIHRpdGxlPSIyNDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQ3XyhudW1iZXIpIiB0aXRsZT0iMjQ3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI0NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI0OF8obnVtYmVyKSIgdGl0bGU9IjI0OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNDlfKG51bWJlcikiIHRpdGxlPSIyNDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI1MF8obnVtYmVyKSIgdGl0bGU9IjI1MCAobnVtYmVyKSI+MjUwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjUxXyhudW1iZXIpIiB0aXRsZT0iMjUxIChudW1iZXIpIj4yNTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNTJfKG51bWJlcikiIHRpdGxlPSIyNTIgKG51bWJlcikiPjI1MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI1M18obnVtYmVyKSIgdGl0bGU9IjI1MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNTRfKG51bWJlcikiIHRpdGxlPSIyNTQgKG51bWJlcikiPjI1NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI1NV8obnVtYmVyKSIgdGl0bGU9IjI1NSAobnVtYmVyKSI+MjU1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjU2XyhudW1iZXIpIiB0aXRsZT0iMjU2IChudW1iZXIpIj4yNTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNTdfKG51bWJlcikiIHRpdGxlPSIyNTcgKG51bWJlcikiPjI1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI1OF8obnVtYmVyKSIgdGl0bGU9IjI1OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNTlfKG51bWJlcikiIHRpdGxlPSIyNTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjYwXyhudW1iZXIpIiB0aXRsZT0iMjYwIChudW1iZXIpIj4yNjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNjFfKG51bWJlcikiIHRpdGxlPSIyNjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjYxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjYyXyhudW1iZXIpIiB0aXRsZT0iMjYyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI2MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2M18obnVtYmVyKSIgdGl0bGU9IjI2MyAobnVtYmVyKSI+MjYzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjY0XyhudW1iZXIpIiB0aXRsZT0iMjY0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI2NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2NV8obnVtYmVyKSIgdGl0bGU9IjI2NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNjZfKG51bWJlcikiIHRpdGxlPSIyNjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjY2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjY3XyhudW1iZXIpIiB0aXRsZT0iMjY3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI2NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2OF8obnVtYmVyKSIgdGl0bGU9IjI2OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNjlfKG51bWJlcikiIHRpdGxlPSIyNjkgKG51bWJlcikiPjI2OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yNzBfKG51bWJlcikiIHRpdGxlPSIyNzAgKG51bWJlcikiPjI3MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI3MV8obnVtYmVyKSIgdGl0bGU9IjI3MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNzJfKG51bWJlcikiIHRpdGxlPSIyNzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjcyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjczXyhudW1iZXIpIiB0aXRsZT0iMjczIChudW1iZXIpIj4yNzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNzRfKG51bWJlcikiIHRpdGxlPSIyNzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjc0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjc1XyhudW1iZXIpIiB0aXRsZT0iMjc1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI3NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI3Nl8obnVtYmVyKSIgdGl0bGU9IjI3NiAobnVtYmVyKSI+Mjc2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjc3XyhudW1iZXIpIiB0aXRsZT0iMjc3IChudW1iZXIpIj4yNzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNzhfKG51bWJlcikiIHRpdGxlPSIyNzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjc5XyhudW1iZXIpIiB0aXRsZT0iMjc5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI3OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI4MF8obnVtYmVyKSIgdGl0bGU9IjI4MCAobnVtYmVyKSI+MjgwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjgxXyhudW1iZXIpIiB0aXRsZT0iMjgxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI4MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI4Ml8obnVtYmVyKSIgdGl0bGU9IjI4MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yODI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yODNfKG51bWJlcikiIHRpdGxlPSIyODMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjgzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjg0XyhudW1iZXIpIiB0aXRsZT0iMjg0IChudW1iZXIpIj4yODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yODVfKG51bWJlcikiIHRpdGxlPSIyODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjg2XyhudW1iZXIpIiB0aXRsZT0iMjg2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI4N18obnVtYmVyKSIgdGl0bGU9IjI4NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yODhfKG51bWJlcikiIHRpdGxlPSIyODggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjg5XyhudW1iZXIpIiB0aXRsZT0iMjg5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yOTBfKG51bWJlcikiIHRpdGxlPSIyOTAgKG51bWJlcikiPjI5MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI5MV8obnVtYmVyKSIgdGl0bGU9IjI5MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yOTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOTJfKG51bWJlcikiIHRpdGxlPSIyOTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjkyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjkzXyhudW1iZXIpIiB0aXRsZT0iMjkzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI5MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI5NF8obnVtYmVyKSIgdGl0bGU9IjI5NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yOTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOTVfKG51bWJlcikiIHRpdGxlPSIyOTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjk1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjk2XyhudW1iZXIpIiB0aXRsZT0iMjk2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI5NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI5N18obnVtYmVyKSIgdGl0bGU9IjI5NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yOTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOThfKG51bWJlcikiIHRpdGxlPSIyOTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjk4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjk5XyhudW1iZXIpIiB0aXRsZT0iMjk5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI5OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiBobGlzdCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPjwvZGl2PgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93cmFwbGlua3MgY29sbGFwc2libGUgY29sbGFwc2VkIG5hdmJveC1zdWJncm91cCIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7Ij4KKzx0Ym9keT48dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+PHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6NmVtOyI+Jm5ic3A7PC9zcGFuPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS8zMDBfKG51bWJlcikiIHRpdGxlPSIzMDAgKG51bWJlcikiPjMwMHM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzAwXyhudW1iZXIpIiB0aXRsZT0iMzAwIChudW1iZXIpIj4zMDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMDFfKG51bWJlcikiIHRpdGxlPSIzMDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzAxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzAyXyhudW1iZXIpIiB0aXRsZT0iMzAyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMwMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwM18obnVtYmVyKSIgdGl0bGU9IjMwMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMDRfKG51bWJlcikiIHRpdGxlPSIzMDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzA0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzA1XyhudW1iZXIpIiB0aXRsZT0iMzA1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMwNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwNl8obnVtYmVyKSIgdGl0bGU9IjMwNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMDdfKG51bWJlcikiIHRpdGxlPSIzMDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzA3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzA4XyhudW1iZXIpIiB0aXRsZT0iMzA4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMwODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwOV8obnVtYmVyKSIgdGl0bGU9IjMwOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzEwXyhudW1iZXIpIiB0aXRsZT0iMzEwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMxMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxMV8obnVtYmVyKSIgdGl0bGU9IjMxMSAobnVtYmVyKSI+MzExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzEyXyhudW1iZXIpIiB0aXRsZT0iMzEyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMxMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxM18obnVtYmVyKSIgdGl0bGU9IjMxMyAobnVtYmVyKSI+MzEzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzE0XyhudW1iZXIpIiB0aXRsZT0iMzE0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMxNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxNV8obnVtYmVyKSIgdGl0bGU9IjMxNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMTZfKG51bWJlcikiIHRpdGxlPSIzMTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzE2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzE3XyhudW1iZXIpIiB0aXRsZT0iMzE3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMxNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxOF8obnVtYmVyKSIgdGl0bGU9IjMxOCAobnVtYmVyKSI+MzE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzE5XyhudW1iZXIpIiB0aXRsZT0iMzE5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMxOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMyMF8obnVtYmVyKSIgdGl0bGU9IjMyMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMjFfKG51bWJlcikiIHRpdGxlPSIzMjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzIyXyhudW1iZXIpIiB0aXRsZT0iMzIyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMyMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMyM18obnVtYmVyKSIgdGl0bGU9IjMyMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMjRfKG51bWJlcikiIHRpdGxlPSIzMjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzI0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzI1XyhudW1iZXIpIiB0aXRsZT0iMzI1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMyNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMyNl8obnVtYmVyKSIgdGl0bGU9IjMyNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMjdfKG51bWJlcikiIHRpdGxlPSIzMjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzI3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzI4XyhudW1iZXIpIiB0aXRsZT0iMzI4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMyODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMyOV8obnVtYmVyKSIgdGl0bGU9IjMyOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzMwXyhudW1iZXIpIiB0aXRsZT0iMzMwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMzMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzMV8obnVtYmVyKSIgdGl0bGU9IjMzMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMzJfKG51bWJlcikiIHRpdGxlPSIzMzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzMyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzMzXyhudW1iZXIpIiB0aXRsZT0iMzMzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMzMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzNF8obnVtYmVyKSIgdGl0bGU9IjMzNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMzVfKG51bWJlcikiIHRpdGxlPSIzMzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzM1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzM2XyhudW1iZXIpIiB0aXRsZT0iMzM2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMzNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzN18obnVtYmVyKSIgdGl0bGU9IjMzNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMzhfKG51bWJlcikiIHRpdGxlPSIzMzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzM4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzM5XyhudW1iZXIpIiB0aXRsZT0iMzM5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMzOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0MF8obnVtYmVyKSIgdGl0bGU9IjM0MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNDFfKG51bWJlcikiIHRpdGxlPSIzNDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzQxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzQyXyhudW1iZXIpIiB0aXRsZT0iMzQyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0M18obnVtYmVyKSIgdGl0bGU9IjM0MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNDRfKG51bWJlcikiIHRpdGxlPSIzNDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzQ0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzQ1XyhudW1iZXIpIiB0aXRsZT0iMzQ1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM0NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0Nl8obnVtYmVyKSIgdGl0bGU9IjM0NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNDdfKG51bWJlcikiIHRpdGxlPSIzNDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzQ3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzQ4XyhudW1iZXIpIiB0aXRsZT0iMzQ4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM0ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0OV8obnVtYmVyKSIgdGl0bGU9IjM0OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzUwXyhudW1iZXIpIiB0aXRsZT0iMzUwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM1MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM1MV8obnVtYmVyKSIgdGl0bGU9IjM1MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNTJfKG51bWJlcikiIHRpdGxlPSIzNTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzUzXyhudW1iZXIpIiB0aXRsZT0iMzUzIChudW1iZXIpIj4zNTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNTRfKG51bWJlcikiIHRpdGxlPSIzNTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzU0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzU1XyhudW1iZXIpIiB0aXRsZT0iMzU1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM1NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM1Nl8obnVtYmVyKSIgdGl0bGU9IjM1NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNTdfKG51bWJlcikiIHRpdGxlPSIzNTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzU3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzU4XyhudW1iZXIpIiB0aXRsZT0iMzU4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM1ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM1OV8obnVtYmVyKSIgdGl0bGU9IjM1OSAobnVtYmVyKSI+MzU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzYwXyhudW1iZXIpIiB0aXRsZT0iMzYwIChudW1iZXIpIj4zNjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNjFfKG51bWJlcikiIHRpdGxlPSIzNjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzYxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzYyXyhudW1iZXIpIiB0aXRsZT0iMzYyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM2MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2M18obnVtYmVyKSIgdGl0bGU9IjM2MyAobnVtYmVyKSI+MzYzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzY0XyhudW1iZXIpIiB0aXRsZT0iMzY0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM2NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2NV8obnVtYmVyKSIgdGl0bGU9IjM2NSAobnVtYmVyKSI+MzY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzY2XyhudW1iZXIpIiB0aXRsZT0iMzY2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2N18obnVtYmVyKSIgdGl0bGU9IjM2NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNjhfKG51bWJlcikiIHRpdGxlPSIzNjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzY5XyhudW1iZXIpIiB0aXRsZT0iMzY5IChudW1iZXIpIj4zNjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzcwXyhudW1iZXIpIiB0aXRsZT0iMzcwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM3MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3MV8obnVtYmVyKSIgdGl0bGU9IjM3MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNzJfKG51bWJlcikiIHRpdGxlPSIzNzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzcyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzczXyhudW1iZXIpIiB0aXRsZT0iMzczIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM3MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3NF8obnVtYmVyKSIgdGl0bGU9IjM3NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNzVfKG51bWJlcikiIHRpdGxlPSIzNzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzc1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzc2XyhudW1iZXIpIiB0aXRsZT0iMzc2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM3NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3N18obnVtYmVyKSIgdGl0bGU9IjM3NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNzhfKG51bWJlcikiIHRpdGxlPSIzNzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzc5XyhudW1iZXIpIiB0aXRsZT0iMzc5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM3OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM4MF8obnVtYmVyKSIgdGl0bGU9IjM4MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zODA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zODFfKG51bWJlcikiIHRpdGxlPSIzODEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzgxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzgyXyhudW1iZXIpIiB0aXRsZT0iMzgyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM4MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM4M18obnVtYmVyKSIgdGl0bGU9IjM4MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zODM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zODRfKG51bWJlcikiIHRpdGxlPSIzODQgKG51bWJlcikiPjM4NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM4NV8obnVtYmVyKSIgdGl0bGU9IjM4NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zODU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zODZfKG51bWJlcikiIHRpdGxlPSIzODYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzg2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzg3XyhudW1iZXIpIiB0aXRsZT0iMzg3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM4NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM4OF8obnVtYmVyKSIgdGl0bGU9IjM4OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zODlfKG51bWJlcikiIHRpdGxlPSIzODkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzg5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5MF8obnVtYmVyKSIgdGl0bGU9IjM5MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zOTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOTFfKG51bWJlcikiIHRpdGxlPSIzOTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzkxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzkyXyhudW1iZXIpIiB0aXRsZT0iMzkyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM5MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5M18obnVtYmVyKSIgdGl0bGU9IjM5MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zOTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOTRfKG51bWJlcikiIHRpdGxlPSIzOTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzk0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzk1XyhudW1iZXIpIiB0aXRsZT0iMzk1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM5NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5Nl8obnVtYmVyKSIgdGl0bGU9IjM5NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zOTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOTdfKG51bWJlcikiIHRpdGxlPSIzOTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzk3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzk4XyhudW1iZXIpIiB0aXRsZT0iMzk4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM5ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5OV8obnVtYmVyKSIgdGl0bGU9IjM5OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zOTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCBobGlzdCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPjwvZGl2PgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93cmFwbGlua3MgY29sbGFwc2libGUgY29sbGFwc2VkIG5hdmJveC1zdWJncm91cCIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7Ij4KKzx0Ym9keT48dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+PHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6NmVtOyI+Jm5ic3A7PC9zcGFuPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS80MDBfKG51bWJlcikiIHRpdGxlPSI0MDAgKG51bWJlcikiPjQwMHM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDAwXyhudW1iZXIpIiB0aXRsZT0iNDAwIChudW1iZXIpIj40MDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MDFfKG51bWJlcikiIHRpdGxlPSI0MDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDAxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDAyXyhudW1iZXIpIiB0aXRsZT0iNDAyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQwMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwM18obnVtYmVyKSIgdGl0bGU9IjQwMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MDRfKG51bWJlcikiIHRpdGxlPSI0MDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDA0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDA1XyhudW1iZXIpIiB0aXRsZT0iNDA1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQwNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwNl8obnVtYmVyKSIgdGl0bGU9IjQwNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MDdfKG51bWJlcikiIHRpdGxlPSI0MDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDA3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDA4XyhudW1iZXIpIiB0aXRsZT0iNDA4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQwODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwOV8obnVtYmVyKSIgdGl0bGU9IjQwOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDEwXyhudW1iZXIpIiB0aXRsZT0iNDEwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQxMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQxMV8obnVtYmVyKSIgdGl0bGU9IjQxMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MTJfKG51bWJlcikiIHRpdGxlPSI0MTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDEyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDEzXyhudW1iZXIpIiB0aXRsZT0iNDEzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQxMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQxNF8obnVtYmVyKSIgdGl0bGU9IjQxNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MTVfKG51bWJlcikiIHRpdGxlPSI0MTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDE2XyhudW1iZXIpIiB0aXRsZT0iNDE2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQxNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQxN18obnVtYmVyKSIgdGl0bGU9IjQxNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MThfKG51bWJlcikiIHRpdGxlPSI0MTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDE5XyhudW1iZXIpIiB0aXRsZT0iNDE5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQxOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyMF8obnVtYmVyKSIgdGl0bGU9IjQyMCAobnVtYmVyKSI+NDIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDIxXyhudW1iZXIpIiB0aXRsZT0iNDIxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyMl8obnVtYmVyKSIgdGl0bGU9IjQyMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MjNfKG51bWJlcikiIHRpdGxlPSI0MjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDI0XyhudW1iZXIpIiB0aXRsZT0iNDI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyNV8obnVtYmVyKSIgdGl0bGU9IjQyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MjZfKG51bWJlcikiIHRpdGxlPSI0MjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDI3XyhudW1iZXIpIiB0aXRsZT0iNDI3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyOF8obnVtYmVyKSIgdGl0bGU9IjQyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Mjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MjlfKG51bWJlcikiIHRpdGxlPSI0MjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzMF8obnVtYmVyKSIgdGl0bGU9IjQzMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MzFfKG51bWJlcikiIHRpdGxlPSI0MzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDMyXyhudW1iZXIpIiB0aXRsZT0iNDMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzM18obnVtYmVyKSIgdGl0bGU9IjQzMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MzRfKG51bWJlcikiIHRpdGxlPSI0MzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDM1XyhudW1iZXIpIiB0aXRsZT0iNDM1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzNl8obnVtYmVyKSIgdGl0bGU9IjQzNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MzdfKG51bWJlcikiIHRpdGxlPSI0MzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDM4XyhudW1iZXIpIiB0aXRsZT0iNDM4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQzODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzOV8obnVtYmVyKSIgdGl0bGU9IjQzOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Mzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS80NDBfKG51bWJlcikiIHRpdGxlPSI0NDAgKG51bWJlcikiPjQ0MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ0MV8obnVtYmVyKSIgdGl0bGU9IjQ0MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NDJfKG51bWJlcikiIHRpdGxlPSI0NDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDQyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDQzXyhudW1iZXIpIiB0aXRsZT0iNDQzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ0MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ0NF8obnVtYmVyKSIgdGl0bGU9IjQ0NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NDVfKG51bWJlcikiIHRpdGxlPSI0NDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDQ1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDQ2XyhudW1iZXIpIiB0aXRsZT0iNDQ2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ0NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ0N18obnVtYmVyKSIgdGl0bGU9IjQ0NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NDhfKG51bWJlcikiIHRpdGxlPSI0NDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDQ4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDQ5XyhudW1iZXIpIiB0aXRsZT0iNDQ5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ0OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS80NTBfKG51bWJlcikiIHRpdGxlPSI0NTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDUwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDUxXyhudW1iZXIpIiB0aXRsZT0iNDUxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ1MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ1Ml8obnVtYmVyKSIgdGl0bGU9IjQ1MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NTNfKG51bWJlcikiIHRpdGxlPSI0NTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDU0XyhudW1iZXIpIiB0aXRsZT0iNDU0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ1NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ1NV8obnVtYmVyKSIgdGl0bGU9IjQ1NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NTZfKG51bWJlcikiIHRpdGxlPSI0NTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDU3XyhudW1iZXIpIiB0aXRsZT0iNDU3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ1OF8obnVtYmVyKSIgdGl0bGU9IjQ1OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NTlfKG51bWJlcikiIHRpdGxlPSI0NTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDYwXyhudW1iZXIpIiB0aXRsZT0iNDYwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ2MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2MV8obnVtYmVyKSIgdGl0bGU9IjQ2MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NjJfKG51bWJlcikiIHRpdGxlPSI0NjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDYyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDYzXyhudW1iZXIpIiB0aXRsZT0iNDYzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2NF8obnVtYmVyKSIgdGl0bGU9IjQ2NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NjVfKG51bWJlcikiIHRpdGxlPSI0NjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDY2XyhudW1iZXIpIiB0aXRsZT0iNDY2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2N18obnVtYmVyKSIgdGl0bGU9IjQ2NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Njc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NjhfKG51bWJlcikiIHRpdGxlPSI0NjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDY5XyhudW1iZXIpIiB0aXRsZT0iNDY5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ2OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS80NzBfKG51bWJlcikiIHRpdGxlPSI0NzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDcwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDcxXyhudW1iZXIpIiB0aXRsZT0iNDcxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ3MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ3Ml8obnVtYmVyKSIgdGl0bGU9IjQ3MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NzNfKG51bWJlcikiIHRpdGxlPSI0NzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDczPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDc0XyhudW1iZXIpIiB0aXRsZT0iNDc0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ3NV8obnVtYmVyKSIgdGl0bGU9IjQ3NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NzZfKG51bWJlcikiIHRpdGxlPSI0NzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDc2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDc3XyhudW1iZXIpIiB0aXRsZT0iNDc3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ3NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ3OF8obnVtYmVyKSIgdGl0bGU9IjQ3OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Nzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NzlfKG51bWJlcikiIHRpdGxlPSI0NzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDc5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDgwXyhudW1iZXIpIiB0aXRsZT0iNDgwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ4MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4MV8obnVtYmVyKSIgdGl0bGU9IjQ4MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40ODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80ODJfKG51bWJlcikiIHRpdGxlPSI0ODIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDgyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDgzXyhudW1iZXIpIiB0aXRsZT0iNDgzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4NF8obnVtYmVyKSIgdGl0bGU9IjQ4NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40ODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80ODVfKG51bWJlcikiIHRpdGxlPSI0ODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDg2XyhudW1iZXIpIiB0aXRsZT0iNDg2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4N18obnVtYmVyKSIgdGl0bGU9IjQ4NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40ODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80ODhfKG51bWJlcikiIHRpdGxlPSI0ODggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDg5XyhudW1iZXIpIiB0aXRsZT0iNDg5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS80OTBfKG51bWJlcikiIHRpdGxlPSI0OTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDkxXyhudW1iZXIpIiB0aXRsZT0iNDkxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ5MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5Ml8obnVtYmVyKSIgdGl0bGU9IjQ5MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40OTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80OTNfKG51bWJlcikiIHRpdGxlPSI0OTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDk0XyhudW1iZXIpIiB0aXRsZT0iNDk0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ5NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5NV8obnVtYmVyKSIgdGl0bGU9IjQ5NSAobnVtYmVyKSI+NDk1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDk2XyhudW1iZXIpIiB0aXRsZT0iNDk2IChudW1iZXIpIj40OTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80OTdfKG51bWJlcikiIHRpdGxlPSI0OTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDk3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDk4XyhudW1iZXIpIiB0aXRsZT0iNDk4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ5ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5OV8obnVtYmVyKSIgdGl0bGU9IjQ5OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40OTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4gaGxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij48L2Rpdj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtzIGNvbGxhcHNpYmxlIGNvbGxhcHNlZCBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJib3JkZXItc3BhY2luZzowOyI+Cis8dGJvZHk+PHRyPgorPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJuYXZib3gtdGl0bGUiIGNvbHNwYW49IjIiPjxzcGFuIHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjZlbTsiPiZuYnNwOzwvc3Bhbj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJlZj0iL3dpa2kvNTAwXyhudW1iZXIpIiB0aXRsZT0iNTAwIChudW1iZXIpIj41MDBzPC9hPjwvZGl2PgorPC90aD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwMF8obnVtYmVyKSIgdGl0bGU9IjUwMCAobnVtYmVyKSI+NTAwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTAxXyhudW1iZXIpIiB0aXRsZT0iNTAxIChudW1iZXIpIj41MDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MDJfKG51bWJlcikiIHRpdGxlPSI1MDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTAyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTAzXyhudW1iZXIpIiB0aXRsZT0iNTAzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUwMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwNF8obnVtYmVyKSIgdGl0bGU9IjUwNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MDVfKG51bWJlcikiIHRpdGxlPSI1MDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTA1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTA2XyhudW1iZXIpIiB0aXRsZT0iNTA2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUwNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwN18obnVtYmVyKSIgdGl0bGU9IjUwNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MDhfKG51bWJlcikiIHRpdGxlPSI1MDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTA4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTA5XyhudW1iZXIpIiB0aXRsZT0iNTA5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUwOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81MTBfKG51bWJlcikiIHRpdGxlPSI1MTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTEwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTExXyhudW1iZXIpIiB0aXRsZT0iNTExIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUxMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUxMl8obnVtYmVyKSIgdGl0bGU9IjUxMiAobnVtYmVyKSI+NTEyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTEzXyhudW1iZXIpIiB0aXRsZT0iNTEzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUxMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUxNF8obnVtYmVyKSIgdGl0bGU9IjUxNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MTVfKG51bWJlcikiIHRpdGxlPSI1MTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTE2XyhudW1iZXIpIiB0aXRsZT0iNTE2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUxNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUxN18obnVtYmVyKSIgdGl0bGU9IjUxNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MThfKG51bWJlcikiIHRpdGxlPSI1MTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTE5XyhudW1iZXIpIiB0aXRsZT0iNTE5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUxOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyMF8obnVtYmVyKSIgdGl0bGU9IjUyMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MjFfKG51bWJlcikiIHRpdGxlPSI1MjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTIyXyhudW1iZXIpIiB0aXRsZT0iNTIyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUyMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyM18obnVtYmVyKSIgdGl0bGU9IjUyMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MjRfKG51bWJlcikiIHRpdGxlPSI1MjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTI0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTI1XyhudW1iZXIpIiB0aXRsZT0iNTI1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUyNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyNl8obnVtYmVyKSIgdGl0bGU9IjUyNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MjdfKG51bWJlcikiIHRpdGxlPSI1MjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTI3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTI4XyhudW1iZXIpIiB0aXRsZT0iNTI4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUyODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyOV8obnVtYmVyKSIgdGl0bGU9IjUyOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Mjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTMwXyhudW1iZXIpIiB0aXRsZT0iNTMwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUzMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzMV8obnVtYmVyKSIgdGl0bGU9IjUzMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MzJfKG51bWJlcikiIHRpdGxlPSI1MzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTMyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTMzXyhudW1iZXIpIiB0aXRsZT0iNTMzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUzMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzNF8obnVtYmVyKSIgdGl0bGU9IjUzNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MzVfKG51bWJlcikiIHRpdGxlPSI1MzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTM1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTM2XyhudW1iZXIpIiB0aXRsZT0iNTM2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUzNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzN18obnVtYmVyKSIgdGl0bGU9IjUzNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Mzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MzhfKG51bWJlcikiIHRpdGxlPSI1MzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTM4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTM5XyhudW1iZXIpIiB0aXRsZT0iNTM5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUzOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU0MF8obnVtYmVyKSIgdGl0bGU9IjU0MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NDFfKG51bWJlcikiIHRpdGxlPSI1NDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTQxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTQyXyhudW1iZXIpIiB0aXRsZT0iNTQyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU0M18obnVtYmVyKSIgdGl0bGU9IjU0MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NDRfKG51bWJlcikiIHRpdGxlPSI1NDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTQ0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTQ1XyhudW1iZXIpIiB0aXRsZT0iNTQ1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU0NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU0Nl8obnVtYmVyKSIgdGl0bGU9IjU0NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NDdfKG51bWJlcikiIHRpdGxlPSI1NDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTQ3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTQ4XyhudW1iZXIpIiB0aXRsZT0iNTQ4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU0ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU0OV8obnVtYmVyKSIgdGl0bGU9IjU0OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTUwXyhudW1iZXIpIiB0aXRsZT0iNTUwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU1MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1MV8obnVtYmVyKSIgdGl0bGU9IjU1MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NTJfKG51bWJlcikiIHRpdGxlPSI1NTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTUzXyhudW1iZXIpIiB0aXRsZT0iNTUzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU1MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1NF8obnVtYmVyKSIgdGl0bGU9IjU1NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NTVfKG51bWJlcikiIHRpdGxlPSI1NTUgKG51bWJlcikiPjU1NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1Nl8obnVtYmVyKSIgdGl0bGU9IjU1NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NTdfKG51bWJlcikiIHRpdGxlPSI1NTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTU3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTU4XyhudW1iZXIpIiB0aXRsZT0iNTU4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU1ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1OV8obnVtYmVyKSIgdGl0bGU9IjU1OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81NjBfKG51bWJlcikiIHRpdGxlPSI1NjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTYwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTYxXyhudW1iZXIpIiB0aXRsZT0iNTYxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU2MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU2Ml8obnVtYmVyKSIgdGl0bGU9IjU2MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NjNfKG51bWJlcikiIHRpdGxlPSI1NjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTYzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTY0XyhudW1iZXIpIiB0aXRsZT0iNTY0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU2NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU2NV8obnVtYmVyKSIgdGl0bGU9IjU2NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NjZfKG51bWJlcikiIHRpdGxlPSI1NjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTY2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTY3XyhudW1iZXIpIiB0aXRsZT0iNTY3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU2NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU2OF8obnVtYmVyKSIgdGl0bGU9IjU2OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Njg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NjlfKG51bWJlcikiIHRpdGxlPSI1NjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTY5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU3MF8obnVtYmVyKSIgdGl0bGU9IjU3MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NzFfKG51bWJlcikiIHRpdGxlPSI1NzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTcxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTcyXyhudW1iZXIpIiB0aXRsZT0iNTcyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU3MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU3M18obnVtYmVyKSIgdGl0bGU9IjU3MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NzRfKG51bWJlcikiIHRpdGxlPSI1NzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTc0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTc1XyhudW1iZXIpIiB0aXRsZT0iNTc1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU3NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU3Nl8obnVtYmVyKSIgdGl0bGU9IjU3NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NzdfKG51bWJlcikiIHRpdGxlPSI1NzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTc3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTc4XyhudW1iZXIpIiB0aXRsZT0iNTc4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU3ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU3OV8obnVtYmVyKSIgdGl0bGU9IjU3OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Nzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81ODBfKG51bWJlcikiIHRpdGxlPSI1ODAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTgwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTgxXyhudW1iZXIpIiB0aXRsZT0iNTgxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU4MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU4Ml8obnVtYmVyKSIgdGl0bGU9IjU4MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41ODI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81ODNfKG51bWJlcikiIHRpdGxlPSI1ODMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTgzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTg0XyhudW1iZXIpIiB0aXRsZT0iNTg0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU4NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU4NV8obnVtYmVyKSIgdGl0bGU9IjU4NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41ODU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81ODZfKG51bWJlcikiIHRpdGxlPSI1ODYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTg2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTg3XyhudW1iZXIpIiB0aXRsZT0iNTg3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU4NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU4OF8obnVtYmVyKSIgdGl0bGU9IjU4OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41ODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81ODlfKG51bWJlcikiIHRpdGxlPSI1ODkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTg5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5MF8obnVtYmVyKSIgdGl0bGU9IjU5MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41OTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81OTFfKG51bWJlcikiIHRpdGxlPSI1OTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTkxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTkyXyhudW1iZXIpIiB0aXRsZT0iNTkyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU5MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5M18obnVtYmVyKSIgdGl0bGU9IjU5MyAobnVtYmVyKSI+NTkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTk0XyhudW1iZXIpIiB0aXRsZT0iNTk0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU5NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5NV8obnVtYmVyKSIgdGl0bGU9IjU5NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41OTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81OTZfKG51bWJlcikiIHRpdGxlPSI1OTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTk3XyhudW1iZXIpIiB0aXRsZT0iNTk3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU5NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5OF8obnVtYmVyKSIgdGl0bGU9IjU5OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41OTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81OTlfKG51bWJlcikiIHRpdGxlPSI1OTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQgaGxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij48L2Rpdj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtzIGNvbGxhcHNpYmxlIGNvbGxhcHNlZCBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJib3JkZXItc3BhY2luZzowOyI+Cis8dGJvZHk+PHRyPgorPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJuYXZib3gtdGl0bGUiIGNvbHNwYW49IjIiPjxzcGFuIHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjZlbTsiPiZuYnNwOzwvc3Bhbj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJlZj0iL3dpa2kvNjAwXyhudW1iZXIpIiB0aXRsZT0iNjAwIChudW1iZXIpIj42MDBzPC9hPjwvZGl2PgorPC90aD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYwMF8obnVtYmVyKSIgdGl0bGU9IjYwMCAobnVtYmVyKSI+NjAwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjAxXyhudW1iZXIpIiB0aXRsZT0iNjAxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYwMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYwMl8obnVtYmVyKSIgdGl0bGU9IjYwMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MDNfKG51bWJlcikiIHRpdGxlPSI2MDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjAzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjA0XyhudW1iZXIpIiB0aXRsZT0iNjA0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYwNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYwNV8obnVtYmVyKSIgdGl0bGU9IjYwNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MDZfKG51bWJlcikiIHRpdGxlPSI2MDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjA2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjA3XyhudW1iZXIpIiB0aXRsZT0iNjA3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYwNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYwOF8obnVtYmVyKSIgdGl0bGU9IjYwOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MDlfKG51bWJlcikiIHRpdGxlPSI2MDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjA5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxMF8obnVtYmVyKSIgdGl0bGU9IjYxMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MTFfKG51bWJlcikiIHRpdGxlPSI2MTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjEyXyhudW1iZXIpIiB0aXRsZT0iNjEyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYxMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxM18obnVtYmVyKSIgdGl0bGU9IjYxMyAobnVtYmVyKSI+NjEzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjE0XyhudW1iZXIpIiB0aXRsZT0iNjE0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYxNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxNV8obnVtYmVyKSIgdGl0bGU9IjYxNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MTZfKG51bWJlcikiIHRpdGxlPSI2MTYgKG51bWJlcikiPjYxNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxN18obnVtYmVyKSIgdGl0bGU9IjYxNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MThfKG51bWJlcikiIHRpdGxlPSI2MTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjE5XyhudW1iZXIpIiB0aXRsZT0iNjE5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYxOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyMF8obnVtYmVyKSIgdGl0bGU9IjYyMCAobnVtYmVyKSI+NjIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjIxXyhudW1iZXIpIiB0aXRsZT0iNjIxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyMl8obnVtYmVyKSIgdGl0bGU9IjYyMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MjNfKG51bWJlcikiIHRpdGxlPSI2MjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjI0XyhudW1iZXIpIiB0aXRsZT0iNjI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyNV8obnVtYmVyKSIgdGl0bGU9IjYyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MjZfKG51bWJlcikiIHRpdGxlPSI2MjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjI3XyhudW1iZXIpIiB0aXRsZT0iNjI3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyOF8obnVtYmVyKSIgdGl0bGU9IjYyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Mjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MjlfKG51bWJlcikiIHRpdGxlPSI2MjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYzMF8obnVtYmVyKSIgdGl0bGU9IjYzMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MzFfKG51bWJlcikiIHRpdGxlPSI2MzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjMyXyhudW1iZXIpIiB0aXRsZT0iNjMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYzM18obnVtYmVyKSIgdGl0bGU9IjYzMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MzRfKG51bWJlcikiIHRpdGxlPSI2MzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjM1XyhudW1iZXIpIiB0aXRsZT0iNjM1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYzNl8obnVtYmVyKSIgdGl0bGU9IjYzNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MzdfKG51bWJlcikiIHRpdGxlPSI2MzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjM4XyhudW1iZXIpIiB0aXRsZT0iNjM4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYzODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYzOV8obnVtYmVyKSIgdGl0bGU9IjYzOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Mzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82NDBfKG51bWJlcikiIHRpdGxlPSI2NDAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjQxXyhudW1iZXIpIiB0aXRsZT0iNjQxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY0MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY0Ml8obnVtYmVyKSIgdGl0bGU9IjY0MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NDNfKG51bWJlcikiIHRpdGxlPSI2NDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjQ0XyhudW1iZXIpIiB0aXRsZT0iNjQ0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY0NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY0NV8obnVtYmVyKSIgdGl0bGU9IjY0NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NDZfKG51bWJlcikiIHRpdGxlPSI2NDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjQ3XyhudW1iZXIpIiB0aXRsZT0iNjQ3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY0NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY0OF8obnVtYmVyKSIgdGl0bGU9IjY0OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NDlfKG51bWJlcikiIHRpdGxlPSI2NDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1MF8obnVtYmVyKSIgdGl0bGU9IjY1MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NTFfKG51bWJlcikiIHRpdGxlPSI2NTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjUxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjUyXyhudW1iZXIpIiB0aXRsZT0iNjUyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY1MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1M18obnVtYmVyKSIgdGl0bGU9IjY1MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NTRfKG51bWJlcikiIHRpdGxlPSI2NTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjU0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjU1XyhudW1iZXIpIiB0aXRsZT0iNjU1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY1NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1Nl8obnVtYmVyKSIgdGl0bGU9IjY1NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NTdfKG51bWJlcikiIHRpdGxlPSI2NTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjU3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjU4XyhudW1iZXIpIiB0aXRsZT0iNjU4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY1ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1OV8obnVtYmVyKSIgdGl0bGU9IjY1OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82NjBfKG51bWJlcikiIHRpdGxlPSI2NjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjYwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjYxXyhudW1iZXIpIiB0aXRsZT0iNjYxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY2MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY2Ml8obnVtYmVyKSIgdGl0bGU9IjY2MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NjNfKG51bWJlcikiIHRpdGxlPSI2NjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjYzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjY0XyhudW1iZXIpIiB0aXRsZT0iNjY0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY2NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY2NV8obnVtYmVyKSIgdGl0bGU9IjY2NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NjZfKG51bWJlcikiIHRpdGxlPSI2NjYgKG51bWJlcikiPjY2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY2N18obnVtYmVyKSIgdGl0bGU9IjY2NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Njc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NjhfKG51bWJlcikiIHRpdGxlPSI2NjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjY5XyhudW1iZXIpIiB0aXRsZT0iNjY5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY2OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82NzBfKG51bWJlcikiIHRpdGxlPSI2NzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjcwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjcxXyhudW1iZXIpIiB0aXRsZT0iNjcxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY3MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY3Ml8obnVtYmVyKSIgdGl0bGU9IjY3MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NzNfKG51bWJlcikiIHRpdGxlPSI2NzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjczPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjc0XyhudW1iZXIpIiB0aXRsZT0iNjc0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY3NV8obnVtYmVyKSIgdGl0bGU9IjY3NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NzZfKG51bWJlcikiIHRpdGxlPSI2NzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njc2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjc3XyhudW1iZXIpIiB0aXRsZT0iNjc3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY3NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY3OF8obnVtYmVyKSIgdGl0bGU9IjY3OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Nzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NzlfKG51bWJlcikiIHRpdGxlPSI2NzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njc5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjgwXyhudW1iZXIpIiB0aXRsZT0iNjgwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY4MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4MV8obnVtYmVyKSIgdGl0bGU9IjY4MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42ODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82ODJfKG51bWJlcikiIHRpdGxlPSI2ODIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjgyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjgzXyhudW1iZXIpIiB0aXRsZT0iNjgzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4NF8obnVtYmVyKSIgdGl0bGU9IjY4NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42ODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82ODVfKG51bWJlcikiIHRpdGxlPSI2ODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjg2XyhudW1iZXIpIiB0aXRsZT0iNjg2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4N18obnVtYmVyKSIgdGl0bGU9IjY4NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42ODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82ODhfKG51bWJlcikiIHRpdGxlPSI2ODggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjg5XyhudW1iZXIpIiB0aXRsZT0iNjg5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82OTBfKG51bWJlcikiIHRpdGxlPSI2OTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjkxXyhudW1iZXIpIiB0aXRsZT0iNjkxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY5MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY5Ml8obnVtYmVyKSIgdGl0bGU9IjY5MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42OTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82OTNfKG51bWJlcikiIHRpdGxlPSI2OTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjk0XyhudW1iZXIpIiB0aXRsZT0iNjk0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY5NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY5NV8obnVtYmVyKSIgdGl0bGU9IjY5NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42OTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82OTZfKG51bWJlcikiIHRpdGxlPSI2OTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjk3XyhudW1iZXIpIiB0aXRsZT0iNjk3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY5NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY5OF8obnVtYmVyKSIgdGl0bGU9IjY5OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42OTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82OTlfKG51bWJlcikiIHRpdGxlPSI2OTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIGhsaXN0IiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+PC9kaXY+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSBjb2xsYXBzZWQgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDsiPgorPHRib2R5Pjx0cj4KKzx0aCBzY29wZT0iY29sIiBjbGFzcz0ibmF2Ym94LXRpdGxlIiBjb2xzcGFuPSIyIj48c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo2ZW07Ij4mbmJzcDs8L3NwYW4+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEwJTsiPjxhIGhyZWY9Ii93aWtpLzcwMF8obnVtYmVyKSIgdGl0bGU9IjcwMCAobnVtYmVyKSI+NzAwczwvYT48L2Rpdj4KKzwvdGg+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS83MDBfKG51bWJlcikiIHRpdGxlPSI3MDAgKG51bWJlcikiPjcwMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcwMV8obnVtYmVyKSIgdGl0bGU9IjcwMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MDJfKG51bWJlcikiIHRpdGxlPSI3MDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzAyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzAzXyhudW1iZXIpIiB0aXRsZT0iNzAzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcwMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcwNF8obnVtYmVyKSIgdGl0bGU9IjcwNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MDVfKG51bWJlcikiIHRpdGxlPSI3MDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzA1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzA2XyhudW1iZXIpIiB0aXRsZT0iNzA2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcwNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcwN18obnVtYmVyKSIgdGl0bGU9IjcwNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MDhfKG51bWJlcikiIHRpdGxlPSI3MDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzA4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzA5XyhudW1iZXIpIiB0aXRsZT0iNzA5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcwOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS83MTBfKG51bWJlcikiIHRpdGxlPSI3MTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzEwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzExXyhudW1iZXIpIiB0aXRsZT0iNzExIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcxMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcxMl8obnVtYmVyKSIgdGl0bGU9IjcxMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MTNfKG51bWJlcikiIHRpdGxlPSI3MTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzEzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzE0XyhudW1iZXIpIiB0aXRsZT0iNzE0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcxNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcxNV8obnVtYmVyKSIgdGl0bGU9IjcxNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MTZfKG51bWJlcikiIHRpdGxlPSI3MTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzE2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzE3XyhudW1iZXIpIiB0aXRsZT0iNzE3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcxNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcxOF8obnVtYmVyKSIgdGl0bGU9IjcxOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MTlfKG51bWJlcikiIHRpdGxlPSI3MTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzE5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzIwXyhudW1iZXIpIiB0aXRsZT0iNzIwIChudW1iZXIpIj43MjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MjFfKG51bWJlcikiIHRpdGxlPSI3MjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzIyXyhudW1iZXIpIiB0aXRsZT0iNzIyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcyMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyM18obnVtYmVyKSIgdGl0bGU9IjcyMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MjRfKG51bWJlcikiIHRpdGxlPSI3MjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzI0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzI1XyhudW1iZXIpIiB0aXRsZT0iNzI1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcyNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyNl8obnVtYmVyKSIgdGl0bGU9IjcyNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MjdfKG51bWJlcikiIHRpdGxlPSI3MjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzI3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzI4XyhudW1iZXIpIiB0aXRsZT0iNzI4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcyODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyOV8obnVtYmVyKSIgdGl0bGU9IjcyOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43Mjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzMwXyhudW1iZXIpIiB0aXRsZT0iNzMwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjczMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzczMV8obnVtYmVyKSIgdGl0bGU9IjczMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MzJfKG51bWJlcikiIHRpdGxlPSI3MzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzMyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzMzXyhudW1iZXIpIiB0aXRsZT0iNzMzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjczMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzczNF8obnVtYmVyKSIgdGl0bGU9IjczNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MzVfKG51bWJlcikiIHRpdGxlPSI3MzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzM1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzM2XyhudW1iZXIpIiB0aXRsZT0iNzM2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjczNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzczN18obnVtYmVyKSIgdGl0bGU9IjczNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43Mzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MzhfKG51bWJlcikiIHRpdGxlPSI3MzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzM4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzM5XyhudW1iZXIpIiB0aXRsZT0iNzM5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjczOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0MF8obnVtYmVyKSIgdGl0bGU9Ijc0MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NDFfKG51bWJlcikiIHRpdGxlPSI3NDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzQxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzQyXyhudW1iZXIpIiB0aXRsZT0iNzQyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0M18obnVtYmVyKSIgdGl0bGU9Ijc0MyAobnVtYmVyKSI+NzQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzQ0XyhudW1iZXIpIiB0aXRsZT0iNzQ0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc0NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0NV8obnVtYmVyKSIgdGl0bGU9Ijc0NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NDZfKG51bWJlcikiIHRpdGxlPSI3NDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzQ3XyhudW1iZXIpIiB0aXRsZT0iNzQ3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc0NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0OF8obnVtYmVyKSIgdGl0bGU9Ijc0OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NDlfKG51bWJlcikiIHRpdGxlPSI3NDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1MF8obnVtYmVyKSIgdGl0bGU9Ijc1MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NTFfKG51bWJlcikiIHRpdGxlPSI3NTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzUxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzUyXyhudW1iZXIpIiB0aXRsZT0iNzUyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc1MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1M18obnVtYmVyKSIgdGl0bGU9Ijc1MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NTRfKG51bWJlcikiIHRpdGxlPSI3NTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzU0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzU1XyhudW1iZXIpIiB0aXRsZT0iNzU1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc1NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1Nl8obnVtYmVyKSIgdGl0bGU9Ijc1NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NTdfKG51bWJlcikiIHRpdGxlPSI3NTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzU3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzU4XyhudW1iZXIpIiB0aXRsZT0iNzU4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc1ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1OV8obnVtYmVyKSIgdGl0bGU9Ijc1OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS83NjBfKG51bWJlcikiIHRpdGxlPSI3NjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzYwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzYxXyhudW1iZXIpIiB0aXRsZT0iNzYxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc2MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc2Ml8obnVtYmVyKSIgdGl0bGU9Ijc2MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NjNfKG51bWJlcikiIHRpdGxlPSI3NjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzYzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzY0XyhudW1iZXIpIiB0aXRsZT0iNzY0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc2NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc2NV8obnVtYmVyKSIgdGl0bGU9Ijc2NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NjZfKG51bWJlcikiIHRpdGxlPSI3NjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzY2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzY3XyhudW1iZXIpIiB0aXRsZT0iNzY3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc2NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc2OF8obnVtYmVyKSIgdGl0bGU9Ijc2OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43Njg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NjlfKG51bWJlcikiIHRpdGxlPSI3NjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzY5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc3MF8obnVtYmVyKSIgdGl0bGU9Ijc3MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NzFfKG51bWJlcikiIHRpdGxlPSI3NzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzcxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzcyXyhudW1iZXIpIiB0aXRsZT0iNzcyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc3MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc3M18obnVtYmVyKSIgdGl0bGU9Ijc3MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NzRfKG51bWJlcikiIHRpdGxlPSI3NzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzc0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzc1XyhudW1iZXIpIiB0aXRsZT0iNzc1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc3NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc3Nl8obnVtYmVyKSIgdGl0bGU9Ijc3NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NzdfKG51bWJlcikiIHRpdGxlPSI3NzcgKG51bWJlcikiPjc3NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc3OF8obnVtYmVyKSIgdGl0bGU9Ijc3OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43Nzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NzlfKG51bWJlcikiIHRpdGxlPSI3NzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzc5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzgwXyhudW1iZXIpIiB0aXRsZT0iNzgwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc4MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4MV8obnVtYmVyKSIgdGl0bGU9Ijc4MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43ODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83ODJfKG51bWJlcikiIHRpdGxlPSI3ODIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzgyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzgzXyhudW1iZXIpIiB0aXRsZT0iNzgzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4NF8obnVtYmVyKSIgdGl0bGU9Ijc4NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43ODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83ODVfKG51bWJlcikiIHRpdGxlPSI3ODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzg2XyhudW1iZXIpIiB0aXRsZT0iNzg2IChudW1iZXIpIj43ODY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83ODdfKG51bWJlcikiIHRpdGxlPSI3ODcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzg3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzg4XyhudW1iZXIpIiB0aXRsZT0iNzg4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc4ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4OV8obnVtYmVyKSIgdGl0bGU9Ijc4OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43ODk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzkwXyhudW1iZXIpIiB0aXRsZT0iNzkwIChudW1iZXIpIj43OTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83OTFfKG51bWJlcikiIHRpdGxlPSI3OTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzkxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzkyXyhudW1iZXIpIiB0aXRsZT0iNzkyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc5MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc5M18obnVtYmVyKSIgdGl0bGU9Ijc5MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43OTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83OTRfKG51bWJlcikiIHRpdGxlPSI3OTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzk0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzk1XyhudW1iZXIpIiB0aXRsZT0iNzk1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc5NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc5Nl8obnVtYmVyKSIgdGl0bGU9Ijc5NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43OTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83OTdfKG51bWJlcikiIHRpdGxlPSI3OTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzk3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzk4XyhudW1iZXIpIiB0aXRsZT0iNzk4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc5ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc5OV8obnVtYmVyKSIgdGl0bGU9Ijc5OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43OTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCBobGlzdCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPjwvZGl2PgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93cmFwbGlua3MgY29sbGFwc2libGUgY29sbGFwc2VkIG5hdmJveC1zdWJncm91cCIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7Ij4KKzx0Ym9keT48dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+PHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6NmVtOyI+Jm5ic3A7PC9zcGFuPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS84MDBfKG51bWJlcikiIHRpdGxlPSI4MDAgKG51bWJlcikiPjgwMHM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODAwXyhudW1iZXIpIiB0aXRsZT0iODAwIChudW1iZXIpIj44MDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MDFfKG51bWJlcikiIHRpdGxlPSI4MDEgKG51bWJlcikiPjgwMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgwMl8obnVtYmVyKSIgdGl0bGU9IjgwMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MDNfKG51bWJlcikiIHRpdGxlPSI4MDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODAzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODA0XyhudW1iZXIpIiB0aXRsZT0iODA0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgwNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgwNV8obnVtYmVyKSIgdGl0bGU9IjgwNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MDZfKG51bWJlcikiIHRpdGxlPSI4MDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODA2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODA3XyhudW1iZXIpIiB0aXRsZT0iODA3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgwNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgwOF8obnVtYmVyKSIgdGl0bGU9IjgwOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MDlfKG51bWJlcikiIHRpdGxlPSI4MDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODA5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxMF8obnVtYmVyKSIgdGl0bGU9IjgxMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MTFfKG51bWJlcikiIHRpdGxlPSI4MTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODEyXyhudW1iZXIpIiB0aXRsZT0iODEyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgxMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxM18obnVtYmVyKSIgdGl0bGU9IjgxMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MTRfKG51bWJlcikiIHRpdGxlPSI4MTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODE0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODE1XyhudW1iZXIpIiB0aXRsZT0iODE1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgxNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxNl8obnVtYmVyKSIgdGl0bGU9IjgxNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MTdfKG51bWJlcikiIHRpdGxlPSI4MTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODE4XyhudW1iZXIpIiB0aXRsZT0iODE4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgxODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxOV8obnVtYmVyKSIgdGl0bGU9IjgxOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS84MjBfKG51bWJlcikiIHRpdGxlPSI4MjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODIxXyhudW1iZXIpIiB0aXRsZT0iODIxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgyMl8obnVtYmVyKSIgdGl0bGU9IjgyMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MjNfKG51bWJlcikiIHRpdGxlPSI4MjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODI0XyhudW1iZXIpIiB0aXRsZT0iODI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgyNV8obnVtYmVyKSIgdGl0bGU9IjgyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MjZfKG51bWJlcikiIHRpdGxlPSI4MjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODI3XyhudW1iZXIpIiB0aXRsZT0iODI3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgyOF8obnVtYmVyKSIgdGl0bGU9IjgyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Mjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MjlfKG51bWJlcikiIHRpdGxlPSI4MjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzMF8obnVtYmVyKSIgdGl0bGU9IjgzMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MzFfKG51bWJlcikiIHRpdGxlPSI4MzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODMyXyhudW1iZXIpIiB0aXRsZT0iODMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzM18obnVtYmVyKSIgdGl0bGU9IjgzMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MzRfKG51bWJlcikiIHRpdGxlPSI4MzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODM1XyhudW1iZXIpIiB0aXRsZT0iODM1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzNl8obnVtYmVyKSIgdGl0bGU9IjgzNiAobnVtYmVyKSI+ODM2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODM3XyhudW1iZXIpIiB0aXRsZT0iODM3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgzNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzOF8obnVtYmVyKSIgdGl0bGU9IjgzOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Mzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MzlfKG51bWJlcikiIHRpdGxlPSI4MzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODM5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODQwXyhudW1iZXIpIiB0aXRsZT0iODQwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg0MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0MV8obnVtYmVyKSIgdGl0bGU9Ijg0MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NDJfKG51bWJlcikiIHRpdGxlPSI4NDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODQyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODQzXyhudW1iZXIpIiB0aXRsZT0iODQzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg0MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0NF8obnVtYmVyKSIgdGl0bGU9Ijg0NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NDVfKG51bWJlcikiIHRpdGxlPSI4NDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODQ1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODQ2XyhudW1iZXIpIiB0aXRsZT0iODQ2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg0NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0N18obnVtYmVyKSIgdGl0bGU9Ijg0NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NDhfKG51bWJlcikiIHRpdGxlPSI4NDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODQ4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODQ5XyhudW1iZXIpIiB0aXRsZT0iODQ5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg0OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS84NTBfKG51bWJlcikiIHRpdGxlPSI4NTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODUwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODUxXyhudW1iZXIpIiB0aXRsZT0iODUxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg1MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg1Ml8obnVtYmVyKSIgdGl0bGU9Ijg1MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NTNfKG51bWJlcikiIHRpdGxlPSI4NTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODU0XyhudW1iZXIpIiB0aXRsZT0iODU0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg1NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg1NV8obnVtYmVyKSIgdGl0bGU9Ijg1NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NTZfKG51bWJlcikiIHRpdGxlPSI4NTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODU3XyhudW1iZXIpIiB0aXRsZT0iODU3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg1OF8obnVtYmVyKSIgdGl0bGU9Ijg1OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NTlfKG51bWJlcikiIHRpdGxlPSI4NTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODYwXyhudW1iZXIpIiB0aXRsZT0iODYwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg2MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2MV8obnVtYmVyKSIgdGl0bGU9Ijg2MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NjJfKG51bWJlcikiIHRpdGxlPSI4NjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODYyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODYzXyhudW1iZXIpIiB0aXRsZT0iODYzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2NF8obnVtYmVyKSIgdGl0bGU9Ijg2NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NjVfKG51bWJlcikiIHRpdGxlPSI4NjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODY2XyhudW1iZXIpIiB0aXRsZT0iODY2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2N18obnVtYmVyKSIgdGl0bGU9Ijg2NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Njc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NjhfKG51bWJlcikiIHRpdGxlPSI4NjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODY5XyhudW1iZXIpIiB0aXRsZT0iODY5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg2OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS84NzBfKG51bWJlcikiIHRpdGxlPSI4NzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODcwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODcxXyhudW1iZXIpIiB0aXRsZT0iODcxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg3MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg3Ml8obnVtYmVyKSIgdGl0bGU9Ijg3MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NzNfKG51bWJlcikiIHRpdGxlPSI4NzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODczPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODc0XyhudW1iZXIpIiB0aXRsZT0iODc0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg3NV8obnVtYmVyKSIgdGl0bGU9Ijg3NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NzZfKG51bWJlcikiIHRpdGxlPSI4NzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODc2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODc3XyhudW1iZXIpIiB0aXRsZT0iODc3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg3NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg3OF8obnVtYmVyKSIgdGl0bGU9Ijg3OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Nzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NzlfKG51bWJlcikiIHRpdGxlPSI4NzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODc5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODgwXyhudW1iZXIpIiB0aXRsZT0iODgwIChudW1iZXIpIj44ODA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84ODFfKG51bWJlcikiIHRpdGxlPSI4ODEgKG51bWJlcikiPjg4MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg4Ml8obnVtYmVyKSIgdGl0bGU9Ijg4MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44ODI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84ODNfKG51bWJlcikiIHRpdGxlPSI4ODMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODgzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODg0XyhudW1iZXIpIiB0aXRsZT0iODg0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg4NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg4NV8obnVtYmVyKSIgdGl0bGU9Ijg4NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44ODU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84ODZfKG51bWJlcikiIHRpdGxlPSI4ODYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODg2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODg3XyhudW1iZXIpIiB0aXRsZT0iODg3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg4NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg4OF8obnVtYmVyKSIgdGl0bGU9Ijg4OCAobnVtYmVyKSI+ODg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODg5XyhudW1iZXIpIiB0aXRsZT0iODg5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS84OTBfKG51bWJlcikiIHRpdGxlPSI4OTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODkxXyhudW1iZXIpIiB0aXRsZT0iODkxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg5MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg5Ml8obnVtYmVyKSIgdGl0bGU9Ijg5MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44OTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OTNfKG51bWJlcikiIHRpdGxlPSI4OTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODk0XyhudW1iZXIpIiB0aXRsZT0iODk0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg5NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg5NV8obnVtYmVyKSIgdGl0bGU9Ijg5NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44OTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OTZfKG51bWJlcikiIHRpdGxlPSI4OTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODk3XyhudW1iZXIpIiB0aXRsZT0iODk3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg5NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg5OF8obnVtYmVyKSIgdGl0bGU9Ijg5OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44OTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OTlfKG51bWJlcikiIHRpdGxlPSI4OTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIGhsaXN0IiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+PC9kaXY+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSBjb2xsYXBzZWQgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDsiPgorPHRib2R5Pjx0cj4KKzx0aCBzY29wZT0iY29sIiBjbGFzcz0ibmF2Ym94LXRpdGxlIiBjb2xzcGFuPSIyIj48c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo2ZW07Ij4mbmJzcDs8L3NwYW4+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEwJTsiPjxhIGhyZWY9Ii93aWtpLzkwMF8obnVtYmVyKSIgdGl0bGU9IjkwMCAobnVtYmVyKSI+OTAwczwvYT48L2Rpdj4KKzwvdGg+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85MDBfKG51bWJlcikiIHRpdGxlPSI5MDAgKG51bWJlcikiPjkwMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkwMV8obnVtYmVyKSIgdGl0bGU9IjkwMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MDJfKG51bWJlcikiIHRpdGxlPSI5MDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTAyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTAzXyhudW1iZXIpIiB0aXRsZT0iOTAzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkwMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkwNF8obnVtYmVyKSIgdGl0bGU9IjkwNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MDVfKG51bWJlcikiIHRpdGxlPSI5MDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTA1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTA2XyhudW1iZXIpIiB0aXRsZT0iOTA2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkwNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkwN18obnVtYmVyKSIgdGl0bGU9IjkwNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MDhfKG51bWJlcikiIHRpdGxlPSI5MDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTA4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTA5XyhudW1iZXIpIiB0aXRsZT0iOTA5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkwOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85MTBfKG51bWJlcikiIHRpdGxlPSI5MTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTEwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTExXyhudW1iZXIpIiB0aXRsZT0iOTExIChudW1iZXIpIj45MTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MTJfKG51bWJlcikiIHRpdGxlPSI5MTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTEyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTEzXyhudW1iZXIpIiB0aXRsZT0iOTEzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkxMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkxNF8obnVtYmVyKSIgdGl0bGU9IjkxNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MTVfKG51bWJlcikiIHRpdGxlPSI5MTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTE2XyhudW1iZXIpIiB0aXRsZT0iOTE2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkxNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkxN18obnVtYmVyKSIgdGl0bGU9IjkxNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MThfKG51bWJlcikiIHRpdGxlPSI5MTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTE5XyhudW1iZXIpIiB0aXRsZT0iOTE5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkxOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkyMF8obnVtYmVyKSIgdGl0bGU9IjkyMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MjFfKG51bWJlcikiIHRpdGxlPSI5MjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTIyXyhudW1iZXIpIiB0aXRsZT0iOTIyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkyMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkyM18obnVtYmVyKSIgdGl0bGU9IjkyMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MjRfKG51bWJlcikiIHRpdGxlPSI5MjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTI0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTI1XyhudW1iZXIpIiB0aXRsZT0iOTI1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkyNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkyNl8obnVtYmVyKSIgdGl0bGU9IjkyNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MjdfKG51bWJlcikiIHRpdGxlPSI5MjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTI3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTI4XyhudW1iZXIpIiB0aXRsZT0iOTI4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkyODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkyOV8obnVtYmVyKSIgdGl0bGU9IjkyOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Mjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTMwXyhudW1iZXIpIiB0aXRsZT0iOTMwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkzMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzMV8obnVtYmVyKSIgdGl0bGU9IjkzMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MzJfKG51bWJlcikiIHRpdGxlPSI5MzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTMyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTMzXyhudW1iZXIpIiB0aXRsZT0iOTMzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkzMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzNF8obnVtYmVyKSIgdGl0bGU9IjkzNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MzVfKG51bWJlcikiIHRpdGxlPSI5MzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTM1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTM2XyhudW1iZXIpIiB0aXRsZT0iOTM2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkzNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzN18obnVtYmVyKSIgdGl0bGU9IjkzNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Mzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MzhfKG51bWJlcikiIHRpdGxlPSI5MzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTM4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTM5XyhudW1iZXIpIiB0aXRsZT0iOTM5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkzOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0MF8obnVtYmVyKSIgdGl0bGU9Ijk0MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NDFfKG51bWJlcikiIHRpdGxlPSI5NDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTQxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTQyXyhudW1iZXIpIiB0aXRsZT0iOTQyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0M18obnVtYmVyKSIgdGl0bGU9Ijk0MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NDRfKG51bWJlcikiIHRpdGxlPSI5NDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTQ0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTQ1XyhudW1iZXIpIiB0aXRsZT0iOTQ1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk0NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0Nl8obnVtYmVyKSIgdGl0bGU9Ijk0NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NDdfKG51bWJlcikiIHRpdGxlPSI5NDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTQ3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTQ4XyhudW1iZXIpIiB0aXRsZT0iOTQ4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk0ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0OV8obnVtYmVyKSIgdGl0bGU9Ijk0OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTUwXyhudW1iZXIpIiB0aXRsZT0iOTUwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk1MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk1MV8obnVtYmVyKSIgdGl0bGU9Ijk1MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NTJfKG51bWJlcikiIHRpdGxlPSI5NTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTUzXyhudW1iZXIpIiB0aXRsZT0iOTUzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk1MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk1NF8obnVtYmVyKSIgdGl0bGU9Ijk1NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NTVfKG51bWJlcikiIHRpdGxlPSI5NTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTU1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTU2XyhudW1iZXIpIiB0aXRsZT0iOTU2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk1NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk1N18obnVtYmVyKSIgdGl0bGU9Ijk1NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NThfKG51bWJlcikiIHRpdGxlPSI5NTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTU4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTU5XyhudW1iZXIpIiB0aXRsZT0iOTU5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk1OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2MF8obnVtYmVyKSIgdGl0bGU9Ijk2MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NjFfKG51bWJlcikiIHRpdGxlPSI5NjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTYxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTYyXyhudW1iZXIpIiB0aXRsZT0iOTYyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk2MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2M18obnVtYmVyKSIgdGl0bGU9Ijk2MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NjRfKG51bWJlcikiIHRpdGxlPSI5NjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTY0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTY1XyhudW1iZXIpIiB0aXRsZT0iOTY1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk2NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2Nl8obnVtYmVyKSIgdGl0bGU9Ijk2NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NjdfKG51bWJlcikiIHRpdGxlPSI5NjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTY3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTY4XyhudW1iZXIpIiB0aXRsZT0iOTY4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk2ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2OV8obnVtYmVyKSIgdGl0bGU9Ijk2OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Njk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTcwXyhudW1iZXIpIiB0aXRsZT0iOTcwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk3MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3MV8obnVtYmVyKSIgdGl0bGU9Ijk3MSAobnVtYmVyKSI+OTcxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTcyXyhudW1iZXIpIiB0aXRsZT0iOTcyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk3MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3M18obnVtYmVyKSIgdGl0bGU9Ijk3MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NzRfKG51bWJlcikiIHRpdGxlPSI5NzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTc0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTc1XyhudW1iZXIpIiB0aXRsZT0iOTc1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk3NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3Nl8obnVtYmVyKSIgdGl0bGU9Ijk3NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NzdfKG51bWJlcikiIHRpdGxlPSI5NzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTc3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTc4XyhudW1iZXIpIiB0aXRsZT0iOTc4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk3ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3OV8obnVtYmVyKSIgdGl0bGU9Ijk3OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Nzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85ODBfKG51bWJlcikiIHRpdGxlPSI5ODAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTgwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTgxXyhudW1iZXIpIiB0aXRsZT0iOTgxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk4MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk4Ml8obnVtYmVyKSIgdGl0bGU9Ijk4MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45ODI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85ODNfKG51bWJlcikiIHRpdGxlPSI5ODMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTgzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTg0XyhudW1iZXIpIiB0aXRsZT0iOTg0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk4NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk4NV8obnVtYmVyKSIgdGl0bGU9Ijk4NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45ODU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85ODZfKG51bWJlcikiIHRpdGxlPSI5ODYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTg2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTg3XyhudW1iZXIpIiB0aXRsZT0iOTg3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk4NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk4OF8obnVtYmVyKSIgdGl0bGU9Ijk4OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45ODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85ODlfKG51bWJlcikiIHRpdGxlPSI5ODkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTg5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5MF8obnVtYmVyKSIgdGl0bGU9Ijk5MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45OTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OTFfKG51bWJlcikiIHRpdGxlPSI5OTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTkxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTkyXyhudW1iZXIpIiB0aXRsZT0iOTkyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk5MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5M18obnVtYmVyKSIgdGl0bGU9Ijk5MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45OTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OTRfKG51bWJlcikiIHRpdGxlPSI5OTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTk0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTk1XyhudW1iZXIpIiB0aXRsZT0iOTk1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk5NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5Nl8obnVtYmVyKSIgdGl0bGU9Ijk5NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45OTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OTdfKG51bWJlcikiIHRpdGxlPSI5OTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTk3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTk4XyhudW1iZXIpIiB0aXRsZT0iOTk4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk5ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5OV8obnVtYmVyKSIgdGl0bGU9Ijk5OSAobnVtYmVyKSI+OTk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKzwvdGQ+Cis8L3RyPgorPC90Ym9keT48L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8L3Rib2R5PjwvdGFibGU+Cis8cD48YnI+PC9wPgorPHRhYmxlIGNsYXNzPSJtZXRhZGF0YSBtYm94LXNtYWxsIHBsYWlubGlua3MiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNhYWE7IGJhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTsiPgorPHRib2R5Pjx0cj4KKzx0ZCBjbGFzcz0ibWJveC1pbWFnZSI+PGltZyBhbHQ9IiIgc3JjPSIvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9lbi90aHVtYi80LzRhL0NvbW1vbnMtbG9nby5zdmcvMzBweC1Db21tb25zLWxvZ28uc3ZnLnBuZyIgd2lkdGg9IjMwIiBoZWlnaHQ9IjQwIiBzcmNzZXQ9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL3RodW1iLzQvNGEvQ29tbW9ucy1sb2dvLnN2Zy80NXB4LUNvbW1vbnMtbG9nby5zdmcucG5nIDEuNXgsIC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL3RodW1iLzQvNGEvQ29tbW9ucy1sb2dvLnN2Zy81OXB4LUNvbW1vbnMtbG9nby5zdmcucG5nIDJ4Ij48L3RkPgorPHRkIGNsYXNzPSJtYm94LXRleHQgcGxhaW5saXN0IiBzdHlsZT0iIj5XaWtpbWVkaWEgQ29tbW9ucyBoYXMgbWVkaWEgcmVsYXRlZCB0byA8aT48Yj48YSBocmVmPSIvL2NvbW1vbnMud2lraW1lZGlhLm9yZy93aWtpL0NhdGVnb3J5OjQyXyhudW1iZXIpIiBjbGFzcz0iZXh0aXciIHRpdGxlPSJjb21tb25zOkNhdGVnb3J5OjQyIChudW1iZXIpIj40MiAobnVtYmVyKTwvYT48L2I+PC9pPi48L3RkPgorPC90cj4KKzwvdGJvZHk+PC90YWJsZT4KKworCis8IS0tIAorTmV3UFAgbGltaXQgcmVwb3J0CitQYXJzZWQgYnkgbXcxMDQ3CitDUFUgdGltZSB1c2FnZTogMi44NDQgc2Vjb25kcworUmVhbCB0aW1lIHVzYWdlOiAzLjAyNCBzZWNvbmRzCitQcmVwcm9jZXNzb3IgdmlzaXRlZCBub2RlIGNvdW50OiAzMjc2LzEwMDAwMDAKK1ByZXByb2Nlc3NvciBnZW5lcmF0ZWQgbm9kZSBjb3VudDogMTYwNDYvMTUwMDAwMAorUG9zdOKAkGV4cGFuZCBpbmNsdWRlIHNpemU6IDI2NDU4OS8yMDQ4MDAwIGJ5dGVzCitUZW1wbGF0ZSBhcmd1bWVudCBzaXplOiAyNjg0LzIwNDgwMDAgYnl0ZXMKK0hpZ2hlc3QgZXhwYW5zaW9uIGRlcHRoOiAxMi80MAorRXhwZW5zaXZlIHBhcnNlciBmdW5jdGlvbiBjb3VudDogNy81MDAKK0x1YSB0aW1lIHVzYWdlOiAwLjIzMXMKK0x1YSBtZW1vcnkgdXNhZ2U6IDMuMzQgTUIKKy0tPgorCis8IS0tIFNhdmVkIGluIHBhcnNlciBjYWNoZSB3aXRoIGtleSBlbndpa2k6cGNhY2hlOmlkaGFzaDoxOTExNzgtMCEwITAhIWVuITQhKiBhbmQgdGltZXN0YW1wIDIwMTQwMTI4MTI1ODMyCistLT4KKworPCEtLSBTYXZlZCBpbiBwYXJzZXIgY2FjaGUgd2l0aCBrZXkgZW53aWtpOnN0YWJsZS1wY2FjaGU6aWRoYXNoOjE5MTE3OC0wITAhMCEhZW4hNCEqIGFuZCB0aW1lc3RhbXAgMjAxNDAxMjgxMjU4MzYKKy0tPgorPG5vc2NyaXB0PjxpbWcgc3JjPSIvL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGVjaWFsOkNlbnRyYWxBdXRvTG9naW4vc3RhcnQ/dHlwZT0xeDEiIGFsdD0iIiB0aXRsZT0iIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBzdHlsZT0iYm9yZGVyOiBub25lOyBwb3NpdGlvbjogYWJzb2x1dGU7IiAvPjwvbm9zY3JpcHQ+PC9kaXY+CQkJCQkJCQk8ZGl2IGNsYXNzPSJwcmludGZvb3RlciI+CitSZXRyaWV2ZWQgZnJvbSAiPGEgaHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO29sZGlkPTU5Mjc4MjE3MyI+aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO29sZGlkPTU5Mjc4MjE3MzwvYT4iCQkJCTwvZGl2PgorPGRpdiBpZD0iY2F0bGlua3MiIGNsYXNzPSJjYXRsaW5rcyI+PGRpdiBpZD0ibXctbm9ybWFsLWNhdGxpbmtzIiBjbGFzcz0ibXctbm9ybWFsLWNhdGxpbmtzIj48YSBocmVmPSIvd2lraS9IZWxwOkNhdGVnb3J5IiB0aXRsZT0iSGVscDpDYXRlZ29yeSI+Q2F0ZWdvcmllczwvYT46IDx1bD48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6SW50ZWdlcnMiIHRpdGxlPSJDYXRlZ29yeTpJbnRlZ2VycyI+SW50ZWdlcnM8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgaWQ9Im13LWhpZGRlbi1jYXRsaW5rcyIgY2xhc3M9Im13LWhpZGRlbi1jYXRsaW5rcyBtdy1oaWRkZW4tY2F0cy1oaWRkZW4iPkhpZGRlbiBjYXRlZ29yaWVzOiA8dWw+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5OkNTMV9lcnJvcnM6X2RhdGVzIiB0aXRsZT0iQ2F0ZWdvcnk6Q1MxIGVycm9yczogZGF0ZXMiPkNTMSBlcnJvcnM6IGRhdGVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5Oldpa2lwZWRpYV9wZW5kaW5nX2NoYW5nZXNfcHJvdGVjdGVkX3BhZ2VzXyhsZXZlbF8xKSIgdGl0bGU9IkNhdGVnb3J5Oldpa2lwZWRpYSBwZW5kaW5nIGNoYW5nZXMgcHJvdGVjdGVkIHBhZ2VzIChsZXZlbCAxKSI+V2lraXBlZGlhIHBlbmRpbmcgY2hhbmdlcyBwcm90ZWN0ZWQgcGFnZXMgKGxldmVsIDEpPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5Oldpa2lwZWRpYV9wcm90ZWN0ZWRfcGFnZXNfd2l0aG91dF9leHBpcnkiIHRpdGxlPSJDYXRlZ29yeTpXaWtpcGVkaWEgcHJvdGVjdGVkIHBhZ2VzIHdpdGhvdXQgZXhwaXJ5Ij5XaWtpcGVkaWEgcHJvdGVjdGVkIHBhZ2VzIHdpdGhvdXQgZXhwaXJ5PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5OkFydGljbGVzX25lZWRpbmdfYWRkaXRpb25hbF9yZWZlcmVuY2VzX2Zyb21fRmVicnVhcnlfMjAxMSIgdGl0bGU9IkNhdGVnb3J5OkFydGljbGVzIG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVuY2VzIGZyb20gRmVicnVhcnkgMjAxMSI+QXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMgZnJvbSBGZWJydWFyeSAyMDExPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5OkFsbF9hcnRpY2xlc19uZWVkaW5nX2FkZGl0aW9uYWxfcmVmZXJlbmNlcyIgdGl0bGU9IkNhdGVnb3J5OkFsbCBhcnRpY2xlcyBuZWVkaW5nIGFkZGl0aW9uYWwgcmVmZXJlbmNlcyI+QWxsIGFydGljbGVzIG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVuY2VzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5OkFsbF9hcnRpY2xlc193aXRoX3Vuc291cmNlZF9zdGF0ZW1lbnRzIiB0aXRsZT0iQ2F0ZWdvcnk6QWxsIGFydGljbGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHMiPkFsbCBhcnRpY2xlcyB3aXRoIHVuc291cmNlZCBzdGF0ZW1lbnRzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5OkFydGljbGVzX3dpdGhfdW5zb3VyY2VkX3N0YXRlbWVudHNfZnJvbV9GZWJydWFyeV8yMDExIiB0aXRsZT0iQ2F0ZWdvcnk6QXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyBmcm9tIEZlYnJ1YXJ5IDIwMTEiPkFydGljbGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHMgZnJvbSBGZWJydWFyeSAyMDExPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5OkNvbW1vbnNfY2F0ZWdvcnlfd2l0aF9sb2NhbF9saW5rX3NhbWVfYXNfb25fV2lraWRhdGEiIHRpdGxlPSJDYXRlZ29yeTpDb21tb25zIGNhdGVnb3J5IHdpdGggbG9jYWwgbGluayBzYW1lIGFzIG9uIFdpa2lkYXRhIj5Db21tb25zIGNhdGVnb3J5IHdpdGggbG9jYWwgbGluayBzYW1lIGFzIG9uIFdpa2lkYXRhPC9hPjwvbGk+PC91bD48L2Rpdj48L2Rpdj4JCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ2aXN1YWxDbGVhciI+PC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0ibXctbmF2aWdhdGlvbiI+Cis8aDI+TmF2aWdhdGlvbiBtZW51PC9oMj4KKzxkaXYgaWQ9Im13LWhlYWQiPgorPGRpdiBpZD0icC1wZXJzb25hbCIgcm9sZT0ibmF2aWdhdGlvbiIgY2xhc3M9IiIgYXJpYS1sYWJlbGxlZGJ5PSJwLXBlcnNvbmFsLWxhYmVsIj4KKzxoMyBpZD0icC1wZXJzb25hbC1sYWJlbCI+UGVyc29uYWwgdG9vbHM8L2gzPgorPHVsPgorPGxpIGlkPSJwdC1jcmVhdGVhY2NvdW50Ij48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9U3BlY2lhbDpVc2VyTG9naW4mYW1wO3JldHVybnRvPTQyKyUyOG51bWJlciUyOSZhbXA7dHlwZT1zaWdudXAiPkNyZWF0ZSBhY2NvdW50PC9hPjwvbGk+PGxpIGlkPSJwdC1sb2dpbiI+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPVNwZWNpYWw6VXNlckxvZ2luJmFtcDtyZXR1cm50bz00MislMjhudW1iZXIlMjkiIHRpdGxlPSJZb3UncmUgZW5jb3VyYWdlZCB0byBsb2cgaW47IGhvd2V2ZXIsIGl0J3Mgbm90IG1hbmRhdG9yeS4gW29dIiBhY2Nlc3NrZXk9Im8iPkxvZyBpbjwvYT48L2xpPgk8L3VsPgorPC9kaXY+Cis8ZGl2IGlkPSJsZWZ0LW5hdmlnYXRpb24iPgorPGRpdiBpZD0icC1uYW1lc3BhY2VzIiByb2xlPSJuYXZpZ2F0aW9uIiBjbGFzcz0idmVjdG9yVGFicyIgYXJpYS1sYWJlbGxlZGJ5PSJwLW5hbWVzcGFjZXMtbGFiZWwiPgorPGgzIGlkPSJwLW5hbWVzcGFjZXMtbGFiZWwiPk5hbWVzcGFjZXM8L2gzPgorPHVsPgorPGxpIGlkPSJjYS1uc3RhYi1tYWluIiBjbGFzcz0ic2VsZWN0ZWQiPjxzcGFuPjxhIGhyZWY9Ii93aWtpLzQyXyhudW1iZXIpIiB0aXRsZT0iVmlldyB0aGUgY29udGVudCBwYWdlIFtjXSIgYWNjZXNza2V5PSJjIj5BcnRpY2xlPC9hPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjYS10YWxrIj48c3Bhbj48YSBocmVmPSIvd2lraS9UYWxrOjQyXyhudW1iZXIpIiB0aXRsZT0iRGlzY3Vzc2lvbiBhYm91dCB0aGUgY29udGVudCBwYWdlIFt0XSIgYWNjZXNza2V5PSJ0Ij5UYWxrPC9hPjwvc3Bhbj48L2xpPgorPC91bD4KKzwvZGl2PgorPGRpdiBpZD0icC12YXJpYW50cyIgcm9sZT0ibmF2aWdhdGlvbiIgY2xhc3M9InZlY3Rvck1lbnUgZW1wdHlQb3J0bGV0IiBhcmlhLWxhYmVsbGVkYnk9InAtdmFyaWFudHMtbGFiZWwiPgorPGgzIGlkPSJtdy12ZWN0b3ItY3VycmVudC12YXJpYW50Ij4KKzwvaDM+Cis8aDMgaWQ9InAtdmFyaWFudHMtbGFiZWwiPjxzcGFuPlZhcmlhbnRzPC9zcGFuPjxhIGhyZWY9IiMiPjwvYT48L2gzPgorPGRpdiBjbGFzcz0ibWVudSI+Cis8dWw+Cis8L3VsPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0icmlnaHQtbmF2aWdhdGlvbiI+Cis8ZGl2IGlkPSJwLXZpZXdzIiByb2xlPSJuYXZpZ2F0aW9uIiBjbGFzcz0idmVjdG9yVGFicyIgYXJpYS1sYWJlbGxlZGJ5PSJwLXZpZXdzLWxhYmVsIj4KKzxoMyBpZD0icC12aWV3cy1sYWJlbCI+Vmlld3M8L2gzPgorPHVsPgorPGxpIGlkPSJjYS12aWV3IiBjbGFzcz0ic2VsZWN0ZWQiPjxzcGFuPjxhIGhyZWY9Ii93aWtpLzQyXyhudW1iZXIpIj5SZWFkPC9hPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjYS1lZGl0Ij48c3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0IiB0aXRsZT0iWW91IGNhbiBlZGl0IHRoaXMgcGFnZS4KK1BsZWFzZSByZXZpZXcgeW91ciBjaGFuZ2VzIGJlZm9yZSBzYXZpbmcuIFtlXSIgYWNjZXNza2V5PSJlIj5FZGl0PC9hPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjYS1oaXN0b3J5IiBjbGFzcz0iY29sbGFwc2libGUiPjxzcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWhpc3RvcnkiIHRpdGxlPSJQYXN0IHZlcnNpb25zIG9mIHRoaXMgcGFnZSBbaF0iIGFjY2Vzc2tleT0iaCI+VmlldyBoaXN0b3J5PC9hPjwvc3Bhbj48L2xpPgorPC91bD4KKzwvZGl2PgorPGRpdiBpZD0icC1jYWN0aW9ucyIgcm9sZT0ibmF2aWdhdGlvbiIgY2xhc3M9InZlY3Rvck1lbnUgZW1wdHlQb3J0bGV0IiBhcmlhLWxhYmVsbGVkYnk9InAtY2FjdGlvbnMtbGFiZWwiPgorPGgzIGlkPSJwLWNhY3Rpb25zLWxhYmVsIj48c3Bhbj5BY3Rpb25zPC9zcGFuPjxhIGhyZWY9IiMiPjwvYT48L2gzPgorPGRpdiBjbGFzcz0ibWVudSI+Cis8dWw+Cis8L3VsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InAtc2VhcmNoIiByb2xlPSJzZWFyY2giPgorPGgzPjxsYWJlbCBmb3I9InNlYXJjaElucHV0Ij5TZWFyY2g8L2xhYmVsPjwvaDM+Cis8Zm9ybSBhY3Rpb249Ii93L2luZGV4LnBocCIgaWQ9InNlYXJjaGZvcm0iPgorPGRpdiBpZD0ic2ltcGxlU2VhcmNoIj4KKzxpbnB1dCBuYW1lPSJzZWFyY2giIHBsYWNlaG9sZGVyPSJTZWFyY2giIHRpdGxlPSJTZWFyY2ggV2lraXBlZGlhIFtmXSIgYWNjZXNza2V5PSJmIiBpZD0ic2VhcmNoSW5wdXQiPgkJCQkJCTxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJidXR0b24iIHRpdGxlPSJTZWFyY2ggV2lraXBlZGlhIGZvciB0aGlzIHRleHQiIGlkPSJzZWFyY2hCdXR0b24iPjxpbWcgc3JjPSIvL2JpdHMud2lraW1lZGlhLm9yZy9zdGF0aWMtMS4yM3dtZjEwL3NraW5zL3ZlY3Rvci9pbWFnZXMvc2VhcmNoLWx0ci5wbmc/MzAzLTQiIGFsdD0iU2VhcmNoIiB3aWR0aD0iMTIiIGhlaWdodD0iMTMiPjwvYnV0dG9uPgkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGl0bGUiIHZhbHVlPSJTcGVjaWFsOlNlYXJjaCI+Cis8L2Rpdj4KKzwvZm9ybT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9Im13LXBhbmVsIj4KKzxkaXYgaWQ9InAtbG9nbyIgcm9sZT0iYmFubmVyIj48YSBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL2IvYmMvV2lraS5wbmcpOyIgaHJlZj0iL3dpa2kvTWFpbl9QYWdlIiB0aXRsZT0iVmlzaXQgdGhlIG1haW4gcGFnZSI+PC9hPjwvZGl2PgorPGRpdiBjbGFzcz0icG9ydGFsIiByb2xlPSJuYXZpZ2F0aW9uIiBpZD0icC1uYXZpZ2F0aW9uIiBhcmlhLWxhYmVsbGVkYnk9InAtbmF2aWdhdGlvbi1sYWJlbCI+Cis8aDMgaWQ9InAtbmF2aWdhdGlvbi1sYWJlbCI+TmF2aWdhdGlvbjwvaDM+Cis8ZGl2IGNsYXNzPSJib2R5Ij4KKzx1bD4KKzxsaSBpZD0ibi1tYWlucGFnZS1kZXNjcmlwdGlvbiI+PGEgaHJlZj0iL3dpa2kvTWFpbl9QYWdlIiB0aXRsZT0iVmlzaXQgdGhlIG1haW4gcGFnZSBbel0iIGFjY2Vzc2tleT0ieiI+TWFpbiBwYWdlPC9hPjwvbGk+Cis8bGkgaWQ9Im4tY29udGVudHMiPjxhIGhyZWY9Ii93aWtpL1BvcnRhbDpDb250ZW50cyIgdGl0bGU9Ikd1aWRlcyB0byBicm93c2luZyBXaWtpcGVkaWEiPkNvbnRlbnRzPC9hPjwvbGk+Cis8bGkgaWQ9Im4tZmVhdHVyZWRjb250ZW50Ij48YSBocmVmPSIvd2lraS9Qb3J0YWw6RmVhdHVyZWRfY29udGVudCIgdGl0bGU9IkZlYXR1cmVkIGNvbnRlbnQg4oCTIHRoZSBiZXN0IG9mIFdpa2lwZWRpYSI+RmVhdHVyZWQgY29udGVudDwvYT48L2xpPgorPGxpIGlkPSJuLWN1cnJlbnRldmVudHMiPjxhIGhyZWY9Ii93aWtpL1BvcnRhbDpDdXJyZW50X2V2ZW50cyIgdGl0bGU9IkZpbmQgYmFja2dyb3VuZCBpbmZvcm1hdGlvbiBvbiBjdXJyZW50IGV2ZW50cyI+Q3VycmVudCBldmVudHM8L2E+PC9saT4KKzxsaSBpZD0ibi1yYW5kb21wYWdlIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOlJhbmRvbSIgdGl0bGU9IkxvYWQgYSByYW5kb20gYXJ0aWNsZSBbeF0iIGFjY2Vzc2tleT0ieCI+UmFuZG9tIGFydGljbGU8L2E+PC9saT4KKzxsaSBpZD0ibi1zaXRlc3VwcG9ydCI+PGEgaHJlZj0iaHR0cHM6Ly9kb25hdGUud2lraW1lZGlhLm9yZy93aWtpL1NwZWNpYWw6RnVuZHJhaXNlclJlZGlyZWN0b3I/dXRtX3NvdXJjZT1kb25hdGUmYW1wO3V0bV9tZWRpdW09c2lkZWJhciZhbXA7dXRtX2NhbXBhaWduPUMxM19lbi53aWtpcGVkaWEub3JnJmFtcDt1c2VsYW5nPWVuIiB0aXRsZT0iU3VwcG9ydCB1cyI+RG9uYXRlIHRvIFdpa2lwZWRpYTwvYT48L2xpPgorPGxpIGlkPSJuLXNob3BsaW5rIj48YSBocmVmPSIvL3Nob3Aud2lraW1lZGlhLm9yZyIgdGl0bGU9IlZpc2l0IHRoZSBXaWtpbWVkaWEgU2hvcCI+V2lraW1lZGlhIFNob3A8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0icG9ydGFsIiByb2xlPSJuYXZpZ2F0aW9uIiBpZD0icC1pbnRlcmFjdGlvbiIgYXJpYS1sYWJlbGxlZGJ5PSJwLWludGVyYWN0aW9uLWxhYmVsIj4KKzxoMyBpZD0icC1pbnRlcmFjdGlvbi1sYWJlbCI+SW50ZXJhY3Rpb248L2gzPgorPGRpdiBjbGFzcz0iYm9keSI+Cis8dWw+Cis8bGkgaWQ9Im4taGVscCI+PGEgaHJlZj0iL3dpa2kvSGVscDpDb250ZW50cyIgdGl0bGU9Ikd1aWRhbmNlIG9uIGhvdyB0byB1c2UgYW5kIGVkaXQgV2lraXBlZGlhIj5IZWxwPC9hPjwvbGk+Cis8bGkgaWQ9Im4tYWJvdXRzaXRlIj48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6QWJvdXQiIHRpdGxlPSJGaW5kIG91dCBhYm91dCBXaWtpcGVkaWEiPkFib3V0IFdpa2lwZWRpYTwvYT48L2xpPgorPGxpIGlkPSJuLXBvcnRhbCI+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOkNvbW11bml0eV9wb3J0YWwiIHRpdGxlPSJBYm91dCB0aGUgcHJvamVjdCwgd2hhdCB5b3UgY2FuIGRvLCB3aGVyZSB0byBmaW5kIHRoaW5ncyI+Q29tbXVuaXR5IHBvcnRhbDwvYT48L2xpPgorPGxpIGlkPSJuLXJlY2VudGNoYW5nZXMiPjxhIGhyZWY9Ii93aWtpL1NwZWNpYWw6UmVjZW50Q2hhbmdlcyIgdGl0bGU9IkEgbGlzdCBvZiByZWNlbnQgY2hhbmdlcyBpbiB0aGUgd2lraSBbcl0iIGFjY2Vzc2tleT0iciI+UmVjZW50IGNoYW5nZXM8L2E+PC9saT4KKzxsaSBpZD0ibi1jb250YWN0cGFnZSI+PGEgaHJlZj0iLy9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2lraXBlZGlhOkNvbnRhY3RfdXMiPkNvbnRhY3QgcGFnZTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJwb3J0YWwiIHJvbGU9Im5hdmlnYXRpb24iIGlkPSJwLXRiIiBhcmlhLWxhYmVsbGVkYnk9InAtdGItbGFiZWwiPgorPGgzIGlkPSJwLXRiLWxhYmVsIj5Ub29sczwvaDM+Cis8ZGl2IGNsYXNzPSJib2R5Ij4KKzx1bD4KKzxsaSBpZD0idC13aGF0bGlua3NoZXJlIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOldoYXRMaW5rc0hlcmUvNDJfKG51bWJlcikiIHRpdGxlPSJMaXN0IG9mIGFsbCBFbmdsaXNoIFdpa2lwZWRpYSBwYWdlcyBjb250YWluaW5nIGxpbmtzIHRvIHRoaXMgcGFnZSBbal0iIGFjY2Vzc2tleT0iaiI+V2hhdCBsaW5rcyBoZXJlPC9hPjwvbGk+Cis8bGkgaWQ9InQtcmVjZW50Y2hhbmdlc2xpbmtlZCI+PGEgaHJlZj0iL3dpa2kvU3BlY2lhbDpSZWNlbnRDaGFuZ2VzTGlua2VkLzQyXyhudW1iZXIpIiB0aXRsZT0iUmVjZW50IGNoYW5nZXMgaW4gcGFnZXMgbGlua2VkIGZyb20gdGhpcyBwYWdlIFtrXSIgYWNjZXNza2V5PSJrIj5SZWxhdGVkIGNoYW5nZXM8L2E+PC9saT4KKzxsaSBpZD0idC11cGxvYWQiPjxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpGaWxlX1VwbG9hZF9XaXphcmQiIHRpdGxlPSJVcGxvYWQgZmlsZXMgW3VdIiBhY2Nlc3NrZXk9InUiPlVwbG9hZCBmaWxlPC9hPjwvbGk+Cis8bGkgaWQ9InQtc3BlY2lhbHBhZ2VzIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOlNwZWNpYWxQYWdlcyIgdGl0bGU9IkEgbGlzdCBvZiBhbGwgc3BlY2lhbCBwYWdlcyBbcV0iIGFjY2Vzc2tleT0icSI+U3BlY2lhbCBwYWdlczwvYT48L2xpPgorPGxpIGlkPSJ0LXBlcm1hbGluayI+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDtvbGRpZD01OTI3ODIxNzMiIHRpdGxlPSJQZXJtYW5lbnQgbGluayB0byB0aGlzIHJldmlzaW9uIG9mIHRoZSBwYWdlIj5QZXJtYW5lbnQgbGluazwvYT48L2xpPgorPGxpIGlkPSJ0LWluZm8iPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWluZm8iPlBhZ2UgaW5mb3JtYXRpb248L2E+PC9saT4KKzxsaSBpZD0idC13aWtpYmFzZSI+PGEgaHJlZj0iLy93d3cud2lraWRhdGEub3JnL3dpa2kvUTgxMjk5NiIgdGl0bGU9IkxpbmsgdG8gY29ubmVjdGVkIGRhdGEgcmVwb3NpdG9yeSBpdGVtIFtnXSIgYWNjZXNza2V5PSJnIj5EYXRhIGl0ZW08L2E+PC9saT4KKzxsaSBpZD0idC1jaXRlIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9U3BlY2lhbDpDaXRlJmFtcDtwYWdlPTQyXyUyOG51bWJlciUyOSZhbXA7aWQ9NTkyNzgyMTczIiB0aXRsZT0iSW5mb3JtYXRpb24gb24gaG93IHRvIGNpdGUgdGhpcyBwYWdlIj5DaXRlIHRoaXMgcGFnZTwvYT48L2xpPgkJPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJwb3J0YWwiIHJvbGU9Im5hdmlnYXRpb24iIGlkPSJwLWNvbGwtcHJpbnRfZXhwb3J0IiBhcmlhLWxhYmVsbGVkYnk9InAtY29sbC1wcmludF9leHBvcnQtbGFiZWwiPgorPGgzIGlkPSJwLWNvbGwtcHJpbnRfZXhwb3J0LWxhYmVsIj5QcmludC9leHBvcnQ8L2gzPgorPGRpdiBjbGFzcz0iYm9keSI+Cis8dWw+Cis8bGkgaWQ9ImNvbGwtY3JlYXRlX2FfYm9vayI+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPVNwZWNpYWw6Qm9vayZhbXA7Ym9va2NtZD1ib29rX2NyZWF0b3ImYW1wO3JlZmVyZXI9NDIrJTI4bnVtYmVyJTI5Ij5DcmVhdGUgYSBib29rPC9hPjwvbGk+Cis8bGkgaWQ9ImNvbGwtZG93bmxvYWQtYXMtcmwiPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1TcGVjaWFsOkJvb2smYW1wO2Jvb2tjbWQ9cmVuZGVyX2FydGljbGUmYW1wO2FydHRpdGxlPTQyKyUyOG51bWJlciUyOSZhbXA7b2xkaWQ9NTkyNzgyMTczJmFtcDt3cml0ZXI9cmwiPkRvd25sb2FkIGFzIFBERjwvYT48L2xpPgorPGxpIGlkPSJ0LXByaW50Ij48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO3ByaW50YWJsZT15ZXMiIHRpdGxlPSJQcmludGFibGUgdmVyc2lvbiBvZiB0aGlzIHBhZ2UgW3BdIiBhY2Nlc3NrZXk9InAiPlByaW50YWJsZSB2ZXJzaW9uPC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InBvcnRhbCIgcm9sZT0ibmF2aWdhdGlvbiIgaWQ9InAtbGFuZyIgYXJpYS1sYWJlbGxlZGJ5PSJwLWxhbmctbGFiZWwiPgorPGgzIGlkPSJwLWxhbmctbGFiZWwiPkxhbmd1YWdlczwvaDM+Cis8ZGl2IGNsYXNzPSJib2R5Ij4KKzx1bD4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1hYiI+PGEgaHJlZj0iLy9hYi53aWtpcGVkaWEub3JnL3dpa2kvJUQyJUE4JUQxJThCJUQwJUJEJUQyJUE5JUQwJUIwJUQwJUI2JUQzJTk5JUQwJUIwXyVEMiVBOSVEMCVCMSVEMCVCMCIgdGl0bGU9ItKo0YvQvdKp0LDQttOZ0LAg0qnQsdCwIOKAkyBBYmtoYXppYW4iIGxhbmc9ImFiIiBocmVmbGFuZz0iYWIiPtCQ0qfRgdGI05nQsDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWFyIj48YSBocmVmPSIvL2FyLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUQ4JUI5JUQ4JUFGJUQ4JUFGKSIgdGl0bGU9IjQyICjYudiv2K8pIOKAkyBBcmFiaWMiIGxhbmc9ImFyIiBocmVmbGFuZz0iYXIiPtin2YTYudix2KjZitipPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktYXoiPjxhIGhyZWY9Ii8vYXoud2lraXBlZGlhLm9yZy93aWtpLzQyXyglQzklOTlkJUM5JTk5ZCkiIHRpdGxlPSI0MiAoyZlkyZlkKSDigJMgQXplcmJhaWphbmkiIGxhbmc9ImF6IiBocmVmbGFuZz0iYXoiPkF6yZlyYmF5Y2FuY2E8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1iZyI+PGEgaHJlZj0iLy9iZy53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVEMSU4NyVEMCVCOCVEMSU4MSVEMCVCQiVEMCVCRSkiIHRpdGxlPSI0MiAo0YfQuNGB0LvQvikg4oCTIEJ1bGdhcmlhbiIgbGFuZz0iYmciIGhyZWZsYW5nPSJiZyI+0JHRitC70LPQsNGA0YHQutC4PC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktYm8iPjxhIGhyZWY9Ii8vYm8ud2lraXBlZGlhLm9yZy93aWtpLyVFMCVCQyVBNCVFMCVCQyVBMl8oJUUwJUJEJTgyJUUwJUJFJUIyJUUwJUJEJTg0JUUwJUJEJUE2JUUwJUJDJThCJUUwJUJEJTgwJUUwJUJDJThEKSIgdGl0bGU9IuC8pOC8oiAo4L2C4L6y4L2E4L2m4LyL4L2A4LyNKSDigJMgVGliZXRhbiIgbGFuZz0iYm8iIGhyZWZsYW5nPSJibyI+4L2W4L284L2R4LyL4L2h4L2y4L2CPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktY2EiPjxhIGhyZWY9Ii8vY2Eud2lraXBlZGlhLm9yZy93aWtpL1F1YXJhbnRhLWRvcyIgdGl0bGU9IlF1YXJhbnRhLWRvcyDigJMgQ2F0YWxhbiIgbGFuZz0iY2EiIGhyZWZsYW5nPSJjYSI+Q2F0YWzDoDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWN2Ij48YSBocmVmPSIvL2N2Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUQxJTg1JUQwJUI4JUQxJTgxJUQwJUI1JUQwJUJGKSIgdGl0bGU9IjQyICjRhdC40YHQtdC/KSDigJMgQ2h1dmFzaCIgbGFuZz0iY3YiIGhyZWZsYW5nPSJjdiI+0KfTkdCy0LDRiNC70LA8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1jcyI+PGEgaHJlZj0iLy9jcy53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVDNCU4RCVDMyVBRHNsbykiIHRpdGxlPSI0MiAoxI3DrXNsbykg4oCTIEN6ZWNoIiBsYW5nPSJjcyIgaHJlZmxhbmc9ImNzIj7EjGXFoXRpbmE8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1kYSI+PGEgaHJlZj0iLy9kYS53aWtpcGVkaWEub3JnL3dpa2kvNDJfKHRhbCkiIHRpdGxlPSI0MiAodGFsKSDigJMgRGFuaXNoIiBsYW5nPSJkYSIgaHJlZmxhbmc9ImRhIj5EYW5zazwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWVsIj48YSBocmVmPSIvL2VsLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUNFJUIxJUNGJTgxJUNFJUI5JUNFJUI4JUNFJUJDJUNGJThDJUNGJTgyKSIgdGl0bGU9IjQyICjOsc+BzrnOuM68z4zPgikg4oCTIEdyZWVrIiBsYW5nPSJlbCIgaHJlZmxhbmc9ImVsIj7Olc67zrvOt869zrnOus6sPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktZXMiPjxhIGhyZWY9Ii8vZXMud2lraXBlZGlhLm9yZy93aWtpL0N1YXJlbnRhX3lfZG9zIiB0aXRsZT0iQ3VhcmVudGEgeSBkb3Mg4oCTIFNwYW5pc2giIGxhbmc9ImVzIiBocmVmbGFuZz0iZXMiPkVzcGHDsW9sPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktZW8iPjxhIGhyZWY9Ii8vZW8ud2lraXBlZGlhLm9yZy93aWtpLzQyXyhub21icm8pIiB0aXRsZT0iNDIgKG5vbWJybykg4oCTIEVzcGVyYW50byIgbGFuZz0iZW8iIGhyZWZsYW5nPSJlbyI+RXNwZXJhbnRvPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktZXUiPjxhIGhyZWY9Ii8vZXUud2lraXBlZGlhLm9yZy93aWtpL0JlcnJvZ2VpdGFfYmkiIHRpdGxlPSJCZXJyb2dlaXRhIGJpIOKAkyBCYXNxdWUiIGxhbmc9ImV1IiBocmVmbGFuZz0iZXUiPkV1c2thcmE8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1mYSI+PGEgaHJlZj0iLy9mYS53aWtpcGVkaWEub3JnL3dpa2kvJURCJUI0JURCJUIyXyglRDglQjklRDglQUYlRDglQUYpIiB0aXRsZT0i27TbsiAo2LnYr9ivKSDigJMgUGVyc2lhbiIgbGFuZz0iZmEiIGhyZWZsYW5nPSJmYSI+2YHYp9ix2LPbjDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWZyIj48YSBocmVmPSIvL2ZyLndpa2lwZWRpYS5vcmcvd2lraS80Ml8obm9tYnJlKSIgdGl0bGU9IjQyIChub21icmUpIOKAkyBGcmVuY2giIGxhbmc9ImZyIiBocmVmbGFuZz0iZnIiPkZyYW7Dp2FpczwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWdhbiI+PGEgaHJlZj0iLy9nYW4ud2lraXBlZGlhLm9yZy93aWtpLzQyIiB0aXRsZT0iNDIg4oCTIEdhbiIgbGFuZz0iZ2FuIiBocmVmbGFuZz0iZ2FuIj7otJvoqp48L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1rbyI+PGEgaHJlZj0iLy9rby53aWtpcGVkaWEub3JnL3dpa2kvNDIiIHRpdGxlPSI0MiDigJMgS29yZWFuIiBsYW5nPSJrbyIgaHJlZmxhbmc9ImtvIj7tlZzqta3slrQ8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1oeSI+PGEgaHJlZj0iLy9oeS53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVENSVBOSVENSVBQiVENSVCRSkiIHRpdGxlPSI0MiAo1anVq9W+KSDigJMgQXJtZW5pYW4iIGxhbmc9Imh5IiBocmVmbGFuZz0iaHkiPtWA1aHVtdWl1oDVpdW2PC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktaWQiPjxhIGhyZWY9Ii8vaWQud2lraXBlZGlhLm9yZy93aWtpLzQyXyhhbmdrYSkiIHRpdGxlPSI0MiAoYW5na2EpIOKAkyBJbmRvbmVzaWFuIiBsYW5nPSJpZCIgaHJlZmxhbmc9ImlkIj5CYWhhc2EgSW5kb25lc2lhPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktaWEiPjxhIGhyZWY9Ii8vaWEud2lraXBlZGlhLm9yZy93aWtpLzQyXyhudW1lcm8pIiB0aXRsZT0iNDIgKG51bWVybykg4oCTIEludGVybGluZ3VhIiBsYW5nPSJpYSIgaHJlZmxhbmc9ImlhIj5JbnRlcmxpbmd1YTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWl0Ij48YSBocmVmPSIvL2l0Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8obnVtZXJvKSIgdGl0bGU9IjQyIChudW1lcm8pIOKAkyBJdGFsaWFuIiBsYW5nPSJpdCIgaHJlZmxhbmc9Iml0Ij5JdGFsaWFubzwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWhlIj48YSBocmVmPSIvL2hlLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUQ3JTlFJUQ3JUExJUQ3JUE0JUQ3JUE4KSIgdGl0bGU9IjQyICjXnteh16TXqCkg4oCTIEhlYnJldyIgbGFuZz0iaGUiIGhyZWZsYW5nPSJoZSI+16LXkdeo15nXqjwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWh0Ij48YSBocmVmPSIvL2h0Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8obm9ubSkiIHRpdGxlPSI0MiAobm9ubSkg4oCTIEhhaXRpYW4iIGxhbmc9Imh0IiBocmVmbGFuZz0iaHQiPktyZXnDsmwgYXlpc3llbjwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWxiZSI+PGEgaHJlZj0iLy9sYmUud2lraXBlZGlhLm9yZy93aWtpLyVEMCU5QyVEMSU4MyVEMCVCQSVEMSU4QyVEMSU4NiVEMyU4MCVEMCVCMCVEMCVCQiVEMCVCQiVEMCVCOCVEMCVCOV8lRDAlQkElRDMlODAlRDAlQjglRDAlQjIlRDAlQjAiIHRpdGxlPSLQnNGD0LrRjNGG04DQsNC70LvQuNC5INC604DQuNCy0LAg4oCTINC70LDQutC60YMiIGxhbmc9ImxiZSIgaHJlZmxhbmc9ImxiZSI+0JvQsNC60LrRgzwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWxhIj48YSBocmVmPSIvL2xhLndpa2lwZWRpYS5vcmcvd2lraS9RdWFkcmFnaW50YV9ldF9kdW8iIHRpdGxlPSJRdWFkcmFnaW50YSBldCBkdW8g4oCTIExhdGluIiBsYW5nPSJsYSIgaHJlZmxhbmc9ImxhIj5MYXRpbmE8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1sdiI+PGEgaHJlZj0iLy9sdi53aWtpcGVkaWEub3JnL3dpa2kvNDJfKHNrYWl0bGlzKSIgdGl0bGU9IjQyIChza2FpdGxpcykg4oCTIExhdHZpYW4iIGxhbmc9Imx2IiBocmVmbGFuZz0ibHYiPkxhdHZpZcWhdTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWx0Ij48YSBocmVmPSIvL2x0Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8oc2thaSVDNCU4RGl1cykiIHRpdGxlPSI0MiAoc2thacSNaXVzKSDigJMgTGl0aHVhbmlhbiIgbGFuZz0ibHQiIGhyZWZsYW5nPSJsdCI+TGlldHV2acWzPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbGciPjxhIGhyZWY9Ii8vbGcud2lraXBlZGlhLm9yZy93aWtpL0FtYWt1bWlfYW5hX211X2JiaXJpIiB0aXRsZT0iQW1ha3VtaSBhbmEgbXUgYmJpcmkg4oCTIEdhbmRhIiBsYW5nPSJsZyIgaHJlZmxhbmc9ImxnIj5MdWdhbmRhPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktaHUiPjxhIGhyZWY9Ii8vaHUud2lraXBlZGlhLm9yZy93aWtpLzQyXyhzeiVDMyVBMW0pIiB0aXRsZT0iNDIgKHN6w6FtKSDigJMgSHVuZ2FyaWFuIiBsYW5nPSJodSIgaHJlZmxhbmc9Imh1Ij5NYWd5YXI8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1tayI+PGEgaHJlZj0iLy9tay53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVEMCVCMSVEMSU4MCVEMCVCRSVEMSU5OCkiIHRpdGxlPSI0MiAo0LHRgNC+0ZgpIOKAkyBNYWNlZG9uaWFuIiBsYW5nPSJtayIgaHJlZmxhbmc9Im1rIj7QnNCw0LrQtdC00L7QvdGB0LrQuDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLW1zIj48YSBocmVmPSIvL21zLndpa2lwZWRpYS5vcmcvd2lraS80Ml8obm9tYm9yKSIgdGl0bGU9IjQyIChub21ib3IpIOKAkyBNYWxheSIgbGFuZz0ibXMiIGhyZWZsYW5nPSJtcyI+QmFoYXNhIE1lbGF5dTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLW5haCI+PGEgaHJlZj0iLy9uYWgud2lraXBlZGlhLm9yZy93aWtpLyVDNSU4Q21wJUM1JThEaHVhbG9tJUM1JThEbWUiIHRpdGxlPSLFjG1wxY1odWFsb23FjW1lIOKAkyBOYWh1YXRsIiBsYW5nPSJuYWgiIGhyZWZsYW5nPSJuYWgiPk7EgWh1YXRsPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbmwiPjxhIGhyZWY9Ii8vbmwud2lraXBlZGlhLm9yZy93aWtpLzQyXyhnZXRhbCkiIHRpdGxlPSI0MiAoZ2V0YWwpIOKAkyBEdXRjaCIgbGFuZz0ibmwiIGhyZWZsYW5nPSJubCI+TmVkZXJsYW5kczwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWphIj48YSBocmVmPSIvL2phLndpa2lwZWRpYS5vcmcvd2lraS80MiIgdGl0bGU9IjQyIOKAkyBKYXBhbmVzZSIgbGFuZz0iamEiIGhyZWZsYW5nPSJqYSI+5pel5pys6KqePC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbmFwIj48YSBocmVmPSIvL25hcC53aWtpcGVkaWEub3JnL3dpa2kvUXVhcmFudGFkJUMzJUIyamUiIHRpdGxlPSJRdWFyYW50YWTDsmplIOKAkyBOZWFwb2xpdGFuIiBsYW5nPSJuYXAiIGhyZWZsYW5nPSJuYXAiPk5hcHVsaXRhbm88L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1ubyI+PGEgaHJlZj0iLy9uby53aWtpcGVkaWEub3JnL3dpa2kvNDJfKHRhbGwpIiB0aXRsZT0iNDIgKHRhbGwpIOKAkyBOb3J3ZWdpYW4gKGJva23DpWwpIiBsYW5nPSJubyIgaHJlZmxhbmc9Im5vIj5Ob3JzayBib2ttw6VsPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbm4iPjxhIGhyZWY9Ii8vbm4ud2lraXBlZGlhLm9yZy93aWtpL1RhbGV0XzQyIiB0aXRsZT0iVGFsZXQgNDIg4oCTIE5vcndlZ2lhbiBOeW5vcnNrIiBsYW5nPSJubiIgaHJlZmxhbmc9Im5uIj5Ob3JzayBueW5vcnNrPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktdXoiPjxhIGhyZWY9Ii8vdXoud2lraXBlZGlhLm9yZy93aWtpLzQyXyhzb24pIiB0aXRsZT0iNDIgKHNvbikg4oCTIFV6YmVrIiBsYW5nPSJ1eiIgaHJlZmxhbmc9InV6Ij5Pyrt6YmVrY2hhPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktcG5iIj48YSBocmVmPSIvL3BuYi53aWtpcGVkaWEub3JnL3dpa2kvNDIiIHRpdGxlPSI0MiDigJMgV2VzdGVybiBQdW5qYWJpIiBsYW5nPSJwbmIiIGhyZWZsYW5nPSJwbmIiPtm+2YbYrNin2KjbjDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXBsIj48YSBocmVmPSIvL3BsLndpa2lwZWRpYS5vcmcvd2lraS80Ml8obGljemJhKSIgdGl0bGU9IjQyIChsaWN6YmEpIOKAkyBQb2xpc2giIGxhbmc9InBsIiBocmVmbGFuZz0icGwiPlBvbHNraTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXB0Ij48YSBocmVmPSIvL3B0Lndpa2lwZWRpYS5vcmcvd2lraS9RdWFyZW50YV9lX2RvaXMiIHRpdGxlPSJRdWFyZW50YSBlIGRvaXMg4oCTIFBvcnR1Z3Vlc2UiIGxhbmc9InB0IiBocmVmbGFuZz0icHQiPlBvcnR1Z3XDqnM8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1ybyI+PGEgaHJlZj0iLy9yby53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG51bSVDNCU4M3IpIiB0aXRsZT0iNDIgKG51bcSDcikg4oCTIFJvbWFuaWFuIiBsYW5nPSJybyIgaHJlZmxhbmc9InJvIj5Sb23Dom7EgzwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXJ1Ij48YSBocmVmPSIvL3J1Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUQxJTg3JUQwJUI4JUQxJTgxJUQwJUJCJUQwJUJFKSIgdGl0bGU9IjQyICjRh9C40YHQu9C+KSDigJMgUnVzc2lhbiIgbGFuZz0icnUiIGhyZWZsYW5nPSJydSI+0KDRg9GB0YHQutC40Lk8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1uc28iPjxhIGhyZWY9Ii8vbnNvLndpa2lwZWRpYS5vcmcvd2lraS80Ml8obm9tb3JvKSIgdGl0bGU9IjQyIChub21vcm8pIOKAkyBOb3J0aGVybiBTb3RobyIgbGFuZz0ibnNvIiBocmVmbGFuZz0ibnNvIj5TZXNvdGhvIHNhIExlYm9hPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktc2ltcGxlIj48YSBocmVmPSIvL3NpbXBsZS53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG51bWJlcikiIHRpdGxlPSI0MiAobnVtYmVyKSDigJMgU2ltcGxlIEVuZ2xpc2giIGxhbmc9InNpbXBsZSIgaHJlZmxhbmc9InNpbXBsZSI+U2ltcGxlIEVuZ2xpc2g8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1zayI+PGEgaHJlZj0iLy9zay53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVDNCU4RCVDMyVBRHNsbykiIHRpdGxlPSI0MiAoxI3DrXNsbykg4oCTIFNsb3ZhayIgbGFuZz0ic2siIGhyZWZsYW5nPSJzayI+U2xvdmVuxI1pbmE8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1zbCI+PGEgaHJlZj0iLy9zbC53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVDNSVBMXRldmlsbykiIHRpdGxlPSI0MiAoxaF0ZXZpbG8pIOKAkyBTbG92ZW5pYW4iIGxhbmc9InNsIiBocmVmbGFuZz0ic2wiPlNsb3ZlbsWhxI1pbmE8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1zcm4iPjxhIGhyZWY9Ii8vc3JuLndpa2lwZWRpYS5vcmcvd2lraS9OdW1yb180MiIgdGl0bGU9Ik51bXJvIDQyIOKAkyBTcmFuYW4gVG9uZ28iIGxhbmc9InNybiIgaHJlZmxhbmc9InNybiI+U3JhbmFudG9uZ288L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1zciI+PGEgaHJlZj0iLy9zci53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVEMCVCMSVEMSU4MCVEMCVCRSVEMSU5OCkiIHRpdGxlPSI0MiAo0LHRgNC+0ZgpIOKAkyBTZXJiaWFuIiBsYW5nPSJzciIgaHJlZmxhbmc9InNyIj7QodGA0L/RgdC60LggLyBzcnBza2k8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1maSI+PGEgaHJlZj0iLy9maS53aWtpcGVkaWEub3JnL3dpa2kvNDJfKGx1a3UpIiB0aXRsZT0iNDIgKGx1a3UpIOKAkyBGaW5uaXNoIiBsYW5nPSJmaSIgaHJlZmxhbmc9ImZpIj5TdW9taTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXN2Ij48YSBocmVmPSIvL3N2Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8odGFsKSIgdGl0bGU9IjQyICh0YWwpIOKAkyBTd2VkaXNoIiBsYW5nPSJzdiIgaHJlZmxhbmc9InN2Ij5TdmVuc2thPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktdGUiPjxhIGhyZWY9Ii8vdGUud2lraXBlZGlhLm9yZy93aWtpLzQyXyglRTAlQjAlQjglRTAlQjAlODIlRTAlQjAlOTYlRTAlQjElOEQlRTAlQjAlQUYpIiB0aXRsZT0iNDIgKOCwuOCwguCwluCxjeCwrykg4oCTIFRlbHVndSIgbGFuZz0idGUiIGhyZWZsYW5nPSJ0ZSI+4LCk4LGG4LCy4LGB4LCX4LGBPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktdGgiPjxhIGhyZWY9Ii8vdGgud2lraXBlZGlhLm9yZy93aWtpLzQyIiB0aXRsZT0iNDIg4oCTIFRoYWkiIGxhbmc9InRoIiBocmVmbGFuZz0idGgiPuC5hOC4l+C4ojwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXRyIj48YSBocmVmPSIvL3RyLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oc2F5JUM0JUIxKSIgdGl0bGU9IjQyIChzYXnEsSkg4oCTIFR1cmtpc2giIGxhbmc9InRyIiBocmVmbGFuZz0idHIiPlTDvHJrw6dlPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktdWsiPjxhIGhyZWY9Ii8vdWsud2lraXBlZGlhLm9yZy93aWtpLzQyXyglRDElODclRDAlQjglRDElODElRDAlQkIlRDAlQkUpIiB0aXRsZT0iNDIgKNGH0LjRgdC70L4pIOKAkyBVa3JhaW5pYW4iIGxhbmc9InVrIiBocmVmbGFuZz0idWsiPtCj0LrRgNCw0ZfQvdGB0YzQutCwPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktemEiPjxhIGhyZWY9Ii8vemEud2lraXBlZGlhLm9yZy93aWtpL1NlaXFfY2liX25nZWloIiB0aXRsZT0iU2VpcSBjaWIgbmdlaWgg4oCTIFpodWFuZyIgbGFuZz0iemEiIGhyZWZsYW5nPSJ6YSI+VmFoY3VlbmdoPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktdmkiPjxhIGhyZWY9Ii8vdmkud2lraXBlZGlhLm9yZy93aWtpLzQyXyhzJUUxJUJCJTkxKSIgdGl0bGU9IjQyIChz4buRKSDigJMgVmlldG5hbWVzZSIgbGFuZz0idmkiIGhyZWZsYW5nPSJ2aSI+VGnhur9uZyBWaeG7h3Q8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS12bHMiPjxhIGhyZWY9Ii8vdmxzLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oZ2V0YWwpIiB0aXRsZT0iNDIgKGdldGFsKSDigJMgV2VzdC1WbGFtcyIgbGFuZz0idmxzIiBocmVmbGFuZz0idmxzIj5XZXN0LVZsYW1zPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktd2FyIj48YSBocmVmPSIvL3dhci53aWtpcGVkaWEub3JnL3dpa2kvNDJfKGloYXApIiB0aXRsZT0iNDIgKGloYXApIOKAkyBXYXJheSIgbGFuZz0id2FyIiBocmVmbGFuZz0id2FyIj5XaW5hcmF5PC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2kteWkiPjxhIGhyZWY9Ii8veWkud2lraXBlZGlhLm9yZy93aWtpLzQyXyglRDclQTAlRDclOTUlRDclOUUlRDclQTIlRDclQTgpIiB0aXRsZT0iNDIgKNeg15XXntei16gpIOKAkyBZaWRkaXNoIiBsYW5nPSJ5aSIgaHJlZmxhbmc9InlpIj7XmdeZ1rTXk9eZ16k8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS16aC15dWUiPjxhIGhyZWY9Ii8vemgteXVlLndpa2lwZWRpYS5vcmcvd2lraS80MiIgdGl0bGU9IjQyIOKAkyBDYW50b25lc2UiIGxhbmc9InpoLXl1ZSIgaHJlZmxhbmc9InpoLXl1ZSI+57K16KqePC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktemgiPjxhIGhyZWY9Ii8vemgud2lraXBlZGlhLm9yZy93aWtpLzQyIiB0aXRsZT0iNDIg4oCTIENoaW5lc2UiIGxhbmc9InpoIiBocmVmbGFuZz0iemgiPuS4reaWhzwvYT48L2xpPgorPGxpIGNsYXNzPSJ3YmMtZWRpdHBhZ2UiPjxhIGhyZWY9Ii8vd3d3Lndpa2lkYXRhLm9yZy93aWtpL1E4MTI5OTYjc2l0ZWxpbmtzLXdpa2lwZWRpYSIgdGl0bGU9IkVkaXQgaW50ZXJsYW5ndWFnZSBsaW5rcyI+RWRpdCBsaW5rczwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iZm9vdGVyIiByb2xlPSJjb250ZW50aW5mbyI+Cis8dWwgaWQ9ImZvb3Rlci1pbmZvIj4KKzxsaSBpZD0iZm9vdGVyLWluZm8tbGFzdG1vZCI+IFRoaXMgcGFnZSB3YXMgbGFzdCBtb2RpZmllZCBvbiAyOCBKYW51YXJ5IDIwMTQgYXQgMTI6MDMuPGJyPjwvbGk+Cis8bGkgaWQ9ImZvb3Rlci1pbmZvLWNvcHlyaWdodCI+VGV4dCBpcyBhdmFpbGFibGUgdW5kZXIgdGhlIDxhIHJlbD0ibGljZW5zZSIgaHJlZj0iLy9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2lraXBlZGlhOlRleHRfb2ZfQ3JlYXRpdmVfQ29tbW9uc19BdHRyaWJ1dGlvbi1TaGFyZUFsaWtlXzMuMF9VbnBvcnRlZF9MaWNlbnNlIj5DcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgTGljZW5zZTwvYT48YSByZWw9ImxpY2Vuc2UiIGhyZWY9Ii8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8zLjAvIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9hPjsKK2FkZGl0aW9uYWwgdGVybXMgbWF5IGFwcGx5LiAgQnkgdXNpbmcgdGhpcyBzaXRlLCB5b3UgYWdyZWUgdG8gdGhlIDxhIGhyZWY9Ii8vd2lraW1lZGlhZm91bmRhdGlvbi5vcmcvd2lraS9UZXJtc19vZl9Vc2UiPlRlcm1zIG9mIFVzZTwvYT4gYW5kIDxhIGhyZWY9Ii8vd2lraW1lZGlhZm91bmRhdGlvbi5vcmcvd2lraS9Qcml2YWN5X3BvbGljeSI+UHJpdmFjeSBQb2xpY3kuPC9hPiA8YnI+CitXaWtpcGVkaWHCriBpcyBhIHJlZ2lzdGVyZWQgdHJhZGVtYXJrIG9mIHRoZSA8YSBocmVmPSIvL3d3dy53aWtpbWVkaWFmb3VuZGF0aW9uLm9yZy8iPldpa2ltZWRpYSBGb3VuZGF0aW9uLCBJbmMuPC9hPiwgYSBub24tcHJvZml0IG9yZ2FuaXphdGlvbi48L2xpPgorPC91bD4KKzx1bCBpZD0iZm9vdGVyLXBsYWNlcyI+Cis8bGkgaWQ9ImZvb3Rlci1wbGFjZXMtcHJpdmFjeSI+PGEgaHJlZj0iLy93aWtpbWVkaWFmb3VuZGF0aW9uLm9yZy93aWtpL1ByaXZhY3lfcG9saWN5IiB0aXRsZT0id2lraW1lZGlhOlByaXZhY3kgcG9saWN5Ij5Qcml2YWN5IHBvbGljeTwvYT48L2xpPgorPGxpIGlkPSJmb290ZXItcGxhY2VzLWFib3V0Ij48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6QWJvdXQiIHRpdGxlPSJXaWtpcGVkaWE6QWJvdXQiPkFib3V0IFdpa2lwZWRpYTwvYT48L2xpPgorPGxpIGlkPSJmb290ZXItcGxhY2VzLWRpc2NsYWltZXIiPjxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpHZW5lcmFsX2Rpc2NsYWltZXIiIHRpdGxlPSJXaWtpcGVkaWE6R2VuZXJhbCBkaXNjbGFpbWVyIj5EaXNjbGFpbWVyczwvYT48L2xpPgorPGxpIGlkPSJmb290ZXItcGxhY2VzLWNvbnRhY3QiPjxhIGhyZWY9Ii8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dpa2lwZWRpYTpDb250YWN0X3VzIj5Db250YWN0IFdpa2lwZWRpYTwvYT48L2xpPgorPGxpIGlkPSJmb290ZXItcGxhY2VzLWRldmVsb3BlcnMiPjxhIGNsYXNzPSJleHRlcm5hbCIgaHJlZj0iaHR0cHM6Ly93d3cubWVkaWF3aWtpLm9yZy93aWtpL1NwZWNpYWw6TXlMYW5ndWFnZS9Ib3dfdG9fY29udHJpYnV0ZSI+RGV2ZWxvcGVyczwvYT48L2xpPgorPGxpIGlkPSJmb290ZXItcGxhY2VzLW1vYmlsZXZpZXciPjxhIGhyZWY9Ii8vZW4ubS53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG51bWJlcikiIGNsYXNzPSJub3ByaW50IHN0b3BNb2JpbGVSZWRpcmVjdFRvZ2dsZSI+TW9iaWxlIHZpZXc8L2E+PC9saT4KKzwvdWw+Cis8dWwgaWQ9ImZvb3Rlci1pY29ucyIgY2xhc3M9Im5vcHJpbnQiPgorPGxpIGlkPSJmb290ZXItY29weXJpZ2h0aWNvIj4KKzxhIGhyZWY9Ii8vd2lraW1lZGlhZm91bmRhdGlvbi5vcmcvIj48aW1nIHNyYz0iLy9iaXRzLndpa2ltZWRpYS5vcmcvaW1hZ2VzL3dpa2ltZWRpYS1idXR0b24ucG5nIiB3aWR0aD0iODgiIGhlaWdodD0iMzEiIGFsdD0iV2lraW1lZGlhIEZvdW5kYXRpb24iPjwvYT4KKzwvbGk+Cis8bGkgaWQ9ImZvb3Rlci1wb3dlcmVkYnlpY28iPgorPGEgaHJlZj0iLy93d3cubWVkaWF3aWtpLm9yZy8iPjxpbWcgc3JjPSIvL2JpdHMud2lraW1lZGlhLm9yZy9zdGF0aWMtMS4yM3dtZjEwL3NraW5zL2NvbW1vbi9pbWFnZXMvcG93ZXJlZGJ5X21lZGlhd2lraV84OHgzMS5wbmciIGFsdD0iUG93ZXJlZCBieSBNZWRpYVdpa2kiIHdpZHRoPSI4OCIgaGVpZ2h0PSIzMSI+PC9hPgorPC9saT4KKzwvdWw+Cis8ZGl2IHN0eWxlPSJjbGVhcjpib3RoIj48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4vKjwhW0NEQVRBWyovd2luZG93LmpRdWVyeSAmJiBqUXVlcnkucmVhZHkoKTsvKl1dPiovPC9zY3JpcHQ+PHNjcmlwdD5pZih3aW5kb3cubXcpeworbXcubG9hZGVyLnN0YXRlKHsic2l0ZSI6ImxvYWRpbmciLCJ1c2VyIjoicmVhZHkiLCJ1c2VyLmdyb3VwcyI6InJlYWR5In0pOworfTwvc2NyaXB0PgorPHNjcmlwdD5pZih3aW5kb3cubXcpeworbXcubG9hZGVyLmxvYWQoWyJleHQuY2l0ZSIsIm1vYmlsZS5kZXNrdG9wIiwibWVkaWF3aWtpLmFjdGlvbi52aWV3LnBvc3RFZGl0IiwibWVkaWF3aWtpLnVzZXIiLCJtZWRpYXdpa2kuaGlkcGkiLCJtZWRpYXdpa2kucGFnZS5yZWFkeSIsIm1lZGlhd2lraS5zZWFyY2hTdWdnZXN0IiwiZXh0LmdhZGdldC50ZWFob3VzZSIsImV4dC5nYWRnZXQuUmVmZXJlbmNlVG9vbHRpcHMiLCJleHQuZ2FkZ2V0LkRSTi13aXphcmQiLCJleHQuZ2FkZ2V0LmNoYXJpbnNlcnQiLCJtdy5Nd0VtYmVkU3VwcG9ydC5zdHlsZSIsImV4dC5hcnRpY2xlRmVlZGJhY2t2NS5zdGFydHVwIiwiZXh0Lndpa2ltZWRpYVNob3BMaW5rLmNvcmUiLCJleHQubmF2aWdhdGlvblRpbWluZyIsImV4dC5mbGFnZ2VkUmV2cy5hZHZhbmNlZCIsInNraW5zLnZlY3Rvci5jb2xsYXBzaWJsZU5hdiJdLG51bGwsdHJ1ZSk7Cit9PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLy9iaXRzLndpa2ltZWRpYS5vcmcvZW4ud2lraXBlZGlhLm9yZy9sb2FkLnBocD9kZWJ1Zz1mYWxzZSZhbXA7bGFuZz1lbiZhbXA7bW9kdWxlcz1zaXRlJmFtcDtvbmx5PXNjcmlwdHMmYW1wO3NraW49dmVjdG9yJmFtcDsqIj48L3NjcmlwdD4KKzwhLS0gU2VydmVkIGJ5IG13MTEwMyBpbiAwLjMyMyBzZWNzLiAtLT4KKworCis8L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zZXJpYWxpemF0aW9uL3dpa2lfNDIvc3JjLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2VyaWFsaXphdGlvbi93aWtpXzQyL3NyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiOGQwN2QKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2VyaWFsaXphdGlvbi93aWtpXzQyL3NyYy5odG1sCkBAIC0wLDAgKzEsMzE0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiIgZGlyPSJsdHIiIGNsYXNzPSJjbGllbnQtbm9qcyI+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPjx0aXRsZT40MiAobnVtYmVyKSAtIFdpa2lwZWRpYSwgdGhlIGZyZWUgZW5jeWNsb3BlZGlhPC90aXRsZT4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTWVkaWFXaWtpIDEuMjN3bWYxMCIgLz4KKzxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdpa2kiIHRpdGxlPSJFZGl0IHRoaXMgcGFnZSIgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCIgLz4KKzxsaW5rIHJlbD0iZWRpdCIgdGl0bGU9IkVkaXQgdGhpcyBwYWdlIiBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0IiAvPgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvL2JpdHMud2lraW1lZGlhLm9yZy9hcHBsZS10b3VjaC93aWtpcGVkaWEucG5nIiAvPgorPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvL2JpdHMud2lraW1lZGlhLm9yZy9mYXZpY29uL3dpa2lwZWRpYS5pY28iIC8+Cis8bGluayByZWw9InNlYXJjaCIgdHlwZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgaHJlZj0iL3cvb3BlbnNlYXJjaF9kZXNjLnBocCIgdGl0bGU9Ildpa2lwZWRpYSAoZW4pIiAvPgorPGxpbmsgcmVsPSJFZGl0VVJJIiB0eXBlPSJhcHBsaWNhdGlvbi9yc2QreG1sIiBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvdy9hcGkucGhwP2FjdGlvbj1yc2QiIC8+Cis8bGluayByZWw9ImNvcHlyaWdodCIgaHJlZj0iLy9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzMuMC8iIC8+Cis8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vYXRvbSt4bWwiIHRpdGxlPSJXaWtpcGVkaWEgQXRvbSBmZWVkIiBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9U3BlY2lhbDpSZWNlbnRDaGFuZ2VzJmFtcDtmZWVkPWF0b20iIC8+Cis8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS80Ml8obnVtYmVyKSIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy9iaXRzLndpa2ltZWRpYS5vcmcvZW4ud2lraXBlZGlhLm9yZy9sb2FkLnBocD9kZWJ1Zz1mYWxzZSZhbXA7bGFuZz1lbiZhbXA7bW9kdWxlcz1leHQuZmxhZ2dlZFJldnMuYmFzaWMlN0NleHQuZ2FkZ2V0LkRSTi13aXphcmQlMkNSZWZlcmVuY2VUb29sdGlwcyUyQ2NoYXJpbnNlcnQlMkN0ZWFob3VzZSU3Q2V4dC5ydGxjaXRlJTJDd2lraWhpZXJvJTdDZXh0LnZpc3VhbEVkaXRvci52aWV3UGFnZVRhcmdldC5ub3NjcmlwdCU3Q21lZGlhd2lraS5sZWdhY3kuY29tbW9uUHJpbnQlMkNzaGFyZWQlN0Nza2lucy5jb21tb24uaW50ZXJmYWNlJTdDc2tpbnMudmVjdG9yLnN0eWxlcyZhbXA7b25seT1zdHlsZXMmYW1wO3NraW49dmVjdG9yJmFtcDsqIiAvPgorPG1ldGEgbmFtZT0iUmVzb3VyY2VMb2FkZXJEeW5hbWljU3R5bGVzIiBjb250ZW50PSIiIC8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vYml0cy53aWtpbWVkaWEub3JnL2VuLndpa2lwZWRpYS5vcmcvbG9hZC5waHA/ZGVidWc9ZmFsc2UmYW1wO2xhbmc9ZW4mYW1wO21vZHVsZXM9c2l0ZSZhbXA7b25seT1zdHlsZXMmYW1wO3NraW49dmVjdG9yJmFtcDsqIiAvPgorPHN0eWxlPmE6bGFuZyhhciksYTpsYW5nKGtrLWFyYWIpLGE6bGFuZyhtem4pLGE6bGFuZyhwcyksYTpsYW5nKHVyKXt0ZXh0LWRlY29yYXRpb246bm9uZX0KKy8qIGNhY2hlIGtleTogZW53aWtpOnJlc291cmNlbG9hZGVyOmZpbHRlcjptaW5pZnktY3NzOjc6MzkwNGQyNGEwOGFhMDhmNmE2OGRjMzM4ZjliZTI3N2UgKi88L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iLy9iaXRzLndpa2ltZWRpYS5vcmcvZW4ud2lraXBlZGlhLm9yZy9sb2FkLnBocD9kZWJ1Zz1mYWxzZSZhbXA7bGFuZz1lbiZhbXA7bW9kdWxlcz1zdGFydHVwJmFtcDtvbmx5PXNjcmlwdHMmYW1wO3NraW49dmVjdG9yJmFtcDsqIj48L3NjcmlwdD4KKzxzY3JpcHQ+aWYod2luZG93Lm13KXsKK213LmNvbmZpZy5zZXQoeyJ3Z0Nhbm9uaWNhbE5hbWVzcGFjZSI6IiIsIndnQ2Fub25pY2FsU3BlY2lhbFBhZ2VOYW1lIjpmYWxzZSwid2dOYW1lc3BhY2VOdW1iZXIiOjAsIndnUGFnZU5hbWUiOiI0Ml8obnVtYmVyKSIsIndnVGl0bGUiOiI0MiAobnVtYmVyKSIsIndnQ3VyUmV2aXNpb25JZCI6NTkyNzgyMTczLCJ3Z1JldmlzaW9uSWQiOjU5Mjc4MjE3Mywid2dBcnRpY2xlSWQiOjE5MTE3OCwid2dJc0FydGljbGUiOnRydWUsIndnSXNSZWRpcmVjdCI6ZmFsc2UsIndnQWN0aW9uIjoidmlldyIsIndnVXNlck5hbWUiOm51bGwsIndnVXNlckdyb3VwcyI6WyIqIl0sIndnQ2F0ZWdvcmllcyI6WyJDUzEgZXJyb3JzOiBkYXRlcyIsIldpa2lwZWRpYSBwZW5kaW5nIGNoYW5nZXMgcHJvdGVjdGVkIHBhZ2VzIChsZXZlbCAxKSIsIldpa2lwZWRpYSBwcm90ZWN0ZWQgcGFnZXMgd2l0aG91dCBleHBpcnkiLCJBcnRpY2xlcyBuZWVkaW5nIGFkZGl0aW9uYWwgcmVmZXJlbmNlcyBmcm9tIEZlYnJ1YXJ5IDIwMTEiLCJBbGwgYXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMiLCJBbGwgYXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyIsIkFydGljbGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHMgZnJvbSBGZWJydWFyeSAyMDExIiwiQ29tbW9ucyBjYXRlZ29yeSB3aXRoIGxvY2FsIGxpbmsgc2FtZSBhcyBvbiBXaWtpZGF0YSIsIkludGVnZXJzIl0sIndnQnJlYWtGcmFtZXMiOmZhbHNlLCJ3Z1BhZ2VDb250ZW50TGFuZ3VhZ2UiOiJlbiIsIndnUGFnZUNvbnRlbnRNb2RlbCI6Indpa2l0ZXh0Iiwid2dTZXBhcmF0b3JUcmFuc2Zvcm1UYWJsZSI6WyIiLCIiXSwid2dEaWdpdFRyYW5zZm9ybVRhYmxlIjpbIiIsIiJdLCJ3Z0RlZmF1bHREYXRlRm9ybWF0IjoiZG15Iiwid2dNb250aE5hbWVzIjpbIiIsIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sIndnTW9udGhOYW1lc1Nob3J0IjpbIiIsIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJ3Z1JlbGV2YW50UGFnZU5hbWUiOiI0Ml8obnVtYmVyKSIsIndnSXNQcm9iYWJseUVkaXRhYmxlIjp0cnVlLCJ3Z1Jlc3RyaWN0aW9uRWRpdCI6W10sIndnUmVzdHJpY3Rpb25Nb3ZlIjpbXSwid2dXaWtpRWRpdG9yRW5hYmxlZE1vZHVsZXMiOnsidG9vbGJhciI6dHJ1ZSwiZGlhbG9ncyI6dHJ1ZSwiaGlkZXNpZyI6dHJ1ZSwidGVtcGxhdGVFZGl0b3IiOmZhbHNlLCJ0ZW1wbGF0ZXMiOmZhbHNlLCJwcmV2aWV3IjpmYWxzZSwicHJldmlld0RpYWxvZyI6ZmFsc2UsInB1Ymxpc2giOmZhbHNlLCJ0b2MiOmZhbHNlfSwid2dBcnRpY2xlRmVlZGJhY2t2NVBlcm1pc3Npb25zIjp7ImFmdC1yZWFkZXIiOnRydWUsImFmdC1tZW1iZXIiOmZhbHNlLCJhZnQtZWRpdG9yIjpmYWxzZSwiYWZ0LW1vbml0b3IiOmZhbHNlLCJhZnQtYWRtaW5pc3RyYXRvciI6ZmFsc2UsImFmdC1vdmVyc2lnaHRlciI6ZmFsc2UsImFmdC1ub29uZSI6ZmFsc2V9LCJ3Z0JldGFGZWF0dXJlc0ZlYXR1cmVzIjpbXSwid2dWaXN1YWxFZGl0b3IiOnsiaXNQYWdlV2F0Y2hlZCI6ZmFsc2UsIm1hZ25pZnlDbGlwSWNvblVSTCI6Ii8vYml0cy53aWtpbWVkaWEub3JnL3N0YXRpYy0xLjIzd21mMTAvc2tpbnMvY29tbW9uL2ltYWdlcy9tYWduaWZ5LWNsaXAucG5nIiwicGFnZUxhbmd1YWdlQ29kZSI6ImVuIiwicGFnZUxhbmd1YWdlRGlyIjoibHRyIn0sIndpa2lsb3ZlLXJlY2lwaWVudCI6IiIsIndpa2lsb3ZlLWFub24iOjAsIndnR3VpZGVkVG91ckhlbHBHdWlkZXJVcmwiOiJIZWxwOkd1aWRlZCB0b3Vycy9ndWlkZXIiLCJ3Z1VMU0FjY2VwdExhbmd1YWdlTGlzdCI6WyJlbi11cyIsImVuIl0sIndnVUxTQ3VycmVudEF1dG9ueW0iOiJFbmdsaXNoIiwid2dGbGFnZ2VkUmV2c1BhcmFtcyI6eyJ0YWdzIjp7InN0YXR1cyI6eyJsZXZlbHMiOjEsInF1YWxpdHkiOjIsInByaXN0aW5lIjozfX19LCJ3Z1N0YWJsZVJldmlzaW9uSWQiOjU5Mjc4MjE3Mywid2dDYXRlZ29yeVRyZWVQYWdlQ2F0ZWdvcnlPcHRpb25zIjoie1wibW9kZVwiOjAsXCJoaWRlcHJlZml4XCI6MjAsXCJzaG93Y291bnRcIjp0cnVlLFwibmFtZXNwYWNlc1wiOmZhbHNlfSIsIkdlbyI6eyJjaXR5IjoiIiwiY291bnRyeSI6IiJ9LCJ3Z05vdGljZVByb2plY3QiOiJ3aWtpcGVkaWEiLCJhZnR2NUFydGljbGUiOnsiaWQiOjE5MTE3OCwidGl0bGUiOiI0MiAobnVtYmVyKSIsIm5hbWVzcGFjZSI6MCwiY2F0ZWdvcmllcyI6WyJBbGwgYXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMiLCJBbGwgYXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyIsIkFydGljbGVzIG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVuY2VzIGZyb20gRmVicnVhcnkgMjAxMSIsIkFydGljbGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHMgZnJvbSBGZWJydWFyeSAyMDExIiwiQ1MxIGVycm9yczogZGF0ZXMiLCJDb21tb25zIGNhdGVnb3J5IHdpdGggbG9jYWwgbGluayBzYW1lIGFzIG9uIFdpa2lkYXRhIiwiSW50ZWdlcnMiLCJXaWtpcGVkaWEgcGVuZGluZyBjaGFuZ2VzIHByb3RlY3RlZCBwYWdlcyAobGV2ZWwgMSkiLCJXaWtpcGVkaWEgcHJvdGVjdGVkIHBhZ2VzIHdpdGhvdXQgZXhwaXJ5Il0sInBlcm1pc3Npb25MZXZlbCI6ZmFsc2V9LCJ3Z1dpa2liYXNlSXRlbUlkIjoiUTgxMjk5NiJ9KTsKK308L3NjcmlwdD48c2NyaXB0PmlmKHdpbmRvdy5tdyl7Cittdy5sb2FkZXIuaW1wbGVtZW50KCJ1c2VyLm9wdGlvbnMiLGZ1bmN0aW9uKCl7bXcudXNlci5vcHRpb25zLnNldCh7ImNjbWVvbmVtYWlscyI6MCwiY29scyI6ODAsImRhdGUiOiJkZWZhdWx0IiwiZGlmZm9ubHkiOjAsImRpc2FibGVtYWlsIjowLCJlZGl0Zm9udCI6ImRlZmF1bHQiLCJlZGl0b25kYmxjbGljayI6MCwiZWRpdHNlY3Rpb24iOjEsImVkaXRzZWN0aW9ub25yaWdodGNsaWNrIjowLCJlbm90aWZtaW5vcmVkaXRzIjowLCJlbm90aWZyZXZlYWxhZGRyIjowLCJlbm90aWZ1c2VydGFsa3BhZ2VzIjoxLCJlbm90aWZ3YXRjaGxpc3RwYWdlcyI6MCwiZXh0ZW5kd2F0Y2hsaXN0IjowLCJmYW5jeXNpZyI6MCwiZm9yY2VlZGl0c3VtbWFyeSI6MCwiZ2VuZGVyIjoidW5rbm93biIsImhpZGVtaW5vciI6MCwiaGlkZXBhdHJvbGxlZCI6MCwiaW1hZ2VzaXplIjoyLCJqdXN0aWZ5IjowLCJtYXRoIjowLCJtaW5vcmRlZmF1bHQiOjAsIm5ld3BhZ2VzaGlkZXBhdHJvbGxlZCI6MCwibmlja25hbWUiOiIiLCJub2NvbnZlcnRsaW5rIjowLCJub3JvbGxiYWNrZGlmZiI6MCwibnVtYmVyaGVhZGluZ3MiOjAsInByZXZpZXdvbmZpcnN0IjowLCJwcmV2aWV3b250b3AiOjEsInJjZGF5cyI6NywicmNsaW1pdCI6NTAsInJlbWVtYmVycGFzc3dvcmQiOjAsInJvd3MiOjI1LCJzaG93aGlkZGVuY2F0cyI6ZmFsc2UsInNob3dudW1iZXJzd2F0Y2hpbmciOjEsInNob3d0b2MiOjEsInNob3d0b29sYmFyIjoxLCJza2luIjoidmVjdG9yIiwic3R1YnRocmVzaG9sZCI6MCwidGh1bWJzaXplIjo0LCJ1bmRlcmxpbmUiOjIsInVzZWxpdmVwcmV2aWV3IjowLCJ1c2VuZXdyYyI6MCwidmVjdG9yLXNpbXBsZXNlYXJjaCI6MSwid2F0Y2hjcmVhdGlvbnMiOjEsIndhdGNoZGVmYXVsdCI6MCwid2F0Y2hkZWxldGlvbiI6MCwid2F0Y2hsaXN0ZGF5cyI6Mywid2F0Y2hsaXN0aGlkZWFub25zIjowLCJ3YXRjaGxpc3RoaWRlYm90cyI6MCwid2F0Y2hsaXN0aGlkZWxpdSI6MCwKKyJ3YXRjaGxpc3RoaWRlbWlub3IiOjAsIndhdGNobGlzdGhpZGVvd24iOjAsIndhdGNobGlzdGhpZGVwYXRyb2xsZWQiOjAsIndhdGNobW92ZXMiOjAsIndsbGltaXQiOjI1MCwidXNlZWRpdHdhcm5pbmciOjEsInByZWZlcnNodHRwcyI6MSwiZmxhZ2dlZHJldnNzaW1wbGV1aSI6MSwiZmxhZ2dlZHJldnNzdGFibGUiOjAsImZsYWdnZWRyZXZzZWRpdGRpZmZzIjp0cnVlLCJmbGFnZ2VkcmV2c3ZpZXdkaWZmcyI6ZmFsc2UsInVzZWJldGF0b29sYmFyIjoxLCJ1c2ViZXRhdG9vbGJhci1jZ2QiOjEsImFmdHY1LWxhc3QtZmlsdGVyIjpudWxsLCJ2aXN1YWxlZGl0b3ItZW5hYmxlIjowLCJ2aXN1YWxlZGl0b3ItZW5hYmxlLWV4cGVyaW1lbnRhbCI6MCwidmlzdWFsZWRpdG9yLWVuYWJsZS1td21hdGgiOjAsInZpc3VhbGVkaXRvci1iZXRhdGVtcGRpc2FibGUiOjAsIndpa2lsb3ZlLWVuYWJsZWQiOjEsImVjaG8tc3Vic2NyaXB0aW9ucy13ZWItcGFnZS1yZXZpZXciOnRydWUsImVjaG8tc3Vic2NyaXB0aW9ucy1lbWFpbC1wYWdlLXJldmlldyI6ZmFsc2UsImVwX3Nob3d0b3BsaW5rIjpmYWxzZSwiZXBfYnVsa2RlbG9yZ3MiOmZhbHNlLCJlcF9idWxrZGVsY291cnNlcyI6dHJ1ZSwiZXBfc2hvd2R5ayI6dHJ1ZSwiZWNoby1ub3RpZnktc2hvdy1saW5rIjp0cnVlLCJlY2hvLXNob3ctYWxlcnQiOnRydWUsImVjaG8tZW1haWwtZnJlcXVlbmN5IjowLCJlY2hvLWVtYWlsLWZvcm1hdCI6Imh0bWwiLCJlY2hvLXN1YnNjcmlwdGlvbnMtZW1haWwtc3lzdGVtIjp0cnVlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLXN5c3RlbSI6dHJ1ZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLW90aGVyIjpmYWxzZSwiZWNoby1zdWJzY3JpcHRpb25zLXdlYi1vdGhlciI6dHJ1ZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLWVkaXQtdXNlci10YWxrIjpmYWxzZSwiZWNoby1zdWJzY3JpcHRpb25zLXdlYi1lZGl0LXVzZXItdGFsayI6dHJ1ZSwKKyJlY2hvLXN1YnNjcmlwdGlvbnMtZW1haWwtcmV2ZXJ0ZWQiOmZhbHNlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLXJldmVydGVkIjp0cnVlLCJlY2hvLXN1YnNjcmlwdGlvbnMtZW1haWwtYXJ0aWNsZS1saW5rZWQiOmZhbHNlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLWFydGljbGUtbGlua2VkIjpmYWxzZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLW1lbnRpb24iOmZhbHNlLCJlY2hvLXN1YnNjcmlwdGlvbnMtd2ViLW1lbnRpb24iOnRydWUsImVjaG8tc3Vic2NyaXB0aW9ucy13ZWItZWRpdC10aGFuayI6dHJ1ZSwiZWNoby1zdWJzY3JpcHRpb25zLWVtYWlsLWVkaXQtdGhhbmsiOmZhbHNlLCJnZXR0aW5nc3RhcnRlZC10YXNrLXRvb2xiYXItc2hvdy1pbnRybyI6dHJ1ZSwidWxzLXByZWZlcmVuY2VzIjoiIiwidWxzLWVuYWJsZSI6IiIsImxhbmd1YWdlIjoiZW4iLCJ2YXJpYW50LWdhbiI6ImdhbiIsInZhcmlhbnQtaXUiOiJpdSIsInZhcmlhbnQta2siOiJrayIsInZhcmlhbnQta3UiOiJrdSIsInZhcmlhbnQtc2hpIjoic2hpIiwidmFyaWFudC1zciI6InNyIiwidmFyaWFudC10ZyI6InRnIiwidmFyaWFudC11eiI6InV6IiwidmFyaWFudC16aCI6InpoIiwic2VhcmNoTnMwIjp0cnVlLCJzZWFyY2hOczEiOmZhbHNlLCJzZWFyY2hOczIiOmZhbHNlLCJzZWFyY2hOczMiOmZhbHNlLCJzZWFyY2hOczQiOmZhbHNlLCJzZWFyY2hOczUiOmZhbHNlLCJzZWFyY2hOczYiOmZhbHNlLCJzZWFyY2hOczciOmZhbHNlLCJzZWFyY2hOczgiOmZhbHNlLCJzZWFyY2hOczkiOmZhbHNlLCJzZWFyY2hOczEwIjpmYWxzZSwic2VhcmNoTnMxMSI6ZmFsc2UsInNlYXJjaE5zMTIiOmZhbHNlLCJzZWFyY2hOczEzIjpmYWxzZSwic2VhcmNoTnMxNCI6ZmFsc2UsInNlYXJjaE5zMTUiOmZhbHNlLCJzZWFyY2hOczEwMCI6ZmFsc2UsInNlYXJjaE5zMTAxIjpmYWxzZSwic2VhcmNoTnMxMDgiOmZhbHNlLCJzZWFyY2hOczEwOSI6ZmFsc2UsInNlYXJjaE5zMTE4IjpmYWxzZSwKKyJzZWFyY2hOczExOSI6ZmFsc2UsInNlYXJjaE5zNDQ2IjpmYWxzZSwic2VhcmNoTnM0NDciOmZhbHNlLCJzZWFyY2hOczcxMCI6ZmFsc2UsInNlYXJjaE5zNzExIjpmYWxzZSwic2VhcmNoTnM4MjgiOmZhbHNlLCJzZWFyY2hOczgyOSI6ZmFsc2UsImdhZGdldC10ZWFob3VzZSI6MSwiZ2FkZ2V0LVJlZmVyZW5jZVRvb2x0aXBzIjoxLCJnYWRnZXQtRFJOLXdpemFyZCI6MSwiZ2FkZ2V0LWNoYXJpbnNlcnQiOjEsImdhZGdldC1teVNhbmRib3giOjEsInZhcmlhbnQiOiJlbiJ9KTt9LHt9LHt9KTttdy5sb2FkZXIuaW1wbGVtZW50KCJ1c2VyLnRva2VucyIsZnVuY3Rpb24oKXttdy51c2VyLnRva2Vucy5zZXQoeyJlZGl0VG9rZW4iOiIrXFwiLCJwYXRyb2xUb2tlbiI6ZmFsc2UsIndhdGNoVG9rZW4iOmZhbHNlfSk7fSx7fSx7fSk7CisvKiBjYWNoZSBrZXk6IGVud2lraTpyZXNvdXJjZWxvYWRlcjpmaWx0ZXI6bWluaWZ5LWpzOjc6MDk5M2I4ODk4ODI1MzdhODE4ZTQwZTE4YWQyNWIwOWQgKi8KK308L3NjcmlwdD4KKzxzY3JpcHQ+aWYod2luZG93Lm13KXsKK213LmxvYWRlci5sb2FkKFsibWVkaWF3aWtpLnBhZ2Uuc3RhcnR1cCIsIm1lZGlhd2lraS5sZWdhY3kud2lraWJpdHMiLCJtZWRpYXdpa2kubGVnYWN5LmFqYXgiLCJleHQuY2VudHJhbGF1dGguY2VudHJhbGF1dG9sb2dpbiIsImV4dC52aXN1YWxFZGl0b3Iudmlld1BhZ2VUYXJnZXQuaW5pdCIsIndpa2liYXNlLmNsaWVudC5pbml0IiwiZXh0LmNlbnRyYWxOb3RpY2UuYmFubmVyQ29udHJvbGxlciIsInNraW5zLnZlY3Rvci5qcyJdKTsKK308L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvL2JpdHMud2lraW1lZGlhLm9yZy9nZW9pcGxvb2t1cCI+PC9zY3JpcHQ+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Ii8vbWV0YS53aWtpbWVkaWEub3JnIiAvPjwhLS1baWYgbHQgSUUgN10+PHN0eWxlIHR5cGU9InRleHQvY3NzIj5ib2R5e2JlaGF2aW9yOnVybCgiL3cvc3RhdGljLTEuMjN3bWYxMC9za2lucy92ZWN0b3IvY3NzaG92ZXIubWluLmh0YyIpfTwvc3R5bGU+PCFbZW5kaWZdLS0+PC9oZWFkPgorPGJvZHkgY2xhc3M9Im1lZGlhd2lraSBsdHIgc2l0ZWRpci1sdHIgbnMtMCBucy1zdWJqZWN0IHBhZ2UtNDJfbnVtYmVyIHNraW4tdmVjdG9yIGFjdGlvbi12aWV3IHZlY3Rvci1hbmltYXRlTGF5b3V0Ij4KKzxkaXYgaWQ9Im13LXBhZ2UtYmFzZSIgY2xhc3M9Im5vcHJpbnQiPjwvZGl2PgorPGRpdiBpZD0ibXctaGVhZC1iYXNlIiBjbGFzcz0ibm9wcmludCI+PC9kaXY+Cis8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0ibXctYm9keSIgcm9sZT0ibWFpbiI+Cis8YSBpZD0idG9wIj48L2E+Cis8ZGl2IGlkPSJtdy1qcy1tZXNzYWdlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9kaXY+Cis8ZGl2IGlkPSJzaXRlTm90aWNlIj48IS0tIENlbnRyYWxOb3RpY2UgLS0+PC9kaXY+Cis8aDEgaWQ9ImZpcnN0SGVhZGluZyIgY2xhc3M9ImZpcnN0SGVhZGluZyIgbGFuZz0iZW4iPjxzcGFuIGRpcj0iYXV0byI+NDIgKG51bWJlcik8L3NwYW4+PC9oMT4KKzxkaXYgaWQ9ImJvZHlDb250ZW50Ij4KKzxkaXYgaWQ9InNpdGVTdWIiPkZyb20gV2lraXBlZGlhLCB0aGUgZnJlZSBlbmN5Y2xvcGVkaWE8L2Rpdj4KKzxkaXYgaWQ9ImNvbnRlbnRTdWIiPjxkaXYgaWQ9Im13LWZyLXJldmlzaW9udGFnIiBjbGFzcz0iZmxhZ2dlZHJldnNfc2hvcnQgcGxhaW5saW5rcyBub3ByaW50Ij48ZGl2IGNsYXNzPSJmbGFnZ2VkcmV2c19zaG9ydF9iYXNpYyI+PGltZyBjbGFzcz0iZmxhZ2dlZHJldnMtaWNvbiIgc3JjPSIvL2JpdHMud2lraW1lZGlhLm9yZy9zdGF0aWMtMS4yM3dtZjEwL2V4dGVuc2lvbnMvRmxhZ2dlZFJldnMvZnJvbnRlbmQvbW9kdWxlcy9pbWcvZG9jLW1hZ25pZnkucG5nIiBhbHQ9IkNoYW5nZXMgbXVzdCBiZSByZXZpZXdlZCBiZWZvcmUgYmVpbmcgZGlzcGxheWVkIG9uIHRoaXMgcGFnZS4iIHRpdGxlPSJDaGFuZ2VzIG11c3QgYmUgcmV2aWV3ZWQgYmVmb3JlIGJlaW5nIGRpc3BsYXllZCBvbiB0aGlzIHBhZ2UuIiAvPjxpbWcgaWQ9Im13LWZyLXJldmlzaW9udG9nZ2xlIiBjbGFzcz0iZnItdG9nZ2xlLWFycm93IiBzcmM9Ii8vYml0cy53aWtpbWVkaWEub3JnL3N0YXRpYy0xLjIzd21mMTAvZXh0ZW5zaW9ucy9GbGFnZ2VkUmV2cy9mcm9udGVuZC9tb2R1bGVzL2ltZy9hcnJvdy1kb3duLnBuZyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiIGFsdD0ic2hvdy9oaWRlIGRldGFpbHMiIC8+PC9kaXY+Cis8ZGl2IGlkPSJtdy1mci1yZXZpc2lvbmRldGFpbHMtd3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyI+PGRpdiBpZD0ibXctZnItcmV2aXNpb25kZXRhaWxzIiBjbGFzcz0iZmxhZ2dlZHJldnNfc2hvcnRfZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+VGhpcyBpcyB0aGUgPGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOlBlbmRpbmdfY2hhbmdlcyIgdGl0bGU9Ildpa2lwZWRpYTpQZW5kaW5nIGNoYW5nZXMiPmxhdGVzdCBhY2NlcHRlZCByZXZpc2lvbjwvYT4sIDxhIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9U3BlY2lhbDpMb2cmYW1wO3R5cGU9cmV2aWV3JmFtcDtwYWdlPTQyXyhudW1iZXIpIj5hY2NlcHRlZDwvYT4gb24gPGk+MjggSmFudWFyeSAyMDE0PC9pPi48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9Imp1bXAtdG8tbmF2IiBjbGFzcz0ibXctanVtcCI+CitKdW1wIHRvOgkJCQkJPGEgaHJlZj0iI213LW5hdmlnYXRpb24iPm5hdmlnYXRpb248L2E+LCAJCQkJCTxhIGhyZWY9IiNwLXNlYXJjaCI+c2VhcmNoPC9hPgorPC9kaXY+Cis8ZGl2IGlkPSJtdy1jb250ZW50LXRleHQiIGxhbmc9ImVuIiBkaXI9Imx0ciIgY2xhc3M9Im13LWNvbnRlbnQtbHRyIj48ZGl2IGNsYXNzPSJtZXRhZGF0YSB0b3BpY29uIG5vcG9wdXBzIiBpZD0icHJvdGVjdGVkLWljb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7IHJpZ2h0OjI1cHg7Ij48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6UHJvdGVjdGlvbl9wb2xpY3kjcGMxIiB0aXRsZT0iQWxsIGVkaXRzIGJ5IHVucmVnaXN0ZXJlZCBhbmQgbmV3IHVzZXJzIGFyZSBzdWJqZWN0IHRvIHJldmlldy4iPjxpbWcgYWx0PSJQYWdlIHByb3RlY3RlZCB3aXRoIHBlbmRpbmcgY2hhbmdlcyBsZXZlbCAxIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvMi8yOC9QYWRsb2NrLXNpbHZlci1saWdodC5zdmcvMjBweC1QYWRsb2NrLXNpbHZlci1saWdodC5zdmcucG5nIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHNyY3NldD0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8yLzI4L1BhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy8zMHB4LVBhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy5wbmcgMS41eCwgLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi8yLzI4L1BhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy80MHB4LVBhZGxvY2stc2lsdmVyLWxpZ2h0LnN2Zy5wbmcgMngiIC8+PC9hPjwvZGl2PgorPGRpdiBjbGFzcz0ibWV0YWRhdGEgdG9waWNvbiBub3BvcHVwcyIgaWQ9InByb3RlY3RlZC1pY29uIiBzdHlsZT0iZGlzcGxheTpub25lOyByaWdodDoyNXB4OyI+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOlByb3RlY3Rpb25fcG9saWN5I3BjMSIgdGl0bGU9IkFsbCBlZGl0cyBieSB1bnJlZ2lzdGVyZWQgYW5kIG5ldyB1c2VycyBhcmUgc3ViamVjdCB0byByZXZpZXcuIj48aW1nIGFsdD0iUGFnZSBwcm90ZWN0ZWQgd2l0aCBwZW5kaW5nIGNoYW5nZXMgbGV2ZWwgMSIgc3JjPSIvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iLzIvMjgvUGFkbG9jay1zaWx2ZXItbGlnaHQuc3ZnLzIwcHgtUGFkbG9jay1zaWx2ZXItbGlnaHQuc3ZnLnBuZyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBzcmNzZXQ9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvMi8yOC9QYWRsb2NrLXNpbHZlci1saWdodC5zdmcvMzBweC1QYWRsb2NrLXNpbHZlci1saWdodC5zdmcucG5nIDEuNXgsIC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvMi8yOC9QYWRsb2NrLXNpbHZlci1saWdodC5zdmcvNDBweC1QYWRsb2NrLXNpbHZlci1saWdodC5zdmcucG5nIDJ4IiAvPjwvYT48L2Rpdj4KKzx0YWJsZSBjbGFzcz0ibWV0YWRhdGEgcGxhaW5saW5rcyBhbWJveCBhbWJveC1jb250ZW50IGFtYm94LVJlZmltcHJvdmUiIHJvbGU9InByZXNlbnRhdGlvbiI+Cis8dHI+Cis8dGQgY2xhc3M9Im1ib3gtaW1hZ2UiPgorPGRpdiBzdHlsZT0id2lkdGg6NTJweDsiPjxhIGhyZWY9Ii93aWtpL0ZpbGU6UXVlc3Rpb25fYm9vay1uZXcuc3ZnIiBjbGFzcz0iaW1hZ2UiPjxpbWcgYWx0PSIiIHNyYz0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvZW4vdGh1bWIvOS85OS9RdWVzdGlvbl9ib29rLW5ldy5zdmcvNTBweC1RdWVzdGlvbl9ib29rLW5ldy5zdmcucG5nIiB3aWR0aD0iNTAiIGhlaWdodD0iMzkiIHNyY3NldD0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvZW4vdGh1bWIvOS85OS9RdWVzdGlvbl9ib29rLW5ldy5zdmcvNzVweC1RdWVzdGlvbl9ib29rLW5ldy5zdmcucG5nIDEuNXgsIC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL3RodW1iLzkvOTkvUXVlc3Rpb25fYm9vay1uZXcuc3ZnLzEwMHB4LVF1ZXN0aW9uX2Jvb2stbmV3LnN2Zy5wbmcgMngiIC8+PC9hPjwvZGl2PgorPC90ZD4KKzx0ZCBjbGFzcz0ibWJveC10ZXh0Ij48c3BhbiBjbGFzcz0ibWJveC10ZXh0LXNwYW4iPlRoaXMgYXJ0aWNsZSA8Yj5uZWVkcyBhZGRpdGlvbmFsIGNpdGF0aW9ucyBmb3IgPGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOlZlcmlmaWFiaWxpdHkiIHRpdGxlPSJXaWtpcGVkaWE6VmVyaWZpYWJpbGl0eSI+dmVyaWZpY2F0aW9uPC9hPjwvYj4uIDxzcGFuIGNsYXNzPSJoaWRlLXdoZW4tY29tcGFjdCI+UGxlYXNlIGhlbHAgPGEgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Ii8vZW4ud2lraXBlZGlhLm9yZy93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQiPmltcHJvdmUgdGhpcyBhcnRpY2xlPC9hPiBieSA8YSBocmVmPSIvd2lraS9IZWxwOkludHJvZHVjdGlvbl90b19yZWZlcmVuY2luZy8xIiB0aXRsZT0iSGVscDpJbnRyb2R1Y3Rpb24gdG8gcmVmZXJlbmNpbmcvMSI+YWRkaW5nIGNpdGF0aW9ucyB0byByZWxpYWJsZSBzb3VyY2VzPC9hPi4gVW5zb3VyY2VkIG1hdGVyaWFsIG1heSBiZSBjaGFsbGVuZ2VkIGFuZCByZW1vdmVkLjwvc3Bhbj4gPHNtYWxsPjxpPihGZWJydWFyeSAyMDExKTwvaT48L3NtYWxsPjwvc3Bhbj48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8dGFibGUgY2xhc3M9ImluZm9ib3giIGNlbGxzcGFjaW5nPSIzIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6M3B4O3dpZHRoOjIyZW07bGluZS1oZWlnaHQ6IDEuNWVtOyI+Cis8dHI+Cis8dGggY29sc3Bhbj0iMiIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMjUlO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOiAxNTAlOyI+Cis8dGFibGUgc3R5bGU9IndpZHRoOjEwMCU7IG1hcmdpbjowIj4KKzx0cj4KKzx0ZCBzdHlsZT0id2lkdGg6MTUlOyB0ZXh0LWFsaWduOmxlZnQ7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGZvbnQtc2l6ZTpzbWFsbGVyIj48YSBocmVmPSIvd2lraS80MV8obnVtYmVyKSIgdGl0bGU9IjQxIChudW1iZXIpIj48c3BhbiBjbGFzcz0iVW5pY29kZSI+4oaQPC9zcGFuPiA0MTwvYT48L3RkPgorPHRkIHN0eWxlPSJ3aWR0aDo3MCU7IHBhZGRpbmctbGVmdDoxZW07IHBhZGRpbmctcmlnaHQ6MWVtIj40MjwvdGQ+Cis8dGQgc3R5bGU9IndpZHRoOjE1JTsgdGV4dC1hbGlnbjpyaWdodDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgZm9udC1zaXplOnNtYWxsZXIiPjxhIGhyZWY9Ii93aWtpLzQzXyhudW1iZXIpIiB0aXRsZT0iNDMgKG51bWJlcikiPjQzIDxzcGFuIGNsYXNzPSJVbmljb2RlIj7ihpI8L3NwYW4+PC9hPjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvdGg+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTAwJTs7Ij4KKzxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTpzbWFsbGVyO3doaXRlLXNwYWNlOm5vd3JhcDsiPjxhIGhyZWY9Ii93aWtpLzM5XyhudW1iZXIpIiB0aXRsZT0iMzkgKG51bWJlcikiPjxzcGFuIGNsYXNzPSJVbmljb2RlIj7ihpA8L3NwYW4+PC9hPiA8YSBocmVmPSIvd2lraS80MF8obnVtYmVyKSIgdGl0bGU9IjQwIChudW1iZXIpIj40MDwvYT4gPGEgaHJlZj0iL3dpa2kvNDFfKG51bWJlcikiIHRpdGxlPSI0MSAobnVtYmVyKSI+NDE8L2E+IDxzdHJvbmcgY2xhc3M9InNlbGZsaW5rIj40Mjwvc3Ryb25nPiA8YSBocmVmPSIvd2lraS80M18obnVtYmVyKSIgdGl0bGU9IjQzIChudW1iZXIpIj40MzwvYT4gPGEgaHJlZj0iL3dpa2kvNDRfKG51bWJlcikiIHRpdGxlPSI0NCAobnVtYmVyKSI+NDQ8L2E+IDxhIGhyZWY9Ii93aWtpLzQ1XyhudW1iZXIpIiB0aXRsZT0iNDUgKG51bWJlcikiPjQ1PC9hPiA8YSBocmVmPSIvd2lraS80Nl8obnVtYmVyKSIgdGl0bGU9IjQ2IChudW1iZXIpIj40NjwvYT4gPGEgaHJlZj0iL3dpa2kvNDdfKG51bWJlcikiIHRpdGxlPSI0NyAobnVtYmVyKSI+NDc8L2E+IDxhIGhyZWY9Ii93aWtpLzQ4XyhudW1iZXIpIiB0aXRsZT0iNDggKG51bWJlcikiPjQ4PC9hPiA8YSBocmVmPSIvd2lraS80OV8obnVtYmVyKSIgdGl0bGU9IjQ5IChudW1iZXIpIj40OTwvYT4gPGEgaHJlZj0iL3dpa2kvNTBfKG51bWJlcikiIHRpdGxlPSI1MCAobnVtYmVyKSI+PHNwYW4gY2xhc3M9IlVuaWNvZGUiPuKGkjwvc3Bhbj48L2E+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6c21hbGxlcjt3aGl0ZS1zcGFjZTpub3dyYXA7Ij48YSBocmVmPSIvd2lraS9MaXN0X29mX251bWJlcnMiIHRpdGxlPSJMaXN0IG9mIG51bWJlcnMiPkxpc3Qgb2YgbnVtYmVyczwvYT4g4oCUIDxhIGhyZWY9Ii93aWtpL0ludGVnZXIiIHRpdGxlPSJJbnRlZ2VyIj5JbnRlZ2VyczwvYT48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTpzbWFsbGVyO3doaXRlLXNwYWNlOm5vd3JhcDsiPjxhIGhyZWY9Ii93aWtpL05lZ2F0aXZlX251bWJlciIgdGl0bGU9Ik5lZ2F0aXZlIG51bWJlciI+PHNwYW4gY2xhc3M9IlVuaWNvZGUiPuKGkDwvc3Bhbj48L2E+IDxhIGhyZWY9Ii93aWtpLzBfKG51bWJlcikiIHRpdGxlPSIwIChudW1iZXIpIj4wPC9hPiA8YSBocmVmPSIvd2lraS8xMF8obnVtYmVyKSIgdGl0bGU9IjEwIChudW1iZXIpIj4xMDwvYT4gPGEgaHJlZj0iL3dpa2kvMjBfKG51bWJlcikiIHRpdGxlPSIyMCAobnVtYmVyKSI+MjA8L2E+IDxhIGhyZWY9Ii93aWtpLzMwXyhudW1iZXIpIiB0aXRsZT0iMzAgKG51bWJlcikiPjMwPC9hPiA8YSBocmVmPSIvd2lraS80MF8obnVtYmVyKSIgdGl0bGU9IjQwIChudW1iZXIpIj40MDwvYT4gPGEgaHJlZj0iL3dpa2kvNTBfKG51bWJlcikiIHRpdGxlPSI1MCAobnVtYmVyKSI+NTA8L2E+IDxhIGhyZWY9Ii93aWtpLzYwXyhudW1iZXIpIiB0aXRsZT0iNjAgKG51bWJlcikiPjYwPC9hPiA8YSBocmVmPSIvd2lraS83MF8obnVtYmVyKSIgdGl0bGU9IjcwIChudW1iZXIpIj43MDwvYT4gPGEgaHJlZj0iL3dpa2kvODBfKG51bWJlcikiIHRpdGxlPSI4MCAobnVtYmVyKSI+ODA8L2E+IDxhIGhyZWY9Ii93aWtpLzkwXyhudW1iZXIpIiB0aXRsZT0iOTAgKG51bWJlcikiPjkwPC9hPiA8YSBocmVmPSIvd2lraS8xMDBfKG51bWJlcikiIHRpdGxlPSIxMDAgKG51bWJlcikiPjxzcGFuIGNsYXNzPSJVbmljb2RlIj7ihpI8L3NwYW4+PC9hPjwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9DYXJkaW5hbF9udW1iZXJfKGxpbmd1aXN0aWNzKSIgdGl0bGU9IkNhcmRpbmFsIG51bWJlciAobGluZ3Vpc3RpY3MpIj5DYXJkaW5hbDwvYT48L3RoPgorPHRkPmZvcnR5LXR3bzwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvT3JkaW5hbF9udW1iZXJfKGxpbmd1aXN0aWNzKSIgdGl0bGU9Ik9yZGluYWwgbnVtYmVyIChsaW5ndWlzdGljcykiPk9yZGluYWw8L2E+PC90aD4KKzx0ZD40Mm5kPGJyIC8+CisoZm9ydHktc2Vjb25kKTwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvRmFjdG9yaXphdGlvbiIgdGl0bGU9IkZhY3Rvcml6YXRpb24iPkZhY3Rvcml6YXRpb248L2E+PC90aD4KKzx0ZD48c3BhbiBjbGFzcz0idGV4aHRtbCIgc3R5bGU9ImZvbnQtc2l6ZToxNjUlIj4yIMK3IDMgwrcgNzwvc3Bhbj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL0Rpdmlzb3IiIHRpdGxlPSJEaXZpc29yIj5EaXZpc29yczwvYT48L3RoPgorPHRkPjEsIDIsIDMsIDYsIDcsIDE0LCAyMSwgNDI8L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL1JvbWFuX251bWVyYWxzIiB0aXRsZT0iUm9tYW4gbnVtZXJhbHMiPlJvbWFuIG51bWVyYWw8L2E+PC90aD4KKzx0ZD5YTElJPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9Vbmljb2RlIiB0aXRsZT0iVW5pY29kZSI+VW5pY29kZTwvYT4gc3ltYm9sKHMpPC90aD4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL0dyZWVrX2xhbmd1YWdlIiB0aXRsZT0iR3JlZWsgbGFuZ3VhZ2UiPkdyZWVrPC9hPiA8YSBocmVmPSIvd2lraS9OdW1lcmFsX3ByZWZpeCIgdGl0bGU9Ik51bWVyYWwgcHJlZml4Ij5wcmVmaXg8L2E+PC90aD4KKzx0ZD7OvM6yPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9CaW5hcnlfbnVtYmVyIiB0aXRsZT0iQmluYXJ5IG51bWJlciI+QmluYXJ5PC9hPjwvdGg+Cis8dGQ+MTAxMDEwPHN1Yj4yPC9zdWI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9UZXJuYXJ5X251bWVyYWxfc3lzdGVtIiB0aXRsZT0iVGVybmFyeSBudW1lcmFsIHN5c3RlbSI+VGVybmFyeTwvYT48L3RoPgorPHRkPjExMjA8c3ViPjM8L3N1Yj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL1F1YXRlcm5hcnlfbnVtZXJhbF9zeXN0ZW0iIHRpdGxlPSJRdWF0ZXJuYXJ5IG51bWVyYWwgc3lzdGVtIj5RdWF0ZXJuYXJ5PC9hPjwvdGg+Cis8dGQ+MjIyPHN1Yj40PC9zdWI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9RdWluYXJ5IiB0aXRsZT0iUXVpbmFyeSI+UXVpbmFyeTwvYT48L3RoPgorPHRkPjEzMjxzdWI+NTwvc3ViPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvU2VuYXJ5IiB0aXRsZT0iU2VuYXJ5Ij5TZW5hcnk8L2E+PC90aD4KKzx0ZD4xMTA8c3ViPjY8L3N1Yj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL09jdGFsIiB0aXRsZT0iT2N0YWwiPk9jdGFsPC9hPjwvdGg+Cis8dGQ+NTI8c3ViPjg8L3N1Yj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL0R1b2RlY2ltYWwiIHRpdGxlPSJEdW9kZWNpbWFsIj5EdW9kZWNpbWFsPC9hPjwvdGg+Cis8dGQ+MzY8c3ViPjEyPC9zdWI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGggc2NvcGU9InJvdyIgc3R5bGU9InRleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Ij48YSBocmVmPSIvd2lraS9IZXhhZGVjaW1hbCIgdGl0bGU9IkhleGFkZWNpbWFsIj5IZXhhZGVjaW1hbDwvYT48L3RoPgorPHRkPjJBPHN1Yj4xNjwvc3ViPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRoIHNjb3BlPSJyb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsOyI+PGEgaHJlZj0iL3dpa2kvVmlnZXNpbWFsIiB0aXRsZT0iVmlnZXNpbWFsIj5WaWdlc2ltYWw8L2E+PC90aD4KKzx0ZD4yMjxzdWI+MjA8L3N1Yj48L3RkPgorPC90cj4KKzx0cj4KKzx0aCBzY29wZT0icm93IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDsiPjxhIGhyZWY9Ii93aWtpL0Jhc2VfMzYiIHRpdGxlPSJCYXNlIDM2Ij5CYXNlIDM2PC9hPjwvdGg+Cis8dGQ+MTY8c3ViPjM2PC9zdWI+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPHA+PGI+NDI8L2I+ICg8Yj5mb3J0eS10d288L2I+KSBpcyB0aGUgPGEgaHJlZj0iL3dpa2kvTmF0dXJhbF9udW1iZXIiIHRpdGxlPSJOYXR1cmFsIG51bWJlciI+bmF0dXJhbCBudW1iZXI8L2E+IGltbWVkaWF0ZWx5IGZvbGxvd2luZyA8YSBocmVmPSIvd2lraS80MV8obnVtYmVyKSIgdGl0bGU9IjQxIChudW1iZXIpIj40MTwvYT4gYW5kIGRpcmVjdGx5IHByZWNlZGluZyA8YSBocmVmPSIvd2lraS80M18obnVtYmVyKSIgdGl0bGU9IjQzIChudW1iZXIpIj40MzwvYT4uIFRoZSBudW1iZXIgaGFzIHJlY2VpdmVkIGNvbnNpZGVyYWJsZSBhdHRlbnRpb24gaW4gcG9wdWxhciBjdWx0dXJlIGFzIGEgcmVzdWx0IG9mIGl0cyBjZW50cmFsIGFwcGVhcmFuY2UgaW4gPGk+PGEgaHJlZj0iL3dpa2kvVGhlX0hpdGNoaGlrZXIlMjdzX0d1aWRlX3RvX3RoZV9HYWxheHkiIHRpdGxlPSJUaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHkiPlRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eTwvYT48L2k+IGFzIHRoZSAiPGEgaHJlZj0iL3dpa2kvUGhyYXNlc19mcm9tX1RoZV9IaXRjaGhpa2VyJTI3c19HdWlkZV90b190aGVfR2FsYXh5I0Fuc3dlcl90b190aGVfVWx0aW1hdGVfUXVlc3Rpb25fb2ZfTGlmZS4yQ190aGVfVW5pdmVyc2UuMkNfYW5kX0V2ZXJ5dGhpbmdfLjI4NDIuMjkiIHRpdGxlPSJQaHJhc2VzIGZyb20gVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5Ij5BbnN3ZXIgdG8gVGhlIFVsdGltYXRlIFF1ZXN0aW9uIG9mIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmc8L2E+Ii48L3A+Cis8cD48L3A+Cis8ZGl2IGlkPSJ0b2MiIGNsYXNzPSJ0b2MiPgorPGRpdiBpZD0idG9jdGl0bGUiPgorPGgyPkNvbnRlbnRzPC9oMj4KKzwvZGl2PgorPHVsPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMSI+PGEgaHJlZj0iI01hdGhlbWF0aWNzIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj4xPC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+TWF0aGVtYXRpY3M8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTEgdG9jc2VjdGlvbi0yIj48YSBocmVmPSIjU2NpZW5jZSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+Mjwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlNjaWVuY2U8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTEgdG9jc2VjdGlvbi0zIj48YSBocmVmPSIjVGVjaG5vbG9neSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+Mzwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlRlY2hub2xvZ3k8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTEgdG9jc2VjdGlvbi00Ij48YSBocmVmPSIjQXN0cm9ub215Ij48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj40PC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+QXN0cm9ub215PC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tNSI+PGEgaHJlZj0iI1JlbGlnaW9uIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj41PC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+UmVsaWdpb248L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTEgdG9jc2VjdGlvbi02Ij48YSBocmVmPSIjUG9wdWxhcl9jdWx0dXJlIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj42PC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+UG9wdWxhciBjdWx0dXJlPC9zcGFuPjwvYT4KKzx1bD4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMiB0b2NzZWN0aW9uLTciPjxhIGhyZWY9IiNUaGVfSGl0Y2hoaWtlci4yN3NfR3VpZGVfdG9fdGhlX0dhbGF4eSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+Ni4xPC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+PGk+VGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5PC9pPjwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMiB0b2NzZWN0aW9uLTgiPjxhIGhyZWY9IiNXb3Jrc19vZl9MZXdpc19DYXJyb2xsIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj42LjI8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5Xb3JrcyBvZiBMZXdpcyBDYXJyb2xsPC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0yIHRvY3NlY3Rpb24tOSI+PGEgaHJlZj0iI011c2ljIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj42LjM8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5NdXNpYzwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMiB0b2NzZWN0aW9uLTEwIj48YSBocmVmPSIjVGVsZXZpc2lvbl9hbmRfZmlsbSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+Ni40PC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+VGVsZXZpc2lvbiBhbmQgZmlsbTwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMiB0b2NzZWN0aW9uLTExIj48YSBocmVmPSIjVmlkZW9fZ2FtZXMiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjYuNTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlZpZGVvIGdhbWVzPC9zcGFuPjwvYT48L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0yIHRvY3NlY3Rpb24tMTIiPjxhIGhyZWY9IiNTcG9ydHMiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjYuNjwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlNwb3J0czwvc3Bhbj48L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpIGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMTMiPjxhIGhyZWY9IiNPdGhlcl9maWVsZHMiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjc8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5PdGhlciBmaWVsZHM8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTEgdG9jc2VjdGlvbi0xNCI+PGEgaHJlZj0iI090aGVyX2xhbmd1YWdlcyI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+ODwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPk90aGVyIGxhbmd1YWdlczwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTE1Ij48YSBocmVmPSIjUmVmZXJlbmNlcyI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+OTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlJlZmVyZW5jZXM8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9InRvY2xldmVsLTEgdG9jc2VjdGlvbi0xNiI+PGEgaHJlZj0iI0V4dGVybmFsX2xpbmtzIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj4xMDwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPkV4dGVybmFsIGxpbmtzPC9zcGFuPjwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPHA+PC9wPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9Ik1hdGhlbWF0aWNzIj5NYXRoZW1hdGljczwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249MSIgdGl0bGU9IkVkaXQgc2VjdGlvbjogTWF0aGVtYXRpY3MiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8dWw+Cis8bGk+Rm9ydHktdHdvIGlzIGEgPGEgaHJlZj0iL3dpa2kvUHJvbmljX251bWJlciIgdGl0bGU9IlByb25pYyBudW1iZXIiPnByb25pYyBudW1iZXI8L2E+IGFuZCBhbiA8YSBocmVmPSIvd2lraS9BYnVuZGFudF9udW1iZXIiIHRpdGxlPSJBYnVuZGFudCBudW1iZXIiPmFidW5kYW50IG51bWJlcjwvYT47IGl0cyA8YSBocmVmPSIvd2lraS9QcmltZV9mYWN0b3JpemF0aW9uIiB0aXRsZT0iUHJpbWUgZmFjdG9yaXphdGlvbiIgY2xhc3M9Im13LXJlZGlyZWN0Ij5wcmltZSBmYWN0b3JpemF0aW9uPC9hPiAyJiMxNjA7wrcmIzE2MDszJiMxNjA7wrcmIzE2MDs3IG1ha2VzIGl0IHRoZSBzZWNvbmQgPGEgaHJlZj0iL3dpa2kvU3BoZW5pY19udW1iZXIiIHRpdGxlPSJTcGhlbmljIG51bWJlciI+c3BoZW5pYyBudW1iZXI8L2E+IGFuZCBhbHNvIHRoZSBzZWNvbmQgb2YgdGhlIGZvcm0geyYjMTYwOzImIzE2MDvCtyYjMTYwOzMmIzE2MDvCtyYjMTYwOzxpPnI8L2k+JiMxNjA7fS4gQXMgd2l0aCBhbGwgc3BoZW5pYyBudW1iZXJzIG9mIHRoaXMgZm9ybSwgdGhlIDxhIGhyZWY9Ii93aWtpL0FsaXF1b3Rfc3VtIiB0aXRsZT0iQWxpcXVvdCBzdW0iIGNsYXNzPSJtdy1yZWRpcmVjdCI+YWxpcXVvdDwvYT4gc3VtIGlzIDxhIGhyZWY9Ii93aWtpL0FidW5kYW50X251bWJlciIgdGl0bGU9IkFidW5kYW50IG51bWJlciI+YWJ1bmRhbnQ8L2E+IGJ5IDEyLiA0MiBpcyBhbHNvIHRoZSBzZWNvbmQgc3BoZW5pYyBudW1iZXIgdG8gYmUgYnJhY2tldGVkIGJ5IDxhIGhyZWY9Ii93aWtpL1R3aW5fcHJpbWUiIHRpdGxlPSJUd2luIHByaW1lIj50d2luIHByaW1lczwvYT47IDxhIGhyZWY9Ii93aWtpLzMwXyhudW1iZXIpIiB0aXRsZT0iMzAgKG51bWJlcikiPjMwPC9hPiBpcyBhbHNvIGEgcHJvbmljIG51bWJlciBhbmQgYWxzbyByZXN0cyBiZXR3ZWVuIHR3byBwcmltZXMuIDQyIGhhcyBhIDE0IG1lbWJlciA8YSBocmVmPSIvd2lraS9BbGlxdW90X3NlcXVlbmNlIiB0aXRsZT0iQWxpcXVvdCBzZXF1ZW5jZSI+YWxpcXVvdCBzZXF1ZW5jZTwvYT4gNDIsIDU0LCA2NiwgNzgsIDkwLCAxNDQsIDI1OSwgNDUsIDMzLCAxNSwgOSwgNCwgMywgMSwgMCBhbmQgaXMgaXRzZWxmIHBhcnQgb2YgdGhlIDxhIGhyZWY9Ii93aWtpL0FsaXF1b3Rfc2VxdWVuY2UiIHRpdGxlPSJBbGlxdW90IHNlcXVlbmNlIj5hbGlxdW90IHNlcXVlbmNlPC9hPiBjb21tZW5jaW5nIHdpdGggdGhlIGZpcnN0IHNwaGVuaWMgbnVtYmVyIDxhIGhyZWY9Ii93aWtpLzMwXyhudW1iZXIpIiB0aXRsZT0iMzAgKG51bWJlcikiPjMwPC9hPi4gRnVydGhlciwgNDIgaXMgdGhlIDEwdGggbWVtYmVyIG9mIHRoZSAzLWFsaXF1b3QgdHJlZS48L2xpPgorPGxpPkl0IGlzIHRoZSB0aGlyZCA8YSBocmVmPSIvd2lraS9QcmltYXJ5X3BzZXVkb3BlcmZlY3RfbnVtYmVyIiB0aXRsZT0iUHJpbWFyeSBwc2V1ZG9wZXJmZWN0IG51bWJlciI+cHJpbWFyeSBwc2V1ZG9wZXJmZWN0IG51bWJlcjwvYT4uPC9saT4KKzxsaT5JdCBpcyBhIDxhIGhyZWY9Ii93aWtpL0NhdGFsYW5fbnVtYmVyIiB0aXRsZT0iQ2F0YWxhbiBudW1iZXIiPkNhdGFsYW4gbnVtYmVyPC9hPi4gQ29uc2VxdWVudGx5OyA0MiBpcyB0aGUgbnVtYmVyIG9mIDxhIGhyZWY9Ii93aWtpL05vbmNyb3NzaW5nX3BhcnRpdGlvbiIgdGl0bGU9Ik5vbmNyb3NzaW5nIHBhcnRpdGlvbiI+bm9uY3Jvc3NpbmcgcGFydGl0aW9uczwvYT4gb2YgYSBzZXQgb2YgZml2ZSBlbGVtZW50cywgdGhlIG51bWJlciBvZiB0cmlhbmd1bGF0aW9ucyBvZiBhIDxhIGhyZWY9Ii93aWtpL0hlcHRhZ29uIiB0aXRsZT0iSGVwdGFnb24iPmhlcHRhZ29uPC9hPiwgdGhlIG51bWJlciBvZiByb290ZWQgb3JkZXJlZCBiaW5hcnkgPGEgaHJlZj0iL3dpa2kvVHJlZV8oZ3JhcGhfdGhlb3J5KSIgdGl0bGU9IlRyZWUgKGdyYXBoIHRoZW9yeSkiPnRyZWVzPC9hPiB3aXRoIHNpeCBsZWF2ZXMsIHRoZSBudW1iZXIgb2Ygd2F5cyBpbiB3aGljaCBmaXZlIHBhaXJzIG9mIG5lc3RlZCBwYXJlbnRoZXNlcyBjYW4gYmUgYXJyYW5nZWQsIGV0Yy48L2xpPgorPGxpPkl0IGlzIHRoZSBudW1iZXIgb2YgPGEgaHJlZj0iL3dpa2kvSW50ZWdlcl9wYXJ0aXRpb24iIHRpdGxlPSJJbnRlZ2VyIHBhcnRpdGlvbiIgY2xhc3M9Im13LXJlZGlyZWN0Ij5wYXJ0aXRpb25zPC9hPiBvZiAxMCAtIHRoZSBudW1iZXIgb2Ygd2F5cyBvZiBleHByZXNzaW5nIDEwIGFzIGEgc3VtIG9mIHBvc2l0aXZlIGludGVnZXJzIChub3RlIGEgZGlmZmVyZW50IHNlbnNlIG9mIHBhcnRpdGlvbiBmcm9tIHRoYXQgYWJvdmUpLjwvbGk+Cis8L3VsPgorPGRpdiBjbGFzcz0idGh1bWIgdHJpZ2h0Ij4KKzxkaXYgY2xhc3M9InRodW1iaW5uZXIiIHN0eWxlPSJ3aWR0aDoyMjJweDsiPjxhIGhyZWY9Ii93aWtpL0ZpbGU6U2ltcGxlX01hZ2ljX0N1YmUuc3ZnIiBjbGFzcz0iaW1hZ2UiPjxpbWcgYWx0PSIiIHNyYz0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi82LzYzL1NpbXBsZV9NYWdpY19DdWJlLnN2Zy8yMjBweC1TaW1wbGVfTWFnaWNfQ3ViZS5zdmcucG5nIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjIwNSIgY2xhc3M9InRodW1iaW1hZ2UiIHNyY3NldD0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi82LzYzL1NpbXBsZV9NYWdpY19DdWJlLnN2Zy8zMzBweC1TaW1wbGVfTWFnaWNfQ3ViZS5zdmcucG5nIDEuNXgsIC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvNi82My9TaW1wbGVfTWFnaWNfQ3ViZS5zdmcvNDQwcHgtU2ltcGxlX01hZ2ljX0N1YmUuc3ZnLnBuZyAyeCIgLz48L2E+Cis8ZGl2IGNsYXNzPSJ0aHVtYmNhcHRpb24iPgorPGRpdiBjbGFzcz0ibWFnbmlmeSI+PGEgaHJlZj0iL3dpa2kvRmlsZTpTaW1wbGVfTWFnaWNfQ3ViZS5zdmciIGNsYXNzPSJpbnRlcm5hbCIgdGl0bGU9IkVubGFyZ2UiPjxpbWcgc3JjPSIvL2JpdHMud2lraW1lZGlhLm9yZy9zdGF0aWMtMS4yM3dtZjEwL3NraW5zL2NvbW1vbi9pbWFnZXMvbWFnbmlmeS1jbGlwLnBuZyIgd2lkdGg9IjE1IiBoZWlnaHQ9IjExIiBhbHQ9IiIgLz48L2E+PC9kaXY+CitUaGUgMyYjMTYwO8OXJiMxNjA7MyYjMTYwO8OXJiMxNjA7MyBtYWdpYyBjdWJlIHdpdGggcm93cyBzdW1taW5nIHRvIDQyLjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzx1bD4KKzxsaT5HaXZlbiAyNyBzYW1lLXNpemUgY3ViZXMgd2hvc2Ugbm9taW5hbCB2YWx1ZXMgcHJvZ3Jlc3MgZnJvbSAxIHRvIDI3LCBhIDPDlzPDlzMgPGEgaHJlZj0iL3dpa2kvTWFnaWNfY3ViZSIgdGl0bGU9Ik1hZ2ljIGN1YmUiPm1hZ2ljIGN1YmU8L2E+IGNhbiBiZSBjb25zdHJ1Y3RlZCBzdWNoIHRoYXQgZXZlcnkgcm93LCBjb2x1bW4sIGFuZCBjb3JyaWRvciwgYW5kIGV2ZXJ5IGRpYWdvbmFsIHBhc3NpbmcgdGhyb3VnaCB0aGUgY2VudGVyLCBpcyBjb21wb3NlZCBvZiAzIGN1YmVzIHdob3NlIHN1bSBvZiB2YWx1ZXMgaXMgNDIuPC9saT4KKzxsaT5JdCBpcyB0aGUgdGhpcmQgPGEgaHJlZj0iL3dpa2kvUG9seWdvbmFsX251bWJlciIgdGl0bGU9IlBvbHlnb25hbCBudW1iZXIiPnBlbnRhZGVjYWdvbmFsIG51bWJlcjwvYT4uIEl0IGlzIGEgPGEgaHJlZj0iL3dpa2kvTWVhbmRlcl8obWF0aGVtYXRpY3MpIiB0aXRsZT0iTWVhbmRlciAobWF0aGVtYXRpY3MpIj5tZWFuZHJpYyBudW1iZXI8L2E+IGFuZCBhbiA8YSBocmVmPSIvd2lraS9NZWFuZGVyXyhtYXRoZW1hdGljcykjT3Blbl9tZWFuZHJpY19udW1iZXJzIiB0aXRsZT0iTWVhbmRlciAobWF0aGVtYXRpY3MpIj5vcGVuIG1lYW5kcmljIG51bWJlcjwvYT4uPC9saT4KKzxsaT5JdCBpcyBjb25qZWN0dXJlZCB0byBiZSB0aGUgc2NhbGluZyBmYWN0b3IgaW4gdGhlIDxhIGhyZWY9Ii93aWtpL0xlYWRpbmctb3JkZXIiIHRpdGxlPSJMZWFkaW5nLW9yZGVyIiBjbGFzcz0ibXctcmVkaXJlY3QiPmxlYWRpbmcgb3JkZXI8L2E+IHRlcm0gb2YgdGhlICJzaXh0aCA8YSBocmVmPSIvd2lraS9Nb21lbnRfKG1hdGhlbWF0aWNzKSIgdGl0bGU9Ik1vbWVudCAobWF0aGVtYXRpY3MpIj5tb21lbnQ8L2E+IG9mIHRoZSA8YSBocmVmPSIvd2lraS9CZXJuaGFyZF9SaWVtYW5uIiB0aXRsZT0iQmVybmhhcmQgUmllbWFubiI+UmllbWFubjwvYT4gPGEgaHJlZj0iL3dpa2kvUmllbWFubl96ZXRhX2Z1bmN0aW9uIiB0aXRsZT0iUmllbWFubiB6ZXRhIGZ1bmN0aW9uIj56ZXRhIGZ1bmN0aW9uPC9hPiIuIEluIHBhcnRpY3VsYXIsIENvbnJleSAmYW1wOyBHaG9zaCBoYXZlIGNvbmplY3R1cmVkIHRoYXQKKzxkbD4KKzxkZD48aW1nIGNsYXNzPSJ0ZXgiIGFsdD0iezEgXG92ZXIgVH1caW50XzBeVCBcbGVmdHwgXHpldGFcbGVmdCh7MSBcb3ZlciAyfSArIGl0XHJpZ2h0KSBccmlnaHR8XjZcLGR0IFxzaW0gezQyIFxvdmVyIDkhfVxwcm9kX3AgXGxlZnRcezEtezFcb3ZlciBwfVxyaWdodFx9XjQgXGxlZnQoIDEgKyB7NCBcb3ZlciBwfSArIHsxIFxvdmVyIHBeMn0gXHJpZ2h0KSBcbG9nXjkgVCwgIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvbWF0aC8xLzMvMi8xMzIwZjNkYTRiYzZmYzUxNDVmZmUwODExMTU1MThjZS5wbmciIC8+PC9kZD4KKzxkZD4uPC9kZD4KKzxkZD53aGVyZSB0aGUgPGEgaHJlZj0iL3dpa2kvSW5maW5pdGVfcHJvZHVjdCIgdGl0bGU9IkluZmluaXRlIHByb2R1Y3QiPmluZmluaXRlIHByb2R1Y3Q8L2E+IGlzIG92ZXIgYWxsIHByaW1lIG51bWJlcnMsIDxpPnA8L2k+LjxzdXAgaWQ9ImNpdGVfcmVmLTEiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMSI+PHNwYW4+Wzwvc3Bhbj4xPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PHN1cCBpZD0iY2l0ZV9yZWYtMiIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0yIj48c3Bhbj5bPC9zcGFuPjI8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L2RkPgorPC9kbD4KKzwvbGk+Cis8bGk+NDIgaXMgYSA8YSBocmVmPSIvd2lraS9TdCVDMyVCOHJtZXJfbnVtYmVyIiB0aXRsZT0iU3TDuHJtZXIgbnVtYmVyIj5TdMO4cm1lciBudW1iZXI8L2E+LjwvbGk+Cis8bGk+SW4gYmFzZSAxMCwgdGhpcyBudW1iZXIgaXMgYSA8YSBocmVmPSIvd2lraS9IYXJzaGFkX251bWJlciIgdGl0bGU9IkhhcnNoYWQgbnVtYmVyIj5IYXJzaGFkIG51bWJlcjwvYT4gYW5kIGEgPGEgaHJlZj0iL3dpa2kvU2VsZl9udW1iZXIiIHRpdGxlPSJTZWxmIG51bWJlciI+c2VsZiBudW1iZXI8L2E+LCB3aGlsZSBpdCBpcyBhIDxhIGhyZWY9Ii93aWtpL1JlcGRpZ2l0IiB0aXRsZT0iUmVwZGlnaXQiPnJlcGRpZ2l0PC9hPiBpbiBiYXNlIDQgKGFzIDIyMikuPC9saT4KKzxsaT40MiBpcyB0aGUgb25seSBrbm93biB2YWx1ZSB0aGF0IGlzIHRoZSBudW1iZXIgb2Ygc2V0cyBvZiBmb3VyIGRpc3RpbmN0IHBvc2l0aXZlIGludGVnZXJzIGEsYixjLGQsIGVhY2ggbGVzcyB0aGFuIHRoZSB2YWx1ZSBpdHNlbGYsIHN1Y2ggdGhhdCBhYi1jZCwgYWMtYmQsIGFuZCBhZC1iYyBhcmUgZWFjaCBtdWx0aXBsZXMgb2YgdGhlIHZhbHVlLiBXaGV0aGVyIHRoZXJlIGFyZSBvdGhlciB2YWx1ZXMgcmVtYWlucyBhbiBvcGVuIHF1ZXN0aW9uLjxzdXAgaWQ9ImNpdGVfcmVmLTMiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMyI+PHNwYW4+Wzwvc3Bhbj4zPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzxsaT40MiBpcyBhICgyLDYpLXBlcmZlY3QgbnVtYmVyICg8YSBocmVmPSIvd2lraS9TdXBlcnBlcmZlY3RfbnVtYmVyIiB0aXRsZT0iU3VwZXJwZXJmZWN0IG51bWJlciI+c3VwZXItbXVsdGlwZXJmZWN0PC9hPiksIGFzIDxpbWcgY2xhc3M9InRleCIgYWx0PSJcc2lnbWFeMihuKT1cc2lnbWEoXHNpZ21hKG4pKT02blwsIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvbWF0aC9kL2YvNS9kZjVlZjk3Yjg0MGJiMmViZGM0ODI2YjI4N2NmMWFhNy5wbmciIC8+PHN1cCBpZD0iY2l0ZV9yZWYtNCIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS00Ij48c3Bhbj5bPC9zcGFuPjQ8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L2xpPgorPGxpPjQyIGlzIGEgcGVyZmVjdCBzY29yZSBvbiB0aGUgVVNBIE1hdGggT2x5bXBpYWQgKDxhIGhyZWY9Ii93aWtpL1VuaXRlZF9TdGF0ZXNfb2ZfQW1lcmljYV9NYXRoZW1hdGljYWxfT2x5bXBpYWQiIHRpdGxlPSJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EgTWF0aGVtYXRpY2FsIE9seW1waWFkIj5VU0FNTzwvYT4pPHN1cCBpZD0iY2l0ZV9yZWYtNSIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS01Ij48c3Bhbj5bPC9zcGFuPjU8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD4gYW5kIDxhIGhyZWY9Ii93aWtpL0ludGVybmF0aW9uYWxfTWF0aGVtYXRpY2FsX09seW1waWFkIiB0aXRsZT0iSW50ZXJuYXRpb25hbCBNYXRoZW1hdGljYWwgT2x5bXBpYWQiPkludGVybmF0aW9uYWwgTWF0aGVtYXRpY2FsIE9seW1waWFkPC9hPiAoSU1PKS48c3VwIGlkPSJjaXRlX3JlZi02IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTYiPjxzcGFuPls8L3NwYW4+NjxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cis8bGk+NDIgaXMgdGhlIG1heGltdW0gb2YgY29yZSBwb2ludHMgYXdhcmRlZCBpbiBJbnRlcm5hdGlvbmFsIEJhY2NhbGF1cmVhdGUgRGlwbG9tYSBQcm9ncmFtbWUuPC9saT4KKzxsaT40MiBpcyB0aGUgcmVzdWx0aW5nIG51bWJlciBvZiB0aGUgb3JpZ2luYWwgPGEgaHJlZj0iL3dpa2kvU21pdGhfbnVtYmVyIiB0aXRsZT0iU21pdGggbnVtYmVyIj5TbWl0aCBudW1iZXI8L2E+ICg0OTM3Nzc1KTogQm90aCB0aGUgc3VtIG9mIGl0cyBkaWdpdHMgKDQrOSszKzcrNys3KzUpIGFzIHRoZSBzdW0gb2YgdGhlIGRpZ2l0cyBpbiBpdHMgcHJpbWUgZmFjdG9yaXphdGlvbiAoMys1KzUrKDYrNSs4KzMrNykpIHJlc3VsdCBpbiA0Mi48L2xpPgorPGxpPlRoZSBkaW1lbnNpb24gb2YgdGhlIDxhIGhyZWY9Ii93aWtpL0JvcmVsX3N1YmFsZ2VicmEiIHRpdGxlPSJCb3JlbCBzdWJhbGdlYnJhIiBjbGFzcz0ibXctcmVkaXJlY3QiPkJvcmVsIHN1YmFsZ2VicmE8L2E+IGluIHRoZSA8YSBocmVmPSIvd2lraS9FeGNlcHRpb25hbF9MaWVfYWxnZWJyYSIgdGl0bGU9IkV4Y2VwdGlvbmFsIExpZSBhbGdlYnJhIiBjbGFzcz0ibXctcmVkaXJlY3QiPmV4Y2VwdGlvbmFsIExpZSBhbGdlYnJhPC9hPiA8YSBocmVmPSIvd2lraS9FNl8obWF0aGVtYXRpY3MpIiB0aXRsZT0iRTYgKG1hdGhlbWF0aWNzKSI+PGk+ZTwvaT48c3ViPjY8L3N1Yj48L2E+IGlzIDQyLjwvbGk+Cis8L3VsPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlNjaWVuY2UiPlNjaWVuY2U8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTIiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFNjaWVuY2UiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8dWw+Cis8bGk+VGhlIDxhIGhyZWY9Ii93aWtpL0F0b21pY19udW1iZXIiIHRpdGxlPSJBdG9taWMgbnVtYmVyIj5hdG9taWMgbnVtYmVyPC9hPiBvZiA8YSBocmVmPSIvd2lraS9Nb2x5YmRlbnVtIiB0aXRsZT0iTW9seWJkZW51bSI+bW9seWJkZW51bTwvYT4uPC9saT4KKzxsaT5UaGUgYW5nbGUgcm91bmRlZCB0byB3aG9sZSBkZWdyZWVzIGZvciB3aGljaCBhIDxhIGhyZWY9Ii93aWtpL1dhdGVyX2xlbnMiIHRpdGxlPSJXYXRlciBsZW5zIiBjbGFzcz0ibXctcmVkaXJlY3QiPnJhaW5ib3c8L2E+IGFwcGVhcnMgKHRoZSBjcml0aWNhbCBhbmdsZSkuPC9saT4KKzxsaT5JbiAxOTY2LCBtYXRoZW1hdGljaWFuIDxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1QYXVsX0Nvb3Blcl8obWF0aGVtYXRpY2lhbikmYW1wO2FjdGlvbj1lZGl0JmFtcDtyZWRsaW5rPTEiIGNsYXNzPSJuZXciIHRpdGxlPSJQYXVsIENvb3BlciAobWF0aGVtYXRpY2lhbikgKHBhZ2UgZG9lcyBub3QgZXhpc3QpIj5QYXVsIENvb3BlcjwvYT4gdGhlb3JpemVkIHRoYXQgdGhlIGZhc3Rlc3QsIG1vc3QgZWZmaWNpZW50IHdheSB0byB0cmF2ZWwgYWNyb3NzIGNvbnRpbmVudHMgd291bGQgYmUgdG8gYm9yZSBhIHN0cmFpZ2h0IGhvbGxvdyB0dWJlIGRpcmVjdGx5IHRocm91Z2ggdGhlIDxhIGhyZWY9Ii93aWtpL0VhcnRoIiB0aXRsZT0iRWFydGgiPkVhcnRoPC9hPiwgY29ubmVjdGluZyBhIHNldCBvZiA8YSBocmVmPSIvd2lraS9BbnRpcG9kZXMiIHRpdGxlPSJBbnRpcG9kZXMiPmFudGlwb2RlczwvYT4sIHJlbW92ZSB0aGUgYWlyIGZyb20gdGhlIHR1YmUgYW5kIGZhbGwgdGhyb3VnaC48c3VwIGlkPSJjaXRlX3JlZi03IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTciPjxzcGFuPls8L3NwYW4+NzxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPiBUaGUgZmlyc3QgaGFsZiBvZiB0aGUgam91cm5leSBjb25zaXN0cyBvZiBmcmVlLWZhbGwgYWNjZWxlcmF0aW9uLCB3aGlsZSB0aGUgc2Vjb25kIGhhbGYgY29uc2lzdHMgb2YgYW4gZXhhY3RseSBlcXVhbCBkZWNlbGVyYXRpb24uIFRoZSB0aW1lIGZvciBzdWNoIGEgam91cm5leSB3b3JrcyBvdXQgdG8gYmUgNDImIzE2MDttaW51dGVzLiBFdmVuIGlmIHRoZSB0dWJlIGRvZXMgbm90IHBhc3MgdGhyb3VnaCB0aGUgZXhhY3QgY2VudGVyIG9mIHRoZSBFYXJ0aCwgdGhlIHRpbWUgZm9yIGEgam91cm5leSBwb3dlcmVkIGVudGlyZWx5IGJ5IGdyYXZpdHkgKGtub3duIGFzIGEgPGEgaHJlZj0iL3dpa2kvR3Jhdml0eV90cmFpbiIgdGl0bGU9IkdyYXZpdHkgdHJhaW4iPmdyYXZpdHkgdHJhaW48L2E+KSBhbHdheXMgd29ya3Mgb3V0IHRvIGJlIDQyJiMxNjA7bWludXRlcywgc28gbG9uZyBhcyB0aGUgdHViZSByZW1haW5zIGZyaWN0aW9uLWZyZWUsIGFzIHdoaWxlIHRoZSBmb3JjZSBvZiBncmF2aXR5IHdvdWxkIGJlIGxlc3NlbmVkLCB0aGUgZGlzdGFuY2UgdHJhdmVsZWQgaXMgcmVkdWNlZCBhdCBhbiBlcXVhbCByYXRlLjxzdXAgaWQ9ImNpdGVfcmVmLTgiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtOCI+PHNwYW4+Wzwvc3Bhbj44PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PHN1cCBpZD0iY2l0ZV9yZWYtOSIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS05Ij48c3Bhbj5bPC9zcGFuPjk8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD4gKFRoZSBzYW1lIGlkZWEgd2FzIHByb3Bvc2VkLCB3aXRob3V0IGNhbGN1bGF0aW9uIGJ5IDxhIGhyZWY9Ii93aWtpL0xld2lzX0NhcnJvbGwiIHRpdGxlPSJMZXdpcyBDYXJyb2xsIj5MZXdpcyBDYXJyb2xsPC9hPiBpbiAxODkzIGluIDxpPjxhIGhyZWY9Ii93aWtpL1N5bHZpZV9hbmRfQnJ1bm9fQ29uY2x1ZGVkIiB0aXRsZT0iU3lsdmllIGFuZCBCcnVubyBDb25jbHVkZWQiIGNsYXNzPSJtdy1yZWRpcmVjdCI+U3lsdmllIGFuZCBCcnVubyBDb25jbHVkZWQ8L2E+PC9pPi48c3VwIGlkPSJjaXRlX3JlZi0xMCIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xMCI+PHNwYW4+Wzwvc3Bhbj4xMDxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPik8L2xpPgorPC91bD4KKzxoMj48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJUZWNobm9sb2d5Ij5UZWNobm9sb2d5PC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0zIiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBUZWNobm9sb2d5Ij5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpL01hZ2ljX251bWJlcl8ocHJvZ3JhbW1pbmcpIiB0aXRsZT0iTWFnaWMgbnVtYmVyIChwcm9ncmFtbWluZykiPk1hZ2ljIG51bWJlcnM8L2E+IHVzZWQgYnkgPGEgaHJlZj0iL3dpa2kvUHJvZ3JhbW1lciIgdGl0bGU9IlByb2dyYW1tZXIiPnByb2dyYW1tZXJzPC9hPjoKKzx1bD4KKzxsaT5UaGUgZ2x5cGgsIG9yIGNoYXJhY3RlciwgY29ycmVzcG9uZGluZyB0byB0aGUgbnVtYmVyIDQyIGluIHRoZSA8YSBocmVmPSIvd2lraS9QcmludGFibGVfY2hhcmFjdGVycyIgdGl0bGU9IlByaW50YWJsZSBjaGFyYWN0ZXJzIiBjbGFzcz0ibXctcmVkaXJlY3QiPkFTQ0lJPC9hPiBjaGFyYWN0ZXIgc2V0LCBpcyAqLCB0aGUgPGEgaHJlZj0iL3dpa2kvQXN0ZXJpc2siIHRpdGxlPSJBc3RlcmlzayI+YXN0ZXJpc2s8L2E+LCBjb21tb25seSBrbm93biBhcyB0aGUgPGEgaHJlZj0iL3dpa2kvV2lsZGNhcmRfY2hhcmFjdGVyIiB0aXRsZT0iV2lsZGNhcmQgY2hhcmFjdGVyIj53aWxkY2FyZCBjaGFyYWN0ZXI8L2E+LjwvbGk+Cis8bGk+SW4gdGhlIDxhIGhyZWY9Ii93aWtpL1RhZ2dlZF9JbWFnZV9GaWxlX0Zvcm1hdCIgdGl0bGU9IlRhZ2dlZCBJbWFnZSBGaWxlIEZvcm1hdCI+VElGRjwvYT4gaW1hZ2UgZmlsZSBmb3JtYXQsIHRoZSBzZWNvbmQgPGEgaHJlZj0iL3dpa2kvMTYtYml0IiB0aXRsZT0iMTYtYml0Ij4xNi1iaXQ8L2E+IDxhIGhyZWY9Ii93aWtpL1dvcmRfKGRhdGFfdHlwZSkiIHRpdGxlPSJXb3JkIChkYXRhIHR5cGUpIiBjbGFzcz0ibXctcmVkaXJlY3QiPndvcmQ8L2E+IG9mIGV2ZXJ5IGZpbGUgaXMgNDIsIHdoaWNoIGlzIHVzZWQgdG9nZXRoZXIgd2l0aCB0aGUgZmlyc3Qgd29yZCB0byBpbmRpY2F0ZSA8YSBocmVmPSIvd2lraS9FbmRpYW5uZXNzIiB0aXRsZT0iRW5kaWFubmVzcyI+Ynl0ZSBvcmRlcjwvYT4uPC9saT4KKzxsaT5JbiB0aGUgPGEgaHJlZj0iL3dpa2kvUmVpc2VyNCIgdGl0bGU9IlJlaXNlcjQiPnJlaXNlcjQ8L2E+IGZpbGUgc3lzdGVtLCA0MiBpcyB0aGUgPGEgaHJlZj0iL3dpa2kvSW5vZGUiIHRpdGxlPSJJbm9kZSI+aW5vZGU8L2E+IG51bWJlciBvZiB0aGUgPGEgaHJlZj0iL3dpa2kvUm9vdF9kaXJlY3RvcnkiIHRpdGxlPSJSb290IGRpcmVjdG9yeSI+cm9vdCBkaXJlY3Rvcnk8L2E+LjwvbGk+Cis8bGk+SW4gdGhlIG1pbGl0YXJ5IDxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd3d3LmlyaWcxMDYub3JnL2RvY3MvMTA2LTA5L2NoYXB0ZXIxMC5wZGYiPklSSUcgMTA2IENoYXB0ZXIgMTA8L2E+IGRhdGEgcmVjb3JkaW5nIHN0YW5kYXJkLCB0aGUgaGV4IHZhbHVlIDB4NDY0RjUyNTQ1OTc0Nzc2RiAoQVNDSUkgIkZPUlRZdHdvIikgaXMgdXNlZCBhcyBhIG1hZ2ljIG51bWJlciB0byBpZGVudGlmeSBkaXJlY3RvcnkgYmxvY2tzLjwvbGk+Cis8L3VsPgorPC9saT4KKzxsaT5UaGUgPGEgaHJlZj0iL3dpa2kvR05VX0NfTGlicmFyeSIgdGl0bGU9IkdOVSBDIExpYnJhcnkiPkdOVSBDIExpYnJhcnk8L2E+LCBhIHNldCBvZiBzdGFuZGFyZCByb3V0aW5lcyBhdmFpbGFibGUgZm9yIHVzZSBpbiA8YSBocmVmPSIvd2lraS9Db21wdXRlcl9wcm9ncmFtbWluZyIgdGl0bGU9IkNvbXB1dGVyIHByb2dyYW1taW5nIj5jb21wdXRlciBwcm9ncmFtbWluZzwvYT4sIGNvbnRhaW5zIGEgPGEgaHJlZj0iL3dpa2kvU3Vicm91dGluZSIgdGl0bGU9IlN1YnJvdXRpbmUiPmZ1bmN0aW9uPC9hPuKAlDxiPjx0dD5tZW1mcm9iKCk8L3R0PjwvYj7igJR3aGljaCBwZXJmb3JtcyBhbiA8YSBocmVmPSIvd2lraS9FeGNsdXNpdmVfb3IiIHRpdGxlPSJFeGNsdXNpdmUgb3IiPlhPUjwvYT4gY29tYmluYXRpb24gb2YgYSBnaXZlbiB2YXJpYWJsZSBhbmQgdGhlIDxhIGhyZWY9Ii93aWtpL0JpbmFyeV9udW1lcmFsX3N5c3RlbSIgdGl0bGU9IkJpbmFyeSBudW1lcmFsIHN5c3RlbSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5iaW5hcnk8L2E+IHBhdHRlcm4gMDAxMDEwMTAgKDQyKSBhcyBhbiA8YSBocmVmPSIvd2lraS9YT1JfY2lwaGVyIiB0aXRsZT0iWE9SIGNpcGhlciI+WE9SIGNpcGhlcjwvYT4uPC9saT4KKzxsaT40MiBpcyB0aGUgcmVzdWx0IGdpdmVuIGJ5IHRoZSA8YSBocmVmPSIvd2lraS9XZWJfc2VhcmNoX2VuZ2luZSIgdGl0bGU9IldlYiBzZWFyY2ggZW5naW5lIj53ZWIgc2VhcmNoIGVuZ2luZXM8L2E+IDxhIGhyZWY9Ii93aWtpL0dvb2dsZSIgdGl0bGU9Ikdvb2dsZSI+R29vZ2xlPC9hPiBhbmQgPGEgaHJlZj0iL3dpa2kvV29sZnJhbV9BbHBoYSIgdGl0bGU9IldvbGZyYW0gQWxwaGEiPldvbGZyYW0gQWxwaGE8L2E+IHdoZW4gdGhlIHF1ZXJ5ICI8YSBocmVmPSIvd2lraS9UaGVfYW5zd2VyX3RvX2xpZmVfdGhlX3VuaXZlcnNlX2FuZF9ldmVyeXRoaW5nIiB0aXRsZT0iVGhlIGFuc3dlciB0byBsaWZlIHRoZSB1bml2ZXJzZSBhbmQgZXZlcnl0aGluZyIgY2xhc3M9Im13LXJlZGlyZWN0Ij50aGUgYW5zd2VyIHRvIGxpZmUgdGhlIHVuaXZlcnNlIGFuZCBldmVyeXRoaW5nPC9hPiIgaXMgZW50ZXJlZCBhcyBhIHNlYXJjaC48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpL0hleGFnb25hbF90aWxpbmciIHRpdGxlPSJIZXhhZ29uYWwgdGlsaW5nIj5UaWxpbmcgYSBwbGFuZSB1c2luZyByZWd1bGFyIGhleGFnb25zPC9hPiwgd2hpY2ggaXMgPGEgaHJlZj0iL3dpa2kvSG9uZXljb21iIiB0aXRsZT0iSG9uZXljb21iIj5ob25leWNvbWI8L2E+IGluIGFwcGVhcmFuY2UsIGlzIGFwcHJveGltYXRlZCBpbiBhIDxhIGhyZWY9Ii93aWtpL0hleGFnb25hbF90aWxpbmcjVG9wb2xvZ2ljYWxseV9pZGVudGljYWxfdGlsaW5ncyIgdGl0bGU9IkhleGFnb25hbCB0aWxpbmciPnRvcG9sb2dpY2FsIHNlbnNlPC9hPiB0byBhbiBhY2N1cmFjeSBvZiBiZXR0ZXIgdGhhbiAxJSB1c2luZyBhIDxhIGhyZWY9Ii93aWtpL0JyaWNrd29yayNCb25kcyIgdGl0bGU9IkJyaWNrd29yayI+c3RyZXRjaGVyIGJvbmQgYnJpY2sgcGF0dGVybjwvYT4gd2l0aCBicmlja3Mgb2YgNDIgc3F1YXJlcyAoNiBieSA3KS48c3VwIGlkPSJjaXRlX3JlZi0xMSIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xMSI+PHNwYW4+Wzwvc3Bhbj4xMTxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cis8bGk+VGhlIHBhc3N3b3JkIGV4cGlyYXRpb24gcG9saWN5IGZvciBhIDxhIGhyZWY9Ii93aWtpL1dpbmRvd3NfZG9tYWluIiB0aXRsZT0iV2luZG93cyBkb21haW4iPk1pY3Jvc29mdCBXaW5kb3dzIGRvbWFpbjwvYT4gZGVmYXVsdHMgdG8gNDIgZGF5cy48c3VwIGlkPSJjaXRlX3JlZi0xMiIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xMiI+PHNwYW4+Wzwvc3Bhbj4xMjxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cis8L3VsPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IkFzdHJvbm9teSI+QXN0cm9ub215PC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj00IiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBBc3Ryb25vbXkiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvTWVzc2llcl9vYmplY3QiIHRpdGxlPSJNZXNzaWVyIG9iamVjdCI+TWVzc2llciBvYmplY3Q8L2E+IDxhIGhyZWY9Ii93aWtpL09yaW9uX05lYnVsYSIgdGl0bGU9Ik9yaW9uIE5lYnVsYSI+TTQyPC9hPiwgYSA8YSBocmVmPSIvd2lraS9BcHBhcmVudF9tYWduaXR1ZGUiIHRpdGxlPSJBcHBhcmVudCBtYWduaXR1ZGUiPm1hZ25pdHVkZTwvYT4gNS4wIDxhIGhyZWY9Ii93aWtpL0RpZmZ1c2VfbmVidWxhIiB0aXRsZT0iRGlmZnVzZSBuZWJ1bGEiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ZGlmZnVzZSBuZWJ1bGE8L2E+IGluIHRoZSA8YSBocmVmPSIvd2lraS9Db25zdGVsbGF0aW9uIiB0aXRsZT0iQ29uc3RlbGxhdGlvbiI+Y29uc3RlbGxhdGlvbjwvYT4gPGEgaHJlZj0iL3dpa2kvT3Jpb25fKGNvbnN0ZWxsYXRpb24pIiB0aXRsZT0iT3Jpb24gKGNvbnN0ZWxsYXRpb24pIj5PcmlvbjwvYT4sIGFsc28ga25vd24gYXMgdGhlIDxhIGhyZWY9Ii93aWtpL09yaW9uX05lYnVsYSIgdGl0bGU9Ik9yaW9uIE5lYnVsYSI+T3Jpb24gTmVidWxhPC9hPjwvbGk+Cis8bGk+VGhlIDxhIGhyZWY9Ii93aWtpL05ld19HZW5lcmFsX0NhdGFsb2d1ZSIgdGl0bGU9Ik5ldyBHZW5lcmFsIENhdGFsb2d1ZSI+TmV3IEdlbmVyYWwgQ2F0YWxvZ3VlPC9hPiBvYmplY3QgTkdDIDQyLCBhIDxhIGhyZWY9Ii93aWtpL1NwaXJhbF9nYWxheHkiIHRpdGxlPSJTcGlyYWwgZ2FsYXh5Ij5zcGlyYWwgZ2FsYXh5PC9hPiBpbiB0aGUgY29uc3RlbGxhdGlvbiA8YSBocmVmPSIvd2lraS9QZWdhc3VzXyhjb25zdGVsbGF0aW9uKSIgdGl0bGU9IlBlZ2FzdXMgKGNvbnN0ZWxsYXRpb24pIj5QZWdhc3VzPC9hPjwvbGk+Cis8bGk+SW4gSmFudWFyeSAyMDA0LCA8YSBocmVmPSIvd2lraS9Bc3Rlcm9pZCIgdGl0bGU9IkFzdGVyb2lkIj5hc3Rlcm9pZDwvYT4gPHNwYW4gY2xhc3M9Im5vd3JhcCI+MjAwMSBEQTxzdWI+NDI8L3N1Yj48L3NwYW4+IHdhcyBnaXZlbiB0aGUgcGVybWFuZW50IG5hbWUgPGEgaHJlZj0iL3dpa2kvMjU5MjRfRG91Z2xhc2FkYW1zIiB0aXRsZT0iMjU5MjQgRG91Z2xhc2FkYW1zIj4yNTkyNCBEb3VnbGFzYWRhbXM8L2E+LCBmb3IgdGhlIGF1dGhvciA8YSBocmVmPSIvd2lraS9Eb3VnbGFzX0FkYW1zIiB0aXRsZT0iRG91Z2xhcyBBZGFtcyI+RG91Z2xhcyBBZGFtczwvYT4gd2hvIHBvcHVsYXJpemVkIHRoZSBudW1iZXIgNDIgYW5kIGRpZWQgaW4gMjAwMS4gPGEgaHJlZj0iL3dpa2kvQnJpYW5fRy5fTWFyc2RlbiIgdGl0bGU9IkJyaWFuIEcuIE1hcnNkZW4iPkJyaWFuIEcuIE1hcnNkZW48L2E+LCB0aGUgZGlyZWN0b3Igb2YgdGhlIDxhIGhyZWY9Ii93aWtpL01pbm9yX1BsYW5ldF9DZW50ZXIiIHRpdGxlPSJNaW5vciBQbGFuZXQgQ2VudGVyIj5NaW5vciBQbGFuZXQgQ2VudGVyPC9hPiBhbmQgdGhlIHNlY3JldGFyeSBmb3IgdGhlIG5hbWluZyBjb21taXR0ZWUsIHJlbWFya2VkIHRoYXQsIHdpdGggZXZlbiBoaXMgaW5pdGlhbHMgaW4gdGhlIHByb3Zpc2lvbmFsIGRlc2lnbmF0aW9uLCAiVGhpcyB3YXMgc29ydCBvZiBtYWRlIGZvciBoaW0sIHdhc24ndCBpdD8iPC9saT4KKzxsaT48YSBocmVmPSIvd2lraS9LZXBsZXItNDIiIHRpdGxlPSJLZXBsZXItNDIiPktlcGxlci00MjwvYT4sIGEgcmVkIGR3YXJmIGluIHRoZSBjb25zdGVsbGF0aW9uIDxhIGhyZWY9Ii93aWtpL0N5Z251c18oY29uc3RlbGxhdGlvbikiIHRpdGxlPSJDeWdudXMgKGNvbnN0ZWxsYXRpb24pIj5DeWdudXM8L2E+IGFyb3VuZCB3aGljaCBvcmJpdHMgdGhlIHRocmVlIHNtYWxsZXN0IDxhIGhyZWY9Ii93aWtpL0V4b3BsYW5ldHMiIHRpdGxlPSJFeG9wbGFuZXRzIiBjbGFzcz0ibXctcmVkaXJlY3QiPmV4b3BsYW5ldHM8L2E+IGZvdW5kIHRvIGRhdGUuPC9saT4KKzwvdWw+Cis8aDI+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iUmVsaWdpb24iPlJlbGlnaW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj01IiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBSZWxpZ2lvbiI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMj4KKzx1bD4KKzxsaT5JbiBKYXBhbmVzZSBjdWx0dXJlLCB0aGUgbnVtYmVyIDQyIGlzIGNvbnNpZGVyZWQgdW5sdWNreSBiZWNhdXNlIHRoZSBudW1lcmFscyB3aGVuIHByb25vdW5jZWQgc2VwYXJhdGVseSDigJQgInNoaSBuaSIgKGZvdXIgdHdvKSDigJQgc291bmQgbGlrZSB0aGUgcGhyYXNlLCAidW50byBkZWF0aCIuPHN1cCBpZD0iY2l0ZV9yZWYtMTMiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMTMiPjxzcGFuPls8L3NwYW4+MTM8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L2xpPgorPGxpPlRoZXJlIGFyZSA0MiBwcmluY2lwbGVzIG9mIDxhIGhyZWY9Ii93aWtpL01hJTI3YXQiIHRpdGxlPSJNYSdhdCIgY2xhc3M9Im13LXJlZGlyZWN0Ij5NYSdhdDwvYT4sIHRoZSBBbmNpZW50IEVneXB0aWFuIHBlcnNvbmlmaWNhdGlvbiBvZiBwaHlzaWNhbCBhbmQgbW9yYWwgbGF3LCBvcmRlciwgYW5kIHRydXRoLiBJbiB0aGUganVkZ21lbnQgc2NlbmUgZGVzY3JpYmVkIGluIHRoZSBFZ3lwdGlhbiBhbmQgdGhlIEJvb2sgb2YgdGhlIENvbWluZy9Hb2luZyBGb3J0aCBieSBEYXkgKHRoZSA8YSBocmVmPSIvd2lraS9Cb29rX29mX3RoZV9EZWFkIiB0aXRsZT0iQm9vayBvZiB0aGUgRGVhZCI+Qm9vayBvZiB0aGUgRGVhZDwvYT4gKHdoaWNoIGV2b2x2ZWQgZnJvbSB0aGUgPGEgaHJlZj0iL3dpa2kvQ29mZmluX1RleHRzIiB0aXRsZT0iQ29mZmluIFRleHRzIj5Db2ZmaW4gVGV4dHM8L2E+IGFuZCB0aGUgPGEgaHJlZj0iL3dpa2kvUHlyYW1pZF9UZXh0cyIgdGl0bGU9IlB5cmFtaWQgVGV4dHMiPlB5cmFtaWQgVGV4dHM8L2E+KSksIHRoZXJlIGFyZSA0MiBnb2RzIGFuZCBnb2RkZXNzZXMgb2YgRWd5cHQsIHBlcnNvbmlmeWluZyB0aGUgcHJpbmNpcGxlcyBvZiA8YSBocmVmPSIvd2lraS9NYSUyN2F0IiB0aXRsZT0iTWEnYXQiIGNsYXNzPSJtdy1yZWRpcmVjdCI+TWEnYXQ8L2E+LiBUaGVzZSA0MiBjb3JyZXNwb25kIHRvIHRoZSA0MiA8YSBocmVmPSIvd2lraS9Ob21lXyhFZ3lwdCkiIHRpdGxlPSJOb21lIChFZ3lwdCkiPk5vbWVzPC9hPiAoR292ZXJubWVudGFsIFVuaXRzKSBvZiBFZ3lwdC4gSWYgdGhlIGRlcGFydGVkIHN1Y2Nlc3NmdWxseSBhbnN3ZXJzIGFsbCA0Miwgcy9oZSBiZWNvbWVzIGFuIDxhIGhyZWY9Ii93aWtpL09zaXJpcyIgdGl0bGU9Ik9zaXJpcyI+T3NpcmlzPC9hPi48L2xpPgorPGxpPjQyIGlzIHRoZSBudW1iZXIgd2l0aCB3aGljaCBHb2QgY3JlYXRlcyB0aGUgVW5pdmVyc2UgaW4gPGEgaHJlZj0iL3dpa2kvS2FiYmFsYWgiIHRpdGxlPSJLYWJiYWxhaCI+S2FiYmFsaXN0aWMgdHJhZGl0aW9uPC9hPi4gSW4gS2FiYmFsYWgsIHRoZSBtb3N0IHNpZ25pZmljYW50IG5hbWUgaXMgdGhhdCBvZiB0aGUgRW4gU29mIChhbHNvIGtub3duIGFzICI8YSBocmVmPSIvd2lraS9FaW5fU29mIiB0aXRsZT0iRWluIFNvZiI+RWluIFNvZjwvYT4iLCAiSW5maW5pdGUiIG9yICJFbmRsZXNzIiksIHdobyBpcyBhYm92ZSB0aGUgU2VmaXJvdCAoc29tZXRpbWVzIHNwZWxsZWQgIjxhIGhyZWY9Ii93aWtpL1NlcGhpcm90IiB0aXRsZT0iU2VwaGlyb3QiPlNlcGhpcm90PC9hPiIpLjxzdXAgaWQ9ImNpdGVfcmVmLTE0IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTE0Ij48c3Bhbj5bPC9zcGFuPjE0PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+IFRoZSBGb3J0eS1Ud28tTGV0dGVyZWQgTmFtZSBjb250YWlucyBmb3VyIGNvbWJpbmVkIG5hbWVzIHdoaWNoIGFyZSBzcGVsbGVkIGluIEhlYnJldyBsZXR0ZXJzIChzcGVsbGVkIGluIGxldHRlcnMgPSA0MiBsZXR0ZXJzKSwgd2hpY2ggaXMgdGhlIG5hbWUgb2YgQXppbHV0IChvciAiPGEgaHJlZj0iL3dpa2kvQXR6aWx1dGgiIHRpdGxlPSJBdHppbHV0aCI+QXR6aWx1dGg8L2E+IiAiRW1hbmF0aW9uIikuIFdoaWxlIHRoZXJlIGFyZSBvYnZpb3VzIGxpbmtzIGJldHdlZW4gdGhlIEZvcnR5LVR3byBMZXR0ZXJlZCBOYW1lIG9mIHRoZSBCYWJ5bG9uaWFuIFRhbG11ZCBhbmQgdGhlIEthYmJhbGFoJ3MgRm9ydHktVHdvIExldHRlcmVkIE5hbWUsIHRoZXkgYXJlIHByb2JhYmx5IG5vdCBpZGVudGljYWwgYmVjYXVzZSBvZiB0aGUgS2FiYmFsYWgncyBlbXBoYXNpcyBvbiBudW1iZXJzLiBUaGUgS2FiYmFsYWggYWxzbyBjb250YWlucyBhIEZvcnR5LUZpdmUgTGV0dGVyZWQgTmFtZSBhbmQgYSBTZXZlbnR5LVR3byBMZXR0ZXJlZCBOYW1lLjwvbGk+Cis8bGk+VGhlIG51bWJlciA0MiBhcHBlYXJzIGluIHZhcmlvdXMgY29udGV4dHMgaW4gPGEgaHJlZj0iL3dpa2kvQ2hyaXN0aWFuaXR5IiB0aXRsZT0iQ2hyaXN0aWFuaXR5Ij5DaHJpc3RpYW5pdHk8L2E+LiBUaGVyZSBhcmUgNDIgZ2VuZXJhdGlvbnMgKG5hbWVzKSBpbiB0aGUgPGEgaHJlZj0iL3dpa2kvR29zcGVsX29mX01hdHRoZXciIHRpdGxlPSJHb3NwZWwgb2YgTWF0dGhldyI+R29zcGVsIG9mIE1hdHRoZXc8L2E+J3MgdmVyc2lvbiBvZiB0aGUgPGEgaHJlZj0iL3dpa2kvR2VuZWFsb2d5X29mX0plc3VzIiB0aXRsZT0iR2VuZWFsb2d5IG9mIEplc3VzIj5HZW5lYWxvZ3kgb2YgSmVzdXM8L2E+OyBpdCBpcyBwcm9waGVzaWVkIHRoYXQgZm9yIDQyIG1vbnRocyB0aGUgPGEgaHJlZj0iL3dpa2kvVGhlX0JlYXN0XyhSZXZlbGF0aW9uKSIgdGl0bGU9IlRoZSBCZWFzdCAoUmV2ZWxhdGlvbikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+QmVhc3Q8L2E+IHdpbGwgaG9sZCBkb21pbmlvbiBvdmVyIHRoZSBFYXJ0aCAoPGEgaHJlZj0iL3dpa2kvQm9va19vZl9SZXZlbGF0aW9uIiB0aXRsZT0iQm9vayBvZiBSZXZlbGF0aW9uIj5SZXZlbGF0aW9uPC9hPiAxMzo1KTsgNDIgbWVuIG9mIEJldGgtYXptYXZldGggd2VyZSBjb3VudGVkIGluIHRoZSA8YSBocmVmPSIvd2lraS9DZW5zdXMiIHRpdGxlPSJDZW5zdXMiPmNlbnN1czwvYT4gb2YgbWVuIG9mIDxhIGhyZWY9Ii93aWtpL0lzcmFlbCIgdGl0bGU9IklzcmFlbCI+SXNyYWVsPC9hPiB1cG9uIHJldHVybiBmcm9tIGV4aWxlICg8YSBocmVmPSIvd2lraS9Cb29rX29mX0V6cmEiIHRpdGxlPSJCb29rIG9mIEV6cmEiPkV6cmE8L2E+IDI6MjQpOyA8YSBocmVmPSIvd2lraS9Hb2QiIHRpdGxlPSJHb2QiPkdvZDwvYT4gc2VudCBiZWFycyB0byBtYXVsIDQyIG9mIHRoZSB0ZWVuYWdlIGJveXMgd2hvIG1vY2tlZCA8YSBocmVmPSIvd2lraS9FbGlzaGEiIHRpdGxlPSJFbGlzaGEiPkVsaXNoYTwvYT4gZm9yIGhpcyBiYWxkbmVzcyAoPGEgaHJlZj0iL3dpa2kvQm9va3Nfb2ZfS2luZ3MiIHRpdGxlPSJCb29rcyBvZiBLaW5ncyI+MiBLaW5nczwvYT4gMjoyMyksIGV0Yy48L2xpPgorPGxpPkluIDxhIGhyZWY9Ii93aWtpL0p1ZGFpc20iIHRpdGxlPSJKdWRhaXNtIj5KdWRhaXNtPC9hPiwgdGhlIG51bWJlciAoaW4gdGhlIDxpPkJhYnlsb25pYW4gVGFsbXVkPC9pPiwgY29tcGlsZWQgMzc1JiMxNjA7QUQgdG8gNDk5JiMxNjA7QUQpIG9mIHRoZSAiRm9ydHktVHdvIExldHRlcmVkIE5hbWUiIGFzY3JpYmVkIHRvIEdvZC4gUmFiIChvciBSYWJocyksIGEgM3JkLWNlbnR1cnkgc291cmNlIGluIHRoZSBUYWxtdWQgc3RhdGVkICJUaGUgRm9ydHktVHdvIExldHRlcmVkIE5hbWUgaXMgZW50cnVzdGVkIG9ubHkgdG8gaGltIHdobyBpcyBwaW91cywgbWVlaywgbWlkZGxlLWFnZWQsIGZyZWUgZnJvbSBiYWQgdGVtcGVyLCBzb2JlciwgYW5kIG5vdCBpbnNpc3RlbnQgb24gaGlzIHJpZ2h0cyIuIFtTb3VyY2U6IDxpPlRhbG11ZCBLaWRkdXNjaGluPC9pPiA3MWEsIFRyYW5zbGF0ZWQgYnkgUmFiYmkgRHIuIEkuIEVwc3RlaW5dLiA8YSBocmVmPSIvd2lraS9NYWltb25pZGVzIiB0aXRsZT0iTWFpbW9uaWRlcyI+TWFpbW9uaWRlczwvYT4gZmVsdCB0aGF0IHRoZSBvcmlnaW5hbCBUYWxtdWRpYyBGb3J0eS1Ud28gTGV0dGVyZWQgTmFtZSB3YXMgcGVyaGFwcyBjb21wb3NlZCBvZiBzZXZlcmFsIGNvbWJpbmVkIGRpdmluZSBuYW1lcyBbTWFpbW9uaWRlcyAiTW9yZWgiXS4gVGhlIGFwcGFyZW50bHkgdW5wcm9ub3VuY2FibGUgPGEgaHJlZj0iL3dpa2kvVGV0cmFncmFtbWF0b24iIHRpdGxlPSJUZXRyYWdyYW1tYXRvbiI+VGV0cmFncmFtbWF0b248L2E+IHByb3ZpZGVzIHRoZSBiYWNrZHJvcCBmcm9tIHRoZSBUd2VsdmUtTGV0dGVyZWQgTmFtZSBhbmQgdGhlIEZvcnR5LVR3byBMZXR0ZXJlZCBOYW1lIG9mIHRoZSBUYWxtdWQuPHN1cCBjbGFzcz0iVGVtcGxhdGUtRmFjdCIgc3R5bGU9IndoaXRlLXNwYWNlOm5vd3JhcDsiPls8aT48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6Q2l0YXRpb25fbmVlZGVkIiB0aXRsZT0iV2lraXBlZGlhOkNpdGF0aW9uIG5lZWRlZCI+PHNwYW4gdGl0bGU9IlRoaXMgY2xhaW0gbmVlZHMgcmVmZXJlbmNlcyB0byByZWxpYWJsZSBzb3VyY2VzLiAoRmVicnVhcnkgMjAxMSkiPmNpdGF0aW9uIG5lZWRlZDwvc3Bhbj48L2E+PC9pPl08L3N1cD48L2xpPgorPGxpPlRoZSA8YSBocmVmPSIvd2lraS9HdXRlbmJlcmdfQmlibGUiIHRpdGxlPSJHdXRlbmJlcmcgQmlibGUiPkd1dGVuYmVyZyBCaWJsZTwvYT4gaXMgYWxzbyBrbm93biBhcyB0aGUgIjQyLWxpbmUgQmlibGUiLCBhcyB0aGUgYm9vayBjb250YWluZWQgNDIgbGluZXMgcGVyIHBhZ2UuPC9saT4KKzxsaT5UaGUgPGEgaHJlZj0iL3dpa2kvRm9ydHktVHdvX0FydGljbGVzIiB0aXRsZT0iRm9ydHktVHdvIEFydGljbGVzIiBjbGFzcz0ibXctcmVkaXJlY3QiPkZvcnR5LVR3byBBcnRpY2xlcyAoMTU1Mik8L2E+LCBsYXJnZWx5IHRoZSB3b3JrIG9mIDxhIGhyZWY9Ii93aWtpL1Rob21hc19DcmFubWVyIiB0aXRsZT0iVGhvbWFzIENyYW5tZXIiPlRob21hcyBDcmFubWVyPC9hPiwgd2VyZSBpbnRlbmRlZCB0byBzdW1tYXJpc2UgQW5nbGljYW4gZG9jdHJpbmUsIGFzIGl0IG5vdyBleGlzdGVkIHVuZGVyIHRoZSByZWlnbiBvZiA8YSBocmVmPSIvd2lraS9FZHdhcmRfVkkiIHRpdGxlPSJFZHdhcmQgVkkiIGNsYXNzPSJtdy1yZWRpcmVjdCI+RWR3YXJkIFZJPC9hPi48L2xpPgorPC91bD4KKzxoMj48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJQb3B1bGFyX2N1bHR1cmUiPlBvcHVsYXIgY3VsdHVyZTwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249NiIgdGl0bGU9IkVkaXQgc2VjdGlvbjogUG9wdWxhciBjdWx0dXJlIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPGgzPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlRoZV9IaXRjaGhpa2VyLjI3c19HdWlkZV90b190aGVfR2FsYXh5Ij48aT5UaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHk8L2k+PC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj03IiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBUaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHkiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDM+Cis8cD5UaGUgbnVtYmVyIDQyIGlzLCBpbiA8aT48YSBocmVmPSIvd2lraS9UaGVfSGl0Y2hoaWtlciUyN3NfR3VpZGVfdG9fdGhlX0dhbGF4eSIgdGl0bGU9IlRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eSI+VGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5PC9hPjwvaT4gYnkgPGEgaHJlZj0iL3dpa2kvRG91Z2xhc19BZGFtcyIgdGl0bGU9IkRvdWdsYXMgQWRhbXMiPkRvdWdsYXMgQWRhbXM8L2E+LCAiVGhlIDxhIGhyZWY9Ii93aWtpL1BocmFzZXNfZnJvbV9UaGVfSGl0Y2hoaWtlciUyN3NfR3VpZGVfdG9fdGhlX0dhbGF4eSNBbnN3ZXJfdG9fdGhlX1VsdGltYXRlX1F1ZXN0aW9uX29mX0xpZmUuMkNfdGhlX1VuaXZlcnNlLjJDX2FuZF9FdmVyeXRoaW5nXy4yODQyLjI5IiB0aXRsZT0iUGhyYXNlcyBmcm9tIFRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eSI+QW5zd2VyIHRvIHRoZSBVbHRpbWF0ZSBRdWVzdGlvbiBvZiBMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nPC9hPiIsIGNhbGN1bGF0ZWQgYnkgPGEgaHJlZj0iL3dpa2kvRGVlcF9UaG91Z2h0XyhUaGVfSGl0Y2hoaWtlciUyN3NfR3VpZGVfdG9fdGhlX0dhbGF4eSkiIHRpdGxlPSJEZWVwIFRob3VnaHQgKFRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eSkiIGNsYXNzPSJtdy1yZWRpcmVjdCI+YW4gZW5vcm1vdXMgc3VwZXJjb21wdXRlcjwvYT4gb3ZlciBhIHBlcmlvZCBvZiA3LjUgbWlsbGlvbiB5ZWFycy4gVW5mb3J0dW5hdGVseSBubyBvbmUga25vd3Mgd2hhdCB0aGUgcXVlc3Rpb24gaXMuIFRodXMsIHRvIGNhbGN1bGF0ZSB0aGUgVWx0aW1hdGUgUXVlc3Rpb24sIGEgc3BlY2lhbCBjb21wdXRlciB0aGUgc2l6ZSBvZiBhIHNtYWxsIHBsYW5ldCBhbmQgYnVpbHQgZnJvbSBvcmdhbmljIGNvbXBvbmVudHMgd2FzIGNyZWF0ZWQgYW5kIG5hbWVkICJFYXJ0aCIuIFRoaXMgYXBwZWFyZWQgZmlyc3QgaW4gdGhlIDxhIGhyZWY9Ii93aWtpL1JhZGlvX3BsYXkiIHRpdGxlPSJSYWRpbyBwbGF5IiBjbGFzcz0ibXctcmVkaXJlY3QiPnJhZGlvIHBsYXk8L2E+IGFuZCBsYXRlciBpbiB0aGUgbm92ZWxpemF0aW9uIG9mIDxpPlRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eTwvaT4uIFRoZSBmb3VydGggYm9vayBpbiB0aGUgc2VyaWVzLCB0aGUgbm92ZWwgPGk+PGEgaHJlZj0iL3dpa2kvU29fTG9uZyxfYW5kX1RoYW5rc19mb3JfQWxsX3RoZV9GaXNoIiB0aXRsZT0iU28gTG9uZywgYW5kIFRoYW5rcyBmb3IgQWxsIHRoZSBGaXNoIj5TbyBMb25nLCBhbmQgVGhhbmtzIGZvciBBbGwgdGhlIEZpc2g8L2E+PC9pPiwgY29udGFpbnMgNDIgY2hhcHRlcnMuIEFjY29yZGluZyB0byB0aGUgbm92ZWwgPGk+PGEgaHJlZj0iL3dpa2kvTW9zdGx5X0hhcm1sZXNzIiB0aXRsZT0iTW9zdGx5IEhhcm1sZXNzIj5Nb3N0bHkgSGFybWxlc3M8L2E+PC9pPiwgNDIgaXMgdGhlIHN0cmVldCBhZGRyZXNzIG9mIDxhIGhyZWY9Ii93aWtpL1BsYWNlc19pbl9UaGVfSGl0Y2hoaWtlciUyN3NfR3VpZGVfdG9fdGhlX0dhbGF4eSNTdGF2cm9tdWxhX0JldGEiIHRpdGxlPSJQbGFjZXMgaW4gVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5Ij5TdGF2cm9tdWxhIEJldGE8L2E+LiBJbiAxOTk0IEFkYW1zIGNyZWF0ZWQgdGhlIDxpPjxhIGhyZWY9Ii93aWtpLzQyX1B1enpsZSIgdGl0bGU9IjQyIFB1enpsZSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MiBQdXp6bGU8L2E+PC9pPiwgYSBnYW1lIGJhc2VkIG9uIHRoZSBudW1iZXIgNDIuPC9wPgorPHA+VGhlIGJvb2sgPGk+NDI6IERvdWdsYXMgQWRhbXMnIEFtYXppbmdseSBBY2N1cmF0ZSBBbnN3ZXIgdG8gTGlmZSwgdGhlIFVuaXZlcnNlIGFuZCBFdmVyeXRoaW5nPC9pPjxzdXAgaWQ9ImNpdGVfcmVmLTE1IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTE1Ij48c3Bhbj5bPC9zcGFuPjE1PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+IGV4YW1pbmVzIEFkYW1zJyBjaG9pY2Ugb2YgdGhlIG51bWJlciA0MiBhbmQgYWxzbyBjb250YWlucyBhIGNvbXBlbmRpdW0gb2Ygc29tZSBpbnN0YW5jZXMgb2YgdGhlIG51bWJlciBpbiBzY2llbmNlLCBwb3B1bGFyIGN1bHR1cmUsIGFuZCBodW1vdXIuPC9wPgorPGgzPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IldvcmtzX29mX0xld2lzX0NhcnJvbGwiPldvcmtzIG9mIExld2lzIENhcnJvbGw8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTgiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFdvcmtzIG9mIExld2lzIENhcnJvbGwiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDM+Cis8cD48YSBocmVmPSIvd2lraS9MZXdpc19DYXJyb2xsIiB0aXRsZT0iTGV3aXMgQ2Fycm9sbCI+TGV3aXMgQ2Fycm9sbDwvYT48c3VwIGlkPSJjaXRlX3JlZi0xNiIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xNiI+PHNwYW4+Wzwvc3Bhbj4xNjxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPiBtYWRlIHJlcGVhdGVkIHVzZSBvZiB0aGlzIG51bWJlciBpbiBoaXMgd3JpdGluZ3MuPHN1cCBpZD0iY2l0ZV9yZWYtMTciIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMTciPjxzcGFuPls8L3NwYW4+MTc8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L3A+Cis8cD5FeGFtcGxlcyBvZiBDYXJyb2xsJ3MgdXNlIG9mIDQyOjwvcD4KKzx1bD4KKzxsaT5BbGljZSdzIEFkdmVudHVyZXMgaW4gV29uZGVybGFuZCBoYXMgNDIgaWxsdXN0cmF0aW9ucy48L2xpPgorPGxpPlJ1bGUgRm9ydHktdHdvIGluIDxhIGhyZWY9Ii93aWtpL0FsaWNlJTI3c19BZHZlbnR1cmVzX2luX1dvbmRlcmxhbmQiIHRpdGxlPSJBbGljZSdzIEFkdmVudHVyZXMgaW4gV29uZGVybGFuZCI+QWxpY2UncyBBZHZlbnR1cmVzIGluIFdvbmRlcmxhbmQ8L2E+ICgiQWxsIHBlcnNvbnMgbW9yZSB0aGFuIGEgbWlsZSBoaWdoIHRvIGxlYXZlIHRoZSBjb3VydCIpLjwvbGk+Cis8bGk+UnVsZSA0MiBvZiB0aGUgQ29kZSBpbiB0aGUgcHJlZmFjZTxzdXAgaWQ9ImNpdGVfcmVmLTE4IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTE4Ij48c3Bhbj5bPC9zcGFuPjE4PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+IHRvIDxhIGhyZWY9Ii93aWtpL1RoZV9IdW50aW5nX29mX3RoZV9TbmFyayIgdGl0bGU9IlRoZSBIdW50aW5nIG9mIHRoZSBTbmFyayI+VGhlIEh1bnRpbmcgb2YgdGhlIFNuYXJrPC9hPiAoIk5vIG9uZSBzaGFsbCBzcGVhayB0byB0aGUgTWFuIGF0IHRoZSBIZWxtIikuPC9saT4KKzxsaT5JbiAiZml0IHRoZSBmaXJzdCIgb2YgPGEgaHJlZj0iL3dpa2kvVGhlX0h1bnRpbmdfb2ZfdGhlX1NuYXJrIiB0aXRsZT0iVGhlIEh1bnRpbmcgb2YgdGhlIFNuYXJrIj5UaGUgSHVudGluZyBvZiB0aGUgU25hcms8L2E+IHRoZSBCYWtlciBoYWQgImZvcnR5LXR3byBib3hlcywgYWxsIGNhcmVmdWxseSBwYWNrZWQsIFdpdGggaGlzIG5hbWUgcGFpbnRlZCBjbGVhcmx5IG9uIGVhY2guIjxzdXAgaWQ9ImNpdGVfcmVmLTE5IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTE5Ij48c3Bhbj5bPC9zcGFuPjE5PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzxsaT5UaGUgV2hpdGUgUXVlZW4gYW5ub3VuY2VzIGhlciBhZ2UgYXMgIm9uZSBodW5kcmVkIGFuZCBvbmUsIGZpdmUgbW9udGhzIGFuZCBhIGRheSIsIHdoaWNoIC0gaWYgdGhlIGJlc3QgcG9zc2libGUgZGF0ZSBpcyBhc3N1bWVkIGZvciB0aGUgYWN0aW9uIG9mIDxpPlRocm91Z2ggdGhlIExvb2tpbmctR2xhc3M8L2k+IC0gZ2l2ZXMgYSB0b3RhbCBvZiAzNywwNDQgZGF5cy4gV2l0aCB0aGUgZnVydGhlciAodGV4dHVhbGx5IHVuY29uZmlybWVkKSBhc3N1bXB0aW9uIHRoYXQgYm90aCBRdWVlbnMgd2VyZSBib3JuIG9uIHRoZSBzYW1lIGRheSB0aGVpciBjb21iaW5lZCBhZ2UgYmVjb21lcyA3NCwwODggZGF5cywgd2hpY2ggaXMgNDIgeCA0MiB4IDQyLiBTb21lIGNvbW1lbnRhdG9ycyBoYXZlIGFzc2VydGVkIHRoYXQgdGhpcyBpcyBkZWxpYmVyYXRlIG9uIENhcnJvbGwncyBwYXJ0LjxzdXAgaWQ9ImNpdGVfcmVmLTIwIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTIwIj48c3Bhbj5bPC9zcGFuPjIwPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzwvdWw+Cis8aDM+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iTXVzaWMiPk11c2ljPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj05IiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBNdXNpYyI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMz4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS9MZXZlbF80MiIgdGl0bGU9IkxldmVsIDQyIj5MZXZlbCA0MjwvYT4gaXMgYW4gRW5nbGlzaCA8YSBocmVmPSIvd2lraS9Qb3BfbXVzaWMiIHRpdGxlPSJQb3AgbXVzaWMiPnBvcDwvYT4vPGEgaHJlZj0iL3dpa2kvUm9ja19tdXNpYyIgdGl0bGU9IlJvY2sgbXVzaWMiPnJvY2s8L2E+IG11c2ljIGJhbmQuPC9saT4KKzxsaT4iPGEgaHJlZj0iL3dpa2kvNDJfKHNvbmcpIiB0aXRsZT0iNDIgKHNvbmcpIj40MjwvYT4iIGlzIG9uZSBvZiB0aGUgdHJhY2tzIG9uIDxhIGhyZWY9Ii93aWtpL0NvbGRwbGF5IiB0aXRsZT0iQ29sZHBsYXkiPkNvbGRwbGF5PC9hPidzIDIwMDggYWxidW0gPGk+PGEgaHJlZj0iL3dpa2kvVml2YV9sYV9WaWRhX29yX0RlYXRoX2FuZF9BbGxfSGlzX0ZyaWVuZHMiIHRpdGxlPSJWaXZhIGxhIFZpZGEgb3IgRGVhdGggYW5kIEFsbCBIaXMgRnJpZW5kcyI+Vml2YSBsYSBWaWRhIG9yIERlYXRoIGFuZCBBbGwgSGlzIEZyaWVuZHM8L2E+PC9pPi48L2xpPgorPGxpPiI8YSBocmVmPSIvd2lraS9DaGFubmVsXzQyXyhzb25nKSIgdGl0bGU9IkNoYW5uZWwgNDIgKHNvbmcpIj5DaGFubmVsIDQyPC9hPiIgaXMgYSB0cmFjayBmcm9tIDxhIGhyZWY9Ii93aWtpL0RlYWRtYXU1IiB0aXRsZT0iRGVhZG1hdTUiPmRlYWRtYXU1PC9hPicgMjAxMiBhbGJ1bSA8aT48YSBocmVmPSIvd2lraS9BbGJ1bV9UaXRsZV9Hb2VzX0hlcmUiIHRpdGxlPSJBbGJ1bSBUaXRsZSBHb2VzIEhlcmUiPkFsYnVtIFRpdGxlIEdvZXMgSGVyZTwvYT48L2k+LjwvbGk+Cis8bGk+IjxhIGhyZWY9Ii93aWtpLzQyXyhzb25nKSIgdGl0bGU9IjQyIChzb25nKSI+NDI8L2E+IiBpcyBhIHRyYWNrIGJ5IDxhIGhyZWY9Ii93aWtpL1RoZV9EaXNjb19CaXNjdWl0cyIgdGl0bGU9IlRoZSBEaXNjbyBCaXNjdWl0cyIgY2xhc3M9Im13LXJlZGlyZWN0Ij5UaGUgRGlzY28gQmlzY3VpdHM8L2E+IGFuZCB3YXMgd3JpdHRlbiBieSAiPGEgaHJlZj0iL3dpa2kvTWFyY19Ccm93bnN0ZWluIiB0aXRsZT0iTWFyYyBCcm93bnN0ZWluIj5NYXJjIEJyb3duc3RlaW48L2E+Ii48L2xpPgorPC91bD4KKzxoMz48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJUZWxldmlzaW9uX2FuZF9maWxtIj5UZWxldmlzaW9uIGFuZCBmaWxtPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0xMCIgdGl0bGU9IkVkaXQgc2VjdGlvbjogVGVsZXZpc2lvbiBhbmQgZmlsbSI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMz4KKzx1bD4KKzxsaT48aT48YSBocmVmPSIvd2lraS9UaGVfS3VtYXJzX2F0X05vLl80MiIgdGl0bGU9IlRoZSBLdW1hcnMgYXQgTm8uIDQyIj5UaGUgS3VtYXJzIGF0IE5vLiA0MjwvYT48L2k+IHRlbGV2aXNpb24gc2VyaWVzLiBJbiAyMDAzLCA8YSBocmVmPSIvd2lraS9TYW5qZWV2X0JoYXNrYXIiIHRpdGxlPSJTYW5qZWV2IEJoYXNrYXIiPlNhbmplZXYgQmhhc2thcjwvYT4gaG9zdGVkIGEgPGEgaHJlZj0iL3dpa2kvQkJDIiB0aXRsZT0iQkJDIj5CQkM8L2E+IHNob3cgbm9taW5hdGluZyA8aT48YSBocmVmPSIvd2lraS9UaGVfSGl0Y2hoaWtlciUyN3NfR3VpZGVfdG9fdGhlX0dhbGF4eSIgdGl0bGU9IlRoZSBIaXRjaGhpa2VyJ3MgR3VpZGUgdG8gdGhlIEdhbGF4eSI+VGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5PC9hPjwvaT4gYXMgPGk+PGEgaHJlZj0iL3dpa2kvR3JlYXRfQnJpdGFpbiIgdGl0bGU9IkdyZWF0IEJyaXRhaW4iPkJyaXRhaW48L2E+J3MgQmVzdCBMb3ZlZCBCb29rPC9pPi48L2xpPgorPGxpPkEgbWFkZSBmb3IgVFYgbW92aWUgPGk+NDI6IEZvcnR5IFR3byBVcDwvaT4gLSBhbiBpbnN0YWxsbWVudCBpbiBhIHNlcmllcyBvZiBkb2N1bWVudGFyaWVzIHdoZXJlaW4gdGhlIGRpcmVjdG9yIHJldmlzaXRzIHRoZSBzYW1lIGdyb3VwIG9mIEJyaXRpc2gtYm9ybiBpbmRpdmlkdWFscyBldmVyeSA3IHllYXJzLjxzdXAgaWQ9ImNpdGVfcmVmLTIxIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTIxIj48c3Bhbj5bPC9zcGFuPjIxPHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PC9saT4KKzxsaT4iPGEgaHJlZj0iL3dpa2kvNDJfKERvY3Rvcl9XaG8pIiB0aXRsZT0iNDIgKERvY3RvciBXaG8pIj40MjwvYT4iIGlzIGFuIGVwaXNvZGUgb2YgPGk+PGEgaHJlZj0iL3dpa2kvRG9jdG9yX1dobyIgdGl0bGU9IkRvY3RvciBXaG8iPkRvY3RvciBXaG88L2E+PC9pPiwgc2V0IGluIDxhIGhyZWY9Ii93aWtpL1JlYWxfdGltZV8obWVkaWEpIiB0aXRsZT0iUmVhbCB0aW1lIChtZWRpYSkiPnJlYWwgdGltZTwvYT4gbGFzdGluZyBhcHByb3hpbWF0ZWx5IDQyJiMxNjA7bWludXRlcy48L2xpPgorPGxpPlRoZSA8YSBocmVmPSIvd2lraS9VU1NfRW50ZXJwcmlzZV8oTkNDLTE3MDEtRCkiIHRpdGxlPSJVU1MgRW50ZXJwcmlzZSAoTkNDLTE3MDEtRCkiPlVTUyBFbnRlcnByaXNlIEQ8L2E+IGhhZCA0MiBkZWNrczwvbGk+Cis8bGk+SW4gYW4gZXBpc29kZSBvZiA8aT5TdGFyZ2F0ZSBBdGxhbnRpczwvaT4gdGhlIGNoYXJhY3RlciBKb2huIFNoZXBwYXJkIHJldmVhbHMgdGhhdCB0aGUgbnVtYmVyIGlzIHRoZSB1bHRpbWF0ZSBhbnN3ZXIgdG8gbGlmZSwgdGhlIHVuaXZlcnNlIGFuZCBldmVyeXRoaW5nLCB0byB0aGUgY29uZnVzaW9uIG9mIGhpcyBhbGllbiBjb21wYW5pb24uPC9saT4KKzxsaT5PbiB0aGUgZ2FtZSBzaG93IDxpPjxhIGhyZWY9Ii93aWtpL0plb3BhcmR5ISIgdGl0bGU9Ikplb3BhcmR5ISI+SmVvcGFyZHkhPC9hPjwvaT4sICI8YSBocmVmPSIvd2lraS9XYXRzb25fKGNvbXB1dGVyKSIgdGl0bGU9IldhdHNvbiAoY29tcHV0ZXIpIj5XYXRzb248L2E+IiB0aGUgSUJNIHN1cGVyY29tcHV0ZXIsIGhhcyA0MiAidGhyZWFkcyIgaW4gaXRzIGF2YXRhci48c3VwIGlkPSJjaXRlX3JlZi0yMiIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0yMiI+PHNwYW4+Wzwvc3Bhbj4yMjxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cis8bGk+T24gdGhlIDxpPjxhIGhyZWY9Ii93aWtpL1RoZV9VbnVzdWFscyIgdGl0bGU9IlRoZSBVbnVzdWFscyI+VW51c3VhbHM8L2E+PC9pPiBUVi1zaG93IHRoZXJlJ3MgYW4gZXBpc29kZSBjYWxsZWQgIjQyIi4gRGV0ZWN0aXZlIExlbyBCYW5rcyByZWNlbnRseSB0dXJuZWQgNDIuIE9uIGFjY291bnQgb2YgaGlzIGZhdGhlciwgdW5jbGUsIGFuZCBncmFuZGZhdGhlciBkcm9wcGluZyBkZWFkIGF0IDQyLCBMZW8gaXMgY29udmluY2VkIGhlJ2xsIHNoYXJlIHRoZWlyIGZhdGUuIFRoZXJlIHdlcmUgNDJzIGFsbCBvdmVyIHRoZSBlcGlzb2RlLjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDJfKGZpbG0pIiB0aXRsZT0iNDIgKGZpbG0pIj40MiAoZmlsbSk8L2E+IGlzIGEgZmlsbSBvbiB0aGUgbGlmZSBvZiBBbWVyaWNhbiBiYXNlYmFsbCBwbGF5ZXIgSmFja2llIFJvYmluc29uLjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvSSxfUm9ib3RfKGZpbG0pIiB0aXRsZT0iSSwgUm9ib3QgKGZpbG0pIj5JLCBSb2JvdCAoZmlsbSk8L2E+IDQyIGlzIHRoZSBudW1iZXIgb2YgdGhlIGZpcnN0IHJvYm90IHNob3duIGluIHRoZSBtb3ZpZSwgYSBGZWRFeCBEZWxpdmVyeSByb2JvdC48L2xpPgorPGxpPjQyIGlzIHRoZSBudW1iZXIgb2YgPGEgaHJlZj0iL3dpa2kvVG9ueV9TdGFyayIgdGl0bGU9IlRvbnkgU3RhcmsiIGNsYXNzPSJtdy1yZWRpcmVjdCI+VG9ueSBTdGFyazwvYT4ncyBsYXRlc3QgYXJtb3IgKE1hcmsgNDIpIGluIDxhIGhyZWY9Ii93aWtpL01hcnZlbF9TdHVkaW9zIiB0aXRsZT0iTWFydmVsIFN0dWRpb3MiPk1hcnZlbCBTdHVkaW9zPC9hPicgbW92aWUgPGEgaHJlZj0iL3dpa2kvSXJvbl9NYW5fMyIgdGl0bGU9Iklyb24gTWFuIDMiPklyb24gTWFuIDM8L2E+IGJ5IDxhIGhyZWY9Ii93aWtpL1NoYW5lX0JsYWNrIiB0aXRsZT0iU2hhbmUgQmxhY2siPlNoYW5lIEJsYWNrPC9hPiBzdGFycmluZyA8YSBocmVmPSIvd2lraS9Sb2JlcnRfRG93bmV5X0pyIiB0aXRsZT0iUm9iZXJ0IERvd25leSBKciIgY2xhc3M9Im13LXJlZGlyZWN0Ij5Sb2JlcnQgRG93bmV5IEpyPC9hPi48L2xpPgorPC91bD4KKzxoMz48c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiIGlkPSJWaWRlb19nYW1lcyI+VmlkZW8gZ2FtZXM8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTExIiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBWaWRlbyBnYW1lcyI+ZWRpdDwvYT48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+XTwvc3Bhbj48L3NwYW4+PC9oMz4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS80Ml9FbnRlcnRhaW5tZW50IiB0aXRsZT0iNDIgRW50ZXJ0YWlubWVudCI+NDIgRW50ZXJ0YWlubWVudDwvYT4gaXMgdGhlIGNvbXBhbnkgcmVzcG9uc2libGUgZm9yIHNldmVyYWwgPGEgaHJlZj0iL3dpa2kvQWx0ZXJuYXRlX3JlYWxpdHlfZ2FtZSIgdGl0bGU9IkFsdGVybmF0ZSByZWFsaXR5IGdhbWUiPmFsdGVybmF0ZSByZWFsaXR5IGdhbWVzPC9hPiwgaW5jbHVkaW5nIDxpPjxhIGhyZWY9Ii93aWtpL0lfTG92ZV9CZWVzIiB0aXRsZT0iSSBMb3ZlIEJlZXMiPkkgTG92ZSBCZWVzPC9hPjwvaT4sIDxpPjxhIGhyZWY9Ii93aWtpL1llYXJfWmVyb18oZ2FtZSkiIHRpdGxlPSJZZWFyIFplcm8gKGdhbWUpIj5ZZWFyIFplcm88L2E+PC9pPiwgYW5kIDxpPldoeSBTbyBTZXJpb3VzPC9pPi48L2xpPgorPGxpPkluIDxpPjxhIGhyZWY9Ii93aWtpL1Nwb3JlXygyMDA4X3ZpZGVvX2dhbWUpIiB0aXRsZT0iU3BvcmUgKDIwMDggdmlkZW8gZ2FtZSkiPlNwb3JlPC9hPjwvaT4sIHJlYWNoaW5nIHRoZSBjZW50ZXIgb2YgdGhlIGdhbGF4eSB5aWVsZHMgYSBwb3dlcmZ1bCBpdGVtIGtub3duIGFzIHRoZSAiU3RhZmYgb2YgTGlmZSIgd2hpY2ggaGFzIGEgbGltaXRlZCA0MiB1c2VzLiBJdCBhbHNvIGdyYW50cyB0aGUgcGxheWVyIGFuIGFjaGlldmVtZW50IHRpdGxlZCAiNDIiLjwvbGk+Cis8bGk+SW4gPGk+PGEgaHJlZj0iL3dpa2kvRmFibGVfSUkiIHRpdGxlPSJGYWJsZSBJSSI+RmFibGUgSUk8L2E+PC9pPiwgdGhlIGxhc3QgaW4gYSBzZXJpZXMgb2YgYW5jaWVudCBhcnRpZmFjdHMgdGhlIHBsYXllciBjYW4gZmluZCBzYXlzICJOb3cganVzdCB0aGluayBvZiB0aGUgbnVtYmVyIDQyLiI8L2xpPgorPGxpPkluIDxpPjxhIGhyZWY9Ii93aWtpL0xlZnRfNF9EZWFkXzIiIHRpdGxlPSJMZWZ0IDQgRGVhZCAyIj5MZWZ0IDQgRGVhZCAyPC9hPjwvaT4sIDQyIGlzIHRoZSBudW1iZXIgb2YgTW91c3RhY2hpb3MgdGhhdCBtdXN0IGJlIHNob3QgaW4gdGhlIERhcmsgQ2Fybml2YWwgY2FtcGFpZ24ncyBXaGFjay1hLU1vbGUgc3R5bGUgbWluaS1nYW1lIGluIG9yZGVyIHRvIHVubG9jayB0aGUgU1RBQ0ggV0FDS0VSIGFjaGlldmVtZW50LjwvbGk+Cis8bGk+SW4gPGk+PGEgaHJlZj0iL3dpa2kvSGFsb19XYXJzIiB0aXRsZT0iSGFsbyBXYXJzIj5IYWxvIFdhcnM8L2E+PC9pPiB0aGVyZSBpcyBhIFNwYXJ0YW4tSUkgQ29tbWFuZG8gY2FsbGVkIERvdWdsYXMtMDQyLjwvbGk+Cis8L3VsPgorPGgzPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlNwb3J0cyI+U3BvcnRzPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0xMiIgdGl0bGU9IkVkaXQgc2VjdGlvbjogU3BvcnRzIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gzPgorPGRpdiBjbGFzcz0idGh1bWIgdHJpZ2h0Ij4KKzxkaXYgY2xhc3M9InRodW1iaW5uZXIiIHN0eWxlPSJ3aWR0aDoyMjJweDsiPjxhIGhyZWY9Ii93aWtpL0ZpbGU6SnJvYmluc29uLmpwZyIgY2xhc3M9ImltYWdlIj48aW1nIGFsdD0iIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvNC80Mi9Kcm9iaW5zb24uanBnLzIyMHB4LUpyb2JpbnNvbi5qcGciIHdpZHRoPSIyMjAiIGhlaWdodD0iMTc0IiBjbGFzcz0idGh1bWJpbWFnZSIgc3Jjc2V0PSIvL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iLzQvNDIvSnJvYmluc29uLmpwZy8zMzBweC1Kcm9iaW5zb24uanBnIDEuNXgsIC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvNC80Mi9Kcm9iaW5zb24uanBnLzQ0MHB4LUpyb2JpbnNvbi5qcGcgMngiIC8+PC9hPgorPGRpdiBjbGFzcz0idGh1bWJjYXB0aW9uIj4KKzxkaXYgY2xhc3M9Im1hZ25pZnkiPjxhIGhyZWY9Ii93aWtpL0ZpbGU6SnJvYmluc29uLmpwZyIgY2xhc3M9ImludGVybmFsIiB0aXRsZT0iRW5sYXJnZSI+PGltZyBzcmM9Ii8vYml0cy53aWtpbWVkaWEub3JnL3N0YXRpYy0xLjIzd21mMTAvc2tpbnMvY29tbW9uL2ltYWdlcy9tYWduaWZ5LWNsaXAucG5nIiB3aWR0aD0iMTUiIGhlaWdodD0iMTEiIGFsdD0iIiAvPjwvYT48L2Rpdj4KKzxhIGhyZWY9Ii93aWtpL0phY2tpZV9Sb2JpbnNvbiIgdGl0bGU9IkphY2tpZSBSb2JpbnNvbiI+SmFja2llIFJvYmluc29uPC9hPiBpbiBoaXMgbm93LXJldGlyZWQgbnVtYmVyIDQyIGplcnNleS48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8dWw+Cis8bGk+VGhlIDxhIGhyZWY9Ii93aWtpL1NxdWFkX251bWJlciIgdGl0bGU9IlNxdWFkIG51bWJlciIgY2xhc3M9Im13LXJlZGlyZWN0Ij5qZXJzZXkgbnVtYmVyPC9hPiBvZiA8YSBocmVmPSIvd2lraS9KYWNraWVfUm9iaW5zb24iIHRpdGxlPSJKYWNraWUgUm9iaW5zb24iPkphY2tpZSBSb2JpbnNvbjwvYT4sIHdoaWNoIGlzIHRoZSBvbmx5IG51bWJlciByZXRpcmVkIGJ5IGFsbCA8YSBocmVmPSIvd2lraS9NYWpvcl9MZWFndWVfQmFzZWJhbGwiIHRpdGxlPSJNYWpvciBMZWFndWUgQmFzZWJhbGwiPk1ham9yIExlYWd1ZSBCYXNlYmFsbDwvYT4gdGVhbXMuIEFsdGhvdWdoIHRoZSBudW1iZXIgd2FzIHJldGlyZWQgaW4gMTk5NywgPGEgaHJlZj0iL3dpa2kvTWFyaWFub19SaXZlcmEiIHRpdGxlPSJNYXJpYW5vIFJpdmVyYSI+TWFyaWFubyBSaXZlcmE8L2E+IG9mIHRoZSA8YSBocmVmPSIvd2lraS9OZXdfWW9ya19ZYW5rZWVzIiB0aXRsZT0iTmV3IFlvcmsgWWFua2VlcyI+TmV3IFlvcmsgWWFua2VlczwvYT4sIHRoZSBsYXN0IHByb2Zlc3Npb25hbCBiYXNlYmFsbCBwbGF5ZXIgdG8gd2VhciBudW1iZXIgNDIsIGNvbnRpbnVlZCB0byB3ZWFyIGl0IHVudGlsIGhlIHJldGlyZWQgYXQgdGhlIGVuZCBvZiB0aGUgMjAxMyBzZWFzb24uIEFzIG9mIHRoZSAyMDE0IHNlYXNvbiwgbm8gcGxheWVyIHdpbGwgZXZlciBhZ2FpbiB3ZWFyIHRoZSBudW1iZXIgNDIgaW4gTWFqb3IgTGVhZ3VlIEJhc2ViYWxsIGV4Y2VwdCBvbiA8YSBocmVmPSIvd2lraS9KYWNraWVfUm9iaW5zb25fRGF5IiB0aXRsZT0iSmFja2llIFJvYmluc29uIERheSI+SmFja2llIFJvYmluc29uIERheTwvYT4gKEFwcmlsIDE1KSwgd2hlbiA8aT5hbGw8L2k+IHVuaWZvcm1lZCBwZXJzb25uZWwgKHBsYXllcnMsIG1hbmFnZXJzLCBjb2FjaGVzLCBhbmQgdW1waXJlcykgd2VhciB0aGUgbnVtYmVyLjwvbGk+Cis8bGk+VGhlIGplcnNleSBudW1iZXIgb2YgPGEgaHJlZj0iL3dpa2kvQmFza2V0YmFsbF9IYWxsX29mX0ZhbWUiIHRpdGxlPSJCYXNrZXRiYWxsIEhhbGwgb2YgRmFtZSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5iYXNrZXRiYWxsIEhhbGwgb2YgRmFtZXI8L2E+IGFuZCBvbmUgb2YgdGhlIDxhIGhyZWY9Ii93aWtpLzUwX0dyZWF0ZXN0X1BsYXllcnNfaW5fTkJBX0hpc3RvcnkiIHRpdGxlPSI1MCBHcmVhdGVzdCBQbGF5ZXJzIGluIE5CQSBIaXN0b3J5Ij41MCBHcmVhdGVzdCBQbGF5ZXJzIGluIE5CQSBIaXN0b3J5PC9hPiA8YSBocmVmPSIvd2lraS9KYW1lc19Xb3J0aHkiIHRpdGxlPSJKYW1lcyBXb3J0aHkiPkphbWVzIFdvcnRoeTwvYT4sIHNtYWxsIGZvcndhcmQgZm9yIHRoZSA8YSBocmVmPSIvd2lraS9Mb3NfQW5nZWxlc19MYWtlcnMiIHRpdGxlPSJMb3MgQW5nZWxlcyBMYWtlcnMiPkxvcyBBbmdlbGVzIExha2VyczwvYT4sIHdobyByZXRpcmVkIGhpcyBqZXJzZXkgbnVtYmVyIGluIDE5OTUuPC9saT4KKzxsaT5UaGUgamVyc2V5IG51bWJlciBvZiA8YSBocmVmPSIvd2lraS9Qcm9fRm9vdGJhbGxfSGFsbF9vZl9GYW1lIiB0aXRsZT0iUHJvIEZvb3RiYWxsIEhhbGwgb2YgRmFtZSI+QW1lcmljYW4gZm9vdGJhbGwgSGFsbCBvZiBGYW1lPC9hPiwgPGEgaHJlZj0iL3dpa2kvUm9ubmllX0xvdHQiIHRpdGxlPSJSb25uaWUgTG90dCI+Um9ubmllIExvdHQ8L2E+LCBzYWZldHkgZm9yIHRoZSA8YSBocmVmPSIvd2lraS9TYW5fRnJhbmNpc2NvXzQ5ZXJzIiB0aXRsZT0iU2FuIEZyYW5jaXNjbyA0OWVycyI+U2FuIEZyYW5jaXNjbyA0OWVyczwvYT4sIHdobyByZXRpcmVkIGhpcyBqZXJzZXkgbnVtYmVyIGluIDIwMDMuPC9saT4KKzxsaT5UaGUgamVyc2V5IG51bWJlciBvZiA8YSBocmVmPSIvd2lraS9DaGljYWdvX0JlYXJzIiB0aXRsZT0iQ2hpY2FnbyBCZWFycyI+Q2hpY2FnbyBCZWFyczwvYT4gbGVnZW5kIDxhIGhyZWY9Ii93aWtpL1NpZF9MdWNrbWFuIiB0aXRsZT0iU2lkIEx1Y2ttYW4iPlNpZCBMdWNrbWFuPC9hPiwgd2hpY2ggd2FzIHJldGlyZWQgYnkgdGhlIEJlYXJzLjwvbGk+Cis8bGk+VGhlIGplcnNleSBudW1iZXIgb2YgPGEgaHJlZj0iL3dpa2kvUGF0X1RpbGxtYW4iIHRpdGxlPSJQYXQgVGlsbG1hbiI+UGF0IFRpbGxtYW48L2E+LCB3aGljaCB3YXMgcmV0aXJlZCBvbiBOb3ZlbWJlciAxMywgMjAwNCBieSA8YSBocmVmPSIvd2lraS9Bcml6b25hX1N0YXRlX1N1bl9EZXZpbHNfZm9vdGJhbGwiIHRpdGxlPSJBcml6b25hIFN0YXRlIFN1biBEZXZpbHMgZm9vdGJhbGwiPkFyaXpvbmEgU3RhdGUgVW5pdmVyc2l0eTwvYT4uPC9saT4KKzxsaT5UaGUgamVyc2V5IG51bWJlciBvZiA8YSBocmVmPSIvd2lraS9OYXRpb25hbF9CYXNlYmFsbF9IYWxsX29mX0ZhbWVfYW5kX011c2V1bSIgdGl0bGU9Ik5hdGlvbmFsIEJhc2ViYWxsIEhhbGwgb2YgRmFtZSBhbmQgTXVzZXVtIj5iYXNlYmFsbCBIYWxsIG9mIEZhbWVyPC9hPiA8YSBocmVmPSIvd2lraS9CcnVjZV9TdXR0ZXIiIHRpdGxlPSJCcnVjZSBTdXR0ZXIiPkJydWNlIFN1dHRlcjwvYT4sIHJldGlyZWQgYnkgdGhlIDxhIGhyZWY9Ii93aWtpL1N0Ll9Mb3Vpc19DYXJkaW5hbHMiIHRpdGxlPSJTdC4gTG91aXMgQ2FyZGluYWxzIj5TdC4gTG91aXMgQ2FyZGluYWxzPC9hPiBvbiBTZXB0ZW1iZXIgMTcsIDIwMDYuPC9saT4KKzxsaT5UaGUgbnVtYmVyIG9mIDxhIGhyZWY9Ii93aWtpL0xhd3Nfb2ZfY3JpY2tldCIgdGl0bGU9Ikxhd3Mgb2YgY3JpY2tldCI+bGF3cyBvZiBjcmlja2V0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvUnVsZV80MiIgdGl0bGU9IlJ1bGUgNDIiPlJ1bGUgNDI8L2E+IGlzIHRoZSBoaXN0b3JpYyBuYW1lIG9mIGEgPGEgaHJlZj0iL3dpa2kvR2FlbGljX0F0aGxldGljX0Fzc29jaWF0aW9uIiB0aXRsZT0iR2FlbGljIEF0aGxldGljIEFzc29jaWF0aW9uIj5HYWVsaWMgQXRobGV0aWMgQXNzb2NpYXRpb248L2E+IHJ1bGUgKG5vdyBjb2RpZmllZCBpbiBSdWxlIDUuMSBhbmQgUnVsZSA0NCkgdGhhdCBpbiBwcmFjdGljZSBwcm9oaWJpdHMgdGhlIHBsYXlpbmcgb2YgImZvcmVpZ24gc3BvcnRzIiAoZ2VuZXJhbGx5IDxhIGhyZWY9Ii93aWtpL0Fzc29jaWF0aW9uX2Zvb3RiYWxsIiB0aXRsZT0iQXNzb2NpYXRpb24gZm9vdGJhbGwiPmFzc29jaWF0aW9uIGZvb3RiYWxsPC9hPiBhbmQgdGhlIDxhIGhyZWY9Ii93aWtpL1J1Z2J5X2Zvb3RiYWxsIiB0aXRsZT0iUnVnYnkgZm9vdGJhbGwiPnJ1Z2J5IGNvZGVzPC9hPikgYXQgR0FBIGdyb3VuZHMuPC9saT4KKzxsaT40MiBpcyB0aGUgbnVtYmVyIG9mIGEgPGEgaHJlZj0iL3dpa2kvTkFTQ0FSIiB0aXRsZT0iTkFTQ0FSIj5OQVNDQVI8L2E+IGNhciBvd25lZCBieSA8YSBocmVmPSIvd2lraS9FYXJuaGFyZHRfR2FuYXNzaV9SYWNpbmciIHRpdGxlPSJFYXJuaGFyZHQgR2FuYXNzaSBSYWNpbmciIGNsYXNzPSJtdy1yZWRpcmVjdCI+RWFybmhhcmR0IEdhbmFzc2kgUmFjaW5nPC9hPi4gQXMgb2YgdGhlIHVwY29taW5nIDIwMTQgc2Vhc29uLCBpdCB3aWxsIGJlIGRyaXZlbiBieSA8YSBocmVmPSIvd2lraS9LeWxlX0xhcnNvbiIgdGl0bGU9Ikt5bGUgTGFyc29uIj5LeWxlIExhcnNvbjwvYT4uPC9saT4KKzwvdWw+Cis8aDI+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iT3RoZXJfZmllbGRzIj5PdGhlciBmaWVsZHM8L3NwYW4+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uIj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24tYnJhY2tldCI+Wzwvc3Bhbj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTEzIiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBPdGhlciBmaWVsZHMiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8dWw+Cis8bGk+dGhlIDNEIGdhbWVzIG9mIFRSSUFERU0gdXNlIDQyIHBpZWNlcyB3aXRoIDYgcGxheWVycyBhbmQgdGhlIGJvYXJkIHN0cnVjdHVyZSBjb25zaXN0cyBvZiBtYW55IG9jY3VycmVuY2VzIG9mIDQyLjwvbGk+Cis8bGk+KzQyIGlzIHRoZSBoaXN0b3JpYyA8YSBocmVmPSIvd2lraS9Db3VudHJ5X2NhbGxpbmdfY29kZSIgdGl0bGU9IkNvdW50cnkgY2FsbGluZyBjb2RlIiBjbGFzcz0ibXctcmVkaXJlY3QiPkNvdW50cnkgY2FsbGluZyBjb2RlPC9hPiBmb3IgdGhlIGZvcm1lciBjb3VudHJ5IG9mIDxhIGhyZWY9Ii93aWtpL0N6ZWNob3Nsb3Zha2lhIiB0aXRsZT0iQ3plY2hvc2xvdmFraWEiPkN6ZWNob3Nsb3Zha2lhPC9hPi48L2xpPgorPGxpPlRoZXJlIGFyZSA0MiBVUyBnYWxsb25zIGluIGEgYmFycmVsIG9mIG9pbC48L2xpPgorPGxpPjQyIGlzIHRoZSBudW1iZXIgb2YgdGhlIEZyZW5jaCA8YSBocmVmPSIvd2lraS9EZXBhcnRtZW50c19vZl9GcmFuY2UiIHRpdGxlPSJEZXBhcnRtZW50cyBvZiBGcmFuY2UiPmRlcGFydG1lbnQ8L2E+IG9mIDxhIGhyZWY9Ii93aWtpL0xvaXJlXyhkZXBhcnRtZW50KSIgdGl0bGU9IkxvaXJlIChkZXBhcnRtZW50KSI+TG9pcmU8L2E+LiBUaGUgbnVtYmVyIGlzIGFsc28gcmVmbGVjdGVkIGluIHRoZSA8YSBocmVmPSIvd2lraS9Qb3N0YWxfY29kZXNfaW5fRnJhbmNlIiB0aXRsZT0iUG9zdGFsIGNvZGVzIGluIEZyYW5jZSI+cG9zdGFsIGNvZGU8L2E+IGZvciB0aGF0IGFyZWEuPC9saT4KKzxsaT5UaGUgYm9hcmQgZ2FtZSA8YSBocmVmPSIvd2lraS9SaXNrXyhnYW1lKSIgdGl0bGU9IlJpc2sgKGdhbWUpIj5SaXNrIChnYW1lKTwvYT4gaGFzIGZvcnR5LXR3byB0ZXJyaXRvcmllczwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvVG93ZXJfNDIiIHRpdGxlPSJUb3dlciA0MiI+VG93ZXIgNDI8L2E+IGlzIGEgc2t5c2NyYXBlciBpbiB0aGUgPGEgaHJlZj0iL3dpa2kvQ2l0eV9vZl9Mb25kb24iIHRpdGxlPSJDaXR5IG9mIExvbmRvbiI+Q2l0eSBvZiBMb25kb248L2E+LCBmb3JtZXJseSBrbm93biBhcyB0aGUgPGEgaHJlZj0iL3dpa2kvTmF0aW9uYWxfV2VzdG1pbnN0ZXJfQmFuayIgdGl0bGU9Ik5hdGlvbmFsIFdlc3RtaW5zdGVyIEJhbmsiPk5hdFdlc3Q8L2E+IFRvd2VyLjwvbGk+Cis8bGk+VGhlIG5hbWUgb2YgYSBUZXhhbiA8YSBocmVmPSIvd2lraS9Ucmljay10YWtpbmdfZ2FtZSIgdGl0bGU9IlRyaWNrLXRha2luZyBnYW1lIj50cmljay10YWtpbmcgZ2FtZTwvYT4gcGxheWVkIHdpdGggPGEgaHJlZj0iL3dpa2kvRG9taW5vZXMiIHRpdGxlPSJEb21pbm9lcyI+ZG9taW5vZXM8L2E+IChzZWUgPGEgaHJlZj0iL3dpa2kvNDJfKGRvbWlub2VzKSIgdGl0bGU9IjQyIChkb21pbm9lcykiPjQyIChkb21pbm9lcyk8L2E+KS48L2xpPgorPGxpPlRoZSBudW1iZXIgb2Ygc3BvdHMgKG9yIHBpcHMsIGNpcmN1bGFyIHBhdGNoZXMgb3IgcGl0cykgb24gYSBwYWlyIG9mIHN0YW5kYXJkIHNpeC1zaWRlZCA8YSBocmVmPSIvd2lraS9EaWNlIiB0aXRsZT0iRGljZSI+ZGljZTwvYT4uPC9saT4KKzxsaT5JbiA8YSBocmVmPSIvd2lraS9OZXdfWW9ya19DaXR5IiB0aXRsZT0iTmV3IFlvcmsgQ2l0eSI+TmV3IFlvcmsgQ2l0eTwvYT4sIDxhIGhyZWY9Ii93aWtpLzQybmRfU3RyZWV0XyhNYW5oYXR0YW4pIiB0aXRsZT0iNDJuZCBTdHJlZXQgKE1hbmhhdHRhbikiPjQybmQgU3RyZWV0PC9hPiBpcyBhIG1haW4gYW5kIHZlcnkgcG9wdWxhciB0d28td2F5IHRob3JvdWdoZmFyZS4gTGFuZG1hcmtzIG9uIGl0IGluY2x1ZGUgdGhlIDxhIGhyZWY9Ii93aWtpL0NocnlzbGVyX0J1aWxkaW5nIiB0aXRsZT0iQ2hyeXNsZXIgQnVpbGRpbmciPkNocnlzbGVyIEJ1aWxkaW5nPC9hPiwgPGEgaHJlZj0iL3dpa2kvR3JhbmRfQ2VudHJhbF9UZXJtaW5hbCIgdGl0bGU9IkdyYW5kIENlbnRyYWwgVGVybWluYWwiPkdyYW5kIENlbnRyYWwgVGVybWluYWw8L2E+LCB0aGUgbWFpbiBicmFuY2ggb2YgdGhlIDxhIGhyZWY9Ii93aWtpL05ld19Zb3JrX1B1YmxpY19MaWJyYXJ5IiB0aXRsZT0iTmV3IFlvcmsgUHVibGljIExpYnJhcnkiPk5ldyBZb3JrIFB1YmxpYyBMaWJyYXJ5PC9hPiwgYW5kIDxhIGhyZWY9Ii93aWtpL1RpbWVzX1NxdWFyZSIgdGl0bGU9IlRpbWVzIFNxdWFyZSI+VGltZXMgU3F1YXJlPC9hPi4gVGhlIE5ldyBZb3JrIENpdHkgc3RyZWV0IGlzIGFsc28gdGhlIHNldHRpbmcgZm9yIGEgPGEgaHJlZj0iL3dpa2kvNDJuZF9TdHJlZXRfKGZpbG0pIiB0aXRsZT0iNDJuZCBTdHJlZXQgKGZpbG0pIj5tb3ZpZTwvYT4gYnkgdGhlIHNhbWUgbmFtZSAod2hpY2ggYWxzbyBnYXZlIGZhbWUgdG8gaXRzIGVwb255bW91cyB0aXRsZSBzb25nKSwgYW5kIHdoaWNoIGxhdGVyIGluc3BpcmVkIGEgbXVzaWNhbCBhZGFwdGF0aW9uLCA8aT48YSBocmVmPSIvd2lraS80Mm5kX1N0cmVldF8obXVzaWNhbCkiIHRpdGxlPSI0Mm5kIFN0cmVldCAobXVzaWNhbCkiPjQybmQgU3RyZWV0PC9hPi48L2k+PC9saT4KKzxsaT5Qb3B1bGFyIGdhZGdldCBtYWdhemluZSA8YSBocmVmPSIvd2lraS9TdHVmZl8obWFnYXppbmUpIiB0aXRsZT0iU3R1ZmYgKG1hZ2F6aW5lKSI+U3R1ZmY8L2E+IGRpZCBub3QgcHJvZHVjZSBhbiBpc3N1ZSBudW1iZXJlZCA0MiwgaW4gaG9ub3Igb2YgVGhlIEhpdGNoaGlrZXIncyBHdWlkZSB0byB0aGUgR2FsYXh5LCBpbnN0ZWFkLCB0aGUgNDFzdCBpc3N1ZSB3YXMgZm9sbG93ZWQgYnkgdGhlIDQzcmQuPC9saT4KKzxsaT5UaGUgZGVzaWduYXRpb24gd2l0aGluIDxhIGhyZWY9Ii93aWtpL0lTTy9JRUNfSlRDMSIgdGl0bGU9IklTTy9JRUMgSlRDMSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5JU08vSUVDIEpUQzEvU0M3PC9hPiBvZiBpdHMgd29ya2luZyBncm91cCBvbiBBcmNoaXRlY3R1cmUgd2FzIGNob3NlbiB0byBiZSAiV0cgNDIiIGJlY2F1c2UgYXJjaGl0ZWN0dXJlIGlzIHRoZSBhbnN3ZXIgdG8gIkxpZmUsIHRoZSBVbml2ZXJzZSBhbmQgRXZlcnl0aGluZyIsIHNraXBwaW5nIG92ZXIgZGVzaWduYXRpb25zIDI2IHRocm91Z2ggNDEuPC9saT4KKzxsaT5GaWN0aW9uYWwgY29taWMgYm9vayBzdXBlcmhlcm8gPGEgaHJlZj0iL3dpa2kvTWlsZXNfTW9yYWxlcyIgdGl0bGU9Ik1pbGVzIE1vcmFsZXMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+TWlsZXMgTW9yYWxlczwvYT4gaXMgYml0dGVuIGJ5IGEgZ2VuZXRpY2FsbHkgYWx0ZXJlZCBzcGlkZXIgd2l0aCBhIHJlZCA0MiBtYXJrZWQgb24gaXRzIGFiZG9tZW4uIE1vcmFsZXMgbGF0ZXIgYXNzdW1lcyB0aGUgcm9sZSBvZiA8YSBocmVmPSIvd2lraS9TcGlkZXItTWFuIiB0aXRsZT0iU3BpZGVyLU1hbiI+U3BpZGVyLU1hbjwvYT4gYXMgYSByZXN1bHQgb2YgdGhlIGJpdGUgYW5kIGZvbGxvd2luZyB0aGUgZGVhdGggb2YgUGV0ZXIgUGFya2VyIGluIHRoZSA8YSBocmVmPSIvd2lraS9VbHRpbWF0ZV9NYXJ2ZWwiIHRpdGxlPSJVbHRpbWF0ZSBNYXJ2ZWwiPlVsdGltYXRlIE1hcnZlbDwvYT4gdW5pdmVyc2UgZnJvbSA8YSBocmVmPSIvd2lraS9NYXJ2ZWxfQ29taWNzIiB0aXRsZT0iTWFydmVsIENvbWljcyI+TWFydmVsIENvbWljczwvYT4uIE1vcmFsZXMgYWxzbyB3aW5zIGEgY292ZXRlZCBzcG90IGluIGEgcHJlc3RpZ2lvdXMgY2hhcnRlciBzY2hvb2wgYWZ0ZXIgaGlzIG51bWJlciAoNDIpIGlzIGNob3NlbiBkdXJpbmcgYSBsb3R0ZXJ5LjwvbGk+Cis8bGk+SW4gdGhlIFNoYWtlc3BlYXJlYW4gcGxheSA8YSBocmVmPSIvd2lraS9Sb21lb19hbmRfSnVsaWV0IiB0aXRsZT0iUm9tZW8gYW5kIEp1bGlldCI+Um9tZW8gYW5kIEp1bGlldDwvYT4sIEp1bGlldCB0YWtlcyBhIHBvdGlvbiB0aGF0IG1ha2VzIGhlciBhcHBlYXIgZGVhZCBmb3IgNDIgaG91cnMuPC9saT4KKzxsaT48aT40MjwvaT4gaXMgYSBmcmVlIHRhYmxvaWQgZGV2b3RlZCB0byB0ZWNobm9sb2d5IG5ld3MgaW4gPGEgaHJlZj0iL3dpa2kvSHVudHN2aWxsZSxfQWxhYmFtYSIgdGl0bGU9Ikh1bnRzdmlsbGUsIEFsYWJhbWEiPkh1bnRzdmlsbGUsIEFsYWJhbWE8L2E+LiBJdCBpcyBwdWJsaXNoZWQgYnkgdGhlIDxpPjxhIGhyZWY9Ii93aWtpL0h1bnRzdmlsbGVfVGltZXMiIHRpdGxlPSJIdW50c3ZpbGxlIFRpbWVzIiBjbGFzcz0ibXctcmVkaXJlY3QiPkh1bnRzdmlsbGUgVGltZXM8L2E+PC9pPiBhbmQgaXMgbmFtZWQgZm9yICI8YSBocmVmPSIvd2lraS9QaHJhc2VzX2Zyb21fVGhlX0hpdGNoaGlrZXIlMjdzX0d1aWRlX3RvX3RoZV9HYWxheHkjQW5zd2VyX3RvX3RoZV9VbHRpbWF0ZV9RdWVzdGlvbl9vZl9MaWZlLjJDX3RoZV9Vbml2ZXJzZS4yQ19hbmRfRXZlcnl0aGluZ18uMjg0Mi4yOSIgdGl0bGU9IlBocmFzZXMgZnJvbSBUaGUgSGl0Y2hoaWtlcidzIEd1aWRlIHRvIHRoZSBHYWxheHkiPlRoZSBBbnN3ZXIgdG8gdGhlIFVsdGltYXRlIFF1ZXN0aW9uIG9mIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmc8L2E+IjwvbGk+Cis8L3VsPgorPGgyPjxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9Ik90aGVyX2xhbmd1YWdlcyI+T3RoZXIgbGFuZ3VhZ2VzPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0xNCIgdGl0bGU9IkVkaXQgc2VjdGlvbjogT3RoZXIgbGFuZ3VhZ2VzIj5lZGl0PC9hPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5dPC9zcGFuPjwvc3Bhbj48L2gyPgorPHRhYmxlIGNsYXNzPSJ3aWtpdGFibGUgY29sbGFwc2libGUgY29sbGFwc2VkIiBzdHlsZT0ibWFyZ2luOjFlbSBhdXRvIDFlbSBhdXRvOyI+Cis8dHIgc3R5bGU9InZlcnRpY2FsLWFsaWduOmJvdHRvbTsiPgorPHRoIHNjb3BlPSJjb2wiPkxhbmd1YWdlPC90aD4KKzx0aCBzY29wZT0iY29sIj5UcmFuc2xhdGlvbjwvdGg+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0FmcmlrYWFuc19MYW5ndWFnZSIgdGl0bGU9IkFmcmlrYWFucyBMYW5ndWFnZSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5BZnJpa2FhbnM8L2E+PC90ZD4KKzx0ZD50d2VlLWVuLXZlZXJ0aWc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9BcmFiaWNfbnVtZXJhbHMiIHRpdGxlPSJBcmFiaWMgbnVtZXJhbHMiPkFyYWJpYzwvYT48L3RkPgorPHRkPtil2KvZhtin2YYg2Ygg2KPYsdio2LnZiNmGPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvQmFzcXVlX2xhbmd1YWdlIiB0aXRsZT0iQmFzcXVlIGxhbmd1YWdlIj5CYXNxdWU8L2E+PC90ZD4KKzx0ZD5CZXJyb2dlaXRhIGJpPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvQnVsZ2FyaWFuX2xhbmd1YWdlIiB0aXRsZT0iQnVsZ2FyaWFuIGxhbmd1YWdlIj5CdWxnYXJpYW48L2E+PC90ZD4KKzx0ZD7Rh9C10YLQuNGA0LjQtNC10YHQtdGCINC4INC00LLQtTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0NhdGFsYW5fbGFuZ3VhZ2UiIHRpdGxlPSJDYXRhbGFuIGxhbmd1YWdlIj5DYXRhbGFuPC9hPjwvdGQ+Cis8dGQ+cXVhcmFudGEtZG9zPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvQ2hpbmVzZV9udW1lcmFscyIgdGl0bGU9IkNoaW5lc2UgbnVtZXJhbHMiPkNoaW5lc2U8L2E+PC90ZD4KKzx0ZD7lm5vljYHkuowgKOiChuaLvui0sCk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9DaHV2YXNoX251bWVyYWxzIiB0aXRsZT0iQ2h1dmFzaCBudW1lcmFscyI+Q2h1dmFzaDwvYT48L3RkPgorPHRkPtGFxJXRgMSV0YUg0LjQutC6xJUgKElJWFhYWCk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Dcm9hdGlhbl9sYW5ndWFnZSIgdGl0bGU9IkNyb2F0aWFuIGxhbmd1YWdlIj5Dcm9hdGlhbjwvYT48L3RkPgorPHRkPsSNZXRyZGVzZXRkdmE8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9DemVjaF9sYW5ndWFnZSIgdGl0bGU9IkN6ZWNoIGxhbmd1YWdlIj5DemVjaDwvYT48L3RkPgorPHRkPsSNdHnFmWljZXQgZHZhPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvRGFuaXNoX2xhbmd1YWdlIiB0aXRsZT0iRGFuaXNoIGxhbmd1YWdlIj5EYW5pc2g8L2E+PC90ZD4KKzx0ZD50b29nZnlycmU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9EdXRjaF9sYW5ndWFnZSIgdGl0bGU9IkR1dGNoIGxhbmd1YWdlIj5EdXRjaDwvYT48L3RkPgorPHRkPnR3ZWXDq252ZWVydGlnPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvRXNwZXJhbnRvIiB0aXRsZT0iRXNwZXJhbnRvIj5Fc3BlcmFudG88L2E+PC90ZD4KKzx0ZD5rdmFyZGVrIGR1PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvRXN0b25pYW5fbGFuZ3VhZ2UiIHRpdGxlPSJFc3RvbmlhbiBsYW5ndWFnZSI+RXN0b25pYW48L2E+PC90ZD4KKzx0ZD5uZWxpa8O8bW1lbmQga2FrczwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0Zpbm5pc2hfbGFuZ3VhZ2UiIHRpdGxlPSJGaW5uaXNoIGxhbmd1YWdlIj5GaW5uaXNoPC9hPjwvdGQ+Cis8dGQ+bmVsasOka3ltbWVudMOka2Frc2k8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9GaWxpcGlub19sYW5ndWFnZSIgdGl0bGU9IkZpbGlwaW5vIGxhbmd1YWdlIj5GaWxpcGlubzwvYT48L3RkPgorPHRkPmFwYXRuYXB1J3QgZGFsYXdhPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvRnJlbmNoX2xhbmd1YWdlIiB0aXRsZT0iRnJlbmNoIGxhbmd1YWdlIj5GcmVuY2g8L2E+PC90ZD4KKzx0ZD5xdWFyYW50ZS1kZXV4PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvV2VzdF9GcmlzaWFuX2xhbmd1YWdlIiB0aXRsZT0iV2VzdCBGcmlzaWFuIGxhbmd1YWdlIj5GcmlzaWFuPC9hPjwvdGQ+Cis8dGQ+dHdhZW5mamlydGljaDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0dlb3JnaWFuX2xhbmd1YWdlIiB0aXRsZT0iR2VvcmdpYW4gbGFuZ3VhZ2UiPkdlb3JnaWFuPC9hPjwvdGQ+Cis8dGQ+4YOd4YOg4YOb4YOd4YOq4YOT4YOQ4YOd4YOg4YOYIFtvcm1vY2Rhb3JpXTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0dlcm1hbl9sYW5ndWFnZSIgdGl0bGU9Ikdlcm1hbiBsYW5ndWFnZSI+R2VybWFuPC9hPjwvdGQ+Cis8dGQ+endlaXVuZHZpZXJ6aWc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9HcmVla19sYW5ndWFnZSIgdGl0bGU9IkdyZWVrIGxhbmd1YWdlIj5HcmVlazwvYT48L3RkPgorPHRkPs+DzrHPgc6szr3PhM6xIM60z43OvzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0hlYnJld19udW1lcmFscyIgdGl0bGU9IkhlYnJldyBudW1lcmFscyI+SGVicmV3PC9hPjwvdGQ+Cis8dGQ+15DXqNeR16LXmdedINeV16nXqteZ15nXnSAoYXJiYXlpbSB1LXNodGF5aW0pPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvSGluZGlfbGFuZ3VhZ2UiIHRpdGxlPSJIaW5kaSBsYW5ndWFnZSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5IaW5kaTwvYT48L3RkPgorPHRkPuCkrOCkr+CkvuCksuClgOCkuCwg4KWq4KWoPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvSHVuZ2FyaWFuX2xhbmd1YWdlIiB0aXRsZT0iSHVuZ2FyaWFuIGxhbmd1YWdlIj5IdW5nYXJpYW48L2E+PC90ZD4KKzx0ZD5uZWd5dmVua2V0dMWRPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvSWNlbGFuZGljX2xhbmd1YWdlIiB0aXRsZT0iSWNlbGFuZGljIGxhbmd1YWdlIj5JY2VsYW5kaWM8L2E+PC90ZD4KKzx0ZD5masO2cnV0w611IG9nIHR2ZWlyPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvSW5kb25lc2lhbl9sYW5ndWFnZSIgdGl0bGU9IkluZG9uZXNpYW4gbGFuZ3VhZ2UiPkluZG9uZXNpYW48L2E+PC90ZD4KKzx0ZD5lbXBhdCBwdWx1aCBkdWE8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9JcmlzaF9MYW5ndWFnZSIgdGl0bGU9IklyaXNoIExhbmd1YWdlIiBjbGFzcz0ibXctcmVkaXJlY3QiPklyaXNoPC9hPjwvdGQ+Cis8dGQ+ZGFpY2hlYWQgY2VhdGhhcjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0l0YWxpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJJdGFsaWFuIGxhbmd1YWdlIj5JdGFsaWFuPC9hPjwvdGQ+Cis8dGQ+cXVhcmFudGFkdWU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9KYXBhbmVzZV93cml0aW5nX3N5c3RlbSIgdGl0bGU9IkphcGFuZXNlIHdyaXRpbmcgc3lzdGVtIj5KYXBhbmVzZTwvYT48L3RkPgorPHRkPuWbm+WNgeS6jCAo44KI44KT44GY44KF44GG44GrKTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0themFraF9sYW5ndWFnZSIgdGl0bGU9IkthemFraCBsYW5ndWFnZSI+S2F6YWtoPC9hPjwvdGQ+Cis8dGQ+0prRi9GA0YvSmyDQtdC60ZY8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Lb3JlYW5fd3JpdGluZ19zeXN0ZW0iIHRpdGxlPSJLb3JlYW4gd3JpdGluZyBzeXN0ZW0iIGNsYXNzPSJtdy1yZWRpcmVjdCI+S29yZWFuPC9hPjwvdGQ+Cis8dGQ+7IKs7Iut7J20ICjrp4jtnZTrkZgpPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvS2FubmFkYV9MYW5ndWFnZSIgdGl0bGU9Ikthbm5hZGEgTGFuZ3VhZ2UiIGNsYXNzPSJtdy1yZWRpcmVjdCI+S2FubmFkYTwvYT48L3RkPgorPHRkPk5hbGF2YXRoIHllcmFkdTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0xhdHZpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJMYXR2aWFuIGxhbmd1YWdlIj5MYXR2aWFuPC9hPjwvdGQ+Cis8dGQ+xI1ldHJkZXNtaXQgZGl2aTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL0xpdGh1YW5pYW5fbGFuZ3VhZ2UiIHRpdGxlPSJMaXRodWFuaWFuIGxhbmd1YWdlIj5MaWV0dXZpxbM8L2E+PC90ZD4KKzx0ZD5rZXR1cmlhc2RlxaFpbXQgZHU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Mb2piYW4iIHRpdGxlPSJMb2piYW4iPkxvamJhbjwvYT48L3RkPgorPHRkPnZvcmU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9MdXhlbWJvdXJnaXNoX2xhbmd1YWdlIiB0aXRsZT0iTHV4ZW1ib3VyZ2lzaCBsYW5ndWFnZSI+THV4ZW1ib3VyZ2lzaDwvYT48L3RkPgorPHRkPnp3ZWVhdsOpaWVyemVnPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvTWFjZWRvbmlhbl9sYW5ndWFnZSIgdGl0bGU9Ik1hY2Vkb25pYW4gbGFuZ3VhZ2UiPk1hY2Vkb25pYW48L2E+PC90ZD4KKzx0ZD7Rh9C10YLQuNGA0LjQtdGB0LXRgiDQuCDQtNCy0LA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9NYWxheWFsYW1fbGFuZ3VhZ2UiIHRpdGxlPSJNYWxheWFsYW0gbGFuZ3VhZ2UiIGNsYXNzPSJtdy1yZWRpcmVjdCI+TWFsYXlhbGFtPC9hPjwvdGQ+Cis8dGQ+bmFhbHBhdGhpIHJhbmR1PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvTWFsdGVzZV9sYW5ndWFnZSIgdGl0bGU9Ik1hbHRlc2UgbGFuZ3VhZ2UiPk1hbHRlc2U8L2E+PC90ZD4KKzx0ZD50bmVqbiB1IGVyYmdoaW48L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9NYW9yaV9sYW5ndWFnZSIgdGl0bGU9Ik1hb3JpIGxhbmd1YWdlIiBjbGFzcz0ibXctcmVkaXJlY3QiPk3EgW9yaTwvYT48L3RkPgorPHRkPndoxIEgdGVrYXUgbWEgcnVhPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvTWFyYXRoaV9sYW5ndWFnZSIgdGl0bGU9Ik1hcmF0aGkgbGFuZ3VhZ2UiPk1hcmF0aGk8L2E+PC90ZD4KKzx0ZD5iZWNoYWxpczwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL01vbmdvbGlhbl9sYW5ndWFnZSIgdGl0bGU9Ik1vbmdvbGlhbiBsYW5ndWFnZSI+TW9uZ29saWFuPC9hPjwvdGQ+Cis8dGQ+0LTTqdGH0LjQvSDRhdC+0ZHRgDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL05vcndlZ2lhbl9sYW5ndWFnZSIgdGl0bGU9Ik5vcndlZ2lhbiBsYW5ndWFnZSI+Tm9yd2VnaWFuPC9hPjwvdGQ+Cis8dGQ+ZsO4cnRpdG88L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9QZXJzaWFuX2xhbmd1YWdlIiB0aXRsZT0iUGVyc2lhbiBsYW5ndWFnZSI+UGVyc2lhbjwvYT48L3RkPgorPHRkPtqG2YfZhCDZiCDYr9mIPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvUG9saXNoX2xhbmd1YWdlIiB0aXRsZT0iUG9saXNoIGxhbmd1YWdlIj5Qb2xpc2g8L2E+PC90ZD4KKzx0ZD5jenRlcmR6aWXFm2NpIGR3YTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1BvcnR1Z3Vlc2VfbGFuZ3VhZ2UiIHRpdGxlPSJQb3J0dWd1ZXNlIGxhbmd1YWdlIj5Qb3J0dWd1ZXNlPC9hPjwvdGQ+Cis8dGQ+cXVhcmVudGEgZSBkb2lzPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvUm9tYW5pYW5fbGFuZ3VhZ2UiIHRpdGxlPSJSb21hbmlhbiBsYW5ndWFnZSI+Um9tYW5pYW48L2E+PC90ZD4KKzx0ZD5wYXRydXplY2kgyJlpIGRvaTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1J1c3NpYW5fbGFuZ3VhZ2UiIHRpdGxlPSJSdXNzaWFuIGxhbmd1YWdlIj5SdXNzaWFuPC9hPjwvdGQ+Cis8dGQ+0YHQvtGA0L7QuiDQtNCy0LA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9TZXJiaWFuX2xhbmd1YWdlIiB0aXRsZT0iU2VyYmlhbiBsYW5ndWFnZSI+U2VyYmlhbjwvYT48L3RkPgorPHRkPtGH0LXRgtGA0LTQtdGB0LXRgiDQuCDQtNCy0LAgKGFsdC4g0YfQtdGC0YDQtNC10YHQtdGCINC00LLQsCk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9TaW5oYWxhX2xhbmd1YWdlIiB0aXRsZT0iU2luaGFsYSBsYW5ndWFnZSI+U2luaGFsYTwvYT48L3RkPgorPHRkPuC3hOC2reC2veC3kuC3g+C3iiDgtq/gt5ngtpogKEhhdGhhbGlzIERla2EpPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvU2xvdmVuZV9sYW5ndWFnZSIgdGl0bGU9IlNsb3ZlbmUgbGFuZ3VhZ2UiPlNsb3ZlbmU8L2E+PC90ZD4KKzx0ZD5kdmFpbsWhdGlyaWRlc2V0PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvU2xvdmFrX2xhbmd1YWdlIiB0aXRsZT0iU2xvdmFrIGxhbmd1YWdlIj5TbG92YWs8L2E+PC90ZD4KKzx0ZD7FoXR5cmlkc2HFpWR2YTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1NvbWFsaV9sYW5ndWFnZSIgdGl0bGU9IlNvbWFsaSBsYW5ndWFnZSI+U29tYWxpPC9hPjwvdGQ+Cis8dGQ+bGFiYSBpeW8gYWZhcnRhbjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1NwYW5pc2hfbGFuZ3VhZ2UiIHRpdGxlPSJTcGFuaXNoIGxhbmd1YWdlIj5TcGFuaXNoPC9hPjwvdGQ+Cis8dGQ+Y3VhcmVudGEgeSBkb3M8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Td2VkaXNoX2xhbmd1YWdlIiB0aXRsZT0iU3dlZGlzaCBsYW5ndWFnZSI+U3dlZGlzaDwvYT48L3RkPgorPHRkPmZ5cnRpb3R2w6U8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9UYWdhbG9nX2xhbmd1YWdlIiB0aXRsZT0iVGFnYWxvZyBsYW5ndWFnZSI+VGFnYWxvZzwvYT48L3RkPgorPHRkPmFwYXRuYXB1J3QgZGFsYXdhPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvVGFtaWxfbGFuZ3VhZ2UiIHRpdGxlPSJUYW1pbCBsYW5ndWFnZSI+VGFtaWw8L2E+PC90ZD4KKzx0ZD7grqjgrr7grrHgr43grqrgrqTgr43grqTgrr/grrDgrqPgr43grp/gr4EgKE5hcnBhdHRpIEVycnVuZHUpPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvVGVsdWd1X2xhbmd1YWdlIiB0aXRsZT0iVGVsdWd1IGxhbmd1YWdlIj5UZWx1Z3U8L2E+PC90ZD4KKzx0ZD7gsKjgsLLgsK3gsYgg4LCw4LGG4LCC4LCh4LGBIChOYWxhYmFpIFJlbmR1KTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxhIGhyZWY9Ii93aWtpL1RoYWlfbGFuZ3VhZ2UiIHRpdGxlPSJUaGFpIGxhbmd1YWdlIj5UaGFpPC9hPjwvdGQ+Cis8dGQ+4Liq4Li14LmI4Liq4Li04Lia4Liq4Lit4LiHPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvVHVya2lzaF9sYW5ndWFnZSIgdGl0bGU9IlR1cmtpc2ggbGFuZ3VhZ2UiPlR1cmtpc2g8L2E+PC90ZD4KKzx0ZD5rxLFyayBpa2k8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9Va3JhaW5pYW5fbGFuZ3VhZ2UiIHRpdGxlPSJVa3JhaW5pYW4gbGFuZ3VhZ2UiPlVrcmFpbmlhbjwvYT48L3RkPgorPHRkPtCh0L7RgNC+0Log0LTQstCwPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PGEgaHJlZj0iL3dpa2kvVXJkdSIgdGl0bGU9IlVyZHUiPlVyZHU8L2E+PC90ZD4KKzx0ZD7YqNuM2KfZhNuM2LM8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9WaWV0bmFtZXNlX2xhbmd1YWdlIiB0aXRsZT0iVmlldG5hbWVzZSBsYW5ndWFnZSI+VmlldG5hbWVzZTwvYT48L3RkPgorPHRkPmLhu5FuIG3GsMahaSBoYWk8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48YSBocmVmPSIvd2lraS9XZWxzaF9sYW5ndWFnZSIgdGl0bGU9IldlbHNoIGxhbmd1YWdlIj5XZWxzaDwvYT48L3RkPgorPHRkPnBlZHdhci1kZWctZGF1LCBkYXUtYXItZGRldWdhaW48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8aDI+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iUmVmZXJlbmNlcyI+UmVmZXJlbmNlczwvc3Bhbj48c3BhbiBjbGFzcz0ibXctZWRpdHNlY3Rpb24iPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbi1icmFja2V0Ij5bPC9zcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249MTUiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFJlZmVyZW5jZXMiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8ZGl2IGNsYXNzPSJyZWZsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsOyI+Cis8b2wgY2xhc3M9InJlZmVyZW5jZXMiPgorPGxpIGlkPSJjaXRlX25vdGUtMSI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+Si4gQi4gQ29ucmV5ICZhbXA7IEEuIEdob3NoLCAiQSBjb25qZWN0dXJlIGZvciB0aGUgc2l4dGggcG93ZXIgbW9tZW50IG9mIHRoZSBSaWVtYW5uIHpldGEtZnVuY3Rpb24iIDxpPkludGVybmF0aW9uYWwgTWF0aGVtYXRpY3MgUmVzZWFyY2ggTm90aWNlczwvaT4gKDE5OTgpPC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0yIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTIiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij5KLiBCLiBDb25yZXkgJmFtcDsgUy4gTS4gR29uZWssICJIaWdoIG1vbWVudHMgb2YgdGhlIFJpZW1hbm4gemV0YS1mdW5jdGlvbiIgPGk+RHVrZSBNYXRoIEouPC9pPiA8Yj4xMDc8L2I+IDMgKDIwMDEpOiA1NzcmIzE2MDvigJMgNjA0PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0zIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTMiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3d3dy5tYXRocGFnZXMuY29tL2hvbWUva21hdGgyNTUuaHRtIj5EaWZmZXJlbnRseSBQZXJmZWN0IC0gbWF0aHBhZ2VzLmNvbTwvYT48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTQiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtNCI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vb2Vpcy5vcmcvQTAxOTI4MyI+U2VxdWVuY2UgQTAxOTI4MyBpbjwvYT4gPGEgaHJlZj0iL3dpa2kvT0VJUyIgdGl0bGU9Ik9FSVMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+T0VJUzwvYT48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTUiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtNSI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd3d3LnVuaS51aXVjLmVkdS9nYXJnb3lsZS8yMDA3LzA1L3poYWlfcG9pc2VkX3RvX3JlcHJlc2VudF91bml0ZS5odG0iPkFsZXggWmhhaSB0aWVzIGZvciBzZWNvbmQtaGlnaGVzdCBzY29yZSBpbiAyMDA3IFVTQSBNYXRoZW1hdGljYWwgT2x5bXBpYWQ8L2E+IC0gQnkgQW5kcmV3IExvdmRhaGwgR2FyZ295bGUgc3RhZmYgcmVwb3J0ZXIgUG9zdGVkIE1vbmRheSwgTWF5IDcsIDIwMDcsIFRoZSBPRywgbmV3cyAmYW1wOyBzdHVkZW50IGF3YXJkcyAtIE9ubGluZSBHYXJnb3lsZTwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtNiI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi02Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+Q0JDIE5ld3Mgc3RhZmYsICI8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3d3dy5jYmMuY2EvaGVhbHRoL3N0b3J5LzIwMDQvMDcvMjAvbWF0aF93aW4wNDA3MjAuaHRtbCI+Q2FuYWRpYW4gbWF0aCBjaGFtcCdzIHNraWxscyBhZGQgdXAgdG8gYSBwZXJmZWN0IHNjb3JlPC9hPiIgPGEgaHJlZj0iL3dpa2kvQ0JDX05ld3MiIHRpdGxlPSJDQkMgTmV3cyI+Q0JDIE5ld3M8L2E+IEp1bHkgMjAsIDIwMDQuICJBIDE2LXllYXItb2xkIENhbmFkaWFuIHdhcyBvbmUgb2YgZm91ciBzdHVkZW50cyB3aG8gYWNoaWV2ZWQgYSBwZXJmZWN0IHNjb3JlIGF0IGFuIGludGVybmF0aW9uYWwgbWF0aGVtYXRpY3MgY29tcGV0aXRpb24uIEphY29iIFRzaW1lcm1hbiBvZiBUb3JvbnRvIHNjb3JlZCA0MiBvdXQgb2YgNDIsIG1ha2luZyBoaW0gb25lIG9mIDQ1IGluZGl2aWR1YWwgZ29sZCBtZWRhbGxpc3RzIGF0IHRoZSA0NXRoIEludGVybmF0aW9uYWwgTWF0aGVtYXRpY2FsIE9seW1waWFkIGluIEF0aGVucy4iPC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS03Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTciPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48c3BhbiBjbGFzcz0iY2l0YXRpb24gam91cm5hbCI+Q29vcGVyLCBQYXVsIFcuICgxOTY2KS4gIlRocm91Z2ggdGhlIEVhcnRoIGluIEZvcnR5IE1pbnV0ZXMiLiA8aT5BbWVyaWNhbiBKb3VybmFsIG9mIFBoeXNpY3M8L2k+IDxiPjM0PC9iPiAoMSk6IDY44oCTNjkuIDxhIGhyZWY9Ii93aWtpL0RpZ2l0YWxfb2JqZWN0X2lkZW50aWZpZXIiIHRpdGxlPSJEaWdpdGFsIG9iamVjdCBpZGVudGlmaWVyIj5kb2k8L2E+OjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vZHguZG9pLm9yZy8xMC4xMTE5JTJGMS4xOTcyNzczIj4xMC4xMTE5LzEuMTk3Mjc3MzwvYT4uPC9zcGFuPjxzcGFuIHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnJfaWQ9aW5mbyUzQXNpZCUyRmVuLndpa2lwZWRpYS5vcmclM0E0MislMjhudW1iZXIlMjkmYW1wO3JmdC5hdGl0bGU9VGhyb3VnaCt0aGUrRWFydGgraW4rRm9ydHkrTWludXRlcyZhbXA7cmZ0LmF1PUNvb3BlciUyQytQYXVsK1cuJmFtcDtyZnQuYXVmaXJzdD1QYXVsK1cuJmFtcDtyZnQuYXVsYXN0PUNvb3BlciZhbXA7cmZ0LmRhdGU9MTk2NiZhbXA7cmZ0LmdlbnJlPWFydGljbGUmYW1wO3JmdF9pZD1pbmZvJTNBZG9pJTJGMTAuMTExOSUyRjEuMTk3Mjc3MyZhbXA7cmZ0Lmlzc3VlPTEmYW1wO3JmdC5qdGl0bGU9QW1lcmljYW4rSm91cm5hbCtvZitQaHlzaWNzJmFtcDtyZnQucGFnZXM9NjglRTIlODAlOTM2OSZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUzQW10eCUzQWpvdXJuYWwmYW1wO3JmdC52b2x1bWU9MzQiIGNsYXNzPSJaMzk4OCI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiYjMTYwOzwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS04Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTgiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48c3BhbiBjbGFzcz0iY2l0YXRpb24gbmV3cyI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cudGltZS5jb20vdGltZS9tYWdhemluZS9hcnRpY2xlLzAsOTE3MSw4NDI0NjksMDAuaHRtbCI+IlRvIEV2ZXJ5d2hlcmUgaW4gNDIgTWludXRlcyI8L2E+LiA8aT5UaW1lPC9pPi4gRmVicnVhcnkgMTEsIDE5NjYuIDxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA4MDUxMjEzMTE1Ni9odHRwOi8vd3d3LnRpbWUuY29tL3RpbWUvbWFnYXppbmUvYXJ0aWNsZS8wLDkxNzEsODQyNDY5LDAwLmh0bWwiPkFyY2hpdmVkPC9hPiBmcm9tIHRoZSBvcmlnaW5hbCBvbiAxMiBNYXkgMjAwODxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtYWNjZXNzZGF0ZSI+LiBSZXRyaWV2ZWQgMjAwOC0wNS0xODwvc3Bhbj4uPC9zcGFuPjxzcGFuIHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnJfaWQ9aW5mbyUzQXNpZCUyRmVuLndpa2lwZWRpYS5vcmclM0E0MislMjhudW1iZXIlMjkmYW1wO3JmdC5hdGl0bGU9VG8rRXZlcnl3aGVyZStpbis0MitNaW51dGVzJmFtcDtyZnQuZGF0ZT1GZWJydWFyeSsxMSUyQysxOTY2JmFtcDtyZnQuZ2VucmU9YXJ0aWNsZSZhbXA7cmZ0X2lkPWh0dHAlM0ElMkYlMkZ3d3cudGltZS5jb20lMkZ0aW1lJTJGbWFnYXppbmUlMkZhcnRpY2xlJTJGMCUyQzkxNzElMkM4NDI0NjklMkMwMC5odG1sJmFtcDtyZnQuanRpdGxlPVRpbWUmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fqb3VybmFsIiBjbGFzcz0iWjM5ODgiPjxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4mIzE2MDs8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtOSI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi05Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIHdlYiI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDgwNjAyMTQyNzU1L2h0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GQUZVU2JJczVLQSI+Ikp1bXBpbmcgaW50byBhIDcsOTY1JiMxNjA7bWlsZSBkZWVwIGhvbGUiPC9hPi4gQXJjaGl2ZWQgZnJvbSA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUZBRlVTYklzNUtBIj50aGUgb3JpZ2luYWw8L2E+IG9uIEp1bmUgMiwgMjAwODxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtYWNjZXNzZGF0ZSI+LiBSZXRyaWV2ZWQgMjAwOC0wNS0xODwvc3Bhbj4uPC9zcGFuPjxzcGFuIHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnJfaWQ9aW5mbyUzQXNpZCUyRmVuLndpa2lwZWRpYS5vcmclM0E0MislMjhudW1iZXIlMjkmYW1wO3JmdC5idGl0bGU9SnVtcGluZytpbnRvK2ErNyUyQzk2NSUyNm5ic3AlM0JtaWxlK2RlZXAraG9sZSZhbXA7cmZ0LmdlbnJlPWJvb2smYW1wO3JmdF9pZD1odHRwJTNBJTJGJTJGd3d3LnlvdXR1YmUuY29tJTJGd2F0Y2glM0Z2JTNERkFGVVNiSXM1S0EmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fib29rIiBjbGFzcz0iWjM5ODgiPjxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4mIzE2MDs8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMTAiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMTAiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48c3BhbiBjbGFzcz0iY2l0YXRpb24gYm9vayI+PGEgaHJlZj0iL3dpa2kvTGV3aXNfQ2Fycm9sbCIgdGl0bGU9Ikxld2lzIENhcnJvbGwiPkNhcnJvbGwsIExld2lzPC9hPiAoMjkgRGVjZW1iZXIgMTg5MykuICJDaGFwdGVyIDciLiA8aT48YSBocmVmPSIvd2lraS9TeWx2aWVfYW5kX0JydW5vX0NvbmNsdWRlZCIgdGl0bGU9IlN5bHZpZSBhbmQgQnJ1bm8gQ29uY2x1ZGVkIiBjbGFzcz0ibXctcmVkaXJlY3QiPlN5bHZpZSBhbmQgQnJ1bm8gQ29uY2x1ZGVkPC9hPjwvaT4gPGI+MjwvYj4uIGlsbHVzdHJhdGVkIGJ5IDxhIGhyZWY9Ii93aWtpL0hhcnJ5X0Z1cm5pc3MiIHRpdGxlPSJIYXJyeSBGdXJuaXNzIj5IYXJyeSBGdXJuaXNzPC9hPi4gVW5pdGVkIEtpbmdkb206IE1hY21pbGxhbiBhbmQgQ28uICJFYWNoIHJhaWx3YXkgaXMgaW4gYSBsb25nIHR1bm5lbCwgcGVyZmVjdGx5IHN0cmFpZ2h0OiBzbyBvZiBjb3Vyc2UgdGhlIDxpPm1pZGRsZTwvaT4gb2YgaXQgaXMgbmVhcmVyIHRoZSBjZW50cmUgb2YgdGhlIGdsb2JlIHRoYW4gdGhlIHR3byBlbmRzOiBzbyBldmVyeSB0cmFpbiBydW5zIGhhbGYtd2F5IDxpPmRvd248L2k+LWhpbGwsIGFuZCB0aGF0IGdpdmVzIGl0IGZvcmNlIGVub3VnaCB0byBydW4gdGhlIDxpPm90aGVyPC9pPiBoYWxmIDxpPnVwPC9pPi1oaWxsLiI8L3NwYW4+PHNwYW4gdGl0bGU9ImN0eF92ZXI9WjM5Ljg4LTIwMDQmYW1wO3Jmcl9pZD1pbmZvJTNBc2lkJTJGZW4ud2lraXBlZGlhLm9yZyUzQTQyKyUyOG51bWJlciUyOSZhbXA7cmZ0LmF0aXRsZT1TeWx2aWUrYW5kK0JydW5vK0NvbmNsdWRlZCZhbXA7cmZ0LmF1PUNhcnJvbGwlMkMrTGV3aXMmYW1wO3JmdC5hdWZpcnN0PUxld2lzJmFtcDtyZnQuYXVsYXN0PUNhcnJvbGwmYW1wO3JmdC5idGl0bGU9Q2hhcHRlcis3JmFtcDtyZnQuZGF0ZT0yOStEZWNlbWJlcisxODkzJmFtcDtyZnQuZ2VucmU9Ym9va2l0ZW0mYW1wO3JmdC5wbGFjZT1Vbml0ZWQrS2luZ2RvbSZhbXA7cmZ0LnB1Yj1NYWNtaWxsYW4rYW5kK0NvLiZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUzQW10eCUzQWJvb2smYW1wO3JmdC52b2x1bWU9MiIgY2xhc3M9IlozOTg4Ij48c3BhbiBzdHlsZT0iZGlzcGxheTpub25lOyI+JiMxNjA7PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTExIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTExIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIGpvdXJuYWwiPkxlZSBNaWRkbGV0b247IEpheWFudGhpIFNpdmFzd2FteSAoMjAwMikuIDxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vc3BpZWRsLmFpcC5vcmcvZ2V0YWJzL3NlcnZsZXQvR2V0YWJzU2VydmxldD9wcm9nPW5vcm1hbCZhbXA7aWQ9SkVJTUU1MDAwMDExMDAwMDAxMDAwMTA0MDAwMDAxJmFtcDtpZHR5cGU9Y3ZpcHMmYW1wO2dpZnM9eWVzJmFtcDtyZWY9bm8iPiJGcmFtZXdvcmsgZm9yIHByYWN0aWNhbCBoZXhhZ29uYWwtaW1hZ2UgcHJvY2Vzc2luZyI8L2E+LiA8aT5Kb3VybmFsIG9mIEVsZWN0cm9uaWMgSW1hZ2luZzwvaT4gPGI+MTE8L2I+ICgxMDQpLiA8YSBocmVmPSIvd2lraS9EaWdpdGFsX29iamVjdF9pZGVudGlmaWVyIiB0aXRsZT0iRGlnaXRhbCBvYmplY3QgaWRlbnRpZmllciI+ZG9pPC9hPjo8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL2R4LmRvaS5vcmcvMTAuMTExNyUyRjEuMTQyNjA3OCI+MTAuMTExNy8xLjE0MjYwNzg8L2E+PHNwYW4gY2xhc3M9InJlZmVyZW5jZS1hY2Nlc3NkYXRlIj4uIFJldHJpZXZlZCBKYW51YXJ5IDE3LCAyMDEwIChhYnN0cmFjdCBvbmx5KTwvc3Bhbj4uPC9zcGFuPjxzcGFuIHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnJfaWQ9aW5mbyUzQXNpZCUyRmVuLndpa2lwZWRpYS5vcmclM0E0MislMjhudW1iZXIlMjkmYW1wO3JmdC5hdGl0bGU9RnJhbWV3b3JrK2ZvcitwcmFjdGljYWwraGV4YWdvbmFsLWltYWdlK3Byb2Nlc3NpbmcmYW1wO3JmdC5hdT1KYXlhbnRoaStTaXZhc3dhbXkmYW1wO3JmdC5hdWxhc3Q9TGVlK01pZGRsZXRvbiZhbXA7cmZ0LmF1PUxlZStNaWRkbGV0b24mYW1wO3JmdC5kYXRlPTIwMDImYW1wO3JmdC5nZW5yZT1hcnRpY2xlJmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRnNwaWVkbC5haXAub3JnJTJGZ2V0YWJzJTJGc2VydmxldCUyRkdldGFic1NlcnZsZXQlM0Zwcm9nJTNEbm9ybWFsJTI2aWQlM0RKRUlNRTUwMDAwMTEwMDAwMDEwMDAxMDQwMDAwMDElMjZpZHR5cGUlM0RjdmlwcyUyNmdpZnMlM0R5ZXMlMjZyZWYlM0RubyZhbXA7cmZ0X2lkPWluZm8lM0Fkb2klMkYxMC4xMTE3JTJGMS4xNDI2MDc4JmFtcDtyZnQuaXNzdWU9MTA0JmFtcDtyZnQuanRpdGxlPUpvdXJuYWwrb2YrRWxlY3Ryb25pYytJbWFnaW5nJmFtcDtyZnRfdmFsX2ZtdD1pbmZvJTNBb2ZpJTJGZm10JTNBa2V2JTNBbXR4JTNBam91cm5hbCZhbXA7cmZ0LnZvbHVtZT0xMSIgY2xhc3M9IlozOTg4Ij48c3BhbiBzdHlsZT0iZGlzcGxheTpub25lOyI+JiMxNjA7PC9zcGFuPjwvc3Bhbj4gPHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZTtmb250LXNpemU6MTAwJSIgY2xhc3M9ImVycm9yIGNpdGF0aW9uLWNvbW1lbnQiPkNoZWNrIGRhdGUgdmFsdWVzIGluOiA8Y29kZT58YWNjZXNzZGF0ZT08L2NvZGU+ICg8YSBocmVmPSIvd2lraS9IZWxwOkNTMV9lcnJvcnMjYmFkX2RhdGUiIHRpdGxlPSJIZWxwOkNTMSBlcnJvcnMiPmhlbHA8L2E+KTwvc3Bhbj48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTEyIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTEyIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIHdlYiI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9oaDk5NDU3My5hc3B4Ij4iTWF4aW11bSBwYXNzd29yZCBhZ2UiPC9hPi4gTWljcm9zb2Z0IFRlY2hOZXQ8c3BhbiBjbGFzcz0icmVmZXJlbmNlLWFjY2Vzc2RhdGUiPi4gUmV0cmlldmVkIDE1IEphbnVhcnkgMjAxNDwvc3Bhbj4uPC9zcGFuPjxzcGFuIHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnJfaWQ9aW5mbyUzQXNpZCUyRmVuLndpa2lwZWRpYS5vcmclM0E0MislMjhudW1iZXIlMjkmYW1wO3JmdC5idGl0bGU9TWF4aW11bStwYXNzd29yZCthZ2UmYW1wO3JmdC5nZW5yZT1ib29rJmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRnRlY2huZXQubWljcm9zb2Z0LmNvbSUyRmVuLXVzJTJGbGlicmFyeSUyRmhoOTk0NTczLmFzcHgmYW1wO3JmdC5wdWI9TWljcm9zb2Z0K1RlY2hOZXQmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fib29rIiBjbGFzcz0iWjM5ODgiPjxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4mIzE2MDs8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMTMiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMTMiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij5OaWl5YSwgQnJpYW4uIEphcGFuZXNlIEFtZXJpY2FuIGhpc3Rvcnk6IGFuIEEtdG8tWiByZWZlcmVuY2UgZnJvbSAxODY4IHRvIHRoZSBwcmVzZW50LiBGYWN0cyBvbiBGaWxlLCBJbmMuLCAxOTkzLCBwLiAzNTI8L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTE0Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTE0Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIHdlYiI+Sm9lbCBQcmltYWNrOyBOYW5jeSBFLiBBYnJhbXMuIDxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vcGh5c2ljcy51Y3NjLmVkdS9jb3Ntby9wcmltYWNrX2FicmFtcy9JbkFCZWdpbm5pbmdUaWtrdW4xOTk1LnBkZiI+IkluIEEgQmVnaW5uaW5nLi4uUXVhbnR1bSBDb3Ntb2xvZ3kgYW5kIEthYmJhbGFoIjwvYT4gKFBERik8c3BhbiBjbGFzcz0icmVmZXJlbmNlLWFjY2Vzc2RhdGUiPi4gUmV0cmlldmVkIDIwMDgtMDMtMTQ8L3NwYW4+Ljwvc3Bhbj48c3BhbiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZyX2lkPWluZm8lM0FzaWQlMkZlbi53aWtpcGVkaWEub3JnJTNBNDIrJTI4bnVtYmVyJTI5JmFtcDtyZnQuYXU9Sm9lbCtQcmltYWNrJmFtcDtyZnQuYXVsYXN0PUpvZWwrUHJpbWFjayZhbXA7cmZ0LmF1PU5hbmN5K0UuK0FicmFtcyZhbXA7cmZ0LmJ0aXRsZT1JbitBK0JlZ2lubmluZy4uLlF1YW50dW0rQ29zbW9sb2d5K2FuZCtLYWJiYWxhaCZhbXA7cmZ0LmdlbnJlPWJvb2smYW1wO3JmdF9pZD1odHRwJTNBJTJGJTJGcGh5c2ljcy51Y3NjLmVkdSUyRmNvc21vJTJGcHJpbWFja19hYnJhbXMlMkZJbkFCZWdpbm5pbmdUaWtrdW4xOTk1LnBkZiZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUzQW10eCUzQWJvb2siIGNsYXNzPSJaMzk4OCI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiYjMTYwOzwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvbGk+Cis8bGkgaWQ9ImNpdGVfbm90ZS0xNSI+PHNwYW4gY2xhc3M9Im13LWNpdGUtYmFja2xpbmsiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xNSI+XjwvYT48L2I+PC9zcGFuPiA8c3BhbiBjbGFzcz0icmVmZXJlbmNlLXRleHQiPjxzcGFuIGNsYXNzPSJjaXRhdGlvbiBuZXdzIj5HaWxsLCBQZXRlciAoRmVicnVhcnkgMywgMjAxMSkuIDxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2Jvb2tzLzIwMTEvZmViLzAzL2RvdWdsYXMtYWRhbXMtNDItaGl0Y2hoaWtlcj9JTlRDTVA9U1JDSCI+IjQyOiBEb3VnbGFzIEFkYW1zJyBBbWF6aW5nbHkgQWNjdXJhdGUgQW5zd2VyIHRvIExpZmUgdGhlIFVuaXZlcnNlIGFuZCBFdmVyeXRoaW5nIjwvYT4uIExvbmRvbjogR3VhcmRpYW48c3BhbiBjbGFzcz0icmVmZXJlbmNlLWFjY2Vzc2RhdGUiPi4gUmV0cmlldmVkIDAzLzA0LzIwMTE8L3NwYW4+Ljwvc3Bhbj48c3BhbiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZyX2lkPWluZm8lM0FzaWQlMkZlbi53aWtpcGVkaWEub3JnJTNBNDIrJTI4bnVtYmVyJTI5JmFtcDtyZnQuYXVmaXJzdD1QZXRlciZhbXA7cmZ0LmF1PUdpbGwlMkMrUGV0ZXImYW1wO3JmdC5hdWxhc3Q9R2lsbCZhbXA7cmZ0LmJ0aXRsZT00MiUzQStEb3VnbGFzK0FkYW1zJTI3K0FtYXppbmdseStBY2N1cmF0ZStBbnN3ZXIrdG8rTGlmZSt0aGUrVW5pdmVyc2UrYW5kK0V2ZXJ5dGhpbmcmYW1wO3JmdC5kYXRlPUZlYnJ1YXJ5KzMlMkMrMjAxMSZhbXA7cmZ0LmdlbnJlPWJvb2smYW1wO3JmdF9pZD1odHRwJTNBJTJGJTJGd3d3Lmd1YXJkaWFuLmNvLnVrJTJGYm9va3MlMkYyMDExJTJGZmViJTJGMDMlMkZkb3VnbGFzLWFkYW1zLTQyLWhpdGNoaGlrZXIlM0ZJTlRDTVAlM0RTUkNIJmFtcDtyZnQucGxhY2U9TG9uZG9uJmFtcDtyZnQucHViPUd1YXJkaWFuJmFtcDtyZnRfdmFsX2ZtdD1pbmZvJTNBb2ZpJTJGZm10JTNBa2V2JTNBbXR4JTNBYm9vayIgY2xhc3M9IlozOTg4Ij48c3BhbiBzdHlsZT0iZGlzcGxheTpub25lOyI+JiMxNjA7PC9zcGFuPjwvc3Bhbj4gPHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZTtmb250LXNpemU6MTAwJSIgY2xhc3M9ImVycm9yIGNpdGF0aW9uLWNvbW1lbnQiPkNoZWNrIGRhdGUgdmFsdWVzIGluOiA8Y29kZT58YWNjZXNzZGF0ZT08L2NvZGU+ICg8YSBocmVmPSIvd2lraS9IZWxwOkNTMV9lcnJvcnMjYmFkX2RhdGUiIHRpdGxlPSJIZWxwOkNTMSBlcnJvcnMiPmhlbHA8L2E+KTwvc3Bhbj48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTE2Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTE2Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly9maW5kYXJ0aWNsZXMuY29tL3AvYXJ0aWNsZXMvbWlfaGIzNDYvaXNfMV8zOC9haV9uMjkxNjI1NjUvIj5MZXdpcyBDYXJyb2xsIGFuZCBEb3VnbGFzIEFkYW1zPC9hPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMTciPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMTciPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48aT5UaGUgTXlzdGVyeSBvZiBMZXdpcyBDYXJyb2xsLDwvaT4gSmVubnkgV29vbGY8L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTE4Ij48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTE4Ij5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cuc25yay5kZS9zbmFya2h1bnQvP25ld3BpY3M9bm8jcHJlZmFjZSI+VGhlIEh1bnRpbmcgb2YgdGhlIFNuYXJrLCBieSBMZXdpcyBDYXJyb2xsPC9hPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMTkiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMTkiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgaHJlZj0iaHR0cDovL3d3dy5zbnJrLmRlL3NuYXJraHVudC8/bmV3cGljcz1ubyMwMjUiPlRoZSBIdW50aW5nIG9mIHRoZSBTbmFyaywgYnkgTGV3aXMgQ2Fycm9sbDwvYT48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2l0ZV9ub3RlLTIwIj48c3BhbiBjbGFzcz0ibXctY2l0ZS1iYWNrbGluayI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLTIwIj5ePC9hPjwvYj48L3NwYW4+IDxzcGFuIGNsYXNzPSJyZWZlcmVuY2UtdGV4dCI+PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cuc2xhdGUuY29tL2lkLzIyNDU2NDcvIj5XaGF0IExld2lzIENhcnJvbGwgVGF1Z2h0IFVzOiBBbGljZSdzIGNyZWF0b3Iga25ldyBhbGwgYWJvdXQgcm9sZS1wbGF5aW5nLjwvYT4gYnkgU2V0aCBMZXJlciwgTWFyY2ggNCwgMjAxMDwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMjEiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMjEiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48YSBocmVmPSJodHRwOi8vd3d3LmltZGIuY29tL3RpdGxlL3R0MDE2NDMxMi8iIGNsYXNzPSJleHRpdyIgdGl0bGU9ImltZGJ0aXRsZTowMTY0MzEyIj48aT40MjogRm9ydHkgVHdvIFVwPC9pPjwvYT4gYXQgSU1EQjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjaXRlX25vdGUtMjIiPjxzcGFuIGNsYXNzPSJtdy1jaXRlLWJhY2tsaW5rIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMjIiPl48L2E+PC9iPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InJlZmVyZW5jZS10ZXh0Ij48aT48YSByZWw9Im5vZm9sbG93IiBjbGFzcz0iZXh0ZXJuYWwgZnJlZSIgaHJlZj0iaHR0cDovL3d3dy5zbGF0ZS5jb20vaWQvMjI4NDcyMS8iPmh0dHA6Ly93d3cuc2xhdGUuY29tL2lkLzIyODQ3MjEvPC9hPjwvaT4gS2VuIEplbm5pbmdzPC9zcGFuPjwvbGk+Cis8L29sPgorPC9kaXY+Cis8aDI+PHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iRXh0ZXJuYWxfbGlua3MiPkV4dGVybmFsIGxpbmtzPC9zcGFuPjxzcGFuIGNsYXNzPSJtdy1lZGl0c2VjdGlvbiI+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPls8L3NwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0xNiIgdGl0bGU9IkVkaXQgc2VjdGlvbjogRXh0ZXJuYWwgbGlua3MiPmVkaXQ8L2E+PHNwYW4gY2xhc3M9Im13LWVkaXRzZWN0aW9uLWJyYWNrZXQiPl08L3NwYW4+PC9zcGFuPjwvaDI+Cis8dGFibGUgY2xhc3M9Im1ldGFkYXRhIG1ib3gtc21hbGwgcGxhaW5saW5rcyIgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2FhYTsgYmFja2dyb3VuZC1jb2xvcjojZjlmOWY5OyI+Cis8dHI+Cis8dGQgY2xhc3M9Im1ib3gtaW1hZ2UiPjxpbWcgYWx0PSIiIHNyYz0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9mL2Y4L1dpa3Rpb25hcnktbG9nby1lbi5zdmcvMzdweC1XaWt0aW9uYXJ5LWxvZ28tZW4uc3ZnLnBuZyIgd2lkdGg9IjM3IiBoZWlnaHQ9IjQwIiBzcmNzZXQ9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvZi9mOC9XaWt0aW9uYXJ5LWxvZ28tZW4uc3ZnLzU1cHgtV2lrdGlvbmFyeS1sb2dvLWVuLnN2Zy5wbmcgMS41eCwgLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9mL2Y4L1dpa3Rpb25hcnktbG9nby1lbi5zdmcvNzNweC1XaWt0aW9uYXJ5LWxvZ28tZW4uc3ZnLnBuZyAyeCIgLz48L3RkPgorPHRkIGNsYXNzPSJtYm94LXRleHQgcGxhaW5saXN0IiBzdHlsZT0iIj5Mb29rIHVwIDxpPjxiPjxhIGhyZWY9Ii8vZW4ud2lrdGlvbmFyeS5vcmcvd2lraS9mb3J0eS10d28iIGNsYXNzPSJleHRpdyIgdGl0bGU9Indpa3Rpb25hcnk6Zm9ydHktdHdvIj5mb3J0eS10d288L2E+PC9iPjwvaT4gaW4gV2lrdGlvbmFyeSwgdGhlIGZyZWUgZGljdGlvbmFyeS48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8dWw+Cis8bGk+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIHdlYiI+R3JpbWUsIEphbWVzOyBHZXJhcmRvIEFkZXNzbzsgUGhpbCBNb3JpYXJ0eS4gPGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Imh0dHA6Ly93d3cubnVtYmVycGhpbGUuY29tL3ZpZGVvcy80Mi5odG1sIj4iNDIgYW5kIERvdWdsYXMgQWRhbXMiPC9hPi4gPGk+TnVtYmVycGhpbGU8L2k+LiA8YSBocmVmPSIvd2lraS9CcmFkeV9IYXJhbiIgdGl0bGU9IkJyYWR5IEhhcmFuIj5CcmFkeSBIYXJhbjwvYT4uPC9zcGFuPjxzcGFuIHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnJfaWQ9aW5mbyUzQXNpZCUyRmVuLndpa2lwZWRpYS5vcmclM0E0MislMjhudW1iZXIlMjkmYW1wO3JmdC5hdGl0bGU9NDIrYW5kK0RvdWdsYXMrQWRhbXMmYW1wO3JmdC5hdWZpcnN0PUphbWVzJmFtcDtyZnQuYXU9R2VyYXJkbytBZGVzc28mYW1wO3JmdC5hdT1HcmltZSUyQytKYW1lcyZhbXA7cmZ0LmF1bGFzdD1HcmltZSZhbXA7cmZ0LmF1PVBoaWwrTW9yaWFydHkmYW1wO3JmdC5nZW5yZT1hcnRpY2xlJmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRnd3dy5udW1iZXJwaGlsZS5jb20lMkZ2aWRlb3MlMkY0Mi5odG1sJmFtcDtyZnQuanRpdGxlPU51bWJlcnBoaWxlJmFtcDtyZnQucHViPUJyYWR5K0hhcmFuJmFtcDtyZnRfdmFsX2ZtdD1pbmZvJTNBb2ZpJTJGZm10JTNBa2V2JTNBbXR4JTNBam91cm5hbCIgY2xhc3M9IlozOTg4Ij48c3BhbiBzdHlsZT0iZGlzcGxheTpub25lOyI+JiMxNjA7PC9zcGFuPjwvc3Bhbj48L2xpPgorPC91bD4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5hdmJveCIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7Y2xlYXI6bm9uZTsgd2lkdGg6NzAlO21pbi13aWR0aDo0MGVtOyI+Cis8dHI+Cis8dGQgc3R5bGU9InBhZGRpbmc6MnB4OyI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSB1bmNvbGxhcHNlIG5hdmJveC1pbm5lciIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0OyI+Cis8dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+Cis8ZGl2IGNsYXNzPSJwbGFpbmxpbmtzIGhsaXN0IG5hdmJhciBtaW5pIj4KKzx1bD4KKzxsaSBjbGFzcz0ibnYtdmlldyI+PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6SW50ZWdlcnMiIHRpdGxlPSJUZW1wbGF0ZTpJbnRlZ2VycyI+PHNwYW4gdGl0bGU9IlZpZXcgdGhpcyB0ZW1wbGF0ZSIgc3R5bGU9Ijs7YmFja2dyb3VuZDpub25lIHRyYW5zcGFyZW50O2JvcmRlcjpub25lOzsiPnY8L3NwYW4+PC9hPjwvbGk+Cis8bGkgY2xhc3M9Im52LXRhbGsiPjxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlX3RhbGs6SW50ZWdlcnMiIHRpdGxlPSJUZW1wbGF0ZSB0YWxrOkludGVnZXJzIj48c3BhbiB0aXRsZT0iRGlzY3VzcyB0aGlzIHRlbXBsYXRlIiBzdHlsZT0iOztiYWNrZ3JvdW5kOm5vbmUgdHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7OyI+dDwvc3Bhbj48L2E+PC9saT4KKzxsaSBjbGFzcz0ibnYtZWRpdCI+PGEgY2xhc3M9ImV4dGVybmFsIHRleHQiIGhyZWY9Ii8vZW4ud2lraXBlZGlhLm9yZy93L2luZGV4LnBocD90aXRsZT1UZW1wbGF0ZTpJbnRlZ2VycyZhbXA7YWN0aW9uPWVkaXQiPjxzcGFuIHRpdGxlPSJFZGl0IHRoaXMgdGVtcGxhdGUiIHN0eWxlPSI7O2JhY2tncm91bmQ6bm9uZSB0cmFuc3BhcmVudDtib3JkZXI6bm9uZTs7Ij5lPC9zcGFuPjwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS9JbnRlZ2VyIiB0aXRsZT0iSW50ZWdlciI+SW50ZWdlcnM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIGhsaXN0IiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+PC9kaXY+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSB1bmNvbGxhcHNlZCBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJib3JkZXItc3BhY2luZzowOyI+Cis8dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+PHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6NmVtOyI+JiMxNjA7PC9zcGFuPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS8wXyhudW1iZXIpIiB0aXRsZT0iMCAobnVtYmVyKSI+MHM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+JiMxNjA7PGEgaHJlZj0iL3dpa2kvMF8obnVtYmVyKSIgdGl0bGU9IjAgKG51bWJlcikiPjA8L2E+JiMxNjA7PC9saT4KKzxsaT4mIzE2MDs8YSBocmVmPSIvd2lraS8xXyhudW1iZXIpIiB0aXRsZT0iMSAobnVtYmVyKSI+MTwvYT4mIzE2MDs8L2xpPgorPGxpPiYjMTYwOzxhIGhyZWY9Ii93aWtpLzJfKG51bWJlcikiIHRpdGxlPSIyIChudW1iZXIpIj4yPC9hPiYjMTYwOzwvbGk+Cis8bGk+JiMxNjA7PGEgaHJlZj0iL3dpa2kvM18obnVtYmVyKSIgdGl0bGU9IjMgKG51bWJlcikiPjM8L2E+JiMxNjA7PC9saT4KKzxsaT4mIzE2MDs8YSBocmVmPSIvd2lraS80XyhudW1iZXIpIiB0aXRsZT0iNCAobnVtYmVyKSI+NDwvYT4mIzE2MDs8L2xpPgorPGxpPiYjMTYwOzxhIGhyZWY9Ii93aWtpLzVfKG51bWJlcikiIHRpdGxlPSI1IChudW1iZXIpIj41PC9hPiYjMTYwOzwvbGk+Cis8bGk+JiMxNjA7PGEgaHJlZj0iL3dpa2kvNl8obnVtYmVyKSIgdGl0bGU9IjYgKG51bWJlcikiPjY8L2E+JiMxNjA7PC9saT4KKzxsaT4mIzE2MDs8YSBocmVmPSIvd2lraS83XyhudW1iZXIpIiB0aXRsZT0iNyAobnVtYmVyKSI+NzwvYT4mIzE2MDs8L2xpPgorPGxpPiYjMTYwOzxhIGhyZWY9Ii93aWtpLzhfKG51bWJlcikiIHRpdGxlPSI4IChudW1iZXIpIj44PC9hPiYjMTYwOzwvbGk+Cis8bGk+JiMxNjA7PGEgaHJlZj0iL3dpa2kvOV8obnVtYmVyKSIgdGl0bGU9IjkgKG51bWJlcikiPjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTBfKG51bWJlcikiIHRpdGxlPSIxMCAobnVtYmVyKSI+MTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMV8obnVtYmVyKSIgdGl0bGU9IjExIChudW1iZXIpIj4xMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyXyhudW1iZXIpIiB0aXRsZT0iMTIgKG51bWJlcikiPjEyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTNfKG51bWJlcikiIHRpdGxlPSIxMyAobnVtYmVyKSI+MTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNF8obnVtYmVyKSIgdGl0bGU9IjE0IChudW1iZXIpIj4xNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1XyhudW1iZXIpIiB0aXRsZT0iMTUgKG51bWJlcikiPjE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTZfKG51bWJlcikiIHRpdGxlPSIxNiAobnVtYmVyKSI+MTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xN18obnVtYmVyKSIgdGl0bGU9IjE3IChudW1iZXIpIj4xNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4XyhudW1iZXIpIiB0aXRsZT0iMTggKG51bWJlcikiPjE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTlfKG51bWJlcikiIHRpdGxlPSIxOSAobnVtYmVyKSI+MTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yMF8obnVtYmVyKSIgdGl0bGU9IjIwIChudW1iZXIpIj4yMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxXyhudW1iZXIpIiB0aXRsZT0iMjEgKG51bWJlcikiPjIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjJfKG51bWJlcikiIHRpdGxlPSIyMiAobnVtYmVyKSI+MjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yM18obnVtYmVyKSIgdGl0bGU9IjIzIChudW1iZXIpIj4yMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI0XyhudW1iZXIpIiB0aXRsZT0iMjQgKG51bWJlcikiPjI0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjVfKG51bWJlcikiIHRpdGxlPSIyNSAobnVtYmVyKSI+MjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNl8obnVtYmVyKSIgdGl0bGU9IjI2IChudW1iZXIpIj4yNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI3XyhudW1iZXIpIiB0aXRsZT0iMjcgKG51bWJlcikiPjI3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjhfKG51bWJlcikiIHRpdGxlPSIyOCAobnVtYmVyKSI+Mjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOV8obnVtYmVyKSIgdGl0bGU9IjI5IChudW1iZXIpIj4yOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8zMF8obnVtYmVyKSIgdGl0bGU9IjMwIChudW1iZXIpIj4zMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxXyhudW1iZXIpIiB0aXRsZT0iMzEgKG51bWJlcikiPjMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzJfKG51bWJlcikiIHRpdGxlPSIzMiAobnVtYmVyKSI+MzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zM18obnVtYmVyKSIgdGl0bGU9IjMzIChudW1iZXIpIj4zMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0XyhudW1iZXIpIiB0aXRsZT0iMzQgKG51bWJlcikiPjM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzVfKG51bWJlcikiIHRpdGxlPSIzNSAobnVtYmVyKSI+MzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNl8obnVtYmVyKSIgdGl0bGU9IjM2IChudW1iZXIpIj4zNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3XyhudW1iZXIpIiB0aXRsZT0iMzcgKG51bWJlcikiPjM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzhfKG51bWJlcikiIHRpdGxlPSIzOCAobnVtYmVyKSI+Mzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOV8obnVtYmVyKSIgdGl0bGU9IjM5IChudW1iZXIpIj4zOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwXyhudW1iZXIpIiB0aXRsZT0iNDAgKG51bWJlcikiPjQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDFfKG51bWJlcikiIHRpdGxlPSI0MSAobnVtYmVyKSI+NDE8L2E+PC9saT4KKzxsaT48c3Ryb25nIGNsYXNzPSJzZWxmbGluayI+NDI8L3N0cm9uZz48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzXyhudW1iZXIpIiB0aXRsZT0iNDMgKG51bWJlcikiPjQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDRfKG51bWJlcikiIHRpdGxlPSI0NCAobnVtYmVyKSI+NDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NV8obnVtYmVyKSIgdGl0bGU9IjQ1IChudW1iZXIpIj40NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2XyhudW1iZXIpIiB0aXRsZT0iNDYgKG51bWJlcikiPjQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDdfKG51bWJlcikiIHRpdGxlPSI0NyAobnVtYmVyKSI+NDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80OF8obnVtYmVyKSIgdGl0bGU9IjQ4IChudW1iZXIpIj40ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5XyhudW1iZXIpIiB0aXRsZT0iNDkgKG51bWJlcikiPjQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwXyhudW1iZXIpIiB0aXRsZT0iNTAgKG51bWJlcikiPjUwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTFfKG51bWJlcikiIHRpdGxlPSI1MSAobnVtYmVyKSI+NTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81Ml8obnVtYmVyKSIgdGl0bGU9IjUyIChudW1iZXIpIj41MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzXyhudW1iZXIpIiB0aXRsZT0iNTMgKG51bWJlcikiPjUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTRfKG51bWJlcikiIHRpdGxlPSI1NCAobnVtYmVyKSI+NTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NV8obnVtYmVyKSIgdGl0bGU9IjU1IChudW1iZXIpIj41NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU2XyhudW1iZXIpIiB0aXRsZT0iNTYgKG51bWJlcikiPjU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTdfKG51bWJlcikiIHRpdGxlPSI1NyAobnVtYmVyKSI+NTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81OF8obnVtYmVyKSIgdGl0bGU9IjU4IChudW1iZXIpIj41ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5XyhudW1iZXIpIiB0aXRsZT0iNTkgKG51bWJlcikiPjU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjBfKG51bWJlcikiIHRpdGxlPSI2MCAobnVtYmVyKSI+NjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MV8obnVtYmVyKSIgdGl0bGU9IjYxIChudW1iZXIpIj42MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyXyhudW1iZXIpIiB0aXRsZT0iNjIgKG51bWJlcikiPjYyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjNfKG51bWJlcikiIHRpdGxlPSI2MyAobnVtYmVyKSI+NjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NF8obnVtYmVyKSIgdGl0bGU9IjY0IChudW1iZXIpIj42NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1XyhudW1iZXIpIiB0aXRsZT0iNjUgKG51bWJlcikiPjY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjZfKG51bWJlcikiIHRpdGxlPSI2NiAobnVtYmVyKSI+NjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82N18obnVtYmVyKSIgdGl0bGU9IjY3IChudW1iZXIpIj42NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4XyhudW1iZXIpIiB0aXRsZT0iNjggKG51bWJlcikiPjY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjlfKG51bWJlcikiIHRpdGxlPSI2OSAobnVtYmVyKSI+Njk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzBfKG51bWJlcikiIHRpdGxlPSI3MCAobnVtYmVyKSI+NzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MV8obnVtYmVyKSIgdGl0bGU9IjcxIChudW1iZXIpIj43MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyXyhudW1iZXIpIiB0aXRsZT0iNzIgKG51bWJlcikiPjcyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzNfKG51bWJlcikiIHRpdGxlPSI3MyAobnVtYmVyKSI+NzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NF8obnVtYmVyKSIgdGl0bGU9Ijc0IChudW1iZXIpIj43NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1XyhudW1iZXIpIiB0aXRsZT0iNzUgKG51bWJlcikiPjc1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzZfKG51bWJlcikiIHRpdGxlPSI3NiAobnVtYmVyKSI+NzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83N18obnVtYmVyKSIgdGl0bGU9Ijc3IChudW1iZXIpIj43NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4XyhudW1iZXIpIiB0aXRsZT0iNzggKG51bWJlcikiPjc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzlfKG51bWJlcikiIHRpdGxlPSI3OSAobnVtYmVyKSI+Nzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS84MF8obnVtYmVyKSIgdGl0bGU9IjgwIChudW1iZXIpIj44MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxXyhudW1iZXIpIiB0aXRsZT0iODEgKG51bWJlcikiPjgxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODJfKG51bWJlcikiIHRpdGxlPSI4MiAobnVtYmVyKSI+ODI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84M18obnVtYmVyKSIgdGl0bGU9IjgzIChudW1iZXIpIj44MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0XyhudW1iZXIpIiB0aXRsZT0iODQgKG51bWJlcikiPjg0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODVfKG51bWJlcikiIHRpdGxlPSI4NSAobnVtYmVyKSI+ODU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84Nl8obnVtYmVyKSIgdGl0bGU9Ijg2IChudW1iZXIpIj44NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg3XyhudW1iZXIpIiB0aXRsZT0iODcgKG51bWJlcikiPjg3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODhfKG51bWJlcikiIHRpdGxlPSI4OCAobnVtYmVyKSI+ODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OV8obnVtYmVyKSIgdGl0bGU9Ijg5IChudW1iZXIpIj44OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85MF8obnVtYmVyKSIgdGl0bGU9IjkwIChudW1iZXIpIj45MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkxXyhudW1iZXIpIiB0aXRsZT0iOTEgKG51bWJlcikiPjkxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTJfKG51bWJlcikiIHRpdGxlPSI5MiAobnVtYmVyKSI+OTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85M18obnVtYmVyKSIgdGl0bGU9IjkzIChudW1iZXIpIj45MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0XyhudW1iZXIpIiB0aXRsZT0iOTQgKG51bWJlcikiPjk0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTVfKG51bWJlcikiIHRpdGxlPSI5NSAobnVtYmVyKSI+OTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85Nl8obnVtYmVyKSIgdGl0bGU9Ijk2IChudW1iZXIpIj45NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3XyhudW1iZXIpIiB0aXRsZT0iOTcgKG51bWJlcikiPjk3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOThfKG51bWJlcikiIHRpdGxlPSI5OCAobnVtYmVyKSI+OTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OV8obnVtYmVyKSIgdGl0bGU9Ijk5IChudW1iZXIpIj45OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4gaGxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij48L2Rpdj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtzIGNvbGxhcHNpYmxlIGNvbGxhcHNlZCBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJib3JkZXItc3BhY2luZzowOyI+Cis8dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+PHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6NmVtOyI+JiMxNjA7PC9zcGFuPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS8xMDBfKG51bWJlcikiIHRpdGxlPSIxMDAgKG51bWJlcikiPjEwMHM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTAwXyhudW1iZXIpIiB0aXRsZT0iMTAwIChudW1iZXIpIj4xMDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMDFfKG51bWJlcikiIHRpdGxlPSIxMDEgKG51bWJlcikiPjEwMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEwMl8obnVtYmVyKSIgdGl0bGU9IjEwMiAobnVtYmVyKSI+MTAyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTAzXyhudW1iZXIpIiB0aXRsZT0iMTAzIChudW1iZXIpIj4xMDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMDRfKG51bWJlcikiIHRpdGxlPSIxMDQgKG51bWJlcikiPjEwNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEwNV8obnVtYmVyKSIgdGl0bGU9IjEwNSAobnVtYmVyKSI+MTA1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTA2XyhudW1iZXIpIiB0aXRsZT0iMTA2IChudW1iZXIpIj4xMDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMDdfKG51bWJlcikiIHRpdGxlPSIxMDcgKG51bWJlcikiPjEwNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEwOF8obnVtYmVyKSIgdGl0bGU9IjEwOCAobnVtYmVyKSI+MTA4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTA5XyhudW1iZXIpIiB0aXRsZT0iMTA5IChudW1iZXIpIj4xMDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTEwXyhudW1iZXIpIiB0aXRsZT0iMTEwIChudW1iZXIpIj4xMTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMTFfKG51bWJlcikiIHRpdGxlPSIxMTEgKG51bWJlcikiPjExMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzExMl8obnVtYmVyKSIgdGl0bGU9IjExMiAobnVtYmVyKSI+MTEyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTEzXyhudW1iZXIpIiB0aXRsZT0iMTEzIChudW1iZXIpIj4xMTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMTRfKG51bWJlcikiIHRpdGxlPSIxMTQgKG51bWJlcikiPjExNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzExNV8obnVtYmVyKSIgdGl0bGU9IjExNSAobnVtYmVyKSI+MTE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTE2XyhudW1iZXIpIiB0aXRsZT0iMTE2IChudW1iZXIpIj4xMTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMTdfKG51bWJlcikiIHRpdGxlPSIxMTcgKG51bWJlcikiPjExNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzExOF8obnVtYmVyKSIgdGl0bGU9IjExOCAobnVtYmVyKSI+MTE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTE5XyhudW1iZXIpIiB0aXRsZT0iMTE5IChudW1iZXIpIj4xMTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xMjBfKG51bWJlcikiIHRpdGxlPSIxMjAgKG51bWJlcikiPjEyMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyMV8obnVtYmVyKSIgdGl0bGU9IjEyMSAobnVtYmVyKSI+MTIxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTIyXyhudW1iZXIpIiB0aXRsZT0iMTIyIChudW1iZXIpIj4xMjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMjNfKG51bWJlcikiIHRpdGxlPSIxMjMgKG51bWJlcikiPjEyMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyNF8obnVtYmVyKSIgdGl0bGU9IjEyNCAobnVtYmVyKSI+MTI0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTI1XyhudW1iZXIpIiB0aXRsZT0iMTI1IChudW1iZXIpIj4xMjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMjZfKG51bWJlcikiIHRpdGxlPSIxMjYgKG51bWJlcikiPjEyNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEyN18obnVtYmVyKSIgdGl0bGU9IjEyNyAobnVtYmVyKSI+MTI3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTI4XyhudW1iZXIpIiB0aXRsZT0iMTI4IChudW1iZXIpIj4xMjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMjlfKG51bWJlcikiIHRpdGxlPSIxMjkgKG51bWJlcikiPjEyOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xMzBfKG51bWJlcikiIHRpdGxlPSIxMzAgKG51bWJlcikiPjEzMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEzMV8obnVtYmVyKSIgdGl0bGU9IjEzMSAobnVtYmVyKSI+MTMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTMyXyhudW1iZXIpIiB0aXRsZT0iMTMyIChudW1iZXIpIj4xMzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMzNfKG51bWJlcikiIHRpdGxlPSIxMzMgKG51bWJlcikiPjEzMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEzNF8obnVtYmVyKSIgdGl0bGU9IjEzNCAobnVtYmVyKSI+MTM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTM1XyhudW1iZXIpIiB0aXRsZT0iMTM1IChudW1iZXIpIj4xMzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMzZfKG51bWJlcikiIHRpdGxlPSIxMzYgKG51bWJlcikiPjEzNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzEzN18obnVtYmVyKSIgdGl0bGU9IjEzNyAobnVtYmVyKSI+MTM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTM4XyhudW1iZXIpIiB0aXRsZT0iMTM4IChudW1iZXIpIj4xMzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xMzlfKG51bWJlcikiIHRpdGxlPSIxMzkgKG51bWJlcikiPjEzOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0MF8obnVtYmVyKSIgdGl0bGU9IjE0MCAobnVtYmVyKSI+MTQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTQxXyhudW1iZXIpIiB0aXRsZT0iMTQxIChudW1iZXIpIj4xNDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNDJfKG51bWJlcikiIHRpdGxlPSIxNDIgKG51bWJlcikiPjE0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0M18obnVtYmVyKSIgdGl0bGU9IjE0MyAobnVtYmVyKSI+MTQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTQ0XyhudW1iZXIpIiB0aXRsZT0iMTQ0IChudW1iZXIpIj4xNDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNDVfKG51bWJlcikiIHRpdGxlPSIxNDUgKG51bWJlcikiPjE0NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0Nl8obnVtYmVyKSIgdGl0bGU9IjE0NiAobnVtYmVyKSI+MTQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTQ3XyhudW1iZXIpIiB0aXRsZT0iMTQ3IChudW1iZXIpIj4xNDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNDhfKG51bWJlcikiIHRpdGxlPSIxNDggKG51bWJlcikiPjE0ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE0OV8obnVtYmVyKSIgdGl0bGU9IjE0OSAobnVtYmVyKSI+MTQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1MF8obnVtYmVyKSIgdGl0bGU9IjE1MCAobnVtYmVyKSI+MTUwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTUxXyhudW1iZXIpIiB0aXRsZT0iMTUxIChudW1iZXIpIj4xNTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNTJfKG51bWJlcikiIHRpdGxlPSIxNTIgKG51bWJlcikiPjE1MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1M18obnVtYmVyKSIgdGl0bGU9IjE1MyAobnVtYmVyKSI+MTUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTU0XyhudW1iZXIpIiB0aXRsZT0iMTU0IChudW1iZXIpIj4xNTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNTVfKG51bWJlcikiIHRpdGxlPSIxNTUgKG51bWJlcikiPjE1NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1Nl8obnVtYmVyKSIgdGl0bGU9IjE1NiAobnVtYmVyKSI+MTU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTU3XyhudW1iZXIpIiB0aXRsZT0iMTU3IChudW1iZXIpIj4xNTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNThfKG51bWJlcikiIHRpdGxlPSIxNTggKG51bWJlcikiPjE1ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE1OV8obnVtYmVyKSIgdGl0bGU9IjE1OSAobnVtYmVyKSI+MTU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTYwXyhudW1iZXIpIiB0aXRsZT0iMTYwIChudW1iZXIpIj4xNjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNjFfKG51bWJlcikiIHRpdGxlPSIxNjEgKG51bWJlcikiPjE2MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE2Ml8obnVtYmVyKSIgdGl0bGU9IjE2MiAobnVtYmVyKSI+MTYyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTYzXyhudW1iZXIpIiB0aXRsZT0iMTYzIChudW1iZXIpIj4xNjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNjRfKG51bWJlcikiIHRpdGxlPSIxNjQgKG51bWJlcikiPjE2NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE2NV8obnVtYmVyKSIgdGl0bGU9IjE2NSAobnVtYmVyKSI+MTY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTY2XyhudW1iZXIpIiB0aXRsZT0iMTY2IChudW1iZXIpIj4xNjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNjdfKG51bWJlcikiIHRpdGxlPSIxNjcgKG51bWJlcikiPjE2NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE2OF8obnVtYmVyKSIgdGl0bGU9IjE2OCAobnVtYmVyKSI+MTY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTY5XyhudW1iZXIpIiB0aXRsZT0iMTY5IChudW1iZXIpIj4xNjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTcwXyhudW1iZXIpIiB0aXRsZT0iMTcwIChudW1iZXIpIj4xNzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNzFfKG51bWJlcikiIHRpdGxlPSIxNzEgKG51bWJlcikiPjE3MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE3Ml8obnVtYmVyKSIgdGl0bGU9IjE3MiAobnVtYmVyKSI+MTcyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTczXyhudW1iZXIpIiB0aXRsZT0iMTczIChudW1iZXIpIj4xNzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNzRfKG51bWJlcikiIHRpdGxlPSIxNzQgKG51bWJlcikiPjE3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE3NV8obnVtYmVyKSIgdGl0bGU9IjE3NSAobnVtYmVyKSI+MTc1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTc2XyhudW1iZXIpIiB0aXRsZT0iMTc2IChudW1iZXIpIj4xNzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xNzdfKG51bWJlcikiIHRpdGxlPSIxNzcgKG51bWJlcikiPjE3NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE3OF8obnVtYmVyKSIgdGl0bGU9IjE3OCAobnVtYmVyKSI+MTc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTc5XyhudW1iZXIpIiB0aXRsZT0iMTc5IChudW1iZXIpIj4xNzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xODBfKG51bWJlcikiIHRpdGxlPSIxODAgKG51bWJlcikiPjE4MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4MV8obnVtYmVyKSIgdGl0bGU9IjE4MSAobnVtYmVyKSI+MTgxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTgyXyhudW1iZXIpIiB0aXRsZT0iMTgyIChudW1iZXIpIj4xODI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xODNfKG51bWJlcikiIHRpdGxlPSIxODMgKG51bWJlcikiPjE4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4NF8obnVtYmVyKSIgdGl0bGU9IjE4NCAobnVtYmVyKSI+MTg0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTg1XyhudW1iZXIpIiB0aXRsZT0iMTg1IChudW1iZXIpIj4xODU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xODZfKG51bWJlcikiIHRpdGxlPSIxODYgKG51bWJlcikiPjE4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE4N18obnVtYmVyKSIgdGl0bGU9IjE4NyAobnVtYmVyKSI+MTg3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTg4XyhudW1iZXIpIiB0aXRsZT0iMTg4IChudW1iZXIpIj4xODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xODlfKG51bWJlcikiIHRpdGxlPSIxODkgKG51bWJlcikiPjE4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8xOTBfKG51bWJlcikiIHRpdGxlPSIxOTAgKG51bWJlcikiPjE5MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE5MV8obnVtYmVyKSIgdGl0bGU9IjE5MSAobnVtYmVyKSI+MTkxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTkyXyhudW1iZXIpIiB0aXRsZT0iMTkyIChudW1iZXIpIj4xOTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xOTNfKG51bWJlcikiIHRpdGxlPSIxOTMgKG51bWJlcikiPjE5MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE5NF8obnVtYmVyKSIgdGl0bGU9IjE5NCAobnVtYmVyKSI+MTk0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTk1XyhudW1iZXIpIiB0aXRsZT0iMTk1IChudW1iZXIpIj4xOTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xOTZfKG51bWJlcikiIHRpdGxlPSIxOTYgKG51bWJlcikiPjE5NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzE5N18obnVtYmVyKSIgdGl0bGU9IjE5NyAobnVtYmVyKSI+MTk3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMTk4XyhudW1iZXIpIiB0aXRsZT0iMTk4IChudW1iZXIpIj4xOTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8xOTlfKG51bWJlcikiIHRpdGxlPSIxOTkgKG51bWJlcikiPjE5OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCBobGlzdCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPjwvZGl2PgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93cmFwbGlua3MgY29sbGFwc2libGUgY29sbGFwc2VkIG5hdmJveC1zdWJncm91cCIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7Ij4KKzx0cj4KKzx0aCBzY29wZT0iY29sIiBjbGFzcz0ibmF2Ym94LXRpdGxlIiBjb2xzcGFuPSIyIj48c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo2ZW07Ij4mIzE2MDs8L3NwYW4+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEwJTsiPjxhIGhyZWY9Ii93aWtpLzIwMF8obnVtYmVyKSIgdGl0bGU9IjIwMCAobnVtYmVyKSI+MjAwczwvYT48L2Rpdj4KKzwvdGg+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yMDBfKG51bWJlcikiIHRpdGxlPSIyMDAgKG51bWJlcikiPjIwMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwMV8obnVtYmVyKSIgdGl0bGU9IjIwMSAobnVtYmVyKSI+MjAxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjAyXyhudW1iZXIpIiB0aXRsZT0iMjAyIChudW1iZXIpIj4yMDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMDNfKG51bWJlcikiIHRpdGxlPSIyMDMgKG51bWJlcikiPjIwMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwNF8obnVtYmVyKSIgdGl0bGU9IjIwNCAobnVtYmVyKSI+MjA0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjA1XyhudW1iZXIpIiB0aXRsZT0iMjA1IChudW1iZXIpIj4yMDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMDZfKG51bWJlcikiIHRpdGxlPSIyMDYgKG51bWJlcikiPjIwNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIwN18obnVtYmVyKSIgdGl0bGU9IjIwNyAobnVtYmVyKSI+MjA3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjA4XyhudW1iZXIpIiB0aXRsZT0iMjA4IChudW1iZXIpIj4yMDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMDlfKG51bWJlcikiIHRpdGxlPSIyMDkgKG51bWJlcikiPjIwOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yMTBfKG51bWJlcikiIHRpdGxlPSIyMTAgKG51bWJlcikiPjIxMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxMV8obnVtYmVyKSIgdGl0bGU9IjIxMSAobnVtYmVyKSI+MjExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjEyXyhudW1iZXIpIiB0aXRsZT0iMjEyIChudW1iZXIpIj4yMTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMTNfKG51bWJlcikiIHRpdGxlPSIyMTMgKG51bWJlcikiPjIxMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxNF8obnVtYmVyKSIgdGl0bGU9IjIxNCAobnVtYmVyKSI+MjE0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjE1XyhudW1iZXIpIiB0aXRsZT0iMjE1IChudW1iZXIpIj4yMTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMTZfKG51bWJlcikiIHRpdGxlPSIyMTYgKG51bWJlcikiPjIxNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIxN18obnVtYmVyKSIgdGl0bGU9IjIxNyAobnVtYmVyKSI+MjE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjE4XyhudW1iZXIpIiB0aXRsZT0iMjE4IChudW1iZXIpIj4yMTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMTlfKG51bWJlcikiIHRpdGxlPSIyMTkgKG51bWJlcikiPjIxOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIyMF8obnVtYmVyKSIgdGl0bGU9IjIyMCAobnVtYmVyKSI+MjIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjIxXyhudW1iZXIpIiB0aXRsZT0iMjIxIChudW1iZXIpIj4yMjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMjJfKG51bWJlcikiIHRpdGxlPSIyMjIgKG51bWJlcikiPjIyMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIyM18obnVtYmVyKSIgdGl0bGU9IjIyMyAobnVtYmVyKSI+MjIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjI0XyhudW1iZXIpIiB0aXRsZT0iMjI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjIyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIyNV8obnVtYmVyKSIgdGl0bGU9IjIyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yMjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMjZfKG51bWJlcikiIHRpdGxlPSIyMjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjI3XyhudW1iZXIpIiB0aXRsZT0iMjI3IChudW1iZXIpIj4yMjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMjhfKG51bWJlcikiIHRpdGxlPSIyMjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjI4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjI5XyhudW1iZXIpIiB0aXRsZT0iMjI5IChudW1iZXIpIj4yMjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjMwXyhudW1iZXIpIiB0aXRsZT0iMjMwIChudW1iZXIpIj4yMzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMzFfKG51bWJlcikiIHRpdGxlPSIyMzEgKG51bWJlcikiPjIzMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzMl8obnVtYmVyKSIgdGl0bGU9IjIzMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yMzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMzNfKG51bWJlcikiIHRpdGxlPSIyMzMgKG51bWJlcikiPjIzMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzNF8obnVtYmVyKSIgdGl0bGU9IjIzNCAobnVtYmVyKSI+MjM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjM1XyhudW1iZXIpIiB0aXRsZT0iMjM1IChudW1iZXIpIj4yMzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMzZfKG51bWJlcikiIHRpdGxlPSIyMzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjM2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjM3XyhudW1iZXIpIiB0aXRsZT0iMjM3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjIzNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzIzOF8obnVtYmVyKSIgdGl0bGU9IjIzOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yMzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yMzlfKG51bWJlcikiIHRpdGxlPSIyMzkgKG51bWJlcikiPjIzOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI0MF8obnVtYmVyKSIgdGl0bGU9IjI0MCAobnVtYmVyKSI+MjQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQxXyhudW1iZXIpIiB0aXRsZT0iMjQxIChudW1iZXIpIj4yNDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNDJfKG51bWJlcikiIHRpdGxlPSIyNDIgKG51bWJlcikiPjI0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI0M18obnVtYmVyKSIgdGl0bGU9IjI0MyAobnVtYmVyKSI+MjQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQ0XyhudW1iZXIpIiB0aXRsZT0iMjQ0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI0NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI0NV8obnVtYmVyKSIgdGl0bGU9IjI0NSAobnVtYmVyKSI+MjQ1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQ2XyhudW1iZXIpIiB0aXRsZT0iMjQ2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI0NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI0N18obnVtYmVyKSIgdGl0bGU9IjI0NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNDhfKG51bWJlcikiIHRpdGxlPSIyNDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjQ4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjQ5XyhudW1iZXIpIiB0aXRsZT0iMjQ5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI0OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yNTBfKG51bWJlcikiIHRpdGxlPSIyNTAgKG51bWJlcikiPjI1MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI1MV8obnVtYmVyKSIgdGl0bGU9IjI1MSAobnVtYmVyKSI+MjUxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjUyXyhudW1iZXIpIiB0aXRsZT0iMjUyIChudW1iZXIpIj4yNTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNTNfKG51bWJlcikiIHRpdGxlPSIyNTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjU0XyhudW1iZXIpIiB0aXRsZT0iMjU0IChudW1iZXIpIj4yNTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNTVfKG51bWJlcikiIHRpdGxlPSIyNTUgKG51bWJlcikiPjI1NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI1Nl8obnVtYmVyKSIgdGl0bGU9IjI1NiAobnVtYmVyKSI+MjU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjU3XyhudW1iZXIpIiB0aXRsZT0iMjU3IChudW1iZXIpIj4yNTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNThfKG51bWJlcikiIHRpdGxlPSIyNTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjU4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjU5XyhudW1iZXIpIiB0aXRsZT0iMjU5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI1OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2MF8obnVtYmVyKSIgdGl0bGU9IjI2MCAobnVtYmVyKSI+MjYwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjYxXyhudW1iZXIpIiB0aXRsZT0iMjYxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI2MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2Ml8obnVtYmVyKSIgdGl0bGU9IjI2MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNjNfKG51bWJlcikiIHRpdGxlPSIyNjMgKG51bWJlcikiPjI2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2NF8obnVtYmVyKSIgdGl0bGU9IjI2NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNjVfKG51bWJlcikiIHRpdGxlPSIyNjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjY2XyhudW1iZXIpIiB0aXRsZT0iMjY2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI2N18obnVtYmVyKSIgdGl0bGU9IjI2NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNjhfKG51bWJlcikiIHRpdGxlPSIyNjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjY5XyhudW1iZXIpIiB0aXRsZT0iMjY5IChudW1iZXIpIj4yNjk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjcwXyhudW1iZXIpIiB0aXRsZT0iMjcwIChudW1iZXIpIj4yNzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNzFfKG51bWJlcikiIHRpdGxlPSIyNzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjcxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjcyXyhudW1iZXIpIiB0aXRsZT0iMjcyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI3MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI3M18obnVtYmVyKSIgdGl0bGU9IjI3MyAobnVtYmVyKSI+MjczPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjc0XyhudW1iZXIpIiB0aXRsZT0iMjc0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI3NV8obnVtYmVyKSIgdGl0bGU9IjI3NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yNzZfKG51bWJlcikiIHRpdGxlPSIyNzYgKG51bWJlcikiPjI3NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI3N18obnVtYmVyKSIgdGl0bGU9IjI3NyAobnVtYmVyKSI+Mjc3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjc4XyhudW1iZXIpIiB0aXRsZT0iMjc4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI3ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI3OV8obnVtYmVyKSIgdGl0bGU9IjI3OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yNzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8yODBfKG51bWJlcikiIHRpdGxlPSIyODAgKG51bWJlcikiPjI4MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI4MV8obnVtYmVyKSIgdGl0bGU9IjI4MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yODJfKG51bWJlcikiIHRpdGxlPSIyODIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjgyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjgzXyhudW1iZXIpIiB0aXRsZT0iMjgzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI4NF8obnVtYmVyKSIgdGl0bGU9IjI4NCAobnVtYmVyKSI+Mjg0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjg1XyhudW1iZXIpIiB0aXRsZT0iMjg1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI4NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI4Nl8obnVtYmVyKSIgdGl0bGU9IjI4NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yODY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yODdfKG51bWJlcikiIHRpdGxlPSIyODcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjg3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjg4XyhudW1iZXIpIiB0aXRsZT0iMjg4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI4ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI4OV8obnVtYmVyKSIgdGl0bGU9IjI4OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yODk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjkwXyhudW1iZXIpIiB0aXRsZT0iMjkwIChudW1iZXIpIj4yOTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOTFfKG51bWJlcikiIHRpdGxlPSIyOTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MjkxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjkyXyhudW1iZXIpIiB0aXRsZT0iMjkyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI5MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI5M18obnVtYmVyKSIgdGl0bGU9IjI5MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yOTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOTRfKG51bWJlcikiIHRpdGxlPSIyOTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjk0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjk1XyhudW1iZXIpIiB0aXRsZT0iMjk1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI5NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI5Nl8obnVtYmVyKSIgdGl0bGU9IjI5NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yOTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8yOTdfKG51bWJlcikiIHRpdGxlPSIyOTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mjk3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMjk4XyhudW1iZXIpIiB0aXRsZT0iMjk4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjI5ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzI5OV8obnVtYmVyKSIgdGl0bGU9IjI5OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4yOTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIGhsaXN0IiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+PC9kaXY+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSBjb2xsYXBzZWQgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDsiPgorPHRyPgorPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJuYXZib3gtdGl0bGUiIGNvbHNwYW49IjIiPjxzcGFuIHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjZlbTsiPiYjMTYwOzwvc3Bhbj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJlZj0iL3dpa2kvMzAwXyhudW1iZXIpIiB0aXRsZT0iMzAwIChudW1iZXIpIj4zMDBzPC9hPjwvZGl2PgorPC90aD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwMF8obnVtYmVyKSIgdGl0bGU9IjMwMCAobnVtYmVyKSI+MzAwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzAxXyhudW1iZXIpIiB0aXRsZT0iMzAxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMwMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwMl8obnVtYmVyKSIgdGl0bGU9IjMwMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMDNfKG51bWJlcikiIHRpdGxlPSIzMDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzAzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzA0XyhudW1iZXIpIiB0aXRsZT0iMzA0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMwNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwNV8obnVtYmVyKSIgdGl0bGU9IjMwNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMDZfKG51bWJlcikiIHRpdGxlPSIzMDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzA2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzA3XyhudW1iZXIpIiB0aXRsZT0iMzA3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMwNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMwOF8obnVtYmVyKSIgdGl0bGU9IjMwOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMDlfKG51bWJlcikiIHRpdGxlPSIzMDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzA5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxMF8obnVtYmVyKSIgdGl0bGU9IjMxMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMTFfKG51bWJlcikiIHRpdGxlPSIzMTEgKG51bWJlcikiPjMxMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxMl8obnVtYmVyKSIgdGl0bGU9IjMxMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMTNfKG51bWJlcikiIHRpdGxlPSIzMTMgKG51bWJlcikiPjMxMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxNF8obnVtYmVyKSIgdGl0bGU9IjMxNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMTVfKG51bWJlcikiIHRpdGxlPSIzMTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzE2XyhudW1iZXIpIiB0aXRsZT0iMzE2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMxNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxN18obnVtYmVyKSIgdGl0bGU9IjMxNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMThfKG51bWJlcikiIHRpdGxlPSIzMTggKG51bWJlcikiPjMxODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMxOV8obnVtYmVyKSIgdGl0bGU9IjMxOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8zMjBfKG51bWJlcikiIHRpdGxlPSIzMjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzIxXyhudW1iZXIpIiB0aXRsZT0iMzIxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMyMl8obnVtYmVyKSIgdGl0bGU9IjMyMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMjNfKG51bWJlcikiIHRpdGxlPSIzMjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzI0XyhudW1iZXIpIiB0aXRsZT0iMzI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMyNV8obnVtYmVyKSIgdGl0bGU9IjMyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMjZfKG51bWJlcikiIHRpdGxlPSIzMjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzI3XyhudW1iZXIpIiB0aXRsZT0iMzI3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMyOF8obnVtYmVyKSIgdGl0bGU9IjMyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMjlfKG51bWJlcikiIHRpdGxlPSIzMjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzMF8obnVtYmVyKSIgdGl0bGU9IjMzMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMzFfKG51bWJlcikiIHRpdGxlPSIzMzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzMyXyhudW1iZXIpIiB0aXRsZT0iMzMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzM18obnVtYmVyKSIgdGl0bGU9IjMzMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMzRfKG51bWJlcikiIHRpdGxlPSIzMzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzM1XyhudW1iZXIpIiB0aXRsZT0iMzM1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzNl8obnVtYmVyKSIgdGl0bGU9IjMzNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zMzdfKG51bWJlcikiIHRpdGxlPSIzMzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzM4XyhudW1iZXIpIiB0aXRsZT0iMzM4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjMzODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzMzOV8obnVtYmVyKSIgdGl0bGU9IjMzOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zMzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8zNDBfKG51bWJlcikiIHRpdGxlPSIzNDAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzQxXyhudW1iZXIpIiB0aXRsZT0iMzQxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM0MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0Ml8obnVtYmVyKSIgdGl0bGU9IjM0MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNDNfKG51bWJlcikiIHRpdGxlPSIzNDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzQ0XyhudW1iZXIpIiB0aXRsZT0iMzQ0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM0NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0NV8obnVtYmVyKSIgdGl0bGU9IjM0NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNDZfKG51bWJlcikiIHRpdGxlPSIzNDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzQ3XyhudW1iZXIpIiB0aXRsZT0iMzQ3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM0NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM0OF8obnVtYmVyKSIgdGl0bGU9IjM0OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNDlfKG51bWJlcikiIHRpdGxlPSIzNDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM1MF8obnVtYmVyKSIgdGl0bGU9IjM1MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNTFfKG51bWJlcikiIHRpdGxlPSIzNTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzUxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzUyXyhudW1iZXIpIiB0aXRsZT0iMzUyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM1MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM1M18obnVtYmVyKSIgdGl0bGU9IjM1MyAobnVtYmVyKSI+MzUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzU0XyhudW1iZXIpIiB0aXRsZT0iMzU0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM1NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM1NV8obnVtYmVyKSIgdGl0bGU9IjM1NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNTZfKG51bWJlcikiIHRpdGxlPSIzNTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzU3XyhudW1iZXIpIiB0aXRsZT0iMzU3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM1OF8obnVtYmVyKSIgdGl0bGU9IjM1OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNTlfKG51bWJlcikiIHRpdGxlPSIzNTkgKG51bWJlcikiPjM1OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2MF8obnVtYmVyKSIgdGl0bGU9IjM2MCAobnVtYmVyKSI+MzYwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzYxXyhudW1iZXIpIiB0aXRsZT0iMzYxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM2MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2Ml8obnVtYmVyKSIgdGl0bGU9IjM2MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNjNfKG51bWJlcikiIHRpdGxlPSIzNjMgKG51bWJlcikiPjM2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2NF8obnVtYmVyKSIgdGl0bGU9IjM2NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNjVfKG51bWJlcikiIHRpdGxlPSIzNjUgKG51bWJlcikiPjM2NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2Nl8obnVtYmVyKSIgdGl0bGU9IjM2NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNjdfKG51bWJlcikiIHRpdGxlPSIzNjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzY3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzY4XyhudW1iZXIpIiB0aXRsZT0iMzY4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM2ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM2OV8obnVtYmVyKSIgdGl0bGU9IjM2OSAobnVtYmVyKSI+MzY5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3MF8obnVtYmVyKSIgdGl0bGU9IjM3MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNzFfKG51bWJlcikiIHRpdGxlPSIzNzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzcxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzcyXyhudW1iZXIpIiB0aXRsZT0iMzcyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM3MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3M18obnVtYmVyKSIgdGl0bGU9IjM3MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNzRfKG51bWJlcikiIHRpdGxlPSIzNzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzc0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzc1XyhudW1iZXIpIiB0aXRsZT0iMzc1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM3NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3Nl8obnVtYmVyKSIgdGl0bGU9IjM3NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zNzdfKG51bWJlcikiIHRpdGxlPSIzNzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzc3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzc4XyhudW1iZXIpIiB0aXRsZT0iMzc4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM3ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM3OV8obnVtYmVyKSIgdGl0bGU9IjM3OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zNzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8zODBfKG51bWJlcikiIHRpdGxlPSIzODAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzgwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzgxXyhudW1iZXIpIiB0aXRsZT0iMzgxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM4MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM4Ml8obnVtYmVyKSIgdGl0bGU9IjM4MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zODI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zODNfKG51bWJlcikiIHRpdGxlPSIzODMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzgzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzg0XyhudW1iZXIpIiB0aXRsZT0iMzg0IChudW1iZXIpIj4zODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zODVfKG51bWJlcikiIHRpdGxlPSIzODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzg2XyhudW1iZXIpIiB0aXRsZT0iMzg2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM4N18obnVtYmVyKSIgdGl0bGU9IjM4NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zODhfKG51bWJlcikiIHRpdGxlPSIzODggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzg5XyhudW1iZXIpIiB0aXRsZT0iMzg5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS8zOTBfKG51bWJlcikiIHRpdGxlPSIzOTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzkxXyhudW1iZXIpIiB0aXRsZT0iMzkxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM5MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5Ml8obnVtYmVyKSIgdGl0bGU9IjM5MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zOTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOTNfKG51bWJlcikiIHRpdGxlPSIzOTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+MzkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzk0XyhudW1iZXIpIiB0aXRsZT0iMzk0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM5NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5NV8obnVtYmVyKSIgdGl0bGU9IjM5NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zOTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOTZfKG51bWJlcikiIHRpdGxlPSIzOTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvMzk3XyhudW1iZXIpIiB0aXRsZT0iMzk3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjM5NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzM5OF8obnVtYmVyKSIgdGl0bGU9IjM5OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij4zOTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS8zOTlfKG51bWJlcikiIHRpdGxlPSIzOTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Mzk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIGhsaXN0IiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+PC9kaXY+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSBjb2xsYXBzZWQgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDsiPgorPHRyPgorPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJuYXZib3gtdGl0bGUiIGNvbHNwYW49IjIiPjxzcGFuIHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjZlbTsiPiYjMTYwOzwvc3Bhbj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJlZj0iL3dpa2kvNDAwXyhudW1iZXIpIiB0aXRsZT0iNDAwIChudW1iZXIpIj40MDBzPC9hPjwvZGl2PgorPC90aD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwMF8obnVtYmVyKSIgdGl0bGU9IjQwMCAobnVtYmVyKSI+NDAwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDAxXyhudW1iZXIpIiB0aXRsZT0iNDAxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQwMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwMl8obnVtYmVyKSIgdGl0bGU9IjQwMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MDNfKG51bWJlcikiIHRpdGxlPSI0MDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDAzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDA0XyhudW1iZXIpIiB0aXRsZT0iNDA0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQwNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwNV8obnVtYmVyKSIgdGl0bGU9IjQwNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MDZfKG51bWJlcikiIHRpdGxlPSI0MDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDA2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDA3XyhudW1iZXIpIiB0aXRsZT0iNDA3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQwNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQwOF8obnVtYmVyKSIgdGl0bGU9IjQwOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MDlfKG51bWJlcikiIHRpdGxlPSI0MDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDA5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQxMF8obnVtYmVyKSIgdGl0bGU9IjQxMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MTFfKG51bWJlcikiIHRpdGxlPSI0MTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDEyXyhudW1iZXIpIiB0aXRsZT0iNDEyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQxMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQxM18obnVtYmVyKSIgdGl0bGU9IjQxMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MTRfKG51bWJlcikiIHRpdGxlPSI0MTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDE0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDE1XyhudW1iZXIpIiB0aXRsZT0iNDE1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQxNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQxNl8obnVtYmVyKSIgdGl0bGU9IjQxNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MTdfKG51bWJlcikiIHRpdGxlPSI0MTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDE4XyhudW1iZXIpIiB0aXRsZT0iNDE4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQxODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQxOV8obnVtYmVyKSIgdGl0bGU9IjQxOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS80MjBfKG51bWJlcikiIHRpdGxlPSI0MjAgKG51bWJlcikiPjQyMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyMV8obnVtYmVyKSIgdGl0bGU9IjQyMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MjJfKG51bWJlcikiIHRpdGxlPSI0MjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDIyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDIzXyhudW1iZXIpIiB0aXRsZT0iNDIzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQyMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyNF8obnVtYmVyKSIgdGl0bGU9IjQyNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MjVfKG51bWJlcikiIHRpdGxlPSI0MjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDI1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDI2XyhudW1iZXIpIiB0aXRsZT0iNDI2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQyNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQyN18obnVtYmVyKSIgdGl0bGU9IjQyNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Mjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MjhfKG51bWJlcikiIHRpdGxlPSI0MjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDI4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDI5XyhudW1iZXIpIiB0aXRsZT0iNDI5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQyOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS80MzBfKG51bWJlcikiIHRpdGxlPSI0MzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDMwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDMxXyhudW1iZXIpIiB0aXRsZT0iNDMxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQzMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzMl8obnVtYmVyKSIgdGl0bGU9IjQzMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MzNfKG51bWJlcikiIHRpdGxlPSI0MzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDMzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDM0XyhudW1iZXIpIiB0aXRsZT0iNDM0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQzNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzNV8obnVtYmVyKSIgdGl0bGU9IjQzNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40MzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MzZfKG51bWJlcikiIHRpdGxlPSI0MzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDM2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDM3XyhudW1iZXIpIiB0aXRsZT0iNDM3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQzNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQzOF8obnVtYmVyKSIgdGl0bGU9IjQzOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Mzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80MzlfKG51bWJlcikiIHRpdGxlPSI0MzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDM5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDQwXyhudW1iZXIpIiB0aXRsZT0iNDQwIChudW1iZXIpIj40NDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NDFfKG51bWJlcikiIHRpdGxlPSI0NDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDQxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDQyXyhudW1iZXIpIiB0aXRsZT0iNDQyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ0M18obnVtYmVyKSIgdGl0bGU9IjQ0MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NDRfKG51bWJlcikiIHRpdGxlPSI0NDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDQ0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDQ1XyhudW1iZXIpIiB0aXRsZT0iNDQ1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ0NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ0Nl8obnVtYmVyKSIgdGl0bGU9IjQ0NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NDdfKG51bWJlcikiIHRpdGxlPSI0NDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDQ3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDQ4XyhudW1iZXIpIiB0aXRsZT0iNDQ4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ0ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ0OV8obnVtYmVyKSIgdGl0bGU9IjQ0OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDUwXyhudW1iZXIpIiB0aXRsZT0iNDUwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ1MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ1MV8obnVtYmVyKSIgdGl0bGU9IjQ1MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NTJfKG51bWJlcikiIHRpdGxlPSI0NTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDUzXyhudW1iZXIpIiB0aXRsZT0iNDUzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ1MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ1NF8obnVtYmVyKSIgdGl0bGU9IjQ1NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NTVfKG51bWJlcikiIHRpdGxlPSI0NTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDU1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDU2XyhudW1iZXIpIiB0aXRsZT0iNDU2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ1NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ1N18obnVtYmVyKSIgdGl0bGU9IjQ1NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NThfKG51bWJlcikiIHRpdGxlPSI0NTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDU4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDU5XyhudW1iZXIpIiB0aXRsZT0iNDU5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ1OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2MF8obnVtYmVyKSIgdGl0bGU9IjQ2MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NjFfKG51bWJlcikiIHRpdGxlPSI0NjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDYxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDYyXyhudW1iZXIpIiB0aXRsZT0iNDYyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ2MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2M18obnVtYmVyKSIgdGl0bGU9IjQ2MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NjRfKG51bWJlcikiIHRpdGxlPSI0NjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDY0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDY1XyhudW1iZXIpIiB0aXRsZT0iNDY1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ2NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2Nl8obnVtYmVyKSIgdGl0bGU9IjQ2NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NjdfKG51bWJlcikiIHRpdGxlPSI0NjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDY3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDY4XyhudW1iZXIpIiB0aXRsZT0iNDY4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ2ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ2OV8obnVtYmVyKSIgdGl0bGU9IjQ2OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Njk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDcwXyhudW1iZXIpIiB0aXRsZT0iNDcwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ3MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ3MV8obnVtYmVyKSIgdGl0bGU9IjQ3MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NzJfKG51bWJlcikiIHRpdGxlPSI0NzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDcyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDczXyhudW1iZXIpIiB0aXRsZT0iNDczIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ3MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ3NF8obnVtYmVyKSIgdGl0bGU9IjQ3NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40NzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NzVfKG51bWJlcikiIHRpdGxlPSI0NzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDc1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDc2XyhudW1iZXIpIiB0aXRsZT0iNDc2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ3NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ3N18obnVtYmVyKSIgdGl0bGU9IjQ3NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40Nzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80NzhfKG51bWJlcikiIHRpdGxlPSI0NzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDc5XyhudW1iZXIpIiB0aXRsZT0iNDc5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ3OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4MF8obnVtYmVyKSIgdGl0bGU9IjQ4MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40ODA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80ODFfKG51bWJlcikiIHRpdGxlPSI0ODEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDgxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDgyXyhudW1iZXIpIiB0aXRsZT0iNDgyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ4MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4M18obnVtYmVyKSIgdGl0bGU9IjQ4MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40ODM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80ODRfKG51bWJlcikiIHRpdGxlPSI0ODQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDg0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDg1XyhudW1iZXIpIiB0aXRsZT0iNDg1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ4NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4Nl8obnVtYmVyKSIgdGl0bGU9IjQ4NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40ODY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80ODdfKG51bWJlcikiIHRpdGxlPSI0ODcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDg3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDg4XyhudW1iZXIpIiB0aXRsZT0iNDg4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ4ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ4OV8obnVtYmVyKSIgdGl0bGU9IjQ4OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40ODk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDkwXyhudW1iZXIpIiB0aXRsZT0iNDkwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ5MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5MV8obnVtYmVyKSIgdGl0bGU9IjQ5MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40OTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80OTJfKG51bWJlcikiIHRpdGxlPSI0OTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDkyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDkzXyhudW1iZXIpIiB0aXRsZT0iNDkzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ5MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5NF8obnVtYmVyKSIgdGl0bGU9IjQ5NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40OTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80OTVfKG51bWJlcikiIHRpdGxlPSI0OTUgKG51bWJlcikiPjQ5NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5Nl8obnVtYmVyKSIgdGl0bGU9IjQ5NiAobnVtYmVyKSI+NDk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNDk3XyhudW1iZXIpIiB0aXRsZT0iNDk3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjQ5NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzQ5OF8obnVtYmVyKSIgdGl0bGU9IjQ5OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij40OTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS80OTlfKG51bWJlcikiIHRpdGxlPSI0OTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NDk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiBobGlzdCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPjwvZGl2PgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93cmFwbGlua3MgY29sbGFwc2libGUgY29sbGFwc2VkIG5hdmJveC1zdWJncm91cCIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7Ij4KKzx0cj4KKzx0aCBzY29wZT0iY29sIiBjbGFzcz0ibmF2Ym94LXRpdGxlIiBjb2xzcGFuPSIyIj48c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo2ZW07Ij4mIzE2MDs8L3NwYW4+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEwJTsiPjxhIGhyZWY9Ii93aWtpLzUwMF8obnVtYmVyKSIgdGl0bGU9IjUwMCAobnVtYmVyKSI+NTAwczwvYT48L2Rpdj4KKzwvdGg+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81MDBfKG51bWJlcikiIHRpdGxlPSI1MDAgKG51bWJlcikiPjUwMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwMV8obnVtYmVyKSIgdGl0bGU9IjUwMSAobnVtYmVyKSI+NTAxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTAyXyhudW1iZXIpIiB0aXRsZT0iNTAyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUwMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwM18obnVtYmVyKSIgdGl0bGU9IjUwMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MDRfKG51bWJlcikiIHRpdGxlPSI1MDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTA0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTA1XyhudW1iZXIpIiB0aXRsZT0iNTA1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUwNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwNl8obnVtYmVyKSIgdGl0bGU9IjUwNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MDdfKG51bWJlcikiIHRpdGxlPSI1MDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTA3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTA4XyhudW1iZXIpIiB0aXRsZT0iNTA4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUwODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUwOV8obnVtYmVyKSIgdGl0bGU9IjUwOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTEwXyhudW1iZXIpIiB0aXRsZT0iNTEwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUxMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUxMV8obnVtYmVyKSIgdGl0bGU9IjUxMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MTJfKG51bWJlcikiIHRpdGxlPSI1MTIgKG51bWJlcikiPjUxMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUxM18obnVtYmVyKSIgdGl0bGU9IjUxMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MTRfKG51bWJlcikiIHRpdGxlPSI1MTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTE0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTE1XyhudW1iZXIpIiB0aXRsZT0iNTE1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUxNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUxNl8obnVtYmVyKSIgdGl0bGU9IjUxNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MTdfKG51bWJlcikiIHRpdGxlPSI1MTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTE4XyhudW1iZXIpIiB0aXRsZT0iNTE4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUxODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUxOV8obnVtYmVyKSIgdGl0bGU9IjUxOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81MjBfKG51bWJlcikiIHRpdGxlPSI1MjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTIxXyhudW1iZXIpIiB0aXRsZT0iNTIxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyMl8obnVtYmVyKSIgdGl0bGU9IjUyMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MjNfKG51bWJlcikiIHRpdGxlPSI1MjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTI0XyhudW1iZXIpIiB0aXRsZT0iNTI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyNV8obnVtYmVyKSIgdGl0bGU9IjUyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MjZfKG51bWJlcikiIHRpdGxlPSI1MjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTI3XyhudW1iZXIpIiB0aXRsZT0iNTI3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUyOF8obnVtYmVyKSIgdGl0bGU9IjUyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Mjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MjlfKG51bWJlcikiIHRpdGxlPSI1MjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzMF8obnVtYmVyKSIgdGl0bGU9IjUzMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MzFfKG51bWJlcikiIHRpdGxlPSI1MzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTMyXyhudW1iZXIpIiB0aXRsZT0iNTMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzM18obnVtYmVyKSIgdGl0bGU9IjUzMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MzRfKG51bWJlcikiIHRpdGxlPSI1MzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTM1XyhudW1iZXIpIiB0aXRsZT0iNTM1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzNl8obnVtYmVyKSIgdGl0bGU9IjUzNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41MzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81MzdfKG51bWJlcikiIHRpdGxlPSI1MzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTM4XyhudW1iZXIpIiB0aXRsZT0iNTM4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjUzODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzUzOV8obnVtYmVyKSIgdGl0bGU9IjUzOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Mzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81NDBfKG51bWJlcikiIHRpdGxlPSI1NDAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTQxXyhudW1iZXIpIiB0aXRsZT0iNTQxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU0MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU0Ml8obnVtYmVyKSIgdGl0bGU9IjU0MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NDNfKG51bWJlcikiIHRpdGxlPSI1NDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTQ0XyhudW1iZXIpIiB0aXRsZT0iNTQ0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU0NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU0NV8obnVtYmVyKSIgdGl0bGU9IjU0NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NDZfKG51bWJlcikiIHRpdGxlPSI1NDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTQ3XyhudW1iZXIpIiB0aXRsZT0iNTQ3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU0NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU0OF8obnVtYmVyKSIgdGl0bGU9IjU0OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NDlfKG51bWJlcikiIHRpdGxlPSI1NDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1MF8obnVtYmVyKSIgdGl0bGU9IjU1MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NTFfKG51bWJlcikiIHRpdGxlPSI1NTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTUxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTUyXyhudW1iZXIpIiB0aXRsZT0iNTUyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU1MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1M18obnVtYmVyKSIgdGl0bGU9IjU1MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NTRfKG51bWJlcikiIHRpdGxlPSI1NTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTU0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTU1XyhudW1iZXIpIiB0aXRsZT0iNTU1IChudW1iZXIpIj41NTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NTZfKG51bWJlcikiIHRpdGxlPSI1NTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTU3XyhudW1iZXIpIiB0aXRsZT0iNTU3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU1OF8obnVtYmVyKSIgdGl0bGU9IjU1OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NTlfKG51bWJlcikiIHRpdGxlPSI1NTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTYwXyhudW1iZXIpIiB0aXRsZT0iNTYwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU2MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU2MV8obnVtYmVyKSIgdGl0bGU9IjU2MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NjJfKG51bWJlcikiIHRpdGxlPSI1NjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTYyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTYzXyhudW1iZXIpIiB0aXRsZT0iNTYzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU2NF8obnVtYmVyKSIgdGl0bGU9IjU2NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NjVfKG51bWJlcikiIHRpdGxlPSI1NjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTY2XyhudW1iZXIpIiB0aXRsZT0iNTY2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU2N18obnVtYmVyKSIgdGl0bGU9IjU2NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Njc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NjhfKG51bWJlcikiIHRpdGxlPSI1NjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTY5XyhudW1iZXIpIiB0aXRsZT0iNTY5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU2OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81NzBfKG51bWJlcikiIHRpdGxlPSI1NzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTcwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTcxXyhudW1iZXIpIiB0aXRsZT0iNTcxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU3MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU3Ml8obnVtYmVyKSIgdGl0bGU9IjU3MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NzNfKG51bWJlcikiIHRpdGxlPSI1NzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTczPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTc0XyhudW1iZXIpIiB0aXRsZT0iNTc0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU3NV8obnVtYmVyKSIgdGl0bGU9IjU3NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41NzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NzZfKG51bWJlcikiIHRpdGxlPSI1NzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTc2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTc3XyhudW1iZXIpIiB0aXRsZT0iNTc3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU3NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU3OF8obnVtYmVyKSIgdGl0bGU9IjU3OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41Nzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81NzlfKG51bWJlcikiIHRpdGxlPSI1NzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTc5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTgwXyhudW1iZXIpIiB0aXRsZT0iNTgwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU4MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU4MV8obnVtYmVyKSIgdGl0bGU9IjU4MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41ODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81ODJfKG51bWJlcikiIHRpdGxlPSI1ODIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTgyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTgzXyhudW1iZXIpIiB0aXRsZT0iNTgzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU4NF8obnVtYmVyKSIgdGl0bGU9IjU4NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41ODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81ODVfKG51bWJlcikiIHRpdGxlPSI1ODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTg2XyhudW1iZXIpIiB0aXRsZT0iNTg2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU4N18obnVtYmVyKSIgdGl0bGU9IjU4NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41ODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81ODhfKG51bWJlcikiIHRpdGxlPSI1ODggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTg5XyhudW1iZXIpIiB0aXRsZT0iNTg5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS81OTBfKG51bWJlcikiIHRpdGxlPSI1OTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTkxXyhudW1iZXIpIiB0aXRsZT0iNTkxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU5MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5Ml8obnVtYmVyKSIgdGl0bGU9IjU5MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41OTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81OTNfKG51bWJlcikiIHRpdGxlPSI1OTMgKG51bWJlcikiPjU5MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5NF8obnVtYmVyKSIgdGl0bGU9IjU5NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41OTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81OTVfKG51bWJlcikiIHRpdGxlPSI1OTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTk1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTk2XyhudW1iZXIpIiB0aXRsZT0iNTk2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU5NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzU5N18obnVtYmVyKSIgdGl0bGU9IjU5NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij41OTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS81OThfKG51bWJlcikiIHRpdGxlPSI1OTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NTk4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNTk5XyhudW1iZXIpIiB0aXRsZT0iNTk5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjU5OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCBobGlzdCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPjwvZGl2PgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93cmFwbGlua3MgY29sbGFwc2libGUgY29sbGFwc2VkIG5hdmJveC1zdWJncm91cCIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOjA7Ij4KKzx0cj4KKzx0aCBzY29wZT0iY29sIiBjbGFzcz0ibmF2Ym94LXRpdGxlIiBjb2xzcGFuPSIyIj48c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDo2ZW07Ij4mIzE2MDs8L3NwYW4+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTEwJTsiPjxhIGhyZWY9Ii93aWtpLzYwMF8obnVtYmVyKSIgdGl0bGU9IjYwMCAobnVtYmVyKSI+NjAwczwvYT48L2Rpdj4KKzwvdGg+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82MDBfKG51bWJlcikiIHRpdGxlPSI2MDAgKG51bWJlcikiPjYwMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYwMV8obnVtYmVyKSIgdGl0bGU9IjYwMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MDJfKG51bWJlcikiIHRpdGxlPSI2MDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjAyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjAzXyhudW1iZXIpIiB0aXRsZT0iNjAzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYwMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYwNF8obnVtYmVyKSIgdGl0bGU9IjYwNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MDVfKG51bWJlcikiIHRpdGxlPSI2MDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjA1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjA2XyhudW1iZXIpIiB0aXRsZT0iNjA2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYwNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYwN18obnVtYmVyKSIgdGl0bGU9IjYwNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MDhfKG51bWJlcikiIHRpdGxlPSI2MDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjA4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjA5XyhudW1iZXIpIiB0aXRsZT0iNjA5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYwOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82MTBfKG51bWJlcikiIHRpdGxlPSI2MTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjEwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjExXyhudW1iZXIpIiB0aXRsZT0iNjExIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYxMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxMl8obnVtYmVyKSIgdGl0bGU9IjYxMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MTNfKG51bWJlcikiIHRpdGxlPSI2MTMgKG51bWJlcikiPjYxMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxNF8obnVtYmVyKSIgdGl0bGU9IjYxNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MTVfKG51bWJlcikiIHRpdGxlPSI2MTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjE2XyhudW1iZXIpIiB0aXRsZT0iNjE2IChudW1iZXIpIj42MTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MTdfKG51bWJlcikiIHRpdGxlPSI2MTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjE4XyhudW1iZXIpIiB0aXRsZT0iNjE4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYxODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYxOV8obnVtYmVyKSIgdGl0bGU9IjYxOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82MjBfKG51bWJlcikiIHRpdGxlPSI2MjAgKG51bWJlcikiPjYyMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyMV8obnVtYmVyKSIgdGl0bGU9IjYyMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MjJfKG51bWJlcikiIHRpdGxlPSI2MjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjIyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjIzXyhudW1iZXIpIiB0aXRsZT0iNjIzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYyMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyNF8obnVtYmVyKSIgdGl0bGU9IjYyNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MjVfKG51bWJlcikiIHRpdGxlPSI2MjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjI1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjI2XyhudW1iZXIpIiB0aXRsZT0iNjI2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYyNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYyN18obnVtYmVyKSIgdGl0bGU9IjYyNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Mjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MjhfKG51bWJlcikiIHRpdGxlPSI2MjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjI4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjI5XyhudW1iZXIpIiB0aXRsZT0iNjI5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYyOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82MzBfKG51bWJlcikiIHRpdGxlPSI2MzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjMwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjMxXyhudW1iZXIpIiB0aXRsZT0iNjMxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYzMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYzMl8obnVtYmVyKSIgdGl0bGU9IjYzMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MzNfKG51bWJlcikiIHRpdGxlPSI2MzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjMzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjM0XyhudW1iZXIpIiB0aXRsZT0iNjM0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYzNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYzNV8obnVtYmVyKSIgdGl0bGU9IjYzNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42MzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MzZfKG51bWJlcikiIHRpdGxlPSI2MzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjM2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjM3XyhudW1iZXIpIiB0aXRsZT0iNjM3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjYzNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzYzOF8obnVtYmVyKSIgdGl0bGU9IjYzOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Mzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82MzlfKG51bWJlcikiIHRpdGxlPSI2MzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjM5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjQwXyhudW1iZXIpIiB0aXRsZT0iNjQwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY0MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY0MV8obnVtYmVyKSIgdGl0bGU9IjY0MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NDJfKG51bWJlcikiIHRpdGxlPSI2NDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjQyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjQzXyhudW1iZXIpIiB0aXRsZT0iNjQzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY0MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY0NF8obnVtYmVyKSIgdGl0bGU9IjY0NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NDVfKG51bWJlcikiIHRpdGxlPSI2NDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjQ1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjQ2XyhudW1iZXIpIiB0aXRsZT0iNjQ2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY0NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY0N18obnVtYmVyKSIgdGl0bGU9IjY0NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NDhfKG51bWJlcikiIHRpdGxlPSI2NDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjQ4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjQ5XyhudW1iZXIpIiB0aXRsZT0iNjQ5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY0OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS82NTBfKG51bWJlcikiIHRpdGxlPSI2NTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjUwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjUxXyhudW1iZXIpIiB0aXRsZT0iNjUxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY1MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1Ml8obnVtYmVyKSIgdGl0bGU9IjY1MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NTNfKG51bWJlcikiIHRpdGxlPSI2NTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjU0XyhudW1iZXIpIiB0aXRsZT0iNjU0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY1NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1NV8obnVtYmVyKSIgdGl0bGU9IjY1NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NTZfKG51bWJlcikiIHRpdGxlPSI2NTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjU3XyhudW1iZXIpIiB0aXRsZT0iNjU3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY1OF8obnVtYmVyKSIgdGl0bGU9IjY1OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NTlfKG51bWJlcikiIHRpdGxlPSI2NTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjYwXyhudW1iZXIpIiB0aXRsZT0iNjYwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY2MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY2MV8obnVtYmVyKSIgdGl0bGU9IjY2MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NjJfKG51bWJlcikiIHRpdGxlPSI2NjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjYyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjYzXyhudW1iZXIpIiB0aXRsZT0iNjYzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY2NF8obnVtYmVyKSIgdGl0bGU9IjY2NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NjVfKG51bWJlcikiIHRpdGxlPSI2NjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjY2XyhudW1iZXIpIiB0aXRsZT0iNjY2IChudW1iZXIpIj42NjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NjdfKG51bWJlcikiIHRpdGxlPSI2NjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjY3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjY4XyhudW1iZXIpIiB0aXRsZT0iNjY4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY2ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY2OV8obnVtYmVyKSIgdGl0bGU9IjY2OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Njk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjcwXyhudW1iZXIpIiB0aXRsZT0iNjcwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY3MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY3MV8obnVtYmVyKSIgdGl0bGU9IjY3MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NzJfKG51bWJlcikiIHRpdGxlPSI2NzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjcyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjczXyhudW1iZXIpIiB0aXRsZT0iNjczIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY3MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY3NF8obnVtYmVyKSIgdGl0bGU9IjY3NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42NzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NzVfKG51bWJlcikiIHRpdGxlPSI2NzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njc1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjc2XyhudW1iZXIpIiB0aXRsZT0iNjc2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY3NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY3N18obnVtYmVyKSIgdGl0bGU9IjY3NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42Nzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82NzhfKG51bWJlcikiIHRpdGxlPSI2NzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjc5XyhudW1iZXIpIiB0aXRsZT0iNjc5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY3OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4MF8obnVtYmVyKSIgdGl0bGU9IjY4MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42ODA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82ODFfKG51bWJlcikiIHRpdGxlPSI2ODEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjgxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjgyXyhudW1iZXIpIiB0aXRsZT0iNjgyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY4MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4M18obnVtYmVyKSIgdGl0bGU9IjY4MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42ODM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82ODRfKG51bWJlcikiIHRpdGxlPSI2ODQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njg0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjg1XyhudW1iZXIpIiB0aXRsZT0iNjg1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY4NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4Nl8obnVtYmVyKSIgdGl0bGU9IjY4NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42ODY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82ODdfKG51bWJlcikiIHRpdGxlPSI2ODcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njg3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjg4XyhudW1iZXIpIiB0aXRsZT0iNjg4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY4ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY4OV8obnVtYmVyKSIgdGl0bGU9IjY4OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42ODk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjkwXyhudW1iZXIpIiB0aXRsZT0iNjkwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY5MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY5MV8obnVtYmVyKSIgdGl0bGU9IjY5MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42OTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82OTJfKG51bWJlcikiIHRpdGxlPSI2OTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NjkyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjkzXyhudW1iZXIpIiB0aXRsZT0iNjkzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY5MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY5NF8obnVtYmVyKSIgdGl0bGU9IjY5NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42OTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82OTVfKG51bWJlcikiIHRpdGxlPSI2OTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njk1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjk2XyhudW1iZXIpIiB0aXRsZT0iNjk2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY5NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzY5N18obnVtYmVyKSIgdGl0bGU9IjY5NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij42OTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS82OThfKG51bWJlcikiIHRpdGxlPSI2OTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Njk4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNjk5XyhudW1iZXIpIiB0aXRsZT0iNjk5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjY5OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4gaGxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij48L2Rpdj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtzIGNvbGxhcHNpYmxlIGNvbGxhcHNlZCBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJib3JkZXItc3BhY2luZzowOyI+Cis8dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+PHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6NmVtOyI+JiMxNjA7PC9zcGFuPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS83MDBfKG51bWJlcikiIHRpdGxlPSI3MDAgKG51bWJlcikiPjcwMHM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzAwXyhudW1iZXIpIiB0aXRsZT0iNzAwIChudW1iZXIpIj43MDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MDFfKG51bWJlcikiIHRpdGxlPSI3MDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzAxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzAyXyhudW1iZXIpIiB0aXRsZT0iNzAyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcwMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcwM18obnVtYmVyKSIgdGl0bGU9IjcwMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MDRfKG51bWJlcikiIHRpdGxlPSI3MDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzA0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzA1XyhudW1iZXIpIiB0aXRsZT0iNzA1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcwNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcwNl8obnVtYmVyKSIgdGl0bGU9IjcwNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MDdfKG51bWJlcikiIHRpdGxlPSI3MDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzA3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzA4XyhudW1iZXIpIiB0aXRsZT0iNzA4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcwODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcwOV8obnVtYmVyKSIgdGl0bGU9IjcwOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzEwXyhudW1iZXIpIiB0aXRsZT0iNzEwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcxMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcxMV8obnVtYmVyKSIgdGl0bGU9IjcxMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MTJfKG51bWJlcikiIHRpdGxlPSI3MTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzEyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzEzXyhudW1iZXIpIiB0aXRsZT0iNzEzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcxMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcxNF8obnVtYmVyKSIgdGl0bGU9IjcxNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MTVfKG51bWJlcikiIHRpdGxlPSI3MTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzE1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzE2XyhudW1iZXIpIiB0aXRsZT0iNzE2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcxNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcxN18obnVtYmVyKSIgdGl0bGU9IjcxNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MThfKG51bWJlcikiIHRpdGxlPSI3MTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzE4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzE5XyhudW1iZXIpIiB0aXRsZT0iNzE5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcxOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyMF8obnVtYmVyKSIgdGl0bGU9IjcyMCAobnVtYmVyKSI+NzIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzIxXyhudW1iZXIpIiB0aXRsZT0iNzIxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyMl8obnVtYmVyKSIgdGl0bGU9IjcyMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MjNfKG51bWJlcikiIHRpdGxlPSI3MjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzI0XyhudW1iZXIpIiB0aXRsZT0iNzI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyNV8obnVtYmVyKSIgdGl0bGU9IjcyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MjZfKG51bWJlcikiIHRpdGxlPSI3MjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzI3XyhudW1iZXIpIiB0aXRsZT0iNzI3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjcyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzcyOF8obnVtYmVyKSIgdGl0bGU9IjcyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43Mjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MjlfKG51bWJlcikiIHRpdGxlPSI3MjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzczMF8obnVtYmVyKSIgdGl0bGU9IjczMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MzFfKG51bWJlcikiIHRpdGxlPSI3MzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzMyXyhudW1iZXIpIiB0aXRsZT0iNzMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjczMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzczM18obnVtYmVyKSIgdGl0bGU9IjczMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MzRfKG51bWJlcikiIHRpdGxlPSI3MzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzM1XyhudW1iZXIpIiB0aXRsZT0iNzM1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjczNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzczNl8obnVtYmVyKSIgdGl0bGU9IjczNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43MzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83MzdfKG51bWJlcikiIHRpdGxlPSI3MzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzM4XyhudW1iZXIpIiB0aXRsZT0iNzM4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjczODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzczOV8obnVtYmVyKSIgdGl0bGU9IjczOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43Mzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS83NDBfKG51bWJlcikiIHRpdGxlPSI3NDAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzQxXyhudW1iZXIpIiB0aXRsZT0iNzQxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc0MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0Ml8obnVtYmVyKSIgdGl0bGU9Ijc0MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NDNfKG51bWJlcikiIHRpdGxlPSI3NDMgKG51bWJlcikiPjc0MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0NF8obnVtYmVyKSIgdGl0bGU9Ijc0NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NDVfKG51bWJlcikiIHRpdGxlPSI3NDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzQ1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzQ2XyhudW1iZXIpIiB0aXRsZT0iNzQ2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc0NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc0N18obnVtYmVyKSIgdGl0bGU9Ijc0NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NDhfKG51bWJlcikiIHRpdGxlPSI3NDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzQ4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzQ5XyhudW1iZXIpIiB0aXRsZT0iNzQ5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc0OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS83NTBfKG51bWJlcikiIHRpdGxlPSI3NTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzUwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzUxXyhudW1iZXIpIiB0aXRsZT0iNzUxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc1MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1Ml8obnVtYmVyKSIgdGl0bGU9Ijc1MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NTNfKG51bWJlcikiIHRpdGxlPSI3NTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzUzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzU0XyhudW1iZXIpIiB0aXRsZT0iNzU0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc1NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1NV8obnVtYmVyKSIgdGl0bGU9Ijc1NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NTZfKG51bWJlcikiIHRpdGxlPSI3NTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzU2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzU3XyhudW1iZXIpIiB0aXRsZT0iNzU3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc1NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc1OF8obnVtYmVyKSIgdGl0bGU9Ijc1OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NTlfKG51bWJlcikiIHRpdGxlPSI3NTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzU5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzYwXyhudW1iZXIpIiB0aXRsZT0iNzYwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc2MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc2MV8obnVtYmVyKSIgdGl0bGU9Ijc2MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NjJfKG51bWJlcikiIHRpdGxlPSI3NjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzYyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzYzXyhudW1iZXIpIiB0aXRsZT0iNzYzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc2MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc2NF8obnVtYmVyKSIgdGl0bGU9Ijc2NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NjVfKG51bWJlcikiIHRpdGxlPSI3NjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzY1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzY2XyhudW1iZXIpIiB0aXRsZT0iNzY2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc2NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc2N18obnVtYmVyKSIgdGl0bGU9Ijc2NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43Njc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NjhfKG51bWJlcikiIHRpdGxlPSI3NjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzY4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzY5XyhudW1iZXIpIiB0aXRsZT0iNzY5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc2OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS83NzBfKG51bWJlcikiIHRpdGxlPSI3NzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzcwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzcxXyhudW1iZXIpIiB0aXRsZT0iNzcxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc3MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc3Ml8obnVtYmVyKSIgdGl0bGU9Ijc3MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NzNfKG51bWJlcikiIHRpdGxlPSI3NzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzczPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzc0XyhudW1iZXIpIiB0aXRsZT0iNzc0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc3NV8obnVtYmVyKSIgdGl0bGU9Ijc3NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43NzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NzZfKG51bWJlcikiIHRpdGxlPSI3NzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzc2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzc3XyhudW1iZXIpIiB0aXRsZT0iNzc3IChudW1iZXIpIj43Nzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83NzhfKG51bWJlcikiIHRpdGxlPSI3NzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzc5XyhudW1iZXIpIiB0aXRsZT0iNzc5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc3OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4MF8obnVtYmVyKSIgdGl0bGU9Ijc4MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43ODA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83ODFfKG51bWJlcikiIHRpdGxlPSI3ODEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzgxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzgyXyhudW1iZXIpIiB0aXRsZT0iNzgyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc4MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4M18obnVtYmVyKSIgdGl0bGU9Ijc4MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43ODM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83ODRfKG51bWJlcikiIHRpdGxlPSI3ODQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzg0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzg1XyhudW1iZXIpIiB0aXRsZT0iNzg1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc4NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4Nl8obnVtYmVyKSIgdGl0bGU9Ijc4NiAobnVtYmVyKSI+Nzg2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzg3XyhudW1iZXIpIiB0aXRsZT0iNzg3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc4NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc4OF8obnVtYmVyKSIgdGl0bGU9Ijc4OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43ODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83ODlfKG51bWJlcikiIHRpdGxlPSI3ODkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzg5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc5MF8obnVtYmVyKSIgdGl0bGU9Ijc5MCAobnVtYmVyKSI+NzkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzkxXyhudW1iZXIpIiB0aXRsZT0iNzkxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc5MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc5Ml8obnVtYmVyKSIgdGl0bGU9Ijc5MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43OTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83OTNfKG51bWJlcikiIHRpdGxlPSI3OTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+NzkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzk0XyhudW1iZXIpIiB0aXRsZT0iNzk0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc5NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc5NV8obnVtYmVyKSIgdGl0bGU9Ijc5NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43OTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83OTZfKG51bWJlcikiIHRpdGxlPSI3OTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvNzk3XyhudW1iZXIpIiB0aXRsZT0iNzk3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjc5NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzc5OF8obnVtYmVyKSIgdGl0bGU9Ijc5OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij43OTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS83OTlfKG51bWJlcikiIHRpdGxlPSI3OTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Nzk5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIGhsaXN0IiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+PC9kaXY+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSBjb2xsYXBzZWQgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6MDsiPgorPHRyPgorPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJuYXZib3gtdGl0bGUiIGNvbHNwYW49IjIiPjxzcGFuIHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjZlbTsiPiYjMTYwOzwvc3Bhbj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJlZj0iL3dpa2kvODAwXyhudW1iZXIpIiB0aXRsZT0iODAwIChudW1iZXIpIj44MDBzPC9hPjwvZGl2PgorPC90aD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgwMF8obnVtYmVyKSIgdGl0bGU9IjgwMCAobnVtYmVyKSI+ODAwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODAxXyhudW1iZXIpIiB0aXRsZT0iODAxIChudW1iZXIpIj44MDE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MDJfKG51bWJlcikiIHRpdGxlPSI4MDIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODAyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODAzXyhudW1iZXIpIiB0aXRsZT0iODAzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgwMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgwNF8obnVtYmVyKSIgdGl0bGU9IjgwNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MDQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MDVfKG51bWJlcikiIHRpdGxlPSI4MDUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODA1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODA2XyhudW1iZXIpIiB0aXRsZT0iODA2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgwNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgwN18obnVtYmVyKSIgdGl0bGU9IjgwNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MDc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MDhfKG51bWJlcikiIHRpdGxlPSI4MDggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODA4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODA5XyhudW1iZXIpIiB0aXRsZT0iODA5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgwOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS84MTBfKG51bWJlcikiIHRpdGxlPSI4MTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODEwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODExXyhudW1iZXIpIiB0aXRsZT0iODExIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgxMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxMl8obnVtYmVyKSIgdGl0bGU9IjgxMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MTNfKG51bWJlcikiIHRpdGxlPSI4MTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODEzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODE0XyhudW1iZXIpIiB0aXRsZT0iODE0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgxNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxNV8obnVtYmVyKSIgdGl0bGU9IjgxNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MTZfKG51bWJlcikiIHRpdGxlPSI4MTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODE2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODE3XyhudW1iZXIpIiB0aXRsZT0iODE3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgxNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgxOF8obnVtYmVyKSIgdGl0bGU9IjgxOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MTlfKG51bWJlcikiIHRpdGxlPSI4MTkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODE5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODIwXyhudW1iZXIpIiB0aXRsZT0iODIwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgyMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgyMV8obnVtYmVyKSIgdGl0bGU9IjgyMSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MjJfKG51bWJlcikiIHRpdGxlPSI4MjIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODIyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODIzXyhudW1iZXIpIiB0aXRsZT0iODIzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgyMzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgyNF8obnVtYmVyKSIgdGl0bGU9IjgyNCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MjQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MjVfKG51bWJlcikiIHRpdGxlPSI4MjUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODI1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODI2XyhudW1iZXIpIiB0aXRsZT0iODI2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgyNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgyN18obnVtYmVyKSIgdGl0bGU9IjgyNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Mjc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MjhfKG51bWJlcikiIHRpdGxlPSI4MjggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODI4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODI5XyhudW1iZXIpIiB0aXRsZT0iODI5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgyOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS84MzBfKG51bWJlcikiIHRpdGxlPSI4MzAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODMwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODMxXyhudW1iZXIpIiB0aXRsZT0iODMxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgzMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzMl8obnVtYmVyKSIgdGl0bGU9IjgzMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MzNfKG51bWJlcikiIHRpdGxlPSI4MzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODMzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODM0XyhudW1iZXIpIiB0aXRsZT0iODM0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgzNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzNV8obnVtYmVyKSIgdGl0bGU9IjgzNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44MzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MzZfKG51bWJlcikiIHRpdGxlPSI4MzYgKG51bWJlcikiPjgzNjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzgzN18obnVtYmVyKSIgdGl0bGU9IjgzNyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Mzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84MzhfKG51bWJlcikiIHRpdGxlPSI4MzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODM4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODM5XyhudW1iZXIpIiB0aXRsZT0iODM5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjgzOTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0MF8obnVtYmVyKSIgdGl0bGU9Ijg0MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NDFfKG51bWJlcikiIHRpdGxlPSI4NDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODQxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODQyXyhudW1iZXIpIiB0aXRsZT0iODQyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg0MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0M18obnVtYmVyKSIgdGl0bGU9Ijg0MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NDRfKG51bWJlcikiIHRpdGxlPSI4NDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODQ0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODQ1XyhudW1iZXIpIiB0aXRsZT0iODQ1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg0NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0Nl8obnVtYmVyKSIgdGl0bGU9Ijg0NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NDdfKG51bWJlcikiIHRpdGxlPSI4NDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODQ3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODQ4XyhudW1iZXIpIiB0aXRsZT0iODQ4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg0ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg0OV8obnVtYmVyKSIgdGl0bGU9Ijg0OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODUwXyhudW1iZXIpIiB0aXRsZT0iODUwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg1MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg1MV8obnVtYmVyKSIgdGl0bGU9Ijg1MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NTJfKG51bWJlcikiIHRpdGxlPSI4NTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODUyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODUzXyhudW1iZXIpIiB0aXRsZT0iODUzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg1MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg1NF8obnVtYmVyKSIgdGl0bGU9Ijg1NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NTVfKG51bWJlcikiIHRpdGxlPSI4NTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODU1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODU2XyhudW1iZXIpIiB0aXRsZT0iODU2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg1NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg1N18obnVtYmVyKSIgdGl0bGU9Ijg1NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NThfKG51bWJlcikiIHRpdGxlPSI4NTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODU4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODU5XyhudW1iZXIpIiB0aXRsZT0iODU5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg1OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2MF8obnVtYmVyKSIgdGl0bGU9Ijg2MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NjA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NjFfKG51bWJlcikiIHRpdGxlPSI4NjEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODYxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODYyXyhudW1iZXIpIiB0aXRsZT0iODYyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg2MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2M18obnVtYmVyKSIgdGl0bGU9Ijg2MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NjM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NjRfKG51bWJlcikiIHRpdGxlPSI4NjQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODY0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODY1XyhudW1iZXIpIiB0aXRsZT0iODY1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg2NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2Nl8obnVtYmVyKSIgdGl0bGU9Ijg2NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NjY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NjdfKG51bWJlcikiIHRpdGxlPSI4NjcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODY3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODY4XyhudW1iZXIpIiB0aXRsZT0iODY4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg2ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg2OV8obnVtYmVyKSIgdGl0bGU9Ijg2OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Njk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODcwXyhudW1iZXIpIiB0aXRsZT0iODcwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg3MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg3MV8obnVtYmVyKSIgdGl0bGU9Ijg3MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NzE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NzJfKG51bWJlcikiIHRpdGxlPSI4NzIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODcyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODczXyhudW1iZXIpIiB0aXRsZT0iODczIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg3MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg3NF8obnVtYmVyKSIgdGl0bGU9Ijg3NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44NzQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NzVfKG51bWJlcikiIHRpdGxlPSI4NzUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODc1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODc2XyhudW1iZXIpIiB0aXRsZT0iODc2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg3NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg3N18obnVtYmVyKSIgdGl0bGU9Ijg3NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44Nzc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84NzhfKG51bWJlcikiIHRpdGxlPSI4NzggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODc4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODc5XyhudW1iZXIpIiB0aXRsZT0iODc5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg3OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg4MF8obnVtYmVyKSIgdGl0bGU9Ijg4MCAobnVtYmVyKSI+ODgwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODgxXyhudW1iZXIpIiB0aXRsZT0iODgxIChudW1iZXIpIj44ODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84ODJfKG51bWJlcikiIHRpdGxlPSI4ODIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODgyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODgzXyhudW1iZXIpIiB0aXRsZT0iODgzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg4NF8obnVtYmVyKSIgdGl0bGU9Ijg4NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44ODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84ODVfKG51bWJlcikiIHRpdGxlPSI4ODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODg2XyhudW1iZXIpIiB0aXRsZT0iODg2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg4N18obnVtYmVyKSIgdGl0bGU9Ijg4NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44ODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84ODhfKG51bWJlcikiIHRpdGxlPSI4ODggKG51bWJlcikiPjg4ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg4OV8obnVtYmVyKSIgdGl0bGU9Ijg4OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44ODk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODkwXyhudW1iZXIpIiB0aXRsZT0iODkwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg5MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg5MV8obnVtYmVyKSIgdGl0bGU9Ijg5MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44OTE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OTJfKG51bWJlcikiIHRpdGxlPSI4OTIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODkyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODkzXyhudW1iZXIpIiB0aXRsZT0iODkzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg5MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg5NF8obnVtYmVyKSIgdGl0bGU9Ijg5NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44OTQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OTVfKG51bWJlcikiIHRpdGxlPSI4OTUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODk1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODk2XyhudW1iZXIpIiB0aXRsZT0iODk2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg5NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzg5N18obnVtYmVyKSIgdGl0bGU9Ijg5NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij44OTc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS84OThfKG51bWJlcikiIHRpdGxlPSI4OTggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+ODk4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvODk5XyhudW1iZXIpIiB0aXRsZT0iODk5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjg5OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4gaGxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij48L2Rpdj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtzIGNvbGxhcHNpYmxlIGNvbGxhcHNlZCBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJib3JkZXItc3BhY2luZzowOyI+Cis8dHI+Cis8dGggc2NvcGU9ImNvbCIgY2xhc3M9Im5hdmJveC10aXRsZSIgY29sc3Bhbj0iMiI+PHNwYW4gc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6NmVtOyI+JiMxNjA7PC9zcGFuPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS85MDBfKG51bWJlcikiIHRpdGxlPSI5MDAgKG51bWJlcikiPjkwMHM8L2E+PC9kaXY+Cis8L3RoPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTAwXyhudW1iZXIpIiB0aXRsZT0iOTAwIChudW1iZXIpIj45MDA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MDFfKG51bWJlcikiIHRpdGxlPSI5MDEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTAxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTAyXyhudW1iZXIpIiB0aXRsZT0iOTAyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkwMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkwM18obnVtYmVyKSIgdGl0bGU9IjkwMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MDM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MDRfKG51bWJlcikiIHRpdGxlPSI5MDQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTA0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTA1XyhudW1iZXIpIiB0aXRsZT0iOTA1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkwNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkwNl8obnVtYmVyKSIgdGl0bGU9IjkwNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MDY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MDdfKG51bWJlcikiIHRpdGxlPSI5MDcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTA3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTA4XyhudW1iZXIpIiB0aXRsZT0iOTA4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkwODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkwOV8obnVtYmVyKSIgdGl0bGU9IjkwOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MDk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTEwXyhudW1iZXIpIiB0aXRsZT0iOTEwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkxMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkxMV8obnVtYmVyKSIgdGl0bGU9IjkxMSAobnVtYmVyKSI+OTExPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTEyXyhudW1iZXIpIiB0aXRsZT0iOTEyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkxMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkxM18obnVtYmVyKSIgdGl0bGU9IjkxMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MTRfKG51bWJlcikiIHRpdGxlPSI5MTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTE0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTE1XyhudW1iZXIpIiB0aXRsZT0iOTE1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkxNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkxNl8obnVtYmVyKSIgdGl0bGU9IjkxNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MTdfKG51bWJlcikiIHRpdGxlPSI5MTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTE3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTE4XyhudW1iZXIpIiB0aXRsZT0iOTE4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkxODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkxOV8obnVtYmVyKSIgdGl0bGU9IjkxOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85MjBfKG51bWJlcikiIHRpdGxlPSI5MjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTIwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTIxXyhudW1iZXIpIiB0aXRsZT0iOTIxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkyMTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkyMl8obnVtYmVyKSIgdGl0bGU9IjkyMiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MjNfKG51bWJlcikiIHRpdGxlPSI5MjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTIzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTI0XyhudW1iZXIpIiB0aXRsZT0iOTI0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkyNDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkyNV8obnVtYmVyKSIgdGl0bGU9IjkyNSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MjZfKG51bWJlcikiIHRpdGxlPSI5MjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTI2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTI3XyhudW1iZXIpIiB0aXRsZT0iOTI3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkyNzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkyOF8obnVtYmVyKSIgdGl0bGU9IjkyOCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Mjg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MjlfKG51bWJlcikiIHRpdGxlPSI5MjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTI5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzMF8obnVtYmVyKSIgdGl0bGU9IjkzMCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MzFfKG51bWJlcikiIHRpdGxlPSI5MzEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTMxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTMyXyhudW1iZXIpIiB0aXRsZT0iOTMyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkzMjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzM18obnVtYmVyKSIgdGl0bGU9IjkzMyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MzM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MzRfKG51bWJlcikiIHRpdGxlPSI5MzQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTM0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTM1XyhudW1iZXIpIiB0aXRsZT0iOTM1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkzNTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzNl8obnVtYmVyKSIgdGl0bGU9IjkzNiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45MzY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85MzdfKG51bWJlcikiIHRpdGxlPSI5MzcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTM3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTM4XyhudW1iZXIpIiB0aXRsZT0iOTM4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjkzODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzkzOV8obnVtYmVyKSIgdGl0bGU9IjkzOSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Mzk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85NDBfKG51bWJlcikiIHRpdGxlPSI5NDAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTQwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTQxXyhudW1iZXIpIiB0aXRsZT0iOTQxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk0MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0Ml8obnVtYmVyKSIgdGl0bGU9Ijk0MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NDI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NDNfKG51bWJlcikiIHRpdGxlPSI5NDMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTQzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTQ0XyhudW1iZXIpIiB0aXRsZT0iOTQ0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk0NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0NV8obnVtYmVyKSIgdGl0bGU9Ijk0NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NDU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NDZfKG51bWJlcikiIHRpdGxlPSI5NDYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTQ2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTQ3XyhudW1iZXIpIiB0aXRsZT0iOTQ3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk0NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk0OF8obnVtYmVyKSIgdGl0bGU9Ijk0OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NDg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NDlfKG51bWJlcikiIHRpdGxlPSI5NDkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTQ5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk1MF8obnVtYmVyKSIgdGl0bGU9Ijk1MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NTA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NTFfKG51bWJlcikiIHRpdGxlPSI5NTEgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTUxPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTUyXyhudW1iZXIpIiB0aXRsZT0iOTUyIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk1MjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk1M18obnVtYmVyKSIgdGl0bGU9Ijk1MyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NTM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NTRfKG51bWJlcikiIHRpdGxlPSI5NTQgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTU0PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTU1XyhudW1iZXIpIiB0aXRsZT0iOTU1IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk1NTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk1Nl8obnVtYmVyKSIgdGl0bGU9Ijk1NiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NTY8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NTdfKG51bWJlcikiIHRpdGxlPSI5NTcgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTU3PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTU4XyhudW1iZXIpIiB0aXRsZT0iOTU4IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk1ODwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk1OV8obnVtYmVyKSIgdGl0bGU9Ijk1OSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NTk8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+Cis8dGQ+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgY29sc3Bhbj0iMiIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85NjBfKG51bWJlcikiIHRpdGxlPSI5NjAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTYwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTYxXyhudW1iZXIpIiB0aXRsZT0iOTYxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk2MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2Ml8obnVtYmVyKSIgdGl0bGU9Ijk2MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NjI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NjNfKG51bWJlcikiIHRpdGxlPSI5NjMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTYzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTY0XyhudW1iZXIpIiB0aXRsZT0iOTY0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk2NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2NV8obnVtYmVyKSIgdGl0bGU9Ijk2NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NjU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NjZfKG51bWJlcikiIHRpdGxlPSI5NjYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTY2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTY3XyhudW1iZXIpIiB0aXRsZT0iOTY3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk2NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk2OF8obnVtYmVyKSIgdGl0bGU9Ijk2OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Njg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NjlfKG51bWJlcikiIHRpdGxlPSI5NjkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTY5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtZXZlbiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ij4KKzxkaXYgc3R5bGU9InBhZGRpbmc6MGVtIDAuMjVlbTsiPgorPHVsPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3MF8obnVtYmVyKSIgdGl0bGU9Ijk3MCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NzA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NzFfKG51bWJlcikiIHRpdGxlPSI5NzEgKG51bWJlcikiPjk3MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3Ml8obnVtYmVyKSIgdGl0bGU9Ijk3MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NzI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NzNfKG51bWJlcikiIHRpdGxlPSI5NzMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTczPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTc0XyhudW1iZXIpIiB0aXRsZT0iOTc0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk3NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3NV8obnVtYmVyKSIgdGl0bGU9Ijk3NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45NzU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NzZfKG51bWJlcikiIHRpdGxlPSI5NzYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTc2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTc3XyhudW1iZXIpIiB0aXRsZT0iOTc3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk3NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk3OF8obnVtYmVyKSIgdGl0bGU9Ijk3OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45Nzg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85NzlfKG51bWJlcikiIHRpdGxlPSI5NzkgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTc5PC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L3RkPgorPC90cj4KKzx0ciBzdHlsZT0iaGVpZ2h0OjJweDsiPgorPHRkPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjBweDsiPgorPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtOyI+Cis8dWw+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTgwXyhudW1iZXIpIiB0aXRsZT0iOTgwIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk4MDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk4MV8obnVtYmVyKSIgdGl0bGU9Ijk4MSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45ODE8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85ODJfKG51bWJlcikiIHRpdGxlPSI5ODIgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTgyPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTgzXyhudW1iZXIpIiB0aXRsZT0iOTgzIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk4MzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk4NF8obnVtYmVyKSIgdGl0bGU9Ijk4NCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45ODQ8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85ODVfKG51bWJlcikiIHRpdGxlPSI5ODUgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTg1PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTg2XyhudW1iZXIpIiB0aXRsZT0iOTg2IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk4NjwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk4N18obnVtYmVyKSIgdGl0bGU9Ijk4NyAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45ODc8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85ODhfKG51bWJlcikiIHRpdGxlPSI5ODggKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTg4PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTg5XyhudW1iZXIpIiB0aXRsZT0iOTg5IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk4OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHIgc3R5bGU9ImhlaWdodDoycHg7Ij4KKzx0ZD48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MHB4OyI+Cis8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW07Ij4KKzx1bD4KKzxsaT48YSBocmVmPSIvd2lraS85OTBfKG51bWJlcikiIHRpdGxlPSI5OTAgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTkwPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTkxXyhudW1iZXIpIiB0aXRsZT0iOTkxIChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk5MTwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5Ml8obnVtYmVyKSIgdGl0bGU9Ijk5MiAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45OTI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OTNfKG51bWJlcikiIHRpdGxlPSI5OTMgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTkzPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTk0XyhudW1iZXIpIiB0aXRsZT0iOTk0IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk5NDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5NV8obnVtYmVyKSIgdGl0bGU9Ijk5NSAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45OTU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OTZfKG51bWJlcikiIHRpdGxlPSI5OTYgKG51bWJlcikiIGNsYXNzPSJtdy1yZWRpcmVjdCI+OTk2PC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iL3dpa2kvOTk3XyhudW1iZXIpIiB0aXRsZT0iOTk3IChudW1iZXIpIiBjbGFzcz0ibXctcmVkaXJlY3QiPjk5NzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Ii93aWtpLzk5OF8obnVtYmVyKSIgdGl0bGU9Ijk5OCAobnVtYmVyKSIgY2xhc3M9Im13LXJlZGlyZWN0Ij45OTg8L2E+PC9saT4KKzxsaT48YSBocmVmPSIvd2lraS85OTlfKG51bWJlcikiIHRpdGxlPSI5OTkgKG51bWJlcikiPjk5OTwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPHA+PGJyIC8+PC9wPgorPHRhYmxlIGNsYXNzPSJtZXRhZGF0YSBtYm94LXNtYWxsIHBsYWlubGlua3MiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICNhYWE7IGJhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTsiPgorPHRyPgorPHRkIGNsYXNzPSJtYm94LWltYWdlIj48aW1nIGFsdD0iIiBzcmM9Ii8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL3RodW1iLzQvNGEvQ29tbW9ucy1sb2dvLnN2Zy8zMHB4LUNvbW1vbnMtbG9nby5zdmcucG5nIiB3aWR0aD0iMzAiIGhlaWdodD0iNDAiIHNyY3NldD0iLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvZW4vdGh1bWIvNC80YS9Db21tb25zLWxvZ28uc3ZnLzQ1cHgtQ29tbW9ucy1sb2dvLnN2Zy5wbmcgMS41eCwgLy91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvZW4vdGh1bWIvNC80YS9Db21tb25zLWxvZ28uc3ZnLzU5cHgtQ29tbW9ucy1sb2dvLnN2Zy5wbmcgMngiIC8+PC90ZD4KKzx0ZCBjbGFzcz0ibWJveC10ZXh0IHBsYWlubGlzdCIgc3R5bGU9IiI+V2lraW1lZGlhIENvbW1vbnMgaGFzIG1lZGlhIHJlbGF0ZWQgdG8gPGk+PGI+PGEgaHJlZj0iLy9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9DYXRlZ29yeTo0Ml8obnVtYmVyKSIgY2xhc3M9ImV4dGl3IiB0aXRsZT0iY29tbW9uczpDYXRlZ29yeTo0MiAobnVtYmVyKSI+NDIgKG51bWJlcik8L2E+PC9iPjwvaT4uPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorCisKKzwhLS0gCitOZXdQUCBsaW1pdCByZXBvcnQKK1BhcnNlZCBieSBtdzEwNDcKK0NQVSB0aW1lIHVzYWdlOiAyLjg0NCBzZWNvbmRzCitSZWFsIHRpbWUgdXNhZ2U6IDMuMDI0IHNlY29uZHMKK1ByZXByb2Nlc3NvciB2aXNpdGVkIG5vZGUgY291bnQ6IDMyNzYvMTAwMDAwMAorUHJlcHJvY2Vzc29yIGdlbmVyYXRlZCBub2RlIGNvdW50OiAxNjA0Ni8xNTAwMDAwCitQb3N04oCQZXhwYW5kIGluY2x1ZGUgc2l6ZTogMjY0NTg5LzIwNDgwMDAgYnl0ZXMKK1RlbXBsYXRlIGFyZ3VtZW50IHNpemU6IDI2ODQvMjA0ODAwMCBieXRlcworSGlnaGVzdCBleHBhbnNpb24gZGVwdGg6IDEyLzQwCitFeHBlbnNpdmUgcGFyc2VyIGZ1bmN0aW9uIGNvdW50OiA3LzUwMAorTHVhIHRpbWUgdXNhZ2U6IDAuMjMxcworTHVhIG1lbW9yeSB1c2FnZTogMy4zNCBNQgorLS0+CisKKzwhLS0gU2F2ZWQgaW4gcGFyc2VyIGNhY2hlIHdpdGgga2V5IGVud2lraTpwY2FjaGU6aWRoYXNoOjE5MTE3OC0wITAhMCEhZW4hNCEqIGFuZCB0aW1lc3RhbXAgMjAxNDAxMjgxMjU4MzIKKy0tPgorCis8IS0tIFNhdmVkIGluIHBhcnNlciBjYWNoZSB3aXRoIGtleSBlbndpa2k6c3RhYmxlLXBjYWNoZTppZGhhc2g6MTkxMTc4LTAhMCEwISFlbiE0ISogYW5kIHRpbWVzdGFtcCAyMDE0MDEyODEyNTgzNgorLS0+Cis8bm9zY3JpcHQ+PGltZyBzcmM9Ii8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwZWNpYWw6Q2VudHJhbEF1dG9Mb2dpbi9zdGFydD90eXBlPTF4MSIgYWx0PSIiIHRpdGxlPSIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJib3JkZXI6IG5vbmU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiIC8+PC9ub3NjcmlwdD48L2Rpdj4JCQkJCQkJCTxkaXYgY2xhc3M9InByaW50Zm9vdGVyIj4KK1JldHJpZXZlZCBmcm9tICI8YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7b2xkaWQ9NTkyNzgyMTczIj5odHRwOi8vZW4ud2lraXBlZGlhLm9yZy93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7b2xkaWQ9NTkyNzgyMTczPC9hPiIJCQkJPC9kaXY+Cis8ZGl2IGlkPSdjYXRsaW5rcycgY2xhc3M9J2NhdGxpbmtzJz48ZGl2IGlkPSJtdy1ub3JtYWwtY2F0bGlua3MiIGNsYXNzPSJtdy1ub3JtYWwtY2F0bGlua3MiPjxhIGhyZWY9Ii93aWtpL0hlbHA6Q2F0ZWdvcnkiIHRpdGxlPSJIZWxwOkNhdGVnb3J5Ij5DYXRlZ29yaWVzPC9hPjogPHVsPjxsaT48YSBocmVmPSIvd2lraS9DYXRlZ29yeTpJbnRlZ2VycyIgdGl0bGU9IkNhdGVnb3J5OkludGVnZXJzIj5JbnRlZ2VyczwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBpZD0ibXctaGlkZGVuLWNhdGxpbmtzIiBjbGFzcz0ibXctaGlkZGVuLWNhdGxpbmtzIG13LWhpZGRlbi1jYXRzLWhpZGRlbiI+SGlkZGVuIGNhdGVnb3JpZXM6IDx1bD48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6Q1MxX2Vycm9yczpfZGF0ZXMiIHRpdGxlPSJDYXRlZ29yeTpDUzEgZXJyb3JzOiBkYXRlcyI+Q1MxIGVycm9yczogZGF0ZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6V2lraXBlZGlhX3BlbmRpbmdfY2hhbmdlc19wcm90ZWN0ZWRfcGFnZXNfKGxldmVsXzEpIiB0aXRsZT0iQ2F0ZWdvcnk6V2lraXBlZGlhIHBlbmRpbmcgY2hhbmdlcyBwcm90ZWN0ZWQgcGFnZXMgKGxldmVsIDEpIj5XaWtpcGVkaWEgcGVuZGluZyBjaGFuZ2VzIHByb3RlY3RlZCBwYWdlcyAobGV2ZWwgMSk8L2E+PC9saT48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6V2lraXBlZGlhX3Byb3RlY3RlZF9wYWdlc193aXRob3V0X2V4cGlyeSIgdGl0bGU9IkNhdGVnb3J5Oldpa2lwZWRpYSBwcm90ZWN0ZWQgcGFnZXMgd2l0aG91dCBleHBpcnkiPldpa2lwZWRpYSBwcm90ZWN0ZWQgcGFnZXMgd2l0aG91dCBleHBpcnk8L2E+PC9saT48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6QXJ0aWNsZXNfbmVlZGluZ19hZGRpdGlvbmFsX3JlZmVyZW5jZXNfZnJvbV9GZWJydWFyeV8yMDExIiB0aXRsZT0iQ2F0ZWdvcnk6QXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMgZnJvbSBGZWJydWFyeSAyMDExIj5BcnRpY2xlcyBuZWVkaW5nIGFkZGl0aW9uYWwgcmVmZXJlbmNlcyBmcm9tIEZlYnJ1YXJ5IDIwMTE8L2E+PC9saT48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6QWxsX2FydGljbGVzX25lZWRpbmdfYWRkaXRpb25hbF9yZWZlcmVuY2VzIiB0aXRsZT0iQ2F0ZWdvcnk6QWxsIGFydGljbGVzIG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVuY2VzIj5BbGwgYXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6QWxsX2FydGljbGVzX3dpdGhfdW5zb3VyY2VkX3N0YXRlbWVudHMiIHRpdGxlPSJDYXRlZ29yeTpBbGwgYXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyI+QWxsIGFydGljbGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHM8L2E+PC9saT48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6QXJ0aWNsZXNfd2l0aF91bnNvdXJjZWRfc3RhdGVtZW50c19mcm9tX0ZlYnJ1YXJ5XzIwMTEiIHRpdGxlPSJDYXRlZ29yeTpBcnRpY2xlcyB3aXRoIHVuc291cmNlZCBzdGF0ZW1lbnRzIGZyb20gRmVicnVhcnkgMjAxMSI+QXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyBmcm9tIEZlYnJ1YXJ5IDIwMTE8L2E+PC9saT48bGk+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6Q29tbW9uc19jYXRlZ29yeV93aXRoX2xvY2FsX2xpbmtfc2FtZV9hc19vbl9XaWtpZGF0YSIgdGl0bGU9IkNhdGVnb3J5OkNvbW1vbnMgY2F0ZWdvcnkgd2l0aCBsb2NhbCBsaW5rIHNhbWUgYXMgb24gV2lraWRhdGEiPkNvbW1vbnMgY2F0ZWdvcnkgd2l0aCBsb2NhbCBsaW5rIHNhbWUgYXMgb24gV2lraWRhdGE8L2E+PC9saT48L3VsPjwvZGl2PjwvZGl2PgkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9InZpc3VhbENsZWFyIj48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJtdy1uYXZpZ2F0aW9uIj4KKzxoMj5OYXZpZ2F0aW9uIG1lbnU8L2gyPgorPGRpdiBpZD0ibXctaGVhZCI+Cis8ZGl2IGlkPSJwLXBlcnNvbmFsIiByb2xlPSJuYXZpZ2F0aW9uIiBjbGFzcz0iIiBhcmlhLWxhYmVsbGVkYnk9InAtcGVyc29uYWwtbGFiZWwiPgorPGgzIGlkPSJwLXBlcnNvbmFsLWxhYmVsIj5QZXJzb25hbCB0b29sczwvaDM+Cis8dWw+Cis8bGkgaWQ9InB0LWNyZWF0ZWFjY291bnQiPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1TcGVjaWFsOlVzZXJMb2dpbiZhbXA7cmV0dXJudG89NDIrJTI4bnVtYmVyJTI5JmFtcDt0eXBlPXNpZ251cCI+Q3JlYXRlIGFjY291bnQ8L2E+PC9saT48bGkgaWQ9InB0LWxvZ2luIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9U3BlY2lhbDpVc2VyTG9naW4mYW1wO3JldHVybnRvPTQyKyUyOG51bWJlciUyOSIgdGl0bGU9IllvdSdyZSBlbmNvdXJhZ2VkIHRvIGxvZyBpbjsgaG93ZXZlciwgaXQncyBub3QgbWFuZGF0b3J5LiBbb10iIGFjY2Vzc2tleT0ibyI+TG9nIGluPC9hPjwvbGk+CTwvdWw+Cis8L2Rpdj4KKzxkaXYgaWQ9ImxlZnQtbmF2aWdhdGlvbiI+Cis8ZGl2IGlkPSJwLW5hbWVzcGFjZXMiIHJvbGU9Im5hdmlnYXRpb24iIGNsYXNzPSJ2ZWN0b3JUYWJzIiBhcmlhLWxhYmVsbGVkYnk9InAtbmFtZXNwYWNlcy1sYWJlbCI+Cis8aDMgaWQ9InAtbmFtZXNwYWNlcy1sYWJlbCI+TmFtZXNwYWNlczwvaDM+Cis8dWw+Cis8bGkgIGlkPSJjYS1uc3RhYi1tYWluIiBjbGFzcz0ic2VsZWN0ZWQiPjxzcGFuPjxhIGhyZWY9Ii93aWtpLzQyXyhudW1iZXIpIiAgdGl0bGU9IlZpZXcgdGhlIGNvbnRlbnQgcGFnZSBbY10iIGFjY2Vzc2tleT0iYyI+QXJ0aWNsZTwvYT48L3NwYW4+PC9saT4KKzxsaSAgaWQ9ImNhLXRhbGsiPjxzcGFuPjxhIGhyZWY9Ii93aWtpL1RhbGs6NDJfKG51bWJlcikiICB0aXRsZT0iRGlzY3Vzc2lvbiBhYm91dCB0aGUgY29udGVudCBwYWdlIFt0XSIgYWNjZXNza2V5PSJ0Ij5UYWxrPC9hPjwvc3Bhbj48L2xpPgorPC91bD4KKzwvZGl2PgorPGRpdiBpZD0icC12YXJpYW50cyIgcm9sZT0ibmF2aWdhdGlvbiIgY2xhc3M9InZlY3Rvck1lbnUgZW1wdHlQb3J0bGV0IiBhcmlhLWxhYmVsbGVkYnk9InAtdmFyaWFudHMtbGFiZWwiPgorPGgzIGlkPSJtdy12ZWN0b3ItY3VycmVudC12YXJpYW50Ij4KKzwvaDM+Cis8aDMgaWQ9InAtdmFyaWFudHMtbGFiZWwiPjxzcGFuPlZhcmlhbnRzPC9zcGFuPjxhIGhyZWY9IiMiPjwvYT48L2gzPgorPGRpdiBjbGFzcz0ibWVudSI+Cis8dWw+Cis8L3VsPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0icmlnaHQtbmF2aWdhdGlvbiI+Cis8ZGl2IGlkPSJwLXZpZXdzIiByb2xlPSJuYXZpZ2F0aW9uIiBjbGFzcz0idmVjdG9yVGFicyIgYXJpYS1sYWJlbGxlZGJ5PSJwLXZpZXdzLWxhYmVsIj4KKzxoMyBpZD0icC12aWV3cy1sYWJlbCI+Vmlld3M8L2gzPgorPHVsPgorPGxpIGlkPSJjYS12aWV3IiBjbGFzcz0ic2VsZWN0ZWQiPjxzcGFuPjxhIGhyZWY9Ii93aWtpLzQyXyhudW1iZXIpIiA+UmVhZDwvYT48L3NwYW4+PC9saT4KKzxsaSBpZD0iY2EtZWRpdCI+PHNwYW4+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDthY3Rpb249ZWRpdCIgIHRpdGxlPSJZb3UgY2FuIGVkaXQgdGhpcyBwYWdlLlBsZWFzZSByZXZpZXcgeW91ciBjaGFuZ2VzIGJlZm9yZSBzYXZpbmcuIFtlXSIgYWNjZXNza2V5PSJlIj5FZGl0PC9hPjwvc3Bhbj48L2xpPgorPGxpIGlkPSJjYS1oaXN0b3J5IiBjbGFzcz0iY29sbGFwc2libGUiPjxzcGFuPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7YWN0aW9uPWhpc3RvcnkiICB0aXRsZT0iUGFzdCB2ZXJzaW9ucyBvZiB0aGlzIHBhZ2UgW2hdIiBhY2Nlc3NrZXk9ImgiPlZpZXcgaGlzdG9yeTwvYT48L3NwYW4+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzxkaXYgaWQ9InAtY2FjdGlvbnMiIHJvbGU9Im5hdmlnYXRpb24iIGNsYXNzPSJ2ZWN0b3JNZW51IGVtcHR5UG9ydGxldCIgYXJpYS1sYWJlbGxlZGJ5PSJwLWNhY3Rpb25zLWxhYmVsIj4KKzxoMyBpZD0icC1jYWN0aW9ucy1sYWJlbCI+PHNwYW4+QWN0aW9uczwvc3Bhbj48YSBocmVmPSIjIj48L2E+PC9oMz4KKzxkaXYgY2xhc3M9Im1lbnUiPgorPHVsPgorPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJwLXNlYXJjaCIgcm9sZT0ic2VhcmNoIj4KKzxoMz48bGFiZWwgZm9yPSJzZWFyY2hJbnB1dCI+U2VhcmNoPC9sYWJlbD48L2gzPgorPGZvcm0gYWN0aW9uPSIvdy9pbmRleC5waHAiIGlkPSJzZWFyY2hmb3JtIj4KKzxkaXYgaWQ9InNpbXBsZVNlYXJjaCI+Cis8aW5wdXQgbmFtZT0ic2VhcmNoIiBwbGFjZWhvbGRlcj0iU2VhcmNoIiB0aXRsZT0iU2VhcmNoIFdpa2lwZWRpYSBbZl0iIGFjY2Vzc2tleT0iZiIgaWQ9InNlYXJjaElucHV0IiAvPgkJCQkJCTxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJidXR0b24iIHRpdGxlPSJTZWFyY2ggV2lraXBlZGlhIGZvciB0aGlzIHRleHQiIGlkPSJzZWFyY2hCdXR0b24iPjxpbWcgc3JjPSIvL2JpdHMud2lraW1lZGlhLm9yZy9zdGF0aWMtMS4yM3dtZjEwL3NraW5zL3ZlY3Rvci9pbWFnZXMvc2VhcmNoLWx0ci5wbmc/MzAzLTQiIGFsdD0iU2VhcmNoIiB3aWR0aD0iMTIiIGhlaWdodD0iMTMiIC8+PC9idXR0b24+CQkJCQkJCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSJ0aXRsZSIgdmFsdWU9IlNwZWNpYWw6U2VhcmNoIi8+Cis8L2Rpdj4KKzwvZm9ybT4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9Im13LXBhbmVsIj4KKzxkaXYgaWQ9InAtbG9nbyIgcm9sZT0iYmFubmVyIj48YSBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKC8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL2IvYmMvV2lraS5wbmcpOyIgaHJlZj0iL3dpa2kvTWFpbl9QYWdlIiAgdGl0bGU9IlZpc2l0IHRoZSBtYWluIHBhZ2UiPjwvYT48L2Rpdj4KKzxkaXYgY2xhc3M9InBvcnRhbCIgcm9sZT0ibmF2aWdhdGlvbiIgaWQ9J3AtbmF2aWdhdGlvbicgYXJpYS1sYWJlbGxlZGJ5PSdwLW5hdmlnYXRpb24tbGFiZWwnPgorPGgzIGlkPSdwLW5hdmlnYXRpb24tbGFiZWwnPk5hdmlnYXRpb248L2gzPgorPGRpdiBjbGFzcz0iYm9keSI+Cis8dWw+Cis8bGkgaWQ9Im4tbWFpbnBhZ2UtZGVzY3JpcHRpb24iPjxhIGhyZWY9Ii93aWtpL01haW5fUGFnZSIgdGl0bGU9IlZpc2l0IHRoZSBtYWluIHBhZ2UgW3pdIiBhY2Nlc3NrZXk9InoiPk1haW4gcGFnZTwvYT48L2xpPgorPGxpIGlkPSJuLWNvbnRlbnRzIj48YSBocmVmPSIvd2lraS9Qb3J0YWw6Q29udGVudHMiIHRpdGxlPSJHdWlkZXMgdG8gYnJvd3NpbmcgV2lraXBlZGlhIj5Db250ZW50czwvYT48L2xpPgorPGxpIGlkPSJuLWZlYXR1cmVkY29udGVudCI+PGEgaHJlZj0iL3dpa2kvUG9ydGFsOkZlYXR1cmVkX2NvbnRlbnQiIHRpdGxlPSJGZWF0dXJlZCBjb250ZW50IOKAkyB0aGUgYmVzdCBvZiBXaWtpcGVkaWEiPkZlYXR1cmVkIGNvbnRlbnQ8L2E+PC9saT4KKzxsaSBpZD0ibi1jdXJyZW50ZXZlbnRzIj48YSBocmVmPSIvd2lraS9Qb3J0YWw6Q3VycmVudF9ldmVudHMiIHRpdGxlPSJGaW5kIGJhY2tncm91bmQgaW5mb3JtYXRpb24gb24gY3VycmVudCBldmVudHMiPkN1cnJlbnQgZXZlbnRzPC9hPjwvbGk+Cis8bGkgaWQ9Im4tcmFuZG9tcGFnZSI+PGEgaHJlZj0iL3dpa2kvU3BlY2lhbDpSYW5kb20iIHRpdGxlPSJMb2FkIGEgcmFuZG9tIGFydGljbGUgW3hdIiBhY2Nlc3NrZXk9IngiPlJhbmRvbSBhcnRpY2xlPC9hPjwvbGk+Cis8bGkgaWQ9Im4tc2l0ZXN1cHBvcnQiPjxhIGhyZWY9Imh0dHBzOi8vZG9uYXRlLndpa2ltZWRpYS5vcmcvd2lraS9TcGVjaWFsOkZ1bmRyYWlzZXJSZWRpcmVjdG9yP3V0bV9zb3VyY2U9ZG9uYXRlJmFtcDt1dG1fbWVkaXVtPXNpZGViYXImYW1wO3V0bV9jYW1wYWlnbj1DMTNfZW4ud2lraXBlZGlhLm9yZyZhbXA7dXNlbGFuZz1lbiIgdGl0bGU9IlN1cHBvcnQgdXMiPkRvbmF0ZSB0byBXaWtpcGVkaWE8L2E+PC9saT4KKzxsaSBpZD0ibi1zaG9wbGluayI+PGEgaHJlZj0iLy9zaG9wLndpa2ltZWRpYS5vcmciIHRpdGxlPSJWaXNpdCB0aGUgV2lraW1lZGlhIFNob3AiPldpa2ltZWRpYSBTaG9wPC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InBvcnRhbCIgcm9sZT0ibmF2aWdhdGlvbiIgaWQ9J3AtaW50ZXJhY3Rpb24nIGFyaWEtbGFiZWxsZWRieT0ncC1pbnRlcmFjdGlvbi1sYWJlbCc+Cis8aDMgaWQ9J3AtaW50ZXJhY3Rpb24tbGFiZWwnPkludGVyYWN0aW9uPC9oMz4KKzxkaXYgY2xhc3M9ImJvZHkiPgorPHVsPgorPGxpIGlkPSJuLWhlbHAiPjxhIGhyZWY9Ii93aWtpL0hlbHA6Q29udGVudHMiIHRpdGxlPSJHdWlkYW5jZSBvbiBob3cgdG8gdXNlIGFuZCBlZGl0IFdpa2lwZWRpYSI+SGVscDwvYT48L2xpPgorPGxpIGlkPSJuLWFib3V0c2l0ZSI+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOkFib3V0IiB0aXRsZT0iRmluZCBvdXQgYWJvdXQgV2lraXBlZGlhIj5BYm91dCBXaWtpcGVkaWE8L2E+PC9saT4KKzxsaSBpZD0ibi1wb3J0YWwiPjxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpDb21tdW5pdHlfcG9ydGFsIiB0aXRsZT0iQWJvdXQgdGhlIHByb2plY3QsIHdoYXQgeW91IGNhbiBkbywgd2hlcmUgdG8gZmluZCB0aGluZ3MiPkNvbW11bml0eSBwb3J0YWw8L2E+PC9saT4KKzxsaSBpZD0ibi1yZWNlbnRjaGFuZ2VzIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOlJlY2VudENoYW5nZXMiIHRpdGxlPSJBIGxpc3Qgb2YgcmVjZW50IGNoYW5nZXMgaW4gdGhlIHdpa2kgW3JdIiBhY2Nlc3NrZXk9InIiPlJlY2VudCBjaGFuZ2VzPC9hPjwvbGk+Cis8bGkgaWQ9Im4tY29udGFjdHBhZ2UiPjxhIGhyZWY9Ii8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dpa2lwZWRpYTpDb250YWN0X3VzIj5Db250YWN0IHBhZ2U8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0icG9ydGFsIiByb2xlPSJuYXZpZ2F0aW9uIiBpZD0ncC10YicgYXJpYS1sYWJlbGxlZGJ5PSdwLXRiLWxhYmVsJz4KKzxoMyBpZD0ncC10Yi1sYWJlbCc+VG9vbHM8L2gzPgorPGRpdiBjbGFzcz0iYm9keSI+Cis8dWw+Cis8bGkgaWQ9InQtd2hhdGxpbmtzaGVyZSI+PGEgaHJlZj0iL3dpa2kvU3BlY2lhbDpXaGF0TGlua3NIZXJlLzQyXyhudW1iZXIpIiB0aXRsZT0iTGlzdCBvZiBhbGwgRW5nbGlzaCBXaWtpcGVkaWEgcGFnZXMgY29udGFpbmluZyBsaW5rcyB0byB0aGlzIHBhZ2UgW2pdIiBhY2Nlc3NrZXk9ImoiPldoYXQgbGlua3MgaGVyZTwvYT48L2xpPgorPGxpIGlkPSJ0LXJlY2VudGNoYW5nZXNsaW5rZWQiPjxhIGhyZWY9Ii93aWtpL1NwZWNpYWw6UmVjZW50Q2hhbmdlc0xpbmtlZC80Ml8obnVtYmVyKSIgdGl0bGU9IlJlY2VudCBjaGFuZ2VzIGluIHBhZ2VzIGxpbmtlZCBmcm9tIHRoaXMgcGFnZSBba10iIGFjY2Vzc2tleT0iayI+UmVsYXRlZCBjaGFuZ2VzPC9hPjwvbGk+Cis8bGkgaWQ9InQtdXBsb2FkIj48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6RmlsZV9VcGxvYWRfV2l6YXJkIiB0aXRsZT0iVXBsb2FkIGZpbGVzIFt1XSIgYWNjZXNza2V5PSJ1Ij5VcGxvYWQgZmlsZTwvYT48L2xpPgorPGxpIGlkPSJ0LXNwZWNpYWxwYWdlcyI+PGEgaHJlZj0iL3dpa2kvU3BlY2lhbDpTcGVjaWFsUGFnZXMiIHRpdGxlPSJBIGxpc3Qgb2YgYWxsIHNwZWNpYWwgcGFnZXMgW3FdIiBhY2Nlc3NrZXk9InEiPlNwZWNpYWwgcGFnZXM8L2E+PC9saT4KKzxsaSBpZD0idC1wZXJtYWxpbmsiPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT00Ml8obnVtYmVyKSZhbXA7b2xkaWQ9NTkyNzgyMTczIiB0aXRsZT0iUGVybWFuZW50IGxpbmsgdG8gdGhpcyByZXZpc2lvbiBvZiB0aGUgcGFnZSI+UGVybWFuZW50IGxpbms8L2E+PC9saT4KKzxsaSBpZD0idC1pbmZvIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9NDJfKG51bWJlcikmYW1wO2FjdGlvbj1pbmZvIj5QYWdlIGluZm9ybWF0aW9uPC9hPjwvbGk+Cis8bGkgaWQ9InQtd2lraWJhc2UiPjxhIGhyZWY9Ii8vd3d3Lndpa2lkYXRhLm9yZy93aWtpL1E4MTI5OTYiIHRpdGxlPSJMaW5rIHRvIGNvbm5lY3RlZCBkYXRhIHJlcG9zaXRvcnkgaXRlbSBbZ10iIGFjY2Vzc2tleT0iZyI+RGF0YSBpdGVtPC9hPjwvbGk+Cis8bGkgaWQ9InQtY2l0ZSI+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPVNwZWNpYWw6Q2l0ZSZhbXA7cGFnZT00Ml8lMjhudW1iZXIlMjkmYW1wO2lkPTU5Mjc4MjE3MyIgdGl0bGU9IkluZm9ybWF0aW9uIG9uIGhvdyB0byBjaXRlIHRoaXMgcGFnZSI+Q2l0ZSB0aGlzIHBhZ2U8L2E+PC9saT4JCTwvdWw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0icG9ydGFsIiByb2xlPSJuYXZpZ2F0aW9uIiBpZD0ncC1jb2xsLXByaW50X2V4cG9ydCcgYXJpYS1sYWJlbGxlZGJ5PSdwLWNvbGwtcHJpbnRfZXhwb3J0LWxhYmVsJz4KKzxoMyBpZD0ncC1jb2xsLXByaW50X2V4cG9ydC1sYWJlbCc+UHJpbnQvZXhwb3J0PC9oMz4KKzxkaXYgY2xhc3M9ImJvZHkiPgorPHVsPgorPGxpIGlkPSJjb2xsLWNyZWF0ZV9hX2Jvb2siPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1TcGVjaWFsOkJvb2smYW1wO2Jvb2tjbWQ9Ym9va19jcmVhdG9yJmFtcDtyZWZlcmVyPTQyKyUyOG51bWJlciUyOSI+Q3JlYXRlIGEgYm9vazwvYT48L2xpPgorPGxpIGlkPSJjb2xsLWRvd25sb2FkLWFzLXJsIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9U3BlY2lhbDpCb29rJmFtcDtib29rY21kPXJlbmRlcl9hcnRpY2xlJmFtcDthcnR0aXRsZT00MislMjhudW1iZXIlMjkmYW1wO29sZGlkPTU5Mjc4MjE3MyZhbXA7d3JpdGVyPXJsIj5Eb3dubG9hZCBhcyBQREY8L2E+PC9saT4KKzxsaSBpZD0idC1wcmludCI+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPTQyXyhudW1iZXIpJmFtcDtwcmludGFibGU9eWVzIiB0aXRsZT0iUHJpbnRhYmxlIHZlcnNpb24gb2YgdGhpcyBwYWdlIFtwXSIgYWNjZXNza2V5PSJwIj5QcmludGFibGUgdmVyc2lvbjwvYT48L2xpPgorPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJwb3J0YWwiIHJvbGU9Im5hdmlnYXRpb24iIGlkPSdwLWxhbmcnIGFyaWEtbGFiZWxsZWRieT0ncC1sYW5nLWxhYmVsJz4KKzxoMyBpZD0ncC1sYW5nLWxhYmVsJz5MYW5ndWFnZXM8L2gzPgorPGRpdiBjbGFzcz0iYm9keSI+Cis8dWw+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktYWIiPjxhIGhyZWY9Ii8vYWIud2lraXBlZGlhLm9yZy93aWtpLyVEMiVBOCVEMSU4QiVEMCVCRCVEMiVBOSVEMCVCMCVEMCVCNiVEMyU5OSVEMCVCMF8lRDIlQTklRDAlQjElRDAlQjAiIHRpdGxlPSLSqNGL0L3SqdCw0LbTmdCwINKp0LHQsCDigJMgQWJraGF6aWFuIiBsYW5nPSJhYiIgaHJlZmxhbmc9ImFiIj7QkNKn0YHRiNOZ0LA8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1hciI+PGEgaHJlZj0iLy9hci53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVEOCVCOSVEOCVBRiVEOCVBRikiIHRpdGxlPSI0MiAo2LnYr9ivKSDigJMgQXJhYmljIiBsYW5nPSJhciIgaHJlZmxhbmc9ImFyIj7Yp9mE2LnYsdio2YrYqTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWF6Ij48YSBocmVmPSIvL2F6Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUM5JTk5ZCVDOSU5OWQpIiB0aXRsZT0iNDIgKMmZZMmZZCkg4oCTIEF6ZXJiYWlqYW5pIiBsYW5nPSJheiIgaHJlZmxhbmc9ImF6Ij5BesmZcmJheWNhbmNhPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktYmciPjxhIGhyZWY9Ii8vYmcud2lraXBlZGlhLm9yZy93aWtpLzQyXyglRDElODclRDAlQjglRDElODElRDAlQkIlRDAlQkUpIiB0aXRsZT0iNDIgKNGH0LjRgdC70L4pIOKAkyBCdWxnYXJpYW4iIGxhbmc9ImJnIiBocmVmbGFuZz0iYmciPtCR0YrQu9Cz0LDRgNGB0LrQuDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWJvIj48YSBocmVmPSIvL2JvLndpa2lwZWRpYS5vcmcvd2lraS8lRTAlQkMlQTQlRTAlQkMlQTJfKCVFMCVCRCU4MiVFMCVCRSVCMiVFMCVCRCU4NCVFMCVCRCVBNiVFMCVCQyU4QiVFMCVCRCU4MCVFMCVCQyU4RCkiIHRpdGxlPSLgvKTgvKIgKOC9guC+suC9hOC9puC8i+C9gOC8jSkg4oCTIFRpYmV0YW4iIGxhbmc9ImJvIiBocmVmbGFuZz0iYm8iPuC9luC9vOC9keC8i+C9oeC9suC9gjwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWNhIj48YSBocmVmPSIvL2NhLndpa2lwZWRpYS5vcmcvd2lraS9RdWFyYW50YS1kb3MiIHRpdGxlPSJRdWFyYW50YS1kb3Mg4oCTIENhdGFsYW4iIGxhbmc9ImNhIiBocmVmbGFuZz0iY2EiPkNhdGFsw6A8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1jdiI+PGEgaHJlZj0iLy9jdi53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVEMSU4NSVEMCVCOCVEMSU4MSVEMCVCNSVEMCVCRikiIHRpdGxlPSI0MiAo0YXQuNGB0LXQvykg4oCTIENodXZhc2giIGxhbmc9ImN2IiBocmVmbGFuZz0iY3YiPtCn05HQstCw0YjQu9CwPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktY3MiPjxhIGhyZWY9Ii8vY3Mud2lraXBlZGlhLm9yZy93aWtpLzQyXyglQzQlOEQlQzMlQURzbG8pIiB0aXRsZT0iNDIgKMSNw61zbG8pIOKAkyBDemVjaCIgbGFuZz0iY3MiIGhyZWZsYW5nPSJjcyI+xIxlxaF0aW5hPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktZGEiPjxhIGhyZWY9Ii8vZGEud2lraXBlZGlhLm9yZy93aWtpLzQyXyh0YWwpIiB0aXRsZT0iNDIgKHRhbCkg4oCTIERhbmlzaCIgbGFuZz0iZGEiIGhyZWZsYW5nPSJkYSI+RGFuc2s8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1lbCI+PGEgaHJlZj0iLy9lbC53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVDRSVCMSVDRiU4MSVDRSVCOSVDRSVCOCVDRSVCQyVDRiU4QyVDRiU4MikiIHRpdGxlPSI0MiAozrHPgc65zrjOvM+Mz4IpIOKAkyBHcmVlayIgbGFuZz0iZWwiIGhyZWZsYW5nPSJlbCI+zpXOu867zrfOvc65zrrOrDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWVzIj48YSBocmVmPSIvL2VzLndpa2lwZWRpYS5vcmcvd2lraS9DdWFyZW50YV95X2RvcyIgdGl0bGU9IkN1YXJlbnRhIHkgZG9zIOKAkyBTcGFuaXNoIiBsYW5nPSJlcyIgaHJlZmxhbmc9ImVzIj5Fc3Bhw7FvbDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWVvIj48YSBocmVmPSIvL2VvLndpa2lwZWRpYS5vcmcvd2lraS80Ml8obm9tYnJvKSIgdGl0bGU9IjQyIChub21icm8pIOKAkyBFc3BlcmFudG8iIGxhbmc9ImVvIiBocmVmbGFuZz0iZW8iPkVzcGVyYW50bzwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWV1Ij48YSBocmVmPSIvL2V1Lndpa2lwZWRpYS5vcmcvd2lraS9CZXJyb2dlaXRhX2JpIiB0aXRsZT0iQmVycm9nZWl0YSBiaSDigJMgQmFzcXVlIiBsYW5nPSJldSIgaHJlZmxhbmc9ImV1Ij5FdXNrYXJhPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktZmEiPjxhIGhyZWY9Ii8vZmEud2lraXBlZGlhLm9yZy93aWtpLyVEQiVCNCVEQiVCMl8oJUQ4JUI5JUQ4JUFGJUQ4JUFGKSIgdGl0bGU9Itu027IgKNi52K/Yrykg4oCTIFBlcnNpYW4iIGxhbmc9ImZhIiBocmVmbGFuZz0iZmEiPtmB2KfYsdiz24w8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1mciI+PGEgaHJlZj0iLy9mci53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG5vbWJyZSkiIHRpdGxlPSI0MiAobm9tYnJlKSDigJMgRnJlbmNoIiBsYW5nPSJmciIgaHJlZmxhbmc9ImZyIj5GcmFuw6dhaXM8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1nYW4iPjxhIGhyZWY9Ii8vZ2FuLndpa2lwZWRpYS5vcmcvd2lraS80MiIgdGl0bGU9IjQyIOKAkyBHYW4iIGxhbmc9ImdhbiIgaHJlZmxhbmc9ImdhbiI+6LSb6KqePC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2kta28iPjxhIGhyZWY9Ii8va28ud2lraXBlZGlhLm9yZy93aWtpLzQyIiB0aXRsZT0iNDIg4oCTIEtvcmVhbiIgbGFuZz0ia28iIGhyZWZsYW5nPSJrbyI+7ZWc6rWt7Ja0PC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktaHkiPjxhIGhyZWY9Ii8vaHkud2lraXBlZGlhLm9yZy93aWtpLzQyXyglRDUlQTklRDUlQUIlRDUlQkUpIiB0aXRsZT0iNDIgKNWp1avVvikg4oCTIEFybWVuaWFuIiBsYW5nPSJoeSIgaHJlZmxhbmc9Imh5Ij7VgNWh1bXVpdaA1aXVtjwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWlkIj48YSBocmVmPSIvL2lkLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oYW5na2EpIiB0aXRsZT0iNDIgKGFuZ2thKSDigJMgSW5kb25lc2lhbiIgbGFuZz0iaWQiIGhyZWZsYW5nPSJpZCI+QmFoYXNhIEluZG9uZXNpYTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWlhIj48YSBocmVmPSIvL2lhLndpa2lwZWRpYS5vcmcvd2lraS80Ml8obnVtZXJvKSIgdGl0bGU9IjQyIChudW1lcm8pIOKAkyBJbnRlcmxpbmd1YSIgbGFuZz0iaWEiIGhyZWZsYW5nPSJpYSI+SW50ZXJsaW5ndWE8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1pdCI+PGEgaHJlZj0iLy9pdC53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG51bWVybykiIHRpdGxlPSI0MiAobnVtZXJvKSDigJMgSXRhbGlhbiIgbGFuZz0iaXQiIGhyZWZsYW5nPSJpdCI+SXRhbGlhbm88L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1oZSI+PGEgaHJlZj0iLy9oZS53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVENyU5RSVENyVBMSVENyVBNCVENyVBOCkiIHRpdGxlPSI0MiAo157Xodek16gpIOKAkyBIZWJyZXciIGxhbmc9ImhlIiBocmVmbGFuZz0iaGUiPtei15HXqNeZ16o8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1odCI+PGEgaHJlZj0iLy9odC53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG5vbm0pIiB0aXRsZT0iNDIgKG5vbm0pIOKAkyBIYWl0aWFuIiBsYW5nPSJodCIgaHJlZmxhbmc9Imh0Ij5LcmV5w7JsIGF5aXN5ZW48L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1sYmUiPjxhIGhyZWY9Ii8vbGJlLndpa2lwZWRpYS5vcmcvd2lraS8lRDAlOUMlRDElODMlRDAlQkElRDElOEMlRDElODYlRDMlODAlRDAlQjAlRDAlQkIlRDAlQkIlRDAlQjglRDAlQjlfJUQwJUJBJUQzJTgwJUQwJUI4JUQwJUIyJUQwJUIwIiB0aXRsZT0i0JzRg9C60YzRhtOA0LDQu9C70LjQuSDQutOA0LjQstCwIOKAkyDQu9Cw0LrQutGDIiBsYW5nPSJsYmUiIGhyZWZsYW5nPSJsYmUiPtCb0LDQutC60YM8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1sYSI+PGEgaHJlZj0iLy9sYS53aWtpcGVkaWEub3JnL3dpa2kvUXVhZHJhZ2ludGFfZXRfZHVvIiB0aXRsZT0iUXVhZHJhZ2ludGEgZXQgZHVvIOKAkyBMYXRpbiIgbGFuZz0ibGEiIGhyZWZsYW5nPSJsYSI+TGF0aW5hPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbHYiPjxhIGhyZWY9Ii8vbHYud2lraXBlZGlhLm9yZy93aWtpLzQyXyhza2FpdGxpcykiIHRpdGxlPSI0MiAoc2thaXRsaXMpIOKAkyBMYXR2aWFuIiBsYW5nPSJsdiIgaHJlZmxhbmc9Imx2Ij5MYXR2aWXFoXU8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1sdCI+PGEgaHJlZj0iLy9sdC53aWtpcGVkaWEub3JnL3dpa2kvNDJfKHNrYWklQzQlOERpdXMpIiB0aXRsZT0iNDIgKHNrYWnEjWl1cykg4oCTIExpdGh1YW5pYW4iIGxhbmc9Imx0IiBocmVmbGFuZz0ibHQiPkxpZXR1dmnFszwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWxnIj48YSBocmVmPSIvL2xnLndpa2lwZWRpYS5vcmcvd2lraS9BbWFrdW1pX2FuYV9tdV9iYmlyaSIgdGl0bGU9IkFtYWt1bWkgYW5hIG11IGJiaXJpIOKAkyBHYW5kYSIgbGFuZz0ibGciIGhyZWZsYW5nPSJsZyI+THVnYW5kYTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLWh1Ij48YSBocmVmPSIvL2h1Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8oc3olQzMlQTFtKSIgdGl0bGU9IjQyIChzesOhbSkg4oCTIEh1bmdhcmlhbiIgbGFuZz0iaHUiIGhyZWZsYW5nPSJodSI+TWFneWFyPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbWsiPjxhIGhyZWY9Ii8vbWsud2lraXBlZGlhLm9yZy93aWtpLzQyXyglRDAlQjElRDElODAlRDAlQkUlRDElOTgpIiB0aXRsZT0iNDIgKNCx0YDQvtGYKSDigJMgTWFjZWRvbmlhbiIgbGFuZz0ibWsiIGhyZWZsYW5nPSJtayI+0JzQsNC60LXQtNC+0L3RgdC60Lg8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1tcyI+PGEgaHJlZj0iLy9tcy53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG5vbWJvcikiIHRpdGxlPSI0MiAobm9tYm9yKSDigJMgTWFsYXkiIGxhbmc9Im1zIiBocmVmbGFuZz0ibXMiPkJhaGFzYSBNZWxheXU8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1uYWgiPjxhIGhyZWY9Ii8vbmFoLndpa2lwZWRpYS5vcmcvd2lraS8lQzUlOENtcCVDNSU4RGh1YWxvbSVDNSU4RG1lIiB0aXRsZT0ixYxtcMWNaHVhbG9txY1tZSDigJMgTmFodWF0bCIgbGFuZz0ibmFoIiBocmVmbGFuZz0ibmFoIj5OxIFodWF0bDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLW5sIj48YSBocmVmPSIvL25sLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oZ2V0YWwpIiB0aXRsZT0iNDIgKGdldGFsKSDigJMgRHV0Y2giIGxhbmc9Im5sIiBocmVmbGFuZz0ibmwiPk5lZGVybGFuZHM8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1qYSI+PGEgaHJlZj0iLy9qYS53aWtpcGVkaWEub3JnL3dpa2kvNDIiIHRpdGxlPSI0MiDigJMgSmFwYW5lc2UiIGxhbmc9ImphIiBocmVmbGFuZz0iamEiPuaXpeacrOiqnjwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLW5hcCI+PGEgaHJlZj0iLy9uYXAud2lraXBlZGlhLm9yZy93aWtpL1F1YXJhbnRhZCVDMyVCMmplIiB0aXRsZT0iUXVhcmFudGFkw7JqZSDigJMgTmVhcG9saXRhbiIgbGFuZz0ibmFwIiBocmVmbGFuZz0ibmFwIj5OYXB1bGl0YW5vPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbm8iPjxhIGhyZWY9Ii8vbm8ud2lraXBlZGlhLm9yZy93aWtpLzQyXyh0YWxsKSIgdGl0bGU9IjQyICh0YWxsKSDigJMgTm9yd2VnaWFuIChib2ttw6VsKSIgbGFuZz0ibm8iIGhyZWZsYW5nPSJubyI+Tm9yc2sgYm9rbcOlbDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLW5uIj48YSBocmVmPSIvL25uLndpa2lwZWRpYS5vcmcvd2lraS9UYWxldF80MiIgdGl0bGU9IlRhbGV0IDQyIOKAkyBOb3J3ZWdpYW4gTnlub3JzayIgbGFuZz0ibm4iIGhyZWZsYW5nPSJubiI+Tm9yc2sgbnlub3JzazwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXV6Ij48YSBocmVmPSIvL3V6Lndpa2lwZWRpYS5vcmcvd2lraS80Ml8oc29uKSIgdGl0bGU9IjQyIChzb24pIOKAkyBVemJlayIgbGFuZz0idXoiIGhyZWZsYW5nPSJ1eiI+T8q7emJla2NoYTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXBuYiI+PGEgaHJlZj0iLy9wbmIud2lraXBlZGlhLm9yZy93aWtpLzQyIiB0aXRsZT0iNDIg4oCTIFdlc3Rlcm4gUHVuamFiaSIgbGFuZz0icG5iIiBocmVmbGFuZz0icG5iIj7ZvtmG2KzYp9io24w8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1wbCI+PGEgaHJlZj0iLy9wbC53aWtpcGVkaWEub3JnL3dpa2kvNDJfKGxpY3piYSkiIHRpdGxlPSI0MiAobGljemJhKSDigJMgUG9saXNoIiBsYW5nPSJwbCIgaHJlZmxhbmc9InBsIj5Qb2xza2k8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1wdCI+PGEgaHJlZj0iLy9wdC53aWtpcGVkaWEub3JnL3dpa2kvUXVhcmVudGFfZV9kb2lzIiB0aXRsZT0iUXVhcmVudGEgZSBkb2lzIOKAkyBQb3J0dWd1ZXNlIiBsYW5nPSJwdCIgaHJlZmxhbmc9InB0Ij5Qb3J0dWd1w6pzPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktcm8iPjxhIGhyZWY9Ii8vcm8ud2lraXBlZGlhLm9yZy93aWtpLzQyXyhudW0lQzQlODNyKSIgdGl0bGU9IjQyIChudW3Eg3IpIOKAkyBSb21hbmlhbiIgbGFuZz0icm8iIGhyZWZsYW5nPSJybyI+Um9tw6JuxIM8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1ydSI+PGEgaHJlZj0iLy9ydS53aWtpcGVkaWEub3JnL3dpa2kvNDJfKCVEMSU4NyVEMCVCOCVEMSU4MSVEMCVCQiVEMCVCRSkiIHRpdGxlPSI0MiAo0YfQuNGB0LvQvikg4oCTIFJ1c3NpYW4iIGxhbmc9InJ1IiBocmVmbGFuZz0icnUiPtCg0YPRgdGB0LrQuNC5PC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktbnNvIj48YSBocmVmPSIvL25zby53aWtpcGVkaWEub3JnL3dpa2kvNDJfKG5vbW9ybykiIHRpdGxlPSI0MiAobm9tb3JvKSDigJMgTm9ydGhlcm4gU290aG8iIGxhbmc9Im5zbyIgaHJlZmxhbmc9Im5zbyI+U2Vzb3RobyBzYSBMZWJvYTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXNpbXBsZSI+PGEgaHJlZj0iLy9zaW1wbGUud2lraXBlZGlhLm9yZy93aWtpLzQyXyhudW1iZXIpIiB0aXRsZT0iNDIgKG51bWJlcikg4oCTIFNpbXBsZSBFbmdsaXNoIiBsYW5nPSJzaW1wbGUiIGhyZWZsYW5nPSJzaW1wbGUiPlNpbXBsZSBFbmdsaXNoPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktc2siPjxhIGhyZWY9Ii8vc2sud2lraXBlZGlhLm9yZy93aWtpLzQyXyglQzQlOEQlQzMlQURzbG8pIiB0aXRsZT0iNDIgKMSNw61zbG8pIOKAkyBTbG92YWsiIGxhbmc9InNrIiBocmVmbGFuZz0ic2siPlNsb3ZlbsSNaW5hPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktc2wiPjxhIGhyZWY9Ii8vc2wud2lraXBlZGlhLm9yZy93aWtpLzQyXyglQzUlQTF0ZXZpbG8pIiB0aXRsZT0iNDIgKMWhdGV2aWxvKSDigJMgU2xvdmVuaWFuIiBsYW5nPSJzbCIgaHJlZmxhbmc9InNsIj5TbG92ZW7FocSNaW5hPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktc3JuIj48YSBocmVmPSIvL3Nybi53aWtpcGVkaWEub3JnL3dpa2kvTnVtcm9fNDIiIHRpdGxlPSJOdW1ybyA0MiDigJMgU3JhbmFuIFRvbmdvIiBsYW5nPSJzcm4iIGhyZWZsYW5nPSJzcm4iPlNyYW5hbnRvbmdvPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktc3IiPjxhIGhyZWY9Ii8vc3Iud2lraXBlZGlhLm9yZy93aWtpLzQyXyglRDAlQjElRDElODAlRDAlQkUlRDElOTgpIiB0aXRsZT0iNDIgKNCx0YDQvtGYKSDigJMgU2VyYmlhbiIgbGFuZz0ic3IiIGhyZWZsYW5nPSJzciI+0KHRgNC/0YHQutC4IC8gc3Jwc2tpPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktZmkiPjxhIGhyZWY9Ii8vZmkud2lraXBlZGlhLm9yZy93aWtpLzQyXyhsdWt1KSIgdGl0bGU9IjQyIChsdWt1KSDigJMgRmlubmlzaCIgbGFuZz0iZmkiIGhyZWZsYW5nPSJmaSI+U3VvbWk8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS1zdiI+PGEgaHJlZj0iLy9zdi53aWtpcGVkaWEub3JnL3dpa2kvNDJfKHRhbCkiIHRpdGxlPSI0MiAodGFsKSDigJMgU3dlZGlzaCIgbGFuZz0ic3YiIGhyZWZsYW5nPSJzdiI+U3ZlbnNrYTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXRlIj48YSBocmVmPSIvL3RlLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUUwJUIwJUI4JUUwJUIwJTgyJUUwJUIwJTk2JUUwJUIxJThEJUUwJUIwJUFGKSIgdGl0bGU9IjQyICjgsLjgsILgsJbgsY3gsK8pIOKAkyBUZWx1Z3UiIGxhbmc9InRlIiBocmVmbGFuZz0idGUiPuCwpOCxhuCwsuCxgeCwl+CxgTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXRoIj48YSBocmVmPSIvL3RoLndpa2lwZWRpYS5vcmcvd2lraS80MiIgdGl0bGU9IjQyIOKAkyBUaGFpIiBsYW5nPSJ0aCIgaHJlZmxhbmc9InRoIj7guYTguJfguKI8L2E+PC9saT4KKzxsaSBjbGFzcz0iaW50ZXJsYW5ndWFnZS1saW5rIGludGVyd2lraS10ciI+PGEgaHJlZj0iLy90ci53aWtpcGVkaWEub3JnL3dpa2kvNDJfKHNheSVDNCVCMSkiIHRpdGxlPSI0MiAoc2F5xLEpIOKAkyBUdXJraXNoIiBsYW5nPSJ0ciIgaHJlZmxhbmc9InRyIj5Uw7xya8OnZTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXVrIj48YSBocmVmPSIvL3VrLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUQxJTg3JUQwJUI4JUQxJTgxJUQwJUJCJUQwJUJFKSIgdGl0bGU9IjQyICjRh9C40YHQu9C+KSDigJMgVWtyYWluaWFuIiBsYW5nPSJ1ayIgaHJlZmxhbmc9InVrIj7Qo9C60YDQsNGX0L3RgdGM0LrQsDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXphIj48YSBocmVmPSIvL3phLndpa2lwZWRpYS5vcmcvd2lraS9TZWlxX2NpYl9uZ2VpaCIgdGl0bGU9IlNlaXEgY2liIG5nZWloIOKAkyBaaHVhbmciIGxhbmc9InphIiBocmVmbGFuZz0iemEiPlZhaGN1ZW5naDwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXZpIj48YSBocmVmPSIvL3ZpLndpa2lwZWRpYS5vcmcvd2lraS80Ml8ocyVFMSVCQiU5MSkiIHRpdGxlPSI0MiAoc+G7kSkg4oCTIFZpZXRuYW1lc2UiIGxhbmc9InZpIiBocmVmbGFuZz0idmkiPlRp4bq/bmcgVmnhu4d0PC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktdmxzIj48YSBocmVmPSIvL3Zscy53aWtpcGVkaWEub3JnL3dpa2kvNDJfKGdldGFsKSIgdGl0bGU9IjQyIChnZXRhbCkg4oCTIFdlc3QtVmxhbXMiIGxhbmc9InZscyIgaHJlZmxhbmc9InZscyI+V2VzdC1WbGFtczwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXdhciI+PGEgaHJlZj0iLy93YXIud2lraXBlZGlhLm9yZy93aWtpLzQyXyhpaGFwKSIgdGl0bGU9IjQyIChpaGFwKSDigJMgV2FyYXkiIGxhbmc9IndhciIgaHJlZmxhbmc9IndhciI+V2luYXJheTwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXlpIj48YSBocmVmPSIvL3lpLndpa2lwZWRpYS5vcmcvd2lraS80Ml8oJUQ3JUEwJUQ3JTk1JUQ3JTlFJUQ3JUEyJUQ3JUE4KSIgdGl0bGU9IjQyICjXoNeV157XoteoKSDigJMgWWlkZGlzaCIgbGFuZz0ieWkiIGhyZWZsYW5nPSJ5aSI+15nXmda015PXmdepPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImludGVybGFuZ3VhZ2UtbGluayBpbnRlcndpa2ktemgteXVlIj48YSBocmVmPSIvL3poLXl1ZS53aWtpcGVkaWEub3JnL3dpa2kvNDIiIHRpdGxlPSI0MiDigJMgQ2FudG9uZXNlIiBsYW5nPSJ6aC15dWUiIGhyZWZsYW5nPSJ6aC15dWUiPueyteiqnjwvYT48L2xpPgorPGxpIGNsYXNzPSJpbnRlcmxhbmd1YWdlLWxpbmsgaW50ZXJ3aWtpLXpoIj48YSBocmVmPSIvL3poLndpa2lwZWRpYS5vcmcvd2lraS80MiIgdGl0bGU9IjQyIOKAkyBDaGluZXNlIiBsYW5nPSJ6aCIgaHJlZmxhbmc9InpoIj7kuK3mloc8L2E+PC9saT4KKzxsaSBjbGFzcz0id2JjLWVkaXRwYWdlIj48YSBocmVmPSIvL3d3dy53aWtpZGF0YS5vcmcvd2lraS9RODEyOTk2I3NpdGVsaW5rcy13aWtpcGVkaWEiIHRpdGxlPSJFZGl0IGludGVybGFuZ3VhZ2UgbGlua3MiPkVkaXQgbGlua3M8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImZvb3RlciIgcm9sZT0iY29udGVudGluZm8iPgorPHVsIGlkPSJmb290ZXItaW5mbyI+Cis8bGkgaWQ9ImZvb3Rlci1pbmZvLWxhc3Rtb2QiPiBUaGlzIHBhZ2Ugd2FzIGxhc3QgbW9kaWZpZWQgb24gMjggSmFudWFyeSAyMDE0IGF0IDEyOjAzLjxiciAvPjwvbGk+Cis8bGkgaWQ9ImZvb3Rlci1pbmZvLWNvcHlyaWdodCI+VGV4dCBpcyBhdmFpbGFibGUgdW5kZXIgdGhlIDxhIHJlbD0ibGljZW5zZSIgaHJlZj0iLy9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2lraXBlZGlhOlRleHRfb2ZfQ3JlYXRpdmVfQ29tbW9uc19BdHRyaWJ1dGlvbi1TaGFyZUFsaWtlXzMuMF9VbnBvcnRlZF9MaWNlbnNlIj5DcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgTGljZW5zZTwvYT48YSByZWw9ImxpY2Vuc2UiIGhyZWY9Ii8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8zLjAvIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9hPjsKK2FkZGl0aW9uYWwgdGVybXMgbWF5IGFwcGx5LiAgQnkgdXNpbmcgdGhpcyBzaXRlLCB5b3UgYWdyZWUgdG8gdGhlIDxhIGhyZWY9Ii8vd2lraW1lZGlhZm91bmRhdGlvbi5vcmcvd2lraS9UZXJtc19vZl9Vc2UiPlRlcm1zIG9mIFVzZTwvYT4gYW5kIDxhIGhyZWY9Ii8vd2lraW1lZGlhZm91bmRhdGlvbi5vcmcvd2lraS9Qcml2YWN5X3BvbGljeSI+UHJpdmFjeSBQb2xpY3kuPC9hPiA8YnIvPgorV2lraXBlZGlhwq4gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiB0aGUgPGEgaHJlZj0iLy93d3cud2lraW1lZGlhZm91bmRhdGlvbi5vcmcvIj5XaWtpbWVkaWEgRm91bmRhdGlvbiwgSW5jLjwvYT4sIGEgbm9uLXByb2ZpdCBvcmdhbml6YXRpb24uPC9saT4KKzwvdWw+Cis8dWwgaWQ9ImZvb3Rlci1wbGFjZXMiPgorPGxpIGlkPSJmb290ZXItcGxhY2VzLXByaXZhY3kiPjxhIGhyZWY9Ii8vd2lraW1lZGlhZm91bmRhdGlvbi5vcmcvd2lraS9Qcml2YWN5X3BvbGljeSIgdGl0bGU9Indpa2ltZWRpYTpQcml2YWN5IHBvbGljeSI+UHJpdmFjeSBwb2xpY3k8L2E+PC9saT4KKzxsaSBpZD0iZm9vdGVyLXBsYWNlcy1hYm91dCI+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOkFib3V0IiB0aXRsZT0iV2lraXBlZGlhOkFib3V0Ij5BYm91dCBXaWtpcGVkaWE8L2E+PC9saT4KKzxsaSBpZD0iZm9vdGVyLXBsYWNlcy1kaXNjbGFpbWVyIj48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6R2VuZXJhbF9kaXNjbGFpbWVyIiB0aXRsZT0iV2lraXBlZGlhOkdlbmVyYWwgZGlzY2xhaW1lciI+RGlzY2xhaW1lcnM8L2E+PC9saT4KKzxsaSBpZD0iZm9vdGVyLXBsYWNlcy1jb250YWN0Ij48YSBocmVmPSIvL2VuLndpa2lwZWRpYS5vcmcvd2lraS9XaWtpcGVkaWE6Q29udGFjdF91cyI+Q29udGFjdCBXaWtpcGVkaWE8L2E+PC9saT4KKzxsaSBpZD0iZm9vdGVyLXBsYWNlcy1kZXZlbG9wZXJzIj48YSBjbGFzcz0iZXh0ZXJuYWwiIGhyZWY9Imh0dHBzOi8vd3d3Lm1lZGlhd2lraS5vcmcvd2lraS9TcGVjaWFsOk15TGFuZ3VhZ2UvSG93X3RvX2NvbnRyaWJ1dGUiPkRldmVsb3BlcnM8L2E+PC9saT4KKzxsaSBpZD0iZm9vdGVyLXBsYWNlcy1tb2JpbGV2aWV3Ij48YSBocmVmPSIvL2VuLm0ud2lraXBlZGlhLm9yZy93aWtpLzQyXyhudW1iZXIpIiBjbGFzcz0ibm9wcmludCBzdG9wTW9iaWxlUmVkaXJlY3RUb2dnbGUiPk1vYmlsZSB2aWV3PC9hPjwvbGk+Cis8L3VsPgorPHVsIGlkPSJmb290ZXItaWNvbnMiIGNsYXNzPSJub3ByaW50Ij4KKzxsaSBpZD0iZm9vdGVyLWNvcHlyaWdodGljbyI+Cis8YSBocmVmPSIvL3dpa2ltZWRpYWZvdW5kYXRpb24ub3JnLyI+PGltZyBzcmM9Ii8vYml0cy53aWtpbWVkaWEub3JnL2ltYWdlcy93aWtpbWVkaWEtYnV0dG9uLnBuZyIgd2lkdGg9Ijg4IiBoZWlnaHQ9IjMxIiBhbHQ9Ildpa2ltZWRpYSBGb3VuZGF0aW9uIi8+PC9hPgorPC9saT4KKzxsaSBpZD0iZm9vdGVyLXBvd2VyZWRieWljbyI+Cis8YSBocmVmPSIvL3d3dy5tZWRpYXdpa2kub3JnLyI+PGltZyBzcmM9Ii8vYml0cy53aWtpbWVkaWEub3JnL3N0YXRpYy0xLjIzd21mMTAvc2tpbnMvY29tbW9uL2ltYWdlcy9wb3dlcmVkYnlfbWVkaWF3aWtpXzg4eDMxLnBuZyIgYWx0PSJQb3dlcmVkIGJ5IE1lZGlhV2lraSIgd2lkdGg9Ijg4IiBoZWlnaHQ9IjMxIiAvPjwvYT4KKzwvbGk+Cis8L3VsPgorPGRpdiBzdHlsZT0iY2xlYXI6Ym90aCI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Lyo8IVtDREFUQVsqL3dpbmRvdy5qUXVlcnkgJiYgalF1ZXJ5LnJlYWR5KCk7LypdXT4qLzwvc2NyaXB0PjxzY3JpcHQ+aWYod2luZG93Lm13KXsKK213LmxvYWRlci5zdGF0ZSh7InNpdGUiOiJsb2FkaW5nIiwidXNlciI6InJlYWR5IiwidXNlci5ncm91cHMiOiJyZWFkeSJ9KTsKK308L3NjcmlwdD4KKzxzY3JpcHQ+aWYod2luZG93Lm13KXsKK213LmxvYWRlci5sb2FkKFsiZXh0LmNpdGUiLCJtb2JpbGUuZGVza3RvcCIsIm1lZGlhd2lraS5hY3Rpb24udmlldy5wb3N0RWRpdCIsIm1lZGlhd2lraS51c2VyIiwibWVkaWF3aWtpLmhpZHBpIiwibWVkaWF3aWtpLnBhZ2UucmVhZHkiLCJtZWRpYXdpa2kuc2VhcmNoU3VnZ2VzdCIsImV4dC5nYWRnZXQudGVhaG91c2UiLCJleHQuZ2FkZ2V0LlJlZmVyZW5jZVRvb2x0aXBzIiwiZXh0LmdhZGdldC5EUk4td2l6YXJkIiwiZXh0LmdhZGdldC5jaGFyaW5zZXJ0IiwibXcuTXdFbWJlZFN1cHBvcnQuc3R5bGUiLCJleHQuYXJ0aWNsZUZlZWRiYWNrdjUuc3RhcnR1cCIsImV4dC53aWtpbWVkaWFTaG9wTGluay5jb3JlIiwiZXh0Lm5hdmlnYXRpb25UaW1pbmciLCJleHQuZmxhZ2dlZFJldnMuYWR2YW5jZWQiLCJza2lucy52ZWN0b3IuY29sbGFwc2libGVOYXYiXSxudWxsLHRydWUpOworfTwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii8vYml0cy53aWtpbWVkaWEub3JnL2VuLndpa2lwZWRpYS5vcmcvbG9hZC5waHA/ZGVidWc9ZmFsc2UmYW1wO2xhbmc9ZW4mYW1wO21vZHVsZXM9c2l0ZSZhbXA7b25seT1zY3JpcHRzJmFtcDtza2luPXZlY3RvciZhbXA7KiI+PC9zY3JpcHQ+Cis8IS0tIFNlcnZlZCBieSBtdzExMDMgaW4gMC4zMjMgc2Vjcy4gLS0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2ltcGxlX2FwaV9wYXJzaW5nL2xoYy9leHBlY3RlZC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZy9saGMvZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWZlMzZiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZy9saGMvZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUzNyBAQAorCis8IURPQ1RZUEUgaHRtbD4KKzwhLS1baWYgSUVNb2JpbGUgN10+PGh0bWwgY2xhc3M9ImllbTciICBsYW5nPSJlbiIgZGlyPSJsdHIiPjwhW2VuZGlmXS0tPgorPCEtLVtpZiBsdGUgSUUgNl0+PGh0bWwgY2xhc3M9ImllNiBpZTYtNyBpZTYtOCIgIGxhbmc9ImVuIiBkaXI9Imx0ciI+PCFbZW5kaWZdLS0+Cis8IS0tW2lmIChJRSA3KSYoIUlFTW9iaWxlKV0+PGh0bWwgY2xhc3M9ImllNyBpZTYtNyBpZTYtOCIgIGxhbmc9ImVuIiBkaXI9Imx0ciI+PCFbZW5kaWZdLS0+Cis8IS0tW2lmIElFIDhdPjxodG1sIGNsYXNzPSJpZTggaWU2LTgiICBsYW5nPSJlbiIgZGlyPSJsdHIiPjwhW2VuZGlmXS0tPgorPCEtLVtpZiAoZ3RlIElFIDkpfChndCBJRU1vYmlsZSA3KV0+PCEtLT48aHRtbCAgbGFuZz0iZW4iIGRpcj0ibHRyIgorICB4bWxuczpjb250ZW50PSJodHRwOi8vcHVybC5vcmcvcnNzLzEuMC9tb2R1bGVzL2NvbnRlbnQvIgorICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyIKKyAgeG1sbnM6Zm9hZj0iaHR0cDovL3htbG5zLmNvbS9mb2FmLzAuMS8iCisgIHhtbG5zOm9nPSJodHRwOi8vb2dwLm1lL25zIyIKKyAgeG1sbnM6cmRmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIyIKKyAgeG1sbnM6c2lvYz0iaHR0cDovL3JkZnMub3JnL3Npb2MvbnMjIgorICB4bWxuczpzaW9jdD0iaHR0cDovL3JkZnMub3JnL3Npb2MvdHlwZXMjIgorICB4bWxuczpza29zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA0LzAyL3Nrb3MvY29yZSMiCisgIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjIj48IS0tPCFbZW5kaWZdLS0+CisKKzxoZWFkIHByb2ZpbGU9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwvdm9jYWIiPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KKzxsaW5rIHJlbD0ic2hvcnRsaW5rIiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9ub2RlLzM4OTYwIiAvPgorPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL3RoZW1lcy9jZXJuX3B1YmxpYy9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uIiAvPgorPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3RvcGljcy9sYXJnZS1oYWRyb24tY29sbGlkZXIiIC8+Cis8bWV0YSBuYW1lPSJjb3B5cmlnaHQiIGNvbnRlbnQ9Imh0dHA6Ly9jZXJuLmNoL2NvcHlyaWdodCIgLz4KKzxtZXRhIGNvbnRlbnQ9IlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIiIGFib3V0PSIvdG9waWNzL2xhcmdlLWhhZHJvbi1jb2xsaWRlciIgcHJvcGVydHk9ImRjOnRpdGxlIiAvPgorPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgKExIQykgaXMgdGhlIHdvcmxk4oCZcyBsYXJnZXN0IGFuZCBtb3N0IHBvd2VyZnVsIHBhcnRpY2xlIGFjY2VsZXJhdG9yLiBJdCBmaXJzdCBzdGFydGVkIHVwIG9uIDEwIFNlcHRlbWJlciAyMDA4LCBhbmQgcmVtYWlucyB0aGUgbGF0ZXN0IGFkZGl0aW9uIHRvIENFUk7igJlzIGFjY2VsZXJhdG9yIGNvbXBsZXguIFRoZSBMSEMgY29uc2lzdHMgb2YgYSAyNy1raWxvbWV0cmUgcmluZyBvZiBzdXBlcmNvbmR1Y3RpbmcgbWFnbmV0cyB3aXRoIGEgbnVtYmVyIG9mIGFjY2VsZXJhdGluZyBzdHJ1Y3R1cmVzIHRvIGJvb3N0IHRoZSBlbmVyZ3kgb2YgdGhlIHBhcnRpY2xlcyBhbG9uZyB0aGUgd2F5LiIgLz4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRHJ1cGFsIDcgKGh0dHA6Ly9kcnVwYWwub3JnKSIgLz4KKyAgPHRpdGxlPlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgfCBDRVJOPC90aXRsZT4KKworICA8bWV0YSBuYW1lPSJNb2JpbGVPcHRpbWl6ZWQiIGNvbnRlbnQ9IndpZHRoIj4KKyAgPG1ldGEgbmFtZT0iSGFuZGhlbGRGcmllbmRseSIgY29udGVudD0idHJ1ZSI+CisgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+CisgIDxtZXRhIGh0dHAtZXF1aXY9ImNsZWFydHlwZSIgY29udGVudD0ib24iPgorICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiPgorCisgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtaW5pbXVtLXNjYWxlPTEuMCIgLz4KKworICA8IS0tW2lmIChsdCBJRSA5KSAmICghSUVNb2JpbGUpXT4KKyAgICA8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9odG1sNS1zaGl2LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+CisgIDwhW2VuZGlmXS0tPgorCisgIDwhLS0gVHlwZSBmcm9tIEdvb2dsZSBGb250cyAtLT4KKyAgPCEtLTxsaW5rIGhyZWY9Jy8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1QVCtTYW5zOjQwMCw0MDBpdGFsaWMsNzAwJyByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJyAvPiAtLT4KKworICA8IS0tIFR5cGUgZnJvbSBDRVJOIEZyYW1ld29yayAtLT4KKyAgPCEtLTxsaW5rIGhyZWY9Jy8vZnJhbWV3b3JrLndlYi5jZXJuLmNoL2ZyYW1ld29yay8yLjAvZm9udHMvUFRTYW5zV2ViL1BUU2Fuc1dlYi5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+IC0tPgorCisgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19BaFpiOS0temNqVlRWZVc2Q1pRY05la2hnUjhqNmZienlZUDAwRmRhQ1J3LmNzcyIgbWVkaWE9ImFsbCIgLz4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19MSkRaRjVqR084d05Ta3ZKVDl2ak5wdUFWcjJHQzFKSUNVdjllVEtvOS1ZLmNzcyIgbWVkaWE9ImFsbCIgLz4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19lSnlsQ05rX3hYeXJzSFU2aFFiZE9OMzg3LW9tWDJGQW8yNV9YZlVsV3FrLmNzcyIgbWVkaWE9ImFsbCIgLz4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9mcmFtZXdvcmsud2ViLmNlcm4uY2gvZnJhbWV3b3JrLzIuMC9mb250cy9QVFNhbnNXZWIvUFRTYW5zV2ViLmNzcyIgbWVkaWE9ImFsbCIgLz4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19TTUdzV3NHdHlfU2w1ZG1NeE1IQ25ocFVrNm00aUtILUdJczR6dkswb1ZZLmNzcyIgbWVkaWE9ImFsbCIgLz4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19YeDctWkxIdzZhSEM0ODd4VHpfczdTYlhhbGlZVTI0RE40OENCSjd3c2NrLmNzcyIgbWVkaWE9ImFsbCIgLz4KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvY3NzL2Nzc19lME9pOEkxTDhjR0o3S3hjVWJpbUxrTy1pdmxQRG9aWHVCWk1XS0F6NUdZLmNzcyIgbWVkaWE9InByaW50IiAvPgorCis8IS0tW2lmIGx0IElFIDhdPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX0lKNVowajZweXhucjRURW1PMGhpWFdyaDhGTXBUNmFxX2hXbjFMcFJOT1kuY3NzIiBtZWRpYT0iYWxsIiAvPgorPCFbZW5kaWZdLS0+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfeEFQbDBxSWs5ZW93eV9pUzl0TmtDV1hMVVZvYXQ5NFNRVDQ4VUJDRmt5US5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2pzL2pzX05wWDJjd0NlZXBrV1paMTk0QjYtVml5VkJIbGVhWUxPeDVSOUVXQk9NUlUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9tb2R1bGVzL2xpZ2h0Ym94Mi9qcy9saWdodGJveC5qcz8xNDA4MzcxODQ1Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfaGFZTkdXeTZTQkZZWm4xbXNaVUR4a1FiWnFhamRBaTR3bVYwQW9adHRXRS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cis8IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCisoZnVuY3Rpb24oaSxzLG8sZyxyLGEsbSl7aVsiR29vZ2xlQW5hbHl0aWNzT2JqZWN0Il09cjtpW3JdPWlbcl18fGZ1bmN0aW9uKCl7KGlbcl0ucT1pW3JdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9LGlbcl0ubD0xKm5ldyBEYXRlKCk7YT1zLmNyZWF0ZUVsZW1lbnQobyksbT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKG8pWzBdO2EuYXN5bmM9MTthLnNyYz1nO20ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxtKX0pKHdpbmRvdyxkb2N1bWVudCwic2NyaXB0IiwiLy93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20vYW5hbHl0aWNzLmpzIiwiZ2EiKTtnYSgiY3JlYXRlIiwgIlVBLTgwNTgwNzktMjMiLCAiYXV0byIpO2dhKCJzZW5kIiwgInBhZ2V2aWV3Iik7CisvLy0tPjwhXV0+Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfWFA0bDRQRG1YSFE1MzM1N0ZxLUVRSHBhRE16NldDQXFmdHZRQU93dEZwZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cis8IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCitqUXVlcnkuZXh0ZW5kKERydXBhbC5zZXR0aW5ncywgeyJiYXNlUGF0aCI6IlwvIiwicGF0aFByZWZpeCI6IiIsImFqYXhQYWdlU3RhdGUiOnsidGhlbWUiOiJjZXJuX3B1YmxpYyIsInRoZW1lX3Rva2VuIjoicEp0WWZmamNZQkVISFNnejFNaTJfa0w4UjJYdG50NWJxQ0djUzV1dmNMdyIsImpzIjp7Im1pc2NcL2pxdWVyeS5qcyI6MSwibWlzY1wvanF1ZXJ5Lm9uY2UuanMiOjEsIm1pc2NcL2RydXBhbC5qcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvZXh0bGlua1wvZXh0bGluay5qcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2xpZ2h0Ym94MlwvanNcL2xpZ2h0Ym94LmpzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvY3VzdG9tX3NlYXJjaFwvanNcL2N1c3RvbV9zZWFyY2guanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9saW5raXRcL2VkaXRvcnNcL2NrZWRpdG9yXC9saW5raXREaWFsb2cuanMiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2dvb2dsZV9hbmFseXRpY3NcL2dvb2dsZWFuYWx5dGljcy5qcyI6MSwiMCI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9qc1wvY2Vybi5qcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9wdWJsaWNcL2pzXC9zY3JpcHQuanMiOjF9LCJjc3MiOnsibW9kdWxlc1wvc3lzdGVtXC9zeXN0ZW0uYmFzZS5jc3MiOjEsIm1vZHVsZXNcL3N5c3RlbVwvc3lzdGVtLm1lbnVzLmNzcyI6MSwibW9kdWxlc1wvc3lzdGVtXC9zeXN0ZW0ubWVzc2FnZXMuY3NzIjoxLCJtb2R1bGVzXC9zeXN0ZW1cL3N5c3RlbS50aGVtZS5jc3MiOjEsIm1vZHVsZXNcL2FnZ3JlZ2F0b3JcL2FnZ3JlZ2F0b3IuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9jZXJuc2VhcmNoYm94XC9jZXJuc2VhcmNoLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2Nlcm5fdG9vbGJhclwvY3NzXC9yZW1vdmVfZXh0LmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvZGF0ZVwvZGF0ZV9hcGlcL2RhdGUuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9kYXRlXC9kYXRlX3BvcHVwXC90aGVtZXNcL2RhdGVwaWNrZXIuMS43LmNzcyI6MSwibW9kdWxlc1wvZmllbGRcL3RoZW1lXC9maWVsZC5jc3MiOjEsIm1vZHVsZXNcL25vZGVcL25vZGUuY3NzIjoxLCJtb2R1bGVzXC9zZWFyY2hcL3NlYXJjaC5jc3MiOjEsIm1vZHVsZXNcL3VzZXJcL3VzZXIuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9leHRsaW5rXC9leHRsaW5rLmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvdmlld3NcL2Nzc1wvdmlld3MuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9ja2VkaXRvclwvY3NzXC9ja2VkaXRvci5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL3NoaWJfYXV0aFwvc2hpYl9hdXRoLmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvY3Rvb2xzXC9jc3NcL2N0b29scy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9saWdodGJveDJcL2Nzc1wvbGlnaHRib3guY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvY3VzdG9tX3NlYXJjaFwvY3VzdG9tX3NlYXJjaC5jc3MiOjEsImh0dHA6XC9cL2ZyYW1ld29yay53ZWIuY2Vybi5jaFwvZnJhbWV3b3JrXC8yLjBcL2ZvbnRzXC9QVFNhbnNXZWJcL1BUU2Fuc1dlYi5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9jZXJuX3Rvb2xiYXJcL2Nzc1wvc2NyZWVuLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9jc3NcL2Rpc2FibGVcL3N5c3RlbS5tZW51cy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9kaXNhYmxlXC9zeXN0ZW0ubWVzc2FnZXMuY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX2Jhc2VcL2Nzc1wvZGlzYWJsZVwvYWR2YW5jZWQtZm9ydW0uc2lsdmVyX2JlbGxzLmltYWdlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9kaXNhYmxlXC9hZHZhbmNlZC1mb3J1bS5zaWx2ZXJfYmVsbHMuc3R5bGUuY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX2Jhc2VcL2Nzc1wvYmFzZS5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9jc3NcL3B1YmxpYy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fcHVibGljXC9jc3NcL3ByaW50LmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2Nlcm5fdG9vbGJhclwvY3NzXC9pZS5jc3MiOjF9fSwibGlnaHRib3gyIjp7InJ0bCI6IjAiLCJmaWxlX3BhdGgiOiJcLyhcXHdcXHdcLylwdWJsaWM6XC8iLCJkZWZhdWx0X2ltYWdlIjoiXC9zaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvbGlnaHRib3gyXC9pbWFnZXNcL2Jyb2tlbmltYWdlLmpwZyIsImJvcmRlcl9zaXplIjoxMCwiZm9udF9jb2xvciI6IjAwMCIsImJveF9jb2xvciI6ImZmZiIsInRvcF9wb3NpdGlvbiI6IiIsIm92ZXJsYXlfb3BhY2l0eSI6IjAuOCIsIm92ZXJsYXlfY29sb3IiOiIwMDAiLCJkaXNhYmxlX2Nsb3NlX2NsaWNrIjoxLCJyZXNpemVfc2VxdWVuY2UiOjAsInJlc2l6ZV9zcGVlZCI6NDAwLCJmYWRlX2luX3NwZWVkIjo0MDAsInNsaWRlX2Rvd25fc3BlZWQiOjYwMCwidXNlX2FsdF9sYXlvdXQiOjAsImRpc2FibGVfcmVzaXplIjowLCJkaXNhYmxlX3pvb20iOjEsImZvcmNlX3Nob3dfbmF2IjowLCJzaG93X2NhcHRpb24iOjEsImxvb3BfaXRlbXMiOjAsIm5vZGVfbGlua190ZXh0IjoiVmlldyBJbWFnZSBEZXRhaWxzIiwibm9kZV9saW5rX3RhcmdldCI6MCwiaW1hZ2VfY291bnQiOiJJbWFnZSAhY3VycmVudCBvZiAhdG90YWwiLCJ2aWRlb19jb3VudCI6IlZpZGVvICFjdXJyZW50IG9mICF0b3RhbCIsInBhZ2VfY291bnQiOiJQYWdlICFjdXJyZW50IG9mICF0b3RhbCIsImxpdGVfcHJlc3NfeF9jbG9zZSI6InByZXNzIFx1MDAzQ2EgaHJlZj1cdTAwMjIjXHUwMDIyIG9uY2xpY2s9XHUwMDIyaGlkZUxpZ2h0Ym94KCk7IHJldHVybiBGQUxTRTtcdTAwMjJcdTAwM0VcdTAwM0NrYmRcdTAwM0V4XHUwMDNDXC9rYmRcdTAwM0VcdTAwM0NcL2FcdTAwM0UgdG8gY2xvc2UiLCJkb3dubG9hZF9saW5rX3RleHQiOiIiLCJlbmFibGVfbG9naW4iOmZhbHNlLCJlbmFibGVfY29udGFjdCI6ZmFsc2UsImtleXNfY2xvc2UiOiJjIHggMjciLCJrZXlzX3ByZXZpb3VzIjoicCAzNyIsImtleXNfbmV4dCI6Im4gMzkiLCJrZXlzX3pvb20iOiJ6Iiwia2V5c19wbGF5X3BhdXNlIjoiMzIiLCJkaXNwbGF5X2ltYWdlX3NpemUiOiJvcmlnaW5hbCIsImltYWdlX25vZGVfc2l6ZXMiOiIoKSIsInRyaWdnZXJfbGlnaHRib3hfY2xhc3NlcyI6IiIsInRyaWdnZXJfbGlnaHRib3hfZ3JvdXBfY2xhc3NlcyI6IiIsInRyaWdnZXJfc2xpZGVzaG93X2NsYXNzZXMiOiIiLCJ0cmlnZ2VyX2xpZ2h0ZnJhbWVfY2xhc3NlcyI6IiIsInRyaWdnZXJfbGlnaHRmcmFtZV9ncm91cF9jbGFzc2VzIjoiIiwiY3VzdG9tX2NsYXNzX2hhbmRsZXIiOjAsImN1c3RvbV90cmlnZ2VyX2NsYXNzZXMiOiIiLCJkaXNhYmxlX2Zvcl9nYWxsZXJ5X2xpc3RzIjp0cnVlLCJkaXNhYmxlX2Zvcl9hY2lkZnJlZV9nYWxsZXJ5X2xpc3RzIjp0cnVlLCJlbmFibGVfYWNpZGZyZWVfdmlkZW9zIjp0cnVlLCJzbGlkZXNob3dfaW50ZXJ2YWwiOjUwMDAsInNsaWRlc2hvd19hdXRvbWF0aWNfc3RhcnQiOnRydWUsInNsaWRlc2hvd19hdXRvbWF0aWNfZXhpdCI6dHJ1ZSwic2hvd19wbGF5X3BhdXNlIjp0cnVlLCJwYXVzZV9vbl9uZXh0X2NsaWNrIjpmYWxzZSwicGF1c2Vfb25fcHJldmlvdXNfY2xpY2siOnRydWUsImxvb3Bfc2xpZGVzIjpmYWxzZSwiaWZyYW1lX3dpZHRoIjo2MDAsImlmcmFtZV9oZWlnaHQiOjQwMCwiaWZyYW1lX2JvcmRlciI6MSwiZW5hYmxlX3ZpZGVvIjowfSwiY3VzdG9tX3NlYXJjaCI6eyJmb3JtX3RhcmdldCI6Il9zZWxmIiwic29sciI6MH0sImV4dGxpbmsiOnsiZXh0VGFyZ2V0IjowLCJleHRDbGFzcyI6ImV4dCIsImV4dExhYmVsIjoiKGxpbmsgaXMgZXh0ZXJuYWwpIiwiZXh0SW1nQ2xhc3MiOjAsImV4dFN1YmRvbWFpbnMiOjEsImV4dEV4Y2x1ZGUiOiJeQ29sbGxpZGVAQ0VSTiR8KGNlcm4uc2VydmljZS1ub3dcXC5jb20pIiwiZXh0SW5jbHVkZSI6IiIsImV4dENzc0V4Y2x1ZGUiOiIiLCJleHRDc3NFeHBsaWNpdCI6IiIsImV4dEFsZXJ0IjowLCJleHRBbGVydFRleHQiOiJUaGlzIGxpbmsgd2lsbCB0YWtlIHlvdSB0byBhbiBleHRlcm5hbCB3ZWIgc2l0ZS4gV2UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgdGhlaXIgY29udGVudC4iLCJtYWlsdG9DbGFzcyI6Im1haWx0byIsIm1haWx0b0xhYmVsIjoiKGxpbmsgc2VuZHMgZS1tYWlsKSJ9LCJnb29nbGVhbmFseXRpY3MiOnsidHJhY2tPdXRib3VuZCI6MSwidHJhY2tNYWlsdG8iOjEsInRyYWNrRG93bmxvYWQiOjEsInRyYWNrRG93bmxvYWRFeHRlbnNpb25zIjoiN3p8YWFjfGFyY3xhcmp8YXNmfGFzeHxhdml8YmlufGNzdnxkb2N8ZXhlfGZsdnxnaWZ8Z3p8Z3ppcHxocXh8amFyfGpwZT9nfGpzfG1wKDJ8M3w0fGU/Zyl8bW92KGllKT98bXNpfG1zcHxwZGZ8cGhwc3xwbmd8cHB0fHF0bT98cmEobXxyKT98c2VhfHNpdHx0YXJ8dGd6fHRvcnJlbnR8dHh0fHdhdnx3bWF8d212fHdwZHx4bHN8eG1sfHp8emlwIn19KTsKKy8vLS0+PCFdXT4KKzwvc2NyaXB0PgorCis8L2hlYWQ+CisKKzxib2R5IGlkPSJwYWdlLXRvcGljcy1sYXJnZS1oYWRyb24tY29sbGlkZXIiIGNsYXNzPSJzZWN0aW9uLXRvcGljcyBzZWN0aW9uLXRvcGljcy1sYXJnZS1oYWRyb24tY29sbGlkZXIgaGlnaHdvbmRlciIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9pbWFnZS90b3BpYy1zdHViL2hpZ2h3b25kZXItYmcvdG9waWMtbGhjLmpwZycpOyI+CisgICAgPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1wYWdlLXRvcCI+CisgICAgCisKKzxkaXYgaWQ9ImNlcm4tdG9vbGJhciIgY2xhc3M9InVzZXItbm90LWF1dGhlbnRpY2F0ZWQiPgorICA8aDE+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2giIHRpdGxlPSJDRVJOIj5DRVJOIDxzcGFuPkFjY2VsZXJhdGluZyBzY2llbmNlPC9zcGFuPjwvYT48L2gxPjx1bD48bGkgY2xhc3M9ImNlcm4tYWNjb3VudGxpIj48YSBocmVmPSJodHRwczovL2hvbWUud2ViLmNlcm4uY2gvU2hpYmJvbGV0aC5zc28vP3RhcmdldD1odHRwcyUzQSUyRiUyRmhvbWUud2ViLmNlcm4uY2glMkZzaGliX2xvZ2luJTJGbm9kZSUyRjM4OTYwIiB0aXRsZT0iU2lnbiBpbiB0byB5b3VyIENFUk4gYWNjb3VudCIgY2xhc3M9ImNlcm4tYWNjb3VudCI+U2lnbiBpbjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9kaXJlY3RvcnkiIHRpdGxlPSJTZWFyY2ggQ0VSTiByZXNvdXJjZXMgYW5kIGJyb3dzZSB0aGUgZGlyZWN0b3J5IiBjbGFzcz0iY2Vybi1kaXJlY3RvcnkiPkRpcmVjdG9yeTwvYT48L2xpPjwvdWw+PC9kaXY+CisgIDwvZGl2PjwhLS0gLy5yZWdpb24gLS0+CisgIDwhLS0gcGFnZS50cGwgZnJvbSBjZXJuX3B1YmxpYyBiZWdpbnMgLS0+CisKKworPGhlYWRlciBpZD0iaGVhZGVyIiByb2xlPSJiYW5uZXIiPgorCisgIDxoMSBpZD0iY2Vybi1sb2dvIj48YSBocmVmPSIvIiB0aXRsZT0iSG9tZSIgcmVsPSJob21lIj5DRVJOPC9hPjwvaDE+CisKKyAgCisgIDxkaXYgaWQ9ImhlYWRlci1jb250ZW50Ij4KKyAgICA8ZGl2IGlkPSJuYXYtYmFyIj4KKyAgICAgICAgICAgICAgPG5hdiBpZD0ibWFpbi1tZW51IiByb2xlPSJuYXZpZ2F0aW9uIj4KKyAgICAgICAgICA8aDIgY2xhc3M9ImVsZW1lbnQtaW52aXNpYmxlIj5NYWluIG1lbnU8L2gyPjx1bCBpZD0ibmF2IiBjbGFzcz0ibWVudSI+PGxpIGNsYXNzPSJtZW51LTQ2MSBmaXJzdCI+PGEgaHJlZj0iL2Fib3V0Ij5BYm91dCBDRVJOPC9hPjwvbGk+Cis8bGkgY2xhc3M9Im1lbnUtNjc1Ij48YSBocmVmPSIvc3R1ZGVudHMtZWR1Y2F0b3JzIj5TdHVkZW50cyAmIEVkdWNhdG9yczwvYT48L2xpPgorPGxpIGNsYXNzPSJtZW51LTY3MyI+PGEgaHJlZj0iL3NjaWVudGlzdHMiPlNjaWVudGlzdHM8L2E+PC9saT4KKzxsaSBjbGFzcz0ibWVudS02NzQgbGFzdCI+PGEgaHJlZj0iL2Nlcm4tcGVvcGxlIj5DRVJOIHBlb3BsZTwvYT48L2xpPgorPC91bD4gICAgICAgIDwvbmF2PgorICAgICAgICAgIAkgIAk8L2Rpdj4KKwk8L2Rpdj4KKworCQorPC9oZWFkZXI+CisKKzxkaXYgaWQ9Im1haW4iIGNsYXNzPSJub25lIj4KKworICA8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0iY29sdW1uIiByb2xlPSJtYWluIj4KKworICAJPGFydGljbGUgY2xhc3M9InBhZ2UgY2xlYXJmaXgiPgorICAJCTxhIGlkPSJtYWluLWNvbnRlbnQiPjwvYT4KKyAgCQk8aGVhZGVyPgorICAJCQkgICAgICAgICAgICAgICAgICAgIAk8aDMgY2xhc3M9InRvcGljLWZsYWciPjxhIGhyZWY9Ii90b3BpY3MvIj5Ub3BpYzwvYT48L2gzPgorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8aDE+VGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlcjwvaDE+CisKKyAgICAgICAgICAgIAorICAJCQkKKyAgICAgICAgICAgICAgICAgICAgICAgIAorPCEtLSBub2RlLnRwbCBmcm9tIGNlcm5fcHVibGljIGJlZ2lucyAtLT4KKworCisKKzwvaGVhZGVyPgorCis8ZGl2IGNsYXNzPSJoaWdod29uZGVyLWNvbnRlbnQtYmFja2dyb3VuZCI+CisKKzxhc2lkZSBpZD0ibWV0YS1zaWRlYmFyIiBjbGFzcz0ic2lkZWJhcnMiPgorCisJCisJPHNlY3Rpb24gaWQ9Im1ldGEtc3VibWl0dGVkIiBjbGFzcz0iYmxvY2siPgorCSAgICAgIDxwPjxlbT4KKyAgICAgICAgIDwvZW0+PC9wPgorCTwvc2VjdGlvbj4KKzwvYXNpZGU+CisKKzxkaXYgY2xhc3M9ImhpZ2h3b25kZXItY29udGVudCI+CisKKwkKKyAgCisgICAgCisgIDxkaXYgY2xhc3M9ImZpZWxkLWJvZHkiPgorICAgIDxwPlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgKExIQykgaXMgdGhlIHdvcmxk4oCZcyBsYXJnZXN0IGFuZCBtb3N0IHBvd2VyZnVsIDxhIGhyZWY9Ii9hYm91dC9ob3ctYWNjZWxlcmF0b3Itd29ya3MiPnBhcnRpY2xlIGFjY2VsZXJhdG9yPC9hPi4gSXQgZmlyc3Qgc3RhcnRlZCB1cCBvbiAxMCBTZXB0ZW1iZXIgMjAwOCwgYW5kIHJlbWFpbnMgdGhlIGxhdGVzdCBhZGRpdGlvbiB0byBDRVJO4oCZcyA8YSBocmVmPSIvYWJvdXQvYWNjZWxlcmF0b3JzIj5hY2NlbGVyYXRvciBjb21wbGV4PC9hPi4gVGhlIExIQyBjb25zaXN0cyBvZiBhIDI3LWtpbG9tZXRyZSByaW5nIG9mIHN1cGVyY29uZHVjdGluZyBtYWduZXRzIHdpdGggYSBudW1iZXIgb2YgYWNjZWxlcmF0aW5nIHN0cnVjdHVyZXMgdG8gYm9vc3QgdGhlIGVuZXJneSBvZiB0aGUgcGFydGljbGVzIGFsb25nIHRoZSB3YXkuPC9wPgorCis8cD5JbnNpZGUgdGhlIGFjY2VsZXJhdG9yLCB0d28gaGlnaC1lbmVyZ3kgcGFydGljbGUgYmVhbXMgdHJhdmVsIGF0IGNsb3NlIHRvIHRoZSBzcGVlZCBvZiBsaWdodCBiZWZvcmUgdGhleSBhcmUgbWFkZSB0byBjb2xsaWRlLiBUaGUgYmVhbXMgdHJhdmVsIGluIG9wcG9zaXRlIGRpcmVjdGlvbnMgaW4gc2VwYXJhdGUgYmVhbSBwaXBlcyDigJMgdHdvIHR1YmVzIGtlcHQgYXQgPGEgaHJlZj0iL2Fib3V0L2VuZ2luZWVyaW5nL3ZhY3V1bS1lbXB0eS1pbnRlcnBsYW5ldGFyeS1zcGFjZSI+dWx0cmFoaWdoIHZhY3V1bTwvYT4uIFRoZXkgYXJlIGd1aWRlZCBhcm91bmQgdGhlIGFjY2VsZXJhdG9yIHJpbmcgYnkgYSBzdHJvbmcgbWFnbmV0aWMgZmllbGQgbWFpbnRhaW5lZCBieSA8YSBocmVmPSIvYWJvdXQvZW5naW5lZXJpbmcvcHVsbGluZy10b2dldGhlci1zdXBlcmNvbmR1Y3RpbmctZWxlY3Ryb21hZ25ldHMiPnN1cGVyY29uZHVjdGluZyBlbGVjdHJvbWFnbmV0czwvYT4uIFRoZSBlbGVjdHJvbWFnbmV0cyBhcmUgYnVpbHQgZnJvbSBjb2lscyBvZiBzcGVjaWFsIGVsZWN0cmljIGNhYmxlIHRoYXQgb3BlcmF0ZXMgaW4gYSBzdXBlcmNvbmR1Y3Rpbmcgc3RhdGUsIGVmZmljaWVudGx5IGNvbmR1Y3RpbmcgZWxlY3RyaWNpdHkgd2l0aG91dCByZXNpc3RhbmNlIG9yIGxvc3Mgb2YgZW5lcmd5LiBUaGlzIHJlcXVpcmVzIGNoaWxsaW5nIHRoZSBtYWduZXRzIHRvIOKAkTI3MS4zwrBDIOKAkyA8YSBocmVmPSIvYWJvdXQvZW5naW5lZXJpbmcvY3J5b2dlbmljcy1sb3ctdGVtcGVyYXR1cmVzLWhpZ2gtcGVyZm9ybWFuY2UiPmEgdGVtcGVyYXR1cmUgY29sZGVyIHRoYW4gb3V0ZXIgc3BhY2U8L2E+LiBGb3IgdGhpcyByZWFzb24sIG11Y2ggb2YgdGhlIGFjY2VsZXJhdG9yIGlzIGNvbm5lY3RlZCB0byBhIGRpc3RyaWJ1dGlvbiBzeXN0ZW0gb2YgbGlxdWlkIGhlbGl1bSwgd2hpY2ggY29vbHMgdGhlIG1hZ25ldHMsIGFzIHdlbGwgYXMgdG8gb3RoZXIgc3VwcGx5IHNlcnZpY2VzLjwvcD4KKworPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2lubGluZS1pbWFnZXMvb2xkL2xoY19sb25nXzEuanBnIiAvPjxmaWdjYXB0aW9uPlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgaXMgdGhlIHdvcmxkJ3MgbGFyZ2VzdCBhbmQgbW9zdCBwb3dlcmZ1bCBwYXJ0aWNsZSBhY2NlbGVyYXRvciAoSW1hZ2U6IENFUk4pPC9maWdjYXB0aW9uPjwvZmlndXJlPgorCis8cD5UaG91c2FuZHMgb2YgbWFnbmV0cyBvZiBkaWZmZXJlbnQgdmFyaWV0aWVzIGFuZCBzaXplcyBhcmUgdXNlZCB0byBkaXJlY3QgdGhlIGJlYW1zIGFyb3VuZCB0aGUgYWNjZWxlcmF0b3IuIFRoZXNlIGluY2x1ZGUgMTIzMiBkaXBvbGUgbWFnbmV0cyAxNSBtZXRyZXMgaW4gbGVuZ3RoIHdoaWNoIGJlbmQgdGhlIGJlYW1zLCBhbmQgMzkyIHF1YWRydXBvbGUgbWFnbmV0cywgZWFjaCA14oCTNyBtZXRyZXMgbG9uZywgd2hpY2ggZm9jdXMgdGhlIGJlYW1zLiBKdXN0IHByaW9yIHRvIGNvbGxpc2lvbiwgYW5vdGhlciB0eXBlIG9mIG1hZ25ldCBpcyB1c2VkIHRvICJzcXVlZXplIiB0aGUgcGFydGljbGVzIGNsb3NlciB0b2dldGhlciB0byBpbmNyZWFzZSB0aGUgY2hhbmNlcyBvZiBjb2xsaXNpb25zLiBUaGUgcGFydGljbGVzIGFyZSBzbyB0aW55IHRoYXQgdGhlIHRhc2sgb2YgbWFraW5nIHRoZW0gY29sbGlkZSBpcyBha2luIHRvIGZpcmluZyB0d28gbmVlZGxlcyAxMCBraWxvbWV0cmVzIGFwYXJ0IHdpdGggc3VjaCBwcmVjaXNpb24gdGhhdCB0aGV5IG1lZXQgaGFsZndheS48L3A+CisKKzxwPkFsbCB0aGUgY29udHJvbHMgZm9yIHRoZSBhY2NlbGVyYXRvciwgaXRzIHNlcnZpY2VzIGFuZCB0ZWNobmljYWwgaW5mcmFzdHJ1Y3R1cmUgYXJlIGhvdXNlZCB1bmRlciBvbmUgcm9vZiBhdCB0aGUgQ0VSTiBDb250cm9sIENlbnRyZS4gRnJvbSBoZXJlLCB0aGUgYmVhbXMgaW5zaWRlIHRoZSBMSEMgYXJlIG1hZGUgdG8gY29sbGlkZSBhdCBmb3VyIGxvY2F0aW9ucyBhcm91bmQgdGhlIGFjY2VsZXJhdG9yIHJpbmcsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBvc2l0aW9ucyBvZiBmb3VyIDxhIGhyZWY9Ii9hYm91dC9ob3ctZGV0ZWN0b3Itd29ya3MiPnBhcnRpY2xlIGRldGVjdG9yczwvYT4g4oCTIDxhIGhyZWY9Ii9hYm91dC9leHBlcmltZW50cy9hdGxhcyI+QVRMQVM8L2E+LCA8YSBocmVmPSIvYWJvdXQvZXhwZXJpbWVudHMvY21zIj5DTVM8L2E+LCA8YSBocmVmPSIvYWJvdXQvZXhwZXJpbWVudHMvYWxpY2UiPkFMSUNFPC9hPiBhbmQgPGEgaHJlZj0iL2Fib3V0L2V4cGVyaW1lbnRzL2xoY2IiPkxIQ2IuPC9hPjwvcD4KKworCis8cD48L3A+CisKKworPHA+PC9wPgorCisKKzxzZWN0aW9uIGNsYXNzPSJibHVyYiI+Cis8cD48YSBocmVmPSJodHRwOi8vY2RzLmNlcm4uY2gvcmVjb3JkLzExNjU1MzQvZmlsZXMvQ0VSTi1Ccm9jaHVyZS0yMDA5LTAwMy1FbmcucGRmIj48aW1nIGFsdD0iVGVjaG5pY2lhbnMgZ2V0IGFyb3VuZCB0aGUgdHVubmVsIG9uIGJpY3ljbGVzIiBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2lubGluZS1pbWFnZXMvb2xkL3R1bm5lbC10cmFuc3BvcnQuanBnIiAvPjwvYT48L3A+Cis8aDE+PGEgaHJlZj0iaHR0cDovL2Nkcy5jZXJuLmNoL3JlY29yZC8xMTY1NTM0L2ZpbGVzL0NFUk4tQnJvY2h1cmUtMjAwOS0wMDMtRW5nLnBkZiI+RmFjdHMgYW5kIEZpZ3VyZXMgW1BERl08L2E+PC9oMT4KKzxwPkhvdyBtYW55IGtpbG9tZXRyZXMgb2YgY2FibGVzIGFyZSB0aGVyZSBvbiB0aGUgTEhDPyBIb3cgbG93aXMgdGhlIHByZXNzdXJlIGluIHRoZSBiZWFtIHBpcGU/IERpc2NvdmVyIGZhY3RzIGFuZCBmaWd1cmVzIGFib3V0IHRoZSBpbiB0aGUgaGFuZHkgTEhDIGd1aWRlPC9wPgorPGgzPjxhIGhyZWY9Imh0dHA6Ly9jZHMuY2Vybi5jaC9yZWNvcmQvMTE2NTUzNC9maWxlcy9DRVJOLUJyb2NodXJlLTIwMDktMDAzLUVuZy5wZGYiPkRvd25sb2FkIHRoZSBMSEMgZ3VpZGUgW1BERl08L2E+PC9oMz4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gY2xhc3M9ImJsdXJiIj4KKzxwPjxhIGhyZWY9Imh0dHA6Ly9wcmVzcy53ZWIuY2Vybi5jaC9iYWNrZ3JvdW5kZXJzL3NhZmV0eS1saGMiPjxpbWcgYWx0PSJDRVJOIGZpcmVmaWdodGVycyBkdXJpbmcgdGhlaXIgZGFpbHkgc2FmZXR5IHRyYWluaW5nIiBldmVudCI9IiIgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9pbWFnZS9pbmxpbmUtaW1hZ2VzL29sZC9maXJlX3NhZmV0eS5qcGciIC8+PC9hPjwvcD4KKzxoMT48YSBocmVmPSJodHRwOi8vcHJlc3Mud2ViLmNlcm4uY2gvYmFja2dyb3VuZGVycy9zYWZldHktbGhjIj5TYWZldHkgb2YgdGhlIExIQzwvYT48L2gxPgorPHA+Q0VSTiB0YWtlcyBzYWZldHkgdmVyeSBzZXJpb3VzbHkuIFRoaXNyZXBvcnQgYnkgdGhlIExIQyBTYWZldHkgQXNzZXNzbWVudCBHcm91cCAoTFNBRykgY29uZmlybXMgdGhhdCBMSEMgY29sbGlzaW9ucyBwcmVzZW50IG5vIGRhbmdlciBhbmQgdGhhdCB0aGVyZSBhcmUgbm8gcmVhc29ucyBmb3IgY29uY2VybjwvcD4KKzxoMz48YSBocmVmPSJodHRwOi8vcHJlc3Mud2ViLmNlcm4uY2gvYmFja2dyb3VuZGVycy9zYWZldHktbGhjIj5SZWFkIGFib3V0IHRoZSBzYWZldHkgb2YgdGhlIExIQzwvYT48L2gzPgorPC9zZWN0aW9uPgorICA8L2Rpdj4KKworICA8ZW0+CisgICAgICA8L2VtPgorCisgIDwhLS0KKworICAgIDxwIGNsYXNzPSJzdWJtaXR0ZWQgbWV0YSI+CisgICAgICAgICAgPC9wPgorCisKKyAgLS0+CisKKyAgCisKKworCisKKzwhLS0gL25vZGUudHBsIGZyb20gY2Vybl9wdWJsaWMgZW5kcyAtLT4KKzxkaXYgaWQ9ImJsb2NrLXZpZXdzLXRvcGljcy1ibG9jay0xIiBjbGFzcz0iYmxvY2sgYmxvY2stdmlld3MiPgorCisgICAgICAgIDxoMj5GZWF0dXJlZCB1cGRhdGVzIG9uIHRoaXMgdG9waWM8L2gyPgorICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3IHZpZXctdG9waWNzIHZpZXctaWQtdG9waWNzIHZpZXctZGlzcGxheS1pZC1ibG9ja18xIHZpZXctZG9tLWlkLWFmODBhMWZmYWFiNjMxMjBkZTBkMmMxNTU2ODdmNjBiIj4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICAgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1maXJzdCI+CisgICAgICAKKyAgICAgICAgICA8YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzAyL3BpY3R1cmVzLWFjY2Vzcy1sYXN0LWxoYy1zcGxpY2UiPjxpbWcgdHlwZW9mPSJmb2FmOkltYWdlIiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvc3R5bGVzLzQwMC9wdWJsaWMvaW1hZ2UvdXBkYXRlLWZvcl90aGVfcHVibGljLzIwMTQvMDIvc21hY2NfZmluaXNoX2xpbmUuanBnP2l0b2s9Skcta2JPYmoiIHdpZHRoPSI0MDAiIGhlaWdodD0iMjY3IiBhbHQ9IiIgLz48L2E+ICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDIvcGljdHVyZXMtYWNjZXNzLWxhc3QtbGhjLXNwbGljZSI+SW4gcGljdHVyZXM6IEFjY2VzcyB0byB0aGUgbGFzdCBMSEMgc3BsaWNlPC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjExIEZlYiAyMDE0IOKAkzwvc3Bhbj4gQSB0ZWFtIGNvbXBvc2VkIG9mIENFUk4gc3RhZmYsIGluZHVzdHJpYWwgc3VwcG9ydCBhbmQgbWVjaGFuaWNzIGZyb20gUGFraXN0YW4gaGF2ZSBnaXZlbiBhY2Nlc3MgdG8gdGhlIGxhc3QgTEhDIHNwbGljZSBmb3IgaW5zcGVjdGlvbjwvcD4gICAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMiB2aWV3cy1yb3ctZXZlbiB2aWV3cy1yb3ctbGFzdCI+CisgICAgICAKKyAgICAgICAgICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxMy8xMS94LXJheS10ZXN0cy1uaWdodC1jb2xsaWRlciI+WC1yYXkgdGVzdHM6IE5pZ2h0IGF0IHRoZSBjb2xsaWRlcjwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj4yNSBOb3YgMjAxMyDigJM8L3NwYW4+IFdoZW4gbmlnaHQgZmFsbHMgb3ZlciBDRVJOLCBhIHRlYW0gb2YgWC1yYXkgZXhwZXJ0cyBnbyB1bmRlcmdyb3VuZCB0byBwZXJmb3JtIHRlc3RzIG9uIHRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXI8L3A+ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAKKyAgCisgIAorICAgCisKKyAgCisgIAorPC9kaXY+ICAKKzwvZGl2PgorPGRpdiBpZD0iYmxvY2stdmlld3MtdG9waWNzLWJsb2NrLTMiIGNsYXNzPSJibG9jayBibG9jay12aWV3cyI+CisKKyAgICAgICAgPGgyPlVwZGF0ZXM8L2gyPgorICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3IHZpZXctdG9waWNzIHZpZXctaWQtdG9waWNzIHZpZXctZGlzcGxheS1pZC1ibG9ja18zIHRvcGljcy1hbGwtdXBkYXRlcyB2aWV3LWRvbS1pZC00NGEwYTgwZTlkM2NkYjYwOWIzNzhjNDBkMTJlYmM0YSI+CisgICAgICAgIAorICAKKyAgCisgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWNvbnRlbnQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTEgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctZmlyc3QiPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxNC8wOC90ZWNobmljYWwtdHJvdWJsZXNob290aW5nLWNlcm4tY29udHJvbC1jZW50cmUiPlRlY2huaWNhbCB0cm91Ymxlc2hvb3RpbmcgYXQgdGhlIENFUk4gQ29udHJvbCBDZW50cmU8L2E+PC9oMz4gIDwvZGl2PiAgCisgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9Im1ldGEgZGF0ZSI+NCBBdWcgMjAxNCDigJM8L3NwYW4+IEEgdGVhbSBpcyBvbiBjYWxsIDI0IGhvdXJzIGEgZGF5IHRvIG1vbml0b3IgdGVjaG5pY2FsIHN5c3RlbXMgYW5kIHF1aWNrbHkgcmVzcG9uZCB0byBhbGVydHMgYWNyb3NzIENFUk4ncyBhY2NlbGVyYXRvciBjb21wbGV4PC9wPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0yIHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDYvY29zbWljLXJheXMtdHVuZS1hdGxhcy1wYXJ0aWNsZS1zeW1waG9ueSI+Q29zbWljIHJheXMgdHVuZSBBVExBUyBmb3IgYSBwYXJ0aWNsZSBzeW1waG9ueTwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj4yNyBKdW4gMjAxNCDigJM8L3NwYW4+IEluIHByZXBhcmF0aW9uIGZvciB0aGUgTEhDJ3MgbmV4dCBydW4sIHBoeXNpY2lzdHMgYXJlIGNhbGlicmF0aW5nIHRoZSBBVExBUyBleHBlcmltZW50IC0gd2l0aCBoaWdoLWVuZXJneSByYXlzIGZyb20gb3V0ZXIgc3BhY2U8L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTMgdmlld3Mtcm93LW9kZCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPGgzIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzA2L2Nlcm4tYW5ub3VuY2VzLWxoYy1yZXN0YXJ0LXNjaGVkdWxlIj5DRVJOIGFubm91bmNlcyBMSEMgcmVzdGFydCBzY2hlZHVsZTwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj4yMyBKdW4gMjAxNCDigJM8L3NwYW4+IENvb2wgZG93biBvZiB0aGUgTGFyZ2UgSGFkcm9uIENvbGxpZGVyIGhhcyBhbHJlYWR5IGJlZ3VuIGluIHByZXBhcmF0aW9uIGZvciByZXNlYXJjaCB0byByZXN1bWUgZWFybHkgaW4gMjAxNTwvcD4gICAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctNCB2aWV3cy1yb3ctZXZlbiI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPGgzIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzA2L2Nlcm4tZXhwZXJpbWVudHMtcmVwb3J0LW5ldy1oaWdncy1ib3Nvbi1tZWFzdXJlbWVudHMiPkNFUk4gZXhwZXJpbWVudHMgcmVwb3J0IG5ldyBIaWdncyBib3NvbiBtZWFzdXJlbWVudHM8L2E+PC9oMz4gIDwvZGl2PiAgCisgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9Im1ldGEgZGF0ZSI+MjMgSnVuIDIwMTQg4oCTPC9zcGFuPiBSZXN1bHRzIHJlcG9ydGVkIGJ5IEFUTEFTIGFuZCBDTVMgZGlzY3VzcyB0aGUgZGVjYXkgb2YgSGlnZ3MgYm9zb25zIGRpcmVjdGx5IHRvIGZlcm1pb25zLCB0aGUgcGFydGljbGVzIHRoYXQgbWFrZSB1cCBtYXR0ZXI8L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTUgdmlld3Mtcm93LW9kZCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPGgzIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzA2L2hvdy11bml2ZXJzYWwtbGVwdG9uLXVuaXZlcnNhbGl0eSI+SG93IHVuaXZlcnNhbCBpcyAobGVwdG9uKSB1bml2ZXJzYWxpdHk/PC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjMgSnVuIDIwMTQg4oCTPC9zcGFuPiBOZXcgcmVzdWx0cyBmcm9tIExIQ2Igc3VnZ2VzdCB0aGF0IEIrbWVzb25zIGRlY2F5IHRvIG11b25zIGFib3V0IDI1JSBsZXNzIG9mdGVuIHRoYW4gdGhleSBkZWNheSB0byBlbGVjdHJvbnM8L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTYgdmlld3Mtcm93LWV2ZW4iPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxNC8wNS90b3VyLWNvbnRpbnVlcy1sYXJnZS1oYWRyb24tY29sbGlkZXIiPlRoZSB0b3VyIGNvbnRpbnVlcyBmb3IgdGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlcjwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj4yMyBNYXkgMjAxNCDigJM8L3NwYW4+IFRvZGF5IHRoZSBDb2xsaWRlciBleGhpYml0aW9uLCB3aGljaCBiZWdhbiBsaWZlIGF0IExvbmRvbuKAmXMgU2NpZW5jZSBNdXNldW0sIGxhdW5jaGVzIGluIE1hbmNoZXN0ZXIsIFVLLCBhaGVhZCBvZiBhbiBpbnRlcm5hdGlvbmFsIHRvdXI8L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTcgdmlld3Mtcm93LW9kZCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPGgzIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzA1L2xoYy1jb25zb2xpZGF0aW9ucy0yNzAwMC1zaHVudHMtbm93LXBsYWNlIj5MSEMgY29uc29saWRhdGlvbnM6IDI3LDAwMCBzaHVudHMgbm93IGluIHBsYWNlPC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjUgTWF5IDIwMTQg4oCTPC9zcGFuPiBTb21lIDI3LDAwMCBlbGVjdHJpY2FsIHNodW50cyBoYXZlIGJlZW4gYWRkZWQgdG8gY29ubmVjdGlvbnMgYmV0d2VlbiBtYWduZXRzIG9uIHRoZSBMSEM8L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTggdmlld3Mtcm93LWV2ZW4iPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxNC8wNC90cmFja2luZy1wYXJ0aWNsZXMtZmFzdGVyLWxoYyI+VHJhY2tpbmcgcGFydGljbGVzIGZhc3RlciBhdCB0aGUgTEhDPC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjIyIEFwciAyMDE0IOKAkzwvc3Bhbj4gQSBuZXcgdHJpZ2dlciBzeXN0ZW0gd2lsbCBleHBhbmQgd2hhdCBBVExBUyBzY2llbnRpc3RzIGNhbiBsb29rIGZvciBkdXJpbmcgaGlnaC1lbmVyZ3kgY29sbGlzaW9ucyBhdCB0aGUgTGFyZ2UgSGFkcm9uIENvbGxpZGVyPC9wPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy05IHZpZXdzLXJvdy1vZGQiPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxNC8wMy9taWNyb2VsZWN0cm9uaWNzLWNlcm4taW5mYW5jeS1tYXR1cml0eSI+TWljcm9lbGVjdHJvbmljcyBhdCBDRVJOOiBmcm9tIGluZmFuY3kgdG8gbWF0dXJpdHk8L2E+PC9oMz4gIDwvZGl2PiAgCisgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9Im1ldGEgZGF0ZSI+NCBNYXIgMjAxNCDigJM8L3NwYW4+IFRoZSBzdGFydCBvZiB0aGUgTEFBIHByb2plY3QgaW4gMTk4NiBwcm9wZWxsZWQgZWxlY3Ryb25pY3MgYXQgQ0VSTiBpbnRvIHRoZSBlcmEgb2YgbWljcm9lbGVjdHJvbmljczwvcD4gICAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMTAgdmlld3Mtcm93LWV2ZW4gdmlld3Mtcm93LWxhc3QiPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxMy8xMi9oaWdobGlnaHRzLWNlcm4tMjAxMyI+SGlnaGxpZ2h0cyBmcm9tIENFUk4gaW4gMjAxMzwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj4xOSBEZWMgMjAxMyDigJM8L3NwYW4+IEhpZ2dzIGJvc29uIGRlY2F5cywgYSBOb2JlbCBwcml6ZSBmb3IgSGlnZ3MgYW5kIEVuZ2xlcnQgYW5kIGEgaHVnZSBPcGVuIERheXMgZXZlbnQgd2VyZSBhbW9uZyB0aGUgYmlnIHN0b3JpZXMgYXQgQ0VSTiB0aGlzIHllYXI8L3A+ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAKKyAgCisgIAorICAgICAKKzxkaXYgY2xhc3M9Im1vcmUtbGluayI+CisgIDxhIGhyZWY9Ii9hYm91dC91cGRhdGVzL3RhZ2dlZC9MSEMiPgorICAgIG1vcmUgIDwvYT4KKzwvZGl2PgorCisgIAorCisgIAorICAKKzwvZGl2PiAgCis8L2Rpdj4KKworCQkJCQkJPCEtLSBPbmx5IHByaW50IGNvbnRlbnQtbWV0YSBpZiBpdCBoYXMgY29udGVudCB0byBkaXNwbGF5IC0tPgorCQkJCQkJCisgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC8uaGlnaHdvbmRlci1jb250ZW50LW9uLXdoaXRlIC0tPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvLmhpZ2h3b25kZXItY29udGVudC1iYWNrZ3JvdW5kIC0tPgorCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgPC9hcnRpY2xlPgorCisgIDwvZGl2PjwhLS0gLyNjb250ZW50IC0tPgorCisgICAgPGFzaWRlIGNsYXNzPSJyZWdpb24gcmVnaW9uLXNpZGViYXIiIGlkPSJzaWRlYmFyIj4KKyAgICA8c2VjdGlvbiBpZD0iYmxvY2stdmlld3MtdG9waWNzLWJsb2NrLTQiIGNsYXNzPSJibG9jayBibG9jay12aWV3cyI+CisKKyAgICAgICAgPGgyPkxlYXJuIGFib3V0IHRoaXMgdG9waWM8L2gyPgorICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3IHZpZXctdG9waWNzIHZpZXctaWQtdG9waWNzIHZpZXctZGlzcGxheS1pZC1ibG9ja180IHZpZXctZG9tLWlkLWNjODViOTE0OTAxZTBjNWMxYTA5Mjg3MWI3ZDliNjk4Ij4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICAgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1maXJzdCI+CisgICAgICAKKyAgPGRpdj4gICAgICAgIDxhIGhyZWY9Ii9hYm91dC9lbmdpbmVlcmluZy9jcnlvZ2VuaWNzLWxvdy10ZW1wZXJhdHVyZXMtaGlnaC1wZXJmb3JtYW5jZSI+Q3J5b2dlbmljczogTG93IHRlbXBlcmF0dXJlcywgaGlnaCBwZXJmb3JtYW5jZSAgPC9hPiAgPC9kaXY+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0yIHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2PiAgICAgICAgPGEgaHJlZj0iL2Fib3V0L2VuZ2luZWVyaW5nL3B1bGxpbmctdG9nZXRoZXItc3VwZXJjb25kdWN0aW5nLWVsZWN0cm9tYWduZXRzIj5QdWxsaW5nIHRvZ2V0aGVyOiBTdXBlcmNvbmR1Y3RpbmcgZWxlY3Ryb21hZ25ldHM8L2E+ICA8L2Rpdj4gIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTMgdmlld3Mtcm93LW9kZCI+CisgICAgICAKKyAgPGRpdj4gICAgICAgIDxhIGhyZWY9Ii9hYm91dC9lbmdpbmVlcmluZy9wb3dlcmluZy1jZXJuIj5Qb3dlcmluZyBDRVJOPC9hPiAgPC9kaXY+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy00IHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2PiAgICAgICAgPGEgaHJlZj0iL2Fib3V0L2VuZ2luZWVyaW5nL3ZhY3V1bS1lbXB0eS1pbnRlcnBsYW5ldGFyeS1zcGFjZSI+QSB2YWN1dW0gYXMgZW1wdHkgYXMgaW50ZXJwbGFuZXRhcnkgc3BhY2U8L2E+ICA8L2Rpdj4gIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTUgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctbGFzdCI+CisgICAgICAKKyAgPGRpdj4gICAgICAgIDxhIGhyZWY9Ii9hYm91dC9lbmdpbmVlcmluZy9yYWRpb2ZyZXF1ZW5jeS1jYXZpdGllcyI+UmFkaW9mcmVxdWVuY3kgY2F2aXRpZXM8L2E+ICA8L2Rpdj4gIDwvZGl2PgorICAgIDwvZGl2PgorICAKKyAgCisgIAorICAgCisKKyAgCisgIAorPC9kaXY+ICAKKzwvc2VjdGlvbj4KKzxzZWN0aW9uIGlkPSJibG9jay12aWV3cy10b3BpY3MtYmxvY2stNSIgY2xhc3M9ImJsb2NrIGJsb2NrLXZpZXdzIj4KKworICAgICAgICA8aDI+SW1hZ2VzPC9oMj4KKyAgICAKKyAgPGRpdiBjbGFzcz0idmlldyB2aWV3LXRvcGljcyB2aWV3LWlkLXRvcGljcyB2aWV3LWRpc3BsYXktaWQtYmxvY2tfNSB2aWV3LWRvbS1pZC1jMDMyMjE3YTAwMjI0MjA0YjE0MzNiMmZlZjFmY2UwMSI+CisgICAgICAgIAorICAKKyAgCisgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWNvbnRlbnQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTEgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctZmlyc3QiPgorICAgICAgCisgICAgICAgICAgPGEgaHJlZj0iL2ltYWdlcy8yMDE0LzA2L3NhZmV0eS10cmFpbmluZyI+PGltZyB0eXBlb2Y9ImZvYWY6SW1hZ2UiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9pbWFnZS9mZWF0dXJlZC8yMDE0LzA2LzE3MDYxOV9zYWZldHlfdHJhaW5pbmcuanBnIiB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI5NTgiIGFsdD0iIiAvPjwvYT4gICAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMiB2aWV3cy1yb3ctZXZlbiI+CisgICAgICAKKyAgICAgICAgICA8YSBocmVmPSIvaW1hZ2VzLzIwMTQvMDMvYnJhemluZy1wYXN0LWZpbmlzaC1saW5lIj48aW1nIHR5cGVvZj0iZm9hZjpJbWFnZSIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2ZlYXR1cmVkLzIwMTQvMDMvcmVzb2xkZXJpbmcuanBnIiB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI5NTgiIGFsdD0iQ0VSTiBlbmdpbmVlcnMgYW5kIHRlY2huaWNpYW5zIGluIGhhcmQgaGF0cyBwb3NlIGZvciBhIHBob3RvIGluIHRoZSBMSEMgdHVubmVsLiBUaGUgYmx1ZSB0dWJlIG9mIHRoZSBhY2NlbGVyYXRvciBpcyBvbiB0aGUgcmlnaHQiIHRpdGxlPSJDRVJOIGVuZ2luZWVycyBhbmQgdGVjaG5pY2lhbnMgaW4gdGhlIExIQyB0dW5uZWwiIC8+PC9hPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQgdmlld3Mtcm93LWxhc3QiPgorICAgICAgCisgICAgICAgICAgPGEgaHJlZj0iL2ltYWdlcy8yMDE0LzAyL25pY2Utc3BsaWNlIj48aW1nIHR5cGVvZj0iZm9hZjpJbWFnZSIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2ZlYXR1cmVkLzIwMTQvMDIvc3BsaWNlLmpwZyIgd2lkdGg9IjIwMDAiIGhlaWdodD0iMTMzMyIgYWx0PSIiIC8+PC9hPiAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgCisgIAorICAKKyAgICAgCis8ZGl2IGNsYXNzPSJtb3JlLWxpbmsiPgorICA8YSBocmVmPSIvaW1hZ2VzL3RhZ2dlZC9MSEMiPgorICAgIG1vcmUgIDwvYT4KKzwvZGl2PgorCisgIAorCisgIAorICAKKzwvZGl2PiAgCis8L3NlY3Rpb24+Cis8c2VjdGlvbiBpZD0iYmxvY2stdmlld3MtdG9waWNzLWJsb2NrLTYiIGNsYXNzPSJibG9jayBibG9jay12aWV3cyI+CisKKyAgICAgICAgPGgyPk9waW5pb25zIG9uIHRoaXMgVG9waWM8L2gyPgorICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3IHZpZXctdG9waWNzIHZpZXctaWQtdG9waWNzIHZpZXctZGlzcGxheS1pZC1ibG9ja182IHZpZXctZG9tLWlkLTgyMTE5MTdlNDIyNWI5NDRiNjZiYjgzMmE0ZDRiYTliIj4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICAgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1maXJzdCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9jZXJuLXBlb3BsZS9vcGluaW9uLzIwMTQvMDcvc3RyZW5ndGgtd29ybGR3aWRlLWNvbGxhYm9yYXRpb24iPlRoZSBzdHJlbmd0aCBvZiB3b3JsZHdpZGUgY29sbGFib3JhdGlvbjwvYT48L3NwYW4+ICA8L2Rpdj4gIAorICA8ZGl2PiAgICAgICAgPHAgY2xhc3M9Im1ldGEiPjxzcGFuPlBldGVyIEplbm5pPC9zcGFuPiwgPHNwYW4gY2xhc3M9ImRhdGUiPjMwIEp1bCAyMDE0PC9zcGFuPjwvcD4gIDwvZGl2PiAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMiB2aWV3cy1yb3ctZXZlbiI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9jZXJuLXBlb3BsZS9vcGluaW9uLzIwMTMvMTEvdG93YXJkcy1uZXh0LWNoYXB0ZXIiPlRvd2FyZHMgdGhlIG5leHQgY2hhcHRlcjwvYT48L3NwYW4+ICA8L2Rpdj4gIAorICA8ZGl2PiAgICAgICAgPHAgY2xhc3M9Im1ldGEiPjxzcGFuPlJvbGYgSGV1ZXI8L3NwYW4+LCA8c3BhbiBjbGFzcz0iZGF0ZSI+MjUgTm92IDIwMTM8L3NwYW4+PC9wPiAgPC9kaXY+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQgdmlld3Mtcm93LWxhc3QiPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvY2Vybi1wZW9wbGUvb3Bpbmlvbi8yMDEzLzA2L2xzMS1zYWZldHktcXVhbGl0eS1zY2hlZHVsZSI+TFMxOiAiU2FmZXR5LCBxdWFsaXR5LCBzY2hlZHVsZSI8L2E+PC9zcGFuPiAgPC9kaXY+ICAKKyAgPGRpdj4gICAgICAgIDxwIGNsYXNzPSJtZXRhIj48c3Bhbj5Sb2xmIEhldWVyPC9zcGFuPiwgPHNwYW4gY2xhc3M9ImRhdGUiPjI4IEp1biAyMDEzPC9zcGFuPjwvcD4gIDwvZGl2PiAgPC9kaXY+CisgICAgPC9kaXY+CisgIAorICAKKyAgCisgICAKKworICAKKyAgCis8L2Rpdj4gIAorPC9zZWN0aW9uPgorPHNlY3Rpb24gaWQ9ImJsb2NrLXZpZXdzLWFjY2VsZXJhdG9ycy1ibG9jayIgY2xhc3M9ImJsb2NrIGJsb2NrLXZpZXdzIGJsb2NrLWxpbmtzIj4KKworICAgICAgICA8aDI+QWNjZWxlcmF0b3JzPC9oMj4KKyAgICAKKyAgPGRpdiBjbGFzcz0idmlldyB2aWV3LWFjY2VsZXJhdG9ycyB2aWV3LWlkLWFjY2VsZXJhdG9ycyB2aWV3LWRpc3BsYXktaWQtYmxvY2sgdmlldy1kb20taWQtODFlYTgyY2MwNmQ3NThlZGQzNzEyNjg0Y2RlOWVjZWMiPgorICAgICAgICAKKyAgCisgIAorICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250ZW50Ij4KKyAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tbGlzdCI+ICAgIDx1bD4gICAgICAgICAgPGxpIGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTEgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctZmlyc3QiPiAgCisgICAgICAgICAgPGEgaHJlZj0iL2Fib3V0L2FjY2VsZXJhdG9ycy9hbnRpcHJvdG9uLWRlY2VsZXJhdG9yIj5UaGUgQW50aXByb3RvbiBEZWNlbGVyYXRvcjwvYT4gIDwvbGk+CisgICAgICAgICAgPGxpIGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTIgdmlld3Mtcm93LWV2ZW4iPiAgCisgICAgICAgICAgPGEgaHJlZj0iL2Fib3V0L2FjY2VsZXJhdG9ycy9sYXJnZS1oYWRyb24tY29sbGlkZXIiPlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXI8L2E+ICA8L2xpPgorICAgICAgICAgIDxsaSBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQiPiAgCisgICAgICAgICAgPGEgaHJlZj0iL2Fib3V0L2FjY2VsZXJhdG9ycy9wcm90b24tc3luY2hyb3Ryb24iPlRoZSBQcm90b24gU3luY2hyb3Ryb248L2E+ICA8L2xpPgorICAgICAgICAgIDxsaSBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy00IHZpZXdzLXJvdy1ldmVuIj4gIAorICAgICAgICAgIDxhIGhyZWY9Ii9hYm91dC9hY2NlbGVyYXRvcnMvc3VwZXItcHJvdG9uLXN5bmNocm90cm9uIj5UaGUgU3VwZXIgUHJvdG9uIFN5bmNocm90cm9uPC9hPiAgPC9saT4KKyAgICAgICAgICA8bGkgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctNSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1sYXN0Ij4gIAorICAgICAgICAgIDxhIGhyZWY9Ii9hYm91dC9hY2NlbGVyYXRvcnMvY2Vybi1uZXV0cmlub3MtZ3Jhbi1zYXNzbyI+Q0VSTiBOZXV0cmlub3MgdG8gR3JhbiBTYXNzbzwvYT4gIDwvbGk+CisgICAgICA8L3VsPjwvZGl2PiAgICA8L2Rpdj4KKyAgCisgIAorICAKKyAgICAgCis8ZGl2IGNsYXNzPSJtb3JlLWxpbmsiPgorICA8YSBocmVmPSIvYWJvdXQvYWNjZWxlcmF0b3JzLXRvcGljcyI+CisgICAgbW9yZSAgPC9hPgorPC9kaXY+CisKKyAgCisKKyAgCisgIAorPC9kaXY+ICAKKzwvc2VjdGlvbj4KKzxzZWN0aW9uIGlkPSJibG9jay1zZWFyY2gtZm9ybSIgY2xhc3M9ImJsb2NrIGJsb2NrLXNlYXJjaCI+CisKKyAgICAgIAorICA8Zm9ybSBjbGFzcz0ic2VhcmNoLWZvcm0iIGFjdGlvbj0iL3RvcGljcy9sYXJnZS1oYWRyb24tY29sbGlkZXIiIG1ldGhvZD0icG9zdCIgaWQ9InNlYXJjaC1ibG9jay1mb3JtIiBhY2NlcHQtY2hhcnNldD0iVVRGLTgiPjxkaXY+PGRpdiBjbGFzcz0iY29udGFpbmVyLWlubGluZSI+CisgICAgICA8aDIgY2xhc3M9ImVsZW1lbnQtaW52aXNpYmxlIj5TZWFyY2ggZm9ybTwvaDI+CisgICAgPGRpdiBjbGFzcz0iZm9ybS1pdGVtIGZvcm0tdHlwZS10ZXh0ZmllbGQgZm9ybS1pdGVtLXNlYXJjaC1ibG9jay1mb3JtIj4KKyAgPGxhYmVsIGNsYXNzPSJlbGVtZW50LWludmlzaWJsZSIgZm9yPSJlZGl0LXNlYXJjaC1ibG9jay1mb3JtLS0yIj5TZWFyY2ggdGhpcyBzaXRlIDwvbGFiZWw+CisgPGlucHV0IHRpdGxlPSJFbnRlciB0aGUgdGVybXMgeW91IHdpc2ggdG8gc2VhcmNoIGZvci4iIGNsYXNzPSJjdXN0b20tc2VhcmNoLWJveCBmb3JtLXRleHQiIHBsYWNlaG9sZGVyPSIiIG9uYmx1cj0iaWYgKHRoaXMudmFsdWUgPT0gIiIpIHt0aGlzLnZhbHVlID0gIlNlYXJjaCB0aGlzIHNpdGUiO30iIG9uZm9jdXM9ImlmICh0aGlzLnZhbHVlID09ICJTZWFyY2ggdGhpcyBzaXRlIikge3RoaXMudmFsdWUgPSAiIjt9IiB0eXBlPSJ0ZXh0IiBpZD0iZWRpdC1zZWFyY2gtYmxvY2stZm9ybS0tMiIgbmFtZT0ic2VhcmNoX2Jsb2NrX2Zvcm0iIHZhbHVlPSJTZWFyY2ggdGhpcyBzaXRlIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIxMjgiIC8+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImZvcm0tYWN0aW9ucyBmb3JtLXdyYXBwZXIiIGlkPSJlZGl0LWFjdGlvbnMiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJlZGl0LXN1Ym1pdCIgbmFtZT0ib3AiIHZhbHVlPSJTZWFyY2giIGNsYXNzPSJmb3JtLXN1Ym1pdCIgLz48L2Rpdj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2J1aWxkX2lkIiB2YWx1ZT0iZm9ybS1XOFQ3X3NFdVc3RWRoTU9pY3k0OWlLdHI5UTZDRHlQb2Y2ZWxvWldVMGtzIiAvPgorPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9pZCIgdmFsdWU9InNlYXJjaF9ibG9ja19mb3JtIiAvPgorPC9kaXY+Cis8L2Rpdj48L2Zvcm0+ICAKKzwvc2VjdGlvbj4KKyAgPC9hc2lkZT48IS0tIC9zaWRlYmFyIC0tPgorIAorPC9kaXY+PCEtLSAvI21haW4gLS0+CisKKworPGZvb3RlciBpZD0iZm9vdGVyIiByb2xlPSJjb250ZW50aW5mbyI+CisgIAkgIDxkaXYgY2xhc3M9InJlZ2lvbiByZWdpb24tZm9vdGVyLTIiPgorICAgIDxkaXYgaWQ9ImJsb2NrLW1lbnUtbWVudS1nbG9iYWwtZm9vdGVyLW1lbnUtMiIgY2xhc3M9ImJsb2NrIGJsb2NrLW1lbnUiPgorCisgICAgICAgIDxoMj5HZW5lcmFsIGluZm88L2gyPgorICAgIAorICA8dWwgY2xhc3M9Im1lbnUiPjxsaSBjbGFzcz0iZmlyc3QgbGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvam9icyIgdGl0bGU9IiI+Sm9iczwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9vdXRyZWFjaCIgdGl0bGU9IiI+VmlzaXRzPC9hPjwvbGk+Cis8bGkgY2xhc3M9Imxhc3QgbGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvcHJlc3MiIHRpdGxlPSIiPlByZXNzPC9hPjwvbGk+Cis8L3VsPiAgCis8L2Rpdj4KKyAgPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKyAgCSAgPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1mb290ZXItMyI+CisgICAgPGRpdiBpZD0iYmxvY2stbWVudS1tZW51LWdsb2JhbC1mb290ZXItbWVudS0zIiBjbGFzcz0iYmxvY2sgYmxvY2stbWVudSI+CisKKyAgICAgICAgPGgyPkNFUk4gJiB5b3U8L2gyPgorICAgIAorICA8dWwgY2xhc3M9Im1lbnUiPjxsaSBjbGFzcz0iZmlyc3QgbGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvcHJvY3VyZW1lbnQiIHRpdGxlPSIiPkRvaW5nIGJ1c2luZXNzIHdpdGggQ0VSTjwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9rbm93bGVkZ2V0cmFuc2ZlciIgdGl0bGU9IiI+S25vd2xlZGdlIHRyYW5zZmVyPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL3Byb2plY3Qtdm9pc2lucy8iIHRpdGxlPSIiPkNFUk4icyBuZWlnaGJvdXJzPC9hPjwvbGk+Cis8bGkgY2xhc3M9Imxhc3QgbGVhZiI+PGEgaHJlZj0iL3BhcnRuZXJzaGlwcyIgdGl0bGU9IiI+UGFydG5lcnNoaXBzPC9hPjwvbGk+Cis8L3VsPiAgCis8L2Rpdj4KKyAgPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKyAgCSAgPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1mb290ZXItNSI+CisgICAgPGRpdiBpZD0iYmxvY2stYmxvY2stNSIgY2xhc3M9ImJsb2NrIGJsb2NrLWJsb2NrIj4KKworICAgICAgICA8aDI+Q29udGFjdDwvaDI+CisgICAgCisgIDxwPkNFUk48YnIgLz4KK0NILTEyMTEgR2VuZXZhIDIzPGJyIC8+CitTd2l0emVybGFuZDwvcD4KKzxwPjxhIGhyZWY9Ii9jb250YWN0Ij5Ib3cgdG8gcmVhY2ggdXM8L2E+PC9wPgorICAKKzwvZGl2PgorICA8L2Rpdj48IS0tIC8ucmVnaW9uIC0tPgorCSAgPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1mb290ZXItNCI+CisgICAgPGRpdiBpZD0iYmxvY2stbWVudS1tZW51LWdsb2JhbC1mb290ZXItbWVudS01IiBjbGFzcz0iYmxvY2sgYmxvY2stbWVudSI+CisKKyAgICAgICAgPGgyPkNvbm5lY3Qgd2l0aCBDRVJOPC9oMj4KKyAgICAKKyAgPHVsIGNsYXNzPSJtZW51Ij48bGkgY2xhc3M9ImZpcnN0IGxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9mYWNlYm9vay5jb20vY2VybiIgdGl0bGU9IiI+RmFjZWJvb2s8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL2Nlcm4iIHRpdGxlPSIiPlR3aXR0ZXI8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rQ0VSTi8iIHRpdGxlPSIiPkdvb2dsZSs8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL3lvdXR1YmUuY29tL2Nlcm4iIHRpdGxlPSIiPllvdVR1YmU8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGVhZiI+PGEgaHJlZj0iaHR0cDovL2l0dW5lcy5hcHBsZS5jb20vaW5zdGl0dXRpb24vY2Vybi1ldXJvcGVhbi1vcmdhbml6YXRpb24vaWQzOTAxMTg2OTIiIHRpdGxlPSIiPmlUdW5lcyBVPC9hPjwvbGk+Cis8bGkgY2xhc3M9Imxhc3QgbGVhZiI+PGEgaHJlZj0iL2ZlZWRzIiB0aXRsZT0iIj5GZWVkczwvYT48L2xpPgorPC91bD4gIAorPC9kaXY+CisgIDwvZGl2PjwhLS0gLy5yZWdpb24gLS0+CisJICA8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWZvb3Rlci0xIj4KKyAgICA8ZGl2IGlkPSJibG9jay1ibG9jay00IiBjbGFzcz0iYmxvY2sgYmxvY2stYmxvY2siPgorCisgICAgICAKKyAgPHA+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvY29weXJpZ2h0Ij7CqSBDb3B5cmlnaHQgQ0VSTiAyMDE0PC9hPjwvcD4gIAorPC9kaXY+Cis8ZGl2IGlkPSJibG9jay1ibG9jay0yMSIgY2xhc3M9ImJsb2NrIGJsb2NrLWJsb2NrIj4KKworICAgICAgCisgIDxwPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL2Nlcm42MCI+PGltZyBhbHQ9IiIgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9pbWFnZS9pbmxpbmUtaW1hZ2VzL29sZC9sb2dvLTYwLW5lZ2F0aWZfYTgwLnBuZyIgc3R5bGU9ImZsb2F0OnJpZ2h0IiAvPjwvYT48L3A+CisgIAorPC9kaXY+CisgIDwvZGl2PjwhLS0gLy5yZWdpb24gLS0+Cis8L2Zvb3Rlcj4KKworCis8IS0tIC9wYWdlLnRwbCBmcm9tIGNlcm5fcHVibGljIGVuZHMgLS0+CisgIAorICA8IS0tW2lmIChsdCBJRSA5KSAmICghSUVNb2JpbGUpXT4KKyAgICA8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9pbWdzaXplci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL3RoZW1lcy9jZXJuX2Jhc2UvanMvaWUvc2VsZWN0aXZpenItbWluLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9qcXVlcnktZXh0cmEtc2VsZWN0b3JzLmpzIj48L3NjcmlwdD4KKyAgPCFbZW5kaWZdLS0+CisKKyAgPCEtLSBQcm9tcHRzIGFsbCBJRTYgdXNlcnMgdG8gaW5zdGFsbCBHb29nbGUgQ2hyb21lZnJhbWUgLS0+CisgIDwhLS1baWYgbHQgSUUgN10+CisgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9jaHJvbWUtZnJhbWUvMS9DRkluc3RhbGwubWluLmpzIj48L3NjcmlwdD4KKyAgIDxzY3JpcHQ+Q0ZJbnN0YWxsLmNoZWNrKCk7PC9zY3JpcHQ+CisgIDwhW2VuZGlmXS0tPgorCisgIDwhLS08c2NyaXB0IHNyYz0iaHR0cHM6Ly9nZXQuZ3JpZHNldGFwcC5jb20vMTI1L292ZXJsYXkvIj48L3NjcmlwdD4gLS0+CisKKzwvYm9keT4KKzwvaHRtbD4KKworCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zaW1wbGVfYXBpX3BhcnNpbmcvbGhjL3NyYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZy9saGMvc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEyMjgxNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zaW1wbGVfYXBpX3BhcnNpbmcvbGhjL3NyYy5odG1sCkBAIC0wLDAgKzEsNTM3IEBACisKKzwhRE9DVFlQRSBodG1sPgorPCEtLVtpZiBJRU1vYmlsZSA3XT48aHRtbCBjbGFzcz0iaWVtNyIgIGxhbmc9ImVuIiBkaXI9Imx0ciI+PCFbZW5kaWZdLS0+Cis8IS0tW2lmIGx0ZSBJRSA2XT48aHRtbCBjbGFzcz0iaWU2IGllNi03IGllNi04IiAgbGFuZz0iZW4iIGRpcj0ibHRyIj48IVtlbmRpZl0tLT4KKzwhLS1baWYgKElFIDcpJighSUVNb2JpbGUpXT48aHRtbCBjbGFzcz0iaWU3IGllNi03IGllNi04IiAgbGFuZz0iZW4iIGRpcj0ibHRyIj48IVtlbmRpZl0tLT4KKzwhLS1baWYgSUUgOF0+PGh0bWwgY2xhc3M9ImllOCBpZTYtOCIgIGxhbmc9ImVuIiBkaXI9Imx0ciI+PCFbZW5kaWZdLS0+Cis8IS0tW2lmIChndGUgSUUgOSl8KGd0IElFTW9iaWxlIDcpXT48IS0tPjxodG1sICBsYW5nPSJlbiIgZGlyPSJsdHIiCisgIHhtbG5zOmNvbnRlbnQ9Imh0dHA6Ly9wdXJsLm9yZy9yc3MvMS4wL21vZHVsZXMvY29udGVudC8iCisgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvIgorICB4bWxuczpmb2FmPSJodHRwOi8veG1sbnMuY29tL2ZvYWYvMC4xLyIKKyAgeG1sbnM6b2c9Imh0dHA6Ly9vZ3AubWUvbnMjIgorICB4bWxuczpyZGZzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzAxL3JkZi1zY2hlbWEjIgorICB4bWxuczpzaW9jPSJodHRwOi8vcmRmcy5vcmcvc2lvYy9ucyMiCisgIHhtbG5zOnNpb2N0PSJodHRwOi8vcmRmcy5vcmcvc2lvYy90eXBlcyMiCisgIHhtbG5zOnNrb3M9Imh0dHA6Ly93d3cudzMub3JnLzIwMDQvMDIvc2tvcy9jb3JlIyIKKyAgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSMiPjwhLS08IVtlbmRpZl0tLT4KKworPGhlYWQgcHJvZmlsZT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbC92b2NhYiI+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorPGxpbmsgcmVsPSJzaG9ydGxpbmsiIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL25vZGUvMzg5NjAiIC8+Cis8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fcHVibGljL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iIC8+Cis8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvdG9waWNzL2xhcmdlLWhhZHJvbi1jb2xsaWRlciIgLz4KKzxtZXRhIG5hbWU9ImNvcHlyaWdodCIgY29udGVudD0iaHR0cDovL2Nlcm4uY2gvY29weXJpZ2h0IiAvPgorPG1ldGEgY29udGVudD0iVGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlciIgYWJvdXQ9Ii90b3BpY3MvbGFyZ2UtaGFkcm9uLWNvbGxpZGVyIiBwcm9wZXJ0eT0iZGM6dGl0bGUiIC8+Cis8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iVGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlciAoTEhDKSBpcyB0aGUgd29ybGTigJlzIGxhcmdlc3QgYW5kIG1vc3QgcG93ZXJmdWwgcGFydGljbGUgYWNjZWxlcmF0b3IuIEl0IGZpcnN0IHN0YXJ0ZWQgdXAgb24gMTAgU2VwdGVtYmVyIDIwMDgsIGFuZCByZW1haW5zIHRoZSBsYXRlc3QgYWRkaXRpb24gdG8gQ0VSTuKAmXMgYWNjZWxlcmF0b3IgY29tcGxleC4gVGhlIExIQyBjb25zaXN0cyBvZiBhIDI3LWtpbG9tZXRyZSByaW5nIG9mIHN1cGVyY29uZHVjdGluZyBtYWduZXRzIHdpdGggYSBudW1iZXIgb2YgYWNjZWxlcmF0aW5nIHN0cnVjdHVyZXMgdG8gYm9vc3QgdGhlIGVuZXJneSBvZiB0aGUgcGFydGljbGVzIGFsb25nIHRoZSB3YXkuIiAvPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEcnVwYWwgNyAoaHR0cDovL2RydXBhbC5vcmcpIiAvPgorICA8dGl0bGU+VGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlciB8IENFUk48L3RpdGxlPgorCisgIDxtZXRhIG5hbWU9Ik1vYmlsZU9wdGltaXplZCIgY29udGVudD0id2lkdGgiPgorICA8bWV0YSBuYW1lPSJIYW5kaGVsZEZyaWVuZGx5IiBjb250ZW50PSJ0cnVlIj4KKyAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iY2xlYXJ0eXBlIiBjb250ZW50PSJvbiI+CisgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSI+CisKKyAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIG1pbmltdW0tc2NhbGU9MS4wIiAvPgorCisgIDwhLS1baWYgKGx0IElFIDkpICYgKCFJRU1vYmlsZSldPgorICAgIDxzY3JpcHQgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9iYXNlL2pzL2llL2h0bWw1LXNoaXYuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9iYXNlL2pzL2llL3Jlc3BvbmQubWluLmpzIj48L3NjcmlwdD4KKyAgPCFbZW5kaWZdLS0+CisKKyAgPCEtLSBUeXBlIGZyb20gR29vZ2xlIEZvbnRzIC0tPgorICA8IS0tPGxpbmsgaHJlZj0nLy9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVBUK1NhbnM6NDAwLDQwMGl0YWxpYyw3MDAnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+IC0tPgorCisgIDwhLS0gVHlwZSBmcm9tIENFUk4gRnJhbWV3b3JrIC0tPgorICA8IS0tPGxpbmsgaHJlZj0nLy9mcmFtZXdvcmsud2ViLmNlcm4uY2gvZnJhbWV3b3JrLzIuMC9mb250cy9QVFNhbnNXZWIvUFRTYW5zV2ViLmNzcycgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgLz4gLS0+CisKKyAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX0FoWmI5LS16Y2pWVFZlVzZDWlFjTmVraGdSOGo2ZmJ6eVlQMDBGZGFDUncuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX0xKRFpGNWpHTzh3TlNrdkpUOXZqTnB1QVZyMkdDMUpJQ1V2OWVUS285LVkuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX2VKeWxDTmtfeFh5cnNIVTZoUWJkT04zODctb21YMkZBbzI1X1hmVWxXcWsuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2ZyYW1ld29yay53ZWIuY2Vybi5jaC9mcmFtZXdvcmsvMi4wL2ZvbnRzL1BUU2Fuc1dlYi9QVFNhbnNXZWIuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX1NNR3NXc0d0eV9TbDVkbU14TUhDbmhwVWs2bTRpS0gtR0lzNHp2SzBvVlkuY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX1h4Ny1aTEh3NmFIQzQ4N3hUel9zN1NiWGFsaVlVMjRETjQ4Q0JKN3dzY2suY3NzIiBtZWRpYT0iYWxsIiAvPgorPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9jc3MvY3NzX2UwT2k4STFMOGNHSjdLeGNVYmltTGtPLWl2bFBEb1pYdUJaTVdLQXo1R1kuY3NzIiBtZWRpYT0icHJpbnQiIC8+CisKKzwhLS1baWYgbHQgSUUgOF0+Cis8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2Nzcy9jc3NfSUo1WjBqNnB5eG5yNFRFbU8waGlYV3JoOEZNcFQ2YXFfaFduMUxwUk5PWS5jc3MiIG1lZGlhPSJhbGwiIC8+Cis8IVtlbmRpZl0tLT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9qcy9qc194QVBsMHFJazllb3d5X2lTOXROa0NXWExVVm9hdDk0U1FUNDhVQkNGa3lRLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvanMvanNfTnBYMmN3Q2VlcGtXWloxOTRCNi1WaXlWQkhsZWFZTE94NVI5RVdCT01SVS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL21vZHVsZXMvbGlnaHRib3gyL2pzL2xpZ2h0Ym94LmpzPzE0MDgzNzE4NDUiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9qcy9qc19oYVlOR1d5NlNCRllabjFtc1pVRHhrUWJacWFqZEFpNHdtVjBBb1p0dFdFLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKzwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KKyhmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWyJHb29nbGVBbmFseXRpY3NPYmplY3QiXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsoaVtyXS5xPWlbcl0ucXx8W10pLnB1c2goYXJndW1lbnRzKX0saVtyXS5sPTEqbmV3IERhdGUoKTthPXMuY3JlYXRlRWxlbWVudChvKSxtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMiLCJnYSIpO2dhKCJjcmVhdGUiLCAiVUEtODA1ODA3OS0yMyIsICJhdXRvIik7Z2EoInNlbmQiLCAicGFnZXZpZXciKTsKKy8vLS0+PCFdXT4KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9qcy9qc19YUDRsNFBEbVhIUTUzMzU3RnEtRVFIcGFETXo2V0NBcWZ0dlFBT3d0RnBnLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKzwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KK2pRdWVyeS5leHRlbmQoRHJ1cGFsLnNldHRpbmdzLCB7ImJhc2VQYXRoIjoiXC8iLCJwYXRoUHJlZml4IjoiIiwiYWpheFBhZ2VTdGF0ZSI6eyJ0aGVtZSI6ImNlcm5fcHVibGljIiwidGhlbWVfdG9rZW4iOiJwSnRZZmZqY1lCRUhIU2d6MU1pMl9rTDhSMlh0bnQ1YnFDR2NTNXV2Y0x3IiwianMiOnsibWlzY1wvanF1ZXJ5LmpzIjoxLCJtaXNjXC9qcXVlcnkub25jZS5qcyI6MSwibWlzY1wvZHJ1cGFsLmpzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9leHRsaW5rXC9leHRsaW5rLmpzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvbGlnaHRib3gyXC9qc1wvbGlnaHRib3guanMiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9jdXN0b21fc2VhcmNoXC9qc1wvY3VzdG9tX3NlYXJjaC5qcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2xpbmtpdFwvZWRpdG9yc1wvY2tlZGl0b3JcL2xpbmtpdERpYWxvZy5qcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvZ29vZ2xlX2FuYWx5dGljc1wvZ29vZ2xlYW5hbHl0aWNzLmpzIjoxLCIwIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX2Jhc2VcL2pzXC9jZXJuLmpzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX3B1YmxpY1wvanNcL3NjcmlwdC5qcyI6MX0sImNzcyI6eyJtb2R1bGVzXC9zeXN0ZW1cL3N5c3RlbS5iYXNlLmNzcyI6MSwibW9kdWxlc1wvc3lzdGVtXC9zeXN0ZW0ubWVudXMuY3NzIjoxLCJtb2R1bGVzXC9zeXN0ZW1cL3N5c3RlbS5tZXNzYWdlcy5jc3MiOjEsIm1vZHVsZXNcL3N5c3RlbVwvc3lzdGVtLnRoZW1lLmNzcyI6MSwibW9kdWxlc1wvYWdncmVnYXRvclwvYWdncmVnYXRvci5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2Nlcm5zZWFyY2hib3hcL2Nlcm5zZWFyY2guY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvY2Vybl90b29sYmFyXC9jc3NcL3JlbW92ZV9leHQuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9kYXRlXC9kYXRlX2FwaVwvZGF0ZS5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2RhdGVcL2RhdGVfcG9wdXBcL3RoZW1lc1wvZGF0ZXBpY2tlci4xLjcuY3NzIjoxLCJtb2R1bGVzXC9maWVsZFwvdGhlbWVcL2ZpZWxkLmNzcyI6MSwibW9kdWxlc1wvbm9kZVwvbm9kZS5jc3MiOjEsIm1vZHVsZXNcL3NlYXJjaFwvc2VhcmNoLmNzcyI6MSwibW9kdWxlc1wvdXNlclwvdXNlci5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2V4dGxpbmtcL2V4dGxpbmsuY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC92aWV3c1wvY3NzXC92aWV3cy5jc3MiOjEsInNpdGVzXC9hbGxcL21vZHVsZXNcL2NrZWRpdG9yXC9jc3NcL2NrZWRpdG9yLmNzcyI6MSwic2l0ZXNcL2FsbFwvbW9kdWxlc1wvc2hpYl9hdXRoXC9zaGliX2F1dGguY3NzIjoxLCJzaXRlc1wvYWxsXC9tb2R1bGVzXC9jdG9vbHNcL2Nzc1wvY3Rvb2xzLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2xpZ2h0Ym94MlwvY3NzXC9saWdodGJveC5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9jdXN0b21fc2VhcmNoXC9jdXN0b21fc2VhcmNoLmNzcyI6MSwiaHR0cDpcL1wvZnJhbWV3b3JrLndlYi5jZXJuLmNoXC9mcmFtZXdvcmtcLzIuMFwvZm9udHNcL1BUU2Fuc1dlYlwvUFRTYW5zV2ViLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL21vZHVsZXNcL2Nlcm5fdG9vbGJhclwvY3NzXC9zY3JlZW4uY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvdGhlbWVzXC9jZXJuX2Jhc2VcL2Nzc1wvZGlzYWJsZVwvc3lzdGVtLm1lbnVzLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9jc3NcL2Rpc2FibGVcL3N5c3RlbS5tZXNzYWdlcy5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9kaXNhYmxlXC9hZHZhbmNlZC1mb3J1bS5zaWx2ZXJfYmVsbHMuaW1hZ2VzLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9iYXNlXC9jc3NcL2Rpc2FibGVcL2FkdmFuY2VkLWZvcnVtLnNpbHZlcl9iZWxscy5zdHlsZS5jc3MiOjEsInNpdGVzXC9ob21lLndlYi5jZXJuLmNoXC90aGVtZXNcL2Nlcm5fYmFzZVwvY3NzXC9iYXNlLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9wdWJsaWNcL2Nzc1wvcHVibGljLmNzcyI6MSwic2l0ZXNcL2hvbWUud2ViLmNlcm4uY2hcL3RoZW1lc1wvY2Vybl9wdWJsaWNcL2Nzc1wvcHJpbnQuY3NzIjoxLCJzaXRlc1wvaG9tZS53ZWIuY2Vybi5jaFwvbW9kdWxlc1wvY2Vybl90b29sYmFyXC9jc3NcL2llLmNzcyI6MX19LCJsaWdodGJveDIiOnsicnRsIjoiMCIsImZpbGVfcGF0aCI6IlwvKFxcd1xcd1wvKXB1YmxpYzpcLyIsImRlZmF1bHRfaW1hZ2UiOiJcL3NpdGVzXC9ob21lLndlYi5jZXJuLmNoXC9tb2R1bGVzXC9saWdodGJveDJcL2ltYWdlc1wvYnJva2VuaW1hZ2UuanBnIiwiYm9yZGVyX3NpemUiOjEwLCJmb250X2NvbG9yIjoiMDAwIiwiYm94X2NvbG9yIjoiZmZmIiwidG9wX3Bvc2l0aW9uIjoiIiwib3ZlcmxheV9vcGFjaXR5IjoiMC44Iiwib3ZlcmxheV9jb2xvciI6IjAwMCIsImRpc2FibGVfY2xvc2VfY2xpY2siOjEsInJlc2l6ZV9zZXF1ZW5jZSI6MCwicmVzaXplX3NwZWVkIjo0MDAsImZhZGVfaW5fc3BlZWQiOjQwMCwic2xpZGVfZG93bl9zcGVlZCI6NjAwLCJ1c2VfYWx0X2xheW91dCI6MCwiZGlzYWJsZV9yZXNpemUiOjAsImRpc2FibGVfem9vbSI6MSwiZm9yY2Vfc2hvd19uYXYiOjAsInNob3dfY2FwdGlvbiI6MSwibG9vcF9pdGVtcyI6MCwibm9kZV9saW5rX3RleHQiOiJWaWV3IEltYWdlIERldGFpbHMiLCJub2RlX2xpbmtfdGFyZ2V0IjowLCJpbWFnZV9jb3VudCI6IkltYWdlICFjdXJyZW50IG9mICF0b3RhbCIsInZpZGVvX2NvdW50IjoiVmlkZW8gIWN1cnJlbnQgb2YgIXRvdGFsIiwicGFnZV9jb3VudCI6IlBhZ2UgIWN1cnJlbnQgb2YgIXRvdGFsIiwibGl0ZV9wcmVzc194X2Nsb3NlIjoicHJlc3MgXHUwMDNDYSBocmVmPVx1MDAyMiNcdTAwMjIgb25jbGljaz1cdTAwMjJoaWRlTGlnaHRib3goKTsgcmV0dXJuIEZBTFNFO1x1MDAyMlx1MDAzRVx1MDAzQ2tiZFx1MDAzRXhcdTAwM0NcL2tiZFx1MDAzRVx1MDAzQ1wvYVx1MDAzRSB0byBjbG9zZSIsImRvd25sb2FkX2xpbmtfdGV4dCI6IiIsImVuYWJsZV9sb2dpbiI6ZmFsc2UsImVuYWJsZV9jb250YWN0IjpmYWxzZSwia2V5c19jbG9zZSI6ImMgeCAyNyIsImtleXNfcHJldmlvdXMiOiJwIDM3Iiwia2V5c19uZXh0IjoibiAzOSIsImtleXNfem9vbSI6InoiLCJrZXlzX3BsYXlfcGF1c2UiOiIzMiIsImRpc3BsYXlfaW1hZ2Vfc2l6ZSI6Im9yaWdpbmFsIiwiaW1hZ2Vfbm9kZV9zaXplcyI6IigpIiwidHJpZ2dlcl9saWdodGJveF9jbGFzc2VzIjoiIiwidHJpZ2dlcl9saWdodGJveF9ncm91cF9jbGFzc2VzIjoiIiwidHJpZ2dlcl9zbGlkZXNob3dfY2xhc3NlcyI6IiIsInRyaWdnZXJfbGlnaHRmcmFtZV9jbGFzc2VzIjoiIiwidHJpZ2dlcl9saWdodGZyYW1lX2dyb3VwX2NsYXNzZXMiOiIiLCJjdXN0b21fY2xhc3NfaGFuZGxlciI6MCwiY3VzdG9tX3RyaWdnZXJfY2xhc3NlcyI6IiIsImRpc2FibGVfZm9yX2dhbGxlcnlfbGlzdHMiOnRydWUsImRpc2FibGVfZm9yX2FjaWRmcmVlX2dhbGxlcnlfbGlzdHMiOnRydWUsImVuYWJsZV9hY2lkZnJlZV92aWRlb3MiOnRydWUsInNsaWRlc2hvd19pbnRlcnZhbCI6NTAwMCwic2xpZGVzaG93X2F1dG9tYXRpY19zdGFydCI6dHJ1ZSwic2xpZGVzaG93X2F1dG9tYXRpY19leGl0Ijp0cnVlLCJzaG93X3BsYXlfcGF1c2UiOnRydWUsInBhdXNlX29uX25leHRfY2xpY2siOmZhbHNlLCJwYXVzZV9vbl9wcmV2aW91c19jbGljayI6dHJ1ZSwibG9vcF9zbGlkZXMiOmZhbHNlLCJpZnJhbWVfd2lkdGgiOjYwMCwiaWZyYW1lX2hlaWdodCI6NDAwLCJpZnJhbWVfYm9yZGVyIjoxLCJlbmFibGVfdmlkZW8iOjB9LCJjdXN0b21fc2VhcmNoIjp7ImZvcm1fdGFyZ2V0IjoiX3NlbGYiLCJzb2xyIjowfSwiZXh0bGluayI6eyJleHRUYXJnZXQiOjAsImV4dENsYXNzIjoiZXh0IiwiZXh0TGFiZWwiOiIobGluayBpcyBleHRlcm5hbCkiLCJleHRJbWdDbGFzcyI6MCwiZXh0U3ViZG9tYWlucyI6MSwiZXh0RXhjbHVkZSI6Il5Db2xsbGlkZUBDRVJOJHwoY2Vybi5zZXJ2aWNlLW5vd1xcLmNvbSkiLCJleHRJbmNsdWRlIjoiIiwiZXh0Q3NzRXhjbHVkZSI6IiIsImV4dENzc0V4cGxpY2l0IjoiIiwiZXh0QWxlcnQiOjAsImV4dEFsZXJ0VGV4dCI6IlRoaXMgbGluayB3aWxsIHRha2UgeW91IHRvIGFuIGV4dGVybmFsIHdlYiBzaXRlLiBXZSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciB0aGVpciBjb250ZW50LiIsIm1haWx0b0NsYXNzIjoibWFpbHRvIiwibWFpbHRvTGFiZWwiOiIobGluayBzZW5kcyBlLW1haWwpIn0sImdvb2dsZWFuYWx5dGljcyI6eyJ0cmFja091dGJvdW5kIjoxLCJ0cmFja01haWx0byI6MSwidHJhY2tEb3dubG9hZCI6MSwidHJhY2tEb3dubG9hZEV4dGVuc2lvbnMiOiI3enxhYWN8YXJjfGFyanxhc2Z8YXN4fGF2aXxiaW58Y3N2fGRvY3xleGV8Zmx2fGdpZnxnenxnemlwfGhxeHxqYXJ8anBlP2d8anN8bXAoMnwzfDR8ZT9nKXxtb3YoaWUpP3xtc2l8bXNwfHBkZnxwaHBzfHBuZ3xwcHR8cXRtP3xyYShtfHIpP3xzZWF8c2l0fHRhcnx0Z3p8dG9ycmVudHx0eHR8d2F2fHdtYXx3bXZ8d3BkfHhsc3x4bWx8enx6aXAifX0pOworLy8tLT48IV1dPgorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKworPGJvZHkgaWQ9InBhZ2UtdG9waWNzLWxhcmdlLWhhZHJvbi1jb2xsaWRlciIgY2xhc3M9InNlY3Rpb24tdG9waWNzIHNlY3Rpb24tdG9waWNzLWxhcmdlLWhhZHJvbi1jb2xsaWRlciBoaWdod29uZGVyIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL3RvcGljLXN0dWIvaGlnaHdvbmRlci1iZy90b3BpYy1saGMuanBnJyk7Ij4KKyAgICA8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLXBhZ2UtdG9wIj4KKyAgICAKKworPGRpdiBpZD0iY2Vybi10b29sYmFyIiBjbGFzcz0idXNlci1ub3QtYXV0aGVudGljYXRlZCI+CisgIDxoMT48YSBocmVmPSJodHRwOi8vY2Vybi5jaCIgdGl0bGU9IkNFUk4iPkNFUk4gPHNwYW4+QWNjZWxlcmF0aW5nIHNjaWVuY2U8L3NwYW4+PC9hPjwvaDE+PHVsPjxsaSBjbGFzcz0iY2Vybi1hY2NvdW50bGkiPjxhIGhyZWY9Imh0dHBzOi8vaG9tZS53ZWIuY2Vybi5jaC9TaGliYm9sZXRoLnNzby8/dGFyZ2V0PWh0dHBzJTNBJTJGJTJGaG9tZS53ZWIuY2Vybi5jaCUyRnNoaWJfbG9naW4lMkZub2RlJTJGMzg5NjAiIHRpdGxlPSJTaWduIGluIHRvIHlvdXIgQ0VSTiBhY2NvdW50IiBjbGFzcz0iY2Vybi1hY2NvdW50Ij5TaWduIGluPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL2RpcmVjdG9yeSIgdGl0bGU9IlNlYXJjaCBDRVJOIHJlc291cmNlcyBhbmQgYnJvd3NlIHRoZSBkaXJlY3RvcnkiIGNsYXNzPSJjZXJuLWRpcmVjdG9yeSI+RGlyZWN0b3J5PC9hPjwvbGk+PC91bD48L2Rpdj4KKyAgPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKyAgPCEtLSBwYWdlLnRwbCBmcm9tIGNlcm5fcHVibGljIGJlZ2lucyAtLT4KKworCis8aGVhZGVyIGlkPSJoZWFkZXIiIHJvbGU9ImJhbm5lciI+CisKKyAgPGgxIGlkPSJjZXJuLWxvZ28iPjxhIGhyZWY9Ii8iIHRpdGxlPSJIb21lIiByZWw9ImhvbWUiPkNFUk48L2E+PC9oMT4KKworICAKKyAgPGRpdiBpZD0iaGVhZGVyLWNvbnRlbnQiPgorICAgIDxkaXYgaWQ9Im5hdi1iYXIiPgorICAgICAgICAgICAgICA8bmF2IGlkPSJtYWluLW1lbnUiIHJvbGU9Im5hdmlnYXRpb24iPgorICAgICAgICAgIDxoMiBjbGFzcz0iZWxlbWVudC1pbnZpc2libGUiPk1haW4gbWVudTwvaDI+PHVsIGlkPSJuYXYiIGNsYXNzPSJtZW51Ij48bGkgY2xhc3M9Im1lbnUtNDYxIGZpcnN0Ij48YSBocmVmPSIvYWJvdXQiPkFib3V0IENFUk48L2E+PC9saT4KKzxsaSBjbGFzcz0ibWVudS02NzUiPjxhIGhyZWY9Ii9zdHVkZW50cy1lZHVjYXRvcnMiPlN0dWRlbnRzICZhbXA7IEVkdWNhdG9yczwvYT48L2xpPgorPGxpIGNsYXNzPSJtZW51LTY3MyI+PGEgaHJlZj0iL3NjaWVudGlzdHMiPlNjaWVudGlzdHM8L2E+PC9saT4KKzxsaSBjbGFzcz0ibWVudS02NzQgbGFzdCI+PGEgaHJlZj0iL2Nlcm4tcGVvcGxlIj5DRVJOIHBlb3BsZTwvYT48L2xpPgorPC91bD4gICAgICAgIDwvbmF2PgorICAgICAgICAgIAkgIAk8L2Rpdj4KKwk8L2Rpdj4KKworCQorPC9oZWFkZXI+CisKKzxkaXYgaWQ9Im1haW4iIGNsYXNzPSJub25lIj4KKworICA8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0iY29sdW1uIiByb2xlPSJtYWluIj4KKworICAJPGFydGljbGUgY2xhc3M9InBhZ2UgY2xlYXJmaXgiPgorICAJCTxhIGlkPSJtYWluLWNvbnRlbnQiPjwvYT4KKyAgCQk8aGVhZGVyPgorICAJCQkgICAgICAgICAgICAgICAgICAgIAk8aDMgY2xhc3M9InRvcGljLWZsYWciPjxhIGhyZWY9Ii90b3BpY3MvIj5Ub3BpYzwvYT48L2gzPgorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8aDE+VGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlcjwvaDE+CisKKyAgICAgICAgICAgIAorICAJCQkKKyAgICAgICAgICAgICAgICAgICAgICAgIAorPCEtLSBub2RlLnRwbCBmcm9tIGNlcm5fcHVibGljIGJlZ2lucyAtLT4KKworCisKKzwvaGVhZGVyPgorCis8ZGl2IGNsYXNzPSJoaWdod29uZGVyLWNvbnRlbnQtYmFja2dyb3VuZCI+CisKKzxhc2lkZSBpZD0ibWV0YS1zaWRlYmFyIiBjbGFzcz0ic2lkZWJhcnMiPgorCisJCisJPHNlY3Rpb24gaWQ9Im1ldGEtc3VibWl0dGVkIiBjbGFzcz0iYmxvY2siPgorCSAgICAgIDxwPjxlbT4KKyAgICAgICAgIDwvZW0+PC9wPgorCTwvc2VjdGlvbj4KKzwvYXNpZGU+CisKKzxkaXYgY2xhc3M9ImhpZ2h3b25kZXItY29udGVudCI+CisKKwkKKyAgCisgICAgCisgIDxkaXYgY2xhc3M9ImZpZWxkLWJvZHkiPgorICAgIDxwPlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgKExIQykgaXMgdGhlIHdvcmxk4oCZcyBsYXJnZXN0IGFuZCBtb3N0IHBvd2VyZnVsIDxhIGhyZWY9Ii9hYm91dC9ob3ctYWNjZWxlcmF0b3Itd29ya3MiPnBhcnRpY2xlIGFjY2VsZXJhdG9yPC9hPi4gSXQgZmlyc3Qgc3RhcnRlZCB1cCBvbiAxMCBTZXB0ZW1iZXIgMjAwOCwgYW5kIHJlbWFpbnMgdGhlIGxhdGVzdCBhZGRpdGlvbiB0byBDRVJO4oCZcyA8YSBocmVmPSIvYWJvdXQvYWNjZWxlcmF0b3JzIj5hY2NlbGVyYXRvciBjb21wbGV4PC9hPi4gVGhlIExIQyBjb25zaXN0cyBvZiBhIDI3LWtpbG9tZXRyZSByaW5nIG9mIHN1cGVyY29uZHVjdGluZyBtYWduZXRzIHdpdGggYSBudW1iZXIgb2YgYWNjZWxlcmF0aW5nIHN0cnVjdHVyZXMgdG8gYm9vc3QgdGhlIGVuZXJneSBvZiB0aGUgcGFydGljbGVzIGFsb25nIHRoZSB3YXkuPC9wPgorCis8cD5JbnNpZGUgdGhlIGFjY2VsZXJhdG9yLCB0d28gaGlnaC1lbmVyZ3kgcGFydGljbGUgYmVhbXMgdHJhdmVsIGF0IGNsb3NlIHRvIHRoZSBzcGVlZCBvZiBsaWdodCBiZWZvcmUgdGhleSBhcmUgbWFkZSB0byBjb2xsaWRlLiBUaGUgYmVhbXMgdHJhdmVsIGluIG9wcG9zaXRlIGRpcmVjdGlvbnMgaW4gc2VwYXJhdGUgYmVhbSBwaXBlcyDigJMgdHdvIHR1YmVzIGtlcHQgYXQgPGEgaHJlZj0iL2Fib3V0L2VuZ2luZWVyaW5nL3ZhY3V1bS1lbXB0eS1pbnRlcnBsYW5ldGFyeS1zcGFjZSI+dWx0cmFoaWdoIHZhY3V1bTwvYT4uIFRoZXkgYXJlIGd1aWRlZCBhcm91bmQgdGhlIGFjY2VsZXJhdG9yIHJpbmcgYnkgYSBzdHJvbmcgbWFnbmV0aWMgZmllbGQgbWFpbnRhaW5lZCBieSA8YSBocmVmPSIvYWJvdXQvZW5naW5lZXJpbmcvcHVsbGluZy10b2dldGhlci1zdXBlcmNvbmR1Y3RpbmctZWxlY3Ryb21hZ25ldHMiPnN1cGVyY29uZHVjdGluZyBlbGVjdHJvbWFnbmV0czwvYT4uIFRoZSBlbGVjdHJvbWFnbmV0cyBhcmUgYnVpbHQgZnJvbSBjb2lscyBvZiBzcGVjaWFsIGVsZWN0cmljIGNhYmxlIHRoYXQgb3BlcmF0ZXMgaW4gYSBzdXBlcmNvbmR1Y3Rpbmcgc3RhdGUsIGVmZmljaWVudGx5IGNvbmR1Y3RpbmcgZWxlY3RyaWNpdHkgd2l0aG91dCByZXNpc3RhbmNlIG9yIGxvc3Mgb2YgZW5lcmd5LiBUaGlzIHJlcXVpcmVzIGNoaWxsaW5nIHRoZSBtYWduZXRzIHRvIOKAkTI3MS4zwrBDIOKAkyA8YSBocmVmPSIvYWJvdXQvZW5naW5lZXJpbmcvY3J5b2dlbmljcy1sb3ctdGVtcGVyYXR1cmVzLWhpZ2gtcGVyZm9ybWFuY2UiPmEgdGVtcGVyYXR1cmUgY29sZGVyIHRoYW4gb3V0ZXIgc3BhY2U8L2E+LiBGb3IgdGhpcyByZWFzb24sIG11Y2ggb2YgdGhlIGFjY2VsZXJhdG9yIGlzIGNvbm5lY3RlZCB0byBhIGRpc3RyaWJ1dGlvbiBzeXN0ZW0gb2YgbGlxdWlkIGhlbGl1bSwgd2hpY2ggY29vbHMgdGhlIG1hZ25ldHMsIGFzIHdlbGwgYXMgdG8gb3RoZXIgc3VwcGx5IHNlcnZpY2VzLjwvcD4KKworPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2lubGluZS1pbWFnZXMvb2xkL2xoY19sb25nXzEuanBnIiAvPjxmaWdjYXB0aW9uPlRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgaXMgdGhlIHdvcmxkJ3MgbGFyZ2VzdCBhbmQgbW9zdCBwb3dlcmZ1bCBwYXJ0aWNsZSBhY2NlbGVyYXRvciAoSW1hZ2U6IENFUk4pPC9maWdjYXB0aW9uPjwvZmlndXJlPgorCis8cD5UaG91c2FuZHMgb2YgbWFnbmV0cyBvZiBkaWZmZXJlbnQgdmFyaWV0aWVzIGFuZCBzaXplcyBhcmUgdXNlZCB0byBkaXJlY3QgdGhlIGJlYW1zIGFyb3VuZCB0aGUgYWNjZWxlcmF0b3IuIFRoZXNlIGluY2x1ZGUgMTIzMiBkaXBvbGUgbWFnbmV0cyAxNSBtZXRyZXMgaW4gbGVuZ3RoIHdoaWNoIGJlbmQgdGhlIGJlYW1zLCBhbmQgMzkyIHF1YWRydXBvbGUgbWFnbmV0cywgZWFjaCA14oCTNyBtZXRyZXMgbG9uZywgd2hpY2ggZm9jdXMgdGhlIGJlYW1zLiBKdXN0IHByaW9yIHRvIGNvbGxpc2lvbiwgYW5vdGhlciB0eXBlIG9mIG1hZ25ldCBpcyB1c2VkIHRvICJzcXVlZXplIiB0aGUgcGFydGljbGVzIGNsb3NlciB0b2dldGhlciB0byBpbmNyZWFzZSB0aGUgY2hhbmNlcyBvZiBjb2xsaXNpb25zLiBUaGUgcGFydGljbGVzIGFyZSBzbyB0aW55IHRoYXQgdGhlIHRhc2sgb2YgbWFraW5nIHRoZW0gY29sbGlkZSBpcyBha2luIHRvIGZpcmluZyB0d28gbmVlZGxlcyAxMCBraWxvbWV0cmVzIGFwYXJ0IHdpdGggc3VjaCBwcmVjaXNpb24gdGhhdCB0aGV5IG1lZXQgaGFsZndheS48L3A+CisKKzxwPkFsbCB0aGUgY29udHJvbHMgZm9yIHRoZSBhY2NlbGVyYXRvciwgaXRzIHNlcnZpY2VzIGFuZCB0ZWNobmljYWwgaW5mcmFzdHJ1Y3R1cmUgYXJlIGhvdXNlZCB1bmRlciBvbmUgcm9vZiBhdCB0aGUgQ0VSTiBDb250cm9sIENlbnRyZS4gRnJvbSBoZXJlLCB0aGUgYmVhbXMgaW5zaWRlIHRoZSBMSEMgYXJlIG1hZGUgdG8gY29sbGlkZSBhdCBmb3VyIGxvY2F0aW9ucyBhcm91bmQgdGhlIGFjY2VsZXJhdG9yIHJpbmcsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBvc2l0aW9ucyBvZiBmb3VyIDxhIGhyZWY9Ii9hYm91dC9ob3ctZGV0ZWN0b3Itd29ya3MiPnBhcnRpY2xlIGRldGVjdG9yczwvYT4g4oCTIDxhIGhyZWY9Ii9hYm91dC9leHBlcmltZW50cy9hdGxhcyI+QVRMQVM8L2E+LCA8YSBocmVmPSIvYWJvdXQvZXhwZXJpbWVudHMvY21zIj5DTVM8L2E+LCA8YSBocmVmPSIvYWJvdXQvZXhwZXJpbWVudHMvYWxpY2UiPkFMSUNFPC9hPiBhbmQgPGEgaHJlZj0iL2Fib3V0L2V4cGVyaW1lbnRzL2xoY2IiPkxIQ2IuPC9hPjwvcD4KKworCis8cD4mbmJzcDs8L3A+CisKKworPHA+Jm5ic3A7PC9wPgorCisKKzxzZWN0aW9uIGNsYXNzPSJibHVyYiI+Cis8cD48YSBocmVmPSJodHRwOi8vY2RzLmNlcm4uY2gvcmVjb3JkLzExNjU1MzQvZmlsZXMvQ0VSTi1Ccm9jaHVyZS0yMDA5LTAwMy1FbmcucGRmIj48aW1nIGFsdD0iVGVjaG5pY2lhbnMgZ2V0IGFyb3VuZCB0aGUgdHVubmVsIG9uIGJpY3ljbGVzIiBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2lubGluZS1pbWFnZXMvb2xkL3R1bm5lbC10cmFuc3BvcnQuanBnIiAvPjwvYT48L3A+Cis8aDE+PGEgaHJlZj0iaHR0cDovL2Nkcy5jZXJuLmNoL3JlY29yZC8xMTY1NTM0L2ZpbGVzL0NFUk4tQnJvY2h1cmUtMjAwOS0wMDMtRW5nLnBkZiI+RmFjdHMgYW5kIEZpZ3VyZXMgW1BERl08L2E+PC9oMT4KKzxwPkhvdyBtYW55IGtpbG9tZXRyZXMgb2YgY2FibGVzIGFyZSB0aGVyZSBvbiB0aGUgTEhDPyBIb3cgbG93Jm5ic3A7aXMgdGhlIHByZXNzdXJlIGluIHRoZSBiZWFtIHBpcGU/IERpc2NvdmVyIGZhY3RzIGFuZCBmaWd1cmVzIGFib3V0IHRoZSBpbiB0aGUgaGFuZHkgTEhDIGd1aWRlPC9wPgorPGgzPjxhIGhyZWY9Imh0dHA6Ly9jZHMuY2Vybi5jaC9yZWNvcmQvMTE2NTUzNC9maWxlcy9DRVJOLUJyb2NodXJlLTIwMDktMDAzLUVuZy5wZGYiPkRvd25sb2FkIHRoZSBMSEMgZ3VpZGUgW1BERl08L2E+PC9oMz4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gY2xhc3M9ImJsdXJiIj4KKzxwPjxhIGhyZWY9Imh0dHA6Ly9wcmVzcy53ZWIuY2Vybi5jaC9iYWNrZ3JvdW5kZXJzL3NhZmV0eS1saGMiPjxpbWcgYWx0PSJDRVJOIGZpcmVmaWdodGVycyBkdXJpbmcgdGhlaXIgZGFpbHkgc2FmZXR5IHRyYWluaW5nIiBldmVudCIgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9pbWFnZS9pbmxpbmUtaW1hZ2VzL29sZC9maXJlX3NhZmV0eS5qcGciIC8+PC9hPjwvcD4KKzxoMT48YSBocmVmPSJodHRwOi8vcHJlc3Mud2ViLmNlcm4uY2gvYmFja2dyb3VuZGVycy9zYWZldHktbGhjIj5TYWZldHkgb2YgdGhlIExIQzwvYT48L2gxPgorPHA+Q0VSTiB0YWtlcyBzYWZldHkgdmVyeSBzZXJpb3VzbHkuIFRoaXMmbmJzcDtyZXBvcnQgYnkgdGhlIExIQyBTYWZldHkgQXNzZXNzbWVudCBHcm91cCAoTFNBRykgY29uZmlybXMgdGhhdCBMSEMgY29sbGlzaW9ucyBwcmVzZW50IG5vIGRhbmdlciBhbmQgdGhhdCB0aGVyZSBhcmUgbm8gcmVhc29ucyBmb3IgY29uY2VybjwvcD4KKzxoMz48YSBocmVmPSJodHRwOi8vcHJlc3Mud2ViLmNlcm4uY2gvYmFja2dyb3VuZGVycy9zYWZldHktbGhjIj5SZWFkIGFib3V0IHRoZSBzYWZldHkgb2YgdGhlIExIQzwvYT48L2gzPgorPC9zZWN0aW9uPgorICA8L2Rpdj4KKworICA8ZW0+CisgICAgICA8L2VtPgorCisgIDwhLS0KKworICAgIDxwIGNsYXNzPSJzdWJtaXR0ZWQgbWV0YSI+CisgICAgICAgICAgPC9wPgorCisKKyAgLS0+CisKKyAgCisKKworCisKKzwhLS0gL25vZGUudHBsIGZyb20gY2Vybl9wdWJsaWMgZW5kcyAtLT4KKzxkaXYgaWQ9ImJsb2NrLXZpZXdzLXRvcGljcy1ibG9jay0xIiBjbGFzcz0iYmxvY2sgYmxvY2stdmlld3MiPgorCisgICAgICAgIDxoMj5GZWF0dXJlZCB1cGRhdGVzIG9uIHRoaXMgdG9waWM8L2gyPgorICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3IHZpZXctdG9waWNzIHZpZXctaWQtdG9waWNzIHZpZXctZGlzcGxheS1pZC1ibG9ja18xIHZpZXctZG9tLWlkLWFmODBhMWZmYWFiNjMxMjBkZTBkMmMxNTU2ODdmNjBiIj4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICAgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1maXJzdCI+CisgICAgICAKKyAgICAgICAgICA8YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzAyL3BpY3R1cmVzLWFjY2Vzcy1sYXN0LWxoYy1zcGxpY2UiPjxpbWcgdHlwZW9mPSJmb2FmOkltYWdlIiBzcmM9Imh0dHA6Ly9ob21lLndlYi5jZXJuLmNoL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvZmlsZXMvc3R5bGVzLzQwMC9wdWJsaWMvaW1hZ2UvdXBkYXRlLWZvcl90aGVfcHVibGljLzIwMTQvMDIvc21hY2NfZmluaXNoX2xpbmUuanBnP2l0b2s9Skcta2JPYmoiIHdpZHRoPSI0MDAiIGhlaWdodD0iMjY3IiBhbHQ9IiIgLz48L2E+ICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDIvcGljdHVyZXMtYWNjZXNzLWxhc3QtbGhjLXNwbGljZSI+SW4gcGljdHVyZXM6IEFjY2VzcyB0byB0aGUgbGFzdCBMSEMgc3BsaWNlPC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjExIEZlYiAyMDE0ICZuZGFzaDs8L3NwYW4+IEEgdGVhbSBjb21wb3NlZCBvZiBDRVJOIHN0YWZmLCBpbmR1c3RyaWFsIHN1cHBvcnQgYW5kIG1lY2hhbmljcyBmcm9tIFBha2lzdGFuIGhhdmUgZ2l2ZW4gYWNjZXNzIHRvIHRoZSBsYXN0IExIQyBzcGxpY2UgZm9yIGluc3BlY3Rpb248L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTIgdmlld3Mtcm93LWV2ZW4gdmlld3Mtcm93LWxhc3QiPgorICAgICAgCisgICAgICAgICAgICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTMvMTEveC1yYXktdGVzdHMtbmlnaHQtY29sbGlkZXIiPlgtcmF5IHRlc3RzOiBOaWdodCBhdCB0aGUgY29sbGlkZXI8L2E+PC9oMz4gIDwvZGl2PiAgCisgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9Im1ldGEgZGF0ZSI+MjUgTm92IDIwMTMgJm5kYXNoOzwvc3Bhbj4gV2hlbiBuaWdodCBmYWxscyBvdmVyIENFUk4sIGEgdGVhbSBvZiBYLXJheSBleHBlcnRzIGdvIHVuZGVyZ3JvdW5kIHRvIHBlcmZvcm0gdGVzdHMgb24gdGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlcjwvcD4gICAgPC9kaXY+CisgICAgPC9kaXY+CisgIAorICAKKyAgCisgICAKKworICAKKyAgCis8L2Rpdj4gIAorPC9kaXY+Cis8ZGl2IGlkPSJibG9jay12aWV3cy10b3BpY3MtYmxvY2stMyIgY2xhc3M9ImJsb2NrIGJsb2NrLXZpZXdzIj4KKworICAgICAgICA8aDI+VXBkYXRlczwvaDI+CisgICAgCisgIDxkaXYgY2xhc3M9InZpZXcgdmlldy10b3BpY3Mgdmlldy1pZC10b3BpY3Mgdmlldy1kaXNwbGF5LWlkLWJsb2NrXzMgdG9waWNzLWFsbC11cGRhdGVzIHZpZXctZG9tLWlkLTQ0YTBhODBlOWQzY2RiNjA5YjM3OGM0MGQxMmViYzRhIj4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICAgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1maXJzdCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPGgzIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzA4L3RlY2huaWNhbC10cm91Ymxlc2hvb3RpbmctY2Vybi1jb250cm9sLWNlbnRyZSI+VGVjaG5pY2FsIHRyb3VibGVzaG9vdGluZyBhdCB0aGUgQ0VSTiBDb250cm9sIENlbnRyZTwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj40IEF1ZyAyMDE0ICZuZGFzaDs8L3NwYW4+IEEgdGVhbSBpcyBvbiBjYWxsIDI0IGhvdXJzIGEgZGF5IHRvIG1vbml0b3IgdGVjaG5pY2FsIHN5c3RlbXMgYW5kIHF1aWNrbHkgcmVzcG9uZCB0byBhbGVydHMgYWNyb3NzIENFUk4ncyBhY2NlbGVyYXRvciBjb21wbGV4PC9wPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0yIHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDYvY29zbWljLXJheXMtdHVuZS1hdGxhcy1wYXJ0aWNsZS1zeW1waG9ueSI+Q29zbWljIHJheXMgdHVuZSBBVExBUyBmb3IgYSBwYXJ0aWNsZSBzeW1waG9ueTwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj4yNyBKdW4gMjAxNCAmbmRhc2g7PC9zcGFuPiBJbiBwcmVwYXJhdGlvbiBmb3IgdGhlIExIQydzIG5leHQgcnVuLCBwaHlzaWNpc3RzIGFyZSBjYWxpYnJhdGluZyB0aGUgQVRMQVMgZXhwZXJpbWVudCAtIHdpdGggaGlnaC1lbmVyZ3kgcmF5cyBmcm9tIG91dGVyIHNwYWNlPC9wPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQiPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxNC8wNi9jZXJuLWFubm91bmNlcy1saGMtcmVzdGFydC1zY2hlZHVsZSI+Q0VSTiBhbm5vdW5jZXMgTEhDIHJlc3RhcnQgc2NoZWR1bGU8L2E+PC9oMz4gIDwvZGl2PiAgCisgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9Im1ldGEgZGF0ZSI+MjMgSnVuIDIwMTQgJm5kYXNoOzwvc3Bhbj4gQ29vbCBkb3duIG9mIHRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgaGFzIGFscmVhZHkgYmVndW4gaW4gcHJlcGFyYXRpb24gZm9yIHJlc2VhcmNoIHRvIHJlc3VtZSBlYXJseSBpbiAyMDE1PC9wPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy00IHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDYvY2Vybi1leHBlcmltZW50cy1yZXBvcnQtbmV3LWhpZ2dzLWJvc29uLW1lYXN1cmVtZW50cyI+Q0VSTiBleHBlcmltZW50cyByZXBvcnQgbmV3IEhpZ2dzIGJvc29uIG1lYXN1cmVtZW50czwvYT48L2gzPiAgPC9kaXY+ICAKKyAgICAgICAgICA8cD48c3BhbiBjbGFzcz0ibWV0YSBkYXRlIj4yMyBKdW4gMjAxNCAmbmRhc2g7PC9zcGFuPiBSZXN1bHRzIHJlcG9ydGVkIGJ5IEFUTEFTIGFuZCBDTVMgZGlzY3VzcyB0aGUgZGVjYXkgb2YgSGlnZ3MgYm9zb25zIGRpcmVjdGx5IHRvIGZlcm1pb25zLCB0aGUgcGFydGljbGVzIHRoYXQgbWFrZSB1cCBtYXR0ZXI8L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTUgdmlld3Mtcm93LW9kZCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPGgzIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDE0LzA2L2hvdy11bml2ZXJzYWwtbGVwdG9uLXVuaXZlcnNhbGl0eSI+SG93IHVuaXZlcnNhbCBpcyAobGVwdG9uKSB1bml2ZXJzYWxpdHk/PC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjMgSnVuIDIwMTQgJm5kYXNoOzwvc3Bhbj4gTmV3IHJlc3VsdHMgZnJvbSBMSENiIHN1Z2dlc3QgdGhhdCBCK21lc29ucyBkZWNheSB0byBtdW9ucyBhYm91dCAyNSUgbGVzcyBvZnRlbiB0aGFuIHRoZXkgZGVjYXkgdG8gZWxlY3Ryb25zPC9wPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy02IHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDUvdG91ci1jb250aW51ZXMtbGFyZ2UtaGFkcm9uLWNvbGxpZGVyIj5UaGUgdG91ciBjb250aW51ZXMgZm9yIHRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXI8L2E+PC9oMz4gIDwvZGl2PiAgCisgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9Im1ldGEgZGF0ZSI+MjMgTWF5IDIwMTQgJm5kYXNoOzwvc3Bhbj4gVG9kYXkgdGhlIENvbGxpZGVyIGV4aGliaXRpb24sIHdoaWNoIGJlZ2FuIGxpZmUgYXQgTG9uZG9u4oCZcyBTY2llbmNlIE11c2V1bSwgbGF1bmNoZXMgaW4gTWFuY2hlc3RlciwgVUssIGFoZWFkIG9mIGFuIGludGVybmF0aW9uYWwgdG91cjwvcD4gICAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctNyB2aWV3cy1yb3ctb2RkIj4KKyAgICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDUvbGhjLWNvbnNvbGlkYXRpb25zLTI3MDAwLXNodW50cy1ub3ctcGxhY2UiPkxIQyBjb25zb2xpZGF0aW9uczogMjcsMDAwIHNodW50cyBub3cgaW4gcGxhY2U8L2E+PC9oMz4gIDwvZGl2PiAgCisgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9Im1ldGEgZGF0ZSI+NSBNYXkgMjAxNCAmbmRhc2g7PC9zcGFuPiBTb21lIDI3LDAwMCBlbGVjdHJpY2FsIHNodW50cyBoYXZlIGJlZW4gYWRkZWQgdG8gY29ubmVjdGlvbnMgYmV0d2VlbiBtYWduZXRzIG9uIHRoZSBMSEM8L3A+ICAgIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTggdmlld3Mtcm93LWV2ZW4iPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxoMyBjbGFzcz0iZmllbGQtY29udGVudCI+PGEgaHJlZj0iL2Fib3V0L3VwZGF0ZXMvMjAxNC8wNC90cmFja2luZy1wYXJ0aWNsZXMtZmFzdGVyLWxoYyI+VHJhY2tpbmcgcGFydGljbGVzIGZhc3RlciBhdCB0aGUgTEhDPC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjIyIEFwciAyMDE0ICZuZGFzaDs8L3NwYW4+IEEgbmV3IHRyaWdnZXIgc3lzdGVtIHdpbGwgZXhwYW5kIHdoYXQgQVRMQVMgc2NpZW50aXN0cyBjYW4gbG9vayBmb3IgZHVyaW5nIGhpZ2gtZW5lcmd5IGNvbGxpc2lvbnMgYXQgdGhlIExhcmdlIEhhZHJvbiBDb2xsaWRlcjwvcD4gICAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctOSB2aWV3cy1yb3ctb2RkIj4KKyAgICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3cy1maWVsZCB2aWV3cy1maWVsZC10aXRsZSI+ICAgICAgICA8aDMgY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9hYm91dC91cGRhdGVzLzIwMTQvMDMvbWljcm9lbGVjdHJvbmljcy1jZXJuLWluZmFuY3ktbWF0dXJpdHkiPk1pY3JvZWxlY3Ryb25pY3MgYXQgQ0VSTjogZnJvbSBpbmZhbmN5IHRvIG1hdHVyaXR5PC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjQgTWFyIDIwMTQgJm5kYXNoOzwvc3Bhbj4gVGhlIHN0YXJ0IG9mIHRoZSBMQUEgcHJvamVjdCBpbiAxOTg2IHByb3BlbGxlZCBlbGVjdHJvbmljcyBhdCBDRVJOIGludG8gdGhlIGVyYSBvZiBtaWNyb2VsZWN0cm9uaWNzPC9wPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0xMCB2aWV3cy1yb3ctZXZlbiB2aWV3cy1yb3ctbGFzdCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPGgzIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvYWJvdXQvdXBkYXRlcy8yMDEzLzEyL2hpZ2hsaWdodHMtY2Vybi0yMDEzIj5IaWdobGlnaHRzIGZyb20gQ0VSTiBpbiAyMDEzPC9hPjwvaDM+ICA8L2Rpdj4gIAorICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJtZXRhIGRhdGUiPjE5IERlYyAyMDEzICZuZGFzaDs8L3NwYW4+IEhpZ2dzIGJvc29uIGRlY2F5cywgYSBOb2JlbCBwcml6ZSBmb3IgSGlnZ3MgYW5kIEVuZ2xlcnQgYW5kIGEgaHVnZSBPcGVuIERheXMgZXZlbnQgd2VyZSBhbW9uZyB0aGUgYmlnIHN0b3JpZXMgYXQgQ0VSTiB0aGlzIHllYXI8L3A+ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAKKyAgCisgIAorICAgICAKKzxkaXYgY2xhc3M9Im1vcmUtbGluayI+CisgIDxhIGhyZWY9Ii9hYm91dC91cGRhdGVzL3RhZ2dlZC9MSEMiPgorICAgIG1vcmUgIDwvYT4KKzwvZGl2PgorCisgIAorCisgIAorICAKKzwvZGl2PiAgCis8L2Rpdj4KKworCQkJCQkJPCEtLSBPbmx5IHByaW50IGNvbnRlbnQtbWV0YSBpZiBpdCBoYXMgY29udGVudCB0byBkaXNwbGF5IC0tPgorCQkJCQkJCisgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIC8uaGlnaHdvbmRlci1jb250ZW50LW9uLXdoaXRlIC0tPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSAvLmhpZ2h3b25kZXItY29udGVudC1iYWNrZ3JvdW5kIC0tPgorCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgPC9hcnRpY2xlPgorCisgIDwvZGl2PjwhLS0gLyNjb250ZW50IC0tPgorCisgICAgPGFzaWRlIGNsYXNzPSJyZWdpb24gcmVnaW9uLXNpZGViYXIiIGlkPSJzaWRlYmFyIj4KKyAgICA8c2VjdGlvbiBpZD0iYmxvY2stdmlld3MtdG9waWNzLWJsb2NrLTQiIGNsYXNzPSJibG9jayBibG9jay12aWV3cyI+CisKKyAgICAgICAgPGgyPkxlYXJuIGFib3V0IHRoaXMgdG9waWM8L2gyPgorICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3IHZpZXctdG9waWNzIHZpZXctaWQtdG9waWNzIHZpZXctZGlzcGxheS1pZC1ibG9ja180IHZpZXctZG9tLWlkLWNjODViOTE0OTAxZTBjNWMxYTA5Mjg3MWI3ZDliNjk4Ij4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICAgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1maXJzdCI+CisgICAgICAKKyAgPGRpdj4gICAgICAgIDxhIGhyZWY9Ii9hYm91dC9lbmdpbmVlcmluZy9jcnlvZ2VuaWNzLWxvdy10ZW1wZXJhdHVyZXMtaGlnaC1wZXJmb3JtYW5jZSI+Q3J5b2dlbmljczogTG93IHRlbXBlcmF0dXJlcywgaGlnaCBwZXJmb3JtYW5jZSAgPC9hPiAgPC9kaXY+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0yIHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2PiAgICAgICAgPGEgaHJlZj0iL2Fib3V0L2VuZ2luZWVyaW5nL3B1bGxpbmctdG9nZXRoZXItc3VwZXJjb25kdWN0aW5nLWVsZWN0cm9tYWduZXRzIj5QdWxsaW5nIHRvZ2V0aGVyOiBTdXBlcmNvbmR1Y3RpbmcgZWxlY3Ryb21hZ25ldHM8L2E+ICA8L2Rpdj4gIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTMgdmlld3Mtcm93LW9kZCI+CisgICAgICAKKyAgPGRpdj4gICAgICAgIDxhIGhyZWY9Ii9hYm91dC9lbmdpbmVlcmluZy9wb3dlcmluZy1jZXJuIj5Qb3dlcmluZyBDRVJOPC9hPiAgPC9kaXY+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy00IHZpZXdzLXJvdy1ldmVuIj4KKyAgICAgIAorICA8ZGl2PiAgICAgICAgPGEgaHJlZj0iL2Fib3V0L2VuZ2luZWVyaW5nL3ZhY3V1bS1lbXB0eS1pbnRlcnBsYW5ldGFyeS1zcGFjZSI+QSB2YWN1dW0gYXMgZW1wdHkgYXMgaW50ZXJwbGFuZXRhcnkgc3BhY2U8L2E+ICA8L2Rpdj4gIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTUgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctbGFzdCI+CisgICAgICAKKyAgPGRpdj4gICAgICAgIDxhIGhyZWY9Ii9hYm91dC9lbmdpbmVlcmluZy9yYWRpb2ZyZXF1ZW5jeS1jYXZpdGllcyI+UmFkaW9mcmVxdWVuY3kgY2F2aXRpZXM8L2E+ICA8L2Rpdj4gIDwvZGl2PgorICAgIDwvZGl2PgorICAKKyAgCisgIAorICAgCisKKyAgCisgIAorPC9kaXY+ICAKKzwvc2VjdGlvbj4KKzxzZWN0aW9uIGlkPSJibG9jay12aWV3cy10b3BpY3MtYmxvY2stNSIgY2xhc3M9ImJsb2NrIGJsb2NrLXZpZXdzIj4KKworICAgICAgICA8aDI+SW1hZ2VzPC9oMj4KKyAgICAKKyAgPGRpdiBjbGFzcz0idmlldyB2aWV3LXRvcGljcyB2aWV3LWlkLXRvcGljcyB2aWV3LWRpc3BsYXktaWQtYmxvY2tfNSB2aWV3LWRvbS1pZC1jMDMyMjE3YTAwMjI0MjA0YjE0MzNiMmZlZjFmY2UwMSI+CisgICAgICAgIAorICAKKyAgCisgICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWNvbnRlbnQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTEgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctZmlyc3QiPgorICAgICAgCisgICAgICAgICAgPGEgaHJlZj0iL2ltYWdlcy8yMDE0LzA2L3NhZmV0eS10cmFpbmluZyI+PGltZyB0eXBlb2Y9ImZvYWY6SW1hZ2UiIHNyYz0iaHR0cDovL2hvbWUud2ViLmNlcm4uY2gvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC9maWxlcy9pbWFnZS9mZWF0dXJlZC8yMDE0LzA2LzE3MDYxOV9zYWZldHlfdHJhaW5pbmcuanBnIiB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI5NTgiIGFsdD0iIiAvPjwvYT4gICAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMiB2aWV3cy1yb3ctZXZlbiI+CisgICAgICAKKyAgICAgICAgICA8YSBocmVmPSIvaW1hZ2VzLzIwMTQvMDMvYnJhemluZy1wYXN0LWZpbmlzaC1saW5lIj48aW1nIHR5cGVvZj0iZm9hZjpJbWFnZSIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2ZlYXR1cmVkLzIwMTQvMDMvcmVzb2xkZXJpbmcuanBnIiB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI5NTgiIGFsdD0iQ0VSTiBlbmdpbmVlcnMgYW5kIHRlY2huaWNpYW5zIGluIGhhcmQgaGF0cyBwb3NlIGZvciBhIHBob3RvIGluIHRoZSBMSEMgdHVubmVsLiBUaGUgYmx1ZSB0dWJlIG9mIHRoZSBhY2NlbGVyYXRvciBpcyBvbiB0aGUgcmlnaHQiIHRpdGxlPSJDRVJOIGVuZ2luZWVycyBhbmQgdGVjaG5pY2lhbnMgaW4gdGhlIExIQyB0dW5uZWwiIC8+PC9hPiAgICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQgdmlld3Mtcm93LWxhc3QiPgorICAgICAgCisgICAgICAgICAgPGEgaHJlZj0iL2ltYWdlcy8yMDE0LzAyL25pY2Utc3BsaWNlIj48aW1nIHR5cGVvZj0iZm9hZjpJbWFnZSIgc3JjPSJodHRwOi8vaG9tZS53ZWIuY2Vybi5jaC9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2ZlYXR1cmVkLzIwMTQvMDIvc3BsaWNlLmpwZyIgd2lkdGg9IjIwMDAiIGhlaWdodD0iMTMzMyIgYWx0PSIiIC8+PC9hPiAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgCisgIAorICAKKyAgICAgCis8ZGl2IGNsYXNzPSJtb3JlLWxpbmsiPgorICA8YSBocmVmPSIvaW1hZ2VzL3RhZ2dlZC9MSEMiPgorICAgIG1vcmUgIDwvYT4KKzwvZGl2PgorCisgIAorCisgIAorICAKKzwvZGl2PiAgCis8L3NlY3Rpb24+Cis8c2VjdGlvbiBpZD0iYmxvY2stdmlld3MtdG9waWNzLWJsb2NrLTYiIGNsYXNzPSJibG9jayBibG9jay12aWV3cyI+CisKKyAgICAgICAgPGgyPk9waW5pb25zIG9uIHRoaXMgVG9waWM8L2gyPgorICAgIAorICA8ZGl2IGNsYXNzPSJ2aWV3IHZpZXctdG9waWNzIHZpZXctaWQtdG9waWNzIHZpZXctZGlzcGxheS1pZC1ibG9ja182IHZpZXctZG9tLWlkLTgyMTE5MTdlNDIyNWI5NDRiNjZiYjgzMmE0ZDRiYTliIj4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICAgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMSB2aWV3cy1yb3ctb2RkIHZpZXdzLXJvdy1maXJzdCI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9jZXJuLXBlb3BsZS9vcGluaW9uLzIwMTQvMDcvc3RyZW5ndGgtd29ybGR3aWRlLWNvbGxhYm9yYXRpb24iPlRoZSBzdHJlbmd0aCBvZiB3b3JsZHdpZGUgY29sbGFib3JhdGlvbjwvYT48L3NwYW4+ICA8L2Rpdj4gIAorICA8ZGl2PiAgICAgICAgPHAgY2xhc3M9Im1ldGEiPjxzcGFuPlBldGVyIEplbm5pPC9zcGFuPiwgPHNwYW4gY2xhc3M9ImRhdGUiPjMwIEp1bCAyMDE0PC9zcGFuPjwvcD4gIDwvZGl2PiAgPC9kaXY+CisgIDxkaXYgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMiB2aWV3cy1yb3ctZXZlbiI+CisgICAgICAKKyAgPGRpdiBjbGFzcz0idmlld3MtZmllbGQgdmlld3MtZmllbGQtdGl0bGUiPiAgICAgICAgPHNwYW4gY2xhc3M9ImZpZWxkLWNvbnRlbnQiPjxhIGhyZWY9Ii9jZXJuLXBlb3BsZS9vcGluaW9uLzIwMTMvMTEvdG93YXJkcy1uZXh0LWNoYXB0ZXIiPlRvd2FyZHMgdGhlIG5leHQgY2hhcHRlcjwvYT48L3NwYW4+ICA8L2Rpdj4gIAorICA8ZGl2PiAgICAgICAgPHAgY2xhc3M9Im1ldGEiPjxzcGFuPlJvbGYgSGV1ZXI8L3NwYW4+LCA8c3BhbiBjbGFzcz0iZGF0ZSI+MjUgTm92IDIwMTM8L3NwYW4+PC9wPiAgPC9kaXY+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0zIHZpZXdzLXJvdy1vZGQgdmlld3Mtcm93LWxhc3QiPgorICAgICAgCisgIDxkaXYgY2xhc3M9InZpZXdzLWZpZWxkIHZpZXdzLWZpZWxkLXRpdGxlIj4gICAgICAgIDxzcGFuIGNsYXNzPSJmaWVsZC1jb250ZW50Ij48YSBocmVmPSIvY2Vybi1wZW9wbGUvb3Bpbmlvbi8yMDEzLzA2L2xzMS1zYWZldHktcXVhbGl0eS1zY2hlZHVsZSI+TFMxOiAmcXVvdDtTYWZldHksIHF1YWxpdHksIHNjaGVkdWxlJnF1b3Q7PC9hPjwvc3Bhbj4gIDwvZGl2PiAgCisgIDxkaXY+ICAgICAgICA8cCBjbGFzcz0ibWV0YSI+PHNwYW4+Um9sZiBIZXVlcjwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJkYXRlIj4yOCBKdW4gMjAxMzwvc3Bhbj48L3A+ICA8L2Rpdj4gIDwvZGl2PgorICAgIDwvZGl2PgorICAKKyAgCisgIAorICAgCisKKyAgCisgIAorPC9kaXY+ICAKKzwvc2VjdGlvbj4KKzxzZWN0aW9uIGlkPSJibG9jay12aWV3cy1hY2NlbGVyYXRvcnMtYmxvY2siIGNsYXNzPSJibG9jayBibG9jay12aWV3cyBibG9jay1saW5rcyI+CisKKyAgICAgICAgPGgyPkFjY2VsZXJhdG9yczwvaDI+CisgICAgCisgIDxkaXYgY2xhc3M9InZpZXcgdmlldy1hY2NlbGVyYXRvcnMgdmlldy1pZC1hY2NlbGVyYXRvcnMgdmlldy1kaXNwbGF5LWlkLWJsb2NrIHZpZXctZG9tLWlkLTgxZWE4MmNjMDZkNzU4ZWRkMzcxMjY4NGNkZTllY2VjIj4KKyAgICAgICAgCisgIAorICAKKyAgICAgIDxkaXYgY2xhc3M9InZpZXctY29udGVudCI+CisgICAgICA8ZGl2IGNsYXNzPSJpdGVtLWxpc3QiPiAgICA8dWw+ICAgICAgICAgIDxsaSBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0xIHZpZXdzLXJvdy1vZGQgdmlld3Mtcm93LWZpcnN0Ij4gIAorICAgICAgICAgIDxhIGhyZWY9Ii9hYm91dC9hY2NlbGVyYXRvcnMvYW50aXByb3Rvbi1kZWNlbGVyYXRvciI+VGhlIEFudGlwcm90b24gRGVjZWxlcmF0b3I8L2E+ICA8L2xpPgorICAgICAgICAgIDxsaSBjbGFzcz0idmlld3Mtcm93IHZpZXdzLXJvdy0yIHZpZXdzLXJvdy1ldmVuIj4gIAorICAgICAgICAgIDxhIGhyZWY9Ii9hYm91dC9hY2NlbGVyYXRvcnMvbGFyZ2UtaGFkcm9uLWNvbGxpZGVyIj5UaGUgTGFyZ2UgSGFkcm9uIENvbGxpZGVyPC9hPiAgPC9saT4KKyAgICAgICAgICA8bGkgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctMyB2aWV3cy1yb3ctb2RkIj4gIAorICAgICAgICAgIDxhIGhyZWY9Ii9hYm91dC9hY2NlbGVyYXRvcnMvcHJvdG9uLXN5bmNocm90cm9uIj5UaGUgUHJvdG9uIFN5bmNocm90cm9uPC9hPiAgPC9saT4KKyAgICAgICAgICA8bGkgY2xhc3M9InZpZXdzLXJvdyB2aWV3cy1yb3ctNCB2aWV3cy1yb3ctZXZlbiI+ICAKKyAgICAgICAgICA8YSBocmVmPSIvYWJvdXQvYWNjZWxlcmF0b3JzL3N1cGVyLXByb3Rvbi1zeW5jaHJvdHJvbiI+VGhlIFN1cGVyIFByb3RvbiBTeW5jaHJvdHJvbjwvYT4gIDwvbGk+CisgICAgICAgICAgPGxpIGNsYXNzPSJ2aWV3cy1yb3cgdmlld3Mtcm93LTUgdmlld3Mtcm93LW9kZCB2aWV3cy1yb3ctbGFzdCI+ICAKKyAgICAgICAgICA8YSBocmVmPSIvYWJvdXQvYWNjZWxlcmF0b3JzL2Nlcm4tbmV1dHJpbm9zLWdyYW4tc2Fzc28iPkNFUk4gTmV1dHJpbm9zIHRvIEdyYW4gU2Fzc288L2E+ICA8L2xpPgorICAgICAgPC91bD48L2Rpdj4gICAgPC9kaXY+CisgIAorICAKKyAgCisgICAgIAorPGRpdiBjbGFzcz0ibW9yZS1saW5rIj4KKyAgPGEgaHJlZj0iL2Fib3V0L2FjY2VsZXJhdG9ycy10b3BpY3MiPgorICAgIG1vcmUgIDwvYT4KKzwvZGl2PgorCisgIAorCisgIAorICAKKzwvZGl2PiAgCis8L3NlY3Rpb24+Cis8c2VjdGlvbiBpZD0iYmxvY2stc2VhcmNoLWZvcm0iIGNsYXNzPSJibG9jayBibG9jay1zZWFyY2giPgorCisgICAgICAKKyAgPGZvcm0gY2xhc3M9InNlYXJjaC1mb3JtIiBhY3Rpb249Ii90b3BpY3MvbGFyZ2UtaGFkcm9uLWNvbGxpZGVyIiBtZXRob2Q9InBvc3QiIGlkPSJzZWFyY2gtYmxvY2stZm9ybSIgYWNjZXB0LWNoYXJzZXQ9IlVURi04Ij48ZGl2PjxkaXYgY2xhc3M9ImNvbnRhaW5lci1pbmxpbmUiPgorICAgICAgPGgyIGNsYXNzPSJlbGVtZW50LWludmlzaWJsZSI+U2VhcmNoIGZvcm08L2gyPgorICAgIDxkaXYgY2xhc3M9ImZvcm0taXRlbSBmb3JtLXR5cGUtdGV4dGZpZWxkIGZvcm0taXRlbS1zZWFyY2gtYmxvY2stZm9ybSI+CisgIDxsYWJlbCBjbGFzcz0iZWxlbWVudC1pbnZpc2libGUiIGZvcj0iZWRpdC1zZWFyY2gtYmxvY2stZm9ybS0tMiI+U2VhcmNoIHRoaXMgc2l0ZSA8L2xhYmVsPgorIDxpbnB1dCB0aXRsZT0iRW50ZXIgdGhlIHRlcm1zIHlvdSB3aXNoIHRvIHNlYXJjaCBmb3IuIiBjbGFzcz0iY3VzdG9tLXNlYXJjaC1ib3ggZm9ybS10ZXh0IiBwbGFjZWhvbGRlcj0iIiBvbmJsdXI9ImlmICh0aGlzLnZhbHVlID09ICYjMDM5OyYjMDM5Oykge3RoaXMudmFsdWUgPSAmIzAzOTtTZWFyY2ggdGhpcyBzaXRlJiMwMzk7O30iIG9uZm9jdXM9ImlmICh0aGlzLnZhbHVlID09ICYjMDM5O1NlYXJjaCB0aGlzIHNpdGUmIzAzOTspIHt0aGlzLnZhbHVlID0gJiMwMzk7JiMwMzk7O30iIHR5cGU9InRleHQiIGlkPSJlZGl0LXNlYXJjaC1ibG9jay1mb3JtLS0yIiBuYW1lPSJzZWFyY2hfYmxvY2tfZm9ybSIgdmFsdWU9IlNlYXJjaCB0aGlzIHNpdGUiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjEyOCIgLz4KKzwvZGl2PgorPGRpdiBjbGFzcz0iZm9ybS1hY3Rpb25zIGZvcm0td3JhcHBlciIgaWQ9ImVkaXQtYWN0aW9ucyI+PGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImVkaXQtc3VibWl0IiBuYW1lPSJvcCIgdmFsdWU9IlNlYXJjaCIgY2xhc3M9ImZvcm0tc3VibWl0IiAvPjwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fYnVpbGRfaWQiIHZhbHVlPSJmb3JtLVc4VDdfc0V1VzdFZGhNT2ljeTQ5aUt0cjlRNkNEeVBvZjZlbG9aV1Uwa3MiIC8+Cis8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2lkIiB2YWx1ZT0ic2VhcmNoX2Jsb2NrX2Zvcm0iIC8+Cis8L2Rpdj4KKzwvZGl2PjwvZm9ybT4gIAorPC9zZWN0aW9uPgorICA8L2FzaWRlPjwhLS0gL3NpZGViYXIgLS0+CisgCis8L2Rpdj48IS0tIC8jbWFpbiAtLT4KKworCis8Zm9vdGVyIGlkPSJmb290ZXIiIHJvbGU9ImNvbnRlbnRpbmZvIj4KKyAgCSAgPGRpdiBjbGFzcz0icmVnaW9uIHJlZ2lvbi1mb290ZXItMiI+CisgICAgPGRpdiBpZD0iYmxvY2stbWVudS1tZW51LWdsb2JhbC1mb290ZXItbWVudS0yIiBjbGFzcz0iYmxvY2sgYmxvY2stbWVudSI+CisKKyAgICAgICAgPGgyPkdlbmVyYWwgaW5mbzwvaDI+CisgICAgCisgIDx1bCBjbGFzcz0ibWVudSI+PGxpIGNsYXNzPSJmaXJzdCBsZWFmIj48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9qb2JzIiB0aXRsZT0iIj5Kb2JzPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL291dHJlYWNoIiB0aXRsZT0iIj5WaXNpdHM8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGFzdCBsZWFmIj48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9wcmVzcyIgdGl0bGU9IiI+UHJlc3M8L2E+PC9saT4KKzwvdWw+ICAKKzwvZGl2PgorICA8L2Rpdj48IS0tIC8ucmVnaW9uIC0tPgorICAJICA8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWZvb3Rlci0zIj4KKyAgICA8ZGl2IGlkPSJibG9jay1tZW51LW1lbnUtZ2xvYmFsLWZvb3Rlci1tZW51LTMiIGNsYXNzPSJibG9jayBibG9jay1tZW51Ij4KKworICAgICAgICA8aDI+Q0VSTiAmYW1wOyB5b3U8L2gyPgorICAgIAorICA8dWwgY2xhc3M9Im1lbnUiPjxsaSBjbGFzcz0iZmlyc3QgbGVhZiI+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvcHJvY3VyZW1lbnQiIHRpdGxlPSIiPkRvaW5nIGJ1c2luZXNzIHdpdGggQ0VSTjwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9rbm93bGVkZ2V0cmFuc2ZlciIgdGl0bGU9IiI+S25vd2xlZGdlIHRyYW5zZmVyPC9hPjwvbGk+Cis8bGkgY2xhc3M9ImxlYWYiPjxhIGhyZWY9Imh0dHA6Ly9jZXJuLmNoL3Byb2plY3Qtdm9pc2lucy8iIHRpdGxlPSIiPkNFUk4mIzAzOTtzIG5laWdoYm91cnM8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGFzdCBsZWFmIj48YSBocmVmPSIvcGFydG5lcnNoaXBzIiB0aXRsZT0iIj5QYXJ0bmVyc2hpcHM8L2E+PC9saT4KKzwvdWw+ICAKKzwvZGl2PgorICA8L2Rpdj48IS0tIC8ucmVnaW9uIC0tPgorICAJICA8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWZvb3Rlci01Ij4KKyAgICA8ZGl2IGlkPSJibG9jay1ibG9jay01IiBjbGFzcz0iYmxvY2sgYmxvY2stYmxvY2siPgorCisgICAgICAgIDxoMj5Db250YWN0PC9oMj4KKyAgICAKKyAgPHA+Q0VSTjxiciAvPgorQ0gtMTIxMSBHZW5ldmEgMjM8YnIgLz4KK1N3aXR6ZXJsYW5kPC9wPgorPHA+PGEgaHJlZj0iL2NvbnRhY3QiPkhvdyB0byByZWFjaCB1czwvYT48L3A+CisgIAorPC9kaXY+CisgIDwvZGl2PjwhLS0gLy5yZWdpb24gLS0+CisJICA8ZGl2IGNsYXNzPSJyZWdpb24gcmVnaW9uLWZvb3Rlci00Ij4KKyAgICA8ZGl2IGlkPSJibG9jay1tZW51LW1lbnUtZ2xvYmFsLWZvb3Rlci1tZW51LTUiIGNsYXNzPSJibG9jayBibG9jay1tZW51Ij4KKworICAgICAgICA8aDI+Q29ubmVjdCB3aXRoIENFUk48L2gyPgorICAgIAorICA8dWwgY2xhc3M9Im1lbnUiPjxsaSBjbGFzcz0iZmlyc3QgbGVhZiI+PGEgaHJlZj0iaHR0cDovL2ZhY2Vib29rLmNvbS9jZXJuIiB0aXRsZT0iIj5GYWNlYm9vazwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vY2VybiIgdGl0bGU9IiI+VHdpdHRlcjwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vcGx1cy5nb29nbGUuY29tLytDRVJOLyIgdGl0bGU9IiI+R29vZ2xlKzwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8veW91dHViZS5jb20vY2VybiIgdGl0bGU9IiI+WW91VHViZTwvYT48L2xpPgorPGxpIGNsYXNzPSJsZWFmIj48YSBocmVmPSJodHRwOi8vaXR1bmVzLmFwcGxlLmNvbS9pbnN0aXR1dGlvbi9jZXJuLWV1cm9wZWFuLW9yZ2FuaXphdGlvbi9pZDM5MDExODY5MiIgdGl0bGU9IiI+aVR1bmVzIFU8L2E+PC9saT4KKzxsaSBjbGFzcz0ibGFzdCBsZWFmIj48YSBocmVmPSIvZmVlZHMiIHRpdGxlPSIiPkZlZWRzPC9hPjwvbGk+Cis8L3VsPiAgCis8L2Rpdj4KKyAgPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKwkgIDxkaXYgY2xhc3M9InJlZ2lvbiByZWdpb24tZm9vdGVyLTEiPgorICAgIDxkaXYgaWQ9ImJsb2NrLWJsb2NrLTQiIGNsYXNzPSJibG9jayBibG9jay1ibG9jayI+CisKKyAgICAgIAorICA8cD48YSBocmVmPSJodHRwOi8vY2Vybi5jaC9jb3B5cmlnaHQiPsKpIENvcHlyaWdodCBDRVJOIDIwMTQ8L2E+PC9wPiAgCis8L2Rpdj4KKzxkaXYgaWQ9ImJsb2NrLWJsb2NrLTIxIiBjbGFzcz0iYmxvY2sgYmxvY2stYmxvY2siPgorCisgICAgICAKKyAgPHA+PGEgaHJlZj0iaHR0cDovL2Nlcm4uY2gvY2VybjYwIj48aW1nIGFsdD0iIiBzcmM9Ii9zaXRlcy9ob21lLndlYi5jZXJuLmNoL2ZpbGVzL2ltYWdlL2lubGluZS1pbWFnZXMvb2xkL2xvZ28tNjAtbmVnYXRpZl9hODAucG5nIiBzdHlsZT0iZmxvYXQ6cmlnaHQiIC8+PC9hPjwvcD4KKyAgCis8L2Rpdj4KKyAgPC9kaXY+PCEtLSAvLnJlZ2lvbiAtLT4KKzwvZm9vdGVyPgorCisKKzwhLS0gL3BhZ2UudHBsIGZyb20gY2Vybl9wdWJsaWMgZW5kcyAtLT4KKyAgCisgIDwhLS1baWYgKGx0IElFIDkpICYgKCFJRU1vYmlsZSldPgorICAgIDxzY3JpcHQgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9iYXNlL2pzL2llL2ltZ3NpemVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3NpdGVzL2hvbWUud2ViLmNlcm4uY2gvdGhlbWVzL2Nlcm5fYmFzZS9qcy9pZS9zZWxlY3Rpdml6ci1taW4uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvc2l0ZXMvaG9tZS53ZWIuY2Vybi5jaC90aGVtZXMvY2Vybl9iYXNlL2pzL2llL2pxdWVyeS1leHRyYS1zZWxlY3RvcnMuanMiPjwvc2NyaXB0PgorICA8IVtlbmRpZl0tLT4KKworICA8IS0tIFByb21wdHMgYWxsIElFNiB1c2VycyB0byBpbnN0YWxsIEdvb2dsZSBDaHJvbWVmcmFtZSAtLT4KKyAgPCEtLVtpZiBsdCBJRSA3XT4KKyAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2Nocm9tZS1mcmFtZS8xL0NGSW5zdGFsbC5taW4uanMiPjwvc2NyaXB0PgorICAgPHNjcmlwdD5DRkluc3RhbGwuY2hlY2soKTs8L3NjcmlwdD4KKyAgPCFbZW5kaWZdLS0+CisKKyAgPCEtLTxzY3JpcHQgc3JjPSJodHRwczovL2dldC5ncmlkc2V0YXBwLmNvbS8xMjUvb3ZlcmxheS8iPjwvc2NyaXB0PiAtLT4KKworPC9ib2R5PgorPC9odG1sPgorCisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZy9ub2RlanNvcmcvZXhwZWN0ZWQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zaW1wbGVfYXBpX3BhcnNpbmcvbm9kZWpzb3JnL2V4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZlNGMyMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zaW1wbGVfYXBpX3BhcnNpbmcvbm9kZWpzb3JnL2V4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxODQgQEAKKworPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+CisgIDxoZWFkPgorICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPGxpbmsgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9Imljb24iIGhyZWY9ImZhdmljb24uaWNvIj4KKyAgICA8bGluayB0eXBlPSJpbWFnZS94LWljb24iIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iZmF2aWNvbi5pY28iPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3BpcGUuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9zaF92aW0tZGFyay5jc3MiPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii8vdXNlLnR5cGVraXQubmV0L21zZTV0cXguanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij50cnl7VHlwZWtpdC5sb2FkKCk7fWNhdGNoKGUpe308L3NjcmlwdD4KKyAgICA8bGluayByZWw9ImFsdGVybmF0ZSIKKyAgICAgICAgICB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIgorICAgICAgICAgIHRpdGxlPSJub2RlIGJsb2ciCisgICAgICAgICAgaHJlZj0iaHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL25vZGVqcy8xMjMxMjMxMjMiPgorICAgIDx0aXRsZT5ub2RlLmpzPC90aXRsZT4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0iZnJvbnQiPgorICAgIDxkaXYgaWQ9Im5hdiI+CisgICAgICA8aW1nIGlkPSJsb2dvIiBzcmM9Ii9pbWFnZXMvbG9nby5zdmciIGFsdD0ibm9kZS5qcyI+CisgICAgICA8dWw+CisgICAgICAgIDxsaSBjbGFzcz0iYWN0aXZlIj48YSBocmVmPSIvIj5Ib21lPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSIvZG93bmxvYWQiLz5Eb3dubG9hZHM8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9kb2N1bWVudGF0aW9uLyI+RG9jczwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iL2NvbW11bml0eS8iPkNvbW11bml0eTwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iL2Fib3V0LyI+QWJvdXQ8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qb2JzLm5vZGVqcy5vcmciPkpvYnM8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ibG9nLm5vZGVqcy5vcmciPkJsb2c8L2E+PC9saT4KKyAgICAgIDwvdWw+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iaW50cm8iPgorCisgICAgICAgIDxwPk5vZGUuanMgaXMgYSBwbGF0Zm9ybSBidWlsdCBvbiA8YQorICAgICAgICBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvdjgvIj5DaHJvbWUncyBKYXZhU2NyaXB0IHJ1bnRpbWU8L2E+CisgICAgICAgIGZvciBlYXNpbHkgYnVpbGRpbmcgZmFzdCwgc2NhbGFibGUgbmV0d29yayBhcHBsaWNhdGlvbnMuICBOb2RlLmpzCisgICAgICAgIHVzZXMgYW4gZXZlbnQtZHJpdmVuLCBub24tYmxvY2tpbmcgSS9PIG1vZGVsIHRoYXQgbWFrZXMgaXQKKyAgICAgICAgbGlnaHR3ZWlnaHQgYW5kIGVmZmljaWVudCwgcGVyZmVjdCBmb3IgZGF0YS1pbnRlbnNpdmUgcmVhbC10aW1lCisgICAgICAgIGFwcGxpY2F0aW9ucyB0aGF0IHJ1biBhY3Jvc3MgZGlzdHJpYnV0ZWQgZGV2aWNlcy48L3A+CisKKyAgICAgICAgPHAgY2xhc3M9InZlcnNpb24iPkN1cnJlbnQgVmVyc2lvbjogdjAuMTAuMzA8L3A+CisKKyAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9ucyI+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnL2Rpc3QvdjAuMTAuMzAvbm9kZS12MC4xMC4zMC50YXIuZ3oiIGNsYXNzPSJidXR0b24gZG93bmxvYWRidXR0b24iIGlkPSJkb3dubG9hZGJ1dHRvbiI+SU5TVEFMTDwvYT4KKworICAgICAgICA8YSBocmVmPSJkb3dubG9hZC8iIGNsYXNzPSJidXR0b24iIGlkPSJhbGwtZGwtb3B0aW9ucyI+RG93bmxvYWRzPC9hCisgICAgICAgID48YSBocmVmPSJhcGkvIiBjbGFzcz0iYnV0dG9uIiBpZD0iZG9jc2J1dHRvbiI+QVBJIERvY3M8L2E+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0icHJvbW8iPgorICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5qb3llbnQuY29tL25vZGVyb2FkIj48aW1nIHNyYz0iaW1hZ2VzL3JvYWRzaG93LXByb21vLnBuZyI+PC9hPgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0iY29udGVudC13cmFwIj4KKyAgICA8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0iY2xlYXJmaXgiPgorICAgICAgICAgICAgPGRpdiBpZD0iY29sdW1uMSI+CisgICAgICAgICAgICAgICAgPGgyPkFuIGV4YW1wbGU6IFdlYnNlcnZlcjwvaDI+CisgICAgICAgICAgICAgICAgPHA+VGhpcyBzaW1wbGUgd2ViIHNlcnZlciB3cml0dGVuIGluIE5vZGUgcmVzcG9uZHMgd2l0aCAiSGVsbG8gV29ybGQiIGZvciBldmVyeSByZXF1ZXN0LjwvcD4KKyAgICAgICAgICAgICAgPHByZT4KK3ZhciBodHRwID0gcmVxdWlyZSgnaHR0cCcpOworaHR0cC5jcmVhdGVTZXJ2ZXIoZnVuY3Rpb24gKHJlcSwgcmVzKSB7CisgIHJlcy53cml0ZUhlYWQoMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJ30pOworICByZXMuZW5kKCdIZWxsbyBXb3JsZFxuJyk7Cit9KS5saXN0ZW4oMTMzNywgJzEyNy4wLjAuMScpOworY29uc29sZS5sb2coJ1NlcnZlciBydW5uaW5nIGF0IGh0dHA6Ly8xMjcuMC4wLjE6MTMzNy8nKTs8L3ByZT4KKworICAgICAgICAgICAgICA8cD5UbyBydW4gdGhlIHNlcnZlciwgcHV0IHRoZSBjb2RlIGludG8gYSBmaWxlCisgICAgICAgICAgICAgIDxjb2RlPmV4YW1wbGUuanM8L2NvZGU+IGFuZCBleGVjdXRlIGl0IHdpdGggdGhlCisgICAgICAgICAgICAgIDxjb2RlPm5vZGU8L2NvZGU+IHByb2dyYW0gZnJvbSB0aGUgY29tbWFuZCBsaW5lOjwvcD4KKyAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2hfbm9uZSI+CislIG5vZGUgZXhhbXBsZS5qcworU2VydmVyIHJ1bm5pbmcgYXQgaHR0cDovLzEyNy4wLjAuMToxMzM3LzwvcHJlPgorCisgICAgICAgICAgICAgICAgPHA+SGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgc2ltcGxlIFRDUCBzZXJ2ZXIgd2hpY2ggbGlzdGVucyBvbiBwb3J0IDEzMzcgYW5kIGVjaG9lcyB3aGF0ZXZlciB5b3Ugc2VuZCBpdDo8L3A+CisKKyAgICAgICAgICAgICAgICA8cHJlPgordmFyIG5ldCA9IHJlcXVpcmUoJ25ldCcpOworCit2YXIgc2VydmVyID0gbmV0LmNyZWF0ZVNlcnZlcihmdW5jdGlvbiAoc29ja2V0KSB7CisgIHNvY2tldC53cml0ZSgnRWNobyBzZXJ2ZXJcclxuJyk7CisgIHNvY2tldC5waXBlKHNvY2tldCk7Cit9KTsKKworc2VydmVyLmxpc3RlbigxMzM3LCAnMTI3LjAuMC4xJyk7PC9wcmU+CisKKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbHVtbjIiIGNsYXNzPSJmZWF0dXJlZCI+CisgICAgICAgICAgICA8aDI+RmVhdHVyZWQ8L2gyPgorICAgICAgICAgICAgPGEgaHJlZj0iL3ZpZGVvLyI+PGltZyBzcmM9Ii9pbWFnZXMvd2FsbWFydC10aHVtYi5qcGciIHdpZHRoPSIyNjMiPjwvYT4KKyAgICAgICAgICAgIDxoMz5Ob2RlLmpzIGF0IFdhbG1hcnQ8L2gzPgorICAgICAgICAgICAgPHA+PGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL2VyYW5oYW1tZXIiPkVyYW4gSGFtbWVyPC9hPiwgUHJpbmNpcGFsIEFyY2hpdGVjdCBhdCBXYWxtYXJ0LCB0YWxrcyBhYm91dCBob3cgdGhleSB1c2UgTm9kZS5qcyBhcyBhIHdheSB0byByZWludmVudCBsZWdhY3kgQVBJcyB0byBjcmVhdGUgbW9kZXJuIGZyb250IGVuZCBleHBlcmllbmNlcy48L3A+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0iZm9vdGVyIj4KKyAgICAgIDxkaXYgY2xhc3M9ImZvb3QtMSI+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuam95ZW50LmNvbSI+PGg1PlRoZSBOb2RlLmpzIFByb2plY3QgaXMgU3BvbnNvcmVkIGJ5PC9oNT4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWFnZXMvam95ZW50LWZvb3Rlci5zdmciIHdpZHRoPSIyMDAiPgorICAgICAgICA8cCBjbGFzcz0idGFnIj5Qcm9kdWN0aW9uIE5vZGUgKzxicj5IaWdoIFBlcmZvcm1hbmNlIEluZnJhc3RydWN0dXJlPC9wPjwvYT4KKyAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9teS5qb3llbnQuY29tL2xhbmRpbmcvc2lnbnVwLzcwMTgwMDAwMDAxNTY5NiIgY2xhc3M9ImJ1dHRvbiBnZXRzdGFydGVkIj5HZXQgU3RhcnRlZDwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZm9vdC0yIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZm9vdC1uYXYiPgorICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9kb3dubG9hZC8iPkRvd25sb2FkczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnL2RvY3VtZW50YXRpb24vIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL25vZGVqcy5vcmcvZG9jdW1lbnRhdGlvbi9hcGkvIj5BUEkgRG9jczwvYT48L2xpPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnL2RvY3VtZW50YXRpb24vdHV0b3JpYWxzLyI+VHV0b3JpYWxzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL25vZGVqcy5vcmcvZG9jdW1lbnRhdGlvbi9sb2NhbGl6YXRpb24vIj5Mb2NhbGl6YXRpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9jb21tdW5pdHkvIj5Db21tdW5pdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vam95ZW50L25vZGUvaXNzdWVzIj5HaXRodWIgSXNzdWVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3VwL25vZGVqcyI+TWFpbGluZyBMaXN0PC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3dlYmNoYXQuZnJlZW5vZGUubmV0Lz9jaGFubmVscz1ub2RlLmpzIj5JUkM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL25vZGVqcyI+VHdpdHRlcjwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnL2Fib3V0LyI+QWJvdXQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9hYm91dC9vcmdhbml6YXRpb24vIj5Pcmdhbml6YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9hYm91dC9jb3JlLXRlYW0vIj5Db3JlIFRlYW08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9hYm91dC9yZXNvdXJjZXMvIj5SZXNvdXJjZXM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vYmxvZy5ub2RlanMub3JnIj5CbG9nPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCAyMDE0IDxhIGhyZWY9Imh0dHA6Ly9qb3llbnQuY29tLyI+Sm95ZW50LCBJbmM8L2E+LCBOb2RlLmpzIGlzIGEgPGEgaHJlZj0iL2ltYWdlcy90cmFkZW1hcmstcG9saWN5LnBkZiI+dHJhZGVtYXJrPC9hPiBvZiBKb3llbnQsIEluYy4gPGEgaHJlZj0iaHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9qb3llbnQvbm9kZS92MC4xMC4zMC9MSUNFTlNFIj5WaWV3IGxpY2Vuc2U8L2E+LjwvcD4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHNjcmlwdCBzcmM9InNoX21haW4uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzaF9qYXZhc2NyaXB0Lm1pbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD5oaWdobGlnaHQodW5kZWZpbmVkLCB1bmRlZmluZWQsICdwcmUnKTs8L3NjcmlwdD4KKworICAgIDxzY3JpcHQ+CisgICAgICB3aW5kb3cuX2dhcSA9IFtbJ19zZXRBY2NvdW50JywgJ1VBLTEwODc0MTk0LTInXSwgWydfdHJhY2tQYWdldmlldyddXTsKKyAgICAgIChmdW5jdGlvbihkLCB0KSB7CisgICAgICAgIHZhciBnID0gZC5jcmVhdGVFbGVtZW50KHQpLAorICAgICAgICAgICAgcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodClbMF07CisgICAgICAgIGcuc3JjID0gJy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJzsKKyAgICAgICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLCBzKTsKKyAgICAgIH0oZG9jdW1lbnQsICdzY3JpcHQnKSk7CisgICAgICA7KGZ1bmN0aW9uKGQsbikgeworICAgICAgICB2YXIgb3MgPSBuLnBsYXRmb3JtLm1hdGNoKC8oV2lufE1hY3xMaW51eCkvKTsKKyAgICAgICAgdmFyIHggPSBuLnVzZXJBZ2VudC5tYXRjaCgveDg2XzY0fFdpbjY0fFdPVzY0LykgfHwKKyAgICAgICAgICAgICAgICBuLmNwdUNsYXNzID09PSAneDY0JyA/ICd4NjQnIDogJ3g4Nic7CisgICAgICAgIHZhciBiYXNlID0gJ2h0dHA6Ly9ub2RlanMub3JnL2Rpc3QvdjAuMTAuMzAvJzsKKyAgICAgICAgdmFyIGhyZWYgPSAnbm9kZS12MC4xMC4zMC50YXIuZ3onOworICAgICAgICB2YXIgZGIgPSBkLmdldEVsZW1lbnRCeUlkKCdkb3dubG9hZGJ1dHRvbicpOworICAgICAgICB2YXIgZDI7CisgICAgICAgIHN3aXRjaCAob3MgJiYgb3NbMV0pIHsKKyAgICAgICAgICBjYXNlICdNYWMnOgorICAgICAgICAgICAgaHJlZiA9ICdub2RlLXYwLjEwLjMwLnBrZyc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlICdXaW4nOgorICAgICAgICAgICAgaHJlZiA9ICdub2RlLXYwLjEwLjMwLScgKyB4ICsgJy5tc2knOworICAgICAgICAgICAgaWYgKHggPT09ICd4NjQnKSBocmVmID0gJ3g2NC8nICsgaHJlZjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgLy8gVE9ETyB1bmNvbW1lbnQgd2hlbiB3ZSBoYXZlIHRoZXNlCisgICAgICAgICAgLy8gY2FzZSAnTGludXgnOgorICAgICAgICAgIC8vICAgLy8gdHdvIGJ1dHRvbnM6IC5kZWIgYW5kIC5ycG0KKyAgICAgICAgICAvLyAgIGhyZWYgPSAnbm9kZS12MC4xMC4zMC0nICsgeCArICcucnBtJzsKKyAgICAgICAgICAvLyAgIHZhciBkMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICAgICAgICAvLyAgIGQyLmhyZWYgPSBiYXNlICsgJ25vZGUtdjAuMTAuMzAtJyArIHggKyAnLmRlYic7CisgICAgICAgICAgLy8gICBkMi5jbGFzc05hbWUgPSAnYnV0dG9uIGRvd25sb2FkYnV0dG9uJzsKKyAgICAgICAgICAvLyAgIGQyLmlubmVySFRNTCA9ICdJTlNUQUxMIC5kZWInOworICAgICAgICAgIC8vICAgZGIuaW5uZXJIVE1MID0gJ0lOU1RBTEwgLnJwbSc7CisgICAgICAgICAgLy8gICBkYi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkMiwgZGIpOworICAgICAgICAgIC8vICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkYi5ocmVmID0gYmFzZSArIGhyZWY7CisgICAgICAgIC8vIGlmIHRoZXJlJ3Mgb25lIGRvd25sb2FkIG9wdGlvbiwgdGhlbiBkb3dubG9hZCBpdCBhdCAjZG93bmxvYWQKKyAgICAgICAgaWYgKGxvY2F0aW9uLmhhc2ggPT09ICcjZG93bmxvYWQnICYmICFkMikKKyAgICAgICAgICBsb2NhdGlvbi5yZXBsYWNlKGIuaHJlZik7CisgICAgICB9KShkb2N1bWVudCxuYXZpZ2F0b3IpOworICAgIDwvc2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zaW1wbGVfYXBpX3BhcnNpbmcvbm9kZWpzb3JnL3NyYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZy9ub2RlanNvcmcvc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY4MzAxZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zaW1wbGVfYXBpX3BhcnNpbmcvbm9kZWpzb3JnL3NyYy5odG1sCkBAIC0wLDAgKzEsMTg0IEBACisKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorICA8aGVhZD4KKyAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDxsaW5rIHR5cGU9ImltYWdlL3gtaWNvbiIgcmVsPSJpY29uIiBocmVmPSJmYXZpY29uLmljbyI+CisgICAgPGxpbmsgdHlwZT0iaW1hZ2UveC1pY29uIiByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImZhdmljb24uaWNvIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9waXBlLmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc2hfdmltLWRhcmsuY3NzIj4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvL3VzZS50eXBla2l0Lm5ldC9tc2U1dHF4LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dHJ5e1R5cGVraXQubG9hZCgpO31jYXRjaChlKXt9PC9zY3JpcHQ+CisgICAgPGxpbmsgcmVsPSJhbHRlcm5hdGUiCisgICAgICAgICAgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIKKyAgICAgICAgICB0aXRsZT0ibm9kZSBibG9nIgorICAgICAgICAgIGhyZWY9Imh0dHA6Ly9mZWVkcy5mZWVkYnVybmVyLmNvbS9ub2RlanMvMTIzMTIzMTIzIj4KKyAgICA8dGl0bGU+bm9kZS5qczwvdGl0bGU+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9ImZyb250Ij4KKyAgICA8ZGl2IGlkPSJuYXYiPgorICAgICAgPGltZyBpZD0ibG9nbyIgc3JjPSIvaW1hZ2VzL2xvZ28uc3ZnIiBhbHQ9Im5vZGUuanMiPgorICAgICAgPHVsPgorICAgICAgICA8bGkgY2xhc3M9ImFjdGl2ZSI+PGEgaHJlZj0iLyI+SG9tZTwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iL2Rvd25sb2FkIi8+RG93bmxvYWRzPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSIvZG9jdW1lbnRhdGlvbi8iPkRvY3M8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9jb21tdW5pdHkvIj5Db21tdW5pdHk8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9hYm91dC8iPkFib3V0PC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vam9icy5ub2RlanMub3JnIj5Kb2JzPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vYmxvZy5ub2RlanMub3JnIj5CbG9nPC9hPjwvbGk+CisgICAgICA8L3VsPgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImludHJvIj4KKworICAgICAgICA8cD5Ob2RlLmpzIGlzIGEgcGxhdGZvcm0gYnVpbHQgb24gPGEKKyAgICAgICAgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4LyI+Q2hyb21lJ3MgSmF2YVNjcmlwdCBydW50aW1lPC9hPgorICAgICAgICBmb3IgZWFzaWx5IGJ1aWxkaW5nIGZhc3QsIHNjYWxhYmxlIG5ldHdvcmsgYXBwbGljYXRpb25zLiAgTm9kZS5qcworICAgICAgICB1c2VzIGFuIGV2ZW50LWRyaXZlbiwgbm9uLWJsb2NraW5nIEkvTyBtb2RlbCB0aGF0IG1ha2VzIGl0CisgICAgICAgIGxpZ2h0d2VpZ2h0IGFuZCBlZmZpY2llbnQsIHBlcmZlY3QgZm9yIGRhdGEtaW50ZW5zaXZlIHJlYWwtdGltZQorICAgICAgICBhcHBsaWNhdGlvbnMgdGhhdCBydW4gYWNyb3NzIGRpc3RyaWJ1dGVkIGRldmljZXMuPC9wPgorCisgICAgICAgIDxwIGNsYXNzPSJ2ZXJzaW9uIj5DdXJyZW50IFZlcnNpb246IHYwLjEwLjMwPC9wPgorCisgICAgICAgIDxkaXYgY2xhc3M9YnV0dG9ucz4KKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL25vZGVqcy5vcmcvZGlzdC92MC4xMC4zMC9ub2RlLXYwLjEwLjMwLnRhci5neiIgY2xhc3M9ImJ1dHRvbiBkb3dubG9hZGJ1dHRvbiIgaWQ9ImRvd25sb2FkYnV0dG9uIj5JTlNUQUxMPC9hPgorCisgICAgICAgIDxhIGhyZWY9ImRvd25sb2FkLyIgY2xhc3M9YnV0dG9uIGlkPSJhbGwtZGwtb3B0aW9ucyI+RG93bmxvYWRzPC9hCisgICAgICAgID48YSBocmVmPSJhcGkvIiBjbGFzcz0iYnV0dG9uIiBpZD0iZG9jc2J1dHRvbiI+QVBJIERvY3M8L2E+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0icHJvbW8iPgorICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5qb3llbnQuY29tL25vZGVyb2FkIj48aW1nIHNyYz0iaW1hZ2VzL3JvYWRzaG93LXByb21vLnBuZyI+PC9hPgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0iY29udGVudC13cmFwIj4KKyAgICA8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0iY2xlYXJmaXgiPgorICAgICAgICAgICAgPGRpdiBpZD0iY29sdW1uMSI+CisgICAgICAgICAgICAgICAgPGgyPkFuIGV4YW1wbGU6IFdlYnNlcnZlcjwvaDI+CisgICAgICAgICAgICAgICAgPHA+VGhpcyBzaW1wbGUgd2ViIHNlcnZlciB3cml0dGVuIGluIE5vZGUgcmVzcG9uZHMgd2l0aCAiSGVsbG8gV29ybGQiIGZvciBldmVyeSByZXF1ZXN0LjwvcD4KKyAgICAgICAgICAgICAgPHByZT4KK3ZhciBodHRwID0gcmVxdWlyZSgnaHR0cCcpOworaHR0cC5jcmVhdGVTZXJ2ZXIoZnVuY3Rpb24gKHJlcSwgcmVzKSB7CisgIHJlcy53cml0ZUhlYWQoMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJ30pOworICByZXMuZW5kKCdIZWxsbyBXb3JsZFxuJyk7Cit9KS5saXN0ZW4oMTMzNywgJzEyNy4wLjAuMScpOworY29uc29sZS5sb2coJ1NlcnZlciBydW5uaW5nIGF0IGh0dHA6Ly8xMjcuMC4wLjE6MTMzNy8nKTs8L3ByZT4KKworICAgICAgICAgICAgICA8cD5UbyBydW4gdGhlIHNlcnZlciwgcHV0IHRoZSBjb2RlIGludG8gYSBmaWxlCisgICAgICAgICAgICAgIDxjb2RlPmV4YW1wbGUuanM8L2NvZGU+IGFuZCBleGVjdXRlIGl0IHdpdGggdGhlCisgICAgICAgICAgICAgIDxjb2RlPm5vZGU8L2NvZGU+IHByb2dyYW0gZnJvbSB0aGUgY29tbWFuZCBsaW5lOjwvcD4KKyAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2hfbm9uZSI+CislIG5vZGUgZXhhbXBsZS5qcworU2VydmVyIHJ1bm5pbmcgYXQgaHR0cDovLzEyNy4wLjAuMToxMzM3LzwvcHJlPgorCisgICAgICAgICAgICAgICAgPHA+SGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgc2ltcGxlIFRDUCBzZXJ2ZXIgd2hpY2ggbGlzdGVucyBvbiBwb3J0IDEzMzcgYW5kIGVjaG9lcyB3aGF0ZXZlciB5b3Ugc2VuZCBpdDo8L3A+CisKKyAgICAgICAgICAgICAgICA8cHJlPgordmFyIG5ldCA9IHJlcXVpcmUoJ25ldCcpOworCit2YXIgc2VydmVyID0gbmV0LmNyZWF0ZVNlcnZlcihmdW5jdGlvbiAoc29ja2V0KSB7CisgIHNvY2tldC53cml0ZSgnRWNobyBzZXJ2ZXJcclxuJyk7CisgIHNvY2tldC5waXBlKHNvY2tldCk7Cit9KTsKKworc2VydmVyLmxpc3RlbigxMzM3LCAnMTI3LjAuMC4xJyk7PC9wcmU+CisKKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImNvbHVtbjIiIGNsYXNzPSJmZWF0dXJlZCI+CisgICAgICAgICAgICA8aDI+RmVhdHVyZWQ8L2gyPgorICAgICAgICAgICAgPGEgaHJlZj0iL3ZpZGVvLyI+PGltZyBzcmM9Ii9pbWFnZXMvd2FsbWFydC10aHVtYi5qcGciIHdpZHRoPSIyNjMiPjwvYT4KKyAgICAgICAgICAgIDxoMz5Ob2RlLmpzIGF0IFdhbG1hcnQ8L2gzPgorICAgICAgICAgICAgPHA+PGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL2VyYW5oYW1tZXIiPkVyYW4gSGFtbWVyPC9hPiwgUHJpbmNpcGFsIEFyY2hpdGVjdCBhdCBXYWxtYXJ0LCB0YWxrcyBhYm91dCBob3cgdGhleSB1c2UgTm9kZS5qcyBhcyBhIHdheSB0byByZWludmVudCBsZWdhY3kgQVBJcyB0byBjcmVhdGUgbW9kZXJuIGZyb250IGVuZCBleHBlcmllbmNlcy48L3A+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0iZm9vdGVyIj4KKyAgICAgIDxkaXYgY2xhc3M9ImZvb3QtMSI+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuam95ZW50LmNvbSI+PGg1PlRoZSBOb2RlLmpzIFByb2plY3QgaXMgU3BvbnNvcmVkIGJ5PC9oNT4KKyAgICAgICAgPGltZyBzcmM9Ii9pbWFnZXMvam95ZW50LWZvb3Rlci5zdmciIHdpZHRoPSIyMDAiPgorICAgICAgICA8cCBjbGFzcz0idGFnIj5Qcm9kdWN0aW9uIE5vZGUgKzxicj5IaWdoIFBlcmZvcm1hbmNlIEluZnJhc3RydWN0dXJlPC9wPjwvYT4KKyAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9teS5qb3llbnQuY29tL2xhbmRpbmcvc2lnbnVwLzcwMTgwMDAwMDAxNTY5NiIgY2xhc3M9ImJ1dHRvbiBnZXRzdGFydGVkIj5HZXQgU3RhcnRlZDwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iZm9vdC0yIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZm9vdC1uYXYiPgorICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9kb3dubG9hZC8iPkRvd25sb2FkczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnL2RvY3VtZW50YXRpb24vIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL25vZGVqcy5vcmcvZG9jdW1lbnRhdGlvbi9hcGkvIj5BUEkgRG9jczwvYT48L2xpPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnL2RvY3VtZW50YXRpb24vdHV0b3JpYWxzLyI+VHV0b3JpYWxzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL25vZGVqcy5vcmcvZG9jdW1lbnRhdGlvbi9sb2NhbGl6YXRpb24vIj5Mb2NhbGl6YXRpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9jb21tdW5pdHkvIj5Db21tdW5pdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vam95ZW50L25vZGUvaXNzdWVzIj5HaXRodWIgSXNzdWVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3VwL25vZGVqcyI+TWFpbGluZyBMaXN0PC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3dlYmNoYXQuZnJlZW5vZGUubmV0Lz9jaGFubmVscz1ub2RlLmpzIj5JUkM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL25vZGVqcyI+VHdpdHRlcjwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnL2Fib3V0LyI+QWJvdXQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9hYm91dC9vcmdhbml6YXRpb24vIj5Pcmdhbml6YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9hYm91dC9jb3JlLXRlYW0vIj5Db3JlIFRlYW08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy9hYm91dC9yZXNvdXJjZXMvIj5SZXNvdXJjZXM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vYmxvZy5ub2RlanMub3JnIj5CbG9nPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCAyMDE0IDxhIGhyZWY9Imh0dHA6Ly9qb3llbnQuY29tLyI+Sm95ZW50LCBJbmM8L2E+LCBOb2RlLmpzIGlzIGEgPGEgaHJlZj0iL2ltYWdlcy90cmFkZW1hcmstcG9saWN5LnBkZiI+dHJhZGVtYXJrPC9hPiBvZiBKb3llbnQsIEluYy4gPGEgaHJlZj0iaHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9qb3llbnQvbm9kZS92MC4xMC4zMC9MSUNFTlNFIj5WaWV3IGxpY2Vuc2U8L2E+LjwvcD4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPHNjcmlwdCBzcmM9InNoX21haW4uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzaF9qYXZhc2NyaXB0Lm1pbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD5oaWdobGlnaHQodW5kZWZpbmVkLCB1bmRlZmluZWQsICdwcmUnKTs8L3NjcmlwdD4KKworICAgIDxzY3JpcHQ+CisgICAgICB3aW5kb3cuX2dhcSA9IFtbJ19zZXRBY2NvdW50JywgJ1VBLTEwODc0MTk0LTInXSwgWydfdHJhY2tQYWdldmlldyddXTsKKyAgICAgIChmdW5jdGlvbihkLCB0KSB7CisgICAgICAgIHZhciBnID0gZC5jcmVhdGVFbGVtZW50KHQpLAorICAgICAgICAgICAgcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodClbMF07CisgICAgICAgIGcuc3JjID0gJy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJzsKKyAgICAgICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLCBzKTsKKyAgICAgIH0oZG9jdW1lbnQsICdzY3JpcHQnKSk7CisgICAgICA7KGZ1bmN0aW9uKGQsbikgeworICAgICAgICB2YXIgb3MgPSBuLnBsYXRmb3JtLm1hdGNoKC8oV2lufE1hY3xMaW51eCkvKTsKKyAgICAgICAgdmFyIHggPSBuLnVzZXJBZ2VudC5tYXRjaCgveDg2XzY0fFdpbjY0fFdPVzY0LykgfHwKKyAgICAgICAgICAgICAgICBuLmNwdUNsYXNzID09PSAneDY0JyA/ICd4NjQnIDogJ3g4Nic7CisgICAgICAgIHZhciBiYXNlID0gJ2h0dHA6Ly9ub2RlanMub3JnL2Rpc3QvdjAuMTAuMzAvJzsKKyAgICAgICAgdmFyIGhyZWYgPSAnbm9kZS12MC4xMC4zMC50YXIuZ3onOworICAgICAgICB2YXIgZGIgPSBkLmdldEVsZW1lbnRCeUlkKCdkb3dubG9hZGJ1dHRvbicpOworICAgICAgICB2YXIgZDI7CisgICAgICAgIHN3aXRjaCAob3MgJiYgb3NbMV0pIHsKKyAgICAgICAgICBjYXNlICdNYWMnOgorICAgICAgICAgICAgaHJlZiA9ICdub2RlLXYwLjEwLjMwLnBrZyc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlICdXaW4nOgorICAgICAgICAgICAgaHJlZiA9ICdub2RlLXYwLjEwLjMwLScgKyB4ICsgJy5tc2knOworICAgICAgICAgICAgaWYgKHggPT09ICd4NjQnKSBocmVmID0gJ3g2NC8nICsgaHJlZjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgLy8gVE9ETyB1bmNvbW1lbnQgd2hlbiB3ZSBoYXZlIHRoZXNlCisgICAgICAgICAgLy8gY2FzZSAnTGludXgnOgorICAgICAgICAgIC8vICAgLy8gdHdvIGJ1dHRvbnM6IC5kZWIgYW5kIC5ycG0KKyAgICAgICAgICAvLyAgIGhyZWYgPSAnbm9kZS12MC4xMC4zMC0nICsgeCArICcucnBtJzsKKyAgICAgICAgICAvLyAgIHZhciBkMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICAgICAgICAvLyAgIGQyLmhyZWYgPSBiYXNlICsgJ25vZGUtdjAuMTAuMzAtJyArIHggKyAnLmRlYic7CisgICAgICAgICAgLy8gICBkMi5jbGFzc05hbWUgPSAnYnV0dG9uIGRvd25sb2FkYnV0dG9uJzsKKyAgICAgICAgICAvLyAgIGQyLmlubmVySFRNTCA9ICdJTlNUQUxMIC5kZWInOworICAgICAgICAgIC8vICAgZGIuaW5uZXJIVE1MID0gJ0lOU1RBTEwgLnJwbSc7CisgICAgICAgICAgLy8gICBkYi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkMiwgZGIpOworICAgICAgICAgIC8vICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkYi5ocmVmID0gYmFzZSArIGhyZWY7CisgICAgICAgIC8vIGlmIHRoZXJlJ3Mgb25lIGRvd25sb2FkIG9wdGlvbiwgdGhlbiBkb3dubG9hZCBpdCBhdCAjZG93bmxvYWQKKyAgICAgICAgaWYgKGxvY2F0aW9uLmhhc2ggPT09ICcjZG93bmxvYWQnICYmICFkMikKKyAgICAgICAgICBsb2NhdGlvbi5yZXBsYWNlKGIuaHJlZik7CisgICAgICB9KShkb2N1bWVudCxuYXZpZ2F0b3IpOworICAgIDwvc2NyaXB0PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS9zaW1wbGVfYXBpX3BhcnNpbmcvbnBtb3JnL2V4cGVjdGVkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2ltcGxlX2FwaV9wYXJzaW5nL25wbW9yZy9leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NGMzNDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2ltcGxlX2FwaV9wYXJzaW5nL25wbW9yZy9leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjYzIEBACisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgPHRpdGxlPm5wbTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy5ucG1qcy5vcmcvIj4KKyAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIKKyAgICBocmVmPSIvc3RhdGljL2Nzcy9ub3JtYWxpemUuY3NzIj4KKyAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIKKyAgICBocmVmPSIvc3R5bHVzL2luZGV4LmNzcyI+CisgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiCisgICAgaHJlZj0iL3N0YXRpYy9jc3Mvc2guY3NzIj4KKyAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIKKyAgICAgICAgaHJlZj0iL3N0YXRpYy9jc3MvY2hhcnRzLmNzcyI+CisgIDxsaW5rIHJlbD0ic2VhcmNoIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIgorICAgIGhyZWY9Ii9zdGF0aWMvb3BlbnNlYXJjaC54bWwiIHRpdGxlPSJTZWFyY2ggUGFja2FnZXMiIC8+Cis8Ym9keT4KKyAgPGRpdiBpZD0id3JhcCI+PGRpdiBpZD0iY29udGVudCI+CisgICAgPG5hdj4KKyAgPHVsPgorICAgIDxsaSBjbGFzcz0ibnBtIGN1cnJlbnQiPgorICAgICAgPGEgaHJlZj0iLyI+SG9tZTwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBjbGFzcz0iZG9jcyI+CisgICAgICA8YSBocmVmPSJodHRwOi8vbnBtanMub3JnL2RvYy8iPkFQSTwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBjbGFzcz0iYmxvZyI+CisgICAgICA8YSBocmVmPSJodHRwOi8vYmxvZy5ucG1qcy5vcmcvIj5CbG9nPC9hPgorICAgIDwvbGk+CisgICAgPGxpIGNsYXNzPSJsb2dvcyI+CisgICAgICA8YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy8iPk5vZGUuanM8L2E+CisgICAgPC9saT4KKyAgICA8bGkgY2xhc3M9ImpvYnMiPgorICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5ucG1qcy5jb20vam9icy8iPkpvYnM8L2E+CisgICAgPC9saT4KKyAgPC91bD4KKworICA8dWwgY2xhc3M9ImhpcmluZyI+CisgICAgPGxpIGNsYXNzPSJoaXJpbmctZ3JvdXAiPgorICAgICAgPGEgaHJlZj0iL3dob3NoaXJpbmciPldobydzIEhpcmluZzwvYT4KKyAgICA8L2xpPgorICAgIAorICAgICAgPGxpIGRhdGEtaWQ9InZveGVyIiBjbGFzcz0iaGlyaW5nLWNvbXBhbnkiPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnZveGVyLmNvbS9jYXJlZXJzLyI+CisgICAgICAgICAgPHNwYW4+Vm94ZXI8L3NwYW4+CisgICAgICAgIDwvYT4KKyAgICAgIDwvbGk+CisgICAgICA8bGkgY2xhc3M9ImhpcmluZy1tb3JlIj4KKyAgICAgICAgPGEgaHJlZj0iL3dob3NoaXJpbmciPisgNyBNb3JlLi4uPC9hPgorICAgICAgPC9saT4KKyAgICAKKyAgPC91bD4KKworICA8dWwgY2xhc3M9Im5wbWUiPgorICAgIDxsaSBjbGFzcz0ibnBtZS1ncm91cCI+CisgICAgICA8YSBocmVmPSIvZW50ZXJwcmlzZSI+bnBtIEVudGVycHJpc2U8L2E+CisgICAgPC9saT4KKyAgICA8bGkgY2xhc3M9Im5wbWUtZGV0YWlscyI+CisgICAgICA8YSBocmVmPSIvZW50ZXJwcmlzZSI+R2V0IGJldGEgYWNjZXNzIHRvIHRoZSBuZXcgb24tcHJlbWlzZXMgc29sdXRpb24gZm9yIHByaXZhdGUgbnBtLjwvYT4KKyAgICA8L2xpPgorICA8L3VsPgorPC9uYXY+CisKKyAgICA8YXNpZGUgY2xhc3M9ImxvZ2luIj4KKyAgCisgICAgPGRpdiBjbGFzcz0idXNlciBwcm9maWxlIj4KKyAgICAgIDxpbWcgc3JjPSJodHRwczovL3NlY3VyZS5ncmF2YXRhci5jb20vYXZhdGFyL2F2YXRhci5qcGc/cz0xMDAmZD1tbSIgY2xhc3M9ImF2YXRhci1tZWRpdW0iPiA8YSBocmVmPSIvc2lnbnVwIj5DcmVhdGUgQWNjb3VudDwvYT4gfCA8YSBocmVmPSIvbG9naW4iPkxvZ2luPC9hPgorICAgIDwvZGl2PgorICAgIAorPC9hc2lkZT4KKworCisgICAgPGRpdiBpZD0icGFnZSI+CisgICAgICA8aGVhZGVyPgorICAgICAgICA8Zm9ybSBhY3Rpb249Ii9zZWFyY2giIG1ldGhvZD0iZ2V0IiBpZD0ic2VhcmNoLWNvbnRhaW5lciI+CisgICAgICAgICAgPGRpdiBpZD0icGFja2FnZS1zZWFyY2giPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8aW5wdXQgbmFtZT0icSIgdHlwZT0ic2VhcmNoIiBjbGFzcz0idHlwZWFoZWFkIHNlYXJjaC1pbnB1dCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBQYWNrYWdlcyIgYXV0b2NhcGl0YWxpemU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgdGFiaW5kZXg9IjEiPgorICAgICAgICAgICAgCisgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZm9ybT4KKyAgICAgICAgPGgxPgorICAgICAgICAgIDxhIGlkPSJucG0tbG9nbyIgaHJlZj0iLyI+CisgICAgICAgICAgICA8aW1nIHNyYz0iL3N0YXRpYy9pbWcvbnBtLnBuZyIgYWx0PSJucG0iPgorICAgICAgICAgIDwvYT4KKyAgICAgICAgPC9oMT4KKyAgICAgIDwvaGVhZGVyPgorCisKKzxkaXYgaWQ9ImluZGV4Ij4KKyAgPGgxPk5vZGUgUGFja2FnZWQgTW9kdWxlczwvaDE+CisKKyAgCisgIDxwPlRvdGFsIFBhY2thZ2VzOiA4OSA1Mzc8L3A+CisgIAorCisgIAorICA8dGFibGUgY2xhc3M9ImRvd25sb2FkcyI+CisgICAgCisgICAgPHRyPjx0ZD42IDUyMCA4MDc8L3RkPjx0ZD4gZG93bmxvYWRzIGluIHRoZSBsYXN0IGRheTwvdGQ+PC90cj4KKzx0cj48dGQ+OTYgOTEzIDkzMTwvdGQ+PHRkPiBkb3dubG9hZHMgaW4gdGhlIGxhc3Qgd2VlazwvdGQ+PC90cj4KKzx0cj48dGQ+Mzg2IDM2NyA3ODU8L3RkPjx0ZD4gZG93bmxvYWRzIGluIHRoZSBsYXN0IG1vbnRoPC90ZD48L3RyPgorICA8L3RhYmxlPgorCisKKworICA8cD48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbnBtL25wbS13d3ciPlBhdGNoZXMgd2VsY29tZSE8L2E+PC9wPgorCisgIDxwPkFueSBwYWNrYWdlIGNhbiBiZSBpbnN0YWxsZWQgYnkgdXNpbmcgPGNvZGU+CisgICAgPGEgaHJlZj0iL2RvYy9pbnN0YWxsLmh0bWwiPm5wbSBpbnN0YWxsPC9hPjwvY29kZT4uPC9wPgorCisgIDxwPkFkZCB5b3VyIHByb2dyYW1zIHRvIHRoaXMgaW5kZXggYnkgdXNpbmcgPGNvZGU+CisgICAgPGEgaHJlZj0iL2RvYy9wdWJsaXNoLmh0bWwiPm5wbSBwdWJsaXNoPC9hPjwvY29kZT4uPC9wPgorCisgIDwhLS0gdGFibGVzIGZlciBsYXlvdXQgb21pZ29zaCEgd2hhdGV2ZXIsIGl0IHdvcmtzLiAtLT4KKyAgPHRhYmxlPgorICA8dHI+CisKKyAgICA8dGQ+CisgICAgICA8aDI+UmVjZW50bHkgVXBkYXRlZDwvaDI+CisgICAgICA8dWw+CisgICAgICAgIDxsaT40bSA8YSBocmVmPSIvcGFja2FnZS9zdXBlcm1vZHVsZV9hbGxleDMyMzIiPnN1cGVybW9kdWxlX2FsbGV4MzIzMjwvYT48L2xpPgorICAgICAgICAgIDxsaT41bSA8YSBocmVmPSIvcGFja2FnZS9oYXRlbmEtZm90b2xpZmUtY2xpIj5oYXRlbmEtZm90b2xpZmUtY2xpPC9hPjwvbGk+CisgICAgICAgICAgPGxpPjVtIDxhIGhyZWY9Ii9wYWNrYWdlL3N3YWdnZXItdmFsaWRhdGlvbiI+c3dhZ2dlci12YWxpZGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgPGxpPjZtIDxhIGhyZWY9Ii9wYWNrYWdlL3NlcnZlci10b29scyI+c2VydmVyLXRvb2xzPC9hPjwvbGk+CisgICAgICAgICAgPGxpPjZtIDxhIGhyZWY9Ii9wYWNrYWdlL2dyaWRmcy11cGxvYWRlciI+Z3JpZGZzLXVwbG9hZGVyPC9hPjwvbGk+CisgICAgICAgICAgPGxpPjhtIDxhIGhyZWY9Ii9wYWNrYWdlL3NvdXJjZS1wcm9jZXNzb3IiPnNvdXJjZS1wcm9jZXNzb3I8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MTFtIDxhIGhyZWY9Ii9wYWNrYWdlL2VuYi1tYWdpYy1mYWN0b3J5Ij5lbmItbWFnaWMtZmFjdG9yeTwvYT48L2xpPgorICAgICAgICAgIDxsaT4xNG0gPGEgaHJlZj0iL3BhY2thZ2Uvc3BlYy1jb252ZXJ0Ij5zcGVjLWNvbnZlcnQ8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MTVtIDxhIGhyZWY9Ii9wYWNrYWdlL2JpdGNvaW4tdHgtZ3JhcGgiPmJpdGNvaW4tdHgtZ3JhcGg8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MTdtIDxhIGhyZWY9Ii9wYWNrYWdlL2hhdGVuYS1mb3RvbGlmZS1hcGkiPmhhdGVuYS1mb3RvbGlmZS1hcGk8L2E+PC9saT4KKyAgICAgICAgICAKKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9icm93c2UvdXBkYXRlZCI+TW9yZS4uLjwvYT48L2xpPgorICAgICAgPC91bD4KKyAgICA8L3RkPgorCisgICAgPHRkPgorICAgICAgPGgyPk1vc3QgRGVwZW5kZWQgVXBvbjwvaDI+CisgICAgICA8dWw+CisgICAgICAgIDxsaT42ODMyIDxhIGhyZWY9Ii9wYWNrYWdlL3VuZGVyc2NvcmUiPnVuZGVyc2NvcmU8L2E+PC9saT4KKyAgICAgICAgICA8bGk+NjIwMSA8YSBocmVmPSIvcGFja2FnZS9hc3luYyI+YXN5bmM8L2E+PC9saT4KKyAgICAgICAgICA8bGk+NTMyMSA8YSBocmVmPSIvcGFja2FnZS9yZXF1ZXN0Ij5yZXF1ZXN0PC9hPjwvbGk+CisgICAgICAgICAgPGxpPjQ1MzEgPGEgaHJlZj0iL3BhY2thZ2UvbG9kYXNoIj5sb2Rhc2g8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MzUwMSA8YSBocmVmPSIvcGFja2FnZS9jb21tYW5kZXIiPmNvbW1hbmRlcjwvYT48L2xpPgorICAgICAgICAgIDxsaT4zNDAzIDxhIGhyZWY9Ii9wYWNrYWdlL2V4cHJlc3MiPmV4cHJlc3M8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MjcwOCA8YSBocmVmPSIvcGFja2FnZS9vcHRpbWlzdCI+b3B0aW1pc3Q8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MjU1MCA8YSBocmVmPSIvcGFja2FnZS9jb2ZmZWUtc2NyaXB0Ij5jb2ZmZWUtc2NyaXB0PC9hPjwvbGk+CisgICAgICAgICAgPGxpPjI1MzMgPGEgaHJlZj0iL3BhY2thZ2UvY29sb3JzIj5jb2xvcnM8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MjE0OCA8YSBocmVmPSIvcGFja2FnZS9ta2RpcnAiPm1rZGlycDwvYT48L2xpPgorICAgICAgICAgIAorICAgICAgICA8bGk+PGEgaHJlZj0iL2Jyb3dzZS9kZXBlbmRlZCI+TW9yZS4uLjwvYT48L2xpPgorICAgICAgPC91bD4KKyAgICA8L3RkPgorCisgIDwvdHI+CisgIDx0cj4KKworICAgIDx0ZD4KKyAgICAgIDxoMj5Nb3N0IFN0YXJyZWQ8L2gyPgorICAgICAgPHVsPgorICAgICAgICA8bGk+NDg0IDxhIGhyZWY9Ii9wYWNrYWdlL2V4cHJlc3MiPmV4cHJlc3M8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MjgxIDxhIGhyZWY9Ii9wYWNrYWdlL2FzeW5jIj5hc3luYzwvYT48L2xpPgorICAgICAgICAgIDxsaT4yMzYgPGEgaHJlZj0iL3BhY2thZ2UvZ3J1bnQiPmdydW50PC9hPjwvbGk+CisgICAgICAgICAgPGxpPjIxOSA8YSBocmVmPSIvcGFja2FnZS9yZXF1ZXN0Ij5yZXF1ZXN0PC9hPjwvbGk+CisgICAgICAgICAgPGxpPjIwOCA8YSBocmVmPSIvcGFja2FnZS9zb2NrZXQuaW8iPnNvY2tldC5pbzwvYT48L2xpPgorICAgICAgICAgIDxsaT4yMDUgPGEgaHJlZj0iL3BhY2thZ2UvbG9kYXNoIj5sb2Rhc2g8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MTcxIDxhIGhyZWY9Ii9wYWNrYWdlL2d1bHAiPmd1bHA8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MTY1IDxhIGhyZWY9Ii9wYWNrYWdlL21vY2hhIj5tb2NoYTwvYT48L2xpPgorICAgICAgICAgIDxsaT4xNTIgPGEgaHJlZj0iL3BhY2thZ2UvbW9uZ29vc2UiPm1vbmdvb3NlPC9hPjwvbGk+CisgICAgICAgICAgPGxpPjE0NiA8YSBocmVmPSIvcGFja2FnZS91bmRlcnNjb3JlIj51bmRlcnNjb3JlPC9hPjwvbGk+CisgICAgICAgICAgCisgICAgICAgIDxsaT48YSBocmVmPSIvYnJvd3NlL3N0YXIiPk1vcmUuLi48L2E+PC9saT4KKyAgICAgIDwvdWw+CisgICAgPC90ZD4KKworICAgIDx0ZD4KKyAgICAgIDxoMj5Nb3N0IFByb2xpZmljIFJlY2VudGx5PC9oMj4KKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPjIwMiA8YSBocmVmPSIvfnNpbmRyZXNvcmh1cyI+c2luZHJlc29yaHVzPC9hPjwvbGk+CisgICAgICAgICAgPGxpPjU5IDxhIGhyZWY9Ii9+am9uZ2xlYmVycnkiPmpvbmdsZWJlcnJ5PC9hPjwvbGk+CisgICAgICAgICAgPGxpPjQ0IDxhIGhyZWY9Ii9+Ymxha2VlbWJyZXkiPmJsYWtlZW1icmV5PC9hPjwvbGk+CisgICAgICAgICAgPGxpPjQzIDxhIGhyZWY9Ii9+b3NjYXJvdGVybyI+b3NjYXJvdGVybzwvYT48L2xpPgorICAgICAgICAgIDxsaT40MyA8YSBocmVmPSIvfmNsb3Vkc3BhcmsiPmNsb3Vkc3Bhcms8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MzkgPGEgaHJlZj0iL35qaGgiPmpoaDwvYT48L2xpPgorICAgICAgICAgIDxsaT4zNiA8YSBocmVmPSIvfmpvbnNjaGxpbmtlcnQiPmpvbnNjaGxpbmtlcnQ8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MzUgPGEgaHJlZj0iL351dXBhYSI+dXVwYWE8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MzMgPGEgaHJlZj0iL35zdWJzdGFjayI+c3Vic3RhY2s8L2E+PC9saT4KKyAgICAgICAgICA8bGk+MzAgPGEgaHJlZj0iL35rZXZ2YSI+a2V2dmE8L2E+PC9saT4KKyAgICAgICAgICAKKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9yZWNlbnQtYXV0aG9ycyI+TW9yZS4uLjwvYT48L2xpPgorICAgICAgPC91bD4KKyAgICA8L3RkPgorCisgIDwvdHI+CisgIDx0cj4KKworICAgIDx0ZD4KKyAgICAgIDxoMj5ucG0gU3R1ZmY8L2gyPgorICAgICAgPHVsPgorICAgICAgICA8bGk+PGEgaHJlZj0iL2RvYy9mYXEuaHRtbCI+RkFRPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSIvZG9jL1JFQURNRS5odG1sIj5SZWFkbWU8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnBtanMuY29tL3BvbGljaWVzL2Rpc3B1dGVzIj5QYWNrYWdlIG5hbWUgZGlzcHV0ZXM8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtL2lzc3VlcyI+bnBtIEJ1Z3M8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtLXd3dy9pc3N1ZXMiPldlYnNpdGUgQnVnczwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ucG1qcy5jb20vcG9saWNpZXMvY29uZHVjdCI+Q29kZSBvZiBjb25kdWN0PC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm5wbWpzLmNvbS9wb2xpY2llcy9yZWNlaXZpbmctcmVwb3J0cyI+SGFuZGxpbmcgYWJ1c2U8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnBtanMuY29tL3BvbGljaWVzL3ByaXZhY3kiPlByaXZhY3kgcG9saWN5PC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm5wbWpzLmNvbS9wb2xpY2llcy90cmFkZW1hcmsiPlRyYWRlbWFyayBwb2xpY3k8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9hYm91dCI+TW9yZSBhYm91dCB0aGlzIHNpdGU8L2E+PC9saT4KKyAgICAgIDwvdWw+CisgICAgPC90ZD4KKworICAgIDx0ZD4KKyAgICAgIDxoMj5Qcm9maWxlIFN0dWZmPC9oMj4KKworICAgICAgPHVsPgorICAgICAgICA8bGk+PGEgaHJlZj0iL3NpZ251cCI+Q3JlYXRlIGEgcHJvZmlsZTwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iL34iPlZpZXcgeW91ciBwcm9maWxlPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSIvfnJ5Ij5WaWV3IHNvbWVvbmUgZWxzZSdzIHByb2ZpbGU8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9wcm9maWxlLWVkaXQiPkVkaXQgeW91ciBwcm9maWxlPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSIvcGFzc3dvcmQiPkNoYW5nZSB5b3VyIHBhc3N3b3JkPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSIvZm9yZ290Ij5SZXNldCBhIGZvcmdvdHRlbiBwYXNzd29yZDwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iL2xvZ291dCI+TG9nIG91dDwvYT48L2xpPgorICAgICAgPC91bD4KKyAgICA8L3RkPgorCisgIDwvdHI+CisgIDwvdGFibGU+Cis8L2Rpdj4KKworICAgIDwvZGl2PgorICA8L2Rpdj48L2Rpdj4KKworPGRpdiBpZD0iZm9vdGVyIj4KKyAgPGEgY2xhc3M9ImZvb3Rsb2dvIiBocmVmPSIvIj5ucG08L2E+CisKKyAgPHVsPgorICAgIDxsaT48YSBocmVmPSIvIj5ucG0gUmVnaXN0cnk8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iL2RvYy8iPkRvY3VtZW50YXRpb248L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ucG1qcy5jb20vcG9saWNpZXMiPkxlZ2FsPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtLXd3dy9pc3N1ZXMiPldlYnNpdGUgSXNzdWVzPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ub2RlanMub3JnLyI+Tm9kZS5qcyBIb21lPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9ibG9nLm5wbWpzLm9yZy8iPkJsb2c8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3N0YXR1cy5ucG1qcy5vcmcvIj5TdGF0dXM8L2E+PC9saT4KKyAgPC91bD4KKzwvZGl2PgorCis8c21hbGwgY2xhc3M9ImhlYXJ0Ij5ucG0gbG92ZXMgeW91PC9zbWFsbD4KKworPHNjcmlwdCBzcmM9Ii9zdGF0aWMvanMvanF1ZXJ5LTIuMS4wLm1pbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9kMy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9jaGFydHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9zdGF0aWMvanMvc2hfbWFpbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9zaF9qYXZhc2NyaXB0Lm1pbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9hcmlzdG90bGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9zdGF0aWMvanMvaHVic3BvdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9zY3JpcHRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJodHRwczovL3NzbC5nb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcyIgYXN5bmM9InRydWUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9zdGF0aWMvanMvZ29vZ2xlLWFuYWx5dGljcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9pbmNsdWRlLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8IS0tIHBpZD0xNjMxNCB3b3JrZXI9MTkgMjNmYzYxZGM4NmVjNDI4NTE3OWQ2NmIxZjIzMmZhODIxOTRjYjg2OSBodHRwczovL3d3dy5ucG1qcy5vcmcgd3d3LTMuYXdzLWVhc3QuaW50ZXJuYWwubnBtanMuY29tIHVuZGVmaW5lZCAtLT4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZy9ucG1vcmcvc3JjLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvc2ltcGxlX2FwaV9wYXJzaW5nL25wbW9yZy9zcmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGZjMDBkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZy9ucG1vcmcvc3JjLmh0bWwKQEAgLTAsMCArMSwyNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5ucG08L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy5ucG1qcy5vcmcvIj4KKyAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIgorICAgICAgICAgIGhyZWY9Ii9zdGF0aWMvY3NzL25vcm1hbGl6ZS5jc3MiPgorICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiCisgICAgICAgICAgaHJlZj0iL3N0eWx1cy9pbmRleC5jc3MiPgorICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiCisgICAgICAgICAgaHJlZj0iL3N0YXRpYy9jc3Mvc2guY3NzIj4KKyAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIgorICAgICAgICAgIGhyZWY9Ii9zdGF0aWMvY3NzL2NoYXJ0cy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic2VhcmNoIiB0eXBlPSJhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIgorICAgICAgICAgIGhyZWY9Ii9zdGF0aWMvb3BlbnNlYXJjaC54bWwiIHRpdGxlPSJTZWFyY2ggUGFja2FnZXMiLz4KKzxib2R5PgorPGRpdiBpZD0id3JhcCI+Cis8ZGl2IGlkPSJjb250ZW50Ij4KKzxuYXY+CisgICAgPHVsPgorICAgICAgICA8bGkgY2xhc3M9Im5wbSBjdXJyZW50Ij4KKyAgICAgICAgICAgIDxhIGhyZWY9Ii8iPkhvbWU8L2E+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaSBjbGFzcz0iZG9jcyI+CisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vbnBtanMub3JnL2RvYy8iPkFQSTwvYT4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpIGNsYXNzPSJibG9nIj4KKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9ibG9nLm5wbWpzLm9yZy8iPkJsb2c8L2E+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaSBjbGFzcz0ibG9nb3MiPgorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL25vZGVqcy5vcmcvIj5Ob2RlLmpzPC9hPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGkgY2xhc3M9ImpvYnMiPgorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5ucG1qcy5jb20vam9icy8iPkpvYnM8L2E+CisgICAgICAgIDwvbGk+CisgICAgPC91bD4KKworICAgIDx1bCBjbGFzcz0iaGlyaW5nIj4KKyAgICAgICAgPGxpIGNsYXNzPSJoaXJpbmctZ3JvdXAiPgorICAgICAgICAgICAgPGEgaHJlZj0iL3dob3NoaXJpbmciPldobydzIEhpcmluZzwvYT4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGkgZGF0YS1pZD0idm94ZXIiIGNsYXNzPSJoaXJpbmctY29tcGFueSI+CisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnZveGVyLmNvbS9jYXJlZXJzLyI+CisgICAgICAgICAgICAgICAgPHNwYW4+Vm94ZXI8L3NwYW4+CisgICAgICAgICAgICA8L2E+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaSBjbGFzcz0iaGlyaW5nLW1vcmUiPgorICAgICAgICAgICAgPGEgaHJlZj0iL3dob3NoaXJpbmciPisgNyBNb3JlLi4uPC9hPgorICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworICAgIDx1bCBjbGFzcz0ibnBtZSI+CisgICAgICAgIDxsaSBjbGFzcz0ibnBtZS1ncm91cCI+CisgICAgICAgICAgICA8YSBocmVmPSIvZW50ZXJwcmlzZSI+bnBtIEVudGVycHJpc2U8L2E+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaSBjbGFzcz0ibnBtZS1kZXRhaWxzIj4KKyAgICAgICAgICAgIDxhIGhyZWY9Ii9lbnRlcnByaXNlIj5HZXQgYmV0YSBhY2Nlc3MgdG8gdGhlIG5ldyBvbi1wcmVtaXNlcyBzb2x1dGlvbiBmb3IgcHJpdmF0ZSBucG0uPC9hPgorICAgICAgICA8L2xpPgorICAgIDwvdWw+Cis8L25hdj4KKworPGFzaWRlIGNsYXNzPSJsb2dpbiI+CisKKyAgICA8ZGl2IGNsYXNzPSJ1c2VyIHByb2ZpbGUiPgorICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9zZWN1cmUuZ3JhdmF0YXIuY29tL2F2YXRhci9hdmF0YXIuanBnP3M9MTAwJmQ9bW0iIGNsYXNzPSJhdmF0YXItbWVkaXVtIj4gPGEgaHJlZj0vc2lnbnVwPkNyZWF0ZQorICAgICAgICBBY2NvdW50PC9hPiB8IDxhIGhyZWY9L2xvZ2luPkxvZ2luPC9hPgorICAgIDwvZGl2PgorCis8L2FzaWRlPgorCisKKzxkaXYgaWQ9InBhZ2UiPgorICAgIDxoZWFkZXI+CisgICAgICAgIDxmb3JtIGFjdGlvbj0iL3NlYXJjaCIgbWV0aG9kPSJnZXQiIGlkPSJzZWFyY2gtY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InBhY2thZ2Utc2VhcmNoIj4KKworICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPXEgdHlwZT0ic2VhcmNoIiBjbGFzcz0idHlwZWFoZWFkIHNlYXJjaC1pbnB1dCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBQYWNrYWdlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgdGFiaW5kZXg9IjEiPgorCisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9mb3JtPgorICAgICAgICA8aDE+CisgICAgICAgICAgICA8YSBpZD0ibnBtLWxvZ28iIGhyZWY9Ii8iPgorICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvc3RhdGljL2ltZy9ucG0ucG5nIiBhbHQ9Im5wbSI+CisgICAgICAgICAgICA8L2E+CisgICAgICAgIDwvaDE+CisgICAgPC9oZWFkZXI+CisKKworICAgIDxkaXYgaWQ9ImluZGV4Ij4KKyAgICAgICAgPGgxPk5vZGUgUGFja2FnZWQgTW9kdWxlczwvaDE+CisKKworICAgICAgICA8cD5Ub3RhbCBQYWNrYWdlczogODkgNTM3PC9wPgorCisKKyAgICAgICAgPHRhYmxlIGNsYXNzPSJkb3dubG9hZHMiPgorCisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkPjYgNTIwIDgwNzwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPiBkb3dubG9hZHMgaW4gdGhlIGxhc3QgZGF5PC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkPjk2IDkxMyA5MzE8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4gZG93bmxvYWRzIGluIHRoZSBsYXN0IHdlZWs8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQ+Mzg2IDM2NyA3ODU8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4gZG93bmxvYWRzIGluIHRoZSBsYXN0IG1vbnRoPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisKKworICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbnBtL25wbS13d3ciPlBhdGNoZXMgd2VsY29tZSE8L2E+PC9wPgorCisgICAgICAgIDxwPkFueSBwYWNrYWdlIGNhbiBiZSBpbnN0YWxsZWQgYnkgdXNpbmcgPGNvZGU+CisgICAgICAgICAgICA8YSBocmVmPSIvZG9jL2luc3RhbGwuaHRtbCI+bnBtIGluc3RhbGw8L2E+PC9jb2RlPi48L3A+CisKKyAgICAgICAgPHA+QWRkIHlvdXIgcHJvZ3JhbXMgdG8gdGhpcyBpbmRleCBieSB1c2luZyA8Y29kZT4KKyAgICAgICAgICAgIDxhIGhyZWY9Ii9kb2MvcHVibGlzaC5odG1sIj5ucG0gcHVibGlzaDwvYT48L2NvZGU+LjwvcD4KKworICAgICAgICA8IS0tIHRhYmxlcyBmZXIgbGF5b3V0IG9taWdvc2ghIHdoYXRldmVyLCBpdCB3b3Jrcy4gLS0+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKworICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgPGgyPlJlY2VudGx5IFVwZGF0ZWQ8L2gyPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+NG0gPGEgaHJlZj0iL3BhY2thZ2Uvc3VwZXJtb2R1bGVfYWxsZXgzMjMyIj5zdXBlcm1vZHVsZV9hbGxleDMyMzI8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT41bSA8YSBocmVmPSIvcGFja2FnZS9oYXRlbmEtZm90b2xpZmUtY2xpIj5oYXRlbmEtZm90b2xpZmUtY2xpPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+NW0gPGEgaHJlZj0iL3BhY2thZ2Uvc3dhZ2dlci12YWxpZGF0aW9uIj5zd2FnZ2VyLXZhbGlkYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT42bSA8YSBocmVmPSIvcGFja2FnZS9zZXJ2ZXItdG9vbHMiPnNlcnZlci10b29sczwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjZtIDxhIGhyZWY9Ii9wYWNrYWdlL2dyaWRmcy11cGxvYWRlciI+Z3JpZGZzLXVwbG9hZGVyPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+OG0gPGEgaHJlZj0iL3BhY2thZ2Uvc291cmNlLXByb2Nlc3NvciI+c291cmNlLXByb2Nlc3NvcjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjExbSA8YSBocmVmPSIvcGFja2FnZS9lbmItbWFnaWMtZmFjdG9yeSI+ZW5iLW1hZ2ljLWZhY3Rvcnk8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4xNG0gPGEgaHJlZj0iL3BhY2thZ2Uvc3BlYy1jb252ZXJ0Ij5zcGVjLWNvbnZlcnQ8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4xNW0gPGEgaHJlZj0iL3BhY2thZ2UvYml0Y29pbi10eC1ncmFwaCI+Yml0Y29pbi10eC1ncmFwaDwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjE3bSA8YSBocmVmPSIvcGFja2FnZS9oYXRlbmEtZm90b2xpZmUtYXBpIj5oYXRlbmEtZm90b2xpZmUtYXBpPC9hPjwvbGk+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvYnJvd3NlL3VwZGF0ZWQiPk1vcmUuLi48L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICA8aDI+TW9zdCBEZXBlbmRlZCBVcG9uPC9oMj4KKyAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjY4MzIgPGEgaHJlZj0iL3BhY2thZ2UvdW5kZXJzY29yZSI+dW5kZXJzY29yZTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjYyMDEgPGEgaHJlZj0iL3BhY2thZ2UvYXN5bmMiPmFzeW5jPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+NTMyMSA8YSBocmVmPSIvcGFja2FnZS9yZXF1ZXN0Ij5yZXF1ZXN0PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+NDUzMSA8YSBocmVmPSIvcGFja2FnZS9sb2Rhc2giPmxvZGFzaDwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjM1MDEgPGEgaHJlZj0iL3BhY2thZ2UvY29tbWFuZGVyIj5jb21tYW5kZXI8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4zNDAzIDxhIGhyZWY9Ii9wYWNrYWdlL2V4cHJlc3MiPmV4cHJlc3M8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4yNzA4IDxhIGhyZWY9Ii9wYWNrYWdlL29wdGltaXN0Ij5vcHRpbWlzdDwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjI1NTAgPGEgaHJlZj0iL3BhY2thZ2UvY29mZmVlLXNjcmlwdCI+Y29mZmVlLXNjcmlwdDwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjI1MzMgPGEgaHJlZj0iL3BhY2thZ2UvY29sb3JzIj5jb2xvcnM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4yMTQ4IDxhIGhyZWY9Ii9wYWNrYWdlL21rZGlycCI+bWtkaXJwPC9hPjwvbGk+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvYnJvd3NlL2RlcGVuZGVkIj5Nb3JlLi4uPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KKworICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgPGgyPk1vc3QgU3RhcnJlZDwvaDI+CisgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT40ODQgPGEgaHJlZj0iL3BhY2thZ2UvZXhwcmVzcyI+ZXhwcmVzczwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjI4MSA8YSBocmVmPSIvcGFja2FnZS9hc3luYyI+YXN5bmM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4yMzYgPGEgaHJlZj0iL3BhY2thZ2UvZ3J1bnQiPmdydW50PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+MjE5IDxhIGhyZWY9Ii9wYWNrYWdlL3JlcXVlc3QiPnJlcXVlc3Q8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4yMDggPGEgaHJlZj0iL3BhY2thZ2Uvc29ja2V0LmlvIj5zb2NrZXQuaW88L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4yMDUgPGEgaHJlZj0iL3BhY2thZ2UvbG9kYXNoIj5sb2Rhc2g8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4xNzEgPGEgaHJlZj0iL3BhY2thZ2UvZ3VscCI+Z3VscDwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjE2NSA8YSBocmVmPSIvcGFja2FnZS9tb2NoYSI+bW9jaGE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4xNTIgPGEgaHJlZj0iL3BhY2thZ2UvbW9uZ29vc2UiPm1vbmdvb3NlPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+MTQ2IDxhIGhyZWY9Ii9wYWNrYWdlL3VuZGVyc2NvcmUiPnVuZGVyc2NvcmU8L2E+PC9saT4KKworICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9icm93c2Uvc3RhciI+TW9yZS4uLjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgIDxoMj5Nb3N0IFByb2xpZmljIFJlY2VudGx5PC9oMj4KKyAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjIwMiA8YSBocmVmPSIvfnNpbmRyZXNvcmh1cyI+c2luZHJlc29yaHVzPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+NTkgPGEgaHJlZj0iL35qb25nbGViZXJyeSI+am9uZ2xlYmVycnk8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT40NCA8YSBocmVmPSIvfmJsYWtlZW1icmV5Ij5ibGFrZWVtYnJleTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjQzIDxhIGhyZWY9Ii9+b3NjYXJvdGVybyI+b3NjYXJvdGVybzwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjQzIDxhIGhyZWY9Ii9+Y2xvdWRzcGFyayI+Y2xvdWRzcGFyazwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjM5IDxhIGhyZWY9Ii9+amhoIj5qaGg8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4zNiA8YSBocmVmPSIvfmpvbnNjaGxpbmtlcnQiPmpvbnNjaGxpbmtlcnQ8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4zNSA8YSBocmVmPSIvfnV1cGFhIj51dXBhYTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjMzIDxhIGhyZWY9Ii9+c3Vic3RhY2siPnN1YnN0YWNrPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+MzAgPGEgaHJlZj0iL35rZXZ2YSI+a2V2dmE8L2E+PC9saT4KKworICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9yZWNlbnQtYXV0aG9ycyI+TW9yZS4uLjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8dHI+CisKKyAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgIDxoMj5ucG0gU3R1ZmY8L2gyPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RvYy9mYXEuaHRtbCI+RkFRPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2RvYy9SRUFETUUuaHRtbCI+UmVhZG1lPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ucG1qcy5jb20vcG9saWNpZXMvZGlzcHV0ZXMiPlBhY2thZ2UgbmFtZSBkaXNwdXRlczwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtL2lzc3VlcyI+bnBtIEJ1Z3M8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbnBtL25wbS13d3cvaXNzdWVzIj5XZWJzaXRlIEJ1Z3M8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm5wbWpzLmNvbS9wb2xpY2llcy9jb25kdWN0Ij5Db2RlIG9mIGNvbmR1Y3Q8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm5wbWpzLmNvbS9wb2xpY2llcy9yZWNlaXZpbmctcmVwb3J0cyI+SGFuZGxpbmcgYWJ1c2U8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm5wbWpzLmNvbS9wb2xpY2llcy9wcml2YWN5Ij5Qcml2YWN5IHBvbGljeTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubnBtanMuY29tL3BvbGljaWVzL3RyYWRlbWFyayI+VHJhZGVtYXJrIHBvbGljeTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9hYm91dCI+TW9yZSBhYm91dCB0aGlzIHNpdGU8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICA8aDI+UHJvZmlsZSBTdHVmZjwvaDI+CisKKyAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9zaWdudXAiPkNyZWF0ZSBhIHByb2ZpbGU8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvfiI+VmlldyB5b3VyIHByb2ZpbGU8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvfnJ5Ij5WaWV3IHNvbWVvbmUgZWxzZSdzIHByb2ZpbGU8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvcHJvZmlsZS1lZGl0Ij5FZGl0IHlvdXIgcHJvZmlsZTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9wYXNzd29yZCI+Q2hhbmdlIHlvdXIgcGFzc3dvcmQ8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZm9yZ290Ij5SZXNldCBhIGZvcmdvdHRlbiBwYXNzd29yZDwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9sb2dvdXQiPkxvZyBvdXQ8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgIDwvZGl2PgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9ImZvb3RlciI+CisgICAgPGEgY2xhc3M9ImZvb3Rsb2dvIiBocmVmPSIvIj5ucG08L2E+CisKKyAgICA8dWw+CisgICAgICAgIDxsaT48YSBocmVmPSIvIj5ucG0gUmVnaXN0cnk8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Ii9kb2MvIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm5wbWpzLmNvbS9wb2xpY2llcyI+TGVnYWw8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbnBtLXd3dy9pc3N1ZXMiPldlYnNpdGUgSXNzdWVzPC9hPjwvbGk+CisgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vbm9kZWpzLm9yZy8iPk5vZGUuanMgSG9tZTwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2Jsb2cubnBtanMub3JnLyI+QmxvZzwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3N0YXR1cy5ucG1qcy5vcmcvIj5TdGF0dXM8L2E+PC9saT4KKyAgICA8L3VsPgorPC9kaXY+CisKKzxzbWFsbCBjbGFzcz0iaGVhcnQiPm5wbSBsb3ZlcyB5b3U8L3NtYWxsPgorCis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9qcXVlcnktMi4xLjAubWluLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc3RhdGljL2pzL2QzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc3RhdGljL2pzL2NoYXJ0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9zaF9tYWluLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc3RhdGljL2pzL3NoX2phdmFzY3JpcHQubWluLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc3RhdGljL2pzL2FyaXN0b3RsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9odWJzcG90LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc3RhdGljL2pzL3NjcmlwdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Imh0dHBzOi8vc3NsLmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3N0YXRpYy9qcy9nb29nbGUtYW5hbHl0aWNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc3RhdGljL2pzL2luY2x1ZGUuanMiIGFzeW5jPSJ0cnVlIj48L3NjcmlwdD4KKzwhLS0gcGlkPTE2MzE0IHdvcmtlcj0xOSAyM2ZjNjFkYzg2ZWM0Mjg1MTc5ZDY2YjFmMjMyZmE4MjE5NGNiODY5IGh0dHBzOi8vd3d3Lm5wbWpzLm9yZyB3d3ctMy5hd3MtZWFzdC5pbnRlcm5hbC5ucG1qcy5jb20gdW5kZWZpbmVkIC0tPgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL2NvbnRlbnRNb2RlbEZsYWdzLnRlc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL2NvbnRlbnRNb2RlbEZsYWdzLnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThiMTY5NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vY29udGVudE1vZGVsRmxhZ3MudGVzdApAQCAtMCwwICsxLDc1IEBACit7InRlc3RzIjogWworCit7ImRlc2NyaXB0aW9uIjoiUExBSU5URVhUIGNvbnRlbnQgbW9kZWwgZmxhZyIsCisiaW5pdGlhbFN0YXRlcyI6WyJQTEFJTlRFWFQgc3RhdGUiXSwKKyJsYXN0U3RhcnRUYWciOiJwbGFpbnRleHQiLAorImlucHV0IjoiPGhlYWQ+JmJvZHk7IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICI8aGVhZD4mYm9keTsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW5kIHRhZyBjbG9zaW5nIFJDREFUQSBvciBSQVdURVhUIiwKKyJpbml0aWFsU3RhdGVzIjpbIlJDREFUQSBzdGF0ZSIsICJSQVdURVhUIHN0YXRlIl0sCisibGFzdFN0YXJ0VGFnIjoieG1wIiwKKyJpbnB1dCI6ImZvbzwveG1wPiIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiZm9vIl0sIFsiRW5kVGFnIiwgInhtcCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbmQgdGFnIGNsb3NpbmcgUkNEQVRBIG9yIFJBV1RFWFQgKGNhc2UtaW5zZW5zaXRpdml0eSkiLAorImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyJsYXN0U3RhcnRUYWciOiJ4bXAiLAorImlucHV0IjoiZm9vPC94TXA+IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJmb28iXSwgWyJFbmRUYWciLCAieG1wIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkVuZCB0YWcgY2xvc2luZyBSQ0RBVEEgb3IgUkFXVEVYVCAoZW5kaW5nIHdpdGggc3BhY2UpIiwKKyJpbml0aWFsU3RhdGVzIjpbIlJDREFUQSBzdGF0ZSIsICJSQVdURVhUIHN0YXRlIl0sCisibGFzdFN0YXJ0VGFnIjoieG1wIiwKKyJpbnB1dCI6ImZvbzwveG1wICIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiZm9vIl0sICJQYXJzZUVycm9yIl19LAorCit7ImRlc2NyaXB0aW9uIjoiRW5kIHRhZyBjbG9zaW5nIFJDREFUQSBvciBSQVdURVhUIChlbmRpbmcgd2l0aCBFT0YpIiwKKyJpbml0aWFsU3RhdGVzIjpbIlJDREFUQSBzdGF0ZSIsICJSQVdURVhUIHN0YXRlIl0sCisibGFzdFN0YXJ0VGFnIjoieG1wIiwKKyJpbnB1dCI6ImZvbzwveG1wIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJmb288L3htcCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbmQgdGFnIGNsb3NpbmcgUkNEQVRBIG9yIFJBV1RFWFQgKGVuZGluZyB3aXRoIHNsYXNoKSIsCisiaW5pdGlhbFN0YXRlcyI6WyJSQ0RBVEEgc3RhdGUiLCAiUkFXVEVYVCBzdGF0ZSJdLAorImxhc3RTdGFydFRhZyI6InhtcCIsCisiaW5wdXQiOiJmb288L3htcC8iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgImZvbyJdLCAiUGFyc2VFcnJvciJdfSwKKworeyJkZXNjcmlwdGlvbiI6IkVuZCB0YWcgbm90IGNsb3NpbmcgUkNEQVRBIG9yIFJBV1RFWFQgKGVuZGluZyB3aXRoIGxlZnQtYW5nbGUtYnJhY2tldCkiLAorImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyJsYXN0U3RhcnRUYWciOiJ4bXAiLAorImlucHV0IjoiZm9vPC94bXA8IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJmb288L3htcDwiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW5kIHRhZyB3aXRoIGluY29ycmVjdCBuYW1lIGluIFJDREFUQSBvciBSQVdURVhUIiwKKyJpbml0aWFsU3RhdGVzIjpbIlJDREFUQSBzdGF0ZSIsICJSQVdURVhUIHN0YXRlIl0sCisibGFzdFN0YXJ0VGFnIjoieG1wIiwKKyJpbnB1dCI6IjwvZm9vPmJhcjwveG1wPiIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiPC9mb28+YmFyIl0sIFsiRW5kVGFnIiwgInhtcCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbmQgdGFnIHdpdGggaW5jb3JyZWN0IG5hbWUgaW4gUkNEQVRBIG9yIFJBV1RFWFQgKHN0YXJ0aW5nIGxpa2UgY29ycmVjdCBuYW1lKSIsCisiaW5pdGlhbFN0YXRlcyI6WyJSQ0RBVEEgc3RhdGUiLCAiUkFXVEVYVCBzdGF0ZSJdLAorImxhc3RTdGFydFRhZyI6InhtcCIsCisiaW5wdXQiOiI8L2Zvbz5iYXI8L3htcGFhcj4iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIjwvZm9vPmJhcjwveG1wYWFyPiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbmQgdGFnIGNsb3NpbmcgUkNEQVRBIG9yIFJBV1RFWFQsIHN3aXRjaGluZyBiYWNrIHRvIFBDREFUQSIsCisiaW5pdGlhbFN0YXRlcyI6WyJSQ0RBVEEgc3RhdGUiLCAiUkFXVEVYVCBzdGF0ZSJdLAorImxhc3RTdGFydFRhZyI6InhtcCIsCisiaW5wdXQiOiJmb288L3htcD48L2Jhej4iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgImZvbyJdLCBbIkVuZFRhZyIsICJ4bXAiXSwgWyJFbmRUYWciLCAiYmF6Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlJBV1RFWFQgdy8gc29tZXRoaW5nIGxvb2tpbmcgbGlrZSBhbiBlbnRpdHkiLAorImluaXRpYWxTdGF0ZXMiOlsiUkFXVEVYVCBzdGF0ZSJdLAorImxhc3RTdGFydFRhZyI6InhtcCIsCisiaW5wdXQiOiImZm9vOyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiJmZvbzsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiUkNEQVRBIHcvIGFuIGVudGl0eSIsCisiaW5pdGlhbFN0YXRlcyI6WyJSQ0RBVEEgc3RhdGUiXSwKKyJsYXN0U3RhcnRUYWciOiJ0ZXh0YXJlYSIsCisiaW5wdXQiOiImbHQ7IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICI8Il1dfQorCitdfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9kb21qcy50ZXN0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9kb21qcy50ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMGM0NDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL2RvbWpzLnRlc3QKQEAgLTAsMCArMSw5MCBAQAoreworICAgICJ0ZXN0cyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiQ1IgaW4gYm9ndXMgY29tbWVudCBzdGF0ZSIsCisgICAgICAgICAgICAiaW5wdXQiOiI8P1x1MDAwZCIsCisgICAgICAgICAgICAib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiP1x1MDAwYSJdXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJDUkxGIGluIGJvZ3VzIGNvbW1lbnQgc3RhdGUiLAorICAgICAgICAgICAgImlucHV0IjoiPD9cdTAwMGRcdTAwMGEiLAorICAgICAgICAgICAgIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9cdTAwMGEiXV0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiTlVMIGluIFJDREFUQSBhbmQgUkFXVEVYVCIsCisgICAgICAgICAgICAiZG91YmxlRXNjYXBlZCI6dHJ1ZSwKKyAgICAgICAgICAgICJpbml0aWFsU3RhdGVzIjpbIlJDREFUQSBzdGF0ZSIsICJSQVdURVhUIHN0YXRlIl0sCisgICAgICAgICAgICAiaW5wdXQiOiJcXHUwMDAwIiwKKyAgICAgICAgICAgICJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlxcdUZGRkQiXV0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoic2tpcCBmaXJzdCBCT00gYnV0IG5vdCBsYXRlciBvbmVzIiwKKyAgICAgICAgICAgICJpbnB1dCI6Ilx1RkVGRmZvb1x1RkVGRmJhciIsCisgICAgICAgICAgICAib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiZm9vXHVGRUZGYmFyIl1dCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6Ik5vbiBCTVAtY2hhcnJlZiBpbiBpbiBSQ0RBVEEiLAorICAgICAgICAgICAgImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIl0sCisgICAgICAgICAgICAiaW5wdXQiOiImTm90RXF1YWxUaWxkZTsiLAorICAgICAgICAgICAgIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIlx1MjI0Mlx1MDMzOCJdXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJCYWQgY2hhcnJlZiBpbiBpbiBSQ0RBVEEiLAorICAgICAgICAgICAgImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIl0sCisgICAgICAgICAgICAiaW5wdXQiOiImTm90RXF1YWxUaWxkOyIsCisgICAgICAgICAgICAib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICImTm90RXF1YWxUaWxkOyJdXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJsb3dlcmNhc2UgZW5kdGFncyBpbiBSQ0RBVEEgYW5kIFJBV1RFWFQiLAorICAgICAgICAgICAgImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyAgICAgICAgICAgICJsYXN0U3RhcnRUYWciOiJ4bXAiLAorICAgICAgICAgICAgImlucHV0IjoiPC9YTVA+IiwKKyAgICAgICAgICAgICJvdXRwdXQiOltbIkVuZFRhZyIsInhtcCJdXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJiYWQgZW5kdGFnIGluIFJDREFUQSBhbmQgUkFXVEVYVCIsCisgICAgICAgICAgICAiaW5pdGlhbFN0YXRlcyI6WyJSQ0RBVEEgc3RhdGUiLCAiUkFXVEVYVCBzdGF0ZSJdLAorICAgICAgICAgICAgImxhc3RTdGFydFRhZyI6InhtcCIsCisgICAgICAgICAgICAiaW5wdXQiOiI8LyBYTVA+IiwKKyAgICAgICAgICAgICJvdXRwdXQiOltbIkNoYXJhY3RlciIsIjwvIFhNUD4iXV0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiYmFkIGVuZHRhZyBpbiBSQ0RBVEEgYW5kIFJBV1RFWFQiLAorICAgICAgICAgICAgImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyAgICAgICAgICAgICJsYXN0U3RhcnRUYWciOiJ4bXAiLAorICAgICAgICAgICAgImlucHV0IjoiPC94bT4iLAorICAgICAgICAgICAgIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwiPC94bT4iXV0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiYmFkIGVuZHRhZyBpbiBSQ0RBVEEgYW5kIFJBV1RFWFQiLAorICAgICAgICAgICAgImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyAgICAgICAgICAgICJsYXN0U3RhcnRUYWciOiJ4bXAiLAorICAgICAgICAgICAgImlucHV0IjoiPC94bSAiLAorICAgICAgICAgICAgIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwiPC94bSAiXV0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiYmFkIGVuZHRhZyBpbiBSQ0RBVEEgYW5kIFJBV1RFWFQiLAorICAgICAgICAgICAgImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyAgICAgICAgICAgICJsYXN0U3RhcnRUYWciOiJ4bXAiLAorICAgICAgICAgICAgImlucHV0IjoiPC94bS8iLAorICAgICAgICAgICAgIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwiPC94bS8iXV0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiTm9uIEJNUC1jaGFycmVmIGluIGF0dHJpYnV0ZSIsCisgICAgICAgICAgICAiaW5wdXQiOiI8cCBpZD1cIiZOb3RFcXVhbFRpbGRlO1wiPiIsCisgICAgICAgICAgICAib3V0cHV0IjpbWyJTdGFydFRhZyIsICJwIiwgeyJpZCI6Ilx1MjI0Mlx1MDMzOCJ9XV0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjoiLS0hTlVMIGluIGNvbW1lbnQgIiwKKyAgICAgICAgICAgICJkb3VibGVFc2NhcGVkIjp0cnVlLAorICAgICAgICAgICAgImlucHV0IjoiPCEtLS0tIVxcdTAwMDAtLT4iLAorICAgICAgICAgICAgIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0hXFx1RkZGRCJdXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiJzcGFjZSBFT0YgYWZ0ZXIgZG9jdHlwZSAiLAorICAgICAgICAgICAgImlucHV0IjoiPCFET0NUWVBFIGh0bWwgIiwKKyAgICAgICAgICAgICJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCAsIGZhbHNlXV0KKyAgICAgICAgfQorCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9lbnRpdGllcy50ZXN0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9lbnRpdGllcy50ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjYjE3YTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL2VudGl0aWVzLnRlc3QKQEAgLTAsMCArMSwyODMgQEAKK3sidGVzdHMiOiBbCisKK3siZGVzY3JpcHRpb24iOiAiVW5kZWZpbmVkIG5hbWVkIGVudGl0eSBpbiBhdHRyaWJ1dGUgdmFsdWUgZW5kaW5nIGluIHNlbWljb2xvbiBhbmQgd2hvc2UgbmFtZSBzdGFydHMgd2l0aCBhIGtub3duIGVudGl0eSBuYW1lLiIsCisiaW5wdXQiOiI8aCBhPScmbm90aTsnPiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJoIiwgeyJhIjogIiZub3RpOyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjogIkVudGl0eSBuYW1lIGZvbGxvd2VkIGJ5IHRoZSBlcXVhbHMgc2lnbiBpbiBhbiBhdHRyaWJ1dGUgdmFsdWUuIiwKKyJpbnB1dCI6IjxoIGE9JyZsYW5nPSc+IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImgiLCB7ImEiOiAiJmxhbmc9In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiAiQ1IgYXMgbnVtZXJpYyBlbnRpdHkiLAorImlucHV0IjoiJiMwMTM7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcciJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiQ1IgYXMgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkiLAorImlucHV0IjoiJiN4MDBEOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBFVVJPIFNJR04gbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDEyODsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjBBQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFJFUExBQ0VNRU5UIENIQVIgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDEyOTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDA4MSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFNJTkdMRSBMT1ctOSBRVU9UQVRJT04gTUFSSyBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTMwOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDFBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBIT09LIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxMzE7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAxOTIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDEzMjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjAxRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIEhPUklaT05UQUwgRUxMSVBTSVMgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDEzMzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjAyNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIERBR0dFUiBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTM0OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDIwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgRE9VQkxFIERBR0dFUiBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTM1OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDIxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVggQUNDRU5UIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxMzY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAyQzYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBQRVIgTUlMTEUgU0lHTiBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTM3OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDMwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxMzg7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAxNjAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBTSU5HTEUgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTM5OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDM5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBPRSBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTQwOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMTUyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgUkVQTEFDRU1FTlQgQ0hBUiBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTQxOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDhEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENBUk9OIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxNDI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAxN0QiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBSRVBMQUNFTUVOVCBDSEFSIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxNDM7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwOEYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBSRVBMQUNFTUVOVCBDSEFSIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxNDQ7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwOTAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSyBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTQ1OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDE4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxNDY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMTkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSyBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTQ3OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDFDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgUklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxNDg7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMUQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBCVUxMRVQgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDE0OTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjAyMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIEVOIERBU0ggbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDE1MDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjAxMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIEVNIERBU0ggbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDE1MTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjAxNCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFNNQUxMIFRJTERFIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImIzAxNTI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAyREMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBUUkFERSBNQVJLIFNJR04gbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDE1MzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjEyMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIExBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST04gbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDE1NDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDE2MSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFNJTkdMRSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiMwMTU1OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDNBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gU01BTEwgTElHQVRVUkUgT0UgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDE1NjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDE1MyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFJFUExBQ0VNRU5UIENIQVIgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjMDE1NzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDA5RCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIEVVUk8gU0lHTiBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDgwOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMEFDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgUkVQTEFDRU1FTlQgQ0hBUiBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDgxOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDgxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgU0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwODI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMUEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIEhPT0sgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA4MzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDE5MiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIERPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSyBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDg0OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDFFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgSE9SSVpPTlRBTCBFTExJUFNJUyBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDg1OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDI2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgREFHR0VSIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwODY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMjAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBET1VCTEUgREFHR0VSIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwODc7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMjEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWCBBQ0NFTlQgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA4ODsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDJDNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFBFUiBNSUxMRSBTSUdOIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwODk7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMzAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04gaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA4QTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDE2MCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwOEI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMzkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBMQVRJTiBDQVBJVEFMIExJR0FUVVJFIE9FIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwOEM7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAxNTIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBSRVBMQUNFTUVOVCBDSEFSIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwOEQ7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwOEQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0FST04gaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA4RTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDE3RCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFJFUExBQ0VNRU5UIENIQVIgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA4RjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDA4RiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFJFUExBQ0VNRU5UIENIQVIgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA5MDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDA5MCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIExFRlQgU0lOR0xFIFFVT1RBVElPTiBNQVJLIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwOTE7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMTgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBSSUdIVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA5MjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjAxOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIExFRlQgRE9VQkxFIFFVT1RBVElPTiBNQVJLIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwOTM7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwMUMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBSSUdIVCBET1VCTEUgUVVPVEFUSU9OIE1BUksgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA5NDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MjAxRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIEJVTExFVCBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDk1OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDIyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgRU4gREFTSCBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDk2OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDEzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgRU0gREFTSCBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDk3OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMDE0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgU01BTEwgVElMREUgaGV4YWRlY2ltYWwgbnVtZXJpYyBlbnRpdHkuIiwKKyJpbnB1dCI6IiYjeDA5ODsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDJEQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiV2luZG93cy0xMjUyIFRSQURFIE1BUksgU0lHTiBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDk5OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUyMTIyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTiBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDlBOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMTYxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgU0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIGhleGFkZWNpbWFsIG51bWVyaWMgZW50aXR5LiIsCisiaW5wdXQiOiImI3gwOUI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTIwM0EiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIldpbmRvd3MtMTI1MiBMQVRJTiBTTUFMTCBMSUdBVFVSRSBPRSBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDlDOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMTUzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgUkVQTEFDRU1FTlQgQ0hBUiBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDlEOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDlEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTiBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDlFOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMTdFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJXaW5kb3dzLTEyNTIgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUyBoZXhhZGVjaW1hbCBudW1lcmljIGVudGl0eS4iLAorImlucHV0IjoiJiN4MDlGOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMTc4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJEZWNpbWFsIG51bWVyaWMgZW50aXR5IGZvbGxvd2VkIGJ5IGhleCBjaGFyYWN0ZXIgYS4iLAorImlucHV0IjoiJiM5N2EiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgImFhIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJEZWNpbWFsIG51bWVyaWMgZW50aXR5IGZvbGxvd2VkIGJ5IGhleCBjaGFyYWN0ZXIgQS4iLAorImlucHV0IjoiJiM5N0EiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgImFBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJEZWNpbWFsIG51bWVyaWMgZW50aXR5IGZvbGxvd2VkIGJ5IGhleCBjaGFyYWN0ZXIgZi4iLAorImlucHV0IjoiJiM5N2YiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgImFmIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJEZWNpbWFsIG51bWVyaWMgZW50aXR5IGZvbGxvd2VkIGJ5IGhleCBjaGFyYWN0ZXIgQS4iLAorImlucHV0IjoiJiM5N0YiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgImFGIl1dfQorCitdfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9lc2NhcGVGbGFnLnRlc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL2VzY2FwZUZsYWcudGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGNiNDMwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9lc2NhcGVGbGFnLnRlc3QKQEAgLTAsMCArMSwzMyBAQAoreyJ0ZXN0cyI6IFsKKworeyJkZXNjcmlwdGlvbiI6IkNvbW1lbnRlZCBjbG9zZSB0YWcgaW4gUkNEQVRBIG9yIFJBV1RFWFQiLAorImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyJsYXN0U3RhcnRUYWciOiJ4bXAiLAorImlucHV0IjoiZm9vPCEtLTwveG1wPi0tPjwveG1wPiIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiZm9vPCEtLSJdLCBbIkVuZFRhZyIsICJ4bXAiXSwgWyJDaGFyYWN0ZXIiLCAiLS0+Il0sIFsiRW5kVGFnIiwgInhtcCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJCb2d1cyBjb21tZW50IGluIFJDREFUQSBvciBSQVdURVhUIiwKKyJpbml0aWFsU3RhdGVzIjpbIlJDREFUQSBzdGF0ZSIsICJSQVdURVhUIHN0YXRlIl0sCisibGFzdFN0YXJ0VGFnIjoieG1wIiwKKyJpbnB1dCI6ImZvbzwhLS0+YmF6PC94bXA+IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJmb288IS0tPmJheiJdLCBbIkVuZFRhZyIsICJ4bXAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW5kIHRhZyBzdXJyb3VuZGVkIGJ5IGJvZ3VzIGNvbW1lbnQgaW4gUkNEQVRBIG9yIFJBV1RFWFQiLAorImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyJsYXN0U3RhcnRUYWciOiJ4bXAiLAorImlucHV0IjoiZm9vPCEtLT48L3htcD48IS0tPmJhejwveG1wPiIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiZm9vPCEtLT4iXSwgWyJFbmRUYWciLCAieG1wIl0sICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiJdLCBbIkNoYXJhY3RlciIsICJiYXoiXSwgWyJFbmRUYWciLCAieG1wIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkNvbW1lbnRlZCBlbnRpdGllcyBpbiBSQ0RBVEEiLAorImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIl0sCisibGFzdFN0YXJ0VGFnIjoieG1wIiwKKyJpbnB1dCI6IiAmYW1wOyA8IS0tICZhbXA7IC0tPiAmYW1wOyA8L3htcD4iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIiAmIDwhLS0gJiAtLT4gJiAiXSwgWyJFbmRUYWciLCAieG1wIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkluY29ycmVjdCBjb21tZW50IGVuZGluZyBzZXF1ZW5jZXMgaW4gUkNEQVRBIG9yIFJBV1RFWFQiLAorImluaXRpYWxTdGF0ZXMiOlsiUkNEQVRBIHN0YXRlIiwgIlJBV1RFWFQgc3RhdGUiXSwKKyJsYXN0U3RhcnRUYWciOiJ4bXAiLAorImlucHV0IjoiZm9vPCEtLSB4IC0teD54LS0gPngtLSE+eC0tPD48L3htcD4iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgImZvbzwhLS0geCAtLXg+eC0tID54LS0hPngtLTw+Il0sIFsiRW5kVGFnIiwgInhtcCJdXX0KKworXX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vbmFtZWRFbnRpdGllcy50ZXN0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9uYW1lZEVudGl0aWVzLnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE1MWM5YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vbmFtZWRFbnRpdGllcy50ZXN0CkBAIC0wLDAgKzEsNDQxODkgQEAKK3sKKyAgICAidGVzdHMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQUVsaWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEFFbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBRWxpZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEFFbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFNUCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQU1QIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQU1QOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQU1QOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEFhY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGMxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQWFjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQWFjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFicmV2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEFicmV2ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkFicmV2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFicmV2ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEFicmV2ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQWNpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFjaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQWNpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGMyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQWN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQWN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQWN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQxMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEFmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkFmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEFmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBZ3JhdmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEFncmF2ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQWdyYXZlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQWdyYXZlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFscGhhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQWxwaGEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZBbHBoYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFscGhhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQWxwaGE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMzkxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQW1hY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBBbWFjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkFtYWNyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQW1hY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBBbWFjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBbmQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBBbmQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZBbmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBbmQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBBbmQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTUzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQW9nb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBBb2dvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkFvZ29uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQW9nb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBBb2dvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkFvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBcHBseUZ1bmN0aW9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQXBwbHlGdW5jdGlvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkFwcGx5RnVuY3Rpb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBcHBseUZ1bmN0aW9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQXBwbHlGdW5jdGlvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwNjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBcmluZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQXJpbmcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkFyaW5nOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQXJpbmc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGM1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQXNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEFzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZBc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQXNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEFzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkYzljIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQXNzaWduIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQXNzaWduIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQXNzaWduIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQXNzaWduOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQXNzaWduOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkF0aWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQXRpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZBdGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBBdGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGMzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQXVtbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQXVtbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQXVtbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEF1bWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmFja3NsYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQmFja3NsYXNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQmFja3NsYXNoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmFja3NsYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQmFja3NsYXNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJhcnYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBCYXJ2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQmFydiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJhcnY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBCYXJ2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFlNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJhcndlZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEJhcndlZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkJhcndlZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJhcndlZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEJhcndlZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZCY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBCY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZCY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZCY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBCY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDExIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmVjYXVzZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEJlY2F1c2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZCZWNhdXNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmVjYXVzZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEJlY2F1c2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjM1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmVybm91bGxpcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEJlcm5vdWxsaXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZCZXJub3VsbGlzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmVybm91bGxpczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEJlcm5vdWxsaXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmV0YSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEJldGEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZCZXRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmV0YTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEJldGE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMzkyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQmZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQmZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQmZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQmZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQwNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBCb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQm9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBCb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQzOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJyZXZlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQnJldmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZCcmV2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkJyZXZlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQnJldmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMmQ4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQnNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEJzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZCc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQnNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEJzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQnVtcGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQnVtcGVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQnVtcGVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQnVtcGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQnVtcGVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNIY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDSGN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ0hjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNIY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDSGN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQyNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNPUFkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENPUFkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNPUFk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDT1BZOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNhY3V0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENhY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNhY3V0ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNhY3V0ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENhY3V0ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDYXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDYXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDYXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDYXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ2FwaXRhbERpZmZlcmVudGlhbEQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDYXBpdGFsRGlmZmVyZW50aWFsRCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNhcGl0YWxEaWZmZXJlbnRpYWxEIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ2FwaXRhbERpZmZlcmVudGlhbEQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDYXBpdGFsRGlmZmVyZW50aWFsRDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxNDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDYXlsZXlzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ2F5bGV5cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNheWxleXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDYXlsZXlzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ2F5bGV5czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDY2Fyb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDY2Fyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDY2Fyb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDY2Fyb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDY2Fyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ2NlZGlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNjZWRpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENjZWRpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2NpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEwOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNjb25pbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDY29uaW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2NvbmludCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNjb25pbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDY29uaW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNkb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2RvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEwYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNlZGlsbGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDZWRpbGxhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2VkaWxsYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNlZGlsbGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDZWRpbGxhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNlbnRlckRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENlbnRlckRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNlbnRlckRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNlbnRlckRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENlbnRlckRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ2hpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ2hpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2hpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ2hpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ2hpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNhNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNpcmNsZURvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENpcmNsZURvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNpcmNsZURvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNpcmNsZURvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENpcmNsZURvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDaXJjbGVNaW51cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENpcmNsZU1pbnVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2lyY2xlTWludXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDaXJjbGVNaW51czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENpcmNsZU1pbnVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNpcmNsZVBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDaXJjbGVQbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2lyY2xlUGx1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNpcmNsZVBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDaXJjbGVQbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNpcmNsZVRpbWVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ2lyY2xlVGltZXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDaXJjbGVUaW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNpcmNsZVRpbWVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ2lyY2xlVGltZXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjk3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ2xvY2t3aXNlQ29udG91ckludGVncmFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ2xvY2t3aXNlQ29udG91ckludGVncmFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ2xvY2t3aXNlQ29udG91ckludGVncmFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ2xvY2t3aXNlQ29udG91ckludGVncmFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ2xvY2t3aXNlQ29udG91ckludGVncmFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNsb3NlQ3VybHlEb3VibGVRdW90ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENsb3NlQ3VybHlEb3VibGVRdW90ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNsb3NlQ3VybHlEb3VibGVRdW90ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNsb3NlQ3VybHlEb3VibGVRdW90ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENsb3NlQ3VybHlEb3VibGVRdW90ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDbG9zZUN1cmx5UXVvdGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDbG9zZUN1cmx5UXVvdGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDbG9zZUN1cmx5UXVvdGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDbG9zZUN1cmx5UXVvdGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDbG9zZUN1cmx5UXVvdGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDE5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29sb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDb2xvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNvbG9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29sb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDb2xvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDb2xvbmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDb2xvbmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDb2xvbmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDb2xvbmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDb2xvbmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTc0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29uZ3J1ZW50IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ29uZ3J1ZW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ29uZ3J1ZW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29uZ3J1ZW50OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ29uZ3J1ZW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNvbmludCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENvbmludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkNvbmludCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNvbmludDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENvbmludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDb250b3VySW50ZWdyYWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDb250b3VySW50ZWdyYWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDb250b3VySW50ZWdyYWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZDb250b3VySW50ZWdyYWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDb250b3VySW50ZWdyYWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTAyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29wcm9kdWN0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ29wcm9kdWN0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ29wcm9kdWN0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ29wcm9kdWN0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ29wcm9kdWN0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNyb3NzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ3Jvc3Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDcm9zcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkNyb3NzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ3Jvc3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTJmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ3NjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IENzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZDc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ3NjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IENzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkYzllIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ3VwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogQ3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImQ3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImQ3VwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogQ3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkN1cENhcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEN1cENhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkN1cENhcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkN1cENhcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEN1cENhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZERCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEREIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImREQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZERDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEREOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE0NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkREb3RyYWhkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRERvdHJhaGQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZERG90cmFoZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkREb3RyYWhkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRERvdHJhaGQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTExIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImREpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERKY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZESmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImREpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERKY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDAyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRFNjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERTY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEU2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRFNjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERTY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDA1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRFpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERaY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEWmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRFpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERaY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGFnZ2VyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRGFnZ2VyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRGFnZ2VyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGFnZ2VyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRGFnZ2VyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAyMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRhc2h2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRGFzaHYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEYXNodiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRhc2h2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRGFzaHY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWU0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRGNhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRGNhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRGNhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEwZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEZWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEZWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEZWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEZWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEZWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGVsdGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEZWx0YSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRlbHRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGVsdGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEZWx0YTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzOTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDA3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhY3JpdGljYWxBY3V0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERpYWNyaXRpY2FsQWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEaWFjcml0aWNhbEFjdXRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhY3JpdGljYWxBY3V0ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERpYWNyaXRpY2FsQWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhY3JpdGljYWxEb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEaWFjcml0aWNhbERvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRpYWNyaXRpY2FsRG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhY3JpdGljYWxEb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEaWFjcml0aWNhbERvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAyZDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEaWFjcml0aWNhbERvdWJsZUFjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRGlhY3JpdGljYWxEb3VibGVBY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRpYWNyaXRpY2FsRG91YmxlQWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEaWFjcml0aWNhbERvdWJsZUFjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRGlhY3JpdGljYWxEb3VibGVBY3V0ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAyZGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEaWFjcml0aWNhbEdyYXZlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRGlhY3JpdGljYWxHcmF2ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRpYWNyaXRpY2FsR3JhdmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEaWFjcml0aWNhbEdyYXZlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRGlhY3JpdGljYWxHcmF2ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJgIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhY3JpdGljYWxUaWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERpYWNyaXRpY2FsVGlsZGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEaWFjcml0aWNhbFRpbGRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhY3JpdGljYWxUaWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERpYWNyaXRpY2FsVGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMmRjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhbW9uZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERpYW1vbmQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEaWFtb25kIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlhbW9uZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERpYW1vbmQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlmZmVyZW50aWFsRCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERpZmZlcmVudGlhbEQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEaWZmZXJlbnRpYWxEIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRGlmZmVyZW50aWFsRDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERpZmZlcmVudGlhbEQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTQ2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDNiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdERvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdERvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvdERvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdERvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdERvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwZGMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3RFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG90RXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3RFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUNvbnRvdXJJbnRlZ3JhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdWJsZUNvbnRvdXJJbnRlZ3JhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvdWJsZUNvbnRvdXJJbnRlZ3JhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUNvbnRvdXJJbnRlZ3JhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdWJsZUNvbnRvdXJJbnRlZ3JhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVEb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3VibGVEb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3VibGVEb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVEb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3VibGVEb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGE4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG91YmxlRG93bkFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRG91YmxlRG93bkFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG91YmxlRG93bkFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG91YmxlRG93bkFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRG91YmxlRG93bkFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxlZnRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdWJsZUxlZnRBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvdWJsZUxlZnRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxlZnRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdWJsZUxlZnRBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVMZWZ0UmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdWJsZUxlZnRSaWdodEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG91YmxlTGVmdFJpZ2h0QXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVMZWZ0UmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdWJsZUxlZnRSaWdodEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxlZnRUZWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3VibGVMZWZ0VGVlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG91YmxlTGVmdFRlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxlZnRUZWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3VibGVMZWZ0VGVlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFlNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxvbmdMZWZ0QXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3VibGVMb25nTGVmdEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG91YmxlTG9uZ0xlZnRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxvbmdMZWZ0QXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3VibGVMb25nTGVmdEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdmOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVMb25nUmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdWJsZUxvbmdSaWdodEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG91YmxlTG9uZ1JpZ2h0QXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVMb25nUmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdWJsZUxvbmdSaWdodEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdmOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZVJpZ2h0QXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3VibGVSaWdodEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG91YmxlUmlnaHRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZVJpZ2h0QXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3VibGVSaWdodEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZVJpZ2h0VGVlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRG91YmxlUmlnaHRUZWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3VibGVSaWdodFRlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvdWJsZVJpZ2h0VGVlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRG91YmxlUmlnaHRUZWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmE4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG91YmxlVXBBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdWJsZVVwQXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3VibGVVcEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG91YmxlVXBBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdWJsZVVwQXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWQxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG91YmxlVXBEb3duQXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3VibGVVcERvd25BcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvdWJsZVVwRG93bkFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG91YmxlVXBEb3duQXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3VibGVVcERvd25BcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVWZXJ0aWNhbEJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvdWJsZVZlcnRpY2FsQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG91YmxlVmVydGljYWxCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3VibGVWZXJ0aWNhbEJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvdWJsZVZlcnRpY2FsQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25BcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvd25BcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvd25BcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25BcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvd25BcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duQXJyb3dCYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3duQXJyb3dCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3duQXJyb3dCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duQXJyb3dCYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3duQXJyb3dCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93bkFycm93VXBBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvd25BcnJvd1VwQXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3duQXJyb3dVcEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93bkFycm93VXBBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvd25BcnJvd1VwQXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWY1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93bkJyZXZlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRG93bkJyZXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG93bkJyZXZlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93bkJyZXZlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRG93bkJyZXZlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDMxMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25MZWZ0UmlnaHRWZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3duTGVmdFJpZ2h0VmVjdG9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG93bkxlZnRSaWdodFZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25MZWZ0UmlnaHRWZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3duTGVmdFJpZ2h0VmVjdG9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25MZWZ0VGVlVmVjdG9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRG93bkxlZnRUZWVWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3duTGVmdFRlZVZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25MZWZ0VGVlVmVjdG9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRG93bkxlZnRUZWVWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTVlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93bkxlZnRWZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3duTGVmdFZlY3RvciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvd25MZWZ0VmVjdG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93bkxlZnRWZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3duTGVmdFZlY3Rvcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duTGVmdFZlY3RvckJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvd25MZWZ0VmVjdG9yQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG93bkxlZnRWZWN0b3JCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duTGVmdFZlY3RvckJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvd25MZWZ0VmVjdG9yQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25SaWdodFRlZVZlY3RvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvd25SaWdodFRlZVZlY3RvciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvd25SaWdodFRlZVZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25SaWdodFRlZVZlY3RvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvd25SaWdodFRlZVZlY3Rvcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duUmlnaHRWZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3duUmlnaHRWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3duUmlnaHRWZWN0b3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duUmlnaHRWZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3duUmlnaHRWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWMxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93blJpZ2h0VmVjdG9yQmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRG93blJpZ2h0VmVjdG9yQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG93blJpZ2h0VmVjdG9yQmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRG93blJpZ2h0VmVjdG9yQmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRG93blJpZ2h0VmVjdG9yQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25UZWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3duVGVlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRG93blRlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25UZWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3duVGVlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25UZWVBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERvd25UZWVBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkRvd25UZWVBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkRvd25UZWVBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERvd25UZWVBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duYXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBEb3duYXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEb3duYXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZEb3duYXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBEb3duYXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWQzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IERzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZEc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IERzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkYzlmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRHN0cm9rIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRHN0cm9rIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRHN0cm9rIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRHN0cm9rOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRHN0cm9rOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDExMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVORyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEVORyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkVORyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVORzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVORzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFVEgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVUSCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGQwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRVRIOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRVRIOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVhY3V0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRWFjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYzkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGM5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRWNhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRWNhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRWNhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDExYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVjaXJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGNhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWNpcmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwY2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBFY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZFY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEVkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZFZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTE2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQwOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVncmF2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRWdyYXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFZ3JhdmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFZ3JhdmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWxlbWVudCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEVsZW1lbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZFbGVtZW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRWxlbWVudDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVsZW1lbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRW1hY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBFbWFjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkVtYWNyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRW1hY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFbWFjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFbXB0eVNtYWxsU3F1YXJlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRW1wdHlTbWFsbFNxdWFyZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkVtcHR5U21hbGxTcXVhcmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFbXB0eVNtYWxsU3F1YXJlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRW1wdHlTbWFsbFNxdWFyZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1ZmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFbXB0eVZlcnlTbWFsbFNxdWFyZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEVtcHR5VmVyeVNtYWxsU3F1YXJlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRW1wdHlWZXJ5U21hbGxTcXVhcmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFbXB0eVZlcnlTbWFsbFNxdWFyZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVtcHR5VmVyeVNtYWxsU3F1YXJlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjVhYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVvZ29uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRW9nb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZFb2dvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVvZ29uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRW9nb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTE4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRW9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEVvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZFb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRW9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRXBzaWxvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEVwc2lsb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZFcHNpbG9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRXBzaWxvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVwc2lsb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMzk1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFcXVhbFRpbGRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRXF1YWxUaWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkVxdWFsVGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFcXVhbFRpbGRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRXF1YWxUaWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFcXVpbGlicml1bSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEVxdWlsaWJyaXVtIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRXF1aWxpYnJpdW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFcXVpbGlicml1bTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEVxdWlsaWJyaXVtOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBFc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRXNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEzMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBFc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRXNpbSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkVzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkV0YSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEV0YSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkV0YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkV0YTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEV0YTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzOTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFdW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFdW1sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwY2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFdW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRXVtbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwY2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFeGlzdHMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBFeGlzdHMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZFeGlzdHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZFeGlzdHM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBFeGlzdHM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjAzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRXhwb25lbnRpYWxFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRXhwb25lbnRpYWxFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRXhwb25lbnRpYWxFIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRXhwb25lbnRpYWxFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRXhwb25lbnRpYWxFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE0NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkZjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEZjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkZjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkZjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEZjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZGZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBGZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZGZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZGZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBGZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDA5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRmlsbGVkU21hbGxTcXVhcmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBGaWxsZWRTbWFsbFNxdWFyZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkZpbGxlZFNtYWxsU3F1YXJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRmlsbGVkU21hbGxTcXVhcmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBGaWxsZWRTbWFsbFNxdWFyZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1ZmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZGaWxsZWRWZXJ5U21hbGxTcXVhcmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBGaWxsZWRWZXJ5U21hbGxTcXVhcmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZGaWxsZWRWZXJ5U21hbGxTcXVhcmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZGaWxsZWRWZXJ5U21hbGxTcXVhcmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBGaWxsZWRWZXJ5U21hbGxTcXVhcmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRm9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEZvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZGb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRm9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEZvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDNkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRm9yQWxsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogRm9yQWxsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRm9yQWxsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImRm9yQWxsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogRm9yQWxsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkZvdXJpZXJ0cmYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBGb3VyaWVydHJmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRm91cmllcnRyZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkZvdXJpZXJ0cmY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBGb3VyaWVydHJmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEzMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkZzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBGc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImRnNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkZzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBGc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEzMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdKY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBHSmN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR0pjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdKY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHSmN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQwMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdUIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHVCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiPiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdUOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR1Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiPiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdhbW1hIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogR2FtbWEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZHYW1tYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdhbW1hOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR2FtbWE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMzkzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2FtbWFkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogR2FtbWFkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR2FtbWFkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2FtbWFkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR2FtbWFkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNkYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdicmV2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEdicmV2ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkdicmV2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdicmV2ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEdicmV2ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHY2VkaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBHY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZHY2VkaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHY2VkaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHY2VkaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2NpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBHY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkdjaXJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2NpcmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBHY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZHY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEdkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZHZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEdkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2ZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogR2ZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR2ZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR2ZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR2ZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQwYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogR2cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZHZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR2c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmQ5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR29wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEdvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZHb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR29wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEdvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR3JlYXRlckVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogR3JlYXRlckVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR3JlYXRlckVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR3JlYXRlckVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR3JlYXRlckVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJFcXVhbExlc3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBHcmVhdGVyRXF1YWxMZXNzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR3JlYXRlckVxdWFsTGVzcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJFcXVhbExlc3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHcmVhdGVyRXF1YWxMZXNzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJGdWxsRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBHcmVhdGVyRnVsbEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR3JlYXRlckZ1bGxFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJGdWxsRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHcmVhdGVyRnVsbEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJHcmVhdGVyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogR3JlYXRlckdyZWF0ZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZHcmVhdGVyR3JlYXRlciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJHcmVhdGVyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR3JlYXRlckdyZWF0ZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWEyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR3JlYXRlckxlc3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBHcmVhdGVyTGVzcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkdyZWF0ZXJMZXNzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImR3JlYXRlckxlc3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBHcmVhdGVyTGVzczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHcmVhdGVyU2xhbnRFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEdyZWF0ZXJTbGFudEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR3JlYXRlclNsYW50RXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHcmVhdGVyU2xhbnRFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEdyZWF0ZXJTbGFudEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJUaWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEdyZWF0ZXJUaWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkdyZWF0ZXJUaWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkdyZWF0ZXJUaWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEdyZWF0ZXJUaWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogR3NjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkdzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogR3Njcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEd0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImR3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZHdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEd0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhBUkRjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEhBUkRjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkhBUkRjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhBUkRjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEhBUkRjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZIYWNlayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEhhY2VrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSGFjZWsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZIYWNlazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEhhY2VrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDJjNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhhdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEhhdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkhhdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhhdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEhhdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJeIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSGNpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBIY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkhjaXJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSGNpcmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBIY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZIZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBIZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZIZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZIZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBIZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSGlsYmVydFNwYWNlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSGlsYmVydFNwYWNlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSGlsYmVydFNwYWNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSGlsYmVydFNwYWNlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSGlsYmVydFNwYWNlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEwYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBIb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSG9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBIb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEwZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhvcml6b250YWxMaW5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSG9yaXpvbnRhbExpbmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZIb3Jpem9udGFsTGluZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkhvcml6b250YWxMaW5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSG9yaXpvbnRhbExpbmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTAwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEhzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZIc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEhzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTBiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSHN0cm9rIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSHN0cm9rIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSHN0cm9rIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSHN0cm9rOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSHN0cm9rOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEyNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkh1bXBEb3duSHVtcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEh1bXBEb3duSHVtcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkh1bXBEb3duSHVtcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkh1bXBEb3duSHVtcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEh1bXBEb3duSHVtcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZIdW1wRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBIdW1wRXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZIdW1wRXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZIdW1wRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBIdW1wRXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjRmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSUVjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IElFY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZJRWN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSUVjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IElFY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSUpsaWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJSmxpZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJklKbGlnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSUpsaWc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJSmxpZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJT2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSU9jeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJklPY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJT2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSU9jeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IElhY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGNkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSWFjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSWFjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkljaXJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSWNpcmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZJY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDE4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSWRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IElkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZJZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSWRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IElkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJklncmF2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSWdyYXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwY2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJZ3JhdmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJZ3JhdmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJbWFjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEltYWNyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSW1hY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJbWFjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEltYWNyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEyYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkltYWdpbmFyeUkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJbWFnaW5hcnlJIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSW1hZ2luYXJ5SSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkltYWdpbmFyeUk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJbWFnaW5hcnlJOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE0OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkltcGxpZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJbXBsaWVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSW1wbGllcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkltcGxpZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJbXBsaWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkludCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkludCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkludDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJbnRlZ3JhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEludGVncmFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSW50ZWdyYWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJbnRlZ3JhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEludGVncmFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkludGVyc2VjdGlvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEludGVyc2VjdGlvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkludGVyc2VjdGlvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkludGVyc2VjdGlvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEludGVyc2VjdGlvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJbnZpc2libGVDb21tYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEludmlzaWJsZUNvbW1hIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSW52aXNpYmxlQ29tbWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJbnZpc2libGVDb21tYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEludmlzaWJsZUNvbW1hOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjA2MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkludmlzaWJsZVRpbWVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSW52aXNpYmxlVGltZXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZJbnZpc2libGVUaW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkludmlzaWJsZVRpbWVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSW52aXNpYmxlVGltZXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDYyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSW9nb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJb2dvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJklvZ29uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSW9nb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJb2dvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJklvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJb3RhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSW90YSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJklvdGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJb3RhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSW90YTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzOTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSXNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJklzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSXNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJdGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJdGlsZGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZJdGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJdGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJdGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTI4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSXVrY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBJdWtjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkl1a2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSXVrY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJdWtjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJdW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBJdW1sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwY2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZJdW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSXVtbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwY2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZKY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEpjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSmNpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZKY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEpjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEzNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEpjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkpjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEpjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZKZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBKZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZKZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZKZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBKZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDBkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSm9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEpvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZKb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSm9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEpvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDQxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSnNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEpzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZKc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSnNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEpzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2E1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSnNlcmN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSnNlcmN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImSnNlcmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImSnNlcmN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSnNlcmN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQwOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkp1a2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogSnVrY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZKdWtjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkp1a2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogSnVrY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDA0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS0hjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEtIY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZLSGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS0hjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEtIY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS0pjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEtKY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZLSmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS0pjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEtKY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS2FwcGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBLYXBwYSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkthcHBhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS2FwcGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBLYXBwYTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzOWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZLY2VkaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBLY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZLY2VkaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZLY2VkaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBLY2VkaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTM2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogS2N5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImS2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImS2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogS2N5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQxYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJktmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEtmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJktmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJktmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEtmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZLb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogS29wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJktvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZLb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogS29wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZLc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogS3NjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJktzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZLc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogS3Njcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMSmN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTEpjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxKY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMSmN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTEpjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMVCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTFQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIjwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMVDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExUOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIjwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMYWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTM5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGFtYmRhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGFtYmRhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGFtYmRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGFtYmRhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGFtYmRhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDM5YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxhbmciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMYW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGFuZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxhbmc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMYW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxhcGxhY2V0cmYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMYXBsYWNldHJmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGFwbGFjZXRyZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxhcGxhY2V0cmY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMYXBsYWNldHJmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxjYXJvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExjYXJvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxjYXJvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxjYXJvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExjYXJvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxM2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMY2VkaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMY2VkaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMY2VkaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMY2VkaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTNiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQxYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRBbmdsZUJyYWNrZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0QW5nbGVCcmFja2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdEFuZ2xlQnJhY2tldCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRBbmdsZUJyYWNrZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0QW5nbGVCcmFja2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0QXJyb3dCYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0QXJyb3dCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZWZ0QXJyb3dCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0QXJyb3dCYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0QXJyb3dCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWU0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdEFycm93UmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRBcnJvd1JpZ2h0QXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZWZ0QXJyb3dSaWdodEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdEFycm93UmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRBcnJvd1JpZ2h0QXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWM2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdENlaWxpbmciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0Q2VpbGluZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRDZWlsaW5nIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdENlaWxpbmc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0Q2VpbGluZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0RG91YmxlQnJhY2tldCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnREb3VibGVCcmFja2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdERvdWJsZUJyYWNrZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0RG91YmxlQnJhY2tldDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnREb3VibGVCcmFja2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnREb3duVGVlVmVjdG9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGVmdERvd25UZWVWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZWZ0RG93blRlZVZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnREb3duVGVlVmVjdG9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGVmdERvd25UZWVWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTYxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdERvd25WZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0RG93blZlY3RvciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnREb3duVmVjdG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdERvd25WZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0RG93blZlY3Rvcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0RG93blZlY3RvckJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnREb3duVmVjdG9yQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdERvd25WZWN0b3JCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0RG93blZlY3RvckJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnREb3duVmVjdG9yQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRGbG9vciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRGbG9vciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRGbG9vciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRGbG9vcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRGbG9vcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0UmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRSaWdodEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdFJpZ2h0QXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0UmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRSaWdodEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRSaWdodFZlY3RvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRSaWdodFZlY3RvciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRSaWdodFZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRSaWdodFZlY3RvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRSaWdodFZlY3Rvcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VGVlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGVmdFRlZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRUZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VGVlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGVmdFRlZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VGVlQXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0VGVlQXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZWZ0VGVlQXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VGVlQXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0VGVlQXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWE0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdFRlZVZlY3RvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRUZWVWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZWZ0VGVlVmVjdG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdFRlZVZlY3RvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRUZWVWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTVhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdFRyaWFuZ2xlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGVmdFRyaWFuZ2xlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdFRyaWFuZ2xlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdFRyaWFuZ2xlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGVmdFRyaWFuZ2xlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRUcmlhbmdsZUJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRUcmlhbmdsZUJhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRUcmlhbmdsZUJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRUcmlhbmdsZUJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRUcmlhbmdsZUJhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5Y2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VHJpYW5nbGVFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRUcmlhbmdsZUVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdFRyaWFuZ2xlRXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VHJpYW5nbGVFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRUcmlhbmdsZUVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRVcERvd25WZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0VXBEb3duVmVjdG9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdFVwRG93blZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRVcERvd25WZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0VXBEb3duVmVjdG9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRVcFRlZVZlY3RvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRVcFRlZVZlY3RvciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRVcFRlZVZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRVcFRlZVZlY3RvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRVcFRlZVZlY3Rvcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VXBWZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0VXBWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZWZ0VXBWZWN0b3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0VXBWZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0VXBWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdFVwVmVjdG9yQmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGVmdFVwVmVjdG9yQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdFVwVmVjdG9yQmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVmdFVwVmVjdG9yQmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGVmdFVwVmVjdG9yQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRWZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0VmVjdG9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdFZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRWZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0VmVjdG9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRWZWN0b3JCYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZWZ0VmVjdG9yQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdFZlY3RvckJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRWZWN0b3JCYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZWZ0VmVjdG9yQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlZnRhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlZnRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0cmlnaHRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlZnRyaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVmdHJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZWZ0cmlnaHRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlZnRyaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NFcXVhbEdyZWF0ZXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZXNzRXF1YWxHcmVhdGVyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVzc0VxdWFsR3JlYXRlciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NFcXVhbEdyZWF0ZXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZXNzRXF1YWxHcmVhdGVyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NGdWxsRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZXNzRnVsbEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVzc0Z1bGxFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NGdWxsRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZXNzRnVsbEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NHcmVhdGVyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGVzc0dyZWF0ZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZXNzR3JlYXRlciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NHcmVhdGVyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGVzc0dyZWF0ZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjc2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVzc0xlc3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZXNzTGVzcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlc3NMZXNzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGVzc0xlc3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZXNzTGVzczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZXNzU2xhbnRFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlc3NTbGFudEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTGVzc1NsYW50RXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZXNzU2xhbnRFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlc3NTbGFudEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NUaWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExlc3NUaWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxlc3NUaWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxlc3NUaWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExlc3NUaWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTGw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMbGVmdGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTGxlZnRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxsZWZ0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMbGVmdGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTGxlZnRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMbWlkb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMbWlkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMbWlkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMbWlkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMbWlkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTNmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ0xlZnRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExvbmdMZWZ0QXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMb25nTGVmdEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ0xlZnRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExvbmdMZWZ0QXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2Y1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ0xlZnRSaWdodEFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTG9uZ0xlZnRSaWdodEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTG9uZ0xlZnRSaWdodEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ0xlZnRSaWdodEFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTG9uZ0xlZnRSaWdodEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdmNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxvbmdSaWdodEFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTG9uZ1JpZ2h0QXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMb25nUmlnaHRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxvbmdSaWdodEFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTG9uZ1JpZ2h0QXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2Y2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ2xlZnRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExvbmdsZWZ0YXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMb25nbGVmdGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ2xlZnRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExvbmdsZWZ0YXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2Y4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ2xlZnRyaWdodGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTG9uZ2xlZnRyaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTG9uZ2xlZnRyaWdodGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9uZ2xlZnRyaWdodGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTG9uZ2xlZnRyaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdmYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxvbmdyaWdodGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTG9uZ3JpZ2h0YXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMb25ncmlnaHRhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxvbmdyaWdodGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTG9uZ3JpZ2h0YXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2Y5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDQzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG93ZXJMZWZ0QXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMb3dlckxlZnRBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxvd2VyTGVmdEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTG93ZXJMZWZ0QXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMb3dlckxlZnRBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMb3dlclJpZ2h0QXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBMb3dlclJpZ2h0QXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMb3dlclJpZ2h0QXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMb3dlclJpZ2h0QXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBMb3dlclJpZ2h0QXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTk4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZMc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTEyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTHNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTHNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTHNoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTHNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTHNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxzdHJvayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IExzdHJvayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJkxzdHJvayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJkxzdHJvazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IExzdHJvazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IEx0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZMdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IEx0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk1hcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE1hcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk1hcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk1hcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE1hcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBNY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZNY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBNY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTWVkaXVtU3BhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBNZWRpdW1TcGFjZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk1lZGl1bVNwYWNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTWVkaXVtU3BhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBNZWRpdW1TcGFjZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwNWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNZWxsaW50cmYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBNZWxsaW50cmYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZNZWxsaW50cmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNZWxsaW50cmY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBNZWxsaW50cmY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTMzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQxMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk1pbnVzUGx1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE1pbnVzUGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk1pbnVzUGx1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk1pbnVzUGx1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE1pbnVzUGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk1vcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTXNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk1zY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTXNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNdSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE11IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTXUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZNdTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE11OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDM5YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5KY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOSmN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTkpjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5KY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOSmN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQwYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5hY3V0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5hY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5hY3V0ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5hY3V0ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5hY3V0ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOY2Fyb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOY2Fyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOY2Fyb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOY2Fyb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOY2Fyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTQ3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmNlZGlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTmNlZGlsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTmNlZGlsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmNlZGlsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTmNlZGlsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE0NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5jeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5jeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5jeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5jeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5jeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZWdhdGl2ZU1lZGl1bVNwYWNlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTmVnYXRpdmVNZWRpdW1TcGFjZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5lZ2F0aXZlTWVkaXVtU3BhY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZWdhdGl2ZU1lZGl1bVNwYWNlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTmVnYXRpdmVNZWRpdW1TcGFjZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZWdhdGl2ZVRoaWNrU3BhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOZWdhdGl2ZVRoaWNrU3BhY2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOZWdhdGl2ZVRoaWNrU3BhY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZWdhdGl2ZVRoaWNrU3BhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOZWdhdGl2ZVRoaWNrU3BhY2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDBiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmVnYXRpdmVUaGluU3BhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOZWdhdGl2ZVRoaW5TcGFjZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5lZ2F0aXZlVGhpblNwYWNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmVnYXRpdmVUaGluU3BhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOZWdhdGl2ZVRoaW5TcGFjZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZWdhdGl2ZVZlcnlUaGluU3BhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOZWdhdGl2ZVZlcnlUaGluU3BhY2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOZWdhdGl2ZVZlcnlUaGluU3BhY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZWdhdGl2ZVZlcnlUaGluU3BhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOZWdhdGl2ZVZlcnlUaGluU3BhY2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDBiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmVzdGVkR3JlYXRlckdyZWF0ZXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOZXN0ZWRHcmVhdGVyR3JlYXRlciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5lc3RlZEdyZWF0ZXJHcmVhdGVyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmVzdGVkR3JlYXRlckdyZWF0ZXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOZXN0ZWRHcmVhdGVyR3JlYXRlcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZXN0ZWRMZXNzTGVzcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5lc3RlZExlc3NMZXNzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTmVzdGVkTGVzc0xlc3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOZXN0ZWRMZXNzTGVzczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5lc3RlZExlc3NMZXNzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5ld0xpbmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOZXdMaW5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTmV3TGluZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5ld0xpbmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOZXdMaW5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlxuIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTmZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTmZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTmZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTmZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQxMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vQnJlYWsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb0JyZWFrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm9CcmVhayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vQnJlYWs7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb0JyZWFrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjA2MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vbkJyZWFraW5nU3BhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb25CcmVha2luZ1NwYWNlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm9uQnJlYWtpbmdTcGFjZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vbkJyZWFraW5nU3BhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb25CcmVha2luZ1NwYWNlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RDb25ncnVlbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RDb25ncnVlbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RDb25ncnVlbnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RDb25ncnVlbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RDb25ncnVlbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjYyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90Q3VwQ2FwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90Q3VwQ2FwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90Q3VwQ2FwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90Q3VwQ2FwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90Q3VwQ2FwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdERvdWJsZVZlcnRpY2FsQmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90RG91YmxlVmVydGljYWxCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3REb3VibGVWZXJ0aWNhbEJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdERvdWJsZVZlcnRpY2FsQmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90RG91YmxlVmVydGljYWxCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90RWxlbWVudCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdEVsZW1lbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RFbGVtZW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90RWxlbWVudDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdEVsZW1lbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90RXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdEVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90RXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RFcXVhbFRpbGRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90RXF1YWxUaWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdEVxdWFsVGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RFcXVhbFRpbGRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90RXF1YWxUaWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDJcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RFeGlzdHMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RFeGlzdHMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RFeGlzdHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RFeGlzdHM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RFeGlzdHM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90R3JlYXRlciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdEdyZWF0ZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RHcmVhdGVyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90R3JlYXRlcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdEdyZWF0ZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjZmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90R3JlYXRlckVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90R3JlYXRlckVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90R3JlYXRlckVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90R3JlYXRlckVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90R3JlYXRlckVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdEdyZWF0ZXJGdWxsRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RHcmVhdGVyRnVsbEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90R3JlYXRlckZ1bGxFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdEdyZWF0ZXJGdWxsRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RHcmVhdGVyRnVsbEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2N1x1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdEdyZWF0ZXJHcmVhdGVyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90R3JlYXRlckdyZWF0ZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RHcmVhdGVyR3JlYXRlciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdEdyZWF0ZXJHcmVhdGVyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90R3JlYXRlckdyZWF0ZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjZiXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90R3JlYXRlckxlc3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RHcmVhdGVyTGVzcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdEdyZWF0ZXJMZXNzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90R3JlYXRlckxlc3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RHcmVhdGVyTGVzczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RHcmVhdGVyU2xhbnRFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdEdyZWF0ZXJTbGFudEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90R3JlYXRlclNsYW50RXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RHcmVhdGVyU2xhbnRFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdEdyZWF0ZXJTbGFudEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3ZVx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdEdyZWF0ZXJUaWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdEdyZWF0ZXJUaWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdEdyZWF0ZXJUaWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdEdyZWF0ZXJUaWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdEdyZWF0ZXJUaWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RIdW1wRG93bkh1bXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RIdW1wRG93bkh1bXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RIdW1wRG93bkh1bXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RIdW1wRG93bkh1bXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RIdW1wRG93bkh1bXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjRlXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90SHVtcEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90SHVtcEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90SHVtcEVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90SHVtcEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90SHVtcEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0Zlx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdExlZnRUcmlhbmdsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdExlZnRUcmlhbmdsZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdExlZnRUcmlhbmdsZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdExlZnRUcmlhbmdsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdExlZnRUcmlhbmdsZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZWZ0VHJpYW5nbGVCYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RMZWZ0VHJpYW5nbGVCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RMZWZ0VHJpYW5nbGVCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZWZ0VHJpYW5nbGVCYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RMZWZ0VHJpYW5nbGVCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWNmXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TGVmdFRyaWFuZ2xlRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RMZWZ0VHJpYW5nbGVFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdExlZnRUcmlhbmdsZUVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TGVmdFRyaWFuZ2xlRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RMZWZ0VHJpYW5nbGVFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZXNzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90TGVzcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdExlc3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZXNzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90TGVzczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZXNzRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RMZXNzRXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RMZXNzRXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZXNzRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RMZXNzRXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjcwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TGVzc0dyZWF0ZXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RMZXNzR3JlYXRlciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdExlc3NHcmVhdGVyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TGVzc0dyZWF0ZXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RMZXNzR3JlYXRlcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZXNzTGVzcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdExlc3NMZXNzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90TGVzc0xlc3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RMZXNzTGVzczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdExlc3NMZXNzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2YVx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdExlc3NTbGFudEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90TGVzc1NsYW50RXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RMZXNzU2xhbnRFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdExlc3NTbGFudEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90TGVzc1NsYW50RXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTdkXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TGVzc1RpbGRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90TGVzc1RpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90TGVzc1RpbGRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TGVzc1RpbGRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90TGVzc1RpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdE5lc3RlZEdyZWF0ZXJHcmVhdGVyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90TmVzdGVkR3JlYXRlckdyZWF0ZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdE5lc3RlZEdyZWF0ZXJHcmVhdGVyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90TmVzdGVkR3JlYXRlckdyZWF0ZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWEyXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TmVzdGVkTGVzc0xlc3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3ROZXN0ZWRMZXNzTGVzcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdE5lc3RlZExlc3NMZXNzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90TmVzdGVkTGVzc0xlc3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3ROZXN0ZWRMZXNzTGVzczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYTFcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RQcmVjZWRlcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFByZWNlZGVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90UHJlY2VkZXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RQcmVjZWRlczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFByZWNlZGVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFByZWNlZGVzRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RQcmVjZWRlc0VxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90UHJlY2VkZXNFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFByZWNlZGVzRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RQcmVjZWRlc0VxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFhZlx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFByZWNlZGVzU2xhbnRFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFByZWNlZGVzU2xhbnRFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdFByZWNlZGVzU2xhbnRFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFByZWNlZGVzU2xhbnRFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFByZWNlZGVzU2xhbnRFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RSZXZlcnNlRWxlbWVudCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFJldmVyc2VFbGVtZW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90UmV2ZXJzZUVsZW1lbnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RSZXZlcnNlRWxlbWVudDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFJldmVyc2VFbGVtZW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFJpZ2h0VHJpYW5nbGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RSaWdodFRyaWFuZ2xlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90UmlnaHRUcmlhbmdsZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFJpZ2h0VHJpYW5nbGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RSaWdodFRyaWFuZ2xlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFJpZ2h0VHJpYW5nbGVCYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RSaWdodFRyaWFuZ2xlQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90UmlnaHRUcmlhbmdsZUJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFJpZ2h0VHJpYW5nbGVCYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RSaWdodFRyaWFuZ2xlQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjlkMFx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFJpZ2h0VHJpYW5nbGVFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFJpZ2h0VHJpYW5nbGVFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdFJpZ2h0VHJpYW5nbGVFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFJpZ2h0VHJpYW5nbGVFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFJpZ2h0VHJpYW5nbGVFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RTcXVhcmVTdWJzZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RTcXVhcmVTdWJzZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RTcXVhcmVTdWJzZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RTcXVhcmVTdWJzZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RTcXVhcmVTdWJzZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjhmXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3F1YXJlU3Vic2V0RXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RTcXVhcmVTdWJzZXRFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdFNxdWFyZVN1YnNldEVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3F1YXJlU3Vic2V0RXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RTcXVhcmVTdWJzZXRFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RTcXVhcmVTdXBlcnNldCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFNxdWFyZVN1cGVyc2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90U3F1YXJlU3VwZXJzZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RTcXVhcmVTdXBlcnNldDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFNxdWFyZVN1cGVyc2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5MFx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFNxdWFyZVN1cGVyc2V0RXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RTcXVhcmVTdXBlcnNldEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90U3F1YXJlU3VwZXJzZXRFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFNxdWFyZVN1cGVyc2V0RXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RTcXVhcmVTdXBlcnNldEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1YnNldCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFN1YnNldCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdFN1YnNldCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1YnNldDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFN1YnNldDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODJcdTIwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RTdWJzZXRFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFN1YnNldEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90U3Vic2V0RXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RTdWJzZXRFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFN1YnNldEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1Y2NlZWRzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90U3VjY2VlZHMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RTdWNjZWVkcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1Y2NlZWRzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90U3VjY2VlZHM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjgxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3VjY2VlZHNFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFN1Y2NlZWRzRXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RTdWNjZWVkc0VxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3VjY2VlZHNFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFN1Y2NlZWRzRXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWIwXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3VjY2VlZHNTbGFudEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90U3VjY2VlZHNTbGFudEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90U3VjY2VlZHNTbGFudEVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3VjY2VlZHNTbGFudEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90U3VjY2VlZHNTbGFudEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1Y2NlZWRzVGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RTdWNjZWVkc1RpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90U3VjY2VlZHNUaWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1Y2NlZWRzVGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RTdWNjZWVkc1RpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3Zlx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1cGVyc2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90U3VwZXJzZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RTdXBlcnNldCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFN1cGVyc2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90U3VwZXJzZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjgzXHUyMGQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3VwZXJzZXRFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFN1cGVyc2V0RXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RTdXBlcnNldEVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90U3VwZXJzZXRFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFN1cGVyc2V0RXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjg5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90VGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RUaWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdFRpbGRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTm90VGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RUaWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RUaWxkZUVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90VGlsZGVFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk5vdFRpbGRlRXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RUaWxkZUVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90VGlsZGVFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RUaWxkZUZ1bGxFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5vdFRpbGRlRnVsbEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90VGlsZGVGdWxsRXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOb3RUaWxkZUZ1bGxFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5vdFRpbGRlRnVsbEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFRpbGRlVGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBOb3RUaWxkZVRpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTm90VGlsZGVUaWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFRpbGRlVGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOb3RUaWxkZVRpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFZlcnRpY2FsQmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogTm90VmVydGljYWxCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOb3RWZXJ0aWNhbEJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk5vdFZlcnRpY2FsQmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogTm90VmVydGljYWxCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTnNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE5zY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZOc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTnNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE5zY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2E5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImTnRpbGRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBOdGlsZGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk50aWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE50aWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOdSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE51IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImTnUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZOdTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE51OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDM5ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9FbGlnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogT0VsaWcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPRWxpZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9FbGlnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT0VsaWc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTUyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT2FjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9hY3V0ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9hY3V0ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT2NpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9jaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT2NpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGQ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogT2N5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImT2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT2N5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQxZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9kYmxhYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE9kYmxhYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk9kYmxhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9kYmxhYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9kYmxhYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBPZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDEyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT2dyYXZlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPZ3JhdmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9ncmF2ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9ncmF2ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPbWFjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE9tYWNyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImT21hY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPbWFjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9tYWNyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE0YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9tZWdhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogT21lZ2Egd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPbWVnYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9tZWdhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT21lZ2E7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2E5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT21pY3JvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE9taWNyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPbWljcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT21pY3JvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9taWNyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMzlmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT29wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE9vcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT29wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9vcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDQ2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3BlbkN1cmx5RG91YmxlUXVvdGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBPcGVuQ3VybHlEb3VibGVRdW90ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk9wZW5DdXJseURvdWJsZVF1b3RlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3BlbkN1cmx5RG91YmxlUXVvdGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPcGVuQ3VybHlEb3VibGVRdW90ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPcGVuQ3VybHlRdW90ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE9wZW5DdXJseVF1b3RlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImT3BlbkN1cmx5UXVvdGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPcGVuQ3VybHlRdW90ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9wZW5DdXJseVF1b3RlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogT3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTU0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3NjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE9zY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3NjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9zY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2FhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3NsYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPc2xhc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk9zbGFzaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE9zbGFzaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE90aWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGQ1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3RpbGRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT3RpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk90aW1lcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IE90aW1lcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk90aW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJk90aW1lczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IE90aW1lczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPdW1sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT3VtbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdmVyQmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogT3ZlckJhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk92ZXJCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdmVyQmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogT3ZlckJhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwM2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdmVyQnJhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBPdmVyQnJhY2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPdmVyQnJhY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdmVyQnJhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPdmVyQnJhY2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2RlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3ZlckJyYWNrZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBPdmVyQnJhY2tldCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJk92ZXJCcmFja2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImT3ZlckJyYWNrZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPdmVyQnJhY2tldDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzYjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdmVyUGFyZW50aGVzaXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBPdmVyUGFyZW50aGVzaXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZPdmVyUGFyZW50aGVzaXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZPdmVyUGFyZW50aGVzaXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBPdmVyUGFyZW50aGVzaXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2RjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUGFydGlhbEQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBQYXJ0aWFsRCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlBhcnRpYWxEIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUGFydGlhbEQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBQYXJ0aWFsRDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBQY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZQY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBQY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUGZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUGZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUGZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUGZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUGZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQxMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBoaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFBoaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlBoaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBoaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFBoaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFBpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUGkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFBpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNhMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBsdXNNaW51cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFBsdXNNaW51cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlBsdXNNaW51cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBsdXNNaW51czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFBsdXNNaW51czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQb2luY2FyZXBsYW5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUG9pbmNhcmVwbGFuZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlBvaW5jYXJlcGxhbmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQb2luY2FyZXBsYW5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUG9pbmNhcmVwbGFuZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMGMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUG9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlBvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUG9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFByIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUHIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZQcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFByOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFiYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlByZWNlZGVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUHJlY2VkZXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZQcmVjZWRlcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlByZWNlZGVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUHJlY2VkZXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjdhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJlY2VkZXNFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFByZWNlZGVzRXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZQcmVjZWRlc0VxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJlY2VkZXNFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFByZWNlZGVzRXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJlY2VkZXNTbGFudEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUHJlY2VkZXNTbGFudEVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUHJlY2VkZXNTbGFudEVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJlY2VkZXNTbGFudEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUHJlY2VkZXNTbGFudEVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlByZWNlZGVzVGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBQcmVjZWRlc1RpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUHJlY2VkZXNUaWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlByZWNlZGVzVGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBQcmVjZWRlc1RpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlByaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUHJpbWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZQcmltZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlByaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUHJpbWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDMzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJvZHVjdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFByb2R1Y3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZQcm9kdWN0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJvZHVjdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFByb2R1Y3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJvcG9ydGlvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFByb3BvcnRpb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZQcm9wb3J0aW9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJvcG9ydGlvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFByb3BvcnRpb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjM3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJvcG9ydGlvbmFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUHJvcG9ydGlvbmFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUHJvcG9ydGlvbmFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUHJvcG9ydGlvbmFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUHJvcG9ydGlvbmFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBQc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUHNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBQc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNhYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBzaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFBzaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlBzaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlBzaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFBzaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZRVU9UIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBRVU9UIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcIiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlFVT1Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBRVU9UOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlwiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQxNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlFvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBRb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUW9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlFvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBRb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlFzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBRc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUXNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlFzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBRc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJCYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUkJhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSQmFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJCYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUkJhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTEwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUkVHIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSRUcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJFRzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJFRzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSYWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTU0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmFuZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJhbmcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSYW5nIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmFuZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJhbmc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2ViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWEwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmFycnRsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmFycnRsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmFycnRsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmFycnRsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmFycnRsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkxNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJjYXJvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJjYXJvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJjYXJvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJjYXJvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJjYXJvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSY2VkaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSY2VkaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSY2VkaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSY2VkaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTU2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQyMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmV2ZXJzZUVsZW1lbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSZXZlcnNlRWxlbWVudCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJldmVyc2VFbGVtZW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmV2ZXJzZUVsZW1lbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSZXZlcnNlRWxlbWVudDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSZXZlcnNlRXF1aWxpYnJpdW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSZXZlcnNlRXF1aWxpYnJpdW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSZXZlcnNlRXF1aWxpYnJpdW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSZXZlcnNlRXF1aWxpYnJpdW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSZXZlcnNlRXF1aWxpYnJpdW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWNiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmV2ZXJzZVVwRXF1aWxpYnJpdW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSZXZlcnNlVXBFcXVpbGlicml1bSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJldmVyc2VVcEVxdWlsaWJyaXVtIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmV2ZXJzZVVwRXF1aWxpYnJpdW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSZXZlcnNlVXBFcXVpbGlicml1bTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmhvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmhvIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmhvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmhvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmhvOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNhMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0QW5nbGVCcmFja2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmlnaHRBbmdsZUJyYWNrZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodEFuZ2xlQnJhY2tldCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0QW5nbGVCcmFja2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmlnaHRBbmdsZUJyYWNrZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2U5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0QXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0QXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTkyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRBcnJvd0JhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0QXJyb3dCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodEFycm93QmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRBcnJvd0JhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0QXJyb3dCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWU1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRBcnJvd0xlZnRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0QXJyb3dMZWZ0QXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodEFycm93TGVmdEFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRBcnJvd0xlZnRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0QXJyb3dMZWZ0QXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRDZWlsaW5nIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmlnaHRDZWlsaW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmlnaHRDZWlsaW5nIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRDZWlsaW5nOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmlnaHRDZWlsaW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMwOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0RG91YmxlQnJhY2tldCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0RG91YmxlQnJhY2tldCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJpZ2h0RG91YmxlQnJhY2tldCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0RG91YmxlQnJhY2tldDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0RG91YmxlQnJhY2tldDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodERvd25UZWVWZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSaWdodERvd25UZWVWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodERvd25UZWVWZWN0b3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodERvd25UZWVWZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSaWdodERvd25UZWVWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTVkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHREb3duVmVjdG9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmlnaHREb3duVmVjdG9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmlnaHREb3duVmVjdG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHREb3duVmVjdG9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmlnaHREb3duVmVjdG9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0RG93blZlY3RvckJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0RG93blZlY3RvckJhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJpZ2h0RG93blZlY3RvckJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0RG93blZlY3RvckJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0RG93blZlY3RvckJhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodEZsb29yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmlnaHRGbG9vciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJpZ2h0Rmxvb3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodEZsb29yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmlnaHRGbG9vcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodFRlZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0VGVlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmlnaHRUZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodFRlZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0VGVlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0VGVlQXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSaWdodFRlZUFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmlnaHRUZWVBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0VGVlQXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSaWdodFRlZUFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0VGVlVmVjdG9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmlnaHRUZWVWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodFRlZVZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0VGVlVmVjdG9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmlnaHRUZWVWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRUcmlhbmdsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0VHJpYW5nbGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodFRyaWFuZ2xlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRUcmlhbmdsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0VHJpYW5nbGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRUcmlhbmdsZUJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0VHJpYW5nbGVCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodFRyaWFuZ2xlQmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRUcmlhbmdsZUJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0VHJpYW5nbGVCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWQwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRUcmlhbmdsZUVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmlnaHRUcmlhbmdsZUVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmlnaHRUcmlhbmdsZUVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRUcmlhbmdsZUVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmlnaHRUcmlhbmdsZUVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0VXBEb3duVmVjdG9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogUmlnaHRVcERvd25WZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodFVwRG93blZlY3RvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0VXBEb3duVmVjdG9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogUmlnaHRVcERvd25WZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTRmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRVcFRlZVZlY3RvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0VXBUZWVWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodFVwVGVlVmVjdG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRVcFRlZVZlY3RvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0VXBUZWVWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRVcFZlY3RvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0VXBWZWN0b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodFVwVmVjdG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRVcFZlY3RvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0VXBWZWN0b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRVcFZlY3RvckJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0VXBWZWN0b3JCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZSaWdodFVwVmVjdG9yQmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRVcFZlY3RvckJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0VXBWZWN0b3JCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTU0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRWZWN0b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSaWdodFZlY3RvciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJpZ2h0VmVjdG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImUmlnaHRWZWN0b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSaWdodFZlY3Rvcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodFZlY3RvckJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJpZ2h0VmVjdG9yQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmlnaHRWZWN0b3JCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSaWdodFZlY3RvckJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJpZ2h0VmVjdG9yQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk1MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0YXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUmlnaHRhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJpZ2h0YXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUm9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJvdW5kSW1wbGllcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJvdW5kSW1wbGllcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJvdW5kSW1wbGllcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJvdW5kSW1wbGllczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJvdW5kSW1wbGllczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NzAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZScmlnaHRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJyaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUnJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZScmlnaHRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJyaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBSc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUnNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBSc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJzaCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJzaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlJzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlJzaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJzaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSdWxlRGVsYXllZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFJ1bGVEZWxheWVkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImUnVsZURlbGF5ZWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZSdWxlRGVsYXllZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFJ1bGVEZWxheWVkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjlmNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNIQ0hjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNIQ0hjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNIQ0hjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNIQ0hjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNIQ0hjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MjkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTSGN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU0hjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNIY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTSGN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU0hjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTT0ZUY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTT0ZUY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTT0ZUY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTT0ZUY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTT0ZUY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2FjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU2FjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU2FjdXRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2FjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU2FjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE1YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU2Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU2M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2Nhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU2Nhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU2Nhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2Nhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU2Nhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE2MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNjZWRpbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNjZWRpbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNjZWRpbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNjZWRpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNjZWRpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU2NpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE1YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDE2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2hvcnREb3duQXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTaG9ydERvd25BcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNob3J0RG93bkFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2hvcnREb3duQXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTaG9ydERvd25BcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTaG9ydExlZnRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNob3J0TGVmdEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU2hvcnRMZWZ0QXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTaG9ydExlZnRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNob3J0TGVmdEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNob3J0UmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNob3J0UmlnaHRBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNob3J0UmlnaHRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNob3J0UmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNob3J0UmlnaHRBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTaG9ydFVwQXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTaG9ydFVwQXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTaG9ydFVwQXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTaG9ydFVwQXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTaG9ydFVwQXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTkxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2lnbWEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTaWdtYSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNpZ21hIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU2lnbWE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTaWdtYTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTbWFsbENpcmNsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNtYWxsQ2lyY2xlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU21hbGxDaXJjbGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTbWFsbENpcmNsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNtYWxsQ2lyY2xlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU29wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ0YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNxcnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTcXJ0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3FydCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNxcnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTcXJ0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNxdWFyZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNxdWFyZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNxdWFyZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNxdWFyZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNxdWFyZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTcXVhcmVJbnRlcnNlY3Rpb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTcXVhcmVJbnRlcnNlY3Rpb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTcXVhcmVJbnRlcnNlY3Rpb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTcXVhcmVJbnRlcnNlY3Rpb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTcXVhcmVJbnRlcnNlY3Rpb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjkzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3F1YXJlU3Vic2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU3F1YXJlU3Vic2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3F1YXJlU3Vic2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3F1YXJlU3Vic2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU3F1YXJlU3Vic2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNxdWFyZVN1YnNldEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU3F1YXJlU3Vic2V0RXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTcXVhcmVTdWJzZXRFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNxdWFyZVN1YnNldEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU3F1YXJlU3Vic2V0RXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjkxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3F1YXJlU3VwZXJzZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTcXVhcmVTdXBlcnNldCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNxdWFyZVN1cGVyc2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3F1YXJlU3VwZXJzZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTcXVhcmVTdXBlcnNldDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTcXVhcmVTdXBlcnNldEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU3F1YXJlU3VwZXJzZXRFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlNxdWFyZVN1cGVyc2V0RXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTcXVhcmVTdXBlcnNldEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU3F1YXJlU3VwZXJzZXRFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTcXVhcmVVbmlvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFNxdWFyZVVuaW9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3F1YXJlVW5pb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTcXVhcmVVbmlvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFNxdWFyZVVuaW9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3NjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlNzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNhZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN0YXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTdGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3RhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN0YXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTdGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1YiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFN1YiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlN1YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1YjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFN1Yjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWJzZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTdWJzZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTdWJzZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWJzZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTdWJzZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmQwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3Vic2V0RXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTdWJzZXRFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlN1YnNldEVxdWFsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3Vic2V0RXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTdWJzZXRFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWNjZWVkcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFN1Y2NlZWRzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3VjY2VlZHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWNjZWVkczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFN1Y2NlZWRzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1Y2NlZWRzRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTdWNjZWVkc0VxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3VjY2VlZHNFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1Y2NlZWRzRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTdWNjZWVkc0VxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFiMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1Y2NlZWRzU2xhbnRFcXVhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFN1Y2NlZWRzU2xhbnRFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlN1Y2NlZWRzU2xhbnRFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1Y2NlZWRzU2xhbnRFcXVhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFN1Y2NlZWRzU2xhbnRFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWNjZWVkc1RpbGRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU3VjY2VlZHNUaWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlN1Y2NlZWRzVGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWNjZWVkc1RpbGRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU3VjY2VlZHNUaWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWNoVGhhdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFN1Y2hUaGF0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImU3VjaFRoYXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdWNoVGhhdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFN1Y2hUaGF0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1bSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFN1bSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlN1bSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlN1bTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFN1bTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTdXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTdXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTdXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmQxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3VwZXJzZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTdXBlcnNldCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlN1cGVyc2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImU3VwZXJzZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTdXBlcnNldDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdXBlcnNldEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogU3VwZXJzZXRFcXVhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlN1cGVyc2V0RXF1YWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdXBlcnNldEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogU3VwZXJzZXRFcXVhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdXBzZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBTdXBzZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZTdXBzZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZTdXBzZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBTdXBzZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmQxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVEhPUk4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRIT1JOIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUSE9STjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRIT1JOOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRSQURFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVFJBREUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZUUkFERSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRSQURFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVFJBREU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVFNIY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBUU0hjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlRTSGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVFNIY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBUU0hjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUU2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVFNjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlRTY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUU2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVFNjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUYWIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBUYWIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZUYWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUYWI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBUYWI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUYXUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBUYXUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZUYXUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUYXU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBUYXU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2E0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVGNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVGNhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVGNhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVGNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVGNhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE2NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRjZWRpbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRjZWRpbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlRjZWRpbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRjZWRpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRjZWRpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBUY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZUY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBUY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVGZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVGZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVGZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVGZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVGZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQxNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRoZXJlZm9yZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRoZXJlZm9yZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlRoZXJlZm9yZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRoZXJlZm9yZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRoZXJlZm9yZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUaGV0YSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRoZXRhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVGhldGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUaGV0YTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRoZXRhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDM5OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRoaWNrU3BhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBUaGlja1NwYWNlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVGhpY2tTcGFjZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRoaWNrU3BhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBUaGlja1NwYWNlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjA1Zlx1MjAwYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRoaW5TcGFjZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRoaW5TcGFjZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlRoaW5TcGFjZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRoaW5TcGFjZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRoaW5TcGFjZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUaWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZUaWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRpbGRlRXF1YWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBUaWxkZUVxdWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVGlsZGVFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRpbGRlRXF1YWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBUaWxkZUVxdWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRpbGRlRnVsbEVxdWFsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVGlsZGVGdWxsRXF1YWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZUaWxkZUZ1bGxFcXVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRpbGRlRnVsbEVxdWFsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVGlsZGVGdWxsRXF1YWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjQ1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVGlsZGVUaWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRpbGRlVGlsZGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZUaWxkZVRpbGRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVGlsZGVUaWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRpbGRlVGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjQ4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVG9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZUb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVG9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDRiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVHJpcGxlRG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVHJpcGxlRG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVHJpcGxlRG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVHJpcGxlRG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVHJpcGxlRG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjBkYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBUc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVHNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBUc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNhZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRzdHJvayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFRzdHJvayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlRzdHJvayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlRzdHJvazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFRzdHJvazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVhY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVWFjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVWFjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVWFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVhcnJvY2lyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVWFycm9jaXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVYXJyb2NpciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVhcnJvY2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVWFycm9jaXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTQ5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVWJyY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVYnJjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVicmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVWJyY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVYnJjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVYnJldmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVYnJldmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVYnJldmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVYnJldmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVYnJldmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTZjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVWNpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVZGJsYWMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVZGJsYWMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVZGJsYWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVZGJsYWM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVZGJsYWM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTcwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQxOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVncmF2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVWdyYXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVZ3JhdmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVZ3JhdmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGQ5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW1hY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVbWFjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVtYWNyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW1hY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVbWFjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmRlckJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVuZGVyQmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVW5kZXJCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmRlckJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVuZGVyQmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIl8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmRlckJyYWNlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVW5kZXJCcmFjZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVuZGVyQnJhY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmRlckJyYWNlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVW5kZXJCcmFjZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzZGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmRlckJyYWNrZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVbmRlckJyYWNrZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVbmRlckJyYWNrZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmRlckJyYWNrZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVbmRlckJyYWNrZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2I1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW5kZXJQYXJlbnRoZXNpcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVuZGVyUGFyZW50aGVzaXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVbmRlclBhcmVudGhlc2lzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW5kZXJQYXJlbnRoZXNpczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVuZGVyUGFyZW50aGVzaXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2RkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW5pb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVbmlvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVuaW9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW5pb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVbmlvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmlvblBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVbmlvblBsdXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVbmlvblBsdXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVbmlvblBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVbmlvblBsdXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjhlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW9nb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVb2dvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVvZ29uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVW9nb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVb2dvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNGMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcEFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVXBBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVwQXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcEFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVXBBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcEFycm93QmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVXBBcnJvd0JhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVwQXJyb3dCYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcEFycm93QmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVXBBcnJvd0Jhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcEFycm93RG93bkFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVXBBcnJvd0Rvd25BcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVwQXJyb3dEb3duQXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcEFycm93RG93bkFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVXBBcnJvd0Rvd25BcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcERvd25BcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVwRG93bkFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVXBEb3duQXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcERvd25BcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVwRG93bkFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVwRXF1aWxpYnJpdW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVcEVxdWlsaWJyaXVtIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVXBFcXVpbGlicml1bSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVwRXF1aWxpYnJpdW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVcEVxdWlsaWJyaXVtOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVwVGVlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVXBUZWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVcFRlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVwVGVlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVXBUZWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVXBUZWVBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVwVGVlQXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVcFRlZUFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVXBUZWVBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVwVGVlQXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVXBhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVwYXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZVcGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVXBhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVwYXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWQxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVXBkb3duYXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVcGRvd25hcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVwZG93bmFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVXBkb3duYXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVcGRvd25hcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcHBlckxlZnRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVwcGVyTGVmdEFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVXBwZXJMZWZ0QXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcHBlckxlZnRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVwcGVyTGVmdEFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVwcGVyUmlnaHRBcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVwcGVyUmlnaHRBcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVwcGVyUmlnaHRBcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVwcGVyUmlnaHRBcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVwcGVyUmlnaHRBcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcHNpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVXBzaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVwc2kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcHNpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVXBzaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcHNpbG9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVXBzaWxvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlVwc2lsb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcHNpbG9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVXBzaWxvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcmluZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFVyaW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVXJpbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVcmluZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFVyaW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBVc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVXNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlVzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNiMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlV0aWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFV0aWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlV0aWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlV0aWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFV0aWxkZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVdW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBVdW1sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZGMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZVdW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVXVtbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZGMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWRGFzaCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFZEYXNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVkRhc2giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWRGFzaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFZEYXNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZiYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBWYmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZiYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBWYmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFlYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFZjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlZjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFZjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWZGFzaCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFZkYXNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmRhc2giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWZGFzaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFZkYXNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZkYXNobCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFZkYXNobCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlZkYXNobCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZkYXNobDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFZkYXNobDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWZWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBWZWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZWZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWZWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBWZWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmMxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVmVyYmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVmVyYmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmVyYmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVmVyYmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVmVyYmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBWZXJ0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmVydCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBWZXJ0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnRpY2FsQmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVmVydGljYWxCYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZWZXJ0aWNhbEJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnRpY2FsQmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVmVydGljYWxCYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVmVydGljYWxMaW5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVmVydGljYWxMaW5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmVydGljYWxMaW5lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImVmVydGljYWxMaW5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVmVydGljYWxMaW5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgInwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWZXJ0aWNhbFNlcGFyYXRvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFZlcnRpY2FsU2VwYXJhdG9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmVydGljYWxTZXBhcmF0b3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWZXJ0aWNhbFNlcGFyYXRvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFZlcnRpY2FsU2VwYXJhdG9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjc1OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnRpY2FsVGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBWZXJ0aWNhbFRpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmVydGljYWxUaWxkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnRpY2FsVGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBWZXJ0aWNhbFRpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnlUaGluU3BhY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBWZXJ5VGhpblNwYWNlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImVmVyeVRoaW5TcGFjZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZlcnlUaGluU3BhY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBWZXJ5VGhpblNwYWNlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAwYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFZmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlZmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlZmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFZmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVm9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlZvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVm9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogVnNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlZzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogVnNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWdmRhc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBWdmRhc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZWdmRhc2giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZWdmRhc2g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBWdmRhc2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImV2NpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBXY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJldjaXJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImV2NpcmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBXY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZXZWRnZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFdlZGdlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImV2VkZ2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZXZWRnZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFdlZGdlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJldmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFdmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJldmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJldmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFdmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZXb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogV29wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJldvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZXb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogV29wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZXc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogV3NjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJldzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZXc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogV3Njcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZYZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBYZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZYZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZYZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBYZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDFiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImWGkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBYaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlhpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImWGk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBYaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzOWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZYb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWG9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlhvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZYb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWG9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZYc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWHNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlhzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZYc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWHNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZQWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWUFjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJllBY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZQWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWUFjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZSWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWUljeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJllJY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZSWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWUljeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MDciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZVWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWVVjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJllVY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZVWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWVVjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFlhY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGRkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImWWFjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWWFjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlljaXJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWWNpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZZY2lyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlljaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWWNpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTc2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImWWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWWN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImWWN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImWWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWWN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQyYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJllmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFlmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJllmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJllmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFlmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJllvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWXNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJllzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWXNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZdW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWXVtbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJll1bWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZZdW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWXVtbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaSGN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWkhjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlpIY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaSGN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWkhjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBaYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZaYWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBaYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTc5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImWmNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWmNhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImWmNhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImWmNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWmNhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE3ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFpjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlpjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFpjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWmRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlpkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWmRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxN2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaZXJvV2lkdGhTcGFjZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFplcm9XaWR0aFNwYWNlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImWmVyb1dpZHRoU3BhY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZaZXJvV2lkdGhTcGFjZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFplcm9XaWR0aFNwYWNlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAwYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlpldGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBaZXRhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImWmV0YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlpldGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBaZXRhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDM5NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlpmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IFpmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlpmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJlpmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IFpmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZab3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWm9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlpvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZab3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWm9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZac2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogWnNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJlpzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZac2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogWnNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFhY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGUxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWFjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYWFjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFicmV2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFicmV2ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFicmV2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFicmV2ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFicmV2ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFjRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFjRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFjRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFjRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFjRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyM2VcdTAzMzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhY2QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhY2Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhY2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhY2Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhY2Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjNmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWNpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhY3V0ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhY3V0ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWVsaWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFlbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhZWxpZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFlbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYWYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYWY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDYxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQxZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFncmF2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYWdyYXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhZ3JhdmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhZ3JhdmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGUwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWxlZnN5bSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFsZWZzeW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhbGVmc3ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWxlZnN5bTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFsZWZzeW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTM1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWxlcGgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhbGVwaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFsZXBoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYWxlcGg7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhbGVwaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbHBoYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFscGhhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYWxwaGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbHBoYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFscGhhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNiMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFtYWNyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW1hY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhbWFjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFtYWNyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW1hY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTAxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW1hbGciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhbWFsZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFtYWxnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW1hbGc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhbWFsZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhM2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFtcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFtcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFtcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5kIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW5kIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5kIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5kOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW5kOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZGFuZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZGFuZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZGFuZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZGFuZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZGFuZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmRkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW5kZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmRkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW5kZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmRzbG9wZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZHNsb3BlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5kc2xvcGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmRzbG9wZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZHNsb3BlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE1OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZHYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhbmR2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5kdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZHY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhbmR2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE1YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW5nZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZ2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW5nZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ2xlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5nbGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ2xlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ21zZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZ21zZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ21zZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdtc2RhYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ21zZGFhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5nbXNkYWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdtc2RhYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ21zZGFhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjlhOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZGFiIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW5nbXNkYWIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhbmdtc2RhYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZGFiOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW5nbXNkYWI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWE5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5nbXNkYWMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhbmdtc2RhYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZ21zZGFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5nbXNkYWM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhbmdtc2RhYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdtc2RhZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ21zZGFkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5nbXNkYWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdtc2RhZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ21zZGFkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjlhYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZGFlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW5nbXNkYWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhbmdtc2RhZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZGFlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW5nbXNkYWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5nbXNkYWYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhbmdtc2RhZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZ21zZGFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5nbXNkYWY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhbmdtc2RhZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdtc2RhZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ21zZGFnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5nbXNkYWciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdtc2RhZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ21zZGFnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjlhZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZGFoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW5nbXNkYWggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhbmdtc2RhaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ21zZGFoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW5nbXNkYWg7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5ncnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhbmdydCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZ3J0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW5ncnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhbmdydDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdydHZiIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW5ncnR2YiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZ3J0dmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdydHZiOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW5ncnR2Yjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdydHZiZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ3J0dmJkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5ncnR2YmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdydHZiZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ3J0dmJkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk5ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ3NwaCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ3NwaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFuZ3NwaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ3NwaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ3NwaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdzdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFuZ3N0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5nc3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhbmdzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFuZ3N0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBjNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ3phcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhbmd6YXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYW5nemFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFuZ3phcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhbmd6YXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjM3YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFvZ29uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYW9nb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhb2dvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFvZ29uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYW9nb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTA1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYW9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDUyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhcEUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhcEUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhcEUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhcEU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhcEU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTcwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXBhY2lyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYXBhY2lyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYXBhY2lyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXBhY2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXBhY2lyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE2ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFwZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFwZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFwZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFwZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFwZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhcGlkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYXBpZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFwaWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhcGlkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXBpZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhcG9zIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYXBvcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFwb3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhcG9zOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXBvczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICInIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXBwcm94IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYXBwcm94IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYXBwcm94IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXBwcm94OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXBwcm94OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFwcHJveGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYXBwcm94ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhcHByb3hlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFwcHJveGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXBwcm94ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXJpbmciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFyaW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhcmluZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFyaW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYXNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNiNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFzdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGFzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFzdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmFzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGFzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICIqIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXN5bXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhc3ltcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFzeW1wIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXN5bXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhc3ltcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhc3ltcGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYXN5bXBlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmFzeW1wZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhc3ltcGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXN5bXBlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZhdGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGF0aWxkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGUzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXRpbGRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXRpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmF1bWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGF1bWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmF1bWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhdW1sOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmF3Y29uaW50IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYXdjb25pbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZhd2NvbmludCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmF3Y29uaW50OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYXdjb25pbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjMzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXdpbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBhd2ludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmF3aW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYXdpbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBhd2ludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiTm90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYk5vdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJOb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiTm90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYk5vdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiYWNrY29uZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJhY2tjb25nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmFja2NvbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiYWNrY29uZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJhY2tjb25nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhY2tlcHNpbG9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmFja2Vwc2lsb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZiYWNrZXBzaWxvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhY2tlcHNpbG9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmFja2Vwc2lsb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2Y2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmFja3ByaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmFja3ByaW1lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmFja3ByaW1lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmFja3ByaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmFja3ByaW1lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAzNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhY2tzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBiYWNrc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmFja3NpbSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhY2tzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBiYWNrc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhY2tzaW1lcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJhY2tzaW1lcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJhY2tzaW1lcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhY2tzaW1lcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJhY2tzaW1lcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyY2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiYXJ2ZWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBiYXJ2ZWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZiYXJ2ZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiYXJ2ZWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBiYXJ2ZWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmFyd2VkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmFyd2VkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmFyd2VkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmFyd2VkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmFyd2VkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMwNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhcndlZGdlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmFyd2VkZ2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZiYXJ3ZWRnZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJhcndlZGdlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmFyd2VkZ2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzA1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmJyayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJicmsgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZiYnJrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmJyazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJicms7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2I1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmJya3RicmsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBiYnJrdGJyayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJicmt0YnJrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmJya3Ricms7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBiYnJrdGJyazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzYjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiY29uZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJjb25nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmNvbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiY29uZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJjb25nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZHF1byIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJkcXVvIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmRxdW8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZHF1bzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJkcXVvOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJlY2F1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJlY2F1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJlY2F1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJlY2F1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJlY2F1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZWNhdXNlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmVjYXVzZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJlY2F1c2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZWNhdXNlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmVjYXVzZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZW1wdHl2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmVtcHR5diB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJlbXB0eXYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZW1wdHl2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmVtcHR5djsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXBzaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJlcHNpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmVwc2kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXBzaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJlcHNpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNmNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJlcm5vdSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJlcm5vdSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJlcm5vdSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJlcm5vdTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJlcm5vdTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXRhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmV0YSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJldGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXRhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmV0YTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXRoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmV0aCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJldGgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXRoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmV0aDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXR3ZWVuIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmV0d2VlbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJldHdlZW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZXR3ZWVuOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmV0d2Vlbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBiZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZiZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBiZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmlnY2FwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmlnY2FwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmlnY2FwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmlnY2FwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmlnY2FwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ2NpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBiaWdjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmlnY2lyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ2NpcmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBiaWdjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjVlZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ2N1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ2N1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJpZ2N1cCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ2N1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ2N1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWdvZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmlnb2RvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJpZ29kb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWdvZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmlnb2RvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWdvcGx1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ29wbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmlnb3BsdXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWdvcGx1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ29wbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEwMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ290aW1lcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ290aW1lcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJpZ290aW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ290aW1lczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ290aW1lczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWdzcWN1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ3NxY3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmlnc3FjdXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWdzcWN1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ3NxY3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEwNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ3N0YXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBiaWdzdGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmlnc3RhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ3N0YXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBiaWdzdGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjYwNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ3RyaWFuZ2xlZG93biIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ3RyaWFuZ2xlZG93biB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJpZ3RyaWFuZ2xlZG93biIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ3RyaWFuZ2xlZG93bjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ3RyaWFuZ2xlZG93bjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWd0cmlhbmdsZXVwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmlndHJpYW5nbGV1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJpZ3RyaWFuZ2xldXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWd0cmlhbmdsZXVwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmlndHJpYW5nbGV1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWd1cGx1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ3VwbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmlndXBsdXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWd1cGx1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ3VwbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEwNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ3ZlZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ3ZlZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJpZ3ZlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJpZ3ZlZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ3ZlZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWd3ZWRnZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJpZ3dlZGdlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmlnd2VkZ2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZiaWd3ZWRnZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJpZ3dlZGdlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJrYXJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJrYXJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJrYXJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJrYXJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJrYXJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGFja2xvemVuZ2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBibGFja2xvemVuZ2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZibGFja2xvemVuZ2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGFja2xvemVuZ2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBibGFja2xvemVuZ2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxhY2tzcXVhcmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBibGFja3NxdWFyZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJsYWNrc3F1YXJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxhY2tzcXVhcmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBibGFja3NxdWFyZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGFja3RyaWFuZ2xlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmxhY2t0cmlhbmdsZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJsYWNrdHJpYW5nbGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGFja3RyaWFuZ2xlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmxhY2t0cmlhbmdsZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGFja3RyaWFuZ2xlZG93biIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJsYWNrdHJpYW5nbGVkb3duIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmxhY2t0cmlhbmdsZWRvd24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGFja3RyaWFuZ2xlZG93bjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJsYWNrdHJpYW5nbGVkb3duOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjViZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJsYWNrdHJpYW5nbGVsZWZ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmxhY2t0cmlhbmdsZWxlZnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZibGFja3RyaWFuZ2xlbGVmdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJsYWNrdHJpYW5nbGVsZWZ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmxhY2t0cmlhbmdsZWxlZnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWMyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxhY2t0cmlhbmdsZXJpZ2h0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmxhY2t0cmlhbmdsZXJpZ2h0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmxhY2t0cmlhbmdsZXJpZ2h0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxhY2t0cmlhbmdsZXJpZ2h0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmxhY2t0cmlhbmdsZXJpZ2h0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjViOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJsYW5rIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmxhbmsgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZibGFuayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJsYW5rOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmxhbms7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNDIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxrMTIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBibGsxMiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJsazEyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxrMTI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBibGsxMjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1OTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGsxNCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJsazE0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYmxrMTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibGsxNDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJsazE0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU5MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJsazM0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYmxrMzQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZibGszNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJsazM0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYmxrMzQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTkzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxvY2siLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBibG9jayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJsb2NrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYmxvY2s7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBibG9jazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1ODgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBibmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZibmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZibmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBibmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiPVx1MjBlNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJuZXF1aXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBibmVxdWl2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm5lcXVpdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJuZXF1aXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBibmVxdWl2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2MVx1MjBlNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJub3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBibm90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm5vdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJub3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBibm90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMxMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ1MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3R0b20iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3R0b20gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3R0b20iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3R0b207IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3R0b207IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm93dGllIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm93dGllIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm93dGllIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm93dGllOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm93dGllOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveERMIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94REwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hETCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveERMOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94REw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTU3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94RFIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hEUiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveERSIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94RFI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hEUjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hEbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveERsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94RGwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hEbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveERsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU1NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveERyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94RHIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hEciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveERyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94RHI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTUzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94SCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveEggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hIIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94SDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveEg7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTUwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94SEQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hIRCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveEhEIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94SEQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hIRDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hIVSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveEhVIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94SFUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hIVTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveEhVOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU2OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveEhkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94SGQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hIZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveEhkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94SGQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTY0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94SHUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hIdSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveEh1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94SHU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hIdTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hVTCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveFVMIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94VUwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hVTDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveFVMOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU1ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFVSIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94VVIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hVUiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFVSOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94VVI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTVhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94VWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hVbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveFVsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94VWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hVbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hVciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveFVyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94VXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hVcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveFVyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU1OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hWIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94ViIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hWOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU1MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFZIIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94Vkggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hWSCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFZIOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94Vkg7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTZjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94VkwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hWTCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveFZMIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94Vkw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hWTDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hWUiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveFZSIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94VlIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hWUjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveFZSOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU2MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFZoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94Vmggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hWaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveFZoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94Vmg7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTZiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94VmwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hWbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveFZsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94Vmw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hWbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hWciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveFZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94VnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hWcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveFZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU1ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGJveCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveGJveCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveGJveCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGJveDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveGJveDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YzkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hkTCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveGRMIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94ZEwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hkTDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveGRMOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU1NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGRSIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94ZFIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hkUiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGRSOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94ZFI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTUyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94ZGwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hkbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveGRsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94ZGw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hkbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1MTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hkciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveGRyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94ZHIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hkcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveGRyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjUwYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94aCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGg7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGhEIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94aEQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hoRCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGhEOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94aEQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTY1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94aFUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3hoVSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveGhVIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94aFU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3hoVTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hoZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveGhkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94aGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hoZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveGhkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjUyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGh1IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94aHUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3hodSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveGh1OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94aHU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94bWludXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3htaW51cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveG1pbnVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94bWludXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3htaW51czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hwbHVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94cGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveHBsdXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3hwbHVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94cGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h0aW1lcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveHRpbWVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94dGltZXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h0aW1lczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveHRpbWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHVMIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94dUwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3h1TCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHVMOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94dUw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94dVIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3h1UiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveHVSIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94dVI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3h1Ujsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h1bCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveHVsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94dWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h1bDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveHVsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjUxOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHVyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94dXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3h1ciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHVyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94dXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTE0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94diIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveHYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3h2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94djsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveHY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTAyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94dkgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3h2SCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveHZIIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94dkg7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3h2SDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1NmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h2TCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveHZMIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94dkwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h2TDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveHZMOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU2MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHZSIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94dlIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3h2UiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHZSOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94dlI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTVlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94dmgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBib3h2aCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJveHZoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYm94dmg7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBib3h2aDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1M2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h2bCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJveHZsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYm94dmwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZib3h2bDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJveHZsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjUyNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYm94dnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZib3h2ciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJveHZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYm94dnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNTFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnByaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYnByaW1lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYnByaW1lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnByaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYnByaW1lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAzNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJyZXZlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYnJldmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZicmV2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJyZXZlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYnJldmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMmQ4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnJ2YmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBicnZiYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJydmJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJydmJhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZic2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYnNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZic2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYnNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZic2VtaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJzZW1pIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYnNlbWkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZic2VtaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJzZW1pOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjA0ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBic2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYnNpbSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBic2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJzaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYnNpbWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZic2ltZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJzaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYnNpbWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmNkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnNvbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJzb2wgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZic29sIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnNvbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJzb2w7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXFwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZic29sYiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJzb2xiIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYnNvbGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZic29sYjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJzb2xiOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjljNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJzb2xoc3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYnNvbGhzdWIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZic29saHN1YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJzb2xoc3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYnNvbGhzdWI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2M4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnVsbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGJ1bGwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZidWxsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnVsbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGJ1bGw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnVsbGV0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYnVsbGV0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYnVsbGV0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnVsbGV0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYnVsbGV0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAyMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJ1bXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBidW1wIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImYnVtcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJ1bXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBidW1wOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJ1bXBFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogYnVtcEUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZidW1wRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmJ1bXBFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogYnVtcEU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnVtcGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBidW1wZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmJ1bXBlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImYnVtcGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBidW1wZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZidW1wZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBidW1wZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZidW1wZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZidW1wZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBidW1wZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjRmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2FjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2FjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2FjdXRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2FjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2FjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEwNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNhcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNhcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNhcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXBhbmQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjYXBhbmQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjYXBhbmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXBhbmQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjYXBhbmQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTQ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2FwYnJjdXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjYXBicmN1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNhcGJyY3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2FwYnJjdXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjYXBicmN1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXBjYXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjYXBjYXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjYXBjYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXBjYXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjYXBjYXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTRiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2FwY3VwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2FwY3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2FwY3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2FwY3VwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2FwY3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE0NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNhcGRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNhcGRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNhcGRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNhcGRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNhcGRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXBzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2FwcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNhcHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXBzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2Fwczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjlcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXJldCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNhcmV0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2FyZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjYXJldDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNhcmV0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjA0MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2Fyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjYXJvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2Fyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMmM3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2NhcHMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjY2FwcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNjYXBzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2NhcHM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjY2Fwczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjY2Fyb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjY2Fyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjY2Fyb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjY2Fyb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjY2Fyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTBkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2NlZGlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNjZWRpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNjZWRpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2NpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEwOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNjdXBzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2N1cHMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjY3VwcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNjdXBzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2N1cHM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTRjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2N1cHNzbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNjdXBzc20gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjY3Vwc3NtIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2N1cHNzbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNjdXBzc207IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTUwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTBiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2VkaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNlZGlsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjZWRpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNlZGlsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNlbXB0eXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjZW1wdHl2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2VtcHR5diIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNlbXB0eXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjZW1wdHl2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjliMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNlbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNlbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNlbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjZW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNlbnRlcmRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNlbnRlcmRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2hjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNoY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2hjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNoY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDQ3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2hlY2siLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjaGVjayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNoZWNrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2hlY2s7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjaGVjazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3MTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaGVja21hcmsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjaGVja21hcmsgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaGVja21hcmsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaGVja21hcms7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjaGVja21hcms7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNzEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2hpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2hpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2hpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2hpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2hpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNjNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNpciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNpciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNpcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1Y2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2lyRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNpckUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2lyRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAyYzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjaXJjZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaXJjZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjaXJjZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjU3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyY2xlYXJyb3dsZWZ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2lyY2xlYXJyb3dsZWZ0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2lyY2xlYXJyb3dsZWZ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyY2xlYXJyb3dsZWZ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2lyY2xlYXJyb3dsZWZ0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpcmNsZWFycm93cmlnaHQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjaXJjbGVhcnJvd3JpZ2h0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2lyY2xlYXJyb3dyaWdodCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpcmNsZWFycm93cmlnaHQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjaXJjbGVhcnJvd3JpZ2h0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpcmNsZWRSIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2lyY2xlZFIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaXJjbGVkUiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpcmNsZWRSOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2lyY2xlZFI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyY2xlZFMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjaXJjbGVkUyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNpcmNsZWRTIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyY2xlZFM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjaXJjbGVkUzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI0YzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjbGVkYXN0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2lyY2xlZGFzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNpcmNsZWRhc3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjbGVkYXN0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2lyY2xlZGFzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjbGVkY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNpcmNsZWRjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2lyY2xlZGNpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJjbGVkY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNpcmNsZWRjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpcmNsZWRkYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY2lyY2xlZGRhc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaXJjbGVkZGFzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNpcmNsZWRkYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY2lyY2xlZGRhc2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNpcmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaXJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNpcmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjU3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyZm5pbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjaXJmbmludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNpcmZuaW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyZm5pbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjaXJmbmludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJtaWQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjaXJtaWQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaXJtaWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjaXJtaWQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjaXJtaWQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWVmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyc2NpciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNpcnNjaXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjaXJzY2lyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2lyc2NpcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNpcnNjaXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWMyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2x1YnMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjbHVicyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNsdWJzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY2x1YnM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjbHViczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI2NjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjbHVic3VpdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNsdWJzdWl0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY2x1YnN1aXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjbHVic3VpdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNsdWJzdWl0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjY2MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbG9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY29sb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjb2xvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbG9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY29sb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiOiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbG9uZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNvbG9uZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNvbG9uZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbG9uZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNvbG9uZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb2xvbmVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY29sb25lcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNvbG9uZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb2xvbmVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY29sb25lcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21tYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNvbW1hIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY29tbWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21tYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNvbW1hOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21tYXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjb21tYXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjb21tYXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21tYXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjb21tYXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiQCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjb21wIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY29tcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjb21wOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbXBmbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNvbXBmbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNvbXBmbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvbXBmbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNvbXBmbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21wbGVtZW50IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY29tcGxlbWVudCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNvbXBsZW1lbnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21wbGVtZW50OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY29tcGxlbWVudDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21wbGV4ZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjb21wbGV4ZXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjb21wbGV4ZXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb21wbGV4ZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjb21wbGV4ZXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTAyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY29uZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNvbmcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjb25nIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY29uZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNvbmc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjQ1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY29uZ2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNvbmdkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjb25nZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY29uZ2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNvbmdkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTZkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY29uaW50IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY29uaW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY29uaW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY29uaW50OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY29uaW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY29wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ1NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvcHJvZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNvcHJvZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNvcHJvZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNvcHJvZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNvcHJvZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb3B5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjb3B5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb3B5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY29weTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjb3B5c3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjb3B5c3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTE3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3JhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjcmFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNyYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3JhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjcmFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjcm9zcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNyb3NzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3Jvc3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjcm9zczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNyb3NzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjcxNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3NjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNiOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNzdWIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjc3ViIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3N1YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNzdWI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjc3ViOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNzdWJlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3N1YmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjc3ViZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmNzdWJlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3N1YmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWQxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3N1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGNzdXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjc3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3N1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGNzdXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWQwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3N1cGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjc3VwZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmNzdXBlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3N1cGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjc3VwZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdGRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN0ZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3Rkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdGRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN0ZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1ZGFycmwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdWRhcnJsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3VkYXJybCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1ZGFycmw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdWRhcnJsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1ZGFycnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdWRhcnJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3VkYXJyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1ZGFycnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdWRhcnJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkzNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1ZXByIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3VlcHIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdWVwciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1ZXByOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3VlcHI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3Vlc2MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdWVzYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN1ZXNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3Vlc2M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdWVzYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdWxhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdWxhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdWxhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdWxhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdWxhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VsYXJycCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1bGFycnAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdWxhcnJwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VsYXJycDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1bGFycnA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTNkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cGJyY2FwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3VwYnJjYXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdXBicmNhcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cGJyY2FwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3VwYnJjYXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTQ4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VwY2FwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3VwY2FwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3VwY2FwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VwY2FwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3VwY2FwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE0NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cGN1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1cGN1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN1cGN1cCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cGN1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1cGN1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXBkb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdXBkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdXBkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXBkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdXBkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjhkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3Vwb3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdXBvciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN1cG9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3Vwb3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdXBvcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXBzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3VwcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN1cHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXBzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3Vwczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMmFcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXJhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdXJhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdXJhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXJhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdXJhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWI3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VyYXJybSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1cmFycm0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdXJhcnJtIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VyYXJybTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1cmFycm07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VybHllcXByZWMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjdXJseWVxcHJlYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN1cmx5ZXFwcmVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VybHllcXByZWM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdXJseWVxcHJlYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXJseWVxc3VjYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1cmx5ZXFzdWNjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3VybHllcXN1Y2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXJseWVxc3VjYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1cmx5ZXFzdWNjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cmx5dmVlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3VybHl2ZWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdXJseXZlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cmx5dmVlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3VybHl2ZWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VybHl3ZWRnZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1cmx5d2VkZ2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdXJseXdlZGdlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VybHl3ZWRnZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1cmx5d2VkZ2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmNmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3VycmVuIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjdXJyZW4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cnJlbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1cnJlbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXJ2ZWFycm93bGVmdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1cnZlYXJyb3dsZWZ0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3VydmVhcnJvd2xlZnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXJ2ZWFycm93bGVmdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1cnZlYXJyb3dsZWZ0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cnZlYXJyb3dyaWdodCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1cnZlYXJyb3dyaWdodCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN1cnZlYXJyb3dyaWdodCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1cnZlYXJyb3dyaWdodDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1cnZlYXJyb3dyaWdodDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXZlZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN1dmVlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3V2ZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjdXZlZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN1dmVlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1d2VkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogY3V3ZWQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZjdXdlZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN1d2VkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogY3V3ZWQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmNmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3djb25pbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBjd2NvbmludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN3Y29uaW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImY3djb25pbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBjd2NvbmludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjd2ludCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN3aW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImY3dpbnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZjd2ludDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN3aW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN5bGN0eSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGN5bGN0eSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmN5bGN0eSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmN5bGN0eTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGN5bGN0eTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkQXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZEFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkQXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZEFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkSGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZEhhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRIYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkSGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZEhhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkYWdnZXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkYWdnZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkYWdnZXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkYWdnZXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkYWdnZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGFsZXRoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGFsZXRoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGFsZXRoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGFsZXRoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGFsZXRoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRhc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkYXNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGFzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRhc2g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkYXNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRhc2h2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGFzaHYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkYXNodiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRhc2h2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGFzaHY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGJrYXJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRia2Fyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkYmthcm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGJrYXJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRia2Fyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGJsYWMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkYmxhYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRibGFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGJsYWM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkYmxhYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAyZGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkY2Fyb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkY2Fyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkY2Fyb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkY2Fyb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkY2Fyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTQ2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGRhZ2dlciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRkYWdnZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkZGFnZ2VyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGRhZ2dlcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRkYWdnZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDIxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGRhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkZGFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRkYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGRhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkZGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxY2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkZG90c2VxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGRvdHNlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRkb3RzZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkZG90c2VxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGRvdHNlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkZWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRlZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGVnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGVnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRlbHRhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGVsdGEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkZWx0YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRlbHRhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGVsdGE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2I0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGVtcHR5diIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRlbXB0eXYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkZW1wdHl2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGVtcHR5djsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRlbXB0eXY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWIxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGZpc2h0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGZpc2h0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGZpc2h0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGZpc2h0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGZpc2h0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk3ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaGFybCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRoYXJsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGhhcmwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaGFybDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRoYXJsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRoYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGhhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkaGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRoYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGhhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWMyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGlhbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRpYW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkaWFtIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGlhbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpYW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGlhbW9uZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRpYW1vbmQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkaWFtb25kIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGlhbW9uZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpYW1vbmQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGlhbW9uZHN1aXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkaWFtb25kc3VpdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRpYW1vbmRzdWl0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGlhbW9uZHN1aXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkaWFtb25kc3VpdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI2NjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaWFtcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRpYW1zIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGlhbXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaWFtczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpYW1zOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjY2NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRpZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRpZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRpZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRpZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaWdhbW1hIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGlnYW1tYSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRpZ2FtbWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaWdhbW1hOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGlnYW1tYTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaXNpbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRpc2luIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGlzaW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaXNpbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpc2luOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJmMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRpdiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRpdiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRpdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRpdjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpdjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkaXZpZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpdmlkZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGY3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGl2aWRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGl2aWRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRpdmlkZW9udGltZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkaXZpZGVvbnRpbWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRpdm9ueCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRpdm9ueCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRpdm9ueCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRpdm9ueDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRpdm9ueDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkamN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGpjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRqY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkamN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGpjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkbGNvcm4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkbGNvcm4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkbGNvcm4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkbGNvcm47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkbGNvcm47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGxjcm9wIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZGxjcm9wIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZGxjcm9wIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZGxjcm9wOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZGxjcm9wOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMwZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvbGxhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvbGxhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRvbGxhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvbGxhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvbGxhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICIkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZG9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZG9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDU1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDJkOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvdGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZG90ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkb3RlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvdGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZG90ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjUwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZG90ZXFkb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkb3RlcWRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRvdGVxZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZG90ZXFkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkb3RlcWRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3RtaW51cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvdG1pbnVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZG90bWludXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3RtaW51czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvdG1pbnVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvdHBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkb3RwbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZG90cGx1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvdHBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkb3RwbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvdHNxdWFyZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvdHNxdWFyZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRvdHNxdWFyZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvdHNxdWFyZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvdHNxdWFyZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3VibGViYXJ3ZWRnZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvdWJsZWJhcndlZGdlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZG91YmxlYmFyd2VkZ2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3VibGViYXJ3ZWRnZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvdWJsZWJhcndlZGdlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMwNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvd25hcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvd25hcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRvd25hcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvd25hcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvd25hcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3duZG93bmFycm93cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvd25kb3duYXJyb3dzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZG93bmRvd25hcnJvd3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3duZG93bmFycm93czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvd25kb3duYXJyb3dzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvd25oYXJwb29ubGVmdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRvd25oYXJwb29ubGVmdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRvd25oYXJwb29ubGVmdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRvd25oYXJwb29ubGVmdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRvd25oYXJwb29ubGVmdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3duaGFycG9vbnJpZ2h0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZG93bmhhcnBvb25yaWdodCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRvd25oYXJwb29ucmlnaHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkb3duaGFycG9vbnJpZ2h0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZG93bmhhcnBvb25yaWdodDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkcmJrYXJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRyYmthcm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZHJia2Fyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkcmJrYXJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRyYmthcm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkxMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRyY29ybiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRyY29ybiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmRyY29ybiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmRyY29ybjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRyY29ybjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkcmNyb3AiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkcmNyb3Agd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkcmNyb3AiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkcmNyb3A7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkcmNyb3A7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2I5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHNjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRzY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkc2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHNjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRzY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDU1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHNvbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGRzb2wgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkc29sIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHNvbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGRzb2w7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWY2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHN0cm9rIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZHN0cm9rIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZHN0cm9rIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHN0cm9rOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZHN0cm9rOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDExMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmR0ZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZHRkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkdGRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmR0ZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZHRkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmYxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHRyaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGR0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkdHJpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHRyaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGR0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWJmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHRyaWYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkdHJpZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmR0cmlmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHRyaWY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkdHJpZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkdWFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGR1YXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZHVhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZkdWFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGR1YXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFmNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmR1aGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZHVoYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkdWhhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmR1aGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZHVoYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTZmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHdhbmdsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGR3YW5nbGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkd2FuZ2xlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHdhbmdsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGR3YW5nbGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWE2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGR6Y3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZkemN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGR6Y3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDVmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHppZ3JhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBkemlncmFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmR6aWdyYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZHppZ3JhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBkemlncmFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlRERvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVERG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZUREb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlRERvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVERG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVEb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlRG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZURvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVEb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlRG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVhY3V0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWFjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGU5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWFzdGVyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWFzdGVyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZWFzdGVyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWFzdGVyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWFzdGVyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVjYXJvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVjYXJvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVjYXJvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVjYXJvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVjYXJvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlY2lyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWNpciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVjaXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlY2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWNpcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWNpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVjaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWNpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGVhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWNvbG9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWNvbG9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZWNvbG9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWNvbG9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWNvbG9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE0NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVmRG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWZEb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlZkRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVmRG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWZEb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjUyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQyMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTlhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWdyYXZlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlZ3JhdmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVncmF2ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVncmF2ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlZ3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlZ3Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlZ3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlZ3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlZ3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTk2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWdzZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWdzZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZWdzZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWdzZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWdzZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE5OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTk5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWxpbnRlcnMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlbGludGVycyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVsaW50ZXJzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWxpbnRlcnM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlbGludGVyczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzZTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbGwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlbGwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlbGwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbGw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlbGw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWxzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZWxzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZWxzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZWxzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZWxzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE5NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVsc2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVsc2RvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVsc2RvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVsc2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVsc2RvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhOTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbWFjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVtYWNyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZW1hY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbWFjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVtYWNyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDExMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVtcHR5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZW1wdHkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlbXB0eSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVtcHR5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZW1wdHk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW1wdHlzZXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlbXB0eXNldCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVtcHR5c2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW1wdHlzZXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlbXB0eXNldDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbXB0eXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlbXB0eXYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlbXB0eXYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbXB0eXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlbXB0eXY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW1zcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVtc3Agd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlbXNwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW1zcDEzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZW1zcDEzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZW1zcDEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW1zcDEzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZW1zcDEzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAwNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVtc3AxNCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVtc3AxNCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVtc3AxNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVtc3AxNDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVtc3AxNDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbXNwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZW1zcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbmciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlbmcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlbmc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlbmc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTRiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW5zcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVuc3Agd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlbnNwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW5zcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVuc3A7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDAyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW9nb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlb2dvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVvZ29uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZW9nb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlb2dvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXBhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVwYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXBhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcGFyc2wiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlcGFyc2wgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlcGFyc2wiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcGFyc2w7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlcGFyc2w7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWUzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlcGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVwbHVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlcGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcHNpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXBzaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVwc2kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcHNpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXBzaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcHNpbG9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXBzaWxvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVwc2lsb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcHNpbG9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXBzaWxvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcHNpdiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVwc2l2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXBzaXYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcHNpdjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVwc2l2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNmNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVxY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVxY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVxY2lyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVxY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVxY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcWNvbG9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXFjb2xvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVxY29sb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcWNvbG9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXFjb2xvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXNpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVxc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXFzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXNpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVxc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVxc2xhbnRndHIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlcXNsYW50Z3RyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXFzbGFudGd0ciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVxc2xhbnRndHI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlcXNsYW50Z3RyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE5NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVxc2xhbnRsZXNzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXFzbGFudGxlc3Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlcXNsYW50bGVzcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVxc2xhbnRsZXNzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXFzbGFudGxlc3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTk1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXF1YWxzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXF1YWxzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXF1YWxzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXF1YWxzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXF1YWxzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIj0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXVlc3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlcXVlc3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlcXVlc3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXVlc3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlcXVlc3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjVmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXF1aXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlcXVpdiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVxdWl2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXF1aXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlcXVpdjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXVpdkREIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXF1aXZERCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVxdWl2REQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXVpdkREOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXF1aXZERDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXZwYXJzbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVxdnBhcnNsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXF2cGFyc2wiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlcXZwYXJzbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVxdnBhcnNsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjllNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVyRG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXJEb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZlckRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVyRG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXJEb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjUzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXJhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlcmFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVyYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXJhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlcmFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmVzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlc2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGVzZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXNkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZlc2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGVzZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBlc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXNpbSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmVzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBlc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV0YSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGV0YSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmV0YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV0YTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGV0YTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZldGgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGV0aCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGYwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXRoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXRoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV1bWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGV1bWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV1bWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBldW1sOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV1cm8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBldXJvIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXVybyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV1cm87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBldXJvOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjBhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV4Y2wiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBleGNsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXhjbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV4Y2w7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBleGNsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZleGlzdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGV4aXN0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXhpc3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZleGlzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGV4aXN0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV4cGVjdGF0aW9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXhwZWN0YXRpb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZleHBlY3RhdGlvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmV4cGVjdGF0aW9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXhwZWN0YXRpb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXhwb25lbnRpYWxlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZXhwb25lbnRpYWxlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZXhwb25lbnRpYWxlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZXhwb25lbnRpYWxlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZXhwb25lbnRpYWxlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE0NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZhbGxpbmdkb3RzZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmYWxsaW5nZG90c2VxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZmFsbGluZ2RvdHNlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZhbGxpbmdkb3RzZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmYWxsaW5nZG90c2VxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmZW1hbGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmZW1hbGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmZW1hbGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmZW1hbGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmZW1hbGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNjQwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZmZpbGlnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZmZpbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZmZpbGlnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZmZpbGlnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZmZpbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZmIwMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZmbGlnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZmZsaWcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmZmxpZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZmbGlnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZmZsaWc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVmYjAwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZmZsbGlnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZmZsbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZmZsbGlnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZmZsbGlnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZmZsbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZmIwNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmaWxpZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZpbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZmlsaWciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmaWxpZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZpbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZmIwMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZqbGlnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZmpsaWcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmamxpZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZqbGlnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZmpsaWc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiZmoiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmbGF0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZmxhdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZsYXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmbGF0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZmxhdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI2NmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmbGxpZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZsbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZmxsaWciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmbGxpZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZsbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZmIwMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZsdG5zIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZmx0bnMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmbHRucyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZsdG5zOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZmx0bnM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWIxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZm5vZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZub2Ygd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmbm9mIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZm5vZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZub2Y7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTkyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZm9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZm9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDU3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZm9yYWxsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZm9yYWxsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZm9yYWxsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZm9yYWxsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZm9yYWxsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZvcmsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmb3JrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZm9yayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZvcms7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmb3JrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZvcmt2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZm9ya3Ygd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmb3JrdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZvcmt2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZm9ya3Y7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWQ5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnBhcnRpbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmcGFydGludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZwYXJ0aW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnBhcnRpbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmcGFydGludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMTIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWMxMiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzEyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZnJhYzEyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWMxMyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZyYWMxMyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZyYWMxMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWMxMzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWMxMzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxNTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMTQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWMxNCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzE0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZnJhYzE0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWMxNSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZyYWMxNSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZyYWMxNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWMxNTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWMxNTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxNTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMTYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmcmFjMTYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmcmFjMTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMTY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmcmFjMTY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTU5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzE4IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZnJhYzE4IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZnJhYzE4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzE4OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZnJhYzE4OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE1YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWMyMyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZyYWMyMyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZyYWMyMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWMyMzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWMyMzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxNTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMjUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmcmFjMjUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmcmFjMjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMjU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmcmFjMjU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTU2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzM0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmcmFjMzQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWMzNDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWMzNDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMzUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmcmFjMzUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmcmFjMzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjMzU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmcmFjMzU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTU3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzM4IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZnJhYzM4IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZnJhYzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzM4OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZnJhYzM4OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE1YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWM0NSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZyYWM0NSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZyYWM0NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWM0NTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWM0NTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxNTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjNTYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBmcmFjNTYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmcmFjNTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFjNTY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBmcmFjNTY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTVhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzU4IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZnJhYzU4IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZnJhYzU4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnJhYzU4OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZnJhYzU4OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE1ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWM3OCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZyYWM3OCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmZyYWM3OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyYWM3ODsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYWM3ODsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxNWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFzbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZyYXNsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZnJhc2wiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZmcmFzbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZyYXNsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjA0NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyb3duIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZnJvd24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmcm93biIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmZyb3duOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZnJvd247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGZzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZmc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZnNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGZzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2JiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ0UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdFIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ0U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnRWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnRWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnRWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnRWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnRWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYThjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2FjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2FjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2FjdXRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2FjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2FjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDFmNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdhbW1hIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2FtbWEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnYW1tYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdhbW1hOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2FtbWE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2IzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2FtbWFkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2FtbWFkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2FtbWFkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2FtbWFkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2FtbWFkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNkZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdhcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdhcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdhcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhODYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnYnJldmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnYnJldmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnYnJldmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnYnJldmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnYnJldmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2NpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnY2lyYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdjaXJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2NpcmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnY2lyYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDMzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTIxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnZWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnZWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnZWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnZWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnZWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmRiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2VxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2VxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2VxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlcXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnZXFxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2VxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlcXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnZXFxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlcXNsYW50IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2Vxc2xhbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnZXFzbGFudCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlcXNsYW50OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2Vxc2xhbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTdlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2VzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2VzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2VzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlc2NjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2VzY2Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnZXNjYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlc2NjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2VzY2M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWE5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2VzZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2VzZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2VzZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlc2RvdG8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnZXNkb3RvIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2VzZG90byIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlc2RvdG87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnZXNkb3RvOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlc2RvdG9sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2VzZG90b2wgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnZXNkb3RvbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdlc2RvdG9sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2VzZG90b2w7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTg0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdlc2wgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnZXNsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdlc2w7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmRiXHVmZTAwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzbGVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2VzbGVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2VzbGVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2VzbGVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2VzbGVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE5NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdnZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdnZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdnZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdnZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdnZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnaW1lbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdpbWVsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2ltZWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnaW1lbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdpbWVsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEzNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdqY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnamN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2pjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdqY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnamN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQ1MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2wgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2w7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjc3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2xFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ2xFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ2xFIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ2xFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ2xFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE5MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdsYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdsYSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdsYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdsYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdsYTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnbGoiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnbGogd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnbGoiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnbGo7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnbGo7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWE0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ25FIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ25FIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ25FIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ25FOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ25FOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduYXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnbmFwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ25hcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduYXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnbmFwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduYXBwcm94IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ25hcHByb3ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnbmFwcHJveCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduYXBwcm94OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ25hcHByb3g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYThhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ25lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ25lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ25lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ25lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ25lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnbmVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ25lcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnbmVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ25lcXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnbmVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmduZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ25lcXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjY5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ25zaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBnbnNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmduc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ25zaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBnbnNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ29wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ29wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZncmF2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdyYXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ3JhdmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZncmF2ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdyYXZlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgImAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ3NjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ3Njcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnc2ltIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ3NpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmdzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ3NpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnc2ltZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGdzaW1lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImZ3NpbWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZnc2ltZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGdzaW1lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdzaW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ3NpbWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZnc2ltbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmdzaW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ3NpbWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTkwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICI+IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBndDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICI+IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3RjYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd0Y2M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWE3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3RjaXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBndGNpcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhN2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZndGRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd0ZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmd0bFBhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd0bFBhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5OTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZndHF1ZXN0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ3RxdWVzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhN2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZndHJhcHByb3g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBndHJhcHByb3g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTg2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3RyYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ3RyYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk3OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmd0cmRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd0cmRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZDciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZndHJlcWxlc3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBndHJlcWxlc3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmRiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3RyZXFxbGVzczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd0cmVxcWxlc3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYThjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3RybGVzczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd0cmxlc3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjc3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImZ3Ryc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ3Ryc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmd2ZXJ0bmVxcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGd2ZXJ0bmVxcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmd2ZXJ0bmVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmd2ZXJ0bmVxcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGd2ZXJ0bmVxcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjlcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZndm5FIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogZ3ZuRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmd2bkUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZndm5FOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogZ3ZuRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjlcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoQXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaEFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoQXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaEFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYWlyc3AiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBoYWlyc3Agd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZoYWlyc3AiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYWlyc3A7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBoYWlyc3A7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDBhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGFsZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhhbGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZoYWxmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGFsZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhhbGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGFtaWx0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaGFtaWx0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaGFtaWx0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGFtaWx0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaGFtaWx0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEwYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhhcmRjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhhcmRjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhhcmRjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhhcmRjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhhcmRjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaGFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYXJyY2lyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaGFycmNpciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhhcnJjaXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYXJyY2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaGFycmNpcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYXJydyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhhcnJ3IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaGFycnciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoYXJydzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhhcnJ3OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhiYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBoYmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaGJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhiYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBoYmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEwZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhjaXJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaGNpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZoY2lyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhjaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaGNpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGVhcnRzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaGVhcnRzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaGVhcnRzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGVhcnRzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaGVhcnRzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjY2NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhlYXJ0c3VpdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhlYXJ0c3VpdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhlYXJ0c3VpdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhlYXJ0c3VpdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhlYXJ0c3VpdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI2NjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoZWxsaXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBoZWxsaXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZoZWxsaXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoZWxsaXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBoZWxsaXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGVyY29uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaGVyY29uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaGVyY29uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaGVyY29uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaGVyY29uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoa3NlYXJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhrc2Vhcm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaGtzZWFyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoa3NlYXJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhrc2Vhcm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkyNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhrc3dhcm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaGtzd2Fyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZoa3N3YXJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhrc3dhcm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaGtzd2Fyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaG9hcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBob2FyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhvYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaG9hcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBob2Fycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZob210aHQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBob210aHQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZob210aHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZob210aHQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBob210aHQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjNiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaG9va2xlZnRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhvb2tsZWZ0YXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZob29rbGVmdGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaG9va2xlZnRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhvb2tsZWZ0YXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWE5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaG9va3JpZ2h0YXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBob29rcmlnaHRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhvb2tyaWdodGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaG9va3JpZ2h0YXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBob29rcmlnaHRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZob3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaG9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZob3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaG9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZob3JiYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBob3JiYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZob3JiYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZob3JiYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBob3JiYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZoc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2JkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaHNsYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaHNsYXNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaHNsYXNoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaHNsYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaHNsYXNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEwZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhzdHJvayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGhzdHJvayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmhzdHJvayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmhzdHJvazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGhzdHJvazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoeWJ1bGwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBoeWJ1bGwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZoeWJ1bGwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZoeWJ1bGw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBoeWJ1bGw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDQzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaHlwaGVuIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaHlwaGVuIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaHlwaGVuIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaHlwaGVuOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaHlwaGVuOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlhY3V0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaWFjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGVkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmljIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwNjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaWNpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmljaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaWNpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGVlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaWN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaWN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaWN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmllY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpZWN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaWVjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmllY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpZWN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlleGNsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpZXhjbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGExIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWV4Y2w7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpZXhjbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpZmYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpZmYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpZmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpZmY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpZmY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWQ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQyNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlncmF2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaWdyYXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpZ3JhdmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpZ3JhdmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmlpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxNDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpaWlpbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpaWlpbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpaWlpbnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpaWlpbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpaWlpbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWlpbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpaWludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmlpaW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWlpbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpaWludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpaW5maW4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpaW5maW4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpaW5maW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpaW5maW47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpaW5maW47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWRjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWlvdGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpaW90YSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmlpb3RhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaWlvdGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpaW90YTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMjkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpamxpZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGlqbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaWpsaWciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpamxpZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGlqbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEzMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmltYWNyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW1hY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpbWFjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmltYWNyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW1hY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTJiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW1hZ2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpbWFnZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmltYWdlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW1hZ2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpbWFnZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbWFnbGluZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGltYWdsaW5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW1hZ2xpbmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbWFnbGluZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGltYWdsaW5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmltYWdwYXJ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW1hZ3BhcnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpbWFncGFydCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmltYWdwYXJ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW1hZ3BhcnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTExIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW1hdGgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpbWF0aCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmltYXRoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW1hdGg7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpbWF0aDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxMzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbW9mIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW1vZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmltb2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbW9mOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW1vZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbXBlZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGltcGVkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW1wZWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbXBlZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGltcGVkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDFiNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmluIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmluOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW5jYXJlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW5jYXJlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW5jYXJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW5jYXJlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW5jYXJlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEwNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmluZmluIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW5maW4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpbmZpbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmluZmluOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW5maW47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW5maW50aWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpbmZpbnRpZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmluZmludGllIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW5maW50aWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpbmZpbnRpZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5ZGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbm9kb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpbm9kb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpbm9kb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbm9kb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpbm9kb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTMxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW50IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW50OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmludGNhbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGludGNhbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmludGNhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmludGNhbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGludGNhbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbnRlZ2VycyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGludGVnZXJzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW50ZWdlcnMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbnRlZ2VyczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGludGVnZXJzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEyNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmludGVyY2FsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW50ZXJjYWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpbnRlcmNhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmludGVyY2FsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW50ZXJjYWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmJhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW50bGFyaGsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpbnRsYXJoayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmludGxhcmhrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaW50bGFyaGs7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpbnRsYXJoazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbnRwcm9kIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW50cHJvZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmludHByb2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpbnRwcm9kOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW50cHJvZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhM2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpb2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaW9jeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmlvY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpb2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaW9jeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpb2dvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGlvZ29uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW9nb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpb2dvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGlvZ29uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEyZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ1YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlvdGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpb3RhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaW90YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlvdGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpb3RhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNiOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlwcm9kIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaXByb2Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpcHJvZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlwcm9kOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaXByb2Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaXF1ZXN0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpcXVlc3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlxdWVzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGlxdWVzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaXNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmlzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaXNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpc2luIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaXNpbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmlzaW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpc2luOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaXNpbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpc2luRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGlzaW5FIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaXNpbkUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpc2luRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGlzaW5FOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJmOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlzaW5kb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpc2luZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaXNpbmRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlzaW5kb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpc2luZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJmNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlzaW5zIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaXNpbnMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpc2lucyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlzaW5zOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaXNpbnM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmY0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaXNpbnN2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaXNpbnN2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImaXNpbnN2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaXNpbnN2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaXNpbnN2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJmMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlzaW52IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogaXNpbnYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpc2ludiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmlzaW52OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaXNpbnY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjA4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJml0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwNjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpdGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpdGlsZGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZpdGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpdGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpdGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaXVrY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBpdWtjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJml1a2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImaXVrY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpdWtjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpdW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBpdW1sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZpdW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogaXVtbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGpjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImamNpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqY2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGpjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEzNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGpjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmpjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGpjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MzkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBqZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZqZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBqZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDI3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImam1hdGgiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBqbWF0aCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmptYXRoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImam1hdGg7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBqbWF0aDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAyMzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqb3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogam9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmpvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqb3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogam9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eToganNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmpzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eToganNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqc2VyY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBqc2VyY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZqc2VyY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZqc2VyY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBqc2VyY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDU4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImanVrY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBqdWtjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmp1a2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImanVrY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBqdWtjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZrYXBwYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGthcHBhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICIma2FwcGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZrYXBwYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGthcHBhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNiYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmthcHBhdiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGthcHBhdiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmthcHBhdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmthcHBhdjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGthcHBhdjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZrY2VkaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBrY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZrY2VkaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZrY2VkaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBrY2VkaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTM3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eToga2N5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICIma2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eToga2N5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmtmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGtmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmtmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmtmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGtmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZrZ3JlZW4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBrZ3JlZW4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZrZ3JlZW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZrZ3JlZW47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBrZ3JlZW47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma2hjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGtoY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZraGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma2hjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGtoY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDQ1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma2pjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGtqY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZramN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma2pjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGtqY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma29wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGtvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZrb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma29wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGtvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma3NjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGtzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZrc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICIma3NjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGtzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2MwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbEFhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsQWFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxBYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbEFhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsQWFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsQXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbEFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsQXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbEFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsQXRhaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsQXRhaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsQXRhaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsQXRhaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsQXRhaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTFiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbEJhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsQmFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxCYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbEJhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsQmFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbEUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxFZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxFZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxFZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxFZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxFZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhOGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsSGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbEhhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxIYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsSGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbEhhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTNhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFlbXB0eXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYWVtcHR5diB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxhZW1wdHl2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFlbXB0eXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYWVtcHR5djsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYWdyYW4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYWdyYW4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYWdyYW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYWdyYW47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYWdyYW47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTEyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFtYmRhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGFtYmRhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGFtYmRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFtYmRhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFtYmRhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNiYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhbmciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGFuZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhbmc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhbmdkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGFuZ2Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYW5nZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhbmdkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFuZ2Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTkxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFuZ2xlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGFuZ2xlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGFuZ2xlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFuZ2xlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFuZ2xlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxhcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhODUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXF1byIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFxdW8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhcXVvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFxdW87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTkwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycmIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYXJyYiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxhcnJiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycmI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYXJyYjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXJyYmZzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGFycmJmcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxhcnJiZnMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXJyYmZzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFycmJmczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXJyZnMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYXJyZnMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYXJyZnMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXJyZnM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYXJyZnM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTFkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycmhrIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGFycmhrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGFycmhrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycmhrOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFycmhrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhcnJscCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxhcnJscCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxhcnJscCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhcnJscDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxhcnJscDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXJycGwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYXJycGwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYXJycGwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXJycGw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYXJycGw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTM5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycnNpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxhcnJzaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYXJyc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycnNpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxhcnJzaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTczIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycnRsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGFycnRsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGFycnRsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGFycnRsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGFycnRsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxhdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxhdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxhdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxhdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXRhaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYXRhaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYXRhaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYXRhaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYXRhaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTE5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGF0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxhdGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYXRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGF0ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxhdGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWFkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGF0ZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYXRlcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxhdGVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGF0ZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYXRlczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYWRcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYmFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxiYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGJhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYmFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxiYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkwYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxiYnJrIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGJicmsgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYmJyayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxiYnJrOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGJicms7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNzcyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGJyYWNlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGJyYWNlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGJyYWNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGJyYWNlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGJyYWNlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgInsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYnJhY2siLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsYnJhY2sgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYnJhY2siCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsYnJhY2s7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsYnJhY2s7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiWyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxicmtlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGJya2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYnJrZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxicmtlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGJya2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOThiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGJya3NsZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxicmtzbGQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYnJrc2xkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGJya3NsZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxicmtzbGQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOThmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGJya3NsdSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxicmtzbHUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsYnJrc2x1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGJya3NsdTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxicmtzbHU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOThkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGNhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGNhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGNhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDEzZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxjZWRpbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxjZWRpbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxjZWRpbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxjZWRpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxjZWRpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxM2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsY2VpbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxjZWlsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGNlaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsY2VpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxjZWlsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMwOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxjdWIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsY3ViIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGN1YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxjdWI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsY3ViOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgInsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDNiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRjYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxkY2Egd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZGNhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRjYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxkY2E7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTM2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRxdW8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZHF1byB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxkcXVvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRxdW87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZHF1bzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZHF1b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZHF1b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZHF1b3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZHF1b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZHF1b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRyZGhhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxkcmRoYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZHJkaGFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRyZGhhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxkcmRoYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTY3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRydXNoYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZHJ1c2hhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxkcnVzaGFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGRydXNoYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZHJ1c2hhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZHNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGRzaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxkc2giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZHNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGRzaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlZnRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlZnRhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlZnRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0YXJyb3d0YWlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGVmdGFycm93dGFpbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlZnRhcnJvd3RhaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0YXJyb3d0YWlsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGVmdGFycm93dGFpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0aGFycG9vbmRvd24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZWZ0aGFycG9vbmRvd24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZWZ0aGFycG9vbmRvd24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0aGFycG9vbmRvd247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZWZ0aGFycG9vbmRvd247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVmdGhhcnBvb251cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlZnRoYXJwb29udXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZWZ0aGFycG9vbnVwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVmdGhhcnBvb251cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlZnRoYXJwb29udXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVmdGxlZnRhcnJvd3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZWZ0bGVmdGFycm93cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlZnRsZWZ0YXJyb3dzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVmdGxlZnRhcnJvd3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZWZ0bGVmdGFycm93czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0cmlnaHRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlZnRyaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVmdHJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0cmlnaHRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlZnRyaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnRyaWdodGFycm93cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlZnRyaWdodGFycm93cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlZnRyaWdodGFycm93cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnRyaWdodGFycm93czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlZnRyaWdodGFycm93czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0cmlnaHRoYXJwb29ucyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlZnRyaWdodGhhcnBvb25zIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVmdHJpZ2h0aGFycG9vbnMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZWZ0cmlnaHRoYXJwb29uczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlZnRyaWdodGhhcnBvb25zOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnRyaWdodHNxdWlnYXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZWZ0cmlnaHRzcXVpZ2Fycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVmdHJpZ2h0c3F1aWdhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnRyaWdodHNxdWlnYXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZWZ0cmlnaHRzcXVpZ2Fycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnR0aHJlZXRpbWVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGVmdHRocmVldGltZXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZWZ0dGhyZWV0aW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlZnR0aHJlZXRpbWVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGVmdHRocmVldGltZXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmNiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGVnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGVnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGVxcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlcXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGVxcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXFzbGFudCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlcXNsYW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVxc2xhbnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXFzbGFudDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlcXNsYW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhN2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNjYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlc2NjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVzY2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNjYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlc2NjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFhOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlc2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlc2RvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlc2RvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlc2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlc2RvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhN2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNkb3RvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGVzZG90byB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlc2RvdG8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNkb3RvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGVzZG90bzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhODEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNkb3RvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlc2RvdG9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVzZG90b3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNkb3RvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlc2RvdG9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlc2ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZXNnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGVzZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlc2c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZXNnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkYVx1ZmUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlc2dlcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlc2dlcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlc2dlcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxlc2dlczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlc2dlczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhOTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNzYXBwcm94IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGVzc2FwcHJveCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlc3NhcHByb3giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNzYXBwcm94OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGVzc2FwcHJveDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhODUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNzZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGVzc2RvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxlc3Nkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNzZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGVzc2RvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNzZXFndHIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZXNzZXFndHIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZXNzZXFndHIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZXNzZXFndHI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZXNzZXFndHI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVzc2VxcWd0ciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlc3NlcXFndHIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZXNzZXFxZ3RyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVzc2VxcWd0cjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlc3NlcXFndHI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYThiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVzc2d0ciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlc3NndHIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZXNzZ3RyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVzc2d0cjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlc3NndHI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjc2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVzc3NpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxlc3NzaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZXNzc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGVzc3NpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxlc3NzaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjcyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGZpc2h0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGZpc2h0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGZpc2h0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGZpc2h0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGZpc2h0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk3YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxmbG9vciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxmbG9vciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxmbG9vciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxmbG9vcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxmbG9vcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZ0UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsZ0Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsZ0UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsZ0U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsZ0U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTkxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGhhcmQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsaGFyZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxoYXJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGhhcmQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsaGFyZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsaGFydSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxoYXJ1IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGhhcnUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsaGFydTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxoYXJ1OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxoYXJ1bCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxoYXJ1bCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxoYXJ1bCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxoYXJ1bDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxoYXJ1bDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsaGJsayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxoYmxrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGhibGsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsaGJsazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxoYmxrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjU4NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxqY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsamN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGpjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxqY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsamN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQ1OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbGwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbGw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjZhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGxhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsbGFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxsYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbGxhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsbGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsbGNvcm5lciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxsY29ybmVyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGxjb3JuZXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsbGNvcm5lcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxsY29ybmVyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMxZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxsaGFyZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxsaGFyZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxsaGFyZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxsaGFyZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxsaGFyZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsbHRyaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxsdHJpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbGx0cmkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsbHRyaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxsdHJpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjVmYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxtaWRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxtaWRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxtaWRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxtaWRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxtaWRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsbW91c3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsbW91c3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsbW91c3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsbW91c3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsbW91c3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2IwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG1vdXN0YWNoZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxtb3VzdGFjaGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsbW91c3RhY2hlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG1vdXN0YWNoZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxtb3VzdGFjaGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2IwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG5FIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG5FIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG5FIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG5FOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG5FOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuYXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsbmFwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG5hcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuYXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsbmFwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuYXBwcm94IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG5hcHByb3ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsbmFwcHJveCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuYXBwcm94OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG5hcHByb3g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTg5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG5lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsbmVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG5lcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsbmVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE4NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG5lcXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsbmVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxuZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG5lcXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjY4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG5zaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsbnNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxuc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG5zaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsbnNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb2FuZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxvYW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG9hbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb2FuZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxvYW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG9hcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsb2FyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG9hcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWZkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9icmsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsb2JyayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxvYnJrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9icms7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsb2Jyazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb25nbGVmdGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG9uZ2xlZnRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxvbmdsZWZ0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb25nbGVmdGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG9uZ2xlZnRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb25nbGVmdHJpZ2h0YXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsb25nbGVmdHJpZ2h0YXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsb25nbGVmdHJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb25nbGVmdHJpZ2h0YXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsb25nbGVmdHJpZ2h0YXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2Y3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9uZ21hcHN0byIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxvbmdtYXBzdG8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsb25nbWFwc3RvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9uZ21hcHN0bzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxvbmdtYXBzdG87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2ZjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9uZ3JpZ2h0YXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsb25ncmlnaHRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxvbmdyaWdodGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9uZ3JpZ2h0YXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsb25ncmlnaHRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb29wYXJyb3dsZWZ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG9vcGFycm93bGVmdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxvb3BhcnJvd2xlZnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb29wYXJyb3dsZWZ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG9vcGFycm93bGVmdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb29wYXJyb3dyaWdodCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxvb3BhcnJvd3JpZ2h0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG9vcGFycm93cmlnaHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb29wYXJyb3dyaWdodDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxvb3BhcnJvd3JpZ2h0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvcGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG9wYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsb3BhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvcGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG9wYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTg1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDVkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9wbHVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG9wbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG9wbHVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbG9wbHVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG9wbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEyZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvdGltZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsb3RpbWVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbG90aW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvdGltZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsb3RpbWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEzNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvd2FzdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxvd2FzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxvd2FzdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvd2FzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxvd2FzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb3diYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsb3diYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsb3diYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb3diYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsb3diYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxveiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxveiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxveiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxvejsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxvejsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1Y2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb3plbmdlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG96ZW5nZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxvemVuZ2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb3plbmdlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG96ZW5nZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1Y2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb3pmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbG96ZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxvemYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsb3pmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbG96Zjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5ZWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZscGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHBhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxwYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZscGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHBhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICIoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHBhcmx0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHBhcmx0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbHBhcmx0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHBhcmx0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHBhcmx0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk5MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxyYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHJhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZscmFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxyYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHJhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWM2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHJjb3JuZXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBscmNvcm5lciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxyY29ybmVyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHJjb3JuZXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBscmNvcm5lcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZscmhhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxyaGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbHJoYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZscmhhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxyaGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxyaGFyZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxyaGFyZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxyaGFyZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxyaGFyZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxyaGFyZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZscm0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBscm0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZscm0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZscm07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBscm07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDBlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHJ0cmkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBscnRyaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxydHJpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHJ0cmk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBscnRyaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsc2FxdW8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsc2FxdW8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsc2FxdW8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsc2FxdW87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsc2FxdW87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDM5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGxzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGxzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2MxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbHNoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbHNpbSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxzaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHNpbWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsc2ltZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmxzaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHNpbWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYThkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNpbWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsc2ltZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxzaW1nIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNpbWc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsc2ltZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhOGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsc3FiIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHNxYiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxzcWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsc3FiOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHNxYjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJbIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNxdW8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsc3F1byB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJmxzcXVvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHNxdW87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsc3F1bzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsc3F1b3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsc3F1b3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsc3F1b3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsc3F1b3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsc3F1b3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHN0cm9rIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHN0cm9rIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbHN0cm9rIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHN0cm9rOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHN0cm9rOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE0MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiPCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiPCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx0Y2M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsdGNjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFhNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx0Y2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHRjaXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTc5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHRkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsdGRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsdGhyZWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsdGhyZWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmNiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHRpbWVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHRpbWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx0bGFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGx0bGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsdHF1ZXN0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHRxdWVzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhN2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsdHJQYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsdHJQYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTk2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHRyaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGx0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWMzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHRyaWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsdHJpZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZsdHJpZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGx0cmlmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjVjMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx1cmRzaGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHVyZHNoYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsdXJkc2hhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx1cmRzaGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHVyZHNoYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHVydWhhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IGx1cnVoYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZsdXJ1aGFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHVydWhhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IGx1cnVoYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTY2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHZlcnRuZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbHZlcnRuZXFxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbHZlcnRuZXFxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbHZlcnRuZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbHZlcnRuZXFxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2OFx1ZmUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx2bkUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBsdm5FIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbHZuRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJmx2bkU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBsdm5FOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2OFx1ZmUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1ERG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbUREb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtRERvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1ERG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbUREb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjNhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWFjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1hY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1hbGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtYWxlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1hbGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNjQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFsdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1hbHQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtYWx0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFsdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1hbHQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNzIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFsdGVzZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1hbHRlc2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtYWx0ZXNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFsdGVzZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1hbHRlc2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNzIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWFwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWFwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWFwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWFwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1hcHN0byIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1hcHN0byB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1hcHN0byIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1hcHN0bzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1hcHN0bzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtYXBzdG9kb3duIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWFwc3RvZG93biB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1hcHN0b2Rvd24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtYXBzdG9kb3duOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWFwc3RvZG93bjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtYXBzdG9sZWZ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWFwc3RvbGVmdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1hcHN0b2xlZnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtYXBzdG9sZWZ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWFwc3RvbGVmdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYTQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtYXBzdG91cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1hcHN0b3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWFwc3RvdXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtYXBzdG91cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1hcHN0b3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1hcmtlciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1hcmtlciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1hcmtlciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1hcmtlcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1hcmtlcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtY29tbWEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtY29tbWEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtY29tbWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtY29tbWE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtY29tbWE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1kYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWRhc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtZGFzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1kYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWRhc2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDE0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWVhc3VyZWRhbmdsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1lYXN1cmVkYW5nbGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtZWFzdXJlZGFuZ2xlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWVhc3VyZWRhbmdsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1lYXN1cmVkYW5nbGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjIxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQyYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1obyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1obyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1obyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1obzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1obzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtaWNybyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWljcm8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBiNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1pY3JvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWljcm87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWlkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWlkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWlkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWlkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1pZGFzdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1pZGFzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1pZGFzdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1pZGFzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1pZGFzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICIqIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWlkY2lyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWlkY2lyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWlkY2lyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWlkY2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWlkY2lyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFmMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1pZGRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWlkZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtaWRkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtaWRkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWludXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtaW51cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1pbnVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWludXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtaW51czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtaW51c2IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtaW51c2Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtaW51c2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtaW51c2I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtaW51c2I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjlmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWludXNkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbWludXNkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWludXNkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbWludXNkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbWludXNkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1pbnVzZHUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtaW51c2R1IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWludXNkdSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1pbnVzZHU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtaW51c2R1OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEyYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1sY3AiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtbGNwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWxjcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1sY3A7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtbGNwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFkYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1sZHIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtbGRyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbWxkciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1sZHI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtbGRyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAyNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1ucGx1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1ucGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1ucGx1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm1ucGx1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1ucGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtb2RlbHMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtb2RlbHMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtb2RlbHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtb2RlbHM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtb2RlbHM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmE3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbW9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG1vcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbW9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG1vcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDVlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1wIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbXNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm1zY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbXNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtc3Rwb3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtc3Rwb3Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtc3Rwb3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtc3Rwb3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtc3Rwb3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbXUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBtdSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm11IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbXU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBtdTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtdWx0aW1hcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG11bHRpbWFwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbXVsdGltYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZtdWx0aW1hcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG11bHRpbWFwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm11bWFwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbXVtYXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZtdW1hcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm11bWFwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbXVtYXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmI4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbkdnIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbkdnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbkdnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbkdnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbkdnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkOVx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5HdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5HdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5HdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5HdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5HdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmJcdTIwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuR3R2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbkd0diB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5HdHYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuR3R2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbkd0djsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmJcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuTGVmdGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbkxlZnRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5MZWZ0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuTGVmdGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbkxlZnRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxY2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuTGVmdHJpZ2h0YXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuTGVmdHJpZ2h0YXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuTGVmdHJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuTGVmdHJpZ2h0YXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuTGVmdHJpZ2h0YXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbkxsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbkxsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbkxsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbkxsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbkxsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkOFx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5MdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5MdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5MdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5MdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5MdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmFcdTIwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuTHR2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbkx0diB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5MdHYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuTHR2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbkx0djsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmFcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuUmlnaHRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5SaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImblJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuUmlnaHRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5SaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5WRGFzaCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5WRGFzaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5WRGFzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5WRGFzaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5WRGFzaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuVmRhc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuVmRhc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuVmRhc2giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuVmRhc2g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuVmRhc2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFibGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuYWJsYSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5hYmxhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFibGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuYWJsYTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuYWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTQ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFuZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5hbmcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuYW5nIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFuZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5hbmc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjIwXHUyMGQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmFwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmFwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmFwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hcEUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuYXBFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmFwRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hcEU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuYXBFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3MFx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hcGlkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmFwaWQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuYXBpZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hcGlkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmFwaWQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjRiXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFwb3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuYXBvcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5hcG9zIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmFwb3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuYXBvczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYXBwcm94IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmFwcHJveCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5hcHByb3giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYXBwcm94OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmFwcHJveDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYXR1ciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5hdHVyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmF0dXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYXR1cjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5hdHVyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjY2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hdHVyYWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuYXR1cmFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmF0dXJhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hdHVyYWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuYXR1cmFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjY2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hdHVyYWxzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmF0dXJhbHMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuYXR1cmFscyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5hdHVyYWxzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmF0dXJhbHM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmJzcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmJzcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGEwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmJzcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5ic3A7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGEwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmJ1bXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuYnVtcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5idW1wIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmJ1bXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuYnVtcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNGVcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYnVtcGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuYnVtcGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuYnVtcGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuYnVtcGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuYnVtcGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjRmXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmNhcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5jYXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuY2FwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmNhcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5jYXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTQzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmNhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmNhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmNhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE0OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5jZWRpbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5jZWRpbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5jZWRpbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5jZWRpbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5jZWRpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuY29uZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5jb25nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmNvbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuY29uZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5jb25nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5jb25nZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmNvbmdkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuY29uZ2RvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5jb25nZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmNvbmdkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTZkXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmN1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5jdXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuY3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmN1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5jdXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5kYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmRhc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuZGFzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5kYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmRhc2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZUFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5lQXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmVBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZUFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5lQXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lYXJoayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5lYXJoayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5lYXJoayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lYXJoazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5lYXJoazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZWFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5lYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmVhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZWFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5lYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lYXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuZWFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmVhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lYXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuZWFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmVkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuZWRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmVkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjUwXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmVxdWl2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmVxdWl2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmVxdWl2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmVxdWl2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmVxdWl2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lc2VhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5lc2VhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5lc2VhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5lc2VhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5lc2Vhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZXNpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5lc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmVzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZXNpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5lc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0Mlx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5leGlzdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5leGlzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5leGlzdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5leGlzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5leGlzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZXhpc3RzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmV4aXN0cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5leGlzdHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZXhpc3RzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmV4aXN0czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDJiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmdFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmdFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmdFIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmdFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmdFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2N1x1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5nZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5nZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5nZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5nZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5nZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ2VxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmdlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5nZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ2VxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmdlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ2VxcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5nZXFxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmdlcXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ2VxcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5nZXFxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2N1x1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5nZXFzbGFudCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5nZXFzbGFudCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5nZXFzbGFudCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5nZXFzbGFudDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5nZXFzbGFudDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhN2VcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ2VzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmdlcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5nZXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ2VzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmdlczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhN2VcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ3NpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5nc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmdzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ3NpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5nc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5ndCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5ndCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5ndCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5ndDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5ndDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ3RyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmd0ciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5ndHIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuZ3RyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmd0cjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaEFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5oQXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmhBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaEFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5oQXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5oYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmhhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuaGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5oYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmhhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmhwYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuaHBhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5ocGFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmhwYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuaHBhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5pIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5pOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5pcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5pcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5pcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5pczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5pczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaXNkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmlzZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5pc2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaXNkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmlzZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuaXYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuaXYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuaXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuaXY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjBiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5qY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuamN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5qY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDVhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxBcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubEFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5sQXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxBcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubEFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxY2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubEUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubEUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubEUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubEU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubEU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjY2XHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubGFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5sYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubGRyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmxkciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5sZHIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubGRyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmxkcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjcwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxlZnRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5sZWZ0YXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubGVmdGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxlZnRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5sZWZ0YXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTlhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxlZnRyaWdodGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmxlZnRyaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmxlZnRyaWdodGFycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxlZnRyaWdodGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmxlZnRyaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubGVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmxlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubGVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmxlcXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubGVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmxlcXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjY2XHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxlcXNsYW50IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmxlcXNsYW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmxlcXNsYW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxlcXNsYW50OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmxlcXNsYW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3ZFx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubGVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbmxlcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubGVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3ZFx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXNzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbmxlc3Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubGVzcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5sZXNzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbmxlc3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjZlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubHNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5sc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmxzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubHNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubHQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubHQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubHQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubHQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjZlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmx0cmkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubHRyaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5sdHJpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbmx0cmk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubHRyaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubHRyaWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBubHRyaWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubHRyaWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZubHRyaWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBubHRyaWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm1pZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5taWQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZubWlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm1pZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5taWQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5vcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZub3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDVmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBub3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5vdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZub3RpbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vdGluOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5vdGluRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vdGluRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZjlcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZub3RpbmRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vdGluZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJmNVx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5vdGludmE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBub3RpbnZhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5vdGludmI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBub3RpbnZiOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJmNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5vdGludmM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBub3RpbnZjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJmNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5vdG5pOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbm90bmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm90bml2YTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vdG5pdmE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm90bml2YjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vdG5pdmI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmZlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbm90bml2YzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5vdG5pdmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmZkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnBhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5wYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZucGFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnBhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5wYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnBhcmFsbGVsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnBhcmFsbGVsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnBhcmFsbGVsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnBhcmFsbGVsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnBhcmFsbGVsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5wYXJzbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5wYXJzbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5wYXJzbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5wYXJzbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5wYXJzbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZmRcdTIwZTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucGFydCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5wYXJ0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnBhcnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucGFydDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5wYXJ0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIwMlx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5wb2xpbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBucG9saW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnBvbGludCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5wb2xpbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBucG9saW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmExNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5wciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5wciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5wciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5wcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5wcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucHJjdWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBucHJjdWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZucHJjdWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucHJjdWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBucHJjdWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmUwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnByZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5wcmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZucHJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnByZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5wcmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWFmXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnByZWMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBucHJlYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5wcmVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnByZWM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBucHJlYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucHJlY2VxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnByZWNlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5wcmVjZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucHJlY2VxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnByZWNlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYWZcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuckFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5yQXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnJBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuckFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5yQXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5yYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnJhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZucmFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5yYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnJhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTliIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnJhcnJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnJhcnJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnJhcnJjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnJhcnJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnJhcnJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkzM1x1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5yYXJydyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5yYXJydyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5yYXJydyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5yYXJydzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5yYXJydzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOWRcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucmlnaHRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5yaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZucmlnaHRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5yaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5ydHJpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnJ0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZucnRyaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5ydHJpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnJ0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnJ0cmllIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnJ0cmllIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnJ0cmllIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnJ0cmllOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnJ0cmllOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc2NjdWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc2NjdWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc2NjdWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc2NjdWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc2NjdWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmUxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNjZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zY2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc2NlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNjZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zY2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWIwXHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2MzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNob3J0bWlkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnNob3J0bWlkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnNob3J0bWlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNob3J0bWlkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnNob3J0bWlkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zaG9ydHBhcmFsbGVsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnNob3J0cGFyYWxsZWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc2hvcnRwYXJhbGxlbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zaG9ydHBhcmFsbGVsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnNob3J0cGFyYWxsZWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjQxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNpbWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc2ltZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zaW1lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNpbWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc2ltZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc2ltZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc2ltZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc2ltZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc2ltZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc2ltZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjQ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNtaWQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc21pZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zbWlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnNtaWQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc21pZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3BhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zcGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnNwYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3BhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zcGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zcXN1YmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc3FzdWJlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnNxc3ViZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zcXN1YmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc3FzdWJlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zcXN1cGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc3FzdXBlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnNxc3VwZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zcXN1cGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc3FzdXBlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdWIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc3ViIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnN1YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdWI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc3ViOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdWJFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnN1YkUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc3ViRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdWJFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnN1YkU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWM1XHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1YmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc3ViZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zdWJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1YmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc3ViZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3Vic2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnN1YnNldCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zdWJzZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3Vic2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnN1YnNldDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODJcdTIwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3Vic2V0ZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc3Vic2V0ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc3Vic2V0ZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3Vic2V0ZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc3Vic2V0ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjg4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1YnNldGVxcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zdWJzZXRlcXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc3Vic2V0ZXFxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1YnNldGVxcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zdWJzZXRlcXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWM1XHUwMzM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1Y2MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc3VjYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zdWNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1Y2M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc3VjYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3VjY2VxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnN1Y2NlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zdWNjZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3VjY2VxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnN1Y2NlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjBcdTAzMzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3VwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnN1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm5zdXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3VwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnN1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3VwRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zdXBFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnN1cEUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZuc3VwRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zdXBFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjNlx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdXBlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnN1cGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc3VwZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdXBlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnN1cGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjg5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1cHNldCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG5zdXBzZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZuc3Vwc2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1cHNldDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG5zdXBzZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjgzXHUyMGQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1cHNldGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnN1cHNldGVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnN1cHNldGVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnN1cHNldGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnN1cHNldGVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdXBzZXRlcXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBuc3Vwc2V0ZXFxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnN1cHNldGVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm5zdXBzZXRlcXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBuc3Vwc2V0ZXFxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjNlx1MDMzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm50Z2wiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudGdsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnRnbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm50Z2w7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudGdsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm50aWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnRpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGYxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRsZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG50bGcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudGxnIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRsZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG50bGc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjc4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRyaWFuZ2xlbGVmdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG50cmlhbmdsZWxlZnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudHJpYW5nbGVsZWZ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRyaWFuZ2xlbGVmdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG50cmlhbmdsZWxlZnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmVhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRyaWFuZ2xlbGVmdGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnRyaWFuZ2xlbGVmdGVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnRyaWFuZ2xlbGVmdGVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRyaWFuZ2xlbGVmdGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnRyaWFuZ2xlbGVmdGVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm50cmlhbmdsZXJpZ2h0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnRyaWFuZ2xlcmlnaHQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudHJpYW5nbGVyaWdodCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm50cmlhbmdsZXJpZ2h0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnRyaWFuZ2xlcmlnaHQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRyaWFuZ2xlcmlnaHRlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG50cmlhbmdsZXJpZ2h0ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudHJpYW5nbGVyaWdodGVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnRyaWFuZ2xlcmlnaHRlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG50cmlhbmdsZXJpZ2h0ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmVkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm51IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiIyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm51bWVybyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG51bWVybyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm51bWVybyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm51bWVybzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG51bWVybzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudW1zcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG51bXNwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnVtc3AiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudW1zcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG51bXNwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAwNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52RGFzaCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG52RGFzaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm52RGFzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52RGFzaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG52RGFzaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudkhhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudkhhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudkhhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudkhhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudkhhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTA0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZhcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG52YXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudmFwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZhcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG52YXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjRkXHUyMGQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZkYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnZkYXNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnZkYXNoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZkYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnZkYXNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52Z2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudmdlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnZnZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52Z2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudmdlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI2NVx1MjBkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52Z3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudmd0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnZndCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52Z3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudmd0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIj5cdTIwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudmluZmluIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnZpbmZpbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm52aW5maW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudmluZmluOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnZpbmZpbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5ZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudmxBcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudmxBcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudmxBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudmxBcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudmxBcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTAyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZsZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG52bGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudmxlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZsZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG52bGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjY0XHUyMGQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZsdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG52bHQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZudmx0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnZsdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG52bHQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiPFx1MjBkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52bHRyaWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBudmx0cmllIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnZsdHJpZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52bHRyaWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBudmx0cmllOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiNFx1MjBkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52ckFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG52ckFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm52ckFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm52ckFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG52ckFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudnJ0cmllIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnZydHJpZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm52cnRyaWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudnJ0cmllOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnZydHJpZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYjVcdTIwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudnNpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG52c2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnZzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZudnNpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG52c2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzY1x1MjBkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm53QXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbndBcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZud0FyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm53QXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbndBcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWQ2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbndhcmhrIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbndhcmhrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbndhcmhrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbndhcmhrOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbndhcmhrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkyMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm53YXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbndhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZud2FyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm53YXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbndhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTk2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbndhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG53YXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZud2Fycm93IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbndhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG53YXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTk2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnduZWFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogbnduZWFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImbnduZWFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImbnduZWFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogbnduZWFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkyNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9TIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb1Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvUyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9TOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb1M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNGM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2FjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9hY3V0ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9hY3V0ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvYXN0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2FzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9hc3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvYXN0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2FzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvY2lyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2NpciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9jaXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvY2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2Npcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvY2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2NpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9jaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2NpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGY0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2N5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2N5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2N5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2N5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kYXNoIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2Rhc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvZGFzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2Rhc2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2RibGFjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2RibGFjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2RibGFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2RibGFjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2RibGFjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE1MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kaXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvZGl2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2RpdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kaXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvZGl2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEzOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2RvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kc29sZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9kc29sZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9kc29sZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9kc29sZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9kc29sZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvZWxpZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9lbGlnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2VsaWciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvZWxpZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9lbGlnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE1MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9mY2lyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2ZjaXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvZmNpciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9mY2lyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2ZjaXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWJmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2ZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2ZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2ZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2ZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2ZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9nb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvZ29uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2dvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9nb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvZ29uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDJkYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9ncmF2ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2dyYXZlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvZ3JhdmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvZ3JhdmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGYyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2d0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2d0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2d0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2d0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2d0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjljMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9oYmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2hiYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvaGJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9oYmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2hiYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2htIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2htIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2htIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2htOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2htOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNhOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9pbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvaW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2ludCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9pbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvaW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9sYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2xhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvbGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9sYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2xhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2xjaXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvbGNpciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9sY2lyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb2xjaXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvbGNpcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvbGNyb3NzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb2xjcm9zcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9sY3Jvc3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvbGNyb3NzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb2xjcm9zczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvbGluZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9saW5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb2xpbmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvbGluZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9saW5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAzZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9sdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9sdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9sdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9sdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9sdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YzAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvbWFjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9tYWNyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb21hY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvbWFjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9tYWNyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE0ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9tZWdhIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb21lZ2Egd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvbWVnYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9tZWdhOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb21lZ2E7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2M5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb21pY3JvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9taWNyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvbWljcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb21pY3JvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9taWNyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2JmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb21pZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9taWQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvbWlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb21pZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9taWQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb21pbnVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb21pbnVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb21pbnVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb21pbnVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb21pbnVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9vcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb29wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9vcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ2MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9wYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvcGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3BhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9wYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvcGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjliNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9wZXJwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3BlcnAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvcGVycCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9wZXJwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3BlcnA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3BsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvcGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9wbHVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3BsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvcGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIyOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3JhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvcmFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3JhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3JkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3JkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3JkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE1ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yZGVyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3JkZXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvcmRlciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yZGVyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3JkZXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkZXJvZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9yZGVyb2Ygd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvcmRlcm9mIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkZXJvZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9yZGVyb2Y7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3JkZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9yZGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3JkbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGJhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JkbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9yZG07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGJhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JpZ29mIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3JpZ29mIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3JpZ29mIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3JpZ29mOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3JpZ29mOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yb3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvcm9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3JvciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yb3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvcm9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE1NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yc2xvcGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvcnNsb3BlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3JzbG9wZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9yc2xvcGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvcnNsb3BlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE1NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9ydiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IG9ydiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9ydiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9ydjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9ydjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3NjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm9zY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3Njcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvc2xhc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG9zbGFzaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGY4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3NsYXNoOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3NsYXNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9zb2wiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvc29sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3NvbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm9zb2w7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvc29sOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm90aWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3RpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZvdGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvdGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGY1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3RpbWVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3RpbWVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImb3RpbWVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3RpbWVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3RpbWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm90aW1lc2FzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogb3RpbWVzYXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZvdGltZXNhcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJm90aW1lc2FzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3RpbWVzYXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTM2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3VtbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogb3VtbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGY2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3VtbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IG91bWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGY2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3ZiYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBvdmJhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJm92YmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImb3ZiYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBvdmJhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzM2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGFyYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGFyYSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGFyYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBhcmE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGFyYWxsZWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwYXJhbGxlbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwYXJzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwYXJzaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwYXJzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwYXJzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwYXJzaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWYzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGFyc2wiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwYXJzbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBhcnNsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGFyc2w7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwYXJzbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwYXJ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGFydCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBhcnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwYXJ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGFydDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDNmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGVyY250IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGVyY250IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGVyY250IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGVyY250OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGVyY250OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZXJpb2QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwZXJpb2Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwZXJpb2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZXJpb2Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwZXJpb2Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiLiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBlcm1pbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBlcm1pbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBlcm1pbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBlcm1pbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBlcm1pbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMzAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZXJwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGVycCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBlcnAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZXJwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGVycDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZXJ0ZW5rIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGVydGVuayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBlcnRlbmsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZXJ0ZW5rOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGVydGVuazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGhpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGhpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGhpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGhpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGhpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNjNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBoaXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwaGl2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGhpdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBoaXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwaGl2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNkNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBobW1hdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBobW1hdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBobW1hdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBobW1hdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBobW1hdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwaG9uZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBob25lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGhvbmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwaG9uZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBob25lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjYwZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2MwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGl0Y2hmb3JrIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGl0Y2hmb3JrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGl0Y2hmb3JrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGl0Y2hmb3JrOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGl0Y2hmb3JrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJkNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBpdiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBpdiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBpdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBpdjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBpdjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwbGFuY2siLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwbGFuY2sgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwbGFuY2siCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwbGFuY2s7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwbGFuY2s7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGxhbmNraCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBsYW5ja2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwbGFuY2toIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGxhbmNraDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBsYW5ja2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTBlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGxhbmt2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGxhbmt2IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGxhbmt2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGxhbmt2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGxhbmt2OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjEwZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGx1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIisiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwbHVzYWNpciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBsdXNhY2lyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGx1c2FjaXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwbHVzYWNpcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBsdXNhY2lyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEyMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBsdXNiIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGx1c2Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwbHVzYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBsdXNiOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGx1c2I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjllIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c2NpciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBsdXNjaXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwbHVzY2lyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c2NpcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBsdXNjaXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c2RvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcGx1c2RvIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGx1c2RvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c2RvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGx1c2RvOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBsdXNkdSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBsdXNkdSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBsdXNkdSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBsdXNkdTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBsdXNkdTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwbHVzZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBsdXNlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcGx1c2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwbHVzZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBsdXNlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE3MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBsdXNtbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcGx1c21uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwbHVzbW47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwbHVzbW47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGIxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c3NpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBsdXNzaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwbHVzc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c3NpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBsdXNzaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c3R3byIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBsdXN0d28gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwbHVzdHdvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcGx1c3R3bzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBsdXN0d287IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTI3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcG0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBtIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcG07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwb2ludGludCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBvaW50aW50IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcG9pbnRpbnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwb2ludGludDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBvaW50aW50OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmExNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwb3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcG9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwb3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ2MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBvdW5kIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwb3VuZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcG91bmQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwb3VuZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmFwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmFwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmN1ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByY3VlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHJjdWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmN1ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByY3VlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJlYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByZWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJlYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjYXBwcm94IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJlY2FwcHJveCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByZWNhcHByb3giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjYXBwcm94OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJlY2FwcHJveDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjY3VybHllcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByZWNjdXJseWVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHJlY2N1cmx5ZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjY3VybHllcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByZWNjdXJseWVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByZWNlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByZWNlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByZWNlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByZWNlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByZWNlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjbmFwcHJveCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByZWNuYXBwcm94IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHJlY25hcHByb3giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjbmFwcHJveDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByZWNuYXBwcm94OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFiOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByZWNuZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJlY25lcXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwcmVjbmVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByZWNuZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJlY25lcXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHJlY25zaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwcmVjbnNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByZWNuc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHJlY25zaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwcmVjbnNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjc2ltIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJlY3NpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByZWNzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmVjc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJlY3NpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmltZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByaW1lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHJpbWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcmltZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByaW1lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAzMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByaW1lcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByaW1lcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByaW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByaW1lczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByaW1lczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm5FIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJuRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBybkUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm5FOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJuRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm5hcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBybmFwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHJuYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm5hcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBybmFwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFiOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBybnNpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBybnNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnBybnNpbSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnBybnNpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBybnNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9kIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJvZCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByb2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9kOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJvZDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9mYWxhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHByb2ZhbGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHJvZmFsYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9mYWxhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHByb2ZhbGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMyZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByb2ZsaW5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJvZmxpbmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwcm9mbGluZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnByb2ZsaW5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJvZmxpbmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzEyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHJvZnN1cmYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwcm9mc3VyZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByb2ZzdXJmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHJvZnN1cmY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwcm9mc3VyZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9wIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHJvcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByb3AiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9wOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHJvcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9wdG8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwcm9wdG8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwcm9wdG8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcm9wdG87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwcm9wdG87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjFkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHJzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwcnNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnByc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHJzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwcnNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcnVyZWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBwcnVyZWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwcnVyZWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZwcnVyZWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBwcnVyZWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHBzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZwc2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHBzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2M1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHNpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcHNpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcHNpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcHNpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcHNpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNjOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnB1bmNzcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHB1bmNzcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnB1bmNzcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnB1bmNzcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHB1bmNzcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZxZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBxZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZxZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZxZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBxZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcWludCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHFpbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZxaW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcWludDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHFpbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTBjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcW9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHFvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZxb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcW9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHFvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDYyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXByaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcXByaW1lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcXByaW1lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXByaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcXByaW1lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjA1NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnFzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBxc2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcXNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnFzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBxc2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNjNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnF1YXRlcm5pb25zIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcXVhdGVybmlvbnMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZxdWF0ZXJuaW9ucyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnF1YXRlcm5pb25zOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcXVhdGVybmlvbnM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTBkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXVhdGludCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHF1YXRpbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZxdWF0aW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXVhdGludDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHF1YXRpbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTE2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXVlc3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBxdWVzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnF1ZXN0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXVlc3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBxdWVzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICI/IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXVlc3RlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHF1ZXN0ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZxdWVzdGVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXVlc3RlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHF1ZXN0ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjVmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcXVvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcXVvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXCIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZxdW90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcXVvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcIiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJBYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogckFhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyQWFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJBYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogckFhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWRiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImckFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJBcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyQXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImckFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJBcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImckF0YWlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogckF0YWlsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImckF0YWlsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImckF0YWlsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogckF0YWlsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkxYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJCYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogckJhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyQmFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJCYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogckJhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImckhhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJIYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZySGFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImckhhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJIYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTY0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFjZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJhY2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYWNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFjZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJhY2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjNkXHUwMzMxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmFjdXRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFjdXRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFjdXRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE1NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhZGljIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFkaWMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYWRpYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhZGljOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFkaWM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFlbXB0eXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYWVtcHR5diB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhZW1wdHl2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFlbXB0eXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYWVtcHR5djsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYW5nIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFuZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYW5nOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFuZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYW5nZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJhbmdkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmFuZ2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYW5nZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJhbmdkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk5MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhbmdlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFuZ2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYW5nZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhbmdlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFuZ2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFuZ2xlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFuZ2xlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmFuZ2xlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFuZ2xlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFuZ2xlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhcXVvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXF1byB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGJiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFxdW87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXF1bzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyYXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXJyYXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYXJyYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyYXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXJyYXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTc1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFycmIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXJyYiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhcnJiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFycmI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXJyYjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZTUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyYmZzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFycmJmcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhcnJiZnMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyYmZzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFycmJmczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJhcnJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmFycmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJhcnJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkzMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhcnJmcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJhcnJmcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhcnJmcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhcnJmczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJhcnJmczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyaGsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXJyaGsgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYXJyaGsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyaGs7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXJyaGs7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFycmxwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFycmxwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmFycmxwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFycmxwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFycmxwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhcnJwbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJhcnJwbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhcnJwbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJhcnJwbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJhcnJwbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyc2ltIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmFycnNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhcnJzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJyc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmFycnNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5NzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJydGwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXJydGwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYXJydGwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXJydGw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXJydGw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFycnciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXJydyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhcnJ3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmFycnc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXJydzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXRhaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXRhaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYXRhaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXRhaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXRhaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmF0aW8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXRpbyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJhdGlvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmF0aW87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXRpbzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXRpb25hbHMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYXRpb25hbHMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyYXRpb25hbHMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYXRpb25hbHM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYXRpb25hbHM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmJhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYmFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJiYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmJhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYmFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYmJyayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJiYnJrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmJicmsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYmJyazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJiYnJrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjc3MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJicmFjZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJicmFjZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJicmFjZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJicmFjZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJicmFjZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJ9IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmJyYWNrIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmJyYWNrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmJyYWNrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmJyYWNrOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmJyYWNrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIl0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYnJrZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJicmtlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmJya2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyYnJrZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJicmtlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk4YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJicmtzbGQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYnJrc2xkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmJya3NsZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJicmtzbGQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYnJrc2xkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk4ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJicmtzbHUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByYnJrc2x1IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmJya3NsdSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJicmtzbHU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByYnJrc2x1OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk5MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJjYXJvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJjYXJvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJjYXJvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJjYXJvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJjYXJvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyY2VkaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByY2VkaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyY2VkaWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyY2VkaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByY2VkaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTU3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmNlaWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByY2VpbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJjZWlsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmNlaWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByY2VpbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMDkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyY3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmN1YiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJjdWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyY3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmN1Yjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJ9IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQ0MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkY2EiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByZGNhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmRjYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkY2E7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByZGNhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkzNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkbGRoYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByZGxkaGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmRsZGhhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkbGRoYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByZGxkaGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk2OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkcXVvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmRxdW8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyZHF1byIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkcXVvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmRxdW87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDFkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmRxdW9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmRxdW9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmRxdW9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmRxdW9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmRxdW9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByZHNoIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmRzaCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJkc2g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByZHNoOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJlYWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByZWFsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmVhbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJlYWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByZWFsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJlYWxpbmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByZWFsaW5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmVhbGluZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJlYWxpbmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByZWFsaW5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjExYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJlYWxwYXJ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmVhbHBhcnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyZWFscGFydCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJlYWxwYXJ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmVhbHBhcnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmVhbHMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByZWFscyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJlYWxzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmVhbHM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByZWFsczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyZWN0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmVjdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJlY3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyZWN0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmVjdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyZWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJlZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmVnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmVnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJmaXNodCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJmaXNodCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJmaXNodCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJmaXNodDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJmaXNodDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5N2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyZmxvb3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByZmxvb3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyZmxvb3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyZmxvb3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByZmxvb3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzBiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQyZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJoYXJkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmhhcmQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyaGFyZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJoYXJkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmhhcmQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWMxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmhhcnUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaGFydSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJoYXJ1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmhhcnU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaGFydTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaGFydWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaGFydWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyaGFydWwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaGFydWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaGFydWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTZjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmhvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmhvIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmhvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmhvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmhvOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNjMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJob3YiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaG92IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmhvdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJob3Y7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaG92OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNmMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpZ2h0YXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmlnaHRhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpZ2h0YXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpZ2h0YXJyb3d0YWlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmlnaHRhcnJvd3RhaWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyaWdodGFycm93dGFpbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpZ2h0YXJyb3d0YWlsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmlnaHRhcnJvd3RhaWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWEzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHRoYXJwb29uZG93biIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJpZ2h0aGFycG9vbmRvd24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyaWdodGhhcnBvb25kb3duIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHRoYXJwb29uZG93bjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJpZ2h0aGFycG9vbmRvd247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWMxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHRoYXJwb29udXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaWdodGhhcnBvb251cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJpZ2h0aGFycG9vbnVwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHRoYXJwb29udXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaWdodGhhcnBvb251cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaWdodGxlZnRhcnJvd3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaWdodGxlZnRhcnJvd3Mgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyaWdodGxlZnRhcnJvd3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaWdodGxlZnRhcnJvd3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaWdodGxlZnRhcnJvd3M7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHRsZWZ0aGFycG9vbnMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaWdodGxlZnRoYXJwb29ucyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJpZ2h0bGVmdGhhcnBvb25zIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHRsZWZ0aGFycG9vbnM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaWdodGxlZnRoYXJwb29uczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxY2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaWdodHJpZ2h0YXJyb3dzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmlnaHRyaWdodGFycm93cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJpZ2h0cmlnaHRhcnJvd3MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaWdodHJpZ2h0YXJyb3dzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmlnaHRyaWdodGFycm93czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxYzkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaWdodHNxdWlnYXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaWdodHNxdWlnYXJyb3cgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyaWdodHNxdWlnYXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyaWdodHNxdWlnYXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaWdodHNxdWlnYXJyb3c7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHR0aHJlZXRpbWVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmlnaHR0aHJlZXRpbWVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmlnaHR0aHJlZXRpbWVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmlnaHR0aHJlZXRpbWVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmlnaHR0aHJlZXRpbWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpbmciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByaW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmluZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpbmc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByaW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDJkYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpc2luZ2RvdHNlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJpc2luZ2RvdHNlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJpc2luZ2RvdHNlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJpc2luZ2RvdHNlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJpc2luZ2RvdHNlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZybGFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJsYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmxhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZybGFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJsYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJsaGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmxoYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZybGhhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJsaGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmxoYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmxtIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcmxtIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcmxtIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcmxtOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcmxtOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAwZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJtb3VzdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJtb3VzdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJtb3VzdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJtb3VzdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJtb3VzdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzYjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZybW91c3RhY2hlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcm1vdXN0YWNoZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJtb3VzdGFjaGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZybW91c3RhY2hlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcm1vdXN0YWNoZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzYjEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZybm1pZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJubWlkIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcm5taWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZybm1pZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJubWlkOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJvYW5nIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcm9hbmcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyb2FuZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJvYW5nOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcm9hbmc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2VkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcm9hcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByb2FyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJvYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcm9hcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByb2Fycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyb2JyayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJvYnJrIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcm9icmsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyb2JyazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJvYnJrOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdlNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJvcGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcm9wYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyb3BhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJvcGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcm9wYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTg2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcm9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcm9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDYzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcm9wbHVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcm9wbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcm9wbHVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcm9wbHVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcm9wbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEyZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJvdGltZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByb3RpbWVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcm90aW1lcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJvdGltZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByb3RpbWVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEzNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJwYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBycGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcnBhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJwYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBycGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIikiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZycGFyZ3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBycGFyZ3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZycGFyZ3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZycGFyZ3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBycGFyZ3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTk0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnBwb2xpbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBycHBvbGludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJwcG9saW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnBwb2xpbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBycHBvbGludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZycmFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJyYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcnJhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZycmFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJyYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJzYXF1byIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJzYXF1byB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJzYXF1byIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJzYXF1bzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJzYXF1bzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwM2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcnNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcnNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByc2ggd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyc2giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZyc2g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByc2g7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWIxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnNxYiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJzcWIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyc3FiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnNxYjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJzcWI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJzcXVvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcnNxdW8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZyc3F1byIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJzcXVvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcnNxdW87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMDE5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnNxdW9yIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcnNxdW9yIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcnNxdW9yIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnNxdW9yOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcnNxdW9yOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAxOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJ0aHJlZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJ0aHJlZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJ0aHJlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJ0aHJlZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJ0aHJlZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyY2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZydGltZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBydGltZXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZydGltZXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZydGltZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBydGltZXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmNhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnRyaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJ0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZydHJpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnRyaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJ0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnRyaWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBydHJpZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJ0cmllIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnRyaWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBydHJpZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZydHJpZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJ0cmlmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImcnRyaWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZydHJpZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJ0cmlmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjViOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJ0cmlsdHJpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogcnRyaWx0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZydHJpbHRyaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnJ0cmlsdHJpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogcnRyaWx0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWNlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnVsdWhhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHJ1bHVoYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZydWx1aGFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcnVsdWhhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHJ1bHVoYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTY4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcngiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiByeCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnJ4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImcng7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiByeDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzYWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzYWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzYWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzYWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzYWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2JxdW8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzYnF1byB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNicXVvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2JxdW87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzYnF1bzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNjRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNjRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNjRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNjRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNjRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY2FwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2NhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNjYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY2FwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2NhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY2Fyb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzY2Fyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzY2Fyb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY2Fyb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzY2Fyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTYxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NjdWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzY2N1ZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNjY3VlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NjdWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzY2N1ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzY2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzY2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWIwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NlZGlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2NlZGlsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2NlZGlsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NlZGlsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2NlZGlsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE1ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNjaXJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2NpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzY2lyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNjaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2NpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTVkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NuRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNjbkUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzY25FIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NuRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNjbkU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NuYXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzY25hcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNjbmFwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2NuYXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzY25hcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY25zaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzY25zaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzY25zaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY25zaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzY25zaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmU5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2Nwb2xpbnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzY3BvbGludCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNjcG9saW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2Nwb2xpbnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzY3BvbGludDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMTMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY3NpbSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNjc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2NzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzY3NpbTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNjc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2RvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2RvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZG90YiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNkb3RiIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2RvdGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZG90YjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNkb3RiOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNkb3RlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2RvdGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzZG90ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNkb3RlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2RvdGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTY2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2VBcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzZUFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNlQXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2VBcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzZUFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxZDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZWFyaGsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzZWFyaGsgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzZWFyaGsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZWFyaGs7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzZWFyaGs7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2VhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzZWFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNlYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2VhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzZWFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZWFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2VhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNlYXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZWFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2VhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZWN0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzZWN0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZWN0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2VjdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZW1pIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2VtaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNlbWkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZW1pOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2VtaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICI7IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2Vzd2FyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2Vzd2FyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2Vzd2FyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2Vzd2FyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2Vzd2FyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjkyOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNldG1pbnVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2V0bWludXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzZXRtaW51cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNldG1pbnVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2V0bWludXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjE2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2V0bW4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzZXRtbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNldG1uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2V0bW47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzZXRtbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMTYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZXh0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2V4dCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNleHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZXh0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2V4dDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3MzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2Zyb3duIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2Zyb3duIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2Zyb3duIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2Zyb3duOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2Zyb3duOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMyMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNoYXJwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2hhcnAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzaGFycCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNoYXJwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2hhcnA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNjZmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2hjaGN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2hjaGN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2hjaGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2hjaGN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2hjaGN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQ0OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNoY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzaGN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2hjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNoY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzaGN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQ0OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNob3J0bWlkIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2hvcnRtaWQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzaG9ydG1pZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNob3J0bWlkOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2hvcnRtaWQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2hvcnRwYXJhbGxlbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNob3J0cGFyYWxsZWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzaG9ydHBhcmFsbGVsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2hvcnRwYXJhbGxlbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNob3J0cGFyYWxsZWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2h5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzaHkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNoeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNoeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaWdtYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNpZ21hIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2lnbWEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaWdtYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNpZ21hOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNjMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpZ21hZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNpZ21hZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNpZ21hZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpZ21hZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNpZ21hZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaWdtYXYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzaWdtYXYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzaWdtYXYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaWdtYXY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzaWdtYXY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2MyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2ltIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbWRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNpbWRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNpbWRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbWRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNpbWRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhNmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2ltZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNpbWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2ltZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaW1lcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNpbWVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2ltZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaW1lcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNpbWVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzaW1nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2ltZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbWc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzaW1nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE5ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbWdFIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2ltZ0Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzaW1nRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbWdFOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2ltZ0U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWEwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2ltbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNpbWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzaW1sIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2ltbDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNpbWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2ltbEUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzaW1sRSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNpbWxFIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc2ltbEU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzaW1sRTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhOWYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaW1uZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNpbW5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2ltbmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzaW1uZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNpbW5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0NiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbXBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzaW1wbHVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2ltcGx1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbXBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzaW1wbHVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEyNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbXJhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzaW1yYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc2ltcmFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNpbXJhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzaW1yYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk3MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNsYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc2xhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzbGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNsYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc2xhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTkwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21hbGxzZXRtaW51cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNtYWxsc2V0bWludXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzbWFsbHNldG1pbnVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21hbGxzZXRtaW51czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNtYWxsc2V0bWludXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjE2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21hc2hwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc21hc2hwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc21hc2hwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21hc2hwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc21hc2hwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEzMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNtZXBhcnNsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc21lcGFyc2wgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzbWVwYXJzbCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNtZXBhcnNsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc21lcGFyc2w7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOWU0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21pZCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNtaWQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzbWlkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21pZDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNtaWQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21pbGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzbWlsZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNtaWxlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc21pbGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzbWlsZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzbXQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzbXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzbXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzbXQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzbXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc210ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNtdGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzbXRlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc210ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNtdGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc210ZXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzbXRlcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNtdGVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc210ZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzbXRlczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYWNcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzb2Z0Y3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzb2Z0Y3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzb2Z0Y3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzb2Z0Y3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzb2Z0Y3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDRjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc29sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc29sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc29sIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc29sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc29sOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIi8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzb2xiIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc29sYiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNvbGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzb2xiOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc29sYjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5YzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzb2xiYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzb2xiYXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzb2xiYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzb2xiYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzb2xiYXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzNmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc29wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzb3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc29wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDY0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3BhZGVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3BhZGVzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3BhZGVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3BhZGVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3BhZGVzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjY2MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNwYWRlc3VpdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNwYWRlc3VpdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNwYWRlc3VpdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNwYWRlc3VpdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNwYWRlc3VpdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI2NjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3BhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNwYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Bhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcWNhcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxY2FwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3FjYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcWNhcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxY2FwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxY2FwcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxY2FwcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNxY2FwcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxY2FwczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxY2Fwczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOTNcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcWN1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxY3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3FjdXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcWN1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxY3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5NCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxY3VwcyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxY3VwcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNxY3VwcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxY3VwczsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxY3Vwczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOTRcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcXN1YiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxc3ViIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3FzdWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcXN1YjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxc3ViOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3ViZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxc3ViZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNxc3ViZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3ViZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxc3ViZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcXN1YnNldCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxc3Vic2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3FzdWJzZXQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcXN1YnNldDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxc3Vic2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3Vic2V0ZXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzcXN1YnNldGVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3FzdWJzZXRlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3Vic2V0ZXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzcXN1YnNldGVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5MSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3VwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3FzdXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzcXN1cCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3VwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3FzdXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjkwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3FzdXBlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3FzdXBlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3FzdXBlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3FzdXBlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3FzdXBlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI5MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3Vwc2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3FzdXBzZXQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzcXN1cHNldCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxc3Vwc2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3FzdXBzZXQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjkwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3FzdXBzZXRlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxc3Vwc2V0ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzcXN1cHNldGVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3FzdXBzZXRlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxc3Vwc2V0ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjkyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3F1IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3F1IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3F1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3F1OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3F1OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjVhMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxdWFyZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxdWFyZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNxdWFyZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNxdWFyZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxdWFyZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcXVhcmYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzcXVhcmYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzcXVhcmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzcXVhcmY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzcXVhcmY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3F1ZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNxdWYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzcXVmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3F1ZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNxdWY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWFhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3JhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzcmFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNyYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3JhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzcmFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzc2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3NjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzc2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Njcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjYzgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzc2V0bW4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzc2V0bW4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzc2V0bW4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzc2V0bW47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzc2V0bW47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjE2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3NtaWxlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3NtaWxlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3NtaWxlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3NtaWxlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3NtaWxlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMyMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNzdGFyZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHNzdGFyZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnNzdGFyZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnNzdGFyZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHNzdGFyZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdGFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3RhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN0YXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdGFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Rhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI2MDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdGFyZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN0YXJmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3RhcmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdGFyZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN0YXJmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjYwNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN0cmFpZ2h0ZXBzaWxvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN0cmFpZ2h0ZXBzaWxvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN0cmFpZ2h0ZXBzaWxvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN0cmFpZ2h0ZXBzaWxvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN0cmFpZ2h0ZXBzaWxvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdHJhaWdodHBoaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN0cmFpZ2h0cGhpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3RyYWlnaHRwaGkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdHJhaWdodHBoaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN0cmFpZ2h0cGhpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNkNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN0cm5zIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3RybnMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdHJucyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN0cm5zOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3RybnM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGFmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3ViIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3ViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3ViOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YkUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzdWJFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3ViRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YkU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzdWJFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YmRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1YmRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1YmRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YmRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1YmRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3ViZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1YmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3ViZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJlZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3ViZWRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1YmVkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJlZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3ViZWRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJtdWx0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VibXVsdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1Ym11bHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJtdWx0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VibXVsdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJuRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1Ym5FIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3VibkUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJuRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1Ym5FOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1Ym5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VibmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdWJuZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1Ym5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VibmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjhhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VicGx1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1YnBsdXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdWJwbHVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VicGx1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1YnBsdXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWJmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VicmFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1YnJhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdWJyYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VicmFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1YnJhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTc5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vic2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vic2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3Vic2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vic2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vic2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4MiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YnNldGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vic2V0ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdWJzZXRlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YnNldGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vic2V0ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjg2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vic2V0ZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vic2V0ZXFxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3Vic2V0ZXFxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vic2V0ZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vic2V0ZXFxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YnNldG5lcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1YnNldG5lcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1YnNldG5lcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YnNldG5lcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1YnNldG5lcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJzZXRuZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vic2V0bmVxcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1YnNldG5lcXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJzZXRuZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vic2V0bmVxcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhY2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzdWJzaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdWJzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWJzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzdWJzaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWM3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vic3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vic3ViIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3Vic3ViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vic3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vic3ViOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFkNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YnN1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1YnN1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1YnN1cCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1YnN1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1YnN1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VjYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1Y2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VjYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjYXBwcm94IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VjY2FwcHJveCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1Y2NhcHByb3giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjYXBwcm94OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VjY2FwcHJveDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjY3VybHllcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1Y2NjdXJseWVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3VjY2N1cmx5ZXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjY3VybHllcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1Y2NjdXJseWVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI3ZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1Y2NlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1Y2NlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1Y2NlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1Y2NlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1Y2NlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjbmFwcHJveCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1Y2NuYXBwcm94IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3VjY25hcHByb3giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjbmFwcHJveDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1Y2NuYXBwcm94OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFiYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1Y2NuZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VjY25lcXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdWNjbmVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1Y2NuZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VjY25lcXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWI2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VjY25zaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzdWNjbnNpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1Y2Nuc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VjY25zaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzdWNjbnNpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZTkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjc2ltIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VjY3NpbSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1Y2NzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdWNjc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VjY3NpbTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyN2YiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzdW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzdW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjExIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VuZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1bmcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdW5nIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VuZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1bmc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNjZhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwMSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwMSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwMTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cDE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwMiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwMiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwMjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cDI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwMyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwMyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwMzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cDM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cEUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzdXBFIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3VwRSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cEU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzdXBFOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cGRvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1cGRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cGRvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cGRvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cGRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBkc3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwZHN1YiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cGRzdWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBkc3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwZHN1Yjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZDgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBlZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwZWRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cGVkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBlZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwZWRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBoc29sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwaHNvbCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cGhzb2wiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBoc29sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwaHNvbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3YzkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBoc3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwaHN1YiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cGhzdWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBoc3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwaHN1Yjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZDciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBsYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwbGFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cGxhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBsYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwbGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5N2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBtdWx0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwbXVsdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cG11bHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBtdWx0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwbXVsdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhYzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBuRSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1cG5FIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3VwbkUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBuRTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cG5FOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cG5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3VwbmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdXBuZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cG5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3VwbmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjhiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwcGx1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1cHBsdXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdXBwbHVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3VwcGx1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cHBsdXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vwc2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vwc2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3Vwc2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vwc2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vwc2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cHNldGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vwc2V0ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdXBzZXRlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cHNldGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vwc2V0ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjg3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vwc2V0ZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vwc2V0ZXFxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3Vwc2V0ZXFxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vwc2V0ZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vwc2V0ZXFxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cHNldG5lcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1cHNldG5lcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cHNldG5lcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cHNldG5lcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cHNldG5lcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBzZXRuZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vwc2V0bmVxcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cHNldG5lcXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBzZXRuZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vwc2V0bmVxcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhY2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBzaW0iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzdXBzaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZzdXBzaW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzdXBzaW07IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzdXBzaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWM4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vwc3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogc3Vwc3ViIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3Vwc3ViIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImc3Vwc3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3Vwc3ViOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFkNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cHN1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN1cHN1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN1cHN1cCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN1cHN1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN1cHN1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhZDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzd0FyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN3QXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3dBcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzd0FycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN3QXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN3YXJoayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN3YXJoayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN3YXJoayIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN3YXJoazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN3YXJoazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzd2FyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN3YXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3dhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzd2FycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN3YXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN3YXJyb3ciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiBzd2Fycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImc3dhcnJvdyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN3YXJyb3c7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiBzd2Fycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN3bndhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHN3bndhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnN3bndhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN3bndhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHN3bndhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5MmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZzemxpZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3psaWcgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBkZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnN6bGlnOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogc3psaWc7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGRmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGFyZ2V0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGFyZ2V0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGFyZ2V0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGFyZ2V0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGFyZ2V0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMxNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRhdSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRhdSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRhdSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRhdTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRhdTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0YnJrIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGJyayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRicmsiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0YnJrOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGJyazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzYjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0Y2Fyb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0Y2Fyb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0Y2Fyb24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0Y2Fyb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0Y2Fyb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTY1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGNlZGlsIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGNlZGlsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGNlZGlsIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGNlZGlsOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGNlZGlsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE2MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0ZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0ZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwZGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0ZWxyZWMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0ZWxyZWMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0ZWxyZWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0ZWxyZWM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0ZWxyZWM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQzMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoZXJlNCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRoZXJlNCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRoZXJlNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoZXJlNDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRoZXJlNDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMzQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aGVyZWZvcmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0aGVyZWZvcmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0aGVyZWZvcmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aGVyZWZvcmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aGVyZWZvcmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGhldGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0aGV0YSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRoZXRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGhldGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aGV0YTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aGV0YXN5bSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRoZXRhc3ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGhldGFzeW0iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aGV0YXN5bTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRoZXRhc3ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNkMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoZXRhdiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRoZXRhdiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRoZXRhdiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoZXRhdjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRoZXRhdjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aGlja2FwcHJveCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRoaWNrYXBwcm94IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGhpY2thcHByb3giCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aGlja2FwcHJveDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRoaWNrYXBwcm94OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0OCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoaWNrc2ltIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGhpY2tzaW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0aGlja3NpbSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoaWNrc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGhpY2tzaW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjNjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGhpbnNwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGhpbnNwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGhpbnNwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGhpbnNwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGhpbnNwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAwOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoa2FwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGhrYXAgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0aGthcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRoa2FwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGhrYXA7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjQ4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGhrc2ltIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdGhrc2ltIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGhrc2ltIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGhrc2ltOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdGhrc2ltOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIzYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRob3JuIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aG9ybiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGZlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGhvcm47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aG9ybjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aWxkZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRpbGRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aWxkZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRpbGRlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDJkYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRpbWVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aW1lcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGQ3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGltZXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aW1lczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZDciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aW1lc2I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aW1lc2I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmEwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGltZXNiYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aW1lc2Jhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0aW1lc2Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0aW1lc2Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGludCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRpbnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0aW50IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdGludDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRpbnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9lYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRvZWEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0b2VhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9lYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRvZWE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTI4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9wIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdG9wIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdG9wIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9wOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdG9wOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJhNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRvcGJvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRvcGJvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRvcGJvdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRvcGJvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRvcGJvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0b3BjaXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0b3BjaXIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0b3BjaXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0b3BjaXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0b3BjaXI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWYxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0b3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDY1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9wZm9yayIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRvcGZvcmsgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0b3Bmb3JrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9wZm9yazsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRvcGZvcms7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9zYSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRvc2Egd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0b3NhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdG9zYTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRvc2E7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTI5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHByaW1lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHByaW1lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdHByaW1lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHByaW1lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHByaW1lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAzNCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyYWRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHJhZGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0cmFkZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyYWRlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHJhZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTIyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpYW5nbGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0cmlhbmdsZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRyaWFuZ2xlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpYW5nbGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0cmlhbmdsZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlhbmdsZWRvd24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0cmlhbmdsZWRvd24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0cmlhbmdsZWRvd24iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlhbmdsZWRvd247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0cmlhbmdsZWRvd247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWJmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpYW5nbGVsZWZ0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHJpYW5nbGVsZWZ0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdHJpYW5nbGVsZWZ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpYW5nbGVsZWZ0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHJpYW5nbGVsZWZ0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjVjMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaWFuZ2xlbGVmdGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHJpYW5nbGVsZWZ0ZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0cmlhbmdsZWxlZnRlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaWFuZ2xlbGVmdGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHJpYW5nbGVsZWZ0ZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmI0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpYW5nbGVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHJpYW5nbGVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdHJpYW5nbGVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpYW5nbGVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHJpYW5nbGVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1YyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaWFuZ2xlcmlnaHQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0cmlhbmdsZXJpZ2h0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdHJpYW5nbGVyaWdodCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaWFuZ2xlcmlnaHQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0cmlhbmdsZXJpZ2h0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjViOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaWFuZ2xlcmlnaHRlcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRyaWFuZ2xlcmlnaHRlcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRyaWFuZ2xlcmlnaHRlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaWFuZ2xlcmlnaHRlcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRyaWFuZ2xlcmlnaHRlcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlkb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0cmlkb3Qgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0cmlkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0cmlkb3Q7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRyaWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0cmllIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRyaWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjVjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpbWludXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0cmltaW51cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRyaW1pbnVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHJpbWludXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0cmltaW51czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhM2EiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlwbHVzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHJpcGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRyaXBsdXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlwbHVzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHJpcGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMzkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlzYiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRyaXNiIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdHJpc2IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0cmlzYjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRyaXNiOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjljZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaXRpbWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0cml0aW1lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdHJpdGltZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRyaXRpbWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0cml0aW1lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEzYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRycGV6aXVtIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHJwZXppdW0gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0cnBleml1bSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnRycGV6aXVtOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHJwZXppdW07IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyM2UyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0c2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2M5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHNjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHRzY3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0c2N5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHNjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHRzY3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDQ2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHNoY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0c2hjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnRzaGN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHNoY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0c2hjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NWIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0c3Ryb2siLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0c3Ryb2sgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ0c3Ryb2siCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0c3Ryb2s7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0c3Ryb2s7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTY3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHdpeHQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB0d2l4dCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnR3aXh0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdHdpeHQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB0d2l4dDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0d29oZWFkbGVmdGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdHdvaGVhZGxlZnRhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnR3b2hlYWRsZWZ0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0d29oZWFkbGVmdGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdHdvaGVhZGxlZnRhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0d29oZWFkcmlnaHRhcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHR3b2hlYWRyaWdodGFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdHdvaGVhZHJpZ2h0YXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ0d29oZWFkcmlnaHRhcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHR3b2hlYWRyaWdodGFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFhMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVBcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1QXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdUFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVBcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1QXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVIYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1SGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdUhhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVIYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1SGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk2MyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVhY3V0ZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdWFjdXRlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1YWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1YWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGZhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1YXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTkxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWJyY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1YnJjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVicmN5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWJyY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1YnJjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1YnJldmUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1YnJldmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1YnJldmUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1YnJldmU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1YnJldmU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTZkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWNpcmMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1Y2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NDMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1ZGFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVkYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdWRhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1ZGFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVkYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVkYmxhYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVkYmxhYyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVkYmxhYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVkYmxhYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVkYmxhYzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1ZGhhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVkaGFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdWRoYXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1ZGhhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVkaGFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk2ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVmaXNodCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVmaXNodCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVmaXNodCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVmaXNodDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVmaXNodDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI5N2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1ZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1ZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1ZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1ZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1ZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDMyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWdyYXZlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1Z3JhdmUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmOSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVncmF2ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVncmF2ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZjkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1aGFybCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVoYXJsIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdWhhcmwiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1aGFybDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVoYXJsOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVoYXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdWhhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1aGFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVoYXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdWhhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWhibGsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1aGJsayB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVoYmxrIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWhibGs7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1aGJsazsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1ODAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1bGNvcm4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1bGNvcm4gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1bGNvcm4iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1bGNvcm47IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1bGNvcm47IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzFjIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWxjb3JuZXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1bGNvcm5lciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVsY29ybmVyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWxjb3JuZXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1bGNvcm5lcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMWMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1bGNyb3AiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1bGNyb3Agd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1bGNyb3AiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1bGNyb3A7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1bGNyb3A7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMzBmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWx0cmkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1bHRyaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVsdHJpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdWx0cmk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1bHRyaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1ZjgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1bWFjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVtYWNyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdW1hY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1bWFjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVtYWNyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE2YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVtbCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdW1sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwYTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1bWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1bWw7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGE4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdW9nb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1b2dvbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVvZ29uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdW9nb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1b2dvbjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxNzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1b3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1b3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNjYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cGFycm93IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdXBhcnJvdyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVwYXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cGFycm93OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdXBhcnJvdzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxOTEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cGRvd25hcnJvdyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVwZG93bmFycm93IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXBkb3duYXJyb3ciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cGRvd25hcnJvdzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVwZG93bmFycm93OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjE5NSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwaGFycG9vbmxlZnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1cGhhcnBvb25sZWZ0IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXBoYXJwb29ubGVmdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwaGFycG9vbmxlZnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1cGhhcnBvb25sZWZ0OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFiZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwaGFycG9vbnJpZ2h0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdXBoYXJwb29ucmlnaHQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1cGhhcnBvb25yaWdodCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwaGFycG9vbnJpZ2h0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdXBoYXJwb29ucmlnaHQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMWJlIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1cGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVwbHVzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1cGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cHNpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdXBzaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVwc2kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cHNpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdXBzaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzYzUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cHNpaCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVwc2loIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXBzaWgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cHNpaDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVwc2loOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNkMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwc2lsb24iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1cHNpbG9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXBzaWxvbiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwc2lsb247IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1cHNpbG9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNjNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwdXBhcnJvd3MiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1cHVwYXJyb3dzIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXB1cGFycm93cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVwdXBhcnJvd3M7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1cHVwYXJyb3dzOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVyY29ybiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVyY29ybiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVyY29ybiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVyY29ybjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVyY29ybjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMWQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cmNvcm5lciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVyY29ybmVyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXJjb3JuZXIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cmNvcm5lcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVyY29ybmVyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjMxZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVyY3JvcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVyY3JvcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnVyY3JvcCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVyY3JvcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVyY3JvcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIzMGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cmluZyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVyaW5nIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXJpbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1cmluZzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVyaW5nOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE2ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVydHJpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdXJ0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1cnRyaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnVydHJpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdXJ0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWY5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHVzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1c2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHVzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2NhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXRkb3QiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1dGRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnV0ZG90IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXRkb3Q7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1dGRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1dGlsZGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1dGlsZGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1dGlsZGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1dGlsZGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1dGlsZGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTY5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXRyaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHV0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ1dHJpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXRyaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHV0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWI1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXRyaWYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1dHJpZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnV0cmlmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdXRyaWY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1dHJpZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YjQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1dWFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHV1YXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXVhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ1dWFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHV1YXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFjOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnV1bWwiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHV1bWwgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnV1bWw7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1dW1sOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnV3YW5nbGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB1d2FuZ2xlIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdXdhbmdsZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnV3YW5nbGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB1d2FuZ2xlOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjlhNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZBcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2QXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdkFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZBcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2QXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZCYXIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2QmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdkJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZCYXI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2QmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFlOCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZCYXJ2IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdkJhcnYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2QmFydiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZCYXJ2OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdkJhcnY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWU5IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdkRhc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2RGFzaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZEYXNoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdkRhc2g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2RGFzaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YW5ncnQiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2YW5ncnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2YW5ncnQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YW5ncnQ7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2YW5ncnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyOTljIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFyZXBzaWxvbiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZhcmVwc2lsb24gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2YXJlcHNpbG9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFyZXBzaWxvbjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZhcmVwc2lsb247IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2Y1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFya2FwcGEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2YXJrYXBwYSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZhcmthcHBhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFya2FwcGE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2YXJrYXBwYTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZjAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJub3RoaW5nIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmFybm90aGluZyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZhcm5vdGhpbmciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJub3RoaW5nOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmFybm90aGluZzsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyMDUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJwaGkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2YXJwaGkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2YXJwaGkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJwaGk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2YXJwaGk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2Q1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFycGkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2YXJwaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZhcnBpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFycGk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2YXJwaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAzZDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJwcm9wdG8iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2YXJwcm9wdG8gd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2YXJwcm9wdG8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJwcm9wdG87IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2YXJwcm9wdG87IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjFkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZhcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2YXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZhcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTk1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFycmhvIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmFycmhvIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdmFycmhvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFycmhvOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmFycmhvOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNmMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnNpZ21hIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmFyc2lnbWEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2YXJzaWdtYSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnNpZ21hOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmFyc2lnbWE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2MyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFyc3Vic2V0bmVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmFyc3Vic2V0bmVxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdmFyc3Vic2V0bmVxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmFyc3Vic2V0bmVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmFyc3Vic2V0bmVxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4YVx1ZmUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnN1YnNldG5lcXEiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2YXJzdWJzZXRuZXFxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdmFyc3Vic2V0bmVxcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnN1YnNldG5lcXE7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2YXJzdWJzZXRuZXFxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjYlx1ZmUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnN1cHNldG5lcSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZhcnN1cHNldG5lcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZhcnN1cHNldG5lcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnN1cHNldG5lcTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZhcnN1cHNldG5lcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOGJcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJzdXBzZXRuZXFxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmFyc3Vwc2V0bmVxcSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZhcnN1cHNldG5lcXEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJzdXBzZXRuZXFxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmFyc3Vwc2V0bmVxcTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhY2NcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJ0aGV0YSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZhcnRoZXRhIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdmFydGhldGEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJ0aGV0YTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZhcnRoZXRhOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNkMSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnRyaWFuZ2xlbGVmdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZhcnRyaWFuZ2xlbGVmdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZhcnRyaWFuZ2xlbGVmdCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZhcnRyaWFuZ2xlbGVmdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZhcnRyaWFuZ2xlbGVmdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYjIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJ0cmlhbmdsZXJpZ2h0IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmFydHJpYW5nbGVyaWdodCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZhcnRyaWFuZ2xlcmlnaHQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2YXJ0cmlhbmdsZXJpZ2h0OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmFydHJpYW5nbGVyaWdodDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2Y3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2Y3kgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2Y3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2Y3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2Y3k7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwNDMyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmRhc2giLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2ZGFzaCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZkYXNoIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmRhc2g7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2ZGFzaDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYTIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2ZWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2ZWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2ZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2ZWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2ZWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmVlYmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmVlYmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdmVlYmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmVlYmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmVlYmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiYiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZlZWVxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmVlZXEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2ZWVlcSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZlZWVxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmVlZXE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjVhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmVsbGlwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdmVsbGlwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdmVsbGlwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmVsbGlwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdmVsbGlwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJlZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZlcmJhciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZlcmJhciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZlcmJhciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZlcmJhcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZlcmJhcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJ8IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmVydCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZlcnQgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2ZXJ0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdmVydDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZlcnQ7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAifCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMzMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2bHRyaSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZsdHJpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdmx0cmkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2bHRyaTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZsdHJpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJiMiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZuc3ViIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdm5zdWIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2bnN1YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZuc3ViOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdm5zdWI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjgyXHUyMGQyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdm5zdXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2bnN1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZuc3VwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdm5zdXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2bnN1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyODNcdTIwZDIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2b3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdm9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2b3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdm9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2cHJvcCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZwcm9wIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdnByb3AiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2cHJvcDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZwcm9wOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjIxZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZydHJpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdnJ0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2cnRyaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZydHJpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdnJ0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmIzIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdnNjciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZzY3Igd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2c2NyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdnNjcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZzY3I7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkY2NiIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdnN1Ym5FIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdnN1Ym5FIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdnN1Ym5FIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdnN1Ym5FOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdnN1Ym5FOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmFjYlx1ZmUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZzdWJuZSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHZzdWJuZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnZzdWJuZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZzdWJuZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHZzdWJuZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyOGFcdWZlMDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2c3VwbkUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2c3VwbkUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ2c3VwbkUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ2c3VwbkU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2c3VwbkU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYWNjXHVmZTAwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdnN1cG5lIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogdnN1cG5lIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdnN1cG5lIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImdnN1cG5lOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogdnN1cG5lOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI4Ylx1ZmUwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZ6aWd6YWciLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB2emlnemFnIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImdnppZ3phZyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnZ6aWd6YWc7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB2emlnemFnOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1Mjk5YSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndjaXJjIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogd2NpcmMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ3Y2lyYyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndjaXJjOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogd2NpcmM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTc1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd2VkYmFyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogd2VkYmFyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImd2VkYmFyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd2VkYmFyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogd2VkYmFyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmE1ZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndlZGdlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogd2VkZ2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ3ZWRnZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndlZGdlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogd2VkZ2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMjI3IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd2VkZ2VxIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogd2VkZ2VxIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImd2VkZ2VxIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd2VkZ2VxOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogd2VkZ2VxOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI1OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndlaWVycCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHdlaWVycCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJndlaWVycCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndlaWVycDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHdlaWVycDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ3ZnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB3ZnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ3ZnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ3ZnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB3ZnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDM0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd29wZiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHdvcGYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ3b3BmIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd29wZjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHdvcGY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHVkODM1XHVkZDY4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd3AiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB3cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJndwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImd3A7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB3cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIxMTgiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ3ciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHdyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImd3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ3cjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHdyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjI0MCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndyZWF0aCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHdyZWF0aCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJndyZWF0aCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJndyZWF0aDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHdyZWF0aDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyNDAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ3c2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogd3NjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJndzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ3c2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogd3Njcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjY2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4Y2FwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeGNhcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhjYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4Y2FwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeGNhcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4Y2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHhjaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeGNpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4Y2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHhjaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjVlZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhjdXAiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4Y3VwIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeGN1cCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhjdXA7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4Y3VwOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjJjMyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhkdHJpIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeGR0cmkgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ4ZHRyaSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhkdHJpOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeGR0cmk7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyNWJkIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeGZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeGZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeGZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeGZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeGZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQzNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhoQXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeGhBcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ4aEFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhoQXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeGhBcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2ZhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeGhhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4aGFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhoYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeGhhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4aGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZjciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4aSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHhpIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeGkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4aTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHhpOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDNiZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhsQXJyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeGxBcnIgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ4bEFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhsQXJyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeGxBcnI7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyN2Y4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeGxhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4bGFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhsYXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeGxhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4bGFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZjUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4bWFwIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeG1hcCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhtYXAiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4bWFwOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeG1hcDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4bmlzIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeG5pcyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhuaXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4bmlzOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeG5pczsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyZmIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4b2RvdCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHhvZG90IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeG9kb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4b2RvdDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHhvZG90OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MmEwMCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4b3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeG9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4b3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ2OSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhvcGx1cyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHhvcGx1cyB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhvcGx1cyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhvcGx1czsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHhvcGx1czsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMDEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4b3RpbWUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4b3RpbWUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ4b3RpbWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4b3RpbWU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4b3RpbWU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTAyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeHJBcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4ckFyciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhyQXJyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeHJBcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4ckFycjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI3ZjkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4cmFyciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHhyYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeHJhcnIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4cmFycjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHhyYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjdmNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4c2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeHNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4c2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNjZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhzcWN1cCIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHhzcWN1cCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnhzcWN1cCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnhzcWN1cDsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHhzcWN1cDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTJhMDYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4dXBsdXMiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4dXBsdXMgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ4dXBsdXMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4dXBsdXM7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4dXBsdXM7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyYTA0IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeHV0cmkiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4dXRyaSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnh1dHJpIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeHV0cmk7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4dXRyaTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTI1YjMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4dmVlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeHZlZSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnh2ZWUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4dmVlOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeHZlZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIyYzEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4d2VkZ2UiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB4d2VkZ2Ugd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ4d2VkZ2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ4d2VkZ2U7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB4d2VkZ2U7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMmMwIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeWFjdXRlIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB5YWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBmZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnlhY3V0ZTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHlhY3V0ZTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZmQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5YWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeWFjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnlhY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5YWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeWFjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5Y2lyYyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHljaXJjIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImeWNpcmMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5Y2lyYzsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHljaXJjOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE3NyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnljeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHljeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnljeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnljeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHljeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NGIiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5ZW4iLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHllbiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMGE1IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImeWVuOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeWVuOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDBhNSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnlmciIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHlmciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnlmciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnlmcjsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHlmcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkMzYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5aWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeWljeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnlpY3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5aWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeWljeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NTciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5b3BmIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeW9wZiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnlvcGYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5b3BmOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeW9wZjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRkNmEiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5c2NyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeXNjciB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnlzY3IiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5c2NyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeXNjcjsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MzVcdWRjY2UiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5dWN5IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogeXVjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnl1Y3kiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5dWN5OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeXVjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0NGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5dW1sIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB5dW1sIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ5dW1sOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogeXVtbDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAwZmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6YWN1dGUiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB6YWN1dGUgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ6YWN1dGUiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6YWN1dGU7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB6YWN1dGU7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwMTdhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImemNhcm9uIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogemNhcm9uIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImemNhcm9uIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImemNhcm9uOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogemNhcm9uOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDE3ZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpjeSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHpjeSB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnpjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpjeTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHpjeTsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTA0MzciCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6ZG90IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogemRvdCB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnpkb3QiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6ZG90OyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogemRvdDsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTAxN2MiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6ZWV0cmYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB6ZWV0cmYgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ6ZWV0cmYiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6ZWV0cmY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB6ZWV0cmY7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUyMTI4IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImemV0YSIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHpldGEgd2l0aG91dCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgIlBhcnNlRXJyb3IiLCAKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIiZ6ZXRhIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImemV0YTsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHpldGE7IHdpdGggYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiXHUwM2I2IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImemZyIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogemZyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImemZyIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwgCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnB1dCI6ICImemZyOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogemZyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQzNyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpoY3kiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB6aGN5IHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImemhjeSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpoY3k7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB6aGN5OyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MDQzNiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnppZ3JhcnIiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB6aWdyYXJyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImemlncmFyciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnppZ3JhcnI7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB6aWdyYXJyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1MjFkZCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpvcGYiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB6b3BmIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImem9wZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpvcGY7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB6b3BmOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGQ2YiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpzY3IiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJCYWQgbmFtZWQgZW50aXR5OiB6c2NyIHdpdGhvdXQgYSBzZW1pLWNvbG9uIiwgCisgICAgICAgICAgICAib3V0cHV0IjogWworICAgICAgICAgICAgICAgICJQYXJzZUVycm9yIiwgCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICImenNjciIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnpzY3I7IiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmFtZWQgZW50aXR5OiB6c2NyOyB3aXRoIGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICJDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgIlx1ZDgzNVx1ZGNjZiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnp3aiIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkJhZCBuYW1lZCBlbnRpdHk6IHp3aiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnp3aiIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBdCisgICAgICAgIH0sIAorICAgICAgICB7CisgICAgICAgICAgICAiaW5wdXQiOiAiJnp3ajsiLCAKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYW1lZCBlbnRpdHk6IHp3ajsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMGQiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6d25qIiwgCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQmFkIG5hbWVkIGVudGl0eTogenduaiB3aXRob3V0IGEgc2VtaS1jb2xvbiIsIAorICAgICAgICAgICAgIm91dHB1dCI6IFsKKyAgICAgICAgICAgICAgICAiUGFyc2VFcnJvciIsIAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlciIsIAorICAgICAgICAgICAgICAgICAgICAiJnp3bmoiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9LCAKKyAgICAgICAgeworICAgICAgICAgICAgImlucHV0IjogIiZ6d25qOyIsIAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hbWVkIGVudGl0eTogenduajsgd2l0aCBhIHNlbWktY29sb24iLCAKKyAgICAgICAgICAgICJvdXRwdXQiOiBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgCisgICAgICAgICAgICAgICAgICAgICJcdTIwMGMiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vbnVtZXJpY0VudGl0aWVzLnRlc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL251bWVyaWNFbnRpdGllcy50ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2YzgyMjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL251bWVyaWNFbnRpdGllcy50ZXN0CkBAIC0wLDAgKzEsMTMxMyBAQAoreyJ0ZXN0cyI6IFsKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMDAiLAorImlucHV0IjogIiYjeDAwMDA7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAwMSIsCisiaW5wdXQiOiAiJiN4MDAwMTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDAyIiwKKyJpbnB1dCI6ICImI3gwMDAyOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDAyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMDMiLAorImlucHV0IjogIiYjeDAwMDM7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMDMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAwNCIsCisiaW5wdXQiOiAiJiN4MDAwNDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwNCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDA1IiwKKyJpbnB1dCI6ICImI3gwMDA1OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDA1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMDYiLAorImlucHV0IjogIiYjeDAwMDY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMDYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAwNyIsCisiaW5wdXQiOiAiJiN4MDAwNzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwNyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDA4IiwKKyJpbnB1dCI6ICImI3gwMDA4OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDA4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMEIiLAorImlucHV0IjogIiYjeDAwMGI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMGIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAwRSIsCisiaW5wdXQiOiAiJiN4MDAwZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwZSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDBGIiwKKyJpbnB1dCI6ICImI3gwMDBmOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDBmIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMTAiLAorImlucHV0IjogIiYjeDAwMTA7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMTAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAxMSIsCisiaW5wdXQiOiAiJiN4MDAxMTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDEyIiwKKyJpbnB1dCI6ICImI3gwMDEyOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDEyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMTMiLAorImlucHV0IjogIiYjeDAwMTM7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMTMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAxNCIsCisiaW5wdXQiOiAiJiN4MDAxNDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxNCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDE1IiwKKyJpbnB1dCI6ICImI3gwMDE1OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDE1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMTYiLAorImlucHV0IjogIiYjeDAwMTY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMTYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAxNyIsCisiaW5wdXQiOiAiJiN4MDAxNzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxNyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDE4IiwKKyJpbnB1dCI6ICImI3gwMDE4OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDE4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMTkiLAorImlucHV0IjogIiYjeDAwMTk7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMTkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAxQSIsCisiaW5wdXQiOiAiJiN4MDAxYTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDFCIiwKKyJpbnB1dCI6ICImI3gwMDFiOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDFiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMUMiLAorImlucHV0IjogIiYjeDAwMWM7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMWMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAxRCIsCisiaW5wdXQiOiAiJiN4MDAxZDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxZCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDFFIiwKKyJpbnB1dCI6ICImI3gwMDFlOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDFlIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMUYiLAorImlucHV0IjogIiYjeDAwMWY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMWYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA3RiIsCisiaW5wdXQiOiAiJiN4MDA3ZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDA3ZiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStEODAwIiwKKyJpbnB1dCI6ICImI3hkODAwOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0RGRkYiLAorImlucHV0IjogIiYjeGRmZmY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkREMCIsCisiaW5wdXQiOiAiJiN4ZmRkMDsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRkMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREQxIiwKKyJpbnB1dCI6ICImI3hmZGQxOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGQxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERDIiLAorImlucHV0IjogIiYjeGZkZDI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZDIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkREMyIsCisiaW5wdXQiOiAiJiN4ZmRkMzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRkMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREQ0IiwKKyJpbnB1dCI6ICImI3hmZGQ0OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGQ0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERDUiLAorImlucHV0IjogIiYjeGZkZDU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZDUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRENiIsCisiaW5wdXQiOiAiJiN4ZmRkNjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRkNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREQ3IiwKKyJpbnB1dCI6ICImI3hmZGQ3OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGQ3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERDgiLAorImlucHV0IjogIiYjeGZkZDg7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZDgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkREOSIsCisiaW5wdXQiOiAiJiN4ZmRkOTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRkOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGRERBIiwKKyJpbnB1dCI6ICImI3hmZGRhOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGRhIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZEREIiLAorImlucHV0IjogIiYjeGZkZGI7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZGIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkREQyIsCisiaW5wdXQiOiAiJiN4ZmRkYzsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRkYyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREREIiwKKyJpbnB1dCI6ICImI3hmZGRkOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGRkIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZEREUiLAorImlucHV0IjogIiYjeGZkZGU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZGUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRERiIsCisiaW5wdXQiOiAiJiN4ZmRkZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRkZiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREUwIiwKKyJpbnB1dCI6ICImI3hmZGUwOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGUwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERTEiLAorImlucHV0IjogIiYjeGZkZTE7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZTEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRFMiIsCisiaW5wdXQiOiAiJiN4ZmRlMjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRlMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREUzIiwKKyJpbnB1dCI6ICImI3hmZGUzOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGUzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERTQiLAorImlucHV0IjogIiYjeGZkZTQ7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZTQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRFNSIsCisiaW5wdXQiOiAiJiN4ZmRlNTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRlNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREU2IiwKKyJpbnB1dCI6ICImI3hmZGU2OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGU2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERTciLAorImlucHV0IjogIiYjeGZkZTc7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZTciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRFOCIsCisiaW5wdXQiOiAiJiN4ZmRlODsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRlOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREU5IiwKKyJpbnB1dCI6ICImI3hmZGU5OyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGU5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERUEiLAorImlucHV0IjogIiYjeGZkZWE7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZWEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRFQiIsCisiaW5wdXQiOiAiJiN4ZmRlYjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRlYiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREVDIiwKKyJpbnB1dCI6ICImI3hmZGVjOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGVjIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERUQiLAorImlucHV0IjogIiYjeGZkZWQ7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZkZWQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRFRSIsCisiaW5wdXQiOiAiJiN4ZmRlZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmRlZSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGREVGIiwKKyJpbnB1dCI6ICImI3hmZGVmOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVmZGVmIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZGRkUiLAorImlucHV0IjogIiYjeGZmZmU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdWZmZmUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkZGRiIsCisiaW5wdXQiOiAiJiN4ZmZmZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1ZmZmZiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSsxRkZGRSIsCisiaW5wdXQiOiAiJiN4MWZmZmU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUQ4M0ZcdURGRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMUZGRkYiLAorImlucHV0IjogIiYjeDFmZmZmOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEODNGXHVERkZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzJGRkZFIiwKKyJpbnB1dCI6ICImI3gyZmZmZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDg3Rlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSsyRkZGRiIsCisiaW5wdXQiOiAiJiN4MmZmZmY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUQ4N0ZcdURGRkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrM0ZGRkUiLAorImlucHV0IjogIiYjeDNmZmZlOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEOEJGXHVERkZFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzNGRkZGIiwKKyJpbnB1dCI6ICImI3gzZmZmZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDhCRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSs0RkZGRSIsCisiaW5wdXQiOiAiJiN4NGZmZmU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUQ4RkZcdURGRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNEZGRkYiLAorImlucHV0IjogIiYjeDRmZmZmOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEOEZGXHVERkZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzVGRkZFIiwKKyJpbnB1dCI6ICImI3g1ZmZmZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDkzRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSs1RkZGRiIsCisiaW5wdXQiOiAiJiN4NWZmZmY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUQ5M0ZcdURGRkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNkZGRkUiLAorImlucHV0IjogIiYjeDZmZmZlOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEOTdGXHVERkZFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzZGRkZGIiwKKyJpbnB1dCI6ICImI3g2ZmZmZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDk3Rlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSs3RkZGRSIsCisiaW5wdXQiOiAiJiN4N2ZmZmU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUQ5QkZcdURGRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrN0ZGRkYiLAorImlucHV0IjogIiYjeDdmZmZmOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEOUJGXHVERkZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzhGRkZFIiwKKyJpbnB1dCI6ICImI3g4ZmZmZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDlGRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSs4RkZGRiIsCisiaW5wdXQiOiAiJiN4OGZmZmY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUQ5RkZcdURGRkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrOUZGRkUiLAorImlucHV0IjogIiYjeDlmZmZlOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEQTNGXHVERkZFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzlGRkZGIiwKKyJpbnB1dCI6ICImI3g5ZmZmZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REEzRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStBRkZGRSIsCisiaW5wdXQiOiAiJiN4YWZmZmU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdURBN0ZcdURGRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQUZGRkYiLAorImlucHV0IjogIiYjeGFmZmZmOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEQTdGXHVERkZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0JGRkZFIiwKKyJpbnB1dCI6ICImI3hiZmZmZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REFCRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStCRkZGRiIsCisiaW5wdXQiOiAiJiN4YmZmZmY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdURBQkZcdURGRkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQ0ZGRkUiLAorImlucHV0IjogIiYjeGNmZmZlOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEQUZGXHVERkZFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0NGRkZGIiwKKyJpbnB1dCI6ICImI3hjZmZmZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REFGRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStERkZGRSIsCisiaW5wdXQiOiAiJiN4ZGZmZmU7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdURCM0ZcdURGRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrREZGRkYiLAorImlucHV0IjogIiYjeGRmZmZmOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEQjNGXHVERkZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0VGRkZFIiwKKyJpbnB1dCI6ICImI3hlZmZmZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REI3Rlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStFRkZGRiIsCisiaW5wdXQiOiAiJiN4ZWZmZmY7IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdURCN0ZcdURGRkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkZGRkUiLAorImlucHV0IjogIiYjeGZmZmZlOyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEQkJGXHVERkZFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZGRkZGIiwKKyJpbnB1dCI6ICImI3hmZmZmZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REJCRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSsxMEZGRkUiLAorImlucHV0IjogIiYjeDEwZmZmZTsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REJGRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSsxMEZGRkYiLAorImlucHV0IjogIiYjeDEwZmZmZjsiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REJGRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAwOSIsCisiaW5wdXQiOiAiJiN4MDAwOTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMDkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMEEiLAorImlucHV0IjogIiYjeDAwMGE7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDBBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDIwIiwKKyJpbnB1dCI6ICImI3gwMDIwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAyMSIsCisiaW5wdXQiOiAiJiN4MDAyMTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMjEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMjIiLAorImlucHV0IjogIiYjeDAwMjI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDIyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDIzIiwKKyJpbnB1dCI6ICImI3gwMDIzOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAyNCIsCisiaW5wdXQiOiAiJiN4MDAyNDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMjQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMjUiLAorImlucHV0IjogIiYjeDAwMjU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDI1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDI2IiwKKyJpbnB1dCI6ICImI3gwMDI2OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAyNyIsCisiaW5wdXQiOiAiJiN4MDAyNzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMjciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMjgiLAorImlucHV0IjogIiYjeDAwMjg7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDI4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDI5IiwKKyJpbnB1dCI6ICImI3gwMDI5OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAyQSIsCisiaW5wdXQiOiAiJiN4MDAyYTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMkEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMkIiLAorImlucHV0IjogIiYjeDAwMmI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDJCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDJDIiwKKyJpbnB1dCI6ICImI3gwMDJjOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAyRCIsCisiaW5wdXQiOiAiJiN4MDAyZDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMkUiLAorImlucHV0IjogIiYjeDAwMmU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDJFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDJGIiwKKyJpbnB1dCI6ICImI3gwMDJmOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAzMCIsCisiaW5wdXQiOiAiJiN4MDAzMDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMzAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMzEiLAorImlucHV0IjogIiYjeDAwMzE7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDMxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDMyIiwKKyJpbnB1dCI6ICImI3gwMDMyOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAzMyIsCisiaW5wdXQiOiAiJiN4MDAzMzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMzMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMzQiLAorImlucHV0IjogIiYjeDAwMzQ7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDM0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDM1IiwKKyJpbnB1dCI6ICImI3gwMDM1OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAzNiIsCisiaW5wdXQiOiAiJiN4MDAzNjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMzYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwMzciLAorImlucHV0IjogIiYjeDAwMzc7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDM3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDM4IiwKKyJpbnB1dCI6ICImI3gwMDM4OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAzOSIsCisiaW5wdXQiOiAiJiN4MDAzOTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMzkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwM0EiLAorImlucHV0IjogIiYjeDAwM2E7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDNBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDNCIiwKKyJpbnB1dCI6ICImI3gwMDNiOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAzQyIsCisiaW5wdXQiOiAiJiN4MDAzYzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwM0MiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwM0QiLAorImlucHV0IjogIiYjeDAwM2Q7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDNEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDNFIiwKKyJpbnB1dCI6ICImI3gwMDNlOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDAzRiIsCisiaW5wdXQiOiAiJiN4MDAzZjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwM0YiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNDAiLAorImlucHV0IjogIiYjeDAwNDA7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDQwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDQxIiwKKyJpbnB1dCI6ICImI3gwMDQxOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0MSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA0MiIsCisiaW5wdXQiOiAiJiN4MDA0MjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNDIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNDMiLAorImlucHV0IjogIiYjeDAwNDM7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDQzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDQ0IiwKKyJpbnB1dCI6ICImI3gwMDQ0OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0NCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA0NSIsCisiaW5wdXQiOiAiJiN4MDA0NTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNDUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNDYiLAorImlucHV0IjogIiYjeDAwNDY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDQ2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDQ3IiwKKyJpbnB1dCI6ICImI3gwMDQ3OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0NyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA0OCIsCisiaW5wdXQiOiAiJiN4MDA0ODsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNDgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNDkiLAorImlucHV0IjogIiYjeDAwNDk7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDQ5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDRBIiwKKyJpbnB1dCI6ICImI3gwMDRhOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0QSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA0QiIsCisiaW5wdXQiOiAiJiN4MDA0YjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNEIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNEMiLAorImlucHV0IjogIiYjeDAwNGM7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDRDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDREIiwKKyJpbnB1dCI6ICImI3gwMDRkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0RCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA0RSIsCisiaW5wdXQiOiAiJiN4MDA0ZTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNEUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNEYiLAorImlucHV0IjogIiYjeDAwNGY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDRGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDUwIiwKKyJpbnB1dCI6ICImI3gwMDUwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1MCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA1MSIsCisiaW5wdXQiOiAiJiN4MDA1MTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNTEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNTIiLAorImlucHV0IjogIiYjeDAwNTI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDUyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDUzIiwKKyJpbnB1dCI6ICImI3gwMDUzOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1MyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA1NCIsCisiaW5wdXQiOiAiJiN4MDA1NDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNTQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNTUiLAorImlucHV0IjogIiYjeDAwNTU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDU1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDU2IiwKKyJpbnB1dCI6ICImI3gwMDU2OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1NiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA1NyIsCisiaW5wdXQiOiAiJiN4MDA1NzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNTciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNTgiLAorImlucHV0IjogIiYjeDAwNTg7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDU4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDU5IiwKKyJpbnB1dCI6ICImI3gwMDU5OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1OSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA1QSIsCisiaW5wdXQiOiAiJiN4MDA1YTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNUEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNUIiLAorImlucHV0IjogIiYjeDAwNWI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDVCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDVDIiwKKyJpbnB1dCI6ICImI3gwMDVjOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1QyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA1RCIsCisiaW5wdXQiOiAiJiN4MDA1ZDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNUQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNUUiLAorImlucHV0IjogIiYjeDAwNWU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDVFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDVGIiwKKyJpbnB1dCI6ICImI3gwMDVmOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1RiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA2MCIsCisiaW5wdXQiOiAiJiN4MDA2MDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNjAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNjEiLAorImlucHV0IjogIiYjeDAwNjE7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDYxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDYyIiwKKyJpbnB1dCI6ICImI3gwMDYyOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2MiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA2MyIsCisiaW5wdXQiOiAiJiN4MDA2MzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNjMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNjQiLAorImlucHV0IjogIiYjeDAwNjQ7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDY0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDY1IiwKKyJpbnB1dCI6ICImI3gwMDY1OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2NSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA2NiIsCisiaW5wdXQiOiAiJiN4MDA2NjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNjYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNjciLAorImlucHV0IjogIiYjeDAwNjc7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDY3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDY4IiwKKyJpbnB1dCI6ICImI3gwMDY4OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2OCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA2OSIsCisiaW5wdXQiOiAiJiN4MDA2OTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNjkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNkEiLAorImlucHV0IjogIiYjeDAwNmE7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDZBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDZCIiwKKyJpbnB1dCI6ICImI3gwMDZiOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2QiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA2QyIsCisiaW5wdXQiOiAiJiN4MDA2YzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNkMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNkQiLAorImlucHV0IjogIiYjeDAwNmQ7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDZFIiwKKyJpbnB1dCI6ICImI3gwMDZlOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2RSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA2RiIsCisiaW5wdXQiOiAiJiN4MDA2ZjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNzAiLAorImlucHV0IjogIiYjeDAwNzA7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDcwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDcxIiwKKyJpbnB1dCI6ICImI3gwMDcxOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3MSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA3MiIsCisiaW5wdXQiOiAiJiN4MDA3MjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNzIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNzMiLAorImlucHV0IjogIiYjeDAwNzM7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDczIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDc0IiwKKyJpbnB1dCI6ICImI3gwMDc0OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3NCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA3NSIsCisiaW5wdXQiOiAiJiN4MDA3NTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNzUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNzYiLAorImlucHV0IjogIiYjeDAwNzY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDc2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDc3IiwKKyJpbnB1dCI6ICImI3gwMDc3OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3NyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA3OCIsCisiaW5wdXQiOiAiJiN4MDA3ODsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNzgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwNzkiLAorImlucHV0IjogIiYjeDAwNzk7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDc5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDdBIiwKKyJpbnB1dCI6ICImI3gwMDdhOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3QSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA3QiIsCisiaW5wdXQiOiAiJiN4MDA3YjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwN0IiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwN0MiLAorImlucHV0IjogIiYjeDAwN2M7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDdDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMDdEIiwKKyJpbnB1dCI6ICImI3gwMDdkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3RCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDA3RSIsCisiaW5wdXQiOiAiJiN4MDA3ZTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwN0UiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQTAiLAorImlucHV0IjogIiYjeDAwYTA7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEEwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEExIiwKKyJpbnB1dCI6ICImI3gwMGExOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBBMiIsCisiaW5wdXQiOiAiJiN4MDBhMjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQTIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQTMiLAorImlucHV0IjogIiYjeDAwYTM7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEEzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEE0IiwKKyJpbnB1dCI6ICImI3gwMGE0OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBNCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBBNSIsCisiaW5wdXQiOiAiJiN4MDBhNTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQTUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQTYiLAorImlucHV0IjogIiYjeDAwYTY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEE2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEE3IiwKKyJpbnB1dCI6ICImI3gwMGE3OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBNyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBBOCIsCisiaW5wdXQiOiAiJiN4MDBhODsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQTgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQTkiLAorImlucHV0IjogIiYjeDAwYTk7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEE5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEFBIiwKKyJpbnB1dCI6ICImI3gwMGFhOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBBQiIsCisiaW5wdXQiOiAiJiN4MDBhYjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQUIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQUMiLAorImlucHV0IjogIiYjeDAwYWM7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEFDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEFEIiwKKyJpbnB1dCI6ICImI3gwMGFkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBBRSIsCisiaW5wdXQiOiAiJiN4MDBhZTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQUUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQUYiLAorImlucHV0IjogIiYjeDAwYWY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEFGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEIwIiwKKyJpbnB1dCI6ICImI3gwMGIwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBCMSIsCisiaW5wdXQiOiAiJiN4MDBiMTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQjEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQjIiLAorImlucHV0IjogIiYjeDAwYjI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEIyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEIzIiwKKyJpbnB1dCI6ICImI3gwMGIzOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBCNCIsCisiaW5wdXQiOiAiJiN4MDBiNDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQjQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQjUiLAorImlucHV0IjogIiYjeDAwYjU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEI1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEI2IiwKKyJpbnB1dCI6ICImI3gwMGI2OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBCNyIsCisiaW5wdXQiOiAiJiN4MDBiNzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQjciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQjgiLAorImlucHV0IjogIiYjeDAwYjg7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEI4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEI5IiwKKyJpbnB1dCI6ICImI3gwMGI5OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBCQSIsCisiaW5wdXQiOiAiJiN4MDBiYTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQkEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQkIiLAorImlucHV0IjogIiYjeDAwYmI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEJCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEJDIiwKKyJpbnB1dCI6ICImI3gwMGJjOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBCRCIsCisiaW5wdXQiOiAiJiN4MDBiZDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQkUiLAorImlucHV0IjogIiYjeDAwYmU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEJFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEJGIiwKKyJpbnB1dCI6ICImI3gwMGJmOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBDMCIsCisiaW5wdXQiOiAiJiN4MDBjMDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQzAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQzEiLAorImlucHV0IjogIiYjeDAwYzE7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEMxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEMyIiwKKyJpbnB1dCI6ICImI3gwMGMyOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBDMyIsCisiaW5wdXQiOiAiJiN4MDBjMzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQzMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQzQiLAorImlucHV0IjogIiYjeDAwYzQ7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEM0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEM1IiwKKyJpbnB1dCI6ICImI3gwMGM1OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBDNiIsCisiaW5wdXQiOiAiJiN4MDBjNjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQzYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQzciLAorImlucHV0IjogIiYjeDAwYzc7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEM3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEM4IiwKKyJpbnB1dCI6ICImI3gwMGM4OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBDOSIsCisiaW5wdXQiOiAiJiN4MDBjOTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQzkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQ0EiLAorImlucHV0IjogIiYjeDAwY2E7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMENBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMENCIiwKKyJpbnB1dCI6ICImI3gwMGNiOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBDQyIsCisiaW5wdXQiOiAiJiN4MDBjYzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQ0MiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwQ0QiLAorImlucHV0IjogIiYjeDAwY2Q7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMENEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMENFIiwKKyJpbnB1dCI6ICImI3gwMGNlOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBDRiIsCisiaW5wdXQiOiAiJiN4MDBjZjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQ0YiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRDAiLAorImlucHV0IjogIiYjeDAwZDA7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEQwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEQxIiwKKyJpbnB1dCI6ICImI3gwMGQxOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBEMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBEMiIsCisiaW5wdXQiOiAiJiN4MDBkMjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRDIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRDMiLAorImlucHV0IjogIiYjeDAwZDM7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEQzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEQ0IiwKKyJpbnB1dCI6ICImI3gwMGQ0OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBENCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBENSIsCisiaW5wdXQiOiAiJiN4MDBkNTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRDUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRDYiLAorImlucHV0IjogIiYjeDAwZDY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEQ2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEQ3IiwKKyJpbnB1dCI6ICImI3gwMGQ3OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBENyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBEOCIsCisiaW5wdXQiOiAiJiN4MDBkODsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRDgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRDkiLAorImlucHV0IjogIiYjeDAwZDk7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEQ5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMERBIiwKKyJpbnB1dCI6ICImI3gwMGRhOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBEQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBEQiIsCisiaW5wdXQiOiAiJiN4MDBkYjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwREIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwREMiLAorImlucHV0IjogIiYjeDAwZGM7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMERDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEREIiwKKyJpbnB1dCI6ICImI3gwMGRkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBERCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBERSIsCisiaW5wdXQiOiAiJiN4MDBkZTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwREUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwREYiLAorImlucHV0IjogIiYjeDAwZGY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMERGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEUwIiwKKyJpbnB1dCI6ICImI3gwMGUwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBFMSIsCisiaW5wdXQiOiAiJiN4MDBlMTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRTEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRTIiLAorImlucHV0IjogIiYjeDAwZTI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEUyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEUzIiwKKyJpbnB1dCI6ICImI3gwMGUzOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBFNCIsCisiaW5wdXQiOiAiJiN4MDBlNDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRTQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRTUiLAorImlucHV0IjogIiYjeDAwZTU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEU1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEU2IiwKKyJpbnB1dCI6ICImI3gwMGU2OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBFNyIsCisiaW5wdXQiOiAiJiN4MDBlNzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRTciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRTgiLAorImlucHV0IjogIiYjeDAwZTg7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEU4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEU5IiwKKyJpbnB1dCI6ICImI3gwMGU5OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBFQSIsCisiaW5wdXQiOiAiJiN4MDBlYTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRUEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRUIiLAorImlucHV0IjogIiYjeDAwZWI7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEVCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEVDIiwKKyJpbnB1dCI6ICImI3gwMGVjOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBFRCIsCisiaW5wdXQiOiAiJiN4MDBlZDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRUQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRUUiLAorImlucHV0IjogIiYjeDAwZWU7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEVFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEVGIiwKKyJpbnB1dCI6ICImI3gwMGVmOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBGMCIsCisiaW5wdXQiOiAiJiN4MDBmMDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRjAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRjEiLAorImlucHV0IjogIiYjeDAwZjE7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEYxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEYyIiwKKyJpbnB1dCI6ICImI3gwMGYyOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBGMyIsCisiaW5wdXQiOiAiJiN4MDBmMzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRjMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRjQiLAorImlucHV0IjogIiYjeDAwZjQ7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEY0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEY1IiwKKyJpbnB1dCI6ICImI3gwMGY1OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBGNiIsCisiaW5wdXQiOiAiJiN4MDBmNjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRjYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRjciLAorImlucHV0IjogIiYjeDAwZjc7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEY3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEY4IiwKKyJpbnB1dCI6ICImI3gwMGY4OyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBGOSIsCisiaW5wdXQiOiAiJiN4MDBmOTsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRjkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRkEiLAorImlucHV0IjogIiYjeDAwZmE7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEZBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEZCIiwKKyJpbnB1dCI6ICImI3gwMGZiOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBGQyIsCisiaW5wdXQiOiAiJiN4MDBmYzsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRkMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVKzAwRkQiLAorImlucHV0IjogIiYjeDAwZmQ7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSswMEZFIiwKKyJpbnB1dCI6ICImI3gwMGZlOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMDBGRiIsCisiaW5wdXQiOiAiJiN4MDBmZjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0Q3RkYiLAorImlucHV0IjogIiYjeGQ3ZmY7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEN0ZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStFMDAwIiwKKyJpbnB1dCI6ICImI3hlMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RTAwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkRDRiIsCisiaW5wdXQiOiAiJiN4ZmRjZjsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUZEQ0YiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIG51bWVyaWMgZW50aXR5IGNoYXJhY3RlciBVK0ZERjAiLAorImlucHV0IjogIiYjeGZkZjA7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVGREYwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVStGRkZEIiwKKyJpbnB1dCI6ICImI3hmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMTAwMDAiLAorImlucHV0IjogIiYjeDEwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDgwMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMUZGRkQiLAorImlucHV0IjogIiYjeDFmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDgzRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMjAwMDAiLAorImlucHV0IjogIiYjeDIwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDg0MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMkZGRkQiLAorImlucHV0IjogIiYjeDJmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDg3Rlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMzAwMDAiLAorImlucHV0IjogIiYjeDMwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDg4MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrM0ZGRkQiLAorImlucHV0IjogIiYjeDNmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDhCRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNDAwMDAiLAorImlucHV0IjogIiYjeDQwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDhDMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNEZGRkQiLAorImlucHV0IjogIiYjeDRmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDhGRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNTAwMDAiLAorImlucHV0IjogIiYjeDUwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDkwMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNUZGRkQiLAorImlucHV0IjogIiYjeDVmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDkzRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNjAwMDAiLAorImlucHV0IjogIiYjeDYwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDk0MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNkZGRkQiLAorImlucHV0IjogIiYjeDZmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDk3Rlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrNzAwMDAiLAorImlucHV0IjogIiYjeDcwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDk4MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrN0ZGRkQiLAorImlucHV0IjogIiYjeDdmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDlCRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrODAwMDAiLAorImlucHV0IjogIiYjeDgwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDlDMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrOEZGRkQiLAorImlucHV0IjogIiYjeDhmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDlGRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrOTAwMDAiLAorImlucHV0IjogIiYjeDkwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REEwMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrOUZGRkQiLAorImlucHV0IjogIiYjeDlmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REEzRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQTAwMDAiLAorImlucHV0IjogIiYjeGEwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REE0MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQUZGRkQiLAorImlucHV0IjogIiYjeGFmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REE3Rlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQjAwMDAiLAorImlucHV0IjogIiYjeGIwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REE4MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQkZGRkQiLAorImlucHV0IjogIiYjeGJmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REFCRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQzAwMDAiLAorImlucHV0IjogIiYjeGMwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REFDMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrQ0ZGRkQiLAorImlucHV0IjogIiYjeGNmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REFGRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRDAwMDAiLAorImlucHV0IjogIiYjeGQwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REIwMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrREZGRkQiLAorImlucHV0IjogIiYjeGRmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REIzRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRTAwMDAiLAorImlucHV0IjogIiYjeGUwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REI0MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRUZGRkQiLAorImlucHV0IjogIiYjeGVmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REI3Rlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRjAwMDAiLAorImlucHV0IjogIiYjeGYwMDAwOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REI4MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrRkZGRkQiLAorImlucHV0IjogIiYjeGZmZmZkOyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REJCRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgbnVtZXJpYyBlbnRpdHkgY2hhcmFjdGVyIFUrMTAwMDAwIiwKKyJpbnB1dCI6ICImI3gxMDAwMDA7IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEQkMwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBudW1lcmljIGVudGl0eSBjaGFyYWN0ZXIgVSsxMEZGRkQiLAorImlucHV0IjogIiYjeDEwZmZmZDsiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURCRkZcdURGRkQiXV19CisKK119CisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi9wZW5kaW5nU3BlY0NoYW5nZXMudGVzdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vcGVuZGluZ1NwZWNDaGFuZ2VzLnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI3ZGMzYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vcGVuZGluZ1NwZWNDaGFuZ2VzLnRlc3QKQEAgLTAsMCArMSw3IEBACit7InRlc3RzIjogWworCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tID4iLAorImlucHV0IjoiPCEtLS0tID4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCItLSA+Il1dfQorCitdfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi90ZXN0MS50ZXN0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi90ZXN0MS50ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkZTY2ZjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3Rlc3QxLnRlc3QKQEAgLTAsMCArMSwxOTYgQEAKK3sidGVzdHMiOiBbCisKK3siZGVzY3JpcHRpb24iOiJDb3JyZWN0IERvY3R5cGUgbG93ZXJjYXNlIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sPiIsCisib3V0cHV0IjpbWyJET0NUWVBFIiwgImh0bWwiLCBudWxsLCBudWxsLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiQ29ycmVjdCBEb2N0eXBlIHVwcGVyY2FzZSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgSFRNTD4iLAorIm91dHB1dCI6W1siRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkNvcnJlY3QgRG9jdHlwZSBtaXhlZCBjYXNlIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBIdE1sPiIsIAorIm91dHB1dCI6W1siRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkNvcnJlY3QgRG9jdHlwZSBjYXNlIHdpdGggRU9GIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBIdE1sIiwgCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiaHRtbCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiVHJ1bmNhdGVkIGRvY3R5cGUgc3RhcnQiLAorImlucHV0IjoiPCFET0M+IiwgCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiRE9DIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkRvY3R5cGUgaW4gZXJyb3IiLAorImlucHV0IjoiPCFET0NUWVBFIGZvbz4iLCAKKyJvdXRwdXQiOltbIkRPQ1RZUEUiLCAiZm9vIiwgbnVsbCwgbnVsbCwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlNpbmdsZSBTdGFydCBUYWciLAorImlucHV0IjoiPGg+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImgiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkVtcHR5IGVuZCB0YWciLAorImlucHV0IjoiPC8+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciJdfSwKKworeyJkZXNjcmlwdGlvbiI6IkVtcHR5IHN0YXJ0IHRhZyIsCisiaW5wdXQiOiI8PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8PiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJTdGFydCBUYWcgdy9hdHRyaWJ1dGUiLAorImlucHV0IjoiPGggYT0nYic+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImgiLCB7ImEiOiJiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJTdGFydCBUYWcgdy9hdHRyaWJ1dGUgbm8gcXVvdGVzIiwKKyJpbnB1dCI6IjxoIGE9Yj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiaCIsIHsiYSI6ImIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlN0YXJ0L0VuZCBUYWciLAorImlucHV0IjoiPGg+PC9oPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJoIiwge31dLCBbIkVuZFRhZyIsICJoIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlR3byB1bmNsb3NlZCBzdGFydCB0YWdzIiwKKyJpbnB1dCI6IjxwPk9uZTxwPlR3byIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJwIiwge31dLCBbIkNoYXJhY3RlciIsICJPbmUiXSwgWyJTdGFydFRhZyIsICJwIiwge31dLCBbIkNoYXJhY3RlciIsICJUd28iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW5kIFRhZyB3L2F0dHJpYnV0ZSIsCisiaW5wdXQiOiI8aD48L2ggYT0nYic+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImgiLCB7fV0sICJQYXJzZUVycm9yIiwgWyJFbmRUYWciLCAiaCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJNdWx0aXBsZSBhdHRzIiwKKyJpbnB1dCI6IjxoIGE9J2InIGM9J2QnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJoIiwgeyJhIjoiYiIsICJjIjoiZCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiTXVsdGlwbGUgYXR0cyBubyBzcGFjZSIsCisiaW5wdXQiOiI8aCBhPSdiJ2M9J2QnPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImgiLCB7ImEiOiJiIiwgImMiOiJkIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJSZXBlYXRlZCBhdHRyIiwKKyAiaW5wdXQiOiI8aCBhPSdiJyBhPSdkJz4iLAorICJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiaCIsIHsiYSI6ImIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlNpbXBsZSBjb21tZW50IiwKKyAiaW5wdXQiOiI8IS0tY29tbWVudC0tPiIsCisgIm91dHB1dCI6W1siQ29tbWVudCIsICJjb21tZW50Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkNvbW1lbnQsIENlbnRyYWwgZGFzaCBubyBzcGFjZSIsCisgImlucHV0IjoiPCEtLS0tLT4iLAorICJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkNvbW1lbnQsIHR3byBjZW50cmFsIGRhc2hlcyIsCisiaW5wdXQiOiI8IS0tIC0tY29tbWVudCAtLT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtLWNvbW1lbnQgIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlVuZmluaXNoZWQgY29tbWVudCIsCisiaW5wdXQiOiI8IS0tY29tbWVudCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiY29tbWVudCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJTdGFydCBvZiBhIGNvbW1lbnQiLAorImlucHV0IjoiPCEtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlNob3J0IGNvbW1lbnQiLAorICJpbnB1dCI6IjwhLS0+IiwKKyAib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlNob3J0IGNvbW1lbnQgdHdvIiwKKyAiaW5wdXQiOiI8IS0tLT4iLAorICJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiU2hvcnQgY29tbWVudCB0aHJlZSIsCisgImlucHV0IjoiPCEtLS0tPiIsCisgIm91dHB1dCI6W1siQ29tbWVudCIsICIiXV19LAorCisKK3siZGVzY3JpcHRpb24iOiJBbXBlcnNhbmQgRU9GIiwKKyJpbnB1dCI6IiYiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIiYiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiQW1wZXJzYW5kIGFtcGVyc2FuZCBFT0YiLAorImlucHV0IjoiJiYiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIiYmIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkFtcGVyc2FuZCBzcGFjZSBFT0YiLAorImlucHV0IjoiJiAiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIiYgIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlVuZmluaXNoZWQgZW50aXR5IiwKKyJpbnB1dCI6IiZmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIiZmIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkFtcGVyc2FuZCwgbnVtYmVyIHNpZ24iLAorImlucHV0IjoiJiMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiJiMiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiVW5maW5pc2hlZCBudW1lcmljIGVudGl0eSIsCisiaW5wdXQiOiImI3giLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiJiN4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkVudGl0eSB3aXRoIHRyYWlsaW5nIHNlbWljb2xvbiAoMSkiLAorImlucHV0IjoiSSdtICZub3Q7aXQiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwiSSdtIFx1MDBBQ2l0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkVudGl0eSB3aXRoIHRyYWlsaW5nIHNlbWljb2xvbiAoMikiLAorImlucHV0IjoiSSdtICZub3RpbjsiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwiSSdtIFx1MjIwOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbnRpdHkgd2l0aG91dCB0cmFpbGluZyBzZW1pY29sb24gKDEpIiwKKyJpbnB1dCI6IkknbSAmbm90aXQiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwiSSdtICJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDBBQ2l0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkVudGl0eSB3aXRob3V0IHRyYWlsaW5nIHNlbWljb2xvbiAoMikiLAorImlucHV0IjoiSSdtICZub3RpbiIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCJJJ20gIl0sICJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMEFDaW4iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiUGFydGlhbCBlbnRpdHkgbWF0Y2ggYXQgZW5kIG9mIGZpbGUiLAorImlucHV0IjoiSSdtICZubyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCJJJ20gIl0sICJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiJm5vIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ik5vbi1BU0NJSSBjaGFyYWN0ZXIgcmVmZXJlbmNlIG5hbWUiLAorImlucHV0IjoiJlx1MDBBQzsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiJlx1MDBBQzsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiQVNDSUkgZGVjaW1hbCBlbnRpdHkiLAorImlucHV0IjoiJiMwMDM2OyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCIkIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkFTQ0lJIGhleGFkZWNpbWFsIGVudGl0eSIsCisiaW5wdXQiOiImI3gzZjsiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwiPyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJIZXhhZGVjaW1hbCBlbnRpdHkgaW4gYXR0cmlidXRlIiwKKyJpbnB1dCI6IjxoIGE9JyYjeDNmOyc+PC9oPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJoIiwgeyJhIjoiPyJ9XSwgWyJFbmRUYWciLCAiaCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbnRpdHkgaW4gYXR0cmlidXRlIHdpdGhvdXQgc2VtaWNvbG9uIGVuZGluZyBpbiB4IiwKKyJpbnB1dCI6IjxoIGE9JyZub3R4Jz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJoIiwgeyJhIjoiJm5vdHgifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkVudGl0eSBpbiBhdHRyaWJ1dGUgd2l0aG91dCBzZW1pY29sb24gZW5kaW5nIGluIDEiLAorImlucHV0IjoiPGggYT0nJm5vdDEnPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImgiLCB7ImEiOiImbm90MSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW50aXR5IGluIGF0dHJpYnV0ZSB3aXRob3V0IHNlbWljb2xvbiBlbmRpbmcgaW4gaSIsCisiaW5wdXQiOiI8aCBhPScmbm90aSc+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiaCIsIHsiYSI6IiZub3RpIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbnRpdHkgaW4gYXR0cmlidXRlIHdpdGhvdXQgc2VtaWNvbG9uIiwKKyJpbnB1dCI6IjxoIGE9JyZDT1BZJz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJoIiwgeyJhIjoiXHUwMEE5In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJVbnF1b3RlZCBhdHRyaWJ1dGUgZW5kaW5nIGluIGFtcGVyc2FuZCIsCisiaW5wdXQiOiI8cyBvPSYgdD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCJzIix7Im8iOiImIiwidCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiVW5xdW90ZWQgYXR0cmlidXRlIGF0IGVuZCBvZiB0YWcgd2l0aCBmaW5hbCBjaGFyYWN0ZXIgb2YgJiwgd2l0aCB0YWcgZm9sbG93ZWQgYnkgY2hhcmFjdGVycyIsCisiaW5wdXQiOiI8YSBhPWEmPmZvbyIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYSYifV0sIFsiQ2hhcmFjdGVyIiwgImZvbyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJwbGFpbnRleHQgZWxlbWVudCIsCisgImlucHV0IjoiPHBsYWludGV4dD5mb29iYXIiLAorICJvdXRwdXQiOltbIlN0YXJ0VGFnIiwicGxhaW50ZXh0Iix7fV0sIFsiQ2hhcmFjdGVyIiwiZm9vYmFyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ik9wZW4gYW5nbGVkIGJyYWNrZXQgaW4gdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlIHN0YXRlIiwKKyAiaW5wdXQiOiI8YSBhPWY8PiIsCisgIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiZjwifV1dfQorCitdfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi90ZXN0Mi50ZXN0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi90ZXN0Mi50ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNTc1MTQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3Rlc3QyLnRlc3QKQEAgLTAsMCArMSwxNzkgQEAKK3sidGVzdHMiOiBbCisKK3siZGVzY3JpcHRpb24iOiJET0NUWVBFIHdpdGhvdXQgbmFtZSIsCisiaW5wdXQiOiI8IURPQ1RZUEU+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRE9DVFlQRSB3aXRob3V0IHNwYWNlIGJlZm9yZSBuYW1lIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWh0bWw+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkluY29ycmVjdCBET0NUWVBFIHdpdGhvdXQgYSBzcGFjZSBiZWZvcmUgbmFtZSIsCisiaW5wdXQiOiI8IURPQ1RZUEVmb28+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJmb28iLCBudWxsLCBudWxsLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRE9DVFlQRSB3aXRoIHB1YmxpY0lkIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgVHJhbnNpdGlvbmFsIDQuMDEvL0VOXCI+IiwKKyJvdXRwdXQiOltbIkRPQ1RZUEUiLCAiaHRtbCIsICItLy9XM0MvL0RURCBIVE1MIFRyYW5zaXRpb25hbCA0LjAxLy9FTiIsIG51bGwsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiJET0NUWVBFIHdpdGggRU9GIGFmdGVyIFBVQkxJQyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgaHRtbCBQVUJMSUMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImh0bWwiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkRPQ1RZUEUgd2l0aCBFT0YgYWZ0ZXIgUFVCTElDICciLAorImlucHV0IjoiPCFET0NUWVBFIGh0bWwgUFVCTElDICciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImh0bWwiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiJET0NUWVBFIHdpdGggRU9GIGFmdGVyIFBVQkxJQyAneCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgaHRtbCBQVUJMSUMgJ3giLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImh0bWwiLCAieCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRE9DVFlQRSB3aXRoIHN5c3RlbUlkIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFNZU1RFTSBcIi0vL1czQy8vRFREIEhUTUwgVHJhbnNpdGlvbmFsIDQuMDEvL0VOXCI+IiwKKyJvdXRwdXQiOltbIkRPQ1RZUEUiLCAiaHRtbCIsIG51bGwsICItLy9XM0MvL0RURCBIVE1MIFRyYW5zaXRpb25hbCA0LjAxLy9FTiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiJET0NUWVBFIHdpdGggcHVibGljSWQgYW5kIHN5c3RlbUlkIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgVHJhbnNpdGlvbmFsIDQuMDEvL0VOXCIgXCItLy9XM0MvL0RURCBIVE1MIFRyYW5zaXRpb25hbCA0LjAxLy9FTlwiPiIsCisib3V0cHV0IjpbWyJET0NUWVBFIiwgImh0bWwiLCAiLS8vVzNDLy9EVEQgSFRNTCBUcmFuc2l0aW9uYWwgNC4wMS8vRU4iLCAiLS8vVzNDLy9EVEQgSFRNTCBUcmFuc2l0aW9uYWwgNC4wMS8vRU4iLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRE9DVFlQRSB3aXRoID4gaW4gZG91YmxlLXF1b3RlZCBwdWJsaWNJZCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgaHRtbCBQVUJMSUMgXCI+eCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiaHRtbCIsICIiLCBudWxsLCBmYWxzZV0sIFsiQ2hhcmFjdGVyIiwgIngiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRE9DVFlQRSB3aXRoID4gaW4gc2luZ2xlLXF1b3RlZCBwdWJsaWNJZCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgaHRtbCBQVUJMSUMgJz54IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJodG1sIiwgIiIsIG51bGwsIGZhbHNlXSwgWyJDaGFyYWN0ZXIiLCAieCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJET0NUWVBFIHdpdGggPiBpbiBkb3VibGUtcXVvdGVkIHN5c3RlbUlkIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFBVQkxJQyBcImZvb1wiIFwiPngiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImh0bWwiLCAiZm9vIiwgIiIsIGZhbHNlXSwgWyJDaGFyYWN0ZXIiLCAieCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJET0NUWVBFIHdpdGggPiBpbiBzaW5nbGUtcXVvdGVkIHN5c3RlbUlkIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFBVQkxJQyAnZm9vJyAnPngiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImh0bWwiLCAiZm9vIiwgIiIsIGZhbHNlXSwgWyJDaGFyYWN0ZXIiLCAieCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJJbmNvbXBsZXRlIGRvY3R5cGUiLAorImlucHV0IjoiPCFET0NUWVBFIGh0bWwgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiJOdW1lcmljIGVudGl0eSByZXByZXNlbnRpbmcgdGhlIE5VTCBjaGFyYWN0ZXIiLAorImlucHV0IjoiJiMwMDAwOyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiSGV4YWRlY2ltYWwgZW50aXR5IHJlcHJlc2VudGluZyB0aGUgTlVMIGNoYXJhY3RlciIsCisiaW5wdXQiOiImI3gwMDAwOyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiTnVtZXJpYyBlbnRpdHkgcmVwcmVzZW50aW5nIGEgY29kZXBvaW50IGFmdGVyIDExMTQxMTEgKFUrMTBGRkZGKSIsCisiaW5wdXQiOiImIzIyMjUyMjI7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJIZXhhZGVjaW1hbCBlbnRpdHkgcmVwcmVzZW50aW5nIGEgY29kZXBvaW50IGFmdGVyIDExMTQxMTEgKFUrMTBGRkZGKSIsCisiaW5wdXQiOiImI3gxMDEwRkZGRjsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkhleGFkZWNpbWFsIGVudGl0eSBwYWlyIHJlcHJlc2VudGluZyBhIHN1cnJvZ2F0ZSBwYWlyIiwKKyJpbnB1dCI6IiYjeEQ4Njk7JiN4REVENjsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRkZEIl0sICJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkhleGFkZWNpbWFsIGVudGl0eSB3aXRoIG1peGVkIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIiwKKyJpbnB1dCI6IiYjeGFCY0Q7IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJcdUFCQ0QiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW50aXR5IHdpdGhvdXQgYSBuYW1lIiwKKyJpbnB1dCI6IiY7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIiY7Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlVuZXNjYXBlZCBhbXBlcnNhbmQgaW4gYXR0cmlidXRlIHZhbHVlIiwKKyJpbnB1dCI6IjxoIGE9JyYnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJoIiwgeyAiYSI6IiYiIH1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJTdGFydFRhZyBjb250YWluaW5nIDwiLAorImlucHV0IjoiPGE8Yj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYTxiIiwgeyB9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiTm9uLXZvaWQgZWxlbWVudCBjb250YWluaW5nIHRyYWlsaW5nIC8iLAorImlucHV0IjoiPGgvPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsImgiLHt9LHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiJWb2lkIGVsZW1lbnQgd2l0aCBwZXJtaXR0ZWQgc2xhc2giLAorImlucHV0IjoiPGJyLz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCJiciIse30sdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlZvaWQgZWxlbWVudCB3aXRoIHBlcm1pdHRlZCBzbGFzaCAod2l0aCBhdHRyaWJ1dGUpIiwKKyJpbnB1dCI6IjxiciBmb289J2JhcicvPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsImJyIix7ImZvbyI6ImJhciJ9LHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiJTdGFydFRhZyBjb250YWluaW5nIC8iLAorImlucHV0IjoiPGgvYT0nYic+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiaCIsIHsgImEiOiJiIiB9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiRG91YmxlLXF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUiLAorImlucHV0IjoiPGggYT1cImJcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiaCIsIHsgImEiOiJiIiB9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiVW5lc2NhcGVkIDwvIiwKKyJpbnB1dCI6IjwvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjwvIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IklsbGVnYWwgZW5kIHRhZyBuYW1lIiwKKyJpbnB1dCI6IjwvMT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIjEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiU2ltaWxpIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24iLAorImlucHV0IjoiPD9uYW1lc3BhY2U+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/bmFtZXNwYWNlIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkEgYm9ndXMgY29tbWVudCBzdG9wcyBhdCA+LCBldmVuIGlmIHByZWNlZWRlZCBieSB0d28gZGFzaGVzIiwKKyJpbnB1dCI6Ijw/Zm9vLS0+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/Zm9vLS0iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiVW5lc2NhcGVkIDwiLAorImlucHV0IjoiZm9vIDwgYmFyIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJmb28gIl0sICJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiPCBiYXIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiTnVsbCBCeXRlIFJlcGxhY2VtZW50IiwKKyJpbnB1dCI6Ilx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiQ29tbWVudCB3aXRoIGRhc2giLAorImlucHV0IjoiPCEtLS14IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIteCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbnRpdHkgKyBuZXdsaW5lIiwKKyJpbnB1dCI6IlxueFxuJmd0O1xuIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsIlxueFxuPlxuIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlN0YXJ0IHRhZyB3aXRoIG5vIGF0dHJpYnV0ZXMgYnV0IHNwYWNlIGJlZm9yZSB0aGUgZ3JlYXRlci10aGFuIHNpZ24iLAorImlucHV0IjoiPGggPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJoIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbXB0eSBhdHRyaWJ1dGUgZm9sbG93ZWQgYnkgdXBwZXJjYXNlIGF0dHJpYnV0ZSIsCisiaW5wdXQiOiI8aCBhIEI9Jyc+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImgiLCB7ImEiOiIiLCAiYiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiRG91YmxlLXF1b3RlIGFmdGVyIGF0dHJpYnV0ZSBuYW1lIiwKKyJpbnB1dCI6IjxoIGEgXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiaCIsIHsiYSI6IiIsICJcIiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiU2luZ2xlLXF1b3RlIGFmdGVyIGF0dHJpYnV0ZSBuYW1lIiwKKyJpbnB1dCI6IjxoIGEgJz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJoIiwgeyJhIjoiIiwgIiciOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkVtcHR5IGVuZCB0YWcgd2l0aCBmb2xsb3dpbmcgY2hhcmFjdGVycyIsCisiaW5wdXQiOiJhPC8+YmMiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgImEiXSwgIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJiYyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbXB0eSBlbmQgdGFnIHdpdGggZm9sbG93aW5nIHRhZyIsCisiaW5wdXQiOiJhPC8+PGI+YyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiYSJdLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYiIsIHt9XSwgWyJDaGFyYWN0ZXIiLCAiYyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJFbXB0eSBlbmQgdGFnIHdpdGggZm9sbG93aW5nIGNvbW1lbnQiLAorImlucHV0IjoiYTwvPjwhLS1iLS0+YyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiYSJdLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJiIl0sIFsiQ2hhcmFjdGVyIiwgImMiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW1wdHkgZW5kIHRhZyB3aXRoIGZvbGxvd2luZyBlbmQgdGFnIiwKKyJpbnB1dCI6ImE8Lz48L2I+YyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiYSJdLCAiUGFyc2VFcnJvciIsIFsiRW5kVGFnIiwgImIiXSwgWyJDaGFyYWN0ZXIiLCAiYyJdXX0KKworXX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vdGVzdDMudGVzdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vdGVzdDMudGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODUxOWU4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3Rva2VuaXphdGlvbi90ZXN0My50ZXN0CkBAIC0wLDAgKzEsNjA0NyBAQAoreyJ0ZXN0cyI6IFsKKworeyJkZXNjcmlwdGlvbiI6IiIsCisiaW5wdXQiOiIiLAorIm91dHB1dCI6W119LAorCit7ImRlc2NyaXB0aW9uIjoiXFx1MDAwOSIsCisiaW5wdXQiOiJcdTAwMDkiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIlx1MDAwOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJcXHUwMDBBIiwKKyJpbnB1dCI6Ilx1MDAwQSIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiXHUwMDBBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlxcdTAwMEIiLAorImlucHV0IjoiXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJcXHUwMDBDIiwKKyJpbnB1dCI6Ilx1MDAwQyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiXHUwMDBDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IiAiLAorImlucHV0IjoiICIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiIhIiwKKyJpbnB1dCI6IiEiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIiEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiXCIiLAorImlucHV0IjoiXCIiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIlwiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IiUiLAorImlucHV0IjoiJSIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiJSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiImIiwKKyJpbnB1dCI6IiYiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIiYiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiJyIsCisiaW5wdXQiOiInIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICInIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IiwiLAorImlucHV0IjoiLCIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiLCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiItIiwKKyJpbnB1dCI6Ii0iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIi0iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiLiIsCisiaW5wdXQiOiIuIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICIuIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ii8iLAorImlucHV0IjoiLyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiLyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiIwIiwKKyJpbnB1dCI6IjAiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIjAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiMSIsCisiaW5wdXQiOiIxIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICIxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjkiLAorImlucHV0IjoiOSIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI7IiwKKyJpbnB1dCI6IjsiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIjsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCIsCisiaW5wdXQiOiI8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjwiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPFxcdTAwMDAiLAorImlucHV0IjoiPFx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8Il0sICJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxcXHUwMDA5IiwKKyJpbnB1dCI6IjxcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiPFx1MDAwOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8XFx1MDAwQSIsCisiaW5wdXQiOiI8XHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjxcdTAwMEEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPFxcdTAwMEIiLAorImlucHV0IjoiPFx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjxcdTAwMEIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPFxcdTAwMEMiLAorImlucHV0IjoiPFx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8XHUwMDBDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwgIiwKKyJpbnB1dCI6IjwgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjwgIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhIiwKKyJpbnB1dCI6IjwhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFcXHUwMDAwIiwKKyJpbnB1dCI6IjwhXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFcXHUwMDA5IiwKKyJpbnB1dCI6IjwhXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJcdTAwMDkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFcXHUwMDBBIiwKKyJpbnB1dCI6IjwhXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJcdTAwMEEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFcXHUwMDBCIiwKKyJpbnB1dCI6IjwhXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1MDAwQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IVxcdTAwMEMiLAorImlucHV0IjoiPCFcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1MDAwQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8ISAiLAorImlucHV0IjoiPCEgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhISIsCisiaW5wdXQiOiI8ISEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFcIiIsCisiaW5wdXQiOiI8IVwiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJcIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8ISYiLAorImlucHV0IjoiPCEmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICImIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhJyIsCisiaW5wdXQiOiI8ISciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiciXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtIiwKKyJpbnB1dCI6IjwhLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIiwKKyJpbnB1dCI6IjwhLS0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tXFx1MDAwMCIsCisiaW5wdXQiOiI8IS0tXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tXFx1MDAwOSIsCisiaW5wdXQiOiI8IS0tXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJcdTAwMDkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLVxcdTAwMEEiLAorImlucHV0IjoiPCEtLVx1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiXHUwMDBBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS1cXHUwMDBCIiwKKyJpbnB1dCI6IjwhLS1cdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiXHUwMDBCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS1cXHUwMDBDIiwKKyJpbnB1dCI6IjwhLS1cdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1MDAwQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tICIsCisiaW5wdXQiOiI8IS0tICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIFxcdTAwMDAiLAorImlucHV0IjoiPCEtLSBcdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIFx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIFxcdTAwMDkiLAorImlucHV0IjoiPCEtLSBcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBcdTAwMDkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLSBcXHUwMDBBIiwKKyJpbnB1dCI6IjwhLS0gXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgXHUwMDBBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gXFx1MDAwQiIsCisiaW5wdXQiOiI8IS0tIFx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgXHUwMDBCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gXFx1MDAwQyIsCisiaW5wdXQiOiI8IS0tIFx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIFx1MDAwQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tICAiLAorImlucHV0IjoiPCEtLSAgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tICEiLAorImlucHV0IjoiPCEtLSAhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgISJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIFwiIiwKKyJpbnB1dCI6IjwhLS0gXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBcIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tICYiLAorImlucHV0IjoiPCEtLSAmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgJiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tICciLAorImlucHV0IjoiPCEtLSAnIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgJyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tICwiLAorImlucHV0IjoiPCEtLSAsIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgLCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC0iLAorImlucHV0IjoiPCEtLSAtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLVxcdTAwMDAiLAorImlucHV0IjoiPCEtLSAtXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLVxcdTAwMDkiLAorImlucHV0IjoiPCEtLSAtXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgLVx1MDAwOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1cXHUwMDBBIiwKKyJpbnB1dCI6IjwhLS0gLVx1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIC1cdTAwMEEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLSAtXFx1MDAwQiIsCisiaW5wdXQiOiI8IS0tIC1cdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIC1cdTAwMEIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLSAtXFx1MDAwQyIsCisiaW5wdXQiOiI8IS0tIC1cdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtXHUwMDBDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLSAiLAorImlucHV0IjoiPCEtLSAtICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIC0gIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLSEiLAorImlucHV0IjoiPCEtLSAtISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIC0hIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLVwiIiwKKyJpbnB1dCI6IjwhLS0gLVwiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIgLVwiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLSYiLAorImlucHV0IjoiPCEtLSAtJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIC0mIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLSciLAorImlucHV0IjoiPCEtLSAtJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIC0nIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLSwiLAorImlucHV0IjoiPCEtLSAtLCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIC0sIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLS0iLAorImlucHV0IjoiPCEtLSAtLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC0uIiwKKyJpbnB1dCI6IjwhLS0gLS4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtLiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC0vIiwKKyJpbnB1dCI6IjwhLS0gLS8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtLyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC0wIiwKKyJpbnB1dCI6IjwhLS0gLTAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC0xIiwKKyJpbnB1dCI6IjwhLS0gLTEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC05IiwKKyJpbnB1dCI6IjwhLS0gLTkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC08IiwKKyJpbnB1dCI6IjwhLS0gLTwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtPCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC09IiwKKyJpbnB1dCI6IjwhLS0gLT0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtPSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC0+IiwKKyJpbnB1dCI6IjwhLS0gLT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtPiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC0/IiwKKyJpbnB1dCI6IjwhLS0gLT8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtPyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1AIiwKKyJpbnB1dCI6IjwhLS0gLUAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtQCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1BIiwKKyJpbnB1dCI6IjwhLS0gLUEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1CIiwKKyJpbnB1dCI6IjwhLS0gLUIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1ZIiwKKyJpbnB1dCI6IjwhLS0gLVkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtWSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1aIiwKKyJpbnB1dCI6IjwhLS0gLVoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtWiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1gIiwKKyJpbnB1dCI6IjwhLS0gLWAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtYCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1hIiwKKyJpbnB1dCI6IjwhLS0gLWEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1iIiwKKyJpbnB1dCI6IjwhLS0gLWIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtYiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC15IiwKKyJpbnB1dCI6IjwhLS0gLXkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAteSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC16IiwKKyJpbnB1dCI6IjwhLS0gLXoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAteiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC17IiwKKyJpbnB1dCI6IjwhLS0gLXsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAteyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tIC1cXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IS0tIC1cdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAtXHVEQkMwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLiIsCisiaW5wdXQiOiI8IS0tIC4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAuIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gLyIsCisiaW5wdXQiOiI8IS0tIC8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAvIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gMCIsCisiaW5wdXQiOiI8IS0tIDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gMSIsCisiaW5wdXQiOiI8IS0tIDEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gOSIsCisiaW5wdXQiOiI8IS0tIDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiA5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gPCIsCisiaW5wdXQiOiI8IS0tIDwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiA8Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gPSIsCisiaW5wdXQiOiI8IS0tID0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiA9Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gPiIsCisiaW5wdXQiOiI8IS0tID4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiA+Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gPyIsCisiaW5wdXQiOiI8IS0tID8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiA/Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gQCIsCisiaW5wdXQiOiI8IS0tIEAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBAIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gQSIsCisiaW5wdXQiOiI8IS0tIEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gQiIsCisiaW5wdXQiOiI8IS0tIEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gWSIsCisiaW5wdXQiOiI8IS0tIFkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBZIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gWiIsCisiaW5wdXQiOiI8IS0tIFoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBaIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gYCIsCisiaW5wdXQiOiI8IS0tIGAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBgIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gYSIsCisiaW5wdXQiOiI8IS0tIGEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBhIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gYiIsCisiaW5wdXQiOiI8IS0tIGIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0geSIsCisiaW5wdXQiOiI8IS0tIHkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiB5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0geiIsCisiaW5wdXQiOiI8IS0tIHoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiB6Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0geyIsCisiaW5wdXQiOiI8IS0tIHsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiB7Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0gXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCEtLSBcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiBcdURCQzBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLSEiLAorImlucHV0IjoiPCEtLSEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLVwiIiwKKyJpbnB1dCI6IjwhLS1cIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiXCIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLSYiLAorImlucHV0IjoiPCEtLSYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiYiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLSciLAorImlucHV0IjoiPCEtLSciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiciXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLSwiLAorImlucHV0IjoiPCEtLSwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiwiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0iLAorImlucHV0IjoiPCEtLS0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLVxcdTAwMDAiLAorImlucHV0IjoiPCEtLS1cdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLVx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLVxcdTAwMDkiLAorImlucHV0IjoiPCEtLS1cdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi1cdTAwMDkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS1cXHUwMDBBIiwKKyJpbnB1dCI6IjwhLS0tXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItXHUwMDBBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tXFx1MDAwQiIsCisiaW5wdXQiOiI8IS0tLVx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItXHUwMDBCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tXFx1MDAwQyIsCisiaW5wdXQiOiI8IS0tLVx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLVx1MDAwQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLSAiLAorImlucHV0IjoiPCEtLS0gIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLSEiLAorImlucHV0IjoiPCEtLS0hIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItISJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLVwiIiwKKyJpbnB1dCI6IjwhLS0tXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi1cIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLSYiLAorImlucHV0IjoiPCEtLS0mIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItJiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLSciLAorImlucHV0IjoiPCEtLS0nIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItJyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLSwiLAorImlucHV0IjoiPCEtLS0sIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0iLAorImlucHV0IjoiPCEtLS0tIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tXFx1MDAwMCIsCisiaW5wdXQiOiI8IS0tLS1cdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS1cdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tXFx1MDAwOSIsCisiaW5wdXQiOiI8IS0tLS1cdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS1cdTAwMDkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tXFx1MDAwQSIsCisiaW5wdXQiOiI8IS0tLS1cdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS1cdTAwMEEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tXFx1MDAwQiIsCisiaW5wdXQiOiI8IS0tLS1cdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLVx1MDAwQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS1cXHUwMDBDIiwKKyJpbnB1dCI6IjwhLS0tLVx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLVx1MDAwQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0gIiwKKyJpbnB1dCI6IjwhLS0tLSAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0gIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLSAtIiwKKyJpbnB1dCI6IjwhLS0tLSAtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0gLS0iLAorImlucHV0IjoiPCEtLS0tIC0tIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0gLS0+IiwKKyJpbnB1dCI6IjwhLS0tLSAtLT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0gIC0tPiIsCisiaW5wdXQiOiI8IS0tLS0gIC0tPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0gICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0gYS0tPiIsCisiaW5wdXQiOiI8IS0tLS0gYS0tPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0gYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0hIiwKKyJpbnB1dCI6IjwhLS0tLSEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLSE+IiwKKyJpbnB1dCI6IjwhLS0tLSE+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tIWEiLAorImlucHV0IjoiPCEtLS0tIWEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0hYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0hYS0iLAorImlucHV0IjoiPCEtLS0tIWEtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tIWEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tIWEtLSIsCisiaW5wdXQiOiI8IS0tLS0hYS0tIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tIWEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tIWEtLT4iLAorImlucHV0IjoiPCEtLS0tIWEtLT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tIWEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tIS0iLAorImlucHV0IjoiPCEtLS0tIS0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0hIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLSEtLSIsCisiaW5wdXQiOiI8IS0tLS0hLS0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0hIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLSEtLT4iLAorImlucHV0IjoiPCEtLS0tIS0tPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0hIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLVwiIiwKKyJpbnB1dCI6IjwhLS0tLVwiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tXCIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tJiIsCisiaW5wdXQiOiI8IS0tLS0mIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tJiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0nIiwKKyJpbnB1dCI6IjwhLS0tLSciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0nIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLSwiLAorImlucHV0IjoiPCEtLS0tLCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLSwiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tLSIsCisiaW5wdXQiOiI8IS0tLS0tIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tLiIsCisiaW5wdXQiOiI8IS0tLS0uIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tLiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0vIiwKKyJpbnB1dCI6IjwhLS0tLS8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS0vIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLTAiLAorImlucHV0IjoiPCEtLS0tMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLTAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tMSIsCisiaW5wdXQiOiI8IS0tLS0xIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS05IiwKKyJpbnB1dCI6IjwhLS0tLTkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS05Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLTwiLAorImlucHV0IjoiPCEtLS0tPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLTwiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tPSIsCisiaW5wdXQiOiI8IS0tLS09IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tPSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS0+IiwKKyJpbnB1dCI6IjwhLS0tLT4iLAorIm91dHB1dCI6W1siQ29tbWVudCIsICIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tPyIsCisiaW5wdXQiOiI8IS0tLS0/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tPyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS1AIiwKKyJpbnB1dCI6IjwhLS0tLUAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS1AIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLUEiLAorImlucHV0IjoiPCEtLS0tQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLUEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tQiIsCisiaW5wdXQiOiI8IS0tLS1CIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS1ZIiwKKyJpbnB1dCI6IjwhLS0tLVkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS1ZIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLVoiLAorImlucHV0IjoiPCEtLS0tWiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLVoiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tYCIsCisiaW5wdXQiOiI8IS0tLS1gIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tYCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS1hIiwKKyJpbnB1dCI6IjwhLS0tLWEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS1hIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLWIiLAorImlucHV0IjoiPCEtLS0tYiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLWIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0teSIsCisiaW5wdXQiOiI8IS0tLS15IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0teSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLS16IiwKKyJpbnB1dCI6IjwhLS0tLXoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiLS16Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLXsiLAorImlucHV0IjoiPCEtLS0teyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItLXsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLS0tXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCEtLS0tXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0tXHVEQkMwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLiIsCisiaW5wdXQiOiI8IS0tLS4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0uIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tLyIsCisiaW5wdXQiOiI8IS0tLS8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0vIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tMCIsCisiaW5wdXQiOiI8IS0tLTAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0wIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tMSIsCisiaW5wdXQiOiI8IS0tLTEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi0xIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tOSIsCisiaW5wdXQiOiI8IS0tLTkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi05Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tPCIsCisiaW5wdXQiOiI8IS0tLTwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi08Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tPSIsCisiaW5wdXQiOiI8IS0tLT0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi09Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0tPiIsCisiaW5wdXQiOiI8IS0tLT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLT8iLAorImlucHV0IjoiPCEtLS0/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItPyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLUAiLAorImlucHV0IjoiPCEtLS1AIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItQCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLUEiLAorImlucHV0IjoiPCEtLS1BIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLUIiLAorImlucHV0IjoiPCEtLS1CIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLVkiLAorImlucHV0IjoiPCEtLS1ZIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItWSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLVoiLAorImlucHV0IjoiPCEtLS1aIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItWiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLWAiLAorImlucHV0IjoiPCEtLS1gIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItYCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLWEiLAorImlucHV0IjoiPCEtLS1hIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLWIiLAorImlucHV0IjoiPCEtLS1iIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItYiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLXkiLAorImlucHV0IjoiPCEtLS15IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIteSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLXoiLAorImlucHV0IjoiPCEtLS16IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIteiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLXsiLAorImlucHV0IjoiPCEtLS17IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIteyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS0tLVxcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhLS0tXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItXHVEQkMwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0uIiwKKyJpbnB1dCI6IjwhLS0uIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIuIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0vIiwKKyJpbnB1dCI6IjwhLS0vIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIvIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0wIiwKKyJpbnB1dCI6IjwhLS0wIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0xIiwKKyJpbnB1dCI6IjwhLS0xIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS05IiwKKyJpbnB1dCI6IjwhLS05IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS08IiwKKyJpbnB1dCI6IjwhLS08IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI8Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS09IiwKKyJpbnB1dCI6IjwhLS09IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI9Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhLS0+IiwKKyJpbnB1dCI6IjwhLS0+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLT8iLAorImlucHV0IjoiPCEtLT8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj8iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLUAiLAorImlucHV0IjoiPCEtLUAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIkAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLUEiLAorImlucHV0IjoiPCEtLUEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIkEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLUIiLAorImlucHV0IjoiPCEtLUIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIkIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLVkiLAorImlucHV0IjoiPCEtLVkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLVoiLAorImlucHV0IjoiPCEtLVoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIloiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLWAiLAorImlucHV0IjoiPCEtLWAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgImAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLWEiLAorImlucHV0IjoiPCEtLWEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgImEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLWIiLAorImlucHV0IjoiPCEtLWIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgImIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLXkiLAorImlucHV0IjoiPCEtLXkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgInkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLXoiLAorImlucHV0IjoiPCEtLXoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgInoiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLXsiLAorImlucHV0IjoiPCEtLXsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgInsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCEtLVxcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhLS1cdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1REJDMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IS8iLAorImlucHV0IjoiPCEvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIvIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhMCIsCisiaW5wdXQiOiI8ITAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIjAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCExIiwKKyJpbnB1dCI6IjwhMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8ITkiLAorImlucHV0IjoiPCE5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhPCIsCisiaW5wdXQiOiI8ITwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIjwiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCE9IiwKKyJpbnB1dCI6IjwhPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiPSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IT4iLAorImlucHV0IjoiPCE+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCE/IiwKKyJpbnB1dCI6IjwhPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiPyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IUAiLAorImlucHV0IjoiPCFAIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJAIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhQSIsCisiaW5wdXQiOiI8IUEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIkEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFCIiwKKyJpbnB1dCI6IjwhQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUiLAorImlucHV0IjoiPCFET0NUWVBFIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRVxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiXHVGRkZEIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRVx1MDAwOCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIlx1MDAwOCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFXFx1MDAwQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFXFx1MDAwQiIsCisiaW5wdXQiOiI8IURPQ1RZUEVcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJcdTAwMEIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRVxcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRVxcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFXHUwMDBEIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRVxcdTAwMUYiLAorImlucHV0IjoiPCFET0NUWVBFXHUwMDFGIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiXHUwMDFGIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIFxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFIFx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJcdUZGRkQiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBcdTAwMDgiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiXHUwMDA4IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIFxcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFIFx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJcdTAwMEIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIFxcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFIFx1MDAwRCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgXFx1MDAxRiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgXHUwMDFGIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIlx1MDAxRiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFICAiLAorImlucHV0IjoiPCFET0NUWVBFICAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFICEiLAorImlucHV0IjoiPCFET0NUWVBFICEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIlwiIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgJiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiJiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFICciLAorImlucHV0IjoiPCFET0NUWVBFICciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIiciLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSAtIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSAtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICItIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgLyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiLyIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIDAiLAorImlucHV0IjoiPCFET0NUWVBFIDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIjAiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSAxIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSAxIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICIxIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiOSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIDwiLAorImlucHV0IjoiPCFET0NUWVBFIDwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIjwiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSA9IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSA9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICI9IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgPiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgPyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiPyIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIEAiLAorImlucHV0IjoiPCFET0NUWVBFIEAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIkAiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgQiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIFkiLAorImlucHV0IjoiPCFET0NUWVBFIFkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgInkiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBaIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJ6IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgWyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgWyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiWyIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGAiLAorImlucHV0IjoiPCFET0NUWVBFIGAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImAiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYVxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGFcdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYVx1RkZGRCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGFcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhXHUwMDA4IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFcdTAwMDgiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYVx1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGFcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYVxcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFIGFcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYVx1MDAwQiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGFcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYVxcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFIGFcdTAwMEQiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhXFx1MDAxRiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYVx1MDAxRiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhXHUwMDFGIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBcXHUwMDAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgXFx1MDAwOCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBcdTAwMDgiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFxcdTAwMEEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBcXHUwMDBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgXFx1MDAwRCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBcdTAwMEQiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFxcdTAwMUYiLAorImlucHV0IjoiPCFET0NUWVBFIGEgXHUwMDFGIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhICAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgISIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSAhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBcIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgJiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSAmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSAnIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhICciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIC0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgLyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSAvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIDEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSA8IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIDwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhID0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgPiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSA+IiwKKyJvdXRwdXQiOltbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSA/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhID8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIEAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1xcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1x1MDAwOCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcXHUwMDA5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1x1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXFx1MDAwQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1xcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1xcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcXHUwMDBEIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1x1MDAwRCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXFx1MDAxRiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcdTAwMUYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDICIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMhIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQyEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIlxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCJcdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlx1RkZGRCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCJcXHUwMDA5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDA5IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIlxcdTAwMEEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCJcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJcdTAwMEEiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiXFx1MDAwQiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIlx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDBCIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIlxcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCJcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJcdTAwMEMiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiICIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIiAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIgIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIiEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCIhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiISIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCJcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIlwiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIiMiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCIjIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIyIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCImIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiYiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiJyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIiciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICInIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIi0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCItIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiLSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCIvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIi8iLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIjAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIwIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIjEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCIxIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiMSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCI5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIjkiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiPCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIjwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICI8IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIj0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCI9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiPSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCI+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCI/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIj8iLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiQCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIkAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJAIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIkEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCJBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiQSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCJCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIkIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiWSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIlkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJZIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcIloiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCJaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiWiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCJgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgImAiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wiYSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcImEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJhIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcImIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCJiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiYiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCJ5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wieSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgInkiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1wieiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcInoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJ6IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNcInsiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDXCJ7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAieyIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDXCJcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNcIlx1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlx1REJDMFx1REMwMCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDIyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMjIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQyYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQyciLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJ1xcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJ1x1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHVGRkZEIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDA5IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnXFx1MDAwQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDBBIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnXFx1MDAwQiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJcdTAwMEIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQydcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQydcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJcdTAwMEMiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiICIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJyEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJyEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIhIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnXCIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJ1wiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXCIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiJiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJyciLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJyciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1x1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJydcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXHUwMDA4IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1x1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJydcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1xcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJydcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJydcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1xcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJydcdTAwMEQiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXFx1MDAxRiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1x1MDAxRiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnJyAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJycgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnJyEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJychIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1wiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnIyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJyMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnJiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJyYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnJyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJyciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnKCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJygiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnLSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJy0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnLyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJy8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJzAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnMSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJzEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJzkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnPCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJzwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnPSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJz0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnPiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnPyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJz8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnQCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ0AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ0EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnQiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ0IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnWSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnWiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ1oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnYCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ2AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnYSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ2EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnYiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ2IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycneSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ3kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycneiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ3oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycneyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnJ3siLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycnXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJydcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycoIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycoIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiKCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJy0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJy0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICItIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnLyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIi8iLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQycwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQycwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiMCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJzEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJzEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIxIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIjkiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQyc8IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQyc8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiPCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJz0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJz0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICI9IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnPiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJz8iLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJz8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICI/IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnQCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIkAiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQydBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQydBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiQSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJ0IiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJ0IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJCIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnWSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlkiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQydaIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQydaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiWiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJ2AiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJ2AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJgIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMnYSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMnYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgImEiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQydiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQydiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiYiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJ3kiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDJ3kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJ5IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMneiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMneiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgInoiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQyd7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQyd7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAieyIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDJ1xcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQydcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJcdURCQzBcdURDMDAiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQygiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDKCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDLSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUMvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQy8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQzAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDMSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUMxIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUM5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQzkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQzwiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDPSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUM9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUM+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQz8iLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDQCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNAIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ0EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ0IiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDWSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNZIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNaIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ2AiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDYSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUNhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUNiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ2IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ3kiLAorImlucHV0IjoiPCFET0NUWVBFIGEgUFVCTElDeSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgUFVCTElDeiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBQVUJMSUN6IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBQVUJMSUN7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ3siLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFBVQkxJQ1xcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFBVQkxJQ1x1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVxcdTAwMDgiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXHUwMDA4IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVxcdTAwMDkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVx1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXFx1MDAwQiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXFx1MDAwQyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVxcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXHUwMDBEIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cXHUwMDFGIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVx1MDAxRiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0gIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIlx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHVGRkZEIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIlxcdTAwMDkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCJcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMDkiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiXFx1MDAwQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIlx1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlx1MDAwQSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCJcXHUwMDBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMEIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiXFx1MDAwQyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIlx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlx1MDAwQyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCIgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiAiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiISIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIiEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIhIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIlwiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiIyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIiMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIjIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIiYiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCImIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiJiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCInIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiciLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiLSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIi0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICItIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIi8iLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCIvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiLyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCIwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIjAiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiMSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIjEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIxIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIjkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCI5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiOSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCI8IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIjwiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiPSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIj0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICI9IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIj4iLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIj8iLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCI/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiPyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCJAIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIkAiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIkEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJBIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIkIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCJCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiQiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCJZIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlkiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiWiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cIloiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJaIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cImAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCJgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiYCIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCJhIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgImEiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiYiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cImIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cInkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNXCJ5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAieSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNXCJ6IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwieiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgInoiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVwieyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cInsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJ7IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cIlxcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTVwiXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHVEQkMwXHVEQzAwIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0jIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSYiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdUZGRkQiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcXHUwMDA5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMDkiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMEEiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcXHUwMDBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlx1MDAwQiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJ1xcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJ1x1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlx1MDAwQyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJyAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJyAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIgIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nISIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiEiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJyYiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJyYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICImIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJydcXHUwMDAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnXFx1MDAwOCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1x1MDAwOCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1x1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJydcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1xcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJydcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1xcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJydcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnXFx1MDAwRCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1x1MDAwRCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJydcXHUwMDFGIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnXHUwMDFGIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJycgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJychIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1wiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJycmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJyciLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJycnIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnLSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJy0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJycvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJzAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJycwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnMSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJzEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJyc5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJzwiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJyc8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnPSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJz0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJyc+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJyc/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJ0AiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJydAIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ0EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJydCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1kiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJydZIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnWiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJydgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScnYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJ2EiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJydhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScnYiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ2IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJyd5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScneSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nJ3oiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJyd6IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScneyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ3siLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJydcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nJ1x1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nKCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nKCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIigiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSctIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSctIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiLSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJy8iLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJy8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIvIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIjAiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTScxIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTScxIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiMSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJzkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJzkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICI5IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nPCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIjwiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSc9IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSc9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiPSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJz4iLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSc/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSc/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiPyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJ0AiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJ0AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJAIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIkEiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSdCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSdCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiQiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJ1kiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJ1kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJZIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nWiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nWiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIloiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSdgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSdgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiYCIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJ2EiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJ2EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJhIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0nYiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nYiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgImIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSd5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSd5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAieSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNJ3oiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNJ3oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJ6IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0neyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0neyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgInsiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTSdcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0nXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHVEQkMwXHVEQzAwIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0oIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTSgiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTS0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNLyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0vIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0wIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTTAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTTEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNOSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU05IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU08IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTTwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTT0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNPiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU0+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU0/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTT8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTUAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNQSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1BIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1CIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTUIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTVkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNWiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1aIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1gIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTWAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTWEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNYiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1iIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU15IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIFNZU1RFTXkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFNZU1RFTXoiLAorImlucHV0IjoiPCFET0NUWVBFIGEgU1lTVEVNeiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgU1lTVEVNeyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU17IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBTWVNURU1cXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBTWVNURU1cdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIFkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgWiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYVxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYVx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYVxcdTAwMDkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYVx1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYVxcdTAwMEEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYVx1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYVxcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYVx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhXFx1MDAwQyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhICIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYSEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYSEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGFcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGEmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGEmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhJyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYS0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgYS0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGEvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGEvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYTEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYTEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGE5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGE5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhPCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYT0iLAorImlucHV0IjoiPCFET0NUWVBFIGEgYT0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGE+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGE+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhPyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYUAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYUAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGFBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGFBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhQiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYVkiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYVkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGFaIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGFaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhYCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBhYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYWEiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYWEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGFiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGFiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBheSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBheSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYXoiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYXoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIGF7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIGF7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBhXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGEgYVx1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgYiIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSB5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhIHkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhIHoiLAorImlucHV0IjoiPCFET0NUWVBFIGEgeiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEgeyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSB7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYSBcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSBcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhISIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYVwiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFcIiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSYiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhJyIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYSciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEnIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYS0iLAorImlucHV0IjoiPCFET0NUWVBFIGEtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhLSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGEvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYS8iLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhMCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYTAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEwIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYTEiLAorImlucHV0IjoiPCFET0NUWVBFIGExIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhMSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGE5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYTkiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhPCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYTwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImE8IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYT0iLAorImlucHV0IjoiPCFET0NUWVBFIGE9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhPSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGE+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhPiIsCisib3V0cHV0IjpbWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGE/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYT8iLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhQCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYUAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFAIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYUEiLAorImlucHV0IjoiPCFET0NUWVBFIGFBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGFCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYWIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhWSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYVkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImF5IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYVoiLAorImlucHV0IjoiPCFET0NUWVBFIGFaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJheiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGFbIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhWyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYVsiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhYCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYWAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFgIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYWEiLAorImlucHV0IjoiPCFET0NUWVBFIGFhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGFiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBhYiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYWIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBheSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgYXkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImF5IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgYXoiLAorImlucHV0IjoiPCFET0NUWVBFIGF6IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJheiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIGF7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBheyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYXsiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBhXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFIGFcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFcdURCQzBcdURDMDAiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSBiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJiIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgeSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgeSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAieSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFIHoiLAorImlucHV0IjoiPCFET0NUWVBFIHoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgInoiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSB7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRSB7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJ7IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUgXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFIFx1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiXHVEQkMwXHVEQzAwIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUhIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiISIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFXCIiLAorImlucHV0IjoiPCFET0NUWVBFXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiXCIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRSYiLAorImlucHV0IjoiPCFET0NUWVBFJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICImIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUnIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiJyIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFLSIsCisiaW5wdXQiOiI8IURPQ1RZUEUtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIi0iLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRS8iLAorImlucHV0IjoiPCFET0NUWVBFLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICIvIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEUwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRTAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiMCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFMSIsCisiaW5wdXQiOiI8IURPQ1RZUEUxIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIjEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRTkiLAorImlucHV0IjoiPCFET0NUWVBFOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICI5IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEU8IiwKKyJpbnB1dCI6IjwhRE9DVFlQRTwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiPCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFPSIsCisiaW5wdXQiOiI8IURPQ1RZUEU9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIj0iLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRT4iLAorImlucHV0IjoiPCFET0NUWVBFPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRT8iLAorImlucHV0IjoiPCFET0NUWVBFPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICI/IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVAIiwKKyJpbnB1dCI6IjwhRE9DVFlQRUAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiQCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRUIiLAorImlucHV0IjoiPCFET0NUWVBFQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJiIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVZIiwKKyJpbnB1dCI6IjwhRE9DVFlQRVkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAieSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFWiIsCisiaW5wdXQiOiI8IURPQ1RZUEVaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgInoiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWAiLAorImlucHV0IjoiPCFET0NUWVBFYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJgIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYVxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFYVx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFcdUZGRkQiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWFcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWFcdTAwMDgiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhXHUwMDA4IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWFcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWFcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYVxcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFYVx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFcdTAwMEIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWFcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWFcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYVxcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFYVx1MDAwRCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhXFx1MDAxRiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhXHUwMDFGIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYVx1MDAxRiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSAiLAorImlucHV0IjoiPCFET0NUWVBFYSAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBcXHUwMDAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgXFx1MDAwOCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFx1MDAwOCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFx1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFxcdTAwMEEiLAorImlucHV0IjoiPCFET0NUWVBFYSBcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBcXHUwMDBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgXFx1MDAwRCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFx1MDAwRCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFxcdTAwMUYiLAorImlucHV0IjoiPCFET0NUWVBFYSBcdTAwMUYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhICAiLAorImlucHV0IjoiPCFET0NUWVBFYSAgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgISIsCisiaW5wdXQiOiI8IURPQ1RZUEVhICEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFwiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgJiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhICYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSAnIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIC0iLAorImlucHV0IjoiPCFET0NUWVBFYSAtIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgLyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIC8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIDEiLAorImlucHV0IjoiPCFET0NUWVBFYSAxIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSA8IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhID0iLAorImlucHV0IjoiPCFET0NUWVBFYSA9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgPiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhID4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSA/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIEAiLAorImlucHV0IjoiPCFET0NUWVBFYSBAIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1xcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXHUwMDA4IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcXHUwMDA5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXFx1MDAwQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1x1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1xcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1xcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcXHUwMDBEIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXHUwMDBEIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXFx1MDAxRiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1x1MDAxRiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDICIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQyAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMhIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIlxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIlx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJcdUZGRkQiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCJcXHUwMDA5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCJcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlx1MDAwOSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIlxcdTAwMEEiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIlx1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDBBIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiXFx1MDAwQiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlx1MDAwQiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIlxcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIlx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDBDIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiICIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiICIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIiEiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIiEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiEiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCJcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIiMiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIiMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiMiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCImIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCImIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICImIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiJyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiJyIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIi0iLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIi0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIi0iLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCIvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCIvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIvIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiMCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIjEiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIjEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIjEiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCI5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCI5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICI5IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiPCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiPCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIj0iLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIj0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIj0iLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCI+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCI/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCI/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICI/IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiQCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiQCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIkEiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIkEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIkEiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCJCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCJCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJCIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiWSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiWSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcIloiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcIloiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIloiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCJgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCJgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJgIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wiYSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiYSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcImIiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcImIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgImIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCJ5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXCJ5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJ5IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1wieiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wieiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAieiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNcInsiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNcInsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgInsiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDXCJcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1wiXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJcdURCQzBcdURDMDAiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDIyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQyMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQyciLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJ1xcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlx1RkZGRCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQydcdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlx1MDAwOSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnXFx1MDAwQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQydcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlx1MDAwQSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnXFx1MDAwQiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQydcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDBCIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQydcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJ1x1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHUwMDBDIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJyAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiAiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJyEiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiISIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnXCIiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIlwiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJyYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiYiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJyciLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJydcXHUwMDA4IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJydcdTAwMDgiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJydcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJydcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnJ1xcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnJ1x1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJydcXHUwMDBDIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJydcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnJ1xcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnJ1x1MDAwRCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnXFx1MDAxRiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnXHUwMDFGIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnJyAiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnJyAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnJyEiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnJyEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnJ1wiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJydcIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnIyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnIyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnJiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnJyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnKCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnKCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnLSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnLyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnMSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnPCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnPSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnPiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIiIsIG51bGwsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnPyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnQCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnQiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnWSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnWiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnWiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnYCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnYSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnYiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycnYiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycneSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycneSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycneiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycneiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycneyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycneyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycnXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnJ1x1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycoIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJygiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIigiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJy0iLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiLSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnLyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQycvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIvIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQycwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJzAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIjAiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJzEiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiMSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQyc5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICI5IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQyc8IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJzwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIjwiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJz0iLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiPSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnPiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQyc+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJz8iLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiPyIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnQCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQydAIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJAIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQydBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJ0EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIkEiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJ0IiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiQiIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnWSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQydZIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJZIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQydaIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJ1oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgIloiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJ2AiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMnYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiYCIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMnYSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQydhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJhIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQydiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJ2IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgImIiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJ3kiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMneSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAieSIsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMneiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQyd6IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsICJ6IiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQyd7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJ3siLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgInsiLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDJ1xcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDJ1x1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCAiXHVEQkMwXHVEQzAwIiwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQygiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMoIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDLSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQy0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUMvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQzAiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUMwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDMSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQzEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUM5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQzwiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUM8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDPSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQz0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUM+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQz8iLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUM/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDQCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ0AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ0IiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDWSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ1kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNaIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDWiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ2AiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUNgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDYSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ2EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUNiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDYiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ3kiLAorImlucHV0IjoiPCFET0NUWVBFYSBQVUJMSUN5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgUFVCTElDeiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFBVQkxJQ3oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBQVUJMSUN7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDeyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFBVQkxJQ1xcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgUFVCTElDXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVx1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVxcdTAwMDgiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cdTAwMDgiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVxcdTAwMDkiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXFx1MDAwQiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVx1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXFx1MDAwQyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVx1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVxcdTAwMEQiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cdTAwMEQiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cXHUwMDFGIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXHUwMDFGIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0gIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSEiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0hIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCIiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlx1RkZGRCIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIlxcdTAwMDkiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIlx1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHUwMDA5IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiXFx1MDAwQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMEEiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCJcXHUwMDBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCJcdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHUwMDBCIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiXFx1MDAwQyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMEMiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCIgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCIgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIgIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiISIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiISIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIlwiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCJcIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiIyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiIyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIiYiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIiYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiYiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCInIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCInIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICInIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiLSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiLSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIi8iLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIi8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIi8iLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCIwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCIwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIwIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiMSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiMSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIjkiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIjkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIjkiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCI8IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCI8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICI8IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiPSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiPSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIj4iLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIj8iLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIj8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIj8iLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCJAIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCJAIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJAIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiQSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIkIiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cIkIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIkIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCJZIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCJZIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJZIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiWiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiWiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiWiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cImAiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cImAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgImAiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCJhIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCJhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJhIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwiYiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwiYiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiYiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cInkiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1cInkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgInkiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNXCJ6IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCJ6IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJ6IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVwieyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVwieyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAieyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cIlxcdURCQzBcXHVEQzAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNXCJcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlx1REJDMFx1REMwMCIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0jIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNIyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSYiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0mIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nXFx1MDAwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSdcdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHVGRkZEIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSdcXHUwMDA5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJ1x1MDAwOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHUwMDA5IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSdcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJ1x1MDAwQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXHUwMDBBIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSdcXHUwMDBCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJ1x1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMEIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJ1xcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nXHUwMDBDIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJcdTAwMEMiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJyAiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiICIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nISIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSchIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIhIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSdcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSdcIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiXCIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJyYiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiJiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJydcXHUwMDAwIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJydcdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnXFx1MDAwOCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnXHUwMDA4IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnXFx1MDAwOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJydcXHUwMDBBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJydcdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJ1xcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJ1x1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJ1xcdTAwMEMiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJ1x1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnXFx1MDAwRCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnXHUwMDBEIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJydcXHUwMDFGIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJydcdTAwMUYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJycgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJycgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJychIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJychIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJ1wiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJydcIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJycmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJycmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJyciLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJyciLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnLSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJycvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJycvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJzAiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJzAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnMSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJyc5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJyc5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJzwiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJzwiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnPSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJyc+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJyc+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJyc/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJyc/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJ0AiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJ0AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnQSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJydCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJydCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJ1kiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJ1kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnWiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnWiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJydgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJydgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJ2EiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJ2EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScnYiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnYiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJyd5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJyd5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nJ3oiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nJ3oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIiIsIHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScneyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScneyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJydcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScnXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nKCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScoIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIoIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSctIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJy0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIi0iLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJy8iLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nLyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiLyIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTScwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICIwIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTScxIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJzEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIjEiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJzkiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nOSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiOSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nPCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSc8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICI8IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSc9IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJz0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIj0iLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJz4iLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSc/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJz8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIj8iLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJ0AiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiQCIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSdBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJBIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSdCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJ0IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIkIiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJ1kiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiWSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nWiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSdaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJaIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSdgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJ2AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgImAiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJ2EiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0nYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAiYSIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0nYiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSdiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJiIiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSd5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNJ3kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgInkiLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNJ3oiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0neiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCAieiIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0neyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSd7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsICJ7IiwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTSdcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTSdcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgIlx1REJDMFx1REMwMCIsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0oIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNKCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTS0iLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0tIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNLyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTS8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0wIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTTEiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU0xIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNOSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTTkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU08IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTT0iLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU09IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNPiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU0/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTUAiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1AIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNQSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTUEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1CIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTVkiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1ZIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNWiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1gIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTWEiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU1hIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNYiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTWIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU15IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgU1lTVEVNeSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFNZU1RFTXoiLAorImlucHV0IjoiPCFET0NUWVBFYSBTWVNURU16IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgU1lTVEVNeyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTXsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBTWVNURU1cXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFNZU1RFTVx1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIFkiLAorImlucHV0IjoiPCFET0NUWVBFYSBZIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgWiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBgIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGEiLAorImlucHV0IjoiPCFET0NUWVBFYSBhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYVxcdTAwMDAiLAorImlucHV0IjoiPCFET0NUWVBFYSBhXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYVxcdTAwMDkiLAorImlucHV0IjoiPCFET0NUWVBFYSBhXHUwMDA5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYVxcdTAwMEEiLAorImlucHV0IjoiPCFET0NUWVBFYSBhXHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYVxcdTAwMEIiLAorImlucHV0IjoiPCFET0NUWVBFYSBhXHUwMDBCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhXFx1MDAwQyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGFcdTAwMEMiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhICIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGEgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYSEiLAorImlucHV0IjoiPCFET0NUWVBFYSBhISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGFcIiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGFcIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGEmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYSYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhJyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGEnIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYS0iLAorImlucHV0IjoiPCFET0NUWVBFYSBhLSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGEvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYS8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGEwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYTEiLAorImlucHV0IjoiPCFET0NUWVBFYSBhMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGE5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYTkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhPCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGE8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYT0iLAorImlucHV0IjoiPCFET0NUWVBFYSBhPSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGE+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhPyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGE/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYUAiLAorImlucHV0IjoiPCFET0NUWVBFYSBhQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGFBIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYUEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhQiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGFCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYVkiLAorImlucHV0IjoiPCFET0NUWVBFYSBhWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGFaIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYVoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhYCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGFgIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYWEiLAorImlucHV0IjoiPCFET0NUWVBFYSBhYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGFiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYWIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBheSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGF5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYXoiLAorImlucHV0IjoiPCFET0NUWVBFYSBheiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIGF7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgYXsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBhXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFYSBhXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgYiIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIGIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSB5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEgeSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhIHoiLAorImlucHV0IjoiPCFET0NUWVBFYSB6IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEgeyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIHsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYSBcXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhIFx1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhISIsCisiaW5wdXQiOiI8IURPQ1RZUEVhISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhISIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYVwiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWFcIiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhXCIiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEmIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEmIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEmIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhJyIsCisiaW5wdXQiOiI8IURPQ1RZUEVhJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhJyIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYS0iLAorImlucHV0IjoiPCFET0NUWVBFYS0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYS0iLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWEvIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWEvIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImEvIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhMCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhMCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYTEiLAorImlucHV0IjoiPCFET0NUWVBFYTEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYTEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWE5IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWE5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImE5IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhPCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhPCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYT0iLAorImlucHV0IjoiPCFET0NUWVBFYT0iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYT0iLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWE+IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWE+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhIiwgbnVsbCwgbnVsbCwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWE/IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWE/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImE/IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhQCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhQCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhQCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYUEiLAorImlucHV0IjoiPCFET0NUWVBFYUEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYWEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWFCIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWFCIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFiIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhWSIsCisiaW5wdXQiOiI8IURPQ1RZUEVhWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJheSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYVoiLAorImlucHV0IjoiPCFET0NUWVBFYVoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYXoiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWFbIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWFbIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFbIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhYCIsCisiaW5wdXQiOiI8IURPQ1RZUEVhYCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhYCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYWEiLAorImlucHV0IjoiPCFET0NUWVBFYWEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYWEiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWFiIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWFiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImFiIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVheSIsCisiaW5wdXQiOiI8IURPQ1RZUEVheSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJheSIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFYXoiLAorImlucHV0IjoiPCFET0NUWVBFYXoiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYXoiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRWF7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRWF7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImF7IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEVhXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFYVx1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJhXHVEQkMwXHVEQzAwIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEViIiwKKyJpbnB1dCI6IjwhRE9DVFlQRWIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiYiIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFeSIsCisiaW5wdXQiOiI8IURPQ1RZUEV5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgInkiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhRE9DVFlQRXoiLAorImlucHV0IjoiPCFET0NUWVBFeiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJ6IiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IURPQ1RZUEV7IiwKKyJpbnB1dCI6IjwhRE9DVFlQRXsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAieyIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFET0NUWVBFXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFET0NUWVBFXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgIlx1REJDMFx1REMwMCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFZIiwKKyJpbnB1dCI6IjwhWSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiWSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IVoiLAorImlucHV0IjoiPCFaIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJaIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhYCIsCisiaW5wdXQiOiI8IWAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgImAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCFhIiwKKyJpbnB1dCI6IjwhYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IWIiLAorImlucHV0IjoiPCFiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwheSIsCisiaW5wdXQiOiI8IXkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgInkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPCF6IiwKKyJpbnB1dCI6IjwheiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAieiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IXsiLAorImlucHV0IjoiPCF7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJ7Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwhXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPCFcdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1REJDMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8XCIiLAorImlucHV0IjoiPFwiIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjxcIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8JiIsCisiaW5wdXQiOiI8JiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8JiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8JyIsCisiaW5wdXQiOiI8JyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8JyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8LSIsCisiaW5wdXQiOiI8LSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8LSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8LiIsCisiaW5wdXQiOiI8LiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8LiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8LyIsCisiaW5wdXQiOiI8LyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8LyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L1xcdTAwMDAiLAorImlucHV0IjoiPC9cdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L1xcdTAwMDkiLAorImlucHV0IjoiPC9cdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1MDAwOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L1xcdTAwMEEiLAorImlucHV0IjoiPC9cdTAwMEEiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlx1MDAwQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L1xcdTAwMEIiLAorImlucHV0IjoiPC9cdTAwMEIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiXHUwMDBCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvXFx1MDAwQyIsCisiaW5wdXQiOiI8L1x1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiXHUwMDBDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvICIsCisiaW5wdXQiOiI8LyAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC8hIiwKKyJpbnB1dCI6IjwvISIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiISJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L1wiIiwKKyJpbnB1dCI6IjwvXCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIlwiIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvJiIsCisiaW5wdXQiOiI8LyYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIiYiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC8nIiwKKyJpbnB1dCI6IjwvJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiJyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Ly0iLAorImlucHV0IjoiPC8tIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICItIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvLyIsCisiaW5wdXQiOiI8Ly8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIi8iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC8wIiwKKyJpbnB1dCI6IjwvMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8LzEiLAorImlucHV0IjoiPC8xIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICIxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvOSIsCisiaW5wdXQiOiI8LzkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIjkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC88IiwKKyJpbnB1dCI6IjwvPCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiPCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Lz0iLAorImlucHV0IjoiPC89IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI9Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvPiIsCisiaW5wdXQiOiI8Lz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIl19LAorCit7ImRlc2NyaXB0aW9uIjoiPC8/IiwKKyJpbnB1dCI6IjwvPyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiPyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L0AiLAorImlucHV0IjoiPC9AIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJAIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvQT4iLAorImlucHV0IjoiPC9BPiIsCisib3V0cHV0IjpbWyJFbmRUYWciLCAiYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L0I+IiwKKyJpbnB1dCI6IjwvQj4iLAorIm91dHB1dCI6W1siRW5kVGFnIiwgImIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC9ZPiIsCisiaW5wdXQiOiI8L1k+IiwKKyJvdXRwdXQiOltbIkVuZFRhZyIsICJ5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvWj4iLAorImlucHV0IjoiPC9aPiIsCisib3V0cHV0IjpbWyJFbmRUYWciLCAieiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L1siLAorImlucHV0IjoiPC9bIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJbIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvYCIsCisiaW5wdXQiOiI8L2AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgImAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC9hPiIsCisiaW5wdXQiOiI8L2E+IiwKKyJvdXRwdXQiOltbIkVuZFRhZyIsICJhIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwvYj4iLAorImlucHV0IjoiPC9iPiIsCisib3V0cHV0IjpbWyJFbmRUYWciLCAiYiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8L3k+IiwKKyJpbnB1dCI6IjwveT4iLAorIm91dHB1dCI6W1siRW5kVGFnIiwgInkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC96PiIsCisiaW5wdXQiOiI8L3o+IiwKKyJvdXRwdXQiOltbIkVuZFRhZyIsICJ6Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwveyIsCisiaW5wdXQiOiI8L3siLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgInsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPC9cXHVEQkMwXFx1REMwMCIsCisiaW5wdXQiOiI8L1x1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiXHVEQkMwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwwIiwKKyJpbnB1dCI6IjwwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjwwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjwxIiwKKyJpbnB1dCI6IjwxIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjwxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw5IiwKKyJpbnB1dCI6Ijw5IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjw5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw8IiwKKyJpbnB1dCI6Ijw8IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjwiXSwgIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw9IiwKKyJpbnB1dCI6Ijw9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjw9Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw+IiwKKyJpbnB1dCI6Ijw+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIjw+Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/IiwKKyJpbnB1dCI6Ijw/IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/XFx1MDAwMCIsCisiaW5wdXQiOiI8P1x1MDAwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiP1x1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8P1xcdTAwMDkiLAorImlucHV0IjoiPD9cdTAwMDkiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9cdTAwMDkiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPD9cXHUwMDBBIiwKKyJpbnB1dCI6Ijw/XHUwMDBBIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/XHUwMDBBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/XFx1MDAwQiIsCisiaW5wdXQiOiI8P1x1MDAwQiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/XHUwMDBCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/XFx1MDAwQyIsCisiaW5wdXQiOiI8P1x1MDAwQyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiP1x1MDAwQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PyAiLAorImlucHV0IjoiPD8gIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/ICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PyEiLAorImlucHV0IjoiPD8hIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/ISJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8P1wiIiwKKyJpbnB1dCI6Ijw/XCIiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9cIiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PyYiLAorImlucHV0IjoiPD8mIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/JiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PyciLAorImlucHV0IjoiPD8nIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/JyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Py0iLAorImlucHV0IjoiPD8tIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/LSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Py8iLAorImlucHV0IjoiPD8vIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/LyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PzAiLAorImlucHV0IjoiPD8wIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/MCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PzEiLAorImlucHV0IjoiPD8xIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/MSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PzkiLAorImlucHV0IjoiPD85IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/OSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8PzwiLAorImlucHV0IjoiPD88IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/PCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Pz0iLAorImlucHV0IjoiPD89IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/PSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Pz4iLAorImlucHV0IjoiPD8+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICI/Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/PyIsCisiaW5wdXQiOiI8Pz8iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj8/Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/QCIsCisiaW5wdXQiOiI8P0AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9AIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/QSIsCisiaW5wdXQiOiI8P0EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9BIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/QiIsCisiaW5wdXQiOiI8P0IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9CIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/WSIsCisiaW5wdXQiOiI8P1kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9ZIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/WiIsCisiaW5wdXQiOiI8P1oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9aIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/YCIsCisiaW5wdXQiOiI8P2AiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9gIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/YSIsCisiaW5wdXQiOiI8P2EiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9hIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/YiIsCisiaW5wdXQiOiI8P2IiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9iIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/eSIsCisiaW5wdXQiOiI8P3kiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj95Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/eiIsCisiaW5wdXQiOiI8P3oiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj96Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/eyIsCisiaW5wdXQiOiI8P3siLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj97Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijw/XFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPD9cdURCQzBcdURDMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgIj9cdURCQzBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPEAiLAorImlucHV0IjoiPEAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiPEAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPEE+IiwKKyJpbnB1dCI6IjxBPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Qj4iLAorImlucHV0IjoiPEI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImIiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxZPiIsCisiaW5wdXQiOiI8WT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAieSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPFo+IiwKKyJpbnB1dCI6IjxaPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJ6Iiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8WyIsCisiaW5wdXQiOiI8WyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8WyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YCIsCisiaW5wdXQiOiI8YCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8YCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YT4iLAorImlucHV0IjoiPGE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhXFx1MDAwMD4iLAorImlucHV0IjoiPGFcdTAwMDA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYVx1RkZGRCIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGFcXHUwMDA4PiIsCisiaW5wdXQiOiI8YVx1MDAwOD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhXHUwMDA4Iiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YVxcdTAwMDk+IiwKKyJpbnB1dCI6IjxhXHUwMDA5PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YVxcdTAwMEE+IiwKKyJpbnB1dCI6IjxhXHUwMDBBPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YVxcdTAwMEI+IiwKKyJpbnB1dCI6IjxhXHUwMDBCPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImFcdTAwMEIiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhXFx1MDAwQz4iLAorImlucHV0IjoiPGFcdTAwMEM+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhXFx1MDAwRD4iLAorImlucHV0IjoiPGFcdTAwMEQ+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhXFx1MDAxRj4iLAorImlucHV0IjoiPGFcdTAwMUY+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYVx1MDAxRiIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgPiIsCisiaW5wdXQiOiI8YSA+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIFxcdTAwMDA+IiwKKyJpbnB1dCI6IjxhIFx1MDAwMD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJcdUZGRkQiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIFxcdTAwMDg+IiwKKyJpbnB1dCI6IjxhIFx1MDAwOD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJcdTAwMDgiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIFxcdTAwMDk+IiwKKyJpbnB1dCI6IjxhIFx1MDAwOT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgXFx1MDAwQT4iLAorImlucHV0IjoiPGEgXHUwMDBBPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBcXHUwMDBCPiIsCisiaW5wdXQiOiI8YSBcdTAwMEI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiXHUwMDBCIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBcXHUwMDBDPiIsCisiaW5wdXQiOiI8YSBcdTAwMEM+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIFxcdTAwMEQ+IiwKKyJpbnB1dCI6IjxhIFx1MDAwRD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgXFx1MDAxRj4iLAorImlucHV0IjoiPGEgXHUwMDFGPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7Ilx1MDAxRiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgID4iLAorImlucHV0IjoiPGEgID4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgIT4iLAorImlucHV0IjoiPGEgIT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiISI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgXCI+IiwKKyJpbnB1dCI6IjxhIFwiPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7IlwiIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSAjPiIsCisiaW5wdXQiOiI8YSAjPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyIjIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSAmPiIsCisiaW5wdXQiOiI8YSAmPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyImIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSAnPiIsCisiaW5wdXQiOiI8YSAnPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7IiciOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhICg+IiwKKyJpbnB1dCI6IjxhICg+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7IigiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIC0+IiwKKyJpbnB1dCI6IjxhIC0+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7Ii0iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIC4+IiwKKyJpbnB1dCI6IjxhIC4+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7Ii4iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIC8+IiwKKyJpbnB1dCI6IjxhIC8+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7fSwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIDA+IiwKKyJpbnB1dCI6IjxhIDA+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7IjAiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIDE+IiwKKyJpbnB1dCI6IjxhIDE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7IjEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIDk+IiwKKyJpbnB1dCI6IjxhIDk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7IjkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIDw+IiwKKyJpbnB1dCI6IjxhIDw+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiPCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgPT4iLAorImlucHV0IjoiPGEgPT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyI9IjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSA+IiwKKyJpbnB1dCI6IjxhID4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgPz4iLAorImlucHV0IjoiPGEgPz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiPyI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgQD4iLAorImlucHV0IjoiPGEgQD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiQCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgQT4iLAorImlucHV0IjoiPGEgQT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgQj4iLAorImlucHV0IjoiPGEgQj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgWT4iLAorImlucHV0IjoiPGEgWT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsieSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgWj4iLAorImlucHV0IjoiPGEgWj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsieiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgWz4iLAorImlucHV0IjoiPGEgWz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiWyI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYD4iLAorImlucHV0IjoiPGEgYD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT4iLAorImlucHV0IjoiPGEgYT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYVxcdTAwMDA+IiwKKyJpbnB1dCI6IjxhIGFcdTAwMDA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYVx1RkZGRCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYVxcdTAwMDg+IiwKKyJpbnB1dCI6IjxhIGFcdTAwMDg+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYVx1MDAwOCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYVxcdTAwMDk+IiwKKyJpbnB1dCI6IjxhIGFcdTAwMDk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFcXHUwMDBBPiIsCisiaW5wdXQiOiI8YSBhXHUwMDBBPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhXFx1MDAwQj4iLAorImlucHV0IjoiPGEgYVx1MDAwQj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhXHUwMDBCIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhXFx1MDAwQz4iLAorImlucHV0IjoiPGEgYVx1MDAwQz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYVxcdTAwMEQ+IiwKKyJpbnB1dCI6IjxhIGFcdTAwMEQ+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFcXHUwMDFGPiIsCisiaW5wdXQiOiI8YSBhXHUwMDFGPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImFcdTAwMUYiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgPiIsCisiaW5wdXQiOiI8YSBhID4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDAwPiIsCisiaW5wdXQiOiI8YSBhIFx1MDAwMD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1RkZGRCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDA4PiIsCisiaW5wdXQiOiI8YSBhIFx1MDAwOD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1MDAwOCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDA5PiIsCisiaW5wdXQiOiI8YSBhIFx1MDAwOT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDBBPiIsCisiaW5wdXQiOiI8YSBhIFx1MDAwQT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDBCPiIsCisiaW5wdXQiOiI8YSBhIFx1MDAwQj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1MDAwQiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDBDPiIsCisiaW5wdXQiOiI8YSBhIFx1MDAwQz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDBEPiIsCisiaW5wdXQiOiI8YSBhIFx1MDAwRD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSBcXHUwMDFGPiIsCisiaW5wdXQiOiI8YSBhIFx1MDAxRj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1MDAxRiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSAgPiIsCisiaW5wdXQiOiI8YSBhICA+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgIT4iLAorImlucHV0IjoiPGEgYSAhPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIiEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgXCI+IiwKKyJpbnB1dCI6IjxhIGEgXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICJcIiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSAjPiIsCisiaW5wdXQiOiI8YSBhICM+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiIyI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSAmPiIsCisiaW5wdXQiOiI8YSBhICY+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiJiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSAnPiIsCisiaW5wdXQiOiI8YSBhICc+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICInIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhICg+IiwKKyJpbnB1dCI6IjxhIGEgKD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICIoIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhIC0+IiwKKyJpbnB1dCI6IjxhIGEgLT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICItIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhIC4+IiwKKyJpbnB1dCI6IjxhIGEgLj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICIuIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhIC8+IiwKKyJpbnB1dCI6IjxhIGEgLz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9LCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSAwPiIsCisiaW5wdXQiOiI8YSBhIDA+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiMCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSAxPiIsCisiaW5wdXQiOiI8YSBhIDE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiMSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSA5PiIsCisiaW5wdXQiOiI8YSBhIDk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiOSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSA8PiIsCisiaW5wdXQiOiI8YSBhIDw+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICI8IjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhID0+IiwKKyJpbnB1dCI6IjxhIGEgPT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhID4iLAorImlucHV0IjoiPGEgYSA+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgPz4iLAorImlucHV0IjoiPGEgYSA/PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIj8iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgQD4iLAorImlucHV0IjoiPGEgYSBAPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIkAiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgQT4iLAorImlucHV0IjoiPGEgYSBBPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgQj4iLAorImlucHV0IjoiPGEgYSBCPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgImIiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgWT4iLAorImlucHV0IjoiPGEgYSBZPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgWj4iLAorImlucHV0IjoiPGEgYSBaPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInoiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgWz4iLAorImlucHV0IjoiPGEgYSBbPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlsiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgYD4iLAorImlucHV0IjoiPGEgYSBgPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgImAiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgYT4iLAorImlucHV0IjoiPGEgYSBhPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgYj4iLAorImlucHV0IjoiPGEgYSBiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgImIiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgeT4iLAorImlucHV0IjoiPGEgYSB5PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgej4iLAorImlucHV0IjoiPGEgYSB6PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInoiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgez4iLAorImlucHV0IjoiPGEgYSB7PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInsiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEgXFx1REJDMFxcdURDMDA+IiwKKyJpbnB1dCI6IjxhIGEgXHVEQkMwXHVEQzAwPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1REJDMFx1REMwMCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYSE+IiwKKyJpbnB1dCI6IjxhIGEhPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhISI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYVwiPiIsCisiaW5wdXQiOiI8YSBhXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYVwiIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhIz4iLAorImlucHV0IjoiPGEgYSM+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEjIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhJj4iLAorImlucHV0IjoiPGEgYSY+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEmIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhJz4iLAorImlucHV0IjoiPGEgYSc+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSciOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEoPiIsCisiaW5wdXQiOiI8YSBhKD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSgiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEtPiIsCisiaW5wdXQiOiI8YSBhLT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYS0iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEuPiIsCisiaW5wdXQiOiI8YSBhLj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYS4iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGEvPiIsCisiaW5wdXQiOiI8YSBhLz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9LCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYTA+IiwKKyJpbnB1dCI6IjxhIGEwPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhMCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYTE+IiwKKyJpbnB1dCI6IjxhIGExPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhMSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYTk+IiwKKyJpbnB1dCI6IjxhIGE5PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhOSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYTw+IiwKKyJpbnB1dCI6IjxhIGE8PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImE8IjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPT4iLAorImlucHV0IjoiPGEgYT0+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cXHUwMDAwPiIsCisiaW5wdXQiOiI8YSBhPVx1MDAwMD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiXHVGRkZEIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVxcdTAwMDg+IiwKKyJpbnB1dCI6IjxhIGE9XHUwMDA4PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcdTAwMDgifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XFx1MDAwOT4iLAorImlucHV0IjoiPGEgYT1cdTAwMDk+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cXHUwMDBBPiIsCisiaW5wdXQiOiI8YSBhPVx1MDAwQT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVxcdTAwMEI+IiwKKyJpbnB1dCI6IjxhIGE9XHUwMDBCPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcdTAwMEIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XFx1MDAwQz4iLAorImlucHV0IjoiPGEgYT1cdTAwMEM+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cXHUwMDBEPiIsCisiaW5wdXQiOiI8YSBhPVx1MDAwRD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVxcdTAwMUY+IiwKKyJpbnB1dCI6IjxhIGE9XHUwMDFGPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcdTAwMUYifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9ID4iLAorImlucHV0IjoiPGEgYT0gPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9IT4iLAorImlucHV0IjoiPGEgYT0hPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiISJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIlwiPiIsCisiaW5wdXQiOiI8YSBhPVwiXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCJcXHUwMDAwXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJcdTAwMDBcIj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiXHVGRkZEIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiXFx1MDAwOVwiPiIsCisiaW5wdXQiOiI8YSBhPVwiXHUwMDA5XCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcdTAwMDkifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCJcXHUwMDBBXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJcdTAwMEFcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6Ilx1MDAwQSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIlxcdTAwMEJcIj4iLAorImlucHV0IjoiPGEgYT1cIlx1MDAwQlwiPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcdTAwMEIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCJcXHUwMDBDXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJcdTAwMENcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6Ilx1MDAwQyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIiBcIj4iLAorImlucHV0IjoiPGEgYT1cIiBcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiAifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCIhXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCIhXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIhIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIiNcIj4iLAorImlucHV0IjoiPGEgYT1cIiNcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiMifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCIlXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCIlXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIlIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiJlwiPiIsCisiaW5wdXQiOiI8YSBhPVwiJlwiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiJiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIidcIj4iLAorImlucHV0IjoiPGEgYT1cIidcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IicifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCItXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCItXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiItIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiL1wiPiIsCisiaW5wdXQiOiI8YSBhPVwiL1wiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiLyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIjBcIj4iLAorImlucHV0IjoiPGEgYT1cIjBcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IjAifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCIxXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCIxXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIxIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiOVwiPiIsCisiaW5wdXQiOiI8YSBhPVwiOVwiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiOSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIjxcIj4iLAorImlucHV0IjoiPGEgYT1cIjxcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IjwifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCI9XCI+IiwKKyJpbnB1dCI6IjxhIGE9XCI9XCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiI9In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiPlwiPiIsCisiaW5wdXQiOiI8YSBhPVwiPlwiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiPiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIj9cIj4iLAorImlucHV0IjoiPGEgYT1cIj9cIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6Ij8ifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCJAXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJAXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJAIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiQVwiPiIsCisiaW5wdXQiOiI8YSBhPVwiQVwiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiQSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIkJcIj4iLAorImlucHV0IjoiPGEgYT1cIkJcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IkIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCJZXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJZXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJZIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiWlwiPiIsCisiaW5wdXQiOiI8YSBhPVwiWlwiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiWiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cImBcIj4iLAorImlucHV0IjoiPGEgYT1cImBcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImAifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCJhXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJhXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwiYlwiPiIsCisiaW5wdXQiOiI8YSBhPVwiYlwiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cInlcIj4iLAorImlucHV0IjoiPGEgYT1cInlcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6InkifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9XCJ6XCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJ6XCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJ6In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPVwie1wiPiIsCisiaW5wdXQiOiI8YSBhPVwie1wiPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoieyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cIlxcdURCQzBcXHVEQzAwXCI+IiwKKyJpbnB1dCI6IjxhIGE9XCJcdURCQzBcdURDMDBcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6Ilx1REJDMFx1REMwMCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0jPiIsCisiaW5wdXQiOiI8YSBhPSM+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIjIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPSU+IiwKKyJpbnB1dCI6IjxhIGE9JT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiUifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9Jj4iLAorImlucHV0IjoiPGEgYT0mPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiJiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJz4iLAorImlucHV0IjoiPGEgYT0nJz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nXFx1MDAwMCc+IiwKKyJpbnB1dCI6IjxhIGE9J1x1MDAwMCc+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6Ilx1RkZGRCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nXFx1MDAwOSc+IiwKKyJpbnB1dCI6IjxhIGE9J1x1MDAwOSc+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcdTAwMDkifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9J1xcdTAwMEEnPiIsCisiaW5wdXQiOiI8YSBhPSdcdTAwMEEnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiXHUwMDBBIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPSdcXHUwMDBCJz4iLAorImlucHV0IjoiPGEgYT0nXHUwMDBCJz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiXHUwMDBCIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPSdcXHUwMDBDJz4iLAorImlucHV0IjoiPGEgYT0nXHUwMDBDJz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6Ilx1MDAwQyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nICc+IiwKKyJpbnB1dCI6IjxhIGE9JyAnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiICJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nISc+IiwKKyJpbnB1dCI6IjxhIGE9JyEnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiISJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nXCInPiIsCisiaW5wdXQiOiI8YSBhPSdcIic+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcIiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJSc+IiwKKyJpbnB1dCI6IjxhIGE9JyUnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiJSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJic+IiwKKyJpbnB1dCI6IjxhIGE9JyYnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiJiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJz4iLAorImlucHV0IjoiPGEgYT0nJz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJ1xcdTAwMDA+IiwKKyJpbnB1dCI6IjxhIGE9JydcdTAwMDA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1RkZGRCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJ1xcdTAwMDg+IiwKKyJpbnB1dCI6IjxhIGE9JydcdTAwMDg+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1MDAwOCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJ1xcdTAwMDk+IiwKKyJpbnB1dCI6IjxhIGE9JydcdTAwMDk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydcXHUwMDBBPiIsCisiaW5wdXQiOiI8YSBhPScnXHUwMDBBPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPScnXFx1MDAwQj4iLAorImlucHV0IjoiPGEgYT0nJ1x1MDAwQj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiXHUwMDBCIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPScnXFx1MDAwQz4iLAorImlucHV0IjoiPGEgYT0nJ1x1MDAwQz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJ1xcdTAwMEQ+IiwKKyJpbnB1dCI6IjxhIGE9JydcdTAwMEQ+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydcXHUwMDFGPiIsCisiaW5wdXQiOiI8YSBhPScnXHUwMDFGPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICJcdTAwMUYiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JycgPiIsCisiaW5wdXQiOiI8YSBhPScnID4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJyE+IiwKKyJpbnB1dCI6IjxhIGE9JychPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiISI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJ1wiPiIsCisiaW5wdXQiOiI8YSBhPScnXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlwiIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPScnJj4iLAorImlucHV0IjoiPGEgYT0nJyY+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICImIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPScnJz4iLAorImlucHV0IjoiPGEgYT0nJyc+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIiciOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JyctPiIsCisiaW5wdXQiOiI8YSBhPScnLT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIi0iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JycuPiIsCisiaW5wdXQiOiI8YSBhPScnLj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIi4iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JycvPiIsCisiaW5wdXQiOiI8YSBhPScnLz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IiJ9LCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJzA+IiwKKyJpbnB1dCI6IjxhIGE9JycwPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiMCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJzE+IiwKKyJpbnB1dCI6IjxhIGE9JycxPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiMSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJzk+IiwKKyJpbnB1dCI6IjxhIGE9Jyc5PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIiLCAiOSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nJzw+IiwKKyJpbnB1dCI6IjxhIGE9Jyc8PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6IiIsICI8IjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPScnPT4iLAorImlucHV0IjoiPGEgYT0nJz0+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIj0iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9Jyc+IiwKKyJpbnB1dCI6IjxhIGE9Jyc+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9Jyc/PiIsCisiaW5wdXQiOiI8YSBhPScnPz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIj8iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydAPiIsCisiaW5wdXQiOiI8YSBhPScnQD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIkAiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydBPiIsCisiaW5wdXQiOiI8YSBhPScnQT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydCPiIsCisiaW5wdXQiOiI8YSBhPScnQj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgImIiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydZPiIsCisiaW5wdXQiOiI8YSBhPScnWT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydaPiIsCisiaW5wdXQiOiI8YSBhPScnWj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInoiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydgPiIsCisiaW5wdXQiOiI8YSBhPScnYD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgImAiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydhPiIsCisiaW5wdXQiOiI8YSBhPScnYT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydiPiIsCisiaW5wdXQiOiI8YSBhPScnYj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgImIiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9Jyd5PiIsCisiaW5wdXQiOiI8YSBhPScneT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9Jyd6PiIsCisiaW5wdXQiOiI8YSBhPScnej4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInoiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9Jyd7PiIsCisiaW5wdXQiOiI8YSBhPScnez4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgInsiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9JydcXHVEQkMwXFx1REMwMD4iLAorImlucHV0IjoiPGEgYT0nJ1x1REJDMFx1REMwMD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIiwgIlx1REJDMFx1REMwMCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nKCc+IiwKKyJpbnB1dCI6IjxhIGE9JygnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiKCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nLSc+IiwKKyJpbnB1dCI6IjxhIGE9Jy0nPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiLSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nLyc+IiwKKyJpbnB1dCI6IjxhIGE9Jy8nPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiLyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nMCc+IiwKKyJpbnB1dCI6IjxhIGE9JzAnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiMCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nMSc+IiwKKyJpbnB1dCI6IjxhIGE9JzEnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiMSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nOSc+IiwKKyJpbnB1dCI6IjxhIGE9JzknPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiOSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nPCc+IiwKKyJpbnB1dCI6IjxhIGE9JzwnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiPCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nPSc+IiwKKyJpbnB1dCI6IjxhIGE9Jz0nPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiPSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nPic+IiwKKyJpbnB1dCI6IjxhIGE9Jz4nPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiPiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nPyc+IiwKKyJpbnB1dCI6IjxhIGE9Jz8nPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiPyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nQCc+IiwKKyJpbnB1dCI6IjxhIGE9J0AnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiQCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nQSc+IiwKKyJpbnB1dCI6IjxhIGE9J0EnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiQSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nQic+IiwKKyJpbnB1dCI6IjxhIGE9J0InPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiQiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nWSc+IiwKKyJpbnB1dCI6IjxhIGE9J1knPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiWSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nWic+IiwKKyJpbnB1dCI6IjxhIGE9J1onPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiWiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nYCc+IiwKKyJpbnB1dCI6IjxhIGE9J2AnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nYSc+IiwKKyJpbnB1dCI6IjxhIGE9J2EnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nYic+IiwKKyJpbnB1dCI6IjxhIGE9J2InPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0neSc+IiwKKyJpbnB1dCI6IjxhIGE9J3knPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoieSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0neic+IiwKKyJpbnB1dCI6IjxhIGE9J3onPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoieiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0neyc+IiwKKyJpbnB1dCI6IjxhIGE9J3snPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoieyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0nXFx1REJDMFxcdURDMDAnPiIsCisiaW5wdXQiOiI8YSBhPSdcdURCQzBcdURDMDAnPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiXHVEQkMwXHVEQzAwIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPSg+IiwKKyJpbnB1dCI6IjxhIGE9KD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IigifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9LT4iLAorImlucHV0IjoiPGEgYT0tPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiLSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT0vPiIsCisiaW5wdXQiOiI8YSBhPS8+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIvIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPTA+IiwKKyJpbnB1dCI6IjxhIGE9MD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IjAifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9MT4iLAorImlucHV0IjoiPGEgYT0xPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiMSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT05PiIsCisiaW5wdXQiOiI8YSBhPTk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiI5In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPTw+IiwKKyJpbnB1dCI6IjxhIGE9PD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiPCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT09PiIsCisiaW5wdXQiOiI8YSBhPT0+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6Ij0ifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9PiIsCisiaW5wdXQiOiI8YSBhPT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPT8+IiwKKyJpbnB1dCI6IjxhIGE9Pz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6Ij8ifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9QD4iLAorImlucHV0IjoiPGEgYT1APiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiQCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1BPiIsCisiaW5wdXQiOiI8YSBhPUE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJBIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPUI+IiwKKyJpbnB1dCI6IjxhIGE9Qj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6IkIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9WT4iLAorImlucHV0IjoiPGEgYT1ZPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiWSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1aPiIsCisiaW5wdXQiOiI8YSBhPVo+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJaIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWA+IiwKKyJpbnB1dCI6IjxhIGE9YD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hPiIsCisiaW5wdXQiOiI8YSBhPWE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWFcXHUwMDAwPiIsCisiaW5wdXQiOiI8YSBhPWFcdTAwMDA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6ImFcdUZGRkQifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YVxcdTAwMDg+IiwKKyJpbnB1dCI6IjxhIGE9YVx1MDAwOD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYVx1MDAwOCJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hXFx1MDAwOT4iLAorImlucHV0IjoiPGEgYT1hXHUwMDA5PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hXFx1MDAwQT4iLAorImlucHV0IjoiPGEgYT1hXHUwMDBBPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hXFx1MDAwQj4iLAorImlucHV0IjoiPGEgYT1hXHUwMDBCPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhXHUwMDBCIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWFcXHUwMDBDPiIsCisiaW5wdXQiOiI8YSBhPWFcdTAwMEM+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWFcXHUwMDBEPiIsCisiaW5wdXQiOiI8YSBhPWFcdTAwMEQ+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWFcXHUwMDFGPiIsCisiaW5wdXQiOiI8YSBhPWFcdTAwMUY+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6ImFcdTAwMUYifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YSA+IiwKKyJpbnB1dCI6IjxhIGE9YSA+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWEhPiIsCisiaW5wdXQiOiI8YSBhPWEhPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYSEifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YVwiPiIsCisiaW5wdXQiOiI8YSBhPWFcIj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYVwiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWEjPiIsCisiaW5wdXQiOiI8YSBhPWEjPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYSMifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YSU+IiwKKyJpbnB1dCI6IjxhIGE9YSU+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhJSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hJj4iLAorImlucHV0IjoiPGEgYT1hJj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImEmIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWEnPiIsCisiaW5wdXQiOiI8YSBhPWEnPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhJyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hKD4iLAorImlucHV0IjoiPGEgYT1hKD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImEoIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWEtPiIsCisiaW5wdXQiOiI8YSBhPWEtPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYS0ifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YS8+IiwKKyJpbnB1dCI6IjxhIGE9YS8+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhLyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hMD4iLAorImlucHV0IjoiPGEgYT1hMD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImEwIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWExPiIsCisiaW5wdXQiOiI8YSBhPWExPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYTEifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YTk+IiwKKyJpbnB1dCI6IjxhIGE9YTk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhOSJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hPD4iLAorImlucHV0IjoiPGEgYT1hPD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYTwifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YT0+IiwKKyJpbnB1dCI6IjxhIGE9YT0+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6ImE9In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWE+IiwKKyJpbnB1dCI6IjxhIGE9YT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImEifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YT8+IiwKKyJpbnB1dCI6IjxhIGE9YT8+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhPyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hQD4iLAorImlucHV0IjoiPGEgYT1hQD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImFAIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWFBPiIsCisiaW5wdXQiOiI8YSBhPWFBPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYUEifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YUI+IiwKKyJpbnB1dCI6IjxhIGE9YUI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhQiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hWT4iLAorImlucHV0IjoiPGEgYT1hWT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImFZIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWFaPiIsCisiaW5wdXQiOiI8YSBhPWFaPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYVoifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YWA+IiwKKyJpbnB1dCI6IjxhIGE9YWA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYSI6ImFgIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWFhPiIsCisiaW5wdXQiOiI8YSBhPWFhPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYWEifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YWI+IiwKKyJpbnB1dCI6IjxhIGE9YWI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJhYiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1heT4iLAorImlucHV0IjoiPGEgYT1heT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImF5In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPWF6PiIsCisiaW5wdXQiOiI8YSBhPWF6PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYXoifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9YXs+IiwKKyJpbnB1dCI6IjxhIGE9YXs+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJheyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1hXFx1REJDMFxcdURDMDA+IiwKKyJpbnB1dCI6IjxhIGE9YVx1REJDMFx1REMwMD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6ImFcdURCQzBcdURDMDAifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9Yj4iLAorImlucHV0IjoiPGEgYT1iPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT15PiIsCisiaW5wdXQiOiI8YSBhPXk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJ5In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSBhPXo+IiwKKyJpbnB1dCI6IjxhIGE9ej4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYSI6InoifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE9ez4iLAorImlucHV0IjoiPGEgYT17PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwgeyJhIjoieyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYT1cXHVEQkMwXFx1REMwMD4iLAorImlucHV0IjoiPGEgYT1cdURCQzBcdURDMDA+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiJcdURCQzBcdURDMDAifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE+IiwKKyJpbnB1dCI6IjxhIGE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGE/PiIsCisiaW5wdXQiOiI8YSBhPz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYT8iOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFAPiIsCisiaW5wdXQiOiI8YSBhQD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYUAiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFBPiIsCisiaW5wdXQiOiI8YSBhQT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYWEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFCPiIsCisiaW5wdXQiOiI8YSBhQj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYWIiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFZPiIsCisiaW5wdXQiOiI8YSBhWT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYXkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFaPiIsCisiaW5wdXQiOiI8YSBhWj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYXoiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFbPiIsCisiaW5wdXQiOiI8YSBhWz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYVsiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFgPiIsCisiaW5wdXQiOiI8YSBhYD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYWAiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFhPiIsCisiaW5wdXQiOiI8YSBhYT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYWEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFiPiIsCisiaW5wdXQiOiI8YSBhYj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYWIiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGF5PiIsCisiaW5wdXQiOiI8YSBheT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYXkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGF6PiIsCisiaW5wdXQiOiI8YSBhej4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYXoiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGF7PiIsCisiaW5wdXQiOiI8YSBhez4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYXsiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhIGFcXHVEQkMwXFx1REMwMD4iLAorImlucHV0IjoiPGEgYVx1REJDMFx1REMwMD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYVx1REJDMFx1REMwMCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgYj4iLAorImlucHV0IjoiPGEgYj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiYiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgeT4iLAorImlucHV0IjoiPGEgeT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsieSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgej4iLAorImlucHV0IjoiPGEgej4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsieiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgez4iLAorImlucHV0IjoiPGEgez4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsieyI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEgXFx1REJDMFxcdURDMDA+IiwKKyJpbnB1dCI6IjxhIFx1REJDMFx1REMwMD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHsiXHVEQkMwXHVEQzAwIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSE+IiwKKyJpbnB1dCI6IjxhIT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhXCI+IiwKKyJpbnB1dCI6IjxhXCI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImFcIiIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEmPiIsCisiaW5wdXQiOiI8YSY+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEmIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YSc+IiwKKyJpbnB1dCI6IjxhJz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSciLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhLT4iLAorImlucHV0IjoiPGEtPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhLSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEuPiIsCisiaW5wdXQiOiI8YS4+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEuIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS8+IiwKKyJpbnB1dCI6IjxhLz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYSIsIHt9LCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvXFx1MDAwMD4iLAorImlucHV0IjoiPGEvXHUwMDAwPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiXHVGRkZEIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS9cXHUwMDA5PiIsCisiaW5wdXQiOiI8YS9cdTAwMDk+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvXFx1MDAwQT4iLAorImlucHV0IjoiPGEvXHUwMDBBPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhL1xcdTAwMEI+IiwKKyJpbnB1dCI6IjxhL1x1MDAwQj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7Ilx1MDAwQiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvXFx1MDAwQz4iLAorImlucHV0IjoiPGEvXHUwMDBDPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhLyA+IiwKKyJpbnB1dCI6IjxhLyA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvIT4iLAorImlucHV0IjoiPGEvIT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyIhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS9cIj4iLAorImlucHV0IjoiPGEvXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJcIiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvJj4iLAorImlucHV0IjoiPGEvJj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyImIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS8nPiIsCisiaW5wdXQiOiI8YS8nPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiJyI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvLT4iLAorImlucHV0IjoiPGEvLT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyItIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS8vPiIsCisiaW5wdXQiOiI8YS8vPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7fSwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhLzA+IiwKKyJpbnB1dCI6IjxhLzA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiMCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvMT4iLAorImlucHV0IjoiPGEvMT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyIxIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS85PiIsCisiaW5wdXQiOiI8YS85PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7IjkiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhLzw+IiwKKyJpbnB1dCI6IjxhLzw+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyI8IjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS89PiIsCisiaW5wdXQiOiI8YS89PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiPSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvPiIsCisiaW5wdXQiOiI8YS8+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImEiLCB7fSwgdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhLz8+IiwKKyJpbnB1dCI6IjxhLz8+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiPyI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvQD4iLAorImlucHV0IjoiPGEvQD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJAIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS9BPiIsCisiaW5wdXQiOiI8YS9BPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImEiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhL0I+IiwKKyJpbnB1dCI6IjxhL0I+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYiI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvWT4iLAorImlucHV0IjoiPGEvWT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJ5IjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS9aPiIsCisiaW5wdXQiOiI8YS9aPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7InoiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhL2A+IiwKKyJpbnB1dCI6IjxhL2A+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiYCI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvYT4iLAorImlucHV0IjoiPGEvYT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS9iPiIsCisiaW5wdXQiOiI8YS9iPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7ImIiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhL3k+IiwKKyJpbnB1dCI6IjxhL3k+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsieSI6IiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGEvej4iLAorImlucHV0IjoiPGEvej4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJ6IjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YS97PiIsCisiaW5wdXQiOiI8YS97PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImEiLCB7InsiOiIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhL1xcdURCQzBcXHVEQzAwPiIsCisiaW5wdXQiOiI8YS9cdURCQzBcdURDMDA+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiYSIsIHsiXHVEQkMwXHVEQzAwIjoiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YTA+IiwKKyJpbnB1dCI6IjxhMD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYTAiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhMT4iLAorImlucHV0IjoiPGExPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhMSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGE5PiIsCisiaW5wdXQiOiI8YTk+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImE5Iiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YTw+IiwKKyJpbnB1dCI6IjxhPD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYTwiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhPT4iLAorImlucHV0IjoiPGE9PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhPSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGE+IiwKKyJpbnB1dCI6IjxhPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YT8+IiwKKyJpbnB1dCI6IjxhPz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYT8iLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhQD4iLAorImlucHV0IjoiPGFAPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhQCIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGFBPiIsCisiaW5wdXQiOiI8YUE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImFhIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YUI+IiwKKyJpbnB1dCI6IjxhQj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYWIiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhWT4iLAorImlucHV0IjoiPGFZPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJheSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGFaPiIsCisiaW5wdXQiOiI8YVo+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImF6Iiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YVs+IiwKKyJpbnB1dCI6IjxhWz4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYVsiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhYD4iLAorImlucHV0IjoiPGFgPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhYCIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGFhPiIsCisiaW5wdXQiOiI8YWE+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImFhIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YWI+IiwKKyJpbnB1dCI6IjxhYj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYWIiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxheT4iLAorImlucHV0IjoiPGF5PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJheSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPGF6PiIsCisiaW5wdXQiOiI8YXo+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImF6Iiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8YXs+IiwKKyJpbnB1dCI6Ijxhez4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAiYXsiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjxhXFx1REJDMFxcdURDMDA+IiwKKyJpbnB1dCI6IjxhXHVEQkMwXHVEQzAwPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJhXHVEQkMwXHVEQzAwIiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8Yj4iLAorImlucHV0IjoiPGI+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgImIiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ijx5PiIsCisiaW5wdXQiOiI8eT4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAieSIsIHt9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPHo+IiwKKyJpbnB1dCI6Ijx6PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJ6Iiwge31dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8eyIsCisiaW5wdXQiOiI8eyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8eyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI8XFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiPFx1REJDMFx1REMwMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICI8XHVEQkMwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ij0iLAorImlucHV0IjoiPSIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiPSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI+IiwKKyJpbnB1dCI6Ij4iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIj4iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiPyIsCisiaW5wdXQiOiI/IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICI/Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkAiLAorImlucHV0IjoiQCIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiQCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJBIiwKKyJpbnB1dCI6IkEiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIkEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiQiIsCisiaW5wdXQiOiJCIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlkiLAorImlucHV0IjoiWSIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiWSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJaIiwKKyJpbnB1dCI6IloiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIloiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiYCIsCisiaW5wdXQiOiJgIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJgIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ImEiLAorImlucHV0IjoiYSIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJiIiwKKyJpbnB1dCI6ImIiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgImIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoieSIsCisiaW5wdXQiOiJ5IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJ5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6InoiLAorImlucHV0IjoieiIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAieiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJ7IiwKKyJpbnB1dCI6InsiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgInsiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiXFx1REJDMFxcdURDMDAiLAorImlucHV0IjoiXHVEQkMwXHVEQzAwIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJcdURCQzBcdURDMDAiXV19CisKK119CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3Rlc3Q0LnRlc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3Rlc3Q0LnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBmODU5ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vdGVzdDQudGVzdApAQCAtMCwwICsxLDM0NCBAQAoreyJ0ZXN0cyI6IFsKKworeyJkZXNjcmlwdGlvbiI6IjwgaW4gYXR0cmlidXRlIG5hbWUiLAorImlucHV0IjoiPHovMCAgPD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgInoiLCB7IjAiOiAiIiwgIjwiOiAiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI8IGluIGF0dHJpYnV0ZSB2YWx1ZSIsCisiaW5wdXQiOiI8eiB4PTw+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAieiIsIHsieCI6ICI8In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI9IGluIHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSIsCisiaW5wdXQiOiI8eiB6PXo9ej4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJ6IiwgeyJ6IjogIno9eiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPSBhdHRyaWJ1dGUiLAorImlucHV0IjoiPHogPT4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJ6IiwgeyI9IjogIiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiPT0gYXR0cmlidXRlIiwKKyJpbnB1dCI6Ijx6ID09PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAieiIsIHsiPSI6ICIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ij09PSBhdHRyaWJ1dGUiLAorImlucHV0IjoiPHogPT09PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAieiIsIHsiPSI6ICI9In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiI9PT09IGF0dHJpYnV0ZSIsCisiaW5wdXQiOiI8eiA9PT09PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsICJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJ6IiwgeyI9IjogIj09In1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJBbGxvd2VkIFwiIGFmdGVyIGFtcGVyc2FuZCBpbiBhdHRyaWJ1dGUgdmFsdWUiLAorImlucHV0IjoiPHogej1cIiZcIj4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAieiIsIHsieiI6ICImIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJOb24tYWxsb3dlZCAnIGFmdGVyIGFtcGVyc2FuZCBpbiBhdHRyaWJ1dGUgdmFsdWUiLAorImlucHV0IjoiPHogej1cIiYnXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAieiIsIHsieiI6ICImJyJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiQWxsb3dlZCAnIGFmdGVyIGFtcGVyc2FuZCBpbiBhdHRyaWJ1dGUgdmFsdWUiLAorImlucHV0IjoiPHogej0nJic+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgInoiLCB7InoiOiAiJiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiTm9uLWFsbG93ZWQgXCIgYWZ0ZXIgYW1wZXJzYW5kIGluIGF0dHJpYnV0ZSB2YWx1ZSIsCisiaW5wdXQiOiI8eiB6PScmXCInPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgInoiLCB7InoiOiAiJlwiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJUZXh0IGFmdGVyIGJvZ3VzIGNoYXJhY3RlciByZWZlcmVuY2UiLAorImlucHV0IjoiPHogej0nJnhsaW5rX3htbG5zOyc+YmFyPHo+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsWyJTdGFydFRhZyIsInoiLHsieiI6IiZ4bGlua194bWxuczsifV0sWyJDaGFyYWN0ZXIiLCJiYXIiXSxbIlN0YXJ0VGFnIiwieiIse31dXX0sCisKK3siZGVzY3JpcHRpb24iOiJUZXh0IGFmdGVyIGhleCBjaGFyYWN0ZXIgcmVmZXJlbmNlIiwKKyJpbnB1dCI6Ijx6IHo9JyYjeDAwMjA7IGZvbyc+YmFyPHo+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwieiIseyJ6IjoiICBmb28ifV0sWyJDaGFyYWN0ZXIiLCJiYXIiXSxbIlN0YXJ0VGFnIiwieiIse31dXX0sCisKK3siZGVzY3JpcHRpb24iOiJBdHRyaWJ1dGUgbmFtZSBzdGFydGluZyB3aXRoIFwiIiwKKyJpbnB1dCI6Ijxmb28gXCI9J2Jhcic+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiZm9vIiwgeyJcIiI6ICJiYXIifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkF0dHJpYnV0ZSBuYW1lIHN0YXJ0aW5nIHdpdGggJyIsCisiaW5wdXQiOiI8Zm9vICc9J2Jhcic+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiZm9vIiwgeyInIjogImJhciJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiQXR0cmlidXRlIG5hbWUgY29udGFpbmluZyBcIiIsCisiaW5wdXQiOiI8Zm9vIGFcImI9J2Jhcic+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAiZm9vIiwgeyJhXCJiIjogImJhciJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiQXR0cmlidXRlIG5hbWUgY29udGFpbmluZyAnIiwKKyJpbnB1dCI6Ijxmb28gYSdiPSdiYXInPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImZvbyIsIHsiYSdiIjogImJhciJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiVW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlIGNvbnRhaW5pbmcgJyIsCisiaW5wdXQiOiI8Zm9vIGE9YidjPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImZvbyIsIHsiYSI6ICJiJ2MifV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSBjb250YWluaW5nIFwiIiwKKyJpbnB1dCI6Ijxmb28gYT1iXCJjPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImZvbyIsIHsiYSI6ICJiXCJjIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJEb3VibGUtcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSBub3QgZm9sbG93ZWQgYnkgd2hpdGVzcGFjZSIsCisiaW5wdXQiOiI8Zm9vIGE9XCJiXCJjPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIlN0YXJ0VGFnIiwgImZvbyIsIHsiYSI6ICJiIiwgImMiOiAiIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJTaW5nbGUtcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSBub3QgZm9sbG93ZWQgYnkgd2hpdGVzcGFjZSIsCisiaW5wdXQiOiI8Zm9vIGE9J2InYz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJmb28iLCB7ImEiOiAiYiIsICJjIjogIiJ9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiUXVvdGVkIGF0dHJpYnV0ZSBmb2xsb3dlZCBieSBwZXJtaXR0ZWQgLyIsCisiaW5wdXQiOiI8YnIgYT0nYicvPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsImJyIix7ImEiOiJiIn0sdHJ1ZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlF1b3RlZCBhdHRyaWJ1dGUgZm9sbG93ZWQgYnkgbm9uLXBlcm1pdHRlZCAvIiwKKyJpbnB1dCI6IjxiYXIgYT0nYicvPiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsImJhciIseyJhIjoiYiJ9LHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiJDUiBFT0YgYWZ0ZXIgZG9jdHlwZSBuYW1lIiwKKyJpbnB1dCI6IjwhZG9jdHlwZSBodG1sIFxyIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiJDUiBFT0YgaW4gdGFnIG5hbWUiLAorImlucHV0IjoiPHpcciIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0sCisKK3siZGVzY3JpcHRpb24iOiJTbGFzaCBFT0YgaW4gdGFnIG5hbWUiLAorImlucHV0IjoiPHovIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciJdfSwKKworeyJkZXNjcmlwdGlvbiI6Ilplcm8gaGV4IG51bWVyaWMgZW50aXR5IiwKKyJpbnB1dCI6IiYjeDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiWmVybyBkZWNpbWFsIG51bWVyaWMgZW50aXR5IiwKKyJpbnB1dCI6IiYjMCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJaZXJvLXByZWZpeGVkIGhleCBudW1lcmljIGVudGl0eSIsCisiaW5wdXQiOiImI3gwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDE7IiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ilplcm8tcHJlZml4ZWQgZGVjaW1hbCBudW1lcmljIGVudGl0eSIsCisiaW5wdXQiOiImIzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NTsiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIkEiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW1wdHkgaGV4IG51bWVyaWMgZW50aXRpZXMiLAorImlucHV0IjoiJiN4ICYjWCAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiJiN4ICJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIiYjWCAiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRW1wdHkgZGVjaW1hbCBudW1lcmljIGVudGl0aWVzIiwKKyJpbnB1dCI6IiYjICYjOyAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiJiMgIl0sICJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiJiM7ICJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJOb24tQk1QIG51bWVyaWMgZW50aXR5IiwKKyJpbnB1dCI6IiYjeDEwMDAwOyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiXHVEODAwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6Ik1heGltdW0gbm9uLUJNUCBudW1lcmljIGVudGl0eSIsCisiaW5wdXQiOiImI1gxMEZGRkY7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REJGRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJBYm92ZSBtYXhpbXVtIG51bWVyaWMgZW50aXR5IiwKKyJpbnB1dCI6IiYjeDExMDAwMDsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjMyLWJpdCBoZXggbnVtZXJpYyBlbnRpdHkiLAorImlucHV0IjoiJiN4ODAwMDAwNDE7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiIzMy1iaXQgaGV4IG51bWVyaWMgZW50aXR5IiwKKyJpbnB1dCI6IiYjeDEwMDAwMDA0MTsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjMzLWJpdCBkZWNpbWFsIG51bWVyaWMgZW50aXR5IiwKKyJpbnB1dCI6IiYjNDI5NDk2NzM2MTsiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IjY1LWJpdCBoZXggbnVtZXJpYyBlbnRpdHkiLAorImlucHV0IjoiJiN4MTAwMDAwMDAwMDAwMDAwNDE7IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiI2NS1iaXQgZGVjaW1hbCBudW1lcmljIGVudGl0eSIsCisiaW5wdXQiOiImIzE4NDQ2NzQ0MDczNzA5NTUxNjgxOyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiU3Vycm9nYXRlIGNvZGUgcG9pbnQgZWRnZSBjYXNlcyIsCisiaW5wdXQiOiImI3hEN0ZGOyYjeEQ4MDA7JiN4RDgwMTsmI3hERkZFOyYjeERGRkY7JiN4RTAwMDsiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIlx1RDdGRiJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRCJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRCJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRCJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRFx1RTAwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJVcHBlcmNhc2Ugc3RhcnQgdGFnIG5hbWUiLAorImlucHV0IjoiPFg+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwgIngiLCB7fV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IlVwcGVyY2FzZSBlbmQgdGFnIG5hbWUiLAorImlucHV0IjoiPC9YPiIsCisib3V0cHV0IjpbWyJFbmRUYWciLCAieCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJVcHBlcmNhc2UgYXR0cmlidXRlIG5hbWUiLAorImlucHV0IjoiPHggWD4iLAorIm91dHB1dCI6W1siU3RhcnRUYWciLCAieCIsIHsgIngiOiIiIH1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJUYWcvYXR0cmlidXRlIG5hbWUgY2FzZSBlZGdlIHZhbHVlcyIsCisiaW5wdXQiOiI8eEBBWltgYXp7IEBBWltgYXp7PiIsCisib3V0cHV0IjpbWyJTdGFydFRhZyIsICJ4QGF6W2BhensiLCB7ICJAYXpbYGF6eyI6IiIgfV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkR1cGxpY2F0ZSBkaWZmZXJlbnQtY2FzZSBhdHRyaWJ1dGVzIiwKKyJpbnB1dCI6Ijx4IHg9MSB4PTIgWD0zPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiU3RhcnRUYWciLCAieCIsIHsgIngiOiIxIiB9XV19LAorCit7ImRlc2NyaXB0aW9uIjoiVXBwZXJjYXNlIGNsb3NlIHRhZyBhdHRyaWJ1dGVzIiwKKyJpbnB1dCI6IjwveCBYPiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkVuZFRhZyIsICJ4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkR1cGxpY2F0ZSBjbG9zZSB0YWcgYXR0cmlidXRlcyIsCisiaW5wdXQiOiI8L3ggeCB4PiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiRW5kVGFnIiwgIngiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiUGVybWl0dGVkIHNsYXNoIiwKKyJpbnB1dCI6Ijxici8+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwiYnIiLHt9LHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiJOb24tcGVybWl0dGVkIHNsYXNoIiwKKyJpbnB1dCI6Ijx4ci8+IiwKKyJvdXRwdXQiOltbIlN0YXJ0VGFnIiwieHIiLHt9LHRydWVdXX0sCisKK3siZGVzY3JpcHRpb24iOiJQZXJtaXR0ZWQgc2xhc2ggYnV0IGluIGNsb3NlIHRhZyIsCisiaW5wdXQiOiI8L2JyLz4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJFbmRUYWciLCAiYnIiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRG9jdHlwZSBwdWJsaWMgY2FzZS1zZW5zaXRpdml0eSAoMSkiLAorImlucHV0IjoiPCFEb0N0WXBFIEh0TWwgUHVCbEljIFwiQWJDXCIgXCJYeVpcIj4iLAorIm91dHB1dCI6W1siRE9DVFlQRSIsICJodG1sIiwgIkFiQyIsICJYeVoiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRG9jdHlwZSBwdWJsaWMgY2FzZS1zZW5zaXRpdml0eSAoMikiLAorImlucHV0IjoiPCFkT2NUeVBlIGhUbUwgcFViTGlDIFwiYUJjXCIgXCJ4WXpcIj4iLAorIm91dHB1dCI6W1siRE9DVFlQRSIsICJodG1sIiwgImFCYyIsICJ4WXoiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRG9jdHlwZSBzeXN0ZW0gY2FzZS1zZW5zaXRpdml0eSAoMSkiLAorImlucHV0IjoiPCFEb0N0WXBFIEh0TWwgU3lTdEVtIFwiWHlaXCI+IiwKKyJvdXRwdXQiOltbIkRPQ1RZUEUiLCAiaHRtbCIsIG51bGwsICJYeVoiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRG9jdHlwZSBzeXN0ZW0gY2FzZS1zZW5zaXRpdml0eSAoMikiLAorImlucHV0IjoiPCFkT2NUeVBlIGhUbUwgc1lzVGVNIFwieFl6XCI+IiwKKyJvdXRwdXQiOltbIkRPQ1RZUEUiLCAiaHRtbCIsIG51bGwsICJ4WXoiLCB0cnVlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiVSswMDAwIGluIGxvb2thaGVhZCByZWdpb24gYWZ0ZXIgbm9uLW1hdGNoaW5nIGNoYXJhY3RlciIsCisiaW5wdXQiOiI8IWRvYz5cdTAwMDAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJDb21tZW50IiwgImRvYyJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwMCJdXSwKKyJpZ25vcmVFcnJvck9yZGVyIjp0cnVlfSwKKworeyJkZXNjcmlwdGlvbiI6IlUrMDAwMCBpbiBsb29rYWhlYWQgcmVnaW9uIiwKKyJpbnB1dCI6IjwhZG9jXHUwMDAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJkb2NcdUZGRkQiXV0sCisiaWdub3JlRXJyb3JPcmRlciI6dHJ1ZX0sCisKK3siZGVzY3JpcHRpb24iOiJVKzAwODAgaW4gbG9va2FoZWFkIHJlZ2lvbiIsCisiaW5wdXQiOiI8IWRvY1x1MDA4MCIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJkb2NcdTAwODAiXV0sCisiaWdub3JlRXJyb3JPcmRlciI6dHJ1ZX0sCisKK3siZGVzY3JpcHRpb24iOiJVK0ZERDEgaW4gbG9va2FoZWFkIHJlZ2lvbiIsCisiaW5wdXQiOiI8IWRvY1x1RkREMSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCAiUGFyc2VFcnJvciIsIFsiQ29tbWVudCIsICJkb2NcdUZERDEiXV0sCisiaWdub3JlRXJyb3JPcmRlciI6dHJ1ZX0sCisKK3siZGVzY3JpcHRpb24iOiJVKzFGRkZGIGluIGxvb2thaGVhZCByZWdpb24iLAorImlucHV0IjoiPCFkb2NcdUQ4M0ZcdURGRkYiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgIlBhcnNlRXJyb3IiLCBbIkNvbW1lbnQiLCAiZG9jXHVEODNGXHVERkZGIl1dLAorImlnbm9yZUVycm9yT3JkZXIiOnRydWV9LAorCit7ImRlc2NyaXB0aW9uIjoiQ1IgZm9sbG93ZWQgYnkgbm9uLUxGIiwKKyJpbnB1dCI6IlxyPyIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiXG4/Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkNSIGF0IEVPRiIsCisiaW5wdXQiOiJcciIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiXG4iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiTEYgYXQgRU9GIiwKKyJpbnB1dCI6IlxuIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJcbiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJDUiBMRiIsCisiaW5wdXQiOiJcclxuIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJcbiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJDUiBDUiIsCisiaW5wdXQiOiJcclxyIiwKKyJvdXRwdXQiOltbIkNoYXJhY3RlciIsICJcblxuIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkxGIExGIiwKKyJpbnB1dCI6IlxuXG4iLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIlxuXG4iXV19LAorCit7ImRlc2NyaXB0aW9uIjoiTEYgQ1IiLAorImlucHV0IjoiXG5cciIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiXG5cbiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJ0ZXh0IENSIENSIENSIHRleHQiLAorImlucHV0IjoidGV4dFxyXHJccnRleHQiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgInRleHRcblxuXG50ZXh0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkRvY3R5cGUgcHVibGlrIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFBVQkxJSyBcIkFiQ1wiIFwiWHlaXCI+IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiJEb2N0eXBlIHB1YmxpIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFBVQkxJIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiRE9DVFlQRSIsICJodG1sIiwgbnVsbCwgbnVsbCwgZmFsc2VdXX0sCisKK3siZGVzY3JpcHRpb24iOiJEb2N0eXBlIHNpc3RlbSIsCisiaW5wdXQiOiI8IURPQ1RZUEUgaHRtbCBTSVNURU0gXCJBYkNcIj4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImh0bWwiLCBudWxsLCBudWxsLCBmYWxzZV1dfSwKKworeyJkZXNjcmlwdGlvbiI6IkRvY3R5cGUgc3lzIiwKKyJpbnB1dCI6IjwhRE9DVFlQRSBodG1sIFNZUyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkRPQ1RZUEUiLCAiaHRtbCIsIG51bGwsIG51bGwsIGZhbHNlXV19LAorCit7ImRlc2NyaXB0aW9uIjoiRG9jdHlwZSBodG1sIHg+dGV4dCIsCisiaW5wdXQiOiI8IURPQ1RZUEUgaHRtbCB4PnRleHQiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJET0NUWVBFIiwgImh0bWwiLCBudWxsLCBudWxsLCBmYWxzZV0sIFsiQ2hhcmFjdGVyIiwgInRleHQiXV19LAorCit7ImRlc2NyaXB0aW9uIjoiR3JhdmUgYWNjZW50IGluIHVucXVvdGVkIGF0dHJpYnV0ZSIsCisiaW5wdXQiOiI8YSBhPWFhYD4iLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIiwgWyJTdGFydFRhZyIsICJhIiwgeyJhIjoiYWFgIn1dXX0sCisKK3siZGVzY3JpcHRpb24iOiJFT0YgaW4gdGFnIG5hbWUgc3RhdGUgIiwKKyJpbnB1dCI6IjxhIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciJdfSwKKworeyJkZXNjcmlwdGlvbiI6IkVPRiBpbiB0YWcgbmFtZSBzdGF0ZSIsCisiaW5wdXQiOiI8YSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0sCisKK3siZGVzY3JpcHRpb24iOiJFT0YgaW4gYmVmb3JlIGF0dHJpYnV0ZSBuYW1lIHN0YXRlIiwKKyJpbnB1dCI6IjxhICIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0sCisKK3siZGVzY3JpcHRpb24iOiJFT0YgaW4gYXR0cmlidXRlIG5hbWUgc3RhdGUiLAorImlucHV0IjoiPGEgYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0sCisKK3siZGVzY3JpcHRpb24iOiJFT0YgaW4gYWZ0ZXIgYXR0cmlidXRlIG5hbWUgc3RhdGUiLAorImlucHV0IjoiPGEgYSAiLAorIm91dHB1dCI6WyJQYXJzZUVycm9yIl19LAorCit7ImRlc2NyaXB0aW9uIjoiRU9GIGluIGJlZm9yZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGUiLAorImlucHV0IjoiPGEgYSA9IiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciJdfSwKKworeyJkZXNjcmlwdGlvbiI6IkVPRiBpbiBhdHRyaWJ1dGUgdmFsdWUgKGRvdWJsZSBxdW90ZWQpIHN0YXRlIiwKKyJpbnB1dCI6IjxhIGEgPVwiYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0sCisKK3siZGVzY3JpcHRpb24iOiJFT0YgaW4gYXR0cmlidXRlIHZhbHVlIChzaW5nbGUgcXVvdGVkKSBzdGF0ZSIsCisiaW5wdXQiOiI8YSBhID0nYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0sCisKK3siZGVzY3JpcHRpb24iOiJFT0YgaW4gYXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGUiLAorImlucHV0IjoiPGEgYSA9YSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0sCisKK3siZGVzY3JpcHRpb24iOiJFT0YgaW4gYWZ0ZXIgYXR0cmlidXRlIHZhbHVlIHN0YXRlIiwKKyJpbnB1dCI6IjxhIGEgPSdhJyIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiXX0KKworXX0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vdW5pY29kZUNoYXJzLnRlc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3VuaWNvZGVDaGFycy50ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3Nzg2NjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3VuaWNvZGVDaGFycy50ZXN0CkBAIC0wLDAgKzEsMTI5NSBAQAoreyJ0ZXN0cyI6IFsKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAwMSIsCisiaW5wdXQiOiAiXHUwMDAxIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMDEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDAyIiwKKyJpbnB1dCI6ICJcdTAwMDIiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMDMiLAorImlucHV0IjogIlx1MDAwMyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDAzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAwNCIsCisiaW5wdXQiOiAiXHUwMDA0IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMDQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDA1IiwKKyJpbnB1dCI6ICJcdTAwMDUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMDYiLAorImlucHV0IjogIlx1MDAwNiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDA2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAwNyIsCisiaW5wdXQiOiAiXHUwMDA3IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMDciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDA4IiwKKyJpbnB1dCI6ICJcdTAwMDgiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMEIiLAorImlucHV0IjogIlx1MDAwQiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDBCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAwRSIsCisiaW5wdXQiOiAiXHUwMDBFIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMEUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDBGIiwKKyJpbnB1dCI6ICJcdTAwMEYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAwRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMTAiLAorImlucHV0IjogIlx1MDAxMCIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDEwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAxMSIsCisiaW5wdXQiOiAiXHUwMDExIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMTEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDEyIiwKKyJpbnB1dCI6ICJcdTAwMTIiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMTMiLAorImlucHV0IjogIlx1MDAxMyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDEzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAxNCIsCisiaW5wdXQiOiAiXHUwMDE0IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMTQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDE1IiwKKyJpbnB1dCI6ICJcdTAwMTUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMTYiLAorImlucHV0IjogIlx1MDAxNiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDE2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAxNyIsCisiaW5wdXQiOiAiXHUwMDE3IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMTciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDE4IiwKKyJpbnB1dCI6ICJcdTAwMTgiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMTkiLAorImlucHV0IjogIlx1MDAxOSIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDE5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAxQSIsCisiaW5wdXQiOiAiXHUwMDFBIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMUEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDFCIiwKKyJpbnB1dCI6ICJcdTAwMUIiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMUMiLAorImlucHV0IjogIlx1MDAxQyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDFDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAxRCIsCisiaW5wdXQiOiAiXHUwMDFEIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwMUQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDFFIiwKKyJpbnB1dCI6ICJcdTAwMUUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1MDAxRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMUYiLAorImlucHV0IjogIlx1MDAxRiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDFGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA3RiIsCisiaW5wdXQiOiAiXHUwMDdGIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdTAwN0YiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREQwIiwKKyJpbnB1dCI6ICJcdUZERDAiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkREMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERDEiLAorImlucHV0IjogIlx1RkREMSIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREQxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkREMiIsCisiaW5wdXQiOiAiXHVGREQyIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERDIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREQzIiwKKyJpbnB1dCI6ICJcdUZERDMiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkREMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERDQiLAorImlucHV0IjogIlx1RkRENCIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREQ0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRENSIsCisiaW5wdXQiOiAiXHVGREQ1IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERDUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREQ2IiwKKyJpbnB1dCI6ICJcdUZERDYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkRENiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERDciLAorImlucHV0IjogIlx1RkRENyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREQ3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkREOCIsCisiaW5wdXQiOiAiXHVGREQ4IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERDgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREQ5IiwKKyJpbnB1dCI6ICJcdUZERDkiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkREOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZEREEiLAorImlucHV0IjogIlx1RkREQSIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGRERBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkREQiIsCisiaW5wdXQiOiAiXHVGRERCIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZEREIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGRERDIiwKKyJpbnB1dCI6ICJcdUZEREMiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkREQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZEREQiLAorImlucHV0IjogIlx1RkRERCIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREREIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRERSIsCisiaW5wdXQiOiAiXHVGRERFIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZEREUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGRERGIiwKKyJpbnB1dCI6ICJcdUZEREYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkRERiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERTAiLAorImlucHV0IjogIlx1RkRFMCIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREUwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRFMSIsCisiaW5wdXQiOiAiXHVGREUxIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERTEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREUyIiwKKyJpbnB1dCI6ICJcdUZERTIiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkRFMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERTMiLAorImlucHV0IjogIlx1RkRFMyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREUzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRFNCIsCisiaW5wdXQiOiAiXHVGREU0IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERTQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREU1IiwKKyJpbnB1dCI6ICJcdUZERTUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkRFNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERTYiLAorImlucHV0IjogIlx1RkRFNiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREU2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRFNyIsCisiaW5wdXQiOiAiXHVGREU3IiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERTciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREU4IiwKKyJpbnB1dCI6ICJcdUZERTgiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkRFOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERTkiLAorImlucHV0IjogIlx1RkRFOSIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREU5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRFQSIsCisiaW5wdXQiOiAiXHVGREVBIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERUEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREVCIiwKKyJpbnB1dCI6ICJcdUZERUIiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkRFQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERUMiLAorImlucHV0IjogIlx1RkRFQyIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREVDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRFRCIsCisiaW5wdXQiOiAiXHVGREVEIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZERUQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGREVFIiwKKyJpbnB1dCI6ICJcdUZERUUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkRFRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERUYiLAorImlucHV0IjogIlx1RkRFRiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVGREVGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkZGRSIsCisiaW5wdXQiOiAiXHVGRkZFIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdUZGRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGRkZGIiwKKyJpbnB1dCI6ICJcdUZGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RkZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzFGRkZFIiwKKyJpbnB1dCI6ICJcdUQ4M0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDgzRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzFGRkZGIiwKKyJpbnB1dCI6ICJcdUQ4M0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDgzRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzJGRkZFIiwKKyJpbnB1dCI6ICJcdUQ4N0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDg3Rlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzJGRkZGIiwKKyJpbnB1dCI6ICJcdUQ4N0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDg3Rlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzNGRkZFIiwKKyJpbnB1dCI6ICJcdUQ4QkZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDhCRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzNGRkZGIiwKKyJpbnB1dCI6ICJcdUQ4QkZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDhCRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzRGRkZFIiwKKyJpbnB1dCI6ICJcdUQ4RkZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDhGRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzRGRkZGIiwKKyJpbnB1dCI6ICJcdUQ4RkZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDhGRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzVGRkZFIiwKKyJpbnB1dCI6ICJcdUQ5M0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDkzRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzVGRkZGIiwKKyJpbnB1dCI6ICJcdUQ5M0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDkzRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzZGRkZFIiwKKyJpbnB1dCI6ICJcdUQ5N0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDk3Rlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzZGRkZGIiwKKyJpbnB1dCI6ICJcdUQ5N0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDk3Rlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzdGRkZFIiwKKyJpbnB1dCI6ICJcdUQ5QkZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDlCRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzdGRkZGIiwKKyJpbnB1dCI6ICJcdUQ5QkZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDlCRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzhGRkZFIiwKKyJpbnB1dCI6ICJcdUQ5RkZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDlGRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzhGRkZGIiwKKyJpbnB1dCI6ICJcdUQ5RkZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1RDlGRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzlGRkZFIiwKKyJpbnB1dCI6ICJcdURBM0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REEzRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzlGRkZGIiwKKyJpbnB1dCI6ICJcdURBM0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REEzRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0FGRkZFIiwKKyJpbnB1dCI6ICJcdURBN0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REE3Rlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0FGRkZGIiwKKyJpbnB1dCI6ICJcdURBN0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REE3Rlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0JGRkZFIiwKKyJpbnB1dCI6ICJcdURBQkZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REFCRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0JGRkZGIiwKKyJpbnB1dCI6ICJcdURBQkZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REFCRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0NGRkZFIiwKKyJpbnB1dCI6ICJcdURBRkZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REFGRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0NGRkZGIiwKKyJpbnB1dCI6ICJcdURBRkZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REFGRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0RGRkZFIiwKKyJpbnB1dCI6ICJcdURCM0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REIzRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0RGRkZGIiwKKyJpbnB1dCI6ICJcdURCM0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REIzRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0VGRkZFIiwKKyJpbnB1dCI6ICJcdURCN0ZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REI3Rlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0VGRkZGIiwKKyJpbnB1dCI6ICJcdURCN0ZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REI3Rlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZGRkZFIiwKKyJpbnB1dCI6ICJcdURCQkZcdURGRkUiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REJCRlx1REZGRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZGRkZGIiwKKyJpbnB1dCI6ICJcdURCQkZcdURGRkYiLAorIm91dHB1dCI6IFsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlx1REJCRlx1REZGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzEwRkZGRSIsCisiaW5wdXQiOiAiXHVEQkZGXHVERkZFIiwKKyJvdXRwdXQiOiBbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcdURCRkZcdURGRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSsxMEZGRkYiLAorImlucHV0IjogIlx1REJGRlx1REZGRiIsCisib3V0cHV0IjogWyJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHVEQkZGXHVERkZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMDkiLAorImlucHV0IjogIlx1MDAwOSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAwOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDBBIiwKKyJpbnB1dCI6ICJcdTAwMEEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMEEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAyMCIsCisiaW5wdXQiOiAiXHUwMDIwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDIwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMjEiLAorImlucHV0IjogIlx1MDAyMSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDIyIiwKKyJpbnB1dCI6ICJcdTAwMjIiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMjIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAyMyIsCisiaW5wdXQiOiAiXHUwMDIzIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDIzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMjQiLAorImlucHV0IjogIlx1MDAyNCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyNCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDI1IiwKKyJpbnB1dCI6ICJcdTAwMjUiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMjUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAyNiIsCisiaW5wdXQiOiAiXHUwMDI2IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDI2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMjciLAorImlucHV0IjogIlx1MDAyNyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyNyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDI4IiwKKyJpbnB1dCI6ICJcdTAwMjgiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMjgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAyOSIsCisiaW5wdXQiOiAiXHUwMDI5IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDI5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMkEiLAorImlucHV0IjogIlx1MDAyQSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDJCIiwKKyJpbnB1dCI6ICJcdTAwMkIiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMkIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAyQyIsCisiaW5wdXQiOiAiXHUwMDJDIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDJDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMkQiLAorImlucHV0IjogIlx1MDAyRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAyRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDJFIiwKKyJpbnB1dCI6ICJcdTAwMkUiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAyRiIsCisiaW5wdXQiOiAiXHUwMDJGIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDJGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMzAiLAorImlucHV0IjogIlx1MDAzMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDMxIiwKKyJpbnB1dCI6ICJcdTAwMzEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMzEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAzMiIsCisiaW5wdXQiOiAiXHUwMDMyIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDMyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMzMiLAorImlucHV0IjogIlx1MDAzMyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDM0IiwKKyJpbnB1dCI6ICJcdTAwMzQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMzQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAzNSIsCisiaW5wdXQiOiAiXHUwMDM1IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDM1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMzYiLAorImlucHV0IjogIlx1MDAzNiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDM3IiwKKyJpbnB1dCI6ICJcdTAwMzciLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwMzciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAzOCIsCisiaW5wdXQiOiAiXHUwMDM4IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDM4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwMzkiLAorImlucHV0IjogIlx1MDAzOSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDNBIiwKKyJpbnB1dCI6ICJcdTAwM0EiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwM0EiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAzQiIsCisiaW5wdXQiOiAiXHUwMDNCIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDNCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwM0QiLAorImlucHV0IjogIlx1MDAzRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDAzRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDNFIiwKKyJpbnB1dCI6ICJcdTAwM0UiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwM0UiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDAzRiIsCisiaW5wdXQiOiAiXHUwMDNGIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDNGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNDAiLAorImlucHV0IjogIlx1MDA0MCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0MCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDQxIiwKKyJpbnB1dCI6ICJcdTAwNDEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNDEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA0MiIsCisiaW5wdXQiOiAiXHUwMDQyIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDQyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNDMiLAorImlucHV0IjogIlx1MDA0MyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0MyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDQ0IiwKKyJpbnB1dCI6ICJcdTAwNDQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNDQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA0NSIsCisiaW5wdXQiOiAiXHUwMDQ1IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDQ1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNDYiLAorImlucHV0IjogIlx1MDA0NiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0NiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDQ3IiwKKyJpbnB1dCI6ICJcdTAwNDciLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNDciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA0OCIsCisiaW5wdXQiOiAiXHUwMDQ4IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDQ4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNDkiLAorImlucHV0IjogIlx1MDA0OSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0OSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDRBIiwKKyJpbnB1dCI6ICJcdTAwNEEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNEEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA0QiIsCisiaW5wdXQiOiAiXHUwMDRCIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDRCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNEMiLAorImlucHV0IjogIlx1MDA0QyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0QyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDREIiwKKyJpbnB1dCI6ICJcdTAwNEQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNEQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA0RSIsCisiaW5wdXQiOiAiXHUwMDRFIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDRFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNEYiLAorImlucHV0IjogIlx1MDA0RiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA0RiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDUwIiwKKyJpbnB1dCI6ICJcdTAwNTAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNTAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA1MSIsCisiaW5wdXQiOiAiXHUwMDUxIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDUxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNTIiLAorImlucHV0IjogIlx1MDA1MiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1MiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDUzIiwKKyJpbnB1dCI6ICJcdTAwNTMiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNTMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA1NCIsCisiaW5wdXQiOiAiXHUwMDU0IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDU0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNTUiLAorImlucHV0IjogIlx1MDA1NSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1NSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDU2IiwKKyJpbnB1dCI6ICJcdTAwNTYiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNTYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA1NyIsCisiaW5wdXQiOiAiXHUwMDU3IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDU3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNTgiLAorImlucHV0IjogIlx1MDA1OCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1OCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDU5IiwKKyJpbnB1dCI6ICJcdTAwNTkiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNTkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA1QSIsCisiaW5wdXQiOiAiXHUwMDVBIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDVBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNUIiLAorImlucHV0IjogIlx1MDA1QiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1QiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDVDIiwKKyJpbnB1dCI6ICJcdTAwNUMiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNUMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA1RCIsCisiaW5wdXQiOiAiXHUwMDVEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDVEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNUUiLAorImlucHV0IjogIlx1MDA1RSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA1RSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDVGIiwKKyJpbnB1dCI6ICJcdTAwNUYiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNUYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA2MCIsCisiaW5wdXQiOiAiXHUwMDYwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDYwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNjEiLAorImlucHV0IjogIlx1MDA2MSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2MSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDYyIiwKKyJpbnB1dCI6ICJcdTAwNjIiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNjIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA2MyIsCisiaW5wdXQiOiAiXHUwMDYzIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDYzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNjQiLAorImlucHV0IjogIlx1MDA2NCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2NCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDY1IiwKKyJpbnB1dCI6ICJcdTAwNjUiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNjUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA2NiIsCisiaW5wdXQiOiAiXHUwMDY2IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDY2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNjciLAorImlucHV0IjogIlx1MDA2NyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2NyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDY4IiwKKyJpbnB1dCI6ICJcdTAwNjgiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNjgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA2OSIsCisiaW5wdXQiOiAiXHUwMDY5IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDY5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNkEiLAorImlucHV0IjogIlx1MDA2QSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2QSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDZCIiwKKyJpbnB1dCI6ICJcdTAwNkIiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNkIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA2QyIsCisiaW5wdXQiOiAiXHUwMDZDIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDZDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNkQiLAorImlucHV0IjogIlx1MDA2RCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA2RCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDZFIiwKKyJpbnB1dCI6ICJcdTAwNkUiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA2RiIsCisiaW5wdXQiOiAiXHUwMDZGIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNzAiLAorImlucHV0IjogIlx1MDA3MCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3MCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDcxIiwKKyJpbnB1dCI6ICJcdTAwNzEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNzEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA3MiIsCisiaW5wdXQiOiAiXHUwMDcyIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDcyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNzMiLAorImlucHV0IjogIlx1MDA3MyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3MyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDc0IiwKKyJpbnB1dCI6ICJcdTAwNzQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNzQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA3NSIsCisiaW5wdXQiOiAiXHUwMDc1IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDc1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNzYiLAorImlucHV0IjogIlx1MDA3NiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3NiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDc3IiwKKyJpbnB1dCI6ICJcdTAwNzciLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwNzciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA3OCIsCisiaW5wdXQiOiAiXHUwMDc4IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDc4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwNzkiLAorImlucHV0IjogIlx1MDA3OSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3OSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDdBIiwKKyJpbnB1dCI6ICJcdTAwN0EiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwN0EiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA3QiIsCisiaW5wdXQiOiAiXHUwMDdCIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDdCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwN0MiLAorImlucHV0IjogIlx1MDA3QyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDA3QyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMDdEIiwKKyJpbnB1dCI6ICJcdTAwN0QiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwN0QiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDA3RSIsCisiaW5wdXQiOiAiXHUwMDdFIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMDdFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQTAiLAorImlucHV0IjogIlx1MDBBMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEExIiwKKyJpbnB1dCI6ICJcdTAwQTEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQTEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBBMiIsCisiaW5wdXQiOiAiXHUwMEEyIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEEyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQTMiLAorImlucHV0IjogIlx1MDBBMyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEE0IiwKKyJpbnB1dCI6ICJcdTAwQTQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQTQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBBNSIsCisiaW5wdXQiOiAiXHUwMEE1IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEE1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQTYiLAorImlucHV0IjogIlx1MDBBNiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBNiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEE3IiwKKyJpbnB1dCI6ICJcdTAwQTciLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQTciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBBOCIsCisiaW5wdXQiOiAiXHUwMEE4IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEE4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQTkiLAorImlucHV0IjogIlx1MDBBOSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEFBIiwKKyJpbnB1dCI6ICJcdTAwQUEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQUEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBBQiIsCisiaW5wdXQiOiAiXHUwMEFCIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEFCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQUMiLAorImlucHV0IjogIlx1MDBBQyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEFEIiwKKyJpbnB1dCI6ICJcdTAwQUQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQUQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBBRSIsCisiaW5wdXQiOiAiXHUwMEFFIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEFFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQUYiLAorImlucHV0IjogIlx1MDBBRiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBBRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEIwIiwKKyJpbnB1dCI6ICJcdTAwQjAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQjAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBCMSIsCisiaW5wdXQiOiAiXHUwMEIxIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEIxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQjIiLAorImlucHV0IjogIlx1MDBCMiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEIzIiwKKyJpbnB1dCI6ICJcdTAwQjMiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQjMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBCNCIsCisiaW5wdXQiOiAiXHUwMEI0IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEI0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQjUiLAorImlucHV0IjogIlx1MDBCNSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEI2IiwKKyJpbnB1dCI6ICJcdTAwQjYiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQjYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBCNyIsCisiaW5wdXQiOiAiXHUwMEI3IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEI3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQjgiLAorImlucHV0IjogIlx1MDBCOCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEI5IiwKKyJpbnB1dCI6ICJcdTAwQjkiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQjkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBCQSIsCisiaW5wdXQiOiAiXHUwMEJBIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEJBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQkIiLAorImlucHV0IjogIlx1MDBCQiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEJDIiwKKyJpbnB1dCI6ICJcdTAwQkMiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQkMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBCRCIsCisiaW5wdXQiOiAiXHUwMEJEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEJEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQkUiLAorImlucHV0IjogIlx1MDBCRSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBCRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEJGIiwKKyJpbnB1dCI6ICJcdTAwQkYiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQkYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBDMCIsCisiaW5wdXQiOiAiXHUwMEMwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEMwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQzEiLAorImlucHV0IjogIlx1MDBDMSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEMyIiwKKyJpbnB1dCI6ICJcdTAwQzIiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQzIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBDMyIsCisiaW5wdXQiOiAiXHUwMEMzIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEMzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQzQiLAorImlucHV0IjogIlx1MDBDNCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDNCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEM1IiwKKyJpbnB1dCI6ICJcdTAwQzUiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQzUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBDNiIsCisiaW5wdXQiOiAiXHUwMEM2IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEM2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQzciLAorImlucHV0IjogIlx1MDBDNyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDNyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEM4IiwKKyJpbnB1dCI6ICJcdTAwQzgiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQzgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBDOSIsCisiaW5wdXQiOiAiXHUwMEM5IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEM5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQ0EiLAorImlucHV0IjogIlx1MDBDQSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMENCIiwKKyJpbnB1dCI6ICJcdTAwQ0IiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQ0IiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBDQyIsCisiaW5wdXQiOiAiXHUwMENDIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMENDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwQ0QiLAorImlucHV0IjogIlx1MDBDRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBDRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMENFIiwKKyJpbnB1dCI6ICJcdTAwQ0UiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwQ0UiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBDRiIsCisiaW5wdXQiOiAiXHUwMENGIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMENGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRDAiLAorImlucHV0IjogIlx1MDBEMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBEMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEQxIiwKKyJpbnB1dCI6ICJcdTAwRDEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRDEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBEMiIsCisiaW5wdXQiOiAiXHUwMEQyIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEQyIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRDMiLAorImlucHV0IjogIlx1MDBEMyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBEMyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEQ0IiwKKyJpbnB1dCI6ICJcdTAwRDQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRDQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBENSIsCisiaW5wdXQiOiAiXHUwMEQ1IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEQ1Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRDYiLAorImlucHV0IjogIlx1MDBENiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBENiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEQ3IiwKKyJpbnB1dCI6ICJcdTAwRDciLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRDciXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBEOCIsCisiaW5wdXQiOiAiXHUwMEQ4IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEQ4Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRDkiLAorImlucHV0IjogIlx1MDBEOSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBEOSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMERBIiwKKyJpbnB1dCI6ICJcdTAwREEiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwREEiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBEQiIsCisiaW5wdXQiOiAiXHUwMERCIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMERCIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwREMiLAorImlucHV0IjogIlx1MDBEQyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBEQyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEREIiwKKyJpbnB1dCI6ICJcdTAwREQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwREQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBERSIsCisiaW5wdXQiOiAiXHUwMERFIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMERFIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwREYiLAorImlucHV0IjogIlx1MDBERiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBERiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEUwIiwKKyJpbnB1dCI6ICJcdTAwRTAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRTAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBFMSIsCisiaW5wdXQiOiAiXHUwMEUxIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEUxIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRTIiLAorImlucHV0IjogIlx1MDBFMiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFMiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEUzIiwKKyJpbnB1dCI6ICJcdTAwRTMiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRTMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBFNCIsCisiaW5wdXQiOiAiXHUwMEU0IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEU0Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRTUiLAorImlucHV0IjogIlx1MDBFNSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFNSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEU2IiwKKyJpbnB1dCI6ICJcdTAwRTYiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRTYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBFNyIsCisiaW5wdXQiOiAiXHUwMEU3IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEU3Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRTgiLAorImlucHV0IjogIlx1MDBFOCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFOCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEU5IiwKKyJpbnB1dCI6ICJcdTAwRTkiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRTkiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBFQSIsCisiaW5wdXQiOiAiXHUwMEVBIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEVBIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRUIiLAorImlucHV0IjogIlx1MDBFQiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFQiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEVDIiwKKyJpbnB1dCI6ICJcdTAwRUMiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRUMiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBFRCIsCisiaW5wdXQiOiAiXHUwMEVEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEVEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRUUiLAorImlucHV0IjogIlx1MDBFRSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBFRSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEVGIiwKKyJpbnB1dCI6ICJcdTAwRUYiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRUYiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBGMCIsCisiaW5wdXQiOiAiXHUwMEYwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEYwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRjEiLAorImlucHV0IjogIlx1MDBGMSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGMSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEYyIiwKKyJpbnB1dCI6ICJcdTAwRjIiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRjIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBGMyIsCisiaW5wdXQiOiAiXHUwMEYzIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEYzIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRjQiLAorImlucHV0IjogIlx1MDBGNCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGNCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEY1IiwKKyJpbnB1dCI6ICJcdTAwRjUiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRjUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBGNiIsCisiaW5wdXQiOiAiXHUwMEY2IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEY2Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRjciLAorImlucHV0IjogIlx1MDBGNyIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGNyJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEY4IiwKKyJpbnB1dCI6ICJcdTAwRjgiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRjgiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBGOSIsCisiaW5wdXQiOiAiXHUwMEY5IiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEY5Il1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRkEiLAorImlucHV0IjogIlx1MDBGQSIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGQSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEZCIiwKKyJpbnB1dCI6ICJcdTAwRkIiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRkIiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBGQyIsCisiaW5wdXQiOiAiXHUwMEZDIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEZDIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzAwRkQiLAorImlucHV0IjogIlx1MDBGRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1MDBGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSswMEZFIiwKKyJpbnB1dCI6ICJcdTAwRkUiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdTAwRkUiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMDBGRiIsCisiaW5wdXQiOiAiXHUwMEZGIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHUwMEZGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0Q3RkYiLAorImlucHV0IjogIlx1RDdGRiIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDdGRiJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStFMDAwIiwKKyJpbnB1dCI6ICJcdUUwMDAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUUwMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRkRDRiIsCisiaW5wdXQiOiAiXHVGRENGIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVGRENGIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZERjAiLAorImlucHV0IjogIlx1RkRGMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RkRGMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGRkZEIiwKKyJpbnB1dCI6ICJcdUZGRkQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMTAwMDAiLAorImlucHV0IjogIlx1RDgwMFx1REMwMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDgwMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSsxRkZGRCIsCisiaW5wdXQiOiAiXHVEODNGXHVERkZEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEODNGXHVERkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzIwMDAwIiwKKyJpbnB1dCI6ICJcdUQ4NDBcdURDMDAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUQ4NDBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMkZGRkQiLAorImlucHV0IjogIlx1RDg3Rlx1REZGRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDg3Rlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSszMDAwMCIsCisiaW5wdXQiOiAiXHVEODgwXHVEQzAwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEODgwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzNGRkZEIiwKKyJpbnB1dCI6ICJcdUQ4QkZcdURGRkQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUQ4QkZcdURGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrNDAwMDAiLAorImlucHV0IjogIlx1RDhDMFx1REMwMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDhDMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSs0RkZGRCIsCisiaW5wdXQiOiAiXHVEOEZGXHVERkZEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEOEZGXHVERkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzUwMDAwIiwKKyJpbnB1dCI6ICJcdUQ5MDBcdURDMDAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUQ5MDBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrNUZGRkQiLAorImlucHV0IjogIlx1RDkzRlx1REZGRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDkzRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSs2MDAwMCIsCisiaW5wdXQiOiAiXHVEOTQwXHVEQzAwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEOTQwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzZGRkZEIiwKKyJpbnB1dCI6ICJcdUQ5N0ZcdURGRkQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUQ5N0ZcdURGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrNzAwMDAiLAorImlucHV0IjogIlx1RDk4MFx1REMwMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDk4MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSs3RkZGRCIsCisiaW5wdXQiOiAiXHVEOUJGXHVERkZEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEOUJGXHVERkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzgwMDAwIiwKKyJpbnB1dCI6ICJcdUQ5QzBcdURDMDAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdUQ5QzBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrOEZGRkQiLAorImlucHV0IjogIlx1RDlGRlx1REZGRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1RDlGRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVSs5MDAwMCIsCisiaW5wdXQiOiAiXHVEQTAwXHVEQzAwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEQTAwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVKzlGRkZEIiwKKyJpbnB1dCI6ICJcdURBM0ZcdURGRkQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURBM0ZcdURGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrQTAwMDAiLAorImlucHV0IjogIlx1REE0MFx1REMwMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REE0MFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStBRkZGRCIsCisiaW5wdXQiOiAiXHVEQTdGXHVERkZEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEQTdGXHVERkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0IwMDAwIiwKKyJpbnB1dCI6ICJcdURBODBcdURDMDAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURBODBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrQkZGRkQiLAorImlucHV0IjogIlx1REFCRlx1REZGRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REFCRlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStDMDAwMCIsCisiaW5wdXQiOiAiXHVEQUMwXHVEQzAwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEQUMwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0NGRkZEIiwKKyJpbnB1dCI6ICJcdURBRkZcdURGRkQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURBRkZcdURGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRDAwMDAiLAorImlucHV0IjogIlx1REIwMFx1REMwMCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REIwMFx1REMwMCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStERkZGRCIsCisiaW5wdXQiOiAiXHVEQjNGXHVERkZEIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEQjNGXHVERkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0UwMDAwIiwKKyJpbnB1dCI6ICJcdURCNDBcdURDMDAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURCNDBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRUZGRkQiLAorImlucHV0IjogIlx1REI3Rlx1REZGRCIsCisib3V0cHV0IjogW1siQ2hhcmFjdGVyIiwgIlx1REI3Rlx1REZGRCJdXX0sCisKK3siZGVzY3JpcHRpb24iOiAiVmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStGMDAwMCIsCisiaW5wdXQiOiAiXHVEQjgwXHVEQzAwIiwKKyJvdXRwdXQiOiBbWyJDaGFyYWN0ZXIiLCAiXHVEQjgwXHVEQzAwIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJWYWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0ZGRkZEIiwKKyJpbnB1dCI6ICJcdURCQkZcdURGRkQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURCQkZcdURGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMTAwMDAwIiwKKyJpbnB1dCI6ICJcdURCQzBcdURDMDAiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURCQzBcdURDMDAiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIlZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrMTBGRkZEIiwKKyJpbnB1dCI6ICJcdURCRkZcdURGRkQiLAorIm91dHB1dCI6IFtbIkNoYXJhY3RlciIsICJcdURCRkZcdURGRkQiXV19CisKK119CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3VuaWNvZGVDaGFyc1Byb2JsZW1hdGljLnRlc3QgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdG9rZW5pemF0aW9uL3VuaWNvZGVDaGFyc1Byb2JsZW1hdGljLnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk4Nzg0NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90b2tlbml6YXRpb24vdW5pY29kZUNoYXJzUHJvYmxlbWF0aWMudGVzdApAQCAtMCwwICsxLDI3IEBACit7InRlc3RzIiA6IFsKK3siZGVzY3JpcHRpb24iOiAiSW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciBVK0RGRkYiLAorImRvdWJsZUVzY2FwZWQiOnRydWUsCisiaW5wdXQiOiAiXFx1REZGRiIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcXHVGRkZEIl1dfSwKKworeyJkZXNjcmlwdGlvbiI6ICJJbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyIFUrRDgwMCIsCisiZG91YmxlRXNjYXBlZCI6dHJ1ZSwKKyJpbnB1dCI6ICJcXHVEODAwIiwKKyJvdXRwdXQiOlsiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlxcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStERkZGIHdpdGggdmFsaWQgcHJlY2VkaW5nIGNoYXJhY3RlciIsCisiZG91YmxlRXNjYXBlZCI6dHJ1ZSwKKyJpbnB1dCI6ICJhXFx1REZGRiIsCisib3V0cHV0IjpbWyJDaGFyYWN0ZXIiLCAiYSJdLCAiUGFyc2VFcnJvciIsIFsiQ2hhcmFjdGVyIiwgIlxcdUZGRkQiXV19LAorCit7ImRlc2NyaXB0aW9uIjogIkludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgVStEODAwIHdpdGggdmFsaWQgZm9sbG93aW5nIGNoYXJhY3RlciIsCisiZG91YmxlRXNjYXBlZCI6dHJ1ZSwKKyJpbnB1dCI6ICJcXHVEODAwYSIsCisib3V0cHV0IjpbIlBhcnNlRXJyb3IiLCBbIkNoYXJhY3RlciIsICJcXHVGRkZEYSJdXX0sCisKK3siZGVzY3JpcHRpb24iOiJDUiBmb2xsb3dlZCBieSBVKzAwMDAiLAorImlucHV0IjoiXHJcdTAwMDAiLAorIm91dHB1dCI6W1siQ2hhcmFjdGVyIiwgIlxuIl0sICJQYXJzZUVycm9yIiwgWyJDaGFyYWN0ZXIiLCAiXHUwMDAwIl1dLAorImlnbm9yZUVycm9yT3JkZXIiOnRydWV9CitdCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMWEwMWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMS5kYXQKQEAgLTAsMCArMSwyNzUgQEAKKyNkYXRhCis8YT48cD48L2E+PC9wPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICA8cD4KK3wgICAgICAgPGE+CisKKyNkYXRhCis8YT4xPHA+MjwvYT4zPC9wPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgICIxIgorfCAgICAgPHA+Cit8ICAgICAgIDxhPgorfCAgICAgICAgICIyIgorfCAgICAgICAiMyIKKworI2RhdGEKKzxhPjE8YnV0dG9uPjI8L2E+MzwvYnV0dG9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgICIxIgorfCAgICAgPGJ1dHRvbj4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgIjIiCit8ICAgICAgICIzIgorCisjZGF0YQorPGE+MTxiPjI8L2E+MzwvYj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgICAiMSIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgIjIiCit8ICAgICA8Yj4KK3wgICAgICAgIjMiCisKKyNkYXRhCis8YT4xPGRpdj4yPGRpdj4zPC9hPjQ8L2Rpdj41PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgIjEiCit8ICAgICA8ZGl2PgorfCAgICAgICA8YT4KK3wgICAgICAgICAiMiIKK3wgICAgICAgPGRpdj4KK3wgICAgICAgICA8YT4KK3wgICAgICAgICAgICIzIgorfCAgICAgICAgICI0IgorfCAgICAgICAiNSIKKworI2RhdGEKKzx0YWJsZT48YT4xPHA+MjwvYT4zPC9wPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgICIxIgorfCAgICAgPHA+Cit8ICAgICAgIDxhPgorfCAgICAgICAgICIyIgorfCAgICAgICAiMyIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzxiPjxiPjxhPjxwPjwvYT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICA8Yj4KK3wgICAgICAgICA8YT4KK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxhPgorCisjZGF0YQorPGI+PGE+PGI+PHA+PC9hPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDxhPgorfCAgICAgICAgIDxiPgorfCAgICAgICA8Yj4KK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgIDxhPgorCisjZGF0YQorPGE+PGI+PGI+PHA+PC9hPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgIDxiPgorfCAgICAgICAgIDxiPgorfCAgICAgPGI+Cit8ICAgICAgIDxiPgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgPGE+CisKKyNkYXRhCis8cD4xPHMgaWQ9IkEiPjI8YiBpZD0iQiI+MzwvcD40PC9zPjU8L2I+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgIjEiCit8ICAgICAgIDxzPgorfCAgICAgICAgIGlkPSJBIgorfCAgICAgICAgICIyIgorfCAgICAgICAgIDxiPgorfCAgICAgICAgICAgaWQ9IkIiCit8ICAgICAgICAgICAiMyIKK3wgICAgIDxzPgorfCAgICAgICBpZD0iQSIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgaWQ9IkIiCit8ICAgICAgICAgIjQiCit8ICAgICA8Yj4KK3wgICAgICAgaWQ9IkIiCit8ICAgICAgICI1IgorCisjZGF0YQorPHRhYmxlPjxhPjE8dGQ+MjwvdGQ+MzwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgIjEiCit8ICAgICA8YT4KK3wgICAgICAgIjMiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICIyIgorCisjZGF0YQorPHRhYmxlPkE8dGQ+QjwvdGQ+QzwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiQUMiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICJCIgorCisjZGF0YQorPGE+PHN2Zz48dHI+PGlucHV0PjwvYT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICA8c3ZnIHRyPgorfCAgICAgICAgICAgPHN2ZyBpbnB1dD4KKworI2RhdGEKKzxkaXY+PGE+PGI+PGRpdj48ZGl2PjxkaXY+PGRpdj48ZGl2PjxkaXY+PGRpdj48ZGl2PjxkaXY+PGRpdj48L2E+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8YT4KK3wgICAgICAgICA8Yj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxhPgorfCAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgIDxhPgorfCAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgICAgIDxhPgorfCAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8ZGl2PjxhPjxiPjx1PjxpPjxjb2RlPjxkaXY+PC9hPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgPGI+Cit8ICAgICAgICAgICA8dT4KK3wgICAgICAgICAgICAgPGk+Cit8ICAgICAgICAgICAgICAgPGNvZGU+Cit8ICAgICAgIDx1PgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgPGNvZGU+Cit8ICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgPGE+CisKKyNkYXRhCis8Yj48Yj48Yj48Yj54PC9iPjwvYj48L2I+PC9iPnkKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICA8Yj4KK3wgICAgICAgICA8Yj4KK3wgICAgICAgICAgIDxiPgorfCAgICAgICAgICAgICAieCIKK3wgICAgICJ5IgorCisjZGF0YQorPHA+PGI+PGI+PGI+PGI+PHA+eAorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxiPgorfCAgICAgICAgIDxiPgorfCAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgIDxiPgorfCAgICAgPHA+Cit8ICAgICAgIDxiPgorfCAgICAgICAgIDxiPgorfCAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgICJ4IgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2Fkb3B0aW9uMDIuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2Fkb3B0aW9uMDIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxODE1MWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMi5kYXQKQEAgLTAsMCArMSwzMSBAQAorI2RhdGEKKzxiPjE8aT4yPHA+MzwvYj40CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgICAgIjEiCit8ICAgICAgIDxpPgorfCAgICAgICAgICIyIgorfCAgICAgPGk+Cit8ICAgICAgIDxwPgorfCAgICAgICAgIDxiPgorfCAgICAgICAgICAgIjMiCit8ICAgICAgICAgIjQiCisKKyNkYXRhCis8YT48ZGl2PjxzdHlsZT48L3N0eWxlPjxhZGRyZXNzPjxhPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8YT4KK3wgICAgICAgICA8c3R5bGU+Cit8ICAgICAgIDxhZGRyZXNzPgorfCAgICAgICAgIDxhPgorfCAgICAgICAgIDxhPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2NvbW1lbnRzMDEuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2NvbW1lbnRzMDEuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExNmQ5MWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vY29tbWVudHMwMS5kYXQKQEAgLTAsMCArMSwxNDYgQEAKKyNkYXRhCitGT088IS0tIEJBUiAtLT5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0tICBCQVIgIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZPTzwhLS0gQkFSIC0tIT5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0tICBCQVIgIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKK0ZPTzwhLS0gQkFSIC0tICAgPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIEJBUiAtLSAgID5CQVogLS0+CisKKyNkYXRhCitGT088IS0tIEJBUiAtLSA8UVVYPiAtLSBNVVggLS0+QkFaCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPCEtLSAgQkFSIC0tIDxRVVg+IC0tIE1VWCAgLS0+Cit8ICAgICAiQkFaIgorCisjZGF0YQorRk9PPCEtLSBCQVIgLS0gPFFVWD4gLS0gTVVYIC0tIT5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0tICBCQVIgLS0gPFFVWD4gLS0gTVVYICAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRhCitGT088IS0tIEJBUiAtLSA8UVVYPiAtLSBNVVggLS0gPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIEJBUiAtLSA8UVVYPiAtLSBNVVggLS0gPkJBWiAtLT4KKworI2RhdGEKK0ZPTzwhLS0tLT5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0tICAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRhCitGT088IS0tLT5CQVoKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8IS0tICAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRhCitGT088IS0tPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gIC0tPgorfCAgICAgIkJBWiIKKworI2RhdGEKKzw/eG1sIHZlcnNpb249IjEuMCI+SGkKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IS0tID94bWwgdmVyc2lvbj0iMS4wIiAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGkiCisKKyNkYXRhCis8P3htbCB2ZXJzaW9uPSIxLjAiPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhLS0gP3htbCB2ZXJzaW9uPSIxLjAiIC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzw/eG1sIHZlcnNpb24KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IS0tID94bWwgdmVyc2lvbiAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCitGT088IS0tLS0tPkJBWgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDwhLS0gLSAtLT4KK3wgICAgICJCQVoiCisKKyNkYXRhCis8aHRtbD48IS0tIGNvbW1lbnQgLS0+PHRpdGxlPkNvbW1lbnQgYmVmb3JlIGhlYWQ8L3RpdGxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDwhLS0gIGNvbW1lbnQgIC0tPgorfCAgIDxoZWFkPgorfCAgICAgPHRpdGxlPgorfCAgICAgICAiQ29tbWVudCBiZWZvcmUgaGVhZCIKK3wgICA8Ym9keT4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9kb2N0eXBlMDEuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2RvY3R5cGUwMS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU0NTczMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9kb2N0eXBlMDEuZGF0CkBAIC0wLDAgKzEsMzcwIEBACisjZGF0YQorPCFET0NUWVBFIGh0bWw+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IWRPY3RZcEUgSHRNbD5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRWh0bWw+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEU+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSA+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSBwb3RhdG8+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSBwb3RhdG8gPkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIHBvdGF0bz4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIHRhY28+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSBwb3RhdG8gdGFjbyAiZGRkPkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIHBvdGF0bz4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIHNZc3RFTT5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBwb3RhdG8+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkhlbGxvIgorCisjZGF0YQorPCFET0NUWVBFIHBvdGF0byBzWXN0RU0gICAgPkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIHBvdGF0bz4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgICBwb3RhdG8gICAgICAgc1lzdEVNICBnZ2c+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSBwb3RhdG8gU1lTVEVNIHRhY28gID5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBwb3RhdG8+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkhlbGxvIgorCisjZGF0YQorPCFET0NUWVBFIHBvdGF0byBTWVNURU0gJ3RhY28iJz5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBwb3RhdG8gIiIgInRhY28iIj4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIFNZU1RFTSAidGFjbyI+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvICIiICJ0YWNvIj4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIFNZU1RFTSAidGFpJ2NvIj5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBwb3RhdG8gIiIgInRhaSdjbyI+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkhlbGxvIgorCisjZGF0YQorPCFET0NUWVBFIHBvdGF0byBTWVNURU10YWNvICJkZGQiPkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIHBvdGF0bz4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIGdyYXNzIFNZU1RFTSB0YWNvPkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIHBvdGF0bz4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIHBVYkxJYz5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBwb3RhdG8+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkhlbGxvIgorCisjZGF0YQorPCFET0NUWVBFIHBvdGF0byBwVWJMSWMgPkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIHBvdGF0bz4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIHBVYkxJY2dvb2Y+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSBwb3RhdG8gUFVCTElDIGdvb2Y+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSBwb3RhdG8gUFVCTElDICJnbydvZiI+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvICJnbydvZiIgIiI+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkhlbGxvIgorCisjZGF0YQorPCFET0NUWVBFIHBvdGF0byBQVUJMSUMgJ2dvJ29mJz5IZWxsbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBwb3RhdG8gImdvIiAiIj4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgcG90YXRvIFBVQkxJQyAnZ286aGggICBvZicgPkhlbGxvCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIHBvdGF0byAiZ286aGggICBvZiIgIiI+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkhlbGxvIgorCisjZGF0YQorPCFET0NUWVBFIHBvdGF0byBQVUJMSUMgIlczQy0vL2RmZGYiIFNZU1RFTSBnZ2c+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgcG90YXRvICJXM0MtLy9kZmRmIiAiIj4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiSGVsbG8iCisKKyNkYXRhCis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbCAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSAuLi4+SGVsbG8KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgLi4uPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJIZWxsbyIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWwgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLWZyYW1lc2V0LmR0ZCI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWwgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBGcmFtZXNldC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1mcmFtZXNldC5kdGQiPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSByb290LWVsZW1lbnQgW1NZU1RFTSBPUiBQVUJMSUMgRlBJXSAidXJpIiBbIAorPCEtLSBpbnRlcm5hbCBkZWNsYXJhdGlvbnMgLS0+CitdPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSByb290LWVsZW1lbnQ+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIl0+IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWwgUFVCTElDCisgICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmlsZSAxLjAvL0VOIgorICAgICJodHRwOi8vd3d3LndhcGZvcnVtLm9yZy9EVEQveGh0bWwtbW9iaWxlMTAuZHRkIj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbCAiLS8vV0FQRk9SVU0vL0RURCBYSFRNTCBNb2JpbGUgMS4wLy9FTiIgImh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC94aHRtbC1tb2JpbGUxMC5kdGQiPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBIVE1MIFNZU1RFTSAiaHR0cDovL3d3dy53My5vcmcvRFREL0hUTUw0LXN0cmljdC5kdGQiPjxib2R5PjxiPk1pbmUhPC9iPjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbCAiIiAiaHR0cDovL3d3dy53My5vcmcvRFREL0hUTUw0LXN0cmljdC5kdGQiPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICAiTWluZSEiCisKKyNkYXRhCis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIidodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkJz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbCAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIidodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkJz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbCAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyctLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOJydodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkJz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbCAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9kb21qcy11bnNhZmUuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2RvbWpzLXVuc2FmZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA1Yjk0ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9kb21qcy11bnNhZmUuZGF0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9lbnRpdGllczAxLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9lbnRpdGllczAxLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODA3M2I3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2VudGl0aWVzMDEuZGF0CkBAIC0wLDAgKzEsNjAzIEBACisjZGF0YQorRk9PJmd0O0JBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTz5CQVIiCisKKyNkYXRhCitGT08mZ3RCQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08+QkFSIgorCisjZGF0YQorRk9PJmd0IEJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTz4gQkFSIgorCisjZGF0YQorRk9PJmd0Ozs7QkFSCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PPjs7QkFSIgorCisjZGF0YQorSSdtICZub3RpdDsgSSB0ZWxsIHlvdQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkknbSDCrGl0OyBJIHRlbGwgeW91IgorCisjZGF0YQorSSdtICZub3RpbjsgSSB0ZWxsIHlvdQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkknbSDiiIkgSSB0ZWxsIHlvdSIKKworI2RhdGEKK0ZPTyYgQkFSCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PJiBCQVIiCisKKyNkYXRhCitGT08mPEJBUj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08mIgorfCAgICAgPGJhcj4KKworI2RhdGEKK0ZPTyYmJiZndDtCQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08mJiY+QkFSIgorCisjZGF0YQorRk9PJiM0MTtCQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08pQkFSIgorCisjZGF0YQorRk9PJiN4NDE7QkFSCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PQUJBUiIKKworI2RhdGEKK0ZPTyYjWDQxO0JBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT0FCQVIiCisKKyNkYXRhCitGT08mI0JBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyYjQkFSIgorCisjZGF0YQorRk9PJiNaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08mI1pPTyIKKworI2RhdGEKK0ZPTyYjeEJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT8K6UiIKKworI2RhdGEKK0ZPTyYjeFpPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyYjeFpPTyIKKworI2RhdGEKK0ZPTyYjWFpPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyYjWFpPTyIKKworI2RhdGEKK0ZPTyYjNDFCQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08pQkFSIgorCisjZGF0YQorRk9PJiN4NDFCQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/khrpSIgorCisjZGF0YQorRk9PJiN4NDFaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT09BWk9PIgorCisjZGF0YQorRk9PJiN4MDAwMDtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/vv71aT08iCisKKyNkYXRhCitGT08mI3gwMDc4O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT3haT08iCisKKyNkYXRhCitGT08mI3gwMDc5O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT3laT08iCisKKyNkYXRhCitGT08mI3gwMDgwO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KCrFpPTyIKKworI2RhdGEKK0ZPTyYjeDAwODE7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PwoFaT08iCisKKyNkYXRhCitGT08mI3gwMDgyO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KAmlpPTyIKKworI2RhdGEKK0ZPTyYjeDAwODM7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PxpJaT08iCisKKyNkYXRhCitGT08mI3gwMDg0O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KAnlpPTyIKKworI2RhdGEKK0ZPTyYjeDAwODU7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P4oCmWk9PIgorCisjZGF0YQorRk9PJiN4MDA4NjtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/igKBaT08iCisKKyNkYXRhCitGT08mI3gwMDg3O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KAoVpPTyIKKworI2RhdGEKK0ZPTyYjeDAwODg7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9Py4ZaT08iCisKKyNkYXRhCitGT08mI3gwMDg5O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KAsFpPTyIKKworI2RhdGEKK0ZPTyYjeDAwOEE7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PxaBaT08iCisKKyNkYXRhCitGT08mI3gwMDhCO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KAuVpPTyIKKworI2RhdGEKK0ZPTyYjeDAwOEM7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PxZJaT08iCisKKyNkYXRhCitGT08mI3gwMDhEO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT8KNWk9PIgorCisjZGF0YQorRk9PJiN4MDA4RTtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/FvVpPTyIKKworI2RhdGEKK0ZPTyYjeDAwOEY7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9Pwo9aT08iCisKKyNkYXRhCitGT08mI3gwMDkwO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT8KQWk9PIgorCisjZGF0YQorRk9PJiN4MDA5MTtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/igJhaT08iCisKKyNkYXRhCitGT08mI3gwMDkyO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KAmVpPTyIKKworI2RhdGEKK0ZPTyYjeDAwOTM7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P4oCcWk9PIgorCisjZGF0YQorRk9PJiN4MDA5NDtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/igJ1aT08iCisKKyNkYXRhCitGT08mI3gwMDk1O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+KAolpPTyIKKworI2RhdGEKK0ZPTyYjeDAwOTY7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P4oCTWk9PIgorCisjZGF0YQorRk9PJiN4MDA5NztaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/igJRaT08iCisKKyNkYXRhCitGT08mI3gwMDk4O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT8ucWk9PIgorCisjZGF0YQorRk9PJiN4MDA5OTtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/ihKJaT08iCisKKyNkYXRhCitGT08mI3gwMDlBO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT8WhWk9PIgorCisjZGF0YQorRk9PJiN4MDA5QjtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/igLpaT08iCisKKyNkYXRhCitGT08mI3gwMDlDO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT8WTWk9PIgorCisjZGF0YQorRk9PJiN4MDA5RDtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/CnVpPTyIKKworI2RhdGEKK0ZPTyYjeDAwOUU7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9Pxb5aT08iCisKKyNkYXRhCitGT08mI3gwMDlGO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT8W4Wk9PIgorCisjZGF0YQorRk9PJiN4MDBBMDtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/CoFpPTyIKKworI2RhdGEKK0ZPTyYjeEQ3RkY7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P7Z+/Wk9PIgorCisjZGF0YQorRk9PJiN4RDgwMDtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/vv71aT08iCisKKyNkYXRhCitGT08mI3hEODAxO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT++/vVpPTyIKKworI2RhdGEKK0ZPTyYjeERGRkU7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P77+9Wk9PIgorCisjZGF0YQorRk9PJiN4REZGRjtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/vv71aT08iCisKKyNkYXRhCitGT08mI3hFMDAwO1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT+6AgFpPTyIKKworI2RhdGEKK0ZPTyYjeDEwRkZGRTtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/0j7++Wk9PIgorCisjZGF0YQorRk9PJiN4MTA4N0Q0O1pPTworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPT/SIn5RaT08iCisKKyNkYXRhCitGT08mI3gxMEZGRkY7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P9I+/v1pPTyIKKworI2RhdGEKK0ZPTyYjeDExMDAwMDtaT08KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT0/vv71aT08iCisKKyNkYXRhCitGT08mI3hGRkZGRkY7Wk9PCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9P77+9Wk9PIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2VudGl0aWVzMDIuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2VudGl0aWVzMDIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZmI0MmEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vZW50aXRpZXMwMi5kYXQKQEAgLTAsMCArMSwyNDkgQEAKKyNkYXRhCis8ZGl2IGJhcj0iWlomZ3Q7WVkiPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgYmFyPSJaWj5ZWSIKKworI2RhdGEKKzxkaXYgYmFyPSJaWiYiPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgYmFyPSJaWiYiCisKKyNkYXRhCis8ZGl2IGJhcj0nWlomJz48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGJhcj0iWlomIgorCisjZGF0YQorPGRpdiBiYXI9WlomPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgYmFyPSJaWiYiCisKKyNkYXRhCis8ZGl2IGJhcj0iWlomZ3Q9WVkiPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgYmFyPSJaWiZndD1ZWSIKKworI2RhdGEKKzxkaXYgYmFyPSJaWiZndDBZWSI+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBiYXI9IlpaJmd0MFlZIgorCisjZGF0YQorPGRpdiBiYXI9IlpaJmd0OVlZIj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGJhcj0iWlomZ3Q5WVkiCisKKyNkYXRhCis8ZGl2IGJhcj0iWlomZ3RhWVkiPjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgYmFyPSJaWiZndGFZWSIKKworI2RhdGEKKzxkaXYgYmFyPSJaWiZndFpZWSI+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBiYXI9IlpaJmd0WllZIgorCisjZGF0YQorPGRpdiBiYXI9IlpaJmd0IFlZIj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGJhcj0iWlo+IFlZIgorCisjZGF0YQorPGRpdiBiYXI9IlpaJmd0Ij48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGJhcj0iWlo+IgorCisjZGF0YQorPGRpdiBiYXI9J1paJmd0Jz48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGJhcj0iWlo+IgorCisjZGF0YQorPGRpdiBiYXI9WlomZ3Q+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBiYXI9IlpaPiIKKworI2RhdGEKKzxkaXYgYmFyPSJaWiZwb3VuZF9pZD0yMyI+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBiYXI9IlpawqNfaWQ9MjMiCisKKyNkYXRhCis8ZGl2IGJhcj0iWlomcHJvZF9pZD0yMyI+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBiYXI9IlpaJnByb2RfaWQ9MjMiCisKKyNkYXRhCis8ZGl2IGJhcj0iWlomcG91bmQ7X2lkPTIzIj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGJhcj0iWlrCo19pZD0yMyIKKworI2RhdGEKKzxkaXYgYmFyPSJaWiZwcm9kO19pZD0yMyI+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBiYXI9Ilpa4oiPX2lkPTIzIgorCisjZGF0YQorPGRpdiBiYXI9IlpaJnBvdW5kPTIzIj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGJhcj0iWlomcG91bmQ9MjMiCisKKyNkYXRhCis8ZGl2IGJhcj0iWlomcHJvZD0yMyI+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBiYXI9IlpaJnByb2Q9MjMiCisKKyNkYXRhCis8ZGl2PlpaJnBvdW5kX2lkPTIzPC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiWlrCo19pZD0yMyIKKworI2RhdGEKKzxkaXY+WlomcHJvZF9pZD0yMzwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgIlpaJnByb2RfaWQ9MjMiCisKKyNkYXRhCis8ZGl2PlpaJnBvdW5kO19pZD0yMzwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgIlpawqNfaWQ9MjMiCisKKyNkYXRhCis8ZGl2PlpaJnByb2Q7X2lkPTIzPC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiWlriiI9faWQ9MjMiCisKKyNkYXRhCis8ZGl2PlpaJnBvdW5kPTIzPC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiWlrCoz0yMyIKKworI2RhdGEKKzxkaXY+WlomcHJvZD0yMzwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgIlpaJnByb2Q9MjMiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vaHRtbDV0ZXN0LWNvbS5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vaHRtbDV0ZXN0LWNvbS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdjYjcxZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9odG1sNXRlc3QtY29tLmRhdApAQCAtMCwwICsxLDI0NiBAQAorI2RhdGEKKzxkaXY8ZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdjxkaXY+CisKKyNkYXRhCis8ZGl2IGZvbzxiYXI9Jyc+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICBmb288YmFyPSIiCisKKyNkYXRhCis8ZGl2IGZvbz1gYmFyYD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGZvbz0iYGJhcmAiCisKKyNkYXRhCis8ZGl2IFwiZm9vPScnPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgXCJmb289IiIKKworI2RhdGEKKzxhIGhyZWY9J1xuYmFyJz48L2E+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgaHJlZj0iXG5iYXIiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCismbGFuZzsmcmFuZzsKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICLin6jin6kiCisKKyNkYXRhCismYXBvczsKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICInIgorCisjZGF0YQorJkltYWdpbmFyeUk7CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAi4oWIIgorCisjZGF0YQorJktvcGY7CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAi8J2VgiIKKworI2RhdGEKKyZub3RpbnZhOworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIuKIiSIKKworI2RhdGEKKzw/aW1wb3J0IG5hbWVzcGFjZT0iZm9vIiBpbXBsZW1lbnRhdGlvbj0iI2JhciI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCEtLSA/aW1wb3J0IG5hbWVzcGFjZT0iZm9vIiBpbXBsZW1lbnRhdGlvbj0iI2JhciIgLS0+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCEtLWZvby0tYmFyLS0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCEtLSBmb28tLWJhciAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IVtDREFUQVt4XV0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCEtLSBbQ0RBVEFbeF1dIC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZXh0YXJlYT48IS0tPC90ZXh0YXJlYT4tLT48L3RleHRhcmVhPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRleHRhcmVhPgorfCAgICAgICAiPCEtLSIKK3wgICAgICItLT4iCisKKyNkYXRhCis8dGV4dGFyZWE+PCEtLTwvdGV4dGFyZWE+LS0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGV4dGFyZWE+Cit8ICAgICAgICI8IS0tIgorfCAgICAgIi0tPiIKKworI2RhdGEKKzxzdHlsZT48IS0tPC9zdHlsZT4tLT48L3N0eWxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgICAgICAiPCEtLSIKK3wgICA8Ym9keT4KK3wgICAgICItLT4iCisKKyNkYXRhCis8c3R5bGU+PCEtLTwvc3R5bGU+LS0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICI8IS0tIgorfCAgIDxib2R5PgorfCAgICAgIi0tPiIKKworI2RhdGEKKzx1bD48bGk+QSA8L2xpPiA8bGk+QjwvbGk+PC91bD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx1bD4KK3wgICAgICAgPGxpPgorfCAgICAgICAgICJBICIKK3wgICAgICAgIiAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICAiQiIKKworI2RhdGEKKzx0YWJsZT48Zm9ybT48aW5wdXQgdHlwZT1oaWRkZW4+PGlucHV0PjwvZm9ybT48ZGl2PjwvZGl2PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aW5wdXQ+Cit8ICAgICA8ZGl2PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Zm9ybT4KK3wgICAgICAgPGlucHV0PgorfCAgICAgICAgIHR5cGU9ImhpZGRlbiIKKworI2RhdGEKKzxpPkE8Yj5CPHA+PC9pPkM8L2I+RAorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGk+Cit8ICAgICAgICJBIgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiQiIKK3wgICAgIDxiPgorfCAgICAgPHA+Cit8ICAgICAgIDxiPgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICJDIgorfCAgICAgICAiRCIKKworI2RhdGEKKzxkaXY+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPHN2Zz48L3N2Zz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorCisjZGF0YQorPG1hdGg+PC9tYXRoPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9pbmJvZHkwMS5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vaW5ib2R5MDEuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMmJkMzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vaW5ib2R5MDEuZGF0CkBAIC0wLDAgKzEsNDMgQEAKKyNkYXRhCis8YnV0dG9uPjE8L2Zvbz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxidXR0b24+Cit8ICAgICAgICIxIgorCisjZGF0YQorPGZvbz4xPHA+MjwvZm9vPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvbz4KK3wgICAgICAgIjEiCit8ICAgICAgIDxwPgorfCAgICAgICAgICIyIgorCisjZGF0YQorPGRkPjE8L2Zvbz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkZD4KK3wgICAgICAgIjEiCisKKyNkYXRhCis8Zm9vPjE8ZGQ+MjwvZm9vPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvbz4KK3wgICAgICAgIjEiCit8ICAgICAgIDxkZD4KK3wgICAgICAgICAiMiIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9pc2luZGV4LmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9pc2luZGV4LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODMyNWZmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL2lzaW5kZXguZGF0CkBAIC0wLDAgKzEsNDAgQEAKKyNkYXRhCis8aXNpbmRleD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb3JtPgorfCAgICAgICA8aHI+Cit8ICAgICAgIDxsYWJlbD4KK3wgICAgICAgICAiVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3b3JkczogIgorfCAgICAgICAgIDxpbnB1dD4KK3wgICAgICAgICAgIG5hbWU9ImlzaW5kZXgiCit8ICAgICAgIDxocj4KKworI2RhdGEKKzxpc2luZGV4IG5hbWU9IkEiIGFjdGlvbj0iQiIgcHJvbXB0PSJDIiBmb289IkQiPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvcm0+Cit8ICAgICAgIGFjdGlvbj0iQiIKK3wgICAgICAgPGhyPgorfCAgICAgICA8bGFiZWw+Cit8ICAgICAgICAgIkMiCit8ICAgICAgICAgPGlucHV0PgorfCAgICAgICAgICAgZm9vPSJEIgorfCAgICAgICAgICAgbmFtZT0iaXNpbmRleCIKK3wgICAgICAgPGhyPgorCisjZGF0YQorPGZvcm0+PGlzaW5kZXg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Zm9ybT4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9tYWluLWVsZW1lbnQuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL21haW4tZWxlbWVudC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThlOGUzYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9tYWluLWVsZW1lbnQuZGF0CkBAIC0wLDAgKzEsMjkgQEAKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD5mb288bWFpbj5iYXI8cD5iYXoKKyNlcnJvcnMKKzM2OiBFbmQgb2YgZmlsZSBzZWVuIGFuZCB0aGVyZSB3ZXJlIG9wZW4gZWxlbWVudHMuCisyNzogVW5jbG9zZWQgZWxlbWVudCDigJxtYWlu4oCdLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICAiZm9vIgorfCAgICAgPG1haW4+Cit8ICAgICAgICJiYXIiCit8ICAgICAgIDxwPgorfCAgICAgICAgICJiYXoiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48bWFpbj48cD5mb288L21haW4+YmFyCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1haW4+Cit8ICAgICAgIDxwPgorfCAgICAgICAgICJmb28iCit8ICAgICAiYmFyIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3BlbmRpbmctc3BlYy1jaGFuZ2VzLXBsYWluLXRleHQtdW5zYWZlLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9wZW5kaW5nLXNwZWMtY2hhbmdlcy1wbGFpbi10ZXh0LXVuc2FmZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVlYmIxZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9wZW5kaW5nLXNwZWMtY2hhbmdlcy1wbGFpbi10ZXh0LXVuc2FmZS5kYXQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3BlbmRpbmctc3BlYy1jaGFuZ2VzLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE5MjA4NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQKQEAgLTAsMCArMSw1MiBAQAorI2RhdGEKKzxpbnB1dCB0eXBlPSJoaWRkZW4iPjxmcmFtZXNldD4KKyNlcnJvcnMKKzIxOiBTdGFydCB0YWcgc2VlbiB3aXRob3V0IHNlZWluZyBhIGRvY3R5cGUgZmlyc3QuIEV4cGVjdGVkIOKAnDwhRE9DVFlQRSBodG1sPuKAnS4KKzMxOiDigJxmcmFtZXNldOKAnSBzdGFydCB0YWcgc2Vlbi4KKzMxOiBFbmQgb2YgZmlsZSBzZWVuIGFuZCB0aGVyZSB3ZXJlIG9wZW4gZWxlbWVudHMuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHRhYmxlPjxjYXB0aW9uPjxzdmc+Zm9vPC90YWJsZT5iYXIKKyNlcnJvcnMKKzQ3OiBFbmQgdGFnIOKAnHRhYmxl4oCdIGRpZCBub3QgbWF0Y2ggdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgb3BlbiBlbGVtZW50ICjigJxzdmfigJ0pLgorNDc6IOKAnHRhYmxl4oCdIGNsb3NlZCBidXQg4oCcY2FwdGlvbuKAnSB3YXMgc3RpbGwgb3Blbi4KKzQ3OiBFbmQgdGFnIOKAnHRhYmxl4oCdIHNlZW4sIGJ1dCB0aGVyZSB3ZXJlIG9wZW4gZWxlbWVudHMuCiszNjogVW5jbG9zZWQgZWxlbWVudCDigJxzdmfigJ0uCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICAgICJmb28iCit8ICAgICAiYmFyIgorCisjZGF0YQorPHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+PC9kZXNjPjxjaXJjbGU+CisjZXJyb3JzCis3OiBTdGFydCB0YWcgc2VlbiB3aXRob3V0IHNlZWluZyBhIGRvY3R5cGUgZmlyc3QuIEV4cGVjdGVkIOKAnDwhRE9DVFlQRSBodG1sPuKAnS4KKzMwOiBBIHRhYmxlIGNlbGwgd2FzIGltcGxpY2l0bHkgY2xvc2VkLCBidXQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorMjY6IFVuY2xvc2VkIGVsZW1lbnQg4oCcZGVzY+KAnS4KKzIwOiBVbmNsb3NlZCBlbGVtZW50IOKAnHN2Z+KAnS4KKzM3OiBTdHJheSBlbmQgdGFnIOKAnGRlc2PigJ0uCis0NTogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorNDU6IFVuY2xvc2VkIGVsZW1lbnQg4oCcY2lyY2xl4oCdLgorNzogVW5jbG9zZWQgZWxlbWVudCDigJx0YWJsZeKAnS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICAgICAgPHN2ZyBkZXNjPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8Y2lyY2xlPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3BsYWluLXRleHQtdW5zYWZlLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9wbGFpbi10ZXh0LXVuc2FmZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRjYzExZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi9wbGFpbi10ZXh0LXVuc2FmZS5kYXQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3NjcmlwdGRhdGEwMS5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vc2NyaXB0ZGF0YTAxLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmI2N2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3NjcmlwdGRhdGEwMS5kYXQKQEAgLTAsMCArMSwzMDggQEAKKyNkYXRhCitGT088c2NyaXB0PidIZWxsbyc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiJ0hlbGxvJyIKK3wgICAgICJCQVIiCisKKyNkYXRhCitGT088c2NyaXB0Pjwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAiQkFSIgorCisjZGF0YQorRk9PPHNjcmlwdD48L3NjcmlwdCA+QkFSCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICJCQVIiCisKKyNkYXRhCitGT088c2NyaXB0Pjwvc2NyaXB0Lz5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+PC9zY3JpcHQvID5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQgdHlwZT0idGV4dC9wbGFpbiI+PC9zY3JpcHR4PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHR5cGU9InRleHQvcGxhaW4iCit8ICAgICAgICI8L3NjcmlwdHg+QkFSIgorCisjZGF0YQorRk9PPHNjcmlwdD48L3NjcmlwdCBmb289Ij4iIGRkPkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAiQkFSIgorCisjZGF0YQorRk9PPHNjcmlwdD4nPCc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiJzwnIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhJzwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICInPCEnIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhLSc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiJzwhLSciCit8ICAgICAiQkFSIgorCisjZGF0YQorRk9PPHNjcmlwdD4nPCEtLSc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiJzwhLS0nIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhLS0tJzwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICInPCEtLS0nIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhLS0+Jzwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICInPCEtLT4nIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhLS0+Jzwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICInPCEtLT4nIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhLS0gcG90YXRvJzwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICInPCEtLSBwb3RhdG8nIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhLS0gPHNDcklwdCc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiJzwhLS0gPHNDcklwdCciCit8ICAgICAiQkFSIgorCisjZGF0YQorRk9PPHNjcmlwdCB0eXBlPSJ0ZXh0L3BsYWluIj4nPCEtLSA8c0NySXB0Pic8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICB0eXBlPSJ0ZXh0L3BsYWluIgorfCAgICAgICAiJzwhLS0gPHNDcklwdD4nPC9zY3JpcHQ+QkFSIgorCisjZGF0YQorRk9PPHNjcmlwdCB0eXBlPSJ0ZXh0L3BsYWluIj4nPCEtLSA8c0NySXB0PiAtJzwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHR5cGU9InRleHQvcGxhaW4iCit8ICAgICAgICInPCEtLSA8c0NySXB0PiAtJzwvc2NyaXB0PkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQgdHlwZT0idGV4dC9wbGFpbiI+JzwhLS0gPHNDcklwdD4gLS0nPC9zY3JpcHQ+QkFSCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgdHlwZT0idGV4dC9wbGFpbiIKK3wgICAgICAgIic8IS0tIDxzQ3JJcHQ+IC0tJzwvc2NyaXB0PkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQ+JzwhLS0gPHNDcklwdD4gLS0+Jzwvc2NyaXB0PkJBUgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkZPTyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICInPCEtLSA8c0NySXB0PiAtLT4nIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQgdHlwZT0idGV4dC9wbGFpbiI+JzwhLS0gPHNDcklwdD4gLS0hPic8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICB0eXBlPSJ0ZXh0L3BsYWluIgorfCAgICAgICAiJzwhLS0gPHNDcklwdD4gLS0hPic8L3NjcmlwdD5CQVIiCisKKyNkYXRhCitGT088c2NyaXB0IHR5cGU9InRleHQvcGxhaW4iPic8IS0tIDxzQ3JJcHQ+IC0tID4nPC9zY3JpcHQ+QkFSCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgdHlwZT0idGV4dC9wbGFpbiIKK3wgICAgICAgIic8IS0tIDxzQ3JJcHQ+IC0tID4nPC9zY3JpcHQ+QkFSIgorCisjZGF0YQorRk9PPHNjcmlwdCB0eXBlPSJ0ZXh0L3BsYWluIj4nPCEtLSA8c0NySXB0ICc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICB0eXBlPSJ0ZXh0L3BsYWluIgorfCAgICAgICAiJzwhLS0gPHNDcklwdCAnPC9zY3JpcHQ+QkFSIgorCisjZGF0YQorRk9PPHNjcmlwdCB0eXBlPSJ0ZXh0L3BsYWluIj4nPCEtLSA8c0NySXB0Lyc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICB0eXBlPSJ0ZXh0L3BsYWluIgorfCAgICAgICAiJzwhLS0gPHNDcklwdC8nPC9zY3JpcHQ+QkFSIgorCisjZGF0YQorRk9PPHNjcmlwdCB0eXBlPSJ0ZXh0L3BsYWluIj4nPCEtLSA8c0NySXB0XCc8L3NjcmlwdD5CQVIKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJGT08iCit8ICAgICA8c2NyaXB0PgorfCAgICAgICB0eXBlPSJ0ZXh0L3BsYWluIgorfCAgICAgICAiJzwhLS0gPHNDcklwdFwnIgorfCAgICAgIkJBUiIKKworI2RhdGEKK0ZPTzxzY3JpcHQgdHlwZT0idGV4dC9wbGFpbiI+JzwhLS0gPHNDcklwdC8nPC9zY3JpcHQ+QkFSPC9zY3JpcHQ+UVVYCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiRk9PIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgdHlwZT0idGV4dC9wbGFpbiIKK3wgICAgICAgIic8IS0tIDxzQ3JJcHQvJzwvc2NyaXB0PkJBUiIKK3wgICAgICJRVVgiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGFibGVzMDEuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3RhYmxlczAxLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNGI0N2U0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3RhYmxlczAxLmRhdApAQCAtMCwwICsxLDIxMiBAQAorI2RhdGEKKzx0YWJsZT48dGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGg+CisKKyNkYXRhCis8dGFibGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2wgZm9vPSdiYXInPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgICAgIGZvbz0iYmFyIgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48L2h0bWw+Zm9vCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiZm9vIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+CisKKyNkYXRhCis8dGFibGU+PC90YWJsZT48cD5mb28KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgIDxwPgorfCAgICAgICAiZm9vIgorCisjZGF0YQorPHRhYmxlPjwvYm9keT48L2NhcHRpb24+PC9jb2w+PC9jb2xncm91cD48L2h0bWw+PC90Ym9keT48L3RkPjwvdGZvb3Q+PC90aD48L3RoZWFkPjwvdHI+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxzZWxlY3Q+PG9wdGlvbj4zPC9zZWxlY3Q+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgIjMiCit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHNlbGVjdD48dGFibGU+PC90YWJsZT48L3NlbGVjdD48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgIDx0YWJsZT4KK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzx0YWJsZT48c2VsZWN0PjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPHRhYmxlPjxzZWxlY3Q+PG9wdGlvbj5BPHRyPjx0ZD5CPC90ZD48L3RyPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICAgICJBIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAiQiIKKworI2RhdGEKKzx0YWJsZT48dGQ+PC9ib2R5PjwvY2FwdGlvbj48L2NvbD48L2NvbGdyb3VwPjwvaHRtbD5mb28KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgImZvbyIKKworI2RhdGEKKzx0YWJsZT48dGQ+QTwvdGFibGU+QgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAiQSIKK3wgICAgICJCIgorCisjZGF0YQorPHRhYmxlPjx0cj48Y2FwdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgPGNhcHRpb24+CisKKyNkYXRhCis8dGFibGU+PHRyPjwvYm9keT48L2NhcHRpb24+PC9jb2w+PC9jb2xncm91cD48L2h0bWw+PC90ZD48L3RoPjx0ZD5mb28KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgImZvbyIKKworI2RhdGEKKzx0YWJsZT48dGQ+PHRyPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzx0YWJsZT48dGQ+PGJ1dHRvbj48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxidXR0b24+Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZD48c3ZnPjxkZXNjPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICAgICAgPHN2ZyBkZXNjPgorfCAgICAgICAgICAgPHRkPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM3MGNjMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQKQEAgLTAsMCArMSwxNTkxIEBACisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgICJIZWxsbyIKKworI2RhdGEKKzx0ZW1wbGF0ZT5IZWxsbzwvdGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAiSGVsbG8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PC90ZW1wbGF0ZT48ZGl2PjwvZGl2PgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPGh0bWw+PHRlbXBsYXRlPkhlbGxvPC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgICJIZWxsbyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxoZWFkPjx0ZW1wbGF0ZT48ZGl2PjwvZGl2PjwvdGVtcGxhdGU+PC9oZWFkPgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxkaXY+PHRlbXBsYXRlPjxkaXY+PHNwYW4+PC90ZW1wbGF0ZT48Yj4KKyNlcnJvcnMKKyAqICgxLDYpIG1pc3NpbmcgRE9DVFlQRQorICogKDEsMzgpIG1pc21hdGNoZWQgdGVtcGxhdGUgZW5kIHRhZworICogKDEsNDEpIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPGI+CisKKyNkYXRhCis8ZGl2Pjx0ZW1wbGF0ZT48L2Rpdj5IZWxsbworI2Vycm9ycworICogKDEsNikgbWlzc2luZyBET0NUWVBFCisgKiAoMSwyMikgdW5leHBlY3RlZCB0b2tlbiBpbiB0ZW1wbGF0ZQorICogKDEsMjcpIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gdGVtcGxhdGUKKyAqICgxLDI3KSB1bmV4cGVjdGVkIGVuZCBvZiBmaWxlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGRpdj48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworICogKDEsNikgbWlzc2luZyBET0NUWVBFCisgKiAoMSwxNykgdW5leHBlY3RlZCB0ZW1wbGF0ZSBlbmQgdGFnCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9kaXY+CisjZXJyb3JzCisgKiAoMSw4KSBtaXNzaW5nIERPQ1RZUEUKKyAqICgxLDM1KSB1bmV4cGVjdGVkIHRva2VuIGluIHRhYmxlIC0gZm9zdGVyIHBhcmVudGluZworICogKDEsMzUpIHVuZXhwZWN0ZWQgZW5kIHRhZworICogKDEsMzUpIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzx0YWJsZT48ZGl2Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvZGl2PgorI2Vycm9ycworICogKDEsOCkgbWlzc2luZyBET0NUWVBFCisgKiAoMSwxMykgdW5leHBlY3RlZCB0b2tlbiBpbiB0YWJsZSAtIGZvc3RlciBwYXJlbnRpbmcKKyAqICgxLDQwKSB1bmV4cGVjdGVkIHRva2VuIGluIHRhYmxlIC0gZm9zdGVyIHBhcmVudGluZworICogKDEsNDApIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PGRpdj48L2Rpdj4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCBkaXYgaW4gdGFibGUKK2JhZCAvZGl2IGluIHRhYmxlCitlb2YgaW4gdGFibGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50CisKKyNkYXRhCis8dGFibGU+ICAgPHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgIiAgICIKK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90Ym9keT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0YWJsZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorCisjZGF0YQorPHRhYmxlPjx0Ym9keT48dGVtcGxhdGU+PC90Ym9keT48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorYmFkIC90Ym9keQorZW9mIGluIHRhYmxlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50CisKKyNkYXRhCis8dGFibGU+PHRib2R5Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvdGJvZHk+PC90YWJsZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC90aGVhZD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0YWJsZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorCisjZGF0YQorPHRhYmxlPjx0Zm9vdD48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3Rmb290PgorI2Vycm9ycworbm8gZG9jdHlwZQorZW9mIGluIHRhYmxlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Zm9vdD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50CisKKyNkYXRhCis8c2VsZWN0Pjx0ZW1wbGF0ZT48L3RlbXBsYXRlPjwvc2VsZWN0PgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjxvcHRpb24+PC9vcHRpb24+PC90ZW1wbGF0ZT48L3NlbGVjdD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPHRlbXBsYXRlPjxvcHRpb24+PC9vcHRpb24+PC9zZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorYmFkIC9zZWxlY3QKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgPG9wdGlvbj4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PG9wdGlvbj48L3NlbGVjdD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8c2VsZWN0PjxvcHRpb24+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PC9zZWxlY3Q+CisjZXJyb3JzCitubyBkb2N0eXBlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzxzZWxlY3Q+PHRlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorZW9mIGluIHRlbXBsYXRlCitlb2YgaW4gc2VsZWN0CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgY29udGVudAorCisjZGF0YQorPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjx0ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0ZW1wbGF0ZQorZW9mIGluIHNlbGVjdAorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj48L29wdGlvbj48dGVtcGxhdGU+PG9wdGlvbj4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0ZW1wbGF0ZQorZW9mIGluIHNlbGVjdAorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworICogKDEsOCkgbWlzc2luZyBET0NUWVBFCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGVtcGxhdGU+PHRoZWFkPjwvdGVtcGxhdGU+PC90YWJsZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgIDx0aGVhZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48dGVtcGxhdGU+PHRkPjwvdHI+PGRpdj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgPC90cj4KK21pc3NpbmcgPC9kaXY+CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0aGVhZD48L3RlbXBsYXRlPjwvdGhlYWQ+PC90YWJsZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCAvdGhlYWQgYWZ0ZXIgL3RlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICA8dGhlYWQ+CisKKyNkYXRhCis8dGFibGU+PHRoZWFkPjx0ZW1wbGF0ZT48dHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3JzCitubyBkb2N0eXBlCitlb2YgaW4gdGVtcGxhdGUKK2VvZiBpbiB0YWJsZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPjwvdHI+PC90ZW1wbGF0ZT48L3RhYmxlPgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZW1wbGF0ZT48dHI+PHRlbXBsYXRlPjx0ZD48L3RkPjwvdGVtcGxhdGU+PC90cj48L3RlbXBsYXRlPjwvdGFibGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8dGFibGU+PHRlbXBsYXRlPjx0ZD48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorZW9mIGluIHRhYmxlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGVtcGxhdGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0ZW1wbGF0ZQorZW9mIGluIHRhYmxlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDxjb2w+CisKKyNkYXRhCis8ZnJhbWVzZXQ+PHRlbXBsYXRlPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+PC9mcmFtZXNldD4KKyNlcnJvcnMKKyAqICgxLDExKSBtaXNzaW5nIERPQ1RZUEUKKyAqICgxLDIxKSB1bmV4cGVjdGVkIHN0YXJ0IHRhZyB0b2tlbgorICogKDEsMzYpIHVuZXhwZWN0ZWQgZW5kIHRhZyB0b2tlbgorICogKDEsNDcpIHVuZXhwZWN0ZWQgZW5kIHRhZyB0b2tlbgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KK3wgICAgIDxmcmFtZT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48ZnJhbWU+PC9mcmFtZT48L2ZyYW1lc2V0PjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCisgKiAoMSwxMSkgbWlzc2luZyBET0NUWVBFCisgKiAoMSwxOCkgdW5leHBlY3RlZCBzdGFydCB0YWcKKyAqICgxLDI2KSB1bmV4cGVjdGVkIGVuZCB0YWcKKyAqICgxLDM3KSB1bmV4cGVjdGVkIGVuZCB0YWcKKyAqICgxLDQ0KSB1bmV4cGVjdGVkIHN0YXJ0IHRhZworICogKDEsNTIpIHVuZXhwZWN0ZWQgZW5kIHRhZworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+PC9zcGFuPjwvZGl2PjxzcGFuPjwvc3Bhbj48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorYmFkIGZyYW1lc2V0CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPHNwYW4+Cit8ICAgICAgICAgPHNwYW4+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGRpdj48ZnJhbWVzZXQ+PHNwYW4+PC9zcGFuPjwvZGl2PjxzcGFuPjwvc3Bhbj48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCBmcmFtZXNldAorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgIDxzcGFuPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxzY3JpcHQ+dmFyIGkgPSAxOzwvc2NyaXB0Pjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgInZhciBpID0gMTsiCit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48ZGl2PjwvZGl2PjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2Zvc3Rlci1wYXJlbnRlZCBkaXYKK2Zvc3Rlci1wYXJlbnRlZCAvZGl2CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQordW5leHBlY3RlZCA8dGQ+CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjwvdHI+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCA8L3RyPgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48dGJvZHk+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCA8dGJvZHk+CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjxjYXB0aW9uPjwvY2FwdGlvbj48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworICogKDEsNykgbWlzc2luZyBET0NUWVBFCisgKiAoMSwzNSkgdW5leHBlY3RlZCBzdGFydCB0YWcgaW4gdGFibGUgcm93CisgKiAoMSw0NSkgdW5leHBlY3RlZCBlbmQgdGFnIGluIHRhYmxlIHJvdworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGQ+PC90ZD48Y29sZ3JvdXA+PC9jYXB0aW9uPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCisgKiAoMSw3KSBtaXNzaW5nIERPQ1RZUEUKKyAqICgxLDM2KSB1bmV4cGVjdGVkIHN0YXJ0IHRhZyBpbiB0YWJsZSByb3cKKyAqICgxLDQ2KSB1bmV4cGVjdGVkIGVuZCB0YWcgaW4gdGFibGUgcm93CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGQ+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZD48L3RkPjwvdGFibGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCA8L3RhYmxlPgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dHI+PC90cj48dGJvZHk+PHRyPjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCA8dGJvZHk+CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjxjYXB0aW9uPjx0cj48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgPGNhcHRpb24+CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGFibGU+PHRyPjwvdHI+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCA8L3RhYmxlPgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48dGhlYWQ+PC90aGVhZD48Y2FwdGlvbj48L2NhcHRpb24+PHRib2R5PjwvdGJvZHk+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRoZWFkPjwvdGhlYWQ+PC90YWJsZT48dGJvZHk+PC90Ym9keT48L3RlbXBsYXRlPjwvYm9keT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCA8L3RhYmxlPgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRoZWFkPgorfCAgICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48ZGl2Pjx0cj48L3RyPjwvZGl2PjwvdGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgdHIKK2JhZCAvdHIKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PGVtPkhlbGxvPC9lbT48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPGVtPgorfCAgICAgICAgICAgIkhlbGxvIgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjwhLS1jb21tZW50LS0+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDwhLS0gY29tbWVudCAtLT4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48c3R5bGU+PC9zdHlsZT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHN0eWxlPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48bWV0YT48dGQ+PC90ZD48L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPG1ldGE+Cit8ICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxsaW5rPjx0ZD48L3RkPjwvdGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8bGluaz4KK3wgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0ZD4KKworI2RhdGEKKzxib2R5Pjx0YWJsZT48Y29sZ3JvdXA+PHRlbXBsYXRlPjxjb2w+PC9jb2w+PC90ZW1wbGF0ZT48L2NvbGdyb3VwPjwvdGFibGU+PC9ib2R5PgorI2Vycm9ycworbm8gZG9jdHlwZQorYmFkIC9jb2wKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgICAgPGNvbD4KKworI2RhdGEKKzxib2R5IGE9Yj48dGVtcGxhdGU+PGRpdj48L2Rpdj48Ym9keSBjPWQ+PGRpdj48L2Rpdj48L2JvZHk+PC90ZW1wbGF0ZT48L2JvZHk+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgPGJvZHk+CitiYWQgPC9ib2R5PgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgYT0iYiIKK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGRpdj48aHRtbCBiPWM+PHNwYW4+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCA8aHRtbD4KK21pc3NpbmcgZW5kIHRhZ3MgaW4gdGVtcGxhdGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBhPSJiIgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgIDxib2R5PgorCisjZGF0YQorPGh0bWwgYT1iPjx0ZW1wbGF0ZT48Y29sPjwvY29sPjxodG1sIGI9Yz48Y29sPjwvY29sPjwvdGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgL2NvbAorYmFkIGh0bWwKK2JhZCAvY29sCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgICAgPGNvbD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sIGE9Yj48dGVtcGxhdGU+PGZyYW1lPjwvZnJhbWU+PGh0bWwgYj1jPjxmcmFtZT48L2ZyYW1lPjwvdGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgZnJhbWUKK2JhZCAvZnJhbWUKK2JhZCBodG1sCitiYWQgZnJhbWUKK2JhZCAvZnJhbWUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICBhPSJiIgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRyPjwvdHI+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PHRkPjwvdGQ+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK3VuZXhwZWN0ZWQgPHRkPgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRoZWFkPjwvdGhlYWQ+PHRlbXBsYXRlPjx0cj48L3RyPjwvdGVtcGxhdGU+PHRyPjwvdHI+PHRmb290PjwvdGZvb3Q+PC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRmb290PgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjx0ZW1wbGF0ZT48Yj48dGVtcGxhdGU+PC90ZW1wbGF0ZT48L3RlbXBsYXRlPnRleHQ8L3RlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorbWlzc2luZyA8L2I+CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDxiPgorfCAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAidGV4dCIKKworI2RhdGEKKzxib2R5Pjx0ZW1wbGF0ZT48Y29sPjxjb2xncm91cD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCBjb2xncm91cAorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxjb2w+PC9jb2xncm91cD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JvZ3VzIC9jb2xncm91cAorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxjb2w+PGNvbGdyb3VwPjwvdGVtcGxhdGU+PC9ib2R5PgorI2Vycm9ycworbm8gZG9jdHlwZQorYmFkIGNvbGdyb3VwCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxjb2w+PGRpdj4KKyNlcnJvcnMKKyAqICgxLDcpIG1pc3NpbmcgRE9DVFlQRQorICogKDEsMjcpIHVuZXhwZWN0ZWQgdG9rZW4KKyAqICgxLDI3KSB1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxjb2w+PC9kaXY+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgL2RpdgorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxjb2w+SGVsbG8KKyNlcnJvcnMKK25vIGRvY3R5cGUKK3VuZXhwZWN0ZWQgdGV4dAorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8Y29sPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjxpPjxtZW51PkZvbzwvaT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK21pc2luZyAvbWVudQorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8aT4KK3wgICAgICAgICA8bWVudT4KK3wgICAgICAgICAgIDxpPgorfCAgICAgICAgICAgICAiRm9vIgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRlPjwvZGl2PjxkaXY+Rm9vPC9kaXY+PHRlbXBsYXRlPjwvdGVtcGxhdGU+PHRyPjwvdHI+CisjZXJyb3JzCitubyBkb2N0eXBlCitib2d1cyAvZGl2Citib2d1cyB0cgorYm9ndXMgL3RyCitlb2YgaW4gdGVtcGxhdGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAiRm9vIgorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzxib2R5PjxkaXY+PHRlbXBsYXRlPjwvZGl2Pjx0cj48dGQ+Rm9vPC90ZD48L3RyPjwvdGVtcGxhdGU+CisjZXJyb3JzCisgKiAoMSw3KSBtaXNzaW5nIERPQ1RZUEUKKyAqICgxLDI4KSB1bmV4cGVjdGVkIHRva2VuIGluIHRlbXBsYXRlCisgKiAoMSw2MCkgdW5leHBlY3RlZCBlbmQgb2YgZmlsZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAgICJGb28iCisKKyNkYXRhCis8dGVtcGxhdGU+PC9maWdjYXB0aW9uPjxzdWI+PHRhYmxlPjwvdGFibGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitiYWQgL2ZpZ2NhcHRpb24KK2VvZiBpbiB0ZW1wbGF0ZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHN1Yj4KK3wgICAgICAgICAgIDx0YWJsZT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48dGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitlb2YgaW4gdGVtcGxhdGUKK2VvZiBpbiB0ZW1wbGF0ZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjxkaXY+CisjZXJyb3JzCitubyBkb2N0eXBlCitlb2YgaW4gdGVtcGxhdGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDxkaXY+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHRlbXBsYXRlPjxkaXY+CisjZXJyb3JzCitubyBkb2N0eXBlCitlb2YgaW4gdGVtcGxhdGUKK2VvZiBpbiB0ZW1wbGF0ZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICA8ZGl2PgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjx0ZW1wbGF0ZT48dGFibGU+CisjZXJyb3JzCitubyBkb2N0eXBlCitlb2YgaW4gdGVtcGxhdGUKK2VvZiBpbiB0ZW1wbGF0ZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICA8dGFibGU+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHRlbXBsYXRlPjx0Ym9keT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0ZW1wbGF0ZQorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDx0Ym9keT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48dGVtcGxhdGU+PHRyPgorI2Vycm9ycworbm8gZG9jdHlwZQorZW9mIGluIHRlbXBsYXRlCitlb2YgaW4gdGVtcGxhdGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjx0ZW1wbGF0ZT48dGQ+CisjZXJyb3JzCitubyBkb2N0eXBlCitlb2YgaW4gdGVtcGxhdGUKK2VvZiBpbiB0ZW1wbGF0ZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICA8dGQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHRlbXBsYXRlPjxjYXB0aW9uPgorI2Vycm9ycworbm8gZG9jdHlwZQorZW9mIGluIHRlbXBsYXRlCitlb2YgaW4gdGVtcGxhdGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgICAgPGNhcHRpb24+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHRlbXBsYXRlPjxjb2xncm91cD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0ZW1wbGF0ZQorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDxjb2xncm91cD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48dGVtcGxhdGU+PGNvbD4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiB0ZW1wbGF0ZQorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDxjb2w+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHRlbXBsYXRlPjx0Ym9keT48c2VsZWN0PgorI2Vycm9ycworICogKDEsMTEpIG1pc3NpbmcgRE9DVFlQRQorICogKDEsMzYpIHVuZXhwZWN0ZWQgdG9rZW4gaW4gdGFibGUgLSBmb3N0ZXIgcGFyZW50aW5nCisgKiAoMSwzNikgdW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiB0ZW1wbGF0ZQorICogKDEsMzYpIHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gdGVtcGxhdGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgICAgPHRib2R5PgorfCAgICAgICAgICAgICA8c2VsZWN0PgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjx0ZW1wbGF0ZT48dGFibGU+Rm9vCisjZXJyb3JzCitubyBkb2N0eXBlCitmb3N0ZXItcGFyZW50aW5nIHRleHQgRgorZm9zdGVyLXBhcmVudGluZyB0ZXh0IG8KK2Zvc3Rlci1wYXJlbnRpbmcgdGV4dCBvCitlb2YKK2VvZgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICAiRm9vIgorfCAgICAgICAgICAgICA8dGFibGU+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHRlbXBsYXRlPjxmcmFtZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCB0YWcKK2VvZgorZW9mCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHRlbXBsYXRlPjxzY3JpcHQ+dmFyIGkKKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiBzY3JpcHQKK2VvZiBpbiB0ZW1wbGF0ZQorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgICBjb250ZW50Cit8ICAgICAgICAgICAgIDxzY3JpcHQ+Cit8ICAgICAgICAgICAgICAgInZhciBpIgorfCAgIDxib2R5PgorCisjZGF0YQorPHRlbXBsYXRlPjx0ZW1wbGF0ZT48c3R5bGU+dmFyIGkKKyNlcnJvcnMKK25vIGRvY3R5cGUKK2VvZiBpbiBzdHlsZQorZW9mIGluIHRlbXBsYXRlCitlb2YgaW4gdGVtcGxhdGUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgIGNvbnRlbnQKK3wgICAgICAgICAgICAgPHN0eWxlPgorfCAgICAgICAgICAgICAgICJ2YXIgaSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZW1wbGF0ZT48dGFibGU+PC90ZW1wbGF0ZT48Ym9keT48c3Bhbj5Gb28KKyNlcnJvcnMKK25vIGRvY3R5cGUKK21pc3NpbmcgL3RhYmxlCitiYWQgZW9mCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8dGFibGU+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3Bhbj4KK3wgICAgICAgIkZvbyIKKworI2RhdGEKKzx0ZW1wbGF0ZT48dGQ+PC90ZW1wbGF0ZT48Ym9keT48c3Bhbj5Gb28KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCBlb2YKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgY29udGVudAorfCAgICAgICAgIDx0ZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzcGFuPgorfCAgICAgICAiRm9vIgorCisjZGF0YQorPHRlbXBsYXRlPjxvYmplY3Q+PC90ZW1wbGF0ZT48Ym9keT48c3Bhbj5Gb28KKyNlcnJvcnMKK25vIGRvY3R5cGUKK21pc3NpbmcgL29iamVjdAorYmFkIGVvZgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPG9iamVjdD4KK3wgICA8Ym9keT4KK3wgICAgIDxzcGFuPgorfCAgICAgICAiRm9vIgorCisjZGF0YQorPHRlbXBsYXRlPjxzdmc+PHRlbXBsYXRlPgorI2Vycm9ycworbm8gZG9jdHlwZQorZW9mIGluIHRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICAgIDxzdmcgdGVtcGxhdGU+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGVtcGxhdGU+PHN2Zz48Zm9vPjx0ZW1wbGF0ZT48Zm9yZWlnbk9iamVjdD48ZGl2PjwvdGVtcGxhdGU+PGRpdj4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK3VnbHkgdGVtcGxhdGUgY2xvc3VyZQorYmFkIGVvZgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGZvbz4KK3wgICAgICAgICAgICAgPHN2ZyB0ZW1wbGF0ZT4KK3wgICAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgICAgICAgICA8ZGl2PgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KKworI2RhdGEKKzxkdW1teT48dGVtcGxhdGU+PHNwYW4+PC9kdW1teT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKK2JhZCBlbmQgdGFnIDwvZHVtbXk+Citlb2YgaW4gdGVtcGxhdGUKK2VvZiBpbiBkdW1teQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGR1bW15PgorfCAgICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgPHNwYW4+CisKKyNkYXRhCis8Ym9keT48dGFibGU+PHRyPjx0ZD48c2VsZWN0Pjx0ZW1wbGF0ZT5Gb288L3RlbXBsYXRlPjxjYXB0aW9uPkE8L3RhYmxlPgorI2Vycm9ycworbm8gZG9jdHlwZQorKDEsNjIpOiB1bmV4cGVjdGVkLWNhcHRpb24taW4tc2VsZWN0LWluLXRhYmxlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxzZWxlY3Q+Cit8ICAgICAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICAgICAgICAiRm9vIgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICAiQSIKKworI2RhdGEKKzxib2R5PjwvYm9keT48dGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisoMSwyMyk6IHRlbXBsYXRlLWFmdGVyLWJvZHkKKygxLDI0KTogZW9mLWluLXRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKKworI2RhdGEKKzxoZWFkPjwvaGVhZD48dGVtcGxhdGU+CisjZXJyb3JzCitubyBkb2N0eXBlCisoMSwyMyk6IHRlbXBsYXRlLWFmdGVyLWhlYWQKKygxLDI0KTogZW9mLWluLXRlbXBsYXRlCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgIGNvbnRlbnQKK3wgICA8Ym9keT4KKworI2RhdGEKKzxoZWFkPjwvaGVhZD48dGVtcGxhdGU+Rm9vPC90ZW1wbGF0ZT4KKyNlcnJvcnMKK25vIGRvY3R5cGUKKygxLDIzKTogdGVtcGxhdGUtYWZ0ZXItaGVhZAorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRlbXBsYXRlPgorfCAgICAgICBjb250ZW50Cit8ICAgICAgICAgIkZvbyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBIVE1MPjxkdW1teT48dGFibGU+PHRlbXBsYXRlPjx0YWJsZT48dGVtcGxhdGU+PHRhYmxlPjxzY3JpcHQ+CisjZXJyb3JzCitlb2Ygc2NyaXB0Citlb2YgdGVtcGxhdGUKK2VvZiB0ZW1wbGF0ZQorZW9mIHRhYmxlCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGR1bW15PgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICA8dGFibGU+Cit8ICAgICAgICAgICAgICAgPHRlbXBsYXRlPgorfCAgICAgICAgICAgICAgICAgY29udGVudAorfCAgICAgICAgICAgICAgICAgICA8dGFibGU+Cit8ICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czEuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JmOGJkZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czEuZGF0CkBAIC0wLDAgKzEsMTk1MiBAQAorI2RhdGEKK1Rlc3QKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0IFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiVGVzdCIKKworI2RhdGEKKzxwPk9uZTxwPlR3bworI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKHApLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgICJPbmUiCit8ICAgICA8cD4KK3wgICAgICAgIlR3byIKKworI2RhdGEKK0xpbmUxPGJyPkxpbmUyPGJyPkxpbmUzPGJyPkxpbmU0CisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkxpbmUxIgorfCAgICAgPGJyPgorfCAgICAgIkxpbmUyIgorfCAgICAgPGJyPgorfCAgICAgIkxpbmUzIgorfCAgICAgPGJyPgorfCAgICAgIkxpbmU0IgorCisjZGF0YQorPGh0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaHRtbCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChoZWFkKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxib2R5PgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGJvZHkpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGh0bWw+PGhlYWQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaHRtbCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8aHRtbD48aGVhZD48L2hlYWQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaHRtbCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaHRtbCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PC9ib2R5PgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGh0bWwpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGh0bWw+PGhlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChodG1sKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxodG1sPjxoZWFkPjwvYm9keT48L2h0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaHRtbCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTkgVW5leHBlY3RlZCBlbmQgdGFnIChib2R5KS4KK0xpbmU6IDEgQ29sOiAyNiBVbmV4cGVjdGVkIGVuZCB0YWcgKGh0bWwpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGh0bWw+PGhlYWQ+PGJvZHk+PC9odG1sPgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGh0bWwpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGh0bWw+PGJvZHk+PC9odG1sPgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGh0bWwpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGJvZHk+PC9odG1sPgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGJvZHkpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGhlYWQ+PC9odG1sPgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGhlYWQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEzIFVuZXhwZWN0ZWQgZW5kIHRhZyAoaHRtbCkuIElnbm9yZWQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8L2hlYWQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIGVuZCB0YWcgKGhlYWQpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPC9ib2R5PgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBlbmQgdGFnIChib2R5KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgZW5kIHRhZyAoYm9keSkgYWZ0ZXIgdGhlIChpbXBsaWVkKSByb290IGVsZW1lbnQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8L2h0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIGVuZCB0YWcgKGh0bWwpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBlbmQgdGFnIChodG1sKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxiPjx0YWJsZT48dGQ+PGk+PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChiKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIHRhYmxlIGNlbGwgc3RhcnQgdGFnICh0ZCkgaW4gdGhlIHRhYmxlIGJvZHkgcGhhc2UuCitMaW5lOiAxIENvbDogMjUgR290IHRhYmxlIGNlbGwgZW5kIHRhZyAodGQpIHdoaWxlIHJlcXVpcmVkIGVuZCB0YWdzIGFyZSBtaXNzaW5nLgorTGluZTogMSBDb2w6IDI1IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDx0YWJsZT4KK3wgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICA8aT4KKworI2RhdGEKKzxiPjx0YWJsZT48dGQ+PC9iPjxpPjwvdGFibGU+WAorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGIpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE0IFVuZXhwZWN0ZWQgdGFibGUgY2VsbCBzdGFydCB0YWcgKHRkKSBpbiB0aGUgdGFibGUgYm9keSBwaGFzZS4KK0xpbmU6IDEgQ29sOiAxOCBFbmQgdGFnIChiKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDI5IEdvdCB0YWJsZSBjZWxsIGVuZCB0YWcgKHRkKSB3aGlsZSByZXF1aXJlZCBlbmQgdGFncyBhcmUgbWlzc2luZy4KK0xpbmU6IDEgQ29sOiAzMCBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgPHRib2R5PgorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICAgPGk+Cit8ICAgICAgICJYIgorCisjZGF0YQorPGgxPkhlbGxvPGgyPldvcmxkCisjZXJyb3JzCis0OiBTdGFydCB0YWcgc2VlbiB3aXRob3V0IHNlZWluZyBhIGRvY3R5cGUgZmlyc3QuIEV4cGVjdGVkIOKAnDwhRE9DVFlQRSBodG1sPuKAnS4KKzEzOiBIZWFkaW5nIGNhbm5vdCBiZSBhIGNoaWxkIG9mIGFub3RoZXIgaGVhZGluZy4KKzE4OiBFbmQgb2YgZmlsZSBzZWVuIGFuZCB0aGVyZSB3ZXJlIG9wZW4gZWxlbWVudHMuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aDE+Cit8ICAgICAgICJIZWxsbyIKK3wgICAgIDxoMj4KK3wgICAgICAgIldvcmxkIgorCisjZGF0YQorPGE+PHA+WDxhPlk8L2E+WjwvcD48L2E+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpIGltcGxpZXMgZW5kIHRhZyAoYSkuCitMaW5lOiAxIENvbDogMTAgRW5kIHRhZyAoYSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMyBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiAyNCBFbmQgdGFnIChhKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICA8cD4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgIlgiCit8ICAgICAgIDxhPgorfCAgICAgICAgICJZIgorfCAgICAgICAiWiIKKworI2RhdGEKKzxiPjxidXR0b24+Zm9vPC9iPmJhcgorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGIpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE1IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDEgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgIDxidXR0b24+Cit8ICAgICAgIDxiPgorfCAgICAgICAgICJmb28iCit8ICAgICAgICJiYXIiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48c3Bhbj48YnV0dG9uPmZvbzwvc3Bhbj5iYXIKKyNlcnJvcnMKKzM5OiBFbmQgdGFnIOKAnHNwYW7igJ0gc2VlbiBidXQgdGhlcmUgd2VyZSB1bmNsb3NlZCBlbGVtZW50cy4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3Bhbj4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICAgICAiZm9vYmFyIgorCisjZGF0YQorPHA+PGI+PGRpdj48bWFycXVlZT48L3A+PC9iPjwvZGl2PlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChwKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxMSBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgZW5kIHRhZyAocCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjggRW5kIHRhZyAoYikgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiAzNCBFbmQgdGFnIChkaXYpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDM1IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxiPgorfCAgICAgPGRpdj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPG1hcnF1ZWU+Cit8ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICJYIgorCisjZGF0YQorPHNjcmlwdD48ZGl2Pjwvc2NyaXB0PjwvZGl2Pjx0aXRsZT48cD48L3RpdGxlPjxwPjxwPgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjggVW5leHBlY3RlZCBlbmQgdGFnIChkaXYpLiBJZ25vcmVkLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjxkaXY+IgorfCAgICAgPHRpdGxlPgorfCAgICAgICAiPHA+IgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICA8cD4KKworI2RhdGEKKzwhLS0+PGRpdj4tLTwhLS0+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBJbmNvcnJlY3QgY29tbWVudC4KK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNyBJbmNvcnJlY3QgY29tbWVudC4KK0xpbmU6IDEgQ29sOiAxNyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8IS0tICAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiLS0iCit8ICAgICAgIDwhLS0gIC0tPgorCisjZGF0YQorPHA+PGhyPjwvcD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChwKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxMSBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICA8aHI+Cit8ICAgICA8cD4KKworI2RhdGEKKzxzZWxlY3Q+PGI+PG9wdGlvbj48c2VsZWN0PjxvcHRpb24+PC9iPjwvc2VsZWN0PlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzZWxlY3QpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDExIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChiKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI3IFVuZXhwZWN0ZWQgc2VsZWN0IHN0YXJ0IHRhZyBpbiB0aGUgc2VsZWN0IHBoYXNlIHRyZWF0ZWQgYXMgc2VsZWN0IGVuZCB0YWcuCitMaW5lOiAxIENvbDogMzkgRW5kIHRhZyAoYikgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA0OCBVbmV4cGVjdGVkIGVuZCB0YWcgKHNlbGVjdCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNDkgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgPG9wdGlvbj4KK3wgICAgICAgIlgiCisKKyNkYXRhCis8YT48dGFibGU+PHRkPjxhPjx0YWJsZT48L3RhYmxlPjxhPjwvdHI+PGE+PC90YWJsZT48Yj5YPC9iPkM8YT5ZCisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTQgVW5leHBlY3RlZCB0YWJsZSBjZWxsIHN0YXJ0IHRhZyAodGQpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLgorTGluZTogMSBDb2w6IDM1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKSBpbXBsaWVzIGVuZCB0YWcgKGEpLgorTGluZTogMSBDb2w6IDQwIEdvdCB0YWJsZSBjZWxsIGVuZCB0YWcgKHRkKSB3aGlsZSByZXF1aXJlZCBlbmQgdGFncyBhcmUgbWlzc2luZy4KK0xpbmU6IDEgQ29sOiA0MyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpIGltcGxpZXMgZW5kIHRhZyAoYSkuCitMaW5lOiAxIENvbDogNDMgRW5kIHRhZyAoYSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA1MSBVbmV4cGVjdGVkIGltcGxpZWQgZW5kIHRhZyAoYSkgaW4gdGhlIHRhYmxlIHBoYXNlLgorTGluZTogMSBDb2w6IDYzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKSBpbXBsaWVzIGVuZCB0YWcgKGEpLgorTGluZTogMSBDb2w6IDY0IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgIDxhPgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgPHRib2R5PgorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICA8dGFibGU+Cit8ICAgICAgICAgICAgICAgPGE+Cit8ICAgICA8YT4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgIlgiCit8ICAgICAgICJDIgorfCAgICAgPGE+Cit8ICAgICAgICJZIgorCisjZGF0YQorPGEgWD4wPGI+MTxhIFk+MgorI2Vycm9ycworTGluZTogMSBDb2w6IDUgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKSBpbXBsaWVzIGVuZCB0YWcgKGEpLgorTGluZTogMSBDb2w6IDE1IEVuZCB0YWcgKGEpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMTYgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgeD0iIgorfCAgICAgICAiMCIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgIjEiCit8ICAgICA8Yj4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgeT0iIgorfCAgICAgICAgICIyIgorCisjZGF0YQorPCEtLS0tLT48Zm9udD48ZGl2PmhlbGxvPHRhYmxlPmV4Y2l0ZSE8Yj5tZSE8dGg+PGk+cGxlYXNlITwvdHI+PCEtLVgtLT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgJy0nIGFmdGVyICctLScgZm91bmQgaW4gY29tbWVudC4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZm9udCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzggVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycyBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA0MSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYikgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNDggVW5leHBlY3RlZCBpbXBsaWVkIGVuZCB0YWcgKGIpIGluIHRoZSB0YWJsZSBwaGFzZS4KK0xpbmU6IDEgQ29sOiA0OCBVbmV4cGVjdGVkIHRhYmxlIGNlbGwgc3RhcnQgdGFnICh0aCkgaW4gdGhlIHRhYmxlIGJvZHkgcGhhc2UuCitMaW5lOiAxIENvbDogNjMgR290IHRhYmxlIGNlbGwgZW5kIHRhZyAodGgpIHdoaWxlIHJlcXVpcmVkIGVuZCB0YWdzIGFyZSBtaXNzaW5nLgorTGluZTogMSBDb2w6IDcxIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhYmxlIGNvbnRlbnQuCisjZG9jdW1lbnQKK3wgPCEtLSAtIC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb250PgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgICJoZWxsb2V4Y2l0ZSEiCit8ICAgICAgICAgPGI+Cit8ICAgICAgICAgICAibWUhIgorfCAgICAgICAgIDx0YWJsZT4KK3wgICAgICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICAgIDx0aD4KK3wgICAgICAgICAgICAgICAgIDxpPgorfCAgICAgICAgICAgICAgICAgICAicGxlYXNlISIKK3wgICAgICAgICAgICAgPCEtLSBYIC0tPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGxpPmhlbGxvPGxpPndvcmxkPHVsPmhvdzxsaT5kbzwvdWw+eW91PC9ib2R5PjwhLS1kby0tPgorI2Vycm9ycworTGluZTogMSBDb2w6IDYxIFVuZXhwZWN0ZWQgZW5kIHRhZyAobGkpLiBNaXNzaW5nIGVuZCB0YWcgKGJvZHkpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxsaT4KK3wgICAgICAgImhlbGxvIgorfCAgICAgPGxpPgorfCAgICAgICAid29ybGQiCit8ICAgICAgIDx1bD4KK3wgICAgICAgICAiaG93IgorfCAgICAgICAgIDxsaT4KK3wgICAgICAgICAgICJkbyIKK3wgICAgICAgInlvdSIKK3wgICA8IS0tIGRvIC0tPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+QTxvcHRpb24+QjxvcHRncm91cD5DPHNlbGVjdD5EPC9vcHRpb24+RQorI2Vycm9ycworTGluZTogMSBDb2w6IDU0IFVuZXhwZWN0ZWQgZW5kIHRhZyAob3B0aW9uKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDU1IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJBIgorfCAgICAgPG9wdGlvbj4KK3wgICAgICAgIkIiCit8ICAgICA8b3B0Z3JvdXA+Cit8ICAgICAgICJDIgorfCAgICAgICA8c2VsZWN0PgorfCAgICAgICAgICJERSIKKworI2RhdGEKKzwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxIEV4cGVjdGVkIHRhZyBuYW1lLiBHb3Qgc29tZXRoaW5nIGVsc2UgaW5zdGVhZAorTGluZTogMSBDb2w6IDEgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycy4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICI8IgorCisjZGF0YQorPCMKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxIEV4cGVjdGVkIHRhZyBuYW1lLiBHb3Qgc29tZXRoaW5nIGVsc2UgaW5zdGVhZAorTGluZTogMSBDb2w6IDEgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycy4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICI8IyIKKworI2RhdGEKKzwvCisjZXJyb3JzCitMaW5lOiAxIENvbDogMiBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KK0xpbmU6IDEgQ29sOiAyIFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiPC8iCisKKyNkYXRhCis8LyMKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGNoYXJhY3RlciAnIycgZm91bmQuCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIEVuZCBvZiBmaWxlLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDwhLS0gIyAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8PworI2Vycm9ycworTGluZTogMSBDb2w6IDEgRXhwZWN0ZWQgdGFnIG5hbWUuIEdvdCAnPycgaW5zdGVhZC4gKEhUTUwgZG9lc24ndCBzdXBwb3J0IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLikKK0xpbmU6IDEgQ29sOiAyIFVuZXhwZWN0ZWQgRW5kIG9mIGZpbGUuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPCEtLSA/IC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzw/IworI2Vycm9ycworTGluZTogMSBDb2w6IDEgRXhwZWN0ZWQgdGFnIG5hbWUuIEdvdCAnPycgaW5zdGVhZC4gKEhUTUwgZG9lc24ndCBzdXBwb3J0IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLikKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgRW5kIG9mIGZpbGUuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPCEtLSA/IyAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IQorI2Vycm9ycworTGluZTogMSBDb2w6IDIgRXhwZWN0ZWQgJy0tJyBvciAnRE9DVFlQRScuIE5vdCBmb3VuZC4KK0xpbmU6IDEgQ29sOiAyIFVuZXhwZWN0ZWQgRW5kIG9mIGZpbGUuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPCEtLSAgLS0+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCEjCisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBFeHBlY3RlZCAnLS0nIG9yICdET0NUWVBFJy4gTm90IGZvdW5kLgorTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBFbmQgb2YgZmlsZS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8IS0tICMgLS0+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPD9DT01NRU5UPz4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxIEV4cGVjdGVkIHRhZyBuYW1lLiBHb3QgJz8nIGluc3RlYWQuIChIVE1MIGRvZXNuJ3Qgc3VwcG9ydCBwcm9jZXNzaW5nIGluc3RydWN0aW9ucy4pCitMaW5lOiAxIENvbDogMTEgVW5leHBlY3RlZCBFbmQgb2YgZmlsZS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8IS0tID9DT01NRU5UPyAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IUNPTU1FTlQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMiBFeHBlY3RlZCAnLS0nIG9yICdET0NUWVBFJy4gTm90IGZvdW5kLgorTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgRW5kIG9mIGZpbGUuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPCEtLSBDT01NRU5UIC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwvIENPTU1FTlQgPgorI2Vycm9ycworTGluZTogMSBDb2w6IDIgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgY2hhcmFjdGVyICcgJyBmb3VuZC4KK0xpbmU6IDEgQ29sOiAxMiBVbmV4cGVjdGVkIEVuZCBvZiBmaWxlLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDwhLS0gIENPTU1FTlQgIC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzw/Q09NLS1NRU5UPz4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxIEV4cGVjdGVkIHRhZyBuYW1lLiBHb3QgJz8nIGluc3RlYWQuIChIVE1MIGRvZXNuJ3Qgc3VwcG9ydCBwcm9jZXNzaW5nIGluc3RydWN0aW9ucy4pCitMaW5lOiAxIENvbDogMTMgVW5leHBlY3RlZCBFbmQgb2YgZmlsZS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8IS0tID9DT00tLU1FTlQ/IC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhQ09NLS1NRU5UPgorI2Vycm9ycworTGluZTogMSBDb2w6IDIgRXhwZWN0ZWQgJy0tJyBvciAnRE9DVFlQRScuIE5vdCBmb3VuZC4KK0xpbmU6IDEgQ29sOiAxMiBVbmV4cGVjdGVkIEVuZCBvZiBmaWxlLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDwhLS0gQ09NLS1NRU5UIC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwvIENPTS0tTUVOVCA+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMiBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBjaGFyYWN0ZXIgJyAnIGZvdW5kLgorTGluZTogMSBDb2w6IDE0IFVuZXhwZWN0ZWQgRW5kIG9mIGZpbGUuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPCEtLSAgQ09NLS1NRU5UICAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48c3R5bGU+IEVPRgorI2Vycm9ycworTGluZTogMSBDb2w6IDI2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHN0eWxlKS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICIgRU9GIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHNjcmlwdD4gPCEtLSA8L3NjcmlwdD4gLS0+IDwvc2NyaXB0PiBFT0YKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiIDwhLS0gIgorfCAgICAgIiAiCit8ICAgPGJvZHk+Cit8ICAgICAiLS0+ICBFT0YiCisKKyNkYXRhCis8Yj48cD48L2I+VEVTVAorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGIpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEwIEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgIDxwPgorfCAgICAgICA8Yj4KK3wgICAgICAgIlRFU1QiCisKKyNkYXRhCis8cCBpZD1hPjxiPjxwIGlkPWI+PC9iPlRFU1QKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChwKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxOSBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDIzIEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDIgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgaWQ9ImEiCit8ICAgICAgIDxiPgorfCAgICAgPHA+Cit8ICAgICAgIGlkPSJiIgorfCAgICAgICAiVEVTVCIKKworI2RhdGEKKzxiIGlkPWE+PHA+PGIgaWQ9Yj48L3A+PC9iPlRFU1QKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChiKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyMyBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI3IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDIgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMzEgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgICAgaWQ9ImEiCit8ICAgICAgIDxwPgorfCAgICAgICAgIDxiPgorfCAgICAgICAgICAgaWQ9ImIiCit8ICAgICAgICJURVNUIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHRpdGxlPlUtdGVzdDwvdGl0bGU+PGJvZHk+PGRpdj48cD5UZXN0PHU+PC9wPjwvZGl2PjwvYm9keT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2MSBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIlUtdGVzdCIKK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDxwPgorfCAgICAgICAgICJUZXN0IgorfCAgICAgICAgIDx1PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGZvbnQ+PHRhYmxlPjwvZm9udD48L3RhYmxlPjwvZm9udD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzNSBVbmV4cGVjdGVkIGVuZCB0YWcgKGZvbnQpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDM1IEVuZCB0YWcgKGZvbnQpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDEgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvbnQ+Cit8ICAgICAgIDx0YWJsZT4KKworI2RhdGEKKzxmb250PjxwPmhlbGxvPGI+Y3J1ZWw8L2ZvbnQ+d29ybGQKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChmb250KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyOSBFbmQgdGFnIChmb250KSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAzIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDI5IEVuZCB0YWcgKGZvbnQpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMzQgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Zm9udD4KK3wgICAgIDxwPgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICAiaGVsbG8iCit8ICAgICAgICAgPGI+Cit8ICAgICAgICAgICAiY3J1ZWwiCit8ICAgICAgIDxiPgorfCAgICAgICAgICJ3b3JsZCIKKworI2RhdGEKKzxiPlRlc3Q8L2k+VGVzdAorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGIpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDExIEVuZCB0YWcgKGkpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDEgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMTUgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgICAgIlRlc3RUZXN0IgorCisjZGF0YQorPGI+QTxjaXRlPkI8ZGl2PkMKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChiKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICAiQSIKK3wgICAgICAgPGNpdGU+Cit8ICAgICAgICAgIkIiCit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICJDIgorCisjZGF0YQorPGI+QTxjaXRlPkI8ZGl2PkM8L2NpdGU+RAorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGIpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgZW5kIHRhZyAoY2l0ZSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjUgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgICAgIkEiCit8ICAgICAgIDxjaXRlPgorfCAgICAgICAgICJCIgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAiQ0QiCisKKyNkYXRhCis8Yj5BPGNpdGU+QjxkaXY+QzwvYj5ECisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYikuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjEgRW5kIHRhZyAoYikgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMyBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiAyMiBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICAiQSIKK3wgICAgICAgPGNpdGU+Cit8ICAgICAgICAgIkIiCit8ICAgICA8ZGl2PgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiQyIKK3wgICAgICAgIkQiCisKKyNkYXRhCisKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAwIFVuZXhwZWN0ZWQgRW5kIG9mIGZpbGUuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8RElWPgorI2Vycm9ycworTGluZTogMSBDb2w6IDUgVW5leHBlY3RlZCBzdGFydCB0YWcgKGRpdikuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8RElWPiBhYmMKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDkgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiIGFiYyIKKworI2RhdGEKKzxESVY+IGFiYyA8Qj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEzIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgIiBhYmMgIgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxESVY+IGFiYyA8Qj4gZGVmCisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICIgYWJjICIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgIiBkZWYiCisKKyNkYXRhCis8RElWPiBhYmMgPEI+IGRlZiA8ST4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIxIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgIiBhYmMgIgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiIGRlZiAiCit8ICAgICAgICAgPGk+CisKKyNkYXRhCis8RElWPiBhYmMgPEI+IGRlZiA8ST4gZ2hpCisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyNSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICIgYWJjICIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgIiBkZWYgIgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgIiBnaGkiCisKKyNkYXRhCis8RElWPiBhYmMgPEI+IGRlZiA8ST4gZ2hpIDxQPgorI2Vycm9ycworTGluZTogMSBDb2w6IDUgVW5leHBlY3RlZCBzdGFydCB0YWcgKGRpdikuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjkgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiIGFiYyAiCit8ICAgICAgIDxiPgorfCAgICAgICAgICIgZGVmICIKK3wgICAgICAgICA8aT4KK3wgICAgICAgICAgICIgZ2hpICIKK3wgICAgICAgICAgIDxwPgorCisjZGF0YQorPERJVj4gYWJjIDxCPiBkZWYgPEk+IGdoaSA8UD4gamtsCisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzMyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICIgYWJjICIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgIiBkZWYgIgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgIiBnaGkgIgorfCAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICAgICIgamtsIgorCisjZGF0YQorPERJVj4gYWJjIDxCPiBkZWYgPEk+IGdoaSA8UD4gamtsIDwvQj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDM4IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMzggRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiIGFiYyAiCit8ICAgICAgIDxiPgorfCAgICAgICAgICIgZGVmICIKK3wgICAgICAgICA8aT4KK3wgICAgICAgICAgICIgZ2hpICIKK3wgICAgICAgPGk+Cit8ICAgICAgICAgPHA+Cit8ICAgICAgICAgICA8Yj4KK3wgICAgICAgICAgICAgIiBqa2wgIgorCisjZGF0YQorPERJVj4gYWJjIDxCPiBkZWYgPEk+IGdoaSA8UD4gamtsIDwvQj4gbW5vCisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzOCBFbmQgdGFnIChiKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAzIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDQyIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgIiBhYmMgIgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiIGRlZiAiCit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAiIGdoaSAiCit8ICAgICAgIDxpPgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgICIgamtsICIKK3wgICAgICAgICAgICIgbW5vIgorCisjZGF0YQorPERJVj4gYWJjIDxCPiBkZWYgPEk+IGdoaSA8UD4gamtsIDwvQj4gbW5vIDwvST4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDM4IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogNDcgRW5kIHRhZyAoaSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMyBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA0NyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICIgYWJjICIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgIiBkZWYgIgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgIiBnaGkgIgorfCAgICAgICA8aT4KK3wgICAgICAgPHA+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICA8Yj4KK3wgICAgICAgICAgICAgIiBqa2wgIgorfCAgICAgICAgICAgIiBtbm8gIgorCisjZGF0YQorPERJVj4gYWJjIDxCPiBkZWYgPEk+IGdoaSA8UD4gamtsIDwvQj4gbW5vIDwvST4gcHFyCisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzOCBFbmQgdGFnIChiKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAzIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDQ3IEVuZCB0YWcgKGkpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogNTEgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiIGFiYyAiCit8ICAgICAgIDxiPgorfCAgICAgICAgICIgZGVmICIKK3wgICAgICAgICA8aT4KK3wgICAgICAgICAgICIgZ2hpICIKK3wgICAgICAgPGk+Cit8ICAgICAgIDxwPgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgICIgamtsICIKK3wgICAgICAgICAgICIgbW5vICIKK3wgICAgICAgICAiIHBxciIKKworI2RhdGEKKzxESVY+IGFiYyA8Qj4gZGVmIDxJPiBnaGkgPFA+IGprbCA8L0I+IG1ubyA8L0k+IHBxciA8L1A+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzOCBFbmQgdGFnIChiKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAzIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDQ3IEVuZCB0YWcgKGkpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogNTYgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAiIGFiYyAiCit8ICAgICAgIDxiPgorfCAgICAgICAgICIgZGVmICIKK3wgICAgICAgICA8aT4KK3wgICAgICAgICAgICIgZ2hpICIKK3wgICAgICAgPGk+Cit8ICAgICAgIDxwPgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgICIgamtsICIKK3wgICAgICAgICAgICIgbW5vICIKK3wgICAgICAgICAiIHBxciAiCisKKyNkYXRhCis8RElWPiBhYmMgPEI+IGRlZiA8ST4gZ2hpIDxQPiBqa2wgPC9CPiBtbm8gPC9JPiBwcXIgPC9QPiBzdHUKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDM4IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogNDcgRW5kIHRhZyAoaSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMyBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA2MCBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICIgYWJjICIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgIiBkZWYgIgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgIiBnaGkgIgorfCAgICAgICA8aT4KK3wgICAgICAgPHA+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICA8Yj4KK3wgICAgICAgICAgICAgIiBqa2wgIgorfCAgICAgICAgICAgIiBtbm8gIgorfCAgICAgICAgICIgcHFyICIKK3wgICAgICAgIiBzdHUiCisKKyNkYXRhCis8dGVzdCBhdHRyaWJ1dGUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwNDAgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRlc3QpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEwNDAgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVzdD4KK3wgICAgICAgYXR0cmlidXRlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0iIgorCisjZGF0YQorPGEgaHJlZj0iYmxhaCI+YWJhPHRhYmxlPjxhIGhyZWY9ImZvbyI+YnI8dHI+PHRkPjwvdGQ+PC90cj54PC90YWJsZT5hb2UKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzkgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDM5IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKSBpbXBsaWVzIGVuZCB0YWcgKGEpLgorTGluZTogMSBDb2w6IDM5IEVuZCB0YWcgKGEpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDEgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogNDUgVW5leHBlY3RlZCBpbXBsaWVkIGVuZCB0YWcgKGEpIGluIHRoZSB0YWJsZSBwaGFzZS4KK0xpbmU6IDEgQ29sOiA2OCBVbmV4cGVjdGVkIGltcGxpZWQgZW5kIHRhZyAoYSkgaW4gdGhlIHRhYmxlIHBoYXNlLgorTGluZTogMSBDb2w6IDcxIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgaHJlZj0iYmxhaCIKK3wgICAgICAgImFiYSIKK3wgICAgICAgPGE+Cit8ICAgICAgICAgaHJlZj0iZm9vIgorfCAgICAgICAgICJiciIKK3wgICAgICAgPGE+Cit8ICAgICAgICAgaHJlZj0iZm9vIgorfCAgICAgICAgICJ4IgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgPHRib2R5PgorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGQ+Cit8ICAgICA8YT4KK3wgICAgICAgaHJlZj0iZm9vIgorfCAgICAgICAiYW9lIgorCisjZGF0YQorPGEgaHJlZj0iYmxhaCI+YWJhPHRhYmxlPjx0cj48dGQ+PGEgaHJlZj0iZm9vIj5icjwvdGQ+PC90cj54PC90YWJsZT5hb2UKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNTQgR290IHRhYmxlIGNlbGwgZW5kIHRhZyAodGQpIHdoaWxlIHJlcXVpcmVkIGVuZCB0YWdzIGFyZSBtaXNzaW5nLgorTGluZTogMSBDb2w6IDYwIFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNzEgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgaHJlZj0iYmxhaCIKK3wgICAgICAgImFiYXgiCit8ICAgICAgIDx0YWJsZT4KK3wgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgIGhyZWY9ImZvbyIKK3wgICAgICAgICAgICAgICAgICJiciIKK3wgICAgICAgImFvZSIKKworI2RhdGEKKzx0YWJsZT48YSBocmVmPSJibGFoIj5hYmE8dHI+PHRkPjxhIGhyZWY9ImZvbyI+YnI8L3RkPjwvdHI+eDwvdGFibGU+YW9lCisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIyIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAyOSBVbmV4cGVjdGVkIGltcGxpZWQgZW5kIHRhZyAoYSkgaW4gdGhlIHRhYmxlIHBoYXNlLgorTGluZTogMSBDb2w6IDU0IEdvdCB0YWJsZSBjZWxsIGVuZCB0YWcgKHRkKSB3aGlsZSByZXF1aXJlZCBlbmQgdGFncyBhcmUgbWlzc2luZy4KK0xpbmU6IDEgQ29sOiA2OCBVbmV4cGVjdGVkIGltcGxpZWQgZW5kIHRhZyAoYSkgaW4gdGhlIHRhYmxlIHBoYXNlLgorTGluZTogMSBDb2w6IDcxIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgIGhyZWY9ImJsYWgiCit8ICAgICAgICJhYmEiCit8ICAgICA8YT4KK3wgICAgICAgaHJlZj0iYmxhaCIKK3wgICAgICAgIngiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxhPgorfCAgICAgICAgICAgICAgIGhyZWY9ImZvbyIKK3wgICAgICAgICAgICAgICAiYnIiCit8ICAgICA8YT4KK3wgICAgICAgaHJlZj0iYmxhaCIKK3wgICAgICAgImFvZSIKKworI2RhdGEKKzxhIGhyZWY9YT5hYTxtYXJxdWVlPmFhPGEgaHJlZj1iPmJiPC9tYXJxdWVlPmFhCisjZXJyb3JzCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDQ1IEVuZCB0YWcgKG1hcnF1ZWUpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQ3IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgIGhyZWY9ImEiCit8ICAgICAgICJhYSIKK3wgICAgICAgPG1hcnF1ZWU+Cit8ICAgICAgICAgImFhIgorfCAgICAgICAgIDxhPgorfCAgICAgICAgICAgaHJlZj0iYiIKK3wgICAgICAgICAgICJiYiIKK3wgICAgICAgImFhIgorCisjZGF0YQorPHdicj48c3RyaWtlPjxjb2RlPjwvc3RyaWtlPjxjb2RlPjxzdHJpa2U+PC9jb2RlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDUgVW5leHBlY3RlZCBzdGFydCB0YWcgKHdicikuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjggRW5kIHRhZyAoc3RyaWtlKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAzIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDQ5IFVuZXhwZWN0ZWQgZW5kIHRhZyAoY29kZSkuIElnbm9yZWQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8d2JyPgorfCAgICAgPHN0cmlrZT4KK3wgICAgICAgPGNvZGU+Cit8ICAgICA8Y29kZT4KK3wgICAgICAgPGNvZGU+Cit8ICAgICAgICAgPHN0cmlrZT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxzcGFjZXI+Zm9vCisjZXJyb3JzCisyNjogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzcGFjZXI+Cit8ICAgICAgICJmb28iCisKKyNkYXRhCis8dGl0bGU+PG1ldGE+PC90aXRsZT48bGluaz48dGl0bGU+PG1ldGE+PC90aXRsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0aXRsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICI8bWV0YT4iCit8ICAgICA8bGluaz4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIjxtZXRhPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzdHlsZT48IS0tPC9zdHlsZT48bWV0YT48c2NyaXB0Pi0tPjxsaW5rPjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHN0eWxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiA1MSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzdHlsZSkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICI8IS0tIgorfCAgICAgPG1ldGE+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiLS0+PGxpbms+IgorfCAgIDxib2R5PgorCisjZGF0YQorPGhlYWQ+PG1ldGE+PC9oZWFkPjxsaW5rPgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGhlYWQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChsaW5rKSB0aGF0IGNhbiBiZSBpbiBoZWFkLiBNb3ZlZC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxtZXRhPgorfCAgICAgPGxpbms+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGFibGU+PHRyPjx0cj48dGQ+PHRkPjxzcGFuPjx0aD48c3Bhbj5YPC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzMgR290IHRhYmxlIGNlbGwgZW5kIHRhZyAodGQpIHdoaWxlIHJlcXVpcmVkIGVuZCB0YWdzIGFyZSBtaXNzaW5nLgorTGluZTogMSBDb2w6IDQ4IEdvdCB0YWJsZSBjZWxsIGVuZCB0YWcgKHRoKSB3aGlsZSByZXF1aXJlZCBlbmQgdGFncyBhcmUgbWlzc2luZy4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgICAgPHRoPgorfCAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICAgICAgICAiWCIKKworI2RhdGEKKzxib2R5Pjxib2R5PjxiYXNlPjxsaW5rPjxtZXRhPjx0aXRsZT48cD48L3RpdGxlPjxib2R5PjxwPjwvYm9keT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChib2R5KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxMiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYm9keSkuCitMaW5lOiAxIENvbDogNTQgVW5leHBlY3RlZCBzdGFydCB0YWcgKGJvZHkpLgorTGluZTogMSBDb2w6IDY0IFVuZXhwZWN0ZWQgZW5kIHRhZyAocCkuIE1pc3NpbmcgZW5kIHRhZyAoYm9keSkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YmFzZT4KK3wgICAgIDxsaW5rPgorfCAgICAgPG1ldGE+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICI8cD4iCit8ICAgICA8cD4KKworI2RhdGEKKzx0ZXh0YXJlYT48cD48L3RleHRhcmVhPgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0ZXh0YXJlYSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGV4dGFyZWE+Cit8ICAgICAgICI8cD4iCisKKyNkYXRhCis8cD48aW1hZ2U+PC9wPgorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKHApLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChpbWFnZSkuIFRyZWF0ZWQgYXMgaW1nLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxpbWc+CisKKyNkYXRhCis8YT48dGFibGU+PGE+PC90YWJsZT48cD48YT48ZGl2PjxhPgorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkgaW1wbGllcyBlbmQgdGFnIChhKS4KK0xpbmU6IDEgQ29sOiAxMyBFbmQgdGFnIChhKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDIxIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGFibGUpLiBFeHBlY3RlZCBlbmQgdGFnIChhKS4KK0xpbmU6IDEgQ29sOiAyNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkgaW1wbGllcyBlbmQgdGFnIChhKS4KK0xpbmU6IDEgQ29sOiAyNyBFbmQgdGFnIChhKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAyIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDMyIFVuZXhwZWN0ZWQgZW5kIHRhZyAocCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzUgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpIGltcGxpZXMgZW5kIHRhZyAoYSkuCitMaW5lOiAxIENvbDogMzUgRW5kIHRhZyAoYSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMiBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiAzNSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgICA8YT4KK3wgICAgICAgPHRhYmxlPgorfCAgICAgPHA+Cit8ICAgICAgIDxhPgorfCAgICAgPGRpdj4KK3wgICAgICAgPGE+CisKKyNkYXRhCis8aGVhZD48L3A+PG1ldGE+PHA+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaGVhZCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBlbmQgdGFnIChwKS4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxtZXRhPgorfCAgIDxib2R5PgorfCAgICAgPHA+CisKKyNkYXRhCis8aGVhZD48L2h0bWw+PG1ldGE+PHA+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaGVhZCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTkgVW5leHBlY3RlZCBzdGFydCB0YWcgKG1ldGEpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1ldGE+Cit8ICAgICA8cD4KKworI2RhdGEKKzxiPjx0YWJsZT48dGQ+PGk+PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChiKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIHRhYmxlIGNlbGwgc3RhcnQgdGFnICh0ZCkgaW4gdGhlIHRhYmxlIGJvZHkgcGhhc2UuCitMaW5lOiAxIENvbDogMjUgR290IHRhYmxlIGNlbGwgZW5kIHRhZyAodGQpIHdoaWxlIHJlcXVpcmVkIGVuZCB0YWdzIGFyZSBtaXNzaW5nLgorTGluZTogMSBDb2w6IDI1IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDx0YWJsZT4KK3wgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICA8aT4KKworI2RhdGEKKzxiPjx0YWJsZT48dGQ+PC9iPjxpPjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYikuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTQgVW5leHBlY3RlZCB0YWJsZSBjZWxsIHN0YXJ0IHRhZyAodGQpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLgorTGluZTogMSBDb2w6IDE4IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDEgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMjkgR290IHRhYmxlIGNlbGwgZW5kIHRhZyAodGQpIHdoaWxlIHJlcXVpcmVkIGVuZCB0YWdzIGFyZSBtaXNzaW5nLgorTGluZTogMSBDb2w6IDI5IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDx0YWJsZT4KK3wgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICA8aT4KKworI2RhdGEKKzxoMT48aDI+CisjZXJyb3JzCis0OiBTdGFydCB0YWcgc2VlbiB3aXRob3V0IHNlZWluZyBhIGRvY3R5cGUgZmlyc3QuIEV4cGVjdGVkIOKAnDwhRE9DVFlQRSBodG1sPuKAnS4KKzg6IEhlYWRpbmcgY2Fubm90IGJlIGEgY2hpbGQgb2YgYW5vdGhlciBoZWFkaW5nLgorODogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGgxPgorfCAgICAgPGgyPgorCisjZGF0YQorPGE+PHA+PGE+PC9hPjwvcD48L2E+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogOSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkgaW1wbGllcyBlbmQgdGFnIChhKS4KK0xpbmU6IDEgQ29sOiA5IEVuZCB0YWcgKGEpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMjEgRW5kIHRhZyAoYSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgPHA+Cit8ICAgICAgIDxhPgorfCAgICAgICA8YT4KKworI2RhdGEKKzxiPjxidXR0b24+PC9iPjwvYnV0dG9uPjwvYj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChiKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNSBFbmQgdGFnIChiKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICA8YnV0dG9uPgorfCAgICAgICA8Yj4KKworI2RhdGEKKzxwPjxiPjxkaXY+PG1hcnF1ZWU+PC9wPjwvYj48L2Rpdj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChwKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxMSBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgZW5kIHRhZyAocCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjggRW5kIHRhZyAoYikgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiAzNCBFbmQgdGFnIChkaXYpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDM0IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxiPgorfCAgICAgPGRpdj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPG1hcnF1ZWU+Cit8ICAgICAgICAgICA8cD4KKworI2RhdGEKKzxzY3JpcHQ+PC9zY3JpcHQ+PC9kaXY+PHRpdGxlPjwvdGl0bGU+PHA+PHA+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGRpdikuIElnbm9yZWQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgPHRpdGxlPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICA8cD4KKworI2RhdGEKKzxwPjxocj48L3A+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAocCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTEgVW5leHBlY3RlZCBlbmQgdGFnIChwKS4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgPGhyPgorfCAgICAgPHA+CisKKyNkYXRhCis8c2VsZWN0PjxiPjxvcHRpb24+PHNlbGVjdD48b3B0aW9uPjwvYj48L3NlbGVjdD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzZWxlY3QpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDExIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChiKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI3IFVuZXhwZWN0ZWQgc2VsZWN0IHN0YXJ0IHRhZyBpbiB0aGUgc2VsZWN0IHBoYXNlIHRyZWF0ZWQgYXMgc2VsZWN0IGVuZCB0YWcuCitMaW5lOiAxIENvbDogMzkgRW5kIHRhZyAoYikgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA0OCBVbmV4cGVjdGVkIGVuZCB0YWcgKHNlbGVjdCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNDggRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgPG9wdGlvbj4KKworI2RhdGEKKzxodG1sPjxoZWFkPjx0aXRsZT48L3RpdGxlPjxib2R5PjwvYm9keT48L2h0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaHRtbCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGl0bGU+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8YT48dGFibGU+PHRkPjxhPjx0YWJsZT48L3RhYmxlPjxhPjwvdHI+PGE+PC90YWJsZT48YT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIHRhYmxlIGNlbGwgc3RhcnQgdGFnICh0ZCkgaW4gdGhlIHRhYmxlIGJvZHkgcGhhc2UuCitMaW5lOiAxIENvbDogMzUgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpIGltcGxpZXMgZW5kIHRhZyAoYSkuCitMaW5lOiAxIENvbDogNDAgR290IHRhYmxlIGNlbGwgZW5kIHRhZyAodGQpIHdoaWxlIHJlcXVpcmVkIGVuZCB0YWdzIGFyZSBtaXNzaW5nLgorTGluZTogMSBDb2w6IDQzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA0MyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYSkgaW1wbGllcyBlbmQgdGFnIChhKS4KK0xpbmU6IDEgQ29sOiA0MyBFbmQgdGFnIChhKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDUxIFVuZXhwZWN0ZWQgaW1wbGllZCBlbmQgdGFnIChhKSBpbiB0aGUgdGFibGUgcGhhc2UuCitMaW5lOiAxIENvbDogNTQgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpIGltcGxpZXMgZW5kIHRhZyAoYSkuCitMaW5lOiAxIENvbDogNTQgRW5kIHRhZyAoYSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMiBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA1NCBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgICA8YT4KK3wgICAgICAgPHRhYmxlPgorfCAgICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAgIDxhPgorfCAgICAgICAgICAgICAgICAgPHRhYmxlPgorfCAgICAgICAgICAgICAgIDxhPgorfCAgICAgPGE+CisKKyNkYXRhCis8dWw+PGxpPjwvbGk+PGRpdj48bGk+PC9kaXY+PGxpPjxsaT48ZGl2PjxsaT48YWRkcmVzcz48bGk+PGI+PGVtPjwvYj48bGk+PC91bD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh1bCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNDUgTWlzc2luZyBlbmQgdGFnIChkaXYsIGxpKS4KK0xpbmU6IDEgQ29sOiA1OCBNaXNzaW5nIGVuZCB0YWcgKGFkZHJlc3MsIGxpKS4KK0xpbmU6IDEgQ29sOiA2OSBFbmQgdGFnIChiKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAzIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHVsPgorfCAgICAgICA8bGk+Cit8ICAgICAgIDxkaXY+Cit8ICAgICAgICAgPGxpPgorfCAgICAgICA8bGk+Cit8ICAgICAgIDxsaT4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICA8bGk+Cit8ICAgICAgICAgPGFkZHJlc3M+Cit8ICAgICAgIDxsaT4KK3wgICAgICAgICA8Yj4KK3wgICAgICAgICAgIDxlbT4KK3wgICAgICAgPGxpPgorCisjZGF0YQorPHVsPjxsaT48dWw+PC9saT48bGk+YTwvbGk+PC91bD48L2xpPjwvdWw+CisjZXJyb3JzCitYWFg6IGZpeCBtZQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHVsPgorfCAgICAgICA8bGk+Cit8ICAgICAgICAgPHVsPgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICAiYSIKKworI2RhdGEKKzxmcmFtZXNldD48ZnJhbWU+PGZyYW1lc2V0PjxmcmFtZT48L2ZyYW1lc2V0Pjxub2ZyYW1lcz48L25vZnJhbWVzPjwvZnJhbWVzZXQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBzdGFydCB0YWcgKGZyYW1lc2V0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgICA8ZnJhbWU+Cit8ICAgICA8ZnJhbWVzZXQ+Cit8ICAgICAgIDxmcmFtZT4KK3wgICAgIDxub2ZyYW1lcz4KKworI2RhdGEKKzxoMT48dGFibGU+PHRkPjxoMz48L3RhYmxlPjxoMz48L2gxPgorI2Vycm9ycworNDogU3RhcnQgdGFnIHNlZW4gd2l0aG91dCBzZWVpbmcgYSBkb2N0eXBlIGZpcnN0LiBFeHBlY3RlZCDigJw8IURPQ1RZUEUgaHRtbD7igJ0uCisxNTog4oCcdGTigJ0gc3RhcnQgdGFnIGluIHRhYmxlIGJvZHkuCisyNzogVW5jbG9zZWQgZWxlbWVudHMuCiszMTogSGVhZGluZyBjYW5ub3QgYmUgYSBjaGlsZCBvZiBhbm90aGVyIGhlYWRpbmcuCiszNjogRW5kIHRhZyDigJxoMeKAnSBzZWVuIGJ1dCB0aGVyZSB3ZXJlIHVuY2xvc2VkIGVsZW1lbnRzLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGgxPgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgPHRib2R5PgorfCAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICAgPGgzPgorfCAgICAgPGgzPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48Y29sPjxjb2xncm91cD48Y29sPjxjb2w+PGNvbD48Y29sZ3JvdXA+PGNvbD48Y29sPjx0aGVhZD48dHI+PHRkPjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgICA8Y29sPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgICA8Y29sPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjb2w+PHRib2R5Pjxjb2w+PHRyPjxjb2w+PHRkPjxjb2w+PC90YWJsZT48Y29sPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzNyBVbmV4cGVjdGVkIHRhYmxlIGNlbGwgc3RhcnQgdGFnICh0ZCkgaW4gdGhlIHRhYmxlIGJvZHkgcGhhc2UuCitMaW5lOiAxIENvbDogNTUgVW5leHBlY3RlZCBzdGFydCB0YWcgY29sLiBJZ25vcmVkLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgPGNvbD4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgIDxjb2w+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAgICAgICA8Y29sPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48dGJvZHk+PGNvbGdyb3VwPjx0cj48Y29sZ3JvdXA+PHRkPjxjb2xncm91cD48L3RhYmxlPjxjb2xncm91cD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNTIgVW5leHBlY3RlZCB0YWJsZSBjZWxsIHN0YXJ0IHRhZyAodGQpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLgorTGluZTogMSBDb2w6IDgwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIGNvbGdyb3VwLiBJZ25vcmVkLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgIDxjb2xncm91cD4KKworI2RhdGEKKzwvc3Ryb25nPjwvYj48L2VtPjwvaT48L3U+PC9zdHJpa2U+PC9zPjwvYmxpbms+PC90dD48L3ByZT48L2JpZz48L3NtYWxsPjwvZm9udD48L3NlbGVjdD48L2gxPjwvaDI+PC9oMz48L2g0PjwvaDU+PC9oNj48L2JvZHk+PC9icj48L2E+PC9pbWc+PC90aXRsZT48L3NwYW4+PC9zdHlsZT48L3NjcmlwdD48L3RhYmxlPjwvdGg+PC90ZD48L3RyPjwvZnJhbWU+PC9hcmVhPjwvbGluaz48L3BhcmFtPjwvaHI+PC9pbnB1dD48L2NvbD48L2Jhc2U+PC9tZXRhPjwvYmFzZWZvbnQ+PC9iZ3NvdW5kPjwvZW1iZWQ+PC9zcGFjZXI+PC9wPjwvZGQ+PC9kdD48L2NhcHRpb24+PC9jb2xncm91cD48L3Rib2R5PjwvdGZvb3Q+PC90aGVhZD48L2FkZHJlc3M+PC9ibG9ja3F1b3RlPjwvY2VudGVyPjwvZGlyPjwvZGl2PjwvZGw+PC9maWVsZHNldD48L2xpc3Rpbmc+PC9tZW51Pjwvb2w+PC91bD48L2xpPjwvbm9icj48L3dicj48L2Zvcm0+PC9idXR0b24+PC9tYXJxdWVlPjwvb2JqZWN0PjwvaHRtbD48L2ZyYW1lc2V0PjwvaGVhZD48L2lmcmFtZT48L2ltYWdlPjwvaXNpbmRleD48L25vZW1iZWQ+PC9ub2ZyYW1lcz48L25vc2NyaXB0Pjwvb3B0Z3JvdXA+PC9vcHRpb24+PC9wbGFpbnRleHQ+PC90ZXh0YXJlYT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA5IFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3Ryb25nKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiA5IFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3Ryb25nKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiAxMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGIpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDE4IFVuZXhwZWN0ZWQgZW5kIHRhZyAoZW0pIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDIyIFVuZXhwZWN0ZWQgZW5kIHRhZyAoaSkgYWZ0ZXIgdGhlIChpbXBsaWVkKSByb290IGVsZW1lbnQuCitMaW5lOiAxIENvbDogMjYgVW5leHBlY3RlZCBlbmQgdGFnICh1KSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiAzNSBVbmV4cGVjdGVkIGVuZCB0YWcgKHN0cmlrZSkgYWZ0ZXIgdGhlIChpbXBsaWVkKSByb290IGVsZW1lbnQuCitMaW5lOiAxIENvbDogMzkgVW5leHBlY3RlZCBlbmQgdGFnIChzKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiA0NyBVbmV4cGVjdGVkIGVuZCB0YWcgKGJsaW5rKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiA1MiBVbmV4cGVjdGVkIGVuZCB0YWcgKHR0KSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiA1OCBVbmV4cGVjdGVkIGVuZCB0YWcgKHByZSkgYWZ0ZXIgdGhlIChpbXBsaWVkKSByb290IGVsZW1lbnQuCitMaW5lOiAxIENvbDogNjQgVW5leHBlY3RlZCBlbmQgdGFnIChiaWcpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDcyIFVuZXhwZWN0ZWQgZW5kIHRhZyAoc21hbGwpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDc5IFVuZXhwZWN0ZWQgZW5kIHRhZyAoZm9udCkgYWZ0ZXIgdGhlIChpbXBsaWVkKSByb290IGVsZW1lbnQuCitMaW5lOiAxIENvbDogODggVW5leHBlY3RlZCBlbmQgdGFnIChzZWxlY3QpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDkzIFVuZXhwZWN0ZWQgZW5kIHRhZyAoaDEpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDk4IFVuZXhwZWN0ZWQgZW5kIHRhZyAoaDIpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDEwMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGgzKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiAxMDggVW5leHBlY3RlZCBlbmQgdGFnIChoNCkgYWZ0ZXIgdGhlIChpbXBsaWVkKSByb290IGVsZW1lbnQuCitMaW5lOiAxIENvbDogMTEzIFVuZXhwZWN0ZWQgZW5kIHRhZyAoaDUpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorTGluZTogMSBDb2w6IDExOCBVbmV4cGVjdGVkIGVuZCB0YWcgKGg2KSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiAxMjUgVW5leHBlY3RlZCBlbmQgdGFnIChib2R5KSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiAxMzAgVW5leHBlY3RlZCBlbmQgdGFnIChicikuIFRyZWF0ZWQgYXMgYnIgZWxlbWVudC4KK0xpbmU6IDEgQ29sOiAxMzQgRW5kIHRhZyAoYSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiAxNDAgVGhpcyBlbGVtZW50IChpbWcpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDE0OCBVbmV4cGVjdGVkIGVuZCB0YWcgKHRpdGxlKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxNTUgVW5leHBlY3RlZCBlbmQgdGFnIChzcGFuKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxNjMgVW5leHBlY3RlZCBlbmQgdGFnIChzdHlsZSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTcyIFVuZXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxODAgVW5leHBlY3RlZCBlbmQgdGFnICh0YWJsZSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTg1IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGgpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDE5MCBVbmV4cGVjdGVkIGVuZCB0YWcgKHRkKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxOTUgVW5leHBlY3RlZCBlbmQgdGFnICh0cikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjAzIFRoaXMgZWxlbWVudCAoZnJhbWUpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDIxMCBUaGlzIGVsZW1lbnQgKGFyZWEpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDIxNyBVbmV4cGVjdGVkIGVuZCB0YWcgKGxpbmspLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDIyNSBUaGlzIGVsZW1lbnQgKHBhcmFtKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAyMzAgVGhpcyBlbGVtZW50IChocikgaGFzIG5vIGVuZCB0YWcuCitMaW5lOiAxIENvbDogMjM4IFRoaXMgZWxlbWVudCAoaW5wdXQpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDI0NCBVbmV4cGVjdGVkIGVuZCB0YWcgKGNvbCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjUxIFVuZXhwZWN0ZWQgZW5kIHRhZyAoYmFzZSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjU4IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWV0YSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjY5IFRoaXMgZWxlbWVudCAoYmFzZWZvbnQpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDI3OSBUaGlzIGVsZW1lbnQgKGJnc291bmQpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDI4NyBUaGlzIGVsZW1lbnQgKGVtYmVkKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAyOTYgVGhpcyBlbGVtZW50IChzcGFjZXIpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDMwMCBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDMwNSBFbmQgdGFnIChkZCkgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogMzEwIEVuZCB0YWcgKGR0KSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAzMjAgVW5leHBlY3RlZCBlbmQgdGFnIChjYXB0aW9uKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAzMzEgVW5leHBlY3RlZCBlbmQgdGFnIChjb2xncm91cCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzM5IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGJvZHkpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDM0NyBVbmV4cGVjdGVkIGVuZCB0YWcgKHRmb290KS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAzNTUgVW5leHBlY3RlZCBlbmQgdGFnICh0aGVhZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzY1IEVuZCB0YWcgKGFkZHJlc3MpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDM3OCBFbmQgdGFnIChibG9ja3F1b3RlKSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAzODcgRW5kIHRhZyAoY2VudGVyKSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAzOTMgVW5leHBlY3RlZCBlbmQgdGFnIChkaXIpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDM5OSBFbmQgdGFnIChkaXYpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQwNCBFbmQgdGFnIChkbCkgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDE1IEVuZCB0YWcgKGZpZWxkc2V0KSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA0MjUgRW5kIHRhZyAobGlzdGluZykgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDMyIEVuZCB0YWcgKG1lbnUpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQzNyBFbmQgdGFnIChvbCkgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDQyIEVuZCB0YWcgKHVsKSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA0NDcgRW5kIHRhZyAobGkpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQ1NCBFbmQgdGFnIChub2JyKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDQ2MCBUaGlzIGVsZW1lbnQgKHdicikgaGFzIG5vIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDc2IEVuZCB0YWcgKGJ1dHRvbikgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDg2IEVuZCB0YWcgKG1hcnF1ZWUpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQ5NSBFbmQgdGFnIChvYmplY3QpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDUxMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGh0bWwpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDUxMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGZyYW1lc2V0KS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1MjAgVW5leHBlY3RlZCBlbmQgdGFnIChoZWFkKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1MjkgVW5leHBlY3RlZCBlbmQgdGFnIChpZnJhbWUpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDUzNyBUaGlzIGVsZW1lbnQgKGltYWdlKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA1NDcgVGhpcyBlbGVtZW50IChpc2luZGV4KSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA1NTcgVW5leHBlY3RlZCBlbmQgdGFnIChub2VtYmVkKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1NjggVW5leHBlY3RlZCBlbmQgdGFnIChub2ZyYW1lcykuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTc5IFVuZXhwZWN0ZWQgZW5kIHRhZyAobm9zY3JpcHQpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDU5MCBVbmV4cGVjdGVkIGVuZCB0YWcgKG9wdGdyb3VwKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1OTkgVW5leHBlY3RlZCBlbmQgdGFnIChvcHRpb24pLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDYxMSBVbmV4cGVjdGVkIGVuZCB0YWcgKHBsYWludGV4dCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNjIyIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGV4dGFyZWEpLiBJZ25vcmVkLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGJyPgorfCAgICAgPHA+CisKKyNkYXRhCis8dGFibGU+PHRyPjwvc3Ryb25nPjwvYj48L2VtPjwvaT48L3U+PC9zdHJpa2U+PC9zPjwvYmxpbms+PC90dD48L3ByZT48L2JpZz48L3NtYWxsPjwvZm9udD48L3NlbGVjdD48L2gxPjwvaDI+PC9oMz48L2g0PjwvaDU+PC9oNj48L2JvZHk+PC9icj48L2E+PC9pbWc+PC90aXRsZT48L3NwYW4+PC9zdHlsZT48L3NjcmlwdD48L3RhYmxlPjwvdGg+PC90ZD48L3RyPjwvZnJhbWU+PC9hcmVhPjwvbGluaz48L3BhcmFtPjwvaHI+PC9pbnB1dD48L2NvbD48L2Jhc2U+PC9tZXRhPjwvYmFzZWZvbnQ+PC9iZ3NvdW5kPjwvZW1iZWQ+PC9zcGFjZXI+PC9wPjwvZGQ+PC9kdD48L2NhcHRpb24+PC9jb2xncm91cD48L3Rib2R5PjwvdGZvb3Q+PC90aGVhZD48L2FkZHJlc3M+PC9ibG9ja3F1b3RlPjwvY2VudGVyPjwvZGlyPjwvZGl2PjwvZGw+PC9maWVsZHNldD48L2xpc3Rpbmc+PC9tZW51Pjwvb2w+PC91bD48L2xpPjwvbm9icj48L3dicj48L2Zvcm0+PC9idXR0b24+PC9tYXJxdWVlPjwvb2JqZWN0PjwvaHRtbD48L2ZyYW1lc2V0PjwvaGVhZD48L2lmcmFtZT48L2ltYWdlPjwvaXNpbmRleD48L25vZW1iZWQ+PC9ub2ZyYW1lcz48L25vc2NyaXB0Pjwvb3B0Z3JvdXA+PC9vcHRpb24+PC9wbGFpbnRleHQ+PC90ZXh0YXJlYT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCBlbmQgdGFnIChzdHJvbmcpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDIwIEVuZCB0YWcgKHN0cm9uZykgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiAyNCBVbmV4cGVjdGVkIGVuZCB0YWcgKGIpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDI0IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDEgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMjkgVW5leHBlY3RlZCBlbmQgdGFnIChlbSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMjkgRW5kIHRhZyAoZW0pIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDEgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMzMgVW5leHBlY3RlZCBlbmQgdGFnIChpKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAzMyBFbmQgdGFnIChpKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDM3IFVuZXhwZWN0ZWQgZW5kIHRhZyAodSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMzcgRW5kIHRhZyAodSkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA0NiBVbmV4cGVjdGVkIGVuZCB0YWcgKHN0cmlrZSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNDYgRW5kIHRhZyAoc3RyaWtlKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDUwIFVuZXhwZWN0ZWQgZW5kIHRhZyAocykgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNTAgRW5kIHRhZyAocykgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA1OCBVbmV4cGVjdGVkIGVuZCB0YWcgKGJsaW5rKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA1OCBVbmV4cGVjdGVkIGVuZCB0YWcgKGJsaW5rKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA2MyBVbmV4cGVjdGVkIGVuZCB0YWcgKHR0KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA2MyBFbmQgdGFnICh0dCkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA2OSBVbmV4cGVjdGVkIGVuZCB0YWcgKHByZSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNjkgRW5kIHRhZyAocHJlKSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA3NSBVbmV4cGVjdGVkIGVuZCB0YWcgKGJpZykgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNzUgRW5kIHRhZyAoYmlnKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDgzIFVuZXhwZWN0ZWQgZW5kIHRhZyAoc21hbGwpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDgzIEVuZCB0YWcgKHNtYWxsKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDkwIFVuZXhwZWN0ZWQgZW5kIHRhZyAoZm9udCkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogOTAgRW5kIHRhZyAoZm9udCkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA5OSBVbmV4cGVjdGVkIGVuZCB0YWcgKHNlbGVjdCkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogOTkgVW5leHBlY3RlZCBlbmQgdGFnIChzZWxlY3QpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDEwNCBVbmV4cGVjdGVkIGVuZCB0YWcgKGgxKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxMDQgRW5kIHRhZyAoaDEpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDEwOSBVbmV4cGVjdGVkIGVuZCB0YWcgKGgyKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxMDkgRW5kIHRhZyAoaDIpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDExNCBVbmV4cGVjdGVkIGVuZCB0YWcgKGgzKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxMTQgRW5kIHRhZyAoaDMpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDExOSBVbmV4cGVjdGVkIGVuZCB0YWcgKGg0KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxMTkgRW5kIHRhZyAoaDQpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDEyNCBVbmV4cGVjdGVkIGVuZCB0YWcgKGg1KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxMjQgRW5kIHRhZyAoaDUpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDEyOSBVbmV4cGVjdGVkIGVuZCB0YWcgKGg2KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxMjkgRW5kIHRhZyAoaDYpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDEzNiBVbmV4cGVjdGVkIGVuZCB0YWcgKGJvZHkpIGluIHRoZSB0YWJsZSByb3cgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTQxIFVuZXhwZWN0ZWQgZW5kIHRhZyAoYnIpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDE0MSBVbmV4cGVjdGVkIGVuZCB0YWcgKGJyKS4gVHJlYXRlZCBhcyBiciBlbGVtZW50LgorTGluZTogMSBDb2w6IDE0NSBVbmV4cGVjdGVkIGVuZCB0YWcgKGEpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDE0NSBFbmQgdGFnIChhKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAxIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDE1MSBVbmV4cGVjdGVkIGVuZCB0YWcgKGltZykgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMTUxIFRoaXMgZWxlbWVudCAoaW1nKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAxNTkgVW5leHBlY3RlZCBlbmQgdGFnICh0aXRsZSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMTU5IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGl0bGUpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDE2NiBVbmV4cGVjdGVkIGVuZCB0YWcgKHNwYW4pIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDE2NiBVbmV4cGVjdGVkIGVuZCB0YWcgKHNwYW4pLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDE3NCBVbmV4cGVjdGVkIGVuZCB0YWcgKHN0eWxlKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxNzQgVW5leHBlY3RlZCBlbmQgdGFnIChzdHlsZSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTgzIFVuZXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxODMgVW5leHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDE5NiBVbmV4cGVjdGVkIGVuZCB0YWcgKHRoKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAyMDEgVW5leHBlY3RlZCBlbmQgdGFnICh0ZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjA2IFVuZXhwZWN0ZWQgZW5kIHRhZyAodHIpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDIxNCBUaGlzIGVsZW1lbnQgKGZyYW1lKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAyMjEgVGhpcyBlbGVtZW50IChhcmVhKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAyMjggVW5leHBlY3RlZCBlbmQgdGFnIChsaW5rKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAyMzYgVGhpcyBlbGVtZW50IChwYXJhbSkgaGFzIG5vIGVuZCB0YWcuCitMaW5lOiAxIENvbDogMjQxIFRoaXMgZWxlbWVudCAoaHIpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDI0OSBUaGlzIGVsZW1lbnQgKGlucHV0KSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAyNTUgVW5leHBlY3RlZCBlbmQgdGFnIChjb2wpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI2MiBVbmV4cGVjdGVkIGVuZCB0YWcgKGJhc2UpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI2OSBVbmV4cGVjdGVkIGVuZCB0YWcgKG1ldGEpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI4MCBUaGlzIGVsZW1lbnQgKGJhc2Vmb250KSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAyOTAgVGhpcyBlbGVtZW50IChiZ3NvdW5kKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAyOTggVGhpcyBlbGVtZW50IChlbWJlZCkgaGFzIG5vIGVuZCB0YWcuCitMaW5lOiAxIENvbDogMzA3IFRoaXMgZWxlbWVudCAoc3BhY2VyKSBoYXMgbm8gZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAzMTEgVW5leHBlY3RlZCBlbmQgdGFnIChwKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAzMTYgRW5kIHRhZyAoZGQpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDMyMSBFbmQgdGFnIChkdCkgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogMzMxIFVuZXhwZWN0ZWQgZW5kIHRhZyAoY2FwdGlvbikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzQyIFVuZXhwZWN0ZWQgZW5kIHRhZyAoY29sZ3JvdXApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDM1MCBVbmV4cGVjdGVkIGVuZCB0YWcgKHRib2R5KS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAzNTggVW5leHBlY3RlZCBlbmQgdGFnICh0Zm9vdCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzY2IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGhlYWQpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDM3NiBFbmQgdGFnIChhZGRyZXNzKSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiAzODkgRW5kIHRhZyAoYmxvY2txdW90ZSkgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogMzk4IEVuZCB0YWcgKGNlbnRlcikgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDA0IFVuZXhwZWN0ZWQgZW5kIHRhZyAoZGlyKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA0MTAgRW5kIHRhZyAoZGl2KSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA0MTUgRW5kIHRhZyAoZGwpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQyNiBFbmQgdGFnIChmaWVsZHNldCkgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDM2IEVuZCB0YWcgKGxpc3RpbmcpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQ0MyBFbmQgdGFnIChtZW51KSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA0NDggRW5kIHRhZyAob2wpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQ1MyBFbmQgdGFnICh1bCkgc2VlbiB0b28gZWFybHkuIEV4cGVjdGVkIG90aGVyIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNDU4IEVuZCB0YWcgKGxpKSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA0NjUgRW5kIHRhZyAobm9icikgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMSBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KK0xpbmU6IDEgQ29sOiA0NzEgVGhpcyBlbGVtZW50ICh3YnIpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQ4NyBFbmQgdGFnIChidXR0b24pIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDQ5NyBFbmQgdGFnIChtYXJxdWVlKSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA1MDYgRW5kIHRhZyAob2JqZWN0KSBzZWVuIHRvbyBlYXJseS4gRXhwZWN0ZWQgb3RoZXIgZW5kIHRhZy4KK0xpbmU6IDEgQ29sOiA1MjQgVW5leHBlY3RlZCBlbmQgdGFnIChodG1sKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1MjQgVW5leHBlY3RlZCBlbmQgdGFnIChmcmFtZXNldCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTMxIFVuZXhwZWN0ZWQgZW5kIHRhZyAoaGVhZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTQwIFVuZXhwZWN0ZWQgZW5kIHRhZyAoaWZyYW1lKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1NDggVGhpcyBlbGVtZW50IChpbWFnZSkgaGFzIG5vIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNTU4IFRoaXMgZWxlbWVudCAoaXNpbmRleCkgaGFzIG5vIGVuZCB0YWcuCitMaW5lOiAxIENvbDogNTY4IFVuZXhwZWN0ZWQgZW5kIHRhZyAobm9lbWJlZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTc5IFVuZXhwZWN0ZWQgZW5kIHRhZyAobm9mcmFtZXMpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDU5MCBVbmV4cGVjdGVkIGVuZCB0YWcgKG5vc2NyaXB0KS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA2MDEgVW5leHBlY3RlZCBlbmQgdGFnIChvcHRncm91cCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNjEwIFVuZXhwZWN0ZWQgZW5kIHRhZyAob3B0aW9uKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA2MjIgVW5leHBlY3RlZCBlbmQgdGFnIChwbGFpbnRleHQpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDYzMyBVbmV4cGVjdGVkIGVuZCB0YWcgKHRleHRhcmVhKS4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxicj4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgIDxwPgorCisjZGF0YQorPGZyYW1lc2V0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChmcmFtZXNldCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTAgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMTAuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMTAuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmOGRmODYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxMC5kYXQKQEAgLTAsMCArMSw3OTkgQEAKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48c3ZnPjwvc3ZnPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHN2Zz48L3N2Zz48IVtDREFUQVthXV0+CisjZXJyb3JzCisyOTogQm9ndXMgY29tbWVudAorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgPCEtLSBbQ0RBVEFbYV1dIC0tPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHN2Zz48L3N2Zz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxzZWxlY3Q+PHN2Zz48L3N2Zz48L3NlbGVjdD4KKyNlcnJvcnMKKzM1OiBTdHJheSDigJxzdmfigJ0gc3RhcnQgdGFnLgorNDI6IFN0cmF5IGVuZCB0YWcg4oCcc3Zn4oCdCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxzZWxlY3Q+PG9wdGlvbj48c3ZnPjwvc3ZnPjwvb3B0aW9uPjwvc2VsZWN0PgorI2Vycm9ycworNDM6IFN0cmF5IOKAnHN2Z+KAnSBzdGFydCB0YWcuCis1MDogU3RyYXkgZW5kIHRhZyDigJxzdmfigJ0KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjxzdmc+PC9zdmc+PC90YWJsZT4KKyNlcnJvcnMKKzM0OiBTdGFydCB0YWcg4oCcc3Zn4oCdIHNlZW4gaW4g4oCcdGFibGXigJ0uCis0MTogU3RyYXkgZW5kIHRhZyDigJxzdmfigJ0uCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PHN2Zz48Zz5mb288L2c+PC9zdmc+PC90YWJsZT4KKyNlcnJvcnMKKzM0OiBTdGFydCB0YWcg4oCcc3Zn4oCdIHNlZW4gaW4g4oCcdGFibGXigJ0uCis0NjogU3RyYXkgZW5kIHRhZyDigJxn4oCdLgorNTM6IFN0cmF5IGVuZCB0YWcg4oCcc3Zn4oCdLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgImZvbyIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+PC9zdmc+PC90YWJsZT4KKyNlcnJvcnMKKzM0OiBTdGFydCB0YWcg4oCcc3Zn4oCdIHNlZW4gaW4g4oCcdGFibGXigJ0uCis0NjogU3RyYXkgZW5kIHRhZyDigJxn4oCdLgorNTg6IFN0cmF5IGVuZCB0YWcg4oCcZ+KAnS4KKzY1OiBTdHJheSBlbmQgdGFnIOKAnHN2Z+KAnS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICJmb28iCit8ICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAiYmFyIgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjx0Ym9keT48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+PC9zdmc+PC90Ym9keT48L3RhYmxlPgorI2Vycm9ycworNDE6IFN0YXJ0IHRhZyDigJxzdmfigJ0gc2VlbiBpbiDigJx0YWJsZeKAnS4KKzUzOiBTdHJheSBlbmQgdGFnIOKAnGfigJ0uCis2NTogU3RyYXkgZW5kIHRhZyDigJxn4oCdLgorNzI6IFN0cmF5IGVuZCB0YWcg4oCcc3Zn4oCdLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgImZvbyIKK3wgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICJiYXIiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48dGJvZHk+PHRyPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz48L3N2Zz48L3RyPjwvdGJvZHk+PC90YWJsZT4KKyNlcnJvcnMKKzQ1OiBTdGFydCB0YWcg4oCcc3Zn4oCdIHNlZW4gaW4g4oCcdGFibGXigJ0uCis1NzogU3RyYXkgZW5kIHRhZyDigJxn4oCdLgorNjk6IFN0cmF5IGVuZCB0YWcg4oCcZ+KAnS4KKzc2OiBTdHJheSBlbmQgdGFnIOKAnHN2Z+KAnS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICJmb28iCit8ICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAiYmFyIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjx0Ym9keT48dHI+PHRkPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz48L3N2Zz48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICAgICAiYmFyIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjx0Ym9keT48dHI+PHRkPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz48L3N2Zz48cD5iYXo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICAgICAiYmFyIgorfCAgICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICAgICAiYmF6IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz48L3N2Zz48cD5iYXo8L2NhcHRpb24+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjYXB0aW9uPgorfCAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAiZm9vIgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAiYmFyIgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgImJheiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+PHA+YmF6PC90YWJsZT48cD5xdXV4CisjZXJyb3JzCis3MDogSFRNTCBzdGFydCB0YWcg4oCccOKAnSBpbiBhIGZvcmVpZ24gbmFtZXNwYWNlIGNvbnRleHQuCis4MTog4oCcdGFibGXigJ0gY2xvc2VkIGJ1dCDigJxjYXB0aW9u4oCdIHdhcyBzdGlsbCBvcGVuLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgPHA+Cit8ICAgICAgICAgICAiYmF6IgorfCAgICAgPHA+Cit8ICAgICAgICJxdXV4IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz5iYXo8L3RhYmxlPjxwPnF1dXgKKyNlcnJvcnMKKzc4OiDigJx0YWJsZeKAnSBjbG9zZWQgYnV0IOKAnGNhcHRpb27igJ0gd2FzIHN0aWxsIG9wZW4uCis3ODogVW5jbG9zZWQgZWxlbWVudHMgb24gc3RhY2suCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1dXgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PGNvbGdyb3VwPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz48cD5iYXo8L3RhYmxlPjxwPnF1dXgKKyNlcnJvcnMKKzQ0OiBTdGFydCB0YWcg4oCcc3Zn4oCdIHNlZW4gaW4g4oCcdGFibGXigJ0uCis1NjogU3RyYXkgZW5kIHRhZyDigJxn4oCdLgorNjg6IFN0cmF5IGVuZCB0YWcg4oCcZ+KAnS4KKzcxOiBIVE1MIHN0YXJ0IHRhZyDigJxw4oCdIGluIGEgZm9yZWlnbiBuYW1lc3BhY2UgY29udGV4dC4KKzcxOiBTdGFydCB0YWcg4oCccOKAnSBzZWVuIGluIOKAnHRhYmxl4oCdLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgImZvbyIKK3wgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICJiYXIiCit8ICAgICA8cD4KK3wgICAgICAgImJheiIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNvbGdyb3VwPgorfCAgICAgPHA+Cit8ICAgICAgICJxdXV4IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjx0cj48dGQ+PHNlbGVjdD48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+PHA+YmF6PC90YWJsZT48cD5xdXV4CisjZXJyb3JzCis1MDogU3RyYXkg4oCcc3Zn4oCdIHN0YXJ0IHRhZy4KKzU0OiBTdHJheSDigJxn4oCdIHN0YXJ0IHRhZy4KKzYyOiBTdHJheSBlbmQgdGFnIOKAnGfigJ0KKzY2OiBTdHJheSDigJxn4oCdIHN0YXJ0IHRhZy4KKzc0OiBTdHJheSBlbmQgdGFnIOKAnGfigJ0KKzc3OiBTdHJheSDigJxw4oCdIHN0YXJ0IHRhZy4KKzg4OiDigJx0YWJsZeKAnSBlbmQgdGFnIHdpdGgg4oCcc2VsZWN04oCdIG9wZW4uCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8c2VsZWN0PgorfCAgICAgICAgICAgICAgICJmb29iYXJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1dXgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PHNlbGVjdD48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+PHA+YmF6PC90YWJsZT48cD5xdXV4CisjZXJyb3JzCiszNjogU3RhcnQgdGFnIOKAnHNlbGVjdOKAnSBzZWVuIGluIOKAnHRhYmxl4oCdLgorNDI6IFN0cmF5IOKAnHN2Z+KAnSBzdGFydCB0YWcuCis0NjogU3RyYXkg4oCcZ+KAnSBzdGFydCB0YWcuCis1NDogU3RyYXkgZW5kIHRhZyDigJxn4oCdCis1ODogU3RyYXkg4oCcZ+KAnSBzdGFydCB0YWcuCis2NjogU3RyYXkgZW5kIHRhZyDigJxn4oCdCis2OTogU3RyYXkg4oCccOKAnSBzdGFydCB0YWcuCis4MDog4oCcdGFibGXigJ0gZW5kIHRhZyB3aXRoIOKAnHNlbGVjdOKAnSBvcGVuLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgICJmb29iYXJiYXoiCit8ICAgICA8dGFibGU+Cit8ICAgICA8cD4KK3wgICAgICAgInF1dXgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48L2JvZHk+PC9odG1sPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz48cD5iYXoKKyNlcnJvcnMKKzQxOiBTdHJheSDigJxzdmfigJ0gc3RhcnQgdGFnLgorNjg6IEhUTUwgc3RhcnQgdGFnIOKAnHDigJ0gaW4gYSBmb3JlaWduIG5hbWVzcGFjZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgImZvbyIKK3wgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICJiYXIiCit8ICAgICA8cD4KK3wgICAgICAgImJheiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjwvYm9keT48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+PHA+YmF6CisjZXJyb3JzCiszNDogU3RyYXkg4oCcc3Zn4oCdIHN0YXJ0IHRhZy4KKzYxOiBIVE1MIHN0YXJ0IHRhZyDigJxw4oCdIGluIGEgZm9yZWlnbiBuYW1lc3BhY2UgY29udGV4dC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICJmb28iCit8ICAgICAgIDxzdmcgZz4KK3wgICAgICAgICAiYmFyIgorfCAgICAgPHA+Cit8ICAgICAgICJiYXoiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48ZnJhbWVzZXQ+PHN2Zz48Zz48L2c+PGc+PC9nPjxwPjxzcGFuPgorI2Vycm9ycworMzE6IFN0cmF5IOKAnHN2Z+KAnSBzdGFydCB0YWcuCiszNTogU3RyYXkg4oCcZ+KAnSBzdGFydCB0YWcuCis0MDogU3RyYXkgZW5kIHRhZyDigJxn4oCdCis0NDogU3RyYXkg4oCcZ+KAnSBzdGFydCB0YWcuCis0OTogU3RyYXkgZW5kIHRhZyDigJxn4oCdCis1MjogU3RyYXkg4oCccOKAnSBzdGFydCB0YWcuCis1ODogU3RyYXkg4oCcc3BhbuKAnSBzdGFydCB0YWcuCis1ODogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48ZnJhbWVzZXQ+PC9mcmFtZXNldD48c3ZnPjxnPjwvZz48Zz48L2c+PHA+PHNwYW4+CisjZXJyb3JzCis0MjogU3RyYXkg4oCcc3Zn4oCdIHN0YXJ0IHRhZy4KKzQ2OiBTdHJheSDigJxn4oCdIHN0YXJ0IHRhZy4KKzUxOiBTdHJheSBlbmQgdGFnIOKAnGfigJ0KKzU1OiBTdHJheSDigJxn4oCdIHN0YXJ0IHRhZy4KKzYwOiBTdHJheSBlbmQgdGFnIOKAnGfigJ0KKzYzOiBTdHJheSDigJxw4oCdIHN0YXJ0IHRhZy4KKzY5OiBTdHJheSDigJxzcGFu4oCdIHN0YXJ0IHRhZy4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHkgeGxpbms6aHJlZj1mb28+PHN2ZyB4bGluazpocmVmPWZvbz48L3N2Zz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICB4bGluazpocmVmPSJmb28iCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgeGxpbmsgaHJlZj0iZm9vIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHkgeGxpbms6aHJlZj1mb28geG1sOmxhbmc9ZW4+PHN2Zz48ZyB4bWw6bGFuZz1lbiB4bGluazpocmVmPWZvbz48L2c+PC9zdmc+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgeGxpbms6aHJlZj0iZm9vIgorfCAgICAgeG1sOmxhbmc9ImVuIgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgZz4KK3wgICAgICAgICB4bGluayBocmVmPSJmb28iCit8ICAgICAgICAgeG1sIGxhbmc9ImVuIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHkgeGxpbms6aHJlZj1mb28geG1sOmxhbmc9ZW4+PHN2Zz48ZyB4bWw6bGFuZz1lbiB4bGluazpocmVmPWZvbyAvPjwvc3ZnPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIHhsaW5rOmhyZWY9ImZvbyIKK3wgICAgIHhtbDpsYW5nPSJlbiIKK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGc+Cit8ICAgICAgICAgeGxpbmsgaHJlZj0iZm9vIgorfCAgICAgICAgIHhtbCBsYW5nPSJlbiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5IHhsaW5rOmhyZWY9Zm9vIHhtbDpsYW5nPWVuPjxzdmc+PGcgeG1sOmxhbmc9ZW4geGxpbms6aHJlZj1mb28gLz5iYXI8L3N2Zz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICB4bGluazpocmVmPSJmb28iCit8ICAgICB4bWw6bGFuZz0iZW4iCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyBnPgorfCAgICAgICAgIHhsaW5rIGhyZWY9ImZvbyIKK3wgICAgICAgICB4bWwgbGFuZz0iZW4iCit8ICAgICAgICJiYXIiCisKKyNkYXRhCis8c3ZnPjwvcGF0aD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorCisjZGF0YQorPGRpdj48c3ZnPjwvZGl2PmEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDxzdmcgc3ZnPgorfCAgICAgImEiCisKKyNkYXRhCis8ZGl2Pjxzdmc+PHBhdGg+PC9kaXY+YQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgPHN2ZyBwYXRoPgorfCAgICAgImEiCisKKyNkYXRhCis8ZGl2Pjxzdmc+PHBhdGg+PC9zdmc+PHBhdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICA8c3ZnIHBhdGg+Cit8ICAgICAgIDxwYXRoPgorCisjZGF0YQorPGRpdj48c3ZnPjxwYXRoPjxmb3JlaWduT2JqZWN0PjxtYXRoPjwvZGl2PmEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgIDxzdmcgcGF0aD4KK3wgICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KK3wgICAgICAgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgICAgICAgICAiYSIKKworI2RhdGEKKzxkaXY+PHN2Zz48cGF0aD48Zm9yZWlnbk9iamVjdD48cD48L2Rpdj5hCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICA8c3ZnIHBhdGg+Cit8ICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgICAgIDxwPgorfCAgICAgICAgICAgICAgICJhIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHN2Zz48ZGVzYz48ZGl2Pjxzdmc+PHVsPmEKKyNlcnJvcnMKKzQwOiBIVE1MIHN0YXJ0IHRhZyDigJx1bOKAnSBpbiBhIGZvcmVpZ24gbmFtZXNwYWNlIGNvbnRleHQuCis0MTogRW5kIG9mIGZpbGUgaW4gYSBmb3JlaWduIG5hbWVzcGFjZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGRlc2M+Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgPHVsPgorfCAgICAgICAgICAgICAiYSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxzdmc+PGRlc2M+PHN2Zz48dWw+YQorI2Vycm9ycworMzU6IEhUTUwgc3RhcnQgdGFnIOKAnHVs4oCdIGluIGEgZm9yZWlnbiBuYW1lc3BhY2UgY29udGV4dC4KKzM2OiBFbmQgb2YgZmlsZSBpbiBhIGZvcmVpZ24gbmFtZXNwYWNlIGNvbnRleHQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgZGVzYz4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICA8dWw+Cit8ICAgICAgICAgICAiYSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxwPjxzdmc+PGRlc2M+PHA+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgIDxzdmcgZGVzYz4KK3wgICAgICAgICAgIDxwPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHA+PHN2Zz48dGl0bGU+PHA+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgIDxzdmcgdGl0bGU+Cit8ICAgICAgICAgICA8cD4KKworI2RhdGEKKzxkaXY+PHN2Zz48cGF0aD48Zm9yZWlnbk9iamVjdD48cD48L2ZvcmVpZ25PYmplY3Q+PHA+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICA8c3ZnIHBhdGg+Cit8ICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgICAgIDxwPgorfCAgICAgICAgICAgICA8cD4KKworI2RhdGEKKzxtYXRoPjxtaT48ZGl2PjxvYmplY3Q+PGRpdj48c3Bhbj48L3NwYW4+PC9kaXY+PC9vYmplY3Q+PC9kaXY+PC9taT48bWk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPG9iamVjdD4KK3wgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgPG1hdGggbWk+CisKKyNkYXRhCis8bWF0aD48bWk+PHN2Zz48Zm9yZWlnbk9iamVjdD48ZGl2PjxkaXY+PC9kaXY+PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjwvc3ZnPjwvbWk+PG1pPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgPG1hdGggbWk+CisKKyNkYXRhCis8c3ZnPjxzY3JpcHQ+PC9zY3JpcHQ+PHBhdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyBzY3JpcHQ+Cit8ICAgICAgIDxzdmcgcGF0aD4KKworI2RhdGEKKzx0YWJsZT48c3ZnPjwvc3ZnPjx0cj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPG1hdGg+PG1pPjxtZ2x5cGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICA8bWF0aCBtZ2x5cGg+CisKKyNkYXRhCis8bWF0aD48bWk+PG1hbGlnbm1hcms+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICA8bWF0aCBtYWxpZ25tYXJrPgorCisjZGF0YQorPG1hdGg+PG1vPjxtZ2x5cGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtbz4KK3wgICAgICAgICA8bWF0aCBtZ2x5cGg+CisKKyNkYXRhCis8bWF0aD48bW8+PG1hbGlnbm1hcms+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtbz4KK3wgICAgICAgICA8bWF0aCBtYWxpZ25tYXJrPgorCisjZGF0YQorPG1hdGg+PG1uPjxtZ2x5cGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICA8bWF0aCBtZ2x5cGg+CisKKyNkYXRhCis8bWF0aD48bW4+PG1hbGlnbm1hcms+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICA8bWF0aCBtYWxpZ25tYXJrPgorCisjZGF0YQorPG1hdGg+PG1zPjxtZ2x5cGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtcz4KK3wgICAgICAgICA8bWF0aCBtZ2x5cGg+CisKKyNkYXRhCis8bWF0aD48bXM+PG1hbGlnbm1hcms+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtcz4KK3wgICAgICAgICA8bWF0aCBtYWxpZ25tYXJrPgorCisjZGF0YQorPG1hdGg+PG10ZXh0PjxtZ2x5cGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtdGV4dD4KK3wgICAgICAgICA8bWF0aCBtZ2x5cGg+CisKKyNkYXRhCis8bWF0aD48bXRleHQ+PG1hbGlnbm1hcms+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtdGV4dD4KK3wgICAgICAgICA8bWF0aCBtYWxpZ25tYXJrPgorCisjZGF0YQorPG1hdGg+PGFubm90YXRpb24teG1sPjxzdmc+PC9zdmc+PC9hbm5vdGF0aW9uLXhtbD48bWk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KK3wgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPG1hdGggbWk+CisKKyNkYXRhCis8bWF0aD48YW5ub3RhdGlvbi14bWw+PHN2Zz48Zm9yZWlnbk9iamVjdD48ZGl2PjxtYXRoPjxtaT48L21pPjwvbWF0aD48c3Bhbj48L3NwYW4+PC9kaXY+PC9mb3JlaWduT2JqZWN0PjxwYXRoPjwvcGF0aD48L3N2Zz48L2Fubm90YXRpb24teG1sPjxtaT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgorfCAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgorfCAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICAgIDxzdmcgcGF0aD4KK3wgICAgICAgPG1hdGggbWk+CisKKyNkYXRhCis8bWF0aD48YW5ub3RhdGlvbi14bWw+PHN2Zz48Zm9yZWlnbk9iamVjdD48bWF0aD48bWk+PHN2Zz48L3N2Zz48L21pPjxtbz48L21vPjwvbWF0aD48c3Bhbj48L3NwYW4+PC9mb3JlaWduT2JqZWN0PjxwYXRoPjwvcGF0aD48L3N2Zz48L2Fubm90YXRpb24teG1sPjxtaT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgorfCAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgorfCAgICAgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICAgICAgPG1hdGggbW8+Cit8ICAgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgICAgPHN2ZyBwYXRoPgorfCAgICAgICA8bWF0aCBtaT4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czExLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czExLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzhjZGU0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0CkBAIC0wLDAgKzEsNDgyIEBACisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHN2ZyBhdHRyaWJ1dGVOYW1lPScnIGF0dHJpYnV0ZVR5cGU9JycgYmFzZUZyZXF1ZW5jeT0nJyBiYXNlUHJvZmlsZT0nJyBjYWxjTW9kZT0nJyBjbGlwUGF0aFVuaXRzPScnIGNvbnRlbnRTY3JpcHRUeXBlPScnIGNvbnRlbnRTdHlsZVR5cGU9JycgZGlmZnVzZUNvbnN0YW50PScnIGVkZ2VNb2RlPScnIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ9JycgZmlsdGVyUmVzPScnIGZpbHRlclVuaXRzPScnIGdseXBoUmVmPScnIGdyYWRpZW50VHJhbnNmb3JtPScnIGdyYWRpZW50VW5pdHM9Jycga2VybmVsTWF0cml4PScnIGtlcm5lbFVuaXRMZW5ndGg9Jycga2V5UG9pbnRzPScnIGtleVNwbGluZXM9Jycga2V5VGltZXM9JycgbGVuZ3RoQWRqdXN0PScnIGxpbWl0aW5nQ29uZUFuZ2xlPScnIG1hcmtlckhlaWdodD0nJyBtYXJrZXJVbml0cz0nJyBtYXJrZXJXaWR0aD0nJyBtYXNrQ29udGVudFVuaXRzPScnIG1hc2tVbml0cz0nJyBudW1PY3RhdmVzPScnIHBhdGhMZW5ndGg9JycgcGF0dGVybkNvbnRlbnRVbml0cz0nJyBwYXR0ZXJuVHJhbnNmb3JtPScnIHBhdHRlcm5Vbml0cz0nJyBwb2ludHNBdFg9JycgcG9pbnRzQXRZPScnIHBvaW50c0F0Wj0nJyBwcmVzZXJ2ZUFscGhhPScnIHByZXNlcnZlQXNwZWN0UmF0aW89JycgcHJpbWl0aXZlVW5pdHM9JycgcmVmWD0nJyByZWZZPScnIHJlcGVhdENvdW50PScnIHJlcGVhdER1cj0nJyByZXF1aXJlZEV4dGVuc2lvbnM9JycgcmVxdWlyZWRGZWF0dXJlcz0nJyBzcGVjdWxhckNvbnN0YW50PScnIHNwZWN1bGFyRXhwb25lbnQ9Jycgc3ByZWFkTWV0aG9kPScnIHN0YXJ0T2Zmc2V0PScnIHN0ZERldmlhdGlvbj0nJyBzdGl0Y2hUaWxlcz0nJyBzdXJmYWNlU2NhbGU9Jycgc3lzdGVtTGFuZ3VhZ2U9JycgdGFibGVWYWx1ZXM9JycgdGFyZ2V0WD0nJyB0YXJnZXRZPScnIHRleHRMZW5ndGg9Jycgdmlld0JveD0nJyB2aWV3VGFyZ2V0PScnIHhDaGFubmVsU2VsZWN0b3I9JycgeUNoYW5uZWxTZWxlY3Rvcj0nJyB6b29tQW5kUGFuPScnPjwvc3ZnPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICBhdHRyaWJ1dGVOYW1lPSIiCit8ICAgICAgIGF0dHJpYnV0ZVR5cGU9IiIKK3wgICAgICAgYmFzZUZyZXF1ZW5jeT0iIgorfCAgICAgICBiYXNlUHJvZmlsZT0iIgorfCAgICAgICBjYWxjTW9kZT0iIgorfCAgICAgICBjbGlwUGF0aFVuaXRzPSIiCit8ICAgICAgIGNvbnRlbnRTY3JpcHRUeXBlPSIiCit8ICAgICAgIGNvbnRlbnRTdHlsZVR5cGU9IiIKK3wgICAgICAgZGlmZnVzZUNvbnN0YW50PSIiCit8ICAgICAgIGVkZ2VNb2RlPSIiCit8ICAgICAgIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ9IiIKK3wgICAgICAgZmlsdGVyUmVzPSIiCit8ICAgICAgIGZpbHRlclVuaXRzPSIiCit8ICAgICAgIGdseXBoUmVmPSIiCit8ICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSIiCit8ICAgICAgIGdyYWRpZW50VW5pdHM9IiIKK3wgICAgICAga2VybmVsTWF0cml4PSIiCit8ICAgICAgIGtlcm5lbFVuaXRMZW5ndGg9IiIKK3wgICAgICAga2V5UG9pbnRzPSIiCit8ICAgICAgIGtleVNwbGluZXM9IiIKK3wgICAgICAga2V5VGltZXM9IiIKK3wgICAgICAgbGVuZ3RoQWRqdXN0PSIiCit8ICAgICAgIGxpbWl0aW5nQ29uZUFuZ2xlPSIiCit8ICAgICAgIG1hcmtlckhlaWdodD0iIgorfCAgICAgICBtYXJrZXJVbml0cz0iIgorfCAgICAgICBtYXJrZXJXaWR0aD0iIgorfCAgICAgICBtYXNrQ29udGVudFVuaXRzPSIiCit8ICAgICAgIG1hc2tVbml0cz0iIgorfCAgICAgICBudW1PY3RhdmVzPSIiCit8ICAgICAgIHBhdGhMZW5ndGg9IiIKK3wgICAgICAgcGF0dGVybkNvbnRlbnRVbml0cz0iIgorfCAgICAgICBwYXR0ZXJuVHJhbnNmb3JtPSIiCit8ICAgICAgIHBhdHRlcm5Vbml0cz0iIgorfCAgICAgICBwb2ludHNBdFg9IiIKK3wgICAgICAgcG9pbnRzQXRZPSIiCit8ICAgICAgIHBvaW50c0F0Wj0iIgorfCAgICAgICBwcmVzZXJ2ZUFscGhhPSIiCit8ICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89IiIKK3wgICAgICAgcHJpbWl0aXZlVW5pdHM9IiIKK3wgICAgICAgcmVmWD0iIgorfCAgICAgICByZWZZPSIiCit8ICAgICAgIHJlcGVhdENvdW50PSIiCit8ICAgICAgIHJlcGVhdER1cj0iIgorfCAgICAgICByZXF1aXJlZEV4dGVuc2lvbnM9IiIKK3wgICAgICAgcmVxdWlyZWRGZWF0dXJlcz0iIgorfCAgICAgICBzcGVjdWxhckNvbnN0YW50PSIiCit8ICAgICAgIHNwZWN1bGFyRXhwb25lbnQ9IiIKK3wgICAgICAgc3ByZWFkTWV0aG9kPSIiCit8ICAgICAgIHN0YXJ0T2Zmc2V0PSIiCit8ICAgICAgIHN0ZERldmlhdGlvbj0iIgorfCAgICAgICBzdGl0Y2hUaWxlcz0iIgorfCAgICAgICBzdXJmYWNlU2NhbGU9IiIKK3wgICAgICAgc3lzdGVtTGFuZ3VhZ2U9IiIKK3wgICAgICAgdGFibGVWYWx1ZXM9IiIKK3wgICAgICAgdGFyZ2V0WD0iIgorfCAgICAgICB0YXJnZXRZPSIiCit8ICAgICAgIHRleHRMZW5ndGg9IiIKK3wgICAgICAgdmlld0JveD0iIgorfCAgICAgICB2aWV3VGFyZ2V0PSIiCit8ICAgICAgIHhDaGFubmVsU2VsZWN0b3I9IiIKK3wgICAgICAgeUNoYW5uZWxTZWxlY3Rvcj0iIgorfCAgICAgICB6b29tQW5kUGFuPSIiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Qk9EWT48U1ZHIEFUVFJJQlVURU5BTUU9JycgQVRUUklCVVRFVFlQRT0nJyBCQVNFRlJFUVVFTkNZPScnIEJBU0VQUk9GSUxFPScnIENBTENNT0RFPScnIENMSVBQQVRIVU5JVFM9JycgQ09OVEVOVFNDUklQVFRZUEU9JycgQ09OVEVOVFNUWUxFVFlQRT0nJyBESUZGVVNFQ09OU1RBTlQ9JycgRURHRU1PREU9JycgRVhURVJOQUxSRVNPVVJDRVNSRVFVSVJFRD0nJyBGSUxURVJSRVM9JycgRklMVEVSVU5JVFM9JycgR0xZUEhSRUY9JycgR1JBRElFTlRUUkFOU0ZPUk09JycgR1JBRElFTlRVTklUUz0nJyBLRVJORUxNQVRSSVg9JycgS0VSTkVMVU5JVExFTkdUSD0nJyBLRVlQT0lOVFM9JycgS0VZU1BMSU5FUz0nJyBLRVlUSU1FUz0nJyBMRU5HVEhBREpVU1Q9JycgTElNSVRJTkdDT05FQU5HTEU9JycgTUFSS0VSSEVJR0hUPScnIE1BUktFUlVOSVRTPScnIE1BUktFUldJRFRIPScnIE1BU0tDT05URU5UVU5JVFM9JycgTUFTS1VOSVRTPScnIE5VTU9DVEFWRVM9JycgUEFUSExFTkdUSD0nJyBQQVRURVJOQ09OVEVOVFVOSVRTPScnIFBBVFRFUk5UUkFOU0ZPUk09JycgUEFUVEVSTlVOSVRTPScnIFBPSU5UU0FUWD0nJyBQT0lOVFNBVFk9JycgUE9JTlRTQVRaPScnIFBSRVNFUlZFQUxQSEE9JycgUFJFU0VSVkVBU1BFQ1RSQVRJTz0nJyBQUklNSVRJVkVVTklUUz0nJyBSRUZYPScnIFJFRlk9JycgUkVQRUFUQ09VTlQ9JycgUkVQRUFURFVSPScnIFJFUVVJUkVERVhURU5TSU9OUz0nJyBSRVFVSVJFREZFQVRVUkVTPScnIFNQRUNVTEFSQ09OU1RBTlQ9JycgU1BFQ1VMQVJFWFBPTkVOVD0nJyBTUFJFQURNRVRIT0Q9JycgU1RBUlRPRkZTRVQ9JycgU1REREVWSUFUSU9OPScnIFNUSVRDSFRJTEVTPScnIFNVUkZBQ0VTQ0FMRT0nJyBTWVNURU1MQU5HVUFHRT0nJyBUQUJMRVZBTFVFUz0nJyBUQVJHRVRYPScnIFRBUkdFVFk9JycgVEVYVExFTkdUSD0nJyBWSUVXQk9YPScnIFZJRVdUQVJHRVQ9JycgWENIQU5ORUxTRUxFQ1RPUj0nJyBZQ0hBTk5FTFNFTEVDVE9SPScnIFpPT01BTkRQQU49Jyc+PC9TVkc+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIGF0dHJpYnV0ZU5hbWU9IiIKK3wgICAgICAgYXR0cmlidXRlVHlwZT0iIgorfCAgICAgICBiYXNlRnJlcXVlbmN5PSIiCit8ICAgICAgIGJhc2VQcm9maWxlPSIiCit8ICAgICAgIGNhbGNNb2RlPSIiCit8ICAgICAgIGNsaXBQYXRoVW5pdHM9IiIKK3wgICAgICAgY29udGVudFNjcmlwdFR5cGU9IiIKK3wgICAgICAgY29udGVudFN0eWxlVHlwZT0iIgorfCAgICAgICBkaWZmdXNlQ29uc3RhbnQ9IiIKK3wgICAgICAgZWRnZU1vZGU9IiIKK3wgICAgICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD0iIgorfCAgICAgICBmaWx0ZXJSZXM9IiIKK3wgICAgICAgZmlsdGVyVW5pdHM9IiIKK3wgICAgICAgZ2x5cGhSZWY9IiIKK3wgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09IiIKK3wgICAgICAgZ3JhZGllbnRVbml0cz0iIgorfCAgICAgICBrZXJuZWxNYXRyaXg9IiIKK3wgICAgICAga2VybmVsVW5pdExlbmd0aD0iIgorfCAgICAgICBrZXlQb2ludHM9IiIKK3wgICAgICAga2V5U3BsaW5lcz0iIgorfCAgICAgICBrZXlUaW1lcz0iIgorfCAgICAgICBsZW5ndGhBZGp1c3Q9IiIKK3wgICAgICAgbGltaXRpbmdDb25lQW5nbGU9IiIKK3wgICAgICAgbWFya2VySGVpZ2h0PSIiCit8ICAgICAgIG1hcmtlclVuaXRzPSIiCit8ICAgICAgIG1hcmtlcldpZHRoPSIiCit8ICAgICAgIG1hc2tDb250ZW50VW5pdHM9IiIKK3wgICAgICAgbWFza1VuaXRzPSIiCit8ICAgICAgIG51bU9jdGF2ZXM9IiIKK3wgICAgICAgcGF0aExlbmd0aD0iIgorfCAgICAgICBwYXR0ZXJuQ29udGVudFVuaXRzPSIiCit8ICAgICAgIHBhdHRlcm5UcmFuc2Zvcm09IiIKK3wgICAgICAgcGF0dGVyblVuaXRzPSIiCit8ICAgICAgIHBvaW50c0F0WD0iIgorfCAgICAgICBwb2ludHNBdFk9IiIKK3wgICAgICAgcG9pbnRzQXRaPSIiCit8ICAgICAgIHByZXNlcnZlQWxwaGE9IiIKK3wgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0iIgorfCAgICAgICBwcmltaXRpdmVVbml0cz0iIgorfCAgICAgICByZWZYPSIiCit8ICAgICAgIHJlZlk9IiIKK3wgICAgICAgcmVwZWF0Q291bnQ9IiIKK3wgICAgICAgcmVwZWF0RHVyPSIiCit8ICAgICAgIHJlcXVpcmVkRXh0ZW5zaW9ucz0iIgorfCAgICAgICByZXF1aXJlZEZlYXR1cmVzPSIiCit8ICAgICAgIHNwZWN1bGFyQ29uc3RhbnQ9IiIKK3wgICAgICAgc3BlY3VsYXJFeHBvbmVudD0iIgorfCAgICAgICBzcHJlYWRNZXRob2Q9IiIKK3wgICAgICAgc3RhcnRPZmZzZXQ9IiIKK3wgICAgICAgc3RkRGV2aWF0aW9uPSIiCit8ICAgICAgIHN0aXRjaFRpbGVzPSIiCit8ICAgICAgIHN1cmZhY2VTY2FsZT0iIgorfCAgICAgICBzeXN0ZW1MYW5ndWFnZT0iIgorfCAgICAgICB0YWJsZVZhbHVlcz0iIgorfCAgICAgICB0YXJnZXRYPSIiCit8ICAgICAgIHRhcmdldFk9IiIKK3wgICAgICAgdGV4dExlbmd0aD0iIgorfCAgICAgICB2aWV3Qm94PSIiCit8ICAgICAgIHZpZXdUYXJnZXQ9IiIKK3wgICAgICAgeENoYW5uZWxTZWxlY3Rvcj0iIgorfCAgICAgICB5Q2hhbm5lbFNlbGVjdG9yPSIiCit8ICAgICAgIHpvb21BbmRQYW49IiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxzdmcgYXR0cmlidXRlbmFtZT0nJyBhdHRyaWJ1dGV0eXBlPScnIGJhc2VmcmVxdWVuY3k9JycgYmFzZXByb2ZpbGU9JycgY2FsY21vZGU9JycgY2xpcHBhdGh1bml0cz0nJyBjb250ZW50c2NyaXB0dHlwZT0nJyBjb250ZW50c3R5bGV0eXBlPScnIGRpZmZ1c2Vjb25zdGFudD0nJyBlZGdlbW9kZT0nJyBleHRlcm5hbHJlc291cmNlc3JlcXVpcmVkPScnIGZpbHRlcnJlcz0nJyBmaWx0ZXJ1bml0cz0nJyBnbHlwaHJlZj0nJyBncmFkaWVudHRyYW5zZm9ybT0nJyBncmFkaWVudHVuaXRzPScnIGtlcm5lbG1hdHJpeD0nJyBrZXJuZWx1bml0bGVuZ3RoPScnIGtleXBvaW50cz0nJyBrZXlzcGxpbmVzPScnIGtleXRpbWVzPScnIGxlbmd0aGFkanVzdD0nJyBsaW1pdGluZ2NvbmVhbmdsZT0nJyBtYXJrZXJoZWlnaHQ9JycgbWFya2VydW5pdHM9JycgbWFya2Vyd2lkdGg9JycgbWFza2NvbnRlbnR1bml0cz0nJyBtYXNrdW5pdHM9JycgbnVtb2N0YXZlcz0nJyBwYXRobGVuZ3RoPScnIHBhdHRlcm5jb250ZW50dW5pdHM9JycgcGF0dGVybnRyYW5zZm9ybT0nJyBwYXR0ZXJudW5pdHM9JycgcG9pbnRzYXR4PScnIHBvaW50c2F0eT0nJyBwb2ludHNhdHo9JycgcHJlc2VydmVhbHBoYT0nJyBwcmVzZXJ2ZWFzcGVjdHJhdGlvPScnIHByaW1pdGl2ZXVuaXRzPScnIHJlZng9JycgcmVmeT0nJyByZXBlYXRjb3VudD0nJyByZXBlYXRkdXI9JycgcmVxdWlyZWRleHRlbnNpb25zPScnIHJlcXVpcmVkZmVhdHVyZXM9Jycgc3BlY3VsYXJjb25zdGFudD0nJyBzcGVjdWxhcmV4cG9uZW50PScnIHNwcmVhZG1ldGhvZD0nJyBzdGFydG9mZnNldD0nJyBzdGRkZXZpYXRpb249Jycgc3RpdGNodGlsZXM9Jycgc3VyZmFjZXNjYWxlPScnIHN5c3RlbWxhbmd1YWdlPScnIHRhYmxldmFsdWVzPScnIHRhcmdldHg9JycgdGFyZ2V0eT0nJyB0ZXh0bGVuZ3RoPScnIHZpZXdib3g9Jycgdmlld3RhcmdldD0nJyB4Y2hhbm5lbHNlbGVjdG9yPScnIHljaGFubmVsc2VsZWN0b3I9Jycgem9vbWFuZHBhbj0nJz48L3N2Zz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgYXR0cmlidXRlTmFtZT0iIgorfCAgICAgICBhdHRyaWJ1dGVUeXBlPSIiCit8ICAgICAgIGJhc2VGcmVxdWVuY3k9IiIKK3wgICAgICAgYmFzZVByb2ZpbGU9IiIKK3wgICAgICAgY2FsY01vZGU9IiIKK3wgICAgICAgY2xpcFBhdGhVbml0cz0iIgorfCAgICAgICBjb250ZW50U2NyaXB0VHlwZT0iIgorfCAgICAgICBjb250ZW50U3R5bGVUeXBlPSIiCit8ICAgICAgIGRpZmZ1c2VDb25zdGFudD0iIgorfCAgICAgICBlZGdlTW9kZT0iIgorfCAgICAgICBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPSIiCit8ICAgICAgIGZpbHRlclJlcz0iIgorfCAgICAgICBmaWx0ZXJVbml0cz0iIgorfCAgICAgICBnbHlwaFJlZj0iIgorfCAgICAgICBncmFkaWVudFRyYW5zZm9ybT0iIgorfCAgICAgICBncmFkaWVudFVuaXRzPSIiCit8ICAgICAgIGtlcm5lbE1hdHJpeD0iIgorfCAgICAgICBrZXJuZWxVbml0TGVuZ3RoPSIiCit8ICAgICAgIGtleVBvaW50cz0iIgorfCAgICAgICBrZXlTcGxpbmVzPSIiCit8ICAgICAgIGtleVRpbWVzPSIiCit8ICAgICAgIGxlbmd0aEFkanVzdD0iIgorfCAgICAgICBsaW1pdGluZ0NvbmVBbmdsZT0iIgorfCAgICAgICBtYXJrZXJIZWlnaHQ9IiIKK3wgICAgICAgbWFya2VyVW5pdHM9IiIKK3wgICAgICAgbWFya2VyV2lkdGg9IiIKK3wgICAgICAgbWFza0NvbnRlbnRVbml0cz0iIgorfCAgICAgICBtYXNrVW5pdHM9IiIKK3wgICAgICAgbnVtT2N0YXZlcz0iIgorfCAgICAgICBwYXRoTGVuZ3RoPSIiCit8ICAgICAgIHBhdHRlcm5Db250ZW50VW5pdHM9IiIKK3wgICAgICAgcGF0dGVyblRyYW5zZm9ybT0iIgorfCAgICAgICBwYXR0ZXJuVW5pdHM9IiIKK3wgICAgICAgcG9pbnRzQXRYPSIiCit8ICAgICAgIHBvaW50c0F0WT0iIgorfCAgICAgICBwb2ludHNBdFo9IiIKK3wgICAgICAgcHJlc2VydmVBbHBoYT0iIgorfCAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSIiCit8ICAgICAgIHByaW1pdGl2ZVVuaXRzPSIiCit8ICAgICAgIHJlZlg9IiIKK3wgICAgICAgcmVmWT0iIgorfCAgICAgICByZXBlYXRDb3VudD0iIgorfCAgICAgICByZXBlYXREdXI9IiIKK3wgICAgICAgcmVxdWlyZWRFeHRlbnNpb25zPSIiCit8ICAgICAgIHJlcXVpcmVkRmVhdHVyZXM9IiIKK3wgICAgICAgc3BlY3VsYXJDb25zdGFudD0iIgorfCAgICAgICBzcGVjdWxhckV4cG9uZW50PSIiCit8ICAgICAgIHNwcmVhZE1ldGhvZD0iIgorfCAgICAgICBzdGFydE9mZnNldD0iIgorfCAgICAgICBzdGREZXZpYXRpb249IiIKK3wgICAgICAgc3RpdGNoVGlsZXM9IiIKK3wgICAgICAgc3VyZmFjZVNjYWxlPSIiCit8ICAgICAgIHN5c3RlbUxhbmd1YWdlPSIiCit8ICAgICAgIHRhYmxlVmFsdWVzPSIiCit8ICAgICAgIHRhcmdldFg9IiIKK3wgICAgICAgdGFyZ2V0WT0iIgorfCAgICAgICB0ZXh0TGVuZ3RoPSIiCit8ICAgICAgIHZpZXdCb3g9IiIKK3wgICAgICAgdmlld1RhcmdldD0iIgorfCAgICAgICB4Q2hhbm5lbFNlbGVjdG9yPSIiCit8ICAgICAgIHlDaGFubmVsU2VsZWN0b3I9IiIKK3wgICAgICAgem9vbUFuZFBhbj0iIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PG1hdGggYXR0cmlidXRlTmFtZT0nJyBhdHRyaWJ1dGVUeXBlPScnIGJhc2VGcmVxdWVuY3k9JycgYmFzZVByb2ZpbGU9JycgY2FsY01vZGU9JycgY2xpcFBhdGhVbml0cz0nJyBjb250ZW50U2NyaXB0VHlwZT0nJyBjb250ZW50U3R5bGVUeXBlPScnIGRpZmZ1c2VDb25zdGFudD0nJyBlZGdlTW9kZT0nJyBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPScnIGZpbHRlclJlcz0nJyBmaWx0ZXJVbml0cz0nJyBnbHlwaFJlZj0nJyBncmFkaWVudFRyYW5zZm9ybT0nJyBncmFkaWVudFVuaXRzPScnIGtlcm5lbE1hdHJpeD0nJyBrZXJuZWxVbml0TGVuZ3RoPScnIGtleVBvaW50cz0nJyBrZXlTcGxpbmVzPScnIGtleVRpbWVzPScnIGxlbmd0aEFkanVzdD0nJyBsaW1pdGluZ0NvbmVBbmdsZT0nJyBtYXJrZXJIZWlnaHQ9JycgbWFya2VyVW5pdHM9JycgbWFya2VyV2lkdGg9JycgbWFza0NvbnRlbnRVbml0cz0nJyBtYXNrVW5pdHM9JycgbnVtT2N0YXZlcz0nJyBwYXRoTGVuZ3RoPScnIHBhdHRlcm5Db250ZW50VW5pdHM9JycgcGF0dGVyblRyYW5zZm9ybT0nJyBwYXR0ZXJuVW5pdHM9JycgcG9pbnRzQXRYPScnIHBvaW50c0F0WT0nJyBwb2ludHNBdFo9JycgcHJlc2VydmVBbHBoYT0nJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPScnIHByaW1pdGl2ZVVuaXRzPScnIHJlZlg9JycgcmVmWT0nJyByZXBlYXRDb3VudD0nJyByZXBlYXREdXI9JycgcmVxdWlyZWRFeHRlbnNpb25zPScnIHJlcXVpcmVkRmVhdHVyZXM9Jycgc3BlY3VsYXJDb25zdGFudD0nJyBzcGVjdWxhckV4cG9uZW50PScnIHNwcmVhZE1ldGhvZD0nJyBzdGFydE9mZnNldD0nJyBzdGREZXZpYXRpb249Jycgc3RpdGNoVGlsZXM9Jycgc3VyZmFjZVNjYWxlPScnIHN5c3RlbUxhbmd1YWdlPScnIHRhYmxlVmFsdWVzPScnIHRhcmdldFg9JycgdGFyZ2V0WT0nJyB0ZXh0TGVuZ3RoPScnIHZpZXdCb3g9Jycgdmlld1RhcmdldD0nJyB4Q2hhbm5lbFNlbGVjdG9yPScnIHlDaGFubmVsU2VsZWN0b3I9Jycgem9vbUFuZFBhbj0nJz48L21hdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgYXR0cmlidXRlbmFtZT0iIgorfCAgICAgICBhdHRyaWJ1dGV0eXBlPSIiCit8ICAgICAgIGJhc2VmcmVxdWVuY3k9IiIKK3wgICAgICAgYmFzZXByb2ZpbGU9IiIKK3wgICAgICAgY2FsY21vZGU9IiIKK3wgICAgICAgY2xpcHBhdGh1bml0cz0iIgorfCAgICAgICBjb250ZW50c2NyaXB0dHlwZT0iIgorfCAgICAgICBjb250ZW50c3R5bGV0eXBlPSIiCit8ICAgICAgIGRpZmZ1c2Vjb25zdGFudD0iIgorfCAgICAgICBlZGdlbW9kZT0iIgorfCAgICAgICBleHRlcm5hbHJlc291cmNlc3JlcXVpcmVkPSIiCit8ICAgICAgIGZpbHRlcnJlcz0iIgorfCAgICAgICBmaWx0ZXJ1bml0cz0iIgorfCAgICAgICBnbHlwaHJlZj0iIgorfCAgICAgICBncmFkaWVudHRyYW5zZm9ybT0iIgorfCAgICAgICBncmFkaWVudHVuaXRzPSIiCit8ICAgICAgIGtlcm5lbG1hdHJpeD0iIgorfCAgICAgICBrZXJuZWx1bml0bGVuZ3RoPSIiCit8ICAgICAgIGtleXBvaW50cz0iIgorfCAgICAgICBrZXlzcGxpbmVzPSIiCit8ICAgICAgIGtleXRpbWVzPSIiCit8ICAgICAgIGxlbmd0aGFkanVzdD0iIgorfCAgICAgICBsaW1pdGluZ2NvbmVhbmdsZT0iIgorfCAgICAgICBtYXJrZXJoZWlnaHQ9IiIKK3wgICAgICAgbWFya2VydW5pdHM9IiIKK3wgICAgICAgbWFya2Vyd2lkdGg9IiIKK3wgICAgICAgbWFza2NvbnRlbnR1bml0cz0iIgorfCAgICAgICBtYXNrdW5pdHM9IiIKK3wgICAgICAgbnVtb2N0YXZlcz0iIgorfCAgICAgICBwYXRobGVuZ3RoPSIiCit8ICAgICAgIHBhdHRlcm5jb250ZW50dW5pdHM9IiIKK3wgICAgICAgcGF0dGVybnRyYW5zZm9ybT0iIgorfCAgICAgICBwYXR0ZXJudW5pdHM9IiIKK3wgICAgICAgcG9pbnRzYXR4PSIiCit8ICAgICAgIHBvaW50c2F0eT0iIgorfCAgICAgICBwb2ludHNhdHo9IiIKK3wgICAgICAgcHJlc2VydmVhbHBoYT0iIgorfCAgICAgICBwcmVzZXJ2ZWFzcGVjdHJhdGlvPSIiCit8ICAgICAgIHByaW1pdGl2ZXVuaXRzPSIiCit8ICAgICAgIHJlZng9IiIKK3wgICAgICAgcmVmeT0iIgorfCAgICAgICByZXBlYXRjb3VudD0iIgorfCAgICAgICByZXBlYXRkdXI9IiIKK3wgICAgICAgcmVxdWlyZWRleHRlbnNpb25zPSIiCit8ICAgICAgIHJlcXVpcmVkZmVhdHVyZXM9IiIKK3wgICAgICAgc3BlY3VsYXJjb25zdGFudD0iIgorfCAgICAgICBzcGVjdWxhcmV4cG9uZW50PSIiCit8ICAgICAgIHNwcmVhZG1ldGhvZD0iIgorfCAgICAgICBzdGFydG9mZnNldD0iIgorfCAgICAgICBzdGRkZXZpYXRpb249IiIKK3wgICAgICAgc3RpdGNodGlsZXM9IiIKK3wgICAgICAgc3VyZmFjZXNjYWxlPSIiCit8ICAgICAgIHN5c3RlbWxhbmd1YWdlPSIiCit8ICAgICAgIHRhYmxldmFsdWVzPSIiCit8ICAgICAgIHRhcmdldHg9IiIKK3wgICAgICAgdGFyZ2V0eT0iIgorfCAgICAgICB0ZXh0bGVuZ3RoPSIiCit8ICAgICAgIHZpZXdib3g9IiIKK3wgICAgICAgdmlld3RhcmdldD0iIgorfCAgICAgICB4Y2hhbm5lbHNlbGVjdG9yPSIiCit8ICAgICAgIHljaGFubmVsc2VsZWN0b3I9IiIKK3wgICAgICAgem9vbWFuZHBhbj0iIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHN2Zz48YWx0R2x5cGggLz48YWx0R2x5cGhEZWYgLz48YWx0R2x5cGhJdGVtIC8+PGFuaW1hdGVDb2xvciAvPjxhbmltYXRlTW90aW9uIC8+PGFuaW1hdGVUcmFuc2Zvcm0gLz48Y2xpcFBhdGggLz48ZmVCbGVuZCAvPjxmZUNvbG9yTWF0cml4IC8+PGZlQ29tcG9uZW50VHJhbnNmZXIgLz48ZmVDb21wb3NpdGUgLz48ZmVDb252b2x2ZU1hdHJpeCAvPjxmZURpZmZ1c2VMaWdodGluZyAvPjxmZURpc3BsYWNlbWVudE1hcCAvPjxmZURpc3RhbnRMaWdodCAvPjxmZUZsb29kIC8+PGZlRnVuY0EgLz48ZmVGdW5jQiAvPjxmZUZ1bmNHIC8+PGZlRnVuY1IgLz48ZmVHYXVzc2lhbkJsdXIgLz48ZmVJbWFnZSAvPjxmZU1lcmdlIC8+PGZlTWVyZ2VOb2RlIC8+PGZlTW9ycGhvbG9neSAvPjxmZU9mZnNldCAvPjxmZVBvaW50TGlnaHQgLz48ZmVTcGVjdWxhckxpZ2h0aW5nIC8+PGZlU3BvdExpZ2h0IC8+PGZlVGlsZSAvPjxmZVR1cmJ1bGVuY2UgLz48Zm9yZWlnbk9iamVjdCAvPjxnbHlwaFJlZiAvPjxsaW5lYXJHcmFkaWVudCAvPjxyYWRpYWxHcmFkaWVudCAvPjx0ZXh0UGF0aCAvPjwvc3ZnPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGFsdEdseXBoPgorfCAgICAgICA8c3ZnIGFsdEdseXBoRGVmPgorfCAgICAgICA8c3ZnIGFsdEdseXBoSXRlbT4KK3wgICAgICAgPHN2ZyBhbmltYXRlQ29sb3I+Cit8ICAgICAgIDxzdmcgYW5pbWF0ZU1vdGlvbj4KK3wgICAgICAgPHN2ZyBhbmltYXRlVHJhbnNmb3JtPgorfCAgICAgICA8c3ZnIGNsaXBQYXRoPgorfCAgICAgICA8c3ZnIGZlQmxlbmQ+Cit8ICAgICAgIDxzdmcgZmVDb2xvck1hdHJpeD4KK3wgICAgICAgPHN2ZyBmZUNvbXBvbmVudFRyYW5zZmVyPgorfCAgICAgICA8c3ZnIGZlQ29tcG9zaXRlPgorfCAgICAgICA8c3ZnIGZlQ29udm9sdmVNYXRyaXg+Cit8ICAgICAgIDxzdmcgZmVEaWZmdXNlTGlnaHRpbmc+Cit8ICAgICAgIDxzdmcgZmVEaXNwbGFjZW1lbnRNYXA+Cit8ICAgICAgIDxzdmcgZmVEaXN0YW50TGlnaHQ+Cit8ICAgICAgIDxzdmcgZmVGbG9vZD4KK3wgICAgICAgPHN2ZyBmZUZ1bmNBPgorfCAgICAgICA8c3ZnIGZlRnVuY0I+Cit8ICAgICAgIDxzdmcgZmVGdW5jRz4KK3wgICAgICAgPHN2ZyBmZUZ1bmNSPgorfCAgICAgICA8c3ZnIGZlR2F1c3NpYW5CbHVyPgorfCAgICAgICA8c3ZnIGZlSW1hZ2U+Cit8ICAgICAgIDxzdmcgZmVNZXJnZT4KK3wgICAgICAgPHN2ZyBmZU1lcmdlTm9kZT4KK3wgICAgICAgPHN2ZyBmZU1vcnBob2xvZ3k+Cit8ICAgICAgIDxzdmcgZmVPZmZzZXQ+Cit8ICAgICAgIDxzdmcgZmVQb2ludExpZ2h0PgorfCAgICAgICA8c3ZnIGZlU3BlY3VsYXJMaWdodGluZz4KK3wgICAgICAgPHN2ZyBmZVNwb3RMaWdodD4KK3wgICAgICAgPHN2ZyBmZVRpbGU+Cit8ICAgICAgIDxzdmcgZmVUdXJidWxlbmNlPgorfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgIDxzdmcgZ2x5cGhSZWY+Cit8ICAgICAgIDxzdmcgbGluZWFyR3JhZGllbnQ+Cit8ICAgICAgIDxzdmcgcmFkaWFsR3JhZGllbnQ+Cit8ICAgICAgIDxzdmcgdGV4dFBhdGg+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48c3ZnPjxhbHRnbHlwaCAvPjxhbHRnbHlwaGRlZiAvPjxhbHRnbHlwaGl0ZW0gLz48YW5pbWF0ZWNvbG9yIC8+PGFuaW1hdGVtb3Rpb24gLz48YW5pbWF0ZXRyYW5zZm9ybSAvPjxjbGlwcGF0aCAvPjxmZWJsZW5kIC8+PGZlY29sb3JtYXRyaXggLz48ZmVjb21wb25lbnR0cmFuc2ZlciAvPjxmZWNvbXBvc2l0ZSAvPjxmZWNvbnZvbHZlbWF0cml4IC8+PGZlZGlmZnVzZWxpZ2h0aW5nIC8+PGZlZGlzcGxhY2VtZW50bWFwIC8+PGZlZGlzdGFudGxpZ2h0IC8+PGZlZmxvb2QgLz48ZmVmdW5jYSAvPjxmZWZ1bmNiIC8+PGZlZnVuY2cgLz48ZmVmdW5jciAvPjxmZWdhdXNzaWFuYmx1ciAvPjxmZWltYWdlIC8+PGZlbWVyZ2UgLz48ZmVtZXJnZW5vZGUgLz48ZmVtb3JwaG9sb2d5IC8+PGZlb2Zmc2V0IC8+PGZlcG9pbnRsaWdodCAvPjxmZXNwZWN1bGFybGlnaHRpbmcgLz48ZmVzcG90bGlnaHQgLz48ZmV0aWxlIC8+PGZldHVyYnVsZW5jZSAvPjxmb3JlaWdub2JqZWN0IC8+PGdseXBocmVmIC8+PGxpbmVhcmdyYWRpZW50IC8+PHJhZGlhbGdyYWRpZW50IC8+PHRleHRwYXRoIC8+PC9zdmc+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgYWx0R2x5cGg+Cit8ICAgICAgIDxzdmcgYWx0R2x5cGhEZWY+Cit8ICAgICAgIDxzdmcgYWx0R2x5cGhJdGVtPgorfCAgICAgICA8c3ZnIGFuaW1hdGVDb2xvcj4KK3wgICAgICAgPHN2ZyBhbmltYXRlTW90aW9uPgorfCAgICAgICA8c3ZnIGFuaW1hdGVUcmFuc2Zvcm0+Cit8ICAgICAgIDxzdmcgY2xpcFBhdGg+Cit8ICAgICAgIDxzdmcgZmVCbGVuZD4KK3wgICAgICAgPHN2ZyBmZUNvbG9yTWF0cml4PgorfCAgICAgICA8c3ZnIGZlQ29tcG9uZW50VHJhbnNmZXI+Cit8ICAgICAgIDxzdmcgZmVDb21wb3NpdGU+Cit8ICAgICAgIDxzdmcgZmVDb252b2x2ZU1hdHJpeD4KK3wgICAgICAgPHN2ZyBmZURpZmZ1c2VMaWdodGluZz4KK3wgICAgICAgPHN2ZyBmZURpc3BsYWNlbWVudE1hcD4KK3wgICAgICAgPHN2ZyBmZURpc3RhbnRMaWdodD4KK3wgICAgICAgPHN2ZyBmZUZsb29kPgorfCAgICAgICA8c3ZnIGZlRnVuY0E+Cit8ICAgICAgIDxzdmcgZmVGdW5jQj4KK3wgICAgICAgPHN2ZyBmZUZ1bmNHPgorfCAgICAgICA8c3ZnIGZlRnVuY1I+Cit8ICAgICAgIDxzdmcgZmVHYXVzc2lhbkJsdXI+Cit8ICAgICAgIDxzdmcgZmVJbWFnZT4KK3wgICAgICAgPHN2ZyBmZU1lcmdlPgorfCAgICAgICA8c3ZnIGZlTWVyZ2VOb2RlPgorfCAgICAgICA8c3ZnIGZlTW9ycGhvbG9neT4KK3wgICAgICAgPHN2ZyBmZU9mZnNldD4KK3wgICAgICAgPHN2ZyBmZVBvaW50TGlnaHQ+Cit8ICAgICAgIDxzdmcgZmVTcGVjdWxhckxpZ2h0aW5nPgorfCAgICAgICA8c3ZnIGZlU3BvdExpZ2h0PgorfCAgICAgICA8c3ZnIGZlVGlsZT4KK3wgICAgICAgPHN2ZyBmZVR1cmJ1bGVuY2U+Cit8ICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KK3wgICAgICAgPHN2ZyBnbHlwaFJlZj4KK3wgICAgICAgPHN2ZyBsaW5lYXJHcmFkaWVudD4KK3wgICAgICAgPHN2ZyByYWRpYWxHcmFkaWVudD4KK3wgICAgICAgPHN2ZyB0ZXh0UGF0aD4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxCT0RZPjxTVkc+PEFMVEdMWVBIIC8+PEFMVEdMWVBIREVGIC8+PEFMVEdMWVBISVRFTSAvPjxBTklNQVRFQ09MT1IgLz48QU5JTUFURU1PVElPTiAvPjxBTklNQVRFVFJBTlNGT1JNIC8+PENMSVBQQVRIIC8+PEZFQkxFTkQgLz48RkVDT0xPUk1BVFJJWCAvPjxGRUNPTVBPTkVOVFRSQU5TRkVSIC8+PEZFQ09NUE9TSVRFIC8+PEZFQ09OVk9MVkVNQVRSSVggLz48RkVESUZGVVNFTElHSFRJTkcgLz48RkVESVNQTEFDRU1FTlRNQVAgLz48RkVESVNUQU5UTElHSFQgLz48RkVGTE9PRCAvPjxGRUZVTkNBIC8+PEZFRlVOQ0IgLz48RkVGVU5DRyAvPjxGRUZVTkNSIC8+PEZFR0FVU1NJQU5CTFVSIC8+PEZFSU1BR0UgLz48RkVNRVJHRSAvPjxGRU1FUkdFTk9ERSAvPjxGRU1PUlBIT0xPR1kgLz48RkVPRkZTRVQgLz48RkVQT0lOVExJR0hUIC8+PEZFU1BFQ1VMQVJMSUdIVElORyAvPjxGRVNQT1RMSUdIVCAvPjxGRVRJTEUgLz48RkVUVVJCVUxFTkNFIC8+PEZPUkVJR05PQkpFQ1QgLz48R0xZUEhSRUYgLz48TElORUFSR1JBRElFTlQgLz48UkFESUFMR1JBRElFTlQgLz48VEVYVFBBVEggLz48L1NWRz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyBhbHRHbHlwaD4KK3wgICAgICAgPHN2ZyBhbHRHbHlwaERlZj4KK3wgICAgICAgPHN2ZyBhbHRHbHlwaEl0ZW0+Cit8ICAgICAgIDxzdmcgYW5pbWF0ZUNvbG9yPgorfCAgICAgICA8c3ZnIGFuaW1hdGVNb3Rpb24+Cit8ICAgICAgIDxzdmcgYW5pbWF0ZVRyYW5zZm9ybT4KK3wgICAgICAgPHN2ZyBjbGlwUGF0aD4KK3wgICAgICAgPHN2ZyBmZUJsZW5kPgorfCAgICAgICA8c3ZnIGZlQ29sb3JNYXRyaXg+Cit8ICAgICAgIDxzdmcgZmVDb21wb25lbnRUcmFuc2Zlcj4KK3wgICAgICAgPHN2ZyBmZUNvbXBvc2l0ZT4KK3wgICAgICAgPHN2ZyBmZUNvbnZvbHZlTWF0cml4PgorfCAgICAgICA8c3ZnIGZlRGlmZnVzZUxpZ2h0aW5nPgorfCAgICAgICA8c3ZnIGZlRGlzcGxhY2VtZW50TWFwPgorfCAgICAgICA8c3ZnIGZlRGlzdGFudExpZ2h0PgorfCAgICAgICA8c3ZnIGZlRmxvb2Q+Cit8ICAgICAgIDxzdmcgZmVGdW5jQT4KK3wgICAgICAgPHN2ZyBmZUZ1bmNCPgorfCAgICAgICA8c3ZnIGZlRnVuY0c+Cit8ICAgICAgIDxzdmcgZmVGdW5jUj4KK3wgICAgICAgPHN2ZyBmZUdhdXNzaWFuQmx1cj4KK3wgICAgICAgPHN2ZyBmZUltYWdlPgorfCAgICAgICA8c3ZnIGZlTWVyZ2U+Cit8ICAgICAgIDxzdmcgZmVNZXJnZU5vZGU+Cit8ICAgICAgIDxzdmcgZmVNb3JwaG9sb2d5PgorfCAgICAgICA8c3ZnIGZlT2Zmc2V0PgorfCAgICAgICA8c3ZnIGZlUG9pbnRMaWdodD4KK3wgICAgICAgPHN2ZyBmZVNwZWN1bGFyTGlnaHRpbmc+Cit8ICAgICAgIDxzdmcgZmVTcG90TGlnaHQ+Cit8ICAgICAgIDxzdmcgZmVUaWxlPgorfCAgICAgICA8c3ZnIGZlVHVyYnVsZW5jZT4KK3wgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgorfCAgICAgICA8c3ZnIGdseXBoUmVmPgorfCAgICAgICA8c3ZnIGxpbmVhckdyYWRpZW50PgorfCAgICAgICA8c3ZnIHJhZGlhbEdyYWRpZW50PgorfCAgICAgICA8c3ZnIHRleHRQYXRoPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PG1hdGg+PGFsdEdseXBoIC8+PGFsdEdseXBoRGVmIC8+PGFsdEdseXBoSXRlbSAvPjxhbmltYXRlQ29sb3IgLz48YW5pbWF0ZU1vdGlvbiAvPjxhbmltYXRlVHJhbnNmb3JtIC8+PGNsaXBQYXRoIC8+PGZlQmxlbmQgLz48ZmVDb2xvck1hdHJpeCAvPjxmZUNvbXBvbmVudFRyYW5zZmVyIC8+PGZlQ29tcG9zaXRlIC8+PGZlQ29udm9sdmVNYXRyaXggLz48ZmVEaWZmdXNlTGlnaHRpbmcgLz48ZmVEaXNwbGFjZW1lbnRNYXAgLz48ZmVEaXN0YW50TGlnaHQgLz48ZmVGbG9vZCAvPjxmZUZ1bmNBIC8+PGZlRnVuY0IgLz48ZmVGdW5jRyAvPjxmZUZ1bmNSIC8+PGZlR2F1c3NpYW5CbHVyIC8+PGZlSW1hZ2UgLz48ZmVNZXJnZSAvPjxmZU1lcmdlTm9kZSAvPjxmZU1vcnBob2xvZ3kgLz48ZmVPZmZzZXQgLz48ZmVQb2ludExpZ2h0IC8+PGZlU3BlY3VsYXJMaWdodGluZyAvPjxmZVNwb3RMaWdodCAvPjxmZVRpbGUgLz48ZmVUdXJidWxlbmNlIC8+PGZvcmVpZ25PYmplY3QgLz48Z2x5cGhSZWYgLz48bGluZWFyR3JhZGllbnQgLz48cmFkaWFsR3JhZGllbnQgLz48dGV4dFBhdGggLz48L21hdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggYWx0Z2x5cGg+Cit8ICAgICAgIDxtYXRoIGFsdGdseXBoZGVmPgorfCAgICAgICA8bWF0aCBhbHRnbHlwaGl0ZW0+Cit8ICAgICAgIDxtYXRoIGFuaW1hdGVjb2xvcj4KK3wgICAgICAgPG1hdGggYW5pbWF0ZW1vdGlvbj4KK3wgICAgICAgPG1hdGggYW5pbWF0ZXRyYW5zZm9ybT4KK3wgICAgICAgPG1hdGggY2xpcHBhdGg+Cit8ICAgICAgIDxtYXRoIGZlYmxlbmQ+Cit8ICAgICAgIDxtYXRoIGZlY29sb3JtYXRyaXg+Cit8ICAgICAgIDxtYXRoIGZlY29tcG9uZW50dHJhbnNmZXI+Cit8ICAgICAgIDxtYXRoIGZlY29tcG9zaXRlPgorfCAgICAgICA8bWF0aCBmZWNvbnZvbHZlbWF0cml4PgorfCAgICAgICA8bWF0aCBmZWRpZmZ1c2VsaWdodGluZz4KK3wgICAgICAgPG1hdGggZmVkaXNwbGFjZW1lbnRtYXA+Cit8ICAgICAgIDxtYXRoIGZlZGlzdGFudGxpZ2h0PgorfCAgICAgICA8bWF0aCBmZWZsb29kPgorfCAgICAgICA8bWF0aCBmZWZ1bmNhPgorfCAgICAgICA8bWF0aCBmZWZ1bmNiPgorfCAgICAgICA8bWF0aCBmZWZ1bmNnPgorfCAgICAgICA8bWF0aCBmZWZ1bmNyPgorfCAgICAgICA8bWF0aCBmZWdhdXNzaWFuYmx1cj4KK3wgICAgICAgPG1hdGggZmVpbWFnZT4KK3wgICAgICAgPG1hdGggZmVtZXJnZT4KK3wgICAgICAgPG1hdGggZmVtZXJnZW5vZGU+Cit8ICAgICAgIDxtYXRoIGZlbW9ycGhvbG9neT4KK3wgICAgICAgPG1hdGggZmVvZmZzZXQ+Cit8ICAgICAgIDxtYXRoIGZlcG9pbnRsaWdodD4KK3wgICAgICAgPG1hdGggZmVzcGVjdWxhcmxpZ2h0aW5nPgorfCAgICAgICA8bWF0aCBmZXNwb3RsaWdodD4KK3wgICAgICAgPG1hdGggZmV0aWxlPgorfCAgICAgICA8bWF0aCBmZXR1cmJ1bGVuY2U+Cit8ICAgICAgIDxtYXRoIGZvcmVpZ25vYmplY3Q+Cit8ICAgICAgIDxtYXRoIGdseXBocmVmPgorfCAgICAgICA8bWF0aCBsaW5lYXJncmFkaWVudD4KK3wgICAgICAgPG1hdGggcmFkaWFsZ3JhZGllbnQ+Cit8ICAgICAgIDxtYXRoIHRleHRwYXRoPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHN2Zz48c29saWRDb2xvciAvPjwvc3ZnPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIHNvbGlkY29sb3I+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxMi5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxMi5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjMxMDdkMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czEyLmRhdApAQCAtMCwwICsxLDYyIEBACisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHA+Zm9vPG1hdGg+PG10ZXh0PjxpPmJhejwvaT48L210ZXh0Pjxhbm5vdGF0aW9uLXhtbD48c3ZnPjxkZXNjPjxiPmVnZ3M8L2I+PC9kZXNjPjxnPjxmb3JlaWduT2JqZWN0PjxQPnNwYW08VEFCTEU+PHRyPjx0ZD48aW1nPjwvdGQ+PC90YWJsZT48L2ZvcmVpZ25PYmplY3Q+PC9nPjxnPnF1dXg8L2c+PC9zdmc+PC9hbm5vdGF0aW9uLXhtbD48L21hdGg+YmFyCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgICJmb28iCit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbXRleHQ+Cit8ICAgICAgICAgICA8aT4KK3wgICAgICAgICAgICAgImJheiIKK3wgICAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KK3wgICAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgICAgICA8c3ZnIGRlc2M+Cit8ICAgICAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgICAgICAiZWdncyIKK3wgICAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KK3wgICAgICAgICAgICAgICAgIDxwPgorfCAgICAgICAgICAgICAgICAgICAic3BhbSIKK3wgICAgICAgICAgICAgICAgIDx0YWJsZT4KK3wgICAgICAgICAgICAgICAgICAgPHRib2R5PgorfCAgICAgICAgICAgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICAgICAgICAgICAgPGltZz4KK3wgICAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAgICJxdXV4IgorfCAgICAgICAiYmFyIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+Zm9vPG1hdGg+PG10ZXh0PjxpPmJhejwvaT48L210ZXh0Pjxhbm5vdGF0aW9uLXhtbD48c3ZnPjxkZXNjPjxiPmVnZ3M8L2I+PC9kZXNjPjxnPjxmb3JlaWduT2JqZWN0PjxQPnNwYW08VEFCTEU+PHRyPjx0ZD48aW1nPjwvdGQ+PC90YWJsZT48L2ZvcmVpZ25PYmplY3Q+PC9nPjxnPnF1dXg8L2c+PC9zdmc+PC9hbm5vdGF0aW9uLXhtbD48L21hdGg+YmFyCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgImZvbyIKK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG10ZXh0PgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgImJheiIKK3wgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICA8c3ZnIGRlc2M+Cit8ICAgICAgICAgICAgIDxiPgorfCAgICAgICAgICAgICAgICJlZ2dzIgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICAgICAgICAic3BhbSIKK3wgICAgICAgICAgICAgICA8dGFibGU+Cit8ICAgICAgICAgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICAgICAgICAgICA8aW1nPgorfCAgICAgICAgICAgPHN2ZyBnPgorfCAgICAgICAgICAgICAicXV1eCIKK3wgICAgICJiYXIiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxNC5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxNC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg3MTNmOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czE0LmRhdApAQCAtMCwwICsxLDc0IEBACisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHk+PHh5ejphYmM+PC94eXo6YWJjPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx4eXo6YWJjPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHk+PHh5ejphYmM+PC94eXo6YWJjPjxzcGFuPjwvc3Bhbj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8eHl6OmFiYz4KK3wgICAgIDxzcGFuPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGh0bWw+PGh0bWwgYWJjOmRlZj1naD48eHl6OmFiYz48L3h5ejphYmM+CisjZXJyb3JzCisxNTogVW5leHBlY3RlZCBzdGFydCB0YWcgaHRtbAorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICBhYmM6ZGVmPSJnaCIKK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx4eXo6YWJjPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGh0bWwgeG1sOmxhbmc9YmFyPjxodG1sIHhtbDpsYW5nPWZvbz4KKyNlcnJvcnMKKzE1OiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyBodG1sCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIHhtbDpsYW5nPSJiYXIiCit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbCAxMjM9NDU2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICAxMjM9IjQ1NiIKK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxodG1sIDEyMz00NTY+PGh0bWwgNzg5PTAxMj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgMTIzPSI0NTYiCit8ICAgNzg5PSIwMTIiCit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbD48Ym9keSA3ODk9MDEyPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDc4OT0iMDEyIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMTUuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMTUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZTFjMGQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxNS5kYXQKQEAgLTAsMCArMSwyMDggQEAKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48cD48Yj48aT48dT48L3A+IDxwPlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzMSBVbmV4cGVjdGVkIGVuZCB0YWcgKHApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDM2IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8Yj4KK3wgICAgICAgICA8aT4KK3wgICAgICAgICAgIDx1PgorfCAgICAgPGI+Cit8ICAgICAgIDxpPgorfCAgICAgICAgIDx1PgorfCAgICAgICAgICAgIiAiCit8ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICAgIlgiCisKKyNkYXRhCis8cD48Yj48aT48dT48L3A+Cis8cD5YCisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAocCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTYgVW5leHBlY3RlZCBlbmQgdGFnIChwKS4gSWdub3JlZC4KK0xpbmU6IDIgQ29sOiA0IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxiPgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgPHU+Cit8ICAgICA8Yj4KK3wgICAgICAgPGk+Cit8ICAgICAgICAgPHU+Cit8ICAgICAgICAgICAiCisiCit8ICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICAgIlgiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48L2h0bWw+IDxoZWFkPgorI2Vycm9ycworTGluZTogMSBDb2w6IDIyIFVuZXhwZWN0ZWQgZW5kIHRhZyAoaHRtbCkgYWZ0ZXIgdGhlIChpbXBsaWVkKSByb290IGVsZW1lbnQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiAiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48L2JvZHk+PG1ldGE+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjIgVW5leHBlY3RlZCBlbmQgdGFnIChib2R5KSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWV0YT4KKworI2RhdGEKKzxodG1sPjwvaHRtbD48IS0tIGZvbyAtLT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChodG1sKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGh0bWwpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCA8IS0tICBmb28gIC0tPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PC9ib2R5Pjx0aXRsZT5YPC90aXRsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyMiBVbmV4cGVjdGVkIGVuZCB0YWcgKGJvZHkpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIlgiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+IFg8bWV0YT48L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMzAgVW5leHBlY3RlZCBzdGFydCB0YWcgKG1ldGEpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICIgWCIKK3wgICAgIDxtZXRhPgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPiB4PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNCBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICIgeCIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT4geCA8L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDI1IFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiB4ICIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dHI+IHg8L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDI4IFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiB4IgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPlg8c3R5bGU+IDx0cj54IDwvc3R5bGU+IDwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjMgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycyBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiWCIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHN0eWxlPgorfCAgICAgICAgICIgPHRyPnggIgorfCAgICAgICAiICIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxkaXY+PHRhYmxlPjxhPmZvbzwvYT4gPHRyPjx0ZD5iYXI8L3RkPiA8L3RyPjwvdGFibGU+PC9kaXY+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzAgVW5leHBlY3RlZCBzdGFydCB0YWcgKGEpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDM3IFVuZXhwZWN0ZWQgZW5kIHRhZyAoYSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgImZvbyIKK3wgICAgICAgPHRhYmxlPgorfCAgICAgICAgICIgIgorfCAgICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAgICJiYXIiCit8ICAgICAgICAgICAgICIgIgorCisjZGF0YQorPGZyYW1lPjwvZnJhbWU+PC9mcmFtZT48ZnJhbWVzZXQ+PGZyYW1lPjxmcmFtZXNldD48ZnJhbWU+PC9mcmFtZXNldD48bm9mcmFtZXM+PC9mcmFtZXNldD48bm9mcmFtZXM+CisjZXJyb3JzCis2OiBTdGFydCB0YWcgc2VlbiB3aXRob3V0IHNlZWluZyBhIGRvY3R5cGUgZmlyc3QuIEV4cGVjdGVkIOKAnDwhRE9DVFlQRSBodG1sPuKAnS4KKzEzOiBTdHJheSBzdGFydCB0YWcg4oCcZnJhbWXigJ0uCisyMTogU3RyYXkgZW5kIHRhZyDigJxmcmFtZeKAnS4KKzI5OiBTdHJheSBlbmQgdGFnIOKAnGZyYW1l4oCdLgorMzk6IOKAnGZyYW1lc2V04oCdIHN0YXJ0IHRhZyBhZnRlciDigJxib2R54oCdIGFscmVhZHkgb3Blbi4KKzEwNTogRW5kIG9mIGZpbGUgc2VlbiBpbnNpZGUgYW4gW1JdQ0RBVEEgZWxlbWVudC4KKzEwNTogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorWFhYOiBUaGVzZSBlcnJvcnMgYXJlIHdyb25nLCBwbGVhc2UgZml4IG1lIQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KK3wgICAgIDxmcmFtZT4KK3wgICAgIDxmcmFtZXNldD4KK3wgICAgICAgPGZyYW1lPgorfCAgICAgPG5vZnJhbWVzPgorfCAgICAgICAiPC9mcmFtZXNldD48bm9mcmFtZXM+IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PG9iamVjdD48L2h0bWw+CisjZXJyb3JzCisxOiBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZQorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxvYmplY3Q+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxNi5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxNi5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhlZjY2ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czE2LmRhdApAQCAtMCwwICsxLDIyOTkgQEAKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDIzIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+YQorI2Vycm9ycworTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgImEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48LworI2Vycm9ycworTGluZTogMSBDb2w6IDI1IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48L1MKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1MiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwvU0MKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1NDIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48L1NDUgorI2Vycm9ycworTGluZTogMSBDb2w6IDI4IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvU0NSIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48L1NDUkkKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyOSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1NDUkkiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwvU0NSSVAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzMCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1NDUklQIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48L1NDUklQVAorI2Vycm9ycworTGluZTogMSBDb2w6IDMxIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvU0NSSVBUIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48L1NDUklQVCAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzMiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwvcworI2Vycm9ycworTGluZTogMSBDb2w6IDI2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvcyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PC9zYworI2Vycm9ycworTGluZTogMSBDb2w6IDI3IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvc2MiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0Pjwvc2NyCisjZXJyb3JzCitMaW5lOiAxIENvbDogMjggVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPC9zY3IiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0Pjwvc2NyaQorI2Vycm9ycworTGluZTogMSBDb2w6IDI5IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvc2NyaSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PC9zY3JpcAorI2Vycm9ycworTGluZTogMSBDb2w6IDMwIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvc2NyaXAiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0Pjwvc2NyaXB0CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzEgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPC9zY3JpcHQiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0Pjwvc2NyaXB0IAorI2Vycm9ycworTGluZTogMSBDb2w6IDMyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8ISIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCFhCisjZXJyb3JzCitMaW5lOiAxIENvbDogMjYgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCFhIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLWEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS1hIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tCisjZXJyb3JzCitMaW5lOiAxIENvbDogMjcgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLWEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyOCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tYSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyOCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxhCisjZXJyb3JzCitMaW5lOiAxIENvbDogMjkgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxhIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPC8KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPC8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08L3NjcmlwdAorI2Vycm9ycworTGluZTogMSBDb2w6IDM1IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08L3NjcmlwdCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTwvc2NyaXB0IAorI2Vycm9ycworTGluZTogMSBDb2w6IDM2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS0iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08cworI2Vycm9ycworTGluZTogMSBDb2w6IDI5IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08cyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzNCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgCisjZXJyb3JzCitMaW5lOiAxIENvbDogMzUgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzYgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgPGEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzNyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8YSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgPC8KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzNyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8LyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zCisjZXJyb3JzCitMaW5lOiAxIENvbDogMzggVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPC9zIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdAorI2Vycm9ycworTGluZTogMSBDb2w6IDQzIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdGEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0NCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8L3NjcmlwdGEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IDwvc2NyaXB0IAorI2Vycm9ycworTGluZTogMSBDb2w6IDQ0IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0ICIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNDQgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPC9zY3JpcHQ+IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdC8KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0NCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8L3NjcmlwdC8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IDwvc2NyaXB0IDwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0NSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8L3NjcmlwdCA8IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8YQorI2Vycm9ycworTGluZTogMSBDb2w6IDQ2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0IDxhIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8LworI2Vycm9ycworTGluZTogMSBDb2w6IDQ2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0IDwvIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8L3NjcmlwdAorI2Vycm9ycworTGluZTogMSBDb2w6IDUyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0IDwvc2NyaXB0IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8L3NjcmlwdCAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1MyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8L3NjcmlwdCAiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IDwvc2NyaXB0IDwvc2NyaXB0LworI2Vycm9ycworTGluZTogMSBDb2w6IDUzIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0ICIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHQgPC9zY3JpcHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0ICIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgLQorI2Vycm9ycworTGluZTogMSBDb2w6IDM2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IC1hCisjZXJyb3JzCitMaW5lOiAxIENvbDogMzcgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLWEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IC08CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzcgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLTwiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IC0tCisjZXJyb3JzCitMaW5lOiAxIENvbDogMzcgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLS0iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IC0tYQorI2Vycm9ycworTGluZTogMSBDb2w6IDM4IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0tYSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgLS08CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzggVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLS08IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCAtLT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzOCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAtLT4iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IC0tPjwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzOSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAtLT48IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCAtLT48LworI2Vycm9ycworTGluZTogMSBDb2w6IDQwIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0tPjwvIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCAtLT48L3NjcmlwdAorI2Vycm9ycworTGluZTogMSBDb2w6IDQ2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0tPjwvc2NyaXB0IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdCAtLT48L3NjcmlwdCAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0NyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAtLT4iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0IC0tPjwvc2NyaXB0LworI2Vycm9ycworTGluZTogMSBDb2w6IDQ3IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0tPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQgLS0+PC9zY3JpcHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0tPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQ+PFwvc2NyaXB0Pi0tPjwvc2NyaXB0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdD48XC9zY3JpcHQ+LS0+IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdD48L3NjcicrJ2lwdD4tLT48L3NjcmlwdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+PC9zY3InKydpcHQ+LS0+IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdD48L3NjcmlwdD48c2NyaXB0Pjwvc2NyaXB0Pjwvc2NyaXB0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdD48L3NjcmlwdD48c2NyaXB0Pjwvc2NyaXB0PiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tLT48IS0tPC9zY3JpcHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0Pjwvc2NyaXB0PjxzY3JpcHQ+PC9zY3JpcHQ+LS0+PCEtLSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tLSA+PC9zY3JpcHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0Pjwvc2NyaXB0PjxzY3JpcHQ+PC9zY3JpcHQ+LS0gPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tIC0+PC9zY3JpcHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0Pjwvc2NyaXB0PjxzY3JpcHQ+PC9zY3JpcHQ+LSAtPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tIC0gPjwvc2NyaXB0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdD48L3NjcmlwdD48c2NyaXB0Pjwvc2NyaXB0Pi0gLSA+IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNjcmlwdD48IS0tPHNjcmlwdD48L3NjcmlwdD48c2NyaXB0Pjwvc2NyaXB0Pi0+PC9zY3JpcHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0Pjwvc2NyaXB0PjxzY3JpcHQ+PC9zY3JpcHQ+LT4iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyaXB0Pi0tIT48L3NjcmlwdD5YCisjZXJyb3JzCitMaW5lOiAxIENvbDogNDkgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+LS0hPjwvc2NyaXB0PlgiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2NyaXB0PjwhLS08c2NyJysnaXB0Pjwvc2NyaXB0Pi0tPjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDU5IFVuZXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3InKydpcHQ+IgorfCAgIDxib2R5PgorfCAgICAgIi0tPiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3InKydpcHQ+PC9zY3JpcHQ+WAorI2Vycm9ycworTGluZTogMSBDb2w6IDU3IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0Pjwvc2NyJysnaXB0Pjwvc2NyaXB0PlgiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3R5bGU+PCEtLTxzdHlsZT48L3N0eWxlPi0tPjwvc3R5bGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNTIgVW5leHBlY3RlZCBlbmQgdGFnIChzdHlsZSkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgICAgICAiPCEtLTxzdHlsZT4iCit8ICAgPGJvZHk+Cit8ICAgICAiLS0+IgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHN0eWxlPjwhLS08L3N0eWxlPlgKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICI8IS0tIgorfCAgIDxib2R5PgorfCAgICAgIlgiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3R5bGU+PCEtLS4uLjwvc3R5bGU+Li4uLS0+PC9zdHlsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1MSBVbmV4cGVjdGVkIGVuZCB0YWcgKHN0eWxlKS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICI8IS0tLi4uIgorfCAgIDxib2R5PgorfCAgICAgIi4uLi0tPiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzdHlsZT48IS0tPGJyPjxodG1sIHhtbG5zOnY9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIj48IS0tW2lmICFtc29dPjxzdHlsZT48L3N0eWxlPlgKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICI8IS0tPGJyPjxodG1sIHhtbG5zOnY9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIj48IS0tW2lmICFtc29dPjxzdHlsZT4iCit8ICAgPGJvZHk+Cit8ICAgICAiWCIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzdHlsZT48IS0tLi4uPHN0eWxlPjwhLS0uLi4tLSE+PC9zdHlsZT4tLT48L3N0eWxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDY2IFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3R5bGUpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzdHlsZT4KK3wgICAgICAgIjwhLS0uLi48c3R5bGU+PCEtLS4uLi0tIT4iCit8ICAgPGJvZHk+Cit8ICAgICAiLS0+IgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHN0eWxlPjwhLS0uLi48L3N0eWxlPjwhLS0gLS0+PHN0eWxlPkBpbXBvcnQgLi4uPC9zdHlsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICI8IS0tLi4uIgorfCAgICAgPCEtLSAgIC0tPgorfCAgICAgPHN0eWxlPgorfCAgICAgICAiQGltcG9ydCAuLi4iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3R5bGU+Li4uPHN0eWxlPjwhLS0uLi48L3N0eWxlPjwhLS0gLS0+PC9zdHlsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2MyBVbmV4cGVjdGVkIGVuZCB0YWcgKHN0eWxlKS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICIuLi48c3R5bGU+PCEtLS4uLiIKK3wgICAgIDwhLS0gICAtLT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzdHlsZT4uLi48IS0tW2lmIElFXT48c3R5bGU+Li4uPC9zdHlsZT5YCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgICAgICAiLi4uPCEtLVtpZiBJRV0+PHN0eWxlPi4uLiIKK3wgICA8Ym9keT4KK3wgICAgICJYIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRpdGxlPjwhLS08dGl0bGU+PC90aXRsZT4tLT48L3RpdGxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDUyIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGl0bGUpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIjwhLS08dGl0bGU+IgorfCAgIDxib2R5PgorfCAgICAgIi0tPiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0aXRsZT4mbHQ7L3RpdGxlPjwvdGl0bGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRpdGxlPgorfCAgICAgICAiPC90aXRsZT4iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGl0bGU+Zm9vL3RpdGxlPjxsaW5rPjwvaGVhZD48Ym9keT5YCisjZXJyb3JzCitMaW5lOiAxIENvbDogNTIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAodGl0bGUpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgImZvby90aXRsZT48bGluaz48L2hlYWQ+PGJvZHk+WCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxub3NjcmlwdD48IS0tPG5vc2NyaXB0Pjwvbm9zY3JpcHQ+LS0+PC9ub3NjcmlwdD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2NCBVbmV4cGVjdGVkIGVuZCB0YWcgKG5vc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8bm9zY3JpcHQ+Cit8ICAgICAgICI8IS0tPG5vc2NyaXB0PiIKK3wgICA8Ym9keT4KK3wgICAgICItLT4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48bm9zY3JpcHQ+PCEtLTwvbm9zY3JpcHQ+WDxub3NjcmlwdD4tLT48L25vc2NyaXB0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxub3NjcmlwdD4KK3wgICAgICAgIjwhLS0iCit8ICAgPGJvZHk+Cit8ICAgICAiWCIKK3wgICAgIDxub3NjcmlwdD4KK3wgICAgICAgIi0tPiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxub3NjcmlwdD48aWZyYW1lPjwvbm9zY3JpcHQ+WAorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxub3NjcmlwdD4KK3wgICAgICAgIjxpZnJhbWU+IgorfCAgIDxib2R5PgorfCAgICAgIlgiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48bm9mcmFtZXM+PCEtLTxub2ZyYW1lcz48L25vZnJhbWVzPi0tPjwvbm9mcmFtZXM+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNjQgVW5leHBlY3RlZCBlbmQgdGFnIChub2ZyYW1lcykuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPG5vZnJhbWVzPgorfCAgICAgICAiPCEtLTxub2ZyYW1lcz4iCit8ICAgPGJvZHk+Cit8ICAgICAiLS0+IgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG5vZnJhbWVzPjxib2R5PjxzY3JpcHQ+PCEtLS4uLjwvc2NyaXB0PjwvYm9keT48L25vZnJhbWVzPjwvaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8bm9mcmFtZXM+Cit8ICAgICAgICI8Ym9keT48c2NyaXB0PjwhLS0uLi48L3NjcmlwdD48L2JvZHk+IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRleHRhcmVhPjwhLS08dGV4dGFyZWE+PC90ZXh0YXJlYT4tLT48L3RleHRhcmVhPgorI2Vycm9ycworTGluZTogMSBDb2w6IDY0IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGV4dGFyZWEpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZXh0YXJlYT4KK3wgICAgICAgIjwhLS08dGV4dGFyZWE+IgorfCAgICAgIi0tPiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0ZXh0YXJlYT4mbHQ7L3RleHRhcmVhPjwvdGV4dGFyZWE+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRleHRhcmVhPgorfCAgICAgICAiPC90ZXh0YXJlYT4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGV4dGFyZWE+Jmx0OzwvdGV4dGFyZWE+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRleHRhcmVhPgorfCAgICAgICAiPCIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0ZXh0YXJlYT5hJmx0O2I8L3RleHRhcmVhPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZXh0YXJlYT4KK3wgICAgICAgImE8YiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxpZnJhbWU+PCEtLTxpZnJhbWU+PC9pZnJhbWU+LS0+PC9pZnJhbWU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNTYgVW5leHBlY3RlZCBlbmQgdGFnIChpZnJhbWUpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxpZnJhbWU+Cit8ICAgICAgICI8IS0tPGlmcmFtZT4iCit8ICAgICAiLS0+IgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGlmcmFtZT4uLi48IS0tWC0+Li4uPCEtLS9YLT4uLi48L2lmcmFtZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aWZyYW1lPgorfCAgICAgICAiLi4uPCEtLVgtPi4uLjwhLS0vWC0+Li4uIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHhtcD48IS0tPHhtcD48L3htcD4tLT48L3htcD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0NCBVbmV4cGVjdGVkIGVuZCB0YWcgKHhtcCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHhtcD4KK3wgICAgICAgIjwhLS08eG1wPiIKK3wgICAgICItLT4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48bm9lbWJlZD48IS0tPG5vZW1iZWQ+PC9ub2VtYmVkPi0tPjwvbm9lbWJlZD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2MCBVbmV4cGVjdGVkIGVuZCB0YWcgKG5vZW1iZWQpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxub2VtYmVkPgorfCAgICAgICAiPCEtLTxub2VtYmVkPiIKK3wgICAgICItLT4iCisKKyNkYXRhCis8c2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+YQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogOSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgImEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDkgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48LworI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8LyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9TCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxMSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvUyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9TQworI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1NDIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48L1NDUgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTMgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1NDUiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9TQ1JJCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvU0NSSSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9TQ1JJUAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTUgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1NDUklQIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48L1NDUklQVAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTYgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L1NDUklQVCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9TQ1JJUFQgCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9zCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxMSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvcyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9zYworI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L3NjIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48L3NjcgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTMgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L3NjciIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9zY3JpCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwvc2NyaSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9zY3JpcAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTUgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L3NjcmlwIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48L3NjcmlwdAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTYgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8L3NjcmlwdCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PC9zY3JpcHQgCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNyBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhYQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTEgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IWEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTEgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLWEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtYSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tYQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTMgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tYSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEzIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTwiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08YQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTQgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPGEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08LworI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTQgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPC8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08L3NjcmlwdAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPC9zY3JpcHQiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08L3NjcmlwdCAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIxIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08cyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE5IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IDwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIxIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgPGEKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPGEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IDwvCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyMiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCA8L3MKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIzIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPC9zIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjggVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8L3NjcmlwdCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHRhCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyOSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0YSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHQgCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyOSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0ICIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyOSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0PiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHQvCisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyOSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0LyIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHQgPAorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzAgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8L3NjcmlwdCA8IgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8YQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzEgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCA8L3NjcmlwdCA8YSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgPC9zY3JpcHQgPC8KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDMxIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPC9zY3JpcHQgPC8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IDwvc2NyaXB0IDwvc2NyaXB0CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzOCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0IDwvc2NyaXB0IgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8L3NjcmlwdCAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDM4IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPC9zY3JpcHQgIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8L3NjcmlwdC8KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDM4IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgPC9zY3JpcHQgIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCA8L3NjcmlwdCA8L3NjcmlwdD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IDwvc2NyaXB0ICIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgLQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjEgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAtIgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCAtYQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAtYSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgLS0KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLS0iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IC0tYQorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjMgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAtLWEiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IC0tPgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjMgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc2NyaXB0KS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdCAtLT4iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IC0tPjwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLS0+PCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQgLS0+PC8KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI1IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLS0+PC8iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0IC0tPjwvc2NyaXB0CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzMSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0tPjwvc2NyaXB0IgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCAtLT48L3NjcmlwdCAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDMyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLS0+IgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCAtLT48L3NjcmlwdC8KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDMyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQgLS0+IgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdCAtLT48L3NjcmlwdD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0IC0tPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQ+PFwvc2NyaXB0Pi0tPjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+PFwvc2NyaXB0Pi0tPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3InKydpcHQ+LS0+PC9zY3JpcHQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdD48L3NjcicrJ2lwdD4tLT4iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0Pjwvc2NyaXB0PjxzY3JpcHQ+PC9zY3JpcHQ+PC9zY3JpcHQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdD48L3NjcmlwdD48c2NyaXB0Pjwvc2NyaXB0PiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tLT48IS0tPC9zY3JpcHQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc2NyaXB0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICI8IS0tPHNjcmlwdD48L3NjcmlwdD48c2NyaXB0Pjwvc2NyaXB0Pi0tPjwhLS0iCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0Pjwvc2NyaXB0PjxzY3JpcHQ+PC9zY3JpcHQ+LS0gPjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tLSA+IgorfCAgIDxib2R5PgorCisjZGF0YQorPHNjcmlwdD48IS0tPHNjcmlwdD48L3NjcmlwdD48c2NyaXB0Pjwvc2NyaXB0Pi0gLT48L3NjcmlwdD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyaXB0Pjwvc2NyaXB0PjxzY3JpcHQ+PC9zY3JpcHQ+LSAtPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tIC0gPjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tIC0gPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tPjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+PC9zY3JpcHQ+PHNjcmlwdD48L3NjcmlwdD4tPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzY3JpcHQ+PCEtLTxzY3JpcHQ+LS0hPjwvc2NyaXB0PlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDM0IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+LS0hPjwvc2NyaXB0PlgiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyJysnaXB0Pjwvc2NyaXB0Pi0tPjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNDQgVW5leHBlY3RlZCBlbmQgdGFnIChzY3JpcHQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIjwhLS08c2NyJysnaXB0PiIKK3wgICA8Ym9keT4KK3wgICAgICItLT4iCisKKyNkYXRhCis8c2NyaXB0PjwhLS08c2NyaXB0Pjwvc2NyJysnaXB0Pjwvc2NyaXB0PlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDQyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPCEtLTxzY3JpcHQ+PC9zY3InKydpcHQ+PC9zY3JpcHQ+WCIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzdHlsZT48IS0tPHN0eWxlPjwvc3R5bGU+LS0+PC9zdHlsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzdHlsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzcgVW5leHBlY3RlZCBlbmQgdGFnIChzdHlsZSkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICI8IS0tPHN0eWxlPiIKK3wgICA8Ym9keT4KK3wgICAgICItLT4iCisKKyNkYXRhCis8c3R5bGU+PCEtLTwvc3R5bGU+WAorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHN0eWxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzdHlsZT4KK3wgICAgICAgIjwhLS0iCit8ICAgPGJvZHk+Cit8ICAgICAiWCIKKworI2RhdGEKKzxzdHlsZT48IS0tLi4uPC9zdHlsZT4uLi4tLT48L3N0eWxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHN0eWxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzNiBVbmV4cGVjdGVkIGVuZCB0YWcgKHN0eWxlKS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzdHlsZT4KK3wgICAgICAgIjwhLS0uLi4iCit8ICAgPGJvZHk+Cit8ICAgICAiLi4uLS0+IgorCisjZGF0YQorPHN0eWxlPjwhLS08YnI+PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiPjwhLS1baWYgIW1zb10+PHN0eWxlPjwvc3R5bGU+WAorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHN0eWxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzdHlsZT4KK3wgICAgICAgIjwhLS08YnI+PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiPjwhLS1baWYgIW1zb10+PHN0eWxlPiIKK3wgICA8Ym9keT4KK3wgICAgICJYIgorCisjZGF0YQorPHN0eWxlPjwhLS0uLi48c3R5bGU+PCEtLS4uLi0tIT48L3N0eWxlPi0tPjwvc3R5bGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc3R5bGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDUxIFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3R5bGUpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgICAgICAiPCEtLS4uLjxzdHlsZT48IS0tLi4uLS0hPiIKK3wgICA8Ym9keT4KK3wgICAgICItLT4iCisKKyNkYXRhCis8c3R5bGU+PCEtLS4uLjwvc3R5bGU+PCEtLSAtLT48c3R5bGU+QGltcG9ydCAuLi48L3N0eWxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHN0eWxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzdHlsZT4KK3wgICAgICAgIjwhLS0uLi4iCit8ICAgICA8IS0tICAgLS0+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICJAaW1wb3J0IC4uLiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxzdHlsZT4uLi48c3R5bGU+PCEtLS4uLjwvc3R5bGU+PCEtLSAtLT48L3N0eWxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHN0eWxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiA0OCBVbmV4cGVjdGVkIGVuZCB0YWcgKHN0eWxlKS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzdHlsZT4KK3wgICAgICAgIi4uLjxzdHlsZT48IS0tLi4uIgorfCAgICAgPCEtLSAgIC0tPgorfCAgIDxib2R5PgorCisjZGF0YQorPHN0eWxlPi4uLjwhLS1baWYgSUVdPjxzdHlsZT4uLi48L3N0eWxlPlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzdHlsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICIuLi48IS0tW2lmIElFXT48c3R5bGU+Li4uIgorfCAgIDxib2R5PgorfCAgICAgIlgiCisKKyNkYXRhCis8dGl0bGU+PCEtLTx0aXRsZT48L3RpdGxlPi0tPjwvdGl0bGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGl0bGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDM3IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGl0bGUpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRpdGxlPgorfCAgICAgICAiPCEtLTx0aXRsZT4iCit8ICAgPGJvZHk+Cit8ICAgICAiLS0+IgorCisjZGF0YQorPHRpdGxlPiZsdDsvdGl0bGU+PC90aXRsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0aXRsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICI8L3RpdGxlPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzx0aXRsZT5mb28vdGl0bGU+PGxpbms+PC9oZWFkPjxib2R5PlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0aXRsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzcgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAodGl0bGUpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRpdGxlPgorfCAgICAgICAiZm9vL3RpdGxlPjxsaW5rPjwvaGVhZD48Ym9keT5YIgorfCAgIDxib2R5PgorCisjZGF0YQorPG5vc2NyaXB0PjwhLS08bm9zY3JpcHQ+PC9ub3NjcmlwdD4tLT48L25vc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChub3NjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNDkgVW5leHBlY3RlZCBlbmQgdGFnIChub3NjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8bm9zY3JpcHQ+Cit8ICAgICAgICI8IS0tPG5vc2NyaXB0PiIKK3wgICA8Ym9keT4KK3wgICAgICItLT4iCisKKyNkYXRhCis8bm9zY3JpcHQ+PCEtLTwvbm9zY3JpcHQ+WDxub3NjcmlwdD4tLT48L25vc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChub3NjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8bm9zY3JpcHQ+Cit8ICAgICAgICI8IS0tIgorfCAgIDxib2R5PgorfCAgICAgIlgiCit8ICAgICA8bm9zY3JpcHQ+Cit8ICAgICAgICItLT4iCisKKyNkYXRhCis8bm9zY3JpcHQ+PGlmcmFtZT48L25vc2NyaXB0PlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobm9zY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPG5vc2NyaXB0PgorfCAgICAgICAiPGlmcmFtZT4iCit8ICAgPGJvZHk+Cit8ICAgICAiWCIKKworI2RhdGEKKzxub2ZyYW1lcz48IS0tPG5vZnJhbWVzPjwvbm9mcmFtZXM+LS0+PC9ub2ZyYW1lcz4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobm9mcmFtZXMpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDQ5IFVuZXhwZWN0ZWQgZW5kIHRhZyAobm9mcmFtZXMpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPG5vZnJhbWVzPgorfCAgICAgICAiPCEtLTxub2ZyYW1lcz4iCit8ICAgPGJvZHk+Cit8ICAgICAiLS0+IgorCisjZGF0YQorPG5vZnJhbWVzPjxib2R5PjxzY3JpcHQ+PCEtLS4uLjwvc2NyaXB0PjwvYm9keT48L25vZnJhbWVzPjwvaHRtbD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobm9mcmFtZXMpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPG5vZnJhbWVzPgorfCAgICAgICAiPGJvZHk+PHNjcmlwdD48IS0tLi4uPC9zY3JpcHQ+PC9ib2R5PiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzx0ZXh0YXJlYT48IS0tPHRleHRhcmVhPjwvdGV4dGFyZWE+LS0+PC90ZXh0YXJlYT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGV4dGFyZWEpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDQ5IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGV4dGFyZWEpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRleHRhcmVhPgorfCAgICAgICAiPCEtLTx0ZXh0YXJlYT4iCit8ICAgICAiLS0+IgorCisjZGF0YQorPHRleHRhcmVhPiZsdDsvdGV4dGFyZWE+PC90ZXh0YXJlYT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGV4dGFyZWEpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRleHRhcmVhPgorfCAgICAgICAiPC90ZXh0YXJlYT4iCisKKyNkYXRhCis8aWZyYW1lPjwhLS08aWZyYW1lPjwvaWZyYW1lPi0tPjwvaWZyYW1lPgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKGlmcmFtZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNDEgVW5leHBlY3RlZCBlbmQgdGFnIChpZnJhbWUpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGlmcmFtZT4KK3wgICAgICAgIjwhLS08aWZyYW1lPiIKK3wgICAgICItLT4iCisKKyNkYXRhCis8aWZyYW1lPi4uLjwhLS1YLT4uLi48IS0tL1gtPi4uLjwvaWZyYW1lPgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBzdGFydCB0YWcgKGlmcmFtZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aWZyYW1lPgorfCAgICAgICAiLi4uPCEtLVgtPi4uLjwhLS0vWC0+Li4uIgorCisjZGF0YQorPHhtcD48IS0tPHhtcD48L3htcD4tLT48L3htcD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh4bXApLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI5IFVuZXhwZWN0ZWQgZW5kIHRhZyAoeG1wKS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx4bXA+Cit8ICAgICAgICI8IS0tPHhtcD4iCit8ICAgICAiLS0+IgorCisjZGF0YQorPG5vZW1iZWQ+PCEtLTxub2VtYmVkPjwvbm9lbWJlZD4tLT48L25vZW1iZWQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobm9lbWJlZCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogNDUgVW5leHBlY3RlZCBlbmQgdGFnIChub2VtYmVkKS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxub2VtYmVkPgorfCAgICAgICAiPCEtLTxub2VtYmVkPiIKK3wgICAgICItLT4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+CisKKyNlcnJvcnMKK0xpbmUgMiBDb2wgMCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWJsZSBjb250ZW50LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgIgorIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjx0ZD48c3Bhbj48Zm9udD48L3NwYW4+PHNwYW4+CisjZXJyb3JzCitMaW5lIDEgQ29sIDI2IFVuZXhwZWN0ZWQgdGFibGUgY2VsbCBzdGFydCB0YWcgKHRkKSBpbiB0aGUgdGFibGUgYm9keSBwaGFzZS4KK0xpbmUgMSBDb2wgNDUgVW5leHBlY3RlZCBlbmQgdGFnIChzcGFuKS4KK0xpbmUgMSBDb2wgNTEgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICAgICAgICA8Zm9udD4KK3wgICAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgICAgPHNwYW4+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48Zm9ybT48dGFibGU+PC9mb3JtPjxmb3JtPjwvdGFibGU+PC9mb3JtPgorI2Vycm9ycworMzU6IFN0cmF5IGVuZCB0YWcg4oCcZm9ybeKAnS4KKzQxOiBTdGFydCB0YWcg4oCcZm9ybeKAnSBzZWVuIGluIOKAnHRhYmxl4oCdLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb3JtPgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgPGZvcm0+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxNy5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxNy5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I1NTVmOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czE3LmRhdApAQCAtMCwwICsxLDE1MyBAQAorI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dGJvZHk+PHNlbGVjdD48dHI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dHI+PHNlbGVjdD48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dHI+PHRkPjxzZWxlY3Q+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPHNlbGVjdD4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dHI+PHRoPjxzZWxlY3Q+PHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0aD4KK3wgICAgICAgICAgICAgPHNlbGVjdD4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48Y2FwdGlvbj48c2VsZWN0Pjx0cj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjYXB0aW9uPgorfCAgICAgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2VsZWN0Pjx0cj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNlbGVjdD48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzZWxlY3Q+PHRoPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2VsZWN0Pjx0Ym9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNlbGVjdD48dGhlYWQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzZWxlY3Q+PHRmb290PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2VsZWN0PjxjYXB0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHRyPjwvdGFibGU+YQorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICJhIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMTguZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMTguZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4MGUxZjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxOC5kYXQKQEAgLTAsMCArMSwyNjkgQEAKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cGxhaW50ZXh0PjwvcGxhaW50ZXh0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwbGFpbnRleHQ+Cit8ICAgICAgICI8L3BsYWludGV4dD4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHBsYWludGV4dD48L3BsYWludGV4dD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cGxhaW50ZXh0PgorfCAgICAgICAiPC9wbGFpbnRleHQ+IgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjx0Ym9keT48cGxhaW50ZXh0PjwvcGxhaW50ZXh0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwbGFpbnRleHQ+Cit8ICAgICAgICI8L3BsYWludGV4dD4iCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dGJvZHk+PHRyPjxwbGFpbnRleHQ+PC9wbGFpbnRleHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHBsYWludGV4dD4KK3wgICAgICAgIjwvcGxhaW50ZXh0PiIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dGJvZHk+PHRyPjxwbGFpbnRleHQ+PC9wbGFpbnRleHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHBsYWludGV4dD4KK3wgICAgICAgIjwvcGxhaW50ZXh0PiIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dGQ+PHBsYWludGV4dD48L3BsYWludGV4dD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxwbGFpbnRleHQ+Cit8ICAgICAgICAgICAgICAgIjwvcGxhaW50ZXh0PiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48Y2FwdGlvbj48cGxhaW50ZXh0PjwvcGxhaW50ZXh0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHBsYWludGV4dD4KK3wgICAgICAgICAgICI8L3BsYWludGV4dD4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHRyPjxzdHlsZT48L3NjcmlwdD48L3N0eWxlPmFiYworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJhYmMiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8c3R5bGU+Cit8ICAgICAgICAgICAgICI8L3NjcmlwdD4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHRyPjxzY3JpcHQ+PC9zdHlsZT48L3NjcmlwdD5hYmMKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiYWJjIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHNjcmlwdD4KK3wgICAgICAgICAgICAgIjwvc3R5bGU+IgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjxjYXB0aW9uPjxzdHlsZT48L3NjcmlwdD48L3N0eWxlPmFiYworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPHN0eWxlPgorfCAgICAgICAgICAgIjwvc2NyaXB0PiIKK3wgICAgICAgICAiYWJjIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjx0ZD48c3R5bGU+PC9zY3JpcHQ+PC9zdHlsZT5hYmMKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxzdHlsZT4KK3wgICAgICAgICAgICAgICAiPC9zY3JpcHQ+IgorfCAgICAgICAgICAgICAiYWJjIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNlbGVjdD48c2NyaXB0Pjwvc3R5bGU+PC9zY3JpcHQ+YWJjCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHNjcmlwdD4KK3wgICAgICAgICAiPC9zdHlsZT4iCit8ICAgICAgICJhYmMiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHNlbGVjdD48c2NyaXB0Pjwvc3R5bGU+PC9zY3JpcHQ+YWJjCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPHNjcmlwdD4KK3wgICAgICAgICAiPC9zdHlsZT4iCit8ICAgICAgICJhYmMiCit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHRyPjxzZWxlY3Q+PHNjcmlwdD48L3N0eWxlPjwvc2NyaXB0PmFiYworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxzY3JpcHQ+Cit8ICAgICAgICAgIjwvc3R5bGU+IgorfCAgICAgICAiYWJjIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGZyYW1lc2V0PjwvZnJhbWVzZXQ+PG5vZnJhbWVzPmFiYworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgPG5vZnJhbWVzPgorfCAgICAgImFiYyIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxmcmFtZXNldD48L2ZyYW1lc2V0Pjxub2ZyYW1lcz5hYmM8L25vZnJhbWVzPjwhLS1hYmMtLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgIDxub2ZyYW1lcz4KK3wgICAgICJhYmMiCit8ICAgPCEtLSBhYmMgLS0+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48ZnJhbWVzZXQ+PC9mcmFtZXNldD48L2h0bWw+PG5vZnJhbWVzPmFiYworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgPG5vZnJhbWVzPgorfCAgICAgImFiYyIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxmcmFtZXNldD48L2ZyYW1lc2V0PjwvaHRtbD48bm9mcmFtZXM+YWJjPC9ub2ZyYW1lcz48IS0tYWJjLS0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KK3wgICA8bm9mcmFtZXM+Cit8ICAgICAiYWJjIgorfCA8IS0tIGFiYyAtLT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48dHI+PC90Ym9keT48dGZvb3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICA8dGZvb3Q+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHRkPjxzdmc+PC9zdmc+YWJjPHRkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICAgICAgICJhYmMiCit8ICAgICAgICAgICA8dGQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgzNTE3NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czE5LmRhdApAQCAtMCwwICsxLDEyNDkgQEAKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48bWF0aD48bW4gRGVmaW5pdGlvblVybD0iZm9vIj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtbj4KK3wgICAgICAgICBkZWZpbml0aW9uVVJMPSJmb28iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aHRtbD48L3A+PCEtLWZvby0tPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8IS0tIGZvbyAtLT4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxoZWFkPjwvaGVhZD48L3A+PCEtLWZvby0tPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8IS0tIGZvbyAtLT4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxib2R5PjxwPjxwcmU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICA8cHJlPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGJvZHk+PHA+PGxpc3Rpbmc+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICA8bGlzdGluZz4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxwbGFpbnRleHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICA8cGxhaW50ZXh0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PGgxPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgPGgxPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGZvcm0+PGlzaW5kZXg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvcm0+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aXNpbmRleCBhY3Rpb249IlBPU1QiPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb3JtPgorfCAgICAgICBhY3Rpb249IlBPU1QiCit8ICAgICAgIDxocj4KK3wgICAgICAgPGxhYmVsPgorfCAgICAgICAgICJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiCit8ICAgICAgICAgPGlucHV0PgorfCAgICAgICAgICAgbmFtZT0iaXNpbmRleCIKK3wgICAgICAgPGhyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGlzaW5kZXggcHJvbXB0PSJ0aGlzIGlzIGlzaW5kZXgiPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb3JtPgorfCAgICAgICA8aHI+Cit8ICAgICAgIDxsYWJlbD4KK3wgICAgICAgICAidGhpcyBpcyBpc2luZGV4IgorfCAgICAgICAgIDxpbnB1dD4KK3wgICAgICAgICAgIG5hbWU9ImlzaW5kZXgiCit8ICAgICAgIDxocj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxpc2luZGV4IHR5cGU9ImhpZGRlbiI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvcm0+Cit8ICAgICAgIDxocj4KK3wgICAgICAgPGxhYmVsPgorfCAgICAgICAgICJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiCit8ICAgICAgICAgPGlucHV0PgorfCAgICAgICAgICAgbmFtZT0iaXNpbmRleCIKK3wgICAgICAgICAgIHR5cGU9ImhpZGRlbiIKK3wgICAgICAgPGhyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGlzaW5kZXggbmFtZT0iZm9vIj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Zm9ybT4KK3wgICAgICAgPGhyPgorfCAgICAgICA8bGFiZWw+Cit8ICAgICAgICAgIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIKK3wgICAgICAgICA8aW5wdXQ+Cit8ICAgICAgICAgICBuYW1lPSJpc2luZGV4IgorfCAgICAgICA8aHI+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cnVieT48cD48cnA+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHJ1Ynk+Cit8ICAgICAgIDxwPgorfCAgICAgICA8cnA+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cnVieT48ZGl2PjxzcGFuPjxycD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cnVieT4KK3wgICAgICAgPGRpdj4KK3wgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICAgIDxycD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxydWJ5PjxkaXY+PHA+PHJwPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxydWJ5PgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgIDxwPgorfCAgICAgICAgIDxycD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxydWJ5PjxwPjxydD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cnVieT4KK3wgICAgICAgPHA+Cit8ICAgICAgIDxydD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxydWJ5PjxkaXY+PHNwYW4+PHJ0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxydWJ5PgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgIDxzcGFuPgorfCAgICAgICAgICAgPHJ0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHJ1Ynk+PGRpdj48cD48cnQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHJ1Ynk+Cit8ICAgICAgIDxkaXY+Cit8ICAgICAgICAgPHA+Cit8ICAgICAgICAgPHJ0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG1hdGgvPjxmb28+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgIDxmb28+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3ZnLz48Zm9vPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgPGZvbz4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxkaXY+PC9ib2R5PjwhLS1mb28tLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgIDwhLS0gZm9vIC0tPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGgxPjxkaXY+PGgzPjxzcGFuPjwvaDE+Zm9vCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGgxPgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgIDxoMz4KK3wgICAgICAgICAgIDxzcGFuPgorfCAgICAgICAgICJmb28iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48L2gzPmZvbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICAiZm9vIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGgzPjxsaT5hYmM8L2gyPmZvbworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxoMz4KK3wgICAgICAgPGxpPgorfCAgICAgICAgICJhYmMiCit8ICAgICAiZm9vIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPmFiYzwhLS1mb28tLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiYWJjIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8IS0tIGZvbyAtLT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT4gIDwhLS1mb28tLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgICIgICIKK3wgICAgICAgPCEtLSBmb28gLS0+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+IGIgPCEtLWZvby0tPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICIgYiAiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDwhLS0gZm9vIC0tPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNlbGVjdD48b3B0aW9uPjxvcHRpb24+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzZWxlY3Q+PG9wdGlvbj48L29wdGdyb3VwPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2VsZWN0PjxvcHRpb24+PC9vcHRncm91cD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgICA8b3B0aW9uPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGRkPjxvcHRncm91cD48ZGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRkPgorfCAgICAgICA8b3B0Z3JvdXA+Cit8ICAgICA8ZGQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bWk+PHA+PGgxPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICA8aDE+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bW8+PHA+PGgxPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1vPgorfCAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICA8aDE+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bW4+PHA+PGgxPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1uPgorfCAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICA8aDE+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bXM+PHA+PGgxPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG1zPgorfCAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICA8aDE+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48bWF0aD48bXRleHQ+PHA+PGgxPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgIDxtYXRoIG10ZXh0PgorfCAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICA8aDE+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48ZnJhbWVzZXQ+PC9ub2ZyYW1lcz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGh0bWwgYz1kPjxib2R5PjwvaHRtbD48aHRtbCBhPWI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIGE9ImIiCit8ICAgYz0iZCIKK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxodG1sIGM9ZD48ZnJhbWVzZXQ+PC9mcmFtZXNldD48L2h0bWw+PGh0bWwgYT1iPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICBhPSJiIgorfCAgIGM9ImQiCit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGZyYW1lc2V0PjwvZnJhbWVzZXQ+PC9odG1sPjwhLS1mb28tLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCA8IS0tIGZvbyAtLT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxodG1sPjxmcmFtZXNldD48L2ZyYW1lc2V0PjwvaHRtbD4gIAorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgIiAgIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGZyYW1lc2V0PjwvZnJhbWVzZXQ+PC9odG1sPmFiYworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aHRtbD48ZnJhbWVzZXQ+PC9mcmFtZXNldD48L2h0bWw+PHA+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxodG1sPjxmcmFtZXNldD48L2ZyYW1lc2V0PjwvaHRtbD48L3A+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KKworI2RhdGEKKzxodG1sPjxmcmFtZXNldD48L2ZyYW1lc2V0PjwvaHRtbD48IWRvY3R5cGUgaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48Ym9keT48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PGZyYW1lc2V0PjxmcmFtZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPGZyYW1lPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+YTxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgImEiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD4gPGZyYW1lc2V0PjxmcmFtZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPGZyYW1lPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHByZT48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHByZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxsaXN0aW5nPjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bGlzdGluZz4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxsaT48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGxpPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGRkPjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48ZHQ+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkdD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxidXR0b24+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxidXR0b24+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48YXBwbGV0PjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YXBwbGV0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG1hcnF1ZWU+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXJxdWVlPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG9iamVjdD48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG9iamVjdD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGFyZWE+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhcmVhPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGJhc2Vmb250PjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8YmFzZWZvbnQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGJnc291bmQ+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxiZ3NvdW5kPgorfCAgIDxmcmFtZXNldD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxicj48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGJyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGVtYmVkPjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZW1iZWQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aW1nPjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aW1nPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGlucHV0PjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aW5wdXQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48a2V5Z2VuPjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8a2V5Z2VuPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHdicj48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHdicj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxocj48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGhyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRleHRhcmVhPjwvdGV4dGFyZWE+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZXh0YXJlYT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx4bXA+PC94bXA+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx4bXA+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aWZyYW1lPjwvaWZyYW1lPjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aWZyYW1lPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNlbGVjdD48L3NlbGVjdD48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzdmc+PC9zdmc+PGZyYW1lc2V0PjxmcmFtZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPGZyYW1lPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG1hdGg+PC9tYXRoPjxmcmFtZXNldD48ZnJhbWU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KK3wgICAgIDxmcmFtZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxzdmc+PGZvcmVpZ25PYmplY3Q+PGRpdj4gPGZyYW1lc2V0PjxmcmFtZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPGZyYW1lPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHN2Zz5hPC9zdmc+PGZyYW1lc2V0PjxmcmFtZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgImEiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3ZnPiA8L3N2Zz48ZnJhbWVzZXQ+PGZyYW1lPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgICA8ZnJhbWU+CisKKyNkYXRhCis8aHRtbD5hYWE8ZnJhbWVzZXQ+PC9mcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJhYWEiCisKKyNkYXRhCis8aHRtbD4gYSA8ZnJhbWVzZXQ+PC9mcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJhICIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxkaXY+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48ZGl2Pjxib2R5PjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PG1hdGg+PC9wPmEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPG1hdGggbWF0aD4KK3wgICAgICJhIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PG1hdGg+PG1uPjxzcGFuPjwvcD5hCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgPG1hdGggbW4+Cit8ICAgICAgICAgICA8c3Bhbj4KK3wgICAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICAgICJhIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG1hdGg+PC9odG1sPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48bWV0YSBjaGFyc2V0PSJhc2NpaSI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPG1ldGE+Cit8ICAgICAgIGNoYXJzZXQ9ImFzY2lpIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1hc2NpaSI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPG1ldGE+Cit8ICAgICAgIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PWFzY2lpIgorfCAgICAgICBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aGVhZD48IS0tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEtLT48bWV0YSBjaGFyc2V0PSJ1dGY4Ij4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8IS0tIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIC0tPgorfCAgICAgPG1ldGE+Cit8ICAgICAgIGNoYXJzZXQ9InV0ZjgiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aHRtbCBhPWI+PGhlYWQ+PC9oZWFkPjxodG1sIGM9ZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgYT0iYiIKK3wgICBjPSJkIgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGltYWdlLz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aW1nPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+YTxpPmI8dGFibGU+YzxiPmQ8L2k+ZTwvYj5mCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgImEiCit8ICAgICA8aT4KK3wgICAgICAgImJjIgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiZGUiCit8ICAgICAgICJmIgorfCAgICAgICA8dGFibGU+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PGk+YTxiPmI8ZGl2PmM8YT5kPC9pPmU8L2I+ZgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxpPgorfCAgICAgICAiYSIKK3wgICAgICAgPGI+Cit8ICAgICAgICAgImIiCit8ICAgICA8Yj4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDxiPgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgImMiCit8ICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgImQiCit8ICAgICAgICAgPGE+Cit8ICAgICAgICAgICAiZSIKK3wgICAgICAgPGE+Cit8ICAgICAgICAgImYiCit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aT5hPGI+YjxkaXY+YzxhPmQ8L2k+ZTwvYj5mCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGk+Cit8ICAgICAgICJhIgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiYiIKK3wgICAgIDxiPgorfCAgICAgPGRpdj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAiYyIKK3wgICAgICAgICAgIDxhPgorfCAgICAgICAgICAgICAiZCIKK3wgICAgICAgICA8YT4KK3wgICAgICAgICAgICJlIgorfCAgICAgICA8YT4KK3wgICAgICAgICAiZiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48aT5hPGI+YjxkaXY+YzwvaT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aT4KK3wgICAgICAgImEiCit8ICAgICAgIDxiPgorfCAgICAgICAgICJiIgorfCAgICAgPGI+Cit8ICAgICAgIDxkaXY+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAiYyIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48aT5hPGI+YjxkaXY+YzxhPmQ8L2k+ZTwvYj5mCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGk+Cit8ICAgICAgICJhIgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiYiIKK3wgICAgIDxiPgorfCAgICAgPGRpdj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAiYyIKK3wgICAgICAgICAgIDxhPgorfCAgICAgICAgICAgICAiZCIKK3wgICAgICAgICA8YT4KK3wgICAgICAgICAgICJlIgorfCAgICAgICA8YT4KK3wgICAgICAgICAiZiIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48aT5hPGRpdj5iPHRyPmM8Yj5kPC9pPmUKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aT4KK3wgICAgICAgImEiCit8ICAgICAgIDxkaXY+Cit8ICAgICAgICAgImIiCit8ICAgICA8aT4KK3wgICAgICAgImMiCit8ICAgICAgIDxiPgorfCAgICAgICAgICJkIgorfCAgICAgPGI+Cit8ICAgICAgICJlIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjx0ZD48dGFibGU+PGk+YTxkaXY+YjxiPmM8L2k+ZAorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPGk+Cit8ICAgICAgICAgICAgICAgImEiCit8ICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgPGk+Cit8ICAgICAgICAgICAgICAgICAiYiIKK3wgICAgICAgICAgICAgICAgIDxiPgorfCAgICAgICAgICAgICAgICAgICAiYyIKK3wgICAgICAgICAgICAgICA8Yj4KK3wgICAgICAgICAgICAgICAgICJkIgorfCAgICAgICAgICAgICA8dGFibGU+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48Ym9keT48Ymdzb3VuZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Ymdzb3VuZD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxib2R5PjxiYXNlZm9udD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YmFzZWZvbnQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48YT48Yj48L2E+PGJhc2Vmb250PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgICA8Yj4KK3wgICAgIDxiYXNlZm9udD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxhPjxiPjwvYT48Ymdzb3VuZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgPGI+Cit8ICAgICA8Ymdzb3VuZD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxmaWdjYXB0aW9uPjxhcnRpY2xlPjwvZmlnY2FwdGlvbj5hCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZpZ2NhcHRpb24+Cit8ICAgICAgIDxhcnRpY2xlPgorfCAgICAgImEiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3VtbWFyeT48YXJ0aWNsZT48L3N1bW1hcnk+YQorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdW1tYXJ5PgorfCAgICAgICA8YXJ0aWNsZT4KK3wgICAgICJhIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PGE+PHBsYWludGV4dD5iCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxhPgorfCAgICAgPHBsYWludGV4dD4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgImIiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48ZGl2PmE8YT48L2Rpdj5iPHA+YzwvcD5kCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgImEiCit8ICAgICAgIDxhPgorfCAgICAgPGE+Cit8ICAgICAgICJiIgorfCAgICAgICA8cD4KK3wgICAgICAgICAiYyIKK3wgICAgICAgImQiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZDg1OTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdApAQCAtMCwwICsxLDc2MyBAQAorI2RhdGEKKzwhRE9DVFlQRSBodG1sPlRlc3QKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiVGVzdCIKKworI2RhdGEKKzx0ZXh0YXJlYT50ZXN0PC9kaXY+dGVzdAorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0ZXh0YXJlYSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjQgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGV4dGFyZWE+Cit8ICAgICAgICJ0ZXN0PC9kaXY+dGVzdCIKKworI2RhdGEKKzx0YWJsZT48dGQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDExIFVuZXhwZWN0ZWQgdGFibGUgY2VsbCBzdGFydCB0YWcgKHRkKSBpbiB0aGUgdGFibGUgYm9keSBwaGFzZS4KK0xpbmU6IDEgQ29sOiAxMSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48dGQ+dGVzdDwvdGJvZHk+PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTEgVW5leHBlY3RlZCB0YWJsZSBjZWxsIHN0YXJ0IHRhZyAodGQpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAidGVzdCIKKworI2RhdGEKKzxmcmFtZT50ZXN0CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZnJhbWUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgZnJhbWUuIElnbm9yZWQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAidGVzdCIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxmcmFtZXNldD50ZXN0CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjkgVW5lcHhlY3RlZCBjaGFyYWN0ZXJzIGluIHRoZSBmcmFtZXNldCBwaGFzZS4gQ2hhcmFjdGVycyBpZ25vcmVkLgorTGluZTogMSBDb2w6IDI5IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48ZnJhbWVzZXQ+PCFET0NUWVBFIGh0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNDAgVW5leHBlY3RlZCBET0NUWVBFLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDQwIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Zm9udD48cD48Yj50ZXN0PC9mb250PgorI2Vycm9ycworTGluZTogMSBDb2w6IDM4IEVuZCB0YWcgKGZvbnQpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMzggRW5kIHRhZyAoZm9udCkgdmlvbGF0ZXMgc3RlcCAxLCBwYXJhZ3JhcGggMyBvZiB0aGUgYWRvcHRpb24gYWdlbmN5IGFsZ29yaXRobS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Zm9udD4KK3wgICAgIDxwPgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICA8Yj4KK3wgICAgICAgICAgICJ0ZXN0IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGR0PjxkaXY+PGRkPgorI2Vycm9ycworTGluZTogMSBDb2w6IDI4IE1pc3NpbmcgZW5kIHRhZyAoZGl2LCBkdCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGR0PgorfCAgICAgICA8ZGl2PgorfCAgICAgPGRkPgorCisjZGF0YQorPHNjcmlwdD48L3gKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDExIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHNjcmlwdCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiPC94IgorfCAgIDxib2R5PgorCisjZGF0YQorPHRhYmxlPjxwbGFpbnRleHQ+PHRkPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAocGxhaW50ZXh0KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAyMiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWJsZSBjb250ZW50LgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHBsYWludGV4dD4KK3wgICAgICAgIjx0ZD4iCit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8cGxhaW50ZXh0PjwvcGxhaW50ZXh0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDExIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChwbGFpbnRleHQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIzIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHBsYWludGV4dD4KK3wgICAgICAgIjwvcGxhaW50ZXh0PiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+VEVTVAorI2Vycm9ycworTGluZTogMSBDb2w6IDMwIFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMzAgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiVEVTVCIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5IHQxPTE+PGJvZHkgdDI9Mj48Ym9keSB0Mz0zIHQ0PTQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzcgVW5leHBlY3RlZCBzdGFydCB0YWcgKGJvZHkpLgorTGluZTogMSBDb2w6IDUzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChib2R5KS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICB0MT0iMSIKK3wgICAgIHQyPSIyIgorfCAgICAgdDM9IjMiCit8ICAgICB0ND0iNCIKKworI2RhdGEKKzwvYiB0ZXN0CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGF0dHJpYnV0ZSBuYW1lLgorTGluZTogMSBDb2w6IDggRW5kIHRhZyBjb250YWlucyB1bmV4cGVjdGVkIGF0dHJpYnV0ZXMuCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIGVuZCB0YWcgKGIpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBlbmQgdGFnIChiKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjwvYiB0ZXN0PGIgJj0mYW1wPlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzMiBOYW1lZCBlbnRpdHkgZGlkbid0IGVuZCB3aXRoICc7Jy4KK0xpbmU6IDEgQ29sOiAzMyBFbmQgdGFnIGNvbnRhaW5zIHVuZXhwZWN0ZWQgYXR0cmlidXRlcy4KK0xpbmU6IDEgQ29sOiAzMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGIpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJYIgorCisjZGF0YQorPCFkb2N0eXBlaHRtbD48c2NySVB0IHR5cGU9dGV4dC94LWZvb2JhcjtiYXo+WDwvU0NSaXB0CisjZXJyb3JzCitMaW5lOiAxIENvbDogOSBObyBzcGFjZSBhZnRlciBsaXRlcmFsIHN0cmluZyAnRE9DVFlQRScuCitMaW5lOiAxIENvbDogNTQgVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiB0aGUgdGFnIG5hbWUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgdHlwZT0idGV4dC94LWZvb2JhcjtiYXoiCit8ICAgICAgICJYPC9TQ1JpcHQiCit8ICAgPGJvZHk+CisKKyNkYXRhCismCisjZXJyb3JzCitMaW5lOiAxIENvbDogMSBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiYiCisKKyNkYXRhCismIworI2Vycm9ycworTGluZTogMSBDb2w6IDEgTnVtZXJpYyBlbnRpdHkgZXhwZWN0ZWQuIEdvdCBlbmQgb2YgZmlsZSBpbnN0ZWFkLgorTGluZTogMSBDb2w6IDEgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycy4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICImIyIKKworI2RhdGEKKyYjWAorI2Vycm9ycworTGluZTogMSBDb2w6IDMgTnVtZXJpYyBlbnRpdHkgZXhwZWN0ZWQgYnV0IG5vbmUgZm91bmQuCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiYjWCIKKworI2RhdGEKKyYjeAorI2Vycm9ycworTGluZTogMSBDb2w6IDMgTnVtZXJpYyBlbnRpdHkgZXhwZWN0ZWQgYnV0IG5vbmUgZm91bmQuCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiYjeCIKKworI2RhdGEKKyYjNDUKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0IE51bWVyaWMgZW50aXR5IGRpZG4ndCBlbmQgd2l0aCAnOycuCitMaW5lOiAxIENvbDogNCBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIi0iCisKKyNkYXRhCismeC10ZXN0CisjZXJyb3JzCitMaW5lOiAxIENvbDogMSBOYW1lZCBlbnRpdHkgZXhwZWN0ZWQuIEdvdCBub25lLgorTGluZTogMSBDb2w6IDEgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycy4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICImeC10ZXN0IgorCisjZGF0YQorPCFkb2N0eXBlaHRtbD48cD48bGk+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOSBObyBzcGFjZSBhZnRlciBsaXRlcmFsIHN0cmluZyAnRE9DVFlQRScuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICA8bGk+CisKKyNkYXRhCis8IWRvY3R5cGVodG1sPjxwPjxkdD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA5IE5vIHNwYWNlIGFmdGVyIGxpdGVyYWwgc3RyaW5nICdET0NUWVBFJy4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgIDxkdD4KKworI2RhdGEKKzwhZG9jdHlwZWh0bWw+PHA+PGRkPgorI2Vycm9ycworTGluZTogMSBDb2w6IDkgTm8gc3BhY2UgYWZ0ZXIgbGl0ZXJhbCBzdHJpbmcgJ0RPQ1RZUEUnLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgPGRkPgorCisjZGF0YQorPCFkb2N0eXBlaHRtbD48cD48Zm9ybT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA5IE5vIHNwYWNlIGFmdGVyIGxpdGVyYWwgc3RyaW5nICdET0NUWVBFJy4KK0xpbmU6IDEgQ29sOiAyMyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgIDxmb3JtPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHA+PC9QPlgKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICJYIgorCisjZGF0YQorJkFNUAorI2Vycm9ycworTGluZTogMSBDb2w6IDQgTmFtZWQgZW50aXR5IGRpZG4ndCBlbmQgd2l0aCAnOycuCitMaW5lOiAxIENvbDogNCBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiYiCisKKyNkYXRhCismQU1wOworI2Vycm9ycworTGluZTogMSBDb2w6IDEgTmFtZWQgZW50aXR5IGV4cGVjdGVkLiBHb3Qgbm9uZS4KK0xpbmU6IDEgQ29sOiAxIFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiJkFNcDsiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PHRoaXNJU2FzaWxseVRFU1RlbGVtZW50TmFtZVRvTWFrZVN1cmVDcmF6eVRhZ05hbWVzQXJlUEFSU0VEY29ycmVjdExZPgorI2Vycm9ycworTGluZTogMSBDb2w6IDExMCBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGhpc2lzYXNpbGx5dGVzdGVsZW1lbnRuYW1ldG9tYWtlc3VyZWNyYXp5dGFnbmFtZXNhcmVwYXJzZWRjb3JyZWN0bHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD5YPC9ib2R5PlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNCBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzIGluIHRoZSBhZnRlciBib2R5IHBoYXNlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJYWCIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjwhLS0gWAorI2Vycm9ycworTGluZTogMSBDb2w6IDIxIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gY29tbWVudC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPCEtLSAgWCAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48dGFibGU+PGNhcHRpb24+dGVzdCBURVNUPC9jYXB0aW9uPjx0ZD50ZXN0CisjZXJyb3JzCitMaW5lOiAxIENvbDogNTQgVW5leHBlY3RlZCB0YWJsZSBjZWxsIHN0YXJ0IHRhZyAodGQpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLgorTGluZTogMSBDb2w6IDU4IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgInRlc3QgVEVTVCIKK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgInRlc3QiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48c2VsZWN0PjxvcHRpb24+PG9wdGdyb3VwPgorI2Vycm9ycworTGluZTogMSBDb2w6IDQxIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgIDxvcHRncm91cD4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxzZWxlY3Q+PG9wdGdyb3VwPjxvcHRpb24+PC9vcHRncm91cD48b3B0aW9uPjxzZWxlY3Q+PG9wdGlvbj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2OCBVbmV4cGVjdGVkIHNlbGVjdCBzdGFydCB0YWcgaW4gdGhlIHNlbGVjdCBwaGFzZSB0cmVhdGVkIGFzIHNlbGVjdCBlbmQgdGFnLgorTGluZTogMSBDb2w6IDc2IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRncm91cD4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgICAgICA8b3B0aW9uPgorfCAgICAgPG9wdGlvbj4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxzZWxlY3Q+PG9wdGdyb3VwPjxvcHRpb24+PG9wdGdyb3VwPgorI2Vycm9ycworTGluZTogMSBDb2w6IDUxIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRncm91cD4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgICAgICA8b3B0Z3JvdXA+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48ZGF0YWxpc3Q+PG9wdGlvbj5mb288L2RhdGFsaXN0PmJhcgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkYXRhbGlzdD4KK3wgICAgICAgPG9wdGlvbj4KK3wgICAgICAgICAiZm9vIgorfCAgICAgImJhciIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxmb250PjxpbnB1dD48aW5wdXQ+PC9mb250PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb250PgorfCAgICAgICA8aW5wdXQ+Cit8ICAgICAgIDxpbnB1dD4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjwhLS0gWFhYIC0gWFhYIC0tPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8IS0tICBYWFggLSBYWFggIC0tPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjwhLS0gWFhYIC0gWFhYCisjZXJyb3JzCitMaW5lOiAxIENvbDogMjkgVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50ICgtKQorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8IS0tICBYWFggLSBYWFggLS0+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PCEtLSBYWFggLSBYWFggLSBYWFggLS0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDwhLS0gIFhYWCAtIFhYWCAtIFhYWCAgLS0+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGlzaW5kZXggdGVzdD14IG5hbWU9eD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaXNpbmRleCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjMgVW5leHBlY3RlZCBzdGFydCB0YWcgaXNpbmRleC4gRG9uJ3QgdXNlIGl0IQorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvcm0+Cit8ICAgICAgIDxocj4KK3wgICAgICAgPGxhYmVsPgorfCAgICAgICAgICJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiCit8ICAgICAgICAgPGlucHV0PgorfCAgICAgICAgICAgbmFtZT0iaXNpbmRleCIKK3wgICAgICAgICAgIHRlc3Q9IngiCit8ICAgICAgIDxocj4KKworI2RhdGEKK3Rlc3QKK3Rlc3QKKyNlcnJvcnMKK0xpbmU6IDIgQ29sOiA0IFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAidGVzdAordGVzdCIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0aXRsZT50ZXN0PC9ib2R5PjwvdGl0bGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRpdGxlPgorfCAgICAgICAidGVzdDwvYm9keT4iCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGl0bGU+WDwvdGl0bGU+PG1ldGEgbmFtZT16PjxsaW5rIHJlbD1mb28+PHN0eWxlPgoreCB7IGNvbnRlbnQ6Ijwvc3R5bGUiIH0gPC9zdHlsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICJYIgorfCAgICAgPG1ldGE+Cit8ICAgICAgIG5hbWU9InoiCit8ICAgICA8bGluaz4KK3wgICAgICAgcmVsPSJmb28iCit8ICAgICA8c3R5bGU+Cit8ICAgICAgICIKK3ggeyBjb250ZW50OiI8L3N0eWxlIiB9ICIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxzZWxlY3Q+PG9wdGdyb3VwPjwvb3B0Z3JvdXA+PC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGdyb3VwPgorCisjZGF0YQorIAorIAorI2Vycm9ycworTGluZTogMiBDb2w6IDEgVW5leHBlY3RlZCBFbmQgb2YgZmlsZS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPiAgPGh0bWw+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHNjcmlwdD4KKzwvc2NyaXB0PiAgPHRpdGxlPng8L3RpdGxlPiAgPC9oZWFkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKKyIKK3wgICAgICIgICIKK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIngiCit8ICAgICAiICAiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbD48Ym9keT48aHRtbCBpZD14PgorI2Vycm9ycworTGluZTogMSBDb2w6IDM4IGh0bWwgbmVlZHMgdG8gYmUgdGhlIGZpcnN0IHN0YXJ0IHRhZy4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgaWQ9IngiCit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD5YPC9ib2R5PjxodG1sIGlkPSJ4Ij4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyB0b2tlbiAoaHRtbCkgaW4gdGhlIGFmdGVyIGJvZHkgcGhhc2UuCitMaW5lOiAxIENvbDogMzYgaHRtbCBuZWVkcyB0byBiZSB0aGUgZmlyc3Qgc3RhcnQgdGFnLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICBpZD0ieCIKK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJYIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGhlYWQ+PGh0bWwgaWQ9eD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzMiBodG1sIG5lZWRzIHRvIGJlIHRoZSBmaXJzdCBzdGFydCB0YWcuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIGlkPSJ4IgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+WDwvaHRtbD5YCisjZXJyb3JzCitMaW5lOiAxIENvbDogMjQgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycyBpbiB0aGUgYWZ0ZXIgYm9keSBwaGFzZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiWFgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD5YPC9odG1sPiAKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiWCAiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD5YPC9odG1sPjxwPlgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAocCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIlgiCit8ICAgICA8cD4KK3wgICAgICAgIlgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD5YPHAveC95L3o+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMTkgRXhwZWN0ZWQgYSA+IGFmdGVyIHRoZSAvLgorTGluZTogMSBDb2w6IDIxIFNvbGlkdXMgKC8pIGluY29ycmVjdGx5IHBsYWNlZCBpbiB0YWcuCitMaW5lOiAxIENvbDogMjMgU29saWR1cyAoLykgaW5jb3JyZWN0bHkgcGxhY2VkIGluIHRhZy4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiWCIKK3wgICAgIDxwPgorfCAgICAgICB4PSIiCit8ICAgICAgIHk9IiIKK3wgICAgICAgej0iIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PCEtLXgtLQorI2Vycm9ycworTGluZTogMSBDb2w6IDIyIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gY29tbWVudCAoLS0pLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8IS0tIHggLS0+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PC9wPjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzQgVW5leHBlY3RlZCBlbmQgdGFnIChwKS4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxwPgorCisjZGF0YQorPCFET0NUWVBFIDwhRE9DVFlQRSBIVE1MPj48IS0tPCEtLXgtLT4tLT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyMCBFeHBlY3RlZCBzcGFjZSBvciAnPicuIEdvdCAnJworTGluZTogMSBDb2w6IDI1IEVycm9uZW91cyBET0NUWVBFLgorTGluZTogMSBDb2w6IDM1IFVuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGNvbW1lbnQgZm91bmQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIDwhZG9jdHlwZT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiPiIKK3wgICAgIDwhLS0gPCEtLXggLS0+Cit8ICAgICAiLS0+IgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGRpdj48Zm9ybT48L2Zvcm0+PGRpdj48L2Rpdj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8Zm9ybT4KK3wgICAgICAgPGRpdj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czIwLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czIwLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmQ4MjU2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjAuZGF0CkBAIC0wLDAgKzEsNDU1IEBACisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PGJ1dHRvbj48YnV0dG9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YnV0dG9uPgorfCAgICAgICA8YnV0dG9uPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PGJ1dHRvbj48YWRkcmVzcz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICAgICA8YWRkcmVzcz4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PGJsb2NrcXVvdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxidXR0b24+Cit8ICAgICAgICAgPGJsb2NrcXVvdGU+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48YnV0dG9uPjxtZW51PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YnV0dG9uPgorfCAgICAgICAgIDxtZW51PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PGJ1dHRvbj48cD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICAgICA8cD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PHVsPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YnV0dG9uPgorfCAgICAgICAgIDx1bD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PGgxPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YnV0dG9uPgorfCAgICAgICAgIDxoMT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PGg2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YnV0dG9uPgorfCAgICAgICAgIDxoNj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PGxpc3Rpbmc+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxidXR0b24+Cit8ICAgICAgICAgPGxpc3Rpbmc+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48YnV0dG9uPjxwcmU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxidXR0b24+Cit8ICAgICAgICAgPHByZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PGZvcm0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxidXR0b24+Cit8ICAgICAgICAgPGZvcm0+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48YnV0dG9uPjxsaT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICAgICA8bGk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48YnV0dG9uPjxkZD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICAgICA8ZGQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48YnV0dG9uPjxkdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICAgICA8ZHQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48YnV0dG9uPjxwbGFpbnRleHQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxidXR0b24+Cit8ICAgICAgICAgPHBsYWludGV4dD4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PHRhYmxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YnV0dG9uPgorfCAgICAgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PGhyPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YnV0dG9uPgorfCAgICAgICAgIDxocj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxidXR0b24+PHhtcD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICAgICA8eG1wPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHA+PGJ1dHRvbj48L3A+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxidXR0b24+Cit8ICAgICAgICAgPHA+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48YWRkcmVzcz48YnV0dG9uPjwvYWRkcmVzcz5hCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGFkZHJlc3M+Cit8ICAgICAgIDxidXR0b24+Cit8ICAgICAiYSIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxhZGRyZXNzPjxidXR0b24+PC9hZGRyZXNzPmEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YWRkcmVzcz4KK3wgICAgICAgPGJ1dHRvbj4KK3wgICAgICJhIgorCisjZGF0YQorPHA+PHRhYmxlPjwvcD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8cD4KK3wgICAgICAgPHRhYmxlPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHN2Zz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxwPjxmaWdjYXB0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgPGZpZ2NhcHRpb24+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48c3VtbWFyeT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgIDxzdW1tYXJ5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGZvcm0+PHRhYmxlPjxmb3JtPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb3JtPgorfCAgICAgICA8dGFibGU+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PGZvcm0+PGZvcm0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Zm9ybT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48Zm9ybT48L3RhYmxlPjxmb3JtPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGZvcm0+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3ZnPjxmb3JlaWduT2JqZWN0PjxwPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgPHA+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c3ZnPjx0aXRsZT5hYmMKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyB0aXRsZT4KK3wgICAgICAgICAiYWJjIgorCisjZGF0YQorPG9wdGlvbj48c3Bhbj48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG9wdGlvbj4KK3wgICAgICAgPHNwYW4+Cit8ICAgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzxvcHRpb24+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxvcHRpb24+Cit8ICAgICA8b3B0aW9uPgorCisjZGF0YQorPG1hdGg+PGFubm90YXRpb24teG1sPjxkaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3N2Zyt4bWwiPjxkaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KK3wgICAgICAgICBlbmNvZGluZz0iYXBwbGljYXRpb24vc3ZnK3htbCIKK3wgICAgIDxkaXY+CisKKyNkYXRhCis8bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3hodG1sK3htbCI+PGRpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgorfCAgICAgICAgIGVuY29kaW5nPSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiCit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGluZz0iYVBQbGljYXRpb24veGh0bUwreE1sIj48ZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Cit8ICAgICAgICAgZW5jb2Rpbmc9ImFQUGxpY2F0aW9uL3hodG1MK3hNbCIKK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPG1hdGg+PGFubm90YXRpb24teG1sIGVuY29kaW5nPSJ0ZXh0L2h0bWwiPjxkaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KK3wgICAgICAgICBlbmNvZGluZz0idGV4dC9odG1sIgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9IlRleHQvaHRtTCI+PGRpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgorfCAgICAgICAgIGVuY29kaW5nPSJUZXh0L2h0bUwiCit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGluZz0iIHRleHQvaHRtbCAiPjxkaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KK3wgICAgICAgICBlbmNvZGluZz0iIHRleHQvaHRtbCAiCit8ICAgICA8ZGl2PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjEuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjEuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNzRhMTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMyMS5kYXQKQEAgLTAsMCArMSwyNTcgQEAKKyNkYXRhCis8c3ZnPjwhW0NEQVRBW2Zvb11dPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJmb28iCisKKyNkYXRhCis8bWF0aD48IVtDREFUQVtmb29dXT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICJmb28iCisKKyNkYXRhCis8ZGl2PjwhW0NEQVRBW2Zvb11dPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgPCEtLSBbQ0RBVEFbZm9vXV0gLS0+CisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBW2ZvbworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJmb28iCisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBW2ZvbworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJmb28iCisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBWworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+CisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBW11dPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+CisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBW11dID5dXT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiXV0gPiIKKworI2RhdGEKKzxzdmc+PCFbQ0RBVEFbXV0gPl1dPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJdXSA+IgorCisjZGF0YQorPHN2Zz48IVtDREFUQVtdXQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJdXSIKKworI2RhdGEKKzxzdmc+PCFbQ0RBVEFbXQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJdIgorCisjZGF0YQorPHN2Zz48IVtDREFUQVtdPmEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiXT5hIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHN2Zz48IVtDREFUQVtmb29dXV0+CisjZXJyb3JzCiszNjogRW5kIG9mIGZpbGUgaW4gYSBmb3JlaWduIG5hbWVzcGFjZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiZm9vXSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxzdmc+PCFbQ0RBVEFbZm9vXV1dXT4KKyNlcnJvcnMKKzM2OiBFbmQgb2YgZmlsZSBpbiBhIGZvcmVpZ24gbmFtZXNwYWNlIGNvbnRleHQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJmb29dXSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxzdmc+PCFbQ0RBVEFbZm9vXV1dXV0+CisjZXJyb3JzCiszNjogRW5kIG9mIGZpbGUgaW4gYSBmb3JlaWduIG5hbWVzcGFjZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiZm9vXV1dIgorCisjZGF0YQorPHN2Zz48Zm9yZWlnbk9iamVjdD48ZGl2PjwhW0NEQVRBW2Zvb11dPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgPCEtLSBbQ0RBVEFbZm9vXV0gLS0+CisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBWzxzdmc+XV0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIjxzdmc+IgorCisjZGF0YQorPHN2Zz48IVtDREFUQVs8L3N2Zz5hXV0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIjwvc3ZnPmEiCisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBWzxzdmc+YQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICI8c3ZnPmEiCisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBWzwvc3ZnPmEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiPC9zdmc+YSIKKworI2RhdGEKKzxzdmc+PCFbQ0RBVEFbPHN2Zz5dXT48cGF0aD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiPHN2Zz4iCit8ICAgICAgIDxzdmcgcGF0aD4KKworI2RhdGEKKzxzdmc+PCFbQ0RBVEFbPHN2Zz5dXT48L3BhdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIjxzdmc+IgorCisjZGF0YQorPHN2Zz48IVtDREFUQVs8c3ZnPl1dPjwhLS1wYXRoLS0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIjxzdmc+IgorfCAgICAgICA8IS0tIHBhdGggLS0+CisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBWzxzdmc+XV0+cGF0aAorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICI8c3ZnPnBhdGgiCisKKyNkYXRhCis8c3ZnPjwhW0NEQVRBWzwhLS1zdmctLT5dXT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiPCEtLXN2Zy0tPiIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czIyLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czIyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWIyN2IyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjIuZGF0CkBAIC0wLDAgKzEsMTU3IEBACisjZGF0YQorPGE+PGI+PGJpZz48ZW0+PHN0cm9uZz48ZGl2Plg8L2E+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPGJpZz4KK3wgICAgICAgICAgIDxlbT4KK3wgICAgICAgICAgICAgPHN0cm9uZz4KK3wgICAgIDxiaWc+Cit8ICAgICAgIDxlbT4KK3wgICAgICAgICA8c3Ryb25nPgorfCAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgIlgiCisKKyNkYXRhCis8YT48Yj48ZGl2IGlkPTE+PGRpdiBpZD0yPjxkaXYgaWQ9Mz48ZGl2IGlkPTQ+PGRpdiBpZD01PjxkaXYgaWQ9Nj48ZGl2IGlkPTc+PGRpdiBpZD04PkE8L2E+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgPGI+Cit8ICAgICA8Yj4KK3wgICAgICAgPGRpdj4KK3wgICAgICAgICBpZD0iMSIKK3wgICAgICAgICA8YT4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgaWQ9IjIiCit8ICAgICAgICAgICA8YT4KK3wgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgIGlkPSIzIgorfCAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICBpZD0iNCIKK3wgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgICAgaWQ9IjUiCit8ICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgICAgIGlkPSI2IgorfCAgICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgICBpZD0iNyIKK3wgICAgICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgICAgICAgICAgaWQ9IjgiCit8ICAgICAgICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgICAgICAgICAgIkEiCisKKyNkYXRhCis8YT48Yj48ZGl2IGlkPTE+PGRpdiBpZD0yPjxkaXYgaWQ9Mz48ZGl2IGlkPTQ+PGRpdiBpZD01PjxkaXYgaWQ9Nj48ZGl2IGlkPTc+PGRpdiBpZD04PjxkaXYgaWQ9OT5BPC9hPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgIDxiPgorfCAgICAgPGI+Cit8ICAgICAgIDxkaXY+Cit8ICAgICAgICAgaWQ9IjEiCit8ICAgICAgICAgPGE+Cit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgIGlkPSIyIgorfCAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICBpZD0iMyIKK3wgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgaWQ9IjQiCit8ICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgIGlkPSI1IgorfCAgICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgICAgICBpZD0iNiIKK3wgICAgICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgICAgICAgaWQ9IjciCit8ICAgICAgICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgICAgIGlkPSI4IgorfCAgICAgICAgICAgICAgICAgICAgICAgPGE+Cit8ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IjkiCit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEiCisKKyNkYXRhCis8YT48Yj48ZGl2IGlkPTE+PGRpdiBpZD0yPjxkaXYgaWQ9Mz48ZGl2IGlkPTQ+PGRpdiBpZD01PjxkaXYgaWQ9Nj48ZGl2IGlkPTc+PGRpdiBpZD04PjxkaXYgaWQ9OT48ZGl2IGlkPTEwPkE8L2E+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgICAgPGI+Cit8ICAgICA8Yj4KK3wgICAgICAgPGRpdj4KK3wgICAgICAgICBpZD0iMSIKK3wgICAgICAgICA8YT4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgaWQ9IjIiCit8ICAgICAgICAgICA8YT4KK3wgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgIGlkPSIzIgorfCAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICBpZD0iNCIKK3wgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgICAgaWQ9IjUiCit8ICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAgICAgICAgIGlkPSI2IgorfCAgICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgICBpZD0iNyIKK3wgICAgICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgICAgICAgICAgaWQ9IjgiCit8ICAgICAgICAgICAgICAgICAgICAgICA8YT4KK3wgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0iOSIKK3wgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IjEwIgorfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEiCisKKyNkYXRhCis8Y2l0ZT48Yj48Y2l0ZT48aT48Y2l0ZT48aT48Y2l0ZT48aT48ZGl2Plg8L2I+VEVTVAorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGNpdGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDQ2IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogNTAgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Y2l0ZT4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPGNpdGU+Cit8ICAgICAgICAgICA8aT4KK3wgICAgICAgICAgICAgPGNpdGU+Cit8ICAgICAgICAgICAgICAgPGk+Cit8ICAgICAgICAgICAgICAgICA8Y2l0ZT4KK3wgICAgICAgICAgICAgICAgICAgPGk+Cit8ICAgICAgIDxpPgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgICAgIlgiCit8ICAgICAgICAgICAgICJURVNUIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjMuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjMuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZDJhNzMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMyMy5kYXQKQEAgLTAsMCArMSwxNTUgQEAKKyNkYXRhCis8cD48Zm9udCBzaXplPTQ+PGZvbnQgY29sb3I9cmVkPjxmb250IHNpemU9ND48Zm9udCBzaXplPTQ+PGZvbnQgc2l6ZT00Pjxmb250IHNpemU9ND48Zm9udCBzaXplPTQ+PGZvbnQgY29sb3I9cmVkPjxwPlgKKyNlcnJvcnMKKzM6IFN0YXJ0IHRhZyBzZWVuIHdpdGhvdXQgc2VlaW5nIGEgZG9jdHlwZSBmaXJzdC4gRXhwZWN0ZWQg4oCcPCFET0NUWVBFIGh0bWw+4oCdLgorMTE2OiBVbmNsb3NlZCBlbGVtZW50cy4KKzExNzogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxmb250PgorfCAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICBjb2xvcj0icmVkIgorfCAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj0icmVkIgorfCAgICAgPHA+Cit8ICAgICAgIDxmb250PgorfCAgICAgICAgIGNvbG9yPSJyZWQiCit8ICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgICAgICBjb2xvcj0icmVkIgorfCAgICAgICAgICAgICAgICAgIlgiCisKKyNkYXRhCis8cD48Zm9udCBzaXplPTQ+PGZvbnQgc2l6ZT00Pjxmb250IHNpemU9ND48Zm9udCBzaXplPTQ+PHA+WAorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxmb250PgorfCAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICA8cD4KK3wgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgc2l6ZT0iNCIKK3wgICAgICAgICA8Zm9udD4KK3wgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICA8Zm9udD4KK3wgICAgICAgICAgICAgc2l6ZT0iNCIKK3wgICAgICAgICAgICAgIlgiCisKKyNkYXRhCis8cD48Zm9udCBzaXplPTQ+PGZvbnQgc2l6ZT00Pjxmb250IHNpemU9ND48Zm9udCBzaXplPSI1Ij48Zm9udCBzaXplPTQ+PHA+WAorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxmb250PgorfCAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICAgIHNpemU9IjUiCit8ICAgICAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgICAgICBzaXplPSI0IgorfCAgICAgPHA+Cit8ICAgICAgIDxmb250PgorfCAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgIHNpemU9IjUiCit8ICAgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgICAgIlgiCisKKyNkYXRhCis8cD48Zm9udCBzaXplPTQgaWQ9YT48Zm9udCBzaXplPTQgaWQ9Yj48Zm9udCBzaXplPTQ+PGZvbnQgc2l6ZT00PjxwPlgKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICBpZD0iYSIKK3wgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgaWQ9ImIiCit8ICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICAgIHNpemU9IjQiCit8ICAgICA8cD4KK3wgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgaWQ9ImEiCit8ICAgICAgICAgc2l6ZT0iNCIKK3wgICAgICAgICA8Zm9udD4KK3wgICAgICAgICAgIGlkPSJiIgorfCAgICAgICAgICAgc2l6ZT0iNCIKK3wgICAgICAgICAgIDxmb250PgorfCAgICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgICA8Zm9udD4KK3wgICAgICAgICAgICAgICBzaXplPSI0IgorfCAgICAgICAgICAgICAgICJYIgorCisjZGF0YQorPHA+PGIgaWQ9YT48YiBpZD1hPjxiIGlkPWE+PGI+PG9iamVjdD48YiBpZD1hPjxiIGlkPWE+WDwvb2JqZWN0PjxwPlkKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8Yj4KK3wgICAgICAgICBpZD0iYSIKK3wgICAgICAgICA8Yj4KK3wgICAgICAgICAgIGlkPSJhIgorfCAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgIGlkPSJhIgorfCAgICAgICAgICAgICA8Yj4KK3wgICAgICAgICAgICAgICA8b2JqZWN0PgorfCAgICAgICAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgICAgICAgIGlkPSJhIgorfCAgICAgICAgICAgICAgICAgICA8Yj4KK3wgICAgICAgICAgICAgICAgICAgICBpZD0iYSIKK3wgICAgICAgICAgICAgICAgICAgICAiWCIKK3wgICAgIDxwPgorfCAgICAgICA8Yj4KK3wgICAgICAgICBpZD0iYSIKK3wgICAgICAgICA8Yj4KK3wgICAgICAgICAgIGlkPSJhIgorfCAgICAgICAgICAgPGI+Cit8ICAgICAgICAgICAgIGlkPSJhIgorfCAgICAgICAgICAgICA8Yj4KK3wgICAgICAgICAgICAgICAiWSIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czI0LmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czI0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmRjN2ViCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjQuZGF0CkBAIC0wLDAgKzEsNzkgQEAKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD4mTm90RXF1YWxUaWxkZTsKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAi4omCzLgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD4mTm90RXF1YWxUaWxkZTtBCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIuKJgsy4QSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPiZUaGlja1NwYWNlOworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICLigZ/igIoiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD4mVGhpY2tTcGFjZTtBCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIuKBn+KAikEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD4mTm90U3Vic2V0OworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICLiioLig5IiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD4mTm90U3Vic2V0O0EKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAi4oqC4oOSQSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPiZHb3BmOworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICLwnZS+IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+JkdvcGY7QQorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICLwnZS+QSIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czI1LmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czI1LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGRlNzI5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjUuZGF0CkBAIC0wLDAgKzEsMjE5IEBACisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGZvbz5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvbz4KK3wgICAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48YXJlYT5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGFyZWE+Cit8ICAgICAiQSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxiYXNlPkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YmFzZT4KK3wgICAgICJBIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGJhc2Vmb250PkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YmFzZWZvbnQ+Cit8ICAgICAiQSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxiZ3NvdW5kPkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Ymdzb3VuZD4KK3wgICAgICJBIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGJyPkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YnI+Cit8ICAgICAiQSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjxjb2w+QQorI2Vycm9ycworMjY6IFN0cmF5IHN0YXJ0IHRhZyDigJxjb2zigJ0uCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48Y29tbWFuZD5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGNvbW1hbmQ+Cit8ICAgICAiQSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxlbWJlZD5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGVtYmVkPgorfCAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48ZnJhbWU+QQorI2Vycm9ycworMjY6IFN0cmF5IHN0YXJ0IHRhZyDigJxmcmFtZeKAnS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiQSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjxocj5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGhyPgorfCAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48aW1nPkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aW1nPgorfCAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48aW5wdXQ+QQorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxpbnB1dD4KK3wgICAgICJBIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGtleWdlbj5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGtleWdlbj4KK3wgICAgICJBIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGxpbms+QQorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxsaW5rPgorfCAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48bWV0YT5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1ldGE+Cit8ICAgICAiQSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxwYXJhbT5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHBhcmFtPgorfCAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48c291cmNlPkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c291cmNlPgorfCAgICAgIkEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dHJhY2s+QQorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0cmFjaz4KK3wgICAgICJBIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHdicj5BCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHdicj4KK3wgICAgICJBIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjYuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzMjYuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZTExZmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMyNi5kYXQKQEAgLTAsMCArMSwzMTMgQEAKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48YSBocmVmPScjMSc+PG5vYnI+MTxub2JyPjwvYT48YnI+PGEgaHJlZj0nIzInPjxub2JyPjI8bm9icj48L2E+PGJyPjxhIGhyZWY9JyMzJz48bm9icj4zPG5vYnI+PC9hPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgICBocmVmPSIjMSIKK3wgICAgICAgPG5vYnI+Cit8ICAgICAgICAgIjEiCit8ICAgICAgIDxub2JyPgorfCAgICAgPG5vYnI+Cit8ICAgICAgIDxicj4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgaHJlZj0iIzIiCit8ICAgICA8YT4KK3wgICAgICAgaHJlZj0iIzIiCit8ICAgICAgIDxub2JyPgorfCAgICAgICAgICIyIgorfCAgICAgICA8bm9icj4KK3wgICAgIDxub2JyPgorfCAgICAgICA8YnI+Cit8ICAgICAgIDxhPgorfCAgICAgICAgIGhyZWY9IiMzIgorfCAgICAgPGE+Cit8ICAgICAgIGhyZWY9IiMzIgorfCAgICAgICA8bm9icj4KK3wgICAgICAgICAiMyIKK3wgICAgICAgPG5vYnI+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48Yj48bm9icj4xPG5vYnI+PC9iPjxpPjxub2JyPjI8bm9icj48L2k+MworI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICA8bm9icj4KK3wgICAgICAgICAiMSIKK3wgICAgICAgPG5vYnI+Cit8ICAgICA8bm9icj4KK3wgICAgICAgPGk+Cit8ICAgICA8aT4KK3wgICAgICAgPG5vYnI+Cit8ICAgICAgICAgIjIiCit8ICAgICAgIDxub2JyPgorfCAgICAgPG5vYnI+Cit8ICAgICAgICIzIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGI+PG5vYnI+MTx0YWJsZT48bm9icj48L2I+PGk+PG5vYnI+Mjxub2JyPjwvaT4zCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDxub2JyPgorfCAgICAgICAgICIxIgorfCAgICAgICAgIDxub2JyPgorfCAgICAgICAgICAgPGk+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICA8bm9icj4KK3wgICAgICAgICAgICAgIjIiCit8ICAgICAgICAgICA8bm9icj4KK3wgICAgICAgICA8bm9icj4KK3wgICAgICAgICAgICIzIgorfCAgICAgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxiPjxub2JyPjE8dGFibGU+PHRyPjx0ZD48bm9icj48L2I+PGk+PG5vYnI+Mjxub2JyPjwvaT4zCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDxub2JyPgorfCAgICAgICAgICIxIgorfCAgICAgICAgIDx0YWJsZT4KK3wgICAgICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgICAgIDxub2JyPgorfCAgICAgICAgICAgICAgICAgICA8aT4KK3wgICAgICAgICAgICAgICAgIDxpPgorfCAgICAgICAgICAgICAgICAgICA8bm9icj4KK3wgICAgICAgICAgICAgICAgICAgICAiMiIKK3wgICAgICAgICAgICAgICAgICAgPG5vYnI+Cit8ICAgICAgICAgICAgICAgICA8bm9icj4KK3wgICAgICAgICAgICAgICAgICAgIjMiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48Yj48bm9icj4xPGRpdj48bm9icj48L2I+PGk+PG5vYnI+Mjxub2JyPjwvaT4zCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDxub2JyPgorfCAgICAgICAgICIxIgorfCAgICAgPGRpdj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPG5vYnI+Cit8ICAgICAgICAgPG5vYnI+Cit8ICAgICAgIDxub2JyPgorfCAgICAgICAgIDxpPgorfCAgICAgICA8aT4KK3wgICAgICAgICA8bm9icj4KK3wgICAgICAgICAgICIyIgorfCAgICAgICAgIDxub2JyPgorfCAgICAgICA8bm9icj4KK3wgICAgICAgICAiMyIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxiPjxub2JyPjE8bm9icj48L2I+PGRpdj48aT48bm9icj4yPG5vYnI+PC9pPjMKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgICAgPG5vYnI+Cit8ICAgICAgICAgIjEiCit8ICAgICAgIDxub2JyPgorfCAgICAgPGRpdj4KK3wgICAgICAgPG5vYnI+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgIDxpPgorfCAgICAgICAgIDxub2JyPgorfCAgICAgICAgICAgIjIiCit8ICAgICAgICAgPG5vYnI+Cit8ICAgICAgIDxub2JyPgorfCAgICAgICAgICIzIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGI+PG5vYnI+MTxub2JyPjxpbnM+PC9iPjxpPjxub2JyPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICA8bm9icj4KK3wgICAgICAgICAiMSIKK3wgICAgICAgPG5vYnI+Cit8ICAgICAgICAgPGlucz4KK3wgICAgIDxub2JyPgorfCAgICAgICA8aT4KK3wgICAgIDxpPgorfCAgICAgICA8bm9icj4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxiPjxub2JyPjE8aW5zPjxub2JyPjwvYj48aT4yCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGI+Cit8ICAgICAgIDxub2JyPgorfCAgICAgICAgICIxIgorfCAgICAgICAgIDxpbnM+Cit8ICAgICAgIDxub2JyPgorfCAgICAgPG5vYnI+Cit8ICAgICAgIDxpPgorfCAgICAgICAgICIyIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGI+MTxub2JyPjwvYj48aT48bm9icj4yPC9pPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiPgorfCAgICAgICAiMSIKK3wgICAgICAgPG5vYnI+Cit8ICAgICA8bm9icj4KK3wgICAgICAgPGk+Cit8ICAgICA8aT4KK3wgICAgICAgPG5vYnI+Cit8ICAgICAgICAgIjIiCisKKyNkYXRhCis8cD48Y29kZSB4PC9jb2RlPjwvcD4KKworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxjb2RlPgorfCAgICAgICAgIGNvZGU9IiIKK3wgICAgICAgICB4PD0iIgorfCAgICAgPGNvZGU+Cit8ICAgICAgIGNvZGU9IiIKK3wgICAgICAgeDw9IiIKK3wgICAgICAgIgorIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHN2Zz48Zm9yZWlnbk9iamVjdD48cD48aT48L3A+YQorI2Vycm9ycworNDU6IEVuZCB0YWcg4oCccOKAnSBzZWVuLCBidXQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorNDE6IFVuY2xvc2VkIGVsZW1lbnQg4oCcaeKAnS4KKzQ2OiBFbmQgb2YgZmlsZSBzZWVuIGFuZCB0aGVyZSB3ZXJlIG9wZW4gZWxlbWVudHMuCiszNTogVW5jbG9zZWQgZWxlbWVudCDigJxmb3JlaWduT2JqZWN04oCdLgorMjA6IFVuY2xvc2VkIGVsZW1lbnQg4oCcc3Zn4oCdLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgPHA+Cit8ICAgICAgICAgICA8aT4KK3wgICAgICAgICA8aT4KK3wgICAgICAgICAgICJhIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PHN2Zz48Zm9yZWlnbk9iamVjdD48cD48aT48L3A+YQorI2Vycm9ycworNTY6IEVuZCB0YWcg4oCccOKAnSBzZWVuLCBidXQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorNTI6IFVuY2xvc2VkIGVsZW1lbnQg4oCcaeKAnS4KKzU3OiBFbmQgb2YgZmlsZSBzZWVuIGFuZCB0aGVyZSB3ZXJlIG9wZW4gZWxlbWVudHMuCis0NjogVW5jbG9zZWQgZWxlbWVudCDigJxmb3JlaWduT2JqZWN04oCdLgorMzE6IFVuY2xvc2VkIGVsZW1lbnQg4oCcc3Zn4oCdLgorMjI6IFVuY2xvc2VkIGVsZW1lbnQg4oCcdGFibGXigJ0uCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8ICAgICAgICAgICAgICAgICA8cD4KK3wgICAgICAgICAgICAgICAgICAgPGk+Cit8ICAgICAgICAgICAgICAgICA8aT4KK3wgICAgICAgICAgICAgICAgICAgImEiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48bWF0aD48bXRleHQ+PHA+PGk+PC9wPmEKKyNlcnJvcnMKKzM4OiBFbmQgdGFnIOKAnHDigJ0gc2VlbiwgYnV0IHRoZXJlIHdlcmUgb3BlbiBlbGVtZW50cy4KKzM0OiBVbmNsb3NlZCBlbGVtZW50IOKAnGnigJ0uCiszOTogRW5kIG9mIGZpbGUgaW4gYSBmb3JlaWduIG5hbWVzcGFjZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG10ZXh0PgorfCAgICAgICAgIDxwPgorfCAgICAgICAgICAgPGk+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAiYSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRkPjxtYXRoPjxtdGV4dD48cD48aT48L3A+YQorI2Vycm9ycworNTM6IEVuZCB0YWcg4oCccOKAnSBzZWVuLCBidXQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorNDk6IFVuY2xvc2VkIGVsZW1lbnQg4oCcaeKAnS4KKzU0OiBFbmQgb2YgZmlsZSBpbiBhIGZvcmVpZ24gbmFtZXNwYWNlIGNvbnRleHQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgICAgIDxtYXRoIG10ZXh0PgorfCAgICAgICAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICAgICAgICAgIDxpPgorfCAgICAgICAgICAgICAgICAgPGk+Cit8ICAgICAgICAgICAgICAgICAgICJhIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PGRpdj48IS9kaXY+YQorI2Vycm9ycworMjk6IEJvZ3VzIGNvbW1lbnQuCiszNDogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorMjY6IFVuY2xvc2VkIGVsZW1lbnQg4oCcZGl24oCdLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDwhLS0gL2RpdiAtLT4KK3wgICAgICAgImEiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMzLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czMuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZGM1MDEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHMzLmRhdApAQCAtMCwwICsxLDMwNSBAQAorI2RhdGEKKzxoZWFkPjwvaGVhZD48c3R5bGU+PC9zdHlsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChoZWFkKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc3R5bGUpIHRoYXQgY2FuIGJlIGluIGhlYWQuIE1vdmVkLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgIDxib2R5PgorCisjZGF0YQorPGhlYWQ+PC9oZWFkPjxzY3JpcHQ+PC9zY3JpcHQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoaGVhZCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjEgVW5leHBlY3RlZCBzdGFydCB0YWcgKHNjcmlwdCkgdGhhdCBjYW4gYmUgaW4gaGVhZC4gTW92ZWQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c2NyaXB0PgorfCAgIDxib2R5PgorCisjZGF0YQorPGhlYWQ+PC9oZWFkPjwhLS0gLS0+PHN0eWxlPjwvc3R5bGU+PCEtLSAtLT48c2NyaXB0Pjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGhlYWQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzdHlsZSkgdGhhdCBjYW4gYmUgaW4gaGVhZC4gTW92ZWQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICA8c2NyaXB0PgorfCAgIDwhLS0gICAtLT4KK3wgICA8IS0tICAgLS0+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48L2hlYWQ+PCEtLSAtLT54PHN0eWxlPjwvc3R5bGU+PCEtLSAtLT48c2NyaXB0Pjwvc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGhlYWQpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDwhLS0gICAtLT4KK3wgICA8Ym9keT4KK3wgICAgICJ4IgorfCAgICAgPHN0eWxlPgorfCAgICAgPCEtLSAgIC0tPgorfCAgICAgPHNjcmlwdD4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48cHJlPgorPC9wcmU+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cHJlPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxwcmU+Citmb288L3ByZT48L2JvZHk+PC9odG1sPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwcmU+Cit8ICAgICAgICJmb28iCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PHByZT4KKworZm9vPC9wcmU+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cHJlPgorfCAgICAgICAiCitmb28iCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PHByZT4KK2ZvbworPC9wcmU+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cHJlPgorfCAgICAgICAiZm9vCisiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PHByZT54PC9wcmU+PHNwYW4+Cis8L3NwYW4+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cHJlPgorfCAgICAgICAieCIKK3wgICAgIDxzcGFuPgorfCAgICAgICAiCisiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PHByZT54Cit5PC9wcmU+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cHJlPgorfCAgICAgICAieAoreSIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48cHJlPng8ZGl2PgoreTwvcHJlPjwvYm9keT48L2h0bWw+CisjZXJyb3JzCitMaW5lOiAyIENvbDogNyBFbmQgdGFnIChwcmUpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwcmU+Cit8ICAgICAgICJ4IgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgICIKK3kiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48cHJlPiYjeDBhOyYjeDBhO0E8L3ByZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cHJlPgorfCAgICAgICAiCitBIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PEhUTUw+PE1FVEE+PEhFQUQ+PC9IRUFEPjwvSFRNTD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzMyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyBoZWFkIGluIGV4aXN0aW5nIGhlYWQuIElnbm9yZWQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPG1ldGE+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48SFRNTD48SEVBRD48aGVhZD48L0hFQUQ+PC9IVE1MPgorI2Vycm9ycworTGluZTogMSBDb2w6IDMzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIGhlYWQgaW4gZXhpc3RpbmcgaGVhZC4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGV4dGFyZWE+Zm9vPHNwYW4+YmFyPC9zcGFuPjxpPmJhegorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0ZXh0YXJlYSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMzUgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGV4dGFyZWE+Cit8ICAgICAgICJmb288c3Bhbj5iYXI8L3NwYW4+PGk+YmF6IgorCisjZGF0YQorPHRpdGxlPmZvbzxzcGFuPmJhcjwvZW0+PGk+YmF6CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGl0bGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDMwIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGVuZCB0YWcgKHRpdGxlKS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgImZvbzxzcGFuPmJhcjwvZW0+PGk+YmF6IgorfCAgIDxib2R5PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PHRleHRhcmVhPgorPC90ZXh0YXJlYT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGV4dGFyZWE+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48dGV4dGFyZWE+Citmb288L3RleHRhcmVhPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZXh0YXJlYT4KK3wgICAgICAgImZvbyIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjx0ZXh0YXJlYT4KKworZm9vPC90ZXh0YXJlYT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGV4dGFyZWE+Cit8ICAgICAgICIKK2ZvbyIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48dWw+PGxpPjxkaXY+PHA+PGxpPjwvdWw+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2MCBNaXNzaW5nIGVuZCB0YWcgKGRpdiwgbGkpLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx1bD4KK3wgICAgICAgPGxpPgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICA8cD4KK3wgICAgICAgPGxpPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG5vYnI+PG5vYnI+PG5vYnI+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjcgVW5leHBlY3RlZCBzdGFydCB0YWcgKG5vYnIpIGltcGxpZXMgZW5kIHRhZyAobm9icikuCitMaW5lOiAxIENvbDogMzMgVW5leHBlY3RlZCBzdGFydCB0YWcgKG5vYnIpIGltcGxpZXMgZW5kIHRhZyAobm9icikuCitMaW5lOiAxIENvbDogMzMgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG5vYnI+Cit8ICAgICA8bm9icj4KK3wgICAgIDxub2JyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PG5vYnI+PG5vYnI+PC9ub2JyPjxub2JyPgorI2Vycm9ycworTGluZTogMSBDb2w6IDI3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChub2JyKSBpbXBsaWVzIGVuZCB0YWcgKG5vYnIpLgorTGluZTogMSBDb2w6IDQwIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxub2JyPgorfCAgICAgPG5vYnI+Cit8ICAgICA8bm9icj4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxodG1sPjxib2R5PjxwPjx0YWJsZT48L3RhYmxlPjwvYm9keT48L2h0bWw+CisjZXJyb3JzCitOb3Qga25vd24KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzxwPjx0YWJsZT48L3RhYmxlPgorI2Vycm9ycworTm90IGtub3duCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cD4KK3wgICAgICAgPHRhYmxlPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzNC5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzUwNjMyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzNC5kYXQKQEAgLTAsMCArMSw1OSBAQAorI2RhdGEKK2RpcmVjdCBkaXYgY29udGVudAorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitkaXYKKyNkb2N1bWVudAorfCAiZGlyZWN0IGRpdiBjb250ZW50IgorCisjZGF0YQorZGlyZWN0IHRleHRhcmVhIGNvbnRlbnQKKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGV4dGFyZWEKKyNkb2N1bWVudAorfCAiZGlyZWN0IHRleHRhcmVhIGNvbnRlbnQiCisKKyNkYXRhCit0ZXh0YXJlYSBjb250ZW50IHdpdGggPGVtPnBzZXVkbzwvZW0+IDxmb28+bWFya3VwCisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RleHRhcmVhCisjZG9jdW1lbnQKK3wgInRleHRhcmVhIGNvbnRlbnQgd2l0aCA8ZW0+cHNldWRvPC9lbT4gPGZvbz5tYXJrdXAiCisKKyNkYXRhCit0aGlzIGlzICYjeDAwNDM7REFUQSBpbnNpZGUgYSA8c3R5bGU+IGVsZW1lbnQKKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorc3R5bGUKKyNkb2N1bWVudAorfCAidGhpcyBpcyAmI3gwMDQzO0RBVEEgaW5zaWRlIGEgPHN0eWxlPiBlbGVtZW50IgorCisjZGF0YQorPC9wbGFpbnRleHQ+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3BsYWludGV4dAorI2RvY3VtZW50Cit8ICI8L3BsYWludGV4dD4iCisKKyNkYXRhCitzZXR0aW5nIGh0bWwncyBpbm5lckhUTUwKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyNCBVbmV4cGVjdGVkIEVPRiBpbiBpbm5lciBodG1sIG1vZGUuCisjZG9jdW1lbnQtZnJhZ21lbnQKK2h0bWwKKyNkb2N1bWVudAorfCA8aGVhZD4KK3wgPGJvZHk+Cit8ICAgInNldHRpbmcgaHRtbCdzIGlubmVySFRNTCIKKworI2RhdGEKKzx0aXRsZT5zZXR0aW5nIGhlYWQncyBpbm5lckhUTUw8L3RpdGxlPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitoZWFkCisjZG9jdW1lbnQKK3wgPHRpdGxlPgorfCAgICJzZXR0aW5nIGhlYWQncyBpbm5lckhUTUwiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM1LmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3YjUxMjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM1LmRhdApAQCAtMCwwICsxLDE5MSBAQAorI2RhdGEKKzxzdHlsZT4gPCEtLSA8L3N0eWxlPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzdHlsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAoc3R5bGUpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgICAgICAiIDwhLS0gIgorfCAgIDxib2R5PgorfCAgICAgIngiCisKKyNkYXRhCis8c3R5bGU+IDwhLS0gPC9zdHlsZT4gLS0+IDwvc3R5bGU+eAorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHN0eWxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzdHlsZT4KK3wgICAgICAgIiA8IS0tICIKK3wgICAgICIgIgorfCAgIDxib2R5PgorfCAgICAgIi0tPiB4IgorCisjZGF0YQorPHN0eWxlPiA8IS0tPiA8L3N0eWxlPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzdHlsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICIgPCEtLT4gIgorfCAgIDxib2R5PgorfCAgICAgIngiCisKKyNkYXRhCis8c3R5bGU+IDwhLS0tPiA8L3N0eWxlPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzdHlsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8c3R5bGU+Cit8ICAgICAgICIgPCEtLS0+ICIKK3wgICA8Ym9keT4KK3wgICAgICJ4IgorCisjZGF0YQorPGlmcmFtZT4gPCEtLS0+IDwvaWZyYW1lPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChpZnJhbWUpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGlmcmFtZT4KK3wgICAgICAgIiA8IS0tLT4gIgorfCAgICAgIngiCisKKyNkYXRhCis8aWZyYW1lPiA8IS0tLSA8L2lmcmFtZT4tPng8L2lmcmFtZT4gLS0+IDwvaWZyYW1lPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChpZnJhbWUpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGlmcmFtZT4KK3wgICAgICAgIiA8IS0tLSAiCit8ICAgICAiLT54IC0tPiB4IgorCisjZGF0YQorPHNjcmlwdD4gPCEtLSA8L3NjcmlwdD4gLS0+IDwvc2NyaXB0PngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzY3JpcHQpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIiA8IS0tICIKK3wgICAgICIgIgorfCAgIDxib2R5PgorfCAgICAgIi0tPiB4IgorCisjZGF0YQorPHRpdGxlPiA8IS0tIDwvdGl0bGU+IC0tPiA8L3RpdGxlPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0aXRsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICIgPCEtLSAiCit8ICAgICAiICIKK3wgICA8Ym9keT4KK3wgICAgICItLT4geCIKKworI2RhdGEKKzx0ZXh0YXJlYT4gPCEtLS0gPC90ZXh0YXJlYT4tPng8L3RleHRhcmVhPiAtLT4gPC90ZXh0YXJlYT54CisjZXJyb3JzCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRleHRhcmVhKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0ZXh0YXJlYT4KK3wgICAgICAgIiA8IS0tLSAiCit8ICAgICAiLT54IC0tPiB4IgorCisjZGF0YQorPHN0eWxlPiA8ITwvLS0gPC9zdHlsZT54CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc3R5bGUpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgICAgICAiIDwhPC8tLSAiCit8ICAgPGJvZHk+Cit8ICAgICAieCIKKworI2RhdGEKKzxwPjx4bXA+PC94bXA+CisjZXJyb3JzCitYWFg6IFVua25vd24KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgPHhtcD4KKworI2RhdGEKKzx4bXA+IDwhLS0gPiAtLT4gPC94bXA+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoeG1wKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx4bXA+Cit8ICAgICAgICIgPCEtLSA+IC0tPiAiCisKKyNkYXRhCis8dGl0bGU+JmFtcDs8L3RpdGxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRpdGxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIiYiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8dGl0bGU+PCEtLSZhbXA7LS0+PC90aXRsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0aXRsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICI8IS0tJi0tPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzx0aXRsZT48IS0tPC90aXRsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0aXRsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTkgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgZW5kIHRhZyAodGl0bGUpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHRpdGxlPgorfCAgICAgICAiPCEtLSIKK3wgICA8Ym9keT4KKworI2RhdGEKKzxub3NjcmlwdD48IS0tPC9ub3NjcmlwdD4tLT48L25vc2NyaXB0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChub3NjcmlwdCkuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8bm9zY3JpcHQ+Cit8ICAgICAgICI8IS0tIgorfCAgIDxib2R5PgorfCAgICAgIi0tPiIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czYuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzNi5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI4ZWNlNGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM2LmRhdApAQCAtMCwwICsxLDY2MyBAQAorI2RhdGEKKzwhZG9jdHlwZSBodG1sPjwvaGVhZD4gPGhlYWQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjkgVW5leHBlY3RlZCBzdGFydCB0YWcgaGVhZC4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgIiAiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48Zm9ybT48ZGl2PjwvZm9ybT48ZGl2PgorI2Vycm9ycworMzM6IEVuZCB0YWcgImZvcm0iIHNlZW4gYnV0IHRoZXJlIHdlcmUgdW5jbG9zZWQgZWxlbWVudHMuCiszODogRW5kIG9mIGZpbGUgc2VlbiBhbmQgdGhlcmUgd2VyZSBvcGVuIGVsZW1lbnRzLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb3JtPgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGl0bGU+JmFtcDs8L3RpdGxlPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIiYiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGl0bGU+PCEtLSZhbXA7LS0+PC90aXRsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICI8IS0tJi0tPiIKK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA5IE5vIHNwYWNlIGFmdGVyIGxpdGVyYWwgc3RyaW5nICdET0NUWVBFJy4KK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkID4gY2hhcmFjdGVyLiBFeHBlY3RlZCBET0NUWVBFIG5hbWUuCitMaW5lOiAxIENvbDogMTAgRXJyb25lb3VzIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFID4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IS0tLXgKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gY29tbWVudC4KK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgRW5kIG9mIGZpbGUuIEV4cGVjdGVkIERPQ1RZUEUuCisjZG9jdW1lbnQKK3wgPCEtLSAteCAtLT4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8Ym9keT4KKzxkaXY+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYm9keSkuCitMaW5lOiAyIENvbDogNSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudC1mcmFnbWVudAorZGl2CisjZG9jdW1lbnQKK3wgIgorIgorfCA8ZGl2PgorCisjZGF0YQorPGZyYW1lc2V0PjwvZnJhbWVzZXQ+Citmb28KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZnJhbWVzZXQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMiBDb2w6IDMgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycyBpbiB0aGUgYWZ0ZXIgZnJhbWVzZXQgcGhhc2UuIElnbm9yZWQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICIKKyIKKworI2RhdGEKKzxmcmFtZXNldD48L2ZyYW1lc2V0PgorPG5vZnJhbWVzPgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChmcmFtZXNldCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAyIENvbDogMTAgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICIKKyIKK3wgICA8bm9mcmFtZXM+CisKKyNkYXRhCis8ZnJhbWVzZXQ+PC9mcmFtZXNldD4KKzxkaXY+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBzdGFydCB0YWcgKGZyYW1lc2V0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDIgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpIGluIHRoZSBhZnRlciBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgIgorIgorCisjZGF0YQorPGZyYW1lc2V0PjwvZnJhbWVzZXQ+Cis8L2h0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMTAgVW5leHBlY3RlZCBzdGFydCB0YWcgKGZyYW1lc2V0KS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgIgorIgorCisjZGF0YQorPGZyYW1lc2V0PjwvZnJhbWVzZXQ+Cis8L2Rpdj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZnJhbWVzZXQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMiBDb2w6IDYgVW5leHBlY3RlZCBlbmQgdGFnIChkaXYpIGluIHRoZSBhZnRlciBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgIgorIgorCisjZGF0YQorPGZvcm0+PGZvcm0+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZm9ybSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTIgVW5leHBlY3RlZCBzdGFydCB0YWcgKGZvcm0pLgorTGluZTogMSBDb2w6IDEyIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvcm0+CisKKyNkYXRhCis8YnV0dG9uPjxidXR0b24+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYnV0dG9uKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoYnV0dG9uKSBpbXBsaWVzIGVuZCB0YWcgKGJ1dHRvbikuCitMaW5lOiAxIENvbDogMTYgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YnV0dG9uPgorfCAgICAgPGJ1dHRvbj4KKworI2RhdGEKKzx0YWJsZT48dHI+PHRkPjwvdGg+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIwIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGgpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDIwIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjxjYXB0aW9uPjx0ZD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCBlbmQgdGFnICh0ZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCB0YWJsZSBjZWxsIHN0YXJ0IHRhZyAodGQpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLgorTGluZTogMSBDb2w6IDIwIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzx0YWJsZT48Y2FwdGlvbj48ZGl2PgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyMSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzwvY2FwdGlvbj48ZGl2PgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgZW5kIHRhZyAoY2FwdGlvbikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTUgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQtZnJhZ21lbnQKK2NhcHRpb24KKyNkb2N1bWVudAorfCA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjxjYXB0aW9uPjxkaXY+PC9jYXB0aW9uPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAzMSBVbmV4cGVjdGVkIGVuZCB0YWcgKGNhcHRpb24pLiBNaXNzaW5nIGVuZCB0YWcgKGRpdikuCitMaW5lOiAxIENvbDogMzEgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48Y2FwdGlvbj48L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyNCBVbmV4cGVjdGVkIGVuZCB0YWJsZSB0YWcgaW4gY2FwdGlvbi4gR2VuZXJhdGVzIGltcGxpZWQgZW5kIGNhcHRpb24uCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjYXB0aW9uPgorCisjZGF0YQorPC90YWJsZT48ZGl2PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBlbmQgdGFibGUgdGFnIGluIGNhcHRpb24uIEdlbmVyYXRlcyBpbXBsaWVkIGVuZCBjYXB0aW9uLgorTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBlbmQgdGFnIChjYXB0aW9uKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxMyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudC1mcmFnbWVudAorY2FwdGlvbgorI2RvY3VtZW50Cit8IDxkaXY+CisKKyNkYXRhCis8dGFibGU+PGNhcHRpb24+PC9ib2R5PjwvY29sPjwvY29sZ3JvdXA+PC9odG1sPjwvdGJvZHk+PC90ZD48L3Rmb290PjwvdGg+PC90aGVhZD48L3RyPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGJvZHkpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI5IFVuZXhwZWN0ZWQgZW5kIHRhZyAoY29sKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA0MCBVbmV4cGVjdGVkIGVuZCB0YWcgKGNvbGdyb3VwKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA0NyBVbmV4cGVjdGVkIGVuZCB0YWcgKGh0bWwpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDU1IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGJvZHkpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDYwIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGQpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDY4IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGZvb3QpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDczIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGgpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDgxIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGhlYWQpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDg2IFVuZXhwZWN0ZWQgZW5kIHRhZyAodHIpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDg2IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KKworI2RhdGEKKzx0YWJsZT48Y2FwdGlvbj48ZGl2PjwvZGl2PgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAyNyBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGNhcHRpb24+Cit8ICAgICAgICAgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48dHI+PHRkPjwvYm9keT48L2NhcHRpb24+PC9jb2w+PC9jb2xncm91cD48L2h0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIyIFVuZXhwZWN0ZWQgZW5kIHRhZyAoYm9keSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzIgVW5leHBlY3RlZCBlbmQgdGFnIChjYXB0aW9uKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAzOCBVbmV4cGVjdGVkIGVuZCB0YWcgKGNvbCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNDkgVW5leHBlY3RlZCBlbmQgdGFnIChjb2xncm91cCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTYgVW5leHBlY3RlZCBlbmQgdGFnIChodG1sKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1NiBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KKworI2RhdGEKKzwvdGFibGU+PC90Ym9keT48L3Rmb290PjwvdGhlYWQ+PC90cj48ZGl2PgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBlbmQgdGFnICh0YWJsZSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTYgVW5leHBlY3RlZCBlbmQgdGFnICh0Ym9keSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjQgVW5leHBlY3RlZCBlbmQgdGFnICh0Zm9vdCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzIgVW5leHBlY3RlZCBlbmQgdGFnICh0aGVhZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzcgVW5leHBlY3RlZCBlbmQgdGFnICh0cikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNDIgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RkCisjZG9jdW1lbnQKK3wgPGRpdj4KKworI2RhdGEKKzx0YWJsZT48Y29sZ3JvdXA+Zm9vCisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIwIFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJmb28iCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjb2xncm91cD4KKworI2RhdGEKK2Zvbzxjb2w+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMyBVbmV4cGVjdGVkIGVuZCB0YWcgKGNvbGdyb3VwKS4gSWdub3JlZC4KKyNkb2N1bWVudC1mcmFnbWVudAorY29sZ3JvdXAKKyNkb2N1bWVudAorfCA8Y29sPgorCisjZGF0YQorPHRhYmxlPjxjb2xncm91cD48L2NvbD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjMgVGhpcyBlbGVtZW50IChjb2wpIGhhcyBubyBlbmQgdGFnLgorTGluZTogMSBDb2w6IDIzIEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y29sZ3JvdXA+CisKKyNkYXRhCis8ZnJhbWVzZXQ+PGRpdj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZnJhbWVzZXQpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChkaXYpIGluIHRoZSBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxNSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8L2ZyYW1lc2V0PjxmcmFtZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxMSBVbmV4cGVjdGVkIGVuZCB0YWcgdG9rZW4gKGZyYW1lc2V0KSBpbiB0aGUgZnJhbWVzZXQgcGhhc2UgKGlubmVySFRNTCkuCisjZG9jdW1lbnQtZnJhZ21lbnQKK2ZyYW1lc2V0CisjZG9jdW1lbnQKK3wgPGZyYW1lPgorCisjZGF0YQorPGZyYW1lc2V0PjwvZGl2PgorI2Vycm9ycworTGluZTogMSBDb2w6IDEwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChmcmFtZXNldCkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTYgVW5leHBlY3RlZCBlbmQgdGFnIHRva2VuIChkaXYpIGluIHRoZSBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxNiBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8L2JvZHk+PGRpdj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgZW5kIHRhZyAoYm9keSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTIgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQtZnJhZ21lbnQKK2JvZHkKKyNkb2N1bWVudAorfCA8ZGl2PgorCisjZGF0YQorPHRhYmxlPjx0cj48ZGl2PgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAxNiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWJsZSBjb250ZW50LgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzwvdHI+PHRkPgorI2Vycm9ycworTGluZTogMSBDb2w6IDUgVW5leHBlY3RlZCBlbmQgdGFnICh0cikuIElnbm9yZWQuCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RyCisjZG9jdW1lbnQKK3wgPHRkPgorCisjZGF0YQorPC90Ym9keT48L3Rmb290PjwvdGhlYWQ+PHRkPgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBlbmQgdGFnICh0Ym9keSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTYgVW5leHBlY3RlZCBlbmQgdGFnICh0Zm9vdCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjQgVW5leHBlY3RlZCBlbmQgdGFnICh0aGVhZCkuIElnbm9yZWQuCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RyCisjZG9jdW1lbnQKK3wgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0cj48ZGl2Pjx0ZD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTYgVW5leHBlY3RlZCBzdGFydCB0YWcgKGRpdikgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCBpbXBsaWVkIGVuZCB0YWcgKGRpdikgaW4gdGhlIHRhYmxlIHJvdyBwaGFzZS4KK0xpbmU6IDEgQ29sOiAyMCBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+CisKKyNkYXRhCis8Y2FwdGlvbj48Y29sPjxjb2xncm91cD48dGJvZHk+PHRmb290Pjx0aGVhZD48dHI+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoY2FwdGlvbikuCitMaW5lOiAxIENvbDogMTQgVW5leHBlY3RlZCBzdGFydCB0YWcgKGNvbCkuCitMaW5lOiAxIENvbDogMjQgVW5leHBlY3RlZCBzdGFydCB0YWcgKGNvbGdyb3VwKS4KK0xpbmU6IDEgQ29sOiAzMSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGJvZHkpLgorTGluZTogMSBDb2w6IDM4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0Zm9vdCkuCitMaW5lOiAxIENvbDogNDUgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRoZWFkKS4KK0xpbmU6IDEgQ29sOiA0OSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWJsZSBjb250ZW50LgorI2RvY3VtZW50LWZyYWdtZW50Cit0Ym9keQorI2RvY3VtZW50Cit8IDx0cj4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PC90aGVhZD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjIgVW5leHBlY3RlZCBlbmQgdGFnICh0aGVhZCkgaW4gdGhlIHRhYmxlIGJvZHkgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorCisjZGF0YQorPC90YWJsZT48dHI+CisjZXJyb3JzCitMaW5lOiAxIENvbDogOCBVbmV4cGVjdGVkIGVuZCB0YWcgKHRhYmxlKS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxMiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWJsZSBjb250ZW50LgorI2RvY3VtZW50LWZyYWdtZW50Cit0Ym9keQorI2RvY3VtZW50Cit8IDx0cj4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PC9ib2R5PjwvY2FwdGlvbj48L2NvbD48L2NvbGdyb3VwPjwvaHRtbD48L3RkPjwvdGg+PC90cj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMjEgVW5leHBlY3RlZCBlbmQgdGFnIChib2R5KSBpbiB0aGUgdGFibGUgYm9keSBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAzMSBVbmV4cGVjdGVkIGVuZCB0YWcgKGNhcHRpb24pIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDM3IFVuZXhwZWN0ZWQgZW5kIHRhZyAoY29sKSBpbiB0aGUgdGFibGUgYm9keSBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA0OCBVbmV4cGVjdGVkIGVuZCB0YWcgKGNvbGdyb3VwKSBpbiB0aGUgdGFibGUgYm9keSBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1NSBVbmV4cGVjdGVkIGVuZCB0YWcgKGh0bWwpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDYwIFVuZXhwZWN0ZWQgZW5kIHRhZyAodGQpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDY1IFVuZXhwZWN0ZWQgZW5kIHRhZyAodGgpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDcwIFVuZXhwZWN0ZWQgZW5kIHRhZyAodHIpIGluIHRoZSB0YWJsZSBib2R5IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDcwIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhYmxlIGNvbnRlbnQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzx0YWJsZT48dGJvZHk+PC9kaXY+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDIwIFVuZXhwZWN0ZWQgZW5kIHRhZyAoZGl2KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAyMCBFbmQgdGFnIChkaXYpIHNlZW4gdG9vIGVhcmx5LiBFeHBlY3RlZCBvdGhlciBlbmQgdGFnLgorTGluZTogMSBDb2w6IDIwIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhYmxlIGNvbnRlbnQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KKworI2RhdGEKKzx0YWJsZT48dGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE0IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0YWJsZSkgaW1wbGllcyBlbmQgdGFnICh0YWJsZSkuCitMaW5lOiAxIENvbDogMTQgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzx0YWJsZT48L2JvZHk+PC9jYXB0aW9uPjwvY29sPjwvY29sZ3JvdXA+PC9odG1sPjwvdGJvZHk+PC90ZD48L3Rmb290PjwvdGg+PC90aGVhZD48L3RyPgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNCBVbmV4cGVjdGVkIGVuZCB0YWcgKGJvZHkpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgZW5kIHRhZyAoY2FwdGlvbikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzAgVW5leHBlY3RlZCBlbmQgdGFnIChjb2wpLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDQxIFVuZXhwZWN0ZWQgZW5kIHRhZyAoY29sZ3JvdXApLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDQ4IFVuZXhwZWN0ZWQgZW5kIHRhZyAoaHRtbCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTYgVW5leHBlY3RlZCBlbmQgdGFnICh0Ym9keSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNjEgVW5leHBlY3RlZCBlbmQgdGFnICh0ZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNjkgVW5leHBlY3RlZCBlbmQgdGFnICh0Zm9vdCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNzQgVW5leHBlY3RlZCBlbmQgdGFnICh0aCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogODIgVW5leHBlY3RlZCBlbmQgdGFnICh0aGVhZCkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogODcgVW5leHBlY3RlZCBlbmQgdGFnICh0cikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogODcgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwvdGFibGU+PHRyPgorI2Vycm9ycworTGluZTogMSBDb2w6IDggVW5leHBlY3RlZCBlbmQgdGFnICh0YWJsZSkuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMTIgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudC1mcmFnbWVudAordGFibGUKKyNkb2N1bWVudAorfCA8dGJvZHk+Cit8ICAgPHRyPgorCisjZGF0YQorPGJvZHk+PC9ib2R5PjwvaHRtbD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyMCBVbmV4cGVjdGVkIGh0bWwgZW5kIHRhZyBpbiBpbm5lciBodG1sIG1vZGUuCitMaW5lOiAxIENvbDogMjAgVW5leHBlY3RlZCBFT0YgaW4gaW5uZXIgaHRtbCBtb2RlLgorI2RvY3VtZW50LWZyYWdtZW50CitodG1sCisjZG9jdW1lbnQKK3wgPGhlYWQ+Cit8IDxib2R5PgorCisjZGF0YQorPGh0bWw+PGZyYW1lc2V0PjwvZnJhbWVzZXQ+PC9odG1sPiAKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChodG1sKS4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+Cit8ICAgIiAiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iPjxodG1sPjwvaHRtbD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1MCBFcnJvbmVvdXMgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiA2MyBVbmV4cGVjdGVkIGVuZCB0YWcgKGh0bWwpIGFmdGVyIHRoZSAoaW1wbGllZCkgcm9vdCBlbGVtZW50LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiIj4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8cGFyYW0+PGZyYW1lc2V0PjwvZnJhbWVzZXQ+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAocGFyYW0pLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChmcmFtZXNldCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPHNvdXJjZT48ZnJhbWVzZXQ+PC9mcmFtZXNldD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzb3VyY2UpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDE3IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChmcmFtZXNldCkuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPHRyYWNrPjxmcmFtZXNldD48L2ZyYW1lc2V0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDcgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRyYWNrKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZnJhbWVzZXQpLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxmcmFtZXNldD4KKworI2RhdGEKKzwvaHRtbD48ZnJhbWVzZXQ+PC9mcmFtZXNldD4KKyNlcnJvcnMKKzc6IEVuZCB0YWcgc2VlbiB3aXRob3V0IHNlZWluZyBhIGRvY3R5cGUgZmlyc3QuIEV4cGVjdGVkIOKAnDwhRE9DVFlQRSBodG1sPuKAnS4KKzE3OiBTdHJheSDigJxmcmFtZXNldOKAnSBzdGFydCB0YWcuCisxNzog4oCcZnJhbWVzZXTigJ0gc3RhcnQgdGFnIHNlZW4uCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorCisjZGF0YQorPC9ib2R5PjxmcmFtZXNldD48L2ZyYW1lc2V0PgorI2Vycm9ycworNzogRW5kIHRhZyBzZWVuIHdpdGhvdXQgc2VlaW5nIGEgZG9jdHlwZSBmaXJzdC4gRXhwZWN0ZWQg4oCcPCFET0NUWVBFIGh0bWw+4oCdLgorMTc6IFN0cmF5IOKAnGZyYW1lc2V04oCdIHN0YXJ0IHRhZy4KKzE3OiDigJxmcmFtZXNldOKAnSBzdGFydCB0YWcgc2Vlbi4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM3LmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czcuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MTkzYzYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM3LmRhdApAQCAtMCwwICsxLDM5MCBAQAorI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxib2R5Pjx0aXRsZT5YPC90aXRsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICJYIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjx0aXRsZT5YPC90aXRsZT48L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDI5IFVuZXhwZWN0ZWQgc3RhcnQgdGFnICh0aXRsZSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogMzggVW5leHBlY3RlZCBlbmQgdGFnICh0aXRsZSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRpdGxlPgorfCAgICAgICAiWCIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxoZWFkPjwvaGVhZD48dGl0bGU+WDwvdGl0bGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzUgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRpdGxlKSB0aGF0IGNhbiBiZSBpbiBoZWFkLiBNb3ZlZC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgICA8dGl0bGU+Cit8ICAgICAgICJYIgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PC9oZWFkPjx0aXRsZT5YPC90aXRsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyOSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGl0bGUpIHRoYXQgY2FuIGJlIGluIGhlYWQuIE1vdmVkLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDx0aXRsZT4KK3wgICAgICAgIlgiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PG1ldGE+PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyOCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobWV0YSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1ldGE+Cit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+WDx0cj48dGQ+PHRhYmxlPiA8bWV0YT48L3RhYmxlPjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjMgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycyBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA0NSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobWV0YSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIlgiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxtZXRhPgorfCAgICAgICAgICAgICA8dGFibGU+Cit8ICAgICAgICAgICAgICAgIiAiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aHRtbD4gPGhlYWQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+IDxoZWFkPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48c3R5bGU+IDx0cj54IDwvc3R5bGU+IDwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8c3R5bGU+Cit8ICAgICAgICAgIiA8dHI+eCAiCit8ICAgICAgICIgIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjxUQk9EWT48c2NyaXB0PiA8dHI+eCA8L3NjcmlwdD4gPC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8c2NyaXB0PgorfCAgICAgICAgICAgIiA8dHI+eCAiCit8ICAgICAgICAgIiAiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48cD48YXBwbGV0PjxwPlg8L3A+PC9hcHBsZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIDxhcHBsZXQ+Cit8ICAgICAgICAgPHA+Cit8ICAgICAgICAgICAiWCIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjxsaXN0aW5nPgorWDwvbGlzdGluZz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bGlzdGluZz4KK3wgICAgICAgIlgiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2VsZWN0PjxpbnB1dD5YCisjZXJyb3JzCitMaW5lOiAxIENvbDogMzAgVW5leHBlY3RlZCBpbnB1dCBzdGFydCB0YWcgaW4gdGhlIHNlbGVjdCBwaGFzZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorfCAgICAgPGlucHV0PgorfCAgICAgIlgiCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48c2VsZWN0PjxzZWxlY3Q+WAorI2Vycm9ycworTGluZTogMSBDb2w6IDMxIFVuZXhwZWN0ZWQgc2VsZWN0IHN0YXJ0IHRhZyBpbiB0aGUgc2VsZWN0IHBoYXNlIHRyZWF0ZWQgYXMgc2VsZWN0IGVuZCB0YWcuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICJYIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPjxpbnB1dCB0eXBlPWhpZERFTj48L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDQxIFVuZXhwZWN0ZWQgaW5wdXQgd2l0aCB0eXBlIGhpZGRlbiBpbiB0YWJsZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGlucHV0PgorfCAgICAgICAgIHR5cGU9ImhpZERFTiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT5YPGlucHV0IHR5cGU9aGlkREVOPjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjMgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycyBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiWCIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPGlucHV0PgorfCAgICAgICAgIHR5cGU9ImhpZERFTiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT4gIDxpbnB1dCB0eXBlPWhpZERFTj48L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDQzIFVuZXhwZWN0ZWQgaW5wdXQgd2l0aCB0eXBlIGhpZGRlbiBpbiB0YWJsZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgIiAgIgorfCAgICAgICA8aW5wdXQ+Cit8ICAgICAgICAgdHlwZT0iaGlkREVOIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHRhYmxlPiAgPGlucHV0IHR5cGU9J2hpZERFTic+PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0NSBVbmV4cGVjdGVkIGlucHV0IHdpdGggdHlwZSBoaWRkZW4gaW4gdGFibGUgY29udGV4dC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgICIgICIKK3wgICAgICAgPGlucHV0PgorfCAgICAgICAgIHR5cGU9ImhpZERFTiIKKworI2RhdGEKKzwhZG9jdHlwZSBodG1sPjx0YWJsZT48aW5wdXQgdHlwZT0iIGhpZGRlbiI+PGlucHV0IHR5cGU9aGlkREVOPjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNDQgVW5leHBlY3RlZCBzdGFydCB0YWcgKGlucHV0KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8aW5wdXQ+Cit8ICAgICAgIHR5cGU9IiBoaWRkZW4iCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxpbnB1dD4KK3wgICAgICAgICB0eXBlPSJoaWRERU4iCisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48dGFibGU+PHNlbGVjdD5YPHRyPgorI2Vycm9ycworTGluZTogMSBDb2w6IDMwIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzZWxlY3QpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDM1IFVuZXhwZWN0ZWQgdGFibGUgZWxlbWVudCBzdGFydCB0YWcgKHRycykgaW4gdGhlIHNlbGVjdCBpbiB0YWJsZSBwaGFzZS4KK0xpbmU6IDEgQ29sOiAzNSBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCB0YWJsZSBjb250ZW50LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgICJYIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PHNlbGVjdD5YPC9zZWxlY3Q+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgIlgiCisKKyNkYXRhCis8IURPQ1RZUEUgaFRtTD48aHRtbD48L2h0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjggVW5leHBlY3RlZCBlbmQgdGFnIChodG1sKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgSFRNTD48aHRtbD48L2h0bWw+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMjggVW5leHBlY3RlZCBlbmQgdGFnIChodG1sKSBhZnRlciB0aGUgKGltcGxpZWQpIHJvb3QgZWxlbWVudC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8Ym9keT5YPC9ib2R5PjwvYm9keT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAyMSBVbmV4cGVjdGVkIGVuZCB0YWcgdG9rZW4gKGJvZHkpIGluIHRoZSBhZnRlciBib2R5IHBoYXNlLgorTGluZTogMSBDb2w6IDIxIFVuZXhwZWN0ZWQgRU9GIGluIGlubmVyIGh0bWwgbW9kZS4KKyNkb2N1bWVudC1mcmFnbWVudAoraHRtbAorI2RvY3VtZW50Cit8IDxoZWFkPgorfCA8Ym9keT4KK3wgICAiWCIKKworI2RhdGEKKzxkaXY+PHA+YTwveD4gYgorI2Vycm9ycworTGluZTogMSBDb2w6IDUgVW5leHBlY3RlZCBzdGFydCB0YWcgKGRpdikuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTMgVW5leHBlY3RlZCBlbmQgdGFnICh4KS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiAxNSBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDxwPgorfCAgICAgICAgICJhIGIiCisKKyNkYXRhCis8dGFibGU+PHRyPjx0ZD48Y29kZT48L2NvZGU+IDwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICA8Y29kZT4KK3wgICAgICAgICAgICAgIiAiCisKKyNkYXRhCis8dGFibGU+PGI+PHRyPjx0ZD5hYWE8L3RkPjwvdHI+YmJiPC90YWJsZT5jY2MKKyNlcnJvcnMKK1hYWDogRml4IG1lCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgIDxiPgorfCAgICAgICAiYmJiIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAiYWFhIgorfCAgICAgPGI+Cit8ICAgICAgICJjY2MiCisKKyNkYXRhCitBPHRhYmxlPjx0cj4gQjwvdHI+IEI8L3RhYmxlPgorI2Vycm9ycworWFhYOiBGaXggbWUKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJBIEIgQiIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKK0E8dGFibGU+PHRyPiBCPC90cj4gPC9lbT5DPC90YWJsZT4KKyNlcnJvcnMKK1hYWDogRml4IG1lCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiQSBCQyIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAiICIKKworI2RhdGEKKzxzZWxlY3Q+PGtleWdlbj4KKyNlcnJvcnMKK05vdCBrbm93bgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgIDxrZXlnZW4+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM4LmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czguZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZTZjOTEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdGVzdHM4LmRhdApAQCAtMCwwICsxLDE0OCBAQAorI2RhdGEKKzxkaXY+Cis8ZGl2PjwvZGl2PgorPC9zcGFuPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMyBDb2w6IDcgVW5leHBlY3RlZCBlbmQgdGFnIChzcGFuKS4gSWdub3JlZC4KK0xpbmU6IDMgQ29sOiA4IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGRpdj4KK3wgICAgICAgIgorIgorfCAgICAgICA8ZGl2PgorfCAgICAgICAiCit4IgorCisjZGF0YQorPGRpdj54PGRpdj48L2Rpdj4KKzwvc3Bhbj54CisjZXJyb3JzCitMaW5lOiAxIENvbDogNSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoZGl2KS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDIgQ29sOiA3IFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3BhbikuIElnbm9yZWQuCitMaW5lOiAyIENvbDogOCBFeHBlY3RlZCBjbG9zaW5nIHRhZy4gVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICJ4IgorfCAgICAgICA8ZGl2PgorfCAgICAgICAiCit4IgorCisjZGF0YQorPGRpdj54PGRpdj48L2Rpdj54PC9zcGFuPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI1IFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3BhbikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjYgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAieCIKK3wgICAgICAgPGRpdj4KK3wgICAgICAgInh4IgorCisjZGF0YQorPGRpdj54PGRpdj48L2Rpdj55PC9zcGFuPnoKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI1IFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3BhbikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMjYgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICAieCIKK3wgICAgICAgPGRpdj4KK3wgICAgICAgInl6IgorCisjZGF0YQorPHRhYmxlPjxkaXY+eDxkaXY+PC9kaXY+eDwvc3Bhbj54CisjZXJyb3JzCitMaW5lOiAxIENvbDogNyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAodGFibGUpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDEyIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDE4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChkaXYpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDI0IFVuZXhwZWN0ZWQgZW5kIHRhZyAoZGl2KSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiAzMiBVbmV4cGVjdGVkIGVuZCB0YWcgKHNwYW4pIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDMyIFVuZXhwZWN0ZWQgZW5kIHRhZyAoc3BhbikuIElnbm9yZWQuCitMaW5lOiAxIENvbDogMzMgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICJ4IgorfCAgICAgICA8ZGl2PgorfCAgICAgICAieHgiCit8ICAgICA8dGFibGU+CisKKyNkYXRhCit4PHRhYmxlPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxIFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogOSBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDkgVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgdGFibGUgY29udGVudC4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJ4eCIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKK3g8dGFibGU+PHRhYmxlPngKKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAxIFVuZXhwZWN0ZWQgbm9uLXNwYWNlIGNoYXJhY3RlcnMuIEV4cGVjdGVkIERPQ1RZUEUuCitMaW5lOiAxIENvbDogMTUgVW5leHBlY3RlZCBzdGFydCB0YWcgKHRhYmxlKSBpbXBsaWVzIGVuZCB0YWcgKHRhYmxlKS4KK0xpbmU6IDEgQ29sOiAxNiBVbmV4cGVjdGVkIG5vbi1zcGFjZSBjaGFyYWN0ZXJzIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDE2IFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhYmxlIGNvbnRlbnQuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAieCIKK3wgICAgIDx0YWJsZT4KK3wgICAgICJ4IgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPGI+YTxkaXY+PC9kaXY+PGRpdj48L2I+eQorI2Vycm9ycworTGluZTogMSBDb2w6IDMgVW5leHBlY3RlZCBzdGFydCB0YWcgKGIpLiBFeHBlY3RlZCBET0NUWVBFLgorTGluZTogMSBDb2w6IDI0IEVuZCB0YWcgKGIpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMjUgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgICAgImEiCit8ICAgICAgIDxkaXY+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8Yj4KK3wgICAgICAgInkiCisKKyNkYXRhCis8YT48ZGl2PjxwPjwvYT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChhKS4gRXhwZWN0ZWQgRE9DVFlQRS4KK0xpbmU6IDEgQ29sOiAxNSBFbmQgdGFnIChhKSB2aW9sYXRlcyBzdGVwIDEsIHBhcmFncmFwaCAzIG9mIHRoZSBhZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtLgorTGluZTogMSBDb2w6IDE1IEVuZCB0YWcgKGEpIHZpb2xhdGVzIHN0ZXAgMSwgcGFyYWdyYXBoIDMgb2YgdGhlIGFkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG0uCitMaW5lOiAxIENvbDogMTUgRXhwZWN0ZWQgY2xvc2luZyB0YWcuIFVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDxhPgorfCAgICAgICA8cD4KK3wgICAgICAgICA8YT4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czkuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzOS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU0ZTI3YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0czkuZGF0CkBAIC0wLDAgKzEsNDU3IEBACisjZGF0YQorPCFET0NUWVBFIGh0bWw+PG1hdGg+PC9tYXRoPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48bWF0aD48L21hdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxtYXRoPjxtaT4KKyNlcnJvcnMKKzI1OiBFbmQgb2YgZmlsZSBpbiBhIGZvcmVpZ24gbmFtZXNwYWNlIGNvbnRleHQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggbWk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48bWF0aD48YW5ub3RhdGlvbi14bWw+PHN2Zz48dT4KKyNlcnJvcnMKKzQ1OiBIVE1MIHN0YXJ0IHRhZyDigJx14oCdIGluIGEgZm9yZWlnbiBuYW1lc3BhY2UgY29udGV4dC4KKzQ1OiBFbmQgb2YgZmlsZSBzZWVuIGFuZCB0aGVyZSB3ZXJlIG9wZW4gZWxlbWVudHMuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Cit8ICAgICAgICAgPHN2ZyBzdmc+Cit8ICAgICA8dT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjxzZWxlY3Q+PG1hdGg+PC9tYXRoPjwvc2VsZWN0PgorI2Vycm9ycworTGluZTogMSBDb2w6IDM1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChtYXRoKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDQyIFVuZXhwZWN0ZWQgZW5kIHRhZyAobWF0aCkgaW4gdGhlIHNlbGVjdCBwaGFzZS4gSWdub3JlZC4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c2VsZWN0PgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHNlbGVjdD48b3B0aW9uPjxtYXRoPjwvbWF0aD48L29wdGlvbj48L3NlbGVjdD4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0MyBVbmV4cGVjdGVkIHN0YXJ0IHRhZyB0b2tlbiAobWF0aCkgaW4gdGhlIHNlbGVjdCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1MCBVbmV4cGVjdGVkIGVuZCB0YWcgKG1hdGgpIGluIHRoZSBzZWxlY3QgcGhhc2UuIElnbm9yZWQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgPG9wdGlvbj4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48bWF0aD48L21hdGg+PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzNCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobWF0aCkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNDEgVW5leHBlY3RlZCBlbmQgdGFnIChtYXRoKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgPHRhYmxlPgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjxtYXRoPjxtaT5mb288L21pPjwvbWF0aD48L3RhYmxlPgorI2Vycm9ycworTGluZTogMSBDb2w6IDM0IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChtYXRoKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA0NiBVbmV4cGVjdGVkIGVuZCB0YWcgKG1pKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA1MyBVbmV4cGVjdGVkIGVuZCB0YWcgKG1hdGgpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICJmb28iCit8ICAgICA8dGFibGU+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+PC9tYXRoPjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogMzQgVW5leHBlY3RlZCBzdGFydCB0YWcgKG1hdGgpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDQ2IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWkpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDU4IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWkpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDY1IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWF0aCkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgImZvbyIKK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgImJhciIKK3wgICAgIDx0YWJsZT4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48dGJvZHk+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+PC9tYXRoPjwvdGJvZHk+PC90YWJsZT4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0MSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobWF0aCkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNTMgVW5leHBlY3RlZCBlbmQgdGFnIChtaSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNjUgVW5leHBlY3RlZCBlbmQgdGFnIChtaSkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCitMaW5lOiAxIENvbDogNzIgVW5leHBlY3RlZCBlbmQgdGFnIChtYXRoKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAiZm9vIgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAiYmFyIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PHRib2R5Pjx0cj48bWF0aD48bWk+Zm9vPC9taT48bWk+YmFyPC9taT48L21hdGg+PC90cj48L3Rib2R5PjwvdGFibGU+CisjZXJyb3JzCitMaW5lOiAxIENvbDogNDUgVW5leHBlY3RlZCBzdGFydCB0YWcgKG1hdGgpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDU3IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWkpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDY5IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWkpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDc2IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWF0aCkgaW4gdGFibGUgY29udGV4dCBjYXVzZWQgdm9vZG9vIG1vZGUuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgImZvbyIKK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgImJhciIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48dGJvZHk+PHRyPjx0ZD48bWF0aD48bWk+Zm9vPC9taT48bWk+YmFyPC9taT48L21hdGg+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICAgICAiZm9vIgorfCAgICAgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAgICAgImJhciIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48dGJvZHk+PHRyPjx0ZD48bWF0aD48bWk+Zm9vPC9taT48bWk+YmFyPC9taT48L21hdGg+PHA+YmF6PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICAgICAiZm9vIgorfCAgICAgICAgICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICAgPHA+Cit8ICAgICAgICAgICAgICAgImJheiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48bWF0aD48bWk+Zm9vPC9taT48bWk+YmFyPC9taT48L21hdGg+PHA+YmF6PC9jYXB0aW9uPjwvdGFibGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJiYXoiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+PHA+YmF6PC90YWJsZT48cD5xdXV4CisjZXJyb3JzCitMaW5lOiAxIENvbDogNzAgSFRNTCBzdGFydCB0YWcgInAiIGluIGEgZm9yZWlnbiBuYW1lc3BhY2UgY29udGV4dC4KK0xpbmU6IDEgQ29sOiA4MSBVbmV4cGVjdGVkIGVuZCB0YWJsZSB0YWcgaW4gY2FwdGlvbi4gR2VuZXJhdGVzIGltcGxpZWQgZW5kIGNhcHRpb24uCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICA8cD4KK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1dXgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PGNhcHRpb24+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+YmF6PC90YWJsZT48cD5xdXV4CisjZXJyb3JzCitMaW5lOiAxIENvbDogNzggVW5leHBlY3RlZCBlbmQgdGFibGUgdGFnIGluIGNhcHRpb24uIEdlbmVyYXRlcyBpbXBsaWVkIGVuZCBjYXB0aW9uLgorTGluZTogMSBDb2w6IDc4IFVuZXhwZWN0ZWQgZW5kIHRhZyAoY2FwdGlvbikuIE1pc3NpbmcgZW5kIHRhZyAobWF0aCkuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8Y2FwdGlvbj4KK3wgICAgICAgICA8bWF0aCBtYXRoPgorfCAgICAgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgICAgICJmb28iCit8ICAgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICAgImJhciIKK3wgICAgICAgICAgICJiYXoiCit8ICAgICA8cD4KK3wgICAgICAgInF1dXgiCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keT48dGFibGU+PGNvbGdyb3VwPjxtYXRoPjxtaT5mb288L21pPjxtaT5iYXI8L21pPjxwPmJhejwvdGFibGU+PHA+cXV1eAorI2Vycm9ycworTGluZTogMSBDb2w6IDQ0IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChtYXRoKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA1NiBVbmV4cGVjdGVkIGVuZCB0YWcgKG1pKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA2OCBVbmV4cGVjdGVkIGVuZCB0YWcgKG1pKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KK0xpbmU6IDEgQ29sOiA3MSBIVE1MIHN0YXJ0IHRhZyAicCIgaW4gYSBmb3JlaWduIG5hbWVzcGFjZSBjb250ZXh0LgorTGluZTogMSBDb2w6IDcxIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChwKSBpbiB0YWJsZSBjb250ZXh0IGNhdXNlZCB2b29kb28gbW9kZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAiZm9vIgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAiYmFyIgorfCAgICAgPHA+Cit8ICAgICAgICJiYXoiCit8ICAgICA8dGFibGU+Cit8ICAgICAgIDxjb2xncm91cD4KK3wgICAgIDxwPgorfCAgICAgICAicXV1eCIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48dHI+PHRkPjxzZWxlY3Q+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+PHA+YmF6PC90YWJsZT48cD5xdXV4CisjZXJyb3JzCitMaW5lOiAxIENvbDogNTAgVW5leHBlY3RlZCBzdGFydCB0YWcgdG9rZW4gKG1hdGgpIGluIHRoZSBzZWxlY3QgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTQgVW5leHBlY3RlZCBzdGFydCB0YWcgdG9rZW4gKG1pKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDYyIFVuZXhwZWN0ZWQgZW5kIHRhZyAobWkpIGluIHRoZSBzZWxlY3QgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNjYgVW5leHBlY3RlZCBzdGFydCB0YWcgdG9rZW4gKG1pKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDc0IFVuZXhwZWN0ZWQgZW5kIHRhZyAobWkpIGluIHRoZSBzZWxlY3QgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNzcgVW5leHBlY3RlZCBzdGFydCB0YWcgdG9rZW4gKHApIGluIHRoZSBzZWxlY3QgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogODggVW5leHBlY3RlZCB0YWJsZSBlbGVtZW50IGVuZCB0YWcgKHRhYmxlcykgaW4gdGhlIHNlbGVjdCBpbiB0YWJsZSBwaGFzZS4KKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgIDxzZWxlY3Q+Cit8ICAgICAgICAgICAgICAgImZvb2JhcmJheiIKK3wgICAgIDxwPgorfCAgICAgICAicXV1eCIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48c2VsZWN0PjxtYXRoPjxtaT5mb288L21pPjxtaT5iYXI8L21pPjxwPmJhejwvdGFibGU+PHA+cXV1eAorI2Vycm9ycworTGluZTogMSBDb2w6IDM2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChzZWxlY3QpIGluIHRhYmxlIGNvbnRleHQgY2F1c2VkIHZvb2RvbyBtb2RlLgorTGluZTogMSBDb2w6IDQyIFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChtYXRoKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDQ2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChtaSkgaW4gdGhlIHNlbGVjdCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1NCBVbmV4cGVjdGVkIGVuZCB0YWcgKG1pKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDU4IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChtaSkgaW4gdGhlIHNlbGVjdCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA2NiBVbmV4cGVjdGVkIGVuZCB0YWcgKG1pKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDY5IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChwKSBpbiB0aGUgc2VsZWN0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDgwIFVuZXhwZWN0ZWQgdGFibGUgZWxlbWVudCBlbmQgdGFnICh0YWJsZXMpIGluIHRoZSBzZWxlY3QgaW4gdGFibGUgcGhhc2UuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHNlbGVjdD4KK3wgICAgICAgImZvb2JhcmJheiIKK3wgICAgIDx0YWJsZT4KK3wgICAgIDxwPgorfCAgICAgICAicXV1eCIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5PjwvYm9keT48L2h0bWw+PG1hdGg+PG1pPmZvbzwvbWk+PG1pPmJhcjwvbWk+PHA+YmF6CisjZXJyb3JzCitMaW5lOiAxIENvbDogNDEgVW5leHBlY3RlZCBzdGFydCB0YWcgKG1hdGgpLgorTGluZTogMSBDb2w6IDY4IEhUTUwgc3RhcnQgdGFnICJwIiBpbiBhIGZvcmVpZ24gbmFtZXNwYWNlIGNvbnRleHQuCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgImZvbyIKK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgImJhciIKK3wgICAgIDxwPgorfCAgICAgICAiYmF6IgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHk+PC9ib2R5PjxtYXRoPjxtaT5mb288L21pPjxtaT5iYXI8L21pPjxwPmJhegorI2Vycm9ycworTGluZTogMSBDb2w6IDM0IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChtYXRoKSBpbiB0aGUgYWZ0ZXIgYm9keSBwaGFzZS4KK0xpbmU6IDEgQ29sOiA2MSBIVE1MIHN0YXJ0IHRhZyAicCIgaW4gYSBmb3JlaWduIG5hbWVzcGFjZSBjb250ZXh0LgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICJmb28iCit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgICJiYXIiCit8ICAgICA8cD4KK3wgICAgICAgImJheiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxmcmFtZXNldD48bWF0aD48bWk+PC9taT48bWk+PC9taT48cD48c3Bhbj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiAzMSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyB0b2tlbiAobWF0aCkgaW4gdGhlIGZyYW1lc2V0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDM1IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIHRva2VuIChtaSkgaW4gdGhlIGZyYW1lc2V0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDQwIFVuZXhwZWN0ZWQgZW5kIHRhZyB0b2tlbiAobWkpIGluIHRoZSBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA0NCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyB0b2tlbiAobWkpIGluIHRoZSBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA0OSBVbmV4cGVjdGVkIGVuZCB0YWcgdG9rZW4gKG1pKSBpbiB0aGUgZnJhbWVzZXQgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNTIgVW5leHBlY3RlZCBzdGFydCB0YWcgdG9rZW4gKHApIGluIHRoZSBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1OCBVbmV4cGVjdGVkIHN0YXJ0IHRhZyB0b2tlbiAoc3BhbikgaW4gdGhlIGZyYW1lc2V0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDU4IEV4cGVjdGVkIGNsb3NpbmcgdGFnLiBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48ZnJhbWVzZXQ+PC9mcmFtZXNldD48bWF0aD48bWk+PC9taT48bWk+PC9taT48cD48c3Bhbj4KKyNlcnJvcnMKK0xpbmU6IDEgQ29sOiA0MiBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobWF0aCkgaW4gdGhlIGFmdGVyIGZyYW1lc2V0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDQ2IFVuZXhwZWN0ZWQgc3RhcnQgdGFnIChtaSkgaW4gdGhlIGFmdGVyIGZyYW1lc2V0IHBoYXNlLiBJZ25vcmVkLgorTGluZTogMSBDb2w6IDUxIFVuZXhwZWN0ZWQgZW5kIHRhZyAobWkpIGluIHRoZSBhZnRlciBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA1NSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAobWkpIGluIHRoZSBhZnRlciBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA2MCBVbmV4cGVjdGVkIGVuZCB0YWcgKG1pKSBpbiB0aGUgYWZ0ZXIgZnJhbWVzZXQgcGhhc2UuIElnbm9yZWQuCitMaW5lOiAxIENvbDogNjMgVW5leHBlY3RlZCBzdGFydCB0YWcgKHApIGluIHRoZSBhZnRlciBmcmFtZXNldCBwaGFzZS4gSWdub3JlZC4KK0xpbmU6IDEgQ29sOiA2OSBVbmV4cGVjdGVkIHN0YXJ0IHRhZyAoc3BhbikgaW4gdGhlIGFmdGVyIGZyYW1lc2V0IHBoYXNlLiBJZ25vcmVkLgorI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keSB4bGluazpocmVmPWZvbz48bWF0aCB4bGluazpocmVmPWZvbz48L21hdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgeGxpbms6aHJlZj0iZm9vIgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgeGxpbmsgaHJlZj0iZm9vIgorCisjZGF0YQorPCFET0NUWVBFIGh0bWw+PGJvZHkgeGxpbms6aHJlZj1mb28geG1sOmxhbmc9ZW4+PG1hdGg+PG1pIHhtbDpsYW5nPWVuIHhsaW5rOmhyZWY9Zm9vPjwvbWk+PC9tYXRoPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIHhsaW5rOmhyZWY9ImZvbyIKK3wgICAgIHhtbDpsYW5nPSJlbiIKK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1pPgorfCAgICAgICAgIHhsaW5rIGhyZWY9ImZvbyIKK3wgICAgICAgICB4bWwgbGFuZz0iZW4iCisKKyNkYXRhCis8IURPQ1RZUEUgaHRtbD48Ym9keSB4bGluazpocmVmPWZvbyB4bWw6bGFuZz1lbj48bWF0aD48bWkgeG1sOmxhbmc9ZW4geGxpbms6aHJlZj1mb28gLz48L21hdGg+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgeGxpbms6aHJlZj0iZm9vIgorfCAgICAgeG1sOmxhbmc9ImVuIgorfCAgICAgPG1hdGggbWF0aD4KK3wgICAgICAgPG1hdGggbWk+Cit8ICAgICAgICAgeGxpbmsgaHJlZj0iZm9vIgorfCAgICAgICAgIHhtbCBsYW5nPSJlbiIKKworI2RhdGEKKzwhRE9DVFlQRSBodG1sPjxib2R5IHhsaW5rOmhyZWY9Zm9vIHhtbDpsYW5nPWVuPjxtYXRoPjxtaSB4bWw6bGFuZz1lbiB4bGluazpocmVmPWZvbyAvPmJhcjwvbWF0aD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8IURPQ1RZUEUgaHRtbD4KK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICB4bGluazpocmVmPSJmb28iCit8ICAgICB4bWw6bGFuZz0iZW4iCit8ICAgICA8bWF0aCBtYXRoPgorfCAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICB4bGluayBocmVmPSJmb28iCit8ICAgICAgICAgeG1sIGxhbmc9ImVuIgorfCAgICAgICAiYmFyIgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3Rlc3RzX2lubmVySFRNTF8xLmRhdCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0c19pbm5lckhUTUxfMS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM3ODY2MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi90ZXN0c19pbm5lckhUTUxfMS5kYXQKQEAgLTAsMCArMSw3NDEgQEAKKyNkYXRhCis8Ym9keT48c3Bhbj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorYm9keQorI2RvY3VtZW50Cit8IDxzcGFuPgorCisjZGF0YQorPHNwYW4+PGJvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2JvZHkKKyNkb2N1bWVudAorfCA8c3Bhbj4KKworI2RhdGEKKzxzcGFuPjxib2R5PgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitkaXYKKyNkb2N1bWVudAorfCA8c3Bhbj4KKworI2RhdGEKKzxib2R5PjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitodG1sCisjZG9jdW1lbnQKK3wgPGhlYWQ+Cit8IDxib2R5PgorfCAgIDxzcGFuPgorCisjZGF0YQorPGZyYW1lc2V0PjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Citib2R5CisjZG9jdW1lbnQKK3wgPHNwYW4+CisKKyNkYXRhCis8c3Bhbj48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2JvZHkKKyNkb2N1bWVudAorfCA8c3Bhbj4KKworI2RhdGEKKzxzcGFuPjxmcmFtZXNldD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorZGl2CisjZG9jdW1lbnQKK3wgPHNwYW4+CisKKyNkYXRhCis8ZnJhbWVzZXQ+PHNwYW4+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2h0bWwKKyNkb2N1bWVudAorfCA8aGVhZD4KK3wgPGZyYW1lc2V0PgorCisjZGF0YQorPHRhYmxlPjx0cj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGFibGUKKyNkb2N1bWVudAorfCA8dGJvZHk+Cit8ICAgPHRyPgorCisjZGF0YQorPC90YWJsZT48dHI+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RhYmxlCisjZG9jdW1lbnQKK3wgPHRib2R5PgorfCAgIDx0cj4KKworI2RhdGEKKzxhPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0YWJsZQorI2RvY3VtZW50Cit8IDxhPgorCisjZGF0YQorPGE+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RhYmxlCisjZG9jdW1lbnQKK3wgPGE+CisKKyNkYXRhCis8YT48Y2FwdGlvbj5hCisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RhYmxlCisjZG9jdW1lbnQKK3wgPGE+Cit8IDxjYXB0aW9uPgorfCAgICJhIgorCisjZGF0YQorPGE+PGNvbGdyb3VwPjxjb2w+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RhYmxlCisjZG9jdW1lbnQKK3wgPGE+Cit8IDxjb2xncm91cD4KK3wgICA8Y29sPgorCisjZGF0YQorPGE+PHRib2R5Pjx0cj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGFibGUKKyNkb2N1bWVudAorfCA8YT4KK3wgPHRib2R5PgorfCAgIDx0cj4KKworI2RhdGEKKzxhPjx0Zm9vdD48dHI+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RhYmxlCisjZG9jdW1lbnQKK3wgPGE+Cit8IDx0Zm9vdD4KK3wgICA8dHI+CisKKyNkYXRhCis8YT48dGhlYWQ+PHRyPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0YWJsZQorI2RvY3VtZW50Cit8IDxhPgorfCA8dGhlYWQ+Cit8ICAgPHRyPgorCisjZGF0YQorPGE+PHRyPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0YWJsZQorI2RvY3VtZW50Cit8IDxhPgorfCA8dGJvZHk+Cit8ICAgPHRyPgorCisjZGF0YQorPGE+PHRoPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0YWJsZQorI2RvY3VtZW50Cit8IDxhPgorfCA8dGJvZHk+Cit8ICAgPHRyPgorfCAgICAgPHRoPgorCisjZGF0YQorPGE+PHRkPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0YWJsZQorI2RvY3VtZW50Cit8IDxhPgorfCA8dGJvZHk+Cit8ICAgPHRyPgorfCAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjwvdGFibGU+PHRib2R5PgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHRhYmxlPgorCisjZGF0YQorPC90YWJsZT48c3Bhbj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorY2FwdGlvbgorI2RvY3VtZW50Cit8IDxzcGFuPgorCisjZGF0YQorPHNwYW4+PC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorY2FwdGlvbgorI2RvY3VtZW50Cit8IDxzcGFuPgorCisjZGF0YQorPC9jYXB0aW9uPjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHNwYW4+CisKKyNkYXRhCis8c3Bhbj48L2NhcHRpb24+PHNwYW4+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2NhcHRpb24KKyNkb2N1bWVudAorfCA8c3Bhbj4KK3wgICA8c3Bhbj4KKworI2RhdGEKKzxzcGFuPjxjYXB0aW9uPjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHNwYW4+Cit8ICAgPHNwYW4+CisKKyNkYXRhCis8c3Bhbj48Y29sPjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHNwYW4+Cit8ICAgPHNwYW4+CisKKyNkYXRhCis8c3Bhbj48Y29sZ3JvdXA+PHNwYW4+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2NhcHRpb24KKyNkb2N1bWVudAorfCA8c3Bhbj4KK3wgICA8c3Bhbj4KKworI2RhdGEKKzxzcGFuPjxodG1sPjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHNwYW4+Cit8ICAgPHNwYW4+CisKKyNkYXRhCis8c3Bhbj48dGJvZHk+PHNwYW4+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2NhcHRpb24KKyNkb2N1bWVudAorfCA8c3Bhbj4KK3wgICA8c3Bhbj4KKworI2RhdGEKKzxzcGFuPjx0ZD48c3Bhbj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorY2FwdGlvbgorI2RvY3VtZW50Cit8IDxzcGFuPgorfCAgIDxzcGFuPgorCisjZGF0YQorPHNwYW4+PHRmb290PjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHNwYW4+Cit8ICAgPHNwYW4+CisKKyNkYXRhCis8c3Bhbj48dGhlYWQ+PHNwYW4+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2NhcHRpb24KKyNkb2N1bWVudAorfCA8c3Bhbj4KK3wgICA8c3Bhbj4KKworI2RhdGEKKzxzcGFuPjx0aD48c3Bhbj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorY2FwdGlvbgorI2RvY3VtZW50Cit8IDxzcGFuPgorfCAgIDxzcGFuPgorCisjZGF0YQorPHNwYW4+PHRyPjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHNwYW4+Cit8ICAgPHNwYW4+CisKKyNkYXRhCis8c3Bhbj48L3RhYmxlPjxzcGFuPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitjYXB0aW9uCisjZG9jdW1lbnQKK3wgPHNwYW4+Cit8ICAgPHNwYW4+CisKKyNkYXRhCis8L2NvbGdyb3VwPjxjb2w+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2NvbGdyb3VwCisjZG9jdW1lbnQKK3wgPGNvbD4KKworI2RhdGEKKzxhPjxjb2w+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2NvbGdyb3VwCisjZG9jdW1lbnQKK3wgPGNvbD4KKworI2RhdGEKKzxjYXB0aW9uPjxhPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0Ym9keQorI2RvY3VtZW50Cit8IDxhPgorCisjZGF0YQorPGNvbD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzxjb2xncm91cD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0Ym9keT48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0Zm9vdD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0aGVhZD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzwvdGFibGU+PGE+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3Rib2R5CisjZG9jdW1lbnQKK3wgPGE+CisKKyNkYXRhCis8YT48dHI+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3Rib2R5CisjZG9jdW1lbnQKK3wgPGE+Cit8IDx0cj4KKworI2RhdGEKKzxhPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KK3wgPHRyPgorfCAgIDx0ZD4KKworI2RhdGEKKzxhPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KK3wgPHRyPgorfCAgIDx0ZD4KKworI2RhdGEKKzxhPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8YT4KK3wgPHRyPgorfCAgIDx0ZD4KKworI2RhdGEKKzx0ZD48dGFibGU+PHRib2R5PjxhPjx0cj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGJvZHkKKyNkb2N1bWVudAorfCA8dHI+Cit8ICAgPHRkPgorfCAgICAgPGE+Cit8ICAgICA8dGFibGU+Cit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+CisKKyNkYXRhCis8L3RyPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordHIKKyNkb2N1bWVudAorfCA8dGQ+CisKKyNkYXRhCis8dGQ+PHRhYmxlPjxhPjx0cj48L3RyPjx0cj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordHIKKyNkb2N1bWVudAorfCA8dGQ+Cit8ICAgPGE+Cit8ICAgPHRhYmxlPgorfCAgICAgPHRib2R5PgorfCAgICAgICA8dHI+Cit8ICAgICAgIDx0cj4KKworI2RhdGEKKzxjYXB0aW9uPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordHIKKyNkb2N1bWVudAorfCA8dGQ+CisKKyNkYXRhCis8Y29sPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordHIKKyNkb2N1bWVudAorfCA8dGQ+CisKKyNkYXRhCis8Y29sZ3JvdXA+PHRkPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0cgorI2RvY3VtZW50Cit8IDx0ZD4KKworI2RhdGEKKzx0Ym9keT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RyCisjZG9jdW1lbnQKK3wgPHRkPgorCisjZGF0YQorPHRmb290Pjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordHIKKyNkb2N1bWVudAorfCA8dGQ+CisKKyNkYXRhCis8dGhlYWQ+PHRkPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0cgorI2RvY3VtZW50Cit8IDx0ZD4KKworI2RhdGEKKzx0cj48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RyCisjZG9jdW1lbnQKK3wgPHRkPgorCisjZGF0YQorPC90YWJsZT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RyCisjZG9jdW1lbnQKK3wgPHRkPgorCisjZGF0YQorPHRkPjx0YWJsZT48L3RhYmxlPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordHIKKyNkb2N1bWVudAorfCA8dGQ+Cit8ICAgPHRhYmxlPgorfCA8dGQ+CisKKyNkYXRhCis8dGQ+PHRhYmxlPjwvdGFibGU+PHRkPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0cgorI2RvY3VtZW50Cit8IDx0ZD4KK3wgICA8dGFibGU+Cit8IDx0ZD4KKworI2RhdGEKKzxjYXB0aW9uPjxhPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0ZAorI2RvY3VtZW50Cit8IDxhPgorCisjZGF0YQorPGNvbD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzxjb2xncm91cD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0Ym9keT48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0Zm9vdD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0aD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0aGVhZD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzx0cj48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzwvdGFibGU+PGE+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RkCisjZG9jdW1lbnQKK3wgPGE+CisKKyNkYXRhCis8L3Rib2R5PjxhPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0ZAorI2RvY3VtZW50Cit8IDxhPgorCisjZGF0YQorPC90ZD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzwvdGZvb3Q+PGE+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RkCisjZG9jdW1lbnQKK3wgPGE+CisKKyNkYXRhCis8L3RoZWFkPjxhPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50Cit0ZAorI2RvY3VtZW50Cit8IDxhPgorCisjZGF0YQorPC90aD48YT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8YT4KKworI2RhdGEKKzwvdHI+PGE+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3RkCisjZG9jdW1lbnQKK3wgPGE+CisKKyNkYXRhCis8dGFibGU+PHRkPjx0ZD4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAordGQKKyNkb2N1bWVudAorfCA8dGFibGU+Cit8ICAgPHRib2R5PgorfCAgICAgPHRyPgorfCAgICAgICA8dGQ+Cit8ICAgICAgIDx0ZD4KKworI2RhdGEKKzwvc2VsZWN0PjxvcHRpb24+CisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK3NlbGVjdAorI2RvY3VtZW50Cit8IDxvcHRpb24+CisKKyNkYXRhCis8aW5wdXQ+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorc2VsZWN0CisjZG9jdW1lbnQKK3wgPG9wdGlvbj4KKworI2RhdGEKKzxrZXlnZW4+PG9wdGlvbj4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorc2VsZWN0CisjZG9jdW1lbnQKK3wgPG9wdGlvbj4KKworI2RhdGEKKzx0ZXh0YXJlYT48b3B0aW9uPgorI2Vycm9ycworI2RvY3VtZW50LWZyYWdtZW50CitzZWxlY3QKKyNkb2N1bWVudAorfCA8b3B0aW9uPgorCisjZGF0YQorPC9odG1sPjwhLS1hYmMtLT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAoraHRtbAorI2RvY3VtZW50Cit8IDxoZWFkPgorfCA8Ym9keT4KK3wgPCEtLSBhYmMgLS0+CisKKyNkYXRhCis8L2ZyYW1lc2V0PjxmcmFtZT4KKyNlcnJvcnMKKyNkb2N1bWVudC1mcmFnbWVudAorZnJhbWVzZXQKKyNkb2N1bWVudAorfCA8ZnJhbWU+CisKKyNkYXRhCisjZXJyb3JzCisjZG9jdW1lbnQtZnJhZ21lbnQKK2h0bWwKKyNkb2N1bWVudAorfCA8aGVhZD4KK3wgPGJvZHk+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vdHJpY2t5MDEuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3RyaWNreTAxLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODQxOTkyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3RyaWNreTAxLmRhdApAQCAtMCwwICsxLDI2MSBAQAorI2RhdGEKKzxiPjxwPkJvbGQgPC9iPiBOb3QgYm9sZDwvcD4KK0Fsc28gbm90IGJvbGQuCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Yj4KK3wgICAgIDxwPgorfCAgICAgICA8Yj4KK3wgICAgICAgICAiQm9sZCAiCit8ICAgICAgICIgTm90IGJvbGQiCit8ICAgICAiCitBbHNvIG5vdCBib2xkLiIKKworI2RhdGEKKzxodG1sPgorPGZvbnQgY29sb3I9cmVkPjxpPkl0YWxpYyBhbmQgUmVkPHA+SXRhbGljIGFuZCBSZWQgPC9mb250PiBKdXN0IGl0YWxpYy48L3A+IEl0YWxpYyBvbmx5LjwvaT4gUGxhaW4KKzxwPkkgc2hvdWxkIG5vdCBiZSByZWQuIDxmb250IGNvbG9yPXJlZD5SZWQuIDxpPkl0YWxpYyBhbmQgcmVkLjwvcD4KKzxwPkl0YWxpYyBhbmQgcmVkLiA8L2k+IFJlZC48L2ZvbnQ+IEkgc2hvdWxkIG5vdCBiZSByZWQuPC9wPgorPGI+Qm9sZCA8aT5Cb2xkIGFuZCBpdGFsaWM8L2I+IE9ubHkgSXRhbGljIDwvaT4gUGxhaW4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb250PgorfCAgICAgICBjb2xvcj0icmVkIgorfCAgICAgICA8aT4KK3wgICAgICAgICAiSXRhbGljIGFuZCBSZWQiCit8ICAgICA8aT4KK3wgICAgICAgPHA+Cit8ICAgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgICBjb2xvcj0icmVkIgorfCAgICAgICAgICAgIkl0YWxpYyBhbmQgUmVkICIKK3wgICAgICAgICAiIEp1c3QgaXRhbGljLiIKK3wgICAgICAgIiBJdGFsaWMgb25seS4iCit8ICAgICAiIFBsYWluCisiCit8ICAgICA8cD4KK3wgICAgICAgIkkgc2hvdWxkIG5vdCBiZSByZWQuICIKK3wgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgY29sb3I9InJlZCIKK3wgICAgICAgICAiUmVkLiAiCit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAiSXRhbGljIGFuZCByZWQuIgorfCAgICAgPGZvbnQ+Cit8ICAgICAgIGNvbG9yPSJyZWQiCit8ICAgICAgIDxpPgorfCAgICAgICAgICIKKyIKK3wgICAgIDxwPgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICBjb2xvcj0icmVkIgorfCAgICAgICAgIDxpPgorfCAgICAgICAgICAgIkl0YWxpYyBhbmQgcmVkLiAiCit8ICAgICAgICAgIiBSZWQuIgorfCAgICAgICAiIEkgc2hvdWxkIG5vdCBiZSByZWQuIgorfCAgICAgIgorIgorfCAgICAgPGI+Cit8ICAgICAgICJCb2xkICIKK3wgICAgICAgPGk+Cit8ICAgICAgICAgIkJvbGQgYW5kIGl0YWxpYyIKK3wgICAgIDxpPgorfCAgICAgICAiIE9ubHkgSXRhbGljICIKK3wgICAgICIgUGxhaW4iCisKKyNkYXRhCis8aHRtbD48Ym9keT4KKzxwPjxmb250IHNpemU9IjciPkZpcnN0IHBhcmFncmFwaC48L3A+Cis8cD5TZWNvbmQgcGFyYWdyYXBoLjwvcD48L2ZvbnQ+Cis8Yj48cD48aT5Cb2xkIGFuZCBJdGFsaWM8L2I+IEl0YWxpYzwvcD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICIKKyIKK3wgICAgIDxwPgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICBzaXplPSI3IgorfCAgICAgICAgICJGaXJzdCBwYXJhZ3JhcGguIgorfCAgICAgPGZvbnQ+Cit8ICAgICAgIHNpemU9IjciCit8ICAgICAgICIKKyIKK3wgICAgICAgPHA+Cit8ICAgICAgICAgIlNlY29uZCBwYXJhZ3JhcGguIgorfCAgICAgIgorIgorfCAgICAgPGI+Cit8ICAgICA8cD4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPGk+Cit8ICAgICAgICAgICAiQm9sZCBhbmQgSXRhbGljIgorfCAgICAgICA8aT4KK3wgICAgICAgICAiIEl0YWxpYyIKKworI2RhdGEKKzxodG1sPgorPGRsPgorPGR0PjxiPkJvbworPGRkPkdvbz8KKzwvZGw+Cis8L2h0bWw+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGw+Cit8ICAgICAgICIKKyIKK3wgICAgICAgPGR0PgorfCAgICAgICAgIDxiPgorfCAgICAgICAgICAgIkJvbworIgorfCAgICAgICA8ZGQ+Cit8ICAgICAgICAgPGI+Cit8ICAgICAgICAgICAiR29vPworIgorfCAgICAgPGI+Cit8ICAgICAgICIKKyIKKworI2RhdGEKKzxodG1sPjxib2R5PgorPGxhYmVsPjxhPjxkaXY+SGVsbG88ZGl2PldvcmxkPC9kaXY+PC9hPjwvbGFiZWw+ICAKKzwvYm9keT48L2h0bWw+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiCisiCit8ICAgICA8bGFiZWw+Cit8ICAgICAgIDxhPgorfCAgICAgICA8ZGl2PgorfCAgICAgICAgIDxhPgorfCAgICAgICAgICAgIkhlbGxvIgorfCAgICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICAgIldvcmxkIgorfCAgICAgICAgICIgIAorIgorCisjZGF0YQorPHRhYmxlPjxjZW50ZXI+IDxmb250PmE8L2NlbnRlcj4gPGltZz4gPHRyPjx0ZD4gPC90ZD4gPC90cj4gPC90YWJsZT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxjZW50ZXI+Cit8ICAgICAgICIgIgorfCAgICAgICA8Zm9udD4KK3wgICAgICAgICAiYSIKK3wgICAgIDxmb250PgorfCAgICAgICA8aW1nPgorfCAgICAgICAiICIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgIiAiCit8ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+Cit8ICAgICAgICAgICAgICIgIgorfCAgICAgICAgICAgIiAiCit8ICAgICAgICAgIiAiCisKKyNkYXRhCis8dGFibGU+PHRyPjxwPjxhPjxwPllvdSBzaG91bGQgc2VlIHRoaXMgdGV4dC4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwPgorfCAgICAgICA8YT4KK3wgICAgIDxwPgorfCAgICAgICA8YT4KK3wgICAgICAgICAiWW91IHNob3VsZCBzZWUgdGhpcyB0ZXh0LiIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KKworI2RhdGEKKzxUQUJMRT4KKzxUUj4KKzxDRU5URVI+PENFTlRFUj48VEQ+PC9URD48L1RSPjxUUj4KKzxGT05UPgorPFRBQkxFPjx0cj48L3RyPjwvVEFCTEU+Cis8L1A+Cis8YT48L2ZvbnQ+PGZvbnQ+PC9hPgorVGhpcyBwYWdlIGNvbnRhaW5zIGFuIGluc2FuZWx5IGJhZGx5LW5lc3RlZCB0YWcgc2VxdWVuY2UuCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Y2VudGVyPgorfCAgICAgICA8Y2VudGVyPgorfCAgICAgPGZvbnQ+Cit8ICAgICAgICIKKyIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgIgorIgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgIgorIgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgICIKKyIKK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgIDxmb250PgorfCAgICAgICAiCisiCit8ICAgICAgIDxwPgorfCAgICAgICAiCisiCit8ICAgICAgIDxhPgorfCAgICAgPGE+Cit8ICAgICAgIDxmb250PgorfCAgICAgPGZvbnQ+Cit8ICAgICAgICIKK1RoaXMgcGFnZSBjb250YWlucyBhbiBpbnNhbmVseSBiYWRseS1uZXN0ZWQgdGFnIHNlcXVlbmNlLiIKKworI2RhdGEKKzxodG1sPgorPGJvZHk+Cis8Yj48bm9icj48ZGl2PlRoaXMgdGV4dCBpcyBpbiBhIGRpdiBpbnNpZGUgYSBub2JyPC9ub2JyPk1vcmUgdGV4dCB0aGF0IHNob3VsZCBub3QgYmUgaW4gdGhlIG5vYnIsIGkuZS4sIHRoZQorbm9iciBzaG91bGQgaGF2ZSBjbG9zZWQgdGhlIGRpdiBpbnNpZGUgaXQgaW1wbGljaXRseS4gPC9iPjxwcmU+QSBwcmUgdGFnIG91dHNpZGUgZXZlcnl0aGluZyBlbHNlLjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIgorIgorfCAgICAgPGI+Cit8ICAgICAgIDxub2JyPgorfCAgICAgPGRpdj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPG5vYnI+Cit8ICAgICAgICAgICAiVGhpcyB0ZXh0IGlzIGluIGEgZGl2IGluc2lkZSBhIG5vYnIiCit8ICAgICAgICAgIk1vcmUgdGV4dCB0aGF0IHNob3VsZCBub3QgYmUgaW4gdGhlIG5vYnIsIGkuZS4sIHRoZQorbm9iciBzaG91bGQgaGF2ZSBjbG9zZWQgdGhlIGRpdiBpbnNpZGUgaXQgaW1wbGljaXRseS4gIgorfCAgICAgICA8cHJlPgorfCAgICAgICAgICJBIHByZSB0YWcgb3V0c2lkZSBldmVyeXRoaW5nIGVsc2UuIgorfCAgICAgICAiCisKKyIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbi93ZWJraXQwMS5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vd2Via2l0MDEuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YmM0MzYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vd2Via2l0MDEuZGF0CkBAIC0wLDAgKzEsNTk0IEBACisjZGF0YQorVGVzdAorI2Vycm9ycworTGluZTogMSBDb2w6IDQgVW5leHBlY3RlZCBub24tc3BhY2UgY2hhcmFjdGVycy4gRXhwZWN0ZWQgRE9DVFlQRS4KKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJUZXN0IgorCisjZGF0YQorPGRpdj48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+CisKKyNkYXRhCis8ZGl2PlRlc3Q8L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICJUZXN0IgorCisjZGF0YQorPGRpCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+CisKKyNkYXRhCis8ZGl2PkhlbGxvPC9kaXY+Cis8c2NyaXB0PgorY29uc29sZS5sb2coIlBBU1MiKTsKKzwvc2NyaXB0PgorPGRpdj5CeWU8L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICJIZWxsbyIKK3wgICAgICIKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKK2NvbnNvbGUubG9nKCJQQVNTIik7CisiCit8ICAgICAiCisiCit8ICAgICA8ZGl2PgorfCAgICAgICAiQnllIgorCisjZGF0YQorPGRpdiBmb289ImJhciI+SGVsbG88L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGZvbz0iYmFyIgorfCAgICAgICAiSGVsbG8iCisKKyNkYXRhCis8ZGl2PkhlbGxvPC9kaXY+Cis8c2NyaXB0PgorY29uc29sZS5sb2coIkZPTzxzcGFuPkJBUjwvc3Bhbj5CQVoiKTsKKzwvc2NyaXB0PgorPGRpdj5CeWU8L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgICJIZWxsbyIKK3wgICAgICIKKyIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICIKK2NvbnNvbGUubG9nKCJGT088c3Bhbj5CQVI8L3NwYW4+QkFaIik7CisiCit8ICAgICAiCisiCit8ICAgICA8ZGl2PgorfCAgICAgICAiQnllIgorCisjZGF0YQorPGZvbyBiYXI9ImJheiI+PC9mb28+PHBvdGF0byBxdWFjaz0iZHVjayI+PC9wb3RhdG8+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Zm9vPgorfCAgICAgICBiYXI9ImJheiIKK3wgICAgIDxwb3RhdG8+Cit8ICAgICAgIHF1YWNrPSJkdWNrIgorCisjZGF0YQorPGZvbyBiYXI9ImJheiI+PHBvdGF0byBxdWFjaz0iZHVjayI+PC9wb3RhdG8+PC9mb28+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Zm9vPgorfCAgICAgICBiYXI9ImJheiIKK3wgICAgICAgPHBvdGF0bz4KK3wgICAgICAgICBxdWFjaz0iZHVjayIKKworI2RhdGEKKzxmb28+PC9mb28gYmFyPSJiYXoiPjxwb3RhdG8+PC9wb3RhdG8gcXVhY2s9ImR1Y2siPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGZvbz4KK3wgICAgIDxwb3RhdG8+CisKKyNkYXRhCis8LyB0dHR0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhLS0gIHR0dHQgLS0+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPGRpdiBGT08gPjxpbWc+PGltZz48L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIGZvbz0iIgorfCAgICAgICA8aW1nPgorfCAgICAgICA8aW1nPgorCisjZGF0YQorPHA+VGVzdDwvcDxwPlRlc3QyPC9wPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgICJUZXN0VGVzdDIiCisKKyNkYXRhCis8cmRhcjovL3Byb2JsZW0vNjg2OTY4Nz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxyZGFyOj4KK3wgICAgICAgNjg2OTY4Nz0iIgorfCAgICAgICBwcm9ibGVtPSIiCisKKyNkYXRhCis8QT50ZXN0PCAvQT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgICAidGVzdDwgL0E+IgorCisjZGF0YQorJmx0OworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIjwiCisKKyNkYXRhCis8Ym9keSBmb289J2Jhcic+PGJvZHkgZm9vPSdiYXonIHlvPSdtYW1hJz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIGZvbz0iYmFyIgorfCAgICAgeW89Im1hbWEiCisKKyNkYXRhCis8Ym9keT48L2JyIGZvbz0iYmFyIj48L2JvZHk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YnI+CisKKyNkYXRhCis8YmR5PjxiciBmb289ImJhciI+PC9ib2R5PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGJkeT4KK3wgICAgICAgPGJyPgorfCAgICAgICAgIGZvbz0iYmFyIgorCisjZGF0YQorPGJvZHk+PC9ib2R5PjwvYnIgZm9vPSJiYXIiPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGJyPgorCisjZGF0YQorPGJkeT48L2JvZHk+PGJyIGZvbz0iYmFyIj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxiZHk+Cit8ICAgICAgIDxicj4KK3wgICAgICAgICBmb289ImJhciIKKworI2RhdGEKKzxodG1sPjxib2R5PjwvYm9keT48L2h0bWw+PCEtLSBIaSB0aGVyZSAtLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgPCEtLSAgSGkgdGhlcmUgIC0tPgorCisjZGF0YQorPGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRtbD54PCEtLSBIaSB0aGVyZSAtLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJ4IgorfCAgICAgPCEtLSAgSGkgdGhlcmUgIC0tPgorCisjZGF0YQorPGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRtbD54PCEtLSBIaSB0aGVyZSAtLT48L2h0bWw+PCEtLSBBZ2FpbiAtLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJ4IgorfCAgICAgPCEtLSAgSGkgdGhlcmUgIC0tPgorfCA8IS0tICBBZ2FpbiAgLS0+CisKKyNkYXRhCis8aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPng8IS0tIEhpIHRoZXJlIC0tPjwvYm9keT48L2h0bWw+PCEtLSBBZ2FpbiAtLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJ4IgorfCAgICAgPCEtLSAgSGkgdGhlcmUgIC0tPgorfCA8IS0tICBBZ2FpbiAgLS0+CisKKyNkYXRhCis8aHRtbD48Ym9keT48cnVieT48ZGl2PjxycD54eDwvcnA+PC9kaXY+PC9ydWJ5PjwvYm9keT48L2h0bWw+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cnVieT4KK3wgICAgICAgPGRpdj4KK3wgICAgICAgICA8cnA+Cit8ICAgICAgICAgICAieHgiCisKKyNkYXRhCis8aHRtbD48Ym9keT48cnVieT48ZGl2PjxydD54eDwvcnQ+PC9kaXY+PC9ydWJ5PjwvYm9keT48L2h0bWw+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8cnVieT4KK3wgICAgICAgPGRpdj4KK3wgICAgICAgICA8cnQ+Cit8ICAgICAgICAgICAieHgiCisKKyNkYXRhCis8aHRtbD48ZnJhbWVzZXQ+PCEtLTEtLT48bm9mcmFtZXM+QTwvbm9mcmFtZXM+PCEtLTItLT48L2ZyYW1lc2V0PjwhLS0zLS0+PG5vZnJhbWVzPkI8L25vZnJhbWVzPjwhLS00LS0+PC9odG1sPjwhLS01LS0+PG5vZnJhbWVzPkM8L25vZnJhbWVzPjwhLS02LS0+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGZyYW1lc2V0PgorfCAgICAgPCEtLSAxIC0tPgorfCAgICAgPG5vZnJhbWVzPgorfCAgICAgICAiQSIKK3wgICAgIDwhLS0gMiAtLT4KK3wgICA8IS0tIDMgLS0+Cit8ICAgPG5vZnJhbWVzPgorfCAgICAgIkIiCit8ICAgPCEtLSA0IC0tPgorfCAgIDxub2ZyYW1lcz4KK3wgICAgICJDIgorfCA8IS0tIDUgLS0+Cit8IDwhLS0gNiAtLT4KKworI2RhdGEKKzxzZWxlY3Q+PG9wdGlvbj5BPHNlbGVjdD48b3B0aW9uPkI8c2VsZWN0PjxvcHRpb24+QzxzZWxlY3Q+PG9wdGlvbj5EPHNlbGVjdD48b3B0aW9uPkU8c2VsZWN0PjxvcHRpb24+RjxzZWxlY3Q+PG9wdGlvbj5HPHNlbGVjdD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDxvcHRpb24+Cit8ICAgICAgICAgIkEiCit8ICAgICA8b3B0aW9uPgorfCAgICAgICAiQiIKK3wgICAgICAgPHNlbGVjdD4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgICAgICAgICAgIkMiCit8ICAgICA8b3B0aW9uPgorfCAgICAgICAiRCIKK3wgICAgICAgPHNlbGVjdD4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgICAgICAgICAgIkUiCit8ICAgICA8b3B0aW9uPgorfCAgICAgICAiRiIKK3wgICAgICAgPHNlbGVjdD4KK3wgICAgICAgICA8b3B0aW9uPgorfCAgICAgICAgICAgIkciCisKKyNkYXRhCis8ZGQ+PGRkPjxkdD48ZHQ+PGRkPjxsaT48bGk+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGQ+Cit8ICAgICA8ZGQ+Cit8ICAgICA8ZHQ+Cit8ICAgICA8ZHQ+Cit8ICAgICA8ZGQ+Cit8ICAgICAgIDxsaT4KK3wgICAgICAgPGxpPgorCisjZGF0YQorPGRpdj48Yj48L2Rpdj48ZGl2Pjxub2JyPmE8bm9icj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxkaXY+Cit8ICAgICAgIDxiPgorfCAgICAgPGRpdj4KK3wgICAgICAgPGI+Cit8ICAgICAgICAgPG5vYnI+Cit8ICAgICAgICAgICAiYSIKK3wgICAgICAgICA8bm9icj4KKworI2RhdGEKKzxoZWFkPjwvaGVhZD4KKzxib2R5PjwvYm9keT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAiCisiCit8ICAgPGJvZHk+CisKKyNkYXRhCis8aGVhZD48L2hlYWQ+IDxzdHlsZT48L3N0eWxlPmRkZAorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHN0eWxlPgorfCAgICIgIgorfCAgIDxib2R5PgorfCAgICAgImRkZCIKKworI2RhdGEKKzxrYmQ+PHRhYmxlPjwva2JkPjxjb2w+PHNlbGVjdD48dHI+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8a2JkPgorfCAgICAgICA8c2VsZWN0PgorfCAgICAgICA8dGFibGU+Cit8ICAgICAgICAgPGNvbGdyb3VwPgorfCAgICAgICAgICAgPGNvbD4KK3wgICAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgICA8dHI+CisKKyNkYXRhCis8a2JkPjx0YWJsZT48L2tiZD48Y29sPjxzZWxlY3Q+PHRyPjwvdGFibGU+PGRpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxrYmQ+Cit8ICAgICAgIDxzZWxlY3Q+Cit8ICAgICAgIDx0YWJsZT4KK3wgICAgICAgICA8Y29sZ3JvdXA+Cit8ICAgICAgICAgICA8Y29sPgorfCAgICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgPGRpdj4KKworI2RhdGEKKzxhPjxsaT48c3R5bGU+PC9zdHlsZT48dGl0bGU+PC90aXRsZT48L2E+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8YT4KK3wgICAgIDxsaT4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgPHN0eWxlPgorfCAgICAgICAgIDx0aXRsZT4KKworI2RhdGEKKzxmb250PjwvcD48cD48bWV0YT48dGl0bGU+PC90aXRsZT48L2ZvbnQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8Zm9udD4KK3wgICAgICAgPHA+Cit8ICAgICA8cD4KK3wgICAgICAgPGZvbnQ+Cit8ICAgICAgICAgPG1ldGE+Cit8ICAgICAgICAgPHRpdGxlPgorCisjZGF0YQorPGE+PGNlbnRlcj48dGl0bGU+PC90aXRsZT48YT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxhPgorfCAgICAgPGNlbnRlcj4KK3wgICAgICAgPGE+Cit8ICAgICAgICAgPHRpdGxlPgorfCAgICAgICA8YT4KKworI2RhdGEKKzxzdmc+PHRpdGxlPjxkaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyB0aXRsZT4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPHN2Zz48dGl0bGU+PHJlY3Q+PGRpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIHRpdGxlPgorfCAgICAgICAgIDxyZWN0PgorfCAgICAgICAgICAgPGRpdj4KKworI2RhdGEKKzxzdmc+PHRpdGxlPjxzdmc+PGRpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIHRpdGxlPgorfCAgICAgICAgIDxzdmcgc3ZnPgorfCAgICAgICAgIDxkaXY+CisKKyNkYXRhCis8aW1nIDw9IiIgRkFJTD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxpbWc+Cit8ICAgICAgIDw9IiIKK3wgICAgICAgZmFpbD0iIgorCisjZGF0YQorPHVsPjxsaT48ZGl2IGlkPSdmb28nLz5BPC9saT48bGk+QjxkaXY+QzwvZGl2PjwvbGk+PC91bD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx1bD4KK3wgICAgICAgPGxpPgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICBpZD0iZm9vIgorfCAgICAgICAgICAgIkEiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICAiQiIKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgIkMiCisKKyNkYXRhCis8c3ZnPjxlbT48ZGVzYz48L2VtPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICA8ZW0+Cit8ICAgICAgIDxkZXNjPgorCisjZGF0YQorPHN2Zz48dGZvb3Q+PC9taT48dGQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgPHN2ZyB0Zm9vdD4KK3wgICAgICAgICA8c3ZnIHRkPgorCisjZGF0YQorPG1hdGg+PG1yb3c+PG1yb3c+PG1uPjE8L21uPjwvbXJvdz48bWk+YTwvbWk+PC9tcm93PjwvbWF0aD4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxtYXRoIG1hdGg+Cit8ICAgICAgIDxtYXRoIG1yb3c+Cit8ICAgICAgICAgPG1hdGggbXJvdz4KK3wgICAgICAgICAgIDxtYXRoIG1uPgorfCAgICAgICAgICAgICAiMSIKK3wgICAgICAgICA8bWF0aCBtaT4KK3wgICAgICAgICAgICJhIgorCisjZGF0YQorPCFkb2N0eXBlIGh0bWw+PGlucHV0IHR5cGU9ImhpZGRlbiI+PGZyYW1lc2V0PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8ZnJhbWVzZXQ+CisKKyNkYXRhCis8IWRvY3R5cGUgaHRtbD48aW5wdXQgdHlwZT0iYnV0dG9uIj48ZnJhbWVzZXQ+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPCFET0NUWVBFIGh0bWw+Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGlucHV0PgorfCAgICAgICB0eXBlPSJidXR0b24iCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Njg4NzliCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdApAQCAtMCwwICsxLDk0IEBACisjZGF0YQorPGZvbyBiYXI9cXV4Lz4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxmb28+Cit8ICAgICAgIGJhcj0icXV4LyIKKworI2RhdGEKKzxwIGlkPSJzdGF0dXMiPjxub3NjcmlwdD48c3Ryb25nPkE8L3N0cm9uZz48L25vc2NyaXB0PjxzcGFuPkI8L3NwYW4+PC9wPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHA+Cit8ICAgICAgIGlkPSJzdGF0dXMiCit8ICAgICAgIDxub3NjcmlwdD4KK3wgICAgICAgICAiPHN0cm9uZz5BPC9zdHJvbmc+IgorfCAgICAgICA8c3Bhbj4KK3wgICAgICAgICAiQiIKKworI2RhdGEKKzxkaXY+PHNhcmNhc20+PGRpdj48L2Rpdj48L3NhcmNhc20+PC9kaXY+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8ZGl2PgorfCAgICAgICA8c2FyY2FzbT4KK3wgICAgICAgICA8ZGl2PgorCisjZGF0YQorPGh0bWw+PGJvZHk+PGltZyBzcmM9IiIgYm9yZGVyPSIwIiBhbHQ9Ij48ZGl2PkE8L2Rpdj48L2JvZHk+PC9odG1sPgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorCisjZGF0YQorPHRhYmxlPjx0ZD48L3Rib2R5PkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICJBIgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPHRhYmxlPjx0ZD48L3RoZWFkPkEKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0YWJsZT4KK3wgICAgICAgPHRib2R5PgorfCAgICAgICAgIDx0cj4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgIkEiCisKKyNkYXRhCis8dGFibGU+PHRkPjwvdGZvb3Q+QQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGJvZHk+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAiQSIKKworI2RhdGEKKzx0YWJsZT48dGhlYWQ+PHRkPjwvdGJvZHk+QQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHRhYmxlPgorfCAgICAgICA8dGhlYWQ+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorfCAgICAgICAgICAgICAiQSIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbl9qc2RvbS9kb2N1bWVudF93cml0ZS5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb25fanNkb20vZG9jdW1lbnRfd3JpdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxY2EyZmMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb25fanNkb20vZG9jdW1lbnRfd3JpdGUuZGF0CkBAIC0wLDAgKzEsMzkgQEAKKyNkYXRhCisxPHNjcmlwdD5kb2N1bWVudC53cml0ZSgiMiIpPC9zY3JpcHQ+MworI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIjEiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiZG9jdW1lbnQud3JpdGUoIjIiKSIKK3wgICAgICIyMyIKKworI2RhdGEKKzE8c2NyaXB0PmRvY3VtZW50LndyaXRlKCI8c2NyaXB0PmRvY3VtZW50LndyaXRlKCcyJyk8L3NjciIrICJpcHQ+PHNjcmlwdD5kb2N1bWVudC53cml0ZSgnMycpPC9zY3IiICsgImlwdD4iKTwvc2NyaXB0PjQKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICIxIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgImRvY3VtZW50LndyaXRlKCI8c2NyaXB0PmRvY3VtZW50LndyaXRlKCcyJyk8L3NjciIrICJpcHQ+PHNjcmlwdD5kb2N1bWVudC53cml0ZSgnMycpPC9zY3IiICsgImlwdD4iKSIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICJkb2N1bWVudC53cml0ZSgnMicpIgorfCAgICAgIjIiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiZG9jdW1lbnQud3JpdGUoJzMnKSIKK3wgICAgICIzNCIKKworI2RhdGEKKzxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzwhLS0nKTs8L3NjcmlwdD5JIHNob3VsZCBiZSBjb21tZW50ZWQtLT4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICJkb2N1bWVudC53cml0ZSgnPCEtLScpOyIKK3wgICAgIDwhLS0gSSBzaG91bGQgYmUgY29tbWVudGVkIC0tPgorfCAgIDxib2R5PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uX29wdGlvbnMvZGVjb2RlX2h0bWxfZW50aXRpZXMuZGF0IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9kYXRhL3RyZWVfY29uc3RydWN0aW9uX29wdGlvbnMvZGVjb2RlX2h0bWxfZW50aXRpZXMuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNWU5NWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb25fb3B0aW9ucy9kZWNvZGVfaHRtbF9lbnRpdGllcy5kYXQKQEAgLTAsMCArMSwyMiBAQAorI2RhdGEKKzxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT4mbmJzcDs8L2JvZHk+PC9odG1sPgorI2Rpc2FibGUtaHRtbC1lbnRpdGllcy1kZWNvZGluZwordHJ1ZQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIiZuYnNwOyIKKworI2RhdGEKKzxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48YSBocmVmPSImYW1wO3Rlc3QmY29weTsiPjwvYT48L2JvZHk+PC9odG1sPgorI2Rpc2FibGUtaHRtbC1lbnRpdGllcy1kZWNvZGluZwordHJ1ZQorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPGE+Cit8ICAgICAgIGhyZWY9IiZhbXA7dGVzdCZjb3B5OyIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZGF0YS90cmVlX2NvbnN0cnVjdGlvbl9yZWdyZXNzaW9uL2doNDBfZm9ybV9pbl90ZW1wbGF0ZS5kYXQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb25fcmVncmVzc2lvbi9naDQwX2Zvcm1faW5fdGVtcGxhdGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3M2FhMTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2RhdGEvdHJlZV9jb25zdHJ1Y3Rpb25fcmVncmVzc2lvbi9naDQwX2Zvcm1faW5fdGVtcGxhdGUuZGF0CkBAIC0wLDAgKzEsMTMgQEAKKyNkYXRhCis8dGVtcGxhdGU+PGZvcm0+PGlucHV0IG5hbWU9InEiPjwvZm9ybT48ZGl2PnNlY29uZDwvZGl2PjwvdGVtcGxhdGU+CisjZG9jdW1lbnQtZnJhZ21lbnQKK3RlbXBsYXRlCisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPHRlbXBsYXRlPgorfCAgIGNvbnRlbnQKK3wgICAgIDxmb3JtPgorfCAgICAgICA8aW5wdXQ+Cit8ICAgICAgICAgbmFtZT0icSIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJzZWNvbmQiCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL2Zvcm1hdHRpbmdfZWxlbWVudF9saXN0X3Rlc3QuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL2Zvcm1hdHRpbmdfZWxlbWVudF9saXN0X3Rlc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdkYTdiMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZml4dHVyZXMvZm9ybWF0dGluZ19lbGVtZW50X2xpc3RfdGVzdC5qcwpAQCAtMCwwICsxLDE5MyBAQAordmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpLAorICAgIGh0bWwgPSByZXF1aXJlKCcuLi8uLi9saWIvY29tbW9uL2h0bWwnKSwKKyAgICBGb3JtYXR0aW5nRWxlbWVudExpc3QgPSByZXF1aXJlKCcuLi8uLi9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vZm9ybWF0dGluZ19lbGVtZW50X2xpc3QnKSwKKyAgICBUZXN0VXRpbHMgPSByZXF1aXJlKCcuLi90ZXN0X3V0aWxzJyk7CisKKy8vQWxpYXNlcwordmFyICQgPSBodG1sLlRBR19OQU1FUywKKyAgICBOUyA9IGh0bWwuTkFNRVNQQUNFUzsKKworVGVzdFV0aWxzLmdlbmVyYXRlVGVzdHNGb3JFYWNoVHJlZUFkYXB0ZXIobW9kdWxlLmV4cG9ydHMsIGZ1bmN0aW9uIChfdGVzdCwgdHJlZUFkYXB0ZXIpIHsKKyAgICBfdGVzdFsnSW5zZXJ0IG1hcmtlciddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgbGlzdCA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodHJlZUFkYXB0ZXIpOworCisgICAgICAgIGxpc3QuaW5zZXJ0TWFya2VyKCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0Lmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbMF0udHlwZSwgRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSk7CisKKyAgICAgICAgbGlzdC5pbnNlcnRNYXJrZXIoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1sxXS50eXBlLCBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ1B1c2ggZWxlbWVudCddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgbGlzdCA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodHJlZUFkYXB0ZXIpLAorICAgICAgICAgICAgZWxlbWVudDFUb2tlbiA9ICd0b2tlbjEnLAorICAgICAgICAgICAgZWxlbWVudDJUb2tlbiA9ICd0b2tlbjInLAorICAgICAgICAgICAgZWxlbWVudDEgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCBOUy5IVE1MLCBbXSksCisgICAgICAgICAgICBlbGVtZW50MiA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5QLCBOUy5IVE1MLCBbXSk7CisKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MSwgZWxlbWVudDFUb2tlbik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0Lmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbMF0udHlwZSwgRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5lbnRyaWVzWzBdLmVsZW1lbnQsIGVsZW1lbnQxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1swXS50b2tlbiwgZWxlbWVudDFUb2tlbik7CisKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MiwgZWxlbWVudDJUb2tlbik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0Lmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbMV0udHlwZSwgRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5lbnRyaWVzWzFdLmVsZW1lbnQsIGVsZW1lbnQyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1sxXS50b2tlbiwgZWxlbWVudDJUb2tlbik7CisgICAgfTsKKworICAgIF90ZXN0WydJbnNlcnQgZWxlbWVudCBhZnRlciBib29rbWFyayddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgbGlzdCA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodHJlZUFkYXB0ZXIpLAorICAgICAgICAgICAgdG9rZW4gPSAndG9rZW4xJywKKyAgICAgICAgICAgIGVsZW1lbnQxID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgTlMuSFRNTCwgW10pLAorICAgICAgICAgICAgZWxlbWVudDIgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuUCwgTlMuSFRNTCwgW10pLAorICAgICAgICAgICAgZWxlbWVudDMgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuU1BBTiwgTlMuSFRNTCwgW10pLAorICAgICAgICAgICAgZWxlbWVudDQgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVElUTEUsIE5TLkhUTUwsIFtdKTsKKworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQxLCB0b2tlbik7CisgICAgICAgIGxpc3QuYm9va21hcmsgPSBsaXN0LmVudHJpZXNbMF07CisKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MiwgdG9rZW4pOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQzLCB0b2tlbik7CisKKyAgICAgICAgbGlzdC5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhlbGVtZW50NCwgdG9rZW4pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0Lmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbMV0uZWxlbWVudCwgZWxlbWVudDQpOworICAgIH07CisKKyAgICBfdGVzdFsnUHVzaCBlbGVtZW50IC0gTm9haCBBcmsgY29uZGl0aW9uJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBsaXN0ID0gbmV3IEZvcm1hdHRpbmdFbGVtZW50TGlzdCh0cmVlQWRhcHRlciksCisgICAgICAgICAgICB0b2tlbjEgPSAndG9rZW4xJywKKyAgICAgICAgICAgIHRva2VuMiA9ICd0b2tlbjInLAorICAgICAgICAgICAgdG9rZW4zID0gJ3Rva2VuMycsCisgICAgICAgICAgICB0b2tlbjQgPSAndG9rZW40JywKKyAgICAgICAgICAgIHRva2VuNSA9ICd0b2tlbjUnLAorICAgICAgICAgICAgdG9rZW42ID0gJ3Rva2VuNicsCisgICAgICAgICAgICBlbGVtZW50MSA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5ESVYsIE5TLkhUTUwsIFsKKyAgICAgICAgICAgICAgICB7bmFtZTogJ2F0dHIxJywgdmFsdWU6ICd2YWwxJ30sCisgICAgICAgICAgICAgICAge25hbWU6ICdhdHRyMicsIHZhbHVlOiAndmFsMid9CisgICAgICAgICAgICBdKSwKKyAgICAgICAgICAgIGVsZW1lbnQyID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgTlMuSFRNTCwgWworICAgICAgICAgICAgICAgIHtuYW1lOiAnYXR0cjEnLCB2YWx1ZTogJ3ZhbDEnfSwKKyAgICAgICAgICAgICAgICB7bmFtZTogJ2F0dHIyJywgdmFsdWU6ICdzb21lT3RoZXJWYWx1ZSd9CisgICAgICAgICAgICBdKTsKKworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQxLCB0b2tlbjEpOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQxLCB0b2tlbjIpOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQyLCB0b2tlbjMpOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQxLCB0b2tlbjQpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0Lmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbMF0udG9rZW4sIHRva2VuMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbMV0udG9rZW4sIHRva2VuMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbMl0udG9rZW4sIHRva2VuMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmVudHJpZXNbM10udG9rZW4sIHRva2VuNCk7CisKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MSwgdG9rZW41KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5lbnRyaWVzWzBdLnRva2VuLCB0b2tlbjIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5lbnRyaWVzWzFdLnRva2VuLCB0b2tlbjMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5lbnRyaWVzWzJdLnRva2VuLCB0b2tlbjQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5lbnRyaWVzWzNdLnRva2VuLCB0b2tlbjUpOworCisgICAgICAgIGxpc3QuaW5zZXJ0TWFya2VyKCk7CisgICAgICAgIGxpc3QucHVzaEVsZW1lbnQoZWxlbWVudDEsIHRva2VuNik7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1swXS50b2tlbiwgdG9rZW4yKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1sxXS50b2tlbiwgdG9rZW4zKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1syXS50b2tlbiwgdG9rZW40KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1szXS50b2tlbiwgdG9rZW41KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1s0XS50eXBlLCBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpc3QuZW50cmllc1s1XS50b2tlbiwgdG9rZW42KTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0NsZWFyIHRvIHRoZSBsYXN0IG1hcmtlciddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgbGlzdCA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodHJlZUFkYXB0ZXIpLAorICAgICAgICAgICAgdG9rZW4gPSAndG9rZW4nLAorICAgICAgICAgICAgZWxlbWVudDEgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCBOUy5IVE1MLCBbCisgICAgICAgICAgICAgICAge25hbWU6ICdhdHRyMScsIHZhbHVlOiAndmFsMSd9LAorICAgICAgICAgICAgICAgIHtuYW1lOiAnYXR0cjInLCB2YWx1ZTogJ3ZhbDInfQorICAgICAgICAgICAgXSksCisgICAgICAgICAgICBlbGVtZW50MiA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5ESVYsIE5TLkhUTUwsIFsKKyAgICAgICAgICAgICAgICB7bmFtZTogJ2F0dHIxJywgdmFsdWU6ICd2YWwxJ30sCisgICAgICAgICAgICAgICAge25hbWU6ICdhdHRyMicsIHZhbHVlOiAnc29tZU90aGVyVmFsdWUnfQorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MSwgdG9rZW4pOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQyLCB0b2tlbik7CisgICAgICAgIGxpc3QuaW5zZXJ0TWFya2VyKCk7CisgICAgICAgIGxpc3QucHVzaEVsZW1lbnQoZWxlbWVudDEsIHRva2VuKTsKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MSwgdG9rZW4pOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQyLCB0b2tlbik7CisKKyAgICAgICAgbGlzdC5jbGVhclRvTGFzdE1hcmtlcigpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0Lmxlbmd0aCwgMik7CisgICAgfTsKKworICAgIF90ZXN0WydSZW1vdmUgZW50cnknXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxpc3QgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRyZWVBZGFwdGVyKSwKKyAgICAgICAgICAgIHRva2VuID0gJ3Rva2VuJywKKyAgICAgICAgICAgIGVsZW1lbnQxID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgTlMuSFRNTCwgWworICAgICAgICAgICAgICAgIHtuYW1lOiAnYXR0cjEnLCB2YWx1ZTogJ3ZhbDEnfSwKKyAgICAgICAgICAgICAgICB7bmFtZTogJ2F0dHIyJywgdmFsdWU6ICd2YWwyJ30KKyAgICAgICAgICAgIF0pLAorICAgICAgICAgICAgZWxlbWVudDIgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCBOUy5IVE1MLCBbCisgICAgICAgICAgICAgICAge25hbWU6ICdhdHRyMScsIHZhbHVlOiAndmFsMSd9LAorICAgICAgICAgICAgICAgIHtuYW1lOiAnYXR0cjInLCB2YWx1ZTogJ3NvbWVPdGhlclZhbHVlJ30KKyAgICAgICAgICAgIF0pOworCisgICAgICAgIGxpc3QucHVzaEVsZW1lbnQoZWxlbWVudDEsIHRva2VuKTsKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MiwgdG9rZW4pOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQyLCB0b2tlbik7CisKKyAgICAgICAgbGlzdC5yZW1vdmVFbnRyeShsaXN0LmVudHJpZXNbMF0pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0Lmxlbmd0aCwgMik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pCisgICAgICAgICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwobGlzdC5lbnRyaWVzW2ldLmVsZW1lbnQsIGVsZW1lbnQxKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0dldCBlbnRyeSBpbiBzY29wZSB3aXRoIGdpdmVuIHRhZyBuYW1lJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBsaXN0ID0gbmV3IEZvcm1hdHRpbmdFbGVtZW50TGlzdCh0cmVlQWRhcHRlciksCisgICAgICAgICAgICB0b2tlbiA9ICd0b2tlbicsCisgICAgICAgICAgICBlbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgTlMuSFRNTCwgW10pOworCisgICAgICAgIGFzc2VydC5vayghbGlzdC5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUoJC5ESVYpKTsKKworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQsIHRva2VuKTsKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50LCB0b2tlbik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaXN0LmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSgkLkRJViksIGxpc3QuZW50cmllc1sxXSk7CisKKyAgICAgICAgbGlzdC5pbnNlcnRNYXJrZXIoKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFsaXN0LmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSgkLkRJVikpOworCisgICAgICAgIGxpc3QucHVzaEVsZW1lbnQoZWxlbWVudCwgdG9rZW4pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGlzdC5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUoJC5ESVYpLCBsaXN0LmVudHJpZXNbM10pOworICAgIH07CisKKyAgICBfdGVzdFsnR2V0IGVsZW1lbnQgZW50cnknXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxpc3QgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRyZWVBZGFwdGVyKSwKKyAgICAgICAgICAgIHRva2VuID0gJ3Rva2VuJywKKyAgICAgICAgICAgIGVsZW1lbnQxID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgTlMuSFRNTCwgW10pLAorICAgICAgICAgICAgZWxlbWVudDIgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuQSwgTlMuSFRNTCwgW10pOworCisgICAgICAgIGxpc3QucHVzaEVsZW1lbnQoZWxlbWVudDIsIHRva2VuKTsKKyAgICAgICAgbGlzdC5wdXNoRWxlbWVudChlbGVtZW50MSwgdG9rZW4pOworICAgICAgICBsaXN0LnB1c2hFbGVtZW50KGVsZW1lbnQyLCB0b2tlbik7CisgICAgICAgIGxpc3QuaW5zZXJ0TWFya2VyKCk7CisKKyAgICAgICAgdmFyIGVudHJ5ID0gbGlzdC5nZXRFbGVtZW50RW50cnkoZWxlbWVudDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZW50cnkudHlwZSwgRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZW50cnkudG9rZW4sIHRva2VuKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGVudHJ5LmVsZW1lbnQsIGVsZW1lbnQxKTsKKyAgICB9OworfSk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL2pzZG9tX3BhcnNlcl90ZXN0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9maXh0dXJlcy9qc2RvbV9wYXJzZXJfdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWQ2NTg1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9maXh0dXJlcy9qc2RvbV9wYXJzZXJfdGVzdC5qcwpAQCAtMCwwICsxLDE0OCBAQAordmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpLAorICAgIHBhdGggPSByZXF1aXJlKCdwYXRoJyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4uLy4uL2xpYi9jb21tb24vaHRtbCcpLAorICAgIEpzRG9tUGFyc2VyID0gcmVxdWlyZSgnLi4vLi4vaW5kZXgnKS5Kc0RvbVBhcnNlciwKKyAgICBTZXJpYWxpemVyID0gcmVxdWlyZSgnLi4vLi4vaW5kZXgnKS5UcmVlU2VyaWFsaXplciwKKyAgICBUZXN0VXRpbHMgPSByZXF1aXJlKCcuLi90ZXN0X3V0aWxzJyk7CisKK2V4cG9ydHNbJ1N0YXRlIGd1YXJkJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGRvY0h0bWwgPSAnPHNjcmlwdD5Zb3lvPC9zY3JpcHQ+JywKKyAgICAgICAgZ2V0UGFyc2luZ1VuaXQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgcGFyc2luZyA9IEpzRG9tUGFyc2VyLnBhcnNlRG9jdW1lbnQoZG9jSHRtbCk7CisKKyAgICAgICAgICAgIHBhcnNpbmcuZG9uZShmdW5jdGlvbiBub29wKCkgeworICAgICAgICAgICAgICAgIC8vTk9URTogZG8gbm90aGluZyA9KQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHJldHVybiBwYXJzaW5nOworICAgICAgICB9OworCisgICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBwYXJzaW5nID0gZ2V0UGFyc2luZ1VuaXQoKTsKKworICAgICAgICBwYXJzaW5nLnN1c3BlbmQoKTsKKyAgICAgICAgcGFyc2luZy5zdXNwZW5kKCk7CisgICAgfSk7CisKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHBhcnNpbmcgPSBnZXRQYXJzaW5nVW5pdCgpOworCisgICAgICAgIHBhcnNpbmcucmVzdW1lKCk7CisgICAgfSk7Cit9OworCitleHBvcnRzWydSZWVudHJhbmN5J10gPSBmdW5jdGlvbiAoZG9uZSkgeworICAgIHZhciBzZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIoKSwKKyAgICAgICAgYXN5bmNBc3NlcnRpb25Db3VudCA9IDAsCisgICAgICAgIGRvY0h0bWwxID0gJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjxzY3JpcHQ+WW95bzwvc2NyaXB0PjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPicsCisgICAgICAgIGRvY0h0bWwyID0gJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5CZWVwIGJvb3A8L2JvZHk+PC9odG1sPicsCisgICAgICAgIGZyYWdtZW50cyA9IFsKKyAgICAgICAgICAgICc8ZGl2PkhleSB5YSE8L2Rpdj4nLAorICAgICAgICAgICAgJzxwPjxhIGhyZWY9IiMiPjwvYT48L3A+JywKKyAgICAgICAgICAgICc8dGVtcGxhdGU+PHRkPnlvPC90ZD48L3RlbXBsYXRlPicsCisgICAgICAgICAgICAnPHNlbGVjdD48dGVtcGxhdGU+PG9wdGlvbj48L29wdGlvbj48L3RlbXBsYXRlPjwvc2VsZWN0PicKKyAgICAgICAgXTsKKworICAgIHZhciBwYXJzaW5nMSA9IEpzRG9tUGFyc2VyLnBhcnNlRG9jdW1lbnQoZG9jSHRtbDEpCisKKyAgICAgICAgLmRvbmUoZnVuY3Rpb24gKGRvY3VtZW50MSkgeworICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplKGRvY3VtZW50MSk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhc3luY0Fzc2VydGlvbkNvdW50LCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5vayhhY3R1YWwgPT09IGRvY0h0bWwxLCBUZXN0VXRpbHMuZ2V0U3RyaW5nRGlmZk1zZyhhY3R1YWwsIGRvY0h0bWwxKSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pCisKKyAgICAgICAgLmhhbmRsZVNjcmlwdHMoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcGFyc2luZzEuc3VzcGVuZCgpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBmcmFnbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZnJhZ21lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplKEpzRG9tUGFyc2VyLnBhcnNlSW5uZXJIdG1sKGZyYWdtZW50KSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5vayhhY3R1YWwgPT09IGZyYWdtZW50LCBUZXN0VXRpbHMuZ2V0U3RyaW5nRGlmZk1zZyhhY3R1YWwsIGZyYWdtZW50KSk7CisgICAgICAgICAgICAgICAgICAgIGFzeW5jQXNzZXJ0aW9uQ291bnQrKzsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHZhciBwYXJzaW5nMiA9IEpzRG9tUGFyc2VyLnBhcnNlRG9jdW1lbnQoZG9jSHRtbDIpOworCisgICAgICAgICAgICAgICAgcGFyc2luZzIuZG9uZShmdW5jdGlvbiAoZG9jdW1lbnQyKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBhY3R1YWwgPSBzZXJpYWxpemVyLnNlcmlhbGl6ZShkb2N1bWVudDIpOworCisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5vayhhY3R1YWwgPT09IGRvY0h0bWwyLCBUZXN0VXRpbHMuZ2V0U3RyaW5nRGlmZk1zZyhhY3R1YWwsIGRvY0h0bWwyKSk7CisgICAgICAgICAgICAgICAgICAgIGFzeW5jQXNzZXJ0aW9uQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2luZzEucmVzdW1lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cit9OworCisKK1Rlc3RVdGlscy5nZW5lcmF0ZVRlc3RzRm9yRWFjaFRyZWVBZGFwdGVyKG1vZHVsZS5leHBvcnRzLCBmdW5jdGlvbiAoX3Rlc3QsIHRyZWVBZGFwdGVyKSB7CisgICAgZnVuY3Rpb24gZ2V0RnVsbFRlc3ROYW1lKHRlc3QpIHsKKyAgICAgICAgcmV0dXJuIFsnSnNEb21QYXJzZXIgLSAnLCB0ZXN0LmlkeCwgJy4nLCB0ZXN0LnNldE5hbWUsICcgLSAnLCB0ZXN0LmlucHV0XS5qb2luKCcnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBwYXJzZURvY3VtZW50KGlucHV0LCBjYWxsYmFjaykgeworICAgICAgICB2YXIgcGFyc2luZyA9IEpzRG9tUGFyc2VyLnBhcnNlRG9jdW1lbnQoaW5wdXQsIHRyZWVBZGFwdGVyKQorCisgICAgICAgICAgICAuZG9uZShjYWxsYmFjaykKKworICAgICAgICAgICAgLmhhbmRsZVNjcmlwdHMoZnVuY3Rpb24gKGRvY3VtZW50LCBzY3JpcHRFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgcGFyc2luZy5zdXNwZW5kKCk7CisKKyAgICAgICAgICAgICAgICAvL05PVEU6IHRlc3QgcGFyc2VyIHN1c3BlbnNpb24gaW4gZGlmZmVyZW50IG1vZGVzIChzeW5jIGFuZCBhc3luYykuCisgICAgICAgICAgICAgICAgLy9JZiB3ZSBoYXZlIHNjcmlwdCB0aGVuIGV4ZWN1dGUgaXQgYW5kIHJlc3VtZSBwYXJzZXIgYXN5bmNocm9ub3VzbHkuCisgICAgICAgICAgICAgICAgLy9PdGhlcndpc2UgLSByZXN1bWUgc3luY2hyb25vdXNseS4KKyAgICAgICAgICAgICAgICB2YXIgc2NyaXB0VGV4dE5vZGUgPSB0cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHNjcmlwdEVsZW1lbnQpWzBdLAorICAgICAgICAgICAgICAgICAgICBzY3JpcHQgPSBzY3JpcHRUZXh0Tm9kZSAmJiB0cmVlQWRhcHRlci5nZXRUZXh0Tm9kZUNvbnRlbnQoc2NyaXB0VGV4dE5vZGUpOworCisgICAgICAgICAgICAgICAgLy9OT1RFOiBkb24ndCBwb2xsdXRlIHRlc3QgcnVubmVyIG91dHB1dCBieSBjb25zb2xlLmxvZygpIGNhbGxzIGZyb20gdGVzdCBzY3JpcHRzCisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdCAmJiBzY3JpcHQudHJpbSgpICYmIHNjcmlwdC5pbmRleE9mKCdjb25zb2xlLmxvZycpID09PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vTk9URTogbW9jayBkb2N1bWVudCBmb3Igc2NyaXB0IGV2YWx1YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LndyaXRlID0gZnVuY3Rpb24gKGh0bWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzaW5nLmRvY3VtZW50V3JpdGUoaHRtbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTk9URTogaWdub3JlIGJyb2tlbiBzY3JpcHRzIGZyb20gdGVzdCBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNpbmcucmVzdW1lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGFyc2luZy5yZXN1bWUoKTsKKyAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIC8vSGVyZSB3ZSBnby4uCisgICAgVGVzdFV0aWxzLmxvYWRUcmVlQ29uc3RydWN0aW9uVGVzdERhdGEoWworICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vZGF0YS90cmVlX2NvbnN0cnVjdGlvbicpLAorICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vZGF0YS90cmVlX2NvbnN0cnVjdGlvbl9qc2RvbScpCisgICAgXSwgdHJlZUFkYXB0ZXIpLmZvckVhY2goZnVuY3Rpb24gKHRlc3QpIHsKKyAgICAgICAgX3Rlc3RbZ2V0RnVsbFRlc3ROYW1lKHRlc3QpXSA9IGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgICAgICBmdW5jdGlvbiBhc3NlcnRSZXN1bHQocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgdmFyIGFjdHVhbCA9IFRlc3RVdGlscy5zZXJpYWxpemVUb1Rlc3REYXRhRm9ybWF0KHJlc3VsdCwgdHJlZUFkYXB0ZXIpLAorICAgICAgICAgICAgICAgICAgICBtc2cgPSBUZXN0VXRpbHMucHJldHR5UHJpbnRQYXJzZXJBc3NlcnRpb25BcmdzKGFjdHVhbCwgdGVzdC5leHBlY3RlZCk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0dWFsLCB0ZXN0LmV4cGVjdGVkLCBtc2cpOworCisgICAgICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGVzdC5mcmFnbWVudENvbnRleHQpIHsKKyAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gSnNEb21QYXJzZXIucGFyc2VJbm5lckh0bWwodGVzdC5pbnB1dCwgdGVzdC5mcmFnbWVudENvbnRleHQsIHRyZWVBZGFwdGVyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHBhcnNlRG9jdW1lbnQodGVzdC5pbnB1dCwgYXNzZXJ0UmVzdWx0KTsKKyAgICAgICAgfTsKKyAgICB9KTsKK30pOworCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZml4dHVyZXMvb3Blbl9lbGVtZW50X3N0YWNrX3Rlc3QuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL29wZW5fZWxlbWVudF9zdGFja190ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyOTg1NzkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL29wZW5fZWxlbWVudF9zdGFja190ZXN0LmpzCkBAIC0wLDAgKzEsNDcxIEBACit2YXIgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0JyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4uLy4uL2xpYi9jb21tb24vaHRtbCcpLAorICAgIE9wZW5FbGVtZW50U3RhY2sgPSByZXF1aXJlKCcuLi8uLi9saWIvdHJlZV9jb25zdHJ1Y3Rpb24vb3Blbl9lbGVtZW50X3N0YWNrJyksCisgICAgVGVzdFV0aWxzID0gcmVxdWlyZSgnLi4vdGVzdF91dGlscycpOworCisvL0FsaWFzZXMKK3ZhciAkID0gSFRNTC5UQUdfTkFNRVMsCisgICAgTlMgPSBIVE1MLk5BTUVTUEFDRVM7CisKK1Rlc3RVdGlscy5nZW5lcmF0ZVRlc3RzRm9yRWFjaFRyZWVBZGFwdGVyKG1vZHVsZS5leHBvcnRzLCBmdW5jdGlvbiAoX3Rlc3QsIHRyZWVBZGFwdGVyKSB7CisgICAgX3Rlc3RbJ1B1c2ggZWxlbWVudCddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZG9jdW1lbnQgPSB0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLAorICAgICAgICAgICAgZWxlbWVudDEgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCcjZWxlbWVudDEnLCAnbmFtZXNwYWNlMScsIFtdKSwKKyAgICAgICAgICAgIGVsZW1lbnQyID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQyJywgJ25hbWVzcGFjZTInLCBbXSksCisgICAgICAgICAgICBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKGRvY3VtZW50LCB0cmVlQWRhcHRlcik7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLmN1cnJlbnQsIGRvY3VtZW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAtMSk7CisKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50LCBlbGVtZW50MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50VGFnTmFtZSwgdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50MSkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suc3RhY2tUb3AsIDApOworCisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudCwgZWxlbWVudDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudFRhZ05hbWUsIHRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudDIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAxKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ1BvcCBlbGVtZW50J10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQnLCAnbmFtZXNwYWNlMScsIFtdKSwKKyAgICAgICAgICAgIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goJyNlbGVtZW50MicpOworICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLmN1cnJlbnQsIGVsZW1lbnQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudFRhZ05hbWUsIHRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suc3RhY2tUb3AsIDApOworCisgICAgICAgIHN0YWNrLnBvcCgpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmN1cnJlbnQpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmN1cnJlbnRUYWdOYW1lKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAtMSk7CisgICAgfTsKKworICAgIF90ZXN0WydSZXBsYWNlIGVsZW1lbnQnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCcjZWxlbWVudCcsICduYW1lc3BhY2UnLCBbXSksCisgICAgICAgICAgICBuZXdFbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI25ld0VsZW1lbnQnLCAnbmV3RWxlbWVudE5hbWVzcGFjZScsIFtdKSwKKyAgICAgICAgICAgIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2goJyNlbGVtZW50MicpOworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQpOworICAgICAgICBzdGFjay5yZXBsYWNlKGVsZW1lbnQsIG5ld0VsZW1lbnQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudCwgbmV3RWxlbWVudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50VGFnTmFtZSwgdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShuZXdFbGVtZW50KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5zdGFja1RvcCwgMSk7CisgICAgfTsKKworICAgIF90ZXN0WydJbnNlcnQgZWxlbWVudCBhZnRlciBlbGVtZW50J10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50MSA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJyNlbGVtZW50MScsICduYW1lc3BhY2UxJywgW10pLAorICAgICAgICAgICAgZWxlbWVudDIgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCcjZWxlbWVudDInLCAnbmFtZXNwYWNlMicsIFtdKSwKKyAgICAgICAgICAgIGVsZW1lbnQzID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQzJywgJ25hbWVzcGFjZTMnLCBbXSksCisgICAgICAgICAgICBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQxKTsKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50Mik7CisgICAgICAgIHN0YWNrLmluc2VydEFmdGVyKGVsZW1lbnQxLCBlbGVtZW50Myk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5zdGFja1RvcCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5pdGVtc1sxXSwgZWxlbWVudDMpOworCisgICAgICAgIHN0YWNrLmluc2VydEFmdGVyKGVsZW1lbnQyLCBlbGVtZW50MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5zdGFja1RvcCwgMyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50LCBlbGVtZW50MSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50VGFnTmFtZSwgdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50MSkpOworICAgIH07CisKKyAgICBfdGVzdFsnUG9wIGVsZW1lbnRzIHVudGlsIHBvcHBlZCB3aXRoIGdpdmVuIHRhZ05hbWUnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQxID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQxJywgJycsIFtdKSwKKyAgICAgICAgICAgIGVsZW1lbnQyID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQyJywgJycsIFtdKSwKKyAgICAgICAgICAgIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQyKTsKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50Mik7CisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBzdGFjay5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50MSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmN1cnJlbnQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suc3RhY2tUb3AsIC0xKTsKKworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQyKTsKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50MSk7CisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBzdGFjay5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50MSkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudCwgZWxlbWVudDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suc3RhY2tUb3AsIDApOworICAgIH07CisKKyAgICBfdGVzdFsnUG9wIGVsZW1lbnRzIHVudGlsIGdpdmVuIGVsZW1lbnQgcG9wcGVkJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50MSA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJyNlbGVtZW50MScsICcnLCBbXSksCisgICAgICAgICAgICBlbGVtZW50MiA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJyNlbGVtZW50MicsICcnLCBbXSksCisgICAgICAgICAgICBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQyKTsKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50Mik7CisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQyKTsKKyAgICAgICAgc3RhY2sucG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQxKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFzdGFjay5jdXJyZW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAtMSk7CisKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50Mik7CisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDEpOworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQyKTsKKyAgICAgICAgc3RhY2sucG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLmN1cnJlbnQsIGVsZW1lbnQyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAwKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ1BvcCBlbGVtZW50cyB1bnRpbCBudW1iZXJlZCBoZWFkZXIgcG9wcGVkJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50MSA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IMywgJycsIFtdKSwKKyAgICAgICAgICAgIGVsZW1lbnQyID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQyJywgJycsIFtdKSwKKyAgICAgICAgICAgIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQyKTsKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50Mik7CisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBzdGFjay5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7CisgICAgICAgIGFzc2VydC5vayghc3RhY2suY3VycmVudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5zdGFja1RvcCwgLTEpOworCisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudDIpOworICAgICAgICBzdGFjay5wdXNoKGVsZW1lbnQxKTsKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50Mik7CisgICAgICAgIHN0YWNrLnBvcFVudGlsTnVtYmVyZWRIZWFkZXJQb3BwZWQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLmN1cnJlbnQsIGVsZW1lbnQyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAwKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ1BvcCBhbGwgdXAgdG8gPGh0bWw+IGVsZW1lbnQnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGh0bWxFbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkhUTUwsIE5TLkhUTUwsIFtdKSwKKyAgICAgICAgICAgIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2goaHRtbEVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKCcjZWxlbWVudDEnKTsKKyAgICAgICAgc3RhY2sucHVzaCgnI2VsZW1lbnQyJyk7CisKKyAgICAgICAgc3RhY2sucG9wQWxsVXBUb0h0bWxFbGVtZW50KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50LCBodG1sRWxlbWVudCk7CisgICAgfTsKKworICAgIF90ZXN0WydDbGVhciBiYWNrIHRvIGEgdGFibGUgY29udGV4dCddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaHRtbEVsZW1lbnQgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuSFRNTCwgJycsIFtdKSwKKyAgICAgICAgICAgIHRhYmxlRWxlbWVudCA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5UQUJMRSwgJycsIFtdKSwKKyAgICAgICAgICAgIGRpdkVsZW1lbnQgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCAnJywgW10pLAorICAgICAgICAgICAgc3RhY2sgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLCB0cmVlQWRhcHRlcik7CisKKyAgICAgICAgc3RhY2sucHVzaChodG1sRWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50LCBodG1sRWxlbWVudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5zdGFja1RvcCwgMCk7CisKKyAgICAgICAgc3RhY2sucHVzaChkaXZFbGVtZW50KTsKKyAgICAgICAgc3RhY2sucHVzaCh0YWJsZUVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudCwgdGFibGVFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAyKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0NsZWFyIGJhY2sgdG8gYSB0YWJsZSBib2R5IGNvbnRleHQnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGh0bWxFbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkhUTUwsICcnLCBbXSksCisgICAgICAgICAgICB0aGVhZEVsZW1lbnQgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVEhFQUQsICcnLCBbXSksCisgICAgICAgICAgICBkaXZFbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgJycsIFtdKSwKKyAgICAgICAgICAgIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2goaHRtbEVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLmN1cnJlbnQsIGh0bWxFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAwKTsKKworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKHRoZWFkRWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudCwgdGhlYWRFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAyKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0NsZWFyIGJhY2sgdG8gYSB0YWJsZSByb3cgY29udGV4dCddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaHRtbEVsZW1lbnQgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuSFRNTCwgJycsIFtdKSwKKyAgICAgICAgICAgIHRyRWxlbWVudCA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5UUiwgJycsIFtdKSwKKyAgICAgICAgICAgIGRpdkVsZW1lbnQgPSB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCAnJywgW10pLAorICAgICAgICAgICAgc3RhY2sgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLCB0cmVlQWRhcHRlcik7CisKKyAgICAgICAgc3RhY2sucHVzaChodG1sRWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2goZGl2RWxlbWVudCk7CisgICAgICAgIHN0YWNrLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5jdXJyZW50LCBodG1sRWxlbWVudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5zdGFja1RvcCwgMCk7CisKKyAgICAgICAgc3RhY2sucHVzaChkaXZFbGVtZW50KTsKKyAgICAgICAgc3RhY2sucHVzaCh0ckVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5wdXNoKGRpdkVsZW1lbnQpOworICAgICAgICBzdGFjay5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudCwgdHJFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAyKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ1JlbW92ZSBlbGVtZW50J10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQnLCAnJywgW10pLAorICAgICAgICAgICAgc3RhY2sgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLCB0cmVlQWRhcHRlcik7CisKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50KTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCdlbGVtZW50MScsICcnLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJ2VsZW1lbnQyJywgJycsIFtdKSk7CisKKyAgICAgICAgc3RhY2sucmVtb3ZlKGVsZW1lbnQpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5zdGFja1RvcCwgMSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IHN0YWNrLnN0YWNrVG9wOyBpID49IDA7IGktLSkKKyAgICAgICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChzdGFjay5pdGVtc1tpXSwgZWxlbWVudCk7CisgICAgfTsKKworICAgIF90ZXN0WydUcnkgcGVlayBwcm9wZXJseSBuZXN0ZWQgPGJvZHk+IGVsZW1lbnQnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGJvZHlFbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkJPRFksICcnLCBbXSksCisgICAgICAgICAgICBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCAnJywgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaChib2R5RWxlbWVudCk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgJycsIFtdKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpLCBib2R5RWxlbWVudCk7CisKKyAgICAgICAgc3RhY2sgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLCB0cmVlQWRhcHRlcik7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkhUTUwsICcnLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCkpOworICAgIH07CisKKyAgICBfdGVzdFsnSXMgcm9vdCA8aHRtbD4gZWxlbWVudCBjdXJyZW50J10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCAnJywgW10pKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHN0YWNrLmlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5ESVYsICcnLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0dldCBjb21tb24gYW5jZXN0b3InXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpLAorICAgICAgICAgICAgZWxlbWVudCA9IHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJyNlbGVtZW50JywgJycsIFtdKSwKKyAgICAgICAgICAgIGFuY2VzdG9yID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2FuY2VzdG9yJywgJycsIFtdKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJyNzb21lRWxlbWVudCcsICcnLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpKTsKKworICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFzdGFjay5nZXRDb21tb25BbmNlc3RvcihlbGVtZW50KSk7CisKKyAgICAgICAgc3RhY2sucHVzaChlbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFzdGFjay5nZXRDb21tb25BbmNlc3RvcihlbGVtZW50KSk7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCcjc29tZUVsZW1lbnQnLCAnJywgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaChhbmNlc3Rvcik7CisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay5nZXRDb21tb25BbmNlc3RvcihlbGVtZW50KSwgYW5jZXN0b3IpOworICAgIH07CisKKyAgICBfdGVzdFsnQ29udGFpbnMgZWxlbWVudCddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgc3RhY2sgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLCB0cmVlQWRhcHRlciksCisgICAgICAgICAgICBlbGVtZW50ID0gdHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI2VsZW1lbnQnLCAnJywgW10pOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgnI3NvbWVFbGVtZW50JywgJycsIFtdKSk7CisgICAgICAgIGFzc2VydC5vayghc3RhY2suY29udGFpbnMoZWxlbWVudCkpOworCisgICAgICAgIHN0YWNrLnB1c2goZWxlbWVudCk7CisgICAgICAgIGFzc2VydC5vayhzdGFjay5jb250YWlucyhlbGVtZW50KSk7CisgICAgfTsKKworICAgIF90ZXN0WydIYXMgZWxlbWVudCBpbiBzY29wZSddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgc3RhY2sgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLCB0cmVlQWRhcHRlcik7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuSFRNTCwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmhhc0luU2NvcGUoJC5QKSk7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuUCwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVUwsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkJVVFRPTiwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuT1BUSU9OLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soc3RhY2suaGFzSW5TY29wZSgkLlApKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5USVRMRSwgTlMuU1ZHLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmhhc0luU2NvcGUoJC5QKSk7CisgICAgfTsKKworICAgIF90ZXN0WydIYXMgbnVtYmVyZWQgaGVhZGVyIGluIHNjb3BlJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5ESVYsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIGFzc2VydC5vayghc3RhY2suaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlAsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlVMLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IMywgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuT1BUSU9OLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soc3RhY2suaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlRJVExFLCBOUy5TVkcsIFtdKSk7CisgICAgICAgIGFzc2VydC5vayghc3RhY2suaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkg2LCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soc3RhY2suaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpOworICAgIH07CisKKyAgICBfdGVzdFsnSGFzIGVsZW1lbnQgaW4gbGlzdCBpdGVtIHNjb3BlJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5ESVYsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIGFzc2VydC5vayghc3RhY2suaGFzSW5MaXN0SXRlbVNjb3BlKCQuUCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlAsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkJVVFRPTiwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuT1BUSU9OLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soc3RhY2suaGFzSW5MaXN0SXRlbVNjb3BlKCQuUCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlVMLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmhhc0luTGlzdEl0ZW1TY29wZSgkLlApKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0hhcyBlbGVtZW50IGluIGJ1dHRvbiBzY29wZSddID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgc3RhY2sgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpLCB0cmVlQWRhcHRlcik7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuSFRNTCwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmhhc0luQnV0dG9uU2NvcGUoJC5QKSk7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuUCwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVUwsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLk9QVElPTiwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHN0YWNrLmhhc0luQnV0dG9uU2NvcGUoJC5QKSk7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuQlVUVE9OLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmhhc0luQnV0dG9uU2NvcGUoJC5QKSk7CisgICAgfTsKKworCisgICAgX3Rlc3RbJ0hhcyBlbGVtZW50IGluIHRhYmxlIHNjb3BlJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5ESVYsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIGFzc2VydC5vayghc3RhY2suaGFzSW5UYWJsZVNjb3BlKCQuUCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlAsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlVMLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5URCwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuT1BUSU9OLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soc3RhY2suaGFzSW5UYWJsZVNjb3BlKCQuUCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlRBQkxFLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmhhc0luVGFibGVTY29wZSgkLlApKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0hhcyB0YWJsZSBib2R5IGNvbnRleHQgaW4gdGFibGUgc2NvcGUnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkhUTUwsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFzdGFjay5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlRBQkxFLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5VTCwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVEJPRFksIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLk9QVElPTiwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHN0YWNrLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSk7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVEFCTEUsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIGFzc2VydC5vayghc3RhY2suaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5URk9PVCwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHN0YWNrLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSk7CisgICAgfTsKKworICAgIF90ZXN0WydIYXMgZWxlbWVudCBpbiBzZWxlY3Qgc2NvcGUnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkhUTUwsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkRJViwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgYXNzZXJ0Lm9rKCFzdGFjay5oYXNJblNlbGVjdFNjb3BlKCQuUCkpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlAsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLk9QVElPTiwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHN0YWNrLmhhc0luU2VsZWN0U2NvcGUoJC5QKSk7CisKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBhc3NlcnQub2soIXN0YWNrLmhhc0luU2VsZWN0U2NvcGUoJC5QKSk7CisgICAgfTsKKworICAgIF90ZXN0WydHZW5lcmF0ZSBpbXBsaWVkIGVuZCB0YWdzJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5MSSwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuRElWLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5MSSwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuT1BUSU9OLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5QLCBOUy5IVE1MLCBbXSkpOworCisgICAgICAgIHN0YWNrLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suc3RhY2tUb3AsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2suY3VycmVudFRhZ05hbWUsICQuRElWKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ0dlbmVyYXRlIGltcGxpZWQgZW5kIHRhZ3Mgd2l0aCBleGNsdXNpb24nXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHN0YWNrID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKSwgdHJlZUFkYXB0ZXIpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkhUTUwsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkxJLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5ESVYsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLkxJLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5PUFRJT04sIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlAsIE5TLkhUTUwsIFtdKSk7CisKKyAgICAgICAgc3RhY2suZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5MSSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLnN0YWNrVG9wLCAzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHN0YWNrLmN1cnJlbnRUYWdOYW1lLCAkLkxJKTsKKyAgICB9OworCisgICAgX3Rlc3RbJ1RlbXBsYXRlIGNvdW50J10gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzdGFjayA9IG5ldyBPcGVuRWxlbWVudFN0YWNrKHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCksIHRyZWVBZGFwdGVyKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSkpOworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5URU1QTEFURSwgTlMuTUFUSE1MLCBbXSkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2sudG1wbENvdW50LCAwKTsKKworICAgICAgICBzdGFjay5wdXNoKHRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5URU1QTEFURSwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuTEksIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay50bXBsQ291bnQsIDEpOworCisgICAgICAgIHN0YWNrLnB1c2godHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLk9QVElPTiwgTlMuSFRNTCwgW10pKTsKKyAgICAgICAgc3RhY2sucHVzaCh0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuVEVNUExBVEUsIE5TLkhUTUwsIFtdKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdGFjay50bXBsQ291bnQsIDIpOworCisgICAgICAgIHN0YWNrLnBvcCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2sudG1wbENvdW50LCAxKTsKKworICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAgc3RhY2sucG9wKCk7CisgICAgICAgIHN0YWNrLnBvcCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3RhY2sudG1wbENvdW50LCAwKTsKKyAgICB9OworfSk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL3BhcnNlcl90ZXN0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9maXh0dXJlcy9wYXJzZXJfdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWI4YTc1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9maXh0dXJlcy9wYXJzZXJfdGVzdC5qcwpAQCAtMCwwICsxLDEzNiBAQAordmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpLAorICAgIHBhdGggPSByZXF1aXJlKCdwYXRoJyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4uLy4uL2xpYi9jb21tb24vaHRtbCcpLAorICAgIHBhcnNlNSA9IHJlcXVpcmUoJy4uLy4uL2luZGV4JyksCisgICAgUGFyc2VyID0gcGFyc2U1LlBhcnNlciwKKyAgICBTZXJpYWxpemVyID0gcGFyc2U1LlNlcmlhbGl6ZXIsCisgICAgVGVzdFV0aWxzID0gcmVxdWlyZSgnLi4vdGVzdF91dGlscycpOworCisKK1Rlc3RVdGlscy5nZW5lcmF0ZVRlc3RzRm9yRWFjaFRyZWVBZGFwdGVyKG1vZHVsZS5leHBvcnRzLCBmdW5jdGlvbiAoX3Rlc3QsIHRyZWVBZGFwdGVyKSB7CisgICAgZnVuY3Rpb24gZ2V0RnVsbFRlc3ROYW1lKHRlc3QpIHsKKyAgICAgICAgcmV0dXJuIFsnUGFyc2VyKCcsIHRlc3QuZGlyTmFtZSwgJykgLSAnLCB0ZXN0LmlkeCwgJy4nLCB0ZXN0LnNldE5hbWUsICcgLSAnLCB0ZXN0LmlucHV0XS5qb2luKCcnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRMb2NhdGlvbkZ1bGxUZXN0TmFtZSh0ZXN0KSB7CisgICAgICAgIHJldHVybiBbJ1BhcnNlcihMb2NhdGlvbiBpbmZvKSAtICcsIHRlc3QubmFtZV0uam9pbignJyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2Fsa1RyZWUoZG9jdW1lbnQsIGhhbmRsZXIpIHsKKyAgICAgICAgZm9yICh2YXIgc3RhY2sgPSB0cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKGRvY3VtZW50KS5zbGljZSgpOyBzdGFjay5sZW5ndGg7KSB7CisgICAgICAgICAgICB2YXIgbm9kZSA9IHN0YWNrLnNoaWZ0KCksCisgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSB0cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKG5vZGUpOworCisgICAgICAgICAgICBoYW5kbGVyKG5vZGUpOworCisgICAgICAgICAgICBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoKQorICAgICAgICAgICAgICAgIHN0YWNrID0gY2hpbGRyZW4uY29uY2F0KHN0YWNrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vSGVyZSB3ZSBnby4uCisgICAgVGVzdFV0aWxzLmxvYWRUcmVlQ29uc3RydWN0aW9uVGVzdERhdGEoWworICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vZGF0YS90cmVlX2NvbnN0cnVjdGlvbicpLAorICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vZGF0YS90cmVlX2NvbnN0cnVjdGlvbl9yZWdyZXNzaW9uJyksCisgICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9kYXRhL3RyZWVfY29uc3RydWN0aW9uX29wdGlvbnMnKQorICAgIF0sIHRyZWVBZGFwdGVyKS5mb3JFYWNoKGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgICAgIF90ZXN0W2dldEZ1bGxUZXN0TmFtZSh0ZXN0KV0gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgcGFyc2VyID0gbmV3IFBhcnNlcih0cmVlQWRhcHRlciwgeworICAgICAgICAgICAgICAgICAgICBkZWNvZGVIdG1sRW50aXRpZXM6ICF0ZXN0LmRpc2FibGVFbnRpdGllc0RlY29kaW5nCisgICAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVzdC5mcmFnbWVudENvbnRleHQgPworICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5wYXJzZUZyYWdtZW50KHRlc3QuaW5wdXQsIHRlc3QuZnJhZ21lbnRDb250ZXh0KSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlKHRlc3QuaW5wdXQpLAorICAgICAgICAgICAgICAgIGFjdHVhbCA9IFRlc3RVdGlscy5zZXJpYWxpemVUb1Rlc3REYXRhRm9ybWF0KHJlc3VsdCwgdHJlZUFkYXB0ZXIpLAorICAgICAgICAgICAgICAgIG1zZyA9IFRlc3RVdGlscy5wcmV0dHlQcmludFBhcnNlckFzc2VydGlvbkFyZ3MoYWN0dWFsLCB0ZXN0LmV4cGVjdGVkKTsKKworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFjdHVhbCwgdGVzdC5leHBlY3RlZCwgbXNnKTsKKyAgICAgICAgfTsKKyAgICB9KTsKKworCisgICAgLy9Mb2NhdGlvbiBpbmZvIHRlc3RzCisgICAgVGVzdFV0aWxzLmxvYWRTZXJpYWxpemF0aW9uVGVzdERhdGEocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2RhdGEvc2VyaWFsaXphdGlvbicpKS5mb3JFYWNoKGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgICAgIC8vTk9URTogdGhlIGlkZWEgb2YgdGhpcyB0ZXN0IGlzIHRoZSBmb2xsb3dpbmc6IHdlIHBhcnNlIGRvY3VtZW50IHdpdGggdGhlIGxvY2F0aW9uIGluZm8uCisgICAgICAgIC8vVGhlbiBmb3IgZWFjaCBub2RlIGluIHRoZSB0cmVlIHdlIHJ1biBzZXJpYWxpemVyIGFuZCBjb21wYXJlIHJlc3VsdHMgd2l0aCB0aGUgc3Vic3RyaW5nCisgICAgICAgIC8vb2J0YWluZWQgdmlhIGxvY2F0aW9uIGluZm8gZnJvbSB0aGUgZXhwZWN0ZWQgc2VyaWFsaXphdGlvbiByZXN1bHRzLgorICAgICAgICBfdGVzdFtnZXRMb2NhdGlvbkZ1bGxUZXN0TmFtZSh0ZXN0KV0gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgcGFyc2VyID0gbmV3IFBhcnNlcih0cmVlQWRhcHRlciwgeworICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbkluZm86IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGRlY29kZUh0bWxFbnRpdGllczogZmFsc2UKKyAgICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgICBzZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIodHJlZUFkYXB0ZXIsIHsKKyAgICAgICAgICAgICAgICAgICAgZW5jb2RlSHRtbEVudGl0aWVzOiBmYWxzZQorICAgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgICAgIGh0bWwgPSB0ZXN0LmV4cGVjdGVkLAorICAgICAgICAgICAgICAgIGRvY3VtZW50ID0gcGFyc2VyLnBhcnNlKGh0bWwpOworCisgICAgICAgICAgICB3YWxrVHJlZShkb2N1bWVudCwgZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS5fX2xvY2F0aW9uICE9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBmcmFnbWVudCA9IHRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKworICAgICAgICAgICAgICAgICAgICB0cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmcmFnbWVudCwgbm9kZSk7CisKKyAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gc2VyaWFsaXplci5zZXJpYWxpemUoZnJhZ21lbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsID0gaHRtbC5zdWJzdHJpbmcobm9kZS5fX2xvY2F0aW9uLnN0YXJ0LCBub2RlLl9fbG9jYXRpb24uZW5kKTsKKworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IFRlc3RVdGlscy5yZW1vdmVOZXdMaW5lcyhleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGFjdHVhbCA9IFRlc3RVdGlscy5yZW1vdmVOZXdMaW5lcyhhY3R1YWwpOworCisgICAgICAgICAgICAgICAgICAgIC8vTk9URTogdXNlIG9rIGFzc2VydGlvbiwgc28gb3V0cHV0IHdpbGwgbm90IGJlIHBvbGx1dGVkIGJ5IHRoZSB3aG9sZSBjb250ZW50IG9mIHRoZSBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5vayhhY3R1YWwgPT09IGV4cGVjdGVkLCBUZXN0VXRpbHMuZ2V0U3RyaW5nRGlmZk1zZyhhY3R1YWwsIGV4cGVjdGVkKSk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUuX19sb2NhdGlvbi5zdGFydFRhZykgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9OT1RFOiBCYXNlZCBvbiB0aGUgaWRlYSB0aGF0IHRoZSBzZXJpYWxpemVkIGZyYWdtZW50IHN0YXJ0cyB3aXRoIHRoZSBzdGFydFRhZworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxlbmd0aCA9IG5vZGUuX19sb2NhdGlvbi5zdGFydFRhZy5lbmQgLSBub2RlLl9fbG9jYXRpb24uc3RhcnRUYWcuc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRTdGFydFRhZyA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplKGZyYWdtZW50KS5zdWJzdHJpbmcoMCwgbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxTdGFydFRhZyA9IGh0bWwuc3Vic3RyaW5nKG5vZGUuX19sb2NhdGlvbi5zdGFydFRhZy5zdGFydCwgbm9kZS5fX2xvY2F0aW9uLnN0YXJ0VGFnLmVuZCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkU3RhcnRUYWcgPSBUZXN0VXRpbHMucmVtb3ZlTmV3TGluZXMoZXhwZWN0ZWRTdGFydFRhZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxTdGFydFRhZyA9IFRlc3RVdGlscy5yZW1vdmVOZXdMaW5lcyhhY3R1YWxTdGFydFRhZyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5vayhleHBlY3RlZFN0YXJ0VGFnID09PSBhY3R1YWxTdGFydFRhZywgVGVzdFV0aWxzLmdldFN0cmluZ0RpZmZNc2coYWN0dWFsU3RhcnRUYWcsIGV4cGVjdGVkU3RhcnRUYWcpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLl9fbG9jYXRpb24uZW5kVGFnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL05PVEU6IEJhc2VkIG9uIHRoZSBpZGVhIHRoYXQgdGhlIHNlcmlhbGl6ZWQgZnJhZ21lbnQgZW5kcyB3aXRoIHRoZSBlbmRUYWcKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsZW5ndGggPSBub2RlLl9fbG9jYXRpb24uZW5kVGFnLmVuZCAtIG5vZGUuX19sb2NhdGlvbi5lbmRUYWcuc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRFbmRUYWcgPSBzZXJpYWxpemVyLnNlcmlhbGl6ZShmcmFnbWVudCkuc2xpY2UoLWxlbmd0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsRW5kVGFnID0gaHRtbC5zdWJzdHJpbmcobm9kZS5fX2xvY2F0aW9uLmVuZFRhZy5zdGFydCwgbm9kZS5fX2xvY2F0aW9uLmVuZFRhZy5lbmQpOworCisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZEVuZFRhZyA9IFRlc3RVdGlscy5yZW1vdmVOZXdMaW5lcyhleHBlY3RlZEVuZFRhZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxFbmRUYWcgPSBUZXN0VXRpbHMucmVtb3ZlTmV3TGluZXMoYWN0dWFsRW5kVGFnKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGV4cGVjdGVkRW5kVGFnID09PSBhY3R1YWxFbmRUYWcsIFRlc3RVdGlscy5nZXRTdHJpbmdEaWZmTXNnKGFjdHVhbEVuZFRhZywgZXhwZWN0ZWRFbmRUYWcpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9OworICAgIH0pOworCisgICAgZXhwb3J0c1snUmVncmVzc2lvbiAtIGxvY2F0aW9uIGluZm8gZm9yIHRoZSBpbXBsaWNpdGx5IGdlbmVyYXRlZCA8Ym9keT4sIDxodG1sPiBhbmQgPGhlYWQ+IChHSC00NCknXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGh0bWwgPSAnPC9oZWFkPjxkaXYgY2xhc3M9InRlc3QiPjwvZGl2PjwvYm9keT48L2h0bWw+JywKKyAgICAgICAgICAgIHBhcnNlciA9IG5ldyBQYXJzZXIodHJlZUFkYXB0ZXIsIHsKKyAgICAgICAgICAgICAgICBsb2NhdGlvbkluZm86IHRydWUsCisgICAgICAgICAgICAgICAgZGVjb2RlSHRtbEVudGl0aWVzOiBmYWxzZQorICAgICAgICAgICAgfSksCisgICAgICAgICAgICBkb2N1bWVudCA9IHBhcnNlci5wYXJzZShodG1sKTsKKworICAgICAgICAvL05PVEU6IGxvY2F0aW9uIGluZm8gZm9yIGFsbCBpbXBsaWNpdGx5IGdlbmVyYXRlZCBlbGVtZW50cyBzaG91bGQgYmUgbnVsbAorICAgICAgICB3YWxrVHJlZShkb2N1bWVudCwgZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgICAgIGlmICh0cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpICE9PSBIVE1MLlRBR19OQU1FUy5ESVYpCisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5vZGUuX19sb2NhdGlvbiwgbnVsbCk7CisgICAgICAgIH0pOworICAgIH07Cit9KTsKKworCitleHBvcnRzWydSZWdyZXNzaW9uIC0gSFRNTDUgTGVnYWN5IERvY3R5cGUgTWlzcGFyc2VkIHdpdGggaHRtbHBhcnNlcjIgdHJlZSBhZGFwdGVyIChHSC00NSknXSA9IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaHRtbCA9ICc8IURPQ1RZUEUgaHRtbCBTWVNURU0gImFib3V0OmxlZ2FjeS1jb21wYXQiPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+PC9odG1sPicsCisgICAgICAgIHBhcnNlciA9IG5ldyBQYXJzZXIocGFyc2U1LlRyZWVBZGFwdGVycy5odG1scGFyc2VyMiksCisgICAgICAgIGRvY3VtZW50ID0gcGFyc2VyLnBhcnNlKGh0bWwpOworCisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRvY3VtZW50LmNoaWxkTm9kZXNbMF0uZGF0YSwgJyFET0NUWVBFIGh0bWwgU1lTVEVNICJhYm91dDpsZWdhY3ktY29tcGF0IicpOworfTsKKworCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL3NlcmlhbGl6ZXJfdGVzdC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZml4dHVyZXMvc2VyaWFsaXplcl90ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzYzQzNjkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL3NlcmlhbGl6ZXJfdGVzdC5qcwpAQCAtMCwwICsxLDE1MSBAQAordmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpLAorICAgIHBhdGggPSByZXF1aXJlKCdwYXRoJyksCisgICAgcGFyc2U1ID0gcmVxdWlyZSgnLi4vLi4vaW5kZXgnKSwKKyAgICBQYXJzZXIgPSBwYXJzZTUuUGFyc2VyLAorICAgIFNlcmlhbGl6ZXIgPSBwYXJzZTUuU2VyaWFsaXplciwKKyAgICBUZXN0VXRpbHMgPSByZXF1aXJlKCcuLi90ZXN0X3V0aWxzJyk7CisKKworZXhwb3J0c1snQmFja3dhcmQgY29tcGF0aWJpbGl0eSAtIHBhcnNlNS5UcmVlU2VyaWFsaXplciddID0gZnVuY3Rpb24gKCkgeworICAgIGFzc2VydC5zdHJpY3RFcXVhbChTZXJpYWxpemVyLCBwYXJzZTUuVHJlZVNlcmlhbGl6ZXIpOworfTsKKworZXhwb3J0c1snUmVncmVzc2lvbiAtIEdldCB0ZXh0IG5vZGVcJ3MgcGFyZW50IHRhZ05hbWUgb25seSBpZiBpdFwncyBhbiBFbGVtZW50IG5vZGUgKEdILTM4KSddID0geworICAgIHRlc3Q6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHBhcnNlciA9IG5ldyBQYXJzZXIoKSwKKyAgICAgICAgICAgIHNlcmlhbGl6ZXIgPSBuZXcgU2VyaWFsaXplcigpLAorICAgICAgICAgICAgZG9jdW1lbnQgPSBwYXJzZXIucGFyc2UoJzx0ZW1wbGF0ZT55bzxkaXY+PC9kaXY+NDI8L3RlbXBsYXRlPicpLAorICAgICAgICAgICAgb3JpZ2luYWxHZXRUYWdOYW1lID0gdGhpcy5vcmlnaW5hbEdldFRhZ05hbWUgPSBwYXJzZTUuVHJlZUFkYXB0ZXJzLmRlZmF1bHQuZ2V0VGFnTmFtZTsKKworICAgICAgICBwYXJzZTUuVHJlZUFkYXB0ZXJzLmRlZmF1bHQuZ2V0VGFnTmFtZSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7CisgICAgICAgICAgICBhc3NlcnQub2soZWxlbWVudC50YWdOYW1lKTsKKworICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsR2V0VGFnTmFtZShlbGVtZW50KTsKKyAgICAgICAgfTsKKworICAgICAgICBzZXJpYWxpemVyLnNlcmlhbGl6ZShkb2N1bWVudCk7CisgICAgfSwKKworICAgIGFmdGVyOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHBhcnNlNS5UcmVlQWRhcHRlcnMuZGVmYXVsdC5nZXRUYWdOYW1lID0gdGhpcy5vcmlnaW5hbEdldFRhZ05hbWU7CisgICAgfQorfTsKKworZXhwb3J0c1snUmVncmVzc2lvbiAtIFNZU1RFTS1vbmx5IGRvY3R5cGUgc2VyaWFsaXphdGlvbiddID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBodG1sID0gJzwhRE9DVFlQRSBodG1sIFNZU1RFTSAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+JyArCisgICAgICAgICAgICAgICAnPGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JywKKyAgICAgICAgcGFyc2VyID0gbmV3IFBhcnNlcigpLAorICAgICAgICBzZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIoKSwKKyAgICAgICAgZG9jdW1lbnQgPSBwYXJzZXIucGFyc2UoaHRtbCksCisgICAgICAgIHNlcmlhbGl6ZWRSZXN1bHQgPSBzZXJpYWxpemVyLnNlcmlhbGl6ZShkb2N1bWVudCk7CisKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VyaWFsaXplZFJlc3VsdCwgaHRtbCk7Cit9OworCitleHBvcnRzWydSZWdyZXNzaW9uIC0gRXNjYXBpbmcgb2YgZG9jdHlwZXMgd2l0aCBxdW90ZXMgaW4gdGhlbSddID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBodG1sU3RycyA9IFsKKyAgICAgICAgICAgICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAnICsKKyAgICAgICAgICAgICciaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+JyArCisgICAgICAgICAgICAnPGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JywKKworICAgICAgICAgICAgJzwhRE9DVFlQRSBodG1sIFBVQkxJQyBcJy0vL1czQy8vIkRURCIgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU5cJyAnICsKKyAgICAgICAgICAgICciaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+JyArCisgICAgICAgICAgICAnPGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JywKKworICAgICAgICAgICAgJzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICcgKworICAgICAgICAgICAgJ1wnaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC8ieGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiXCc+JyArCisgICAgICAgICAgICAnPGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JworICAgICAgICBdLAorICAgICAgICBwYXJzZXIgPSBuZXcgUGFyc2VyKCksCisgICAgICAgIHNlcmlhbGl6ZXIgPSBuZXcgU2VyaWFsaXplcigpOworCisgICAgaHRtbFN0cnMuZm9yRWFjaChmdW5jdGlvbiAoaHRtbCkgeworICAgICAgICB2YXIgZG9jdW1lbnQgPSBwYXJzZXIucGFyc2UoaHRtbCksCisgICAgICAgICAgICBzZXJpYWxpemVkUmVzdWx0ID0gc2VyaWFsaXplci5zZXJpYWxpemUoZG9jdW1lbnQpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXJpYWxpemVkUmVzdWx0LCBodG1sKTsKKyAgICB9KTsKK307CisKK2V4cG9ydHNbJ1JlZ3Jlc3Npb24gLSBuZXcgbGluZSBpbiA8cHJlPiB0YWcnXSA9IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaHRtbFN0cnMgPSBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3JjOiAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxwcmU+XG50ZXN0PC9wcmU+PC9ib2R5PjwvaHRtbD4nLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxwcmU+dGVzdDwvcHJlPjwvYm9keT48L2h0bWw+JworICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNyYzogJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT48cHJlPlxuXG50ZXN0PC9wcmU+PC9ib2R5PjwvaHRtbD4nLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxwcmU+XG5cbnRlc3Q8L3ByZT48L2JvZHk+PC9odG1sPicKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgcGFyc2VyID0gbmV3IFBhcnNlcigpLAorICAgICAgICBzZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIoKTsKKworICAgIGh0bWxTdHJzLmZvckVhY2goZnVuY3Rpb24gKGh0bWxTdHIpIHsKKyAgICAgICAgdmFyIGRvY3VtZW50ID0gcGFyc2VyLnBhcnNlKGh0bWxTdHIuc3JjKSwKKyAgICAgICAgICAgIHNlcmlhbGl6ZWRSZXN1bHQgPSBzZXJpYWxpemVyLnNlcmlhbGl6ZShkb2N1bWVudCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlcmlhbGl6ZWRSZXN1bHQsIGh0bWxTdHIuZXhwZWN0ZWQpOworICAgIH0pOworfTsKKworZXhwb3J0c1snT3B0aW9ucyAtIGVuY29kZUh0bWxFbnRpdGllcyddID0gZnVuY3Rpb24gKCkgeworICAgIHZhciB0ZXN0SHRtbENhc2VzID0gWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtlbmNvZGVIdG1sRW50aXRpZXM6IHRydWV9LAorICAgICAgICAgICAgICAgIHNyYzogJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT4mPC9ib2R5PjwvaHRtbD4nLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PiZhbXA7PC9ib2R5PjwvaHRtbD4nCisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgb3B0aW9uczoge2VuY29kZUh0bWxFbnRpdGllczogZmFsc2V9LAorICAgICAgICAgICAgICAgIHNyYzogJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT4mPC9ib2R5PjwvaHRtbD4nLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkOiAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PiY8L2JvZHk+PC9odG1sPicKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgb3B0aW9uczoge2VuY29kZUh0bWxFbnRpdGllczogdHJ1ZX0sCisgICAgICAgICAgICAgICAgc3JjOiAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxhIGhyZWY9Imh0dHA6Ly9leGFtcGxlLmNvbT9oZWxsbz0xJndvcmxkPTIiPjwvYT48L2JvZHk+PC9odG1sPicsCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PGEgaHJlZj0iaHR0cDovL2V4YW1wbGUuY29tP2hlbGxvPTEmYW1wO3dvcmxkPTIiPjwvYT48L2JvZHk+PC9odG1sPicKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBvcHRpb25zOiB7ZW5jb2RlSHRtbEVudGl0aWVzOiBmYWxzZX0sCisgICAgICAgICAgICAgICAgc3JjOiAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxhIGhyZWY9Imh0dHA6Ly9leGFtcGxlLmNvbT9oZWxsbz0xJndvcmxkPTIiPjwvYT48L2JvZHk+PC9odG1sPicsCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6ICc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PGEgaHJlZj0iaHR0cDovL2V4YW1wbGUuY29tP2hlbGxvPTEmd29ybGQ9MiI+PC9hPjwvYm9keT48L2h0bWw+JworICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICBwYXJzZXIgPSBuZXcgUGFyc2VyKCk7CisKKyAgICB0ZXN0SHRtbENhc2VzLmZvckVhY2goZnVuY3Rpb24gKHRlc3RDYXNlKSB7CisgICAgICAgIHZhciBzZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIobnVsbCwgdGVzdENhc2Uub3B0aW9ucyk7CisgICAgICAgIHZhciBkb2N1bWVudCA9IHBhcnNlci5wYXJzZSh0ZXN0Q2FzZS5zcmMpLAorICAgICAgICAgICAgc2VyaWFsaXplZFJlc3VsdCA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplKGRvY3VtZW50KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2VyaWFsaXplZFJlc3VsdCwgdGVzdENhc2UuZXhwZWN0ZWQpOworICAgIH0pOworfTsKKworCitUZXN0VXRpbHMuZ2VuZXJhdGVUZXN0c0ZvckVhY2hUcmVlQWRhcHRlcihtb2R1bGUuZXhwb3J0cywgZnVuY3Rpb24gKF90ZXN0LCB0cmVlQWRhcHRlcikgeworICAgIGZ1bmN0aW9uIGdldEZ1bGxUZXN0TmFtZSh0ZXN0KSB7CisgICAgICAgIHJldHVybiBbJ1NlcmlhbGl6ZXIgLSAnLCB0ZXN0LmlkeCwgJy4nLCB0ZXN0Lm5hbWVdLmpvaW4oJycpOworICAgIH0KKworICAgIHZhciB0ZXN0RGF0YURpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9kYXRhL3NlcmlhbGl6YXRpb24nKTsKKworICAgIC8vSGVyZSB3ZSBnby4uCisgICAgVGVzdFV0aWxzLmxvYWRTZXJpYWxpemF0aW9uVGVzdERhdGEodGVzdERhdGFEaXIpLmZvckVhY2goZnVuY3Rpb24gKHRlc3QpIHsKKyAgICAgICAgX3Rlc3RbZ2V0RnVsbFRlc3ROYW1lKHRlc3QpXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBwYXJzZXIgPSBuZXcgUGFyc2VyKHRyZWVBZGFwdGVyKSwKKyAgICAgICAgICAgICAgICBzZXJpYWxpemVyID0gbmV3IFNlcmlhbGl6ZXIodHJlZUFkYXB0ZXIpLAorICAgICAgICAgICAgICAgIGRvY3VtZW50ID0gcGFyc2VyLnBhcnNlKHRlc3Quc3JjKSwKKyAgICAgICAgICAgICAgICBzZXJpYWxpemVkUmVzdWx0ID0gVGVzdFV0aWxzLnJlbW92ZU5ld0xpbmVzKHNlcmlhbGl6ZXIuc2VyaWFsaXplKGRvY3VtZW50KSksCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBUZXN0VXRpbHMucmVtb3ZlTmV3TGluZXModGVzdC5leHBlY3RlZCk7CisKKyAgICAgICAgICAgIC8vTk9URTogdXNlIG9rIGFzc2VydGlvbiwgc28gb3V0cHV0IHdpbGwgbm90IGJlIHBvbGx1dGVkIGJ5IHRoZSB3aG9sZSBjb250ZW50IG9mIHRoZSBzdHJpbmdzCisgICAgICAgICAgICBhc3NlcnQub2soc2VyaWFsaXplZFJlc3VsdCA9PT0gZXhwZWN0ZWQsIFRlc3RVdGlscy5nZXRTdHJpbmdEaWZmTXNnKHNlcmlhbGl6ZWRSZXN1bHQsIGV4cGVjdGVkKSk7CisgICAgICAgIH07CisgICAgfSk7CisKK30pOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9maXh0dXJlcy9zaW1wbGVfYXBpX3BhcnNlcl90ZXN0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9maXh0dXJlcy9zaW1wbGVfYXBpX3BhcnNlcl90ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NGY3ZWUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL3NpbXBsZV9hcGlfcGFyc2VyX3Rlc3QuanMKQEAgLTAsMCArMSwxMTcgQEAKK3ZhciBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKSwKKyAgICBwYXRoID0gcmVxdWlyZSgncGF0aCcpLAorICAgIFNpbXBsZUFwaVBhcnNlciA9IHJlcXVpcmUoJy4uLy4uL2luZGV4JykuU2ltcGxlQXBpUGFyc2VyLAorICAgIFRlc3RVdGlscyA9IHJlcXVpcmUoJy4uL3Rlc3RfdXRpbHMnKTsKKworZnVuY3Rpb24gZ2V0RnVsbFRlc3ROYW1lKHRlc3QsIGlkeCkgeworICAgIHJldHVybiBbJ1NpbXBsZUFwaVBhcnNlciAtICcsIGlkeCwgJy4nLCB0ZXN0Lm5hbWVdLmpvaW4oJycpOworfQorCitmdW5jdGlvbiBzYW5pdGl6ZUZvckNvbXBhcmlzb24oc3RyKSB7CisgICAgcmV0dXJuIFRlc3RVdGlscy5yZW1vdmVOZXdMaW5lcyhzdHIpCisgICAgICAgIC5yZXBsYWNlKC9ccy9nLCAnJykKKyAgICAgICAgLnJlcGxhY2UoLycvZywgJyInKQorICAgICAgICAudG9Mb3dlckNhc2UoKTsKK30KKworCitmdW5jdGlvbiBjcmVhdGVUZXN0KGh0bWwsIGV4cGVjdGVkLCBvcHRpb25zKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgLy9OT1RFOiB0aGUgaWRlYSBvZiB0aGUgdGVzdCBpcyB0byBzZXJpYWxpemUgYmFjayBnaXZlbiBIVE1MIHVzaW5nIFNpbXBsZUFwaVBhcnNlciBoYW5kbGVycworICAgICAgICB2YXIgYWN0dWFsID0gJycsCisgICAgICAgICAgICBwYXJzZXIgPSBuZXcgU2ltcGxlQXBpUGFyc2VyKHsKKyAgICAgICAgICAgICAgICBkb2N0eXBlOiBmdW5jdGlvbiAobmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSB7CisgICAgICAgICAgICAgICAgICAgIGFjdHVhbCArPSAnPCFET0NUWVBFICcgKyBuYW1lOworCisgICAgICAgICAgICAgICAgICAgIGlmIChwdWJsaWNJZCAhPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbCArPSAnIFBVQkxJQyAiJyArIHB1YmxpY0lkICsgJyInOworCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN5c3RlbUlkICE9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsICs9ICcgU1lTVEVNJzsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc3lzdGVtSWQgIT09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgKz0gJyAiJyArIHN5c3RlbUlkICsgJyInOworCisKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsICs9ICc+JzsKKyAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgc3RhcnRUYWc6IGZ1bmN0aW9uICh0YWdOYW1lLCBhdHRycywgc2VsZkNsb3NpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsICs9ICc8JyArIHRhZ05hbWU7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgKz0gJyAnICsgYXR0cnNbaV0ubmFtZSArICc9IicgKyBhdHRyc1tpXS52YWx1ZSArICciJzsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGFjdHVhbCArPSBzZWxmQ2xvc2luZyA/ICcvPicgOiAnPic7CisgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgIGVuZFRhZzogZnVuY3Rpb24gKHRhZ05hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsICs9ICc8LycgKyB0YWdOYW1lICsgJz4nOworICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICB0ZXh0OiBmdW5jdGlvbiAodGV4dCkgeworICAgICAgICAgICAgICAgICAgICBhY3R1YWwgKz0gdGV4dDsKKyAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgY29tbWVudDogZnVuY3Rpb24gKHRleHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsICs9ICc8IS0tJyArIHRleHQgKyAnLS0+JzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCBvcHRpb25zKTsKKworICAgICAgICBwYXJzZXIucGFyc2UoaHRtbCk7CisKKyAgICAgICAgZXhwZWN0ZWQgPSBzYW5pdGl6ZUZvckNvbXBhcmlzb24oZXhwZWN0ZWQpOworICAgICAgICBhY3R1YWwgPSBzYW5pdGl6ZUZvckNvbXBhcmlzb24oYWN0dWFsKTsKKworICAgICAgICAvL05PVEU6IHVzZSBvayBhc3NlcnRpb24sIHNvIG91dHB1dCB3aWxsIG5vdCBiZSBwb2xsdXRlZCBieSB0aGUgd2hvbGUgY29udGVudCBvZiB0aGUgc3RyaW5ncworICAgICAgICBhc3NlcnQub2soYWN0dWFsID09PSBleHBlY3RlZCwgVGVzdFV0aWxzLmdldFN0cmluZ0RpZmZNc2coYWN0dWFsLCBleHBlY3RlZCkpOworICAgIH07Cit9CisKK1Rlc3RVdGlscy5sb2FkU2VyaWFsaXphdGlvblRlc3REYXRhKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9kYXRhL3NpbXBsZV9hcGlfcGFyc2luZycpKQorICAgIC5jb25jYXQoWworICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAnT3B0aW9ucyAtIGRlY29kZUh0bWxFbnRpdGllcyAodGV4dCknLAorICAgICAgICAgICAgc3JjOiAnPGRpdj4mYW1wOyZjb3B5OzwvZGl2PicsCisgICAgICAgICAgICBleHBlY3RlZDogJzxkaXY+JmFtcDsmY29weTs8L2Rpdj4nLAorICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgICAgIGRlY29kZUh0bWxFbnRpdGllczogZmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAnT3B0aW9ucyAtIGRlY29kZUh0bWxFbnRpdGllcyAoYXR0cmlidXRlcyknLAorICAgICAgICAgICAgc3JjOiAnPGEgaHJlZiA9ICImYW1wO3Rlc3QmbHQ7IiAmY29weTs+WW88L2E+JywKKyAgICAgICAgICAgIGV4cGVjdGVkOiAnPGEgaHJlZiA9ICImYW1wO3Rlc3QmbHQ7IiAmY29weTs9IiI+WW88L2E+JywKKyAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAgICBkZWNvZGVIdG1sRW50aXRpZXM6IGZhbHNlCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBdKQorICAgIC5mb3JFYWNoKGZ1bmN0aW9uICh0ZXN0LCBpZHgpIHsKKyAgICAgICAgdmFyIHRlc3ROYW1lID0gZ2V0RnVsbFRlc3ROYW1lKHRlc3QsIGlkeCk7CisKKyAgICAgICAgZXhwb3J0c1t0ZXN0TmFtZV0gPSBjcmVhdGVUZXN0KHRlc3Quc3JjLCB0ZXN0LmV4cGVjdGVkLCB0ZXN0Lm9wdGlvbnMpOworCisgICAgICAgIGV4cG9ydHNbJ09wdGlvbnMgLSBsb2NhdGlvbkluZm8gLSAnICsgdGVzdE5hbWVdID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgLy9OT1RFOiB3ZSd2ZSBhbHJlYWR5IHRlc3RlZCB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIGxvY2F0aW9uIGluZm8gd2l0aCB0aGUgVG9rZW5pemVyIHRlc3RzLgorICAgICAgICAgICAgLy9TbyBoZXJlIHdlIGp1c3QgY2hlY2sgdGhhdCBTaW1wbGVBcGlQYXJzZXIgcHJvdmlkZXMgdGhpcyBpbmZvIGluIHRoZSBoYW5kbGVycy4KKyAgICAgICAgICAgIHZhciBoYW5kbGVycyA9IFsnZG9jdHlwZScsICdzdGFydFRhZycsICdlbmRUYWcnLCAndGV4dCcsICdjb21tZW50J10ucmVkdWNlKGZ1bmN0aW9uIChoYW5kbGVycywga2V5KSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzW2tleV0gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb25JbmZvID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTsKKworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZiBsb2NhdGlvbkluZm8uc3RhcnQsICdudW1iZXInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0eXBlb2YgbG9jYXRpb25JbmZvLmVuZCwgJ251bWJlcicpOworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlcnM7CisgICAgICAgICAgICAgICAgfSwge30pLAorICAgICAgICAgICAgICAgIHBhcnNlciA9IG5ldyBTaW1wbGVBcGlQYXJzZXIoaGFuZGxlcnMsIHtsb2NhdGlvbkluZm86IHRydWV9KTsKKworICAgICAgICAgICAgcGFyc2VyLnBhcnNlKHRlc3Quc3JjKTsKKyAgICAgICAgfTsKKyAgICB9KTsKKworCisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvZml4dHVyZXMvdG9rZW5pemVyX3Rlc3QuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL3Rva2VuaXplcl90ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1YjE4MDEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L2ZpeHR1cmVzL3Rva2VuaXplcl90ZXN0LmpzCkBAIC0wLDAgKzEsMjUxIEBACit2YXIgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0JyksCisgICAgZnMgPSByZXF1aXJlKCdmcycpLAorICAgIHBhdGggPSByZXF1aXJlKCdwYXRoJyksCisgICAgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vLi4vbGliL3Rva2VuaXphdGlvbi90b2tlbml6ZXInKTsKKworZnVuY3Rpb24gdG9rZW5pemUoaHRtbCwgaW5pdGlhbFN0YXRlLCBsYXN0U3RhcnRUYWcpIHsKKyAgICB2YXIgdG9rZW5pemVyID0gbmV3IFRva2VuaXplcihodG1sKSwKKyAgICAgICAgbmV4dFRva2VuID0gbnVsbCwKKyAgICAgICAgb3V0ID0gW107CisKKyAgICB0b2tlbml6ZXIuc3RhdGUgPSBpbml0aWFsU3RhdGU7CisKKyAgICBpZiAobGFzdFN0YXJ0VGFnKQorICAgICAgICB0b2tlbml6ZXIubGFzdFN0YXJ0VGFnTmFtZSA9IGxhc3RTdGFydFRhZzsKKworICAgIGRvIHsKKyAgICAgICAgbmV4dFRva2VuID0gdG9rZW5pemVyLmdldE5leHRUb2tlbigpOworCisgICAgICAgIC8vTk9URTogYXBwZW5kIGN1cnJlbnQgdG9rZW4gdG8gdGhlIG91dHB1dCBzZXF1ZW5jZSBpbiBodG1sNWxpYiB0ZXN0IHN1aXRlIGNvbXBhdGlibGUgZm9ybWF0CisgICAgICAgIHN3aXRjaCAobmV4dFRva2VuLnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTjoKKyAgICAgICAgICAgIGNhc2UgVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOOgorICAgICAgICAgICAgY2FzZSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU46CisgICAgICAgICAgICAgICAgb3V0LnB1c2goWydDaGFyYWN0ZXInLCBuZXh0VG9rZW4uY2hhcnNdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOOgorICAgICAgICAgICAgICAgIHZhciByZWZvcm1hdGVkQXR0cnMgPSB7fTsKKworICAgICAgICAgICAgICAgIG5leHRUb2tlbi5hdHRycy5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyKSB7CisgICAgICAgICAgICAgICAgICAgIHJlZm9ybWF0ZWRBdHRyc1thdHRyLm5hbWVdID0gYXR0ci52YWx1ZTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHZhciBzdGFydFRhZ0VudHJ5ID0gWworICAgICAgICAgICAgICAgICAgICAnU3RhcnRUYWcnLAorICAgICAgICAgICAgICAgICAgICBuZXh0VG9rZW4udGFnTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgcmVmb3JtYXRlZEF0dHJzCisgICAgICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgICAgIGlmIChuZXh0VG9rZW4uc2VsZkNsb3NpbmcpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGFnRW50cnkucHVzaCh0cnVlKTsKKworICAgICAgICAgICAgICAgIG91dC5wdXNoKHN0YXJ0VGFnRW50cnkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFRva2VuaXplci5FTkRfVEFHX1RPS0VOOgorICAgICAgICAgICAgICAgIG91dC5wdXNoKFsnRW5kVGFnJywgbmV4dFRva2VuLnRhZ05hbWVdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTjoKKyAgICAgICAgICAgICAgICBvdXQucHVzaChbJ0NvbW1lbnQnLCBuZXh0VG9rZW4uZGF0YV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFRva2VuaXplci5ET0NUWVBFX1RPS0VOOgorICAgICAgICAgICAgICAgIG91dC5wdXNoKFsKKyAgICAgICAgICAgICAgICAgICAgJ0RPQ1RZUEUnLAorICAgICAgICAgICAgICAgICAgICBuZXh0VG9rZW4ubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgbmV4dFRva2VuLnB1YmxpY0lkLAorICAgICAgICAgICAgICAgICAgICBuZXh0VG9rZW4uc3lzdGVtSWQsCisgICAgICAgICAgICAgICAgICAgICFuZXh0VG9rZW4uZm9yY2VRdWlya3MKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0gd2hpbGUgKG5leHRUb2tlbi50eXBlICE9PSBUb2tlbml6ZXIuRU9GX1RPS0VOKTsKKworICAgIHJldHVybiBjb25jYXRDaGFyYWN0ZXJUb2tlbnMob3V0KQorfQorCitmdW5jdGlvbiB1bmljb2RlVW5lc2NhcGUoc3RyKSB7CisgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXHUoW1xkXHddezR9KS9naSwgZnVuY3Rpb24gKG1hdGNoLCBjaENvZGVTdHIpIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoY2hDb2RlU3RyLCAxNikpOworICAgIH0pOworfQorCitmdW5jdGlvbiB1bmVzY2FwZURlc2NySU8odGVzdERlc2NyKSB7CisgICAgdGVzdERlc2NyLmlucHV0ID0gdW5pY29kZVVuZXNjYXBlKHRlc3REZXNjci5pbnB1dCk7CisKKyAgICB0ZXN0RGVzY3Iub3V0cHV0LmZvckVhY2goZnVuY3Rpb24gKHRva2VuRW50cnkpIHsKKyAgICAgICAgaWYgKHRva2VuRW50cnkgPT09ICdQYXJzZUVycm9yJykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvL05PVEU6IHVuZXNjYXBlIHRva2VuIHRhZ05hbWUgKGZvciBTdGFydFRhZyBhbmQgRW5kVGFnIHRva2VucyksIGNvbW1lbnQgZGF0YSAoZm9yIENvbW1lbnQgdG9rZW4pLAorICAgICAgICAvL2NoYXJhY3RlciB0b2tlbiBkYXRhIChmb3IgQ2hhcmFjdGVyIHRva2VuKS4KKyAgICAgICAgdG9rZW5FbnRyeVsxXSA9IHVuaWNvZGVVbmVzY2FwZSh0b2tlbkVudHJ5WzFdKTsKKworICAgICAgICAvL05PVEU6IHVuZXNjYXBlIHRva2VuIGF0dHJpYnV0ZXMoaWYgd2UgaGF2ZSB0aGVtKS4KKyAgICAgICAgaWYgKHRva2VuRW50cnkubGVuZ3RoID4gMikgeworICAgICAgICAgICAgT2JqZWN0LmtleXModG9rZW5FbnRyeSkuZm9yRWFjaChmdW5jdGlvbiAoYXR0ck5hbWUpIHsKKyAgICAgICAgICAgICAgICB2YXIgYXR0clZhbCA9IHRva2VuRW50cnlbYXR0ck5hbWVdOworCisgICAgICAgICAgICAgICAgZGVsZXRlIHRva2VuRW50cnlbYXR0ck5hbWVdOworICAgICAgICAgICAgICAgIHRva2VuRW50cnlbdW5pY29kZVVuZXNjYXBlKGF0dHJOYW1lKV0gPSB1bmljb2RlVW5lc2NhcGUoYXR0clZhbCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworfQorCitmdW5jdGlvbiBjb25jYXRDaGFyYWN0ZXJUb2tlbnModG9rZW5FbnRyaWVzKSB7CisgICAgdmFyIHJlc3VsdCA9IFtdOworCisgICAgdG9rZW5FbnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKHRva2VuRW50cnkpIHsKKyAgICAgICAgaWYgKHRva2VuRW50cnlbMF0gPT09ICdDaGFyYWN0ZXInKSB7CisgICAgICAgICAgICB2YXIgbGFzdEVudHJ5ID0gcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXTsKKworICAgICAgICAgICAgaWYgKGxhc3RFbnRyeSAmJiBsYXN0RW50cnlbMF0gPT09ICdDaGFyYWN0ZXInKSB7CisgICAgICAgICAgICAgICAgbGFzdEVudHJ5WzFdICs9IHRva2VuRW50cnlbMV07CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0LnB1c2godG9rZW5FbnRyeSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBnZXRUb2tlbml6ZXJTdWl0YWJsZVN0YXRlTmFtZSh0ZXN0RGF0YVN0YXRlTmFtZSkgeworICAgIHJldHVybiB0ZXN0RGF0YVN0YXRlTmFtZS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoL1xzL2csICdfJyk7Cit9CisKK2Z1bmN0aW9uIGxvYWRUZXN0cygpIHsKKyAgICB2YXIgZGF0YURpclBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vZGF0YS90b2tlbml6YXRpb24nKSwKKyAgICAgICAgdGVzdFNldEZpbGVOYW1lcyA9IGZzLnJlYWRkaXJTeW5jKGRhdGFEaXJQYXRoKSwKKyAgICAgICAgdGVzdElkeCA9IDAsCisgICAgICAgIHRlc3RzID0gW107CisKKyAgICB0ZXN0U2V0RmlsZU5hbWVzLmZvckVhY2goZnVuY3Rpb24gKGZpbGVOYW1lKSB7CisgICAgICAgIHZhciBmaWxlUGF0aCA9IHBhdGguam9pbihkYXRhRGlyUGF0aCwgZmlsZU5hbWUpLAorICAgICAgICAgICAgdGVzdFNldEpzb24gPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpLnRvU3RyaW5nKCksCisgICAgICAgICAgICB0ZXN0U2V0ID0gSlNPTi5wYXJzZSh0ZXN0U2V0SnNvbiksCisgICAgICAgICAgICB0ZXN0RGVzY3JzID0gdGVzdFNldC50ZXN0cywKKyAgICAgICAgICAgIHNldE5hbWUgPSBmaWxlTmFtZS5yZXBsYWNlKCcudGVzdCcsICcnKTsKKworICAgICAgICB0ZXN0RGVzY3JzLmZvckVhY2goZnVuY3Rpb24gKGRlc2NyKSB7CisgICAgICAgICAgICBpZiAoIWRlc2NyLmluaXRpYWxTdGF0ZXMpCisgICAgICAgICAgICAgICAgZGVzY3IuaW5pdGlhbFN0YXRlcyA9IFsnRGF0YSBzdGF0ZSddOworCisgICAgICAgICAgICBpZiAoZGVzY3IuZG91YmxlRXNjYXBlZCkKKyAgICAgICAgICAgICAgICB1bmVzY2FwZURlc2NySU8oZGVzY3IpOworCisgICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBbXTsKKworICAgICAgICAgICAgZGVzY3Iub3V0cHV0LmZvckVhY2goZnVuY3Rpb24gKHRva2VuRW50cnkpIHsKKyAgICAgICAgICAgICAgICBpZiAodG9rZW5FbnRyeSAhPT0gJ1BhcnNlRXJyb3InKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKHRva2VuRW50cnkpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGRlc2NyLmluaXRpYWxTdGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7CisgICAgICAgICAgICAgICAgdGVzdHMucHVzaCh7CisgICAgICAgICAgICAgICAgICAgIGlkeDogKyt0ZXN0SWR4LAorICAgICAgICAgICAgICAgICAgICBzZXROYW1lOiBzZXROYW1lLAorICAgICAgICAgICAgICAgICAgICBuYW1lOiBkZXNjci5kZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IGRlc2NyLmlucHV0LAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogY29uY2F0Q2hhcmFjdGVyVG9rZW5zKGV4cGVjdGVkKSwKKyAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFN0YXRlOiBnZXRUb2tlbml6ZXJTdWl0YWJsZVN0YXRlTmFtZShpbml0aWFsU3RhdGUpLAorICAgICAgICAgICAgICAgICAgICBsYXN0U3RhcnRUYWc6IGRlc2NyLmxhc3RTdGFydFRhZworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgcmV0dXJuIHRlc3RzOworfQorCitmdW5jdGlvbiBnZXRGdWxsVGVzdE5hbWUodGVzdCkgeworICAgIHJldHVybiBbJ1Rva2VuaXplciAtICcgKworICAgICAgICAgICAgdGVzdC5pZHgsICcuJywgdGVzdC5zZXROYW1lLCAnIC0gJywgdGVzdC5uYW1lLCAnIC0gSW5pdGlhbCBzdGF0ZTogJywgdGVzdC5pbml0aWFsU3RhdGVdLmpvaW4oJycpOworfQorCisvL0hlcmUgd2UgZ28uLgorbG9hZFRlc3RzKCkuZm9yRWFjaChmdW5jdGlvbiAodGVzdCkgeworICAgIGV4cG9ydHNbZ2V0RnVsbFRlc3ROYW1lKHRlc3QpXSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIG91dCA9IHRva2VuaXplKHRlc3QuaW5wdXQsIHRlc3QuaW5pdGlhbFN0YXRlLCB0ZXN0Lmxhc3RTdGFydFRhZyk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdXQsIHRlc3QuZXhwZWN0ZWQpOworICAgIH07Cit9KTsKKworCitleHBvcnRzWydPcHRpb25zIC0gbG9jYXRpb25JbmZvJ10gPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRlc3RDYXNlcyA9IFsKKyAgICAgICAgeworICAgICAgICAgICAgaW5pdGlhbE1vZGU6IFRva2VuaXplci5NT0RFLkRBVEEsCisgICAgICAgICAgICBsYXN0U3RhcnRUYWdOYW1lOiAnJywKKyAgICAgICAgICAgIGh0bWxDaHVua3M6IFsKKyAgICAgICAgICAgICAgICAnXHJcbicsICc8IURPQ1RZUEUgaHRtbD4nLCAnXG4nLAorICAgICAgICAgICAgICAgICc8IS0tIFRlc3QgLS0+JywgJ1xuJywKKyAgICAgICAgICAgICAgICAnPGhlYWQ+JywKKyAgICAgICAgICAgICAgICAnXG4gICAnLCAnPG1ldGEgY2hhcnNldD0idXRmLTgiPicsICc8dGl0bGU+JywgJyAgICcsICdub2RlLmpzJywgJ1x1MDAwMCcsICc8L3RpdGxlPicsICdcbicsCisgICAgICAgICAgICAgICAgJzwvaGVhZD4nLCAnXG4nLAorICAgICAgICAgICAgICAgICc8Ym9keSBpZD0iZnJvbnQiPicsICdcbicsCisgICAgICAgICAgICAgICAgJzxkaXYgaWQ9ImludHJvIj4nLAorICAgICAgICAgICAgICAgICdcbiAgICcsICc8cD4nLAorICAgICAgICAgICAgICAgICdcbiAgICAgICAnLCAnTm9kZS5qcycsICcgJywgJ2lzJywgJyAnLCAnYScsCisgICAgICAgICAgICAgICAgJ1xuICAgICAgICcsICdwbGF0Zm9ybScsICcgJywgJ2J1aWx0JywgJyAnLCAnb24nLAorICAgICAgICAgICAgICAgICdcbiAgICAgICAnLCAnPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4LyI+JywKKyAgICAgICAgICAgICAgICAnXG4gICAgICAgJywgJ0Nocm9tZVwncycsICcgJywgJ0phdmFTY3JpcHQnLCAnICcsICdydW50aW1lJywKKyAgICAgICAgICAgICAgICAnXG4gICAgICAgJywgJzwvYT4nLCAnXG4nLAorICAgICAgICAgICAgICAgICc8L2Rpdj4nLAorICAgICAgICAgICAgICAgICc8Ym9keT4nCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIGluaXRpYWxNb2RlOiBUb2tlbml6ZXIuTU9ERS5SQ0RBVEEsCisgICAgICAgICAgICBsYXN0U3RhcnRUYWdOYW1lOiAndGl0bGUnLAorICAgICAgICAgICAgaHRtbENodW5rczogWworICAgICAgICAgICAgICAgICc8ZGl2PlRlc3QnLAorICAgICAgICAgICAgICAgICcgXG4gICAnLCAnaGV5JywgJyAnLCAneWEhJywgJzwvdGl0bGU+JywgJzwhLS1Zby0tPicKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgaW5pdGlhbE1vZGU6IFRva2VuaXplci5NT0RFLlJBV1RFWFQsCisgICAgICAgICAgICBsYXN0U3RhcnRUYWdOYW1lOiAnc3R5bGUnLAorICAgICAgICAgICAgaHRtbENodW5rczogWworICAgICAgICAgICAgICAgICcuaGVhZGVyeycsICcgXG4gICAnLCAnY29sb3I6cmVkOycsICdcbicsICd9JywgJzwvc3R5bGU+JywgJ1NvbWUnLCAnICcsICd0ZXh0JworICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBpbml0aWFsTW9kZTogVG9rZW5pemVyLk1PREUuU0NSSVBUX0RBVEEsCisgICAgICAgICAgICBsYXN0U3RhcnRUYWdOYW1lOiAnc2NyaXB0JywKKyAgICAgICAgICAgIGh0bWxDaHVua3M6IFsKKyAgICAgICAgICAgICAgICAndmFyJywgJyAnLCAnYT1jJywgJyAnLCAnLScsICcgJywgJ2Q7JywgJ1xuJywgJ2E8LS1kOycsICc8L3NjcmlwdD4nLCAnPGRpdj4nCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIGluaXRpYWxNb2RlOiBUb2tlbml6ZXIuTU9ERS5QTEFJTlRFWFQsCisgICAgICAgICAgICBsYXN0U3RhcnRUYWdOYW1lOiAncGxhaW50ZXh0JywKKyAgICAgICAgICAgIGh0bWxDaHVua3M6IFsKKyAgICAgICAgICAgICAgICAnVGV4dCcsICcgXG4nLCAnVGVzdDwvcGxhaW50ZXh0PjxkaXY+JworICAgICAgICAgICAgXQorICAgICAgICB9CisKKyAgICBdOworCisgICAgdGVzdENhc2VzLmZvckVhY2goZnVuY3Rpb24gKHRlc3RDYXNlKSB7CisgICAgICAgIHZhciBodG1sID0gdGVzdENhc2UuaHRtbENodW5rcy5qb2luKCcnKSwKKyAgICAgICAgICAgIHRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIoaHRtbCwge2xvY2F0aW9uSW5mbzogdHJ1ZX0pOworCisgICAgICAgIHRva2VuaXplci5zdGF0ZSA9IHRlc3RDYXNlLmluaXRpYWxNb2RlOworICAgICAgICB0b2tlbml6ZXIubGFzdFN0YXJ0VGFnTmFtZSA9IHRlc3RDYXNlLmxhc3RTdGFydFRhZ05hbWU7CisKKyAgICAgICAgZm9yICh2YXIgdG9rZW4gPSB0b2tlbml6ZXIuZ2V0TmV4dFRva2VuKCksIGkgPSAwOyB0b2tlbi50eXBlICE9PSBUb2tlbml6ZXIuRU9GX1RPS0VOOykgeworICAgICAgICAgICAgdmFyIGNodW5rID0gaHRtbC5zdWJzdHJpbmcodG9rZW4ubG9jYXRpb24uc3RhcnQsIHRva2VuLmxvY2F0aW9uLmVuZCk7CisKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjaHVuaywgdGVzdENhc2UuaHRtbENodW5rc1tpXSk7CisKKyAgICAgICAgICAgIHRva2VuID0gdG9rZW5pemVyLmdldE5leHRUb2tlbigpOworICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgfSk7Cit9OwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9ydW5fdGVzdHMuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L3J1bl90ZXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWZhODk0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdGVzdC9ydW5fdGVzdHMuanMKQEAgLTAsMCArMSwxOCBAQAordmFyIGZzID0gcmVxdWlyZSgnZnMnKSwKKyAgICBwYXRoID0gcmVxdWlyZSgncGF0aCcpLAorICAgIE1vY2hhID0gcmVxdWlyZSgnbW9jaGEnKTsKKwordmFyIGZpeHR1cmVzRGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vZml4dHVyZXMnKSwKKyAgICBtb2NoYSA9IG5ldyBNb2NoYSgpCisgICAgICAgIC51aSgnZXhwb3J0cycpCisgICAgICAgIC5yZXBvcnRlcigncHJvZ3Jlc3MnKTsKKworZnMucmVhZGRpclN5bmMoZml4dHVyZXNEaXIpLmZvckVhY2goZnVuY3Rpb24gKGZpbGUpIHsKKyAgICBtb2NoYS5hZGRGaWxlKHBhdGguam9pbihmaXh0dXJlc0RpciwgZmlsZSkpOworfSk7CisKK21vY2hhLnJ1bihmdW5jdGlvbiAoZmFpbGVkKSB7CisgICAgcHJvY2Vzcy5vbignZXhpdCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcHJvY2Vzcy5leGl0KGZhaWxlZCk7CisgICAgfSk7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L3Rlc3RfdXRpbHMuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90ZXN0L3Rlc3RfdXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJkYzA2YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvcGFyc2U1L3Rlc3QvdGVzdF91dGlscy5qcwpAQCAtMCwwICsxLDI0MSBAQAordmFyIGZzID0gcmVxdWlyZSgnZnMnKSwKKyAgICBwYXRoID0gcmVxdWlyZSgncGF0aCcpLAorICAgIHBhcnNlNSA9IHJlcXVpcmUoJy4uL2luZGV4JyksCisgICAgSFRNTCA9IHJlcXVpcmUoJy4uL2xpYi9jb21tb24vaHRtbCcpOworCitmdW5jdGlvbiBhZGRTbGFzaGVzKHN0cikgeworICAgIHJldHVybiBzdHIKKyAgICAgICAgLnJlcGxhY2UoL1x0L2csICdcXHQnKQorICAgICAgICAucmVwbGFjZSgvXG4vZywgJ1xcbicpCisgICAgICAgIC5yZXBsYWNlKC9cZi9nLCAnXFxmJykKKyAgICAgICAgLnJlcGxhY2UoL1xyL2csICdcXHInKTsKK30KKworZnVuY3Rpb24gY3JlYXRlRGlmZk1hcmtlcihtYXJrZXJQb3NpdGlvbikgeworICAgIHZhciBtYXJrZXIgPSAnJzsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFya2VyUG9zaXRpb24gLSAxOyBpKyspCisgICAgICAgIG1hcmtlciArPSAnICc7CisKKyAgICByZXR1cm4gbWFya2VyICsgJ15cbic7Cit9CisKKy8vTk9URTogY3JlYXRlcyB0ZXN0IHN1aXRlcyBmb3IgZWFjaCBhdmFpbGFibGUgdHJlZSBhZGFwdGVyLgorZXhwb3J0cy5nZW5lcmF0ZVRlc3RzRm9yRWFjaFRyZWVBZGFwdGVyID0gZnVuY3Rpb24gKG1vZHVsZUV4cG9ydHMsIGN0b3IpIHsKKyAgICBPYmplY3Qua2V5cyhwYXJzZTUuVHJlZUFkYXB0ZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChhZGFwdGVyTmFtZSkgeworICAgICAgICB2YXIgdGVzdHMgPSB7fSwKKyAgICAgICAgICAgIGFkYXB0ZXIgPSBwYXJzZTUuVHJlZUFkYXB0ZXJzW2FkYXB0ZXJOYW1lXTsKKworICAgICAgICBjdG9yKHRlc3RzLCBhZGFwdGVyKTsKKworICAgICAgICBPYmplY3Qua2V5cyh0ZXN0cykuZm9yRWFjaChmdW5jdGlvbiAodGVzdE5hbWUpIHsKKyAgICAgICAgICAgIG1vZHVsZUV4cG9ydHNbJ1RyZWUgYWRhcHRlcjogJyArIGFkYXB0ZXJOYW1lICsgJyAtICcgKyB0ZXN0TmFtZV0gPSB0ZXN0c1t0ZXN0TmFtZV07CisgICAgICAgIH0pOworICAgIH0pOworfTsKKworZXhwb3J0cy5nZXRTdHJpbmdEaWZmTXNnID0gZnVuY3Rpb24gKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChhY3R1YWxbaV0gIT09IGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICB2YXIgZGlmZk1zZyA9ICdcblN0cmluZyBkaWZmZXIgYXQgaW5kZXggJyArIGkgKyAnXG4nOworCisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRTdHIgPSAnRXhwZWN0ZWQ6ICcgKyBhZGRTbGFzaGVzKGV4cGVjdGVkLnN1YnN0cmluZyhpIC0gMTAwLCBpICsgMSkpLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkRGlmZk1hcmtlciA9IGNyZWF0ZURpZmZNYXJrZXIoZXhwZWN0ZWRTdHIubGVuZ3RoKTsKKworICAgICAgICAgICAgZGlmZk1zZyArPSBleHBlY3RlZFN0ciArIGFkZFNsYXNoZXMoZXhwZWN0ZWQuc3Vic3RyaW5nKGkgKyAxLCBpICsgMjApKSArICdcbicgKyBleHBlY3RlZERpZmZNYXJrZXI7CisKKyAgICAgICAgICAgIHZhciBhY3R1YWxTdHIgPSAnQWN0dWFsOiAgICcgKyBhZGRTbGFzaGVzKGFjdHVhbC5zdWJzdHJpbmcoaSAtIDEwMCwgaSArIDEpKSwKKyAgICAgICAgICAgICAgICBhY3R1YWxEaWZmTWFya2VyID0gY3JlYXRlRGlmZk1hcmtlcihhY3R1YWxTdHIubGVuZ3RoKTsKKworICAgICAgICAgICAgZGlmZk1zZyArPSBhY3R1YWxTdHIgKyBhZGRTbGFzaGVzKGFjdHVhbC5zdWJzdHJpbmcoaSArIDEsIGkgKyAyMCkpICsgJ1xuJyArIGFjdHVhbERpZmZNYXJrZXI7CisKKyAgICAgICAgICAgIHJldHVybiBkaWZmTXNnOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICcnOworfTsKKworZXhwb3J0cy5yZW1vdmVOZXdMaW5lcyA9IGZ1bmN0aW9uIChzdHIpIHsKKyAgICByZXR1cm4gc3RyCisgICAgICAgIC5yZXBsYWNlKC9cci9nLCAnJykKKyAgICAgICAgLnJlcGxhY2UoL1xuL2csICcnKTsKK307CisKK2Z1bmN0aW9uIG5vcm1hbGl6ZU5ld0xpbmUoc3RyKSB7CisgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cclxuL2csICdcbicpOworfQorCitleHBvcnRzLmxvYWRTZXJpYWxpemF0aW9uVGVzdERhdGEgPSBmdW5jdGlvbiAoZGF0YURpclBhdGgpIHsKKyAgICB2YXIgdGVzdFNldEZpbGVEaXJzID0gZnMucmVhZGRpclN5bmMoZGF0YURpclBhdGgpLAorICAgICAgICB0ZXN0cyA9IFtdOworCisgICAgdGVzdFNldEZpbGVEaXJzLmZvckVhY2goZnVuY3Rpb24gKGRpck5hbWUpIHsKKyAgICAgICAgdmFyIHNyY0ZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXJQYXRoLCBkaXJOYW1lLCAnc3JjLmh0bWwnKSwKKyAgICAgICAgICAgIGV4cGVjdGVkRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpclBhdGgsIGRpck5hbWUsICdleHBlY3RlZC5odG1sJyksCisgICAgICAgICAgICBzcmMgPSBmcy5yZWFkRmlsZVN5bmMoc3JjRmlsZVBhdGgpLnRvU3RyaW5nKCksCisgICAgICAgICAgICBleHBlY3RlZCA9IGZzLnJlYWRGaWxlU3luYyhleHBlY3RlZEZpbGVQYXRoKS50b1N0cmluZygpOworCisgICAgICAgIHRlc3RzLnB1c2goeworICAgICAgICAgICAgbmFtZTogZGlyTmFtZSwKKyAgICAgICAgICAgIHNyYzogbm9ybWFsaXplTmV3TGluZShzcmMpLAorICAgICAgICAgICAgZXhwZWN0ZWQ6IG5vcm1hbGl6ZU5ld0xpbmUoZXhwZWN0ZWQpCisgICAgICAgIH0pOworICAgIH0pOworCisgICAgcmV0dXJuIHRlc3RzOworfTsKKworZXhwb3J0cy5sb2FkVHJlZUNvbnN0cnVjdGlvblRlc3REYXRhID0gZnVuY3Rpb24gKGRhdGFEaXJzLCB0cmVlQWRhcHRlcikgeworICAgIHZhciB0ZXN0SWR4ID0gMCwKKyAgICAgICAgdGVzdHMgPSBbXTsKKworICAgIGRhdGFEaXJzLmZvckVhY2goZnVuY3Rpb24gKGRhdGFEaXJQYXRoKSB7CisgICAgICAgIHZhciB0ZXN0U2V0RmlsZU5hbWVzID0gZnMucmVhZGRpclN5bmMoZGF0YURpclBhdGgpLAorICAgICAgICAgICAgZGlyTmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YURpclBhdGgpOworCisgICAgICAgIHRlc3RTZXRGaWxlTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAoZmlsZU5hbWUpIHsKKyAgICAgICAgICAgIHZhciBmaWxlUGF0aCA9IHBhdGguam9pbihkYXRhRGlyUGF0aCwgZmlsZU5hbWUpLAorICAgICAgICAgICAgICAgIHRlc3RTZXQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgc2V0TmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoJy5kYXQnLCAnJyksCisgICAgICAgICAgICAgICAgdGVzdERlc2NycyA9IFtdLAorICAgICAgICAgICAgICAgIGN1ckRpcmVjdGl2ZSA9ICcnLAorICAgICAgICAgICAgICAgIGN1ckRlc2NyID0gbnVsbDsKKworICAgICAgICAgICAgdGVzdFNldC5zcGxpdCgvXHI/XG4vKS5mb3JFYWNoKGZ1bmN0aW9uIChsaW5lKSB7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUgPT09ICcjZGF0YScpIHsKKyAgICAgICAgICAgICAgICAgICAgY3VyRGVzY3IgPSB7fTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdERlc2Nycy5wdXNoKGN1ckRlc2NyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobGluZVswXSA9PT0gJyMnKSB7CisgICAgICAgICAgICAgICAgICAgIGN1ckRpcmVjdGl2ZSA9IGxpbmU7CisgICAgICAgICAgICAgICAgICAgIGN1ckRlc2NyW2N1ckRpcmVjdGl2ZV0gPSBbXTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGN1ckRlc2NyW2N1ckRpcmVjdGl2ZV0ucHVzaChsaW5lKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0ZXN0RGVzY3JzLmZvckVhY2goZnVuY3Rpb24gKGRlc2NyKSB7CisgICAgICAgICAgICAgICAgdmFyIGZyYWdtZW50Q29udGV4dFRhZ05hbWUgPSBkZXNjclsnI2RvY3VtZW50LWZyYWdtZW50J10gJiYgZGVzY3JbJyNkb2N1bWVudC1mcmFnbWVudCddLmpvaW4oJycpOworCisgICAgICAgICAgICAgICAgdGVzdHMucHVzaCh7CisgICAgICAgICAgICAgICAgICAgIGlkeDogKyt0ZXN0SWR4LAorICAgICAgICAgICAgICAgICAgICBzZXROYW1lOiBzZXROYW1lLAorICAgICAgICAgICAgICAgICAgICBkaXJOYW1lOiBkaXJOYW1lLAorICAgICAgICAgICAgICAgICAgICBpbnB1dDogZGVzY3JbJyNkYXRhJ10uam9pbignXHJcbicpLAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogZGVzY3JbJyNkb2N1bWVudCddLmpvaW4oJ1xuJyksCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkRXJyb3JzOiBkZXNjclsnI2Vycm9ycyddLAorICAgICAgICAgICAgICAgICAgICBkaXNhYmxlRW50aXRpZXNEZWNvZGluZzogISFkZXNjclsnI2Rpc2FibGUtaHRtbC1lbnRpdGllcy1kZWNvZGluZyddLAorICAgICAgICAgICAgICAgICAgICBmcmFnbWVudENvbnRleHQ6IGZyYWdtZW50Q29udGV4dFRhZ05hbWUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KGZyYWdtZW50Q29udGV4dFRhZ05hbWUsIEhUTUwuTkFNRVNQQUNFUy5IVE1MLCBbXSkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIHJldHVybiB0ZXN0czsKK307CisKK2V4cG9ydHMuc2VyaWFsaXplVG9UZXN0RGF0YUZvcm1hdCA9IGZ1bmN0aW9uIChyb290Tm9kZSwgdHJlZUFkYXB0ZXIpIHsKKyAgICBmdW5jdGlvbiBnZXRTZXJpYWxpemVkVHJlZUluZGVudChpbmRlbnQpIHsKKyAgICAgICAgdmFyIHN0ciA9ICd8JzsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluZGVudCArIDE7IGkrKykKKyAgICAgICAgICAgIHN0ciArPSAnICc7CisKKyAgICAgICAgcmV0dXJuIHN0cjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRFbGVtZW50U2VyaWFsaXplZE5hbWVzcGFjZVVSSShlbGVtZW50KSB7CisgICAgICAgIHN3aXRjaCAodHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpKSB7CisgICAgICAgICAgICBjYXNlIEhUTUwuTkFNRVNQQUNFUy5TVkc6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzdmcgJzsKKyAgICAgICAgICAgIGNhc2UgSFRNTC5OQU1FU1BBQ0VTLk1BVEhNTDoKKyAgICAgICAgICAgICAgICByZXR1cm4gJ21hdGggJzsKKyAgICAgICAgICAgIGRlZmF1bHQgOgorICAgICAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZU5vZGVMaXN0KG5vZGVzLCBpbmRlbnQpIHsKKyAgICAgICAgdmFyIHN0ciA9ICcnOworCisgICAgICAgIG5vZGVzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgICAgIHN0ciArPSBnZXRTZXJpYWxpemVkVHJlZUluZGVudChpbmRlbnQpOworCisgICAgICAgICAgICBpZiAodHJlZUFkYXB0ZXIuaXNDb21tZW50Tm9kZShub2RlKSkKKyAgICAgICAgICAgICAgICBzdHIgKz0gJzwhLS0gJyArIHRyZWVBZGFwdGVyLmdldENvbW1lbnROb2RlQ29udGVudChub2RlKSArICcgLS0+XG4nOworCisgICAgICAgICAgICBlbHNlIGlmICh0cmVlQWRhcHRlci5pc1RleHROb2RlKG5vZGUpKQorICAgICAgICAgICAgICAgIHN0ciArPSAnIicgKyB0cmVlQWRhcHRlci5nZXRUZXh0Tm9kZUNvbnRlbnQobm9kZSkgKyAnIlxuJzsKKworICAgICAgICAgICAgZWxzZSBpZiAodHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKSB7CisgICAgICAgICAgICAgICAgdmFyIHBhcnRzID0gW10sCisgICAgICAgICAgICAgICAgICAgIHB1YmxpY0lkID0gdHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkKG5vZGUpLAorICAgICAgICAgICAgICAgICAgICBzeXN0ZW1JZCA9IHRyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVTeXN0ZW1JZChub2RlKTsKKworICAgICAgICAgICAgICAgIHN0ciArPSAnPCFET0NUWVBFJzsKKworICAgICAgICAgICAgICAgIHBhcnRzLnB1c2godHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRUeXBlTm9kZU5hbWUobm9kZSkgfHwgJycpOworCisgICAgICAgICAgICAgICAgaWYgKHB1YmxpY0lkICE9PSBudWxsIHx8IHN5c3RlbUlkICE9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goJyInICsgKHB1YmxpY0lkIHx8ICcnKSArICciJyk7CisgICAgICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goJyInICsgKHN5c3RlbUlkIHx8ICcnKSArICciJyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcGFydHMuZm9yRWFjaChmdW5jdGlvbiAocGFydCkgeworICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJyAnICsgcGFydDsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHN0ciArPSAnPlxuJzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyIHRuID0gdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKTsKKworICAgICAgICAgICAgICAgIHN0ciArPSAnPCcgKyBnZXRFbGVtZW50U2VyaWFsaXplZE5hbWVzcGFjZVVSSShub2RlKSArIHRuICsgJz5cbic7CisKKyAgICAgICAgICAgICAgICB2YXIgY2hpbGRyZW5JbmRlbnQgPSBpbmRlbnQgKyAyLAorICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVkQXR0cnMgPSBbXTsKKworICAgICAgICAgICAgICAgIHRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KG5vZGUpLmZvckVhY2goZnVuY3Rpb24gKGF0dHIpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGF0dHJTdHIgPSBnZXRTZXJpYWxpemVkVHJlZUluZGVudChjaGlsZHJlbkluZGVudCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHIucHJlZml4KQorICAgICAgICAgICAgICAgICAgICAgICAgYXR0clN0ciArPSBhdHRyLnByZWZpeCArICcgJzsKKworICAgICAgICAgICAgICAgICAgICBhdHRyU3RyICs9IGF0dHIubmFtZSArICc9IicgKyBhdHRyLnZhbHVlICsgJyJcbic7CisKKyAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplZEF0dHJzLnB1c2goYXR0clN0cik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBzdHIgKz0gc2VyaWFsaXplZEF0dHJzLnNvcnQoKS5qb2luKCcnKTsKKworICAgICAgICAgICAgICAgIGlmICh0biA9PT0gSFRNTC5UQUdfTkFNRVMuVEVNUExBVEUgJiYgdHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5vZGUpID09PSBIVE1MLk5BTUVTUEFDRVMuSFRNTCkgeworICAgICAgICAgICAgICAgICAgICBzdHIgKz0gZ2V0U2VyaWFsaXplZFRyZWVJbmRlbnQoY2hpbGRyZW5JbmRlbnQpICsgJ2NvbnRlbnRcbic7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuSW5kZW50ICs9IDI7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSB0cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKG5vZGUpWzBdOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN0ciArPSBzZXJpYWxpemVOb2RlTGlzdCh0cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKG5vZGUpLCBjaGlsZHJlbkluZGVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiBzdHI7CisgICAgfQorCisgICAgcmV0dXJuIHNlcmlhbGl6ZU5vZGVMaXN0KHRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocm9vdE5vZGUpLCAwKTsKK307CisKK2V4cG9ydHMucHJldHR5UHJpbnRQYXJzZXJBc3NlcnRpb25BcmdzID0gZnVuY3Rpb24gKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgbXNnID0gJ1xuRXhwZWN0ZWQ6XG4nOworICAgIG1zZyArPSAnLS0tLS0tLS0tLS0tLS0tLS1cbic7CisgICAgbXNnICs9IGV4cGVjdGVkICsgJ1xuJzsKKyAgICBtc2cgKz0gJ1xuQWN0dWFsOlxuJzsKKyAgICBtc2cgKz0gJy0tLS0tLS0tLS0tLS0tLS0tXG4nOworICAgIG1zZyArPSBhY3R1YWwgKyAnXG4nOworCisgICAgcmV0dXJuIG1zZzsKK307CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90b29scy9lbnRpdGllcy5qc29uIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdG9vbHMvZW50aXRpZXMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTFmNTkwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdG9vbHMvZW50aXRpZXMuanNvbgpAQCAtMCwwICsxLDIyMzMgQEAKK3sKKyAgIiZBYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFsxOTNdLCAiY2hhcmFjdGVycyI6ICJcdTAwQzEiIH0sCisgICImQWFjdXRlIjogeyAiY29kZXBvaW50cyI6IFsxOTNdLCAiY2hhcmFjdGVycyI6ICJcdTAwQzEiIH0sCisgICImYWFjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjI1XSwgImNoYXJhY3RlcnMiOiAiXHUwMEUxIiB9LAorICAiJmFhY3V0ZSI6IHsgImNvZGVwb2ludHMiOiBbMjI1XSwgImNoYXJhY3RlcnMiOiAiXHUwMEUxIiB9LAorICAiJkFicmV2ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzI1OF0sICJjaGFyYWN0ZXJzIjogIlx1MDEwMiIgfSwKKyAgIiZhYnJldmU7IjogeyAiY29kZXBvaW50cyI6IFsyNTldLCAiY2hhcmFjdGVycyI6ICJcdTAxMDMiIH0sCisgICImYWM7IjogeyAiY29kZXBvaW50cyI6IFs4NzY2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjNFIiB9LAorICAiJmFjZDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjddLCAiY2hhcmFjdGVycyI6ICJcdTIyM0YiIH0sCisgICImYWNFOyI6IHsgImNvZGVwb2ludHMiOiBbODc2NiwgODE5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjNFXHUwMzMzIiB9LAorICAiJkFjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMTk0XSwgImNoYXJhY3RlcnMiOiAiXHUwMEMyIiB9LAorICAiJkFjaXJjIjogeyAiY29kZXBvaW50cyI6IFsxOTRdLCAiY2hhcmFjdGVycyI6ICJcdTAwQzIiIH0sCisgICImYWNpcmM7IjogeyAiY29kZXBvaW50cyI6IFsyMjZdLCAiY2hhcmFjdGVycyI6ICJcdTAwRTIiIH0sCisgICImYWNpcmMiOiB7ICJjb2RlcG9pbnRzIjogWzIyNl0sICJjaGFyYWN0ZXJzIjogIlx1MDBFMiIgfSwKKyAgIiZhY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzE4MF0sICJjaGFyYWN0ZXJzIjogIlx1MDBCNCIgfSwKKyAgIiZhY3V0ZSI6IHsgImNvZGVwb2ludHMiOiBbMTgwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEI0IiB9LAorICAiJkFjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNDBdLCAiY2hhcmFjdGVycyI6ICJcdTA0MTAiIH0sCisgICImYWN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDQzMCIgfSwKKyAgIiZBRWxpZzsiOiB7ICJjb2RlcG9pbnRzIjogWzE5OF0sICJjaGFyYWN0ZXJzIjogIlx1MDBDNiIgfSwKKyAgIiZBRWxpZyI6IHsgImNvZGVwb2ludHMiOiBbMTk4XSwgImNoYXJhY3RlcnMiOiAiXHUwMEM2IiB9LAorICAiJmFlbGlnOyI6IHsgImNvZGVwb2ludHMiOiBbMjMwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEU2IiB9LAorICAiJmFlbGlnIjogeyAiY29kZXBvaW50cyI6IFsyMzBdLCAiY2hhcmFjdGVycyI6ICJcdTAwRTYiIH0sCisgICImYWY7IjogeyAiY29kZXBvaW50cyI6IFs4Mjg5XSwgImNoYXJhY3RlcnMiOiAiXHUyMDYxIiB9LAorICAiJkFmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA2OF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQwNCIgfSwKKyAgIiZhZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwOTRdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMUUiIH0sCisgICImQWdyYXZlOyI6IHsgImNvZGVwb2ludHMiOiBbMTkyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEMwIiB9LAorICAiJkFncmF2ZSI6IHsgImNvZGVwb2ludHMiOiBbMTkyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEMwIiB9LAorICAiJmFncmF2ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzIyNF0sICJjaGFyYWN0ZXJzIjogIlx1MDBFMCIgfSwKKyAgIiZhZ3JhdmUiOiB7ICJjb2RlcG9pbnRzIjogWzIyNF0sICJjaGFyYWN0ZXJzIjogIlx1MDBFMCIgfSwKKyAgIiZhbGVmc3ltOyI6IHsgImNvZGVwb2ludHMiOiBbODUwMV0sICJjaGFyYWN0ZXJzIjogIlx1MjEzNSIgfSwKKyAgIiZhbGVwaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MDFdLCAiY2hhcmFjdGVycyI6ICJcdTIxMzUiIH0sCisgICImQWxwaGE7IjogeyAiY29kZXBvaW50cyI6IFs5MTNdLCAiY2hhcmFjdGVycyI6ICJcdTAzOTEiIH0sCisgICImYWxwaGE7IjogeyAiY29kZXBvaW50cyI6IFs5NDVdLCAiY2hhcmFjdGVycyI6ICJcdTAzQjEiIH0sCisgICImQW1hY3I7IjogeyAiY29kZXBvaW50cyI6IFsyNTZdLCAiY2hhcmFjdGVycyI6ICJcdTAxMDAiIH0sCisgICImYW1hY3I7IjogeyAiY29kZXBvaW50cyI6IFsyNTddLCAiY2hhcmFjdGVycyI6ICJcdTAxMDEiIH0sCisgICImYW1hbGc7IjogeyAiY29kZXBvaW50cyI6IFsxMDgxNV0sICJjaGFyYWN0ZXJzIjogIlx1MkEzRiIgfSwKKyAgIiZhbXA7IjogeyAiY29kZXBvaW50cyI6IFszOF0sICJjaGFyYWN0ZXJzIjogIlx1MDAyNiIgfSwKKyAgIiZhbXAiOiB7ICJjb2RlcG9pbnRzIjogWzM4XSwgImNoYXJhY3RlcnMiOiAiXHUwMDI2IiB9LAorICAiJkFNUDsiOiB7ICJjb2RlcG9pbnRzIjogWzM4XSwgImNoYXJhY3RlcnMiOiAiXHUwMDI2IiB9LAorICAiJkFNUCI6IHsgImNvZGVwb2ludHMiOiBbMzhdLCAiY2hhcmFjdGVycyI6ICJcdTAwMjYiIH0sCisgICImYW5kYW5kOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MzddLCAiY2hhcmFjdGVycyI6ICJcdTJBNTUiIH0sCisgICImQW5kOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MzVdLCAiY2hhcmFjdGVycyI6ICJcdTJBNTMiIH0sCisgICImYW5kOyI6IHsgImNvZGVwb2ludHMiOiBbODc0M10sICJjaGFyYWN0ZXJzIjogIlx1MjIyNyIgfSwKKyAgIiZhbmRkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NDRdLCAiY2hhcmFjdGVycyI6ICJcdTJBNUMiIH0sCisgICImYW5kc2xvcGU7IjogeyAiY29kZXBvaW50cyI6IFsxMDg0MF0sICJjaGFyYWN0ZXJzIjogIlx1MkE1OCIgfSwKKyAgIiZhbmR2OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NDJdLCAiY2hhcmFjdGVycyI6ICJcdTJBNUEiIH0sCisgICImYW5nOyI6IHsgImNvZGVwb2ludHMiOiBbODczNl0sICJjaGFyYWN0ZXJzIjogIlx1MjIyMCIgfSwKKyAgIiZhbmdlOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NjBdLCAiY2hhcmFjdGVycyI6ICJcdTI5QTQiIH0sCisgICImYW5nbGU7IjogeyAiY29kZXBvaW50cyI6IFs4NzM2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjIwIiB9LAorICAiJmFuZ21zZGFhOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NjRdLCAiY2hhcmFjdGVycyI6ICJcdTI5QTgiIH0sCisgICImYW5nbXNkYWI7IjogeyAiY29kZXBvaW50cyI6IFsxMDY2NV0sICJjaGFyYWN0ZXJzIjogIlx1MjlBOSIgfSwKKyAgIiZhbmdtc2RhYzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjY2XSwgImNoYXJhY3RlcnMiOiAiXHUyOUFBIiB9LAorICAiJmFuZ21zZGFkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NjddLCAiY2hhcmFjdGVycyI6ICJcdTI5QUIiIH0sCisgICImYW5nbXNkYWU7IjogeyAiY29kZXBvaW50cyI6IFsxMDY2OF0sICJjaGFyYWN0ZXJzIjogIlx1MjlBQyIgfSwKKyAgIiZhbmdtc2RhZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjY5XSwgImNoYXJhY3RlcnMiOiAiXHUyOUFEIiB9LAorICAiJmFuZ21zZGFnOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NzBdLCAiY2hhcmFjdGVycyI6ICJcdTI5QUUiIH0sCisgICImYW5nbXNkYWg7IjogeyAiY29kZXBvaW50cyI6IFsxMDY3MV0sICJjaGFyYWN0ZXJzIjogIlx1MjlBRiIgfSwKKyAgIiZhbmdtc2Q7IjogeyAiY29kZXBvaW50cyI6IFs4NzM3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjIxIiB9LAorICAiJmFuZ3J0OyI6IHsgImNvZGVwb2ludHMiOiBbODczNV0sICJjaGFyYWN0ZXJzIjogIlx1MjIxRiIgfSwKKyAgIiZhbmdydHZiOyI6IHsgImNvZGVwb2ludHMiOiBbODg5NF0sICJjaGFyYWN0ZXJzIjogIlx1MjJCRSIgfSwKKyAgIiZhbmdydHZiZDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjUzXSwgImNoYXJhY3RlcnMiOiAiXHUyOTlEIiB9LAorICAiJmFuZ3NwaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MzhdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjIiIH0sCisgICImYW5nc3Q7IjogeyAiY29kZXBvaW50cyI6IFsxOTddLCAiY2hhcmFjdGVycyI6ICJcdTAwQzUiIH0sCisgICImYW5nemFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzkwODRdLCAiY2hhcmFjdGVycyI6ICJcdTIzN0MiIH0sCisgICImQW9nb247IjogeyAiY29kZXBvaW50cyI6IFsyNjBdLCAiY2hhcmFjdGVycyI6ICJcdTAxMDQiIH0sCisgICImYW9nb247IjogeyAiY29kZXBvaW50cyI6IFsyNjFdLCAiY2hhcmFjdGVycyI6ICJcdTAxMDUiIH0sCisgICImQW9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDEyMF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQzOCIgfSwKKyAgIiZhb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTQ2XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDUyIiB9LAorICAiJmFwYWNpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODYzXSwgImNoYXJhY3RlcnMiOiAiXHUyQTZGIiB9LAorICAiJmFwOyI6IHsgImNvZGVwb2ludHMiOiBbODc3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjI0OCIgfSwKKyAgIiZhcEU7IjogeyAiY29kZXBvaW50cyI6IFsxMDg2NF0sICJjaGFyYWN0ZXJzIjogIlx1MkE3MCIgfSwKKyAgIiZhcGU7IjogeyAiY29kZXBvaW50cyI6IFs4Nzc4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjRBIiB9LAorICAiJmFwaWQ7IjogeyAiY29kZXBvaW50cyI6IFs4Nzc5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjRCIiB9LAorICAiJmFwb3M7IjogeyAiY29kZXBvaW50cyI6IFszOV0sICJjaGFyYWN0ZXJzIjogIlx1MDAyNyIgfSwKKyAgIiZBcHBseUZ1bmN0aW9uOyI6IHsgImNvZGVwb2ludHMiOiBbODI4OV0sICJjaGFyYWN0ZXJzIjogIlx1MjA2MSIgfSwKKyAgIiZhcHByb3g7IjogeyAiY29kZXBvaW50cyI6IFs4Nzc2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjQ4IiB9LAorICAiJmFwcHJveGVxOyI6IHsgImNvZGVwb2ludHMiOiBbODc3OF0sICJjaGFyYWN0ZXJzIjogIlx1MjI0QSIgfSwKKyAgIiZBcmluZzsiOiB7ICJjb2RlcG9pbnRzIjogWzE5N10sICJjaGFyYWN0ZXJzIjogIlx1MDBDNSIgfSwKKyAgIiZBcmluZyI6IHsgImNvZGVwb2ludHMiOiBbMTk3XSwgImNoYXJhY3RlcnMiOiAiXHUwMEM1IiB9LAorICAiJmFyaW5nOyI6IHsgImNvZGVwb2ludHMiOiBbMjI5XSwgImNoYXJhY3RlcnMiOiAiXHUwMEU1IiB9LAorICAiJmFyaW5nIjogeyAiY29kZXBvaW50cyI6IFsyMjldLCAiY2hhcmFjdGVycyI6ICJcdTAwRTUiIH0sCisgICImQXNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk2NF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REM5QyIgfSwKKyAgIiZhc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTkwXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0I2IiB9LAorICAiJkFzc2lnbjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODhdLCAiY2hhcmFjdGVycyI6ICJcdTIyNTQiIH0sCisgICImYXN0OyI6IHsgImNvZGVwb2ludHMiOiBbNDJdLCAiY2hhcmFjdGVycyI6ICJcdTAwMkEiIH0sCisgICImYXN5bXA7IjogeyAiY29kZXBvaW50cyI6IFs4Nzc2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjQ4IiB9LAorICAiJmFzeW1wZXE7IjogeyAiY29kZXBvaW50cyI6IFs4NzgxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjREIiB9LAorICAiJkF0aWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzE5NV0sICJjaGFyYWN0ZXJzIjogIlx1MDBDMyIgfSwKKyAgIiZBdGlsZGUiOiB7ICJjb2RlcG9pbnRzIjogWzE5NV0sICJjaGFyYWN0ZXJzIjogIlx1MDBDMyIgfSwKKyAgIiZhdGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFsyMjddLCAiY2hhcmFjdGVycyI6ICJcdTAwRTMiIH0sCisgICImYXRpbGRlIjogeyAiY29kZXBvaW50cyI6IFsyMjddLCAiY2hhcmFjdGVycyI6ICJcdTAwRTMiIH0sCisgICImQXVtbDsiOiB7ICJjb2RlcG9pbnRzIjogWzE5Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDBDNCIgfSwKKyAgIiZBdW1sIjogeyAiY29kZXBvaW50cyI6IFsxOTZdLCAiY2hhcmFjdGVycyI6ICJcdTAwQzQiIH0sCisgICImYXVtbDsiOiB7ICJjb2RlcG9pbnRzIjogWzIyOF0sICJjaGFyYWN0ZXJzIjogIlx1MDBFNCIgfSwKKyAgIiZhdW1sIjogeyAiY29kZXBvaW50cyI6IFsyMjhdLCAiY2hhcmFjdGVycyI6ICJcdTAwRTQiIH0sCisgICImYXdjb25pbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzU1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjMzIiB9LAorICAiJmF3aW50OyI6IHsgImNvZGVwb2ludHMiOiBbMTA3NjldLCAiY2hhcmFjdGVycyI6ICJcdTJBMTEiIH0sCisgICImYmFja2Nvbmc7IjogeyAiY29kZXBvaW50cyI6IFs4NzgwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjRDIiB9LAorICAiJmJhY2tlcHNpbG9uOyI6IHsgImNvZGVwb2ludHMiOiBbMTAxNF0sICJjaGFyYWN0ZXJzIjogIlx1MDNGNiIgfSwKKyAgIiZiYWNrcHJpbWU7IjogeyAiY29kZXBvaW50cyI6IFs4MjQ1XSwgImNoYXJhY3RlcnMiOiAiXHUyMDM1IiB9LAorICAiJmJhY2tzaW07IjogeyAiY29kZXBvaW50cyI6IFs4NzY1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjNEIiB9LAorICAiJmJhY2tzaW1lcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MDldLCAiY2hhcmFjdGVycyI6ICJcdTIyQ0QiIH0sCisgICImQmFja3NsYXNoOyI6IHsgImNvZGVwb2ludHMiOiBbODcyNl0sICJjaGFyYWN0ZXJzIjogIlx1MjIxNiIgfSwKKyAgIiZCYXJ2OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5ODNdLCAiY2hhcmFjdGVycyI6ICJcdTJBRTciIH0sCisgICImYmFydmVlOyI6IHsgImNvZGVwb2ludHMiOiBbODg5M10sICJjaGFyYWN0ZXJzIjogIlx1MjJCRCIgfSwKKyAgIiZiYXJ3ZWQ7IjogeyAiY29kZXBvaW50cyI6IFs4OTY1XSwgImNoYXJhY3RlcnMiOiAiXHUyMzA1IiB9LAorICAiJkJhcndlZDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NjZdLCAiY2hhcmFjdGVycyI6ICJcdTIzMDYiIH0sCisgICImYmFyd2VkZ2U7IjogeyAiY29kZXBvaW50cyI6IFs4OTY1XSwgImNoYXJhY3RlcnMiOiAiXHUyMzA1IiB9LAorICAiJmJicms7IjogeyAiY29kZXBvaW50cyI6IFs5MTQxXSwgImNoYXJhY3RlcnMiOiAiXHUyM0I1IiB9LAorICAiJmJicmt0YnJrOyI6IHsgImNvZGVwb2ludHMiOiBbOTE0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjNCNiIgfSwKKyAgIiZiY29uZzsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODBdLCAiY2hhcmFjdGVycyI6ICJcdTIyNEMiIH0sCisgICImQmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA0MV0sICJjaGFyYWN0ZXJzIjogIlx1MDQxMSIgfSwKKyAgIiZiY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDczXSwgImNoYXJhY3RlcnMiOiAiXHUwNDMxIiB9LAorICAiJmJkcXVvOyI6IHsgImNvZGVwb2ludHMiOiBbODIyMl0sICJjaGFyYWN0ZXJzIjogIlx1MjAxRSIgfSwKKyAgIiZiZWNhdXM7IjogeyAiY29kZXBvaW50cyI6IFs4NzU3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjM1IiB9LAorICAiJmJlY2F1c2U7IjogeyAiY29kZXBvaW50cyI6IFs4NzU3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjM1IiB9LAorICAiJkJlY2F1c2U7IjogeyAiY29kZXBvaW50cyI6IFs4NzU3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjM1IiB9LAorICAiJmJlbXB0eXY7IjogeyAiY29kZXBvaW50cyI6IFsxMDY3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjlCMCIgfSwKKyAgIiZiZXBzaTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMTRdLCAiY2hhcmFjdGVycyI6ICJcdTAzRjYiIH0sCisgICImYmVybm91OyI6IHsgImNvZGVwb2ludHMiOiBbODQ5Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjEyQyIgfSwKKyAgIiZCZXJub3VsbGlzOyI6IHsgImNvZGVwb2ludHMiOiBbODQ5Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjEyQyIgfSwKKyAgIiZCZXRhOyI6IHsgImNvZGVwb2ludHMiOiBbOTE0XSwgImNoYXJhY3RlcnMiOiAiXHUwMzkyIiB9LAorICAiJmJldGE7IjogeyAiY29kZXBvaW50cyI6IFs5NDZdLCAiY2hhcmFjdGVycyI6ICJcdTAzQjIiIH0sCisgICImYmV0aDsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIxMzYiIH0sCisgICImYmV0d2VlbjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTJdLCAiY2hhcmFjdGVycyI6ICJcdTIyNkMiIH0sCisgICImQmZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDY5XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDA1IiB9LAorICAiJmJmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA5NV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQxRiIgfSwKKyAgIiZiaWdjYXA7IjogeyAiY29kZXBvaW50cyI6IFs4ODk4XSwgImNoYXJhY3RlcnMiOiAiXHUyMkMyIiB9LAorICAiJmJpZ2NpcmM7IjogeyAiY29kZXBvaW50cyI6IFs5NzExXSwgImNoYXJhY3RlcnMiOiAiXHUyNUVGIiB9LAorICAiJmJpZ2N1cDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4OTldLCAiY2hhcmFjdGVycyI6ICJcdTIyQzMiIH0sCisgICImYmlnb2RvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzUyXSwgImNoYXJhY3RlcnMiOiAiXHUyQTAwIiB9LAorICAiJmJpZ29wbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3NTNdLCAiY2hhcmFjdGVycyI6ICJcdTJBMDEiIH0sCisgICImYmlnb3RpbWVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3NTRdLCAiY2hhcmFjdGVycyI6ICJcdTJBMDIiIH0sCisgICImYmlnc3FjdXA7IjogeyAiY29kZXBvaW50cyI6IFsxMDc1OF0sICJjaGFyYWN0ZXJzIjogIlx1MkEwNiIgfSwKKyAgIiZiaWdzdGFyOyI6IHsgImNvZGVwb2ludHMiOiBbOTczM10sICJjaGFyYWN0ZXJzIjogIlx1MjYwNSIgfSwKKyAgIiZiaWd0cmlhbmdsZWRvd247IjogeyAiY29kZXBvaW50cyI6IFs5NjYxXSwgImNoYXJhY3RlcnMiOiAiXHUyNUJEIiB9LAorICAiJmJpZ3RyaWFuZ2xldXA7IjogeyAiY29kZXBvaW50cyI6IFs5NjUxXSwgImNoYXJhY3RlcnMiOiAiXHUyNUIzIiB9LAorICAiJmJpZ3VwbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3NTZdLCAiY2hhcmFjdGVycyI6ICJcdTJBMDQiIH0sCisgICImYmlndmVlOyI6IHsgImNvZGVwb2ludHMiOiBbODg5N10sICJjaGFyYWN0ZXJzIjogIlx1MjJDMSIgfSwKKyAgIiZiaWd3ZWRnZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4OTZdLCAiY2hhcmFjdGVycyI6ICJcdTIyQzAiIH0sCisgICImYmthcm93OyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MDldLCAiY2hhcmFjdGVycyI6ICJcdTI5MEQiIH0sCisgICImYmxhY2tsb3plbmdlOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3MzFdLCAiY2hhcmFjdGVycyI6ICJcdTI5RUIiIH0sCisgICImYmxhY2tzcXVhcmU7IjogeyAiY29kZXBvaW50cyI6IFs5NjQyXSwgImNoYXJhY3RlcnMiOiAiXHUyNUFBIiB9LAorICAiJmJsYWNrdHJpYW5nbGU7IjogeyAiY29kZXBvaW50cyI6IFs5NjUyXSwgImNoYXJhY3RlcnMiOiAiXHUyNUI0IiB9LAorICAiJmJsYWNrdHJpYW5nbGVkb3duOyI6IHsgImNvZGVwb2ludHMiOiBbOTY2Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjVCRSIgfSwKKyAgIiZibGFja3RyaWFuZ2xlbGVmdDsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NjZdLCAiY2hhcmFjdGVycyI6ICJcdTI1QzIiIH0sCisgICImYmxhY2t0cmlhbmdsZXJpZ2h0OyI6IHsgImNvZGVwb2ludHMiOiBbOTY1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjVCOCIgfSwKKyAgIiZibGFuazsiOiB7ICJjb2RlcG9pbnRzIjogWzkyNTFdLCAiY2hhcmFjdGVycyI6ICJcdTI0MjMiIH0sCisgICImYmxrMTI7IjogeyAiY29kZXBvaW50cyI6IFs5NjE4XSwgImNoYXJhY3RlcnMiOiAiXHUyNTkyIiB9LAorICAiJmJsazE0OyI6IHsgImNvZGVwb2ludHMiOiBbOTYxN10sICJjaGFyYWN0ZXJzIjogIlx1MjU5MSIgfSwKKyAgIiZibGszNDsiOiB7ICJjb2RlcG9pbnRzIjogWzk2MTldLCAiY2hhcmFjdGVycyI6ICJcdTI1OTMiIH0sCisgICImYmxvY2s7IjogeyAiY29kZXBvaW50cyI6IFs5NjA4XSwgImNoYXJhY3RlcnMiOiAiXHUyNTg4IiB9LAorICAiJmJuZTsiOiB7ICJjb2RlcG9pbnRzIjogWzYxLCA4NDIxXSwgImNoYXJhY3RlcnMiOiAiXHUwMDNEXHUyMEU1IiB9LAorICAiJmJuZXF1aXY7IjogeyAiY29kZXBvaW50cyI6IFs4ODAxLCA4NDIxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjYxXHUyMEU1IiB9LAorICAiJmJOb3Q7IjogeyAiY29kZXBvaW50cyI6IFsxMDk4OV0sICJjaGFyYWN0ZXJzIjogIlx1MkFFRCIgfSwKKyAgIiZibm90OyI6IHsgImNvZGVwb2ludHMiOiBbODk3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjMxMCIgfSwKKyAgIiZCb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTIxXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDM5IiB9LAorICAiJmJvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNDddLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENTMiIH0sCisgICImYm90OyI6IHsgImNvZGVwb2ludHMiOiBbODg2OV0sICJjaGFyYWN0ZXJzIjogIlx1MjJBNSIgfSwKKyAgIiZib3R0b207IjogeyAiY29kZXBvaW50cyI6IFs4ODY5XSwgImNoYXJhY3RlcnMiOiAiXHUyMkE1IiB9LAorICAiJmJvd3RpZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MDRdLCAiY2hhcmFjdGVycyI6ICJcdTIyQzgiIH0sCisgICImYm94Ym94OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2OTddLCAiY2hhcmFjdGVycyI6ICJcdTI5QzkiIH0sCisgICImYm94ZGw7IjogeyAiY29kZXBvaW50cyI6IFs5NDg4XSwgImNoYXJhY3RlcnMiOiAiXHUyNTEwIiB9LAorICAiJmJveGRMOyI6IHsgImNvZGVwb2ludHMiOiBbOTU1N10sICJjaGFyYWN0ZXJzIjogIlx1MjU1NSIgfSwKKyAgIiZib3hEbDsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NThdLCAiY2hhcmFjdGVycyI6ICJcdTI1NTYiIH0sCisgICImYm94REw7IjogeyAiY29kZXBvaW50cyI6IFs5NTU5XSwgImNoYXJhY3RlcnMiOiAiXHUyNTU3IiB9LAorICAiJmJveGRyOyI6IHsgImNvZGVwb2ludHMiOiBbOTQ4NF0sICJjaGFyYWN0ZXJzIjogIlx1MjUwQyIgfSwKKyAgIiZib3hkUjsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NTRdLCAiY2hhcmFjdGVycyI6ICJcdTI1NTIiIH0sCisgICImYm94RHI7IjogeyAiY29kZXBvaW50cyI6IFs5NTU1XSwgImNoYXJhY3RlcnMiOiAiXHUyNTUzIiB9LAorICAiJmJveERSOyI6IHsgImNvZGVwb2ludHMiOiBbOTU1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjU1NCIgfSwKKyAgIiZib3hoOyI6IHsgImNvZGVwb2ludHMiOiBbOTQ3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjUwMCIgfSwKKyAgIiZib3hIOyI6IHsgImNvZGVwb2ludHMiOiBbOTU1Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjU1MCIgfSwKKyAgIiZib3hoZDsiOiB7ICJjb2RlcG9pbnRzIjogWzk1MTZdLCAiY2hhcmFjdGVycyI6ICJcdTI1MkMiIH0sCisgICImYm94SGQ7IjogeyAiY29kZXBvaW50cyI6IFs5NTcyXSwgImNoYXJhY3RlcnMiOiAiXHUyNTY0IiB9LAorICAiJmJveGhEOyI6IHsgImNvZGVwb2ludHMiOiBbOTU3M10sICJjaGFyYWN0ZXJzIjogIlx1MjU2NSIgfSwKKyAgIiZib3hIRDsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NzRdLCAiY2hhcmFjdGVycyI6ICJcdTI1NjYiIH0sCisgICImYm94aHU7IjogeyAiY29kZXBvaW50cyI6IFs5NTI0XSwgImNoYXJhY3RlcnMiOiAiXHUyNTM0IiB9LAorICAiJmJveEh1OyI6IHsgImNvZGVwb2ludHMiOiBbOTU3NV0sICJjaGFyYWN0ZXJzIjogIlx1MjU2NyIgfSwKKyAgIiZib3hoVTsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NzZdLCAiY2hhcmFjdGVycyI6ICJcdTI1NjgiIH0sCisgICImYm94SFU7IjogeyAiY29kZXBvaW50cyI6IFs5NTc3XSwgImNoYXJhY3RlcnMiOiAiXHUyNTY5IiB9LAorICAiJmJveG1pbnVzOyI6IHsgImNvZGVwb2ludHMiOiBbODg2M10sICJjaGFyYWN0ZXJzIjogIlx1MjI5RiIgfSwKKyAgIiZib3hwbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbODg2Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjI5RSIgfSwKKyAgIiZib3h0aW1lczsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyQTAiIH0sCisgICImYm94dWw7IjogeyAiY29kZXBvaW50cyI6IFs5NDk2XSwgImNoYXJhY3RlcnMiOiAiXHUyNTE4IiB9LAorICAiJmJveHVMOyI6IHsgImNvZGVwb2ludHMiOiBbOTU2M10sICJjaGFyYWN0ZXJzIjogIlx1MjU1QiIgfSwKKyAgIiZib3hVbDsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NjRdLCAiY2hhcmFjdGVycyI6ICJcdTI1NUMiIH0sCisgICImYm94VUw7IjogeyAiY29kZXBvaW50cyI6IFs5NTY1XSwgImNoYXJhY3RlcnMiOiAiXHUyNTVEIiB9LAorICAiJmJveHVyOyI6IHsgImNvZGVwb2ludHMiOiBbOTQ5Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjUxNCIgfSwKKyAgIiZib3h1UjsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NjBdLCAiY2hhcmFjdGVycyI6ICJcdTI1NTgiIH0sCisgICImYm94VXI7IjogeyAiY29kZXBvaW50cyI6IFs5NTYxXSwgImNoYXJhY3RlcnMiOiAiXHUyNTU5IiB9LAorICAiJmJveFVSOyI6IHsgImNvZGVwb2ludHMiOiBbOTU2Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjU1QSIgfSwKKyAgIiZib3h2OyI6IHsgImNvZGVwb2ludHMiOiBbOTQ3NF0sICJjaGFyYWN0ZXJzIjogIlx1MjUwMiIgfSwKKyAgIiZib3hWOyI6IHsgImNvZGVwb2ludHMiOiBbOTU1M10sICJjaGFyYWN0ZXJzIjogIlx1MjU1MSIgfSwKKyAgIiZib3h2aDsiOiB7ICJjb2RlcG9pbnRzIjogWzk1MzJdLCAiY2hhcmFjdGVycyI6ICJcdTI1M0MiIH0sCisgICImYm94dkg7IjogeyAiY29kZXBvaW50cyI6IFs5NTc4XSwgImNoYXJhY3RlcnMiOiAiXHUyNTZBIiB9LAorICAiJmJveFZoOyI6IHsgImNvZGVwb2ludHMiOiBbOTU3OV0sICJjaGFyYWN0ZXJzIjogIlx1MjU2QiIgfSwKKyAgIiZib3hWSDsiOiB7ICJjb2RlcG9pbnRzIjogWzk1ODBdLCAiY2hhcmFjdGVycyI6ICJcdTI1NkMiIH0sCisgICImYm94dmw7IjogeyAiY29kZXBvaW50cyI6IFs5NTA4XSwgImNoYXJhY3RlcnMiOiAiXHUyNTI0IiB9LAorICAiJmJveHZMOyI6IHsgImNvZGVwb2ludHMiOiBbOTU2OV0sICJjaGFyYWN0ZXJzIjogIlx1MjU2MSIgfSwKKyAgIiZib3hWbDsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NzBdLCAiY2hhcmFjdGVycyI6ICJcdTI1NjIiIH0sCisgICImYm94Vkw7IjogeyAiY29kZXBvaW50cyI6IFs5NTcxXSwgImNoYXJhY3RlcnMiOiAiXHUyNTYzIiB9LAorICAiJmJveHZyOyI6IHsgImNvZGVwb2ludHMiOiBbOTUwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjUxQyIgfSwKKyAgIiZib3h2UjsiOiB7ICJjb2RlcG9pbnRzIjogWzk1NjZdLCAiY2hhcmFjdGVycyI6ICJcdTI1NUUiIH0sCisgICImYm94VnI7IjogeyAiY29kZXBvaW50cyI6IFs5NTY3XSwgImNoYXJhY3RlcnMiOiAiXHUyNTVGIiB9LAorICAiJmJveFZSOyI6IHsgImNvZGVwb2ludHMiOiBbOTU2OF0sICJjaGFyYWN0ZXJzIjogIlx1MjU2MCIgfSwKKyAgIiZicHJpbWU7IjogeyAiY29kZXBvaW50cyI6IFs4MjQ1XSwgImNoYXJhY3RlcnMiOiAiXHUyMDM1IiB9LAorICAiJmJyZXZlOyI6IHsgImNvZGVwb2ludHMiOiBbNzI4XSwgImNoYXJhY3RlcnMiOiAiXHUwMkQ4IiB9LAorICAiJkJyZXZlOyI6IHsgImNvZGVwb2ludHMiOiBbNzI4XSwgImNoYXJhY3RlcnMiOiAiXHUwMkQ4IiB9LAorICAiJmJydmJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzE2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDBBNiIgfSwKKyAgIiZicnZiYXIiOiB7ICJjb2RlcG9pbnRzIjogWzE2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDBBNiIgfSwKKyAgIiZic2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTkxXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0I3IiB9LAorICAiJkJzY3I7IjogeyAiY29kZXBvaW50cyI6IFs4NDkyXSwgImNoYXJhY3RlcnMiOiAiXHUyMTJDIiB9LAorICAiJmJzZW1pOyI6IHsgImNvZGVwb2ludHMiOiBbODI3MV0sICJjaGFyYWN0ZXJzIjogIlx1MjA0RiIgfSwKKyAgIiZic2ltOyI6IHsgImNvZGVwb2ludHMiOiBbODc2NV0sICJjaGFyYWN0ZXJzIjogIlx1MjIzRCIgfSwKKyAgIiZic2ltZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MDldLCAiY2hhcmFjdGVycyI6ICJcdTIyQ0QiIH0sCisgICImYnNvbGI7IjogeyAiY29kZXBvaW50cyI6IFsxMDY5M10sICJjaGFyYWN0ZXJzIjogIlx1MjlDNSIgfSwKKyAgIiZic29sOyI6IHsgImNvZGVwb2ludHMiOiBbOTJdLCAiY2hhcmFjdGVycyI6ICJcdTAwNUMiIH0sCisgICImYnNvbGhzdWI7IjogeyAiY29kZXBvaW50cyI6IFsxMDE4NF0sICJjaGFyYWN0ZXJzIjogIlx1MjdDOCIgfSwKKyAgIiZidWxsOyI6IHsgImNvZGVwb2ludHMiOiBbODIyNl0sICJjaGFyYWN0ZXJzIjogIlx1MjAyMiIgfSwKKyAgIiZidWxsZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4MjI2XSwgImNoYXJhY3RlcnMiOiAiXHUyMDIyIiB9LAorICAiJmJ1bXA7IjogeyAiY29kZXBvaW50cyI6IFs4NzgyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjRFIiB9LAorICAiJmJ1bXBFOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MjZdLCAiY2hhcmFjdGVycyI6ICJcdTJBQUUiIH0sCisgICImYnVtcGU7IjogeyAiY29kZXBvaW50cyI6IFs4NzgzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjRGIiB9LAorICAiJkJ1bXBlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODJdLCAiY2hhcmFjdGVycyI6ICJcdTIyNEUiIH0sCisgICImYnVtcGVxOyI6IHsgImNvZGVwb2ludHMiOiBbODc4M10sICJjaGFyYWN0ZXJzIjogIlx1MjI0RiIgfSwKKyAgIiZDYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFsyNjJdLCAiY2hhcmFjdGVycyI6ICJcdTAxMDYiIH0sCisgICImY2FjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjYzXSwgImNoYXJhY3RlcnMiOiAiXHUwMTA3IiB9LAorICAiJmNhcGFuZDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODIwXSwgImNoYXJhY3RlcnMiOiAiXHUyQTQ0IiB9LAorICAiJmNhcGJyY3VwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MjVdLCAiY2hhcmFjdGVycyI6ICJcdTJBNDkiIH0sCisgICImY2FwY2FwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MjddLCAiY2hhcmFjdGVycyI6ICJcdTJBNEIiIH0sCisgICImY2FwOyI6IHsgImNvZGVwb2ludHMiOiBbODc0NV0sICJjaGFyYWN0ZXJzIjogIlx1MjIyOSIgfSwKKyAgIiZDYXA7IjogeyAiY29kZXBvaW50cyI6IFs4OTE0XSwgImNoYXJhY3RlcnMiOiAiXHUyMkQyIiB9LAorICAiJmNhcGN1cDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODIzXSwgImNoYXJhY3RlcnMiOiAiXHUyQTQ3IiB9LAorICAiJmNhcGRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODE2XSwgImNoYXJhY3RlcnMiOiAiXHUyQTQwIiB9LAorICAiJkNhcGl0YWxEaWZmZXJlbnRpYWxEOyI6IHsgImNvZGVwb2ludHMiOiBbODUxN10sICJjaGFyYWN0ZXJzIjogIlx1MjE0NSIgfSwKKyAgIiZjYXBzOyI6IHsgImNvZGVwb2ludHMiOiBbODc0NSwgNjUwMjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjlcdUZFMDAiIH0sCisgICImY2FyZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4MjU3XSwgImNoYXJhY3RlcnMiOiAiXHUyMDQxIiB9LAorICAiJmNhcm9uOyI6IHsgImNvZGVwb2ludHMiOiBbNzExXSwgImNoYXJhY3RlcnMiOiAiXHUwMkM3IiB9LAorICAiJkNheWxleXM7IjogeyAiY29kZXBvaW50cyI6IFs4NDkzXSwgImNoYXJhY3RlcnMiOiAiXHUyMTJEIiB9LAorICAiJmNjYXBzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MjldLCAiY2hhcmFjdGVycyI6ICJcdTJBNEQiIH0sCisgICImQ2Nhcm9uOyI6IHsgImNvZGVwb2ludHMiOiBbMjY4XSwgImNoYXJhY3RlcnMiOiAiXHUwMTBDIiB9LAorICAiJmNjYXJvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzI2OV0sICJjaGFyYWN0ZXJzIjogIlx1MDEwRCIgfSwKKyAgIiZDY2VkaWw7IjogeyAiY29kZXBvaW50cyI6IFsxOTldLCAiY2hhcmFjdGVycyI6ICJcdTAwQzciIH0sCisgICImQ2NlZGlsIjogeyAiY29kZXBvaW50cyI6IFsxOTldLCAiY2hhcmFjdGVycyI6ICJcdTAwQzciIH0sCisgICImY2NlZGlsOyI6IHsgImNvZGVwb2ludHMiOiBbMjMxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEU3IiB9LAorICAiJmNjZWRpbCI6IHsgImNvZGVwb2ludHMiOiBbMjMxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEU3IiB9LAorICAiJkNjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMjY0XSwgImNoYXJhY3RlcnMiOiAiXHUwMTA4IiB9LAorICAiJmNjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMjY1XSwgImNoYXJhY3RlcnMiOiAiXHUwMTA5IiB9LAorICAiJkNjb25pbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzUyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjMwIiB9LAorICAiJmNjdXBzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MjhdLCAiY2hhcmFjdGVycyI6ICJcdTJBNEMiIH0sCisgICImY2N1cHNzbTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODMyXSwgImNoYXJhY3RlcnMiOiAiXHUyQTUwIiB9LAorICAiJkNkb3Q7IjogeyAiY29kZXBvaW50cyI6IFsyNjZdLCAiY2hhcmFjdGVycyI6ICJcdTAxMEEiIH0sCisgICImY2RvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzI2N10sICJjaGFyYWN0ZXJzIjogIlx1MDEwQiIgfSwKKyAgIiZjZWRpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzE4NF0sICJjaGFyYWN0ZXJzIjogIlx1MDBCOCIgfSwKKyAgIiZjZWRpbCI6IHsgImNvZGVwb2ludHMiOiBbMTg0XSwgImNoYXJhY3RlcnMiOiAiXHUwMEI4IiB9LAorICAiJkNlZGlsbGE7IjogeyAiY29kZXBvaW50cyI6IFsxODRdLCAiY2hhcmFjdGVycyI6ICJcdTAwQjgiIH0sCisgICImY2VtcHR5djsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjc0XSwgImNoYXJhY3RlcnMiOiAiXHUyOUIyIiB9LAorICAiJmNlbnQ7IjogeyAiY29kZXBvaW50cyI6IFsxNjJdLCAiY2hhcmFjdGVycyI6ICJcdTAwQTIiIH0sCisgICImY2VudCI6IHsgImNvZGVwb2ludHMiOiBbMTYyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEEyIiB9LAorICAiJmNlbnRlcmRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzE4M10sICJjaGFyYWN0ZXJzIjogIlx1MDBCNyIgfSwKKyAgIiZDZW50ZXJEb3Q7IjogeyAiY29kZXBvaW50cyI6IFsxODNdLCAiY2hhcmFjdGVycyI6ICJcdTAwQjciIH0sCisgICImY2ZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDk2XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDIwIiB9LAorICAiJkNmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0OTNdLCAiY2hhcmFjdGVycyI6ICJcdTIxMkQiIH0sCisgICImQ0hjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjNdLCAiY2hhcmFjdGVycyI6ICJcdTA0MjciIH0sCisgICImY2hjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTVdLCAiY2hhcmFjdGVycyI6ICJcdTA0NDciIH0sCisgICImY2hlY2s7IjogeyAiY29kZXBvaW50cyI6IFsxMDAwM10sICJjaGFyYWN0ZXJzIjogIlx1MjcxMyIgfSwKKyAgIiZjaGVja21hcms7IjogeyAiY29kZXBvaW50cyI6IFsxMDAwM10sICJjaGFyYWN0ZXJzIjogIlx1MjcxMyIgfSwKKyAgIiZDaGk7IjogeyAiY29kZXBvaW50cyI6IFs5MzVdLCAiY2hhcmFjdGVycyI6ICJcdTAzQTciIH0sCisgICImY2hpOyI6IHsgImNvZGVwb2ludHMiOiBbOTY3XSwgImNoYXJhY3RlcnMiOiAiXHUwM0M3IiB9LAorICAiJmNpcmM7IjogeyAiY29kZXBvaW50cyI6IFs3MTBdLCAiY2hhcmFjdGVycyI6ICJcdTAyQzYiIH0sCisgICImY2lyY2VxOyI6IHsgImNvZGVwb2ludHMiOiBbODc5MV0sICJjaGFyYWN0ZXJzIjogIlx1MjI1NyIgfSwKKyAgIiZjaXJjbGVhcnJvd2xlZnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NjM0XSwgImNoYXJhY3RlcnMiOiAiXHUyMUJBIiB9LAorICAiJmNpcmNsZWFycm93cmlnaHQ7IjogeyAiY29kZXBvaW50cyI6IFs4NjM1XSwgImNoYXJhY3RlcnMiOiAiXHUyMUJCIiB9LAorICAiJmNpcmNsZWRhc3Q7IjogeyAiY29kZXBvaW50cyI6IFs4ODU5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjlCIiB9LAorICAiJmNpcmNsZWRjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbODg1OF0sICJjaGFyYWN0ZXJzIjogIlx1MjI5QSIgfSwKKyAgIiZjaXJjbGVkZGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjFdLCAiY2hhcmFjdGVycyI6ICJcdTIyOUQiIH0sCisgICImQ2lyY2xlRG90OyI6IHsgImNvZGVwb2ludHMiOiBbODg1N10sICJjaGFyYWN0ZXJzIjogIlx1MjI5OSIgfSwKKyAgIiZjaXJjbGVkUjsiOiB7ICJjb2RlcG9pbnRzIjogWzE3NF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBRSIgfSwKKyAgIiZjaXJjbGVkUzsiOiB7ICJjb2RlcG9pbnRzIjogWzk0MTZdLCAiY2hhcmFjdGVycyI6ICJcdTI0QzgiIH0sCisgICImQ2lyY2xlTWludXM7IjogeyAiY29kZXBvaW50cyI6IFs4ODU0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjk2IiB9LAorICAiJkNpcmNsZVBsdXM7IjogeyAiY29kZXBvaW50cyI6IFs4ODUzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjk1IiB9LAorICAiJkNpcmNsZVRpbWVzOyI6IHsgImNvZGVwb2ludHMiOiBbODg1NV0sICJjaGFyYWN0ZXJzIjogIlx1MjI5NyIgfSwKKyAgIiZjaXI7IjogeyAiY29kZXBvaW50cyI6IFs5Njc1XSwgImNoYXJhY3RlcnMiOiAiXHUyNUNCIiB9LAorICAiJmNpckU7IjogeyAiY29kZXBvaW50cyI6IFsxMDY5MV0sICJjaGFyYWN0ZXJzIjogIlx1MjlDMyIgfSwKKyAgIiZjaXJlOyI6IHsgImNvZGVwb2ludHMiOiBbODc5MV0sICJjaGFyYWN0ZXJzIjogIlx1MjI1NyIgfSwKKyAgIiZjaXJmbmludDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzY4XSwgImNoYXJhY3RlcnMiOiAiXHUyQTEwIiB9LAorICAiJmNpcm1pZDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTkxXSwgImNoYXJhY3RlcnMiOiAiXHUyQUVGIiB9LAorICAiJmNpcnNjaXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDY5MF0sICJjaGFyYWN0ZXJzIjogIlx1MjlDMiIgfSwKKyAgIiZDbG9ja3dpc2VDb250b3VySW50ZWdyYWw7IjogeyAiY29kZXBvaW50cyI6IFs4NzU0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjMyIiB9LAorICAiJkNsb3NlQ3VybHlEb3VibGVRdW90ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMjFdLCAiY2hhcmFjdGVycyI6ICJcdTIwMUQiIH0sCisgICImQ2xvc2VDdXJseVF1b3RlOyI6IHsgImNvZGVwb2ludHMiOiBbODIxN10sICJjaGFyYWN0ZXJzIjogIlx1MjAxOSIgfSwKKyAgIiZjbHViczsiOiB7ICJjb2RlcG9pbnRzIjogWzk4MjddLCAiY2hhcmFjdGVycyI6ICJcdTI2NjMiIH0sCisgICImY2x1YnN1aXQ7IjogeyAiY29kZXBvaW50cyI6IFs5ODI3XSwgImNoYXJhY3RlcnMiOiAiXHUyNjYzIiB9LAorICAiJmNvbG9uOyI6IHsgImNvZGVwb2ludHMiOiBbNThdLCAiY2hhcmFjdGVycyI6ICJcdTAwM0EiIH0sCisgICImQ29sb247IjogeyAiY29kZXBvaW50cyI6IFs4NzU5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjM3IiB9LAorICAiJkNvbG9uZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODY4XSwgImNoYXJhY3RlcnMiOiAiXHUyQTc0IiB9LAorICAiJmNvbG9uZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODhdLCAiY2hhcmFjdGVycyI6ICJcdTIyNTQiIH0sCisgICImY29sb25lcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODhdLCAiY2hhcmFjdGVycyI6ICJcdTIyNTQiIH0sCisgICImY29tbWE7IjogeyAiY29kZXBvaW50cyI6IFs0NF0sICJjaGFyYWN0ZXJzIjogIlx1MDAyQyIgfSwKKyAgIiZjb21tYXQ7IjogeyAiY29kZXBvaW50cyI6IFs2NF0sICJjaGFyYWN0ZXJzIjogIlx1MDA0MCIgfSwKKyAgIiZjb21wOyI6IHsgImNvZGVwb2ludHMiOiBbODcwNV0sICJjaGFyYWN0ZXJzIjogIlx1MjIwMSIgfSwKKyAgIiZjb21wZm47IjogeyAiY29kZXBvaW50cyI6IFs4NzI4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjE4IiB9LAorICAiJmNvbXBsZW1lbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzA1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjAxIiB9LAorICAiJmNvbXBsZXhlczsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NTBdLCAiY2hhcmFjdGVycyI6ICJcdTIxMDIiIH0sCisgICImY29uZzsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzNdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDUiIH0sCisgICImY29uZ2RvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODYxXSwgImNoYXJhY3RlcnMiOiAiXHUyQTZEIiB9LAorICAiJkNvbmdydWVudDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDFdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjEiIH0sCisgICImY29uaW50OyI6IHsgImNvZGVwb2ludHMiOiBbODc1MF0sICJjaGFyYWN0ZXJzIjogIlx1MjIyRSIgfSwKKyAgIiZDb25pbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzUxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjJGIiB9LAorICAiJkNvbnRvdXJJbnRlZ3JhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NTBdLCAiY2hhcmFjdGVycyI6ICJcdTIyMkUiIH0sCisgICImY29wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE0OF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ1NCIgfSwKKyAgIiZDb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbODQ1MF0sICJjaGFyYWN0ZXJzIjogIlx1MjEwMiIgfSwKKyAgIiZjb3Byb2Q7IjogeyAiY29kZXBvaW50cyI6IFs4NzIwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjEwIiB9LAorICAiJkNvcHJvZHVjdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjBdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTAiIH0sCisgICImY29weTsiOiB7ICJjb2RlcG9pbnRzIjogWzE2OV0sICJjaGFyYWN0ZXJzIjogIlx1MDBBOSIgfSwKKyAgIiZjb3B5IjogeyAiY29kZXBvaW50cyI6IFsxNjldLCAiY2hhcmFjdGVycyI6ICJcdTAwQTkiIH0sCisgICImQ09QWTsiOiB7ICJjb2RlcG9pbnRzIjogWzE2OV0sICJjaGFyYWN0ZXJzIjogIlx1MDBBOSIgfSwKKyAgIiZDT1BZIjogeyAiY29kZXBvaW50cyI6IFsxNjldLCAiY2hhcmFjdGVycyI6ICJcdTAwQTkiIH0sCisgICImY29weXNyOyI6IHsgImNvZGVwb2ludHMiOiBbODQ3MV0sICJjaGFyYWN0ZXJzIjogIlx1MjExNyIgfSwKKyAgIiZDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsOyI6IHsgImNvZGVwb2ludHMiOiBbODc1NV0sICJjaGFyYWN0ZXJzIjogIlx1MjIzMyIgfSwKKyAgIiZjcmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MjldLCAiY2hhcmFjdGVycyI6ICJcdTIxQjUiIH0sCisgICImY3Jvc3M7IjogeyAiY29kZXBvaW50cyI6IFsxMDAwN10sICJjaGFyYWN0ZXJzIjogIlx1MjcxNyIgfSwKKyAgIiZDcm9zczsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzk5XSwgImNoYXJhY3RlcnMiOiAiXHUyQTJGIiB9LAorICAiJkNzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMTk5NjZdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDOUUiIH0sCisgICImY3NjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk5Ml0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENCOCIgfSwKKyAgIiZjc3ViOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NTldLCAiY2hhcmFjdGVycyI6ICJcdTJBQ0YiIH0sCisgICImY3N1YmU7IjogeyAiY29kZXBvaW50cyI6IFsxMDk2MV0sICJjaGFyYWN0ZXJzIjogIlx1MkFEMSIgfSwKKyAgIiZjc3VwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NjBdLCAiY2hhcmFjdGVycyI6ICJcdTJBRDAiIH0sCisgICImY3N1cGU7IjogeyAiY29kZXBvaW50cyI6IFsxMDk2Ml0sICJjaGFyYWN0ZXJzIjogIlx1MkFEMiIgfSwKKyAgIiZjdGRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NDNdLCAiY2hhcmFjdGVycyI6ICJcdTIyRUYiIH0sCisgICImY3VkYXJybDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTUyXSwgImNoYXJhY3RlcnMiOiAiXHUyOTM4IiB9LAorICAiJmN1ZGFycnI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU0OV0sICJjaGFyYWN0ZXJzIjogIlx1MjkzNSIgfSwKKyAgIiZjdWVwcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MjZdLCAiY2hhcmFjdGVycyI6ICJcdTIyREUiIH0sCisgICImY3Vlc2M7IjogeyAiY29kZXBvaW50cyI6IFs4OTI3XSwgImNoYXJhY3RlcnMiOiAiXHUyMkRGIiB9LAorICAiJmN1bGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzBdLCAiY2hhcmFjdGVycyI6ICJcdTIxQjYiIH0sCisgICImY3VsYXJycDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTU3XSwgImNoYXJhY3RlcnMiOiAiXHUyOTNEIiB9LAorICAiJmN1cGJyY2FwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBNDgiIH0sCisgICImY3VwY2FwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MjJdLCAiY2hhcmFjdGVycyI6ICJcdTJBNDYiIH0sCisgICImQ3VwQ2FwOyI6IHsgImNvZGVwb2ludHMiOiBbODc4MV0sICJjaGFyYWN0ZXJzIjogIlx1MjI0RCIgfSwKKyAgIiZjdXA7IjogeyAiY29kZXBvaW50cyI6IFs4NzQ2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjJBIiB9LAorICAiJkN1cDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MTVdLCAiY2hhcmFjdGVycyI6ICJcdTIyRDMiIH0sCisgICImY3VwY3VwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MjZdLCAiY2hhcmFjdGVycyI6ICJcdTJBNEEiIH0sCisgICImY3VwZG90OyI6IHsgImNvZGVwb2ludHMiOiBbODg0NV0sICJjaGFyYWN0ZXJzIjogIlx1MjI4RCIgfSwKKyAgIiZjdXBvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODIxXSwgImNoYXJhY3RlcnMiOiAiXHUyQTQ1IiB9LAorICAiJmN1cHM7IjogeyAiY29kZXBvaW50cyI6IFs4NzQ2LCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjIyQVx1RkUwMCIgfSwKKyAgIiZjdXJhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjMxXSwgImNoYXJhY3RlcnMiOiAiXHUyMUI3IiB9LAorICAiJmN1cmFycm07IjogeyAiY29kZXBvaW50cyI6IFsxMDU1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjkzQyIgfSwKKyAgIiZjdXJseWVxcHJlYzsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MjZdLCAiY2hhcmFjdGVycyI6ICJcdTIyREUiIH0sCisgICImY3VybHllcXN1Y2M7IjogeyAiY29kZXBvaW50cyI6IFs4OTI3XSwgImNoYXJhY3RlcnMiOiAiXHUyMkRGIiB9LAorICAiJmN1cmx5dmVlOyI6IHsgImNvZGVwb2ludHMiOiBbODkxMF0sICJjaGFyYWN0ZXJzIjogIlx1MjJDRSIgfSwKKyAgIiZjdXJseXdlZGdlOyI6IHsgImNvZGVwb2ludHMiOiBbODkxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjJDRiIgfSwKKyAgIiZjdXJyZW47IjogeyAiY29kZXBvaW50cyI6IFsxNjRdLCAiY2hhcmFjdGVycyI6ICJcdTAwQTQiIH0sCisgICImY3VycmVuIjogeyAiY29kZXBvaW50cyI6IFsxNjRdLCAiY2hhcmFjdGVycyI6ICJcdTAwQTQiIH0sCisgICImY3VydmVhcnJvd2xlZnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NjMwXSwgImNoYXJhY3RlcnMiOiAiXHUyMUI2IiB9LAorICAiJmN1cnZlYXJyb3dyaWdodDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzFdLCAiY2hhcmFjdGVycyI6ICJcdTIxQjciIH0sCisgICImY3V2ZWU7IjogeyAiY29kZXBvaW50cyI6IFs4OTEwXSwgImNoYXJhY3RlcnMiOiAiXHUyMkNFIiB9LAorICAiJmN1d2VkOyI6IHsgImNvZGVwb2ludHMiOiBbODkxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjJDRiIgfSwKKyAgIiZjd2NvbmludDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NTRdLCAiY2hhcmFjdGVycyI6ICJcdTIyMzIiIH0sCisgICImY3dpbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzUzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjMxIiB9LAorICAiJmN5bGN0eTsiOiB7ICJjb2RlcG9pbnRzIjogWzkwMDVdLCAiY2hhcmFjdGVycyI6ICJcdTIzMkQiIH0sCisgICImZGFnZ2VyOyI6IHsgImNvZGVwb2ludHMiOiBbODIyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjAyMCIgfSwKKyAgIiZEYWdnZXI7IjogeyAiY29kZXBvaW50cyI6IFs4MjI1XSwgImNoYXJhY3RlcnMiOiAiXHUyMDIxIiB9LAorICAiJmRhbGV0aDsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MDRdLCAiY2hhcmFjdGVycyI6ICJcdTIxMzgiIH0sCisgICImZGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OTVdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTMiIH0sCisgICImRGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDldLCAiY2hhcmFjdGVycyI6ICJcdTIxQTEiIH0sCisgICImZEFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTldLCAiY2hhcmFjdGVycyI6ICJcdTIxRDMiIH0sCisgICImZGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMDhdLCAiY2hhcmFjdGVycyI6ICJcdTIwMTAiIH0sCisgICImRGFzaHY7IjogeyAiY29kZXBvaW50cyI6IFsxMDk4MF0sICJjaGFyYWN0ZXJzIjogIlx1MkFFNCIgfSwKKyAgIiZkYXNodjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjddLCAiY2hhcmFjdGVycyI6ICJcdTIyQTMiIH0sCisgICImZGJrYXJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTExXSwgImNoYXJhY3RlcnMiOiAiXHUyOTBGIiB9LAorICAiJmRibGFjOyI6IHsgImNvZGVwb2ludHMiOiBbNzMzXSwgImNoYXJhY3RlcnMiOiAiXHUwMkREIiB9LAorICAiJkRjYXJvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzI3MF0sICJjaGFyYWN0ZXJzIjogIlx1MDEwRSIgfSwKKyAgIiZkY2Fyb247IjogeyAiY29kZXBvaW50cyI6IFsyNzFdLCAiY2hhcmFjdGVycyI6ICJcdTAxMEYiIH0sCisgICImRGN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA0NF0sICJjaGFyYWN0ZXJzIjogIlx1MDQxNCIgfSwKKyAgIiZkY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDc2XSwgImNoYXJhY3RlcnMiOiAiXHUwNDM0IiB9LAorICAiJmRkYWdnZXI7IjogeyAiY29kZXBvaW50cyI6IFs4MjI1XSwgImNoYXJhY3RlcnMiOiAiXHUyMDIxIiB9LAorICAiJmRkYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY1MF0sICJjaGFyYWN0ZXJzIjogIlx1MjFDQSIgfSwKKyAgIiZERDsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MTddLCAiY2hhcmFjdGVycyI6ICJcdTIxNDUiIH0sCisgICImZGQ7IjogeyAiY29kZXBvaW50cyI6IFs4NTE4XSwgImNoYXJhY3RlcnMiOiAiXHUyMTQ2IiB9LAorICAiJkREb3RyYWhkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MTNdLCAiY2hhcmFjdGVycyI6ICJcdTI5MTEiIH0sCisgICImZGRvdHNlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODcxXSwgImNoYXJhY3RlcnMiOiAiXHUyQTc3IiB9LAorICAiJmRlZzsiOiB7ICJjb2RlcG9pbnRzIjogWzE3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDBCMCIgfSwKKyAgIiZkZWciOiB7ICJjb2RlcG9pbnRzIjogWzE3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDBCMCIgfSwKKyAgIiZEZWw7IjogeyAiY29kZXBvaW50cyI6IFs4NzExXSwgImNoYXJhY3RlcnMiOiAiXHUyMjA3IiB9LAorICAiJkRlbHRhOyI6IHsgImNvZGVwb2ludHMiOiBbOTE2XSwgImNoYXJhY3RlcnMiOiAiXHUwMzk0IiB9LAorICAiJmRlbHRhOyI6IHsgImNvZGVwb2ludHMiOiBbOTQ4XSwgImNoYXJhY3RlcnMiOiAiXHUwM0I0IiB9LAorICAiJmRlbXB0eXY7IjogeyAiY29kZXBvaW50cyI6IFsxMDY3M10sICJjaGFyYWN0ZXJzIjogIlx1MjlCMSIgfSwKKyAgIiZkZmlzaHQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDYyM10sICJjaGFyYWN0ZXJzIjogIlx1Mjk3RiIgfSwKKyAgIiZEZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwNzFdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMDciIH0sCisgICImZGZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDk3XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDIxIiB9LAorICAiJmRIYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU5N10sICJjaGFyYWN0ZXJzIjogIlx1Mjk2NSIgfSwKKyAgIiZkaGFybDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDNdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzMiIH0sCisgICImZGhhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjQyXSwgImNoYXJhY3RlcnMiOiAiXHUyMUMyIiB9LAorICAiJkRpYWNyaXRpY2FsQWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFsxODBdLCAiY2hhcmFjdGVycyI6ICJcdTAwQjQiIH0sCisgICImRGlhY3JpdGljYWxEb3Q7IjogeyAiY29kZXBvaW50cyI6IFs3MjldLCAiY2hhcmFjdGVycyI6ICJcdTAyRDkiIH0sCisgICImRGlhY3JpdGljYWxEb3VibGVBY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzczM10sICJjaGFyYWN0ZXJzIjogIlx1MDJERCIgfSwKKyAgIiZEaWFjcml0aWNhbEdyYXZlOyI6IHsgImNvZGVwb2ludHMiOiBbOTZdLCAiY2hhcmFjdGVycyI6ICJcdTAwNjAiIH0sCisgICImRGlhY3JpdGljYWxUaWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzczMl0sICJjaGFyYWN0ZXJzIjogIlx1MDJEQyIgfSwKKyAgIiZkaWFtOyI6IHsgImNvZGVwb2ludHMiOiBbODkwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjJDNCIgfSwKKyAgIiZkaWFtb25kOyI6IHsgImNvZGVwb2ludHMiOiBbODkwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjJDNCIgfSwKKyAgIiZEaWFtb25kOyI6IHsgImNvZGVwb2ludHMiOiBbODkwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjJDNCIgfSwKKyAgIiZkaWFtb25kc3VpdDsiOiB7ICJjb2RlcG9pbnRzIjogWzk4MzBdLCAiY2hhcmFjdGVycyI6ICJcdTI2NjYiIH0sCisgICImZGlhbXM7IjogeyAiY29kZXBvaW50cyI6IFs5ODMwXSwgImNoYXJhY3RlcnMiOiAiXHUyNjY2IiB9LAorICAiJmRpZTsiOiB7ICJjb2RlcG9pbnRzIjogWzE2OF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBOCIgfSwKKyAgIiZEaWZmZXJlbnRpYWxEOyI6IHsgImNvZGVwb2ludHMiOiBbODUxOF0sICJjaGFyYWN0ZXJzIjogIlx1MjE0NiIgfSwKKyAgIiZkaWdhbW1hOyI6IHsgImNvZGVwb2ludHMiOiBbOTg5XSwgImNoYXJhY3RlcnMiOiAiXHUwM0REIiB9LAorICAiJmRpc2luOyI6IHsgImNvZGVwb2ludHMiOiBbODk0Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjJGMiIgfSwKKyAgIiZkaXY7IjogeyAiY29kZXBvaW50cyI6IFsyNDddLCAiY2hhcmFjdGVycyI6ICJcdTAwRjciIH0sCisgICImZGl2aWRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjQ3XSwgImNoYXJhY3RlcnMiOiAiXHUwMEY3IiB9LAorICAiJmRpdmlkZSI6IHsgImNvZGVwb2ludHMiOiBbMjQ3XSwgImNoYXJhY3RlcnMiOiAiXHUwMEY3IiB9LAorICAiJmRpdmlkZW9udGltZXM7IjogeyAiY29kZXBvaW50cyI6IFs4OTAzXSwgImNoYXJhY3RlcnMiOiAiXHUyMkM3IiB9LAorICAiJmRpdm9ueDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MDNdLCAiY2hhcmFjdGVycyI6ICJcdTIyQzciIH0sCisgICImREpjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjZdLCAiY2hhcmFjdGVycyI6ICJcdTA0MDIiIH0sCisgICImZGpjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzExMDZdLCAiY2hhcmFjdGVycyI6ICJcdTA0NTIiIH0sCisgICImZGxjb3JuOyI6IHsgImNvZGVwb2ludHMiOiBbODk5MF0sICJjaGFyYWN0ZXJzIjogIlx1MjMxRSIgfSwKKyAgIiZkbGNyb3A7IjogeyAiY29kZXBvaW50cyI6IFs4OTczXSwgImNoYXJhY3RlcnMiOiAiXHUyMzBEIiB9LAorICAiJmRvbGxhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzM2XSwgImNoYXJhY3RlcnMiOiAiXHUwMDI0IiB9LAorICAiJkRvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMjNdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREM0IiIH0sCisgICImZG9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE0OV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ1NSIgfSwKKyAgIiZEb3Q7IjogeyAiY29kZXBvaW50cyI6IFsxNjhdLCAiY2hhcmFjdGVycyI6ICJcdTAwQTgiIH0sCisgICImZG90OyI6IHsgImNvZGVwb2ludHMiOiBbNzI5XSwgImNoYXJhY3RlcnMiOiAiXHUwMkQ5IiB9LAorICAiJkRvdERvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0MTJdLCAiY2hhcmFjdGVycyI6ICJcdTIwREMiIH0sCisgICImZG90ZXE7IjogeyAiY29kZXBvaW50cyI6IFs4Nzg0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjUwIiB9LAorICAiJmRvdGVxZG90OyI6IHsgImNvZGVwb2ludHMiOiBbODc4NV0sICJjaGFyYWN0ZXJzIjogIlx1MjI1MSIgfSwKKyAgIiZEb3RFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNTAiIH0sCisgICImZG90bWludXM7IjogeyAiY29kZXBvaW50cyI6IFs4NzYwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjM4IiB9LAorICAiJmRvdHBsdXM7IjogeyAiY29kZXBvaW50cyI6IFs4NzI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjE0IiB9LAorICAiJmRvdHNxdWFyZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjVdLCAiY2hhcmFjdGVycyI6ICJcdTIyQTEiIH0sCisgICImZG91YmxlYmFyd2VkZ2U7IjogeyAiY29kZXBvaW50cyI6IFs4OTY2XSwgImNoYXJhY3RlcnMiOiAiXHUyMzA2IiB9LAorICAiJkRvdWJsZUNvbnRvdXJJbnRlZ3JhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NTFdLCAiY2hhcmFjdGVycyI6ICJcdTIyMkYiIH0sCisgICImRG91YmxlRG90OyI6IHsgImNvZGVwb2ludHMiOiBbMTY4XSwgImNoYXJhY3RlcnMiOiAiXHUwMEE4IiB9LAorICAiJkRvdWJsZURvd25BcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTldLCAiY2hhcmFjdGVycyI6ICJcdTIxRDMiIH0sCisgICImRG91YmxlTGVmdEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODY1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjFEMCIgfSwKKyAgIiZEb3VibGVMZWZ0UmlnaHRBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjBdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDQiIH0sCisgICImRG91YmxlTGVmdFRlZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTgwXSwgImNoYXJhY3RlcnMiOiAiXHUyQUU0IiB9LAorICAiJkRvdWJsZUxvbmdMZWZ0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFsxMDIzMl0sICJjaGFyYWN0ZXJzIjogIlx1MjdGOCIgfSwKKyAgIiZEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFsxMDIzNF0sICJjaGFyYWN0ZXJzIjogIlx1MjdGQSIgfSwKKyAgIiZEb3VibGVMb25nUmlnaHRBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjMzXSwgImNoYXJhY3RlcnMiOiAiXHUyN0Y5IiB9LAorICAiJkRvdWJsZVJpZ2h0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjU4XSwgImNoYXJhY3RlcnMiOiAiXHUyMUQyIiB9LAorICAiJkRvdWJsZVJpZ2h0VGVlOyI6IHsgImNvZGVwb2ludHMiOiBbODg3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjJBOCIgfSwKKyAgIiZEb3VibGVVcEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODY1N10sICJjaGFyYWN0ZXJzIjogIlx1MjFEMSIgfSwKKyAgIiZEb3VibGVVcERvd25BcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjFdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDUiIH0sCisgICImRG91YmxlVmVydGljYWxCYXI7IjogeyAiY29kZXBvaW50cyI6IFs4NzQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjI1IiB9LAorICAiJkRvd25BcnJvd0JhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTE1XSwgImNoYXJhY3RlcnMiOiAiXHUyOTEzIiB9LAorICAiJmRvd25hcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OTVdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTMiIH0sCisgICImRG93bkFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5NV0sICJjaGFyYWN0ZXJzIjogIlx1MjE5MyIgfSwKKyAgIiZEb3duYXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjU5XSwgImNoYXJhY3RlcnMiOiAiXHUyMUQzIiB9LAorICAiJkRvd25BcnJvd1VwQXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjkzXSwgImNoYXJhY3RlcnMiOiAiXHUyMUY1IiB9LAorICAiJkRvd25CcmV2ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzc4NV0sICJjaGFyYWN0ZXJzIjogIlx1MDMxMSIgfSwKKyAgIiZkb3duZG93bmFycm93czsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTBdLCAiY2hhcmFjdGVycyI6ICJcdTIxQ0EiIH0sCisgICImZG93bmhhcnBvb25sZWZ0OyI6IHsgImNvZGVwb2ludHMiOiBbODY0M10sICJjaGFyYWN0ZXJzIjogIlx1MjFDMyIgfSwKKyAgIiZkb3duaGFycG9vbnJpZ2h0OyI6IHsgImNvZGVwb2ludHMiOiBbODY0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjFDMiIgfSwKKyAgIiZEb3duTGVmdFJpZ2h0VmVjdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1NzZdLCAiY2hhcmFjdGVycyI6ICJcdTI5NTAiIH0sCisgICImRG93bkxlZnRUZWVWZWN0b3I7IjogeyAiY29kZXBvaW50cyI6IFsxMDU5MF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk1RSIgfSwKKyAgIiZEb3duTGVmdFZlY3RvckJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTgyXSwgImNoYXJhY3RlcnMiOiAiXHUyOTU2IiB9LAorICAiJkRvd25MZWZ0VmVjdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbODYzN10sICJjaGFyYWN0ZXJzIjogIlx1MjFCRCIgfSwKKyAgIiZEb3duUmlnaHRUZWVWZWN0b3I7IjogeyAiY29kZXBvaW50cyI6IFsxMDU5MV0sICJjaGFyYWN0ZXJzIjogIlx1Mjk1RiIgfSwKKyAgIiZEb3duUmlnaHRWZWN0b3JCYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU4M10sICJjaGFyYWN0ZXJzIjogIlx1Mjk1NyIgfSwKKyAgIiZEb3duUmlnaHRWZWN0b3I7IjogeyAiY29kZXBvaW50cyI6IFs4NjQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMUMxIiB9LAorICAiJkRvd25UZWVBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MTVdLCAiY2hhcmFjdGVycyI6ICJcdTIxQTciIH0sCisgICImRG93blRlZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjhdLCAiY2hhcmFjdGVycyI6ICJcdTIyQTQiIH0sCisgICImZHJia2Fyb3c7IjogeyAiY29kZXBvaW50cyI6IFsxMDUxMl0sICJjaGFyYWN0ZXJzIjogIlx1MjkxMCIgfSwKKyAgIiZkcmNvcm47IjogeyAiY29kZXBvaW50cyI6IFs4OTkxXSwgImNoYXJhY3RlcnMiOiAiXHUyMzFGIiB9LAorICAiJmRyY3JvcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NzJdLCAiY2hhcmFjdGVycyI6ICJcdTIzMEMiIH0sCisgICImRHNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk2N10sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REM5RiIgfSwKKyAgIiZkc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTkzXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0I5IiB9LAorICAiJkRTY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDI5XSwgImNoYXJhY3RlcnMiOiAiXHUwNDA1IiB9LAorICAiJmRzY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTA5XSwgImNoYXJhY3RlcnMiOiAiXHUwNDU1IiB9LAorICAiJmRzb2w7IjogeyAiY29kZXBvaW50cyI6IFsxMDc0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjlGNiIgfSwKKyAgIiZEc3Ryb2s7IjogeyAiY29kZXBvaW50cyI6IFsyNzJdLCAiY2hhcmFjdGVycyI6ICJcdTAxMTAiIH0sCisgICImZHN0cm9rOyI6IHsgImNvZGVwb2ludHMiOiBbMjczXSwgImNoYXJhY3RlcnMiOiAiXHUwMTExIiB9LAorICAiJmR0ZG90OyI6IHsgImNvZGVwb2ludHMiOiBbODk0NV0sICJjaGFyYWN0ZXJzIjogIlx1MjJGMSIgfSwKKyAgIiZkdHJpOyI6IHsgImNvZGVwb2ludHMiOiBbOTY2M10sICJjaGFyYWN0ZXJzIjogIlx1MjVCRiIgfSwKKyAgIiZkdHJpZjsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NjJdLCAiY2hhcmFjdGVycyI6ICJcdTI1QkUiIH0sCisgICImZHVhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjkzXSwgImNoYXJhY3RlcnMiOiAiXHUyMUY1IiB9LAorICAiJmR1aGFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MDddLCAiY2hhcmFjdGVycyI6ICJcdTI5NkYiIH0sCisgICImZHdhbmdsZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjYyXSwgImNoYXJhY3RlcnMiOiAiXHUyOUE2IiB9LAorICAiJkRaY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDM5XSwgImNoYXJhY3RlcnMiOiAiXHUwNDBGIiB9LAorICAiJmR6Y3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTE5XSwgImNoYXJhY3RlcnMiOiAiXHUwNDVGIiB9LAorICAiJmR6aWdyYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzldLCAiY2hhcmFjdGVycyI6ICJcdTI3RkYiIH0sCisgICImRWFjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjAxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEM5IiB9LAorICAiJkVhY3V0ZSI6IHsgImNvZGVwb2ludHMiOiBbMjAxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEM5IiB9LAorICAiJmVhY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzIzM10sICJjaGFyYWN0ZXJzIjogIlx1MDBFOSIgfSwKKyAgIiZlYWN1dGUiOiB7ICJjb2RlcG9pbnRzIjogWzIzM10sICJjaGFyYWN0ZXJzIjogIlx1MDBFOSIgfSwKKyAgIiZlYXN0ZXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDg2Ml0sICJjaGFyYWN0ZXJzIjogIlx1MkE2RSIgfSwKKyAgIiZFY2Fyb247IjogeyAiY29kZXBvaW50cyI6IFsyODJdLCAiY2hhcmFjdGVycyI6ICJcdTAxMUEiIH0sCisgICImZWNhcm9uOyI6IHsgImNvZGVwb2ludHMiOiBbMjgzXSwgImNoYXJhY3RlcnMiOiAiXHUwMTFCIiB9LAorICAiJkVjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMjAyXSwgImNoYXJhY3RlcnMiOiAiXHUwMENBIiB9LAorICAiJkVjaXJjIjogeyAiY29kZXBvaW50cyI6IFsyMDJdLCAiY2hhcmFjdGVycyI6ICJcdTAwQ0EiIH0sCisgICImZWNpcmM7IjogeyAiY29kZXBvaW50cyI6IFsyMzRdLCAiY2hhcmFjdGVycyI6ICJcdTAwRUEiIH0sCisgICImZWNpcmMiOiB7ICJjb2RlcG9pbnRzIjogWzIzNF0sICJjaGFyYWN0ZXJzIjogIlx1MDBFQSIgfSwKKyAgIiZlY2lyOyI6IHsgImNvZGVwb2ludHMiOiBbODc5MF0sICJjaGFyYWN0ZXJzIjogIlx1MjI1NiIgfSwKKyAgIiZlY29sb247IjogeyAiY29kZXBvaW50cyI6IFs4Nzg5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjU1IiB9LAorICAiJkVjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjldLCAiY2hhcmFjdGVycyI6ICJcdTA0MkQiIH0sCisgICImZWN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTEwMV0sICJjaGFyYWN0ZXJzIjogIlx1MDQ0RCIgfSwKKyAgIiZlRERvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODcxXSwgImNoYXJhY3RlcnMiOiAiXHUyQTc3IiB9LAorICAiJkVkb3Q7IjogeyAiY29kZXBvaW50cyI6IFsyNzhdLCAiY2hhcmFjdGVycyI6ICJcdTAxMTYiIH0sCisgICImZWRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzI3OV0sICJjaGFyYWN0ZXJzIjogIlx1MDExNyIgfSwKKyAgIiZlRG90OyI6IHsgImNvZGVwb2ludHMiOiBbODc4NV0sICJjaGFyYWN0ZXJzIjogIlx1MjI1MSIgfSwKKyAgIiZlZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MTldLCAiY2hhcmFjdGVycyI6ICJcdTIxNDciIH0sCisgICImZWZEb3Q7IjogeyAiY29kZXBvaW50cyI6IFs4Nzg2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjUyIiB9LAorICAiJkVmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA3Ml0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQwOCIgfSwKKyAgIiZlZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwOThdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMjIiIH0sCisgICImZWc7IjogeyAiY29kZXBvaW50cyI6IFsxMDkwNl0sICJjaGFyYWN0ZXJzIjogIlx1MkE5QSIgfSwKKyAgIiZFZ3JhdmU7IjogeyAiY29kZXBvaW50cyI6IFsyMDBdLCAiY2hhcmFjdGVycyI6ICJcdTAwQzgiIH0sCisgICImRWdyYXZlIjogeyAiY29kZXBvaW50cyI6IFsyMDBdLCAiY2hhcmFjdGVycyI6ICJcdTAwQzgiIH0sCisgICImZWdyYXZlOyI6IHsgImNvZGVwb2ludHMiOiBbMjMyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEU4IiB9LAorICAiJmVncmF2ZSI6IHsgImNvZGVwb2ludHMiOiBbMjMyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEU4IiB9LAorICAiJmVnczsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTAyXSwgImNoYXJhY3RlcnMiOiAiXHUyQTk2IiB9LAorICAiJmVnc2RvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTA0XSwgImNoYXJhY3RlcnMiOiAiXHUyQTk4IiB9LAorICAiJmVsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MDVdLCAiY2hhcmFjdGVycyI6ICJcdTJBOTkiIH0sCisgICImRWxlbWVudDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MTJdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDgiIH0sCisgICImZWxpbnRlcnM7IjogeyAiY29kZXBvaW50cyI6IFs5MTkxXSwgImNoYXJhY3RlcnMiOiAiXHUyM0U3IiB9LAorICAiJmVsbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjddLCAiY2hhcmFjdGVycyI6ICJcdTIxMTMiIH0sCisgICImZWxzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MDFdLCAiY2hhcmFjdGVycyI6ICJcdTJBOTUiIH0sCisgICImZWxzZG90OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MDNdLCAiY2hhcmFjdGVycyI6ICJcdTJBOTciIH0sCisgICImRW1hY3I7IjogeyAiY29kZXBvaW50cyI6IFsyNzRdLCAiY2hhcmFjdGVycyI6ICJcdTAxMTIiIH0sCisgICImZW1hY3I7IjogeyAiY29kZXBvaW50cyI6IFsyNzVdLCAiY2hhcmFjdGVycyI6ICJcdTAxMTMiIH0sCisgICImZW1wdHk7IjogeyAiY29kZXBvaW50cyI6IFs4NzA5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjA1IiB9LAorICAiJmVtcHR5c2V0OyI6IHsgImNvZGVwb2ludHMiOiBbODcwOV0sICJjaGFyYWN0ZXJzIjogIlx1MjIwNSIgfSwKKyAgIiZFbXB0eVNtYWxsU3F1YXJlOyI6IHsgImNvZGVwb2ludHMiOiBbOTcyM10sICJjaGFyYWN0ZXJzIjogIlx1MjVGQiIgfSwKKyAgIiZlbXB0eXY7IjogeyAiY29kZXBvaW50cyI6IFs4NzA5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjA1IiB9LAorICAiJkVtcHR5VmVyeVNtYWxsU3F1YXJlOyI6IHsgImNvZGVwb2ludHMiOiBbOTY0M10sICJjaGFyYWN0ZXJzIjogIlx1MjVBQiIgfSwKKyAgIiZlbXNwMTM7IjogeyAiY29kZXBvaW50cyI6IFs4MTk2XSwgImNoYXJhY3RlcnMiOiAiXHUyMDA0IiB9LAorICAiJmVtc3AxNDsiOiB7ICJjb2RlcG9pbnRzIjogWzgxOTddLCAiY2hhcmFjdGVycyI6ICJcdTIwMDUiIH0sCisgICImZW1zcDsiOiB7ICJjb2RlcG9pbnRzIjogWzgxOTVdLCAiY2hhcmFjdGVycyI6ICJcdTIwMDMiIH0sCisgICImRU5HOyI6IHsgImNvZGVwb2ludHMiOiBbMzMwXSwgImNoYXJhY3RlcnMiOiAiXHUwMTRBIiB9LAorICAiJmVuZzsiOiB7ICJjb2RlcG9pbnRzIjogWzMzMV0sICJjaGFyYWN0ZXJzIjogIlx1MDE0QiIgfSwKKyAgIiZlbnNwOyI6IHsgImNvZGVwb2ludHMiOiBbODE5NF0sICJjaGFyYWN0ZXJzIjogIlx1MjAwMiIgfSwKKyAgIiZFb2dvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzI4MF0sICJjaGFyYWN0ZXJzIjogIlx1MDExOCIgfSwKKyAgIiZlb2dvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzI4MV0sICJjaGFyYWN0ZXJzIjogIlx1MDExOSIgfSwKKyAgIiZFb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTI0XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDNDIiB9LAorICAiJmVvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNTBdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENTYiIH0sCisgICImZXBhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MTddLCAiY2hhcmFjdGVycyI6ICJcdTIyRDUiIH0sCisgICImZXBhcnNsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3MjNdLCAiY2hhcmFjdGVycyI6ICJcdTI5RTMiIH0sCisgICImZXBsdXM7IjogeyAiY29kZXBvaW50cyI6IFsxMDg2NV0sICJjaGFyYWN0ZXJzIjogIlx1MkE3MSIgfSwKKyAgIiZlcHNpOyI6IHsgImNvZGVwb2ludHMiOiBbOTQ5XSwgImNoYXJhY3RlcnMiOiAiXHUwM0I1IiB9LAorICAiJkVwc2lsb247IjogeyAiY29kZXBvaW50cyI6IFs5MTddLCAiY2hhcmFjdGVycyI6ICJcdTAzOTUiIH0sCisgICImZXBzaWxvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzk0OV0sICJjaGFyYWN0ZXJzIjogIlx1MDNCNSIgfSwKKyAgIiZlcHNpdjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMTNdLCAiY2hhcmFjdGVycyI6ICJcdTAzRjUiIH0sCisgICImZXFjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbODc5MF0sICJjaGFyYWN0ZXJzIjogIlx1MjI1NiIgfSwKKyAgIiZlcWNvbG9uOyI6IHsgImNvZGVwb2ludHMiOiBbODc4OV0sICJjaGFyYWN0ZXJzIjogIlx1MjI1NSIgfSwKKyAgIiZlcXNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzBdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDIiIH0sCisgICImZXFzbGFudGd0cjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTAyXSwgImNoYXJhY3RlcnMiOiAiXHUyQTk2IiB9LAorICAiJmVxc2xhbnRsZXNzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MDFdLCAiY2hhcmFjdGVycyI6ICJcdTJBOTUiIH0sCisgICImRXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFsxMDg2OV0sICJjaGFyYWN0ZXJzIjogIlx1MkE3NSIgfSwKKyAgIiZlcXVhbHM7IjogeyAiY29kZXBvaW50cyI6IFs2MV0sICJjaGFyYWN0ZXJzIjogIlx1MDAzRCIgfSwKKyAgIiZFcXVhbFRpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbODc3MF0sICJjaGFyYWN0ZXJzIjogIlx1MjI0MiIgfSwKKyAgIiZlcXVlc3Q7IjogeyAiY29kZXBvaW50cyI6IFs4Nzk5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjVGIiB9LAorICAiJkVxdWlsaWJyaXVtOyI6IHsgImNvZGVwb2ludHMiOiBbODY1Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjFDQyIgfSwKKyAgIiZlcXVpdjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDFdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjEiIH0sCisgICImZXF1aXZERDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODcyXSwgImNoYXJhY3RlcnMiOiAiXHUyQTc4IiB9LAorICAiJmVxdnBhcnNsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3MjVdLCAiY2hhcmFjdGVycyI6ICJcdTI5RTUiIH0sCisgICImZXJhcnI7IjogeyAiY29kZXBvaW50cyI6IFsxMDYwOV0sICJjaGFyYWN0ZXJzIjogIlx1Mjk3MSIgfSwKKyAgIiZlckRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODddLCAiY2hhcmFjdGVycyI6ICJcdTIyNTMiIH0sCisgICImZXNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0OTVdLCAiY2hhcmFjdGVycyI6ICJcdTIxMkYiIH0sCisgICImRXNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0OTZdLCAiY2hhcmFjdGVycyI6ICJcdTIxMzAiIH0sCisgICImZXNkb3Q7IjogeyAiY29kZXBvaW50cyI6IFs4Nzg0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjUwIiB9LAorICAiJkVzaW07IjogeyAiY29kZXBvaW50cyI6IFsxMDg2N10sICJjaGFyYWN0ZXJzIjogIlx1MkE3MyIgfSwKKyAgIiZlc2ltOyI6IHsgImNvZGVwb2ludHMiOiBbODc3MF0sICJjaGFyYWN0ZXJzIjogIlx1MjI0MiIgfSwKKyAgIiZFdGE7IjogeyAiY29kZXBvaW50cyI6IFs5MTldLCAiY2hhcmFjdGVycyI6ICJcdTAzOTciIH0sCisgICImZXRhOyI6IHsgImNvZGVwb2ludHMiOiBbOTUxXSwgImNoYXJhY3RlcnMiOiAiXHUwM0I3IiB9LAorICAiJkVUSDsiOiB7ICJjb2RlcG9pbnRzIjogWzIwOF0sICJjaGFyYWN0ZXJzIjogIlx1MDBEMCIgfSwKKyAgIiZFVEgiOiB7ICJjb2RlcG9pbnRzIjogWzIwOF0sICJjaGFyYWN0ZXJzIjogIlx1MDBEMCIgfSwKKyAgIiZldGg7IjogeyAiY29kZXBvaW50cyI6IFsyNDBdLCAiY2hhcmFjdGVycyI6ICJcdTAwRjAiIH0sCisgICImZXRoIjogeyAiY29kZXBvaW50cyI6IFsyNDBdLCAiY2hhcmFjdGVycyI6ICJcdTAwRjAiIH0sCisgICImRXVtbDsiOiB7ICJjb2RlcG9pbnRzIjogWzIwM10sICJjaGFyYWN0ZXJzIjogIlx1MDBDQiIgfSwKKyAgIiZFdW1sIjogeyAiY29kZXBvaW50cyI6IFsyMDNdLCAiY2hhcmFjdGVycyI6ICJcdTAwQ0IiIH0sCisgICImZXVtbDsiOiB7ICJjb2RlcG9pbnRzIjogWzIzNV0sICJjaGFyYWN0ZXJzIjogIlx1MDBFQiIgfSwKKyAgIiZldW1sIjogeyAiY29kZXBvaW50cyI6IFsyMzVdLCAiY2hhcmFjdGVycyI6ICJcdTAwRUIiIH0sCisgICImZXVybzsiOiB7ICJjb2RlcG9pbnRzIjogWzgzNjRdLCAiY2hhcmFjdGVycyI6ICJcdTIwQUMiIH0sCisgICImZXhjbDsiOiB7ICJjb2RlcG9pbnRzIjogWzMzXSwgImNoYXJhY3RlcnMiOiAiXHUwMDIxIiB9LAorICAiJmV4aXN0OyI6IHsgImNvZGVwb2ludHMiOiBbODcwN10sICJjaGFyYWN0ZXJzIjogIlx1MjIwMyIgfSwKKyAgIiZFeGlzdHM7IjogeyAiY29kZXBvaW50cyI6IFs4NzA3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjAzIiB9LAorICAiJmV4cGVjdGF0aW9uOyI6IHsgImNvZGVwb2ludHMiOiBbODQ5Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjEzMCIgfSwKKyAgIiZleHBvbmVudGlhbGU7IjogeyAiY29kZXBvaW50cyI6IFs4NTE5XSwgImNoYXJhY3RlcnMiOiAiXHUyMTQ3IiB9LAorICAiJkV4cG9uZW50aWFsRTsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MTldLCAiY2hhcmFjdGVycyI6ICJcdTIxNDciIH0sCisgICImZmFsbGluZ2RvdHNlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODZdLCAiY2hhcmFjdGVycyI6ICJcdTIyNTIiIH0sCisgICImRmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MF0sICJjaGFyYWN0ZXJzIjogIlx1MDQyNCIgfSwKKyAgIiZmY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDkyXSwgImNoYXJhY3RlcnMiOiAiXHUwNDQ0IiB9LAorICAiJmZlbWFsZTsiOiB7ICJjb2RlcG9pbnRzIjogWzk3OTJdLCAiY2hhcmFjdGVycyI6ICJcdTI2NDAiIH0sCisgICImZmZpbGlnOyI6IHsgImNvZGVwb2ludHMiOiBbNjQyNTldLCAiY2hhcmFjdGVycyI6ICJcdUZCMDMiIH0sCisgICImZmZsaWc7IjogeyAiY29kZXBvaW50cyI6IFs2NDI1Nl0sICJjaGFyYWN0ZXJzIjogIlx1RkIwMCIgfSwKKyAgIiZmZmxsaWc7IjogeyAiY29kZXBvaW50cyI6IFs2NDI2MF0sICJjaGFyYWN0ZXJzIjogIlx1RkIwNCIgfSwKKyAgIiZGZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwNzNdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMDkiIH0sCisgICImZmZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDk5XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDIzIiB9LAorICAiJmZpbGlnOyI6IHsgImNvZGVwb2ludHMiOiBbNjQyNTddLCAiY2hhcmFjdGVycyI6ICJcdUZCMDEiIH0sCisgICImRmlsbGVkU21hbGxTcXVhcmU7IjogeyAiY29kZXBvaW50cyI6IFs5NzI0XSwgImNoYXJhY3RlcnMiOiAiXHUyNUZDIiB9LAorICAiJkZpbGxlZFZlcnlTbWFsbFNxdWFyZTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NDJdLCAiY2hhcmFjdGVycyI6ICJcdTI1QUEiIH0sCisgICImZmpsaWc7IjogeyAiY29kZXBvaW50cyI6IFsxMDIsIDEwNl0sICJjaGFyYWN0ZXJzIjogIlx1MDA2Nlx1MDA2QSIgfSwKKyAgIiZmbGF0OyI6IHsgImNvZGVwb2ludHMiOiBbOTgzN10sICJjaGFyYWN0ZXJzIjogIlx1MjY2RCIgfSwKKyAgIiZmbGxpZzsiOiB7ICJjb2RlcG9pbnRzIjogWzY0MjU4XSwgImNoYXJhY3RlcnMiOiAiXHVGQjAyIiB9LAorICAiJmZsdG5zOyI6IHsgImNvZGVwb2ludHMiOiBbOTY0OV0sICJjaGFyYWN0ZXJzIjogIlx1MjVCMSIgfSwKKyAgIiZmbm9mOyI6IHsgImNvZGVwb2ludHMiOiBbNDAyXSwgImNoYXJhY3RlcnMiOiAiXHUwMTkyIiB9LAorICAiJkZvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMjVdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREM0QiIH0sCisgICImZm9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE1MV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ1NyIgfSwKKyAgIiZmb3JhbGw7IjogeyAiY29kZXBvaW50cyI6IFs4NzA0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjAwIiB9LAorICAiJkZvckFsbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MDRdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDAiIH0sCisgICImZm9yazsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MTZdLCAiY2hhcmFjdGVycyI6ICJcdTIyRDQiIH0sCisgICImZm9ya3Y7IjogeyAiY29kZXBvaW50cyI6IFsxMDk2OV0sICJjaGFyYWN0ZXJzIjogIlx1MkFEOSIgfSwKKyAgIiZGb3VyaWVydHJmOyI6IHsgImNvZGVwb2ludHMiOiBbODQ5N10sICJjaGFyYWN0ZXJzIjogIlx1MjEzMSIgfSwKKyAgIiZmcGFydGludDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzY1XSwgImNoYXJhY3RlcnMiOiAiXHUyQTBEIiB9LAorICAiJmZyYWMxMjsiOiB7ICJjb2RlcG9pbnRzIjogWzE4OV0sICJjaGFyYWN0ZXJzIjogIlx1MDBCRCIgfSwKKyAgIiZmcmFjMTIiOiB7ICJjb2RlcG9pbnRzIjogWzE4OV0sICJjaGFyYWN0ZXJzIjogIlx1MDBCRCIgfSwKKyAgIiZmcmFjMTM7IjogeyAiY29kZXBvaW50cyI6IFs4NTMxXSwgImNoYXJhY3RlcnMiOiAiXHUyMTUzIiB9LAorICAiJmZyYWMxNDsiOiB7ICJjb2RlcG9pbnRzIjogWzE4OF0sICJjaGFyYWN0ZXJzIjogIlx1MDBCQyIgfSwKKyAgIiZmcmFjMTQiOiB7ICJjb2RlcG9pbnRzIjogWzE4OF0sICJjaGFyYWN0ZXJzIjogIlx1MDBCQyIgfSwKKyAgIiZmcmFjMTU7IjogeyAiY29kZXBvaW50cyI6IFs4NTMzXSwgImNoYXJhY3RlcnMiOiAiXHUyMTU1IiB9LAorICAiJmZyYWMxNjsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MzddLCAiY2hhcmFjdGVycyI6ICJcdTIxNTkiIH0sCisgICImZnJhYzE4OyI6IHsgImNvZGVwb2ludHMiOiBbODUzOV0sICJjaGFyYWN0ZXJzIjogIlx1MjE1QiIgfSwKKyAgIiZmcmFjMjM7IjogeyAiY29kZXBvaW50cyI6IFs4NTMyXSwgImNoYXJhY3RlcnMiOiAiXHUyMTU0IiB9LAorICAiJmZyYWMyNTsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MzRdLCAiY2hhcmFjdGVycyI6ICJcdTIxNTYiIH0sCisgICImZnJhYzM0OyI6IHsgImNvZGVwb2ludHMiOiBbMTkwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEJFIiB9LAorICAiJmZyYWMzNCI6IHsgImNvZGVwb2ludHMiOiBbMTkwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEJFIiB9LAorICAiJmZyYWMzNTsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MzVdLCAiY2hhcmFjdGVycyI6ICJcdTIxNTciIH0sCisgICImZnJhYzM4OyI6IHsgImNvZGVwb2ludHMiOiBbODU0MF0sICJjaGFyYWN0ZXJzIjogIlx1MjE1QyIgfSwKKyAgIiZmcmFjNDU7IjogeyAiY29kZXBvaW50cyI6IFs4NTM2XSwgImNoYXJhY3RlcnMiOiAiXHUyMTU4IiB9LAorICAiJmZyYWM1NjsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MzhdLCAiY2hhcmFjdGVycyI6ICJcdTIxNUEiIH0sCisgICImZnJhYzU4OyI6IHsgImNvZGVwb2ludHMiOiBbODU0MV0sICJjaGFyYWN0ZXJzIjogIlx1MjE1RCIgfSwKKyAgIiZmcmFjNzg7IjogeyAiY29kZXBvaW50cyI6IFs4NTQyXSwgImNoYXJhY3RlcnMiOiAiXHUyMTVFIiB9LAorICAiJmZyYXNsOyI6IHsgImNvZGVwb2ludHMiOiBbODI2MF0sICJjaGFyYWN0ZXJzIjogIlx1MjA0NCIgfSwKKyAgIiZmcm93bjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5OTRdLCAiY2hhcmFjdGVycyI6ICJcdTIzMjIiIH0sCisgICImZnNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk5NV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENCQiIgfSwKKyAgIiZGc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbODQ5N10sICJjaGFyYWN0ZXJzIjogIlx1MjEzMSIgfSwKKyAgIiZnYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFs1MDFdLCAiY2hhcmFjdGVycyI6ICJcdTAxRjUiIH0sCisgICImR2FtbWE7IjogeyAiY29kZXBvaW50cyI6IFs5MTVdLCAiY2hhcmFjdGVycyI6ICJcdTAzOTMiIH0sCisgICImZ2FtbWE7IjogeyAiY29kZXBvaW50cyI6IFs5NDddLCAiY2hhcmFjdGVycyI6ICJcdTAzQjMiIH0sCisgICImR2FtbWFkOyI6IHsgImNvZGVwb2ludHMiOiBbOTg4XSwgImNoYXJhY3RlcnMiOiAiXHUwM0RDIiB9LAorICAiJmdhbW1hZDsiOiB7ICJjb2RlcG9pbnRzIjogWzk4OV0sICJjaGFyYWN0ZXJzIjogIlx1MDNERCIgfSwKKyAgIiZnYXA7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4Nl0sICJjaGFyYWN0ZXJzIjogIlx1MkE4NiIgfSwKKyAgIiZHYnJldmU7IjogeyAiY29kZXBvaW50cyI6IFsyODZdLCAiY2hhcmFjdGVycyI6ICJcdTAxMUUiIH0sCisgICImZ2JyZXZlOyI6IHsgImNvZGVwb2ludHMiOiBbMjg3XSwgImNoYXJhY3RlcnMiOiAiXHUwMTFGIiB9LAorICAiJkdjZWRpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzI5MF0sICJjaGFyYWN0ZXJzIjogIlx1MDEyMiIgfSwKKyAgIiZHY2lyYzsiOiB7ICJjb2RlcG9pbnRzIjogWzI4NF0sICJjaGFyYWN0ZXJzIjogIlx1MDExQyIgfSwKKyAgIiZnY2lyYzsiOiB7ICJjb2RlcG9pbnRzIjogWzI4NV0sICJjaGFyYWN0ZXJzIjogIlx1MDExRCIgfSwKKyAgIiZHY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDQzXSwgImNoYXJhY3RlcnMiOiAiXHUwNDEzIiB9LAorICAiJmdjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzVdLCAiY2hhcmFjdGVycyI6ICJcdTA0MzMiIH0sCisgICImR2RvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzI4OF0sICJjaGFyYWN0ZXJzIjogIlx1MDEyMCIgfSwKKyAgIiZnZG90OyI6IHsgImNvZGVwb2ludHMiOiBbMjg5XSwgImNoYXJhY3RlcnMiOiAiXHUwMTIxIiB9LAorICAiJmdlOyI6IHsgImNvZGVwb2ludHMiOiBbODgwNV0sICJjaGFyYWN0ZXJzIjogIlx1MjI2NSIgfSwKKyAgIiZnRTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDddLCAiY2hhcmFjdGVycyI6ICJcdTIyNjciIH0sCisgICImZ0VsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4OTJdLCAiY2hhcmFjdGVycyI6ICJcdTJBOEMiIH0sCisgICImZ2VsOyI6IHsgImNvZGVwb2ludHMiOiBbODkyM10sICJjaGFyYWN0ZXJzIjogIlx1MjJEQiIgfSwKKyAgIiZnZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODA1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY1IiB9LAorICAiJmdlcXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODA3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY3IiB9LAorICAiJmdlcXNsYW50OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NzhdLCAiY2hhcmFjdGVycyI6ICJcdTJBN0UiIH0sCisgICImZ2VzY2M7IjogeyAiY29kZXBvaW50cyI6IFsxMDkyMV0sICJjaGFyYWN0ZXJzIjogIlx1MkFBOSIgfSwKKyAgIiZnZXM7IjogeyAiY29kZXBvaW50cyI6IFsxMDg3OF0sICJjaGFyYWN0ZXJzIjogIlx1MkE3RSIgfSwKKyAgIiZnZXNkb3Q7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4MF0sICJjaGFyYWN0ZXJzIjogIlx1MkE4MCIgfSwKKyAgIiZnZXNkb3RvOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4ODJdLCAiY2hhcmFjdGVycyI6ICJcdTJBODIiIH0sCisgICImZ2VzZG90b2w7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4NF0sICJjaGFyYWN0ZXJzIjogIlx1MkE4NCIgfSwKKyAgIiZnZXNsOyI6IHsgImNvZGVwb2ludHMiOiBbODkyMywgNjUwMjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyREJcdUZFMDAiIH0sCisgICImZ2VzbGVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MDBdLCAiY2hhcmFjdGVycyI6ICJcdTJBOTQiIH0sCisgICImR2ZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDc0XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDBBIiB9LAorICAiJmdmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDEwMF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQyNCIgfSwKKyAgIiZnZzsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTFdLCAiY2hhcmFjdGVycyI6ICJcdTIyNkIiIH0sCisgICImR2c7IjogeyAiY29kZXBvaW50cyI6IFs4OTIxXSwgImNoYXJhY3RlcnMiOiAiXHUyMkQ5IiB9LAorICAiJmdnZzsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MjFdLCAiY2hhcmFjdGVycyI6ICJcdTIyRDkiIH0sCisgICImZ2ltZWw7IjogeyAiY29kZXBvaW50cyI6IFs4NTAzXSwgImNoYXJhY3RlcnMiOiAiXHUyMTM3IiB9LAorICAiJkdKY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDI3XSwgImNoYXJhY3RlcnMiOiAiXHUwNDAzIiB9LAorICAiJmdqY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTA3XSwgImNoYXJhY3RlcnMiOiAiXHUwNDUzIiB9LAorICAiJmdsYTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTE3XSwgImNoYXJhY3RlcnMiOiAiXHUyQUE1IiB9LAorICAiJmdsOyI6IHsgImNvZGVwb2ludHMiOiBbODgyM10sICJjaGFyYWN0ZXJzIjogIlx1MjI3NyIgfSwKKyAgIiZnbEU7IjogeyAiY29kZXBvaW50cyI6IFsxMDg5OF0sICJjaGFyYWN0ZXJzIjogIlx1MkE5MiIgfSwKKyAgIiZnbGo7IjogeyAiY29kZXBvaW50cyI6IFsxMDkxNl0sICJjaGFyYWN0ZXJzIjogIlx1MkFBNCIgfSwKKyAgIiZnbmFwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4OTBdLCAiY2hhcmFjdGVycyI6ICJcdTJBOEEiIH0sCisgICImZ25hcHByb3g7IjogeyAiY29kZXBvaW50cyI6IFsxMDg5MF0sICJjaGFyYWN0ZXJzIjogIlx1MkE4QSIgfSwKKyAgIiZnbmU7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4OF0sICJjaGFyYWN0ZXJzIjogIlx1MkE4OCIgfSwKKyAgIiZnbkU7IjogeyAiY29kZXBvaW50cyI6IFs4ODA5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY5IiB9LAorICAiJmduZXE7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4OF0sICJjaGFyYWN0ZXJzIjogIlx1MkE4OCIgfSwKKyAgIiZnbmVxcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDldLCAiY2hhcmFjdGVycyI6ICJcdTIyNjkiIH0sCisgICImZ25zaW07IjogeyAiY29kZXBvaW50cyI6IFs4OTM1XSwgImNoYXJhY3RlcnMiOiAiXHUyMkU3IiB9LAorICAiJkdvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMjZdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREM0UiIH0sCisgICImZ29wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE1Ml0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ1OCIgfSwKKyAgIiZncmF2ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2XSwgImNoYXJhY3RlcnMiOiAiXHUwMDYwIiB9LAorICAiJkdyZWF0ZXJFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDVdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjUiIH0sCisgICImR3JlYXRlckVxdWFsTGVzczsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MjNdLCAiY2hhcmFjdGVycyI6ICJcdTIyREIiIH0sCisgICImR3JlYXRlckZ1bGxFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDddLCAiY2hhcmFjdGVycyI6ICJcdTIyNjciIH0sCisgICImR3JlYXRlckdyZWF0ZXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDkxNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFBMiIgfSwKKyAgIiZHcmVhdGVyTGVzczsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MjNdLCAiY2hhcmFjdGVycyI6ICJcdTIyNzciIH0sCisgICImR3JlYXRlclNsYW50RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFsxMDg3OF0sICJjaGFyYWN0ZXJzIjogIlx1MkE3RSIgfSwKKyAgIiZHcmVhdGVyVGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFs4ODE5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjczIiB9LAorICAiJkdzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMTk5NzBdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQTIiIH0sCisgICImZ3NjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NThdLCAiY2hhcmFjdGVycyI6ICJcdTIxMEEiIH0sCisgICImZ3NpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTldLCAiY2hhcmFjdGVycyI6ICJcdTIyNzMiIH0sCisgICImZ3NpbWU7IjogeyAiY29kZXBvaW50cyI6IFsxMDg5NF0sICJjaGFyYWN0ZXJzIjogIlx1MkE4RSIgfSwKKyAgIiZnc2ltbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODk2XSwgImNoYXJhY3RlcnMiOiAiXHUyQTkwIiB9LAorICAiJmd0Y2M7IjogeyAiY29kZXBvaW50cyI6IFsxMDkxOV0sICJjaGFyYWN0ZXJzIjogIlx1MkFBNyIgfSwKKyAgIiZndGNpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODc0XSwgImNoYXJhY3RlcnMiOiAiXHUyQTdBIiB9LAorICAiJmd0OyI6IHsgImNvZGVwb2ludHMiOiBbNjJdLCAiY2hhcmFjdGVycyI6ICJcdTAwM0UiIH0sCisgICImZ3QiOiB7ICJjb2RlcG9pbnRzIjogWzYyXSwgImNoYXJhY3RlcnMiOiAiXHUwMDNFIiB9LAorICAiJkdUOyI6IHsgImNvZGVwb2ludHMiOiBbNjJdLCAiY2hhcmFjdGVycyI6ICJcdTAwM0UiIH0sCisgICImR1QiOiB7ICJjb2RlcG9pbnRzIjogWzYyXSwgImNoYXJhY3RlcnMiOiAiXHUwMDNFIiB9LAorICAiJkd0OyI6IHsgImNvZGVwb2ludHMiOiBbODgxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjI2QiIgfSwKKyAgIiZndGRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MTldLCAiY2hhcmFjdGVycyI6ICJcdTIyRDciIH0sCisgICImZ3RsUGFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NDVdLCAiY2hhcmFjdGVycyI6ICJcdTI5OTUiIH0sCisgICImZ3RxdWVzdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODc2XSwgImNoYXJhY3RlcnMiOiAiXHUyQTdDIiB9LAorICAiJmd0cmFwcHJveDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODg2XSwgImNoYXJhY3RlcnMiOiAiXHUyQTg2IiB9LAorICAiJmd0cmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjE2XSwgImNoYXJhY3RlcnMiOiAiXHUyOTc4IiB9LAorICAiJmd0cmRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MTldLCAiY2hhcmFjdGVycyI6ICJcdTIyRDciIH0sCisgICImZ3RyZXFsZXNzOyI6IHsgImNvZGVwb2ludHMiOiBbODkyM10sICJjaGFyYWN0ZXJzIjogIlx1MjJEQiIgfSwKKyAgIiZndHJlcXFsZXNzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4OTJdLCAiY2hhcmFjdGVycyI6ICJcdTJBOEMiIH0sCisgICImZ3RybGVzczsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MjNdLCAiY2hhcmFjdGVycyI6ICJcdTIyNzciIH0sCisgICImZ3Ryc2ltOyI6IHsgImNvZGVwb2ludHMiOiBbODgxOV0sICJjaGFyYWN0ZXJzIjogIlx1MjI3MyIgfSwKKyAgIiZndmVydG5lcXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODA5LCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI2OVx1RkUwMCIgfSwKKyAgIiZndm5FOyI6IHsgImNvZGVwb2ludHMiOiBbODgwOSwgNjUwMjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjlcdUZFMDAiIH0sCisgICImSGFjZWs7IjogeyAiY29kZXBvaW50cyI6IFs3MTFdLCAiY2hhcmFjdGVycyI6ICJcdTAyQzciIH0sCisgICImaGFpcnNwOyI6IHsgImNvZGVwb2ludHMiOiBbODIwMl0sICJjaGFyYWN0ZXJzIjogIlx1MjAwQSIgfSwKKyAgIiZoYWxmOyI6IHsgImNvZGVwb2ludHMiOiBbMTg5XSwgImNoYXJhY3RlcnMiOiAiXHUwMEJEIiB9LAorICAiJmhhbWlsdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NTldLCAiY2hhcmFjdGVycyI6ICJcdTIxMEIiIH0sCisgICImSEFSRGN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDQyQSIgfSwKKyAgIiZoYXJkY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDk4XSwgImNoYXJhY3RlcnMiOiAiXHUwNDRBIiB9LAorICAiJmhhcnJjaXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU2OF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk0OCIgfSwKKyAgIiZoYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODU5Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjE5NCIgfSwKKyAgIiZoQXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY2MF0sICJjaGFyYWN0ZXJzIjogIlx1MjFENCIgfSwKKyAgIiZoYXJydzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MjFdLCAiY2hhcmFjdGVycyI6ICJcdTIxQUQiIH0sCisgICImSGF0OyI6IHsgImNvZGVwb2ludHMiOiBbOTRdLCAiY2hhcmFjdGVycyI6ICJcdTAwNUUiIH0sCisgICImaGJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjNdLCAiY2hhcmFjdGVycyI6ICJcdTIxMEYiIH0sCisgICImSGNpcmM7IjogeyAiY29kZXBvaW50cyI6IFsyOTJdLCAiY2hhcmFjdGVycyI6ICJcdTAxMjQiIH0sCisgICImaGNpcmM7IjogeyAiY29kZXBvaW50cyI6IFsyOTNdLCAiY2hhcmFjdGVycyI6ICJcdTAxMjUiIH0sCisgICImaGVhcnRzOyI6IHsgImNvZGVwb2ludHMiOiBbOTgyOV0sICJjaGFyYWN0ZXJzIjogIlx1MjY2NSIgfSwKKyAgIiZoZWFydHN1aXQ7IjogeyAiY29kZXBvaW50cyI6IFs5ODI5XSwgImNoYXJhY3RlcnMiOiAiXHUyNjY1IiB9LAorICAiJmhlbGxpcDsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMzBdLCAiY2hhcmFjdGVycyI6ICJcdTIwMjYiIH0sCisgICImaGVyY29uOyI6IHsgImNvZGVwb2ludHMiOiBbODg4OV0sICJjaGFyYWN0ZXJzIjogIlx1MjJCOSIgfSwKKyAgIiZoZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMDFdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMjUiIH0sCisgICImSGZyOyI6IHsgImNvZGVwb2ludHMiOiBbODQ2MF0sICJjaGFyYWN0ZXJzIjogIlx1MjEwQyIgfSwKKyAgIiZIaWxiZXJ0U3BhY2U7IjogeyAiY29kZXBvaW50cyI6IFs4NDU5XSwgImNoYXJhY3RlcnMiOiAiXHUyMTBCIiB9LAorICAiJmhrc2Vhcm93OyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MzNdLCAiY2hhcmFjdGVycyI6ICJcdTI5MjUiIH0sCisgICImaGtzd2Fyb3c7IjogeyAiY29kZXBvaW50cyI6IFsxMDUzNF0sICJjaGFyYWN0ZXJzIjogIlx1MjkyNiIgfSwKKyAgIiZob2FycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MDNdLCAiY2hhcmFjdGVycyI6ICJcdTIxRkYiIH0sCisgICImaG9tdGh0OyI6IHsgImNvZGVwb2ludHMiOiBbODc2M10sICJjaGFyYWN0ZXJzIjogIlx1MjIzQiIgfSwKKyAgIiZob29rbGVmdGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODYxN10sICJjaGFyYWN0ZXJzIjogIlx1MjFBOSIgfSwKKyAgIiZob29rcmlnaHRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MThdLCAiY2hhcmFjdGVycyI6ICJcdTIxQUEiIH0sCisgICImaG9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE1M10sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ1OSIgfSwKKyAgIiZIb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbODQ2MV0sICJjaGFyYWN0ZXJzIjogIlx1MjEwRCIgfSwKKyAgIiZob3JiYXI7IjogeyAiY29kZXBvaW50cyI6IFs4MjEzXSwgImNoYXJhY3RlcnMiOiAiXHUyMDE1IiB9LAorICAiJkhvcml6b250YWxMaW5lOyI6IHsgImNvZGVwb2ludHMiOiBbOTQ3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjUwMCIgfSwKKyAgIiZoc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTk3XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0JEIiB9LAorICAiJkhzY3I7IjogeyAiY29kZXBvaW50cyI6IFs4NDU5XSwgImNoYXJhY3RlcnMiOiAiXHUyMTBCIiB9LAorICAiJmhzbGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjNdLCAiY2hhcmFjdGVycyI6ICJcdTIxMEYiIH0sCisgICImSHN0cm9rOyI6IHsgImNvZGVwb2ludHMiOiBbMjk0XSwgImNoYXJhY3RlcnMiOiAiXHUwMTI2IiB9LAorICAiJmhzdHJvazsiOiB7ICJjb2RlcG9pbnRzIjogWzI5NV0sICJjaGFyYWN0ZXJzIjogIlx1MDEyNyIgfSwKKyAgIiZIdW1wRG93bkh1bXA7IjogeyAiY29kZXBvaW50cyI6IFs4NzgyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjRFIiB9LAorICAiJkh1bXBFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODNdLCAiY2hhcmFjdGVycyI6ICJcdTIyNEYiIH0sCisgICImaHlidWxsOyI6IHsgImNvZGVwb2ludHMiOiBbODI1OV0sICJjaGFyYWN0ZXJzIjogIlx1MjA0MyIgfSwKKyAgIiZoeXBoZW47IjogeyAiY29kZXBvaW50cyI6IFs4MjA4XSwgImNoYXJhY3RlcnMiOiAiXHUyMDEwIiB9LAorICAiJklhY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzIwNV0sICJjaGFyYWN0ZXJzIjogIlx1MDBDRCIgfSwKKyAgIiZJYWN1dGUiOiB7ICJjb2RlcG9pbnRzIjogWzIwNV0sICJjaGFyYWN0ZXJzIjogIlx1MDBDRCIgfSwKKyAgIiZpYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFsyMzddLCAiY2hhcmFjdGVycyI6ICJcdTAwRUQiIH0sCisgICImaWFjdXRlIjogeyAiY29kZXBvaW50cyI6IFsyMzddLCAiY2hhcmFjdGVycyI6ICJcdTAwRUQiIH0sCisgICImaWM7IjogeyAiY29kZXBvaW50cyI6IFs4MjkxXSwgImNoYXJhY3RlcnMiOiAiXHUyMDYzIiB9LAorICAiJkljaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMjA2XSwgImNoYXJhY3RlcnMiOiAiXHUwMENFIiB9LAorICAiJkljaXJjIjogeyAiY29kZXBvaW50cyI6IFsyMDZdLCAiY2hhcmFjdGVycyI6ICJcdTAwQ0UiIH0sCisgICImaWNpcmM7IjogeyAiY29kZXBvaW50cyI6IFsyMzhdLCAiY2hhcmFjdGVycyI6ICJcdTAwRUUiIH0sCisgICImaWNpcmMiOiB7ICJjb2RlcG9pbnRzIjogWzIzOF0sICJjaGFyYWN0ZXJzIjogIlx1MDBFRSIgfSwKKyAgIiZJY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDQ4XSwgImNoYXJhY3RlcnMiOiAiXHUwNDE4IiB9LAorICAiJmljeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODBdLCAiY2hhcmFjdGVycyI6ICJcdTA0MzgiIH0sCisgICImSWRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzMwNF0sICJjaGFyYWN0ZXJzIjogIlx1MDEzMCIgfSwKKyAgIiZJRWN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA0NV0sICJjaGFyYWN0ZXJzIjogIlx1MDQxNSIgfSwKKyAgIiZpZWN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA3N10sICJjaGFyYWN0ZXJzIjogIlx1MDQzNSIgfSwKKyAgIiZpZXhjbDsiOiB7ICJjb2RlcG9pbnRzIjogWzE2MV0sICJjaGFyYWN0ZXJzIjogIlx1MDBBMSIgfSwKKyAgIiZpZXhjbCI6IHsgImNvZGVwb2ludHMiOiBbMTYxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEExIiB9LAorICAiJmlmZjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjBdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDQiIH0sCisgICImaWZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTAyXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDI2IiB9LAorICAiJklmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjVdLCAiY2hhcmFjdGVycyI6ICJcdTIxMTEiIH0sCisgICImSWdyYXZlOyI6IHsgImNvZGVwb2ludHMiOiBbMjA0XSwgImNoYXJhY3RlcnMiOiAiXHUwMENDIiB9LAorICAiJklncmF2ZSI6IHsgImNvZGVwb2ludHMiOiBbMjA0XSwgImNoYXJhY3RlcnMiOiAiXHUwMENDIiB9LAorICAiJmlncmF2ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzIzNl0sICJjaGFyYWN0ZXJzIjogIlx1MDBFQyIgfSwKKyAgIiZpZ3JhdmUiOiB7ICJjb2RlcG9pbnRzIjogWzIzNl0sICJjaGFyYWN0ZXJzIjogIlx1MDBFQyIgfSwKKyAgIiZpaTsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MjBdLCAiY2hhcmFjdGVycyI6ICJcdTIxNDgiIH0sCisgICImaWlpaW50OyI6IHsgImNvZGVwb2ludHMiOiBbMTA3NjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBMEMiIH0sCisgICImaWlpbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzQ5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjJEIiB9LAorICAiJmlpbmZpbjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzE2XSwgImNoYXJhY3RlcnMiOiAiXHUyOURDIiB9LAorICAiJmlpb3RhOyI6IHsgImNvZGVwb2ludHMiOiBbODQ4OV0sICJjaGFyYWN0ZXJzIjogIlx1MjEyOSIgfSwKKyAgIiZJSmxpZzsiOiB7ICJjb2RlcG9pbnRzIjogWzMwNl0sICJjaGFyYWN0ZXJzIjogIlx1MDEzMiIgfSwKKyAgIiZpamxpZzsiOiB7ICJjb2RlcG9pbnRzIjogWzMwN10sICJjaGFyYWN0ZXJzIjogIlx1MDEzMyIgfSwKKyAgIiZJbWFjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzI5OF0sICJjaGFyYWN0ZXJzIjogIlx1MDEyQSIgfSwKKyAgIiZpbWFjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzI5OV0sICJjaGFyYWN0ZXJzIjogIlx1MDEyQiIgfSwKKyAgIiZpbWFnZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjVdLCAiY2hhcmFjdGVycyI6ICJcdTIxMTEiIH0sCisgICImSW1hZ2luYXJ5STsiOiB7ICJjb2RlcG9pbnRzIjogWzg1MjBdLCAiY2hhcmFjdGVycyI6ICJcdTIxNDgiIH0sCisgICImaW1hZ2xpbmU7IjogeyAiY29kZXBvaW50cyI6IFs4NDY0XSwgImNoYXJhY3RlcnMiOiAiXHUyMTEwIiB9LAorICAiJmltYWdwYXJ0OyI6IHsgImNvZGVwb2ludHMiOiBbODQ2NV0sICJjaGFyYWN0ZXJzIjogIlx1MjExMSIgfSwKKyAgIiZpbWF0aDsiOiB7ICJjb2RlcG9pbnRzIjogWzMwNV0sICJjaGFyYWN0ZXJzIjogIlx1MDEzMSIgfSwKKyAgIiZJbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjVdLCAiY2hhcmFjdGVycyI6ICJcdTIxMTEiIH0sCisgICImaW1vZjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODddLCAiY2hhcmFjdGVycyI6ICJcdTIyQjciIH0sCisgICImaW1wZWQ7IjogeyAiY29kZXBvaW50cyI6IFs0MzddLCAiY2hhcmFjdGVycyI6ICJcdTAxQjUiIH0sCisgICImSW1wbGllczsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NThdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDIiIH0sCisgICImaW5jYXJlOyI6IHsgImNvZGVwb2ludHMiOiBbODQ1M10sICJjaGFyYWN0ZXJzIjogIlx1MjEwNSIgfSwKKyAgIiZpbjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MTJdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDgiIH0sCisgICImaW5maW47IjogeyAiY29kZXBvaW50cyI6IFs4NzM0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjFFIiB9LAorICAiJmluZmludGllOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3MTddLCAiY2hhcmFjdGVycyI6ICJcdTI5REQiIH0sCisgICImaW5vZG90OyI6IHsgImNvZGVwb2ludHMiOiBbMzA1XSwgImNoYXJhY3RlcnMiOiAiXHUwMTMxIiB9LAorICAiJmludGNhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4OTBdLCAiY2hhcmFjdGVycyI6ICJcdTIyQkEiIH0sCisgICImaW50OyI6IHsgImNvZGVwb2ludHMiOiBbODc0N10sICJjaGFyYWN0ZXJzIjogIlx1MjIyQiIgfSwKKyAgIiZJbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzQ4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjJDIiB9LAorICAiJmludGVnZXJzOyI6IHsgImNvZGVwb2ludHMiOiBbODQ4NF0sICJjaGFyYWN0ZXJzIjogIlx1MjEyNCIgfSwKKyAgIiZJbnRlZ3JhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDddLCAiY2hhcmFjdGVycyI6ICJcdTIyMkIiIH0sCisgICImaW50ZXJjYWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODkwXSwgImNoYXJhY3RlcnMiOiAiXHUyMkJBIiB9LAorICAiJkludGVyc2VjdGlvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4OThdLCAiY2hhcmFjdGVycyI6ICJcdTIyQzIiIH0sCisgICImaW50bGFyaGs7IjogeyAiY29kZXBvaW50cyI6IFsxMDc3NV0sICJjaGFyYWN0ZXJzIjogIlx1MkExNyIgfSwKKyAgIiZpbnRwcm9kOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MTJdLCAiY2hhcmFjdGVycyI6ICJcdTJBM0MiIH0sCisgICImSW52aXNpYmxlQ29tbWE7IjogeyAiY29kZXBvaW50cyI6IFs4MjkxXSwgImNoYXJhY3RlcnMiOiAiXHUyMDYzIiB9LAorICAiJkludmlzaWJsZVRpbWVzOyI6IHsgImNvZGVwb2ludHMiOiBbODI5MF0sICJjaGFyYWN0ZXJzIjogIlx1MjA2MiIgfSwKKyAgIiZJT2N5OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyNV0sICJjaGFyYWN0ZXJzIjogIlx1MDQwMSIgfSwKKyAgIiZpb2N5OyI6IHsgImNvZGVwb2ludHMiOiBbMTEwNV0sICJjaGFyYWN0ZXJzIjogIlx1MDQ1MSIgfSwKKyAgIiZJb2dvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzMwMl0sICJjaGFyYWN0ZXJzIjogIlx1MDEyRSIgfSwKKyAgIiZpb2dvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzMwM10sICJjaGFyYWN0ZXJzIjogIlx1MDEyRiIgfSwKKyAgIiZJb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTI4XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDQwIiB9LAorICAiJmlvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNTRdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENUEiIH0sCisgICImSW90YTsiOiB7ICJjb2RlcG9pbnRzIjogWzkyMV0sICJjaGFyYWN0ZXJzIjogIlx1MDM5OSIgfSwKKyAgIiZpb3RhOyI6IHsgImNvZGVwb2ludHMiOiBbOTUzXSwgImNoYXJhY3RlcnMiOiAiXHUwM0I5IiB9LAorICAiJmlwcm9kOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MTJdLCAiY2hhcmFjdGVycyI6ICJcdTJBM0MiIH0sCisgICImaXF1ZXN0OyI6IHsgImNvZGVwb2ludHMiOiBbMTkxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEJGIiB9LAorICAiJmlxdWVzdCI6IHsgImNvZGVwb2ludHMiOiBbMTkxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEJGIiB9LAorICAiJmlzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMTk5OThdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQkUiIH0sCisgICImSXNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjRdLCAiY2hhcmFjdGVycyI6ICJcdTIxMTAiIH0sCisgICImaXNpbjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MTJdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDgiIH0sCisgICImaXNpbmRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NDldLCAiY2hhcmFjdGVycyI6ICJcdTIyRjUiIH0sCisgICImaXNpbkU7IjogeyAiY29kZXBvaW50cyI6IFs4OTUzXSwgImNoYXJhY3RlcnMiOiAiXHUyMkY5IiB9LAorICAiJmlzaW5zOyI6IHsgImNvZGVwb2ludHMiOiBbODk0OF0sICJjaGFyYWN0ZXJzIjogIlx1MjJGNCIgfSwKKyAgIiZpc2luc3Y7IjogeyAiY29kZXBvaW50cyI6IFs4OTQ3XSwgImNoYXJhY3RlcnMiOiAiXHUyMkYzIiB9LAorICAiJmlzaW52OyI6IHsgImNvZGVwb2ludHMiOiBbODcxMl0sICJjaGFyYWN0ZXJzIjogIlx1MjIwOCIgfSwKKyAgIiZpdDsiOiB7ICJjb2RlcG9pbnRzIjogWzgyOTBdLCAiY2hhcmFjdGVycyI6ICJcdTIwNjIiIH0sCisgICImSXRpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjk2XSwgImNoYXJhY3RlcnMiOiAiXHUwMTI4IiB9LAorICAiJml0aWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzI5N10sICJjaGFyYWN0ZXJzIjogIlx1MDEyOSIgfSwKKyAgIiZJdWtjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMzBdLCAiY2hhcmFjdGVycyI6ICJcdTA0MDYiIH0sCisgICImaXVrY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTEwXSwgImNoYXJhY3RlcnMiOiAiXHUwNDU2IiB9LAorICAiJkl1bWw7IjogeyAiY29kZXBvaW50cyI6IFsyMDddLCAiY2hhcmFjdGVycyI6ICJcdTAwQ0YiIH0sCisgICImSXVtbCI6IHsgImNvZGVwb2ludHMiOiBbMjA3XSwgImNoYXJhY3RlcnMiOiAiXHUwMENGIiB9LAorICAiJml1bWw7IjogeyAiY29kZXBvaW50cyI6IFsyMzldLCAiY2hhcmFjdGVycyI6ICJcdTAwRUYiIH0sCisgICImaXVtbCI6IHsgImNvZGVwb2ludHMiOiBbMjM5XSwgImNoYXJhY3RlcnMiOiAiXHUwMEVGIiB9LAorICAiJkpjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMzA4XSwgImNoYXJhY3RlcnMiOiAiXHUwMTM0IiB9LAorICAiJmpjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMzA5XSwgImNoYXJhY3RlcnMiOiAiXHUwMTM1IiB9LAorICAiJkpjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNDldLCAiY2hhcmFjdGVycyI6ICJcdTA0MTkiIH0sCisgICImamN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MV0sICJjaGFyYWN0ZXJzIjogIlx1MDQzOSIgfSwKKyAgIiZKZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwNzddLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMEQiIH0sCisgICImamZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTAzXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDI3IiB9LAorICAiJmptYXRoOyI6IHsgImNvZGVwb2ludHMiOiBbNTY3XSwgImNoYXJhY3RlcnMiOiAiXHUwMjM3IiB9LAorICAiJkpvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMjldLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENDEiIH0sCisgICImam9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE1NV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ1QiIgfSwKKyAgIiZKc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTczXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0E1IiB9LAorICAiJmpzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMTk5OTldLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQkYiIH0sCisgICImSnNlcmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTAzMl0sICJjaGFyYWN0ZXJzIjogIlx1MDQwOCIgfSwKKyAgIiZqc2VyY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTEyXSwgImNoYXJhY3RlcnMiOiAiXHUwNDU4IiB9LAorICAiJkp1a2N5OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyOF0sICJjaGFyYWN0ZXJzIjogIlx1MDQwNCIgfSwKKyAgIiZqdWtjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzExMDhdLCAiY2hhcmFjdGVycyI6ICJcdTA0NTQiIH0sCisgICImS2FwcGE7IjogeyAiY29kZXBvaW50cyI6IFs5MjJdLCAiY2hhcmFjdGVycyI6ICJcdTAzOUEiIH0sCisgICIma2FwcGE7IjogeyAiY29kZXBvaW50cyI6IFs5NTRdLCAiY2hhcmFjdGVycyI6ICJcdTAzQkEiIH0sCisgICIma2FwcGF2OyI6IHsgImNvZGVwb2ludHMiOiBbMTAwOF0sICJjaGFyYWN0ZXJzIjogIlx1MDNGMCIgfSwKKyAgIiZLY2VkaWw7IjogeyAiY29kZXBvaW50cyI6IFszMTBdLCAiY2hhcmFjdGVycyI6ICJcdTAxMzYiIH0sCisgICIma2NlZGlsOyI6IHsgImNvZGVwb2ludHMiOiBbMzExXSwgImNoYXJhY3RlcnMiOiAiXHUwMTM3IiB9LAorICAiJktjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTBdLCAiY2hhcmFjdGVycyI6ICJcdTA0MUEiIH0sCisgICIma2N5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDQzQSIgfSwKKyAgIiZLZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwNzhdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMEUiIH0sCisgICIma2ZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTA0XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDI4IiB9LAorICAiJmtncmVlbjsiOiB7ICJjb2RlcG9pbnRzIjogWzMxMl0sICJjaGFyYWN0ZXJzIjogIlx1MDEzOCIgfSwKKyAgIiZLSGN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MV0sICJjaGFyYWN0ZXJzIjogIlx1MDQyNSIgfSwKKyAgIiZraGN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5M10sICJjaGFyYWN0ZXJzIjogIlx1MDQ0NSIgfSwKKyAgIiZLSmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTAzNl0sICJjaGFyYWN0ZXJzIjogIlx1MDQwQyIgfSwKKyAgIiZramN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTExNl0sICJjaGFyYWN0ZXJzIjogIlx1MDQ1QyIgfSwKKyAgIiZLb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTMwXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDQyIiB9LAorICAiJmtvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNTZdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENUMiIH0sCisgICImS3NjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk3NF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENBNiIgfSwKKyAgIiZrc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDAwXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0MwIiB9LAorICAiJmxBYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjFEQSIgfSwKKyAgIiZMYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFszMTNdLCAiY2hhcmFjdGVycyI6ICJcdTAxMzkiIH0sCisgICImbGFjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMzE0XSwgImNoYXJhY3RlcnMiOiAiXHUwMTNBIiB9LAorICAiJmxhZW1wdHl2OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NzZdLCAiY2hhcmFjdGVycyI6ICJcdTI5QjQiIH0sCisgICImbGFncmFuOyI6IHsgImNvZGVwb2ludHMiOiBbODQ2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjExMiIgfSwKKyAgIiZMYW1iZGE7IjogeyAiY29kZXBvaW50cyI6IFs5MjNdLCAiY2hhcmFjdGVycyI6ICJcdTAzOUIiIH0sCisgICImbGFtYmRhOyI6IHsgImNvZGVwb2ludHMiOiBbOTU1XSwgImNoYXJhY3RlcnMiOiAiXHUwM0JCIiB9LAorICAiJmxhbmc7IjogeyAiY29kZXBvaW50cyI6IFsxMDIxNl0sICJjaGFyYWN0ZXJzIjogIlx1MjdFOCIgfSwKKyAgIiZMYW5nOyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMThdLCAiY2hhcmFjdGVycyI6ICJcdTI3RUEiIH0sCisgICImbGFuZ2Q7IjogeyAiY29kZXBvaW50cyI6IFsxMDY0MV0sICJjaGFyYWN0ZXJzIjogIlx1Mjk5MSIgfSwKKyAgIiZsYW5nbGU7IjogeyAiY29kZXBvaW50cyI6IFsxMDIxNl0sICJjaGFyYWN0ZXJzIjogIlx1MjdFOCIgfSwKKyAgIiZsYXA7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4NV0sICJjaGFyYWN0ZXJzIjogIlx1MkE4NSIgfSwKKyAgIiZMYXBsYWNldHJmOyI6IHsgImNvZGVwb2ludHMiOiBbODQ2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjExMiIgfSwKKyAgIiZsYXF1bzsiOiB7ICJjb2RlcG9pbnRzIjogWzE3MV0sICJjaGFyYWN0ZXJzIjogIlx1MDBBQiIgfSwKKyAgIiZsYXF1byI6IHsgImNvZGVwb2ludHMiOiBbMTcxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEFCIiB9LAorICAiJmxhcnJiOyI6IHsgImNvZGVwb2ludHMiOiBbODY3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjFFNCIgfSwKKyAgIiZsYXJyYmZzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MjddLCAiY2hhcmFjdGVycyI6ICJcdTI5MUYiIH0sCisgICImbGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OTJdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTAiIH0sCisgICImTGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDZdLCAiY2hhcmFjdGVycyI6ICJcdTIxOUUiIH0sCisgICImbEFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTZdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDAiIH0sCisgICImbGFycmZzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MjVdLCAiY2hhcmFjdGVycyI6ICJcdTI5MUQiIH0sCisgICImbGFycmhrOyI6IHsgImNvZGVwb2ludHMiOiBbODYxN10sICJjaGFyYWN0ZXJzIjogIlx1MjFBOSIgfSwKKyAgIiZsYXJybHA7IjogeyAiY29kZXBvaW50cyI6IFs4NjE5XSwgImNoYXJhY3RlcnMiOiAiXHUyMUFCIiB9LAorICAiJmxhcnJwbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTUzXSwgImNoYXJhY3RlcnMiOiAiXHUyOTM5IiB9LAorICAiJmxhcnJzaW07IjogeyAiY29kZXBvaW50cyI6IFsxMDYxMV0sICJjaGFyYWN0ZXJzIjogIlx1Mjk3MyIgfSwKKyAgIiZsYXJydGw7IjogeyAiY29kZXBvaW50cyI6IFs4NjEwXSwgImNoYXJhY3RlcnMiOiAiXHUyMUEyIiB9LAorICAiJmxhdGFpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTIxXSwgImNoYXJhY3RlcnMiOiAiXHUyOTE5IiB9LAorICAiJmxBdGFpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTIzXSwgImNoYXJhY3RlcnMiOiAiXHUyOTFCIiB9LAorICAiJmxhdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTIzXSwgImNoYXJhY3RlcnMiOiAiXHUyQUFCIiB9LAorICAiJmxhdGU7IjogeyAiY29kZXBvaW50cyI6IFsxMDkyNV0sICJjaGFyYWN0ZXJzIjogIlx1MkFBRCIgfSwKKyAgIiZsYXRlczsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI1LCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFBRFx1RkUwMCIgfSwKKyAgIiZsYmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTA4XSwgImNoYXJhY3RlcnMiOiAiXHUyOTBDIiB9LAorICAiJmxCYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MTBdLCAiY2hhcmFjdGVycyI6ICJcdTI5MEUiIH0sCisgICImbGJicms7IjogeyAiY29kZXBvaW50cyI6IFsxMDA5OF0sICJjaGFyYWN0ZXJzIjogIlx1Mjc3MiIgfSwKKyAgIiZsYnJhY2U7IjogeyAiY29kZXBvaW50cyI6IFsxMjNdLCAiY2hhcmFjdGVycyI6ICJcdTAwN0IiIH0sCisgICImbGJyYWNrOyI6IHsgImNvZGVwb2ludHMiOiBbOTFdLCAiY2hhcmFjdGVycyI6ICJcdTAwNUIiIH0sCisgICImbGJya2U7IjogeyAiY29kZXBvaW50cyI6IFsxMDYzNV0sICJjaGFyYWN0ZXJzIjogIlx1Mjk4QiIgfSwKKyAgIiZsYnJrc2xkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MzldLCAiY2hhcmFjdGVycyI6ICJcdTI5OEYiIH0sCisgICImbGJya3NsdTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjM3XSwgImNoYXJhY3RlcnMiOiAiXHUyOThEIiB9LAorICAiJkxjYXJvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzMxN10sICJjaGFyYWN0ZXJzIjogIlx1MDEzRCIgfSwKKyAgIiZsY2Fyb247IjogeyAiY29kZXBvaW50cyI6IFszMThdLCAiY2hhcmFjdGVycyI6ICJcdTAxM0UiIH0sCisgICImTGNlZGlsOyI6IHsgImNvZGVwb2ludHMiOiBbMzE1XSwgImNoYXJhY3RlcnMiOiAiXHUwMTNCIiB9LAorICAiJmxjZWRpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzMxNl0sICJjaGFyYWN0ZXJzIjogIlx1MDEzQyIgfSwKKyAgIiZsY2VpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NjhdLCAiY2hhcmFjdGVycyI6ICJcdTIzMDgiIH0sCisgICImbGN1YjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyM10sICJjaGFyYWN0ZXJzIjogIlx1MDA3QiIgfSwKKyAgIiZMY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDUxXSwgImNoYXJhY3RlcnMiOiAiXHUwNDFCIiB9LAorICAiJmxjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODNdLCAiY2hhcmFjdGVycyI6ICJcdTA0M0IiIH0sCisgICImbGRjYTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTUwXSwgImNoYXJhY3RlcnMiOiAiXHUyOTM2IiB9LAorICAiJmxkcXVvOyI6IHsgImNvZGVwb2ludHMiOiBbODIyMF0sICJjaGFyYWN0ZXJzIjogIlx1MjAxQyIgfSwKKyAgIiZsZHF1b3I7IjogeyAiY29kZXBvaW50cyI6IFs4MjIyXSwgImNoYXJhY3RlcnMiOiAiXHUyMDFFIiB9LAorICAiJmxkcmRoYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU5OV0sICJjaGFyYWN0ZXJzIjogIlx1Mjk2NyIgfSwKKyAgIiZsZHJ1c2hhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTcxXSwgImNoYXJhY3RlcnMiOiAiXHUyOTRCIiB9LAorICAiJmxkc2g7IjogeyAiY29kZXBvaW50cyI6IFs4NjI2XSwgImNoYXJhY3RlcnMiOiAiXHUyMUIyIiB9LAorICAiJmxlOyI6IHsgImNvZGVwb2ludHMiOiBbODgwNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI2NCIgfSwKKyAgIiZsRTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDZdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjYiIH0sCisgICImTGVmdEFuZ2xlQnJhY2tldDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjE2XSwgImNoYXJhY3RlcnMiOiAiXHUyN0U4IiB9LAorICAiJkxlZnRBcnJvd0JhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NzZdLCAiY2hhcmFjdGVycyI6ICJcdTIxRTQiIH0sCisgICImbGVmdGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjE5MCIgfSwKKyAgIiZMZWZ0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NTkyXSwgImNoYXJhY3RlcnMiOiAiXHUyMTkwIiB9LAorICAiJkxlZnRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTZdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDAiIH0sCisgICImTGVmdEFycm93UmlnaHRBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDZdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzYiIH0sCisgICImbGVmdGFycm93dGFpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MTBdLCAiY2hhcmFjdGVycyI6ICJcdTIxQTIiIH0sCisgICImTGVmdENlaWxpbmc7IjogeyAiY29kZXBvaW50cyI6IFs4OTY4XSwgImNoYXJhY3RlcnMiOiAiXHUyMzA4IiB9LAorICAiJkxlZnREb3VibGVCcmFja2V0OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMTRdLCAiY2hhcmFjdGVycyI6ICJcdTI3RTYiIH0sCisgICImTGVmdERvd25UZWVWZWN0b3I7IjogeyAiY29kZXBvaW50cyI6IFsxMDU5M10sICJjaGFyYWN0ZXJzIjogIlx1Mjk2MSIgfSwKKyAgIiZMZWZ0RG93blZlY3RvckJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTg1XSwgImNoYXJhY3RlcnMiOiAiXHUyOTU5IiB9LAorICAiJkxlZnREb3duVmVjdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbODY0M10sICJjaGFyYWN0ZXJzIjogIlx1MjFDMyIgfSwKKyAgIiZMZWZ0Rmxvb3I7IjogeyAiY29kZXBvaW50cyI6IFs4OTcwXSwgImNoYXJhY3RlcnMiOiAiXHUyMzBBIiB9LAorICAiJmxlZnRoYXJwb29uZG93bjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzddLCAiY2hhcmFjdGVycyI6ICJcdTIxQkQiIH0sCisgICImbGVmdGhhcnBvb251cDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzZdLCAiY2hhcmFjdGVycyI6ICJcdTIxQkMiIH0sCisgICImbGVmdGxlZnRhcnJvd3M7IjogeyAiY29kZXBvaW50cyI6IFs4NjQ3XSwgImNoYXJhY3RlcnMiOiAiXHUyMUM3IiB9LAorICAiJmxlZnRyaWdodGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjE5NCIgfSwKKyAgIiZMZWZ0UmlnaHRBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OTZdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTQiIH0sCisgICImTGVmdHJpZ2h0YXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjYwXSwgImNoYXJhY3RlcnMiOiAiXHUyMUQ0IiB9LAorICAiJmxlZnRyaWdodGFycm93czsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDZdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzYiIH0sCisgICImbGVmdHJpZ2h0aGFycG9vbnM7IjogeyAiY29kZXBvaW50cyI6IFs4NjUxXSwgImNoYXJhY3RlcnMiOiAiXHUyMUNCIiB9LAorICAiJmxlZnRyaWdodHNxdWlnYXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjIxXSwgImNoYXJhY3RlcnMiOiAiXHUyMUFEIiB9LAorICAiJkxlZnRSaWdodFZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTc0XSwgImNoYXJhY3RlcnMiOiAiXHUyOTRFIiB9LAorICAiJkxlZnRUZWVBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MTJdLCAiY2hhcmFjdGVycyI6ICJcdTIxQTQiIH0sCisgICImTGVmdFRlZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjddLCAiY2hhcmFjdGVycyI6ICJcdTIyQTMiIH0sCisgICImTGVmdFRlZVZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTg2XSwgImNoYXJhY3RlcnMiOiAiXHUyOTVBIiB9LAorICAiJmxlZnR0aHJlZXRpbWVzOyI6IHsgImNvZGVwb2ludHMiOiBbODkwN10sICJjaGFyYWN0ZXJzIjogIlx1MjJDQiIgfSwKKyAgIiZMZWZ0VHJpYW5nbGVCYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDcwM10sICJjaGFyYWN0ZXJzIjogIlx1MjlDRiIgfSwKKyAgIiZMZWZ0VHJpYW5nbGU7IjogeyAiY29kZXBvaW50cyI6IFs4ODgyXSwgImNoYXJhY3RlcnMiOiAiXHUyMkIyIiB9LAorICAiJkxlZnRUcmlhbmdsZUVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODg4NF0sICJjaGFyYWN0ZXJzIjogIlx1MjJCNCIgfSwKKyAgIiZMZWZ0VXBEb3duVmVjdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1NzddLCAiY2hhcmFjdGVycyI6ICJcdTI5NTEiIH0sCisgICImTGVmdFVwVGVlVmVjdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1OTJdLCAiY2hhcmFjdGVycyI6ICJcdTI5NjAiIH0sCisgICImTGVmdFVwVmVjdG9yQmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1ODRdLCAiY2hhcmFjdGVycyI6ICJcdTI5NTgiIH0sCisgICImTGVmdFVwVmVjdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbODYzOV0sICJjaGFyYWN0ZXJzIjogIlx1MjFCRiIgfSwKKyAgIiZMZWZ0VmVjdG9yQmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1NzhdLCAiY2hhcmFjdGVycyI6ICJcdTI5NTIiIH0sCisgICImTGVmdFZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzZdLCAiY2hhcmFjdGVycyI6ICJcdTIxQkMiIH0sCisgICImbEVnOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4OTFdLCAiY2hhcmFjdGVycyI6ICJcdTJBOEIiIH0sCisgICImbGVnOyI6IHsgImNvZGVwb2ludHMiOiBbODkyMl0sICJjaGFyYWN0ZXJzIjogIlx1MjJEQSIgfSwKKyAgIiZsZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODA0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY0IiB9LAorICAiJmxlcXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODA2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY2IiB9LAorICAiJmxlcXNsYW50OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NzddLCAiY2hhcmFjdGVycyI6ICJcdTJBN0QiIH0sCisgICImbGVzY2M7IjogeyAiY29kZXBvaW50cyI6IFsxMDkyMF0sICJjaGFyYWN0ZXJzIjogIlx1MkFBOCIgfSwKKyAgIiZsZXM7IjogeyAiY29kZXBvaW50cyI6IFsxMDg3N10sICJjaGFyYWN0ZXJzIjogIlx1MkE3RCIgfSwKKyAgIiZsZXNkb3Q7IjogeyAiY29kZXBvaW50cyI6IFsxMDg3OV0sICJjaGFyYWN0ZXJzIjogIlx1MkE3RiIgfSwKKyAgIiZsZXNkb3RvOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4ODFdLCAiY2hhcmFjdGVycyI6ICJcdTJBODEiIH0sCisgICImbGVzZG90b3I7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4M10sICJjaGFyYWN0ZXJzIjogIlx1MkE4MyIgfSwKKyAgIiZsZXNnOyI6IHsgImNvZGVwb2ludHMiOiBbODkyMiwgNjUwMjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyREFcdUZFMDAiIH0sCisgICImbGVzZ2VzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4OTldLCAiY2hhcmFjdGVycyI6ICJcdTJBOTMiIH0sCisgICImbGVzc2FwcHJveDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODg1XSwgImNoYXJhY3RlcnMiOiAiXHUyQTg1IiB9LAorICAiJmxlc3Nkb3Q7IjogeyAiY29kZXBvaW50cyI6IFs4OTE4XSwgImNoYXJhY3RlcnMiOiAiXHUyMkQ2IiB9LAorICAiJmxlc3NlcWd0cjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MjJdLCAiY2hhcmFjdGVycyI6ICJcdTIyREEiIH0sCisgICImbGVzc2VxcWd0cjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODkxXSwgImNoYXJhY3RlcnMiOiAiXHUyQThCIiB9LAorICAiJkxlc3NFcXVhbEdyZWF0ZXI7IjogeyAiY29kZXBvaW50cyI6IFs4OTIyXSwgImNoYXJhY3RlcnMiOiAiXHUyMkRBIiB9LAorICAiJkxlc3NGdWxsRXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODA2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY2IiB9LAorICAiJkxlc3NHcmVhdGVyOyI6IHsgImNvZGVwb2ludHMiOiBbODgyMl0sICJjaGFyYWN0ZXJzIjogIlx1MjI3NiIgfSwKKyAgIiZsZXNzZ3RyOyI6IHsgImNvZGVwb2ludHMiOiBbODgyMl0sICJjaGFyYWN0ZXJzIjogIlx1MjI3NiIgfSwKKyAgIiZMZXNzTGVzczsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTEzXSwgImNoYXJhY3RlcnMiOiAiXHUyQUExIiB9LAorICAiJmxlc3NzaW07IjogeyAiY29kZXBvaW50cyI6IFs4ODE4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjcyIiB9LAorICAiJkxlc3NTbGFudEVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NzddLCAiY2hhcmFjdGVycyI6ICJcdTJBN0QiIH0sCisgICImTGVzc1RpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbODgxOF0sICJjaGFyYWN0ZXJzIjogIlx1MjI3MiIgfSwKKyAgIiZsZmlzaHQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDYyMF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk3QyIgfSwKKyAgIiZsZmxvb3I7IjogeyAiY29kZXBvaW50cyI6IFs4OTcwXSwgImNoYXJhY3RlcnMiOiAiXHUyMzBBIiB9LAorICAiJkxmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA3OV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQwRiIgfSwKKyAgIiZsZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMDVdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMjkiIH0sCisgICImbGc7IjogeyAiY29kZXBvaW50cyI6IFs4ODIyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjc2IiB9LAorICAiJmxnRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODk3XSwgImNoYXJhY3RlcnMiOiAiXHUyQTkxIiB9LAorICAiJmxIYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU5NF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk2MiIgfSwKKyAgIiZsaGFyZDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzddLCAiY2hhcmFjdGVycyI6ICJcdTIxQkQiIH0sCisgICImbGhhcnU7IjogeyAiY29kZXBvaW50cyI6IFs4NjM2XSwgImNoYXJhY3RlcnMiOiAiXHUyMUJDIiB9LAorICAiJmxoYXJ1bDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjAyXSwgImNoYXJhY3RlcnMiOiAiXHUyOTZBIiB9LAorICAiJmxoYmxrOyI6IHsgImNvZGVwb2ludHMiOiBbOTYwNF0sICJjaGFyYWN0ZXJzIjogIlx1MjU4NCIgfSwKKyAgIiZMSmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTAzM10sICJjaGFyYWN0ZXJzIjogIlx1MDQwOSIgfSwKKyAgIiZsamN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTExM10sICJjaGFyYWN0ZXJzIjogIlx1MDQ1OSIgfSwKKyAgIiZsbGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDddLCAiY2hhcmFjdGVycyI6ICJcdTIxQzciIH0sCisgICImbGw7IjogeyAiY29kZXBvaW50cyI6IFs4ODEwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjZBIiB9LAorICAiJkxsOyI6IHsgImNvZGVwb2ludHMiOiBbODkyMF0sICJjaGFyYWN0ZXJzIjogIlx1MjJEOCIgfSwKKyAgIiZsbGNvcm5lcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5OTBdLCAiY2hhcmFjdGVycyI6ICJcdTIzMUUiIH0sCisgICImTGxlZnRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjZdLCAiY2hhcmFjdGVycyI6ICJcdTIxREEiIH0sCisgICImbGxoYXJkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MDNdLCAiY2hhcmFjdGVycyI6ICJcdTI5NkIiIH0sCisgICImbGx0cmk7IjogeyAiY29kZXBvaW50cyI6IFs5NzIyXSwgImNoYXJhY3RlcnMiOiAiXHUyNUZBIiB9LAorICAiJkxtaWRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzMxOV0sICJjaGFyYWN0ZXJzIjogIlx1MDEzRiIgfSwKKyAgIiZsbWlkb3Q7IjogeyAiY29kZXBvaW50cyI6IFszMjBdLCAiY2hhcmFjdGVycyI6ICJcdTAxNDAiIH0sCisgICImbG1vdXN0YWNoZTsiOiB7ICJjb2RlcG9pbnRzIjogWzkxMzZdLCAiY2hhcmFjdGVycyI6ICJcdTIzQjAiIH0sCisgICImbG1vdXN0OyI6IHsgImNvZGVwb2ludHMiOiBbOTEzNl0sICJjaGFyYWN0ZXJzIjogIlx1MjNCMCIgfSwKKyAgIiZsbmFwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4ODldLCAiY2hhcmFjdGVycyI6ICJcdTJBODkiIH0sCisgICImbG5hcHByb3g7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4OV0sICJjaGFyYWN0ZXJzIjogIlx1MkE4OSIgfSwKKyAgIiZsbmU7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4N10sICJjaGFyYWN0ZXJzIjogIlx1MkE4NyIgfSwKKyAgIiZsbkU7IjogeyAiY29kZXBvaW50cyI6IFs4ODA4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY4IiB9LAorICAiJmxuZXE7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4N10sICJjaGFyYWN0ZXJzIjogIlx1MkE4NyIgfSwKKyAgIiZsbmVxcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDhdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjgiIH0sCisgICImbG5zaW07IjogeyAiY29kZXBvaW50cyI6IFs4OTM0XSwgImNoYXJhY3RlcnMiOiAiXHUyMkU2IiB9LAorICAiJmxvYW5nOyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMjBdLCAiY2hhcmFjdGVycyI6ICJcdTI3RUMiIH0sCisgICImbG9hcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NzAxXSwgImNoYXJhY3RlcnMiOiAiXHUyMUZEIiB9LAorICAiJmxvYnJrOyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMTRdLCAiY2hhcmFjdGVycyI6ICJcdTI3RTYiIH0sCisgICImbG9uZ2xlZnRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjI5XSwgImNoYXJhY3RlcnMiOiAiXHUyN0Y1IiB9LAorICAiJkxvbmdMZWZ0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFsxMDIyOV0sICJjaGFyYWN0ZXJzIjogIlx1MjdGNSIgfSwKKyAgIiZMb25nbGVmdGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzJdLCAiY2hhcmFjdGVycyI6ICJcdTI3RjgiIH0sCisgICImbG9uZ2xlZnRyaWdodGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzFdLCAiY2hhcmFjdGVycyI6ICJcdTI3RjciIH0sCisgICImTG9uZ0xlZnRSaWdodEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzFdLCAiY2hhcmFjdGVycyI6ICJcdTI3RjciIH0sCisgICImTG9uZ2xlZnRyaWdodGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzRdLCAiY2hhcmFjdGVycyI6ICJcdTI3RkEiIH0sCisgICImbG9uZ21hcHN0bzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjM2XSwgImNoYXJhY3RlcnMiOiAiXHUyN0ZDIiB9LAorICAiJmxvbmdyaWdodGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzBdLCAiY2hhcmFjdGVycyI6ICJcdTI3RjYiIH0sCisgICImTG9uZ1JpZ2h0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFsxMDIzMF0sICJjaGFyYWN0ZXJzIjogIlx1MjdGNiIgfSwKKyAgIiZMb25ncmlnaHRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjMzXSwgImNoYXJhY3RlcnMiOiAiXHUyN0Y5IiB9LAorICAiJmxvb3BhcnJvd2xlZnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NjE5XSwgImNoYXJhY3RlcnMiOiAiXHUyMUFCIiB9LAorICAiJmxvb3BhcnJvd3JpZ2h0OyI6IHsgImNvZGVwb2ludHMiOiBbODYyMF0sICJjaGFyYWN0ZXJzIjogIlx1MjFBQyIgfSwKKyAgIiZsb3BhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjI5XSwgImNoYXJhY3RlcnMiOiAiXHUyOTg1IiB9LAorICAiJkxvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMzFdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENDMiIH0sCisgICImbG9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE1N10sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ1RCIgfSwKKyAgIiZsb3BsdXM7IjogeyAiY29kZXBvaW50cyI6IFsxMDc5N10sICJjaGFyYWN0ZXJzIjogIlx1MkEyRCIgfSwKKyAgIiZsb3RpbWVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MDRdLCAiY2hhcmFjdGVycyI6ICJcdTJBMzQiIH0sCisgICImbG93YXN0OyI6IHsgImNvZGVwb2ludHMiOiBbODcyN10sICJjaGFyYWN0ZXJzIjogIlx1MjIxNyIgfSwKKyAgIiZsb3diYXI7IjogeyAiY29kZXBvaW50cyI6IFs5NV0sICJjaGFyYWN0ZXJzIjogIlx1MDA1RiIgfSwKKyAgIiZMb3dlckxlZnRBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDFdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTkiIH0sCisgICImTG93ZXJSaWdodEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODYwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjE5OCIgfSwKKyAgIiZsb3o7IjogeyAiY29kZXBvaW50cyI6IFs5Njc0XSwgImNoYXJhY3RlcnMiOiAiXHUyNUNBIiB9LAorICAiJmxvemVuZ2U7IjogeyAiY29kZXBvaW50cyI6IFs5Njc0XSwgImNoYXJhY3RlcnMiOiAiXHUyNUNBIiB9LAorICAiJmxvemY7IjogeyAiY29kZXBvaW50cyI6IFsxMDczMV0sICJjaGFyYWN0ZXJzIjogIlx1MjlFQiIgfSwKKyAgIiZscGFyOyI6IHsgImNvZGVwb2ludHMiOiBbNDBdLCAiY2hhcmFjdGVycyI6ICJcdTAwMjgiIH0sCisgICImbHBhcmx0OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NDNdLCAiY2hhcmFjdGVycyI6ICJcdTI5OTMiIH0sCisgICImbHJhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjQ2XSwgImNoYXJhY3RlcnMiOiAiXHUyMUM2IiB9LAorICAiJmxyY29ybmVyOyI6IHsgImNvZGVwb2ludHMiOiBbODk5MV0sICJjaGFyYWN0ZXJzIjogIlx1MjMxRiIgfSwKKyAgIiZscmhhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTFdLCAiY2hhcmFjdGVycyI6ICJcdTIxQ0IiIH0sCisgICImbHJoYXJkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MDVdLCAiY2hhcmFjdGVycyI6ICJcdTI5NkQiIH0sCisgICImbHJtOyI6IHsgImNvZGVwb2ludHMiOiBbODIwNl0sICJjaGFyYWN0ZXJzIjogIlx1MjAwRSIgfSwKKyAgIiZscnRyaTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4OTVdLCAiY2hhcmFjdGVycyI6ICJcdTIyQkYiIH0sCisgICImbHNhcXVvOyI6IHsgImNvZGVwb2ludHMiOiBbODI0OV0sICJjaGFyYWN0ZXJzIjogIlx1MjAzOSIgfSwKKyAgIiZsc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDAxXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0MxIiB9LAorICAiJkxzY3I7IjogeyAiY29kZXBvaW50cyI6IFs4NDY2XSwgImNoYXJhY3RlcnMiOiAiXHUyMTEyIiB9LAorICAiJmxzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIxQjAiIH0sCisgICImTHNoOyI6IHsgImNvZGVwb2ludHMiOiBbODYyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjFCMCIgfSwKKyAgIiZsc2ltOyI6IHsgImNvZGVwb2ludHMiOiBbODgxOF0sICJjaGFyYWN0ZXJzIjogIlx1MjI3MiIgfSwKKyAgIiZsc2ltZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODkzXSwgImNoYXJhY3RlcnMiOiAiXHUyQThEIiB9LAorICAiJmxzaW1nOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4OTVdLCAiY2hhcmFjdGVycyI6ICJcdTJBOEYiIH0sCisgICImbHNxYjsiOiB7ICJjb2RlcG9pbnRzIjogWzkxXSwgImNoYXJhY3RlcnMiOiAiXHUwMDVCIiB9LAorICAiJmxzcXVvOyI6IHsgImNvZGVwb2ludHMiOiBbODIxNl0sICJjaGFyYWN0ZXJzIjogIlx1MjAxOCIgfSwKKyAgIiZsc3F1b3I7IjogeyAiY29kZXBvaW50cyI6IFs4MjE4XSwgImNoYXJhY3RlcnMiOiAiXHUyMDFBIiB9LAorICAiJkxzdHJvazsiOiB7ICJjb2RlcG9pbnRzIjogWzMyMV0sICJjaGFyYWN0ZXJzIjogIlx1MDE0MSIgfSwKKyAgIiZsc3Ryb2s7IjogeyAiY29kZXBvaW50cyI6IFszMjJdLCAiY2hhcmFjdGVycyI6ICJcdTAxNDIiIH0sCisgICImbHRjYzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTE4XSwgImNoYXJhY3RlcnMiOiAiXHUyQUE2IiB9LAorICAiJmx0Y2lyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NzNdLCAiY2hhcmFjdGVycyI6ICJcdTJBNzkiIH0sCisgICImbHQ7IjogeyAiY29kZXBvaW50cyI6IFs2MF0sICJjaGFyYWN0ZXJzIjogIlx1MDAzQyIgfSwKKyAgIiZsdCI6IHsgImNvZGVwb2ludHMiOiBbNjBdLCAiY2hhcmFjdGVycyI6ICJcdTAwM0MiIH0sCisgICImTFQ7IjogeyAiY29kZXBvaW50cyI6IFs2MF0sICJjaGFyYWN0ZXJzIjogIlx1MDAzQyIgfSwKKyAgIiZMVCI6IHsgImNvZGVwb2ludHMiOiBbNjBdLCAiY2hhcmFjdGVycyI6ICJcdTAwM0MiIH0sCisgICImTHQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODEwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjZBIiB9LAorICAiJmx0ZG90OyI6IHsgImNvZGVwb2ludHMiOiBbODkxOF0sICJjaGFyYWN0ZXJzIjogIlx1MjJENiIgfSwKKyAgIiZsdGhyZWU7IjogeyAiY29kZXBvaW50cyI6IFs4OTA3XSwgImNoYXJhY3RlcnMiOiAiXHUyMkNCIiB9LAorICAiJmx0aW1lczsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MDVdLCAiY2hhcmFjdGVycyI6ICJcdTIyQzkiIH0sCisgICImbHRsYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MTRdLCAiY2hhcmFjdGVycyI6ICJcdTI5NzYiIH0sCisgICImbHRxdWVzdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODc1XSwgImNoYXJhY3RlcnMiOiAiXHUyQTdCIiB9LAorICAiJmx0cmk7IjogeyAiY29kZXBvaW50cyI6IFs5NjY3XSwgImNoYXJhY3RlcnMiOiAiXHUyNUMzIiB9LAorICAiJmx0cmllOyI6IHsgImNvZGVwb2ludHMiOiBbODg4NF0sICJjaGFyYWN0ZXJzIjogIlx1MjJCNCIgfSwKKyAgIiZsdHJpZjsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NjZdLCAiY2hhcmFjdGVycyI6ICJcdTI1QzIiIH0sCisgICImbHRyUGFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NDZdLCAiY2hhcmFjdGVycyI6ICJcdTI5OTYiIH0sCisgICImbHVyZHNoYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU3MF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk0QSIgfSwKKyAgIiZsdXJ1aGFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1OThdLCAiY2hhcmFjdGVycyI6ICJcdTI5NjYiIH0sCisgICImbHZlcnRuZXFxOyI6IHsgImNvZGVwb2ludHMiOiBbODgwOCwgNjUwMjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjhcdUZFMDAiIH0sCisgICImbHZuRTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDgsIDY1MDI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY4XHVGRTAwIiB9LAorICAiJm1hY3I7IjogeyAiY29kZXBvaW50cyI6IFsxNzVdLCAiY2hhcmFjdGVycyI6ICJcdTAwQUYiIH0sCisgICImbWFjciI6IHsgImNvZGVwb2ludHMiOiBbMTc1XSwgImNoYXJhY3RlcnMiOiAiXHUwMEFGIiB9LAorICAiJm1hbGU7IjogeyAiY29kZXBvaW50cyI6IFs5Nzk0XSwgImNoYXJhY3RlcnMiOiAiXHUyNjQyIiB9LAorICAiJm1hbHQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDAxNl0sICJjaGFyYWN0ZXJzIjogIlx1MjcyMCIgfSwKKyAgIiZtYWx0ZXNlOyI6IHsgImNvZGVwb2ludHMiOiBbMTAwMTZdLCAiY2hhcmFjdGVycyI6ICJcdTI3MjAiIH0sCisgICImTWFwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MDFdLCAiY2hhcmFjdGVycyI6ICJcdTI5MDUiIH0sCisgICImbWFwOyI6IHsgImNvZGVwb2ludHMiOiBbODYxNF0sICJjaGFyYWN0ZXJzIjogIlx1MjFBNiIgfSwKKyAgIiZtYXBzdG87IjogeyAiY29kZXBvaW50cyI6IFs4NjE0XSwgImNoYXJhY3RlcnMiOiAiXHUyMUE2IiB9LAorICAiJm1hcHN0b2Rvd247IjogeyAiY29kZXBvaW50cyI6IFs4NjE1XSwgImNoYXJhY3RlcnMiOiAiXHUyMUE3IiB9LAorICAiJm1hcHN0b2xlZnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NjEyXSwgImNoYXJhY3RlcnMiOiAiXHUyMUE0IiB9LAorICAiJm1hcHN0b3VwOyI6IHsgImNvZGVwb2ludHMiOiBbODYxM10sICJjaGFyYWN0ZXJzIjogIlx1MjFBNSIgfSwKKyAgIiZtYXJrZXI7IjogeyAiY29kZXBvaW50cyI6IFs5NjQ2XSwgImNoYXJhY3RlcnMiOiAiXHUyNUFFIiB9LAorICAiJm1jb21tYTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzkzXSwgImNoYXJhY3RlcnMiOiAiXHUyQTI5IiB9LAorICAiJk1jeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTJdLCAiY2hhcmFjdGVycyI6ICJcdTA0MUMiIH0sCisgICImbWN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NF0sICJjaGFyYWN0ZXJzIjogIlx1MDQzQyIgfSwKKyAgIiZtZGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMTJdLCAiY2hhcmFjdGVycyI6ICJcdTIwMTQiIH0sCisgICImbUREb3Q7IjogeyAiY29kZXBvaW50cyI6IFs4NzYyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjNBIiB9LAorICAiJm1lYXN1cmVkYW5nbGU7IjogeyAiY29kZXBvaW50cyI6IFs4NzM3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjIxIiB9LAorICAiJk1lZGl1bVNwYWNlOyI6IHsgImNvZGVwb2ludHMiOiBbODI4N10sICJjaGFyYWN0ZXJzIjogIlx1MjA1RiIgfSwKKyAgIiZNZWxsaW50cmY7IjogeyAiY29kZXBvaW50cyI6IFs4NDk5XSwgImNoYXJhY3RlcnMiOiAiXHUyMTMzIiB9LAorICAiJk1mcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA4MF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQxMCIgfSwKKyAgIiZtZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMDZdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMkEiIH0sCisgICImbWhvOyI6IHsgImNvZGVwb2ludHMiOiBbODQ4N10sICJjaGFyYWN0ZXJzIjogIlx1MjEyNyIgfSwKKyAgIiZtaWNybzsiOiB7ICJjb2RlcG9pbnRzIjogWzE4MV0sICJjaGFyYWN0ZXJzIjogIlx1MDBCNSIgfSwKKyAgIiZtaWNybyI6IHsgImNvZGVwb2ludHMiOiBbMTgxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEI1IiB9LAorICAiJm1pZGFzdDsiOiB7ICJjb2RlcG9pbnRzIjogWzQyXSwgImNoYXJhY3RlcnMiOiAiXHUwMDJBIiB9LAorICAiJm1pZGNpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTkyXSwgImNoYXJhY3RlcnMiOiAiXHUyQUYwIiB9LAorICAiJm1pZDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MzldLCAiY2hhcmFjdGVycyI6ICJcdTIyMjMiIH0sCisgICImbWlkZG90OyI6IHsgImNvZGVwb2ludHMiOiBbMTgzXSwgImNoYXJhY3RlcnMiOiAiXHUwMEI3IiB9LAorICAiJm1pZGRvdCI6IHsgImNvZGVwb2ludHMiOiBbMTgzXSwgImNoYXJhY3RlcnMiOiAiXHUwMEI3IiB9LAorICAiJm1pbnVzYjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjNdLCAiY2hhcmFjdGVycyI6ICJcdTIyOUYiIH0sCisgICImbWludXM7IjogeyAiY29kZXBvaW50cyI6IFs4NzIyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjEyIiB9LAorICAiJm1pbnVzZDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjBdLCAiY2hhcmFjdGVycyI6ICJcdTIyMzgiIH0sCisgICImbWludXNkdTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzk0XSwgImNoYXJhY3RlcnMiOiAiXHUyQTJBIiB9LAorICAiJk1pbnVzUGx1czsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjNdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTMiIH0sCisgICImbWxjcDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTcxXSwgImNoYXJhY3RlcnMiOiAiXHUyQURCIiB9LAorICAiJm1sZHI7IjogeyAiY29kZXBvaW50cyI6IFs4MjMwXSwgImNoYXJhY3RlcnMiOiAiXHUyMDI2IiB9LAorICAiJm1ucGx1czsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjNdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTMiIH0sCisgICImbW9kZWxzOyI6IHsgImNvZGVwb2ludHMiOiBbODg3MV0sICJjaGFyYWN0ZXJzIjogIlx1MjJBNyIgfSwKKyAgIiZNb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTMyXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDQ0IiB9LAorICAiJm1vcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNThdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENUUiIH0sCisgICImbXA7IjogeyAiY29kZXBvaW50cyI6IFs4NzIzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjEzIiB9LAorICAiJm1zY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMDJdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQzIiIH0sCisgICImTXNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0OTldLCAiY2hhcmFjdGVycyI6ICJcdTIxMzMiIH0sCisgICImbXN0cG9zOyI6IHsgImNvZGVwb2ludHMiOiBbODc2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjIzRSIgfSwKKyAgIiZNdTsiOiB7ICJjb2RlcG9pbnRzIjogWzkyNF0sICJjaGFyYWN0ZXJzIjogIlx1MDM5QyIgfSwKKyAgIiZtdTsiOiB7ICJjb2RlcG9pbnRzIjogWzk1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDNCQyIgfSwKKyAgIiZtdWx0aW1hcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODhdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjgiIH0sCisgICImbXVtYXA7IjogeyAiY29kZXBvaW50cyI6IFs4ODg4XSwgImNoYXJhY3RlcnMiOiAiXHUyMkI4IiB9LAorICAiJm5hYmxhOyI6IHsgImNvZGVwb2ludHMiOiBbODcxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjIwNyIgfSwKKyAgIiZOYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFszMjNdLCAiY2hhcmFjdGVycyI6ICJcdTAxNDMiIH0sCisgICImbmFjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMzI0XSwgImNoYXJhY3RlcnMiOiAiXHUwMTQ0IiB9LAorICAiJm5hbmc7IjogeyAiY29kZXBvaW50cyI6IFs4NzM2LCA4NDAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjIwXHUyMEQyIiB9LAorICAiJm5hcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzddLCAiY2hhcmFjdGVycyI6ICJcdTIyNDkiIH0sCisgICImbmFwRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODY0LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBNzBcdTAzMzgiIH0sCisgICImbmFwaWQ7IjogeyAiY29kZXBvaW50cyI6IFs4Nzc5LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNEJcdTAzMzgiIH0sCisgICImbmFwb3M7IjogeyAiY29kZXBvaW50cyI6IFszMjldLCAiY2hhcmFjdGVycyI6ICJcdTAxNDkiIH0sCisgICImbmFwcHJveDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzddLCAiY2hhcmFjdGVycyI6ICJcdTIyNDkiIH0sCisgICImbmF0dXJhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzk4MzhdLCAiY2hhcmFjdGVycyI6ICJcdTI2NkUiIH0sCisgICImbmF0dXJhbHM7IjogeyAiY29kZXBvaW50cyI6IFs4NDY5XSwgImNoYXJhY3RlcnMiOiAiXHUyMTE1IiB9LAorICAiJm5hdHVyOyI6IHsgImNvZGVwb2ludHMiOiBbOTgzOF0sICJjaGFyYWN0ZXJzIjogIlx1MjY2RSIgfSwKKyAgIiZuYnNwOyI6IHsgImNvZGVwb2ludHMiOiBbMTYwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEEwIiB9LAorICAiJm5ic3AiOiB7ICJjb2RlcG9pbnRzIjogWzE2MF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBMCIgfSwKKyAgIiZuYnVtcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3ODIsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI0RVx1MDMzOCIgfSwKKyAgIiZuYnVtcGU7IjogeyAiY29kZXBvaW50cyI6IFs4NzgzLCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNEZcdTAzMzgiIH0sCisgICImbmNhcDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODE5XSwgImNoYXJhY3RlcnMiOiAiXHUyQTQzIiB9LAorICAiJk5jYXJvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzMyN10sICJjaGFyYWN0ZXJzIjogIlx1MDE0NyIgfSwKKyAgIiZuY2Fyb247IjogeyAiY29kZXBvaW50cyI6IFszMjhdLCAiY2hhcmFjdGVycyI6ICJcdTAxNDgiIH0sCisgICImTmNlZGlsOyI6IHsgImNvZGVwb2ludHMiOiBbMzI1XSwgImNoYXJhY3RlcnMiOiAiXHUwMTQ1IiB9LAorICAiJm5jZWRpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzMyNl0sICJjaGFyYWN0ZXJzIjogIlx1MDE0NiIgfSwKKyAgIiZuY29uZzsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzVdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDciIH0sCisgICImbmNvbmdkb3Q7IjogeyAiY29kZXBvaW50cyI6IFsxMDg2MSwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyQTZEXHUwMzM4IiB9LAorICAiJm5jdXA7IjogeyAiY29kZXBvaW50cyI6IFsxMDgxOF0sICJjaGFyYWN0ZXJzIjogIlx1MkE0MiIgfSwKKyAgIiZOY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDUzXSwgImNoYXJhY3RlcnMiOiAiXHUwNDFEIiB9LAorICAiJm5jeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODVdLCAiY2hhcmFjdGVycyI6ICJcdTA0M0QiIH0sCisgICImbmRhc2g7IjogeyAiY29kZXBvaW50cyI6IFs4MjExXSwgImNoYXJhY3RlcnMiOiAiXHUyMDEzIiB9LAorICAiJm5lYXJoazsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTMyXSwgImNoYXJhY3RlcnMiOiAiXHUyOTI0IiB9LAorICAiJm5lYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODU5OV0sICJjaGFyYWN0ZXJzIjogIlx1MjE5NyIgfSwKKyAgIiZuZUFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjNdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDciIH0sCisgICImbmVhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OTldLCAiY2hhcmFjdGVycyI6ICJcdTIxOTciIH0sCisgICImbmU7IjogeyAiY29kZXBvaW50cyI6IFs4ODAwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjYwIiB9LAorICAiJm5lZG90OyI6IHsgImNvZGVwb2ludHMiOiBbODc4NCwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjUwXHUwMzM4IiB9LAorICAiJk5lZ2F0aXZlTWVkaXVtU3BhY2U7IjogeyAiY29kZXBvaW50cyI6IFs4MjAzXSwgImNoYXJhY3RlcnMiOiAiXHUyMDBCIiB9LAorICAiJk5lZ2F0aXZlVGhpY2tTcGFjZTsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMDNdLCAiY2hhcmFjdGVycyI6ICJcdTIwMEIiIH0sCisgICImTmVnYXRpdmVUaGluU3BhY2U7IjogeyAiY29kZXBvaW50cyI6IFs4MjAzXSwgImNoYXJhY3RlcnMiOiAiXHUyMDBCIiB9LAorICAiJk5lZ2F0aXZlVmVyeVRoaW5TcGFjZTsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMDNdLCAiY2hhcmFjdGVycyI6ICJcdTIwMEIiIH0sCisgICImbmVxdWl2OyI6IHsgImNvZGVwb2ludHMiOiBbODgwMl0sICJjaGFyYWN0ZXJzIjogIlx1MjI2MiIgfSwKKyAgIiZuZXNlYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDUzNl0sICJjaGFyYWN0ZXJzIjogIlx1MjkyOCIgfSwKKyAgIiZuZXNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzAsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI0Mlx1MDMzOCIgfSwKKyAgIiZOZXN0ZWRHcmVhdGVyR3JlYXRlcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTFdLCAiY2hhcmFjdGVycyI6ICJcdTIyNkIiIH0sCisgICImTmVzdGVkTGVzc0xlc3M7IjogeyAiY29kZXBvaW50cyI6IFs4ODEwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjZBIiB9LAorICAiJk5ld0xpbmU7IjogeyAiY29kZXBvaW50cyI6IFsxMF0sICJjaGFyYWN0ZXJzIjogIlx1MDAwQSIgfSwKKyAgIiZuZXhpc3Q7IjogeyAiY29kZXBvaW50cyI6IFs4NzA4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjA0IiB9LAorICAiJm5leGlzdHM7IjogeyAiY29kZXBvaW50cyI6IFs4NzA4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjA0IiB9LAorICAiJk5mcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA4MV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQxMSIgfSwKKyAgIiZuZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMDddLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMkIiIH0sCisgICImbmdFOyI6IHsgImNvZGVwb2ludHMiOiBbODgwNywgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY3XHUwMzM4IiB9LAorICAiJm5nZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTddLCAiY2hhcmFjdGVycyI6ICJcdTIyNzEiIH0sCisgICImbmdlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTddLCAiY2hhcmFjdGVycyI6ICJcdTIyNzEiIH0sCisgICImbmdlcXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODA3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjdcdTAzMzgiIH0sCisgICImbmdlcXNsYW50OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NzgsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkE3RVx1MDMzOCIgfSwKKyAgIiZuZ2VzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NzgsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkE3RVx1MDMzOCIgfSwKKyAgIiZuR2c7IjogeyAiY29kZXBvaW50cyI6IFs4OTIxLCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyRDlcdTAzMzgiIH0sCisgICImbmdzaW07IjogeyAiY29kZXBvaW50cyI6IFs4ODIxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjc1IiB9LAorICAiJm5HdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTEsIDg0MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyNkJcdTIwRDIiIH0sCisgICImbmd0OyI6IHsgImNvZGVwb2ludHMiOiBbODgxNV0sICJjaGFyYWN0ZXJzIjogIlx1MjI2RiIgfSwKKyAgIiZuZ3RyOyI6IHsgImNvZGVwb2ludHMiOiBbODgxNV0sICJjaGFyYWN0ZXJzIjogIlx1MjI2RiIgfSwKKyAgIiZuR3R2OyI6IHsgImNvZGVwb2ludHMiOiBbODgxMSwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjZCXHUwMzM4IiB9LAorICAiJm5oYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODYyMl0sICJjaGFyYWN0ZXJzIjogIlx1MjFBRSIgfSwKKyAgIiZuaEFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTRdLCAiY2hhcmFjdGVycyI6ICJcdTIxQ0UiIH0sCisgICImbmhwYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDk5NF0sICJjaGFyYWN0ZXJzIjogIlx1MkFGMiIgfSwKKyAgIiZuaTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MTVdLCAiY2hhcmFjdGVycyI6ICJcdTIyMEIiIH0sCisgICImbmlzOyI6IHsgImNvZGVwb2ludHMiOiBbODk1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjJGQyIgfSwKKyAgIiZuaXNkOyI6IHsgImNvZGVwb2ludHMiOiBbODk1NF0sICJjaGFyYWN0ZXJzIjogIlx1MjJGQSIgfSwKKyAgIiZuaXY7IjogeyAiY29kZXBvaW50cyI6IFs4NzE1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjBCIiB9LAorICAiJk5KY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDM0XSwgImNoYXJhY3RlcnMiOiAiXHUwNDBBIiB9LAorICAiJm5qY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTE0XSwgImNoYXJhY3RlcnMiOiAiXHUwNDVBIiB9LAorICAiJm5sYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODYwMl0sICJjaGFyYWN0ZXJzIjogIlx1MjE5QSIgfSwKKyAgIiZubEFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTNdLCAiY2hhcmFjdGVycyI6ICJcdTIxQ0QiIH0sCisgICImbmxkcjsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMjldLCAiY2hhcmFjdGVycyI6ICJcdTIwMjUiIH0sCisgICImbmxFOyI6IHsgImNvZGVwb2ludHMiOiBbODgwNiwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY2XHUwMzM4IiB9LAorICAiJm5sZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTZdLCAiY2hhcmFjdGVycyI6ICJcdTIyNzAiIH0sCisgICImbmxlZnRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIxOUEiIH0sCisgICImbkxlZnRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTNdLCAiY2hhcmFjdGVycyI6ICJcdTIxQ0QiIH0sCisgICImbmxlZnRyaWdodGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODYyMl0sICJjaGFyYWN0ZXJzIjogIlx1MjFBRSIgfSwKKyAgIiZuTGVmdHJpZ2h0YXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjU0XSwgImNoYXJhY3RlcnMiOiAiXHUyMUNFIiB9LAorICAiJm5sZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODE2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjcwIiB9LAorICAiJm5sZXFxOyI6IHsgImNvZGVwb2ludHMiOiBbODgwNiwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY2XHUwMzM4IiB9LAorICAiJm5sZXFzbGFudDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODc3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBN0RcdTAzMzgiIH0sCisgICImbmxlczsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODc3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBN0RcdTAzMzgiIH0sCisgICImbmxlc3M7IjogeyAiY29kZXBvaW50cyI6IFs4ODE0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjZFIiB9LAorICAiJm5MbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MjAsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjJEOFx1MDMzOCIgfSwKKyAgIiZubHNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MjBdLCAiY2hhcmFjdGVycyI6ICJcdTIyNzQiIH0sCisgICImbkx0OyI6IHsgImNvZGVwb2ludHMiOiBbODgxMCwgODQwMl0sICJjaGFyYWN0ZXJzIjogIlx1MjI2QVx1MjBEMiIgfSwKKyAgIiZubHQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODE0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjZFIiB9LAorICAiJm5sdHJpOyI6IHsgImNvZGVwb2ludHMiOiBbODkzOF0sICJjaGFyYWN0ZXJzIjogIlx1MjJFQSIgfSwKKyAgIiZubHRyaWU7IjogeyAiY29kZXBvaW50cyI6IFs4OTQwXSwgImNoYXJhY3RlcnMiOiAiXHUyMkVDIiB9LAorICAiJm5MdHY7IjogeyAiY29kZXBvaW50cyI6IFs4ODEwLCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNkFcdTAzMzgiIH0sCisgICImbm1pZDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDBdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjQiIH0sCisgICImTm9CcmVhazsiOiB7ICJjb2RlcG9pbnRzIjogWzgyODhdLCAiY2hhcmFjdGVycyI6ICJcdTIwNjAiIH0sCisgICImTm9uQnJlYWtpbmdTcGFjZTsiOiB7ICJjb2RlcG9pbnRzIjogWzE2MF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBMCIgfSwKKyAgIiZub3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTU5XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDVGIiB9LAorICAiJk5vcGY7IjogeyAiY29kZXBvaW50cyI6IFs4NDY5XSwgImNoYXJhY3RlcnMiOiAiXHUyMTE1IiB9LAorICAiJk5vdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTg4XSwgImNoYXJhY3RlcnMiOiAiXHUyQUVDIiB9LAorICAiJm5vdDsiOiB7ICJjb2RlcG9pbnRzIjogWzE3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDBBQyIgfSwKKyAgIiZub3QiOiB7ICJjb2RlcG9pbnRzIjogWzE3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDBBQyIgfSwKKyAgIiZOb3RDb25ncnVlbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjYyIiB9LAorICAiJk5vdEN1cENhcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTNdLCAiY2hhcmFjdGVycyI6ICJcdTIyNkQiIH0sCisgICImTm90RG91YmxlVmVydGljYWxCYXI7IjogeyAiY29kZXBvaW50cyI6IFs4NzQyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjI2IiB9LAorICAiJk5vdEVsZW1lbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzEzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjA5IiB9LAorICAiJk5vdEVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODgwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjI2MCIgfSwKKyAgIiZOb3RFcXVhbFRpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbODc3MCwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjQyXHUwMzM4IiB9LAorICAiJk5vdEV4aXN0czsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MDhdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDQiIH0sCisgICImTm90R3JlYXRlcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTVdLCAiY2hhcmFjdGVycyI6ICJcdTIyNkYiIH0sCisgICImTm90R3JlYXRlckVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODgxN10sICJjaGFyYWN0ZXJzIjogIlx1MjI3MSIgfSwKKyAgIiZOb3RHcmVhdGVyRnVsbEVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODgwNywgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjY3XHUwMzM4IiB9LAorICAiJk5vdEdyZWF0ZXJHcmVhdGVyOyI6IHsgImNvZGVwb2ludHMiOiBbODgxMSwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjZCXHUwMzM4IiB9LAorICAiJk5vdEdyZWF0ZXJMZXNzOyI6IHsgImNvZGVwb2ludHMiOiBbODgyNV0sICJjaGFyYWN0ZXJzIjogIlx1MjI3OSIgfSwKKyAgIiZOb3RHcmVhdGVyU2xhbnRFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODc4LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBN0VcdTAzMzgiIH0sCisgICImTm90R3JlYXRlclRpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbODgyMV0sICJjaGFyYWN0ZXJzIjogIlx1MjI3NSIgfSwKKyAgIiZOb3RIdW1wRG93bkh1bXA7IjogeyAiY29kZXBvaW50cyI6IFs4NzgyLCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyNEVcdTAzMzgiIH0sCisgICImTm90SHVtcEVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODc4MywgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjRGXHUwMzM4IiB9LAorICAiJm5vdGluOyI6IHsgImNvZGVwb2ludHMiOiBbODcxM10sICJjaGFyYWN0ZXJzIjogIlx1MjIwOSIgfSwKKyAgIiZub3RpbmRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NDksIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjJGNVx1MDMzOCIgfSwKKyAgIiZub3RpbkU7IjogeyAiY29kZXBvaW50cyI6IFs4OTUzLCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyRjlcdTAzMzgiIH0sCisgICImbm90aW52YTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MTNdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDkiIH0sCisgICImbm90aW52YjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NTFdLCAiY2hhcmFjdGVycyI6ICJcdTIyRjciIH0sCisgICImbm90aW52YzsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NTBdLCAiY2hhcmFjdGVycyI6ICJcdTIyRjYiIH0sCisgICImTm90TGVmdFRyaWFuZ2xlQmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3MDMsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjlDRlx1MDMzOCIgfSwKKyAgIiZOb3RMZWZ0VHJpYW5nbGU7IjogeyAiY29kZXBvaW50cyI6IFs4OTM4XSwgImNoYXJhY3RlcnMiOiAiXHUyMkVBIiB9LAorICAiJk5vdExlZnRUcmlhbmdsZUVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODk0MF0sICJjaGFyYWN0ZXJzIjogIlx1MjJFQyIgfSwKKyAgIiZOb3RMZXNzOyI6IHsgImNvZGVwb2ludHMiOiBbODgxNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI2RSIgfSwKKyAgIiZOb3RMZXNzRXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODE2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjcwIiB9LAorICAiJk5vdExlc3NHcmVhdGVyOyI6IHsgImNvZGVwb2ludHMiOiBbODgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI3OCIgfSwKKyAgIiZOb3RMZXNzTGVzczsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MTAsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI2QVx1MDMzOCIgfSwKKyAgIiZOb3RMZXNzU2xhbnRFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODc3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBN0RcdTAzMzgiIH0sCisgICImTm90TGVzc1RpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbODgyMF0sICJjaGFyYWN0ZXJzIjogIlx1MjI3NCIgfSwKKyAgIiZOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTE0LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQTJcdTAzMzgiIH0sCisgICImTm90TmVzdGVkTGVzc0xlc3M7IjogeyAiY29kZXBvaW50cyI6IFsxMDkxMywgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyQUExXHUwMzM4IiB9LAorICAiJm5vdG5pOyI6IHsgImNvZGVwb2ludHMiOiBbODcxNl0sICJjaGFyYWN0ZXJzIjogIlx1MjIwQyIgfSwKKyAgIiZub3RuaXZhOyI6IHsgImNvZGVwb2ludHMiOiBbODcxNl0sICJjaGFyYWN0ZXJzIjogIlx1MjIwQyIgfSwKKyAgIiZub3RuaXZiOyI6IHsgImNvZGVwb2ludHMiOiBbODk1OF0sICJjaGFyYWN0ZXJzIjogIlx1MjJGRSIgfSwKKyAgIiZub3RuaXZjOyI6IHsgImNvZGVwb2ludHMiOiBbODk1N10sICJjaGFyYWN0ZXJzIjogIlx1MjJGRCIgfSwKKyAgIiZOb3RQcmVjZWRlczsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzJdLCAiY2hhcmFjdGVycyI6ICJcdTIyODAiIH0sCisgICImTm90UHJlY2VkZXNFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQUZcdTAzMzgiIH0sCisgICImTm90UHJlY2VkZXNTbGFudEVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODkyOF0sICJjaGFyYWN0ZXJzIjogIlx1MjJFMCIgfSwKKyAgIiZOb3RSZXZlcnNlRWxlbWVudDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MTZdLCAiY2hhcmFjdGVycyI6ICJcdTIyMEMiIH0sCisgICImTm90UmlnaHRUcmlhbmdsZUJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzA0LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTI5RDBcdTAzMzgiIH0sCisgICImTm90UmlnaHRUcmlhbmdsZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MzldLCAiY2hhcmFjdGVycyI6ICJcdTIyRUIiIH0sCisgICImTm90UmlnaHRUcmlhbmdsZUVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODk0MV0sICJjaGFyYWN0ZXJzIjogIlx1MjJFRCIgfSwKKyAgIiZOb3RTcXVhcmVTdWJzZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODQ3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyOEZcdTAzMzgiIH0sCisgICImTm90U3F1YXJlU3Vic2V0RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4OTMwXSwgImNoYXJhY3RlcnMiOiAiXHUyMkUyIiB9LAorICAiJk5vdFNxdWFyZVN1cGVyc2V0OyI6IHsgImNvZGVwb2ludHMiOiBbODg0OCwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjkwXHUwMzM4IiB9LAorICAiJk5vdFNxdWFyZVN1cGVyc2V0RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4OTMxXSwgImNoYXJhY3RlcnMiOiAiXHUyMkUzIiB9LAorICAiJk5vdFN1YnNldDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzQsIDg0MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyODJcdTIwRDIiIH0sCisgICImTm90U3Vic2V0RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODQwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjg4IiB9LAorICAiJk5vdFN1Y2NlZWRzOyI6IHsgImNvZGVwb2ludHMiOiBbODgzM10sICJjaGFyYWN0ZXJzIjogIlx1MjI4MSIgfSwKKyAgIiZOb3RTdWNjZWVkc0VxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MjgsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFCMFx1MDMzOCIgfSwKKyAgIiZOb3RTdWNjZWVkc1NsYW50RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4OTI5XSwgImNoYXJhY3RlcnMiOiAiXHUyMkUxIiB9LAorICAiJk5vdFN1Y2NlZWRzVGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFs4ODMxLCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyN0ZcdTAzMzgiIH0sCisgICImTm90U3VwZXJzZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODM1LCA4NDAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjgzXHUyMEQyIiB9LAorICAiJk5vdFN1cGVyc2V0RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjg5IiB9LAorICAiJk5vdFRpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbODc2OV0sICJjaGFyYWN0ZXJzIjogIlx1MjI0MSIgfSwKKyAgIiZOb3RUaWxkZUVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODc3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjI0NCIgfSwKKyAgIiZOb3RUaWxkZUZ1bGxFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzVdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDciIH0sCisgICImTm90VGlsZGVUaWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzddLCAiY2hhcmFjdGVycyI6ICJcdTIyNDkiIH0sCisgICImTm90VmVydGljYWxCYXI7IjogeyAiY29kZXBvaW50cyI6IFs4NzQwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjI0IiB9LAorICAiJm5wYXJhbGxlbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjYiIH0sCisgICImbnBhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjYiIH0sCisgICImbnBhcnNsOyI6IHsgImNvZGVwb2ludHMiOiBbMTEwMDUsIDg0MjFdLCAiY2hhcmFjdGVycyI6ICJcdTJBRkRcdTIwRTUiIH0sCisgICImbnBhcnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzA2LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDJcdTAzMzgiIH0sCisgICImbnBvbGludDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzcyXSwgImNoYXJhY3RlcnMiOiAiXHUyQTE0IiB9LAorICAiJm5wcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzJdLCAiY2hhcmFjdGVycyI6ICJcdTIyODAiIH0sCisgICImbnByY3VlOyI6IHsgImNvZGVwb2ludHMiOiBbODkyOF0sICJjaGFyYWN0ZXJzIjogIlx1MjJFMCIgfSwKKyAgIiZucHJlYzsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzJdLCAiY2hhcmFjdGVycyI6ICJcdTIyODAiIH0sCisgICImbnByZWNlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQUZcdTAzMzgiIH0sCisgICImbnByZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI3LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQUZcdTAzMzgiIH0sCisgICImbnJhcnJjOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1NDcsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjkzM1x1MDMzOCIgfSwKKyAgIiZucmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDNdLCAiY2hhcmFjdGVycyI6ICJcdTIxOUIiIH0sCisgICImbnJBcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjU1XSwgImNoYXJhY3RlcnMiOiAiXHUyMUNGIiB9LAorICAiJm5yYXJydzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDUsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjE5RFx1MDMzOCIgfSwKKyAgIiZucmlnaHRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDNdLCAiY2hhcmFjdGVycyI6ICJcdTIxOUIiIH0sCisgICImblJpZ2h0YXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjU1XSwgImNoYXJhY3RlcnMiOiAiXHUyMUNGIiB9LAorICAiJm5ydHJpOyI6IHsgImNvZGVwb2ludHMiOiBbODkzOV0sICJjaGFyYWN0ZXJzIjogIlx1MjJFQiIgfSwKKyAgIiZucnRyaWU7IjogeyAiY29kZXBvaW50cyI6IFs4OTQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMkVEIiB9LAorICAiJm5zYzsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzNdLCAiY2hhcmFjdGVycyI6ICJcdTIyODEiIH0sCisgICImbnNjY3VlOyI6IHsgImNvZGVwb2ludHMiOiBbODkyOV0sICJjaGFyYWN0ZXJzIjogIlx1MjJFMSIgfSwKKyAgIiZuc2NlOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MjgsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFCMFx1MDMzOCIgfSwKKyAgIiZOc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTc3XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0E5IiB9LAorICAiJm5zY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMDNdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQzMiIH0sCisgICImbnNob3J0bWlkOyI6IHsgImNvZGVwb2ludHMiOiBbODc0MF0sICJjaGFyYWN0ZXJzIjogIlx1MjIyNCIgfSwKKyAgIiZuc2hvcnRwYXJhbGxlbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjYiIH0sCisgICImbnNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjldLCAiY2hhcmFjdGVycyI6ICJcdTIyNDEiIH0sCisgICImbnNpbWU7IjogeyAiY29kZXBvaW50cyI6IFs4NzcyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjQ0IiB9LAorICAiJm5zaW1lcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzJdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDQiIH0sCisgICImbnNtaWQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzQwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjI0IiB9LAorICAiJm5zcGFyOyI6IHsgImNvZGVwb2ludHMiOiBbODc0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjIyNiIgfSwKKyAgIiZuc3FzdWJlOyI6IHsgImNvZGVwb2ludHMiOiBbODkzMF0sICJjaGFyYWN0ZXJzIjogIlx1MjJFMiIgfSwKKyAgIiZuc3FzdXBlOyI6IHsgImNvZGVwb2ludHMiOiBbODkzMV0sICJjaGFyYWN0ZXJzIjogIlx1MjJFMyIgfSwKKyAgIiZuc3ViOyI6IHsgImNvZGVwb2ludHMiOiBbODgzNl0sICJjaGFyYWN0ZXJzIjogIlx1MjI4NCIgfSwKKyAgIiZuc3ViRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTQ5LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQzVcdTAzMzgiIH0sCisgICImbnN1YmU7IjogeyAiY29kZXBvaW50cyI6IFs4ODQwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjg4IiB9LAorICAiJm5zdWJzZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODM0LCA4NDAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjgyXHUyMEQyIiB9LAorICAiJm5zdWJzZXRlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NDBdLCAiY2hhcmFjdGVycyI6ICJcdTIyODgiIH0sCisgICImbnN1YnNldGVxcTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTQ5LCA4MjRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQzVcdTAzMzgiIH0sCisgICImbnN1Y2M7IjogeyAiY29kZXBvaW50cyI6IFs4ODMzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjgxIiB9LAorICAiJm5zdWNjZXE7IjogeyAiY29kZXBvaW50cyI6IFsxMDkyOCwgODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyQUIwXHUwMzM4IiB9LAorICAiJm5zdXA7IjogeyAiY29kZXBvaW50cyI6IFs4ODM3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjg1IiB9LAorICAiJm5zdXBFOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NTAsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFDNlx1MDMzOCIgfSwKKyAgIiZuc3VwZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NDFdLCAiY2hhcmFjdGVycyI6ICJcdTIyODkiIH0sCisgICImbnN1cHNldDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzUsIDg0MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyODNcdTIwRDIiIH0sCisgICImbnN1cHNldGVxOyI6IHsgImNvZGVwb2ludHMiOiBbODg0MV0sICJjaGFyYWN0ZXJzIjogIlx1MjI4OSIgfSwKKyAgIiZuc3Vwc2V0ZXFxOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NTAsIDgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFDNlx1MDMzOCIgfSwKKyAgIiZudGdsOyI6IHsgImNvZGVwb2ludHMiOiBbODgyNV0sICJjaGFyYWN0ZXJzIjogIlx1MjI3OSIgfSwKKyAgIiZOdGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFsyMDldLCAiY2hhcmFjdGVycyI6ICJcdTAwRDEiIH0sCisgICImTnRpbGRlIjogeyAiY29kZXBvaW50cyI6IFsyMDldLCAiY2hhcmFjdGVycyI6ICJcdTAwRDEiIH0sCisgICImbnRpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjQxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEYxIiB9LAorICAiJm50aWxkZSI6IHsgImNvZGVwb2ludHMiOiBbMjQxXSwgImNoYXJhY3RlcnMiOiAiXHUwMEYxIiB9LAorICAiJm50bGc7IjogeyAiY29kZXBvaW50cyI6IFs4ODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjc4IiB9LAorICAiJm50cmlhbmdsZWxlZnQ7IjogeyAiY29kZXBvaW50cyI6IFs4OTM4XSwgImNoYXJhY3RlcnMiOiAiXHUyMkVBIiB9LAorICAiJm50cmlhbmdsZWxlZnRlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NDBdLCAiY2hhcmFjdGVycyI6ICJcdTIyRUMiIH0sCisgICImbnRyaWFuZ2xlcmlnaHQ7IjogeyAiY29kZXBvaW50cyI6IFs4OTM5XSwgImNoYXJhY3RlcnMiOiAiXHUyMkVCIiB9LAorICAiJm50cmlhbmdsZXJpZ2h0ZXE7IjogeyAiY29kZXBvaW50cyI6IFs4OTQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMkVEIiB9LAorICAiJk51OyI6IHsgImNvZGVwb2ludHMiOiBbOTI1XSwgImNoYXJhY3RlcnMiOiAiXHUwMzlEIiB9LAorICAiJm51OyI6IHsgImNvZGVwb2ludHMiOiBbOTU3XSwgImNoYXJhY3RlcnMiOiAiXHUwM0JEIiB9LAorICAiJm51bTsiOiB7ICJjb2RlcG9pbnRzIjogWzM1XSwgImNoYXJhY3RlcnMiOiAiXHUwMDIzIiB9LAorICAiJm51bWVybzsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzBdLCAiY2hhcmFjdGVycyI6ICJcdTIxMTYiIH0sCisgICImbnVtc3A7IjogeyAiY29kZXBvaW50cyI6IFs4MTk5XSwgImNoYXJhY3RlcnMiOiAiXHUyMDA3IiB9LAorICAiJm52YXA7IjogeyAiY29kZXBvaW50cyI6IFs4NzgxLCA4NDAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjREXHUyMEQyIiB9LAorICAiJm52ZGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NzZdLCAiY2hhcmFjdGVycyI6ICJcdTIyQUMiIH0sCisgICImbnZEYXNoOyI6IHsgImNvZGVwb2ludHMiOiBbODg3N10sICJjaGFyYWN0ZXJzIjogIlx1MjJBRCIgfSwKKyAgIiZuVmRhc2g7IjogeyAiY29kZXBvaW50cyI6IFs4ODc4XSwgImNoYXJhY3RlcnMiOiAiXHUyMkFFIiB9LAorICAiJm5WRGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NzldLCAiY2hhcmFjdGVycyI6ICJcdTIyQUYiIH0sCisgICImbnZnZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MDUsIDg0MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyNjVcdTIwRDIiIH0sCisgICImbnZndDsiOiB7ICJjb2RlcG9pbnRzIjogWzYyLCA4NDAyXSwgImNoYXJhY3RlcnMiOiAiXHUwMDNFXHUyMEQyIiB9LAorICAiJm52SGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTAwXSwgImNoYXJhY3RlcnMiOiAiXHUyOTA0IiB9LAorICAiJm52aW5maW47IjogeyAiY29kZXBvaW50cyI6IFsxMDcxOF0sICJjaGFyYWN0ZXJzIjogIlx1MjlERSIgfSwKKyAgIiZudmxBcnI7IjogeyAiY29kZXBvaW50cyI6IFsxMDQ5OF0sICJjaGFyYWN0ZXJzIjogIlx1MjkwMiIgfSwKKyAgIiZudmxlOyI6IHsgImNvZGVwb2ludHMiOiBbODgwNCwgODQwMl0sICJjaGFyYWN0ZXJzIjogIlx1MjI2NFx1MjBEMiIgfSwKKyAgIiZudmx0OyI6IHsgImNvZGVwb2ludHMiOiBbNjAsIDg0MDJdLCAiY2hhcmFjdGVycyI6ICJcdTAwM0NcdTIwRDIiIH0sCisgICImbnZsdHJpZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODQsIDg0MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjRcdTIwRDIiIH0sCisgICImbnZyQXJyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA0OTldLCAiY2hhcmFjdGVycyI6ICJcdTI5MDMiIH0sCisgICImbnZydHJpZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODUsIDg0MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjVcdTIwRDIiIH0sCisgICImbnZzaW07IjogeyAiY29kZXBvaW50cyI6IFs4NzY0LCA4NDAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjNDXHUyMEQyIiB9LAorICAiJm53YXJoazsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTMxXSwgImNoYXJhY3RlcnMiOiAiXHUyOTIzIiB9LAorICAiJm53YXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODU5OF0sICJjaGFyYWN0ZXJzIjogIlx1MjE5NiIgfSwKKyAgIiZud0FycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjJdLCAiY2hhcmFjdGVycyI6ICJcdTIxRDYiIH0sCisgICImbndhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OThdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTYiIH0sCisgICImbnduZWFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MzVdLCAiY2hhcmFjdGVycyI6ICJcdTI5MjciIH0sCisgICImT2FjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjExXSwgImNoYXJhY3RlcnMiOiAiXHUwMEQzIiB9LAorICAiJk9hY3V0ZSI6IHsgImNvZGVwb2ludHMiOiBbMjExXSwgImNoYXJhY3RlcnMiOiAiXHUwMEQzIiB9LAorICAiJm9hY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzI0M10sICJjaGFyYWN0ZXJzIjogIlx1MDBGMyIgfSwKKyAgIiZvYWN1dGUiOiB7ICJjb2RlcG9pbnRzIjogWzI0M10sICJjaGFyYWN0ZXJzIjogIlx1MDBGMyIgfSwKKyAgIiZvYXN0OyI6IHsgImNvZGVwb2ludHMiOiBbODg1OV0sICJjaGFyYWN0ZXJzIjogIlx1MjI5QiIgfSwKKyAgIiZPY2lyYzsiOiB7ICJjb2RlcG9pbnRzIjogWzIxMl0sICJjaGFyYWN0ZXJzIjogIlx1MDBENCIgfSwKKyAgIiZPY2lyYyI6IHsgImNvZGVwb2ludHMiOiBbMjEyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEQ0IiB9LAorICAiJm9jaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMjQ0XSwgImNoYXJhY3RlcnMiOiAiXHUwMEY0IiB9LAorICAiJm9jaXJjIjogeyAiY29kZXBvaW50cyI6IFsyNDRdLCAiY2hhcmFjdGVycyI6ICJcdTAwRjQiIH0sCisgICImb2NpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NThdLCAiY2hhcmFjdGVycyI6ICJcdTIyOUEiIH0sCisgICImT2N5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA1NF0sICJjaGFyYWN0ZXJzIjogIlx1MDQxRSIgfSwKKyAgIiZvY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDg2XSwgImNoYXJhY3RlcnMiOiAiXHUwNDNFIiB9LAorICAiJm9kYXNoOyI6IHsgImNvZGVwb2ludHMiOiBbODg2MV0sICJjaGFyYWN0ZXJzIjogIlx1MjI5RCIgfSwKKyAgIiZPZGJsYWM7IjogeyAiY29kZXBvaW50cyI6IFszMzZdLCAiY2hhcmFjdGVycyI6ICJcdTAxNTAiIH0sCisgICImb2RibGFjOyI6IHsgImNvZGVwb2ludHMiOiBbMzM3XSwgImNoYXJhY3RlcnMiOiAiXHUwMTUxIiB9LAorICAiJm9kaXY7IjogeyAiY29kZXBvaW50cyI6IFsxMDgwOF0sICJjaGFyYWN0ZXJzIjogIlx1MkEzOCIgfSwKKyAgIiZvZG90OyI6IHsgImNvZGVwb2ludHMiOiBbODg1N10sICJjaGFyYWN0ZXJzIjogIlx1MjI5OSIgfSwKKyAgIiZvZHNvbGQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDY4NF0sICJjaGFyYWN0ZXJzIjogIlx1MjlCQyIgfSwKKyAgIiZPRWxpZzsiOiB7ICJjb2RlcG9pbnRzIjogWzMzOF0sICJjaGFyYWN0ZXJzIjogIlx1MDE1MiIgfSwKKyAgIiZvZWxpZzsiOiB7ICJjb2RlcG9pbnRzIjogWzMzOV0sICJjaGFyYWN0ZXJzIjogIlx1MDE1MyIgfSwKKyAgIiZvZmNpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjg3XSwgImNoYXJhY3RlcnMiOiAiXHUyOUJGIiB9LAorICAiJk9mcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA4Ml0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQxMiIgfSwKKyAgIiZvZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMDhdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMkMiIH0sCisgICImb2dvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzczMV0sICJjaGFyYWN0ZXJzIjogIlx1MDJEQiIgfSwKKyAgIiZPZ3JhdmU7IjogeyAiY29kZXBvaW50cyI6IFsyMTBdLCAiY2hhcmFjdGVycyI6ICJcdTAwRDIiIH0sCisgICImT2dyYXZlIjogeyAiY29kZXBvaW50cyI6IFsyMTBdLCAiY2hhcmFjdGVycyI6ICJcdTAwRDIiIH0sCisgICImb2dyYXZlOyI6IHsgImNvZGVwb2ludHMiOiBbMjQyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEYyIiB9LAorICAiJm9ncmF2ZSI6IHsgImNvZGVwb2ludHMiOiBbMjQyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEYyIiB9LAorICAiJm9ndDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjg5XSwgImNoYXJhY3RlcnMiOiAiXHUyOUMxIiB9LAorICAiJm9oYmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NzddLCAiY2hhcmFjdGVycyI6ICJcdTI5QjUiIH0sCisgICImb2htOyI6IHsgImNvZGVwb2ludHMiOiBbOTM3XSwgImNoYXJhY3RlcnMiOiAiXHUwM0E5IiB9LAorICAiJm9pbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzUwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjJFIiB9LAorICAiJm9sYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODYzNF0sICJjaGFyYWN0ZXJzIjogIlx1MjFCQSIgfSwKKyAgIiZvbGNpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjg2XSwgImNoYXJhY3RlcnMiOiAiXHUyOUJFIiB9LAorICAiJm9sY3Jvc3M7IjogeyAiY29kZXBvaW50cyI6IFsxMDY4M10sICJjaGFyYWN0ZXJzIjogIlx1MjlCQiIgfSwKKyAgIiZvbGluZTsiOiB7ICJjb2RlcG9pbnRzIjogWzgyNTRdLCAiY2hhcmFjdGVycyI6ICJcdTIwM0UiIH0sCisgICImb2x0OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2ODhdLCAiY2hhcmFjdGVycyI6ICJcdTI5QzAiIH0sCisgICImT21hY3I7IjogeyAiY29kZXBvaW50cyI6IFszMzJdLCAiY2hhcmFjdGVycyI6ICJcdTAxNEMiIH0sCisgICImb21hY3I7IjogeyAiY29kZXBvaW50cyI6IFszMzNdLCAiY2hhcmFjdGVycyI6ICJcdTAxNEQiIH0sCisgICImT21lZ2E7IjogeyAiY29kZXBvaW50cyI6IFs5MzddLCAiY2hhcmFjdGVycyI6ICJcdTAzQTkiIH0sCisgICImb21lZ2E7IjogeyAiY29kZXBvaW50cyI6IFs5NjldLCAiY2hhcmFjdGVycyI6ICJcdTAzQzkiIH0sCisgICImT21pY3JvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzkyN10sICJjaGFyYWN0ZXJzIjogIlx1MDM5RiIgfSwKKyAgIiZvbWljcm9uOyI6IHsgImNvZGVwb2ludHMiOiBbOTU5XSwgImNoYXJhY3RlcnMiOiAiXHUwM0JGIiB9LAorICAiJm9taWQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDY3OF0sICJjaGFyYWN0ZXJzIjogIlx1MjlCNiIgfSwKKyAgIiZvbWludXM7IjogeyAiY29kZXBvaW50cyI6IFs4ODU0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjk2IiB9LAorICAiJk9vcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMzRdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENDYiIH0sCisgICImb29wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE2MF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ2MCIgfSwKKyAgIiZvcGFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NzldLCAiY2hhcmFjdGVycyI6ICJcdTI5QjciIH0sCisgICImT3BlbkN1cmx5RG91YmxlUXVvdGU7IjogeyAiY29kZXBvaW50cyI6IFs4MjIwXSwgImNoYXJhY3RlcnMiOiAiXHUyMDFDIiB9LAorICAiJk9wZW5DdXJseVF1b3RlOyI6IHsgImNvZGVwb2ludHMiOiBbODIxNl0sICJjaGFyYWN0ZXJzIjogIlx1MjAxOCIgfSwKKyAgIiZvcGVycDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjgxXSwgImNoYXJhY3RlcnMiOiAiXHUyOUI5IiB9LAorICAiJm9wbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbODg1M10sICJjaGFyYWN0ZXJzIjogIlx1MjI5NSIgfSwKKyAgIiZvcmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzVdLCAiY2hhcmFjdGVycyI6ICJcdTIxQkIiIH0sCisgICImT3I7IjogeyAiY29kZXBvaW50cyI6IFsxMDgzNl0sICJjaGFyYWN0ZXJzIjogIlx1MkE1NCIgfSwKKyAgIiZvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDRdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjgiIH0sCisgICImb3JkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NDVdLCAiY2hhcmFjdGVycyI6ICJcdTJBNUQiIH0sCisgICImb3JkZXI7IjogeyAiY29kZXBvaW50cyI6IFs4NTAwXSwgImNoYXJhY3RlcnMiOiAiXHUyMTM0IiB9LAorICAiJm9yZGVyb2Y7IjogeyAiY29kZXBvaW50cyI6IFs4NTAwXSwgImNoYXJhY3RlcnMiOiAiXHUyMTM0IiB9LAorICAiJm9yZGY7IjogeyAiY29kZXBvaW50cyI6IFsxNzBdLCAiY2hhcmFjdGVycyI6ICJcdTAwQUEiIH0sCisgICImb3JkZiI6IHsgImNvZGVwb2ludHMiOiBbMTcwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEFBIiB9LAorICAiJm9yZG07IjogeyAiY29kZXBvaW50cyI6IFsxODZdLCAiY2hhcmFjdGVycyI6ICJcdTAwQkEiIH0sCisgICImb3JkbSI6IHsgImNvZGVwb2ludHMiOiBbMTg2XSwgImNoYXJhY3RlcnMiOiAiXHUwMEJBIiB9LAorICAiJm9yaWdvZjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODZdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjYiIH0sCisgICImb3JvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODM4XSwgImNoYXJhY3RlcnMiOiAiXHUyQTU2IiB9LAorICAiJm9yc2xvcGU7IjogeyAiY29kZXBvaW50cyI6IFsxMDgzOV0sICJjaGFyYWN0ZXJzIjogIlx1MkE1NyIgfSwKKyAgIiZvcnY7IjogeyAiY29kZXBvaW50cyI6IFsxMDg0M10sICJjaGFyYWN0ZXJzIjogIlx1MkE1QiIgfSwKKyAgIiZvUzsiOiB7ICJjb2RlcG9pbnRzIjogWzk0MTZdLCAiY2hhcmFjdGVycyI6ICJcdTI0QzgiIH0sCisgICImT3NjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk3OF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENBQSIgfSwKKyAgIiZvc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbODUwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjEzNCIgfSwKKyAgIiZPc2xhc2g7IjogeyAiY29kZXBvaW50cyI6IFsyMTZdLCAiY2hhcmFjdGVycyI6ICJcdTAwRDgiIH0sCisgICImT3NsYXNoIjogeyAiY29kZXBvaW50cyI6IFsyMTZdLCAiY2hhcmFjdGVycyI6ICJcdTAwRDgiIH0sCisgICImb3NsYXNoOyI6IHsgImNvZGVwb2ludHMiOiBbMjQ4XSwgImNoYXJhY3RlcnMiOiAiXHUwMEY4IiB9LAorICAiJm9zbGFzaCI6IHsgImNvZGVwb2ludHMiOiBbMjQ4XSwgImNoYXJhY3RlcnMiOiAiXHUwMEY4IiB9LAorICAiJm9zb2w7IjogeyAiY29kZXBvaW50cyI6IFs4ODU2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjk4IiB9LAorICAiJk90aWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzIxM10sICJjaGFyYWN0ZXJzIjogIlx1MDBENSIgfSwKKyAgIiZPdGlsZGUiOiB7ICJjb2RlcG9pbnRzIjogWzIxM10sICJjaGFyYWN0ZXJzIjogIlx1MDBENSIgfSwKKyAgIiZvdGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFsyNDVdLCAiY2hhcmFjdGVycyI6ICJcdTAwRjUiIH0sCisgICImb3RpbGRlIjogeyAiY29kZXBvaW50cyI6IFsyNDVdLCAiY2hhcmFjdGVycyI6ICJcdTAwRjUiIH0sCisgICImb3RpbWVzYXM7IjogeyAiY29kZXBvaW50cyI6IFsxMDgwNl0sICJjaGFyYWN0ZXJzIjogIlx1MkEzNiIgfSwKKyAgIiZPdGltZXM7IjogeyAiY29kZXBvaW50cyI6IFsxMDgwN10sICJjaGFyYWN0ZXJzIjogIlx1MkEzNyIgfSwKKyAgIiZvdGltZXM7IjogeyAiY29kZXBvaW50cyI6IFs4ODU1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjk3IiB9LAorICAiJk91bWw7IjogeyAiY29kZXBvaW50cyI6IFsyMTRdLCAiY2hhcmFjdGVycyI6ICJcdTAwRDYiIH0sCisgICImT3VtbCI6IHsgImNvZGVwb2ludHMiOiBbMjE0XSwgImNoYXJhY3RlcnMiOiAiXHUwMEQ2IiB9LAorICAiJm91bWw7IjogeyAiY29kZXBvaW50cyI6IFsyNDZdLCAiY2hhcmFjdGVycyI6ICJcdTAwRjYiIH0sCisgICImb3VtbCI6IHsgImNvZGVwb2ludHMiOiBbMjQ2XSwgImNoYXJhY3RlcnMiOiAiXHUwMEY2IiB9LAorICAiJm92YmFyOyI6IHsgImNvZGVwb2ludHMiOiBbOTAyMV0sICJjaGFyYWN0ZXJzIjogIlx1MjMzRCIgfSwKKyAgIiZPdmVyQmFyOyI6IHsgImNvZGVwb2ludHMiOiBbODI1NF0sICJjaGFyYWN0ZXJzIjogIlx1MjAzRSIgfSwKKyAgIiZPdmVyQnJhY2U7IjogeyAiY29kZXBvaW50cyI6IFs5MTgyXSwgImNoYXJhY3RlcnMiOiAiXHUyM0RFIiB9LAorICAiJk92ZXJCcmFja2V0OyI6IHsgImNvZGVwb2ludHMiOiBbOTE0MF0sICJjaGFyYWN0ZXJzIjogIlx1MjNCNCIgfSwKKyAgIiZPdmVyUGFyZW50aGVzaXM7IjogeyAiY29kZXBvaW50cyI6IFs5MTgwXSwgImNoYXJhY3RlcnMiOiAiXHUyM0RDIiB9LAorICAiJnBhcmE7IjogeyAiY29kZXBvaW50cyI6IFsxODJdLCAiY2hhcmFjdGVycyI6ICJcdTAwQjYiIH0sCisgICImcGFyYSI6IHsgImNvZGVwb2ludHMiOiBbMTgyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEI2IiB9LAorICAiJnBhcmFsbGVsOyI6IHsgImNvZGVwb2ludHMiOiBbODc0MV0sICJjaGFyYWN0ZXJzIjogIlx1MjIyNSIgfSwKKyAgIiZwYXI7IjogeyAiY29kZXBvaW50cyI6IFs4NzQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjI1IiB9LAorICAiJnBhcnNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTk1XSwgImNoYXJhY3RlcnMiOiAiXHUyQUYzIiB9LAorICAiJnBhcnNsOyI6IHsgImNvZGVwb2ludHMiOiBbMTEwMDVdLCAiY2hhcmFjdGVycyI6ICJcdTJBRkQiIH0sCisgICImcGFydDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MDZdLCAiY2hhcmFjdGVycyI6ICJcdTIyMDIiIH0sCisgICImUGFydGlhbEQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzA2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjAyIiB9LAorICAiJlBjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTVdLCAiY2hhcmFjdGVycyI6ICJcdTA0MUYiIH0sCisgICImcGN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4N10sICJjaGFyYWN0ZXJzIjogIlx1MDQzRiIgfSwKKyAgIiZwZXJjbnQ7IjogeyAiY29kZXBvaW50cyI6IFszN10sICJjaGFyYWN0ZXJzIjogIlx1MDAyNSIgfSwKKyAgIiZwZXJpb2Q7IjogeyAiY29kZXBvaW50cyI6IFs0Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDAyRSIgfSwKKyAgIiZwZXJtaWw7IjogeyAiY29kZXBvaW50cyI6IFs4MjQwXSwgImNoYXJhY3RlcnMiOiAiXHUyMDMwIiB9LAorICAiJnBlcnA7IjogeyAiY29kZXBvaW50cyI6IFs4ODY5XSwgImNoYXJhY3RlcnMiOiAiXHUyMkE1IiB9LAorICAiJnBlcnRlbms7IjogeyAiY29kZXBvaW50cyI6IFs4MjQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMDMxIiB9LAorICAiJlBmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA4M10sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQxMyIgfSwKKyAgIiZwZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMDldLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMkQiIH0sCisgICImUGhpOyI6IHsgImNvZGVwb2ludHMiOiBbOTM0XSwgImNoYXJhY3RlcnMiOiAiXHUwM0E2IiB9LAorICAiJnBoaTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDNDNiIgfSwKKyAgIiZwaGl2OyI6IHsgImNvZGVwb2ludHMiOiBbOTgxXSwgImNoYXJhY3RlcnMiOiAiXHUwM0Q1IiB9LAorICAiJnBobW1hdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0OTldLCAiY2hhcmFjdGVycyI6ICJcdTIxMzMiIH0sCisgICImcGhvbmU7IjogeyAiY29kZXBvaW50cyI6IFs5NzQyXSwgImNoYXJhY3RlcnMiOiAiXHUyNjBFIiB9LAorICAiJlBpOyI6IHsgImNvZGVwb2ludHMiOiBbOTI4XSwgImNoYXJhY3RlcnMiOiAiXHUwM0EwIiB9LAorICAiJnBpOyI6IHsgImNvZGVwb2ludHMiOiBbOTYwXSwgImNoYXJhY3RlcnMiOiAiXHUwM0MwIiB9LAorICAiJnBpdGNoZm9yazsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MTZdLCAiY2hhcmFjdGVycyI6ICJcdTIyRDQiIH0sCisgICImcGl2OyI6IHsgImNvZGVwb2ludHMiOiBbOTgyXSwgImNoYXJhY3RlcnMiOiAiXHUwM0Q2IiB9LAorICAiJnBsYW5jazsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjNdLCAiY2hhcmFjdGVycyI6ICJcdTIxMEYiIH0sCisgICImcGxhbmNraDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjJdLCAiY2hhcmFjdGVycyI6ICJcdTIxMEUiIH0sCisgICImcGxhbmt2OyI6IHsgImNvZGVwb2ludHMiOiBbODQ2M10sICJjaGFyYWN0ZXJzIjogIlx1MjEwRiIgfSwKKyAgIiZwbHVzYWNpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzg3XSwgImNoYXJhY3RlcnMiOiAiXHUyQTIzIiB9LAorICAiJnBsdXNiOyI6IHsgImNvZGVwb2ludHMiOiBbODg2Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjI5RSIgfSwKKyAgIiZwbHVzY2lyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3ODZdLCAiY2hhcmFjdGVycyI6ICJcdTJBMjIiIH0sCisgICImcGx1czsiOiB7ICJjb2RlcG9pbnRzIjogWzQzXSwgImNoYXJhY3RlcnMiOiAiXHUwMDJCIiB9LAorICAiJnBsdXNkbzsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTQiIH0sCisgICImcGx1c2R1OyI6IHsgImNvZGVwb2ludHMiOiBbMTA3ODldLCAiY2hhcmFjdGVycyI6ICJcdTJBMjUiIH0sCisgICImcGx1c2U7IjogeyAiY29kZXBvaW50cyI6IFsxMDg2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MkE3MiIgfSwKKyAgIiZQbHVzTWludXM7IjogeyAiY29kZXBvaW50cyI6IFsxNzddLCAiY2hhcmFjdGVycyI6ICJcdTAwQjEiIH0sCisgICImcGx1c21uOyI6IHsgImNvZGVwb2ludHMiOiBbMTc3XSwgImNoYXJhY3RlcnMiOiAiXHUwMEIxIiB9LAorICAiJnBsdXNtbiI6IHsgImNvZGVwb2ludHMiOiBbMTc3XSwgImNoYXJhY3RlcnMiOiAiXHUwMEIxIiB9LAorICAiJnBsdXNzaW07IjogeyAiY29kZXBvaW50cyI6IFsxMDc5MF0sICJjaGFyYWN0ZXJzIjogIlx1MkEyNiIgfSwKKyAgIiZwbHVzdHdvOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3OTFdLCAiY2hhcmFjdGVycyI6ICJcdTJBMjciIH0sCisgICImcG07IjogeyAiY29kZXBvaW50cyI6IFsxNzddLCAiY2hhcmFjdGVycyI6ICJcdTAwQjEiIH0sCisgICImUG9pbmNhcmVwbGFuZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NjBdLCAiY2hhcmFjdGVycyI6ICJcdTIxMEMiIH0sCisgICImcG9pbnRpbnQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDc3M10sICJjaGFyYWN0ZXJzIjogIlx1MkExNSIgfSwKKyAgIiZwb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTYxXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDYxIiB9LAorICAiJlBvcGY7IjogeyAiY29kZXBvaW50cyI6IFs4NDczXSwgImNoYXJhY3RlcnMiOiAiXHUyMTE5IiB9LAorICAiJnBvdW5kOyI6IHsgImNvZGVwb2ludHMiOiBbMTYzXSwgImNoYXJhY3RlcnMiOiAiXHUwMEEzIiB9LAorICAiJnBvdW5kIjogeyAiY29kZXBvaW50cyI6IFsxNjNdLCAiY2hhcmFjdGVycyI6ICJcdTAwQTMiIH0sCisgICImcHJhcDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTM1XSwgImNoYXJhY3RlcnMiOiAiXHUyQUI3IiB9LAorICAiJlByOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MzldLCAiY2hhcmFjdGVycyI6ICJcdTJBQkIiIH0sCisgICImcHI7IjogeyAiY29kZXBvaW50cyI6IFs4ODI2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjdBIiB9LAorICAiJnByY3VlOyI6IHsgImNvZGVwb2ludHMiOiBbODgyOF0sICJjaGFyYWN0ZXJzIjogIlx1MjI3QyIgfSwKKyAgIiZwcmVjYXBwcm94OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MzVdLCAiY2hhcmFjdGVycyI6ICJcdTJBQjciIH0sCisgICImcHJlYzsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MjZdLCAiY2hhcmFjdGVycyI6ICJcdTIyN0EiIH0sCisgICImcHJlY2N1cmx5ZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODI4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjdDIiB9LAorICAiJlByZWNlZGVzOyI6IHsgImNvZGVwb2ludHMiOiBbODgyNl0sICJjaGFyYWN0ZXJzIjogIlx1MjI3QSIgfSwKKyAgIiZQcmVjZWRlc0VxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MjddLCAiY2hhcmFjdGVycyI6ICJcdTJBQUYiIH0sCisgICImUHJlY2VkZXNTbGFudEVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODgyOF0sICJjaGFyYWN0ZXJzIjogIlx1MjI3QyIgfSwKKyAgIiZQcmVjZWRlc1RpbGRlOyI6IHsgImNvZGVwb2ludHMiOiBbODgzMF0sICJjaGFyYWN0ZXJzIjogIlx1MjI3RSIgfSwKKyAgIiZwcmVjZXE7IjogeyAiY29kZXBvaW50cyI6IFsxMDkyN10sICJjaGFyYWN0ZXJzIjogIlx1MkFBRiIgfSwKKyAgIiZwcmVjbmFwcHJveDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTM3XSwgImNoYXJhY3RlcnMiOiAiXHUyQUI5IiB9LAorICAiJnByZWNuZXFxOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MzNdLCAiY2hhcmFjdGVycyI6ICJcdTJBQjUiIH0sCisgICImcHJlY25zaW07IjogeyAiY29kZXBvaW50cyI6IFs4OTM2XSwgImNoYXJhY3RlcnMiOiAiXHUyMkU4IiB9LAorICAiJnByZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI3XSwgImNoYXJhY3RlcnMiOiAiXHUyQUFGIiB9LAorICAiJnByRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTMxXSwgImNoYXJhY3RlcnMiOiAiXHUyQUIzIiB9LAorICAiJnByZWNzaW07IjogeyAiY29kZXBvaW50cyI6IFs4ODMwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjdFIiB9LAorICAiJnByaW1lOyI6IHsgImNvZGVwb2ludHMiOiBbODI0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjAzMiIgfSwKKyAgIiZQcmltZTsiOiB7ICJjb2RlcG9pbnRzIjogWzgyNDNdLCAiY2hhcmFjdGVycyI6ICJcdTIwMzMiIH0sCisgICImcHJpbWVzOyI6IHsgImNvZGVwb2ludHMiOiBbODQ3M10sICJjaGFyYWN0ZXJzIjogIlx1MjExOSIgfSwKKyAgIiZwcm5hcDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTM3XSwgImNoYXJhY3RlcnMiOiAiXHUyQUI5IiB9LAorICAiJnBybkU7IjogeyAiY29kZXBvaW50cyI6IFsxMDkzM10sICJjaGFyYWN0ZXJzIjogIlx1MkFCNSIgfSwKKyAgIiZwcm5zaW07IjogeyAiY29kZXBvaW50cyI6IFs4OTM2XSwgImNoYXJhY3RlcnMiOiAiXHUyMkU4IiB9LAorICAiJnByb2Q7IjogeyAiY29kZXBvaW50cyI6IFs4NzE5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjBGIiB9LAorICAiJlByb2R1Y3Q7IjogeyAiY29kZXBvaW50cyI6IFs4NzE5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjBGIiB9LAorICAiJnByb2ZhbGFyOyI6IHsgImNvZGVwb2ludHMiOiBbOTAwNl0sICJjaGFyYWN0ZXJzIjogIlx1MjMyRSIgfSwKKyAgIiZwcm9mbGluZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NzhdLCAiY2hhcmFjdGVycyI6ICJcdTIzMTIiIH0sCisgICImcHJvZnN1cmY7IjogeyAiY29kZXBvaW50cyI6IFs4OTc5XSwgImNoYXJhY3RlcnMiOiAiXHUyMzEzIiB9LAorICAiJnByb3A7IjogeyAiY29kZXBvaW50cyI6IFs4NzMzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjFEIiB9LAorICAiJlByb3BvcnRpb25hbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MzNdLCAiY2hhcmFjdGVycyI6ICJcdTIyMUQiIH0sCisgICImUHJvcG9ydGlvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NTldLCAiY2hhcmFjdGVycyI6ICJcdTIyMzciIH0sCisgICImcHJvcHRvOyI6IHsgImNvZGVwb2ludHMiOiBbODczM10sICJjaGFyYWN0ZXJzIjogIlx1MjIxRCIgfSwKKyAgIiZwcnNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzBdLCAiY2hhcmFjdGVycyI6ICJcdTIyN0UiIH0sCisgICImcHJ1cmVsOyI6IHsgImNvZGVwb2ludHMiOiBbODg4MF0sICJjaGFyYWN0ZXJzIjogIlx1MjJCMCIgfSwKKyAgIiZQc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTc5XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0FCIiB9LAorICAiJnBzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMDVdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQzUiIH0sCisgICImUHNpOyI6IHsgImNvZGVwb2ludHMiOiBbOTM2XSwgImNoYXJhY3RlcnMiOiAiXHUwM0E4IiB9LAorICAiJnBzaTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2OF0sICJjaGFyYWN0ZXJzIjogIlx1MDNDOCIgfSwKKyAgIiZwdW5jc3A7IjogeyAiY29kZXBvaW50cyI6IFs4MjAwXSwgImNoYXJhY3RlcnMiOiAiXHUyMDA4IiB9LAorICAiJlFmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA4NF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQxNCIgfSwKKyAgIiZxZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMTBdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMkUiIH0sCisgICImcWludDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzY0XSwgImNoYXJhY3RlcnMiOiAiXHUyQTBDIiB9LAorICAiJnFvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNjJdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENjIiIH0sCisgICImUW9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzRdLCAiY2hhcmFjdGVycyI6ICJcdTIxMUEiIH0sCisgICImcXByaW1lOyI6IHsgImNvZGVwb2ludHMiOiBbODI3OV0sICJjaGFyYWN0ZXJzIjogIlx1MjA1NyIgfSwKKyAgIiZRc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTgwXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0FDIiB9LAorICAiJnFzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMDZdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQzYiIH0sCisgICImcXVhdGVybmlvbnM7IjogeyAiY29kZXBvaW50cyI6IFs4NDYxXSwgImNoYXJhY3RlcnMiOiAiXHUyMTBEIiB9LAorICAiJnF1YXRpbnQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDc3NF0sICJjaGFyYWN0ZXJzIjogIlx1MkExNiIgfSwKKyAgIiZxdWVzdDsiOiB7ICJjb2RlcG9pbnRzIjogWzYzXSwgImNoYXJhY3RlcnMiOiAiXHUwMDNGIiB9LAorICAiJnF1ZXN0ZXE7IjogeyAiY29kZXBvaW50cyI6IFs4Nzk5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjVGIiB9LAorICAiJnF1b3Q7IjogeyAiY29kZXBvaW50cyI6IFszNF0sICJjaGFyYWN0ZXJzIjogIlx1MDAyMiIgfSwKKyAgIiZxdW90IjogeyAiY29kZXBvaW50cyI6IFszNF0sICJjaGFyYWN0ZXJzIjogIlx1MDAyMiIgfSwKKyAgIiZRVU9UOyI6IHsgImNvZGVwb2ludHMiOiBbMzRdLCAiY2hhcmFjdGVycyI6ICJcdTAwMjIiIH0sCisgICImUVVPVCI6IHsgImNvZGVwb2ludHMiOiBbMzRdLCAiY2hhcmFjdGVycyI6ICJcdTAwMjIiIH0sCisgICImckFhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjY3XSwgImNoYXJhY3RlcnMiOiAiXHUyMURCIiB9LAorICAiJnJhY2U7IjogeyAiY29kZXBvaW50cyI6IFs4NzY1LCA4MTddLCAiY2hhcmFjdGVycyI6ICJcdTIyM0RcdTAzMzEiIH0sCisgICImUmFjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMzQwXSwgImNoYXJhY3RlcnMiOiAiXHUwMTU0IiB9LAorICAiJnJhY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzM0MV0sICJjaGFyYWN0ZXJzIjogIlx1MDE1NSIgfSwKKyAgIiZyYWRpYzsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MzBdLCAiY2hhcmFjdGVycyI6ICJcdTIyMUEiIH0sCisgICImcmFlbXB0eXY7IjogeyAiY29kZXBvaW50cyI6IFsxMDY3NV0sICJjaGFyYWN0ZXJzIjogIlx1MjlCMyIgfSwKKyAgIiZyYW5nOyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMTddLCAiY2hhcmFjdGVycyI6ICJcdTI3RTkiIH0sCisgICImUmFuZzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjE5XSwgImNoYXJhY3RlcnMiOiAiXHUyN0VCIiB9LAorICAiJnJhbmdkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NDJdLCAiY2hhcmFjdGVycyI6ICJcdTI5OTIiIH0sCisgICImcmFuZ2U7IjogeyAiY29kZXBvaW50cyI6IFsxMDY2MV0sICJjaGFyYWN0ZXJzIjogIlx1MjlBNSIgfSwKKyAgIiZyYW5nbGU7IjogeyAiY29kZXBvaW50cyI6IFsxMDIxN10sICJjaGFyYWN0ZXJzIjogIlx1MjdFOSIgfSwKKyAgIiZyYXF1bzsiOiB7ICJjb2RlcG9pbnRzIjogWzE4N10sICJjaGFyYWN0ZXJzIjogIlx1MDBCQiIgfSwKKyAgIiZyYXF1byI6IHsgImNvZGVwb2ludHMiOiBbMTg3XSwgImNoYXJhY3RlcnMiOiAiXHUwMEJCIiB9LAorICAiJnJhcnJhcDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjEzXSwgImNoYXJhY3RlcnMiOiAiXHUyOTc1IiB9LAorICAiJnJhcnJiOyI6IHsgImNvZGVwb2ludHMiOiBbODY3N10sICJjaGFyYWN0ZXJzIjogIlx1MjFFNSIgfSwKKyAgIiZyYXJyYmZzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MjhdLCAiY2hhcmFjdGVycyI6ICJcdTI5MjAiIH0sCisgICImcmFycmM7IjogeyAiY29kZXBvaW50cyI6IFsxMDU0N10sICJjaGFyYWN0ZXJzIjogIlx1MjkzMyIgfSwKKyAgIiZyYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODU5NF0sICJjaGFyYWN0ZXJzIjogIlx1MjE5MiIgfSwKKyAgIiZSYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODYwOF0sICJjaGFyYWN0ZXJzIjogIlx1MjFBMCIgfSwKKyAgIiZyQXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY1OF0sICJjaGFyYWN0ZXJzIjogIlx1MjFEMiIgfSwKKyAgIiZyYXJyZnM7IjogeyAiY29kZXBvaW50cyI6IFsxMDUyNl0sICJjaGFyYWN0ZXJzIjogIlx1MjkxRSIgfSwKKyAgIiZyYXJyaGs7IjogeyAiY29kZXBvaW50cyI6IFs4NjE4XSwgImNoYXJhY3RlcnMiOiAiXHUyMUFBIiB9LAorICAiJnJhcnJscDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MjBdLCAiY2hhcmFjdGVycyI6ICJcdTIxQUMiIH0sCisgICImcmFycnBsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1NjVdLCAiY2hhcmFjdGVycyI6ICJcdTI5NDUiIH0sCisgICImcmFycnNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjEyXSwgImNoYXJhY3RlcnMiOiAiXHUyOTc0IiB9LAorICAiJlJhcnJ0bDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTE4XSwgImNoYXJhY3RlcnMiOiAiXHUyOTE2IiB9LAorICAiJnJhcnJ0bDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MTFdLCAiY2hhcmFjdGVycyI6ICJcdTIxQTMiIH0sCisgICImcmFycnc7IjogeyAiY29kZXBvaW50cyI6IFs4NjA1XSwgImNoYXJhY3RlcnMiOiAiXHUyMTlEIiB9LAorICAiJnJhdGFpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTIyXSwgImNoYXJhY3RlcnMiOiAiXHUyOTFBIiB9LAorICAiJnJBdGFpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTI0XSwgImNoYXJhY3RlcnMiOiAiXHUyOTFDIiB9LAorICAiJnJhdGlvOyI6IHsgImNvZGVwb2ludHMiOiBbODc1OF0sICJjaGFyYWN0ZXJzIjogIlx1MjIzNiIgfSwKKyAgIiZyYXRpb25hbHM7IjogeyAiY29kZXBvaW50cyI6IFs4NDc0XSwgImNoYXJhY3RlcnMiOiAiXHUyMTFBIiB9LAorICAiJnJiYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MDldLCAiY2hhcmFjdGVycyI6ICJcdTI5MEQiIH0sCisgICImckJhcnI7IjogeyAiY29kZXBvaW50cyI6IFsxMDUxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjkwRiIgfSwKKyAgIiZSQmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTEyXSwgImNoYXJhY3RlcnMiOiAiXHUyOTEwIiB9LAorICAiJnJiYnJrOyI6IHsgImNvZGVwb2ludHMiOiBbMTAwOTldLCAiY2hhcmFjdGVycyI6ICJcdTI3NzMiIH0sCisgICImcmJyYWNlOyI6IHsgImNvZGVwb2ludHMiOiBbMTI1XSwgImNoYXJhY3RlcnMiOiAiXHUwMDdEIiB9LAorICAiJnJicmFjazsiOiB7ICJjb2RlcG9pbnRzIjogWzkzXSwgImNoYXJhY3RlcnMiOiAiXHUwMDVEIiB9LAorICAiJnJicmtlOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MzZdLCAiY2hhcmFjdGVycyI6ICJcdTI5OEMiIH0sCisgICImcmJya3NsZDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjM4XSwgImNoYXJhY3RlcnMiOiAiXHUyOThFIiB9LAorICAiJnJicmtzbHU7IjogeyAiY29kZXBvaW50cyI6IFsxMDY0MF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk5MCIgfSwKKyAgIiZSY2Fyb247IjogeyAiY29kZXBvaW50cyI6IFszNDRdLCAiY2hhcmFjdGVycyI6ICJcdTAxNTgiIH0sCisgICImcmNhcm9uOyI6IHsgImNvZGVwb2ludHMiOiBbMzQ1XSwgImNoYXJhY3RlcnMiOiAiXHUwMTU5IiB9LAorICAiJlJjZWRpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzM0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDE1NiIgfSwKKyAgIiZyY2VkaWw7IjogeyAiY29kZXBvaW50cyI6IFszNDNdLCAiY2hhcmFjdGVycyI6ICJcdTAxNTciIH0sCisgICImcmNlaWw7IjogeyAiY29kZXBvaW50cyI6IFs4OTY5XSwgImNoYXJhY3RlcnMiOiAiXHUyMzA5IiB9LAorICAiJnJjdWI7IjogeyAiY29kZXBvaW50cyI6IFsxMjVdLCAiY2hhcmFjdGVycyI6ICJcdTAwN0QiIH0sCisgICImUmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDQyMCIgfSwKKyAgIiZyY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDg4XSwgImNoYXJhY3RlcnMiOiAiXHUwNDQwIiB9LAorICAiJnJkY2E7IjogeyAiY29kZXBvaW50cyI6IFsxMDU1MV0sICJjaGFyYWN0ZXJzIjogIlx1MjkzNyIgfSwKKyAgIiZyZGxkaGFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MDFdLCAiY2hhcmFjdGVycyI6ICJcdTI5NjkiIH0sCisgICImcmRxdW87IjogeyAiY29kZXBvaW50cyI6IFs4MjIxXSwgImNoYXJhY3RlcnMiOiAiXHUyMDFEIiB9LAorICAiJnJkcXVvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMjFdLCAiY2hhcmFjdGVycyI6ICJcdTIwMUQiIH0sCisgICImcmRzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MjddLCAiY2hhcmFjdGVycyI6ICJcdTIxQjMiIH0sCisgICImcmVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzZdLCAiY2hhcmFjdGVycyI6ICJcdTIxMUMiIH0sCisgICImcmVhbGluZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzVdLCAiY2hhcmFjdGVycyI6ICJcdTIxMUIiIH0sCisgICImcmVhbHBhcnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NDc2XSwgImNoYXJhY3RlcnMiOiAiXHUyMTFDIiB9LAorICAiJnJlYWxzOyI6IHsgImNvZGVwb2ludHMiOiBbODQ3N10sICJjaGFyYWN0ZXJzIjogIlx1MjExRCIgfSwKKyAgIiZSZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzZdLCAiY2hhcmFjdGVycyI6ICJcdTIxMUMiIH0sCisgICImcmVjdDsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NDVdLCAiY2hhcmFjdGVycyI6ICJcdTI1QUQiIH0sCisgICImcmVnOyI6IHsgImNvZGVwb2ludHMiOiBbMTc0XSwgImNoYXJhY3RlcnMiOiAiXHUwMEFFIiB9LAorICAiJnJlZyI6IHsgImNvZGVwb2ludHMiOiBbMTc0XSwgImNoYXJhY3RlcnMiOiAiXHUwMEFFIiB9LAorICAiJlJFRzsiOiB7ICJjb2RlcG9pbnRzIjogWzE3NF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBRSIgfSwKKyAgIiZSRUciOiB7ICJjb2RlcG9pbnRzIjogWzE3NF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBRSIgfSwKKyAgIiZSZXZlcnNlRWxlbWVudDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MTVdLCAiY2hhcmFjdGVycyI6ICJcdTIyMEIiIH0sCisgICImUmV2ZXJzZUVxdWlsaWJyaXVtOyI6IHsgImNvZGVwb2ludHMiOiBbODY1MV0sICJjaGFyYWN0ZXJzIjogIlx1MjFDQiIgfSwKKyAgIiZSZXZlcnNlVXBFcXVpbGlicml1bTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjA3XSwgImNoYXJhY3RlcnMiOiAiXHUyOTZGIiB9LAorICAiJnJmaXNodDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjIxXSwgImNoYXJhY3RlcnMiOiAiXHUyOTdEIiB9LAorICAiJnJmbG9vcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NzFdLCAiY2hhcmFjdGVycyI6ICJcdTIzMEIiIH0sCisgICImcmZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTExXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDJGIiB9LAorICAiJlJmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzZdLCAiY2hhcmFjdGVycyI6ICJcdTIxMUMiIH0sCisgICImckhhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTk2XSwgImNoYXJhY3RlcnMiOiAiXHUyOTY0IiB9LAorICAiJnJoYXJkOyI6IHsgImNvZGVwb2ludHMiOiBbODY0MV0sICJjaGFyYWN0ZXJzIjogIlx1MjFDMSIgfSwKKyAgIiZyaGFydTsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDBdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzAiIH0sCisgICImcmhhcnVsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MDRdLCAiY2hhcmFjdGVycyI6ICJcdTI5NkMiIH0sCisgICImUmhvOyI6IHsgImNvZGVwb2ludHMiOiBbOTI5XSwgImNoYXJhY3RlcnMiOiAiXHUwM0ExIiB9LAorICAiJnJobzsiOiB7ICJjb2RlcG9pbnRzIjogWzk2MV0sICJjaGFyYWN0ZXJzIjogIlx1MDNDMSIgfSwKKyAgIiZyaG92OyI6IHsgImNvZGVwb2ludHMiOiBbMTAwOV0sICJjaGFyYWN0ZXJzIjogIlx1MDNGMSIgfSwKKyAgIiZSaWdodEFuZ2xlQnJhY2tldDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjE3XSwgImNoYXJhY3RlcnMiOiAiXHUyN0U5IiB9LAorICAiJlJpZ2h0QXJyb3dCYXI7IjogeyAiY29kZXBvaW50cyI6IFs4Njc3XSwgImNoYXJhY3RlcnMiOiAiXHUyMUU1IiB9LAorICAiJnJpZ2h0YXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NTk0XSwgImNoYXJhY3RlcnMiOiAiXHUyMTkyIiB9LAorICAiJlJpZ2h0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NTk0XSwgImNoYXJhY3RlcnMiOiAiXHUyMTkyIiB9LAorICAiJlJpZ2h0YXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjU4XSwgImNoYXJhY3RlcnMiOiAiXHUyMUQyIiB9LAorICAiJlJpZ2h0QXJyb3dMZWZ0QXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjQ0XSwgImNoYXJhY3RlcnMiOiAiXHUyMUM0IiB9LAorICAiJnJpZ2h0YXJyb3d0YWlsOyI6IHsgImNvZGVwb2ludHMiOiBbODYxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjFBMyIgfSwKKyAgIiZSaWdodENlaWxpbmc7IjogeyAiY29kZXBvaW50cyI6IFs4OTY5XSwgImNoYXJhY3RlcnMiOiAiXHUyMzA5IiB9LAorICAiJlJpZ2h0RG91YmxlQnJhY2tldDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjE1XSwgImNoYXJhY3RlcnMiOiAiXHUyN0U3IiB9LAorICAiJlJpZ2h0RG93blRlZVZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTg5XSwgImNoYXJhY3RlcnMiOiAiXHUyOTVEIiB9LAorICAiJlJpZ2h0RG93blZlY3RvckJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTgxXSwgImNoYXJhY3RlcnMiOiAiXHUyOTU1IiB9LAorICAiJlJpZ2h0RG93blZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDJdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzIiIH0sCisgICImUmlnaHRGbG9vcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NzFdLCAiY2hhcmFjdGVycyI6ICJcdTIzMEIiIH0sCisgICImcmlnaHRoYXJwb29uZG93bjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDFdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzEiIH0sCisgICImcmlnaHRoYXJwb29udXA7IjogeyAiY29kZXBvaW50cyI6IFs4NjQwXSwgImNoYXJhY3RlcnMiOiAiXHUyMUMwIiB9LAorICAiJnJpZ2h0bGVmdGFycm93czsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDRdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzQiIH0sCisgICImcmlnaHRsZWZ0aGFycG9vbnM7IjogeyAiY29kZXBvaW50cyI6IFs4NjUyXSwgImNoYXJhY3RlcnMiOiAiXHUyMUNDIiB9LAorICAiJnJpZ2h0cmlnaHRhcnJvd3M7IjogeyAiY29kZXBvaW50cyI6IFs4NjQ5XSwgImNoYXJhY3RlcnMiOiAiXHUyMUM5IiB9LAorICAiJnJpZ2h0c3F1aWdhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDVdLCAiY2hhcmFjdGVycyI6ICJcdTIxOUQiIH0sCisgICImUmlnaHRUZWVBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MTRdLCAiY2hhcmFjdGVycyI6ICJcdTIxQTYiIH0sCisgICImUmlnaHRUZWU7IjogeyAiY29kZXBvaW50cyI6IFs4ODY2XSwgImNoYXJhY3RlcnMiOiAiXHUyMkEyIiB9LAorICAiJlJpZ2h0VGVlVmVjdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1ODddLCAiY2hhcmFjdGVycyI6ICJcdTI5NUIiIH0sCisgICImcmlnaHR0aHJlZXRpbWVzOyI6IHsgImNvZGVwb2ludHMiOiBbODkwOF0sICJjaGFyYWN0ZXJzIjogIlx1MjJDQyIgfSwKKyAgIiZSaWdodFRyaWFuZ2xlQmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3MDRdLCAiY2hhcmFjdGVycyI6ICJcdTI5RDAiIH0sCisgICImUmlnaHRUcmlhbmdsZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODNdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjMiIH0sCisgICImUmlnaHRUcmlhbmdsZUVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODg4NV0sICJjaGFyYWN0ZXJzIjogIlx1MjJCNSIgfSwKKyAgIiZSaWdodFVwRG93blZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTc1XSwgImNoYXJhY3RlcnMiOiAiXHUyOTRGIiB9LAorICAiJlJpZ2h0VXBUZWVWZWN0b3I7IjogeyAiY29kZXBvaW50cyI6IFsxMDU4OF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk1QyIgfSwKKyAgIiZSaWdodFVwVmVjdG9yQmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1ODBdLCAiY2hhcmFjdGVycyI6ICJcdTI5NTQiIH0sCisgICImUmlnaHRVcFZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzhdLCAiY2hhcmFjdGVycyI6ICJcdTIxQkUiIH0sCisgICImUmlnaHRWZWN0b3JCYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDU3OV0sICJjaGFyYWN0ZXJzIjogIlx1Mjk1MyIgfSwKKyAgIiZSaWdodFZlY3RvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NDBdLCAiY2hhcmFjdGVycyI6ICJcdTIxQzAiIH0sCisgICImcmluZzsiOiB7ICJjb2RlcG9pbnRzIjogWzczMF0sICJjaGFyYWN0ZXJzIjogIlx1MDJEQSIgfSwKKyAgIiZyaXNpbmdkb3RzZXE7IjogeyAiY29kZXBvaW50cyI6IFs4Nzg3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjUzIiB9LAorICAiJnJsYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY0NF0sICJjaGFyYWN0ZXJzIjogIlx1MjFDNCIgfSwKKyAgIiZybGhhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NTJdLCAiY2hhcmFjdGVycyI6ICJcdTIxQ0MiIH0sCisgICImcmxtOyI6IHsgImNvZGVwb2ludHMiOiBbODIwN10sICJjaGFyYWN0ZXJzIjogIlx1MjAwRiIgfSwKKyAgIiZybW91c3RhY2hlOyI6IHsgImNvZGVwb2ludHMiOiBbOTEzN10sICJjaGFyYWN0ZXJzIjogIlx1MjNCMSIgfSwKKyAgIiZybW91c3Q7IjogeyAiY29kZXBvaW50cyI6IFs5MTM3XSwgImNoYXJhY3RlcnMiOiAiXHUyM0IxIiB9LAorICAiJnJubWlkOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5OTBdLCAiY2hhcmFjdGVycyI6ICJcdTJBRUUiIH0sCisgICImcm9hbmc7IjogeyAiY29kZXBvaW50cyI6IFsxMDIyMV0sICJjaGFyYWN0ZXJzIjogIlx1MjdFRCIgfSwKKyAgIiZyb2FycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MDJdLCAiY2hhcmFjdGVycyI6ICJcdTIxRkUiIH0sCisgICImcm9icms7IjogeyAiY29kZXBvaW50cyI6IFsxMDIxNV0sICJjaGFyYWN0ZXJzIjogIlx1MjdFNyIgfSwKKyAgIiZyb3BhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjMwXSwgImNoYXJhY3RlcnMiOiAiXHUyOTg2IiB9LAorICAiJnJvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNjNdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENjMiIH0sCisgICImUm9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzddLCAiY2hhcmFjdGVycyI6ICJcdTIxMUQiIH0sCisgICImcm9wbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3OThdLCAiY2hhcmFjdGVycyI6ICJcdTJBMkUiIH0sCisgICImcm90aW1lczsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODA1XSwgImNoYXJhY3RlcnMiOiAiXHUyQTM1IiB9LAorICAiJlJvdW5kSW1wbGllczsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjA4XSwgImNoYXJhY3RlcnMiOiAiXHUyOTcwIiB9LAorICAiJnJwYXI7IjogeyAiY29kZXBvaW50cyI6IFs0MV0sICJjaGFyYWN0ZXJzIjogIlx1MDAyOSIgfSwKKyAgIiZycGFyZ3Q7IjogeyAiY29kZXBvaW50cyI6IFsxMDY0NF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk5NCIgfSwKKyAgIiZycHBvbGludDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzcwXSwgImNoYXJhY3RlcnMiOiAiXHUyQTEyIiB9LAorICAiJnJyYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY0OV0sICJjaGFyYWN0ZXJzIjogIlx1MjFDOSIgfSwKKyAgIiZScmlnaHRhcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjddLCAiY2hhcmFjdGVycyI6ICJcdTIxREIiIH0sCisgICImcnNhcXVvOyI6IHsgImNvZGVwb2ludHMiOiBbODI1MF0sICJjaGFyYWN0ZXJzIjogIlx1MjAzQSIgfSwKKyAgIiZyc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDA3XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0M3IiB9LAorICAiJlJzY3I7IjogeyAiY29kZXBvaW50cyI6IFs4NDc1XSwgImNoYXJhY3RlcnMiOiAiXHUyMTFCIiB9LAorICAiJnJzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MjVdLCAiY2hhcmFjdGVycyI6ICJcdTIxQjEiIH0sCisgICImUnNoOyI6IHsgImNvZGVwb2ludHMiOiBbODYyNV0sICJjaGFyYWN0ZXJzIjogIlx1MjFCMSIgfSwKKyAgIiZyc3FiOyI6IHsgImNvZGVwb2ludHMiOiBbOTNdLCAiY2hhcmFjdGVycyI6ICJcdTAwNUQiIH0sCisgICImcnNxdW87IjogeyAiY29kZXBvaW50cyI6IFs4MjE3XSwgImNoYXJhY3RlcnMiOiAiXHUyMDE5IiB9LAorICAiJnJzcXVvcjsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMTddLCAiY2hhcmFjdGVycyI6ICJcdTIwMTkiIH0sCisgICImcnRocmVlOyI6IHsgImNvZGVwb2ludHMiOiBbODkwOF0sICJjaGFyYWN0ZXJzIjogIlx1MjJDQyIgfSwKKyAgIiZydGltZXM7IjogeyAiY29kZXBvaW50cyI6IFs4OTA2XSwgImNoYXJhY3RlcnMiOiAiXHUyMkNBIiB9LAorICAiJnJ0cmk7IjogeyAiY29kZXBvaW50cyI6IFs5NjU3XSwgImNoYXJhY3RlcnMiOiAiXHUyNUI5IiB9LAorICAiJnJ0cmllOyI6IHsgImNvZGVwb2ludHMiOiBbODg4NV0sICJjaGFyYWN0ZXJzIjogIlx1MjJCNSIgfSwKKyAgIiZydHJpZjsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NTZdLCAiY2hhcmFjdGVycyI6ICJcdTI1QjgiIH0sCisgICImcnRyaWx0cmk7IjogeyAiY29kZXBvaW50cyI6IFsxMDcwMl0sICJjaGFyYWN0ZXJzIjogIlx1MjlDRSIgfSwKKyAgIiZSdWxlRGVsYXllZDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzQwXSwgImNoYXJhY3RlcnMiOiAiXHUyOUY0IiB9LAorICAiJnJ1bHVoYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDYwMF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk2OCIgfSwKKyAgIiZyeDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzhdLCAiY2hhcmFjdGVycyI6ICJcdTIxMUUiIH0sCisgICImU2FjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMzQ2XSwgImNoYXJhY3RlcnMiOiAiXHUwMTVBIiB9LAorICAiJnNhY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzM0N10sICJjaGFyYWN0ZXJzIjogIlx1MDE1QiIgfSwKKyAgIiZzYnF1bzsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMThdLCAiY2hhcmFjdGVycyI6ICJcdTIwMUEiIH0sCisgICImc2NhcDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTM2XSwgImNoYXJhY3RlcnMiOiAiXHUyQUI4IiB9LAorICAiJlNjYXJvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzM1Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDE2MCIgfSwKKyAgIiZzY2Fyb247IjogeyAiY29kZXBvaW50cyI6IFszNTNdLCAiY2hhcmFjdGVycyI6ICJcdTAxNjEiIH0sCisgICImU2M7IjogeyAiY29kZXBvaW50cyI6IFsxMDk0MF0sICJjaGFyYWN0ZXJzIjogIlx1MkFCQyIgfSwKKyAgIiZzYzsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MjddLCAiY2hhcmFjdGVycyI6ICJcdTIyN0IiIH0sCisgICImc2NjdWU7IjogeyAiY29kZXBvaW50cyI6IFs4ODI5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjdEIiB9LAorICAiJnNjZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI4XSwgImNoYXJhY3RlcnMiOiAiXHUyQUIwIiB9LAorICAiJnNjRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTMyXSwgImNoYXJhY3RlcnMiOiAiXHUyQUI0IiB9LAorICAiJlNjZWRpbDsiOiB7ICJjb2RlcG9pbnRzIjogWzM1MF0sICJjaGFyYWN0ZXJzIjogIlx1MDE1RSIgfSwKKyAgIiZzY2VkaWw7IjogeyAiY29kZXBvaW50cyI6IFszNTFdLCAiY2hhcmFjdGVycyI6ICJcdTAxNUYiIH0sCisgICImU2NpcmM7IjogeyAiY29kZXBvaW50cyI6IFszNDhdLCAiY2hhcmFjdGVycyI6ICJcdTAxNUMiIH0sCisgICImc2NpcmM7IjogeyAiY29kZXBvaW50cyI6IFszNDldLCAiY2hhcmFjdGVycyI6ICJcdTAxNUQiIH0sCisgICImc2NuYXA7IjogeyAiY29kZXBvaW50cyI6IFsxMDkzOF0sICJjaGFyYWN0ZXJzIjogIlx1MkFCQSIgfSwKKyAgIiZzY25FOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MzRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQjYiIH0sCisgICImc2Nuc2ltOyI6IHsgImNvZGVwb2ludHMiOiBbODkzN10sICJjaGFyYWN0ZXJzIjogIlx1MjJFOSIgfSwKKyAgIiZzY3BvbGludDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzcxXSwgImNoYXJhY3RlcnMiOiAiXHUyQTEzIiB9LAorICAiJnNjc2ltOyI6IHsgImNvZGVwb2ludHMiOiBbODgzMV0sICJjaGFyYWN0ZXJzIjogIlx1MjI3RiIgfSwKKyAgIiZTY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDU3XSwgImNoYXJhY3RlcnMiOiAiXHUwNDIxIiB9LAorICAiJnNjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODldLCAiY2hhcmFjdGVycyI6ICJcdTA0NDEiIH0sCisgICImc2RvdGI7IjogeyAiY29kZXBvaW50cyI6IFs4ODY1XSwgImNoYXJhY3RlcnMiOiAiXHUyMkExIiB9LAorICAiJnNkb3Q7IjogeyAiY29kZXBvaW50cyI6IFs4OTAxXSwgImNoYXJhY3RlcnMiOiAiXHUyMkM1IiB9LAorICAiJnNkb3RlOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NTRdLCAiY2hhcmFjdGVycyI6ICJcdTJBNjYiIH0sCisgICImc2VhcmhrOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MzNdLCAiY2hhcmFjdGVycyI6ICJcdTI5MjUiIH0sCisgICImc2VhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjAwXSwgImNoYXJhY3RlcnMiOiAiXHUyMTk4IiB9LAorICAiJnNlQXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY2NF0sICJjaGFyYWN0ZXJzIjogIlx1MjFEOCIgfSwKKyAgIiZzZWFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODYwMF0sICJjaGFyYWN0ZXJzIjogIlx1MjE5OCIgfSwKKyAgIiZzZWN0OyI6IHsgImNvZGVwb2ludHMiOiBbMTY3XSwgImNoYXJhY3RlcnMiOiAiXHUwMEE3IiB9LAorICAiJnNlY3QiOiB7ICJjb2RlcG9pbnRzIjogWzE2N10sICJjaGFyYWN0ZXJzIjogIlx1MDBBNyIgfSwKKyAgIiZzZW1pOyI6IHsgImNvZGVwb2ludHMiOiBbNTldLCAiY2hhcmFjdGVycyI6ICJcdTAwM0IiIH0sCisgICImc2Vzd2FyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MzddLCAiY2hhcmFjdGVycyI6ICJcdTI5MjkiIH0sCisgICImc2V0bWludXM7IjogeyAiY29kZXBvaW50cyI6IFs4NzI2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjE2IiB9LAorICAiJnNldG1uOyI6IHsgImNvZGVwb2ludHMiOiBbODcyNl0sICJjaGFyYWN0ZXJzIjogIlx1MjIxNiIgfSwKKyAgIiZzZXh0OyI6IHsgImNvZGVwb2ludHMiOiBbMTAwMzhdLCAiY2hhcmFjdGVycyI6ICJcdTI3MzYiIH0sCisgICImU2ZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDg2XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDE2IiB9LAorICAiJnNmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDExMl0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQzMCIgfSwKKyAgIiZzZnJvd247IjogeyAiY29kZXBvaW50cyI6IFs4OTk0XSwgImNoYXJhY3RlcnMiOiAiXHUyMzIyIiB9LAorICAiJnNoYXJwOyI6IHsgImNvZGVwb2ludHMiOiBbOTgzOV0sICJjaGFyYWN0ZXJzIjogIlx1MjY2RiIgfSwKKyAgIiZTSENIY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDY1XSwgImNoYXJhY3RlcnMiOiAiXHUwNDI5IiB9LAorICAiJnNoY2hjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTddLCAiY2hhcmFjdGVycyI6ICJcdTA0NDkiIH0sCisgICImU0hjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjRdLCAiY2hhcmFjdGVycyI6ICJcdTA0MjgiIH0sCisgICImc2hjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTZdLCAiY2hhcmFjdGVycyI6ICJcdTA0NDgiIH0sCisgICImU2hvcnREb3duQXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NTk1XSwgImNoYXJhY3RlcnMiOiAiXHUyMTkzIiB9LAorICAiJlNob3J0TGVmdEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjE5MCIgfSwKKyAgIiZzaG9ydG1pZDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MzldLCAiY2hhcmFjdGVycyI6ICJcdTIyMjMiIH0sCisgICImc2hvcnRwYXJhbGxlbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDFdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjUiIH0sCisgICImU2hvcnRSaWdodEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5NF0sICJjaGFyYWN0ZXJzIjogIlx1MjE5MiIgfSwKKyAgIiZTaG9ydFVwQXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NTkzXSwgImNoYXJhY3RlcnMiOiAiXHUyMTkxIiB9LAorICAiJnNoeTsiOiB7ICJjb2RlcG9pbnRzIjogWzE3M10sICJjaGFyYWN0ZXJzIjogIlx1MDBBRCIgfSwKKyAgIiZzaHkiOiB7ICJjb2RlcG9pbnRzIjogWzE3M10sICJjaGFyYWN0ZXJzIjogIlx1MDBBRCIgfSwKKyAgIiZTaWdtYTsiOiB7ICJjb2RlcG9pbnRzIjogWzkzMV0sICJjaGFyYWN0ZXJzIjogIlx1MDNBMyIgfSwKKyAgIiZzaWdtYTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2M10sICJjaGFyYWN0ZXJzIjogIlx1MDNDMyIgfSwKKyAgIiZzaWdtYWY7IjogeyAiY29kZXBvaW50cyI6IFs5NjJdLCAiY2hhcmFjdGVycyI6ICJcdTAzQzIiIH0sCisgICImc2lnbWF2OyI6IHsgImNvZGVwb2ludHMiOiBbOTYyXSwgImNoYXJhY3RlcnMiOiAiXHUwM0MyIiB9LAorICAiJnNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyM0MiIH0sCisgICImc2ltZG90OyI6IHsgImNvZGVwb2ludHMiOiBbMTA4NThdLCAiY2hhcmFjdGVycyI6ICJcdTJBNkEiIH0sCisgICImc2ltZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzFdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDMiIH0sCisgICImc2ltZXE7IjogeyAiY29kZXBvaW50cyI6IFs4NzcxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjQzIiB9LAorICAiJnNpbWc7IjogeyAiY29kZXBvaW50cyI6IFsxMDkxMF0sICJjaGFyYWN0ZXJzIjogIlx1MkE5RSIgfSwKKyAgIiZzaW1nRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTEyXSwgImNoYXJhY3RlcnMiOiAiXHUyQUEwIiB9LAorICAiJnNpbWw7IjogeyAiY29kZXBvaW50cyI6IFsxMDkwOV0sICJjaGFyYWN0ZXJzIjogIlx1MkE5RCIgfSwKKyAgIiZzaW1sRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTExXSwgImNoYXJhY3RlcnMiOiAiXHUyQTlGIiB9LAorICAiJnNpbW5lOyI6IHsgImNvZGVwb2ludHMiOiBbODc3NF0sICJjaGFyYWN0ZXJzIjogIlx1MjI0NiIgfSwKKyAgIiZzaW1wbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA3ODhdLCAiY2hhcmFjdGVycyI6ICJcdTJBMjQiIH0sCisgICImc2ltcmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjEwXSwgImNoYXJhY3RlcnMiOiAiXHUyOTcyIiB9LAorICAiJnNsYXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODU5Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjE5MCIgfSwKKyAgIiZTbWFsbENpcmNsZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjhdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTgiIH0sCisgICImc21hbGxzZXRtaW51czsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjZdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTYiIH0sCisgICImc21hc2hwOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MDNdLCAiY2hhcmFjdGVycyI6ICJcdTJBMzMiIH0sCisgICImc21lcGFyc2w7IjogeyAiY29kZXBvaW50cyI6IFsxMDcyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjlFNCIgfSwKKyAgIiZzbWlkOyI6IHsgImNvZGVwb2ludHMiOiBbODczOV0sICJjaGFyYWN0ZXJzIjogIlx1MjIyMyIgfSwKKyAgIiZzbWlsZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5OTVdLCAiY2hhcmFjdGVycyI6ICJcdTIzMjMiIH0sCisgICImc210OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MjJdLCAiY2hhcmFjdGVycyI6ICJcdTJBQUEiIH0sCisgICImc210ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI0XSwgImNoYXJhY3RlcnMiOiAiXHUyQUFDIiB9LAorICAiJnNtdGVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MjQsIDY1MDI0XSwgImNoYXJhY3RlcnMiOiAiXHUyQUFDXHVGRTAwIiB9LAorICAiJlNPRlRjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjhdLCAiY2hhcmFjdGVycyI6ICJcdTA0MkMiIH0sCisgICImc29mdGN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTEwMF0sICJjaGFyYWN0ZXJzIjogIlx1MDQ0QyIgfSwKKyAgIiZzb2xiYXI7IjogeyAiY29kZXBvaW50cyI6IFs5MDIzXSwgImNoYXJhY3RlcnMiOiAiXHUyMzNGIiB9LAorICAiJnNvbGI7IjogeyAiY29kZXBvaW50cyI6IFsxMDY5Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjlDNCIgfSwKKyAgIiZzb2w7IjogeyAiY29kZXBvaW50cyI6IFs0N10sICJjaGFyYWN0ZXJzIjogIlx1MDAyRiIgfSwKKyAgIiZTb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTM4XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDRBIiB9LAorICAiJnNvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNjRdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENjQiIH0sCisgICImc3BhZGVzOyI6IHsgImNvZGVwb2ludHMiOiBbOTgyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjY2MCIgfSwKKyAgIiZzcGFkZXN1aXQ7IjogeyAiY29kZXBvaW50cyI6IFs5ODI0XSwgImNoYXJhY3RlcnMiOiAiXHUyNjYwIiB9LAorICAiJnNwYXI7IjogeyAiY29kZXBvaW50cyI6IFs4NzQxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjI1IiB9LAorICAiJnNxY2FwOyI6IHsgImNvZGVwb2ludHMiOiBbODg1MV0sICJjaGFyYWN0ZXJzIjogIlx1MjI5MyIgfSwKKyAgIiZzcWNhcHM7IjogeyAiY29kZXBvaW50cyI6IFs4ODUxLCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI5M1x1RkUwMCIgfSwKKyAgIiZzcWN1cDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NTJdLCAiY2hhcmFjdGVycyI6ICJcdTIyOTQiIH0sCisgICImc3FjdXBzOyI6IHsgImNvZGVwb2ludHMiOiBbODg1MiwgNjUwMjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyOTRcdUZFMDAiIH0sCisgICImU3FydDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MzBdLCAiY2hhcmFjdGVycyI6ICJcdTIyMUEiIH0sCisgICImc3FzdWI7IjogeyAiY29kZXBvaW50cyI6IFs4ODQ3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjhGIiB9LAorICAiJnNxc3ViZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NDldLCAiY2hhcmFjdGVycyI6ICJcdTIyOTEiIH0sCisgICImc3FzdWJzZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODQ3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjhGIiB9LAorICAiJnNxc3Vic2V0ZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODQ5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjkxIiB9LAorICAiJnNxc3VwOyI6IHsgImNvZGVwb2ludHMiOiBbODg0OF0sICJjaGFyYWN0ZXJzIjogIlx1MjI5MCIgfSwKKyAgIiZzcXN1cGU7IjogeyAiY29kZXBvaW50cyI6IFs4ODUwXSwgImNoYXJhY3RlcnMiOiAiXHUyMjkyIiB9LAorICAiJnNxc3Vwc2V0OyI6IHsgImNvZGVwb2ludHMiOiBbODg0OF0sICJjaGFyYWN0ZXJzIjogIlx1MjI5MCIgfSwKKyAgIiZzcXN1cHNldGVxOyI6IHsgImNvZGVwb2ludHMiOiBbODg1MF0sICJjaGFyYWN0ZXJzIjogIlx1MjI5MiIgfSwKKyAgIiZzcXVhcmU7IjogeyAiY29kZXBvaW50cyI6IFs5NjMzXSwgImNoYXJhY3RlcnMiOiAiXHUyNUExIiB9LAorICAiJlNxdWFyZTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2MzNdLCAiY2hhcmFjdGVycyI6ICJcdTI1QTEiIH0sCisgICImU3F1YXJlSW50ZXJzZWN0aW9uOyI6IHsgImNvZGVwb2ludHMiOiBbODg1MV0sICJjaGFyYWN0ZXJzIjogIlx1MjI5MyIgfSwKKyAgIiZTcXVhcmVTdWJzZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODQ3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjhGIiB9LAorICAiJlNxdWFyZVN1YnNldEVxdWFsOyI6IHsgImNvZGVwb2ludHMiOiBbODg0OV0sICJjaGFyYWN0ZXJzIjogIlx1MjI5MSIgfSwKKyAgIiZTcXVhcmVTdXBlcnNldDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NDhdLCAiY2hhcmFjdGVycyI6ICJcdTIyOTAiIH0sCisgICImU3F1YXJlU3VwZXJzZXRFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NTBdLCAiY2hhcmFjdGVycyI6ICJcdTIyOTIiIH0sCisgICImU3F1YXJlVW5pb247IjogeyAiY29kZXBvaW50cyI6IFs4ODUyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjk0IiB9LAorICAiJnNxdWFyZjsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NDJdLCAiY2hhcmFjdGVycyI6ICJcdTI1QUEiIH0sCisgICImc3F1OyI6IHsgImNvZGVwb2ludHMiOiBbOTYzM10sICJjaGFyYWN0ZXJzIjogIlx1MjVBMSIgfSwKKyAgIiZzcXVmOyI6IHsgImNvZGVwb2ludHMiOiBbOTY0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjVBQSIgfSwKKyAgIiZzcmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OTRdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTIiIH0sCisgICImU3NjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk4Ml0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENBRSIgfSwKKyAgIiZzc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDA4XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0M4IiB9LAorICAiJnNzZXRtbjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjZdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTYiIH0sCisgICImc3NtaWxlOyI6IHsgImNvZGVwb2ludHMiOiBbODk5NV0sICJjaGFyYWN0ZXJzIjogIlx1MjMyMyIgfSwKKyAgIiZzc3RhcmY7IjogeyAiY29kZXBvaW50cyI6IFs4OTAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMkM2IiB9LAorICAiJlN0YXI7IjogeyAiY29kZXBvaW50cyI6IFs4OTAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMkM2IiB9LAorICAiJnN0YXI7IjogeyAiY29kZXBvaW50cyI6IFs5NzM0XSwgImNoYXJhY3RlcnMiOiAiXHUyNjA2IiB9LAorICAiJnN0YXJmOyI6IHsgImNvZGVwb2ludHMiOiBbOTczM10sICJjaGFyYWN0ZXJzIjogIlx1MjYwNSIgfSwKKyAgIiZzdHJhaWdodGVwc2lsb247IjogeyAiY29kZXBvaW50cyI6IFsxMDEzXSwgImNoYXJhY3RlcnMiOiAiXHUwM0Y1IiB9LAorICAiJnN0cmFpZ2h0cGhpOyI6IHsgImNvZGVwb2ludHMiOiBbOTgxXSwgImNoYXJhY3RlcnMiOiAiXHUwM0Q1IiB9LAorICAiJnN0cm5zOyI6IHsgImNvZGVwb2ludHMiOiBbMTc1XSwgImNoYXJhY3RlcnMiOiAiXHUwMEFGIiB9LAorICAiJnN1YjsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzRdLCAiY2hhcmFjdGVycyI6ICJcdTIyODIiIH0sCisgICImU3ViOyI6IHsgImNvZGVwb2ludHMiOiBbODkxMl0sICJjaGFyYWN0ZXJzIjogIlx1MjJEMCIgfSwKKyAgIiZzdWJkb3Q7IjogeyAiY29kZXBvaW50cyI6IFsxMDk0MV0sICJjaGFyYWN0ZXJzIjogIlx1MkFCRCIgfSwKKyAgIiZzdWJFOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NDldLCAiY2hhcmFjdGVycyI6ICJcdTJBQzUiIH0sCisgICImc3ViZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzhdLCAiY2hhcmFjdGVycyI6ICJcdTIyODYiIH0sCisgICImc3ViZWRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTQ3XSwgImNoYXJhY3RlcnMiOiAiXHUyQUMzIiB9LAorICAiJnN1Ym11bHQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDk0NV0sICJjaGFyYWN0ZXJzIjogIlx1MkFDMSIgfSwKKyAgIiZzdWJuRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTU1XSwgImNoYXJhY3RlcnMiOiAiXHUyQUNCIiB9LAorICAiJnN1Ym5lOyI6IHsgImNvZGVwb2ludHMiOiBbODg0Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjI4QSIgfSwKKyAgIiZzdWJwbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NDNdLCAiY2hhcmFjdGVycyI6ICJcdTJBQkYiIH0sCisgICImc3VicmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjE3XSwgImNoYXJhY3RlcnMiOiAiXHUyOTc5IiB9LAorICAiJnN1YnNldDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzRdLCAiY2hhcmFjdGVycyI6ICJcdTIyODIiIH0sCisgICImU3Vic2V0OyI6IHsgImNvZGVwb2ludHMiOiBbODkxMl0sICJjaGFyYWN0ZXJzIjogIlx1MjJEMCIgfSwKKyAgIiZzdWJzZXRlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzhdLCAiY2hhcmFjdGVycyI6ICJcdTIyODYiIH0sCisgICImc3Vic2V0ZXFxOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NDldLCAiY2hhcmFjdGVycyI6ICJcdTJBQzUiIH0sCisgICImU3Vic2V0RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODM4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjg2IiB9LAorICAiJnN1YnNldG5lcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyOEEiIH0sCisgICImc3Vic2V0bmVxcTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTU1XSwgImNoYXJhY3RlcnMiOiAiXHUyQUNCIiB9LAorICAiJnN1YnNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTUxXSwgImNoYXJhY3RlcnMiOiAiXHUyQUM3IiB9LAorICAiJnN1YnN1YjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTY1XSwgImNoYXJhY3RlcnMiOiAiXHUyQUQ1IiB9LAorICAiJnN1YnN1cDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTYzXSwgImNoYXJhY3RlcnMiOiAiXHUyQUQzIiB9LAorICAiJnN1Y2NhcHByb3g7IjogeyAiY29kZXBvaW50cyI6IFsxMDkzNl0sICJjaGFyYWN0ZXJzIjogIlx1MkFCOCIgfSwKKyAgIiZzdWNjOyI6IHsgImNvZGVwb2ludHMiOiBbODgyN10sICJjaGFyYWN0ZXJzIjogIlx1MjI3QiIgfSwKKyAgIiZzdWNjY3VybHllcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MjldLCAiY2hhcmFjdGVycyI6ICJcdTIyN0QiIH0sCisgICImU3VjY2VlZHM7IjogeyAiY29kZXBvaW50cyI6IFs4ODI3XSwgImNoYXJhY3RlcnMiOiAiXHUyMjdCIiB9LAorICAiJlN1Y2NlZWRzRXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFsxMDkyOF0sICJjaGFyYWN0ZXJzIjogIlx1MkFCMCIgfSwKKyAgIiZTdWNjZWVkc1NsYW50RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODI5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjdEIiB9LAorICAiJlN1Y2NlZWRzVGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFs4ODMxXSwgImNoYXJhY3RlcnMiOiAiXHUyMjdGIiB9LAorICAiJnN1Y2NlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTI4XSwgImNoYXJhY3RlcnMiOiAiXHUyQUIwIiB9LAorICAiJnN1Y2NuYXBwcm94OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MzhdLCAiY2hhcmFjdGVycyI6ICJcdTJBQkEiIH0sCisgICImc3VjY25lcXE7IjogeyAiY29kZXBvaW50cyI6IFsxMDkzNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFCNiIgfSwKKyAgIiZzdWNjbnNpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MzddLCAiY2hhcmFjdGVycyI6ICJcdTIyRTkiIH0sCisgICImc3VjY3NpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4MzFdLCAiY2hhcmFjdGVycyI6ICJcdTIyN0YiIH0sCisgICImU3VjaFRoYXQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzE1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjBCIiB9LAorICAiJnN1bTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MjFdLCAiY2hhcmFjdGVycyI6ICJcdTIyMTEiIH0sCisgICImU3VtOyI6IHsgImNvZGVwb2ludHMiOiBbODcyMV0sICJjaGFyYWN0ZXJzIjogIlx1MjIxMSIgfSwKKyAgIiZzdW5nOyI6IHsgImNvZGVwb2ludHMiOiBbOTgzNF0sICJjaGFyYWN0ZXJzIjogIlx1MjY2QSIgfSwKKyAgIiZzdXAxOyI6IHsgImNvZGVwb2ludHMiOiBbMTg1XSwgImNoYXJhY3RlcnMiOiAiXHUwMEI5IiB9LAorICAiJnN1cDEiOiB7ICJjb2RlcG9pbnRzIjogWzE4NV0sICJjaGFyYWN0ZXJzIjogIlx1MDBCOSIgfSwKKyAgIiZzdXAyOyI6IHsgImNvZGVwb2ludHMiOiBbMTc4XSwgImNoYXJhY3RlcnMiOiAiXHUwMEIyIiB9LAorICAiJnN1cDIiOiB7ICJjb2RlcG9pbnRzIjogWzE3OF0sICJjaGFyYWN0ZXJzIjogIlx1MDBCMiIgfSwKKyAgIiZzdXAzOyI6IHsgImNvZGVwb2ludHMiOiBbMTc5XSwgImNoYXJhY3RlcnMiOiAiXHUwMEIzIiB9LAorICAiJnN1cDMiOiB7ICJjb2RlcG9pbnRzIjogWzE3OV0sICJjaGFyYWN0ZXJzIjogIlx1MDBCMyIgfSwKKyAgIiZzdXA7IjogeyAiY29kZXBvaW50cyI6IFs4ODM1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjgzIiB9LAorICAiJlN1cDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5MTNdLCAiY2hhcmFjdGVycyI6ICJcdTIyRDEiIH0sCisgICImc3VwZG90OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NDJdLCAiY2hhcmFjdGVycyI6ICJcdTJBQkUiIH0sCisgICImc3VwZHN1YjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTY4XSwgImNoYXJhY3RlcnMiOiAiXHUyQUQ4IiB9LAorICAiJnN1cEU7IjogeyAiY29kZXBvaW50cyI6IFsxMDk1MF0sICJjaGFyYWN0ZXJzIjogIlx1MkFDNiIgfSwKKyAgIiZzdXBlOyI6IHsgImNvZGVwb2ludHMiOiBbODgzOV0sICJjaGFyYWN0ZXJzIjogIlx1MjI4NyIgfSwKKyAgIiZzdXBlZG90OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NDhdLCAiY2hhcmFjdGVycyI6ICJcdTJBQzQiIH0sCisgICImU3VwZXJzZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODM1XSwgImNoYXJhY3RlcnMiOiAiXHUyMjgzIiB9LAorICAiJlN1cGVyc2V0RXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4ODM5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjg3IiB9LAorICAiJnN1cGhzb2w7IjogeyAiY29kZXBvaW50cyI6IFsxMDE4NV0sICJjaGFyYWN0ZXJzIjogIlx1MjdDOSIgfSwKKyAgIiZzdXBoc3ViOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NjddLCAiY2hhcmFjdGVycyI6ICJcdTJBRDciIH0sCisgICImc3VwbGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNjE5XSwgImNoYXJhY3RlcnMiOiAiXHUyOTdCIiB9LAorICAiJnN1cG11bHQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDk0Nl0sICJjaGFyYWN0ZXJzIjogIlx1MkFDMiIgfSwKKyAgIiZzdXBuRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTU2XSwgImNoYXJhY3RlcnMiOiAiXHUyQUNDIiB9LAorICAiJnN1cG5lOyI6IHsgImNvZGVwb2ludHMiOiBbODg0M10sICJjaGFyYWN0ZXJzIjogIlx1MjI4QiIgfSwKKyAgIiZzdXBwbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NDRdLCAiY2hhcmFjdGVycyI6ICJcdTJBQzAiIH0sCisgICImc3Vwc2V0OyI6IHsgImNvZGVwb2ludHMiOiBbODgzNV0sICJjaGFyYWN0ZXJzIjogIlx1MjI4MyIgfSwKKyAgIiZTdXBzZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4OTEzXSwgImNoYXJhY3RlcnMiOiAiXHUyMkQxIiB9LAorICAiJnN1cHNldGVxOyI6IHsgImNvZGVwb2ludHMiOiBbODgzOV0sICJjaGFyYWN0ZXJzIjogIlx1MjI4NyIgfSwKKyAgIiZzdXBzZXRlcXE7IjogeyAiY29kZXBvaW50cyI6IFsxMDk1MF0sICJjaGFyYWN0ZXJzIjogIlx1MkFDNiIgfSwKKyAgIiZzdXBzZXRuZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODQzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjhCIiB9LAorICAiJnN1cHNldG5lcXE7IjogeyAiY29kZXBvaW50cyI6IFsxMDk1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MkFDQyIgfSwKKyAgIiZzdXBzaW07IjogeyAiY29kZXBvaW50cyI6IFsxMDk1Ml0sICJjaGFyYWN0ZXJzIjogIlx1MkFDOCIgfSwKKyAgIiZzdXBzdWI7IjogeyAiY29kZXBvaW50cyI6IFsxMDk2NF0sICJjaGFyYWN0ZXJzIjogIlx1MkFENCIgfSwKKyAgIiZzdXBzdXA7IjogeyAiY29kZXBvaW50cyI6IFsxMDk2Nl0sICJjaGFyYWN0ZXJzIjogIlx1MkFENiIgfSwKKyAgIiZzd2FyaGs7IjogeyAiY29kZXBvaW50cyI6IFsxMDUzNF0sICJjaGFyYWN0ZXJzIjogIlx1MjkyNiIgfSwKKyAgIiZzd2FycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MDFdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTkiIH0sCisgICImc3dBcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjY1XSwgImNoYXJhY3RlcnMiOiAiXHUyMUQ5IiB9LAorICAiJnN3YXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjAxXSwgImNoYXJhY3RlcnMiOiAiXHUyMTk5IiB9LAorICAiJnN3bndhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTM4XSwgImNoYXJhY3RlcnMiOiAiXHUyOTJBIiB9LAorICAiJnN6bGlnOyI6IHsgImNvZGVwb2ludHMiOiBbMjIzXSwgImNoYXJhY3RlcnMiOiAiXHUwMERGIiB9LAorICAiJnN6bGlnIjogeyAiY29kZXBvaW50cyI6IFsyMjNdLCAiY2hhcmFjdGVycyI6ICJcdTAwREYiIH0sCisgICImVGFiOyI6IHsgImNvZGVwb2ludHMiOiBbOV0sICJjaGFyYWN0ZXJzIjogIlx1MDAwOSIgfSwKKyAgIiZ0YXJnZXQ7IjogeyAiY29kZXBvaW50cyI6IFs4OTgyXSwgImNoYXJhY3RlcnMiOiAiXHUyMzE2IiB9LAorICAiJlRhdTsiOiB7ICJjb2RlcG9pbnRzIjogWzkzMl0sICJjaGFyYWN0ZXJzIjogIlx1MDNBNCIgfSwKKyAgIiZ0YXU7IjogeyAiY29kZXBvaW50cyI6IFs5NjRdLCAiY2hhcmFjdGVycyI6ICJcdTAzQzQiIH0sCisgICImdGJyazsiOiB7ICJjb2RlcG9pbnRzIjogWzkxNDBdLCAiY2hhcmFjdGVycyI6ICJcdTIzQjQiIH0sCisgICImVGNhcm9uOyI6IHsgImNvZGVwb2ludHMiOiBbMzU2XSwgImNoYXJhY3RlcnMiOiAiXHUwMTY0IiB9LAorICAiJnRjYXJvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzM1N10sICJjaGFyYWN0ZXJzIjogIlx1MDE2NSIgfSwKKyAgIiZUY2VkaWw7IjogeyAiY29kZXBvaW50cyI6IFszNTRdLCAiY2hhcmFjdGVycyI6ICJcdTAxNjIiIH0sCisgICImdGNlZGlsOyI6IHsgImNvZGVwb2ludHMiOiBbMzU1XSwgImNoYXJhY3RlcnMiOiAiXHUwMTYzIiB9LAorICAiJlRjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNThdLCAiY2hhcmFjdGVycyI6ICJcdTA0MjIiIH0sCisgICImdGN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5MF0sICJjaGFyYWN0ZXJzIjogIlx1MDQ0MiIgfSwKKyAgIiZ0ZG90OyI6IHsgImNvZGVwb2ludHMiOiBbODQxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjBEQiIgfSwKKyAgIiZ0ZWxyZWM7IjogeyAiY29kZXBvaW50cyI6IFs4OTgxXSwgImNoYXJhY3RlcnMiOiAiXHUyMzE1IiB9LAorICAiJlRmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDA4N10sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQxNyIgfSwKKyAgIiZ0ZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxMTNdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMzEiIH0sCisgICImdGhlcmU0OyI6IHsgImNvZGVwb2ludHMiOiBbODc1Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjIzNCIgfSwKKyAgIiZ0aGVyZWZvcmU7IjogeyAiY29kZXBvaW50cyI6IFs4NzU2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjM0IiB9LAorICAiJlRoZXJlZm9yZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NTZdLCAiY2hhcmFjdGVycyI6ICJcdTIyMzQiIH0sCisgICImVGhldGE7IjogeyAiY29kZXBvaW50cyI6IFs5MjBdLCAiY2hhcmFjdGVycyI6ICJcdTAzOTgiIH0sCisgICImdGhldGE7IjogeyAiY29kZXBvaW50cyI6IFs5NTJdLCAiY2hhcmFjdGVycyI6ICJcdTAzQjgiIH0sCisgICImdGhldGFzeW07IjogeyAiY29kZXBvaW50cyI6IFs5NzddLCAiY2hhcmFjdGVycyI6ICJcdTAzRDEiIH0sCisgICImdGhldGF2OyI6IHsgImNvZGVwb2ludHMiOiBbOTc3XSwgImNoYXJhY3RlcnMiOiAiXHUwM0QxIiB9LAorICAiJnRoaWNrYXBwcm94OyI6IHsgImNvZGVwb2ludHMiOiBbODc3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjI0OCIgfSwKKyAgIiZ0aGlja3NpbTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyM0MiIH0sCisgICImVGhpY2tTcGFjZTsiOiB7ICJjb2RlcG9pbnRzIjogWzgyODcsIDgyMDJdLCAiY2hhcmFjdGVycyI6ICJcdTIwNUZcdTIwMEEiIH0sCisgICImVGhpblNwYWNlOyI6IHsgImNvZGVwb2ludHMiOiBbODIwMV0sICJjaGFyYWN0ZXJzIjogIlx1MjAwOSIgfSwKKyAgIiZ0aGluc3A7IjogeyAiY29kZXBvaW50cyI6IFs4MjAxXSwgImNoYXJhY3RlcnMiOiAiXHUyMDA5IiB9LAorICAiJnRoa2FwOyI6IHsgImNvZGVwb2ludHMiOiBbODc3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjI0OCIgfSwKKyAgIiZ0aGtzaW07IjogeyAiY29kZXBvaW50cyI6IFs4NzY0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjNDIiB9LAorICAiJlRIT1JOOyI6IHsgImNvZGVwb2ludHMiOiBbMjIyXSwgImNoYXJhY3RlcnMiOiAiXHUwMERFIiB9LAorICAiJlRIT1JOIjogeyAiY29kZXBvaW50cyI6IFsyMjJdLCAiY2hhcmFjdGVycyI6ICJcdTAwREUiIH0sCisgICImdGhvcm47IjogeyAiY29kZXBvaW50cyI6IFsyNTRdLCAiY2hhcmFjdGVycyI6ICJcdTAwRkUiIH0sCisgICImdGhvcm4iOiB7ICJjb2RlcG9pbnRzIjogWzI1NF0sICJjaGFyYWN0ZXJzIjogIlx1MDBGRSIgfSwKKyAgIiZ0aWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzczMl0sICJjaGFyYWN0ZXJzIjogIlx1MDJEQyIgfSwKKyAgIiZUaWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyM0MiIH0sCisgICImVGlsZGVFcXVhbDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NzFdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDMiIH0sCisgICImVGlsZGVGdWxsRXF1YWw7IjogeyAiY29kZXBvaW50cyI6IFs4NzczXSwgImNoYXJhY3RlcnMiOiAiXHUyMjQ1IiB9LAorICAiJlRpbGRlVGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFs4Nzc2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjQ4IiB9LAorICAiJnRpbWVzYmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MDFdLCAiY2hhcmFjdGVycyI6ICJcdTJBMzEiIH0sCisgICImdGltZXNiOyI6IHsgImNvZGVwb2ludHMiOiBbODg2NF0sICJjaGFyYWN0ZXJzIjogIlx1MjJBMCIgfSwKKyAgIiZ0aW1lczsiOiB7ICJjb2RlcG9pbnRzIjogWzIxNV0sICJjaGFyYWN0ZXJzIjogIlx1MDBENyIgfSwKKyAgIiZ0aW1lcyI6IHsgImNvZGVwb2ludHMiOiBbMjE1XSwgImNoYXJhY3RlcnMiOiAiXHUwMEQ3IiB9LAorICAiJnRpbWVzZDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwODAwXSwgImNoYXJhY3RlcnMiOiAiXHUyQTMwIiB9LAorICAiJnRpbnQ7IjogeyAiY29kZXBvaW50cyI6IFs4NzQ5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjJEIiB9LAorICAiJnRvZWE7IjogeyAiY29kZXBvaW50cyI6IFsxMDUzNl0sICJjaGFyYWN0ZXJzIjogIlx1MjkyOCIgfSwKKyAgIiZ0b3Bib3Q7IjogeyAiY29kZXBvaW50cyI6IFs5MDE0XSwgImNoYXJhY3RlcnMiOiAiXHUyMzM2IiB9LAorICAiJnRvcGNpcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTkzXSwgImNoYXJhY3RlcnMiOiAiXHUyQUYxIiB9LAorICAiJnRvcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjhdLCAiY2hhcmFjdGVycyI6ICJcdTIyQTQiIH0sCisgICImVG9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDEzOV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ0QiIgfSwKKyAgIiZ0b3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTY1XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDY1IiB9LAorICAiJnRvcGZvcms7IjogeyAiY29kZXBvaW50cyI6IFsxMDk3MF0sICJjaGFyYWN0ZXJzIjogIlx1MkFEQSIgfSwKKyAgIiZ0b3NhOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1MzddLCAiY2hhcmFjdGVycyI6ICJcdTI5MjkiIH0sCisgICImdHByaW1lOyI6IHsgImNvZGVwb2ludHMiOiBbODI0NF0sICJjaGFyYWN0ZXJzIjogIlx1MjAzNCIgfSwKKyAgIiZ0cmFkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg0ODJdLCAiY2hhcmFjdGVycyI6ICJcdTIxMjIiIH0sCisgICImVFJBREU7IjogeyAiY29kZXBvaW50cyI6IFs4NDgyXSwgImNoYXJhY3RlcnMiOiAiXHUyMTIyIiB9LAorICAiJnRyaWFuZ2xlOyI6IHsgImNvZGVwb2ludHMiOiBbOTY1M10sICJjaGFyYWN0ZXJzIjogIlx1MjVCNSIgfSwKKyAgIiZ0cmlhbmdsZWRvd247IjogeyAiY29kZXBvaW50cyI6IFs5NjYzXSwgImNoYXJhY3RlcnMiOiAiXHUyNUJGIiB9LAorICAiJnRyaWFuZ2xlbGVmdDsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NjddLCAiY2hhcmFjdGVycyI6ICJcdTI1QzMiIH0sCisgICImdHJpYW5nbGVsZWZ0ZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODg0XSwgImNoYXJhY3RlcnMiOiAiXHUyMkI0IiB9LAorICAiJnRyaWFuZ2xlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3OTZdLCAiY2hhcmFjdGVycyI6ICJcdTIyNUMiIH0sCisgICImdHJpYW5nbGVyaWdodDsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NTddLCAiY2hhcmFjdGVycyI6ICJcdTI1QjkiIH0sCisgICImdHJpYW5nbGVyaWdodGVxOyI6IHsgImNvZGVwb2ludHMiOiBbODg4NV0sICJjaGFyYWN0ZXJzIjogIlx1MjJCNSIgfSwKKyAgIiZ0cmlkb3Q7IjogeyAiY29kZXBvaW50cyI6IFs5NzA4XSwgImNoYXJhY3RlcnMiOiAiXHUyNUVDIiB9LAorICAiJnRyaWU7IjogeyAiY29kZXBvaW50cyI6IFs4Nzk2XSwgImNoYXJhY3RlcnMiOiAiXHUyMjVDIiB9LAorICAiJnRyaW1pbnVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MTBdLCAiY2hhcmFjdGVycyI6ICJcdTJBM0EiIH0sCisgICImVHJpcGxlRG90OyI6IHsgImNvZGVwb2ludHMiOiBbODQxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjBEQiIgfSwKKyAgIiZ0cmlwbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MDldLCAiY2hhcmFjdGVycyI6ICJcdTJBMzkiIH0sCisgICImdHJpc2I7IjogeyAiY29kZXBvaW50cyI6IFsxMDcwMV0sICJjaGFyYWN0ZXJzIjogIlx1MjlDRCIgfSwKKyAgIiZ0cml0aW1lOyI6IHsgImNvZGVwb2ludHMiOiBbMTA4MTFdLCAiY2hhcmFjdGVycyI6ICJcdTJBM0IiIH0sCisgICImdHJwZXppdW07IjogeyAiY29kZXBvaW50cyI6IFs5MTg2XSwgImNoYXJhY3RlcnMiOiAiXHUyM0UyIiB9LAorICAiJlRzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMTk5ODNdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQUYiIH0sCisgICImdHNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDAwOV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENDOSIgfSwKKyAgIiZUU2N5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDQyNiIgfSwKKyAgIiZ0c2N5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NF0sICJjaGFyYWN0ZXJzIjogIlx1MDQ0NiIgfSwKKyAgIiZUU0hjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMzVdLCAiY2hhcmFjdGVycyI6ICJcdTA0MEIiIH0sCisgICImdHNoY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTE1XSwgImNoYXJhY3RlcnMiOiAiXHUwNDVCIiB9LAorICAiJlRzdHJvazsiOiB7ICJjb2RlcG9pbnRzIjogWzM1OF0sICJjaGFyYWN0ZXJzIjogIlx1MDE2NiIgfSwKKyAgIiZ0c3Ryb2s7IjogeyAiY29kZXBvaW50cyI6IFszNTldLCAiY2hhcmFjdGVycyI6ICJcdTAxNjciIH0sCisgICImdHdpeHQ7IjogeyAiY29kZXBvaW50cyI6IFs4ODEyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjZDIiB9LAorICAiJnR3b2hlYWRsZWZ0YXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjA2XSwgImNoYXJhY3RlcnMiOiAiXHUyMTlFIiB9LAorICAiJnR3b2hlYWRyaWdodGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODYwOF0sICJjaGFyYWN0ZXJzIjogIlx1MjFBMCIgfSwKKyAgIiZVYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFsyMThdLCAiY2hhcmFjdGVycyI6ICJcdTAwREEiIH0sCisgICImVWFjdXRlIjogeyAiY29kZXBvaW50cyI6IFsyMThdLCAiY2hhcmFjdGVycyI6ICJcdTAwREEiIH0sCisgICImdWFjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMjUwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEZBIiB9LAorICAiJnVhY3V0ZSI6IHsgImNvZGVwb2ludHMiOiBbMjUwXSwgImNoYXJhY3RlcnMiOiAiXHUwMEZBIiB9LAorICAiJnVhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NTkzXSwgImNoYXJhY3RlcnMiOiAiXHUyMTkxIiB9LAorICAiJlVhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjA3XSwgImNoYXJhY3RlcnMiOiAiXHUyMTlGIiB9LAorICAiJnVBcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjU3XSwgImNoYXJhY3RlcnMiOiAiXHUyMUQxIiB9LAorICAiJlVhcnJvY2lyOyI6IHsgImNvZGVwb2ludHMiOiBbMTA1NjldLCAiY2hhcmFjdGVycyI6ICJcdTI5NDkiIH0sCisgICImVWJyY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDM4XSwgImNoYXJhY3RlcnMiOiAiXHUwNDBFIiB9LAorICAiJnVicmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTExOF0sICJjaGFyYWN0ZXJzIjogIlx1MDQ1RSIgfSwKKyAgIiZVYnJldmU7IjogeyAiY29kZXBvaW50cyI6IFszNjRdLCAiY2hhcmFjdGVycyI6ICJcdTAxNkMiIH0sCisgICImdWJyZXZlOyI6IHsgImNvZGVwb2ludHMiOiBbMzY1XSwgImNoYXJhY3RlcnMiOiAiXHUwMTZEIiB9LAorICAiJlVjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbMjE5XSwgImNoYXJhY3RlcnMiOiAiXHUwMERCIiB9LAorICAiJlVjaXJjIjogeyAiY29kZXBvaW50cyI6IFsyMTldLCAiY2hhcmFjdGVycyI6ICJcdTAwREIiIH0sCisgICImdWNpcmM7IjogeyAiY29kZXBvaW50cyI6IFsyNTFdLCAiY2hhcmFjdGVycyI6ICJcdTAwRkIiIH0sCisgICImdWNpcmMiOiB7ICJjb2RlcG9pbnRzIjogWzI1MV0sICJjaGFyYWN0ZXJzIjogIlx1MDBGQiIgfSwKKyAgIiZVY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDU5XSwgImNoYXJhY3RlcnMiOiAiXHUwNDIzIiB9LAorICAiJnVjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTFdLCAiY2hhcmFjdGVycyI6ICJcdTA0NDMiIH0sCisgICImdWRhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjQ1XSwgImNoYXJhY3RlcnMiOiAiXHUyMUM1IiB9LAorICAiJlVkYmxhYzsiOiB7ICJjb2RlcG9pbnRzIjogWzM2OF0sICJjaGFyYWN0ZXJzIjogIlx1MDE3MCIgfSwKKyAgIiZ1ZGJsYWM7IjogeyAiY29kZXBvaW50cyI6IFszNjldLCAiY2hhcmFjdGVycyI6ICJcdTAxNzEiIH0sCisgICImdWRoYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDYwNl0sICJjaGFyYWN0ZXJzIjogIlx1Mjk2RSIgfSwKKyAgIiZ1ZmlzaHQ7IjogeyAiY29kZXBvaW50cyI6IFsxMDYyMl0sICJjaGFyYWN0ZXJzIjogIlx1Mjk3RSIgfSwKKyAgIiZVZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwODhdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMTgiIH0sCisgICImdWZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTE0XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDMyIiB9LAorICAiJlVncmF2ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzIxN10sICJjaGFyYWN0ZXJzIjogIlx1MDBEOSIgfSwKKyAgIiZVZ3JhdmUiOiB7ICJjb2RlcG9pbnRzIjogWzIxN10sICJjaGFyYWN0ZXJzIjogIlx1MDBEOSIgfSwKKyAgIiZ1Z3JhdmU7IjogeyAiY29kZXBvaW50cyI6IFsyNDldLCAiY2hhcmFjdGVycyI6ICJcdTAwRjkiIH0sCisgICImdWdyYXZlIjogeyAiY29kZXBvaW50cyI6IFsyNDldLCAiY2hhcmFjdGVycyI6ICJcdTAwRjkiIH0sCisgICImdUhhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNTk1XSwgImNoYXJhY3RlcnMiOiAiXHUyOTYzIiB9LAorICAiJnVoYXJsOyI6IHsgImNvZGVwb2ludHMiOiBbODYzOV0sICJjaGFyYWN0ZXJzIjogIlx1MjFCRiIgfSwKKyAgIiZ1aGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzhdLCAiY2hhcmFjdGVycyI6ICJcdTIxQkUiIH0sCisgICImdWhibGs7IjogeyAiY29kZXBvaW50cyI6IFs5NjAwXSwgImNoYXJhY3RlcnMiOiAiXHUyNTgwIiB9LAorICAiJnVsY29ybjsiOiB7ICJjb2RlcG9pbnRzIjogWzg5ODhdLCAiY2hhcmFjdGVycyI6ICJcdTIzMUMiIH0sCisgICImdWxjb3JuZXI7IjogeyAiY29kZXBvaW50cyI6IFs4OTg4XSwgImNoYXJhY3RlcnMiOiAiXHUyMzFDIiB9LAorICAiJnVsY3JvcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NzVdLCAiY2hhcmFjdGVycyI6ICJcdTIzMEYiIH0sCisgICImdWx0cmk7IjogeyAiY29kZXBvaW50cyI6IFs5NzIwXSwgImNoYXJhY3RlcnMiOiAiXHUyNUY4IiB9LAorICAiJlVtYWNyOyI6IHsgImNvZGVwb2ludHMiOiBbMzYyXSwgImNoYXJhY3RlcnMiOiAiXHUwMTZBIiB9LAorICAiJnVtYWNyOyI6IHsgImNvZGVwb2ludHMiOiBbMzYzXSwgImNoYXJhY3RlcnMiOiAiXHUwMTZCIiB9LAorICAiJnVtbDsiOiB7ICJjb2RlcG9pbnRzIjogWzE2OF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBOCIgfSwKKyAgIiZ1bWwiOiB7ICJjb2RlcG9pbnRzIjogWzE2OF0sICJjaGFyYWN0ZXJzIjogIlx1MDBBOCIgfSwKKyAgIiZVbmRlckJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzk1XSwgImNoYXJhY3RlcnMiOiAiXHUwMDVGIiB9LAorICAiJlVuZGVyQnJhY2U7IjogeyAiY29kZXBvaW50cyI6IFs5MTgzXSwgImNoYXJhY3RlcnMiOiAiXHUyM0RGIiB9LAorICAiJlVuZGVyQnJhY2tldDsiOiB7ICJjb2RlcG9pbnRzIjogWzkxNDFdLCAiY2hhcmFjdGVycyI6ICJcdTIzQjUiIH0sCisgICImVW5kZXJQYXJlbnRoZXNpczsiOiB7ICJjb2RlcG9pbnRzIjogWzkxODFdLCAiY2hhcmFjdGVycyI6ICJcdTIzREQiIH0sCisgICImVW5pb247IjogeyAiY29kZXBvaW50cyI6IFs4ODk5XSwgImNoYXJhY3RlcnMiOiAiXHUyMkMzIiB9LAorICAiJlVuaW9uUGx1czsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NDZdLCAiY2hhcmFjdGVycyI6ICJcdTIyOEUiIH0sCisgICImVW9nb247IjogeyAiY29kZXBvaW50cyI6IFszNzBdLCAiY2hhcmFjdGVycyI6ICJcdTAxNzIiIH0sCisgICImdW9nb247IjogeyAiY29kZXBvaW50cyI6IFszNzFdLCAiY2hhcmFjdGVycyI6ICJcdTAxNzMiIH0sCisgICImVW9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE0MF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ0QyIgfSwKKyAgIiZ1b3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTY2XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDY2IiB9LAorICAiJlVwQXJyb3dCYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDUxNF0sICJjaGFyYWN0ZXJzIjogIlx1MjkxMiIgfSwKKyAgIiZ1cGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5M10sICJjaGFyYWN0ZXJzIjogIlx1MjE5MSIgfSwKKyAgIiZVcEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5M10sICJjaGFyYWN0ZXJzIjogIlx1MjE5MSIgfSwKKyAgIiZVcGFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODY1N10sICJjaGFyYWN0ZXJzIjogIlx1MjFEMSIgfSwKKyAgIiZVcEFycm93RG93bkFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODY0NV0sICJjaGFyYWN0ZXJzIjogIlx1MjFDNSIgfSwKKyAgIiZ1cGRvd25hcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OTddLCAiY2hhcmFjdGVycyI6ICJcdTIxOTUiIH0sCisgICImVXBEb3duQXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NTk3XSwgImNoYXJhY3RlcnMiOiAiXHUyMTk1IiB9LAorICAiJlVwZG93bmFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODY2MV0sICJjaGFyYWN0ZXJzIjogIlx1MjFENSIgfSwKKyAgIiZVcEVxdWlsaWJyaXVtOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2MDZdLCAiY2hhcmFjdGVycyI6ICJcdTI5NkUiIH0sCisgICImdXBoYXJwb29ubGVmdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg2MzldLCAiY2hhcmFjdGVycyI6ICJcdTIxQkYiIH0sCisgICImdXBoYXJwb29ucmlnaHQ7IjogeyAiY29kZXBvaW50cyI6IFs4NjM4XSwgImNoYXJhY3RlcnMiOiAiXHUyMUJFIiB9LAorICAiJnVwbHVzOyI6IHsgImNvZGVwb2ludHMiOiBbODg0Nl0sICJjaGFyYWN0ZXJzIjogIlx1MjI4RSIgfSwKKyAgIiZVcHBlckxlZnRBcnJvdzsiOiB7ICJjb2RlcG9pbnRzIjogWzg1OThdLCAiY2hhcmFjdGVycyI6ICJcdTIxOTYiIH0sCisgICImVXBwZXJSaWdodEFycm93OyI6IHsgImNvZGVwb2ludHMiOiBbODU5OV0sICJjaGFyYWN0ZXJzIjogIlx1MjE5NyIgfSwKKyAgIiZ1cHNpOyI6IHsgImNvZGVwb2ludHMiOiBbOTY1XSwgImNoYXJhY3RlcnMiOiAiXHUwM0M1IiB9LAorICAiJlVwc2k7IjogeyAiY29kZXBvaW50cyI6IFs5NzhdLCAiY2hhcmFjdGVycyI6ICJcdTAzRDIiIH0sCisgICImdXBzaWg7IjogeyAiY29kZXBvaW50cyI6IFs5NzhdLCAiY2hhcmFjdGVycyI6ICJcdTAzRDIiIH0sCisgICImVXBzaWxvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzkzM10sICJjaGFyYWN0ZXJzIjogIlx1MDNBNSIgfSwKKyAgIiZ1cHNpbG9uOyI6IHsgImNvZGVwb2ludHMiOiBbOTY1XSwgImNoYXJhY3RlcnMiOiAiXHUwM0M1IiB9LAorICAiJlVwVGVlQXJyb3c7IjogeyAiY29kZXBvaW50cyI6IFs4NjEzXSwgImNoYXJhY3RlcnMiOiAiXHUyMUE1IiB9LAorICAiJlVwVGVlOyI6IHsgImNvZGVwb2ludHMiOiBbODg2OV0sICJjaGFyYWN0ZXJzIjogIlx1MjJBNSIgfSwKKyAgIiZ1cHVwYXJyb3dzOyI6IHsgImNvZGVwb2ludHMiOiBbODY0OF0sICJjaGFyYWN0ZXJzIjogIlx1MjFDOCIgfSwKKyAgIiZ1cmNvcm47IjogeyAiY29kZXBvaW50cyI6IFs4OTg5XSwgImNoYXJhY3RlcnMiOiAiXHUyMzFEIiB9LAorICAiJnVyY29ybmVyOyI6IHsgImNvZGVwb2ludHMiOiBbODk4OV0sICJjaGFyYWN0ZXJzIjogIlx1MjMxRCIgfSwKKyAgIiZ1cmNyb3A7IjogeyAiY29kZXBvaW50cyI6IFs4OTc0XSwgImNoYXJhY3RlcnMiOiAiXHUyMzBFIiB9LAorICAiJlVyaW5nOyI6IHsgImNvZGVwb2ludHMiOiBbMzY2XSwgImNoYXJhY3RlcnMiOiAiXHUwMTZFIiB9LAorICAiJnVyaW5nOyI6IHsgImNvZGVwb2ludHMiOiBbMzY3XSwgImNoYXJhY3RlcnMiOiAiXHUwMTZGIiB9LAorICAiJnVydHJpOyI6IHsgImNvZGVwb2ludHMiOiBbOTcyMV0sICJjaGFyYWN0ZXJzIjogIlx1MjVGOSIgfSwKKyAgIiZVc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTg0XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0IwIiB9LAorICAiJnVzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMTBdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQ0EiIH0sCisgICImdXRkb3Q7IjogeyAiY29kZXBvaW50cyI6IFs4OTQ0XSwgImNoYXJhY3RlcnMiOiAiXHUyMkYwIiB9LAorICAiJlV0aWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzM2MF0sICJjaGFyYWN0ZXJzIjogIlx1MDE2OCIgfSwKKyAgIiZ1dGlsZGU7IjogeyAiY29kZXBvaW50cyI6IFszNjFdLCAiY2hhcmFjdGVycyI6ICJcdTAxNjkiIH0sCisgICImdXRyaTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NTNdLCAiY2hhcmFjdGVycyI6ICJcdTI1QjUiIH0sCisgICImdXRyaWY7IjogeyAiY29kZXBvaW50cyI6IFs5NjUyXSwgImNoYXJhY3RlcnMiOiAiXHUyNUI0IiB9LAorICAiJnV1YXJyOyI6IHsgImNvZGVwb2ludHMiOiBbODY0OF0sICJjaGFyYWN0ZXJzIjogIlx1MjFDOCIgfSwKKyAgIiZVdW1sOyI6IHsgImNvZGVwb2ludHMiOiBbMjIwXSwgImNoYXJhY3RlcnMiOiAiXHUwMERDIiB9LAorICAiJlV1bWwiOiB7ICJjb2RlcG9pbnRzIjogWzIyMF0sICJjaGFyYWN0ZXJzIjogIlx1MDBEQyIgfSwKKyAgIiZ1dW1sOyI6IHsgImNvZGVwb2ludHMiOiBbMjUyXSwgImNoYXJhY3RlcnMiOiAiXHUwMEZDIiB9LAorICAiJnV1bWwiOiB7ICJjb2RlcG9pbnRzIjogWzI1Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDBGQyIgfSwKKyAgIiZ1d2FuZ2xlOyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NjNdLCAiY2hhcmFjdGVycyI6ICJcdTI5QTciIH0sCisgICImdmFuZ3J0OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2NTJdLCAiY2hhcmFjdGVycyI6ICJcdTI5OUMiIH0sCisgICImdmFyZXBzaWxvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMTNdLCAiY2hhcmFjdGVycyI6ICJcdTAzRjUiIH0sCisgICImdmFya2FwcGE7IjogeyAiY29kZXBvaW50cyI6IFsxMDA4XSwgImNoYXJhY3RlcnMiOiAiXHUwM0YwIiB9LAorICAiJnZhcm5vdGhpbmc7IjogeyAiY29kZXBvaW50cyI6IFs4NzA5XSwgImNoYXJhY3RlcnMiOiAiXHUyMjA1IiB9LAorICAiJnZhcnBoaTsiOiB7ICJjb2RlcG9pbnRzIjogWzk4MV0sICJjaGFyYWN0ZXJzIjogIlx1MDNENSIgfSwKKyAgIiZ2YXJwaTsiOiB7ICJjb2RlcG9pbnRzIjogWzk4Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDNENiIgfSwKKyAgIiZ2YXJwcm9wdG87IjogeyAiY29kZXBvaW50cyI6IFs4NzMzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjFEIiB9LAorICAiJnZhcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NTk3XSwgImNoYXJhY3RlcnMiOiAiXHUyMTk1IiB9LAorICAiJnZBcnI7IjogeyAiY29kZXBvaW50cyI6IFs4NjYxXSwgImNoYXJhY3RlcnMiOiAiXHUyMUQ1IiB9LAorICAiJnZhcnJobzsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMDldLCAiY2hhcmFjdGVycyI6ICJcdTAzRjEiIH0sCisgICImdmFyc2lnbWE7IjogeyAiY29kZXBvaW50cyI6IFs5NjJdLCAiY2hhcmFjdGVycyI6ICJcdTAzQzIiIH0sCisgICImdmFyc3Vic2V0bmVxOyI6IHsgImNvZGVwb2ludHMiOiBbODg0MiwgNjUwMjRdLCAiY2hhcmFjdGVycyI6ICJcdTIyOEFcdUZFMDAiIH0sCisgICImdmFyc3Vic2V0bmVxcTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTU1LCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFDQlx1RkUwMCIgfSwKKyAgIiZ2YXJzdXBzZXRuZXE7IjogeyAiY29kZXBvaW50cyI6IFs4ODQzLCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI4Qlx1RkUwMCIgfSwKKyAgIiZ2YXJzdXBzZXRuZXFxOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NTYsIDY1MDI0XSwgImNoYXJhY3RlcnMiOiAiXHUyQUNDXHVGRTAwIiB9LAorICAiJnZhcnRoZXRhOyI6IHsgImNvZGVwb2ludHMiOiBbOTc3XSwgImNoYXJhY3RlcnMiOiAiXHUwM0QxIiB9LAorICAiJnZhcnRyaWFuZ2xlbGVmdDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODJdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjIiIH0sCisgICImdmFydHJpYW5nbGVyaWdodDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODNdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjMiIH0sCisgICImdkJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTg0XSwgImNoYXJhY3RlcnMiOiAiXHUyQUU4IiB9LAorICAiJlZiYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDk4N10sICJjaGFyYWN0ZXJzIjogIlx1MkFFQiIgfSwKKyAgIiZ2QmFydjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTg1XSwgImNoYXJhY3RlcnMiOiAiXHUyQUU5IiB9LAorICAiJlZjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNDJdLCAiY2hhcmFjdGVycyI6ICJcdTA0MTIiIH0sCisgICImdmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA3NF0sICJjaGFyYWN0ZXJzIjogIlx1MDQzMiIgfSwKKyAgIiZ2ZGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NjZdLCAiY2hhcmFjdGVycyI6ICJcdTIyQTIiIH0sCisgICImdkRhc2g7IjogeyAiY29kZXBvaW50cyI6IFs4ODcyXSwgImNoYXJhY3RlcnMiOiAiXHUyMkE4IiB9LAorICAiJlZkYXNoOyI6IHsgImNvZGVwb2ludHMiOiBbODg3M10sICJjaGFyYWN0ZXJzIjogIlx1MjJBOSIgfSwKKyAgIiZWRGFzaDsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NzVdLCAiY2hhcmFjdGVycyI6ICJcdTIyQUIiIH0sCisgICImVmRhc2hsOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5ODJdLCAiY2hhcmFjdGVycyI6ICJcdTJBRTYiIH0sCisgICImdmVlYmFyOyI6IHsgImNvZGVwb2ludHMiOiBbODg5MV0sICJjaGFyYWN0ZXJzIjogIlx1MjJCQiIgfSwKKyAgIiZ2ZWU7IjogeyAiY29kZXBvaW50cyI6IFs4NzQ0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjI4IiB9LAorICAiJlZlZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4OTddLCAiY2hhcmFjdGVycyI6ICJcdTIyQzEiIH0sCisgICImdmVlZXE7IjogeyAiY29kZXBvaW50cyI6IFs4Nzk0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjVBIiB9LAorICAiJnZlbGxpcDsiOiB7ICJjb2RlcG9pbnRzIjogWzg5NDJdLCAiY2hhcmFjdGVycyI6ICJcdTIyRUUiIH0sCisgICImdmVyYmFyOyI6IHsgImNvZGVwb2ludHMiOiBbMTI0XSwgImNoYXJhY3RlcnMiOiAiXHUwMDdDIiB9LAorICAiJlZlcmJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMTRdLCAiY2hhcmFjdGVycyI6ICJcdTIwMTYiIH0sCisgICImdmVydDsiOiB7ICJjb2RlcG9pbnRzIjogWzEyNF0sICJjaGFyYWN0ZXJzIjogIlx1MDA3QyIgfSwKKyAgIiZWZXJ0OyI6IHsgImNvZGVwb2ludHMiOiBbODIxNF0sICJjaGFyYWN0ZXJzIjogIlx1MjAxNiIgfSwKKyAgIiZWZXJ0aWNhbEJhcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg3MzldLCAiY2hhcmFjdGVycyI6ICJcdTIyMjMiIH0sCisgICImVmVydGljYWxMaW5lOyI6IHsgImNvZGVwb2ludHMiOiBbMTI0XSwgImNoYXJhY3RlcnMiOiAiXHUwMDdDIiB9LAorICAiJlZlcnRpY2FsU2VwYXJhdG9yOyI6IHsgImNvZGVwb2ludHMiOiBbMTAwNzJdLCAiY2hhcmFjdGVycyI6ICJcdTI3NTgiIH0sCisgICImVmVydGljYWxUaWxkZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjhdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDAiIH0sCisgICImVmVyeVRoaW5TcGFjZTsiOiB7ICJjb2RlcG9pbnRzIjogWzgyMDJdLCAiY2hhcmFjdGVycyI6ICJcdTIwMEEiIH0sCisgICImVmZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDg5XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDE5IiB9LAorICAiJnZmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDExNV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQzMyIgfSwKKyAgIiZ2bHRyaTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4ODJdLCAiY2hhcmFjdGVycyI6ICJcdTIyQjIiIH0sCisgICImdm5zdWI7IjogeyAiY29kZXBvaW50cyI6IFs4ODM0LCA4NDAyXSwgImNoYXJhY3RlcnMiOiAiXHUyMjgyXHUyMEQyIiB9LAorICAiJnZuc3VwOyI6IHsgImNvZGVwb2ludHMiOiBbODgzNSwgODQwMl0sICJjaGFyYWN0ZXJzIjogIlx1MjI4M1x1MjBEMiIgfSwKKyAgIiZWb3BmOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTQxXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDREIiB9LAorICAiJnZvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNjddLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENjciIH0sCisgICImdnByb3A7IjogeyAiY29kZXBvaW50cyI6IFs4NzMzXSwgImNoYXJhY3RlcnMiOiAiXHUyMjFEIiB9LAorICAiJnZydHJpOyI6IHsgImNvZGVwb2ludHMiOiBbODg4M10sICJjaGFyYWN0ZXJzIjogIlx1MjJCMyIgfSwKKyAgIiZWc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTg1XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0IxIiB9LAorICAiJnZzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMTFdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQ0IiIH0sCisgICImdnN1Ym5FOyI6IHsgImNvZGVwb2ludHMiOiBbMTA5NTUsIDY1MDI0XSwgImNoYXJhY3RlcnMiOiAiXHUyQUNCXHVGRTAwIiB9LAorICAiJnZzdWJuZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg4NDIsIDY1MDI0XSwgImNoYXJhY3RlcnMiOiAiXHUyMjhBXHVGRTAwIiB9LAorICAiJnZzdXBuRTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwOTU2LCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MkFDQ1x1RkUwMCIgfSwKKyAgIiZ2c3VwbmU7IjogeyAiY29kZXBvaW50cyI6IFs4ODQzLCA2NTAyNF0sICJjaGFyYWN0ZXJzIjogIlx1MjI4Qlx1RkUwMCIgfSwKKyAgIiZWdmRhc2g7IjogeyAiY29kZXBvaW50cyI6IFs4ODc0XSwgImNoYXJhY3RlcnMiOiAiXHUyMkFBIiB9LAorICAiJnZ6aWd6YWc7IjogeyAiY29kZXBvaW50cyI6IFsxMDY1MF0sICJjaGFyYWN0ZXJzIjogIlx1Mjk5QSIgfSwKKyAgIiZXY2lyYzsiOiB7ICJjb2RlcG9pbnRzIjogWzM3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MDE3NCIgfSwKKyAgIiZ3Y2lyYzsiOiB7ICJjb2RlcG9pbnRzIjogWzM3M10sICJjaGFyYWN0ZXJzIjogIlx1MDE3NSIgfSwKKyAgIiZ3ZWRiYXI7IjogeyAiY29kZXBvaW50cyI6IFsxMDg0N10sICJjaGFyYWN0ZXJzIjogIlx1MkE1RiIgfSwKKyAgIiZ3ZWRnZTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NDNdLCAiY2hhcmFjdGVycyI6ICJcdTIyMjciIH0sCisgICImV2VkZ2U7IjogeyAiY29kZXBvaW50cyI6IFs4ODk2XSwgImNoYXJhY3RlcnMiOiAiXHUyMkMwIiB9LAorICAiJndlZGdlcTsiOiB7ICJjb2RlcG9pbnRzIjogWzg3OTNdLCAiY2hhcmFjdGVycyI6ICJcdTIyNTkiIH0sCisgICImd2VpZXJwOyI6IHsgImNvZGVwb2ludHMiOiBbODQ3Ml0sICJjaGFyYWN0ZXJzIjogIlx1MjExOCIgfSwKKyAgIiZXZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwOTBdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMUEiIH0sCisgICImd2ZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTE2XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDM0IiB9LAorICAiJldvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNDJdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENEUiIH0sCisgICImd29wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE2OF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ2OCIgfSwKKyAgIiZ3cDsiOiB7ICJjb2RlcG9pbnRzIjogWzg0NzJdLCAiY2hhcmFjdGVycyI6ICJcdTIxMTgiIH0sCisgICImd3I7IjogeyAiY29kZXBvaW50cyI6IFs4NzY4XSwgImNoYXJhY3RlcnMiOiAiXHUyMjQwIiB9LAorICAiJndyZWF0aDsiOiB7ICJjb2RlcG9pbnRzIjogWzg3NjhdLCAiY2hhcmFjdGVycyI6ICJcdTIyNDAiIH0sCisgICImV3NjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk4Nl0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENCMiIgfSwKKyAgIiZ3c2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDEyXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0NDIiB9LAorICAiJnhjYXA7IjogeyAiY29kZXBvaW50cyI6IFs4ODk4XSwgImNoYXJhY3RlcnMiOiAiXHUyMkMyIiB9LAorICAiJnhjaXJjOyI6IHsgImNvZGVwb2ludHMiOiBbOTcxMV0sICJjaGFyYWN0ZXJzIjogIlx1MjVFRiIgfSwKKyAgIiZ4Y3VwOyI6IHsgImNvZGVwb2ludHMiOiBbODg5OV0sICJjaGFyYWN0ZXJzIjogIlx1MjJDMyIgfSwKKyAgIiZ4ZHRyaTsiOiB7ICJjb2RlcG9pbnRzIjogWzk2NjFdLCAiY2hhcmFjdGVycyI6ICJcdTI1QkQiIH0sCisgICImWGZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDkxXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDFCIiB9LAorICAiJnhmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDExN10sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQzNSIgfSwKKyAgIiZ4aGFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjMxXSwgImNoYXJhY3RlcnMiOiAiXHUyN0Y3IiB9LAorICAiJnhoQXJyOyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzRdLCAiY2hhcmFjdGVycyI6ICJcdTI3RkEiIH0sCisgICImWGk7IjogeyAiY29kZXBvaW50cyI6IFs5MjZdLCAiY2hhcmFjdGVycyI6ICJcdTAzOUUiIH0sCisgICImeGk7IjogeyAiY29kZXBvaW50cyI6IFs5NThdLCAiY2hhcmFjdGVycyI6ICJcdTAzQkUiIH0sCisgICImeGxhcnI7IjogeyAiY29kZXBvaW50cyI6IFsxMDIyOV0sICJjaGFyYWN0ZXJzIjogIlx1MjdGNSIgfSwKKyAgIiZ4bEFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjMyXSwgImNoYXJhY3RlcnMiOiAiXHUyN0Y4IiB9LAorICAiJnhtYXA7IjogeyAiY29kZXBvaW50cyI6IFsxMDIzNl0sICJjaGFyYWN0ZXJzIjogIlx1MjdGQyIgfSwKKyAgIiZ4bmlzOyI6IHsgImNvZGVwb2ludHMiOiBbODk1NV0sICJjaGFyYWN0ZXJzIjogIlx1MjJGQiIgfSwKKyAgIiZ4b2RvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzUyXSwgImNoYXJhY3RlcnMiOiAiXHUyQTAwIiB9LAorICAiJlhvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNDNdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENEYiIH0sCisgICImeG9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE2OV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ2OSIgfSwKKyAgIiZ4b3BsdXM7IjogeyAiY29kZXBvaW50cyI6IFsxMDc1M10sICJjaGFyYWN0ZXJzIjogIlx1MkEwMSIgfSwKKyAgIiZ4b3RpbWU7IjogeyAiY29kZXBvaW50cyI6IFsxMDc1NF0sICJjaGFyYWN0ZXJzIjogIlx1MkEwMiIgfSwKKyAgIiZ4cmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzEwMjMwXSwgImNoYXJhY3RlcnMiOiAiXHUyN0Y2IiB9LAorICAiJnhyQXJyOyI6IHsgImNvZGVwb2ludHMiOiBbMTAyMzNdLCAiY2hhcmFjdGVycyI6ICJcdTI3RjkiIH0sCisgICImWHNjcjsiOiB7ICJjb2RlcG9pbnRzIjogWzExOTk4N10sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1RENCMyIgfSwKKyAgIiZ4c2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMDEzXSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0NEIiB9LAorICAiJnhzcWN1cDsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzU4XSwgImNoYXJhY3RlcnMiOiAiXHUyQTA2IiB9LAorICAiJnh1cGx1czsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzU2XSwgImNoYXJhY3RlcnMiOiAiXHUyQTA0IiB9LAorICAiJnh1dHJpOyI6IHsgImNvZGVwb2ludHMiOiBbOTY1MV0sICJjaGFyYWN0ZXJzIjogIlx1MjVCMyIgfSwKKyAgIiZ4dmVlOyI6IHsgImNvZGVwb2ludHMiOiBbODg5N10sICJjaGFyYWN0ZXJzIjogIlx1MjJDMSIgfSwKKyAgIiZ4d2VkZ2U7IjogeyAiY29kZXBvaW50cyI6IFs4ODk2XSwgImNoYXJhY3RlcnMiOiAiXHUyMkMwIiB9LAorICAiJllhY3V0ZTsiOiB7ICJjb2RlcG9pbnRzIjogWzIyMV0sICJjaGFyYWN0ZXJzIjogIlx1MDBERCIgfSwKKyAgIiZZYWN1dGUiOiB7ICJjb2RlcG9pbnRzIjogWzIyMV0sICJjaGFyYWN0ZXJzIjogIlx1MDBERCIgfSwKKyAgIiZ5YWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFsyNTNdLCAiY2hhcmFjdGVycyI6ICJcdTAwRkQiIH0sCisgICImeWFjdXRlIjogeyAiY29kZXBvaW50cyI6IFsyNTNdLCAiY2hhcmFjdGVycyI6ICJcdTAwRkQiIH0sCisgICImWUFjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzFdLCAiY2hhcmFjdGVycyI6ICJcdTA0MkYiIH0sCisgICImeWFjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzExMDNdLCAiY2hhcmFjdGVycyI6ICJcdTA0NEYiIH0sCisgICImWWNpcmM7IjogeyAiY29kZXBvaW50cyI6IFszNzRdLCAiY2hhcmFjdGVycyI6ICJcdTAxNzYiIH0sCisgICImeWNpcmM7IjogeyAiY29kZXBvaW50cyI6IFszNzVdLCAiY2hhcmFjdGVycyI6ICJcdTAxNzciIH0sCisgICImWWN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA2N10sICJjaGFyYWN0ZXJzIjogIlx1MDQyQiIgfSwKKyAgIiZ5Y3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDk5XSwgImNoYXJhY3RlcnMiOiAiXHUwNDRCIiB9LAorICAiJnllbjsiOiB7ICJjb2RlcG9pbnRzIjogWzE2NV0sICJjaGFyYWN0ZXJzIjogIlx1MDBBNSIgfSwKKyAgIiZ5ZW4iOiB7ICJjb2RlcG9pbnRzIjogWzE2NV0sICJjaGFyYWN0ZXJzIjogIlx1MDBBNSIgfSwKKyAgIiZZZnI7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwOTJdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdUREMUMiIH0sCisgICImeWZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTE4XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDM2IiB9LAorICAiJllJY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDMxXSwgImNoYXJhY3RlcnMiOiAiXHUwNDA3IiB9LAorICAiJnlpY3k7IjogeyAiY29kZXBvaW50cyI6IFsxMTExXSwgImNoYXJhY3RlcnMiOiAiXHUwNDU3IiB9LAorICAiJllvcGY7IjogeyAiY29kZXBvaW50cyI6IFsxMjAxNDRdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURENTAiIH0sCisgICImeW9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE3MF0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ2QSIgfSwKKyAgIiZZc2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTg4XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0I0IiB9LAorICAiJnlzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMTRdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQ0UiIH0sCisgICImWVVjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzBdLCAiY2hhcmFjdGVycyI6ICJcdTA0MkUiIH0sCisgICImeXVjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzExMDJdLCAiY2hhcmFjdGVycyI6ICJcdTA0NEUiIH0sCisgICImeXVtbDsiOiB7ICJjb2RlcG9pbnRzIjogWzI1NV0sICJjaGFyYWN0ZXJzIjogIlx1MDBGRiIgfSwKKyAgIiZ5dW1sIjogeyAiY29kZXBvaW50cyI6IFsyNTVdLCAiY2hhcmFjdGVycyI6ICJcdTAwRkYiIH0sCisgICImWXVtbDsiOiB7ICJjb2RlcG9pbnRzIjogWzM3Nl0sICJjaGFyYWN0ZXJzIjogIlx1MDE3OCIgfSwKKyAgIiZaYWN1dGU7IjogeyAiY29kZXBvaW50cyI6IFszNzddLCAiY2hhcmFjdGVycyI6ICJcdTAxNzkiIH0sCisgICImemFjdXRlOyI6IHsgImNvZGVwb2ludHMiOiBbMzc4XSwgImNoYXJhY3RlcnMiOiAiXHUwMTdBIiB9LAorICAiJlpjYXJvbjsiOiB7ICJjb2RlcG9pbnRzIjogWzM4MV0sICJjaGFyYWN0ZXJzIjogIlx1MDE3RCIgfSwKKyAgIiZ6Y2Fyb247IjogeyAiY29kZXBvaW50cyI6IFszODJdLCAiY2hhcmFjdGVycyI6ICJcdTAxN0UiIH0sCisgICImWmN5OyI6IHsgImNvZGVwb2ludHMiOiBbMTA0N10sICJjaGFyYWN0ZXJzIjogIlx1MDQxNyIgfSwKKyAgIiZ6Y3k7IjogeyAiY29kZXBvaW50cyI6IFsxMDc5XSwgImNoYXJhY3RlcnMiOiAiXHUwNDM3IiB9LAorICAiJlpkb3Q7IjogeyAiY29kZXBvaW50cyI6IFszNzldLCAiY2hhcmFjdGVycyI6ICJcdTAxN0IiIH0sCisgICImemRvdDsiOiB7ICJjb2RlcG9pbnRzIjogWzM4MF0sICJjaGFyYWN0ZXJzIjogIlx1MDE3QyIgfSwKKyAgIiZ6ZWV0cmY7IjogeyAiY29kZXBvaW50cyI6IFs4NDg4XSwgImNoYXJhY3RlcnMiOiAiXHUyMTI4IiB9LAorICAiJlplcm9XaWR0aFNwYWNlOyI6IHsgImNvZGVwb2ludHMiOiBbODIwM10sICJjaGFyYWN0ZXJzIjogIlx1MjAwQiIgfSwKKyAgIiZaZXRhOyI6IHsgImNvZGVwb2ludHMiOiBbOTE4XSwgImNoYXJhY3RlcnMiOiAiXHUwMzk2IiB9LAorICAiJnpldGE7IjogeyAiY29kZXBvaW50cyI6IFs5NTBdLCAiY2hhcmFjdGVycyI6ICJcdTAzQjYiIH0sCisgICImemZyOyI6IHsgImNvZGVwb2ludHMiOiBbMTIwMTE5XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVERDM3IiB9LAorICAiJlpmcjsiOiB7ICJjb2RlcG9pbnRzIjogWzg0ODhdLCAiY2hhcmFjdGVycyI6ICJcdTIxMjgiIH0sCisgICImWkhjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNDZdLCAiY2hhcmFjdGVycyI6ICJcdTA0MTYiIH0sCisgICImemhjeTsiOiB7ICJjb2RlcG9pbnRzIjogWzEwNzhdLCAiY2hhcmFjdGVycyI6ICJcdTA0MzYiIH0sCisgICImemlncmFycjsiOiB7ICJjb2RlcG9pbnRzIjogWzg2NjldLCAiY2hhcmFjdGVycyI6ICJcdTIxREQiIH0sCisgICImem9wZjsiOiB7ICJjb2RlcG9pbnRzIjogWzEyMDE3MV0sICJjaGFyYWN0ZXJzIjogIlx1RDgzNVx1REQ2QiIgfSwKKyAgIiZab3BmOyI6IHsgImNvZGVwb2ludHMiOiBbODQ4NF0sICJjaGFyYWN0ZXJzIjogIlx1MjEyNCIgfSwKKyAgIiZac2NyOyI6IHsgImNvZGVwb2ludHMiOiBbMTE5OTg5XSwgImNoYXJhY3RlcnMiOiAiXHVEODM1XHVEQ0I1IiB9LAorICAiJnpzY3I7IjogeyAiY29kZXBvaW50cyI6IFsxMjAwMTVdLCAiY2hhcmFjdGVycyI6ICJcdUQ4MzVcdURDQ0YiIH0sCisgICImendqOyI6IHsgImNvZGVwb2ludHMiOiBbODIwNV0sICJjaGFyYWN0ZXJzIjogIlx1MjAwRCIgfSwKKyAgIiZ6d25qOyI6IHsgImNvZGVwb2ludHMiOiBbODIwNF0sICJjaGFyYWN0ZXJzIjogIlx1MjAwQyIgfQorfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdG9vbHMvbmFtZWRfZW50aXR5X3RyaWVfZ2VuZXJhdG9yLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS9wYXJzZTUvdG9vbHMvbmFtZWRfZW50aXR5X3RyaWVfZ2VuZXJhdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlZmJiNmIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3BhcnNlNS90b29scy9uYW1lZF9lbnRpdHlfdHJpZV9nZW5lcmF0b3IuanMKQEAgLTAsMCArMSw0NiBAQAordmFyIGZzID0gcmVxdWlyZSgnZnMnKSwKKyAgICBwYXRoID0gcmVxdWlyZSgncGF0aCcpOworCit2YXIgZmlsZURhdGEgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2VudGl0aWVzLmpzb24nKSkudG9TdHJpbmcoKSwKKyAgICBlbnRpdGllc0RhdGEgPSBKU09OLnBhcnNlKGZpbGVEYXRhKTsKKwordmFyIHRyaWUgPSBPYmplY3Qua2V5cyhlbnRpdGllc0RhdGEpLnJlZHVjZShmdW5jdGlvbiAodHJpZSwgZW50aXR5KSB7CisgICAgdmFyIHJlc3VsdENvZGVwb2ludHMgPSBlbnRpdGllc0RhdGFbZW50aXR5XS5jb2RlcG9pbnRzOworCisgICAgZW50aXR5ID0gZW50aXR5LnJlcGxhY2UoL14mLywgJycpOworCisgICAgdmFyIGxhc3QgPSBlbnRpdHkubGVuZ3RoIC0gMSwKKyAgICAgICAgbGVhZiA9IHRyaWU7CisKKyAgICBlbnRpdHkKKyAgICAgICAgLnNwbGl0KCcnKQorICAgICAgICAubWFwKGZ1bmN0aW9uIChjaCkgeworICAgICAgICAgICAgcmV0dXJuIGNoLmNoYXJDb2RlQXQoMCk7CisgICAgICAgIH0pCisgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChrZXksIGlkeCkgeworICAgICAgICAgICAgaWYgKCFsZWFmW2tleV0pCisgICAgICAgICAgICAgICAgbGVhZltrZXldID0ge307CisKKyAgICAgICAgICAgIGlmIChpZHggPT09IGxhc3QpCisgICAgICAgICAgICAgICAgbGVhZltrZXldLmMgPSByZXN1bHRDb2RlcG9pbnRzOworCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIWxlYWZba2V5XS5sKQorICAgICAgICAgICAgICAgICAgICBsZWFmW2tleV0ubCA9IHt9OworCisgICAgICAgICAgICAgICAgbGVhZiA9IGxlYWZba2V5XS5sOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgIHJldHVybiB0cmllOworfSwge30pOworCisKK3ZhciBvdXREYXRhID0KKyAgICAnXCd1c2Ugc3RyaWN0XCc7XG5cbicgKworICAgICcvL05PVEU6IHRoaXMgZmlsZSBjb250YWlucyBhdXRvIGdlbmVyYXRlZCB0cmllIHN0cnVjdHVyZSB0aGF0IGlzIHVzZWQgZm9yIG5hbWVkIGVudGl0eSByZWZlcmVuY2VzIGNvbnN1bXB0aW9uXG4nICsKKyAgICAnLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90b2tlbml6YXRpb24uaHRtbCN0b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzIGFuZFxuJyArCisgICAgJy8vaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMuaHRtbCNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcylcbicgKworICAgICdtb2R1bGUuZXhwb3J0cyA9ICcgKyBKU09OLnN0cmluZ2lmeSh0cmllKS5yZXBsYWNlKC8iL2csICcnKSArICc7XG4nOworCitmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9saWIvdG9rZW5pemF0aW9uL25hbWVkX2VudGl0eV90cmllLmpzJyksIG91dERhdGEpOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3Y4L0xJQ0VOU0UgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3Y4L0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS92OC9MSUNFTlNFCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3Y4L0xJQ0VOU0UKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS92OC9MSUNFTlNFLnN0cm9uZ3RhbGsgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3Y4L0xJQ0VOU0Uuc3Ryb25ndGFsawpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3Y4L0xJQ0VOU0Uuc3Ryb25ndGFsawpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS92OC9MSUNFTlNFLnN0cm9uZ3RhbGsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS92OC9MSUNFTlNFLnY4IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS92OC9MSUNFTlNFLnY4CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdjgvTElDRU5TRS52OApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS92OC9MSUNFTlNFLnY4CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdGhpcmRfcGFydHkvdjgvTElDRU5TRS52YWxncmluZCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvdjgvTElDRU5TRS52YWxncmluZApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3Y4L0xJQ0VOU0UudmFsZ3JpbmQKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdGhpcmRfcGFydHkvdjgvTElDRU5TRS52YWxncmluZApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS92OC9SRUFETUUuY2hyb21pdW0gYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3Y4L1JFQURNRS5jaHJvbWl1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjAyY2VlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS92OC9SRUFETUUuY2hyb21pdW0KQEAgLTAsMCArMSwxMyBAQAorTmFtZTogQ2hyb21lIGQ4IGZvciBleGVjdXRpbmcgamF2YXNjcmlwdAorU2hvcnQgTmFtZTogZDgKK1VSTDogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdjgvCitWZXJzaW9uOiA0LjMuNjEKK0xpY2Vuc2U6IEJTRAorTGljZW5zZSBGaWxlOiBMSUNFTlNFLCBMSUNFTlNFLnY4LCBMSUNFTlNFLnN0cm9uZ3RhbGssIExJQ0VOU0UudmFsZ3JpbmQKK1NlY3VyaXR5IENyaXRpY2FsOiBubworRGVzY3JpcHRpb246IGQ4IGJpbmFyaWVzIGlzIHVzZWQgZm9yIGV4ZWN1dGluZyB0cmFjZS12aWV3ZXIncyB0cmFjZSBhbmFseXppbmcKK2NvZGUuCitMb2NhbCBtb2RpZmljYXRpb25zOiBXZSBpZ25vcmUgdGhlIHNvdXJjZSBjb2RlICYgb25seSBrZWVwIHRoZSBkOCBiaW5hcmllcy4gVXNlCit0aGUgaW5zdHJ1Y3Rpb25zIGhlcmUgdG8gYnVpbGQgdGhlIGJpbmFyeSwgYWZ0ZXIgc3luY2luZyB2OCB0byB0aGUgYWJvdmUKK3ZlcnNpb246CitodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4LXdpa2kvd2lraS9CdWlsZGluZ1dpdGhHWVAKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS92OC9saW51eC94ODZfNjQvZDggYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3Y4L2xpbnV4L3g4Nl82NC9kOApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3Y4L2xpbnV4L3g4Nl82NC9kOApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi90aGlyZF9wYXJ0eS92OC9saW51eC94ODZfNjQvZDgKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RoaXJkX3BhcnR5L3Y4L21hYy94ODZfNjQvZDggYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3Y4L21hYy94ODZfNjQvZDgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90aGlyZF9wYXJ0eS92OC9tYWMveDg2XzY0L2Q4CnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3RoaXJkX3BhcnR5L3Y4L21hYy94ODZfNjQvZDgKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL19faW5pdF9fLnB5IGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MzAxNGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitmcm9tIHZpbm4uZDhfcnVubmVyIGltcG9ydCBFeGVjdXRlRmlsZQorZnJvbSB2aW5uLmQ4X3J1bm5lciBpbXBvcnQgRXhjZWN1dGVKc1N0cmluZworZnJvbSB2aW5uLmQ4X3J1bm5lciBpbXBvcnQgUnVuRmlsZQorZnJvbSB2aW5uLmQ4X3J1bm5lciBpbXBvcnQgUnVuSnNTdHJpbmcKKworX19hbGxfXyA9IFsKKyAgJ0V4ZWN1dGVGaWxlJywKKyAgJ0V4Y2VjdXRlSnNTdHJpbmcnLAorICAnUnVuRmlsZScsCisgICdSdW5Kc1N0cmluZycKK10KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi9kOF9ib290c3RyYXAuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vZDhfYm9vdHN0cmFwLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkYzcyYTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vZDhfYm9vdHN0cmFwLmpzCkBAIC0wLDAgKzEsMjg0IEBACisvLyBDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qKgorICogQGZpbGVvdmVydmlldyBCb29zdHJhcCBmb3IgbG9hZGluZyBqYXZhc2NyaXB0L2h0bWwgZmlsZXMgdXNpbmcgZDhfcnVubmVyLgorICovCisoZnVuY3Rpb24oZ2xvYmFsLCB2OGFyZ3VtZW50cykgeworICAvLyBTYXZlIHRoZSBhcmd2IGluIGEgcHJlZGljdGFibGUgYW5kIHN0YWJsZSBsb2NhdGlvbi4KKyAgZ2xvYmFsLnN5cyA9IHsKKyAgICBhcmd2OiBbXQorICB9OworICBmb3IgKHZhciBpID0gMDsgaSA8IHY4YXJndW1lbnRzLmxlbmd0aDsgaSsrKQorICAgIHN5cy5hcmd2LnB1c2godjhhcmd1bWVudHNbaV0pOworCisgIC8qIFRoZXJlIGFyZSBmb3VyIHdheXMgYSBwcm9ncmFtIGNhbiBmaW5pc2ggcnVubmluZyBpbiBEODoKKyAgICogLSBhKSBJbnRlbnRpb25lZCBleGl0IHRyaWdnZXJlZCB2aWEgcXVpdCgwKQorICAgKiAtIGIpIEludGVudGlvbmVkIGV4aXQgdHJpZ2dlcmVkIHZpYSBxdWl0KG4pCisgICAqIC0gYykgUnVubmluZyB0byBlbmQgb2YgdGhlIHNjcmlwdAorICAgKiAtIGQpIEFuIHVuY2F1Z2h0IGV4Y2VwdGlvbgorICAgKgorICAgKiBUaGUgZXhpdCBjb2RlIG9mIGQ4IGZvciBjYXNlIGEgaXMgMC4KKyAgICogVGhlIGV4aXQgY29kZSBvZiBkOCBmb3IgY2FzZSBiIGlzIHVuc2lnbmVkKG4pICYgMHhGRgorICAgKiBUaGUgZXhpdCBjb2RlIG9mIGQ4IGZvciBjYXNlIGMgaXMgMC4KKyAgICogVGhlIGV4aXQgY29kZSBvZiBkOCBmb3IgY2FzZSBkIGlzIDEuCisgICAqCisgICAqIEQ4IHJ1bm5lciBuZWVkcyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZXNlIGNhc2VzOgorICAgKiAtIGEpIF9FeGVjdXRlRmlsZVdpdGhEOCBzaG91bGQgcmV0dXJuIDAKKyAgICogLSBiKSBfRXhlY3V0ZUZpbGVXaXRoRDggc2hvdWxkIHJldHVybiBuCisgICAqIC0gYykgX0V4ZWN1dGVGaWxlV2l0aEQ4IHNob3VsZCByZXR1cm4gMAorICAgKiAtIGQpIF9FeGVjdXRlRmlsZVdpdGhEOCBzaG91bGQgcmFpc2UgYW4gRXhjZXB0aW9uCisgICAqCisgICAqIFRoZSBoYXJkIG9uZSBoZXJlIGlzIGQgYW5kIGIgd2l0aCBuPTEsIGJlY2F1c2UgdGhleSBmaWdodCBmb3IgdGhlIHNhbWUKKyAgICogcmV0dXJuIGNvZGUuCisgICAqCisgICAqIE91ciBzb2x1dGlvbiBpcyB0byBtb25rZXlwYXRjaCBxdWl0KCkgcy50LiBxdWl0KDEpIGJlY29tZXMgZXhpdGNvZGU9Mi4KKyAgICogVGhpcyBtYWtlcyBxdWl0KDI1NSkgZGlzYWxsb3dlZCwgYnV0IGl0IGVuc3VyZXMgdGhhdCBEOCBydW5uZXIgaXMgYWJsZQorICAgKiB0byBoYW5kbGUgdGhlIG90aGVyIGNhc2VzIGNvcnJlY3RseS4KKyAgICovCisgIHZhciByZWFsUXVpdCA9IGdsb2JhbC5xdWl0OworICBnbG9iYWwucXVpdCA9IGZ1bmN0aW9uKGV4aXRDb2RlKSB7CisgICAgLy8gTm9ybWFsaXplIHRoZSBleGl0IGNvZGUuCisgICAgaWYgKGV4aXRDb2RlIDwgMCkgeworICAgICAgZXhpdENvZGUgPSAoZXhpdENvZGUgJSAyNTYpICsgMjU2OworICAgIH0gZWxzZSB7CisgICAgICBleGl0Q29kZSA9IGV4aXRDb2RlICUgMjU2OworICAgIH0KKworICAgIC8vIDI1NSBpcyByZXNlcnZlZCBkdWUgdG8gcmVhc29ucyBub3RlZCBhYm92ZS4KKyAgICBpZiAoZXhpdENvZGUgPT0gMjU1KQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdleGl0Q29kZXMgMjU1IGlzIHJlc2VydmVkLCBzb3JyeS4nKTsKKyAgICBpZiAoZXhpdENvZGUgPT09IDApCisgICAgICByZWFsUXVpdCgwKTsKKyAgICByZWFsUXVpdChleGl0Q29kZSArIDEpOworICB9CisKKyAgLyoqCisgICAqIFBvbHlmaWxscyBjb25zb2xlJ3MgbWV0aG9kcy4KKyAgICovCisgIGdsb2JhbC5jb25zb2xlID0geworICAgIGxvZzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7CisgICAgICBwcmludChhcmdzLmpvaW4oJyAnKSk7CisgICAgfSwKKworICAgIGluZm86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpOworICAgICAgcHJpbnQoJ0luZm86JywgYXJncy5qb2luKCcgJykpOworICAgIH0sCisKKyAgICBlcnJvcjogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7CisgICAgICBwcmludCgnRXJyb3I6JywgYXJncy5qb2luKCcgJykpOworICAgIH0sCisKKyAgICB3YXJuOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTsKKyAgICAgIHByaW50KCdXYXJuaW5nOicsIGFyZ3Muam9pbignICcpKTsKKyAgICB9CisgIH07CisKKyAgaWYgKG9zLmNoZGlyKSB7CisgICAgb3MuY2hkaXIgPSBmdW5jdGlvbigpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignRG9udCBkbyB0aGlzJyk7CisgICAgfQorICB9CisKKyAgLyogVGhpcyBpcyBhIEJhc2U2NCBQb2x5ZmlsbCBhZGFwdGVkIGZyb20KKyAgICogaHR0cHM6Ly9naXRodWIuY29tL2RhdmlkY2hhbWJlcnMvQmFzZTY0LmpzL2Jsb2IvMC4zLjAvLAorICAgKiB3aGljaCBoYXMgYSAiZG8gd2hhdGV2ZXIgeW91IHdhbnQiIGxpY2Vuc2UsCisgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZpZGNoYW1iZXJzL0Jhc2U2NC5qcy9ibG9iLzAuMy4wL0xJQ0VOU0UuCisgICAqLworICAoZnVuY3Rpb24oKSB7CisgICAgdmFyIGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonICsKKyAgICAgICAgJzAxMjM0NTY3ODkrLz0nOworCisgICAgZnVuY3Rpb24gSW52YWxpZENoYXJhY3RlckVycm9yKG1lc3NhZ2UpIHsKKyAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7CisgICAgfQorICAgIEludmFsaWRDaGFyYWN0ZXJFcnJvci5wcm90b3R5cGUgPSBuZXcgRXJyb3I7CisgICAgSW52YWxpZENoYXJhY3RlckVycm9yLnByb3RvdHlwZS5uYW1lID0gJ0ludmFsaWRDaGFyYWN0ZXJFcnJvcic7CisKKworICAgIC8vIGVuY29kZXIKKyAgICAvLyBbaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vOTk5MTY2XSBieSBbaHR0cHM6Ly9naXRodWIuY29tL25pZ25hZ10KKyAgICBnbG9iYWwuYnRvYSA9IGZ1bmN0aW9uKGlucHV0KSB7CisgICAgICB2YXIgc3RyID0gU3RyaW5nKGlucHV0KTsKKyAgICAgIGZvciAoCisgICAgICAgICAgLy8gSW5pdGlhbGl6ZSByZXN1bHQgYW5kIGNvdW50ZXIuCisgICAgICAgICAgdmFyIGJsb2NrLCBjaGFyQ29kZSwgaWR4ID0gMCwgbWFwID0gY2hhcnMsIG91dHB1dCA9ICcnOworICAgICAgICAgIC8vIElmIHRoZSBuZXh0IHN0ciBpbmRleCBkb2VzIG5vdCBleGlzdDoKKyAgICAgICAgICAvLyAgIGNoYW5nZSB0aGUgbWFwcGluZyB0YWJsZSB0byAiPSIKKyAgICAgICAgICAvLyAgIGNoZWNrIGlmIGQgaGFzIG5vIGZyYWN0aW9uYWwgZGlnaXRzCisgICAgICAgICAgc3RyLmNoYXJBdChpZHggfCAwKSB8fCAobWFwID0gJz0nLCBpZHggJSAxKTsKKyAgICAgICAgICAvLyAiOCAtIGlkeCAlIDEgKiA4IiBnZW5lcmF0ZXMgdGhlIHNlcXVlbmNlIDIsIDQsIDYsIDguCisgICAgICAgICAgb3V0cHV0ICs9IG1hcC5jaGFyQXQoNjMgJiBibG9jayA+PiA4IC0gaWR4ICUgMSAqIDgpKSB7CisgICAgICAgIGNoYXJDb2RlID0gc3RyLmNoYXJDb2RlQXQoaWR4ICs9IDMgLyA0KTsKKyAgICAgICAgaWYgKGNoYXJDb2RlID4gMHhGRikgeworICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ2hhcmFjdGVyRXJyb3IoCisgICAgICAgICAgICAgICdcJ2J0b2FcJyBmYWlsZWQ6IFRoZSBzdHJpbmcgdG8gYmUgZW5jb2RlZCBjb250YWlucyBjaGFyYWN0ZXJzICcgKworICAgICAgICAgICAgICAnb3V0c2lkZSBvZiB0aGUgTGF0aW4xIHJhbmdlLicpOworICAgICAgICB9CisgICAgICAgIGJsb2NrID0gYmxvY2sgPDwgOCB8IGNoYXJDb2RlOworICAgICAgfQorICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICB9OworCisgICAgLy8gZGVjb2RlcgorICAgIC8vIFtodHRwczovL2dpc3QuZ2l0aHViLmNvbS8xMDIwMzk2XSBieSBbaHR0cHM6Ly9naXRodWIuY29tL2F0a10KKyAgICBnbG9iYWwuYXRvYiA9IGZ1bmN0aW9uKGlucHV0KSB7CisgICAgICB2YXIgc3RyID0gU3RyaW5nKGlucHV0KS5yZXBsYWNlKC89KyQvLCAnJyk7CisgICAgICBpZiAoc3RyLmxlbmd0aCAlIDQgPT0gMSkgeworICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENoYXJhY3RlckVycm9yKAorICAgICAgICAgICAgJ1wnYXRvYlwnIGZhaWxlZDogVGhlIHN0cmluZyB0byBiZSBkZWNvZGVkIGlzIG5vdCAnICsKKyAgICAgICAgICAgICdjb3JyZWN0bHkgZW5jb2RlZC4nKTsKKyAgICAgIH0KKyAgICAgIGZvciAoCisgICAgICAgICAgLy8gSW5pdGlhbGl6ZSByZXN1bHQgYW5kIGNvdW50ZXJzLgorICAgICAgICAgIHZhciBiYyA9IDAsIGJzLCBidWZmZXIsIGlkeCA9IDAsIG91dHB1dCA9ICcnOworICAgICAgICAgIC8vIEdldCBuZXh0IGNoYXJhY3Rlci4KKyAgICAgICAgICBidWZmZXIgPSBzdHIuY2hhckF0KGlkeCsrKTsKKyAgICAgICAgICAvLyBDaGFyYWN0ZXIgZm91bmQgaW4gdGFibGU/IGluaXRpYWxpemUgYml0IHN0b3JhZ2UgYW5kIGFkZCBpdHMKKyAgICAgICAgICAvLyBhc2NpaSB2YWx1ZTsKKyAgICAgICAgICB+YnVmZmVyICYmIChicyA9IGJjICUgNCA/IGJzICogNjQgKyBidWZmZXIgOiBidWZmZXIsCisgICAgICAgICAgICAgIC8vIEFuZCBpZiBub3QgZmlyc3Qgb2YgZWFjaCA0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgIC8vIGNvbnZlcnQgdGhlIGZpcnN0IDggYml0cyB0byBvbmUgYXNjaWkgY2hhcmFjdGVyLgorICAgICAgICAgICAgICBiYysrICUgNCkgPyBvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgKKyAgICAgICAgICAgICAgICAgICAgMjU1ICYgYnMgPj4gKC0yICogYmMgJiA2KSkgOiAwKSB7CisgICAgICAgIC8vIFRyeSB0byBmaW5kIGNoYXJhY3RlciBpbiB0YWJsZSAoMC02Mywgbm90IGZvdW5kID0+IC0xKS4KKyAgICAgICAgYnVmZmVyID0gY2hhcnMuaW5kZXhPZihidWZmZXIpOworICAgICAgfQorICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICB9OworCisgIH0pKCk7CisKKyAgLy8gQnJpbmcgaW4gaHRtbF90b19qc19nZW5lcmF0b3IuCisgIGdsb2JhbC5wYXRoX3RvX2pzX3BhcnNlciA9ICc8JWpzX3BhcnNlcl9wYXRoJT4nOworICBsb2FkKCc8JWh0bWxfdG9fanNfZ2VuZXJhdG9yX2pzX3BhdGglPicpOworCisgIC8vIEJyaW5nIGluIHBhdGggdXRpbHMuCisgIGxvYWQoJzwlcGF0aF91dGlsc19qc19wYXRoJT4nKTsKKworICB2YXIgZDhfcGF0aF91dGlscyA9IG5ldyBQYXRoVXRpbHMoCisgICAgICB7CisgICAgICAgIGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5OiAnPCVjdXJyZW50X3dvcmtpbmdfZGlyZWN0b3J5JT4nLAorICAgICAgICBleGlzdHM6IGZ1bmN0aW9uKGZpbGVOYW1lKSB7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIFRyeSBhIGR1bW15IHJlYWQgdG8gY2hlY2sgd2hldGhlciBmaWxlX3BhdGggZXhpc3RzLgorICAgICAgICAgICAgLy8gVE9ETyhuZWRuZ3V5ZW4pOiBmaW5kIGEgbW9yZSBlZmZpY2llbnQgd2F5IHRvIGNoZWNrIHdoZXRoZXIKKyAgICAgICAgICAgIC8vIHNvbWUgZmlsZSBwYXRoIGV4aXN0cyBpbiBkOC4KKyAgICAgICAgICAgIHJlYWQoZmlsZU5hbWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9KTsKKworICAvKioKKyAgICogU3RyaXBzIHRoZSBzdGFydGluZyAnLycgaW4gZmlsZV9wYXRoIGlmIHxmaWxlX3BhdGh8IGlzIG1lYW50IHRvIGJlIGEKKyAgICogcmVsYXRpdmUgcGF0aC4KKyAgICoKKyAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVfcGF0aCBwYXRoIHRvIHNvbWUgZmlsZSwgY2FuIGJlIHJlbGF0aXZlIG9yIGFic29sdXRlCisgICAqIHBhdGguCisgICAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGZpbGVfcGF0aCB3aXRoIHN0YXJ0aW5nICcvJyByZW1vdmVkIGlmIHxmaWxlX3BhdGh8CisgICAqIGRvZXMgbm90IGV4aXN0IG9yIHRoZSBvcmlnaW5hbCB8ZmlsZV9wYXRofCBvdGhlcndpc2UuCisgICAqLworICBmdW5jdGlvbiBfc3RyaXBTdGFydGluZ1NsYXNoSWZOZWVkZWQoZmlsZV9wYXRoKSB7CisgICAgaWYgKGZpbGVfcGF0aC5zdWJzdHJpbmcoMCwgMSkgIT09ICcvJykgeworICAgICAgcmV0dXJuIGZpbGVfcGF0aDsKKyAgICB9CisgICAgaWYgKGQ4X3BhdGhfdXRpbHMuZXhpc3RzKGZpbGVfcGF0aCkpCisgICAgICByZXR1cm4gZmlsZV9wYXRoOworICAgIHJldHVybiBmaWxlX3BhdGguc3Vic3RyaW5nKDEpOworICB9CisKKyAgdmFyIHNvdXJjZVBhdGhzID0gSlNPTi5wYXJzZSgnPCVzb3VyY2VfcGF0aHMlPicpOworCisgIGdsb2JhbC5ocmVmVG9BYnNvbHV0ZVBhdGggPSBmdW5jdGlvbihocmVmKSB7CisgICAgdmFyIHBhdGhQYXJ0OworICAgIGlmICghZDhfcGF0aF91dGlscy5pc0FicyhocmVmKSkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3VuZCBhIG5vbiBhYnNvbHV0ZSBpbXBvcnQgYW5kIHRoYXRzIG5vdCBzdXBwb3J0ZWQ6ICcgKworICAgICAgICAgICAgICAgICAgICAgIGhyZWYpOworICAgIH0gZWxzZSB7CisgICAgICBwYXRoUGFydCA9IGhyZWYuc3Vic3RyaW5nKDEpOworICAgIH0KKworICAgIGNhbmRpZGF0ZXMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJjZVBhdGhzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgY2FuZGlkYXRlID0gZDhfcGF0aF91dGlscy5qb2luKHNvdXJjZVBhdGhzW2ldLCBwYXRoUGFydCk7CisgICAgICBpZiAoZDhfcGF0aF91dGlscy5leGlzdHMoY2FuZGlkYXRlKSkKKyAgICAgICAgY2FuZGlkYXRlcy5wdXNoKGNhbmRpZGF0ZSk7CisgICAgfQorICAgIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA+IDEpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGxlIGNhbmRpZGF0ZXMgZm91bmQgZm9yICcgKyBocmVmKTsKKyAgICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPT09IDApCisgICAgICB0aHJvdyBuZXcgRXJyb3IoaHJlZiArICcgbm90IGZvdW5kIScpOworICAgIHJldHVybiBjYW5kaWRhdGVzWzBdOworICB9CisKKyAgdmFyIGxvYWRlZE1vZHVsZXNCeUZpbGVQYXRoID0ge307CisKKyAgLyoqCisgICAqIExvYWQgYSBIVE1MIGZpbGUsIHdoaWNoIGFic29sdXRlIHBhdGggb3IgcGF0aCByZWxhdGl2ZSB0byA8JXNlYXJjaC1wYXRoJT4uCisgICAqIFVubGlrZSB0aGUgbmF0aXZlIGxvYWQoKSBtZXRob2Qgb2YgZDgsIHZhcmlhYmxlcyBkZWNsYXJlZCBpbiB8ZmlsZV9wYXRofAorICAgKiB3aWxsIG5vdCBiZSBob2lzdGVkIHRvIHRoZSBjYWxsZXIgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlOgorICAgKgorICAgKiBhLmh0bWw6CisgICAqIDxzY3JpcHQ+CisgICAqICAgdmFyIHggPSAxOworICAgKiA8L3NjcmlwdD4KKyAgICoKKyAgICogdGVzdC5qczoKKyAgICogbG9hZEhUTUwoImEuaHRtbCIpOworICAgKiBwcmludCh4KTsgIC8vIDwtIFJlZmVyZW5jZUVycm9yIGlzIHRocm93biBiZWNhdXNlIHggaXMgbm90IGRlZmluZWQuCisgICAqCisgICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlX3BhdGggcGF0aCB0byB0aGUgSFRNTCBmaWxlIHRvIGJlIGxvYWRlZC4KKyAgICovCisgIGdsb2JhbC5sb2FkSFRNTCA9IGZ1bmN0aW9uKGhyZWYpIHsKKyAgICB2YXIgYWJzUGF0aCA9IGdsb2JhbC5ocmVmVG9BYnNvbHV0ZVBhdGgoaHJlZik7CisgICAgZ2xvYmFsLmxvYWRIVE1MRmlsZShhYnNQYXRoLCBocmVmKTsKKyAgfTsKKworICBnbG9iYWwubG9hZFNjcmlwdCA9IGZ1bmN0aW9uKGhyZWYpIHsKKyAgICB2YXIgYWJzUGF0aCA9IGdsb2JhbC5ocmVmVG9BYnNvbHV0ZVBhdGgoaHJlZik7CisgICAgZ2xvYmFsLmxvYWRGaWxlKGFic1BhdGgsIGhyZWYpOworICB9OworCisgIGdsb2JhbC5sb2FkSFRNTEZpbGUgPSBmdW5jdGlvbihhYnNQYXRoLCBvcHRfaHJlZikgeworICAgIHZhciBocmVmID0gb3B0X2hyZWYgfHwgYWJzUGF0aDsKKyAgICBpZiAobG9hZGVkTW9kdWxlc0J5RmlsZVBhdGhbYWJzUGF0aF0pCisgICAgICByZXR1cm47CisgICAgbG9hZGVkTW9kdWxlc0J5RmlsZVBhdGhbYWJzUGF0aF0gPSB0cnVlOworCisgICAgdHJ5IHsKKyAgICAgIHZhciBodG1sX2NvbnRlbnQgPSByZWFkKGFic1BhdGgpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBpbiBsb2FkaW5nIGh0bWwgZmlsZSAnICsgaHJlZiArCisgICAgICAgICAgJzogRmlsZSBkb2VzIG5vdCBleGlzdCcpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICB2YXIgc3RyaXBwZWRfanMgPSBnZW5lcmF0ZUpzRnJvbUhUTUwoaHRtbF9jb250ZW50KTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgaW4gbG9hZGluZyBodG1sIGZpbGUgJyArIGhyZWYgKyAnOiAnICsgZXJyKTsKKyAgICB9CisKKyAgICAvLyBBZGQgIi8vQCBzb3VyY2VVUkw9fGZpbGVfcGF0aHwiIHRvIHRoZSBlbmQgb2YgZ2VuZXJhdGVkIGpzIHRvIHByZXNlcnZlCisgICAgLy8gdGhlIGxpbmUgbnVtYmVycworICAgIHN0cmlwcGVkX2pzID0gc3RyaXBwZWRfanMgKyAnXG4vL0Agc291cmNlVVJMPScgKyBocmVmOworICAgIGV2YWwoc3RyaXBwZWRfanMpOworICB9OworCisgIGdsb2JhbC5sb2FkRmlsZSA9IGZ1bmN0aW9uKGFic1BhdGgsIG9wdF9ocmVmKSB7CisgICAgdmFyIGhyZWYgPSBvcHRfaHJlZiB8fCBhYnNQYXRoOworICAgIHZhciByZWxQYXRoID0gZDhfcGF0aF91dGlscy5yZWxQYXRoKGFic1BhdGgpOworICAgIHRyeSB7CisgICAgICBsb2FkKHJlbFBhdGgpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBpbiBsb2FkaW5nIHNjcmlwdCBmaWxlICcgKyBocmVmICsgJzogJyArIGVycik7CisgICAgfQorICB9OworfSkodGhpcywgYXJndW1lbnRzKTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi9kOF9ydW5uZXIucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vZDhfcnVubmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZjkxOWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vZDhfcnVubmVyLnB5CkBAIC0wLDAgKzEsMjMyIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQganNvbgoraW1wb3J0IHRlbXBmaWxlCisKKworX1Y4X0RJUiA9IG9zLnBhdGguYWJzcGF0aCgKKyAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgb3MucGF0aC5wYXJkaXIsICd0aGlyZF9wYXJ0eScsCisgICAgICAgICAgICAgICAgICd2OCcpKQorCitwcmludCBfVjhfRElSCisKK19KU19QQVJTRVJfRElSID0gb3MucGF0aC5hYnNwYXRoKAorICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXRoLnBhcmRpciwgJ3RoaXJkX3BhcnR5JywKKyAgICAgICAgICAgICAgICAgJ3BhcnNlNScsICdwYXJzZTUuanMnKSkKKworCitfQk9PVFNUUkFQX0pTX0RJUiA9IG9zLnBhdGguYWJzcGF0aCgKKyAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ2Q4X2Jvb3RzdHJhcC5qcycpKQorCitfUEFUSF9VVElMU19KU19ESVIgPSBvcy5wYXRoLmFic3BhdGgoCisgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICdwYXRoX3V0aWxzLmpzJykpCisKK19IVE1MX1RPX0pTX0dFTkVSQVRPUl9KU19ESVIgPSBvcy5wYXRoLmFic3BhdGgoCisgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICdodG1sX3RvX2pzX2dlbmVyYXRvci5qcycpKQorCisKK19CT09UU1RSQVBfSlNfQ09OVEVOVCA9IE5vbmUKKworCitkZWYgX1ZhbGlkYXRlU291cmNlUGF0aHMoc291cmNlX3BhdGhzKToKKyAgaWYgc291cmNlX3BhdGhzIGlzIE5vbmU6CisgICAgcmV0dXJuCisgIGZvciB4IGluIHNvdXJjZV9wYXRoczoKKyAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMoeCkKKyAgICBhc3NlcnQgb3MucGF0aC5pc2Rpcih4KQorICAgIGFzc2VydCBvcy5wYXRoLmlzYWJzKHgpCisKKworZGVmIF9HZXRCb290U3RyYXBKc0NvbnRlbnQoc291cmNlX3BhdGhzKToKKyAgZ2xvYmFsIF9CT09UU1RSQVBfSlNfQ09OVEVOVAorICBpZiBub3QgX0JPT1RTVFJBUF9KU19DT05URU5UOgorICAgIHdpdGggb3BlbihfQk9PVFNUUkFQX0pTX0RJUiwgJ3InKSBhcyBmOgorICAgICAgX0JPT1RTVFJBUF9KU19DT05URU5UID0gZi5yZWFkKCkKKworICBic2MgPSBfQk9PVFNUUkFQX0pTX0NPTlRFTlQKKworICBzb3VyY2VfcGF0aF9zdHJpbmcgPSBqc29uLmR1bXBzKHNvdXJjZV9wYXRocykKKyAgYnNjID0gYnNjLnJlcGxhY2UoJzwlc291cmNlX3BhdGhzJT4nLCBzb3VyY2VfcGF0aF9zdHJpbmcpCisgIGJzYyA9IGJzYy5yZXBsYWNlKCc8JWN1cnJlbnRfd29ya2luZ19kaXJlY3RvcnklPicsIG9zLmdldGN3ZCgpKQorICBic2MgPSBic2MucmVwbGFjZSgnPCVwYXRoX3V0aWxzX2pzX3BhdGglPicsIF9QQVRIX1VUSUxTX0pTX0RJUikKKyAgYnNjID0gYnNjLnJlcGxhY2UoJzwlaHRtbF90b19qc19nZW5lcmF0b3JfanNfcGF0aCU+JywKKyAgICAgICAgICAgICAgICAgICAgX0hUTUxfVE9fSlNfR0VORVJBVE9SX0pTX0RJUikKKyAgYnNjID0gYnNjLnJlcGxhY2UoJzwlanNfcGFyc2VyX3BhdGglPicsIF9KU19QQVJTRVJfRElSKQorICByZXR1cm4gYnNjCisKKworZGVmIF9Jc1ZhbGlkSnNPckhUTUxGaWxlKHBhcnNlciwganNfZmlsZV9hcmcpOgorICBpZiBub3Qgb3MucGF0aC5leGlzdHMoanNfZmlsZV9hcmcpOgorICAgIHBhcnNlci5lcnJvcignVGhlIGZpbGUgJXMgZG9lcyBub3QgZXhpc3QnICUganNfZmlsZV9hcmcpCisgIF8sIGV4dGVuc2lvbiA9IG9zLnBhdGguc3BsaXRleHQoanNfZmlsZV9hcmcpCisgIGlmIGV4dGVuc2lvbiBub3QgaW4gKCcuanMnLCAnLmh0bWwnKToKKyAgICBwYXJzZXIuZXJyb3IoJ0lucHV0IG11c3QgYmUgYSBKYXZhU2NyaXB0IG9yIEhUTUwgZmlsZScpCisgIHJldHVybiBqc19maWxlX2FyZworCisKK2RlZiBfR2V0RDhCaW5hcnlQYXRoRm9yUGxhdGZvcm0oKToKKyAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gJ0xpbnV4JyBhbmQgcGxhdGZvcm0ubWFjaGluZSgpID09ICd4ODZfNjQnOgorICAgIHJldHVybiBvcy5wYXRoLmpvaW4oX1Y4X0RJUiwgJ2xpbnV4JywgJ3g4Nl82NCcsICdkOCcpCisgIGVsaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gJ0RhcndpbicgYW5kIHBsYXRmb3JtLm1hY2hpbmUoKSA9PSAneDg2XzY0JzoKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKF9WOF9ESVIsICdtYWMnLCAneDg2XzY0JywgJ2Q4JykKKyAgZWxzZToKKyAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKAorICAgICAgICAnZDggYmluYXJ5IGZvciB0aGlzIHBsYXRmb3JtIGFuZCBhcmNoaXRlY3R1cmUgaXMgbm90IHlldCBzdXBwb3J0ZWQnKQorCisKK2NsYXNzIFJ1blJlc3VsdChvYmplY3QpOgorICBkZWYgX19pbml0X18oc2VsZiwgcmV0dXJuY29kZSwgc3Rkb3V0KToKKyAgICBzZWxmLnJldHVybmNvZGUgPSByZXR1cm5jb2RlCisgICAgc2VsZi5zdGRvdXQgPSBzdGRvdXQKKworCitkZWYgRXhlY3V0ZUZpbGUoZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHM9Tm9uZSwganNfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGluPXN1YnByb2Nlc3MuUElQRSk6CisgICIiIkV4ZWN1dGUgSmF2YVNjcmlwdCBwcm9ncmFtIGluIHxmaWxlX3BhdGh8LgorCisgIEFyZ3M6CisgICAgZmlsZV9wYXRoOiBzdHJpbmcgZmlsZV9wYXRoIHRoYXQgY29udGFpbnMgcGF0aCB0aGUgLmpzIG9yIC5odG1sIGZpbGUgdG8gYmUKKyAgICAgIGV4ZWN1dGVkLgorICAgIHNvdXJjZV9wYXRoczogdGhlIGxpc3Qgb2YgYWJzb2x1dGUgcGF0aHMgY29udGFpbmluZyBjb2RlLiBBbGwgdGhlIGltcG9ydHMKKyAgICBqc19hcmdzOiBhIGxpc3Qgb2Ygc3RyaW5nIGFyZ3VtZW50cyB0byBzZW50IHRvIHRoZSBKUyBwcm9ncmFtLgorCisgIEFyZ3Mgc3Rkb3V0ICYgc3RkaW4gYXJlIHRoZSBzYW1lIGFzIF9SdW5GaWxlV2l0aEQ4LgorCisgIFJldHVybnM6CisgICAgIFRoZSBzdHJpbmcgb3V0cHV0IGZyb20gcnVubmluZyB0aGUgSlMgcHJvZ3JhbS4KKyAgIiIiCisgIHJlcyA9IFJ1bkZpbGUoZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHMsIGpzX2FyZ3MsIHN0ZG91dCwgc3RkaW4pCisgIHJldHVybiByZXMuc3Rkb3V0CisKKworZGVmIFJ1bkZpbGUoZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHM9Tm9uZSwganNfYXJncz1Ob25lLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgc3RkaW49c3VicHJvY2Vzcy5QSVBFKToKKyAgIiIiUnVucyBKYXZhU2NyaXB0IHByb2dyYW0gaW4gfGZpbGVfcGF0aHwuCisKKyAgQXJncyBhcmUgc2FtZSBhcyBFeGVjdXRlRmlsZS4KKworICBSZXR1cm5zOgorICAgICBBIFJ1blJlc3VsdCBjb250YWluaW5nIHRoZSBwcm9ncmFtJ3Mgb3V0cHV0LgorICAiIiIKKyAgYXNzZXJ0IG9zLnBhdGguaXNmaWxlKGZpbGVfcGF0aCkKKyAgX1ZhbGlkYXRlU291cmNlUGF0aHMoc291cmNlX3BhdGhzKQorCisgIF8sIGV4dGVuc2lvbiA9IG9zLnBhdGguc3BsaXRleHQoZmlsZV9wYXRoKQorICBpZiBub3QgZXh0ZW5zaW9uIGluICgnLmh0bWwnLCAnLmpzJyk6CisgICAgcmFpc2UgVmFsdWVFcnJvcignQ2FuIG9ubHkgZXhlY3V0ZSAuanMgb3IgLmh0bWwgZmlsZS4gRmlsZSAlcyBoYXMgJworICAgICAgICAgICAgICAgICAgICAgJ3Vuc3VwcG9ydGVkIGZpbGUgdHlwZTogJXMnICUgKGZpbGVfcGF0aCwgZXh0ZW5zaW9uKSkKKyAgaWYgc291cmNlX3BhdGhzIGlzIE5vbmU6CisgICAgc291cmNlX3BhdGhzID0gW29zLnBhdGguZGlybmFtZShmaWxlX3BhdGgpXQorCisgIGFic19maWxlX3BhdGggPSBvcy5wYXRoLmFic3BhdGgoZmlsZV9wYXRoKQorCisgIHRyeToKKyAgICB0ZW1wX2RpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgIHRlbXBfYm9vc3RyYXBfZmlsZSA9IG9zLnBhdGguam9pbih0ZW1wX2RpciwgJ190bXBfYm9vc3RyYXAuanMnKQorICAgIHdpdGggb3Blbih0ZW1wX2Jvb3N0cmFwX2ZpbGUsICd3JykgYXMgZjoKKyAgICAgIGYud3JpdGUoX0dldEJvb3RTdHJhcEpzQ29udGVudChzb3VyY2VfcGF0aHMpKQorICAgICAgaWYgZXh0ZW5zaW9uID09ICcuaHRtbCc6CisgICAgICAgIGYud3JpdGUoJ1xubG9hZEhUTUxGaWxlKCIlcyIpOycgJSBhYnNfZmlsZV9wYXRoKQorICAgICAgZWxzZToKKyAgICAgICAgZi53cml0ZSgnXG5sb2FkRmlsZSgiJXMiKTsnICUgYWJzX2ZpbGVfcGF0aCkKKyAgICByZXR1cm4gX1J1bkZpbGVXaXRoRDgodGVtcF9ib29zdHJhcF9maWxlLCBqc19hcmdzLCBzdGRvdXQsIHN0ZGluKQorICBmaW5hbGx5OgorICAgIHNodXRpbC5ybXRyZWUodGVtcF9kaXIpCisKKworZGVmIEV4Y2VjdXRlSnNTdHJpbmcoanNfc3RyaW5nLCBzb3VyY2VfcGF0aHM9Tm9uZSwganNfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfZmlsZV9uYW1lPU5vbmUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUpOgorICByZXMgPSBSdW5Kc1N0cmluZyhqc19zdHJpbmcsIHNvdXJjZV9wYXRocywganNfYXJncywgb3JpZ2luYWxfZmlsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICBzdGRvdXQsIHN0ZGluKQorICByZXR1cm4gcmVzLnN0ZG91dAorCisKK2RlZiBSdW5Kc1N0cmluZyhqc19zdHJpbmcsIHNvdXJjZV9wYXRocz1Ob25lLCBqc19hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgb3JpZ2luYWxfZmlsZV9uYW1lPU5vbmUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgc3RkaW49c3VicHJvY2Vzcy5QSVBFKToKKyAgX1ZhbGlkYXRlU291cmNlUGF0aHMoc291cmNlX3BhdGhzKQorCisgIHRyeToKKyAgICB0ZW1wX2RpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgIGlmIG9yaWdpbmFsX2ZpbGVfbmFtZToKKyAgICAgIG5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKG9yaWdpbmFsX2ZpbGVfbmFtZSkKKyAgICAgIG5hbWUsIF8gPSBvcy5wYXRoLnNwbGl0ZXh0KG5hbWUpCisgICAgICB0ZW1wX2ZpbGUgPSBvcy5wYXRoLmpvaW4odGVtcF9kaXIsICclcy5qcycgJSBuYW1lKQorICAgIGVsc2U6CisgICAgICB0ZW1wX2ZpbGUgPSBvcy5wYXRoLmpvaW4odGVtcF9kaXIsICd0ZW1wX3Byb2dyYW0uanMnKQorICAgIHdpdGggb3Blbih0ZW1wX2ZpbGUsICd3JykgYXMgZjoKKyAgICAgIGYud3JpdGUoanNfc3RyaW5nKQorICAgIHJldHVybiBSdW5GaWxlKHRlbXBfZmlsZSwgc291cmNlX3BhdGhzLCBqc19hcmdzLCBzdGRvdXQsIHN0ZGluKQorICBmaW5hbGx5OgorICAgIHNodXRpbC5ybXRyZWUodGVtcF9kaXIpCisKKworZGVmIF9SdW5GaWxlV2l0aEQ4KGpzX2ZpbGVfcGF0aCwganNfYXJncywgc3Rkb3V0LCBzdGRpbik6CisgICIiIiBFeGVjdXRlIHRoZSBqc19maWxlcyB3aXRoIHY4IGVuZ2luZSBhbmQgcmV0dXJuIHRoZSBvdXRwdXQgb2YgdGhlIHByb2dyYW0uCisKKyAgQXJnczoKKyAgICBqc19maWxlX3BhdGg6IHRoZSBzdHJpbmcgcGF0aCBvZiB0aGUganMgZmlsZSB0byBiZSBydW4uCisgICAganNfYXJnczogYSBsaXN0IG9mIGFyZ3VtZW50cyB0byBwYXNzZWQgdG8gdGhlIHxqc19maWxlX3BhdGh8IHByb2dyYW0uCisgICAgc3Rkb3V0OiB3aGVyZSB0byBwaXBlIHRoZSBzdGRvdXQgb2YgdGhlIGV4ZWN1dGVkIHByb2dyYW0gdG8uIElmCisgICAgICBzdWJwcm9jZXNzLlBJUEUgaXMgdXNlZCwgc3Rkb3V0IHdpbGwgYmUgcmV0dXJuZWQgaW4gUnVuUmVzdWx0Lm91dC4KKyAgICAgIE90aGVyd2lzZSBSdW5SZXN1bHQub3V0IGlzIE5vbmUKKyAgICBzdGRpbjogc3BlY2lmeSB0aGUgZXhlY3V0ZWQgcHJvZ3JhbSdzIGlucHV0LgorICAiIiIKKyAgYXJncyA9IFtfR2V0RDhCaW5hcnlQYXRoRm9yUGxhdGZvcm0oKV0KKyAgYXJncy5hcHBlbmQob3MucGF0aC5hYnNwYXRoKGpzX2ZpbGVfcGF0aCkpCisgIGZ1bGxfanNfYXJncyA9IFthcmdzWzBdXQorICBpZiBqc19hcmdzOgorICAgIGZ1bGxfanNfYXJncyArPSBqc19hcmdzCisKKyAgYXJncyArPSBbJy0tanNfYXJndW1lbnRzJ10gKyBmdWxsX2pzX2FyZ3MKKyAgIyBTZXQgc3RkZXJyPU5vbmUgc2luY2UgZDggZG9lc24ndCB3cml0ZSBpbnRvIHN0ZGVyciBhbnl3YXkuCisgIHNwID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzLCBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9Tm9uZSwgc3RkaW49c3RkaW4pCisgIG91dCwgXyA9IHNwLmNvbW11bmljYXRlKCkKKworICAjIGQ4IHVzZXMgcmV0dXJuY29kZSAxIHRvIGluZGljYXRlIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiwgYnV0CisgICMgX1J1bkZpbGVXaXRoRDggbmVlZHMgdG8gZGlzdGluZ2l1c2ggYmV0d2VlbiB0aGF0IGFuZCBxdWl0KDEpLgorICAjCisgICMgVG8gZml4IHRoaXMsIGQ4X2Jvb3RzdHJhcC5qcyBtb25rZXlwYXRjaGVzIEQ4J3MgcXVpdCBmdW5jdGlvbiB0bworICAjIGFkZHMgMSB0byBhbiBpbnRlbnRpb25lZCBub256ZXJvIHF1aXQuIFNvLCBub3csIHdlIGhhdmUgdG8gdW5kbyB0aGlzCisgICMgbG9naWMgaGVyZSBpbiBvcmRlciB0byByYWlzZS9yZXR1cm4gdGhlIHJpZ2h0IHRoaW5nLgorICByZXR1cm5jb2RlID0gc3AucmV0dXJuY29kZQorICBpZiByZXR1cm5jb2RlID09IDA6CisgICAgcmV0dXJuIFJ1blJlc3VsdCgwLCBvdXQpCisgIGVsaWYgcmV0dXJuY29kZSA9PSAxOgorICAgIGlmIG91dDoKKyAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKKyAgICAgICAgJ0V4Y2VwdGlvbiByYWlzZWQgd2hlbiBleGVjdXRpbmcgJXM6XG4lcycgJSAoanNfZmlsZV9wYXRoLCBvdXQpKQorICAgIGVsc2U6CisgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCisgICAgICAgICdFeGNlcHRpb24gcmFpc2VkIHdoZW4gZXhlY3V0aW5nICVzLiAnCisgICAgICAgICcoRXJyb3Igc3RhY2sgaXMgZHVtcGVkIGludG8gc3Rkb3V0KScgJSBqc19maWxlX3BhdGgpCisgIGVsc2U6CisgICAgcmV0dXJuIFJ1blJlc3VsdChyZXR1cm5jb2RlIC0gMSwgb3V0KQorCisKK2RlZiBtYWluKCk6CisgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKAorICAgICAgZGVzY3JpcHRpb249J1J1biBKYXZhU2NyaXB0IGZpbGUgd2l0aCB2OCBlbmdpbmUnKQorICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdmaWxlX25hbWUnLCBoZWxwPSdpbnB1dCBmaWxlJywgbWV0YXZhcj0nRklMRScsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT1sYW1iZGEgZjogX0lzVmFsaWRKc09ySFRNTEZpbGUocGFyc2VyLCBmKSkKKyAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1qc19hcmdzJywgaGVscD0nYXJndW1lbnRzIGZvciB0aGUganMgcHJvZ3JhbScsCisgICAgICAgICAgICAgICAgICAgICAgbmFyZ3M9JysnKQorICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXNvdXJjZV9wYXRocycsIGhlbHA9J3NlYXJjaCBwYXRoIGZvciB0aGUganMgcHJvZ3JhbScsCisgICAgICAgICAgICAgICAgICAgICAgbmFyZ3M9JysnLCB0eXBlPXN0cikKKworICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorCisgIGFyZ3Muc291cmNlX3BhdGhzID0gW29zLnBhdGguYWJzcGF0aCh4KSBmb3IgeCBpbiBhcmdzLnNvdXJjZV9wYXRoc10KKyAgcmVzID0gUnVuRmlsZShhcmdzLmZpbGVfbmFtZSwgc291cmNlX3BhdGhzPWFyZ3Muc291cmNlX3BhdGhzLAorICAgICAgICAgICAgICAgIGpzX2FyZ3M9YXJncy5qc19hcmdzLCBzdGRvdXQ9c3lzLnN0ZG91dCwgc3RkaW49c3lzLnN0ZGluKQorICByZXR1cm4gcmVzLnJldHVybmNvZGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi9kOF9ydW5uZXJfdW5pdHRlc3QucHkgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vZDhfcnVubmVyX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4MjNmNTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vZDhfcnVubmVyX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDkzIEBACisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cworaW1wb3J0IHNodXRpbAoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB2aW5uIGltcG9ydCBkOF9ydW5uZXIKKworCitAdW5pdHRlc3Quc2tpcElmKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSwKKyAgICAgICAgICAgICAgICAgJ2Q4IG5vdCB5ZXQgc3VwcG9ydGVkIG9uIFdpbmRvd3MuJykKK2NsYXNzIEQ4UnVubmVyVW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgIEBjbGFzc21ldGhvZAorICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgIGNscy50ZXN0X2RhdGFfZGlyID0gb3MucGF0aC5hYnNwYXRoKAorICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ3Rlc3RfZGF0YScpKQorCisgIGRlZiBHZXRUZXN0RmlsZVBhdGgoc2VsZiwgZmlsZV9uYW1lKToKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYudGVzdF9kYXRhX2RpciwgZmlsZV9uYW1lKQorCisgIGRlZiBBc3NlcnRIYXNOYW1lZEZyYW1lKHNlbGYsIGZ1bmNfbmFtZSwgZmlsZV9hbmRfbGludW0sIGV4Y2VwdGlvbl9tZXNzYWdlKToKKyAgICBtID0gcmUuc2VhcmNoKCdhdCAlcy4rXCguKiVzLipcKScgJSAoZnVuY19uYW1lLCBmaWxlX2FuZF9saW51bSksCisgICAgICAgICAgICAgICAgICBleGNlcHRpb25fbWVzc2FnZSkKKyAgICBpZiBub3QgbToKKyAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4nKQorICAgICAgbXNnID0gIkV4cGVjdGVkIHRvIGZpbmQgJXMgYW5kICVzIiAlIChmdW5jX25hbWUsIGZpbGVfYW5kX2xpbnVtKQorICAgICAgc3lzLnN0ZGVyci53cml0ZSgnJXNcbicgJSBtc2cpCisgICAgICBzeXMuc3RkZXJyLndyaXRlKCc9PT09PT09PT09PSBCZWdpbiBFeGNlcHRpb24gTWVzc2FnZSA9PT09PT09PT1cbicpCisgICAgICBzeXMuc3RkZXJyLndyaXRlKGV4Y2VwdGlvbl9tZXNzYWdlKQorICAgICAgc3lzLnN0ZGVyci53cml0ZSgnPT09PT09PT09PT0gRW5kIEV4Y2VwdGlvbiBNZXNzYWdlID09PT09PT09PVxuXG4nKQorICAgICAgc2VsZi5mYWlsKG1zZykKKworICBkZWYgQXNzZXJ0SGFzRnJhbWUoc2VsZiwgZmlsZV9hbmRfbGludW0sIGV4Y2VwdGlvbl9tZXNzYWdlKToKKyAgICBtID0gcmUuc2VhcmNoKCdhdCAuKiVzLionICUgZmlsZV9hbmRfbGludW0sIGV4Y2VwdGlvbl9tZXNzYWdlKQorICAgIGlmIG5vdCBtOgorICAgICAgc3lzLnN0ZGVyci53cml0ZSgnXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbicpCisgICAgICBtc2cgPSAiRXhwZWN0ZWQgdG8gZmluZCAlcyIgJSBmaWxlX2FuZF9saW51bQorICAgICAgc3lzLnN0ZGVyci53cml0ZSgnJXNcbicgJSBtc2cpCisgICAgICBzeXMuc3RkZXJyLndyaXRlKCc9PT09PT09PT09PSBCZWdpbiBFeGNlcHRpb24gTWVzc2FnZSA9PT09PT09PT1cbicpCisgICAgICBzeXMuc3RkZXJyLndyaXRlKGV4Y2VwdGlvbl9tZXNzYWdlKQorICAgICAgc3lzLnN0ZGVyci53cml0ZSgnPT09PT09PT09PT0gRW5kIEV4Y2VwdGlvbiBNZXNzYWdlID09PT09PT09PVxuXG4nKQorICAgICAgc2VsZi5mYWlsKG1zZykKKworICBkZWYgdGVzdEV4ZWN1dGVKc1N0cmluZ1N0ZG91dFBpcGluZyhzZWxmKToKKyAgICB0bXBfZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgdHJ5OgorICAgICAgdGVtcF9maWxlX25hbWUgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ291dF9maWxlJykKKyAgICAgIHdpdGggb3Blbih0ZW1wX2ZpbGVfbmFtZSwgJ3cnKSBhcyBmOgorICAgICAgICBkOF9ydW5uZXIuRXhjZWN1dGVKc1N0cmluZygKKyAgICAgICAgICAgICdwcmludCgiSGVsbG8gdzBybGQiKTtcbicsIHN0ZG91dD1mKQorICAgICAgd2l0aCBvcGVuKHRlbXBfZmlsZV9uYW1lLCAncicpIGFzIGY6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGYucmVhZCgpLCAnSGVsbG8gdzBybGRcbicpCisgICAgZmluYWxseToKKyAgICAgIHNodXRpbC5ybXRyZWUodG1wX2RpcikKKworICBkZWYgdGVzdFJ1bkpzU3RyaW5nU3Rkb3V0UGlwaW5nKHNlbGYpOgorICAgIHRtcF9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICB0cnk6CisgICAgICB0ZW1wX2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnb3V0X2ZpbGUnKQorICAgICAgd2l0aCBvcGVuKHRlbXBfZmlsZV9uYW1lLCAndycpIGFzIGY6CisgICAgICAgIGQ4X3J1bm5lci5SdW5Kc1N0cmluZygKKyAgICAgICAgICAgICdwcmludCgiSGVsbG8gdzBybGQiKTtcbicsIHN0ZG91dD1mKQorICAgICAgd2l0aCBvcGVuKHRlbXBfZmlsZV9uYW1lLCAncicpIGFzIGY6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGYucmVhZCgpLCAnSGVsbG8gdzBybGRcbicpCisgICAgZmluYWxseToKKyAgICAgIHNodXRpbC5ybXRyZWUodG1wX2RpcikKKworICBkZWYgdGVzdEV4ZWN1dGVGaWxlU3Rkb3V0UGlwaW5nKHNlbGYpOgorICAgIGZpbGVfcGF0aCA9IHNlbGYuR2V0VGVzdEZpbGVQYXRoKCdzaW1wbGUuanMnKQorICAgIHRtcF9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICB0cnk6CisgICAgICB0ZW1wX2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnb3V0X2ZpbGUnKQorICAgICAgd2l0aCBvcGVuKHRlbXBfZmlsZV9uYW1lLCAndycpIGFzIGY6CisgICAgICAgIGQ4X3J1bm5lci5FeGVjdXRlRmlsZShmaWxlX3BhdGgsIHN0ZG91dD1mKQorICAgICAgd2l0aCBvcGVuKHRlbXBfZmlsZV9uYW1lLCAncicpIGFzIGY6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGYucmVhZCgpLCAnSGVsbG8gVzBybGQgZnJvbSBzaW1wbGUuanNcbicpCisgICAgZmluYWxseToKKyAgICAgIHNodXRpbC5ybXRyZWUodG1wX2RpcikKKworICBkZWYgdGVzdFJ1bkZpbGVTdGRvdXRQaXBpbmcoc2VsZik6CisgICAgZmlsZV9wYXRoID0gc2VsZi5HZXRUZXN0RmlsZVBhdGgoJ3NpbXBsZS5qcycpCisgICAgdG1wX2RpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgIHRyeToKKyAgICAgIHRlbXBfZmlsZV9uYW1lID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdvdXRfZmlsZScpCisgICAgICB3aXRoIG9wZW4odGVtcF9maWxlX25hbWUsICd3JykgYXMgZjoKKyAgICAgICAgZDhfcnVubmVyLlJ1bkZpbGUoZmlsZV9wYXRoLCBzdGRvdXQ9ZikKKyAgICAgIHdpdGggb3Blbih0ZW1wX2ZpbGVfbmFtZSwgJ3InKSBhcyBmOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmLnJlYWQoKSwgJ0hlbGxvIFcwcmxkIGZyb20gc2ltcGxlLmpzXG4nKQorICAgIGZpbmFsbHk6CisgICAgICBzaHV0aWwucm10cmVlKHRtcF9kaXIpCisKKyAgZGVmIHRlc3RTaW1wbGVKc0V4ZWN1dGlvbihzZWxmKToKKyAgICBmaWxlX3BhdGggPSBzZWxmLkdldFRlc3RGaWxlUGF0aCgncHJpbnRfZmlsZV9jb250ZW50LmpzJykKKyAgICBkdW1teV90ZXN0X3BhdGggPSBzZWxmLkdldFRlc3RGaWxlUGF0aCgnZHVtbXlfdGVzdF9maWxlJykKKyAgICBvdXRwdXQgPSBkOF9ydW5uZXIuRXhlY3V0ZUZpbGUoZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHM9W3NlbGYudGVzdF9kYXRhX2Rpcl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzX2FyZ3M9W2R1bW15X3Rlc3RfcGF0aF0pCisgICAgc2VsZi5hc3NlcnRJbigKKyAgICAgICAgJ1RoaXMgaXMgZmlsZSBjb250YWlucyBvbmx5IGRhdGEgZm9yIHRlc3RpbmcuXG4xIDIgMyA0Jywgb3V0cHV0KQorCisgIGRlZiB0ZXN0SnNGaWxlTG9hZEh0bWxGaWxlKHNlbGYpOgorICAgIGZpbGVfcGF0aCA9IHNlbGYuR2V0VGVzdEZpbGVQYXRoKCdsb2FkX3NpbXBsZV9odG1sLmpzJykKKyAgICBvdXRwdXQgPSBkOF9ydW5uZXIuRXhlY3V0ZUZpbGUoZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHM9W3NlbGYudGVzdF9kYXRhX2Rpcl0pCisgICAgZXhwZWN0ZWRfb3V0cHV0ID0gKCdGaWxlIGZvby5odG1sIGlzIGxvYWRlZFxuJworICAgICAgICAgICAgICAgICAgICAgICAneCA9IDFcbicKKyAgICAgICAgICAgICAgICAgICAgICAgIkZpbGUgZm9vLmh0bWwncyBzZWNvbmQgc2NyaXB0IGlzIGxvYWRlZFxuIgorICAgICAgICAgICAgICAgICAgICAgICAneCA9IDJcbicKKyAgICAgICAgICAgICAgICAgICAgICAgJ2xvYWRfc2ltcGxlX2h0bWwuanMgaXMgbG9hZGVkXG4nKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG91dHB1dCwgZXhwZWN0ZWRfb3V0cHV0KQorCisgIGRlZiB0ZXN0SnNGaWxlTG9hZEpzRmlsZShzZWxmKToKKyAgICBmaWxlX3BhdGggPSBzZWxmLkdldFRlc3RGaWxlUGF0aCgnbG9hZF9zaW1wbGVfanMuanMnKQorICAgIG91dHB1dCA9IGQ4X3J1bm5lci5FeGVjdXRlRmlsZShmaWxlX3BhdGgsIHNvdXJjZV9wYXRocz1bc2VsZi50ZXN0X2RhdGFfZGlyXSkKKyAgICBleHBlY3RlZF9vdXRwdXQgPSAoJ2Jhci5qcyBpcyBsb2FkZWRcbicKKyAgICAgICAgICAgICAgICAgICAgICAgJ2xvYWRfc2ltcGxlX2pzLmpzIGlzIGxvYWRlZFxuJykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhvdXRwdXQsIGV4cGVjdGVkX291dHB1dCkKKworICBkZWYgdGVzdEhUTUxGaWxlTG9hZEhUTUxGaWxlKHNlbGYpOgorICAgIGZpbGVfcGF0aCA9IHNlbGYuR2V0VGVzdEZpbGVQYXRoKCdsb2FkX3NpbXBsZV9odG1sLmh0bWwnKQorICAgIG91dHB1dCA9IGQ4X3J1bm5lci5FeGVjdXRlRmlsZSgKKyAgICAgICAgZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHM9W3NlbGYudGVzdF9kYXRhX2Rpcl0pCisgICAgZXhwZWN0ZWRfb3V0cHV0ID0gKCdGaWxlIGZvby5odG1sIGlzIGxvYWRlZFxuJworICAgICAgICAgICAgICAgICAgICAgICAneCA9IDFcbicKKyAgICAgICAgICAgICAgICAgICAgICAgIkZpbGUgZm9vLmh0bWwncyBzZWNvbmQgc2NyaXB0IGlzIGxvYWRlZFxuIgorICAgICAgICAgICAgICAgICAgICAgICAneCA9IDJcbicKKyAgICAgICAgICAgICAgICAgICAgICAgJ2Jhci5qcyBpcyBsb2FkZWRcbicKKyAgICAgICAgICAgICAgICAgICAgICAgJ0ZpbGUgbG9hZF9zaW1wbGVfaHRtbC5odG1sIGlzIGxvYWRlZFxuJykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhvdXRwdXQsIGV4cGVjdGVkX291dHB1dCkKKworICBkZWYgdGVzdFF1aXQwSGFuZGxpbmcoc2VsZik6CisgICAgZmlsZV9wYXRoID0gc2VsZi5HZXRUZXN0RmlsZVBhdGgoJ3F1aXRfMF90ZXN0LmpzJykKKyAgICByZXMgPSBkOF9ydW5uZXIuUnVuRmlsZShmaWxlX3BhdGgsIHNvdXJjZV9wYXRocz1bc2VsZi50ZXN0X2RhdGFfZGlyXSkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMucmV0dXJuY29kZSwgMCkKKworICBkZWYgdGVzdFF1aXQxSGFuZGxpbmcoc2VsZik6CisgICAgZmlsZV9wYXRoID0gc2VsZi5HZXRUZXN0RmlsZVBhdGgoJ3F1aXRfMV90ZXN0LmpzJykKKyAgICByZXMgPSBkOF9ydW5uZXIuUnVuRmlsZShmaWxlX3BhdGgsIHNvdXJjZV9wYXRocz1bc2VsZi50ZXN0X2RhdGFfZGlyXSkKKyAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMucmV0dXJuY29kZSwgMSkKKworICBkZWYgdGVzdFF1aXQ0MkhhbmRsaW5nKHNlbGYpOgorICAgIGZpbGVfcGF0aCA9IHNlbGYuR2V0VGVzdEZpbGVQYXRoKCdxdWl0XzQyX3Rlc3QuanMnKQorICAgIHJlcyA9IGQ4X3J1bm5lci5SdW5GaWxlKGZpbGVfcGF0aCwgc291cmNlX3BhdGhzPVtzZWxmLnRlc3RfZGF0YV9kaXJdKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcy5yZXR1cm5jb2RlLCA0MikKKworICBkZWYgdGVzdFF1aXQyNzRIYW5kbGluZyhzZWxmKToKKyAgICBmaWxlX3BhdGggPSBzZWxmLkdldFRlc3RGaWxlUGF0aCgncXVpdF8yNzRfdGVzdC5qcycpCisgICAgcmVzID0gZDhfcnVubmVyLlJ1bkZpbGUoZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHM9W3NlbGYudGVzdF9kYXRhX2Rpcl0pCisgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzLnJldHVybmNvZGUsIDIzOCkKKworICBkZWYgdGVzdEVycm9yU3RhY2tUcmFjZUpzKHNlbGYpOgorICAgIGZpbGVfcGF0aCA9IHNlbGYuR2V0VGVzdEZpbGVQYXRoKCdlcnJvcl9zdGFja190ZXN0LmpzJykKKyAgICAjIGVycm9yX3N0YWNrX3Rlc3QuanMgaW1wb3J0cyBsb2FkX3NpbXBsZV9odG1sLmh0bWwKKyAgICAjIGxvYWRfc2ltcGxlX2h0bWwuaHRtbCBpbXBvcnRzIGZvby5odG1sCisgICAgIyBmb28uaHRtbCBpbXBvcnRzIGVycm9yLmpzCisgICAgIyBlcnJvci5qcyBkZWZpbmVzIG1heWJlUmFpc2VFeGNlcHRpb24oKSBtZXRob2QgdGhhdCBjYW4gcmFpc2UgZXhjZXB0aW9uCisgICAgIyBmb28uaHRtbCBkZWZpbmVzIG1heWJlUmFpc2VFeGNlcHRpb25JbkZvbygpIG1ldGhvZCB0aGF0IGNhbGxzCisgICAgIyBtYXliZVJhaXNlRXhjZXB0aW9uKCkKKyAgICAjIEZpbmFsbHksIHdlIGNhbGwgbWF5YmVSYWlzZUV4Y2VwdGlvbkluRm9vKCkgZXJyb3Jfc3RhY2tfdGVzdC5qcworICAgICMgRXhjZXB0aW9uIGxvZyBzaG91bGQgY2FwdHVyZSB0aGVzZSBtZXRob2QgY2FsbHMnIHN0YWNrIHRyYWNlLgorICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKSBhcyBjb250ZXh0OgorICAgICAgZDhfcnVubmVyLkV4ZWN1dGVGaWxlKGZpbGVfcGF0aCwgc291cmNlX3BhdGhzPVtzZWxmLnRlc3RfZGF0YV9kaXJdKQorCisgICAgIyBBc3NlcnQgZXJyb3Igc3RhY2sgdHJhY2UgY29udGFpbiBzcmMgZmlsZXMnIGluZm8uCisgICAgZXhjZXB0aW9uX21lc3NhZ2UgPSBjb250ZXh0LmV4Y2VwdGlvbi5tZXNzYWdlCisgICAgc2VsZi5hc3NlcnRJbigKKyAgICAgICAgKCdlcnJvci5qczo3OiBFcnJvcjogVGhyb3cgRVJST1JcbicKKyAgICAgICAgICIgICAgdGhyb3cgbmV3IEVycm9yKCdUaHJvdyBFUlJPUicpOyIpLCBleGNlcHRpb25fbWVzc2FnZSkKKyAgICBzZWxmLkFzc2VydEhhc05hbWVkRnJhbWUoJ21heWJlUmFpc2VFeGNlcHRpb24nLCAnZXJyb3IuanM6NycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9tZXNzYWdlKQorICAgIHNlbGYuQXNzZXJ0SGFzTmFtZWRGcmFtZSgnZ2xvYmFsLm1heWJlUmFpc2VFeGNlcHRpb25JbkZvbycsICdmb28uaHRtbDozNCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9tZXNzYWdlKQorICAgIHNlbGYuQXNzZXJ0SGFzRnJhbWUoJ2Vycm9yX3N0YWNrX3Rlc3QuanM6MTQnLCBleGNlcHRpb25fbWVzc2FnZSkKKworICBkZWYgdGVzdEVycm9yU3RhY2tUcmFjZUhUTUwoc2VsZik6CisgICAgZmlsZV9wYXRoID0gc2VsZi5HZXRUZXN0RmlsZVBhdGgoJ2Vycm9yX3N0YWNrX3Rlc3QuaHRtbCcpCisgICAgIyBlcnJvcl9zdGFja190ZXN0Lmh0bWwgaW1wb3J0cyBlcnJvcl9zdGFja190ZXN0LmpzCisgICAgIyBlcnJvcl9zdGFja190ZXN0LmpzIGltcG9ydHMgbG9hZF9zaW1wbGVfaHRtbC5odG1sCisgICAgIyBsb2FkX3NpbXBsZV9odG1sLmh0bWwgaW1wb3J0cyBmb28uaHRtbAorICAgICMgZm9vLmh0bWwgaW1wb3J0cyBlcnJvci5qcworICAgICMgZXJyb3IuanMgZGVmaW5lcyBtYXliZVJhaXNlRXhjZXB0aW9uKCkgbWV0aG9kIHRoYXQgY2FuIHJhaXNlIGV4Y2VwdGlvbgorICAgICMgZm9vLmh0bWwgZGVmaW5lcyBtYXliZVJhaXNlRXhjZXB0aW9uSW5Gb28oKSBtZXRob2QgdGhhdCBjYWxscworICAgICMgbWF5YmVSYWlzZUV4Y2VwdGlvbigpCisgICAgIyBGaW5hbGx5LCB3ZSBjYWxsIG1heWJlUmFpc2VFeGNlcHRpb25JbkZvbygpIGVycm9yX3N0YWNrX3Rlc3QuanMKKyAgICAjIEV4Y2VwdGlvbiBsb2cgc2hvdWxkIGNhcHR1cmUgdGhlc2UgbWV0aG9kIGNhbGxzJyBzdGFjayB0cmFjZS4KKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgY29udGV4dDoKKyAgICAgIGQ4X3J1bm5lci5FeGVjdXRlRmlsZShmaWxlX3BhdGgsIHNvdXJjZV9wYXRocz1bc2VsZi50ZXN0X2RhdGFfZGlyXSkKKworICAgICMgQXNzZXJ0IGVycm9yIHN0YWNrIHRyYWNlIGNvbnRhaW4gc3JjIGZpbGVzJyBpbmZvLgorICAgIGV4Y2VwdGlvbl9tZXNzYWdlID0gY29udGV4dC5leGNlcHRpb24ubWVzc2FnZQorICAgIHNlbGYuYXNzZXJ0SW4oCisgICAgICAgICgnZXJyb3IuanM6NzogRXJyb3I6IFRocm93IEVSUk9SXG4nCisgICAgICAgICAiICAgIHRocm93IG5ldyBFcnJvcignVGhyb3cgRVJST1InKTsiKSwgZXhjZXB0aW9uX21lc3NhZ2UpCisKKyAgICBzZWxmLkFzc2VydEhhc05hbWVkRnJhbWUoJ21heWJlUmFpc2VFeGNlcHRpb24nLCAnZXJyb3IuanM6NycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9tZXNzYWdlKQorICAgIHNlbGYuQXNzZXJ0SGFzTmFtZWRGcmFtZSgnZ2xvYmFsLm1heWJlUmFpc2VFeGNlcHRpb25JbkZvbycsICdmb28uaHRtbDozNCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9tZXNzYWdlKQorICAgIHNlbGYuQXNzZXJ0SGFzRnJhbWUoJ2Vycm9yX3N0YWNrX3Rlc3QuanM6MTQnLCBleGNlcHRpb25fbWVzc2FnZSkKKyAgICBzZWxmLkFzc2VydEhhc05hbWVkRnJhbWUoJ2V2YWwnLCAnZXJyb3Jfc3RhY2tfdGVzdC5odG1sOjIyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uX21lc3NhZ2UpCisKKyAgZGVmIHRlc3RTdGFja1RyYWNlT2ZFcnJvV2hlbkxvYWRpbmdIVE1MKHNlbGYpOgorICAgIGZpbGVfcGF0aCA9IHNlbGYuR2V0VGVzdEZpbGVQYXRoKCdsb2FkX2Vycm9yLmh0bWwnKQorICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKSBhcyBjb250ZXh0OgorICAgICAgZDhfcnVubmVyLkV4ZWN1dGVGaWxlKGZpbGVfcGF0aCwgc291cmNlX3BhdGhzPVtzZWxmLnRlc3RfZGF0YV9kaXJdKQorCisgICAgIyBBc3NlcnQgZXJyb3Igc3RhY2sgdHJhY2UgY29udGFpbiBzcmMgZmlsZXMnIGluZm8uCisgICAgZXhjZXB0aW9uX21lc3NhZ2UgPSBjb250ZXh0LmV4Y2VwdGlvbi5tZXNzYWdlCisKKyAgICBzZWxmLmFzc2VydEluKCdFcnJvcjogL2RvZXNfbm90X2V4aXN0Lmh0bWwgbm90IGZvdW5kJywgZXhjZXB0aW9uX21lc3NhZ2UpCisgICAgc2VsZi5Bc3NlcnRIYXNOYW1lZEZyYW1lKCdldmFsJywgJ2xvYWRfZXJyb3JfMi5odG1sOjIxJywgZXhjZXB0aW9uX21lc3NhZ2UpCisgICAgc2VsZi5Bc3NlcnRIYXNOYW1lZEZyYW1lKCdldmFsJywgJ2xvYWRfZXJyb3IuaHRtbDoyMycsIGV4Y2VwdGlvbl9tZXNzYWdlKQorCisgIGRlZiB0ZXN0U3RhY2tUcmFjZU9mRXJyb1doZW5Mb2FkaW5nSlMoc2VsZik6CisgICAgZmlsZV9wYXRoID0gc2VsZi5HZXRUZXN0RmlsZVBhdGgoJ2xvYWRfanNfZXJyb3IuaHRtbCcpCisgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGNvbnRleHQ6CisgICAgICBkOF9ydW5uZXIuRXhlY3V0ZUZpbGUoZmlsZV9wYXRoLCBzb3VyY2VfcGF0aHM9W3NlbGYudGVzdF9kYXRhX2Rpcl0pCisKKyAgICAjIEFzc2VydCBlcnJvciBzdGFjayB0cmFjZSBjb250YWluIHNyYyBmaWxlcycgaW5mby4KKyAgICBleGNlcHRpb25fbWVzc2FnZSA9IGNvbnRleHQuZXhjZXB0aW9uLm1lc3NhZ2UKKworICAgIHNlbGYuYXNzZXJ0SW4oJ0Vycm9yOiAvZG9lc19ub3RfZXhpc3QuanMgbm90IGZvdW5kJywgZXhjZXB0aW9uX21lc3NhZ2UpCisgICAgc2VsZi5Bc3NlcnRIYXNOYW1lZEZyYW1lKCdldmFsJywgJ2xvYWRfanNfZXJyb3JfMi5odG1sOjIwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uX21lc3NhZ2UpCisgICAgc2VsZi5Bc3NlcnRIYXNOYW1lZEZyYW1lKCdldmFsJywgJ2xvYWRfanNfZXJyb3IuaHRtbDoyMicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9tZXNzYWdlKQorCisgIGRlZiB0ZXN0Q29uc29sZVBvbHlmaWxsKHNlbGYpOgorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAorICAgICAgICBkOF9ydW5uZXIuRXhjZWN1dGVKc1N0cmluZygnY29uc29sZS5sb2coImhlbGxvIiwgIndvcmxkIik7JyksCisgICAgICAgICdoZWxsbyB3b3JsZFxuJykKKyAgICBzZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgZDhfcnVubmVyLkV4Y2VjdXRlSnNTdHJpbmcoJ2NvbnNvbGUuaW5mbygiaGVsbG8iLCAid29ybGQiKTsnKSwKKyAgICAgICAgJ0luZm86IGhlbGxvIHdvcmxkXG4nKQorICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAorICAgICAgICBkOF9ydW5uZXIuRXhjZWN1dGVKc1N0cmluZygnY29uc29sZS53YXJuKCJoZWxsbyIsICJ3b3JsZCIpOycpLAorICAgICAgICAnV2FybmluZzogaGVsbG8gd29ybGRcbicpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgIGQ4X3J1bm5lci5FeGNlY3V0ZUpzU3RyaW5nKCdjb25zb2xlLmVycm9yKCJoZWxsbyIsICJ3b3JsZCIpOycpLAorICAgICAgICAnRXJyb3I6IGhlbGxvIHdvcmxkXG4nKQorCisKK0B1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpLAorICAgICAgICAgICAgICAgICAnZDggbm90IHlldCBzdXBwb3J0ZWQgb24gV2luZG93cy4nKQorY2xhc3MgUGF0aFV0aWxVbml0dGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgIGRlZiB0ZXN0UGF0aFV0aWwoc2VsZik6CisgICAgcGF0aF91dGlsX2pzX3Rlc3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAorICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAncGF0aF91dGlsc190ZXN0LmpzJykpCisgICAgdGVzdF9sb2FkaW5nX2pzID0gIiIiCisgICAgbG9hZCgnJXMnKTsKKyAgICBsb2FkKCclcycpOworICAgIHJ1blRlc3RzKCk7CisgICAgIiIiICUgKGQ4X3J1bm5lci5fUEFUSF9VVElMU19KU19ESVIsIHBhdGhfdXRpbF9qc190ZXN0KQorCisgICAgcmVzID0gZDhfcnVubmVyLlJ1bkpzU3RyaW5nKHRlc3RfbG9hZGluZ19qcykKKyAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMucmV0dXJuY29kZSwgMCkKKworCitkZWYgX0dldExpbmVOdW1iZXJPZlN1YnN0cmluZyhjb250ZW50LCBzdWJzdHJpbmcpOgorICAiIiIgUmV0dXJuIHRoZSBsaW5lIG51bWJlciBvZiB8c3Vic3RyaW5nfCBpbiB8Y29udGVudHwuIiIiCisgIGluZGV4ID0gY29udGVudC5pbmRleChzdWJzdHJpbmcpCisgIHJldHVybiBjb250ZW50WzppbmRleF0uY291bnQoJ1xuJykgKyAxCisKKworZGVmIF9HZW5lcmF0ZUxpbmVCeUxpbmVEaWZmKGFjdHVhbCwgZXhwZWN0ZWQpOgorICByZXN1bHRzID0gW10KKyAgZXhwZWN0ZWRfbGluZXMgPSBleHBlY3RlZC5zcGxpdCgnXG4nKQorICBhY3R1YWxfbGluZXMgPSBhY3R1YWwuc3BsaXQoJ1xuJykKKyAgbWF4X251bV9saW5lcyA9IG1heChsZW4oZXhwZWN0ZWRfbGluZXMpLCBsZW4oYWN0dWFsX2xpbmVzKSkKKyAgcmVzdWx0cy5hcHBlbmQoJyoqQWN0dWFsICAgIDogbnVtIGxpbmVzID0gICVpJyAlIGxlbihhY3R1YWxfbGluZXMpKQorICByZXN1bHRzLmFwcGVuZCgnKipFeHBlY3RlZCAgOiBudW0gbGluZXMgPSAlaScgJSBsZW4oZXhwZWN0ZWRfbGluZXMpKQorCisgIGZvciBpIGluIHhyYW5nZSgwLCBtYXhfbnVtX2xpbmVzKToKKyAgICBleHBlY3RlZF9jdXJyZW50X2xpbmUgPSBleHBlY3RlZF9saW5lc1tpXSBpZiBpIDwgbGVuKGV4cGVjdGVkX2xpbmVzKSBlbHNlICcnCisgICAgYWN0dWFsX2N1cnJlbnRfbGluZSA9IGFjdHVhbF9saW5lc1tpXSBpZiBpIDwgbGVuKGFjdHVhbF9saW5lcykgZWxzZSAnJworICAgIGlmIGFjdHVhbF9jdXJyZW50X2xpbmUgPT0gZXhwZWN0ZWRfY3VycmVudF9saW5lOgorICAgICAgY29udGludWUKKyAgICByZXN1bHRzLmFwcGVuZCgnPT09PT09PT09PT09PT09PT0gTGluZSAlcyA9PT09PT09PT09PT09PT09PT09PT09JyAlIChpICsgMSkpCisgICAgcmVzdWx0cy5hcHBlbmQoJyoqQWN0dWFsICAgIDogJXMnICUgcmVwcihhY3R1YWxfY3VycmVudF9saW5lKSkKKyAgICByZXN1bHRzLmFwcGVuZCgnKipFeHBlY3RlZCAgOiAlcycgJSByZXByKGV4cGVjdGVkX2N1cnJlbnRfbGluZSkpCisgIHJldHVybiAnXG4nLmpvaW4ocmVzdWx0cykKKworCitAdW5pdHRlc3Quc2tpcElmKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSwKKyAgICAgICAgICAgICAgICAgJ2Q4IG5vdCB5ZXQgc3VwcG9ydGVkIG9uIFdpbmRvd3MuJykKK2NsYXNzIEhUTUxHZW5lcmF0b3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICBkZWYgQXNzZXJ0U3RyaW5nRXF1YWxzKHNlbGYsIGFjdHVhbCwgZXhwZWN0ZWQpOgorICAgIGlmIGFjdHVhbCAhPSBleHBlY3RlZDoKKyAgICAgIG1lc3NhZ2UgPSAnRXhwZWN0ZWQgJXMgYnV0IGdvdCAlcy5cbicgJSAocmVwcihleHBlY3RlZCksIHJlcHIoYWN0dWFsKSkKKyAgICAgIG1lc3NhZ2UgKz0gX0dlbmVyYXRlTGluZUJ5TGluZURpZmYoYWN0dWFsLCBleHBlY3RlZCkKKyAgICAgIHNlbGYuZmFpbChtZXNzYWdlKQorCisgIGRlZiBHZXRHZW5lcmF0ZWRKcyhzZWxmLCBodG1sX3RleHQpOgorICAgIHRtcF9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICB0cnk6CisgICAgICB0ZW1wX2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAndGVzdC5odG1sJykKKyAgICAgIHdpdGggb3Blbih0ZW1wX2ZpbGVfbmFtZSwgJ3cnKSBhcyBmOgorICAgICAgICBmLndyaXRlKGh0bWxfdGV4dCkKKyAgICAgIHJldHVybiBkOF9ydW5uZXIuRXhjZWN1dGVKc1N0cmluZygKKyAgICAgICAgICAnd3JpdGUoZ2VuZXJhdGVKc0Zyb21IVE1MKHJlYWQoIiVzIikpKTsnICUgdGVtcF9maWxlX25hbWUpCisgICAgZmluYWxseToKKyAgICAgIHNodXRpbC5ybXRyZWUodG1wX2RpcikKKworICBkZWYgdGVzdEdlbmVyYXRlSnNGb3JEOFJ1bm5lclNpbXBsZUhUTUxJbXBvcnQoc2VsZik6CisgICAgaHRtbCA9ICc8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvbWF0aC5odG1sIj4nCisgICAgZXhwZWN0ZWRfanMgPSAibG9hZEhUTUwoJy9iYXNlL21hdGguaHRtbCcpOyIKKyAgICBzZWxmLkFzc2VydFN0cmluZ0VxdWFscyhzZWxmLkdldEdlbmVyYXRlZEpzKGh0bWwpLCBleHBlY3RlZF9qcykKKworICBkZWYgdGVzdEdlbmVyYXRlSlNGb3JEOFJ1bm5lckltcG9ydE11bHRpbGluZUhUTUxJbXBvcnQoc2VsZik6CisgICAgaHRtbCA9ICIiIgorICAgICAgICAgIDxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgICAgIGhyZWY9Ii9iYXNlL21hdGguaHRtbCI+IiIiCisgICAgZXhwZWN0ZWRfanMgPSAiXG5sb2FkSFRNTCgnL2Jhc2UvbWF0aC5odG1sJyk7IgorICAgIHNlbGYuQXNzZXJ0U3RyaW5nRXF1YWxzKHNlbGYuR2V0R2VuZXJhdGVkSnMoaHRtbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfanMpCisKKyAgZGVmIHRlc3RHZW5lcmF0ZUpzRm9yRDhSdW5uZXJJbXBvcnRTaW1wbGVTY3JpcHRXaXRoU3JjKHNlbGYpOgorICAgIGh0bWwgPSAnPHNjcmlwdCBzcmM9Ii9iYXNlL21hdGguanMiPjwvc2NyaXB0PicKKyAgICBleHBlY3RlZF9qcyA9ICJsb2FkU2NyaXB0KCcvYmFzZS9tYXRoLmpzJyk7IgorICAgIHNlbGYuQXNzZXJ0U3RyaW5nRXF1YWxzKHNlbGYuR2V0R2VuZXJhdGVkSnMoaHRtbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfanMpCisKKyAgZGVmIHRlc3RHZW5lcmF0ZUpzRm9yRDhSdW5uZXJJbXBvcnRNdWx0aWxpbmVTY3JpcHRXaXRoU3JjKHNlbGYpOgorICAgIGh0bWwgPSAiIiI8c2NyaXB0CisgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiCisgICAgICAgICAgICAgICAgICBzcmM9Ii9iYXNlL21hdGguanMiPgorICAgICAgICAgICAgICAgICAgPC9zY3JpcHQ+IiIiCisgICAgZXhwZWN0ZWRfanMgPSAiIiJsb2FkU2NyaXB0KCcvYmFzZS9tYXRoLmpzJyk7CisKKworICAgICAgICAgICAgICAgICAgIiIiCisgICAgc2VsZi5Bc3NlcnRTdHJpbmdFcXVhbHMoc2VsZi5HZXRHZW5lcmF0ZWRKcyhodG1sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9qcykKKworICBkZWYgdGVzdEdlbmVyYXRlSnNGb3JEOFJ1bm5lcldpdGhNaXhlZE11bHRpcGxlSW1wb3J0KHNlbGYpOgorICAgIGh0bWwgPSAiIiIKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS5odG1sIj48bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2U2NC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgICAgICAgaHJlZj0iL2Jhc2UvbWF0aC5odG1sIj48c2NyaXB0CisgICAgICAgICAgICB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiCisKKyAgICAgICAgICAgIHNyYz0iL2Jhc2UvM2QuanMiPgorICAgICAgICAgICAgPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIvYmFzZS9tYXRoLmpzIj48L3NjcmlwdD4KKworIDxsaW5rIHJlbD0iaW1wb3J0IgorICBocmVmPSIvYmFzZS9yYW5kb20uaHRtbCI+CisiIiIKKyAgICBleHBlY3RlZF9qcyA9ICgiIiIKK2xvYWRIVE1MKCcvYmFzZS5odG1sJyk7bG9hZEhUTUwoJy9iYXNlNjQuaHRtbCcpOworbG9hZEhUTUwoJy9iYXNlL21hdGguaHRtbCcpOworbG9hZFNjcmlwdCgnL2Jhc2UvM2QuanMnKTsKKworCisKKyAgICAgICAgICAgICIiIiArICIiIgorCitsb2FkU2NyaXB0KCcvYmFzZS9tYXRoLmpzJyk7CisKK2xvYWRIVE1MKCcvYmFzZS9yYW5kb20uaHRtbCcpOyIiIikKKyAgICBzZWxmLkFzc2VydFN0cmluZ0VxdWFscyhzZWxmLkdldEdlbmVyYXRlZEpzKGh0bWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2pzKQorCisgIGRlZiB0ZXN0R2VuZXJhdGVKc0ZvckQ4UnVubmVySW1wb3J0V2l0aFNpbXBsZUNvbnRlbnQoc2VsZik6CisgICAgaHRtbCA9ICIiIjxzY3JpcHQ+CisgICAgICAgICAgICAgICB2YXIgaHRtbF9saW5lcyA9IFsKKyAgICAgICAgICAgICAgICAnPHNjcmlwdD4nLAorICAgICAgICAgICAgICAgICc8IC9zY3JpcHQ+JywKKyAgICAgICAgICAgICAgIF07CisgICAgPC9zY3JpcHQ+CisgICAgIiIiCisgICAgZXhwZWN0ZWRfanMgPSAiIiIKKyAgICAgICAgICAgICAgIHZhciBodG1sX2xpbmVzID0gWworICAgICAgICAgICAgICAgICc8c2NyaXB0PicsCisgICAgICAgICAgICAgICAgJzwgL3NjcmlwdD4nLAorICAgICAgICAgICAgICAgXTsKKyAgICAiIiIKKyAgICBzZWxmLkFzc2VydFN0cmluZ0VxdWFscyhzZWxmLkdldEdlbmVyYXRlZEpzKGh0bWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2pzKQorCisgIGRlZiB0ZXN0R2VuZXJhdGVKc0ZvckQ4UnVubmVySW1wb3J0V2l0aEVzY2FwZWRTY3JpcHRUYWcoc2VsZik6CisgICAgaHRtbCA9ICIiIjxzY3JpcHQ+Cit2YXIgcyA9ICgiPCIpICsgIjxcL3NjcmlwdD4iOwordmFyIHggPSAxMDA7CisgICAgPC9zY3JpcHQ+CisgICAgIiIiCisgICAgZXhwZWN0ZWRfanMgPSAiIiIKK3ZhciBzID0gKCI8IikgKyAiPFwvc2NyaXB0PiI7Cit2YXIgeCA9IDEwMDsKKyAgICAiIiIKKyAgICBzZWxmLkFzc2VydFN0cmluZ0VxdWFscyhzZWxmLkdldEdlbmVyYXRlZEpzKGh0bWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2pzKQorCisgIGRlZiB0ZXN0R2VuZXJhdGVKc0ZvckQ4UnVubmVySW1wb3J0V2l0aFNyY0FuZFNpbXBsZUNvbnRlbnQoc2VsZik6CisgICAgaHRtbCA9ICIiIjxzY3JpcHQKKyAgICAgICAgICAgICAgIHNyYz0iL2Jhc2UuanMiPnZhciBodG1sX2xpbmVzID0gWworICAgICAgICAgICAgICAgICc8c2NyaXB0PicsCisgICAgICAgICAgICAgICAgJzwgL3NjcmlwdD4nLAorICAgICAgICAgICAgICAgXTsKKyAgICA8L3NjcmlwdD4KKyAgICAiIiIKKyAgICBleHBlY3RlZF9qcyA9ICIiImxvYWRTY3JpcHQoJy9iYXNlLmpzJyk7Cit2YXIgaHRtbF9saW5lcyA9IFsKKyAgICAgICAgICAgICAgICAnPHNjcmlwdD4nLAorICAgICAgICAgICAgICAgICc8IC9zY3JpcHQ+JywKKyAgICAgICAgICAgICAgIF07CisgICAgIiIiCisgICAgc2VsZi5Bc3NlcnRTdHJpbmdFcXVhbHMoc2VsZi5HZXRHZW5lcmF0ZWRKcyhodG1sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9qcykKKworICBkZWYgdGVzdEdlbmVyYXRlSnNGb3JEOFJ1bm5lckltcG9ydENvbXBsZXgoc2VsZik6CisgICAgaHRtbCA9ICIiIjwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorICAgICAgICA8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvbWF0aC5odG1sIj48c2NyaXB0PnZhciB4ID0gMTs8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii9iYXNlL2NvbXB1dGVyLmpzIj4KKyAgICAgICAgICB2YXIgbGludXggPSBvcy5zeXN0ZW07ICAvLyBsaW5lIG51bWJlciBvZiB0aGlzIGlzIDkKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9waHlzaWNzLmh0bWwiPgorCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgIHZhciBodG1sX2xpbmVzID0gWworICAgICAgICAgICAgICAgICc8c2NyaXB0PicsCisgICAgICAgICAgICAgICAgJzwgL3NjcmlwdD4nLAorICAgICAgICAgICAgICBdOworICAgICAgICAgICAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgICAgICAgICAgdmFyIHkgPSBbCisgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgMiwgICAvLyBsaW5lIG51bWJlciBvZiB0aGlzIGlzIDIxCisgICAgICAgICAgICAgICAgICAzLAorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIF07CisgICAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisKKyAgICAgICAgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS90aGlzX2lzX2xpbmVfMjguaHRtbCI+CisgICAgICAgICA8c2NyaXB0PgorICAgICAgICAgIHZhciBpID0gJzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9tYXRoLmh0bWwiPic7CisgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgIiIiCisgICAgZXhwZWN0ZWRfanMgPSAiIiIKKworCisKKworCitsb2FkSFRNTCgnL2Jhc2UvbWF0aC5odG1sJyk7dmFyIHggPSAxOworbG9hZFNjcmlwdCgnL2Jhc2UvY29tcHV0ZXIuanMnKTsKKyAgICAgICAgICB2YXIgbGludXggPSBvcy5zeXN0ZW07ICAvLyBsaW5lIG51bWJlciBvZiB0aGlzIGlzIDkKKyAgICAgICAgIiIiICsgIiIiCitsb2FkSFRNTCgnL2Jhc2UvcGh5c2ljcy5odG1sJyk7CisKKworICAgICAgICAgICAgICB2YXIgaHRtbF9saW5lcyA9IFsKKyAgICAgICAgICAgICAgICAnPHNjcmlwdD4nLAorICAgICAgICAgICAgICAgICc8IC9zY3JpcHQ+JywKKyAgICAgICAgICAgICAgXTsKKyAgICAgICAgICAgICAgZnVuY3Rpb24gZm9vKCkgeworICAgICAgICAgICAgICAgIHZhciB5ID0gWworICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAgICAgICAgIDIsICAgLy8gbGluZSBudW1iZXIgb2YgdGhpcyBpcyAyMQorICAgICAgICAgICAgICAgICAgMywKKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICBdOworICAgICAgICAgICAgICB9CisgICAgICAgICIiIiArICIiIgorCitsb2FkSFRNTCgnL2Jhc2UvdGhpc19pc19saW5lXzI4Lmh0bWwnKTsKKworICAgICAgICAgIHZhciBpID0gJzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9tYXRoLmh0bWwiPic7CisgICAgICAgICAiIiIKKworICAgIGdlbmVyYXRlZF9qcyA9IHNlbGYuR2V0R2VuZXJhdGVkSnMoaHRtbCkKKyAgICBzZWxmLkFzc2VydFN0cmluZ0VxdWFscygKKyAgICAgICAgX0dldExpbmVOdW1iZXJPZlN1YnN0cmluZyhnZW5lcmF0ZWRfanMsICcvLyBsaW5lIG51bWJlciBvZiB0aGlzIGlzIDknKSwKKyAgICAgICAgOSkKKyAgICBzZWxmLkFzc2VydFN0cmluZ0VxdWFscygKKyAgICAgICAgX0dldExpbmVOdW1iZXJPZlN1YnN0cmluZyhnZW5lcmF0ZWRfanMsICcvLyBsaW5lIG51bWJlciBvZiB0aGlzIGlzIDIxJyksCisgICAgICAgIDIxKQorICAgIHNlbGYuQXNzZXJ0U3RyaW5nRXF1YWxzKAorICAgICAgICBfR2V0TGluZU51bWJlck9mU3Vic3RyaW5nKGdlbmVyYXRlZF9qcywgJ3RoaXNfaXNfbGluZV8yOC5odG1sJyksCisgICAgICAgIDI4KQorICAgIHNlbGYuQXNzZXJ0U3RyaW5nRXF1YWxzKGdlbmVyYXRlZF9qcywgZXhwZWN0ZWRfanMpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vaHRtbF90b19qc19nZW5lcmF0b3IuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vaHRtbF90b19qc19nZW5lcmF0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg5Yjk0YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi9odG1sX3RvX2pzX2dlbmVyYXRvci5qcwpAQCAtMCwwICsxLDE4MCBAQAorLy8gQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdG9vbHMgZm9yIHBhcnNpbmcgSFRNTCB0byBnZW5lcmF0ZSBqYXZhc2NyaXB0LCBuZWVkZWQKKyAqIGZvciBkOCBib290c3RyYXBwaW5nIHByb2Nlc3MuCisgKi8KKworKGZ1bmN0aW9uKGdsb2JhbCkgeworCisgIC8vIFdlIGRlbGliZXJhdGVseSBjYWxsIGV2YWwoKSBvbiBjb250ZW50IG9mIHBhcnNlNS5qcyBpbnN0ZWFkIG9mIHVzaW5nIGxvYWQoKQorICAvLyBiZWNhdXNlIGxvYWQoKSBkb2VzIG5vdCBob2lzdCB0aGUgfGdsb2JhbHwgdmFyaWFibGUgaW4gdGhpcyBtZXRob2QgdG8KKyAgLy8gcGFyc2U1LmpzICh3aGljaCBleHBvcnQgaXRzIG1vZHVsZXMgdG8gfGdsb2JhbHwpLgorICAvLworICAvLyBUaGlzIGlzIGJlY2F1c2UgZDgncyBsb2FkKCd4eXouanMnKSBkb2VzIG5vdCBob2lzdCBub24gZ2xvYmFsIHZhcmlibGVzIGluCisgIC8vIHRoZSBjYWxsZXIncyBlbnZpcm9ubWVudCB0byB4eXouanMsIG5vIG1hdHRlciB3aGVyZSBsb2FkKCkgaXMgY2FsbGVkLgorICBldmFsKHJlYWQoZ2xvYmFsLnBhdGhfdG9fanNfcGFyc2VyKSk7CisKKyAgdmFyIGFkYXB0ZXIgPSBwYXJzZTUuVHJlZUFkYXB0ZXJzLmRlZmF1bHQ7CisgIHZhciBwYXJzZXIgPSBuZXcgcGFyc2U1LlBhcnNlcihhZGFwdGVyLCB7bG9jYXRpb25JbmZvOiB0cnVlfSk7CisgIHZhciBzZXJpYWxpemVyID0gbmV3IHBhcnNlNS5TZXJpYWxpemVyKGFkYXB0ZXIpOworCisKKyAgZnVuY3Rpb24gSnNHZW5lcmF0b3IoaHRtbF90ZXh0KSB7CisgICAgdGhpcy5odG1sX3RleHRfID0gaHRtbF90ZXh0OworICB9CisKKyAgSnNHZW5lcmF0b3IucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGphdmFzY3JpcHQgImNodW5rIiB0aGF0IHdpbGwgYmUgdXNlZCBsYXRlciBmb3IgZmluYWwgYXNzZW1ibGluZworICAgICAqIG9mIGFsbCBqYXZhc2NyaXB0IGNvbnRlbnRzIGdlbmVyYXRlZCBmcm9tIHxodG1sX3RleHR8LgorICAgICAqCisgICAgICogQSBqYXZhc2NyaXB0IGNodW5rIGNvbnRhaW5zOgorICAgICAqICBjb250ZW50OiB0aGUgdGV4dCBjb250ZW50IChzdHJpbmcpIG9mIHRoZSBjaHVuay4KKyAgICAgKiAgc3RhcnRfbG9jYXRpb246IHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgaHRtbCBjb250ZW50IHRoYXQKKyAgICAgKiAgICBnZW5lcmF0ZXMgdGhpcyBjaHVuay4KKyAgICAgKiAgZXhwZWN0ZWRfc3RhcnRfbGluZV9udW1iZXI6IHRoZSBsaW5lIG51bWJlciB0aGF0IHRoZSB0ZXh0IGNvbnRlbnQKKyAgICAgKiAgICBnZW5lcmF0ZWQgZnJvbSB0aGlzIGNodW5rIGlzIHN1cHBvc2VkIHRvIGJlIG9uLgorICAgICAqLworICAgIGNyZWF0ZUpzQ2h1bmsoY29udGVudCwgc3RhcnRfbG9jYXRpb24sIGV4cGVjdGVkX3N0YXJ0X2xpbmVfbnVtYmVyKSB7CisgICAgICByZXR1cm4geworICAgICAgICBjb250ZW50OiBjb250ZW50LAorICAgICAgICBzdGFydF9sb2NhdGlvbjogc3RhcnRfbG9jYXRpb24sCisgICAgICAgIGV4cGVjdGVkX3N0YXJ0X2xpbmVfbnVtYmVyOiBleHBlY3RlZF9zdGFydF9saW5lX251bWJlcgorICAgICAgfTsKKyAgICB9LAorCisgICAgZ2V0TnVtTGluZXNPZlN0cmluZyhzKSB7CisgICAgICByZXR1cm4gKHMubWF0Y2goL1xuL2cpIHx8IFtdKS5sZW5ndGg7CisgICAgfSwKKworICAgIHN0YXJ0TG9jYXRpb24obm9kZSkgeworICAgICAgaWYgKCFub2RlLl9fbG9jYXRpb24pCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gbm9kZS5fX2xvY2F0aW9uLnN0YXJ0OworICAgIH0sCisKKyAgICBzdGFydExpbmVOdW1iZXIobm9kZSkgeworICAgICAgaWYgKCFub2RlLl9fbG9jYXRpb24pCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdGhpcy5nZXROdW1MaW5lc09mU3RyaW5nKAorICAgICAgICAgIHRoaXMuaHRtbF90ZXh0Xy5zdWJzdHJpbmcoMCwgbm9kZS5fX2xvY2F0aW9uLnN0YXJ0KSkgKyAxOworICAgIH0sCisKKyAgICBzdGFydExvY2F0aW9uT2ZDb250ZW50KG5vZGUpIHsKKyAgICAgIGlmICghbm9kZS5fX2xvY2F0aW9uIHx8ICFub2RlLl9fbG9jYXRpb24uc3RhcnRUYWcpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gbm9kZS5fX2xvY2F0aW9uLnN0YXJ0VGFnLmVuZDsKKyAgICB9LAorCisgICAgc3RhcnRMaW5lTnVtYmVyT2ZDb250ZW50KG5vZGUpIHsKKyAgICAgIGlmICghbm9kZS5fX2xvY2F0aW9uIHx8ICFub2RlLl9fbG9jYXRpb24uc3RhcnRUYWcpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICB2YXIgc3RhcnQgPSBub2RlLl9fbG9jYXRpb24uc3RhcnRUYWcuZW5kOworICAgICAgcmV0dXJuIHRoaXMuZ2V0TnVtTGluZXNPZlN0cmluZyh0aGlzLmh0bWxfdGV4dF8uc3Vic3RyaW5nKDAsIHN0YXJ0KSkgKyAxOworICAgIH0sCisKKyAgICBnZW5lcmF0ZUpzRnJvbUpzQ2h1bmtzKGNodW5rcykgeworICAgICAgdmFyIHJlc3VsdHMgPSBbXTsKKyAgICAgIGNodW5rcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgICAgcmV0dXJuIGEuc3RhcnRfbG9jYXRpb24gLSBiLnN0YXJ0X2xvY2F0aW9uOworICAgICAgfSk7CisgICAgICB2YXIgY3VycmVudF9udW1fbGluZXMgPSAxOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaHVua3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIG51bV9ibGFua19saW5lc190b19pbnNlcnQgPSAoCisgICAgICAgICAgICBjaHVua3NbaV0uZXhwZWN0ZWRfc3RhcnRfbGluZV9udW1iZXIgLSBjdXJyZW50X251bV9saW5lcyk7CisgICAgICAgIGlmIChudW1fYmxhbmtfbGluZXNfdG9faW5zZXJ0IDwgMCkgeworICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGdlbmVyYXRlIGpzIGNvbnRlbnQgZm9yICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua3NbaV0uY29udGVudCArICdcbi4gRXhwZWN0ZWQgdG8gYWRkICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fYmxhbmtfbGluZXNfdG9faW5zZXJ0ICsgJyBuZXcgbGluZXMuJyk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIG5ld19saW5lcyA9IG5ldyBBcnJheShudW1fYmxhbmtfbGluZXNfdG9faW5zZXJ0ICsgMSkuam9pbignXG4nKTsKKyAgICAgICAgcmVzdWx0cy5wdXNoKG5ld19saW5lcyk7CisgICAgICAgIHJlc3VsdHMucHVzaChjaHVua3NbaV0uY29udGVudCk7CisgICAgICAgIGN1cnJlbnRfbnVtX2xpbmVzICs9ICgKKyAgICAgICAgICAgIG51bV9ibGFua19saW5lc190b19pbnNlcnQgKworICAgICAgICAgICAgdGhpcy5nZXROdW1MaW5lc09mU3RyaW5nKGNodW5rc1tpXS5jb250ZW50KSk7CisgICAgICB9CisgICAgICByZXR1cm4gcmVzdWx0cy5qb2luKCcnKTsKKyAgICB9LAorCisgICAgZ2VuZXJhdGVKc0NodW5rc0ZvckxpbmtOb2RlOiBmdW5jdGlvbihub2RlKSB7CisgICAgICB2YXIgaXNfaW1wb3J0X2xpbmsgPSBmYWxzZTsKKyAgICAgIHZhciBocmVmID0gJyc7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKG5vZGUuYXR0cnNbaV0ubmFtZSA9PT0gJ3JlbCcgJiYgbm9kZS5hdHRyc1tpXS52YWx1ZSA9PT0gJ2ltcG9ydCcpCisgICAgICAgICAgaXNfaW1wb3J0X2xpbmsgPSB0cnVlOworICAgICAgICBpZiAobm9kZS5hdHRyc1tpXS5uYW1lID09PSAnaHJlZicpCisgICAgICAgICAgaHJlZiA9IG5vZGUuYXR0cnNbaV0udmFsdWU7CisgICAgICB9CisgICAgICBpZiAoIWlzX2ltcG9ydF9saW5rKQorICAgICAgICByZXR1cm4gW107CisgICAgICB2YXIgY2h1bmsgPSB0aGlzLmNyZWF0ZUpzQ2h1bmsoCisgICAgICAgICAgJ2xvYWRIVE1MKFwnJyArIGhyZWYgKyAnXCcpOycsCisgICAgICAgICAgdGhpcy5zdGFydExvY2F0aW9uKG5vZGUpLAorICAgICAgICAgIHRoaXMuc3RhcnRMaW5lTnVtYmVyKG5vZGUpKTsKKyAgICAgIHJldHVybiBbY2h1bmtdOworICAgIH0sCisKKyAgICBnZW5lcmF0ZUpzQ2h1bmtzRm9yU2NyaXB0VGFnKG5vZGUpIHsKKyAgICAgIHZhciBzcmM7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKG5vZGUuYXR0cnNbaV0ubmFtZSA9PT0gJ3NyYycpCisgICAgICAgICAgc3JjID0gbm9kZS5hdHRyc1tpXS52YWx1ZTsKKyAgICAgIH0KKyAgICAgIGlmICghc3JjKQorICAgICAgICByZXR1cm4gW107CisgICAgICB2YXIgY2h1bmsgPSB0aGlzLmNyZWF0ZUpzQ2h1bmsoCisgICAgICAgICAgJ2xvYWRTY3JpcHQoXCcnICsgc3JjICsgJ1wnKTsnLAorICAgICAgICAgIHRoaXMuc3RhcnRMb2NhdGlvbihub2RlKSwKKyAgICAgICAgICB0aGlzLnN0YXJ0TGluZU51bWJlcihub2RlKSk7CisgICAgICByZXR1cm4gW2NodW5rXTsKKyAgICB9LAorCisgICAgZ2VuZXJhdGVKc0NodW5rc0ZvclNjcmlwdFRleHQobm9kZSkgeworICAgICAgdmFyIHNjcmlwdF9jb250ZW50ID0gc2VyaWFsaXplci5zZXJpYWxpemUobm9kZSk7CisgICAgICB2YXIgY2h1bmsgPSB0aGlzLmNyZWF0ZUpzQ2h1bmsoCisgICAgICAgICAgc2NyaXB0X2NvbnRlbnQsCisgICAgICAgICAgdGhpcy5zdGFydExvY2F0aW9uT2ZDb250ZW50KG5vZGUpLAorICAgICAgICAgIHRoaXMuc3RhcnRMaW5lTnVtYmVyT2ZDb250ZW50KG5vZGUpKTsKKyAgICAgIHJldHVybiBbY2h1bmtdOworICAgIH0sCisKKyAgICBnZW5lcmF0ZUpzQ2h1bmtzRm9yU2NyaXB0Tm9kZTogZnVuY3Rpb24obm9kZSkgeworICAgICAgdmFyIHRhZ0NodW5rcyA9IHRoaXMuZ2VuZXJhdGVKc0NodW5rc0ZvclNjcmlwdFRhZyhub2RlKTsKKyAgICAgIHZhciB0ZXh0Q2h1bmtzID0gdGhpcy5nZW5lcmF0ZUpzQ2h1bmtzRm9yU2NyaXB0VGV4dChub2RlKTsKKyAgICAgIHJldHVybiB0YWdDaHVua3MuY29uY2F0KHRleHRDaHVua3MpOworICAgIH0sCisKKyAgICBnZW5lcmF0ZUpzQ2h1bmtzRm9yTm9kZTogZnVuY3Rpb24obm9kZSkgeworICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICdsaW5rJykKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVKc0NodW5rc0ZvckxpbmtOb2RlKG5vZGUpOworICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICdzY3JpcHQnKQorICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZUpzQ2h1bmtzRm9yU2NyaXB0Tm9kZShub2RlKTsKKyAgICAgIHJldHVybiBbXTsKKyAgICB9LAorCisgICAgZ2VuZXJhdGVKc0Zyb21IVE1MOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBkb2N1bWVudCA9IHBhcnNlci5wYXJzZSh0aGlzLmh0bWxfdGV4dF8pOworICAgICAgdmFyIG5vZGVzX2xpc3QgPSBkb2N1bWVudC5jaGlsZE5vZGVzOworICAgICAgdmFyIGdlbmVyYXRlZF9qc19jaHVua3MgPSBbXTsKKyAgICAgIHdoaWxlIChub2Rlc19saXN0Lmxlbmd0aCkgeworICAgICAgICB2YXIgbm9kZSA9IG5vZGVzX2xpc3QucG9wKCk7CisgICAgICAgIHZhciBjaHVua3MgPSB0aGlzLmdlbmVyYXRlSnNDaHVua3NGb3JOb2RlKG5vZGUpOworICAgICAgICBnZW5lcmF0ZWRfanNfY2h1bmtzLnB1c2guYXBwbHkoZ2VuZXJhdGVkX2pzX2NodW5rcywgY2h1bmtzKTsKKyAgICAgICAgaWYgKG5vZGUuY2hpbGROb2RlcykKKyAgICAgICAgICBub2Rlc19saXN0LnB1c2guYXBwbHkobm9kZXNfbGlzdCwgbm9kZS5jaGlsZE5vZGVzKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlSnNGcm9tSnNDaHVua3MoZ2VuZXJhdGVkX2pzX2NodW5rcyk7CisgICAgfQorICB9OworCisgIGdsb2JhbC5nZW5lcmF0ZUpzRnJvbUhUTUwgPSBmdW5jdGlvbihodG1sX3RleHQpIHsKKyAgICByZXR1cm4gbmV3IEpzR2VuZXJhdG9yKGh0bWxfdGV4dCkuZ2VuZXJhdGVKc0Zyb21IVE1MKCk7CisgIH0KK30pKHRoaXMpOwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3BhdGhfdXRpbHMuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vcGF0aF91dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjBiMGRmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3BhdGhfdXRpbHMuanMKQEAgLTAsMCArMSwxMTAgQEAKKy8vIENvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRvb2xzIGZvciB3b3JraW5nIHdpdGggcGF0aHMsIG5lZWRlZCBmb3IgZDgKKyAqIGJvb3RzdHJhcHBpbmcgcHJvY2Vzcy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcHVyZSBqcyBpbnN0ZWFkIG9mIGFuIEhUTUwgaW1wb3J0cyBtb2R1bGUsCisgKiBhbmQgd3JpdGVzIHRvIHRoZSBnbG9iYWwgbmFtZXNwYWNlIHNvIHRoYXQgaXQgY2FuCisgKiBiZSBpbmNsdWRlZCBkaXJlY3RseSBieSB0aGUgYm9vc3RyYXAuCisgKi8KKyhmdW5jdGlvbihnbG9iYWwpIHsKKworICAvKioKKyAgICogIENsYXNzIHByb3ZpZGVzIGNvbW1vbiBvcGVyYXRpb25zIG9uIHBhdGhuYW1lcy4KKyAgICogIEBwYXJhbSB7b2JqZWN0fSBvc19jbGllbnQgQW4gb2JqZWN0IHRoYXQgZGVmaW5lczoKKyAgICogICAgY3VycmVudFdvcmtpbmdEaXJlY3Rvcnk6IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IG9mIHByb2dyYW0uCisgICAqICAgIGV4aXN0czogYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgc3RyaW5nIGZpbGVOYW1lIGFuZCByZXR1cm5zIHdoZXRoZXIgdGhlCisgICAqICAgIGZpbGUgd2l0aCBuYW1lIGV4aXN0cy4KKyAgICoKKyAgICogIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZ2xvYmFsLlBhdGhVdGlscyA9IGZ1bmN0aW9uKG9zX2NsaWVudCkgeworICAgIHRoaXMub3NfY2xpZW50XyA9IG9zX2NsaWVudDsKKyAgICB2YXIgcGF0aCA9IHRoaXMub3NfY2xpZW50Xy5jdXJyZW50V29ya2luZ0RpcmVjdG9yeTsKKyAgICBpZiAoIXRoaXMuaXNBYnMocGF0aCkpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjdXJyZW50IGRpcmVjdG9yeTogJyArIHBhdGggKyAnLiAnICsKKyAgICAgICAgICAnSXQgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLicpOworICAgIH0KKyAgfQorCisgIGdsb2JhbC5QYXRoVXRpbHMucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIGdldCBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpIHsKKyAgICAgIHJldHVybiB0aGlzLm9zX2NsaWVudF8uY3VycmVudFdvcmtpbmdEaXJlY3Rvcnk7CisgICAgfSwKKworICAgIGV4aXN0czogZnVuY3Rpb24oZmlsZU5hbWUpIHsKKyAgICAgIHJldHVybiB0aGlzLm9zX2NsaWVudF8uZXhpc3RzKHRoaXMuYWJzUGF0aChmaWxlTmFtZSkpOworICAgIH0sCisKKyAgICBpc0FiczogZnVuY3Rpb24oYSkgeworICAgICAgcmV0dXJuIGFbMF0gPT09ICcvJzsKKyAgICB9LAorCisgICAgam9pbjogZnVuY3Rpb24oYSwgYikgeworICAgICAgaWYgKHRoaXMuaXNBYnMoYikpCisgICAgICAgIHJldHVybiBiOworCisgICAgICB2YXIgcmVzID0gYTsKKyAgICAgIGlmICghYS5lbmRzV2l0aCgnLycpKQorICAgICAgICByZXMgKz0gJy8nOworCisgICAgICByZXMgKz0gYjsKKyAgICAgIHJldHVybiByZXM7CisgICAgfSwKKworICAgIG5vcm1QYXRoOiBmdW5jdGlvbihhKSB7CisgICAgICBpZiAoYS5lbmRzV2l0aCgnLycpKQorICAgICAgICByZXR1cm4gYS5zdWJzdHJpbmcoMCwgYS5sZW5ndGggLSAxKTsKKyAgICAgIHJldHVybiBhOworICAgIH0sCisKKyAgICBhYnNQYXRoOiBmdW5jdGlvbihhKSB7CisgICAgICBpZiAodGhpcy5pc0FicyhhKSkKKyAgICAgICAgcmV0dXJuIGE7CisKKyAgICAgIGlmIChhLnN0YXJ0c1dpdGgoJy4vJykpCisgICAgICAgIGEgPSBhLnN1YnN0cmluZygyKTsKKyAgICAgIHZhciByZXMgPSB0aGlzLmpvaW4odGhpcy5jdXJyZW50V29ya2luZ0RpcmVjdG9yeSwgYSk7CisgICAgICByZXR1cm4gdGhpcy5ub3JtUGF0aChyZXMpOworICAgIH0sCisKKyAgICByZWxQYXRoOiBmdW5jdGlvbihhLCBvcHRfcmVsVG8pIHsKKyAgICAgIHZhciBhID0gdGhpcy5hYnNQYXRoKGEpOworCisgICAgICB2YXIgcmVsVG87CisgICAgICBpZiAob3B0X3JlbFRvKSB7CisgICAgICAgIHJlbFRvID0gdGhpcy5ub3JtUGF0aCh0aGlzLmFic1BhdGgob3B0X3JlbFRvKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICByZWxUbyA9IHRoaXMuY3VycmVudFdvcmtpbmdEaXJlY3Rvcnk7CisgICAgICB9CisKKyAgICAgIGlmIChyZWxUby5lbmRzV2l0aCgnLycpKQorICAgICAgICByZWxUbyA9IHJlbFRvLnN1YnN0cmluZygwLCByZWxUby5sZW5ndGggLSAxKTsKKworICAgICAgaWYgKCFhLnN0YXJ0c1dpdGgocmVsVG8pKSB7CisgICAgICAgIHZhciBwYXJ0cyA9IHJlbFRvLnN1YnN0cmluZygxKS5zcGxpdCgnLycpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgIHBhcnRzW2ldID0gJy4uJzsKKyAgICAgICAgdmFyIHByZWZpeCA9IHBhcnRzLmpvaW4oJy8nKTsKKworICAgICAgICB2YXIgc3VmZml4OworICAgICAgICBpZiAoYS5lbmRzV2l0aCgnLycpKQorICAgICAgICAgIHN1ZmZpeCA9IGEuc3Vic3RyaW5nKDAsIGEubGVuZ3RoIC0gMSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBzdWZmaXggPSBhOworICAgICAgICByZXR1cm4gcHJlZml4ICsgc3VmZml4OworICAgICAgfQorCisgICAgICB2YXIgcmVzdCA9IGEuc3Vic3RyaW5nKHJlbFRvLmxlbmd0aCArIDEpOworICAgICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm4gJy4nOworICAgICAgcmV0dXJuIHRoaXMubm9ybVBhdGgocmVzdCk7CisgICAgfQorICB9OworfSkodGhpcyk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vcGF0aF91dGlsc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vcGF0aF91dGlsc190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA0MzdhYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi9wYXRoX3V0aWxzX3Rlc3QuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzwhLS0KK1RoaXMgZmlsZSBkb2VzIG5vdCB1c2UgdGhlIHN0YW5kYXJkIHRlc3QgcnVubmVyIGJlY2F1c2UgaXQgZXhpc3RzCitvdXRzaWRlIHRoZSB0cmFjaW5nIGNvZGViYXNlLgorLS0+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InBhdGhfdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJwYXRoX3V0aWxzX3Rlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICNyZXN1bHQgeworICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBpZD0icmVzdWx0Ij4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICd1c2Ugc3RyaWN0JzsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXN1bHQnKTsKKyAgICAgIHRyeSB7CisgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdvayc7CisgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGRpdi50ZXh0Q29udGVudCA9IGUubWVzc2FnZSArICdcbicgKyBlLnN0YWNrOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgfSk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi9wYXRoX3V0aWxzX3Rlc3QuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vcGF0aF91dGlsc190ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmOGEzYzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vcGF0aF91dGlsc190ZXN0LmpzCkBAIC0wLDAgKzEsNTkgQEAKKy8vIENvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyd1c2Ugc3RyaWN0JzsKKwordmFyIGFzc2VydCA9IHsKKyAgZXF1YWw6IGZ1bmN0aW9uKGZpcnN0LCBzZWNvbmQpIHsKKyAgICBpZiAoZmlyc3QgIT09IHNlY29uZCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NlcnRpb24gZXJyb3I6ICcgKyBKU09OLnN0cmluZ2lmeShmaXJzdCkgKworICAgICAgICAgICcgIT09ICcgKyBKU09OLnN0cmluZ2lmeShzZWNvbmQpKTsKKyAgICB9CisgIH0KK307CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworCisgIHZhciB0ZXN0X29zX2NsaWVudCA9IHsKKyAgICBjdXJyZW50V29ya2luZ0RpcmVjdG9yeTogJy9hL2InLAorICAgIGV4aXN0czogZnVuY3Rpb24oZmlsZU5hbWUpIHsKKyAgICAgIHJldHVybiBmaWxlTmFtZSA9PT0gJy9hL2IvZmlsZV9leGlzdHMuaHRtbCc7CisgICAgfQorICB9OworCisgIHZhciBwYXRoX3V0aWxzID0gbmV3IFBhdGhVdGlscyh0ZXN0X29zX2NsaWVudCk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLmpvaW4oJ2EnLCAnYicpLCAnYS9iJyk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLmpvaW4oJy9hJywgJ2InKSwgJy9hL2InKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMuam9pbignL2EvJywgJ2IvJyksICcvYS9iLycpOworICBhc3NlcnQuZXF1YWwocGF0aF91dGlscy5qb2luKCcvYScsICcvYi8nKSwgJy9iLycpOworICBhc3NlcnQuZXF1YWwocGF0aF91dGlscy5qb2luKCcvYScsICcuL2IvJyksICcvYS8uL2IvJyk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLmpvaW4oJy9hLycsICcuL2IvJyksICcvYS8uL2IvJyk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLmpvaW4oJy4uLycsICdiJyksICcuLi9iJyk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLmpvaW4oJy4uLycsICdiLycpLCAnLi4vYi8nKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMuam9pbignYScsICdiJyksICdhL2InKTsKKworICBhc3NlcnQuZXF1YWwocGF0aF91dGlscy5hYnNQYXRoKCdjJyksICcvYS9iL2MnKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMuYWJzUGF0aCgnLi9jJyksICcvYS9iL2MnKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMuYWJzUGF0aCgnLi9jL2QnKSwgJy9hL2IvYy9kJyk7CisKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMucmVsUGF0aCgnL2EvYi9jJywgJy9hL2InKSwgJ2MnKTsKKworICBhc3NlcnQuZXF1YWwocGF0aF91dGlscy5yZWxQYXRoKCcvYS9iL2MvJywgJy9hL2IvYy8nKSwgJy4nKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMucmVsUGF0aCgnL2EvYi9jJywgJy9hL2IvYy8nKSwgJy4nKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMucmVsUGF0aCgnL2EvYi9jLycsICcvYS9iL2MnKSwgJy4nKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMucmVsUGF0aCgnL2EvYi9jJywgJy9hL2IvYycpLCAnLicpOworCisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLnJlbFBhdGgoJy9hL2IvYycsICcvYScpLCAnYi9jJyk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLnJlbFBhdGgoJy9hL2IvYycsICcvYS8nKSwgJ2IvYycpOworCisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLnJlbFBhdGgoJy9hL2IvYycsICcvYi9jLycpLCAnLi4vLi4vYS9iL2MnKTsKKyAgYXNzZXJ0LmVxdWFsKHBhdGhfdXRpbHMucmVsUGF0aCgnL2EvYi9jJywgJy9iL2MnKSwgJy4uLy4uL2EvYi9jJyk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLnJlbFBhdGgoJy9hL2IvYy8nLCAnL2IvYy8nKSwgJy4uLy4uL2EvYi9jJyk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLnJlbFBhdGgoJy9hL2IvYy8nLCAnL2IvYycpLCAnLi4vLi4vYS9iL2MnKTsKKworCisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLmV4aXN0cygnL2EvYi9maWxlX2V4aXN0cy5odG1sJyksIHRydWUpOworICBhc3NlcnQuZXF1YWwocGF0aF91dGlscy5leGlzdHMoJ2ZpbGVfZXhpc3RzLmh0bWwnKSwgdHJ1ZSk7CisgIGFzc2VydC5lcXVhbChwYXRoX3V0aWxzLmV4aXN0cygnLi9maWxlX2V4aXN0cy5odG1sJyksIHRydWUpOworICBhc3NlcnQuZXF1YWwocGF0aF91dGlscy5leGlzdHMoJy9hL2ZpbGVfZG9lc19ub3RfZXhpc3RzLmh0bWwnKSwgZmFsc2UpOworfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9iYXIuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2Jhci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGIzZDhiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9iYXIuanMKQEAgLTAsMCArMSw0IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorcHJpbnQoJ2Jhci5qcyBpcyBsb2FkZWQnKTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYnVpbGQvdGVzdF9kYXRhL2R1bW15X3Rlc3RfZmlsZSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvZHVtbXlfdGVzdF9maWxlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2J1aWxkL3Rlc3RfZGF0YS9kdW1teV90ZXN0X2ZpbGUKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvZHVtbXlfdGVzdF9maWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2Vycm9yLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmRhZTdkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9lcnJvci5qcwpAQCAtMCwwICsxLDkgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCit2YXIgZ2xvYmFsID0gdGhpczsKK2Z1bmN0aW9uIG1heWJlUmFpc2VFeGNlcHRpb24oKSB7CisgIGlmIChnbG9iYWwudGhyb3dfZXJyb3IpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rocm93IEVSUk9SJyk7CisgIH0KK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvZXJyb3Jfc3RhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9lcnJvcl9zdGFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVkZjg5YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvZXJyb3Jfc3RhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL2Zvby5odG1sJz4KKworPHN0eWxlPgorLmRpdiB7CisgIGZvbnQtc2l6ZTogMy4xNDE1ZW07Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIHByaW50KCdGaWxlIGxvYWRfc2ltcGxlX2h0bWwuaHRtbCBpcyBsb2FkZWQnKTsKKyAgdmFyIHggPSAxOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIvZXJyb3Jfc3RhY2tfdGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxkaXY+CisgIFRoaXMgaXMgbG9hZF9zaW1wbGUuaHRtbC5odG1sCis8L2Rpdj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvZXJyb3Jfc3RhY2tfdGVzdC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvZXJyb3Jfc3RhY2tfdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjg5ZTA3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9lcnJvcl9zdGFja190ZXN0LmpzCkBAIC0wLDAgKzEsMTQgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKworLyoqCisgKiBTZXQgZ2xvYmFsIHRocm93X2Vycm9yIHRvIHRydWUuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdG8gdGhyb3cKKyAqIEVycm9yIGluIGVycm9yLmpzIGZpbGUuCisgKi8KK3RoaXMudGhyb3dfZXJyb3IgPSB0cnVlOworCisKK2xvYWRIVE1MKCcvbG9hZF9zaW1wbGVfaHRtbC5odG1sJyk7CittYXliZVJhaXNlRXhjZXB0aW9uSW5Gb28oKTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvZm9vLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2Zvby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5MzI4NjQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2Zvby5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8c3R5bGU+CisuZGl2IHsKKyAgZm9udC1zaXplOiAzLjE0MTVlbTsKK30KKzwvc3R5bGU+CisKKzxkaXY+CisgIFRoaXMgaXMgZm9vLmh0bWwKKzwvZGl2PgorCis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIHZhciB4ID0gMTsKKyAgbG9hZFNjcmlwdCgnL2Vycm9yLmpzJyk7CisgIHByaW50KCdGaWxlIGZvby5odG1sIGlzIGxvYWRlZCcpOworICBwcmludCgneCA9ICcgKyB4KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIHZhciB1ID0gMTAwOworICAoZnVuY3Rpb24oZ2xvYmFsKSB7CisgICAgLyoqCisgICAgICogRGVmaW5lIHRoaXMgbWV0aG9kIG9mIGhlYWRsZXNzX2dsb2JhbCBzbyB0b3AgbGV2ZWwgZmlsZSBjYW4gY2FsbCB0aGlzLgorICAgICAqLworICAgIGdsb2JhbC5tYXliZVJhaXNlRXhjZXB0aW9uSW5Gb28gPSBmdW5jdGlvbigpIHsKKyAgICAgIG1heWJlUmFpc2VFeGNlcHRpb24oKTsKKyAgICB9OworICB9KSh0aGlzKTsKKyAgcHJpbnQoJ0ZpbGUgZm9vLmh0bWxcJ3Mgc2Vjb25kIHNjcmlwdCBpcyBsb2FkZWQnKTsKKyAgeCA9IHggKyAxOworICBwcmludCgneCA9ICcgKyB4KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2xvYWRfZXJyb3IuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvbG9hZF9lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0OTJmOGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2xvYWRfZXJyb3IuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworCis8c3R5bGU+CisuZGl2IHsKKyAgZm9udC1zaXplOiAzLjE0MTVlbTsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQgc3JjPSIvYmFyLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworICBwcmludCgnRmlsZSBsb2FkX2Vycm9yLmh0bWwgaXMgbG9hZGVkJyk7CisgIHZhciB4ID0gMTsKKzwvc2NyaXB0PgorCis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL2xvYWRfZXJyb3JfMi5odG1sJz4KKworPGRpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX2Vycm9yXzIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvbG9hZF9lcnJvcl8yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU2MzBkZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvbG9hZF9lcnJvcl8yLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxzdHlsZT4KKy5kaXYgeworICBmb250LXNpemU6IDMuMTQxNWVtOworfQorPC9zdHlsZT4KKworPHNjcmlwdCBzcmM9Ii9iYXIuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIHByaW50KCdGaWxlIGxvYWRfZXJyb3IyLmh0bWwgaXMgbG9hZGVkJyk7CisKKyAgLy8gVGhlIGltcG9ydCBiZWxvdyBzaG91bGQgcmFpc2UgYSBsb2FkaW5nIGV4Y2VwdGlvbiBmb3IgZDguCisgIGxvYWRIVE1MKCcvZG9lc19ub3RfZXhpc3QuaHRtbCcpOworPC9zY3JpcHQ+CisKKworPGRpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX2pzX2Vycm9yLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2xvYWRfanNfZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGFmMjIyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX2pzX2Vycm9yLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKworPHN0eWxlPgorLmRpdiB7CisgIGZvbnQtc2l6ZTogMy4xNDE1ZW07Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iL2Jhci5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgdmFyIHggPSAxOworPC9zY3JpcHQ+CisKKzxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvbG9hZF9qc19lcnJvcl8yLmh0bWwnPgorCis8ZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2xvYWRfanNfZXJyb3JfMi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX2pzX2Vycm9yXzIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjk3NGMwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX2pzX2Vycm9yXzIuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPHN0eWxlPgorLmRpdiB7CisgIGZvbnQtc2l6ZTogMy4xNDE1ZW07Cit9Cis8L3N0eWxlPgorCisKKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgcHJpbnQoJ0ZpbGUgbG9hZF9lcnJvcjIuaHRtbCBpcyBsb2FkZWQnKTsKKworICAvLyBUaGUgc2NyaXB0IHNyYyBiZWxvdyBzaG91bGQgcmFpc2UgYSBsb2FkaW5nIGV4Y2VwdGlvbiBmb3IgZDguCisgIGxvYWRTY3JpcHQoJy9kb2VzX25vdF9leGlzdC5qcycpOworPC9zY3JpcHQ+CisKKzxkaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvbG9hZF9zaW1wbGVfaHRtbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX3NpbXBsZV9odG1sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdlYTUwOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvbG9hZF9zaW1wbGVfaHRtbC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL2Zvby5odG1sJz4KKworPHN0eWxlPgorLmRpdiB7CisgIGZvbnQtc2l6ZTogMy4xNDE1ZW07Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iL2Jhci5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgcHJpbnQoJ0ZpbGUgbG9hZF9zaW1wbGVfaHRtbC5odG1sIGlzIGxvYWRlZCcpOworICB2YXIgeCA9IDE7Cis8L3NjcmlwdD4KKworPGRpdj4KKyAgVGhpcyBpcyBsb2FkX3NpbXBsZS5odG1sLmh0bWwKKzwvZGl2PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX3NpbXBsZV9odG1sLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX3NpbXBsZV9odG1sLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMmI5YmEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2xvYWRfc2ltcGxlX2h0bWwuanMKQEAgLTAsMCArMSw1IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorbG9hZEhUTUwoJy9mb28uaHRtbCcpOworcHJpbnQoJ2xvYWRfc2ltcGxlX2h0bWwuanMgaXMgbG9hZGVkJyk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL2xvYWRfc2ltcGxlX2pzLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX3NpbXBsZV9qcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjYyZjkwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9sb2FkX3NpbXBsZV9qcy5qcwpAQCAtMCwwICsxLDUgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCitsb2FkU2NyaXB0KCcvYmFyLmpzJyk7CitwcmludCgnbG9hZF9zaW1wbGVfanMuanMgaXMgbG9hZGVkJyk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3ByaW50X2ZpbGVfY29udGVudC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvcHJpbnRfZmlsZV9jb250ZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyYTczODYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3ByaW50X2ZpbGVfY29udGVudC5qcwpAQCAtMCwwICsxLDExIEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpZiAoc3lzLmFyZ3YubGVuZ3RoICE9IDIpIHsKKyAgdGhyb3cgJ2FyZ3YgbXVzdCBiZSBhIHNpbmdsZSBmaWxlIG5hbWUnOworfQorCitmaWxlX3BhdGggPSBzeXMuYXJndlsxXTsKK2ZpbGVfY29udGVudCA9IHJlYWQoZmlsZV9wYXRoKTsKK3ByaW50KCdDb250ZW50IG9mIGZpbGUgJyArIGZpbGVfcGF0aCArICcgaXMgJyArIGZpbGVfY29udGVudCk7CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3F1aXRfMF90ZXN0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9xdWl0XzBfdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTNhNTUyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9xdWl0XzBfdGVzdC5qcwpAQCAtMCwwICsxLDQgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCitxdWl0KDApOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvcXVpdF8xX3Rlc3QuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3F1aXRfMV90ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZGQ4MWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3F1aXRfMV90ZXN0LmpzCkBAIC0wLDAgKzEsNCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KK3F1aXQoMSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9xdWl0XzI3NF90ZXN0LmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdGhpcmRfcGFydHkvdmlubi92aW5uL3Rlc3RfZGF0YS9xdWl0XzI3NF90ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZTI2MTAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3F1aXRfMjc0X3Rlc3QuanMKQEAgLTAsMCArMSw0IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorcXVpdCgtMjc0KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3F1aXRfNDJfdGVzdC5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvcXVpdF80Ml90ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NDg3OWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3F1aXRfNDJfdGVzdC5qcwpAQCAtMCwwICsxLDQgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCitxdWl0KDQyKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3NpbXBsZS5qcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RoaXJkX3BhcnR5L3Zpbm4vdmlubi90ZXN0X2RhdGEvc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNTI3Y2UKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90aGlyZF9wYXJ0eS92aW5uL3Zpbm4vdGVzdF9kYXRhL3NpbXBsZS5qcwpAQCAtMCwwICsxLDQgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCitwcmludCgnSGVsbG8gVzBybGQgZnJvbSBzaW1wbGUuanMnKTsKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNlMmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjZTJodG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhN2Q5MDIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjZTJodG1sCkBAIC0wLDAgKzEsMTIgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IHN5cworaW1wb3J0IG9zCisKK2Zyb20gYnVpbGQgaW1wb3J0IHRyYWNlMmh0bWwKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgc3lzLmV4aXQodHJhY2UyaHRtbC5NYWluKHN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjZV92aWV3ZXIuZ3lwIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2Vfdmlld2VyLmd5cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGIzM2IxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2Vfdmlld2VyLmd5cApAQCAtMCwwICsxLDMwIEBACisjIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCit7CisgICdpbmNsdWRlcyc6IFsKKyAgICAndHJhY2Vfdmlld2VyLmd5cGknLAorICBdLAorICAndGFyZ2V0cyc6IFsKKyAgICB7CisgICAgICAndGFyZ2V0X25hbWUnOiAnZ2VuZXJhdGVfYWJvdXRfdHJhY2luZycsCisgICAgICAndHlwZSc6ICdub25lJywKKyAgICAgICdhY3Rpb25zJzogWworICAgICAgICB7CisgICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ2dlbmVyYXRlX2Fib3V0X3RyYWNpbmcnLAorICAgICAgICAgICdzY3JpcHRfbmFtZSc6ICdidWlsZC9nZW5lcmF0ZV9hYm91dF90cmFjaW5nX2NvbnRlbnRzJywKKyAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAgJzxAKHRyYWNpbmdfZmlsZXMpJywKKyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRzJzogWworICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL2NvbnRlbnQvYnJvd3Nlci90cmFjaW5nL2Fib3V0X3RyYWNpbmcuanMnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL2NvbnRlbnQvYnJvd3Nlci90cmFjaW5nL2Fib3V0X3RyYWNpbmcuaHRtbCcKKyAgICAgICAgICBdLAorICAgICAgICAgICdhY3Rpb24nOiBbJ3B5dGhvbicsICc8QChfc2NyaXB0X25hbWUpJywKKyAgICAgICAgICAgICAgICAgICAgICctLW91dGRpcicsICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS9jb250ZW50L2Jyb3dzZXIvdHJhY2luZyddCisgICAgICAgIH0KKyAgICAgIF0KKyAgICB9CisgIF0KK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNlX3ZpZXdlci5neXBpIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2Vfdmlld2VyLmd5cGkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUwZDM3YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNlX3ZpZXdlci5neXBpCkBAIC0wLDAgKzEsNDMzIEBACisjIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCit7CisgICd2YXJpYWJsZXMnOiB7CisgICAgJ3RyYWNpbmdfY3NzX2ZpbGVzJzogWworICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZS5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9saW5lX2NoYXJ0LmNzcycsCisgICAgICAndHJhY2luZy91aS9iYXNlL2xpc3Rfdmlldy5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9waWVfY2hhcnQuY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2Uvc29ydGFibGVfdGFibGUuY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2Uvc3VuYnVyc3RfY2hhcnQuY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL2NvbW1vbi5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdF92aWV3LmNzcycsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3BpY2tlci5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF92aWV3LmNzcycsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3LmNzcycsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3LmNzcycsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlldy5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdmlldy5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy9oZWFwX2luc3RhbmNlX3RyYWNrLmNzcycsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX3NuYXBzaG90X3ZpZXcuY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3NfdHJhY2tfYmFzZS5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3JlY3RfdHJhY2suY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9ydWxlcl90cmFjay5jc3MnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3NwYWNpbmdfdHJhY2suY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy90aHJlYWRfdHJhY2suY3NzJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy90cmFjay5jc3MnLAorICAgIF0sCisgICAgJ3RyYWNpbmdfanNfaHRtbF9maWxlcyc6IFsKKyAgICAgICd0cmFjaW5nL2Jhc2UvYmFzZS5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvYmFzZTY0Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvYmFzZS9iYm94Mi5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvY2F0ZWdvcnlfdXRpbC5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvY29sb3IuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL2V2ZW50Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvYmFzZS9ldmVudF90YXJnZXQuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X2Jhc2UuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV9iYXNpYy5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X3R5cGVfYmFzZWQuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL2d1aWQuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL2ludGVydmFsX3RyZWUuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvYmFzZS9tYXRoLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvYmFzZS9xdWFkLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvYmFzZS9yYWYuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL3JhbmdlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvYmFzZS9yYW5nZV91dGlscy5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvcmVjdC5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2Uvc2V0dGluZ3MuaHRtbCcsCisgICAgICAndHJhY2luZy9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2Uvc3RhdGlzdGljcy5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvdGFzay5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZS5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlcy5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvdW5pdHMvdGltZS5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sJywKKyAgICAgICd0cmFjaW5nL2Jhc2UvdXRpbHMuaHRtbCcsCisgICAgICAndHJhY2luZy9jb3JlL2F1ZGl0b3IuaHRtbCcsCisgICAgICAndHJhY2luZy9jb3JlL2JydXNoaW5nX3N0YXRlX2NvbnRyb2xsZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9jb3JlL2NvbnN0YW50cy5odG1sJywKKyAgICAgICd0cmFjaW5nL2NvcmUvZmlsdGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvY29yZS9zY3JpcHRpbmdfY29udHJvbGxlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2NvcmUvc2NyaXB0aW5nX29iamVjdC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXBwLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9hdWRpdG9yLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9tb2RlbF9oZWxwZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX3N1cmZhY2VfZmxpbmdlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvY2MuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2NvbnN0YW50cy5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvZGVidWdfY29sb3JzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvaW5wdXRfbGF0ZW5jeV9hc3luY19zbGljZS5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfaW1wbC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGwuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaW1wbC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9hc19pbWFnZV9kYXRhLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcmVnaW9uLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9yZW5kZXJfcGFzcy5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvdGlsZS5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV9jb3ZlcmFnZV9yZWN0Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy91dGlsLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYXVkaXRvci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX2Jyb3dzZXJfaGVscGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jaHJvbWVfbW9kZWxfaGVscGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jaHJvbWVfcHJvY2Vzc19oZWxwZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9yZW5kZXJlcl9oZWxwZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvY2hyb21lL2dwdS9ncHVfYXN5bmNfc2xpY2UuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZS5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWUvbGF5b3V0X29iamVjdC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9jaHJvbWVfY29uZmlnLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2Z1bGxfY29uZmlnLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2JhdHRvcl9pbXBvcnRlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldHdfaW1wb3J0ZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L2V2ZW50dHJhY2VfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy9wYXJzZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L3Byb2Nlc3NfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy90aHJlYWRfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2d6aXBfaW1wb3J0ZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvanN6aXAuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9hbmRyb2lkX3BhcnNlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2JpbmRlcl9wYXJzZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9idXNfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY2xvY2tfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9kaXNrX3BhcnNlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2RybV9wYXJzZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9leHlub3NfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZ2VzdHVyZV9wYXJzZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pOTE1X3BhcnNlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2lycV9wYXJzZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9rZnVuY19wYXJzZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tYWxpX3BhcnNlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL21lbXJlY2xhaW1fcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcG93ZXJfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcmVndWxhdG9yX3BhcnNlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3NjaGVkX3BhcnNlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3N5bmNfcGFyc2VyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvd29ya3F1ZXVlX3BhcnNlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci90cmFjZTJodG1sX2ltcG9ydGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3Y4L2NvZGVtYXAuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdjgvbG9nX3JlYWRlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9pbXBvcnRlci92OC9zcGxheXRyZWUuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdjgvdjhfbG9nX2ltcG9ydGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3ppcF9pbXBvcnRlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9sZWFuX2NvbmZpZy5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9uZXQvbmV0Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL25ldC9uZXRfYXN5bmNfc2xpY2UuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvcmFpbC9hbmltYXRpb25faW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3JhaWwvaWRsZV9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvcmFpbC9sb2FkX2ludGVyYWN0aW9uX3JlY29yZC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9yYWlsL3Byb3RvX2lyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3JhaWwvcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlci5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvcmFpbC9yZXNwb25zZV9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy9zeXN0cmFjZV9jb25maWcuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvdGNtYWxsb2MvaGVhcC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy90cXVlcnkvY29udGV4dC5odG1sJywKKyAgICAgICd0cmFjaW5nL2V4dHJhcy90cXVlcnkvZmlsdGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfYWxsX29mLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfYW55X29mLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2FuY2VzdG9yLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2R1cmF0aW9uLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX3RpdGxlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaXNfdG9wX2xldmVsLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvZXh0cmFzL3RxdWVyeS90cXVlcnkuaHRtbCcsCisgICAgICAndHJhY2luZy9leHRyYXMvdnN5bmMvdnN5bmNfYXVkaXRvci5odG1sJywKKyAgICAgICd0cmFjaW5nL2ltcG9ydGVyL2VtcHR5X2ltcG9ydGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvaW1wb3J0ZXIvaW1wb3J0ZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9pbXBvcnRlci9zaW1wbGVfbGluZV9yZWFkZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9hbGVydC5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL2Fubm90YXRpb24uaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9hc3luY19zbGljZS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL2FzeW5jX3NsaWNlX2dyb3VwLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvYXR0cmlidXRlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvY29tbWVudF9ib3hfYW5ub3RhdGlvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL2NvbXBvdW5kX2V2ZW50X3NlbGVjdGlvbl9zdGF0ZS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL2NvbnRhaW5lcl9tZW1vcnlfZHVtcC5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL2NvdW50ZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9jb3VudGVyX3NhbXBsZS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvY3B1Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvY3B1X3NsaWNlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvZGV2aWNlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvZXZlbnQuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9ldmVudF9pbmZvLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvZXZlbnRfcmVnaXN0cnkuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9ldmVudF9zZXQuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9mbG93X2V2ZW50Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvZnJhbWUuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9pbnN0YW50X2V2ZW50Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvaXJfY292ZXJhZ2UuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9rZXJuZWwuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9sb2NhdGlvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL21vZGVsLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvbW9kZWxfaW5kaWNlcy5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL21vZGVsX3NldHRpbmdzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvb2JqZWN0X2NvbGxlY3Rpb24uaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9vYmplY3RfaW5zdGFuY2UuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9vYmplY3Rfc25hcHNob3QuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9wb3dlcl9zYW1wbGUuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9wb3dlcl9zZXJpZXMuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9wcm9jZXNzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvcHJvY2Vzc19iYXNlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3Byb3h5X3NlbGVjdGFibGVfaXRlbS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3JlY3RfYW5ub3RhdGlvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3NhbXBsZS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3NlbGVjdGFibGVfaXRlbS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3NsaWNlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvc2xpY2VfZ3JvdXAuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC9zdGFja19mcmFtZS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3RocmVhZC5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3RocmVhZF9zbGljZS5odG1sJywKKyAgICAgICd0cmFjaW5nL21vZGVsL3RocmVhZF90aW1lX3NsaWNlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCcsCisgICAgICAndHJhY2luZy9tb2RlbC94X21hcmtlcl9hbm5vdGF0aW9uLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfYWxsb2NhdG9yX2RldGFpbHNfcGFuZS5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmUuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZtX3JlZ2lvbnNfZGV0YWlsc19wYW5lLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZS5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2Zsb3dfZXZlbnRfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9mcmFtZV9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9pbnRlcmFjdGlvbl9yZWNvcmRfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9wb3dlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9vYmplY3RfaW5zdGFuY2Vfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL29iamVjdF9zbmFwc2hvdF92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHMuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9zZWxlY3Rpb25fc3VtbWFyeV90YWJsZS5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9hc3luY19zbGljZV9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9mcmFtZV9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9pbnRlcmFjdGlvbl9yZWNvcmRfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X2luc3RhbmNlX3N1Yl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9zbmFwc2hvdF9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3NhbXBsZV9zdWJfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2FuYWx5c2lzL3RhYl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvY29tbWVudF9ib3hfYW5ub3RhdGlvbl92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvcmVjdF9hbm5vdGF0aW9uX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9hbm5vdGF0aW9ucy94X21hcmtlcl9hbm5vdGF0aW9uX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2FuaW1hdGlvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvYW5pbWF0aW9uX2NvbnRyb2xsZXIuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2JydXNoaW5nX3N0YXRlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9jYW1lcmEuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2NoYXJ0X2Jhc2UuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2NvbG9yX2xlZ2VuZC5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9jb2xvcl91dGlscy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbi5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvZDMuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZS5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvZHJhd19oZWxwZXJzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9kcm9wZG93bi5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvZWxpZGVkX2NhY2hlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9ldmVudF9wcmVzZW50ZXIuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2Zhc3RfcmVjdF9yZW5kZXJlci5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvZmF2aWNvbnMuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2hlYWRpbmcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2hvdF9rZXkuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2hvdGtleV9jb250cm9sbGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9pbmZvX2Jhci5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvaW5mb19iYXJfZ3JvdXAuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2xpbmVfY2hhcnQuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL2xpc3Rfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvbW91c2VfbW9kZV9pY29uLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9tb3VzZV9tb2Rlcy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvbW91c2VfdHJhY2tlci5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2Uvb3ZlcmxheS5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvcGllX2NoYXJ0Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9wb2x5bWVyX3V0aWxzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9xdWFkX3N0YWNrX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL3NvcnRhYmxlX3RhYmxlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS9zdW5idXJzdF9jaGFydC5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvdGFibGUuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL3RpbWluZ190b29sLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS90b29sYmFyX2J1dHRvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2UvdWkuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9iYXNlL3VpX3N0YXRlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvYmFzZS91dGlscy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2Jhc2Uvdmlld19zcGVjaWZpY19icnVzaGluZ19zdGF0ZS5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL2Fib3V0X3RyYWNpbmcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfY29ubmVjdGlvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcHJvZmlsaW5nX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfYW5kX2NhcHR1cmVfY29udHJvbGxlci5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9zZWxlY3Rpb25fZGlhbG9nLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3hocl9iYXNlZF90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnkuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2NjLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fZGVidWdnZXIuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9saXN0X3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3BpY2tlci5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9xdWFkX3N0YWNrX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3N1bW1hcnlfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3NlbGVjdGlvbi5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2Mvc2VsZWN0aW9uLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3ZpZXcuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2dwdS9ncHUuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2hpZ2hsaWdodGVyL3ZzeW5jX2hpZ2hsaWdodGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zaWRlX3BhbmVsLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zcGFuLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3NpZGVfcGFuZWwvYWxlcnRzX3NpZGVfcGFuZWwuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvc2lkZV9wYW5lbC9pbnB1dF9sYXRlbmN5X3NpZGVfcGFuZWwuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvc2lkZV9wYW5lbC90aW1lX3N1bW1hcnlfc2lkZV9wYW5lbC5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdF92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL2hlYXBfaW5zdGFuY2VfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2MuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19zbmFwc2hvdF92aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZmluZF9jb250cm9sLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvZmluZF9jb250cm9sbGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvc2NyaXB0aW5nX2NvbnRyb2wuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbCcsCisgICAgICAndHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbCcsCisgICAgICAndHJhY2luZy91aS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV9hbmltYXRpb25zLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdGltZWxpbmVfaW50ZXJlc3RfcmFuZ2UuaHRtbCcsCisgICAgICAndHJhY2luZy91aS90aW1lbGluZV90cmFja192aWV3Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdGltZWxpbmVfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdfaGVscF9vdmVybGF5Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdGltZWxpbmVfdmlld19tZXRhZGF0YV9vdmVybGF5Lmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdGltZWxpbmVfdmlld3BvcnQuaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvYWxlcnRfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvYXN5bmNfc2xpY2VfZ3JvdXBfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvY2hhcnRfYXhpcy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9jaGFydF9wb2ludC5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvY2hhcnRfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvY2hhcnRfdHJhbnNmb3JtLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL2NvbnRhaW5lcl90b190cmFja19tYXAuaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL2NvdW50ZXJfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvY3B1X3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL2RldmljZV90cmFjay5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9ldmVudF90b190cmFja19tYXAuaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvZnJhbWVfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvZ2xvYmFsX21lbW9yeV9kdW1wX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL2hpZ2hsaWdodGVyLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL2ludGVyYWN0aW9uX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL2tlcm5lbF90cmFjay5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9sZXR0ZXJfZG90X3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvbW9kZWxfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvbXVsdGlfcm93X3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV9ncm91cF90cmFjay5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvcG93ZXJfc2VyaWVzX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvcHJvY2Vzc19zdW1tYXJ5X3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3NfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvcHJvY2Vzc190cmFja19iYXNlLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3JlY3RfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3MvcnVsZXJfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3Mvc2FtcGxlX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3NwYWNpbmdfdHJhY2suaHRtbCcsCisgICAgICAndHJhY2luZy91aS90cmFja3Mvc3RhY2tlZF9iYXJzX3RyYWNrLmh0bWwnLAorICAgICAgJ3RyYWNpbmcvdWkvdHJhY2tzL3RocmVhZF90cmFjay5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3RyYWNrcy90cmFjay5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3VuaXRzL2FycmF5X29mX251bWJlcnNfc3Bhbi5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3VuaXRzL2dlbmVyaWNfdGFibGVfdmlldy5odG1sJywKKyAgICAgICd0cmFjaW5nL3VpL3VuaXRzL3ByZWZlcnJlZF9kaXNwbGF5X3VuaXQuaHRtbCcsCisgICAgICAndHJhY2luZy91aS91bml0cy9zaXplX2luX2J5dGVzX3NwYW4uaHRtbCcsCisgICAgICAndHJhY2luZy91aS91bml0cy90aW1lX2R1cmF0aW9uX3NwYW4uaHRtbCcsCisgICAgICAndHJhY2luZy91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCcsCisgICAgXSwKKyAgICAndHJhY2luZ19pbWdfZmlsZXMnOiBbCisgICAgICAndHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2ltYWdlcy9pbnB1dC1ldmVudC5wbmcnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9ncHUvaW1hZ2VzL2NoZWNrZXJib2FyZC5wbmcnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL2ltYWdlcy9jb2xsYXBzZS5wbmcnLAorICAgICAgJ3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL2ltYWdlcy9leHBhbmQucG5nJywKKyAgICAgICd0cmFjaW5nL3VpL2ltYWdlcy9jaHJvbWUtbGVmdC5wbmcnLAorICAgICAgJ3RyYWNpbmcvdWkvaW1hZ2VzL2Nocm9tZS1taWQucG5nJywKKyAgICAgICd0cmFjaW5nL3VpL2ltYWdlcy9jaHJvbWUtcmlnaHQucG5nJywKKyAgICAgICd0cmFjaW5nL3VpL2ltYWdlcy91aS1zdGF0ZXMucG5nJywKKyAgICBdLAorICAgICd0cmFjaW5nX2ZpbGVzJzogWworICAgICAgJzxAKHRyYWNpbmdfY3NzX2ZpbGVzKScsCisgICAgICAnPEAodHJhY2luZ19qc19odG1sX2ZpbGVzKScsCisgICAgICAnPEAodHJhY2luZ19pbWdfZmlsZXMpJywKKyAgICBdLAorICB9Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvYmFzZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2Jhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjQ0OWM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2Jhc2UuaHRtbApAQCAtMCwwICsxLDE5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogVGhlIGdsb2JhbCBvYmplY3QuCisgKiBAdHlwZSB7IU9iamVjdH0KKyAqIEBjb25zdAorICovCit2YXIgZ2xvYmFsID0gdGhpczsKKworLyoqIFBsYXRmb3JtLCBwYWNrYWdlLCBvYmplY3QgcHJvcGVydHksIGFuZCBFdmVudCBzdXBwb3J0LiAqLwordGhpcy50ciA9IChmdW5jdGlvbigpIHsKKyAgaWYgKGdsb2JhbC50cikgeworICAgIGNvbnNvbGUud2FybignQmFzZSB3YXMgbXVsdGlwbHkgaW5pdGlhbGl6ZWQuIEZpcnN0IGluaXQgd2lucy4nKTsKKyAgICByZXR1cm4gZ2xvYmFsLnRyOworICB9CisKKyAgLyoqCisgICAqIEJ1aWxkcyBhbiBvYmplY3Qgc3RydWN0dXJlIGZvciB0aGUgcHJvdmlkZWQgbmFtZXNwYWNlIHBhdGgsCisgICAqIGVuc3VyaW5nIHRoYXQgbmFtZXMgdGhhdCBhbHJlYWR5IGV4aXN0IGFyZSBub3Qgb3ZlcndyaXR0ZW4uIEZvcgorICAgKiBleGFtcGxlOgorICAgKiAnYS5iLmMnIC0+IGEgPSB7fTthLmI9e307YS5iLmM9e307CisgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgdGhlIG9iamVjdCB0aGF0IHRoaXMgZmlsZSBkZWZpbmVzLgorICAgKiBAcHJpdmF0ZQorICAgKi8KKyAgZnVuY3Rpb24gZXhwb3J0UGF0aChuYW1lKSB7CisgICAgdmFyIHBhcnRzID0gbmFtZS5zcGxpdCgnLicpOworICAgIHZhciBjdXIgPSBnbG9iYWw7CisKKyAgICBmb3IgKHZhciBwYXJ0OyBwYXJ0cy5sZW5ndGggJiYgKHBhcnQgPSBwYXJ0cy5zaGlmdCgpKTspIHsKKyAgICAgIGlmIChwYXJ0IGluIGN1cikgeworICAgICAgICBjdXIgPSBjdXJbcGFydF07CisgICAgICB9IGVsc2UgeworICAgICAgICBjdXIgPSBjdXJbcGFydF0gPSB7fTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGN1cjsKKyAgfTsKKworICBmdW5jdGlvbiBpc0V4cG9ydGVkKG5hbWUpIHsKKyAgICB2YXIgcGFydHMgPSBuYW1lLnNwbGl0KCcuJyk7CisgICAgdmFyIGN1ciA9IGdsb2JhbDsKKworICAgIGZvciAodmFyIHBhcnQ7IHBhcnRzLmxlbmd0aCAmJiAocGFydCA9IHBhcnRzLnNoaWZ0KCkpOykgeworICAgICAgaWYgKHBhcnQgaW4gY3VyKSB7CisgICAgICAgIGN1ciA9IGN1cltwYXJ0XTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworICBmdW5jdGlvbiBpc0RlZmluZWQobmFtZSkgeworICAgIHZhciBwYXJ0cyA9IG5hbWUuc3BsaXQoJy4nKTsKKworICAgIHZhciBjdXJPYmplY3QgPSBnbG9iYWw7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgcGFydE5hbWUgPSBwYXJ0c1tpXTsKKyAgICAgIHZhciBuZXh0T2JqZWN0ID0gY3VyT2JqZWN0W3BhcnROYW1lXTsKKyAgICAgIGlmIChuZXh0T2JqZWN0ID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGN1ck9iamVjdCA9IG5leHRPYmplY3Q7CisgICAgfQorICAgIHJldHVybiB0cnVlOworICB9CisKKyAgdmFyIHBhbmljRWxlbWVudCA9IHVuZGVmaW5lZDsKKyAgdmFyIHJhd1BhbmljTWVzc2FnZXMgPSBbXTsKKyAgZnVuY3Rpb24gc2hvd1BhbmljRWxlbWVudElmTmVlZGVkKCkgeworICAgIGlmIChwYW5pY0VsZW1lbnQpCisgICAgICByZXR1cm47CisKKyAgICB2YXIgcGFuaWNPdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgcGFuaWNPdmVybGF5LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICd3aGl0ZSc7CisgICAgcGFuaWNPdmVybGF5LnN0eWxlLmJvcmRlciA9ICczcHggc29saWQgcmVkJzsKKyAgICBwYW5pY092ZXJsYXkuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnOworICAgIHBhbmljT3ZlcmxheS5zdHlsZS5jb2xvciA9ICdibGFjayc7CisgICAgcGFuaWNPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnLXdlYmtpdC1mbGV4JzsKKyAgICBwYW5pY092ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnOworICAgIHBhbmljT3ZlcmxheS5zdHlsZS5sZWZ0ID0gMDsKKyAgICBwYW5pY092ZXJsYXkuc3R5bGUucGFkZGluZyA9ICc4cHgnOworICAgIHBhbmljT3ZlcmxheS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7CisgICAgcGFuaWNPdmVybGF5LnN0eWxlLnRvcCA9IDA7CisgICAgcGFuaWNPdmVybGF5LnN0eWxlLndlYmtpdEZsZXhEaXJlY3Rpb24gPSAnY29sdW1uJzsKKyAgICBwYW5pY092ZXJsYXkuc3R5bGUud2lkdGggPSAnMTAwJSc7CisKKyAgICBwYW5pY0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBwYW5pY0VsZW1lbnQuc3R5bGUud2Via2l0RmxleCA9ICcxIDEgYXV0byc7CisgICAgcGFuaWNFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nOworICAgIHBhbmljT3ZlcmxheS5hcHBlbmRDaGlsZChwYW5pY0VsZW1lbnQpOworCisgICAgaWYgKCFkb2N1bWVudC5ib2R5KSB7CisgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhbmljT3ZlcmxheSk7CisgICAgICB9LCAxNTApOworICAgIH0gZWxzZSB7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhbmljT3ZlcmxheSk7CisgICAgfQorICB9CisKKyAgZnVuY3Rpb24gc2hvd1BhbmljKHBhbmljVGl0bGUsIHBhbmljRGV0YWlscykgeworICAgIGlmICh0ci5pc0hlYWRsZXNzKSB7CisgICAgICBpZiAocGFuaWNEZXRhaWxzIGluc3RhbmNlb2YgRXJyb3IpCisgICAgICAgIHRocm93IHBhbmljRGV0YWlsczsKKyAgICAgIHRocm93IG5ldyBFcnJvcignUGFuaWM6ICcgKyBwYW5pY1RpdGxlICsgJzpcbicgKyBwYW5pY0RldGFpbHMpOworICAgIH0KKworICAgIGlmIChwYW5pY0RldGFpbHMgaW5zdGFuY2VvZiBFcnJvcikKKyAgICAgIHBhbmljRGV0YWlscyA9IHBhbmljRGV0YWlscy5zdGFjazsKKworICAgIHNob3dQYW5pY0VsZW1lbnRJZk5lZWRlZCgpOworICAgIHZhciBwYW5pY01lc3NhZ2VFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHBhbmljTWVzc2FnZUVsLmlubmVySFRNTCA9CisgICAgICAgICc8aDIgaWQ9Im1lc3NhZ2UiPjwvaDI+JyArCisgICAgICAgICc8cHJlIGlkPSJkZXRhaWxzIj48L3ByZT4nOworICAgIHBhbmljTWVzc2FnZUVsLnF1ZXJ5U2VsZWN0b3IoJyNtZXNzYWdlJykudGV4dENvbnRlbnQgPSBwYW5pY1RpdGxlOworICAgIHBhbmljTWVzc2FnZUVsLnF1ZXJ5U2VsZWN0b3IoJyNkZXRhaWxzJykudGV4dENvbnRlbnQgPSBwYW5pY0RldGFpbHM7CisgICAgcGFuaWNFbGVtZW50LmFwcGVuZENoaWxkKHBhbmljTWVzc2FnZUVsKTsKKworICAgIHJhd1BhbmljTWVzc2FnZXMucHVzaCh7CisgICAgICB0aXRsZTogcGFuaWNUaXRsZSwKKyAgICAgIGRldGFpbHM6IHBhbmljRGV0YWlscworICAgIH0pOworICB9CisKKyAgZnVuY3Rpb24gaGFzUGFuaWMoKSB7CisgICAgcmV0dXJuIHJhd1BhbmljTWVzc2FnZXMubGVuZ3RoICE9PSAwOworICB9CisgIGZ1bmN0aW9uIGdldFBhbmljVGV4dCgpIHsKKyAgICByZXR1cm4gcmF3UGFuaWNNZXNzYWdlcy5tYXAoZnVuY3Rpb24obXNnKSB7CisgICAgICByZXR1cm4gbXNnLnRpdGxlOworICAgIH0pLmpvaW4oJywgJyk7CisgIH0KKworICBmdW5jdGlvbiBleHBvcnRUbyhuYW1lc3BhY2UsIGZuKSB7CisgICAgdmFyIG9iaiA9IGV4cG9ydFBhdGgobmFtZXNwYWNlKTsKKyAgICB2YXIgZXhwb3J0cyA9IGZuKCk7CisKKyAgICBmb3IgKHZhciBwcm9wZXJ0eU5hbWUgaW4gZXhwb3J0cykgeworICAgICAgLy8gTWF5YmUgd2Ugc2hvdWxkIGNoZWNrIHRoZSBwcm90b3R5cGUgY2hhaW4gaGVyZT8gVGhlIGN1cnJlbnQgdXNhZ2UKKyAgICAgIC8vIHBhdHRlcm4gaXMgYWx3YXlzIHVzaW5nIGFuIG9iamVjdCBsaXRlcmFsIHNvIHdlIG9ubHkgY2FyZSBhYm91dCBvd24KKyAgICAgIC8vIHByb3BlcnRpZXMuCisgICAgICB2YXIgcHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleHBvcnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lKTsKKyAgICAgIGlmIChwcm9wZXJ0eURlc2NyaXB0b3IpCisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIHByb3BlcnR5TmFtZSwgcHJvcGVydHlEZXNjcmlwdG9yKTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEluaXRpYWxpemF0aW9uIHdoaWNoIG11c3QgYmUgZGVmZXJyZWQgdW50aWwgcnVuLXRpbWUuCisgICAqLworICBmdW5jdGlvbiBpbml0aWFsaXplKCkgeworICAgIGlmIChnbG9iYWwudmVyc2lvbiAmJiBnbG9iYWwudmVyc2lvbigpKSB7CisgICAgICB0ci5pc0Q4ID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKGdsb2JhbC5wcm9jZXNzICYmIGdsb2JhbC5wcm9jZXNzLnZlcnNpb25zLm5vZGUpIHsKKyAgICAgIHRyLmlzTm9kZSA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgIHRyLmlzRDggPSBmYWxzZTsKKyAgICAgIHRyLmlzTm9kZSA9IGZhbHNlOworICAgICAgdHIuZG9jID0gZG9jdW1lbnQ7CisKKyAgICAgIHRyLmlzTWFjID0gL01hYy8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOworICAgICAgdHIuaXNXaW5kb3dzID0gL1dpbi8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pOworICAgICAgdHIuaXNDaHJvbWVPUyA9IC9Dck9TLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOworICAgICAgdHIuaXNMaW51eCA9IC9MaW51eC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTsKKyAgICB9CisgICAgdHIuaXNIZWFkbGVzcyA9IHRyLmlzRDggfHwgdHIuaXNOb2RlOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBpbml0aWFsaXplOiBpbml0aWFsaXplLAorCisgICAgZXhwb3J0VG86IGV4cG9ydFRvLAorICAgIGlzRXhwb3J0ZWQ6IGlzRXhwb3J0ZWQsCisgICAgaXNEZWZpbmVkOiBpc0RlZmluZWQsCisKKyAgICBzaG93UGFuaWM6IHNob3dQYW5pYywKKyAgICBoYXNQYW5pYzogaGFzUGFuaWMsCisgICAgZ2V0UGFuaWNUZXh0OiBnZXRQYW5pY1RleHQKKyAgfTsKK30pKCk7CisKK3RyLmluaXRpYWxpemUoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2Jhc2U2NC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2Jhc2U2NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYjdmYTgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvYmFzZTY0Lmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7CisKKyAgZnVuY3Rpb24gQmFzZTY0KCkgeworICB9CisKKyAgZnVuY3Rpb24gYjY0VG9VaW50NihuQ2hyKSB7CisgICAgaWYgKG5DaHIgPiA2NCAmJiBuQ2hyIDwgOTEpCisgICAgICByZXR1cm4gbkNociAtIDY1OworICAgIGlmIChuQ2hyID4gOTYgJiYgbkNociA8IDEyMykKKyAgICAgIHJldHVybiBuQ2hyIC0gNzE7CisgICAgaWYgKG5DaHIgPiA0NyAmJiBuQ2hyIDwgNTgpCisgICAgICByZXR1cm4gbkNociArIDQ7CisgICAgaWYgKG5DaHIgPT09IDQzKQorICAgICAgcmV0dXJuIDYyOworICAgIGlmIChuQ2hyID09PSA0NykKKyAgICAgIHJldHVybiA2MzsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIEJhc2U2NC5nZXREZWNvZGVkQnVmZmVyTGVuZ3RoID0gZnVuY3Rpb24oaW5wdXQpIHsKKyAgICByZXR1cm4gaW5wdXQubGVuZ3RoICogMyArIDEgPj4gMjsKKyAgfQorCisgIEJhc2U2NC5FbmNvZGVBcnJheUJ1ZmZlclRvU3RyaW5nID0gZnVuY3Rpb24oaW5wdXQpIHsKKyAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzkyNjc4OTkvCisgICAgdmFyIGJpbmFyeSA9ICcnOworICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGlucHV0KTsKKyAgICB2YXIgbGVuID0gYnl0ZXMuYnl0ZUxlbmd0aDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKQorICAgICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pOworICAgIHJldHVybiBidG9hKGJpbmFyeSk7CisgIH0KKworICBCYXNlNjQuRGVjb2RlVG9UeXBlZEFycmF5ID0gZnVuY3Rpb24oaW5wdXQsIG91dHB1dCkgeworCisgICAgdmFyIG5JbkxlbiA9IGlucHV0Lmxlbmd0aDsKKyAgICB2YXIgbk91dExlbiA9IG5JbkxlbiAqIDMgKyAxID4+IDI7CisgICAgdmFyIG5Nb2QzID0gMDsKKyAgICB2YXIgbk1vZDQgPSAwOworICAgIHZhciBuVWludDI0ID0gMDsKKyAgICB2YXIgbk91dElkeCA9IDA7CisKKyAgICBpZiAobk91dExlbiA+IG91dHB1dC5ieXRlTGVuZ3RoKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdPdXRwdXQgYnVmZmVyIHRvbyBzbWFsbCB0byBkZWNvZGUuJyk7CisKKyAgICBmb3IgKHZhciBuSW5JZHggPSAwOyBuSW5JZHggPCBuSW5MZW47IG5JbklkeCsrKSB7CisgICAgICBuTW9kNCA9IG5JbklkeCAmIDM7CisgICAgICBuVWludDI0IHw9IGI2NFRvVWludDYoaW5wdXQuY2hhckNvZGVBdChuSW5JZHgpKSA8PCAxOCAtIDYgKiBuTW9kNDsKKyAgICAgIGlmIChuTW9kNCA9PT0gMyB8fCBuSW5MZW4gLSBuSW5JZHggPT09IDEpIHsKKyAgICAgICAgZm9yIChuTW9kMyA9IDA7IG5Nb2QzIDwgMyAmJiBuT3V0SWR4IDwgbk91dExlbjsgbk1vZDMrKywgbk91dElkeCsrKSB7CisgICAgICAgICAgb3V0cHV0LnNldFVpbnQ4KG5PdXRJZHgsIG5VaW50MjQgPj4+ICgxNiA+Pj4gbk1vZDMgJiAyNCkgJiAyNTUpOworICAgICAgICB9CisgICAgICAgIG5VaW50MjQgPSAwOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbk91dElkeCAtIDE7CisgIH0KKworICByZXR1cm4geworICAgIEJhc2U2NDogQmFzZTY0CisgIH07CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvYmFzZTY0X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9iYXNlNjRfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvYmFzZTY0X3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2Jhc2U2NF90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9iYm94Mi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2Jib3gyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9iYm94Mi5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvYmJveDIuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2Jib3gyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9iYm94Ml90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9iYm94Ml90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9iYm94Ml90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9jYXRlZ29yeV91dGlsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvY2F0ZWdvcnlfdXRpbC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvY2F0ZWdvcnlfdXRpbC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvY2F0ZWdvcnlfdXRpbC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvY29sb3IuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9jb2xvci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvY29sb3IuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2NvbG9yLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9jb2xvcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvY29sb3JfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4Y2ZkN2MKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvY29sb3JfdGVzdC5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2NvbG9yLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2Zyb21SR0InLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYyA9IHRyLmIuQ29sb3IuZnJvbVN0cmluZygncmdiKDEsIDIsIDMpJyk7CisgICAgYXNzZXJ0LmVxdWFsKGMuciwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGMuZywgMik7CisgICAgYXNzZXJ0LmVxdWFsKGMuYiwgMyk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGMuYSk7CisgIH0pOworCisgIHRlc3QoJ2Zyb21SR0JBJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSB0ci5iLkNvbG9yLmZyb21TdHJpbmcoJ3JnYmEoMSwgMiwgMywgMC41KScpOworICAgIGFzc2VydC5lcXVhbChjLnIsIDEpOworICAgIGFzc2VydC5lcXVhbChjLmcsIDIpOworICAgIGFzc2VydC5lcXVhbChjLmIsIDMpOworICAgIGFzc2VydC5lcXVhbChjLmEsIDAuNSk7CisgIH0pOworCisgIHRlc3QoJ2Zyb21IZXgnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYyA9IHRyLmIuQ29sb3IuZnJvbVN0cmluZygnIzAxMDIwMycpOworICAgIGFzc2VydC5lcXVhbChjLnIsIDEpOworICAgIGFzc2VydC5lcXVhbChjLmcsIDIpOworICAgIGFzc2VydC5lcXVhbChjLmIsIDMpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChjLmEpOworICB9KTsKKworICB0ZXN0KCd0b1N0cmluZ1JHQicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjID0gbmV3IHRyLmIuQ29sb3IoMSwgMiwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKGMudG9TdHJpbmcoKSwgJ3JnYigxLDIsMyknKTsKKyAgfSk7CisKKyAgdGVzdCgndG9TdHJpbmdSR0JBJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgdHIuYi5Db2xvcigxLCAyLCAzLCAwLjUpOworICAgIGFzc2VydC5lcXVhbChjLnRvU3RyaW5nKCksICdyZ2JhKDEsMiwzLDAuNSknKTsKKyAgfSk7CisKKyAgdGVzdCgnbGVycFJHQicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gbmV3IHRyLmIuQ29sb3IoMCwgMTI3LCAxOTEpOworICAgIHZhciBiID0gbmV3IHRyLmIuQ29sb3IoMjU1LCAyNTUsIDI1NSk7CisgICAgdmFyIHggPSB0ci5iLkNvbG9yLmxlcnBSR0IoYSwgYiwgMC4yNSk7CisgICAgYXNzZXJ0LmVxdWFsKHguciwgNjMpOworICAgIGFzc2VydC5lcXVhbCh4LmcsIDE1OSk7CisgICAgYXNzZXJ0LmVxdWFsKHguYiwgMjA3KTsKKyAgfSk7CisKKyAgdGVzdCgnbGVycFJHQkEnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IG5ldyB0ci5iLkNvbG9yKDAsIDEyNywgMTkxLCAwLjUpOworICAgIHZhciBiID0gbmV3IHRyLmIuQ29sb3IoMjU1LCAyNTUsIDI1NSwgMSk7CisgICAgdmFyIHggPSB0ci5iLkNvbG9yLmxlcnBSR0JBKGEsIGIsIDAuMjUpOworICAgIGFzc2VydC5lcXVhbCh4LnIsIDYzKTsKKyAgICBhc3NlcnQuZXF1YWwoeC5nLCAxNTkpOworICAgIGFzc2VydC5lcXVhbCh4LmIsIDIwNyk7CisgICAgYXNzZXJ0LmVxdWFsKHguYSwgMC42MjUpOworICB9KTsKKworICB0ZXN0KCdibGVuZFJHQkEnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcmVkID0gbmV3IHRyLmIuQ29sb3IoMjU1LCAwLCAwLCAwLjUpOworICAgIHZhciB3aGl0ZSA9IG5ldyB0ci5iLkNvbG9yKDI1NSwgMjU1LCAyNTUsIDEpOworICAgIHZhciB4ID0gcmVkLmJsZW5kT3Zlcih3aGl0ZSk7CisgICAgYXNzZXJ0LmVxdWFsKHguciwgMjU1KTsKKyAgICBhc3NlcnQuZXF1YWwoeC5nLCAxMjcpOworICAgIGFzc2VydC5lcXVhbCh4LmIsIDEyNyk7CisgICAgYXNzZXJ0LmVxdWFsKHguYSwgMSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9kOF90ZXN0cy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2Q4X3Rlc3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk5NGE3YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9kOF90ZXN0cy5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QvdGVzdF9ydW5uZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QvdGV4dF90ZXN0X3Jlc3VsdHMuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisoZnVuY3Rpb24oKSB7CisgIGlmICghdHIuaXNIZWFkbGVzcykgeworICAgIHRocm93IG5ldyBFcnJvcignZDhfdGVzdHMuaHRtbCBvbmx5IHdvcmtzIGluIGhlYWRsZXNzIG1vZGUnKTsKKyAgfQorCisgIHZhciByZXN1bHRzID0gbmV3IHRyLmIudW5pdHRlc3QuVGV4dFRlc3RSZXN1bHRzKCk7CisKKyAgZnVuY3Rpb24gcHJpbnRTcGFjZXIoKSB7CisgICAgY29uc29sZS5sb2coJ1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nICsKKyAgICAgICAgICAgICAgICAnLS0tLS0tLS0tLS0tLS0tLScpOworICB9CisgIGZ1bmN0aW9uIGxvYWRBbmRSdW5UZXN0cygpIHsKKyAgICB2YXIgYXJncyA9IHN5cy5hcmd2LnNsaWNlKDEpOworICAgIHZhciBzdWl0ZVJlbHBhdGhzVG9Mb2FkID0gYXJncy5tYXAoZnVuY3Rpb24oeCkgeworICAgICAgcmV0dXJuICcvJyArIHg7CisgICAgfSk7CisKKyAgICB2YXIgbG9hZGVyID0gbmV3IHRyLmIudW5pdHRlc3QuU3VpdGVMb2FkZXIoc3VpdGVSZWxwYXRoc1RvTG9hZCk7CisKKyAgICB2YXIgcCA9IGxvYWRlci5hbGxTdWl0ZXNMb2FkZWRQcm9taXNlOworCisgICAgcCA9IHAudGhlbigKKyAgICAgIGZ1bmN0aW9uIGRpZEFsbFN1aXRlc0xvYWQoKSB7CisgICAgICAgIHZhciB0ZXN0cyA9IGxvYWRlci5nZXRBbGxUZXN0cygpLmZpbHRlcihmdW5jdGlvbih0ZXN0Q2FzZSkgeworICAgICAgICAgIGlmICh0ZXN0Q2FzZSBpbnN0YW5jZW9mIHRyLmIudW5pdHRlc3QuUGVyZlRlc3RDYXNlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9KTsKKyAgICAgICAgaWYgKHRlc3RzLmxlbmd0aCA9PT0gMCkgeworICAgICAgICAgIHByaW50U3BhY2VyKCk7CisgICAgICAgICAgY29uc29sZS5sb2coJ0ZBSUxFRDogTm8gdGVzdHMgdG8gcnVuLicpOworICAgICAgICAgIGNvbnNvbGUubG9nKGVyci5zdGFjayk7CisgICAgICAgICAgcXVpdCgxKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnVubmVyID0gbmV3IHRyLmIudW5pdHRlc3QuVGVzdFJ1bm5lcihyZXN1bHRzLCB0ZXN0cyk7CisgICAgICAgIHJldHVybiBydW5uZXIuYmVnaW5SdW5uaW5nKCk7CisgICAgICB9LAorICAgICAgZnVuY3Rpb24gc3VpdGVMb2FkaW5nRmFpbHVyZShlcnIpIHsKKyAgICAgICAgcHJpbnRTcGFjZXIoKTsKKyAgICAgICAgY29uc29sZS5sb2coJ0ZBSUxFRDogQSB0ZXN0IHN1aXRlIGZhaWxlZCB0byBsb2FkLicpOworICAgICAgICBjb25zb2xlLmxvZyhlcnIuc3RhY2spOworICAgICAgICBxdWl0KDEpOworICAgICAgfSk7CisKKyAgICBwID0gcC50aGVuKAorICAgICAgZnVuY3Rpb24gZGlkQWxsVGVzdFJ1bigpIHsKKyAgICAgICAgaWYgKHJlc3VsdHMubnVtVGVzdHNUaGF0RmFpbGVkID4gMCkKKyAgICAgICAgICBxdWl0KDEpOworICAgICAgICBlbHNlCisgICAgICAgICAgcXVpdCgwKTsKKyAgICAgIH0sCisgICAgICBmdW5jdGlvbiB0ZXN0SGFybmVzc0Vycm9yKGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coJ0ZBSUxFRDogQSB0ZXN0IGhhcm5lc3MgZXJyb3IgaGFzIG9jdXJyZWQuJyk7CisgICAgICAgIGNvbnNvbGUubG9nKGUuc3RhY2spOworICAgICAgICBxdWl0KDEpOworICAgICAgfSk7CisgICAgcmV0dXJuIHA7CisgIH0KKworICBsb2FkQW5kUnVuVGVzdHMoKTsKK30pKCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9ldmVudC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAyM2NlOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9ldmVudC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgeworICB2YXIgRXZlbnQ7CisgIGlmICh0ci5pc0hlYWRsZXNzKSB7CisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBldmVudCB0byBiZSB1c2VkIHdpdGggdHIuYi5FdmVudFRhcmdldCBvciBET00gRXZlbnRUYXJnZXQKKyAgICAgKiBvYmplY3RzLgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfYnViYmxlcyBXaGV0aGVyIHRoZSBldmVudCBidWJibGVzLgorICAgICAqICAgICBEZWZhdWx0IGlzIGZhbHNlLgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IG9wdF9wcmV2ZW50YWJsZSBXaGV0aGVyIHRoZSBkZWZhdWx0IGFjdGlvbiBvZiB0aGUgZXZlbnQKKyAgICAgKiAgICAgY2FuIGJlIHByZXZlbnRlZC4KKyAgICAgKiBAY29uc3RydWN0b3IKKyAgICAgKiBAZXh0ZW5kcyB7RXZlbnR9CisgICAgICovCisgICAgZnVuY3Rpb24gSGVhZGxlc3NFdmVudCh0eXBlLCBvcHRfYnViYmxlcywgb3B0X3ByZXZlbnRhYmxlKSB7CisgICAgICB0aGlzLnR5cGUgPSB0eXBlOworICAgICAgdGhpcy5idWJibGVzID0gKG9wdF9idWJibGVzICE9PSB1bmRlZmluZWQgPworICAgICAgICAgICEhb3B0X2J1YmJsZXMgOiBmYWxzZSk7CisgICAgICB0aGlzLmNhbmNlbGFibGUgPSAob3B0X3ByZXZlbnRhYmxlICE9PSB1bmRlZmluZWQgPworICAgICAgICAgICEhb3B0X3ByZXZlbnRhYmxlIDogZmFsc2UpOworCisgICAgICB0aGlzLmRlZmF1bHRQcmV2ZW50ZWQgPSBmYWxzZTsKKyAgICAgIHRoaXMuY2FuY2VsQnViYmxlID0gZmFsc2U7CisgICAgfTsKKworICAgIEhlYWRsZXNzRXZlbnQucHJvdG90eXBlID0geworICAgICAgcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLmRlZmF1bHRQcmV2ZW50ZWQgPSB0cnVlOworICAgICAgfSwKKworICAgICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5jYW5jZWxCdWJibGUgPSB0cnVlOworICAgICAgfQorICAgIH07CisgICAgRXZlbnQgPSBIZWFkbGVzc0V2ZW50OworICB9IGVsc2UgeworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgZXZlbnQgdG8gYmUgdXNlZCB3aXRoIHRyLmIuRXZlbnRUYXJnZXQgb3IgRE9NIEV2ZW50VGFyZ2V0CisgICAgICogb2JqZWN0cy4KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuCisgICAgICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2J1YmJsZXMgV2hldGhlciB0aGUgZXZlbnQgYnViYmxlcy4KKyAgICAgKiAgICAgRGVmYXVsdCBpcyBmYWxzZS4KKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfcHJldmVudGFibGUgV2hldGhlciB0aGUgZGVmYXVsdCBhY3Rpb24gb2YgdGhlIGV2ZW50CisgICAgICogICAgIGNhbiBiZSBwcmV2ZW50ZWQuCisgICAgICogQGNvbnN0cnVjdG9yCisgICAgICogQGV4dGVuZHMge0V2ZW50fQorICAgICAqLworICAgIGZ1bmN0aW9uIFRyRXZlbnQodHlwZSwgb3B0X2J1YmJsZXMsIG9wdF9wcmV2ZW50YWJsZSkgeworICAgICAgdmFyIGUgPSB0ci5kb2MuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7CisgICAgICBlLmluaXRFdmVudCh0eXBlLCAhIW9wdF9idWJibGVzLCAhIW9wdF9wcmV2ZW50YWJsZSk7CisgICAgICBlLl9fcHJvdG9fXyA9IGdsb2JhbC5FdmVudC5wcm90b3R5cGU7CisgICAgICByZXR1cm4gZTsKKyAgICB9OworCisgICAgVHJFdmVudC5wcm90b3R5cGUgPSB7CisgICAgICBfX3Byb3RvX186IGdsb2JhbC5FdmVudC5wcm90b3R5cGUKKyAgICB9OworICAgIEV2ZW50ID0gVHJFdmVudDsKKyAgfQorCisgIC8qKgorICAgKiBEaXNwYXRjaGVzIGEgc2ltcGxlIGV2ZW50IG9uIGFuIGV2ZW50IHRhcmdldC4KKyAgICogQHBhcmFtIHshRXZlbnRUYXJnZXR9IHRhcmdldCBUaGUgZXZlbnQgdGFyZ2V0IHRvIGRpc3BhdGNoIHRoZSBldmVudCBvbi4KKyAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgVGhlIHR5cGUgb2YgdGhlIGV2ZW50LgorICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfYnViYmxlcyBXaGV0aGVyIHRoZSBldmVudCBidWJibGVzIG9yIG5vdC4KKyAgICogQHBhcmFtIHtib29sZWFuPX0gb3B0X2NhbmNlbGFibGUgV2hldGhlciB0aGUgZGVmYXVsdCBhY3Rpb24gb2YgdGhlIGV2ZW50CisgICAqICAgICBjYW4gYmUgcHJldmVudGVkLgorICAgKiBAcmV0dXJuIHtib29sZWFufSBJZiBhbnkgb2YgdGhlIGxpc3RlbmVycyBjYWxsZWQge0Bjb2RlIHByZXZlbnREZWZhdWx0fQorICAgKiAgICAgZHVyaW5nIHRoZSBkaXNwYXRjaCB0aGlzIHdpbGwgcmV0dXJuIGZhbHNlLgorICAgKi8KKyAgZnVuY3Rpb24gZGlzcGF0Y2hTaW1wbGVFdmVudCh0YXJnZXQsIHR5cGUsIG9wdF9idWJibGVzLCBvcHRfY2FuY2VsYWJsZSkgeworICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQodHlwZSwgb3B0X2J1YmJsZXMsIG9wdF9jYW5jZWxhYmxlKTsKKyAgICByZXR1cm4gdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZSk7CisgIH0KKworICByZXR1cm4geworICAgIEV2ZW50OiBFdmVudCwKKyAgICBkaXNwYXRjaFNpbXBsZUV2ZW50OiBkaXNwYXRjaFNpbXBsZUV2ZW50CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V2ZW50X3RhcmdldC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V2ZW50X3RhcmdldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMDVkNmEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwKQEAgLTAsMCArMSwxNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFRoaXMgY29udGFpbnMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICogYXMgZGVmaW5lZCBieSBET00gTGV2ZWwgMiBFdmVudHMuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIENyZWF0ZXMgYSBuZXcgRXZlbnRUYXJnZXQuIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgRE9NIGxldmVsIDIKKyAgICogRXZlbnRUYXJnZXQgaW50ZXJmYWNlIGFuZCBjYW4gYmUgdXNlZCB3aGVyZXZlciB0aG9zZSBhcmUgdXNlZC4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBFdmVudFRhcmdldCgpIHsKKyAgfQorICBFdmVudFRhcmdldC5kZWNvcmF0ZSA9IGZ1bmN0aW9uKHRhcmdldCkgeworICAgIGZvciAodmFyIGsgaW4gRXZlbnRUYXJnZXQucHJvdG90eXBlKSB7CisgICAgICBpZiAoayA9PSAnZGVjb3JhdGUnKQorICAgICAgICBjb250aW51ZTsKKyAgICAgIHZhciB2ID0gRXZlbnRUYXJnZXQucHJvdG90eXBlW2tdOworICAgICAgaWYgKHR5cGVvZiB2ICE9PSAnZnVuY3Rpb24nKQorICAgICAgICBjb250aW51ZTsKKyAgICAgIHRhcmdldFtrXSA9IHY7CisgICAgfQorICB9OworCisgIEV2ZW50VGFyZ2V0LnByb3RvdHlwZSA9IHsKKworICAgIC8qKgorICAgICAqIEFkZHMgYW4gZXZlbnQgbGlzdGVuZXIgdG8gdGhlIHRhcmdldC4KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuCisgICAgICogQHBhcmFtIHshRnVuY3Rpb258e2hhbmRsZUV2ZW50OkZ1bmN0aW9ufX0gaGFuZGxlciBUaGUgaGFuZGxlciBmb3IgdGhlCisgICAgICogICAgIGV2ZW50LiBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkLgorICAgICAqLworICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKHR5cGUsIGhhbmRsZXIpIHsKKyAgICAgIGlmICghdGhpcy5saXN0ZW5lcnNfKQorICAgICAgICB0aGlzLmxpc3RlbmVyc18gPSBPYmplY3QuY3JlYXRlKG51bGwpOworICAgICAgaWYgKCEodHlwZSBpbiB0aGlzLmxpc3RlbmVyc18pKSB7CisgICAgICAgIHRoaXMubGlzdGVuZXJzX1t0eXBlXSA9IFtoYW5kbGVyXTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBoYW5kbGVycyA9IHRoaXMubGlzdGVuZXJzX1t0eXBlXTsKKyAgICAgICAgaWYgKGhhbmRsZXJzLmluZGV4T2YoaGFuZGxlcikgPCAwKQorICAgICAgICAgIGhhbmRsZXJzLnB1c2goaGFuZGxlcik7CisgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYW4gZXZlbnQgbGlzdGVuZXIgZnJvbSB0aGUgdGFyZ2V0LgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIFRoZSBuYW1lIG9mIHRoZSBldmVudC4KKyAgICAgKiBAcGFyYW0geyFGdW5jdGlvbnx7aGFuZGxlRXZlbnQ6RnVuY3Rpb259fSBoYW5kbGVyIFRoZSBoYW5kbGVyIGZvciB0aGUKKyAgICAgKiAgICAgZXZlbnQuCisgICAgICovCisgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24odHlwZSwgaGFuZGxlcikgeworICAgICAgaWYgKCF0aGlzLmxpc3RlbmVyc18pCisgICAgICAgIHJldHVybjsKKyAgICAgIGlmICh0eXBlIGluIHRoaXMubGlzdGVuZXJzXykgeworICAgICAgICB2YXIgaGFuZGxlcnMgPSB0aGlzLmxpc3RlbmVyc19bdHlwZV07CisgICAgICAgIHZhciBpbmRleCA9IGhhbmRsZXJzLmluZGV4T2YoaGFuZGxlcik7CisgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CisgICAgICAgICAgLy8gQ2xlYW4gdXAgaWYgdGhpcyB3YXMgdGhlIGxhc3QgbGlzdGVuZXIuCisgICAgICAgICAgaWYgKGhhbmRsZXJzLmxlbmd0aCA9PSAxKQorICAgICAgICAgICAgZGVsZXRlIHRoaXMubGlzdGVuZXJzX1t0eXBlXTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBoYW5kbGVycy5zcGxpY2UoaW5kZXgsIDEpOworICAgICAgICB9CisgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIERpc3BhdGNoZXMgYW4gZXZlbnQgYW5kIGNhbGxzIGFsbCB0aGUgbGlzdGVuZXJzIHRoYXQgYXJlIGxpc3RlbmluZyB0bworICAgICAqIHRoZSB0eXBlIG9mIHRoZSBldmVudC4KKyAgICAgKiBAcGFyYW0geyFjci5ldmVudC5FdmVudH0gZXZlbnQgVGhlIGV2ZW50IHRvIGRpc3BhdGNoLgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGRlZmF1bHQgYWN0aW9uIHdhcyBwcmV2ZW50ZWQuIElmIHNvbWVvbmUKKyAgICAgKiAgICAgY2FsbHMgcHJldmVudERlZmF1bHQgb24gdGhlIGV2ZW50IG9iamVjdCB0aGVuIHRoaXMgcmV0dXJucyBmYWxzZS4KKyAgICAgKi8KKyAgICBkaXNwYXRjaEV2ZW50OiBmdW5jdGlvbihldmVudCkgeworICAgICAgaWYgKCF0aGlzLmxpc3RlbmVyc18pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAvLyBTaW5jZSB3ZSBhcmUgdXNpbmcgRE9NIEV2ZW50IG9iamVjdHMgd2UgbmVlZCB0byBvdmVycmlkZSBzb21lIG9mIHRoZQorICAgICAgLy8gcHJvcGVydGllcyBhbmQgbWV0aG9kcyBzbyB0aGF0IHdlIGNhbiBlbXVsYXRlIHRoaXMgY29ycmVjdGx5LgorICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgZXZlbnQuX19kZWZpbmVHZXR0ZXJfXygndGFyZ2V0JywgZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiBzZWxmOworICAgICAgfSk7CisgICAgICB2YXIgcmVhbFByZXZlbnREZWZhdWx0ID0gZXZlbnQucHJldmVudERlZmF1bHQ7CisgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uKCkgeworICAgICAgICByZWFsUHJldmVudERlZmF1bHQuY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5yYXdSZXR1cm5WYWx1ZSA9IGZhbHNlOworICAgICAgfTsKKworICAgICAgdmFyIHR5cGUgPSBldmVudC50eXBlOworICAgICAgdmFyIHByZXZlbnRlZCA9IDA7CisgICAgICBpZiAodHlwZSBpbiB0aGlzLmxpc3RlbmVyc18pIHsKKyAgICAgICAgLy8gQ2xvbmUgdG8gcHJldmVudCByZW1vdmFsIGR1cmluZyBkaXNwYXRjaAorICAgICAgICB2YXIgaGFuZGxlcnMgPSB0aGlzLmxpc3RlbmVyc19bdHlwZV0uY29uY2F0KCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwLCBoYW5kbGVyOyBoYW5kbGVyID0gaGFuZGxlcnNbaV07IGkrKykgeworICAgICAgICAgIGlmIChoYW5kbGVyLmhhbmRsZUV2ZW50KQorICAgICAgICAgICAgcHJldmVudGVkIHw9IGhhbmRsZXIuaGFuZGxlRXZlbnQuY2FsbChoYW5kbGVyLCBldmVudCkgPT09IGZhbHNlOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByZXZlbnRlZCB8PSBoYW5kbGVyLmNhbGwodGhpcywgZXZlbnQpID09PSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICByZXR1cm4gIXByZXZlbnRlZCAmJiBldmVudC5yYXdSZXR1cm5WYWx1ZTsKKyAgICB9LAorCisgICAgaGFzRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24odHlwZSkgeworICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXJzX1t0eXBlXSAhPT0gdW5kZWZpbmVkOworICAgIH0KKyAgfTsKKworICB2YXIgRXZlbnRUYXJnZXRIZWxwZXIgPSB7CisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHRhcmdldCkgeworICAgICAgZm9yICh2YXIgayBpbiBFdmVudFRhcmdldEhlbHBlcikgeworICAgICAgICBpZiAoayA9PSAnZGVjb3JhdGUnKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB2YXIgdiA9IEV2ZW50VGFyZ2V0SGVscGVyW2tdOworICAgICAgICBpZiAodHlwZW9mIHYgIT09ICdmdW5jdGlvbicpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHRhcmdldFtrXSA9IHY7CisgICAgICB9CisgICAgICB0YXJnZXQubGlzdGVuZXJDb3VudHNfID0ge307CisgICAgfSwKKworICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKSB7CisgICAgICB0aGlzLl9fcHJvdG9fXy5hZGRFdmVudExpc3RlbmVyLmNhbGwoCisgICAgICAgICAgdGhpcywgdHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOworICAgICAgaWYgKHRoaXMubGlzdGVuZXJDb3VudHNfW3R5cGVdID09PSB1bmRlZmluZWQpCisgICAgICAgIHRoaXMubGlzdGVuZXJDb3VudHNfW3R5cGVdID0gMDsKKyAgICAgIHRoaXMubGlzdGVuZXJDb3VudHNfW3R5cGVdKys7CisgICAgfSwKKworICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKSB7CisgICAgICB0aGlzLl9fcHJvdG9fXy5yZW1vdmVFdmVudExpc3RlbmVyLmNhbGwoCisgICAgICAgICAgdGhpcywgdHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOworICAgICAgdGhpcy5saXN0ZW5lckNvdW50c19bdHlwZV0tLTsKKyAgICB9LAorCisgICAgaGFzRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24odHlwZSkgeworICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXJDb3VudHNfW3R5cGVdID4gMDsKKyAgICB9CisgIH07CisKKyAgLy8gRXhwb3J0CisgIHJldHVybiB7CisgICAgRXZlbnRUYXJnZXQ6IEV2ZW50VGFyZ2V0LAorICAgIEV2ZW50VGFyZ2V0SGVscGVyOiBFdmVudFRhcmdldEhlbHBlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9ldmVudF90YXJnZXRfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V2ZW50X3RhcmdldF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY4NzRhNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9ldmVudF90YXJnZXRfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50X3RhcmdldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudC5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdldmVudFRhcmdldEhlbHBlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaXN0ZW5lckNhbGxDb3VudCA9IDA7CisgICAgZnVuY3Rpb24gbGlzdGVuZXIoKSB7IGxpc3RlbmVyQ2FsbENvdW50Kys7IH0KKworICAgIHZhciBkaXYgPSBuZXcgdHIuYi5FdmVudFRhcmdldCgpOworICAgIHRyLmIuRXZlbnRUYXJnZXRIZWxwZXIuZGVjb3JhdGUoZGl2KTsKKworICAgIGFzc2VydC5pc0ZhbHNlKGRpdi5oYXNFdmVudExpc3RlbmVyKCdmb28nKSk7CisKKyAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcignZm9vJywgbGlzdGVuZXIpOworICAgIGFzc2VydC5pc1RydWUoZGl2Lmhhc0V2ZW50TGlzdGVuZXIoJ2ZvbycpKTsKKworICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudChkaXYsICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwobGlzdGVuZXJDYWxsQ291bnQsIDEpOworCisgICAgZGl2LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvbycsIGxpc3RlbmVyKTsKKworICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudChkaXYsICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwobGlzdGVuZXJDYWxsQ291bnQsIDEpOworCisgICAgYXNzZXJ0LmlzRmFsc2UoZGl2Lmhhc0V2ZW50TGlzdGVuZXIoJ2ZvbycpKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NGYwZmEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV9iYXNpYy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfdHlwZV9iYXNlZC5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBIZWxwZXIgY29kZSBmb3IgZGVmaW5pbmcgZXh0ZW5zaW9uIHJlZ2lzdHJpZXMsIHdoaWNoIGNhbiBiZQorICogdXNlZCB0byBtYWtlIGEgcGFydCBvZiB0cmFjZS12aWV3ZXIgZXh0ZW5zaWJsZS4KKyAqCisgKiBUaGlzIGZpbGUgcHJvdmlkZXMgdHdvIGJhc2ljIHR5cGVzIG9mIGV4dGVuc2lvbiByZWdpc3RyaWVzOgorICogLSBHZW5lcmljOiByZWdpc3RlciBhIHR5cGUgd2l0aCBtZXRhZGF0YSwgcXVlcnkgZm9yIHRob3NlIHR5cGVzIGJhc2VkIG9uCisgKiAgICAgICAgICAgIGEgcHJlZGljYXRlCisgKgorICogLSBUeXBlTmFtZS1iYXNlZDogcmVnaXN0ZXIgYSB0eXBlIHRoYXQgaGFuZGxlcyBzb21lIGNvbWJpbmF0aW9uCisgKiAgICAgICAgICAgICAgICAgICBvZiB0cmFjaW5nIGNhdGVnb3JpZXMgb3IgdHlwZU5hbWVzLCB0aGVuIHF1ZXJ5CisgKiAgICAgICAgICAgICAgICAgICBmb3IgaXQgYmFzZWQgb24gYSBjYXRlZ29yeSwgdHlwZU5hbWUgb3IgYm90aC4KKyAqCisgKiBVc2UgdGhlc2UgZm9yIHB1cmUtSlMgY2xhc3NlcyBvciB1aS5kZWZpbmUnZCBjbGFzc2VzLiBGb3IgcG9seW1lciBlbGVtZW50CisgKiByZWxhdGVkIHJlZ2lzdHJpZXMsIGNvbnN1bHQgYmFzZS9wb2x5bWVyX3V0aWxzLmh0bWwuCisgKgorICogV2hlbiB5b3UgcmVnaXN0ZXIgc3VidHlwZXMsIHlvdSBwYXNzIHRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlCisgKiBzdWJ0eXBlLCBhbmQgYW55IG1ldGFkYXRhIHlvdSB3YW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3VidHlwZS4gVXNlIG1ldGFkYXRhCisgKiBpbnN0ZWFkIG9mIHN0dWZmaW5nIGZpZWxkcyBvbnRvIHRoZSBjb25zdHJ1Y3Rvci4gRS5nLjoKKyAqICAgICByZWdpc3RyeS5yZWdpc3RlcihNeVN1YmNsYXNzLCB7dGl0bGVXaGVuU2hvd25JblRhYlN0cmlwOiAnTXlTdWInfSkKKyAqCisgKiBTb21lIHJlZ2lzdHJpZXMgd2FudCBhIGRlZmF1bHQgb2JqZWN0IHRoYXQgaXMgcmV0dXJuZWQgd2hlbiBhIG1vcmUgcHJlY2lzZQorICogc3VidHlwZSBoYXMgYmVlbiByZWdpc3RlcmVkLiBUbyBwcm92aWRlIG9uZSwgc2V0IHRoZSBkZWZhdWx0Q29uc3RydWN0b3IKKyAqIG9wdGlvbiBvbiB0aGUgcmVnaXN0cnkgb3B0aW9ucy4KKyAqCisgKiBUT0RPOiBFeHRlbnNpb24gcmVnaXN0cnkgdXNlZCB0byBtYWtlIHJlZmVyZW5jZSB0byBtYW5kYXRvcnlCYXNlVHlwZSBidXQgaXQKKyAqIHdhcyBuZXZlciBlbmZvcmNlZC4gV2UgbWF5IHdhbnQgdG8gYWRkIGl0IGJhY2sgaW4gdGhlIGZ1dHVyZSBpbiBvcmRlciB0bworICogZW5mb3JjZSB0aGUgdHlwZXMgdGhhdCBjYW4gYmUgcHV0IGludG8gYSBnaXZlbiByZWdpc3RyeS4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKKworICBmdW5jdGlvbiBkZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LCByZWdpc3RyeU9wdGlvbnMpIHsKKyAgICBpZiAocmVnaXN0cnkucmVnaXN0ZXIpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgaGFzIHJlZ2lzdHJ5Jyk7CisKKyAgICByZWdpc3RyeU9wdGlvbnMuZnJlZXplKCk7CisgICAgaWYgKHJlZ2lzdHJ5T3B0aW9ucy5tb2RlID09IHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSkgeworICAgICAgdHIuYi5fZGVjb3JhdGVCYXNpY0V4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LCByZWdpc3RyeU9wdGlvbnMpOworICAgIH0gZWxzZSBpZiAocmVnaXN0cnlPcHRpb25zLm1vZGUgPT0gdHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpIHsKKyAgICAgIHRyLmIuX2RlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnkocmVnaXN0cnksIHJlZ2lzdHJ5T3B0aW9ucyk7CisgICAgfSBlbHNlIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIG1vZGUnKTsKKyAgICB9CisKKyAgICAvLyBNYWtlIGl0IGFuIGV2ZW50IHRhcmdldC4KKyAgICBpZiAocmVnaXN0cnkuYWRkRXZlbnRMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKQorICAgICAgdHIuYi5FdmVudFRhcmdldC5kZWNvcmF0ZShyZWdpc3RyeSk7CisgIH0KKworICByZXR1cm4geworICAgIGRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnk6IGRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X2Jhc2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X2Jhc2UuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV9iYXNlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzaWMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmIzNDJiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV9iYXNpYy5odG1sCkBAIC0wLDAgKzEsMTA5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudC5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFJlZ2lzdGVyZWRUeXBlSW5mbyA9IHRyLmIuUmVnaXN0ZXJlZFR5cGVJbmZvOworICB2YXIgRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zID0gdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnM7CisKKyAgZnVuY3Rpb24gZGVjb3JhdGVCYXNpY0V4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LCBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMpIHsKKyAgICB2YXIgc2F2ZWRTdGF0ZVN0YWNrID0gW107CisgICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18gPSBbXTsKKworICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyID0gZnVuY3Rpb24oY29uc3RydWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfbWV0YWRhdGEpIHsKKyAgICAgIGlmIChyZWdpc3RyeS5maW5kSW5kZXhPZlJlZ2lzdGVyZWRDb25zdHJ1Y3RvcigKKyAgICAgICAgICBjb25zdHJ1Y3RvcikgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIYW5kbGVyIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgJyArIGNvbnN0cnVjdG9yKTsKKworICAgICAgZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLnZhbGlkYXRlQ29uc3RydWN0b3IoY29uc3RydWN0b3IpOworCisgICAgICB2YXIgbWV0YWRhdGEgPSB7fTsKKyAgICAgIGZvciAodmFyIGsgaW4gZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRNZXRhZGF0YSkKKyAgICAgICAgbWV0YWRhdGFba10gPSBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMuZGVmYXVsdE1ldGFkYXRhW2tdOworICAgICAgaWYgKG9wdF9tZXRhZGF0YSkgeworICAgICAgICBmb3IgKHZhciBrIGluIG9wdF9tZXRhZGF0YSkKKyAgICAgICAgICBtZXRhZGF0YVtrXSA9IG9wdF9tZXRhZGF0YVtrXTsKKyAgICAgIH0KKworICAgICAgdmFyIHR5cGVJbmZvID0gbmV3IFJlZ2lzdGVyZWRUeXBlSW5mbygKKyAgICAgICAgICBjb25zdHJ1Y3RvciwKKyAgICAgICAgICBtZXRhZGF0YSk7CisKKyAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ3dpbGwtcmVnaXN0ZXInKTsKKyAgICAgIGUudHlwZUluZm8gPSB0eXBlSW5mbzsKKyAgICAgIHJlZ2lzdHJ5LmRpc3BhdGNoRXZlbnQoZSk7CisKKyAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLnB1c2godHlwZUluZm8pOworCisgICAgICBlID0gbmV3IHRyLmIuRXZlbnQoJ3JlZ2lzdHJ5LWNoYW5nZWQnKTsKKyAgICAgIHJlZ2lzdHJ5LmRpc3BhdGNoRXZlbnQoZSk7CisgICAgfTsKKworICAgIHJlZ2lzdHJ5LnB1c2hDbGVhblN0YXRlQmVmb3JlVGVzdCA9IGZ1bmN0aW9uKCkgeworICAgICAgc2F2ZWRTdGF0ZVN0YWNrLnB1c2gocmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18pOworICAgICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18gPSBbXTsKKworICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgncmVnaXN0cnktY2hhbmdlZCcpOworICAgICAgcmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTsKKyAgICB9OworICAgIHJlZ2lzdHJ5LnBvcENsZWFuU3RhdGVBZnRlclRlc3QgPSBmdW5jdGlvbigpIHsKKyAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfID0gc2F2ZWRTdGF0ZVN0YWNrWzBdOworICAgICAgc2F2ZWRTdGF0ZVN0YWNrLnNwbGljZSgwLCAxKTsKKworICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgncmVnaXN0cnktY2hhbmdlZCcpOworICAgICAgcmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTsKKyAgICB9OworCisgICAgcmVnaXN0cnkuZmluZEluZGV4T2ZSZWdpc3RlcmVkQ29uc3RydWN0b3IgPSBmdW5jdGlvbihjb25zdHJ1Y3RvcikgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5sZW5ndGg7IGkrKykKKyAgICAgICAgaWYgKHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfW2ldLmNvbnN0cnVjdG9yID09IGNvbnN0cnVjdG9yKQorICAgICAgICAgIHJldHVybiBpOworICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9OworCisgICAgcmVnaXN0cnkudW5yZWdpc3RlciA9IGZ1bmN0aW9uKGNvbnN0cnVjdG9yKSB7CisgICAgICB2YXIgZm91bmRJbmRleCA9IHJlZ2lzdHJ5LmZpbmRJbmRleE9mUmVnaXN0ZXJlZENvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKTsKKyAgICAgIGlmIChmb3VuZEluZGV4ID09PSB1bmRlZmluZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihjb25zdHJ1Y3RvciArICcgbm90IHJlZ2lzdGVyZWQnKTsKKyAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLnNwbGljZShmb3VuZEluZGV4LCAxKTsKKworICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgncmVnaXN0cnktY2hhbmdlZCcpOworICAgICAgcmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTsKKyAgICB9OworCisgICAgcmVnaXN0cnkuZ2V0QWxsUmVnaXN0ZXJlZFR5cGVJbmZvcyA9IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfOworICAgIH07CisKKyAgICByZWdpc3RyeS5maW5kVHlwZUluZm8gPSBmdW5jdGlvbihjb25zdHJ1Y3RvcikgeworICAgICAgdmFyIGZvdW5kSW5kZXggPSB0aGlzLmZpbmRJbmRleE9mUmVnaXN0ZXJlZENvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKTsKKyAgICAgIGlmIChmb3VuZEluZGV4ICE9PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyZWRUeXBlSW5mb3NfW2ZvdW5kSW5kZXhdOworICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9OworCisgICAgcmVnaXN0cnkuZmluZFR5cGVJbmZvTWF0Y2hpbmcgPSBmdW5jdGlvbihwcmVkaWNhdGUsIG9wdF90aGlzKSB7CisgICAgICBvcHRfdGhpcyA9IG9wdF90aGlzID8gb3B0X3RoaXMgOiB1bmRlZmluZWQ7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciB0eXBlSW5mbyA9IHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfW2ldOworICAgICAgICBpZiAocHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIHR5cGVJbmZvKSkKKyAgICAgICAgICByZXR1cm4gdHlwZUluZm87CisgICAgICB9CisgICAgICByZXR1cm4gZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRUeXBlSW5mbzsKKyAgICB9OworICB9CisKKyAgcmV0dXJuIHsKKyAgICBfZGVjb3JhdGVCYXNpY0V4dGVuc2lvblJlZ2lzdHJ5OiBkZWNvcmF0ZUJhc2ljRXh0ZW5zaW9uUmVnaXN0cnkKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5X3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfdHlwZV9iYXNlZC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeV90eXBlX2Jhc2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRjNjFkZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfdHlwZV9iYXNlZC5odG1sCkBAIC0wLDAgKzEsMTU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnlfYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9jYXRlZ29yeV91dGlsLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKKyAgdmFyIGdldENhdGVnb3J5UGFydHMgPSB0ci5iLmdldENhdGVnb3J5UGFydHM7CisKKyAgdmFyIFJlZ2lzdGVyZWRUeXBlSW5mbyA9IHRyLmIuUmVnaXN0ZXJlZFR5cGVJbmZvOworICB2YXIgRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zID0gdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnM7CisKKworICBmdW5jdGlvbiBkZWNvcmF0ZVR5cGVCYXNlZEV4dGVuc2lvblJlZ2lzdHJ5KHJlZ2lzdHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucykgeworICAgIHZhciBzYXZlZFN0YXRlU3RhY2sgPSBbXTsKKworICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfID0gW107CisKKyAgICByZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwXyA9IHt9OworICAgIHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF8gPSB7fTsKKworICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyID0gZnVuY3Rpb24oY29uc3RydWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSkgeworCisgICAgICBleHRlbnNpb25SZWdpc3RyeU9wdGlvbnMudmFsaWRhdGVDb25zdHJ1Y3Rvcihjb25zdHJ1Y3Rvcik7CisKKyAgICAgIHZhciB0eXBlSW5mbyA9IG5ldyBSZWdpc3RlcmVkVHlwZUluZm8oCisgICAgICAgICAgY29uc3RydWN0b3IsCisgICAgICAgICAgbWV0YWRhdGEgfHwgZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRNZXRhZGF0YSk7CisKKyAgICAgIHR5cGVJbmZvLnR5cGVOYW1lcyA9IFtdOworICAgICAgdHlwZUluZm8uY2F0ZWdvcnlQYXJ0cyA9IFtdOworICAgICAgaWYgKG1ldGFkYXRhICYmIG1ldGFkYXRhLnR5cGVOYW1lKQorICAgICAgICB0eXBlSW5mby50eXBlTmFtZXMucHVzaChtZXRhZGF0YS50eXBlTmFtZSk7CisgICAgICBpZiAobWV0YWRhdGEgJiYgbWV0YWRhdGEudHlwZU5hbWVzKSB7CisgICAgICAgIHR5cGVJbmZvLnR5cGVOYW1lcy5wdXNoLmFwcGx5KAorICAgICAgICAgIHR5cGVJbmZvLnR5cGVOYW1lcywgbWV0YWRhdGEudHlwZU5hbWVzKTsKKyAgICAgIH0KKyAgICAgIGlmIChtZXRhZGF0YSAmJiBtZXRhZGF0YS5jYXRlZ29yeVBhcnRzKSB7CisgICAgICAgIHR5cGVJbmZvLmNhdGVnb3J5UGFydHMucHVzaC5hcHBseSgKKyAgICAgICAgICB0eXBlSW5mby5jYXRlZ29yeVBhcnRzLCBtZXRhZGF0YS5jYXRlZ29yeVBhcnRzKTsKKyAgICAgIH0KKworICAgICAgaWYgKHR5cGVJbmZvLnR5cGVOYW1lcy5sZW5ndGggPT09IDAgJiYKKyAgICAgICAgICB0eXBlSW5mby5jYXRlZ29yeVBhcnRzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlTmFtZSBvciB0eXBlTmFtZXMgbXVzdCBiZSBwcm92aWRlZCcpOworCisgICAgICAvLyBTYW5pdHkgY2hlY2tzLi4uCisgICAgICB0eXBlSW5mby50eXBlTmFtZXMuZm9yRWFjaChmdW5jdGlvbih0eXBlTmFtZSkgeworICAgICAgICBpZiAocmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwX1t0eXBlTmFtZV0pCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlTmFtZSAnICsgdHlwZU5hbWUgKyAnIGFscmVhZHkgcmVnaXN0ZXJlZCcpOworICAgICAgfSk7CisgICAgICB0eXBlSW5mby5jYXRlZ29yeVBhcnRzLmZvckVhY2goZnVuY3Rpb24oY2F0ZWdvcnlQYXJ0KSB7CisgICAgICAgIGlmIChyZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYXRlZ29yeVBhcnQgJyArIGNhdGVnb3J5UGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICcgYWxyZWFkeSByZWdpc3RlcmVkJyk7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgICAgICB2YXIgZSA9IG5ldyB0ci5iLkV2ZW50KCd3aWxsLXJlZ2lzdGVyJyk7CisgICAgICBlLnR5cGVJbmZvID0gdHlwZUluZm87CisgICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOworCisgICAgICAvLyBBY3R1YWwgcmVnaXN0cmF0aW9uLgorICAgICAgdHlwZUluZm8udHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24odHlwZU5hbWUpIHsKKyAgICAgICAgcmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwX1t0eXBlTmFtZV0gPSB0eXBlSW5mbzsKKyAgICAgIH0pOworICAgICAgdHlwZUluZm8uY2F0ZWdvcnlQYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKGNhdGVnb3J5UGFydCkgeworICAgICAgICByZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdID0gdHlwZUluZm87CisgICAgICB9KTsKKyAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfLnB1c2godHlwZUluZm8pOworCisgICAgICB2YXIgZSA9IG5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7CisgICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOworICAgIH07CisKKyAgICByZWdpc3RyeS5wdXNoQ2xlYW5TdGF0ZUJlZm9yZVRlc3QgPSBmdW5jdGlvbigpIHsKKyAgICAgIHNhdmVkU3RhdGVTdGFjay5wdXNoKHsKKyAgICAgICAgcmVnaXN0ZXJlZFR5cGVJbmZvczogcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18sCisgICAgICAgIHR5cGVOYW1lVG9UeXBlSW5mb01hcDogcmVnaXN0cnkudHlwZU5hbWVUb1R5cGVJbmZvTWFwXywKKyAgICAgICAgY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcDogcmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF8KKyAgICAgIH0pOworICAgICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18gPSBbXTsKKyAgICAgIHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF8gPSB7fTsKKyAgICAgIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfID0ge307CisgICAgICB2YXIgZSA9IG5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7CisgICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOworICAgIH07CisKKyAgICByZWdpc3RyeS5wb3BDbGVhblN0YXRlQWZ0ZXJUZXN0ID0gZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc3RhdGUgPSBzYXZlZFN0YXRlU3RhY2tbMF07CisgICAgICBzYXZlZFN0YXRlU3RhY2suc3BsaWNlKDAsIDEpOworCisgICAgICByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXyA9IHN0YXRlLnJlZ2lzdGVyZWRUeXBlSW5mb3M7CisgICAgICByZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfID0gc3RhdGUudHlwZU5hbWVUb1R5cGVJbmZvTWFwOworICAgICAgcmVnaXN0cnkuY2F0ZWdvcnlQYXJ0VG9UeXBlSW5mb01hcF8gPSBzdGF0ZS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwOworICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgncmVnaXN0cnktY2hhbmdlZCcpOworICAgICAgcmVnaXN0cnkuZGlzcGF0Y2hFdmVudChlKTsKKyAgICB9OworCisgICAgcmVnaXN0cnkudW5yZWdpc3RlciA9IGZ1bmN0aW9uKGNvbnN0cnVjdG9yKSB7CisgICAgICB2YXIgdHlwZUluZm9JbmRleCA9IC0xOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWdpc3RyeS5yZWdpc3RlcmVkVHlwZUluZm9zXy5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAocmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc19baV0uY29uc3RydWN0b3IgPT0gY29uc3RydWN0b3IpIHsKKyAgICAgICAgICB0eXBlSW5mb0luZGV4ID0gaTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKHR5cGVJbmZvSW5kZXggPT09IC0xKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoY29uc3RydWN0b3IgKyAnIG5vdCByZWdpc3RlcmVkJyk7CisKKyAgICAgIHZhciB0eXBlSW5mbyA9IHJlZ2lzdHJ5LnJlZ2lzdGVyZWRUeXBlSW5mb3NfW3R5cGVJbmZvSW5kZXhdOworICAgICAgcmVnaXN0cnkucmVnaXN0ZXJlZFR5cGVJbmZvc18uc3BsaWNlKHR5cGVJbmZvSW5kZXgsIDEpOworICAgICAgdHlwZUluZm8udHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24odHlwZU5hbWUpIHsKKyAgICAgICAgZGVsZXRlIHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF9bdHlwZU5hbWVdOworICAgICAgfSk7CisgICAgICB0eXBlSW5mby5jYXRlZ29yeVBhcnRzLmZvckVhY2goZnVuY3Rpb24oY2F0ZWdvcnlQYXJ0KSB7CisgICAgICAgIGRlbGV0ZSByZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdOworICAgICAgfSk7CisgICAgICB2YXIgZSA9IG5ldyB0ci5iLkV2ZW50KCdyZWdpc3RyeS1jaGFuZ2VkJyk7CisgICAgICByZWdpc3RyeS5kaXNwYXRjaEV2ZW50KGUpOworICAgIH07CisKKyAgICByZWdpc3RyeS5nZXRUeXBlSW5mbyA9IGZ1bmN0aW9uKGNhdGVnb3J5LCB0eXBlTmFtZSkgeworICAgICAgaWYgKGNhdGVnb3J5KSB7CisgICAgICAgIHZhciBjYXRlZ29yeVBhcnRzID0gZ2V0Q2F0ZWdvcnlQYXJ0cyhjYXRlZ29yeSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcnlQYXJ0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBjYXRlZ29yeVBhcnQgPSBjYXRlZ29yeVBhcnRzW2ldOworICAgICAgICAgIGlmIChyZWdpc3RyeS5jYXRlZ29yeVBhcnRUb1R5cGVJbmZvTWFwX1tjYXRlZ29yeVBhcnRdKQorICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmNhdGVnb3J5UGFydFRvVHlwZUluZm9NYXBfW2NhdGVnb3J5UGFydF07CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGlmIChyZWdpc3RyeS50eXBlTmFtZVRvVHlwZUluZm9NYXBfW3R5cGVOYW1lXSkKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LnR5cGVOYW1lVG9UeXBlSW5mb01hcF9bdHlwZU5hbWVdOworCisgICAgICByZXR1cm4gZXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zLmRlZmF1bHRUeXBlSW5mbzsKKyAgICB9OworCisgICAgLy8gVE9ETyhuZHVjYSk6IFJlbW92ZSBvciByZW5hbWUuCisgICAgcmVnaXN0cnkuZ2V0Q29uc3RydWN0b3IgPSBmdW5jdGlvbihjYXRlZ29yeSwgdHlwZU5hbWUpIHsKKyAgICAgIHZhciB0eXBlSW5mbyA9IHJlZ2lzdHJ5LmdldFR5cGVJbmZvKGNhdGVnb3J5LCB0eXBlTmFtZSk7CisgICAgICBpZiAodHlwZUluZm8pCisgICAgICAgIHJldHVybiB0eXBlSW5mby5jb25zdHJ1Y3RvcjsKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfTsKKyAgfQorCisgIHJldHVybiB7CisgICAgX2RlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnk6IGRlY29yYXRlVHlwZUJhc2VkRXh0ZW5zaW9uUmVnaXN0cnkKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZ3VpZC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2d1aWQuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2d1aWQuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2d1aWQuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2ludGVydmFsX3RyZWUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9pbnRlcnZhbF90cmVlLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9pbnRlcnZhbF90cmVlLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9pbnRlcnZhbF90cmVlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9pbnRlcnZhbF90cmVlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9pbnRlcnZhbF90cmVlX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2ludGVydmFsX3RyZWVfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvaW50ZXJ2YWxfdHJlZV90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FlYjIyMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sCkBAIC0wLDAgKzEsMjExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGFzQXJyYXkoYXJyYXlpc2gpIHsKKyAgICB2YXIgdmFsdWVzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheWlzaC5sZW5ndGg7IGkrKykKKyAgICAgIHZhbHVlcy5wdXNoKGFycmF5aXNoW2ldKTsKKyAgICByZXR1cm4gdmFsdWVzOworICB9CisKKyAgZnVuY3Rpb24gY29tcGFyZUFycmF5cyh4LCB5LCBlbGVtZW50Q21wKSB7CisgICAgdmFyIG1pbkxlbmd0aCA9IE1hdGgubWluKHgubGVuZ3RoLCB5Lmxlbmd0aCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtaW5MZW5ndGg7IGkrKykgeworICAgICAgdmFyIHRtcCA9IGVsZW1lbnRDbXAoeFtpXSwgeVtpXSk7CisgICAgICBpZiAodG1wKQorICAgICAgICByZXR1cm4gdG1wOworICAgIH0KKyAgICBpZiAoeC5sZW5ndGggPT0geS5sZW5ndGgpCisgICAgICByZXR1cm4gMDsKKworICAgIGlmICh4W2ldID09PSB1bmRlZmluZWQpCisgICAgICByZXR1cm4gLTE7CisKKyAgICByZXR1cm4gMTsKKyAgfQorCisgIC8qKgorICAgKiBDb21wYXJlcyB0d28gdmFsdWVzIHdoZW4gb25lIG9yIGJvdGggbWlnaHQgYmUgdW5kZWZpbmVkLiBVbmRlZmluZWQKKyAgICogdmFsdWVzIGFyZSBzb3J0ZWQgYWZ0ZXIgZGVmaW5lZC4KKyAgICovCisgIGZ1bmN0aW9uIGNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyh4LCB5LCBjbXAsIG9wdF90aGlzKSB7CisgICAgaWYgKHggIT09IHVuZGVmaW5lZCAmJiB5ICE9PSB1bmRlZmluZWQpCisgICAgICByZXR1cm4gY21wLmNhbGwob3B0X3RoaXMsIHgsIHkpOworICAgIGlmICh4ICE9PSB1bmRlZmluZWQpCisgICAgICByZXR1cm4gLTE7CisgICAgaWYgKHkgIT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiAxOworICAgIHJldHVybiAwOworICB9CisKKyAgZnVuY3Rpb24gY29uY2F0ZW5hdGVBcnJheXMoLyphcmd1bWVudHMqLykgeworICAgIHZhciB2YWx1ZXMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKCEoYXJndW1lbnRzW2ldIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FyZ3VtZW50cyAnICsgaSArICdpcyBub3QgYW4gYXJyYXknKTsKKyAgICAgIHZhbHVlcy5wdXNoLmFwcGx5KHZhbHVlcywgYXJndW1lbnRzW2ldKTsKKyAgICB9CisgICAgcmV0dXJuIHZhbHVlczsKKyAgfQorCisgIGZ1bmN0aW9uIGNvbmNhdGVuYXRlT2JqZWN0cygvKmFyZ3VtZW50cyovKSB7CisgICAgdmFyIHJlc3VsdCA9IHt9OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgb2JqZWN0ID0gYXJndW1lbnRzW2ldOworICAgICAgZm9yICh2YXIgaiBpbiBvYmplY3QpIHsKKyAgICAgICAgcmVzdWx0W2pdID0gb2JqZWN0W2pdOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgZnVuY3Rpb24gZGljdGlvbmFyeUtleXMoZGljdCkgeworICAgIHZhciBrZXlzID0gW107CisgICAgZm9yICh2YXIga2V5IGluIGRpY3QpCisgICAgICBrZXlzLnB1c2goa2V5KTsKKyAgICByZXR1cm4ga2V5czsKKyAgfQorCisgIGZ1bmN0aW9uIGRpY3Rpb25hcnlWYWx1ZXMoZGljdCkgeworICAgIHZhciB2YWx1ZXMgPSBbXTsKKyAgICBmb3IgKHZhciBrZXkgaW4gZGljdCkKKyAgICAgIHZhbHVlcy5wdXNoKGRpY3Rba2V5XSk7CisgICAgcmV0dXJuIHZhbHVlczsKKyAgfQorCisgIGZ1bmN0aW9uIGRpY3Rpb25hcnlMZW5ndGgoZGljdCkgeworICAgIHZhciBuID0gMDsKKyAgICBmb3IgKHZhciBrZXkgaW4gZGljdCkKKyAgICAgIG4rKzsKKyAgICByZXR1cm4gbjsKKyAgfQorCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IGRpY3Rpb25hcnkgd2l0aCBpdGVtcyBncm91cGVkIGJ5IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlCisgICAqIHNwZWNpZmllZCBmdW5jdGlvbiBiZWluZyBjYWxsZWQgb24gZWFjaCBpdGVtLgorICAgKiBAcGFyYW0geyFBcnJheS48T2JqZWN0Pn0gYXJ5IFRoZSBhcnJheSBiZWluZyBpdGVyYXRlZCB0aHJvdWdoCisgICAqIEBwYXJhbSB7IUZ1bmN0aW9ufSBmbiBUaGUgbWFwcGluZyBmdW5jdGlvbiBiZXR3ZWVuIHRoZSBhcnJheSB2YWx1ZSBhbmQgdGhlCisgICAqIG1hcCBrZXkuCisgICAqLworICBmdW5jdGlvbiBncm91cChhcnksIGZuKSB7CisgICAgcmV0dXJuIGFyeS5yZWR1Y2UoZnVuY3Rpb24oYWNjdW11bGF0b3IsIGN1cnIpIHsKKyAgICAgIHZhciBrZXkgPSBmbihjdXJyKTsKKworICAgICAgaWYgKGtleSBpbiBhY2N1bXVsYXRvcikKKyAgICAgICAgYWNjdW11bGF0b3Jba2V5XS5wdXNoKGN1cnIpOworICAgICAgZWxzZQorICAgICAgICBhY2N1bXVsYXRvcltrZXldID0gW2N1cnJdOworCisgICAgICByZXR1cm4gYWNjdW11bGF0b3I7CisgICAgfSwge30pOworICB9CisKKyAgZnVuY3Rpb24gaXRlckl0ZW1zKGRpY3QsIGZuLCBvcHRfdGhpcykgeworICAgIG9wdF90aGlzID0gb3B0X3RoaXMgfHwgdGhpczsKKyAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGRpY3QpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIGtleSA9IGtleXNbaV07CisgICAgICBmbi5jYWxsKG9wdF90aGlzLCBrZXksIGRpY3Rba2V5XSk7CisgICAgfQorICB9CisKKyAgLyoqCisgICAqIENyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5IHdpdGggdGhlIHNhbWUga2V5cyBhcyB0aGUgb3JpZ2luYWwgZGljdGlvbmFyeQorICAgKiBtYXBwZWQgdG8gdGhlIHJlc3VsdHMgb2YgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGNhbGxlZCBvbiB0aGUgY29ycmVzcG9uZGluZworICAgKiBlbnRyaWVzIGluIHRoZSBvcmlnaW5hbCBkaWN0aW9uYXJ5LCBpLmUuIHJlc3VsdFtrZXldID0gZm4oa2V5LCBkaWN0W2tleV0pCisgICAqIGZvciBhbGwga2V5cyBpbiBkaWN0IChvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9ubHkpLgorICAgKgorICAgKiBFeGFtcGxlOgorICAgKiAgIHZhciBzcmNEaWN0ID0ge2E6IDEwLCBiOiAxNX07CisgICAqICAgdmFyIGRzdERpY3QgPSBtYXBJdGVtcyhzcmNEaWN0LCBmdW5jdGlvbihrLCB2KSB7IHJldHVybiAyICogdjsgfSk7CisgICAqICAgLy8gc3JjRGljdCBpcyB1bm1vZGlmaWVkIGFuZCBkc3REaWN0IGlzIG5vdyBlcXVhbCB0byB7YTogMjAsIGI6IDMwfS4KKyAgICovCisgIGZ1bmN0aW9uIG1hcEl0ZW1zKGRpY3QsIGZuLCBvcHRfdGhpcykgeworICAgIG9wdF90aGlzID0gb3B0X3RoaXMgfHwgdGhpczsKKyAgICB2YXIgcmVzdWx0ID0ge307CisgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhkaWN0KTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKKyAgICAgIHZhciBrZXkgPSBrZXlzW2ldOworICAgICAgcmVzdWx0W2tleV0gPSBmbi5jYWxsKG9wdF90aGlzLCBrZXksIGRpY3Rba2V5XSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgIH0KKworICBmdW5jdGlvbiBpdGVyT2JqZWN0RmllbGRzUmVjdXJzaXZlbHkob2JqZWN0LCBmdW5jKSB7CisgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSkKKyAgICAgIHJldHVybjsKKworICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgZnVuYyhvYmplY3QsIGksIG9iamVjdFtpXSk7CisgICAgICAgIGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseShvYmplY3RbaV0sIGZ1bmMpOworICAgICAgfQorICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHsKKyAgICAgIHZhciB2YWx1ZSA9IG9iamVjdFtrZXldOworICAgICAgZnVuYyhvYmplY3QsIGtleSwgdmFsdWUpOworICAgICAgaXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5KHZhbHVlLCBmdW5jKTsKKyAgICB9CisgIH0KKworICBmdW5jdGlvbiBpZGVudGl0eShkKSB7CisgICAgcmV0dXJuIGQ7CisgIH0KKworICBmdW5jdGlvbiBmaW5kRmlyc3RJbmRleEluQXJyYXkoYXJ5LCBvcHRfZnVuYywgb3B0X3RoaXMpIHsKKyAgICB2YXIgZnVuYyA9IG9wdF9mdW5jIHx8IGlkZW50aXR5OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJ5Lmxlbmd0aDsgaSsrKSB7CisgICAgICBpZiAoZnVuYy5jYWxsKG9wdF90aGlzLCBhcnlbaV0sIGkpKQorICAgICAgICByZXR1cm4gaTsKKyAgICB9CisgICAgcmV0dXJuIC0xOworICB9CisKKyAgZnVuY3Rpb24gZmluZEZpcnN0SW5BcnJheShhcnksIG9wdF9mdW5jLCBvcHRfdGhpcykgeworICAgIHZhciBpID0gZmluZEZpcnN0SW5kZXhJbkFycmF5KGFyeSwgb3B0X2Z1bmMsIG9wdF9mdW5jKTsKKyAgICBpZiAoaSA9PT0gLTEpCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIHJldHVybiBhcnlbaV07CisgIH0KKworICBmdW5jdGlvbiBmaW5kRmlyc3RLZXlJbkRpY3RNYXRjaGluZyhkaWN0LCBvcHRfZnVuYywgb3B0X3RoaXMpIHsKKyAgICB2YXIgZnVuYyA9IG9wdF9mdW5jIHx8IGlkZW50aXR5OworICAgIGZvciAodmFyIGtleSBpbiBkaWN0KSB7CisgICAgICBpZiAoZnVuYy5jYWxsKG9wdF90aGlzLCBrZXksIGRpY3Rba2V5XSkpCisgICAgICAgIHJldHVybiBrZXk7CisgICAgfQorICAgIHJldHVybiB1bmRlZmluZWQ7CisgIH0KKworICByZXR1cm4geworICAgIGFzQXJyYXk6IGFzQXJyYXksCisgICAgY29uY2F0ZW5hdGVBcnJheXM6IGNvbmNhdGVuYXRlQXJyYXlzLAorICAgIGNvbmNhdGVuYXRlT2JqZWN0czogY29uY2F0ZW5hdGVPYmplY3RzLAorICAgIGNvbXBhcmVBcnJheXM6IGNvbXBhcmVBcnJheXMsCisgICAgY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzOiBjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMsCisgICAgZGljdGlvbmFyeUxlbmd0aDogZGljdGlvbmFyeUxlbmd0aCwKKyAgICBkaWN0aW9uYXJ5S2V5czogZGljdGlvbmFyeUtleXMsCisgICAgZGljdGlvbmFyeVZhbHVlczogZGljdGlvbmFyeVZhbHVlcywKKyAgICBncm91cDogZ3JvdXAsCisgICAgaXRlckl0ZW1zOiBpdGVySXRlbXMsCisgICAgbWFwSXRlbXM6IG1hcEl0ZW1zLAorICAgIGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseTogaXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5LAorICAgIGlkZW50aXR5OiBpZGVudGl0eSwKKyAgICBmaW5kRmlyc3RJbmRleEluQXJyYXk6IGZpbmRGaXJzdEluZGV4SW5BcnJheSwKKyAgICBmaW5kRmlyc3RJbkFycmF5OiBmaW5kRmlyc3RJbkFycmF5LAorICAgIGZpbmRGaXJzdEtleUluRGljdE1hdGNoaW5nOiBmaW5kRmlyc3RLZXlJbkRpY3RNYXRjaGluZworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9pdGVyYXRpb25faGVscGVyc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnNfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNmQ1NjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnNfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzID0gdHIuYi5jb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXM7CisgIHZhciBjb21wYXJlQXJyYXlzID0gdHIuYi5jb21wYXJlQXJyYXlzOworCisgIHRlc3QoJ2NvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcycsIGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIGNtcCh4LCB5KSB7CisgICAgICBhc3NlcnQuaXNEZWZpbmVkKHgpOworICAgICAgYXNzZXJ0LmlzRGVmaW5lZCh5KTsKKyAgICAgIHJldHVybiB4IC0geTsKKyAgICB9CisKKyAgICBhc3NlcnQuaXNCZWxvdyhjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoMCwgMSwgY21wKSwgMCk7CisgICAgYXNzZXJ0LmlzQWJvdmUoY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKDEsIDAsIGNtcCksIDApOworICAgIGFzc2VydC5lcXVhbChjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoMSwgMSwgY21wKSwgMCk7CisKKyAgICBhc3NlcnQuaXNCZWxvdyhjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoMCwgdW5kZWZpbmVkLCBjbXApLCAwKTsKKyAgICBhc3NlcnQuaXNBYm92ZShjb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXModW5kZWZpbmVkLCAwLCBjbXApLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjbXApLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY29tcGFyZUFycmF5cycsIGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIGNtcCh4LCB5KSB7CisgICAgICBhc3NlcnQuaXNEZWZpbmVkKHgpOworICAgICAgYXNzZXJ0LmlzRGVmaW5lZCh5KTsKKyAgICAgIHJldHVybiB4IC0geTsKKyAgICB9CisKKyAgICBhc3NlcnQuaXNCZWxvdyhjb21wYXJlQXJyYXlzKFsxXSwgWzJdLCBjbXApLCAwKTsKKyAgICBhc3NlcnQuaXNBYm92ZShjb21wYXJlQXJyYXlzKFsyXSwgWzFdLCBjbXApLCAwKTsKKworICAgIGFzc2VydC5pc0JlbG93KGNvbXBhcmVBcnJheXMoWzFdLCBbMSwgMl0sIGNtcCksIDApOworICAgIGFzc2VydC5pc0Fib3ZlKGNvbXBhcmVBcnJheXMoWzEsIDJdLCBbMV0sIGNtcCksIDApOworCisgICAgYXNzZXJ0LmlzQmVsb3coY29tcGFyZUFycmF5cyhbXSwgWzFdLCBjbXApLCAwKTsKKyAgICBhc3NlcnQuaXNBYm92ZShjb21wYXJlQXJyYXlzKFsxXSwgW10sIGNtcCksIDApOworCisgICAgYXNzZXJ0LmlzQWJvdmUoY29tcGFyZUFycmF5cyhbMl0sIFsxXSwgY21wKSwgMCk7CisKKyAgICBhc3NlcnQuZXF1YWwoY29tcGFyZUFycmF5cyhbXSwgW10sIGNtcCksIDApOworICAgIGFzc2VydC5lcXVhbChjb21wYXJlQXJyYXlzKFsxXSwgWzFdLCBjbXApLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnZ3JvdXAnLCBmdW5jdGlvbigpIHsKKyAgICAvLyBFbXB0eSBhcnJheQorICAgIHZhciBzcmNBcnJheSA9IFtdOworICAgIHZhciBmbiA9IGZ1bmN0aW9uKGN1cnIpIHsgcmV0dXJuIChjdXJyICUgMik7IH0KKyAgICB2YXIgZHN0RGljdCA9IHt9OworCisgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ci5iLmdyb3VwKHNyY0FycmF5LCBmbiksIGRzdERpY3QpOworCisgICAgLy8gTm9uLWVtcHR5IGFycmF5CisgICAgdmFyIHNyY0FycmF5ID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdOworICAgIHZhciBkc3REaWN0ID0geworICAgICAgMDogWzAsIDIsIDQsIDZdLAorICAgICAgMTogWzEsIDMsIDVdCisgICAgfTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwodHIuYi5ncm91cChzcmNBcnJheSwgZm4pLCBkc3REaWN0KTsKKyAgfSk7CisKKyAgdGVzdCgnbWFwSXRlbXMnLCBmdW5jdGlvbigpIHsKKyAgICAvLyBFbXB0eSBkaWN0aW9uYXJ5LgorICAgIHZhciBzcmNEaWN0ID0ge307CisgICAgdmFyIGRzdERpY3QgPSB0ci5iLm1hcEl0ZW1zKHNyY0RpY3QsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKKyAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9KTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoc3JjRGljdCksIDApOworICAgIGFzc2VydC5sZW5ndGhPZihPYmplY3Qua2V5cyhkc3REaWN0KSwgMCk7CisgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGRzdERpY3QsIHNyY0RpY3QpOworCisgICAgLy8gTm9uLWVtcHR5IGRpY3Rpb25hcnkuCisgICAgdmFyIHNyY0RpY3QgPSB7YTogMCwgYjogMzB9OworICAgIHZhciBkc3REaWN0ID0gdHIuYi5tYXBJdGVtcyhzcmNEaWN0LCBmdW5jdGlvbihrZXksIHZhbHVlKSB7CisgICAgICByZXR1cm4gOSAqIHZhbHVlIC8gNSArIDMyOworICAgIH0pOworICAgIGFzc2VydC5sZW5ndGhPZihPYmplY3Qua2V5cyhzcmNEaWN0KSwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHNyY0RpY3QuYSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNyY0RpY3QuYiwgMzApOworICAgIGFzc2VydC5sZW5ndGhPZihPYmplY3Qua2V5cyhkc3REaWN0KSwgMik7CisgICAgYXNzZXJ0LmVxdWFsKGRzdERpY3QuYSwgMzIpOworICAgIGFzc2VydC5lcXVhbChkc3REaWN0LmIsIDg2KTsKKyAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoZHN0RGljdCwgc3JjRGljdCk7CisKKyAgICAvLyBPcHRpb25hbCAndGhpcycgYXJndW1lbnQuCisgICAgdmFyIHNyY0RpY3QgPSB7YzogJz8nLCBkOiAnIScsIGU6ICcuJ307CisgICAgdmFyIGRzdERpY3QgPSB0ci5iLm1hcEl0ZW1zKHNyY0RpY3QsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKKyAgICAgIHJldHVybiBrZXkgKyB0aGlzLmRlbGltaXRlciArIHZhbHVlOworICAgIH0sIHtkZWxpbWl0ZXI6ICc9J30pOworICAgIGFzc2VydC5sZW5ndGhPZihPYmplY3Qua2V5cyhzcmNEaWN0KSwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKHNyY0RpY3QuYywgJz8nKTsKKyAgICBhc3NlcnQuZXF1YWwoc3JjRGljdC5kLCAnIScpOworICAgIGFzc2VydC5lcXVhbChzcmNEaWN0LmUsICcuJyk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKE9iamVjdC5rZXlzKGRzdERpY3QpLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwoZHN0RGljdC5jLCAnYz0/Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGRzdERpY3QuZCwgJ2Q9IScpOworICAgIGFzc2VydC5lcXVhbChkc3REaWN0LmUsICdlPS4nKTsKKyAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoZHN0RGljdCwgc3JjRGljdCk7CisKKyAgICAvLyBJbmhlcml0ZWQgcHJvcGVydGllcyBzaG91bGQgbm90IGJlIG1hcHBlZC4KKyAgICB2YXIgc3JjRGljdCA9IHtfX3Byb3RvX186IHthOiAxMH19OworICAgIHZhciBkc3REaWN0ID0gdHIuYi5tYXBJdGVtcyhzcmNEaWN0LCBmdW5jdGlvbihrZXksIHZhbHVlKSB7CisgICAgICByZXR1cm4gdmFsdWU7CisgICAgfSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKE9iamVjdC5rZXlzKHNyY0RpY3QpLCAwKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoZHN0RGljdCksIDApOworICB9KTsKKworICB0ZXN0KCdpZGVudGl0eScsIGZ1bmN0aW9uKCkgeworICAgIC8vIFVuZGVmaW5lZCB2YWx1ZS4KKyAgICBhc3NlcnQuaXNVbmRlZmluZWQodHIuYi5pZGVudGl0eSh1bmRlZmluZWQpKTsKKworICAgIC8vIFByaW1pdGl2ZSB2YWx1ZS4KKyAgICBhc3NlcnQuZXF1YWwodHIuYi5pZGVudGl0eSgtMjczLjE1KSwgLTI3My4xNSk7CisKKyAgICAvLyBMaXN0LgorICAgIHZhciBsaXN0ID0gWydsaXN0JywgJ3dpdGgnLCAxLCB1bmRlZmluZWQsICd2YWx1ZSddOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ci5iLmlkZW50aXR5KGxpc3QpLCBsaXN0KTsKKworICAgIC8vIE9iamVjdC4KKyAgICB2YXIgb2JqZWN0ID0geydoYXNJdGVtcyc6IHRydWV9OworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ci5iLmlkZW50aXR5KG9iamVjdCksIG9iamVjdCk7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRGaXJzdEtleUluRGljdE1hdGNoaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpY3QgPSB7YTogMSwgYjogMiwgYzogM307CisKKyAgICB2YXIgdGhhdCA9IHRoaXM7CisgICAgdmFyIGsgPSB0ci5iLmZpbmRGaXJzdEtleUluRGljdE1hdGNoaW5nKGRpY3QsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKKyAgICAgIGFzc2VydC5lcXVhbCh0aGlzLCB0aGF0KTsKKyAgICAgIHJldHVybiB2YWx1ZSA9PSAyOworICAgIH0sIHRoaXMpOworICAgIGFzc2VydC5lcXVhbChrLCAnYicpOworCisgICAgdmFyIGsgPSB0ci5iLmZpbmRGaXJzdEtleUluRGljdE1hdGNoaW5nKGRpY3QsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKKyAgICAgIGFzc2VydC5lcXVhbCh0aGlzLCB0aGF0KTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LCB0aGlzKTsKKyAgICBhc3NlcnQuZXF1YWwoaywgdW5kZWZpbmVkKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL21hdGguaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9tYXRoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA1NThkMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9tYXRoLmh0bWwKQEAgLTAsMCArMSwxMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8c2NyaXB0IHNyYz0iL2dsLW1hdHJpeC1taW4uanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBjbGFtcCh4LCBsbywgaGkpIHsKKyAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoeCwgbG8pLCBoaSk7CisgIH0KKworICBmdW5jdGlvbiBsZXJwKHBlcmNlbnRhZ2UsIGxvLCBoaSkgeworICAgIHZhciByYW5nZSA9IGhpIC0gbG87CisgICAgcmV0dXJuIGxvICsgcGVyY2VudGFnZSAqIHJhbmdlOworICB9CisKKyAgZnVuY3Rpb24gbm9ybWFsaXplKHZhbHVlLCBsbywgaGkpIHsKKyAgICByZXR1cm4gKHZhbHVlIC0gbG8pIC8gKGhpIC0gbG8pOworICB9CisKKyAgZnVuY3Rpb24gZGVnMnJhZChkZWcpIHsKKyAgICByZXR1cm4gKE1hdGguUEkgKiBkZWcpIC8gMTgwLjA7CisgIH0KKworICB2YXIgdG1wX3ZlYzIgPSB2ZWMyLmNyZWF0ZSgpOworICB2YXIgdG1wX3ZlYzJiID0gdmVjMi5jcmVhdGUoKTsKKyAgdmFyIHRtcF92ZWM0ID0gdmVjNC5jcmVhdGUoKTsKKyAgdmFyIHRtcF9tYXQyZCA9IG1hdDJkLmNyZWF0ZSgpOworCisgIHZlYzIuY3JlYXRlRnJvbUFycmF5ID0gZnVuY3Rpb24oYXJyKSB7CisgICAgaWYgKGFyci5sZW5ndGggIT0gMikKKyAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIGJlIGxlbmd0aCAyJyk7CisgICAgdmFyIHYgPSB2ZWMyLmNyZWF0ZSgpOworICAgIHZlYzIuc2V0KHYsIGFyclswXSwgYXJyWzFdKTsKKyAgICByZXR1cm4gdjsKKyAgfTsKKworICB2ZWMyLmNyZWF0ZVhZID0gZnVuY3Rpb24oeCwgeSkgeworICAgIHZhciB2ID0gdmVjMi5jcmVhdGUoKTsKKyAgICB2ZWMyLnNldCh2LCB4LCB5KTsKKyAgICByZXR1cm4gdjsKKyAgfTsKKworICB2ZWMyLnRvU3RyaW5nID0gZnVuY3Rpb24oYSkgeworICAgIHJldHVybiAnWycgKyBhWzBdICsgJywgJyArIGFbMV0gKyAnXSc7CisgIH07CisKKyAgdmVjMi5hZGRUd29TY2FsZWRVbml0VmVjdG9ycyA9IGZ1bmN0aW9uKG91dCwgdTEsIHNjYWxlMSwgdTIsIHNjYWxlMikgeworICAgIC8vIG91dCA9IHUxICogc2NhbGUxICsgdTIgKiBzY2FsZTIKKyAgICB2ZWMyLnNjYWxlKHRtcF92ZWMyLCB1MSwgc2NhbGUxKTsKKyAgICB2ZWMyLnNjYWxlKHRtcF92ZWMyYiwgdTIsIHNjYWxlMik7CisgICAgdmVjMi5hZGQob3V0LCB0bXBfdmVjMiwgdG1wX3ZlYzJiKTsKKyAgfTsKKworICB2ZWMyLmludGVycG9sYXRlUGllY2V3aXNlRnVuY3Rpb24gPSBmdW5jdGlvbihwb2ludHMsIHgpIHsKKyAgICBpZiAoeCA8IHBvaW50c1swXVswXSkKKyAgICAgIHJldHVybiBwb2ludHNbMF1bMV07CisgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBwb2ludHMubGVuZ3RoOyArK2kpIHsKKyAgICAgIGlmICh4IDwgcG9pbnRzW2ldWzBdKSB7CisgICAgICAgIHZhciBwZXJjZW50ID0gbm9ybWFsaXplKHgsIHBvaW50c1tpIC0gMV1bMF0sIHBvaW50c1tpXVswXSk7CisgICAgICAgIHJldHVybiBsZXJwKHBlcmNlbnQsIHBvaW50c1tpIC0gMV1bMV0sIHBvaW50c1tpXVsxXSk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdWzFdOworICB9OworCisgIHZlYzMuY3JlYXRlWFlaID0gZnVuY3Rpb24oeCwgeSwgeikgeworICAgIHZhciB2ID0gdmVjMy5jcmVhdGUoKTsKKyAgICB2ZWMzLnNldCh2LCB4LCB5LCB6KTsKKyAgICByZXR1cm4gdjsKKyAgfTsKKworICB2ZWMzLnRvU3RyaW5nID0gZnVuY3Rpb24oYSkgeworICAgIHJldHVybiAndmVjMygnICsgYVswXSArICcsICcgKyBhWzFdICsgJywgJyArIGFbMl0gKyAnKSc7CisgIH0KKworICBtYXQyZC50cmFuc2xhdGVYWSA9IGZ1bmN0aW9uKG91dCwgeCwgeSkgeworICAgIHZlYzIuc2V0KHRtcF92ZWMyLCB4LCB5KTsKKyAgICBtYXQyZC50cmFuc2xhdGUob3V0LCBvdXQsIHRtcF92ZWMyKTsKKyAgfQorCisgIG1hdDJkLnNjYWxlWFkgPSBmdW5jdGlvbihvdXQsIHgsIHkpIHsKKyAgICB2ZWMyLnNldCh0bXBfdmVjMiwgeCwgeSk7CisgICAgbWF0MmQuc2NhbGUob3V0LCBvdXQsIHRtcF92ZWMyKTsKKyAgfQorCisgIHZlYzQudW5pdGl6ZSA9IGZ1bmN0aW9uKG91dCwgYSkgeworICAgIG91dFswXSA9IGFbMF0gLyBhWzNdOworICAgIG91dFsxXSA9IGFbMV0gLyBhWzNdOworICAgIG91dFsyXSA9IGFbMl0gLyBhWzNdOworICAgIG91dFszXSA9IDE7CisgICAgcmV0dXJuIG91dDsKKyAgfQorCisgIHZlYzIuY29weUZyb21WZWM0ID0gZnVuY3Rpb24ob3V0LCBhKSB7CisgICAgdmVjNC51bml0aXplKHRtcF92ZWM0LCBhKTsKKyAgICB2ZWMyLmNvcHkob3V0LCB0bXBfdmVjNCk7CisgIH0KKworICByZXR1cm4geworICAgIGNsYW1wOiBjbGFtcCwKKyAgICBsZXJwOiBsZXJwLAorICAgIG5vcm1hbGl6ZTogbm9ybWFsaXplLAorICAgIGRlZzJyYWQ6IGRlZzJyYWQKKyAgfTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9tYXRoX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9tYXRoX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL21hdGhfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvbWF0aF90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9xdWFkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcXVhZC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcXVhZC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcXVhZC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcXVhZF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcXVhZF90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9xdWFkX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3F1YWRfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFmLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY4NjE4NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9yYWYuaHRtbApAQCAtMCwwICsxLDE2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgeworICAvLyBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIGNhdXNlIHN0YWNrIHRyYWNlcyB0byBnZXQgZHVtcGVkIGludG8gdGhlCisgIC8vIHRhc2tzLiBXaGVuIGFuIGV4Y2VwdGlvbiBoYXBwZW5zIHRoZSBvcmlnaW5hbCBzdGFjayB3aWxsIGJlIHByaW50ZWQuCisgIC8vCisgIC8vIE5PVEU6IFRoaXMgc2hvdWxkIG5ldmVyIGJlIHNldCBjb21taXR0ZWQgYXMgdHJ1ZS4KKyAgdmFyIHJlY29yZFJBRlN0YWNrcyA9IGZhbHNlOworCisgIHZhciBwZW5kaW5nUHJlQUZzID0gW107CisgIHZhciBwZW5kaW5nUkFGcyA9IFtdOworICB2YXIgcGVuZGluZ0lkbGVDYWxsYmFja3MgPSBbXTsKKyAgdmFyIGN1cnJlbnRSQUZEaXNwYXRjaExpc3QgPSB1bmRlZmluZWQ7CisKKyAgdmFyIHJhZlNjaGVkdWxlZCA9IGZhbHNlOworCisgIGZ1bmN0aW9uIHNjaGVkdWxlUkFGKCkgeworICAgIGlmIChyYWZTY2hlZHVsZWQpCisgICAgICByZXR1cm47CisgICAgcmFmU2NoZWR1bGVkID0gdHJ1ZTsKKyAgICBpZiAodHIuaXNIZWFkbGVzcykgeworICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgcHJvY2Vzc1JlcXVlc3RzKDApOworICAgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICBjb25zb2xlLmxvZyhlLnN0YWNrKTsKKyAgICAgICAgdGhyb3cgZTsKKyAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICBpZiAod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSkgeworICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHByb2Nlc3NSZXF1ZXN0cyk7CisgICAgICB9IGVsc2UgeworICAgICAgICB2YXIgZGVsdGEgPSBEYXRlLm5vdygpIC0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKGRvbVRpbWVTdGFtcCkgeworICAgICAgICAgIHByb2Nlc3NSZXF1ZXN0cyhkb21UaW1lU3RhbXAgLSBkZWx0YSk7CisgICAgICAgIH0pOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uIG9uQW5pbWF0aW9uRnJhbWVFcnJvcihlLCBvcHRfc3RhY2spIHsKKyAgICBjb25zb2xlLmxvZyhlLnN0YWNrKTsKKyAgICBpZiAodHIuaXNIZWFkbGVzcykKKyAgICAgIHRocm93IGU7CisKKyAgICBpZiAob3B0X3N0YWNrKQorICAgICAgY29uc29sZS5sb2cob3B0X3N0YWNrKTsKKworICAgIGlmIChlLm1lc3NhZ2UpCisgICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSwgZS5zdGFjayk7CisgICAgZWxzZQorICAgICAgY29uc29sZS5lcnJvcihlKTsKKyAgfQorCisgIGZ1bmN0aW9uIHJ1blRhc2sodGFzaywgZnJhbWVCZWdpblRpbWUpIHsKKyAgICB0cnkgeworICAgICAgdGFzay5jYWxsYmFjay5jYWxsKHRhc2suY29udGV4dCwgZnJhbWVCZWdpblRpbWUpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIHRyLmIub25BbmltYXRpb25GcmFtZUVycm9yKGUsIHRhc2suc3RhY2spOworICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uIHByb2Nlc3NSZXF1ZXN0cyhmcmFtZUJlZ2luVGltZSkgeworICAgIC8vIFdlIGFzc3VtZSB0aGF0IHdlIHdhbnQgdG8gZG8gYSBtYXhpbXVtIG9mIDEwbXMgb3B0aW9uYWwgd29yayBwZXIgZnJhbWUuCisgICAgLy8gSG9wZWZ1bGx5IHJBRiB3aWxsIGV2ZW50dWFsbHkgcGFzcyB0aGlzIGluIGZvciB1cy4KKyAgICB2YXIgcmFmQ29tcGxldGlvbkRlYWRsaW5lID0gZnJhbWVCZWdpblRpbWUgKyAxMDsKKworICAgIHJhZlNjaGVkdWxlZCA9IGZhbHNlOworCisKKyAgICB2YXIgY3VycmVudFByZUFGcyA9IHBlbmRpbmdQcmVBRnM7CisgICAgY3VycmVudFJBRkRpc3BhdGNoTGlzdCA9IHBlbmRpbmdSQUZzOworICAgIHBlbmRpbmdQcmVBRnMgPSBbXTsKKyAgICBwZW5kaW5nUkFGcyA9IFtdOworICAgIHZhciBoYXNSQUZUYXNrcyA9IGN1cnJlbnRQcmVBRnMubGVuZ3RoIHx8IGN1cnJlbnRSQUZEaXNwYXRjaExpc3QubGVuZ3RoOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjdXJyZW50UHJlQUZzLmxlbmd0aDsgaSsrKQorICAgICAgcnVuVGFzayhjdXJyZW50UHJlQUZzW2ldLCBmcmFtZUJlZ2luVGltZSk7CisKKyAgICB3aGlsZSAoY3VycmVudFJBRkRpc3BhdGNoTGlzdC5sZW5ndGggPiAwKQorICAgICAgcnVuVGFzayhjdXJyZW50UkFGRGlzcGF0Y2hMaXN0LnNoaWZ0KCksIGZyYW1lQmVnaW5UaW1lKTsKKyAgICBjdXJyZW50UkFGRGlzcGF0Y2hMaXN0ID0gdW5kZWZpbmVkOworCisgICAgaWYgKCFoYXNSQUZUYXNrcykgeworICAgICAgd2hpbGUgKHBlbmRpbmdJZGxlQ2FsbGJhY2tzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgcnVuVGFzayhwZW5kaW5nSWRsZUNhbGxiYWNrcy5zaGlmdCgpKTsKKyAgICAgICAgLy8gQ2hlY2sgdGltZXIgYWZ0ZXIgcnVubmluZyBhdCBsZWFzdCBvbmUgaWRsZSB0YXNrIHRvIGF2b2lkIGJ1Z2d5CisgICAgICAgIC8vIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSBvbiBzb21lIHBsYXRmb3JtcyBmcm9tIGJsb2NraW5nIHRoZSBpZGxlCisgICAgICAgIC8vIHRhc2sgcXVldWUuCisgICAgICAgIGlmICh0ci5pc0hlYWRsZXNzIHx8IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA+PSByYWZDb21wbGV0aW9uRGVhZGxpbmUpCisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorCisgICAgaWYgKHBlbmRpbmdJZGxlQ2FsbGJhY2tzLmxlbmd0aCA+IDApCisgICAgICBzY2hlZHVsZVJBRigpOworICB9CisKKyAgZnVuY3Rpb24gZ2V0U3RhY2tfKCkgeworICAgIGlmICghcmVjb3JkUkFGU3RhY2tzKQorICAgICAgcmV0dXJuICcnOworCisgICAgdmFyIHN0YWNrTGluZXMgPSB0ci5iLnN0YWNrVHJhY2UoKTsKKyAgICAvLyBTdHJpcCBvZmYgZ2V0U3RhY2tfLgorICAgIHN0YWNrTGluZXMuc2hpZnQoKTsKKyAgICByZXR1cm4gc3RhY2tMaW5lcy5qb2luKCdcbicpOworICB9CisKKyAgZnVuY3Rpb24gcmVxdWVzdFByZUFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgIHBlbmRpbmdQcmVBRnMucHVzaCh7CisgICAgICBjYWxsYmFjazogY2FsbGJhY2ssCisgICAgICBjb250ZXh0OiBvcHRfdGhpcyB8fCB3aW5kb3csCisgICAgICBzdGFjazogZ2V0U3RhY2tfKCl9KTsKKyAgICBzY2hlZHVsZVJBRigpOworICB9CisKKyAgZnVuY3Rpb24gcmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5UaGlzRnJhbWVJZlBvc3NpYmxlKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgIGlmICghY3VycmVudFJBRkRpc3BhdGNoTGlzdCkgeworICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGN1cnJlbnRSQUZEaXNwYXRjaExpc3QucHVzaCh7CisgICAgICBjYWxsYmFjazogY2FsbGJhY2ssCisgICAgICBjb250ZXh0OiBvcHRfdGhpcyB8fCB3aW5kb3csCisgICAgICBzdGFjazogZ2V0U3RhY2tfKCl9KTsKKyAgICByZXR1cm47CisgIH0KKworICBmdW5jdGlvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2ssIG9wdF90aGlzKSB7CisgICAgcGVuZGluZ1JBRnMucHVzaCh7CisgICAgICBjYWxsYmFjazogY2FsbGJhY2ssCisgICAgICBjb250ZXh0OiBvcHRfdGhpcyB8fCB3aW5kb3csCisgICAgICBzdGFjazogZ2V0U3RhY2tfKCl9KTsKKyAgICBzY2hlZHVsZVJBRigpOworICB9CisKKyAgZnVuY3Rpb24gcmVxdWVzdElkbGVDYWxsYmFjayhjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICBwZW5kaW5nSWRsZUNhbGxiYWNrcy5wdXNoKHsKKyAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaywKKyAgICAgIGNvbnRleHQ6IG9wdF90aGlzIHx8IHdpbmRvdywKKyAgICAgIHN0YWNrOiBnZXRTdGFja18oKX0pOworICAgIHNjaGVkdWxlUkFGKCk7CisgIH0KKworICBmdW5jdGlvbiBmb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKGZyYW1lQmVnaW5UaW1lKSB7CisgICAgaWYgKCFyYWZTY2hlZHVsZWQpCisgICAgICByZXR1cm47CisgICAgcHJvY2Vzc1JlcXVlc3RzKGZyYW1lQmVnaW5UaW1lKTsKKyAgfQorCisgIHJldHVybiB7CisgICAgb25BbmltYXRpb25GcmFtZUVycm9yOiBvbkFuaW1hdGlvbkZyYW1lRXJyb3IsCisgICAgcmVxdWVzdFByZUFuaW1hdGlvbkZyYW1lOiByZXF1ZXN0UHJlQW5pbWF0aW9uRnJhbWUsCisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUsCisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5UaGlzRnJhbWVJZlBvc3NpYmxlOgorICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUsCisgICAgcmVxdWVzdElkbGVDYWxsYmFjazogcmVxdWVzdElkbGVDYWxsYmFjaywKKyAgICBmb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuOiBmb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3JhZl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFmX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDA0Njc5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3JhZl90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBpZiAodHIuaXNIZWFkbGVzcykKKyAgICByZXR1cm47CisKKyAgdmFyIGZha2VOb3cgPSB1bmRlZmluZWQ7CisgIGZ1bmN0aW9uIHdpdGhGYWtlV2luZG93UGVyZm9ybWFuY2VOb3coZnVuYykgeworICAgIHZhciBvbGROb3cgPSB3aW5kb3cucGVyZm9ybWFuY2Uubm93OworICAgIHRyeSB7CisgICAgICB3aW5kb3cucGVyZm9ybWFuY2Uubm93ID0gZnVuY3Rpb24oKSB7IHJldHVybiBmYWtlTm93OyB9OworICAgICAgZnVuYygpOworICAgIH0gZmluYWxseSB7CisgICAgICB3aW5kb3cucGVyZm9ybWFuY2Uubm93ID0gb2xkTm93OworICAgIH0KKyAgfQorCisgIHRlc3QoJ3J1bklkbGVUYXNrV2hpbGVJZGxlJywgZnVuY3Rpb24oKSB7CisgICAgd2l0aEZha2VXaW5kb3dQZXJmb3JtYW5jZU5vdyhmdW5jdGlvbigpIHsKKyAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigxMDAwMDApOyAgLy8gQ2xlYXIgY3VycmVudCBSQUYgdGFzayBxdWV1ZS4KKworICAgICAgdmFyIHJhZlJhbiA9IGZhbHNlOworICAgICAgdHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgIHJhZlJhbiA9IHRydWU7CisgICAgICB9KTsKKyAgICAgIHZhciBpZGxlUmFuID0gZmFsc2U7CisgICAgICB0ci5iLnJlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgIGlkbGVSYW4gPSB0cnVlOworICAgICAgfSk7CisgICAgICBmYWtlTm93ID0gMDsKKyAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bihmYWtlTm93KTsKKyAgICAgIGFzc2VydC5pc0ZhbHNlKGlkbGVSYW4pOworICAgICAgYXNzZXJ0LmlzVHJ1ZShyYWZSYW4pOworICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKGZha2VOb3cpOworICAgICAgYXNzZXJ0LmlzVHJ1ZShpZGxlUmFuKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgdGVzdCgndHdvU2hvcnRJZGxlQ2FsbGJhY2tzJywgZnVuY3Rpb24oKSB7CisgICAgd2l0aEZha2VXaW5kb3dQZXJmb3JtYW5jZU5vdyhmdW5jdGlvbigpIHsKKyAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigxMDAwMDApOyAgLy8gQ2xlYXIgY3VycmVudCBSQUYgdGFzayBxdWV1ZS4KKworICAgICAgdmFyIGlkbGUxUmFuID0gZmFsc2U7CisgICAgICB2YXIgaWRsZTJSYW4gPSBmYWxzZTsKKyAgICAgIHRyLmIucmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgZmFrZU5vdyArPSAxOworICAgICAgICBpZGxlMVJhbiA9IHRydWU7CisgICAgICB9KTsKKyAgICAgIHRyLmIucmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgZmFrZU5vdyArPSAxOworICAgICAgICBpZGxlMlJhbiA9IHRydWU7CisgICAgICB9KTsKKyAgICAgIGZha2VOb3cgPSAwOworICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKGZha2VOb3cpOworICAgICAgYXNzZXJ0LmlzVHJ1ZShpZGxlMVJhbik7CisgICAgICBhc3NlcnQuaXNUcnVlKGlkbGUyUmFuKTsKKyAgICB9KTsKKyAgfSk7CisKKworICB0ZXN0KCdvbmVMb25nT25lU2hvcnRJZGxlQ2FsbGJhY2snLCBmdW5jdGlvbigpIHsKKyAgICB3aXRoRmFrZVdpbmRvd1BlcmZvcm1hbmNlTm93KGZ1bmN0aW9uKCkgeworICAgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDEwMDAwMCk7ICAvLyBDbGVhciBjdXJyZW50IFJBRiB0YXNrIHF1ZXVlLgorCisgICAgICB2YXIgaWRsZTFSYW4gPSBmYWxzZTsKKyAgICAgIHZhciBpZGxlMlJhbiA9IGZhbHNlOworICAgICAgdHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICBmYWtlTm93ICs9IDEwMDsKKyAgICAgICAgaWRsZTFSYW4gPSB0cnVlOworICAgICAgfSk7CisgICAgICB0ci5iLnJlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgIGZha2VOb3cgKz0gMTsKKyAgICAgICAgaWRsZTJSYW4gPSB0cnVlOworICAgICAgfSk7CisgICAgICBmYWtlTm93ID0gMDsKKyAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bihmYWtlTm93KTsKKyAgICAgIGFzc2VydC5pc1RydWUoaWRsZTFSYW4pOworICAgICAgYXNzZXJ0LmlzRmFsc2UoaWRsZTJSYW4pOworCisgICAgICAvLyBSZXNldCBpZGxlMVJhbiB0byB2ZXJpZnkgdGhhdCBpdCBkb3NuJ3QgcnVuIGFnYWluLgorICAgICAgaWRsZTFSYW4gPSBmYWxzZTsKKworICAgICAgLy8gTm93IHJ1bi4gaWRsZTIgc2hvdWxkIG5vdyBydW4uCisgICAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oZmFrZU5vdyk7CisgICAgICBhc3NlcnQuaXNGYWxzZShpZGxlMVJhbik7CisgICAgICBhc3NlcnQuaXNUcnVlKGlkbGUyUmFuKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgdGVzdCgnYnVnZ3lQZXJmb3JtYW5jZU5vd0RvZXNOb3RCbG9ja0lkbGVUYXNrcycsIGZ1bmN0aW9uKCkgeworICAgIHdpdGhGYWtlV2luZG93UGVyZm9ybWFuY2VOb3coZnVuY3Rpb24oKSB7CisgICAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oKTsgIC8vIENsZWFyIGN1cnJlbnQgUkFGIHRhc2sgcXVldWUuCisKKyAgICAgIHZhciBpZGxlMVJhbiA9IGZhbHNlOworICAgICAgdmFyIGlkbGUyUmFuID0gZmFsc2U7CisgICAgICB0ci5iLnJlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgIGZha2VOb3cgKz0gMTAwOworICAgICAgICBpZGxlMVJhbiA9IHRydWU7CisgICAgICB9KTsKKyAgICAgIHRyLmIucmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgZmFrZU5vdyArPSAxOworICAgICAgICBpZGxlMlJhbiA9IHRydWU7CisgICAgICB9KTsKKyAgICAgIGZha2VOb3cgPSAxMDAwMDsKKyAgICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigwKTsKKyAgICAgIGFzc2VydC5pc1RydWUoaWRsZTFSYW4pOworICAgICAgYXNzZXJ0LmlzRmFsc2UoaWRsZTJSYW4pOworCisgICAgICAvLyBSZXNldCBpZGxlMVJhbiB0byB2ZXJpZnkgdGhhdCBpdCBkb3NuJ3QgcnVuIGFnYWluLgorICAgICAgaWRsZTFSYW4gPSBmYWxzZTsKKworICAgICAgLy8gTm93IHJ1bi4gaWRsZTIgc2hvdWxkIG5vdyBydW4uCisgICAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oMCk7CisgICAgICBhc3NlcnQuaXNGYWxzZShpZGxlMVJhbik7CisgICAgICBhc3NlcnQuaXNUcnVlKGlkbGUyUmFuKTsKKyAgICB9KTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9yYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MDQzNmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2UuaHRtbApAQCAtMCwwICsxLDE0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUXVpY2sgcmFuZ2UgY29tcHV0YXRpb25zLgorICovCit0ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgeworCisgIGZ1bmN0aW9uIFJhbmdlKCkgeworICAgIHRoaXMuaXNFbXB0eV8gPSB0cnVlOworICAgIHRoaXMubWluXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLm1heF8gPSB1bmRlZmluZWQ7CisgIH07CisKKyAgUmFuZ2UucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIHJlc2V0OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuaXNFbXB0eV8gPSB0cnVlOworICAgICAgdGhpcy5taW5fID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5tYXhfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgaXNFbXB0eSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmlzRW1wdHlfOworICAgIH0sCisKKyAgICBhZGRSYW5nZTogZnVuY3Rpb24ocmFuZ2UpIHsKKyAgICAgIGlmIChyYW5nZS5pc0VtcHR5KQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLmFkZFZhbHVlKHJhbmdlLm1pbik7CisgICAgICB0aGlzLmFkZFZhbHVlKHJhbmdlLm1heCk7CisgICAgfSwKKworICAgIGFkZFZhbHVlOiBmdW5jdGlvbih2YWx1ZSkgeworICAgICAgaWYgKHRoaXMuaXNFbXB0eV8pIHsKKyAgICAgICAgdGhpcy5tYXhfID0gdmFsdWU7CisgICAgICAgIHRoaXMubWluXyA9IHZhbHVlOworICAgICAgICB0aGlzLmlzRW1wdHlfID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHRoaXMubWF4XyA9IE1hdGgubWF4KHRoaXMubWF4XywgdmFsdWUpOworICAgICAgdGhpcy5taW5fID0gTWF0aC5taW4odGhpcy5taW5fLCB2YWx1ZSk7CisgICAgfSwKKworICAgIHNldCBtaW4obWluKSB7CisgICAgICB0aGlzLmlzRW1wdHlfID0gZmFsc2U7CisgICAgICB0aGlzLm1pbl8gPSBtaW47CisgICAgfSwKKworICAgIGdldCBtaW4oKSB7CisgICAgICBpZiAodGhpcy5pc0VtcHR5XykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0aGlzLm1pbl87CisgICAgfSwKKworICAgIGdldCBtYXgoKSB7CisgICAgICBpZiAodGhpcy5pc0VtcHR5XykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0aGlzLm1heF87CisgICAgfSwKKworICAgIHNldCBtYXgobWF4KSB7CisgICAgICB0aGlzLmlzRW1wdHlfID0gZmFsc2U7CisgICAgICB0aGlzLm1heF8gPSBtYXg7CisgICAgfSwKKworICAgIGdldCByYW5nZSgpIHsKKyAgICAgIGlmICh0aGlzLmlzRW1wdHlfKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHRoaXMubWF4XyAtIHRoaXMubWluXzsKKyAgICB9LAorCisgICAgZ2V0IGNlbnRlcigpIHsKKyAgICAgIHJldHVybiAodGhpcy5taW5fICsgdGhpcy5tYXhfKSAqIDAuNTsKKyAgICB9LAorCisgICAgZXF1YWxzOiBmdW5jdGlvbih0aGF0KSB7CisgICAgICBpZiAodGhpcy5pc0VtcHR5ICYmIHRoYXQuaXNFbXB0eSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICBpZiAodGhpcy5pc0VtcHR5ICE9IHRoYXQuaXNFbXB0eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgcmV0dXJuIHRoaXMubWluID09PSB0aGF0Lm1pbiAmJgorICAgICAgICAgIHRoaXMubWF4ID09PSB0aGF0Lm1heDsKKyAgICB9LAorCisgICAgY29udGFpbnNSYW5nZTogZnVuY3Rpb24ocmFuZ2UpIHsKKyAgICAgIGlmICh0aGlzLmlzRW1wdHkgfHwgcmFuZ2UuaXNFbXB0eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgcmV0dXJuIHRoaXMubWluIDw9IHJhbmdlLm1pbiAmJiB0aGlzLm1heCA+PSByYW5nZS5tYXg7CisgICAgfSwKKworICAgIGNvbnRhaW5zRXhwbGljaXRSYW5nZTogZnVuY3Rpb24obWluLCBtYXgpIHsKKyAgICAgIGlmICh0aGlzLmlzRW1wdHkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIHJldHVybiB0aGlzLm1pbiA8PSBtaW4gJiYgdGhpcy5tYXggPj0gbWF4OworICAgIH0sCisKKyAgICBpbnRlcnNlY3RzUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlKSB7CisgICAgICBpZiAodGhpcy5pc0VtcHR5IHx8IHJhbmdlLmlzRW1wdHkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIHJldHVybiAhKHJhbmdlLm1heCA8IHRoaXMubWluIHx8CisgICAgICAgICAgICAgICByYW5nZS5taW4gPiB0aGlzLm1heCk7CisgICAgfSwKKworICAgIGludGVyc2VjdHNFeHBsaWNpdFJhbmdlOiBmdW5jdGlvbihtaW4sIG1heCkgeworICAgICAgaWYgKHRoaXMuaXNFbXB0eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgcmV0dXJuICEobWF4IDwgdGhpcy5taW4gfHwKKyAgICAgICAgICAgICAgIG1pbiA+IHRoaXMubWF4KTsKKyAgICB9CisgIH07CisKKyAgUmFuZ2UuZnJvbUV4cGxpY2l0UmFuZ2UgPSBmdW5jdGlvbihtaW4sIG1heCkgeworICAgIHZhciByYW5nZSA9IG5ldyBSYW5nZSgpOworICAgIHJhbmdlLm1pbiA9IG1pbjsKKyAgICByYW5nZS5tYXggPSBtYXg7CisgICAgcmV0dXJuIHJhbmdlOworICB9OworCisgIFJhbmdlLmNvbXBhcmVCeU1pblRpbWVzID0gZnVuY3Rpb24oYSwgYikgeworICAgIGlmICghYS5pc0VtcHR5ICYmICFiLmlzRW1wdHkpCisgICAgICByZXR1cm4gYS5taW5fIC0gYi5taW5fOworCisgICAgaWYgKGEuaXNFbXB0eSAmJiAhYi5pc0VtcHR5KQorICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKCFhLmlzRW1wdHkgJiYgYi5pc0VtcHR5KQorICAgICAgcmV0dXJuIDE7CisKKyAgICByZXR1cm4gMDsKKyAgfTsKKworICByZXR1cm4geworICAgIFJhbmdlOiBSYW5nZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9yYW5nZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2VfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMjAxMTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2VfdGVzdC5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdhZGRWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciByYW5nZSA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShyYW5nZS5pc0VtcHR5KTsKKyAgICByYW5nZS5hZGRWYWx1ZSgxKTsKKyAgICBhc3NlcnQuaXNGYWxzZShyYW5nZS5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgcmFuZ2UubWluKTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgcmFuZ2UubWF4KTsKKworICAgIHJhbmdlLmFkZFZhbHVlKDIpOworICAgIGFzc2VydC5pc0ZhbHNlKHJhbmdlLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbCgxLCByYW5nZS5taW4pOworICAgIGFzc2VydC5lcXVhbCgyLCByYW5nZS5tYXgpOworICB9KTsKKworICB0ZXN0KCdhZGROb25FbXB0eVJhbmdlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHIxID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICByMS5hZGRWYWx1ZSgxKTsKKyAgICByMS5hZGRWYWx1ZSgyKTsKKworICAgIHZhciByID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICByLmFkZFJhbmdlKHIxKTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgci5taW4pOworICAgIGFzc2VydC5lcXVhbCgyLCByLm1heCk7CisgIH0pOworCisgIHRlc3QoJ2FkZEVtcHR5UmFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcjEgPSBuZXcgdHIuYi5SYW5nZSgpOworCisgICAgdmFyIHIgPSBuZXcgdHIuYi5SYW5nZSgpOworICAgIHIuYWRkUmFuZ2UocjEpOworICAgIGFzc2VydC5pc1RydWUoci5pc0VtcHR5KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoci5taW4pOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChyLm1heCk7CisgIH0pOworCisgIHRlc3QoJ2FkZFJhbmdlVG9SYW5nZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciByMSA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgcjEuYWRkVmFsdWUoMSk7CisgICAgcjEuYWRkVmFsdWUoMik7CisKKyAgICB2YXIgciA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgci5hZGRWYWx1ZSgzKTsKKyAgICByLmFkZFJhbmdlKHIxKTsKKworICAgIGFzc2VydC5pc0ZhbHNlKHIuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKDEsIHIubWluKTsKKyAgICBhc3NlcnQuZXF1YWwoMywgci5tYXgpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2VfdXRpbHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9yYW5nZV91dGlscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3ODQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2VfdXRpbHMuaHRtbApAQCAtMCwwICsxLDE0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgZXZlbnQgbWVyZ2luZyBmdW5jdGlvbmFsaXR5IGZvciBncm91cGluZy9hbmFseXNpcy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gY29udmVydEV2ZW50c1RvUmFuZ2VzKGV2ZW50cykgeworICAgIHJldHVybiBldmVudHMubWFwKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICByZXR1cm4gdHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZShldmVudC5zdGFydCwgZXZlbnQuZW5kKTsKKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIG1lcmdlUmFuZ2VzKGluUmFuZ2VzLCBtZXJnZVRocmVzaG9sZCwgbWVyZ2VGdW5jdGlvbikgeworICAgIHZhciByZW1haW5pbmdFdmVudHMgPSBpblJhbmdlcy5zbGljZSgpOworICAgIHJlbWFpbmluZ0V2ZW50cy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKKyAgICAgIHJldHVybiB4Lm1pbiAtIHkubWluOworICAgIH0pOworCisgICAgaWYgKHJlbWFpbmluZ0V2ZW50cy5sZW5ndGggPD0gMSkgeworICAgICAgdmFyIG1lcmdlZCA9IFtdOworICAgICAgaWYgKHJlbWFpbmluZ0V2ZW50cy5sZW5ndGggPT0gMSkgeworICAgICAgICBtZXJnZWQucHVzaChtZXJnZUZ1bmN0aW9uKHJlbWFpbmluZ0V2ZW50cykpOworICAgICAgfQorICAgICAgcmV0dXJuIG1lcmdlZDsKKyAgICB9CisKKyAgICB2YXIgbWVyZ2VkRXZlbnRzID0gW107CisKKyAgICB2YXIgY3VycmVudE1lcmdlQnVmZmVyID0gW107CisgICAgdmFyIHJpZ2h0RWRnZTsKKyAgICBmdW5jdGlvbiBiZWdpbk1lcmdpbmcoKSB7CisgICAgICBjdXJyZW50TWVyZ2VCdWZmZXIucHVzaChyZW1haW5pbmdFdmVudHNbMF0pOworICAgICAgcmVtYWluaW5nRXZlbnRzLnNwbGljZSgwLCAxKTsKKyAgICAgIHJpZ2h0RWRnZSA9IGN1cnJlbnRNZXJnZUJ1ZmZlclswXS5tYXg7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmx1c2hDdXJyZW50TWVyZ2VCdWZmZXIoKSB7CisgICAgICBpZiAoY3VycmVudE1lcmdlQnVmZmVyLmxlbmd0aCA9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAgIG1lcmdlZEV2ZW50cy5wdXNoKG1lcmdlRnVuY3Rpb24oY3VycmVudE1lcmdlQnVmZmVyKSk7CisgICAgICBjdXJyZW50TWVyZ2VCdWZmZXIgPSBbXTsKKworICAgICAgLy8gUmVmaWxsIG1lcmdlIGJ1ZmZlciBpZiBuZWVkZWQuCisgICAgICBpZiAocmVtYWluaW5nRXZlbnRzLmxlbmd0aCAhPSAwKQorICAgICAgICBiZWdpbk1lcmdpbmcoKTsKKyAgICB9CisKKyAgICBiZWdpbk1lcmdpbmcoKTsKKworICAgIHdoaWxlIChyZW1haW5pbmdFdmVudHMubGVuZ3RoKSB7CisgICAgICB2YXIgY3VycmVudEV2ZW50ID0gcmVtYWluaW5nRXZlbnRzWzBdOworCisgICAgICB2YXIgZGlzdGFuY2VGcm9tUmlnaHRFZGdlID0gY3VycmVudEV2ZW50Lm1pbiAtIHJpZ2h0RWRnZTsKKyAgICAgIGlmIChkaXN0YW5jZUZyb21SaWdodEVkZ2UgPCBtZXJnZVRocmVzaG9sZCkgeworICAgICAgICByaWdodEVkZ2UgPSBNYXRoLm1heChyaWdodEVkZ2UsIGN1cnJlbnRFdmVudC5tYXgpOworICAgICAgICByZW1haW5pbmdFdmVudHMuc3BsaWNlKDAsIDEpOworICAgICAgICBjdXJyZW50TWVyZ2VCdWZmZXIucHVzaChjdXJyZW50RXZlbnQpOworICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKworICAgICAgLy8gVG9vIGJpZyBhIGdhcC4KKyAgICAgIGZsdXNoQ3VycmVudE1lcmdlQnVmZmVyKCk7CisgICAgfQorICAgIGZsdXNoQ3VycmVudE1lcmdlQnVmZmVyKCk7CisKKyAgICByZXR1cm4gbWVyZ2VkRXZlbnRzOworICB9CisKKyAgLy8gUGFzcyBpbiB8b3B0X3RvdGFsUmFuZ2V8IGluIG9yZGVyIHRvIGZpbmQgZW1wdHkgcmFuZ2VzIGJlZm9yZSB0aGUgZmlyc3Qgb2YKKyAgLy8gfGluUmFuZ2VzfCBhbmQgYWZ0ZXIgdGhlIGxhc3Qgb2YgfGluUmFuZ2VzfC4KKyAgZnVuY3Rpb24gZmluZEVtcHR5UmFuZ2VzQmV0d2VlblJhbmdlcyhpblJhbmdlcywgb3B0X3RvdGFsUmFuZ2UpIHsKKyAgICBpZiAob3B0X3RvdGFsUmFuZ2UgJiYgb3B0X3RvdGFsUmFuZ2UuaXNFbXB0eSkKKyAgICAgIG9wdF90b3RhbFJhbmdlID0gdW5kZWZpbmVkOworCisgICAgdmFyIGVtcHR5UmFuZ2VzID0gW107CisgICAgaWYgKCFpblJhbmdlcy5sZW5ndGgpIHsKKyAgICAgIGlmIChvcHRfdG90YWxSYW5nZSkKKyAgICAgICAgZW1wdHlSYW5nZXMucHVzaChvcHRfdG90YWxSYW5nZSk7CisgICAgICByZXR1cm4gZW1wdHlSYW5nZXM7CisgICAgfQorCisgICAgaW5SYW5nZXMgPSBpblJhbmdlcy5zbGljZSgpOworICAgIGluUmFuZ2VzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgcmV0dXJuIHgubWluIC0geS5taW47CisgICAgfSk7CisgICAgaWYgKG9wdF90b3RhbFJhbmdlICYmCisgICAgICAgIChvcHRfdG90YWxSYW5nZS5taW4gPCBpblJhbmdlc1swXS5taW4pKSB7CisgICAgICBlbXB0eVJhbmdlcy5wdXNoKHRyLmIuUmFuZ2UuZnJvbUV4cGxpY2l0UmFuZ2UoCisgICAgICAgICAgb3B0X3RvdGFsUmFuZ2UubWluLCBpblJhbmdlc1swXS5taW4pKTsKKyAgICB9CisKKyAgICBpblJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uKHJhbmdlLCBpbmRleCkgeworICAgICAgZm9yICh2YXIgb3RoZXJJbmRleCA9IDA7IG90aGVySW5kZXggPCBpblJhbmdlcy5sZW5ndGg7ICsrb3RoZXJJbmRleCkgeworICAgICAgICBpZiAoaW5kZXggPT09IG90aGVySW5kZXgpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciBvdGhlciA9IGluUmFuZ2VzW290aGVySW5kZXhdOworCisgICAgICAgIGlmIChvdGhlci5taW4gPiByYW5nZS5tYXgpIHsKKyAgICAgICAgICAvLyB8aW5SYW5nZXN8IGlzIHNvcnRlZCwgc28gfG90aGVyfCBpcyB0aGUgZmlyc3QgcmFuZ2UgYWZ0ZXIgfHJhbmdlfCwKKyAgICAgICAgICAvLyBhbmQgdGhlcmUgaXMgYW4gZW1wdHkgcmFuZ2UgYmV0d2VlbiB0aGVtLgorICAgICAgICAgIGVtcHR5UmFuZ2VzLnB1c2godHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZSgKKyAgICAgICAgICAgICAgcmFuZ2UubWF4LCBvdGhlci5taW4pKTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gT3RoZXJ3aXNlLCB8b3RoZXJ8IHN0YXJ0cyBiZWZvcmUgfHJhbmdlfCBlbmRzLCBzbyB8b3RoZXJ8IG1pZ2h0CisgICAgICAgIC8vIHBvc3NpYmx5IGNvbnRhaW4gdGhlIGVuZCBvZiB8cmFuZ2V8LgorCisgICAgICAgIGlmIChvdGhlci5tYXggPiByYW5nZS5tYXgpIHsKKyAgICAgICAgICAvLyB8b3RoZXJ8IGRvZXMgY29udGFpbiB0aGUgZW5kIG9mIHxyYW5nZXwsIHNvIG5vIGVtcHR5IHJhbmdlIHN0YXJ0cworICAgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhpcyB8cmFuZ2V8LgorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKG9wdF90b3RhbFJhbmdlICYmIChyYW5nZS5tYXggPCBvcHRfdG90YWxSYW5nZS5tYXgpKSB7CisgICAgICAgIGVtcHR5UmFuZ2VzLnB1c2godHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZSgKKyAgICAgICAgICAgIHJhbmdlLm1heCwgb3B0X3RvdGFsUmFuZ2UubWF4KSk7CisgICAgICB9CisgICAgfSk7CisgICAgcmV0dXJuIGVtcHR5UmFuZ2VzOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBjb252ZXJ0RXZlbnRzVG9SYW5nZXM6IGNvbnZlcnRFdmVudHNUb1JhbmdlcywKKyAgICBmaW5kRW1wdHlSYW5nZXNCZXR3ZWVuUmFuZ2VzOiBmaW5kRW1wdHlSYW5nZXNCZXR3ZWVuUmFuZ2VzLAorICAgIG1lcmdlUmFuZ2VzOiBtZXJnZVJhbmdlcworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9yYW5nZV91dGlsc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2VfdXRpbHNfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ZmU0N2QKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmFuZ2VfdXRpbHNfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlX3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBzaW1wbGVNZXJnZXIoZXZlbnRzKSB7CisgICAgcmV0dXJuIHsKKyAgICAgIG1pbjogZXZlbnRzWzBdLm1pbiwKKyAgICAgIG1heDogZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS5tYXgKKyAgICB9OworICB9CisgIHRlc3QoJ3NpbXBsZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpbkV2ZW50cyA9IFsKKyAgICAgIHttaW46IDAsIG1heDogMTAwfSwKKyAgICAgIHttaW46IDEwMCwgbWF4OiAxMjB9LAorICAgICAge21pbjogMjAwLCBtYXg6IDIyMH0KKyAgICBdOworCisgICAgdmFyIG1lcmdlZCA9IHRyLmIubWVyZ2VSYW5nZXMoaW5FdmVudHMsIDUwLCBzaW1wbGVNZXJnZXIpOworCisgICAgYXNzZXJ0LmVxdWFsKG1lcmdlZC5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzBdLCB7bWluOiAwLCBtYXg6IDEyMH0pOworICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzFdLCB7bWluOiAyMDAsIG1heDogMjIwfSk7CisgIH0pOworCisgIHRlc3QoJ292ZXJsYXBwaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGluRXZlbnRzID0gWworICAgICAge21pbjogMCwgbWF4OiAxMDB9LAorICAgICAge21pbjogODAsIG1heDogMTIwfSwKKyAgICAgIHttaW46IDIwMCwgbWF4OiAyMjB9CisgICAgXTsKKworICAgIHZhciBtZXJnZWQgPSB0ci5iLm1lcmdlUmFuZ2VzKGluRXZlbnRzLCA1MCwgc2ltcGxlTWVyZ2VyKTsKKworICAgIGFzc2VydC5lcXVhbChtZXJnZWQubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKG1lcmdlZFswXSwge21pbjogMCwgbWF4OiAxMjB9KTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKG1lcmdlZFsxXSwge21pbjogMjAwLCBtYXg6IDIyMH0pOworICB9KTsKKworICB0ZXN0KCdtaWRkbGVPbmVJc1NtYWxsJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGluRXZlbnRzID0gWworICAgICAge21pbjogMCwgbWF4OiAxMDB9LAorICAgICAge21pbjogNDAsIG1heDogNTB9LAorICAgICAge21pbjogMTAwLCBtYXg6IDEyMH0KKyAgICBdOworCisgICAgdmFyIG1lcmdlZCA9IHRyLmIubWVyZ2VSYW5nZXMoaW5FdmVudHMsIDUwLCBzaW1wbGVNZXJnZXIpOworCisgICAgYXNzZXJ0LmVxdWFsKG1lcmdlZC5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzBdLCB7bWluOiAwLCBtYXg6IDEyMH0pOworICB9KTsKKworICB0ZXN0KCdmaXJzdEV2ZW50SXNTcGxpdFBvaW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGluRXZlbnRzID0gWworICAgICAge21pbjogMCwgbWF4OiAxMDB9LAorICAgICAge21pbjogMTUwLCBtYXg6IDIwMH0KKyAgICBdOworCisgICAgdmFyIG1lcmdlZCA9IHRyLmIubWVyZ2VSYW5nZXMoaW5FdmVudHMsIDI1LCBzaW1wbGVNZXJnZXIpOworCisgICAgYXNzZXJ0LmVxdWFsKG1lcmdlZC5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzBdLCB7bWluOiAwLCBtYXg6IDEwMH0pOworICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzFdLCB7bWluOiAxNTAsIG1heDogMjAwfSk7CisgIH0pOworCisgIHRlc3QoJ21lcmdlU2luZ2xlRXZlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaW5FdmVudHMgPSBbCisgICAgICB7bWluOiAwLCBtYXg6IDEwMH0KKyAgICBdOworCisgICAgdmFyIG1lcmdlQ291bnQgPSAwOworICAgIHRyLmIubWVyZ2VSYW5nZXMoaW5FdmVudHMsIDI1LCBmdW5jdGlvbihldmVudHMpIHsKKyAgICAgIGFzc2VydC5kZWVwRXF1YWwoZXZlbnRzLCBpbkV2ZW50cyk7CisgICAgICBtZXJnZUNvdW50Kys7CisgICAgfSk7CisgICAgYXNzZXJ0LmVxdWFsKG1lcmdlQ291bnQsIDEpOworICB9KTsKKworICB0ZXN0KCd6ZXJvRHVyYXRpb25TcGxpdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpbkV2ZW50cyA9IFswLCAxMCwgMjAsIDUwLCA2MF07CisgICAgaW5FdmVudHMgPSBpbkV2ZW50cy5tYXAoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHJldHVybiB0ci5iLlJhbmdlLmZyb21FeHBsaWNpdFJhbmdlKGV2ZW50LCBldmVudCk7CisgICAgfSk7CisgICAgdmFyIHRpbWVzdGFtcE1lcmdlciA9IGZ1bmN0aW9uKHRpbWVzdGFtcHMpIHsKKyAgICAgIGNvbnNvbGUubG9nKHRpbWVzdGFtcHMpOworICAgICAgcmV0dXJuIHsKKyAgICAgICAgbWluOiB0aW1lc3RhbXBzWzBdLm1pbiwKKyAgICAgICAgbWF4OiB0aW1lc3RhbXBzW3RpbWVzdGFtcHMubGVuZ3RoIC0gMV0ubWF4CisgICAgICB9OworICAgIH07CisgICAgdmFyIG1lcmdlZCA9IHRyLmIubWVyZ2VSYW5nZXMoaW5FdmVudHMsIDE1LCB0aW1lc3RhbXBNZXJnZXIpOworICAgIGNvbnNvbGUubG9nKG1lcmdlZCk7CisgICAgYXNzZXJ0LmVxdWFsKG1lcmdlZC5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwobWVyZ2VkWzBdLCB7bWluOiAwLCBtYXg6IDIwfSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChtZXJnZWRbMV0sIHttaW46IDUwLCBtYXg6IDYwfSk7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRFbXB0eVJhbmdlc0JldHdlZW5SYW5nZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge21pbjogMiwgbWF4OiA0fSwKKyAgICAgIHttaW46IDEsIG1heDogM30sCisgICAgICB7bWluOiA2LCBtYXg6IDh9CisgICAgXTsKKyAgICB2YXIgcmFuZ2VzID0gdHIuYi5maW5kRW1wdHlSYW5nZXNCZXR3ZWVuUmFuZ2VzKAorICAgICAgICBldmVudHMsIHttaW46IDAsIG1heDogMTB9KTsKKyAgICBhc3NlcnQuZXF1YWwoMywgcmFuZ2VzLmxlbmd0aCk7CisgICAgYXNzZXJ0LmVxdWFsKDAsIHJhbmdlc1swXS5taW4pOworICAgIGFzc2VydC5lcXVhbCgxLCByYW5nZXNbMF0ubWF4KTsKKyAgICBhc3NlcnQuZXF1YWwoNCwgcmFuZ2VzWzFdLm1pbik7CisgICAgYXNzZXJ0LmVxdWFsKDYsIHJhbmdlc1sxXS5tYXgpOworICAgIGFzc2VydC5lcXVhbCg4LCByYW5nZXNbMl0ubWluKTsKKyAgICBhc3NlcnQuZXF1YWwoMTAsIHJhbmdlc1syXS5tYXgpOworICB9KTsKKworICB0ZXN0KCdmaW5kRW1wdHlSYW5nZXNXaXRoRW1wdHlJbnB1dCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciByYW5nZXMgPSB0ci5iLmZpbmRFbXB0eVJhbmdlc0JldHdlZW5SYW5nZXMoCisgICAgICAgIFtdLCB7bWluOiAwLCBtYXg6IDEwfSk7CisgICAgYXNzZXJ0LmVxdWFsKDEsIHJhbmdlcy5sZW5ndGgpOworICAgIGFzc2VydC5lcXVhbCgwLCByYW5nZXNbMF0ubWluKTsKKyAgICBhc3NlcnQuZXF1YWwoMTAsIHJhbmdlc1swXS5tYXgpOworCisgICAgcmFuZ2VzID0gdHIuYi5maW5kRW1wdHlSYW5nZXNCZXR3ZWVuUmFuZ2VzKFtdKTsKKyAgICBhc3NlcnQuZXF1YWwoMCwgcmFuZ2VzLmxlbmd0aCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yZWN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmVjdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcmVjdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmVjdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvcmVjdF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvcmVjdF90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9yZWN0X3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3JlY3RfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2Uvc2V0dGluZ3MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9zZXR0aW5ncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MjE5MTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2Uvc2V0dGluZ3MuaHRtbApAQCAtMCwwICsxLDIwNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgU2V0dGluZ3Mgb2JqZWN0LgorICovCit0ci5leHBvcnRUbygndHIuYicsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogU2V0dGluZ3MgaXMgYSBzaW1wbGUgd3JhcHBlciBhcm91bmQgbG9jYWwgc3RvcmFnZSwgdG8gbWFrZSBpdCBlYXNpZXIKKyAgICogdG8gdGVzdCBjbGFzc2VzIHRoYXQgaGF2ZSBzZXR0aW5ncy4KKyAgICoKKyAgICogTWF5IGJlIGNhbGxlZCBhcyBuZXcgdHIuYi5TZXR0aW5ncygpIG9yIHNpbXBseSB0ci5iLlNldHRpbmdzKCkKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBTZXR0aW5ncygpIHsKKyAgICByZXR1cm4gU2V0dGluZ3M7CisgIH07CisKKyAgaWYgKHRyLmIudW5pdHRlc3QgJiYgdHIuYi51bml0dGVzdC5UZXN0UnVubmVyKSB7CisgICAgdHIuYi51bml0dGVzdC5UZXN0UnVubmVyLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICd0ci11bml0dGVzdC13aWxsLXJ1bicsCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh0ci5pc0hlYWRsZXNzKQorICAgICAgICAgICAgU2V0dGluZ3Muc2V0QWx0ZXJuYXRpdmVTdG9yYWdlSW5zdGFuY2UobmV3IEhlYWRsZXNzU3RvcmFnZSgpKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBTZXR0aW5ncy5zZXRBbHRlcm5hdGl2ZVN0b3JhZ2VJbnN0YW5jZShnbG9iYWwuc2Vzc2lvblN0b3JhZ2UpOworICAgICAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIFNlc3Npb25TZXR0aW5ncygpIHsKKyAgICByZXR1cm4gU2Vzc2lvblNldHRpbmdzOworICB9CisKKyAgZnVuY3Rpb24gQWRkU3RhdGljU3RvcmFnZUZ1bmN0aW9uc1RvQ2xhc3NfKGlucHV0X2NsYXNzLCBzdG9yYWdlKSB7CisgICAgaW5wdXRfY2xhc3Muc3RvcmFnZV8gPSBzdG9yYWdlOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXR0aW5nIHdpdGggdGhlIGdpdmVuIG5hbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBuYW1lIG9mIHRoZSBzZXR0aW5nLgorICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gb3B0X2RlZmF1bHQgVGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vdCBzZXQuCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBvcHRfbmFtZXNwYWNlIElmIHNldCwgdGhlIHNldHRpbmcgbmFtZSB3aWxsIGJlIHByZWZpeGVkCisgICAgICogd2l0aCB0aGlzIG5hbWVzcGFjZSwgZS5nLiAiY2F0ZWdvcmllcy5zZXR0aW5nTmFtZSIuIFRoaXMgaXMgdXNlZnVsIGZvcgorICAgICAqIGEgc2V0IG9mIHJlbGF0ZWQgc2V0dGluZ3MuCisgICAgICovCisgICAgaW5wdXRfY2xhc3MuZ2V0ID0gZnVuY3Rpb24oa2V5LCBvcHRfZGVmYXVsdCwgb3B0X25hbWVzcGFjZSkgeworICAgICAga2V5ID0gaW5wdXRfY2xhc3MubmFtZXNwYWNlXyhrZXksIG9wdF9uYW1lc3BhY2UpOworICAgICAgdmFyIHJhd1ZhbCA9IGlucHV0X2NsYXNzLnN0b3JhZ2VfLmdldEl0ZW0oa2V5KTsKKyAgICAgIGlmIChyYXdWYWwgPT09IG51bGwgfHwgcmF3VmFsID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiBvcHRfZGVmYXVsdDsKKworICAgICAgLy8gT2xkIHNldHRpbmdzIHZlcnNpb25zIHVzZWQgdG8gc3RyaW5naWZ5IG9iamVjdHMgaW5zdGVhZCBvZiBwdXR0aW5nIHRoZW0KKyAgICAgIC8vIGludG8gSlNPTi4gSWYgdGhvc2UgYXJlIGVuY291bnRlcmVkLCBwYXJzZSB3aWxsIGZhaWwuIEluIHRoYXQgY2FzZSwKKyAgICAgIC8vICJ1cGdyYWRlIiB0aGUgc2V0dGluZyB0byB0aGUgZGVmYXVsdCB2YWx1ZS4KKyAgICAgIHRyeSB7CisgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJhd1ZhbCkudmFsdWU7CisgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGlucHV0X2NsYXNzLnN0b3JhZ2VfLnJlbW92ZUl0ZW0oa2V5KTsKKyAgICAgICAgcmV0dXJuIG9wdF9kZWZhdWx0OworICAgICAgfQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNldHRpbmcgd2l0aCB0aGUgZ2l2ZW4gbmFtZSB0byB0aGUgZ2l2ZW4gdmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBuYW1lIG9mIHRoZSBzZXR0aW5nLgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIHNldHRpbmcuCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBvcHRfbmFtZXNwYWNlIElmIHNldCwgdGhlIHNldHRpbmcgbmFtZSB3aWxsIGJlIHByZWZpeGVkCisgICAgICogd2l0aCB0aGlzIG5hbWVzcGFjZSwgZS5nLiAiY2F0ZWdvcmllcy5zZXR0aW5nTmFtZSIuIFRoaXMgaXMgdXNlZnVsIGZvcgorICAgICAqIGEgc2V0IG9mIHJlbGF0ZWQgc2V0dGluZ3MuCisgICAgICovCisgICAgaW5wdXRfY2xhc3Muc2V0ID0gZnVuY3Rpb24oa2V5LCB2YWx1ZSwgb3B0X25hbWVzcGFjZSkgeworICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZ3Muc2V0OiB2YWx1ZSBtdXN0IG5vdCBiZSB1bmRlZmluZWQnKTsKKyAgICAgIHZhciB2ID0gSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOiB2YWx1ZX0pOworICAgICAgaW5wdXRfY2xhc3Muc3RvcmFnZV8uc2V0SXRlbSgKKyAgICAgICAgICBpbnB1dF9jbGFzcy5uYW1lc3BhY2VfKGtleSwgb3B0X25hbWVzcGFjZSksIHYpOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIGFsbCB0aGUga2V5cywgb3IgYWxsIHRoZSBrZXlzIGluIHRoZSBnaXZlbiBuYW1lc3BhY2UKKyAgICAgKiBpZiBvbmUgaXMgcHJvdmlkZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge3N0cmluZz19IG9wdF9uYW1lc3BhY2UgSWYgc2V0LCBvbmx5IHJldHVybiBzZXR0aW5ncyB3aGljaAorICAgICAqIGJlZ2luIHdpdGggdGhpcyBwcmVmaXguCisgICAgICovCisgICAgaW5wdXRfY2xhc3Mua2V5cyA9IGZ1bmN0aW9uKG9wdF9uYW1lc3BhY2UpIHsKKyAgICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICAgIG9wdF9uYW1lc3BhY2UgPSBvcHRfbmFtZXNwYWNlIHx8ICcnOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dF9jbGFzcy5zdG9yYWdlXy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIga2V5ID0gaW5wdXRfY2xhc3Muc3RvcmFnZV8ua2V5KGkpOworICAgICAgICBpZiAoaW5wdXRfY2xhc3MuaXNuYW1lc3BhY2VkXyhrZXksIG9wdF9uYW1lc3BhY2UpKQorICAgICAgICAgIHJlc3VsdC5wdXNoKGlucHV0X2NsYXNzLnVubmFtZXNwYWNlXyhrZXksIG9wdF9uYW1lc3BhY2UpKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfTsKKworICAgIGlucHV0X2NsYXNzLmlzbmFtZXNwYWNlZF8gPSBmdW5jdGlvbihrZXksIG9wdF9uYW1lc3BhY2UpIHsKKyAgICAgIHJldHVybiBrZXkuaW5kZXhPZihpbnB1dF9jbGFzcy5ub3JtYWxpemVfKG9wdF9uYW1lc3BhY2UpKSA9PSAwOworICAgIH07CisKKyAgICBpbnB1dF9jbGFzcy5uYW1lc3BhY2VfID0gZnVuY3Rpb24oa2V5LCBvcHRfbmFtZXNwYWNlKSB7CisgICAgICByZXR1cm4gaW5wdXRfY2xhc3Mubm9ybWFsaXplXyhvcHRfbmFtZXNwYWNlKSArIGtleTsKKyAgICB9OworCisgICAgaW5wdXRfY2xhc3MudW5uYW1lc3BhY2VfID0gZnVuY3Rpb24oa2V5LCBvcHRfbmFtZXNwYWNlKSB7CisgICAgICByZXR1cm4ga2V5LnJlcGxhY2UoaW5wdXRfY2xhc3Mubm9ybWFsaXplXyhvcHRfbmFtZXNwYWNlKSwgJycpOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBBbGwgc2V0dGluZ3MgYXJlIHByZWZpeGVkIHdpdGggYSBnbG9iYWwgbmFtZXNwYWNlIHRvIGF2b2lkIGNvbGxpc2lvbnMuCisgICAgICogaW5wdXRfY2xhc3MgbWF5IGFsc28gYmUgbmFtZXNwYWNlZCB3aXRoIGFuIGFkZGl0aW9uYWwgcHJlZml4IHBhc3NlZCBpbnRvCisgICAgICogdGhlIGdldCwgc2V0LCBhbmQga2V5cyBtZXRob2RzIGluIG9yZGVyIHRvIGdyb3VwIHJlbGF0ZWQgc2V0dGluZ3MuCisgICAgICogVGhpcyBtZXRob2QgbWFrZXMgc3VyZSB0aGUgdHdvIG5hbWVzcGFjZXMgYXJlIGFsd2F5cyBzZXQgcHJvcGVybHkuCisgICAgICovCisgICAgaW5wdXRfY2xhc3Mubm9ybWFsaXplXyA9IGZ1bmN0aW9uKG9wdF9uYW1lc3BhY2UpIHsKKyAgICAgIHJldHVybiBpbnB1dF9jbGFzcy5OQU1FU1BBQ0UgKyAob3B0X25hbWVzcGFjZSA/IG9wdF9uYW1lc3BhY2UgKyAnLicgOiAnJyk7CisgICAgfTsKKworICAgIGlucHV0X2NsYXNzLnNldEFsdGVybmF0aXZlU3RvcmFnZUluc3RhbmNlID0gZnVuY3Rpb24oaW5zdGFuY2UpIHsKKyAgICAgIGlucHV0X2NsYXNzLnN0b3JhZ2VfID0gaW5zdGFuY2U7CisgICAgfTsKKworICAgIGlucHV0X2NsYXNzLmdldEFsdGVybmF0aXZlU3RvcmFnZUluc3RhbmNlID0gZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRyLmlzSGVhZGxlc3MgJiYgaW5wdXRfY2xhc3Muc3RvcmFnZV8gPT09IGxvY2FsU3RvcmFnZSkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiBpbnB1dF9jbGFzcy5zdG9yYWdlXzsKKyAgICB9OworCisgICAgaW5wdXRfY2xhc3MuTkFNRVNQQUNFID0gJ3RyYWNlLXZpZXdlcic7CisgIH07CisKKyAgZnVuY3Rpb24gSGVhZGxlc3NTdG9yYWdlKCkgeworICAgIHRoaXMubGVuZ3RoID0gMDsKKyAgICB0aGlzLmhhc0l0ZW1fID0ge307CisgICAgdGhpcy5pdGVtc18gPSB7fTsKKyAgICB0aGlzLml0ZW1zQXNBcnJheV8gPSB1bmRlZmluZWQ7CisgIH0KKyAgSGVhZGxlc3NTdG9yYWdlLnByb3RvdHlwZSA9IHsKKyAgICBrZXk6IGZ1bmN0aW9uKGluZGV4KSB7CisgICAgICByZXR1cm4gdGhpcy5pdGVtc0FzQXJyYXlbaW5kZXhdOworICAgIH0sCisKKyAgICBnZXQgaXRlbXNBc0FycmF5KCkgeworICAgICAgaWYgKHRoaXMuaXRlbXNBc0FycmF5XyAhPT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gdGhpcy5pdGVtc0FzQXJyYXlfOworICAgICAgdmFyIGl0ZW1zQXNBcnJheSA9IFtdOworICAgICAgZm9yICh2YXIgayBpbiB0aGlzLml0ZW1zXykKKyAgICAgICAgaXRlbXNBc0FycmF5LnB1c2goayk7CisgICAgICB0aGlzLml0ZW1zQXNBcnJheV8gPSBpdGVtc0FzQXJyYXk7CisgICAgICByZXR1cm4gdGhpcy5pdGVtc0FzQXJyYXlfOworICAgIH0sCisKKyAgICBnZXRJdGVtOiBmdW5jdGlvbihrZXkpIHsKKyAgICAgIGlmICghdGhpcy5oYXNJdGVtX1trZXldKQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgIHJldHVybiB0aGlzLml0ZW1zX1trZXldOworICAgIH0sCisKKyAgICByZW1vdmVJdGVtOiBmdW5jdGlvbihrZXkpIHsKKyAgICAgIGlmICghdGhpcy5oYXNJdGVtX1trZXldKQorICAgICAgICByZXR1cm47CisgICAgICB2YXIgdmFsdWUgPSB0aGlzLml0ZW1zX1trZXldOworICAgICAgZGVsZXRlIHRoaXMuaGFzSXRlbV9ba2V5XTsKKyAgICAgIGRlbGV0ZSB0aGlzLml0ZW1zX1trZXldOworICAgICAgdGhpcy5sZW5ndGgtLTsKKyAgICAgIHRoaXMuaXRlbXNBc0FycmF5XyA9IHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9LAorCisgICAgc2V0SXRlbTogZnVuY3Rpb24oa2V5LCB2YWx1ZSkgeworICAgICAgaWYgKHRoaXMuaGFzSXRlbV9ba2V5XSkgeworICAgICAgICB0aGlzLml0ZW1zX1trZXldID0gdmFsdWU7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHRoaXMuaXRlbXNfW2tleV0gPSB2YWx1ZTsKKyAgICAgIHRoaXMuaGFzSXRlbV9ba2V5XSA9IHRydWU7CisgICAgICB0aGlzLmxlbmd0aCsrOworICAgICAgdGhpcy5pdGVtc0FzQXJyYXlfID0gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgfTsKKworICBpZiAodHIuaXNIZWFkbGVzcykgeworICAgIEFkZFN0YXRpY1N0b3JhZ2VGdW5jdGlvbnNUb0NsYXNzXyhTZXR0aW5ncywgbmV3IEhlYWRsZXNzU3RvcmFnZSgpKTsKKyAgICBBZGRTdGF0aWNTdG9yYWdlRnVuY3Rpb25zVG9DbGFzc18oU2Vzc2lvblNldHRpbmdzLCBuZXcgSGVhZGxlc3NTdG9yYWdlKCkpOworICB9IGVsc2UgeworICAgIEFkZFN0YXRpY1N0b3JhZ2VGdW5jdGlvbnNUb0NsYXNzXyhTZXR0aW5ncywgbG9jYWxTdG9yYWdlKTsKKyAgICBBZGRTdGF0aWNTdG9yYWdlRnVuY3Rpb25zVG9DbGFzc18oU2Vzc2lvblNldHRpbmdzLCBzZXNzaW9uU3RvcmFnZSk7CisgIH0KKworICByZXR1cm4geworICAgIFNldHRpbmdzOiBTZXR0aW5ncywKKyAgICBTZXNzaW9uU2V0dGluZ3M6IFNlc3Npb25TZXR0aW5ncworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9zZXR0aW5nc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2Uvc2V0dGluZ3NfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMjliZjYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2Uvc2V0dGluZ3NfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zZXR0aW5ncy5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBhc3NlcnRTZXR0aW5nSXMoZXhwZWN0ZWRWYWx1ZSwga2V5KSB7CisgICAgYXNzZXJ0LmVxdWFsKHRyLmIuU2V0dGluZ3MuZ2V0KGtleSksIGV4cGVjdGVkVmFsdWUpOworICB9CisKKyAgLy8gT2xkIHNldHRpbmdzIHZlcnNpb25zIHVzZWQgdG8gc3RyaW5naWZ5IG9iamVjdHMgaW5zdGVhZCBvZiBwdXR0aW5nIHRoZW0KKyAgLy8gaW50byBKU09OLiBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHRoZXNlIG9sZCBzZXR0aW5ncyB5aWVsZCB0aGUgZGVmYXVsdAorICAvLyB2YWx1ZSBpbnN0ZWFkIG9mIHN0cmluZ3MuCisgIHRlc3QoJ29sZFN0eWxlU2V0dGluZ1lpZWxkc0RlZmF1bHRWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzdG9yYWdlID0gdHIuYi5TZXR0aW5ncy5nZXRBbHRlcm5hdGl2ZVN0b3JhZ2VJbnN0YW5jZSgpOworICAgIHN0b3JhZ2Uuc2V0SXRlbSh0ci5iLlNldHRpbmdzLm5hbWVzcGFjZV8oJ2tleScpLCAnaGVsbG8gd29ybGQnKTsKKworICAgIGFzc2VydC5lcXVhbCh0ci5iLlNldHRpbmdzLmdldCgna2V5JywgJ3ZhbHVlJyksICd2YWx1ZScpOworICB9KTsKKworICB0ZXN0KCdzZXRHZXRTdHJpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOworICAgIHNldHRpbmdzLnNldCgnbXlfa2V5JywgJ215X3ZhbCcpOworICAgIGFzc2VydC5lcXVhbChzZXR0aW5ncy5nZXQoJ215X2tleScpLCAnbXlfdmFsJyk7CisgICAgLy8gdHIuYi5TZXR0aW5ncygpIGlzIGEgc2luZ2xldG9uCisgICAgYXNzZXJ0LmVxdWFsKHRyLmIuU2V0dGluZ3MoKS5nZXQoJ215X2tleScpLCAnbXlfdmFsJyk7CisgIH0pOworCisgIHRlc3QoJ3NldEdldE51bWJlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7CisgICAgc2V0dGluZ3Muc2V0KCdteV9rZXknLCA1KTsKKyAgICBhc3NlcnRTZXR0aW5nSXMoNSwgJ215X2tleScpOworICB9KTsKKworICB0ZXN0KCdzZXRHZXRCb29sJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNldHRpbmdzID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncy5zZXQoJ215X2tleScsIGZhbHNlKTsKKyAgICBhc3NlcnRTZXR0aW5nSXMoZmFsc2UsICdteV9rZXknKTsKKyAgfSk7CisKKyAgdGVzdCgnc2V0R2V0T2JqZWN0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNldHRpbmdzID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncy5zZXQoJ215X2tleScsIHsnaGVsbG8nOiA1fSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXR0aW5ncy5nZXQoJ215X2tleScpLCB7J2hlbGxvJzogNX0pOworICB9KTsKKworICB0ZXN0KCdzZXRJbnZhbGlkT2JqZWN0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNldHRpbmdzID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKKyAgICB2YXIgb2JqID0geydoZWxsbyc6IHVuZGVmaW5lZH07CisgICAgb2JqLmhlbGxvID0gb2JqOworICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICBzZXR0aW5ncy5zZXQoJ215X2tleScsIG9iaik7CisgICAgfSk7CisgIH0pOworCisgIHRlc3QoJ3NldFVuZGVmaW5lZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7CisgICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbigpIHsKKyAgICAgIHNldHRpbmdzLnNldCgnbXlfa2V5JywgdW5kZWZpbmVkKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgdGVzdCgnZ2V0VW5zZXQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOworICAgIC8vIFVuZGVmaW5lZCBzaG91bGQgYmUgcmV0dXJuZWQgaWYgdmFsdWUgaXNuJ3Qgc2V0LgorICAgIGFzc2VydFNldHRpbmdJcyh1bmRlZmluZWQsICdteV9rZXknKTsKKyAgfSk7CisKKyAgdGVzdCgnZ2V0RGVmYXVsdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7CisgICAgLy8gZGVmYXVsdF92YWwgc2hvdWxkIGJlIHJldHVybmVkIGlmIHZhbHVlIGlzbid0IHNldC4KKyAgICBhc3NlcnQuZXF1YWwoc2V0dGluZ3MuZ2V0KCdteV9rZXknLCAnZGVmYXVsdF92YWwnKSwgJ2RlZmF1bHRfdmFsJyk7CisgIH0pOworCisgIHRlc3QoJ3NldEdldFByZWZpeCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXR0aW5ncyA9IG5ldyB0ci5iLlNldHRpbmdzKCk7CisgICAgc2V0dGluZ3Muc2V0KCdrZXlfYScsICdmb28nLCAnbXlfcHJlZml4Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHNldHRpbmdzLmdldCgna2V5X2EnLCB1bmRlZmluZWQsICdteV9wcmVmaXgnKSwgJ2ZvbycpOworICAgIGFzc2VydC5lcXVhbChzZXR0aW5ncy5nZXQoJ2tleV9hJywgJ2JhcicsICdteV9wcmVmaXgnKSwgJ2ZvbycpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzZXR0aW5ncy5nZXQoJ2tleV9hJykpOworICAgIGFzc2VydC5lcXVhbChzZXR0aW5ncy5nZXQoJ2tleV9hJywgJ2JhcicpLCAnYmFyJyk7CisgIH0pOworCisgIHRlc3QoJ2tleXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOworICAgIHNldHRpbmdzLnNldCgna2V5X2EnLCAnZm9vJyk7CisgICAgc2V0dGluZ3Muc2V0KCdrZXlfYicsICdiYXInKTsKKyAgICBzZXR0aW5ncy5zZXQoJ2tleV9jJywgJ2JheicpOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhzZXR0aW5ncy5rZXlzKCksIFsna2V5X2EnLCAna2V5X2InLCAna2V5X2MnXSk7CisgIH0pOworCisgIHRlc3QoJ2tleXNQcmVmaXgnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2V0dGluZ3MgPSBuZXcgdHIuYi5TZXR0aW5ncygpOworICAgIHNldHRpbmdzLnNldCgna2V5X2EnLCAnZm9vJywgJ3ByZWZpeDEnKTsKKyAgICBzZXR0aW5ncy5zZXQoJ2tleV9iJywgJ2JhcicsICdwcmVmaXgxJyk7CisgICAgc2V0dGluZ3Muc2V0KCdrZXlfYycsICdiYXonLCAncHJlZml4MScpOworICAgIHNldHRpbmdzLnNldCgna2V5X2EnLCAnZm9vJywgJ3ByZWZpeDInKTsKKyAgICBzZXR0aW5ncy5zZXQoJ2tleV9iJywgJ2JhcicsICdwcmVmaXgyJyk7CisgICAgc2V0dGluZ3Muc2V0KCdrZXlfQycsICdiYXonLCAncHJlZml4MicpOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhzZXR0aW5ncy5rZXlzKCdwcmVmaXgxJyksIFsna2V5X2EnLCAna2V5X2InLCAna2V5X2MnXSk7CisgICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHNldHRpbmdzLmtleXMoJ3ByZWZpeDInKSwgWydrZXlfQycsICdrZXlfYScsICdrZXlfYiddKTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoCisgICAgICAgIHNldHRpbmdzLmtleXMoKSwKKyAgICAgICAgWydwcmVmaXgxLmtleV9hJywgJ3ByZWZpeDEua2V5X2InLCAncHJlZml4MS5rZXlfYycsCisgICAgICAgICAncHJlZml4Mi5rZXlfQycsICdwcmVmaXgyLmtleV9hJywgJ3ByZWZpeDIua2V5X2InXSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHNfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3NvcnRlZF9hcnJheV91dGlsc190ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHNfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3N0YXRpc3RpY3MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9zdGF0aXN0aWNzLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zdGF0aXN0aWNzLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9zdGF0aXN0aWNzLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9zdGF0aXN0aWNzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS9zdGF0aXN0aWNzX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3N0YXRpc3RpY3NfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2Uvc3RhdGlzdGljc190ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS90YXNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdGFzay5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdGFzay5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdGFzay5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdGFza190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdGFza190ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS90YXNrX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3Rhc2tfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdGVzdHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS90ZXN0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyMWVkYzIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdGVzdHMuaHRtbApAQCAtMCwwICsxLDI1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxoZWFkPgorICA8dGl0bGU+VHJhY2UtVmlld2VyIFRlc3RzOiBsb2FkaW5nLi4uPC90aXRsZT4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorCisgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iZGF0YTppbWFnZS94LWljb247YmFzZTY0LCIKKyAgICAgICAgdHlwZT0iaW1hZ2UveC1pY29uIj4KKworICA8c2NyaXB0IHNyYz0iL2NvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMuanMiPjwvc2NyaXB0PgorCisgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIuaHRtbCI+CisgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorICA8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QuaHRtbCI+CisgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9pbnRlcmFjdGl2ZV90ZXN0X3J1bm5lci5odG1sIj4KKyAgPHN0eWxlPgorICAgIGh0bWwsIGJvZHkgeworICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICAgIHdpZHRoOiAxMDAlOworICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgIG1hcmdpbjogMHB4OworICAgIH0KKyAgICBib2R5ID4geC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyIHsKKyAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgIHdpZHRoOiAxMDAlOworICAgIH0KKworICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQ+CisgICAgJ3VzZSBzdHJpY3QnOworCisgICAgLy8gVGhlIHRlc3QgcnVubmVyIG5vLW9wcyBwdXNoU3RhdGUgc28ga2VlcCBpdCBhcm91bmQuCisgICAgdmFyIHJlYWxXaW5kb3dIaXN0b3J5UHVzaFN0YXRlID0gd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlLmJpbmQoCisgICAgICAgIHdpbmRvdy5oaXN0b3J5KTsKKworICAgIGZ1bmN0aW9uIHN0YXRlVG9TZWFyY2hTdHJpbmcoZGVmYXVsdFN0YXRlLCBzdGF0ZSkgeworICAgICAgdmFyIHBhcnRzID0gW107CisgICAgICBmb3IgKHZhciBrIGluIHN0YXRlKSB7CisgICAgICAgIGlmIChzdGF0ZVtrXSA9PT0gZGVmYXVsdFN0YXRlW2tdKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB2YXIgdiA9IHN0YXRlW2tdOworICAgICAgICB2YXIga3Y7CisgICAgICAgIGlmICh2ID09PSB0cnVlKSB7CisgICAgICAgICAga3YgPSBrOworICAgICAgICB9IGVsc2UgaWYgKHYgPT09IGZhbHNlKSB7CisgICAgICAgICAga3YgPSBrICsgJz1mYWxzZSc7CisgICAgICAgIH0gZWxzZSBpZiAodiA9PT0gJycpIHsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBrdiA9IGsgKyAnPScgKyB2OworICAgICAgICB9CisgICAgICAgIHBhcnRzLnB1c2goa3YpOworICAgICAgfQorICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJyYnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGF0ZUZyb21TZWFyY2hTdHJpbmcoc3RyaW5nKSB7CisgICAgICB2YXIgc3RhdGUgPSB7fTsKKyAgICAgIHN0cmluZy5zcGxpdCgnJicpLmZvckVhY2goZnVuY3Rpb24ocGFydCkgeworICAgICAgICBpZiAocGFydCA9PSAnJykKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciBrdiA9IHBhcnQuc3BsaXQoJz0nKTsKKyAgICAgICAgdmFyIGssIHY7CisgICAgICAgIGlmIChrdi5sZW5ndGggPT0gMSkgeworICAgICAgICAgIGsgPSBrdlswXTsKKyAgICAgICAgICB2ID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBrID0ga3ZbMF07CisgICAgICAgICAgaWYgKGt2WzFdID09ICdmYWxzZScpCisgICAgICAgICAgICB2ID0gZmFsc2U7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgdiA9IGt2WzFdOworICAgICAgICB9CisgICAgICAgIHN0YXRlW2tdID0gdjsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHN0YXRlOworICAgIH0KKworICAgIGZ1bmN0aW9uIGdldFN1aXRlUmVscGF0aHNUb0xvYWQoc3RhdGUpIHsKKyAgICAgIGlmIChzdGF0ZS50ZXN0U3VpdGVOYW1lKSB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgdmFyIHBhcnRzID0gc3RhdGUudGVzdFN1aXRlTmFtZS5zcGxpdCgnLicpOworICAgICAgICAgIHZhciB0ZXN0U3VpdGVSZWxQYXRoID0gJy8nICsgcGFydHMuam9pbignLycpICsgJy5odG1sJzsKKworICAgICAgICAgIHZhciBzdWl0ZVJlbHBhdGhzVG9Mb2FkID0gW3Rlc3RTdWl0ZVJlbFBhdGhdOworICAgICAgICAgIHJlc29sdmUoc3VpdGVSZWxwYXRoc1RvTG9hZCk7CisgICAgICAgIH0pOworICAgICAgfQorICAgICAgcmV0dXJuIHRyLmIuZ2V0QXN5bmMoJy90ci9qc29uL3Rlc3RzJykudGhlbigKKyAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgIHZhciB0ZXN0TWV0YWRhdGEgPSBKU09OLnBhcnNlKGRhdGEpOworICAgICAgICAgIGlmICh0ZXN0TWV0YWRhdGEuaGFzT3duUHJvcGVydHkoJ3Rlc3RfbW9kdWxlX25hbWVzJykpIHsKKyAgICAgICAgICAgIHRyLnNob3dQYW5pYygKKyAgICAgICAgICAgICAgICAnb3V0IG9mIGRhdGUgd2Vic2VydmVyJywKKyAgICAgICAgICAgICAgICAnPl88IHlvdXIgZGV2c2VydmVyIG5lZWRzIGEgcmVzdGFydCBrdGh4YmFpJyk7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkJyk7CisgICAgICAgICAgfQorICAgICAgICAgIHZhciBzdWl0ZVJlbHBhdGhzVG9Mb2FkID0gdGVzdE1ldGFkYXRhLnRlc3RfcmVscGF0aHMubWFwKGZ1bmN0aW9uKHgpIHsKKyAgICAgICAgICAgIHJldHVybiAnLycgKyB4OworICAgICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBzdWl0ZVJlbHBhdGhzVG9Mb2FkOworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZEFuZFJ1blRlc3RzKCkgeworICAgICAgdmFyIHN0YXRlID0gc3RhdGVGcm9tU2VhcmNoU3RyaW5nKAorICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpKTsKKyAgICAgIHVwZGF0ZVRpdGxlKHN0YXRlKTsKKworCisgICAgICBzaG93TG9hZGluZ092ZXJsYXkoKTsKKworICAgICAgdmFyIGxvYWRlcjsKKyAgICAgIHZhciBwID0gZ2V0U3VpdGVSZWxwYXRoc1RvTG9hZChzdGF0ZSk7CisgICAgICBwID0gcC50aGVuKAorICAgICAgICBmdW5jdGlvbihzdWl0ZVJlbHBhdGhzVG9Mb2FkKSB7CisgICAgICAgICAgbG9hZGVyID0gbmV3IHRyLmIudW5pdHRlc3QuU3VpdGVMb2FkZXIoc3VpdGVSZWxwYXRoc1RvTG9hZCk7CisgICAgICAgICAgcmV0dXJuIGxvYWRlci5hbGxTdWl0ZXNMb2FkZWRQcm9taXNlOworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbihlKSB7CisgICAgICAgICAgaGlkZUxvYWRpbmdPdmVybGF5KCk7CisgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfSk7CisgICAgICBwID0gcC50aGVuKAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICBoaWRlTG9hZGluZ092ZXJsYXkoKTsKKyAgICAgICAgICBQb2x5bWVyLndoZW5SZWFkeShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRlc3RzKGxvYWRlciwgc3RhdGUpOworICAgICAgICAgIH0pOworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgICBoaWRlTG9hZGluZ092ZXJsYXkoKTsKKyAgICAgICAgICB0ci5zaG93UGFuaWMoJ01vZHVsZSBsb2FkaW5nIGZhaWx1cmUnLCBlcnIpOworICAgICAgICAgIHRocm93IGVycjsKKyAgICAgICAgfSk7CisgICAgICByZXR1cm4gcDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzaG93TG9hZGluZ092ZXJsYXkoKSB7CisgICAgICB2YXIgb3ZlcmxheSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgb3ZlcmxheS5pZCA9ICd0ZXN0cy1sb2FkaW5nLW92ZXJsYXknOworICAgICAgb3ZlcmxheS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnd2hpdGUnOworICAgICAgb3ZlcmxheS5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCc7CisgICAgICBvdmVybGF5LnN0eWxlLmNvbG9yID0gJ2JsYWNrJzsKKyAgICAgIG92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICctd2Via2l0LWZsZXgnOworICAgICAgb3ZlcmxheS5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7CisgICAgICBvdmVybGF5LnN0eWxlLmxlZnQgPSAwOworICAgICAgb3ZlcmxheS5zdHlsZS5wYWRkaW5nID0gJzhweCc7CisgICAgICBvdmVybGF5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJzsKKyAgICAgIG92ZXJsYXkuc3R5bGUudG9wID0gMDsKKyAgICAgIG92ZXJsYXkuc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiA9ICdjb2x1bW4nOworICAgICAgb3ZlcmxheS5zdHlsZS53aWR0aCA9ICcxMDAlJzsKKworICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIGVsZW1lbnQuc3R5bGUud2Via2l0RmxleCA9ICcxIDEgYXV0byc7CisgICAgICBlbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nOworICAgICAgb3ZlcmxheS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKworICAgICAgZWxlbWVudC50ZXh0Q29udGVudCA9ICdMb2FkaW5nIHRlc3RzLi4uJzsKKyAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3ZlcmxheSk7CisgICAgfQorICAgIGZ1bmN0aW9uIGhpZGVMb2FkaW5nT3ZlcmxheSgpIHsKKyAgICAgIHZhciBvdmVybGF5ID0gZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yKCcjdGVzdHMtbG9hZGluZy1vdmVybGF5Jyk7CisgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG92ZXJsYXkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHVwZGF0ZVRpdGxlKHN0YXRlKSB7CisgICAgICB2YXIgdGVzdEZpbHRlclN0cmluZyA9IHN0YXRlLnRlc3RGaWx0ZXJTdHJpbmcgfHwgJyc7CisgICAgICB2YXIgdGVzdFN1aXRlTmFtZSA9IHN0YXRlLnRlc3RTdWl0ZU5hbWUgfHwgJyc7CisKKyAgICAgIHZhciB0aXRsZTsKKyAgICAgIGlmICh0ZXN0U3VpdGVOYW1lICYmIHRlc3RGaWx0ZXJTdHJpbmcubGVuZ3RoKSB7CisgICAgICAgIHRpdGxlID0gdGVzdEZpbHRlclN0cmluZyArICcgaW4gJyArIHRlc3RTdWl0ZU5hbWU7CisgICAgICB9IGVsc2UgaWYgKHRlc3RTdWl0ZU5hbWUpIHsKKyAgICAgICAgdGl0bGUgPSB0ZXN0U3VpdGVOYW1lOworICAgICAgfSBlbHNlIGlmICh0ZXN0RmlsdGVyU3RyaW5nKSB7CisgICAgICAgIHRpdGxlID0gdGVzdEZpbHRlclN0cmluZyArICcgaW4gYWxsIHRlc3RzJzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRpdGxlID0gJ0FsbCBUcmFjZS1WaWV3ZXIgVGVzdHMnOworICAgICAgfQorCisgICAgICBpZiAoc3RhdGUuc2hvcnRGb3JtYXQpCisgICAgICAgIHRpdGxlICs9ICcocyknOworICAgICAgZG9jdW1lbnQudGl0bGUgPSB0aXRsZTsKKyAgICAgIHZhciBydW5uZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXInKTsKKyAgICAgIGlmIChydW5uZXIpCisgICAgICAgIHJ1bm5lci50aXRsZSA9IHRpdGxlOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKGxvYWRlciwgc3RhdGUpIHsKKyAgICAgIHZhciBydW5uZXIgPSBuZXcgdHIuYi51bml0dGVzdC5JbnRlcmFjdGl2ZVRlc3RSdW5uZXIoKTsKKyAgICAgIHJ1bm5lci50ZXN0TGlua3MgPSBbCisgICAgICAgIHtsaW5rUGF0aDogJy9leGFtcGxlcy9za2lhX2RlYnVnZ2VyLmh0bWwnLCB0aXRsZTogJ1NraWEgRGVidWdnZXInfSwKKyAgICAgICAge2xpbmtQYXRoOiAnL2V4YW1wbGVzL3RyYWNlX3ZpZXdlci5odG1sJywgdGl0bGU6ICdUcmFjZSBGaWxlIFZpZXdlcid9CisgICAgICBdOworICAgICAgcnVubmVyLmFsbFRlc3RzID0gbG9hZGVyLmdldEFsbFRlc3RzKCk7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJ1bm5lcik7CisKKyAgICAgIHJ1bm5lci5zZXRTdGF0ZShzdGF0ZSk7CisgICAgICB1cGRhdGVUaXRsZShzdGF0ZSk7CisKKyAgICAgIHJ1bm5lci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgc3RhdGUgPSBydW5uZXIuZ2V0U3RhdGUoKTsKKyAgICAgICAgdmFyIHN0YXRlU3RyaW5nID0gc3RhdGVUb1NlYXJjaFN0cmluZyhydW5uZXIuZ2V0RGVmYXVsdFN0YXRlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUpOworICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkgPT0gc3RhdGVTdHJpbmcpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHVwZGF0ZVRpdGxlKHN0YXRlKTsKKyAgICAgICAgdmFyIHN0YXRlVVJMOworICAgICAgICBpZiAoc3RhdGVTdHJpbmcubGVuZ3RoID4gMCkKKyAgICAgICAgICBzdGF0ZVVSTCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArICc/JyArIHN0YXRlU3RyaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgc3RhdGVVUkwgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CisgICAgICAgIHJlYWxXaW5kb3dIaXN0b3J5UHVzaFN0YXRlKHN0YXRlLCBkb2N1bWVudC50aXRsZSwgc3RhdGVVUkwpOworICAgICAgfSk7CisKKyAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIGZ1bmN0aW9uKHN0YXRlKSB7CisgICAgICAgIHJ1bm5lci5zZXRTdGF0ZShzdGF0ZSwgdHJ1ZSk7CisgICAgICB9KTsKKworICAgICAgcnVubmVyLmdldEhSZWZGb3JUZXN0Q2FzZSA9IGZ1bmN0aW9uKHRlc3RDYXNlKSB7CisgICAgICAgIHZhciBzdGF0ZSA9IHJ1bm5lci5nZXRTdGF0ZSgpOworICAgICAgICBpZiAoc3RhdGUudGVzdEZpbHRlclN0cmluZyA9PT0gJycgJiYKKyAgICAgICAgICAgIHN0YXRlLnRlc3RTdWl0ZU5hbWUgPT09ICcnKSB7CisgICAgICAgICAgc3RhdGUudGVzdFN1aXRlTmFtZSA9IHRlc3RDYXNlLnN1aXRlLm5hbWU7CisgICAgICAgICAgc3RhdGUudGVzdEZpbHRlclN0cmluZyA9ICcnOworICAgICAgICAgIHN0YXRlLnNob3J0Rm9ybWF0ID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgc3RhdGUudGVzdFN1aXRlTmFtZSA9IHRlc3RDYXNlLnN1aXRlLm5hbWU7CisgICAgICAgICAgc3RhdGUudGVzdEZpbHRlclN0cmluZyA9IHRlc3RDYXNlLm5hbWU7CisgICAgICAgICAgc3RhdGUuc2hvcnRGb3JtYXQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICB2YXIgc3RhdGVTdHJpbmcgPSBzdGF0ZVRvU2VhcmNoU3RyaW5nKHJ1bm5lci5nZXREZWZhdWx0U3RhdGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZVN0cmluZy5sZW5ndGggPiAwKQorICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyAnPycgKyBzdGF0ZVN0cmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CisgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkQW5kUnVuVGVzdHMpOworCisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXRzL2dlbmVyaWNfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy9nZW5lcmljX3RhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA2YWRiMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy9nZW5lcmljX3RhYmxlLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5iLnVuaXRzJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBUYWJ1bGFyIGRhdGEgd3JhcHBlci4gU2ltcGx5IHdyYXBzIGFuIGFycmF5IG9mIGl0ZW1zLgorICAgKi8KKyAgZnVuY3Rpb24gR2VuZXJpY1RhYmxlKGl0ZW1zKSB7CisgICAgaWYgKGl0ZW1zICE9PSB1bmRlZmluZWQpCisgICAgICB0aGlzLml0ZW1zID0gaXRlbXM7CisgICAgZWxzZQorICAgICAgdGhpcy5pdGVtcyA9IFtdOworICB9OworCisgIEdlbmVyaWNUYWJsZS5wcm90b3R5cGUgPSB7CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBHZW5lcmljVGFibGU6IEdlbmVyaWNUYWJsZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy9zaXplX2luX2J5dGVzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZWNmYWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlcy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFVOSVRfUFJFRklYRVMgPSBbJycsICdLaScsICdNaScsICdHaScsICdUaSddOworCisgIC8qKgorICAgKiBGbG9hdCB3cmFwcGVyLCByZXByZXNlbnRpbmcgYSBzaXplIGluIGJ5dGVzLCBjYXBhYmxlIG9mIHByZXR0eS1wcmludGluZy4KKyAgICovCisgIGZ1bmN0aW9uIFNpemVJbkJ5dGVzKG51bUJ5dGVzKSB7CisgICAgdGhpcy5udW1CeXRlcyA9IG51bUJ5dGVzOworICB9OworCisgIFNpemVJbkJ5dGVzLnByb3RvdHlwZSA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gU2l6ZUluQnl0ZXMuZm9ybWF0KHRoaXMubnVtQnl0ZXMpOworICAgIH0KKyAgfTsKKworICBTaXplSW5CeXRlcy5mb3JtYXQgPSBmdW5jdGlvbihudW1CeXRlcykgeworICAgIHZhciBzaWduUHJlZml4ID0gJyc7CisgICAgaWYgKG51bUJ5dGVzIDwgMCkgeworICAgICAgc2lnblByZWZpeCA9ICctJzsKKyAgICAgIG51bUJ5dGVzID0gLW51bUJ5dGVzOworICAgIH0KKworICAgIHZhciBpID0gMDsKKyAgICB3aGlsZSAobnVtQnl0ZXMgPj0gMTAyNCAmJiBpIDwgVU5JVF9QUkVGSVhFUy5sZW5ndGggLSAxKSB7CisgICAgICBudW1CeXRlcyAvPSAxMDI0OworICAgICAgaSsrOworICAgIH0KKworICAgIHJldHVybiBzaWduUHJlZml4ICsgbnVtQnl0ZXMudG9GaXhlZCgxKSArICcgJyArIFVOSVRfUFJFRklYRVNbaV0gKyAnQic7CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBTaXplSW5CeXRlczogU2l6ZUluQnl0ZXMKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlc190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg5YTE2MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy9zaXplX2luX2J5dGVzX3Rlc3QuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlcy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBTaXplSW5CeXRlcyA9IHRyLmIudW5pdHMuU2l6ZUluQnl0ZXM7CisKKyAgZnVuY3Rpb24gY2hlY2tGb3JtYXQobnVtQnl0ZXMsIGV4cGVjdGVkU3RyaW5nKSB7CisgICAgYXNzZXJ0LmVxdWFsKFNpemVJbkJ5dGVzLmZvcm1hdChudW1CeXRlcyksIGV4cGVjdGVkU3RyaW5nKTsKKyAgICBhc3NlcnQuZXF1YWwobmV3IFNpemVJbkJ5dGVzKG51bUJ5dGVzKS50b1N0cmluZygpLCBleHBlY3RlZFN0cmluZyk7CisgIH0KKworICB0ZXN0KCdmb3JtYXQnLCBmdW5jdGlvbigpIHsKKyAgICBjaGVja0Zvcm1hdCgwLCAnMC4wIEInKTsKKyAgICBjaGVja0Zvcm1hdCgxLCAnMS4wIEInKTsKKyAgICBjaGVja0Zvcm1hdCgxNTM2LCAnMS41IEtpQicpOworICAgIGNoZWNrRm9ybWF0KDQyNC4yICogMTAyNCAqIDEwMjQsICc0MjQuMiBNaUInKTsKKyAgICBjaGVja0Zvcm1hdCg1ICogMTAyNCAqIDEwMjQgKiAxMDI0LCAnNS4wIEdpQicpOworICAgIGNoZWNrRm9ybWF0KDEwMjUgKiAxMDI0ICogMTAyNCAqIDEwMjQgKiAxMDI0LCAnMTAyNS4wIFRpQicpOworICAgIGNoZWNrRm9ybWF0KC0yLjUgKiAxMDI0ICogMTAyNCwgJy0yLjUgTWlCJyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy90aW1lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNWRhZjMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZS5odG1sCkBAIC0wLDAgKzEsMTAyIEBACis8IURPQ1RZUEUgaHRtbD4NCis8IS0tDQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUNCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLg0KKy0tPg0KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPg0KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudF90YXJnZXQuaHRtbCI+DQorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+DQorDQorPHNjcmlwdD4NCisndXNlIHN0cmljdCc7DQorDQorLyoqDQorICogQGZpbGVvdmVydmlldyBUaW1lIGN1cnJlbnREaXNwbGF5VW5pdA0KKyAqLw0KK3RyLmV4cG9ydFRvKCd0ci5iLnVuaXRzJywgZnVuY3Rpb24oKSB7DQorICB2YXIgbXMgPSB7DQorICAgIHNjYWxlOiAxZS0zLA0KKyAgICBzdWZmaXg6ICdtcycsDQorICAgIC8vIGNvbXBhcmVzIGEgPCBiIHdpdGggYWRqdXN0bWVudHMgdG8gcHJlY2lzaW9uIGVycm9ycw0KKyAgICByb3VuZGVkTGVzczogZnVuY3Rpb24oYSwgYikgew0KKyAgICAgIHJldHVybiBNYXRoLnJvdW5kKGEgKiAxMDAwKSA8IE1hdGgucm91bmQoYiAqIDEwMDApOw0KKyAgICB9LA0KKyAgICBmb3JtYXQ6IGZ1bmN0aW9uKHRzKSB7DQorICAgICAgdmFyIHRzUm91bmRlZCA9IE1hdGgucm91bmQodHMgKiAxMDAwLjApIC8gMTAwMC4wOw0KKyAgICAgIHZhciBuID0gbmV3IE51bWJlcih0c1JvdW5kZWQpOw0KKyAgICAgIHJldHVybiBuLnRvTG9jYWxlU3RyaW5nKHVuZGVmaW5lZCwgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDMgfSkgKyAnIG1zJzsNCisgICAgfQ0KKyAgfTsNCisNCisgIHZhciBucyA9IHsNCisgICAgc2NhbGU6IDFlLTksDQorICAgIHN1ZmZpeDogJ25zJywNCisgICAgLy8gY29tcGFyZXMgYSA8IGIgd2l0aCBhZGp1c3RtZW50cyB0byBwcmVjaXNpb24gZXJyb3JzDQorICAgIHJvdW5kZWRMZXNzOiBmdW5jdGlvbihhLCBiKSB7DQorICAgICAgcmV0dXJuIE1hdGgucm91bmQoYSAqIDEwMDAwMDApIDwgTWF0aC5yb3VuZChiICogMTAwMDAwMCk7DQorICAgIH0sDQorICAgIGZvcm1hdDogZnVuY3Rpb24odHMpIHsNCisgICAgICB2YXIgdHNSb3VuZGVkID0gTWF0aC5yb3VuZCh0cyAqIDEwMDAwMDAuMCk7DQorICAgICAgdmFyIG4gPSBuZXcgTnVtYmVyKHRzUm91bmRlZCk7DQorICAgICAgcmV0dXJuIG4udG9Mb2NhbGVTdHJpbmcodW5kZWZpbmVkLCB7IG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCB9KSArICcgbnMnOw0KKyAgICB9DQorICB9Ow0KKw0KKyAgZnVuY3Rpb24gbWF4KGEsIGIpIHsNCisgICAgaWYgKGEgPT09IHVuZGVmaW5lZCkNCisgICAgICByZXR1cm4gYjsNCisgICAgaWYgKGIgPT09IHVuZGVmaW5lZCkNCisgICAgICByZXR1cm4gYTsNCisgICAgcmV0dXJuIGEuc2NhbGUgPiBiLnNjYWxlID8gYSA6IGI7DQorICB9DQorDQorICB2YXIgVGltZSA9IHsNCisgICAgc3VwcG9ydGVkVW5pdHM6IHsNCisgICAgICBtczogbXMsDQorICAgICAgbnM6IG5zDQorICAgIH0sDQorDQorICAgIHJlc2V0OiBmdW5jdGlvbigpIHsNCisgICAgICB0aGlzLmN1cnJlbnREaXNwbGF5VW5pdCA9IG1zOw0KKyAgICB9LA0KKw0KKyAgICBjdXJyZW50RGlzcGxheVVuaXRfOiBtcywNCisgICAgZ2V0IGN1cnJlbnREaXNwbGF5VW5pdCgpIHsNCisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50RGlzcGxheVVuaXRfOw0KKyAgICB9LA0KKyAgICAvLyB1c2UgcHJlZmVycmVkLWRpc3BsYXktdW5pdCBjb21wb25lbnQgaW5zdGVhZCBvZiBkaXJlY3RseSBzZXR0aW5nIGRpcmVjdGx5DQorICAgIHNldCBjdXJyZW50RGlzcGxheVVuaXQodmFsdWUpIHsNCisgICAgICBpZiAodGhpcy5jdXJyZW50RGlzcGxheVVuaXRfID09IHZhbHVlKQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICAgIHRoaXMuY3VycmVudERpc3BsYXlVbml0XyA9IHZhbHVlOw0KKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgdHIuYi5FdmVudCgnZGlzcGxheS11bml0LWNoYW5nZWQnKSk7DQorICAgIH0sDQorDQorICAgIGRpZFByZWZlcnJlZFVuaXRDaGFuZ2U6IGZ1bmN0aW9uKCkgew0KKyAgICAgIHZhciBsYXJnZXN0ID0gdW5kZWZpbmVkOw0KKyAgICAgIHZhciBlbHMgPSB0ci5iLmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhkb2N1bWVudC5ib2R5LA0KKyAgICAgICAgICAndHItdWktdS1wcmVmZXJyZWQtZGlzcGxheS11bml0Jyk7DQorICAgICAgZWxzLmZvckVhY2goZnVuY3Rpb24oZWwpIHsNCisgICAgICAgICAgbGFyZ2VzdCA9IG1heChsYXJnZXN0LCBlbC5wcmVmZXJyZWREaXNwbGF5VW5pdCk7DQorICAgICAgfSk7DQorDQorICAgICAgdGhpcy5jdXJyZW50RGlzcGxheVVuaXQgPSBsYXJnZXN0ID09PSB1bmRlZmluZWQgPyBtcyA6IGxhcmdlc3Q7DQorICAgIH0sDQorDQorICAgIHRpbWVzdGFtcEZyb21VczogZnVuY3Rpb24odXMpIHsNCisgICAgICByZXR1cm4gdXMgLyAxMDAwOw0KKyAgICB9LA0KKyAgICBtYXliZVRpbWVzdGFtcEZyb21VczogZnVuY3Rpb24odXMpIHsNCisgICAgICByZXR1cm4gdXMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHVzIC8gMTAwMDsNCisgICAgfQ0KKyAgfTsNCisNCisgIHRyLmIuRXZlbnRUYXJnZXQuZGVjb3JhdGUoVGltZSk7DQorDQorICByZXR1cm4gew0KKyAgICBUaW1lOiBUaW1lDQorICB9Ow0KK30pOw0KKzwvc2NyaXB0Pg0KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMjAyYjMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmIudW5pdHMnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEZsb2F0IHdyYXBwZXIsIHJlcHJlc2VudGluZyBhIHRpbWUgZHVyYXRpb24sIGNhcGFibGUgb2YgcHJldHR5LXByaW50aW5nLgorICAgKi8KKyAgLy8gVE9ETyhwZXRyY2VybWFrKTogQWx0aG91Z2ggdGhpcyBjbGFzcyBpcyBjdXJyZW50bHkgaWRlbnRpY2FsIHRvCisgIC8vIHRyLmIudW5pdHMuVGltZVN0YW1wLCB3ZSBzaG91bGQgcHJvYmFibHkga2VlcCBib3RoIGNsYXNzZXMgaW4gY2FzZSB3ZSB3YW50CisgIC8vIHRvIGhhbmRsZSB0aGVtIGRpZmZlcmVudGx5IGluIHRoZSBmdXR1cmUuIFRoZXJlZm9yZSwgcmF0aGVyIHRoYW4gcmVtb3ZpbmcKKyAgLy8gb25lIG9mIHRoZSBjbGFzc2VzLCBpdCB3b3VsZCBwcm9iYWJseSBtYWtlIG1vcmUgc2Vuc2UgdG8gaGF2ZSBvbmUgaW5oZXJpdAorICAvLyB0aGUgcHJvdG90eXBlIGNoYWluIG9mIHRoZSBvdGhlciBvbmUuCisgIGZ1bmN0aW9uIFRpbWVEdXJhdGlvbihkdXJhdGlvbikgeworICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgfTsKKworICBUaW1lRHVyYXRpb24ucHJvdG90eXBlID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBUaW1lRHVyYXRpb24uZm9ybWF0KHRoaXMuZHVyYXRpb24pOworICAgIH0KKyAgfTsKKworICBUaW1lRHVyYXRpb24uZm9ybWF0ID0gZnVuY3Rpb24oZHVyYXRpb24pIHsKKyAgICByZXR1cm4gdHIuYi51bml0cy5UaW1lLmN1cnJlbnREaXNwbGF5VW5pdC5mb3JtYXQoZHVyYXRpb24pOworICB9OworCisgIHJldHVybiB7CisgICAgVGltZUR1cmF0aW9uOiBUaW1lRHVyYXRpb24KKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ3MDcxYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uX3Rlc3QuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFRpbWUgPSB0ci5iLnVuaXRzLlRpbWU7CisgIHZhciBUaW1lRHVyYXRpb24gPSB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbjsKKworICBmdW5jdGlvbiBjaGVja0Zvcm1hdCh0aW1lc3RhbXAsIGV4cGVjdGVkU3RyaW5nKSB7CisgICAgYXNzZXJ0LmVxdWFsKFRpbWVEdXJhdGlvbi5mb3JtYXQodGltZXN0YW1wKSwgZXhwZWN0ZWRTdHJpbmcpOworICAgIGFzc2VydC5lcXVhbChuZXcgVGltZUR1cmF0aW9uKHRpbWVzdGFtcCkudG9TdHJpbmcoKSwgZXhwZWN0ZWRTdHJpbmcpOworICB9CisKKyAgdGVzdCgnZm9ybWF0JywgZnVuY3Rpb24oKSB7CisgICAgdHJ5IHsKKyAgICAgIC8vIFVzZSBtaWxsaXNlY29uZHMgdG8gZGlzcGxheSB0aW1lIChkZWZhdWx0IGJlaGF2aW9yKS4KKyAgICAgIFRpbWUuY3VycmVudERpc3BsYXlVbml0ID0gVGltZS5zdXBwb3J0ZWRVbml0cy5tczsKKworICAgICAgY2hlY2tGb3JtYXQoMCwgJzAuMDAwIG1zJyk7CisgICAgICBjaGVja0Zvcm1hdCgwLjAyLCAnMC4wMjAgbXMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDAuMDAxLCAnMC4wMDEgbXMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDAuMDAwNSwgJzAuMDAxIG1zJyk7CisgICAgICBjaGVja0Zvcm1hdCgwLjAwMDQ5LCAnMC4wMDAgbXMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDk5OS45OTksICc5OTkuOTk5IG1zJyk7CisgICAgICBjaGVja0Zvcm1hdCgxMDAwLjAwMSwgJzEsMDAwLjAwMSBtcycpOworICAgICAgY2hlY2tGb3JtYXQoMTIzNDU2Nzg5LCAnMTIzLDQ1Niw3ODkuMDAwIG1zJyk7CisgICAgICBjaGVja0Zvcm1hdCgtMC4wMDA1MSwgJy0wLjAwMSBtcycpOworICAgICAgY2hlY2tGb3JtYXQoLTEyMzQ1Njc4OSwgJy0xMjMsNDU2LDc4OS4wMDAgbXMnKTsKKworICAgICAgLy8gQ2hhbmdlIHRoZSB1bml0IHRvIG5hbm9zZWNvbmRzLgorICAgICAgVGltZS5jdXJyZW50RGlzcGxheVVuaXQgPSBUaW1lLnN1cHBvcnRlZFVuaXRzLm5zOworCisgICAgICBjaGVja0Zvcm1hdCgwLCAnMCBucycpOworICAgICAgY2hlY2tGb3JtYXQoMSwgJzEsMDAwLDAwMCBucycpOworICAgICAgY2hlY2tGb3JtYXQoMC4wMDAwNDIsICc0MiBucycpOworICAgICAgY2hlY2tGb3JtYXQoMC4wMDAwMDEsICcxIG5zJyk7CisgICAgICBjaGVja0Zvcm1hdCgwLjAwMDAwMDUsICcxIG5zJyk7CisgICAgICBjaGVja0Zvcm1hdCgwLjAwMDAwMDQ5LCAnMCBucycpOworICAgICAgY2hlY2tGb3JtYXQoMTIzLjQ1NiwgJzEyMyw0NTYsMDAwIG5zJyk7CisgICAgICBjaGVja0Zvcm1hdCgtMC4wNywgJy03MCwwMDAgbnMnKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgVGltZS5yZXNldCgpOworICAgIH0KKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXRzL3RpbWVfc3RhbXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU1YzY0NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYi51bml0cycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogRmxvYXQgd3JhcHBlciwgcmVwcmVzZW50aW5nIGEgdGltZSBzdGFtcCwgY2FwYWJsZSBvZiBwcmV0dHktcHJpbnRpbmcuCisgICAqLworICBmdW5jdGlvbiBUaW1lU3RhbXAodGltZXN0YW1wKSB7CisgICAgdGhpcy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7CisgIH07CisKKyAgVGltZVN0YW1wLnByb3RvdHlwZSA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gVGltZVN0YW1wLmZvcm1hdCh0aGlzLnRpbWVzdGFtcCk7CisgICAgfQorICB9OworCisgIFRpbWVTdGFtcC5mb3JtYXQgPSBmdW5jdGlvbih0aW1lc3RhbXApIHsKKyAgICByZXR1cm4gdHIuYi51bml0cy5UaW1lLmN1cnJlbnREaXNwbGF5VW5pdC5mb3JtYXQodGltZXN0YW1wKTsKKyAgfTsKKworICByZXR1cm4geworICAgIFRpbWVTdGFtcDogVGltZVN0YW1wCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXRzL3RpbWVfc3RhbXBfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NDYxZDIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV9zdGFtcF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUaW1lID0gdHIuYi51bml0cy5UaW1lOworICB2YXIgVGltZVN0YW1wID0gdHIuYi51bml0cy5UaW1lU3RhbXA7CisKKyAgZnVuY3Rpb24gY2hlY2tGb3JtYXQodGltZXN0YW1wLCBleHBlY3RlZFN0cmluZykgeworICAgIGFzc2VydC5lcXVhbChUaW1lU3RhbXAuZm9ybWF0KHRpbWVzdGFtcCksIGV4cGVjdGVkU3RyaW5nKTsKKyAgICBhc3NlcnQuZXF1YWwobmV3IFRpbWVTdGFtcCh0aW1lc3RhbXApLnRvU3RyaW5nKCksIGV4cGVjdGVkU3RyaW5nKTsKKyAgfQorCisgIHRlc3QoJ2Zvcm1hdCcsIGZ1bmN0aW9uKCkgeworICAgIHRyeSB7CisgICAgICAvLyBVc2UgbWlsbGlzZWNvbmRzIHRvIGRpc3BsYXkgdGltZSAoZGVmYXVsdCBiZWhhdmlvcikuCisgICAgICBUaW1lLmN1cnJlbnREaXNwbGF5VW5pdCA9IFRpbWUuc3VwcG9ydGVkVW5pdHMubXM7CisKKyAgICAgIGNoZWNrRm9ybWF0KDAsICcwLjAwMCBtcycpOworICAgICAgY2hlY2tGb3JtYXQoMC4wMiwgJzAuMDIwIG1zJyk7CisgICAgICBjaGVja0Zvcm1hdCgwLjAwMSwgJzAuMDAxIG1zJyk7CisgICAgICBjaGVja0Zvcm1hdCgwLjAwMDUsICcwLjAwMSBtcycpOworICAgICAgY2hlY2tGb3JtYXQoMC4wMDA0OSwgJzAuMDAwIG1zJyk7CisgICAgICBjaGVja0Zvcm1hdCg5OTkuOTk5LCAnOTk5Ljk5OSBtcycpOworICAgICAgY2hlY2tGb3JtYXQoMTAwMC4wMDEsICcxLDAwMC4wMDEgbXMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDEyMzQ1Njc4OSwgJzEyMyw0NTYsNzg5LjAwMCBtcycpOworICAgICAgY2hlY2tGb3JtYXQoLTAuMDAwNTEsICctMC4wMDEgbXMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KC0xMjM0NTY3ODksICctMTIzLDQ1Niw3ODkuMDAwIG1zJyk7CisKKyAgICAgIC8vIENoYW5nZSB0aGUgdW5pdCB0byBuYW5vc2Vjb25kcy4KKyAgICAgIFRpbWUuY3VycmVudERpc3BsYXlVbml0ID0gVGltZS5zdXBwb3J0ZWRVbml0cy5uczsKKworICAgICAgY2hlY2tGb3JtYXQoMCwgJzAgbnMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDEsICcxLDAwMCwwMDAgbnMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDAuMDAwMDQyLCAnNDIgbnMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDAuMDAwMDAxLCAnMSBucycpOworICAgICAgY2hlY2tGb3JtYXQoMC4wMDAwMDA1LCAnMSBucycpOworICAgICAgY2hlY2tGb3JtYXQoMC4wMDAwMDA0OSwgJzAgbnMnKTsKKyAgICAgIGNoZWNrRm9ybWF0KDEyMy40NTYsICcxMjMsNDU2LDAwMCBucycpOworICAgICAgY2hlY2tGb3JtYXQoLTAuMDcsICctNzAsMDAwIG5zJyk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgIFRpbWUucmVzZXQoKTsKKyAgICB9CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0cy90aW1lX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0cy90aW1lX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXRzL3RpbWVfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHMvdGltZV90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0dGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJkZjE0MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0dGVzdC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+CisKKzxzY3JpcHQgc3JjPSIvY2hhaS9jaGFpLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgLyoqCisgICAqIEFsaWFzIGNoYWkgYXNzZXJ0IHRvIHRoZSBnbG9iYWwgYXNzZXJ0LgorICAgKi8KKyAgZ2xvYmFsLmFzc2VydCA9IGNoYWkuYXNzZXJ0OworPC9zY3JpcHQ+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9zdWl0ZV9sb2FkZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QvdGVzdF9jYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L3Rlc3Rfc3VpdGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QvdGVzdF9ydW5uZXIuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOwordHIuZXhwb3J0VG8oJ3RyLmIudW5pdHRlc3QnLCBmdW5jdGlvbigpIHsKKyAgcmV0dXJuIHsKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHRlc3QvY29uc3RhbnRzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvY29uc3RhbnRzLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC9jb25zdGFudHMuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L2NvbnN0YW50cy5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvaHRtbF90ZXN0X3Jlc3VsdHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0dGVzdC9odG1sX3Rlc3RfcmVzdWx0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjY2I4OGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvaHRtbF90ZXN0X3Jlc3VsdHMuaHRtbApAQCAtMCwwICsxLDQ1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QvY29uc3RhbnRzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3V0aWxzLmh0bWwiPgorCis8c3R5bGU+CisgIHgtdHIuYi51bml0dGVzdC10ZXN0LXJlc3VsdHNiYXNlCisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgfQorCisgIHgtdHIuYi51bml0dGVzdC10ZXN0LXJlc3VsdHMgPiB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdC5kYXJrIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICB9CisKKyAgeC1odG1sLXRlc3QtY2FzZS1yZXN1bHQgeworICAgIGRpc3BsYXk6IGJsb2NrOworICB9CisgIHgtaHRtbC10ZXN0LWNhc2UtcmVzdWx0ID4gI3RpdGxlLAorICB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCA+ICNzdGF0dXMsCisgIHgtaHRtbC10ZXN0LWNhc2UtcmVzdWx0ID4gI2RldGFpbHMgPiB4LWh0bWwtdGVzdC1jYXNlLWVycm9yID4gI21lc3NhZ2UsCisgIHgtaHRtbC10ZXN0LWNhc2UtcmVzdWx0ID4gI2RldGFpbHMgPiB4LWh0bWwtdGVzdC1jYXNlLWVycm9yID4gI3N0YWNrLAorICB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCA+ICNkZXRhaWxzID4geC1odG1sLXRlc3QtY2FzZS1lcnJvciA+ICNyZXR1cm4tdmFsdWUgeworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IGF1dG87CisgIH0KKworICB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCA+ICNkZXRhaWxzID4geC1odG1sLXRlc3QtY2FzZS1lcnJvciB7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JleTsKKyAgICBib3JkZXItcmFkaXVzOiA1cHg7CisgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICBtYXJnaW4tYm90dG9tOiAxNHB4OworICB9CisKKyAgeC1odG1sLXRlc3QtY2FzZS1yZXN1bHQgPiAjZGV0YWlscyA+IHgtaHRtbC10ZXN0LWNhc2UtZXJyb3IgPiAjbWVzc2FnZSwKKyAgeC1odG1sLXRlc3QtY2FzZS1yZXN1bHQgPiAjZGV0YWlscyA+IHgtaHRtbC10ZXN0LWNhc2UtZXJyb3IgPiAjc3RhY2sgeworICAgIHdoaXRlLXNwYWNlOiBwcmU7CisgIH0KKworICB4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCA+ICNkZXRhaWxzID4geC1odG1sLXRlc3QtY2FzZS1odG1sLXJlc3VsdCB7CisgICAgZGlzcGxheTogYmxvY2s7CisgIH0KKworICAudW5pdHRlc3QtcGVuZGluZyB7CisgICAgY29sb3I6IG9yYW5nZTsKKyAgfQorICAudW5pdHRlc3QtcnVubmluZyB7CisgICAgY29sb3I6IG9yYW5nZTsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgfQorCisgIC51bml0dGVzdC1wYXNzZWQgeworICAgIGNvbG9yOiBkYXJrZ3JlZW47CisgIH0KKworICAudW5pdHRlc3QtZmFpbGVkIHsKKyAgICBjb2xvcjogZGFya3JlZDsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgfQorCisgIC51bml0dGVzdC1leGNlcHRpb24geworICAgIGNvbG9yOiByZWQ7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIH0KKworICAudW5pdHRlc3QtZmFpbHVyZSB7CisgICAgYm9yZGVyOiAxcHggc29saWQgZ3JleTsKKyAgICBib3JkZXItcmFkaXVzOiA1cHg7CisgICAgcGFkZGluZzogNXB4OworICB9Cis8L3N0eWxlPgorPHRlbXBsYXRlIGlkPSJ4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdC10ZW1wbGF0ZSI+CisgIDxzcGFuIGlkPSJ0aXRsZSI+PC9zcGFuPiZuYnNwOworICA8c3BhbiBpZD0ic3RhdHVzIj48L3NwYW4+Jm5ic3A7CisgIDxzcGFuIGlkPSJyZXR1cm4tdmFsdWUiPjwvc3Bhbj4KKyAgPGRpdiBpZD0iZGV0YWlscyI+PC9kaXY+Cis8L3RlbXBsYXRlPgorCis8dGVtcGxhdGUgaWQ9IngtaHRtbC10ZXN0LWNhc2UtZXJyb3ItdGVtcGxhdGUiPgorICA8ZGl2IGlkPSJzdGFjayI+PC9kaXY+Cis8L3RlbXBsYXRlPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOwordHIuZXhwb3J0VG8oJ3RyLmIudW5pdHRlc3QnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OworCisgIHZhciBUZXN0U3RhdHVzID0gdHIuYi51bml0dGVzdC5UZXN0U3RhdHVzOworICB2YXIgVGVzdFR5cGVzID0gdHIuYi51bml0dGVzdC5UZXN0VHlwZXM7CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIEhUTUxUZXN0Q2FzZVJlc3VsdCA9IHRyLnVpLmIuZGVmaW5lKCd4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdCcpOworCisgIEhUTUxUZXN0Q2FzZVJlc3VsdC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0ci51aS5iLmluc3RhbnRpYXRlVGVtcGxhdGUoCisgICAgICAgICAgJyN4LWh0bWwtdGVzdC1jYXNlLXJlc3VsdC10ZW1wbGF0ZScsIFRISVNfRE9DKSk7CisgICAgICB0aGlzLnRlc3RDYXNlXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMudGVzdENhc2VIUmVmXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuZHVyYXRpb25fID0gdW5kZWZpbmVkOworICAgICAgdGhpcy50ZXN0U3RhdHVzXyA9IFRlc3RTdGF0dXMuUEVORElORzsKKyAgICAgIHRoaXMudGVzdFJldHVyblZhbHVlXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuc2hvd0hUTUxPdXRwdXRfID0gZmFsc2U7CisgICAgICB0aGlzLnVwZGF0ZUNvbG9yQW5kU3RhdHVzXygpOworICAgIH0sCisKKyAgICBnZXQgc2hvd0hUTUxPdXRwdXQoKSB7CisgICAgICByZXR1cm4gdGhpcy5zaG93SFRNTE91dHB1dF87CisgICAgfSwKKworICAgIHNldCBzaG93SFRNTE91dHB1dChzaG93SFRNTE91dHB1dCkgeworICAgICAgdGhpcy5zaG93SFRNTE91dHB1dF8gPSBzaG93SFRNTE91dHB1dDsKKyAgICAgIHRoaXMudXBkYXRlSFRNTE91dHB1dERpc3BsYXlTdGF0ZV8oKTsKKyAgICB9LAorCisgICAgZ2V0IHRlc3RDYXNlKCkgeworICAgICAgcmV0dXJuIHRoaXMudGVzdENhc2VfOworICAgIH0sCisKKyAgICBzZXQgdGVzdENhc2UodGVzdENhc2UpIHsKKyAgICAgIHRoaXMudGVzdENhc2VfID0gdGVzdENhc2U7CisgICAgICB0aGlzLnVwZGF0ZVRpdGxlXygpOworICAgIH0sCisKKyAgICBnZXQgdGVzdENhc2VIUmVmKCkgeworICAgICAgcmV0dXJuIHRoaXMudGVzdENhc2VIUmVmXzsKKyAgICB9LAorCisgICAgc2V0IHRlc3RDYXNlSFJlZihocmVmKSB7CisgICAgICB0aGlzLnRlc3RDYXNlSFJlZl8gPSBocmVmOworICAgICAgdGhpcy51cGRhdGVUaXRsZV8oKTsKKyAgICB9LAorICAgIHVwZGF0ZVRpdGxlXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGl0bGVFbCA9IHRoaXMucXVlcnlTZWxlY3RvcignI3RpdGxlJyk7CisgICAgICBpZiAodGhpcy50ZXN0Q2FzZV8gPT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aXRsZUVsLnRleHRDb250ZW50ID0gJyc7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMudGVzdENhc2VIUmVmXykgeworICAgICAgICB0aXRsZUVsLmlubmVySFRNTCA9ICc8YSBocmVmPSInICsgdGhpcy50ZXN0Q2FzZUhSZWZfICsgJyI+JyArCisgICAgICAgICAgICB0aGlzLnRlc3RDYXNlXy5mdWxseVF1YWxpZmllZE5hbWUgKyAnPC9hPic7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aXRsZUVsLnRleHRDb250ZW50ID0gdGhpcy50ZXN0Q2FzZV8uZnVsbHlRdWFsaWZpZWROYW1lOworICAgICAgfQorICAgIH0sCisKKyAgICBhZGRFcnJvcjogZnVuY3Rpb24obm9ybWFsaXplZEV4Y2VwdGlvbikgeworICAgICAgdmFyIGVycm9yRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd4LWh0bWwtdGVzdC1jYXNlLWVycm9yJyk7CisgICAgICBlcnJvckVsLmFwcGVuZENoaWxkKHRyLnVpLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKKyAgICAgICAgICAnI3gtaHRtbC10ZXN0LWNhc2UtZXJyb3ItdGVtcGxhdGUnLCBUSElTX0RPQykpOworICAgICAgZXJyb3JFbC5xdWVyeVNlbGVjdG9yKCcjc3RhY2snKS50ZXh0Q29udGVudCA9IG5vcm1hbGl6ZWRFeGNlcHRpb24uc3RhY2s7CisgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNkZXRhaWxzJykuYXBwZW5kQ2hpbGQoZXJyb3JFbCk7CisgICAgICB0aGlzLnVwZGF0ZUNvbG9yQW5kU3RhdHVzXygpOworICAgIH0sCisKKyAgICBhZGRIVE1MT3V0cHV0OiBmdW5jdGlvbihlbGVtZW50KSB7CisgICAgICB2YXIgaHRtbFJlc3VsdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgneC1odG1sLXRlc3QtY2FzZS1odG1sLXJlc3VsdCcpOworICAgICAgaHRtbFJlc3VsdEVsLmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjZGV0YWlscycpLmFwcGVuZENoaWxkKGh0bWxSZXN1bHRFbCk7CisKKyAgICAgIHZhciBib3VuZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgYXNzZXJ0KGJvdW5kcy53aWR0aCAhPT0gMCwgJ2FkZEhUTUxPdXRwdXQgZWxlbWVudCBhcyAwIHdpZHRoJyk7CisgICAgICBhc3NlcnQoYm91bmRzLmhlaWdodCAhPT0gMCwgJ2FkZEhUTUxPdXRwdXQgZWxlbWVudCBoYXMgMCBoZWlnaHQnKTsKKyAgICB9LAorCisgICAgdXBkYXRlSFRNTE91dHB1dERpc3BsYXlTdGF0ZV86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGh0bWxSZXN1bHRzID0gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCd4LWh0bWwtdGVzdC1jYXNlLWh0bWwtcmVzdWx0Jyk7CisgICAgICB2YXIgZGlzcGxheTsKKyAgICAgIGlmICh0aGlzLnNob3dIVE1MT3V0cHV0KQorICAgICAgICBkaXNwbGF5ID0gJyc7CisgICAgICBlbHNlCisgICAgICAgIGRpc3BsYXkgPSAodGhpcy50ZXN0U3RhdHVzXyA9PSBUZXN0U3RhdHVzLlJVTk5JTkcpID8gJycgOiAnbm9uZSc7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGh0bWxSZXN1bHRzLmxlbmd0aDsgaSsrKQorICAgICAgICBodG1sUmVzdWx0c1tpXS5zdHlsZS5kaXNwbGF5ID0gZGlzcGxheTsKKyAgICB9LAorCisgICAgZ2V0IGhhZEVycm9ycygpIHsKKyAgICAgIHJldHVybiAhIXRoaXMucXVlcnlTZWxlY3RvcigneC1odG1sLXRlc3QtY2FzZS1lcnJvcicpOworICAgIH0sCisKKyAgICBnZXQgZHVyYXRpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5kdXJhdGlvbl87CisgICAgfSwKKworICAgIHNldCBkdXJhdGlvbihkdXJhdGlvbikgeworICAgICAgdGhpcy5kdXJhdGlvbl8gPSBkdXJhdGlvbjsKKyAgICAgIHRoaXMudXBkYXRlQ29sb3JBbmRTdGF0dXNfKCk7CisgICAgfSwKKworICAgIGdldCB0ZXN0U3RhdHVzKCkgeworICAgICAgcmV0dXJuIHRoaXMudGVzdFN0YXR1c187CisgICAgfSwKKworICAgIHNldCB0ZXN0U3RhdHVzKHRlc3RTdGF0dXMpIHsKKyAgICAgIHRoaXMudGVzdFN0YXR1c18gPSB0ZXN0U3RhdHVzOworICAgICAgdGhpcy51cGRhdGVDb2xvckFuZFN0YXR1c18oKTsKKyAgICAgIHRoaXMudXBkYXRlSFRNTE91dHB1dERpc3BsYXlTdGF0ZV8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29sb3JBbmRTdGF0dXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBjb2xvckNsczsKKyAgICAgIHZhciBzdGF0dXM7CisgICAgICBpZiAodGhpcy5oYWRFcnJvcnMpIHsKKyAgICAgICAgY29sb3JDbHMgPSAndW5pdHRlc3QtZmFpbGVkJzsKKyAgICAgICAgc3RhdHVzID0gJ2ZhaWxlZCc7CisgICAgICB9IGVsc2UgaWYgKHRoaXMudGVzdFN0YXR1c18gPT0gVGVzdFN0YXR1cy5QRU5ESU5HKSB7CisgICAgICAgIGNvbG9yQ2xzID0gJ3VuaXR0ZXN0LXBlbmRpbmcnOworICAgICAgICBzdGF0dXMgPSAncGVuZGluZyc7CisgICAgICB9IGVsc2UgaWYgKHRoaXMudGVzdFN0YXR1c18gPT0gVGVzdFN0YXR1cy5SVU5OSU5HKSB7CisgICAgICAgIGNvbG9yQ2xzID0gJ3VuaXR0ZXN0LXJ1bm5pbmcnOworICAgICAgICBzdGF0dXMgPSAncnVubmluZyc7CisgICAgICB9IGVsc2UgeyAvLyBET05FX1JVTk5JTkcgYW5kIG5vIGVycm9ycworICAgICAgICBjb2xvckNscyA9ICd1bml0dGVzdC1wYXNzZWQnOworICAgICAgICBzdGF0dXMgPSAncGFzc2VkJzsKKyAgICAgIH0KKworICAgICAgdmFyIHN0YXR1c0VsID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjc3RhdHVzJyk7CisgICAgICBpZiAodGhpcy5kdXJhdGlvbl8pCisgICAgICAgIHN0YXR1c0VsLnRleHRDb250ZW50ID0gc3RhdHVzICsgJyAoJyArCisgICAgICAgICAgICB0aGlzLmR1cmF0aW9uXy50b0ZpeGVkKDIpICsgJ21zKSc7CisgICAgICBlbHNlCisgICAgICAgIHN0YXR1c0VsLnRleHRDb250ZW50ID0gc3RhdHVzOworICAgICAgc3RhdHVzRWwuY2xhc3NOYW1lID0gY29sb3JDbHM7CisgICAgfSwKKworICAgIGdldCB0ZXN0UmV0dXJuVmFsdWUoKSB7CisgICAgICByZXR1cm4gdGhpcy50ZXN0UmV0dXJuVmFsdWVfOworICAgIH0sCisKKyAgICBzZXQgdGVzdFJldHVyblZhbHVlKHRlc3RSZXR1cm5WYWx1ZSkgeworICAgICAgdGhpcy50ZXN0UmV0dXJuVmFsdWVfID0gdGVzdFJldHVyblZhbHVlOworICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjcmV0dXJuLXZhbHVlJykudGV4dENvbnRlbnQgPSB0ZXN0UmV0dXJuVmFsdWU7CisgICAgfQorICB9OworCisKKworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBIVE1MVGVzdFJlc3VsdHMgPSB0ci51aS5iLmRlZmluZSgneC10ci5iLnVuaXR0ZXN0LXRlc3QtcmVzdWx0cycpOworCisgIEhUTUxUZXN0UmVzdWx0cy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydFRpbWVfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy50b3RhbFJ1blRpbWVfID0gMDsKKyAgICAgIHRoaXMubnVtVGVzdHNUaGF0UGFzc2VkXyA9IDA7CisgICAgICB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF8gPSAwOworICAgICAgdGhpcy5zaG93SFRNTE91dHB1dF8gPSBmYWxzZTsKKyAgICAgIHRoaXMuc2hvd1BlbmRpbmdBbmRQYXNzZWRUZXN0c18gPSBmYWxzZTsKKyAgICAgIHRoaXMubGlua2lmeUNhbGxiYWNrXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuaGVhZGxlc3NfID0gZmFsc2U7CisgICAgfSwKKworICAgIGdldCBoZWFkbGVzcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmhlYWRsZXNzXzsKKyAgICB9LAorCisgICAgc2V0IGhlYWRsZXNzKGhlYWRsZXNzKSB7CisgICAgICB0aGlzLmhlYWRsZXNzXyA9IGhlYWRsZXNzOworICAgIH0sCisKKyAgICBnZXRIUmVmRm9yVGVzdENhc2U6IGZ1bmN0aW9uKHRlc3RDYXNlKSB7CisgICAgICAvKiBPdmVycmlkZSB0aGlzIHRvIGNyZWF0ZSBjdXN0b20gbGlua3MgKi8KKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBzaG93SFRNTE91dHB1dCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnNob3dIVE1MT3V0cHV0XzsKKyAgICB9LAorCisgICAgc2V0IHNob3dIVE1MT3V0cHV0KHNob3dIVE1MT3V0cHV0KSB7CisgICAgICB0aGlzLnNob3dIVE1MT3V0cHV0XyA9IHNob3dIVE1MT3V0cHV0OworICAgICAgdmFyIHRlc3RDYXNlUmVzdWx0cyA9IHRoaXMucXVlcnlTZWxlY3RvckFsbCgneC1odG1sLXRlc3QtY2FzZS1yZXN1bHQnKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VSZXN1bHRzLmxlbmd0aDsgaSsrKQorICAgICAgICB0ZXN0Q2FzZVJlc3VsdHNbaV0uc2hvd0hUTUxPdXRwdXQgPSBzaG93SFRNTE91dHB1dDsKKyAgICB9LAorCisgICAgZ2V0IHNob3dQZW5kaW5nQW5kUGFzc2VkVGVzdHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5zaG93UGVuZGluZ0FuZFBhc3NlZFRlc3RzXzsKKyAgICB9LAorCisgICAgc2V0IHNob3dQZW5kaW5nQW5kUGFzc2VkVGVzdHMoc2hvd1BlbmRpbmdBbmRQYXNzZWRUZXN0cykgeworICAgICAgdGhpcy5zaG93UGVuZGluZ0FuZFBhc3NlZFRlc3RzXyA9IHNob3dQZW5kaW5nQW5kUGFzc2VkVGVzdHM7CisKKyAgICAgIHZhciB0ZXN0Q2FzZVJlc3VsdHMgPSB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ3gtaHRtbC10ZXN0LWNhc2UtcmVzdWx0Jyk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RDYXNlUmVzdWx0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5U3RhdGVGb3JSZXN1bHRfKHRlc3RDYXNlUmVzdWx0c1tpXSk7CisgICAgfSwKKworICAgIHVwZGF0ZURpc3BsYXlTdGF0ZUZvclJlc3VsdF86IGZ1bmN0aW9uKHJlcykgeworICAgICAgdmFyIGRpc3BsYXk7CisgICAgICBpZiAodGhpcy5zaG93UGVuZGluZ0FuZFBhc3NlZFRlc3RzXykgeworICAgICAgICBpZiAocmVzLnRlc3RTdGF0dXMgPT0gVGVzdFN0YXR1cy5SVU5OSU5HIHx8CisgICAgICAgICAgICByZXMuaGFkRXJyb3JzKSB7CisgICAgICAgICAgZGlzcGxheSA9ICcnOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGRpc3BsYXkgPSAnJzsKKyAgICAgIH0KKyAgICAgIHJlcy5zdHlsZS5kaXNwbGF5ID0gZGlzcGxheTsKKworICAgICAgLy8gVGhpcyBiaXQgb2YgbWVzcyBnaXZlcyByZXMgb2JqZWN0cyBhIGRhcmsgY2xhc3MgYmFzZWQgb24gd2hldGhlciB0aGVpcgorICAgICAgLy8gbGFzdCB2aXNpYmxlIHNpYmxpbmcgd2FzIG5vdCBkYXJrLiBJdCByZWxpZXMgb24gdGhlCisgICAgICAvLyB1cGRhdGVEaXNwbGF5U3RhdGVGb3JSZXN1bHRfIGJlaW5nIGNhbGxlZCBvbiBhbGwgcHJldmlvdXMgc2libGluZ3Mgb2YKKyAgICAgIC8vIGFuIGVsZW1lbnQgYmVmb3JlIGJlaW5nIGNhbGxlZCBvbiB0aGUgZWxlbWVudCBpdHNlbGYuIFlheSBpbmR1Y3Rpb24uCisgICAgICB2YXIgZGFyazsKKyAgICAgIGlmICghcmVzLnByZXZpb3VzU2libGluZykgeworICAgICAgICBkYXJrID0gdHJ1ZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBsYXN0VmlzaWJsZTsKKyAgICAgICAgZm9yICh2YXIgY3VyID0gcmVzLnByZXZpb3VzU2libGluZzsKKyAgICAgICAgICAgICBjdXI7CisgICAgICAgICAgICAgY3VyID0gY3VyLnByZXZpb3VzU2libGluZykgeworICAgICAgICAgIGlmIChjdXIuc3R5bGUuZGlzcGxheSA9PSAnJykgeworICAgICAgICAgICAgbGFzdFZpc2libGUgPSBjdXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxhc3RWaXNpYmxlKSB7CisgICAgICAgICAgZGFyayA9ICFsYXN0VmlzaWJsZS5jbGFzc0xpc3QuY29udGFpbnMoJ2RhcmsnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBkYXJrID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBpZiAoZGFyaykKKyAgICAgICAgcmVzLmNsYXNzTGlzdC5hZGQoJ2RhcmsnKTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmVzLmNsYXNzTGlzdC5yZW1vdmUoJ2RhcmsnKTsKKyAgICB9LAorCisgICAgd2lsbFJ1blRlc3Q6IGZ1bmN0aW9uKHRlc3RDYXNlKSB7CisgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8gPSBuZXcgSFRNTFRlc3RDYXNlUmVzdWx0KCk7CisgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8uc2hvd0hUTUxPdXRwdXQgPSB0aGlzLnNob3dIVE1MT3V0cHV0XzsKKyAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xy50ZXN0Q2FzZSA9IHRlc3RDYXNlOworICAgICAgdmFyIGhyZWYgPSB0aGlzLmdldEhSZWZGb3JUZXN0Q2FzZSh0ZXN0Q2FzZSk7CisgICAgICBpZiAoaHJlZikKKyAgICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfLnRlc3RDYXNlSFJlZiA9IGhyZWY7CisgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8udGVzdFN0YXR1cyA9IFRlc3RTdGF0dXMuUlVOTklORzsKKyAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlU3RhcnRUaW1lXyA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfKTsKKyAgICAgIHRoaXMudXBkYXRlRGlzcGxheVN0YXRlRm9yUmVzdWx0Xyh0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8pOworICAgICAgdGhpcy5sb2dfKHRlc3RDYXNlLmZ1bGx5UXVhbGlmaWVkTmFtZSArICc6ICcpOworICAgIH0sCisKKyAgICBhZGRFcnJvckZvckN1cnJlbnRUZXN0OiBmdW5jdGlvbihlcnJvcikgeworICAgICAgdGhpcy5sb2dfKCdcbicpOworCisgICAgICB2YXIgbm9ybWFsaXplZEV4Y2VwdGlvbiA9IHRyLmIubm9ybWFsaXplRXhjZXB0aW9uKGVycm9yKTsKKyAgICAgIHRoaXMubG9nXygnRXhjZXB0aW9uOiAnICsgbm9ybWFsaXplZEV4Y2VwdGlvbi5tZXNzYWdlICsgJ1xuJyArCisgICAgICAgICAgbm9ybWFsaXplZEV4Y2VwdGlvbi5zdGFjayk7CisKKyAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xy5hZGRFcnJvcihub3JtYWxpemVkRXhjZXB0aW9uKTsKKyAgICAgIHRoaXMudXBkYXRlRGlzcGxheVN0YXRlRm9yUmVzdWx0Xyh0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8pOworICAgICAgaWYgKHRoaXMuaGVhZGxlc3NfKQorICAgICAgICB0aGlzLm5vdGlmeVRlc3RSZXN1bHRUb0RldlNlcnZlcl8oJ0VYQ0VQVCcsIG5vcm1hbGl6ZWRFeGNlcHRpb24uc3RhY2spOworICAgIH0sCisKKyAgICBhZGRIVE1MT3V0cHV0Rm9yQ3VycmVudFRlc3Q6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKKyAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xy5hZGRIVE1MT3V0cHV0KGVsZW1lbnQpOworICAgICAgdGhpcy51cGRhdGVEaXNwbGF5U3RhdGVGb3JSZXN1bHRfKHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xyk7CisgICAgfSwKKworICAgIHNldFJldHVyblZhbHVlRnJvbUN1cnJlbnRUZXN0OiBmdW5jdGlvbihyZXR1cm5WYWx1ZSkgeworICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfLnRlc3RSZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlOworICAgIH0sCisKKyAgICBkaWRDdXJyZW50VGVzdEVuZDogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGVzdENhc2VSZXN1bHQgPSB0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF87CisgICAgICB2YXIgdGVzdENhc2VEdXJhdGlvbiA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSAtCisgICAgICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VTdGFydFRpbWVfOworICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfLnRlc3RTdGF0dXMgPSBUZXN0U3RhdHVzLkRPTkVfUlVOTklORzsKKyAgICAgIHRlc3RDYXNlUmVzdWx0LmR1cmF0aW9uID0gdGVzdENhc2VEdXJhdGlvbjsKKyAgICAgIHRoaXMudG90YWxSdW5UaW1lXyArPSB0ZXN0Q2FzZUR1cmF0aW9uOworICAgICAgaWYgKHRlc3RDYXNlUmVzdWx0LmhhZEVycm9ycykgeworICAgICAgICB0aGlzLmxvZ18oJ1tGQUlMRURdXG4nKTsKKyAgICAgICAgdGhpcy5udW1UZXN0c1RoYXRGYWlsZWRfICs9IDE7CisgICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAndGVzdGZhaWxlZCcpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5sb2dfKCdbUEFTU0VEXVxuJyk7CisgICAgICAgIHRoaXMubnVtVGVzdHNUaGF0UGFzc2VkXyArPSAxOworICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3Rlc3RwYXNzZWQnKTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuaGVhZGxlc3NfKSB7CisgICAgICAgIHRoaXMubm90aWZ5VGVzdFJlc3VsdFRvRGV2U2VydmVyXyh0ZXN0Q2FzZVJlc3VsdC5oYWRFcnJvcnMgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZBSUxFRCcgOiAnUEFTU0VEJyk7CisgICAgICB9CisKKyAgICAgIHRoaXMudXBkYXRlRGlzcGxheVN0YXRlRm9yUmVzdWx0Xyh0aGlzLmN1cnJlbnRUZXN0Q2FzZVJlc3VsdF8pOworICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VSZXN1bHRfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBkaWRSdW5UZXN0czogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmxvZ18oJ1tET05FXVxuJyk7CisgICAgICBpZiAodGhpcy5oZWFkbGVzc18pCisgICAgICAgIHRoaXMubm90aWZ5VGVzdENvbXBsZXRpb25Ub0RldlNlcnZlcl8oKTsKKyAgICB9LAorCisgICAgZ2V0U3RhdHM6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgbnVtVGVzdHNUaGF0UGFzc2VkOiB0aGlzLm51bVRlc3RzVGhhdFBhc3NlZF8sCisgICAgICAgIG51bVRlc3RzVGhhdEZhaWxlZDogdGhpcy5udW1UZXN0c1RoYXRGYWlsZWRfLAorICAgICAgICB0b3RhbFJ1blRpbWU6IHRoaXMudG90YWxSdW5UaW1lXworICAgICAgfTsKKyAgICB9LAorCisgICAgbm90aWZ5VGVzdFJlc3VsdFRvRGV2U2VydmVyXzogZnVuY3Rpb24ocmVzdWx0LCBleHRyYV9tc2cpIHsKKyAgICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgIHZhciB0ZXN0TmFtZSA9IHRoaXMuY3VycmVudFRlc3RDYXNlUmVzdWx0Xy50ZXN0Q2FzZS5mdWxseVF1YWxpZmllZE5hbWU7CisgICAgICByZXEub3BlbignUE9TVCcsICcvdGVzdF9hdXRvbWF0aW9uL25vdGlmeV90ZXN0X3Jlc3VsdCcsIHRydWUpOworICAgICAgcmVxLnNlbmQocmVzdWx0ICsgJyAgJyArIHRlc3ROYW1lICsgJyAnICsgKGV4dHJhX21zZyB8fCAnJykpOworICAgIH0sCisKKyAgICBub3RpZnlUZXN0Q29tcGxldGlvblRvRGV2U2VydmVyXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5udW1UZXN0c1RoYXRQYXNzZWRfICsgdGhpcy5udW1UZXN0c1RoYXRGYWlsZWRfID09IDApCisgICAgICAgIHJldHVybjsKKyAgICAgIHZhciBkYXRhID0gdGhpcy5udW1UZXN0c1RoYXRGYWlsZWRfID09IDAgPyAnQUxMX1BBU1NFRCcgOiAnSEFEX0ZBSUxVUkVTJzsKKyAgICAgIGRhdGEgKz0gJ1xuUGFzc2VkIHRlc3RzOiAnICsgdGhpcy5udW1UZXN0c1RoYXRQYXNzZWRfICsKKyAgICAgICAgICAgICAgJyAgRmFpbGVkIHRlc3RzOiAnICsgdGhpcy5udW1UZXN0c1RoYXRGYWlsZWRfOworCisgICAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICByZXEub3BlbignUE9TVCcsICcvdGVzdF9hdXRvbWF0aW9uL25vdGlmeV9jb21wbGV0aW9uJywgdHJ1ZSk7CisgICAgICByZXEuc2VuZChkYXRhKTsKKyAgICB9LAorCisgICAgbG9nXzogZnVuY3Rpb24obXNnKSB7CisgICAgICAvL3RoaXMudGV4dENvbnRlbnQgKz0gbXNnOworICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzdGF0c2NoYW5nZScpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEhUTUxUZXN0UmVzdWx0czogSFRNTFRlc3RSZXN1bHRzCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L2ludGVyYWN0aXZlX3Rlc3RfcnVubmVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvaW50ZXJhY3RpdmVfdGVzdF9ydW5uZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWI0NWZkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L2ludGVyYWN0aXZlX3Rlc3RfcnVubmVyLmh0bWwKQEAgLTAsMCArMSw0NjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3Qvc3VpdGVfbG9hZGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L3Rlc3RfcnVubmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L2h0bWxfdGVzdF9yZXN1bHRzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3V0aWxzLmh0bWwiPgorCis8c3R5bGU+CisgIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciB7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgfQorCisgIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICogeworICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87CisgIH0KKyAgeC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyID4gI3RpdGxlIHsKKyAgICBmb250LXNpemU6IDE2cHQ7CisgIH0KKworICB4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXIgeworICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICB9CisKKyAgeC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyID4gaDEgeworICAgIG1hcmdpbjogNXB4IDBweCAxMHB4IDBweDsKKyAgfQorCisgIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICNzdGF0cyB7CisgIH0KKworICB4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXIgPiAjY29udHJvbHMgeworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIG1hcmdpbi1ib3R0b206IDVweDsKKyAgfQorCisgIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICNjb250cm9scyA+IHVsIHsKKyAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgICAgcGFkZGluZzogMDsKKyAgICBtYXJnaW46IDA7CisgIH0KKworICB4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXIgPiAjY29udHJvbHMgPiB1bCA+IGxpIHsKKyAgICBmbG9hdDogbGVmdDsKKyAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CisgICAgcGFkZGluZy10b3A6IDVweDsKKyAgICBwYWRkaW5nLWJvdHRvbTogNXB4OworICB9CisKKyAgeC1iYXNlLWludGVyYWN0aXZlLXRlc3QtcnVubmVyID4gI3Nob3J0Zm9ybS1yZXN1bHRzIHsKKyAgICBjb2xvcjogZ3JlZW47CisgICAgaGVpZ2h0OyA0MHB4OworICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKKyAgfQorCisgIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICNzaG9ydGZvcm0tcmVzdWx0cyA+IC5mYWlsIHsKKyAgICBjb2xvcjogZGFya3JlZDsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgfQorCisgIHgtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lciA+ICNyZXN1bHRzLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICBtaW4taGVpZ2h0OiAwOworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHBhZGRpbmc6IDAgNHB4IDAgNHB4OworICB9CisKKyAgLnVuaXR0ZXN0LXBlbmRpbmcgeworICAgIGNvbG9yOiBvcmFuZ2U7CisgIH0KKyAgLnVuaXR0ZXN0LXJ1bm5pbmcgeworICAgIGNvbG9yOiBvcmFuZ2U7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIH0KKworICAudW5pdHRlc3QtcGFzc2VkIHsKKyAgICBjb2xvcjogZGFya2dyZWVuOworICB9CisKKyAgLnVuaXR0ZXN0LWZhaWxlZCB7CisgICAgY29sb3I6IGRhcmtyZWQ7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIH0KKworICAudW5pdHRlc3QtZXhjZXB0aW9uIHsKKyAgICBjb2xvcjogcmVkOworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICB9CisKKyAgLnVuaXR0ZXN0LWZhaWx1cmUgeworICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZXk7CisgICAgYm9yZGVyLXJhZGl1czogNXB4OworICAgIHBhZGRpbmc6IDVweDsKKyAgfQorPC9zdHlsZT4KKworPHRlbXBsYXRlIGlkPSJ4LWJhc2UtaW50ZXJhY3RpdmUtdGVzdC1ydW5uZXItdGVtcGxhdGUiPgorICA8aDEgaWQ9InRpdGxlIj5UZXN0czwvaDE+CisgIDxkaXYgaWQ9InN0YXRzIj48L2Rpdj4KKyAgPGRpdiBpZD0iY29udHJvbHMiPgorICAgIDx1bCBpZD0ibGlua3MiPgorICAgIDwvdWw+CisgICAgPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48L2Rpdj4KKworICAgIDxkaXY+CisgICAgICA8c3Bhbj4KKyAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ0ZXN0LXR5cGUtdG8tcnVuIiB2YWx1ZT0idW5pdCIgLz4KKyAgICAgICAgUnVuIHVuaXQgdGVzdHMKKyAgICAgIDwvc3Bhbj4KKyAgICAgIDxzcGFuPgorICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InRlc3QtdHlwZS10by1ydW4iIHZhbHVlPSJwZXJmIiAvPgorICAgICAgICBSdW4gcGVyZiB0ZXN0cworICAgICAgPC9zcGFuPgorICAgICAgPHNwYW4+CisgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idGVzdC10eXBlLXRvLXJ1biIgdmFsdWU9ImFsbCIgLz4KKyAgICAgICAgUnVuIGFsbCB0ZXN0cworICAgICAgPC9zcGFuPgorICAgIDwvZGl2PgorICAgIDxzcGFuPgorICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ic2hvcnQtZm9ybWF0IiAvPiBTaG9ydCBmb3JtYXQKKyAgICA8L3NwYW4+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJzaG9ydGZvcm0tcmVzdWx0cyI+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJyZXN1bHRzLWNvbnRhaW5lciI+CisgIDwvZGl2PgorPC90ZW1wbGF0ZT4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmIudW5pdHRlc3QnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OworICB2YXIgQUxMX1RFU1RfVFlQRVMgPSAnYWxsJzsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgSW50ZXJhY3RpdmVUZXN0UnVubmVyID0gdHIudWkuYi5kZWZpbmUoJ3gtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lcicpOworCisgIEludGVyYWN0aXZlVGVzdFJ1bm5lci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5hbGxUZXN0c18gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMuc3VwcHJlc3NTdGF0ZUNoYW5nZV8gPSBmYWxzZTsKKworICAgICAgdGhpcy50ZXN0RmlsdGVyU3RyaW5nXyA9ICcnOworICAgICAgdGhpcy50ZXN0VHlwZVRvUnVuXyA9IHRyLmIudW5pdHRlc3QuVGVzdFR5cGVzLlVOSVRURVNUOworICAgICAgdGhpcy5zaG9ydEZvcm1hdF8gPSBmYWxzZTsKKyAgICAgIHRoaXMudGVzdFN1aXRlTmFtZV8gPSAnJzsKKworICAgICAgdGhpcy5yZXJ1blBlbmRpbmdfID0gZmFsc2U7CisgICAgICB0aGlzLnJ1bm5lcl8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLnJlc3VsdHNfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5oZWFkbGVzc18gPSBmYWxzZTsKKworICAgICAgdGhpcy5vblJlc3VsdHNTdGF0c0NoYW5nZWRfID0gdGhpcy5vblJlc3VsdHNTdGF0c0NoYW5nZWRfLmJpbmQodGhpcyk7CisgICAgICB0aGlzLm9uVGVzdEZhaWxlZF8gPSB0aGlzLm9uVGVzdEZhaWxlZF8uYmluZCh0aGlzKTsKKyAgICAgIHRoaXMub25UZXN0UGFzc2VkXyA9IHRoaXMub25UZXN0UGFzc2VkXy5iaW5kKHRoaXMpOworCisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyLnVpLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKKyAgICAgICAgICAnI3gtYmFzZS1pbnRlcmFjdGl2ZS10ZXN0LXJ1bm5lci10ZW1wbGF0ZScsIFRISVNfRE9DKSk7CisKKyAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigKKyAgICAgICAgICAnaW5wdXRbbmFtZT10ZXN0LXR5cGUtdG8tcnVuXVt2YWx1ZT11bml0XScpLmNoZWNrZWQgPSB0cnVlOworICAgICAgdmFyIHRlc3RUeXBlVG9SdW5FbHMgPSB0ci5iLmFzQXJyYXkodGhpcy5xdWVyeVNlbGVjdG9yQWxsKAorICAgICAgICAgICdpbnB1dFtuYW1lPXRlc3QtdHlwZS10by1ydW5dJykpOworCisgICAgICB0ZXN0VHlwZVRvUnVuRWxzLmZvckVhY2goCisgICAgICAgICAgZnVuY3Rpb24oaW5wdXRFbCkgeworICAgICAgICAgICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICAgICAgICdjbGljaycsIHRoaXMub25UZXN0VHlwZVRvUnVuQ2xpY2tfLmJpbmQodGhpcykpOworICAgICAgICAgIH0sIHRoaXMpOworCisgICAgICB2YXIgc2hvcnRGb3JtYXRFbCA9IHRoaXMucXVlcnlTZWxlY3RvcignI3Nob3J0LWZvcm1hdCcpOworICAgICAgc2hvcnRGb3JtYXRFbC5jaGVja2VkID0gdGhpcy5zaG9ydEZvcm1hdF87CisgICAgICBzaG9ydEZvcm1hdEVsLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ2NsaWNrJywgdGhpcy5vblNob3J0Rm9ybWF0Q2xpY2tfLmJpbmQodGhpcykpOworICAgICAgdGhpcy51cGRhdGVTaG9ydEZvcm1SZXN1bHRzRGlzcGxheV8oKTsKKworICAgICAgLy8gT2gsIERPTSwgaG93IEkgbG92ZSB5b3UuIFRpdGxlIGlzIHN1Y2ggYSBjb252ZW5pZW50IHByb3BlcnR5IG5hbWUgYW5kIEkKKyAgICAgIC8vIHJlZnVzZSB0byBjaGFuZ2UgbXkgd29ybGR2aWV3IGJlY2F1c2Ugb2YgdG9vbHRpcHMuCisgICAgICB0aGlzLl9fZGVmaW5lU2V0dGVyX18oCisgICAgICAgICAgJ3RpdGxlJywKKyAgICAgICAgICBmdW5jdGlvbih0aXRsZSkgeworICAgICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjdGl0bGUnKS50ZXh0Q29udGVudCA9IHRpdGxlOworICAgICAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXQgYWxsVGVzdHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5hbGxUZXN0c187CisgICAgfSwKKworICAgIHNldCBhbGxUZXN0cyhhbGxUZXN0cykgeworICAgICAgdGhpcy5hbGxUZXN0c18gPSBhbGxUZXN0czsKKyAgICAgIHRoaXMuc2NoZWR1bGVSZXJ1bl8oKTsKKyAgICB9LAorCisgICAgZ2V0IHRlc3RMaW5rcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnRlc3RMaW5rc187CisgICAgfSwKKyAgICBzZXQgdGVzdExpbmtzKHRlc3RMaW5rcykgeworICAgICAgdGhpcy50ZXN0TGlua3NfID0gdGVzdExpbmtzOworICAgICAgdmFyIGxpbmtzRWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNsaW5rcycpOworICAgICAgbGlua3NFbC50ZXh0Q29udGVudCA9ICcnOworICAgICAgdGhpcy50ZXN0TGlua3NfLmZvckVhY2goZnVuY3Rpb24obCkgeworICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICAgICAgbGluay5ocmVmID0gbC5saW5rUGF0aDsKKyAgICAgICAgbGluay50ZXh0Q29udGVudCA9IGwudGl0bGU7CisKKyAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgbGkuYXBwZW5kQ2hpbGQobGluayk7CisKKyAgICAgICAgbGlua3NFbC5hcHBlbmRDaGlsZChsaSk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgZ2V0IHRlc3RGaWx0ZXJTdHJpbmcoKSB7CisgICAgICByZXR1cm4gdGhpcy50ZXN0RmlsdGVyU3RyaW5nXzsKKyAgICB9LAorCisgICAgc2V0IHRlc3RGaWx0ZXJTdHJpbmcodGVzdEZpbHRlclN0cmluZykgeworICAgICAgdGhpcy50ZXN0RmlsdGVyU3RyaW5nXyA9IHRlc3RGaWx0ZXJTdHJpbmc7CisgICAgICB0aGlzLnNjaGVkdWxlUmVydW5fKCk7CisgICAgICBpZiAoIXRoaXMuc3VwcHJlc3NTdGF0ZUNoYW5nZV8pCisgICAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnc3RhdGVjaGFuZ2UnKTsKKyAgICB9LAorCisgICAgZ2V0IHNob3J0Rm9ybWF0KCkgeworICAgICAgcmV0dXJuIHRoaXMuc2hvcnRGb3JtYXRfOworICAgIH0sCisKKyAgICBzZXQgc2hvcnRGb3JtYXQoc2hvcnRGb3JtYXQpIHsKKyAgICAgIHRoaXMuc2hvcnRGb3JtYXRfID0gc2hvcnRGb3JtYXQ7CisgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzaG9ydC1mb3JtYXQnKS5jaGVja2VkID0gc2hvcnRGb3JtYXQ7CisgICAgICBpZiAodGhpcy5yZXN1bHRzXykKKyAgICAgICAgdGhpcy5yZXN1bHRzXy5zaG9ydEZvcm1hdCA9IHNob3J0Rm9ybWF0OworICAgICAgaWYgKCF0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfKQorICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3N0YXRlY2hhbmdlJyk7CisgICAgfSwKKworICAgIG9uU2hvcnRGb3JtYXRDbGlja186IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMuc2hvcnRGb3JtYXRfID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjc2hvcnQtZm9ybWF0JykuY2hlY2tlZDsKKyAgICAgIHRoaXMudXBkYXRlU2hvcnRGb3JtUmVzdWx0c0Rpc3BsYXlfKCk7CisgICAgICB0aGlzLnVwZGF0ZVJlc3VsdHNHaXZlblNob3J0Rm9ybWF0XygpOworICAgICAgaWYgKCF0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfKQorICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3N0YXRlY2hhbmdlJyk7CisgICAgfSwKKworICAgIHVwZGF0ZVNob3J0Rm9ybVJlc3VsdHNEaXNwbGF5XzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZGlzcGxheSA9IHRoaXMuc2hvcnRGb3JtYXRfID8gJycgOiAnbm9uZSc7CisgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzaG9ydGZvcm0tcmVzdWx0cycpLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5OworICAgIH0sCisKKyAgICB1cGRhdGVSZXN1bHRzR2l2ZW5TaG9ydEZvcm1hdF86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLnJlc3VsdHNfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGlmICh0aGlzLnRlc3RGaWx0ZXJTdHJpbmdfLmxlbmd0aCB8fCB0aGlzLnRlc3RTdWl0ZU5hbWVfLmxlbmd0aCkKKyAgICAgICAgdGhpcy5yZXN1bHRzXy5zaG93SFRNTE91dHB1dCA9IHRydWU7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMucmVzdWx0c18uc2hvd0hUTUxPdXRwdXQgPSBmYWxzZTsKKyAgICAgIHRoaXMucmVzdWx0c18uc2hvd1BlbmRpbmdBbmRQYXNzZWRUZXN0cyA9IHRoaXMuc2hvcnRGb3JtYXRfOworICAgIH0sCisKKyAgICBnZXQgdGVzdFR5cGVUb1J1bigpIHsKKyAgICAgIHJldHVybiB0aGlzLnRlc3RUeXBlVG9SdW5fOworICAgIH0sCisKKyAgICBzZXQgdGVzdFR5cGVUb1J1bih0ZXN0VHlwZVRvUnVuKSB7CisgICAgICB0aGlzLnRlc3RUeXBlVG9SdW5fID0gdGVzdFR5cGVUb1J1bjsKKyAgICAgIHZhciBzZWw7CisgICAgICBzd2l0Y2ggKHRlc3RUeXBlVG9SdW4pIHsKKyAgICAgICAgY2FzZSB0ci5iLnVuaXR0ZXN0LlRlc3RUeXBlcy5VTklUVEVTVDoKKyAgICAgICAgICBzZWwgPSAnaW5wdXRbbmFtZT10ZXN0LXR5cGUtdG8tcnVuXVt2YWx1ZT11bml0XSc7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdHIuYi51bml0dGVzdC5UZXN0VHlwZXMuUEVSRlRFU1Q6CisgICAgICAgICAgc2VsID0gJ2lucHV0W25hbWU9dGVzdC10eXBlLXRvLXJ1bl1bdmFsdWU9cGVyZl0nOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFMTF9URVNUX1RZUEVTOgorICAgICAgICAgIHNlbCA9ICdpbnB1dFtuYW1lPXRlc3QtdHlwZS10by1ydW5dW3ZhbHVlPWFsbF0nOworICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0ZXN0IHR5cGUgdG8gcnVuOiAnICsgdGVzdFR5cGVUb1J1bik7CisgICAgICB9CisgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3Ioc2VsKS5jaGVja2VkID0gdHJ1ZTsKKyAgICAgIHRoaXMuc2NoZWR1bGVSZXJ1bl8oKTsKKyAgICAgIGlmICghdGhpcy5zdXBwcmVzc1N0YXRlQ2hhbmdlXykKKyAgICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzdGF0ZWNoYW5nZScpOworICAgIH0sCisKKyAgICBvblRlc3RUeXBlVG9SdW5DbGlja186IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHN3aXRjaCAoZS50YXJnZXQudmFsdWUpIHsKKyAgICAgICAgY2FzZSAndW5pdCc6CisgICAgICAgICAgdGhpcy50ZXN0VHlwZVRvUnVuXyA9IHRyLmIudW5pdHRlc3QuVGVzdFR5cGVzLlVOSVRURVNUOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdwZXJmJzoKKyAgICAgICAgICB0aGlzLnRlc3RUeXBlVG9SdW5fID0gdHIuYi51bml0dGVzdC5UZXN0VHlwZXMuUEVSRlRFU1Q7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2FsbCc6CisgICAgICAgICAgdGhpcy50ZXN0VHlwZVRvUnVuXyA9IEFMTF9URVNUX1RZUEVTOworICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5hbGlkIHRlc3QgdHlwZTogJyArIGUudGFyZ2V0LnZhbHVlKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5zY2hlZHVsZVJlcnVuXygpOworICAgICAgaWYgKCF0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfKQorICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3N0YXRlY2hhbmdlJyk7CisgICAgfSwKKworICAgIG9uVGVzdFBhc3NlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjc2hvcnRmb3JtLXJlc3VsdHMnKS4KKyAgICAgICAgICBhcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnLicpKTsKKyAgICB9LAorCisgICAgb25UZXN0RmFpbGVkXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgnZmFpbCcpOworICAgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnRicpKTsKKyAgICAgIHRoaXMucXVlcnlTZWxlY3RvcignI3Nob3J0Zm9ybS1yZXN1bHRzJykuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgfSwKKworICAgIG9uUmVzdWx0c1N0YXRzQ2hhbmdlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHN0YXRzRWwgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzdGF0cycpOworICAgICAgdmFyIHN0YXRzID0gdGhpcy5yZXN1bHRzXy5nZXRTdGF0cygpOworICAgICAgdmFyIG51bVRlc3RzT3ZlcmFsbCA9IHRoaXMucnVubmVyXy50ZXN0Q2FzZXMubGVuZ3RoOworICAgICAgdmFyIG51bVRlc3RzVGhhdFJhbiA9IHN0YXRzLm51bVRlc3RzVGhhdFBhc3NlZCArIHN0YXRzLm51bVRlc3RzVGhhdEZhaWxlZDsKKyAgICAgIHN0YXRzRWwuaW5uZXJIVE1MID0KKyAgICAgICAgICAnPHNwYW4+JyArIG51bVRlc3RzVGhhdFJhbiArICcvJyArIG51bVRlc3RzT3ZlcmFsbCArCisgICAgICAgICAgJzwvc3Bhbj4gdGVzdHMgcnVuLCAnICsKKyAgICAgICAgICAnPHNwYW4gY2xhc3M9InVuaXR0ZXN0LWZhaWxlZCI+JyArIHN0YXRzLm51bVRlc3RzVGhhdEZhaWxlZCArCisgICAgICAgICAgJzwvc3Bhbj4gZmFpbHVyZXMsICcgKworICAgICAgICAgICcgaW4gJyArIHN0YXRzLnRvdGFsUnVuVGltZS50b0ZpeGVkKDIpICsgJ21zLic7CisgICAgfSwKKworICAgIHNjaGVkdWxlUmVydW5fOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLnJlcnVuUGVuZGluZ18pCisgICAgICAgIHJldHVybjsKKyAgICAgIGlmICh0aGlzLnJ1bm5lcl8pIHsKKyAgICAgICAgdGhpcy5yZXJ1blBlbmRpbmdfID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5ydW5uZXJfLmJlZ2luVG9TdG9wUnVubmluZygpOworICAgICAgICB2YXIgZG9SZXJ1biA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRoaXMucmVydW5QZW5kaW5nXyA9IGZhbHNlOworICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZXJ1bl8oKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgICAgICB0aGlzLnJ1bm5lcl8ucnVuQ29tcGxldGVkUHJvbWlzZS50aGVuKAorICAgICAgICAgICAgZG9SZXJ1biwgZG9SZXJ1bik7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHRoaXMuYmVnaW5SdW5uaW5nXygpOworICAgIH0sCisKKyAgICBiZWdpblJ1bm5pbmdfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciByZXN1bHRzQ29udGFpbmVyID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjcmVzdWx0cy1jb250YWluZXInKTsKKyAgICAgIGlmICh0aGlzLnJlc3VsdHNfKSB7CisgICAgICAgIHRoaXMucmVzdWx0c18ucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdHBhc3NlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVGVzdFBhc3NlZF8pOworICAgICAgICB0aGlzLnJlc3VsdHNfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3RmYWlsZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRlc3RGYWlsZWRfKTsKKyAgICAgICAgdGhpcy5yZXN1bHRzXy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGF0c2NoYW5nZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUmVzdWx0c1N0YXRzQ2hhbmdlZF8pOworICAgICAgICBkZWxldGUgdGhpcy5yZXN1bHRzXy5nZXRIUmVmRm9yVGVzdENhc2U7CisgICAgICAgIHJlc3VsdHNDb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5yZXN1bHRzXyk7CisgICAgICB9CisKKyAgICAgIHRoaXMucmVzdWx0c18gPSBuZXcgdHIuYi51bml0dGVzdC5IVE1MVGVzdFJlc3VsdHMoKTsKKyAgICAgIHRoaXMucmVzdWx0c18uaGVhZGxlc3MgPSB0aGlzLmhlYWRsZXNzXzsKKyAgICAgIHRoaXMucmVzdWx0c18uZ2V0SFJlZkZvclRlc3RDYXNlID0gdGhpcy5nZXRIUmVmRm9yVGVzdENhc2UuYmluZCh0aGlzKTsKKyAgICAgIHRoaXMudXBkYXRlUmVzdWx0c0dpdmVuU2hvcnRGb3JtYXRfKCk7CisKKyAgICAgIHRoaXMucmVzdWx0c18uc2hvcnRGb3JtYXQgPSB0aGlzLnNob3J0Rm9ybWF0XzsKKyAgICAgIHRoaXMucmVzdWx0c18uYWRkRXZlbnRMaXN0ZW5lcigndGVzdHBhc3NlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRlc3RQYXNzZWRfKTsKKyAgICAgIHRoaXMucmVzdWx0c18uYWRkRXZlbnRMaXN0ZW5lcigndGVzdGZhaWxlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRlc3RGYWlsZWRfKTsKKyAgICAgIHRoaXMucmVzdWx0c18uYWRkRXZlbnRMaXN0ZW5lcignc3RhdHNjaGFuZ2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25SZXN1bHRzU3RhdHNDaGFuZ2VkXyk7CisgICAgICByZXN1bHRzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMucmVzdWx0c18pOworCisgICAgICB2YXIgdGVzdHMgPSB0aGlzLmFsbFRlc3RzXy5maWx0ZXIoZnVuY3Rpb24odGVzdCkgeworICAgICAgICB2YXIgaSA9IHRlc3QuZnVsbHlRdWFsaWZpZWROYW1lLmluZGV4T2YodGhpcy50ZXN0RmlsdGVyU3RyaW5nXyk7CisgICAgICAgIGlmIChpID09IC0xKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMudGVzdFR5cGVUb1J1bl8gIT09IEFMTF9URVNUX1RZUEVTICYmCisgICAgICAgICAgICB0ZXN0LnRlc3RUeXBlICE9PSB0aGlzLnRlc3RUeXBlVG9SdW5fKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgdGhpcy5ydW5uZXJfID0gbmV3IHRyLmIudW5pdHRlc3QuVGVzdFJ1bm5lcih0aGlzLnJlc3VsdHNfLCB0ZXN0cyk7CisgICAgICB0aGlzLnJ1bm5lcl8uYmVnaW5SdW5uaW5nKCk7CisKKyAgICAgIHRoaXMucnVubmVyXy5ydW5Db21wbGV0ZWRQcm9taXNlLnRoZW4oCisgICAgICAgICAgdGhpcy5ydW5Db21wbGV0ZWRfLmJpbmQodGhpcyksCisgICAgICAgICAgdGhpcy5ydW5Db21wbGV0ZWRfLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBzZXRTdGF0ZTogZnVuY3Rpb24oc3RhdGUsIG9wdF9zdXBwcmVzc1N0YXRlQ2hhbmdlKSB7CisgICAgICB0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfID0gdHJ1ZTsKKyAgICAgIGlmIChzdGF0ZS50ZXN0RmlsdGVyU3RyaW5nICE9PSB1bmRlZmluZWQpCisgICAgICAgIHRoaXMudGVzdEZpbHRlclN0cmluZyA9IHN0YXRlLnRlc3RGaWx0ZXJTdHJpbmc7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMudGVzdEZpbHRlclN0cmluZyA9ICcnOworCisgICAgICBpZiAoc3RhdGUuc2hvcnRGb3JtYXQgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhpcy5zaG9ydEZvcm1hdCA9IGZhbHNlOworICAgICAgZWxzZQorICAgICAgICB0aGlzLnNob3J0Rm9ybWF0ID0gc3RhdGUuc2hvcnRGb3JtYXQ7CisKKyAgICAgIGlmIChzdGF0ZS50ZXN0VHlwZVRvUnVuID09PSB1bmRlZmluZWQpCisgICAgICAgIHRoaXMudGVzdFR5cGVUb1J1biA9IHRyLmIudW5pdHRlc3QuVGVzdFR5cGVzLlVOSVRURVNUOworICAgICAgZWxzZQorICAgICAgICB0aGlzLnRlc3RUeXBlVG9SdW4gPSBzdGF0ZS50ZXN0VHlwZVRvUnVuOworCisgICAgICB0aGlzLnRlc3RTdWl0ZU5hbWVfID0gc3RhdGUudGVzdFN1aXRlTmFtZSB8fCAnJzsKKyAgICAgIHRoaXMuaGVhZGxlc3NfID0gc3RhdGUuaGVhZGxlc3MgfHwgZmFsc2U7CisKKyAgICAgIGlmICghb3B0X3N1cHByZXNzU3RhdGVDaGFuZ2UpCisgICAgICAgIHRoaXMuc3VwcHJlc3NTdGF0ZUNoYW5nZV8gPSBmYWxzZTsKKworICAgICAgdGhpcy5vblNob3J0Rm9ybWF0Q2xpY2tfKCk7CisgICAgICB0aGlzLnNjaGVkdWxlUmVydW5fKCk7CisgICAgICB0aGlzLnN1cHByZXNzU3RhdGVDaGFuZ2VfID0gZmFsc2U7CisgICAgfSwKKworICAgIGdldERlZmF1bHRTdGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4geworICAgICAgICB0ZXN0RmlsdGVyU3RyaW5nOiAnJywKKyAgICAgICAgdGVzdFN1aXRlTmFtZTogJycsCisgICAgICAgIHNob3J0Rm9ybWF0OiBmYWxzZSwKKyAgICAgICAgdGVzdFR5cGVUb1J1bjogdHIuYi51bml0dGVzdC5UZXN0VHlwZXMuVU5JVFRFU1QKKyAgICAgIH07CisgICAgfSwKKworICAgIGdldFN0YXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIHRlc3RGaWx0ZXJTdHJpbmc6IHRoaXMudGVzdEZpbHRlclN0cmluZ18sCisgICAgICAgIHRlc3RTdWl0ZU5hbWU6IHRoaXMudGVzdFN1aXRlTmFtZV8sCisgICAgICAgIHNob3J0Rm9ybWF0OiB0aGlzLnNob3J0Rm9ybWF0XywKKyAgICAgICAgdGVzdFR5cGVUb1J1bjogdGhpcy50ZXN0VHlwZVRvUnVuXworICAgICAgfTsKKyAgICB9LAorCisgICAgZ2V0SFJlZkZvclRlc3RDYXNlOiBmdW5jdGlvbih0ZXN0Q2FzZXMpIHsKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIHJ1bkNvbXBsZXRlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5ydW5uZXJfID0gdW5kZWZpbmVkOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEludGVyYWN0aXZlVGVzdFJ1bm5lcjogSW50ZXJhY3RpdmVUZXN0UnVubmVyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L3N1aXRlX2xvYWRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L3N1aXRlX2xvYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNzY1NzAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3Qvc3VpdGVfbG9hZGVyLmh0bWwKQEAgLTAsMCArMSwyNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L3Rlc3Rfc3VpdGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBIVE1MSW1wb3J0c01vZHVsZUxvYWRlcigpIHsKKyAgfQorICBIVE1MSW1wb3J0c01vZHVsZUxvYWRlci5wcm90b3R5cGUgPSB7CisgICAgbG9hZE1vZHVsZTogZnVuY3Rpb24odGVzdFJlbHBhdGgsIG1vZHVsZU5hbWUpIHsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIGltcG9ydEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOworICAgICAgICBpbXBvcnRFbC5tb2R1bGVOYW1lID0gbW9kdWxlTmFtZTsKKyAgICAgICAgaW1wb3J0RWwuc2V0QXR0cmlidXRlKCdyZWwnLCAnaW1wb3J0Jyk7CisgICAgICAgIGltcG9ydEVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIHRlc3RSZWxwYXRoKTsKKworICAgICAgICBpbXBvcnRFbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmVzb2x2ZSh7dGVzdFJlbHBhdGg6IHRlc3RSZWxwYXRoLAorICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWU6IG1vZHVsZU5hbWV9KTsKKyAgICAgICAgfSk7CisgICAgICAgIGltcG9ydEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZSkgeworICAgICAgICAgIHJlamVjdCgnRXJyb3IgbG9hZGluZyAmIzYwO2xpbmsgcmVsPSJpbXBvcnQiIGhyZWY9IicgKworICAgICAgICAgICAgICAgICB0ZXN0UmVscGF0aCArICciJyk7CisgICAgICAgIH0pOworCisgICAgICAgIHRyLmRvYy5oZWFkLmFwcGVuZENoaWxkKGltcG9ydEVsKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXRDdXJyZW50bHlFeGVjdXRpbmdNb2R1bGVOYW1lOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghZG9jdW1lbnQuY3VycmVudFNjcmlwdCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2FsbCB0ZXN0U3VpdGUgZXhjZXB0IGR1cmluZyBsb2FkLicpOworICAgICAgdmFyIGxpbmtEb2MgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7CisgICAgICB2YXIgdXJsID0gbGlua0RvYy5VUkw7CisgICAgICB2YXIgbmFtZSA9IHRoaXMuZ3Vlc3NNb2R1bGVOYW1lRnJvbVVSTF8odXJsKTsKKyAgICAgIHJldHVybiBuYW1lOworICAgIH0sCisKKyAgICBndWVzc01vZHVsZU5hbWVGcm9tVVJMXzogZnVuY3Rpb24odXJsKSB7CisgICAgICB2YXIgbSA9IC8uKz86XC9cLy4rPyhcLy4rKS8uZXhlYyh1cmwpOworICAgICAgaWYgKCFtKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0d1ZXNzaW5nIG1vZHVsZSBuYW1lIGZhaWxlZCcpOworICAgICAgdmFyIHBhdGggPSBtWzFdOworICAgICAgaWYgKHBhdGhbMF0gIT0gJy8nKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBwYXRoJyk7CisgICAgICBpZiAocGF0aC5zdWJzdHJpbmcocGF0aC5sZW5ndGggLSA1KSAhPSAnLmh0bWwnKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZpbmUgdGVzdFN1aXRlcyBvdXRzaWRlIGh0bWwgaW1wb3J0cycpOworICAgICAgdmFyIHBhcnRzID0gcGF0aC5zdWJzdHJpbmcoMSwgcGF0aC5sZW5ndGggLSA1KS5zcGxpdCgnLycpOworICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJy4nKTsKKyAgICB9CisgIH07CisKKyAgZnVuY3Rpb24gRDhNb2R1bGVMb2FkZXIoKSB7CisgICAgdGhpcy5jdXJyZW50bHlFeGVjdXRpbmdNb2R1bGVJbmZvXyA9IHVuZGVmaW5lZDsKKyAgfQorICBEOE1vZHVsZUxvYWRlci5wcm90b3R5cGUgPSB7CisgICAgbG9hZE1vZHVsZTogZnVuY3Rpb24odGVzdFJlbHBhdGgsIG1vZHVsZU5hbWUpIHsKKyAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgbW9kdWxlSW5mbyA9IHsKKyAgICAgICAgICAgIHRlc3RSZWxwYXRoOiB0ZXN0UmVscGF0aCwKKyAgICAgICAgICAgIG1vZHVsZU5hbWU6IG1vZHVsZU5hbWUKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKHRoaXMuY3VycmVudGx5RXhlY3V0aW5nTW9kdWxlSW5mb18gIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dBVCcpOworICAgICAgICB0aGlzLmN1cnJlbnRseUV4ZWN1dGluZ01vZHVsZUluZm9fID0gbW9kdWxlSW5mbzsKKworICAgICAgICB0cnkgeworICAgICAgICAgIGxvYWRIVE1MKHRlc3RSZWxwYXRoKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIGUubWVzc2FnZSA9ICdXaGlsZSBsb2FkaW5nICcgKyBtb2R1bGVOYW1lICsgJywgJyArIGUubWVzc2FnZTsKKyAgICAgICAgICBlLnN0YWNrID0gJ1doaWxlIGxvYWRpbmcgJyArIG1vZHVsZU5hbWUgKyAnLCAnICsgZS5zdGFjazsKKyAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgIHRoaXMuY3VycmVudGx5RXhlY3V0aW5nTW9kdWxlSW5mb18gPSB1bmRlZmluZWQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbW9kdWxlSW5mbzsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGdldEN1cnJlbnRseUV4ZWN1dGluZ01vZHVsZU5hbWU6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuY3VycmVudGx5RXhlY3V0aW5nTW9kdWxlSW5mb18gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBjdXJyZW50bHkgbG9hZGluZyBtb2R1bGUnKTsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRseUV4ZWN1dGluZ01vZHVsZUluZm9fLm1vZHVsZU5hbWU7CisgICAgfQorICB9OworCisKKyAgZnVuY3Rpb24gU3VpdGVMb2FkZXIoc3VpdGVSZWxwYXRoc1RvTG9hZCkgeworICAgIHRyLmIuRXZlbnRUYXJnZXQuY2FsbCh0aGlzKTsKKworICAgIHRoaXMuY3VycmVudE1vZHVsZUxvYWRlcl8gPSB1bmRlZmluZWQ7CisgICAgdGhpcy50ZXN0U3VpdGVzID0gW107CisKKyAgICBpZiAodHIuaXNIZWFkbGVzcykgeworICAgICAgaWYgKCF0ci5pc0Q4KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG1vZHVsZSBsb2FkZXIgZXhpc3RzIGZybyB0aGlzIHBsYXRmb3JtJyk7CisgICAgICB0aGlzLmN1cnJlbnRNb2R1bGVMb2FkZXJfID0gbmV3IEQ4TW9kdWxlTG9hZGVyKCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHRoaXMuY3VycmVudE1vZHVsZUxvYWRlcl8gPSBuZXcgSFRNTEltcG9ydHNNb2R1bGVMb2FkZXIoKTsKKyAgICB9CisKKyAgICB0aGlzLmFsbFN1aXRlc0xvYWRlZFByb21pc2UgPSB0aGlzLmJlZ2luTG9hZGluZ01vZHVsZXNfKAorICAgICAgICBzdWl0ZVJlbHBhdGhzVG9Mb2FkKTsKKyAgfQorCisgIFN1aXRlTG9hZGVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlLAorCisgICAgYmVnaW5Mb2FkaW5nTW9kdWxlc186IGZ1bmN0aW9uKHRlc3RSZWxwYXRocykgeworICAgICAgLy8gSG9va3MhCisgICAgICB0aGlzLmJpbmRHbG9iYWxIb29rc18oKTsKKworICAgICAgLy8gTG9hZCB0aGUgbW9kdWxlcy4KKyAgICAgIHZhciBtb2R1bGVQcm9taXNlcyA9IFtdOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0UmVscGF0aHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHRlc3RSZWxwYXRoID0gdGVzdFJlbHBhdGhzW2ldOworICAgICAgICB2YXIgbW9kdWxlTmFtZSA9IHRlc3RSZWxwYXRoLnNwbGl0KCcvJykuc2xpY2UoLTEpWzBdOworCisgICAgICAgIHZhciBwID0gdGhpcy5jdXJyZW50TW9kdWxlTG9hZGVyXy5sb2FkTW9kdWxlKHRlc3RSZWxwYXRoLCBtb2R1bGVOYW1lKTsKKyAgICAgICAgbW9kdWxlUHJvbWlzZXMucHVzaChwKTsKKyAgICAgIH0KKworICAgICAgdmFyIGFsbE1vZHVsZXNMb2FkZWRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHZhciByZW1haW5pbmcgPSBtb2R1bGVQcm9taXNlcy5sZW5ndGg7CisgICAgICAgIHZhciByZXNvbHZlZCA9IGZhbHNlOworICAgICAgICBmdW5jdGlvbiBvbmVNb3JlTG9hZGVkKCkgeworICAgICAgICAgIGlmIChyZXNvbHZlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICByZW1haW5pbmctLTsKKyAgICAgICAgICBpZiAocmVtYWluaW5nID4gMCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICByZXNvbHZlZCA9IHRydWU7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25lUmVqZWN0ZWQoZSkgeworICAgICAgICAgIGlmIChyZXNvbHZlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICByZXNvbHZlZCA9IHRydWU7CisgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICB9CisKKyAgICAgICAgbW9kdWxlUHJvbWlzZXMuZm9yRWFjaChmdW5jdGlvbihtb2R1bGVQcm9taXNlKSB7CisgICAgICAgICAgbW9kdWxlUHJvbWlzZS50aGVuKG9uZU1vcmVMb2FkZWQsIG9uZVJlamVjdGVkKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKworICAgICAgLy8gU2NyaXB0IGVycm9ycyBlcnJvcnMgYWJvcnQgbG9hZDsKKyAgICAgIHZhciBzY3JpcHRFcnJvclByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbih4cmVzb2x2ZSwgeHJlamVjdCkgeworICAgICAgICB0aGlzLnNjcmlwdEVycm9yUHJvbWlzZVJlc29sdmVyXyA9IHsKKyAgICAgICAgICByZXNvbHZlOiB4cmVzb2x2ZSwKKyAgICAgICAgICByZWplY3Q6IHhyZWplY3QKKyAgICAgICAgfTsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICB2YXIgZG9uZVByb21pc2UgPSBQcm9taXNlLnJhY2UoWworICAgICAgICBhbGxNb2R1bGVzTG9hZGVkUHJvbWlzZSwKKyAgICAgICAgc2NyaXB0RXJyb3JQcm9taXNlCisgICAgICBdKTsKKworICAgICAgLy8gQ2xlYW51cC4KKyAgICAgIHJldHVybiBkb25lUHJvbWlzZS50aGVuKAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICB0aGlzLnNjcmlwdEVycm9yUHJvbWlzZVJlc29sdmVyXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgICB0aGlzLnVuYmluZEdsb2JhbEhvb2tzXygpOworICAgICAgICB9LmJpbmQodGhpcyksCisgICAgICAgIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB0aGlzLnNjcmlwdEVycm9yUHJvbWlzZVJlc29sdmVyXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgICB0aGlzLnVuYmluZEdsb2JhbEhvb2tzXygpOworICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGJpbmRHbG9iYWxIb29rc186IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKGdsb2JhbC5fY3VycmVudFN1aXRlTG9hZGVyICE9PSB1bmRlZmluZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBzdWl0ZSBsb2FkZXIgZXhpc3RzIGFscmVhZHknKTsKKyAgICAgIGdsb2JhbC5fY3VycmVudFN1aXRlTG9hZGVyID0gdGhpczsKKworICAgICAgdGhpcy5vbGRHbG9iYWxPbkVycm9yXyA9IGdsb2JhbC5vbmVycm9yOworICAgICAgZ2xvYmFsLm9uZXJyb3IgPSBmdW5jdGlvbihlcnJvck1zZywgdXJsLCBsaW5lTnVtYmVyKSB7CisgICAgICAgIHRoaXMuc2NyaXB0RXJyb3JQcm9taXNlUmVzb2x2ZXJfLnJlamVjdCgKKyAgICAgICAgICAgIG5ldyBFcnJvcihlcnJvck1zZyArICdcbicgKyB1cmwgKyAnOicgKyBsaW5lTnVtYmVyKSk7CisgICAgICAgIGlmICh0aGlzLm9sZEdsb2JhbE9uRXJyb3JfKQorICAgICAgICAgIHJldHVybiB0aGlzLm9sZEdsb2JhbE9uRXJyb3JfKGVycm9yTXNnLCB1cmwsIGxpbmVOdW1iZXIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9LmJpbmQodGhpcyk7CisgICAgfSwKKworICAgIHVuYmluZEdsb2JhbEhvb2tzXzogZnVuY3Rpb24oKSB7CisgICAgICBnbG9iYWwuX2N1cnJlbnRTdWl0ZUxvYWRlciA9IHVuZGVmaW5lZDsKKworICAgICAgZ2xvYmFsLm9uZXJyb3IgPSB0aGlzLm9sZEdsb2JhbE9uRXJyb3JfOworICAgICAgdGhpcy5vbGRHbG9iYWxPbkVycm9yXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgY29uc3RydWN0QW5kUmVnaXN0ZXJUZXN0U3VpdGU6IGZ1bmN0aW9uKHN1aXRlQ29uc3RydWN0b3IpIHsKKyAgICAgIHZhciBuYW1lID0gdGhpcy5jdXJyZW50TW9kdWxlTG9hZGVyXy5nZXRDdXJyZW50bHlFeGVjdXRpbmdNb2R1bGVOYW1lKCk7CisKKyAgICAgIHZhciB0ZXN0U3VpdGUgPSBuZXcgdHIuYi51bml0dGVzdC5UZXN0U3VpdGUoCisgICAgICAgIG5hbWUsIHN1aXRlQ29uc3RydWN0b3IpOworCisgICAgICB0aGlzLnRlc3RTdWl0ZXMucHVzaCh0ZXN0U3VpdGUpOworCisgICAgICB2YXIgZSA9IG5ldyB0ci5iLkV2ZW50KCdzdWl0ZS1sb2FkZWQnKTsKKyAgICAgIGUudGVzdFN1aXRlID0gdGVzdFN1aXRlOworICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOworICAgIH0sCisKKyAgICBnZXRBbGxUZXN0czogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGVzdHMgPSBbXTsKKyAgICAgIHRoaXMudGVzdFN1aXRlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1aXRlKSB7CisgICAgICAgIHRlc3RzLnB1c2guYXBwbHkodGVzdHMsIHN1aXRlLnRlc3RzKTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHRlc3RzOworICAgIH0sCisKKyAgICBmaW5kVGVzdFdpdGhGdWxseVF1YWxpZmllZE5hbWU6IGZ1bmN0aW9uKGZ1bGx5UXVhbGlmaWVkTmFtZSkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRlc3RTdWl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHN1aXRlID0gdGhpcy50ZXN0U3VpdGVzW2ldOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN1aXRlLnRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgdmFyIHRlc3QgPSBzdWl0ZS50ZXN0c1tqXTsKKyAgICAgICAgICBpZiAodGVzdC5mdWxseVF1YWxpZmllZE5hbWUgPT0gZnVsbHlRdWFsaWZpZWROYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRlc3Q7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHRocm93IG5ldyBFcnJvcignVGVzdCAnICsgZnVsbHlRdWFsaWZpZWROYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAnbm90IGZvdW5kIGFtb25nc3QgJyArIHRoaXMudGVzdFN1aXRlcy5sZW5ndGgpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFN1aXRlTG9hZGVyOiBTdWl0ZUxvYWRlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC90ZXN0X2Nhc2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0dGVzdC90ZXN0X2Nhc2UuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VuaXR0ZXN0L3Rlc3RfY2FzZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvdGVzdF9jYXNlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC90ZXN0X2Nhc2VfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L3Rlc3RfY2FzZV90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdC90ZXN0X2Nhc2VfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvdGVzdF9jYXNlX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L3Rlc3RfcnVubmVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvdGVzdF9ydW5uZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmQyYWE2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L3Rlc3RfcnVubmVyLmh0bWwKQEAgLTAsMCArMSwyNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudF90YXJnZXQuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgeworICB2YXIgcmVhbFR2T25BbmltYXRpb25GcmFtZUVycm9yOworICB2YXIgcmVhbEdsb2JhbE9uRXJyb3I7CisgIHZhciByZWFsR2xvYmFsSGlzdG9yeVB1c2hTdGF0ZTsKKworICBmdW5jdGlvbiBpbnN0YWxsR2xvYmFsVGVzdEhvb2tzKHJ1bm5lcikgeworICAgIHJlYWxUdk9uQW5pbWF0aW9uRnJhbWVFcnJvciA9IHRyLmIub25BbmltYXRpb25GcmFtZUVycm9yOworICAgIHRyLmIub25BbmltYXRpb25GcmFtZUVycm9yID0gZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgIHJ1bm5lci5yZXN1bHRzLmFkZEVycm9yRm9yQ3VycmVudFRlc3QoZXJyb3IpOworICAgIH0KKworICAgIGlmICh0ci5pc0V4cG9ydGVkKCdnbG9iYWwub25lcnJvcicpKSB7CisgICAgICByZWFsR2xvYmFsT25FcnJvciA9IGdsb2JhbC5vbmVycm9yOworICAgICAgZ2xvYmFsLm9uZXJyb3IgPSBmdW5jdGlvbihlcnJvck1zZywgdXJsLCBsaW5lTnVtYmVyKSB7CisgICAgICAgIHJ1bm5lci5yZXN1bHRzLmFkZEVycm9yRm9yQ3VycmVudFRlc3QoCisgICAgICAgICAgICBlcnJvck1zZyArICcgYXQgJyArIHVybCArICc6JyArIGxpbmVOdW1iZXIpOworICAgICAgICBpZiAocmVhbEdsb2JhbE9uRXJyb3IpCisgICAgICAgICAgcmV0dXJuIHJlYWxHbG9iYWxPbkVycm9yKGVycm9yTXNnLCB1cmwsIGxpbmVOdW1iZXIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgfQorCisgICAgaWYgKHRyLmlzRXhwb3J0ZWQoJ2dsb2JhbC5oaXN0b3J5JykpIHsKKyAgICAgIHJlYWxHbG9iYWxIaXN0b3J5UHVzaFN0YXRlID0gZ2xvYmFsLmhpc3RvcnkucHVzaFN0YXRlOworICAgICAgZ2xvYmFsLmhpc3RvcnkucHVzaFN0YXRlID0gZnVuY3Rpb24oKSB7CisgICAgICB9OworICAgIH0KKworICAgIHRyLmIudW5pdHRlc3QuYWRkSFRNTE91dHB1dEZvckN1cnJlbnRUZXN0ID0gZnVuY3Rpb24oZWxlbWVudCkgeworICAgICAgcnVubmVyLnJlc3VsdHMuYWRkSFRNTE91dHB1dEZvckN1cnJlbnRUZXN0KGVsZW1lbnQpOworICAgIH0KKworICAgIGlmICh0ci5pc0V4cG9ydGVkKCdnbG9iYWwuc2Vzc2lvblN0b3JhZ2UnKSkgeworICAgICAgZ2xvYmFsLnNlc3Npb25TdG9yYWdlLmNsZWFyKCk7CisgICAgfQorCisgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgndHItdW5pdHRlc3Qtd2lsbC1ydW4nKTsKKyAgICBUZXN0UnVubmVyLmRpc3BhdGNoRXZlbnQoZSk7CisgIH0KKworICBmdW5jdGlvbiB1bmluc3RhbGxHbG9iYWxUZXN0SG9va3MoKSB7CisgICAgaWYgKHRyLmlzRXhwb3J0ZWQoJ2dsb2JhbC5vbmVycm9yJykpIHsKKyAgICAgIGdsb2JhbC5vbmVycm9yID0gcmVhbEdsb2JhbE9uRXJyb3I7CisgICAgICByZWFsR2xvYmFsT25FcnJvciA9IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICB0ci5iLm9uQW5pbWF0aW9uRnJhbWVFcnJvciA9IHJlYWxUdk9uQW5pbWF0aW9uRnJhbWVFcnJvcjsKKyAgICByZWFsVHZPbkFuaW1hdGlvbkZyYW1lRXJyb3IgPSB1bmRlZmluZWQ7CisKKyAgICBpZiAodHIuaXNFeHBvcnRlZCgnZ2xvYmFsLmhpc3RvcnknKSkgeworICAgICAgZ2xvYmFsLmhpc3RvcnkucHVzaFN0YXRlID0gcmVhbEdsb2JhbEhpc3RvcnlQdXNoU3RhdGU7CisgICAgICByZWFsR2xvYmFsSGlzdG9yeVB1c2hTdGF0ZSA9IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICB0ci5iLnVuaXR0ZXN0LmFkZEhUTUxPdXRwdXRGb3JDdXJyZW50VGVzdCA9IHVuZGVmaW5lZDsKKyAgfQorCisKKyAgZnVuY3Rpb24gVGVzdFJ1bm5lcihyZXN1bHRzLCB0ZXN0Q2FzZXMpIHsKKyAgICB0aGlzLnJlc3VsdHNfID0gcmVzdWx0czsKKyAgICB0aGlzLnRlc3RDYXNlc18gPSB0ZXN0Q2FzZXM7CisgICAgdGhpcy5wZW5kaW5nVGVzdENhc2VzXyA9IFtdOworCisgICAgdGhpcy5ydW5PbmVUZXN0Q2FzZVNjaGVkdWxlZF8gPSBmYWxzZTsKKworICAgIHRoaXMucnVuQ29tcGxldGVkUHJvbWlzZSA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLnJ1bkNvbXBsZXRlZFJlc29sdmVyXyA9IHVuZGVmaW5lZDsKKworICAgIHRoaXMuY3VycmVudFRlc3RDYXNlXyA9IHVuZGVmaW5lZDsKKyAgfQorCisgIFRlc3RSdW5uZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIGJlZ2luUnVubmluZzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5wZW5kaW5nVGVzdENhc2VzXy5sZW5ndGgpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignVGVzdHMgc3RpbGwgcnVubmluZyEnKTsKKworICAgICAgdGhpcy5ydW5Db21wbGV0ZWRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIHRoaXMucnVuQ29tcGxldGVkUmVzb2x2ZXJfID0geworICAgICAgICAgIHJlc29sdmU6IHJlc29sdmUsCisgICAgICAgICAgcmVqZWN0OiByZWplY3QKKyAgICAgICAgfTsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisKKyAgICAgIHRoaXMucGVuZGluZ1Rlc3RDYXNlc18gPSB0aGlzLnRlc3RDYXNlc18uc2xpY2UoMCk7CisKKyAgICAgIHRoaXMuc2NoZWR1bGVSdW5PbmVUZXN0Q2FzZV8oKTsKKworICAgICAgcmV0dXJuIHRoaXMucnVuQ29tcGxldGVkUHJvbWlzZTsKKyAgICB9LAorCisgICAgYmVnaW5Ub1N0b3BSdW5uaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5ydW5Db21wbGV0ZWRSZXNvbHZlcl8pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignU3RpbGwgcnVubmluZycpOworICAgICAgdGhpcy5wZW5kaW5nVGVzdENhc2VzXyA9IFtdOworICAgICAgcmV0dXJuIHRoaXMucnVuQ29tcGxldGVkUHJvbWlzZTsKKyAgICB9LAorCisgICAgZ2V0IHRlc3RDYXNlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnRlc3RDYXNlc187CisgICAgfSwKKworICAgIGdldCByZXN1bHRzKCkgeworICAgICAgcmV0dXJuIHRoaXMucmVzdWx0c187CisgICAgfSwKKworICAgIHNjaGVkdWxlUnVuT25lVGVzdENhc2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLnJ1bk9uZVRlc3RDYXNlU2NoZWR1bGVkXykKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5ydW5PbmVUZXN0Q2FzZVNjaGVkdWxlZF8gPSB0cnVlOworICAgICAgdHIuYi5yZXF1ZXN0SWRsZUNhbGxiYWNrKHRoaXMucnVuT25lVGVzdENhc2VfLCB0aGlzKTsKKyAgICB9LAorCisgICAgcnVuT25lVGVzdENhc2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucnVuT25lVGVzdENhc2VTY2hlZHVsZWRfID0gZmFsc2U7CisKKyAgICAgIGlmICh0aGlzLnBlbmRpbmdUZXN0Q2FzZXNfLmxlbmd0aCA9PSAwKSB7CisgICAgICAgIHRoaXMuZGlkRmluaXNoUnVubmluZ0FsbFRlc3RzXygpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlXyA9IHRoaXMucGVuZGluZ1Rlc3RDYXNlc18uc3BsaWNlKDAsIDEpWzBdOworCisgICAgICB0aGlzLnJlc3VsdHNfLndpbGxSdW5UZXN0KHRoaXMuY3VycmVudFRlc3RDYXNlXyk7CisgICAgICBpZiAoIXRoaXMuc2V0VXBDdXJyZW50VGVzdENhc2VfKCkpIHsKKyAgICAgICAgdGhpcy5yZXN1bHRzXy5kaWRDdXJyZW50VGVzdEVuZCgpOworICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZV8gPSB1bmRlZmluZWQ7CisgICAgICAgIHRoaXMuc2NoZWR1bGVSdW5PbmVUZXN0Q2FzZV8oKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB0aGlzLnJ1bkN1cnJlbnRUZXN0Q2FzZV8oKS50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uIHBhc3MocmVzdWx0KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICB0aGlzLnRlYXJEb3duQ3VycmVudFRlc3RDYXNlXyh0cnVlKTsKKyAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdHNfLnNldFJldHVyblZhbHVlRnJvbUN1cnJlbnRUZXN0KHJlc3VsdCk7CisgICAgICAgICAgICAgIHRoaXMucmVzdWx0c18uZGlkQ3VycmVudFRlc3RFbmQoKTsKKyAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VfID0gdW5kZWZpbmVkOworICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlUnVuT25lVGVzdENhc2VfKCk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgIHRoaXMuaGFkSW50ZXJuYWxFcnJvcl8oZSk7CisgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfS5iaW5kKHRoaXMpLAorICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoZXJyb3IpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHRoaXMucmVzdWx0c18uYWRkRXJyb3JGb3JDdXJyZW50VGVzdChlcnJvcik7CisgICAgICAgICAgICAgIHRoaXMudGVhckRvd25DdXJyZW50VGVzdENhc2VfKGZhbHNlKTsKKyAgICAgICAgICAgICAgdGhpcy5yZXN1bHRzXy5kaWRDdXJyZW50VGVzdEVuZCgpOworICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZV8gPSB1bmRlZmluZWQ7CisgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSdW5PbmVUZXN0Q2FzZV8oKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgdGhpcy5oYWRJbnRlcm5hbEVycm9yXyhlKTsKKyAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBzZXRVcEN1cnJlbnRUZXN0Q2FzZV86IGZ1bmN0aW9uKCkgeworICAgICAgLy8gVHJ5IHNldHRpbmcgaXQgdXAuIFJldHVybiB0cnVlIGlmIHN1Y2NlZWRlZC4KKyAgICAgIGluc3RhbGxHbG9iYWxUZXN0SG9va3ModGhpcyk7CisgICAgICB0cnkgeworICAgICAgICB0aGlzLmN1cnJlbnRUZXN0Q2FzZV8uc2V0VXAoKTsKKyAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIHRoaXMucmVzdWx0c18uYWRkRXJyb3JGb3JDdXJyZW50VGVzdChlcnJvcik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBydW5DdXJyZW50VGVzdENhc2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICB2YXIgbWF5YmVQcm9taXNlID0gdGhpcy5jdXJyZW50VGVzdENhc2VfLnJ1bigpOworICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgIHJlamVjdChlcnJvcik7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1heWJlUHJvbWlzZSAhPT0gdW5kZWZpbmVkICYmIG1heWJlUHJvbWlzZS50aGVuKSB7CisgICAgICAgICAgbWF5YmVQcm9taXNlLnRoZW4oCisgICAgICAgICAgICAgIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTsKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZXNvbHZlKG1heWJlUHJvbWlzZSk7CisgICAgICAgIH0KKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGhhZEludGVybmFsRXJyb3JfOiBmdW5jdGlvbihvdXRlckUpIHsKKyAgICAgIHRyeSB7CisgICAgICAgIHRoaXMucmVzdWx0cy5kaWRSdW5UZXN0cygpOworICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBjb25zb2xlLmxvZygnSGFkIGFub3RoZXIgZXJyb3IgZHVyaW5nIGhhZEludGVybmFsRXJyb3JfIScpOworICAgICAgICBjb25zb2xlLmxvZyhlLnN0YWNrKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5ydW5Db21wbGV0ZWRSZXNvbHZlcl8ucmVqZWN0KG91dGVyRSk7CisgICAgICB0aGlzLnJ1bkNvbXBsZXRlZFJlc29sdmVyXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgdGVhckRvd25DdXJyZW50VGVzdENhc2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRyeSB7CisgICAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlXy50ZWFyRG93bigpOworICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgdGhpcy5yZXN1bHRzXy5hZGRFcnJvckZvckN1cnJlbnRUZXN0KGVycm9yKTsKKyAgICAgIH0KKworICAgICAgdW5pbnN0YWxsR2xvYmFsVGVzdEhvb2tzKCk7CisgICAgfSwKKworICAgIGRpZEZpbmlzaFJ1bm5pbmdBbGxUZXN0c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5yZXN1bHRzLmRpZFJ1blRlc3RzKCk7CisgICAgICB0aGlzLnJ1bkNvbXBsZXRlZFJlc29sdmVyXy5yZXNvbHZlKCk7CisgICAgICB0aGlzLnJ1bkNvbXBsZXRlZFJlc29sdmVyXyA9IHVuZGVmaW5lZDsKKyAgICB9CisgIH07CisKKyAgdHIuYi5FdmVudFRhcmdldC5kZWNvcmF0ZShUZXN0UnVubmVyKTsKKworICByZXR1cm4geworICAgIFRlc3RSdW5uZXI6IFRlc3RSdW5uZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvdGVzdF9zdWl0ZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L3Rlc3Rfc3VpdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzk5MDFjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3VuaXR0ZXN0L3Rlc3Rfc3VpdGUuaHRtbApAQCAtMCwwICsxLDEyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zdGF0aXN0aWNzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXR0ZXN0L3Rlc3RfY2FzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9jb25zdGFudHMuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgeworICB2YXIgVGVzdENhc2UgPSB0ci5iLnVuaXR0ZXN0LlRlc3RDYXNlOworICB2YXIgUGVyZlRlc3RDYXNlID0gdHIuYi51bml0dGVzdC5QZXJmVGVzdENhc2U7CisKKyAgdmFyIFRlc3RUeXBlcyA9IHRyLmIudW5pdHRlc3QuVGVzdFR5cGVzOworCisgIGZ1bmN0aW9uIFRlc3RTdWl0ZShuYW1lLCBzdWl0ZUNvbnN0cnVjdG9yKSB7CisgICAgdGhpcy5ndWlkID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7CisgICAgdGhpcy5uYW1lXyA9IG5hbWU7CisgICAgdGhpcy50ZXN0c18gPSBbXTsKKyAgICB0aGlzLnRlc3ROYW1lc18gPSB7fTsgLy8gRm9yIGR1cGUgY2hlY2tpbmcuCisKKyAgICBnbG9iYWwudGVzdCA9IGZ1bmN0aW9uKHRlc3RDYXNlT3JOYW1lLCBvcHRfdGVzdEZuLCBvcHRfb3B0aW9ucykgeworICAgICAgaWYgKHRlc3RDYXNlT3JOYW1lIGluc3RhbmNlb2YgVGVzdENhc2UpIHsKKyAgICAgICAgaWYgKG9wdF90ZXN0Rm4gIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wdF90ZXN0Rm4gY2Fubm90IGJlIGdpdmVuIHdoZW4gZ2l2aW5nIGEgVGVzdENhc2UnKTsKKyAgICAgICAgaWYgKG9wdF9vcHRpb25zICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcHRfb3B0aW9ucyBjYW5ub3QgYmUgZ2l2ZW4gd2hlbiBnaXZpbmcgYSBUZXN0Q2FzZScpOworICAgICAgICB0aGlzLmFkZFRlc3QodGVzdENhc2VPck5hbWUpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciB0ZXN0TmFtZSA9IHRlc3RDYXNlT3JOYW1lOworICAgICAgdmFyIHRlc3RGbiA9IG9wdF90ZXN0Rm47CisgICAgICB2YXIgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAgICBpZiAodGVzdEZuID09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgb3B0X3Rlc3RGbicpOworCisgICAgICAvLyBJZiB0aGUgdGVzdCBjYXJlcyBhYm91dCBEUEkgc2V0dGluZ3MgdGhlbiB3ZSBmaXJzdCBwdXNoIGEgdGVzdAorICAgICAgLy8gdGhhdCBmYWtlcyB0aGUgRFBJIGFzIHRoZSBsb3cgb3IgaGkgRHBpIHZlcnNpb24sIGRlcGVuZGluZyBvbiB3aGF0CisgICAgICAvLyB3ZSdyZSBjdXJyZW50IHVzaW5nLgorICAgICAgaWYgKG9wdGlvbnMuZHBpQXdhcmUpIHsKKyAgICAgICAgdmFyIGRlZmF1bHREZXZpY2VQaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87CisgICAgICAgIHZhciBkcGkgPSBkZWZhdWx0RGV2aWNlUGl4ZWxSYXRpbyA+IDEgPyAxIDogMjsKKworICAgICAgICB2YXIgdGVzdFdyYXBwZXIgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA9IGRwaTsKKyAgICAgICAgICB0cnkgeworICAgICAgICAgICAgdGVzdEZuLmJpbmQodGhpcykuY2FsbCgpOworICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA9IGRlZmF1bHREZXZpY2VQaXhlbFJhdGlvOworICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB2YXIgbmV3TmFtZSA9IG5hbWU7CisgICAgICAgIGlmIChkcGkgPT09IDEpIHsKKyAgICAgICAgICBuZXdOYW1lICs9ICdfbG9EUEknOworICAgICAgICAgIHRlc3ROYW1lICs9ICdfaGlEUEknOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIG5ld05hbWUgKz0gJ19oaURQSSc7CisgICAgICAgICAgdGVzdE5hbWUgKz0gJ19sb0RQSSc7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmFkZFRlc3QobmV3IFRlc3RDYXNlKG5ld05hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFdyYXBwZXIsIG9wdGlvbnMgfHwge30pKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5hZGRUZXN0KG5ldyBUZXN0Q2FzZSh0ZXN0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZuLCBvcHRpb25zIHx8IHt9KSk7CisgICAgfS5iaW5kKHRoaXMpOworCisgICAgZ2xvYmFsLnRpbWVkUGVyZlRlc3QgPSBmdW5jdGlvbihuYW1lLCB0ZXN0Rm4sIG9wdGlvbnMpIHsKKyAgICAgIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucy5pdGVyYXRpb25zID09PSB1bmRlZmluZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigndGltZWRQZXJmVGVzdCBtdXN0IGhhdmUgaXRlcmF0aW9uIG9wdGlvbiBwcm92aWRlZC4nKTsKKyAgICAgIHRoaXMuYWRkVGVzdChuZXcgUGVyZlRlc3RDYXNlKG5hbWUsIHRlc3RGbiwgb3B0aW9ucykpOworICAgIH0uYmluZCh0aGlzKTsKKworICAgIHRyeSB7CisgICAgICBzdWl0ZUNvbnN0cnVjdG9yLmNhbGwoKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgZ2xvYmFsLnRlc3QgPSB1bmRlZmluZWQ7CisgICAgICBnbG9iYWwudGltZWRQZXJmVGVzdCA9IHVuZGVmaW5lZDsKKyAgICB9CisgIH0KKworICBUZXN0U3VpdGUucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIGdldCB0ZXN0cygpIHsKKyAgICAgIHJldHVybiB0aGlzLnRlc3RzXzsKKyAgICB9LAorCisgICAgYWRkVGVzdDogZnVuY3Rpb24odGVzdCkgeworICAgICAgaWYgKHRlc3Quc3VpdGUgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUZXN0IHN1aXRlIGlzIGFscmVhZHkgYXNzaWduZWQnKTsKKyAgICAgIGlmICh0aGlzLnRlc3ROYW1lc19bdGVzdC5uYW1lXSAhPT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rlc3QgbmFtZSBhbHJlYWR5IHVzZWQnKTsKKyAgICAgIHRlc3Quc3VpdGUgPSB0aGlzOworICAgICAgdGhpcy50ZXN0TmFtZXNfW3Rlc3QubmFtZV0gPSB0cnVlOworICAgICAgdGhpcy50ZXN0c18ucHVzaCh0ZXN0KTsKKyAgICB9LAorCisgICAgZ2V0IG5hbWUoKSB7CisgICAgICByZXR1cm4gdGhpcy5uYW1lXzsKKyAgICB9CisgIH07CisKKyAgZnVuY3Rpb24gdGVzdFN1aXRlKHN1aXRlQ29uc3RydWN0b3IpIHsKKyAgICBpZiAoIWdsb2JhbC5fY3VycmVudFN1aXRlTG9hZGVyKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCd0ZXN0U3VpdGVzIGNhbiBvbmx5IGJlIGRlZmluZWQgZHVyaW5nIHN1aXRlIGxvYWRpbmcnKTsKKyAgICBnbG9iYWwuX2N1cnJlbnRTdWl0ZUxvYWRlci5jb25zdHJ1Y3RBbmRSZWdpc3RlclRlc3RTdWl0ZShzdWl0ZUNvbnN0cnVjdG9yKTsKKyAgfQorCisgIHJldHVybiB7CisgICAgVGVzdFN1aXRlOiBUZXN0U3VpdGUsCisgICAgdGVzdFN1aXRlOiB0ZXN0U3VpdGUKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvdGV4dF90ZXN0X3Jlc3VsdHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91bml0dGVzdC90ZXh0X3Rlc3RfcmVzdWx0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2Yzg1NGUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3QvdGV4dF90ZXN0X3Jlc3VsdHMuaHRtbApAQCAtMCwwICsxLDkyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0dGVzdC9jb25zdGFudHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYi51bml0dGVzdCcsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBUZXh0VGVzdFJlc3VsdHMoKSB7CisgICAgdGhpcy5udW1UZXN0c1RoYXRQYXNzZWRfID0gMDsKKyAgICB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF8gPSAwOworICAgIHRoaXMuY3VycmVudFRlc3RDYXNlSGFkRXJyb3JzXyA9IGZhbHNlOworICB9CisKKyAgVGV4dFRlc3RSZXN1bHRzLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgbnVtVGVzdHNUaGF0UmFuKCkgeworICAgICAgcmV0dXJuIHRoaXMubnVtVGVzdHNUaGF0UGFzc2VkXyArIHRoaXMubnVtVGVzdHNUaGF0RmFpbGVkXzsKKyAgICB9LAorCisgICAgZ2V0IG51bVRlc3RzVGhhdEZhaWxlZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF87CisgICAgfSwKKworICAgIGdldCBudW1UZXN0c1RoYXRQYXNzZWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5udW1UZXN0c1RoYXRQYXNzZWRfOworICAgIH0sCisKKyAgICB3aWxsUnVuVGVzdDogZnVuY3Rpb24odGVzdENhc2UpIHsKKyAgICAgIHRoaXMud3JpdGVfKHRlc3RDYXNlLm5hbWUgKyAnICgnICsgdGVzdENhc2Uuc3VpdGUubmFtZSArICcpIC4uLiAnKTsKKyAgICAgIHRoaXMuY3VycmVudFRlc3RDYXNlSGFkRXJyb3JzXyA9IGZhbHNlOworICAgIH0sCisKKyAgICBhZGRFcnJvckZvckN1cnJlbnRUZXN0OiBmdW5jdGlvbihlcnJvcikgeworICAgICAgaWYgKCF0aGlzLmN1cnJlbnRUZXN0Q2FzZUhhZEVycm9yc18pCisgICAgICAgIHRoaXMud3JpdGVfKCdGQUlMXG4nKTsKKyAgICAgIHZhciBub3JtYWxpemVkRXhjZXB0aW9uID0gdHIuYi5ub3JtYWxpemVFeGNlcHRpb24oZXJyb3IpOworICAgICAgdGhpcy53cml0ZV8obm9ybWFsaXplZEV4Y2VwdGlvbi5zdGFjayArICdcbicpOworICAgICAgdGhpcy5jdXJyZW50VGVzdENhc2VIYWRFcnJvcnNfID0gdHJ1ZTsKKyAgICB9LAorCisgICAgYWRkSFRNTE91dHB1dEZvckN1cnJlbnRUZXN0OiBmdW5jdGlvbihlbGVtZW50KSB7CisgICAgICB0aGlzLmN1ckhUTUxPdXRwdXRfLnB1c2goZWxlbWVudCk7CisgICAgfSwKKworICAgIHNldFJldHVyblZhbHVlRnJvbUN1cnJlbnRUZXN0OiBmdW5jdGlvbihyZXR1cm5WYWx1ZSkgeworICAgICAgdGhpcy53cml0ZV8oJ1tSRVNVTFRdICcgKyBKU09OLnN0cmluZ2lmeShyZXR1cm5WYWx1ZSkgKyAnXG4nKTsKKyAgICB9LAorCisgICAgZGlkQ3VycmVudFRlc3RFbmQ6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuY3VycmVudFRlc3RDYXNlSGFkRXJyb3JzXykgeworICAgICAgICB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZF8gKz0gMTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMubnVtVGVzdHNUaGF0UGFzc2VkXyArPSAxOworICAgICAgICB0aGlzLndyaXRlXygnb2tcbicpOworICAgICAgfQorICAgIH0sCisKKyAgICBkaWRSdW5UZXN0czogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLndyaXRlXygnXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nICsKKyAgICAgICAgICAgICAgICctLS0tLS0tLS0tLS0tLS0tXG4nKTsKKyAgICAgIGlmICh0aGlzLm51bVRlc3RzVGhhdFJhbiA9PT0gMSkKKyAgICAgICAgdGhpcy53cml0ZV8oJ1JhbiAxIHRlc3RcbicpOworICAgICAgZWxzZQorICAgICAgICB0aGlzLndyaXRlXygnUmFuICcgKyB0aGlzLm51bVRlc3RzVGhhdFJhbiArICcgdGVzdHNcbicpOworCisgICAgICBpZiAodGhpcy5udW1UZXN0c1RoYXRGYWlsZWQgPiAwKSB7CisgICAgICAgIHRoaXMud3JpdGVfKCdcbkZBSUxFRCAoZXJyb3JzPScgKyB0aGlzLm51bVRlc3RzVGhhdEZhaWxlZCArICcpJyk7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLndyaXRlXygnXG5PSycpOworICAgICAgfQorICAgIH0sCisKKyAgICB3cml0ZV86IGZ1bmN0aW9uKG1zZykgeworICAgICAgaWYgKCF0ci5pc0Q4KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkJyk7CisgICAgICBnbG9iYWwud3JpdGUobXNnKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBUZXh0VGVzdFJlc3VsdHM6IFRleHRUZXN0UmVzdWx0cworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91bml0dGVzdF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3RfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdW5pdHRlc3RfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdW5pdHRlc3RfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdXRpbHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91dGlscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkOTc1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdXRpbHMuaHRtbApAQCAtMCwwICsxLDc5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5iJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBZGRzIGEge0Bjb2RlIGdldEluc3RhbmNlfSBzdGF0aWMgbWV0aG9kIHRoYXQgYWx3YXlzIHJldHVybiB0aGUgc2FtZQorICAgKiBpbnN0YW5jZSBvYmplY3QuCisgICAqIEBwYXJhbSB7IUZ1bmN0aW9ufSBjdG9yIFRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIGNsYXNzIHRvIGFkZCB0aGUgc3RhdGljCisgICAqICAgICBtZXRob2QgdG8uCisgICAqLworICBmdW5jdGlvbiBhZGRTaW5nbGV0b25HZXR0ZXIoY3RvcikgeworICAgIGN0b3IuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBjdG9yLmluc3RhbmNlXyB8fCAoY3Rvci5pbnN0YW5jZV8gPSBuZXcgY3RvcigpKTsKKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gbm9ybWFsaXplRXhjZXB0aW9uKGUpIHsKKyAgICBpZiAoZSA9PT0gdW5kZWZpbmVkIHx8IGUgPT09IG51bGwpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIG1lc3NhZ2U6ICdVbmtub3duOiBudWxsIG9yIHVuZGVmaW5lZCBleGNlcHRpb24nLAorICAgICAgICBzdGFjazogJ1Vua25vd24nCisgICAgICB9OworICAgIH0KKworICAgIGlmICh0eXBlb2YoZSkgPT0gJ3N0cmluZycpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIG1lc3NhZ2U6IGUsCisgICAgICAgIHN0YWNrOiBbZV0KKyAgICAgIH07CisgICAgfQorCisgICAgdmFyIG1zZyA9IGUubWVzc2FnZSA/IGUubWVzc2FnZSA6ICdVbmtub3duJzsKKyAgICByZXR1cm4geworICAgICAgbWVzc2FnZTogbXNnLAorICAgICAgc3RhY2s6IGUuc3RhY2sgPyBlLnN0YWNrIDogW21zZ10KKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gc3RhY2tUcmFjZSgpIHsKKyAgICB2YXIgc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjayArICcnOworICAgIHN0YWNrID0gc3RhY2suc3BsaXQoJ1xuJyk7CisgICAgcmV0dXJuIHN0YWNrLnNsaWNlKDIpOworICB9CisKKyAgZnVuY3Rpb24gZ2V0VXNpbmdQYXRoKHBhdGgsIGZyb21fZGljdCkgeworICAgIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoJy4nKTsKKyAgICB2YXIgY3VyID0gZnJvbV9kaWN0OworCisgICAgZm9yICh2YXIgcGFydDsgcGFydHMubGVuZ3RoICYmIChwYXJ0ID0gcGFydHMuc2hpZnQoKSk7KSB7CisgICAgICBpZiAoIXBhcnRzLmxlbmd0aCkgeworICAgICAgICByZXR1cm4gY3VyW3BhcnRdOworICAgICAgfSBlbHNlIGlmIChwYXJ0IGluIGN1cikgeworICAgICAgICBjdXIgPSBjdXJbcGFydF07CisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdW5kZWZpbmVkOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBhZGRTaW5nbGV0b25HZXR0ZXI6IGFkZFNpbmdsZXRvbkdldHRlciwKKworICAgIG5vcm1hbGl6ZUV4Y2VwdGlvbjogbm9ybWFsaXplRXhjZXB0aW9uLAorICAgIHN0YWNrVHJhY2U6IHN0YWNrVHJhY2UsCisKKyAgICBnZXRVc2luZ1BhdGg6IGdldFVzaW5nUGF0aAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS91dGlsc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdXRpbHNfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiODJkODYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2Jhc2UvdXRpbHNfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdGVzdCgnZ2V0VXNpbmdQYXRoJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHogPSB0ci5iLmdldFVzaW5nUGF0aCgneC55LnonLCB7J3gnOiB7J3knOiB7J3onOiAzfX19KTsKKyAgICBhc3NlcnQuZXF1YWwoeiwgMyk7CisKKyAgICB2YXIgdyA9IHRyLmIuZ2V0VXNpbmdQYXRoKCd4LncnLCB7J3gnOiB7J3knOiB7J3onOiAzfX19KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQodyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS94aHIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvYmFzZS94aHIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU4MWM0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9iYXNlL3hoci5odG1sCkBAIC0wLDAgKzEsNzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gZ3Vlc3NCaW5hcnkodXJsKSB7CisgICAgcmV0dXJuIC9bLl1neiQvLnRlc3QodXJsKSB8fCAvWy5demlwJC8udGVzdCh1cmwpOworICB9CisgIGZ1bmN0aW9uIGdldCh1cmwsIGFzeW5jKSB7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vdmVycmlkZU1pbWVUeXBlKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7CisgICAgcmVxLm9wZW4oJ0dFVCcsIHVybCwgYXN5bmMpOworICAgIHZhciBpc0JpbmFyeSA9IGd1ZXNzQmluYXJ5KHVybCk7CisgICAgaWYgKGlzQmluYXJ5ICYmIGFzeW5jKQorICAgICAgcmVxLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7CisKKyAgICBpZiAoIWFzeW5jKSB7CisgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgIGlmIChyZXEuc3RhdHVzID09IDIwMCkgeworICAgICAgICByZXR1cm4gcmVxLnJlc3BvbnNlVGV4dDsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcignWEhSIGZhaWxlZCB3aXRoIHN0YXR1cyAnICsgcmVxLnN0YXR1cyk7CisgICAgICB9CisgICAgfQorCisgICAgdmFyIHAgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihhRXZ0KSB7CisgICAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0KSB7CisgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAocmVxLnN0YXR1cyA9PSAyMDApIHsKKyAgICAgICAgICAgICAgcmVzb2x2ZShpc0JpbmFyeSA/IHJlcS5yZXNwb25zZSA6IHJlcS5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignWEhSIGZhaWxlZCB3aXRoIHN0YXR1cyAnICsgcmVxLnN0YXR1cykpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0sIDApOworICAgICAgICB9CisgICAgICB9OworICAgIH0pOworICAgIHJlcS5zZW5kKCk7CisgICAgcmV0dXJuIHA7CisgIH0KKworICBmdW5jdGlvbiBnZXRBc3luYyh1cmwpIHsKKyAgICBpZiAoIXRyLmlzSGVhZGxlc3MpCisgICAgICByZXR1cm4gZ2V0KHVybCwgdHJ1ZSk7CisgICAgdmFyIGZpbGVuYW1lID0gZ2xvYmFsLmhyZWZUb0Fic29sdXRlUGF0aCh1cmwpOworICAgIHZhciBpc0JpbmFyeSA9IGd1ZXNzQmluYXJ5KHVybCk7CisgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICBpZiAoaXNCaW5hcnkpCisgICAgICAgIHJldHVybiByZWFkYnVmZmVyKGZpbGVuYW1lKTsKKyAgICAgIHJldHVybiByZWFkKGZpbGVuYW1lKTsKKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGdldFN5bmModXJsKSB7CisgICAgaWYgKCF0ci5pc0hlYWRsZXNzKQorICAgICAgcmV0dXJuIGdldCh1cmwsIGZhbHNlKTsKKyAgICB2YXIgZmlsZW5hbWUgPSBnbG9iYWwuaHJlZlRvQWJzb2x1dGVQYXRoKHVybCk7CisgICAgdmFyIGlzQmluYXJ5ID0gZ3Vlc3NCaW5hcnkodXJsKTsKKyAgICBpZiAoaXNCaW5hcnkpCisgICAgICByZXR1cm4gcmVhZGJ1ZmZlcihmaWxlbmFtZSk7CisgICAgcmV0dXJuIHJlYWQoZmlsZW5hbWUpOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBnZXRBc3luYzogZ2V0QXN5bmMsCisgICAgZ2V0U3luYzogZ2V0U3luYworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9hdWRpdG9yLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvYXVkaXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NzU5NTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvYXVkaXRvci5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IEJhc2UgY2xhc3MgZm9yIGF1ZGl0b3JzLgorICovCit0ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBBdWRpdG9yKG1vZGVsKSB7CisgICAgdGhpcy5tb2RlbF8gPSBtb2RlbDsKKyAgfQorCisgIEF1ZGl0b3IucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBNb2RlbCBhZnRlciBiYWtpbmcgc2xpY2VzLiBNYXkgbW9kaWZ5IG1vZGVsLgorICAgICAqLworICAgIHJ1bkFubm90YXRlOiBmdW5jdGlvbigpIHsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBNb2RlbCBhZnRlciBpbXBvcnRpbmcuIFNob3VsZCBub3QgbW9kaWZ5IG1vZGVsLCBleGNlcHQKKyAgICAgKiBmb3IgYWRkaW5nIGludGVyYWN0aW9uIHJhbmdlcyBhbmQgYXVkaXRzLgorICAgICAqLworICAgIHJ1bkF1ZGl0OiBmdW5jdGlvbigpIHsKKyAgICB9CisgIH07CisKKyAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi5CQVNJQ19SRUdJU1RSWV9NT0RFKTsKKyAgb3B0aW9ucy5kZWZhdWx0TWV0YWRhdGEgPSB7fTsKKyAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBBdWRpdG9yOworICB0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoQXVkaXRvciwgb3B0aW9ucyk7CisKKyAgcmV0dXJuIHsKKyAgICBBdWRpdG9yOiBBdWRpdG9yCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL2JydXNoaW5nX3N0YXRlX2NvbnRyb2xsZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9icnVzaGluZ19zdGF0ZV9jb250cm9sbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I1MzQ5NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9icnVzaGluZ19zdGF0ZV9jb250cm9sbGVyLmh0bWwKQEAgLTAsMCArMSwzMDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvYnJ1c2hpbmdfc3RhdGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpX3N0YXRlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEJydXNoaW5nU3RhdGUgPSB0ci51aS5iLkJydXNoaW5nU3RhdGU7CisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKKyAgdmFyIFZpZXdwb3J0ID0gdHIudWkuVGltZWxpbmVWaWV3cG9ydDsKKworICBmdW5jdGlvbiBCcnVzaGluZ1N0YXRlQ29udHJvbGxlcih0aW1lbGluZVZpZXcpIHsKKyAgICB0ci5iLkV2ZW50VGFyZ2V0LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLnRpbWVsaW5lVmlld18gPSB0aW1lbGluZVZpZXc7CisgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8gPSBuZXcgQnJ1c2hpbmdTdGF0ZSgpOworCisgICAgdGhpcy5vblBvcFN0YXRlXyA9IHRoaXMub25Qb3BTdGF0ZV8uYmluZCh0aGlzKTsKKyAgICB0aGlzLmhpc3RvcnlFbmFibGVkXyA9IGZhbHNlOworICAgIHRoaXMuc2VsZWN0aW9uc18gPSB7fTsKKyAgfQorCisgIEJydXNoaW5nU3RhdGVDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlLAorCisgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudF86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgnY2hhbmdlJywgZmFsc2UsIGZhbHNlKTsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChlKTsKKyAgICB9LAorCisgICAgZ2V0IG1vZGVsKCkgeworICAgICAgaWYgKCF0aGlzLnRpbWVsaW5lVmlld18pCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdGhpcy50aW1lbGluZVZpZXdfLm1vZGVsOworICAgIH0sCisKKyAgICBnZXQgdHJhY2tWaWV3KCkgeworICAgICAgaWYgKCF0aGlzLnRpbWVsaW5lVmlld18pCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdGhpcy50aW1lbGluZVZpZXdfLnRyYWNrVmlldzsKKyAgICB9LAorCisgICAgZ2V0IHZpZXdwb3J0KCkgeworICAgICAgaWYgKCF0aGlzLnRpbWVsaW5lVmlld18pCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICBpZiAoIXRoaXMudGltZWxpbmVWaWV3Xy50cmFja1ZpZXcpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdGhpcy50aW1lbGluZVZpZXdfLnRyYWNrVmlldy52aWV3cG9ydDsKKyAgICB9LAorCisgICAgLyogSGlzdG9yeSBzeXN0ZW0gKi8KKyAgICBnZXQgaGlzdG9yeUVuYWJsZWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5oaXN0b3J5RW5hYmxlZF87CisgICAgfSwKKworICAgIHNldCBoaXN0b3J5RW5hYmxlZChoaXN0b3J5RW5hYmxlZCkgeworICAgICAgdGhpcy5oaXN0b3J5RW5hYmxlZF8gPSAhIWhpc3RvcnlFbmFibGVkOworICAgICAgaWYgKGhpc3RvcnlFbmFibGVkKQorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLm9uUG9wU3RhdGVfKTsKKyAgICAgIGVsc2UKKyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5vblBvcFN0YXRlXyk7CisgICAgfSwKKworICAgIG1vZGVsV2lsbENoYW5nZTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uaXNBcHBsaWVkVG9Nb2RlbCkKKyAgICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8udW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlKCk7CisgICAgfSwKKworICAgIG1vZGVsRGlkQ2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uc18gPSB7fTsKKworICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8gPSBuZXcgQnJ1c2hpbmdTdGF0ZSgpOworICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGUodGhpcy5tb2RlbCk7CisKKyAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ21vZGVsLWNoYW5nZWQnLCBmYWxzZSwgZmFsc2UpOworICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOworCisgICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnRfKCk7CisgICAgfSwKKworICAgIG9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uOworICAgICAgaWYgKHRoaXMuaGlzdG9yeUVuYWJsZWQpIHsKKyAgICAgICAgLy8gU2F2ZSB0aGUgc2VsZWN0aW9uIHNvIHRoYXQgd2hlbiBiYWNrIGJ1dHRvbiBpcyBwcmVzc2VkLAorICAgICAgICAvLyBpdCBjb3VsZCBiZSByZXRyaWV2ZWQuCisgICAgICAgIHRoaXMuc2VsZWN0aW9uc19bc2VsZWN0aW9uLmd1aWRdID0gc2VsZWN0aW9uOworICAgICAgICB2YXIgc3RhdGUgPSB7CisgICAgICAgICAgc2VsZWN0aW9uX2d1aWQ6IHNlbGVjdGlvbi5ndWlkCisgICAgICAgIH07CisKKyAgICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHN0YXRlLCBkb2N1bWVudC50aXRsZSk7CisgICAgICB9CisgICAgfSwKKworICAgIG9uUG9wU3RhdGVfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoZS5zdGF0ZSA9PT0gbnVsbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb25zX1tlLnN0YXRlLnNlbGVjdGlvbl9ndWlkXTsKKyAgICAgIGlmIChzZWxlY3Rpb24pIHsKKyAgICAgICAgdmFyIG5ld1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKKyAgICAgICAgbmV3U3RhdGUuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3U3RhdGU7CisgICAgICB9CisgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLnNlbGVjdGlvbjsKKyAgICB9LAorICAgIGdldCBmaW5kTWF0Y2hlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5maW5kTWF0Y2hlczsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbk9mSW50ZXJlc3QoKSB7CisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uc2VsZWN0aW9uT2ZJbnRlcmVzdDsKKyAgICB9LAorCisgICAgZ2V0IGN1cnJlbnRCcnVzaGluZ1N0YXRlKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfOworICAgIH0sCisKKyAgICBzZXQgY3VycmVudEJydXNoaW5nU3RhdGUobmV3QnJ1c2hpbmdTdGF0ZSkgeworICAgICAgaWYgKG5ld0JydXNoaW5nU3RhdGUuaXNBcHBsaWVkVG9Nb2RlbCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYXBwbHkgdGhpcyBzdGF0ZSwgaXQgaXMgYXBwbGllZCcpOworCisgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHVzZXMgdmFsdWUtZXF1YWxpdHkgb24gdGhlIHN0YXRlcyBzbyB0aGF0IHN0YXRlIGNhbgorICAgICAgLy8gY2hhbmdlZCB0byBhIGNsb25lIG9mIGl0c2VsZiB3aXRob3V0IGNhdXNpbmcgYSBjaGFuZ2UgZXZlbnQsIHdoaWxlCisgICAgICAvLyBzdGlsbCBoYXZpbmcgdGhlIGFjdHVhbCBzdGF0ZSBvYmplY3QgY2hhbmdlIHRvIHRoZSBuZXcgY2xvbmUuCisgICAgICB2YXIgaGFzVmFsdWVDaGFuZ2VkID0gIXRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmVxdWFscygKKyAgICAgICAgICBuZXdCcnVzaGluZ1N0YXRlKTsKKworICAgICAgaWYgKG5ld0JydXNoaW5nU3RhdGUgIT09IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfICYmICFoYXNWYWx1ZUNoYW5nZWQpIHsKKyAgICAgICAgaWYgKHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmlzQXBwbGllZFRvTW9kZWwpIHsKKyAgICAgICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy50cmFuc2Zlck1vZGVsT3duZXJzaGlwVG9DbG9uZSgKKyAgICAgICAgICAgICAgbmV3QnJ1c2hpbmdTdGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8gPSBuZXdCcnVzaGluZ1N0YXRlOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlmICh0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5pc0FwcGxpZWRUb01vZGVsKQorICAgICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy51bmFwcGx5RnJvbU1vZGVsU2VsZWN0aW9uU3RhdGUoKTsKKworICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8gPSBuZXdCcnVzaGluZ1N0YXRlOworCisgICAgICBpZiAodGhpcy5tb2RlbCkKKyAgICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGUodGhpcy5tb2RlbCk7CisKKyAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2VFdmVudF8oKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtGaWx0ZXJ9IGZpbHRlciBUaGUgZmlsdGVyIHRvIHVzZSBmb3IgZmluZGluZyBtYXRjaGVzLgorICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gVGhlIHNlbGVjdGlvbiB0byBhZGQgbWF0Y2hlcyB0by4KKyAgICAgKiBAcmV0dXJuIHtUYXNrfSB3aGljaCBwZXJmb3JtcyB0aGUgZmlsdGVyaW5nLgorICAgICAqLworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgICB2YXIgdGltZWxpbmVWaWV3ID0gdGhpcy50aW1lbGluZVZpZXdfLnRyYWNrVmlldzsKKyAgICAgIGlmICghdGltZWxpbmVWaWV3KQorICAgICAgICByZXR1cm4gbmV3IHRyLmIuVGFzaygpOworICAgICAgcmV0dXJuIHRpbWVsaW5lVmlldy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrKAorICAgICAgICAgIGZpbHRlciwgc2VsZWN0aW9uKTsKKyAgICB9LAorCisgICAgZmluZFRleHRDaGFuZ2VkVG86IGZ1bmN0aW9uKGFsbFBvc3NpYmxlTWF0Y2hlcykgeworICAgICAgdmFyIG5ld0JydXNoaW5nU3RhdGUgPSB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpOworICAgICAgbmV3QnJ1c2hpbmdTdGF0ZS5maW5kTWF0Y2hlcyA9IGFsbFBvc3NpYmxlTWF0Y2hlczsKKyAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGUgPSBuZXdCcnVzaGluZ1N0YXRlOworICAgIH0sCisKKyAgICBmaW5kRm9jdXNDaGFuZ2VkVG86IGZ1bmN0aW9uKGN1cnJlbnRGb2N1cykgeworICAgICAgdmFyIG5ld0JydXNoaW5nU3RhdGUgPSB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpOworICAgICAgbmV3QnJ1c2hpbmdTdGF0ZS5zZWxlY3Rpb24gPSBjdXJyZW50Rm9jdXM7CisgICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3QnJ1c2hpbmdTdGF0ZTsKKworICAgICAgdGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7CisgICAgfSwKKworICAgIGZpbmRUZXh0Q2xlYXJlZDogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy54TmF2U3RyaW5nTWFya2VyXyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMubW9kZWwucmVtb3ZlQW5ub3RhdGlvbih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKTsKKyAgICAgICAgdGhpcy54TmF2U3RyaW5nTWFya2VyXyA9IHVuZGVmaW5lZDsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8gIT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLm1vZGVsLnJlbW92ZUFubm90YXRpb24odGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXyk7CisgICAgICAgIHRoaXMuZ3VpZGVMaW5lQW5ub3RhdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgICB9CisKKyAgICAgIHZhciBuZXdCcnVzaGluZ1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKKyAgICAgIG5ld0JydXNoaW5nU3RhdGUuc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgICBuZXdCcnVzaGluZ1N0YXRlLmZpbmRNYXRjaGVzID0gbmV3IEV2ZW50U2V0KCk7CisgICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3QnJ1c2hpbmdTdGF0ZTsKKworICAgICAgdGhpcy5vblVzZXJJbml0aWF0ZWRTZWxlY3Rpb25DaGFuZ2VfKCk7CisgICAgfSwKKworICAgIHVpU3RhdGVGcm9tU3RyaW5nOiBmdW5jdGlvbihzdHJpbmcpIHsKKyAgICAgIHJldHVybiB0ci51aS5iLlVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZygKKyAgICAgICAgICB0aGlzLm1vZGVsLCB0aGlzLnZpZXdwb3J0LCBzdHJpbmcpOworICAgIH0sCisKKyAgICBuYXZUb1Bvc2l0aW9uOiBmdW5jdGlvbih1aVN0YXRlLCBzaG93TmF2TGluZSkgeworICAgICAgdGhpcy50cmFja1ZpZXcubmF2VG9Qb3NpdGlvbih1aVN0YXRlLCBzaG93TmF2TGluZSk7CisgICAgfSwKKworICAgIGNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZTogZnVuY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB2YXIgbmV3QnJ1c2hpbmdTdGF0ZSA9IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7CisgICAgICBuZXdCcnVzaGluZ1N0YXRlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgIG5ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXMgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGUgPSBuZXdCcnVzaGluZ1N0YXRlOworCisgICAgICB0aGlzLm9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV8oKTsKKyAgICB9LAorCisgICAgc2hvd1NjcmlwdENvbnRyb2xTZWxlY3Rpb246IGZ1bmN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdmFyIG5ld0JydXNoaW5nU3RhdGUgPSB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy5jbG9uZSgpOworICAgICAgbmV3QnJ1c2hpbmdTdGF0ZS5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgICBuZXdCcnVzaGluZ1N0YXRlLmZpbmRNYXRjaGVzID0gbmV3IEV2ZW50U2V0KCk7CisgICAgICB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gbmV3QnJ1c2hpbmdTdGF0ZTsKKyAgICB9LAorCisgICAgY2hhbmdlU2VsZWN0aW9uRnJvbVJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudDogZnVuY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB2YXIgbmV3QnJ1c2hpbmdTdGF0ZSA9IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7CisgICAgICBuZXdCcnVzaGluZ1N0YXRlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgIG5ld0JydXNoaW5nU3RhdGUuZmluZE1hdGNoZXMgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGUgPSBuZXdCcnVzaGluZ1N0YXRlOworCisgICAgICB0aGlzLm9uVXNlckluaXRpYXRlZFNlbGVjdGlvbkNoYW5nZV8oKTsKKyAgICB9LAorCisgICAgY2hhbmdlQW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50czogZnVuY3Rpb24oZXZlbnRTZXQpIHsKKyAgICAgIHZhciBuZXdCcnVzaGluZ1N0YXRlID0gdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZV8uY2xvbmUoKTsKKyAgICAgIG5ld0JydXNoaW5nU3RhdGUuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50cyA9IGV2ZW50U2V0OworICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IG5ld0JydXNoaW5nU3RhdGU7CisgICAgfSwKKworICAgIGNoYW5nZUFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHM6IGZ1bmN0aW9uKGV2ZW50U2V0KSB7CisgICAgICB2YXIgbmV3QnJ1c2hpbmdTdGF0ZSA9IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7CisgICAgICBuZXdCcnVzaGluZ1N0YXRlLmFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHMgPSBldmVudFNldDsKKyAgICAgIHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGUgPSBuZXdCcnVzaGluZ1N0YXRlOworICAgIH0sCisKKyAgICBnZXRWaWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlOiBmdW5jdGlvbih2aWV3SWQpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlLnZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGVzW3ZpZXdJZF07CisgICAgfSwKKworICAgIGNoYW5nZVZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGU6IGZ1bmN0aW9uKHZpZXdJZCwgbmV3U3RhdGUpIHsKKyAgICAgIHZhciBvbGRTdGF0ZXMgPSB0aGlzLmN1cnJlbnRCcnVzaGluZ1N0YXRlXy52aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlczsKKyAgICAgIHZhciBuZXdTdGF0ZXMgPSB7fTsKKyAgICAgIGZvciAodmFyIGlkIGluIG9sZFN0YXRlcykKKyAgICAgICAgbmV3U3RhdGVzW2lkXSA9IG9sZFN0YXRlc1tpZF07CisgICAgICBpZiAobmV3U3RhdGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgZGVsZXRlIG5ld1N0YXRlc1t2aWV3SWRdOworICAgICAgZWxzZQorICAgICAgICBuZXdTdGF0ZXNbdmlld0lkXSA9IG5ld1N0YXRlOworCisgICAgICB2YXIgbmV3QnJ1c2hpbmdTdGF0ZSA9IHRoaXMuY3VycmVudEJydXNoaW5nU3RhdGVfLmNsb25lKCk7CisgICAgICBuZXdCcnVzaGluZ1N0YXRlLnZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGVzID0gbmV3U3RhdGVzOworICAgICAgdGhpcy5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IG5ld0JydXNoaW5nU3RhdGU7CisgICAgfQorICB9OworCisgIEJydXNoaW5nU3RhdGVDb250cm9sbGVyLmdldENvbnRyb2xsZXJGb3JFbGVtZW50ID0gZnVuY3Rpb24oZWxlbWVudCkgeworICAgIGlmICh0ci5pc0hlYWRsZXNzKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCcpOworICAgIHZhciBjdXJyZW50RWxlbWVudCA9IGVsZW1lbnQ7CisgICAgd2hpbGUgKGN1cnJlbnRFbGVtZW50KSB7CisgICAgICBpZiAoY3VycmVudEVsZW1lbnQuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBjdXJyZW50RWxlbWVudC5icnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKworICAgICAgLy8gV2FsayB1cCB0aGUgRE9NLgorICAgICAgaWYgKGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQpIHsKKyAgICAgICAgY3VycmVudEVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50OworICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKworICAgICAgLy8gUG9zc2libHkgaW5zaWRlIGEgc2hhZG93IERPTS4KKyAgICAgIHZhciBjdXJyZW50Tm9kZSA9IGN1cnJlbnRFbGVtZW50OworICAgICAgd2hpbGUgKGN1cnJlbnROb2RlLnBhcmVudE5vZGUpCisgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTsKKyAgICAgIGN1cnJlbnRFbGVtZW50ID0gY3VycmVudE5vZGUuaG9zdDsKKyAgICB9CisgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgfTsKKworICByZXR1cm4geworICAgIEJydXNoaW5nU3RhdGVDb250cm9sbGVyOiBCcnVzaGluZ1N0YXRlQ29udHJvbGxlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9icnVzaGluZ19zdGF0ZV9jb250cm9sbGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9icnVzaGluZ19zdGF0ZV9jb250cm9sbGVyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDFhYzdkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL2JydXNoaW5nX3N0YXRlX2NvbnRyb2xsZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYnJ1c2hpbmdfc3RhdGVfY29udHJvbGxlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7CisKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOworICB2YXIgVGFzayA9IHRyLmIuVGFzazsKKworICBmdW5jdGlvbiBuZXdTaW1wbGVGYWtlVGltZWxpbmVWaWV3KCkgeworICAgIHZhciBtID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKKyAgICAgIG0ucDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIG0udDIgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworCisgICAgICBtLnNBID0gbS50Mi5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiA1fSkpOworICAgICAgbS5zQiA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDEwLCBlbmQ6IDE1fSkpOworICAgICAgbS5zQyA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdjJywgc3RhcnQ6IDIwLCBlbmQ6IDIwfSkpOworICAgIH0pOworCisgICAgLy8gRmFrZSB0aW1lbGluZSB2aWV3LiBTbyBmYWtlIGl0cyAuLi4ganVzdCB3b3cuCisgICAgdmFyIHRpbWVsaW5lVmlldyA9IHsKKyAgICAgIG1vZGVsOiBtCisgICAgfTsKKyAgICByZXR1cm4gdGltZWxpbmVWaWV3OworICB9CisKKyAgZnVuY3Rpb24gZG9lc0NhdXNlQ2hhbmdlVG9GaXJlKGJydXNoaW5nU3RhdGVDb250cm9sbGVyLCBjYiwgb3B0X3RoaXMpIHsKKyAgICB2YXIgZGlkRmlyZSA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGRpZEZpcmVDYigpIHsKKyAgICAgIGRpZEZpcmUgPSB0cnVlOworICAgIH07CisgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZGlkRmlyZUNiKTsKKyAgICBjYi5jYWxsKG9wdF90aGlzKTsKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBkaWRGaXJlQ2IpOworICAgIHJldHVybiBkaWRGaXJlOworICB9CisKKyAgdGVzdCgnc2ltcGxlU3RhdGVDaGFuZ2VzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRpbWVsaW5lVmlldyA9IG5ld1NpbXBsZUZha2VUaW1lbGluZVZpZXcoKTsKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPQorICAgICAgICBuZXcgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcih0aW1lbGluZVZpZXcpOworICAgIHZhciBtID0gdGltZWxpbmVWaWV3Lm1vZGVsOworCisgICAgLy8gU2V0dGluZyBlbXB0eSBicnVzaGluZyBzdGF0ZSBkb2Vzbid0IGNhdXNlIGNoYW5nZSBldmVudC4gVGhpcyBiZWhhdmlvcgorICAgIC8vIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHRyaWVzIHRvIHNlYXJjaCBmb3Igc29tZXRoaW5nIHdoZW4gbm8gdHJhY2UKKyAgICAvLyBoYXMgYmVlbiBsb2FkZWQgeWV0IGluIGNocm9tZTovL3RyYWNpbmcuCisgICAgdmFyIGJzMCA9IG5ldyB0ci51aS5iLkJydXNoaW5nU3RhdGUoKTsKKyAgICBhc3NlcnQuaXNGYWxzZShkb2VzQ2F1c2VDaGFuZ2VUb0ZpcmUoCisgICAgICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IGJzMDsKKyAgICAgICAgfSkpOworICAgIGFzc2VydC5pc0ZhbHNlKGJzMC5pc0FwcGxpZWRUb01vZGVsKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuY3VycmVudEJydXNoaW5nU3RhdGUsIGJzMCk7CisKKyAgICAvLyBTZXR0aW5nIGNhdXNlcyBjaGFuZ2UuCisgICAgdmFyIGJzMSA9IG5ldyB0ci51aS5iLkJydXNoaW5nU3RhdGUoKTsKKyAgICBiczEuc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KFttLnNBXSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkb2VzQ2F1c2VDaGFuZ2VUb0ZpcmUoCisgICAgICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IGJzMTsKKyAgICAgICAgfSkpOworICAgIGFzc2VydC5pc1RydWUoYnMxLmlzQXBwbGllZFRvTW9kZWwpOworCisgICAgLy8gU2V0dGluZyB2YWx1ZSBlcXVpdmFsZW50IGRvZXNuJ3QgY2F1c2UgY2hhbmdlIGV2ZW50LgorICAgIHZhciBiczIgPSBiczEuY2xvbmUoKTsKKyAgICBhc3NlcnQuaXNGYWxzZShkb2VzQ2F1c2VDaGFuZ2VUb0ZpcmUoCisgICAgICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZSA9IGJzMjsKKyAgICAgICAgfSkpOworICAgIGFzc2VydC5lcXVhbChicnVzaGluZ1N0YXRlQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZSwgYnMyKTsKKyAgICBhc3NlcnQuaXNUcnVlKAorICAgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5jdXJyZW50QnJ1c2hpbmdTdGF0ZS5pc0FwcGxpZWRUb01vZGVsKTsKKworICAgIC8vIFNldHRpbmcgdG8gc29tZXRoaW5nIGRpZmZlcmVudCB1bmFwcGxpZXMgdGhlIG9sZCBicy4KKyAgICB2YXIgYnMzID0gbmV3IHRyLnVpLmIuQnJ1c2hpbmdTdGF0ZSgpOworICAgIGJzMy5maW5kTWF0Y2hlcyA9IG5ldyBFdmVudFNldChbbS5zQSwgbS5zQl0pOworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmN1cnJlbnRCcnVzaGluZ1N0YXRlID0gYnMzOworICAgIGFzc2VydC5pc1RydWUoYnMzLmlzQXBwbGllZFRvTW9kZWwpOworICAgIGFzc2VydC5pc0ZhbHNlKGJzMi5pc0FwcGxpZWRUb01vZGVsKTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZWxDYXVzZXNTdGF0ZUNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0aW1lbGluZVZpZXcgPSBuZXdTaW1wbGVGYWtlVGltZWxpbmVWaWV3KCk7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0KKyAgICAgICAgbmV3IHRyLmMuQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIodGltZWxpbmVWaWV3KTsKKworICAgIHZhciBtMSA9IHRpbWVsaW5lVmlldy5tb2RlbDsKKworICAgIHZhciBiczEgPSBuZXcgdHIudWkuYi5CcnVzaGluZ1N0YXRlKCk7CisgICAgYnMxLnNlbGVjdGlvbiA9IG5ldyBFdmVudFNldChbbTEuc0FdKTsKKworICAgIC8vIENoYW5nZSB0aGUgbW9kZWwuCisgICAgdmFyIG0yID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKKyAgICAgIG0ucDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIG0udDIgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworCisgICAgICBtLnNBID0gbS50Mi5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiA1fSkpOworICAgIH0pOworICAgIGFzc2VydC5pc1RydWUoZG9lc0NhdXNlQ2hhbmdlVG9GaXJlKAorICAgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlciwKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIubW9kZWxXaWxsQ2hhbmdlKCk7CisgICAgICAgICAgdGltZWxpbmVWaWV3Lm1vZGVsID0gbTI7CisgICAgICAgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIubW9kZWxEaWRDaGFuZ2UoKTsKKyAgICAgICAgfSkpOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuY3VycmVudEJydXNoaW5nU3RhdGUuc2VsZWN0aW9uLmxlbmd0aCwgMCk7CisgIH0pOworCisgIGZ1bmN0aW9uIGFkZENoaWxkRGl2KGVsZW1lbnQpIHsKKyAgICB2YXIgY2hpbGQgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgcmV0dXJuIGNoaWxkOworICB9CisKKyAgZnVuY3Rpb24gYWRkU2hhZG93Q2hpbGREaXYoZWxlbWVudCkgeworICAgIHZhciBzaGFkb3dSb290ID0gZWxlbWVudC5jcmVhdGVTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIGFkZENoaWxkRGl2KHNoYWRvd1Jvb3QpOworICB9CisKKyAgaWYgKCF0ci5pc0hlYWRsZXNzKSB7CisgICAgdGVzdCgnZ2V0Q29udHJvbGxlckZvckVsZW1lbnRfbm9uZScsIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAorICAgICAgICAgIHRyLmMuQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuZ2V0Q29udHJvbGxlckZvckVsZW1lbnQoZWxlbWVudCkpOworICAgIH0pOworCisgICAgdGVzdCgnZ2V0Q29udHJvbGxlckZvckVsZW1lbnRfc2VsZicsIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcih1bmRlZmluZWQpOworICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIGVsZW1lbnQuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyOworCisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoCisgICAgICAgICAgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRDb250cm9sbGVyRm9yRWxlbWVudChlbGVtZW50KSwKKyAgICAgICAgICBjb250cm9sbGVyKTsKKyAgICB9KTsKKworICAgIHRlc3QoJ2dldENvbnRyb2xsZXJGb3JFbGVtZW50X2FuY2VzdG9yJywgZnVuY3Rpb24oKSB7CisgICAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5jLkJydXNoaW5nU3RhdGVDb250cm9sbGVyKHVuZGVmaW5lZCk7CisgICAgICB2YXIgYW5jZXN0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIGFuY2VzdG9yLmJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gY29udHJvbGxlcjsKKworICAgICAgdmFyIGVsZW1lbnQgPSBhZGRDaGlsZERpdihhZGRDaGlsZERpdihhZGRDaGlsZERpdihhbmNlc3RvcikpKTsKKyAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCgKKyAgICAgICAgICB0ci5jLkJydXNoaW5nU3RhdGVDb250cm9sbGVyLmdldENvbnRyb2xsZXJGb3JFbGVtZW50KGVsZW1lbnQpLAorICAgICAgICAgIGNvbnRyb2xsZXIpOworICAgIH0pOworCisgICAgdGVzdCgnZ2V0Q29udHJvbGxlckZvckVsZW1lbnRfaG9zdCcsIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcih1bmRlZmluZWQpOworICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIGhvc3QuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyOworCisgICAgICB2YXIgZWxlbWVudCA9IGFkZFNoYWRvd0NoaWxkRGl2KGhvc3QpOworICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKAorICAgICAgICAgIHRyLmMuQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuZ2V0Q29udHJvbGxlckZvckVsZW1lbnQoZWxlbWVudCksCisgICAgICAgICAgY29udHJvbGxlcik7CisgICAgfSk7CisKKyAgICB0ZXN0KCdnZXRDb250cm9sbGVyRm9yRWxlbWVudF9oaWVyYXJjaHknLCBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBjb250cm9sbGVyMSA9IG5ldyB0ci5jLkJydXNoaW5nU3RhdGVDb250cm9sbGVyKHVuZGVmaW5lZCk7CisgICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgcm9vdC5icnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IGNvbnRyb2xsZXIxOworCisgICAgICB2YXIgY29udHJvbGxlcjIgPSBuZXcgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcih1bmRlZmluZWQpOworICAgICAgdmFyIGNoaWxkID0gYWRkQ2hpbGREaXYocm9vdCk7CisgICAgICBjaGlsZC5icnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IGNvbnRyb2xsZXIyOworCisgICAgICB2YXIgY29udHJvbGxlcjMgPSBuZXcgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcih1bmRlZmluZWQpOworICAgICAgdmFyIHNoYWRvd0NoaWxkID0gYWRkU2hhZG93Q2hpbGREaXYoY2hpbGQpOworICAgICAgc2hhZG93Q2hpbGQuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyMzsKKworICAgICAgdmFyIGVsZW1lbnQgPSBhZGRDaGlsZERpdihhZGRDaGlsZERpdihhZGRTaGFkb3dDaGlsZERpdigKKyAgICAgICAgICBhZGRDaGlsZERpdihhZGRDaGlsZERpdihhZGRTaGFkb3dDaGlsZERpdigKKyAgICAgICAgICAgICAgYWRkQ2hpbGREaXYoc2hhZG93Q2hpbGQpKSkpKSkpOworICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKAorICAgICAgICAgIHRyLmMuQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuZ2V0Q29udHJvbGxlckZvckVsZW1lbnQoZWxlbWVudCksCisgICAgICAgICAgY29udHJvbGxlcjMpOworICAgIH0pOworICB9Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL2NvbnN0YW50cy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL2NvbnN0YW50cy5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvY29uc3RhbnRzLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9jb25zdGFudHMuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL2ZpbHRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL2ZpbHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2OTRlOWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvZmlsdGVyLmh0bWwKQEAgLTAsMCArMSwxMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBtYWtlQ2FzZUluc2Vuc2l0aXZlUmVnZXgocGF0dGVybikgeworICAgIC8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9KYXZhU2NyaXB0L0d1aWRlLworICAgIC8vIFJlZ3VsYXJfRXhwcmVzc2lvbnMuCisgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csICdcXCQmJyk7CisgICAgcmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgJ2knKTsKKyAgfQorCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IgVGhlIGdlbmVyaWMgYmFzZSBjbGFzcyBmb3IgZmlsdGVyaW5nIGEgTW9kZWwgYmFzZWQgb24KKyAgICogdmFyaW91cyBydWxlcy4gVGhlIGJhc2UgY2xhc3MgcmV0dXJucyB0cnVlIGZvciBldmVyeXRoaW5nLgorICAgKi8KKyAgZnVuY3Rpb24gRmlsdGVyKCkgeyB9CisKKyAgRmlsdGVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IE9iamVjdC5wcm90b3R5cGUsCisKKyAgICBtYXRjaENvdW50ZXI6IGZ1bmN0aW9uKGNvdW50ZXIpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBtYXRjaENwdTogZnVuY3Rpb24oY3B1KSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgbWF0Y2hQcm9jZXNzOiBmdW5jdGlvbihwcm9jZXNzKSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgbWF0Y2hTbGljZTogZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBtYXRjaFRocmVhZDogZnVuY3Rpb24odGhyZWFkKSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvciBBIGZpbHRlciB0aGF0IG1hdGNoZXMgb2JqZWN0cyBieSB0aGVpciBuYW1lIG9yIGNhdGVnb3J5CisgICAqIGNhc2UgaW5zZW5zaXRpdmUuCisgICAqIC5maW5kQWxsT2JqZWN0c01hdGNoaW5nRmlsdGVyCisgICAqLworICBmdW5jdGlvbiBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIodGV4dCkgeworICAgIEZpbHRlci5jYWxsKHRoaXMpOworICAgIHRoaXMucmVnZXhfID0gbWFrZUNhc2VJbnNlbnNpdGl2ZVJlZ2V4KHRleHQpOworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignRmlsdGVyIHRleHQgaXMgZW1wdHkuJyk7CisgIH0KKyAgVGl0bGVPckNhdGVnb3J5RmlsdGVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEZpbHRlci5wcm90b3R5cGUsCisKKyAgICBtYXRjaFNsaWNlOiBmdW5jdGlvbihzbGljZSkgeworICAgICAgaWYgKHNsaWNlLnRpdGxlID09PSB1bmRlZmluZWQgJiYgc2xpY2UuY2F0ZWdvcnkgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICByZXR1cm4gdGhpcy5yZWdleF8udGVzdChzbGljZS50aXRsZSkgfHwKKyAgICAgICAgICAoISFzbGljZS5jYXRlZ29yeSAmJiB0aGlzLnJlZ2V4Xy50ZXN0KHNsaWNlLmNhdGVnb3J5KSk7CisgICAgfQorICB9OworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IgQSBmaWx0ZXIgdGhhdCBtYXRjaGVzIG9iamVjdHMgd2l0aCB0aGUgZXhhY3QgZ2l2ZW4gdGl0bGUuCisgICAqLworICBmdW5jdGlvbiBFeGFjdFRpdGxlRmlsdGVyKHRleHQpIHsKKyAgICBGaWx0ZXIuY2FsbCh0aGlzKTsKKyAgICB0aGlzLnRleHRfID0gdGV4dDsKKworICAgIGlmICghdGV4dC5sZW5ndGgpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbHRlciB0ZXh0IGlzIGVtcHR5LicpOworICB9CisgIEV4YWN0VGl0bGVGaWx0ZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogRmlsdGVyLnByb3RvdHlwZSwKKworICAgIG1hdGNoU2xpY2U6IGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICByZXR1cm4gc2xpY2UudGl0bGUgPT09IHRoaXMudGV4dF87CisgICAgfQorICB9OworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IgQSBmaWx0ZXIgdGhhdCBtYXRjaGVzIG9iamVjdHMgYnkgdGhlaXIgZnVsbCB0ZXh0IGNvbnRlbnRzCisgICAqICh0aXRsZSwgY2F0ZWdvcnksIGFyZ3MpLiBOb3RlIHRoYXQgZm9yIHBlcmZvcm1hbmNlIHRoaXMgZmlsdGVyIGFwcGxpZXMgYQorICAgKiByZWdleCBhZ2FpbnN0IGFsbCB0aGUga2V5cyBvZiB0aGUgc2xpY2UgYXJndW1lbnRzIGluc3RlYWQgb2YgcmVjdXJzaW5nCisgICAqIHRocm91Z2ggYW55IGVtYmVkZGVkIHN1Yi1vYmplY3RzLgorICAgKi8KKyAgZnVuY3Rpb24gRnVsbFRleHRGaWx0ZXIodGV4dCkgeworICAgIEZpbHRlci5jYWxsKHRoaXMpOworICAgIHRoaXMucmVnZXhfID0gbWFrZUNhc2VJbnNlbnNpdGl2ZVJlZ2V4KHRleHQpOworICAgIHRoaXMudGl0bGVPckNhdGVnb3J5RmlsdGVyXyA9IG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIodGV4dCk7CisgIH0KKyAgRnVsbFRleHRGaWx0ZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogRmlsdGVyLnByb3RvdHlwZSwKKworICAgIG1hdGNoT2JqZWN0XzogZnVuY3Rpb24ob2JqKSB7CisgICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7CisgICAgICAgIGlmICghb2JqLmhhc093blByb3BlcnR5KGtleSkpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICh0aGlzLnJlZ2V4Xy50ZXN0KGtleSkpCisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICh0aGlzLnJlZ2V4Xy50ZXN0KG9ialtrZXldKSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgbWF0Y2hTbGljZTogZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgIGlmICh0aGlzLnRpdGxlT3JDYXRlZ29yeUZpbHRlcl8ubWF0Y2hTbGljZShzbGljZSkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgcmV0dXJuIHRoaXMubWF0Y2hPYmplY3RfKHNsaWNlLmFyZ3MpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEZpbHRlcjogRmlsdGVyLAorICAgIFRpdGxlT3JDYXRlZ29yeUZpbHRlcjogVGl0bGVPckNhdGVnb3J5RmlsdGVyLAorICAgIEV4YWN0VGl0bGVGaWx0ZXI6IEV4YWN0VGl0bGVGaWx0ZXIsCisgICAgRnVsbFRleHRGaWx0ZXI6IEZ1bGxUZXh0RmlsdGVyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL2ZpbHRlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvZmlsdGVyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDQyZTMzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL2ZpbHRlcl90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHRlc3QuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgVGl0bGVPckNhdGVnb3J5RmlsdGVyID0gdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXI7CisgIHZhciBFeGFjdFRpdGxlRmlsdGVyID0gdHIuYy5FeGFjdFRpdGxlRmlsdGVyOworICB2YXIgRnVsbFRleHRGaWx0ZXIgPSB0ci5jLkZ1bGxUZXh0RmlsdGVyOworCisgIHRlc3QoJ3RpdGxlT3JDYXRlZ29yeUZpbHRlcicsIGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC50aHJvdyhmdW5jdGlvbigpIHsKKyAgICAgIG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoKTsKKyAgICB9KTsKKyAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7CisgICAgICBuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCcnKTsKKyAgICB9KTsKKworICAgIHZhciBzMCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUNhdGVnb3J5KCdjYXQnLCAnYScsIDEsIDMpOworICAgIGFzc2VydC5pc1RydWUobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignYScpLm1hdGNoU2xpY2UoczApKTsKKyAgICBhc3NlcnQuaXNUcnVlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2NhdCcpLm1hdGNoU2xpY2UoczApKTsKKyAgICBhc3NlcnQuaXNUcnVlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2F0JykubWF0Y2hTbGljZShzMCkpOworICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBUaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2InKS5tYXRjaFNsaWNlKHMwKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignWCcpLm1hdGNoU2xpY2UoczApKTsKKworICAgIHZhciBzMSA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUNhdGVnb3J5KCdjYXQnLCAnYWJjJywgMSwgMyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdhYmMnKS5tYXRjaFNsaWNlKHMxKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdBYmMnKS5tYXRjaFNsaWNlKHMxKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdjYXQnKS5tYXRjaFNsaWNlKHMxKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdDYXQnKS5tYXRjaFNsaWNlKHMxKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignY2F0MScpLm1hdGNoU2xpY2UoczEpKTsKKyAgICBhc3NlcnQuaXNGYWxzZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdYJykubWF0Y2hTbGljZShzMSkpOworICB9KTsKKworICB0ZXN0KCdleGFjdFRpdGxlRmlsdGVyJywgZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0LnRocm93KGZ1bmN0aW9uKCkgeworICAgICAgbmV3IEV4YWN0VGl0bGVGaWx0ZXIoKTsKKyAgICB9KTsKKyAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7CisgICAgICBuZXcgRXhhY3RUaXRsZUZpbHRlcignJyk7CisgICAgfSk7CisKKyAgICB2YXIgczAgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZCgnYScsIDEsIDMpOworICAgIGFzc2VydC5pc1RydWUobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ2EnKS5tYXRjaFNsaWNlKHMwKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ2InKS5tYXRjaFNsaWNlKHMwKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ0EnKS5tYXRjaFNsaWNlKHMwKSk7CisKKyAgICB2YXIgczEgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZCgnYWJjJywgMSwgMyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgRXhhY3RUaXRsZUZpbHRlcignYWJjJykubWF0Y2hTbGljZShzMSkpOworICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBFeGFjdFRpdGxlRmlsdGVyKCdBYmMnKS5tYXRjaFNsaWNlKHMxKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobmV3IEV4YWN0VGl0bGVGaWx0ZXIoJ2JjJykubWF0Y2hTbGljZShzMSkpOworICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBFeGFjdFRpdGxlRmlsdGVyKCdhJykubWF0Y2hTbGljZShzMSkpOworICB9KTsKKworICB0ZXN0KCdmdWxsVGV4dEZpbHRlcicsIGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC50aHJvdyhmdW5jdGlvbigpIHsKKyAgICAgIG5ldyBGdWxsVGV4dEZpbHRlcigpOworICAgIH0pOworICAgIGFzc2VydC50aHJvdyhmdW5jdGlvbigpIHsKKyAgICAgIG5ldyBGdWxsVGV4dEZpbHRlcignJyk7CisgICAgfSk7CisKKyAgICB2YXIgczAgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VDYXRlZ29yeSgnY2F0JywgJ2EnLCAxLCAzKTsKKyAgICBzMC5hcmdzWydrZXknXSA9ICd2YWx1ZSc7CisgICAgczAuYXJnc1snYW5vdGhlcktleSddID0gJ2Fub3RoZXJWYWx1ZSc7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgRnVsbFRleHRGaWx0ZXIoJ2NhdCcpLm1hdGNoU2xpY2UoczApKTsKKyAgICBhc3NlcnQuaXNUcnVlKG5ldyBGdWxsVGV4dEZpbHRlcignYScpLm1hdGNoU2xpY2UoczApKTsKKyAgICBhc3NlcnQuaXNUcnVlKG5ldyBGdWxsVGV4dEZpbHRlcigna2V5JykubWF0Y2hTbGljZShzMCkpOworICAgIGFzc2VydC5pc1RydWUobmV3IEZ1bGxUZXh0RmlsdGVyKCd2YWx1ZScpLm1hdGNoU2xpY2UoczApKTsKKyAgICBhc3NlcnQuaXNUcnVlKG5ldyBGdWxsVGV4dEZpbHRlcignYW5vdGhlclZhbHVlJykubWF0Y2hTbGljZShzMCkpOworICAgIGFzc2VydC5pc0ZhbHNlKG5ldyBGdWxsVGV4dEZpbHRlcignbm90IHRoZXJlJykubWF0Y2hTbGljZShzMCkpOworCisgICAgdmFyIHMxID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlQ2F0ZWdvcnkoJ2NhdCcsICdhJywgMSwgMyk7CisgICAgczEuYXJnc1sna2V5J10gPSAxMjM7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgRnVsbFRleHRGaWx0ZXIoJzEyMycpLm1hdGNoU2xpY2UoczEpKTsKKworICAgIHZhciBzMiA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUNhdGVnb3J5KCdjYXQnLCAnYScsIDEsIDMpOworICAgIHMyLmFyZ3NbJ2tleSddID0gWydpbm5lclZhbHVlMScsICdpbm5lclZhbHVlMiddOworICAgIGFzc2VydC5pc1RydWUobmV3IEZ1bGxUZXh0RmlsdGVyKCdpbm5lclZhbHVlMScpLm1hdGNoU2xpY2UoczIpKTsKKyAgICBhc3NlcnQuaXNUcnVlKG5ldyBGdWxsVGV4dEZpbHRlcignaW5uZXJWYWx1ZTInKS5tYXRjaFNsaWNlKHMyKSk7CisKKyAgICB2YXIgczMgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VDYXRlZ29yeSgnY2F0JywgJ2EnLCAxLCAzKTsKKyAgICBzMy5hcmdzWydrZXknXSA9IFsnb25lJywgJ3R3bycsICd0aHJlZSddOworICAgIGFzc2VydC5pc1RydWUobmV3IEZ1bGxUZXh0RmlsdGVyKCd0d28nKS5tYXRjaFNsaWNlKHMzKSk7CisKKyAgICB2YXIgczQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VDYXRlZ29yeSgnY2F0JywgJ2EnLCAxLCAzKTsKKyAgICBzNC5hcmdzWydrZXknXSA9IHVuZGVmaW5lZDsKKyAgICBhc3NlcnQuaXNGYWxzZShuZXcgRnVsbFRleHRGaWx0ZXIoJ25vdCB0aGVyZScpLm1hdGNoU2xpY2UoczQpKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvc2NyaXB0aW5nX2NvbnRyb2xsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTMyYmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9zY3JpcHRpbmdfb2JqZWN0Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuYycsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBTY3JpcHRpbmdDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKSB7CisgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8gPSBicnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKyAgICB0aGlzLnNjcmlwdE9iamVjdE5hbWVzXyA9IFtdOworICAgIHRoaXMuc2NyaXB0T2JqZWN0VmFsdWVzXyA9IFtdOworICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgJ21vZGVsLWNoYW5nZWQnLCB0aGlzLm9uTW9kZWxDaGFuZ2VkXy5iaW5kKHRoaXMpKTsKKworICAgIC8vIFJlZ2lzdGVyIGFsbCBzY3JpcHRpbmcgb2JqZWN0cy4KKyAgICB2YXIgdHlwZUluZm9zID0gU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnkuZ2V0QWxsUmVnaXN0ZXJlZFR5cGVJbmZvcygpOworICAgIHR5cGVJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKHR5cGVJbmZvKSB7CisgICAgICB0aGlzLmFkZFNjcmlwdE9iamVjdCh0eXBlSW5mby5tZXRhZGF0YS5uYW1lLCB0eXBlSW5mby5jb25zdHJ1Y3Rvcik7CisgICAgICAvLyBBbHNvIG1ha2UgdGhlIG9iamVjdCBhdmFpbGFibGUgdG8gdGhlIERldlRvb2xzIGluc3BlY3Rvci4KKyAgICAgIGdsb2JhbFt0eXBlSW5mby5tZXRhZGF0YS5uYW1lXSA9IHR5cGVJbmZvLmNvbnN0cnVjdG9yOworICAgIH0uYmluZCh0aGlzKSk7CisgIH0KKworICBmdW5jdGlvbiBTY3JpcHRpbmdPYmplY3RSZWdpc3RyeSgpIHsKKyAgfQorICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpOworICB0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnksIG9wdGlvbnMpOworCisgIFNjcmlwdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlID0geworICAgIGdldCBicnVzaGluZ1N0YXRlQ29udHJvbGxlcigpIHsKKyAgICAgIHJldHVybiB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXzsKKyAgICB9LAorCisgICAgb25Nb2RlbENoYW5nZWRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2NyaXB0T2JqZWN0VmFsdWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgaWYgKHYub25Nb2RlbENoYW5nZWQpCisgICAgICAgICAgdi5vbk1vZGVsQ2hhbmdlZCgpOworICAgICAgfSk7CisgICAgfSwKKworICAgIGFkZFNjcmlwdE9iamVjdDogZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKKyAgICAgIHRoaXMuc2NyaXB0T2JqZWN0TmFtZXNfLnB1c2gobmFtZSk7CisgICAgICB0aGlzLnNjcmlwdE9iamVjdFZhbHVlc18ucHVzaCh2YWx1ZSk7CisgICAgfSwKKworICAgIGV4ZWN1dGVDb21tYW5kOiBmdW5jdGlvbihjb21tYW5kKSB7CisgICAgICB2YXIgZiA9IG5ldyBGdW5jdGlvbigKKyAgICAgICAgICB0aGlzLnNjcmlwdE9iamVjdE5hbWVzXywgJ3JldHVybiBldmFsKCcgKyBjb21tYW5kICsgJyknKTsKKyAgICAgIHJldHVybiBmLmFwcGx5KG51bGwsIHRoaXMuc2NyaXB0T2JqZWN0VmFsdWVzXyk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgU2NyaXB0aW5nQ29udHJvbGxlcjogU2NyaXB0aW5nQ29udHJvbGxlciwKKyAgICBTY3JpcHRpbmdPYmplY3RSZWdpc3RyeTogU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnkKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvc2NyaXB0aW5nX2NvbnRyb2xsZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjBkZWI1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyX3Rlc3QuaHRtbApAQCAtMCwwICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpIHsKKyAgICB0ci5iLkV2ZW50VGFyZ2V0LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25SZXR1cm5WYWx1ZSA9IFtdOworCisgICAgdGhpcy52aWV3cG9ydCA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLm1vZGVsID0gdW5kZWZpbmVkOworICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgdGhpcy5oaWdobGlnaHQgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgfQorICBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIuYi5FdmVudFRhcmdldC5wcm90b3R5cGUKKyAgfTsKKworICB0ZXN0KCdzY3JpcHRpbmdDb250cm9sbGVyQmFzaWNBcml0aG1ldGljJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmMuU2NyaXB0aW5nQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcik7CisgICAgdmFyIHJlc3VsdCA9IGNvbnRyb2xsZXIuZXhlY3V0ZUNvbW1hbmQoJzEgKyAxJyk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdCwgMik7CisgIH0pOworCisgIHRlc3QoJ3NjcmlwdGluZ0NvbnRyb2xsZXJOb25Mb2NhbENvbnRleHQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBuZXcgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyKCk7CisgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5TY3JpcHRpbmdDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKyAgICB2YXIgeCA9IDE7CisgICAgY29udHJvbGxlci5leGVjdXRlQ29tbWFuZCgneCA9IDInKTsKKyAgICBhc3NlcnQuZXF1YWwoeCwgMSk7CisgIH0pOworCisgIHRlc3QoJ3NjcmlwdGluZ0NvbnRyb2xsZXJNb2RpZnlHbG9iYWxDb250ZXh0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmMuU2NyaXB0aW5nQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcik7CisgICAgZ2xvYmFsLl94ID0gMTsKKyAgICBjb250cm9sbGVyLmV4ZWN1dGVDb21tYW5kKCdfeCA9IDInKTsKKyAgICBhc3NlcnQuZXF1YWwoZ2xvYmFsLl94LCAyKTsKKyAgICBkZWxldGUgZ2xvYmFsLl94OworICB9KTsKKworICB0ZXN0KCdzY3JpcHRpbmdDb250cm9sbGVyUGVyc2lzdGVudENvbnRleHQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBuZXcgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyKCk7CisgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIuYy5TY3JpcHRpbmdDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKyAgICBjb250cm9sbGVyLmV4ZWN1dGVDb21tYW5kKCdhID0gNDInKTsKKyAgICB2YXIgcmVzdWx0ID0gY29udHJvbGxlci5leGVjdXRlQ29tbWFuZCgnYScpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIDQyKTsKKyAgfSk7CisKKyAgdGVzdCgnc2NyaXB0aW5nQ29udHJvbGxlckFkZFNjcmlwdE9iamVjdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IG5ldyBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKTsKKyAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci5jLlNjcmlwdGluZ0NvbnRyb2xsZXIoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpOworICAgIGNvbnRyb2xsZXIuYWRkU2NyaXB0T2JqZWN0KCd6JywgMTIzKTsKKyAgICB2YXIgcmVzdWx0ID0gY29udHJvbGxlci5leGVjdXRlQ29tbWFuZCgneicpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIDEyMyk7CisgIH0pOworCisgIHRlc3QoJ3NjcmlwdGluZ0NvbnRyb2xsZXJPYmplY3RSZWdpc3RyeScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IG5ldyBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKTsKKworICAgIHRyLmMuU2NyaXB0aW5nT2JqZWN0UmVnaXN0cnkucmVnaXN0ZXIoCisgICAgICAgIGZ1bmN0aW9uKCkgeyByZXR1cm4gMTIzOyB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ3Rlc3RGdW5jdGlvbk5hbWUnCisgICAgICAgIH0KKyAgICApOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLmMuU2NyaXB0aW5nQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcik7CisgICAgdmFyIHJlc3VsdCA9IGNvbnRyb2xsZXIuZXhlY3V0ZUNvbW1hbmQoJ3Rlc3RGdW5jdGlvbk5hbWUoKScpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIDEyMyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3NjcmlwdGluZ19vYmplY3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9zY3JpcHRpbmdfb2JqZWN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS9zY3JpcHRpbmdfb2JqZWN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS9zY3JpcHRpbmdfb2JqZWN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvY29yZS90ZXN0X3V0aWxzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvdGVzdF91dGlscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmOGZiNzQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2NvcmUvdGVzdF91dGlscy5odG1sCkBAIC0wLDAgKzEsMzI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb3VudGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NsaWNlX2dyb3VwLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zdGFja19mcmFtZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkX3RpbWVfc2xpY2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBIZWxwZXIgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhY2luZyB0ZXN0cy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmMudGVzdF91dGlscycsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBfZ2V0U3RhcnRBbmRDcHVEdXJhdGlvbkZyb21EaWN0KAorICAgICAgb3B0aW9ucywgcmVxdWlyZWQsIHN0YXJ0RmllbGROYW1lLCBkdXJhdGlvbkZpZWxkTmFtZSwgZW5kRmllbGROYW1lKSB7CisKKyAgICBpZiAob3B0aW9uc1tzdGFydEZpZWxkTmFtZV0gPT09IHVuZGVmaW5lZCkgeworICAgICAgaWYgKHJlcXVpcmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RvbyBsaXR0bGUgaW5mb3JtYXRpb24uJyk7CisgICAgICBlbHNlCisgICAgICAgIHJldHVybiB7c3RhcnQ6IHVuZGVmaW5lZCwgZHVyYXRpb246IHVuZGVmaW5lZH07CisgICAgfQorICAgIGlmIChvcHRpb25zW2R1cmF0aW9uRmllbGROYW1lXSAhPT0gdW5kZWZpbmVkICYmCisgICAgICAgIG9wdGlvbnNbZW5kRmllbGROYW1lXSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RvbyBtdWNoIGluZm9ybWF0aW9uLicpOworICAgIH0KKyAgICBpZiAob3B0aW9uc1tkdXJhdGlvbkZpZWxkTmFtZV0gPT09IHVuZGVmaW5lZCAmJgorICAgICAgICBvcHRpb25zW2VuZEZpZWxkTmFtZV0gPT09IHVuZGVmaW5lZCkgeworICAgICAgaWYgKHJlcXVpcmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RvbyBsaXR0bGUgaW5mb3JtYXRpb24uJyk7CisgICAgICBlbHNlCisgICAgICAgIHJldHVybiB7c3RhcnQ6IHVuZGVmaW5lZCwgZHVyYXRpb246IHVuZGVmaW5lZH07CisgICAgfQorCisgICAgdmFyIGR1cmF0aW9uOworICAgIGlmIChvcHRpb25zW2R1cmF0aW9uRmllbGROYW1lXSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICBkdXJhdGlvbiA9IG9wdGlvbnNbZHVyYXRpb25GaWVsZE5hbWVdOworICAgIH0gZWxzZSB7CisgICAgICBkdXJhdGlvbiA9IG9wdGlvbnNbZW5kRmllbGROYW1lXSAtIG9wdGlvbnNbc3RhcnRGaWVsZE5hbWVdOworICAgIH0KKworICAgIHJldHVybiB7CisgICAgICBzdGFydDogb3B0aW9uc1tzdGFydEZpZWxkTmFtZV0sCisgICAgICBkdXJhdGlvbjogZHVyYXRpb24KKyAgICB9OworICB9CisKKyAgZnVuY3Rpb24gZ2V0U3RhcnRBbmREdXJhdGlvbkZyb21EaWN0KG9wdGlvbnMpIHsKKyAgICByZXR1cm4gX2dldFN0YXJ0QW5kQ3B1RHVyYXRpb25Gcm9tRGljdCgKKyAgICAgICAgb3B0aW9ucywgdHJ1ZSwgJ3N0YXJ0JywgJ2R1cmF0aW9uJywgJ2VuZCcpOworICB9CisKKyAgZnVuY3Rpb24gbWF5YmVHZXRDcHVTdGFydEFuZENwdUR1cmF0aW9uRnJvbURpY3Qob3B0aW9ucykgeworICAgIHJldHVybiBfZ2V0U3RhcnRBbmRDcHVEdXJhdGlvbkZyb21EaWN0KAorICAgICAgICBvcHRpb25zLCBmYWxzZSwgJ2NwdVN0YXJ0JywgJ2NwdUR1cmF0aW9uJywgJ2NwdUVuZCcpOworICB9CisKKyAgZnVuY3Rpb24gbmV3QXN5bmNTbGljZShzdGFydCwgZHVyYXRpb24sIHN0YXJ0VGhyZWFkLCBlbmRUaHJlYWQpIHsKKyAgICByZXR1cm4gbmV3QXN5bmNTbGljZU5hbWVkKCdhJywgc3RhcnQsIGR1cmF0aW9uLCBzdGFydFRocmVhZCwgZW5kVGhyZWFkKTsKKyAgfQorCisgIGZ1bmN0aW9uIG5ld0FzeW5jU2xpY2VOYW1lZChuYW1lLCBzdGFydCwgZHVyYXRpb24sIHN0YXJ0VGhyZWFkLCBlbmRUaHJlYWQpIHsKKyAgICB2YXIgYXN5bmNTbGljZUNvbnN0cnVjdG9yID0KKyAgICAgICAgdHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcignJywgbmFtZSk7CisKKyAgICB2YXIgcyA9IG5ldyBhc3luY1NsaWNlQ29uc3RydWN0b3IoJycsIG5hbWUsIDAsIHN0YXJ0KTsKKyAgICBzLmR1cmF0aW9uID0gZHVyYXRpb247CisgICAgcy5zdGFydFRocmVhZCA9IHN0YXJ0VGhyZWFkOworICAgIHMuZW5kVGhyZWFkID0gZW5kVGhyZWFkOworICAgIHJldHVybiBzOworICB9CisKKyAgZnVuY3Rpb24gbmV3QXN5bmNTbGljZUV4KG9wdGlvbnMpIHsKKyAgICB2YXIgc2QgPSBnZXRTdGFydEFuZER1cmF0aW9uRnJvbURpY3Qob3B0aW9ucyk7CisKKyAgICB2YXIgY2F0ID0gb3B0aW9ucy5jYXQgPyBvcHRpb25zLmNhdCA6ICdjYXQnOworICAgIHZhciB0aXRsZSA9IG9wdGlvbnMudGl0bGUgPyBvcHRpb25zLnRpdGxlIDogJ2EnOworCisgICAgdmFyIGNvbG9ySWQ7CisgICAgaWYgKG9wdGlvbnMuY29sb3JJZCkgeworICAgICAgaWYgKG9wdGlvbnMuY29sb3JJZCA9PT0gJ3JhbmRvbScpIHsKKyAgICAgICAgY29sb3JJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqCisgICAgICAgICAgICAgICAgICAgdHIudWkuYi5wYWxldHRlUHJvcGVydGllcy5udW1HZW5lcmFsUHVycG9zZUNvbG9ySWRzKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGNvbG9ySWQgPSBvcHRpb25zLmNvbG9ySWQ7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGNvbG9ySWQgPSAwOworICAgIH0KKworCisgICAgdmFyIGlzVG9wTGV2ZWw7CisgICAgaWYgKG9wdGlvbnMuaXNUb3BMZXZlbCAhPT0gdW5kZWZpbmVkKQorICAgICAgaXNUb3BMZXZlbCA9IG9wdGlvbnMuaXNUb3BMZXZlbDsKKyAgICBlbHNlCisgICAgICBpc1RvcExldmVsID0gZmFsc2U7CisKKyAgICB2YXIgYXN5bmNTbGljZUNvbnN0cnVjdG9yID0KKyAgICAgICAgdHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcihjYXQsIHRpdGxlKTsKKworICAgIHZhciBzbGljZSA9IG5ldyBhc3luY1NsaWNlQ29uc3RydWN0b3IoCisgICAgICAgIGNhdCwKKyAgICAgICAgdGl0bGUsCisgICAgICAgIGNvbG9ySWQsCisgICAgICAgIHNkLnN0YXJ0LAorICAgICAgICBvcHRpb25zLmFyZ3MgPyBvcHRpb25zLmFyZ3MgOiB7fSwKKyAgICAgICAgc2QuZHVyYXRpb24sIGlzVG9wTGV2ZWwpOworCisgICAgaWYgKG9wdGlvbnMuaWQpCisgICAgICBzbGljZS5pZCA9IG9wdGlvbnMuaWQ7CisgICAgZWxzZQorICAgICAgc2xpY2UuaWQgPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKKworICAgIGlmIChvcHRpb25zLnN0YXJ0U3RhY2tGcmFtZSkKKyAgICAgIHNsaWNlLnN0YXJ0U3RhY2tGcmFtZSA9IG9wdGlvbnMuc3RhcnRTdGFja0ZyYW1lOworICAgIGlmIChvcHRpb25zLmVuZFN0YWNrRnJhbWUpCisgICAgICBzbGljZS5lbmRTdGFja0ZyYW1lID0gb3B0aW9ucy5lbmRTdGFja0ZyYW1lOworICAgIGlmIChvcHRpb25zLmltcG9ydGFudCkKKyAgICAgIHNsaWNlLmltcG9ydGFudCA9IG9wdGlvbnMuaW1wb3J0YW50OworICAgIGlmIChvcHRpb25zLnN0YXJ0VGhyZWFkKQorICAgICAgc2xpY2Uuc3RhcnRUaHJlYWQgPSBvcHRpb25zLnN0YXJ0VGhyZWFkOworICAgIGlmIChvcHRpb25zLmVuZFRocmVhZCkKKyAgICAgIHNsaWNlLmVuZFRocmVhZCA9IG9wdGlvbnMuZW5kVGhyZWFkOworICAgIHJldHVybiBzbGljZTsKKyAgfQorCisgIGZ1bmN0aW9uIG5ld0NvdW50ZXIocGFyZW50KSB7CisgICAgcmV0dXJuIG5ld0NvdW50ZXJOYW1lZChwYXJlbnQsICdhJyk7CisgIH0KKworICBmdW5jdGlvbiBuZXdDb3VudGVyTmFtZWQocGFyZW50LCBuYW1lKSB7CisgICAgdmFyIHMgPSBuZXcgdHIubW9kZWwuQ291bnRlcihwYXJlbnQsIG5hbWUsIG51bGwsIG5hbWUpOworICAgIHJldHVybiBzOworICB9CisKKyAgZnVuY3Rpb24gbmV3Q291bnRlckNhdGVnb3J5KHBhcmVudCwgY2F0ZWdvcnksIG5hbWUpIHsKKyAgICB2YXIgcyA9IG5ldyB0ci5tb2RlbC5Db3VudGVyKHBhcmVudCwgbmFtZSwgY2F0ZWdvcnksIG5hbWUpOworICAgIHJldHVybiBzOworICB9CisKKyAgZnVuY3Rpb24gbmV3Q291bnRlclNlcmllcygpIHsKKyAgICB2YXIgcyA9IG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdhJywgMCk7CisgICAgcmV0dXJuIHM7CisgIH0KKworICBmdW5jdGlvbiBuZXdGbG93RXZlbnRFeChvcHRpb25zKSB7CisgICAgaWYgKG9wdGlvbnMuc3RhcnQgPT09IHVuZGVmaW5lZCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignVG9vIGxpdHRsZSBpbmZvJyk7CisKKyAgICB2YXIgdGl0bGUgPSBvcHRpb25zLnRpdGxlID8gb3B0aW9ucy50aXRsZSA6ICdhJzsKKworICAgIHZhciBjb2xvcklkID0gb3B0aW9ucy5jb2xvcklkID8gb3B0aW9ucy5jb2xvcklkIDogMDsKKworICAgIHZhciBzZCA9IGdldFN0YXJ0QW5kRHVyYXRpb25Gcm9tRGljdChvcHRpb25zKTsKKworICAgIHZhciBpZDsKKyAgICBpZiAob3B0aW9ucy5pZCAhPT0gdW5kZWZpbmVkKQorICAgICAgaWQgPSBvcHRpb25zLmlkOworICAgIGVsc2UKKyAgICAgIGlkID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7CisKKyAgICB2YXIgZXZlbnQgPSBuZXcgdHIubW9kZWwuRmxvd0V2ZW50KAorICAgICAgICBvcHRpb25zLmNhdCA/IG9wdGlvbnMuY2F0IDogJ2NhdCcsCisgICAgICAgIGlkLAorICAgICAgICB0aXRsZSwKKyAgICAgICAgY29sb3JJZCwKKyAgICAgICAgc2Quc3RhcnQsCisgICAgICAgIG9wdGlvbnMuYXJncyA/IG9wdGlvbnMuYXJncyA6IHt9LAorICAgICAgICBzZC5kdXJhdGlvbik7CisKKyAgICBpZiAob3B0aW9ucy5zdGFydFN0YWNrRnJhbWUpCisgICAgICBldmVudC5zdGFydFN0YWNrRnJhbWUgPSBvcHRpb25zLnN0YXJ0U3RhY2tGcmFtZTsKKyAgICBpZiAob3B0aW9ucy5lbmRTdGFja0ZyYW1lKQorICAgICAgZXZlbnQuZW5kU3RhY2tGcmFtZSA9IG9wdGlvbnMuZW5kU3RhY2tGcmFtZTsKKyAgICBpZiAob3B0aW9ucy5pbXBvcnRhbnQpCisgICAgICBldmVudC5pbXBvcnRhbnQgPSBvcHRpb25zLmltcG9ydGFudDsKKyAgICBpZiAob3B0aW9ucy5zdGFydFNsaWNlKSB7CisgICAgICBldmVudC5zdGFydFNsaWNlID0gb3B0aW9ucy5zdGFydFNsaWNlOworICAgICAgZXZlbnQuc3RhcnRTbGljZS5vdXRGbG93RXZlbnRzLnB1c2goZXZlbnQpOworICAgIH0KKyAgICBpZiAob3B0aW9ucy5lbmRTbGljZSkgeworICAgICAgZXZlbnQuZW5kU2xpY2UgPSBvcHRpb25zLmVuZFNsaWNlOworICAgICAgZXZlbnQuZW5kU2xpY2UuaW5GbG93RXZlbnRzLnB1c2goZXZlbnQpOworICAgIH0KKyAgICByZXR1cm4gZXZlbnQ7CisgIH0KKworICBmdW5jdGlvbiBuZXdTbGljZShzdGFydCwgZHVyYXRpb24pIHsKKyAgICByZXR1cm4gbmV3U2xpY2VOYW1lZCgnYScsIHN0YXJ0LCBkdXJhdGlvbik7CisgIH0KKworICBmdW5jdGlvbiBuZXdTbGljZU5hbWVkKG5hbWUsIHN0YXJ0LCBkdXJhdGlvbikgeworICAgIHZhciBzID0gbmV3IHRyLm1vZGVsLlNsaWNlKCcnLCBuYW1lLCAwLCBzdGFydCwge30sIGR1cmF0aW9uKTsKKyAgICByZXR1cm4gczsKKyAgfQorCisgIGZ1bmN0aW9uIG5ld1RocmVhZFNsaWNlKHRocmVhZCwgc3RhdGUsIHN0YXJ0LCBkdXJhdGlvbiwgb3B0X2NwdSkgeworICAgIHZhciBzID0gbmV3IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSgKKyAgICAgICAgdGhyZWFkLCBzdGF0ZSwgJ2NhdCcsIHN0YXJ0LCB7fSwgZHVyYXRpb24pOworICAgIGlmIChvcHRfY3B1KQorICAgICAgcy5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZyA9IG9wdF9jcHU7CisgICAgcmV0dXJuIHM7CisgIH0KKworICBmdW5jdGlvbiBuZXdTYW1wbGVOYW1lZCh0aHJlYWQsIHNhbXBsZU5hbWUsIGNhdGVnb3J5LCBmcmFtZU5hbWVzLCBzdGFydCkgeworICAgIHZhciBtb2RlbDsKKyAgICBpZiAodGhyZWFkLnBhcmVudCkKKyAgICAgIG1vZGVsID0gdGhyZWFkLnBhcmVudC5tb2RlbDsKKyAgICBlbHNlCisgICAgICBtb2RlbCA9IHVuZGVmaW5lZDsKKyAgICB2YXIgc2YgPSBuZXdTdGFja1RyYWNlKG1vZGVsLCBjYXRlZ29yeSwgZnJhbWVOYW1lcyk7CisgICAgdmFyIHMgPSBuZXcgdHIubW9kZWwuU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZU5hbWUsIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpOworICAgIHJldHVybiBzOworICB9CisKKyAgZnVuY3Rpb24gbmV3U2xpY2VDYXRlZ29yeShjYXRlZ29yeSwgbmFtZSwgc3RhcnQsIGR1cmF0aW9uKSB7CisgICAgdmFyIHMgPSBuZXcgdHIubW9kZWwuU2xpY2UoCisgICAgICAgIGNhdGVnb3J5LCBuYW1lLCAwLCBzdGFydCwge30sIGR1cmF0aW9uKTsKKyAgICByZXR1cm4gczsKKyAgfQorCisgIGZ1bmN0aW9uIG5ld1NsaWNlRXgob3B0aW9ucykgeworICAgIHZhciBzZCA9IGdldFN0YXJ0QW5kRHVyYXRpb25Gcm9tRGljdChvcHRpb25zKTsKKworICAgIHZhciB0aXRsZSA9IG9wdGlvbnMudGl0bGUgPyBvcHRpb25zLnRpdGxlIDogJ2EnOworCisgICAgdmFyIGNvbG9ySWQgPSBvcHRpb25zLmNvbG9ySWQgPyBvcHRpb25zLmNvbG9ySWQgOiAwOworCisgICAgdmFyIGNwdVNEID0gbWF5YmVHZXRDcHVTdGFydEFuZENwdUR1cmF0aW9uRnJvbURpY3Qob3B0aW9ucyk7CisKKyAgICB2YXIgdHlwZTsKKyAgICBpZiAob3B0aW9ucy50eXBlKQorICAgICAgdHlwZSA9IG9wdGlvbnMudHlwZTsKKyAgICBlbHNlCisgICAgICB0eXBlID0gdHIubW9kZWwuU2xpY2U7CisKKyAgICB2YXIgc2xpY2UgPSBuZXcgdHlwZSgKKyAgICAgICAgb3B0aW9ucy5jYXQgPyBvcHRpb25zLmNhdCA6ICdjYXQnLAorICAgICAgICB0aXRsZSwKKyAgICAgICAgY29sb3JJZCwKKyAgICAgICAgc2Quc3RhcnQsCisgICAgICAgIG9wdGlvbnMuYXJncyA/IG9wdGlvbnMuYXJncyA6IHt9LAorICAgICAgICBzZC5kdXJhdGlvbiwKKyAgICAgICAgY3B1U0Quc3RhcnQsIGNwdVNELmR1cmF0aW9uKTsKKworCisgICAgcmV0dXJuIHNsaWNlOworICB9CisKKyAgZnVuY3Rpb24gbmV3U3RhY2tUcmFjZShtb2RlbCwgY2F0ZWdvcnksIHRpdGxlcykgeworICAgIHZhciBmcmFtZSA9IHVuZGVmaW5lZDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpdGxlcy5sZW5ndGg7IGkrKykgeworICAgICAgZnJhbWUgPSBuZXcgdHIubW9kZWwuU3RhY2tGcmFtZShmcmFtZSwgdHIuYi5HVUlELmFsbG9jYXRlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnksIHRpdGxlc1tpXSwgNyk7CisgICAgICBpZiAobW9kZWwpCisgICAgICAgIG1vZGVsLmFkZFN0YWNrRnJhbWUoZnJhbWUpOworICAgIH0KKyAgICByZXR1cm4gZnJhbWU7CisgIH0KKworICBmdW5jdGlvbiBmaW5kU2xpY2VOYW1lZChzbGljZXMsIG5hbWUpIHsKKyAgICBpZiAoc2xpY2VzIGluc3RhbmNlb2YgdHIubW9kZWwuU2xpY2VHcm91cCkKKyAgICAgIHNsaWNlcyA9IHNsaWNlcy5zbGljZXM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZXMubGVuZ3RoOyBpKyspCisgICAgICBpZiAoc2xpY2VzW2ldLnRpdGxlID09IG5hbWUpCisgICAgICAgIHJldHVybiBzbGljZXNbaV07CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICB9CisKKyAgZnVuY3Rpb24gbmV3TW9kZWwoY3VzdG9taXplTW9kZWxDYWxsYmFjaykgeworICAgIHZhciBpbyA9IG5ldyB0ci5JbXBvcnRPcHRpb25zKCk7CisgICAgaW8uY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2s7CisgICAgaW8uc2hpZnRXb3JsZFRvWmVybyA9IGZhbHNlOworICAgIGlvLnBydW5lRW1wdHlDb250YWluZXJzID0gZmFsc2U7CisgICAgaW8uYXVkaXRvckNvbnN0cnVjdG9ycyA9IFtdOworICAgIHJldHVybiBuZXcgdHIuTW9kZWwoW10sIGlvKTsKKyAgfQorCisgIGZ1bmN0aW9uIG5ld01vZGVsV2l0aEF1ZGl0b3IoY3VzdG9taXplTW9kZWxDYWxsYmFjaywgYXVkaXRvcikgeworICAgIHZhciBpbyA9IG5ldyB0ci5JbXBvcnRPcHRpb25zKCk7CisgICAgaW8uY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2s7CisgICAgaW8uc2hpZnRXb3JsZFRvWmVybyA9IGZhbHNlOworICAgIGlvLnBydW5lRW1wdHlDb250YWluZXJzID0gZmFsc2U7CisgICAgaW8uYXVkaXRvckNvbnN0cnVjdG9ycyA9IFthdWRpdG9yXTsKKyAgICByZXR1cm4gbmV3IHRyLk1vZGVsKFtdLCBpbyk7CisgIH0KKworICBmdW5jdGlvbiBuZXdGYWtlVGhyZWFkKCkgeworICAgIHZhciBwcm9jZXNzID0ge21vZGVsOiB7fX07CisgICAgcmV0dXJuIG5ldyB0ci5tb2RlbC5UaHJlYWQocHJvY2Vzcyk7CisgIH0KKworICByZXR1cm4geworICAgIGdldFN0YXJ0QW5kRHVyYXRpb25Gcm9tRGljdDogZ2V0U3RhcnRBbmREdXJhdGlvbkZyb21EaWN0LAorICAgIG5ld0FzeW5jU2xpY2U6IG5ld0FzeW5jU2xpY2UsCisgICAgbmV3QXN5bmNTbGljZU5hbWVkOiBuZXdBc3luY1NsaWNlTmFtZWQsCisgICAgbmV3QXN5bmNTbGljZUV4OiBuZXdBc3luY1NsaWNlRXgsCisgICAgbmV3Q291bnRlcjogbmV3Q291bnRlciwKKyAgICBuZXdDb3VudGVyTmFtZWQ6IG5ld0NvdW50ZXJOYW1lZCwKKyAgICBuZXdDb3VudGVyQ2F0ZWdvcnk6IG5ld0NvdW50ZXJDYXRlZ29yeSwKKyAgICBuZXdDb3VudGVyU2VyaWVzOiBuZXdDb3VudGVyU2VyaWVzLAorICAgIG5ld0Zsb3dFdmVudEV4OiBuZXdGbG93RXZlbnRFeCwKKyAgICBuZXdTbGljZTogbmV3U2xpY2UsCisgICAgbmV3RmFrZVRocmVhZDogbmV3RmFrZVRocmVhZCwKKyAgICBuZXdUaHJlYWRTbGljZTogbmV3VGhyZWFkU2xpY2UsCisgICAgbmV3U2xpY2VOYW1lZDogbmV3U2xpY2VOYW1lZCwKKyAgICBuZXdTbGljZUV4OiBuZXdTbGljZUV4LAorICAgIG5ld1NhbXBsZU5hbWVkOiBuZXdTYW1wbGVOYW1lZCwKKyAgICBuZXdTbGljZUNhdGVnb3J5OiBuZXdTbGljZUNhdGVnb3J5LAorICAgIG5ld1N0YWNrVHJhY2U6IG5ld1N0YWNrVHJhY2UsCisgICAgbmV3TW9kZWw6IG5ld01vZGVsLAorICAgIG5ld01vZGVsV2l0aEF1ZGl0b3I6IG5ld01vZGVsV2l0aEF1ZGl0b3IsCisgICAgZmluZFNsaWNlTmFtZWQ6IGZpbmRTbGljZU5hbWVkCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX2FwcC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX2FwcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjMjU4NDIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXBwLmh0bWwKQEAgLTAsMCArMSwyOTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9mcmFtZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZV91dGlscy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IENsYXNzIGZvciBtYW5hZ2luZyBhbmRyb2lkLXNwZWNpZmljIG1vZGVsIG1ldGEgZGF0YSwKKyAqIHN1Y2ggYXMgcmVuZGVyaW5nIGFwcHMsIGFuZCBmcmFtZXMgcmVuZGVyZWQuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmF1ZGl0cycsIGZ1bmN0aW9uKCkgeworICB2YXIgRnJhbWUgPSB0ci5tb2RlbC5GcmFtZTsKKyAgdmFyIFN0YXRpc3RpY3MgPSB0ci5iLlN0YXRpc3RpY3M7CisKKyAgdmFyIFVJX1RIUkVBRF9EUkFXX05BTUVTID0geworICAgICdwZXJmb3JtVHJhdmVyc2Fscyc6IHRydWUsCisgICAgJ0Nob3Jlb2dyYXBoZXIjZG9GcmFtZSc6IHRydWUKKyAgfTsKKyAgdmFyIFJFTkRFUl9USFJFQURfRFJBV19OQU1FID0gJ0RyYXdGcmFtZSc7CisgIHZhciBSRU5ERVJfVEhSRUFEX0lOREVQX0RSQVdfTkFNRSA9ICdkb0ZyYW1lJzsKKyAgdmFyIFRIUkVBRF9TWU5DX05BTUUgPSAnc3luY0ZyYW1lU3RhdGUnOworCisgIGZ1bmN0aW9uIGdldFNsaWNlc0ZvclRocmVhZFRpbWVSYW5nZXModGhyZWFkVGltZVJhbmdlcykgeworICAgIHZhciByZXQgPSBbXTsKKyAgICB0aHJlYWRUaW1lUmFuZ2VzLmZvckVhY2goZnVuY3Rpb24odGhyZWFkVGltZVJhbmdlKSB7CisgICAgICB2YXIgc2xpY2VzID0gW107CisKKyAgICAgIHRocmVhZFRpbWVSYW5nZS50aHJlYWQuc2xpY2VHcm91cC5pdGVyU2xpY2VzSW5UaW1lUmFuZ2UoCisgICAgICAgIGZ1bmN0aW9uKHNsaWNlKSB7IHNsaWNlcy5wdXNoKHNsaWNlKTsgfSwKKyAgICAgICAgdGhyZWFkVGltZVJhbmdlLnN0YXJ0LCB0aHJlYWRUaW1lUmFuZ2UuZW5kKTsKKyAgICAgIHJldC5wdXNoLmFwcGx5KHJldCwgc2xpY2VzKTsKKyAgICB9KTsKKyAgICByZXR1cm4gcmV0OworICB9CisKKyAgZnVuY3Rpb24gbWFrZUZyYW1lKHRocmVhZFRpbWVSYW5nZXMsIHN1cmZhY2VGbGluZ2VyKSB7CisgICAgdmFyIGFyZ3MgPSB7fTsKKyAgICBpZiAoc3VyZmFjZUZsaW5nZXIgJiYgc3VyZmFjZUZsaW5nZXIuaGFzVnN5bmNzKSB7CisgICAgICB2YXIgc3RhcnQgPSBTdGF0aXN0aWNzLm1pbih0aHJlYWRUaW1lUmFuZ2VzLAorICAgICAgICAgIGZ1bmN0aW9uKHRocmVhZFRpbWVSYW5nZXMpIHsgcmV0dXJuIHRocmVhZFRpbWVSYW5nZXMuc3RhcnQ7IH0pOworICAgICAgYXJnc1snZGVhZGxpbmUnXSA9IHN1cmZhY2VGbGluZ2VyLmdldEZyYW1lRGVhZGxpbmUoc3RhcnQpOworICAgICAgYXJnc1snZnJhbWVLaWNrb2ZmJ10gPSBzdXJmYWNlRmxpbmdlci5nZXRGcmFtZUtpY2tvZmYoc3RhcnQpOworICAgIH0KKyAgICB2YXIgZXZlbnRzID0gZ2V0U2xpY2VzRm9yVGhyZWFkVGltZVJhbmdlcyh0aHJlYWRUaW1lUmFuZ2VzKTsKKyAgICByZXR1cm4gbmV3IEZyYW1lKGV2ZW50cywgdGhyZWFkVGltZVJhbmdlcywgYXJncyk7CisgIH0KKworICBmdW5jdGlvbiBmaW5kT3ZlcmxhcHBpbmdEcmF3RnJhbWUocmVuZGVyVGhyZWFkLCB0aW1lKSB7CisgICAgaWYgKCFyZW5kZXJUaHJlYWQpCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgdmFyIHNsaWNlcyA9IHJlbmRlclRocmVhZC5zbGljZUdyb3VwLnNsaWNlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOworICAgICAgaWYgKHNsaWNlLnRpdGxlID09IFJFTkRFUl9USFJFQURfRFJBV19OQU1FICYmCisgICAgICAgICAgc2xpY2Uuc3RhcnQgPD0gdGltZSAmJgorICAgICAgICAgIHRpbWUgPD0gc2xpY2UuZW5kKSB7CisgICAgICAgIHJldHVybiBzbGljZTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgfQorCisgIC8qKgorICAgKiBCdWlsZHMgYW4gYXJyYXkgb2Yge3N0YXJ0LCBlbmR9IHJhbmdlcyBncm91cGluZyBjb21tb24gd29yayBvZiBhIGZyYW1lCisgICAqIHRoYXQgb2NjdXJzIGp1c3QgYmVmb3JlIHBlcmZvcm1UcmF2ZXJzYWxzKCkuCisgICAqCisgICAqIE9ubHkgbmVjZXNzYXJ5IGJlZm9yZSBDaG9yZW9ncmFwaGVyI2RvRnJhbWUgdHJhY2luZyBleGlzdGVkLgorICAgKi8KKyAgZnVuY3Rpb24gZ2V0UHJlVHJhdmVyc2FsV29ya1Jhbmdlcyh1aVRocmVhZCkgeworICAgIGlmICghdWlUaHJlYWQpCisgICAgICByZXR1cm4gW107CisKKyAgICAvLyBnYXRoZXIgYWxsIGZyYW1lIHdvcmsgdGhhdCBvY2N1cnMgb3V0c2lkZSBvZiBwZXJmb3JtVHJhdmVyc2FscworICAgIHZhciBwcmVGcmFtZUV2ZW50cyA9IFtdOworICAgIHVpVGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgIGlmIChzbGljZS50aXRsZSA9PSAnb2J0YWluVmlldycgfHwKKyAgICAgICAgICBzbGljZS50aXRsZSA9PSAnc2V0dXBMaXN0SXRlbScgfHwKKyAgICAgICAgICBzbGljZS50aXRsZSA9PSAnZGVsaXZlcklucHV0RXZlbnQnIHx8CisgICAgICAgICAgc2xpY2UudGl0bGUgPT0gJ1JWIFNjcm9sbCcpCisgICAgICAgIHByZUZyYW1lRXZlbnRzLnB1c2goc2xpY2UpOworICAgIH0pOworICAgIHVpVGhyZWFkLmFzeW5jU2xpY2VHcm91cC5zbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgeworICAgICAgaWYgKHNsaWNlLnRpdGxlID09ICdkZWxpdmVySW5wdXRFdmVudCcpCisgICAgICAgIHByZUZyYW1lRXZlbnRzLnB1c2goc2xpY2UpOworICAgIH0pOworCisgICAgcmV0dXJuIHRyLmIubWVyZ2VSYW5nZXMoCisgICAgICAgIHRyLmIuY29udmVydEV2ZW50c1RvUmFuZ2VzKHByZUZyYW1lRXZlbnRzKSwKKyAgICAgICAgMywKKyAgICAgICAgZnVuY3Rpb24oZXZlbnRzKSB7CisgICAgICByZXR1cm4geworICAgICAgICBzdGFydDogZXZlbnRzWzBdLm1pbiwKKyAgICAgICAgZW5kOiBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLm1heAorICAgICAgfTsKKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGdldEZyYW1lU3RhcnRUaW1lKHRyYXZlcnNhbFN0YXJ0LCBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzKSB7CisgICAgdmFyIHByZVRyYXZlcnNhbFdvcmtSYW5nZSA9IHRyLmIuZmluZENsb3Nlc3RJbnRlcnZhbEluU29ydGVkSW50ZXJ2YWxzKAorICAgICAgICBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzLAorICAgICAgICBmdW5jdGlvbihyYW5nZSkgeyByZXR1cm4gcmFuZ2Uuc3RhcnQgfSwKKyAgICAgICAgZnVuY3Rpb24ocmFuZ2UpIHsgcmV0dXJuIHJhbmdlLmVuZCB9LAorICAgICAgICB0cmF2ZXJzYWxTdGFydCwKKyAgICAgICAgMyk7CisKKyAgICBpZiAocHJlVHJhdmVyc2FsV29ya1JhbmdlKQorICAgICAgcmV0dXJuIHByZVRyYXZlcnNhbFdvcmtSYW5nZS5zdGFydDsKKyAgICByZXR1cm4gdHJhdmVyc2FsU3RhcnQ7CisgIH0KKworICBmdW5jdGlvbiBnZXRVaVRocmVhZERyaXZlbkZyYW1lcyhhcHApIHsKKyAgICBpZiAoIWFwcC51aVRocmVhZCkKKyAgICAgIHJldHVybiBbXTsKKworICAgIHZhciBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzID0gZ2V0UHJlVHJhdmVyc2FsV29ya1JhbmdlcyhhcHAudWlUaHJlYWQpOworCisgICAgdmFyIGZyYW1lcyA9IFtdOworICAgIGFwcC51aVRocmVhZC5zbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICBpZiAoIShzbGljZS50aXRsZSBpbiBVSV9USFJFQURfRFJBV19OQU1FUykpIHsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIgdGhyZWFkVGltZVJhbmdlcyA9IFtdOworICAgICAgdmFyIHVpVGhyZWFkVGltZVJhbmdlID0geworICAgICAgICB0aHJlYWQ6IGFwcC51aVRocmVhZCwKKyAgICAgICAgc3RhcnQ6IGdldEZyYW1lU3RhcnRUaW1lKHNsaWNlLnN0YXJ0LCBwcmVUcmF2ZXJzYWxXb3JrUmFuZ2VzKSwKKyAgICAgICAgZW5kOiBzbGljZS5lbmQKKyAgICAgIH07CisgICAgICB0aHJlYWRUaW1lUmFuZ2VzLnB1c2godWlUaHJlYWRUaW1lUmFuZ2UpOworCisgICAgICAvLyBvbiBTREsgMjErIGRldmljZXMgd2l0aCBSZW5kZXJUaHJlYWQsCisgICAgICAvLyBhY2NvdW50IGZvciB0aW1lIHRha2VuIG9uIFJlbmRlclRocmVhZAorICAgICAgdmFyIHJ0RHJhd1NsaWNlID0gZmluZE92ZXJsYXBwaW5nRHJhd0ZyYW1lKAorICAgICAgICAgIGFwcC5yZW5kZXJUaHJlYWQsIHNsaWNlLmVuZCk7CisgICAgICBpZiAocnREcmF3U2xpY2UpIHsKKyAgICAgICAgdmFyIHJ0U3luY1NsaWNlID0gcnREcmF3U2xpY2UuZmluZERlc2NlbmRlbnRTbGljZShUSFJFQURfU1lOQ19OQU1FKTsKKyAgICAgICAgaWYgKHJ0U3luY1NsaWNlKSB7CisgICAgICAgICAgLy8gR2VuZXJhbGx5LCB0aGUgVUkgdGhyZWFkIGlzIG9ubHkgb24gdGhlIGNyaXRpY2FsIHBhdGgKKyAgICAgICAgICAvLyB1bnRpbCB0aGUgc3RhcnQgb2Ygc3luYy4KKyAgICAgICAgICB1aVRocmVhZFRpbWVSYW5nZS5lbmQgPSBNYXRoLm1pbih1aVRocmVhZFRpbWVSYW5nZS5lbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRTeW5jU2xpY2Uuc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgdGhyZWFkVGltZVJhbmdlcy5wdXNoKHsKKyAgICAgICAgICB0aHJlYWQ6IGFwcC5yZW5kZXJUaHJlYWQsCisgICAgICAgICAgc3RhcnQ6IHJ0RHJhd1NsaWNlLnN0YXJ0LAorICAgICAgICAgIGVuZDogcnREcmF3U2xpY2UuZW5kCisgICAgICAgIH0pOworICAgICAgfQorICAgICAgZnJhbWVzLnB1c2gobWFrZUZyYW1lKHRocmVhZFRpbWVSYW5nZXMsIGFwcC5zdXJmYWNlRmxpbmdlcikpOworICAgIH0pOworICAgIHJldHVybiBmcmFtZXM7CisgIH0KKworICBmdW5jdGlvbiBnZXRSZW5kZXJUaHJlYWREcml2ZW5GcmFtZXMoYXBwKSB7CisgICAgaWYgKCFhcHAucmVuZGVyVGhyZWFkKQorICAgICAgcmV0dXJuIFtdOworCisgICAgdmFyIGZyYW1lcyA9IFtdOworICAgIGFwcC5yZW5kZXJUaHJlYWQuc2xpY2VHcm91cC5nZXRTbGljZXNPZk5hbWUoUkVOREVSX1RIUkVBRF9JTkRFUF9EUkFXX05BTUUpCisgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICB2YXIgdGhyZWFkVGltZVJhbmdlcyA9IFt7CisgICAgICAgIHRocmVhZDogYXBwLnJlbmRlclRocmVhZCwKKyAgICAgICAgc3RhcnQ6IHNsaWNlLnN0YXJ0LAorICAgICAgICBlbmQ6IHNsaWNlLmVuZAorICAgICAgfV07CisgICAgICBmcmFtZXMucHVzaChtYWtlRnJhbWUodGhyZWFkVGltZVJhbmdlcywgYXBwLnN1cmZhY2VGbGluZ2VyKSk7CisgICAgfSk7CisgICAgcmV0dXJuIGZyYW1lczsKKyAgfQorCisgIGZ1bmN0aW9uIGhhc1VpRHJhdyh1aVRocmVhZCkgeworICAgIHZhciBzbGljZXMgPSB1aVRocmVhZC5zbGljZUdyb3VwLnNsaWNlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKHNsaWNlc1tpXS50aXRsZSBpbiBVSV9USFJFQURfRFJBV19OQU1FUykgeworICAgICAgICByZXR1cm4gdWlUaHJlYWQ7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiB1bmRlZmluZWQ7CisgIH0KKworICBmdW5jdGlvbiBnZXRJbnB1dFNhbXBsZXMocHJvY2VzcykgeworICAgIHZhciBzYW1wbGVzID0gdW5kZWZpbmVkOworICAgIGZvciAodmFyIGNvdW50ZXJOYW1lIGluIHByb2Nlc3MuY291bnRlcnMpIHsKKyAgICAgICAgICBpZiAoL15hbmRyb2lkXC5hcVw6cGVuZGluZy8udGVzdChjb3VudGVyTmFtZSkgJiYKKyAgICAgICAgcHJvY2Vzcy5jb3VudGVyc1tjb3VudGVyTmFtZV0ubnVtU2VyaWVzID09IDEpIHsKKyAgICAgICAgc2FtcGxlcyA9IHByb2Nlc3MuY291bnRlcnNbY291bnRlck5hbWVdLnNlcmllc1swXS5zYW1wbGVzOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIXNhbXBsZXMpCisgICAgICByZXR1cm4gW107CisKKyAgICAvLyBvdXRwdXQgcmlzaW5nIGVkZ2VzIG9ubHksIHNpbmNlIHRob3NlIGFyZSB1c2VyIGlucHV0cworICAgIHZhciBpbnB1dFNhbXBsZXMgPSBbXTsKKyAgICB2YXIgbGFzdFZhbHVlID0gMDsKKyAgICBzYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7CisgICAgICBpZiAoc2FtcGxlLnZhbHVlID4gbGFzdFZhbHVlKSB7CisgICAgICAgIGlucHV0U2FtcGxlcy5wdXNoKHNhbXBsZSk7CisgICAgICB9CisgICAgICBsYXN0VmFsdWUgPSBzYW1wbGUudmFsdWU7CisgICAgfSk7CisgICAgcmV0dXJuIGlucHV0U2FtcGxlczsKKyAgfQorCisgIGZ1bmN0aW9uIGdldEFuaW1hdGlvbkFzeW5jU2xpY2VzKHVpVGhyZWFkKSB7CisgICAgaWYgKCF1aVRocmVhZCkKKyAgICAgIHJldHVybiBbXTsKKworICAgIHZhciBzbGljZXMgPSBbXTsKKyAgICB1aVRocmVhZC5hc3luY1NsaWNlR3JvdXAuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihzbGljZSkgeworICAgICAgaWYgKC9eYW5pbWF0b3JcOi8udGVzdChzbGljZS50aXRsZSkpCisgICAgICAgIHNsaWNlcy5wdXNoKHNsaWNlKTsKKyAgICB9KTsKKyAgICByZXR1cm4gc2xpY2VzOworICB9CisKKyAgLyoqCisgICAqIE1vZGVsIGZvciBBbmRyb2lkIEFwcCBzcGVjaWZpYyBkYXRhLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEFuZHJvaWRBcHAocHJvY2VzcywgdWlUaHJlYWQsIHJlbmRlclRocmVhZCwgc3VyZmFjZUZsaW5nZXIpIHsKKyAgICB0aGlzLnByb2Nlc3MgPSBwcm9jZXNzOworICAgIHRoaXMudWlUaHJlYWQgPSB1aVRocmVhZDsKKyAgICB0aGlzLnJlbmRlclRocmVhZCA9IHJlbmRlclRocmVhZDsKKyAgICB0aGlzLnN1cmZhY2VGbGluZ2VyID0gc3VyZmFjZUZsaW5nZXI7CisKKyAgICB0aGlzLmZyYW1lc18gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5pbnB1dHNfID0gdW5kZWZpbmVkOworICB9OworCisgIEFuZHJvaWRBcHAuY3JlYXRlRm9yUHJvY2Vzc0lmUG9zc2libGUgPSBmdW5jdGlvbihwcm9jZXNzLCBzdXJmYWNlRmxpbmdlcikgeworICAgIHZhciB1aVRocmVhZCA9IHByb2Nlc3MuZ2V0VGhyZWFkKHByb2Nlc3MucGlkKTsKKyAgICBpZiAodWlUaHJlYWQgJiYgIWhhc1VpRHJhdyh1aVRocmVhZCkpIHsKKyAgICAgIHVpVGhyZWFkID0gdW5kZWZpbmVkOworICAgIH0KKyAgICB2YXIgcmVuZGVyVGhyZWFkcyA9IHByb2Nlc3MuZmluZEFsbFRocmVhZHNOYW1lZCgnUmVuZGVyVGhyZWFkJyk7CisgICAgdmFyIHJlbmRlclRocmVhZCA9IHJlbmRlclRocmVhZHMubGVuZ3RoID09IDEgPyByZW5kZXJUaHJlYWRzWzBdIDogdW5kZWZpbmVkOworCisgICAgaWYgKHVpVGhyZWFkIHx8IHJlbmRlclRocmVhZCkgeworICAgICAgcmV0dXJuIG5ldyBBbmRyb2lkQXBwKHByb2Nlc3MsIHVpVGhyZWFkLCByZW5kZXJUaHJlYWQsIHN1cmZhY2VGbGluZ2VyKTsKKyAgICB9CisgIH0KKworICBBbmRyb2lkQXBwLnByb3RvdHlwZSA9IHsKKyAgLyoqCisgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBmcmFtZXMgaW4gdGhlIHRyYWNlIGZvciB0aGUgYXBwLAorICAgKiBjb25zdHJ1Y3RlZCBvbiBmaXJzdCBxdWVyeS4KKyAgICovCisgICAgZ2V0RnJhbWVzOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5mcmFtZXNfKSB7CisgICAgICAgIHZhciB1aUZyYW1lcyA9IGdldFVpVGhyZWFkRHJpdmVuRnJhbWVzKHRoaXMpOworICAgICAgICB2YXIgcnRGcmFtZXMgPSBnZXRSZW5kZXJUaHJlYWREcml2ZW5GcmFtZXModGhpcyk7CisgICAgICAgIHRoaXMuZnJhbWVzXyA9IHVpRnJhbWVzLmNvbmNhdChydEZyYW1lcyk7CisKKyAgICAgICAgLy8gbWVyZ2UgZnJhbWVzIGJ5IHNvcnRpbmcgYnkgZW5kIHRpbWVzdGFtcAorICAgICAgICB0aGlzLmZyYW1lc18uc29ydChmdW5jdGlvbihhLCBiKSB7IGEuZW5kIC0gYi5lbmQgfSk7CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5mcmFtZXNfOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGxpc3Qgb2YgQ291bnRlclNhbXBsZXMgZm9yIGVhY2ggaW5wdXQgZXZlbnQgZW5xdWV1ZWQgdG8gdGhlIGFwcC4KKyAgICAgKi8KKyAgICBnZXRJbnB1dFNhbXBsZXM6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmlucHV0c18pIHsKKyAgICAgICAgdGhpcy5pbnB1dHNfID0gZ2V0SW5wdXRTYW1wbGVzKHRoaXMucHJvY2Vzcyk7CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5pbnB1dHNfOworICAgIH0sCisKKyAgICBnZXRBbmltYXRpb25Bc3luY1NsaWNlczogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMuYW5pbWF0aW9uc18pIHsKKyAgICAgICAgdGhpcy5hbmltYXRpb25zXyA9IGdldEFuaW1hdGlvbkFzeW5jU2xpY2VzKHRoaXMudWlUaHJlYWQpOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uc187CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgQW5kcm9pZEFwcDogQW5kcm9pZEFwcAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9hdWRpdG9yLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXVkaXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3OGQ0MTgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXVkaXRvci5odG1sCkBAIC0wLDAgKzEsNzYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zdGF0aXN0aWNzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfZHVyYXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hdWRpdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hbGVydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZnJhbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9tb2RlbF9oZWxwZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2VfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBDbGFzcyBmb3IgQW5kcm9pZC1zcGVjaWZpYyBBdWRpdGluZy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUuYXVkaXRzJywgZnVuY3Rpb24oKSB7CisgIHZhciBTQ0hFRFVMSU5HX1NUQVRFID0gdHIubW9kZWwuU0NIRURVTElOR19TVEFURTsKKyAgdmFyIEF1ZGl0b3IgPSB0ci5jLkF1ZGl0b3I7CisgIHZhciBBbmRyb2lkTW9kZWxIZWxwZXIgPSB0ci5lLmF1ZGl0cy5BbmRyb2lkTW9kZWxIZWxwZXI7CisgIHZhciBTdGF0aXN0aWNzID0gdHIuYi5TdGF0aXN0aWNzOworICB2YXIgRlJBTUVfUEVSRl9DTEFTUyA9IHRyLm1vZGVsLkZSQU1FX1BFUkZfQ0xBU1M7CisgIHZhciBJbnRlcmFjdGlvblJlY29yZCA9IHRyLm1vZGVsLkludGVyYWN0aW9uUmVjb3JkOworICB2YXIgQWxlcnQgPSB0ci5tb2RlbC5BbGVydDsKKyAgdmFyIEV2ZW50SW5mbyA9IHRyLm1vZGVsLkV2ZW50SW5mbzsKKyAgdmFyIFRpbWVEdXJhdGlvbiA9IHRyLmIudW5pdHMuVGltZUR1cmF0aW9uOworCisgIC8vIFRPRE86IGV4dHJhY3QgZnJvbSBWU1lOQywgc2luY2Ugbm90IGFsbCBkZXZpY2VzIGhhdmUgdnN5bmMgbmVhciA2MGZwcworICB2YXIgRVhQRUNURURfRlJBTUVfVElNRV9NUyA9IDE2LjY3OworCisgIGZ1bmN0aW9uIGdldFN0YXJ0KGUpIHsgcmV0dXJuIGUuc3RhcnQ7IH0KKyAgZnVuY3Rpb24gZ2V0RHVyYXRpb24oZSkgeyByZXR1cm4gZS5kdXJhdGlvbjsgfQorICAvLyB1c2VkIGZvciBnZW5lcmFsIFVJIHRocmVhZCByZXNwb25zaXZlbmVzcyBhbGVydHMsIGZhbGxzIGJhY2sgdG8gZHVyYXRpb24KKyAgZnVuY3Rpb24gZ2V0Q3B1RHVyYXRpb24oZSkgeworICAgIHJldHVybiAoZS5jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSA/IGUuY3B1RHVyYXRpb24gOiBlLmR1cmF0aW9uOworICB9CisKKyAgZnVuY3Rpb24gZnJhbWVJc0FjdGl2aXR5U3RhcnQoZnJhbWUpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lLmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgIGlmIChmcmFtZS5hc3NvY2lhdGVkRXZlbnRzW2ldLnRpdGxlID09ICdhY3Rpdml0eVN0YXJ0JykKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHZhciBBdWRpdG9yID0gdHIuYy5BdWRpdG9yOworICB2YXIgQW5kcm9pZE1vZGVsSGVscGVyID0gdHIuZS5hdWRpdHMuQW5kcm9pZE1vZGVsSGVscGVyOworCisgIGZ1bmN0aW9uIGZyYW1lTWlzc2VkRGVhZGxpbmUoZnJhbWUpIHsKKyAgICByZXR1cm4gZnJhbWUuYXJnc1snZGVhZGxpbmUnXSAmJiBmcmFtZS5hcmdzWydkZWFkbGluZSddIDwgZnJhbWUuZW5kOworICB9CisKKyAgLyoqIEJ1aWxkZXIgb2JqZWN0IGZvciBFdmVudEluZm8gZG9jTGluayBzdHJ1Y3R1cmVzICovCisgIGZ1bmN0aW9uIERvY0xpbmtCdWlsZGVyKCkgeworICAgIHRoaXMuZG9jTGlua3MgPSBbXTsKKyAgfQorICBEb2NMaW5rQnVpbGRlci5wcm90b3R5cGUgPSB7CisgICAgYWRkQXBwVmlkZW86IGZ1bmN0aW9uKG5hbWUsIHZpZGVvSWQpIHsKKyAgICAgIHRoaXMuZG9jTGlua3MucHVzaCh7CisgICAgICAgIGxhYmVsOiAnVmlkZW8gTGluaycsCisgICAgICAgIHRleHRDb250ZW50OiAoJ0FuZHJvaWQgUGVyZm9ybWFuY2UgUGF0dGVybnM6ICcgKyBuYW1lKSwKKyAgICAgICAgaHJlZjogJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP2xpc3Q9UExXejVySjJFS0tjOUNCeHIzQlZqUFRQb0RQTGRQSUZDRSZ2PScgKyB2aWRlb0lkIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB9KTsKKyAgICAgIHJldHVybiB0aGlzOworICAgIH0sCisgICAgYWRkRGFjUmVmOiBmdW5jdGlvbihuYW1lLCBsaW5rKSB7CisgICAgICB0aGlzLmRvY0xpbmtzLnB1c2goeworICAgICAgICAgIGxhYmVsOiAnRG9jIExpbmsnLAorICAgICAgICAgIHRleHRDb250ZW50OiAobmFtZSArICcgZG9jdW1lbnRhdGlvbicpLAorICAgICAgICAgIGhyZWY6ICdodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvJyArIGxpbmsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfSwKKyAgICBidWlsZDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5kb2NMaW5rczsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEF1ZGl0b3IgZm9yIEFuZHJvaWQtc3BlY2lmaWMgdHJhY2VzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEFuZHJvaWRBdWRpdG9yKG1vZGVsKSB7CisgICAgQXVkaXRvci5jYWxsKHRoaXMsIG1vZGVsKTsKKworICAgIHZhciBoZWxwZXIgPSBuZXcgQW5kcm9pZE1vZGVsSGVscGVyKG1vZGVsKTsKKyAgICBpZiAoaGVscGVyLmFwcHMubGVuZ3RoIHx8IGhlbHBlci5zdXJmYWNlRmxpbmdlcikKKyAgICAgIHRoaXMuaGVscGVyID0gaGVscGVyOworICB9OworCisgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAvLyBSZW5kZXJpbmcgLyBSZW5kZXJUaHJlYWQgYWxlcnRzIC0gb25seSBhdmFpbGFibGUgb24gU0RLIDIyKworICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICBBbmRyb2lkQXVkaXRvci52aWV3QWxwaGFBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKKyAgICAgICdJbmVmZmljaWVudCBWaWV3IGFscGhhIHVzYWdlJywKKyAgICAgICdTZXR0aW5nIGFuIGFscGhhIGJldHdlZW4gMCBhbmQgMSBoYXMgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgY29zdHMsIGlmIG9uZSBvZiB0aGUgZmFzdCBhbHBoYSBwYXRocyBpcyBub3QgdXNlZC4nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgbmV3IERvY0xpbmtCdWlsZGVyKCkKKyAgICAgICAgICAuYWRkQXBwVmlkZW8oJ0hpZGRlbiBDb3N0IG9mIFRyYW5zcGFyZW5jeScsICd3SXk4Zzh5TmhOaycpCisgICAgICAgICAgLmFkZERhY1JlZignVmlldyNzZXRBbHBoYSgpJywgJ2FuZHJvaWQvdmlldy9WaWV3Lmh0bWwjc2V0QWxwaGEoZmxvYXQpJykgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgICAuYnVpbGQoKSk7CisgIEFuZHJvaWRBdWRpdG9yLnNhdmVMYXllckFsZXJ0SW5mb18gPSBuZXcgRXZlbnRJbmZvKAorICAgICAgJ0V4cGVuc2l2ZSByZW5kZXJpbmcgd2l0aCBDYW52YXMjc2F2ZUxheWVyKCknLAorICAgICAgJ0NhbnZhcyNzYXZlTGF5ZXIoKSBpbmN1cnMgZXh0cmVtZWx5IGhpZ2ggcmVuZGVyaW5nIGNvc3QuIFRoZXkgZGlzcnVwdCB0aGUgcmVuZGVyaW5nIHBpcGVsaW5lIHdoZW4gZHJhd24sIGZvcmNpbmcgYSBmbHVzaCBvZiBkcmF3aW5nIGNvbnRlbnQuIEluc3RlYWQgdXNlIFZpZXcgaGFyZHdhcmUgbGF5ZXJzLCBvciBzdGF0aWMgQml0bWFwcy4gVGhpcyBlbmFibGVzIHRoZSBvZmZzY3JlZW4gYnVmZmVycyB0byBiZSByZXVzZWQgaW4gYmV0d2VlbiBmcmFtZXMsIGFuZCBhdm9pZHMgdGhlIGRpc3J1cHRpdmUgcmVuZGVyIHRhcmdldCBzd2l0Y2guJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIG5ldyBEb2NMaW5rQnVpbGRlcigpCisgICAgICAgICAgLmFkZEFwcFZpZGVvKCdIaWRkZW4gQ29zdCBvZiBUcmFuc3BhcmVuY3knLCAnd0l5OGc4eU5oTmsnKQorICAgICAgICAgIC5hZGREYWNSZWYoJ0NhbnZhcyNzYXZlTGF5ZXJBbHBoYSgpJywgJ2FuZHJvaWQvZ3JhcGhpY3MvQ2FudmFzLmh0bWwjc2F2ZUxheWVyQWxwaGEoYW5kcm9pZC5ncmFwaGljcy5SZWN0RiwgaW50LCBpbnQpJykgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgICAuYnVpbGQoKSk7CisgIEFuZHJvaWRBdWRpdG9yLmdldFNhdmVMYXllckFsZXJ0c18gPSBmdW5jdGlvbihmcmFtZSkgeworICAgIHZhciBiYWRBbHBoYVJlZ0V4ID0KKyAgICAgICAgL14oLispIGFscGhhIGNhdXNlZCAodW5jbGlwcGVkICk/c2F2ZUxheWVyIChcZCspeChcZCspJC87CisgICAgdmFyIHNhdmVMYXllclJlZ0V4ID0gL14odW5jbGlwcGVkICk/c2F2ZUxheWVyIChcZCspeChcZCspJC87CisKKyAgICB2YXIgcmV0ID0gW107CisgICAgdmFyIGV2ZW50cyA9IFtdOworCisgICAgZnJhbWUuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICB2YXIgbWF0Y2ggPSBiYWRBbHBoYVJlZ0V4LmV4ZWMoc2xpY2UudGl0bGUpOworICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgIC8vIGR1ZSB0byBidWcgaW4gdHJhY2luZyBjb2RlIG9uIFNESyAyMiwgaWdub3JlCisgICAgICAgIC8vIHByZXNlbmNlIG9mICd1bmNsaXBwZWQnIHN0cmluZyBpbiBWaWV3IGFscGhhIHNsaWNlcworICAgICAgICB2YXIgYXJncyA9IHsgJ3ZpZXcgbmFtZSc6IG1hdGNoWzFdLAorICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHBhcnNlSW50KG1hdGNoWzNdKSwKKyAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcGFyc2VJbnQobWF0Y2hbNF0pIH07CisgICAgICAgIHJldC5wdXNoKG5ldyBBbGVydChBbmRyb2lkQXVkaXRvci52aWV3QWxwaGFBbGVydEluZm9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2Uuc3RhcnQsIFtzbGljZV0sIGFyZ3MpKTsKKyAgICAgIH0gZWxzZSBpZiAoc2F2ZUxheWVyUmVnRXgudGVzdChzbGljZS50aXRsZSkpCisgICAgICAgIGV2ZW50cy5wdXNoKHNsaWNlKTsKKyAgICB9LCB0aGlzKTsKKworICAgIGlmIChldmVudHMubGVuZ3RoID4gcmV0Lmxlbmd0aCkgeworICAgICAgLy8gbW9yZSBzYXZlTGF5ZXJzIHRoYW4gYmFkIGFscGhhIGNhbiBhY2NvdW50IGZvciAtIGFkZCBhbm90aGVyIGFsZXJ0CisKKyAgICAgIHZhciB1bmNsaXBwZWRTZWVuID0gU3RhdGlzdGljcy5zdW0oZXZlbnRzLCBmdW5jdGlvbihzbGljZSkgeworICAgICAgICByZXR1cm4gc2F2ZUxheWVyUmVnRXguZXhlYyhzbGljZS50aXRsZSlbMV0gPyAxIDogMDsKKyAgICAgIH0pOworICAgICAgdmFyIGNsaXBwZWRTZWVuID0gZXZlbnRzLmxlbmd0aCAtIHVuY2xpcHBlZFNlZW47CisgICAgICB2YXIgZWFybGllc3RTdGFydCA9IFN0YXRpc3RpY3MubWluKGV2ZW50cywgZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgcmV0dXJuIHNsaWNlLnN0YXJ0OworICAgICAgfSk7CisKKyAgICAgIHZhciBhcmdzID0geworICAgICAgICAnVW5jbGlwcGVkIHNhdmVMYXllciBjb3VudCAoZXNwZWNpYWxseSBiYWQhKSc6IHVuY2xpcHBlZFNlZW4sCisgICAgICAgICdDbGlwcGVkIHNhdmVMYXllciBjb3VudCc6IGNsaXBwZWRTZWVuCisgICAgICB9OworCisgICAgICBldmVudHMucHVzaChmcmFtZSk7CisgICAgICByZXQucHVzaChuZXcgQWxlcnQoQW5kcm9pZEF1ZGl0b3Iuc2F2ZUxheWVyQWxlcnRJbmZvXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBlYXJsaWVzdFN0YXJ0LCBldmVudHMsIGFyZ3MpKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworICB9OworCisKKyAgQW5kcm9pZEF1ZGl0b3IucGF0aEFsZXJ0SW5mb18gPSBuZXcgRXZlbnRJbmZvKAorICAgICAgJ1BhdGggdGV4dHVyZSBjaHVybicsCisgICAgICAnUGF0aHMgYXJlIGRyYXduIHdpdGggYSBtYXNrIHRleHR1cmUsIHNvIHdoZW4gYSBwYXRoIGlzIG1vZGlmaWVkIC8gbmV3bHkgZHJhd24sIHRoYXQgdGV4dHVyZSBtdXN0IGJlIGdlbmVyYXRlZCBhbmQgdXBsb2FkZWQgdG8gdGhlIEdQVS4gRW5zdXJlIHRoYXQgeW91IGNhY2hlIHBhdGhzIGJldHdlZW4gZnJhbWVzIGFuZCBkbyBub3QgdW5uZWNlc3NhcmlseSBjYWxsIFBhdGgjcmVzZXQoKS4gWW91IGNhbiBjdXQgZG93biBvbiB0aGlzIGNvc3QgYnkgc2hhcmluZyBQYXRoIG9iamVjdCBpbnN0YW5jZXMgYmV0d2VlbiBkcmF3YWJsZXMvdmlld3MuJyk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgIEFuZHJvaWRBdWRpdG9yLmdldFBhdGhBbGVydF8gPSBmdW5jdGlvbihmcmFtZSkgeworICAgIHZhciB1cGxvYWRSZWdFeCA9IC9eR2VuZXJhdGUgUGF0aCBUZXh0dXJlJC87CisKKyAgICB2YXIgZXZlbnRzID0gZnJhbWUuYXNzb2NpYXRlZEV2ZW50cy5maWx0ZXIoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHJldHVybiBldmVudC50aXRsZSA9PSAnR2VuZXJhdGUgUGF0aCBUZXh0dXJlJzsKKyAgICB9KTsKKyAgICB2YXIgc3RhcnQgPSBTdGF0aXN0aWNzLm1pbihldmVudHMsIGdldFN0YXJ0KTsKKyAgICB2YXIgZHVyYXRpb24gPSBTdGF0aXN0aWNzLnN1bShldmVudHMsIGdldER1cmF0aW9uKTsKKworICAgIGlmIChkdXJhdGlvbiA8IDMpCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgZXZlbnRzLnB1c2goZnJhbWUpOworICAgIHJldHVybiBuZXcgQWxlcnQoQW5kcm9pZEF1ZGl0b3IucGF0aEFsZXJ0SW5mb18sIHN0YXJ0LCBldmVudHMsCisgICAgICAgICAgICAgICAgICAgICB7ICdUaW1lIHNwZW50JzogbmV3IFRpbWVEdXJhdGlvbihkdXJhdGlvbikgfSk7CisgIH0KKworCisgIEFuZHJvaWRBdWRpdG9yLnVwbG9hZEFsZXJ0SW5mb18gPSBuZXcgRXZlbnRJbmZvKAorICAgICAgJ0V4cGVuc2l2ZSBCaXRtYXAgdXBsb2FkcycsCisgICAgICAnQml0bWFwcyB0aGF0IGhhdmUgYmVlbiBtb2RpZmllZCAvIG5ld2x5IGRyYXduIG11c3QgYmUgdXBsb2FkZWQgdG8gdGhlIEdQVS4gU2luY2UgdGhpcyBpcyBleHBlbnNpdmUgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBwaXhlbHMgdXBsb2FkZWQgaXMgbGFyZ2UsIHJlZHVjZSB0aGUgYW1vdW50IG9mIEJpdG1hcCBjaHVybiBpbiB0aGlzIGFuaW1hdGlvbi9jb250ZXh0LCBwZXIgZnJhbWUuJyk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgIEFuZHJvaWRBdWRpdG9yLmdldFVwbG9hZEFsZXJ0XyA9IGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgdmFyIHVwbG9hZFJlZ0V4ID0gL15VcGxvYWQgKFxkKyl4KFxkKykgVGV4dHVyZSQvOworCisgICAgdmFyIGV2ZW50cyA9IFtdOworICAgIHZhciBzdGFydCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICB2YXIgZHVyYXRpb24gPSAwOworICAgIHZhciBwaXhlbHNVcGxvYWRlZCA9IDA7CisgICAgZnJhbWUuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICB2YXIgbWF0Y2ggPSB1cGxvYWRSZWdFeC5leGVjKGV2ZW50LnRpdGxlKTsKKyAgICAgIGlmIChtYXRjaCkgeworICAgICAgICBldmVudHMucHVzaChldmVudCk7CisgICAgICAgIHN0YXJ0ID0gTWF0aC5taW4oc3RhcnQsIGV2ZW50LnN0YXJ0KTsKKyAgICAgICAgZHVyYXRpb24gKz0gZXZlbnQuZHVyYXRpb247CisgICAgICAgIHBpeGVsc1VwbG9hZGVkICs9IHBhcnNlSW50KG1hdGNoWzFdKSAqIHBhcnNlSW50KG1hdGNoWzJdKTsKKyAgICAgIH0KKyAgICB9KTsKKyAgICBpZiAoZXZlbnRzLmxlbmd0aCA9PSAwIHx8IGR1cmF0aW9uIDwgMykKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICB2YXIgbVBpeGVscyA9IChwaXhlbHNVcGxvYWRlZCAvIDEwMDAwMDApLnRvRml4ZWQoMikgKyAnIG1pbGxpb24nOworICAgIHZhciBhcmdzID0geyAnUGl4ZWxzIHVwbG9hZGVkJzogbVBpeGVscywKKyAgICAgICAgICAgICAgICAgJ1RpbWUgc3BlbnQnOiBuZXcgVGltZUR1cmF0aW9uKGR1cmF0aW9uKSB9OworICAgIGV2ZW50cy5wdXNoKGZyYW1lKTsKKyAgICByZXR1cm4gbmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLnVwbG9hZEFsZXJ0SW5mb18sIHN0YXJ0LCBldmVudHMsIGFyZ3MpOworICB9CisKKyAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgIC8vIFVJIHJlc3BvbnNpdmVuZXNzIGFsZXJ0cworICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICBBbmRyb2lkQXVkaXRvci5MaXN0Vmlld0luZmxhdGVBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKKyAgICAgICdJbmZsYXRpb24gZHVyaW5nIExpc3RWaWV3IHJlY3ljbGluZycsCisgICAgICAnTGlzdFZpZXcgaXRlbSByZWN5Y2xpbmcgaW52b2x2ZWQgaW5mbGF0aW5nIHZpZXdzLiBFbnN1cmUgeW91ciBBZGFwdGVyI2dldFZpZXcoKSByZWN5Y2xlcyB0aGUgaW5jb21pbmcgVmlldywgaW5zdGVhZCBvZiBjb25zdHJ1Y3RpbmcgYSBuZXcgb25lLicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICBBbmRyb2lkQXVkaXRvci5MaXN0Vmlld0JpbmRBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKKyAgICAgICdJbmVmZmljaWVudCBMaXN0VmlldyByZWN5Y2xpbmcvcmViaW5kaW5nJywKKyAgICAgICdMaXN0VmlldyByZWN5Y2xpbmcgdGFraW5nIHRvbyBtdWNoIHRpbWUgcGVyIGZyYW1lLiBFbnN1cmUgeW91ciBBZGFwdGVyI2dldFZpZXcoKSBiaW5kcyBkYXRhIGVmZmljaWVudGx5LicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICBBbmRyb2lkQXVkaXRvci5nZXRMaXN0Vmlld0FsZXJ0XyA9IGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgdmFyIGV2ZW50cyA9IGZyYW1lLmFzc29jaWF0ZWRFdmVudHMuZmlsdGVyKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICByZXR1cm4gZXZlbnQudGl0bGUgPT0gJ29idGFpblZpZXcnIHx8IGV2ZW50LnRpdGxlID09ICdzZXR1cExpc3RJdGVtJzsKKyAgICB9KTsKKyAgICB2YXIgZHVyYXRpb24gPSBTdGF0aXN0aWNzLnN1bShldmVudHMsIGdldENwdUR1cmF0aW9uKTsKKworICAgIGlmIChldmVudHMubGVuZ3RoID09IDAgfHwgZHVyYXRpb24gPCAzKQorICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgIC8vIHNpbXBsaWZ5aW5nIGFzc3VtcHRpb24gLSBjaGVjayBmb3IgKmFueSogaW5mbGF0aW9uLgorICAgIC8vIFRPRE8oY2NyYWlrKTogbWFrZSAnaW5mbGF0ZScgc2xpY2VzIGFzc29jaWF0ZWQgZXZlbnRzLgorICAgIHZhciBoYXNJbmZsYXRpb24gPSBmYWxzZTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKGV2ZW50c1tpXSBpbnN0YW5jZW9mIHRyLm1vZGVsLlNsaWNlICYmCisgICAgICAgICAgZXZlbnRzW2ldLmZpbmREZXNjZW5kZW50U2xpY2UoJ2luZmxhdGUnKSkgeworICAgICAgICBoYXNJbmZsYXRpb24gPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgc3RhcnQgPSBTdGF0aXN0aWNzLm1pbihldmVudHMsIGdldFN0YXJ0KTsKKyAgICB2YXIgYXJncyA9IHsgJ1RpbWUgc3BlbnQnOiBuZXcgVGltZUR1cmF0aW9uKGR1cmF0aW9uKSB9OworICAgIGFyZ3NbJ0xpc3RWaWV3IGl0ZW1zICcgKyAoaGFzSW5mbGF0aW9uID8gJ2luZmxhdGVkJyA6ICdyZWJvdW5kJyldID0KKyAgICAgICAgZXZlbnRzLmxlbmd0aCAvIDI7CisgICAgdmFyIGV2ZW50SW5mbyA9IGhhc0luZmxhdGlvbiA/IEFuZHJvaWRBdWRpdG9yLkxpc3RWaWV3SW5mbGF0ZUFsZXJ0SW5mb18gOgorICAgICAgICBBbmRyb2lkQXVkaXRvci5MaXN0Vmlld0JpbmRBbGVydEluZm9fOworICAgIGV2ZW50cy5wdXNoKGZyYW1lKTsKKyAgICByZXR1cm4gbmV3IEFsZXJ0KGV2ZW50SW5mbywgc3RhcnQsIGV2ZW50cywgYXJncyk7CisgIH0KKworCisgIEFuZHJvaWRBdWRpdG9yLm1lYXN1cmVMYXlvdXRBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKKyAgICAgICdFeHBlbnNpdmUgbWVhc3VyZS9sYXlvdXQgcGFzcycsCisgICAgICAnTWVhc3VyZS9MYXlvdXQgdG9vayBhIHNpZ25pZmljYW50IHRpbWUsIGNvbnRyaWJ1dGluZyB0byBqYW5rLiBBdm9pZCB0cmlnZ2VyaW5nIGxheW91dCBkdXJpbmcgYW5pbWF0aW9ucy4nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgbmV3IERvY0xpbmtCdWlsZGVyKCkKKyAgICAgICAgICAuYWRkQXBwVmlkZW8oJ0ludmFsaWRhdGlvbnMsIExheW91dHMsIGFuZCBQZXJmb3JtYW5jZScsICd3ZTZwb1Awa3c2RScpCisgICAgICAgICAgLmJ1aWxkKCkpOworICBBbmRyb2lkQXVkaXRvci5nZXRNZWFzdXJlTGF5b3V0QWxlcnRfID0gZnVuY3Rpb24oZnJhbWUpIHsKKyAgICB2YXIgZXZlbnRzID0gZnJhbWUuYXNzb2NpYXRlZEV2ZW50cy5maWx0ZXIoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHJldHVybiBldmVudC50aXRsZSA9PSAnbWVhc3VyZScgfHwgZXZlbnQudGl0bGUgPT0gJ2xheW91dCc7CisgICAgfSk7CisgICAgdmFyIGR1cmF0aW9uID0gU3RhdGlzdGljcy5zdW0oZXZlbnRzLCBnZXRDcHVEdXJhdGlvbik7CisKKyAgICBpZiAoZXZlbnRzLmxlbmd0aCA9PSAwIHx8IGR1cmF0aW9uIDwgMykKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICB2YXIgc3RhcnQgPSBTdGF0aXN0aWNzLm1pbihldmVudHMsIGdldFN0YXJ0KTsKKyAgICBldmVudHMucHVzaChmcmFtZSk7CisgICAgcmV0dXJuIG5ldyBBbGVydChBbmRyb2lkQXVkaXRvci5tZWFzdXJlTGF5b3V0QWxlcnRJbmZvXywgc3RhcnQsIGV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgIHsgJ1RpbWUgc3BlbnQnOiBuZXcgVGltZUR1cmF0aW9uKGR1cmF0aW9uKSB9KTsKKyAgfQorCisKKyAgQW5kcm9pZEF1ZGl0b3Iudmlld0RyYXdBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKKyAgICAgICdMb25nIFZpZXcjZHJhdygpJywKKyAgICAgICdSZWNvcmRpbmcgdGhlIGRyYXdpbmcgY29tbWFuZHMgb2YgaW52YWxpZGF0ZWQgVmlld3MgdG9vayBhIGxvbmcgdGltZS4gQXZvaWQgc2lnbmlmaWNhbnQgd29yayBpbiBWaWV3IG9yIERyYXdhYmxlIGN1c3RvbSBkcmF3aW5nLCBlc3BlY2lhbGx5IGFsbG9jYXRpb25zIG9yIGRyYXdpbmcgdG8gQml0bWFwcy4nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgbmV3IERvY0xpbmtCdWlsZGVyKCkKKyAgICAgICAgICAuYWRkQXBwVmlkZW8oJ0ludmFsaWRhdGlvbnMsIExheW91dHMsIGFuZCBQZXJmb3JtYW5jZScsICd3ZTZwb1Awa3c2RScpCisgICAgICAgICAgLmFkZEFwcFZpZGVvKCdBdm9pZGluZyBBbGxvY2F0aW9ucyBpbiBvbkRyYXcoKScsICdIQUs1YWNIUTUzRScpCisgICAgICAgICAgLmJ1aWxkKCkpOworICBBbmRyb2lkQXVkaXRvci5nZXRWaWV3RHJhd0FsZXJ0XyA9IGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgdmFyIHNsaWNlID0gdW5kZWZpbmVkOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZnJhbWUuYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKGZyYW1lLmFzc29jaWF0ZWRFdmVudHNbaV0udGl0bGUgPT0gJ2dldERpc3BsYXlMaXN0JyB8fAorICAgICAgICAgIGZyYW1lLmFzc29jaWF0ZWRFdmVudHNbaV0udGl0bGUgPT0gJ1JlY29yZCBWaWV3I2RyYXcoKScpIHsKKyAgICAgICAgc2xpY2UgPSBmcmFtZS5hc3NvY2lhdGVkRXZlbnRzW2ldOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIXNsaWNlIHx8IGdldENwdUR1cmF0aW9uKHNsaWNlKSA8IDMpCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIHJldHVybiBuZXcgQWxlcnQoQW5kcm9pZEF1ZGl0b3Iudmlld0RyYXdBbGVydEluZm9fLCBzbGljZS5zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgIFtzbGljZSwgZnJhbWVdLAorICAgICAgICAgICAgICAgICAgICAgeyAnVGltZSBzcGVudCc6IG5ldyBUaW1lRHVyYXRpb24oZ2V0Q3B1RHVyYXRpb24oc2xpY2UpKSB9KTsKKyAgfQorCisKKyAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgIC8vIFJ1bnRpbWUgYWxlcnRzCisgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgIEFuZHJvaWRBdWRpdG9yLmJsb2NraW5nR2NBbGVydEluZm9fID0gbmV3IEV2ZW50SW5mbygKKyAgICAgICdCbG9ja2luZyBHYXJiYWdlIENvbGxlY3Rpb24nLAorICAgICAgJ0Jsb2NraW5nIEdDcyBhcmUgY2F1c2VkIGJ5IG9iamVjdCBjaHVybiwgYW5kIG1hZGUgd29yc2UgYnkgaGF2aW5nIGxhcmdlIG51bWJlcnMgb2Ygb2JqZWN0cyBpbiB0aGUgaGVhcC4gQXZvaWQgYWxsb2NhdGluZyBvYmplY3RzIGR1cmluZyBhbmltYXRpb25zL3Njcm9sbGluZywgYW5kIHJlY3ljbGUgQml0bWFwcyB0byBhdm9pZCB0cmlnZ2VyaW5nIGdhcmJhZ2UgY29sbGVjdGlvbi4nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgbmV3IERvY0xpbmtCdWlsZGVyKCkKKyAgICAgICAgICAuYWRkQXBwVmlkZW8oJ0dhcmJhZ2UgQ29sbGVjdGlvbiBpbiBBbmRyb2lkJywgJ3B6Znp6NTBXNVVvJykKKyAgICAgICAgICAuYWRkQXBwVmlkZW8oJ0F2b2lkaW5nIEFsbG9jYXRpb25zIGluIG9uRHJhdygpJywgJ0hBSzVhY0hRNTNFJykKKyAgICAgICAgICAuYnVpbGQoKSk7CisgIEFuZHJvaWRBdWRpdG9yLmdldEJsb2NraW5nR2NBbGVydF8gPSBmdW5jdGlvbihmcmFtZSkgeworICAgIHZhciBldmVudHMgPSBmcmFtZS5hc3NvY2lhdGVkRXZlbnRzLmZpbHRlcihmdW5jdGlvbihldmVudCkgeworICAgICAgcmV0dXJuIGV2ZW50LnRpdGxlID09ICdEVk0gU3VzcGVuZCcgfHwKKyAgICAgICAgICBldmVudC50aXRsZSA9PSAnR0M6IFdhaXQgRm9yIENvbmN1cnJlbnQnOworICAgIH0pOworICAgIHZhciBibG9ja2VkRHVyYXRpb24gPSBTdGF0aXN0aWNzLnN1bShldmVudHMsIGdldER1cmF0aW9uKTsKKyAgICBpZiAoYmxvY2tlZER1cmF0aW9uIDwgMykKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICB2YXIgc3RhcnQgPSBTdGF0aXN0aWNzLm1pbihldmVudHMsIGdldFN0YXJ0KTsKKyAgICBldmVudHMucHVzaChmcmFtZSk7CisgICAgcmV0dXJuIG5ldyBBbGVydChBbmRyb2lkQXVkaXRvci5ibG9ja2luZ0djQWxlcnRJbmZvXywgc3RhcnQsIGV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgIHsgJ0Jsb2NrZWQgZHVyYXRpb24nOiBuZXcgVGltZUR1cmF0aW9uKGJsb2NrZWREdXJhdGlvbikgfSk7CisgIH07CisKKworICBBbmRyb2lkQXVkaXRvci5sb2NrQ29udGVudGlvbkFsZXJ0SW5mb18gPSBuZXcgRXZlbnRJbmZvKAorICAgICAgJ0xvY2sgY29udGVudGlvbicsCisgICAgICAnVUkgdGhyZWFkIGxvY2sgY29udGVudGlvbiBpcyBjYXVzZWQgd2hlbiBhbm90aGVyIHRocmVhZCBob2xkcyBhIGxvY2sgdGhhdCB0aGUgVUkgdGhyZWFkIGlzIHRyeWluZyB0byB1c2UuIFVJIHRocmVhZCBwcm9ncmVzcyBpcyBibG9ja2VkIHVudGlsIHRoZSBsb2NrIGlzIHJlbGVhc2VkLiBJbnNwZWN0IGxvY2tpbmcgZG9uZSB3aXRoaW4gdGhlIFVJIHRocmVhZCwgYW5kIGVuc3VyZSBjcml0aWNhbCBzZWN0aW9ucyBhcmUgc2hvcnQuJyk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgIEFuZHJvaWRBdWRpdG9yLmdldExvY2tDb250ZW50aW9uQWxlcnRfID0gZnVuY3Rpb24oZnJhbWUpIHsKKyAgICB2YXIgZXZlbnRzID0gZnJhbWUuYXNzb2NpYXRlZEV2ZW50cy5maWx0ZXIoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHJldHVybiAvXkxvY2sgQ29udGVudGlvbiBvbiAvLnRlc3QoZXZlbnQudGl0bGUpOworICAgIH0pOworCisgICAgdmFyIGJsb2NrZWREdXJhdGlvbiA9IFN0YXRpc3RpY3Muc3VtKGV2ZW50cywgZ2V0RHVyYXRpb24pOworICAgIGlmIChibG9ja2VkRHVyYXRpb24gPCAxKQorICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgIHZhciBzdGFydCA9IFN0YXRpc3RpY3MubWluKGV2ZW50cywgZ2V0U3RhcnQpOworICAgIGV2ZW50cy5wdXNoKGZyYW1lKTsKKyAgICByZXR1cm4gbmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLmxvY2tDb250ZW50aW9uQWxlcnRJbmZvXywgc3RhcnQsIGV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgIHsgJ0Jsb2NrZWQgZHVyYXRpb24nOiBuZXcgVGltZUR1cmF0aW9uKGJsb2NrZWREdXJhdGlvbikgfSk7CisgIH07CisKKyAgQW5kcm9pZEF1ZGl0b3Iuc2NoZWR1bGluZ0FsZXJ0SW5mb18gPSBuZXcgRXZlbnRJbmZvKAorICAgICAgJ1NjaGVkdWxpbmcgZGVsYXknLAorICAgICAgJ1dvcmsgdG8gcHJvZHVjZSB0aGlzIGZyYW1lIHdhcyBkZXNjaGVkdWxlZCBmb3Igc2V2ZXJhbCBtaWxsaXNlY29uZHMsIGNvbnRyaWJ1dGluZyB0byBqYW5rLiBFbnN1cmUgdGhhdCBjb2RlIG9uIHRoZSBVSSB0aHJlYWQgZG9lc25cJ3QgYmxvY2sgb24gd29yayBiZWluZyBkb25lIG9uIG90aGVyIHRocmVhZHMsIGFuZCB0aGF0IGJhY2tncm91bmQgdGhyZWFkcyAoZG9pbmcgZS5nLiBuZXR3b3JrIG9yIGJpdG1hcCBsb2FkaW5nKSBhcmUgcnVubmluZyBhdCBhbmRyb2lkLm9zLlByb2Nlc3MjVEhSRUFEX1BSSU9SSVRZX0JBQ0tHUk9VTkQgb3IgbG93ZXIgc28gdGhleSBhcmUgbGVzcyBsaWtlbHkgdG8gaW50ZXJydXB0IHRoZSBVSSB0aHJlYWQuIFRoZXNlIGJhY2tncm91bmQgdGhyZWFkcyBzaG91bGQgc2hvdyB1cCB3aXRoIGEgcHJpb3JpdHkgbnVtYmVyIG9mIDEzMCBvciBoaWdoZXIgaW4gdGhlIHNjaGVkdWxpbmcgc2VjdGlvbiB1bmRlciB0aGUgS2VybmVsIHByb2Nlc3MuJyk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgIEFuZHJvaWRBdWRpdG9yLmdldFNjaGVkdWxpbmdBbGVydF8gPSBmdW5jdGlvbihmcmFtZSkgeworICAgIHZhciB0b3RhbER1cmF0aW9uID0gMDsKKyAgICB2YXIgdG90YWxTdGF0cyA9IHt9OworICAgIGZyYW1lLnRocmVhZFRpbWVSYW5nZXMuZm9yRWFjaChmdW5jdGlvbih0dHIpIHsKKyAgICAgIHZhciBzdGF0cyA9IHR0ci50aHJlYWQuZ2V0U2NoZWR1bGluZ1N0YXRzRm9yUmFuZ2UodHRyLnN0YXJ0LCB0dHIuZW5kKTsKKyAgICAgIHRyLmIuaXRlckl0ZW1zKHN0YXRzLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7CisgICAgICAgIGlmICghKGtleSBpbiB0b3RhbFN0YXRzKSkKKyAgICAgICAgICB0b3RhbFN0YXRzW2tleV0gPSAwOworICAgICAgICB0b3RhbFN0YXRzW2tleV0gKz0gdmFsdWU7CisgICAgICAgIHRvdGFsRHVyYXRpb24gKz0gdmFsdWU7CisgICAgICB9KTsKKyAgICB9KTsKKworICAgIC8vIG9ubHkgYWxlcnQgaWYgZnJhbWUgbm90IHJ1bm5pbmcgZm9yID4gM21zLiBOb3RlIHRoYXQgd2UgZXhwZWN0IGEgZnJhbWUKKyAgICAvLyB0byBuZXZlciBkZXNjcmliZSBpbnRlbnRpb25hbGx5IGlkbGUgdGltZS4KKyAgICBpZiAoIShTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcgaW4gdG90YWxTdGF0cykgfHwKKyAgICAgICAgdG90YWxEdXJhdGlvbiA9PSAwIHx8CisgICAgICAgIHRvdGFsRHVyYXRpb24gLSB0b3RhbFN0YXRzW1NDSEVEVUxJTkdfU1RBVEUuUlVOTklOR10gPCAzKQorICAgICAgcmV0dXJuOworCisgICAgdmFyIGFyZ3MgPSB7fTsKKyAgICB0ci5iLml0ZXJJdGVtcyh0b3RhbFN0YXRzLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7CisgICAgICBpZiAoa2V5ID09PSBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5BQkxFKQorICAgICAgICBrZXkgPSAnTm90IHNjaGVkdWxlZCwgYnV0IHJ1bm5hYmxlJzsKKyAgICAgIGVsc2UgaWYgKGtleSA9PT0gU0NIRURVTElOR19TVEFURS5VTklOVFJfU0xFRVApCisgICAgICAgIGtleSA9ICdCbG9ja2luZyBJL08gZGVsYXknOworICAgICAgYXJnc1trZXldID0gbmV3IFRpbWVEdXJhdGlvbih2YWx1ZSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gbmV3IEFsZXJ0KEFuZHJvaWRBdWRpdG9yLnNjaGVkdWxpbmdBbGVydEluZm9fLCBmcmFtZS5zdGFydCwgW2ZyYW1lXSwKKyAgICAgICAgICAgICAgICAgICAgIGFyZ3MpOworICB9OworCisgIEFuZHJvaWRBdWRpdG9yLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEF1ZGl0b3IucHJvdG90eXBlLAorCisgICAgcmVuYW1lQW5kU29ydF86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5tb2RlbC5rZXJuZWwuaW1wb3J0YW50ID0gZmFsc2U7Ly8gYXV0byBjb2xsYXBzZQorICAgICAgLy8gU3VyZmFjZUZsaW5nZXIgZmlyc3QsIG90aGVyIHByb2Nlc3NlcyBzb3J0ZWQgYnkgc2xpY2UgY291bnQKKyAgICAgIHRoaXMubW9kZWwuZ2V0QWxsUHJvY2Vzc2VzKCkuZm9yRWFjaChmdW5jdGlvbihwcm9jZXNzKSB7CisgICAgICAgIGlmICh0aGlzLmhlbHBlci5zdXJmYWNlRmxpbmdlciAmJgorICAgICAgICAgICAgcHJvY2VzcyA9PSB0aGlzLmhlbHBlci5zdXJmYWNlRmxpbmdlci5wcm9jZXNzKSB7CisgICAgICAgICAgaWYgKCFwcm9jZXNzLm5hbWUpCisgICAgICAgICAgICBwcm9jZXNzLm5hbWUgPSAnU3VyZmFjZUZsaW5nZXInOworICAgICAgICAgIHByb2Nlc3Muc29ydEluZGV4ID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOworICAgICAgICAgIHByb2Nlc3MuaW1wb3J0YW50ID0gZmFsc2U7IC8vIGF1dG8gY29sbGFwc2UKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgdWlUaHJlYWQgPSBwcm9jZXNzLmdldFRocmVhZChwcm9jZXNzLnBpZCk7CisgICAgICAgIGlmICghcHJvY2Vzcy5uYW1lICYmIHVpVGhyZWFkICYmIHVpVGhyZWFkLm5hbWUpIHsKKyAgICAgICAgICBpZiAoL15uZHJvaWRcLi8udGVzdCh1aVRocmVhZC5uYW1lKSkKKyAgICAgICAgICAgIHVpVGhyZWFkLm5hbWUgPSAnYScgKyB1aVRocmVhZC5uYW1lOworICAgICAgICAgIHByb2Nlc3MubmFtZSA9IHVpVGhyZWFkLm5hbWU7CisKKyAgICAgICAgICB1aVRocmVhZC5uYW1lID0gJ1VJIFRocmVhZCc7CisgICAgICAgIH0KKworICAgICAgICBwcm9jZXNzLnNvcnRJbmRleCA9IDA7CisgICAgICAgIGZvciAodmFyIHRpZCBpbiBwcm9jZXNzLnRocmVhZHMpIHsKKyAgICAgICAgICBwcm9jZXNzLnNvcnRJbmRleCAtPSBwcm9jZXNzLnRocmVhZHNbdGlkXS5zbGljZUdyb3VwLnNsaWNlcy5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBlbnN1cmUgc2VxdWVudGlhbCwgcmVsYXRpdmUgb3JkZXIgZm9yIFVJL1JlbmRlci9Xb3JrZXIgdGhyZWFkcworICAgICAgdGhpcy5tb2RlbC5nZXRBbGxUaHJlYWRzKCkuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpIHsKKyAgICAgICAgaWYgKHRocmVhZC50aWQgPT0gdGhyZWFkLnBhcmVudC5waWQpCisgICAgICAgICAgdGhyZWFkLnNvcnRJbmRleCA9IC0zOworICAgICAgICBpZiAodGhyZWFkLm5hbWUgPT0gJ1JlbmRlclRocmVhZCcpCisgICAgICAgICAgdGhyZWFkLnNvcnRJbmRleCA9IC0yOworICAgICAgICBpZiAoL15od3VpVGFzay8udGVzdCh0aHJlYWQubmFtZSkpCisgICAgICAgICAgdGhyZWFkLnNvcnRJbmRleCA9IC0xOworICAgICAgfSk7CisgICAgfSwKKworICAgIHB1c2hGcmFtZXNBbmRKdWRnZUphbmtfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBiYWRGcmFtZXNPYnNlcnZlZCA9IDA7CisgICAgICB2YXIgZnJhbWVzT2JzZXJ2ZWQgPSAwOworICAgICAgdmFyIHN1cmZhY2VGbGluZ2VyID0gdGhpcy5oZWxwZXIuc3VyZmFjZUZsaW5nZXI7CisKKyAgICAgIHRoaXMuaGVscGVyLmFwcHMuZm9yRWFjaChmdW5jdGlvbihhcHApIHsKKyAgICAgICAgLy8gb3ZlcnJpZGUgZnJhbWUgbGlzdAorICAgICAgICBhcHAucHJvY2Vzcy5mcmFtZXMgPSBhcHAuZ2V0RnJhbWVzKCk7CisKKyAgICAgICAgYXBwLnByb2Nlc3MuZnJhbWVzLmZvckVhY2goZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBpZiAoZnJhbWUudG90YWxEdXJhdGlvbiA+IEVYUEVDVEVEX0ZSQU1FX1RJTUVfTVMgKiAyKSB7CisgICAgICAgICAgICBiYWRGcmFtZXNPYnNlcnZlZCArPSAyOworICAgICAgICAgICAgZnJhbWUucGVyZkNsYXNzID0gRlJBTUVfUEVSRl9DTEFTUy5URVJSSUJMRTsKKyAgICAgICAgICB9IGVsc2UgaWYgKGZyYW1lLnRvdGFsRHVyYXRpb24gPiBFWFBFQ1RFRF9GUkFNRV9USU1FX01TIHx8CisgICAgICAgICAgICAgIGZyYW1lTWlzc2VkRGVhZGxpbmUoZnJhbWUpKSB7CisgICAgICAgICAgICBiYWRGcmFtZXNPYnNlcnZlZCsrOworICAgICAgICAgICAgZnJhbWUucGVyZkNsYXNzID0gRlJBTUVfUEVSRl9DTEFTUy5CQUQ7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZyYW1lLnBlcmZDbGFzcyA9IEZSQU1FX1BFUkZfQ0xBU1MuR09PRDsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmcmFtZXNPYnNlcnZlZCArPSBhcHAucHJvY2Vzcy5mcmFtZXMubGVuZ3RoOworICAgICAgfSk7CisKKyAgICAgIGlmIChmcmFtZXNPYnNlcnZlZCkgeworICAgICAgICB2YXIgcG9ydGlvbkJhZCA9IGJhZEZyYW1lc09ic2VydmVkIC8gZnJhbWVzT2JzZXJ2ZWQ7CisgICAgICAgIGlmIChwb3J0aW9uQmFkID4gMC4zKQorICAgICAgICAgIHRoaXMubW9kZWwuZmF2aWNvbkh1ZSA9ICdyZWQnOworICAgICAgICBlbHNlIGlmIChwb3J0aW9uQmFkID4gMC4wNSkKKyAgICAgICAgICB0aGlzLm1vZGVsLmZhdmljb25IdWUgPSAneWVsbG93JzsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHRoaXMubW9kZWwuZmF2aWNvbkh1ZSA9ICdncmVlbic7CisgICAgICB9CisgICAgfSwKKworICAgIHB1c2hFdmVudEluZm9fOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhcHBBbm5vdGF0b3IgPSBuZXcgQXBwQW5ub3RhdG9yKCk7CisgICAgICB0aGlzLmhlbHBlci5hcHBzLmZvckVhY2goZnVuY3Rpb24oYXBwKSB7CisgICAgICAgIGlmIChhcHAudWlUaHJlYWQpCisgICAgICAgICAgYXBwQW5ub3RhdG9yLmFwcGx5RXZlbnRJbmZvcyhhcHAudWlUaHJlYWQuc2xpY2VHcm91cCk7CisgICAgICAgIGlmIChhcHAucmVuZGVyVGhyZWFkKQorICAgICAgICAgIGFwcEFubm90YXRvci5hcHBseUV2ZW50SW5mb3MoYXBwLnJlbmRlclRocmVhZC5zbGljZUdyb3VwKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBydW5Bbm5vdGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMuaGVscGVyKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMucmVuYW1lQW5kU29ydF8oKTsKKyAgICAgIHRoaXMucHVzaEZyYW1lc0FuZEp1ZGdlSmFua18oKTsKKyAgICAgIHRoaXMucHVzaEV2ZW50SW5mb18oKTsKKworICAgICAgdGhpcy5oZWxwZXIuaXRlcmF0ZUltcG9ydGFudFNsaWNlcyhmdW5jdGlvbihzbGljZSkgeworICAgICAgICBzbGljZS5pbXBvcnRhbnQgPSB0cnVlOworICAgICAgfSk7CisgICAgfSwKKworICAgIHJ1bkF1ZGl0OiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5oZWxwZXIpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGFsZXJ0cyA9IHRoaXMubW9kZWwuYWxlcnRzOworICAgICAgdGhpcy5oZWxwZXIuYXBwcy5mb3JFYWNoKGZ1bmN0aW9uKGFwcCkgeworICAgICAgICBhcHAuZ2V0RnJhbWVzKCkuZm9yRWFjaChmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGFsZXJ0cy5wdXNoLmFwcGx5KGFsZXJ0cywgQW5kcm9pZEF1ZGl0b3IuZ2V0U2F2ZUxheWVyQWxlcnRzXyhmcmFtZSkpOworCisgICAgICAgICAgLy8gc2tpcCBtb3N0IGFsZXJ0cyBmb3IgbmV1dHJhbCBvciBnb29kIGZyYW1lcworICAgICAgICAgIGlmIChmcmFtZS5wZXJmQ2xhc3MgPT0gRlJBTUVfUEVSRl9DTEFTUy5ORVVUUkFMIHx8CisgICAgICAgICAgICAgIGZyYW1lLnBlcmZDbGFzcyA9PSBGUkFNRV9QRVJGX0NMQVNTLkdPT0QpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICB2YXIgYWxlcnQgPSBBbmRyb2lkQXVkaXRvci5nZXRQYXRoQWxlcnRfKGZyYW1lKTsKKyAgICAgICAgICBpZiAoYWxlcnQpCisgICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7CisgICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0VXBsb2FkQWxlcnRfKGZyYW1lKTsKKyAgICAgICAgICBpZiAoYWxlcnQpCisgICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7CisgICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0TGlzdFZpZXdBbGVydF8oZnJhbWUpOworICAgICAgICAgIGlmIChhbGVydCkKKyAgICAgICAgICAgIGFsZXJ0cy5wdXNoKGFsZXJ0KTsKKyAgICAgICAgICB2YXIgYWxlcnQgPSBBbmRyb2lkQXVkaXRvci5nZXRNZWFzdXJlTGF5b3V0QWxlcnRfKGZyYW1lKTsKKyAgICAgICAgICBpZiAoYWxlcnQpCisgICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7CisgICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0Vmlld0RyYXdBbGVydF8oZnJhbWUpOworICAgICAgICAgIGlmIChhbGVydCkKKyAgICAgICAgICAgIGFsZXJ0cy5wdXNoKGFsZXJ0KTsKKyAgICAgICAgICB2YXIgYWxlcnQgPSBBbmRyb2lkQXVkaXRvci5nZXRCbG9ja2luZ0djQWxlcnRfKGZyYW1lKTsKKyAgICAgICAgICBpZiAoYWxlcnQpCisgICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7CisgICAgICAgICAgdmFyIGFsZXJ0ID0gQW5kcm9pZEF1ZGl0b3IuZ2V0TG9ja0NvbnRlbnRpb25BbGVydF8oZnJhbWUpOworICAgICAgICAgIGlmIChhbGVydCkKKyAgICAgICAgICAgIGFsZXJ0cy5wdXNoKGFsZXJ0KTsKKyAgICAgICAgICB2YXIgYWxlcnQgPSBBbmRyb2lkQXVkaXRvci5nZXRTY2hlZHVsaW5nQWxlcnRfKGZyYW1lKTsKKyAgICAgICAgICBpZiAoYWxlcnQpCisgICAgICAgICAgICBhbGVydHMucHVzaChhbGVydCk7CisgICAgICAgIH0pOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIHRoaXMuYWRkUmVuZGVyaW5nSW50ZXJhY3Rpb25SZWNvcmRzKCk7CisgICAgICB0aGlzLmFkZElucHV0SW50ZXJhY3Rpb25SZWNvcmRzKCk7CisgICAgfSwKKworICAgIGFkZFJlbmRlcmluZ0ludGVyYWN0aW9uUmVjb3JkczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZXZlbnRzID0gW107CisgICAgICB0aGlzLmhlbHBlci5hcHBzLmZvckVhY2goZnVuY3Rpb24oYXBwKSB7CisgICAgICAgIGV2ZW50cy5wdXNoLmFwcGx5KGV2ZW50cywgYXBwLmdldEFuaW1hdGlvbkFzeW5jU2xpY2VzKCkpOworICAgICAgICBldmVudHMucHVzaC5hcHBseShldmVudHMsIGFwcC5nZXRGcmFtZXMoKSk7CisgICAgICB9KTsKKworICAgICAgdmFyIG1lcmdlckZ1bmN0aW9uID0gZnVuY3Rpb24oZXZlbnRzKSB7CisgICAgICAgIHZhciBpciA9IG5ldyBJbnRlcmFjdGlvblJlY29yZCgnUmVuZGVyaW5nJywKKyAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKCdtdF9yZW5kZXJpbmcnKSwKKyAgICAgICAgICAgIGV2ZW50c1swXS5taW4sCisgICAgICAgICAgICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLm1heCAtIGV2ZW50c1swXS5taW4pOworICAgICAgICB0aGlzLm1vZGVsLmFkZEludGVyYWN0aW9uUmVjb3JkKGlyKTsKKyAgICAgIH0uYmluZCh0aGlzKTsKKyAgICAgIHRyLmIubWVyZ2VSYW5nZXModHIuYi5jb252ZXJ0RXZlbnRzVG9SYW5nZXMoZXZlbnRzKSwgMzAsIG1lcmdlckZ1bmN0aW9uKTsKKyAgICB9LAorCisgICAgYWRkSW5wdXRJbnRlcmFjdGlvblJlY29yZHM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGlucHV0U2FtcGxlcyA9IFtdOworICAgICAgdGhpcy5oZWxwZXIuYXBwcy5mb3JFYWNoKGZ1bmN0aW9uKGFwcCkgeworICAgICAgICBpbnB1dFNhbXBsZXMucHVzaC5hcHBseShpbnB1dFNhbXBsZXMsIGFwcC5nZXRJbnB1dFNhbXBsZXMoKSk7CisgICAgICB9KTsKKworICAgICAgdmFyIG1lcmdlckZ1bmN0aW9uID0gZnVuY3Rpb24oZXZlbnRzKSB7CisgICAgICAgIHZhciBpciA9IG5ldyBJbnRlcmFjdGlvblJlY29yZCgnSW5wdXQnLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoJ210X2lucHV0JyksCisgICAgICAgICAgICBldmVudHNbMF0ubWluLAorICAgICAgICAgICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS5tYXggLSBldmVudHNbMF0ubWluKTsKKyAgICAgICAgdGhpcy5tb2RlbC5hZGRJbnRlcmFjdGlvblJlY29yZChpcik7CisgICAgICB9LmJpbmQodGhpcyk7CisgICAgICB2YXIgaW5wdXRSYW5nZXMgPSBpbnB1dFNhbXBsZXMubWFwKGZ1bmN0aW9uKHNhbXBsZSkgeworICAgICAgICByZXR1cm4gdHIuYi5SYW5nZS5mcm9tRXhwbGljaXRSYW5nZShzYW1wbGUudGltZXN0YW1wLCBzYW1wbGUudGltZXN0YW1wKTsKKyAgICAgIH0pOworICAgICAgdHIuYi5tZXJnZVJhbmdlcyhpbnB1dFJhbmdlcywgMzAsIG1lcmdlckZ1bmN0aW9uKTsKKyAgICB9CisgIH07CisKKyAgQXVkaXRvci5yZWdpc3RlcihBbmRyb2lkQXVkaXRvcik7CisKKyAgZnVuY3Rpb24gQXBwQW5ub3RhdG9yKCkgeworICAgIHRoaXMudGl0bGVJbmZvTG9va3VwID0ge307CisgICAgdGhpcy50aXRsZVBhcmVudExvb2t1cCA9IHt9OworICAgIHRoaXMuYnVpbGRfKCk7CisgIH0KKworICBBcHBBbm5vdGF0b3IucHJvdG90eXBlID0geworICAgIGJ1aWxkXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcmVnaXN0ZXJFdmVudEluZm8gPSBmdW5jdGlvbihkaWN0KSB7CisgICAgICAgIHRoaXMudGl0bGVJbmZvTG9va3VwW2RpY3QudGl0bGVdID0gbmV3IEV2ZW50SW5mbygKKyAgICAgICAgICAgIGRpY3QudGl0bGUsIGRpY3QuZGVzY3JpcHRpb24sIGRpY3QuZG9jTGlua3MpOworICAgICAgICBpZiAoZGljdC5wYXJlbnRzKQorICAgICAgICAgIHRoaXMudGl0bGVQYXJlbnRMb29rdXBbZGljdC50aXRsZV0gPSBkaWN0LnBhcmVudHM7CisgICAgICB9LmJpbmQodGhpcyk7CisKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ2luZmxhdGUnLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ29uc3RydWN0aW5nIGEgVmlldyBoaWVyYXJjaHkgZnJvbSBwcmUtcHJvY2Vzc2VkIFhNTCB2aWEgTGF5b3V0SW5mbGF0ZXIjbGF5b3V0LiBUaGlzIGluY2x1ZGVzIGNvbnN0cnVjdGluZyBhbGwgb2YgdGhlIFZpZXcgb2JqZWN0cyBpbiB0aGUgaGllcmFyY2h5LCBhbmQgYXBwbHlpbmcgc3R5bGVkIGF0dHJpYnV0ZXMuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgLy8gQWRhcHRlciB2aWV3CisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAnb2J0YWluVmlldycsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGFwdGVyI2dldFZpZXcoKSBjYWxsZWQgdG8gYmluZCBjb250ZW50IHRvIGEgcmVjeWNsZWQgVmlldyB0aGF0IGlzIGJlaW5nIHByZXNlbnRlZC4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdzZXR1cExpc3RJdGVtJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ0F0dGFjaGVkIGEgbmV3bHktYm91bmQsIHJlY3ljbGVkIFZpZXcgdG8gaXRzIHBhcmVudCBMaXN0Vmlldy4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdzZXR1cEdyaWRJdGVtJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ0F0dGFjaGVkIGEgbmV3bHktYm91bmQsIHJlY3ljbGVkIFZpZXcgdG8gaXRzIHBhcmVudCBHcmlkVmlldy4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAvLyBDaG9yZW9ncmFwaGVyICh0cmFjaW5nIGVuYWJsZWQgb24gTSspCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgdmFyIGNob3Jlb2dyYXBoZXJMaW5rcyA9IG5ldyBEb2NMaW5rQnVpbGRlcigpCisgICAgICAgICAgLmFkZERhY1JlZignQ2hvcmVvZ3JhcGhlcicsICdhbmRyb2lkL3ZpZXcvQ2hvcmVvZ3JhcGhlci5odG1sJykgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgICAuYnVpbGQoKTsKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ0Nob3Jlb2dyYXBoZXIjZG9GcmFtZScsCisgICAgICAgICAgZG9jTGlua3M6IGNob3Jlb2dyYXBoZXJMaW5rcywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Nob3Jlb2dyYXBoZXIgZXhlY3V0ZXMgZnJhbWUgY2FsbGJhY2tzIGZvciBpbnB1dHMsIGFuaW1hdGlvbnMsIGFuZCByZW5kZXJpbmcgdHJhdmVyc2Fscy4gV2hlbiB0aGlzIHdvcmsgaXMgZG9uZSwgYSBmcmFtZSB3aWxsIGJlIHByZXNlbnRlZCB0byB0aGUgdXNlci4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdpbnB1dCcsCisgICAgICAgICAgcGFyZW50czogWydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnXSwKKyAgICAgICAgICBkb2NMaW5rczogY2hvcmVvZ3JhcGhlckxpbmtzLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiAnSW5wdXQgY2FsbGJhY2tzIGFyZSBwcm9jZXNzZWQuIFRoaXMgZ2VuZXJhbGx5IGVuY29tcGFzc2VzIGRpc3BhdGNoaW5nIGlucHV0IHRvIFZpZXdzLCBhcyB3ZWxsIGFzIGFueSB3b3JrIHRoZSBWaWV3cyBkbyB0byBwcm9jZXNzIHRoaXMgaW5wdXQvZ2VzdHVyZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdhbmltYXRpb24nLAorICAgICAgICAgIHBhcmVudHM6IFsnQ2hvcmVvZ3JhcGhlciNkb0ZyYW1lJ10sCisgICAgICAgICAgZG9jTGlua3M6IGNob3Jlb2dyYXBoZXJMaW5rcywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FuaW1hdGlvbiBjYWxsYmFja3MgYXJlIHByb2Nlc3NlZC4gVGhpcyBpcyBnZW5lcmFsbHkgbWluaW1hbCB3b3JrLCBhcyBhbmltYXRpb25zIGRldGVybWluZSBwcm9ncmVzcyBmb3IgdGhlIGZyYW1lLCBhbmQgcHVzaCBuZXcgc3RhdGUgdG8gYW5pbWF0ZWQgb2JqZWN0cyAoc3VjaCBhcyBzZXR0aW5nIFZpZXcgcHJvcGVydGllcykuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAndHJhdmVyc2FscycsCisgICAgICAgICAgcGFyZW50czogWydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnXSwKKyAgICAgICAgICBkb2NMaW5rczogY2hvcmVvZ3JhcGhlckxpbmtzLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUHJpbWFyeSBkcmF3IHRyYXZlcnNhbHMuIFRoaXMgaXMgdGhlIHByaW1hcnkgdHJhdmVyc2FsIG9mIHRoZSBWaWV3IGhpZXJhcmNoeSwgaW5jbHVkaW5nIGxheW91dCBhbmQgZHJhdyBwYXNzZXMuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgLy8gcGVyZm9ybVRyYXZlcnNhbHMgKyBzdWIgbWV0aG9kcworICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgIHZhciB0cmF2ZXJzYWxQYXJlbnRzID0gWydDaG9yZW9ncmFwaGVyI2RvRnJhbWUnLCAncGVyZm9ybVRyYXZlcnNhbHMnXTsKKyAgICAgIHZhciBsYXlvdXRMaW5rcyA9IG5ldyBEb2NMaW5rQnVpbGRlcigpCisgICAgICAgICAgLmFkZERhY1JlZignVmlldyNMYXlvdXQnLCAnYW5kcm9pZC92aWV3L1ZpZXcuaHRtbCNMYXlvdXQnKQorICAgICAgICAgIC5idWlsZCgpOworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAncGVyZm9ybVRyYXZlcnNhbHMnLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQSBkcmF3aW5nIHRyYXZlcnNhbCBvZiB0aGUgVmlldyBoaWVyYXJjaHksIGNvbXByaXNlZCBvZiBhbGwgbGF5b3V0IGFuZCBkcmF3aW5nIG5lZWRlZCB0byBwcm9kdWNlIHRoZSBmcmFtZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdtZWFzdXJlJywKKyAgICAgICAgICBwYXJlbnRzOiB0cmF2ZXJzYWxQYXJlbnRzLAorICAgICAgICAgIGRvY0xpbmtzOiBsYXlvdXRMaW5rcywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpcnN0IG9mIHR3byBwaGFzZXMgaW4gdmlldyBoaWVyYXJjaHkgbGF5b3V0LiBWaWV3cyBhcmUgYXNrZWQgdG8gc2l6ZSB0aGVtc2VsdmVzIGFjY29yZGluZyB0byBjb25zdHJhaW50cyBzdXBwbGllZCBieSB0aGVpciBwYXJlbnQuIFNvbWUgVmlld0dyb3VwcyBtYXkgbWVhc3VyZSBhIGNoaWxkIG1vcmUgdGhhbiBvbmNlIHRvIGhlbHAgc2F0aXNmeSB0aGVpciBvd24gY29uc3RyYWludHMuIE5lc3RpbmcgVmlld0dyb3VwcyB0aGF0IG1lYXN1cmUgY2hpbGRyZW4gbW9yZSB0aGFuIG9uY2UgY2FuIGxlYWQgdG8gZXhjZXNzaXZlIGFuZCByZXBlYXRlZCB3b3JrLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ2xheW91dCcsCisgICAgICAgICAgcGFyZW50czogdHJhdmVyc2FsUGFyZW50cywKKyAgICAgICAgICBkb2NMaW5rczogbGF5b3V0TGlua3MsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdTZWNvbmQgb2YgdHdvIHBoYXNlcyBpbiB2aWV3IGhpZXJhcmNoeSBsYXlvdXQsIHJlcG9zaXRpb25pbmcgY29udGVudCBhbmQgY2hpbGQgVmlld3MgaW50byB0aGVpciBuZXcgbG9jYXRpb25zLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHZhciBkcmF3U3RyaW5nID0gJ0RyYXcgcGFzcyBvdmVyIHRoZSBWaWV3IGhpZXJhcmNoeS4gRXZlcnkgaW52YWxpZGF0ZWQgVmlldyB3aWxsIGhhdmUgaXRzIGRyYXdpbmcgY29tbWFuZHMgcmVjb3JkZWQuIE9uIEFuZHJvaWQgdmVyc2lvbnMgcHJpb3IgdG8gTG9sbGlwb3AsIHRoaXMgd291bGQgYWxzbyBpbmNsdWRlIHRoZSBpc3N1aW5nIG9mIGRyYXcgY29tbWFuZHMgdG8gdGhlIEdQVS4gU3RhcnRpbmcgd2l0aCBMb2xsaXBvcCwgaXQgb25seSBpbmNsdWRlcyB0aGUgcmVjb3JkaW5nIG9mIGNvbW1hbmRzLCBhbmQgc3luY2luZyB0aGF0IGluZm9ybWF0aW9uIHRvIHRoZSBSZW5kZXJUaHJlYWQuJzsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ2RyYXcnLAorICAgICAgICAgIHBhcmVudHM6IHRyYXZlcnNhbFBhcmVudHMsCisgICAgICAgICAgZGVzY3JpcHRpb246IGRyYXdTdHJpbmd9KTsKKworICAgICAgdmFyIHJlY29yZFN0cmluZyA9ICdFdmVyeSBpbnZhbGlkYXRlZCBWaWV3XCdzIGRyYXdpbmcgY29tbWFuZHMgYXJlIHJlY29yZGVkLiBFYWNoIHdpbGwgaGF2ZSBWaWV3I2RyYXcoKSBjYWxsZWQsIGFuZCBpcyBwYXNzZWQgYSBDYW52YXMgdGhhdCB3aWxsIHJlY29yZCBhbmQgc3RvcmUgaXRzIGRyYXdpbmcgY29tbWFuZHMgdW50aWwgaXQgaXMgbmV4dCBpbnZhbGlkYXRlZC9yZXJlY29yZGVkLic7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdnZXREaXNwbGF5TGlzdCcsIC8vIExlZ2FjeSBuYW1lIGZvciBjb21wYXRpYmlsaXR5LgorICAgICAgICAgIHBhcmVudHM6IFsnZHJhdyddLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiByZWNvcmRTdHJpbmd9KTsKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ1JlY29yZCBWaWV3I2RyYXcoKScsCisgICAgICAgICAgcGFyZW50czogWydkcmF3J10sCisgICAgICAgICAgZGVzY3JpcHRpb246IHJlY29yZFN0cmluZ30pOworCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdkcmF3RGlzcGxheUxpc3QnLAorICAgICAgICAgIHBhcmVudHM6IFsnZHJhdyddLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRXhlY3V0aW9uIG9mIHJlY29yZGVkIGRyYXcgY29tbWFuZHMgdG8gZ2VuZXJhdGUgYSBmcmFtZS4gVGhpcyByZXByZXNlbnRzIHRoZSBhY3R1YWwgZm9ybWF0aW9uIGFuZCBpc3N1aW5nIG9mIGRyYXdpbmcgY29tbWFuZHMgdG8gdGhlIEdQVS4gT24gQW5kcm9pZCBMIGFuZCBoaWdoZXIgZGV2aWNlcywgdGhpcyB3b3JrIGlzIGRvbmUgb24gYSBkZWRpY2F0ZWQgUmVuZGVyVGhyZWFkLCBpbnN0ZWFkIG9mIG9uIHRoZSBVSSBUaHJlYWQuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgLy8gUmVuZGVyVGhyZWFkCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAnRHJhd0ZyYW1lJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlbmRlclRocmVhZCBwb3J0aW9uIG9mIHRoZSBzdGFuZGFyZCBVSS9SZW5kZXJUaHJlYWQgc3BsaXQgZnJhbWUuIFRoaXMgcmVwcmVzZW50cyB0aGUgYWN0dWFsIGZvcm1hdGlvbiBhbmQgaXNzdWluZyBvZiBkcmF3aW5nIGNvbW1hbmRzIHRvIHRoZSBHUFUuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAnZG9GcmFtZScsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdSZW5kZXJUaHJlYWQgYW5pbWF0aW9uIGZyYW1lLiBSZXByZXNlbnRzIGRyYXdpbmcgd29yayBkb25lIGJ5IHRoZSBSZW5kZXJUaHJlYWQgb24gYSBmcmFtZSB3aGVyZSB0aGUgVUkgdGhyZWFkIGRpZCBub3QgcHJvZHVjZSBuZXcgZHJhd2luZyBjb250ZW50Lid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ3N5bmNGcmFtZVN0YXRlJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N5bmMgc3RhZ2UgYmV0d2VlbiB0aGUgVUkgdGhyZWFkIGFuZCB0aGUgUmVuZGVyVGhyZWFkLCB3aGVyZSB0aGUgVUkgdGhyZWFkIGhhbmRzIG9mZiBhIGZyYW1lIChpbmNsdWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgbW9kaWZpZWQgVmlld3MpLiBUaW1lIGluIHRoaXMgbWV0aG9kIHByaW1hcmlseSBjb25zaXN0cyBvZiB1cGxvYWRpbmcgbW9kaWZpZWQgQml0bWFwcyB0byB0aGUgR1BVLiBBZnRlciB0aGlzIHN5bmMgaXMgY29tcGxldGVkLCB0aGUgVUkgdGhyZWFkIGlzIHVuYmxvY2tlZCwgYW5kIHRoZSBSZW5kZXJUaHJlYWQgc3RhcnRzIHRvIHJlbmRlciB0aGUgZnJhbWUuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAnZmx1c2ggZHJhd2luZyBjb21tYW5kcycsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdJc3N1aW5nIHRoZSBub3cgY29tcGxldGUgZHJhd2luZyBjb21tYW5kcyB0byB0aGUgR1BVLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ2VnbFN3YXBCdWZmZXJzJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NvbXBsZXRlIEdQVSByZW5kZXJpbmcgb2YgdGhlIGZyYW1lLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgIC8vIFJlY3ljbGVyVmlldworICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ1JWIFNjcm9sbCcsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgY2FsY3VsYXRpbmcgYSBzY3JvbGwuIElmIHRoZXJlIGFyZSB0b28gbWFueSBvZiB0aGVzZSBpbiBTeXN0cmFjZSwgc29tZSBWaWV3cyBpbnNpZGUgUmVjeWNsZXJWaWV3IG1pZ2h0IGJlIGNhdXNpbmcgaXQuIFRyeSB0byBhdm9pZCB1c2luZyBFZGl0VGV4dCwgZm9jdXNhYmxlIHZpZXdzIG9yIGhhbmRsZSB0aGVtIHdpdGggY2FyZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdSViBPbkxheW91dCcsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdPbkxheW91dCBoYXMgYmVlbiBjYWxsZWQgYnkgdGhlIFZpZXcgc3lzdGVtLiBJZiB0aGlzIHNob3dzIHVwIHRvbyBtYW55IHRpbWVzIGluIFN5c3RyYWNlLCBtYWtlIHN1cmUgdGhlIGNoaWxkcmVuIG9mIFJlY3ljbGVyVmlldyBkbyBub3QgdXBkYXRlIHRoZW1zZWx2ZXMgZGlyZWN0bHkuIFRoaXMgd2lsbCBjYXVzZSBhIGZ1bGwgcmUtbGF5b3V0IGJ1dCB3aGVuIGl0IGhhcHBlbnMgdmlhIHRoZSBBZGFwdGVyIG5vdGlmeUl0ZW1DaGFuZ2VkLCBSZWN5Y2xlclZpZXcgY2FuIGF2b2lkIGZ1bGwgbGF5b3V0IGNhbGN1bGF0aW9uLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHJlZ2lzdGVyRXZlbnRJbmZvKHsKKyAgICAgICAgICB0aXRsZTogJ1JWIEZ1bGxJbnZhbGlkYXRlJywKKyAgICAgICAgICBkZXNjcmlwdGlvbjogJ05vdGlmeURhdGFTZXRDaGFuZ2VkIG9yIGVxdWFsIGhhcyBiZWVuIGNhbGxlZC4gSWYgdGhpcyBpcyB0YWtpbmcgYSBsb25nIHRpbWUsIHRyeSBzZW5kaW5nIGdyYW51bGFyIG5vdGlmeSBhZGFwdGVyIGNoYW5nZXMgaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgbm90aWZ5RGF0YVNldENoYW5nZWQgb3Igc2V0QWRhcHRlciAvIHN3YXBBZGFwdGVyLiBBZGRpbmcgc3RhYmxlIGlkcyB0byB5b3VyIGFkYXB0ZXIgbWlnaHQgaGVscC4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdSViBQYXJ0aWFsSW52YWxpZGF0ZScsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgcmViaW5kaW5nIGEgVmlldy4gSWYgdGhpcyBpcyB0YWtpbmcgYSBsb3Qgb2YgdGltZSwgY29uc2lkZXIgb3B0aW1pemluZyB5b3VyIGxheW91dCBvciBtYWtlIHN1cmUgeW91IGFyZSBub3QgZG9pbmcgZXh0cmEgb3BlcmF0aW9ucyBpbiBvbkJpbmRWaWV3SG9sZGVyIGNhbGwuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAnUlYgT25CaW5kVmlldycsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgcmViaW5kaW5nIGEgVmlldy4gSWYgdGhpcyBpcyB0YWtpbmcgYSBsb3Qgb2YgdGltZSwgY29uc2lkZXIgb3B0aW1pemluZyB5b3VyIGxheW91dCBvciBtYWtlIHN1cmUgeW91IGFyZSBub3QgZG9pbmcgZXh0cmEgb3BlcmF0aW9ucyBpbiBvbkJpbmRWaWV3SG9sZGVyIGNhbGwuJ30pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgcmVnaXN0ZXJFdmVudEluZm8oeworICAgICAgICAgIHRpdGxlOiAnUlYgQ3JlYXRlVmlldycsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdSZWN5Y2xlclZpZXcgaXMgY3JlYXRpbmcgYSBuZXcgVmlldy4gSWYgdG9vIG1hbnkgb2YgdGhlc2UgYXJlIHByZXNlbnQ6IDEpIFRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbSBpbiBSZWN5Y2xpbmcgKGUuZy4gY3VzdG9tIEFuaW1hdGlvbnMgdGhhdCBzZXQgdHJhbnNpZW50IHN0YXRlIGFuZCBwcmV2ZW50IHJlY3ljbGluZyBvciBJdGVtQW5pbWF0b3Igbm90IGltcGxlbWVudGluZyB0aGUgY29udHJhY3QgcHJvcGVybHkuIFNlZSBBZGFwdGVyI29uRmFpbGVkVG9SZWN5Y2xlVmlldyhWaWV3SG9sZGVyKS4gMikgVGhlcmUgbWF5IGJlIHRvbyBtYW55IGl0ZW0gdmlldyB0eXBlcy4gVHJ5IG1lcmdpbmcgdGhlbS4gMykgVGhlcmUgbWlnaHQgYmUgdG9vIG1hbnkgaXRlbUNoYW5nZSBhbmltYXRpb25zIGFuZCBub3QgZW5vdWdoIHNwYWNlIGluIFJlY3ljbGVyUG9vbC4gVHJ5IGluY3JlYXNpbmcgeW91ciBwb29sIHNpemUgYW5kIGl0ZW0gY2FjaGUgc2l6ZS4nfSk7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgICAvLyBHcmFwaGljcyArIENvbXBvc2l0aW9uCisgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgLy8gVE9ETyhjY3JhaWspOiBTdXJmYWNlRmxpbmdlciB3b3JrCisgICAgICByZWdpc3RlckV2ZW50SW5mbyh7CisgICAgICAgICAgdGl0bGU6ICdlZ2xTd2FwQnVmZmVycycsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgQ1BVIGhhcyBmaW5pc2hlZCBwcm9kdWNpbmcgZHJhd2luZyBjb21tYW5kcywgYW5kIGlzIGZsdXNoaW5nIGRyYXdpbmcgd29yayB0byB0aGUgR1BVLCBhbmQgcG9zdGluZyB0aGF0IGJ1ZmZlciB0byB0aGUgY29uc3VtZXIgKHdoaWNoIGlzIG9mdGVuIFN1cmZhY2VGbGluZ2VyIHdpbmRvdyBjb21wb3NpdGlvbikuIE9uY2UgdGhpcyBpcyBjb21wbGV0ZWQsIHRoZSBHUFUgY2FuIHByb2R1Y2UgdGhlIGZyYW1lIGNvbnRlbnQgd2l0aG91dCBhbnkgaW52b2x2ZW1lbnQgZnJvbSB0aGUgQ1BVLid9KTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICB9LAorCisgICAgYXBwbHlFdmVudEluZm9zUmVjdXJzaXZlXzogZnVuY3Rpb24ocGFyZW50TmFtZXMsIHNsaWNlKSB7CisgICAgICB2YXIgY2hlY2tFeHBlY3RlZFBhcmVudE5hbWVzID0gZnVuY3Rpb24oZXhwZWN0ZWRQYXJlbnROYW1lcykgeworICAgICAgICBpZiAoIWV4cGVjdGVkUGFyZW50TmFtZXMpCisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBleHBlY3RlZFBhcmVudE5hbWVzLnNvbWUoZnVuY3Rpb24obmFtZSkgeworICAgICAgICAgIHJldHVybiBuYW1lIGluIHBhcmVudE5hbWVzOworICAgICAgICB9KTsKKyAgICAgIH0KKworCisgICAgICAvLyBTZXQgRXZlbnRJbmZvIG9uIHRoZSBzbGljZSBpZiBpdCBtYXRjaGVzIHRpdGxlLCBhbmQgcGFyZW50LgorICAgICAgaWYgKHNsaWNlLnRpdGxlIGluIHRoaXMudGl0bGVJbmZvTG9va3VwKSB7CisgICAgICAgIGlmIChjaGVja0V4cGVjdGVkUGFyZW50TmFtZXModGhpcy50aXRsZVBhcmVudExvb2t1cFtzbGljZS50aXRsZV0pKQorICAgICAgICAgIHNsaWNlLmluZm8gPSB0aGlzLnRpdGxlSW5mb0xvb2t1cFtzbGljZS50aXRsZV07CisgICAgICB9CisKKyAgICAgIC8vIFB1c2ggc2xpY2UgaW50byBwYXJlbnROYW1lcywgYW5kIHJlY3Vyc2Ugb3ZlciBzdWJTbGljZXMuCisgICAgICBpZiAoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgLy8gSW5jcmVtZW50IHRpdGxlIGluIHBhcmVudE5hbWUgZGljdC4KKyAgICAgICAgaWYgKCEoc2xpY2UudGl0bGUgaW4gcGFyZW50TmFtZXMpKQorICAgICAgICAgIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXSA9IDA7CisgICAgICAgIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXSsrOworCisgICAgICAgIC8vIFJlY3Vyc2Ugb3ZlciBzdWJTbGljZXMuCisgICAgICAgIHNsaWNlLnN1YlNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlNsaWNlKSB7CisgICAgICAgICAgdGhpcy5hcHBseUV2ZW50SW5mb3NSZWN1cnNpdmVfKHBhcmVudE5hbWVzLCBzdWJTbGljZSk7CisgICAgICAgIH0sIHRoaXMpOworCisgICAgICAgIC8vIERlY3JlbWVudCB0aXRsZSBpbiBwYXJlbnROYW1lIGRpY3QuCisgICAgICAgIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXS0tOworICAgICAgICBpZiAocGFyZW50TmFtZXNbc2xpY2UudGl0bGVdID09IDApCisgICAgICAgICAgZGVsZXRlIHBhcmVudE5hbWVzW3NsaWNlLnRpdGxlXTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYXBwbHlFdmVudEluZm9zOiBmdW5jdGlvbihzbGljZUdyb3VwKSB7CisgICAgICBzbGljZUdyb3VwLnRvcExldmVsU2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgdGhpcy5hcHBseUV2ZW50SW5mb3NSZWN1cnNpdmVfKHt9LCBzbGljZSk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBBbmRyb2lkQXVkaXRvcjogQW5kcm9pZEF1ZGl0b3IKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXVkaXRvcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXVkaXRvcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9hdWRpdG9yX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX2F1ZGl0b3JfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfbW9kZWxfaGVscGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfbW9kZWxfaGVscGVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9tb2RlbF9oZWxwZXIuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX21vZGVsX2hlbHBlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfbW9kZWxfaGVscGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9tb2RlbF9oZWxwZXJfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfbW9kZWxfaGVscGVyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX21vZGVsX2hlbHBlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9zdXJmYWNlX2ZsaW5nZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2FuZHJvaWQvYW5kcm9pZF9zdXJmYWNlX2ZsaW5nZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX3N1cmZhY2VfZmxpbmdlci5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfc3VyZmFjZV9mbGluZ2VyLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9jYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2NjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY2YjZlMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9jYy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3QuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy90aWxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCI+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvY29uc3RhbnRzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvY29uc3RhbnRzLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9jb25zdGFudHMuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2NvbnN0YW50cy5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGVidWdfY29sb3JzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvZGVidWdfY29sb3JzLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9kZWJ1Z19jb2xvcnMuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2RlYnVnX2NvbG9ycy5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9saXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3RfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3RfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3RfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvaW5wdXRfbGF0ZW5jeV9hc3luY19zbGljZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGI0M2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbApAQCAtMCwwICsxLDYyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXN5bmNfc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmUuY2MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEFzeW5jU2xpY2UgPSB0ci5tb2RlbC5Bc3luY1NsaWNlOworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKworICB2YXIgVUlfQ09NUF9OQU1FID0gJ0lOUFVUX0VWRU5UX0xBVEVOQ1lfVUlfQ09NUE9ORU5UJzsKKyAgdmFyIE9SSUdJTkFMX0NPTVBfTkFNRSA9ICdJTlBVVF9FVkVOVF9MQVRFTkNZX09SSUdJTkFMX0NPTVBPTkVOVCc7CisgIHZhciBCRUdJTl9DT01QX05BTUUgPSAnSU5QVVRfRVZFTlRfTEFURU5DWV9CRUdJTl9SV0hfQ09NUE9ORU5UJzsKKyAgdmFyIEVORF9DT01QX05BTUUgPSAnSU5QVVRfRVZFTlRfTEFURU5DWV9URVJNSU5BVEVEX0ZSQU1FX1NXQVBfQ09NUE9ORU5UJzsKKworICB2YXIgTUFJTl9SRU5ERVJFUl9USFJFQURfTkFNRSA9ICdDclJlbmRlcmVyTWFpbic7CisgIHZhciBDT01QT1NJVE9SX1RIUkVBRF9OQU1FID0gJ0NvbXBvc2l0b3InOworCisgIHZhciBQT1NUVEFTS19GTE9XX0VWRU5UID0gJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtdG9wbGV2ZWwuZmxvdyc7CisgIHZhciBJUENfRkxPV19FVkVOVCA9ICdkaXNhYmxlZC1ieS1kZWZhdWx0LWlwYy5mbG93JzsKKworICB2YXIgSU5QVVRfRVZFTlRfVFlQRV9OQU1FUyA9IHsKKyAgICBDSEFSOiAnQ2hhcicsCisgICAgQ0xJQ0s6ICdHZXN0dXJlQ2xpY2snLAorICAgIENPTlRFWFRfTUVOVTogJ0NvbnRleHRNZW51JywKKyAgICBGTElOR19DQU5DRUw6ICdHZXN0dXJlRmxpbmdDYW5jZWwnLAorICAgIEZMSU5HX1NUQVJUOiAnR2VzdHVyZUZsaW5nU3RhcnQnLAorICAgIEtFWV9ET1dOOiAnS2V5RG93bicsCisgICAgS0VZX0RPV05fUkFXOiAnUmF3S2V5RG93bicsCisgICAgS0VZX1VQOiAnS2V5VXAnLAorICAgIExBVEVOQ1lfU0NST0xMX1VQREFURTogJ1Njcm9sbFVwZGF0ZScsCisgICAgTU9VU0VfRE9XTjogJ01vdXNlRG93bicsCisgICAgTU9VU0VfRU5URVI6ICdNb3VzZUVudGVyJywKKyAgICBNT1VTRV9MRUFWRTogJ01vdXNlTGVhdmUnLAorICAgIE1PVVNFX01PVkU6ICdNb3VzZU1vdmUnLAorICAgIE1PVVNFX1VQOiAnTW91c2VVcCcsCisgICAgTU9VU0VfV0hFRUw6ICdNb3VzZVdoZWVsJywKKyAgICBQSU5DSF9CRUdJTjogJ0dlc3R1cmVQaW5jaEJlZ2luJywKKyAgICBQSU5DSF9FTkQ6ICdHZXN0dXJlUGluY2hFbmQnLAorICAgIFBJTkNIX1VQREFURTogJ0dlc3R1cmVQaW5jaFVwZGF0ZScsCisgICAgU0NST0xMX0JFR0lOOiAnR2VzdHVyZVNjcm9sbEJlZ2luJywKKyAgICBTQ1JPTExfRU5EOiAnR2VzdHVyZVNjcm9sbEVuZCcsCisgICAgU0NST0xMX1VQREFURTogJ0dlc3R1cmVTY3JvbGxVcGRhdGUnLAorICAgIFNDUk9MTF9VUERBVEVfUkVOREVSRVI6ICdTY3JvbGxVcGRhdGUnLAorICAgIFNIT1dfUFJFU1M6ICdHZXN0dXJlU2hvd1ByZXNzJywKKyAgICBUQVA6ICdHZXN0dXJlVGFwJywKKyAgICBUQVBfQ0FOQ0VMOiAnR2VzdHVyZVRhcENhbmNlbCcsCisgICAgVEFQX0RPV046ICdHZXN0dXJlVGFwRG93bicsCisgICAgVE9VQ0hfQ0FOQ0VMOiAnVG91Y2hDYW5jZWwnLAorICAgIFRPVUNIX0VORDogJ1RvdWNoRW5kJywKKyAgICBUT1VDSF9NT1ZFOiAnVG91Y2hNb3ZlJywKKyAgICBUT1VDSF9TVEFSVDogJ1RvdWNoU3RhcnQnLAorICAgIFVOS05PV046ICdVTktOT1dOJworICB9OworCisgIGZ1bmN0aW9uIElucHV0TGF0ZW5jeUFzeW5jU2xpY2UoKSB7CisgICAgQXN5bmNTbGljZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50c18gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0aGlzLnR5cGVOYW1lXyA9IHVuZGVmaW5lZDsKKyAgICBpZiAoIXRoaXMuaXNMZWdhY3lFdmVudCkKKyAgICAgIHRoaXMuZGV0ZXJtaW5lTW9kZXJuVHlwZU5hbWVfKCk7CisgIH0KKworICBJbnB1dExhdGVuY3lBc3luY1NsaWNlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEFzeW5jU2xpY2UucHJvdG90eXBlLAorCisgICAgLy8gTGVnYWN5IElucHV0TGF0ZW5jeUFzeW5jU2xpY2VzIGludm9sdmUgYSB0b3AtbGV2ZWwgc2xpY2UgdGl0bGVkCisgICAgLy8gIklucHV0TGF0ZW5jeSIgY29udGFpbmluZyBhIHN1YlNsaWNlIHdob3NlIHRpdGxlIHN0YXJ0cyB3aXRoCisgICAgLy8gIklucHV0TGF0ZW5jeToiLiBNb2Rlcm4gSW5wdXRMYXRlbmN5QXN5bmNTbGljZXMgaW52b2x2ZSBhIHNpbmdsZQorICAgIC8vIHRvcC1sZXZlbCBzbGljZSB3aG9zZSB0aXRsZSBzdGFydHMgd2l0aCAiSW5wdXRMYXRlbmN5OjoiLgorICAgIC8vIExlZ2FjeSBzdWJTbGljZXMgYXJlIG5vdCBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUsIHNvCisgICAgLy8gZGV0ZXJtaW5lTGVnYWN5VHlwZU5hbWVfKCkgbXVzdCBiZSBjYWxsZWQgYXQgZ2V0IHRpbWUuCisgICAgLy8gU28gdGhpcyByZXR1cm5zIGZhbHNlIGZvciB0aGUgbGVnYWN5IHN1YlNsaWNlIGV2ZW50cyB0aXRsZWQgbGlrZQorICAgIC8vICJJbnB1dExhdGVuY3k6Rm9vIiBldmVuIHRob3VnaCB0aGV5IGFyZSB0ZWNobmljYWxseSBsZWdhY3kgZXZlbnRzLgorICAgIGdldCBpc0xlZ2FjeUV2ZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMudGl0bGUgPT09ICdJbnB1dExhdGVuY3knOworICAgIH0sCisKKyAgICBnZXQgdHlwZU5hbWUoKSB7CisgICAgICBpZiAoIXRoaXMudHlwZU5hbWVfKQorICAgICAgICB0aGlzLmRldGVybWluZUxlZ2FjeVR5cGVOYW1lXygpOworICAgICAgcmV0dXJuIHRoaXMudHlwZU5hbWVfOworICAgIH0sCisKKyAgICBjaGVja1R5cGVOYW1lXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMudHlwZU5hbWVfKQorICAgICAgICB0aHJvdyAnVW5hYmxlIHRvIGRldGVybWluZSB0eXBlTmFtZSc7CisgICAgICB2YXIgZm91bmQgPSBmYWxzZTsKKyAgICAgIGZvciAodmFyIHR5cGVfbmFtZSBpbiBJTlBVVF9FVkVOVF9UWVBFX05BTUVTKSB7CisgICAgICAgIGlmICh0aGlzLnR5cGVOYW1lID09PSBJTlBVVF9FVkVOVF9UWVBFX05BTUVTW3R5cGVfbmFtZV0pIHsKKyAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGlmICghZm91bmQpCisgICAgICAgIHRoaXMudHlwZU5hbWVfID0gSU5QVVRfRVZFTlRfVFlQRV9OQU1FUy5VTktOT1dOOworICAgIH0sCisKKyAgICBkZXRlcm1pbmVNb2Rlcm5UeXBlTmFtZV86IGZ1bmN0aW9uKCkgeworICAgICAgLy8gVGhpcyBtZXRob2Qgd29ya3MgYm90aCBvbiBtb2Rlcm4gZXZlbnRzIHRpdGxlZCBsaWtlCisgICAgICAvLyAiSW5wdXRMYXRlbmN5OjpGb28iIGFuZCBhbHNvIG9uIHRoZSBsZWdhY3kgc3ViU2xpY2VzIHRpdGxlZCBsaWtlCisgICAgICAvLyAiSW5wdXRMYXRlbmN5OkZvbyIuIE1vZGVybiBldmVudHMnIHRpdGxlcyBjb250YWluIDIgY29sb25zLCB3aGVyZWFzIHRoZQorICAgICAgLy8gbGVnYWN5IHN1YlNsaWNlcyBldmVudHMgY29udGFpbiAxIGNvbG9uLgorCisgICAgICB2YXIgbGFzdENvbG9uSW5kZXggPSB0aGlzLnRpdGxlLmxhc3RJbmRleE9mKCc6Jyk7CisgICAgICBpZiAobGFzdENvbG9uSW5kZXggPCAwKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBjaGFyYWN0ZXJBZnRlckxhc3RDb2xvbkluZGV4ID0gbGFzdENvbG9uSW5kZXggKyAxOworICAgICAgdGhpcy50eXBlTmFtZV8gPSB0aGlzLnRpdGxlLnNsaWNlKGNoYXJhY3RlckFmdGVyTGFzdENvbG9uSW5kZXgpOworCisgICAgICAvLyBDaGVjayB0aGF0IHRoZSBkZXRlcm1pbmVkIHR5cGVOYW1lIGlzIGtub3duLgorICAgICAgdGhpcy5jaGVja1R5cGVOYW1lXygpOworICAgIH0sCisKKyAgICBkZXRlcm1pbmVMZWdhY3lUeXBlTmFtZV86IGZ1bmN0aW9uKCkgeworICAgICAgLy8gSXRlcmF0ZSBvdmVyIGFsbCBkZXNjZW5kZW50IHN1YlNsaWNlcy4KKyAgICAgIHRoaXMuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGZ1bmN0aW9uKHN1YlNsaWNlKSB7CisKKyAgICAgICAgLy8gSWYgfHN1YlNsaWNlfCBpcyBub3QgYW4gSW5wdXRMYXRlbmN5QXN5bmNTbGljZSwgdGhlbiBpZ25vcmUgaXQuCisgICAgICAgIHZhciBzdWJTbGljZUlzQUlucHV0TGF0ZW5jeUFzeW5jU2xpY2UgPSAoCisgICAgICAgICAgICBzdWJTbGljZSBpbnN0YW5jZW9mIElucHV0TGF0ZW5jeUFzeW5jU2xpY2UpOworICAgICAgICBpZiAoIXN1YlNsaWNlSXNBSW5wdXRMYXRlbmN5QXN5bmNTbGljZSkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gSWYgfHN1YlNsaWNlfCBkb2VzIG5vdCBoYXZlIGEgdHlwZU5hbWUsIHRoZW4gaWdub3JlIGl0LgorICAgICAgICBpZiAoIXN1YlNsaWNlLnR5cGVOYW1lKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBJZiB8dGhpc3wgYWxyZWFkeSBoYXMgYSB0eXBlTmFtZSBhbmQgfHN1YlNsaWNlfCBoYXMgYSBkaWZmZXJlbnQKKyAgICAgICAgLy8gdHlwZU5hbWUsIHRoZW4gZXhwbG9kZSEKKyAgICAgICAgaWYgKHRoaXMudHlwZU5hbWVfICYmIHN1YlNsaWNlLnR5cGVOYW1lXykgeworICAgICAgICAgIHZhciBzdWJTbGljZUhhc0RpZmZlcmVudFR5cGVOYW1lID0gKAorICAgICAgICAgICAgICB0aGlzLnR5cGVOYW1lXyAhPT0gc3ViU2xpY2UudHlwZU5hbWVfKTsKKyAgICAgICAgICBpZiAoc3ViU2xpY2VIYXNEaWZmZXJlbnRUeXBlTmFtZSkgeworICAgICAgICAgICAgdGhyb3cgJ0lucHV0TGF0ZW5jeUFzeW5jU2xpY2UuZGV0ZXJtaW5lTGVnYWN5VHlwZU5hbWVfKCkgJyArCisgICAgICAgICAgICAgICcgZm91bmQgbXVsdGlwbGUgdHlwZU5hbWVzJzsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGUgdHlwZU5hbWUgb2YgfHRoaXN8IHRvcC1sZXZlbCBldmVudCBpcyB3aGF0ZXZlciB0aGUgdHlwZU5hbWUgb2YKKyAgICAgICAgLy8gfHN1YlNsaWNlfCBpcy4gU2V0IHx0aGlzLnR5cGVOYW1lX3wgdG8gdGhlIHN1YlNsaWNlJ3MgdHlwZU5hbWUuCisgICAgICAgIHRoaXMudHlwZU5hbWVfID0gc3ViU2xpY2UudHlwZU5hbWVfOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIC8vIElmIHR5cGVOYW1lIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLCB0aGVuIGV4cGxvZGUhCisgICAgICBpZiAoIXRoaXMudHlwZU5hbWVfKQorICAgICAgICB0aHJvdyAnSW5wdXRMYXRlbmN5QXN5bmNTbGljZS5kZXRlcm1pbmVMZWdhY3lUeXBlTmFtZV8oKSBmYWlsZWQnOworCisgICAgICAvLyBDaGVjayB0aGF0IHRoZSBkZXRlcm1pbmVkIHR5cGVOYW1lIGlzIGtub3duLgorICAgICAgdGhpcy5jaGVja1R5cGVOYW1lXygpOworICAgIH0sCisKKyAgICBnZXRSZW5kZXJlckhlbHBlcjogZnVuY3Rpb24oc291cmNlU2xpY2VzKSB7CisgICAgICB2YXIgdHJhY2VNb2RlbCA9IHRoaXMuc3RhcnRUaHJlYWQucGFyZW50Lm1vZGVsOworICAgICAgaWYgKCF0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlci5zdXBwb3J0c01vZGVsKHRyYWNlTW9kZWwpKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICB2YXIgbWFpblRocmVhZCA9IHVuZGVmaW5lZDsKKyAgICAgIHZhciBjb21wb3NpdG9yVGhyZWFkID0gdW5kZWZpbmVkOworCisgICAgICBmb3IgKHZhciBpIGluIHNvdXJjZVNsaWNlcykgeworICAgICAgICBpZiAoc291cmNlU2xpY2VzW2ldLnBhcmVudENvbnRhaW5lci5uYW1lID09PQorICAgICAgICAgICAgTUFJTl9SRU5ERVJFUl9USFJFQURfTkFNRSkKKyAgICAgICAgICBtYWluVGhyZWFkID0gc291cmNlU2xpY2VzW2ldLnBhcmVudENvbnRhaW5lcjsKKyAgICAgICAgZWxzZSBpZiAoc291cmNlU2xpY2VzW2ldLnBhcmVudENvbnRhaW5lci5uYW1lID09PQorICAgICAgICAgICAgQ09NUE9TSVRPUl9USFJFQURfTkFNRSkKKyAgICAgICAgICBjb21wb3NpdG9yVGhyZWFkID0gc291cmNlU2xpY2VzW2ldLnBhcmVudENvbnRhaW5lcjsKKworICAgICAgICBpZiAobWFpblRocmVhZCAmJiBjb21wb3NpdG9yVGhyZWFkKQorICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICB2YXIgbW9kZWxIZWxwZXIgPSBuZXcgdHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIodHJhY2VNb2RlbCk7CisgICAgICB2YXIgcmVuZGVyZXJIZWxwZXJzID0gbW9kZWxIZWxwZXIucmVuZGVyZXJIZWxwZXJzOworCisgICAgICB2YXIgcGlkcyA9IE9iamVjdC5rZXlzKHJlbmRlcmVySGVscGVycyk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBpZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHBpZCA9IHBpZHNbaV07CisgICAgICAgIHZhciByZW5kZXJlckhlbHBlciA9IHJlbmRlcmVySGVscGVyc1twaWRdOworICAgICAgICBpZiAocmVuZGVyZXJIZWxwZXIubWFpblRocmVhZCA9PT0gbWFpblRocmVhZCB8fAorICAgICAgICAgICAgcmVuZGVyZXJIZWxwZXIuY29tcG9zaXRvclRocmVhZCA9PT0gY29tcG9zaXRvclRocmVhZCkKKyAgICAgICAgICByZXR1cm4gcmVuZGVyZXJIZWxwZXI7CisgICAgICB9CisKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGFkZEVudGlyZVNsaWNlSGllcmFyY2h5OiBmdW5jdGlvbihzbGljZSkgeworICAgICAgdGhpcy5hc3NvY2lhdGVkRXZlbnRzXy5wdXNoKHNsaWNlKTsKKyAgICAgIHNsaWNlLml0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzKGZ1bmN0aW9uKHN1YnNlcXVlbnRTbGljZSkgeworICAgICAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHNfLnB1c2goc3Vic2VxdWVudFNsaWNlKTsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICBhZGREaXJlY3RseUFzc29jaWF0ZWRFdmVudHM6IGZ1bmN0aW9uKGZsb3dFdmVudHMpIHsKKyAgICAgIHZhciBzbGljZXMgPSBbXTsKKworICAgICAgZmxvd0V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGZsb3dFdmVudCkgeworICAgICAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHNfLnB1c2goZmxvd0V2ZW50KTsKKyAgICAgICAgdmFyIG5ld1NvdXJjZSA9IGZsb3dFdmVudC5zdGFydFNsaWNlLm1vc3RUb3BMZXZlbFNsaWNlOworICAgICAgICBpZiAoc2xpY2VzLmluZGV4T2YobmV3U291cmNlKSA9PT0gLTEpCisgICAgICAgICAgc2xpY2VzLnB1c2gobmV3U291cmNlKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICB2YXIgbGFzdEZsb3dFdmVudCA9IGZsb3dFdmVudHNbZmxvd0V2ZW50cy5sZW5ndGggLSAxXTsKKyAgICAgIHZhciBsYXN0U291cmNlID0gbGFzdEZsb3dFdmVudC5lbmRTbGljZS5tb3N0VG9wTGV2ZWxTbGljZTsKKyAgICAgIGlmIChzbGljZXMuaW5kZXhPZihsYXN0U291cmNlKSA9PT0gLTEpCisgICAgICAgIHNsaWNlcy5wdXNoKGxhc3RTb3VyY2UpOworCisgICAgICByZXR1cm4gc2xpY2VzOworICAgIH0sCisKKyAgICAvLyBGaW5kIHRoZSBMYXRlbmN5OjpTY3JvbGxVcGRhdGUgc2xpY2UgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUKKyAgICAvLyBJbnB1dExhdGVuY3k6Okdlc3R1cmVTY3JvbGxVcGRhdGUgc2xpY2UuCisgICAgLy8gVGhlIEMrKyBDTCB0aGF0IG1ha2VzIHRoaXMgY29ubmVjdGlvbiBpcyBhdDoKKyAgICAvLyBodHRwczovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzExNzg5NjMwMDMKKyAgICBhZGRTY3JvbGxVcGRhdGVFdmVudHM6IGZ1bmN0aW9uKHJlbmRlcmVySGVscGVyKSB7CisgICAgICBpZiAoIXJlbmRlcmVySGVscGVyIHx8ICFyZW5kZXJlckhlbHBlci5jb21wb3NpdG9yVGhyZWFkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBjb21wb3NpdG9yVGhyZWFkID0gcmVuZGVyZXJIZWxwZXIuY29tcG9zaXRvclRocmVhZDsKKyAgICAgIHZhciBnZXN0dXJlU2Nyb2xsVXBkYXRlU3RhcnQgPSB0aGlzLnN0YXJ0OworICAgICAgdmFyIGdlc3R1cmVTY3JvbGxVcGRhdGVFbmQgPSB0aGlzLmVuZDsKKworICAgICAgdmFyIGFsbENvbXBvc2l0b3JBc3luY1NsaWNlcyA9CisgICAgICAgIGNvbXBvc2l0b3JUaHJlYWQuYXN5bmNTbGljZUdyb3VwLnNsaWNlczsKKworICAgICAgZm9yICh2YXIgaSBpbiBhbGxDb21wb3NpdG9yQXN5bmNTbGljZXMpIHsKKyAgICAgICAgdmFyIHNsaWNlID0gYWxsQ29tcG9zaXRvckFzeW5jU2xpY2VzW2ldOworCisgICAgICAgIGlmIChzbGljZS50aXRsZSAhPT0gJ0xhdGVuY3k6OlNjcm9sbFVwZGF0ZScpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmFyIHBhcmVudElkID0gc2xpY2UuYXJncy5kYXRhLgorICAgICAgICAgICAgSU5QVVRfRVZFTlRfTEFURU5DWV9GT1JXQVJEX1NDUk9MTF9VUERBVEVfVE9fTUFJTl9DT01QT05FTlQuCisgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXI7CisKKyAgICAgICAgaWYgKHBhcmVudElkID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAvLyBPbGQgdHJhY2UsIHdlIGNhbiBvbmx5IHJlbHkgb24gdGhlIHRpbWVzdGFtcCB0byBmaW5kIHRoZSBzbGljZQorICAgICAgICAgIGlmIChzbGljZS5zdGFydCA8IGdlc3R1cmVTY3JvbGxVcGRhdGVTdGFydCB8fAorICAgICAgICAgICAgICBzbGljZS5zdGFydCA+PSBnZXN0dXJlU2Nyb2xsVXBkYXRlRW5kKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgLy8gTmV3IHRyYWNlLCB3ZSBjYW4gZGVmaW5pdGl2ZWx5IGZpbmQgdGhlIGxhdGVuY3kgc2xpY2UgYnkgY29tcGFyaW5nCisgICAgICAgICAgLy8gaXRzIHNlcXVlbmNlIG51bWJlciB3aXRoIGdlc3R1cmUgaWQKKyAgICAgICAgICBpZiAocGFyc2VJbnQocGFyZW50SWQpICE9PSBwYXJzZUludCh0aGlzLmlkKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgc2xpY2UuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgdGhpcy5hc3NvY2lhdGVkRXZlbnRzXy5wdXNoKGV2ZW50KTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0sCisKKyAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2xpY2UgaGllcmFyY2h5IGlzIHRyYWNrZWQgYnkgTGF0ZW5jeUluZm8gb2Ygb3RoZXIKKyAgICAvLyBpbnB1dCBsYXRlbmN5IGV2ZW50cy4gSWYgdGhlIHNsaWNlIGhpZXJhcmNoeSBpcyB0cmFja2VkIGJ5IGJvdGgsIHRoaXMKKyAgICAvLyBmdW5jdGlvbiBzdGlsbCByZXR1cm5zIHRydWUuCisgICAgYmVsb25nVG9PdGhlcklucHV0czogZnVuY3Rpb24oc2xpY2UsIGZsb3dFdmVudHMpIHsKKyAgICAgIHZhciBmcm9tT3RoZXJJbnB1dHMgPSBmYWxzZTsKKworICAgICAgc2xpY2UuaXRlcmF0ZUVudGlyZUhpZXJhcmNoeShmdW5jdGlvbihzdWJzZXF1ZW50U2xpY2UpIHsKKyAgICAgICAgaWYgKGZyb21PdGhlcklucHV0cykKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc3Vic2VxdWVudFNsaWNlLmluRmxvd0V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGluZmxvdykgeworICAgICAgICAgIGlmIChmcm9tT3RoZXJJbnB1dHMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICBpZiAoaW5mbG93LmNhdGVnb3J5LmluZGV4T2YoJ2lucHV0JykgPiAtMSkgeworICAgICAgICAgICAgaWYgKGZsb3dFdmVudHMuaW5kZXhPZihpbmZsb3cpID09PSAtMSkKKyAgICAgICAgICAgICAgZnJvbU90aGVySW5wdXRzID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIHJldHVybiBmcm9tT3RoZXJJbnB1dHM7CisgICAgfSwKKworICAgIC8vIFJldHVybiB0cnVlIGlmIHxldmVudHwgdHJpZ2dlcnMgc2xpY2VzIG9mIG90aGVyIGlucHV0cy4KKyAgICB0cmlnZ2VyT3RoZXJJbnB1dHM6IGZ1bmN0aW9uKGV2ZW50LCBmbG93RXZlbnRzKSB7CisgICAgICBpZiAoZXZlbnQub3V0Rmxvd0V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8CisgICAgICAgICAgZXZlbnQub3V0Rmxvd0V2ZW50cy5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgLy8gT25jZSB3ZSBmaXggdGhlIGJ1ZyBvZiBmbG93IGV2ZW50IGJpbmRpbmcsIHRoZXJlIHNob3VsZCBleGlzdCBvbmUgYW5kCisgICAgICAvLyBvbmx5IG9uZSBvdXRnb2luZyBmbG93IChQb3N0VGFzaykgZnJvbSBTY2hlZHVsZUJlZ2luSW1wbEZyYW1lRGVhZGxpbmUKKyAgICAgIC8vIGFuZCBQb3N0Q29tcG9zaXRlLgorICAgICAgdmFyIGZsb3cgPSBldmVudC5vdXRGbG93RXZlbnRzWzBdOworCisgICAgICBpZiAoZmxvdy5jYXRlZ29yeSAhPT0gUE9TVFRBU0tfRkxPV19FVkVOVCB8fAorICAgICAgICAgICFmbG93LmVuZFNsaWNlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBlbmRTbGljZSA9IGZsb3cuZW5kU2xpY2U7CisgICAgICBpZiAodGhpcy5iZWxvbmdUb090aGVySW5wdXRzKGVuZFNsaWNlLm1vc3RUb3BMZXZlbFNsaWNlLCBmbG93RXZlbnRzKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgLy8gRm9sbG93IG91dGdvaW5nIGZsb3cgb2Ygc3Vic2VxdWVudFNsaWNlcyBpbiB0aGUgY3VycmVudCBoaWVyYXJjaHkuCisgICAgLy8gV2UgYWxzbyBoYW5kbGUgY2FzZXMgd2hlcmUgZGlmZmVyZW50IGlucHV0cyBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyLgorICAgIGZvbGxvd1N1YnNlcXVlbnRTbGljZXM6IGZ1bmN0aW9uKGV2ZW50LCBxdWV1ZSwgdmlzaXRlZCwgZmxvd0V2ZW50cykgeworICAgICAgdmFyIHN0b3BGb2xsb3dpbmcgPSBmYWxzZTsKKyAgICAgIHZhciBpbnB1dEFjayA9IGZhbHNlOworCisgICAgICBldmVudC5pdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlcyhmdW5jdGlvbihzbGljZSkgeworICAgICAgICBpZiAoc3RvcEZvbGxvd2luZykKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gRG8gbm90IGZvbGxvdyBUYXNrUXVldWVNYW5hZ2VyOjpSdW5UYXNrIGJlY2F1c2UgaXQgY2F1c2VzCisgICAgICAgIC8vIG1hbnkgZmFsc2UgZXZlbnRzIHRvIGJlIGluY2x1ZGVkLgorICAgICAgICBpZiAoc2xpY2UudGl0bGUgPT09ICdUYXNrUXVldWVNYW5hZ2VyOjpSdW5UYXNrJykKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gRG8gbm90IGZvbGxvdyBTY2hlZHVsZWRBY3Rpb25TZW5kQmVnaW5NYWluRnJhbWUgYmVjYXVzZSB0aGUgcmVhbAorICAgICAgICAvLyBtYWluIHRocmVhZCBCZWdpbk1haW5GcmFtZSBpcyBhbHJlYWR5IHRyYWNlZCBieSBMYXRlbmN5SW5mbyBmbG93LgorICAgICAgICBpZiAoc2xpY2UudGl0bGUgPT09ICdUaHJlYWRQcm94eTo6U2NoZWR1bGVkQWN0aW9uU2VuZEJlZ2luTWFpbkZyYW1lJykKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gRG8gbm90IGZvbGxvdyBTY2hlZHVsZUJlZ2luSW1wbEZyYW1lRGVhZGxpbmUgdGhhdCB0cmlnZ2VycyBhbgorICAgICAgICAvLyBPbkJlZ2luSW1wbEZyYW1lRGVhZGxpbmUgdGhhdCBpcyB0cmFja2VkIGJ5IGFub3RoZXIgTGF0ZW5jeUluZm8uCisgICAgICAgIGlmIChzbGljZS50aXRsZSA9PT0gJ1NjaGVkdWxlcjo6U2NoZWR1bGVCZWdpbkltcGxGcmFtZURlYWRsaW5lJykgeworICAgICAgICAgIGlmICh0aGlzLnRyaWdnZXJPdGhlcklucHV0cyhzbGljZSwgZmxvd0V2ZW50cykpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBEbyBub3QgZm9sbG93IFBvc3RDb21wb3NpdGUgdGhhdCB0cmlnZ2VycyBDb21wb3NpdGVJbW1lZGlhdGVseQorICAgICAgICAvLyB0aGF0IGlzIHRyYWNrZWQgYnkgYW5vdGhlciBMYXRlbmN5SW5mby4KKyAgICAgICAgaWYgKHNsaWNlLnRpdGxlID09PSAnQ29tcG9zaXRvckltcGw6OlBvc3RDb21wb3NpdGUnKSB7CisgICAgICAgICAgaWYgKHRoaXMudHJpZ2dlck90aGVySW5wdXRzKHNsaWNlLCBmbG93RXZlbnRzKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0b3AgZm9sbG93aW5nIHRoZSByZXN0IG9mIHRoZSBjdXJyZW50IHNsaWNlIGhpZXJhcmNoeSBpZgorICAgICAgICAvLyBGaWx0ZXJBbmRTZW5kV2ViSW5wdXRFdmVudCBvY2N1cnMgYWZ0ZXIgUHJvY2Vzc0lucHV0RXZlbnRBY2suCisgICAgICAgIGlmIChzbGljZS50aXRsZSA9PT0gJ0lucHV0Um91dGVySW1wbDo6UHJvY2Vzc0lucHV0RXZlbnRBY2snKQorICAgICAgICAgIGlucHV0QWNrID0gdHJ1ZTsKKyAgICAgICAgaWYgKGlucHV0QWNrICYmCisgICAgICAgICAgICBzbGljZS50aXRsZSA9PT0gJ0lucHV0Um91dGVySW1wbDo6RmlsdGVyQW5kU2VuZFdlYklucHV0RXZlbnQnKQorICAgICAgICAgIHN0b3BGb2xsb3dpbmcgPSB0cnVlOworCisgICAgICAgIHRoaXMuZm9sbG93Q3VycmVudFNsaWNlKHNsaWNlLCBxdWV1ZSwgdmlzaXRlZCk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgLy8gRm9sbG93IG91dGdvaW5nIGZsb3cgZXZlbnRzIG9mIHRoZSBjdXJyZW50IHNsaWNlLgorICAgIGZvbGxvd0N1cnJlbnRTbGljZTogZnVuY3Rpb24oZXZlbnQsIHF1ZXVlLCB2aXNpdGVkKSB7CisgICAgICBldmVudC5vdXRGbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24ob3V0ZmxvdykgeworICAgICAgICBpZiAoKG91dGZsb3cuY2F0ZWdvcnkgPT09IFBPU1RUQVNLX0ZMT1dfRVZFTlQgfHwKKyAgICAgICAgICAgIG91dGZsb3cuY2F0ZWdvcnkgPT09IElQQ19GTE9XX0VWRU5UKSAmJgorICAgICAgICAgICAgb3V0Zmxvdy5lbmRTbGljZSkgeworICAgICAgICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50c18ucHVzaChvdXRmbG93KTsKKworICAgICAgICAgIHZhciBuZXh0RXZlbnQgPSBvdXRmbG93LmVuZFNsaWNlLm1vc3RUb3BMZXZlbFNsaWNlOworICAgICAgICAgIGlmICghdmlzaXRlZC5jb250YWlucyhuZXh0RXZlbnQpKSB7CisgICAgICAgICAgICB2aXNpdGVkLnB1c2gobmV4dEV2ZW50KTsKKyAgICAgICAgICAgIHF1ZXVlLnB1c2gobmV4dEV2ZW50KTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICBiYWNrdHJhY2VGcm9tRHJhdzogZnVuY3Rpb24oYmVnaW5JbXBsRnJhbWUsIHZpc2l0ZWQpIHsKKyAgICAgIHZhciBwZW5kaW5nRXZlbnRRdWV1ZSA9IFtdOworICAgICAgcGVuZGluZ0V2ZW50UXVldWUucHVzaChiZWdpbkltcGxGcmFtZS5tb3N0VG9wTGV2ZWxTbGljZSk7CisKKyAgICAgIHdoaWxlIChwZW5kaW5nRXZlbnRRdWV1ZS5sZW5ndGggIT09IDApIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gcGVuZGluZ0V2ZW50UXVldWUucG9wKCk7CisKKyAgICAgICAgdGhpcy5hZGRFbnRpcmVTbGljZUhpZXJhcmNoeShldmVudCk7CisKKyAgICAgICAgLy8gVE9ETyh5dWhhbyk6IEZvciBub3csIHdlIGJhY2t0cmFjZSBhbGwgdGhlIHdheSB0byB0aGUgc291cmNlIGlucHV0LgorICAgICAgICAvLyBCdXQgaXMgdGhpcyByZWFsbHkgbmVlZGVkPyBJIHdpbGwgaGF2ZSBhbiBlbnRyeSBpbiB0aGUgZGVzaWduCisgICAgICAgIC8vIGRvYyB0byBkaXNjdXNzIHRoaXMuCisgICAgICAgIGV2ZW50LmluRmxvd0V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGluZmxvdykgeworICAgICAgICAgIGlmIChpbmZsb3cuY2F0ZWdvcnkgPT09IFBPU1RUQVNLX0ZMT1dfRVZFTlQgJiYgaW5mbG93LnN0YXJ0U2xpY2UpIHsKKyAgICAgICAgICAgIHZhciBuZXh0RXZlbnQgPSBpbmZsb3cuc3RhcnRTbGljZS5tb3N0VG9wTGV2ZWxTbGljZTsKKyAgICAgICAgICAgIGlmICghdmlzaXRlZC5jb250YWlucyhuZXh0RXZlbnQpKSB7CisgICAgICAgICAgICAgIHZpc2l0ZWQucHVzaChuZXh0RXZlbnQpOworICAgICAgICAgICAgICBwZW5kaW5nRXZlbnRRdWV1ZS5wdXNoKG5leHRFdmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgc29ydFJhc3Rlcml6ZXJTbGljZXM6IGZ1bmN0aW9uKHJhc3RlcldvcmtlclRocmVhZHMsCisgICAgICAgIHNvcnRlZFJhc3Rlcml6ZXJTbGljZXMpIHsKKyAgICAgIHJhc3RlcldvcmtlclRocmVhZHMuZm9yRWFjaChmdW5jdGlvbihyYXN0ZXJpemVyKSB7CisgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHNvcnRlZFJhc3Rlcml6ZXJTbGljZXMsCisgICAgICAgICAgICByYXN0ZXJpemVyLnNsaWNlR3JvdXAuc2xpY2VzKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICBzb3J0ZWRSYXN0ZXJpemVyU2xpY2VzLnNvcnQoZnVuY3Rpb24oYSwgYikgeworICAgICAgICBpZiAoYS5zdGFydCAhPT0gYi5zdGFydCkKKyAgICAgICAgICByZXR1cm4gYS5zdGFydCAtIGIuc3RhcnQ7CisgICAgICAgIHJldHVybiBhLmd1aWQgLSBiLmd1aWQ7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLy8gRmluZCByYXN0ZXJpemF0aW9uIHNsaWNlcyB0aGF0IGhhdmUgdGhlIHNvdXJjZV9wcmVwYXJlX3RpbGVzX2lkCisgICAgLy8gc2FtZSBhcyB0aGUgcHJlcGFyZV90aWxlc19pZCBvZiBUaWxlTWFuYWdlcjo6UHJlcGFyZVRpbGVzCisgICAgLy8gVGhlIEMrKyBDTCB0aGF0IG1ha2VzIHRoaXMgY29ubmVjdGlvbiBpcyBhdDoKKyAgICAvLyBodHRwczovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzEyMDg2ODMwMDIvCisgICAgYWRkUmFzdGVyaXphdGlvbkV2ZW50czogZnVuY3Rpb24ocHJlcGFyZVRpbGVzLCByZW5kZXJlckhlbHBlciwKKyAgICAgICAgdmlzaXRlZCwgZmxvd0V2ZW50cywgc29ydGVkUmFzdGVyaXplclNsaWNlcykgeworICAgICAgaWYgKCFwcmVwYXJlVGlsZXMuYXJncy5wcmVwYXJlX3RpbGVzX2lkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGlmICghcmVuZGVyZXJIZWxwZXIgfHwgIXJlbmRlcmVySGVscGVyLnJhc3RlcldvcmtlclRocmVhZHMpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHJhc3RlcldvcmtlclRocmVhZHMgPSByZW5kZXJlckhlbHBlci5yYXN0ZXJXb3JrZXJUaHJlYWRzOworICAgICAgdmFyIHByZXBhcmVfdGlsZV9pZCA9IHByZXBhcmVUaWxlcy5hcmdzLnByZXBhcmVfdGlsZXNfaWQ7CisgICAgICB2YXIgcGVuZGluZ0V2ZW50UXVldWUgPSBbXTsKKworICAgICAgLy8gQ29sbGVjdCBhbGwgdGhlIHJhc3Rlcml6ZXIgdGFza3MuIFJldHVybiB0aGUgY2FjaGVkIGNvcHkgaWYgcG9zc2libGUuCisgICAgICBpZiAoc29ydGVkUmFzdGVyaXplclNsaWNlcy5sZW5ndGggPT09IDApCisgICAgICAgIHRoaXMuc29ydFJhc3Rlcml6ZXJTbGljZXMocmFzdGVyV29ya2VyVGhyZWFkcywgc29ydGVkUmFzdGVyaXplclNsaWNlcyk7CisKKyAgICAgIC8vIFRPRE8oeXVoYW8pOiBPbmNlIFRhc2tTZXRGaW5pc2hlZFRhc2tJbXBsIGFsc28gZ2V0IHRoZSBwcmVwYXJlX3RpbGVfaWQKKyAgICAgIC8vIHdlIGNhbiBzaW1wbHkgdHJhY2sgYnkgY2hlY2tpbmcgaWQgcmF0aGVyIHRoYW4gY291bnRpbmcuCisgICAgICB2YXIgbnVtRmluaXNoZWRUYXNrcyA9IDA7CisgICAgICB2YXIgUkFTVEVSX1RBU0tfVElUTEUgPSAnUmFzdGVyaXplclRhc2tJbXBsOjpSdW5PbldvcmtlclRocmVhZCc7CisgICAgICB2YXIgSU1BR0VERUNPREVfVEFTS19USVRMRSA9ICdJbWFnZURlY29kZVRhc2tJbXBsOjpSdW5PbldvcmtlclRocmVhZCc7CisgICAgICB2YXIgRklOSVNIRURfVEFTS19USVRMRSA9ICdUYXNrU2V0RmluaXNoZWRUYXNrSW1wbDo6UnVuT25Xb3JrZXJUaHJlYWQnOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJhc3Rlcml6ZXJTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHRhc2sgPSBzb3J0ZWRSYXN0ZXJpemVyU2xpY2VzW2ldOworCisgICAgICAgIGlmICh0YXNrLnRpdGxlID09PSBSQVNURVJfVEFTS19USVRMRSB8fAorICAgICAgICAgICAgdGFzay50aXRsZSA9PT0gSU1BR0VERUNPREVfVEFTS19USVRMRSkgeworICAgICAgICAgIGlmICh0YXNrLmFyZ3Muc291cmNlX3ByZXBhcmVfdGlsZXNfaWQgPT09IHByZXBhcmVfdGlsZV9pZCkKKyAgICAgICAgICAgIHRoaXMuYWRkRW50aXJlU2xpY2VIaWVyYXJjaHkodGFzay5tb3N0VG9wTGV2ZWxTbGljZSk7CisgICAgICAgIH0gZWxzZSBpZiAodGFzay50aXRsZSA9PT0gRklOSVNIRURfVEFTS19USVRMRSkgeworICAgICAgICAgIGlmICh0YXNrLnN0YXJ0ID4gcHJlcGFyZVRpbGVzLnN0YXJ0KSB7CisgICAgICAgICAgICBwZW5kaW5nRXZlbnRRdWV1ZS5wdXNoKHRhc2subW9zdFRvcExldmVsU2xpY2UpOworICAgICAgICAgICAgaWYgKCsrbnVtRmluaXNoZWRUYXNrcyA9PT0gMykKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8vIFRyYWNlIFBvc3RUYXNrIGZyb20gcmFzdGVyaXplciB0YXNrcy4KKyAgICAgIHdoaWxlIChwZW5kaW5nRXZlbnRRdWV1ZS5sZW5ndGggIT0gMCkgeworICAgICAgICB2YXIgZXZlbnQgPSBwZW5kaW5nRXZlbnRRdWV1ZS5wb3AoKTsKKworICAgICAgICB0aGlzLmFkZEVudGlyZVNsaWNlSGllcmFyY2h5KGV2ZW50KTsKKyAgICAgICAgdGhpcy5mb2xsb3dTdWJzZXF1ZW50U2xpY2VzKGV2ZW50LCBwZW5kaW5nRXZlbnRRdWV1ZSwgdmlzaXRlZCwKKyAgICAgICAgICAgIGZsb3dFdmVudHMpOworICAgICAgfQorICAgIH0sCisKKyAgICBhZGRPdGhlckNhdXNhbGx5UmVsYXRlZEV2ZW50czogZnVuY3Rpb24ocmVuZGVyZXJIZWxwZXIsIHNvdXJjZVNsaWNlcywKKyAgICAgICAgZmxvd0V2ZW50cywgc29ydGVkUmFzdGVyaXplclNsaWNlcykgeworICAgICAgdmFyIHBlbmRpbmdFdmVudFF1ZXVlID0gW107CisgICAgICAvLyBLZWVwIHRyYWNrIG9mIHZpc2l0ZWQgbm9kZXMgd2hlbiB0cmF2ZXJzaW5nIGEgREFHCisgICAgICB2YXIgdmlzaXRlZEV2ZW50cyA9IG5ldyBFdmVudFNldCgpOworICAgICAgdmFyIGJlZ2luSW1wbEZyYW1lID0gdW5kZWZpbmVkOworICAgICAgdmFyIHByZXBhcmVUaWxlcyA9IHVuZGVmaW5lZDsKKyAgICAgIHZhciBzb3J0ZWRSYXN0ZXJpemVyU2xpY2VzID0gW107CisKKyAgICAgIHNvdXJjZVNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNvdXJjZVNsaWNlKSB7CisgICAgICAgIGlmICghdmlzaXRlZEV2ZW50cy5jb250YWlucyhzb3VyY2VTbGljZSkpIHsKKyAgICAgICAgICB2aXNpdGVkRXZlbnRzLnB1c2goc291cmNlU2xpY2UpOworICAgICAgICAgIHBlbmRpbmdFdmVudFF1ZXVlLnB1c2goc291cmNlU2xpY2UpOworICAgICAgICB9CisgICAgICB9LCB0aGlzKTsKKworICAgICAgd2hpbGUgKHBlbmRpbmdFdmVudFF1ZXVlLmxlbmd0aCAhPSAwKSB7CisgICAgICAgIHZhciBldmVudCA9IHBlbmRpbmdFdmVudFF1ZXVlLnBvcCgpOworCisgICAgICAgIC8vIFB1c2ggdGhlIGN1cnJlbnQgZXZlbnQgY2h1bmsgaW50byBhc3NvY2lhdGVkRXZlbnRzLgorICAgICAgICB0aGlzLmFkZEVudGlyZVNsaWNlSGllcmFyY2h5KGV2ZW50KTsKKworICAgICAgICB0aGlzLmZvbGxvd0N1cnJlbnRTbGljZShldmVudCwgcGVuZGluZ0V2ZW50UXVldWUsIHZpc2l0ZWRFdmVudHMpOworCisgICAgICAgIHRoaXMuZm9sbG93U3Vic2VxdWVudFNsaWNlcyhldmVudCwgcGVuZGluZ0V2ZW50UXVldWUsIHZpc2l0ZWRFdmVudHMsCisgICAgICAgICAgICBmbG93RXZlbnRzKTsKKworICAgICAgICAvLyBUaGUgcmFzdGVyaXphdGlvbiB3b3JrIChDb21wb3NpdG9yVGlsZVdvcmtlciB0aHJlYWQpIGFuZCB0aGUKKyAgICAgICAgLy8gQ29tcG9zaXRvciB0aWxlIG1hbmFnZXIgYXJlIGNvbm5lY3QgYnkgdGhlIHByZXBhcmVfdGlsZXNfaWQKKyAgICAgICAgLy8gaW5zdGVhZCBvZiBmbG93IGV2ZW50cy4KKyAgICAgICAgdmFyIENPTVBPU0lUT1JfUFJFUEFSRV9USUxFUyA9ICdUaWxlTWFuYWdlcjo6UHJlcGFyZVRpbGVzJzsKKyAgICAgICAgcHJlcGFyZVRpbGVzID0gZXZlbnQuZmluZERlc2NlbmRlbnRTbGljZShDT01QT1NJVE9SX1BSRVBBUkVfVElMRVMpOworICAgICAgICBpZiAocHJlcGFyZVRpbGVzKQorICAgICAgICAgICB0aGlzLmFkZFJhc3Rlcml6YXRpb25FdmVudHMocHJlcGFyZVRpbGVzLCByZW5kZXJlckhlbHBlciwKKyAgICAgICAgICAgICAgIHZpc2l0ZWRFdmVudHMsIGZsb3dFdmVudHMsIHNvcnRlZFJhc3Rlcml6ZXJTbGljZXMpOworCisgICAgICAgIC8vIE9uQmVnaW5JbXBsRnJhbWVEZWFkbGluZSBjb3VsZCBiZSB0cmlnZ2VyZWQgYnkgb3RoZXIgaW5wdXRzLgorICAgICAgICAvLyBGb3Igbm93LCB3ZSBiYWNrdHJhY2UgZnJvbSBpdC4KKyAgICAgICAgLy8gVE9ETyh5dWhhbyk6IFRoZXJlIGFyZSBtb3JlIHN1Y2ggc2xpY2VzIHRoYXQgd2UgbmVlZCB0byBiYWNrdHJhY2UKKyAgICAgICAgdmFyIENPTVBPU0lUT1JfT05fQklGRCA9ICdTY2hlZHVsZXI6Ok9uQmVnaW5JbXBsRnJhbWVEZWFkbGluZSc7CisgICAgICAgIGJlZ2luSW1wbEZyYW1lID0gZXZlbnQuZmluZERlc2NlbmRlbnRTbGljZShDT01QT1NJVE9SX09OX0JJRkQpOworICAgICAgICBpZiAoYmVnaW5JbXBsRnJhbWUpCisgICAgICAgICAgdGhpcy5iYWNrdHJhY2VGcm9tRHJhdyhiZWdpbkltcGxGcmFtZSwgdmlzaXRlZEV2ZW50cyk7CisgICAgICB9CisKKyAgICAgIC8vIEEgc2VwYXJhdGUgcGFzcyBvbiBHZXN0dXJlU2Nyb2xsVXBkYXRlLgorICAgICAgLy8gU2Nyb2xsIHVwZGF0ZSBkb2Vzbid0IGdvIHRocm91Z2ggdGhlIG1haW4gdGhyZWFkLCBidXQgdGhlIGNvbXBvc2l0b3IKKyAgICAgIC8vIG1heSBnbyBiYWNrIHRvIHRoZSBtYWluIHRocmVhZCBpZiB0aGVyZSBpcyBhbiBvbnNjcm9sbCBldmVudCBoYW5kbGVyLgorICAgICAgLy8gVGhpcyBpcyBjYXB0dXJlZCBieSBhIGRpZmZlcmVudCBmbG93IGV2ZW50LCB3aGljaCBkb2VzIG5vdCBoYXZlIHRoZQorICAgICAgLy8gc2FtZSBJRCBhcyB0aGUgSW5wdXQgTGF0ZW5jeSBFdmVudCwgYnV0IGl0IGlzIHRlY2huaWNhbGx5IGNhdXNhbGx5CisgICAgICAvLyByZWxhdGVkIHRvIHRoZSBHZXN0dXJlU2Nyb2xsVXBkYXRlIGlucHV0LiBBZGQgdGhlbSBtYW51YWxseSBmb3Igbm93LgorICAgICAgdmFyIElOUFVUX0dTVSA9ICdJbnB1dExhdGVuY3k6Okdlc3R1cmVTY3JvbGxVcGRhdGUnOworICAgICAgaWYgKHRoaXMudGl0bGUgPT09IElOUFVUX0dTVSkKKyAgICAgICAgdGhpcy5hZGRTY3JvbGxVcGRhdGVFdmVudHMocmVuZGVyZXJIZWxwZXIpOworICAgIH0sCisKKyAgICBnZXQgYXNzb2NpYXRlZEV2ZW50cygpIHsKKyAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRFdmVudHNfLmxlbmd0aCAhPT0gMCkKKyAgICAgICAgcmV0dXJuIHRoaXMuYXNzb2NpYXRlZEV2ZW50c187CisKKyAgICAgIHZhciBtb2RlbEluZGljZXMgPSB0aGlzLnN0YXJ0VGhyZWFkLnBhcmVudC5tb2RlbC5tb2RlbEluZGljZXM7CisgICAgICB2YXIgZmxvd0V2ZW50cyA9IG1vZGVsSW5kaWNlcy5nZXRGbG93RXZlbnRzV2l0aElkKHRoaXMuaWQpOworCisgICAgICBpZiAoZmxvd0V2ZW50cy5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybiB0aGlzLmFzc29jaWF0ZWRFdmVudHNfOworCisgICAgICAvLyBTdGVwIDE6IEdldCBldmVudHMgdGhhdCBhcmUgZGlyZWN0bHkgY29ubmVjdGVkIGJ5IHRoZSBMYXRlbmN5SW5mbworICAgICAgLy8gZmxvdyBldmVudHMuIFRoaXMgZ2l2ZXMgdXMgYSBzbWFsbCBzZXQgb2YgZXZlbnRzIHRoYXQgYXJlIGd1YXJhbnRlZWQKKyAgICAgIC8vIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW5wdXQsIGJ1dCBhcmUgYWxtb3N0IGNlcnRhaW4gaW5jb21wbGV0ZS4KKyAgICAgIC8vIFdlIGNhbGwgdGhpcyBzZXQgInNvdXJjZSIgZXZlbnQgc2V0LgorICAgICAgLy8gVGhpcyBzdGVwIHJldHVybnMgdGhlICJzb3VyY2UiIGV2ZW50IHNldCAoc291cmNlU2xpY2VzKSwgd2hpY2ggaXMgdGhlbgorICAgICAgLy8gdXNlZCBpbiB0aGUgc2Vjb25kIHN0ZXAuCisgICAgICB2YXIgc291cmNlU2xpY2VzID0gdGhpcy5hZGREaXJlY3RseUFzc29jaWF0ZWRFdmVudHMoZmxvd0V2ZW50cyk7CisKKyAgICAgIC8vIFN0ZXAgMjogU3RhcnQgZnJvbSB0aGUgcHJldmlvdXNseSBjb25zdHJ1Y3RlZCAic291cmNlIiBldmVudCBzZXQsIHdlCisgICAgICAvLyBmb2xsb3cgdGhlIHRvcGxldmVsIChpLmUuLCBQb3N0VGFzaykgYW5kIElQQyBmbG93IGV2ZW50cy4gQW55IHNsaWNlcworICAgICAgLy8gdGhhdCBhcmUgcmVhY2hhYmxlIGZyb20gdGhlICJzb3VyY2UiIGV2ZW50IHNldCB2aWEgUG9zdFRhc2tzIG9yIElQQ3MKKyAgICAgIC8vIGFyZSBjb25zZXJ2YXRpdmVseSBjb25zaWRlcmVkIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW5wdXQgZXZlbnQuCisgICAgICAvLyBXZSB0aGVuIGRlYWwgd2l0aCBzcGVjaWZpYyBjYXNlcyB3aGVyZSBmbG93IGV2ZW50cyBlaXRoZXIgb3ZlciBpbmNsdWRlCisgICAgICAvLyBvciBtaXNzIGNhcHR1cmluZyBzbGljZXMuCisgICAgICB2YXIgcmVuZGVyZXJIZWxwZXIgPSB0aGlzLmdldFJlbmRlcmVySGVscGVyKHNvdXJjZVNsaWNlcyk7CisgICAgICB0aGlzLmFkZE90aGVyQ2F1c2FsbHlSZWxhdGVkRXZlbnRzKHJlbmRlcmVySGVscGVyLCBzb3VyY2VTbGljZXMsCisgICAgICAgICAgZmxvd0V2ZW50cyk7CisKKyAgICAgIHJldHVybiB0aGlzLmFzc29jaWF0ZWRFdmVudHNfOworICAgIH0sCisKKyAgICBnZXQgaW5wdXRMYXRlbmN5KCkgeworICAgICAgaWYgKCEoJ2RhdGEnIGluIHRoaXMuYXJncykpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBkYXRhID0gdGhpcy5hcmdzLmRhdGE7CisgICAgICBpZiAoIShFTkRfQ09NUF9OQU1FIGluIGRhdGEpKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICB2YXIgbGF0ZW5jeSA9IDA7CisgICAgICB2YXIgZW5kVGltZSA9IGRhdGFbRU5EX0NPTVBfTkFNRV0udGltZTsKKyAgICAgIGlmIChPUklHSU5BTF9DT01QX05BTUUgaW4gZGF0YSkgeworICAgICAgICBsYXRlbmN5ID0gZW5kVGltZSAtIGRhdGFbT1JJR0lOQUxfQ09NUF9OQU1FXS50aW1lOworICAgICAgfSBlbHNlIGlmIChVSV9DT01QX05BTUUgaW4gZGF0YSkgeworICAgICAgICBsYXRlbmN5ID0gZW5kVGltZSAtIGRhdGFbVUlfQ09NUF9OQU1FXS50aW1lOworICAgICAgfSBlbHNlIGlmIChCRUdJTl9DT01QX05BTUUgaW4gZGF0YSkgeworICAgICAgICBsYXRlbmN5ID0gZW5kVGltZSAtIGRhdGFbQkVHSU5fQ09NUF9OQU1FXS50aW1lOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB2YWxpZCBiZWdpbiBsYXRlbmN5IGNvbXBvbmVudCcpOworICAgICAgfQorICAgICAgcmV0dXJuIGxhdGVuY3k7CisgICAgfQorICB9OworCisgIHZhciBldmVudFR5cGVOYW1lcyA9IFsKKyAgICAnQ2hhcicsCisgICAgJ0NvbnRleHRNZW51JywKKyAgICAnR2VzdHVyZUNsaWNrJywKKyAgICAnR2VzdHVyZUZsaW5nQ2FuY2VsJywKKyAgICAnR2VzdHVyZUZsaW5nU3RhcnQnLAorICAgICdHZXN0dXJlU2Nyb2xsQmVnaW4nLAorICAgICdHZXN0dXJlU2Nyb2xsRW5kJywKKyAgICAnR2VzdHVyZVNjcm9sbFVwZGF0ZScsCisgICAgJ0dlc3R1cmVTaG93UHJlc3MnLAorICAgICdHZXN0dXJlVGFwJywKKyAgICAnR2VzdHVyZVRhcENhbmNlbCcsCisgICAgJ0dlc3R1cmVUYXBEb3duJywKKyAgICAnR2VzdHVyZVBpbmNoQmVnaW4nLAorICAgICdHZXN0dXJlUGluY2hFbmQnLAorICAgICdHZXN0dXJlUGluY2hVcGRhdGUnLAorICAgICdLZXlEb3duJywKKyAgICAnS2V5VXAnLAorICAgICdNb3VzZURvd24nLAorICAgICdNb3VzZUVudGVyJywKKyAgICAnTW91c2VMZWF2ZScsCisgICAgJ01vdXNlTW92ZScsCisgICAgJ01vdXNlVXAnLAorICAgICdNb3VzZVdoZWVsJywKKyAgICAnUmF3S2V5RG93bicsCisgICAgJ1Njcm9sbFVwZGF0ZScsCisgICAgJ1RvdWNoQ2FuY2VsJywKKyAgICAnVG91Y2hFbmQnLAorICAgICdUb3VjaE1vdmUnLAorICAgICdUb3VjaFN0YXJ0JworICBdOworICB2YXIgYWxsVHlwZU5hbWVzID0gWydJbnB1dExhdGVuY3knXTsKKyAgZXZlbnRUeXBlTmFtZXMuZm9yRWFjaChmdW5jdGlvbihldmVudFR5cGVOYW1lKSB7CisgICAgLy8gT2xkIHN0eWxlLgorICAgIGFsbFR5cGVOYW1lcy5wdXNoKCdJbnB1dExhdGVuY3k6JyArIGV2ZW50VHlwZU5hbWUpOworCisgICAgLy8gTmV3IHN0eWxlLgorICAgIGFsbFR5cGVOYW1lcy5wdXNoKCdJbnB1dExhdGVuY3k6OicgKyBldmVudFR5cGVOYW1lKTsKKyAgfSk7CisKKyAgQXN5bmNTbGljZS5yZWdpc3RlcigKKyAgICBJbnB1dExhdGVuY3lBc3luY1NsaWNlLAorICAgIHsKKyAgICAgIHR5cGVOYW1lczogYWxsVHlwZU5hbWVzLAorICAgICAgY2F0ZWdvcnlQYXJ0czogWydsYXRlbmN5SW5mbyddCisgICAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBJbnB1dExhdGVuY3lBc3luY1NsaWNlOiBJbnB1dExhdGVuY3lBc3luY1NsaWNlLAorICAgIElOUFVUX0VWRU5UX1RZUEVfTkFNRVM6IElOUFVUX0VWRU5UX1RZUEVfTkFNRVMKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvaW5wdXRfbGF0ZW5jeV9hc3luY19zbGljZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvaW5wdXRfbGF0ZW5jeV9hc3luY19zbGljZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA0ZTZiMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9pbnB1dF9sYXRlbmN5X2FzeW5jX3NsaWNlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDY5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9pbnB1dF9sYXRlbmN5X2FzeW5jX3NsaWNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsX2luZGljZXMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgbmV3QXN5bmNTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VFeDsKKyAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKKyAgdmFyIG5ld0Zsb3dFdmVudEV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld0Zsb3dFdmVudEV4OworICB2YXIgbmV3TW9kZWwgPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWw7CisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworCisgIHRlc3QoJ21hdGNoQnlUeXBlX29sZFN0eWxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNPdXRlciA9IG5ld0FzeW5jU2xpY2VFeCh7CisgICAgICB0aXRsZTogJ0lucHV0TGF0ZW5jeScsCisgICAgICBjYXQ6ICdiZW5jaG1hcmsnLAorICAgICAgc3RhcnQ6IDAsCisgICAgICBlbmQ6IDEwLAorICAgICAgaWQ6ICcweDEwMCcsCisgICAgICBpc1RvcExldmVsOiB0cnVlLAorICAgICAgYXJnczogeworICAgICAgICBkYXRhOiB7CisgICAgICAgICAgSU5QVVRfRVZFTlRfTEFURU5DWV9PUklHSU5BTF9DT01QT05FTlQ6IHsndGltZScgOiAwfSwKKyAgICAgICAgICBJTlBVVF9FVkVOVF9MQVRFTkNZX1RFUk1JTkFURURfRlJBTUVfU1dBUF9DT01QT05FTlQ6IHt0aW1lOiAxMH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0pOworICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICBzT3V0ZXIudHlwZU5hbWU7CisgICAgfSk7CisKKyAgICB2YXIgc0lubmVyID0gbmV3QXN5bmNTbGljZUV4KHsKKyAgICAgIHRpdGxlOiAnSW5wdXRMYXRlbmN5Okdlc3R1cmVTY3JvbGxVcGRhdGUnLAorICAgICAgY2F0OiAnYmVuY2htYXJrJywKKyAgICAgIHN0YXJ0OiAyLAorICAgICAgZW5kOiAxMCwKKyAgICAgIGlkOiAnMHgxMDAnLAorICAgICAgYXJnczogeworICAgICAgICAnc3RlcCc6ICdHZXN0dXJlU2Nyb2xsVXBkYXRlJworICAgICAgfQorICAgIH0pOworICAgIHNPdXRlci5zdWJTbGljZXMucHVzaChzSW5uZXIpOworICAgIGFzc2VydC5pc1RydWUoc091dGVyIGluc3RhbmNlb2YgdHIuZS5jYy5JbnB1dExhdGVuY3lBc3luY1NsaWNlKTsKKyAgICBhc3NlcnQuaXNUcnVlKHNJbm5lciBpbnN0YW5jZW9mIHRyLmUuY2MuSW5wdXRMYXRlbmN5QXN5bmNTbGljZSk7CisgICAgYXNzZXJ0LmVxdWFsKHNPdXRlci5pbnB1dExhdGVuY3ksIDEwKTsKKyAgICBhc3NlcnQuZXF1YWwodHIuZS5jYy5JTlBVVF9FVkVOVF9UWVBFX05BTUVTLlNDUk9MTF9VUERBVEUsIHNJbm5lci50eXBlTmFtZSk7CisgICAgYXNzZXJ0LmVxdWFsKHRyLmUuY2MuSU5QVVRfRVZFTlRfVFlQRV9OQU1FUy5TQ1JPTExfVVBEQVRFLCBzT3V0ZXIudHlwZU5hbWUpOworICB9KTsKKworICB0ZXN0KCdtYXRjaEJ5VHlwZV9uZXdTdHlsZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzSW5mbyA9IG5ld0FzeW5jU2xpY2VFeCh7CisgICAgICB0aXRsZTogJ0lucHV0TGF0ZW5jeTo6R2VzdHVyZVNjcm9sbFVwZGF0ZScsCisgICAgICBjYXQ6ICdiZW5jaG1hcmsnLAorICAgICAgc3RhcnQ6IDIsCisgICAgICBlbmQ6IDEwLAorICAgICAgaWQ6ICcweDEwMCcsCisgICAgICBpc1RvcExldmVsOiB0cnVlLAorICAgICAgYXJnczogeworICAgICAgICBkYXRhOiB7CisgICAgICAgICAgSU5QVVRfRVZFTlRfTEFURU5DWV9PUklHSU5BTF9DT01QT05FTlQ6IHsndGltZScgOiAwfSwKKyAgICAgICAgICBJTlBVVF9FVkVOVF9MQVRFTkNZX1RFUk1JTkFURURfRlJBTUVfU1dBUF9DT01QT05FTlQ6IHt0aW1lOiAxMH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0pOworCisgICAgYXNzZXJ0LmlzVHJ1ZShzSW5mbyBpbnN0YW5jZW9mIHRyLmUuY2MuSW5wdXRMYXRlbmN5QXN5bmNTbGljZSk7CisgICAgYXNzZXJ0LmVxdWFsKHNJbmZvLmlucHV0TGF0ZW5jeSwgMTApOworICAgIGFzc2VydC5lcXVhbCh0ci5lLmNjLklOUFVUX0VWRU5UX1RZUEVfTkFNRVMuU0NST0xMX1VQREFURSwgc0luZm8udHlwZU5hbWUpOworICB9KTsKKworICB0ZXN0KCd1bmtub3duVHlwZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzSW5mbyA9IG5ld0FzeW5jU2xpY2VFeCh7CisgICAgICB0aXRsZTogJ0lucHV0TGF0ZW5jeTo6QmFkVHlwZU5hbWUnLAorICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKKyAgICAgIHN0YXJ0OiAyLAorICAgICAgZW5kOiAxMCwKKyAgICAgIGlkOiAnMHgxMDAnLAorICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgIGFyZ3M6IHsKKyAgICAgICAgZGF0YTogeworICAgICAgICAgIElOUFVUX0VWRU5UX0xBVEVOQ1lfQkVHSU5fUldIX0NPTVBPTkVOVDogeyd0aW1lJyA6IDB9LAorICAgICAgICAgIElOUFVUX0VWRU5UX0xBVEVOQ1lfT1JJR0lOQUxfQ09NUE9ORU5UOiB7J3RpbWUnIDogMH0sCisgICAgICAgICAgSU5QVVRfRVZFTlRfTEFURU5DWV9URVJNSU5BVEVEX0ZSQU1FX1NXQVBfQ09NUE9ORU5UOiB7dGltZTogMTB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9KTsKKyAgICBhc3NlcnQuZXF1YWwodHIuZS5jYy5JTlBVVF9FVkVOVF9UWVBFX05BTUVTLlVOS05PV04sIHNJbmZvLnR5cGVOYW1lKTsKKyAgfSk7CisKKyAgdGVzdCgnZ2V0QXNzb2NpYXRlZEV2ZW50c0J5cGFzc1JlbmRlcmVyTWFpbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3TW9kZWwoZnVuY3Rpb24obSkgeworCisgICAgICB2YXIgcGIgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIHZhciBwciA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDIpOworICAgICAgdmFyIG1haW5Ccm93c2VyVGhyZWFkID0gcGIuZ2V0T3JDcmVhdGVUaHJlYWQoMTApOworICAgICAgdmFyIG1haW5SZW5kZXJlclRocmVhZCA9IHByLmdldE9yQ3JlYXRlVGhyZWFkKDIwKTsKKyAgICAgIHZhciBjb21wb3NpdG9yVGhyZWFkID0gcHIuZ2V0T3JDcmVhdGVUaHJlYWQoMjEpOworCisgICAgICBtYWluQnJvd3NlclRocmVhZC5uYW1lID0gJ0NyQnJvd3Nlck1haW4nOworICAgICAgbWFpblJlbmRlcmVyVGhyZWFkLm5hbWUgPSAnQ3JSZW5kZXJlck1haW4nOworICAgICAgY29tcG9zaXRvclRocmVhZC5uYW1lID0gJ0NvbXBvc2l0b3InOworCisgICAgICAvLyBFeHBlY3RhdGlvbjogTm9uZSBvZiBzMiBhbmQgczMgc2hvdWxkIGJlIGluY2x1ZGVkCisgICAgICAvLyBDckJyb3dzZXJNYWluOiAgICAgICAgW3MwXSAgICAgICAgICAgICBbczFdCisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAvfFwKKyAgICAgIC8vIENyUmVuZGVyZXJNYWluOiAgICAgICAgIHwgICBbczJdIFtzM10gICB8CisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIFx8LyAgICAgICAgICAgICAgfAorICAgICAgLy8gQ29tcG9zaXRvcjogICAgICAgICAgICBbczRdLS0tLS0tLS0tLS0tLXwKKworICAgICAgbS5zMCA9IG1haW5Ccm93c2VyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MwJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnMxID0gbWFpbkJyb3dzZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczEnLCBzdGFydDogNi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczIgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczInLCBzdGFydDogMi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczMgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczMnLCBzdGFydDogNC4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczQgPSBjb21wb3NpdG9yVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3M0Jywgc3RhcnQ6IDAuNSwgZHVyYXRpb246IDEuMCB9KSk7CisKKyAgICAgIG0uZjEgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgIHRpdGxlOiAndGVzdDEnLAorICAgICAgICBzdGFydDogMCwKKyAgICAgICAgZW5kOiAxMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zMCwKKyAgICAgICAgZW5kU2xpY2U6IG0uczQsCisgICAgICAgIGlkOiAnMHgxMDAnCisgICAgICB9KTsKKworICAgICAgbS5mMiA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICd0ZXN0MicsCisgICAgICAgIHN0YXJ0OiAyMCwKKyAgICAgICAgZW5kOiAzMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zNCwKKyAgICAgICAgZW5kU2xpY2U6IG0uczEsCisgICAgICAgIGlkOiAnMHgxMDAnCisgICAgICB9KTsKKworICAgICAgbS5mbG93RXZlbnRzLnB1c2gobS5mMSk7CisgICAgICBtLmZsb3dFdmVudHMucHVzaChtLmYyKTsKKworICAgICAgbS5hczAgPSBuZXdBc3luY1NsaWNlRXgoeworICAgICAgICB0aXRsZTogJ3Rlc3QxJywKKyAgICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKKyAgICAgICAgc3RhcnQ6IDIsCisgICAgICAgIGVuZDogMTAsCisgICAgICAgIGlkOiAnMHgxMDEnLAorICAgICAgICBpc1RvcExldmVsOiB0cnVlLAorICAgICAgICBzdGFydFRocmVhZDogbWFpbkJyb3dzZXJUaHJlYWQKKyAgICAgIH0pOworCisgICAgICBtLmFzMSA9IG5ld0FzeW5jU2xpY2VFeCh7CisgICAgICAgIHRpdGxlOiAndGVzdDInLAorICAgICAgICBjYXQ6ICdiZW5jaG1hcmssbGF0ZW5jeUluZm8nLAorICAgICAgICBzdGFydDogMiwKKyAgICAgICAgZW5kOiAxMCwKKyAgICAgICAgaWQ6ICcweDEwMCcsCisgICAgICAgIGlzVG9wTGV2ZWw6IHRydWUsCisgICAgICAgIHN0YXJ0VGhyZWFkOiBjb21wb3NpdG9yVGhyZWFkCisgICAgICB9KTsKKworICAgIH0pOworCisgICAgYXNzZXJ0LmlzVHJ1ZShtLmFzMC5hc3NvY2lhdGVkRXZlbnRzLmxlbmd0aCA9PT0gMCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShtLmFzMS5hc3NvY2lhdGVkRXZlbnRzLmVxdWFscygKKyAgICAgICAgbmV3IEV2ZW50U2V0KFttLmYxLCBtLnMwLCBtLmYyLCBtLnM0LCBtLnMxXSkpKTsKKyAgICBhc3NlcnQuZXF1YWwobS5hczEuYXNzb2NpYXRlZEV2ZW50c1swXS5pZCwgJzB4MTAwJyk7CisgIH0pOworCisgIHRlc3QoJ2dldEFzc29jaWF0ZWRFdmVudHNCeXBhc3NSZW5kZXJlck1haW5XaXRoT25TY3JvbGwnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKKworICAgICAgdmFyIHBiID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgcHIgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygyKTsKKyAgICAgIHZhciBtYWluQnJvd3NlclRocmVhZCA9IHBiLmdldE9yQ3JlYXRlVGhyZWFkKDEwKTsKKyAgICAgIHZhciBtYWluUmVuZGVyZXJUaHJlYWQgPSBwci5nZXRPckNyZWF0ZVRocmVhZCgyMCk7CisgICAgICB2YXIgY29tcG9zaXRvclRocmVhZCA9IHByLmdldE9yQ3JlYXRlVGhyZWFkKDIxKTsKKworICAgICAgbWFpbkJyb3dzZXJUaHJlYWQubmFtZSA9ICdDckJyb3dzZXJNYWluJzsKKyAgICAgIG1haW5SZW5kZXJlclRocmVhZC5uYW1lID0gJ0NyUmVuZGVyZXJNYWluJzsKKyAgICAgIGNvbXBvc2l0b3JUaHJlYWQubmFtZSA9ICdDb21wb3NpdG9yJzsKKworICAgICAgLy8gRXhwZWN0YXRpb246IHMyIHNob3VsZCBiZSBpbmNsdWRlZCBidXQgbm90IHMzCisgICAgICAvLyBHZXN0dXJlU2Nyb2xsVXBkYXRlOiAgWyAgICAgICBhczEgICAgICAgIF0KKyAgICAgIC8vIENyQnJvd3Nlck1haW46ICAgICAgICBbczBdICAgICAgICAgICAgICBbczFdCisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgL3xcCisgICAgICAvLyBDclJlbmRlcmVyTWFpbjogICAgICAgICB8ICAgIFtzMl0gW3MzXSAgIHwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgXHwvICAgL3xcICAgICAgICAgfAorICAgICAgLy8gQ29tcG9zaXRvcjogICAgICAgICAgICBbczRdX19ffF9fX19fX19fX198CisgICAgICAvLyBTY3JvbGxVcGRhdGU6ICAgICAgICAgICAgICAgWyAgIGFzMiAgIF0KKworICAgICAgbS5zMCA9IG1haW5Ccm93c2VyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MwJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnMxID0gbWFpbkJyb3dzZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczEnLCBzdGFydDogNi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczIgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczInLCBzdGFydDogMi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczMgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczMnLCBzdGFydDogNC4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczQgPSBjb21wb3NpdG9yVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3M0Jywgc3RhcnQ6IDAuNSwgZHVyYXRpb246IDEuMCB9KSk7CisKKyAgICAgIG0uZjEgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgIHRpdGxlOiAnZjEnLAorICAgICAgICBzdGFydDogMCwKKyAgICAgICAgZW5kOiAxMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zMCwKKyAgICAgICAgZW5kU2xpY2U6IG0uczQsCisgICAgICAgIGlkOiAnMHgxMDAnCisgICAgICB9KTsKKworICAgICAgbS5mMiA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICdmMicsCisgICAgICAgIHN0YXJ0OiAyMCwKKyAgICAgICAgZW5kOiAzMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zNCwKKyAgICAgICAgZW5kU2xpY2U6IG0uczEsCisgICAgICAgIGlkOiAnMHgxMDAnCisgICAgICB9KTsKKworICAgICAgbS5mMyA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICdmMycsCisgICAgICAgIHN0YXJ0OiAyMCwKKyAgICAgICAgZW5kOiAzMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zNCwKKyAgICAgICAgZW5kU2xpY2U6IG0uczIsCisgICAgICAgIGlkOiAnMHg4MDAnCisgICAgICB9KTsKKworICAgICAgbS5mbG93RXZlbnRzLnB1c2gobS5mMSk7CisgICAgICBtLmZsb3dFdmVudHMucHVzaChtLmYyKTsKKyAgICAgIG0uZmxvd0V2ZW50cy5wdXNoKG0uZjMpOworCisgICAgICBtLmFzMCA9IG1haW5Ccm93c2VyVGhyZWFkLmFzeW5jU2xpY2VHcm91cC5wdXNoKG5ld0FzeW5jU2xpY2VFeCh7CisgICAgICAgIHRpdGxlOiAnSW5wdXRMYXRlbmN5OjpHZXN0dXJlU2Nyb2xsVXBkYXRlJywKKyAgICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKKyAgICAgICAgYXJnczogeworICAgICAgICAgIGRhdGE6IHsKKyAgICAgICAgICAgIElOUFVUX0VWRU5UX0xBVEVOQ1lfRk9SV0FSRF9TQ1JPTExfVVBEQVRFX1RPX01BSU5fQ09NUE9ORU5UOiAxMDAKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHN0YXJ0OiAyLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBpZDogJzB4MTAxJywKKyAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgc3RhcnRUaHJlYWQ6IG1haW5Ccm93c2VyVGhyZWFkCisgICAgICB9KSk7CisgICAgICBhc3NlcnQuZXF1YWwodHIuZS5jYy5JTlBVVF9FVkVOVF9UWVBFX05BTUVTLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAgICAgICAgICAgbS5hczAudHlwZU5hbWUpOworCisgICAgICBtLmFzMSA9IG1haW5Ccm93c2VyVGhyZWFkLmFzeW5jU2xpY2VHcm91cC5wdXNoKG5ld0FzeW5jU2xpY2VFeCh7CisgICAgICAgIHRpdGxlOiAnSW5wdXRMYXRlbmN5OjpHZXN0dXJlU2Nyb2xsVXBkYXRlJywKKyAgICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKKyAgICAgICAgYXJnczogeworICAgICAgICAgIGRhdGE6IHt9CisgICAgICAgIH0sCisgICAgICAgIHN0YXJ0OiAwLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBpZDogJzB4MTAwJywKKyAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgc3RhcnRUaHJlYWQ6IG1haW5Ccm93c2VyVGhyZWFkCisgICAgICB9KSk7CisgICAgICBhc3NlcnQuZXF1YWwodHIuZS5jYy5JTlBVVF9FVkVOVF9UWVBFX05BTUVTLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAgICAgICAgICAgbS5hczEudHlwZU5hbWUpOworCisgICAgICBtLmFzMiA9IGNvbXBvc2l0b3JUaHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2gobmV3QXN5bmNTbGljZUV4KHsKKyAgICAgICAgdGl0bGU6ICdMYXRlbmN5OjpTY3JvbGxVcGRhdGUnLAorICAgICAgICBjYXQ6ICdiZW5jaG1hcmssbGF0ZW5jeUluZm8nLAorICAgICAgICBhcmdzOiB7CisgICAgICAgICAgZGF0YTogeworICAgICAgICAgICAgSU5QVVRfRVZFTlRfTEFURU5DWV9GT1JXQVJEX1NDUk9MTF9VUERBVEVfVE9fTUFJTl9DT01QT05FTlQ6IDEwMAorICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgc3RhcnQ6IDEuNSwKKyAgICAgICAgZW5kOiA4LAorICAgICAgICBpZDogJzB4ODAwJywKKyAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgc3RhcnRUaHJlYWQ6IGNvbXBvc2l0b3JUaHJlYWQKKyAgICAgIH0pKTsKKyAgICAgIGFzc2VydC5lcXVhbCh0ci5lLmNjLklOUFVUX0VWRU5UX1RZUEVfTkFNRVMuTEFURU5DWV9TQ1JPTExfVVBEQVRFLAorICAgICAgICAgICAgICAgICAgIG0uYXMyLnR5cGVOYW1lKTsKKyAgICB9KTsKKworICAgIGFzc2VydC5pc1RydWUobS5hczAuYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGggPT09IDApOworICAgIGFzc2VydC5pc1RydWUobS5hczEuYXNzb2NpYXRlZEV2ZW50cy5lcXVhbHMoCisgICAgICAgIG5ldyBFdmVudFNldChbbS5mMSwgbS5zMCwgbS5mMiwgbS5zNCwgbS5zMSwgbS5mMywgbS5zMl0pKSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uYXMxLmFzc29jaWF0ZWRFdmVudHNbMF0uaWQsICcweDEwMCcpOworICB9KTsKKworICB0ZXN0KCdnZXRBc3NvY2lhdGVkRXZlbnRzV2l0aG91dENvbW1pdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3TW9kZWwoZnVuY3Rpb24obSkgeworCisgICAgICB2YXIgcGIgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIHZhciBwciA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDIpOworICAgICAgdmFyIG1haW5Ccm93c2VyVGhyZWFkID0gcGIuZ2V0T3JDcmVhdGVUaHJlYWQoMTApOworICAgICAgdmFyIG1haW5SZW5kZXJlclRocmVhZCA9IHByLmdldE9yQ3JlYXRlVGhyZWFkKDIwKTsKKyAgICAgIHZhciBjb21wb3NpdG9yVGhyZWFkID0gcHIuZ2V0T3JDcmVhdGVUaHJlYWQoMjEpOworCisgICAgICBtYWluQnJvd3NlclRocmVhZC5uYW1lID0gJ0NyQnJvd3Nlck1haW4nOworICAgICAgbWFpblJlbmRlcmVyVGhyZWFkLm5hbWUgPSAnQ3JSZW5kZXJlck1haW4nOworICAgICAgY29tcG9zaXRvclRocmVhZC5uYW1lID0gJ0NvbXBvc2l0b3InOworCisgICAgICAvLyBFeHBlY3RhdGlvbjogbm9uZSBvZiBzMyBhbmQgczUgc2hvdWxkIGJlIGluY2x1ZGVkCisgICAgICAvLyBDckJyb3dzZXJNYWluOiAgICAgICAgW3MwXSAgICAgICAgICAgICBbczFdCisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAvfFwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIF9fX19fX19fX198CisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8CisgICAgICAvLyBDclJlbmRlcmVyTWFpbjogICAgICAgICB8ICAgW3MyXSBbczNdICAgICAgW3M1XQorICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBcfC8gICAvfFwKKyAgICAgIC8vIENvbXBvc2l0b3I6ICAgICAgICAgICAgW3M0XV9fX3wKKworICAgICAgbS5zMCA9IG1haW5Ccm93c2VyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MwJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnMxID0gbWFpbkJyb3dzZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczEnLCBzdGFydDogNi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczIgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczInLCBzdGFydDogMi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczMgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczMnLCBzdGFydDogNC4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczQgPSBjb21wb3NpdG9yVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3M0Jywgc3RhcnQ6IDAuNSwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnM1ID0gbWFpblJlbmRlcmVyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3M1Jywgc3RhcnQ6IDEwMC4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKworICAgICAgbS5mMSA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICdmMScsCisgICAgICAgIHN0YXJ0OiAwLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBzdGFydFNsaWNlOiBtLnMwLAorICAgICAgICBlbmRTbGljZTogbS5zNCwKKyAgICAgICAgaWQ6ICcweDEwMCcKKyAgICAgIH0pOworCisgICAgICBtLmYyID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICB0aXRsZTogJ2YyJywKKyAgICAgICAgc3RhcnQ6IDIwLAorICAgICAgICBlbmQ6IDMwLAorICAgICAgICBzdGFydFNsaWNlOiBtLnM0LAorICAgICAgICBlbmRTbGljZTogbS5zMiwKKyAgICAgICAgaWQ6ICcweDEwMCcKKyAgICAgIH0pOworCisgICAgICBtLmYzID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICB0aXRsZTogJ2YzJywKKyAgICAgICAgc3RhcnQ6IDIwLAorICAgICAgICBlbmQ6IDMwLAorICAgICAgICBzdGFydFNsaWNlOiBtLnMyLAorICAgICAgICBlbmRTbGljZTogbS5zMSwKKyAgICAgICAgaWQ6ICcweDEwMCcKKyAgICAgIH0pOworCisgICAgICBtLmZsb3dFdmVudHMucHVzaChtLmYxKTsKKyAgICAgIG0uZmxvd0V2ZW50cy5wdXNoKG0uZjIpOworICAgICAgbS5mbG93RXZlbnRzLnB1c2gobS5mMyk7CisKKyAgICAgIG0uYXMwID0gbmV3QXN5bmNTbGljZUV4KHsKKyAgICAgICAgdGl0bGU6ICd0ZXN0MScsCisgICAgICAgIGNhdDogJ2JlbmNobWFyayxsYXRlbmN5SW5mbycsCisgICAgICAgIHN0YXJ0OiAyLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBpZDogJzB4MTAxJywKKyAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgc3RhcnRUaHJlYWQ6IG1haW5Ccm93c2VyVGhyZWFkCisgICAgICB9KTsKKworICAgICAgbS5hczEgPSBuZXdBc3luY1NsaWNlRXgoeworICAgICAgICB0aXRsZTogJ3Rlc3QyJywKKyAgICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKKyAgICAgICAgc3RhcnQ6IDIsCisgICAgICAgIGVuZDogMTAsCisgICAgICAgIGlkOiAnMHgxMDAnLAorICAgICAgICBpc1RvcExldmVsOiB0cnVlLAorICAgICAgICBzdGFydFRocmVhZDogbWFpbkJyb3dzZXJUaHJlYWQKKyAgICAgIH0pOworCisgICAgfSk7CisKKyAgICBhc3NlcnQuaXNUcnVlKG0uYXMwLmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoID09PSAwKTsKKyAgICBhc3NlcnQuaXNUcnVlKG0uYXMxLmFzc29jaWF0ZWRFdmVudHMuZXF1YWxzKAorICAgICAgICBuZXcgRXZlbnRTZXQoW20uZjEsIG0uczAsIG0uZjIsIG0uczQsIG0uZjMsIG0uczIsIG0uczFdKSkpOworICAgIGFzc2VydC5lcXVhbChtLmFzMS5hc3NvY2lhdGVkRXZlbnRzWzBdLmlkLCAnMHgxMDAnKTsKKyAgfSk7CisKKyAgdGVzdCgnZ2V0QXNzb2NpYXRlZEV2ZW50c1dpbGxDb21taXQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKKworICAgICAgdmFyIHBiID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgcHIgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygyKTsKKyAgICAgIHZhciBtYWluQnJvd3NlclRocmVhZCA9IHBiLmdldE9yQ3JlYXRlVGhyZWFkKDEwKTsKKyAgICAgIHZhciBtYWluUmVuZGVyZXJUaHJlYWQgPSBwci5nZXRPckNyZWF0ZVRocmVhZCgyMCk7CisgICAgICB2YXIgY29tcG9zaXRvclRocmVhZCA9IHByLmdldE9yQ3JlYXRlVGhyZWFkKDIxKTsKKworICAgICAgbWFpbkJyb3dzZXJUaHJlYWQubmFtZSA9ICdDckJyb3dzZXJNYWluJzsKKyAgICAgIG1haW5SZW5kZXJlclRocmVhZC5uYW1lID0gJ0NyUmVuZGVyZXJNYWluJzsKKyAgICAgIGNvbXBvc2l0b3JUaHJlYWQubmFtZSA9ICdDb21wb3NpdG9yJzsKKworICAgICAgLy8gRXhwZWN0YXRpb246IHMzIHNob3VsZCBiZSBpbmNsdWRlZCBieSBnZXRPdGhlckNhc3VhbGx5UmVsYXRlZEV2ZW50cywKKyAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgYSBQb3N0VGFzayBzNyAtPiBzMywgYnV0IHM2IHNob3VsZG4ndCBiZSBpbmNsdWRlZC4KKyAgICAgIC8vIENyQnJvd3Nlck1haW46ICAgICAgICBbczBdICAgICAgICAgICAgICAgIFsgczEgXQorICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAvfFwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyAgICBzMiAgIF1fX19fICAgIHwKKyAgICAgIC8vIENyUmVuZGVyZXJNYWluOiAgICAgICAgIHwgICAvfFwgW3M3XSAgICAgfCAgIHwgICAgIFtzNl0KKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgfCAgIHwgICAgICAgfCAgIHwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgfCAgIHwgICAgICAgfCAgIHwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgXHwvICAgfCAgXHwvICAgICBcfC8gIHwKKyAgICAgIC8vIENvbXBvc2l0b3I6ICAgICAgICAgICAgW3M0XV9ffCAgW3MzXSAgIFtzNV1fX3wKKworICAgICAgbS5zMCA9IG1haW5Ccm93c2VyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MwJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnMxID0gbWFpbkJyb3dzZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczEnLCBzdGFydDogNi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczIgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczInLCBzdGFydDogMi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczMgPSBjb21wb3NpdG9yVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MzJywgc3RhcnQ6IDQuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnM0ID0gY29tcG9zaXRvclRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICAgIHsgdGl0bGU6ICdzNCcsIHN0YXJ0OiAwLjUsIGR1cmF0aW9uOiAxLjAgfSkpOworICAgICAgbS5zNSA9IGNvbXBvc2l0b3JUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczUnLCBzdGFydDogNS41LCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczYgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczYnLCBzdGFydDogMTAwMC4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczcgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczcnLCBzdGFydDogMi41LCBkdXJhdGlvbjogMC4yIH0pKTsKKworICAgICAgbWFpbkJyb3dzZXJUaHJlYWQuc2xpY2VHcm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKyAgICAgIG1haW5SZW5kZXJlclRocmVhZC5zbGljZUdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworICAgICAgY29tcG9zaXRvclRocmVhZC5zbGljZUdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgICBtLmYxID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICB0aXRsZTogJ2YxJywKKyAgICAgICAgc3RhcnQ6IDAsCisgICAgICAgIGVuZDogMTAsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uczAsCisgICAgICAgIGVuZFNsaWNlOiBtLnM0LAorICAgICAgICBpZDogJzB4MTAwJworICAgICAgfSk7CisKKyAgICAgIG0uZjIgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgIHRpdGxlOiAnZjInLAorICAgICAgICBzdGFydDogMjAsCisgICAgICAgIGVuZDogMzAsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uczQsCisgICAgICAgIGVuZFNsaWNlOiBtLnMyLAorICAgICAgICBpZDogJzB4MTAwJworICAgICAgfSk7CisKKyAgICAgIG0uZjMgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgIHRpdGxlOiAnZjMnLAorICAgICAgICBzdGFydDogMjAsCisgICAgICAgIGVuZDogMzAsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uczIsCisgICAgICAgIGVuZFNsaWNlOiBtLnM1LAorICAgICAgICBpZDogJzB4MTAwJworICAgICAgfSk7CisKKyAgICAgIG0uZjQgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgIHRpdGxlOiAnZjQnLAorICAgICAgICBzdGFydDogMjAsCisgICAgICAgIGVuZDogMzAsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uczUsCisgICAgICAgIGVuZFNsaWNlOiBtLnMxLAorICAgICAgICBpZDogJzB4MTAwJworICAgICAgfSk7CisKKyAgICAgIG0uZjUgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgIHRpdGxlOiAnZjUnLAorICAgICAgICBjYXQ6ICdkaXNhYmxlZC1ieS1kZWZhdWx0LXRvcGxldmVsLmZsb3cnLAorICAgICAgICBzdGFydDogMjAsCisgICAgICAgIGVuZDogMzAsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uczcsCisgICAgICAgIGVuZFNsaWNlOiBtLnMzLAorICAgICAgICBpZDogJzB4QUFBJworICAgICAgfSk7CisKKyAgICAgIG0uZmxvd0V2ZW50cy5wdXNoKG0uZjEpOworICAgICAgbS5mbG93RXZlbnRzLnB1c2gobS5mMik7CisgICAgICBtLmZsb3dFdmVudHMucHVzaChtLmYzKTsKKyAgICAgIG0uZmxvd0V2ZW50cy5wdXNoKG0uZjQpOworICAgICAgbS5mbG93RXZlbnRzLnB1c2gobS5mNSk7CisKKyAgICAgIG0uYXMwID0gbmV3QXN5bmNTbGljZUV4KHsKKyAgICAgICAgdGl0bGU6ICd0ZXN0MScsCisgICAgICAgIGNhdDogJ2JlbmNobWFyayxsYXRlbmN5SW5mbycsCisgICAgICAgIHN0YXJ0OiAyLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBpZDogJzB4MTAxJywKKyAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgc3RhcnRUaHJlYWQ6IG1haW5Ccm93c2VyVGhyZWFkCisgICAgICB9KTsKKworICAgICAgbS5hczEgPSBuZXdBc3luY1NsaWNlRXgoeworICAgICAgICB0aXRsZTogJ3Rlc3QyJywKKyAgICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKKyAgICAgICAgc3RhcnQ6IDIsCisgICAgICAgIGVuZDogMTAsCisgICAgICAgIGlkOiAnMHgxMDAnLAorICAgICAgICBpc1RvcExldmVsOiB0cnVlLAorICAgICAgICBzdGFydFRocmVhZDogbWFpbkJyb3dzZXJUaHJlYWQKKyAgICAgIH0pOworCisgICAgfSk7CisKKyAgICBhc3NlcnQuaXNUcnVlKG0uYXMwLmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoID09PSAwKTsKKyAgICBhc3NlcnQuaXNUcnVlKG0uYXMxLmFzc29jaWF0ZWRFdmVudHMuZXF1YWxzKG5ldyBFdmVudFNldCgKKyAgICAgICAgW20uZjEsIG0uZjIsIG0uZjMsIG0uZjQsIG0uZjUsCisgICAgICAgICBtLnMwLCBtLnMxLCBtLnMyLCBtLnMzLCBtLnM0LCBtLnM1LCBtLnM3XSkpKTsKKyAgICBhc3NlcnQuZXF1YWwobS5hczEuYXNzb2NpYXRlZEV2ZW50c1swXS5pZCwgJzB4MTAwJyk7CisgIH0pOworCisgIHRlc3QoJ2dldEFzc29jaWF0ZWRFdmVudHNFeGNsdWRlT3RoZXJJbnB1dHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKKworICAgICAgdmFyIHBiID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgcHIgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygyKTsKKyAgICAgIHZhciBtYWluQnJvd3NlclRocmVhZCA9IHBiLmdldE9yQ3JlYXRlVGhyZWFkKDEwKTsKKyAgICAgIHZhciBtYWluUmVuZGVyZXJUaHJlYWQgPSBwci5nZXRPckNyZWF0ZVRocmVhZCgyMCk7CisgICAgICB2YXIgY29tcG9zaXRvclRocmVhZCA9IHByLmdldE9yQ3JlYXRlVGhyZWFkKDIxKTsKKworICAgICAgbWFpbkJyb3dzZXJUaHJlYWQubmFtZSA9ICdDckJyb3dzZXJNYWluJzsKKyAgICAgIG1haW5SZW5kZXJlclRocmVhZC5uYW1lID0gJ0NyUmVuZGVyZXJNYWluJzsKKyAgICAgIGNvbXBvc2l0b3JUaHJlYWQubmFtZSA9ICdDb21wb3NpdG9yJzsKKworICAgICAgLy8gRXhwZWN0YXRpb246IHMzIHNob3VsZCBiZSBpbmNsdWRlZCBieSBnZXRPdGhlckNhc3VhbGx5UmVsYXRlZEV2ZW50cywKKyAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgYSBQb3N0VGFzayBzNyAtPiBzMy4gRXZlbiB0aG91Z2ggdGhlcmUgaXMgYWxzbyBhCisgICAgICAvLyBQb3N0VGFzayBmcm9tIHM5IHRvIHM2LCBzNiBzaG91bGRuJ3QgYmUgaW5jbHVkZWQgYmVjYXVzZSBpdCdzIHRyYWNrZWQKKyAgICAgIC8vIGJ5IExhdGVuY3lJbmZvIG9mIGFub3RoZXIgaW5wdXQuCisgICAgICAvLyBDckJyb3dzZXJNYWluOiAgICAgICAgW3MwXSAgICAgICAgICAgICAgICAgWyBzMSBdICAgW3M4XQorICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgL3xcICAgICB8CisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyAgICBzMiAgIF1fX19fICAgICB8ICAgICBcfC8KKyAgICAgIC8vIENyUmVuZGVyZXJNYWluOiAgICAgICAgIHwgICAvfFwgW3M3XSAgICAgfCAgICB8ICAgICBbczZdCisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwgICB8ICAgICAgIHwgICAgfCAgICAgL3xcCisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwgICB8ICAgICAgIHwgICAgfCAgICAgIHwKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgXHwvICAgfCAgXHwvICAgICBcfC8gICB8ICAgICAgfAorICAgICAgLy8gQ29tcG9zaXRvcjogICAgICAgICAgICBbczRdX198ICBbczNdICAgWyBzNSBdX3wgICAgICB8CisgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3M5XV9fX19fX19fX3wKKworICAgICAgbS5zMCA9IG1haW5Ccm93c2VyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MwJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnMxID0gbWFpbkJyb3dzZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczEnLCBzdGFydDogNi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczIgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczInLCBzdGFydDogMi4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczMgPSBjb21wb3NpdG9yVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MzJywgc3RhcnQ6IDQuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnM0ID0gY29tcG9zaXRvclRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICAgIHsgdGl0bGU6ICdzNCcsIHN0YXJ0OiAwLjUsIGR1cmF0aW9uOiAxLjAgfSkpOworICAgICAgbS5zNSA9IGNvbXBvc2l0b3JUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczUnLCBzdGFydDogNS41LCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICAgIG0uczYgPSBtYWluUmVuZGVyZXJUaHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczYnLCBzdGFydDogMTAuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnM3ID0gbWFpblJlbmRlcmVyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3M3Jywgc3RhcnQ6IDIuNSwgZHVyYXRpb246IDAuMiB9KSk7CisgICAgICBtLnM4ID0gbWFpblJlbmRlcmVyVGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3M4Jywgc3RhcnQ6IDkuNSwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnM5ID0gY29tcG9zaXRvclRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICAgIHsgdGl0bGU6ICdTY2hlZHVsZXI6OlNjaGVkdWxlQmVnaW5JbXBsRnJhbWVEZWFkbGluZScsCisgICAgICAgICAgICBzdGFydDogNS43LCBkdXJhdGlvbjogMC4yIH0pKTsKKworICAgICAgbWFpbkJyb3dzZXJUaHJlYWQuc2xpY2VHcm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKyAgICAgIG1haW5SZW5kZXJlclRocmVhZC5zbGljZUdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworICAgICAgY29tcG9zaXRvclRocmVhZC5zbGljZUdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgICBtLmYxID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICB0aXRsZTogJ2YxJywKKyAgICAgICAgY2F0OiAnaW5wdXQnLAorICAgICAgICBzdGFydDogMCwKKyAgICAgICAgZW5kOiAxMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zMCwKKyAgICAgICAgZW5kU2xpY2U6IG0uczQsCisgICAgICAgIGlkOiAnMHgxMDAnCisgICAgICB9KTsKKworICAgICAgbS5mMiA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICdmMicsCisgICAgICAgIGNhdDogJ2lucHV0JywKKyAgICAgICAgc3RhcnQ6IDIwLAorICAgICAgICBlbmQ6IDMwLAorICAgICAgICBzdGFydFNsaWNlOiBtLnM0LAorICAgICAgICBlbmRTbGljZTogbS5zMiwKKyAgICAgICAgaWQ6ICcweDEwMCcKKyAgICAgIH0pOworCisgICAgICBtLmYzID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICB0aXRsZTogJ2YzJywKKyAgICAgICAgY2F0OiAnaW5wdXQnLAorICAgICAgICBzdGFydDogMjAsCisgICAgICAgIGVuZDogMzAsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uczIsCisgICAgICAgIGVuZFNsaWNlOiBtLnM1LAorICAgICAgICBpZDogJzB4MTAwJworICAgICAgfSk7CisKKyAgICAgIG0uZjQgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgIHRpdGxlOiAnZjQnLAorICAgICAgICBjYXQ6ICdpbnB1dCcsCisgICAgICAgIHN0YXJ0OiAyMCwKKyAgICAgICAgZW5kOiAzMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zNSwKKyAgICAgICAgZW5kU2xpY2U6IG0uczEsCisgICAgICAgIGlkOiAnMHgxMDAnCisgICAgICB9KTsKKworICAgICAgbS5mNSA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICdmNScsCisgICAgICAgIGNhdDogJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtdG9wbGV2ZWwuZmxvdycsCisgICAgICAgIHN0YXJ0OiAyMCwKKyAgICAgICAgZW5kOiAzMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zNywKKyAgICAgICAgZW5kU2xpY2U6IG0uczMsCisgICAgICAgIGlkOiAnMHhBQUEnCisgICAgICB9KTsKKworICAgICAgbS5mNiA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICdmNicsCisgICAgICAgIGNhdDogJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtdG9wbGV2ZWwuZmxvdycsCisgICAgICAgIHN0YXJ0OiAyMCwKKyAgICAgICAgZW5kOiAzMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zOSwKKyAgICAgICAgZW5kU2xpY2U6IG0uczYsCisgICAgICAgIGlkOiAnMHhBQUInCisgICAgICB9KTsKKworICAgICAgbS5mNyA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICdmNycsCisgICAgICAgIGNhdDogJ2lucHV0JywKKyAgICAgICAgc3RhcnQ6IDIwLAorICAgICAgICBlbmQ6IDMwLAorICAgICAgICBzdGFydFNsaWNlOiBtLnM4LAorICAgICAgICBlbmRTbGljZTogbS5zNiwKKyAgICAgICAgaWQ6ICcweDEwMicKKyAgICAgIH0pOworCisgICAgICBtLmZsb3dFdmVudHMucHVzaChtLmYxKTsKKyAgICAgIG0uZmxvd0V2ZW50cy5wdXNoKG0uZjIpOworICAgICAgbS5mbG93RXZlbnRzLnB1c2gobS5mMyk7CisgICAgICBtLmZsb3dFdmVudHMucHVzaChtLmY0KTsKKyAgICAgIG0uZmxvd0V2ZW50cy5wdXNoKG0uZjUpOworICAgICAgbS5mbG93RXZlbnRzLnB1c2gobS5mNik7CisgICAgICBtLmZsb3dFdmVudHMucHVzaChtLmY3KTsKKworICAgICAgbS5hczAgPSBuZXdBc3luY1NsaWNlRXgoeworICAgICAgICB0aXRsZTogJ3Rlc3QxJywKKyAgICAgICAgY2F0OiAnYmVuY2htYXJrLGxhdGVuY3lJbmZvJywKKyAgICAgICAgc3RhcnQ6IDIsCisgICAgICAgIGVuZDogMTAsCisgICAgICAgIGlkOiAnMHgxMDEnLAorICAgICAgICBpc1RvcExldmVsOiB0cnVlLAorICAgICAgICBzdGFydFRocmVhZDogbWFpbkJyb3dzZXJUaHJlYWQKKyAgICAgIH0pOworCisgICAgICBtLmFzMSA9IG5ld0FzeW5jU2xpY2VFeCh7CisgICAgICAgIHRpdGxlOiAndGVzdDInLAorICAgICAgICBjYXQ6ICdiZW5jaG1hcmssbGF0ZW5jeUluZm8nLAorICAgICAgICBzdGFydDogMiwKKyAgICAgICAgZW5kOiAxMCwKKyAgICAgICAgaWQ6ICcweDEwMCcsCisgICAgICAgIGlzVG9wTGV2ZWw6IHRydWUsCisgICAgICAgIHN0YXJ0VGhyZWFkOiBtYWluQnJvd3NlclRocmVhZAorICAgICAgfSk7CisKKyAgICAgIG0uYXMyID0gbmV3QXN5bmNTbGljZUV4KHsKKyAgICAgICAgdGl0bGU6ICd0ZXN0MicsCisgICAgICAgIGNhdDogJ2JlbmNobWFyayxsYXRlbmN5SW5mbycsCisgICAgICAgIHN0YXJ0OiAyLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBpZDogJzB4MTAyJywKKyAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgc3RhcnRUaHJlYWQ6IG1haW5Ccm93c2VyVGhyZWFkCisgICAgICB9KTsKKworICAgIH0pOworCisgICAgYXNzZXJ0LmlzVHJ1ZShtLmFzMC5hc3NvY2lhdGVkRXZlbnRzLmxlbmd0aCA9PT0gMCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShtLmFzMS5hc3NvY2lhdGVkRXZlbnRzLmVxdWFscyhuZXcgRXZlbnRTZXQoCisgICAgICAgIFttLmYxLCBtLmYyLCBtLmYzLCBtLmY0LCBtLmY1LAorICAgICAgICAgbS5zMCwgbS5zMSwgbS5zMiwgbS5zMywgbS5zNCwgbS5zNSwgbS5zNywgbS5zOV0pKSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uYXMxLmFzc29jaWF0ZWRFdmVudHNbMF0uaWQsICcweDEwMCcpOworICB9KTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9pbXBsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfaW1wbC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfaW1wbC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfaW1wbC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGwuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdF9kYXRhLmpzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaW1wbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaW1wbC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9pbXBsLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2ltcGwuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ0ZjM4ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwKQEAgLTAsMCArMSw0MTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9hc19pbWFnZV9kYXRhLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3V0aWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yZWN0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvb2JqZWN0X2luc3RhbmNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuZS5jYycsIGZ1bmN0aW9uKCkgeworICB2YXIgT2JqZWN0U25hcHNob3QgPSB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdDsKKworICAvLyBOdW1iZXIgb2YgcGljdHVyZXMgY3JlYXRlZC4gVXNlZCBhcyBhbiB1bmlxdWVJZCBiZWNhdXNlIHdlIGFyZSBpbW11dGFibGUuCisgIHZhciBQaWN0dXJlQ291bnQgPSAwOworICB2YXIgT1BTX1RJTUlOR19JVEVSQVRJT05TID0gMzsKKworICBmdW5jdGlvbiBQaWN0dXJlKHNrcDY0LCBsYXllclJlY3QpIHsKKyAgICB0aGlzLnNrcDY0XyA9IHNrcDY0OworICAgIHRoaXMubGF5ZXJSZWN0XyA9IGxheWVyUmVjdDsKKworICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKKyAgfQorCisgIFBpY3R1cmUucHJvdG90eXBlID0geworICAgIGdldCBjYW5TYXZlKCkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGdldCBsYXllclJlY3QoKSB7CisgICAgICByZXR1cm4gdGhpcy5sYXllclJlY3RfOworICAgIH0sCisKKyAgICBnZXQgZ3VpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmd1aWRfOworICAgIH0sCisKKyAgICBnZXRCYXNlNjRTa3BEYXRhOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnNrcDY0XzsKKyAgICB9LAorCisgICAgZ2V0T3BzOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghUGljdHVyZVNuYXBzaG90LkNhbkdldE9wcygpKSB7CisgICAgICAgIGNvbnNvbGUuZXJyb3IoUGljdHVyZVNuYXBzaG90Lkhvd1RvRW5hYmxlUGljdHVyZURlYnVnZ2luZygpKTsKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIH0KKworICAgICAgdmFyIG9wcyA9IHdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRPcHMoeworICAgICAgICBza3A2NDogdGhpcy5za3A2NF8sCisgICAgICAgIHBhcmFtczogeworICAgICAgICAgIGxheWVyX3JlY3Q6IHRoaXMubGF5ZXJSZWN0Xy50b0FycmF5KCkKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGlmICghb3BzKQorICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZ2V0IHBpY3R1cmUgb3BzLicpOworCisgICAgICByZXR1cm4gb3BzOworICAgIH0sCisKKyAgICBnZXRPcFRpbWluZ3M6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCFQaWN0dXJlU25hcHNob3QuQ2FuR2V0T3BUaW1pbmdzKCkpIHsKKyAgICAgICAgY29uc29sZS5lcnJvcihQaWN0dXJlU25hcHNob3QuSG93VG9FbmFibGVQaWN0dXJlRGVidWdnaW5nKCkpOworICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgfQorCisgICAgICB2YXIgb3BUaW1pbmdzID0gd2luZG93LmNocm9tZS5za2lhQmVuY2htYXJraW5nLmdldE9wVGltaW5ncyh7CisgICAgICAgIHNrcDY0OiB0aGlzLnNrcDY0XywKKyAgICAgICAgcGFyYW1zOiB7CisgICAgICAgICAgbGF5ZXJfcmVjdDogdGhpcy5sYXllclJlY3RfLnRvQXJyYXkoKQorICAgICAgICB9CisgICAgICB9KTsKKworICAgICAgaWYgKCFvcFRpbWluZ3MpCisgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBnZXQgcGljdHVyZSBvcCB0aW1pbmdzLicpOworCisgICAgICByZXR1cm4gb3BUaW1pbmdzOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBUYWcgZWFjaCBvcCB3aXRoIHRoZSB0aW1lIGl0IHRha2VzIHRvIHJhc3Rlcml6ZS4KKyAgICAgKgorICAgICAqIEZJWE1FOiBXZSBzaG91bGQgdXNlIHJlYWwgc3RhdGlzdGljcyB0byBnZXQgYmV0dGVyIG51bWJlcnMgaGVyZSwgc2VlCisgICAgICogICAgICAgIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdHJhY2Utdmlld2VyL2lzc3Vlcy9kZXRhaWw/aWQ9MzU3CisgICAgICoKKyAgICAgKiBAcGFyYW0ge0FycmF5fSBvcHMgQXJyYXkgb2YgU2tpYSBvcGVyYXRpb25zLgorICAgICAqIEByZXR1cm4ge0FycmF5fSBTa2lhIG9wcyB3aGVyZSBvcC5jbWRfdGltZSBjb250YWlucyB0aGUgYXNzb2NpYXRlZCB0aW1lCisgICAgICogICAgICAgICBmb3IgYSBnaXZlbiBvcC4KKyAgICAgKi8KKyAgICB0YWdPcHNXaXRoVGltaW5nczogZnVuY3Rpb24ob3BzKSB7CisgICAgICB2YXIgb3BUaW1pbmdzID0gbmV3IEFycmF5KCk7CisgICAgICBmb3IgKHZhciBpdGVyYXRpb24gPSAwOyBpdGVyYXRpb24gPCBPUFNfVElNSU5HX0lURVJBVElPTlM7IGl0ZXJhdGlvbisrKSB7CisgICAgICAgIG9wVGltaW5nc1tpdGVyYXRpb25dID0gdGhpcy5nZXRPcFRpbWluZ3MoKTsKKyAgICAgICAgaWYgKCFvcFRpbWluZ3NbaXRlcmF0aW9uXSB8fCAhb3BUaW1pbmdzW2l0ZXJhdGlvbl0uY21kX3RpbWVzKQorICAgICAgICAgIHJldHVybiBvcHM7CisgICAgICAgIGlmIChvcFRpbWluZ3NbaXRlcmF0aW9uXS5jbWRfdGltZXMubGVuZ3RoICE9IG9wcy5sZW5ndGgpCisgICAgICAgICAgcmV0dXJuIG9wczsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgb3BJbmRleCA9IDA7IG9wSW5kZXggPCBvcHMubGVuZ3RoOyBvcEluZGV4KyspIHsKKyAgICAgICAgdmFyIG1pbiA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgT1BTX1RJTUlOR19JVEVSQVRJT05TOyBpKyspCisgICAgICAgICAgbWluID0gTWF0aC5taW4obWluLCBvcFRpbWluZ3NbaV0uY21kX3RpbWVzW29wSW5kZXhdKTsKKyAgICAgICAgb3BzW29wSW5kZXhdLmNtZF90aW1lID0gbWluOworICAgICAgfQorCisgICAgICByZXR1cm4gb3BzOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSYXN0ZXJpemUgdGhlIHBpY3R1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge3tvcHRfc3RvcEluZGV4OiBudW1iZXIsIHBhcmFtc319IFRoZSBTa1BpY3R1cmUgb3BlcmF0aW9uIHRvCisgICAgICogICAgIHJhc3Rlcml6ZSB1cCB0by4gSWYgbm90IGRlZmluZWQsIHRoZSBlbnRpcmUgU2tQaWN0dXJlIGlzIHJhc3Rlcml6ZWQuCisgICAgICogQHBhcmFtIHt7b3B0X3Nob3dPdmVyZHJhdzogYm9vbCwgcGFyYW1zfX0gRGVmaW5lcyB3aGV0aGVyIHBpeGVsIG92ZXJkcmF3CisgICAgICAgICAgIHNob3VsZCBiZSB2aXN1YWxpemVkIGluIHRoZSBpbWFnZS4KKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHRyLmUuY2MuUGljdHVyZUFzSW1hZ2VEYXRhKX0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQKKyAgICAgKiAgICAgaXMgY2FsbGVkIGFmdGVyIHJhc3Rlcml6YXRpb24gaXMgY29tcGxldGUgb3IgZmFpbHMuCisgICAgICovCisgICAgcmFzdGVyaXplOiBmdW5jdGlvbihwYXJhbXMsIHJhc3RlckNvbXBsZXRlQ2FsbGJhY2spIHsKKyAgICAgIGlmICghUGljdHVyZVNuYXBzaG90LkNhblJhc3Rlcml6ZSgpIHx8ICFQaWN0dXJlU25hcHNob3QuQ2FuR2V0T3BzKCkpIHsKKyAgICAgICAgcmFzdGVyQ29tcGxldGVDYWxsYmFjayhuZXcgdHIuZS5jYy5QaWN0dXJlQXNJbWFnZURhdGEoCisgICAgICAgICAgICB0aGlzLCB0ci5lLmNjLlBpY3R1cmVTbmFwc2hvdC5Ib3dUb0VuYWJsZVBpY3R1cmVEZWJ1Z2dpbmcoKSkpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciByYXN0ZXIgPSB3aW5kb3cuY2hyb21lLnNraWFCZW5jaG1hcmtpbmcucmFzdGVyaXplKAorICAgICAgICAgIHsKKyAgICAgICAgICAgIHNrcDY0OiB0aGlzLnNrcDY0XywKKyAgICAgICAgICAgIHBhcmFtczogeworICAgICAgICAgICAgICBsYXllcl9yZWN0OiB0aGlzLmxheWVyUmVjdF8udG9BcnJheSgpCisgICAgICAgICAgICB9CisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICBzdG9wOiBwYXJhbXMuc3RvcEluZGV4ID09PSB1bmRlZmluZWQgPyAtMSA6IHBhcmFtcy5zdG9wSW5kZXgsCisgICAgICAgICAgICBvdmVyZHJhdzogISFwYXJhbXMuc2hvd092ZXJkcmF3LAorICAgICAgICAgICAgcGFyYW1zOiB7IH0KKyAgICAgICAgICB9KTsKKworICAgICAgaWYgKHJhc3RlcikgeworICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgICAgY2FudmFzLndpZHRoID0gcmFzdGVyLndpZHRoOworICAgICAgICBjYW52YXMuaGVpZ2h0ID0gcmFzdGVyLmhlaWdodDsKKyAgICAgICAgdmFyIGltYWdlRGF0YSA9IGN0eC5jcmVhdGVJbWFnZURhdGEocmFzdGVyLndpZHRoLCByYXN0ZXIuaGVpZ2h0KTsKKyAgICAgICAgaW1hZ2VEYXRhLmRhdGEuc2V0KG5ldyBVaW50OENsYW1wZWRBcnJheShyYXN0ZXIuZGF0YSkpOworICAgICAgICByYXN0ZXJDb21wbGV0ZUNhbGxiYWNrKG5ldyB0ci5lLmNjLlBpY3R1cmVBc0ltYWdlRGF0YSh0aGlzLCBpbWFnZURhdGEpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBlcnJvciA9ICdGYWlsZWQgdG8gcmFzdGVyaXplIHBpY3R1cmUuICcgKworICAgICAgICAgICAgICAgICdZb3VyIHJlY29yZGluZyBtYXkgYmUgZnJvbSBhbiBvbGQgQ2hyb21lIHZlcnNpb24uICcgKworICAgICAgICAgICAgICAgICdUaGUgU2tQaWN0dXJlIGZvcm1hdCBpcyBub3QgYmFja3dhcmQgY29tcGF0aWJsZS4nOworICAgICAgICByYXN0ZXJDb21wbGV0ZUNhbGxiYWNrKG5ldyB0ci5lLmNjLlBpY3R1cmVBc0ltYWdlRGF0YSh0aGlzLCBlcnJvcikpOworICAgICAgfQorICAgIH0KKyAgfTsKKworICBmdW5jdGlvbiBMYXllcmVkUGljdHVyZShwaWN0dXJlcykgeworICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKKyAgICB0aGlzLnBpY3R1cmVzXyA9IHBpY3R1cmVzOworICAgIHRoaXMubGF5ZXJSZWN0XyA9IHVuZGVmaW5lZDsKKyAgfQorCisgIExheWVyZWRQaWN0dXJlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFBpY3R1cmUucHJvdG90eXBlLAorCisgICAgZ2V0IGNhblNhdmUoKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGdldCB0eXBlTmFtZSgpIHsKKyAgICAgIHJldHVybiAnY2M6OkxheWVyZWRQaWN0dXJlJzsKKyAgICB9LAorCisgICAgZ2V0IGxheWVyUmVjdCgpIHsKKyAgICAgIGlmICh0aGlzLmxheWVyUmVjdF8gIT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXJSZWN0XzsKKworICAgICAgdGhpcy5sYXllclJlY3RfID0geworICAgICAgICB4OiAwLAorICAgICAgICB5OiAwLAorICAgICAgICB3aWR0aDogMCwKKyAgICAgICAgaGVpZ2h0OiAwCisgICAgICB9OworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGljdHVyZXNfLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciByZWN0ID0gdGhpcy5waWN0dXJlc19baV0ubGF5ZXJSZWN0OworICAgICAgICB0aGlzLmxheWVyUmVjdF8ueCA9IE1hdGgubWluKHRoaXMubGF5ZXJSZWN0Xy54LCByZWN0LngpOworICAgICAgICB0aGlzLmxheWVyUmVjdF8ueSA9IE1hdGgubWluKHRoaXMubGF5ZXJSZWN0Xy55LCByZWN0LnkpOworICAgICAgICB0aGlzLmxheWVyUmVjdF8ud2lkdGggPQorICAgICAgICAgICAgTWF0aC5tYXgodGhpcy5sYXllclJlY3RfLndpZHRoLCByZWN0LnggKyByZWN0LndpZHRoKTsKKyAgICAgICAgdGhpcy5sYXllclJlY3RfLmhlaWdodCA9CisgICAgICAgICAgICBNYXRoLm1heCh0aGlzLmxheWVyUmVjdF8uaGVpZ2h0LCByZWN0LnkgKyByZWN0LmhlaWdodCk7CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5sYXllclJlY3RfOworICAgIH0sCisKKyAgICBnZXQgZ3VpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmd1aWRfOworICAgIH0sCisKKyAgICBnZXRCYXNlNjRTa3BEYXRhOiBmdW5jdGlvbigpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGF2YWlsYWJsZSB3aXRoIGEgTGF5ZXJlZFBpY3R1cmUuJyk7CisgICAgfSwKKworICAgIGdldE9wczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgb3BzID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGljdHVyZXNfLmxlbmd0aDsgKytpKQorICAgICAgICBvcHMgPSBvcHMuY29uY2F0KHRoaXMucGljdHVyZXNfW2ldLmdldE9wcygpKTsKKyAgICAgIHJldHVybiBvcHM7CisgICAgfSwKKworICAgIGdldE9wVGltaW5nczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgb3BUaW1pbmdzID0gdGhpcy5waWN0dXJlc19bMF0uZ2V0T3BUaW1pbmdzKCk7CisgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRoaXMucGljdHVyZXNfLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciB0aW1pbmdzID0gdGhpcy5waWN0dXJlc19baV0uZ2V0T3BUaW1pbmdzKCk7CisgICAgICAgIG9wVGltaW5ncy5jbWRfdGltZXMgPSBvcFRpbWluZ3MuY21kX3RpbWVzLmNvbmNhdCh0aW1pbmdzLmNtZF90aW1lcyk7CisgICAgICAgIG9wVGltaW5ncy50b3RhbF90aW1lICs9IHRpbWluZ3MudG90YWxfdGltZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBvcFRpbWluZ3M7CisgICAgfSwKKworICAgIHRhZ09wc1dpdGhUaW1pbmdzOiBmdW5jdGlvbihvcHMpIHsKKyAgICAgIHZhciBvcFRpbWluZ3MgPSBuZXcgQXJyYXkoKTsKKyAgICAgIGZvciAodmFyIGl0ZXJhdGlvbiA9IDA7IGl0ZXJhdGlvbiA8IE9QU19USU1JTkdfSVRFUkFUSU9OUzsgaXRlcmF0aW9uKyspIHsKKyAgICAgICAgb3BUaW1pbmdzW2l0ZXJhdGlvbl0gPSB0aGlzLmdldE9wVGltaW5ncygpOworICAgICAgICBpZiAoIW9wVGltaW5nc1tpdGVyYXRpb25dIHx8ICFvcFRpbWluZ3NbaXRlcmF0aW9uXS5jbWRfdGltZXMpCisgICAgICAgICAgcmV0dXJuIG9wczsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgb3BJbmRleCA9IDA7IG9wSW5kZXggPCBvcHMubGVuZ3RoOyBvcEluZGV4KyspIHsKKyAgICAgICAgdmFyIG1pbiA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgT1BTX1RJTUlOR19JVEVSQVRJT05TOyBpKyspCisgICAgICAgICAgbWluID0gTWF0aC5taW4obWluLCBvcFRpbWluZ3NbaV0uY21kX3RpbWVzW29wSW5kZXhdKTsKKyAgICAgICAgb3BzW29wSW5kZXhdLmNtZF90aW1lID0gbWluOworICAgICAgfQorICAgICAgcmV0dXJuIG9wczsKKyAgICB9LAorCisgICAgcmFzdGVyaXplOiBmdW5jdGlvbihwYXJhbXMsIHJhc3RlckNvbXBsZXRlQ2FsbGJhY2spIHsKKyAgICAgIHRoaXMucGljdHVyZXNBc0ltYWdlRGF0YV8gPSBbXTsKKyAgICAgIHZhciByYXN0ZXJDYWxsYmFjayA9IGZ1bmN0aW9uKHBpY3R1cmVBc0ltYWdlRGF0YSkgeworICAgICAgICB0aGlzLnBpY3R1cmVzQXNJbWFnZURhdGFfLnB1c2gocGljdHVyZUFzSW1hZ2VEYXRhKTsKKyAgICAgICAgaWYgKHRoaXMucGljdHVyZXNBc0ltYWdlRGF0YV8ubGVuZ3RoICE9PSB0aGlzLnBpY3R1cmVzXy5sZW5ndGgpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgICAgICBjYW52YXMud2lkdGggPSB0aGlzLmxheWVyUmVjdC53aWR0aDsKKyAgICAgICAgY2FudmFzLmhlaWdodCA9IHRoaXMubGF5ZXJSZWN0LmhlaWdodDsKKworICAgICAgICAvLyBUT0RPKGRzaW5jbGFpcik6IFZlcmlmeSB0aGVzZSBmaW5pc2ggaW4gdGhlIG9yZGVyIHN0YXJ0ZWQuCisgICAgICAgIC8vICAgRG8gdGhlIHJhc3Rlcml6ZSBjYWxscyBydW4gc3luYyBvciBhc3luPyBBcyB0aGUgaW1hZ2VEYXRhCisgICAgICAgIC8vICAgZ29pbmcgdG8gYmUgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHBpY3R1cmVzXyBsaXN0PworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGljdHVyZXNBc0ltYWdlRGF0YV8ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICBjdHgucHV0SW1hZ2VEYXRhKHRoaXMucGljdHVyZXNBc0ltYWdlRGF0YV9baV0uaW1hZ2VEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5waWN0dXJlc19baV0ubGF5ZXJSZWN0LngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBpY3R1cmVzX1tpXS5sYXllclJlY3QueSk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5waWN0dXJlc0FzSW1hZ2VEYXRhXyA9IFtdOworCisgICAgICAgIHJhc3RlckNvbXBsZXRlQ2FsbGJhY2sobmV3IHRyLmUuY2MuUGljdHVyZUFzSW1hZ2VEYXRhKHRoaXMsCisgICAgICAgICAgICBjdHguZ2V0SW1hZ2VEYXRhKHRoaXMubGF5ZXJSZWN0LngsIHRoaXMubGF5ZXJSZWN0LnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJSZWN0LndpZHRoLCB0aGlzLmxheWVyUmVjdC5oZWlnaHQpKSk7CisgICAgICB9LmJpbmQodGhpcyk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5waWN0dXJlc18ubGVuZ3RoOyArK2kpCisgICAgICAgIHRoaXMucGljdHVyZXNfW2ldLnJhc3Rlcml6ZShwYXJhbXMsIHJhc3RlckNhbGxiYWNrKTsKKyAgICB9CisgIH07CisKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBQaWN0dXJlU25hcHNob3QoKSB7CisgICAgT2JqZWN0U25hcHNob3QuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgfQorCisgIFBpY3R1cmVTbmFwc2hvdC5IYXNTa2lhQmVuY2htYXJraW5nID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRyLmlzRXhwb3J0ZWQoJ2Nocm9tZS5za2lhQmVuY2htYXJraW5nJyk7CisgIH0KKworICBQaWN0dXJlU25hcHNob3QuQ2FuUmFzdGVyaXplID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKCFQaWN0dXJlU25hcHNob3QuSGFzU2tpYUJlbmNobWFya2luZygpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghd2luZG93LmNocm9tZS5za2lhQmVuY2htYXJraW5nLnJhc3Rlcml6ZSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIFBpY3R1cmVTbmFwc2hvdC5DYW5HZXRPcHMgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAoIVBpY3R1cmVTbmFwc2hvdC5IYXNTa2lhQmVuY2htYXJraW5nKCkpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCF3aW5kb3cuY2hyb21lLnNraWFCZW5jaG1hcmtpbmcuZ2V0T3BzKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworICB9CisKKyAgUGljdHVyZVNuYXBzaG90LkNhbkdldE9wVGltaW5ncyA9IGZ1bmN0aW9uKCkgeworICAgIGlmICghUGljdHVyZVNuYXBzaG90Lkhhc1NraWFCZW5jaG1hcmtpbmcoKSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRPcFRpbWluZ3MpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworICBQaWN0dXJlU25hcHNob3QuQ2FuR2V0SW5mbyA9IGZ1bmN0aW9uKCkgeworICAgIGlmICghUGljdHVyZVNuYXBzaG90Lkhhc1NraWFCZW5jaG1hcmtpbmcoKSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXdpbmRvdy5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRJbmZvKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworICB9CisKKyAgUGljdHVyZVNuYXBzaG90Lkhvd1RvRW5hYmxlUGljdHVyZURlYnVnZ2luZyA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh0ci5pc0hlYWRsZXNzKQorICAgICAgcmV0dXJuICdQaWN0dXJlcyBvbmx5IHdvcmsgaW4gY2hyb21lJzsKKworICAgIHZhciB1c3VhbFJlYXNvbiA9IFsKKyAgICAgICdGb3IgcGljdHVyZXMgdG8gc2hvdyB1cCwgeW91IG5lZWQgdG8gaGF2ZSBDaHJvbWUgcnVubmluZyB3aXRoICcsCisgICAgICAnLS1lbmFibGUtc2tpYS1iZW5jaG1hcmtpbmcuIFBsZWFzZSByZXN0YXJ0IGNocm9tZSB3aXRoIHRoaXMgZmxhZyAnLAorICAgICAgJ2FuZCB0cnkgYWdhaW4uJworICAgIF0uam9pbignJyk7CisKKyAgICBpZiAoIXRyLmlzRXhwb3J0ZWQoJ2dsb2JhbC5jaHJvbWUuc2tpYUJlbmNobWFya2luZycpKQorICAgICAgcmV0dXJuIHVzdWFsUmVhc29uOworICAgIGlmICghZ2xvYmFsLmNocm9tZS5za2lhQmVuY2htYXJraW5nLnJhc3Rlcml6ZSkKKyAgICAgIHJldHVybiAnWW91ciBjaHJvbWUgaXMgb2xkJzsKKyAgICBpZiAoIWdsb2JhbC5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRPcHMpCisgICAgICByZXR1cm4gJ1lvdXIgY2hyb21lIGlzIG9sZDogc2tpYUJlbmNobWFya2luZy5nZXRPcHMgbm90IGZvdW5kJzsKKyAgICBpZiAoIWdsb2JhbC5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRPcFRpbWluZ3MpCisgICAgICByZXR1cm4gJ1lvdXIgY2hyb21lIGlzIG9sZDogc2tpYUJlbmNobWFya2luZy5nZXRPcFRpbWluZ3Mgbm90IGZvdW5kJzsKKyAgICBpZiAoIWdsb2JhbC5jaHJvbWUuc2tpYUJlbmNobWFya2luZy5nZXRJbmZvKQorICAgICAgcmV0dXJuICdZb3VyIGNocm9tZSBpcyBvbGQ6IHNraWFCZW5jaG1hcmtpbmcuZ2V0SW5mbyBub3QgZm91bmQnOworICAgIHJldHVybiAnUmFzdGVyaXppbmcgaXMgb24nOworICB9CisKKyAgUGljdHVyZVNuYXBzaG90LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IE9iamVjdFNuYXBzaG90LnByb3RvdHlwZSwKKworICAgIHByZUluaXRpYWxpemU6IGZ1bmN0aW9uKCkgeworICAgICAgdHIuZS5jYy5wcmVJbml0aWFsaXplT2JqZWN0KHRoaXMpOworICAgICAgdGhpcy5yYXN0ZXJSZXN1bHRfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIElmIHdlIGhhdmUgYW4gYWxpYXMgYXJncywgdGhhdCBtZWFucyB0aGlzIHBpY3R1cmUgd2FzIHJlcHJlc2VudGVkCisgICAgICAvLyBieSBhbiBhbGlhcywgYW5kIHRoZSByZWFsIGFyZ3MgaXMgaW4gYWxpYXMuYXJncy4KKyAgICAgIGlmICh0aGlzLmFyZ3MuYWxpYXMpCisgICAgICAgIHRoaXMuYXJncyA9IHRoaXMuYXJncy5hbGlhcy5hcmdzOworCisgICAgICBpZiAoIXRoaXMuYXJncy5wYXJhbXMubGF5ZXJSZWN0KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgbGF5ZXIgcmVjdCcpOworCisgICAgICB0aGlzLmxheWVyUmVjdF8gPSB0aGlzLmFyZ3MucGFyYW1zLmxheWVyUmVjdDsKKyAgICAgIHRoaXMucGljdHVyZV8gPSBuZXcgUGljdHVyZSh0aGlzLmFyZ3Muc2twNjQsIHRoaXMuYXJncy5wYXJhbXMubGF5ZXJSZWN0KTsKKyAgICB9LAorCisgICAgc2V0IHBpY3R1cmUocGljdHVyZSkgeworICAgICAgdGhpcy5waWN0dXJlXyA9IHBpY3R1cmU7CisgICAgfSwKKworICAgIGdldCBjYW5TYXZlKCkgeworICAgICAgcmV0dXJuIHRoaXMucGljdHVyZV8uY2FuU2F2ZTsKKyAgICB9LAorCisgICAgZ2V0IGxheWVyUmVjdCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmxheWVyUmVjdF8gPyB0aGlzLmxheWVyUmVjdF8gOiB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdDsKKyAgICB9LAorCisgICAgZ2V0IGd1aWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5waWN0dXJlXy5ndWlkOworICAgIH0sCisKKyAgICBnZXRCYXNlNjRTa3BEYXRhOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfLmdldEJhc2U2NFNrcERhdGEoKTsKKyAgICB9LAorCisgICAgZ2V0T3BzOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfLmdldE9wcygpOworICAgIH0sCisKKyAgICBnZXRPcFRpbWluZ3M6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMucGljdHVyZV8uZ2V0T3BUaW1pbmdzKCk7CisgICAgfSwKKworICAgIHRhZ09wc1dpdGhUaW1pbmdzOiBmdW5jdGlvbihvcHMpIHsKKyAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfLnRhZ09wc1dpdGhUaW1pbmdzKG9wcyk7CisgICAgfSwKKworICAgIHJhc3Rlcml6ZTogZnVuY3Rpb24ocGFyYW1zLCByYXN0ZXJDb21wbGV0ZUNhbGxiYWNrKSB7CisgICAgICB0aGlzLnBpY3R1cmVfLnJhc3Rlcml6ZShwYXJhbXMsIHJhc3RlckNvbXBsZXRlQ2FsbGJhY2spOworICAgIH0KKyAgfTsKKworICBPYmplY3RTbmFwc2hvdC5yZWdpc3RlcigKKyAgICAgIFBpY3R1cmVTbmFwc2hvdCwKKyAgICAgIHt0eXBlTmFtZXM6IFsnY2M6OlBpY3R1cmUnXX0pOworCisgIHJldHVybiB7CisgICAgUGljdHVyZVNuYXBzaG90OiBQaWN0dXJlU25hcHNob3QsCisgICAgUGljdHVyZTogUGljdHVyZSwKKyAgICBMYXllcmVkUGljdHVyZTogTGF5ZXJlZFBpY3R1cmUKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9hc19pbWFnZV9kYXRhLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9hc19pbWFnZV9kYXRhLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX2FzX2ltYWdlX2RhdGEuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfYXNfaW1hZ2VfZGF0YS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZmViYmEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2suaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy90aWxlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuZS5jYycsIGZ1bmN0aW9uKCkgeworCisgIHZhciBrbm93blJhc3RlclRhc2tOYW1lcyA9IFsKKyAgICAgICdUaWxlTWFuYWdlcjo6UnVuUmFzdGVyVGFzaycsCisgICAgICAnUmFzdGVyV29ya2VyUG9vbFRhc2tJbXBsOjpSdW5SYXN0ZXJPblRocmVhZCcsCisgICAgICAnUmFzdGVyV29ya2VyUG9vbFRhc2tJbXBsOjpSYXN0ZXInLAorICAgICAgJ1Jhc3RlclRhc2tJbXBsOjpSYXN0ZXInLAorICAgICAgJ2NjOjpSYXN0ZXJUYXNrJywKKyAgICAgICdSYXN0ZXJUYXNrJworICBdOworCisgIHZhciBrbm93bkFuYWx5c2lzVGFza05hbWVzID0gWworICAgICAgJ1RpbGVNYW5hZ2VyOjpSdW5BbmFseXplVGFzaycsCisgICAgICAnUmFzdGVyV29ya2VyUG9vbFRhc2tJbXBsOjpSdW5BbmFseXNpc09uVGhyZWFkJywKKyAgICAgICdSYXN0ZXJXb3JrZXJQb29sVGFza0ltcGw6OkFuYWx5emUnLAorICAgICAgJ1Jhc3RlclRhc2tJbXBsOjpBbmFseXplJywKKyAgICAgICdjYzo6QW5hbHl6ZVRhc2snLAorICAgICAgJ0FuYWx5emVUYXNrJworICBdOworCisgIGZ1bmN0aW9uIGdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKHNsaWNlKSB7CisgICAgaWYgKCEoaXNTbGljZURvaW5nUmFzdGVyaXphdGlvbihzbGljZSkgfHwgaXNTbGljZURvaW5nQW5hbHlzaXMoc2xpY2UpKSkKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICB2YXIgdGlsZURhdGE7CisgICAgaWYgKHNsaWNlLmFyZ3MuZGF0YSkKKyAgICAgIHRpbGVEYXRhID0gc2xpY2UuYXJncy5kYXRhOworICAgIGVsc2UKKyAgICAgIHRpbGVEYXRhID0gc2xpY2UuYXJncy50aWxlRGF0YTsKKyAgICBpZiAodGlsZURhdGEgPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgaWYgKHRpbGVEYXRhLnRpbGVfaWQpCisgICAgICByZXR1cm4gdGlsZURhdGEudGlsZV9pZDsKKworICAgIHZhciB0aWxlID0gdGlsZURhdGEudGlsZUlkOworICAgIGlmICghKHRpbGUgaW5zdGFuY2VvZiB0ci5lLmNjLlRpbGVTbmFwc2hvdCkpCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIHJldHVybiB0aWxlRGF0YS50aWxlSWQ7CisgIH0KKworICBmdW5jdGlvbiBpc1NsaWNlRG9pbmdSYXN0ZXJpemF0aW9uKHNsaWNlKSB7CisgICAgaWYgKGtub3duUmFzdGVyVGFza05hbWVzLmluZGV4T2Yoc2xpY2UudGl0bGUpICE9PSAtMSkKKyAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGZ1bmN0aW9uIGlzU2xpY2VEb2luZ0FuYWx5c2lzKHNsaWNlKSB7CisgICAgaWYgKGtub3duQW5hbHlzaXNUYXNrTmFtZXMuaW5kZXhPZihzbGljZS50aXRsZSkgIT09IC0xKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBnZXRUaWxlRnJvbVJhc3RlclRhc2tTbGljZTogZ2V0VGlsZUZyb21SYXN0ZXJUYXNrU2xpY2UsCisgICAgaXNTbGljZURvaW5nUmFzdGVyaXphdGlvbjogaXNTbGljZURvaW5nUmFzdGVyaXphdGlvbiwKKyAgICBpc1NsaWNlRG9pbmdBbmFseXNpczogaXNTbGljZURvaW5nQW5hbHlzaXMKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmVnaW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvcmVnaW9uLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy9yZWdpb24uaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3JlZ2lvbi5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmVuZGVyX3Bhc3MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy9yZW5kZXJfcGFzcy5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvcmVuZGVyX3Bhc3MuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3JlbmRlcl9wYXNzLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy90aWxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvdGlsZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdGlsZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvdGlsZS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV9jb3ZlcmFnZV9yZWN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV9jb3ZlcmFnZV9yZWN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jYy90aWxlX2NvdmVyYWdlX3JlY3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3RpbGVfY292ZXJhZ2VfcmVjdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MxNjk3MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3RpbGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQgc3JjPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF90ZXN0X2RhdGEuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdiYXNpYycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7CisgICAgdmFyIHAgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMobS5wcm9jZXNzZXMpWzBdOworICAgIHZhciBpbnN0YW5jZSA9IHAub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNOYW1lZCgnY2M6OlRpbGUnKVswXTsKKyAgICB2YXIgc25hcHNob3QgPSBpbnN0YW5jZS5zbmFwc2hvdHNbMF07CisKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihzbmFwc2hvdCwgdHIuZS5jYy5UaWxlU25hcHNob3QpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdXRpbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3V0aWwuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3V0aWwuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3V0aWwuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL3V0aWxfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2NjL3V0aWxfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvdXRpbF90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jYy91dGlsX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9hdWRpdG9yLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX2F1ZGl0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTc0NDdiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9hdWRpdG9yLmh0bWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZV91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hdWRpdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmFpbF9pcl9maW5kZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X2luZm8uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBCYXNlIGNsYXNzIGZvciB0cmFjZSBkYXRhIEF1ZGl0b3JzLgorICovCit0ci5leHBvcnRUbygndHIuZS5hdWRpdHMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEF1ZGl0b3IgPSB0ci5jLkF1ZGl0b3I7CisKKyAgLyoqCisgICAqIEF1ZGl0b3IgZm9yIENocm9tZS1zcGVjaWZpYyB0cmFjZXMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ2hyb21lQXVkaXRvcihtb2RlbCkgeworICAgIEF1ZGl0b3IuY2FsbCh0aGlzLCBtb2RlbCk7CisKKyAgICBpZiAodHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIuc3VwcG9ydHNNb2RlbCh0aGlzLm1vZGVsKSkgeworICAgICAgdmFyIG1vZGVsSGVscGVyID0gbmV3IHRyLmUuYXVkaXRzLkNocm9tZU1vZGVsSGVscGVyKHRoaXMubW9kZWwpOworCisgICAgICAvLyBNdXN0IGJlIGEgYnJvd3NlckhlbHBlciBpbiBvcmRlciB0byBkbyBhdWRpdHMuCisgICAgICBpZiAobW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlciA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aGlzLm1vZGVsSGVscGVyID0gdW5kZWZpbmVkOworICAgICAgZWxzZQorICAgICAgICB0aGlzLm1vZGVsSGVscGVyID0gbW9kZWxIZWxwZXI7CisgICAgfSBlbHNlIHsKKyAgICAgIHRoaXMubW9kZWxIZWxwZXIgPSB1bmRlZmluZWQ7CisgICAgfQorICB9OworCisgIENocm9tZUF1ZGl0b3IucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogQXVkaXRvci5wcm90b3R5cGUsCisKKyAgICBydW5Bbm5vdGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMubW9kZWxIZWxwZXIpCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5tb2RlbC5nZXRBbGxQcm9jZXNzZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHByb2Nlc3MpIHsKKyAgICAgICAgaWYgKHByb2Nlc3MubGFiZWxzICE9PSB1bmRlZmluZWQgJiYKKyAgICAgICAgICAgIHByb2Nlc3MubGFiZWxzLmxlbmd0aCA9PSAxICYmCisgICAgICAgICAgICBwcm9jZXNzLmxhYmVsc1swXSA9PSAnY2hyb21lOi8vdHJhY2luZycpCisgICAgICAgICAgcHJvY2Vzcy5pbXBvcnRhbnQgPSBmYWxzZTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBydW5BdWRpdDogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMubW9kZWxIZWxwZXIpCisgICAgICAgIHJldHVybjsKKworICAgICAgLy8gQ2hyb21lQXVkaXRvciBpcyBkaXNhYmxlZCB3aGVuIHVzZWQgZGlyZWN0bHkgaW5zaWRlIGFib3V0Oi8vdHJhY2luZywKKyAgICAgIC8vIGZvciBub3cuCisgICAgICBpZiAodHIuaXNFeHBvcnRlZCgncHJvZmlsaW5nVmlldycpKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGlmICh0ci5lLnJhaWwuUkFJTElSRmluZGVyLnN1cHBvcnRzTW9kZWxIZWxwZXIodGhpcy5tb2RlbEhlbHBlcikpIHsKKyAgICAgICAgdmFyIHJpcmYgPSBuZXcgdHIuZS5yYWlsLlJBSUxJUkZpbmRlcih0aGlzLm1vZGVsLCB0aGlzLm1vZGVsSGVscGVyKTsKKyAgICAgICAgcmlyZi5maW5kQWxsSW50ZXJhY3Rpb25SZWNvcmRzKCkuZm9yRWFjaChmdW5jdGlvbihpcikgeworICAgICAgICAgIHRoaXMubW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQoaXIpOworCisgICAgICAgICAgdmFyIGFsZXJ0cyA9IHRoaXMuY3JlYXRlQWxlcnRzRm9ySVJfKGlyKTsKKyAgICAgICAgICBhbGVydHMuZm9yRWFjaChmdW5jdGlvbihhbGVydCkgeworICAgICAgICAgICAgdGhpcy5tb2RlbC5hbGVydHMucHVzaChhbGVydCk7CisgICAgICAgICAgfSwgdGhpcyk7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfQorICAgIH0sCisKKyAgICBjcmVhdGVBbGVydHNGb3JJUl86IGZ1bmN0aW9uKGlyKSB7CisgICAgICB2YXIgYWxsQWxlcnRzID0gW107CisgICAgICBpci5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiB0ci5tb2RlbC5TbGljZSkpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgc2xpY2UgPSBldmVudDsKKworICAgICAgICBpZiAoc2xpY2UuY2F0ZWdvcnkgIT0gJ3RvcGxldmVsJykKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChzbGljZS5kdXJhdGlvbiA+IDc1LjApIHsKKyAgICAgICAgICB2YXIgYWxlcnRJbmZvID0gbmV3IHRyLm1vZGVsLkV2ZW50SW5mbygKKyAgICAgICAgICAgICAgJ1Rhc2sgdG9vIGxvbmcnLAorICAgICAgICAgICAgICAnVGFza3MgdGFraW5nID49IDc1bXMgYXJlIGJhZCwgYW5kIHNob3VsZCBiZSBicm9rZW4gdXAgdG8gJyArCisgICAgICAgICAgICAgICdlbnN1cmUgdGhlIG1haW4gdGhyZWFkIGlzIHJlc3BvbnNpdmUnKTsKKyAgICAgICAgICB2YXIgY2VudGVyID0gc2xpY2Uuc3RhcnQgKyAwLjUgKiBzbGljZS5kdXJhdGlvbjsKKyAgICAgICAgICB2YXIgYWxlcnQgPSBuZXcgdHIubW9kZWwuQWxlcnQoCisgICAgICAgICAgICAgIGFsZXJ0SW5mbywgY2VudGVyLCBbc2xpY2VdKTsKKyAgICAgICAgICBhbGxBbGVydHMucHVzaChhbGVydCk7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgICAgcmV0dXJuIGFsbEFsZXJ0czsKKyAgICB9CisgIH07CisKKyAgQXVkaXRvci5yZWdpc3RlcihDaHJvbWVBdWRpdG9yKTsKKworICByZXR1cm4geworICAgIENocm9tZUF1ZGl0b3I6IENocm9tZUF1ZGl0b3IKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX2F1ZGl0b3JfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9hdWRpdG9yX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTA0M2M2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9hdWRpdG9yX3Rlc3QuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX2F1ZGl0b3IuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGNyZWF0ZU1vZGVsV2l0aENocm9tZUF1ZGl0b3IoY3VzdG9taXplTW9kZWxDYWxsYmFjaykgeworICAgIHJldHVybiB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWxXaXRoQXVkaXRvcihmdW5jdGlvbihtKSB7CisgICAgICBtLmJyb3dzZXJQcm9jZXNzID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICBtLmJyb3dzZXJNYWluID0gbS5icm93c2VyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIG0uYnJvd3Nlck1haW4ubmFtZSA9ICdDckJyb3dzZXJNYWluJzsKKworICAgICAgbS5yZW5kZXJlcjEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygzKTsKKyAgICAgIG0ucmVuZGVyZXIxTWFpbiA9IG0ucmVuZGVyZXIxLmdldE9yQ3JlYXRlVGhyZWFkKDQpOworICAgICAgbS5yZW5kZXJlcjFNYWluLm5hbWUgPSAnQ3JSZW5kZXJlck1haW4nOworCisgICAgICBtLnJlbmRlcmVyMUNvbXBvc2l0b3IgPSBtLnJlbmRlcmVyMS5nZXRPckNyZWF0ZVRocmVhZCg0KTsKKyAgICAgIG0ucmVuZGVyZXIxQ29tcG9zaXRvci5uYW1lID0gJ0NvbXBvc2l0b3InOworCisgICAgICBjdXN0b21pemVNb2RlbENhbGxiYWNrKG0pOworICAgIH0sIHRyLmUuYXVkaXRzLkNocm9tZUF1ZGl0b3IpOworICB9CisKKyAgZnVuY3Rpb24gbmV3SW5wdXRMYXRlbmN5RXZlbnQodHNTdGFydCwgdHNFbmQsIG9wdF9hcmdzKSB7CisgICAgdmFyIGUgPSBuZXcgdHIubW9kZWwuQXN5bmNTbGljZSgKKyAgICAgICAgJ2JlbmNobWFyaycsICdJbnB1dExhdGVuY3knLAorICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygnSW5wdXRMYXRlbmN5JyksCisgICAgICAgIHRzU3RhcnQsIG9wdF9hcmdzKTsKKyAgICBlLmR1cmF0aW9uID0gdHNFbmQgLSB0c1N0YXJ0OworICAgIHJldHVybiBlOworICB9CisKKyAgZnVuY3Rpb24gbmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQodHMsIG9wdF9hcmdzKSB7CisgICAgdmFyIGUgPSBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoCisgICAgICAgICdiZW5jaG1hcmsnLCAnQmVuY2htYXJrSW5zdHJ1bWVudGF0aW9uOjpJbXBsVGhyZWFkUmVuZGVyaW5nU3RhdHMnLAorICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygneCcpLAorICAgICAgICB0cywgb3B0X2FyZ3MsIDApOworICAgIHJldHVybiBlOworICB9CisKKyAgdGVzdCgnc2ltcGxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVNb2RlbFdpdGhDaHJvbWVBdWRpdG9yKGZ1bmN0aW9uKG0pIHsKKyAgICAgIHZhciBiQXN5bmNTbGljZXMgPSBtLmJyb3dzZXJNYWluLmFzeW5jU2xpY2VHcm91cDsKKyAgICAgIGJBc3luY1NsaWNlcy5wdXNoKG5ld0lucHV0TGF0ZW5jeUV2ZW50KDEwMCwgMTMwKSk7CisgICAgICBiQXN5bmNTbGljZXMucHVzaChuZXdJbnB1dExhdGVuY3lFdmVudCgxMTYsIDE1MCkpOworICAgICAgYkFzeW5jU2xpY2VzLnB1c2gobmV3SW5wdXRMYXRlbmN5RXZlbnQoMTMzLCAxNjYpKTsKKyAgICAgIGJBc3luY1NsaWNlcy5wdXNoKG5ld0lucHV0TGF0ZW5jeUV2ZW50KDE1MCwgMTgzKSk7CisgICAgICBiQXN5bmNTbGljZXMucHVzaChuZXdJbnB1dExhdGVuY3lFdmVudCgxNjYsIDIwMCkpOworICAgICAgYkFzeW5jU2xpY2VzLnB1c2gobmV3SW5wdXRMYXRlbmN5RXZlbnQoMTgzLCAyMTYpKTsKKworICAgICAgdmFyIHJtMVNsaWNlcyA9IG0ucmVuZGVyZXIxQ29tcG9zaXRvci5zbGljZUdyb3VwOworICAgICAgcm0xU2xpY2VzLnB1c2hTbGljZShuZXdJbXBsUmVuZGVyaW5nU3RhdHNFdmVudCgxMTMpKTsKKyAgICAgIHJtMVNsaWNlcy5wdXNoU2xpY2UobmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQoMTMwKSk7CisgICAgICBybTFTbGljZXMucHVzaFNsaWNlKG5ld0ltcGxSZW5kZXJpbmdTdGF0c0V2ZW50KDE0NykpOworICAgICAgcm0xU2xpY2VzLnB1c2hTbGljZShuZXdJbXBsUmVuZGVyaW5nU3RhdHNFdmVudCgxNjMpKTsKKyAgICAgIHJtMVNsaWNlcy5wdXNoU2xpY2UobmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQoMTgwKSk7CisgICAgICBybTFTbGljZXMucHVzaFNsaWNlKG5ld0ltcGxSZW5kZXJpbmdTdGF0c0V2ZW50KDE5NykpOworICAgICAgcm0xU2xpY2VzLnB1c2hTbGljZShuZXdJbXBsUmVuZGVyaW5nU3RhdHNFdmVudCgyMTMpKTsKKyAgICAgIHJtMVNsaWNlcy5wdXNoU2xpY2UobmV3SW1wbFJlbmRlcmluZ1N0YXRzRXZlbnQoMjMwKSk7CisgICAgICBybTFTbGljZXMucHVzaFNsaWNlKG5ld0ltcGxSZW5kZXJpbmdTdGF0c0V2ZW50KDI0NykpOworICAgIH0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX2Jyb3dzZXJfaGVscGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX2Jyb3dzZXJfaGVscGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk4MDM3MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9jaHJvbWVfYnJvd3Nlcl9oZWxwZXIuaHRtbApAQCAtMCwwICsxLDEyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfcHJvY2Vzc19oZWxwZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBVdGlsaXRpZXMgZm9yIGFjY2Vzc2luZyB0cmFjZSBkYXRhIGFib3V0IHRoZSBDaHJvbWUgYnJvd3Nlci4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUuYXVkaXRzJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIENocm9tZUJyb3dzZXJIZWxwZXIobW9kZWxIZWxwZXIsIHByb2Nlc3MpIHsKKyAgICB0ci5lLmF1ZGl0cy5DaHJvbWVQcm9jZXNzSGVscGVyLmNhbGwodGhpcywgbW9kZWxIZWxwZXIsIHByb2Nlc3MpOworICAgIHRoaXMubWFpblRocmVhZF8gPSBwcm9jZXNzLmZpbmRBdE1vc3RPbmVUaHJlYWROYW1lZCgnQ3JCcm93c2VyTWFpbicpOworICB9CisKKyAgQ2hyb21lQnJvd3NlckhlbHBlci5pc0Jyb3dzZXJQcm9jZXNzID0gZnVuY3Rpb24ocHJvY2VzcykgeworICAgIGlmICghcHJvY2Vzcy5maW5kQXRNb3N0T25lVGhyZWFkTmFtZWQoJ0NyQnJvd3Nlck1haW4nKSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfTsKKworICBDaHJvbWVCcm93c2VySGVscGVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLmUuYXVkaXRzLkNocm9tZVByb2Nlc3NIZWxwZXIucHJvdG90eXBlLAorCisgICAgZ2V0IHJlbmRlcmVySGVscGVycygpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsSGVscGVyLnJlbmRlcmVySGVscGVyczsKKyAgICB9LAorCisgICAgZ2V0TG9hZGluZ0V2ZW50c0luUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlT2ZJbnRlcmVzdCkgeworICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsQXN5bmNTbGljZXNNYXRjaGluZyhmdW5jdGlvbihzbGljZSkgeworICAgICAgICByZXR1cm4gc2xpY2UudGl0bGUuaW5kZXhPZignV2ViQ29udGVudHNJbXBsIExvYWRpbmcnKSA9PT0gMCAmJgorICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LCBzbGljZS5lbmQpOworICAgICAgfSk7CisgICAgfSwKKworICAgIGdldENvbW1pdFByb3Zpc2lvbmFsTG9hZEV2ZW50c0luUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlT2ZJbnRlcmVzdCkgeworICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsQXN5bmNTbGljZXNNYXRjaGluZyhmdW5jdGlvbihzbGljZSkgeworICAgICAgICByZXR1cm4gc2xpY2UudGl0bGUgPT09ICdSZW5kZXJGcmFtZUltcGw6OmRpZENvbW1pdFByb3Zpc2lvbmFsTG9hZCcgJiYKKyAgICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdC5pbnRlcnNlY3RzRXhwbGljaXRSYW5nZShzbGljZS5zdGFydCwgc2xpY2UuZW5kKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXQgaGFzTGF0ZW5jeUV2ZW50cygpIHsKKyAgICAgIHZhciBoYXNMYXRlbmN5ID0gZmFsc2U7CisgICAgICB0aGlzLm1vZGVsSGVscGVyLm1vZGVsLmdldEFsbFRocmVhZHMoKS5zb21lKGZ1bmN0aW9uKHRocmVhZCkgeworICAgICAgICB0aHJlYWQuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgIGlmICghZXZlbnQuaXNUb3BMZXZlbCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICBpZiAoIShldmVudCBpbnN0YW5jZW9mIHRyLmUuY2MuSW5wdXRMYXRlbmN5QXN5bmNTbGljZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgaGFzTGF0ZW5jeSA9IHRydWU7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gaGFzTGF0ZW5jeTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIGhhc0xhdGVuY3k7CisgICAgfSwKKworICAgIGdldExhdGVuY3lFdmVudHNJblJhbmdlOiBmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3QpIHsKKyAgICAgIHJldHVybiB0aGlzLmdldEFsbEFzeW5jU2xpY2VzTWF0Y2hpbmcoZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgcmV0dXJuIChzbGljZS50aXRsZS5pbmRleE9mKCdJbnB1dExhdGVuY3knKSA9PT0gMCkgJiYKKyAgICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdC5pbnRlcnNlY3RzRXhwbGljaXRSYW5nZShzbGljZS5zdGFydCwgc2xpY2UuZW5kKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nOiBmdW5jdGlvbihwcmVkLCBvcHRfdGhpcykgeworICAgICAgdmFyIGV2ZW50cyA9IFtdOworICAgICAgdGhpcy5pdGVyQWxsVGhyZWFkcyhmdW5jdGlvbih0aHJlYWQpIHsKKyAgICAgICAgdGhyZWFkLml0ZXJhdGVBbGxFdmVudHMoZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgICBpZiAocHJlZC5jYWxsKG9wdF90aGlzLCBzbGljZSkpCisgICAgICAgICAgICBldmVudHMucHVzaChzbGljZSk7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgICByZXR1cm4gZXZlbnRzOworICAgIH0sCisKKyAgICBnZXRBbGxOZXR3b3JrRXZlbnRzSW5SYW5nZTogZnVuY3Rpb24ocmFuZ2VPZkludGVyZXN0KSB7CisgICAgICB2YXIgbmV0d29ya0V2ZW50cyA9IFtdOworICAgICAgdGhpcy5tb2RlbEhlbHBlci5tb2RlbC5nZXRBbGxUaHJlYWRzKCkuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpIHsKKyAgICAgICAgdGhyZWFkLmFzeW5jU2xpY2VHcm91cC5zbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgeworICAgICAgICAgIHZhciBtYXRjaCA9IGZhbHNlOworICAgICAgICAgIGlmIChzbGljZS5jYXRlZ29yeSA9PSAnbmV0JyB8fCAgLy8gb2xkLXN0eWxlIFVSTFJlcXVlc3QvUmVzb3VyY2UKKyAgICAgICAgICAgICAgc2xpY2UuY2F0ZWdvcnkgPT0gJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtbmV0bG9nJyB8fAorICAgICAgICAgICAgICBzbGljZS5jYXRlZ29yeSA9PSAnbmV0bG9nJykgeworICAgICAgICAgICAgbWF0Y2ggPSB0cnVlOworICAgICAgICAgIH0KKworICAgICAgICAgIGlmICghbWF0Y2gpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICBpZiAocmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LCBzbGljZS5lbmQpKQorICAgICAgICAgICAgbmV0d29ya0V2ZW50cy5wdXNoKHNsaWNlKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKyAgICAgIHJldHVybiBuZXR3b3JrRXZlbnRzOworICAgIH0sCisKKyAgICBpdGVyQWxsVGhyZWFkczogZnVuY3Rpb24oZnVuYywgb3B0X3RoaXMpIHsKKyAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMucHJvY2Vzcy50aHJlYWRzLCBmdW5jdGlvbih0aWQsIHRocmVhZCkgeworICAgICAgICBmdW5jLmNhbGwob3B0X3RoaXMsIHRocmVhZCk7CisgICAgICB9KTsKKworICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5yZW5kZXJlckhlbHBlcnMsIGZ1bmN0aW9uKHBpZCwgcmVuZGVyZXJIZWxwZXIpIHsKKyAgICAgICAgdmFyIHJlbmRlcmVyUHJvY2VzcyA9IHJlbmRlcmVySGVscGVyLnByb2Nlc3M7CisgICAgICAgIHRyLmIuaXRlckl0ZW1zKHJlbmRlcmVyUHJvY2Vzcy50aHJlYWRzLCBmdW5jdGlvbih0aWQsIHRocmVhZCkgeworICAgICAgICAgIGZ1bmMuY2FsbChvcHRfdGhpcywgdGhyZWFkKTsKKyAgICAgICAgfSk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDaHJvbWVCcm93c2VySGVscGVyOiBDaHJvbWVCcm93c2VySGVscGVyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9icm93c2VyX2hlbHBlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX2Jyb3dzZXJfaGVscGVyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTA5ZGFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9icm93c2VyX2hlbHBlcl90ZXN0Lmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX2Jyb3dzZXJfaGVscGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV9tb2RlbF9oZWxwZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgYXVkaXRzID0gdHIuZS5hdWRpdHM7CisgIHZhciBJTlBVVF9UWVBFID0gdHIuZS5jYy5JTlBVVF9FVkVOVF9UWVBFX05BTUVTOworCisgIGZ1bmN0aW9uIGdldFJhbmdlKG1pbiwgbWF4KSB7CisgICAgdmFyIHJhbmdlID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICByYW5nZS5taW4gPSBtaW47CisgICAgcmFuZ2UubWF4ID0gbWF4OworICAgIHJldHVybiByYW5nZTsKKyAgfQorCisgIHRlc3QoJ0xvYWRpbmdFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IHRyLmUuYXVkaXRzLm5ld0Nocm9tZU1vZGVsKGZ1bmN0aW9uKCkgeyB9KTsKKyAgICB2YXIgbW9kZWxIZWxwZXIgPSBuZXcgdHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIobW9kZWwpOworICAgIGF1ZGl0cy5hZGRMb2FkaW5nRXZlbnQobW9kZWwsIHtzdGFydDogMSwgZW5kOiAxMH0pOworICAgIGFzc2VydC5lcXVhbCgxLCBtb2RlbEhlbHBlci5icm93c2VySGVscGVyLmdldExvYWRpbmdFdmVudHNJblJhbmdlKAorICAgICAgZ2V0UmFuZ2UoMCwgMTAwKSkubGVuZ3RoKTsKKyAgfSk7CisKKyAgdGVzdCgnUHJvdmlzaW9uYWxMb2FkRXZlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSB0ci5lLmF1ZGl0cy5uZXdDaHJvbWVNb2RlbChmdW5jdGlvbigpIHsgfSk7CisgICAgdmFyIG1vZGVsSGVscGVyID0gbmV3IHRyLmUuYXVkaXRzLkNocm9tZU1vZGVsSGVscGVyKG1vZGVsKTsKKyAgICBhdWRpdHMuYWRkQ29tbWl0TG9hZEV2ZW50KG1vZGVsLCB7c3RhcnQ6IDEsIGVuZDogMTB9KTsKKyAgICBhc3NlcnQuZXF1YWwoMSwKKyAgICAgIG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0Q29tbWl0UHJvdmlzaW9uYWxMb2FkRXZlbnRzSW5SYW5nZSgKKyAgICAgICAgZ2V0UmFuZ2UoMCwgMTAwKSkubGVuZ3RoKTsKKyAgfSk7CisKKyAgdGVzdCgnTGF0ZW5jeUV2ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gdHIuZS5hdWRpdHMubmV3Q2hyb21lTW9kZWwoZnVuY3Rpb24oKSB7IH0pOworICAgIHZhciBtb2RlbEhlbHBlciA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtb2RlbCk7CisgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVU5LTk9XTiwge3N0YXJ0OiAxLCBlbmQ6IDEwfSk7CisgICAgYXNzZXJ0LmVxdWFsKDEsIG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0TGF0ZW5jeUV2ZW50c0luUmFuZ2UoCisgICAgICBnZXRSYW5nZSgwLCAxMDApKS5sZW5ndGgpOworICB9KTsKKworICB0ZXN0KCdOZXR3b3JrRXZlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSB0ci5lLmF1ZGl0cy5uZXdDaHJvbWVNb2RlbChmdW5jdGlvbigpIHsgfSk7CisgICAgdmFyIG1vZGVsSGVscGVyID0gbmV3IHRyLmUuYXVkaXRzLkNocm9tZU1vZGVsSGVscGVyKG1vZGVsKTsKKyAgICBhdWRpdHMuYWRkTmV0d29ya0V2ZW50KG1vZGVsLCB7c3RhcnQ6IDEsIGVuZDogMTB9KTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgbW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci5nZXRBbGxOZXR3b3JrRXZlbnRzSW5SYW5nZSgKKyAgICAgIGdldFJhbmdlKDAsIDEwMCkpLmxlbmd0aCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfbW9kZWxfaGVscGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfbW9kZWxfaGVscGVyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9tb2RlbF9oZWxwZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX3Byb2Nlc3NfaGVscGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX3Byb2Nlc3NfaGVscGVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfcHJvY2Vzc19oZWxwZXIuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9wcm9jZXNzX2hlbHBlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2hyb21lX3JlbmRlcmVyX2hlbHBlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9yZW5kZXJlcl9oZWxwZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2Nocm9tZV9yZW5kZXJlcl9oZWxwZXIuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV9yZW5kZXJlcl9oZWxwZXIuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvY2hyb21lX3Rlc3RfdXRpbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzQwZDIxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV9wcm9jZXNzX2hlbHBlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBCYXNlIGNsYXNzIGZvciB0cmFjZSBkYXRhIEF1ZGl0b3JzLgorICovCit0ci5leHBvcnRUbygndHIuZS5hdWRpdHMnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gbmV3Q2hyb21lTW9kZWwoY3VzdG9taXplTW9kZWxDYWxsYmFjaykgeworICAgIHJldHVybiB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIG1vZGVsLmJyb3dzZXJQcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgICAgbW9kZWwuYnJvd3Nlck1haW4gPSBtb2RlbC5icm93c2VyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIG1vZGVsLmJyb3dzZXJNYWluLm5hbWUgPSAnQ3JCcm93c2VyTWFpbic7CisKKyAgICAgIG1vZGVsLnJlbmRlcmVyUHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygyKTsKKyAgICAgIG1vZGVsLnJlbmRlcmVyTWFpbiA9IG1vZGVsLnJlbmRlcmVyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgzKTsKKyAgICAgIG1vZGVsLnJlbmRlcmVyTWFpbi5uYW1lID0gJ0NyUmVuZGVyZXJNYWluJzsKKworICAgICAgbW9kZWwucmVuZGVyZXJDb21wb3NpdG9yID0gbW9kZWwucmVuZGVyZXJQcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQpOworICAgICAgbW9kZWwucmVuZGVyZXJDb21wb3NpdG9yLm5hbWUgPSAnQ29tcG9zaXRvcic7CisKKyAgICAgIG1vZGVsLnJhc3RlcldvcmtlcjEgPSBtb2RlbC5yZW5kZXJlclByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNSk7CisgICAgICBtb2RlbC5yYXN0ZXJXb3JrZXIxLm5hbWUgPSAnQ29tcG9zaXRvclRpbGVXb3JrZXIxJzsKKworICAgICAgY3VzdG9taXplTW9kZWxDYWxsYmFjayhtb2RlbCk7CisgICAgfSk7CisgIH0KKworICBmdW5jdGlvbiBhZGRFdmVudCh0aHJlYWQsIGRpY3QpIHsKKyAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2godHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VFeChkaWN0KSk7CisgIH0KKworICBmdW5jdGlvbiBhZGRJbnB1dEV2ZW50KG1vZGVsLCB0eXBlTmFtZSwgZGljdCkgeworICAgIGRpY3QudGl0bGUgPSAnSW5wdXRMYXRlbmN5OjonICsgdHlwZU5hbWU7CisgICAgZGljdC5pc1RvcExldmVsID0gKGRpY3QuaXNUb3BMZXZlbCA9PT0gdW5kZWZpbmVkKTsKKyAgICBkaWN0LnN0YXJ0VGhyZWFkID0gbW9kZWwuYnJvd3Nlck1haW47CisgICAgdmFyIHNsaWNlID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VFeChkaWN0KTsKKyAgICBtb2RlbC5yZW5kZXJlck1haW4uYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOworICB9CisKKyAgZnVuY3Rpb24gYWRkRmxpbmdBbmltYXRpb25FdmVudChtb2RlbCwgZGljdCkgeworICAgIGRpY3QudGl0bGUgPSAnSW5wdXRIYW5kbGVyUHJveHk6OkhhbmRsZUdlc3R1cmVGbGluZzo6c3RhcnRlZCc7CisgICAgdmFyIHNsaWNlID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VFeChkaWN0KTsKKyAgICBtb2RlbC5yZW5kZXJlckNvbXBvc2l0b3IuYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOworICB9CisKKyAgZnVuY3Rpb24gYWRkRnJhbWVFdmVudChtb2RlbCwgZGljdCkgeworICAgIGRpY3QudGl0bGUgPSB0ci5lLmF1ZGl0cy5JTVBMX1JFTkRFUklOR19TVEFUUzsKKyAgICB2YXIgc2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZUV4KGRpY3QpOworICAgIG1vZGVsLnJlbmRlcmVyTWFpbi5hc3luY1NsaWNlR3JvdXAucHVzaChzbGljZSk7CisgIH0KKworICBmdW5jdGlvbiBhZGRMb2FkaW5nRXZlbnQobW9kZWwsIGRpY3QpIHsKKyAgICBkaWN0LnRpdGxlID0gJ1dlYkNvbnRlbnRzSW1wbCBMb2FkaW5nJzsKKyAgICB2YXIgc2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZUV4KGRpY3QpOworICAgIG1vZGVsLnJlbmRlcmVyTWFpbi5hc3luY1NsaWNlR3JvdXAucHVzaChzbGljZSk7CisgIH0KKworICBmdW5jdGlvbiBhZGROZXR3b3JrRXZlbnQobW9kZWwsIGRpY3QpIHsKKyAgICBkaWN0LmNhdCA9ICduZXRsb2cnOworICAgIGRpY3QudGl0bGUgPSAnR2VuZXJpYyBOZXR3b3JrIGV2ZW50JzsKKyAgICB2YXIgc2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZUV4KGRpY3QpOworICAgIG1vZGVsLmJyb3dzZXJNYWluLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKKyAgfQorCisgIGZ1bmN0aW9uIGFkZENvbW1pdExvYWRFdmVudChtb2RlbCwgZGljdCkgeworICAgIGRpY3QudGl0bGUgPSAnUmVuZGVyRnJhbWVJbXBsOjpkaWRDb21taXRQcm92aXNpb25hbExvYWQnOworICAgIHZhciBzbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXgoZGljdCk7CisgICAgbW9kZWwucmVuZGVyZXJNYWluLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKKyAgfQorCisgIHJldHVybiB7CisgICAgbmV3Q2hyb21lTW9kZWw6IG5ld0Nocm9tZU1vZGVsLAorICAgIGFkZEV2ZW50OiBhZGRFdmVudCwKKyAgICBhZGRJbnB1dEV2ZW50OiBhZGRJbnB1dEV2ZW50LAorICAgIGFkZEZyYW1lRXZlbnQ6IGFkZEZyYW1lRXZlbnQsCisgICAgYWRkTG9hZGluZ0V2ZW50OiBhZGRMb2FkaW5nRXZlbnQsCisgICAgYWRkTmV0d29ya0V2ZW50OiBhZGROZXR3b3JrRXZlbnQsCisgICAgYWRkQ29tbWl0TG9hZEV2ZW50OiBhZGRDb21taXRMb2FkRXZlbnQsCisgICAgYWRkRmxpbmdBbmltYXRpb25FdmVudDogYWRkRmxpbmdBbmltYXRpb25FdmVudAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvZ3B1X2FzeW5jX3NsaWNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGExNmRiMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9ncHUvZ3B1X2FzeW5jX3NsaWNlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdV9hc3luY19zbGljZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBBc3luY1NsaWNlID0gdHIubW9kZWwuQXN5bmNTbGljZTsKKyAgdmFyIEdwdUFzeW5jU2xpY2UgPSB0ci5lLmdwdS5HcHVBc3luY1NsaWNlOworCisgIHRlc3QoJ2NvbnN0cnVjdCcsIGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC5lcXVhbChBc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKCdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5kZXZpY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncHUxJyksCisgICAgICAgICAgICAgICAgIEdwdUFzeW5jU2xpY2UpOworICAgIGFzc2VydC5lcXVhbChBc3luY1NsaWNlLmdldENvbnN0cnVjdG9yKCdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5zZXJ2aWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3B1MicpLAorICAgICAgICAgICAgICAgICBHcHVBc3luY1NsaWNlKTsKKyAgfSk7CisKKyAgdGVzdCgnc3ViZ3JvdXAnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc19kZXZpY2UgPSBuZXcgR3B1QXN5bmNTbGljZSgnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuZGV2aWNlJywgJ2dwdTEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsIDAsIHsnY2hhbm5lbCc6ICd0ZXN0X2NoYW5uZWwxJ30pOworCisgICAgdmFyIHNfc2VydmljZSA9IG5ldyBHcHVBc3luY1NsaWNlKCdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5zZXJ2aWNlJywgJ2dwdTInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAwLCB7J2NoYW5uZWwnOiAndGVzdF9jaGFubmVsMid9KTsKKworICAgIGFzc2VydC5lcXVhbChzX2RldmljZS52aWV3U3ViR3JvdXBUaXRsZSwgJ0RldmljZS50ZXN0X2NoYW5uZWwxJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNfc2VydmljZS52aWV3U3ViR3JvdXBUaXRsZSwgJ1NlcnZpY2UudGVzdF9jaGFubmVsMicpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICd0cmFjZTEnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMTAwLAorICAgICAgIGNhdDogJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtZ3B1LnNlcnZpY2UnLCB0aWQ6IDIsIHBoOiAnYicsIGlkOiA3MX0sCisgICAgICB7bmFtZTogJ3RyYWNlMScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAyMDAsCisgICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuc2VydmljZScsIHRpZDogMiwgcGg6ICdlJywgaWQ6IDcxfSwKKyAgICAgIHtuYW1lOiAndHJhY2UyJywgYXJnczogeydjaGFubmVsJzogJ3Rlc3RfY2hhbm5lbCd9LCBwaWQ6IDEsIHRzOiAxMDAsCisgICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuc2VydmljZScsIHRpZDogMiwgcGg6ICdiJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAndHJhY2UyJywgYXJnczogeydjaGFubmVsJzogJ3Rlc3RfY2hhbm5lbCd9LCBwaWQ6IDEsIHRzOiAyMDAsCisgICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuc2VydmljZScsIHRpZDogMiwgcGg6ICdlJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAndHJhY2UzJywgYXJnczogeydjaGFubmVsJzogJ3Rlc3RfY2hhbm5lbCd9LCBwaWQ6IDEsIHRzOiAxMDAsCisgICAgICAgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1ncHUuZGV2aWNlJywgdGlkOiAyLCBwaDogJ2InLCBpZDogNzN9LAorICAgICAge25hbWU6ICd0cmFjZTMnLCBhcmdzOiB7J2NoYW5uZWwnOiAndGVzdF9jaGFubmVsJ30sIHBpZDogMSwgdHM6IDIwMCwKKyAgICAgICBjYXQ6ICdkaXNhYmxlZC1ieS1kZWZhdWx0LWdwdS5kZXZpY2UnLCB0aWQ6IDIsIHBoOiAnZScsIGlkOiA3M30KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQyID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgYXNzZXJ0LmVxdWFsKHQyLmFzeW5jU2xpY2VHcm91cC5sZW5ndGgsIDMpOworCisgICAgdmFyIHNsaWNlMSA9IHQyLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgdmFyIHNsaWNlMiA9IHQyLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV07CisgICAgdmFyIHNsaWNlMyA9IHQyLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMl07CisKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihzbGljZTEsIEdwdUFzeW5jU2xpY2UpOworICAgIGFzc2VydC5pbnN0YW5jZU9mKHNsaWNlMiwgR3B1QXN5bmNTbGljZSk7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2Yoc2xpY2UzLCBHcHVBc3luY1NsaWNlKTsKKworICAgIGFzc2VydC5lcXVhbChzbGljZTEudmlld1N1Ykdyb3VwVGl0bGUsICd0cmFjZTEnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UyLnZpZXdTdWJHcm91cFRpdGxlLCAnU2VydmljZS50ZXN0X2NoYW5uZWwnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UzLnZpZXdTdWJHcm91cFRpdGxlLCAnRGV2aWNlLnRlc3RfY2hhbm5lbCcpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGUuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3YjY2OGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKworPHNjcmlwdCBzcmM9Ii9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV90ZXN0X2RhdGEuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdGVzdCgnYmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChnX2dwdV9zdGF0ZV90cmFjZSk7CisgICAgdmFyIHAgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMobS5wcm9jZXNzZXMpWzBdOworCisgICAgdmFyIGluc3RhbmNlID0gcC5vYmplY3RzLmdldEFsbEluc3RhbmNlc05hbWVkKCdncHU6OlN0YXRlJylbMF07CisgICAgdmFyIHNuYXBzaG90ID0gaW5zdGFuY2Uuc25hcHNob3RzWzBdOworCisgICAgYXNzZXJ0Lmluc3RhbmNlT2Yoc25hcHNob3QsIHRyLmUuZ3B1LlN0YXRlU25hcHNob3QpOworICAgIGFzc2VydC50eXBlT2Yoc25hcHNob3Quc2NyZWVuc2hvdCwgJ3N0cmluZycpOworICAgIGluc3RhbmNlLndhc0RlbGV0ZWQoMTUwKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV90ZXN0X2RhdGEuanMgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3Rlc3RfZGF0YS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV90ZXN0X2RhdGEuanMKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdGVzdF9kYXRhLmpzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvbGF5b3V0X29iamVjdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2xheW91dF9vYmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGQ0ODdkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2xheW91dF9vYmplY3QuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIExheW91dE9iamVjdCBjbGFzcy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUuY2hyb21lJywgZnVuY3Rpb24oKSB7CisgIHZhciBLTk9XTl9QUk9QRVJUSUVTID0geworICAgIGNoaWxkcmVuOiAxLAorICAgIG5hbWU6IDEsCisgICAgYWRkcmVzczogMQorICB9OworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIExheW91dE9iamVjdChzbmFwc2hvdCwgYXJncykgeworICAgIHRoaXMuc25hcHNob3RfID0gc25hcHNob3Q7CisgICAgdGhpcy5pZF8gPSBhcmdzLmFkZHJlc3M7CisgICAgdGhpcy5uYW1lXyA9IGFyZ3MubmFtZTsKKyAgICB0aGlzLmNoaWxkTGF5b3V0T2JqZWN0c18gPSBbXTsKKyAgICB0aGlzLm90aGVyUHJvcGVydGllc18gPSB7fTsKKworICAgIGlmIChhcmdzLmNoaWxkcmVuKSB7CisgICAgICBhcmdzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGQpIHsKKyAgICAgICAgdGhpcy5jaGlsZExheW91dE9iamVjdHNfLnB1c2gobmV3IExheW91dE9iamVjdChzbmFwc2hvdCwgY2hpbGQpKTsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfQorCisgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gYXJncykgeworICAgICAgaWYgKCFLTk9XTl9QUk9QRVJUSUVTW3Byb3BlcnR5XSkKKyAgICAgICAgdGhpcy5vdGhlclByb3BlcnRpZXNfW3Byb3BlcnR5XSA9IGFyZ3NbcHJvcGVydHldOworICAgIH0KKyAgfQorCisgIExheW91dE9iamVjdC5wcm90b3R5cGUgPSB7CisgICAgZ2V0IHNuYXBzaG90KCkgeworICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3RfOworICAgIH0sCisKKyAgICBnZXQgaWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5pZF87CisgICAgfSwKKworICAgIGdldCBuYW1lKCkgeworICAgICAgcmV0dXJuIHRoaXMubmFtZV87CisgICAgfSwKKworICAgIGdldCBoYXNDaGlsZExheW91dE9iamVjdHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5jaGlsZExheW91dE9iamVjdHNfLmxlbmd0aCA+IDA7CisgICAgfSwKKworICAgIGdldCBjaGlsZExheW91dE9iamVjdHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5jaGlsZExheW91dE9iamVjdHNfOworICAgIH0sCisKKyAgICB0cmF2ZXJzZVRyZWU6IGZ1bmN0aW9uKGNiLCBvcHRfdGhpcykgeworICAgICAgY2IuY2FsbChvcHRfdGhpcywgdGhpcyk7CisgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGRMYXlvdXRPYmplY3RzKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLmNoaWxkTGF5b3V0T2JqZWN0cy5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkKSB7CisgICAgICAgIGNoaWxkLnRyYXZlcnNlVHJlZShjYiwgb3B0X3RoaXMpOworICAgICAgfSk7CisgICAgfSwKKworICAgIGdldCBvdGhlclByb3BlcnR5TmFtZXMoKSB7CisgICAgICB2YXIgbmFtZXMgPSBbXTsKKyAgICAgIGZvciAodmFyIG5hbWUgaW4gdGhpcy5vdGhlclByb3BlcnRpZXNfKSB7CisgICAgICAgIG5hbWVzLnB1c2gobmFtZSk7CisgICAgICB9CisgICAgICByZXR1cm4gbmFtZXM7CisgICAgfSwKKworICAgIGdldFByb3BlcnR5OiBmdW5jdGlvbihuYW1lKSB7CisgICAgICByZXR1cm4gdGhpcy5vdGhlclByb3BlcnRpZXNfW25hbWVdOworICAgIH0sCisKKyAgICBnZXQgcHJldmlvdXNTbmFwc2hvdExheW91dE9iamVjdCgpIHsKKyAgICAgIGlmICghdGhpcy5zbmFwc2hvdC5wcmV2aW91c1NuYXBzaG90KQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3QucHJldmlvdXNTbmFwc2hvdC5nZXRMYXlvdXRPYmplY3RCeUlkKHRoaXMuaWQpOworICAgIH0sCisKKyAgICBnZXQgbmV4dFNuYXBzaG90TGF5b3V0T2JqZWN0KCkgeworICAgICAgaWYgKCF0aGlzLnNuYXBzaG90Lm5leHRTbmFwc2hvdCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0aGlzLnNuYXBzaG90Lm5leHRTbmFwc2hvdC5nZXRMYXlvdXRPYmplY3RCeUlkKHRoaXMuaWQpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIExheW91dE9iamVjdDogTGF5b3V0T2JqZWN0CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2xheW91dF9vYmplY3RfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvY2hyb21lL2xheW91dF9vYmplY3RfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmOGRiYmIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWUvbGF5b3V0X29iamVjdF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw3NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9sYXlvdXRfb2JqZWN0Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gRmFrZVNuYXBzaG90KCkgeworICAgIHRoaXMubGF5b3V0T2JqZWN0c0J5SWQgPSB7fTsKKyAgfQorICBGYWtlU25hcHNob3QucHJvdG90eXBlID0geworICAgIGdldExheW91dE9iamVjdEJ5SWQ6IGZ1bmN0aW9uKGlkKSB7CisgICAgICByZXR1cm4gdGhpcy5sYXlvdXRPYmplY3RzQnlJZFtpZF07CisgICAgfQorICB9OworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNuYXBzaG90ID0gbmV3IEZha2VTbmFwc2hvdCgpOworICAgIHZhciBsYXlvdXRPYmplY3QgPSBuZXcgdHIuZS5jaHJvbWUuTGF5b3V0T2JqZWN0KHNuYXBzaG90LCB7CisgICAgICBhZGRyZXNzOiAnZGVhZGJlZWYnLAorICAgICAgbmFtZTogJ0xheW91dFZpZXcnLAorICAgICAgb3RoZXI6IDEsCisgICAgICBjaGlsZHJlbjogWworICAgICAgICB7CisgICAgICAgICAgYWRkcmVzczogJ2JlZWYyJywKKyAgICAgICAgICBuYW1lOiAnTGF5b3V0QmxvY2tGbG93JywKKyAgICAgICAgICBvdGhlcjogMgorICAgICAgICB9CisgICAgICBdCisgICAgfSk7CisgICAgc25hcHNob3QubGF5b3V0T2JqZWN0c0J5SWRbbGF5b3V0T2JqZWN0LmlkXSA9IGxheW91dE9iamVjdDsKKworICAgIGFzc2VydC5zdHJpY3RFcXVhbChzbmFwc2hvdCwgbGF5b3V0T2JqZWN0LnNuYXBzaG90KTsKKyAgICBhc3NlcnQuZXF1YWwoJ0xheW91dFZpZXcnLCBsYXlvdXRPYmplY3QubmFtZSk7CisgICAgYXNzZXJ0LmVxdWFsKCdkZWFkYmVlZicsIGxheW91dE9iamVjdC5pZCk7CisgICAgYXNzZXJ0LmVxdWFsKDEsIGxheW91dE9iamVjdC5vdGhlclByb3BlcnR5TmFtZXMubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgbGF5b3V0T2JqZWN0LmdldFByb3BlcnR5KCdvdGhlcicpKTsKKyAgICBhc3NlcnQuaXNUcnVlKGxheW91dE9iamVjdC5oYXNDaGlsZExheW91dE9iamVjdHMpOworICAgIHZhciBjaGlsZCA9IGxheW91dE9iamVjdC5jaGlsZExheW91dE9iamVjdHNbMF07CisgICAgYXNzZXJ0LmVxdWFsKCdMYXlvdXRCbG9ja0Zsb3cnLCBjaGlsZC5uYW1lKTsKKyAgICBhc3NlcnQuZXF1YWwoJ2JlZWYyJywgY2hpbGQuaWQpOworICAgIGFzc2VydC5lcXVhbCgxLCBjaGlsZC5vdGhlclByb3BlcnR5TmFtZXMubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwoMiwgY2hpbGQuZ2V0UHJvcGVydHkoJ290aGVyJykpOworCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGxheW91dE9iamVjdC5wcmV2aW91c1NuYXBzaG90TGF5b3V0T2JqZWN0KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQobGF5b3V0T2JqZWN0Lm5leHRTbmFwc2hvdExheW91dE9iamVjdCk7CisKKyAgICB2YXIgY291bnQgPSAwOworICAgIGxheW91dE9iamVjdC50cmF2ZXJzZVRyZWUoZnVuY3Rpb24obm9kZSkgeworICAgICAgY291bnQgKz0gMTsKKyAgICB9KTsKKyAgICBhc3NlcnQuZXF1YWwoMiwgY291bnQpOworCisgICAgdmFyIG5leHRTbmFwc2hvdCA9IG5ldyBGYWtlU25hcHNob3QoKTsKKyAgICBuZXh0U25hcHNob3QucHJldmlvdXNTbmFwc2hvdCA9IHNuYXBzaG90OworICAgIHNuYXBzaG90Lm5leHRTbmFwc2hvdCA9IG5leHRTbmFwc2hvdDsKKworICAgIHZhciBuZXh0TGF5b3V0T2JqZWN0ID0gbmV3IHRyLmUuY2hyb21lLkxheW91dE9iamVjdChuZXh0U25hcHNob3QsIHsKKyAgICAgIGFkZHJlc3M6ICdkZWFkYmVlZicsCisgICAgICBuYW1lOiAnTGF5b3V0VmlldycKKyAgICB9KTsKKyAgICBuZXh0U25hcHNob3QubGF5b3V0T2JqZWN0c0J5SWRbbmV4dExheW91dE9iamVjdC5pZF0gPSBuZXh0TGF5b3V0T2JqZWN0OworCisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxheW91dE9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV4dExheW91dE9iamVjdC5wcmV2aW91c1NuYXBzaG90TGF5b3V0T2JqZWN0KTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwobmV4dExheW91dE9iamVjdCwgbGF5b3V0T2JqZWN0Lm5leHRTbmFwc2hvdExheW91dE9iamVjdCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGxheW91dE9iamVjdC5wcmV2aW91c1NuYXBzaG90TGF5b3V0T2JqZWN0KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQobmV4dExheW91dE9iamVjdC5uZXh0U25hcHNob3RMYXlvdXRPYmplY3QpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWVfY29uZmlnLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9jaHJvbWVfY29uZmlnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdiYjFmYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2Nocm9tZV9jb25maWcuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPCEtLQorVGhlIGNocm9tZSBjb25maWcgaXMgaGVhdmlseSB1c2VkOgorICAtIGNocm9tZTovL3RyYWNpbmcsCisgIC0gdHJhY2UyaHRtbCwgd2hpY2ggaW4gdHVybiBpbXBsaWVzCisgICAgLSBhZGJfcHJvZmlsZV9jaHJvbWUKKyAgICAtIHRlbGVtZXRyeQorLS0+CisKKzwhLS0gQ29yZSBVSSBjb25maWdzIC0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdmlldy5odG1sIj4KKworPCEtLSBDaHJvbWUgYWxzbyBzdXBwb3J0cyBzeXN0cmFjZSAmIGxlYW4gY29uZmlnIC0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvc3lzdHJhY2VfY29uZmlnLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvbGVhbl9jb25maWcuaHRtbCI+CisKKzwhLS0gR2VuZXJhbCBpbXBvcnRlcnMgLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9nemlwX2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvemlwX2ltcG9ydGVyLmh0bWwiPgorCis8IS0tLSBEb21haW4gc3BlY2lmaWMgaW1wb3J0ZXJzIC0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdjgvdjhfbG9nX2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvZXR3L2V0d19pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlMmh0bWxfaW1wb3J0ZXIuaHRtbCI+CisKKzwhLS0gTG90cyBvZiBjaHJvbWUtc3BlY2lmaWMgZXh0cmFzIC0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvbmV0L25ldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9sYXlvdXRfb2JqZWN0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL2NjLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2dwdS9ncHUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2MuaHRtbCI+CisKKzwhLS0gU2lkZSBwYW5lbHMgYXJlIGNocm9tZS1vbmx5IGZvciBub3cgLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2lucHV0X2xhdGVuY3lfc2lkZV9wYW5lbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWwuaHRtbCI+CisKKzwhLS0gU2FtcGxlIGFuYWx5c2lzIGlzIGNocm9tZS1vbmx5IGJlY2F1c2UgaXQgYnJpbmdzIGluIEQzIHdoaWNoIGlzIEhVR0UgLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5Lmh0bWwiPgorCis8IS0tIEF1ZGl0b3JzIGFyZSBmdW4gLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX2F1ZGl0b3IuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9hbmRyb2lkL2FuZHJvaWRfYXVkaXRvci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3ZzeW5jL3ZzeW5jX2F1ZGl0b3IuaHRtbCI+CisKKzwhLS0gUkFJTCBpcyBmdW4gdG9vIC0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NpZGVfcGFuZWwuaHRtbCI+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9mdWxsX2NvbmZpZy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvZnVsbF9jb25maWcuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvZnVsbF9jb25maWcuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvZnVsbF9jb25maWcuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9iYXR0b3JfaW1wb3J0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDAzZGFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyLmh0bWwKQEAgLTAsMCArMSwyNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2ltcG9ydGVyL2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcG93ZXJfc2VyaWVzLmh0bWwiPgorCis8c2NyaXB0PgorLyoqCisgKiBAZmlsZW92ZXJ2aWV3IEltcG9ydHMgdGV4dCBmaWxlcyBpbiB0aGUgQmF0dE9yIGZvcm1hdCBpbnRvIHRoZQorICogTW9kZWwuIFRoaXMgZm9ybWF0IGlzIG91dHB1dCBieSB0aGUgQmF0dE9yIGV4ZWN1dGFibGUuCisgKgorICogVGhpcyBpbXBvcnRlciBhc3N1bWVzIHRoZSBldmVudHMgYXJyaXZlIGFzIGEgc3RyaW5nLiBUaGUgdW5pdCB0ZXN0cyBwcm92aWRlCisgKiBleGFtcGxlcyBvZiB0aGUgdHJhY2UgZm9ybWF0LgorICovCisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmJhdHRvcicsIGZ1bmN0aW9uKCkgeworICB2YXIgSW1wb3J0ZXIgPSB0ci5pbXBvcnRlci5JbXBvcnRlcjsKKworICAvKioKKyAgICogSW1wb3J0cyBsaW51eCBwZXJmIGV2ZW50cyBpbnRvIGEgc3BlY2lmaWVkIG1vZGVsLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEJhdHRvckltcG9ydGVyKG1vZGVsLCBldmVudHMpIHsKKyAgICB0aGlzLmltcG9ydFByaW9yaXR5ID0gMzsgLy8gcnVucyBhZnRlciB0aGUgbGludXhfcGVyZiBpbXBvcnRlcgorICAgIHRoaXMuc2FtcGxlUmF0ZV8gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5tb2RlbF8gPSBtb2RlbDsKKyAgICB0aGlzLmV2ZW50c18gPSBldmVudHM7CisgIH0KKworICB2YXIgVGVzdEV4cG9ydHMgPSB7fTsKKworICB2YXIgYmF0dG9yRGF0YUxpbmVSRSA9IC9eKFxkK1wuXGQrKVxzKyhcZCtcLlxkKylccysoXGQrXC5cZCspJC87CisgIHZhciBiYXR0b3JIZWFkZXJMaW5lUkUgPSAvXiMgQmF0dE9yLzsKKyAgdmFyIHNhbXBsZVJhdGVMaW5lUkUgPSAvXiMgc2FtcGxlX3JhdGU9KFxkKylIei87CisKKyAgLyoqCisgICAqIEd1ZXNzZXMgd2hldGhlciB0aGUgcHJvdmlkZWQgZXZlbnRzIGlzIGEgQmF0dE9yIHN0cmluZy4KKyAgICogTG9va3MgZm9yIHRoZSBtYWdpYyBzdHJpbmcgIiMgQmF0dE9yIiBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUsCisgICAqCisgICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgd2hlbiBldmVudHMgaXMgYSBCYXR0T3IgYXJyYXkuCisgICAqLworICBCYXR0b3JJbXBvcnRlci5jYW5JbXBvcnQgPSBmdW5jdGlvbihldmVudHMpIHsKKyAgICBpZiAoISh0eXBlb2YoZXZlbnRzKSA9PT0gJ3N0cmluZycgfHwgZXZlbnRzIGluc3RhbmNlb2YgU3RyaW5nKSkKKyAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBiYXR0b3JIZWFkZXJMaW5lUkUudGVzdChldmVudHMpOworICB9OworCisgIEJhdHRvckltcG9ydGVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEltcG9ydGVyLnByb3RvdHlwZSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogSW1wb3J0cyB0aGUgZGF0YSBpbiB0aGlzLmV2ZW50c18gaW50byBtb2RlbF8uCisgICAgICovCisgICAgaW1wb3J0RXZlbnRzOiBmdW5jdGlvbihpc1NlY29uZGFyeUltcG9ydCkgeworICAgICAgLy8gRmFpbCBpZiB0aGUgbW9kZWwgYWxyZWFkeSBoYXMgYSBQb3dlciBjb3VudGVyLgorICAgICAgaWYgKHRoaXMubW9kZWxfLmRldmljZS5wb3dlclNlcmllcykgeworICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICB0eXBlOiAnaW1wb3J0X2Vycm9yJywKKyAgICAgICAgICBtZXNzYWdlOiAnUG93ZXIgY291bnRlciBleGlzdHMsIGNhbiBub3QgaW1wb3J0IEJhdHRPciBwb3dlciB0cmFjZS4nCisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIC8vIENyZWF0ZSBzZXJpZXMgYW5kIGltcG9ydCBwb3dlciBzYW1wbGVzIGludG8gaXQuCisgICAgICB2YXIgbmFtZSA9ICdwb3dlcic7CisgICAgICB2YXIgc2VyaWVzID0gbmV3IHRyLm1vZGVsLlBvd2VyU2VyaWVzKHRoaXMubW9kZWxfLmRldmljZSk7CisgICAgICB0aGlzLmltcG9ydFBvd2VyU2FtcGxlcyhzZXJpZXMpOworCisgICAgICAvLyBGaW5kIHRoZSBzeW5jIG1hcmtlcnMuCisgICAgICB2YXIgc3luY01hcmtzID0gdGhpcy5tb2RlbF8uZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkKCdiYXR0b3InKTsKKyAgICAgIGlmIChzeW5jTWFya3MubGVuZ3RoIDwgMSkgeworICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICB0eXBlOiAnY2xvY2tfc3luYycsCisgICAgICAgICAgbWVzc2FnZTogJ0Nhbm5vdCBpbXBvcnQgQmF0dE9yIHBvd2VyIHRyYWNlIHdpdGhvdXQgYSBzeW5jIHNpZ25hbC4nCisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIC8vIFRyeSBlYWNoIG9mIHRoZSBjbG9jayBzeW5jIHRlY2hpbnF1ZXMgaW4gb3JkZXIgb2YgdGhlaXIgYWNjdXJhY3kuCisgICAgICB2YXIgc2hpZnRUcyA9IHRoaXMuY29ycmVsYXRpb25DbG9ja1N5bmMoc3luY01hcmtzLCBzZXJpZXMpOworCisgICAgICBpZiAoc2hpZnRUcyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgIHR5cGU6ICdjbG9ja19zeW5jJywKKyAgICAgICAgICBtZXNzYWdlOiAnQWxsIG9mIHRoZSBCYXR0T3IgcG93ZXIgdHJhY2UgY2xvY2sgc3luYyB0ZWNoaW5xdWVzIGZhaWxlZC4nCisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHNlcmllcy5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKHNoaWZ0VHMpOworICAgICAgdGhpcy5tb2RlbF8uZGV2aWNlLnBvd2VyU2VyaWVzID0gc2VyaWVzOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBXYWxrcyB0aGUgZXZlbnRzIGFuZCBwb3B1bGF0ZXMgYSB0aW1lIHNlcmllcyB3aXRoIHBvd2VyIHNhbXBsZXMuCisgICAgICovCisgICAgaW1wb3J0UG93ZXJTYW1wbGVzOiBmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgIHZhciBsaW5lcyA9IHRoaXMuZXZlbnRzXy5zcGxpdCgnXG4nKTsKKworICAgICAgLy8gVXBkYXRlIHRoZSBtb2RlbCdzIGJvdW5kcy4KKyAgICAgIHRoaXMubW9kZWxfLnVwZGF0ZUJvdW5kcygpOworICAgICAgdmFyIG1pblRzID0gMDsKKyAgICAgIGlmICh0aGlzLm1vZGVsXy5ib3VuZHMubWluICE9PSB1bmRlZmluZWQpCisgICAgICAgIG1pblRzID0gdGhpcy5tb2RlbF8uYm91bmRzLm1pbjsKKworICAgICAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lKSB7CisgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoL14jLy50ZXN0KGxpbmUpKSB7CisgICAgICAgICAgLy8gUGFyc2Ugc2FtcGxlIHJhdGUuCisgICAgICAgICAgZ3JvdXBzID0gc2FtcGxlUmF0ZUxpbmVSRS5leGVjKGxpbmUpOworICAgICAgICAgIGlmICghZ3JvdXBzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIHRoaXMuc2FtcGxlUmF0ZV8gPSBwYXJzZUludChncm91cHNbMV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIC8vIFBhcnNlIHBvd2VyIHNhbXBsZS4KKyAgICAgICAgICB2YXIgZ3JvdXBzID0gYmF0dG9yRGF0YUxpbmVSRS5leGVjKGxpbmUpOworICAgICAgICAgIGlmICghZ3JvdXBzKSB7CisgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgbWVzc2FnZTogJ1VucmVjb2duaXplZCBsaW5lOiAnICsgbGluZQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorCisgICAgICAgICAgdmFyIHRpbWUgPSBwYXJzZUZsb2F0KGdyb3Vwc1sxXSkgKyBtaW5UczsKKyAgICAgICAgICB2YXIgdm9sdGFnZV9tViA9IHBhcnNlRmxvYXQoZ3JvdXBzWzJdKTsKKyAgICAgICAgICB2YXIgY3VycmVudF9tQSA9IHBhcnNlRmxvYXQoZ3JvdXBzWzNdKTsKKyAgICAgICAgICBzZXJpZXMuYWRkUG93ZXJTYW1wbGUodGltZSwgKHZvbHRhZ2VfbVYgKiBjdXJyZW50X21BKSAvIDEwMDApOworICAgICAgICB9CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgY29ycmVsYXRpb25DbG9ja1N5bmM6IGZ1bmN0aW9uKHN5bmNNYXJrcywgc2VyaWVzKSB7CisgICAgICAvLyBGaW5kIHRoZSByZWd1bGF0b3IgY291bnRlciBmb3IgdGhlIHN5bmMuCisgICAgICB2YXIgc3luY0N0ciA9IHRoaXMubW9kZWxfLmtlcm5lbC5jb3VudGVyc1sKKyAgICAgICAgICAnbnVsbC52cmVnICcgKyBzeW5jTWFya3NbMF0uYXJnc1sncmVndWxhdG9yJ10gKyAnIGVuYWJsZWQnXTsKKyAgICAgIGlmIChzeW5jQ3RyID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ2Nsb2NrX3N5bmMnLAorICAgICAgICAgIG1lc3NhZ2U6ICdDYW5ub3QgY29ycmVsYXRlIEJhdHRPciBwb3dlciB0cmFjZSB3aXRob3V0IHN5bmMgdnJlZy4nCisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgfQorCisgICAgICAvLyBTdG9yZSB0aGUgc3luYyBldmVudHMgZnJvbSB0aGUgcmVndWxhdG9yIGNvdW50ZXIuCisgICAgICB2YXIgc3luY0V2ZW50cyA9IFtdOworICAgICAgdmFyIGZpcnN0U3luY0V2ZW50VHMgPSB1bmRlZmluZWQ7CisgICAgICBzeW5jQ3RyLnNlcmllc1swXS5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC50aW1lc3RhbXAgPj0gc3luY01hcmtzWzBdLnRzICYmCisgICAgICAgICAgICBldmVudC50aW1lc3RhbXAgPD0gc3luY01hcmtzWzFdLnRzKSB7CisgICAgICAgICAgaWYgKGZpcnN0U3luY0V2ZW50VHMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIGZpcnN0U3luY0V2ZW50VHMgPSBldmVudC50aW1lc3RhbXA7CisgICAgICAgICAgdmFyIG5ld0V2ZW50ID0geworICAgICAgICAgICAgICAndHMnOiAoZXZlbnQudGltZXN0YW1wIC0gZmlyc3RTeW5jRXZlbnRUcykgLyAxMDAwLCAvLyBtc2VjIC0+IHNlYworICAgICAgICAgICAgICAndmFsJzogZXZlbnQudmFsdWV9OworICAgICAgICAgIHN5bmNFdmVudHMucHVzaChuZXdFdmVudCk7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgICAgICAvLyBHZW5lcmF0ZSBzYW1wbGVzIGZyb20gc3luYyBldmVudHMgdG8gYmUgY3Jvc3MtY29ycmVsYXRlZCB3aXRoIHBvd2VyLgorICAgICAgdmFyIHN5bmNTYW1wbGVzID0gW107CisgICAgICB2YXIgc3luY051bVNhbXBsZXMgPSBNYXRoLmNlaWwoCisgICAgICAgICAgc3luY0V2ZW50c1tzeW5jRXZlbnRzLmxlbmd0aCAtIDFdLnRzICogdGhpcy5zYW1wbGVSYXRlXworICAgICAgKTsKKworICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBzeW5jRXZlbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBzYW1wbGVTdGFydElkeCA9IE1hdGguY2VpbCgKKyAgICAgICAgICAgIHN5bmNFdmVudHNbaSAtIDFdLnRzICogdGhpcy5zYW1wbGVSYXRlXworICAgICAgICApOworICAgICAgICB2YXIgc2FtcGxlRW5kSWR4ID0gTWF0aC5jZWlsKAorICAgICAgICAgICAgc3luY0V2ZW50c1tpXS50cyAqIHRoaXMuc2FtcGxlUmF0ZV8KKyAgICAgICAgKTsKKworICAgICAgICBmb3IgKHZhciBqID0gc2FtcGxlU3RhcnRJZHg7IGogPCBzYW1wbGVFbmRJZHg7IGorKykgeworICAgICAgICAgIHN5bmNTYW1wbGVzW2pdID0gc3luY0V2ZW50c1tpIC0gMV0udmFsOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8vIFRPRE8oYXNjaHVsbWFuKSBMb3ctcGFzcyB0aGUgc2FtcGxlcyB0byBpbXByb3ZlIHRoZSBjcm9zcy1jb3JyZWxhdGlvbi4KKworICAgICAgdmFyIHBvd2VyU2FtcGxlcyA9IHNlcmllcy5zYW1wbGVzOworICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBlbm91Z2ggcG93ZXIgc2FtcGxlcy4KKyAgICAgIGlmIChwb3dlclNhbXBsZXMubGVuZ3RoIDwgc3luY1NhbXBsZXMubGVuZ3RoKSB7CisgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgIHR5cGU6ICdub3RfZW5vdWdoX3NhbXBsZXMnLAorICAgICAgICAgIG1lc3NhZ2U6ICdOb3QgZW5vdWdoIHBvd2VyIHNhbXBsZXMgdG8gY29ycmVsYXRlIHdpdGggc3luYyBzaWduYWwuJworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIH0KKworICAgICAgLy8gQ3Jvc3MtY29ycmVsYXRlIHRoZSBncm91bmQgdHJ1dGggd2l0aCB0aGUgbGFzdCA1cyBvZiBwb3dlciBzYW1wbGVzLgorICAgICAgdmFyIG1heFNoaWZ0ID0gcG93ZXJTYW1wbGVzLmxlbmd0aCAtIHN5bmNTYW1wbGVzLmxlbmd0aDsKKyAgICAgIHZhciBtaW5TaGlmdCA9IDA7CisgICAgICB2YXIgY29yck51bVNhbXBsZXMgPSB0aGlzLnNhbXBsZVJhdGVfICogNS4wOworICAgICAgaWYgKHBvd2VyU2FtcGxlcy5sZW5ndGggPiBjb3JyTnVtU2FtcGxlcykKKyAgICAgICAgbWluU2hpZnQgPSBwb3dlclNhbXBsZXMubGVuZ3RoIC0gY29yck51bVNhbXBsZXM7CisKKyAgICAgIHZhciBjb3JyID0gW107CisgICAgICBmb3IgKHZhciBzaGlmdCA9IG1pblNoaWZ0OyBzaGlmdCA8PSBtYXhTaGlmdDsgc2hpZnQrKykgeworICAgICAgICB2YXIgY29yclN1bSA9IDA7CisgICAgICAgIHZhciBwb3dlckF2ZyA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3luY1NhbXBsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICBjb3JyU3VtICs9IChwb3dlclNhbXBsZXNbaSArIHNoaWZ0XS5wb3dlciAqIHN5bmNTYW1wbGVzW2ldKTsKKyAgICAgICAgICBwb3dlckF2ZyArPSBwb3dlclNhbXBsZXNbaSArIHNoaWZ0XS5wb3dlcjsKKyAgICAgICAgfQorICAgICAgICBwb3dlckF2ZyA9IHBvd2VyQXZnIC8gc3luY1NhbXBsZXMubGVuZ3RoOworICAgICAgICBjb3JyLnB1c2goY29yclN1bSAvIHBvd2VyQXZnKTsKKyAgICAgIH0KKworICAgICAgLy8gRmluZCB0aGUgc3luYyBzdGFydCB0aW1lIChwZWFrIG9mIHRoZSBjcm9zcy1jb3JyZWxhdGlvbikuCisgICAgICB2YXIgY29yclBlYWtJZHggPSAwOworICAgICAgdmFyIGNvcnJQZWFrID0gMDsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcG93ZXJTYW1wbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChjb3JyW2ldID4gY29yclBlYWspIHsKKyAgICAgICAgICBjb3JyUGVhayA9IGNvcnJbaV07CisgICAgICAgICAgY29yclBlYWtJZHggPSBpOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8vIFNoaWZ0IHRoZSB0aW1lIG9mIHRoZSBwb3dlciBzYW1wbGVzIGJ5IHRoZSByZWNvdmVyZWQgc3luYyBzdGFydCB0aW1lLgorICAgICAgdmFyIGNvcnJQZWFrVHMgPSAoKG1pblNoaWZ0ICsgY29yclBlYWtJZHgpIC8gdGhpcy5zYW1wbGVSYXRlXyk7CisgICAgICBjb3JyUGVha1RzICo9IDEwMDA7IC8vIHNlYyAtPiBtc2VjCisgICAgICB2YXIgc3luY1N0YXJ0VHMgPSBmaXJzdFN5bmNFdmVudFRzIC0gdGhpcy5tb2RlbF8uYm91bmRzLm1pbjsKKyAgICAgIHZhciBzaGlmdFRzID0gc3luY1N0YXJ0VHMgLSBjb3JyUGVha1RzOworCisgICAgICByZXR1cm4gc2hpZnRUczsKKyAgICB9CisgIH07CisKKyAgdHIuaW1wb3J0ZXIuSW1wb3J0ZXIucmVnaXN0ZXIoQmF0dG9ySW1wb3J0ZXIpOworCisgIHJldHVybiB7CisgICAgQmF0dG9ySW1wb3J0ZXI6IEJhdHRvckltcG9ydGVyLAorICAgIF9CYXR0b3JJbXBvcnRlclRlc3RFeHBvcnRzOiBUZXN0RXhwb3J0cworICB9OworfSk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2JhdHRvcl9pbXBvcnRlcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNhN2ZkMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2JhdHRvcl9pbXBvcnRlcl90ZXN0Lmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvYmF0dG9yX2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworCisgIHZhciBCQVRUT1JfTElORVMgPSBbCisgICAgJyMgQmF0dE9yJywKKyAgICAnIyB2b2x0YWdlIHJhbmdlIFswLjAwMDAwMCwgNjE0NC4wMDAwMDBdIG1WJywKKyAgICAnIyBjdXJyZW50IHJhbmdlIFswLjAwMDAwMCwgMjI3NS41NTU1NTZdIG1BJywKKyAgICAnIyBzYW1wbGVfcmF0ZT0yMDAwSHosIGdhaW49NS4wMDAwMDB4JywKKyAgICAnIyBmaWxwb3RfcG9zPTQsIGFtcHBvdF9wb3M9MjU2LCB0aW1lcl9vdmY9NDk5LCB0aW1lcl9kaXY9NCBvdnNfYml0cz0xJywKKyAgICAnMC4wMDAwMDAgMC4wMDAwMDAgNDAwMC4wMDAwMDAnLAorICAgICcwLjUwMDAwMCAwLjAwMDAwMCA0MDAwLjAwMDAwMCcsCisgICAgJzEuMDAwMDAwIDAuMDAwMDAwIDQwMDAuMDAwMDAwJywKKyAgICAnMS41MDAwMDAgMC4wMDAwMDAgNDAwMC4wMDAwMDAnLAorICAgICcyLjAwMDAwMCAxLjAwMDAwMCA0MDAwLjAwMDAwMCcKKyAgXTsKKworICB2YXIgU1lTVFJBQ0VfTElORVMgPSBbCisgICAgJyMgdHJhY2VyOiBub3AnLAorICAgICcjJywKKyAgICAnIyBlbnRyaWVzLWluLWJ1ZmZlci9lbnRyaWVzLXdyaXR0ZW46IDg4ODE5LzEzNDIxMCAgICNQOjEnLAorICAgICcjJywKKyAgICAnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8tLS0tLT0+IGlycXMtb2ZmJywKKyAgICAnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZCcsCisgICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEnLAorICAgICcjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aCcsCisgICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHx8IC8gICAgIGRlbGF5JywKKyAgICAnIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICB8fHx8ICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04nLAorICAgICcjICAgICAgICAgICAgICB8IHwgICAgICAgfCAgIHx8fHwgICAgICAgfCAgICAgICAgIHwnLAorICAgICdzaC04NTUwICBbMDAxXSAuLi4xIDAuMDAwMDAwOiB0cmFjaW5nX21hcmtfd3JpdGU6ICcgKworICAgICd0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBuYW1lPWJhdHRvciByZWd1bGF0b3I9dGVzdF9yZWd1bGF0b3InLAorICAgICc8ODUyMD4tODUyMCAgWzAwMV0gLi4uMSAwLjAwMDAwMDogcmVndWxhdG9yX2VuYWJsZTogbmFtZT10ZXN0X3JlZ3VsYXRvcicsCisgICAgJzw4NTIwPi04NTIwICBbMDAxXSAuLi4xIDAuMDAwMTAwOiByZWd1bGF0b3JfZGlzYWJsZTogbmFtZT10ZXN0X3JlZ3VsYXRvcicsCisgICAgJ3NoLTg1NTAgIFswMDFdIC4uLjEgICAgIDAuMDAxMDAwOiB0cmFjaW5nX21hcmtfd3JpdGU6ICcgKworICAgICd0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBuYW1lPWJhdHRvciByZWd1bGF0b3I9dGVzdF9yZWd1bGF0b3InCisgIF07CisKKyAgdGVzdCgnY2FuSW1wb3J0JywgZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0LmlzRmFsc2UodHIuZS5pbXBvcnRlci5iYXR0b3IuQmF0dG9ySW1wb3J0ZXIuY2FuSW1wb3J0KCdzdHJpbmcnKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodHIuZS5pbXBvcnRlci5iYXR0b3IuQmF0dG9ySW1wb3J0ZXIuY2FuSW1wb3J0KFtdKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0ci5lLmltcG9ydGVyLmJhdHRvci5CYXR0b3JJbXBvcnRlci5jYW5JbXBvcnQoCisgICAgICAgIEJBVFRPUl9MSU5FUy5qb2luKCdcbicpKSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydFBvd2VyU2FtcGxlc0FuZFRyYWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoU1lTVFJBQ0VfTElORVMuam9pbignXG4nKSwgZmFsc2UpOworICAgIG0uaW1wb3J0VHJhY2VzKFtCQVRUT1JfTElORVMuam9pbignXG4nKV0pOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChtLmRldmljZS5wb3dlclNlcmllcyk7CisKKyAgICAvLyBDaGVjayB0byBzZWUgaWYgdGltZSBzaGlmdGVkIGNvcnJlY3RseQorICAgIG0uZ2V0QWxsQ291bnRlcnMoKS5mb3JFYWNoKGZ1bmN0aW9uKGNvdW50ZXIpIHsKKyAgICAgIHZhciBzZXJpZXMgPSBjb3VudGVyLmdldFNlcmllcygwKTsKKyAgICAgIGlmIChjb3VudGVyLmlkID09PSAnbnVsbC52cmVnIHRlc3RfcmVndWxhdG9yIGVuYWJsZWQnKQorICAgICAgICBhc3NlcnQuZXF1YWwoc2VyaWVzLmdldFRpbWVzdGFtcCgwKSwgMi4wKTsKKyAgICB9KTsKKyAgICBhc3NlcnQuZXF1YWwobS5kZXZpY2UucG93ZXJTZXJpZXMuc2FtcGxlc1sxXS5zdGFydCwgMC41KTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0QWxyZWFkeUhhc1Bvd2VyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoU1lTVFJBQ0VfTElORVMuam9pbignXG4nKSwgZmFsc2UpOworICAgIG0uaW1wb3J0VHJhY2VzKFtCQVRUT1JfTElORVMuam9pbignXG4nKV0pOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICAgIG0uaW1wb3J0VHJhY2VzKFtCQVRUT1JfTElORVMuam9pbignXG4nKV0pOworICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE1pc3NpbmdMaW51eFRyYWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoQkFUVE9SX0xJTkVTLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgICBhc3NlcnQuaXNUcnVlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnROb3RFbm91Z2hTYW1wbGVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNob3J0TGluZXMgPSBCQVRUT1JfTElORVMuc2xpY2UoMCwgNSk7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoU1lTVFJBQ0VfTElORVMuam9pbignXG4nKSwgZmFsc2UpOworICAgIG0uaW1wb3J0VHJhY2VzKFtzaG9ydExpbmVzLmpvaW4oJ1xuJyldKTsKKyAgICBhc3NlcnQuaXNUcnVlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2RkbXNfaW1wb3J0ZXIuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZGRtc19pbXBvcnRlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2RkbXNfaW1wb3J0ZXJfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZGRtc19pbXBvcnRlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldHdfaW1wb3J0ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldHdfaW1wb3J0ZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L2V0d19pbXBvcnRlci5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9ldHcvZXR3X2ltcG9ydGVyLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldHdfaW1wb3J0ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L2V0d19pbXBvcnRlcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldHdfaW1wb3J0ZXJfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9ldHcvZXR3X2ltcG9ydGVyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L2V2ZW50dHJhY2VfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9ldHcvZXZlbnR0cmFjZV9wYXJzZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L2V2ZW50dHJhY2VfcGFyc2VyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy9ldmVudHRyYWNlX3BhcnNlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9ldHcvZXZlbnR0cmFjZV9wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L2V2ZW50dHJhY2VfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L2V2ZW50dHJhY2VfcGFyc2VyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L2V2ZW50dHJhY2VfcGFyc2VyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L3BhcnNlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9ldHcvcGFyc2VyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy9wYXJzZXIuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L3Byb2Nlc3NfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9ldHcvcHJvY2Vzc19wYXJzZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L3Byb2Nlc3NfcGFyc2VyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy9wcm9jZXNzX3BhcnNlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9ldHcvcHJvY2Vzc19wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L3Byb2Nlc3NfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L3Byb2Nlc3NfcGFyc2VyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZXR3L3Byb2Nlc3NfcGFyc2VyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L3RocmVhZF9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy90aHJlYWRfcGFyc2VyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2V0dy90aHJlYWRfcGFyc2VyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy90aHJlYWRfcGFyc2VyLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2V0dy90aHJlYWRfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2V0dy90aHJlYWRfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZXR3L3RocmVhZF9wYXJzZXJfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9ldHcvdGhyZWFkX3BhcnNlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2d6aXBfaW1wb3J0ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2d6aXBfaW1wb3J0ZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvZ3ppcF9pbXBvcnRlci5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9nemlwX2ltcG9ydGVyLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2d6aXBfaW1wb3J0ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvZ3ppcF9pbXBvcnRlcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2IwMmNiMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2d6aXBfaW1wb3J0ZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9nemlwX2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBmaW5kU2xpY2VOYW1lZCA9IHRyLmMudGVzdF91dGlscy5maW5kU2xpY2VOYW1lZDsKKyAgdmFyIG9yaWdpbmFsX2RhdGEgPQorICAgICAgJ1t7Im5hbWUiOiJhIiwiYXJncyI6e30sInBpZCI6NTIsInRzIjo1MjAsImNhdCI6ImZvbyIsInRpZCI6NTMsJyArCisgICAgICAnInBoIjoiQiJ9LHsibmFtZSI6ImEiLCJhcmdzIjp7fSwicGlkIjo1MiwidHMiOjUyMCwiY2F0IjoiZm9vIiwnICsKKyAgICAgICcidGlkIjo1MywicGgiOiJFIn1dXG4nOworICB2YXIgZ3ppcF9kYXRhX2Jhc2U2NCA9CisgICAgICAnSDRzSUNIcjRIVklBQTNSeVlXTmxBSXV1VnNwTHpFMVZzbEpLVk5KUlNpeEtMMWF5cXE3VlVTcklURkd5JyArCisgICAgICAnTWpYU1VTb3BCdEVHT2tySmlTVkFWV241K1VCMUpXQlpZNkN5REtDWWsxS3REaFdNY1ZXcWplVUNBTGFrJyArCisgICAgICAnRUgrUUFBQUEnOworCisgIHRlc3QoJ2ZhaWxJbXBvcnRFbXB0eScsIGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC5pc0ZhbHNlKHRyLmUuaW1wb3J0ZXIuR3ppcEltcG9ydGVyLmNhbkltcG9ydChbXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKHRyLmUuaW1wb3J0ZXIuR3ppcEltcG9ydGVyLmNhbkltcG9ydCgnJykpOworICB9KTsKKworICB0ZXN0KCdpbmZsYXRlU3RyaW5nJywgZnVuY3Rpb24oKSB7CisgICAgLy8gVGVzdCBpbmZsYXRpbmcgdGhlIGRhdGEgZnJvbSBhIHN0cmluZy4KKyAgICB2YXIgZ3ppcF9kYXRhID0gYXRvYihnemlwX2RhdGFfYmFzZTY0KTsKKyAgICB2YXIgaW1wb3J0ZXIgPSBuZXcgdHIuZS5pbXBvcnRlci5HemlwSW1wb3J0ZXIobnVsbCwgZ3ppcF9kYXRhKTsKKyAgICBhc3NlcnQuaXNUcnVlKHRyLmUuaW1wb3J0ZXIuR3ppcEltcG9ydGVyLmNhbkltcG9ydChnemlwX2RhdGEpKTsKKyAgICBhc3NlcnQuZXF1YWwoaW1wb3J0ZXIuZXh0cmFjdFN1YnRyYWNlcygpWzBdLCBvcmlnaW5hbF9kYXRhKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5mbGF0ZUFycmF5QnVmZmVyJywgZnVuY3Rpb24oKSB7CisgICAgLy8gVGVzdCBpbmZsYXRpbmcgdGhlIGRhdGEgZnJvbSBhbiBBcnJheUJ1ZmZlci4KKyAgICB2YXIgZ3ppcF9kYXRhID0gYXRvYihnemlwX2RhdGFfYmFzZTY0KTsKKyAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGd6aXBfZGF0YS5sZW5ndGgpOworICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGd6aXBfZGF0YS5sZW5ndGg7IGkrKykKKyAgICAgIHZpZXdbaV0gPSBnemlwX2RhdGEuY2hhckNvZGVBdChpKTsKKyAgICB2YXIgaW1wb3J0ZXIgPSBuZXcgdHIuZS5pbXBvcnRlci5HemlwSW1wb3J0ZXIobnVsbCwgYnVmZmVyKTsKKyAgICBhc3NlcnQuaXNUcnVlKHRyLmUuaW1wb3J0ZXIuR3ppcEltcG9ydGVyLmNhbkltcG9ydChidWZmZXIpKTsKKyAgICBhc3NlcnQuZXF1YWwoaW1wb3J0ZXIuZXh0cmFjdFN1YnRyYWNlcygpWzBdLCBvcmlnaW5hbF9kYXRhKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGd6aXBfZGF0YSA9IGF0b2IoZ3ppcF9kYXRhX2Jhc2U2NCk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0ci5lLmltcG9ydGVyLkd6aXBJbXBvcnRlci5jYW5JbXBvcnQoZ3ppcF9kYXRhKSk7CisKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoZ3ppcF9kYXRhKTsKKyAgICB2YXIgdGhyZWFkcyA9IG1vZGVsLmdldEFsbFRocmVhZHMoKTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkcy5sZW5ndGgsIDEpOworCisgICAgdmFyIHNsaWNlID0gZmluZFNsaWNlTmFtZWQodGhyZWFkc1swXS5zbGljZUdyb3VwLCAnYScpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRYTUxIdHRwUmVxdWVzdCcsIGZ1bmN0aW9uKCkgeworICAgIGlmICh0ci5pc0hlYWRsZXNzKQorICAgICAgcmV0dXJuOworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB2YXIgdXJsID0gJy90ZXN0X2RhdGEvc2ltcGxlX3RyYWNlX2d6Lmd6JzsKKyAgICByZXEub3BlbignR0VUJywgdXJsLCBmYWxzZSk7CisgICAgcmVxLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQnKTsKKyAgICByZXEuc2VuZChudWxsKTsKKyAgICB2YXIgZ3ppcF9kYXRhID0gcmVxLnJlc3BvbnNlVGV4dDsKKyAgICBhc3NlcnQuaXNUcnVlKHRyLmUuaW1wb3J0ZXIuR3ppcEltcG9ydGVyLmNhbkltcG9ydChnemlwX2RhdGEpKTsKKworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbChnemlwX2RhdGEpOworICAgIHZhciB0aHJlYWRzID0gbW9kZWwuZ2V0QWxsVGhyZWFkcygpOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWRzLmxlbmd0aCwgMik7CisKKyAgICB2YXIgc2xpY2UgPSBmaW5kU2xpY2VOYW1lZCh0aHJlYWRzWzBdLnNsaWNlR3JvdXAsICdCJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnUEVSRicpOworCisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvanN6aXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2pzemlwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE2YmYzZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2pzemlwLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKy8vIFdvcmthcm91bmQgZm9yIEpTemlwIHJlcXVpcmluZyB3aW5kb3cuCitpZiAodHIuaXNIZWFkbGVzcykgeworICAvKioKKyAgICogSGFjay4KKyAgICovCisgIGdsb2JhbC53aW5kb3cgPSB7fTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qc3ppcC5taW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKy8vIFdvcmthcm91bmQgZm9yIEpTemlwIHJlcXVpcmluZyB3aW5kb3cuCitpZiAodHIuaXNIZWFkbGVzcykgeworICAvKioKKyAgICogSGFjay4KKyAgICovCisgIGdsb2JhbC5KU1ppcCA9IGdsb2JhbC53aW5kb3cuSlNaaXA7CisgIGdsb2JhbC53aW5kb3cgPSB1bmRlZmluZWQ7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYW5kcm9pZF9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYW5kcm9pZF9wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWY3YTA1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9hbmRyb2lkX3BhcnNlci5odG1sCkBAIC0wLDAgKzEsMjM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIHRyYWNlX21hcmtlciBldmVudHMgdGhhdCB3ZXJlIGluc2VydGVkIGluIHRoZSB0cmFjZSBieQorICogdXNlcmxhbmQuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLyoqCisgICAqIFBhcnNlcyBsaW51eCB0cmFjZSBtYXJrIGV2ZW50cyB0aGF0IHdlcmUgaW5zZXJ0ZWQgaW4gdGhlIHRyYWNlIGJ5IHVzZXJsYW5kLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEFuZHJvaWRQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigndHJhY2luZ19tYXJrX3dyaXRlOmFuZHJvaWQnLAorICAgICAgICBBbmRyb2lkUGFyc2VyLnByb3RvdHlwZS50cmFjZU1hcmtXcml0ZUFuZHJvaWRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignMDphbmRyb2lkJywKKyAgICAgICAgQW5kcm9pZFBhcnNlci5wcm90b3R5cGUudHJhY2VNYXJrV3JpdGVBbmRyb2lkRXZlbnQuYmluZCh0aGlzKSk7CisKKyAgICB0aGlzLm1vZGVsXyA9IGltcG9ydGVyLm1vZGVsXzsKKyAgICB0aGlzLnBwaWRzXyA9IHt9OworICB9CisKKyAgZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3NTdHJpbmcpIHsKKyAgICB2YXIgYXJncyA9IHt9OworICAgIGlmIChhcmdzU3RyaW5nKSB7CisgICAgICB2YXIgYXJnc0FycmF5ID0gYXJnc1N0cmluZy5zcGxpdCgnOycpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzQXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHBhcnRzID0gYXJnc0FycmF5W2ldLnNwbGl0KCc9Jyk7CisgICAgICAgIGlmIChwYXJ0c1swXSkKKyAgICAgICAgICBhcmdzW3BhcnRzLnNoaWZ0KCldID0gcGFydHMuam9pbignPScpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gYXJnczsKKyAgfQorCisgIEFuZHJvaWRQYXJzZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKKworICAgIG9wZW5Bc3luY1NsaWNlOiBmdW5jdGlvbih0aHJlYWQsIGNhdGVnb3J5LCBuYW1lLCBjb29raWUsIHRzLCBhcmdzKSB7CisgICAgICB2YXIgYXN5bmNTbGljZUNvbnN0cnVjdG9yID0KKyAgICAgICAgIHRyLm1vZGVsLkFzeW5jU2xpY2UuZ2V0Q29uc3RydWN0b3IoCisgICAgICAgICAgICBjYXRlZ29yeSwgbmFtZSk7CisgICAgICB2YXIgc2xpY2UgPSBuZXcgYXN5bmNTbGljZUNvbnN0cnVjdG9yKAorICAgICAgICAgIGNhdGVnb3J5LCBuYW1lLAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUpLCB0cywgYXJncyk7CisgICAgICB2YXIga2V5ID0gY2F0ZWdvcnkgKyAnOicgKyBuYW1lICsgJzonICsgY29va2llOworICAgICAgc2xpY2UuaWQgPSBjb29raWU7CisgICAgICBzbGljZS5zdGFydFRocmVhZCA9IHRocmVhZDsKKworICAgICAgaWYgKCF0aGlzLm9wZW5Bc3luY1NsaWNlcykgeworICAgICAgICB0aGlzLm9wZW5Bc3luY1NsaWNlcyA9IHsgfTsKKyAgICAgIH0KKyAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2VzW2tleV0gPSBzbGljZTsKKyAgICB9LAorCisgICAgY2xvc2VBc3luY1NsaWNlOiBmdW5jdGlvbih0aHJlYWQsIGNhdGVnb3J5LCBuYW1lLCBjb29raWUsIHRzLCBhcmdzKSB7CisgICAgICBpZiAoIXRoaXMub3BlbkFzeW5jU2xpY2VzKSB7CisgICAgICAgIC8vIE5vIGFzeW5jIHNsaWNlcyBoYXZlIGJlZW4gc3RhcnRlZC4KKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIga2V5ID0gY2F0ZWdvcnkgKyAnOicgKyBuYW1lICsgJzonICsgY29va2llOworICAgICAgdmFyIHNsaWNlID0gdGhpcy5vcGVuQXN5bmNTbGljZXNba2V5XTsKKyAgICAgIGlmICghc2xpY2UpIHsKKyAgICAgICAgLy8gTm8gYXN5bmMgc2xpY2VzIHcvIHRoaXMga2V5IGhhdmUgYmVlbiBzdGFydGVkLgorICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGZvciAodmFyIGFyZyBpbiBhcmdzKSB7CisgICAgICAgIGlmIChzbGljZS5hcmdzW2FyZ10gIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdCb3RoIHRoZSBTIGFuZCBGIGV2ZW50cyBvZiAnICsgc2xpY2UudGl0bGUgKworICAgICAgICAgICAgICAgICcgcHJvdmlkZWQgdmFsdWVzIGZvciBhcmd1bWVudCAnICsgYXJnICsgJy4nICsKKyAgICAgICAgICAgICAgICAnIFRoZSB2YWx1ZSBvZiB0aGUgRiBldmVudCB3aWxsIGJlIHVzZWQuJworICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIHNsaWNlLmFyZ3NbYXJnXSA9IGFyZ3NbYXJnXTsKKyAgICAgIH0KKworICAgICAgc2xpY2UuZW5kVGhyZWFkID0gdGhyZWFkOworICAgICAgc2xpY2UuZHVyYXRpb24gPSB0cyAtIHNsaWNlLnN0YXJ0OworICAgICAgc2xpY2Uuc3RhcnRUaHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOworICAgICAgc2xpY2Uuc3ViU2xpY2VzID0gW25ldyB0ci5tb2RlbC5Bc3luY1NsaWNlKHNsaWNlLmNhdGVnb3J5LAorICAgICAgICAgIHNsaWNlLnRpdGxlLCBzbGljZS5jb2xvcklkLCBzbGljZS5zdGFydCwgc2xpY2UuYXJncywgc2xpY2UuZHVyYXRpb24pXTsKKyAgICAgIGRlbGV0ZSB0aGlzLm9wZW5Bc3luY1NsaWNlc1trZXldOworICAgIH0sCisKKyAgICB0cmFjZU1hcmtXcml0ZUFuZHJvaWRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnREYXRhID0gZXZlbnRCYXNlLmRldGFpbHMuc3BsaXQoJ3wnKTsKKyAgICAgIHN3aXRjaCAoZXZlbnREYXRhWzBdKSB7CisgICAgICAgIGNhc2UgJ0InOgorICAgICAgICAgIHZhciBwcGlkID0gcGFyc2VJbnQoZXZlbnREYXRhWzFdKTsKKyAgICAgICAgICB2YXIgdGl0bGUgPSBldmVudERhdGFbMl07CisgICAgICAgICAgdmFyIGFyZ3MgPSBwYXJzZUFyZ3MoZXZlbnREYXRhWzNdKTsKKyAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBldmVudERhdGFbNF07CisgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICBjYXRlZ29yeSA9ICdhbmRyb2lkJzsKKworICAgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocHBpZCkKKyAgICAgICAgICAgICAgLmdldE9yQ3JlYXRlVGhyZWFkKHBpZCk7CisgICAgICAgICAgdGhyZWFkLm5hbWUgPSBldmVudEJhc2UudGhyZWFkTmFtZTsKKyAgICAgICAgICBpZiAoIXRocmVhZC5zbGljZUdyb3VwLmlzVGltZXN0YW1wVmFsaWRGb3JCZWdpbk9yRW5kKHRzKSkgeworICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdUaW1lc3RhbXBzIGFyZSBtb3ZpbmcgYmFja3dhcmQuJworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorCisgICAgICAgICAgdGhpcy5wcGlkc19bcGlkXSA9IHBwaWQ7CisgICAgICAgICAgdGhyZWFkLnNsaWNlR3JvdXAuYmVnaW5TbGljZShjYXRlZ29yeSwgdGl0bGUsIHRzLCBhcmdzKTsKKworICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgJ0UnOgorICAgICAgICAgIHZhciBwcGlkID0gdGhpcy5wcGlkc19bcGlkXTsKKyAgICAgICAgICBpZiAocHBpZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAvLyBTaWxlbnRseSBpZ25vcmUgdW5tYXRjaGVkIEUgZXZlbnRzLgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorCisgICAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwcGlkKQorICAgICAgICAgICAgICAuZ2V0T3JDcmVhdGVUaHJlYWQocGlkKTsKKyAgICAgICAgICBpZiAoIXRocmVhZC5zbGljZUdyb3VwLm9wZW5TbGljZUNvdW50KSB7CisgICAgICAgICAgICAvLyBTaWxlbnRseSBpZ25vcmUgdW5tYXRjaGVkIEUgZXZlbnRzLgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorCisgICAgICAgICAgdmFyIHNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuZW5kU2xpY2UodHMpOworCisgICAgICAgICAgdmFyIGFyZ3MgPSBwYXJzZUFyZ3MoZXZlbnREYXRhWzNdKTsKKyAgICAgICAgICBmb3IgKHZhciBhcmcgaW4gYXJncykgeworICAgICAgICAgICAgaWYgKHNsaWNlLmFyZ3NbYXJnXSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0JvdGggdGhlIEIgYW5kIEUgZXZlbnRzIG9mICcgKyBzbGljZS50aXRsZSArCisgICAgICAgICAgICAgICAgICAgICcgcHJvdmlkZWQgdmFsdWVzIGZvciBhcmd1bWVudCAnICsgYXJnICsgJy4nICsKKyAgICAgICAgICAgICAgICAgICAgJyBUaGUgdmFsdWUgb2YgdGhlIEUgZXZlbnQgd2lsbCBiZSB1c2VkLicKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzbGljZS5hcmdzW2FyZ10gPSBhcmdzW2FyZ107CisgICAgICAgICAgfQorCisgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgdmFyIHBwaWQgPSBwYXJzZUludChldmVudERhdGFbMV0pOworICAgICAgICAgIHZhciBuYW1lID0gZXZlbnREYXRhWzJdOworICAgICAgICAgIHZhciB2YWx1ZSA9IHBhcnNlSW50KGV2ZW50RGF0YVszXSk7CisgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gZXZlbnREYXRhWzRdOworICAgICAgICAgIGlmIChjYXRlZ29yeSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgY2F0ZWdvcnkgPSAnYW5kcm9pZCc7CisKKyAgICAgICAgICB2YXIgY3RyID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHBwaWQpCisgICAgICAgICAgICAgIC5nZXRPckNyZWF0ZUNvdW50ZXIoY2F0ZWdvcnksIG5hbWUpOworICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGNvdW50ZXIncyBzZXJpZXMgZmllbGRzIGlmIG5lZWRlZC4KKyAgICAgICAgICBpZiAoY3RyLm51bVNlcmllcyA9PT0gMCkgeworICAgICAgICAgICAgY3RyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcyh2YWx1ZSwKKyAgICAgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgY3RyLm5hbWUgKyAnLicgKyAndmFsdWUnKSkpOworICAgICAgICAgIH0KKworICAgICAgICAgIGN0ci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCB2YWx1ZSk7CisgICAgICAgICAgfSk7CisKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlICdTJzoKKyAgICAgICAgICB2YXIgcHBpZCA9IHBhcnNlSW50KGV2ZW50RGF0YVsxXSk7CisgICAgICAgICAgdmFyIG5hbWUgPSBldmVudERhdGFbMl07CisgICAgICAgICAgdmFyIGNvb2tpZSA9IHBhcnNlSW50KGV2ZW50RGF0YVszXSk7CisgICAgICAgICAgdmFyIGFyZ3MgPSBwYXJzZUFyZ3MoZXZlbnREYXRhWzRdKTsKKyAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBldmVudERhdGFbNV07CisgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICBjYXRlZ29yeSA9ICdhbmRyb2lkJzsKKworCisgICAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwcGlkKQorICAgICAgICAgICAgLmdldE9yQ3JlYXRlVGhyZWFkKHBpZCk7CisgICAgICAgICAgdGhyZWFkLm5hbWUgPSBldmVudEJhc2UudGhyZWFkTmFtZTsKKworICAgICAgICAgIHRoaXMucHBpZHNfW3BpZF0gPSBwcGlkOworICAgICAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2UodGhyZWFkLCBjYXRlZ29yeSwgbmFtZSwgY29va2llLCB0cywgYXJncyk7CisKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlICdGJzoKKyAgICAgICAgICAvLyBOb3RlOiBBbiBhc3luYyBzbGljZSBtYXkgZW5kIG9uIGEgZGlmZmVyZW50IHRocmVhZCBmcm9tIHRoZSBvbmUKKyAgICAgICAgICAvLyB0aGF0IHN0YXJ0ZWQgaXQgc28gdGhpcyB0aHJlYWQgbWF5IG5vdCBoYXZlIGJlZW4gc2VlbiB5ZXQuCisgICAgICAgICAgdmFyIHBwaWQgPSBwYXJzZUludChldmVudERhdGFbMV0pOworCisgICAgICAgICAgdmFyIG5hbWUgPSBldmVudERhdGFbMl07CisgICAgICAgICAgdmFyIGNvb2tpZSA9IHBhcnNlSW50KGV2ZW50RGF0YVszXSk7CisgICAgICAgICAgdmFyIGFyZ3MgPSBwYXJzZUFyZ3MoZXZlbnREYXRhWzRdKTsKKyAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBldmVudERhdGFbNV07CisgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICBjYXRlZ29yeSA9ICdhbmRyb2lkJzsKKworICAgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocHBpZCkKKyAgICAgICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZChwaWQpOworICAgICAgICAgIHRocmVhZC5uYW1lID0gZXZlbnRCYXNlLnRocmVhZE5hbWU7CisKKyAgICAgICAgICB0aGlzLnBwaWRzX1twaWRdID0gcHBpZDsKKyAgICAgICAgICB0aGlzLmNsb3NlQXN5bmNTbGljZSh0aHJlYWQsIGNhdGVnb3J5LCBuYW1lLCBjb29raWUsIHRzLCBhcmdzKTsKKworICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKEFuZHJvaWRQYXJzZXIpOworCisgIHJldHVybiB7CisgICAgQW5kcm9pZFBhcnNlcjogQW5kcm9pZFBhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYW5kcm9pZF9wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9hbmRyb2lkX3BhcnNlcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYW5kcm9pZF9wYXJzZXJfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2FuZHJvaWRfcGFyc2VyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9iaW5kZXJfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2JpbmRlcl9wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjEyZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9iaW5kZXJfcGFyc2VyLmh0bWwKQEAgLTAsMCArMSw2OTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFBhcnNlcyBCaW5kZXIgZXZlbnRzCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLy8gTWF0Y2hlcyBiaW5kZXIgdHJhbnNhY3Rpb25zOgorICAvLyB0cmFuc2FjdGlvbj0lZCBkZXN0X25vZGU9JWQgZGVzdF9wcm9jPSVkIGRlc3RfdGhyZWFkPSVkIHJlcGx5PSVkIGZsYWdzPTB4JXgKKyAgLy8gY29kZT0weCV4CisgIHZhciBiaW5kZXJUcmFuc1JFID0gbmV3IFJlZ0V4cCgndHJhbnNhY3Rpb249KFxcZCspIGRlc3Rfbm9kZT0oXFxkKykgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVzdF9wcm9jPShcXGQrKSBkZXN0X3RocmVhZD0oXFxkKykgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVwbHk9KFxcZCspIGZsYWdzPSgweFswLTlhLWZBLUZdKykgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29kZT0oMHhbMC05YS1mQS1GXSspJyk7CisKKyAgdmFyIGJpbmRlclRyYW5zUmVjZWl2ZWRSRSA9IC90cmFuc2FjdGlvbj0oXGQrKS87CisKKyAgZnVuY3Rpb24gaXNCaW5kZXJUaHJlYWQobmFtZSkgeworICAgIHJldHVybiAobmFtZS5pbmRleE9mKCdCaW5kZXInKSA+IC0xKTsKKyAgfQorCisgIC8vIFRha2VuIGZyb20ga2VybmVsIHNvdXJjZTogaW5jbHVkZS91YXBpL2xpbnV4L2FuZHJvaWQvYmluZGVyLmguCisgIHZhciBURl9PTkVfV0FZID0gMHgwMTsKKyAgdmFyIFRGX1JPT1RfT0JKRUNUID0gMHgwNDsKKyAgdmFyIFRGX1NUQVRVU19DT0RFID0gMHgwODsKKyAgdmFyIFRGX0FDQ0VQVF9GRFMgPSAweDEwOworICB2YXIgTk9fRkxBR1MgPSAwOworCisgIGZ1bmN0aW9uIGJpbmRlckZsYWdzVG9IdW1hbihudW0pIHsKKyAgICB2YXIgZmxhZyA9IHBhcnNlSW50KG51bSwgMTYpOworICAgIHZhciBzdHIgPSAnJzsKKworICAgIGlmIChmbGFnICYgVEZfT05FX1dBWSkKKyAgICAgIHN0ciArPSAndGhpcyBpcyBhIG9uZS13YXkgY2FsbDogYXN5bmMsIG5vIHJldHVybjsgJzsKKyAgICBpZiAoZmxhZyAmIFRGX1JPT1RfT0JKRUNUKQorICAgICAgc3RyICs9ICdjb250ZW50cyBhcmUgdGhlIGNvbXBvbmVudHMgcm9vdCBvYmplY3Q7ICc7CisgICAgaWYgKGZsYWcgJiBURl9TVEFUVVNfQ09ERSkKKyAgICAgIHN0ciArPSAnY29udGVudHMgYXJlIGEgMzItYml0IHN0YXR1cyBjb2RlOyAnOworICAgIGlmIChmbGFnICYgVEZfQUNDRVBUX0ZEUykKKyAgICAgIHN0ciArPSAnYWxsb3cgcmVwbGllcyB3aXRoIGZpbGUgZGVzY3JpcHRvcnM7ICc7CisgICAgaWYgKGZsYWcgPT09IE5PX0ZMQUdTKQorICAgICAgc3RyICs9ICdObyBGbGFncyBTZXQnOworCisgICAgcmV0dXJuIHN0cjsKKyAgfQorCisgIGZ1bmN0aW9uIGlzUmVwbHlUb09yaWdpbihjYWxsaW5nLCBjYWxsZWQpIHsKKyAgICByZXR1cm4gKGNhbGxlZC5kZXN0X3Byb2MgPT09IGNhbGxpbmcuY2FsbGluZ19waWQgfHwKKyAgICAgICAgICAgIGNhbGxlZC5kZXN0X3RocmVhZCA9PT0gY2FsbGluZy5jYWxsaW5nX3BpZCk7CisgIH0KKworICBmdW5jdGlvbiBiaW5kZXJDb2RlVG9IdW1hbihjb2RlKSB7CisgICAgcmV0dXJuICdKYXZhIExheWVyIERlcGVuZGVudCc7CisgIH0KKworICBmdW5jdGlvbiBkb0ludGVybmFsU2xpY2UodHJhbnMsIHNsaWNlLCB0cykgeworICAgIGlmIChzbGljZS5zdWJTbGljZXMubGVuZ3RoICE9PSAwKSB7CisgICAgICAvKiBXZSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBrZWVwIG1vdmluZyB0aGUgc21hbGwgc2xpY2UgdG8gdGhlIGVuZCBvZgorICAgICAgICAgdGhlIGJpZyBzbGljZSBvciBlbHNlIHRoZSBhcnJvd3Mgd2lsbCBub3QgcG9pbnQgdG8gdGhlIGVuZC4KKyAgICAgICovCisgICAgICBzbGljZS5zdWJTbGljZXNbMF0uc3RhcnQgPSB0czsKKyAgICAgIHJldHVybiBzbGljZS5zdWJTbGljZXNbMF07CisgICAgfQorICAgIHZhciBrdGhyZWFkID0gdHJhbnMuY2FsbGluZ19rdGhyZWFkLnRocmVhZDsKKyAgICB2YXIgaW50ZXJuYWxfc2xpY2UgPSBrdGhyZWFkLnNsaWNlR3JvdXAucHVzaENvbXBsZXRlU2xpY2UoJ2JpbmRlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWNlLnRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cywgLjAwMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2UuYXJncyk7CisKKyAgICBpbnRlcm5hbF9zbGljZS50aXRsZSA9IHNsaWNlLnRpdGxlOworICAgIGludGVybmFsX3NsaWNlLmlkID0gc2xpY2UuaWQ7CisgICAgaW50ZXJuYWxfc2xpY2UuY29sb3JJZCA9IHNsaWNlLmNvbG9ySWQ7CisgICAgc2xpY2Uuc3ViU2xpY2VzLnB1c2goaW50ZXJuYWxfc2xpY2UpOworICAgIHJldHVybiBpbnRlcm5hbF9zbGljZTsKKyAgfQorCisgIGZ1bmN0aW9uIGdlbmVyYXRlQmluZGVyQXJnc0ZvclNsaWNlKHRyYW5zLCBjX3RocmVhZE5hbWUpIHsKKyAgICByZXR1cm4geworICAgICAgJ1RyYW5zYWN0aW9uIElkJzogdHJhbnMudHJhbnNhY3Rpb25fa2V5LAorICAgICAgJ0Rlc3RpbmF0aW9uIE5vZGUnOiB0cmFucy5kZXN0X25vZGUsCisgICAgICAnRGVzdGluYXRpb24gUHJvY2Vzcyc6IHRyYW5zLmRlc3RfcHJvYywKKyAgICAgICdEZXN0aW5hdGlvbiBUaHJlYWQnOiB0cmFucy5kZXN0X3RocmVhZCwKKyAgICAgICdEZXN0aW5hdGlvbiBOYW1lJzogY190aHJlYWROYW1lLAorICAgICAgJ1JlcGx5IHRyYW5zYWN0aW9uPyc6IHRyYW5zLmlzX3JlcGx5X3RyYW5zYWN0aW9uLAorICAgICAgJ0ZsYWdzJzogdHJhbnMuZmxhZ3MgKyAnICcgKworICAgICAgICAgICBiaW5kZXJGbGFnc1RvSHVtYW4odHJhbnMuZmxhZ3MpLAorCisgICAgICAnQ29kZSc6IHRyYW5zLmNvZGUgKyAnICcgKworICAgICAgICAgICBiaW5kZXJDb2RlVG9IdW1hbih0cmFucy5jb2RlKSwKKworICAgICAgJ0NhbGxpbmcgUElEJzogdHJhbnMuY2FsbGluZ19waWQsCisgICAgICAnQ2FsbGluZyB0Z2lkJzogdHJhbnMuY2FsbGluZ19rdGhyZWFkLnRocmVhZC5wYXJlbnQucGlkCisgICAgfTsKKyAgfQorCisgIC8qKiBAY29uc3RydWN0b3IgKi8KKyAgZnVuY3Rpb24gQmluZGVyVHJhbnNhY3Rpb24oZXZlbnRzLCBjYWxsaW5nX3BpZCwgY2FsbGluZ190cywgY2FsbGluZ19rdGhyZWFkKSB7CisgICAgdGhpcy50cmFuc2FjdGlvbl9rZXkgPSBwYXJzZUludChldmVudHNbMV0pOworICAgIHRoaXMuZGVzdF9ub2RlID0gcGFyc2VJbnQoZXZlbnRzWzJdKTsKKyAgICB0aGlzLmRlc3RfcHJvYyA9IHBhcnNlSW50KGV2ZW50c1szXSk7CisgICAgdGhpcy5kZXN0X3RocmVhZCA9IHBhcnNlSW50KGV2ZW50c1s0XSk7CisgICAgdGhpcy5pc19yZXBseV90cmFuc2FjdGlvbiA9IHBhcnNlSW50KGV2ZW50c1s1XSkgPT09IDEgPyB0cnVlIDogZmFsc2U7CisgICAgdGhpcy5leHBlY3RfcmVwbHkgPSAoKHRoaXMuaXNfcmVwbHlfdHJhbnNhY3Rpb24gPT09IGZhbHNlKSAmJgorICAgICAgICAocGFyc2VJbnQoZXZlbnRzWzZdLCAxNikgJiBURl9PTkVfV0FZKSA9PT0gMCk7CisKKyAgICB0aGlzLmZsYWdzID0gZXZlbnRzWzZdOworICAgIHRoaXMuY29kZSA9IGV2ZW50c1s3XTsKKyAgICB0aGlzLmNhbGxpbmdfcGlkID0gY2FsbGluZ19waWQ7CisgICAgdGhpcy5jYWxsaW5nX3RzID0gY2FsbGluZ190czsKKyAgICB0aGlzLmNhbGxpbmdfa3RocmVhZCA9IGNhbGxpbmdfa3RocmVhZDsKKyAgfQorCisKKyAgLyoqIEBjb25zdHJ1Y3RvciAqLworICBmdW5jdGlvbiBCaW5kZXJQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2JpbmRlcl9sb2NrZWQnLAorICAgICAgICBCaW5kZXJQYXJzZXIucHJvdG90eXBlLgorICAgICAgICBiaW5kZXJMb2NrZWQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2JpbmRlcl91bmxvY2snLAorICAgICAgICBCaW5kZXJQYXJzZXIucHJvdG90eXBlLgorICAgICAgICBiaW5kZXJVbmxvY2suYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2JpbmRlcl9sb2NrJywKKyAgICAgICAgQmluZGVyUGFyc2VyLnByb3RvdHlwZS5iaW5kZXJMb2NrLmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdiaW5kZXJfdHJhbnNhY3Rpb24nLAorICAgICAgICBCaW5kZXJQYXJzZXIucHJvdG90eXBlLgorICAgICAgICBiaW5kZXJUcmFuc2FjdGlvbi5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkJywKKyAgICAgICAgQmluZGVyUGFyc2VyLnByb3RvdHlwZS4KKyAgICAgICAgYmluZGVyVHJhbnNhY3Rpb25SZWNlaXZlZC5iaW5kKHRoaXMpKTsKKworICAgIHRoaXMubW9kZWxfID0gaW1wb3J0ZXIubW9kZWw7CisgICAgdGhpcy5rdGhyZWFkbG9va3VwID0ge307CisgICAgdGhpcy5pbXBvcnRlcl8gPSBpbXBvcnRlcjsKKyAgICB0aGlzLnRyYW5zV2FpdGluZ1JlY3YgPSB7fTsKKyAgICB0aGlzLnN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uID0ge307CisgICAgdGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRCA9IHt9OworICAgIHRoaXMucmVjZWl2ZWRUcmFuc1dhaXRpbmdDb252ZXJzaW9uID0ge307CisgIH0KKworICBCaW5kZXJQYXJzZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKKworICAgIGJpbmRlckxvY2s6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciB0Z2lkID0gcGFyc2VJbnQoZXZlbnRCYXNlLnRnaWQpOworICAgICAgdGhpcy5kb05hbWVNYXBwaW5ncyhwaWQsIHRnaWQsIGV2ZW50TmFtZS50aHJlYWROYW1lKTsKKworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyXy4KKyAgICAgICAgICBnZXRPckNyZWF0ZUJpbmRlcktlcm5lbFRocmVhZChldmVudEJhc2UudGhyZWFkTmFtZSwgdGdpZCwgcGlkKTsKKworICAgICAga3RocmVhZC5iaW5kZXJBdHRlbXB0TG9ja1RTID0gdHM7CisgICAgICBrdGhyZWFkLmJpbmRlck9wZW5Uc0EgPSB0czsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBiaW5kZXJMb2NrZWQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBiaW5kZXJfdGhyZWFkID0gaXNCaW5kZXJUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUpOworICAgICAgdmFyIHRnaWQsIG5hbWU7CisgICAgICB2YXIgYXNfc2xpY2U7CisgICAgICB2YXIgbmVlZF9wdXNoID0gZmFsc2U7CisgICAgICB2YXIga3RocmVhZCwgcnRocmVhZDsKKworICAgICAgdGdpZCA9IHBhcnNlSW50KGV2ZW50QmFzZS50Z2lkKTsKKyAgICAgIG5hbWUgPSBldmVudEJhc2UudGhyZWFkTmFtZTsKKworICAgICAga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXJfLgorICAgICAgICAgIGdldE9yQ3JlYXRlQmluZGVyS2VybmVsVGhyZWFkKGV2ZW50QmFzZS50aHJlYWROYW1lLCB0Z2lkLCBwaWQpOworCisgICAgICB0aGlzLmRvTmFtZU1hcHBpbmdzKHBpZCwgdGdpZCwgbmFtZSk7CisKKyAgICAgIHJ0aHJlYWQgPSBrdGhyZWFkLnRocmVhZDsKKyAgICAgIGt0aHJlYWQuYmluZGVyTG9ja0FxdWlyZWRUUyA9IHRzOworCisgICAgICBpZiAoa3RocmVhZC5iaW5kZXJBdHRlbXB0TG9ja1RTID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGFyZ3MgPSB0aGlzLmdlbmVyYXRlQXJnc0ZvclNsaWNlKHRnaWQsIHBpZCwgbmFtZSwga3RocmVhZCk7CisgICAgICBydGhyZWFkLnNsaWNlR3JvdXAucHVzaENvbXBsZXRlU2xpY2UoJ2JpbmRlcicsICdiaW5kZXIgbG9jayB3YWl0aW5nJywKKyAgICAgICAgICBrdGhyZWFkLmJpbmRlckF0dGVtcHRMb2NrVFMsCisgICAgICAgICAgdHMgLSBrdGhyZWFkLmJpbmRlckF0dGVtcHRMb2NrVFMsCisgICAgICAgICAgMCwgMCwgYXJncyk7CisKKyAgICAgIGt0aHJlYWQuYmluZGVyQXR0ZW1wdExvY2tUUyA9IHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBiaW5kZXJVbmxvY2s6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciB0Z2lkID0gcGFyc2VJbnQoZXZlbnRCYXNlLnRnaWQpOworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyXy4KKyAgICAgICAgICBnZXRPckNyZWF0ZUJpbmRlcktlcm5lbFRocmVhZCgKKyAgICAgICAgICBldmVudEJhc2UudGhyZWFkTmFtZSwgdGdpZCwgcGlkKTsKKworICAgICAgaWYgKGt0aHJlYWQuYmluZGVyTG9ja0FxdWlyZWRUUyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIGFyZ3MgPSB0aGlzLmdlbmVyYXRlQXJnc0ZvclNsaWNlKHRnaWQsIHBpZCwgZXZlbnRCYXNlLnRocmVhZE5hbWUsCisgICAgICAgICAga3RocmVhZCk7CisgICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKAorICAgICAgICAgICdiaW5kZXInLAorICAgICAgICAgICdiaW5kZXIgbG9jayBoZWxkJywKKyAgICAgICAgICAga3RocmVhZC5iaW5kZXJMb2NrQXF1aXJlZFRTLAorICAgICAgICAgICB0cyAtIGt0aHJlYWQuYmluZGVyTG9ja0FxdWlyZWRUUywKKyAgICAgICAgICAgMCwgMCwgYXJncyk7CisKKyAgICAgIGt0aHJlYWQuYmluZGVyTG9ja0FxdWlyZWRUUyA9IHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICAvKiogVGhlcmUgYXJlIGEgZmV3IHRyYW5zYWN0aW9uIHN0YXR1cyBjaGFuZ2VzIHRoYXQgc2lnbmlmeQorICAgICAqICBwcm9ncmVzcyB0aHJvdWdoIGEgYmluZGVyIHRyYW5zYWN0aW9uOgorICAgICAqCisgICAgICogQ2FzZSBPbmU6IFN5bmMgdHJhbnNhY3Rpb24uCisgICAgICogIFRocmVhZCBBIGNhbGxzIGEgYmxvY2tpbmcgZnVuY3Rpb24gb24gVGhyZWFkIEIuIFdlIHJlY2VpdmUgYQorICAgICAqICBiaW5kZXJfdHJhbnNhY3Rpb24gbXNnIEZyb20gdGhyZWFkIEEgc3RhdGluZyB0aGF0IGl0IGlzIGdvaW5nIHRvIENhbGwKKyAgICAgKiAgdGhyZWFkIEIuIFdlIGNyZWF0ZSBhIHNsaWNlIGFuZCBhIGJpbmRlciBvYmplY3QgZm9yIHRoaXMgdHJhbnNhY3Rpb24gYW5kCisgICAgICogIGFkZCBpdCB0byBhZGRUcmFuc2FjdGlvbldhaXRpbmdGb3JSZWN2KHRyYW5zYWN0aW9uIGtleSwgYmluZGVyIG9iamVjdCkKKyAgICAgKiAgVGhpcyBub3RpZmllcyB0aHJlYWQgQiBhbmQgcGFzc2VzIHRoZSBzbGljZSwgYmluZGVyIG9iamVjdCBhbmQgdGltZQorICAgICAqICBzdGFtcC4KKyAgICAgKgorICAgICAqIENhc2UgVHdvOiBBc3luYyB0cmFuc2FjdGlvbi4KKyAgICAgKiAgVGhyZWFkIEEgY2FsbHMgYW4gYXN5bmMgZnVuY3Rpb24gb24gVGhyZWFkIEIuIExpa2UgYWJvdmUgd2UgcmVjZWl2ZSBhCisgICAgICogIGJpbmRlcl90cmFuc2FjdGlvbiBtZXNzYWdlLCBidXQgdGhlIGZsYWdzIGRpZmZlciBmcm9tIGFib3ZlLiBUaGUKKyAgICAgKiAgVEZfT05FV0FZIGZsYWdzIGFyZSBzZXQgc28gd2Uga25vdyB0aGF0IHdoZW4gVGhyZWFkIEIgZ2V0cyB0aGUKKyAgICAgKiAgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkIHdpdGggdGhlIHNhbWUgdHJhbnNhY2l0b24ga2V5IHRoZSB0b3RhbAorICAgICAqICB0cmFuc2FjdGlvbiBpcyBjb21wbGV0ZS4KKyAgICAgKgorICAgICAqIENhc2UgVGhyZWU6ICdQcmlvcl9yZWNlaXZlJworICAgICAqICBQcmlvcl9yZWNlaXZlIG9jY3VycyB3aGVuIHRoZSB0aHJlYWQgYmVpbmcgY2FsbGVkICh0aGluayBBIGNhbGxzIEIpLAorICAgICAqICByZWNlaXZlcyBhIGJpbmRlcl90cmFuc2FjdGlvbl9yZWNlaXZlZCBtZXNzYWdlLCBidXQgY2Fubm90IGNvcnJlbGF0ZSBpdAorICAgICAqICB0byBhbnkgY3VycmVudCBvdXRzdGFuZGluZyByZWN1cnNpdmUgdHJhbnNhY3Rpb25zLiBUaGF0IG1lYW5zIHRoZQorICAgICAqICBtZXNzYWdlIGl0IGp1c3QgcmVjZWl2ZWQgaXMgdGhlIHN0YXJ0IG9mIHNvbWUgY29tbXVuaWNhdGlvbiwgbm90IHNvbWUKKyAgICAgKiAgb25nb2luZyBjb21tdW5pY2F0aW9uLgorICAgICAqICBPbmNlIHRoZSBleGVjdXRpb24gZmxvdyBoYXMgYmVlbiBwYXNzZWQgdG8gdGhyZWFkIEIsIGZyb20gQToKKyAgICAgKiAgVGhyZWFkIEIgZW50ZXJzIGJpbmRlcl90cmFuc2FjdGlvbl9yZWNlaXZlZCgpIHdlIHNlZSB0aGF0IFRocmVhZCBBCisgICAgICogIGhhZCBub3RpZmllZCB1cyB0aGF0IGl0IHNlbnQgdXMgYSBtZXNzYWdlIGJ5IGNhbGxpbmcKKyAgICAgKiAgZ2V0VHJhbnNhY3Rpb25XYWl0aW5nRm9yUmVjdih0cmFuc2FjdGlvbiBrZXkpOworICAgICAqICBXaGF0IGNhbiBoYXBwZW4gbm93IGlzIGVpdGhlciB0aGlzIHdhcyBhIHNpbXBsZSBDYWxsIHJlcGx5LAorICAgICAqICBvciB0aGlzIGlzIGEgY2FsbCAtPiByZWN1cnNpb24gLT4gcmVwbHkuIFdlIGNhbGwgbW9kZWxQcmlvclJlY2VpdmUoKQorICAgICAqICB3aGljaCBzZXRzIHVwIHRoZSBzbGljZXMgYWNjb3JkaW5nbHkuCisgICAgICogIElmIHRoaXMgaXMgYSBjYWxsIC0+IHJlY3Vyc2lvbiAtPiByZXBseQorICAgICAqICB3ZSB3aWxsIGdvIHRvIGNhc2UgNCBieSBjYWxsaW5nIGFkZFJlY3Vyc2l2ZVN5bmNUcmFuc05lZWRpbmdDb21wbGV0aW9uKCkKKyAgICAgKiAgVGhlIGZ1bmN0aW9uIHRha2VzIEIncyBQSUQsIHRoZSBiaW5kZXIgb2JqZWN0IGZyb20gQSBhbmQgdGhlIGN1cnJlbnQKKyAgICAgKiAgYmluZGVyIG9iamVjdCBmcm9tIEIuIFRoaXMgZnVuY3Rpb24gYWRkcyBvdXRzdGFuZGluZyBub24tY29tcGxldGUKKyAgICAgKiAgdHJhbnNhY3Rpb25zIHRvIGEgc3RhY2sgb24gdGhyZWFkIEIuCisgICAgICoKKyAgICAgKiBDYXNlIEZvdXI6ICdyZWN1cnNpdmVfdHJhbnMnCisgICAgICogIFRoaXMgY2FzZSBmb2xsb3dzIExpa2UgYWJvdmU6CisgICAgICogIEEgc2VudCBiaW5kZXJfdHJhbnNhY3Rpb24KKyAgICAgKiAgQiBnb3QgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkCisgICAgICogIEIgaW5zdGVhZCBvZiByZXBseWluZyB0byBBIGNhbiBDYWxsIEMgb3IgY2FsbCAnaW50bycgQSwgaWUgcmVjdXJzaW9uCisgICAgICogIENhc2UgZm91ciBhbHNvIGRlYWxzIHdpdGggc2V0dGluZyB1cCBhIGxhcmdlIHNsaWNlIHRvICdjb250YWluJworICAgICAqICBhbGwgdGhlIHJlY3Vyc2l2ZSB0cmFuc2FjdGlvbnMgdGhhdCBoYXBwZW4gdW50aWwgQiBmaW5hbGx5IHJlcGxpZXMgdG8KKyAgICAgKiAgQS4KKyAgICAgKgorICAgICAqCisgICAgICogQW4gZXhhbXBsZTogQS0+IEItPiBDLT4gQi0+IEEKKyAgICAgKgorICAgICAqICgxKSBBIHN0YXJ0cyBhIHN5bmNocm9ub3VzIHRyYW5zYWN0aW9uIHRvIEIuCisgICAgICogKDIpIEEgZW50ZXJzIGJpbmRlclRyYW5zYWN0aW9uKCkgZXZlbnQgaGFuZGxlciwgaGl0cyB0aGUgZWxzZSBzdGF0ZW1lbnQKKyAgICAgKiAoMykgQSBjYWxscyBhZGRUcmFuc2FjdGlvbldhaXRpbmdGb3JSZWN2KHRyYW5zIGtleSwgb2JqZWN0KSB0byBub3RpZnkKKyAgICAgKiAgICAgVGhyZWFkIEIuCisgICAgICogKDQpIEIgRW50ZXJzIGJpbmRlclRyYW5zYWN0aW9uUmVjZWl2ZWQoKS4KKyAgICAgKiAoNSkgQiBoaXRzIHRoZSBzZWNvbmQgaWYgYWZ0ZXIgY2FsbGluZworICAgICAqICAgICBnZXRUcmFuc2FjdGlvbldhaXRpbmdGb3JSZWN2KHRyYW5zIGtleSkKKyAgICAgKiAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHVzIHRoZSBvYmplY3Qgc2V0IHVwIGluIHN0ZXAgKDMpLgorICAgICAqICg2KSBUaGlzIGlzIG5vdCBhbiBhc3luYyB0cmFuc2FjdGlvbiwgQiBjYWxscworICAgICAqICAgICAgc2V0Q3VycmVudFJlY2VpdmVPblBJRChCJ3MgUElELCBbdHMgZm9yICg0KSwgb2JqZWN0IGZyb20gKDMpXSkuCisgICAgICoKKyAgICAgKiAoNykgQiBlbnRlcnMgYmluZGVyVHJhbnNhY3Rpb24oKSBldmVudCBoYW5kbGVyLCBmaXJzdCBpZiB0cmlnZ2VycyBhZnRlcgorICAgICAqICAgICBjYWxsaW5nIGdldFByaW9yUmVjZWl2ZU9uUElEKEIncyBQSUQpIHRoZSB0dXBsZSBmcm9tICg2KSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqICg4KSBFeGVjdXRpb24gZW50ZXJzIG1vZGVsUHJpb3JSZWNlaXZlKCkuCisgICAgICogKDhhKSBBIHNsaWNlIGlzIHNldHVwIGZvciB0aGlzIGJpbmRlciB0cmFuc2FjdGlvbiBpbiBCJ3MgdGltZWxpbmUuCisgICAgICogKDkpIFRoaXMgaXMgbm90IGEgcmVwbHkgdG8gdGhyZWFkIEEsIEIgaXMgZ29pbmcgdG8gY2FsbCBUaHJlYWQgQy4KKyAgICAgKiAoMTApIGVsc2Ugc3RhdGVtZW50IGlzIGhpdC4KKyAgICAgKiAoMTEpIFdlIHNldCB0aGUgdGlsZSBmcm9tICg4YSkgdG8gYmUgYmluZGVyX3JlcGx5IHRoaXMgaXMgdGhlCisgICAgICogICAgICdjb250YWluZyBzbGljZScgZm9yIHRoZSByZWN1cnNpb24KKyAgICAgKiAoMTIpIFdlIGNyZWF0ZSBhIG5ldyBzbGljZSAnYmluZGVyX3RyYW5zYWN0aW9uJyB0aGlzIHNsaWNlIGlzIHRoZQorICAgICAqICAgICAgcmVjdXJzaXZlIHNsaWNlIHRoYXQgd2lsbCBoYXZlIGFycm93cyB0byBUaHJlYWQgQydzIHNsaWNlLgorICAgICAqICgxMykgYWRkUmVjdXJzaXZlU3luY1RyYW5zTmVlZGluZ0NvbXBsZXRpb24oQidzIFBJRCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iaiBmcm9tICgzKSwgb2JqIGZyb20gN10pCisgICAgICogICAgICB0aGlzIHNldHMgdXAgbm90aWZpY2F0aW9uIHRoYXQgQidzIHBpZCBoYXMgb3V0c3RhbmRpbmcgcmVjdXJzaXZlCisgICAgICogICAgICB0cmFuc2FjdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGNvbXBsZXRlZC4KKyAgICAgKiAoMTQpIEIgbm90aWZpZXMgQyB0aGF0IGEgdHJhbnNhY3Rpb24gaXMgd2FpdGluZyBmb3IgaXQgYnkgY2FsbGluZworICAgICAqICAgICAgYWRkVHJhbnNhY3Rpb25XYWl0aW5nRm9yUmVjdiBsaWtlIGluIHN0ZXAgKDMpLgorICAgICAqICgxNSkgQyBlbnRlcnMgYmluZGVyVHJhbnNhY3Rpb25SZWNlaXZlZCgpIHN0ZXAgNSA2IDcgOCA4YSBoYXBwZW4sIGJ1dCBpbgorICAgICAqICAgICAgdGhlIGNvbnRleHQgb2YgVGhyZWFkIEMuCisgICAgICogKDE2KSBDIGlzIGluIG1vZGVsUHJpb3JSZWNlaXZlKCksIGl0IGhpdHMgdGhlIGZpcnN0IGlmIHN0YXRlbWVudCwKKyAgICAgKiAgICAgIHRoaXMgdHJhbnNhY3Rpb24gX0lTXyBhIHJlcGx5LCBhbmQgaXQgaXMgYSByZXBseSB0byBCLgorICAgICAqICgxNykgQyBjYWxscyBhZGRTeW5jVHJhbnNOZWVkaW5nQ29tcGxldGlvbih0cmFucyBrZXksCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2JqZWN0IGZyb20oMyksIG9iamVjdCBmcm9tIDE1LTVdKQorICAgICAqICgxOCkgQiBlbnRlcnMgYmluZGVyVHJhbnNhY3Rpb25SZWNlaXZlZCgpIGhpdHMgdGhlIGZpcnN0IGlmIGFmdGVyIGNhbGxpbmcKKyAgICAgKiAgICAgIGdldFN5bmNUcmFuc05lZWRpbmdDb21wbGV0aW9uKHRyYW5zIGtleSBmcm9tICgxNykpIHRoZSB0dXBsZSBmcm9tCisgICAgICogICAgICgxNykgZ2V0cyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqICgxOSkgQiBzY2FsZXMgdXAgdGhlIHNsaWNlIGNyZWF0ZWQgaW4gKDEyKSBhbmQgc2V0cyB1cCBmbG93cyBmcm9tIDE1LThhCisgICAgICogICAgICBzbGljZS4KKyAgICAgKiAoMjApIEIgZW50ZXJzIEJpbmRlclRyYW5zYWN0aW9uKCkgZXZlbnQgaGFuZGxlciBhbmQgdGhlIHNlY29uZCBpZiBpcyBoaXQKKyAgICAgKiAgICAgIGFmdGVyIGNhbGxpbmcgZ2V0UmVjdXJzaXZlVHJhbnNhY3Rpb25OZWVkaW5nQ29tcGxldGlvbihCJ3MgcGlkKS4KKyAgICAgKiAoMjEpIG1vZGVsUmVjdXJzaXZlVHJhbnNhY3Rpb25zKCkgZ2V0cyBjYWxsZWQsIGZpcnN0IGlmIGV4ZWN1dGVzLgorICAgICAqICgyMikgc2xpY2UgZHVyYXRpb25zIGFyZSBmaXhlZCB1cC4KKyAgICAgKiAoMjMpIEIgbm90aWZpZXMgQSB2aWEKKyAgICAgKiAgICAgIGFkZFN5bmNUcmFuc05lZWRpbmdDb21wbGV0aW9uKHRyYW5zIGtleSwgYmluZGVyIG9iaiBmcm9tIDhhKS4KKyAgICAgKiAoMjQpIEIgZGVsZXRlcyB0aGUgb3V0c3RhbmRpbmcgYXN5bmN0cmFucyB2aWEKKyAgICAgKCAgICAgIHJlbW92ZVJlY3Vyc2l2ZVRyYW5zYWN0aW9uKEIncyBwaWQpLgorICAgICAqICgyNSkgQSBlbnRlcnMgYmluZGVyVHJhbnNhY3Rpb25SZWNlaXZlZCgpIGV2ZW50IGhhbmRsZXIgYW5kIGZpbmlzaGVzIHVwCisgICAgICogICAgICBzb21lIGZsb3dzLCBhbmQgc2xpY2VzLgorICAgICAqLworICAgIGJpbmRlclRyYW5zYWN0aW9uOiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSBiaW5kZXJUcmFuc1JFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKGV2ZW50ID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIHRnaWQgPSBwYXJzZUludChldmVudEJhc2UudGdpZCk7CisKKyAgICAgIHRoaXMuZG9OYW1lTWFwcGluZ3MocGlkLCB0Z2lkLCBldmVudEJhc2UudGhyZWFkTmFtZSk7CisKKyAgICAgIHZhciBrdGhyZWFkOworICAgICAga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXJfLgorICAgICAgICAgIGdldE9yQ3JlYXRlQmluZGVyS2VybmVsVGhyZWFkKGV2ZW50QmFzZS50aHJlYWROYW1lLCB0Z2lkLCBwaWQpOworCisgICAgICB2YXIgdHJhbnMgPSBuZXcgQmluZGVyVHJhbnNhY3Rpb24oZXZlbnQsIHBpZCwgdHMsIGt0aHJlYWQpOworICAgICAgdmFyIGFyZ3MgPSBnZW5lcmF0ZUJpbmRlckFyZ3NGb3JTbGljZSh0cmFucywgZXZlbnRCYXNlLnRocmVhZE5hbWUpOworICAgICAgLyoqCisgICAgICAgKiBUaGlzIHRocmVhZCBwcmV2aW91c2x5IGFjaydkIHRoZSB0cmFuc2FjdGlvbiB3aXRoIGEKKyAgICAgICAqIHRyYW5zYWN0aW9uX3JlY2VpdmVkLiBUaGF0IG1lYW5zIHNvbWVvbmUgc2VudCB1cyBhIG1lc3NhZ2Ugd2UgcHJvY2Vzc2VkCisgICAgICAgKiBpdCBhbmQgYXJlIG5vdyBzZW5kaW5nIGEgdHJhbnNhY3Rpb24uCisgICAgICAgKiBUaGUgdHJhbnNhY3Rpb24gY291bGQgYmUgYSByZXNwb25zZSwgb3IgaXQgY291bGQgYmUgcmVjdXJzaXZlLgorICAgICAgICovCisgICAgICB2YXIgcHJpb3JfcmVjZWl2ZSA9IHRoaXMuZ2V0UHJpb3JSZWNlaXZlT25QSUQocGlkKTsKKworICAgICAgaWYgKHByaW9yX3JlY2VpdmUgIT09IGZhbHNlKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1vZGVsUHJpb3JSZWNlaXZlKHByaW9yX3JlY2VpdmUsIHRzLCBwaWQsIHRnaWQsIGt0aHJlYWQsCisgICAgICAgICAgICB0cmFucywgYXJncywgZXZlbnQpOworICAgICAgfQorICAgICAgLyoqCisgICAgICAgKiBUaGlzIFRocmVhZCBoYXMgYW4gYWxyZWFkeSBlc3RhYmxpc2hlZCByZWN1cnNpdmUgc2xpY2UuIFdlIHdpbGwgbm93CisgICAgICAgKiBlaXRoZXIgY29tcGxldGUgdGhlIGVudGlyZSB0cmFuc2FjdGlvbiwgT1IgZG8gbW9yZSByZWN1cnNpdmUgY2FsbHMuCisgICAgICAgKi8KKyAgICAgIHZhciByZWN1cnNpdmVfdHJhbnMgPSB0aGlzLmdldFJlY3Vyc2l2ZVRyYW5zYWN0aW9uTmVlZGluZ0NvbXBsZXRpb24ocGlkKTsKKworICAgICAgaWYgKHJlY3Vyc2l2ZV90cmFucyAhPT0gZmFsc2UpCisgICAgICAgIHJldHVybiB0aGlzLm1vZGVsUmVjdXJzaXZlVHJhbnNhY3Rpb25zKHJlY3Vyc2l2ZV90cmFucywgdHMsIHBpZCwKKyAgICAgICAgICAgIGt0aHJlYWQsIHRyYW5zLCBhcmdzKTsKKworICAgICAgLyoqCisgICAgICAgKiBTdGFydCBvZiBhIFRyYW5zYWN0aW9uLiBUaGlzIHRocmVhZCBpcyB0aGUgaW5pdGlhdG9yIG9mIGVpdGhlciBhIGNhbGwKKyAgICAgICAqIHJlc3BvbnNlLCBhbiBhc3luYyBjYWxsIC0+IGFjaywgb3IgYSBjYWxsIC0+IHJlY3Vyc2lvbiAtPiByZXNwb25zZS4KKyAgICAgICAqIE5vdGUsIHdlIHB1dCBhIGZha2UgZHVyYXRpb24gaW50byB0aGlzIHNsaWNlIGFuZCBwYXRjaCBpdCB1cCBsYXRlci4KKyAgICAgICAqLworICAgICAgdmFyIHNsaWNlID0ga3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoQ29tcGxldGVTbGljZSgnYmluZGVyJywKKyAgICAgICAgICAnJywgdHMsIC4wMywgMCwgMCwgYXJncyk7CisKKyAgICAgIHNsaWNlLmNvbG9ySWQgPSB0ci51aS5iLgorICAgICAgICAgIGdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0cy50b1N0cmluZygpKTsKKyAgICAgIHRyYW5zLnNsaWNlID0gc2xpY2U7CisKKyAgICAgIGlmICh0cmFucy5leHBlY3RfcmVwbHkpCisgICAgICAgIHNsaWNlLnRpdGxlID0gJ2JpbmRlciB0cmFuc2FjdGlvbic7CisgICAgICBlbHNlCisgICAgICAgIHNsaWNlLnRpdGxlID0gJ2JpbmRlciB0cmFuc2FjdGlvbiBhc3luYyc7CisKKyAgICAgIHRoaXMuYWRkVHJhbnNhY3Rpb25XYWl0aW5nRm9yUmVjdih0cmFucy50cmFuc2FjdGlvbl9rZXksIHRyYW5zKTsKKworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGJpbmRlclRyYW5zYWN0aW9uUmVjZWl2ZWQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gYmluZGVyVHJhbnNSZWNlaXZlZFJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworCisgICAgICBpZiAoZXZlbnQgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgdHJhbnNhY3Rpb25rZXkgPSBwYXJzZUludChldmVudFsxXSk7CisgICAgICB2YXIgdGdpZCA9IHBhcnNlSW50KGV2ZW50QmFzZS50Z2lkKTsKKyAgICAgIHZhciBrdGhyZWFkOworICAgICAga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXJfLgorICAgICAgICAgIGdldE9yQ3JlYXRlQmluZGVyS2VybmVsVGhyZWFkKGV2ZW50QmFzZS50aHJlYWROYW1lLCB0Z2lkLCBwaWQpOworCisgICAgICB2YXIgc3luY0NvbXBsZXRlID0gdGhpcy5nZXRTeW5jVHJhbnNOZWVkc0NvbXBsZXRpb24odHJhbnNhY3Rpb25rZXkpOworCisgICAgICBpZiAoc3luY0NvbXBsZXRlICE9PSBmYWxzZSkgeworICAgICAgICAvKiBUaGlzIHJlY3YgaXMgdGhlIGNvbXBsZXRpb24gb2YgYSBzeW5jaHJvbm91cyB0cmFuc2FjdGlvbi4KKyAgICAgICAgICogV2UgbmVlZCB0byBzY2FsZSB0aGUgc2xpY2UgdXAgdG8gdGhlIGN1cnJlbnQgdHMgYW5kIGZpbmlzaAorICAgICAgICAgKiBjcmVhdGluZyBzb21lIGZsb3dzLgorICAgICAgICAgKi8KKyAgICAgICAgdmFyIHN5bmNfdHJhbnMgPSBzeW5jQ29tcGxldGVbMF07CisgICAgICAgIHZhciBzeW5jX3NsaWNlID0gc3luY190cmFucy5zbGljZTsKKyAgICAgICAgdmFyIHJlc3BvbnNlX3RyYW5zID0gc3luY0NvbXBsZXRlWzFdOworICAgICAgICB2YXIgcmVzcG9uc2Vfc2xpY2UgPSByZXNwb25zZV90cmFucy5zbGljZTsKKworICAgICAgICBzeW5jX3NsaWNlLmR1cmF0aW9uID0gdHMgLSBzeW5jX3NsaWNlLnN0YXJ0OworICAgICAgICAvKiogVGhlc2UgY2FsbHMgYXJlIGEgbGl0dGxlIGhhY2sgdGhhdCBwbGFjZXMgYSB2ZXJ5IHNtYWxsIHNsaWNlIGF0CisgICAgICAgICAqICB0aGUgZW5kIG9mIHRoZSBzeW5jIHNsaWNlIGFuZCB0aGUgcmVzcG9uc2Ugc2xpY2UuIFRoaXMgYWxsb3dzIHVzCisgICAgICAgICAqICB0byBob29rIGZsb3cgZXZlbnRzIChhcnJvd3MpIGZyb20gdGhlIHN0YXJ0IHRvIHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAqICBzbGljZXMuCisgICAgICAgICAqLworICAgICAgICB2YXIgc3luY19pbnRlcm5hbCA9IGRvSW50ZXJuYWxTbGljZShzeW5jX3RyYW5zLCBzeW5jX3NsaWNlLCB0cyk7CisgICAgICAgIHZhciByZXNwb25zZV90cyA9IHJlc3BvbnNlX3NsaWNlLnN0YXJ0ICsgcmVzcG9uc2Vfc2xpY2UuZHVyYXRpb247CisgICAgICAgIHZhciByZXNwb25zZV9pbnRlcm5hbCA9IGRvSW50ZXJuYWxTbGljZShyZXNwb25zZV90cmFucywKKyAgICAgICAgICAgIHJlc3BvbnNlX3NsaWNlLCByZXNwb25zZV90cyk7CisKKyAgICAgICAgaWYgKHJlc3BvbnNlX3NsaWNlLm91dEZsb3dFdmVudHMubGVuZ3RoID09PSAwIHx8CisgICAgICAgICAgICBzeW5jX3NsaWNlLmluRmxvd0V2ZW50cy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgICB2YXIgZmxvdyA9IHRoaXMuZ2VuZXJhdGVGbG93KHJlc3BvbnNlX2ludGVybmFsLCBzeW5jX2ludGVybmFsLAorICAgICAgICAgICAgICByZXNwb25zZV90cmFucywgc3luY190cmFucyk7CisKKyAgICAgICAgICBzeW5jX3NsaWNlLmluRmxvd0V2ZW50cy5wdXNoKGZsb3cpOworICAgICAgICAgIHJlc3BvbnNlX3NsaWNlLm91dEZsb3dFdmVudHMucHVzaChmbG93KTsKKyAgICAgICAgICB0aGlzLm1vZGVsXy5mbG93RXZlbnRzLnB1c2goZmxvdyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gTW92ZSBmbG93IGFycm93cyAtLSBidXQgbm90IHRoZSBmaXJzdCBvbmUuCisgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgc3luY19zbGljZS5pbkZsb3dFdmVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICBzeW5jX3NsaWNlLmluRmxvd0V2ZW50c1tpXS5kdXJhdGlvbiA9CisgICAgICAgICAgICAgIHRzIC0gc3luY19zbGljZS5pbkZsb3dFdmVudHNbaV0uc3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9CisKKyAgICAgIHZhciB0cl9mb3JfcmVjdiA9IHRoaXMuZ2V0VHJhbnNhY3Rpb25XYWl0aW5nRm9yUmVjdih0cmFuc2FjdGlvbmtleSk7CisKKyAgICAgIGlmICh0cl9mb3JfcmVjdiAhPT0gZmFsc2UpIHsKKyAgICAgICAgaWYgKCF0cl9mb3JfcmVjdi5leHBlY3RfcmVwbHkpIHsKKyAgICAgICAgICAvLyBUaGlzIGlzIGFuIGFzeW5jIGNhbGwgcGxhY2UgYW4gQXN5bmMgc2xpY2UuCisgICAgICAgICAgdmFyIGFyZ3MgPSBnZW5lcmF0ZUJpbmRlckFyZ3NGb3JTbGljZSh0cl9mb3JfcmVjdiwKKyAgICAgICAgICAgICAgZXZlbnRCYXNlLnRocmVhZE5hbWUpOworICAgICAgICAgIHZhciBzbGljZSA9IGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAuCisgICAgICAgICAgICAgIHB1c2hDb21wbGV0ZVNsaWNlKCdiaW5kZXInLAorICAgICAgICAgICAgICAnYmluZGVyIEFzeW5jIHJlY3YnLAorICAgICAgICAgICAgICB0cywgLjAzLCAwLCAwLAorICAgICAgICAgICAgICBhcmdzKTsKKworICAgICAgICAgIHZhciBmYWtlX2V2ZW50ID0gWzAsIDAsIDAsIDAsIDAsIDAsIDBdOworICAgICAgICAgIHZhciBmYWtlX3RyYW5zID0gbmV3IEJpbmRlclRyYW5zYWN0aW9uKGZha2VfZXZlbnQsIHBpZCwgdHMsIGt0aHJlYWQpOworICAgICAgICAgIHZhciBmbG93ID0gdGhpcy5nZW5lcmF0ZUZsb3codHJfZm9yX3JlY3Yuc2xpY2UsIHNsaWNlLAorICAgICAgICAgICAgICB0cl9mb3JfcmVjdiwgZmFrZV90cmFucyk7CisKKyAgICAgICAgICB0aGlzLm1vZGVsXy5mbG93RXZlbnRzLnB1c2goZmxvdyk7CisgICAgICAgICAgdHJfZm9yX3JlY3Yuc2xpY2UudGl0bGUgPSAnYmluZGVyIHRyYW5zYWN0aW9uIGFzeW5jJzsKKyAgICAgICAgICB0cl9mb3JfcmVjdi5zbGljZS5kdXJhdGlvbiA9IC4wMzsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBTZXR1cCBwcmlvciByZWNlaXZlLgorICAgICAgICB0cl9mb3JfcmVjdi5zbGljZS50aXRsZSA9ICdiaW5kZXIgdHJhbnNhY3Rpb24nOworICAgICAgICB0aGlzLnNldEN1cnJlbnRSZWNlaXZlT25QSUQocGlkLCBbdHMsIHRyX2Zvcl9yZWN2XSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgICAgLyoqIFRoaXMgY2FzZSBpcyB3aGVuIHdlIHJlY2VpdmVkIGFuIGFjayBmb3IgYSB0cmFuc2FjdGlvbiB3ZSBoYXZlCisgICAgICAgKiAgbmV2ZXIgc2VlbiBiZWZvcmUuIFRoaXMgdXN1YWxseSBoYXBwZW5zIGF0IHRoZSBzdGFydCBvZiBhIHRyYWNlLgorICAgICAgICogIFdlIHdpbGwgZ2V0IGluY29tcGxldGUgdHJhbnNhY3Rpb25zIHRoYXQgc3RhcnRlZCBiZWZvcmUgc3RhcnRlZAorICAgICAgICogIHRyYWNpbmcuIEp1c3QgZGlzY2FyZCB0aGVtLgorICAgICAgICovCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIC8vIGhlbHBlciBmdW5jdGlvbnMKKyAgICBtb2RlbFJlY3Vyc2l2ZVRyYW5zYWN0aW9uczogZnVuY3Rpb24ocmVjdXJzaXZlX3RyYW5zLCB0cywgcGlkLCBrdGhyZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFucywgYXJncykgeworCisgICAgICB2YXIgcmVjdXJzaXZlX3NsaWNlID0gcmVjdXJzaXZlX3RyYW5zWzFdLnNsaWNlOworICAgICAgdmFyIG9yaWdfc2xpY2UgPSByZWN1cnNpdmVfdHJhbnNbMF0uc2xpY2U7CisgICAgICByZWN1cnNpdmVfc2xpY2UuZHVyYXRpb24gPSB0cyAtIHJlY3Vyc2l2ZV9zbGljZS5zdGFydDsKKyAgICAgIHRyYW5zLnNsaWNlID0gcmVjdXJzaXZlX3NsaWNlOworCisgICAgICBpZiAodHJhbnMuaXNfcmVwbHlfdHJhbnNhY3Rpb24pIHsKKyAgICAgICAgLyogQ2FzZSBvbmU6CisgICAgICAgICAqIFRoaXMgdHJhbnNhY3Rpb24gaXMgZmluYWxseSB0aGUgcmVwbHkgb2YgdGhlIHJlY3Vyc2lvbi4KKyAgICAgICAgICovCisgICAgICAgIG9yaWdfc2xpY2UuZHVyYXRpb24gPSB0cyAtIG9yaWdfc2xpY2Uuc3RhcnQ7CisgICAgICAgIHRoaXMuYWRkU3luY1RyYW5zTmVlZGluZ0NvbXBsZXRpb24odHJhbnMudHJhbnNhY3Rpb25fa2V5LAorICAgICAgICAgICAgIHJlY3Vyc2l2ZV90cmFucyk7CisKKyAgICAgICAgaWYgKGlzUmVwbHlUb09yaWdpbihyZWN1cnNpdmVfdHJhbnNbMF0sIHRyYW5zKSkKKyAgICAgICAgICB0aGlzLnJlbW92ZVJlY3Vyc2l2ZVRyYW5zYWN0aW9uKHBpZCk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvKioKKyAgICAgICAgICogIENhc2UgdHdvOgorICAgICAgICAgKiAgVGhpcyB0cmFuc2FjdGlvbiBpcyBtb3JlIHJlY3Vyc2l2ZSBjYWxscy4KKyAgICAgICAgICogIFRoaXMgaXMgYSBuZXN0ZWQgY2FsbCB3aXRoaW4gYW4gYWxyZWFkeSBzdGFydGVkIHRyYW5zYWN0aW9uLAorICAgICAgICAgKiAgaXQgY2FuIGVpdGhlciBiZSBhIGFzeW5jIG9yIGEgbm9ybWFsIHN5bmMgdHJhbnNhY3Rpb24uCisgICAgICAgICAqLworICAgICAgICB2YXIgc2xpY2UgPSBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKCdiaW5kZXInLAorICAgICAgICAgICAgJycgLCB0cywgLjAzLCAwLAorICAgICAgICAgICAgMCwgYXJncyk7CisKKyAgICAgICAgdHJhbnMuc2xpY2UgPSBzbGljZTsKKyAgICAgICAgdGhpcy5hZGRUcmFuc2FjdGlvbldhaXRpbmdGb3JSZWN2KHRyYW5zLnRyYW5zYWN0aW9uX2tleSwgdHJhbnMpOworICAgICAgfQorICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIG1vZGVsUHJpb3JSZWNlaXZlOiBmdW5jdGlvbihwcmlvcl9yZWNlaXZlLCB0cywgcGlkLCB0Z2lkLCBrdGhyZWFkLCB0cmFucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywgZXZlbnQpIHsKKyAgICAgIHZhciBjYWxsZWVfc2xpY2UgPSBwcmlvcl9yZWNlaXZlWzFdLnNsaWNlOworICAgICAgdmFyIGNhbGxlZV90cmFucyA9IHByaW9yX3JlY2VpdmVbMV07CisgICAgICB2YXIgcmVjdl90cyA9IHByaW9yX3JlY2VpdmVbMF07CisgICAgICB2YXIgc2xpY2UgPSBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hDb21wbGV0ZVNsaWNlKCdiaW5kZXInLAorICAgICAgICAgICcnLCByZWN2X3RzLCB0cyAtIHJlY3ZfdHMsIDAsIDAsIGFyZ3MpOworCisgICAgICB2YXIgZmxvdyA9IHRoaXMuZ2VuZXJhdGVGbG93KGNhbGxlZV9zbGljZSwgc2xpY2UsIGNhbGxlZV90cmFucywgdHJhbnMpOworICAgICAgdGhpcy5tb2RlbF8uZmxvd0V2ZW50cy5wdXNoKGZsb3cpOworICAgICAgdHJhbnMuc2xpY2UgPSBzbGljZTsKKworICAgICAgaWYgKHRyYW5zLmlzX3JlcGx5X3RyYW5zYWN0aW9uKSB7CisgICAgICAgIC8qIFRoaXMgaXMgYSByZXNwb25zZSB0byBhIHN5bmNocm9ub3VzIG9yIGEgcmVjdXJzaXZlIHN5bmMKKyAgICAgICAgICogdHJhbnNhY3Rpb24uCisgICAgICAgICAqLworICAgICAgICBzbGljZS50aXRsZSA9ICdiaW5kZXIgcmVwbHknOworICAgICAgICAvKiBOb3RpZnkgdGhpcyB0cmFuc2FjdGlvbiBrZXkgdGhhdCB3aGVuIGl0IHJlY3YncyBpdCBpcyBjb21wbGV0aW5nCisgICAgICAgICAqIGEgc3luYyB0cmFuc2FjdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIHRoaXMuYWRkU3luY1RyYW5zTmVlZGluZ0NvbXBsZXRpb24odHJhbnMudHJhbnNhY3Rpb25fa2V5LAorICAgICAgICAgICAgW2NhbGxlZV90cmFucywgdHJhbnNdKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZWN1cnNpdmUgY2FsbHMgYW5kIG9yIGNhbGxzIGFyb3VuZCwgZWl0aGVyIHdheSBpdCdzIG5vdAorICAgICAgICAgKiBnb2luZyB0byBjb21wbGV0ZSBhIHRyYW5zYWN0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgICBzbGljZS50aXRsZSA9ICdiaW5kZXIgcmVwbHknOworICAgICAgICAgIC8qIFNpbmNlIHRoaXMgaXMgYSByZWN1cnNpdmUgdHJhbnNhY3Rpb24gd2Ugd2FudCB0byBjcmVhdGUgdGhlIG1haW4KKyAgICAgICAgICAgKiBsYXJnZSBzbGljZSB3aGljaCB3aWxsIGNvbnRhaW4gYWxsIHRoZXNlIHJlY3Vyc2l2ZSB0cmFuc2FjdGlvbnMuCisgICAgICAgICAgICogRm9yIHRoYXQgd2UgY3JlYXRlZCB0aGUgbWFpbiBzbGljZSBhYm92ZSBhbmQgdGhpcyBpcyBhIHJlY3Vyc2l2ZQorICAgICAgICAgICAqIHRyYW5zYWN0aW9uIHRoYXQgd2lsbCBiZSBwbGFjZWQgcmlnaHQgYmVsb3cgaXQuIE5vdGUsIHRoYXQgdGhpcworICAgICAgICAgICAqIGlzIG9ubHkgZm9yIHRoZSBmaXJzdCByZWN1cnNpdmUgdHJhbnNhY3Rpb24uIElmIG1vcmUgY29tZSB0aGV5IHdpbGwKKyAgICAgICAgICAgKiBiZSBoYW5kbGVkIGJlbG93IGluIHRoZSBnZXRSZWN1cnNpdmVUcmFuc2FjdGlvbk5lZWRpbmdDb21wbGV0aW9uCisgICAgICAgICAgICovCisgICAgICAgICAgdmFyIHRyYW5zMSA9IG5ldyBCaW5kZXJUcmFuc2FjdGlvbihldmVudCwgcGlkLCB0cywga3RocmVhZCk7CisKKyAgICAgICAgICBzbGljZSA9IGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAuCisgICAgICAgICAgcHVzaENvbXBsZXRlU2xpY2UoJ2JpbmRlcicsCisgICAgICAgICAgICAgICdiaW5kZXIgdHJhbnNhY3Rpb24nLAorICAgICAgICAgICAgICByZWN2X3RzLAorICAgICAgICAgICAgICAodHMgLSByZWN2X3RzKSwgMCwKKyAgICAgICAgICAgICAgMCwgYXJncyk7CisKKyAgICAgICAgICAvKiBjb3VsZCBiZSBhIGFzeW5jIHRyYW5zIGlmIHNvIHNldCB0aGUgbGVuZ3RoIHRvIGJlIGEgc21hbGwgb25lICovCisgICAgICAgICAgaWYgKCF0cmFucy5leHBlY3RfcmVwbHkpIHsKKyAgICAgICAgICAgIHNsaWNlLnRpdGxlID0gJ2JpbmRlciB0cmFuc2FjdGlvbiBhc3luYyc7CisgICAgICAgICAgICBzbGljZS5kdXJhdGlvbiA9IC4wMzsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogc3R1cGlkIGhhY2sgdG8gc3RvcCBtZXJnaW5nIG9mIEFJREwgc2xpY2VzIGFuZAorICAgICAgICAgICAgICogdGhpcyBzbGljZS4gVGhpcyBpcyBjdXJyZW50bHkgZGlzYWJsZWQsIGlmIEFJREwgdHJhY2luZyBpcyBvbiB3ZQorICAgICAgICAgICAgICogd2lsbCBzZWUgbWVyZ2luZyBvZiB0aGlzIHNsaWNlIGFuZCB0aGUgQUlETCBzbGljZS4gT25jZSB1cHN0cmVhbQorICAgICAgICAgICAgICogaGFzIGEgc29sdXRpb24gZm9yIGZsb3cgZXZlbnRzIHRvIGJlIHBsYWNlZCBpbiB0aGUgbWlkZGxlIG9mCisgICAgICAgICAgICAgKiBzbGljZXMgdGhpcyBwYXJ0IGNhbiBiZSBmaXhlZC4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBUaGlzIGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBBSURMIHRyYWNpbmcgZG9lc24ndCBleGl0IHlldC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgLy9zbGljZS5zdGFydCArPSAuMTU7CisgICAgICAgICAgfQorICAgICAgICAgIHRyYW5zMS5zbGljZSA9IHNsaWNlOworICAgICAgICAgIHRoaXMuYWRkUmVjdXJzaXZlU3luY1RyYW5zTmVlZGluZ0NvbXBsZXRpb24ocGlkLAorICAgICAgICAgICAgICBbY2FsbGVlX3RyYW5zLCB0cmFuc10pOworICAgICAgICAgIHRoaXMuYWRkVHJhbnNhY3Rpb25XYWl0aW5nRm9yUmVjdih0cmFucy50cmFuc2FjdGlvbl9rZXksIHRyYW5zMSk7CisgICAgICB9CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZ2V0UmVjdXJzaXZlVHJhbnNhY3Rpb25OZWVkaW5nQ29tcGxldGlvbjogZnVuY3Rpb24ocGlkKSB7CisgICAgICBpZiAodGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRFtwaWRdID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGxlbiA9IHRoaXMucmVjdXJzaXZlU3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb25fQnlQSURbcGlkXS5sZW5ndGg7CisgICAgICBpZiAobGVuID09PSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHJldHVybiB0aGlzLnJlY3Vyc2l2ZVN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uX0J5UElEW3BpZF1bbGVuIC0gMV07CisgICAgfSwKKworICAgIGFkZFJlY3Vyc2l2ZVN5bmNUcmFuc05lZWRpbmdDb21wbGV0aW9uOiBmdW5jdGlvbihwaWQsIHR1cGxlKSB7CisgICAgICBpZiAodGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRFtwaWRdID09PSB1bmRlZmluZWQpCisgICAgICAgIHRoaXMucmVjdXJzaXZlU3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb25fQnlQSURbcGlkXSA9IFtdOworCisgICAgICB0aGlzLnJlY3Vyc2l2ZVN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uX0J5UElEW3BpZF0ucHVzaCh0dXBsZSk7CisgICAgfSwKKworICAgIHJlbW92ZVJlY3Vyc2l2ZVRyYW5zYWN0aW9uOiBmdW5jdGlvbihwaWQpIHsKKyAgICAgIHZhciBsZW4gPSB0aGlzLnJlY3Vyc2l2ZVN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uX0J5UElEW3BpZF0ubGVuZ3RoOworICAgICAgaWYgKGxlbiA9PT0gMCkgeworICAgICAgICBkZWxldGUgdGhpcy5yZWN1cnNpdmVTeW5jVHJhbnNXYWl0aW5nQ29tcGxldGlvbl9CeVBJRFtwaWRdOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHRoaXMucmVjdXJzaXZlU3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb25fQnlQSURbcGlkXS5zcGxpY2UobGVuIC0gMSwgMSk7CisgICAgfSwKKworICAgIHNldEN1cnJlbnRSZWNlaXZlT25QSUQ6IGZ1bmN0aW9uKHBpZCwgdHVwbGUpIHsKKyAgICAgIGlmICh0aGlzLnJlY2VpdmVkVHJhbnNXYWl0aW5nQ29udmVyc2lvbltwaWRdID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5yZWNlaXZlZFRyYW5zV2FpdGluZ0NvbnZlcnNpb25bcGlkXSA9IFtdOworICAgICAgfQorICAgICAgdGhpcy5yZWNlaXZlZFRyYW5zV2FpdGluZ0NvbnZlcnNpb25bcGlkXS5wdXNoKHR1cGxlKTsKKyAgICB9LAorCisgICAgZ2V0UHJpb3JSZWNlaXZlT25QSUQ6IGZ1bmN0aW9uKHBpZCkgeworICAgICAgaWYgKHRoaXMucmVjZWl2ZWRUcmFuc1dhaXRpbmdDb252ZXJzaW9uW3BpZF0gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgbGVuID0gdGhpcy5yZWNlaXZlZFRyYW5zV2FpdGluZ0NvbnZlcnNpb25bcGlkXS5sZW5ndGg7CisgICAgICBpZiAobGVuID09PSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHJldHVybiB0aGlzLnJlY2VpdmVkVHJhbnNXYWl0aW5nQ29udmVyc2lvbltwaWRdLnNwbGljZShsZW4gLSAxLCAxKVswXTsKKyAgICB9LAorCisgICAgYWRkU3luY1RyYW5zTmVlZGluZ0NvbXBsZXRpb246IGZ1bmN0aW9uKHRyYW5zYWN0aW9ua2V5LCB0dXBsZSkgeworICAgICAgdmFyIGRpY3QgPSB0aGlzLnN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uOworICAgICAgZGljdFt0cmFuc2FjdGlvbmtleV0gPSB0dXBsZTsKKyAgICB9LAorCisgICAgZ2V0U3luY1RyYW5zTmVlZHNDb21wbGV0aW9uOiBmdW5jdGlvbih0cmFuc2FjdGlvbmtleSkgeworICAgICAgdmFyIHJldCA9IHRoaXMuc3luY1RyYW5zV2FpdGluZ0NvbXBsZXRpb25bdHJhbnNhY3Rpb25rZXldOworICAgICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIGRlbGV0ZSB0aGlzLnN5bmNUcmFuc1dhaXRpbmdDb21wbGV0aW9uW3RyYW5zYWN0aW9ua2V5XTsKKyAgICAgIHJldHVybiByZXQ7CisgICAgfSwKKworICAgIGdldFRyYW5zYWN0aW9uV2FpdGluZ0ZvclJlY3Y6IGZ1bmN0aW9uKHRyYW5zYWN0aW9ua2V5KSB7CisgICAgICB2YXIgcmV0ID0gdGhpcy50cmFuc1dhaXRpbmdSZWN2W3RyYW5zYWN0aW9ua2V5XTsKKyAgICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICBkZWxldGUgdGhpcy50cmFuc1dhaXRpbmdSZWN2W3RyYW5zYWN0aW9ua2V5XTsKKyAgICAgIHJldHVybiByZXQ7CisgICAgfSwKKworICAgIGFkZFRyYW5zYWN0aW9uV2FpdGluZ0ZvclJlY3Y6IGZ1bmN0aW9uKHRyYW5zYWN0aW9ua2V5LCB0cmFuc2FjdGlvbikgeworICAgICAgdGhpcy50cmFuc1dhaXRpbmdSZWN2W3RyYW5zYWN0aW9ua2V5XSA9IHRyYW5zYWN0aW9uOworICAgIH0sCisKKyAgICBnZW5lcmF0ZUZsb3c6IGZ1bmN0aW9uKGZyb20sIHRvLCBmcm9tX3RyYW5zLCB0b190cmFucykgeworICAgICAgdmFyIHRpdGxlID0gJ1RyYW5zYWN0aW9uIGZyb20gOiAnICsKKyAgICAgICAgdGhpcy5waWQybmFtZShmcm9tX3RyYW5zLmNhbGxpbmdfcGlkKSArCisgICAgICAgICcgRnJvbSBQSUQ6ICcgKyBmcm9tX3RyYW5zLmNhbGxpbmdfcGlkICsgJyB0byBwaWQ6ICcgKworICAgICAgICB0b190cmFucy5jYWxsaW5nX3BpZCArCisgICAgICAgICcgVGhyZWFkIE5hbWU6ICcgKyB0aGlzLnBpZDJuYW1lKHRvX3RyYW5zLmNhbGxpbmdfcGlkKTsKKworICAgICAgdmFyIHRzID0gZnJvbS5zdGFydDsKKyAgICAgIHZhciBmbG93ID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnYmluZGVyJywgdHMsIHRpdGxlLCAxLCB0cywgW10pOworICAgICAgZmxvdy5zdGFydFNsaWNlID0gZnJvbTsKKyAgICAgIGZsb3cuZW5kU2xpY2UgPSB0bzsKKyAgICAgIGZsb3cuc3RhcnQgPSBmcm9tLnN0YXJ0OworICAgICAgZmxvdy5kdXJhdGlvbiA9IHRvLnN0YXJ0IC0gdHM7CisgICAgICBmbG93LmNvbG9ySWQgPSAxOworCisgICAgICBmcm9tLm91dEZsb3dFdmVudHMucHVzaChmbG93KTsKKyAgICAgIHRvLmluRmxvd0V2ZW50cy5wdXNoKGZsb3cpOworCisgICAgICByZXR1cm4gZmxvdzsKKyAgICB9LAorCisgICAgZ2VuZXJhdGVBcmdzRm9yU2xpY2U6IGZ1bmN0aW9uKHRnaWQsIHBpZCwgbmFtZSwga3RocmVhZCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgJ1RocmVhZCBOYW1lJzogbmFtZSwKKyAgICAgICAgJ3BpZCc6IHBpZCwKKyAgICAgICAgJ2dpZCc6IHRnaWQKKyAgICAgIH07CisgICAgfSwKKworICAgIHBpZDJuYW1lOiBmdW5jdGlvbihwaWQpIHsKKyAgICAgIHJldHVybiB0aGlzLmt0aHJlYWRsb29rdXBbcGlkXTsKKyAgICB9LAorCisgICAgZG9OYW1lTWFwcGluZ3M6IGZ1bmN0aW9uKHBpZCwgdGdpZCwgbmFtZSkgeworICAgICAgdGhpcy5yZWdpc3RlclBpZE5hbWUocGlkLCBuYW1lKTsKKyAgICAgIHRoaXMucmVnaXN0ZXJQaWROYW1lKHRnaWQsIG5hbWUpOworICAgIH0sCisKKyAgICByZWdpc3RlclBpZE5hbWU6IGZ1bmN0aW9uKHBpZCwgbmFtZSkgeworICAgICAgaWYgKHRoaXMucGlkMm5hbWUocGlkKSA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aGlzLmt0aHJlYWRsb29rdXBbcGlkXSA9IG5hbWU7CisgICAgfQorICB9OworCisgIFBhcnNlci5yZWdpc3RlcihCaW5kZXJQYXJzZXIpOworICByZXR1cm4geworICAgIEJpbmRlclBhcnNlcjogQmluZGVyUGFyc2VyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9iaW5kZXJfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYmluZGVyX3BhcnNlcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI1MDZiNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYmluZGVyX3BhcnNlcl90ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyLmh0bWwiPgorCisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdiaW5kZXJQYXJzZXJJbXBvcnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICdiaW5kZXJMaWJUZXN0LTEwNjE5ICgxMDYxOSkgWzAwMV0gLi4uMSAyNTE5MS4zMzU3NDk6IGJpbmRlcl90cmFuc2FjdGlvbicgKworICAgICAgICAnOiB0cmFuc2FjdGlvbj00ODkwNTMgZGVzdF9ub2RlPTQ4OTA0OCBkZXN0X3Byb2M9MTA2NzAgZGVzdF90aHJlYWQ9MCAnICsKKyAgICAgICAgJ3JlcGx5PTAgZmxhZ3M9MHgxMCBjb2RlPTB4ZCcsCisgICAgICAnYmluZGVyTGliVGVzdC0xMDY3MCAoMTA2NzApIFswMDBdIC4uLjEgMjUxOTEuMzM1OTk2OicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbl9yZWNlaXZlZDogdHJhbnNhY3Rpb249NDg5MDUzJywKKyAgICAgICdiaW5kZXJMaWJUZXN0LTEwNjcwICgxMDY3MCkgWzAwMF0gLi4uMSAyNTE5MS4zMzYxNjc6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uOiB0cmFuc2FjdGlvbj00ODkwNTYgZGVzdF9ub2RlPTE2MTI3NyAnICsKKyAgICAgICAgJ2Rlc3RfcHJvYz0zNDU0IGRlc3RfdGhyZWFkPTAgcmVwbHk9MCBmbGFncz0weDEwIGNvZGU9MHgyJywKKyAgICAgICcvc3lzdGVtL2Jpbi9zZXJ2aWNlbWFuYWdlci0zNDU0ICAoIDM0NTQpIFswMDBdIC4uLjEgMjUxOTEuMzM2MTk5OicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbl9yZWNlaXZlZDogdHJhbnNhY3Rpb249NDg5MDU2JywKKyAgICAgICcvc3lzdGVtL2Jpbi9zZXJ2aWNlbWFuYWdlci0zNDU0ICAoIDM0NTQpIFswMDBdIC4uLjEgMjUxOTEuMzM2MzAyOicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbjogdHJhbnNhY3Rpb249NDg5MDU3IGRlc3Rfbm9kZT0wIGRlc3RfcHJvYz0xMDY3MCcgKworICAgICAgICAnIGRlc3RfdGhyZWFkPTEwNjcwIHJlcGx5PTEgZmxhZ3M9MHgwIGNvZGU9MHgwJywKKyAgICAgICdiaW5kZXJMaWJUZXN0LTEwNjcwICgxMDY3MCkgWzAwMF0gLi4uMSAyNTE5MS4zMzYzMzQ6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkOiB0cmFuc2FjdGlvbj00ODkwNTcnLAorICAgICAgJ2JpbmRlckxpYlRlc3QtMTA2NzAgKDEwNjcwKSBbMDAwXSAuLi4xIDI1MTkxLjMzNjY1NTonICsKKyAgICAgICAgJyBiaW5kZXJfdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uPTQ4OTA1OSBkZXN0X25vZGU9NDg4NzU1JyArCisgICAgICAgICcgZGVzdF9wcm9jPTEwNjIyIGRlc3RfdGhyZWFkPTAgcmVwbHk9MCBmbGFncz0weDEwIGNvZGU9MHgxJywKKyAgICAgICdCaW5kZXJfNC0xMDY0NSAoMTA2MjIpIFswMDFdIC4uLjEgMjUxOTEuMzM2NjkzOicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbl9yZWNlaXZlZDogdHJhbnNhY3Rpb249NDg5MDU5JywKKyAgICAgICdCaW5kZXJfNC0xMDY0NSAoMTA2MjIpIFswMDFdIC4uLjEgMjUxOTEuMzM2NzU0OiBiaW5kZXJfdHJhbnNhY3Rpb246JyArCisgICAgICAgICcgdHJhbnNhY3Rpb249NDg5MDYwIGRlc3Rfbm9kZT0wIGRlc3RfcHJvYz0xMDY3MCBkZXN0X3RocmVhZD0xMDY3MCcgKworICAgICAgICAnIHJlcGx5PTEgZmxhZ3M9MHgwIGNvZGU9MHgwJywKKyAgICAgICdiaW5kZXJMaWJUZXN0LTEwNjcwICgxMDY3MCkgWzAwMF0gLi4uMSAyNTE5MS4zMzcwMDM6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkOiB0cmFuc2FjdGlvbj00ODkwNjAnLAorICAgICAgJ2JpbmRlckxpYlRlc3QtMTA2NzAgKDEwNjcwKSBbMDAwXSAuLi4xIDI1MTkxLjMzNzA1MjonICsKKyAgICAgICAgJyBiaW5kZXJfdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uPTQ4OTA2MSBkZXN0X25vZGU9MCBkZXN0X3Byb2M9MTA2MTknICsKKyAgICAgICAgJyBkZXN0X3RocmVhZD0xMDYxOSByZXBseT0xIGZsYWdzPTB4OCBjb2RlPTB4MCcsCisgICAgICAnYmluZGVyTGliVGVzdC0xMDYxOSAoMTA2MTkpIFswMDFdIC4uLjEgMjUxOTEuMzM3MDg1OicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbl9yZWNlaXZlZDogdHJhbnNhY3Rpb249NDg5MDYxJywKKyAgICAgICdhdHJhY2UtMTA2MTggKDEwNjE4KSBbMDAwXSAuLi4xIDI1MTk2LjA1OTk1NDogdHJhY2luZ19tYXJrX3dyaXRlOicgKworICAgICAgICAnIHRyYWNlX2V2ZW50X2Nsb2NrX3N5bmM6IHBhcmVudF90cz0yNTE5Ni4wNTA3ODEnCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKworICAgIHZhciB0aHJlYWRzID0gbS5nZXRBbGxUaHJlYWRzKCk7CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZHMubGVuZ3RoLCA0KTsKKworICB9KTsKKworCisgIHRlc3QoJ2JpbmRlclJlY3Vyc2l2ZVRlc3QnLCBmdW5jdGlvbigpIHsKKworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgJ2JpbmRlckxpYlRlc3QtMTA2MTkgKDEwNjE5KSBbMDAxXSAuLi4xIDI1MTkxLjMzNTc0OTogYmluZGVyX3RyYW5zYWN0aW9uJyArCisgICAgICAgICc6IHRyYW5zYWN0aW9uPTQ4OTA1MyBkZXN0X25vZGU9NDg5MDQ4IGRlc3RfcHJvYz0xMDY3MCBkZXN0X3RocmVhZD0wICcgKworICAgICAgICAncmVwbHk9MCBmbGFncz0weDEwIGNvZGU9MHhkJywKKyAgICAgICdiaW5kZXJMaWJUZXN0LTEwNjcwICgxMDY3MCkgWzAwMF0gLi4uMSAyNTE5MS4zMzU5OTY6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkOiB0cmFuc2FjdGlvbj00ODkwNTMnLAorICAgICAgJ2JpbmRlckxpYlRlc3QtMTA2NzAgKDEwNjcwKSBbMDAwXSAuLi4xIDI1MTkxLjMzNjE2NzonICsKKyAgICAgICAgJyBiaW5kZXJfdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uPTQ4OTA1NiBkZXN0X25vZGU9MTYxMjc3ICcgKworICAgICAgICAnZGVzdF9wcm9jPTM0NTQgZGVzdF90aHJlYWQ9MCByZXBseT0wIGZsYWdzPTB4MTAgY29kZT0weDInLAorICAgICAgJy9zeXN0ZW0vYmluL3NlcnZpY2VtYW5hZ2VyLTM0NTQgICggMzQ1NCkgWzAwMF0gLi4uMSAyNTE5MS4zMzYxOTk6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkOiB0cmFuc2FjdGlvbj00ODkwNTYnLAorICAgICAgJy9zeXN0ZW0vYmluL3NlcnZpY2VtYW5hZ2VyLTM0NTQgICggMzQ1NCkgWzAwMF0gLi4uMSAyNTE5MS4zMzYzMDI6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uOiB0cmFuc2FjdGlvbj00ODkwNTcgZGVzdF9ub2RlPTAgZGVzdF9wcm9jPTEwNjcwJyArCisgICAgICAgICcgZGVzdF90aHJlYWQ9MTA2NzAgcmVwbHk9MSBmbGFncz0weDAgY29kZT0weDAnLAorICAgICAgJ2JpbmRlckxpYlRlc3QtMTA2NzAgKDEwNjcwKSBbMDAwXSAuLi4xIDI1MTkxLjMzNjMzNDonICsKKyAgICAgICAgJyBiaW5kZXJfdHJhbnNhY3Rpb25fcmVjZWl2ZWQ6IHRyYW5zYWN0aW9uPTQ4OTA1NycsCisgICAgICAnYmluZGVyTGliVGVzdC0xMDY3MCAoMTA2NzApIFswMDBdIC4uLjEgMjUxOTEuMzM2NjU1OicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbjogdHJhbnNhY3Rpb249NDg5MDU5IGRlc3Rfbm9kZT00ODg3NTUnICsKKyAgICAgICAgJyBkZXN0X3Byb2M9MTA2MjIgZGVzdF90aHJlYWQ9MCByZXBseT0wIGZsYWdzPTB4MTAgY29kZT0weDEnLAorICAgICAgJ0JpbmRlcl80LTEwNjQ1ICgxMDYyMikgWzAwMV0gLi4uMSAyNTE5MS4zMzY2OTM6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkOiB0cmFuc2FjdGlvbj00ODkwNTknLAorICAgICAgJ0JpbmRlcl80LTEwNjQ1ICgxMDYyMikgWzAwMV0gLi4uMSAyNTE5MS4zMzY3NTQ6IGJpbmRlcl90cmFuc2FjdGlvbjonICsKKyAgICAgICAgJyB0cmFuc2FjdGlvbj00ODkwNjAgZGVzdF9ub2RlPTAgZGVzdF9wcm9jPTEwNjcwIGRlc3RfdGhyZWFkPTEwNjcwJyArCisgICAgICAgICcgcmVwbHk9MSBmbGFncz0weDAgY29kZT0weDAnLAorICAgICAgJ2JpbmRlckxpYlRlc3QtMTA2NzAgKDEwNjcwKSBbMDAwXSAuLi4xIDI1MTkxLjMzNzAwMzonICsKKyAgICAgICAgJyBiaW5kZXJfdHJhbnNhY3Rpb25fcmVjZWl2ZWQ6IHRyYW5zYWN0aW9uPTQ4OTA2MCcsCisgICAgICAnYmluZGVyTGliVGVzdC0xMDY3MCAoMTA2NzApIFswMDBdIC4uLjEgMjUxOTEuMzM3MDUyOicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbjogdHJhbnNhY3Rpb249NDg5MDYxIGRlc3Rfbm9kZT0wIGRlc3RfcHJvYz0xMDYxOScgKworICAgICAgICAnIGRlc3RfdGhyZWFkPTEwNjE5IHJlcGx5PTEgZmxhZ3M9MHg4IGNvZGU9MHgwJywKKyAgICAgICdiaW5kZXJMaWJUZXN0LTEwNjE5ICgxMDYxOSkgWzAwMV0gLi4uMSAyNTE5MS4zMzcwODU6JyArCisgICAgICAgICcgYmluZGVyX3RyYW5zYWN0aW9uX3JlY2VpdmVkOiB0cmFuc2FjdGlvbj00ODkwNjEnLAorICAgICAgJ2F0cmFjZS0xMDYxOCAoMTA2MTgpIFswMDBdIC4uLjEgMjUxOTYuMDU5OTU0OiB0cmFjaW5nX21hcmtfd3JpdGU6JyArCisgICAgICAgICcgdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogcGFyZW50X3RzPTI1MTk2LjA1MDc4MScKKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIHZhciB0aHJlYWRzID0gbS5nZXRBbGxUaHJlYWRzKCk7CisKKyAgICB2YXIgdGhyZWFkID0gdGhyZWFkc1swXTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkLnBhcmVudC5waWQsIDM0NTQpOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQudGlkLCAzNDU0KTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkLm5hbWUsICcvc3lzdGVtL2Jpbi9zZXJ2aWNlbWFuYWdlcicpOworICAgIC8qIG9uZSBtYWluIHNsaWNlIGFuZCBvbmUgJ2ludGVybmFsIHNsaWNlJyBmb3IgdGhlIGVuZCBmbG93IGV2ZW50JyAqLworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQuc2xpY2VHcm91cC5sZW5ndGgsIDIpOworCisgICAgLyogY2hlY2sgZmxvdyBldmVudHMgZm9yIHNlcnZpY2UgbWFuYWdlciAqLworICAgIHZhciBtYWluX3NsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChtYWluX3NsaWNlLmluRmxvd0V2ZW50cy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChtYWluX3NsaWNlLm91dEZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKyAgICB2YXIgaW50ZXJuYWxfc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKGludGVybmFsX3NsaWNlLm91dEZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKworICAgIC8qIGNoZWNrIG5hbWUgb2Ygc2xpY2UgKi8KKyAgICBhc3NlcnQuZXF1YWwobWFpbl9zbGljZS50aXRsZSwgJ2JpbmRlciByZXBseScpOworCisKKyAgICAvKiBjaGVjayBiaW5kZXJMaWJUZXN0ICovCisgICAgdGhyZWFkID0gdGhyZWFkc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkLnBhcmVudC5waWQsIDEwNjE5KTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkLnRpZCwgMTA2MTkpOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQubmFtZSwgJ2JpbmRlckxpYlRlc3QnKTsKKworICAgIGFzc2VydC5lcXVhbCgyLCB0aHJlYWQuc2xpY2VHcm91cC5sZW5ndGgpOworCisgICAgbWFpbl9zbGljZSA9IHRocmVhZC5zbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwobWFpbl9zbGljZS5pbkZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobWFpbl9zbGljZS5vdXRGbG93RXZlbnRzLmxlbmd0aCwgMSk7CisgICAgaW50ZXJuYWxfc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKGludGVybmFsX3NsaWNlLmluRmxvd0V2ZW50cy5sZW5ndGgsIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG1haW5fc2xpY2UudGl0bGUsICdiaW5kZXIgdHJhbnNhY3Rpb24nKTsKKworCisgICAgLyogY2hlY2sgQmluZGVyXzQgKi8KKyAgICB0aHJlYWQgPSB0aHJlYWRzWzJdOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQucGFyZW50LnBpZCwgMTA2MjIpOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQudGlkLCAxMDY0NSk7CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZC5uYW1lLCAnQmluZGVyXzQnKTsKKyAgICBhc3NlcnQuZXF1YWwoMiwgdGhyZWFkLnNsaWNlR3JvdXAubGVuZ3RoKTsKKworICAgIG1haW5fc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKG1haW5fc2xpY2UuaW5GbG93RXZlbnRzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKG1haW5fc2xpY2Uub3V0Rmxvd0V2ZW50cy5sZW5ndGgsIDEpOworICAgIGludGVybmFsX3NsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzWzFdOworICAgIGFzc2VydC5lcXVhbChpbnRlcm5hbF9zbGljZS5vdXRGbG93RXZlbnRzLmxlbmd0aCwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwobWFpbl9zbGljZS50aXRsZSwgJ2JpbmRlciByZXBseScpOworCisgICAgLyogY2hlY2sgbGFzdCBiaW5kZXJMaWJUZXN0IHdpdGggcmVjdXJzaXZlIHNsaWNlcyAqLworICAgIHRocmVhZCA9IHRocmVhZHNbM107CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZC5wYXJlbnQucGlkLCAxMDY3MCk7CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZC50aWQsIDEwNjcwKTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkLm5hbWUsICdiaW5kZXJMaWJUZXN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKDYsIHRocmVhZC5zbGljZUdyb3VwLmxlbmd0aCk7CisKKyAgICBtYWluX3NsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChtYWluX3NsaWNlLmluRmxvd0V2ZW50cy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChtYWluX3NsaWNlLm91dEZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKyAgICBpbnRlcm5hbF9zbGljZSA9IHRocmVhZC5zbGljZUdyb3VwLnNsaWNlc1s1XTsKKyAgICBhc3NlcnQuZXF1YWwoaW50ZXJuYWxfc2xpY2Uub3V0Rmxvd0V2ZW50cy5sZW5ndGgsIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG1haW5fc2xpY2UudGl0bGUsICdiaW5kZXIgcmVwbHknKTsKKworICAgIGNvbnNvbGUubG9nKHRocmVhZC5zbGljZUdyb3VwLnNsaWNlcyk7CisgICAgdmFyIHJlY3Vyc2l2ZSA9IHRocmVhZC5zbGljZUdyb3VwLnNsaWNlc1sxXTsKKyAgICB2YXIgcmVjdXJzaXZlX2ludGVybmFsID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzWzJdOworICAgIGFzc2VydC5lcXVhbChyZWN1cnNpdmUuaW5GbG93RXZlbnRzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlY3Vyc2l2ZS5vdXRGbG93RXZlbnRzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlY3Vyc2l2ZV9pbnRlcm5hbC5pbkZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKworICAgIGFzc2VydC5lcXVhbChyZWN1cnNpdmUudGl0bGUsICdiaW5kZXIgdHJhbnNhY3Rpb24nKTsKKworICAgIC8qIGNoZWNrIHNlY29uZCByZWN1cnNpdmUgc2xpY2UgYW5kIGludGVybmFsICovCisKKyAgICB2YXIgcmVjdXJzaXZlID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzWzNdOworICAgIHZhciByZWN1cnNpdmVfaW50ZXJuYWwgPSB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXNbNF07CisgICAgYXNzZXJ0LmVxdWFsKHJlY3Vyc2l2ZS5pbkZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocmVjdXJzaXZlLm91dEZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocmVjdXJzaXZlX2ludGVybmFsLmluRmxvd0V2ZW50cy5sZW5ndGgsIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKHJlY3Vyc2l2ZS50aXRsZSwgJ2JpbmRlciB0cmFuc2FjdGlvbicpOworICB9KTsKKworICB0ZXN0KCdiaW5kZXJTaW1wbGVBc3luYycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICcvc3lzdGVtL2Jpbi9zdXJmYWNlZmxpbmdlci0zNDYyICAoIDM0NjIpIFswMDBdIC4uLjEgMTA4Mjg2LjEwOTQzNzonICsKKyAgICAgICAgJyBiaW5kZXJfdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uPTkyMzQxOSBkZXN0X25vZGU9MTc1OTUwJyArCisgICAgICAgICcgZGVzdF9wcm9jPTQwNDQgZGVzdF90aHJlYWQ9MCByZXBseT0wIGZsYWdzPTB4MTEgY29kZT0weDEnLAorICAgICAgJ0JpbmRlcl81LTEyODY5ICggNDA0NCkgWzAwMF0gLi4uMSAxMDgyODYuMTA5ODM1OicgKworICAgICAgICAnIGJpbmRlcl90cmFuc2FjdGlvbl9yZWNlaXZlZDogdHJhbnNhY3Rpb249OTIzNDE5JworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisKKyAgICB2YXIgdGhyZWFkcyA9IG0uZ2V0QWxsVGhyZWFkcygwKTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkcy5sZW5ndGgsIDIpOworCisgICAgdmFyIHRocmVhZCA9IHRocmVhZHNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZC50aWQsIDM0NjIpOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQubmFtZSwgJy9zeXN0ZW0vYmluL3N1cmZhY2VmbGluZ2VyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7CisKKyAgICB2YXIgc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLm91dEZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuaW5GbG93RXZlbnRzLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYmluZGVyIHRyYW5zYWN0aW9uIGFzeW5jJyk7CisKKyAgICB0aHJlYWQgPSB0aHJlYWRzWzFdOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQudGlkLCAxMjg2OSk7CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZC5uYW1lLCAnQmluZGVyXzUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkLnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKKworICAgIHNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChzbGljZS5pbkZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2Uub3V0Rmxvd0V2ZW50cy5sZW5ndGgsIDApOworICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2JpbmRlciBBc3luYyByZWN2Jyk7CisKKyAgfSk7Cit9KTsKKworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYnVzX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9idXNfcGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JlMDVkOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYnVzX3BhcnNlci5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlcl9zZXJpZXMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQYXJzZXMgdHJhY2VfbWFya2VyIGV2ZW50cyB0aGF0IHdlcmUgaW5zZXJ0ZWQgaW4gdGhlIHRyYWNlIGJ5CisgKiB1c2VybGFuZC4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsIGZ1bmN0aW9uKCkgeworICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKKworICAvKioKKyAgICogUGFyc2VzIGxpbnV4IHRyYWNlIG1hcmsgZXZlbnRzIHRoYXQgd2VyZSBpbnNlcnRlZCBpbiB0aGUgdHJhY2UgYnkgdXNlcmxhbmQuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQnVzUGFyc2VyKGltcG9ydGVyKSB7CisgICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOworCisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21lbW9yeV9idXNfdXNhZ2UnLAorICAgICAgICBCdXNQYXJzZXIucHJvdG90eXBlLnRyYWNlTWFya1dyaXRlQnVzRXZlbnQuYmluZCh0aGlzKSk7CisKKyAgICB0aGlzLm1vZGVsXyA9IGltcG9ydGVyLm1vZGVsXzsKKyAgICB0aGlzLnBwaWRzXyA9IHt9OworICB9CisKKyAgQnVzUGFyc2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCisKKyAgICB0cmFjZU1hcmtXcml0ZUJ1c0V2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UsIHRocmVhZE5hbWUpIHsKKyAgICAgIHZhciByZSA9IG5ldyBSZWdFeHAoJ2J1cz0oXFxTKykgcndfYnl0ZXM9KFxcZCspIHJfYnl0ZXM9KFxcZCspICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3X2J5dGVzPShcXGQrKSBjeWNsZXM9KFxcZCspIG5zPShcXGQrKScpOworICAgICAgdmFyIGV2ZW50ID0gcmUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisKKyAgICAgIHZhciBuYW1lID0gZXZlbnRbMV07CisgICAgICB2YXIgcndfYnl0ZXMgPSBwYXJzZUludChldmVudFsyXSk7CisgICAgICB2YXIgcl9ieXRlcyA9IHBhcnNlSW50KGV2ZW50WzNdKTsKKyAgICAgIHZhciB3X2J5dGVzID0gcGFyc2VJbnQoZXZlbnRbNF0pOworICAgICAgdmFyIGN5Y2xlcyA9IHBhcnNlSW50KGV2ZW50WzVdKTsKKyAgICAgIHZhciBucyA9IHBhcnNlSW50KGV2ZW50WzZdKTsKKworICAgICAgLy8gQlcgaW4gTUIvcworICAgICAgdmFyIHJfYncgPSByX2J5dGVzICogMTAwMDAwMDAwMCAvIG5zOworICAgICAgcl9idyAvPSAxMDI0ICogMTAyNDsKKyAgICAgIHZhciB3X2J3ID0gd19ieXRlcyAqIDEwMDAwMDAwMDAgLyBuczsKKyAgICAgIHdfYncgLz0gMTAyNCAqIDEwMjQ7CisKKyAgICAgIHZhciBjdHIgPSB0aGlzLm1vZGVsXy5rZXJuZWwKKyAgICAgICAgICAgICAgLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCAnYnVzICcgKyBuYW1lICsgJyByZWFkJyk7CisgICAgICBpZiAoY3RyLm51bVNlcmllcyA9PT0gMCkgeworICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZScsCisgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKKyAgICAgICAgICAgICAgICBjdHIubmFtZSArICcuJyArICd2YWx1ZScpKSk7CisgICAgICB9CisgICAgICBjdHIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7CisgICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCByX2J3KTsKKyAgICAgIH0pOworCisgICAgICBjdHIgPSB0aGlzLm1vZGVsXy5rZXJuZWwKKyAgICAgICAgICAgICAgLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCAnYnVzICcgKyBuYW1lICsgJyB3cml0ZScpOworICAgICAgaWYgKGN0ci5udW1TZXJpZXMgPT09IDApIHsKKyAgICAgICAgY3RyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygndmFsdWUnLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCisgICAgICAgICAgICAgICAgY3RyLm5hbWUgKyAnLicgKyAndmFsdWUnKSkpOworICAgICAgfQorICAgICAgY3RyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgeworICAgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cywgcl9idyk7CisgICAgICB9KTsKKworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9OworCisgIFBhcnNlci5yZWdpc3RlcihCdXNQYXJzZXIpOworCisgIHJldHVybiB7CisgICAgQnVzUGFyc2VyOiBCdXNQYXJzZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2J1c19wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9idXNfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9idXNfcGFyc2VyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9idXNfcGFyc2VyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9jbG9ja19wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY2xvY2tfcGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNhNmZiOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY2xvY2tfcGFyc2VyLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFBhcnNlcyB0cmFjZV9tYXJrZXIgZXZlbnRzIHRoYXQgd2VyZSBpbnNlcnRlZCBpbiB0aGUgdHJhY2UgYnkKKyAqIHVzZXJsYW5kLgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLyoqCisgICAqIFBhcnNlcyBsaW51eCB0cmFjZSBtYXJrIGV2ZW50cyB0aGF0IHdlcmUgaW5zZXJ0ZWQgaW4gdGhlIHRyYWNlIGJ5IHVzZXJsYW5kLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIENsb2NrUGFyc2VyKGltcG9ydGVyKSB7CisgICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOworCisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2Nsb2NrX3NldF9yYXRlJywKKyAgICAgICAgQ2xvY2tQYXJzZXIucHJvdG90eXBlLnRyYWNlTWFya1dyaXRlQ2xvY2tFdmVudC5iaW5kKHRoaXMpKTsKKworICAgIHRoaXMubW9kZWxfID0gaW1wb3J0ZXIubW9kZWxfOworICAgIHRoaXMucHBpZHNfID0ge307CisgIH0KKworICBDbG9ja1BhcnNlci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAorCisgICAgdHJhY2VNYXJrV3JpdGVDbG9ja0V2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSwgdGhyZWFkTmFtZSkgeworICAgICAgdmFyIGV2ZW50ID0gLyhcUyspIHN0YXRlPShcZCspIGNwdV9pZD0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisKKworICAgICAgdmFyIG5hbWUgPSBldmVudFsxXTsKKyAgICAgIHZhciByYXRlID0gcGFyc2VJbnQoZXZlbnRbMl0pOworCisgICAgICB2YXIgY3RyID0gdGhpcy5tb2RlbF8ua2VybmVsCisgICAgICAgICAgICAgIC5nZXRPckNyZWF0ZUNvdW50ZXIobnVsbCwgbmFtZSk7CisgICAgICAvLyBJbml0aWFsaXplIHRoZSBjb3VudGVyJ3Mgc2VyaWVzIGZpZWxkcyBpZiBuZWVkZWQuCisgICAgICBpZiAoY3RyLm51bVNlcmllcyA9PT0gMCkgeworICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZScsCisgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKKyAgICAgICAgICAgICAgICBjdHIubmFtZSArICcuJyArICd2YWx1ZScpKSk7CisgICAgICB9CisgICAgICBjdHIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7CisgICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCByYXRlKTsKKyAgICAgIH0pOworCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKENsb2NrUGFyc2VyKTsKKworICByZXR1cm4geworICAgIENsb2NrUGFyc2VyOiBDbG9ja1BhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY2xvY2tfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY2xvY2tfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9jbG9ja19wYXJzZXJfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Nsb2NrX3BhcnNlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDY4MTBkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9jcHVmcmVxX3BhcnNlci5odG1sCkBAIC0wLDAgKzEsMTE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQYXJzZXMgY3B1ZnJlcSBldmVudHMgaW4gdGhlIExpbnV4IGV2ZW50IHRyYWNlIGZvcm1hdC4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsIGZ1bmN0aW9uKCkgeworCisgIHZhciBQYXJzZXIgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyOworCisgIC8qKgorICAgKiBQYXJzZXMgbGludXggY3B1ZnJlcSB0cmFjZSBldmVudHMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ3B1ZnJlcVBhcnNlcihpbXBvcnRlcikgeworICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKKworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX3VwJywKKyAgICAgICAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVVwRG93bkV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX2Rvd24nLAorICAgICAgICBDcHVmcmVxUGFyc2VyLnByb3RvdHlwZS5jcHVmcmVxVXBEb3duRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdWZyZXFfaW50ZXJhY3RpdmVfYWxyZWFkeScsCisgICAgICAgIENwdWZyZXFQYXJzZXIucHJvdG90eXBlLmNwdWZyZXFUYXJnZXRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignY3B1ZnJlcV9pbnRlcmFjdGl2ZV9ub3R5ZXQnLAorICAgICAgICBDcHVmcmVxUGFyc2VyLnByb3RvdHlwZS5jcHVmcmVxVGFyZ2V0RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdWZyZXFfaW50ZXJhY3RpdmVfc2V0c3BlZWQnLAorICAgICAgICBDcHVmcmVxUGFyc2VyLnByb3RvdHlwZS5jcHVmcmVxVGFyZ2V0RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdWZyZXFfaW50ZXJhY3RpdmVfdGFyZ2V0JywKKyAgICAgICAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcVRhcmdldEV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX2Jvb3N0JywKKyAgICAgICAgQ3B1ZnJlcVBhcnNlci5wcm90b3R5cGUuY3B1ZnJlcUJvb3N0VW5ib29zdEV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdjcHVmcmVxX2ludGVyYWN0aXZlX3VuYm9vc3QnLAorICAgICAgICBDcHVmcmVxUGFyc2VyLnByb3RvdHlwZS5jcHVmcmVxQm9vc3RVbmJvb3N0RXZlbnQuYmluZCh0aGlzKSk7CisgIH0KKworICBmdW5jdGlvbiBzcGxpdERhdGEoaW5wdXQpIHsKKyAgICAvLyBUT0RPKHNsZWZmbGVyKSBzcGxpdCBieSBjcHUKKyAgICB2YXIgZGF0YSA9IHt9OworICAgIHZhciBhcmdzID0gaW5wdXQuc3BsaXQoL1xzKy8pOworICAgIHZhciBsZW4gPSBhcmdzLmxlbmd0aDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICB2YXIgaXRlbSA9IGFyZ3NbaV0uc3BsaXQoJz0nKTsKKyAgICAgIGRhdGFbaXRlbVswXV0gPSBwYXJzZUludChpdGVtWzFdKTsKKyAgICB9CisgICAgcmV0dXJuIGRhdGE7CisgIH0KKworICBDcHVmcmVxUGFyc2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCisKKyAgICBjcHVmcmVxU2xpY2U6IGZ1bmN0aW9uKHRzLCBldmVudE5hbWUsIGNwdSwgYXJncykgeworICAgICAgLy8gVE9ETyhzbGVmZmxlcikgc2hvdWxkIGJlIHBlci1jcHUKKyAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnY3B1ZnJlcScpOworICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBldmVudE5hbWU7CisgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKKyAgICAgICAgICB0cywgYXJncywgMCk7CisKKyAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICB9LAorCisgICAgY3B1ZnJlcUJvb3N0U2xpY2U6IGZ1bmN0aW9uKHRzLCBldmVudE5hbWUsIGFyZ3MpIHsKKyAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnY3B1ZnJlcV9ib29zdCcpOworICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBldmVudE5hbWU7CisgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKKyAgICAgICAgICB0cywgYXJncywgMCk7CisKKyAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUGFyc2VzIGNwdWZyZXEgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KKyAgICAgKi8KKyAgICBjcHVmcmVxVXBEb3duRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBkYXRhID0gc3BsaXREYXRhKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIHRoaXMuY3B1ZnJlcVNsaWNlKHRzLCBldmVudE5hbWUsIGRhdGEuY3B1LCBkYXRhKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBjcHVmcmVxVGFyZ2V0RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZGF0YSA9IHNwbGl0RGF0YShldmVudEJhc2UuZGV0YWlscyk7CisgICAgICB0aGlzLmNwdWZyZXFTbGljZSh0cywgZXZlbnROYW1lLCBkYXRhLmNwdSwgZGF0YSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgY3B1ZnJlcUJvb3N0VW5ib29zdEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgeworICAgICAgdGhpcy5jcHVmcmVxQm9vc3RTbGljZSh0cywgZXZlbnROYW1lLAorICAgICAgICAgIHsKKyAgICAgICAgICAgIHR5cGU6IGV2ZW50QmFzZS5kZXRhaWxzCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKENwdWZyZXFQYXJzZXIpOworCisgIHJldHVybiB7CisgICAgQ3B1ZnJlcVBhcnNlcjogQ3B1ZnJlcVBhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9jcHVmcmVxX3BhcnNlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2NwdWZyZXFfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9jcHVmcmVxX3BhcnNlcl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Rpc2tfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Rpc2tfcGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgwMjljNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZGlza19wYXJzZXIuaHRtbApAQCAtMCwwICsxLDMxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGZpbGVzeXN0ZW0gYW5kIGJsb2NrIGRldmljZSBldmVudHMgaW4gdGhlIExpbnV4IGV2ZW50CisgKiB0cmFjZSBmb3JtYXQuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKKworICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKKworICAvKioKKyAgICogUGFyc2VzIGxpbnV4IGZpbGVzeXN0ZW0gYW5kIGJsb2NrIGRldmljZSB0cmFjZSBldmVudHMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gRGlza1BhcnNlcihpbXBvcnRlcikgeworICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKKworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3dyaXRlX2JlZ2luJywKKyAgICAgICAgRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1dyaXRlQmVnaW5FdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZjJmc193cml0ZV9lbmQnLAorICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5mMmZzV3JpdGVFbmRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignZjJmc19zeW5jX2ZpbGVfZW50ZXInLAorICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5mMmZzU3luY0ZpbGVFbnRlckV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdmMmZzX3N5bmNfZmlsZV9leGl0JywKKyAgICAgICAgRGlza1BhcnNlci5wcm90b3R5cGUuZjJmc1N5bmNGaWxlRXhpdEV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X3N5bmNfZmlsZV9lbnRlcicsCisgICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmV4dDRTeW5jRmlsZUVudGVyRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4dDRfc3luY19maWxlX2V4aXQnLAorICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0U3luY0ZpbGVFeGl0RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4dDRfZGFfd3JpdGVfYmVnaW4nLAorICAgICAgICBEaXNrUGFyc2VyLnByb3RvdHlwZS5leHQ0V3JpdGVCZWdpbkV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHQ0X2RhX3dyaXRlX2VuZCcsCisgICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmV4dDRXcml0ZUVuZEV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdibG9ja19ycV9pc3N1ZScsCisgICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmJsb2NrUnFJc3N1ZUV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdibG9ja19ycV9jb21wbGV0ZScsCisgICAgICAgIERpc2tQYXJzZXIucHJvdG90eXBlLmJsb2NrUnFDb21wbGV0ZUV2ZW50LmJpbmQodGhpcykpOworICB9CisKKyAgRGlza1BhcnNlci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAorCisgICAgb3BlbkFzeW5jU2xpY2U6IGZ1bmN0aW9uKHRzLCBjYXRlZ29yeSwgdGhyZWFkTmFtZSwgcGlkLCBrZXksIG5hbWUpIHsKKyAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKKyAgICAgICAgICBjYXRlZ29yeSArICc6JyArIHRocmVhZE5hbWUsIHBpZCk7CisgICAgICB2YXIgYXN5bmNTbGljZUNvbnN0cnVjdG9yID0KKyAgICAgICAgIHRyLm1vZGVsLkFzeW5jU2xpY2UuZ2V0Q29uc3RydWN0b3IoCisgICAgICAgICAgICBjYXRlZ29yeSwgbmFtZSk7CisgICAgICB2YXIgc2xpY2UgPSBuZXcgYXN5bmNTbGljZUNvbnN0cnVjdG9yKAorICAgICAgICAgIGNhdGVnb3J5LCBuYW1lLAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKG5hbWUpLAorICAgICAgICAgIHRzKTsKKyAgICAgIHNsaWNlLnN0YXJ0VGhyZWFkID0ga3RocmVhZC50aHJlYWQ7CisKKyAgICAgIGlmICgha3RocmVhZC5vcGVuQXN5bmNTbGljZXMpIHsKKyAgICAgICAga3RocmVhZC5vcGVuQXN5bmNTbGljZXMgPSB7IH07CisgICAgICB9CisgICAgICBrdGhyZWFkLm9wZW5Bc3luY1NsaWNlc1trZXldID0gc2xpY2U7CisgICAgfSwKKworICAgIGNsb3NlQXN5bmNTbGljZTogZnVuY3Rpb24odHMsIGNhdGVnb3J5LCB0aHJlYWROYW1lLCBwaWQsIGtleSwgYXJncykgeworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKAorICAgICAgICAgIGNhdGVnb3J5ICsgJzonICsgdGhyZWFkTmFtZSwgcGlkKTsKKyAgICAgIGlmIChrdGhyZWFkLm9wZW5Bc3luY1NsaWNlcykgeworICAgICAgICB2YXIgc2xpY2UgPSBrdGhyZWFkLm9wZW5Bc3luY1NsaWNlc1trZXldOworICAgICAgICBpZiAoc2xpY2UpIHsKKyAgICAgICAgICBzbGljZS5kdXJhdGlvbiA9IHRzIC0gc2xpY2Uuc3RhcnQ7CisgICAgICAgICAgc2xpY2UuYXJncyA9IGFyZ3M7CisgICAgICAgICAgc2xpY2UuZW5kVGhyZWFkID0ga3RocmVhZC50aHJlYWQ7CisgICAgICAgICAgc2xpY2Uuc3ViU2xpY2VzID0gWworICAgICAgICAgICAgbmV3IHRyLm1vZGVsLkFzeW5jU2xpY2UoY2F0ZWdvcnksIHNsaWNlLnRpdGxlLAorICAgICAgICAgICAgICAgIHNsaWNlLmNvbG9ySWQsIHNsaWNlLnN0YXJ0LCBzbGljZS5hcmdzLCBzbGljZS5kdXJhdGlvbikKKyAgICAgICAgICBdOworICAgICAgICAgIGt0aHJlYWQudGhyZWFkLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKKyAgICAgICAgICBkZWxldGUga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KKyAgICAgKi8KKyAgICBmMmZzV3JpdGVCZWdpbkV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvZGV2ID0gXCgoXGQrLFxkKylcKSwgaW5vID0gKFxkKyksIHBvcyA9IChcZCspLCBsZW4gPSAoXGQrKSwgZmxhZ3MgPSAoXGQrKS8uIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAgICAgZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07CisgICAgICB2YXIgaW5vZGUgPSBwYXJzZUludChldmVudFsyXSk7CisgICAgICB2YXIgcG9zID0gcGFyc2VJbnQoZXZlbnRbM10pOworICAgICAgdmFyIGxlbiA9IHBhcnNlSW50KGV2ZW50WzRdKTsKKyAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZSArICctJyArIHBvcyArICctJyArIGxlbjsKKyAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2UodHMsICdmMmZzJywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCisgICAgICAgICAga2V5LCAnZjJmc193cml0ZScpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGYyZnNXcml0ZUVuZEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvZGV2ID0gXCgoXGQrLFxkKylcKSwgaW5vID0gKFxkKyksIHBvcyA9IChcZCspLCBsZW4gPSAoXGQrKSwgY29waWVkID0gKFxkKykvLiAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICAgIGV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07CisgICAgICB2YXIgaW5vZGUgPSBwYXJzZUludChldmVudFsyXSk7CisgICAgICB2YXIgcG9zID0gcGFyc2VJbnQoZXZlbnRbM10pOworICAgICAgdmFyIGxlbiA9IHBhcnNlSW50KGV2ZW50WzRdKTsKKyAgICAgIHZhciBlcnJvciA9IHBhcnNlSW50KGV2ZW50WzVdKSAhPT0gbGVuOworICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIGlub2RlICsgJy0nICsgcG9zICsgJy0nICsgbGVuOworICAgICAgdGhpcy5jbG9zZUFzeW5jU2xpY2UodHMsICdmMmZzJywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCisgICAgICAgICAga2V5LCB7CisgICAgICAgICAgICBkZXZpY2U6IGRldmljZSwKKyAgICAgICAgICAgIGlub2RlOiBpbm9kZSwKKyAgICAgICAgICAgIGVycm9yOiBlcnJvcgorICAgICAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGV4dDRXcml0ZUJlZ2luRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IC9kZXYgKFxkKyxcZCspIGlubyAoXGQrKSBwb3MgKFxkKykgbGVuIChcZCspIGZsYWdzIChcZCspLy4KKyAgICAgICAgICBleGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKKyAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHZhciBwb3MgPSBwYXJzZUludChldmVudFszXSk7CisgICAgICB2YXIgbGVuID0gcGFyc2VJbnQoZXZlbnRbNF0pOworICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIGlub2RlICsgJy0nICsgcG9zICsgJy0nICsgbGVuOworICAgICAgdGhpcy5vcGVuQXN5bmNTbGljZSh0cywgJ2V4dDQnLCBldmVudEJhc2UudGhyZWFkTmFtZSwgZXZlbnRCYXNlLnBpZCwKKyAgICAgICAgICBrZXksICdleHQ0X3dyaXRlJyk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZXh0NFdyaXRlRW5kRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IC9kZXYgKFxkKyxcZCspIGlubyAoXGQrKSBwb3MgKFxkKykgbGVuIChcZCspIGNvcGllZCAoXGQrKS8uCisgICAgICAgICAgZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKKyAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHZhciBwb3MgPSBwYXJzZUludChldmVudFszXSk7CisgICAgICB2YXIgbGVuID0gcGFyc2VJbnQoZXZlbnRbNF0pOworICAgICAgdmFyIGVycm9yID0gcGFyc2VJbnQoZXZlbnRbNV0pICE9PSBsZW47CisgICAgICB2YXIga2V5ID0gZGV2aWNlICsgJy0nICsgaW5vZGUgKyAnLScgKyBwb3MgKyAnLScgKyBsZW47CisgICAgICB0aGlzLmNsb3NlQXN5bmNTbGljZSh0cywgJ2V4dDQnLCBldmVudEJhc2UudGhyZWFkTmFtZSwgZXZlbnRCYXNlLnBpZCwKKyAgICAgICAgICBrZXksIHsKKyAgICAgICAgICAgIGRldmljZTogZGV2aWNlLAorICAgICAgICAgICAgaW5vZGU6IGlub2RlLAorICAgICAgICAgICAgZXJyb3I6IGVycm9yCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZjJmc1N5bmNGaWxlRW50ZXJFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgKKyAgICAgICAgICAnZGV2ID0gXFwoKFxcZCssXFxkKylcXCksIGlubyA9IChcXGQrKSwgcGlubyA9IChcXGQrKSwgaV9tb2RlID0gKFxcUyspLCAnICsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgICAnaV9zaXplID0gKFxcZCspLCBpX25saW5rID0gKFxcZCspLCBpX2Jsb2NrcyA9IChcXGQrKSwgaV9hZHZpc2UgPSAoXFxkKyknKS4gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgICBleGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGRldmljZSA9IGV2ZW50WzFdOworICAgICAgdmFyIGlub2RlID0gcGFyc2VJbnQoZXZlbnRbMl0pOworICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIGlub2RlOworICAgICAgdGhpcy5vcGVuQXN5bmNTbGljZSh0cywgJ2YyZnMnLCBldmVudEJhc2UudGhyZWFkTmFtZSwgZXZlbnRCYXNlLnBpZCwKKyAgICAgICAgICBrZXksICdmc3luYycpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGYyZnNTeW5jRmlsZUV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgnZGV2ID0gXFwoKFxcZCssXFxkKylcXCksIGlubyA9IChcXGQrKSwgY2hlY2twb2ludCBpcyAoXFxTKyksICcgKyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICAgICdkYXRhc3luYyA9IChcXGQrKSwgcmV0ID0gKFxcZCspJykuCisgICAgICAgICAgZXhlYyhldmVudEJhc2UuZGV0YWlscy5yZXBsYWNlKCdub3QgbmVlZGVkJywgJ25vdF9uZWVkZWQnKSk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKKyAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHZhciBlcnJvciA9IHBhcnNlSW50KGV2ZW50WzVdKTsKKyAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZTsKKyAgICAgIHRoaXMuY2xvc2VBc3luY1NsaWNlKHRzLCAnZjJmcycsIGV2ZW50QmFzZS50aHJlYWROYW1lLCBldmVudEJhc2UucGlkLAorICAgICAgICAgIGtleSwgeworICAgICAgICAgICAgZGV2aWNlOiBkZXZpY2UsCisgICAgICAgICAgICBpbm9kZTogaW5vZGUsCisgICAgICAgICAgICBlcnJvcjogZXJyb3IKKyAgICAgICAgICB9KTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBleHQ0U3luY0ZpbGVFbnRlckV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvZGV2IChcZCssXGQrKSBpbm8gKFxkKykgcGFyZW50IChcZCspIGRhdGFzeW5jIChcZCspLy4KKyAgICAgICAgICBleGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGRldmljZSA9IGV2ZW50WzFdOworICAgICAgdmFyIGlub2RlID0gcGFyc2VJbnQoZXZlbnRbMl0pOworICAgICAgdmFyIGRhdGFzeW5jID0gZXZlbnRbNF0gPT0gMTsKKyAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZTsKKyAgICAgIHZhciBhY3Rpb24gPSBkYXRhc3luYyA/ICdmZGF0YXN5bmMnIDogJ2ZzeW5jJzsKKyAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2UodHMsICdleHQ0JywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCisgICAgICAgICAga2V5LCBhY3Rpb24pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGV4dDRTeW5jRmlsZUV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL2RldiAoXGQrLFxkKykgaW5vIChcZCspIHJldCAoXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBkZXZpY2UgPSBldmVudFsxXTsKKyAgICAgIHZhciBpbm9kZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHZhciBlcnJvciA9IHBhcnNlSW50KGV2ZW50WzNdKTsKKyAgICAgIHZhciBrZXkgPSBkZXZpY2UgKyAnLScgKyBpbm9kZTsKKyAgICAgIHRoaXMuY2xvc2VBc3luY1NsaWNlKHRzLCAnZXh0NCcsIGV2ZW50QmFzZS50aHJlYWROYW1lLCBldmVudEJhc2UucGlkLAorICAgICAgICAgIGtleSwgeworICAgICAgICAgICAgZGV2aWNlOiBkZXZpY2UsCisgICAgICAgICAgICBpbm9kZTogaW5vZGUsCisgICAgICAgICAgICBlcnJvcjogZXJyb3IKKyAgICAgICAgICB9KTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBibG9ja1JxSXNzdWVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgnKFxcZCssXFxkKykgKEYpPyhbRFdSTl0pKEYpPyhBKT8oUyk/KE0pPyAnICsKKyAgICAgICAgICAnXFxkKyBcXCguKlxcKSAoXFxkKykgXFwrIChcXGQrKSBcXFsuKlxcXScpLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgYWN0aW9uOworICAgICAgc3dpdGNoIChldmVudFszXSkgeworICAgICAgICBjYXNlICdEJzoKKyAgICAgICAgICBhY3Rpb24gPSAnZGlzY2FyZCc7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ1cnOgorICAgICAgICAgIGFjdGlvbiA9ICd3cml0ZSc7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgIGFjdGlvbiA9ICdyZWFkJzsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnTic6CisgICAgICAgICAgYWN0aW9uID0gJ25vbmUnOworICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIGFjdGlvbiA9ICd1bmtub3duJzsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgaWYgKGV2ZW50WzJdKSB7CisgICAgICAgIGFjdGlvbiArPSAnIGZsdXNoJzsKKyAgICAgIH0KKyAgICAgIGlmIChldmVudFs0XSA9PSAnRicpIHsKKyAgICAgICAgYWN0aW9uICs9ICcgZnVhJzsKKyAgICAgIH0KKyAgICAgIGlmIChldmVudFs1XSA9PSAnQScpIHsKKyAgICAgICAgYWN0aW9uICs9ICcgYWhlYWQnOworICAgICAgfQorICAgICAgaWYgKGV2ZW50WzZdID09ICdTJykgeworICAgICAgICBhY3Rpb24gKz0gJyBzeW5jJzsKKyAgICAgIH0KKyAgICAgIGlmIChldmVudFs3XSA9PSAnTScpIHsKKyAgICAgICAgYWN0aW9uICs9ICcgbWV0YSc7CisgICAgICB9CisgICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07CisgICAgICB2YXIgc2VjdG9yID0gcGFyc2VJbnQoZXZlbnRbOF0pOworICAgICAgdmFyIG51bVNlY3RvcnMgPSBwYXJzZUludChldmVudFs5XSk7CisgICAgICB2YXIga2V5ID0gZGV2aWNlICsgJy0nICsgc2VjdG9yICsgJy0nICsgbnVtU2VjdG9yczsKKyAgICAgIHRoaXMub3BlbkFzeW5jU2xpY2UodHMsICdibG9jaycsIGV2ZW50QmFzZS50aHJlYWROYW1lLCBldmVudEJhc2UucGlkLAorICAgICAgICAgIGtleSwgYWN0aW9uKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBibG9ja1JxQ29tcGxldGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlZ0V4cCgnKFxcZCssXFxkKykgKEYpPyhbRFdSTl0pKEYpPyhBKT8oUyk/KE0pPyAnICsKKyAgICAgICAgICAnXFwoLipcXCkgKFxcZCspIFxcKyAoXFxkKykgXFxbKC4qKVxcXScpLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgZGV2aWNlID0gZXZlbnRbMV07CisgICAgICB2YXIgc2VjdG9yID0gcGFyc2VJbnQoZXZlbnRbOF0pOworICAgICAgdmFyIG51bVNlY3RvcnMgPSBwYXJzZUludChldmVudFs5XSk7CisgICAgICB2YXIgZXJyb3IgPSBwYXJzZUludChldmVudFsxMF0pOworICAgICAgdmFyIGtleSA9IGRldmljZSArICctJyArIHNlY3RvciArICctJyArIG51bVNlY3RvcnM7CisgICAgICB0aGlzLmNsb3NlQXN5bmNTbGljZSh0cywgJ2Jsb2NrJywgZXZlbnRCYXNlLnRocmVhZE5hbWUsIGV2ZW50QmFzZS5waWQsCisgICAgICAgICAga2V5LCB7CisgICAgICAgICAgICBkZXZpY2U6IGRldmljZSwKKyAgICAgICAgICAgIHNlY3Rvcjogc2VjdG9yLAorICAgICAgICAgICAgbnVtU2VjdG9yczogbnVtU2VjdG9ycywKKyAgICAgICAgICAgIGVycm9yOiBlcnJvcgorICAgICAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9OworCisgIFBhcnNlci5yZWdpc3RlcihEaXNrUGFyc2VyKTsKKworICByZXR1cm4geworICAgIERpc2tQYXJzZXI6IERpc2tQYXJzZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Rpc2tfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZGlza19wYXJzZXJfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Rpc2tfcGFyc2VyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9kaXNrX3BhcnNlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZHJtX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9kcm1fcGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZhOTk0NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZHJtX3BhcnNlci5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFBhcnNlcyBkcm0gZHJpdmVyIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLyoqCisgICAqIFBhcnNlcyBsaW51eCBkcm0gdHJhY2UgZXZlbnRzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIERybVBhcnNlcihpbXBvcnRlcikgeworICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKKworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdkcm1fdmJsYW5rX2V2ZW50JywKKyAgICAgICAgRHJtUGFyc2VyLnByb3RvdHlwZS52YmxhbmtFdmVudC5iaW5kKHRoaXMpKTsKKyAgfQorCisgIERybVBhcnNlci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAorCisgICAgZHJtVmJsYW5rU2xpY2U6IGZ1bmN0aW9uKHRzLCBldmVudE5hbWUsIGFyZ3MpIHsKKyAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnZHJtX3ZibGFuaycpOworICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBldmVudE5hbWU7CisgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKKyAgICAgICAgICB0cywgYXJncywgMCk7CisKKyAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUGFyc2VzIGRybSBkcml2ZXIgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KKyAgICAgKi8KKyAgICB2YmxhbmtFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL2NydGM9KFxkKyksIHNlcT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBjcnRjID0gcGFyc2VJbnQoZXZlbnRbMV0pOworICAgICAgdmFyIHNlcSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHRoaXMuZHJtVmJsYW5rU2xpY2UodHMsICd2Ymxhbms6JyArIGNydGMsCisgICAgICAgICAgeworICAgICAgICAgICAgY3J0YzogY3J0YywKKyAgICAgICAgICAgIHNlcTogc2VxCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKERybVBhcnNlcik7CisKKyAgcmV0dXJuIHsKKyAgICBEcm1QYXJzZXI6IERybVBhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9kcm1fcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZHJtX3BhcnNlcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZHJtX3BhcnNlcl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZHJtX3BhcnNlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZXh5bm9zX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9leHlub3NfcGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcxNzQyOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZXh5bm9zX3BhcnNlci5odG1sCkBAIC0wLDAgKzEsMTI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQYXJzZXMgZXh5bm9zIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLyoqCisgICAqIFBhcnNlcyBsaW51eCBleHlub3MgdHJhY2UgZXZlbnRzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEV4eW5vc1BhcnNlcihpbXBvcnRlcikgeworICAgIFBhcnNlci5jYWxsKHRoaXMsIGltcG9ydGVyKTsKKworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHlub3NfYnVzZnJlcV90YXJnZXRfaW50JywKKyAgICAgICAgRXh5bm9zUGFyc2VyLnByb3RvdHlwZS5idXNmcmVxVGFyZ2V0SW50RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2V4eW5vc19idXNmcmVxX3RhcmdldF9taWYnLAorICAgICAgICBFeHlub3NQYXJzZXIucHJvdG90eXBlLmJ1c2ZyZXFUYXJnZXRNaWZFdmVudC5iaW5kKHRoaXMpKTsKKworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdleHlub3NfcGFnZV9mbGlwX3N0YXRlJywKKyAgICAgICAgRXh5bm9zUGFyc2VyLnByb3RvdHlwZS5wYWdlRmxpcFN0YXRlRXZlbnQuYmluZCh0aGlzKSk7CisgIH0KKworICBFeHlub3NQYXJzZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKKworICAgIGV4eW5vc0J1c2ZyZXFTYW1wbGU6IGZ1bmN0aW9uKG5hbWUsIHRzLCBmcmVxdWVuY3kpIHsKKyAgICAgIHZhciB0YXJnZXRDcHUgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KDApOworICAgICAgdmFyIGNvdW50ZXIgPSB0YXJnZXRDcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCBuYW1lKTsKKyAgICAgIGlmIChjb3VudGVyLm51bVNlcmllcyA9PT0gMCkgeworICAgICAgICBjb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnZnJlcXVlbmN5JywKKyAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKAorICAgICAgICAgICAgICAgIGNvdW50ZXIubmFtZSArICcuJyArICdmcmVxdWVuY3knKSkpOworICAgICAgfQorICAgICAgY291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIGZyZXF1ZW5jeSk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUGFyc2VzIGV4eW5vc19idXNmcmVxX3RhcmdldF9pbnQgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlLgorICAgICAqLworICAgIGJ1c2ZyZXFUYXJnZXRJbnRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL2ZyZXF1ZW5jeT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHRoaXMuZXh5bm9zQnVzZnJlcVNhbXBsZSgnSU5UIEZyZXF1ZW5jeScsIHRzLCBwYXJzZUludChldmVudFsxXSkpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFBhcnNlcyBleHlub3NfYnVzZnJlcV90YXJnZXRfbWlmIGV2ZW50cyBhbmQgc2V0cyB1cCBzdGF0ZS4KKyAgICAgKi8KKyAgICBidXNmcmVxVGFyZ2V0TWlmRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IC9mcmVxdWVuY3k9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB0aGlzLmV4eW5vc0J1c2ZyZXFTYW1wbGUoJ01JRiBGcmVxdWVuY3knLCB0cywgcGFyc2VJbnQoZXZlbnRbMV0pKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBleHlub3NQYWdlRmxpcFN0YXRlT3BlblNsaWNlOiBmdW5jdGlvbih0cywgcGlwZSwgZmIsIHN0YXRlKSB7CisgICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoCisgICAgICAgICAgJ2V4eW5vc19mbGlwX3N0YXRlIChwaXBlOicgKyBwaXBlICsgJywgZmI6JyArIGZiICsgJyknKTsKKyAgICAgIGt0aHJlYWQub3BlblNsaWNlVFMgPSB0czsKKyAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gc3RhdGU7CisgICAgfSwKKworICAgIGV4eW5vc1BhZ2VGbGlwU3RhdGVDbG9zZVNsaWNlOiBmdW5jdGlvbih0cywgcGlwZSwgZmIsIGFyZ3MpIHsKKyAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgKKyAgICAgICAgICAnZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6JyArIHBpcGUgKyAnLCBmYjonICsgZmIgKyAnKScpOworICAgICAgaWYgKGt0aHJlYWQub3BlblNsaWNlKSB7CisgICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgnJywga3RocmVhZC5vcGVuU2xpY2UsCisgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhrdGhyZWFkLm9wZW5TbGljZSksCisgICAgICAgICAgICBrdGhyZWFkLm9wZW5TbGljZVRTLAorICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAgIHRzIC0ga3RocmVhZC5vcGVuU2xpY2VUUyk7CisgICAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICAgIH0KKyAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgcGFnZV9mbGlwX3N0YXRlIGV2ZW50cyBhbmQgc2V0cyB1cCBzdGF0ZSBpbiB0aGUgaW1wb3J0ZXIuCisgICAgICovCisgICAgcGFnZUZsaXBTdGF0ZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvcGlwZT0oXGQrKSwgZmI9KFxkKyksIHN0YXRlPSguKikvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgcGlwZSA9IHBhcnNlSW50KGV2ZW50WzFdKTsKKyAgICAgIHZhciBmYiA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHZhciBzdGF0ZSA9IGV2ZW50WzNdOworCisgICAgICB0aGlzLmV4eW5vc1BhZ2VGbGlwU3RhdGVDbG9zZVNsaWNlKHRzLCBwaXBlLCBmYiwKKyAgICAgICAgICB7CisgICAgICAgICAgICBwaXBlOiBwaXBlLAorICAgICAgICAgICAgZmI6IGZiCisgICAgICAgICAgfSk7CisgICAgICBpZiAoc3RhdGUgIT09ICdmbGlwcGVkJykKKyAgICAgICAgdGhpcy5leHlub3NQYWdlRmxpcFN0YXRlT3BlblNsaWNlKHRzLCBwaXBlLCBmYiwgc3RhdGUpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9OworCisgIFBhcnNlci5yZWdpc3RlcihFeHlub3NQYXJzZXIpOworCisgIHJldHVybiB7CisgICAgRXh5bm9zUGFyc2VyOiBFeHlub3NQYXJzZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZXh5bm9zX3BhcnNlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2V4eW5vc19wYXJzZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MTczNWUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2V4eW5vc19wYXJzZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2V4eW5vc0J1c2ZyZXFJbXBvcnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnICAgICBrd29ya2VyLzE6MC00MTc3ICBbMDAxXSAuLi4uICAyODAzLjEyOTgwNjogJyArCisgICAgICAgICAgJ2V4eW5vc19idXNmcmVxX3RhcmdldF9pbnQ6IGZyZXF1ZW5jeT0yMDAwMDAnLAorICAgICAgJyAgICAga3dvcmtlci8xOjAtNDE3NyAgWzAwMV0gLi4uLiAgMjgwMy4yMjkyMDc6ICcgKworICAgICAgICAgICdleHlub3NfYnVzZnJlcV90YXJnZXRfaW50OiBmcmVxdWVuY3k9MjY3MDAwJywKKyAgICAgICcgICAgIGt3b3JrZXIvMTowLTQxNzcgIFswMDFdIC4uLi4gIDI4MDMuMzI5MDMxOiAnICsKKyAgICAgICAgICAnZXh5bm9zX2J1c2ZyZXFfdGFyZ2V0X2ludDogZnJlcXVlbmN5PTE2MDAwMCcsCisgICAgICAnICAgICBrd29ya2VyLzE6MC00MTc3ICBbMDAxXSAuLi4uICAyODA1LjcyOTAzOTogJyArCisgICAgICAgICAgJ2V4eW5vc19idXNmcmVxX3RhcmdldF9taWY6IGZyZXF1ZW5jeT0yMDAwMDAnCisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisKKyAgICB2YXIgYzAgPSBtLmtlcm5lbC5jcHVzWzBdOworICAgIGFzc2VydC5lcXVhbChjMC5zbGljZXMubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYzAuY291bnRlcnNbJy5JTlQgRnJlcXVlbmN5J10uc2VyaWVzWzBdLnNhbXBsZXMubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwoYzAuY291bnRlcnNbJy5NSUYgRnJlcXVlbmN5J10uc2VyaWVzWzBdLnNhbXBsZXMubGVuZ3RoLCAxKTsKKyAgfSk7CisKKyAgdGVzdCgnZXh5bm9zUGFnZUZsaXBTbG93UmVxdWVzdEltcG9ydCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDBdIGQuaC4gMTAwMC4wMDAwMDA6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI2LCBzdGF0ZT13YWl0X2tkcycsCisgICAgICAnIENocm9tZV9JT1RocmVhZC0yMTYwMyBbMDAwXSBkLmguIDEwMDAuMDAwMDAxOiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9d2FpdF9hcHBseScsCisgICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDAyOiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9d2FpdF9mbGlwJywKKyAgICAgICcgICAgIGt3b3JrZXIvMDoxLTI1OTMxIFswMDBdIC4uLi4gMTAwMC4wMDAwMDM6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI2LCBzdGF0ZT1mbGlwcGVkJywKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDBdIGQuaC4gMTAwMC4wMDAwMDQ6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI1LCBzdGF0ZT13YWl0X2tkcycsCisgICAgICAnIENocm9tZV9JT1RocmVhZC0yMTYwMyBbMDAwXSBkLmguIDEwMDAuMDAwMDA1OiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9hcHBseScsCisgICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDA2OiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9mbGlwJywKKyAgICAgICcgICAgIGt3b3JrZXIvMDoxLTI1OTMxIFswMDBdIC4uLi4gMTAwMC4wMDAwMDc6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI1LCBzdGF0ZT1mbGlwcGVkJworICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworCisgICAgdmFyIHRocmVhZHMgPSBtLmdldEFsbFRocmVhZHMoKTsKKyAgICAvLyB0aGVyZSBhcmUgMiB0aHJlYWRzOgorICAgIC8vICAgKDEpICJleHlub3NfZmxpcF9zdGF0ZSAocGlwZTowLCBmYjoyNSkiCisgICAgLy8gICAoMikgImV4eW5vc19mbGlwX3N0YXRlIChwaXBlOjAsIGZiOjI2KSIKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkcy5sZW5ndGgsIDIpOworCisgICAgLy8gaW4gdGhlIHRlc3QgZGF0YSwgZXZlbnQgb2YgZmI9MjYgb2NjdXJzIGZpcnN0LCBzbyBpdCdzIHRocmVhZFswXQorICAgIHZhciBnZnhGYklkMjZUaHJlYWQgPSB0aHJlYWRzWzBdOyAvLyB0aHJlYWQgd2hlcmUgZmIgPT0gMjYKKyAgICB2YXIgZ2Z4RmJJZDI1VGhyZWFkID0gdGhyZWFkc1sxXTsgLy8gdGhyZWFkIHdoZXJlIGZiID09IDI1CisgICAgYXNzZXJ0LmVxdWFsKGdmeEZiSWQyNVRocmVhZC5uYW1lLCAnZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6MCwgZmI6MjUpJyk7CisgICAgYXNzZXJ0LmVxdWFsKGdmeEZiSWQyNlRocmVhZC5uYW1lLCAnZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6MCwgZmI6MjYpJyk7CisgICAgLy8gRXZlcnkgc3RhdGUgKGV4Y2VwdCBmb3IgJ2ZsaXBwZWQnKSB3aWxsIHN0YXJ0IGEgbmV3IHNsaWNlLgorICAgIC8vIFRoZSBsYXN0IGV2ZW50IHdpbGwgbm90IGJlIGNsb3NlZCwgc28gaXQncyBub3QgYSBzbGljZQorICAgIGFzc2VydC5lcXVhbChnZnhGYklkMjVUaHJlYWQuc2xpY2VHcm91cC5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcXVhbChnZnhGYklkMjZUaHJlYWQuc2xpY2VHcm91cC5sZW5ndGgsIDMpOworICB9KTsKKworICB0ZXN0KCdleHlub3NQYWdlRmxpcEZhc3RSZXF1ZXN0SW1wb3J0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMF0gZC5oLiAxMDAwLjAwMDAwMDogJyArCisgICAgICAgICAgJ2V4eW5vc19wYWdlX2ZsaXBfc3RhdGU6IHBpcGU9MCwgZmI9MjYsIHN0YXRlPXdhaXRfa2RzJywKKyAgICAgICcgQ2hyb21lX0lPVGhyZWFkLTIxNjAzIFswMDBdIGQuaC4gMTAwMC4wMDAwMDE6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI1LCBzdGF0ZT13YWl0X2tkcycsCisgICAgICAnICAgICAgICAgICAgICAgWC0yMTM4NSBbMDAwXSAuLi4uIDEwMDAuMDAwMDAyOiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9d2FpdF9hcHBseScsCisgICAgICAnICAgICBrd29ya2VyLzA6MS0yNTkzMSBbMDAwXSAuLi4uIDEwMDAuMDAwMDAzOiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9d2FpdF9mbGlwJywKKyAgICAgICcgICAgICAgICAgICAgICBYLTIxMzg1IFswMDFdIC4uLi4gMTAwMC4wMDAwMDQ6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI1LCBzdGF0ZT13YWl0X2FwcGx5JywKKyAgICAgICcgICAgIGt3b3JrZXIvMDoxLTI1OTMxIFswMDBdIC4uLi4gMTAwMC4wMDAwMDU6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI2LCBzdGF0ZT1mbGlwcGVkJywKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDBdIGQuaC4gMTAwMC4wMDAwMDY6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI2LCBzdGF0ZT13YWl0X2tkcycsCisgICAgICAnICAgICAgICAgICAgICAgWC0yMTM4NSBbMDAwXSAuLi4uIDEwMDAuMDAwMDA3OiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9mbGlwJywKKyAgICAgICcgICAgIGt3b3JrZXIvMDoxLTI1OTMxIFswMDBdIC4uLi4gMTAwMC4wMDAwMDg6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI1LCBzdGF0ZT1mbGlwcGVkJywKKyAgICAgICcgICAgIGt3b3JrZXIvMDoxLTI1OTMxIFswMDBdIC4uLi4gMTAwMC4wMDAwMDk6ICcgKworICAgICAgICAgICdleHlub3NfcGFnZV9mbGlwX3N0YXRlOiBwaXBlPTAsIGZiPTI1LCBzdGF0ZT13YWl0X2tkcycsCisgICAgICAnIENocm9tZV9JT1RocmVhZC0yMTYwMyBbMDAwXSBkLmguIDEwMDAuMDAwMDEwOiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNSwgc3RhdGU9d2FpdF9hcHBseScsCisgICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAwXSBkLmguIDEwMDAuMDAwMDExOiAnICsKKyAgICAgICAgICAnZXh5bm9zX3BhZ2VfZmxpcF9zdGF0ZTogcGlwZT0wLCBmYj0yNiwgc3RhdGU9d2FpdF9hcHBseScKKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKworICAgIHZhciB0aHJlYWRzID0gbS5nZXRBbGxUaHJlYWRzKCk7CisgICAgLy8gdGhlcmUgYXJlIDIgdGhyZWFkczoKKyAgICAvLyAgICgxKSAiZXh5bm9zX2ZsaXBfc3RhdGUgKHBpcGU6MCwgZmI6MjUpIgorICAgIC8vICAgKDIpICJleHlub3NfZmxpcF9zdGF0ZSAocGlwZTowLCBmYjoyNikiCisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZHMubGVuZ3RoLCAyKTsKKworICAgIC8vIGluIHRoZSB0ZXN0IGRhdGEsIGV2ZW50IG9mIGZiPTI2IG9jY3VycyBmaXJzdCwgc28gaXQncyB0aHJlYWRbMF0KKyAgICB2YXIgZ2Z4RmJJZDI2VGhyZWFkID0gdGhyZWFkc1swXTsgLy8gdGhyZWFkIHdoZXJlIGZiID09IDI2CisgICAgdmFyIGdmeEZiSWQyNVRocmVhZCA9IHRocmVhZHNbMV07IC8vIHRocmVhZCB3aGVyZSBmYiA9PSAyNQorICAgIGFzc2VydC5lcXVhbChnZnhGYklkMjVUaHJlYWQubmFtZSwgJ2V4eW5vc19mbGlwX3N0YXRlIChwaXBlOjAsIGZiOjI1KScpOworICAgIGFzc2VydC5lcXVhbChnZnhGYklkMjZUaHJlYWQubmFtZSwgJ2V4eW5vc19mbGlwX3N0YXRlIChwaXBlOjAsIGZiOjI2KScpOworICAgIC8vIEV2ZXJ5IHN0YXRlIChleGNlcHQgZm9yICdmbGlwcGVkJykgd2lsbCBzdGFydCBhIG5ldyBzbGljZS4KKyAgICAvLyBUaGUgbGFzdCBldmVudCB3aWxsIG5vdCBiZSBjbG9zZWQsIHNvIGl0J3Mgbm90IGEgc2xpY2UKKyAgICBhc3NlcnQuZXF1YWwoZ2Z4RmJJZDI1VGhyZWFkLnNsaWNlR3JvdXAubGVuZ3RoLCA0KTsKKyAgICBhc3NlcnQuZXF1YWwoZ2Z4RmJJZDI2VGhyZWFkLnNsaWNlR3JvdXAubGVuZ3RoLCA0KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTAwYThmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbApAQCAtMCwwICsxLDg1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2J1c19wYXJzZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Nsb2NrX3BhcnNlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvY3B1ZnJlcV9wYXJzZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Rpc2tfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9kcm1fcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pcnFfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9leHlub3NfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9nZXN0dXJlX3BhcnNlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaTkxNV9wYXJzZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL21hbGlfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tZW1yZWNsYWltX3BhcnNlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvYmluZGVyX3BhcnNlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcG93ZXJfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9yZWd1bGF0b3JfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9zY2hlZF9wYXJzZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3N5bmNfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi93b3JrcXVldWVfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9hbmRyb2lkX3BhcnNlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYva2Z1bmNfcGFyc2VyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9pbXBvcnRlci9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvaW1wb3J0ZXIvc2ltcGxlX2xpbmVfcmVhZGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKworPHNjcmlwdD4KKy8qKgorICogQGZpbGVvdmVydmlldyBJbXBvcnRzIHRleHQgZmlsZXMgaW4gdGhlIExpbnV4IGV2ZW50IHRyYWNlIGZvcm1hdCBpbnRvIHRoZQorICogTW9kZWwuIFRoaXMgZm9ybWF0IGlzIG91dHB1dCBib3RoIGJ5IHNjaGVkX3RyYWNlIGFuZCBieSBMaW51eCdzIHBlcmYgdG9vbC4KKyAqCisgKiBUaGlzIGltcG9ydGVyIGFzc3VtZXMgdGhlIGV2ZW50cyBhcnJpdmUgYXMgYSBzdHJpbmcuIFRoZSB1bml0IHRlc3RzIHByb3ZpZGUKKyAqIGV4YW1wbGVzIG9mIHRoZSB0cmFjZSBmb3JtYXQuCisgKgorICogTGludXggc2NoZWR1bGVyIHRyYWNlcyB1c2UgYSBkZWZpbml0aW9uIGZvciAncGlkJyB0aGF0IGlzIGRpZmZlcmVudCB0aGFuCisgKiB0cmFjaW5nIHVzZXMuIFdoZXJlYXMgdHJhY2luZyB1c2VzIHBpZCB0byBpZGVudGlmeSBhIHNwZWNpZmljIHByb2Nlc3MsIGEgcGlkCisgKiBpbiBhIGxpbnV4IHRyYWNlIHJlZmVycyB0byBhIHNwZWNpZmljIHRocmVhZCB3aXRoaW4gYSBwcm9jZXNzLiBXaXRoaW4gdGhpcworICogZmlsZSwgd2UgdGhlIGRlZmluaXRpb24gdXNlZCBpbiBMaW51eCB0cmFjZXMsIGFzIGl0IGltcHJvdmVzIHRoZSBpbXBvcnRpbmcKKyAqIGNvZGUncyByZWFkYWJpbGl0eS4KKyAqLworJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7CisgIHZhciBJbXBvcnRlciA9IHRyLmltcG9ydGVyLkltcG9ydGVyOworICB2YXIgQ2xvY2tTeW5jUmVjb3JkID0gdHIuQ2xvY2tTeW5jUmVjb3JkOworCisgIC8qKgorICAgKiBJbXBvcnRzIGxpbnV4IHBlcmYgZXZlbnRzIGludG8gYSBzcGVjaWZpZWQgbW9kZWwuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gTGludXhQZXJmSW1wb3J0ZXIobW9kZWwsIGV2ZW50cykgeworICAgIHRoaXMuaW1wb3J0UHJpb3JpdHkgPSAyOworICAgIHRoaXMubW9kZWxfID0gbW9kZWw7CisgICAgdGhpcy5ldmVudHNfID0gZXZlbnRzOworICAgIHRoaXMubmV3bHlBZGRlZENsb2NrU3luY1JlY29yZHNfID0gW107CisgICAgdGhpcy53YWtldXBzXyA9IFtdOworICAgIHRoaXMua2VybmVsVGhyZWFkU3RhdGVzXyA9IHt9OworICAgIHRoaXMuYnVpbGRNYXBGcm9tTGludXhQaWRzVG9UaHJlYWRzKCk7CisgICAgdGhpcy5saW5lc18gPSBbXTsKKyAgICB0aGlzLnBzZXVkb1RocmVhZENvdW50ZXIgPSAxOworICAgIHRoaXMucGFyc2Vyc18gPSBbXTsKKyAgICB0aGlzLmV2ZW50SGFuZGxlcnNfID0ge307CisgIH0KKworICB2YXIgVGVzdEV4cG9ydHMgPSB7fTsKKworICAvLyBNYXRjaGVzIHRoZSB0cmFjZSByZWNvcmQgaW4gMy4yIGFuZCBsYXRlciB3aXRoIHRoZSBwcmludC10Z2lkIG9wdGlvbjoKKyAgLy8gICAgICAgICAgPGlkbGU+LTAgICAgMCBbMDAxXSBkLi4uICAxLjIzOiBzY2hlZF9zd2l0Y2gKKyAgLy8KKyAgLy8gQSBUR0lEIChUaHJlYWQgR3JvdXAgSUQpIGlzIGJhc2ljYWxseSB3aGF0IHRoZSBMaW51eCBrZXJuZWwgY2FsbHMgd2hhdAorICAvLyB1c2VybGFuZCByZWZlcnMgdG8gYXMgYSBwcm9jZXNzIElEIChhcyBvcHBvc2VkIHRvIGEgTGludXggcGlkLCB3aGljaCBpcworICAvLyB3aGF0IHVzZXJsYW5kIGNhbGxzIGEgdGhyZWFkIElEKS4KKyAgdmFyIGxpbmVSRVdpdGhUR0lEID0gbmV3IFJlZ0V4cCgKKyAgICAgICdeXFxzKiguKyktKFxcZCspXFxzK1xcKFxccyooXFxkK3wtKylcXClcXHNcXFsoXFxkKylcXF0nICsKKyAgICAgICdcXHMrW2RYLl1bTi5dW0hocy5dWzAtOWEtZi5dJyArCisgICAgICAnXFxzKyhcXGQrXFwuXFxkKyk6XFxzKyhcXFMrKTpcXHMoLiopJCcpOworICB2YXIgbGluZVBhcnNlcldpdGhUR0lEID0gZnVuY3Rpb24obGluZSkgeworICAgIHZhciBncm91cHMgPSBsaW5lUkVXaXRoVEdJRC5leGVjKGxpbmUpOworICAgIGlmICghZ3JvdXBzKSB7CisgICAgICByZXR1cm4gZ3JvdXBzOworICAgIH0KKworICAgIHZhciB0Z2lkID0gZ3JvdXBzWzNdOworICAgIGlmICh0Z2lkWzBdID09PSAnLScpCisgICAgICB0Z2lkID0gdW5kZWZpbmVkOworCisgICAgcmV0dXJuIHsKKyAgICAgIHRocmVhZE5hbWU6IGdyb3Vwc1sxXSwKKyAgICAgIHBpZDogZ3JvdXBzWzJdLAorICAgICAgdGdpZDogdGdpZCwKKyAgICAgIGNwdU51bWJlcjogZ3JvdXBzWzRdLAorICAgICAgdGltZXN0YW1wOiBncm91cHNbNV0sCisgICAgICBldmVudE5hbWU6IGdyb3Vwc1s2XSwKKyAgICAgIGRldGFpbHM6IGdyb3Vwc1s3XQorICAgIH07CisgIH07CisgIFRlc3RFeHBvcnRzLmxpbmVQYXJzZXJXaXRoVEdJRCA9IGxpbmVQYXJzZXJXaXRoVEdJRDsKKworICAvLyBNYXRjaGVzIHRoZSBkZWZhdWx0IHRyYWNlIHJlY29yZCBpbiAzLjIgYW5kIGxhdGVyIChpbmNsdWRlcyBpcnEtaW5mbyk6CisgIC8vICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAxXSBkLi4uICAxLjIzOiBzY2hlZF9zd2l0Y2gKKyAgdmFyIGxpbmVSRVdpdGhJUlFJbmZvID0gbmV3IFJlZ0V4cCgKKyAgICAgICdeXFxzKiguKyktKFxcZCspXFxzK1xcWyhcXGQrKVxcXScgKworICAgICAgJ1xccytbZFguXVtOLl1bSGhzLl1bMC05YS1mLl0nICsKKyAgICAgICdcXHMrKFxcZCtcXC5cXGQrKTpcXHMrKFxcUyspOlxccyguKikkJyk7CisgIHZhciBsaW5lUGFyc2VyV2l0aElSUUluZm8gPSBmdW5jdGlvbihsaW5lKSB7CisgICAgdmFyIGdyb3VwcyA9IGxpbmVSRVdpdGhJUlFJbmZvLmV4ZWMobGluZSk7CisgICAgaWYgKCFncm91cHMpIHsKKyAgICAgIHJldHVybiBncm91cHM7CisgICAgfQorICAgIHJldHVybiB7CisgICAgICB0aHJlYWROYW1lOiBncm91cHNbMV0sCisgICAgICBwaWQ6IGdyb3Vwc1syXSwKKyAgICAgIGNwdU51bWJlcjogZ3JvdXBzWzNdLAorICAgICAgdGltZXN0YW1wOiBncm91cHNbNF0sCisgICAgICBldmVudE5hbWU6IGdyb3Vwc1s1XSwKKyAgICAgIGRldGFpbHM6IGdyb3Vwc1s2XQorICAgIH07CisgIH07CisgIFRlc3RFeHBvcnRzLmxpbmVQYXJzZXJXaXRoSVJRSW5mbyA9IGxpbmVQYXJzZXJXaXRoSVJRSW5mbzsKKworICAvLyBNYXRjaGVzIHRoZSBkZWZhdWx0IHRyYWNlIHJlY29yZCBwcmUtMy4yOgorICAvLyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gIDEuMjM6IHNjaGVkX3N3aXRjaAorICB2YXIgbGluZVJFV2l0aExlZ2FjeUZtdCA9CisgICAgICAvXlxzKiguKyktKFxkKylccytcWyhcZCspXF1ccyooXGQrXC5cZCspOlxzKyhcUyspOlxzKC4qKSQvOworICB2YXIgbGluZVBhcnNlcldpdGhMZWdhY3lGbXQgPSBmdW5jdGlvbihsaW5lKSB7CisgICAgdmFyIGdyb3VwcyA9IGxpbmVSRVdpdGhMZWdhY3lGbXQuZXhlYyhsaW5lKTsKKyAgICBpZiAoIWdyb3VwcykgeworICAgICAgcmV0dXJuIGdyb3VwczsKKyAgICB9CisgICAgcmV0dXJuIHsKKyAgICAgIHRocmVhZE5hbWU6IGdyb3Vwc1sxXSwKKyAgICAgIHBpZDogZ3JvdXBzWzJdLAorICAgICAgY3B1TnVtYmVyOiBncm91cHNbM10sCisgICAgICB0aW1lc3RhbXA6IGdyb3Vwc1s0XSwKKyAgICAgIGV2ZW50TmFtZTogZ3JvdXBzWzVdLAorICAgICAgZGV0YWlsczogZ3JvdXBzWzZdCisgICAgfTsKKyAgfTsKKyAgVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhMZWdhY3lGbXQgPSBsaW5lUGFyc2VyV2l0aExlZ2FjeUZtdDsKKworICAvLyBNYXRjaGVzIHRoZSB0cmFjZV9ldmVudF9jbG9ja19zeW5jIHJlY29yZAorICAvLyAgMDogdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogcGFyZW50X3RzPTE5NTgxNDc3NTA4CisgIHZhciB0cmFjZUV2ZW50Q2xvY2tTeW5jUkUgPSAvdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogcGFyZW50X3RzPShcZCtcLj9cZCopLzsKKyAgVGVzdEV4cG9ydHMudHJhY2VFdmVudENsb2NrU3luY1JFID0gdHJhY2VFdmVudENsb2NrU3luY1JFOworCisgIHZhciBnZW5lcmljQ2xvY2tTeW5jUkUgPSAvdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogbmFtZT0oXHcrKS87CisKKyAgLy8gU29tZSBrZXJuZWwgdHJhY2UgZXZlbnRzIGFyZSBtYW51YWxseSBjbGFzc2lmaWVkIGluIHNsaWNlcyBhbmQKKyAgLy8gaGFuZC1hc3NpZ25lZCBhIHBzZXVkbyBQSUQuCisgIHZhciBwc2V1ZG9LZXJuZWxQSUQgPSAwOworCisgIC8qKgorICAgKiBEZWR1Y2UgdGhlIGZvcm1hdCBvZiB0cmFjZSBkYXRhLiBMaW51eCBrZXJuZWxzIHByaW9yIHRvIDMuMyB1c2VkIG9uZQorICAgKiBmb3JtYXQgKGJ5IGRlZmF1bHQpOyAzLjQgYW5kIGxhdGVyIHVzZWQgYW5vdGhlci4gIEFkZGl0aW9uYWxseSwgbmV3ZXIKKyAgICoga2VybmVscyBjYW4gb3B0aW9uYWxseSB0cmFjZSB0aGUgVEdJRC4KKyAgICoKKyAgICogQHJldHVybiB7ZnVuY3Rpb259IHRoZSBmdW5jdGlvbiBmb3IgcGFyc2luZyBkYXRhIHdoZW4gdGhlIGZvcm1hdCBpcworICAgKiByZWNvZ25pemVkOyBvdGhlcndpc2UgbnVsbC4KKyAgICovCisgIGZ1bmN0aW9uIGF1dG9EZXRlY3RMaW5lUGFyc2VyKGxpbmUpIHsKKyAgICBpZiAobGluZVswXSA9PSAneycpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGxpbmVSRVdpdGhUR0lELnRlc3QobGluZSkpCisgICAgICByZXR1cm4gbGluZVBhcnNlcldpdGhUR0lEOworICAgIGlmIChsaW5lUkVXaXRoSVJRSW5mby50ZXN0KGxpbmUpKQorICAgICAgcmV0dXJuIGxpbmVQYXJzZXJXaXRoSVJRSW5mbzsKKyAgICBpZiAobGluZVJFV2l0aExlZ2FjeUZtdC50ZXN0KGxpbmUpKQorICAgICAgcmV0dXJuIGxpbmVQYXJzZXJXaXRoTGVnYWN5Rm10OworICAgIHJldHVybiBudWxsOworICB9OworICBUZXN0RXhwb3J0cy5hdXRvRGV0ZWN0TGluZVBhcnNlciA9IGF1dG9EZXRlY3RMaW5lUGFyc2VyOworCisgIC8qKgorICAgKiBHdWVzc2VzIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGV2ZW50cyBpcyBhIExpbnV4IHBlcmYgc3RyaW5nLgorICAgKiBMb29rcyBmb3IgdGhlIG1hZ2ljIHN0cmluZyAiIyB0cmFjZXIiIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZSwKKyAgICogb3IgdGhlIHR5cGljYWwgdGFzay1waWQtY3B1LXRpbWVzdGFtcC1mdW5jdGlvbiBzZXF1ZW5jZSBvZiBhIHR5cGljYWwKKyAgICogdHJhY2UncyBib2R5LgorICAgKgorICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gZXZlbnRzIGlzIGEgbGludXggcGVyZiBhcnJheS4KKyAgICovCisgIExpbnV4UGVyZkltcG9ydGVyLmNhbkltcG9ydCA9IGZ1bmN0aW9uKGV2ZW50cykgeworICAgIGlmICghKHR5cGVvZihldmVudHMpID09PSAnc3RyaW5nJyB8fCBldmVudHMgaW5zdGFuY2VvZiBTdHJpbmcpKQorICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKExpbnV4UGVyZkltcG9ydGVyLl9leHRyYWN0RXZlbnRzRnJvbVN5c3RyYWNlSFRNTChldmVudHMsIGZhbHNlKS5vaykKKyAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKExpbnV4UGVyZkltcG9ydGVyLl9leHRyYWN0RXZlbnRzRnJvbVN5c3RyYWNlTXVsdGlIVE1MKGV2ZW50cywgZmFsc2UpLm9rKQorICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoL14jIHRyYWNlcjovLnRlc3QoZXZlbnRzKSkKKyAgICAgIHJldHVybiB0cnVlOworCisgICAgdmFyIGxpbmVCcmVha0luZGV4ID0gZXZlbnRzLmluZGV4T2YoJ1xuJyk7CisgICAgaWYgKGxpbmVCcmVha0luZGV4ID4gLTEpCisgICAgICBldmVudHMgPSBldmVudHMuc3Vic3RyaW5nKDAsIGxpbmVCcmVha0luZGV4KTsKKworICAgIGlmIChhdXRvRGV0ZWN0TGluZVBhcnNlcihldmVudHMpKQorICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7CisgIH07CisKKyAgTGludXhQZXJmSW1wb3J0ZXIuX2V4dHJhY3RFdmVudHNGcm9tU3lzdHJhY2VIVE1MID0gZnVuY3Rpb24oCisgICAgICBpbmNvbWluZ19ldmVudHMsIHByb2R1Y2VfcmVzdWx0KSB7CisgICAgdmFyIGZhaWx1cmUgPSB7b2s6IGZhbHNlfTsKKyAgICBpZiAocHJvZHVjZV9yZXN1bHQgPT09IHVuZGVmaW5lZCkKKyAgICAgIHByb2R1Y2VfcmVzdWx0ID0gdHJ1ZTsKKworICAgIGlmICgvXjwhRE9DVFlQRSBIVE1MPi8udGVzdChpbmNvbWluZ19ldmVudHMpID09IGZhbHNlKQorICAgICAgcmV0dXJuIGZhaWx1cmU7CisgICAgdmFyIHIgPSBuZXcgdHIuaW1wb3J0ZXIuU2ltcGxlTGluZVJlYWRlcihpbmNvbWluZ19ldmVudHMpOworCisgICAgLy8gVHJ5IHRvIGZpbmQgdGhlIGRhdGEuLi4KKyAgICBpZiAoIXIuYWR2YW5jZVRvTGluZU1hdGNoaW5nKC9eICA8c2NyaXB0PiQvKSkKKyAgICAgIHJldHVybiBmYWlsdXJlOworICAgIGlmICghci5hZHZhbmNlVG9MaW5lTWF0Y2hpbmcoL14gIHZhciBsaW51eFBlcmZEYXRhID0gIlxcJC8pKQorICAgICAgcmV0dXJuIGZhaWx1cmU7CisKKyAgICB2YXIgZXZlbnRzX2JlZ2luX2F0X2xpbmUgPSByLmN1ckxpbmVOdW1iZXIgKyAxOworICAgIHIuYmVnaW5TYXZpbmdMaW5lcygpOworICAgIGlmICghci5hZHZhbmNlVG9MaW5lTWF0Y2hpbmcoL14gIDxcL3NjcmlwdD4kLykpCisgICAgICByZXR1cm4gZmFpbHVyZTsKKworICAgIHZhciByYXdfZXZlbnRzID0gci5lbmRTYXZpbmdMaW5lc0FuZEdldFJlc3VsdCgpOworCisgICAgLy8gRHJvcCBvZmYgZmlyc3QgYW5kIGxhc3QgZXZlbnQgYXMgaXQgY29udGFpbnMgdGhlIHRhZy4KKyAgICByYXdfZXZlbnRzID0gcmF3X2V2ZW50cy5zbGljZSgxLCByYXdfZXZlbnRzLmxlbmd0aCAtIDEpOworCisgICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXjxcL2JvZHk+JC8pKQorICAgICAgcmV0dXJuIGZhaWx1cmU7CisgICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXjxcL2h0bWw+JC8pKQorICAgICAgcmV0dXJuIGZhaWx1cmU7CisKKyAgICBmdW5jdGlvbiBlbmRzV2l0aChzdHIsIHN1ZmZpeCkgeworICAgICAgcmV0dXJuIHN0ci5pbmRleE9mKHN1ZmZpeCwgc3RyLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpICE9PSAtMTsKKyAgICB9CisgICAgZnVuY3Rpb24gc3RyaXBTdWZmaXgoc3RyLCBzdWZmaXgpIHsKKyAgICAgIGlmICghZW5kc1dpdGgoc3RyLCBzdWZmaXgpKQorICAgICAgICByZXR1cm4gc3RyOworICAgICAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoc3RyLCBzdHIubGVuZ3RoIC0gc3VmZml4Lmxlbmd0aCk7CisgICAgfQorCisgICAgLy8gU3RyaXAgb2ZmIGVzY2FwaW5nIGluIHRoZSBmaWxlIG5lZWRlZCB0byBwcmVzZXJ2ZSBsaW5lYnJlYWtzLgorICAgIHZhciBldmVudHMgPSBbXTsKKyAgICBpZiAocHJvZHVjZV9yZXN1bHQpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3X2V2ZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgZXZlbnQgPSByYXdfZXZlbnRzW2ldOworICAgICAgICBldmVudCA9IHN0cmlwU3VmZml4KGV2ZW50LCAnXFxuXFwnKTsKKyAgICAgICAgZXZlbnRzLnB1c2goZXZlbnQpOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICBldmVudHMgPSBbcmF3X2V2ZW50c1tyYXdfZXZlbnRzLmxlbmd0aCAtIDFdXTsKKyAgICB9CisKKyAgICAvLyBMYXN0IGV2ZW50IGVuZHMgZGlmZmVyZW50bHkuIFN0cmlwIHRoYXQgb2ZmIHRvbywKKyAgICAvLyB0cmVhdGluZyBhYnNlbmNlIG9mIHRoYXQgdHJhaWxpbmcgc3RyaW5nIGFzIGEgZmFpbHVyZS4KKyAgICB2YXIgb2xkTGFzdEV2ZW50ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXTsKKyAgICB2YXIgbmV3TGFzdEV2ZW50ID0gc3RyaXBTdWZmaXgob2xkTGFzdEV2ZW50LCAnXFxuIjsnKTsKKyAgICBpZiAobmV3TGFzdEV2ZW50ID09IG9sZExhc3RFdmVudCkKKyAgICAgIHJldHVybiBmYWlsdXJlOworICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0gPSBuZXdMYXN0RXZlbnQ7CisKKyAgICByZXR1cm4ge29rOiB0cnVlLAorICAgICAgbGluZXM6IHByb2R1Y2VfcmVzdWx0ID8gZXZlbnRzIDogdW5kZWZpbmVkLAorICAgICAgZXZlbnRzX2JlZ2luX2F0X2xpbmU6IGV2ZW50c19iZWdpbl9hdF9saW5lfTsKKyAgfTsKKworICBMaW51eFBlcmZJbXBvcnRlci5fZXh0cmFjdEV2ZW50c0Zyb21TeXN0cmFjZU11bHRpSFRNTCA9IGZ1bmN0aW9uKAorICAgICAgaW5jb21pbmdfZXZlbnRzLCBwcm9kdWNlX3Jlc3VsdCkgeworICAgIHZhciBmYWlsdXJlID0ge29rOiBmYWxzZX07CisgICAgaWYgKHByb2R1Y2VfcmVzdWx0ID09PSB1bmRlZmluZWQpCisgICAgICBwcm9kdWNlX3Jlc3VsdCA9IHRydWU7CisKKyAgICBpZiAoL148IURPQ1RZUEUgSFRNTD4vLnRlc3QoaW5jb21pbmdfZXZlbnRzKSA9PSBmYWxzZSkKKyAgICAgIHJldHVybiBmYWlsdXJlOworICAgIHZhciByID0gbmV3IHRyLmltcG9ydGVyLlNpbXBsZUxpbmVSZWFkZXIoaW5jb21pbmdfZXZlbnRzKTsKKworICAgIC8vIFRyeSB0byBmaW5kIHRoZSBMaW51eCBwZXJmIHRyYWNlIGluIGFueSBvZiB0aGUgdHJhY2UtZGF0YSB0YWdzCisgICAgdmFyIGV2ZW50cyA9IFtdOworICAgIHdoaWxlICghL14jIHRyYWNlcjovLnRlc3QoZXZlbnRzKSkgeworICAgICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygKKyAgICAgICAgICAvXiAgPHNjcmlwdCBjbGFzcz0idHJhY2UtZGF0YSIgdHlwZT0iYXBwbGljYXRpb25cL3RleHQiPiQvKSkKKyAgICAgICAgcmV0dXJuIGZhaWx1cmU7CisKKyAgICAgIHZhciBldmVudHNfYmVnaW5fYXRfbGluZSA9IHIuY3VyTGluZU51bWJlciArIDE7CisKKyAgICAgIHIuYmVnaW5TYXZpbmdMaW5lcygpOworICAgICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXiAgPFwvc2NyaXB0PiQvKSkKKyAgICAgICAgcmV0dXJuIGZhaWx1cmU7CisKKyAgICAgIGV2ZW50cyA9IHIuZW5kU2F2aW5nTGluZXNBbmRHZXRSZXN1bHQoKTsKKworICAgICAgLy8gRHJvcCBvZmYgZmlyc3QgYW5kIGxhc3QgZXZlbnQgYXMgaXQgY29udGFpbnMgdGhlIHRhZy4KKyAgICAgIGV2ZW50cyA9IGV2ZW50cy5zbGljZSgxLCBldmVudHMubGVuZ3RoIC0gMSk7CisgICAgfQorCisgICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXjxcL2JvZHk+JC8pKQorICAgICAgcmV0dXJuIGZhaWx1cmU7CisgICAgaWYgKCFyLmFkdmFuY2VUb0xpbmVNYXRjaGluZygvXjxcL2h0bWw+JC8pKQorICAgICAgcmV0dXJuIGZhaWx1cmU7CisKKyAgICByZXR1cm4ge29rOiB0cnVlLAorICAgICAgbGluZXM6IHByb2R1Y2VfcmVzdWx0ID8gZXZlbnRzIDogdW5kZWZpbmVkLAorICAgICAgZXZlbnRzX2JlZ2luX2F0X2xpbmU6IGV2ZW50c19iZWdpbl9hdF9saW5lfTsKKyAgfTsKKworICBMaW51eFBlcmZJbXBvcnRlci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBJbXBvcnRlci5wcm90b3R5cGUsCisKKyAgICBnZXQgbW9kZWwoKSB7CisgICAgICByZXR1cm4gdGhpcy5tb2RlbF87CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFByZWNvbXB1dGVzIGEgbG9va3VwIHRhYmxlIGZyb20gbGludXggcGlkcyBiYWNrIHRvIGV4aXN0aW5nCisgICAgICogVGhyZWFkcy4gVGhpcyBpcyB1c2VkIGR1cmluZyBpbXBvcnRpbmcgdG8gYWRkIGluZm9ybWF0aW9uIHRvIGVhY2gKKyAgICAgKiB0aHJlYWQgYWJvdXQgd2hldGhlciBpdCB3YXMgcnVubmluZywgZGVzY2hlZHVsZWQsIHNsZWVwaW5nLCBldAorICAgICAqIGNldGVyYS4KKyAgICAgKi8KKyAgICBidWlsZE1hcEZyb21MaW51eFBpZHNUb1RocmVhZHM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy50aHJlYWRzQnlMaW51eFBpZCA9IHt9OworICAgICAgdGhpcy5tb2RlbF8uZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goCisgICAgICAgICAgZnVuY3Rpb24odGhyZWFkKSB7CisgICAgICAgICAgICB0aGlzLnRocmVhZHNCeUxpbnV4UGlkW3RocmVhZC50aWRdID0gdGhyZWFkOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge0NwdX0gQSBDcHUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gY3B1TnVtYmVyLgorICAgICAqLworICAgIGdldE9yQ3JlYXRlQ3B1OiBmdW5jdGlvbihjcHVOdW1iZXIpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXy5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoY3B1TnVtYmVyKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7VGltZWxpbmVUaHJlYWR9IEEgdGhyZWFkIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGtlcm5lbFRocmVhZE5hbWUuCisgICAgICovCisgICAgZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQ6IGZ1bmN0aW9uKGtlcm5lbFRocmVhZE5hbWUsIHBpZCwgdGlkKSB7CisgICAgICBpZiAoIXRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXJuZWxUaHJlYWROYW1lXSkgeworICAgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHBpZCkuZ2V0T3JDcmVhdGVUaHJlYWQodGlkKTsKKyAgICAgICAgdGhyZWFkLm5hbWUgPSBrZXJuZWxUaHJlYWROYW1lOworICAgICAgICB0aGlzLmtlcm5lbFRocmVhZFN0YXRlc19ba2VybmVsVGhyZWFkTmFtZV0gPSB7CisgICAgICAgICAgcGlkOiBwaWQsCisgICAgICAgICAgdGhyZWFkOiB0aHJlYWQsCisgICAgICAgICAgb3BlblNsaWNlOiB1bmRlZmluZWQsCisgICAgICAgICAgb3BlblNsaWNlVFM6IHVuZGVmaW5lZAorICAgICAgICB9OworICAgICAgICB0aGlzLnRocmVhZHNCeUxpbnV4UGlkW3BpZF0gPSB0aHJlYWQ7CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5rZXJuZWxUaHJlYWRTdGF0ZXNfW2tlcm5lbFRocmVhZE5hbWVdOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzZXMgY2FuIGhhdmUgbXVsdGlwbGUgYmluZGVyIHRocmVhZHMuCisgICAgICogQmluZGVyIHRocmVhZCBuYW1lcyBhcmUgbm90IHVuaXF1ZSBhY3Jvc3MgcHJvY2Vzc2VzIHdlIHRoZXJlZm9yZSBuZWVkIHRvCisgICAgICoga2VlcCBtb3JlIGluZm9ybWF0aW9uIGluIG9yZGVyIHRvIHJldHVybiB0aGUgY29ycmVjdCB0aHJlYWRzLgorICAgICAqLworICAgIGdldE9yQ3JlYXRlQmluZGVyS2VybmVsVGhyZWFkOiBmdW5jdGlvbihrZXJuZWxUaHJlYWROYW1lLCBwaWQsIHRpZCkgeworICAgICAgdmFyIGtleSA9IGtlcm5lbFRocmVhZE5hbWUgKyBwaWQgKyB0aWQ7CisgICAgICBpZiAoIXRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXldKSB7CisgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocGlkKS5nZXRPckNyZWF0ZVRocmVhZCh0aWQpOworICAgICAgICB0aHJlYWQubmFtZSA9IGtlcm5lbFRocmVhZE5hbWU7CisgICAgICAgIHRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXldID0geworICAgICAgICAgIHBpZDogcGlkLAorICAgICAgICAgIHRocmVhZDogdGhyZWFkLAorICAgICAgICAgIG9wZW5TbGljZTogdW5kZWZpbmVkLAorICAgICAgICAgIG9wZW5TbGljZVRTOiB1bmRlZmluZWQKKyAgICAgICAgfTsKKyAgICAgICAgdGhpcy50aHJlYWRzQnlMaW51eFBpZFtwaWRdID0gdGhyZWFkOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMua2VybmVsVGhyZWFkU3RhdGVzX1trZXldOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtUaW1lbGluZVRocmVhZH0gQSBwc2V1ZG8gdGhyZWFkIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogdGhyZWFkTmFtZS4gIFBzZXVkbyB0aHJlYWRzIGFyZSBmb3IgZXZlbnRzIHRoYXQgd2Ugd2FudCB0byBicmVhaworICAgICAqIG91dCB0byBhIHNlcGFyYXRlIHRpbWVsaW5lIGJ1dCB3b3VsZCBub3Qgb3RoZXJ3aXNlIGhhcHBlbi4KKyAgICAgKiBUaGVzZSB0aHJlYWRzIGFyZSBhc3NpZ25lZCB0byBwc2V1ZG9LZXJuZWxQSUQgYW5kIGdpdmVuIGEKKyAgICAgKiB1bmlxdWUgKGluY3JlbWVudGluZykgVElELgorICAgICAqLworICAgIGdldE9yQ3JlYXRlUHNldWRvVGhyZWFkOiBmdW5jdGlvbih0aHJlYWROYW1lKSB7CisgICAgICB2YXIgdGhyZWFkID0gdGhpcy5rZXJuZWxUaHJlYWRTdGF0ZXNfW3RocmVhZE5hbWVdOworICAgICAgaWYgKCF0aHJlYWQpIHsKKyAgICAgICAgdGhyZWFkID0gdGhpcy5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCh0aHJlYWROYW1lLCBwc2V1ZG9LZXJuZWxQSUQsCisgICAgICAgICAgICB0aGlzLnBzZXVkb1RocmVhZENvdW50ZXIpOworICAgICAgICB0aGlzLnBzZXVkb1RocmVhZENvdW50ZXIrKzsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aHJlYWQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgdGhlIGRhdGEgaW4gdGhpcy5ldmVudHNfIGludG8gbW9kZWxfLgorICAgICAqLworICAgIGltcG9ydEV2ZW50czogZnVuY3Rpb24oaXNTZWNvbmRhcnlJbXBvcnQpIHsKKyAgICAgIHRoaXMucGFyc2Vyc18gPSB0aGlzLmNyZWF0ZVBhcnNlcnNfKCk7CisgICAgICB0aGlzLnJlZ2lzdGVyRGVmYXVsdEhhbmRsZXJzXygpOworICAgICAgdGhpcy5wYXJzZUxpbmVzKCk7CisgICAgICB0aGlzLmltcG9ydENsb2NrU3luY1JlY29yZHMoKTsKKyAgICAgIHZhciB0aW1lU2hpZnQgPSB0aGlzLmNvbXB1dGVUaW1lVHJhbnNmb3JtKCk7CisgICAgICBpZiAodGltZVNoaWZ0ID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ2Nsb2NrX3N5bmMnLAorICAgICAgICAgIG1lc3NhZ2U6ICdDYW5ub3QgaW1wb3J0IGtlcm5lbCB0cmFjZSB3aXRob3V0IGEgY2xvY2sgc3luYy4nCisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB0aGlzLnNoaWZ0TmV3bHlBZGRlZENsb2NrU3luY1JlY29yZHModGltZVNoaWZ0KTsKKyAgICAgIHRoaXMuaW1wb3J0Q3B1RGF0YSh0aW1lU2hpZnQpOworICAgICAgdGhpcy5idWlsZE1hcEZyb21MaW51eFBpZHNUb1RocmVhZHMoKTsKKyAgICAgIHRoaXMuYnVpbGRQZXJUaHJlYWRDcHVTbGljZXNGcm9tQ3B1U3RhdGUoKTsKKyAgICAgIHRoaXMuY29tcHV0ZUNwdVRpbWVzdGFtcHNGb3JTbGljZXNBc05lZWRlZCgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBCdWlsZHMgdGhlIHRpbWVTbGljZXMgYXJyYXkgb24gZWFjaCB0aHJlYWQgYmFzZWQgb24gb3VyIGtub3dsZWRnZSBvZiB3aGF0CisgICAgICogZWFjaCBDcHUgaXMgZG9pbmcuICBUaGlzIGlzIGRvbmUgb25seSBmb3IgVGhyZWFkcyB0aGF0IGFyZQorICAgICAqIGFscmVhZHkgaW4gdGhlIG1vZGVsLCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IG5vdCBoYXZpbmcgYW55IHRyYWNlZCBkYXRhCisgICAgICogb24gYSB0aHJlYWQgbWVhbnMgdGhhdCBpdCBpcyBub3Qgb2YgaW50ZXJlc3QgdG8gdGhlIHVzZXIuCisgICAgICovCisgICAgYnVpbGRQZXJUaHJlYWRDcHVTbGljZXNGcm9tQ3B1U3RhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIFNDSEVEVUxJTkdfU1RBVEUgPSB0ci5tb2RlbC5TQ0hFRFVMSU5HX1NUQVRFOworCisgICAgICAvLyBQdXNoIHRoZSBjcHUgc2xpY2VzIHRvIHRoZSB0aHJlYWRzIHRoYXQgdGhleSBydW4gb24uCisgICAgICBmb3IgKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5tb2RlbF8ua2VybmVsLmNwdXMpIHsKKyAgICAgICAgdmFyIGNwdSA9IHRoaXMubW9kZWxfLmtlcm5lbC5jcHVzW2NwdU51bWJlcl07CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjcHUuc2xpY2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIGNwdVNsaWNlID0gY3B1LnNsaWNlc1tpXTsKKworICAgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLnRocmVhZHNCeUxpbnV4UGlkW2NwdVNsaWNlLmFyZ3MudGlkXTsKKyAgICAgICAgICBpZiAoIXRocmVhZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgY3B1U2xpY2UudGhyZWFkVGhhdFdhc1J1bm5pbmcgPSB0aHJlYWQ7CisKKyAgICAgICAgICBpZiAoIXRocmVhZC50ZW1wQ3B1U2xpY2VzKQorICAgICAgICAgICAgdGhyZWFkLnRlbXBDcHVTbGljZXMgPSBbXTsKKyAgICAgICAgICB0aHJlYWQudGVtcENwdVNsaWNlcy5wdXNoKGNwdVNsaWNlKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBmb3IgKHZhciBpIGluIHRoaXMud2FrZXVwc18pIHsKKyAgICAgICAgdmFyIHdha2V1cCA9IHRoaXMud2FrZXVwc19baV07CisgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLnRocmVhZHNCeUxpbnV4UGlkW3dha2V1cC50aWRdOworICAgICAgICBpZiAoIXRocmVhZCkKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdGhyZWFkLnRlbXBXYWtldXBzID0gdGhyZWFkLnRlbXBXYWtldXBzIHx8IFtdOworICAgICAgICB0aHJlYWQudGVtcFdha2V1cHMucHVzaCh3YWtldXApOworICAgICAgfQorCisgICAgICAvLyBDcmVhdGUgc2xpY2VzIGZvciB3aGVuIHRoZSB0aHJlYWQgaXMgbm90IHJ1bm5pbmcuCisgICAgICB0aGlzLm1vZGVsXy5nZXRBbGxUaHJlYWRzKCkuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpIHsKKyAgICAgICAgaWYgKHRocmVhZC50ZW1wQ3B1U2xpY2VzID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgb3JpZ1NsaWNlcyA9IHRocmVhZC50ZW1wQ3B1U2xpY2VzOworICAgICAgICBkZWxldGUgdGhyZWFkLnRlbXBDcHVTbGljZXM7CisKKyAgICAgICAgb3JpZ1NsaWNlcy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKKyAgICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7CisgICAgICAgIH0pOworCisgICAgICAgIHZhciB3YWtldXBzID0gdGhyZWFkLnRlbXBXYWtldXBzIHx8IFtdOworICAgICAgICBkZWxldGUgdGhyZWFkLnRlbXBXYWtldXBzOworICAgICAgICB3YWtldXBzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICAgIHJldHVybiB4LnRzIC0geS50czsKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gV2FsayB0aGUgc2xpY2UgbGlzdCBhbmQgcHV0IHNsaWNlcyBiZXR3ZWVuIGVhY2ggb3JpZ2luYWwgc2xpY2UgdG8KKyAgICAgICAgLy8gc2hvdyB3aGVuIHRoZSB0aHJlYWQgaXNuJ3QgcnVubmluZy4KKyAgICAgICAgdmFyIHNsaWNlcyA9IFtdOworCisgICAgICAgIGlmIChvcmlnU2xpY2VzLmxlbmd0aCkgeworICAgICAgICAgIHZhciBzbGljZSA9IG9yaWdTbGljZXNbMF07CisKKyAgICAgICAgICBpZiAod2FrZXVwcy5sZW5ndGggJiYgd2FrZXVwc1swXS50cyA8IHNsaWNlLnN0YXJ0KSB7CisgICAgICAgICAgICB2YXIgd2FrZXVwID0gd2FrZXVwcy5zaGlmdCgpOworICAgICAgICAgICAgdmFyIHdha2V1cER1cmF0aW9uID0gc2xpY2Uuc3RhcnQgLSB3YWtldXAudHM7CisgICAgICAgICAgICB2YXIgYXJncyA9IHsnd2FrZXVwIGZyb20gdGlkJzogd2FrZXVwLmZyb21UaWR9OworICAgICAgICAgICAgc2xpY2VzLnB1c2gobmV3IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSgKKyAgICAgICAgICAgICAgICB0aHJlYWQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTkFCTEUsICcnLAorICAgICAgICAgICAgICAgIHdha2V1cC50cywgYXJncywgd2FrZXVwRHVyYXRpb24pKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgcnVubmluZ1NsaWNlID0gbmV3IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSgKKyAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsICcnLAorICAgICAgICAgICAgICBzbGljZS5zdGFydCwge30sIHNsaWNlLmR1cmF0aW9uKTsKKyAgICAgICAgICBydW5uaW5nU2xpY2UuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcgPSBzbGljZS5jcHU7CisgICAgICAgICAgc2xpY2VzLnB1c2gocnVubmluZ1NsaWNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciB3YWtldXAgPSB1bmRlZmluZWQ7CisgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgb3JpZ1NsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBwcmV2U2xpY2UgPSBvcmlnU2xpY2VzW2kgLSAxXTsKKyAgICAgICAgICB2YXIgbmV4dFNsaWNlID0gb3JpZ1NsaWNlc1tpXTsKKyAgICAgICAgICB2YXIgbWlkRHVyYXRpb24gPSBuZXh0U2xpY2Uuc3RhcnQgLSBwcmV2U2xpY2UuZW5kOworICAgICAgICAgIHdoaWxlICh3YWtldXBzLmxlbmd0aCAmJiB3YWtldXBzWzBdLnRzIDwgbmV4dFNsaWNlLnN0YXJ0KSB7CisgICAgICAgICAgICB2YXIgdyA9IHdha2V1cHMuc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICh3YWtldXAgPT09IHVuZGVmaW5lZCAmJiB3LnRzID4gcHJldlNsaWNlLmVuZCkgeworICAgICAgICAgICAgICB3YWtldXAgPSB3OworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIC8vIFB1c2ggYSBzbGVlcCBzbGljZSBvbnRvIHRoZSBzbGljZXMgbGlzdCwgaW50ZXJydXB0aW5nIGl0IHdpdGggYQorICAgICAgICAgIC8vIHdha2V1cCBpZiBhcHByb3ByaWF0ZS4KKyAgICAgICAgICB2YXIgcHVzaFNsZWVwID0gZnVuY3Rpb24oc3RhdGUpIHsKKyAgICAgICAgICAgIGlmICh3YWtldXAgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICBtaWREdXJhdGlvbiA9IHdha2V1cC50cyAtIHByZXZTbGljZS5lbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwKKyAgICAgICAgICAgICAgICBzdGF0ZSwgJycsIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOworICAgICAgICAgICAgaWYgKHdha2V1cCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgIHZhciB3YWtldXBEdXJhdGlvbiA9IG5leHRTbGljZS5zdGFydCAtIHdha2V1cC50czsKKyAgICAgICAgICAgICAgdmFyIGFyZ3MgPSB7J3dha2V1cCBmcm9tIHRpZCc6IHdha2V1cC5mcm9tVGlkfTsKKyAgICAgICAgICAgICAgc2xpY2VzLnB1c2gobmV3IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSgKKyAgICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5SVU5OQUJMRSwgJycsCisgICAgICAgICAgICAgICAgICB3YWtldXAudHMsIGFyZ3MsIHdha2V1cER1cmF0aW9uKSk7CisgICAgICAgICAgICAgIHdha2V1cCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9OworCisgICAgICAgICAgaWYgKHByZXZTbGljZS5hcmdzLnN0YXRlV2hlbkRlc2NoZWR1bGVkID09ICdTJykgeworICAgICAgICAgICAgcHVzaFNsZWVwKFNDSEVEVUxJTkdfU1RBVEUuU0xFRVBJTkcpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ1InIHx8CisgICAgICAgICAgICAgICAgICAgICBwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnUisnKSB7CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5SVU5OQUJMRSwgJycsCisgICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7CisgICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnRCcpIHsKKyAgICAgICAgICAgIHB1c2hTbGVlcChTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUCk7CisgICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnVCcpIHsKKyAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCisgICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlNUT1BQRUQsICcnLAorICAgICAgICAgICAgICAgIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ3QnKSB7CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5ERUJVRywgJycsCisgICAgICAgICAgICAgICAgcHJldlNsaWNlLmVuZCwge30sIG1pZER1cmF0aW9uKSk7CisgICAgICAgICAgfSBlbHNlIGlmIChwcmV2U2xpY2UuYXJncy5zdGF0ZVdoZW5EZXNjaGVkdWxlZCA9PSAnWicpIHsKKyAgICAgICAgICAgIHNsaWNlcy5wdXNoKG5ldyB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UoCisgICAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlpPTUJJRSwgJycsIGlvV2FpdElkLAorICAgICAgICAgICAgICAgIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ1gnKSB7CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5FWElUX0RFQUQsICcnLAorICAgICAgICAgICAgICAgIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ3gnKSB7CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5UQVNLX0RFQUQsICcnLAorICAgICAgICAgICAgICAgIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ0snKSB7CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5XQUtFX0tJTEwsICcnLAorICAgICAgICAgICAgICAgIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ1cnKSB7CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5XQUtJTkcsICcnLAorICAgICAgICAgICAgICAgIHByZXZTbGljZS5lbmQsIHt9LCBtaWREdXJhdGlvbikpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ0R8SycpIHsKKyAgICAgICAgICAgIHB1c2hTbGVlcChTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUF9XQUtFX0tJTEwpOworICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNsaWNlLmFyZ3Muc3RhdGVXaGVuRGVzY2hlZHVsZWQgPT0gJ0R8VycpIHsKKyAgICAgICAgICAgIHB1c2hTbGVlcChTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUF9XQUtJTkcpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzbGljZXMucHVzaChuZXcgdHIubW9kZWwuVGhyZWFkVGltZVNsaWNlKAorICAgICAgICAgICAgICAgIHRocmVhZCwgU0NIRURVTElOR19TVEFURS5VTktOT1dOLCAnJywKKyAgICAgICAgICAgICAgICBwcmV2U2xpY2UuZW5kLCB7fSwgbWlkRHVyYXRpb24pKTsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICBtZXNzYWdlOiAnVW5yZWNvZ25pemVkIHNsZWVwIHN0YXRlOiAnICsKKyAgICAgICAgICAgICAgICAgIHByZXZTbGljZS5hcmdzLnN0YXRlV2hlbkRlc2NoZWR1bGVkCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgcnVubmluZ1NsaWNlID0gbmV3IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZSgKKyAgICAgICAgICAgICAgdGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsICcnLAorICAgICAgICAgICAgICBuZXh0U2xpY2Uuc3RhcnQsIHt9LCBuZXh0U2xpY2UuZHVyYXRpb24pOworICAgICAgICAgIHJ1bm5pbmdTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZyA9IHByZXZTbGljZS5jcHU7CisgICAgICAgICAgc2xpY2VzLnB1c2gocnVubmluZ1NsaWNlKTsKKyAgICAgICAgfQorICAgICAgICB0aHJlYWQudGltZVNsaWNlcyA9IHNsaWNlczsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICBjb21wdXRlQ3B1VGltZXN0YW1wc0ZvclNsaWNlc0FzTmVlZGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIC8qIGl0ZXJhdGUgYWxsIHNsaWNlcyBhbmQgdHJ5IHRvIGZpZ3VyZSBvdXQgY3B1U3RhcnQvZW5kVGltZXMgKi8KKworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlcyBhIHRpbWUgdHJhbnNmb3JtIGZyb20gcGVyZiB0aW1lIHRvIHBhcmVudCB0aW1lIGJhc2VkIG9uIHRoZQorICAgICAqIGltcG9ydGVkIGNsb2NrIHN5bmMgcmVjb3Jkcy4KKyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IG9mZnNldCBmcm9tIHBlcmYgdGltZSB0byBwYXJlbnQgdGltZSBvciB1bmRlZmluZWQgaWYKKyAgICAgKiB0aGUgbmVjZXNzYXJ5IHN5bmMgcmVjb3JkcyB3ZXJlIG5vdCBmb3VuZC4KKyAgICAgKi8KKyAgICBjb21wdXRlVGltZVRyYW5zZm9ybTogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgaXNTZWNvbmRhcnlJbXBvcnQgPSB0aGlzLm1vZGVsLmdldENsb2NrU3luY1JlY29yZHNOYW1lZCgKKyAgICAgICAgICAnZnRyYWNlX2ltcG9ydGVyJykubGVuZ3RoICE9PSAwOworCisgICAgICB2YXIgbVN5bmNzID0gdGhpcy5tb2RlbF8uZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkKCdtb25vdG9uaWMnKTsKKyAgICAgIC8vIElmIHRoaXMgaXMgYSBzZWNvbmRhcnkgaW1wb3J0LCBhbmQgbm8gY2xvY2sgc3luY2luZyByZWNvcmRzIHdlcmUKKyAgICAgIC8vIGZvdW5kLCB0aGVuIGFib3J0IHRoZSBpbXBvcnQuIE90aGVyd2lzZSwganVzdCBza2lwIGNsb2NrIGFsaWdubWVudC4KKyAgICAgIGlmIChtU3luY3MubGVuZ3RoID09IDApCisgICAgICAgIHJldHVybiBpc1NlY29uZGFyeUltcG9ydCA/IHVuZGVmaW5lZCA6IDA7CisKKyAgICAgIC8vIFNoaWZ0IGFsbCB0aGUgc2xpY2UgdGltZXMgYmFzZWQgb24gdGhlIHN5bmMgcmVjb3JkLgorICAgICAgLy8gVE9ETyhza3lvc3RpbCk6IENvbXB1dGUgYSBzY2FsaW5nIGZhY3RvciBpZiB3ZSBoYXZlIG11bHRpcGxlIGNsb2NrIHN5bmMKKyAgICAgIC8vIHJlY29yZHMuCisgICAgICB2YXIgc3luYyA9IG1TeW5jc1swXS5hcmdzOworICAgICAgLy8gTkI6IHBhcmVudFRTIG9mIHplcm8gZGVub3RlcyBubyB0aW1lcy1zaGlmdDsgdGhpcyBpcworICAgICAgLy8gdXNlZCB3aGVuIHVzZXIgYW5kIGtlcm5lbCBldmVudCBjbG9ja3MgYXJlIGlkZW50aWNhbC4KKyAgICAgIGlmIChzeW5jLnBhcmVudFRTID09IDAgfHwgc3luYy5wYXJlbnRUUyA9PSBzeW5jLnBlcmZUUykKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICByZXR1cm4gc3luYy5wYXJlbnRUUyAtIHN5bmMucGVyZlRTOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGVhY2ggcmVnaXN0ZXJlZCBsaW51eCBwZXJmIGV2ZW50IHBhcnNlci4KKyAgICAgKiBUaGlzIGFsbG93cyB0aGUgcGFyc2VycyB0byByZWdpc3RlciBoYW5kbGVycyBmb3IgdGhlIGV2ZW50cyB0aGV5CisgICAgICogdW5kZXJzdGFuZC4gIFdlIGFsc28gcmVnaXN0ZXIgb3VyIG93biBzcGVjaWFsIGhhbmRsZXJzIChmb3IgdGhlCisgICAgICogdGltZXN0YW1wIHN5bmNocm9uaXphdGlvbiBtYXJrZXJzKS4KKyAgICAgKi8KKyAgICBjcmVhdGVQYXJzZXJzXzogZnVuY3Rpb24oKSB7CisgICAgICAvLyBJbnN0YW50aWF0ZSB0aGUgcGFyc2VyczsgdGhpcyB3aWxsIHJlZ2lzdGVyIGhhbmRsZXJzIGZvciBrbm93biBldmVudHMKKyAgICAgIHZhciBhbGxUeXBlSW5mb3MgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuCisgICAgICAgICAgUGFyc2VyLmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTsKKyAgICAgIHZhciBwYXJzZXJzID0gYWxsVHlwZUluZm9zLm1hcCgKKyAgICAgICAgICBmdW5jdGlvbih0eXBlSW5mbykgeworICAgICAgICAgICAgcmV0dXJuIG5ldyB0eXBlSW5mby5jb25zdHJ1Y3Rvcih0aGlzKTsKKyAgICAgICAgICB9LCB0aGlzKTsKKworICAgICAgcmV0dXJuIHBhcnNlcnM7CisgICAgfSwKKworICAgIHJlZ2lzdGVyRGVmYXVsdEhhbmRsZXJzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd0cmFjaW5nX21hcmtfd3JpdGUnLAorICAgICAgICAgIExpbnV4UGVyZkltcG9ydGVyLnByb3RvdHlwZS50cmFjZU1hcmtpbmdXcml0ZUV2ZW50LmJpbmQodGhpcykpOworICAgICAgLy8gTkI6IG9sZC1zdHlsZSB0cmFjZSBtYXJrZXJzOyBkZXByZWNhdGVkCisgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCcwJywKKyAgICAgICAgICBMaW51eFBlcmZJbXBvcnRlci5wcm90b3R5cGUudHJhY2VNYXJraW5nV3JpdGVFdmVudC5iaW5kKHRoaXMpKTsKKyAgICAgIC8vIFJlZ2lzdGVyIGR1bW15IGNsb2NrIHN5bmMgaGFuZGxlcnMgdG8gYXZvaWQgd2FybmluZ3MgaW4gdGhlIGxvZy4KKyAgICAgIHRoaXMucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3RyYWNpbmdfbWFya193cml0ZTp0cmFjZV9ldmVudF9jbG9ja19zeW5jJywKKyAgICAgICAgICBmdW5jdGlvbigpIHsgcmV0dXJuIHRydWU7IH0pOworICAgICAgdGhpcy5yZWdpc3RlckV2ZW50SGFuZGxlcignMDp0cmFjZV9ldmVudF9jbG9ja19zeW5jJywKKyAgICAgICAgICBmdW5jdGlvbigpIHsgcmV0dXJuIHRydWU7IH0pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBsaW51eCBwZXJmIGV2ZW50IHBhcnNlciB1c2VkIGJ5IGltcG9ydENwdURhdGEuCisgICAgICovCisgICAgcmVnaXN0ZXJFdmVudEhhbmRsZXI6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgaGFuZGxlcikgeworICAgICAgLy8gVE9ETyhzbGVmZmxlcikgaG93IHRvIGhhbmRsZSBjb25mbGljdHM/CisgICAgICB0aGlzLmV2ZW50SGFuZGxlcnNfW2V2ZW50TmFtZV0gPSBoYW5kbGVyOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSZWNvcmRzIHRoZSBmYWN0IHRoYXQgYSBwaWQgaGFzIGJlY29tZSBydW5uYWJsZS4gVGhpcyBkYXRhIHdpbGwKKyAgICAgKiBldmVudHVhbGx5IGdldCB1c2VkIHRvIGRlcml2ZSBlYWNoIHRocmVhZCdzIHRpbWVTbGljZXMgYXJyYXkuCisgICAgICovCisgICAgbWFya1BpZFJ1bm5hYmxlOiBmdW5jdGlvbih0cywgcGlkLCBjb21tLCBwcmlvLCBmcm9tUGlkKSB7CisgICAgICAvLyBUaGUgdGhlIHBpZHMgdGhhdCBnZXQgcGFzc2VkIGluIHRvIHRoaXMgZnVuY3Rpb24gYXJlIExpbnV4IGtlcm5lbAorICAgICAgLy8gcGlkcywgd2hpY2ggaWRlbnRpZnkgdGhyZWFkcy4gIFRoZSByZXN0IG9mIHRyYWNlLXZpZXdlciByZWZlcnMgdG8KKyAgICAgIC8vIHRoZXNlIGFzIHRpZHMsIHNvIHRoZSBjaGFuZ2Ugb2Ygbm9tZW5jbGF0dXJlIGhhcHBlbnMgaW4gdGhlIGZvbGxvd2luZworICAgICAgLy8gY29uc3RydWN0aW9uIG9mIHRoZSB3YWtldXAgb2JqZWN0LgorICAgICAgdGhpcy53YWtldXBzXy5wdXNoKHt0czogdHMsIHRpZDogcGlkLCBmcm9tVGlkOiBmcm9tUGlkfSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFByb2Nlc3NlcyBhIHRyYWNlX2V2ZW50X2Nsb2NrX3N5bmMgZXZlbnQuCisgICAgICovCisgICAgdHJhY2VDbG9ja1N5bmNFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgLy8gQ2hlY2sgZm9yIG5ldy1zdHlsZSBjbG9jayBzeW5jIHJlY29yZHMuCisgICAgICB2YXIgZXZlbnQgPSAvbmFtZT0oXHcrPylccyguKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKGV2ZW50KSB7CisgICAgICAgIHZhciBuYW1lID0gZXZlbnRbMV07CisgICAgICAgIHZhciBwaWVjZXMgPSBldmVudFsyXS5zcGxpdCgnICcpOworICAgICAgICB2YXIgYXJncyA9IHsKKyAgICAgICAgICBwZXJmVFM6IHRzCisgICAgICAgIH07CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGllY2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIHBhcnRzID0gcGllY2VzW2ldLnNwbGl0KCc9Jyk7CisgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPSAyKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdvbWdiYnEnKTsKKyAgICAgICAgICBhcmdzW3BhcnRzWzBdXSA9IHBhcnRzWzFdOworICAgICAgICB9CisgICAgICAgIHRoaXMuYWRkQ2xvY2tTeW5jUmVjb3JkKG5ldyBDbG9ja1N5bmNSZWNvcmQobmFtZSwgdHMsIGFyZ3MpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9CisKKyAgICAgIC8vIE9sZC1zdHlsZSBjbG9jayBzeW5jIHJlY29yZHMgZnJvbSBjaHJvbWl1bQorICAgICAgZXZlbnQgPSAvcGFyZW50X3RzPShcZCtcLj9cZCopLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdGhpcy5hZGRDbG9ja1N5bmNSZWNvcmQobmV3IENsb2NrU3luY1JlY29yZCgnbW9ub3RvbmljJywgdHMsIHsKKyAgICAgICAgcGVyZlRTOiB0cywKKyAgICAgICAgcGFyZW50VFM6IGV2ZW50WzFdICogMTAwMAorICAgICAgfSkpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFByb2Nlc3NlcyBhIHRyYWNlX21hcmtpbmdfd3JpdGUgZXZlbnQuCisgICAgICovCisgICAgdHJhY2VNYXJraW5nV3JpdGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWROYW1lKSB7CisKKyAgICAgIC8vIFNvbWUgcHJvZmlsZXMgZW5kIHVwIHdpdGggYSBcblwgb24gdGhlIGVuZCBvZiBlYWNoIGxpbmUuIFN0cmlwIGl0CisgICAgICAvLyBiZWZvcmUgd2UgZG8gdGhlIGNvbXBhcmlzb25zLgorICAgICAgZXZlbnRCYXNlLmRldGFpbHMgPSBldmVudEJhc2UuZGV0YWlscy5yZXBsYWNlKC9cXG4uKiQvLCAnJyk7CisKKyAgICAgIHZhciBldmVudCA9IC9eXHMqKFx3Kyk6XHMqKC4qKSQvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkgeworICAgICAgICAvLyBDaGVjayBpZiB0aGUgZXZlbnQgbWF0Y2hlcyBldmVudHMgdHJhY2VkIGJ5IHRoZSBBbmRyb2lkIGZyYW1ld29yaworICAgICAgICB2YXIgdGFnID0gZXZlbnRCYXNlLmRldGFpbHMuc3Vic3RyaW5nKDAsIDIpOworICAgICAgICBpZiAodGFnID09ICdCfCcgfHwgdGFnID09ICdFJyB8fCB0YWcgPT0gJ0V8JyB8fCB0YWcgPT0gJ1h8JyB8fAorICAgICAgICAgICAgdGFnID09ICdDfCcgfHwgdGFnID09ICdTfCcgfHwgdGFnID09ICdGfCcpIHsKKyAgICAgICAgICBldmVudEJhc2Uuc3ViRXZlbnROYW1lID0gJ2FuZHJvaWQnOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgZXZlbnRCYXNlLnN1YkV2ZW50TmFtZSA9IGV2ZW50WzFdOworICAgICAgICBldmVudEJhc2UuZGV0YWlscyA9IGV2ZW50WzJdOworICAgICAgfQorCisgICAgICB2YXIgd3JpdGVFdmVudE5hbWUgPSBldmVudE5hbWUgKyAnOicgKyBldmVudEJhc2Uuc3ViRXZlbnROYW1lOworICAgICAgdmFyIGhhbmRsZXIgPSB0aGlzLmV2ZW50SGFuZGxlcnNfW3dyaXRlRXZlbnROYW1lXTsKKyAgICAgIGlmICghaGFuZGxlcikgeworICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAorICAgICAgICAgIG1lc3NhZ2U6ICdVbmtub3duIHRyYWNlX21hcmtpbmdfd3JpdGUgZXZlbnQgJyArIHdyaXRlRXZlbnROYW1lCisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBoYW5kbGVyKHdyaXRlRXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSwgdGhyZWFkTmFtZSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFBvcHVsYXRlcyBtb2RlbCBjbG9ja1N5bmNSZWNvcmRzIHdpdGggZm91bmQgY2xvY2sgc3luYyBtYXJrZXJzLgorICAgICAqLworICAgIGltcG9ydENsb2NrU3luY1JlY29yZHM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5mb3JFYWNoTGluZShmdW5jdGlvbih0ZXh0LCBldmVudEJhc2UsIGNwdU51bWJlciwgcGlkLCB0cykgeworICAgICAgICB2YXIgZXZlbnROYW1lID0gZXZlbnRCYXNlLmV2ZW50TmFtZTsKKyAgICAgICAgaWYgKGV2ZW50TmFtZSAhPT0gJ3RyYWNpbmdfbWFya193cml0ZScgJiYgZXZlbnROYW1lICE9PSAnMCcpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAodHJhY2VFdmVudENsb2NrU3luY1JFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpKQorICAgICAgICAgIHRoaXMudHJhY2VDbG9ja1N5bmNFdmVudChldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgICAgaWYgKGdlbmVyaWNDbG9ja1N5bmNSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKSkKKyAgICAgICAgICB0aGlzLnRyYWNlQ2xvY2tTeW5jRXZlbnQoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSk7CisgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisgICAgYWRkQ2xvY2tTeW5jUmVjb3JkOiBmdW5jdGlvbihjc3IpIHsKKyAgICAgIHRoaXMubmV3bHlBZGRlZENsb2NrU3luY1JlY29yZHNfLnB1c2goY3NyKTsKKyAgICAgIHRoaXMubW9kZWxfLmNsb2NrU3luY1JlY29yZHMucHVzaChjc3IpOworICAgIH0sCisKKyAgICBzaGlmdE5ld2x5QWRkZWRDbG9ja1N5bmNSZWNvcmRzOiBmdW5jdGlvbih0aW1lU2hpZnQpIHsKKyAgICAgIHRoaXMubmV3bHlBZGRlZENsb2NrU3luY1JlY29yZHNfLmZvckVhY2goZnVuY3Rpb24oY3NyKSB7CisgICAgICAgIGNzci50cyArPSB0aW1lU2hpZnQ7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogV2Fsa3MgdGhlIHRoaXMuZXZlbnRzXyBzdHJ1Y3R1cmUgYW5kIGNyZWF0ZXMgQ3B1IG9iamVjdHMuCisgICAgICovCisgICAgaW1wb3J0Q3B1RGF0YTogZnVuY3Rpb24odGltZVNoaWZ0KSB7CisgICAgICB0aGlzLmZvckVhY2hMaW5lKGZ1bmN0aW9uKHRleHQsIGV2ZW50QmFzZSwgY3B1TnVtYmVyLCBwaWQsIHRzKSB7CisgICAgICAgIHZhciBldmVudE5hbWUgPSBldmVudEJhc2UuZXZlbnROYW1lOworICAgICAgICB2YXIgaGFuZGxlciA9IHRoaXMuZXZlbnRIYW5kbGVyc19bZXZlbnROYW1lXTsKKyAgICAgICAgaWYgKCFoYW5kbGVyKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ1Vua25vd24gZXZlbnQgJyArIGV2ZW50TmFtZSArICcgKCcgKyB0ZXh0ICsgJyknCisgICAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRzICs9IHRpbWVTaGlmdDsKKyAgICAgICAgaWYgKCFoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ01hbGZvcm1lZCAnICsgZXZlbnROYW1lICsgJyBldmVudCAoJyArIHRleHQgKyAnKScKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogV2Fsa3MgdGhlIHRoaXMuZXZlbnRzXyBzdHJ1Y3R1cmUgYW5kIHBvcHVsYXRlcyB0aGlzLmxpbmVzXy4KKyAgICAgKi8KKyAgICBwYXJzZUxpbmVzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBsaW5lcyA9IFtdOworICAgICAgdmFyIGV4dHJhY3RSZXN1bHQgPSBMaW51eFBlcmZJbXBvcnRlci5fZXh0cmFjdEV2ZW50c0Zyb21TeXN0cmFjZUhUTUwoCisgICAgICAgICAgdGhpcy5ldmVudHNfLCB0cnVlKTsKKyAgICAgIGlmICghZXh0cmFjdFJlc3VsdC5vaykKKyAgICAgICAgZXh0cmFjdFJlc3VsdCA9IExpbnV4UGVyZkltcG9ydGVyLl9leHRyYWN0RXZlbnRzRnJvbVN5c3RyYWNlTXVsdGlIVE1MKAorICAgICAgICAgICAgdGhpcy5ldmVudHNfLCB0cnVlKTsKKyAgICAgIHZhciBsaW5lcyA9IGV4dHJhY3RSZXN1bHQub2sgPworICAgICAgICBleHRyYWN0UmVzdWx0LmxpbmVzIDogdGhpcy5ldmVudHNfLnNwbGl0KCdcbicpOworCisgICAgICB2YXIgbGluZVBhcnNlciA9IG51bGw7CisgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsgbGluZU51bWJlciA8IGxpbmVzLmxlbmd0aDsgKytsaW5lTnVtYmVyKSB7CisgICAgICAgIHZhciBsaW5lID0gbGluZXNbbGluZU51bWJlcl0udHJpbSgpOworICAgICAgICBpZiAobGluZS5sZW5ndGggPT0gMCB8fCAvXiMvLnRlc3QobGluZSkpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChsaW5lUGFyc2VyID09IG51bGwpIHsKKyAgICAgICAgICBsaW5lUGFyc2VyID0gYXV0b0RldGVjdExpbmVQYXJzZXIobGluZSk7CisgICAgICAgICAgaWYgKGxpbmVQYXJzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdDYW5ub3QgcGFyc2UgbGluZTogJyArIGxpbmUKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBldmVudEJhc2UgPSBsaW5lUGFyc2VyKGxpbmUpOworICAgICAgICBpZiAoIWV2ZW50QmFzZSkgeworICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdVbnJlY29nbml6ZWQgbGluZTogJyArIGxpbmUKKyAgICAgICAgICB9KTsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMubGluZXNfLnB1c2goWworICAgICAgICAgIGxpbmUsCisgICAgICAgICAgZXZlbnRCYXNlLAorICAgICAgICAgIHBhcnNlSW50KGV2ZW50QmFzZS5jcHVOdW1iZXIpLAorICAgICAgICAgIHBhcnNlSW50KGV2ZW50QmFzZS5waWQpLAorICAgICAgICAgIHBhcnNlRmxvYXQoZXZlbnRCYXNlLnRpbWVzdGFtcCkgKiAxMDAwCisgICAgICAgIF0pOworICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDYWxscyB8aGFuZGxlcnwgZm9yIGV2ZXJ5IHBhcnNlZCBsaW5lLgorICAgICAqLworICAgIGZvckVhY2hMaW5lOiBmdW5jdGlvbihoYW5kbGVyKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGluZXNfLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBsaW5lID0gdGhpcy5saW5lc19baV07CisgICAgICAgIGhhbmRsZXIuYXBwbHkodGhpcywgbGluZSk7CisgICAgICB9CisgICAgfQorICB9OworCisgIHRyLmltcG9ydGVyLkltcG9ydGVyLnJlZ2lzdGVyKExpbnV4UGVyZkltcG9ydGVyKTsKKworICByZXR1cm4geworICAgIExpbnV4UGVyZkltcG9ydGVyOiBMaW51eFBlcmZJbXBvcnRlciwKKyAgICBfTGludXhQZXJmSW1wb3J0ZXJUZXN0RXhwb3J0czogVGVzdEV4cG9ydHMKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RmMDFlNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyX3Rlc3QuaHRtbApAQCAtMCwwICsxLDQzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgdmFyIExpbnV4UGVyZkltcG9ydGVyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLkxpbnV4UGVyZkltcG9ydGVyOworICB2YXIgTGludXhQZXJmSW1wb3J0ZXJUZXN0RXhwb3J0cyA9CisgICAgICB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuX0xpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHM7CisgIHRlc3QoJ2xpbmVQYXJzZXJXaXRoTGVnYWN5Rm10JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHAgPSBMaW51eFBlcmZJbXBvcnRlclRlc3RFeHBvcnRzLmxpbmVQYXJzZXJXaXRoTGVnYWN5Rm10OyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIHZhciB4ID0gcCgnICAgPGlkbGU+LTAgICAgIFswMDFdICA0NDY3Ljg0MzQ3NTogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgJ3ByZXZfY29tbT1zd2FwcGVyIHByZXZfcGlkPTAgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIgPT0+ICcgKworICAgICAgICAnbmV4dF9jb21tPVN1cmZhY2VGbGluZ2VyIG5leHRfcGlkPTE3OCBuZXh0X3ByaW89MTEyJyk7CisgICAgYXNzZXJ0LmlzTm90TnVsbCh4KTsKKyAgICBhc3NlcnQuZXF1YWwoeC50aHJlYWROYW1lLCAnPGlkbGU+Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHgucGlkLCAnMCcpOworICAgIGFzc2VydC5lcXVhbCh4LmNwdU51bWJlciwgJzAwMScpOworICAgIGFzc2VydC5lcXVhbCh4LnRpbWVzdGFtcCwgJzQ0NjcuODQzNDc1Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHguZXZlbnROYW1lLCAnc2NoZWRfc3dpdGNoJyk7CisgICAgYXNzZXJ0LmVxdWFsKCdwcmV2X2NvbW09c3dhcHBlciBwcmV2X3BpZD0wIHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SJyArCisgICAgICAgICcgPT0+IG5leHRfY29tbT1TdXJmYWNlRmxpbmdlciBuZXh0X3BpZD0xNzggbmV4dF9wcmlvPTExMicsIHguZGV0YWlscyk7CisKKyAgICB2YXIgeCA9IHAoJ0JpbmRlci1UaHJlYWQgIy02NDcgICBbMDAxXSAgIDI2MC40NjQyOTQ6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICdwcmV2X2NvbW09QmluZGVyIFRocmVhZCAjIHByZXZfcGlkPTY0NyBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9RCAnICsKKyAgICAgICAgJyA9PT4gbmV4dF9jb21tPS5hbmRyb2lkLmNocm9tZSBuZXh0X3BpZD0xNTYyIG5leHRfcHJpbz0xMjAnKTsKKyAgICBhc3NlcnQuaXNOb3ROdWxsKHgpOworICAgIGFzc2VydC5lcXVhbCh4LnRocmVhZE5hbWUsICdCaW5kZXItVGhyZWFkICMnKTsKKyAgICBhc3NlcnQuZXF1YWwoeC5waWQsICc2NDcnKTsKKyAgfSk7CisKKyAgdGVzdCgnbGluZVBhcnNlcldpdGhJUlFJbmZvJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHAgPSBMaW51eFBlcmZJbXBvcnRlclRlc3RFeHBvcnRzLmxpbmVQYXJzZXJXaXRoSVJRSW5mbzsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICB2YXIgeCA9IHAoJyAgICAgc3lzdHJhY2Uuc2gtNTQ0MSAgWzAwMV0gZC4uLiAgMTAzMS4wOTE1NzA6ICcgKworICAgICAgICAnc2NoZWRfd2FrZXVwOiBjb21tPWRlYnVnZCBwaWQ9NDk3OCBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDAnKTsKKyAgICBhc3NlcnQuaXNOb3ROdWxsKHgpOworICAgIGFzc2VydC5lcXVhbCh4LnRocmVhZE5hbWUsICdzeXN0cmFjZS5zaCcpOworICAgIGFzc2VydC5lcXVhbCh4LnBpZCwgJzU0NDEnKTsKKyAgICBhc3NlcnQuZXF1YWwoeC5jcHVOdW1iZXIsICcwMDEnKTsKKyAgICBhc3NlcnQuZXF1YWwoeC50aW1lc3RhbXAsICcxMDMxLjA5MTU3MCcpOworICAgIGFzc2VydC5lcXVhbCh4LmV2ZW50TmFtZSwgJ3NjaGVkX3dha2V1cCcpOworICAgIGFzc2VydC5lcXVhbCh4LmRldGFpbHMsICdjb21tPWRlYnVnZCBwaWQ9NDk3OCBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDAnKTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgfSk7CisKKyAgdGVzdCgnbGluZVBhcnNlcldpdGhUR0lEJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHAgPSBMaW51eFBlcmZJbXBvcnRlclRlc3RFeHBvcnRzLmxpbmVQYXJzZXJXaXRoVEdJRDsKKyAgICB2YXIgeCA9IHAoJyAgICAgc3lzdHJhY2Uuc2gtNTQ0MSAgKDU0MzIxKSBbMDAxXSBkLi4uICAxMDMxLjA5MTU3MDogJyArCisgICAgICAgICdzY2hlZF93YWtldXA6IGNvbW09ZGVidWdkIHBpZD00OTc4IHByaW89MTIwIHN1Y2Nlc3M9MSB0YXJnZXRfY3B1PTAwMCcpOworICAgIGFzc2VydC5pc05vdE51bGwoeCk7CisgICAgYXNzZXJ0LmVxdWFsKHgudGhyZWFkTmFtZSwgJ3N5c3RyYWNlLnNoJyk7CisgICAgYXNzZXJ0LmVxdWFsKHgucGlkLCAnNTQ0MScpOworICAgIGFzc2VydC5lcXVhbCh4LnRnaWQsICc1NDMyMScpOworICAgIGFzc2VydC5lcXVhbCh4LmNwdU51bWJlciwgJzAwMScpOworICAgIGFzc2VydC5lcXVhbCh4LnRpbWVzdGFtcCwgJzEwMzEuMDkxNTcwJyk7CisgICAgYXNzZXJ0LmVxdWFsKHguZXZlbnROYW1lLCAnc2NoZWRfd2FrZXVwJyk7CisgICAgYXNzZXJ0LmVxdWFsKHguZGV0YWlscywgJ2NvbW09ZGVidWdkIHBpZD00OTc4IHByaW89MTIwIHN1Y2Nlc3M9MSB0YXJnZXRfY3B1PTAwMCcpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgdmFyIHggPSBwKCcgICAgIHN5c3RyYWNlLnNoLTU0NDEgICggIDMyMSkgWzAwMV0gZC4uLiAgMTAzMS4wOTE1NzA6ICcgKworICAgICAgICAnc2NoZWRfd2FrZXVwOiBjb21tPWRlYnVnZCBwaWQ9NDk3OCBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDAnKTsKKyAgICBhc3NlcnQuaXNOb3ROdWxsKHgpOworICAgIGFzc2VydC5lcXVhbCh4LnRnaWQsICczMjEnKTsKKworICAgIHZhciB4ID0gcCgnICAgICBzeXN0cmFjZS5zaC01NDQxICAoLS0tLS0pIFswMDFdIGQuLi4gIDEwMzEuMDkxNTcwOiAnICsKKyAgICAgICAgJ3NjaGVkX3dha2V1cDogY29tbT1kZWJ1Z2QgcGlkPTQ5NzggcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAwJyk7CisgICAgYXNzZXJ0LmlzTm90TnVsbCh4KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoeC50Z2lkKTsKKyAgfSk7CisKKyAgdGVzdCgnYXV0b2RldGVjdExpbmVDb3JuZXJDYXNlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkZXRlY3RQYXJzZXIgPQorICAgICAgICBMaW51eFBlcmZJbXBvcnRlclRlc3RFeHBvcnRzLmF1dG9EZXRlY3RMaW5lUGFyc2VyOworICAgIHZhciBsaW5lUGFyc2VyV2l0aExlZ2FjeUZtdCA9CisgICAgICAgIExpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhMZWdhY3lGbXQ7CisgICAgdmFyIGxpbmVQYXJzZXJXaXRoSVJRSW5mbyA9CisgICAgICAgIExpbnV4UGVyZkltcG9ydGVyVGVzdEV4cG9ydHMubGluZVBhcnNlcldpdGhJUlFJbmZvOworICAgIHZhciBsaW5lUGFyc2VyV2l0aFRHSUQgPQorICAgICAgICBMaW51eFBlcmZJbXBvcnRlclRlc3RFeHBvcnRzLmxpbmVQYXJzZXJXaXRoVEdJRDsKKworICAgIHZhciBsaW5lV2l0aExlZ2FjeUZtdCA9CisgICAgICAgICdzeXN0cmFjZS5zaC04MTcwICBbMDAxXSAxNTE4MC45Nzg4MTM6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICdwcmV2X2NvbW09c3lzdHJhY2Uuc2ggcHJldl9waWQ9ODE3MCBwcmV2X3ByaW89MTIwICcgKworICAgICAgICAncHJldl9zdGF0ZT14ID09PiBuZXh0X2NvbW09a3dvcmtlci8xOjAgbmV4dF9waWQ9Nzg3MyAnICsKKyAgICAgICAgJ25leHRfcHJpbz0xMjAnOworICAgIHZhciBkZXRlY3RlZCA9IGRldGVjdFBhcnNlcihsaW5lV2l0aExlZ2FjeUZtdCk7CisgICAgYXNzZXJ0LmVxdWFsKGxpbmVQYXJzZXJXaXRoTGVnYWN5Rm10LCBkZXRlY3RlZCk7CisKKyAgICB2YXIgbGluZVdpdGhJUlFJbmZvID0KKyAgICAgICAgJ3N5c3RyYWNlLnNoLTgxNzAgIFswMDFdIGQuLi4gMTUxODAuOTc4ODEzOiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAncHJldl9jb21tPXN5c3RyYWNlLnNoIHByZXZfcGlkPTgxNzAgcHJldl9wcmlvPTEyMCAnICsKKyAgICAgICAgJ3ByZXZfc3RhdGU9eCA9PT4gbmV4dF9jb21tPWt3b3JrZXIvMTowIG5leHRfcGlkPTc4NzMgJyArCisgICAgICAgICduZXh0X3ByaW89MTIwJzsKKyAgICB2YXIgZGV0ZWN0ZWQgPSBkZXRlY3RQYXJzZXIobGluZVdpdGhJUlFJbmZvKTsKKyAgICBhc3NlcnQuZXF1YWwobGluZVBhcnNlcldpdGhJUlFJbmZvLCBkZXRlY3RlZCk7CisKKyAgICB2YXIgbGluZVdpdGhUR0lEID0KKyAgICAgICAgJ3N5c3RyYWNlLnNoLTgxNzAgICg1NDMyMSkgWzAwMV0gZC4uLiAxNTE4MC45Nzg4MTM6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICdwcmV2X2NvbW09c3lzdHJhY2Uuc2ggcHJldl9waWQ9ODE3MCBwcmV2X3ByaW89MTIwICcgKworICAgICAgICAncHJldl9zdGF0ZT14ID09PiBuZXh0X2NvbW09a3dvcmtlci8xOjAgbmV4dF9waWQ9Nzg3MyAnICsKKyAgICAgICAgJ25leHRfcHJpbz0xMjAnOworICAgIHZhciBkZXRlY3RlZCA9IGRldGVjdFBhcnNlcihsaW5lV2l0aFRHSUQpOworICAgIGFzc2VydC5lcXVhbChsaW5lUGFyc2VyV2l0aFRHSUQsIGRldGVjdGVkKTsKKyAgfSk7CisKKyAgdGVzdCgndHJhY2VFdmVudENsb2NrU3luY1JFJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlID0gTGludXhQZXJmSW1wb3J0ZXJUZXN0RXhwb3J0cy50cmFjZUV2ZW50Q2xvY2tTeW5jUkU7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgdmFyIHggPSByZS5leGVjKCd0cmFjZV9ldmVudF9jbG9ja19zeW5jOiBwYXJlbnRfdHM9MTk1ODE0Nzc1MDgnKTsKKyAgICBhc3NlcnQuaXNOb3ROdWxsKHgpOworICAgIGFzc2VydC5lcXVhbCh4WzFdLCAnMTk1ODE0Nzc1MDgnKTsKKworICAgIHZhciB4ID0gcmUuZXhlYygndHJhY2VfZXZlbnRfY2xvY2tfc3luYzogcGFyZW50X3RzPTEyMy40NTYnKTsKKyAgICBhc3NlcnQuaXNOb3ROdWxsKHgpOworICAgIGFzc2VydC5lcXVhbCh4WzFdLCAnMTIzLjQ1NicpOworICB9KTsKKworICB0ZXN0KCdnZW5lcmljQ2xvY2tTeW5jJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJyMgdHJhY2VyOiBub3AnLAorICAgICAgJyMnLAorICAgICAgJyMgICAgICAgICAgIFRBU0stUElEICAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTicsCisgICAgICAnIyAgICAgICAgICAgICAgfCB8ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwnLAorICAgICAgJ3NoLTI2MTIxIFswMDBdIC4uLjEgMTA3NDY0LjA6IHRyYWNpbmdfbWFya193cml0ZTogdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogbmFtZT1iYXR0b3IgcmVndWxhdG9yPTg5NDFfc21iYl9ib29zdCcgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKworICAgIHZhciBiYXR0b3JTeW5jcyA9IG0uZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkKCdiYXR0b3InKTsKKyAgICBhc3NlcnQuZXF1YWwoYmF0dG9yU3luY3MubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoYmF0dG9yU3luY3NbMF0udHMsIDEwNzQ2NDAwMC4wKTsKKyAgICBhc3NlcnQuZXF1YWwoYmF0dG9yU3luY3NbMF0uYXJncy5wZXJmVFMsIDEwNzQ2NDAwMC4wKTsKKyAgICBhc3NlcnQuZXF1YWwoYmF0dG9yU3luY3NbMF0uYXJncy5yZWd1bGF0b3IsICc4OTQxX3NtYmJfYm9vc3QnKTsKKyAgfSk7CisKKyAgdGVzdCgnY2FuSW1wb3J0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJyMgdHJhY2VyOiBub3AnLAorICAgICAgJyMnLAorICAgICAgJyMgICAgICAgICAgIFRBU0stUElEICAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTicsCisgICAgICAnIyAgICAgICAgICAgICAgfCB8ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwnLAorICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gIDQ0NjcuODQzNDc1OiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAgICdwcmV2X2NvbW09c3dhcHBlciBwcmV2X3BpZD0wIHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SID09PiAnICsKKyAgICAgICAgICAnbmV4dF9jb21tPVN1cmZhY2VGbGluZ2VyIG5leHRfcGlkPTE3OCBuZXh0X3ByaW89MTEyJywKKworICAgICAgJyAgU3VyZmFjZUZsaW5nZXItMTc4ICAgWzAwMV0gIDQ0NjcuODQzNTM2OiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAgICdwcmV2X2NvbW09U3VyZmFjZUZsaW5nZXIgcHJldl9waWQ9MTc4IHByZXZfcHJpbz0xMTIgcHJldl9zdGF0ZT1TICcgKworICAgICAgICAgICc9PT4gbmV4dF9jb21tPWt3b3JrZXIvdToyIG5leHRfcGlkPTI4NDQgbmV4dF9wcmlvPTEyMCcsCisKKyAgICAgICcgICAgIGt3b3JrZXIvdToyLTI4NDQgIFswMDFdICA0NDY3Ljg0MzU2Nzogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgICAncHJldl9jb21tPWt3b3JrZXIvdToyIHByZXZfcGlkPTI4NDQgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVMgJyArCisgICAgICAgICAgJz09PiBuZXh0X2NvbW09c3dhcHBlciBuZXh0X3BpZD0wIG5leHRfcHJpbz0xMjAnLAorCisgICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAxXSAgNDQ2Ny44NDQyMDg6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1zd2FwcGVyIHByZXZfcGlkPTAgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIgPT0+ICcgKworICAgICAgICAgICduZXh0X2NvbW09a3dvcmtlci91OjIgbmV4dF9waWQ9Mjg0NCBuZXh0X3ByaW89MTIwJworICAgIF07CisgICAgYXNzZXJ0LmlzVHJ1ZShMaW51eFBlcmZJbXBvcnRlci5jYW5JbXBvcnQobGluZXMuam9pbignXG4nKSkpOworCisgICAgdmFyIGxpbmVzID0gWworICAgICAgJyAgICAgICAgICA8aWRsZT4tMCAgICAgWzAwMV0gIDQ0NjcuODQzNDc1OiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAgICdwcmV2X2NvbW09c3dhcHBlciBwcmV2X3BpZD0wIHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SID09PiAnICsKKyAgICAgICAgICAgICAgJ25leHRfY29tbT1TdXJmYWNlRmxpbmdlciBuZXh0X3BpZD0xNzggbmV4dF9wcmlvPTExMicKKyAgICBdOworICAgIGFzc2VydC5pc1RydWUoTGludXhQZXJmSW1wb3J0ZXIuY2FuSW1wb3J0KGxpbmVzLmpvaW4oJ1xuJykpKTsKKworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdICA0NDY3Ljg0MzQ3NTogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgICAncHJldl9jb21tPXN3YXBwZXIgcHJldl9waWQ9MCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UiA9PT4gJyArCisgICAgICAgICAgJ25leHRfY29tbT1TdXJmYWNlRmxpbmdlciBuZXh0X3BpZD0xNzggbmV4dF9wcmlvPTExMicsCisKKyAgICAgICcgIFN1cmZhY2VGbGluZ2VyLTE3OCAgIFswMDFdICA0NDY3Ljg0MzUzNjogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgICAncHJldl9jb21tPVN1cmZhY2VGbGluZ2VyIHByZXZfcGlkPTE3OCBwcmV2X3ByaW89MTEyICcgKworICAgICAgICAgICdwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1rd29ya2VyL3U6MiBuZXh0X3BpZD0yODQ0ICcgKworICAgICAgICAgICduZXh0X3ByaW89MTIwJworICAgIF07CisgICAgYXNzZXJ0LmlzVHJ1ZShMaW51eFBlcmZJbXBvcnRlci5jYW5JbXBvcnQobGluZXMuam9pbignXG4nKSkpOworCisgICAgdmFyIGxpbmVzID0gWworICAgICAgJ1NvbWVSYW5kb21UZXh0JywKKyAgICAgICdNb3JlIHJhbmRvbSB0ZXh0JworICAgIF07CisgICAgYXNzZXJ0LmlzRmFsc2UoTGludXhQZXJmSW1wb3J0ZXIuY2FuSW1wb3J0KGxpbmVzLmpvaW4oJ1xuJykpKTsKKyAgfSk7CisKKyAgdGVzdCgnY2FuSW1wb3J0MzRBbmRMYXRlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICcjIHRyYWNlcjogbm9wJywKKyAgICAgICcjJywKKyAgICAgICcjIGVudHJpZXMtaW4tYnVmZmVyL2VudHJpZXMtd3JpdHRlbjogNTUxOTEvNTUxOTEgICAjUDoyJywKKyAgICAgICcjJywKKyAgICAgICcjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXy0tLS0tPT4gaXJxcy1vZmYnLAorICAgICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gXy0tLS09PiBuZWVkLXJlc2NoZWQnLAorICAgICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEnLAorICAgICAgJyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoJywKKyAgICAgICcjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8fCAvICAgICBkZWxheScsCisgICAgICAnIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICB8fHx8ICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04nLAorICAgICAgJyMgICAgICAgICAgICAgIHwgfCAgICAgICB8ICAgfHx8fCAgICAgICB8ICAgICAgICAgfCcsCisgICAgICAnICAgICBzeXN0cmFjZS5zaC01NDQxICBbMDAxXSBkLi4uICAxMDMxLjA5MTU3MDogc2NoZWRfd2FrZXVwOiAnICsKKyAgICAgICAgICAnY29tbT1kZWJ1Z2QgcGlkPTQ5NzggcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAwJywKKyAgICAgICcgICAgIHN5c3RyYWNlLnNoLTU0NDEgIFswMDFdIGQuLi4gIDEwMzEuMDkxNTg0OiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAgICdwcmV2X2NvbW09c3lzdHJhY2Uuc2ggcHJldl9waWQ9NTQ0MSBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9eCAnICsKKyAgICAgICAgICAnPT0+IG5leHRfY29tbT1jaHJvbWUgbmV4dF9waWQ9NTQxOCBuZXh0X3ByaW89MTIwJworICAgIF07CisgICAgYXNzZXJ0LmlzVHJ1ZShMaW51eFBlcmZJbXBvcnRlci5jYW5JbXBvcnQobGluZXMuam9pbignXG4nKSkpOworCisgICAgdmFyIGxpbmVzID0gWworICAgICAgJyAgICAgc3lzdHJhY2Uuc2gtNTQ0MSAgWzAwMV0gZC4uLiAgMTAzMS4wOTE1NzA6IHNjaGVkX3dha2V1cDogJyArCisgICAgICAgICAgJ2NvbW09ZGVidWdkIHBpZD00OTc4IHByaW89MTIwIHN1Y2Nlc3M9MSB0YXJnZXRfY3B1PTAwMCcsCisgICAgICAnICAgICBzeXN0cmFjZS5zaC01NDQxICBbMDAxXSBkLi4uICAxMDMxLjA5MTU4NDogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgICAncHJldl9jb21tPXN5c3RyYWNlLnNoIHByZXZfcGlkPTU0NDEgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPXggJyArCisgICAgICAgICAgJz09PiBuZXh0X2NvbW09Y2hyb21lIG5leHRfcGlkPTU0MTggbmV4dF9wcmlvPTEyMCcKKyAgICBdOworICAgIGFzc2VydC5pc1RydWUoTGludXhQZXJmSW1wb3J0ZXIuY2FuSW1wb3J0KGxpbmVzLmpvaW4oJ1xuJykpKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0T25lU2VxdWVuY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAxXSAgNDQ2Ny44NDM0NzU6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1zd2FwcGVyIHByZXZfcGlkPTAgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIgPT0+ICcgKworICAgICAgICAgICduZXh0X2NvbW09U3VyZmFjZUZsaW5nZXIgbmV4dF9waWQ9MTc4IG5leHRfcHJpbz0xMTInLAorCisgICAgICAnICBTdXJmYWNlRmxpbmdlci0xNzggICBbMDAxXSAgNDQ2Ny44NDM1MzY6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1TdXJmYWNlRmxpbmdlciBwcmV2X3BpZD0xNzggcHJldl9wcmlvPTExMiAnICsKKyAgICAgICAgICAncHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09a3dvcmtlci91OjIgbmV4dF9waWQ9Mjg0NCAnICsKKyAgICAgICAgICAnbmV4dF9wcmlvPTEyMCcsCisKKyAgICAgICcgICAgIGt3b3JrZXIvdToyLTI4NDQgIFswMDFdICA0NDY3Ljg0MzU2Nzogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgICAncHJldl9jb21tPWt3b3JrZXIvdToyIHByZXZfcGlkPTI4NDQgcHJldl9wcmlvPTEyMCAnICsKKyAgICAgICAgICAncHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09c3dhcHBlciBuZXh0X3BpZD0wIG5leHRfcHJpbz0xMjAnCisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisKKyAgICB2YXIgYyA9IG0ua2VybmVsLmNwdXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKGMuc2xpY2VzLmxlbmd0aCwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwoYy5zbGljZXNbMF0udGl0bGUsICdTdXJmYWNlRmxpbmdlcicpOworICAgIGFzc2VydC5lcXVhbChjLnNsaWNlc1swXS5zdGFydCwgNDQ2Nzg0My40NzUpOworICAgIGFzc2VydC5jbG9zZVRvKC41MzYgLSAuNDc1LCBjLnNsaWNlc1swXS5kdXJhdGlvbiwgMWUtNSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE9uZVNlcXVlbmNlV2l0aFNwYWN5VGhyZWFkTmFtZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdICA0NDY3Ljg0MzQ3NTogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgICAncHJldl9jb21tPXN3YXBwZXIgcHJldl9waWQ9MCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UiA9PT4gJyArCisgICAgICAgICAgJ25leHRfY29tbT1TdXJmYWNlIEZsaW5nZXIgIG5leHRfcGlkPTE3OCBuZXh0X3ByaW89MTEyJywKKworICAgICAgJ1N1cmZhY2UgRmxpbmdlciAtMTc4ICAgWzAwMV0gIDQ0NjcuODQzNTM2OiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAgICdwcmV2X2NvbW09U3VyZmFjZSBGbGluZ2VyICBwcmV2X3BpZD0xNzggcHJldl9wcmlvPTExMiAnICsKKyAgICAgICAgICAncHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09a3dvcmtlci91OjIgbmV4dF9waWQ9Mjg0NCAnICsKKyAgICAgICAgICAnbmV4dF9wcmlvPTEyMCcsCisKKyAgICAgICcgICAgIGt3b3JrZXIvdToyLTI4NDQgIFswMDFdICA0NDY3Ljg0MzU2Nzogc2NoZWRfc3dpdGNoOiAnICsKKyAgICAgICAgICAncHJldl9jb21tPWt3b3JrZXIvdToyIHByZXZfcGlkPTI4NDQgcHJldl9wcmlvPTEyMCAnICsKKyAgICAgICAgICAncHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09c3dhcHBlciBuZXh0X3BpZD0wIG5leHRfcHJpbz0xMjAnCisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisKKyAgICB2YXIgYyA9IG0ua2VybmVsLmNwdXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKGMuc2xpY2VzLmxlbmd0aCwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwoYy5zbGljZXNbMF0udGl0bGUsICdTdXJmYWNlIEZsaW5nZXIgJyk7CisgICAgYXNzZXJ0LmVxdWFsKGMuc2xpY2VzWzBdLnN0YXJ0LCA0NDY3ODQzLjQ3NSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oLjUzNiAtIC40NzUsIGMuc2xpY2VzWzBdLmR1cmF0aW9uLCAxZS01KTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0V2l0aE5ld2xpbmUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnJworICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydFN5c3RyYWNlSHRtbCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBwID0gdHIuYi5nZXRBc3luYygKKyAgICAgICAgJy90ZXN0X2RhdGEvdHJpdmlhbF9zeXN0cmFjZS5odG1sJyk7CisgICAgcmV0dXJuIHAudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChkYXRhLCBmYWxzZSk7CisgICAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKworICAgICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1sxMjRdKTsKKyAgICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMzYwXSk7CisKKyAgICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMTI0XS5jb3VudGVyc1snYW5kcm9pZC5TdGF0dXNCYXInXSk7CisgICAgICBhc3NlcnQuZXF1YWwobS5wcm9jZXNzZXNbMTI0XS5jb3VudGVyc1snYW5kcm9pZC5TdGF0dXNCYXInXS5udW1TYW1wbGVzLAorICAgICAgICAgICAgICAgICAgIDEpOworICAgICAgYXNzZXJ0LmlzRGVmaW5lZChtLnByb2Nlc3Nlc1sxMjRdLmNvdW50ZXJzWydhbmRyb2lkLlZTWU5DJ10pOworICAgICAgYXNzZXJ0LmVxdWFsKDIsIG0ucHJvY2Vzc2VzWzEyNF0uY291bnRlcnNbJ2FuZHJvaWQuVlNZTkMnXS5udW1TYW1wbGVzKTsKKyAgICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMzYwXS5jb3VudGVyc1snYW5kcm9pZC5pcSddKTsKKyAgICAgIGFzc2VydC5lcXVhbCgxLCBtLnByb2Nlc3Nlc1szNjBdLmNvdW50ZXJzWydhbmRyb2lkLmlxJ10ubnVtU2FtcGxlcyk7CisgICAgfSwgZnVuY3Rpb24oZXJyKSB7CisgICAgICB0aHJvdyBlcnI7CisgICAgfSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE11bHRpVHJhY2VIdG1sJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJzwhRE9DVFlQRSBIVE1MPicsCisgICAgICAnPGJvZHk+JywKKyAgICAgICcgIDxkaXYgY2xhc3M9InZpZXciPicsCisgICAgICAnICA8XC9kaXY+JywKKyAgICAgICcgIDxzY3JpcHQgY2xhc3M9InRyYWNlLWRhdGEiIHR5cGU9ImFwcGxpY2F0aW9uL3RleHQiPicsCisgICAgICAndGVzdDEnLAorICAgICAgJ3Rlc3QyJywKKyAgICAgICcgIDxcL3NjcmlwdD4nLAorICAgICAgJyAgPHNjcmlwdCBjbGFzcz0idHJhY2UtZGF0YSIgdHlwZT0iYXBwbGljYXRpb24vdGV4dCI+JywKKyAgICAgICcjIHRyYWNlcjogbm9wJywKKyAgICAgICcjJywKKyAgICAgICcjICAgICAgICAgICAgVEFTSy1QSUQgICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OJywKKyAgICAgICcjICAgICAgICAgICAgICAgfCB8ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwnLAorICAgICAgJyAgICAgaHdjX2V2ZW50bW9uLTMzNiAgIFswMDBdIDUwMjYwLjkyOTkyNTogMDogQ3wxMjR8VlNZTkN8MScsCisgICAgICAnICAgICAgICAgQmluZGVyXzEtMzQwICAgWzAwMF0gNTAyNjAuOTM1NjU2OiAwOiBDfDEyNHxTdGF0dXNCYXJ8MScsCisgICAgICAnICAgICBod2NfZXZlbnRtb24tMzM2ICAgWzAwMF0gNTAyNjAuOTQ2NTczOiAwOiBDfDEyNHxWU1lOQ3wwJywKKyAgICAgICcgICAgICBJbnB1dFJlYWRlci00MTkgICBbMDAwXSA1MDI2Mi41Mzg1Nzg6IDA6IEN8MzYwfGlxfDEnLAorICAgICAgJyAgPFwvc2NyaXB0PicsCisgICAgICAnPFwvYm9keT4nLAorICAgICAgJzxcL2h0bWw+JworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKG0ucHJvY2Vzc2VzWzEyNF0pOworICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMzYwXSk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKG0ucHJvY2Vzc2VzWzEyNF0uY291bnRlcnNbJ2FuZHJvaWQuU3RhdHVzQmFyJ10pOworICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1sxMjRdLmNvdW50ZXJzWydhbmRyb2lkLlN0YXR1c0JhciddLm51bVNhbXBsZXMsCisgICAgICAgICAgICAgICAgIDEpOworICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMTI0XS5jb3VudGVyc1snYW5kcm9pZC5WU1lOQyddKTsKKyAgICBhc3NlcnQuZXF1YWwoMiwgbS5wcm9jZXNzZXNbMTI0XS5jb3VudGVyc1snYW5kcm9pZC5WU1lOQyddLm51bVNhbXBsZXMpOworICAgIGFzc2VydC5pc0RlZmluZWQobS5wcm9jZXNzZXNbMzYwXS5jb3VudGVyc1snYW5kcm9pZC5pcSddKTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgbS5wcm9jZXNzZXNbMzYwXS5jb3VudGVyc1snYW5kcm9pZC5pcSddLm51bVNhbXBsZXMpOworICB9KTsKKworICB0ZXN0KCdjbG9ja1N5bmMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnICAgICAgICAgIDxpZGxlPi0wICAgICBbMDAxXSAgNDQ2Ny44NDM0NzU6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1zd2FwcGVyIHByZXZfcGlkPTAgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIgJyArCisgICAgICAgICAgJz09PiBuZXh0X2NvbW09U3VyZmFjZUZsaW5nZXIgbmV4dF9waWQ9MTc4IG5leHRfcHJpbz0xMTInLAorICAgICAgJyAgU3VyZmFjZUZsaW5nZXItMTc4ICAgWzAwMV0gIDQ0NjcuODQzNTM2OiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAgICdwcmV2X2NvbW09U3VyZmFjZUZsaW5nZXIgcHJldl9waWQ9MTc4IHByZXZfcHJpbz0xMTIgJyArCisgICAgICAgICAgJ3ByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPWt3b3JrZXIvdToyIG5leHRfcGlkPTI4NDQgJyArCisgICAgICAgICAgJ25leHRfcHJpbz0xMjAnLAorICAgICAgJyAgICAga3dvcmtlci91OjItMjg0NCAgWzAwMV0gIDQ0NjcuODQzNTY3OiBzY2hlZF9zd2l0Y2g6ICcgKworICAgICAgICAgICdwcmV2X2NvbW09a3dvcmtlci91OjIgcHJldl9waWQ9Mjg0NCBwcmV2X3ByaW89MTIwICcgKworICAgICAgICAgICdwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1zd2FwcGVyIG5leHRfcGlkPTAgJyArCisgICAgICAgICAgJ25leHRfcHJpbz0xMjAnLAorICAgICAgJyAgICAga3dvcmtlci91OjItMjg0NCAgWzAwMV0gIDQ0NjcuODQzMDAwOiAwOiAnICsKKyAgICAgICAgICAndHJhY2VfZXZlbnRfY2xvY2tfc3luYzogcGFyZW50X3RzPTAuMScKKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKworICAgIHZhciBjID0gbS5rZXJuZWwuY3B1c1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoYy5zbGljZXMubGVuZ3RoLCAyKTsKKworICAgIGFzc2VydC5jbG9zZVRvKAorICAgICAgICAoNDY3Ljg0MzQ3NSAtICg0NjcuODQzIC0gMC4xKSkgKiAxMDAwLAorICAgICAgICBjLnNsaWNlc1swXS5zdGFydCwKKyAgICAgICAgMWUtNSk7CisgIH0pOworCisgIHRlc3QoJ2Nsb2NrU3luY01hcmtXcml0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdzeXN0cmFjZS5zaC04MTcwICBbMDAxXSAxNTE4MC45Nzg4MTM6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1zeXN0cmFjZS5zaCBwcmV2X3BpZD04MTcwIHByZXZfcHJpbz0xMjAgJyArCisgICAgICAgICAgJ3ByZXZfc3RhdGU9eCA9PT4gbmV4dF9jb21tPWt3b3JrZXIvMTowIG5leHRfcGlkPTc4NzMgJyArCisgICAgICAgICAgJ25leHRfcHJpbz0xMjAnLAorICAgICAgJyBrd29ya2VyLzE6MC03ODczICBbMDAxXSAxNTE4MC45Nzg4MzY6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1rd29ya2VyLzE6MCBwcmV2X3BpZD03ODczIHByZXZfcHJpbz0xMjAgJyArCisgICAgICAgICAgJ3ByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPWRlYnVnZCBuZXh0X3BpZD00NDA0IG5leHRfcHJpbz0xMjAnLAorICAgICAgJyAgICAgZGVidWdkLTQ0MDQgIFswMDFdIDE1MTgwLjk3OTAxMDogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09ZGVidWdkICcgKworICAgICAgICAgICdwcmV2X3BpZD00NDA0IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1TID09PiAnICsKKyAgICAgICAgICAnbmV4dF9jb21tPWRidXMtZGFlbW9uIG5leHRfcGlkPTUxMCBuZXh0X3ByaW89MTIwJywKKyAgICAgICdzeXN0cmFjZS5zaC04MTgyICBbMDAwXSAxNTE4Ni4yMDM5MDA6IHRyYWNpbmdfbWFya193cml0ZTogJyArCisgICAgICAgICAgJ3RyYWNlX2V2ZW50X2Nsb2NrX3N5bmM6IHBhcmVudF90cz0wJworICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworCisgICAgdmFyIGMgPSBtLmtlcm5lbC5jcHVzWzFdOworICAgIGFzc2VydC5lcXVhbChjLnNsaWNlcy5sZW5ndGgsIDIpOworCisgICAgYXNzZXJ0LmNsb3NlVG8oKDE1MTgwLjk3ODgxMyAtIDApICogMTAwMCwgYy5zbGljZXNbMF0uc3RhcnQsIDFlLTUpOworICB9KTsKKworICB0ZXN0KCd0cmFjaW5nTWFya1dyaXRlRU9MQ2xlYW51cCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdzeXN0cmFjZS5zaC04MTgyICBbMDAxXSAuLi4xIDIwNjgwMDEuNjc3ODkyOiB0cmFjaW5nX21hcmtfd3JpdGU6ICcgKworICAgICAgICAgICdCfDkzMDR8dGVzdFxcblxcJywKKyAgICAgICdzeXN0cmFjZS5zaC04MTgyICBbMDAyXSAuLi4xIDIwNjg5OTEuNjg2NDE1OiB0cmFjaW5nX21hcmtfd3JpdGU6IEVcXG5cXCcKKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworCisgICAgdmFyIGMgPSBtLnByb2Nlc3Nlc1s5MzA0XS50aHJlYWRzWzgxODJdLnNsaWNlR3JvdXA7CisgICAgYXNzZXJ0LmVxdWFsKGMuc2xpY2VzLmxlbmd0aCwgMSk7CisKKyAgICBhc3NlcnQuY2xvc2VUbygoMjA2ODAwMS42Nzc4OTIgLSAwKSAqIDEwMDAsIGMuc2xpY2VzWzBdLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygKKyAgICAgICAgKDIwNjg5OTEuNjg2NDE1IC0gMjA2ODAwMS42Nzc4OTIpICogMTAwMCwKKyAgICAgICAgYy5zbGljZXNbMF0uZHVyYXRpb24sCisgICAgICAgIDFlLTUpOworICB9KTsKKworICB0ZXN0KCdjcHVDb3VudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdzeXN0cmFjZS5zaC04MTcwICBbMDAxXSAxNTE4MC45Nzg4MTM6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1zeXN0cmFjZS5zaCBwcmV2X3BpZD04MTcwIHByZXZfcHJpbz0xMjAgJyArCisgICAgICAgICAgJ3ByZXZfc3RhdGU9eCA9PT4gbmV4dF9jb21tPWt3b3JrZXIvMTowIG5leHRfcGlkPTc4NzMgJyArCisgICAgICAgICAgJ25leHRfcHJpbz0xMjAnLAorICAgICAgJyBrd29ya2VyLzE6MC03ODczICBbMDAxXSAxNTE4MC45Nzg4MzY6IHNjaGVkX3N3aXRjaDogJyArCisgICAgICAgICAgJ3ByZXZfY29tbT1rd29ya2VyLzE6MCBwcmV2X3BpZD03ODczIHByZXZfcHJpbz0xMjAgJyArCisgICAgICAgICAgJ3ByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPWRlYnVnZCBuZXh0X3BpZD00NDA0IG5leHRfcHJpbz0xMjAnLAorICAgICAgJyAgICAgZGVidWdkLTQ0MDQgIFswMDBdIDE1MTgwLjk3OTAxMDogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09ZGVidWdkICcgKworICAgICAgICAgICdwcmV2X3BpZD00NDA0IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1TID09PiAnICsKKyAgICAgICAgICAnbmV4dF9jb21tPWRidXMtZGFlbW9uIG5leHRfcGlkPTUxMCBuZXh0X3ByaW89MTIwJworICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworCisgICAgYXNzZXJ0LmVxdWFsKHRyLmIuZGljdGlvbmFyeUxlbmd0aChtLmtlcm5lbC5jcHVzKSwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG0ua2VybmVsLmJlc3RHdWVzc0F0Q3B1Q291bnQsIDIpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2dlc3R1cmVfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2dlc3R1cmVfcGFyc2VyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZ2VzdHVyZV9wYXJzZXIuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9nZXN0dXJlX3BhcnNlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2dlc3R1cmVfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZ2VzdHVyZV9wYXJzZXJfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2dlc3R1cmVfcGFyc2VyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9nZXN0dXJlX3BhcnNlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaTkxNV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaTkxNV9wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTI3YjU4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pOTE1X3BhcnNlci5odG1sCkBAIC0wLDAgKzEsMzcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQYXJzZXMgaTkxNSBkcml2ZXIgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLyoqCisgICAqIFBhcnNlcyBsaW51eCBpOTE1IHRyYWNlIGV2ZW50cy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBJOTE1UGFyc2VyKGltcG9ydGVyKSB7CisgICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOworCisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9jcmVhdGUnLAorICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3RDcmVhdGVFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X2JpbmQnLAorICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3RCaW5kRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF91bmJpbmQnLAorICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3RCaW5kRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9jaGFuZ2VfZG9tYWluJywKKyAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0Q2hhbmdlRG9tYWluRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX29iamVjdF9wcmVhZCcsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdFByZWFkV3JpdGVFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X3B3cml0ZScsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdFByZWFkV3JpdGVFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X2ZhdWx0JywKKyAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtT2JqZWN0RmF1bHRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X2NsZmx1c2gnLAorICAgICAgICAvLyBOQjogcmV1c2UgZGVzdHJveSBoYW5kbGVyCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbU9iamVjdERlc3Ryb3lFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fb2JqZWN0X2Rlc3Ryb3knLAorICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1PYmplY3REZXN0cm95RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JpbmdfZGlzcGF0Y2gnLAorICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SaW5nRGlzcGF0Y2hFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmluZ19mbHVzaCcsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJpbmdGbHVzaEV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yZXF1ZXN0JywKKyAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmVxdWVzdEV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdpOTE1X2dlbV9yZXF1ZXN0X2FkZCcsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJlcXVlc3RFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZScsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJlcXVlc3RFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmUnLAorICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5nZW1SZXF1ZXN0RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZ2VtX3JlcXVlc3Rfd2FpdF9iZWdpbicsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJlcXVlc3RFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmVxdWVzdF93YWl0X2VuZCcsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJlcXVlc3RFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmluZ193YWl0X2JlZ2luJywKKyAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ2VtUmluZ1dhaXRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9nZW1fcmluZ193YWl0X2VuZCcsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmdlbVJpbmdXYWl0RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfcmVnX3J3JywKKyAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUucmVnUldFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaTkxNV9mbGlwX3JlcXVlc3QnLAorICAgICAgICBJOTE1UGFyc2VyLnByb3RvdHlwZS5mbGlwRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2k5MTVfZmxpcF9jb21wbGV0ZScsCisgICAgICAgIEk5MTVQYXJzZXIucHJvdG90eXBlLmZsaXBFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaW50ZWxfZ3B1X2ZyZXFfY2hhbmdlJywKKyAgICAgICAgSTkxNVBhcnNlci5wcm90b3R5cGUuZ3B1RnJlcXVlbmN5LmJpbmQodGhpcykpOworICB9CisKKyAgSTkxNVBhcnNlci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAorCisgICAgaTkxNUZsaXBPcGVuU2xpY2U6IGZ1bmN0aW9uKHRzLCBvYmosIHBsYW5lKSB7CisgICAgICAvLyB1c2UgaTkxNV9mbGlwX29ial9wbGFuZT8KKyAgICAgIHZhciBrdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZVBzZXVkb1RocmVhZCgnaTkxNV9mbGlwJyk7CisgICAgICBrdGhyZWFkLm9wZW5TbGljZVRTID0gdHM7CisgICAgICBrdGhyZWFkLm9wZW5TbGljZSA9ICdmbGlwOicgKyBvYmogKyAnLycgKyBwbGFuZTsKKyAgICB9LAorCisgICAgaTkxNUZsaXBDbG9zZVNsaWNlOiBmdW5jdGlvbih0cywgYXJncykgeworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2ZsaXAnKTsKKyAgICAgIGlmIChrdGhyZWFkLm9wZW5TbGljZSkgeworICAgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLAorICAgICAgICAgICAga3RocmVhZC5vcGVuU2xpY2VUUywKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICB0cyAtIGt0aHJlYWQub3BlblNsaWNlVFMpOworCisgICAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICAgIH0KKyAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBpOTE1R2VtT2JqZWN0U2xpY2U6IGZ1bmN0aW9uKHRzLCBldmVudE5hbWUsIG9iaiwgYXJncykgeworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2dlbScpOworICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBldmVudE5hbWUgKyAnOicgKyBvYmo7CisgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKKyAgICAgICAgICB0cywgYXJncywgMCk7CisKKyAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICB9LAorCisgICAgaTkxNUdlbVJpbmdTbGljZTogZnVuY3Rpb24odHMsIGV2ZW50TmFtZSwgZGV2LCByaW5nLCBhcmdzKSB7CisgICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoJ2k5MTVfZ2VtX3JpbmcnKTsKKyAgICAgIGt0aHJlYWQub3BlblNsaWNlID0gZXZlbnROYW1lICsgJzonICsgZGV2ICsgJy4nICsgcmluZzsKKyAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgnJywga3RocmVhZC5vcGVuU2xpY2UsCisgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLAorICAgICAgICAgIHRzLCBhcmdzLCAwKTsKKworICAgICAga3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOworICAgIH0sCisKKyAgICBpOTE1UmVnU2xpY2U6IGZ1bmN0aW9uKHRzLCBldmVudE5hbWUsIHJlZywgYXJncykgeworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X3JlZycpOworICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBldmVudE5hbWUgKyAnOicgKyByZWc7CisgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGt0aHJlYWQub3BlblNsaWNlKSwKKyAgICAgICAgICB0cywgYXJncywgMCk7CisKKyAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICB9LAorCisgICAgaTkxNUZyZXFDaGFuZ2VTbGljZTogZnVuY3Rpb24odHMsIGV2ZW50TmFtZSwgYXJncykgeworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKCdpOTE1X2dwdV9mcmVxJyk7CisgICAgICBrdGhyZWFkLm9wZW5TbGljZSA9IGV2ZW50TmFtZTsKKyAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgnJywga3RocmVhZC5vcGVuU2xpY2UsCisgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLAorICAgICAgICAgIHRzLCBhcmdzLCAwKTsKKworICAgICAga3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgaTkxNSBkcml2ZXIgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KKyAgICAgKi8KKyAgICBnZW1PYmplY3RDcmVhdGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL29iaj0oXHcrKSwgc2l6ZT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBvYmogPSBldmVudFsxXTsKKyAgICAgIHZhciBzaXplID0gcGFyc2VJbnQoZXZlbnRbMl0pOworICAgICAgdGhpcy5pOTE1R2VtT2JqZWN0U2xpY2UodHMsIGV2ZW50TmFtZSwgb2JqLAorICAgICAgICAgIHsKKyAgICAgICAgICAgIG9iajogb2JqLAorICAgICAgICAgICAgc2l6ZTogc2l6ZQorICAgICAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGdlbU9iamVjdEJpbmRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgLy8gVE9ETyhzbGVmZmxlcikgbWFwcGFibGUKKyAgICAgIHZhciBldmVudCA9IC9vYmo9KFx3KyksIG9mZnNldD0oXHcrKSwgc2l6ZT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBvYmogPSBldmVudFsxXTsKKyAgICAgIHZhciBvZmZzZXQgPSBldmVudFsyXTsKKyAgICAgIHZhciBzaXplID0gcGFyc2VJbnQoZXZlbnRbM10pOworICAgICAgdGhpcy5pOTE1T2JqZWN0R2VtU2xpY2UodHMsIGV2ZW50TmFtZSArICc6JyArIG9iaiwKKyAgICAgICAgICB7CisgICAgICAgICAgICBvYmo6IG9iaiwKKyAgICAgICAgICAgIG9mZnNldDogb2Zmc2V0LAorICAgICAgICAgICAgc2l6ZTogc2l6ZQorICAgICAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGdlbU9iamVjdENoYW5nZURvbWFpbkV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvb2JqPShcdyspLCByZWFkPShcdys9Plx3KyksIHdyaXRlPShcdys9Plx3KykvCisgICAgICAgICAgLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgb2JqID0gZXZlbnRbMV07CisgICAgICB2YXIgcmVhZCA9IGV2ZW50WzJdOworICAgICAgdmFyIHdyaXRlID0gZXZlbnRbM107CisgICAgICB0aGlzLmk5MTVHZW1PYmplY3RTbGljZSh0cywgZXZlbnROYW1lLCBvYmosCisgICAgICAgICAgeworICAgICAgICAgICAgb2JqOiBvYmosCisgICAgICAgICAgICByZWFkOiByZWFkLAorICAgICAgICAgICAgd3JpdGU6IHdyaXRlCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZ2VtT2JqZWN0UHJlYWRXcml0ZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL29iaj0oXHcrKSwgb2Zmc2V0PShcZCspLCBsZW49KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgb2JqID0gZXZlbnRbMV07CisgICAgICB2YXIgb2Zmc2V0ID0gcGFyc2VJbnQoZXZlbnRbMl0pOworICAgICAgdmFyIGxlbiA9IHBhcnNlSW50KGV2ZW50WzNdKTsKKyAgICAgIHRoaXMuaTkxNUdlbU9iamVjdFNsaWNlKHRzLCBldmVudE5hbWUsIG9iaiwKKyAgICAgICAgICB7CisgICAgICAgICAgICBvYmo6IG9iaiwKKyAgICAgICAgICAgIG9mZnNldDogb2Zmc2V0LAorICAgICAgICAgICAgbGVuOiBsZW4KKyAgICAgICAgICB9KTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBnZW1PYmplY3RGYXVsdEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICAvLyBUT0RPKHNsZWZmbGVyKSB3cml0YWJsZQorICAgICAgdmFyIGV2ZW50ID0gL29iaj0oXHcrKSwgKFx3KykgaW5kZXg9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgb2JqID0gZXZlbnRbMV07CisgICAgICB2YXIgdHlwZSA9IGV2ZW50WzJdOworICAgICAgdmFyIGluZGV4ID0gcGFyc2VJbnQoZXZlbnRbM10pOworICAgICAgdGhpcy5pOTE1R2VtT2JqZWN0U2xpY2UodHMsIGV2ZW50TmFtZSwgb2JqLAorICAgICAgICAgIHsKKyAgICAgICAgICAgIG9iajogb2JqLAorICAgICAgICAgICAgdHlwZTogdHlwZSwKKyAgICAgICAgICAgIGluZGV4OiBpbmRleAorICAgICAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGdlbU9iamVjdERlc3Ryb3lFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL29iaj0oXHcrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBvYmogPSBldmVudFsxXTsKKyAgICAgIHRoaXMuaTkxNUdlbU9iamVjdFNsaWNlKHRzLCBldmVudE5hbWUsIG9iaiwKKyAgICAgICAgICB7CisgICAgICAgICAgICBvYmo6IG9iagorICAgICAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGdlbVJpbmdEaXNwYXRjaEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvZGV2PShcZCspLCByaW5nPShcZCspLCBzZXFubz0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBkZXYgPSBwYXJzZUludChldmVudFsxXSk7CisgICAgICB2YXIgcmluZyA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHZhciBzZXFubyA9IHBhcnNlSW50KGV2ZW50WzNdKTsKKyAgICAgIHRoaXMuaTkxNUdlbVJpbmdTbGljZSh0cywgZXZlbnROYW1lLCBkZXYsIHJpbmcsCisgICAgICAgICAgeworICAgICAgICAgICAgZGV2OiBkZXYsCisgICAgICAgICAgICByaW5nOiByaW5nLAorICAgICAgICAgICAgc2Vxbm86IHNlcW5vCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZ2VtUmluZ0ZsdXNoRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IC9kZXY9KFxkKyksIHJpbmc9KFx3KyksIGludmFsaWRhdGU9KFx3KyksIGZsdXNoPShcdyspLworICAgICAgICAgIC5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGRldiA9IHBhcnNlSW50KGV2ZW50WzFdKTsKKyAgICAgIHZhciByaW5nID0gcGFyc2VJbnQoZXZlbnRbMl0pOworICAgICAgdmFyIGludmFsaWRhdGUgPSBldmVudFszXTsKKyAgICAgIHZhciBmbHVzaCA9IGV2ZW50WzRdOworICAgICAgdGhpcy5pOTE1R2VtUmluZ1NsaWNlKHRzLCBldmVudE5hbWUsIGRldiwgcmluZywKKyAgICAgICAgICB7CisgICAgICAgICAgICBkZXY6IGRldiwKKyAgICAgICAgICAgIHJpbmc6IHJpbmcsCisgICAgICAgICAgICBpbnZhbGlkYXRlOiBpbnZhbGlkYXRlLAorICAgICAgICAgICAgZmx1c2g6IGZsdXNoCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZ2VtUmVxdWVzdEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvZGV2PShcZCspLCByaW5nPShcZCspLCBzZXFubz0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBkZXYgPSBwYXJzZUludChldmVudFsxXSk7CisgICAgICB2YXIgcmluZyA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHZhciBzZXFubyA9IHBhcnNlSW50KGV2ZW50WzNdKTsKKyAgICAgIHRoaXMuaTkxNUdlbVJpbmdTbGljZSh0cywgZXZlbnROYW1lLCBkZXYsIHJpbmcsCisgICAgICAgICAgeworICAgICAgICAgICAgZGV2OiBkZXYsCisgICAgICAgICAgICByaW5nOiByaW5nLAorICAgICAgICAgICAgc2Vxbm86IHNlcW5vCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZ2VtUmluZ1dhaXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL2Rldj0oXGQrKSwgcmluZz0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBkZXYgPSBwYXJzZUludChldmVudFsxXSk7CisgICAgICB2YXIgcmluZyA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHRoaXMuaTkxNUdlbVJpbmdTbGljZSh0cywgZXZlbnROYW1lLCBkZXYsIHJpbmcsCisgICAgICAgICAgeworICAgICAgICAgICAgZGV2OiBkZXYsCisgICAgICAgICAgICByaW5nOiByaW5nCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgcmVnUldFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gLyhcdyspIHJlZz0oXHcrKSwgbGVuPShcZCspLCB2YWw9KFwoXHcrLCBcdytcKSkvCisgICAgICAgICAgLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgcncgPSBldmVudFsxXTsKKyAgICAgIHZhciByZWcgPSBldmVudFsyXTsKKyAgICAgIHZhciBsZW4gPSBldmVudFszXTsKKyAgICAgIHZhciBkYXRhID0gZXZlbnRbM107CisgICAgICB0aGlzLmk5MTVSZWdTbGljZSh0cywgcncsIHJlZywKKyAgICAgICAgICB7CisgICAgICAgICAgICBydzogcncsCisgICAgICAgICAgICByZWc6IHJlZywKKyAgICAgICAgICAgIGxlbjogbGVuLAorICAgICAgICAgICAgZGF0YTogZGF0YQorICAgICAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGZsaXBFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL3BsYW5lPShcZCspLCBvYmo9KFx3KykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgcGxhbmUgPSBwYXJzZUludChldmVudFsxXSk7CisgICAgICB2YXIgb2JqID0gZXZlbnRbMl07CisgICAgICBpZiAoZXZlbnROYW1lID09ICdpOTE1X2ZsaXBfcmVxdWVzdCcpCisgICAgICAgIHRoaXMuaTkxNUZsaXBPcGVuU2xpY2UodHMsIG9iaiwgcGxhbmUpOworICAgICAgZWxzZQorICAgICAgICB0aGlzLmk5MTVGbGlwQ2xvc2VTbGljZSh0cywKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgb2JqOiBvYmosCisgICAgICAgICAgICAgIHBsYW5lOiBwbGFuZQorICAgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgZ3B1RnJlcXVlbmN5OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bXZlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvbmV3X2ZyZXE9KFxkKykvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgdmFyIGZyZXEgPSBwYXJzZUludChldmVudFsxXSk7CisKKyAgICAgIHRoaXMuaTkxNUZyZXFDaGFuZ2VTbGljZSh0cywgZXZlbnROYW1lLCB7CisgICAgICAgICAgICBmcmVxOiBmcmVxCisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKEk5MTVQYXJzZXIpOworCisgIHJldHVybiB7CisgICAgSTkxNVBhcnNlcjogSTkxNVBhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pOTE1X3BhcnNlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2k5MTVfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9pOTE1X3BhcnNlcl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaTkxNV9wYXJzZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2lycV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaXJxX3BhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ODIzZTAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2lycV9wYXJzZXIuaHRtbApAQCAtMCwwICsxLDE0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIGRybSBkcml2ZXIgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKKworICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKKworICAvKioKKyAgICogUGFyc2VzIGxpbnV4IGlycSB0cmFjZSBldmVudHMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gSXJxUGFyc2VyKGltcG9ydGVyKSB7CisgICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOworCisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2lycV9oYW5kbGVyX2VudHJ5JywKKyAgICAgICAgSXJxUGFyc2VyLnByb3RvdHlwZS5pcnFIYW5kbGVyRW50cnlFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignaXJxX2hhbmRsZXJfZXhpdCcsCisgICAgICAgIElycVBhcnNlci5wcm90b3R5cGUuaXJxSGFuZGxlckV4aXRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignc29mdGlycV9yYWlzZScsCisgICAgICAgIElycVBhcnNlci5wcm90b3R5cGUuc29mdGlycVJhaXNlRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3NvZnRpcnFfZW50cnknLAorICAgICAgICBJcnFQYXJzZXIucHJvdG90eXBlLnNvZnRpcnFFbnRyeUV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdzb2Z0aXJxX2V4aXQnLAorICAgICAgICBJcnFQYXJzZXIucHJvdG90eXBlLnNvZnRpcnFFeGl0RXZlbnQuYmluZCh0aGlzKSk7CisgIH0KKworICAvLyBNYXRjaGVzIHRoZSBpcnFfaGFuZGxlcl9lbnRyeSByZWNvcmQKKyAgdmFyIGlycUhhbmRsZXJFbnRyeVJFID0gL2lycT0oXGQrKSBuYW1lPSguKykvOworCisgIC8vIE1hdGNoZXMgdGhlIGlycV9oYW5kbGVyX2V4aXQgcmVjb3JkCisgIHZhciBpcnFIYW5kbGVyRXhpdFJFID0gL2lycT0oXGQrKSByZXQ9KC4rKS87CisKKyAgLy8gTWF0Y2hlcyB0aGUgc29mdGlycV9yYWlzZSByZWNvcmQKKyAgdmFyIHNvZnRpcnFSRSA9IC92ZWM9KFxkKykgXFthY3Rpb249KC4rKVxdLzsKKworICBJcnFQYXJzZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKKworICAgIC8qKgorICAgICAqIFBhcnNlcyBpcnEgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBtcG9ydGVyLgorICAgICAqLworICAgIGlycUhhbmRsZXJFbnRyeUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSBpcnFIYW5kbGVyRW50cnlSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGlycSA9IHBhcnNlSW50KGV2ZW50WzFdKTsKKyAgICAgIHZhciBuYW1lID0gZXZlbnRbMl07CisKKyAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKAorICAgICAgICAgICdpcnFzIGNwdSAnICsgY3B1TnVtYmVyKTsKKyAgICAgIHRocmVhZC5sYXN0RW50cnlUcyA9IHRzOworICAgICAgdGhyZWFkLmlycU5hbWUgPSBuYW1lOworCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgaXJxSGFuZGxlckV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gaXJxSGFuZGxlckV4aXRSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGlycSA9IHBhcnNlSW50KGV2ZW50WzFdKTsKKyAgICAgIHZhciByZXQgPSBldmVudFsyXTsKKyAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKAorICAgICAgICAgICdpcnFzIGNwdSAnICsgY3B1TnVtYmVyKTsKKworICAgICAgaWYgKHRocmVhZC5sYXN0RW50cnlUcyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHZhciBkdXJhdGlvbiA9IHRzIC0gdGhyZWFkLmxhc3RFbnRyeVRzOworICAgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoCisgICAgICAgICAgICAnJywgdGhyZWFkLmlycU5hbWUsCisgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudFsxXSksCisgICAgICAgICAgICB0aHJlYWQubGFzdEVudHJ5VHMsIHsgcmV0OiByZXQgfSwKKyAgICAgICAgICAgIGR1cmF0aW9uKTsKKyAgICAgICAgdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7CisgICAgICB9CisgICAgICB0aHJlYWQubGFzdEVudHJ5VHMgPSB1bmRlZmluZWQ7CisgICAgICB0aHJlYWQuaXJxTmFtZSA9IHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBzb2Z0aXJxUmFpc2VFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHNvZnRpcnFFbnRyeUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSBzb2Z0aXJxUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBhY3Rpb24gPSBldmVudFsyXTsKKyAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKAorICAgICAgICAgICdzb2Z0aXJxIGNwdSAnICsgY3B1TnVtYmVyKTsKKyAgICAgIHRocmVhZC5sYXN0RW50cnlUcyA9IHRzOworCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgc29mdGlycUV4aXRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gc29mdGlycVJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgdmVjID0gcGFyc2VJbnQoZXZlbnRbMV0pOworICAgICAgdmFyIGFjdGlvbiA9IGV2ZW50WzJdOworICAgICAgdmFyIHRocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVQc2V1ZG9UaHJlYWQoCisgICAgICAgICAgJ3NvZnRpcnEgY3B1ICcgKyBjcHVOdW1iZXIpOworCisgICAgICBpZiAodGhyZWFkLmxhc3RFbnRyeVRzICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdmFyIGR1cmF0aW9uID0gdHMgLSB0aHJlYWQubGFzdEVudHJ5VHM7CisgICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgKKyAgICAgICAgICAgICcnLCBhY3Rpb24sCisgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhldmVudFsxXSksCisgICAgICAgICAgICB0aHJlYWQubGFzdEVudHJ5VHMsIHsgdmVjOiB2ZWMgfSwKKyAgICAgICAgICAgIGR1cmF0aW9uKTsKKyAgICAgICAgdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7CisgICAgICB9CisgICAgICB0aHJlYWQubGFzdEVudHJ5VHMgPSB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKElycVBhcnNlcik7CisKKyAgcmV0dXJuIHsKKyAgICBJcnFQYXJzZXI6IElycVBhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvaXJxX3BhcnNlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2lycV9wYXJzZXJfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2lycV9wYXJzZXJfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2lycV9wYXJzZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2tmdW5jX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9rZnVuY19wYXJzZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9rZnVuY19wYXJzZXIuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9rZnVuY19wYXJzZXIuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9rZnVuY19wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9rZnVuY19wYXJzZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYzA5ZGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2tmdW5jX3BhcnNlcl90ZXN0Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICB0ZXN0KCdrZXJuZWxGdW5jdGlvblBhcnNlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdCaW5kZXJfMi0xMjcgICggMTI3KSBbMDAxXSAuLi4uICAzNDMxLjkwNjc1OTogZ3JhcGhfZW50OiBmdW5jPXN5c193cml0ZScsCisgICAgICAnQmluZGVyXzItMTI3ICAoIDEyNykgWzAwMV0gLi4uLiAgMzQzMS45MDY3Njk6IGdyYXBoX3JldDogZnVuYz1zeXNfd3JpdGUnLAorICAgICAgJ0JpbmRlcl8yLTEyNyAgKCAxMjcpIFswMDFdIC4uLi4gIDM0MzEuOTA2Nzg1OiBncmFwaF9lbnQ6IGZ1bmM9c3lzX3dyaXRlJywKKyAgICAgICdCaW5kZXJfMi0xMjcgICggMTI3KSBbMDAxXSAuLi4xICAzNDMxLjkwNjc5ODogdHJhY2luZ19tYXJrX3dyaXRlOiBCfCcgKworICAgICAgICAgICcxMjd8ZGVxdWV1ZUJ1ZmZlcicsCisgICAgICAnQmluZGVyXzItMTI3ICAoIDEyNykgWzAwMV0gLi4uLiAgMzQzMS45MDY4MDI6IGdyYXBoX3JldDogZnVuYz1zeXNfd3JpdGUnLAorICAgICAgJ0JpbmRlcl8yLTEyNyAgKCAxMjcpIFswMDFdIC4uLi4gIDM0MzEuOTA2ODQyOiBncmFwaF9lbnQ6IGZ1bmM9c3lzX3dyaXRlJywKKyAgICAgICdCaW5kZXJfMi0xMjcgICggMTI3KSBbMDAxXSAuLi4xICAzNDMxLjkwNjg0OTogdHJhY2luZ19tYXJrX3dyaXRlOiBFJywKKyAgICAgICdCaW5kZXJfMi0xMjcgICggMTI3KSBbMDAxXSAuLi4uICAzNDMxLjkwNjg1MzogZ3JhcGhfcmV0OiBmdW5jPXN5c193cml0ZScsCisgICAgICAnQmluZGVyXzItMTI3ICAoIDEyNykgWzAwMV0gLi4uLiAgMzQzMS45MDY4OTY6IGdyYXBoX2VudDogZnVuYz1zeXNfd3JpdGUnLAorICAgICAgJ0JpbmRlcl8yLTEyNyAgKCAxMjcpIFswMDFdIC4uLi4gIDM0MzEuOTA2OTA2OiBncmFwaF9yZXQ6IGZ1bmM9c3lzX3dyaXRlJworICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworCisgICAgdmFyIHByb2Nlc3MgPSBtLnByb2Nlc3Nlc1sxMjddOworICAgIGFzc2VydC5pc0RlZmluZWQocHJvY2Vzcyk7CisKKyAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy50aHJlYWRzWzEyN107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0aHJlYWQpOworCisgICAgdmFyIHNsaWNlcyA9IHRocmVhZC5zbGljZUdyb3VwLnNsaWNlczsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkLnNsaWNlR3JvdXAubGVuZ3RoLCA3KTsKKworICAgIC8vIFNsaWNlIDAgaXMgYW4gdW4tc3BsaXQgc3lzX3dyaXRlCisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlc1swXS50aXRsZSwgJ3N5c193cml0ZScpOworCisgICAgLy8gU2xpY2VzIDEgJiAzIGFyZSBhIHNwbGl0IHN5c193cml0ZQorICAgIGFzc2VydC5lcXVhbChzbGljZXNbMV0udGl0bGUsICdzeXNfd3JpdGUnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2VzWzJdLnRpdGxlLCAnZGVxdWV1ZUJ1ZmZlcicpOworICAgIGFzc2VydC5lcXVhbChzbGljZXNbM10udGl0bGUsICdzeXNfd3JpdGUgKGNvbnQuKScpOworCisgICAgLy8gU2xpY2VzIDQgJiA1IGFyZSBhIHNwbGl0IHN5c193cml0ZSB3aXRoIHRoZSBkZXF1ZXVlQnVmZmVyIGluIGJldHdlZW4KKyAgICBhc3NlcnQuZXF1YWwoc2xpY2VzWzRdLnRpdGxlLCAnc3lzX3dyaXRlJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlc1s1XS50aXRsZSwgJ3N5c193cml0ZSAoY29udC4pJyk7CisKKyAgICAvLyBTbGljZSA2IGlzIGFub3RoZXIgdW4tc3BsaXQgc3lzX3dyaXRlCisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlc1s2XS50aXRsZSwgJ3N5c193cml0ZScpOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWFsaV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWFsaV9wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTg5YmJiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tYWxpX3BhcnNlci5odG1sCkBAIC0wLDAgKzEsNTY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQYXJzZXMgTWFsaSBEREsva2VybmVsIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLyoqCisgICAqIFBhcnNlcyBNYWxpIERESy9rZXJuZWwgdHJhY2UgZXZlbnRzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIE1hbGlQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisKKyAgICAvLyBrZXJuZWwgRFZGUyBldmVudHMKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbWFsaV9kdmZzX2V2ZW50JywKKyAgICAgICAgTWFsaVBhcnNlci5wcm90b3R5cGUuZHZmc0V2ZW50RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21hbGlfZHZmc19zZXRfY2xvY2snLAorICAgICAgICBNYWxpUGFyc2VyLnByb3RvdHlwZS5kdmZzU2V0Q2xvY2tFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbWFsaV9kdmZzX3NldF92b2x0YWdlJywKKyAgICAgICAgTWFsaVBhcnNlci5wcm90b3R5cGUuZHZmc1NldFZvbHRhZ2VFdmVudC5iaW5kKHRoaXMpKTsKKworICAgIC8vIGtlcm5lbCBNYWxpIGh3IGNvdW50ZXIgZXZlbnRzCisgICAgdGhpcy5hZGRKTUNvdW50ZXIoJ21hbGlfaHdjX01FU1NBR0VTX1NFTlQnLCAnTWVzc2FnZXMgU2VudCcpOworICAgIHRoaXMuYWRkSk1Db3VudGVyKCdtYWxpX2h3Y19NRVNTQUdFU19SRUNFSVZFRCcsICdNZXNzYWdlcyBSZWNlaXZlZCcpOworICAgIHRoaXMuYWRkSk1DeWNsZXMoJ21hbGlfaHdjX0dQVV9BQ1RJVkUnLCAnR1BVIEFjdGl2ZScpOworICAgIHRoaXMuYWRkSk1DeWNsZXMoJ21hbGlfaHdjX0lSUV9BQ1RJVkUnLCAnSVJRIEFjdGl2ZScpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA3OyBpKyspIHsKKyAgICAgIHZhciBqb2JTdHIgPSAnSlMnICsgaTsKKyAgICAgIHZhciBqb2JIV0NTdHIgPSAnbWFsaV9od2NfJyArIGpvYlN0cjsKKyAgICAgIHRoaXMuYWRkSk1Db3VudGVyKGpvYkhXQ1N0ciArICdfSk9CUycsIGpvYlN0ciArICcgSm9icycpOworICAgICAgdGhpcy5hZGRKTUNvdW50ZXIoam9iSFdDU3RyICsgJ19UQVNLUycsIGpvYlN0ciArICcgVGFza3MnKTsKKyAgICAgIHRoaXMuYWRkSk1DeWNsZXMoam9iSFdDU3RyICsgJ19BQ1RJVkUnLCBqb2JTdHIgKyAnIEFjdGl2ZScpOworICAgICAgdGhpcy5hZGRKTUN5Y2xlcyhqb2JIV0NTdHIgKyAnX1dBSVRfUkVBRCcsIGpvYlN0ciArICcgV2FpdCBSZWFkJyk7CisgICAgICB0aGlzLmFkZEpNQ3ljbGVzKGpvYkhXQ1N0ciArICdfV0FJVF9JU1NVRScsIGpvYlN0ciArICcgV2FpdCBJc3N1ZScpOworICAgICAgdGhpcy5hZGRKTUN5Y2xlcyhqb2JIV0NTdHIgKyAnX1dBSVRfREVQRU5EJywgam9iU3RyICsgJyBXYWl0IERlcGVuZCcpOworICAgICAgdGhpcy5hZGRKTUN5Y2xlcyhqb2JIV0NTdHIgKyAnX1dBSVRfRklOSVNIJywgam9iU3RyICsgJyBXYWl0IEZpbmlzaCcpOworICAgIH0KKworICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19UUklBTkdMRVMnLCAnVHJpYW5nbGVzJyk7CisgICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1FVQURTJywgJ1F1YWRzJyk7CisgICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1BPTFlHT05TJywgJ1BvbHlnb25zJyk7CisgICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1BPSU5UUycsICdQb2ludHMnKTsKKyAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfTElORVMnLCAnTGluZXMnKTsKKyAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfVkNBQ0hFX0hJVCcsICdWQ2FjaGUgSGl0Jyk7CisgICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1ZDQUNIRV9NSVNTJywgJ1ZDYWNoZSBNaXNzJyk7CisgICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX0ZST05UX0ZBQ0lORycsICdGcm9udCBGYWNpbmcnKTsKKyAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfQkFDS19GQUNJTkcnLCAnQmFjayBGYWNpbmcnKTsKKyAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfUFJJTV9WSVNJQkxFJywgJ1ByaW0gVmlzaWJsZScpOworICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19QUklNX0NVTExFRCcsICdQcmltIEN1bGxlZCcpOworICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19QUklNX0NMSVBQRUQnLCAnUHJpbSBDbGlwcGVkJyk7CisKKyAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfV1JCVUZfSElUJywgJ1dyYnVmIEhpdCcpOworICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19XUkJVRl9NSVNTJywgJ1dyYnVmIE1pc3MnKTsKKyAgICB0aGlzLmFkZFRpbGVyQ291bnRlcignbWFsaV9od2NfV1JCVUZfTElORScsICdXcmJ1ZiBMaW5lJyk7CisgICAgdGhpcy5hZGRUaWxlckNvdW50ZXIoJ21hbGlfaHdjX1dSQlVGX1BBUlRJQUwnLCAnV3JidWYgUGFydGlhbCcpOworICAgIHRoaXMuYWRkVGlsZXJDb3VudGVyKCdtYWxpX2h3Y19XUkJVRl9TVEFMTCcsICdXcmJ1ZiBTdGFsbCcpOworCisgICAgdGhpcy5hZGRUaWxlckN5Y2xlcygnbWFsaV9od2NfQUNUSVZFJywgJ1RpbGVyIEFjdGl2ZScpOworICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX0lOREVYX1dBSVQnLCAnSW5kZXggV2FpdCcpOworICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX0lOREVYX1JBTkdFX1dBSVQnLCAnSW5kZXggUmFuZ2UgV2FpdCcpOworICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX1ZFUlRFWF9XQUlUJywgJ1ZlcnRleCBXYWl0Jyk7CisgICAgdGhpcy5hZGRUaWxlckN5Y2xlcygnbWFsaV9od2NfUENBQ0hFX1dBSVQnLCAnUGNhY2hlIFdhaXQnKTsKKyAgICB0aGlzLmFkZFRpbGVyQ3ljbGVzKCdtYWxpX2h3Y19XUkJVRl9XQUlUJywgJ1dyYnVmIFdhaXQnKTsKKyAgICB0aGlzLmFkZFRpbGVyQ3ljbGVzKCdtYWxpX2h3Y19CVVNfUkVBRCcsICdCdXMgUmVhZCcpOworICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX0JVU19XUklURScsICdCdXMgV3JpdGUnKTsKKworICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX1RJTEVSX1VUTEJfU1RBTEwnLCAnVGlsZXIgVVRMQiBTdGFsbCcpOworICAgIHRoaXMuYWRkVGlsZXJDeWNsZXMoJ21hbGlfaHdjX1RJTEVSX1VUTEJfSElUJywgJ1RpbGVyIFVUTEIgSGl0Jyk7CisKKyAgICB0aGlzLmFkZEZyYWdDeWNsZXMoJ21hbGlfaHdjX0ZSQUdfQUNUSVZFJywgJ0FjdGl2ZScpOworICAgIC8qIE5COiBkb24ndCBwcm9wYWdhdGUgc3BlbGxpbmcgbWlzdGFrZXMgdG8gbGFiZWxzICovCisgICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19QUklNQVRJVkVTJywgJ1ByaW1pdGl2ZXMnKTsKKyAgICB0aGlzLmFkZEZyYWdDb3VudGVyKCdtYWxpX2h3Y19GUkFHX1BSSU1BVElWRVNfRFJPUFBFRCcsCisgICAgICAgICdQcmltaXRpdmVzIERyb3BwZWQnKTsKKyAgICB0aGlzLmFkZEZyYWdDeWNsZXMoJ21hbGlfaHdjX0ZSQUdfQ1lDTEVfREVTQycsICdEZXNjcmlwdG9yIFByb2Nlc3NpbmcnKTsKKyAgICB0aGlzLmFkZEZyYWdDeWNsZXMoJ21hbGlfaHdjX0ZSQUdfQ1lDTEVTX1BMUicsICdQTFIgUHJvY2Vzc2luZz8/Jyk7CisgICAgdGhpcy5hZGRGcmFnQ3ljbGVzKCdtYWxpX2h3Y19GUkFHX0NZQ0xFU19WRVJUJywgJ1ZlcnRleCBQcm9jZXNzaW5nJyk7CisgICAgdGhpcy5hZGRGcmFnQ3ljbGVzKCdtYWxpX2h3Y19GUkFHX0NZQ0xFU19UUklTRVRVUCcsICdUcmlhbmdsZSBTZXR1cCcpOworICAgIHRoaXMuYWRkRnJhZ0N5Y2xlcygnbWFsaV9od2NfRlJBR19DWUNMRVNfUkFTVCcsICdSYXN0ZXJpemF0aW9uPz8/Jyk7CisgICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19USFJFQURTJywgJ1RocmVhZHMnKTsKKyAgICB0aGlzLmFkZEZyYWdDb3VudGVyKCdtYWxpX2h3Y19GUkFHX0RVTU1ZX1RIUkVBRFMnLCAnRHVtbXkgVGhyZWFkcycpOworICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfUVVBRFNfUkFTVCcsICdRdWFkcyBSYXN0Jyk7CisgICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19RVUFEU19FWlNfVEVTVCcsICdRdWFkcyBFWlMgVGVzdCcpOworICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfUVVBRFNfRVpTX0tJTExFRCcsICdRdWFkcyBFWlMgS2lsbGVkJyk7CisgICAgdGhpcy5hZGRGcmFnQ291bnRlcignbWFsaV9od2NfRlJBR19RVUFEU19MWlNfVEVTVCcsICdRdWFkcyBMWlMgVGVzdCcpOworICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfUVVBRFNfTFpTX0tJTExFRCcsICdRdWFkcyBMWlMgS2lsbGVkJyk7CisgICAgdGhpcy5hZGRGcmFnQ3ljbGVzKCdtYWxpX2h3Y19GUkFHX0NZQ0xFX05PX1RJTEUnLCAnTm8gVGlsZXMnKTsKKyAgICB0aGlzLmFkZEZyYWdDb3VudGVyKCdtYWxpX2h3Y19GUkFHX05VTV9USUxFUycsICdUaWxlcycpOworICAgIHRoaXMuYWRkRnJhZ0NvdW50ZXIoJ21hbGlfaHdjX0ZSQUdfVFJBTlNfRUxJTScsICdUcmFuc2FjdGlvbnMgRWxpbWluYXRlZCcpOworCisgICAgdGhpcy5hZGRDb21wdXRlQ3ljbGVzKCdtYWxpX2h3Y19DT01QVVRFX0FDVElWRScsICdBY3RpdmUnKTsKKyAgICB0aGlzLmFkZENvbXB1dGVDb3VudGVyKCdtYWxpX2h3Y19DT01QVVRFX1RBU0tTJywgJ1Rhc2tzJyk7CisgICAgdGhpcy5hZGRDb21wdXRlQ291bnRlcignbWFsaV9od2NfQ09NUFVURV9USFJFQURTJywgJ1RocmVhZHMgU3RhcnRlZCcpOworICAgIHRoaXMuYWRkQ29tcHV0ZUN5Y2xlcygnbWFsaV9od2NfQ09NUFVURV9DWUNMRVNfREVTQycsCisgICAgICAgICdXYWl0aW5nIGZvciBEZXNjcmlwdG9ycycpOworCisgICAgdGhpcy5hZGRUcmlwaXBlQ3ljbGVzKCdtYWxpX2h3Y19UUklQSVBFX0FDVElWRScsICdBY3RpdmUnKTsKKworICAgIHRoaXMuYWRkQXJpdGhDb3VudGVyKCdtYWxpX2h3Y19BUklUSF9XT1JEUycsICdJbnN0cnVjdGlvbnMgKC9QaXBlcyknKTsKKyAgICB0aGlzLmFkZEFyaXRoQ3ljbGVzKCdtYWxpX2h3Y19BUklUSF9DWUNMRVNfUkVHJywKKyAgICAgICAgJ1JlZyBzY2hlZHVsaW5nIHN0YWxscyAoL1BpcGVzKScpOworICAgIHRoaXMuYWRkQXJpdGhDeWNsZXMoJ21hbGlfaHdjX0FSSVRIX0NZQ0xFU19MMCcsCisgICAgICAgICdMMCBjYWNoZSBtaXNzIHN0YWxscyAoL1BpcGVzKScpOworICAgIHRoaXMuYWRkQXJpdGhDb3VudGVyKCdtYWxpX2h3Y19BUklUSF9GUkFHX0RFUEVORCcsCisgICAgICAgICdGcmFnIGRlcCBjaGVjayBmYWlsdXJlcyAoL1BpcGVzKScpOworCisgICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1dPUkRTJywgJ0luc3RydWN0aW9uIFdvcmRzIENvbXBsZXRlZCcpOworICAgIHRoaXMuYWRkTFNDb3VudGVyKCdtYWxpX2h3Y19MU19JU1NVRVMnLCAnRnVsbCBQaXBlbGluZSBJc3N1ZXMnKTsKKyAgICB0aGlzLmFkZExTQ291bnRlcignbWFsaV9od2NfTFNfUkVTVEFSVFMnLCAnUmVzdGFydHMgKHVucGFpcmFibGUgaW5zdHMpJyk7CisgICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1JFSVNTVUVTX01JU1MnLAorICAgICAgICAnUGlwZWxpbmUgcmVpc3N1ZSAoY2FjaGUgbWlzcy91VExCKScpOworICAgIHRoaXMuYWRkTFNDb3VudGVyKCdtYWxpX2h3Y19MU19SRUlTU1VFU19WRCcsCisgICAgICAgICdQaXBlbGluZSByZWlzc3VlICh2YXJ5aW5nIGRhdGEpJyk7CisgICAgLyogVE9ETyhzbGVmZmxlcikgZml4IGtlcm5lbCBldmVudCB0eXBvICovCisgICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1JFSVNTVUVfQVRUUklCX01JU1MnLAorICAgICAgICAnUGlwZWxpbmUgcmVpc3N1ZSAoYXR0cmlidXRlIGNhY2hlIG1pc3MpJyk7CisgICAgdGhpcy5hZGRMU0NvdW50ZXIoJ21hbGlfaHdjX0xTX1JFSVNTVUVfTk9fV0InLCAnV3JpdGViYWNrIG5vdCB1c2VkJyk7CisKKyAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9XT1JEUycsICdXb3JkcycpOworICAgIHRoaXMuYWRkVGV4Q291bnRlcignbWFsaV9od2NfVEVYX0JVQkJMRVMnLCAnQnViYmxlcycpOworICAgIHRoaXMuYWRkVGV4Q291bnRlcignbWFsaV9od2NfVEVYX1dPUkRTX0wwJywgJ1dvcmRzIEwwJyk7CisgICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfV09SRFNfREVTQycsICdXb3JkcyBEZXNjJyk7CisgICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfVEhSRUFEUycsICdUaHJlYWRzJyk7CisgICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfUkVDSVJDX0ZNSVNTJywgJ1JlY2lyYyBkdWUgdG8gRnVsbCBNaXNzJyk7CisgICAgdGhpcy5hZGRUZXhDb3VudGVyKCdtYWxpX2h3Y19URVhfUkVDSVJDX0RFU0MnLCAnUmVjaXJjIGR1ZSB0byBEZXNjIE1pc3MnKTsKKyAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9SRUNJUkNfTVVMVEknLCAnUmVjaXJjIGR1ZSB0byBNdWx0aXBhc3MnKTsKKyAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9SRUNJUkNfUE1JU1MnLAorICAgICAgICAnUmVjaXJjIGR1ZSB0byBQYXJ0aWFsIENhY2hlIE1pc3MnKTsKKyAgICB0aGlzLmFkZFRleENvdW50ZXIoJ21hbGlfaHdjX1RFWF9SRUNJUkNfQ09ORicsCisgICAgICAgICdSZWNpcmMgZHVlIHRvIENhY2hlIENvbmZsaWN0Jyk7CisKKyAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19SRUFEX0hJVFMnLCAnUmVhZCBIaXRzJyk7CisgICAgdGhpcy5hZGRMU0NDb3VudGVyKCdtYWxpX2h3Y19MU0NfUkVBRF9NSVNTRVMnLCAnUmVhZCBNaXNzZXMnKTsKKyAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19XUklURV9ISVRTJywgJ1dyaXRlIEhpdHMnKTsKKyAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19XUklURV9NSVNTRVMnLCAnV3JpdGUgTWlzc2VzJyk7CisgICAgdGhpcy5hZGRMU0NDb3VudGVyKCdtYWxpX2h3Y19MU0NfQVRPTUlDX0hJVFMnLCAnQXRvbWljIEhpdHMnKTsKKyAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19BVE9NSUNfTUlTU0VTJywgJ0F0b21pYyBNaXNzZXMnKTsKKyAgICB0aGlzLmFkZExTQ0NvdW50ZXIoJ21hbGlfaHdjX0xTQ19MSU5FX0ZFVENIRVMnLCAnTGluZSBGZXRjaGVzJyk7CisgICAgdGhpcy5hZGRMU0NDb3VudGVyKCdtYWxpX2h3Y19MU0NfRElSVFlfTElORScsICdEaXJ0eSBMaW5lcycpOworICAgIHRoaXMuYWRkTFNDQ291bnRlcignbWFsaV9od2NfTFNDX1NOT09QUycsICdTbm9vcHMnKTsKKworICAgIHRoaXMuYWRkQVhJQ291bnRlcignbWFsaV9od2NfQVhJX1RMQl9TVEFMTCcsICdBZGRyZXNzIGNoYW5uZWwgc3RhbGwnKTsKKyAgICB0aGlzLmFkZEFYSUNvdW50ZXIoJ21hbGlfaHdjX0FYSV9UTEJfTUlTUycsICdDYWNoZSBNaXNzJyk7CisgICAgdGhpcy5hZGRBWElDb3VudGVyKCdtYWxpX2h3Y19BWElfVExCX1RSQU5TQUNUSU9OJywgJ1RyYW5zYWN0aW9ucycpOworICAgIHRoaXMuYWRkQVhJQ291bnRlcignbWFsaV9od2NfTFNfVExCX01JU1MnLCAnTFMgQ2FjaGUgTWlzcycpOworICAgIHRoaXMuYWRkQVhJQ291bnRlcignbWFsaV9od2NfTFNfVExCX0hJVCcsICdMUyBDYWNoZSBIaXQnKTsKKyAgICB0aGlzLmFkZEFYSUNvdW50ZXIoJ21hbGlfaHdjX0FYSV9CRUFUU19SRUFEJywgJ1JlYWQgQmVhdHMnKTsKKyAgICB0aGlzLmFkZEFYSUNvdW50ZXIoJ21hbGlfaHdjX0FYSV9CRUFUU19XUklURScsICdXcml0ZSBCZWF0cycpOworCisgICAgdGhpcy5hZGRNTVVDb3VudGVyKCdtYWxpX2h3Y19NTVVfVEFCTEVfV0FMSycsICdQYWdlIFRhYmxlIFdhbGtzJyk7CisgICAgdGhpcy5hZGRNTVVDb3VudGVyKCdtYWxpX2h3Y19NTVVfUkVQTEFZX01JU1MnLAorICAgICAgICAnQ2FjaGUgTWlzcyBmcm9tIFJlcGxheSBCdWZmZXInKTsKKyAgICB0aGlzLmFkZE1NVUNvdW50ZXIoJ21hbGlfaHdjX01NVV9SRVBMQVlfRlVMTCcsICdSZXBsYXkgQnVmZmVyIEZ1bGwnKTsKKyAgICB0aGlzLmFkZE1NVUNvdW50ZXIoJ21hbGlfaHdjX01NVV9ORVdfTUlTUycsICdDYWNoZSBNaXNzIG9uIE5ldyBSZXF1ZXN0Jyk7CisgICAgdGhpcy5hZGRNTVVDb3VudGVyKCdtYWxpX2h3Y19NTVVfSElUJywgJ0NhY2hlIEhpdCcpOworCisgICAgdGhpcy5hZGRNTVVDeWNsZXMoJ21hbGlfaHdjX1VUTEJfU1RBTEwnLCAnVVRMQiBTdGFsbGVkJyk7CisgICAgdGhpcy5hZGRNTVVDeWNsZXMoJ21hbGlfaHdjX1VUTEJfUkVQTEFZX01JU1MnLCAnVVRMQiBSZXBsYXkgTWlzcycpOworICAgIHRoaXMuYWRkTU1VQ3ljbGVzKCdtYWxpX2h3Y19VVExCX1JFUExBWV9GVUxMJywgJ1VUTEIgUmVwbGF5IEZ1bGwnKTsKKyAgICB0aGlzLmFkZE1NVUN5Y2xlcygnbWFsaV9od2NfVVRMQl9ORVdfTUlTUycsICdVVExCIE5ldyBNaXNzJyk7CisgICAgdGhpcy5hZGRNTVVDeWNsZXMoJ21hbGlfaHdjX1VUTEJfSElUJywgJ1VUTEIgSGl0Jyk7CisKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfUkVBRF9CRUFUUycsICdSZWFkIEJlYXRzJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1dSSVRFX0JFQVRTJywgJ1dyaXRlIEJlYXRzJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0FOWV9MT09LVVAnLCAnQW55IExvb2t1cCcpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9SRUFEX0xPT0tVUCcsICdSZWFkIExvb2t1cCcpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9TUkVBRF9MT09LVVAnLCAnU2hhcmVhYmxlIFJlYWQgTG9va3VwJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1JFQURfUkVQTEFZJywgJ1JlYWQgUmVwbGF5ZWQnKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfUkVBRF9TTk9PUCcsICdSZWFkIFNub29wJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1JFQURfSElUJywgJ1JlYWQgQ2FjaGUgSGl0Jyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0NMRUFOX01JU1MnLCAnQ2xlYW5VbmlxdWUgTWlzcycpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9XUklURV9MT09LVVAnLCAnV3JpdGUgTG9va3VwJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX1NXUklURV9MT09LVVAnLCAnU2hhcmVhYmxlIFdyaXRlIExvb2t1cCcpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9XUklURV9SRVBMQVknLCAnV3JpdGUgUmVwbGF5ZWQnKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfV1JJVEVfU05PT1AnLCAnV3JpdGUgU25vb3AnKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfV1JJVEVfSElUJywgJ1dyaXRlIENhY2hlIEhpdCcpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfUkVBRF9GVUxMJywgJ0V4dFJEIHdpdGggQklVIEZ1bGwnKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1JFQURfSEFMRicsICdFeHRSRCB3aXRoIEJJVSA+MS8yIEZ1bGwnKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1dSSVRFX0ZVTEwnLCAnRXh0V1Igd2l0aCBCSVUgRnVsbCcpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfV1JJVEVfSEFMRicsICdFeHRXUiB3aXRoIEJJVSA+MS8yIEZ1bGwnKTsKKworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfUkVBRCcsICdFeHRlcm5hbCBSZWFkIChFeHRSRCknKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1JFQURfTElORScsICdFeHRSRCAobGluZWZpbGwpJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9XUklURScsICdFeHRlcm5hbCBXcml0ZSAoRXh0V1IpJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9XUklURV9MSU5FJywgJ0V4dFdSIChsaW5lZmlsbCknKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1dSSVRFX1NNQUxMJywgJ0V4dFdSIChidXJzdCBzaXplIDw2NEIpJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9CQVJSSUVSJywgJ0V4dGVybmFsIEJhcnJpZXInKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX0FSX1NUQUxMJywgJ0FkZHJlc3MgUmVhZCBzdGFsbHMnKTsKKyAgICB0aGlzLmFkZEwyQ291bnRlcignbWFsaV9od2NfTDJfRVhUX1JfQlVGX0ZVTEwnLAorICAgICAgICAnUmVzcG9uc2UgQnVmZmVyIGZ1bGwgc3RhbGxzJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9SRF9CVUZfRlVMTCcsCisgICAgICAgICdSZWFkIERhdGEgQnVmZmVyIGZ1bGwgc3RhbGxzJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9SX1JBVycsICdSQVcgaGF6YXJkIHN0YWxscycpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfV19TVEFMTCcsICdXcml0ZSBEYXRhIHN0YWxscycpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9FWFRfV19CVUZfRlVMTCcsICdXcml0ZSBEYXRhIEJ1ZmZlciBmdWxsJyk7CisgICAgdGhpcy5hZGRMMkNvdW50ZXIoJ21hbGlfaHdjX0wyX0VYVF9SX1dfSEFaQVJEJywgJ1dBVyBvciBXQVIgaGF6YXJkIHN0YWxscycpOworICAgIHRoaXMuYWRkTDJDb3VudGVyKCdtYWxpX2h3Y19MMl9UQUdfSEFaQVJEJywgJ1RhZyBoYXphcmQgcmVwbGF5cycpOworICAgIHRoaXMuYWRkTDJDeWNsZXMoJ21hbGlfaHdjX0wyX1NOT09QX0ZVTEwnLCAnU25vb3AgYnVmZmVyIGZ1bGwnKTsKKyAgICB0aGlzLmFkZEwyQ3ljbGVzKCdtYWxpX2h3Y19MMl9SRVBMQVlfRlVMTCcsICdSZXBsYXkgYnVmZmVyIGZ1bGwnKTsKKworICAgIC8vIERESyBldmVudHMgKGZyb20gWCBzZXJ2ZXIpCisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3RyYWNpbmdfbWFya193cml0ZTptYWxpX2RyaXZlcicsCisgICAgICAgIE1hbGlQYXJzZXIucHJvdG90eXBlLm1hbGlEREtFdmVudC5iaW5kKHRoaXMpKTsKKworICAgIHRoaXMubW9kZWxfID0gaW1wb3J0ZXIubW9kZWxfOworICB9CisKKyAgTWFsaVBhcnNlci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBQYXJzZXIucHJvdG90eXBlLAorCisgICAgbWFsaURES09wZW5TbGljZTogZnVuY3Rpb24ocGlkLCB0aWQsIHRzLCBmdW5jLCBibG9ja2luZm8pIHsKKyAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MocGlkKQorICAgICAgICAuZ2V0T3JDcmVhdGVUaHJlYWQodGlkKTsKKyAgICAgIHZhciBmdW5jQXJncyA9IC9eKFtcd1xkX10qKSg/OlwoXCkpPzo/XHMqKC4qKSQvLmV4ZWMoZnVuYyk7CisgICAgICB0aHJlYWQuc2xpY2VHcm91cC5iZWdpblNsaWNlKCdncHUtZHJpdmVyJywgZnVuY0FyZ3NbMV0sIHRzLAorICAgICAgICAgIHsgJ2FyZ3MnOiBmdW5jQXJnc1syXSwKKyAgICAgICAgICAgICdibG9ja2luZm8nOiBibG9ja2luZm8gfSk7CisgICAgfSwKKworICAgIG1hbGlEREtDbG9zZVNsaWNlOiBmdW5jdGlvbihwaWQsIHRpZCwgdHMsIGFyZ3MsIGJsb2NraW5mbykgeworICAgICAgdmFyIHRocmVhZCA9IHRoaXMuaW1wb3J0ZXIubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhwaWQpCisgICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZCh0aWQpOworICAgICAgaWYgKCF0aHJlYWQuc2xpY2VHcm91cC5vcGVuU2xpY2VDb3VudCkgeworICAgICAgICAvLyBEaXNjYXJkIHVubWF0Y2hlZCBlbmRzLgorICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB0aHJlYWQuc2xpY2VHcm91cC5lbmRTbGljZSh0cyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIERlZHVjZSB0aGUgZm9ybWF0IG9mIE1hbGkgcGVyZiBldmVudHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHtSZWdFeHB9IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHBhcnNpbmcgZGF0YSB3aGVuIHRoZSBmb3JtYXQKKyAgICAgKiBpcyByZWNvZ25pemVkOyBvdGhlcndpc2UgbnVsbC4KKyAgICAgKi8KKyAgICBhdXRvRGV0ZWN0TGluZVJFOiBmdW5jdGlvbihsaW5lKSB7CisgICAgICAvLyBNYXRjaGVzIE1hbGkgcGVyZiBldmVudHMgd2l0aCB0aHJlYWQgaW5mbworICAgICAgdmFyIGxpbmVSRVdpdGhUaHJlYWQgPQorICAgICAgICAgIC9eXHMqXCgoW1x3XC1dKilcKVxzKihcdyspOlxzKihbXHdcXFwvXC5cLV0qQFxkKik6P1xzKiguKikkLzsKKyAgICAgIGlmIChsaW5lUkVXaXRoVGhyZWFkLnRlc3QobGluZSkpCisgICAgICAgIHJldHVybiBsaW5lUkVXaXRoVGhyZWFkOworCisgICAgICAvLyBNYXRjaGVzIG9sZC1zdHlsZSBNYWxpIHBlcmYgZXZlbnRzCisgICAgICB2YXIgbGluZVJFTm9UaHJlYWQgPSAvXnMqKCkoXHcrKTpccyooW1x3XFxcLy5cLV0qKTo/XHMqKC4qKSQvOworICAgICAgaWYgKGxpbmVSRU5vVGhyZWFkLnRlc3QobGluZSkpCisgICAgICAgIHJldHVybiBsaW5lUkVOb1RocmVhZDsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICBsaW5lUkU6IG51bGwsCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgbWFsaURESyBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUgaW4gdGhlIGltcG9ydGVyLgorICAgICAqIGV2ZW50cyB3aWxsIGNvbWUgaW4gcGFpcnMgd2l0aCBhIGNyb3NfdHJhY2VfcHJpbnRfZW50ZXIKKyAgICAgKiBsaWtlIHRoaXMgKGxpbmUgYnJva2VuIGhlcmUgZm9yIGZvcm1hdHRpbmcpOgorICAgICAqCisgICAgICogdHJhY2luZ19tYXJrX3dyaXRlOiBtYWxpX2RyaXZlcjogKG1hbGktMDEyMzQ1KSBjcm9zX3RyYWNlX3ByaW50X2VudGVyOiBcCisgICAgICogICBnbGVzL3NyYy90ZXh0dXJlL21hbGlfZ2xlc190ZXh0dXJlX3NsYXZlLmNAMTUwNTogZ2xlczJfdGV4dHVyZXBfdXBsb2FkCisgICAgICoKKyAgICAgKiBhbmQgYSBjcm9zX3RyYWNlX3ByaW50X2V4aXQgbGlrZSB0aGlzOgorICAgICAqCisgICAgICogdHJhY2luZ19tYXJrX3dyaXRlOiBtYWxpX2RyaXZlcjogKG1hbGktMDEyMzQ1KSBjcm9zX3RyYWNlX3ByaW50X2V4aXQ6IFwKKyAgICAgKiAgIGdsZXMvc3JjL3RleHR1cmUvbWFsaV9nbGVzX3RleHR1cmVfc2xhdmUuY0AxNTA1OgorICAgICAqLworICAgIG1hbGlEREtFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgaWYgKHRoaXMubGluZVJFID09IG51bGwpIHsKKyAgICAgICAgdGhpcy5saW5lUkUgPSB0aGlzLmF1dG9EZXRlY3RMaW5lUkUoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgICBpZiAodGhpcy5saW5lUkUgPT0gbnVsbCkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICB2YXIgbWFsaUV2ZW50ID0gdGhpcy5saW5lUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICAvLyBPbGQtc3R5bGUgTWFsaSBwZXJmIGV2ZW50cyBoYXZlIG5vIHRocmVhZCBpZCwgc28gbWFrZSBvbmUuCisgICAgICB2YXIgdGlkID0gKG1hbGlFdmVudFsxXSA9PT0gJycgPyAnbWFsaScgOiBtYWxpRXZlbnRbMV0pOworICAgICAgc3dpdGNoIChtYWxpRXZlbnRbMl0pIHsKKyAgICAgICAgY2FzZSAnY3Jvc190cmFjZV9wcmludF9lbnRlcic6CisgICAgICAgICAgdGhpcy5tYWxpRERLT3BlblNsaWNlKHBpZCwgdGlkLCB0cywgbWFsaUV2ZW50WzRdLAorICAgICAgICAgICAgICBtYWxpRXZlbnRbM10pOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdjcm9zX3RyYWNlX3ByaW50X2V4aXQnOgorICAgICAgICAgIHRoaXMubWFsaURES0Nsb3NlU2xpY2UocGlkLCB0aWQsIHRzLCBbXSwgbWFsaUV2ZW50WzNdKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICAvKgorICAgICAqIEtlcm5lbCBldmVudCBzdXBwb3J0LgorICAgICAqLworCisgICAgZHZmc1NhbXBsZTogZnVuY3Rpb24oY291bnRlck5hbWUsIHNlcmllc05hbWUsIHRzLCBzKSB7CisgICAgICB2YXIgdmFsdWUgPSBwYXJzZUludChzKTsKKyAgICAgIHZhciBjb3VudGVyID0gdGhpcy5tb2RlbF8ua2VybmVsLgorICAgICAgICAgIGdldE9yQ3JlYXRlQ291bnRlcignRFZGUycsIGNvdW50ZXJOYW1lKTsKKyAgICAgIGlmIChjb3VudGVyLm51bVNlcmllcyA9PT0gMCkgeworICAgICAgICBjb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcyhzZXJpZXNOYW1lLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY291bnRlci5uYW1lKSkpOworICAgICAgfQorICAgICAgY291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIHZhbHVlKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBkdmZzRXZlbnRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL3V0aWxpemF0aW9uPShcZCspLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdGhpcy5kdmZzU2FtcGxlKCdEVkZTIFV0aWxpemF0aW9uJywgJ3V0aWxpemF0aW9uJywgdHMsIGV2ZW50WzFdKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBkdmZzU2V0Q2xvY2tFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL2ZyZXF1ZW5jeT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHRoaXMuZHZmc1NhbXBsZSgnRFZGUyBGcmVxdWVuY3knLCAnZnJlcXVlbmN5JywgdHMsIGV2ZW50WzFdKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBkdmZzU2V0Vm9sdGFnZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSAvdm9sdGFnZT0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHRoaXMuZHZmc1NhbXBsZSgnRFZGUyBWb2x0YWdlJywgJ3ZvbHRhZ2UnLCB0cywgZXZlbnRbMV0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGh3Y1NhbXBsZTogZnVuY3Rpb24oY2F0LCBjb3VudGVyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL3ZhbD0oXGQrKS8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB2YXIgdmFsdWUgPSBwYXJzZUludChldmVudFsxXSk7CisKKyAgICAgIHZhciBjb3VudGVyID0gdGhpcy5tb2RlbF8ua2VybmVsLgorICAgICAgICAgIGdldE9yQ3JlYXRlQ291bnRlcihjYXQsIGNvdW50ZXJOYW1lKTsKKyAgICAgIGlmIChjb3VudGVyLm51bVNlcmllcyA9PT0gMCkgeworICAgICAgICBjb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcyhzZXJpZXNOYW1lLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoY291bnRlci5uYW1lKSkpOworICAgICAgfQorICAgICAgY291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIHZhbHVlKTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIC8qCisgICAgICogSm9iIE1hbmFnZXIgYmxvY2sgY291bnRlcnMuCisgICAgICovCisgICAgam1TYW1wbGU6IGZ1bmN0aW9uKGN0ck5hbWUsIHNlcmllc05hbWUsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHJldHVybiB0aGlzLmh3Y1NhbXBsZSgnbWFsaTpqbScsICdKTTogJyArIGN0ck5hbWUsIHNlcmllc05hbWUsIHRzLAorICAgICAgICAgIGV2ZW50QmFzZSk7CisgICAgfSwKKyAgICBhZGRKTUNvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgICByZXR1cm4gdGhpcy5qbVNhbXBsZShod2NUaXRsZSwgJ2NvdW50JywgdHMsIGV2ZW50QmFzZSk7CisgICAgICB9CisgICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKKyAgICB9LAorICAgIGFkZEpNQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7CisgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuam1TYW1wbGUoaHdjVGl0bGUsICdjeWNsZXMnLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICAvKgorICAgICAqIFRpbGVyIGJsb2NrIGNvdW50ZXJzLgorICAgICAqLworICAgIHRpbGVyU2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6dGlsZXInLCAnVGlsZXI6ICcgKyBjdHJOYW1lLCBzZXJpZXNOYW1lLAorICAgICAgICAgIHRzLCBldmVudEJhc2UpOworICAgIH0sCisgICAgYWRkVGlsZXJDb3VudGVyOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7CisgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudGlsZXJTYW1wbGUoaHdjVGl0bGUsICdjb3VudCcsIHRzLCBldmVudEJhc2UpOworICAgICAgfQorICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKyAgICBhZGRUaWxlckN5Y2xlczogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgeworICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICAgIHJldHVybiB0aGlzLnRpbGVyU2FtcGxlKGh3Y1RpdGxlLCAnY3ljbGVzJywgdHMsIGV2ZW50QmFzZSk7CisgICAgICB9CisgICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBGcmFnbWVudCBjb3VudGVycy4KKyAgICAgKi8KKyAgICBmcmFnU2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6ZnJhZ21lbnQnLCAnRnJhZ21lbnQ6ICcgKyBjdHJOYW1lLAorICAgICAgICAgIHNlcmllc05hbWUsIHRzLCBldmVudEJhc2UpOworICAgIH0sCisgICAgYWRkRnJhZ0NvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgICByZXR1cm4gdGhpcy5mcmFnU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOworICAgIH0sCisgICAgYWRkRnJhZ0N5Y2xlczogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgeworICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICAgIHJldHVybiB0aGlzLmZyYWdTYW1wbGUoaHdjVGl0bGUsICdjeWNsZXMnLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICAvKgorICAgICAqIENvbXB1dGUgY291bnRlcnMuCisgICAgICovCisgICAgY29tcHV0ZVNhbXBsZTogZnVuY3Rpb24oY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmNvbXB1dGUnLCAnQ29tcHV0ZTogJyArIGN0ck5hbWUsCisgICAgICAgICAgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSk7CisgICAgfSwKKyAgICBhZGRDb21wdXRlQ291bnRlcjogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgeworICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVTYW1wbGUoaHdjVGl0bGUsICdjb3VudCcsIHRzLCBldmVudEJhc2UpOworICAgICAgfQorICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKyAgICBhZGRDb21wdXRlQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7CisgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZVNhbXBsZShod2NUaXRsZSwgJ2N5Y2xlcycsIHRzLCBldmVudEJhc2UpOworICAgICAgfQorICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qCisgICAgICogVHJpcGlwZSBjb3VudGVycy4KKyAgICAgKi8KKyAgICBhZGRUcmlwaXBlQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7CisgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOnNoYWRlcicsICdUcmlwaXBlOiAnICsgaHdjVGl0bGUsICdjeWNsZXMnLAorICAgICAgICAgICAgdHMsIGV2ZW50QmFzZSk7CisgICAgICB9CisgICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBBcml0aCBjb3VudGVycy4KKyAgICAgKi8KKyAgICBhcml0aFNhbXBsZTogZnVuY3Rpb24oY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmFyaXRoJywgJ0FyaXRoOiAnICsgY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsCisgICAgICAgICAgZXZlbnRCYXNlKTsKKyAgICB9LAorICAgIGFkZEFyaXRoQ291bnRlcjogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgeworICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICAgIHJldHVybiB0aGlzLmFyaXRoU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOworICAgIH0sCisgICAgYWRkQXJpdGhDeWNsZXM6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgICByZXR1cm4gdGhpcy5hcml0aFNhbXBsZShod2NUaXRsZSwgJ2N5Y2xlcycsIHRzLCBldmVudEJhc2UpOworICAgICAgfQorICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qCisgICAgICogTG9hZC9TdG9yZSBjb3VudGVycy4KKyAgICAgKi8KKyAgICBhZGRMU0NvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6bHMnLCAnTFM6ICcgKyBod2NUaXRsZSwgJ2NvdW50JywgdHMsCisgICAgICAgICAgICBldmVudEJhc2UpOworICAgICAgfQorICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qCisgICAgICogVGV4dHVyZSBjb3VudGVycy4KKyAgICAgKi8KKyAgICB0ZXh0dXJlU2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6dGV4dHVyZScsICdUZXh0dXJlOiAnICsgY3RyTmFtZSwKKyAgICAgICAgICBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKTsKKyAgICB9LAorICAgIGFkZFRleENvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgICByZXR1cm4gdGhpcy50ZXh0dXJlU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICAvKgorICAgICAqIExTQyBjb3VudGVycy4KKyAgICAgKi8KKyAgICBhZGRMU0NDb3VudGVyOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7CisgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmxzYycsICdMU0M6ICcgKyBod2NUaXRsZSwgJ2NvdW50JywgdHMsCisgICAgICAgICAgICBldmVudEJhc2UpOworICAgICAgfQorICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qCisgICAgICogVExCIGNvdW50ZXJzLgorICAgICAqLworICAgIGFkZEFYSUNvdW50ZXI6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6YXhpJywgJ0FYSTogJyArIGh3Y1RpdGxlLCAnY291bnQnLCB0cywKKyAgICAgICAgICAgIGV2ZW50QmFzZSk7CisgICAgICB9CisgICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBNTVUgY291bnRlcnMuCisgICAgICovCisgICAgbW11U2FtcGxlOiBmdW5jdGlvbihjdHJOYW1lLCBzZXJpZXNOYW1lLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICByZXR1cm4gdGhpcy5od2NTYW1wbGUoJ21hbGk6bW11JywgJ01NVTogJyArIGN0ck5hbWUsIHNlcmllc05hbWUsIHRzLAorICAgICAgICAgIGV2ZW50QmFzZSk7CisgICAgfSwKKyAgICBhZGRNTVVDb3VudGVyOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7CisgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubW11U2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOworICAgIH0sCisgICAgYWRkTU1VQ3ljbGVzOiBmdW5jdGlvbihod2NFdmVudE5hbWUsIGh3Y1RpdGxlKSB7CisgICAgICBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubW11U2FtcGxlKGh3Y1RpdGxlLCAnY3ljbGVzJywgdHMsIGV2ZW50QmFzZSk7CisgICAgICB9CisgICAgICB0aGlzLmltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGh3Y0V2ZW50TmFtZSwgaGFuZGxlci5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBMMiBjb3VudGVycy4KKyAgICAgKi8KKyAgICBsMlNhbXBsZTogZnVuY3Rpb24oY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgcmV0dXJuIHRoaXMuaHdjU2FtcGxlKCdtYWxpOmwyJywgJ0wyOiAnICsgY3RyTmFtZSwgc2VyaWVzTmFtZSwgdHMsCisgICAgICAgICAgZXZlbnRCYXNlKTsKKyAgICB9LAorICAgIGFkZEwyQ291bnRlcjogZnVuY3Rpb24oaHdjRXZlbnROYW1lLCBod2NUaXRsZSkgeworICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICAgIHJldHVybiB0aGlzLmwyU2FtcGxlKGh3Y1RpdGxlLCAnY291bnQnLCB0cywgZXZlbnRCYXNlKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoaHdjRXZlbnROYW1lLCBoYW5kbGVyLmJpbmQodGhpcykpOworICAgIH0sCisgICAgYWRkTDJDeWNsZXM6IGZ1bmN0aW9uKGh3Y0V2ZW50TmFtZSwgaHdjVGl0bGUpIHsKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgICByZXR1cm4gdGhpcy5sMlNhbXBsZShod2NUaXRsZSwgJ2N5Y2xlcycsIHRzLCBldmVudEJhc2UpOworICAgICAgfQorICAgICAgdGhpcy5pbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcihod2NFdmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgfQorICB9OworCisgIFBhcnNlci5yZWdpc3RlcihNYWxpUGFyc2VyKTsKKworICByZXR1cm4geworICAgIE1hbGlQYXJzZXI6IE1hbGlQYXJzZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWFsaV9wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tYWxpX3BhcnNlcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWFsaV9wYXJzZXJfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL21hbGlfcGFyc2VyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tZW1yZWNsYWltX3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tZW1yZWNsYWltX3BhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMDk5MDgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL21lbXJlY2xhaW1fcGFyc2VyLmh0bWwKQEAgLTAsMCArMSwxODggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFBhcnNlcyBkcm0gZHJpdmVyIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7CisgIHZhciBQYXJzZXIgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyOworCisgIC8qKgorICAgKiBQYXJzZXMgbGludXggdm1zY2FuIHRyYWNlIGV2ZW50cy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBNZW1SZWNsYWltUGFyc2VyKGltcG9ydGVyKSB7CisgICAgUGFyc2VyLmNhbGwodGhpcywgaW1wb3J0ZXIpOworCisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21tX3Ztc2Nhbl9rc3dhcGRfd2FrZScsCisgICAgICAgIE1lbVJlY2xhaW1QYXJzZXIucHJvdG90eXBlLmtzd2FwZFdha2UuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21tX3Ztc2Nhbl9rc3dhcGRfc2xlZXAnLAorICAgICAgICBNZW1SZWNsYWltUGFyc2VyLnByb3RvdHlwZS5rc3dhcGRTbGVlcC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignbW1fdm1zY2FuX2RpcmVjdF9yZWNsYWltX2JlZ2luJywKKyAgICAgICAgTWVtUmVjbGFpbVBhcnNlci5wcm90b3R5cGUucmVjbGFpbUJlZ2luLmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdtbV92bXNjYW5fZGlyZWN0X3JlY2xhaW1fZW5kJywKKyAgICAgICAgTWVtUmVjbGFpbVBhcnNlci5wcm90b3R5cGUucmVjbGFpbUVuZC5iaW5kKHRoaXMpKTsKKyAgfQorCisgIC8vIE1hdGNoZXMgdGhlIG1tX3Ztc2Nhbl9rc3dhcGRfd2FrZSByZWNvcmQKKyAgLy8gIG1tX3Ztc2Nhbl9rc3dhcGRfd2FrZTogbmlkPSVkIG9yZGVyPSVkCisgIHZhciBrc3dhcGRXYWtlUkUgPSAvbmlkPShcZCspIG9yZGVyPShcZCspLzsKKworICAvLyBNYXRjaGVzIHRoZSBtbV92bXNjYW5fa3N3YXBkX3NsZWVwIHJlY29yZAorICAvLyAgbW1fdm1zY2FuX2tzd2FwZF9zbGVlcDogb3JkZXI9JWQKKyAgdmFyIGtzd2FwZFNsZWVwUkUgPSAvbmlkPShcZCspLzsKKworICAvLyBNYXRjaGVzIHRoZSBtbV92bXNjYW5fZGlyZWN0X3JlY2xhaW1fYmVnaW4gcmVjb3JkCisgIC8vICBtbV92bXNjYW5fZGlyZWN0X3JlY2xhaW1fYmVnaW46IG9yZGVyPSVkIG1heV93cml0ZXBhZ2U9JWQgZ2ZwX2ZsYWdzPSVzCisgIHZhciByZWNsYWltQmVnaW5SRSA9IC9vcmRlcj0oXGQrKSBtYXlfd3JpdGVwYWdlPVxkKyBnZnBfZmxhZ3M9KC4rKS87CisKKyAgLy8gTWF0Y2hlcyB0aGUgbW1fdm1zY2FuX2RpcmVjdF9yZWNsYWltX2VuZCByZWNvcmQKKyAgLy8gIG1tX3Ztc2Nhbl9kaXJlY3RfcmVjbGFpbV9lbmQ6IG5yX3JlY2xhaW1lZD0lbHUKKyAgdmFyIHJlY2xhaW1FbmRSRSA9IC9ucl9yZWNsYWltZWQ9KFxkKykvOworCisgIE1lbVJlY2xhaW1QYXJzZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKKworICAgIG9wZW5Bc3luY1NsaWNlOiBmdW5jdGlvbih0cywgY2F0ZWdvcnksIHRocmVhZE5hbWUsIHBpZCwga2V5LCBuYW1lKSB7CisgICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoCisgICAgICAgICAgY2F0ZWdvcnkgKyAnOicgKyB0aHJlYWROYW1lLCBwaWQpOworICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLkFzeW5jU2xpY2UoCisgICAgICAgICAgY2F0ZWdvcnksIG5hbWUsCisgICAgICAgICAgdHIuYy5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcobmFtZSksCisgICAgICAgICAgdHMpOworICAgICAgc2xpY2Uuc3RhcnRUaHJlYWQgPSBrdGhyZWFkLnRocmVhZDsKKworICAgICAgaWYgKCFrdGhyZWFkLm9wZW5Bc3luY1NsaWNlcykgeworICAgICAgICBrdGhyZWFkLm9wZW5Bc3luY1NsaWNlcyA9IHsgfTsKKyAgICAgIH0KKyAgICAgIGt0aHJlYWQub3BlbkFzeW5jU2xpY2VzW2tleV0gPSBzbGljZTsKKyAgICB9LAorCisgICAgY2xvc2VBc3luY1NsaWNlOiBmdW5jdGlvbih0cywgY2F0ZWdvcnksIHRocmVhZE5hbWUsIHBpZCwga2V5LCBhcmdzKSB7CisgICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoCisgICAgICAgICAgY2F0ZWdvcnkgKyAnOicgKyB0aHJlYWROYW1lLCBwaWQpOworICAgICAgaWYgKGt0aHJlYWQub3BlbkFzeW5jU2xpY2VzKSB7CisgICAgICAgIHZhciBzbGljZSA9IGt0aHJlYWQub3BlbkFzeW5jU2xpY2VzW2tleV07CisgICAgICAgIGlmIChzbGljZSkgeworICAgICAgICAgIHNsaWNlLmR1cmF0aW9uID0gdHMgLSBzbGljZS5zdGFydDsKKyAgICAgICAgICBzbGljZS5hcmdzID0gYXJnczsKKyAgICAgICAgICBzbGljZS5lbmRUaHJlYWQgPSBrdGhyZWFkLnRocmVhZDsKKyAgICAgICAgICBzbGljZS5zdWJTbGljZXMgPSBbCisgICAgICAgICAgICBuZXcgdHIubW9kZWwuU2xpY2UoY2F0ZWdvcnksIHNsaWNlLnRpdGxlLAorICAgICAgICAgICAgICAgIHNsaWNlLmNvbG9ySWQsIHNsaWNlLnN0YXJ0LCBzbGljZS5hcmdzLCBzbGljZS5kdXJhdGlvbikKKyAgICAgICAgICBdOworICAgICAgICAgIGt0aHJlYWQudGhyZWFkLmFzeW5jU2xpY2VHcm91cC5wdXNoKHNsaWNlKTsKKyAgICAgICAgICBkZWxldGUga3RocmVhZC5vcGVuQXN5bmNTbGljZXNba2V5XTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgbWVtcmVjbGFpbSBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUgaW4gdGhlIGltcG9ydGVyLgorICAgICAqLworICAgIGtzd2FwZFdha2U6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IGtzd2FwZFdha2VSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIG5pZCA9IHBhcnNlSW50KGV2ZW50WzFdKTsKKyAgICAgIHZhciBvcmRlciA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKAorICAgICAgICAgICdrc3dhcGQ6ICcgKyBldmVudEJhc2UudGhyZWFkTmFtZSwKKyAgICAgICAgICBwaWQsIHBpZCk7CisgICAgICBpZiAoa3RocmVhZC5vcGVuU2xpY2VUUykgeworICAgICAgICBpZiAob3JkZXIgPiBrdGhyZWFkLm9yZGVyKSB7CisgICAgICAgICAga3RocmVhZC5vcmRlciA9IG9yZGVyOworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICBrdGhyZWFkLm9wZW5TbGljZVRTID0gdHM7CisgICAgICAgIGt0aHJlYWQub3JkZXIgPSBvcmRlcjsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBrc3dhcGRTbGVlcDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKAorICAgICAgICAgICdrc3dhcGQ6ICcgKyBldmVudEJhc2UudGhyZWFkTmFtZSwKKyAgICAgICAgICBwaWQsIHBpZCk7CisgICAgICBpZiAoa3RocmVhZC5vcGVuU2xpY2VUUykgeworICAgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGV2ZW50QmFzZS50aHJlYWROYW1lLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZXZlbnRCYXNlLnRocmVhZE5hbWUpLAorICAgICAgICAgICAga3RocmVhZC5vcGVuU2xpY2VUUywKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBvcmRlcjoga3RocmVhZC5vcmRlcgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRzIC0ga3RocmVhZC5vcGVuU2xpY2VUUyk7CisKKyAgICAgICAga3RocmVhZC50aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOworICAgICAgfQorICAgICAga3RocmVhZC5vcGVuU2xpY2VUUyA9IHVuZGVmaW5lZDsKKyAgICAgIGt0aHJlYWQub3JkZXIgPSB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgcmVjbGFpbUJlZ2luOiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSByZWNsYWltQmVnaW5SRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIG9yZGVyID0gcGFyc2VJbnQoZXZlbnRbMV0pOworICAgICAgdmFyIGdmcCA9IGV2ZW50WzJdOworCisgICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoCisgICAgICAgICAgJ2RpcmVjdCByZWNsYWltOiAnICsgZXZlbnRCYXNlLnRocmVhZE5hbWUsCisgICAgICAgICAgcGlkLCBwaWQpOworICAgICAga3RocmVhZC5vcGVuU2xpY2VUUyA9IHRzOworICAgICAga3RocmVhZC5vcmRlciA9IG9yZGVyOworICAgICAga3RocmVhZC5nZnAgPSBnZnA7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgcmVjbGFpbUVuZDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gcmVjbGFpbUVuZFJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgbnJfcmVjbGFpbWVkID0gcGFyc2VJbnQoZXZlbnRbMV0pOworCisgICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoCisgICAgICAgICAgJ2RpcmVjdCByZWNsYWltOiAnICsgZXZlbnRCYXNlLnRocmVhZE5hbWUsCisgICAgICAgICAgcGlkLCBwaWQpOworICAgICAgaWYgKGt0aHJlYWQub3BlblNsaWNlVFMgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoCisgICAgICAgICAgICAnJywgJ2RpcmVjdCByZWNsYWltJywKKyAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGV2ZW50QmFzZS50aHJlYWROYW1lKSwKKyAgICAgICAgICAgIGt0aHJlYWQub3BlblNsaWNlVFMsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgb3JkZXI6IGt0aHJlYWQub3JkZXIsCisgICAgICAgICAgICAgICAgZ2ZwOiBrdGhyZWFkLmdmcCwKKyAgICAgICAgICAgICAgICBucl9yZWNsYWltZWQ6IG5yX3JlY2xhaW1lZAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRzIC0ga3RocmVhZC5vcGVuU2xpY2VUUyk7CisgICAgICAgIGt0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICAgIH0KKyAgICAgIGt0aHJlYWQub3BlblNsaWNlVFMgPSB1bmRlZmluZWQ7CisgICAgICBrdGhyZWFkLm9yZGVyID0gdW5kZWZpbmVkOworICAgICAga3RocmVhZC5nZnAgPSB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgfTsKKworICBQYXJzZXIucmVnaXN0ZXIoTWVtUmVjbGFpbVBhcnNlcik7CisKKyAgcmV0dXJuIHsKKyAgICBNZW1SZWNsYWltUGFyc2VyOiBNZW1SZWNsYWltUGFyc2VyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tZW1yZWNsYWltX3BhcnNlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL21lbXJlY2xhaW1fcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9tZW1yZWNsYWltX3BhcnNlcl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvbWVtcmVjbGFpbV9wYXJzZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3BhcnNlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTBlMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbApAQCAtMCwwICsxLDkwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBCYXNlIGNsYXNzIGZvciBsaW51eCBwZXJmIGV2ZW50IHBhcnNlcnMuCisgKgorICogVGhlIGxpbnV4IHBlcmYgdHJhY2UgZXZlbnQgaW1wb3J0ZXIgZGVwZW5kcyBvbiBzdWJjbGFzc2VzIG9mCisgKiBQYXJzZXIgdG8gcGFyc2UgZXZlbnQgZGF0YS4gIEVhY2ggc3ViY2xhc3MgY29ycmVzcG9uZHMKKyAqIHRvIGEgZ3JvdXAgb2YgdHJhY2UgZXZlbnRzOyBlLmcuIFNjaGVkUGFyc2VyIGltcGxlbWVudHMKKyAqIHBhcnNpbmcgb2Ygc2NoZWQ6KiBrZXJuZWwgdHJhY2UgZXZlbnRzLiAgUGFyc2VyIHN1YmNsYXNzZXMgbXVzdAorICogY2FsbCBQYXJzZXIucmVnaXN0ZXIgdG8gYXJyYW5nZSB0byBiZSBpbnN0YW50aWF0ZWQKKyAqIGFuZCB0aGVpciBjb25zdHJ1Y3RvciBtdXN0IHJlZ2lzdGVyIHRoZWlyIGV2ZW50IGhhbmRsZXJzIHdpdGggdGhlCisgKiBpbXBvcnRlci4gIEZvciBleGFtcGxlLAorICoKKyAqIHZhciBQYXJzZXIgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyOworICoKKyAqIGZ1bmN0aW9uIFdvcmtxdWV1ZVBhcnNlcihpbXBvcnRlcikgeworICogICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisgKgorICogICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignd29ya3F1ZXVlX2V4ZWN1dGVfc3RhcnQnLAorICogICAgICAgV29ya3F1ZXVlUGFyc2VyLnByb3RvdHlwZS5leGVjdXRlU3RhcnRFdmVudC5iaW5kKHRoaXMpKTsKKyAqICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3dvcmtxdWV1ZV9leGVjdXRlX2VuZCcsCisgKiAgICAgICBXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlLmV4ZWN1dGVFbmRFdmVudC5iaW5kKHRoaXMpKTsKKyAqIH0KKyAqCisgKiBQYXJzZXIucmVnaXN0ZXIoV29ya3F1ZXVlUGFyc2VyKTsKKyAqCisgKiBXaGVuIGEgcmVnaXN0ZXJlZCBldmVudCBuYW1lIGlzIGZvdW5kIGluIHRoZSBkYXRhIHN0cmVhbSB0aGUgYXNzb2NpYXRlZAorICogZXZlbnQgaGFuZGxlciBpcyBpbnZva2VkOgorICoKKyAqICAgZXhlY3V0ZVN0YXJ0RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCB0cywgZXZlbnRCYXNlKQorICoKKyAqIElmIHRoZSByb3V0aW5lIHJldHVybnMgZmFsc2UgdGhlIGNhbGxlciB3aWxsIGdlbmVyYXRlIGFuIGltcG9ydCBlcnJvcgorICogc2F5aW5nIHRoZXJlIHdhcyBhIHByb2JsZW0gcGFyc2luZyBpdC4gIEhhbmRsZXJzIGNhbiBhbHNvIGVtaXQgaW1wb3J0CisgKiBtZXNzYWdlcyB1c2luZyB0aGlzLmltcG9ydGVyLm1vZGVsLmltcG9ydFdhcm5pbmcuICBJZiB0aGlzIGlzIGRvbmUgaW4gbGlldSBvZgorICogdGhlIGdlbmVyaWMgaW1wb3J0IGVycm9yIGl0IG1heSBiZSBkZXNpcmFibGUgZm9yIHRoZSBoYW5kbGVyIHRvIHJldHVybgorICogdHJ1ZS4KKyAqCisgKiBUcmFjZSBldmVudHMgZ2VuZXJhdGVkIGJ5IHdyaXRpbmcgdG8gdGhlIHRyYWNlX21hcmtlciBmaWxlIGFyZSBleHBlY3RlZAorICogdG8gaGF2ZSBhIGxlYWRpbmcgdGV4dCBtYXJrZXIgZm9sbG93ZWQgYnkgYSAnOic7IGUuZy4gdGhlIHRyYWNlIGNsb2NrCisgKiBzeW5jaHJvbml6YXRpb24gZXZlbnQgaXM6CisgKgorICogIHRyYWNpbmdfbWFya193cml0ZTogdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogcGFyZW50X3RzPTAKKyAqCisgKiBUbyByZWdpc3RlciBhbiBldmVudCBoYW5kbGVyIGZvciB0aGVzZSBldmVudHMsIHByZXBlbmQgdGhlIG1hcmtlciB3aXRoCisgKiAndHJhY2luZ19tYXJrX3dyaXRlOic7IGUuZy4KKyAqCisgKiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd0cmFjaW5nX21hcmtfd3JpdGU6dHJhY2VfZXZlbnRfY2xvY2tfc3luYycsCisgKgorICogQWxsIHN1YmNsYXNzZXMgc2hvdWxkIGRlcGVuZCBvbiBpbXBvcnRlci5saW51eF9wZXJmLnBhcnNlciwgZS5nLgorICoKKyAqIHRyLmRlZmluZU1vZHVsZSgnaW1wb3J0ZXIubGludXhfcGVyZi53b3JrcXVldWVfcGFyc2VyJykKKyAqICAgLmRlcGVuZHNPbignaW1wb3J0ZXIubGludXhfcGVyZi5wYXJzZXInKQorICogICAuZXhwb3J0c1RvKCd0cmFjaW5nJywgZnVuY3Rpb24oKQorICoKKyAqIGFuZCBiZSBsaXN0ZWQgaW4gdGhlIGRlcGVuZHNPbiBvZiBMaW51eFBlcmZJbXBvcnRlci4gIEJld2FyZSB0aGF0IGFmdGVyCisgKiBhZGRpbmcgYSBuZXcgc3ViY2xhc3MgeW91IG11c3QgcnVuIGJ1aWxkL2dlbmVyYXRlX2Fib3V0X3RyYWNpbmdfY29udGVudHMucHkKKyAqIHRvIHJlZ2VuZXJhdGUgdHIudWkuZS5hYm91dF90cmFjaW5nLiouCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIFBhcnNlcyBsaW51eCBwZXJmIGV2ZW50cy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICB0aGlzLmltcG9ydGVyID0gaW1wb3J0ZXI7CisgICAgdGhpcy5tb2RlbCA9IGltcG9ydGVyLm1vZGVsOworICB9CisKKyAgUGFyc2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IE9iamVjdC5wcm90b3R5cGUKKyAgfTsKKworICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpOworICBvcHRpb25zLm1hbmRhdG9yeUJhc2VDbGFzcyA9IFBhcnNlcjsKKyAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KFBhcnNlciwgb3B0aW9ucyk7CisKKyAgcmV0dXJuIHsKKyAgICBQYXJzZXI6IFBhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcG93ZXJfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3Bvd2VyX3BhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5ZjU5MWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3Bvd2VyX3BhcnNlci5odG1sCkBAIC0wLDAgKzEsMTQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wYXJzZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIHBvd2VyIGV2ZW50cyBpbiB0aGUgTGludXggZXZlbnQgdHJhY2UgZm9ybWF0LgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci5saW51eF9wZXJmJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFBhcnNlciA9IHRyLmUuaW1wb3J0ZXIubGludXhfcGVyZi5QYXJzZXI7CisKKyAgLyoqCisgICAqIFBhcnNlcyBsaW51eCBwb3dlciB0cmFjZSBldmVudHMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gUG93ZXJQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisKKyAgICAvLyBOQjogb2xkLXN0eWxlIHBvd2VyIGV2ZW50cywgZGVwcmVjYXRlZAorICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdwb3dlcl9zdGFydCcsCisgICAgICAgIFBvd2VyUGFyc2VyLnByb3RvdHlwZS5wb3dlclN0YXJ0RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3Bvd2VyX2ZyZXF1ZW5jeScsCisgICAgICAgIFBvd2VyUGFyc2VyLnByb3RvdHlwZS5wb3dlckZyZXF1ZW5jeUV2ZW50LmJpbmQodGhpcykpOworCisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdV9mcmVxdWVuY3knLAorICAgICAgICBQb3dlclBhcnNlci5wcm90b3R5cGUuY3B1RnJlcXVlbmN5RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ2NwdV9pZGxlJywKKyAgICAgICAgUG93ZXJQYXJzZXIucHJvdG90eXBlLmNwdUlkbGVFdmVudC5iaW5kKHRoaXMpKTsKKyAgfQorCisgIFBvd2VyUGFyc2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCisKKyAgICBjcHVTdGF0ZVNsaWNlOiBmdW5jdGlvbih0cywgdGFyZ2V0Q3B1TnVtYmVyLCBldmVudFR5cGUsIGNwdVN0YXRlKSB7CisgICAgICB2YXIgdGFyZ2V0Q3B1ID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUNwdSh0YXJnZXRDcHVOdW1iZXIpOworICAgICAgdmFyIHBvd2VyQ291bnRlcjsKKyAgICAgIGlmIChldmVudFR5cGUgIT0gJzEnKSB7CisgICAgICAgIHRoaXMuaW1wb3J0ZXIubW9kZWwuaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ3BhcnNlX2Vycm9yJywKKyAgICAgICAgICBtZXNzYWdlOiAnRG9uXCd0IHVuZGVyc3RhbmQgcG93ZXJfc3RhcnQgZXZlbnRzIG9mICcgKworICAgICAgICAgICAgICAndHlwZSAnICsgZXZlbnRUeXBlCisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICBwb3dlckNvdW50ZXIgPSB0YXJnZXRDcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCAnQy1TdGF0ZScpOworICAgICAgaWYgKHBvd2VyQ291bnRlci5udW1TZXJpZXMgPT09IDApIHsKKyAgICAgICAgcG93ZXJDb3VudGVyLmFkZFNlcmllcyhuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnc3RhdGUnLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCisgICAgICAgICAgICAgICAgcG93ZXJDb3VudGVyLm5hbWUgKyAnLicgKyAnc3RhdGUnKSkpOworICAgICAgfQorICAgICAgcG93ZXJDb3VudGVyLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgeworICAgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cywgY3B1U3RhdGUpOworICAgICAgfSk7CisgICAgfSwKKworICAgIGNwdUlkbGVTbGljZTogZnVuY3Rpb24odHMsIHRhcmdldENwdU51bWJlciwgY3B1U3RhdGUpIHsKKyAgICAgIHZhciB0YXJnZXRDcHUgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KHRhcmdldENwdU51bWJlcik7CisgICAgICB2YXIgcG93ZXJDb3VudGVyID0gdGFyZ2V0Q3B1LmdldE9yQ3JlYXRlQ291bnRlcignJywgJ0MtU3RhdGUnKTsKKyAgICAgIGlmIChwb3dlckNvdW50ZXIubnVtU2VyaWVzID09PSAwKSB7CisgICAgICAgIHBvd2VyQ291bnRlci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3N0YXRlJywKKyAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHBvd2VyQ291bnRlci5uYW1lKSkpOworICAgICAgfQorICAgICAgLy8gTkI6IDQyOTQ5NjcyOTUvLTEgbWVhbnMgYW4gZXhpdCBmcm9tIHRoZSBjdXJyZW50IHN0YXRlCisgICAgICB2YXIgdmFsID0gKGNwdVN0YXRlICE9IDQyOTQ5NjcyOTUgPyBjcHVTdGF0ZSArIDEgOiAwKTsKKyAgICAgIHBvd2VyQ291bnRlci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUodHMsIHZhbCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgY3B1RnJlcXVlbmN5U2xpY2U6IGZ1bmN0aW9uKHRzLCB0YXJnZXRDcHVOdW1iZXIsIHBvd2VyU3RhdGUpIHsKKyAgICAgIHZhciB0YXJnZXRDcHUgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlQ3B1KHRhcmdldENwdU51bWJlcik7CisgICAgICB2YXIgcG93ZXJDb3VudGVyID0KKyAgICAgICAgICB0YXJnZXRDcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCAnQ2xvY2sgRnJlcXVlbmN5Jyk7CisgICAgICBpZiAocG93ZXJDb3VudGVyLm51bVNlcmllcyA9PT0gMCkgeworICAgICAgICBwb3dlckNvdW50ZXIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdzdGF0ZScsCisgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKKyAgICAgICAgICAgICAgICBwb3dlckNvdW50ZXIubmFtZSArICcuJyArICdzdGF0ZScpKSk7CisgICAgICB9CisgICAgICBwb3dlckNvdW50ZXIuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7CisgICAgICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKHRzLCBwb3dlclN0YXRlKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgcG93ZXIgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KKyAgICAgKi8KKyAgICBwb3dlclN0YXJ0RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IC90eXBlPShcZCspIHN0YXRlPShcZCkgY3B1X2lkPShcZCkrLy5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIHRhcmdldENwdU51bWJlciA9IHBhcnNlSW50KGV2ZW50WzNdKTsKKyAgICAgIHZhciBjcHVTdGF0ZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHRoaXMuY3B1U3RhdGVTbGljZSh0cywgdGFyZ2V0Q3B1TnVtYmVyLCBldmVudFsxXSwgY3B1U3RhdGUpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHBvd2VyRnJlcXVlbmN5RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IC90eXBlPShcZCspIHN0YXRlPShcZCspIGNwdV9pZD0oXGQpKy8KKyAgICAgICAgICAuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciB0YXJnZXRDcHVOdW1iZXIgPSBwYXJzZUludChldmVudFszXSk7CisgICAgICB2YXIgcG93ZXJTdGF0ZSA9IHBhcnNlSW50KGV2ZW50WzJdKTsKKyAgICAgIHRoaXMuY3B1RnJlcXVlbmN5U2xpY2UodHMsIHRhcmdldENwdU51bWJlciwgcG93ZXJTdGF0ZSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgY3B1RnJlcXVlbmN5RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IC9zdGF0ZT0oXGQrKSBjcHVfaWQ9KFxkKSsvLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgdGFyZ2V0Q3B1TnVtYmVyID0gcGFyc2VJbnQoZXZlbnRbMl0pOworICAgICAgdmFyIHBvd2VyU3RhdGUgPSBwYXJzZUludChldmVudFsxXSk7CisgICAgICB0aGlzLmNwdUZyZXF1ZW5jeVNsaWNlKHRzLCB0YXJnZXRDcHVOdW1iZXIsIHBvd2VyU3RhdGUpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGNwdUlkbGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gL3N0YXRlPShcZCspIGNwdV9pZD0oXGQpKy8uZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciB0YXJnZXRDcHVOdW1iZXIgPSBwYXJzZUludChldmVudFsyXSk7CisgICAgICB2YXIgY3B1U3RhdGUgPSBwYXJzZUludChldmVudFsxXSk7CisgICAgICB0aGlzLmNwdUlkbGVTbGljZSh0cywgdGFyZ2V0Q3B1TnVtYmVyLCBjcHVTdGF0ZSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKFBvd2VyUGFyc2VyKTsKKworICByZXR1cm4geworICAgIFBvd2VyUGFyc2VyOiBQb3dlclBhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcG93ZXJfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcG93ZXJfcGFyc2VyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmE3ZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9wb3dlcl9wYXJzZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsODcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgdGVzdCgncG93ZXJGcmVxdWVuY3lJbXBvcnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnIGt3b3JrZXIvMDozLTY4ODAgIFswMDBdICAyNzg0Ljc4MzAxNTogcG93ZXJfZnJlcXVlbmN5OiAnICsKKyAgICAgICAgICAgICAgICAgJ3R5cGU9MiBzdGF0ZT0xMDAwMDAwIGNwdV9pZD0wJywKKyAgICAgICcga3dvcmtlci8xOjItNzI2OSAgWzAwMV0gIDI3ODQuNzg4OTkzOiBwb3dlcl9mcmVxdWVuY3k6ICcgKworICAgICAgICAgICAgICAgICAndHlwZT0yIHN0YXRlPTgwMDAwMCBjcHVfaWQ9MScsCisgICAgICAnIGt3b3JrZXIvMToyLTcyNjkgIFswMDFdICAyNzg0Ljk5MzEyMDogcG93ZXJfZnJlcXVlbmN5OiAnICsKKyAgICAgICAgICAgICAgICAgJ3R5cGU9MiBzdGF0ZT0xMzAwMDAwIGNwdV9pZD0xJworICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworCisgICAgdmFyIGMwID0gbS5rZXJuZWwuY3B1c1swXTsKKyAgICBhc3NlcnQuZXF1YWwoYzAuc2xpY2VzLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKGMwLmNvdW50ZXJzWycuQ2xvY2sgRnJlcXVlbmN5J10uc2VyaWVzWzBdLnNhbXBsZXMubGVuZ3RoLCAxKTsKKworICAgIHZhciBjMSA9IG0ua2VybmVsLmNwdXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKGMxLnNsaWNlcy5sZW5ndGgsIDApOworICAgIGFzc2VydC5lcXVhbChjMS5jb3VudGVyc1snLkNsb2NrIEZyZXF1ZW5jeSddLnNlcmllc1swXS5zYW1wbGVzLmxlbmd0aCwgMik7CisgIH0pOworCisgIHRlc3QoJ2NwdUZyZXF1ZW5jeUltcG9ydCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICcgICAgIGt3b3JrZXIvMTowLTk2NjUgIFswMDFdIDE1MDUxLjAwNzMwMTogY3B1X2ZyZXF1ZW5jeTogJyArCisgICAgICAgICAgICAgICAgICAgICAnc3RhdGU9ODAwMDAwIGNwdV9pZD0xJywKKyAgICAgICcgICAgIGt3b3JrZXIvMTowLTk2NjUgIFswMDFdIDE1MDUxLjAxMDI3ODogY3B1X2ZyZXF1ZW5jeTogJyArCisgICAgICAgICAgICAgICAgICAgICAnc3RhdGU9MTMwMDAwMCBjcHVfaWQ9MScsCisgICAgICAnICAgICBrd29ya2VyLzA6Mi03OTcyICBbMDAwXSAxNTA1MS4wMTAyNzg6IGNwdV9mcmVxdWVuY3k6ICcgKworICAgICAgICAgICAgICAgICAgICAgJ3N0YXRlPTEwMDAwMDAgY3B1X2lkPTAnLAorICAgICAgJyAgICAga3dvcmtlci8wOjItNzk3MiAgWzAwMF0gMTUwNTEuMDIwMzA0OiBjcHVfZnJlcXVlbmN5OiAnICsKKyAgICAgICAgICAgICAgICAgICAgICdzdGF0ZT04MDAwMDAgY3B1X2lkPTAnCisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisKKyAgICB2YXIgYzAgPSBtLmtlcm5lbC5jcHVzWzBdOworICAgIGFzc2VydC5lcXVhbChjMC5zbGljZXMubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYzAuY291bnRlcnNbJy5DbG9jayBGcmVxdWVuY3knXS5zZXJpZXNbMF0uc2FtcGxlcy5sZW5ndGgsIDIpOworCisgICAgdmFyIGMxID0gbS5rZXJuZWwuY3B1c1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoYzEuc2xpY2VzLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKGMxLmNvdW50ZXJzWycuQ2xvY2sgRnJlcXVlbmN5J10uc2VyaWVzWzBdLnNhbXBsZXMubGVuZ3RoLCAyKTsKKyAgfSk7CisKKyAgdGVzdCgnY3B1SWRsZUltcG9ydCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDBdIDE1MDUwLjk5Mjg4MzogY3B1X2lkbGU6ICcgKworICAgICAgICAgICdzdGF0ZT0xIGNwdV9pZD0wJywKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDBdIDE1MDUwLjk5MzAyNzogY3B1X2lkbGU6ICcgKworICAgICAgICAgICdzdGF0ZT00Mjk0OTY3Mjk1IGNwdV9pZD0wJywKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdIDE1MDUwLjk5MzEzMjogY3B1X2lkbGU6ICcgKworICAgICAgICAgICdzdGF0ZT0xIGNwdV9pZD0xJywKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdIDE1MDUwLjk5MzI3NjogY3B1X2lkbGU6ICcgKworICAgICAgICAgICdzdGF0ZT00Mjk0OTY3Mjk1IGNwdV9pZD0xJywKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdIDE1MDUwLjk5MzI3OTogY3B1X2lkbGU6ICcgKworICAgICAgICAgICdzdGF0ZT0zIGNwdV9pZD0xJywKKyAgICAgICcgICAgICAgICAgPGlkbGU+LTAgICAgIFswMDFdIDE1MDUwLjk5MzQ1NzogY3B1X2lkbGU6ICcgKworICAgICAgICAgICdzdGF0ZT00Mjk0OTY3Mjk1IGNwdV9pZD0xJworICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworCisgICAgdmFyIGMwID0gbS5rZXJuZWwuY3B1c1swXTsKKyAgICBhc3NlcnQuZXF1YWwoYzAuc2xpY2VzLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKGMwLmNvdW50ZXJzWycuQy1TdGF0ZSddLnNlcmllc1swXS5zYW1wbGVzLmxlbmd0aCwgMik7CisKKyAgICB2YXIgYzEgPSBtLmtlcm5lbC5jcHVzWzFdOworICAgIGFzc2VydC5lcXVhbChjMS5zbGljZXMubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYzEuY291bnRlcnNbJy5DLVN0YXRlJ10uc2VyaWVzWzBdLnNhbXBsZXMubGVuZ3RoLCA0KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3JlZ3VsYXRvcl9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcmVndWxhdG9yX3BhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZDU5ZTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3JlZ3VsYXRvcl9wYXJzZXIuaHRtbApAQCAtMCwwICsxLDE0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIHJlZ3VsYXRvciBldmVudHMgaW4gdGhlIExpbnV4IGV2ZW50IHRyYWNlIGZvcm1hdC4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsIGZ1bmN0aW9uKCkgeworCisgIHZhciBQYXJzZXIgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyOworCisgIC8qKgorICAgKiBQYXJzZXMgbGludXggcmVndWxhdG9yIHRyYWNlIGV2ZW50cy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBSZWd1bGF0b3JQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncmVndWxhdG9yX2VuYWJsZScsCisgICAgICAgIFJlZ3VsYXRvclBhcnNlci5wcm90b3R5cGUucmVndWxhdG9yRW5hYmxlRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9lbmFibGVfZGVsYXknLAorICAgICAgICBSZWd1bGF0b3JQYXJzZXIucHJvdG90eXBlLnJlZ3VsYXRvckVuYWJsZURlbGF5RXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9lbmFibGVfY29tcGxldGUnLAorICAgICAgICBSZWd1bGF0b3JQYXJzZXIucHJvdG90eXBlLnJlZ3VsYXRvckVuYWJsZUNvbXBsZXRlRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9kaXNhYmxlJywKKyAgICAgICAgUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JEaXNhYmxlRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9kaXNhYmxlX2NvbXBsZXRlJywKKyAgICAgICAgUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JEaXNhYmxlQ29tcGxldGVFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigncmVndWxhdG9yX3NldF92b2x0YWdlJywKKyAgICAgICAgUmVndWxhdG9yUGFyc2VyLnByb3RvdHlwZS5yZWd1bGF0b3JTZXRWb2x0YWdlRXZlbnQuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3JlZ3VsYXRvcl9zZXRfdm9sdGFnZV9jb21wbGV0ZScsCisgICAgICAgIFJlZ3VsYXRvclBhcnNlci5wcm90b3R5cGUucmVndWxhdG9yU2V0Vm9sdGFnZUNvbXBsZXRlRXZlbnQuYmluZCh0aGlzKSk7CisKKyAgICB0aGlzLm1vZGVsXyA9IGltcG9ydGVyLm1vZGVsXzsKKyAgfQorCisgIC8vIE1hdGNoZXMgdGhlIHJlZ3VsYXRvcl9lbmFibGUgcmVjb3JkCisgIHZhciByZWd1bGF0b3JFbmFibGVSRSA9IC9uYW1lPSguKykvOworCisgIC8vIE1hdGNoZXMgdGhlIHJlZ3VsYXRvcl9kaXNhYmxlIHJlY29yZAorICB2YXIgcmVndWxhdG9yRGlzYWJsZVJFID0gL25hbWU9KC4rKS87CisKKyAgLy8gTWF0Y2hlcyB0aGUgcmVndWxhdG9yX3NldF92b2x0YWdlX2NvbXBsZXRlIHJlY29yZAorICB2YXIgcmVndWxhdG9yU2V0Vm9sdGFnZUNvbXBsZXRlUkUgPSAvbmFtZT0oXFMrKSwgdmFsPShcZCspLzsKKworICBSZWd1bGF0b3JQYXJzZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogUGFyc2VyLnByb3RvdHlwZSwKKworICAgIC8qKgorICAgICAqIEdldCBvciBjcmVhdGUgYSBjb3VudGVyIHdpdGggb25lIHNlcmllcy4KKyAgICAgKi8KKyAgICBnZXRDdHJfOiBmdW5jdGlvbihjdHJOYW1lLCB2YWx1ZU5hbWUpIHsKKyAgICAgIHZhciBjdHIgPSB0aGlzLm1vZGVsXy5rZXJuZWwKKyAgICAgICAgLmdldE9yQ3JlYXRlQ291bnRlcihudWxsLCAndnJlZyAnICsgY3RyTmFtZSArICcgJyArIHZhbHVlTmFtZSk7CisgICAgICAvLyBJbml0aWFsaXplIHRoZSBjb3VudGVyJ3Mgc2VyaWVzIGZpZWxkcyBpZiBuZWVkZWQuCisgICAgICBpZiAoY3RyLnNlcmllc1swXSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGN0ci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXModmFsdWVOYW1lLAorICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKKyAgICAgICAgY3RyTmFtZSArICcuJyArIHZhbHVlTmFtZSkpKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBjdHI7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFBhcnNlcyByZWd1bGF0b3IgZXZlbnRzIGFuZCBzZXRzIHVwIHN0YXRlIGluIHRoZSBpbXBvcnRlci4KKyAgICAgKi8KKyAgICByZWd1bGF0b3JFbmFibGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW0sIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gcmVndWxhdG9yRW5hYmxlUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBuYW1lID0gZXZlbnRbMV07CisKKyAgICAgIHZhciBjdHIgPSB0aGlzLmdldEN0cl8obmFtZSwgJ2VuYWJsZWQnKTsKKyAgICAgIGN0ci5zZXJpZXNbMF0uYWRkQ291bnRlclNhbXBsZSh0cywgMSk7CisKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICByZWd1bGF0b3JFbmFibGVEZWxheUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bSwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgcmVndWxhdG9yRW5hYmxlQ29tcGxldGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW0sIHBpZCwgdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRCYXNlKSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgcmVndWxhdG9yRGlzYWJsZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bSwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSByZWd1bGF0b3JEaXNhYmxlUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBuYW1lID0gZXZlbnRbMV07CisKKyAgICAgIHZhciBjdHIgPSB0aGlzLmdldEN0cl8obmFtZSwgJ2VuYWJsZWQnKTsKKyAgICAgIGN0ci5zZXJpZXNbMF0uYWRkQ291bnRlclNhbXBsZSh0cywgMCk7CisKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICByZWd1bGF0b3JEaXNhYmxlQ29tcGxldGVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW0sIHBpZCwgdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QmFzZSkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHJlZ3VsYXRvclNldFZvbHRhZ2VFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW0sIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHJlZ3VsYXRvclNldFZvbHRhZ2VDb21wbGV0ZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bSwgcGlkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRCYXNlKSB7CisgICAgICB2YXIgZXZlbnQgPSByZWd1bGF0b3JTZXRWb2x0YWdlQ29tcGxldGVSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIG5hbWUgPSBldmVudFsxXTsKKyAgICAgIHZhciB2b2x0YWdlID0gcGFyc2VJbnQoZXZlbnRbMl0pOworCisgICAgICB2YXIgY3RyID0gdGhpcy5nZXRDdHJfKG5hbWUsICd2b2x0YWdlJyk7CisgICAgICBjdHIuc2VyaWVzWzBdLmFkZENvdW50ZXJTYW1wbGUodHMsIHZvbHRhZ2UpOworCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgfTsKKworICBQYXJzZXIucmVnaXN0ZXIoUmVndWxhdG9yUGFyc2VyKTsKKworICByZXR1cm4geworICAgIFJlZ3VsYXRvclBhcnNlcjogUmVndWxhdG9yUGFyc2VyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9yZWd1bGF0b3JfcGFyc2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcmVndWxhdG9yX3BhcnNlcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcmVndWxhdG9yX3BhcnNlcl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcmVndWxhdG9yX3BhcnNlcl90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvc2NoZWRfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3NjaGVkX3BhcnNlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3NjaGVkX3BhcnNlci5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3NjaGVkX3BhcnNlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3NjaGVkX3BhcnNlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3NjaGVkX3BhcnNlcl90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvc2NoZWRfcGFyc2VyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9zY2hlZF9wYXJzZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3N5bmNfcGFyc2VyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3N5bmNfcGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUyZmZhNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvc3luY19wYXJzZXIuaHRtbApAQCAtMCwwICsxLDEzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIHN5bmMgZXZlbnRzIGluIHRoZSBMaW51eCBldmVudCB0cmFjZSBmb3JtYXQuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYnLCBmdW5jdGlvbigpIHsKKworICB2YXIgUGFyc2VyID0gdHIuZS5pbXBvcnRlci5saW51eF9wZXJmLlBhcnNlcjsKKworICAvKioKKyAgICogUGFyc2VzIGxpbnV4IHN5bmMgdHJhY2UgZXZlbnRzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIFN5bmNQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigKKyAgICAgICAgJ3N5bmNfdGltZWxpbmUnLAorICAgICAgICBTeW5jUGFyc2VyLnByb3RvdHlwZS50aW1lbGluZUV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKAorICAgICAgICAnc3luY193YWl0JywKKyAgICAgICAgU3luY1BhcnNlci5wcm90b3R5cGUuc3luY1dhaXRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcigKKyAgICAgICAgJ3N5bmNfcHQnLAorICAgICAgICBTeW5jUGFyc2VyLnByb3RvdHlwZS5zeW5jUHRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLm1vZGVsXyA9IGltcG9ydGVyLm1vZGVsXzsKKyAgfQorCisgIHZhciBzeW5jVGltZWxpbmVSRSA9IC9uYW1lPShcUyspIHZhbHVlPShcUyopLzsKKyAgdmFyIHN5bmNXYWl0UkUgPSAvKFxTKykgbmFtZT0oXFMrKSBzdGF0ZT0oXGQrKS87CisgIHZhciBzeW5jUHRSRSA9IC9uYW1lPShcUyspIHZhbHVlPShcUyopLzsKKworICBTeW5jUGFyc2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgc3luYyBldmVudHMgYW5kIHNldHMgdXAgc3RhdGUgaW4gdGhlIGltcG9ydGVyLgorICAgICAqLworICAgIHRpbWVsaW5lRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gc3luY1RpbWVsaW5lUkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciB0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlUHNldWRvVGhyZWFkKGV2ZW50WzFdKTsKKworICAgICAgaWYgKHRocmVhZC5sYXN0QWN0aXZlVHMgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB2YXIgZHVyYXRpb24gPSB0cyAtIHRocmVhZC5sYXN0QWN0aXZlVHM7CisgICAgICAgIHZhciB2YWx1ZSA9IHRocmVhZC5sYXN0QWN0aXZlVmFsdWU7CisgICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCisgICAgICAgICAgdmFsdWUgPSAnICc7CisgICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgKKyAgICAgICAgICAgICcnLCB2YWx1ZSwKKyAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHZhbHVlKSwKKyAgICAgICAgICAgIHRocmVhZC5sYXN0QWN0aXZlVHMsIHt9LAorICAgICAgICAgICAgZHVyYXRpb24pOworICAgICAgICB0aHJlYWQudGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICAgIH0KKyAgICAgIHRocmVhZC5sYXN0QWN0aXZlVHMgPSB0czsKKyAgICAgIHRocmVhZC5sYXN0QWN0aXZlVmFsdWUgPSBldmVudFsyXTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBzeW5jV2FpdEV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IHN5bmNXYWl0UkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIGlmIChldmVudEJhc2UudGdpZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKworICAgICAgdmFyIHRnaWQgPSBwYXJzZUludChldmVudEJhc2UudGdpZCk7CisgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHRnaWQpCisgICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZChwaWQpOworICAgICAgdGhyZWFkLm5hbWUgPSBldmVudEJhc2UudGhyZWFkTmFtZTsKKyAgICAgIHZhciBzbGljZXMgPSB0aHJlYWQua2VybmVsU2xpY2VHcm91cDsKKyAgICAgIGlmICghc2xpY2VzLmlzVGltZXN0YW1wVmFsaWRGb3JCZWdpbk9yRW5kKHRzKSkgeworICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICB0eXBlOiAncGFyc2VfZXJyb3InLAorICAgICAgICAgIG1lc3NhZ2U6ICdUaW1lc3RhbXBzIGFyZSBtb3ZpbmcgYmFja3dhcmQuJworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorCisgICAgICB2YXIgbmFtZSA9ICdmZW5jZV93YWl0KCInICsgZXZlbnRbMl0gKyAnIiknOworICAgICAgaWYgKGV2ZW50WzFdID09ICdiZWdpbicpIHsKKyAgICAgICAgdmFyIHNsaWNlID0gc2xpY2VzLmJlZ2luU2xpY2UobnVsbCwgbmFtZSwgdHMsIHsKKyAgICAgICAgICAnU3RhcnQgc3RhdGUnOiBldmVudFszXQorICAgICAgICB9KTsKKyAgICAgIH0gZWxzZSBpZiAoZXZlbnRbMV0gPT0gJ2VuZCcpIHsKKyAgICAgICAgaWYgKHNsaWNlcy5vcGVuU2xpY2VDb3VudCA+IDApIHsKKyAgICAgICAgICBzbGljZXMuZW5kU2xpY2UodHMpOworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBzeW5jUHRFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lLCBjcHVOdW1iZXIsIHBpZCwgdHMsIGV2ZW50QmFzZSkgeworICAgICAgdmFyIGV2ZW50ID0gc3luY1B0UkUuZXhlYyhldmVudEJhc2UuZGV0YWlscyk7CisgICAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHJldHVybiB0cnVlOworCisgICAgICB2YXIgdGhyZWFkID0gdGhpcy5pbXBvcnRlci5nZXRPckNyZWF0ZUtlcm5lbFRocmVhZCgKKyAgICAgICAgICBldmVudEJhc2VbMV0pLnRocmVhZDsKKyAgICAgIHRocmVhZC5zeW5jV2FpdFN5bmNQdHNbZXZlbnRbMV1dID0gZXZlbnRbMl07CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgUGFyc2VyLnJlZ2lzdGVyKFN5bmNQYXJzZXIpOworCisgIHJldHVybiB7CisgICAgU3luY1BhcnNlcjogU3luY1BhcnNlcgorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9zeW5jX3BhcnNlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3N5bmNfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9zeW5jX3BhcnNlcl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvc3luY19wYXJzZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3dvcmtxdWV1ZV9wYXJzZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvd29ya3F1ZXVlX3BhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzNGEyODMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3dvcmtxdWV1ZV9wYXJzZXIuaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvcGFyc2VyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUGFyc2VzIHdvcmtxdWV1ZSBldmVudHMgaW4gdGhlIExpbnV4IGV2ZW50IHRyYWNlIGZvcm1hdC4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUuaW1wb3J0ZXIubGludXhfcGVyZicsIGZ1bmN0aW9uKCkgeworCisgIHZhciBQYXJzZXIgPSB0ci5lLmltcG9ydGVyLmxpbnV4X3BlcmYuUGFyc2VyOworCisgIC8qKgorICAgKiBQYXJzZXMgbGludXggd29ya3F1ZXVlIHRyYWNlIGV2ZW50cy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBXb3JrcXVldWVQYXJzZXIoaW1wb3J0ZXIpIHsKKyAgICBQYXJzZXIuY2FsbCh0aGlzLCBpbXBvcnRlcik7CisKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignd29ya3F1ZXVlX2V4ZWN1dGVfc3RhcnQnLAorICAgICAgICBXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlLmV4ZWN1dGVTdGFydEV2ZW50LmJpbmQodGhpcykpOworICAgIGltcG9ydGVyLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCd3b3JrcXVldWVfZXhlY3V0ZV9lbmQnLAorICAgICAgICBXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlLmV4ZWN1dGVFbmRFdmVudC5iaW5kKHRoaXMpKTsKKyAgICBpbXBvcnRlci5yZWdpc3RlckV2ZW50SGFuZGxlcignd29ya3F1ZXVlX3F1ZXVlX3dvcmsnLAorICAgICAgICBXb3JrcXVldWVQYXJzZXIucHJvdG90eXBlLmV4ZWN1dGVRdWV1ZVdvcmsuYmluZCh0aGlzKSk7CisgICAgaW1wb3J0ZXIucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ3dvcmtxdWV1ZV9hY3RpdmF0ZV93b3JrJywKKyAgICAgICAgV29ya3F1ZXVlUGFyc2VyLnByb3RvdHlwZS5leGVjdXRlQWN0aXZhdGVXb3JrLmJpbmQodGhpcykpOworICB9CisKKyAgLy8gTWF0Y2hlcyB0aGUgd29ya3F1ZXVlX2V4ZWN1dGVfc3RhcnQgcmVjb3JkCisgIC8vICB3b3JrcXVldWVfZXhlY3V0ZV9zdGFydDogd29yayBzdHJ1Y3QgYzdhOGE4OWM6IGZ1bmN0aW9uIE1JU1JXcmFwcGVyCisgIHZhciB3b3JrcXVldWVFeGVjdXRlU3RhcnRSRSA9IC93b3JrIHN0cnVjdCAoLispOiBmdW5jdGlvbiAoXFMrKS87CisKKyAgLy8gTWF0Y2hlcyB0aGUgd29ya3F1ZXVlX2V4ZWN1dGVfc3RhcnQgcmVjb3JkCisgIC8vICB3b3JrcXVldWVfZXhlY3V0ZV9lbmQ6IHdvcmsgc3RydWN0IGM3YThhODljCisgIHZhciB3b3JrcXVldWVFeGVjdXRlRW5kUkUgPSAvd29yayBzdHJ1Y3QgKC4rKS87CisKKyAgV29ya3F1ZXVlUGFyc2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFBhcnNlci5wcm90b3R5cGUsCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgd29ya3F1ZXVlIGV2ZW50cyBhbmQgc2V0cyB1cCBzdGF0ZSBpbiB0aGUgaW1wb3J0ZXIuCisgICAgICovCisgICAgZXhlY3V0ZVN0YXJ0RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IHdvcmtxdWV1ZUV4ZWN1dGVTdGFydFJFLmV4ZWMoZXZlbnRCYXNlLmRldGFpbHMpOworICAgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIga3RocmVhZCA9IHRoaXMuaW1wb3J0ZXIuZ2V0T3JDcmVhdGVLZXJuZWxUaHJlYWQoZXZlbnRCYXNlLnRocmVhZE5hbWUsCisgICAgICAgICAgcGlkLCBwaWQpOworICAgICAga3RocmVhZC5vcGVuU2xpY2VUUyA9IHRzOworICAgICAga3RocmVhZC5vcGVuU2xpY2UgPSBldmVudFsyXTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBleGVjdXRlRW5kRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIHZhciBldmVudCA9IHdvcmtxdWV1ZUV4ZWN1dGVFbmRSRS5leGVjKGV2ZW50QmFzZS5kZXRhaWxzKTsKKyAgICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIGt0aHJlYWQgPSB0aGlzLmltcG9ydGVyLmdldE9yQ3JlYXRlS2VybmVsVGhyZWFkKGV2ZW50QmFzZS50aHJlYWROYW1lLAorICAgICAgICAgIHBpZCwgcGlkKTsKKyAgICAgIGlmIChrdGhyZWFkLm9wZW5TbGljZSkgeworICAgICAgICB2YXIgc2xpY2UgPSBuZXcgdHIubW9kZWwuU2xpY2UoJycsIGt0aHJlYWQub3BlblNsaWNlLAorICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoa3RocmVhZC5vcGVuU2xpY2UpLAorICAgICAgICAgICAga3RocmVhZC5vcGVuU2xpY2VUUywKKyAgICAgICAgICAgIHt9LAorICAgICAgICAgICAgdHMgLSBrdGhyZWFkLm9wZW5TbGljZVRTKTsKKworICAgICAgICBrdGhyZWFkLnRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShzbGljZSk7CisgICAgICB9CisgICAgICBrdGhyZWFkLm9wZW5TbGljZSA9IHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBleGVjdXRlUXVldWVXb3JrOiBmdW5jdGlvbihldmVudE5hbWUsIGNwdU51bWJlciwgcGlkLCB0cywgZXZlbnRCYXNlKSB7CisgICAgICAvLyBUT0RPOiBEbyBzb21ldGhpbmcgd2l0aCB0aGlzIGV2ZW50PworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGV4ZWN1dGVBY3RpdmF0ZVdvcms6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY3B1TnVtYmVyLCBwaWQsIHRzLCBldmVudEJhc2UpIHsKKyAgICAgIC8vIFRPRE86IERvIHNvbWV0aGluZyB3aXRoIHRoaXMgZXZlbnQ/CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgfTsKKworICBQYXJzZXIucmVnaXN0ZXIoV29ya3F1ZXVlUGFyc2VyKTsKKworICByZXR1cm4geworICAgIFdvcmtxdWV1ZVBhcnNlcjogV29ya3F1ZXVlUGFyc2VyCisgIH07Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL3dvcmtxdWV1ZV9wYXJzZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi93b3JrcXVldWVfcGFyc2VyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi93b3JrcXVldWVfcGFyc2VyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi93b3JrcXVldWVfcGFyc2VyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvdHJhY2UyaHRtbF9pbXBvcnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdHJhY2UyaHRtbF9pbXBvcnRlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci90cmFjZTJodG1sX2ltcG9ydGVyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3RyYWNlMmh0bWxfaW1wb3J0ZXIuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvdHJhY2UyaHRtbF9pbXBvcnRlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci90cmFjZTJodG1sX2ltcG9ydGVyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvdHJhY2UyaHRtbF9pbXBvcnRlcl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3RyYWNlMmh0bWxfaW1wb3J0ZXJfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWU0YTA1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbApAQCAtMCwwICsxLDE5NzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3F1YWQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvaW1wb3J0ZXIvaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY29tbWVudF9ib3hfYW5ub3RhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZmxvd19ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlcl9zZXJpZXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NsaWNlX2dyb3VwLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcmVjdF9hbm5vdGF0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC94X21hcmtlcl9hbm5vdGF0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFRyYWNlRXZlbnRJbXBvcnRlciBpbXBvcnRzIFRyYWNlRXZlbnQtZm9ybWF0dGVkIGRhdGEKKyAqIGludG8gdGhlIHByb3ZpZGVkIG1vZGVsLgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlcicsIGZ1bmN0aW9uKCkgeworCisgIHZhciBJbXBvcnRlciA9IHRyLmltcG9ydGVyLkltcG9ydGVyOworCisgIGZ1bmN0aW9uIGRlZXBDb3B5KHZhbHVlKSB7CisgICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpKSB7CisgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykKKyAgICAgICAgcmV0dXJuIHZhbHVlLnN1YnN0cmluZygpOworICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnYm9vbGVhbicpCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgIHRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkOiAnICsgdHlwZW9mIHZhbHVlKTsKKyAgICB9CisKKyAgICB2YXIgb2JqZWN0ID0gdmFsdWU7CisgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICB2YXIgcmVzID0gbmV3IEFycmF5KG9iamVjdC5sZW5ndGgpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspCisgICAgICAgIHJlc1tpXSA9IGRlZXBDb3B5KG9iamVjdFtpXSk7CisgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIGlmIChvYmplY3QuX19wcm90b19fICE9IE9iamVjdC5wcm90b3R5cGUpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBvbmx5IGNsb25lIHNpbXBsZSB0eXBlcycpOworICAgIHZhciByZXMgPSB7fTsKKyAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7CisgICAgICByZXNba2V5XSA9IGRlZXBDb3B5KG9iamVjdFtrZXldKTsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKKyAgfQorCisgIGZ1bmN0aW9uIGdldEV2ZW50Q29sb3IoZXZlbnQsIG9wdF9jdXN0b21OYW1lKSB7CisgICAgaWYgKGV2ZW50LmNuYW1lKQorICAgICAgcmV0dXJuIHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZShldmVudC5jbmFtZSk7CisgICAgZWxzZSBpZiAob3B0X2N1c3RvbU5hbWUgfHwgZXZlbnQubmFtZSkgeworICAgICAgcmV0dXJuIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKAorICAgICAgICAgIG9wdF9jdXN0b21OYW1lIHx8IGV2ZW50Lm5hbWUpOworICAgIH0KKyAgfQorCisgIHZhciB0aW1lc3RhbXBGcm9tVXMgPSB0ci5iLnVuaXRzLlRpbWUudGltZXN0YW1wRnJvbVVzOworICB2YXIgbWF5YmVUaW1lc3RhbXBGcm9tVXMgPSB0ci5iLnVuaXRzLlRpbWUubWF5YmVUaW1lc3RhbXBGcm9tVXM7CisKKyAgZnVuY3Rpb24gVHJhY2VFdmVudEltcG9ydGVyKG1vZGVsLCBldmVudERhdGEpIHsKKyAgICB0aGlzLmltcG9ydFByaW9yaXR5ID0gMTsKKyAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOworICAgIHRoaXMuZXZlbnRzXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLnNhbXBsZUV2ZW50c18gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zdGFja0ZyYW1lRXZlbnRzXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLnN5c3RlbVRyYWNlRXZlbnRzXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmJhdHRvckRhdGFfID0gdW5kZWZpbmVkOworICAgIHRoaXMuZXZlbnRzV2VyZUZyb21TdHJpbmdfID0gZmFsc2U7CisgICAgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfID0gdW5kZWZpbmVkOworICAgIHRoaXMuYWxsQXN5bmNFdmVudHNfID0gW107CisgICAgdGhpcy5hbGxGbG93RXZlbnRzXyA9IFtdOworICAgIHRoaXMuYWxsT2JqZWN0RXZlbnRzXyA9IFtdOworICAgIHRoaXMudHJhY2VFdmVudFNhbXBsZVN0YWNrRnJhbWVzQnlOYW1lXyA9IHt9OworCisgICAgLy8gRHVtcCBJRCAtPiB7Z2xvYmFsOiAoZXZlbnQgfCB1bmRlZmluZWQpLCBwcm9jZXNzOiBbZXZlbnRzXX0KKyAgICB0aGlzLmFsbE1lbW9yeUR1bXBFdmVudHNfID0ge307CisKKyAgICBpZiAodHlwZW9mKGV2ZW50RGF0YSkgPT09ICdzdHJpbmcnIHx8IGV2ZW50RGF0YSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgZXZlbnREYXRhID0gZXZlbnREYXRhLnRyaW0oKTsKKyAgICAgIC8vIElmIHRoZSBldmVudCBkYXRhIGJlZ2lucyB3aXRoIGEgWywgdGhlbiB3ZSBrbm93IGl0IHNob3VsZCBlbmQgd2l0aCBhIF0uCisgICAgICAvLyBUaGUgcmVhc29uIHdlIGNoZWNrIGZvciB0aGlzIGlzIGJlY2F1c2Ugc29tZSB0cmFjaW5nIGltcGxlbWVudGF0aW9ucworICAgICAgLy8gY2Fubm90IGd1YXJhbnRlZSB0aGF0IGEgJ10nIGdldHMgd3JpdHRlbiB0byB0aGUgdHJhY2UgZmlsZS4gU28sIHdlIGFyZQorICAgICAgLy8gZm9yZ2l2aW5nIGFuZCBpZiB0aGlzIGlzIG9idmlvdXNseSB0aGUgY2FzZSwgd2UgZml4IGl0IHVwIGJlZm9yZQorICAgICAgLy8gdGhyb3dpbmcgdGhlIHN0cmluZyBhdCBKU09OLnBhcnNlLgorICAgICAgaWYgKGV2ZW50RGF0YVswXSA9PT0gJ1snKSB7CisgICAgICAgIGV2ZW50RGF0YSA9IGV2ZW50RGF0YS5yZXBsYWNlKC9ccyosXHMqJC8sICcnKTsKKyAgICAgICAgaWYgKGV2ZW50RGF0YVtldmVudERhdGEubGVuZ3RoIC0gMV0gIT09ICddJykKKyAgICAgICAgICBldmVudERhdGEgPSBldmVudERhdGEgKyAnXSc7CisgICAgICB9CisKKyAgICAgIHRoaXMuZXZlbnRzXyA9IEpTT04ucGFyc2UoZXZlbnREYXRhKTsKKyAgICAgIHRoaXMuZXZlbnRzV2VyZUZyb21TdHJpbmdfID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgdGhpcy5ldmVudHNfID0gZXZlbnREYXRhOworICAgIH0KKworICAgIHRoaXMudHJhY2VBbm5vdGF0aW9uc18gPSB0aGlzLmV2ZW50c18udHJhY2VBbm5vdGF0aW9uczsKKworICAgIC8vIFNvbWUgdHJhY2VfZXZlbnQgaW1wbGVtZW50YXRpb25zIHB1dCB0aGUgYWN0dWFsIHRyYWNlIGV2ZW50cworICAgIC8vIGluc2lkZSBhIGNvbnRhaW5lci4gRS5nIHsgLi4uICwgdHJhY2VFdmVudHM6IFsgXSB9CisgICAgLy8gSWYgd2Ugc2VlIHRoYXQsIGp1c3QgcHVsbCBvdXQgdGhlIHRyYWNlIGV2ZW50cy4KKyAgICBpZiAodGhpcy5ldmVudHNfLnRyYWNlRXZlbnRzKSB7CisgICAgICB2YXIgY29udGFpbmVyID0gdGhpcy5ldmVudHNfOworICAgICAgdGhpcy5ldmVudHNfID0gdGhpcy5ldmVudHNfLnRyYWNlRXZlbnRzOworCisgICAgICAvLyBTb21lIHRyYWNlX2V2ZW50IGltcGxlbWVudGF0aW9ucyBwdXQgZnRyYWNlX2ltcG9ydGVyIHRyYWNlcyBhcyBhCisgICAgICAvLyBodWdlIHN0cmluZyBpbnNpZGUgY29udGFpbmVyLnN5c3RlbVRyYWNlRXZlbnRzLiBJZiB3ZSBzZWUgdGhhdCwgcHVsbCBpdAorICAgICAgLy8gb3V0LiBJdCB3aWxsIGJlIHBpY2tlZCB1cCBieSBleHRyYWN0U3VidHJhY2VzIGxhdGVyIG9uLgorICAgICAgdGhpcy5zeXN0ZW1UcmFjZUV2ZW50c18gPSBjb250YWluZXIuc3lzdGVtVHJhY2VFdmVudHM7CisKKyAgICAgIC8vIFNvbWUgdHJhY2VfZXZlbnQgaW1wbGVtZW50YXRpb25zIHB1dCBiYXR0b3IgcG93ZXIgdHJhY2VzIGFzIGEKKyAgICAgIC8vIGh1Z2Ugc3RyaW5nIGluc2lkZSBjb250YWluZXIuYmF0dG9yTG9nQXNTdHJpbmcuIElmIHdlIHNlZSB0aGF0LCBwdWxsCisgICAgICAvLyBpdCBvdXQuIEl0IHdpbGwgYmUgcGlja2VkIHVwIGJ5IGV4dHJhY3RTdWJ0cmFjZXMgbGF0ZXIgb24uCisgICAgICB0aGlzLmJhdHRvckRhdGFfID0gY29udGFpbmVyLmJhdHRvckxvZ0FzU3RyaW5nOworCisgICAgICAvLyBTYW1wbGluZyBkYXRhLgorICAgICAgdGhpcy5zYW1wbGVFdmVudHNfID0gY29udGFpbmVyLnNhbXBsZXM7CisgICAgICB0aGlzLnN0YWNrRnJhbWVFdmVudHNfID0gY29udGFpbmVyLnN0YWNrRnJhbWVzOworCisgICAgICAvLyBTb21lIGltcGxlbWVudGF0aW9ucyBzcGVjaWZ5IGRpc3BsYXlUaW1lVW5pdAorICAgICAgaWYgKGNvbnRhaW5lci5kaXNwbGF5VGltZVVuaXQpIHsKKyAgICAgICAgdmFyIHVuaXROYW1lID0gY29udGFpbmVyLmRpc3BsYXlUaW1lVW5pdDsKKyAgICAgICAgdmFyIHVuaXQgPSB0ci5iLnVuaXRzLlRpbWUuc3VwcG9ydGVkVW5pdHNbdW5pdE5hbWVdOworICAgICAgICBpZiAodW5pdCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbml0ICcgKyB1bml0TmFtZSArICcgaXMgbm90IHN1cHBvcnRlZC4nKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLm1vZGVsXy5pbnRyaW5zaWNUaW1lVW5pdCA9IHVuaXQ7CisgICAgICB9CisKKyAgICAgIHZhciBrbm93bkZpZWxkTmFtZXMgPSB7CisgICAgICAgIGJhdHRvckxvZ0FzU3RyaW5nOiB0cnVlLAorICAgICAgICBzYW1wbGVzOiB0cnVlLAorICAgICAgICBzdGFja0ZyYW1lczogdHJ1ZSwKKyAgICAgICAgc3lzdGVtVHJhY2VFdmVudHM6IHRydWUsCisgICAgICAgIHRyYWNlQW5ub3RhdGlvbnM6IHRydWUsCisgICAgICAgIHRyYWNlRXZlbnRzOiB0cnVlCisgICAgICB9OworICAgICAgLy8gQW55IG90aGVyIGZpZWxkcyBpbiB0aGUgY29udGFpbmVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIG1ldGFkYXRhLgorICAgICAgZm9yICh2YXIgZmllbGROYW1lIGluIGNvbnRhaW5lcikgeworICAgICAgICBpZiAoZmllbGROYW1lIGluIGtub3duRmllbGROYW1lcykKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdGhpcy5tb2RlbF8ubWV0YWRhdGEucHVzaCh7bmFtZTogZmllbGROYW1lLAorICAgICAgICAgIHZhbHVlOiBjb250YWluZXJbZmllbGROYW1lXX0pOworICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIG9iaiBpcyBhIFRyYWNlRXZlbnQgYXJyYXkuCisgICAqLworICBUcmFjZUV2ZW50SW1wb3J0ZXIuY2FuSW1wb3J0ID0gZnVuY3Rpb24oZXZlbnREYXRhKSB7CisgICAgLy8gTWF5IGJlIGVuY29kZWQgSlNPTi4gQnV0IHdlIGRvbnQgd2FudCB0byBwYXJzZSBpdCBmdWxseSB5ZXQuCisgICAgLy8gVXNlIGEgc2ltcGxlIGhldXJpc3RpYzoKKyAgICAvLyAgIC0gZXZlbnREYXRhIHRoYXQgc3RhcnRzIHdpdGggWyBhcmUgcHJvYmFibHkgdHJhY2VfZXZlbnQKKyAgICAvLyAgIC0gZXZlbnREYXRhIHRoYXQgc3RhcnRzIHdpdGggeyBhcmUgcHJvYmFibHkgdHJhY2VfZXZlbnQKKyAgICAvLyBNYXkgYmUgZW5jb2RlZCBKU09OLiBUcmVhdCBmaWxlcyB0aGF0IHN0YXJ0IHdpdGggeyBhcyBpbXBvcnRhYmxlIGJ5IHVzLgorICAgIGlmICh0eXBlb2YoZXZlbnREYXRhKSA9PT0gJ3N0cmluZycgfHwgZXZlbnREYXRhIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICBldmVudERhdGEgPSBldmVudERhdGEudHJpbSgpOworICAgICAgcmV0dXJuIGV2ZW50RGF0YVswXSA9PSAneycgfHwgZXZlbnREYXRhWzBdID09ICdbJzsKKyAgICB9CisKKyAgICAvLyBNaWdodCBqdXN0IGJlIGFuIGFycmF5IG9mIGV2ZW50cworICAgIGlmIChldmVudERhdGEgaW5zdGFuY2VvZiBBcnJheSAmJiBldmVudERhdGEubGVuZ3RoICYmIGV2ZW50RGF0YVswXS5waCkKKyAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gTWlnaHQgYmUgYW4gb2JqZWN0IHdpdGggYSB0cmFjZUV2ZW50cyBmaWVsZCBpbiBpdC4KKyAgICBpZiAoZXZlbnREYXRhLnRyYWNlRXZlbnRzKSB7CisgICAgICBpZiAoZXZlbnREYXRhLnRyYWNlRXZlbnRzIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgaWYgKGV2ZW50RGF0YS50cmFjZUV2ZW50cy5sZW5ndGggJiYgZXZlbnREYXRhLnRyYWNlRXZlbnRzWzBdLnBoKQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZXZlbnREYXRhLnNhbXBsZXMubGVuZ3RoICYmIGV2ZW50RGF0YS5zdGFja0ZyYW1lcyAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKKyAgfTsKKworICBUcmFjZUV2ZW50SW1wb3J0ZXIucHJvdG90eXBlID0geworCisgICAgX19wcm90b19fOiBJbXBvcnRlci5wcm90b3R5cGUsCisKKyAgICBleHRyYWN0U3VidHJhY2VzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzeXN0ZW1FdmVudHNUbXAgPSB0aGlzLnN5c3RlbVRyYWNlRXZlbnRzXzsKKyAgICAgIHZhciBiYXR0b3JEYXRhVG1wID0gdGhpcy5iYXR0b3JEYXRhXzsKKyAgICAgIHRoaXMuc3lzdGVtVHJhY2VFdmVudHNfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5iYXR0b3JEYXRhXyA9IHVuZGVmaW5lZDsKKyAgICAgIHZhciBzdWJUcmFjZXMgPSBzeXN0ZW1FdmVudHNUbXAgPyBbc3lzdGVtRXZlbnRzVG1wXSA6IFtdOworICAgICAgaWYgKGJhdHRvckRhdGFUbXApCisgICAgICAgIHN1YlRyYWNlcy5wdXNoKGJhdHRvckRhdGFUbXApOworICAgICAgIHJldHVybiBzdWJUcmFjZXM7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIERlZXAgY29weWluZyBpcyBvbmx5IG5lZWRlZCBpZiB0aGUgdHJhY2Ugd2FzIGdpdmVuIHRvIHVzIGFzIGV2ZW50cy4KKyAgICAgKi8KKyAgICBkZWVwQ29weUlmTmVlZGVkXzogZnVuY3Rpb24ob2JqKSB7CisgICAgICBpZiAob2JqID09PSB1bmRlZmluZWQpCisgICAgICAgIG9iaiA9IHt9OworICAgICAgaWYgKHRoaXMuZXZlbnRzV2VyZUZyb21TdHJpbmdfKQorICAgICAgICByZXR1cm4gb2JqOworICAgICAgcmV0dXJuIGRlZXBDb3B5KG9iaik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEhlbHBlciB0byBwcm9jZXNzIGFuIGFzeW5jIGV2ZW50LgorICAgICAqLworICAgIHByb2Nlc3NBc3luY0V2ZW50OiBmdW5jdGlvbihldmVudCkgeworICAgICAgdmFyIHRocmVhZCA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC5waWQpLgorICAgICAgICAgIGdldE9yQ3JlYXRlVGhyZWFkKGV2ZW50LnRpZCk7CisgICAgICB0aGlzLmFsbEFzeW5jRXZlbnRzXy5wdXNoKHsKKyAgICAgICAgc2VxdWVuY2VOdW1iZXI6IHRoaXMuYWxsQXN5bmNFdmVudHNfLmxlbmd0aCwKKyAgICAgICAgZXZlbnQ6IGV2ZW50LAorICAgICAgICB0aHJlYWQ6IHRocmVhZH0pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBIZWxwZXIgdG8gcHJvY2VzcyBhIGZsb3cgZXZlbnQuCisgICAgICovCisgICAgcHJvY2Vzc0Zsb3dFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKS4KKyAgICAgICAgICBnZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOworICAgICAgdGhpcy5hbGxGbG93RXZlbnRzXy5wdXNoKHsKKyAgICAgICAgcmVmR3VpZDogdHIuYi5HVUlELmdldExhc3RHdWlkKCksCisgICAgICAgIHNlcXVlbmNlTnVtYmVyOiB0aGlzLmFsbEZsb3dFdmVudHNfLmxlbmd0aCwKKyAgICAgICAgZXZlbnQ6IGV2ZW50LAorICAgICAgICB0aHJlYWQ6IHRocmVhZAorICAgICAgfSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEhlbHBlciB0aGF0IGNyZWF0ZXMgYW5kIGFkZHMgc2FtcGxlcyB0byBhIENvdW50ZXIgb2JqZWN0IGJhc2VkIG9uCisgICAgICogJ0MnIHBoYXNlIGV2ZW50cy4KKyAgICAgKi8KKyAgICBwcm9jZXNzQ291bnRlckV2ZW50OiBmdW5jdGlvbihldmVudCkgeworICAgICAgdmFyIGN0cl9uYW1lOworICAgICAgaWYgKGV2ZW50LmlkICE9PSB1bmRlZmluZWQpCisgICAgICAgIGN0cl9uYW1lID0gZXZlbnQubmFtZSArICdbJyArIGV2ZW50LmlkICsgJ10nOworICAgICAgZWxzZQorICAgICAgICBjdHJfbmFtZSA9IGV2ZW50Lm5hbWU7CisKKyAgICAgIHZhciBjdHIgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKQorICAgICAgICAgIC5nZXRPckNyZWF0ZUNvdW50ZXIoZXZlbnQuY2F0LCBjdHJfbmFtZSk7CisgICAgICB2YXIgcmVzZXJ2ZWRDb2xvcklkID0gZXZlbnQuY25hbWUgPyBnZXRFdmVudENvbG9yKGV2ZW50KSA6IHVuZGVmaW5lZDsKKworICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY291bnRlcidzIHNlcmllcyBmaWVsZHMgaWYgbmVlZGVkLgorICAgICAgaWYgKGN0ci5udW1TZXJpZXMgPT09IDApIHsKKyAgICAgICAgZm9yICh2YXIgc2VyaWVzTmFtZSBpbiBldmVudC5hcmdzKSB7CisgICAgICAgICAgdmFyIGNvbG9ySWQgPSByZXNlcnZlZENvbG9ySWQgfHwKKyAgICAgICAgICAgICAgZ2V0RXZlbnRDb2xvcihldmVudCwgY3RyLm5hbWUgKyAnLicgKyBzZXJpZXNOYW1lKTsKKyAgICAgICAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKHNlcmllc05hbWUsIGNvbG9ySWQpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjdHIubnVtU2VyaWVzID09PSAwKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnY291bnRlcl9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICBtZXNzYWdlOiAnRXhwZWN0ZWQgY291bnRlciAnICsgZXZlbnQubmFtZSArCisgICAgICAgICAgICAgICAgJyB0byBoYXZlIGF0IGxlYXN0IG9uZSBhcmd1bWVudCB0byB1c2UgYXMgYSB2YWx1ZS4nCisgICAgICAgICAgfSk7CisKKyAgICAgICAgICAvLyBEcm9wIHRoZSBjb3VudGVyLgorICAgICAgICAgIGRlbGV0ZSBjdHIucGFyZW50LmNvdW50ZXJzW2N0ci5uYW1lXTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgdmFyIHRzID0gdGltZXN0YW1wRnJvbVVzKGV2ZW50LnRzKTsKKyAgICAgIGN0ci5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgdmFyIHZhbCA9IGV2ZW50LmFyZ3Nbc2VyaWVzLm5hbWVdID8gZXZlbnQuYXJnc1tzZXJpZXMubmFtZV0gOiAwOworICAgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0cywgdmFsKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBwcm9jZXNzT2JqZWN0RXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCkuCisgICAgICAgICAgZ2V0T3JDcmVhdGVUaHJlYWQoZXZlbnQudGlkKTsKKyAgICAgIHRoaXMuYWxsT2JqZWN0RXZlbnRzXy5wdXNoKHsKKyAgICAgICAgc2VxdWVuY2VOdW1iZXI6IHRoaXMuYWxsT2JqZWN0RXZlbnRzXy5sZW5ndGgsCisgICAgICAgIGV2ZW50OiBldmVudCwKKyAgICAgICAgdGhyZWFkOiB0aHJlYWR9KTsKKyAgICB9LAorCisgICAgcHJvY2Vzc0R1cmF0aW9uRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCkKKyAgICAgICAgLmdldE9yQ3JlYXRlVGhyZWFkKGV2ZW50LnRpZCk7CisgICAgICB2YXIgdHMgPSB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpOworICAgICAgaWYgKCF0aHJlYWQuc2xpY2VHcm91cC5pc1RpbWVzdGFtcFZhbGlkRm9yQmVnaW5PckVuZCh0cykpIHsKKyAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ2R1cmF0aW9uX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICBtZXNzYWdlOiAnVGltZXN0YW1wcyBhcmUgbW92aW5nIGJhY2t3YXJkLicKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKGV2ZW50LnBoID09ICdCJykgeworICAgICAgICB2YXIgc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5iZWdpblNsaWNlKAorICAgICAgICAgICAgZXZlbnQuY2F0LCBldmVudC5uYW1lLCB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpLAorICAgICAgICAgICAgdGhpcy5kZWVwQ29weUlmTmVlZGVkXyhldmVudC5hcmdzKSwKKyAgICAgICAgICAgIHRpbWVzdGFtcEZyb21VcyhldmVudC50dHMpLCBldmVudC5hcmdzU3RyaXBwZWQsCisgICAgICAgICAgICBnZXRFdmVudENvbG9yKGV2ZW50KSk7CisgICAgICAgIHNsaWNlLnN0YXJ0U3RhY2tGcmFtZSA9IHRoaXMuZ2V0U3RhY2tGcmFtZUZvckV2ZW50XyhldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09ICdJJyB8fCBldmVudC5waCA9PSAnaScpIHsKKyAgICAgICAgaWYgKGV2ZW50LnMgIT09IHVuZGVmaW5lZCAmJiBldmVudC5zICE9PSAndCcpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4nKTsKKworICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5iZWdpblNsaWNlKGV2ZW50LmNhdCwgZXZlbnQubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oZXZlbnQuYXJncyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRnJvbVVzKGV2ZW50LnR0cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuYXJnc1N0cmlwcGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEV2ZW50Q29sb3IoZXZlbnQpKTsKKyAgICAgICAgdmFyIHNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuZW5kU2xpY2UodGltZXN0YW1wRnJvbVVzKGV2ZW50LnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRnJvbVVzKGV2ZW50LnR0cykpOworICAgICAgICBzbGljZS5zdGFydFN0YWNrRnJhbWUgPSB0aGlzLmdldFN0YWNrRnJhbWVGb3JFdmVudF8oZXZlbnQpOworICAgICAgICBzbGljZS5lbmRTdGFja0ZyYW1lID0gdW5kZWZpbmVkOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCF0aHJlYWQuc2xpY2VHcm91cC5vcGVuU2xpY2VDb3VudCkgeworICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ2R1cmF0aW9uX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdFIHBoYXNlIGV2ZW50IHdpdGhvdXQgYSBtYXRjaGluZyBCIHBoYXNlIGV2ZW50LicKKyAgICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5lbmRTbGljZSh0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RXZlbnRDb2xvcihldmVudCkpOworICAgICAgICBpZiAoZXZlbnQubmFtZSAmJiBzbGljZS50aXRsZSAhPSBldmVudC5uYW1lKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAndGl0bGVfbWF0Y2hfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ1RpdGxlcyBkbyBub3QgbWF0Y2guIFRpdGxlIGlzICcgKworICAgICAgICAgICAgICAgIHNsaWNlLnRpdGxlICsgJyBpbiBvcGVuU2xpY2UsIGFuZCBpcyAnICsKKyAgICAgICAgICAgICAgICBldmVudC5uYW1lICsgJyBpbiBlbmRTbGljZScKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICBzbGljZS5lbmRTdGFja0ZyYW1lID0gdGhpcy5nZXRTdGFja0ZyYW1lRm9yRXZlbnRfKGV2ZW50KTsKKworICAgICAgICB0aGlzLm1lcmdlQXJnc0ludG9fKHNsaWNlLmFyZ3MsIGV2ZW50LmFyZ3MsIHNsaWNlLnRpdGxlKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgbWVyZ2VBcmdzSW50b186IGZ1bmN0aW9uKGRzdEFyZ3MsIHNyY0FyZ3MsIGV2ZW50TmFtZSkgeworICAgICAgZm9yICh2YXIgYXJnIGluIHNyY0FyZ3MpIHsKKyAgICAgICAgaWYgKGRzdEFyZ3NbYXJnXSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnYXJnX21lcmdlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdEaWZmZXJlbnQgcGhhc2VzIG9mICcgKyBldmVudE5hbWUgKworICAgICAgICAgICAgICAgICcgcHJvdmlkZWQgdmFsdWVzIGZvciBhcmd1bWVudCAnICsgYXJnICsgJy4nICsKKyAgICAgICAgICAgICAgICAnIFRoZSBsYXN0IHByb3ZpZGVkIHZhbHVlIHdpbGwgYmUgdXNlZC4nCisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgZHN0QXJnc1thcmddID0gdGhpcy5kZWVwQ29weUlmTmVlZGVkXyhzcmNBcmdzW2FyZ10pOworICAgICAgfQorICAgIH0sCisKKyAgICBwcm9jZXNzQ29tcGxldGVFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKQorICAgICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOworICAgICAgdmFyIHNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAucHVzaENvbXBsZXRlU2xpY2UoZXZlbnQuY2F0LCBldmVudC5uYW1lLAorICAgICAgICAgIHRpbWVzdGFtcEZyb21VcyhldmVudC50cyksCisgICAgICAgICAgbWF5YmVUaW1lc3RhbXBGcm9tVXMoZXZlbnQuZHVyKSwKKyAgICAgICAgICBtYXliZVRpbWVzdGFtcEZyb21VcyhldmVudC50dHMpLAorICAgICAgICAgIG1heWJlVGltZXN0YW1wRnJvbVVzKGV2ZW50LnRkdXIpLAorICAgICAgICAgIHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oZXZlbnQuYXJncyksCisgICAgICAgICAgZXZlbnQuYXJnc1N0cmlwcGVkLAorICAgICAgICAgIGdldEV2ZW50Q29sb3IoZXZlbnQpKTsKKyAgICAgIHNsaWNlLnN0YXJ0U3RhY2tGcmFtZSA9IHRoaXMuZ2V0U3RhY2tGcmFtZUZvckV2ZW50XyhldmVudCk7CisgICAgICBzbGljZS5lbmRTdGFja0ZyYW1lID0gdGhpcy5nZXRTdGFja0ZyYW1lRm9yRXZlbnRfKGV2ZW50LCB0cnVlKTsKKyAgICB9LAorCisgICAgcHJvY2Vzc01ldGFkYXRhRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAvLyBUaGUgbWV0YWRhdGEgZXZlbnRzIGFyZW4ndCB1c2VmdWwgd2l0aG91dCBhcmdzLgorICAgICAgaWYgKGV2ZW50LmFyZ3NTdHJpcHBlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBpZiAoZXZlbnQubmFtZSA9PSAncHJvY2Vzc19uYW1lJykgeworICAgICAgICB2YXIgcHJvY2VzcyA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC5waWQpOworICAgICAgICBwcm9jZXNzLm5hbWUgPSBldmVudC5hcmdzLm5hbWU7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ3Byb2Nlc3NfbGFiZWxzJykgeworICAgICAgICB2YXIgcHJvY2VzcyA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC5waWQpOworICAgICAgICB2YXIgbGFiZWxzID0gZXZlbnQuYXJncy5sYWJlbHMuc3BsaXQoJywnKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYWJlbHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgcHJvY2Vzcy5hZGRMYWJlbElmTmVlZGVkKGxhYmVsc1tpXSk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ3Byb2Nlc3Nfc29ydF9pbmRleCcpIHsKKyAgICAgICAgdmFyIHByb2Nlc3MgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKTsKKyAgICAgICAgcHJvY2Vzcy5zb3J0SW5kZXggPSBldmVudC5hcmdzLnNvcnRfaW5kZXg7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ3RocmVhZF9uYW1lJykgeworICAgICAgICB2YXIgdGhyZWFkID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCkuCisgICAgICAgICAgICBnZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOworICAgICAgICB0aHJlYWQubmFtZSA9IGV2ZW50LmFyZ3MubmFtZTsKKyAgICAgIH0gZWxzZSBpZiAoZXZlbnQubmFtZSA9PSAndGhyZWFkX3NvcnRfaW5kZXgnKSB7CisgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoZXZlbnQucGlkKS4KKyAgICAgICAgICAgIGdldE9yQ3JlYXRlVGhyZWFkKGV2ZW50LnRpZCk7CisgICAgICAgIHRocmVhZC5zb3J0SW5kZXggPSBldmVudC5hcmdzLnNvcnRfaW5kZXg7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT0gJ251bV9jcHVzJykgeworICAgICAgICB2YXIgbiA9IGV2ZW50LmFyZ3MubnVtYmVyOworICAgICAgICAvLyBOb3QgYWxsIHJlbmRlciBwcm9jZXNzZXMgYWdyZWUgb24gdGhlIGNwdSBjb3VudCBpbiB0cmFjZV9ldmVudC4gU29tZQorICAgICAgICAvLyBwcm9jZXNzZXMgd2lsbCByZXBvcnQgMSwgd2hpbGUgb3RoZXJzIHdpbGwgcmVwb3J0IHRoZSBhY3R1YWwgY3B1CisgICAgICAgIC8vIGNvdW50LiBUbyBkZWFsIHdpdGggdGhpcywgdGFrZSB0aGUgbWF4IG9mIHdoYXQgaXMgcmVwb3J0ZWQuCisgICAgICAgIGlmICh0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF8gIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBuID0gTWF0aC5tYXgobiwgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfKTsKKyAgICAgICAgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfID0gbjsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgIHR5cGU6ICdtZXRhZGF0YV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgbWVzc2FnZTogJ1VucmVjb2duaXplZCBtZXRhZGF0YSBuYW1lOiAnICsgZXZlbnQubmFtZQorICAgICAgICB9KTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgcHJvY2Vzc0luc3RhbnRFdmVudDogZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIC8vIFRocmVhZC1sZXZlbCBpbnN0YW50IGV2ZW50cyBhcmUgdHJlYXRlZCBhcyB6ZXJvLWR1cmF0aW9uIHNsaWNlcy4KKyAgICAgIGlmIChldmVudC5zID09ICd0JyB8fCBldmVudC5zID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5wcm9jZXNzRHVyYXRpb25FdmVudChldmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIGNvbnN0cnVjdG9yOworICAgICAgc3dpdGNoIChldmVudC5zKSB7CisgICAgICAgIGNhc2UgJ2cnOgorICAgICAgICAgIGNvbnN0cnVjdG9yID0gdHIubW9kZWwuR2xvYmFsSW5zdGFudEV2ZW50OworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdwJzoKKyAgICAgICAgICBjb25zdHJ1Y3RvciA9IHRyLm1vZGVsLlByb2Nlc3NJbnN0YW50RXZlbnQ7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnaW5zdGFudF9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICBtZXNzYWdlOiAnSSBwaGFzZSBldmVudCB3aXRoIHVua25vd24gInMiIGZpZWxkIHZhbHVlLicKKyAgICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBpbnN0YW50RXZlbnQgPSBuZXcgY29uc3RydWN0b3IoZXZlbnQuY2F0LCBldmVudC5uYW1lLAorICAgICAgICAgIGdldEV2ZW50Q29sb3IoZXZlbnQpLCB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpLAorICAgICAgICAgIHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oZXZlbnQuYXJncykpOworCisgICAgICBzd2l0Y2ggKGluc3RhbnRFdmVudC50eXBlKSB7CisgICAgICAgIGNhc2UgdHIubW9kZWwuSW5zdGFudEV2ZW50VHlwZS5HTE9CQUw6CisgICAgICAgICAgdGhpcy5tb2RlbF8ucHVzaEluc3RhbnRFdmVudChpbnN0YW50RXZlbnQpOworICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgdHIubW9kZWwuSW5zdGFudEV2ZW50VHlwZS5QUk9DRVNTOgorICAgICAgICAgIHZhciBwcm9jZXNzID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKGV2ZW50LnBpZCk7CisgICAgICAgICAgcHJvY2Vzcy5wdXNoSW5zdGFudEV2ZW50KGluc3RhbnRFdmVudCk7CisgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gaW5zdGFudCBldmVudCB0eXBlOiAnICsgZXZlbnQucyk7CisgICAgICB9CisgICAgfSwKKworICAgIHByb2Nlc3NUcmFjZVNhbXBsZUV2ZW50OiBmdW5jdGlvbihldmVudCkgeworICAgICAgdmFyIHRocmVhZCA9IHRoaXMubW9kZWxfLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC5waWQpCisgICAgICAgIC5nZXRPckNyZWF0ZVRocmVhZChldmVudC50aWQpOworCisgICAgICB2YXIgc3RhY2tGcmFtZSA9IHRoaXMuZ2V0U3RhY2tGcmFtZUZvckV2ZW50XyhldmVudCk7CisgICAgICBpZiAoc3RhY2tGcmFtZSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHN0YWNrRnJhbWUgPSB0aGlzLnRyYWNlRXZlbnRTYW1wbGVTdGFja0ZyYW1lc0J5TmFtZV9bCisgICAgICAgICAgICBldmVudC5uYW1lXTsKKyAgICAgIH0KKyAgICAgIGlmIChzdGFja0ZyYW1lID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdmFyIGlkID0gJ3RlLScgKyB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKKyAgICAgICAgc3RhY2tGcmFtZSA9IG5ldyB0ci5tb2RlbC5TdGFja0ZyYW1lKAorICAgICAgICAgICAgdW5kZWZpbmVkLCBpZCwKKyAgICAgICAgICAgIGV2ZW50LmNhdCwgZXZlbnQubmFtZSwKKyAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGV2ZW50Lm5hbWUpKTsKKyAgICAgICAgdGhpcy5tb2RlbF8uYWRkU3RhY2tGcmFtZShzdGFja0ZyYW1lKTsKKyAgICAgICAgdGhpcy50cmFjZUV2ZW50U2FtcGxlU3RhY2tGcmFtZXNCeU5hbWVfW2V2ZW50Lm5hbWVdID0gc3RhY2tGcmFtZTsKKyAgICAgIH0KKworICAgICAgdmFyIHNhbXBsZSA9IG5ldyB0ci5tb2RlbC5TYW1wbGUoCisgICAgICAgICAgdW5kZWZpbmVkLCB0aHJlYWQsICdUUkFDRV9FVkVOVF9TQU1QTEUnLAorICAgICAgICAgIHRpbWVzdGFtcEZyb21VcyhldmVudC50cyksIHN0YWNrRnJhbWUsIDEsCisgICAgICAgICAgdGhpcy5kZWVwQ29weUlmTmVlZGVkXyhldmVudC5hcmdzKSk7CisgICAgICB0aGlzLm1vZGVsXy5zYW1wbGVzLnB1c2goc2FtcGxlKTsKKyAgICB9LAorCisgICAgZ2V0T3JDcmVhdGVNZW1vcnlEdW1wRXZlbnRzXzogZnVuY3Rpb24oZHVtcElkKSB7CisgICAgICBpZiAodGhpcy5hbGxNZW1vcnlEdW1wRXZlbnRzX1tkdW1wSWRdID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5hbGxNZW1vcnlEdW1wRXZlbnRzX1tkdW1wSWRdID0geworICAgICAgICAgIGdsb2JhbDogdW5kZWZpbmVkLAorICAgICAgICAgIHByb2Nlc3M6IFtdCisgICAgICAgIH07CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5hbGxNZW1vcnlEdW1wRXZlbnRzX1tkdW1wSWRdOworICAgIH0sCisKKyAgICBwcm9jZXNzTWVtb3J5RHVtcEV2ZW50OiBmdW5jdGlvbihldmVudCkgeworICAgICAgaWYgKGV2ZW50LmlkID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICBtZXNzYWdlOiBldmVudC5waCArICcgcGhhc2UgZXZlbnQgd2l0aG91dCBhIGR1bXAgSUQuJworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgdmFyIGV2ZW50cyA9IHRoaXMuZ2V0T3JDcmVhdGVNZW1vcnlEdW1wRXZlbnRzXyhldmVudC5pZCk7CisKKyAgICAgIGlmIChldmVudC5waCA9PT0gJ3YnKSB7CisgICAgICAgIC8vIEFkZCBhIHByb2Nlc3MgbWVtb3J5IGR1bXAuCisgICAgICAgIGV2ZW50cy5wcm9jZXNzLnB1c2goZXZlbnQpOworICAgICAgfSBlbHNlIGlmIChldmVudC5waCA9PT0gJ1YnKSB7CisgICAgICAgIC8vIEFkZCBhIGdsb2JhbCBtZW1vcnkgZHVtcCAodW5sZXNzIGFscmVhZHkgcHJlc2VudCkuCisgICAgICAgIGlmIChldmVudHMuZ2xvYmFsICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdtZW1vcnlfZHVtcF9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICBtZXNzYWdlOiAnTXVsdGlwbGUgViBwaGFzZSBldmVudHMgd2l0aCB0aGUgc2FtZSBkdW1wIElELicKKyAgICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXZlbnRzLmdsb2JhbCA9IGV2ZW50OworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1lbW9yeSBkdW1wIGV2ZW50IHBoYXNlICInICsgZXZlbnQucGggKyAnIi4nKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogV2Fsa3MgdGhyb3VnaCB0aGUgZXZlbnRzXyBsaXN0IGFuZCBvdXRwdXRzIHRoZSBzdHJ1Y3R1cmVzIGRpc2NvdmVyZWQgdG8KKyAgICAgKiBtb2RlbF8uCisgICAgICovCisgICAgaW1wb3J0RXZlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBjc3IgPSBuZXcgdHIuQ2xvY2tTeW5jUmVjb3JkKCdmdHJhY2VfaW1wb3J0ZXInLCAwLCB7fSk7CisgICAgICB0aGlzLm1vZGVsXy5jbG9ja1N5bmNSZWNvcmRzLnB1c2goY3NyKTsKKyAgICAgIGlmICh0aGlzLnN0YWNrRnJhbWVFdmVudHNfKQorICAgICAgICB0aGlzLmltcG9ydFN0YWNrRnJhbWVzXygpOworCisgICAgICBpZiAodGhpcy50cmFjZUFubm90YXRpb25zXykKKyAgICAgICAgdGhpcy5pbXBvcnRBbm5vdGF0aW9uc18oKTsKKworICAgICAgdmFyIGV2ZW50cyA9IHRoaXMuZXZlbnRzXzsKKyAgICAgIGZvciAodmFyIGVJID0gMDsgZUkgPCBldmVudHMubGVuZ3RoOyBlSSsrKSB7CisgICAgICAgIHZhciBldmVudCA9IGV2ZW50c1tlSV07CisgICAgICAgIGlmIChldmVudC5hcmdzID09PSAnX19zdHJpcHBlZF9fJykgeworICAgICAgICAgIGV2ZW50LmFyZ3NTdHJpcHBlZCA9IHRydWU7CisgICAgICAgICAgZXZlbnQuYXJncyA9IHVuZGVmaW5lZDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudC5waCA9PT0gJ0InIHx8IGV2ZW50LnBoID09PSAnRScpIHsKKyAgICAgICAgICB0aGlzLnByb2Nlc3NEdXJhdGlvbkV2ZW50KGV2ZW50KTsKKworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09PSAnWCcpIHsKKyAgICAgICAgICB0aGlzLnByb2Nlc3NDb21wbGV0ZUV2ZW50KGV2ZW50KTsKKworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09PSAnYicgfHwgZXZlbnQucGggPT09ICdlJyB8fCBldmVudC5waCA9PT0gJ24nIHx8CisgICAgICAgICAgICAgICAgICAgZXZlbnQucGggPT09ICdTJyB8fCBldmVudC5waCA9PT0gJ0YnIHx8IGV2ZW50LnBoID09PSAnVCcgfHwKKyAgICAgICAgICAgICAgICAgICBldmVudC5waCA9PT0gJ3AnKSB7CisgICAgICAgICAgdGhpcy5wcm9jZXNzQXN5bmNFdmVudChldmVudCk7CisKKyAgICAgICAgLy8gTm90ZSwgSSBpcyBoaXN0b3JpYy4gVGhlIGluc3RhbnQgZXZlbnQgbWFya2VyIGdvdCBjaGFuZ2VkLCBidXQgd2UKKyAgICAgICAgLy8gd2FudCB0byBzdXBwb3J0IGxvYWRpbmcgb2xkIHRyYWNlIGZpbGVzIHNvIHdlIGhhdmUgYm90aCBJIGFuZCBpLgorICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09ICdJJyB8fCBldmVudC5waCA9PSAnaScpIHsKKyAgICAgICAgICB0aGlzLnByb2Nlc3NJbnN0YW50RXZlbnQoZXZlbnQpOworCisgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT0gJ1AnKSB7CisgICAgICAgICAgdGhpcy5wcm9jZXNzVHJhY2VTYW1wbGVFdmVudChldmVudCk7CisKKyAgICAgICAgfSBlbHNlIGlmIChldmVudC5waCA9PSAnQycpIHsKKyAgICAgICAgICB0aGlzLnByb2Nlc3NDb3VudGVyRXZlbnQoZXZlbnQpOworCisgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT0gJ00nKSB7CisgICAgICAgICAgdGhpcy5wcm9jZXNzTWV0YWRhdGFFdmVudChldmVudCk7CisKKyAgICAgICAgfSBlbHNlIGlmIChldmVudC5waCA9PT0gJ04nIHx8IGV2ZW50LnBoID09PSAnRCcgfHwgZXZlbnQucGggPT09ICdPJykgeworICAgICAgICAgIHRoaXMucHJvY2Vzc09iamVjdEV2ZW50KGV2ZW50KTsKKworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09PSAncycgfHwgZXZlbnQucGggPT09ICd0JyB8fCBldmVudC5waCA9PT0gJ2YnKSB7CisgICAgICAgICAgdGhpcy5wcm9jZXNzRmxvd0V2ZW50KGV2ZW50KTsKKworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09PSAndicgfHwgZXZlbnQucGggPT09ICdWJykgeworICAgICAgICAgIHRoaXMucHJvY2Vzc01lbW9yeUR1bXBFdmVudChldmVudCk7CisKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdwYXJzZV9lcnJvcicsCisgICAgICAgICAgICBtZXNzYWdlOiAnVW5yZWNvZ25pemVkIGV2ZW50IHBoYXNlOiAnICsKKyAgICAgICAgICAgICAgICBldmVudC5waCArICcgKCcgKyBldmVudC5uYW1lICsgJyknCisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9LAorCisgICAgaW1wb3J0U3RhY2tGcmFtZXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBtID0gdGhpcy5tb2RlbF87CisgICAgICB2YXIgZXZlbnRzID0gdGhpcy5zdGFja0ZyYW1lRXZlbnRzXzsKKworICAgICAgZm9yICh2YXIgaWQgaW4gZXZlbnRzKSB7CisgICAgICAgIHZhciBldmVudCA9IGV2ZW50c1tpZF07CisgICAgICAgIHZhciB0ZXh0Rm9yQ29sb3IgPSBldmVudC5jYXRlZ29yeSA/IGV2ZW50LmNhdGVnb3J5IDogZXZlbnQubmFtZTsKKyAgICAgICAgdmFyIGZyYW1lID0gbmV3IHRyLm1vZGVsLlN0YWNrRnJhbWUoCisgICAgICAgICAgICB1bmRlZmluZWQsICdnJyArIGlkLAorICAgICAgICAgICAgZXZlbnQuY2F0ZWdvcnksIGV2ZW50Lm5hbWUsCisgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0ZXh0Rm9yQ29sb3IpKTsKKyAgICAgICAgbS5hZGRTdGFja0ZyYW1lKGZyYW1lKTsKKyAgICAgIH0KKyAgICAgIGZvciAodmFyIGlkIGluIGV2ZW50cykgeworICAgICAgICB2YXIgZXZlbnQgPSBldmVudHNbaWRdOworICAgICAgICBpZiAoZXZlbnQucGFyZW50ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmFyIGZyYW1lID0gbS5zdGFja0ZyYW1lc1snZycgKyBpZF07CisgICAgICAgIGlmIChmcmFtZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignb21nJyk7CisgICAgICAgIHZhciBwYXJlbnRGcmFtZTsKKyAgICAgICAgaWYgKGV2ZW50LnBhcmVudCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgcGFyZW50RnJhbWUgPSB1bmRlZmluZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcGFyZW50RnJhbWUgPSBtLnN0YWNrRnJhbWVzWydnJyArIGV2ZW50LnBhcmVudF07CisgICAgICAgICAgaWYgKHBhcmVudEZyYW1lID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ29tZycpOworICAgICAgICB9CisgICAgICAgIGZyYW1lLnBhcmVudEZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgICB9CisgICAgfSwKKworICAgIGltcG9ydEFubm90YXRpb25zXzogZnVuY3Rpb24oKSB7CisgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLnRyYWNlQW5ub3RhdGlvbnNfKSB7CisgICAgICAgIHZhciBhbm5vdGF0aW9uID0gdHIubW9kZWwuQW5ub3RhdGlvbi5mcm9tRGljdElmUG9zc2libGUoCisgICAgICAgICAgIHRoaXMudHJhY2VBbm5vdGF0aW9uc19baWRdKTsKKyAgICAgICAgaWYgKCFhbm5vdGF0aW9uKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnYW5ub3RhdGlvbl93YXJuaW5nJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdVbnJlY29nbml6ZWQgdHJhY2VBbm5vdGF0aW9uIHR5cGVOYW1lIFwiJyArCisgICAgICAgICAgICAgICAgdGhpcy50cmFjZUFubm90YXRpb25zX1tpZF0udHlwZU5hbWUgKyAnXCInCisgICAgICAgICAgfSk7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5tb2RlbF8uYWRkQW5ub3RhdGlvbihhbm5vdGF0aW9uKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBNb2RlbCBhZnRlciBhbGwgb3RoZXIgaW1wb3J0ZXJzIGhhdmUgaW1wb3J0ZWQgdGhlaXIKKyAgICAgKiBldmVudHMuCisgICAgICovCisgICAgZmluYWxpemVJbXBvcnQ6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuc29mdHdhcmVNZWFzdXJlZENwdUNvdW50XyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMubW9kZWxfLmtlcm5lbC5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQgPQorICAgICAgICAgICAgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfOworICAgICAgfQorICAgICAgdGhpcy5jcmVhdGVBc3luY1NsaWNlc18oKTsKKyAgICAgIHRoaXMuY3JlYXRlRmxvd1NsaWNlc18oKTsKKyAgICAgIHRoaXMuY3JlYXRlRXhwbGljaXRPYmplY3RzXygpOworICAgICAgdGhpcy5jcmVhdGVJbXBsaWNpdE9iamVjdHNfKCk7CisgICAgICB0aGlzLmNyZWF0ZU1lbW9yeUR1bXBzXygpOworICAgIH0sCisKKyAgICAvKiBFdmVudHMgY2FuIGhhdmUgb25lIG9yIG1vcmUgc3RhY2sgZnJhbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGVtLCBidXQKKyAgICAgKiB0aGF0IGZyYW1lIG1pZ2h0IGJlIGVuY29kZWQgZWl0aGVyIGFzIGEgc3RhY2sgdHJhY2Ugb2YgcHJvZ3JhbSBjb3VudGVycywKKyAgICAgKiBvciBhcyBhIGRpcmVjdCBzdGFjayBmcmFtZSByZWZlcmVuY2UuIFRoaXMgaGFuZGxlcyBlaXRoZXIgY2FzZSBhbmQKKyAgICAgKiBpZiBmb3VuZCwgcmV0dXJucyB0aGUgc3RhY2tmcmFtZS4KKyAgICAgKi8KKyAgICBnZXRTdGFja0ZyYW1lRm9yRXZlbnRfOiBmdW5jdGlvbihldmVudCwgb3B0X2xvb2tGb3JFbmRFdmVudCkgeworICAgICAgdmFyIHNmOworICAgICAgdmFyIHN0YWNrOworICAgICAgaWYgKG9wdF9sb29rRm9yRW5kRXZlbnQpIHsKKyAgICAgICAgc2YgPSBldmVudC5lc2Y7CisgICAgICAgIHN0YWNrID0gZXZlbnQuZXN0YWNrOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgc2YgPSBldmVudC5zZjsKKyAgICAgICAgc3RhY2sgPSBldmVudC5zdGFjazsKKyAgICAgIH0KKyAgICAgIGlmIChzdGFjayAhPT0gdW5kZWZpbmVkICYmIHNmICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ3N0YWNrX2ZyYW1lX2FuZF9zdGFja19lcnJvcicsCisgICAgICAgICAgbWVzc2FnZTogJ0V2ZW50IGF0ICcgKyBldmVudC50cyArCisgICAgICAgICAgICAgICcgY2Fubm90IGhhdmUgYm90aCBhIHN0YWNrIGFuZCBhIHN0YWNrZnJhbWUuJworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIH0KKworICAgICAgaWYgKHN0YWNrICE9PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiB0aGlzLm1vZGVsXy5yZXNvbHZlU3RhY2tUb1N0YWNrRnJhbWVfKGV2ZW50LnBpZCwgc3RhY2spOworICAgICAgaWYgKHNmID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBzdGFja0ZyYW1lID0gdGhpcy5tb2RlbF8uc3RhY2tGcmFtZXNbJ2cnICsgc2ZdOworICAgICAgaWYgKHN0YWNrRnJhbWUgPT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICB0eXBlOiAnc2FtcGxlX2ltcG9ydF9lcnJvcicsCisgICAgICAgICAgbWVzc2FnZTogJ05vIGZyYW1lIGZvciAnICsgc2YKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHJldHVybiBzdGFja0ZyYW1lOworICAgIH0sCisKKyAgICByZXNvbHZlU3RhY2tUb1N0YWNrRnJhbWVfOiBmdW5jdGlvbihwaWQsIHN0YWNrKSB7CisgICAgICAvLyBUT0RPKGFscGgsZm1lYXdhZCk6IEFkZCBjb2RlbWFwIHJlc29sdXRpb24gY29kZSBoZXJlLgorICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgaW1wb3J0U2FtcGxlRGF0YTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMuc2FtcGxlRXZlbnRzXykKKyAgICAgICAgcmV0dXJuOworICAgICAgdmFyIG0gPSB0aGlzLm1vZGVsXzsKKworICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgb25seSBpbXBvcnRlciwgdGhlbiBmYWtlLWNyZWF0ZSB0aGUgdGhyZWFkcy4KKyAgICAgIHZhciBldmVudHMgPSB0aGlzLnNhbXBsZUV2ZW50c187CisgICAgICBpZiAodGhpcy5ldmVudHNfLmxlbmd0aCA9PT0gMCkgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBldmVudCA9IGV2ZW50c1tpXTsKKyAgICAgICAgICBtLmdldE9yQ3JlYXRlUHJvY2VzcyhldmVudC50aWQpLmdldE9yQ3JlYXRlVGhyZWFkKGV2ZW50LnRpZCk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgdmFyIHRocmVhZHNCeVRpZCA9IHt9OworICAgICAgbS5nZXRBbGxUaHJlYWRzKCkuZm9yRWFjaChmdW5jdGlvbih0KSB7CisgICAgICAgIHRocmVhZHNCeVRpZFt0LnRpZF0gPSB0OworICAgICAgfSk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBldmVudCA9IGV2ZW50c1tpXTsKKyAgICAgICAgdmFyIHRocmVhZCA9IHRocmVhZHNCeVRpZFtldmVudC50aWRdOworICAgICAgICBpZiAodGhyZWFkID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICBtLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ3NhbXBsZV9pbXBvcnRfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ1RocmVhZCAnICsgZXZlbnRzLnRpZCArICdub3QgZm91bmQnCisgICAgICAgICAgfSk7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgY3B1OworICAgICAgICBpZiAoZXZlbnQuY3B1ICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgY3B1ID0gbS5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoZXZlbnQuY3B1KTsKKworICAgICAgICB2YXIgc3RhY2tGcmFtZSA9IHRoaXMuZ2V0U3RhY2tGcmFtZUZvckV2ZW50XyhldmVudCk7CisKKyAgICAgICAgdmFyIHNhbXBsZSA9IG5ldyB0ci5tb2RlbC5TYW1wbGUoCisgICAgICAgICAgICBjcHUsIHRocmVhZCwKKyAgICAgICAgICAgIGV2ZW50Lm5hbWUsCisgICAgICAgICAgICB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpLAorICAgICAgICAgICAgc3RhY2tGcmFtZSwKKyAgICAgICAgICAgIGV2ZW50LndlaWdodCk7CisgICAgICAgIG0uc2FtcGxlcy5wdXNoKHNhbXBsZSk7CisgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENhbGxlZCBieSB0aGUgbW9kZWwgdG8gam9pbiByZWZlcmVuY2VzIGJldHdlZW4gb2JqZWN0cywgYWZ0ZXIgZmluYWwgbW9kZWwKKyAgICAgKiBib3VuZHMgaGF2ZSBiZWVuIGNvbXB1dGVkLgorICAgICAqLworICAgIGpvaW5SZWZzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuam9pbk9iamVjdFJlZnNfKCk7CisgICAgfSwKKworICAgIGNyZWF0ZUFzeW5jU2xpY2VzXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5hbGxBc3luY0V2ZW50c18ubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuYWxsQXN5bmNFdmVudHNfLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICB2YXIgZCA9IHguZXZlbnQudHMgLSB5LmV2ZW50LnRzOworICAgICAgICBpZiAoZCAhPT0gMCkKKyAgICAgICAgICByZXR1cm4gZDsKKyAgICAgICAgcmV0dXJuIHguc2VxdWVuY2VOdW1iZXIgLSB5LnNlcXVlbmNlTnVtYmVyOworICAgICAgfSk7CisKKyAgICAgIHZhciBsZWdhY3lFdmVudHMgPSBbXTsKKyAgICAgIC8vIEdyb3VwIG5lc3RhYmxlIGFzeW5jIGV2ZW50cyBieSBJRC4gRXZlbnRzIHdpdGggdGhlIHNhbWUgSUQgc2hvdWxkCisgICAgICAvLyBiZWxvbmcgdG8gdGhlIHNhbWUgcGFyZW50IGFzeW5jIGV2ZW50LgorICAgICAgdmFyIG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleSA9IHt9OworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFsbEFzeW5jRXZlbnRzXy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgYXN5bmNFdmVudFN0YXRlID0gdGhpcy5hbGxBc3luY0V2ZW50c19baV07CisgICAgICAgIHZhciBldmVudCA9IGFzeW5jRXZlbnRTdGF0ZS5ldmVudDsKKyAgICAgICAgaWYgKGV2ZW50LnBoID09PSAnUycgfHwgZXZlbnQucGggPT09ICdGJyB8fCBldmVudC5waCA9PT0gJ1QnIHx8CisgICAgICAgICAgICBldmVudC5waCA9PT0gJ3AnKSB7CisgICAgICAgICAgbGVnYWN5RXZlbnRzLnB1c2goYXN5bmNFdmVudFN0YXRlKTsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXZlbnQuY2F0ID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICBtZXNzYWdlOiAnTmVzdGFibGUgYXN5bmMgZXZlbnRzIChwaDogYiwgZSwgb3IgbikgcmVxdWlyZSBhICcgKworICAgICAgICAgICAgICAgICdjYXQgcGFyYW1ldGVyLicKKyAgICAgICAgICB9KTsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudC5uYW1lID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICBtZXNzYWdlOiAnTmVzdGFibGUgYXN5bmMgZXZlbnRzIChwaDogYiwgZSwgb3IgbikgcmVxdWlyZSBhICcgKworICAgICAgICAgICAgICAgICduYW1lIHBhcmFtZXRlci4nCisgICAgICAgICAgfSk7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXZlbnQuaWQgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdOZXN0YWJsZSBhc3luYyBldmVudHMgKHBoOiBiLCBlLCBvciBuKSByZXF1aXJlIGFuICcgKworICAgICAgICAgICAgICAgICdpZCBwYXJhbWV0ZXIuJworICAgICAgICAgIH0pOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHZhciBrZXkgPSBldmVudC5jYXQgKyAnOicgKyBldmVudC5pZDsKKyAgICAgICAgaWYgKG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldID09PSB1bmRlZmluZWQpCisgICAgICAgICAgIG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldID0gW107CisgICAgICAgIG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldLnB1c2goYXN5bmNFdmVudFN0YXRlKTsKKyAgICAgIH0KKyAgICAgIC8vIEhhbmRsZSBsZWdhY3kgYXN5bmMgZXZlbnRzLgorICAgICAgdGhpcy5jcmVhdGVMZWdhY3lBc3luY1NsaWNlc18obGVnYWN5RXZlbnRzKTsKKworICAgICAgLy8gUGFyc2UgbmVzdGFibGUgYXN5bmMgZXZlbnRzIGludG8gQXN5bmNTbGljZXMuCisgICAgICBmb3IgKHZhciBrZXkgaW4gbmVzdGFibGVBc3luY0V2ZW50c0J5S2V5KSB7CisgICAgICAgIHZhciBldmVudFN0YXRlRW50cmllcyA9IG5lc3RhYmxlQXN5bmNFdmVudHNCeUtleVtrZXldOworICAgICAgICAvLyBTdGFjayBvZiBlbmNsb3NpbmcgQkVHSU4gZXZlbnRzLgorICAgICAgICB2YXIgcGFyZW50U3RhY2sgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudFN0YXRlRW50cmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgIHZhciBldmVudFN0YXRlRW50cnkgPSBldmVudFN0YXRlRW50cmllc1tpXTsKKyAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBlbmQgb2YgYW4gZXZlbnQsIG1hdGNoIGl0IHRvIHRoZSBzdGFydC4KKyAgICAgICAgICBpZiAoZXZlbnRTdGF0ZUVudHJ5LmV2ZW50LnBoID09PSAnZScpIHsKKyAgICAgICAgICAgIC8vIFdhbGsgdXAgdGhlIHBhcmVudCBzdGFjayB0byBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIEJFR0lOIGZvcgorICAgICAgICAgICAgLy8gdGhpcyBFTkQuCisgICAgICAgICAgICB2YXIgcGFyZW50SW5kZXggPSAtMTsKKyAgICAgICAgICAgIGZvciAodmFyIGsgPSBwYXJlbnRTdGFjay5sZW5ndGggLSAxOyBrID49IDA7IC0taykgeworICAgICAgICAgICAgICBpZiAocGFyZW50U3RhY2tba10uZXZlbnQubmFtZSA9PT0gZXZlbnRTdGF0ZUVudHJ5LmV2ZW50Lm5hbWUpIHsKKyAgICAgICAgICAgICAgICBwYXJlbnRJbmRleCA9IGs7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwYXJlbnRJbmRleCA9PT0gLTEpIHsKKyAgICAgICAgICAgICAgLy8gVW5tYXRjaGVkIGVuZC4KKyAgICAgICAgICAgICAgZXZlbnRTdGF0ZUVudHJ5LmZpbmlzaGVkID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBwYXJlbnRTdGFja1twYXJlbnRJbmRleF0uZW5kID0gZXZlbnRTdGF0ZUVudHJ5OworICAgICAgICAgICAgICAvLyBQb3Agb2ZmIGFsbCBlbmNsb3NpbmcgdW5tYXRjaGVkIEJFR0lOcyB1dGlsIHBhcmVudEluZGV4LgorICAgICAgICAgICAgICB3aGlsZSAocGFyZW50SW5kZXggPCBwYXJlbnRTdGFjay5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBwYXJlbnRTdGFjay5wb3AoKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICAvLyBJbmhlcml0IHRoZSBjdXJyZW50IHBhcmVudC4KKyAgICAgICAgICBpZiAocGFyZW50U3RhY2subGVuZ3RoID4gMCkKKyAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5wYXJlbnRFbnRyeSA9IHBhcmVudFN0YWNrW3BhcmVudFN0YWNrLmxlbmd0aCAtIDFdOworICAgICAgICAgIGlmIChldmVudFN0YXRlRW50cnkuZXZlbnQucGggPT09ICdiJykKKyAgICAgICAgICAgIHBhcmVudFN0YWNrLnB1c2goZXZlbnRTdGF0ZUVudHJ5KTsKKyAgICAgICAgfQorICAgICAgICB2YXIgdG9wTGV2ZWxTbGljZXMgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudFN0YXRlRW50cmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgIHZhciBldmVudFN0YXRlRW50cnkgPSBldmVudFN0YXRlRW50cmllc1tpXTsKKyAgICAgICAgICAvLyBTa2lwIG1hdGNoZWQgRU5ELCBhcyBpdHMgc2xpY2Ugd2lsbCBiZSBjcmVhdGVkIHdoZW4gd2UKKyAgICAgICAgICAvLyBlbmNvdW50ZXIgaXRzIGNvcnJlc3BvbmRpbmcgQkVHSU4uCisgICAgICAgICAgaWYgKGV2ZW50U3RhdGVFbnRyeS5ldmVudC5waCA9PT0gJ2UnICYmCisgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5maW5pc2hlZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgdmFyIHN0YXJ0U3RhdGUgPSB1bmRlZmluZWQ7CisgICAgICAgICAgdmFyIGVuZFN0YXRlID0gdW5kZWZpbmVkOworICAgICAgICAgIHZhciBzbGljZUFyZ3MgPSBldmVudFN0YXRlRW50cnkuZXZlbnQuYXJncyB8fCB7fTsKKyAgICAgICAgICB2YXIgc2xpY2VFcnJvciA9IHVuZGVmaW5lZDsKKyAgICAgICAgICBpZiAoZXZlbnRTdGF0ZUVudHJ5LmV2ZW50LnBoID09PSAnbicpIHsKKyAgICAgICAgICAgIHN0YXJ0U3RhdGUgPSBldmVudFN0YXRlRW50cnk7CisgICAgICAgICAgICBlbmRTdGF0ZSA9IGV2ZW50U3RhdGVFbnRyeTsKKyAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50U3RhdGVFbnRyeS5ldmVudC5waCA9PT0gJ2InKSB7CisgICAgICAgICAgICBpZiAoZXZlbnRTdGF0ZUVudHJ5LmVuZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgIC8vIFVubWF0Y2hlZCBCRUdJTi4gRW5kIGl0IHdoZW4gbGFzdCBldmVudCB3aXRoIHRoaXMgSUQgZW5kcy4KKyAgICAgICAgICAgICAgZXZlbnRTdGF0ZUVudHJ5LmVuZCA9CisgICAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cmllc1tldmVudFN0YXRlRW50cmllcy5sZW5ndGggLSAxXTsKKyAgICAgICAgICAgICAgc2xpY2VFcnJvciA9CisgICAgICAgICAgICAgICAgICAnU2xpY2UgaGFzIG5vIG1hdGNoaW5nIEVORC4gRW5kIHRpbWUgaGFzIGJlZW4gYWRqdXN0ZWQuJzsKKyAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiAnTmVzdGFibGUgYXN5bmMgQkVHSU4gZXZlbnQgYXQgJyArCisgICAgICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC50cyArICcgd2l0aCBuYW1lPScgKworICAgICAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQubmFtZSArCisgICAgICAgICAgICAgICAgICAgICcgYW5kIGlkPScgKyBldmVudFN0YXRlRW50cnkuZXZlbnQuaWQgKyAnIHdhcyB1bm1hdGNoZWQuJworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIC8vIEluY2x1ZGUgYXJncyBmb3IgYm90aCBFTkQgYW5kIEJFR0lOIGZvciBhIG1hdGNoZWQgcGFpci4KKyAgICAgICAgICAgICAgdmFyIGNvbmNhdGVuYXRlQXJndW1lbnRzID0gZnVuY3Rpb24oYXJnczEsIGFyZ3MyKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3MxLnBhcmFtcyA9PT0gdW5kZWZpbmVkIHx8IGFyZ3MyLnBhcmFtcyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyLmIuY29uY2F0ZW5hdGVPYmplY3RzKGFyZ3MxLCBhcmdzMik7CisgICAgICAgICAgICAgICAgLy8gTWFrZSBhbiBhcmd1bWVudCBvYmplY3QgdG8gaG9sZCB0aGUgY29tYmluZWQgcGFyYW1zLgorICAgICAgICAgICAgICAgIHZhciBhcmdzMyA9IHt9OworICAgICAgICAgICAgICAgIGFyZ3MzLnBhcmFtcyA9IHRyLmIuY29uY2F0ZW5hdGVPYmplY3RzKGFyZ3MxLnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzMi5wYXJhbXMpOworICAgICAgICAgICAgICAgIHJldHVybiB0ci5iLmNvbmNhdGVuYXRlT2JqZWN0cyhhcmdzMSwgYXJnczIsIGFyZ3MzKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB2YXIgZW5kQXJncyA9IGV2ZW50U3RhdGVFbnRyeS5lbmQuZXZlbnQuYXJncyB8fCB7fTsKKyAgICAgICAgICAgICAgc2xpY2VBcmdzID0gY29uY2F0ZW5hdGVBcmd1bWVudHMoc2xpY2VBcmdzLCBlbmRBcmdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0U3RhdGUgPSBldmVudFN0YXRlRW50cnk7CisgICAgICAgICAgICBlbmRTdGF0ZSA9IGV2ZW50U3RhdGVFbnRyeS5lbmQ7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFVubWF0Y2hlZCBFTkQuIFN0YXJ0IGl0IGF0IHRoZSBmaXJzdCBldmVudCB3aXRoIHRoaXMgSUQgc3RhcnRzLgorICAgICAgICAgICAgc2xpY2VFcnJvciA9CisgICAgICAgICAgICAgICAgJ1NsaWNlIGhhcyBubyBtYXRjaGluZyBCRUdJTi4gU3RhcnQgdGltZSBoYXMgYmVlbiBhZGp1c3RlZC4nOworICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdOZXN0YWJsZSBhc3luYyBFTkQgZXZlbnQgYXQgJyArCisgICAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQudHMgKyAnIHdpdGggbmFtZT0nICsKKyAgICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC5uYW1lICsKKyAgICAgICAgICAgICAgICAgICcgYW5kIGlkPScgKyBldmVudFN0YXRlRW50cnkuZXZlbnQuaWQgKyAnIHdhcyB1bm1hdGNoZWQuJworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBzdGFydFN0YXRlID0gZXZlbnRTdGF0ZUVudHJpZXNbMF07CisgICAgICAgICAgICBlbmRTdGF0ZSA9IGV2ZW50U3RhdGVFbnRyeTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgaXNUb3BMZXZlbCA9IChldmVudFN0YXRlRW50cnkucGFyZW50RW50cnkgPT09IHVuZGVmaW5lZCk7CisgICAgICAgICAgdmFyIGFzeW5jU2xpY2VDb25zdHJ1Y3RvciA9CisgICAgICAgICAgICAgdHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcigKKyAgICAgICAgICAgICAgICBldmVudFN0YXRlRW50cnkuZXZlbnQuY2F0LAorICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC5uYW1lKTsKKworICAgICAgICAgIHZhciB0aHJlYWRfc3RhcnQgPSB1bmRlZmluZWQ7CisgICAgICAgICAgdmFyIHRocmVhZF9kdXJhdGlvbiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICBpZiAoc3RhcnRTdGF0ZS5ldmVudC50dHMgJiYgc3RhcnRTdGF0ZS5ldmVudC51c2VfYXN5bmNfdHRzKSB7CisgICAgICAgICAgICB0aHJlYWRfc3RhcnQgPSB0aW1lc3RhbXBGcm9tVXMoc3RhcnRTdGF0ZS5ldmVudC50dHMpOworICAgICAgICAgICAgaWYgKGVuZFN0YXRlLmV2ZW50LnR0cykgeworICAgICAgICAgICAgICB2YXIgdGhyZWFkX2VuZCA9IHRpbWVzdGFtcEZyb21VcyhlbmRTdGF0ZS5ldmVudC50dHMpOworICAgICAgICAgICAgICB0aHJlYWRfZHVyYXRpb24gPSB0aHJlYWRfZW5kIC0gdGhyZWFkX3N0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIHZhciBzbGljZSA9IG5ldyBhc3luY1NsaWNlQ29uc3RydWN0b3IoCisgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC5jYXQsCisgICAgICAgICAgICAgIGV2ZW50U3RhdGVFbnRyeS5ldmVudC5uYW1lLAorICAgICAgICAgICAgICBnZXRFdmVudENvbG9yKGVuZFN0YXRlLmV2ZW50KSwKKyAgICAgICAgICAgICAgdGltZXN0YW1wRnJvbVVzKHN0YXJ0U3RhdGUuZXZlbnQudHMpLAorICAgICAgICAgICAgICBzbGljZUFyZ3MsCisgICAgICAgICAgICAgIHRpbWVzdGFtcEZyb21VcyhlbmRTdGF0ZS5ldmVudC50cyAtIHN0YXJ0U3RhdGUuZXZlbnQudHMpLAorICAgICAgICAgICAgICBpc1RvcExldmVsLAorICAgICAgICAgICAgICB0aHJlYWRfc3RhcnQsCisgICAgICAgICAgICAgIHRocmVhZF9kdXJhdGlvbiwKKyAgICAgICAgICAgICAgc3RhcnRTdGF0ZS5ldmVudC5hcmdzU3RyaXBwZWQpOworCisgICAgICAgICAgc2xpY2Uuc3RhcnRUaHJlYWQgPSBzdGFydFN0YXRlLnRocmVhZDsKKyAgICAgICAgICBzbGljZS5lbmRUaHJlYWQgPSBlbmRTdGF0ZS50aHJlYWQ7CisgICAgICAgICAgc2xpY2UuaWQgPSBrZXk7CisgICAgICAgICAgaWYgKHNsaWNlRXJyb3IgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHNsaWNlLmVycm9yID0gc2xpY2VFcnJvcjsKKyAgICAgICAgICBldmVudFN0YXRlRW50cnkuc2xpY2UgPSBzbGljZTsKKyAgICAgICAgICAvLyBBZGQgdGhlIHNsaWNlIHRvIHRoZSB0b3BMZXZlbFNsaWNlcyBhcnJheSBpZiB0aGVyZSBpcyBubyBwYXJlbnQuCisgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBhZGQgdGhlIHNsaWNlIHRvIHRoZSBzdWJTbGljZXMgb2YgaXRzIHBhcmVudC4KKyAgICAgICAgICBpZiAoaXNUb3BMZXZlbCkgeworICAgICAgICAgICAgdG9wTGV2ZWxTbGljZXMucHVzaChzbGljZSk7CisgICAgICAgICAgfSBlbHNlIGlmIChldmVudFN0YXRlRW50cnkucGFyZW50RW50cnkuc2xpY2UgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgZXZlbnRTdGF0ZUVudHJ5LnBhcmVudEVudHJ5LnNsaWNlLnN1YlNsaWNlcy5wdXNoKHNsaWNlKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgc2kgPSAwOyBzaSA8IHRvcExldmVsU2xpY2VzLmxlbmd0aDsgc2krKykgeworICAgICAgICAgIHRvcExldmVsU2xpY2VzW3NpXS5zdGFydFRocmVhZC5hc3luY1NsaWNlR3JvdXAucHVzaCgKKyAgICAgICAgICAgICAgdG9wTGV2ZWxTbGljZXNbc2ldKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBjcmVhdGVMZWdhY3lBc3luY1NsaWNlc186IGZ1bmN0aW9uKGxlZ2FjeUV2ZW50cykgeworICAgICAgaWYgKGxlZ2FjeUV2ZW50cy5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybjsKKworICAgICAgbGVnYWN5RXZlbnRzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICB2YXIgZCA9IHguZXZlbnQudHMgLSB5LmV2ZW50LnRzOworICAgICAgICBpZiAoZCAhPSAwKQorICAgICAgICAgIHJldHVybiBkOworICAgICAgICByZXR1cm4geC5zZXF1ZW5jZU51bWJlciAtIHkuc2VxdWVuY2VOdW1iZXI7CisgICAgICB9KTsKKworICAgICAgdmFyIGFzeW5jRXZlbnRTdGF0ZXNCeU5hbWVUaGVuSUQgPSB7fTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZWdhY3lFdmVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGFzeW5jRXZlbnRTdGF0ZSA9IGxlZ2FjeUV2ZW50c1tpXTsKKworICAgICAgICB2YXIgZXZlbnQgPSBhc3luY0V2ZW50U3RhdGUuZXZlbnQ7CisgICAgICAgIHZhciBuYW1lID0gZXZlbnQubmFtZTsKKyAgICAgICAgaWYgKG5hbWUgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdBc3luYyBldmVudHMgKHBoOiBTLCBULCBwLCBvciBGKSByZXF1aXJlIGEgbmFtZSAnICsKKyAgICAgICAgICAgICAgICAnIHBhcmFtZXRlci4nCisgICAgICAgICAgfSk7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgaWQgPSBldmVudC5pZDsKKyAgICAgICAgaWYgKGlkID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICBtZXNzYWdlOiAnQXN5bmMgZXZlbnRzIChwaDogUywgVCwgcCwgb3IgRikgcmVxdWlyZSBhbiBpZCBwYXJhbWV0ZXIuJworICAgICAgICAgIH0pOworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gVE9ETyhzaW1vbmphbSk6IEFkZCBhIHN5bmNocm9ub3VzIHRpY2sgb24gdGhlIGFwcHJvcHJpYXRlIHRocmVhZC4KKworICAgICAgICBpZiAoZXZlbnQucGggPT09ICdTJykgeworICAgICAgICAgIGlmIChhc3luY0V2ZW50U3RhdGVzQnlOYW1lVGhlbklEW25hbWVdID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICBhc3luY0V2ZW50U3RhdGVzQnlOYW1lVGhlbklEW25hbWVdID0ge307CisgICAgICAgICAgaWYgKGFzeW5jRXZlbnRTdGF0ZXNCeU5hbWVUaGVuSURbbmFtZV1baWRdKSB7CisgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgbWVzc2FnZTogJ0F0ICcgKyBldmVudC50cyArICcsIGEgc2xpY2Ugb2YgdGhlIHNhbWUgaWQgJyArIGlkICsKKyAgICAgICAgICAgICAgICAgICcgd2FzIGFscmFkeSBvcGVuLicKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfQorICAgICAgICAgIGFzeW5jRXZlbnRTdGF0ZXNCeU5hbWVUaGVuSURbbmFtZV1baWRdID0gW107CisgICAgICAgICAgYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF0ucHVzaChhc3luY0V2ZW50U3RhdGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGlmIChhc3luY0V2ZW50U3RhdGVzQnlOYW1lVGhlbklEW25hbWVdID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAnYXN5bmNfc2xpY2VfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICBtZXNzYWdlOiAnQXQgJyArIGV2ZW50LnRzICsgJywgbm8gc2xpY2UgbmFtZWQgJyArIG5hbWUgKworICAgICAgICAgICAgICAgICAgJyB3YXMgb3Blbi4nCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF0gPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBdCAnICsgZXZlbnQudHMgKyAnLCBubyBzbGljZSBuYW1lZCAnICsgbmFtZSArCisgICAgICAgICAgICAgICAgICAnIHdpdGggaWQ9JyArIGlkICsgJyB3YXMgb3Blbi4nCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAgICB2YXIgZXZlbnRzID0gYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF07CisgICAgICAgICAgZXZlbnRzLnB1c2goYXN5bmNFdmVudFN0YXRlKTsKKworICAgICAgICAgIGlmIChldmVudC5waCA9PT0gJ0YnKSB7CisgICAgICAgICAgICAvLyBDcmVhdGUgYSBzbGljZSBmcm9tIHN0YXJ0IHRvIGVuZC4KKyAgICAgICAgICAgIHZhciBhc3luY1NsaWNlQ29uc3RydWN0b3IgPQorICAgICAgICAgICAgICAgdHIubW9kZWwuQXN5bmNTbGljZS5nZXRDb25zdHJ1Y3RvcigKKyAgICAgICAgICAgICAgICAgIGV2ZW50c1swXS5ldmVudC5jYXQsCisgICAgICAgICAgICAgICAgICBuYW1lKTsKKyAgICAgICAgICAgIHZhciBzbGljZSA9IG5ldyBhc3luY1NsaWNlQ29uc3RydWN0b3IoCisgICAgICAgICAgICAgICAgZXZlbnRzWzBdLmV2ZW50LmNhdCwKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIGdldEV2ZW50Q29sb3IoZXZlbnRzWzBdLmV2ZW50KSwKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXBGcm9tVXMoZXZlbnRzWzBdLmV2ZW50LnRzKSwKKyAgICAgICAgICAgICAgICB0ci5iLmNvbmNhdGVuYXRlT2JqZWN0cyhldmVudHNbMF0uZXZlbnQuYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS5ldmVudC5hcmdzKSwKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMgLSBldmVudHNbMF0uZXZlbnQudHMpLAorICAgICAgICAgICAgICAgIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBldmVudHNbMF0uZXZlbnQuYXJnc1N0cmlwcGVkKTsKKyAgICAgICAgICAgIHNsaWNlLnN0YXJ0VGhyZWFkID0gZXZlbnRzWzBdLnRocmVhZDsKKyAgICAgICAgICAgIHNsaWNlLmVuZFRocmVhZCA9IGFzeW5jRXZlbnRTdGF0ZS50aHJlYWQ7CisgICAgICAgICAgICBzbGljZS5pZCA9IGlkOworCisgICAgICAgICAgICB2YXIgc3RlcFR5cGUgPSBldmVudHNbMV0uZXZlbnQucGg7CisgICAgICAgICAgICB2YXIgaXNWYWxpZCA9IHRydWU7CisKKyAgICAgICAgICAgIC8vIENyZWF0ZSBzdWJTbGljZXMgZm9yIGVhY2ggc3RlcC4gU2tpcCB0aGUgc3RhcnQgYW5kIGZpbmlzaCBldmVudHMsCisgICAgICAgICAgICAvLyB3aGljaCBhcmUgYWx3YXlzIGZpcnN0IGFuZCBsYXN0IHJlc3BlY3RpdmVseS4KKyAgICAgICAgICAgIGZvciAodmFyIGogPSAxOyBqIDwgZXZlbnRzLmxlbmd0aCAtIDE7ICsraikgeworICAgICAgICAgICAgICBpZiAoZXZlbnRzW2pdLmV2ZW50LnBoID09PSAnVCcgfHwgZXZlbnRzW2pdLmV2ZW50LnBoID09PSAncCcpIHsKKyAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdGhpcy5hc3NlcnRTdGVwVHlwZU1hdGNoZXNfKHN0ZXBUeXBlLCBldmVudHNbal0pOworICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZCkKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgaWYgKGV2ZW50c1tqXS5ldmVudC5waCA9PT0gJ1MnKSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgICAgICB0eXBlOiAnYXN5bmNfc2xpY2VfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0F0ICcgKyBldmVudC5ldmVudC50cyArICcsIGEgc2xpY2UgbmFtZWQgJyArCisgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuZXZlbnQubmFtZSArICcgd2l0aCBpZD0nICsgZXZlbnQuZXZlbnQuaWQgKworICAgICAgICAgICAgICAgICAgICAgICcgaGFkIGEgc3RlcCBiZWZvcmUgdGhlIHN0YXJ0IGV2ZW50LicKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGlmIChldmVudHNbal0uZXZlbnQucGggPT09ICdGJykgeworICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgICAgdHlwZTogJ2FzeW5jX3NsaWNlX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBdCAnICsgZXZlbnQuZXZlbnQudHMgKyAnLCBhIHNsaWNlIG5hbWVkICcgKworICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmV2ZW50Lm5hbWUgKyAnIHdpdGggaWQ9JyArIGV2ZW50LmV2ZW50LmlkICsKKyAgICAgICAgICAgICAgICAgICAgICAnIGhhZCBhIHN0ZXAgYWZ0ZXIgdGhlIGZpbmlzaCBldmVudC4nCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB2YXIgc3RhcnRJbmRleCA9IGogKyAoc3RlcFR5cGUgPT09ICdUJyA/IDAgOiAtMSk7CisgICAgICAgICAgICAgIHZhciBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyAxOworCisgICAgICAgICAgICAgIHZhciBzdWJOYW1lID0gZXZlbnRzW2pdLmV2ZW50Lm5hbWU7CisgICAgICAgICAgICAgIGlmICghZXZlbnRzW2pdLmV2ZW50LmFyZ3NTdHJpcHBlZCAmJgorICAgICAgICAgICAgICAgICAgKGV2ZW50c1tqXS5ldmVudC5waCA9PT0gJ1QnIHx8IGV2ZW50c1tqXS5ldmVudC5waCA9PT0gJ3AnKSkKKyAgICAgICAgICAgICAgICBzdWJOYW1lID0gc3ViTmFtZSArICc6JyArIGV2ZW50c1tqXS5ldmVudC5hcmdzLnN0ZXA7CisKKyAgICAgICAgICAgICAgdmFyIGFzeW5jU2xpY2VDb25zdHJ1Y3RvciA9CisgICAgICAgICAgICAgICAgIHRyLm1vZGVsLkFzeW5jU2xpY2UuZ2V0Q29uc3RydWN0b3IoCisgICAgICAgICAgICAgICAgICAgIGV2ZW50c1swXS5ldmVudC5jYXQsCisgICAgICAgICAgICAgICAgICAgIHN1Yk5hbWUpOworICAgICAgICAgICAgICB2YXIgc3ViU2xpY2UgPSBuZXcgYXN5bmNTbGljZUNvbnN0cnVjdG9yKAorICAgICAgICAgICAgICAgICAgZXZlbnRzWzBdLmV2ZW50LmNhdCwKKyAgICAgICAgICAgICAgICAgIHN1Yk5hbWUsCisgICAgICAgICAgICAgICAgICBnZXRFdmVudENvbG9yKGV2ZW50LCBzdWJOYW1lICsgaiksCisgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBGcm9tVXMoZXZlbnRzW3N0YXJ0SW5kZXhdLmV2ZW50LnRzKSwKKyAgICAgICAgICAgICAgICAgIHRoaXMuZGVlcENvcHlJZk5lZWRlZF8oZXZlbnRzW2pdLmV2ZW50LmFyZ3MpLAorICAgICAgICAgICAgICAgICAgdGltZXN0YW1wRnJvbVVzKAorICAgICAgICAgICAgICAgICAgICBldmVudHNbZW5kSW5kZXhdLmV2ZW50LnRzIC0gZXZlbnRzW3N0YXJ0SW5kZXhdLmV2ZW50LnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICBldmVudHNbc3RhcnRJbmRleF0uZXZlbnQuYXJnc1N0cmlwcGVkKTsKKyAgICAgICAgICAgICAgc3ViU2xpY2Uuc3RhcnRUaHJlYWQgPSBldmVudHNbc3RhcnRJbmRleF0udGhyZWFkOworICAgICAgICAgICAgICBzdWJTbGljZS5lbmRUaHJlYWQgPSBldmVudHNbZW5kSW5kZXhdLnRocmVhZDsKKyAgICAgICAgICAgICAgc3ViU2xpY2UuaWQgPSBpZDsKKworICAgICAgICAgICAgICBzbGljZS5zdWJTbGljZXMucHVzaChzdWJTbGljZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7CisgICAgICAgICAgICAgIC8vIEFkZCB8c2xpY2V8IHRvIHRoZSBzdGFydC10aHJlYWQncyBhc3luY1NsaWNlcy4KKyAgICAgICAgICAgICAgc2xpY2Uuc3RhcnRUaHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goc2xpY2UpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWxldGUgYXN5bmNFdmVudFN0YXRlc0J5TmFtZVRoZW5JRFtuYW1lXVtpZF07CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfSwKKworICAgIGFzc2VydFN0ZXBUeXBlTWF0Y2hlc186IGZ1bmN0aW9uKHN0ZXBUeXBlLCBldmVudCkgeworICAgICAgaWYgKHN0ZXBUeXBlICE9IGV2ZW50LmV2ZW50LnBoKSB7CisgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgIHR5cGU6ICdhc3luY19zbGljZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgbWVzc2FnZTogJ0F0ICcgKyBldmVudC5ldmVudC50cyArICcsIGEgc2xpY2UgbmFtZWQgJyArCisgICAgICAgICAgICAgIGV2ZW50LmV2ZW50Lm5hbWUgKyAnIHdpdGggaWQ9JyArIGV2ZW50LmV2ZW50LmlkICsKKyAgICAgICAgICAgICAgJyBoYWQgYm90aCBiZWdpbiBhbmQgZW5kIHN0ZXBzLCB3aGljaCBpcyBub3QgYWxsb3dlZC4nCisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgY3JlYXRlRmxvd1NsaWNlc186IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuYWxsRmxvd0V2ZW50c18ubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciB0aGF0ID0gdGhpczsKKworICAgICAgZnVuY3Rpb24gdmFsaWRhdGVGbG93RXZlbnQoKSB7CisgICAgICAgIGlmIChldmVudC5uYW1lID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB0aGF0Lm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdmbG93X3NsaWNlX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdGbG93IGV2ZW50cyAocGg6IHMsIHQgb3IgZikgcmVxdWlyZSBhIG5hbWUgcGFyYW1ldGVyLicKKyAgICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXZlbnQuaWQgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHRoYXQubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ2Zsb3dfc2xpY2VfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ0Zsb3cgZXZlbnRzIChwaDogcywgdCBvciBmKSByZXF1aXJlIGFuIGlkIHBhcmFtZXRlci4nCisgICAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBjcmVhdGVGbG93RXZlbnQodGhyZWFkLCBldmVudCwgcmVmR3VpZCkgeworICAgICAgICB2YXIgdHMgPSB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpOworICAgICAgICB2YXIgc3RhcnRTbGljZSA9IHRocmVhZC5zbGljZUdyb3VwLmZpbmRTbGljZUF0VHModHMpOworICAgICAgICBpZiAoc3RhcnRTbGljZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgICAgdmFyIGZsb3dFdmVudCA9IG5ldyB0ci5tb2RlbC5GbG93RXZlbnQoCisgICAgICAgICAgICBldmVudC5jYXQsCisgICAgICAgICAgICBldmVudC5pZCwKKyAgICAgICAgICAgIGV2ZW50Lm5hbWUsCisgICAgICAgICAgICBnZXRFdmVudENvbG9yKGV2ZW50KSwKKyAgICAgICAgICAgIHRpbWVzdGFtcEZyb21VcyhldmVudC50cyksCisgICAgICAgICAgICB0aGF0LmRlZXBDb3B5SWZOZWVkZWRfKGV2ZW50LmFyZ3MpKTsKKyAgICAgICAgZmxvd0V2ZW50LnN0YXJ0U2xpY2UgPSBzdGFydFNsaWNlOworICAgICAgICBzdGFydFNsaWNlLm91dEZsb3dFdmVudHMucHVzaChmbG93RXZlbnQpOworICAgICAgICByZXR1cm4gZmxvd0V2ZW50OworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBmaW5pc2hGbG93RXZlbnRXaXRoKGZsb3dFdmVudCwgdGhyZWFkLCBldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmR3VpZCwgYmluZFRvUGFyZW50KSB7CisgICAgICAgIC8vIFRPRE8obmR1Y2EpOiBGaWd1cmUgb3V0IGVuZFNsaWNlIGZyb20gdHMgYW5kIGJpbmRpbmcgcG9pbnQuCisgICAgICAgIHZhciBlbmRTbGljZTsKKyAgICAgICAgdmFyIHRzID0gdGltZXN0YW1wRnJvbVVzKGV2ZW50LnRzKTsKKyAgICAgICAgaWYgKGJpbmRUb1BhcmVudCkgeworICAgICAgICAgIGVuZFNsaWNlID0gdGhyZWFkLnNsaWNlR3JvdXAuZmluZFNsaWNlQXRUcyh0cyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgZW5kU2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5maW5kTmV4dFNsaWNlQWZ0ZXIodHMsIHJlZkd1aWQpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmRTbGljZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZW5kU2xpY2UuaW5GbG93RXZlbnRzLnB1c2goZmxvd0V2ZW50KTsKKworICAgICAgICAvLyBNb2RpZnkgdGhlIGZsb3dFdmVudCB3aXRoIHRoZSBuZXcgZGF0YS4KKyAgICAgICAgZmxvd0V2ZW50LmVuZFNsaWNlID0gZW5kU2xpY2U7CisgICAgICAgIGZsb3dFdmVudC5kdXJhdGlvbiA9IHRzIC0gZmxvd0V2ZW50LnN0YXJ0OworICAgICAgICB0aGF0Lm1lcmdlQXJnc0ludG9fKGZsb3dFdmVudC5hcmdzLCBldmVudC5hcmdzLCBmbG93RXZlbnQudGl0bGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKworICAgICAgLy8gQWN0dWFsIGltcG9ydC4KKyAgICAgIHRoaXMuYWxsRmxvd0V2ZW50c18uc29ydChmdW5jdGlvbih4LCB5KSB7CisgICAgICAgIHZhciBkID0geC5ldmVudC50cyAtIHkuZXZlbnQudHM7CisgICAgICAgIGlmIChkICE9IDApCisgICAgICAgICAgcmV0dXJuIGQ7CisgICAgICAgIHJldHVybiB4LnNlcXVlbmNlTnVtYmVyIC0geS5zZXF1ZW5jZU51bWJlcjsKKyAgICAgIH0pOworCisgICAgICB2YXIgZmxvd0lkVG9FdmVudCA9IHt9OworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFsbEZsb3dFdmVudHNfLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBkYXRhID0gdGhpcy5hbGxGbG93RXZlbnRzX1tpXTsKKyAgICAgICAgdmFyIHJlZkd1aWQgPSBkYXRhLnJlZkd1aWQ7CisgICAgICAgIHZhciBldmVudCA9IGRhdGEuZXZlbnQ7CisgICAgICAgIHZhciB0aHJlYWQgPSBkYXRhLnRocmVhZDsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZUZsb3dFdmVudChldmVudCkpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmFyIGZsb3dFdmVudDsKKyAgICAgICAgaWYgKGV2ZW50LnBoID09PSAncycpIHsKKyAgICAgICAgICBpZiAoZmxvd0lkVG9FdmVudFtldmVudC5pZF0pIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAnZmxvd19zbGljZV9zdGFydF9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdldmVudCBpZCAnICsgZXZlbnQuaWQgKyAnIGFscmVhZHkgc2VlbiB3aGVuICcgKworICAgICAgICAgICAgICAgICAgJ2VuY291bnRlcmluZyBzdGFydCBvZiBmbG93IGV2ZW50Lid9KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAgICBmbG93RXZlbnQgPSBjcmVhdGVGbG93RXZlbnQodGhyZWFkLCBldmVudCwgcmVmR3VpZCk7CisgICAgICAgICAgaWYgKCFmbG93RXZlbnQpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAnZmxvd19zbGljZV9zdGFydF9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdldmVudCBpZCAnICsgZXZlbnQuaWQgKyAnIGRvZXMgbm90IHN0YXJ0ICcgKworICAgICAgICAgICAgICAgICAgJ2F0IGFuIGFjdHVhbCBzbGljZSwgc28gY2Fubm90IGJlIGNyZWF0ZWQuJ30pOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfQorICAgICAgICAgIGZsb3dJZFRvRXZlbnRbZXZlbnQuaWRdID0gZmxvd0V2ZW50OworCisgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT09ICd0JyB8fCBldmVudC5waCA9PT0gJ2YnKSB7CisgICAgICAgICAgZmxvd0V2ZW50ID0gZmxvd0lkVG9FdmVudFtldmVudC5pZF07CisgICAgICAgICAgaWYgKGZsb3dFdmVudCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgICAgdHlwZTogJ2Zsb3dfc2xpY2Vfb3JkZXJpbmdfZXJyb3InLAorICAgICAgICAgICAgICBtZXNzYWdlOiAnRm91bmQgZmxvdyBwaGFzZSAnICsgZXZlbnQucGggKyAnIGZvciBpZDogJyArIGV2ZW50LmlkICsKKyAgICAgICAgICAgICAgICAgICcgYnV0IG5vIGZsb3cgc3RhcnQgZm91bmQuJworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgYmluZFRvUGFyZW50ID0gZXZlbnQucGggPT09ICd0JzsKKworICAgICAgICAgIGlmIChldmVudC5waCA9PT0gJ2YnKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQuYnAgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAvLyBIYWNrOiBpbnB1dCBsYXRlbmN5IGZsb3cgZXZlbnRzIHVzZWQgdG8gYmUgaXNzdWVkCisgICAgICAgICAgICAgIC8vIHdpdGhvdXQgYnA9J2UnIGxldHRlciBpbiBvbGQgdHJhY2VzLiBCdXQsIHdlIHN0aWxsIHdhbnQgdGhlaXIKKyAgICAgICAgICAgICAgLy8gZmxvdyBldmVudHMgdG8gcGFyc2UgInByb3Blcmx5LiIgVGhpcyBhZGp1c3RzIHRoZWlyIGJpbmRpbmcKKyAgICAgICAgICAgICAgLy8gcG9pbnQgc28gdGhhdCB0aGV5IHBhcnNlLgorICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAvLyBUT0RPKG5kdWNhKTogUmVtb3ZhbCBvZiB0aGlzIGhhY2sgaXMgdHJhY2tlZCBpbgorICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci9pc3N1ZXMvOTkxLgorICAgICAgICAgICAgICBpZiAoZXZlbnQuY2F0LmluZGV4T2YoJ2lucHV0JykgPiAtMSkKKyAgICAgICAgICAgICAgICBiaW5kVG9QYXJlbnQgPSB0cnVlOworICAgICAgICAgICAgICAvLyBIYWNrOiBpcGMgZmxvdyBldmVudHMgdXNlZCB0byBiZSBpc3N1ZWQKKyAgICAgICAgICAgICAgLy8gd2l0aG91dCBicD0nZScgbGV0dGVyIGluIG9sZCB0cmFjZXMuIEJ1dCwgd2Ugc3RpbGwgd2FudCB0aGVpcgorICAgICAgICAgICAgICAvLyBmbG93IGV2ZW50cyB0byBwYXJzZSAicHJvcGVybHkuIiBUaGlzIGFkanVzdHMgdGhlaXIgYmluZGluZworICAgICAgICAgICAgICAvLyBwb2ludCBzbyB0aGF0IHRoZXkgcGFyc2UuCisgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgIC8vIFRPRE86IFJlbW92YWwgb2YgdGhpcyBoYWNrIGlzIHRyYWNrZWQgaW4KKyAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS90cmFjZS12aWV3ZXIvaXNzdWVzLzk5MS4KKyAgICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQuY2F0LmluZGV4T2YoJ2lwYy5mbG93JykgPiAtMSkKKyAgICAgICAgICAgICAgICBiaW5kVG9QYXJlbnQgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgaWYgKGV2ZW50LmJwICE9PSAnZScpIHsKKyAgICAgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgICAgICAgdHlwZTogJ2Zsb3dfc2xpY2VfYmluZF9wb2ludF9lcnJvcicsCisgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdGbG93IGV2ZW50IHdpdGggaW52YWxpZCBiaW5kaW5nIHBvaW50IChldmVudC5icCkuJworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJpbmRUb1BhcmVudCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgdmFyIG9rID0gZmluaXNoRmxvd0V2ZW50V2l0aChmbG93RXZlbnQsIHRocmVhZCwgZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZHdWlkLCBiaW5kVG9QYXJlbnQpOworICAgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgdGhhdC5tb2RlbF8uZmxvd0V2ZW50cy5wdXNoKGZsb3dFdmVudCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAnZmxvd19zbGljZV9zdGFydF9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdldmVudCBpZCAnICsgZXZlbnQuaWQgKyAnIGRvZXMgbm90IGVuZCAnICsKKyAgICAgICAgICAgICAgICAgICdhdCBhbiBhY3R1YWwgc2xpY2UsIHNvIGNhbm5vdCBiZSBjcmVhdGVkLid9KTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBmbG93SWRUb0V2ZW50W2V2ZW50LmlkXSA9IHVuZGVmaW5lZDsKKworICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBzdGVwLCB0aGVuIGNyZWF0ZSBhbm90aGVyIGZsb3cgZXZlbnQuCisgICAgICAgICAgaWYgKG9rICYmIGV2ZW50LnBoID09PSAndCcpIHsKKyAgICAgICAgICAgIGZsb3dFdmVudCA9IGNyZWF0ZUZsb3dFdmVudCh0aHJlYWQsIGV2ZW50KTsKKyAgICAgICAgICAgIGZsb3dJZFRvRXZlbnRbZXZlbnQuaWRdID0gZmxvd0V2ZW50OworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgb2JqZWN0cyBkZXNjcmliZWQgdmlhIHRoZSBOLCBELCBhbmQgTyBwaGFzZQorICAgICAqIGV2ZW50cy4KKyAgICAgKi8KKyAgICBjcmVhdGVFeHBsaWNpdE9iamVjdHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmFsbE9iamVjdEV2ZW50c18ubGVuZ3RoID09IDApCisgICAgICAgIHJldHVybjsKKworICAgICAgZnVuY3Rpb24gcHJvY2Vzc0V2ZW50KG9iamVjdEV2ZW50U3RhdGUpIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gb2JqZWN0RXZlbnRTdGF0ZS5ldmVudDsKKyAgICAgICAgdmFyIHRocmVhZCA9IG9iamVjdEV2ZW50U3RhdGUudGhyZWFkOworICAgICAgICBpZiAoZXZlbnQubmFtZSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nICcgKyBKU09OLnN0cmluZ2lmeShldmVudCkgKyAnOiAnICsKKyAgICAgICAgICAgICAgICAnT2JqZWN0IGV2ZW50cyByZXF1aXJlIGFuIG5hbWUgcGFyYW1ldGVyLicKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudC5pZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nICcgKyBKU09OLnN0cmluZ2lmeShldmVudCkgKyAnOiAnICsKKyAgICAgICAgICAgICAgICAnT2JqZWN0IGV2ZW50cyByZXF1aXJlIGFuIGlkIHBhcmFtZXRlci4nCisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHByb2Nlc3MgPSB0aHJlYWQucGFyZW50OworICAgICAgICB2YXIgdHMgPSB0aW1lc3RhbXBGcm9tVXMoZXZlbnQudHMpOworICAgICAgICB2YXIgaW5zdGFuY2U7CisgICAgICAgIGlmIChldmVudC5waCA9PSAnTicpIHsKKyAgICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5zdGFuY2UgPSBwcm9jZXNzLm9iamVjdHMuaWRXYXNDcmVhdGVkKAorICAgICAgICAgICAgICAgIGV2ZW50LmlkLCBldmVudC5jYXQsIGV2ZW50Lm5hbWUsIHRzKTsKKyAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgICAgdHlwZTogJ29iamVjdF9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nIGNyZWF0ZSBvZiAnICsKKyAgICAgICAgICAgICAgICAgIGV2ZW50LmlkICsgJyBhdCB0cz0nICsgdHMgKyAnOiAnICsgZQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBoID09ICdPJykgeworICAgICAgICAgIGlmIChldmVudC5hcmdzLnNuYXBzaG90ID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgbWVzc2FnZTogJ1doaWxlIHByb2Nlc3NpbmcgJyArIGV2ZW50LmlkICsgJyBhdCB0cz0nICsgdHMgKyAnOiAnICsKKyAgICAgICAgICAgICAgICAgICdTbmFwc2hvdHMgbXVzdCBoYXZlIGFyZ3M6IHtzbmFwc2hvdDogLi4ufScKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgICB2YXIgc25hcHNob3Q7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHZhciBhcmdzID0gdGhpcy5kZWVwQ29weUlmTmVlZGVkXyhldmVudC5hcmdzLnNuYXBzaG90KTsKKyAgICAgICAgICAgIHZhciBjYXQ7CisgICAgICAgICAgICBpZiAoYXJncy5jYXQpIHsKKyAgICAgICAgICAgICAgY2F0ID0gYXJncy5jYXQ7CisgICAgICAgICAgICAgIGRlbGV0ZSBhcmdzLmNhdDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGNhdCA9IGV2ZW50LmNhdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIGJhc2VUeXBlbmFtZTsKKyAgICAgICAgICAgIGlmIChhcmdzLmJhc2VfdHlwZSkgeworICAgICAgICAgICAgICBiYXNlVHlwZW5hbWUgPSBhcmdzLmJhc2VfdHlwZTsKKyAgICAgICAgICAgICAgZGVsZXRlIGFyZ3MuYmFzZV90eXBlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgYmFzZVR5cGVuYW1lID0gdW5kZWZpbmVkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc25hcHNob3QgPSBwcm9jZXNzLm9iamVjdHMuYWRkU25hcHNob3QoCisgICAgICAgICAgICAgICAgZXZlbnQuaWQsIGNhdCwgZXZlbnQubmFtZSwgdHMsCisgICAgICAgICAgICAgICAgYXJncywgYmFzZVR5cGVuYW1lKTsKKyAgICAgICAgICAgIHNuYXBzaG90LnNuYXBzaG90dGVkT25UaHJlYWQgPSB0aHJlYWQ7CisgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3RfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICBtZXNzYWdlOiAnV2hpbGUgcHJvY2Vzc2luZyBzbmFwc2hvdCBvZiAnICsKKyAgICAgICAgICAgICAgICAgIGV2ZW50LmlkICsgJyBhdCB0cz0nICsgdHMgKyAnOiAnICsgZQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIGluc3RhbmNlID0gc25hcHNob3Qub2JqZWN0SW5zdGFuY2U7CisgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucGggPT0gJ0QnKSB7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHByb2Nlc3Mub2JqZWN0cy5pZFdhc0RlbGV0ZWQoZXZlbnQuaWQsIGV2ZW50LmNhdCwgZXZlbnQubmFtZSwgdHMpOworICAgICAgICAgICAgdmFyIGluc3RhbmNlTWFwID0gcHJvY2Vzcy5vYmplY3RzLmdldE9yQ3JlYXRlSW5zdGFuY2VNYXBfKGV2ZW50LmlkKTsKKyAgICAgICAgICAgIGluc3RhbmNlID0gaW5zdGFuY2VNYXAubGFzdEluc3RhbmNlOworICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgbWVzc2FnZTogJ1doaWxlIHByb2Nlc3NpbmcgZGVsZXRlIG9mICcgKworICAgICAgICAgICAgICAgICAgZXZlbnQuaWQgKyAnIGF0IHRzPScgKyB0cyArICc6ICcgKyBlCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgICAgaW5zdGFuY2UuY29sb3JJZCA9IGdldEV2ZW50Q29sb3IoZXZlbnQsIGluc3RhbmNlLnR5cGVOYW1lKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5hbGxPYmplY3RFdmVudHNfLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICB2YXIgZCA9IHguZXZlbnQudHMgLSB5LmV2ZW50LnRzOworICAgICAgICBpZiAoZCAhPSAwKQorICAgICAgICAgIHJldHVybiBkOworICAgICAgICByZXR1cm4geC5zZXF1ZW5jZU51bWJlciAtIHkuc2VxdWVuY2VOdW1iZXI7CisgICAgICB9KTsKKworICAgICAgdmFyIGFsbE9iamVjdEV2ZW50cyA9IHRoaXMuYWxsT2JqZWN0RXZlbnRzXzsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsT2JqZWN0RXZlbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBvYmplY3RFdmVudFN0YXRlID0gYWxsT2JqZWN0RXZlbnRzW2ldOworICAgICAgICB0cnkgeworICAgICAgICAgIHByb2Nlc3NFdmVudC5jYWxsKHRoaXMsIG9iamVjdEV2ZW50U3RhdGUpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZQorICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICB9CisgICAgfSwKKworICAgIGNyZWF0ZUltcGxpY2l0T2JqZWN0c186IGZ1bmN0aW9uKCkgeworICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5tb2RlbF8ucHJvY2Vzc2VzLCBmdW5jdGlvbihwaWQsIHByb2Nlc3MpIHsKKyAgICAgICAgdGhpcy5jcmVhdGVJbXBsaWNpdE9iamVjdHNGb3JQcm9jZXNzXyhwcm9jZXNzKTsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICAvLyBIZXJlLCB3ZSBjb2xsZWN0IGFsbCB0aGUgc25hcHNob3RzIHRoYXQgaW50ZXJuYWxseSBjb250YWluIGEKKyAgICAvLyBKYXZhc2NyaXB0LWxldmVsIG9iamVjdCBpbnNpZGUgdGhlaXIgYXJncyBsaXN0IHRoYXQgaGFzIGFuICJpZCIgZmllbGQsCisgICAgLy8gYW5kIHR1cm4gdGhhdCBpbnRvIGEgc25hcHNob3Qgb2YgdGhlIGluc3RhbmNlIHJlZmVycmVkIHRvIGJ5IGlkLgorICAgIGNyZWF0ZUltcGxpY2l0T2JqZWN0c0ZvclByb2Nlc3NfOiBmdW5jdGlvbihwcm9jZXNzKSB7CisKKyAgICAgIGZ1bmN0aW9uIHByb2Nlc3NGaWVsZChyZWZlcmVuY2luZ09iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2luZ09iamVjdEZpZWxkTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2luZ09iamVjdEZpZWxkVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmluZ1NuYXBzaG90KSB7CisgICAgICAgIGlmICghcmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAocmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlIGluc3RhbmNlb2YKKyAgICAgICAgICAgIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KQorICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBpZiAocmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlLmlkID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBpbXBsaWNpdFNuYXBzaG90ID0gcmVmZXJlbmNpbmdPYmplY3RGaWVsZFZhbHVlOworCisgICAgICAgIHZhciByYXdJZCA9IGltcGxpY2l0U25hcHNob3QuaWQ7CisgICAgICAgIHZhciBtID0gLyguKylcLyguKykvLmV4ZWMocmF3SWQpOworICAgICAgICBpZiAoIW0pCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbXBsaWNpdCBzbmFwc2hvdHMgbXVzdCBoYXZlIG5hbWVzLicpOworICAgICAgICBkZWxldGUgaW1wbGljaXRTbmFwc2hvdC5pZDsKKyAgICAgICAgdmFyIG5hbWUgPSBtWzFdOworICAgICAgICB2YXIgaWQgPSBtWzJdOworICAgICAgICB2YXIgcmVzOworCisgICAgICAgIHZhciBjYXQ7CisgICAgICAgIGlmIChpbXBsaWNpdFNuYXBzaG90LmNhdCAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgIGNhdCA9IGltcGxpY2l0U25hcHNob3QuY2F0OworICAgICAgICBlbHNlCisgICAgICAgICAgY2F0ID0gY29udGFpbmluZ1NuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNhdGVnb3J5OworCisgICAgICAgIHZhciBiYXNlVHlwZW5hbWU7CisgICAgICAgIGlmIChpbXBsaWNpdFNuYXBzaG90LmJhc2VfdHlwZSkKKyAgICAgICAgICBiYXNlVHlwZW5hbWUgPSBpbXBsaWNpdFNuYXBzaG90LmJhc2VfdHlwZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIGJhc2VUeXBlbmFtZSA9IHVuZGVmaW5lZDsKKworICAgICAgICB0cnkgeworICAgICAgICAgIHJlcyA9IHByb2Nlc3Mub2JqZWN0cy5hZGRTbmFwc2hvdCgKKyAgICAgICAgICAgICAgaWQsIGNhdCwKKyAgICAgICAgICAgICAgbmFtZSwgY29udGFpbmluZ1NuYXBzaG90LnRzLAorICAgICAgICAgICAgICBpbXBsaWNpdFNuYXBzaG90LCBiYXNlVHlwZW5hbWUpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnb2JqZWN0X3NuYXBzaG90X3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdXaGlsZSBwcm9jZXNzaW5nIGltcGxpY2l0IHNuYXBzaG90IG9mICcgKworICAgICAgICAgICAgICAgIHJhd0lkICsgJyBhdCB0cz0nICsgY29udGFpbmluZ1NuYXBzaG90LnRzICsgJzogJyArIGUKKyAgICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgcmVzLm9iamVjdEluc3RhbmNlLmhhc0ltcGxpY2l0U25hcHNob3RzID0gdHJ1ZTsKKyAgICAgICAgcmVzLmNvbnRhaW5pbmdTbmFwc2hvdCA9IGNvbnRhaW5pbmdTbmFwc2hvdDsKKyAgICAgICAgcmVzLnNuYXBzaG90dGVkT25UaHJlYWQgPSBjb250YWluaW5nU25hcHNob3Quc25hcHNob3R0ZWRPblRocmVhZDsKKyAgICAgICAgcmVmZXJlbmNpbmdPYmplY3RbcmVmZXJlbmNpbmdPYmplY3RGaWVsZE5hbWVdID0gcmVzOworICAgICAgICBpZiAoIShyZXMgaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCkpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDcmVhdGVkIG9iamVjdCBtdXN0IGJlIGluc3RhbmNlb2Ygc25hcHNob3QnKTsKKyAgICAgICAgcmV0dXJuIHJlcy5hcmdzOworICAgICAgfQorCisgICAgICAvKioKKyAgICAgICAqIEl0ZXJhdGVzIG92ZXIgdGhlIGZpZWxkcyBpbiB0aGUgb2JqZWN0LCBjYWxsaW5nIGZ1bmMgZm9yIGV2ZXJ5CisgICAgICAgKiBmaWVsZC92YWx1ZSBmb3VuZC4KKyAgICAgICAqCisgICAgICAgKiBAcmV0dXJuIHtvYmplY3R9IElmIHRoZSBmdW5jdGlvbiBkb2VzIG5vdCB3YW50IHRoZSBmaWVsZCdzIHZhbHVlIHRvIGJlCisgICAgICAgKiBpdGVyYXRlZCwgcmV0dXJuIG51bGwuIElmIGl0ZXJhdGlvbiBvZiB0aGUgZmllbGQgdmFsdWUgaXMgZGVzaXJlZCwgdGhlbgorICAgICAgICogcmV0dXJuIGVpdGhlciB1bmRlZmluZWQgKGlmIHRoZSBmaWVsZCB2YWx1ZSBkaWQgbm90IGNoYW5nZSkgb3IgdGhlIG5ldworICAgICAgICogZmllbGQgdmFsdWUgaWYgaXQgd2FzIGNoYW5nZWQuCisgICAgICAgKi8KKyAgICAgIGZ1bmN0aW9uIGl0ZXJPYmplY3Qob2JqZWN0LCBmdW5jLCBjb250YWluaW5nU25hcHNob3QsIHRoaXNBcmcpIHsKKyAgICAgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciByZXMgPSBmdW5jLmNhbGwodGhpc0FyZywgb2JqZWN0LCBpLCBvYmplY3RbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5pbmdTbmFwc2hvdCk7CisgICAgICAgICAgICBpZiAocmVzID09PSBudWxsKQorICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChyZXMpCisgICAgICAgICAgICAgIGl0ZXJPYmplY3QocmVzLCBmdW5jLCBjb250YWluaW5nU25hcHNob3QsIHRoaXNBcmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBpdGVyT2JqZWN0KG9iamVjdFtpXSwgZnVuYywgY29udGFpbmluZ1NuYXBzaG90LCB0aGlzQXJnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkgeworICAgICAgICAgIHZhciByZXMgPSBmdW5jLmNhbGwodGhpc0FyZywgb2JqZWN0LCBrZXksIG9iamVjdFtrZXldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmluZ1NuYXBzaG90KTsKKyAgICAgICAgICBpZiAocmVzID09PSBudWxsKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgaWYgKHJlcykKKyAgICAgICAgICAgIGl0ZXJPYmplY3QocmVzLCBmdW5jLCBjb250YWluaW5nU25hcHNob3QsIHRoaXNBcmcpOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGl0ZXJPYmplY3Qob2JqZWN0W2tleV0sIGZ1bmMsIGNvbnRhaW5pbmdTbmFwc2hvdCwgdGhpc0FyZyk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gVE9ETyhuZHVjYSk6IFdlIG1heSBuZWVkIHRvIGl0ZXJhdGUgdGhlIGluc3RhbmNlcyBpbiBzb3J0ZWQgb3JkZXIgYnkKKyAgICAgIC8vIGNyZWF0aW9uVHMuCisgICAgICBwcm9jZXNzLm9iamVjdHMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSkgeworICAgICAgICBpbnN0YW5jZS5zbmFwc2hvdHMuZm9yRWFjaChmdW5jdGlvbihzbmFwc2hvdCkgeworICAgICAgICAgIGlmIChzbmFwc2hvdC5hcmdzLmlkICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FyZ3MgY2Fubm90IGhhdmUgYW4gaWQgZmllbGQgaW5zaWRlIGl0Jyk7CisgICAgICAgICAgaXRlck9iamVjdChzbmFwc2hvdC5hcmdzLCBwcm9jZXNzRmllbGQsIHNuYXBzaG90LCB0aGlzKTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgY3JlYXRlTWVtb3J5RHVtcHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMuYWxsTWVtb3J5RHVtcEV2ZW50c18sIGZ1bmN0aW9uKGlkLCBldmVudHMpIHsKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSByYW5nZSBvZiB0aGUgZ2xvYmFsIG1lbW9yeSBkdW1wLgorICAgICAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOworICAgICAgICBpZiAoZXZlbnRzLmdsb2JhbCAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJhbmdlLmFkZFZhbHVlKHRpbWVzdGFtcEZyb21VcyhldmVudHMuZ2xvYmFsLnRzKSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLnByb2Nlc3MubGVuZ3RoOyBpKyspCisgICAgICAgICAgcmFuZ2UuYWRkVmFsdWUodGltZXN0YW1wRnJvbVVzKGV2ZW50cy5wcm9jZXNzW2ldLnRzKSk7CisKKyAgICAgICAgLy8gQ3JlYXRlIHRoZSBnbG9iYWwgbWVtb3J5IGR1bXAuCisgICAgICAgIHZhciBnbG9iYWxNZW1vcnlEdW1wID0gbmV3IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXAoCisgICAgICAgICAgICB0aGlzLm1vZGVsXywgcmFuZ2UubWluKTsKKyAgICAgICAgZ2xvYmFsTWVtb3J5RHVtcC5kdXJhdGlvbiA9IHJhbmdlLnJhbmdlOworICAgICAgICB0aGlzLm1vZGVsXy5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdsb2JhbE1lbW9yeUR1bXApOworCisgICAgICAgIC8vIENyZWF0ZSBpbmRpdmlkdWFsIHByb2Nlc3MgbWVtb3J5IGR1bXBzLgorICAgICAgICBpZiAoZXZlbnRzLnByb2Nlc3MubGVuZ3RoID09PSAwKSB7CisgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgIHR5cGU6ICdtZW1vcnlfZHVtcF9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgIG1lc3NhZ2U6ICdObyBwcm9jZXNzIG1lbW9yeSBkdW1wcyBhc3NvY2lhdGVkIHdpdGggZ2xvYmFsIG1lbW9yeScgKworICAgICAgICAgICAgICAgICAgJyBkdW1wICcgKyBpZCArICcuJworICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGFsbE1lbW9yeUFsbG9jYXRvckR1bXBzQnlHdWlkID0ge307CisgICAgICAgIHZhciBnbG9iYWxNZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWUgPSB7fTsKKworICAgICAgICBldmVudHMucHJvY2Vzcy5mb3JFYWNoKGZ1bmN0aW9uKHByb2Nlc3NFdmVudCkgeworICAgICAgICAgIHZhciBwaWQgPSBwcm9jZXNzRXZlbnQucGlkOworICAgICAgICAgIGlmIChwaWQgaW4gZ2xvYmFsTWVtb3J5RHVtcC5wcm9jZXNzTWVtb3J5RHVtcHMpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICBtZXNzYWdlOiAnTXVsdGlwbGUgcHJvY2VzcyBtZW1vcnkgZHVtcHMgd2l0aCBwaWQ9JyArIHBpZCArCisgICAgICAgICAgICAgICAgICAnIGZvciBkdW1wIGlkICcgKyBpZCArICcuJworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorCisgICAgICAgICAgdmFyIGR1bXBzID0gcHJvY2Vzc0V2ZW50LmFyZ3MuZHVtcHM7CisgICAgICAgICAgaWYgKGR1bXBzID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgIHR5cGU6ICdtZW1vcnlfZHVtcF9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogJ2R1bXBzIG5vdCBmb3VuZCBpbiBwcm9jZXNzIG1lbW9yeSBkdW1wIGZvciAnICsKKyAgICAgICAgICAgICAgICAgICAgJ3BpZD0nICsgcGlkICsgJyBhbmQgZHVtcCBpZD0nICsgaWQgKyAnLicKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKworICAgICAgICAgIHZhciBwcm9jZXNzID0gdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKHBpZCk7CisgICAgICAgICAgdmFyIHByb2Nlc3NNZW1vcnlEdW1wID0gbmV3IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wKAorICAgICAgICAgICAgICBnbG9iYWxNZW1vcnlEdW1wLCBwcm9jZXNzLAorICAgICAgICAgICAgICB0aW1lc3RhbXBGcm9tVXMocHJvY2Vzc0V2ZW50LnRzKSk7CisKKyAgICAgICAgICAvLyBQYXJzZSB0aGUgdG90YWxzLCB3aGljaCBhcmUgbWFuZGF0b3J5LgorICAgICAgICAgIGlmIChkdW1wcy5wcm9jZXNzX3RvdGFscyA9PT0gdW5kZWZpbmVkIHx8CisgICAgICAgICAgICAgIGR1bXBzLnByb2Nlc3NfdG90YWxzLnJlc2lkZW50X3NldF9ieXRlcyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNYW5kYXRvcnkgZmllbGQgcmVzaWRlbnRfc2V0X2J5dGVzIG5vdCBmb3VuZCBpbicgKworICAgICAgICAgICAgICAgICAgICAnIHByb2Nlc3MgbWVtb3J5IGR1bXAgZm9yIHBpZD0nICsgcGlkICsKKyAgICAgICAgICAgICAgICAgICAgJyBhbmQgZHVtcCBpZD0nICsgaWQgKyAnLicKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUR1bXAudG90YWxSZXNpZGVudEJ5dGVzID0gdW5kZWZpbmVkOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcm9jZXNzTWVtb3J5RHVtcC50b3RhbFJlc2lkZW50Qnl0ZXMgPSBwYXJzZUludCgKKyAgICAgICAgICAgICAgICBkdW1wcy5wcm9jZXNzX3RvdGFscy5yZXNpZGVudF9zZXRfYnl0ZXMsIDE2KTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBQb3B1bGF0ZSB0aGUgdm1SZWdpb25zLCBpZiBwcmVzZW50LgorICAgICAgICAgIGlmIChkdW1wcy5wcm9jZXNzX21tYXBzICYmIGR1bXBzLnByb2Nlc3NfbW1hcHMudm1fcmVnaW9ucykgeworICAgICAgICAgICAgZnVuY3Rpb24gcGFyc2VCeXRlU3RhdChyYXdWYWx1ZSkgeworICAgICAgICAgICAgICBpZiAocmF3VmFsdWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQocmF3VmFsdWUsIDE2KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUR1bXAudm1SZWdpb25zID0gZHVtcHMucHJvY2Vzc19tbWFwcy52bV9yZWdpb25zLm1hcCgKKyAgICAgICAgICAgICAgZnVuY3Rpb24ocmF3UmVnaW9uKSB7CisgICAgICAgICAgICAgICAgLy8gU2VlIC8vYmFzZS90cmFjZV9ldmVudC9wcm9jZXNzX21lbW9yeV9tYXBzLmNjIGluIENocm9taXVtLgorICAgICAgICAgICAgICAgIHZhciBieXRlU3RhdHMgPSBuZXcgdHIubW9kZWwuVk1SZWdpb25CeXRlU3RhdHMoCisgICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5wYyksCisgICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5wZCksCisgICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5zYyksCisgICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5zZCksCisgICAgICAgICAgICAgICAgICBwYXJzZUJ5dGVTdGF0KHJhd1JlZ2lvbi5icy5wc3MpLAorICAgICAgICAgICAgICAgICAgcGFyc2VCeXRlU3RhdChyYXdSZWdpb24uYnMuc3cpCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHRyLm1vZGVsLlZNUmVnaW9uKAorICAgICAgICAgICAgICAgICAgICBwYXJzZUludChyYXdSZWdpb24uc2EsIDE2KSwgIC8vIHN0YXJ0QWRkcmVzcworICAgICAgICAgICAgICAgICAgICBwYXJzZUludChyYXdSZWdpb24uc3osIDE2KSwgIC8vIHNpemVJbkJ5dGVzCisgICAgICAgICAgICAgICAgICAgIHJhd1JlZ2lvbi5wZiwgIC8vIHByb3RlY3Rpb25GbGFncworICAgICAgICAgICAgICAgICAgICByYXdSZWdpb24ubWYsICAvLyBtYXBwZWRGaWxlCisgICAgICAgICAgICAgICAgICAgIGJ5dGVTdGF0cworICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gR2F0aGVyIHRoZSBwcm9jZXNzIGFuZCBnbG9iYWwgbWVtb3J5IGFsbG9jYXRvciBkdW1wcywgaWYgcHJlc2VudC4KKyAgICAgICAgICB2YXIgcHJvY2Vzc01lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZSA9IHt9OworICAgICAgICAgIGlmIChkdW1wcy5hbGxvY2F0b3JzICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIC8vIENvbnN0cnVjdCB0aGUgTWVtb3J5QWxsb2NhdG9yRHVtcCBvYmplY3RzIHdpdGhvdXQgcGFyZW50IGxpbmtzCisgICAgICAgICAgICAvLyBhbmQgYWRkIHRoZW0gdG8gdGhlIHByb2Nlc3NNZW1vcnlBbGxvY2F0b3JEdW1wc0J5TmFtZSBhbmQKKyAgICAgICAgICAgIC8vIGdsb2JhbE1lbW9yeUFsbG9jYXRvckR1bXBzQnlOYW1lIGluZGljZXMgYXBwcm9wcmlhdGVseS4KKyAgICAgICAgICAgIHRyLmIuaXRlckl0ZW1zKGR1bXBzLmFsbG9jYXRvcnMsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oZnVsbE5hbWUsIHJhd0FsbG9jYXRvckR1bXApIHsKKyAgICAgICAgICAgICAgLy8gRXZlcnkgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHNob3VsZCBoYXZlIGEgR1VJRC4gSWYgbm90LCB0aGVuCisgICAgICAgICAgICAgIC8vIGl0IGNhbm5vdCBiZSBhc3NvY2lhdGVkIHdpdGggYW55IGVkZ2VzLgorICAgICAgICAgICAgICB2YXIgZ3VpZCA9IHJhd0FsbG9jYXRvckR1bXAuZ3VpZDsKKyAgICAgICAgICAgICAgaWYgKGd1aWQgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNZW1vcnkgYWxsb2NhdG9yIGR1bXAgJyArIGZ1bGxOYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAnIGZyb20gcGlkPScgKyBwaWQgKyAnIGRvZXMgbm90IGhhdmUgYSBHVUlELicKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIGEgZ2xvYmFsIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCAoY2hlY2sgaWYKKyAgICAgICAgICAgICAgLy8gaXQncyBwcmVmaXhlZCB3aXRoICdnbG9iYWwvJykuCisgICAgICAgICAgICAgIHZhciBHTE9CQUxfTUVNT1JZX0FMTE9DQVRPUl9EVU1QX1BSRUZJWCA9ICdnbG9iYWwvJzsKKyAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lck1lbW9yeUR1bXA7CisgICAgICAgICAgICAgIHZhciBkc3RJbmRleDsKKyAgICAgICAgICAgICAgaWYgKGZ1bGxOYW1lLnN0YXJ0c1dpdGgoR0xPQkFMX01FTU9SWV9BTExPQ0FUT1JfRFVNUF9QUkVGSVgpKSB7CisgICAgICAgICAgICAgICAgLy8gR2xvYmFsIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KKyAgICAgICAgICAgICAgICBmdWxsTmFtZSA9IGZ1bGxOYW1lLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgR0xPQkFMX01FTU9SWV9BTExPQ0FUT1JfRFVNUF9QUkVGSVgubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBjb250YWluZXJNZW1vcnlEdW1wID0gZ2xvYmFsTWVtb3J5RHVtcDsKKyAgICAgICAgICAgICAgICBkc3RJbmRleCA9IGdsb2JhbE1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KKyAgICAgICAgICAgICAgICBjb250YWluZXJNZW1vcnlEdW1wID0gcHJvY2Vzc01lbW9yeUR1bXA7CisgICAgICAgICAgICAgICAgZHN0SW5kZXggPSBwcm9jZXNzTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgLy8gQ29uc3RydWN0IG9yIHJldHJpZXZlIGEgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHdpdGggdGhlIHByb3ZpZGVkCisgICAgICAgICAgICAgIC8vIEdVSUQuCisgICAgICAgICAgICAgIHZhciBhbGxvY2F0b3JEdW1wID0gYWxsTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUd1aWRbZ3VpZF07CisgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JEdW1wID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZnVsbE5hbWUgaW4gZHN0SW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnTXVsdGlwbGUgR1VJRHMgcHJvdmlkZWQgZm9yJyArCisgICAgICAgICAgICAgICAgICAgICAgICAnIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCAnICsgZnVsbE5hbWUgKyAnOiAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRzdEluZGV4W2Z1bGxOYW1lXS5ndWlkICsgJywgJyArIGd1aWQgKyAnIChpZ25vcmVkKS4nCisgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yRHVtcCA9IG5ldyB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wKAorICAgICAgICAgICAgICAgICAgICBjb250YWluZXJNZW1vcnlEdW1wLCBmdWxsTmFtZSwgZ3VpZCk7CisgICAgICAgICAgICAgICAgZHN0SW5kZXhbZnVsbE5hbWVdID0gYWxsb2NhdG9yRHVtcDsKKyAgICAgICAgICAgICAgICBpZiAoZ3VpZCAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgICAgYWxsTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUd1aWRbZ3VpZF0gPSBhbGxvY2F0b3JEdW1wOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEEgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHdpdGggdGhpcyBHVUlEIGhhcyBhbHJlYWR5IGJlZW4KKyAgICAgICAgICAgICAgICAvLyBkdW1wZWQgKHNvIHdlIHdpbGwgb25seSBhZGQgbmV3IGF0dHJpYnV0ZXMpLiBDaGVjayB0aGF0IGl0CisgICAgICAgICAgICAgICAgLy8gYmVsb25nZWQgdG8gdGhlIHNhbWUgcHJvY2VzcyBvciB3YXMgYWxzbyBnbG9iYWwuCisgICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvckR1bXAuY29udGFpbmVyTWVtb3J5RHVtcCAhPT0gY29udGFpbmVyTWVtb3J5RHVtcCkgeworICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ01lbW9yeSBhbGxvY2F0b3IgZHVtcCAnICsgZnVsbE5hbWUgKworICAgICAgICAgICAgICAgICAgICAgICcgKEdVSUQ9JyArIGd1aWQgKyAnKSBkdW1wZWQgaW4gZGlmZmVyZW50IGNvbnRleHRzLicKKyAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBuYW1lcyBvZiB0aGUgbWVtb3J5IGFsbG9jYXRvciBkdW1wcyBtYXRjaC4KKyAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yRHVtcC5mdWxsTmFtZSAhPT0gZnVsbE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNZW1vcnkgYWxsb2NhdG9yIGR1bXAgd2l0aCBHVUlEPScgKyBndWlkICsKKyAgICAgICAgICAgICAgICAgICAgICAnIGhhcyBtdWx0aXBsZSBuYW1lczogJyArIGFsbG9jYXRvckR1bXAuZnVsbE5hbWUgKworICAgICAgICAgICAgICAgICAgICAgICcsICcgKyBmdWxsTmFtZSArICcgKGlnbm9yZWQpLicKKyAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIEFkZCBhbGwgbmV3IGF0dHJpYnV0ZXMgdG8gdGhlIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KKyAgICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZXMgPSByYXdBbGxvY2F0b3JEdW1wLmF0dHJzOworICAgICAgICAgICAgICB0ci5iLml0ZXJJdGVtcyhhdHRyaWJ1dGVzLCBmdW5jdGlvbihhdHRyTmFtZSwgYXR0ckFyZ3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXR0ck5hbWUgaW4gYWxsb2NhdG9yRHVtcC5hdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICAgICAgICAvLyBTa2lwIGV4aXN0aW5nIGF0dHJpYnV0ZXMgb2YgdGhlIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KKyAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNdWx0aXBsZSB2YWx1ZXMgcHJvdmlkZWQgZm9yIGF0dHJpYnV0ZSAnICsKKyAgICAgICAgICAgICAgICAgICAgICBhdHRyTmFtZSArICcgb2YgbWVtb3J5IGFsbG9jYXRvciBkdW1wICcgKyBmdWxsTmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgJyAoR1VJRD0nICsgZ3VpZCArICcpLicKKyAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgYXR0clZhbHVlID0KKyAgICAgICAgICAgICAgICAgICAgdHIubW9kZWwuQXR0cmlidXRlLmZyb21EaWN0SWZQb3NzaWJsZShhdHRyQXJncyk7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yRHVtcC5hZGRBdHRyaWJ1dGUoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7CisgICAgICAgICAgICAgIH0sIHRoaXMpOworICAgICAgICAgICAgfSwgdGhpcyk7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gRmluZCB0aGUgcm9vdCBhbGxvY2F0b3IgZHVtcHMgYW5kIGVzdGFibGlzaCB0aGUgcGFyZW50IGxpbmtzIG9mCisgICAgICAgICAgLy8gdGhlIHByb2Nlc3MgbWVtb3J5IGR1bXAuCisgICAgICAgICAgcHJvY2Vzc01lbW9yeUR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMgPQorICAgICAgICAgICAgICB0aGlzLmluZmVyTWVtb3J5QWxsb2NhdG9yRHVtcFRyZWVfKAorICAgICAgICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZSk7CisKKyAgICAgICAgICBwcm9jZXNzLm1lbW9yeUR1bXBzLnB1c2gocHJvY2Vzc01lbW9yeUR1bXApOworICAgICAgICAgIGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3BpZF0gPSBwcm9jZXNzTWVtb3J5RHVtcDsKKyAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAgLy8gRmluZCB0aGUgcm9vdCBhbGxvY2F0b3IgZHVtcHMgYW5kIGVzdGFibGlzaCB0aGUgcGFyZW50IGxpbmtzIG9mCisgICAgICAgIC8vIHRoZSBnbG9iYWwgbWVtb3J5IGR1bXAuCisgICAgICAgIGdsb2JhbE1lbW9yeUR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMgPQorICAgICAgICAgICAgdGhpcy5pbmZlck1lbW9yeUFsbG9jYXRvckR1bXBUcmVlXygKKyAgICAgICAgICAgICAgICBnbG9iYWxNZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWUpOworCisgICAgICAgIC8vIFNldCB1cCBlZGdlcyBiZXR3ZWVuIG1lbW9yeSBhbGxvY2F0b3IgZHVtcHMuCisgICAgICAgIGV2ZW50cy5wcm9jZXNzLmZvckVhY2goZnVuY3Rpb24ocHJvY2Vzc0V2ZW50KSB7CisgICAgICAgICAgdmFyIGR1bXBzID0gcHJvY2Vzc0V2ZW50LmFyZ3MuZHVtcHM7CisgICAgICAgICAgaWYgKGR1bXBzID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICB2YXIgZWRnZXMgPSBkdW1wcy5hbGxvY2F0b3JzX2dyYXBoOworICAgICAgICAgIGlmIChlZGdlcyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgZWRnZXMuZm9yRWFjaChmdW5jdGlvbihyYXdFZGdlKSB7CisgICAgICAgICAgICB2YXIgc291cmNlR3VpZCA9IHJhd0VkZ2Uuc291cmNlOworICAgICAgICAgICAgdmFyIHNvdXJjZUR1bXAgPSBhbGxNZW1vcnlBbGxvY2F0b3JEdW1wc0J5R3VpZFtzb3VyY2VHdWlkXTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VEdW1wID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiAnRWRnZSBpcyBtaXNzaW5nIHNvdXJjZSBtZW1vcnkgYWxsb2NhdG9yIGR1bXAgKEdVSUQ9JyArCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUd1aWQgKyAnKScKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHRhcmdldEd1aWQgPSByYXdFZGdlLnRhcmdldDsKKyAgICAgICAgICAgIHZhciB0YXJnZXREdW1wID0gYWxsTWVtb3J5QWxsb2NhdG9yRHVtcHNCeUd1aWRbdGFyZ2V0R3VpZF07CisgICAgICAgICAgICBpZiAodGFyZ2V0RHVtcCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgIHRoaXMubW9kZWxfLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgICAgIHR5cGU6ICdtZW1vcnlfZHVtcF9wYXJzZV9lcnJvcicsCisgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0VkZ2UgaXMgbWlzc2luZyB0YXJnZXQgbWVtb3J5IGFsbG9jYXRvciBkdW1wIChHVUlEPScgKworICAgICAgICAgICAgICAgICAgICB0YXJnZXRHdWlkICsgJyknCisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBpbXBvcnRhbmNlID0gcmF3RWRnZS5pbXBvcnRhbmNlOworICAgICAgICAgICAgdmFyIGVkZ2UgPSBuZXcgdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcExpbmsoCisgICAgICAgICAgICAgICAgc291cmNlRHVtcCwgdGFyZ2V0RHVtcCwgaW1wb3J0YW5jZSk7CisKKyAgICAgICAgICAgIHN3aXRjaCAocmF3RWRnZS50eXBlKSB7CisgICAgICAgICAgICAgIGNhc2UgJ293bmVyc2hpcCc6CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUR1bXAub3ducyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ01lbW9yeSBhbGxvY2F0b3IgZHVtcCAnICsgc291cmNlRHVtcC5mdWxsTmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgICAnIChHVUlEPScgKyBzb3VyY2VHdWlkICsgJykgYWxyZWFkeSBvd25zIGEgbWVtb3J5JyArCisgICAgICAgICAgICAgICAgICAgICAgICAnIGFsbG9jYXRvciBkdW1wICgnICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUR1bXAub3ducy50YXJnZXQuZnVsbE5hbWUgKyAnKS4nCisgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc291cmNlRHVtcC5vd25zID0gZWRnZTsKKyAgICAgICAgICAgICAgICB0YXJnZXREdW1wLm93bmVkQnkucHVzaChlZGdlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICBjYXNlICdyZXRlbnRpb24nOgorICAgICAgICAgICAgICAgIHNvdXJjZUR1bXAucmV0YWlucy5wdXNoKGVkZ2UpOworICAgICAgICAgICAgICAgIHRhcmdldER1bXAucmV0YWluZWRCeS5wdXNoKGVkZ2UpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0ludmFsaWQgZWRnZSB0eXBlOiAnICsgcmF3RWRnZS50eXBlICsKKyAgICAgICAgICAgICAgICAgICAgICAnIChzb3VyY2U9JyArIHNvdXJjZUd1aWQgKyAnLCB0YXJnZXQ9JyArIHRhcmdldEd1aWQgKworICAgICAgICAgICAgICAgICAgICAgICcsIGltcG9ydGFuY2U9JyArIGltcG9ydGFuY2UgKyAnKS4nCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSwgdGhpcyk7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIGluZmVyTWVtb3J5QWxsb2NhdG9yRHVtcFRyZWVfOiBmdW5jdGlvbihtZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWUpIHsKKyAgICAgIHZhciByb290QWxsb2NhdG9yRHVtcHMgPSBbXTsKKworICAgICAgdmFyIGZ1bGxOYW1lcyA9IE9iamVjdC5rZXlzKG1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZSk7CisgICAgICBmdWxsTmFtZXMuc29ydCgpOworICAgICAgZnVsbE5hbWVzLmZvckVhY2goZnVuY3Rpb24oZnVsbE5hbWUpIHsKKyAgICAgICAgdmFyIGFsbG9jYXRvckR1bXAgPSBtZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWVbZnVsbE5hbWVdOworCisgICAgICAgIC8vIFRoaXMgaXMgYSBsb29wIGJlY2F1c2Ugd2UgbWlnaHQgbmVlZCB0byBidWlsZCBpbXBsaWNpdAorICAgICAgICAvLyBhbmNlc3RvcnMgaW4gY2FzZSB0aGV5IHdlcmUgbm90IHByZXNlbnQgaW4gdGhlIHRyYWNlLgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgIHZhciBsYXN0U2xhc2hJbmRleCA9IGZ1bGxOYW1lLmxhc3RJbmRleE9mKCcvJyk7CisgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ID09PSAtMSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIGR1bXAgaXMgYSByb290LCBhZGQgaXQgdG8gdGhlIHRvcC1sZXZlbAorICAgICAgICAgICAgLy8gcm9vdEFsbG9jYXRvckR1bXBzIGxpc3QuCisgICAgICAgICAgICByb290QWxsb2NhdG9yRHVtcHMucHVzaChhbGxvY2F0b3JEdW1wKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKworICAgICAgICAgIC8vIElmIHRoZSBkdW1wIGlzIG5vdCBhIHJvb3QsIGZpbmQgaXRzIHBhcmVudC4KKyAgICAgICAgICB2YXIgcGFyZW50RnVsbE5hbWUgPSBmdWxsTmFtZS5zdWJzdHJpbmcoMCwgbGFzdFNsYXNoSW5kZXgpOworICAgICAgICAgIHZhciBwYXJlbnRBbGxvY2F0b3JEdW1wID0KKyAgICAgICAgICAgICAgbWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lW3BhcmVudEZ1bGxOYW1lXTsKKworICAgICAgICAgIC8vIElmIHRoZSBwYXJlbnQgZHVtcCBkb2VzIG5vdCBleGlzdCB5ZXQsIHdlIGJ1aWxkIGFuIGltcGxpY2l0CisgICAgICAgICAgLy8gb25lIGFuZCBjb250aW51ZSB1cCB0aGUgYW5jZXN0b3IgY2hhaW4uCisgICAgICAgICAgdmFyIHBhcmVudEFscmVhZHlFeGlzdGVkID0gdHJ1ZTsKKyAgICAgICAgICBpZiAocGFyZW50QWxsb2NhdG9yRHVtcCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICBwYXJlbnRBbHJlYWR5RXhpc3RlZCA9IGZhbHNlOworICAgICAgICAgICAgcGFyZW50QWxsb2NhdG9yRHVtcCA9IG5ldyB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wKAorICAgICAgICAgICAgICAgIGFsbG9jYXRvckR1bXAuY29udGFpbmVyTWVtb3J5RHVtcCwgcGFyZW50RnVsbE5hbWUpOworICAgICAgICAgICAgbWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lW3BhcmVudEZ1bGxOYW1lXSA9CisgICAgICAgICAgICAgICAgcGFyZW50QWxsb2NhdG9yRHVtcDsKKyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBTZXR1cCB0aGUgcGFyZW50IDwtPiBjaGlsZHJlbiByZWxhdGlvbnNoaXBzCisgICAgICAgICAgYWxsb2NhdG9yRHVtcC5wYXJlbnQgPSBwYXJlbnRBbGxvY2F0b3JEdW1wOworICAgICAgICAgIHBhcmVudEFsbG9jYXRvckR1bXAuY2hpbGRyZW4ucHVzaChhbGxvY2F0b3JEdW1wKTsKKworICAgICAgICAgIC8vIElmIHRoZSBwYXJlbnQgYWxyZWFkeSBleGlzdGVkLCB0aGVuIGl0cyBhbmNlc3RvcnMgd2VyZS93aWxsIGJlCisgICAgICAgICAgLy8gY29uc3RydWN0ZWQgaW4gYW5vdGhlciBpdGVyYXRpb24gb2YgdGhlIGZvckVhY2ggbG9vcC4KKyAgICAgICAgICBpZiAocGFyZW50QWxyZWFkeUV4aXN0ZWQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGZ1bGxOYW1lID0gcGFyZW50RnVsbE5hbWU7CisgICAgICAgICAgYWxsb2NhdG9yRHVtcCA9IHBhcmVudEFsbG9jYXRvckR1bXA7CisgICAgICAgIH0KKyAgICAgIH0sIHRoaXMpOworCisgICAgICByZXR1cm4gcm9vdEFsbG9jYXRvckR1bXBzOworICAgIH0sCisKKyAgICBqb2luT2JqZWN0UmVmc186IGZ1bmN0aW9uKCkgeworICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5tb2RlbF8ucHJvY2Vzc2VzLCBmdW5jdGlvbihwaWQsIHByb2Nlc3MpIHsKKyAgICAgICAgdGhpcy5qb2luT2JqZWN0UmVmc0ZvclByb2Nlc3NfKHByb2Nlc3MpOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIGpvaW5PYmplY3RSZWZzRm9yUHJvY2Vzc186IGZ1bmN0aW9uKHByb2Nlc3MpIHsKKyAgICAgIC8vIEl0ZXJhdGUgdGhlIHdvcmxkLCBsb29raW5nIGZvciBpZF9yZWZzCisgICAgICB2YXIgcGF0Y2h1cHNUb0FwcGx5ID0gW107CisgICAgICB0ci5iLml0ZXJJdGVtcyhwcm9jZXNzLnRocmVhZHMsIGZ1bmN0aW9uKHRpZCwgdGhyZWFkKSB7CisgICAgICAgIHRocmVhZC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAgICAgICAgIHRoaXMuc2VhcmNoSXRlbUZvcklEUmVmc18oCisgICAgICAgICAgICAgIHBhdGNodXBzVG9BcHBseSwgcHJvY2Vzcy5vYmplY3RzLCAnc3RhcnQnLCBpdGVtKTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICAgIHRocmVhZC5zbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsKKyAgICAgICAgICB0aGlzLnNlYXJjaEl0ZW1Gb3JJRFJlZnNfKAorICAgICAgICAgICAgICBwYXRjaHVwc1RvQXBwbHksIHByb2Nlc3Mub2JqZWN0cywgJ3N0YXJ0JywgaXRlbSk7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfSwgdGhpcyk7CisgICAgICBwcm9jZXNzLm9iamVjdHMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSkgeworICAgICAgICBpbnN0YW5jZS5zbmFwc2hvdHMuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7CisgICAgICAgICAgdGhpcy5zZWFyY2hJdGVtRm9ySURSZWZzXygKKyAgICAgICAgICAgICAgcGF0Y2h1cHNUb0FwcGx5LCBwcm9jZXNzLm9iamVjdHMsICd0cycsIGl0ZW0pOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBDaGFuZ2UgYWxsIHRoZSBmaWVsZHMgcG9pbnRpbmcgYXQgaWRfcmVmcyB0byB0aGVpciByZWFsIHZhbHVlcy4KKyAgICAgIHBhdGNodXBzVG9BcHBseS5mb3JFYWNoKGZ1bmN0aW9uKHBhdGNodXApIHsKKyAgICAgICAgcGF0Y2h1cC5vYmplY3RbcGF0Y2h1cC5maWVsZF0gPSBwYXRjaHVwLnZhbHVlOworICAgICAgfSk7CisgICAgfSwKKworICAgIHNlYXJjaEl0ZW1Gb3JJRFJlZnNfOiBmdW5jdGlvbihwYXRjaHVwc1RvQXBwbHksIG9iamVjdENvbGxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UaW1lc3RhbXBGaWVsZCwgaXRlbSkgeworICAgICAgaWYgKCFpdGVtLmFyZ3MpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignaXRlbSBpcyBtaXNzaW5nIGl0cyBhcmdzJyk7CisKKyAgICAgIGZ1bmN0aW9uIGhhbmRsZUZpZWxkKG9iamVjdCwgZmllbGROYW1lLCBmaWVsZFZhbHVlKSB7CisgICAgICAgIGlmICghZmllbGRWYWx1ZSB8fCAoIWZpZWxkVmFsdWUuaWRfcmVmICYmICFmaWVsZFZhbHVlLmlkUmVmKSkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGlkID0gZmllbGRWYWx1ZS5pZF9yZWYgfHwgZmllbGRWYWx1ZS5pZFJlZjsKKyAgICAgICAgdmFyIHRzID0gaXRlbVtpdGVtVGltZXN0YW1wRmllbGRdOworICAgICAgICB2YXIgc25hcHNob3QgPSBvYmplY3RDb2xsZWN0aW9uLmdldFNuYXBzaG90QXQoaWQsIHRzKTsKKyAgICAgICAgaWYgKCFzbmFwc2hvdCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byBkZWxheSB0aGUgYWN0dWFsIGNoYW5nZSB0byB0aGUgbmV3IHZhbHVlIHVudGlsIGFmdGVyIGFsbAorICAgICAgICAvLyByZWZzIGhhdmUgYmVlbiBsb2NhdGVkLiBPdGhlcndpc2UsIHdlIGNvdWxkIGVuZCB1cCByZWN1cnNpbmcgaW4KKyAgICAgICAgLy8gd2F5cyB3ZSBkZWZpbml0ZWx5IGRpZG4ndCBpbnRlbmQuCisgICAgICAgIHBhdGNodXBzVG9BcHBseS5wdXNoKHtvYmplY3Q6IG9iamVjdCwKKyAgICAgICAgICBmaWVsZDogZmllbGROYW1lLAorICAgICAgICAgIHZhbHVlOiBzbmFwc2hvdH0pOworICAgICAgfQorICAgICAgZnVuY3Rpb24gaXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5KG9iamVjdCkgeworICAgICAgICBpZiAoIShvYmplY3QgaW5zdGFuY2VvZiBPYmplY3QpKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoKG9iamVjdCBpbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KSB8fAorICAgICAgICAgICAgKG9iamVjdCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkgfHwKKyAgICAgICAgICAgIChvYmplY3QgaW5zdGFuY2VvZiB0ci5iLlF1YWQpKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaGFuZGxlRmllbGQob2JqZWN0LCBpLCBvYmplY3RbaV0pOworICAgICAgICAgICAgaXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5KG9iamVjdFtpXSk7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHsKKyAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XTsKKyAgICAgICAgICBoYW5kbGVGaWVsZChvYmplY3QsIGtleSwgdmFsdWUpOworICAgICAgICAgIGl0ZXJPYmplY3RGaWVsZHNSZWN1cnNpdmVseSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgaXRlck9iamVjdEZpZWxkc1JlY3Vyc2l2ZWx5KGl0ZW0uYXJncyk7CisgICAgfQorICB9OworCisgIHRyLmltcG9ydGVyLkltcG9ydGVyLnJlZ2lzdGVyKFRyYWNlRXZlbnRJbXBvcnRlcik7CisKKyAgcmV0dXJuIHsKKyAgICBUcmFjZUV2ZW50SW1wb3J0ZXI6IFRyYWNlRXZlbnRJbXBvcnRlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3BlcmZfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXJfcGVyZl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFhYjlhYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3BlcmZfdGVzdC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICB2YXIgZXZlbnRTdHJpbmdzID0ge307CisKKyAgLy8gQGNvbnN0CisgIHZhciBURVNUX05BTUVTID0gWydzaW1wbGVfdHJhY2UnLCAnbHRoaV9jYXRzJ107CisgIC8vIEBjb25zdAorICB2YXIgVEVTVF9GSUxFU19QQVRIUyA9IFsnL3Rlc3RfZGF0YS9zaW1wbGVfdHJhY2UuanNvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICcvdGVzdF9kYXRhL2x0aGlfY2F0cy5qc29uLmd6J107CisKKyAgZnVuY3Rpb24gZ2V0RXZlbnRzKHVybCkgeworICAgIGlmICh1cmwgaW4gZXZlbnRTdHJpbmdzKQorICAgICAgcmV0dXJuIGV2ZW50U3RyaW5nc1t1cmxdOworICAgIGV2ZW50U3RyaW5nc1t1cmxdID0gdHIuYi5nZXRTeW5jKHVybCk7CisgICAgcmV0dXJuIGV2ZW50U3RyaW5nc1t1cmxdOworICB9CisKKyAgZnVuY3Rpb24gdGltZWRQZXJmVGVzdFdpdGhFdmVudHMobmFtZSwgdGVzdEZuLCBpbml0aWFsT3B0aW9ucykgeworICAgIGlmIChpbml0aWFsT3B0aW9ucy5zZXRVcCkKKyAgICAgIHRocm93IG5ldyBFcnJvcigKKyAgICAgICAgICAnUGVyLXRlc3Qgc2V0VXAgbm90IHN1cHBvcnRlZC4gVHJpdmlhbCB0byBmaXggaWYgbmVlZGVkLicpOworCisgICAgdmFyIG9wdGlvbnMgPSB7fTsKKyAgICBmb3IgKHZhciBrIGluIGluaXRpYWxPcHRpb25zKQorICAgICAgb3B0aW9uc1trXSA9IGluaXRpYWxPcHRpb25zW2tdOworICAgIG9wdGlvbnMuc2V0VXAgPSBmdW5jdGlvbigpIHsKKyAgICAgIFRFU1RfRklMRVNfUEFUSFMuZm9yRWFjaCgKKyAgICAgICAgICBmdW5jdGlvbiB3YXJtdXAodXJsKSB7CisgICAgICAgICAgICBnZXRFdmVudHModXJsKTsKKyAgICAgICAgICB9KTsKKyAgICB9OworICAgIHRpbWVkUGVyZlRlc3QobmFtZSwgdGVzdEZuLCBvcHRpb25zKTsKKyAgfQorCisgIHZhciBuMTEwMTAwID0gWzEsIDEwLCAxMDBdOworICBuMTEwMTAwLmZvckVhY2goZnVuY3Rpb24odmFsKSB7CisgICAgdGltZWRQZXJmVGVzdFdpdGhFdmVudHMoVEVTVF9OQU1FU1swXSArICdfJyArIHZhbCwgZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZXZlbnRzID0gZ2V0RXZlbnRzKFRFU1RfRklMRVNfUEFUSFNbMF0pOworICAgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSwgZmFsc2UpOworICAgIH0sIHtpdGVyYXRpb25zOiB2YWx9KTsKKyAgfSk7CisKKyAgdGltZWRQZXJmVGVzdFdpdGhFdmVudHMoVEVTVF9OQU1FU1sxXSArICdfMScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBnZXRFdmVudHMoVEVTVF9GSUxFU19QQVRIU1sxXSk7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKKyAgfSwge2l0ZXJhdGlvbnM6IDF9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmFjNzgxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzU2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgIHZhciBmaW5kU2xpY2VOYW1lZCA9IHRyLmMudGVzdF91dGlscy5maW5kU2xpY2VOYW1lZDsKKworICB0ZXN0KCdjYW5JbXBvcnRFbXB0eScsIGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC5pc0ZhbHNlKHRyLmUuaW1wb3J0ZXIuVHJhY2VFdmVudEltcG9ydGVyLmNhbkltcG9ydChbXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKHRyLmUuaW1wb3J0ZXIuVHJhY2VFdmVudEltcG9ydGVyLmNhbkltcG9ydCgnJykpOworICB9KTsKKworICB0ZXN0KCdiYXNpY1NpbmdsZVRocmVhZE5vbm5lc3RlZFBhcnNpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MjksIGNhdDogJ2JhcicsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MzEsIGNhdDogJ2JhcicsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzUyXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHApOworCisgICAgYXNzZXJ0LmVxdWFsKHAubnVtVGhyZWFkcywgMSk7CisgICAgdmFyIHQgPSBwLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgNTMpOworICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmNsb3NlVG8oKDU2MCAtIDUyMCkgLyAxMDAwLCBzbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOworCisgICAgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzFdOworICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2InKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdiYXInKTsKKyAgICBhc3NlcnQuY2xvc2VUbygoNjI5IC0gNTIwKSAvIDEwMDAsIHNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygoNjMxIC0gNjI5KSAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7CisgIH0pOworCisgIHRlc3QoJ2Jhc2ljU2luZ2xlVGhyZWFkTm9ubmVzdGVkUGFyc2luZ1dpdGhDcHVEdXJhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJywgdHRzOiAyMjF9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRScsIHR0czogMjU5fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNjI5LCBjYXQ6ICdiYXInLCB0aWQ6IDUzLCBwaDogJ0InLCB0dHM6IDMyOX0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzMSwgY2F0OiAnYmFyJywgdGlkOiA1MywgcGg6ICdFJywgdHRzOiAzMzF9ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1s1Ml07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKKworICAgIGFzc2VydC5lcXVhbChwLm51bVRocmVhZHMsIDEpOworICAgIHZhciB0ID0gcC50aHJlYWRzWzUzXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwodC50aWQsIDUzKTsKKyAgICB2YXIgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3RhcnQsIDApOworICAgIGFzc2VydC5jbG9zZVRvKCg1NjAgLSA1MjApIC8gMTAwMCwgc2xpY2UuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKCgyNTkgLSAyMjEpIC8gMTAwMCwgc2xpY2UuY3B1RHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKKworICAgIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnYmFyJyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oKDYyOSAtIDUyMCkgLyAxMDAwLCBzbGljZS5zdGFydCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oKDYzMSAtIDYyOSkgLyAxMDAwLCBzbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oKDMzMSAtIDMyOSkgLyAxMDAwLCBzbGljZS5jcHVEdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOworICB9KTsKKworICB0ZXN0KCdhcmd1bWVudER1cGVDcmVhdGVzTm9uRmFpbGluZ0ltcG9ydEVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsCisgICAgICAgIGFyZ3M6IHsneCc6IDF9LAorICAgICAgICBwaWQ6IDEsCisgICAgICAgIHRzOiA1MjAsCisgICAgICAgIGNhdDogJ2ZvbycsCisgICAgICAgIHRpZDogMSwKKyAgICAgICAgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2EnLAorICAgICAgICBhcmdzOiB7J3gnOiAyfSwKKyAgICAgICAgcGlkOiAxLAorICAgICAgICB0czogNTYwLAorICAgICAgICBjYXQ6ICdmb28nLAorICAgICAgICB0aWQ6IDEsCisgICAgICAgIHBoOiAnRSd9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzFdOworICAgIHZhciBzQSA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2EnKTsKKworICAgIGFzc2VydC5lcXVhbChzQS5hcmdzLngsIDIpOworICAgIGFzc2VydC5pc1RydWUobS5oYXNJbXBvcnRXYXJuaW5ncyk7CisgICAgYXNzZXJ0LmVxdWFsKDEsIG0uaW1wb3J0V2FybmluZ3MubGVuZ3RoKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0TWlzc2luZ0FyZ3MnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2EnLCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfSwKKyAgICAgIHtuYW1lOiAnYicsIHBpZDogNTIsIHRzOiA2MjksIGNhdDogJ2JhcicsIHRpZDogNTMsIHBoOiAnSSd9CisgICAgXTsKKworICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCisgICAgbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydERvZXNOb3RDaG9rZU9uTnVsbHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczogeyBmb286IG51bGwgfSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7bmFtZTogJ2EnLCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQorICAgIF07CisKKyAgICAvLyBUaGlzIHNob3VsZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgIG5ldyB0ci5Nb2RlbChldmVudHMpOworICB9KTsKKworICB0ZXN0KCdjYXRlZ29yeUJlZ2luRW5kTWlzbWF0Y2hQcmVmZXJzQmVnaW4nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2JhcicsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzUyXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHApOworCisgICAgYXNzZXJ0LmVxdWFsKHAubnVtVGhyZWFkcywgMSk7CisgICAgdmFyIHQgPSBwLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgNTMpOworICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOworICB9KTsKKworICB0ZXN0KCdiZWdpbkVuZE5hbWVNaXNtYXRjaCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICBhc3NlcnQuaXNUcnVlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICAgIGFzc2VydC5lcXVhbChtLmltcG9ydFdhcm5pbmdzLmxlbmd0aCwgMSk7CisgIH0pOworCisgIHRlc3QoJ25lc3RlZFBhcnNpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIHR0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAyLCB0dHM6IDIsIGNhdDogJ2JhcicsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMywgdHRzOiAzLCBjYXQ6ICdiYXInLCB0aWQ6IDEsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDQsIHR0czogMywgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzFdOworCisgICAgdmFyIHNBID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYScpOworICAgIHZhciBzQiA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2InKTsKKworICAgIGFzc2VydC5lcXVhbChzQS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwoc0EuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoc0Euc3RhcnQsIDAuMDAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc0EuZHVyYXRpb24sIDAuMDAzKTsKKyAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDAuMDAyKTsKKyAgICBhc3NlcnQuZXF1YWwoc0EuY3B1U2VsZlRpbWUsIDAuMDAxKTsKKworICAgIGFzc2VydC5lcXVhbChzQi50aXRsZSwgJ2InKTsKKyAgICBhc3NlcnQuZXF1YWwoc0IuY2F0ZWdvcnksICdiYXInKTsKKyAgICBhc3NlcnQuZXF1YWwoc0Iuc3RhcnQsIDAuMDAyKTsKKyAgICBhc3NlcnQuZXF1YWwoc0IuZHVyYXRpb24sIDAuMDAxKTsKKworICAgIGFzc2VydC5lcXVhbCgxLCBzQS5zdWJTbGljZXMubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwoc0IsIHNBLnN1YlNsaWNlc1swXSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLCBzQi5wYXJlbnRTbGljZSk7CisgIH0pOworCisgIHRlc3QoJ25lc3RlZFBhcnNpbmdXaXRoVHdvU3ViU2xpY2VzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCB0dHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgdHRzOiAyLCBjYXQ6ICdiYXInLCB0aWQ6IDEsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDMsIHR0czogMywgY2F0OiAnYmFyJywgdGlkOiAxLCBwaDogJ0UnfSwKKyAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA1LCB0dHM6IDUsIGNhdDogJ2JheicsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNywgdHRzOiA2LCBjYXQ6ICdiYXonLCB0aWQ6IDEsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDgsIHR0czogOCwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzFdOworCisgICAgdmFyIHNBID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYScpOworICAgIHZhciBzQiA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2InKTsKKyAgICB2YXIgc0MgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdjJyk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0EudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnN0YXJ0LCAwLjAwMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLmR1cmF0aW9uLCAwLjAwNyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnNlbGZUaW1lLCAwLjAwNCk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLmNwdVNlbGZUaW1lLCAwLjAwNSk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0IudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNCLmNhdGVnb3J5LCAnYmFyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNCLnN0YXJ0LCAwLjAwMik7CisgICAgYXNzZXJ0LmVxdWFsKHNCLmR1cmF0aW9uLCAwLjAwMSk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0MudGl0bGUsICdjJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNDLmNhdGVnb3J5LCAnYmF6Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHNDLnN0YXJ0LCAwLjAwNSk7CisgICAgYXNzZXJ0LmVxdWFsKHNDLmR1cmF0aW9uLCAwLjAwMik7CisKKyAgICBhc3NlcnQuZXF1YWwoc0Euc3ViU2xpY2VzLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlc1swXSwgc0IpOworICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXNbMV0sIHNDKTsKKyAgICBhc3NlcnQuZXF1YWwoc0IucGFyZW50U2xpY2UsIHNBKTsKKyAgICBhc3NlcnQuZXF1YWwoc0MucGFyZW50U2xpY2UsIHNBKTsKKyAgfSk7CisKKyAgdGVzdCgnbmVzdGVkUGFyc2luZ1dpdGhEb3VibGVOZXN0aW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2JhcicsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMywgY2F0OiAnYmF6JywgdGlkOiAxLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA1LCBjYXQ6ICdiYXonLCB0aWQ6IDEsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDcsIGNhdDogJ2JhcicsIHRpZDogMSwgcGg6ICdFJ30sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogOCwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzFdOworCisgICAgdmFyIHNBID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYScpOworICAgIHZhciBzQiA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2InKTsKKyAgICB2YXIgc0MgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdjJyk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0EudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnN0YXJ0LCAwLjAwMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLmR1cmF0aW9uLCAwLjAwNyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnNlbGZUaW1lLCAwLjAwMik7CisKKyAgICBhc3NlcnQuZXF1YWwoc0IudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNCLmNhdGVnb3J5LCAnYmFyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNCLnN0YXJ0LCAwLjAwMik7CisgICAgYXNzZXJ0LmVxdWFsKHNCLmR1cmF0aW9uLCAwLjAwNSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnNlbGZUaW1lLCAwLjAwMik7CisKKyAgICBhc3NlcnQuZXF1YWwoc0MudGl0bGUsICdjJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNDLmNhdGVnb3J5LCAnYmF6Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHNDLnN0YXJ0LCAwLjAwMyk7CisgICAgYXNzZXJ0LmVxdWFsKHNDLmR1cmF0aW9uLCAwLjAwMik7CisKKyAgICBhc3NlcnQuZXF1YWwoc0Euc3ViU2xpY2VzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlc1swXSwgc0IpOworICAgIGFzc2VydC5lcXVhbChzQi5wYXJlbnRTbGljZSwgc0EpOworCisgICAgYXNzZXJ0LmVxdWFsKHNCLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzQi5zdWJTbGljZXNbMF0sIHNDKTsKKyAgICBhc3NlcnQuZXF1YWwoc0MucGFyZW50U2xpY2UsIHNCKTsKKyAgfSk7CisKKworICB0ZXN0KCdhdXRvY2xvc2luZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICAvLyBTbGljZSB0aGF0IGRvZXNuJ3QgZmluaXNoLgorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCisKKyAgICAgIC8vIFNsaWNlIHRoYXQgZG9lcyBmaW5pc2ggdG8gZ2l2ZSBhbiAnZW5kIHRpbWUnIHRvIG1ha2UgYXV0b2Nsb3Npbmcgd29yay4KKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdiYXInLCB0aWQ6IDIsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2JhcicsIHRpZDogMiwgcGg6ICdFJ30KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKKyAgICB2YXIgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuaXNUcnVlKHNsaWNlLmRpZE5vdEZpbmlzaCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN0YXJ0LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuZHVyYXRpb24sICgyIC0gMSkgLyAxMDAwKTsKKyAgfSk7CisKKyAgdGVzdCgnYXV0b2Nsb3NpbmdMb25lQmVnaW4nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gU2xpY2UgdGhhdCBkb2Vzbid0IGZpbmlzaC4KKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07CisgICAgdmFyIHQgPSBwLnRocmVhZHNbMV07CisgICAgdmFyIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzbGljZS5kaWROb3RGaW5pc2gpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmR1cmF0aW9uLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnYXV0b2Nsb3NpbmdXaXRoU3ViVGFza3MnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2IxJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2IxJywgYXJnczoge30sIHBpZDogMSwgdHM6IDMsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdFJ30sCisgICAgICB7bmFtZTogJ2IyJywgYXJnczoge30sIHBpZDogMSwgdHM6IDMsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbMV0udGhyZWFkc1sxXTsKKworICAgIHZhciBzQSA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2EnKTsKKyAgICB2YXIgc0IxID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYjEnKTsKKyAgICB2YXIgc0IyID0gZmluZFNsaWNlTmFtZWQodC5zbGljZUdyb3VwLCAnYjInKTsKKworICAgIGFzc2VydC5lcXVhbChzQS5lbmQsIDAuMDAzKTsKKyAgICBhc3NlcnQuZXF1YWwoc0IxLmVuZCwgMC4wMDMpOworICAgIGFzc2VydC5lcXVhbChzQjIuZW5kLCAwLjAwMyk7CisgIH0pOworCisgIHRlc3QoJ2F1dG9jbG9zaW5nV2l0aEV2ZW50c091dHNpZGVCb3VuZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gU2xpY2UgdGhhdCBiZWdpbnMgYmVmb3JlIG1pbiBhbmQgZW5kcyBhZnRlciBtYXggb2YgdGhlIG90aGVyIHRocmVhZHMuCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMCwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAzLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAorCisgICAgICAvLyBTbGljZSB0aGF0IGRvZXMgZmluaXNoIHRvIGdpdmUgYW4gJ2VuZCB0aW1lJyB0byBlc3RhYmxpc2ggYSBiYXNpcworICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2JhcicsIHRpZDogMiwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnYmFyJywgdGlkOiAyLCBwaDogJ0UnfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMik7CisKKyAgICB2YXIgc2xpY2UgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmR1cmF0aW9uLCAwLjAwMyk7CisKKyAgICB2YXIgdDIgPSBwLnRocmVhZHNbMl07CisgICAgdmFyIHNsaWNlMiA9IGZpbmRTbGljZU5hbWVkKHQyLnNsaWNlR3JvdXAsICdjJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlMi50aXRsZSwgJ2MnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UyLmNhdGVnb3J5LCAnYmFyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlMi5zdGFydCwgMC4wMDEpOworICAgIGFzc2VydC5lcXVhbChzbGljZTIuZHVyYXRpb24sIDAuMDAxKTsKKworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDAuMDAwKTsKKyAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWF4LCAwLjAwMyk7CisgIH0pOworCisgIHRlc3QoJ25lc3RlZEF1dG9jbG9zaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIC8vIFRhc2tzIHRoYXQgZG9uJ3QgZmluaXNoLgorICAgICAge25hbWU6ICdhMScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhMicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLjUsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCisKKyAgICAgIC8vIFNsaWNlIHRoYXQgZG9lcyBmaW5pc2ggdG8gZ2l2ZSBhbiAnZW5kIHRpbWUnIHRvIG1ha2UgYXV0b2Nsb3Npbmcgd29yay4KKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDIsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2ZvbycsIHRpZDogMiwgcGg6ICdFJ30KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOworICAgIHZhciB0MSA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV07CisgICAgdmFyIHQyID0gbS5wcm9jZXNzZXNbMV0udGhyZWFkc1syXTsKKworICAgIHZhciBzQTEgPSBmaW5kU2xpY2VOYW1lZCh0MS5zbGljZUdyb3VwLCAnYTEnKTsKKyAgICB2YXIgc0EyID0gZmluZFNsaWNlTmFtZWQodDEuc2xpY2VHcm91cCwgJ2EyJyk7CisgICAgdmFyIHNCID0gZmluZFNsaWNlTmFtZWQodDIuc2xpY2VHcm91cCwgJ2InKTsKKworICAgIGFzc2VydC5lcXVhbChzQTEuZW5kLCAwLjAwMik7CisgICAgYXNzZXJ0LmVxdWFsKHNBMi5lbmQsIDAuMDAyKTsKKyAgfSk7CisKKyAgdGVzdCgndGFza0NvbG9yaW5nJywgZnVuY3Rpb24oKSB7CisgICAgLy8gVGhlIHRlc3QgYmVsb3cgZGVwZW5kcyBvbiBoYXNoaW5nIG9mICdhJyAhPSAnYicuIEZhaWwgZWFybHkgaWYgdGhhdAorICAgIC8vIGFzc3VtcHRpb24gaXMgaW5jb3JyZWN0LgorICAgIGFzc2VydC5ub3RFcXVhbCh0ci51aS5iLmdldFN0cmluZ0hhc2goJ2EnKSwgdHIudWkuYi5nZXRTdHJpbmdIYXNoKCdiJykpOworCisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdFJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMywgY2F0OiAnYmFyJywgdGlkOiAxLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA0LCBjYXQ6ICdiYXInLCB0aWQ6IDEsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDUsIGNhdDogJ2JheicsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNiwgY2F0OiAnYmF6JywgdGlkOiAxLCBwaDogJ0UnfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIHZhciB0ID0gcC50aHJlYWRzWzFdOworICAgIHZhciBhMSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGExLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbChhMS5jYXRlZ29yeSwgJ2ZvbycpOworICAgIHZhciBiID0gdC5zbGljZUdyb3VwLnNsaWNlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoYi50aXRsZSwgJ2InKTsKKyAgICBhc3NlcnQuZXF1YWwoYi5jYXRlZ29yeSwgJ2JhcicpOworICAgIGFzc2VydC5ub3RFcXVhbChiLmNvbG9ySWQsIGExLmNvbG9ySWQpOworICAgIHZhciBhMiA9IHQuc2xpY2VHcm91cC5zbGljZXNbMl07CisgICAgYXNzZXJ0LmVxdWFsKGEyLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbChhMi5jYXRlZ29yeSwgJ2JheicpOworICAgIGFzc2VydC5lcXVhbChhMS5jb2xvcklkLCBhMi5jb2xvcklkKTsKKyAgfSk7CisKKyAgdGVzdCgnZHVyYXRpb25Db2xvckFyZ3VtZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQicsIGNuYW1lOiAndGhyZWFkX3N0YXRlX3Vua25vd24nfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRScsIGNuYW1lOiAndGhyZWFkX3N0YXRlX3Vua25vd24nfSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07CisgICAgdmFyIHQgPSBwLnRocmVhZHNbMV07CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMF0uY29sb3JJZCwKKyAgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfdW5rbm93bicpKTsKKyAgfSk7CisKKyAgdGVzdCgnZHVyYXRpb25Db2xvckVuZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InLCBjbmFtZTogJ3RocmVhZF9zdGF0ZV9zbGVlcGluZyd9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdFJywgY25hbWU6ICd0aHJlYWRfc3RhdGVfdW5rbm93bid9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1swXS5jb2xvcklkLAorICAgICAgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ3RocmVhZF9zdGF0ZV91bmtub3duJykpOworICB9KTsKKworICB0ZXN0KCdjb21wbGV0ZUNvbG9yQXJndW1lbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGR1cjogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ1gnLCBjbmFtZTogJ2dlbmVyaWNfd29yayd9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1swXS5jb2xvcklkLAorICAgICAgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ2dlbmVyaWNfd29yaycpKTsKKyAgfSk7CisKKyAgdGVzdCgnYXN5bmNDb2xvckFyZ3VtZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnYicsIGlkOiAxLCBjbmFtZTogJ2dlbmVyaWNfd29yayd9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdlJywgaWQ6IDEsIGNuYW1lOiAnZ2VuZXJpY193b3JrJ30gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIHZhciB0ID0gcC50aHJlYWRzWzFdOworICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0uY29sb3JJZCwKKyAgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdnZW5lcmljX3dvcmsnKSk7CisgIH0pOworCisgIHRlc3QoJ2FzeW5jQ29sb3JFbmQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdiJywgaWQ6IDEsIGNuYW1lOiAndGhyZWFkX3N0YXRlX3Vua25vd24nfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAyLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnZScsIGlkOiAxLCBjbmFtZTogJ2dlbmVyaWNfd29yayd9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLmNvbG9ySWQsCisgICAgICAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgnZ2VuZXJpY193b3JrJykpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50VGhyZWFkQ29sb3JBcmd1bWVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0knLCBpZDogMSwgY25hbWU6ICdnZW5lcmljX3dvcmsnfSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07CisgICAgdmFyIHQgPSBwLnRocmVhZHNbMV07CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMF0uY29sb3JJZCwKKyAgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdnZW5lcmljX3dvcmsnKSk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRQcm9jZXNzQ29sb3JBcmd1bWVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0knLCBpZDogMSwgczogJ3AnLCBjbmFtZTogJ2dlbmVyaWNfd29yayd9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwocC5pbnN0YW50RXZlbnRzWzBdLmNvbG9ySWQsCisgICAgICAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgnZ2VuZXJpY193b3JrJykpOworICB9KTsKKworICB0ZXN0KCdjb3VudGVyQ29sb3JBcmd1bWVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7J2NhdHMnOiAxMH0sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdDJywgaWQ6IDEsIGNuYW1lOiAnZ2VuZXJpY193b3JrJ30gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIGFzc2VydC5lcXVhbChwLmNvdW50ZXJzWydmb28uYVsxXSddLnNlcmllc1swXS5jb2xvciwKKyAgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdnZW5lcmljX3dvcmsnKSk7CisgICAgYXNzZXJ0LmVxdWFsKHAuY291bnRlcnNbJ2Zvby5hWzFdJ10uc2VyaWVzLmxlbmd0aCwgMSk7CisgIH0pOworCisgIHRlc3QoJ29iamVjdENvbG9yQXJndW1lbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdOJywgaWQ6IDEsIGNuYW1lOiAnZ2VuZXJpY193b3JrJ30sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ08nLCBpZDogMSwgY25hbWU6ICdnZW5lcmljX3dvcmsnfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAzLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRCcsIGlkOiAxLCBjbmFtZTogJ2dlbmVyaWNfd29yayd9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgaSA9IHAub2JqZWN0cy5pbnN0YW5jZU1hcHNCeUlkX1sxXS5pbnN0YW5jZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGkuY29sb3JJZCwKKyAgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdnZW5lcmljX3dvcmsnKSk7CisgIH0pOworCisgIHRlc3QoJ29iamVjdENvbG9yRW5kJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnTicsIGlkOiAxLCBjbmFtZTogJ3RocmVhZF9zdGF0ZV9zbGVlcGluZyd9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDIsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdPJywgaWQ6IDEsIGNuYW1lOiAndGhyZWFkX3N0YXRlX3Vua25vd24nfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAzLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRCcsIGlkOiAxLCBjbmFtZTogJ2dlbmVyaWNfd29yayd9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgaSA9IHAub2JqZWN0cy5pbnN0YW5jZU1hcHNCeUlkX1sxXS5pbnN0YW5jZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGkuY29sb3JJZCwKKyAgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCdnZW5lcmljX3dvcmsnKSk7CisgIH0pOworCisgIHRlc3QoJ211bHRpcGxlVGhyZWFkUGFyc2luZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMSwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAyLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDMsIGNhdDogJ2JhcicsIHRpZDogMiwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNCwgY2F0OiAnYmFyJywgdGlkOiAyLCBwaDogJ0UnfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKKworICAgIGFzc2VydC5lcXVhbChwLm51bVRocmVhZHMsIDIpOworCisgICAgLy8gQ2hlY2sgdGhyZWFkIDEuCisgICAgdmFyIHQgPSBwLnRocmVhZHNbMV07CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHQudGlkLCAxKTsKKworICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmR1cmF0aW9uLCAoMiAtIDEpIC8gMTAwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOworCisgICAgLy8gQ2hlY2sgdGhyZWFkIDIuCisgICAgdmFyIHQgPSBwLnRocmVhZHNbMl07CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHQudGlkLCAyKTsKKworICAgIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnYmFyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN0YXJ0LCAoMyAtIDEpIC8gMTAwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmR1cmF0aW9uLCAoNCAtIDMpIC8gMTAwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOworICB9KTsKKworICB0ZXN0KCdtdWx0aXBsZVBpZFBhcnNpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDIsIHRzOiAzLCBjYXQ6ICdiYXInLCB0aWQ6IDIsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogMiwgdHM6IDQsIGNhdDogJ2JhcicsIHRpZDogMiwgcGg6ICdFJ30KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAyKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIGFzc2VydC5pc0RlZmluZWQocCk7CisKKyAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKKworICAgIC8vIENoZWNrIHByb2Nlc3MgMSB0aHJlYWQgMS4KKyAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwodC50aWQsIDEpOworCisgICAgdmFyIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN0YXJ0LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuZHVyYXRpb24sICgyIC0gMSkgLyAxMDAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7CisKKyAgICAvLyBDaGVjayBwcm9jZXNzIDIgdGhyZWFkIDIuCisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1syXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHApOworICAgIGFzc2VydC5lcXVhbChwLm51bVRocmVhZHMsIDEpOworICAgIHZhciB0ID0gcC50aHJlYWRzWzJdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgMik7CisKKyAgICBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYicpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2JhcicpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgKDMgLSAxKSAvIDEwMDApOworICAgIGFzc2VydC5lcXVhbChzbGljZS5kdXJhdGlvbiwgKDQgLSAzKSAvIDEwMDApOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKKworICAgIC8vIENoZWNrIGdldEFsbFRocmVhZHMuCisgICAgYXNzZXJ0LmRlZXBFcXVhbChtLmdldEFsbFRocmVhZHMoKSwKKyAgICAgICAgICAgICAgICAgICAgICBbbS5wcm9jZXNzZXNbMV0udGhyZWFkc1sxXSwgbS5wcm9jZXNzZXNbMl0udGhyZWFkc1syXV0pOworICB9KTsKKworICAvLyBQcm9jZXNzIG5hbWVzLgorICB0ZXN0KCdwcm9jZXNzTmFtZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdwcm9jZXNzX25hbWUnLCBhcmdzOiB7bmFtZTogJ1NvbWVQcm9jZXNzTmFtZSd9LAorICAgICAgICBwaWQ6IDEsIHRzOiAwLCB0aWQ6IDEsIHBoOiAnTSd9LAorICAgICAge25hbWU6ICdwcm9jZXNzX25hbWUnLCBhcmdzOiB7bmFtZTogJ1NvbWVQcm9jZXNzTmFtZSd9LAorICAgICAgICBwaWQ6IDIsIHRzOiAwLCB0aWQ6IDEsIHBoOiAnTSd9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSwgZmFsc2UpOworICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1sxXS5uYW1lLCAnU29tZVByb2Nlc3NOYW1lJyk7CisgIH0pOworCisgIC8vIFByb2Nlc3MgbGFiZWxzLgorICB0ZXN0KCdwcm9jZXNzTGFiZWxzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAncHJvY2Vzc19sYWJlbHMnLCBhcmdzOiB7bGFiZWxzOiAnZm9vLGJhcixiYXIsZm9vLGJheid9LAorICAgICAgICBwaWQ6IDEsIHRzOiAwLCB0aWQ6IDEsIHBoOiAnTSd9LAorICAgICAge25hbWU6ICdwcm9jZXNzX2xhYmVscycsIGFyZ3M6IHtsYWJlbHM6ICdiYXonfSwKKyAgICAgICAgcGlkOiAyLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKG0ucHJvY2Vzc2VzWzFdLmxhYmVscywgWydmb28nLCAnYmFyJywgJ2JheiddKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKG0ucHJvY2Vzc2VzWzJdLmxhYmVscywgWydiYXonXSk7CisgIH0pOworCisgIC8vIFByb2Nlc3Mgc29ydCBpbmRleC4KKyAgdGVzdCgncHJvY2Vzc1NvcnRJbmRleCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ3Byb2Nlc3NfbmFtZScsIGFyZ3M6IHtuYW1lOiAnRmlyc3QnfSwKKyAgICAgICAgcGlkOiAyLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfSwKKyAgICAgIHtuYW1lOiAncHJvY2Vzc19uYW1lJywgYXJnczoge25hbWU6ICdTZWNvbmQnfSwKKyAgICAgICAgcGlkOiAyLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfSwKKyAgICAgIHtuYW1lOiAncHJvY2Vzc19zb3J0X2luZGV4JywgYXJnczoge3NvcnRfaW5kZXg6IDF9LAorICAgICAgICBwaWQ6IDEsIHRzOiAwLCB0aWQ6IDEsIHBoOiAnTSd9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSwgZmFsc2UpOworCisgICAgLy8gQnkgbmFtZSwgcDEgaXMgYmVmb3JlIHAyLiBCdXQsIGl0cyBzb3J0IGluZGV4IG92ZXJyaWRlcyB0aGF0LgorICAgIGFzc2VydC5pc0Fib3ZlKG0ucHJvY2Vzc2VzWzFdLmNvbXBhcmVUbyhtLnByb2Nlc3Nlc1syXSksIDApOworICB9KTsKKworICAvLyBUaHJlYWQgbmFtZXMuCisgIHRlc3QoJ3RocmVhZE5hbWVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAndGhyZWFkX25hbWUnLCBhcmdzOiB7bmFtZTogJ1RocmVhZCAxJ30sCisgICAgICAgIHBpZDogMSwgdHM6IDAsIHRpZDogMSwgcGg6ICdNJ30sCisgICAgICB7bmFtZTogJ3RocmVhZF9uYW1lJywgYXJnczoge25hbWU6ICdUaHJlYWQgMid9LAorICAgICAgICBwaWQ6IDIsIHRzOiAwLCB0aWQ6IDIsIHBoOiAnTSd9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSwgZmFsc2UpOworICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzFdLm5hbWUsICdUaHJlYWQgMScpOworICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1syXS50aHJlYWRzWzJdLm5hbWUsICdUaHJlYWQgMicpOworICB9KTsKKworICAvLyBUaHJlYWQgc29ydCBpbmRleC4KKyAgdGVzdCgndGhyZWFkU29ydEluZGV4JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAndGhyZWFkX25hbWUnLCBhcmdzOiB7bmFtZTogJ1RocmVhZCAxJ30sCisgICAgICAgIHBpZDogMSwgdHM6IDAsIHRpZDogMSwgcGg6ICdNJ30sCisgICAgICB7bmFtZTogJ3RocmVhZF9uYW1lJywgYXJnczoge25hbWU6ICdUaHJlYWQgMid9LAorICAgICAgICBwaWQ6IDEsIHRzOiAwLCB0aWQ6IDIsIHBoOiAnTSd9LAorICAgICAge25hbWU6ICd0aHJlYWRfc29ydF9pbmRleCcsIGFyZ3M6IHtzb3J0X2luZGV4OiAxfSwKKyAgICAgICAgcGlkOiAxLCB0czogMCwgdGlkOiAxLCBwaDogJ00nfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UsIGZhbHNlKTsKKworICAgIC8vIEJ5IG5hbWUsIHQxIGlzIGJlZm9yZSB0Mi4gQnV0LCBpdHMgc29ydCBpbmRleCBvdmVycmlkZXMgdGhhdC4KKyAgICB2YXIgdDEgPSBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzFdOworICAgIHZhciB0MiA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMl07CisgICAgYXNzZXJ0LmlzQWJvdmUodDEuY29tcGFyZVRvKHQyKSwgMCk7CisgIH0pOworCisgIC8vIENQVSBjb3VudHMuCisgIHRlc3QoJ2NwdUNvdW50cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ251bV9jcHVzJywgYXJnczoge251bWJlcjogNH0sCisgICAgICAgIHBpZDogNywgdHM6IDAsIHRpZDogMCwgcGg6ICdNJ30sCisgICAgICB7bmFtZTogJ251bV9jcHVzJywgYXJnczoge251bWJlcjogNH0sCisgICAgICAgIHBpZDogMTQsIHRzOiAwLCB0aWQ6IDAsIHBoOiAnTSd9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSwgZmFsc2UpOworICAgIGFzc2VydC5lcXVhbChtLmtlcm5lbC5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQsIDQpOworICAgIGFzc2VydC5lcXVhbChtLmtlcm5lbC5iZXN0R3Vlc3NBdENwdUNvdW50LCA0KTsKKyAgfSk7CisKKyAgdGVzdCgnY3B1Q291bnRzV2l0aFNhbmRib3hCZWluZ0NvbmZ1c2VkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnbnVtX2NwdXMnLCBhcmdzOiB7bnVtYmVyOiA0fSwKKyAgICAgICAgcGlkOiA3LCB0czogMCwgdGlkOiAwLCBwaDogJ00nfSwKKyAgICAgIHtuYW1lOiAnbnVtX2NwdXMnLCBhcmdzOiB7bnVtYmVyOiAxfSwKKyAgICAgICAgcGlkOiAxNCwgdHM6IDAsIHRpZDogMCwgcGg6ICdNJ30KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlLCBmYWxzZSk7CisgICAgYXNzZXJ0LmVxdWFsKG0ua2VybmVsLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCwgNCk7CisgICAgYXNzZXJ0LmVxdWFsKG0ua2VybmVsLmJlc3RHdWVzc0F0Q3B1Q291bnQsIDQpOworICB9KTsKKworICB0ZXN0KCdwYXJzaW5nV2hlbkVuZENvbWVzRmlyc3QnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogMSwgdHM6IDEsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdFJ30sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNCwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA1LCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnRSd9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIHZhciB0ID0gcC50aHJlYWRzWzFdOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1swXS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1swXS5jYXRlZ29yeSwgJ2ZvbycpOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzWzBdLnN0YXJ0LCAwLjAwNCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMF0uZHVyYXRpb24sIDAuMDAxKTsKKyAgICBhc3NlcnQuaXNUcnVlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICAgIGFzc2VydC5lcXVhbChtLmltcG9ydFdhcm5pbmdzLmxlbmd0aCwgMSk7CisgIH0pOworCisgIHRlc3QoJ2ltbWVkaWF0ZVBhcnNpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gTmVlZCB0byBpbmNsdWRlIGltbWVkaWF0ZXMgaW5zaWRlIGEgdGFzayBzbyB0aGUgdGltZWxpbmUKKyAgICAgIC8vIHJlY2VudGVyaW5nL3plcm9pbmcgZG9lc24ndCBjbG9iYmVyIHRoZWlyIHRpbWVzdGFtcC4KKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAxLCBjYXQ6ICdmb28nLCB0aWQ6IDEsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdpbW1lZGlhdGUnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMiwgY2F0OiAnYmFyJywgdGlkOiAxLCBwaDogJ0knfSwKKyAgICAgIHtuYW1lOiAnc2xvd2VyJywgYXJnczoge30sIHBpZDogMSwgdHM6IDQsIGNhdDogJ2JheicsIHRpZDogMSwgcGg6ICdpJ30sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNCwgY2F0OiAnZm9vJywgdGlkOiAxLCBwaDogJ0UnfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1sxXTsKKworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1swXS5zdGFydCwgMC4wMDEpOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzWzBdLmR1cmF0aW9uLCAwLjAwMyk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMV0uc3RhcnQsIDAuMDAyKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlc1sxXS5kdXJhdGlvbiwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXNbMl0uc3RhcnQsIDAuMDA0KTsKKworICAgIHZhciBzbGljZSA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmR1cmF0aW9uLCAwLjAwMyk7CisKKyAgICB2YXIgaW1tZWQgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdpbW1lZGlhdGUnKTsKKyAgICBhc3NlcnQuZXF1YWwoaW1tZWQudGl0bGUsICdpbW1lZGlhdGUnKTsKKyAgICBhc3NlcnQuZXF1YWwoaW1tZWQuY2F0ZWdvcnksICdiYXInKTsKKyAgICBhc3NlcnQuZXF1YWwoaW1tZWQuc3RhcnQsIDAuMDAyKTsKKyAgICBhc3NlcnQuZXF1YWwoaW1tZWQuZHVyYXRpb24sIDApOworCisgICAgdmFyIHNsb3dlciA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ3Nsb3dlcicpOworICAgIGFzc2VydC5lcXVhbChzbG93ZXIudGl0bGUsICdzbG93ZXInKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xvd2VyLmNhdGVnb3J5LCAnYmF6Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsb3dlci5zdGFydCwgMC4wMDQpOworICAgIGFzc2VydC5lcXVhbChzbG93ZXIuZHVyYXRpb24sIDApOworICB9KTsKKworICB0ZXN0KCdzaW1wbGVDb3VudGVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZSc6IDB9LCBwaWQ6IDEsIHRzOiAwLCBjYXQ6ICdmb28nLCB0aWQ6IDEsCisgICAgICAgIHBoOiAnQyd9LAorICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlJzogMTB9LCBwaWQ6IDEsIHRzOiAxMCwgY2F0OiAnZm9vJywgdGlkOiAxLAorICAgICAgICBwaDogJ0MnfSwKKyAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZSc6IDB9LCBwaWQ6IDEsIHRzOiAyMCwgY2F0OiAnZm9vJywgdGlkOiAxLAorICAgICAgICBwaDogJ0MnfQorCisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07CisgICAgdmFyIGN0ciA9IG0ucHJvY2Vzc2VzWzFdLmNvdW50ZXJzWydmb28uY3RyJ107CisKKyAgICBhc3NlcnQuZXF1YWwoY3RyLm5hbWUsICdjdHInKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKGN0ci5udW1TYW1wbGVzLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNlcmllcywgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwoY3RyLnNlcmllc1swXS5uYW1lLCAndmFsdWUnKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLnNlcmllc1swXS5jb2xvciwKKyAgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoJ2N0ci52YWx1ZScpKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoY3RyLnRpbWVzdGFtcHMsIFswLCAwLjAxLCAwLjAyXSk7CisKKyAgICB2YXIgc2FtcGxlcyA9IFtdOworICAgIGN0ci5zZXJpZXNbMF0uc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZSkgeworICAgICAgc2FtcGxlcy5wdXNoKHNhbXBsZS52YWx1ZSk7CisgICAgfSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzYW1wbGVzLCBbMCwgMTAsIDBdKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoY3RyLnRvdGFscywgWzAsIDEwLCAwXSk7CisgICAgYXNzZXJ0LmVxdWFsKGN0ci5tYXhUb3RhbCwgMTApOworICB9KTsKKworICB0ZXN0KCdpbnN0YW5jZUNvdW50ZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlJzogMH0sIHBpZDogMSwgdHM6IDAsIGNhdDogJ2ZvbycsIHRpZDogMSwKKyAgICAgICAgcGg6ICdDJywgaWQ6IDB9LAorICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlJzogMTB9LCBwaWQ6IDEsIHRzOiAxMCwgY2F0OiAnZm9vJywgdGlkOiAxLAorICAgICAgICBwaDogJ0MnLCBpZDogMH0sCisgICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUnOiAxMH0sIHBpZDogMSwgdHM6IDEwLCBjYXQ6ICdmb28nLCB0aWQ6IDEsCisgICAgICAgIHBoOiAnQycsIGlkOiAxfSwKKyAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZSc6IDIwfSwgcGlkOiAxLCB0czogMTUsIGNhdDogJ2ZvbycsIHRpZDogMSwKKyAgICAgICAgcGg6ICdDJywgaWQ6IDF9LAorICAgICAge25hbWU6ICdjdHInLCBhcmdzOiB7J3ZhbHVlJzogMzB9LCBwaWQ6IDEsIHRzOiAxOCwgY2F0OiAnZm9vJywgdGlkOiAxLAorICAgICAgICBwaDogJ0MnLCBpZDogMX0sCisgICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUnOiA0MH0sIHBpZDogMSwgdHM6IDIwLCBjYXQ6ICdiYXInLCB0aWQ6IDEsCisgICAgICAgIHBoOiAnQycsIGlkOiAyfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIHZhciBjdHIgPSBtLnByb2Nlc3Nlc1sxXS5jb3VudGVyc1snZm9vLmN0clswXSddOworICAgIGFzc2VydC5lcXVhbChjdHIubmFtZSwgJ2N0clswXScpOworICAgIGFzc2VydC5lcXVhbChjdHIuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNhbXBsZXMsIDIpOworICAgIGFzc2VydC5lcXVhbChjdHIubnVtU2VyaWVzLCAxKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoY3RyLnRpbWVzdGFtcHMsIFswLCAwLjAxXSk7CisgICAgdmFyIHNhbXBsZXMgPSBbXTsKKyAgICBjdHIuc2VyaWVzWzBdLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgIHNhbXBsZXMucHVzaChzYW1wbGUudmFsdWUpOworICAgIH0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc2FtcGxlcywgWzAsIDEwXSk7CisKKyAgICBjdHIgPSBtLnByb2Nlc3Nlc1sxXS5jb3VudGVyc1snZm9vLmN0clsxXSddOworICAgIGFzc2VydC5lcXVhbChjdHIubmFtZSwgJ2N0clsxXScpOworICAgIGFzc2VydC5lcXVhbChjdHIuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNhbXBsZXMsIDMpOworICAgIGFzc2VydC5lcXVhbChjdHIubnVtU2VyaWVzLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGN0ci50aW1lc3RhbXBzLCBbMC4wMSwgMC4wMTUsIDAuMDE4XSk7CisKKyAgICBzYW1wbGVzID0gW107CisgICAgY3RyLnNlcmllc1swXS5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7CisgICAgICBzYW1wbGVzLnB1c2goc2FtcGxlLnZhbHVlKTsKKyAgICB9KTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNhbXBsZXMsIFsxMCwgMjAsIDMwXSk7CisKKyAgICBjdHIgPSBtLnByb2Nlc3Nlc1sxXS5jb3VudGVyc1snYmFyLmN0clsyXSddOworICAgIGFzc2VydC5lcXVhbChjdHIubmFtZSwgJ2N0clsyXScpOworICAgIGFzc2VydC5lcXVhbChjdHIuY2F0ZWdvcnksICdiYXInKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNhbXBsZXMsIDEpOworICAgIGFzc2VydC5lcXVhbChjdHIubnVtU2VyaWVzLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGN0ci50aW1lc3RhbXBzLCBbMC4wMl0pOworICAgIHZhciBzYW1wbGVzID0gW107CisgICAgY3RyLnNlcmllc1swXS5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7CisgICAgICBzYW1wbGVzLnB1c2goc2FtcGxlLnZhbHVlKTsKKyAgICB9KTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNhbXBsZXMsIFs0MF0pOworICB9KTsKKworICB0ZXN0KCdtdWx0aUNvdW50ZXJVcGRhdGVCb3VuZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY3RyID0gbmV3IHRyLm1vZGVsLkNvdW50ZXIodW5kZWZpbmVkLCAndGVzdEJhc2ljQ291bnRlcicsCisgICAgICAgICcnLCAndGVzdEJhc2ljQ291bnRlcicpOworICAgIHZhciB2YWx1ZTFTZXJpZXMgPSBuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygKKyAgICAgICAgJ3ZhbHVlMScsICd0ZXN0QmFzaWNDb3VudGVyLnZhbHVlMScpOworICAgIHZhciB2YWx1ZTJTZXJpZXMgPSBuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygKKyAgICAgICAgJ3ZhbHVlMicsICd0ZXN0QmFzaWNDb3VudGVyLnZhbHVlMicpOworICAgIGN0ci5hZGRTZXJpZXModmFsdWUxU2VyaWVzKTsKKyAgICBjdHIuYWRkU2VyaWVzKHZhbHVlMlNlcmllcyk7CisKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCAwKTsKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgxLCAxKTsKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgyLCAxKTsKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgzLCAyKTsKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg0LCAzKTsKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg1LCAxKTsKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg2LCAzKTsKKyAgICB2YWx1ZTFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg3LCAzLjEpOworCisgICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMCwgMCk7CisgICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgMCk7CisgICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMiwgMSk7CisgICAgdmFsdWUyU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMywgMS4xKTsKKyAgICB2YWx1ZTJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg0LCAwKTsKKyAgICB2YWx1ZTJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg1LCA3KTsKKyAgICB2YWx1ZTJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg2LCAwKTsKKyAgICB2YWx1ZTJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSg3LCAwLjUpOworCisgICAgY3RyLnVwZGF0ZUJvdW5kcygpOworCisgICAgYXNzZXJ0LmVxdWFsKGN0ci5ib3VuZHMubWluLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLmJvdW5kcy5tYXgsIDcpOworICAgIGFzc2VydC5lcXVhbChjdHIubWF4VG90YWwsIDgpOworICAgIGFzc2VydC5kZWVwRXF1YWwoWzAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsCisgICAgICAgICAgICAgICAgICAgICAgIDEsIDIsCisgICAgICAgICAgICAgICAgICAgICAgIDIsIDMuMSwKKyAgICAgICAgICAgICAgICAgICAgICAgMywgMywKKyAgICAgICAgICAgICAgICAgICAgICAgMSwgOCwKKyAgICAgICAgICAgICAgICAgICAgICAgMywgMywKKyAgICAgICAgICAgICAgICAgICAgICAgMy4xLCAzLjZdLCBjdHIudG90YWxzKTsKKyAgfSk7CisKKyAgdGVzdCgnbXVsdGlDb3VudGVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnY3RyJywgYXJnczogeyd2YWx1ZTEnOiAwLCAndmFsdWUyJzogN30sIHBpZDogMSwgdHM6IDAsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdDJ30sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUxJzogMTAsICd2YWx1ZTInOiA0fSwgcGlkOiAxLCB0czogMTAsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdDJ30sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7bmFtZTogJ2N0cicsIGFyZ3M6IHsndmFsdWUxJzogMCwgJ3ZhbHVlMic6IDEgfSwgcGlkOiAxLCB0czogMjAsIGNhdDogJ2ZvbycsIHRpZDogMSwgcGg6ICdDJ30gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgY3RyID0gbS5wcm9jZXNzZXNbMV0uY291bnRlcnNbJ2Zvby5jdHInXTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLm5hbWUsICdjdHInKTsKKworICAgIGFzc2VydC5lcXVhbChjdHIubmFtZSwgJ2N0cicpOworICAgIGFzc2VydC5lcXVhbChjdHIuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLm51bVNhbXBsZXMsIDMpOworICAgIGFzc2VydC5lcXVhbChjdHIubnVtU2VyaWVzLCAyKTsKKworICAgIGFzc2VydC5lcXVhbChjdHIuc2VyaWVzWzBdLm5hbWUsICd2YWx1ZTEnKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyLnNlcmllc1sxXS5uYW1lLCAndmFsdWUyJyk7CisgICAgYXNzZXJ0LmVxdWFsKGN0ci5zZXJpZXNbMF0uY29sb3IsCisgICAgICAgICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKCdjdHIudmFsdWUxJykpOworICAgIGFzc2VydC5lcXVhbChjdHIuc2VyaWVzWzFdLmNvbG9yLAorICAgICAgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygnY3RyLnZhbHVlMicpKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoY3RyLnRpbWVzdGFtcHMsIFswLCAwLjAxLCAwLjAyXSk7CisgICAgdmFyIHNhbXBsZXMgPSBbXTsKKyAgICBjdHIuc2VyaWVzWzBdLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgIHNhbXBsZXMucHVzaChzYW1wbGUudmFsdWUpOworICAgIH0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc2FtcGxlcywgWzAsIDEwLCAwXSk7CisKKyAgICB2YXIgc2FtcGxlczEgPSBbXTsKKyAgICBjdHIuc2VyaWVzWzFdLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgIHNhbXBsZXMxLnB1c2goc2FtcGxlLnZhbHVlKTsKKyAgICB9KTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNhbXBsZXMxLCBbNywgNCwgMV0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoWzAsIDcsCisgICAgICAgICAgICAgICAgICAgICAgIDEwLCAxNCwKKyAgICAgICAgICAgICAgICAgICAgICAgMCwgMV0sIGN0ci50b3RhbHMpOworICAgIGFzc2VydC5lcXVhbChjdHIubWF4VG90YWwsIDE0KTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0T2JqZWN0SW5zdGVhZE9mQXJyYXknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0geyB0cmFjZUV2ZW50czogWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXSB9OworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRTdHJpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKEpTT04uc3RyaW5naWZ5KGV2ZW50cykpOworICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydFN0cmluZ1dpdGhMZWFkaW5nU3BhY2VzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgnICcgKyBKU09OLnN0cmluZ2lmeShldmVudHMpKTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRTdHJpbmdXaXRoVHJhaWxpbmdOZXdMaW5lJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChKU09OLnN0cmluZ2lmeShldmVudHMpICsgJ1xuJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0ubnVtUHJvY2Vzc2VzLCAxKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0U3RyaW5nV2l0aE1pc3NpbmdDbG9zZVNxdWFyZUJyYWNrZXQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXTsKKworICAgIHZhciB0bXAgPSBKU09OLnN0cmluZ2lmeShldmVudHMpOworICAgIGFzc2VydC5lcXVhbCh0bXBbdG1wLmxlbmd0aCAtIDFdLCAnXScpOworCisgICAgLy8gRHJvcCBvZmYgdGhlIHRyYWlsaW5nIF0KKyAgICB2YXIgZHJvcHBlZCA9IHRtcC5zdWJzdHJpbmcoMCwgdG1wLmxlbmd0aCAtIDEpOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGRyb3BwZWQpOworICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydFN0cmluZ1dpdGhFbmRpbmdDb21tYUJ1dE1pc3NpbmdDbG9zZVNxdWFyZUJyYWNrZXQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnWycsCisgICAgICAneyJuYW1lIjogImEiLCAiYXJncyI6IHt9LCAicGlkIjogNTIsICJ0cyI6IDUyNCwgImNhdCI6ICJmb28iLCAidGlkIjogNTMsICJwaCI6ICJCIn0sJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICd7Im5hbWUiOiAiYSIsICJhcmdzIjoge30sICJwaWQiOiA1MiwgInRzIjogNTYwLCAiY2F0IjogImZvbyIsICJ0aWQiOiA1MywgInBoIjogIkUifSwnIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKyAgICB2YXIgdGV4dCA9IGxpbmVzLmpvaW4oJ1xuJyk7CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCh0ZXh0KTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M10uc2xpY2VHcm91cC5sZW5ndGgsIDEpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRTdHJpbmdXaXRoTWlzc2luZ0Nsb3NlU3F1YXJlQnJhY2tldEFuZE5ld2xpbmUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXTsKKworICAgIHZhciB0bXAgPSBKU09OLnN0cmluZ2lmeShldmVudHMpOworICAgIGFzc2VydC5lcXVhbCh0bXBbdG1wLmxlbmd0aCAtIDFdLCAnXScpOworCisgICAgLy8gRHJvcCBvZmYgdGhlIHRyYWlsaW5nIF0gYW5kIGFkZCBhIG5ld2xpbmUKKyAgICB2YXIgZHJvcHBlZCA9IHRtcC5zdWJzdHJpbmcoMCwgdG1wLmxlbmd0aCAtIDEpOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGRyb3BwZWQgKyAnXG4nKTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICB9KTsKKworICB0ZXN0KCdJbXBvcnRTdHJpbmdFbmRpbmdDb21tYUJ1dE1pc3NpbmdDbG9zZVNxdWFyZUJyYWNrZXRDUkxGJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJ1snLAorICAgICAgJ3sibmFtZSI6ICJhIiwgImFyZ3MiOiB7fSwgInBpZCI6IDUyLCAidHMiOiA1MjQsICJjYXQiOiAiZm9vIiwgInRpZCI6IDUzLCAicGgiOiAiQiJ9LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAneyJuYW1lIjogImEiLCAiYXJncyI6IHt9LCAicGlkIjogNTIsICJ0cyI6IDU2MCwgImNhdCI6ICJmb28iLCAidGlkIjogNTMsICJwaCI6ICJFIn0sJyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisgICAgdmFyIHRleHQgPSBsaW5lcy5qb2luKCdcclxuJyk7CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCh0ZXh0KTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICAgIGFzc2VydC5lcXVhbChtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M10uc2xpY2VHcm91cC5sZW5ndGgsIDEpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRPbGRGb3JtYXQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnWycsCisgICAgICAneyJjYXQiOiJhIiwicGlkIjo5LCJ0aWQiOjgsInRzIjoxOTQsInBoIjoiRSIsIm5hbWUiOiJJIiwiYXJncyI6e319LCcsCisgICAgICAneyJjYXQiOiJiIiwicGlkIjo5LCJ0aWQiOjgsInRzIjoxOTQsInBoIjoiQiIsIm5hbWUiOiJJIiwiYXJncyI6e319JywKKyAgICAgICddJworICAgIF07CisgICAgdmFyIHRleHQgPSBsaW5lcy5qb2luKCdcbicpOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKHRleHQpOworICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7CisgICAgYXNzZXJ0LmVxdWFsKG0ucHJvY2Vzc2VzWzldLnRocmVhZHNbOF0uc2xpY2VHcm91cC5sZW5ndGgsIDEpOworICB9KTsKKworICB0ZXN0KCdzdGFydEZpbmlzaE9uZVNsaWNlT25lVGhyZWFkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIC8vIFRpbWUgaXMgaW50ZW50aW9uYWxseSBvdXQgb2Ygb3JkZXIuCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnY2F0JywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdGJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYScsIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2NhdCcsIHRpZDogNTMsCisgICAgICAgIHBoOiAnUycsIGlkOiA3MiwgYXJnczogeydmb28nOiAnYmFyJ319CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLmNhdGVnb3J5LCAnY2F0Jyk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0uaXNUb3BMZXZlbCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXS5pZCwgNzIpOworICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0uYXJncy5mb28sICdiYXInKTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLnN0YXJ0LCAwKTsKKyAgICBhc3NlcnQuY2xvc2VUbygKKyAgICAgICAgKDYwIC0gMjQpIC8gMTAwMCwgdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLnN0YXJ0VGhyZWFkLCB0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdLmVuZFRocmVhZCwgdCk7CisgIH0pOworCisgIHRlc3QoJ2VuZEFyZ3NBZGRlZFRvU2xpY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge3g6IDF9LCBwaWQ6IDUyLCB0czogNTIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt5OiAyfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOworICAgIGFzc2VydC5pc0RlZmluZWQocCk7CisKKyAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHQudGlkLCA1Myk7CisgICAgdmFyIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN0YXJ0LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmFyZ3NbJ3gnXSwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmFyZ3NbJ3knXSwgMik7CisgIH0pOworCisgIHRlc3QoJ2VuZEFyZ092ZXJyd3JpdGVzT3JpZ2luYWxBcmdWYWx1ZUlmRHVwbGljYXRlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7ejogM30sIHBpZDogNTIsIHRzOiA2MjksIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge3o6IDR9LCBwaWQ6IDUyLCB0czogNjMxLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1s1Ml07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKKworICAgIGFzc2VydC5lcXVhbChwLm51bVRocmVhZHMsIDEpOworICAgIHZhciB0ID0gcC50aHJlYWRzWzUzXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIHZhciBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYicpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5jYXRlZ29yeSwgJ2ZvbycpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOworICAgIGFzc2VydC5lcXVhbChzbGljZS5hcmdzWyd6J10sIDQpOworICB9KTsKKworICB0ZXN0KCdhc3luY0VuZEFyZ3NBZGRlZFRvU2xpY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gVGltZSBpcyBpbnRlbnRpb25hbGx5IG91dCBvZiBvcmRlci4KKyAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt5OiAyfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdGJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdTJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdjJyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuYXJnc1sneCddLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuYXJnc1sneSddLCAyKTsKKworICAgIGFzc2VydC5pc0RlZmluZWQocGFyZW50U2xpY2Uuc3ViU2xpY2VzKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7CisgIH0pOworCisgIHRlc3QoJ2FzeW5jRW5kQXJnT3ZlcndyaXRlc09yaWdpbmFsQXJnVmFsdWVJZkR1cGxpY2F0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gVGltZSBpcyBpbnRlbnRpb25hbGx5IG91dCBvZiBvcmRlci4KKyAgICAgIHtuYW1lOiAnZCcsIGFyZ3M6IHt6OiA0fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdGJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnZCcsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdTJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBwYXJlbnRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UudGl0bGUsICdkJyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShwYXJlbnRTbGljZS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuYXJnc1sneiddLCA0KTsKKworICAgIGFzc2VydC5pc0RlZmluZWQocGFyZW50U2xpY2Uuc3ViU2xpY2VzKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7CisgIH0pOworCisgIHRlc3QoJ2FzeW5jU3RlcHNJbk9uZVRocmVhZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICAvLyBUaW1lIGlzIGludGVudGlvbmFsbHkgb3V0IG9mIG9yZGVyLgorICAgICAge25hbWU6ICdhJywgYXJnczoge3o6IDN9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0YnLCBpZDogNzJ9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge25hbWU6ICdhJywgYXJnczoge3N0ZXA6ICdzMScsIHk6IDJ9LCBwaWQ6IDUyLCB0czogNTQ4LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ1QnLCBpZDogNzJ9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge25hbWU6ICdhJywgYXJnczoge3g6IDF9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ1MnLCBpZDogNzJ9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisgICAgdmFyIHBhcmVudFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuaXNUcnVlKHBhcmVudFNsaWNlLmlzVG9wTGV2ZWwpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3gnXSwgMSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBhcmVudFNsaWNlLmFyZ3NbJ3knXSk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3onXSwgMyk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmVudFNsaWNlLnN1YlNsaWNlcyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworCisgICAgdmFyIHN1YlNsaWNlID0gcGFyZW50U2xpY2Uuc3ViU2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChzdWJTbGljZS50aXRsZSwgJ2E6czEnKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuaXNGYWxzZShzdWJTbGljZS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuY2xvc2VUbygoNTQ4IC0gNTI0KSAvIDEwMDAsIHN1YlNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygoNTYwIC0gNTQ4KSAvIDEwMDAsIHN1YlNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3ViU2xpY2UuYXJnc1sneCddKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UuYXJnc1sneSddLCAyKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3ViU2xpY2UuYXJnc1sneiddKTsKKyAgfSk7CisKKyAgdGVzdCgnYXN5bmNTdGVwc01pc3NpbmdTdGFydCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICAvLyBUaW1lIGlzIGludGVudGlvbmFsbHkgb3V0IG9mIG9yZGVyLgorICAgICAge25hbWU6ICdhJywgYXJnczoge3o6IDN9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ0YnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge3N0ZXA6ICdzMScsIHk6IDJ9LCBwaWQ6IDUyLCB0czogNTQ4LCBjYXQ6ICdmb28nLAorICAgICAgICB0aWQ6IDUzLCBwaDogJ1QnLCBpZDogNzJ9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHQpOworICB9KTsKKworICB0ZXN0KCdhc3luY1N0ZXBzTWlzc2luZ0ZpbmlzaCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICAvLyBUaW1lIGlzIGludGVudGlvbmFsbHkgb3V0IG9mIG9yZGVyLgorICAgICAge25hbWU6ICdhJywgYXJnczoge3N0ZXA6ICdzMScsIHk6IDJ9LCBwaWQ6IDUyLCB0czogNTQ4LCBjYXQ6ICdmb28nLAorICAgICAgICB0aWQ6IDUzLCBwaDogJ1QnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge3o6IDN9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ1MnLCBpZDogNzJ9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHQpOworICB9KTsKKworICB0ZXN0KCdhc3luY1N0ZXBFbmRFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICAvLyBUaW1lIGlzIGludGVudGlvbmFsbHkgb3V0IG9mIG9yZGVyLgorICAgICAge25hbWU6ICdhJywgYXJnczoge3o6IDN9LCBwaWQ6IDUyLCB0czogNTYwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ0YnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge3N0ZXA6ICdzMScsIHk6IDJ9LCBwaWQ6IDUyLCB0czogNTQ4LCBjYXQ6ICdmb28nLAorICAgICAgICB0aWQ6IDUzLCBwaDogJ3AnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge3g6IDF9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ1MnLCBpZDogNzJ9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisgICAgdmFyIHBhcmVudFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuaXNUcnVlKHBhcmVudFNsaWNlLmlzVG9wTGV2ZWwpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3gnXSwgMSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBhcmVudFNsaWNlLmFyZ3NbJ3knXSk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3onXSwgMyk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmVudFNsaWNlLnN1YlNsaWNlcyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBzdWJTbGljZSA9IHBhcmVudFNsaWNlLnN1YlNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UudGl0bGUsICdhOnMxJyk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmlzRmFsc2Uoc3ViU2xpY2UuaXNUb3BMZXZlbCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlLnN0YXJ0LCAwKTsKKyAgICBhc3NlcnQuY2xvc2VUbygoNTQ4IC0gNTI0KSAvIDEwMDAsIHN1YlNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3ViU2xpY2UuYXJnc1sneCddKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UuYXJnc1sneSddLCAyKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3ViU2xpY2UuYXJnc1sneiddKTsKKyAgfSk7CisKKyAgdGVzdCgnYXN5bmNTdGVwTWlzbWF0Y2gnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gVGltZSBpcyBpbnRlbnRpb25hbGx5IG91dCBvZiBvcmRlci4KKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdGJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtzdGVwOiAnczInfSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdUJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHtzdGVwOiAnczEnfSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdwJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdTJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuaXNUcnVlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICB9KTsKKworICB0ZXN0KCdhc3luY1NsaWNlV2l0aG91dENQVUR1cmF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIC8vIEFzeW5jIHNsaWNlIHdpdGhvdXQgdHRzIGZpZWxkLgorICAgICAge25hbWU6ICdhJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogMTAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIGlkOiA3MiwgcGg6ICdiJ30sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7cGFyYW1zOiAnJ30sIHBpZDogNTIsIHRzOiAyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgaWQ6IDcyLCBwaDogJ2UnfSwKKyAgICAgIC8vIEFzeW5jIHNsaWNlIHdpdGggdHRzIGZpZWxkIGJ1dCB3aXRob3V0IHVzZV9hc3luY190dHMgbWFya2VyIGZpZWxkLgorICAgICAge25hbWU6ICdiJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogMzAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIGlkOiA3MiwgcGg6ICdiJywgdHRzOiAzMDAwMH0sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7cGFyYW1zOiAnJ30sIHBpZDogNTIsIHRzOiA0MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgaWQ6IDcyLCBwaDogJ2UnLCB0dHM6IDQwMDAwfSwKKyAgICAgIC8vIEFzeW5jIHNsaWNlIHdpdGggdHRzIGZpZWxkIGJ1dCB3aXRoIHVzZV9hc3luY190dHMgbWFya2VyIHNldCB0byAwLgorICAgICAge25hbWU6ICdjJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogNTAwMDAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgaWQ6IDcyLCBwaDogJ2InLCB0dHM6IDUwMDAwLCB1c2VfYXN5bmNfdHRzOiAwfSwKKyAgICAgIHtuYW1lOiAnYycsIGFyZ3M6IHtwYXJhbXM6ICcnfSwgcGlkOiA1MiwgdHM6IDYwMDAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBpZDogNzIsIHBoOiAnZScsIHR0czogNjAwMDAsIHVzZV9hc3luY190dHM6IDB9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMyk7CisKKyAgICB2YXIgbm9UVFNOb0ZpZWxkID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChub1RUU05vRmllbGQuY3B1U3RhcnQpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChub1RUU05vRmllbGQuY3B1RHVyYXRpb24pOworCisgICAgdmFyIFRUU05vRmllbGQgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV07CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKFRUU05vRmllbGQuY3B1U3RhcnQpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChUVFNOb0ZpZWxkLmNwdUR1cmF0aW9uKTsKKworICAgIHZhciBUVFNaZXJvRmllbGQgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMl07CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKFRUU1plcm9GaWVsZC5jcHVTdGFydCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKFRUU1plcm9GaWVsZC5jcHVEdXJhdGlvbik7CisgIH0pOworCisgIHRlc3QoJ2FzeW5jU2xpY2VXaXRoQ1BVRHVyYXRpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge3BhcmFtczogJyd9LCBwaWQ6IDUyLCB0czogNTAwMDAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgaWQ6IDcyLCBwaDogJ2InLCB0dHM6IDEwMDAwMCwgdXNlX2FzeW5jX3R0czogMX0sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7cGFyYW1zOiAnJ30sIHBpZDogNTIsIHRzOiA2MDAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgaWQ6IDcyLCBwaDogJ2UnLCB0dHM6IDEwNTAwMCwgdXNlX2FzeW5jX3R0czogMX0KKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKKworICAgIHZhciBhc3luY1NsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5pc0RlZmluZWQoYXN5bmNTbGljZSk7CisgICAgYXNzZXJ0LmVxdWFsKGFzeW5jU2xpY2UuZHVyYXRpb24sIDEwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXN5bmNTbGljZS5jcHVTdGFydCwgMTAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXN5bmNTbGljZS5jcHVEdXJhdGlvbiwgNSk7CisgIH0pOworCisgIHRlc3QoJ25lc3RhYmxlQXN5bmNCYXNpYycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyNSwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt5OiAyfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTY1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2UnLCBpZDogNzJ9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisgICAgdmFyIHBhcmVudFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuaXNUcnVlKHBhcmVudFNsaWNlLmlzVG9wTGV2ZWwpOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJlbnRTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKKyAgICB2YXIgc3ViU2xpY2UgPSBwYXJlbnRTbGljZS5zdWJTbGljZXNbMF07CisgICAgYXNzZXJ0LmlzRmFsc2Uoc3ViU2xpY2UuaXNUb3BMZXZlbCk7CisgICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIGJvdGggQkVHSU4gYW5kIEVORCBldmVudC4KKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UuYXJnc1sneCddLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UuYXJnc1sneSddLCAyKTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoc3ViU2xpY2Uuc3ViU2xpY2VzLCBbXSk7CisgIH0pOworCisKKyAgdGVzdCgnbmVzdGFibGVBc3luY05vQXJncycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ25hbWUnLCBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICduYW1lJywgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBzbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICduYW1lJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzbGljZS5pc1RvcExldmVsKTsKKworICAgIGFzc2VydC5pc0RlZmluZWQoc2xpY2Uuc3ViU2xpY2VzKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMCk7CisKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNsaWNlLmFyZ3MsIHt9KTsKKyAgfSk7CisKKyAgdGVzdCgnbmVzdGFibGVBc3luY0NvbWJpbmVkUGFyYW1zJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt4OiAxLCBwYXJhbXM6IHtwMTogJ2hlbGxvJywgcDI6IDEyM319LAorICAgICAgICBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge3k6IDIsIHBhcmFtczoge3AzOiAnaGknfX0sIHBpZDogNTIsIHRzOiA1NjAsCisgICAgICAgIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnZScsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7cGFyYW1zOiB7cDQ6ICdmb28nfX0sCisgICAgICAgIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnYicsIGlkOiA3M30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7cGFyYW1zOiAnJ30sIHBpZDogNTIsIHRzOiA1NjAsCisgICAgICAgIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnZScsIGlkOiA3M30sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7cGFyYW1zOiB7cDU6ICdiYXInfX0sCisgICAgICAgIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnYicsIGlkOiA3NH0sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwKKyAgICAgICAgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdlJywgaWQ6IDc0fQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDMpOworCisgICAgdmFyIHNsaWNlQSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgYm90aCBCRUdJTiBhbmQgRU5EIGV2ZW50LgorICAgIGFzc2VydC5lcXVhbChzbGljZUEuYXJnc1sneCddLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2VBLmFyZ3NbJ3knXSwgMik7CisgICAgdmFyIHBhcmFtc0EgPSBzbGljZUEuYXJnc1sncGFyYW1zJ107CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJhbXNBKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyYW1zQS5wMSwgJ2hlbGxvJyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmFtc0EucDIsIDEyMyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmFtc0EucDMsICdoaScpOworICAgIGFzc2VydC5pc1RydWUoc2xpY2VBLmlzVG9wTGV2ZWwpOworCisgICAgdmFyIHNsaWNlQiA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1sxXTsKKyAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgYm90aCBCRUdJTiBhbmQgRU5EIGV2ZW50LgorICAgIHZhciBwYXJhbXNCID0gc2xpY2VCLmFyZ3NbJ3BhcmFtcyddOworICAgIGFzc2VydC5pc0RlZmluZWQocGFyYW1zQik7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmFtc0IucDQsICdmb28nKTsKKyAgICBhc3NlcnQuaXNUcnVlKHNsaWNlQi5pc1RvcExldmVsKTsKKworICAgIHZhciBzbGljZUMgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMl07CisgICAgLy8gQXJndW1lbnRzIHNob3VsZCBpbmNsdWRlIGJvdGggQkVHSU4gYW5kIEVORCBldmVudC4KKyAgICB2YXIgcGFyYW1zQyA9IHNsaWNlQy5hcmdzWydwYXJhbXMnXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmFtc0MpOworICAgIGFzc2VydC5lcXVhbChwYXJhbXNDLnA1LCAnYmFyJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzbGljZUMuaXNUb3BMZXZlbCk7CisgIH0pOworCisgIHRlc3QoJ25lc3RhYmxlQXN5bmNNYW55TGV2ZWxzJywgZnVuY3Rpb24oKSB7CisgICAgLy8gVGhlcmUgYXJlIDUgbmVzdGVkIGxldmVscy4KKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdsMScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsMicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI1LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsMycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI2LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsNCcsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI3LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsNScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI4LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsNScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI5LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2UnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsNCcsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTMwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2UnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsMycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTMxLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2UnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsMicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTMyLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2UnLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdsMScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTMzLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2UnLCBpZDogNzJ9CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICAvLyBQZXJmZWN0bHkgbWF0Y2hlZCBldmVudHMgc2hvdWxkIG5vdCBwcm9kdWNlIGEgd2FybmluZy4KKyAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisKKyAgICB2YXIgbDFTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwobDFTbGljZS50aXRsZSwgJ2wxJyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMCwgbDFTbGljZS5zdGFydCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oOSAvIDEwMDAsIGwxU2xpY2UuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5pc1RydWUobDFTbGljZS5pc1RvcExldmVsKTsKKworICAgIGFzc2VydC5pc0RlZmluZWQobDFTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChsMVNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBsMlNsaWNlID0gbDFTbGljZS5zdWJTbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGwyU2xpY2UudGl0bGUsICdsMicpOworICAgIGFzc2VydC5jbG9zZVRvKDEgLyAxMDAwLCBsMlNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyg3IC8gMTAwMCwgbDJTbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobDJTbGljZS5pc1RvcExldmVsKTsKKworICAgIGFzc2VydC5pc0RlZmluZWQobDJTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChsMlNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBsM1NsaWNlID0gbDJTbGljZS5zdWJTbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGwzU2xpY2UudGl0bGUsICdsMycpOworICAgIGFzc2VydC5jbG9zZVRvKDIgLyAxMDAwLCBsM1NsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyg1IC8gMTAwMCwgbDNTbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobDNTbGljZS5pc1RvcExldmVsKTsKKworICAgIGFzc2VydC5pc0RlZmluZWQobDNTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChsM1NsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBsNFNsaWNlID0gbDNTbGljZS5zdWJTbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGw0U2xpY2UudGl0bGUsICdsNCcpOworICAgIGFzc2VydC5jbG9zZVRvKDMgLyAxMDAwLCBsNFNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygzIC8gMTAwMCwgbDRTbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobDRTbGljZS5pc1RvcExldmVsKTsKKworICAgIGFzc2VydC5pc0RlZmluZWQobDRTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChsNFNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBsNVNsaWNlID0gbDRTbGljZS5zdWJTbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGw1U2xpY2UudGl0bGUsICdsNScpOworICAgIGFzc2VydC5jbG9zZVRvKDQgLyAxMDAwLCBsNVNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgbDVTbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobDVTbGljZS5pc1RvcExldmVsKTsKKyAgfSk7CisKKyAgdGVzdCgnbmVzdGFibGVBc3luY0luc3RhbnRFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICduJywgaWQ6IDcxfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdkJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnbicsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2NSwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDIpOworICAgIHZhciBpbnN0YW50U2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGluc3RhbnRTbGljZS50aXRsZSwgJ2MnKTsKKyAgICBhc3NlcnQuY2xvc2VUbygwLCBpbnN0YW50U2xpY2Uuc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKDAsIGluc3RhbnRTbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LnNhbWVNZW1iZXJzKGluc3RhbnRTbGljZS5zdWJTbGljZXMsIFtdKTsKKyAgICBhc3NlcnQuaXNUcnVlKGluc3RhbnRTbGljZS5pc1RvcExldmVsKTsKKworICAgIHZhciBuZXN0ZWRTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwobmVzdGVkU2xpY2UudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMCwgbmVzdGVkU2xpY2Uuc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKCg1NjUgLSA1MjQpIC8gMTAwMCwgbmVzdGVkU2xpY2UuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5pc1RydWUobmVzdGVkU2xpY2UuaXNUb3BMZXZlbCk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChuZXN0ZWRTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChuZXN0ZWRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKKyAgICB2YXIgbmVzdGVkSW5zdGFudFNsaWNlID0gbmVzdGVkU2xpY2Uuc3ViU2xpY2VzWzBdOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhuZXN0ZWRJbnN0YW50U2xpY2Uuc3ViU2xpY2VzLCBbXSk7CisgICAgYXNzZXJ0LmVxdWFsKG5lc3RlZEluc3RhbnRTbGljZS50aXRsZSwgJ2QnKTsKKyAgICBhc3NlcnQuaXNGYWxzZShuZXN0ZWRJbnN0YW50U2xpY2UuaXNUb3BMZXZlbCk7CisgIH0pOworCisgIHRlc3QoJ25lc3RhYmxlQXN5bmNVbm1hdGNoZWRPdXRlckJlZ2luRXZlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge3g6IDF9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnZScsIGlkOiA3Mn0KKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIC8vIFVubWF0Y2hlZCBCRUdJTiBzaG91bGQgcHJvZHVjZSBhIHdhcm5pbmcuCisgICAgYXNzZXJ0LmlzVHJ1ZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisgICAgdmFyIHBhcmVudFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuaXNUcnVlKHBhcmVudFNsaWNlLmlzVG9wTGV2ZWwpOworICAgIGFzc2VydC5jbG9zZVRvKDAsIHBhcmVudFNsaWNlLnN0YXJ0LCAwLjAwMDEpOworICAgIC8vIFVubWF0Y2hlZCBCRUdJTiBldmVudCBlbmRzIGF0IHRoZSBsYXN0IGV2ZW50IG9mIHRoYXQgSUQuCisgICAgYXNzZXJ0LmNsb3NlVG8oMzYgLyAxMDAwLCBwYXJlbnRTbGljZS5kdXJhdGlvbiwgMC4wMDAxKTsKKyAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgb25seSBpbmNsdWRlIGl0cyBhcmd1bWVudHMuCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBhcmVudFNsaWNlLmFyZ3NbJ3knXSk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLmFyZ3NbJ3gnXSwgMSk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJlbnRTbGljZS5lcnJvcik7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmVudFNsaWNlLnN1YlNsaWNlcyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIHZhciBzdWJTbGljZSA9IHBhcmVudFNsaWNlLnN1YlNsaWNlc1swXTsKKyAgICBhc3NlcnQuaXNGYWxzZShzdWJTbGljZS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgc3ViU2xpY2Uuc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKDM1IC8gMTAwMCwgc3ViU2xpY2UuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhzdWJTbGljZS5zdWJTbGljZXMsIFtdKTsKKyAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgdGhvc2Ugb2YgdGhlIEVORCBldmVudC4KKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2UuYXJnc1sneSddLCAyKTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoc3ViU2xpY2Uuc3ViU2xpY2VzLCBbXSk7CisgIH0pOworCisgIHRlc3QoJ25lc3RhYmxlQXN5bmNVbm1hdGNoZWRJbm5lckJlZ2luRXZlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge3o6IDN9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLAorICAgICAgICBwaDogJ2InLCBpZDogNzJ9LAorICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnbicsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7eDogMX0sIHBpZDogNTIsIHRzOiA1MjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NjUsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnZScsIGlkOiA3Mn0KKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIC8vIFVubWF0Y2hlZCBCRUdJTiBzaG91bGQgcHJvZHVjZSBhIHdhcm5pbmcuCisgICAgYXNzZXJ0LmlzVHJ1ZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisgICAgdmFyIHBhcmVudFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwocGFyZW50U2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuaXNUcnVlKHBhcmVudFNsaWNlLmlzVG9wTGV2ZWwpOworICAgIGFzc2VydC5jbG9zZVRvKDAsIHBhcmVudFNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyg0MSAvIDEwMDAsIHBhcmVudFNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgYm90aCBCRUdJTiBhbmQgRU5EIGV2ZW50LgorICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd5J10sIDIpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd6J10sIDMpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChwYXJlbnRTbGljZS5hcmdzWyd4J10pOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJlbnRTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAyKTsKKyAgICB2YXIgc3ViU2xpY2VJbnN0YW50ID0gcGFyZW50U2xpY2Uuc3ViU2xpY2VzWzBdOworICAgIHZhciBzdWJTbGljZVVubWF0Y2hlZCA9IHBhcmVudFNsaWNlLnN1YlNsaWNlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2VJbnN0YW50LnRpdGxlLCAnYycpOworICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlSW5zdGFudC5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2VVbm1hdGNoZWQudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmlzRmFsc2Uoc3ViU2xpY2VVbm1hdGNoZWQuaXNUb3BMZXZlbCk7CisgICAgLy8gVW5tYXRjaGVkIEJFR0lOIGVuZHMgYXQgdGhlIGxhc3QgZXZlbnQgb2YgdGhhdCBJRC4KKyAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgc3ViU2xpY2VVbm1hdGNoZWQuc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKDQwIC8gMTAwMCwgc3ViU2xpY2VVbm1hdGNoZWQuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhzdWJTbGljZVVubWF0Y2hlZC5zdWJTbGljZXMsIFtdKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2VVbm1hdGNoZWQuYXJnc1sneCddLCAxKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3ViU2xpY2VVbm1hdGNoZWRbJ3knXSk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChzdWJTbGljZVVubWF0Y2hlZC5lcnJvcik7CisgICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHN1YlNsaWNlSW5zdGFudC5zdGFydCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMCwgc3ViU2xpY2VJbnN0YW50LmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoc3ViU2xpY2VJbnN0YW50LnN1YlNsaWNlcywgW10pOworICB9KTsKKworICB0ZXN0KCduZXN0YWJsZUFzeW5jVW5tYXRjaGVkT3V0ZXJFbmRFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIC8vIEV2ZW50cyBhcmUgaW50ZW50aW9uYWxseSBvdXQtb2Ytb3JkZXIuCisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDUyNSwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdiJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt5OiAyfSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDUyNCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgLy8gVW5tYXRjaGVkIEVORCBzaG91bGQgcHJvZHVjZSBhIHdhcm5pbmcuCisgICAgYXNzZXJ0LmlzVHJ1ZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMik7CisgICAgdmFyIHVubWF0Y2hlZFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIHZhciBzbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwodW5tYXRjaGVkU2xpY2UudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMCwgdW5tYXRjaGVkU2xpY2Uuc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5pc1RydWUodW5tYXRjaGVkU2xpY2UuaXNUb3BMZXZlbCk7CisgICAgLy8gVW5tYXRjaGVkIEVORCBldmVudCBiZWdpbnMgYXQgdGhlIGZpcnN0IGV2ZW50IG9mIHRoYXQgSUQuIEluIHRoaXMKKyAgICAvLyBjYXNlLCB0aGUgZmlyc3QgZXZlbnQgaGFwcGVucyB0byBiZSB0aGUgc2FtZSB1bm1hdGNoZWQgZXZlbnQuCisgICAgYXNzZXJ0LmNsb3NlVG8oMCAvIDEwMDAsIHVubWF0Y2hlZFNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQodW5tYXRjaGVkU2xpY2UuYXJnc1sneCddKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQodW5tYXRjaGVkU2xpY2UuYXJnc1sneSddKTsKKyAgICBhc3NlcnQuZXF1YWwodW5tYXRjaGVkU2xpY2UuYXJnc1sneiddLCAzKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHVubWF0Y2hlZFNsaWNlLmVycm9yKTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnModW5tYXRjaGVkU2xpY2Uuc3ViU2xpY2VzLCBbXSk7CisKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzbGljZS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgc2xpY2Uuc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKDM1IC8gMTAwMCwgc2xpY2UuZHVyYXRpb24sIDFlLTUpOworICAgIC8vIEFyZ3VtZW50cyBzaG91bGQgaW5jbHVkZSBib3RoIEJFR0lOIGFuZCBFTkQgZXZlbnQuCisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmFyZ3NbJ3gnXSwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmFyZ3NbJ3knXSwgMik7CisgICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHNsaWNlLnN1YlNsaWNlcywgW10pOworICB9KTsKKworICB0ZXN0KCduZXN0YWJsZUFzeW5jVW5tYXRjaGVkSW5uZXJFbmRFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7eDogMX0sIHBpZDogNTIsIHRzOiA1MjQsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyNSwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICduJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYicsIGFyZ3M6IHt6OiAzfSwgcGlkOiA1MiwgdHM6IDUyNSwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt5OiAyfSwgcGlkOiA1MiwgdHM6IDU2NSwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgLy8gVW5tYXRjaGVkIEVORCBzaG91bGQgcHJvZHVjZSBhIHdhcm5pbmcuCisgICAgYXNzZXJ0LmlzVHJ1ZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKyAgICBhc3NlcnQuZXF1YWwodC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisgICAgdmFyIHBhcmVudFNsaWNlID0gdC5hc3luY1NsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuaXNUcnVlKHBhcmVudFNsaWNlLmlzVG9wTGV2ZWwpOworICAgIGFzc2VydC5jbG9zZVRvKDAsIHBhcmVudFNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyg0MSAvIDEwMDAsIHBhcmVudFNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICAvLyBBcmd1bWVudHMgc2hvdWxkIGluY2x1ZGUgYm90aCBCRUdJTiBhbmQgRU5EIGV2ZW50LgorICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd4J10sIDEpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5hcmdzWyd5J10sIDIpOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChwYXJlbnRTbGljZS5zdWJTbGljZXMpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5zdWJTbGljZXMubGVuZ3RoLCAyKTsKKyAgICB2YXIgc3ViU2xpY2VJbnN0YW50ID0gcGFyZW50U2xpY2Uuc3ViU2xpY2VzWzBdOworICAgIHZhciBzdWJTbGljZVVubWF0Y2hlZCA9IHBhcmVudFNsaWNlLnN1YlNsaWNlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2VJbnN0YW50LnRpdGxlLCAnYycpOworICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlSW5zdGFudC5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2VVbm1hdGNoZWQudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmlzRmFsc2Uoc3ViU2xpY2VVbm1hdGNoZWQuaXNUb3BMZXZlbCk7CisgICAgLy8gVW5tYXRjaGVkIEVORCBiZWdpbnMgYXQgdGhlIGZpcnN0IGV2ZW50IG9mIHRoYXQgSUQuCisgICAgYXNzZXJ0LmNsb3NlVG8oMCAvIDEwMDAsIHN1YlNsaWNlVW5tYXRjaGVkLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgc3ViU2xpY2VVbm1hdGNoZWQuZHVyYXRpb24sIDFlLTUpOworICAgIC8vIEFyZ3VtZW50cyBzaG91bGQgaW5jbHVkZSBib3RoIEJFR0lOIGFuZCBFTkQgZXZlbnQuCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlNsaWNlVW5tYXRjaGVkLmFyZ3NbJ3gnXSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlNsaWNlVW5tYXRjaGVkLmFyZ3NbJ3knXSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlNsaWNlVW5tYXRjaGVkLmFyZ3NbJ3onXSwgMyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChzdWJTbGljZVVubWF0Y2hlZC5lcnJvcik7CisKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoc3ViU2xpY2VVbm1hdGNoZWQuc3ViU2xpY2VzLCBbXSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHN1YlNsaWNlSW5zdGFudC5zdGFydCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMCwgc3ViU2xpY2VJbnN0YW50LmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoc3ViU2xpY2VJbnN0YW50LnN1YlNsaWNlcywgW10pOworICB9KTsKKworICB0ZXN0KCduZXN0YWJsZUFzeW5jU2FtZUlERGlmZmVyZW50Q2F0ZWdvcnknLCBmdW5jdGlvbigpIHsKKyAgICAvLyBFdmVudHMgd2l0aCB0aGUgc2FtZSBJRCwgYnV0IGRpZmZlcmVudCBjYXRlZ29yaWVzIHNob3VsZCBub3QgYmUKKyAgICAvLyBjb25zaWRlcmVkIGFzIG5lc3RlZC4KKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdFVkVOVF9BJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MDAsIGNhdDogJ2ZvbycsIHRpZDogNTMsCisgICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ0VWRU5UX0InLCBhcmdzOiB7eTogMn0sIHBpZDogNTIsIHRzOiA1NTAsIGNhdDogJ2JhcicsIHRpZDogNTMsCisgICAgICAgIHBoOiAnYicsIGlkOiA3Mn0sCisgICAgICB7bmFtZTogJ0VWRU5UX0InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYwMCwgY2F0OiAnYmFyJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfSwKKyAgICAgIHtuYW1lOiAnRVZFTlRfQScsIGFyZ3M6IHt4OiAxfSwgcGlkOiA1MiwgdHM6IDY1MCwgY2F0OiAnZm9vJywgdGlkOiA1MywKKyAgICAgICAgcGg6ICdlJywgaWQ6IDcyfQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0ID0gbS5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDIpOworICAgIHZhciBldmVudEFTbGljZSA9IHQuYXN5bmNTbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoZXZlbnRBU2xpY2UudGl0bGUsICdFVkVOVF9BJyk7CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50QVNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50QVNsaWNlLmlkLCAnZm9vOjcyJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShldmVudEFTbGljZS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuZXF1YWwoZXZlbnRBU2xpY2UuYXJnc1sneCddLCAxKTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoZXZlbnRBU2xpY2Uuc3ViU2xpY2VzLCBbXSk7CisKKyAgICB2YXIgZXZlbnRCU2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50QlNsaWNlLnRpdGxlLCAnRVZFTlRfQicpOworICAgIGFzc2VydC5lcXVhbChldmVudEJTbGljZS5jYXRlZ29yeSwgJ2JhcicpOworICAgIGFzc2VydC5lcXVhbChldmVudEJTbGljZS5pZCwgJ2Jhcjo3MicpOworICAgIGFzc2VydC5pc1RydWUoZXZlbnRCU2xpY2UuaXNUb3BMZXZlbCk7CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50QlNsaWNlLmFyZ3NbJ3knXSwgMik7CisgICAgYXNzZXJ0LnNhbWVNZW1iZXJzKGV2ZW50QlNsaWNlLnN1YlNsaWNlcywgW10pOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRTYW1wbGVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTQ4LCBjYXQ6ICd0ZXN0JywgdGlkOiA1MywgcGg6ICdQJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAndGVzdCcsIHRpZDogNTMsIHBoOiAnUCd9LAorICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NTgsIGNhdDogJ3Rlc3QnLCB0aWQ6IDUzLCBwaDogJ1AnfSwKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTY4LCBjYXQ6ICd0ZXN0JywgdGlkOiA1MywgcGg6ICdQJ30KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1s1Ml07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzXy5sZW5ndGgsIDQpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNfWzBdLnN0YXJ0LCAwLjApOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNfWzFdLnN0YXJ0LCAwLjApOworICAgIGFzc2VydC5jbG9zZVRvKDAuMDEsIHQuc2FtcGxlc19bMl0uc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNfWzBdLmxlYWZTdGFja0ZyYW1lLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNfWzFdLmxlYWZTdGFja0ZyYW1lLnRpdGxlLCAnYicpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNfWzJdLmxlYWZTdGFja0ZyYW1lLnRpdGxlLCAnYycpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNfWzNdLmxlYWZTdGFja0ZyYW1lLCB0LnNhbXBsZXNbMF0ubGVhZlN0YWNrRnJhbWUpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRTYW1wbGVzV2l0aFN0YWNrRnJhbWVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50RGF0YSA9IHsKKyAgICAgIHRyYWNlRXZlbnRzOiBbCisgICAgICAgIHsgbmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMCwgY2F0OiAndGVzdCcsIHRpZDogMiwgcGg6ICdQJywgc2Y6IDcgfSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgXSwKKyAgICAgIHN0YWNrRnJhbWVzOiB7CisgICAgICAgICcxJzogeworICAgICAgICAgIGNhdGVnb3J5OiAnbTEnLAorICAgICAgICAgIG5hbWU6ICdtYWluJworICAgICAgICB9LAorICAgICAgICAnNyc6IHsKKyAgICAgICAgICBjYXRlZ29yeTogJ20yJywKKyAgICAgICAgICBuYW1lOiAnZnJhbWU3JywKKyAgICAgICAgICBwYXJlbnQ6ICcxJworICAgICAgICB9CisgICAgICB9CisgICAgfTsKKworICAgIHZhciBvcHRpb25zID0gbmV3IHRyLkltcG9ydE9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNoaWZ0V29ybGRUb1plcm8gPSBmYWxzZTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudERhdGEsIG9wdGlvbnMpOworCisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1syXTsKKworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1swXS5zdGFydCwgMC4wKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzX1swXS5sZWFmU3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lNycpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRTYW1wbGVzTWlzc2luZ0FyZ3MnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAndGVzdCcsIHRpZDogNTMsIHBoOiAnUCd9LAorICAgICAge25hbWU6ICdiJywgcGlkOiA1MiwgdHM6IDU0OCwgY2F0OiAndGVzdCcsIHRpZDogNTMsIHBoOiAnUCd9LAorICAgICAge25hbWU6ICdjJywgcGlkOiA1MiwgdHM6IDU0OSwgY2F0OiAndGVzdCcsIHRpZDogNTMsIHBoOiAnUCd9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOworICAgIGFzc2VydC5pc0RlZmluZWQocCk7CisgICAgdmFyIHQgPSBwLnRocmVhZHNbNTNdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzXy5sZW5ndGgsIDMpOworICAgIGFzc2VydC5pc0ZhbHNlKG0uaGFzSW1wb3J0V2FybmluZ3MpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRTaW1wbGVPYmplY3QnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge3RzOiAxMDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTicsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge319LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiAxNTAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTycsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge3NuYXBzaG90OiAxNX19LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiAyMDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTycsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge3NuYXBzaG90OiAyMH19LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiA1MDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnRCcsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge319IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uYm91bmRzLm1pbiwgMTApOworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDUwKTsKKyAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbMV07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKKworICAgIHZhciBpMTAgPSBwLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgxMDAwJywgMTApOworICAgIGFzc2VydC5lcXVhbChpMTAuY2F0ZWdvcnksICdjJyk7CisgICAgYXNzZXJ0LmVxdWFsKGkxMC5jcmVhdGlvblRzLCAxMCk7CisgICAgYXNzZXJ0LmVxdWFsKGkxMC5kZWxldGlvblRzLCA1MCk7CisgICAgYXNzZXJ0LmVxdWFsKGkxMC5zbmFwc2hvdHMubGVuZ3RoLCAyKTsKKworICAgIHZhciBzMTUgPSBpMTAuc25hcHNob3RzWzBdOworICAgIGFzc2VydC5lcXVhbChzMTUudHMsIDE1KTsKKyAgICBhc3NlcnQuZXF1YWwoczE1LmFyZ3MsIDE1KTsKKworICAgIHZhciBzMjAgPSBpMTAuc25hcHNob3RzWzFdOworICAgIGFzc2VydC5lcXVhbChzMjAudHMsIDIwKTsKKyAgICBhc3NlcnQuZXF1YWwoczIwLmFyZ3MsIDIwKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0SW1wbGljaXRPYmplY3RzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHt0czogMTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ04nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHt0czogMTUwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsCisgICAgICAgIGFyZ3M6IHsgc25hcHNob3Q6IFsKKyAgICAgICAgICB7IGlkOiAnc3ViT2JqZWN0LzB4MScsCisgICAgICAgICAgICBmb286IDEKKyAgICAgICAgICB9CisgICAgICAgIF19fSwKKyAgICAgIHt0czogMjAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsCisgICAgICAgIGFyZ3M6IHsgc25hcHNob3Q6IFsKKyAgICAgICAgICB7IGlkOiAnc3ViT2JqZWN0LzB4MScsCisgICAgICAgICAgICBmb286IDIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsgaWQ6ICdzdWJPYmplY3QvMHgyJywKKyAgICAgICAgICAgIGZvbzogMQorICAgICAgICAgIH0KKyAgICAgICAgXX19CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlKTsKKyAgICB2YXIgcDEgPSBtLnByb2Nlc3Nlc1sxXTsKKworICAgIHZhciBpQSA9IHAxLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgxMDAwJywgMTApOworICAgIHZhciBzdWJPYmplY3RJbnN0YW5jZXMgPSBwMS5vYmplY3RzLmdldEFsbEluc3RhbmNlc0J5VHlwZU5hbWUoKVsKKyAgICAgICAgJ3N1Yk9iamVjdCddOworCisgICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdEluc3RhbmNlcy5sZW5ndGgsIDIpOworICAgIHZhciBzdWJPYmplY3QxID0gcDEub2JqZWN0cy5nZXRPYmplY3RJbnN0YW5jZUF0KCcweDEnLCAxNSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdDEubmFtZSwgJ3N1Yk9iamVjdCcpOworICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QxLmNyZWF0aW9uVHMsIDE1KTsKKworICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QxLnNuYXBzaG90cy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QxLnNuYXBzaG90c1swXS50cywgMTUpOworICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QxLnNuYXBzaG90c1swXS5hcmdzLmZvbywgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdDEuc25hcHNob3RzWzFdLnRzLCAyMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdDEuc25hcHNob3RzWzFdLmFyZ3MuZm9vLCAyKTsKKworICAgIHZhciBzdWJPYmplY3QyID0gcDEub2JqZWN0cy5nZXRPYmplY3RJbnN0YW5jZUF0KCcweDInLCAyMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdDIubmFtZSwgJ3N1Yk9iamVjdCcpOworICAgIGFzc2VydC5lcXVhbChzdWJPYmplY3QyLmNyZWF0aW9uVHMsIDIwKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViT2JqZWN0Mi5zbmFwc2hvdHMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViT2JqZWN0Mi5zbmFwc2hvdHNbMF0udHMsIDIwKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0SW1wbGljaXRPYmplY3RXaXRoQ2F0ZWdvcnlPdmVycmlkZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7dHM6IDEwMDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdOJywgY2F0OiAnY2F0JywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHt0czogMTUwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdvdGhlckNhdCcsIGlkOiAnMHgxMDAwJywgbmFtZTogJ2EnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICBhcmdzOiB7IHNuYXBzaG90OiBbCisgICAgICAgICAgeyBpZDogJ3N1Yk9iamVjdC8weDEnLAorICAgICAgICAgICAgY2F0OiAnY2F0JywKKyAgICAgICAgICAgIGZvbzogMQorICAgICAgICAgIH0KKyAgICAgICAgXX19CisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlKTsKKyAgICB2YXIgcDEgPSBtLnByb2Nlc3Nlc1sxXTsKKworICAgIHZhciBpQSA9IHAxLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgxMDAwJywgMTApOworICAgIHZhciBzdWJPYmplY3RJbnN0YW5jZXMgPSBwMS5vYmplY3RzLmdldEFsbEluc3RhbmNlc0J5VHlwZU5hbWUoKVsKKyAgICAgICAgJ3N1Yk9iamVjdCddOworCisgICAgYXNzZXJ0LmVxdWFsKHN1Yk9iamVjdEluc3RhbmNlcy5sZW5ndGgsIDEpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRJbXBsaWNpdE9iamVjdFdpdGhCYXNlVHlwZU92ZXJyaWRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHt0czogMTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ08nLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnUGljdHVyZUxheWVySW1wbCcsIGFyZ3M6IHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgc25hcHNob3Q6IHsKKyAgICAgICAgICBiYXNlX3R5cGU6ICdMYXllckltcGwnCisgICAgICAgIH0KKyAgICAgIH19LAorICAgICAge3RzOiA1MDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnRCcsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdMYXllckltcGwnLCBhcmdzOiB7fX0gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UpOworICAgIHZhciBwMSA9IG0ucHJvY2Vzc2VzWzFdOworICAgIGFzc2VydC5lcXVhbChtLmltcG9ydFdhcm5pbmdzLmxlbmd0aCwgMCk7CisKKyAgICB2YXIgaUEgPSBwMS5vYmplY3RzLmdldE9iamVjdEluc3RhbmNlQXQoJzB4MTAwMCcsIDEwKTsKKyAgICBhc3NlcnQuZXF1YWwoaUEuc25hcHNob3RzLmxlbmd0aCwgMSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydElEUmVmcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICAvLyBBbiBvYmplY3Qgd2l0aCB0d28gc25hcHNob3RzLgorICAgICAge3RzOiAxMDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTicsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge319LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiAxNTAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTycsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge3NuYXBzaG90OiAxNX19LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiAyMDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTycsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge3NuYXBzaG90OiAyMH19LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiA1MDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnRCcsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge319LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICAvLyBBIHNsaWNlIHRoYXQgcmVmZXJlbmNlcyB0aGUgb2JqZWN0LgorICAgICAge3RzOiAxNzAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnQicsIGNhdDogJ2MnLCBuYW1lOiAndGFza1NsaWNlJywgYXJnczoge215X29iamVjdDoge2lkX3JlZjogJzB4MTAwMCd9fX0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7dHM6IDE3NTAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdFJywgY2F0OiAnYycsIG5hbWU6ICd0YXNrU2xpY2UnLCBhcmdzOiB7fX0gLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbZXZlbnRzXSwgZmFsc2UpOworICAgIHZhciBwMSA9IG0ucHJvY2Vzc2VzWzFdOworCisgICAgdmFyIGlBID0gcDEub2JqZWN0cy5nZXRPYmplY3RJbnN0YW5jZUF0KCcweDEwMDAnLCAxMCk7CisgICAgdmFyIHMxNSA9IGlBLmdldFNuYXBzaG90QXQoMTUpOworCisgICAgdmFyIHRhc2tTbGljZSA9IHAxLnRocmVhZHNbMV0uc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHRhc2tTbGljZS5hcmdzLm15X29iamVjdCwgczE1KTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0SURSZWZzVGhhdFBvaW50QXRFYWNoT3RoZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gQW4gb2JqZWN0LgorICAgICAge3RzOiAxMDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTicsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge319LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiAxNTAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTycsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczogeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICBzbmFwc2hvdDogeyB4OiB7CisgICAgICAgICAgaWQ6ICdmb28vMHgxMDAxJywKKyAgICAgICAgICB2YWx1ZTogJ2JhcicKKyAgICAgICAgfX19fSwKKyAgICAgIHt0czogNTAwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0QnLCBjYXQ6ICdjJywgaWQ6ICcweDEwMDAnLCBuYW1lOiAnYScsIGFyZ3M6IHt9fSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgICAgLy8gQSBzbGljZSB0aGF0IHJlZmVyZW5jZXMgdGhlIG9iamVjdC4KKyAgICAgIHt0czogMTcwMDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0InLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tTbGljZScsIGFyZ3M6IHtteV9vYmplY3Q6IHtpZF9yZWY6ICcweDEwMDEnfX19LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiAxNzUwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnRScsIGNhdDogJ2MnLCBuYW1lOiAndGFza1NsaWNlJywgYXJnczoge319IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlKTsKKyAgICB2YXIgcDEgPSBtLnByb2Nlc3Nlc1sxXTsKKworICAgIHZhciBpQSA9IHAxLm9iamVjdHMuZ2V0T2JqZWN0SW5zdGFuY2VBdCgnMHgxMDAwJywgMTUpOworICAgIHZhciBpRm9vID0gcDEub2JqZWN0cy5nZXRPYmplY3RJbnN0YW5jZUF0KCcweDEwMDEnLCAxNSk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChpQSk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChpRm9vKTsKKworICAgIHZhciBhMTUgPSBpQS5nZXRTbmFwc2hvdEF0KDE1KTsKKyAgICB2YXIgZm9vMTUgPSBpRm9vLmdldFNuYXBzaG90QXQoMTUpOworCisgICAgdmFyIHRhc2tTbGljZSA9IHAxLnRocmVhZHNbMV0uc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHRhc2tTbGljZS5hcmdzLm15X29iamVjdCwgZm9vMTUpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRBcnJheVdpdGhJRHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge3RzOiAxNTAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTycsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczogeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICBzbmFwc2hvdDogeyB4OiBbCisgICAgICAgICAge2lkOiAnZm9vLzB4MTAwMScsIHZhbHVlOiAnYmFyMSd9LAorICAgICAgICAgIHtpZDogJ2Zvby8weDEwMDInLCB2YWx1ZTogJ2JhcjInfSwKKyAgICAgICAgICB7aWQ6ICdmb28vMHgxMDAzJywgdmFsdWU6ICdiYXIzJ30KKyAgICAgICAgXX19fQorICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtldmVudHNdLCBmYWxzZSk7CisgICAgdmFyIHAxID0gbS5wcm9jZXNzZXNbMV07CisKKyAgICB2YXIgc0EgPSBwMS5vYmplY3RzLmdldFNuYXBzaG90QXQoJzB4MTAwMCcsIDE1KTsKKyAgICBhc3NlcnQuaXNUcnVlKHNBLmFyZ3MueCBpbnN0YW5jZW9mIEFycmF5KTsKKyAgICBhc3NlcnQuZXF1YWwoc0EuYXJncy54Lmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzQS5hcmdzLnhbMF0gaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzQS5hcmdzLnhbMV0gaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzQS5hcmdzLnhbMl0gaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydERvZXNOb3RNdXRhdGVFdmVudExpc3QnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgLy8gQW4gb2JqZWN0LgorICAgICAge3RzOiAxMDAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTicsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczoge319LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAge3RzOiAxNTAwMCwgcGlkOiAxLCB0aWQ6IDEsIHBoOiAnTycsIGNhdDogJ2MnLCBpZDogJzB4MTAwMCcsIG5hbWU6ICdhJywgYXJnczogeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICBzbmFwc2hvdDoge2ZvbzogMTV9fX0sCisgICAgICB7dHM6IDUwMDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdEJywgY2F0OiAnYycsIGlkOiAnMHgxMDAwJywgbmFtZTogJ2EnLCBhcmdzOiB7fX0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICAgIC8vIEEgc2xpY2UgdGhhdCByZWZlcmVuY2VzIHRoZSBvYmplY3QuCisgICAgICB7dHM6IDE3MDAwLCBwaWQ6IDEsIHRpZDogMSwgcGg6ICdCJywgY2F0OiAnYycsIG5hbWU6ICd0YXNrU2xpY2UnLCBhcmdzOiB7CisgICAgICAgIG15X29iamVjdDoge2lkX3JlZjogJzB4MTAwMCd9fQorICAgICAgfSwKKyAgICAgIHt0czogMTc1MDAsIHBpZDogMSwgdGlkOiAxLCBwaDogJ0UnLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tTbGljZScsIGFyZ3M6IHt9fSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisKKyAgICAvLyBUaGUgQSB0eXBlIGZhbWlseSBleGlzdHMgdG8gbXV0YXRlIHRoZSBhcmdzIGxpc3QgcHJvdmlkZWQgdG8KKyAgICAvLyBzbmFwc2hvdHMuCisgICAgZnVuY3Rpb24gQVNuYXBzaG90KCkgeworICAgICAgdHIubW9kZWwuT2JqZWN0U25hcHNob3QuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgIHRoaXMuYXJncy5mb28gPSA3OworICAgIH0KKyAgICBBU25hcHNob3QucHJvdG90eXBlID0geworICAgICAgX19wcm90b19fOiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdC5wcm90b3R5cGUKKyAgICB9OworCisgICAgLy8gSW1wb3J0IGV2ZW50IHdoaWxlIHRoZSBBIHR5cGVzIGFyZSByZWdpc3RlcmVkLCBjYXVzaW5nIHRoZQorICAgIC8vIGFyZ3VtZW50cyBvZiB0aGUgc25hcHNob3RzIHRvIGJlIG11dGF0ZWQuCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB0cnkgeworICAgICAgdHIubW9kZWwuT2JqZWN0U25hcHNob3QucmVnaXN0ZXIoQVNuYXBzaG90LCB7dHlwZU5hbWU6ICdhJ30pOworICAgICAgbS5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIGZhbHNlKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgdHIubW9kZWwuT2JqZWN0U25hcHNob3QudW5yZWdpc3RlcihBU25hcHNob3QpOworICAgIH0KKyAgICBhc3NlcnQuaXNGYWxzZShtLmhhc0ltcG9ydFdhcm5pbmdzKTsKKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBldmVudHMgYXJyYXkgd2Fzbid0IG1vZGlmaWVkLgorICAgIGFzc2VydC5kZWVwRXF1YWwoCisgICAgICAgIGV2ZW50c1sxXS5hcmdzLAorICAgICAgICB7c25hcHNob3Q6IHtmb286IDE1fX0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoCisgICAgICAgIGV2ZW50c1szXS5hcmdzLAorICAgICAgICB7bXlfb2JqZWN0OiB7aWRfcmVmOiAnMHgxMDAwJ319KTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0Rmxvd0V2ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHsgbmFtZTogJ2FTbGljZScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0NywgcGg6ICdCJywgYXJnczoge30gfSwgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdhJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ4LCBwaDogJ3MnLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ5LCBwaDogJ0UnLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgICAgeyBuYW1lOiAnYlNsaWNlJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTU5LCBwaDogJ0InLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ2EnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NjAsIHBoOiAndCcsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NjEsIHBoOiAnRScsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICB7IG5hbWU6ICdhJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTgwLCBwaDogJ2YnLCBhcmdzOiB7fSB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdjU2xpY2UnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1ODEsIHBoOiAnQicsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1ODIsIHBoOiAnRScsIGFyZ3M6IHt9IH0gIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cyk7CisgICAgdmFyIHQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIGFzc2VydC5lcXVhbChtLmZsb3dFdmVudHMubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwobS5mbG93SW50ZXJ2YWxUcmVlLnNpemUsIDIpOworCisgICAgdmFyIGYwID0gbS5mbG93RXZlbnRzWzBdOworICAgIGFzc2VydC5lcXVhbChmMC50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuaWQsIDcyKTsKKyAgICBhc3NlcnQuY2xvc2VUbyhmMC5zdGFydCwgMC4wMDEsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKDEyIC8gMTAwMCwgZjAuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5lcXVhbChmMC5zdGFydFNsaWNlLnRpdGxlLCAnYVNsaWNlJyk7CisgICAgYXNzZXJ0LmVxdWFsKGYwLmVuZFNsaWNlLnRpdGxlLCAnYlNsaWNlJyk7CisKKyAgICAvLyBUT0RPKG5kdWNhKTogUmVwbGFjZSB0aGlzIGFzc2VydGlvbiB3aXRoIHNvbWV0aGluZyBiZXR0ZXIgd2hlbgorICAgIC8vIGZsb3cgZXZlbnRzIGRvbid0IGNyZWF0ZSBzeW50aGV0aWMgc2xpY2VzIG9uIHRoZWlyIG93bi4KKyAgICBhc3NlcnQuaXNEZWZpbmVkKGYwLnN0YXJ0U2xpY2UpOworICAgIGFzc2VydC5pc0RlZmluZWQoZjAuZW5kU2xpY2UpOworCisgICAgdmFyIGYxID0gbS5mbG93RXZlbnRzWzFdOworICAgIGFzc2VydC5lcXVhbChmMS50aXRsZSwgZjAudGl0bGUpOworICAgIGFzc2VydC5lcXVhbChmMS5jYXRlZ29yeSwgZjAuY2F0ZWdvcnkpOworICAgIGFzc2VydC5lcXVhbChmMS5pZCwgZjAuaWQpOworICAgIGFzc2VydC5jbG9zZVRvKDIwIC8gMTAwMCwgZjEuZHVyYXRpb24sIDFlLTUpOworCisgICAgYXNzZXJ0LmVxdWFsKGYxLnN0YXJ0U2xpY2UudGl0bGUsICdiU2xpY2UnKTsKKyAgICBhc3NlcnQuZXF1YWwoZjEuZW5kU2xpY2UudGl0bGUsICdjU2xpY2UnKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuc3RhcnRTbGljZS5vdXRGbG93RXZlbnRzLCBbZjBdKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLmVuZFNsaWNlLmluRmxvd0V2ZW50cywgW2YwXSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChmMS5zdGFydFNsaWNlLm91dEZsb3dFdmVudHMsIFtmMV0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoZjEuZW5kU2xpY2UuaW5GbG93RXZlbnRzLCBbZjFdKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0T2xkRmxvd0V2ZW50QmluZHRvTmV4dCcsIGZ1bmN0aW9uKCkgeworICAgIC8vIE9sZCB0cmFjZSBmb3JtYXQgd2l0aG91dCBldmVudC5icCwgYW5kIGV2ZW50LmNhdCBkb2Vzbid0IGNvbnRhaW4gaW5wdXQKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgeyBuYW1lOiAnc2xpY2UxJywgY2F0OiAnZm9vJywgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0NywgcGg6ICdYJywgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ2Zsb3cnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDgsIHBoOiAncycsIGFyZ3M6IHt9fSwgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICAgIHsgbmFtZTogJ2Zsb3cnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA1ODAsIHBoOiAnZicsIGFyZ3M6IHt9fSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBuYW1lOiAnc2xpY2UyJywgY2F0OiAnZm9vJywgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU3MCwgcGg6ICdYJywgYXJnczoge30sICdkdXInOiAxMDB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdzbGljZTMnLCBjYXQ6ICdmb28nLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNzcwLCBwaDogJ1gnLCBhcmdzOiB7fSwgJ2R1cic6IDEwMDB9ICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlLCBmYWxzZSk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5mbG93RXZlbnRzLmxlbmd0aCwgMSk7CisKKyAgICB2YXIgZjAgPSBtLmZsb3dFdmVudHNbMF07CisKKyAgICBhc3NlcnQuZXF1YWwoZjAudGl0bGUsICdmbG93Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGYwLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKGYwLmlkLCA3Mik7CisgICAgYXNzZXJ0LmVxdWFsKGYwLnN0YXJ0LCAuNTQ4KTsKKyAgICBhc3NlcnQuY2xvc2VUbygzMiAvIDEwMDAsIGYwLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnRTbGljZS50aXRsZSwgJ3NsaWNlMScpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuc3RhcnRTbGljZS5vdXRGbG93RXZlbnRzLCBbZjBdKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuZW5kU2xpY2UudGl0bGUsICdzbGljZTMnKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLmVuZFNsaWNlLmluRmxvd0V2ZW50cywgW2YwXSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE9sZElucHV0Rmxvd0V2ZW50QmluZHRvUGFyZW50JywgZnVuY3Rpb24oKSB7CisgICAgLy8gT2xkIHRyYWNlIGZvcm1hdCB3aXRob3V0IGV2ZW50LmJwLCBidXQgZXZlbnQuY2F0IGNvbnRhaW5zIGlucHV0CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHsgbmFtZTogJ3NsaWNlMScsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDcsIHBoOiAnWCcsICdkdXInOiAxMDB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdmbG93JywgY2F0OiAnaW5wdXQnLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDgsIHBoOiAncycsIGFyZ3M6IHt9fSwgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICAgIHsgbmFtZTogJ2Zsb3cnLCBjYXQ6ICdpbnB1dCcsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYXJnczoge319LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdzbGljZTInLCBjYXQ6ICdmb28nLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTcwLCBwaDogJ1gnLCBhcmdzOiB7fSwgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ3NsaWNlMycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA3NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwMH0gICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UsIGZhbHNlKTsKKworICAgIGFzc2VydC5lcXVhbChtLmZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKworICAgIHZhciBmMCA9IG0uZmxvd0V2ZW50c1swXTsKKworICAgIGFzc2VydC5lcXVhbChmMC50aXRsZSwgJ2Zsb3cnKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuY2F0ZWdvcnksICdpbnB1dCcpOworICAgIGFzc2VydC5lcXVhbChmMC5pZCwgNzIpOworICAgIGFzc2VydC5lcXVhbChmMC5zdGFydCwgLjU0OCk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMzIgLyAxMDAwLCBmMC5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmVxdWFsKGYwLnN0YXJ0U2xpY2UudGl0bGUsICdzbGljZTEnKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLnN0YXJ0U2xpY2Uub3V0Rmxvd0V2ZW50cywgW2YwXSk7CisgICAgYXNzZXJ0LmVxdWFsKGYwLmVuZFNsaWNlLnRpdGxlLCAnc2xpY2UyJyk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChmMC5lbmRTbGljZS5pbkZsb3dFdmVudHMsIFtmMF0pOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRPbGRJUENGbG93RXZlbnRCaW5kdG9QYXJlbnQnLCBmdW5jdGlvbigpIHsKKyAgICAvLyBPbGQgdHJhY2UgZm9ybWF0IHdpdGhvdXQgZXZlbnQuYnAsIGJ1dCBldmVudC5jYXQgY29udGFpbnMgaXBjLmZsb3cKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAgeyBuYW1lOiAnc2xpY2UxJywgY2F0OiAnZm9vJywgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0NywgcGg6ICdYJywgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ2Zsb3cnLCBjYXQ6ICdkaXNhYmxlZC1ieS1kZWZhdWx0LWlwYy5mbG93JywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ4LCBwaDogJ3MnLCBhcmdzOiB7fX0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICB7IG5hbWU6ICdmbG93JywgY2F0OiAnZGlzYWJsZWQtYnktZGVmYXVsdC1pcGMuZmxvdycsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYXJnczoge319LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdzbGljZTInLCBjYXQ6ICdmb28nLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTcwLCBwaDogJ1gnLCBhcmdzOiB7fSwgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ3NsaWNlMycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA3NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwMH0gICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UsIGZhbHNlKTsKKworICAgIGFzc2VydC5lcXVhbChtLmZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKworICAgIHZhciBmMCA9IG0uZmxvd0V2ZW50c1swXTsKKworICAgIGFzc2VydC5lcXVhbChmMC50aXRsZSwgJ2Zsb3cnKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuY2F0ZWdvcnksICdkaXNhYmxlZC1ieS1kZWZhdWx0LWlwYy5mbG93Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGYwLmlkLCA3Mik7CisgICAgYXNzZXJ0LmVxdWFsKGYwLnN0YXJ0LCAuNTQ4KTsKKyAgICBhc3NlcnQuY2xvc2VUbygzMiAvIDEwMDAsIGYwLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnRTbGljZS50aXRsZSwgJ3NsaWNlMScpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuc3RhcnRTbGljZS5vdXRGbG93RXZlbnRzLCBbZjBdKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuZW5kU2xpY2UudGl0bGUsICdzbGljZTInKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLmVuZFNsaWNlLmluRmxvd0V2ZW50cywgW2YwXSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE5ld0Zsb3dFdmVudEJpbmR0b1BhcmVudCcsIGZ1bmN0aW9uKCkgeworICAgIC8vIE5ldyB0cmFjZSBmb3JtYXQgd2l0aCBldmVudC5icAorICAgIHZhciBldmVudHMgPSBbCisgICAgICB7IG5hbWU6ICdzbGljZTEnLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ3LCBwaDogJ1gnLCAnZHVyJzogMTAwfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0OCwgcGg6ICdzJywgYnA6ICdlJywgYXJnczoge319LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYnA6ICdlJywgYXJnczoge319LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdzbGljZTInLCBjYXQ6ICdmb28nLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTcwLCBwaDogJ1gnLCBhcmdzOiB7fSwgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ3NsaWNlMycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA3NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwMH0gICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UsIGZhbHNlKTsKKworICAgIGFzc2VydC5lcXVhbChtLmZsb3dFdmVudHMubGVuZ3RoLCAxKTsKKworICAgIHZhciBmMCA9IG0uZmxvd0V2ZW50c1swXTsKKworICAgIGFzc2VydC5lcXVhbChmMC50aXRsZSwgJ2Zsb3cnKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuaWQsIDcyKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnQsIC41NDgpOworICAgIGFzc2VydC5jbG9zZVRvKDMyIC8gMTAwMCwgZjAuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5lcXVhbChmMC5zdGFydFNsaWNlLnRpdGxlLCAnc2xpY2UxJyk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChmMC5zdGFydFNsaWNlLm91dEZsb3dFdmVudHMsIFtmMF0pOworICAgIGFzc2VydC5lcXVhbChmMC5lbmRTbGljZS50aXRsZSwgJ3NsaWNlMicpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuZW5kU2xpY2UuaW5GbG93RXZlbnRzLCBbZjBdKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0TmV3Rmxvd0V2ZW50V2l0aEludmFsaWRCaW5kaW5nUG9pbnQnLCBmdW5jdGlvbigpIHsKKyAgICAvLyBOZXcgdHJhY2UgZm9ybWF0IHdpdGggZXZlbnQuYnAsIHdoaWNoIGhvd2V2ZXIgIT09ICdlJworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7IG5hbWU6ICdzbGljZTEnLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ3LCBwaDogJ1gnLCAnZHVyJzogMTAwfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0OCwgcGg6ICdzJywgYnA6ICd6JywgYXJnczoge319LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgICAgeyBuYW1lOiAnZmxvdycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYnA6ICd6JywgYXJnczoge319LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdzbGljZTInLCBjYXQ6ICdmb28nLCBwaWQ6IDcwLCB0aWQ6IDcxLCB0czogNTcwLCBwaDogJ1gnLCBhcmdzOiB7fSwgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ3NsaWNlMycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA3NzAsIHBoOiAnWCcsIGFyZ3M6IHt9LCAnZHVyJzogMTAwMH0gICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgXTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UsIGZhbHNlKTsKKworICAgIGFzc2VydC5lcXVhbChtLmZsb3dFdmVudHMubGVuZ3RoLCAwKTsKKyAgfSk7CisKKyAgLy8gVGhpcyB0ZXN0IGNyZWF0ZXMgYSBmbG93IGV2ZW50IHRoYXQgc3RvcHMgb24gdGhlIHNhbWUgdGltZXN0YW1wIHRoYXQKKyAgLy8gdGhlICdYJyBldmVudCB3aGljaCBpdCB0cmlnZ2VycyBiZWdpbnMuCisgIHRlc3QoJ2ltcG9ydEZsb3dFdmVudE92ZXJsYXBzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHsgbmFtZTogJ1NvbWVUYXNrJywgY2F0OiAnZm9vJywgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU0NywgcGg6ICdYJywgJ2R1cic6IDEwMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ1Bvc3RUYXNrJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTQ4LCBwaDogJ3MnLCBhcmdzOiB7fX0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICB7IG5hbWU6ICdQb3N0VGFzaycsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA3MCwgdGlkOiA3MSwgdHM6IDU4MCwgcGg6ICdmJywgYXJnczogeyAncXVldWVfZHVyYXRpb24nOiAwfX0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIC8vIE5vdGUgdGhhdCBSdW5UYXNrIGhhcyB0aGUgc2FtZSB0aW1lLXN0YW1wIGFzIFBvc3RUYXNrICdmJworICAgICAgeyBuYW1lOiAnUnVuVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNzAsIHRpZDogNzEsIHRzOiA1ODAsIHBoOiAnWCcsIGFyZ3M6IHsnc3JjX2Z1bmMnOiAnUG9zdFJ1blRhc2snfSwgJ2R1cic6IDEwMDB9ICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSwgZmFsc2UpOworICAgIHZhciBzdGFydFQgPSBtLnByb2Nlc3Nlc1s1Ml0udGhyZWFkc1s1M107CisgICAgdmFyIGVuZFQgPSBtLnByb2Nlc3Nlc1s3MF0udGhyZWFkc1s3MV07CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHN0YXJ0VCk7CisgICAgYXNzZXJ0LmVxdWFsKHN0YXJ0VC5zbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChlbmRUKTsKKyAgICBhc3NlcnQuZXF1YWwoZW5kVC5zbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uZmxvd0V2ZW50cy5sZW5ndGgsIDEpOworCisgICAgLy8gZjAgcmVwcmVzZW50cyAncycgdG8gJ2YnCisgICAgdmFyIGYwID0gbS5mbG93RXZlbnRzWzBdOworCisgICAgYXNzZXJ0LmVxdWFsKGYwLnRpdGxlLCAnUG9zdFRhc2snKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuaWQsIDcyKTsKKyAgICBhc3NlcnQuZXF1YWwoZjAuc3RhcnQsIC41NDgpOworICAgIGFzc2VydC5jbG9zZVRvKDMyIC8gMTAwMCwgZjAuZHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5lcXVhbChmMC5zdGFydFNsaWNlLnRpdGxlLCAnU29tZVRhc2snKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGYwLnN0YXJ0U2xpY2Uub3V0Rmxvd0V2ZW50cywgW2YwXSk7CisgICAgYXNzZXJ0LmVxdWFsKGYwLmVuZFNsaWNlLnRpdGxlLCAnUnVuVGFzaycpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZjAuZW5kU2xpY2UuaW5GbG93RXZlbnRzLCBbZjBdKTsKKworICAgIC8vIFRPRE8obmR1Y2EpOiBBZGQgYXNzZXJ0aW9ucyBhYm91dCB0aGUgZmxvdyBzbGljZXMsIGVzcCB0aGF0IHRoZXkgd2VyZQorICAgIC8vIGZvdW5kIGNvcnJlY3RseS4KKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0T3V0T2ZPcmRlckZsb3dFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7IG5hbWU6ICdTb21lVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDgsIHBoOiAnWCcsICdkdXInOiAxMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ2EnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NDgsIHBoOiAncycsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICB7IG5hbWU6ICdTb21lVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiAxNDgsIHBoOiAnWCcsICdkdXInOiAxMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ2InLCBjYXQ6ICdmb28nLCBpZDogNzMsIHBpZDogNTIsIHRpZDogNTMsIHRzOiAxNDgsIHBoOiAncycsIGFyZ3M6IHt9IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgICB7IG5hbWU6ICdiJywgY2F0OiAnZm9vJywgaWQ6IDczLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTcwLCBwaDogJ2YnLCBhcmdzOiB7fSB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdTb21lVGFzaycsIGNhdDogJ2ZvbycsIHBpZDogNTIsIHRpZDogNTMsIHRzOiA1NzEsIHBoOiAnWCcsICdkdXInOiAxMH0sICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgICAgeyBuYW1lOiAnU29tZVRhc2snLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTYwLCBwaDogJ1gnLCAnZHVyJzogMTB9LCAgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICB7IG5hbWU6ICdhJywgY2F0OiAnZm9vJywgaWQ6IDcyLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTYwLCBwaDogJ3QnLCBhcmdzOiB7fSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKworICAgICAgeyBuYW1lOiAnYScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDU4MCwgcGg6ICdmJywgYXJnczoge30gfSwgICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBuYW1lOiAnU29tZVRhc2snLCBjYXQ6ICdmb28nLCBwaWQ6IDUyLCB0aWQ6IDUzLCB0czogNTgxLCBwaDogJ1gnLCAnZHVyJzogMTB9ICAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworCisgICAgdmFyIGV4cGVjdGVkID0gWzAuNCwgMC4wLCAwLjQxMl07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5mbG93SW50ZXJ2YWxUcmVlLnNpemUsIDMpOworCisgICAgdmFyIG9yZGVyID0gbS5mbG93RXZlbnRzLm1hcChmdW5jdGlvbih4KSB7IHJldHVybiB4LnN0YXJ0IH0pOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2kpCisgICAgICBhc3NlcnQuY2xvc2VUbyhleHBlY3RlZFtpXSwgb3JkZXJbaV0sIDFlLTUpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRDb21wbGV0ZUV2ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHsgbmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYyOSwgZHVyOiAxLCBjYXQ6ICdiYXonLCB0aWQ6IDUzLCBwaDogJ1gnIH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNzMwLCBkdXI6IDIwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ1gnIH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNzQwLCBjYXQ6ICdiYXonLCB0aWQ6IDUzLCBwaDogJ1gnIH0KKyAgICBdOworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5udW1Qcm9jZXNzZXMsIDEpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbNTJdOworICAgIGFzc2VydC5pc0RlZmluZWQocCk7CisKKyAgICBhc3NlcnQuZXF1YWwocC5udW1UaHJlYWRzLCAxKTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1s1M107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0KTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLnNsaWNlcy5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcXVhbCh0LnRpZCwgNTMpOworCisgICAgdmFyIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnYmF6Jyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMCwgc2xpY2Uuc3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKDEgLyAxMDAwLCBzbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnN1YlNsaWNlcy5sZW5ndGgsIDApOworCisgICAgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzFdOworICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2InKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdmb28nKTsKKyAgICBhc3NlcnQuY2xvc2VUbygoNzMwIC0gNjI5KSAvIDEwMDAsIHNsaWNlLnN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygyMCAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2Uuc3ViU2xpY2VzLmxlbmd0aCwgMSk7CisKKyAgICBzbGljZSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMl07CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLnRpdGxlLCAnYycpOworICAgIGFzc2VydC5pc1RydWUoc2xpY2UuZGlkTm90RmluaXNoKTsKKyAgICBhc3NlcnQuY2xvc2VUbygxMCAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0Q29tcGxldGVFdmVudFdpdGhDcHVEdXJhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7IG5hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MjksIGR1cjogMSwgY2F0OiAnYmF6JywgdGlkOiA1MywgcGg6ICdYJywgdHRzOiAxMiwgdGR1cjogMSB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDczMCwgZHVyOiAyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdYJywgdHRzOiAxMTAsIHRkdXI6IDE2IH0sICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgeyBuYW1lOiAnYycsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNzQwLCBjYXQ6ICdiYXonLCB0aWQ6IDUzLCBwaDogJ1gnLCB0dHM6IDExNSB9ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIGFzc2VydC5lcXVhbChtLm51bVByb2Nlc3NlcywgMSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1s1Ml07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwKTsKKworICAgIGFzc2VydC5lcXVhbChwLm51bVRocmVhZHMsIDEpOworICAgIHZhciB0ID0gcC50aHJlYWRzWzUzXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKHQudGlkLCA1Myk7CisKKyAgICB2YXIgc2xpY2UgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChzbGljZS50aXRsZSwgJ2EnKTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UuY2F0ZWdvcnksICdiYXonKTsKKyAgICBhc3NlcnQuY2xvc2VUbygwLCBzbGljZS5zdGFydCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMSAvIDEwMDAsIHNsaWNlLmR1cmF0aW9uLCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygxMiAvIDEwMDAsIHNsaWNlLmNwdVN0YXJ0LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbygxIC8gMTAwMCwgc2xpY2UuY3B1RHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAwKTsKKworICAgIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdiJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlLmNhdGVnb3J5LCAnZm9vJyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oKDczMCAtIDYyOSkgLyAxMDAwLCBzbGljZS5zdGFydCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMjAgLyAxMDAwLCBzbGljZS5kdXJhdGlvbiwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMTEwIC8gMTAwMCwgc2xpY2UuY3B1U3RhcnQsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKDE2IC8gMTAwMCwgc2xpY2UuY3B1RHVyYXRpb24sIDFlLTUpOworICAgIGFzc2VydC5lcXVhbChzbGljZS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKKworICAgIHNsaWNlID0gdC5zbGljZUdyb3VwLnNsaWNlc1syXTsKKyAgICBhc3NlcnQuZXF1YWwoc2xpY2UudGl0bGUsICdjJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzbGljZS5kaWROb3RGaW5pc2gpOworICAgIGFzc2VydC5jbG9zZVRvKDEwIC8gMTAwMCwgc2xpY2UuZHVyYXRpb24sIDFlLTUpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnROZXN0ZWRDb21wbGV0ZUV2ZW50V2l0aFRpZ2h0Qm91bmRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHsgbmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDI0NDY1NDIyNzA2NSwgZHVyOiAzNjA3NSwgY2F0OiAnYmF6JywgdGlkOiA1MywgcGg6ICdYJyB9LCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgIHsgbmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDI0NDY1NDIyNzA5NSwgZHVyOiAzNjA0NSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdYJyB9ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKKyAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKKworICAgIHZhciBzQSA9IGZpbmRTbGljZU5hbWVkKHQuc2xpY2VHcm91cCwgJ2EnKTsKKyAgICB2YXIgc0IgPSBmaW5kU2xpY2VOYW1lZCh0LnNsaWNlR3JvdXAsICdiJyk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0EudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLmNhdGVnb3J5LCAnYmF6Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnN0YXJ0LCAyNDQ2NTQyMjcuMDY1KTsKKyAgICBhc3NlcnQuZXF1YWwoc0EuZHVyYXRpb24sIDM2LjA3NSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMC4wMywgc0Euc2VsZlRpbWUsIDFlLTUpOworCisgICAgYXNzZXJ0LmVxdWFsKHNCLnRpdGxlLCAnYicpOworICAgIGFzc2VydC5lcXVhbChzQi5jYXRlZ29yeSwgJ2ZvbycpOworICAgIGFzc2VydC5lcXVhbChzQi5zdGFydCwgMjQ0NjU0MjI3LjA5NSk7CisgICAgYXNzZXJ0LmVxdWFsKHNCLmR1cmF0aW9uLCAzNi4wNDUpOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXNbMF0sIHNCKTsKKyAgICBhc3NlcnQuZXF1YWwoc0IucGFyZW50U2xpY2UsIHNBKTsKKyAgfSk7CisKKworICB0ZXN0KCdpbXBvcnRDb21wbGV0ZUV2ZW50V2l0aFN0YWNrRnJhbWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnREYXRhID0geworICAgICAgdHJhY2VFdmVudHM6IFsKKyAgICAgICAgeyBuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAwLCBkdXI6IDEsIGNhdDogJ2JheicsIHRpZDogMiwgcGg6ICdYJywgc2Y6IDcgfSwgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgeyBuYW1lOiAnYicsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiA1LCBkdXI6IDEsIGNhdDogJ2JheicsIHRpZDogMiwgcGg6ICdYJywgc2Y6IDgsIGVzZjogOSB9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICBdLAorICAgICAgc3RhY2tGcmFtZXM6IHsKKyAgICAgICAgJzEnOiB7CisgICAgICAgICAgY2F0ZWdvcnk6ICdtMScsCisgICAgICAgICAgbmFtZTogJ21haW4nCisgICAgICAgIH0sCisgICAgICAgICc3JzogeworICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAorICAgICAgICAgIG5hbWU6ICdmcmFtZTcnLAorICAgICAgICAgIHBhcmVudDogJzEnCisgICAgICAgIH0sCisgICAgICAgICc4JzogeworICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAorICAgICAgICAgIG5hbWU6ICdmcmFtZTgnLAorICAgICAgICAgIHBhcmVudDogJzEnCisgICAgICAgIH0sCisgICAgICAgICc5JzogeworICAgICAgICAgIGNhdGVnb3J5OiAnbTInLAorICAgICAgICAgIG5hbWU6ICdmcmFtZTknLAorICAgICAgICAgIHBhcmVudDogJzEnCisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9OworCisgICAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuSW1wb3J0T3B0aW9ucygpOworICAgIG9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybyA9IGZhbHNlOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50RGF0YSwgb3B0aW9ucyk7CisKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIHZhciB0ID0gcC50aHJlYWRzWzJdOworICAgIGFzc2VydC5pc0RlZmluZWQodCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAyKTsKKworICAgIHZhciBzMCA9IHQuc2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHMwLnN0YXJ0U3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lNycpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzMC5lbmRTdGFja0ZyYW1lKTsKKworICAgIHZhciBzMSA9IHQuc2xpY2VHcm91cC5zbGljZXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKHMxLnN0YXJ0U3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lOCcpOworICAgIGFzc2VydC5lcXVhbChzMS5lbmRTdGFja0ZyYW1lLnRpdGxlLCAnZnJhbWU5Jyk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydEFzeW5jRXZlbnRXaXRoU2FtZVRpbWVzdGFtcCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbXTsKKyAgICAvLyBFdmVudHMgYXJlIGFkZGVkIHdpdGggdHMgMCwgMSwgMSwgMiwgMiwgMywgMyAuLi41MDAsIDUwMCwgMTAwMAorICAgIC8vIGFuZCB1c2UgJ3NlcScgdG8gdHJhY2sgdGhlIG9yZGVyIG9mIHdoZW4gdGhlIGV2ZW50IGlzIHJlY29yZGVkLgorICAgIGV2ZW50cy5wdXNoKHtuYW1lOiAnYScsIGNhdDogJ2ZvbycsIGlkOiA3MiwgcGlkOiA1MiwgdGlkOiA1MywgdHM6IDAsIHBoOiAnUycsIGFyZ3M6IHsnc2VxJzogMH19KTsgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDAwOyBpKyspCisgICAgICBldmVudHMucHVzaCh7bmFtZTogJ2EnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiBNYXRoLnJvdW5kKGkgLyAyKSAsIHBoOiAnVCcsIGFyZ3M6IHsnc2VxJzogaX19KTsgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICBldmVudHMucHVzaCh7bmFtZTogJ2EnLCBjYXQ6ICdmb28nLCBpZDogNzIsIHBpZDogNTIsIHRpZDogNTMsIHRzOiAxMDAwLCBwaDogJ0YnLCBhcmdzOiB7J3NlcSc6IDEwMDF9fSk7ICAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgdCA9IG0ucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXTsKKworICAgIGFzc2VydC5lcXVhbCh0LmFzeW5jU2xpY2VHcm91cC5zbGljZXMubGVuZ3RoLCAxKTsKKyAgICB2YXIgcGFyZW50U2xpY2UgPSB0LmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHBhcmVudFNsaWNlLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTbGljZS5jYXRlZ29yeSwgJ2ZvbycpOworICAgIGFzc2VydC5pc1RydWUocGFyZW50U2xpY2UuaXNUb3BMZXZlbCk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHBhcmVudFNsaWNlLnN1YlNsaWNlcyk7CisgICAgdmFyIHN1YlNsaWNlcyA9IHBhcmVudFNsaWNlLnN1YlNsaWNlczsKKyAgICBhc3NlcnQuZXF1YWwoc3ViU2xpY2VzLmxlbmd0aCwgMTAwMCk7CisgICAgLy8gU2xpY2VzIHNob3VsZCBiZSBzb3J0ZWQgYWNjb3JkaW5nIHRvICd0cycuIEFuZCBpZiAndHMnIGlzIHRoZSBzYW1lLAorICAgIC8vIHNsaWNlcyBzaG91bGQga2VlcCB0aGUgb3JkZXIgdGhhdCB0aGV5IHdlcmUgcmVjb3JkZWQuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICAgIGFzc2VydC5lcXVhbChpICsgMSwgc3ViU2xpY2VzW2ldLmFyZ3NbJ3NlcSddKTsKKyAgICAgIGFzc2VydC5pc0ZhbHNlKHN1YlNsaWNlc1tpXS5pc1RvcExldmVsKTsKKyAgICB9CisgIH0pOworCisgIHRlc3QoJ3NhbXBsZURhdGFTaW1wbGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0geworICAgICAgJ3RyYWNlRXZlbnRzJzogW10sCisgICAgICAnc3RhY2tGcmFtZXMnOiB7CisgICAgICAgICcxJzogeworICAgICAgICAgICdjYXRlZ29yeSc6ICdtb2QnLAorICAgICAgICAgICduYW1lJzogJ21haW4nCisgICAgICAgIH0sCisgICAgICAgICcyJzogeworICAgICAgICAgICdjYXRlZ29yeSc6ICdtb2QnLAorICAgICAgICAgICduYW1lJzogJ2EnLAorICAgICAgICAgICdwYXJlbnQnOiAxCisgICAgICAgIH0sCisgICAgICAgICczJzogeworICAgICAgICAgICdjYXRlZ29yeSc6ICdtb2QnLAorICAgICAgICAgICduYW1lJzogJ2Ffc3ViJywKKyAgICAgICAgICAncGFyZW50JzogMgorICAgICAgICB9LAorICAgICAgICAnNCc6IHsKKyAgICAgICAgICAnY2F0ZWdvcnknOiAnbW9kJywKKyAgICAgICAgICAnbmFtZSc6ICdiJywKKyAgICAgICAgICAncGFyZW50JzogMQorICAgICAgICB9CisgICAgICB9LAorICAgICAgJ3NhbXBsZXMnOiBbCisgICAgICAgIHsKKyAgICAgICAgICAnY3B1JzogMCwgJ3RpZCc6IDEsICd0cyc6IDEwMDAuMCwKKyAgICAgICAgICAnbmFtZSc6ICdjeWNsZXM6SEcnLCAnc2YnOiAzLCAnd2VpZ2h0JzogMQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgJ2NwdSc6IDAsICd0aWQnOiAxLCAndHMnOiAyMDAwLjAsCisgICAgICAgICAgJ25hbWUnOiAnY3ljbGVzOkhHJywgJ3NmJzogMiwgJ3dlaWdodCc6IDEKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICdjcHUnOiAxLCAndGlkJzogMSwgJ3RzJzogMzAwMC4wLAorICAgICAgICAgICduYW1lJzogJ2N5Y2xlczpIRycsICdzZic6IDMsICd3ZWlnaHQnOiAxCisgICAgICAgIH0KKyAgICAgIF0KKyAgICB9OworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOworICAgIGFzc2VydC5pc0RlZmluZWQobS5rZXJuZWwuY3B1c1swXSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uZ2V0QWxsVGhyZWFkcygpLmxlbmd0aCwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwodHIuYi5kaWN0aW9uYXJ5S2V5cyhtLnN0YWNrRnJhbWVzKS5sZW5ndGgsIDQpOworICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXMubGVuZ3RoLCAzKTsKKworICAgIHZhciB0MSA9IG0ucHJvY2Vzc2VzWzFdLnRocmVhZHNbMV07CisgICAgYXNzZXJ0LmVxdWFsKHQxLnNhbXBsZXMubGVuZ3RoLCAzKTsKKworICAgIHZhciBjMCA9IG0ua2VybmVsLmNwdXNbMF07CisgICAgdmFyIGMxID0gbS5rZXJuZWwuY3B1c1sxXTsKKyAgICBhc3NlcnQuZXF1YWwoYzAuc2FtcGxlcy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChjMS5zYW1wbGVzLmxlbmd0aCwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zYW1wbGVzWzBdLmNwdSwgYzApOworICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXNbMF0udGhyZWFkLCB0MSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2FtcGxlc1swXS50aXRsZSwgJ2N5Y2xlczpIRycpOworICAgIGFzc2VydC5lcXVhbChtLnNhbXBsZXNbMF0uc3RhcnQsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoCisgICAgICAgIFsnYV9zdWInLCAnYScsICdtYWluJ10sCisgICAgICAgIG0uc2FtcGxlc1swXS5zdGFja1RyYWNlLm1hcChmdW5jdGlvbih4KSB7IHJldHVybiB4LnRpdGxlOyB9KSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2FtcGxlc1swXS53ZWlnaHQsIDEpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRNZW1vcnlEdW1wc192ZXJpZnlQcm9jZXNzQW5kR2xvYmFsTWVtb3J5RHVtcExpbmtzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIC8vIDIgcHJvY2VzcyBtZW1vcnkgZHVtcCBldmVudHMgd2l0aG91dCBhIGdsb2JhbCBtZW1vcnkgZHVtcCBldmVudC4KKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ2EnLAorICAgICAgICBwaWQ6IDQyLAorICAgICAgICB0czogMTAwMDAsCisgICAgICAgIGNhdDogJ3Rlc3QnLAorICAgICAgICB0aWQ6IDUzLAorICAgICAgICBwaDogJ3YnLAorICAgICAgICBpZDogJzB4MDAwMScsCisgICAgICAgIGFyZ3M6IHsKKyAgICAgICAgICBkdW1wczogeworICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKKyAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMTAwJworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ2InLAorICAgICAgICBwaWQ6IDQzLAorICAgICAgICB0czogMTEwMDAsCisgICAgICAgIGNhdDogJ3Rlc3QnLAorICAgICAgICB0aWQ6IDU0LAorICAgICAgICBwaDogJ3YnLAorICAgICAgICBpZDogJzB4MDAwMScsCisgICAgICAgIGFyZ3M6IHsKKyAgICAgICAgICBkdW1wczogeworICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKKyAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMjAwJworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIC8vIDEgZ2xvYmFsIG1lbW9yeSBkdW1wIGV2ZW50IGFuZCAxIHByb2Nlc3MgbWVtb3J5IGR1bXAgZXZlbnQuCisgICAgICB7CisgICAgICAgIG5hbWU6ICdjJywKKyAgICAgICAgcGlkOiA0NCwKKyAgICAgICAgdHM6IDEyMDAwLAorICAgICAgICBjYXQ6ICd0ZXN0JywKKyAgICAgICAgdGlkOiA1NSwKKyAgICAgICAgcGg6ICdWJywKKyAgICAgICAgaWQ6ICcweGZmZmZmZmYxMjM0NTY3OCcsCisgICAgICAgIGFyZ3M6IHt9CisgICAgICB9LAorICAgICAgeworICAgICAgICBuYW1lOiAnZCcsCisgICAgICAgIHBpZDogNDIsCisgICAgICAgIHRzOiAxMzAwMCwKKyAgICAgICAgY2F0OiAndGVzdCcsCisgICAgICAgIHRpZDogNTYsCisgICAgICAgIHBoOiAndicsCisgICAgICAgIGlkOiAnMHhmZmZmZmZmMTIzNDU2NzgnLAorICAgICAgICBhcmdzOiB7CisgICAgICAgICAgZHVtcHM6IHsKKyAgICAgICAgICAgIHByb2Nlc3NfdG90YWxzOiB7CisgICAgICAgICAgICAgIHJlc2lkZW50X3NldF9ieXRlczogJzMwMCcKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOworICAgIHZhciBwMSA9IG0uZ2V0UHJvY2Vzcyg0Mik7CisgICAgdmFyIHAyID0gbS5nZXRQcm9jZXNzKDQzKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHAxKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHAyKTsKKworICAgIC8vIENoZWNrIHRoYXQgTW9kZWwgYW5kIFByb2Nlc3Mgb2JqZWN0cyBjb250YWluIHRoZSByaWdodCBkdW1wcy4KKyAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wcy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChwMS5tZW1vcnlEdW1wcy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChwMi5tZW1vcnlEdW1wcy5sZW5ndGgsIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uZ2xvYmFsTWVtb3J5RHVtcHNbMF0uc3RhcnQsIDEwKTsKKyAgICBhc3NlcnQuZXF1YWwocDEubWVtb3J5RHVtcHNbMF0uc3RhcnQsIDEwKTsKKyAgICBhc3NlcnQuZXF1YWwocDIubWVtb3J5RHVtcHNbMF0uc3RhcnQsIDExKTsKKyAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wc1swXS5kdXJhdGlvbiwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzBdLmR1cmF0aW9uLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwocDIubWVtb3J5RHVtcHNbMF0uZHVyYXRpb24sIDApOworCisgICAgYXNzZXJ0LmVxdWFsKG0uZ2xvYmFsTWVtb3J5RHVtcHNbMV0uc3RhcnQsIDEyKTsKKyAgICBhc3NlcnQuZXF1YWwocDEubWVtb3J5RHVtcHNbMV0uc3RhcnQsIDEzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wc1sxXS5kdXJhdGlvbiwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzFdLmR1cmF0aW9uLCAwKTsKKworICAgIC8vIENoZWNrIHRoYXQgR2xvYmFsTWVtb3J5RHVtcCBhbmQgUHJvY2Vzc01lbW9yeUR1bXAgb2JqZWN0cyBhcmUKKyAgICAvLyBpbnRlcmNvbm5lY3RlZCBjb3JyZWN0bHkuCisgICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzBdLAorICAgICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzWzBdLnByb2Nlc3NNZW1vcnlEdW1wc1s0Ml0pOworICAgIGFzc2VydC5lcXVhbChwMi5tZW1vcnlEdW1wc1swXSwKKyAgICAgICAgbS5nbG9iYWxNZW1vcnlEdW1wc1swXS5wcm9jZXNzTWVtb3J5RHVtcHNbNDNdKTsKKyAgICBhc3NlcnQuZXF1YWwocDEubWVtb3J5RHVtcHNbMF0uZ2xvYmFsTWVtb3J5RHVtcCwgbS5nbG9iYWxNZW1vcnlEdW1wc1swXSk7CisgICAgYXNzZXJ0LmVxdWFsKHAyLm1lbW9yeUR1bXBzWzBdLmdsb2JhbE1lbW9yeUR1bXAsIG0uZ2xvYmFsTWVtb3J5RHVtcHNbMF0pOworCisgICAgYXNzZXJ0LmVxdWFsKHAxLm1lbW9yeUR1bXBzWzFdLAorICAgICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzWzFdLnByb2Nlc3NNZW1vcnlEdW1wc1s0Ml0pOworICAgIGFzc2VydC5lcXVhbChwMS5tZW1vcnlEdW1wc1sxXS5nbG9iYWxNZW1vcnlEdW1wLCBtLmdsb2JhbE1lbW9yeUR1bXBzWzFdKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0TWVtb3J5RHVtcHNfdG90YWxSZXNpZGVudEJ5dGVzT25seScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7CisgICAgICAgIG5hbWU6ICdzb21lX2R1bXBfbmFtZScsCisgICAgICAgIHBpZDogNDIsCisgICAgICAgIHRzOiAxMCwKKyAgICAgICAgY2F0OiAndGVzdCcsCisgICAgICAgIHRpZDogNTMsCisgICAgICAgIHBoOiAndicsCisgICAgICAgIGlkOiAnMHgwMScsCisgICAgICAgIGFyZ3M6IHsKKyAgICAgICAgICBkdW1wczogeworICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKKyAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMWZmZmZmZmZmZmZmZmYnCisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKKyAgICB2YXIgcCA9IG0uZ2V0UHJvY2Vzcyg0Mik7CisgICAgdmFyIGQgPSBwLm1lbW9yeUR1bXBzWzBdOworCisgICAgYXNzZXJ0LmVxdWFsKGQudG90YWxSZXNpZGVudEJ5dGVzLCA5MDA3MTk5MjU0NzQwOTkxKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoZC5tb3N0UmVjZW50Vm1SZWdpb25zKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgMCk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE1lbW9yeUR1bXBzX3ZtUmVnaW9ucycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7CisgICAgICAgIG5hbWU6ICdzb21lX2R1bXBfbmFtZScsCisgICAgICAgIHBpZDogNDIsCisgICAgICAgIHRzOiAxMCwKKyAgICAgICAgY2F0OiAndGVzdCcsCisgICAgICAgIHRpZDogNTMsCisgICAgICAgIHBoOiAndicsCisgICAgICAgIGlkOiAnMDAwJywKKyAgICAgICAgYXJnczogeworICAgICAgICAgIGR1bXBzOiB7CisgICAgICAgICAgICBwcm9jZXNzX3RvdGFsczogeworICAgICAgICAgICAgICByZXNpZGVudF9zZXRfYnl0ZXM6ICcwJworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHByb2Nlc3NfbW1hcHM6IHsKKyAgICAgICAgICAgICAgdm1fcmVnaW9uczogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHNhOiAnZjAnLAorICAgICAgICAgICAgICAgICAgc3o6ICcxNTAnLAorICAgICAgICAgICAgICAgICAgcGY6IDYsCisgICAgICAgICAgICAgICAgICBtZjogJ1tzdGFjazoyMDMxMF0nLAorICAgICAgICAgICAgICAgICAgYnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHNzOiAnOWUnLAorICAgICAgICAgICAgICAgICAgICBwYzogJzQwJywKKyAgICAgICAgICAgICAgICAgICAgcGQ6ICcyMCcsCisgICAgICAgICAgICAgICAgICAgIHNjOiAnMTAwJywKKyAgICAgICAgICAgICAgICAgICAgc2Q6ICcwJywKKyAgICAgICAgICAgICAgICAgICAgc3c6ICc1MCcKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHNhOiAnMzUwJywKKyAgICAgICAgICAgICAgICAgIHN6OiAnMjUwJywKKyAgICAgICAgICAgICAgICAgIHBmOiA1LAorICAgICAgICAgICAgICAgICAgbWY6ICcvZGV2L2FzaG1lbS9kYWx2aWsnLAorICAgICAgICAgICAgICAgICAgYnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHNzOiAnY2QnLAorICAgICAgICAgICAgICAgICAgICBwZDogJ2NkJywKKyAgICAgICAgICAgICAgICAgICAgc3c6ICcwJworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7CisgICAgdmFyIHAgPSBtLmdldFByb2Nlc3MoNDIpOworICAgIHZhciBkID0gcC5tZW1vcnlEdW1wc1swXTsKKworICAgIGFzc2VydC5lcXVhbChkLm1vc3RSZWNlbnRWbVJlZ2lvbnMubGVuZ3RoLCAyKTsKKworICAgIHZhciB2cjEgPSBkLm1vc3RSZWNlbnRWbVJlZ2lvbnNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHZyMS5zdGFydEFkZHJlc3MsIDI0MCk7CisgICAgYXNzZXJ0LmVxdWFsKHZyMS5zaXplSW5CeXRlcywgMzM2KTsKKyAgICBhc3NlcnQuZXF1YWwodnIxLnByb3RlY3Rpb25GbGFncywgNik7CisgICAgYXNzZXJ0LmVxdWFsKHZyMS5wcm90ZWN0aW9uRmxhZ3NUb1N0cmluZywgJ3J3LScpOworICAgIGFzc2VydC5lcXVhbCh2cjEubWFwcGVkRmlsZSwgJ1tzdGFjazoyMDMxMF0nKTsKKyAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5wcml2YXRlQ2xlYW5SZXNpZGVudCwgNjQpOworICAgIGFzc2VydC5lcXVhbCh2cjEuYnl0ZVN0YXRzLnByaXZhdGVEaXJ0eVJlc2lkZW50LCAzMik7CisgICAgYXNzZXJ0LmVxdWFsKHZyMS5ieXRlU3RhdHMuc2hhcmVkQ2xlYW5SZXNpZGVudCwgMjU2KTsKKyAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5zaGFyZWREaXJ0eVJlc2lkZW50LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5wcm9wb3J0aW9uYWxSZXNpZGVudCwgMTU4KTsKKyAgICBhc3NlcnQuZXF1YWwodnIxLmJ5dGVTdGF0cy5zd2FwcGVkLCA4MCk7CisKKyAgICB2YXIgdnIyID0gZC5tb3N0UmVjZW50Vm1SZWdpb25zWzFdOworICAgIGFzc2VydC5lcXVhbCh2cjIuc3RhcnRBZGRyZXNzLCA4NDgpOworICAgIGFzc2VydC5lcXVhbCh2cjIuc2l6ZUluQnl0ZXMsIDU5Mik7CisgICAgYXNzZXJ0LmVxdWFsKHZyMi5wcm90ZWN0aW9uRmxhZ3MsIDUpOworICAgIGFzc2VydC5lcXVhbCh2cjIucHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcsICdyLXgnKTsKKyAgICBhc3NlcnQuZXF1YWwodnIyLm1hcHBlZEZpbGUsICcvZGV2L2FzaG1lbS9kYWx2aWsnKTsKKyAgICBhc3NlcnQuZXF1YWwodnIyLmJ5dGVTdGF0cy5wcm9wb3J0aW9uYWxSZXNpZGVudCwgMjA1KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQodnIyLmJ5dGVTdGF0cy5wcml2YXRlQ2xlYW5SZXNpZGVudCk7CisgICAgYXNzZXJ0LmVxdWFsKHZyMi5ieXRlU3RhdHMucHJpdmF0ZURpcnR5UmVzaWRlbnQsIDIwNSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHZyMi5ieXRlU3RhdHMuc2hhcmVkQ2xlYW5SZXNpZGVudCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHZyMi5ieXRlU3RhdHMuc2hhcmVkRGlydHlSZXNpZGVudCk7CisgICAgYXNzZXJ0LmVxdWFsKHZyMi5ieXRlU3RhdHMuc3dhcHBlZCwgMCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZC50b3RhbFJlc2lkZW50Qnl0ZXMsIDApOworICAgIGFzc2VydC5sZW5ndGhPZihkLm1lbW9yeUFsbG9jYXRvckR1bXBzLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0TWVtb3J5RHVtcHNfZXhwbGljaXRNZW1vcnlBbGxvY2F0b3JEdW1wcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7CisgICAgICAgIG5hbWU6ICdhJywKKyAgICAgICAgcGlkOiA0MiwKKyAgICAgICAgdHM6IDEwLAorICAgICAgICBjYXQ6ICd0ZXN0JywKKyAgICAgICAgdGlkOiA1MywKKyAgICAgICAgcGg6ICd2JywKKyAgICAgICAgaWQ6ICcweDAwMDEnLAorICAgICAgICBhcmdzOiB7CisgICAgICAgICAgZHVtcHM6IHsKKyAgICAgICAgICAgIHByb2Nlc3NfdG90YWxzOiB7CisgICAgICAgICAgICAgIHJlc2lkZW50X3NldF9ieXRlczogJzEwMCcKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhbGxvY2F0b3JzOiB7CisgICAgICAgICAgICAgICdvaWxwYW4nOiB7CisgICAgICAgICAgICAgICAgZ3VpZDogJzFhJywKKyAgICAgICAgICAgICAgICBhdHRyczogeworICAgICAgICAgICAgICAgICAgb2JqZWN0c19jb3VudDogeworICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdvYmplY3RzJywgdmFsdWU6ICcyZicKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBpbm5lcl9zaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzEwMDAnfSwKKyAgICAgICAgICAgICAgICAgIHNpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnODAwMCd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAnb2lscGFuL2hlYXAxJzogeworICAgICAgICAgICAgICAgIGd1aWQ6ICcyYicsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnM2YnCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICczMDAwJ30sCisgICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzQwMDAnfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgJ29pbHBhbi9oZWFwMic6IHsKKyAgICAgICAgICAgICAgICBndWlkOiAnM2MnLAorICAgICAgICAgICAgICAgIGF0dHJzOiB7CisgICAgICAgICAgICAgICAgICBvYmplY3RzX2NvdW50OiB7CisgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzY2FsYXInLCB1bml0czogJ29iamVjdHMnLCB2YWx1ZTogJzRmJworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIGlubmVyX3NpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnNDAwMCd9LAorICAgICAgICAgICAgICAgICAgc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc0MDAwJ30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICdvaWxwYW4vaGVhcDIvYnVja2V0MSc6IHsKKyAgICAgICAgICAgICAgICAvLyBEZWxpYmVyYXRlbHkgbWlzc2luZyBHVUlEICh0byBjaGVjayB0aGF0IHRoZSBpbXBvcnRlciBkb2VzCisgICAgICAgICAgICAgICAgLy8gbm90IHNraXAgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHdpdGhvdXQgR1VJRCkuCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnMWYnCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICcyMDAwJ30sCisgICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzIwMDAnfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgJ3Y4JzogeworICAgICAgICAgICAgICAgIGd1aWQ6ICc1ZScsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnNWYnCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc1MDAwJ30sCisgICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzYwMDAnfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIF07CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnRzLCBmYWxzZSk7CisgICAgdmFyIHAgPSBtLmdldFByb2Nlc3MoNDIpOworICAgIHZhciBkID0gcC5tZW1vcnlEdW1wc1swXTsKKworICAgIGFzc2VydC5lcXVhbChkLm1lbW9yeUFsbG9jYXRvckR1bXBzLmxlbmd0aCwgMik7CisKKyAgICB2YXIgb2lscGFuUm9vdCA9IGQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ29pbHBhbicpOworICAgIHZhciB2OFJvb3QgPSBkLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd2OCcpOworICAgIGFzc2VydC5pc0RlZmluZWQob2lscGFuUm9vdCk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh2OFJvb3QpOworICAgIGFzc2VydC5pbmNsdWRlKGQubWVtb3J5QWxsb2NhdG9yRHVtcHMsIG9pbHBhblJvb3QpOworICAgIGFzc2VydC5pbmNsdWRlKGQubWVtb3J5QWxsb2NhdG9yRHVtcHMsIHY4Um9vdCk7CisKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuUm9vdC5hdHRyaWJ1dGVzWydvYmplY3RzX2NvdW50J10udmFsdWUsIDQ3KTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuUm9vdC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDMyNzY4KTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuUm9vdC5hdHRyaWJ1dGVzWydpbm5lcl9zaXplJ10udmFsdWUsIDQwOTYpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5Sb290LmNoaWxkcmVuLmxlbmd0aCwgMik7CisKKyAgICB2YXIgb2lscGFuQnVja2V0MSA9IGQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoCisgICAgICAgICdvaWxwYW4vaGVhcDIvYnVja2V0MScpOworICAgIGFzc2VydC5pc0RlZmluZWQob2lscGFuQnVja2V0MSk7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuZnVsbE5hbWUsICdvaWxwYW4vaGVhcDIvYnVja2V0MScpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLm5hbWUsICdidWNrZXQxJyk7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCAzMSk7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCA4MTkyKTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5hdHRyaWJ1dGVzWydpbm5lcl9zaXplJ10udmFsdWUsIDgxOTIpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLmNoaWxkcmVuLmxlbmd0aCwgMCk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKG9pbHBhbkJ1Y2tldDEucGFyZW50KTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5wYXJlbnQuZnVsbE5hbWUsICdvaWxwYW4vaGVhcDInKTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5wYXJlbnQubmFtZSwgJ2hlYXAyJyk7CisgICAgYXNzZXJ0LmluY2x1ZGUob2lscGFuQnVja2V0MS5wYXJlbnQuY2hpbGRyZW4sIG9pbHBhbkJ1Y2tldDEpOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChvaWxwYW5CdWNrZXQxLnBhcmVudC5wYXJlbnQpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChvaWxwYW5CdWNrZXQxLnBhcmVudC5wYXJlbnQsIG9pbHBhblJvb3QpOworCisgICAgYXNzZXJ0LmVxdWFsKGQudG90YWxSZXNpZGVudEJ5dGVzLCAyNTYpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChkLm1vc3RSZWNlbnRWbVJlZ2lvbnMpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnRNZW1vcnlEdW1wc19pbXBsaWNpdE1lbW9yeUFsbG9jYXRvckR1bXBzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ2EnLAorICAgICAgICBwaWQ6IDQyLAorICAgICAgICB0czogMTAsCisgICAgICAgIGNhdDogJ3Rlc3QnLAorICAgICAgICB0aWQ6IDUzLAorICAgICAgICBwaDogJ3YnLAorICAgICAgICBpZDogJzB4MDAwMScsCisgICAgICAgIGFyZ3M6IHsKKyAgICAgICAgICBkdW1wczogeworICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKKyAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMTAwJworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFsbG9jYXRvcnM6IHsKKyAgICAgICAgICAgICAgJ29pbHBhbi9oZWFwMSc6IHsKKyAgICAgICAgICAgICAgICBndWlkOiAnOTk5JywKKyAgICAgICAgICAgICAgICBhdHRyczogeworICAgICAgICAgICAgICAgICAgb2JqZWN0c19jb3VudDogeworICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdvYmplY3RzJywgdmFsdWU6ICczZicKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBpbm5lcl9zaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzMwMDAnfSwKKyAgICAgICAgICAgICAgICAgIHNpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnNDAwMCd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAnb2lscGFuL2hlYXAyL2J1Y2tldDEnOiB7CisgICAgICAgICAgICAgICAgZ3VpZDogJzg4OCcsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnMWYnCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICcyMDAwJ30sCisgICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzIwMDAnfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgJ3Y4JzogeworICAgICAgICAgICAgICAgIGd1aWQ6ICc3NzcnLAorICAgICAgICAgICAgICAgIGF0dHJzOiB7CisgICAgICAgICAgICAgICAgICBvYmplY3RzX2NvdW50OiB7CisgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzY2FsYXInLCB1bml0czogJ29iamVjdHMnLCB2YWx1ZTogJzVmJworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIGlubmVyX3NpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnNTAwMCd9LAorICAgICAgICAgICAgICAgICAgc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc2MDAwJ30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOworICAgIHZhciBwID0gbS5nZXRQcm9jZXNzKDQyKTsKKyAgICB2YXIgZCA9IHAubWVtb3J5RHVtcHNbMF07CisKKyAgICBhc3NlcnQuZXF1YWwoZC5tZW1vcnlBbGxvY2F0b3JEdW1wcy5sZW5ndGgsIDIpOworCisgICAgdmFyIG9pbHBhblJvb3QgPSBkLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdvaWxwYW4nKTsKKyAgICB2YXIgdjhSb290ID0gZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgndjgnKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKG9pbHBhblJvb3QpOworICAgIGFzc2VydC5pc0RlZmluZWQodjhSb290KTsKKyAgICBhc3NlcnQuaW5jbHVkZShkLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBvaWxwYW5Sb290KTsKKyAgICBhc3NlcnQuaW5jbHVkZShkLm1lbW9yeUFsbG9jYXRvckR1bXBzLCB2OFJvb3QpOworCisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCA5NCk7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAyNDU3Nik7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuYXR0cmlidXRlc1snaW5uZXJfc2l6ZSddLnZhbHVlLCAyMDQ4MCk7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhblJvb3QuY2hpbGRyZW4ubGVuZ3RoLCAyKTsKKworICAgIHZhciBvaWxwYW5CdWNrZXQxID0gZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKKyAgICAgICAgJ29pbHBhbi9oZWFwMi9idWNrZXQxJyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChvaWxwYW5CdWNrZXQxKTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5mdWxsTmFtZSwgJ29pbHBhbi9oZWFwMi9idWNrZXQxJyk7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEubmFtZSwgJ2J1Y2tldDEnKTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5hdHRyaWJ1dGVzWydvYmplY3RzX2NvdW50J10udmFsdWUsIDMxKTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MS5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDgxOTIpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgODE5Mik7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkJ1Y2tldDEuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKKworICAgIGFzc2VydC5pc0RlZmluZWQob2lscGFuQnVja2V0MS5wYXJlbnQpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLnBhcmVudC5mdWxsTmFtZSwgJ29pbHBhbi9oZWFwMicpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQxLnBhcmVudC5uYW1lLCAnaGVhcDInKTsKKyAgICBhc3NlcnQuaW5jbHVkZShvaWxwYW5CdWNrZXQxLnBhcmVudC5jaGlsZHJlbiwgb2lscGFuQnVja2V0MSk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKG9pbHBhbkJ1Y2tldDEucGFyZW50LnBhcmVudCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9pbHBhbkJ1Y2tldDEucGFyZW50LnBhcmVudCwgb2lscGFuUm9vdCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZC50b3RhbFJlc2lkZW50Qnl0ZXMsIDI1Nik7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGQubW9zdFJlY2VudFZtUmVnaW9ucyk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE1lbW9yeUR1bXBzX2dsb2JhbE1lbW9yeUFsbG9jYXRvckR1bXBzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50cyA9IFsKKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ2EnLAorICAgICAgICBwaWQ6IDQyLAorICAgICAgICB0czogMTAsCisgICAgICAgIGNhdDogJ3Rlc3QnLAorICAgICAgICB0aWQ6IDUzLAorICAgICAgICBwaDogJ3YnLAorICAgICAgICBpZDogJzB4MDAwMScsCisgICAgICAgIGFyZ3M6IHsKKyAgICAgICAgICBkdW1wczogeworICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKKyAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMTAwJworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFsbG9jYXRvcnM6IHsKKyAgICAgICAgICAgICAgJ3RpbGVfbWFuYWdlci90aWxlMSc6IHsKKyAgICAgICAgICAgICAgICBndWlkOiAnMjEnLAorICAgICAgICAgICAgICAgIGF0dHJzOiB7CisgICAgICAgICAgICAgICAgICBvYmplY3RzX2NvdW50OiB7CisgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzY2FsYXInLCB1bml0czogJ29iamVjdHMnLCB2YWx1ZTogJzNmJworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIGlubmVyX3NpemU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnMzAwMCd9LAorICAgICAgICAgICAgICAgICAgc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICc0MDAwJ30sCisgICAgICAgICAgICAgICAgICB3ZWF0aGVyOiB7dHlwZTogJ3N0cmluZycsIHVuaXRzOiAnJywgdmFsdWU6ICdyYWlueSd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAnZ2xvYmFsL3NoYXJlZF9iaXRtYXBfbWFuYWdlci9iaXRtYXAyJzogeworICAgICAgICAgICAgICAgIGd1aWQ6ICc0MicsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIG9iamVjdHNfY291bnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnb2JqZWN0cycsIHZhbHVlOiAnMWYnCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgaW5uZXJfc2l6ZToge3R5cGU6ICdzY2FsYXInLCB1bml0czogJ2J5dGVzJywgdmFsdWU6ICcyMDAwJ30sCisgICAgICAgICAgICAgICAgICBzaXplOiB7dHlwZTogJ3NjYWxhcicsIHVuaXRzOiAnYnl0ZXMnLCB2YWx1ZTogJzIwMDAnfSwKKyAgICAgICAgICAgICAgICAgIHdlYXRoZXI6IHt0eXBlOiAnc3RyaW5nJywgdW5pdHM6ICcnLCB2YWx1ZTogJ3N1bm55J30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBdOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGV2ZW50cywgZmFsc2UpOworICAgIHZhciBwID0gbS5nZXRQcm9jZXNzKDQyKTsKKyAgICB2YXIgZ21kID0gbS5nbG9iYWxNZW1vcnlEdW1wc1swXTsKKyAgICB2YXIgcG1kID0gcC5tZW1vcnlEdW1wc1swXTsKKworICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbWQudG90YWxSZXNpZGVudEJ5dGVzKTsKKyAgICBhc3NlcnQuZXF1YWwocG1kLnRvdGFsUmVzaWRlbnRCeXRlcywgMjU2KTsKKworICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbWQubW9zdFJlY2VudFZtUmVnaW9ucyk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBtZC5tb3N0UmVjZW50Vm1SZWdpb25zKTsKKworICAgIGFzc2VydC5lcXVhbChnbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocG1kLm1lbW9yeUFsbG9jYXRvckR1bXBzLmxlbmd0aCwgMSk7CisKKyAgICAvLyBHbG9iYWwgbWVtb3J5IGFsbG9jYXRvciBkdW1wcy4KKyAgICB2YXIgc2hhcmVkQml0bWFwTWFuYWdlciA9IGdtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKKyAgICAgICAgJ3NoYXJlZF9iaXRtYXBfbWFuYWdlcicpOworICAgIGFzc2VydC5pc0RlZmluZWQoc2hhcmVkQml0bWFwTWFuYWdlcik7CisgICAgYXNzZXJ0LmluY2x1ZGUoZ21kLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBzaGFyZWRCaXRtYXBNYW5hZ2VyKTsKKworICAgIGFzc2VydC5lcXVhbChzaGFyZWRCaXRtYXBNYW5hZ2VyLmF0dHJpYnV0ZXNbJ29iamVjdHNfY291bnQnXS52YWx1ZSwgMzEpOworICAgIGFzc2VydC5lcXVhbChzaGFyZWRCaXRtYXBNYW5hZ2VyLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgODE5Mik7CisgICAgYXNzZXJ0LmVxdWFsKHNoYXJlZEJpdG1hcE1hbmFnZXIuYXR0cmlidXRlc1snaW5uZXJfc2l6ZSddLnZhbHVlLCA4MTkyKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc2hhcmVkQml0bWFwTWFuYWdlci5hdHRyaWJ1dGVzWyd3ZWF0aGVyJ10pOworICAgIGFzc2VydC5sZW5ndGhPZihzaGFyZWRCaXRtYXBNYW5hZ2VyLmNoaWxkcmVuLCAxKTsKKworICAgIHZhciBiaXRtYXAyID0gZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKAorICAgICAgICAnc2hhcmVkX2JpdG1hcF9tYW5hZ2VyL2JpdG1hcDInKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGJpdG1hcDIpOworICAgIGFzc2VydC5pbmNsdWRlKHNoYXJlZEJpdG1hcE1hbmFnZXIuY2hpbGRyZW4sIGJpdG1hcDIpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChiaXRtYXAyLnBhcmVudCwgc2hhcmVkQml0bWFwTWFuYWdlcik7CisKKyAgICBhc3NlcnQuZXF1YWwoYml0bWFwMi5hdHRyaWJ1dGVzWydvYmplY3RzX2NvdW50J10udmFsdWUsIDMxKTsKKyAgICBhc3NlcnQuZXF1YWwoYml0bWFwMi5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDgxOTIpOworICAgIGFzc2VydC5lcXVhbChiaXRtYXAyLmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgODE5Mik7CisgICAgYXNzZXJ0LmVxdWFsKGJpdG1hcDIuYXR0cmlidXRlc1snd2VhdGhlciddLnZhbHVlLCAnc3VubnknKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoYml0bWFwMi5jaGlsZHJlbiwgMCk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0aWxlX21hbmFnZXInKSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAorICAgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3RpbGVfbWFuYWdlci90aWxlMScpKTsKKworICAgIC8vIFByb2Nlc3MgbWVtb3J5IGFsbG9jYXRvciBkdW1wcy4KKyAgICB2YXIgdGlsZU1hbmFnZXJSb290ID0gcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0aWxlX21hbmFnZXInKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHRpbGVNYW5hZ2VyUm9vdCk7CisgICAgYXNzZXJ0LmluY2x1ZGUocG1kLm1lbW9yeUFsbG9jYXRvckR1bXBzLCB0aWxlTWFuYWdlclJvb3QpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0aWxlTWFuYWdlclJvb3QucGFyZW50KTsKKworICAgIGFzc2VydC5lcXVhbCh0aWxlTWFuYWdlclJvb3QuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCA2Myk7CisgICAgYXNzZXJ0LmVxdWFsKHRpbGVNYW5hZ2VyUm9vdC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDE2Mzg0KTsKKyAgICBhc3NlcnQuZXF1YWwodGlsZU1hbmFnZXJSb290LmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgMTIyODgpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0aWxlTWFuYWdlclJvb3QuYXR0cmlidXRlc1snd2VhdGhlciddKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodGlsZU1hbmFnZXJSb290LmNoaWxkcmVuLCAxKTsKKworICAgIHZhciB0aWxlMSA9IHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKKyAgICAgICAgJ3RpbGVfbWFuYWdlci90aWxlMScpOworICAgIGFzc2VydC5pc0RlZmluZWQodGlsZTEpOworICAgIGFzc2VydC5pbmNsdWRlKHRpbGVNYW5hZ2VyUm9vdC5jaGlsZHJlbiwgdGlsZTEpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0aWxlMS5wYXJlbnQsIHRpbGVNYW5hZ2VyUm9vdCk7CisKKyAgICBhc3NlcnQuZXF1YWwodGlsZTEuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLCA2Myk7CisgICAgYXNzZXJ0LmVxdWFsKHRpbGUxLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgMTYzODQpOworICAgIGFzc2VydC5lcXVhbCh0aWxlMS5hdHRyaWJ1dGVzWydpbm5lcl9zaXplJ10udmFsdWUsIDEyMjg4KTsKKyAgICBhc3NlcnQuZXF1YWwodGlsZTEuYXR0cmlidXRlc1snd2VhdGhlciddLnZhbHVlLCAncmFpbnknKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodGlsZTEuY2hpbGRyZW4sIDApOworCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAorICAgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3NoYXJlZF9iaXRtYXBfbWFuYWdlcicpKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoCisgICAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnc2hhcmVkX2JpdG1hcF9tYW5hZ2VyL2JpdG1hcDInKSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydE1lbW9yeUR1bXBzX21lbW9yeUFsbG9jYXRvckR1bXBFZGdlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7CisgICAgICAgIG5hbWU6ICdicm93c2VyJywKKyAgICAgICAgcGlkOiA0MiwKKyAgICAgICAgdHM6IDEwLAorICAgICAgICBjYXQ6ICd0ZXN0JywKKyAgICAgICAgdGlkOiA1MywKKyAgICAgICAgcGg6ICd2JywKKyAgICAgICAgaWQ6ICcweDAwMDEnLAorICAgICAgICBhcmdzOiB7CisgICAgICAgICAgZHVtcHM6IHsKKyAgICAgICAgICAgIHByb2Nlc3NfdG90YWxzOiB7CisgICAgICAgICAgICAgIHJlc2lkZW50X3NldF9ieXRlczogJzEwMCcKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhbGxvY2F0b3JzOiB7CisgICAgICAgICAgICAgICdsb2NhbCc6IHsKKyAgICAgICAgICAgICAgICBndWlkOiAnMycsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIG1vb2Q6IHt0eXBlOiAnc3RyaW5nJywgdW5pdHM6ICcnLCB2YWx1ZTogJ3ZlcnkgZ29vZCd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAnZ2xvYmFsL3NoYXJlZCc6IHsKKyAgICAgICAgICAgICAgICBndWlkOiAnNycsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIGNvbG9yOiB7dHlwZTogJ3N0cmluZycsIHVuaXRzOiAnJywgdmFsdWU6ICdibHVlJ30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhbGxvY2F0b3JzX2dyYXBoOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzb3VyY2U6ICczJywKKyAgICAgICAgICAgICAgICB0YXJnZXQ6ICc3JywKKyAgICAgICAgICAgICAgICB0eXBlOiAnb3duZXJzaGlwJywKKyAgICAgICAgICAgICAgICBpbXBvcnRhbmNlOiAwCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIG5hbWU6ICdyZW5kZXJlcicsCisgICAgICAgIHBpZDogNDMsCisgICAgICAgIHRzOiAxMSwKKyAgICAgICAgY2F0OiAndGVzdCcsCisgICAgICAgIHRpZDogNTMsCisgICAgICAgIHBoOiAndicsCisgICAgICAgIGlkOiAnMHgwMDAxJywKKyAgICAgICAgYXJnczogeworICAgICAgICAgIGR1bXBzOiB7CisgICAgICAgICAgICBwcm9jZXNzX3RvdGFsczogeworICAgICAgICAgICAgICByZXNpZGVudF9zZXRfYnl0ZXM6ICcyMDAnCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxsb2NhdG9yczogeworICAgICAgICAgICAgICAnbG9jYWwnOiB7CisgICAgICAgICAgICAgICAgZ3VpZDogJzQnLAorICAgICAgICAgICAgICAgIGF0dHJzOiB7CisgICAgICAgICAgICAgICAgICBsZW5ndGg6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdieXRlcycsIHZhbHVlOiAnMyd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAnZ2xvYmFsL3NoYXJlZCc6IHsKKyAgICAgICAgICAgICAgICBndWlkOiAnNycsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIGFyZWE6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdzcSBmdCcsIHZhbHVlOiAnOSd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxsb2NhdG9yc19ncmFwaDogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc291cmNlOiAnNCcsCisgICAgICAgICAgICAgICAgdGFyZ2V0OiAnNycsCisgICAgICAgICAgICAgICAgdHlwZTogJ293bmVyc2hpcCcsCisgICAgICAgICAgICAgICAgaW1wb3J0YW5jZTogMQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9LAorICAgICAgeworICAgICAgICBuYW1lOiAnZ3B1JywKKyAgICAgICAgcGlkOiA0NCwKKyAgICAgICAgdHM6IDEwLjUsCisgICAgICAgIGNhdDogJ3Rlc3QnLAorICAgICAgICB0aWQ6IDUzLAorICAgICAgICBwaDogJ3YnLAorICAgICAgICBpZDogJzB4MDAwMScsCisgICAgICAgIGFyZ3M6IHsKKyAgICAgICAgICBkdW1wczogeworICAgICAgICAgICAgcHJvY2Vzc190b3RhbHM6IHsKKyAgICAgICAgICAgICAgcmVzaWRlbnRfc2V0X2J5dGVzOiAnMzAwJworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFsbG9jYXRvcnM6IHsKKyAgICAgICAgICAgICAgJ2xvY2FsMSc6IHsKKyAgICAgICAgICAgICAgICBndWlkOiAnNScsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgIHN0YXRlOiB7dHlwZTogJ3N0cmluZycsIHVuaXRzOiAnJywgdmFsdWU6ICdPTid9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAnbG9jYWwyJzogeworICAgICAgICAgICAgICAgIGd1aWQ6ICc2JywKKyAgICAgICAgICAgICAgICBhdHRyczogeworICAgICAgICAgICAgICAgICAgdGVtcGVyYXR1cmU6IHt0eXBlOiAnc2NhbGFyJywgdW5pdHM6ICdDJywgdmFsdWU6ICc2NCd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxsb2NhdG9yc19ncmFwaDogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc291cmNlOiAnNScsCisgICAgICAgICAgICAgICAgdGFyZ2V0OiAnNycsCisgICAgICAgICAgICAgICAgdHlwZTogJ293bmVyc2hpcCcsCisgICAgICAgICAgICAgICAgaW1wb3J0YW5jZTogLTEKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNvdXJjZTogJzYnLAorICAgICAgICAgICAgICAgIHRhcmdldDogJzUnLAorICAgICAgICAgICAgICAgIHR5cGU6ICdvd25lcnNoaXAnLAorICAgICAgICAgICAgICAgIGltcG9ydGFuY2U6IDEKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNvdXJjZTogJzUnLAorICAgICAgICAgICAgICAgIHRhcmdldDogJzQnLAorICAgICAgICAgICAgICAgIHR5cGU6ICdyZXRlbnRpb24nCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBdOworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbChldmVudHMsIGZhbHNlKTsKKyAgICB2YXIgYnJvd3NlclByb2Nlc3MgPSBtb2RlbC5nZXRQcm9jZXNzKDQyKTsKKyAgICB2YXIgcmVuZGVyZXJQcm9jZXNzID0gbW9kZWwuZ2V0UHJvY2Vzcyg0Myk7CisgICAgdmFyIGdwdVByb2Nlc3MgPSBtb2RlbC5nZXRQcm9jZXNzKDQ0KTsKKworICAgIGFzc2VydC5sZW5ndGhPZihtb2RlbC5nbG9iYWxNZW1vcnlEdW1wcywgMSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGJyb3dzZXJQcm9jZXNzLm1lbW9yeUR1bXBzLCAxKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YocmVuZGVyZXJQcm9jZXNzLm1lbW9yeUR1bXBzLCAxKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1UHJvY2Vzcy5tZW1vcnlEdW1wcywgMSk7CisKKyAgICB2YXIgZ2xvYmFsRHVtcCA9IG1vZGVsLmdsb2JhbE1lbW9yeUR1bXBzWzBdOworICAgIHZhciBicm93c2VyRHVtcCA9IGJyb3dzZXJQcm9jZXNzLm1lbW9yeUR1bXBzWzBdOworICAgIHZhciByZW5kZXJlckR1bXAgPSByZW5kZXJlclByb2Nlc3MubWVtb3J5RHVtcHNbMF07CisgICAgdmFyIGdwdUR1bXAgPSBncHVQcm9jZXNzLm1lbW9yeUR1bXBzWzBdOworCisgICAgLy8gR2xvYmFsIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KKyAgICBhc3NlcnQubGVuZ3RoT2YoZ2xvYmFsRHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgMSk7CisKKyAgICB2YXIgZ2xvYmFsRHVtcFNoYXJlZCA9IGdsb2JhbER1bXAuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoCisgICAgICAgICdzaGFyZWQnKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGdsb2JhbER1bXBTaGFyZWQpOworICAgIGFzc2VydC5pbmNsdWRlKGdsb2JhbER1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMsIGdsb2JhbER1bXBTaGFyZWQpOworICAgIGFzc2VydC5lcXVhbChnbG9iYWxEdW1wU2hhcmVkLmF0dHJpYnV0ZXNbJ2NvbG9yJ10udmFsdWUsICdibHVlJyk7CisgICAgYXNzZXJ0LmVxdWFsKGdsb2JhbER1bXBTaGFyZWQuYXR0cmlidXRlc1snYXJlYSddLnZhbHVlLCA5KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ2xvYmFsRHVtcFNoYXJlZC5hdHRyaWJ1dGVzWydtb29kJ10pOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbG9iYWxEdW1wU2hhcmVkLmF0dHJpYnV0ZXNbJ3NpemUnXSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdsb2JhbER1bXBTaGFyZWQuYXR0cmlidXRlc1snc3RhdGUnXSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdsb2JhbER1bXBTaGFyZWQuYXR0cmlidXRlc1sndGVtcGVyYXR1cmUnXSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGdsb2JhbER1bXBTaGFyZWQuY2hpbGRyZW4sIDApOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChnbG9iYWxEdW1wU2hhcmVkLnBhcmVudCk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ2xvYmFsRHVtcFNoYXJlZC5vd25zKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ2xvYmFsRHVtcFNoYXJlZC5vd25lZEJ5LCAzKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ2xvYmFsRHVtcFNoYXJlZC5yZXRhaW5zLCAwKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ2xvYmFsRHVtcFNoYXJlZC5yZXRhaW5lZEJ5LCAwKTsKKworICAgIC8vIEJyb3dzZXIgbWVtb3J5IGFsbG9jYXRvciBkdW1wLgorICAgIGFzc2VydC5sZW5ndGhPZihicm93c2VyRHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgMSk7CisKKyAgICB2YXIgYnJvd3NlckR1bXBMb2NhbCA9IGJyb3dzZXJEdW1wLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKAorICAgICAgICAnbG9jYWwnKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGJyb3dzZXJEdW1wTG9jYWwpOworICAgIGFzc2VydC5pbmNsdWRlKGJyb3dzZXJEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLCBicm93c2VyRHVtcExvY2FsKTsKKyAgICBhc3NlcnQuZXF1YWwoYnJvd3NlckR1bXBMb2NhbC5hdHRyaWJ1dGVzWydtb29kJ10udmFsdWUsICd2ZXJ5IGdvb2QnKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoYnJvd3NlckR1bXBMb2NhbC5hdHRyaWJ1dGVzWydjb2xvciddKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoYnJvd3NlckR1bXBMb2NhbC5jaGlsZHJlbiwgMCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGJyb3dzZXJEdW1wTG9jYWwucGFyZW50KTsKKworICAgIGFzc2VydC5pc0RlZmluZWQoYnJvd3NlckR1bXBMb2NhbC5vd25zKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoYnJvd3NlckR1bXBMb2NhbC5vd25lZEJ5LCAwKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoYnJvd3NlckR1bXBMb2NhbC5yZXRhaW5zLCAwKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoYnJvd3NlckR1bXBMb2NhbC5yZXRhaW5lZEJ5LCAwKTsKKworICAgIHZhciBicm93c2VyRHVtcExvY2FsT3duc0xpbmsgPSBicm93c2VyRHVtcExvY2FsLm93bnM7CisgICAgYXNzZXJ0LmluY2x1ZGUoZ2xvYmFsRHVtcFNoYXJlZC5vd25lZEJ5LCBicm93c2VyRHVtcExvY2FsT3duc0xpbmspOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChicm93c2VyRHVtcExvY2FsT3duc0xpbmsuc291cmNlLCBicm93c2VyRHVtcExvY2FsKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnJvd3NlckR1bXBMb2NhbE93bnNMaW5rLnRhcmdldCwgZ2xvYmFsRHVtcFNoYXJlZCk7CisgICAgYXNzZXJ0LmVxdWFsKGJyb3dzZXJEdW1wTG9jYWxPd25zTGluay5pbXBvcnRhbmNlLCAwKTsKKworICAgIC8vIFJlbmRlcmVyIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KKyAgICBhc3NlcnQubGVuZ3RoT2YocmVuZGVyZXJEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLCAxKTsKKworICAgIHZhciByZW5kZXJlckR1bXBMb2NhbCA9IHJlbmRlcmVyRHVtcC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKKyAgICAgICAgJ2xvY2FsJyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChyZW5kZXJlckR1bXBMb2NhbCk7CisgICAgYXNzZXJ0LmluY2x1ZGUocmVuZGVyZXJEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLCByZW5kZXJlckR1bXBMb2NhbCk7CisgICAgYXNzZXJ0LmVxdWFsKHJlbmRlcmVyRHVtcExvY2FsLmF0dHJpYnV0ZXNbJ2xlbmd0aCddLnZhbHVlLCAzKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocmVuZGVyZXJEdW1wTG9jYWwuYXR0cmlidXRlc1snYXJlYSddKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YocmVuZGVyZXJEdW1wTG9jYWwuY2hpbGRyZW4sIDApOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChyZW5kZXJlckR1bXBMb2NhbC5wYXJlbnQpOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChyZW5kZXJlckR1bXBMb2NhbC5vd25zKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YocmVuZGVyZXJEdW1wTG9jYWwub3duZWRCeSwgMCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHJlbmRlcmVyRHVtcExvY2FsLnJldGFpbnMsIDApOworICAgIGFzc2VydC5sZW5ndGhPZihyZW5kZXJlckR1bXBMb2NhbC5yZXRhaW5lZEJ5LCAxKTsKKworICAgIHZhciByZW5kZXJlckR1bXBMb2NhbE93bnNMaW5rID0gcmVuZGVyZXJEdW1wTG9jYWwub3duczsKKyAgICBhc3NlcnQuaW5jbHVkZShnbG9iYWxEdW1wU2hhcmVkLm93bmVkQnksIHJlbmRlcmVyRHVtcExvY2FsT3duc0xpbmspOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZW5kZXJlckR1bXBMb2NhbE93bnNMaW5rLnNvdXJjZSwgcmVuZGVyZXJEdW1wTG9jYWwpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZW5kZXJlckR1bXBMb2NhbE93bnNMaW5rLnRhcmdldCwgZ2xvYmFsRHVtcFNoYXJlZCk7CisgICAgYXNzZXJ0LmVxdWFsKHJlbmRlcmVyRHVtcExvY2FsT3duc0xpbmsuaW1wb3J0YW5jZSwgMSk7CisKKyAgICAvLyBHUFUgbWVtb3J5IGFsbG9jYXRvciBkdW1wcy4KKyAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgMik7CisKKyAgICB2YXIgZ3B1RHVtcExvY2FsMSA9IGdwdUR1bXAuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ2xvY2FsMScpOworICAgIGFzc2VydC5pc0RlZmluZWQoZ3B1RHVtcExvY2FsMSk7CisgICAgYXNzZXJ0LmluY2x1ZGUoZ3B1RHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgZ3B1RHVtcExvY2FsMSk7CisgICAgYXNzZXJ0LmVxdWFsKGdwdUR1bXBMb2NhbDEuYXR0cmlidXRlc1snc3RhdGUnXS52YWx1ZSwgJ09OJyk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdwdUR1bXBMb2NhbDEuYXR0cmlidXRlc1sndGVtcGVyYXR1cmUnXSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGdwdUR1bXBMb2NhbDEuY2hpbGRyZW4sIDApOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChncHVEdW1wTG9jYWwxLnBhcmVudCk7CisKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGdwdUR1bXBMb2NhbDEub3ducyk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGdwdUR1bXBMb2NhbDEub3duZWRCeSwgMSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGdwdUR1bXBMb2NhbDEucmV0YWlucywgMSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGdwdUR1bXBMb2NhbDEucmV0YWluZWRCeSwgMCk7CisKKyAgICB2YXIgZ3B1RHVtcExvY2FsMU93bnNMaW5rID0gZ3B1RHVtcExvY2FsMS5vd25zOworICAgIGFzc2VydC5pbmNsdWRlKGdsb2JhbER1bXBTaGFyZWQub3duZWRCeSwgZ3B1RHVtcExvY2FsMU93bnNMaW5rKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3B1RHVtcExvY2FsMU93bnNMaW5rLnNvdXJjZSwgZ3B1RHVtcExvY2FsMSk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdwdUR1bXBMb2NhbDFPd25zTGluay50YXJnZXQsIGdsb2JhbER1bXBTaGFyZWQpOworICAgIGFzc2VydC5lcXVhbChncHVEdW1wTG9jYWwxT3duc0xpbmsuaW1wb3J0YW5jZSwgLTEpOworCisgICAgdmFyIGdwdUR1bXBMb2NhbDFSZXRhaW5zTGluayA9IGdwdUR1bXBMb2NhbDEucmV0YWluc1swXTsKKyAgICBhc3NlcnQuaW5jbHVkZShyZW5kZXJlckR1bXBMb2NhbC5yZXRhaW5lZEJ5LCBncHVEdW1wTG9jYWwxUmV0YWluc0xpbmspOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChncHVEdW1wTG9jYWwxUmV0YWluc0xpbmsuc291cmNlLCBncHVEdW1wTG9jYWwxKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3B1RHVtcExvY2FsMVJldGFpbnNMaW5rLnRhcmdldCwgcmVuZGVyZXJEdW1wTG9jYWwpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChncHVEdW1wTG9jYWwxUmV0YWluc0xpbmsuaW1wb3J0YW5jZSk7CisKKyAgICB2YXIgZ3B1RHVtcExvY2FsMiA9IGdwdUR1bXAuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ2xvY2FsMicpOworICAgIGFzc2VydC5pc0RlZmluZWQoZ3B1RHVtcExvY2FsMik7CisgICAgYXNzZXJ0LmluY2x1ZGUoZ3B1RHVtcC5tZW1vcnlBbGxvY2F0b3JEdW1wcywgZ3B1RHVtcExvY2FsMik7CisgICAgYXNzZXJ0LmVxdWFsKGdwdUR1bXBMb2NhbDIuYXR0cmlidXRlc1sndGVtcGVyYXR1cmUnXS52YWx1ZSwgMTAwKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ3B1RHVtcExvY2FsMi5hdHRyaWJ1dGVzWydzdGF0ZSddKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMi5jaGlsZHJlbiwgMCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdwdUR1bXBMb2NhbDIucGFyZW50KTsKKworICAgIGFzc2VydC5pc0RlZmluZWQoZ3B1RHVtcExvY2FsMi5vd25zKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMi5vd25lZEJ5LCAwKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMi5yZXRhaW5zLCAwKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZ3B1RHVtcExvY2FsMi5yZXRhaW5lZEJ5LCAwKTsKKworICAgIHZhciBncHVEdW1wTG9jYWwyT3duc0xpbmsgPSBncHVEdW1wTG9jYWwyLm93bnM7CisgICAgYXNzZXJ0LmluY2x1ZGUoZ3B1RHVtcExvY2FsMS5vd25lZEJ5LCBncHVEdW1wTG9jYWwyT3duc0xpbmspOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChncHVEdW1wTG9jYWwyT3duc0xpbmsuc291cmNlLCBncHVEdW1wTG9jYWwyKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ3B1RHVtcExvY2FsMk93bnNMaW5rLnRhcmdldCwgZ3B1RHVtcExvY2FsMSk7CisgICAgYXNzZXJ0LmVxdWFsKGdwdUR1bXBMb2NhbDJPd25zTGluay5pbXBvcnRhbmNlLCAxKTsKKyAgfSk7CisKKyAgdGVzdCgnaW1wb3J0VGhyZWFkSW5zdGFudFNsaWNlV2l0aFN0YWNrRnJhbWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnREYXRhID0geworICAgICAgdHJhY2VFdmVudHM6IFsKKyAgICAgICAgeyBuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAwLCBjYXQ6ICdiYXonLCB0aWQ6IDIsIHBoOiAnSScsIHM6ICd0Jywgc2Y6IDcgfSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgXSwKKyAgICAgIHN0YWNrRnJhbWVzOiB7CisgICAgICAgICcxJzogeworICAgICAgICAgIGNhdGVnb3J5OiAnbTEnLAorICAgICAgICAgIG5hbWU6ICdtYWluJworICAgICAgICB9LAorICAgICAgICAnNyc6IHsKKyAgICAgICAgICBjYXRlZ29yeTogJ20yJywKKyAgICAgICAgICBuYW1lOiAnZnJhbWU3JywKKyAgICAgICAgICBwYXJlbnQ6ICcxJworICAgICAgICB9CisgICAgICB9CisgICAgfTsKKworICAgIHZhciBvcHRpb25zID0gbmV3IHRyLkltcG9ydE9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNoaWZ0V29ybGRUb1plcm8gPSBmYWxzZTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudERhdGEsIG9wdGlvbnMpOworCisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1syXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisKKyAgICB2YXIgczAgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChzMC5zdGFydFN0YWNrRnJhbWUudGl0bGUsICdmcmFtZTcnKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoczAuZW5kU3RhY2tGcmFtZSk7CisgIH0pOworCisgIHRlc3QoJ2ltcG9ydER1cmF0aW9uRXZlbnRzV2l0aFN0YWNrRnJhbWVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50RGF0YSA9IHsKKyAgICAgIHRyYWNlRXZlbnRzOiBbCisgICAgICAgIHsgbmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMCwgY2F0OiAnYmF6JywgdGlkOiAyLCBwaDogJ0InLCBzZjogNyB9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICB7IG5hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDUsIGNhdDogJ2JheicsIHRpZDogMiwgcGg6ICdFJywgc2Y6IDggfSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgXSwKKyAgICAgIHN0YWNrRnJhbWVzOiB7CisgICAgICAgICcxJzogeworICAgICAgICAgIGNhdGVnb3J5OiAnbTEnLAorICAgICAgICAgIG5hbWU6ICdtYWluJworICAgICAgICB9LAorICAgICAgICAnNyc6IHsKKyAgICAgICAgICBjYXRlZ29yeTogJ20yJywKKyAgICAgICAgICBuYW1lOiAnZnJhbWU3JywKKyAgICAgICAgICBwYXJlbnQ6ICcxJworICAgICAgICB9LAorICAgICAgICAnOCc6IHsKKyAgICAgICAgICBjYXRlZ29yeTogJ20yJywKKyAgICAgICAgICBuYW1lOiAnZnJhbWU4JywKKyAgICAgICAgICBwYXJlbnQ6ICcxJworICAgICAgICB9CisgICAgICB9CisgICAgfTsKKworICAgIHZhciBvcHRpb25zID0gbmV3IHRyLkltcG9ydE9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNoaWZ0V29ybGRUb1plcm8gPSBmYWxzZTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChldmVudERhdGEsIG9wdGlvbnMpOworCisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICB2YXIgdCA9IHAudGhyZWFkc1syXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQpOworICAgIGFzc2VydC5lcXVhbCh0LnNsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aCwgMSk7CisKKyAgICB2YXIgczAgPSB0LnNsaWNlR3JvdXAuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChzMC5zdGFydFN0YWNrRnJhbWUudGl0bGUsICdmcmFtZTcnKTsKKyAgICBhc3NlcnQuZXF1YWwoczAuZW5kU3RhY2tGcmFtZS50aXRsZSwgJ2ZyYW1lOCcpOworICB9KTsKKworICB0ZXN0KCdhbm5vdGF0aW9uUGFyc2luZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB5Q29tcG9uZW50czEgPSBbe3N0YWJsZUlkOiAnNTIuNTMnLCB5UGVyY2VudE9mZnNldDogMC41fSwKKyAgICAgIHtzdGFibGVJZDogJzUyJywgeVBlcmNlbnRPZmZzZXQ6IDAuM31dOworICAgIHZhciB5Q29tcG9uZW50czIgPSBbe3N0YWJsZUlkOiAnNTIuNTMnLCB5UGVyY2VudE9mZnNldDogMC43fSwKKyAgICAgIHtzdGFibGVJZDogJzUyJywgeVBlcmNlbnRPZmZzZXQ6IDAuNH1dOworICAgIHZhciBsb2NhdGlvbjEgPSBuZXcgdHIubW9kZWwuTG9jYXRpb24oMC4xLCB5Q29tcG9uZW50czEpOworICAgIHZhciBsb2NhdGlvbjIgPSBuZXcgdHIubW9kZWwuTG9jYXRpb24oMC4yLCB5Q29tcG9uZW50czIpOworCisgICAgdmFyIGV2ZW50RGF0YSA9IHsgdHJhY2VFdmVudHM6IFsKKyAgICAgIHtuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDUyLCB0czogNTI0LCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfV0sCisgICAgICB0cmFjZUFubm90YXRpb25zOiBbCisgICAgICAgIHt0eXBlTmFtZTogJ3htYXJrZXInLCBhcmdzOiB7dGltZXN0YW1wOiAxMn19LAorICAgICAgICB7dHlwZU5hbWU6ICdyZWN0JywgYXJnczogeworICAgICAgICAgIHN0YXJ0OiBsb2NhdGlvbjEudG9EaWN0KCksIGVuZDogbG9jYXRpb24yLnRvRGljdCgpfX0sCisgICAgICAgIHt0eXBlTmFtZTogJ2NvbW1lbnRfYm94JywgYXJnczoge3RleHQ6ICd0ZXN0JywKKyAgICAgICAgICBsb2NhdGlvbjogbG9jYXRpb24xLnRvRGljdCgpfX0KKyAgICAgIF19OworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnREYXRhKTsKKyAgICB2YXIgYW5ub3RhdGlvbnMgPSBtLmdldEFsbEFubm90YXRpb25zKCk7CisgICAgYXNzZXJ0LmVxdWFsKGFubm90YXRpb25zLmxlbmd0aCwgMyk7CisKKyAgICBhc3NlcnQuaXNUcnVlKGFubm90YXRpb25zWzBdIGluc3RhbmNlb2YgdHIubW9kZWwuWE1hcmtlckFubm90YXRpb24pOworICAgIGFzc2VydC5lcXVhbChhbm5vdGF0aW9uc1swXS50aW1lc3RhbXAsIDEyKTsKKworICAgIGFzc2VydC5pc1RydWUoYW5ub3RhdGlvbnNbMV0gaW5zdGFuY2VvZiB0ci5tb2RlbC5SZWN0QW5ub3RhdGlvbik7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChhbm5vdGF0aW9uc1sxXS5zdGFydExvY2F0aW9uLCBsb2NhdGlvbjEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoYW5ub3RhdGlvbnNbMV0uZW5kTG9jYXRpb24sIGxvY2F0aW9uMik7CisKKyAgICBhc3NlcnQuaXNUcnVlKAorICAgICAgICBhbm5vdGF0aW9uc1syXSBpbnN0YW5jZW9mIHRyLm1vZGVsLkNvbW1lbnRCb3hBbm5vdGF0aW9uKTsKKyAgICBhc3NlcnQuZXF1YWwoYW5ub3RhdGlvbnNbMl0udGV4dCwgJ3Rlc3QnKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGFubm90YXRpb25zWzJdLmxvY2F0aW9uLCBsb2NhdGlvbjEpOworICB9KTsKKworICB0ZXN0KCdpbXBvcnREaXNwbGF5VGltZVVuaXQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnREYXRhID0geworICAgICAgdHJhY2VFdmVudHM6IFtdLAorICAgICAgZGlzcGxheVRpbWVVbml0OiAnbnMnCisgICAgfTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChKU09OLnN0cmluZ2lmeShldmVudERhdGEpLCBmYWxzZSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uaW50cmluc2ljVGltZVVuaXQsIHRyLmIudW5pdHMuVGltZS5zdXBwb3J0ZWRVbml0cy5ucyk7CisgIH0pOworCisgIHRlc3QoJ2V4dHJhY3RCYXR0b3JTdWJUcmFjZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYmF0dG9yTG9nID0gJyMgQmF0dE9yXG4jIHZvbHRhZ2UgcmFuZ2UgWzAuMDAwMDAwLCA3MTk2LjQ4NDE2MV0gbVZcbicgKworICAgICAgICAnI2N1cnJlbnQgcmFuZ2UgWzExLjg5ODQ4MSwgMjExMC45MDA5MTZdIG1BXG4nICsKKyAgICAgICAgJyMgc2FtcGxlX3JhdGU9MTAwMDBIeiwgZ2Fpbj0zMC4yNTcxNDN4XG4nICsKKyAgICAgICAgJyMgZmlscG90X3Bvcz0zLCBhbXBwb3RfcG9zPTM1LCB0aW1lcl9vdmY9Mzk5LCB0aW1lcl9kaXY9NCBvdnNfYml0cz0wXG4nICsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgJzAuMCAxMDQwLjMgMzk4NC4yXG4nICsKKyAgICAgICAgJzAuMSAxMDgxLjMgMzk4Ny44XG4nICsKKyAgICAgICAgJzAuMiAxMDkyLjYgMzk4Ny44XG4nICsKKyAgICAgICAgJzAuMyAxMDcwLjAgMzk4Ny44XG4nICsKKyAgICAgICAgJzAuNCAxMDE3LjcgMzk5NC44XG4nOworCisgICAgdmFyIGV2ZW50RGF0YSA9IHsKKyAgICAgIHRyYWNlRXZlbnRzOiBbCisgICAgICAgIHsgbmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogMCwgY2F0OiAnYmF6JywgdGlkOiAyLCBwaDogJ0InLCBzZjogNyB9LCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgICB7IG5hbWU6ICdiJywgYXJnczoge30sIHBpZDogMSwgdHM6IDUsIGNhdDogJ2JheicsIHRpZDogMiwgcGg6ICdFJywgc2Y6IDggfSAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgXSwKKyAgICAgIGJhdHRvckxvZ0FzU3RyaW5nOiBiYXR0b3JMb2cKKyAgICB9OworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnREYXRhLCBmYWxzZSk7CisgICAgdmFyIGltcG9ydGVyID0gbmV3IHRyLmUuaW1wb3J0ZXIuVHJhY2VFdmVudEltcG9ydGVyKG0sIGV2ZW50RGF0YSk7CisgICAgdmFyIHN1YlRyYWNlcyA9IGltcG9ydGVyLmV4dHJhY3RTdWJ0cmFjZXMoKTsKKyAgICBhc3NlcnQuaXNUcnVlKHN1YlRyYWNlcyBpbnN0YW5jZW9mIEFycmF5KTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViVHJhY2VzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlRyYWNlc1swXSwgYmF0dG9yTG9nKTsKKyAgfSk7CisKKyAgdGVzdCgnbWV0YWRhdGFQYXJzaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1ldGFkYXRhVmFsdWUgPSB7dmFsdWU6IHt9fTsKKyAgICB2YXIgZXZlbnREYXRhID0geworICAgICAgdHJhY2VFdmVudHM6IFsKKyAgICAgICAgeyBuYW1lOiAnYScsIGFyZ3M6IHt9LCBwaWQ6IDEsIHRzOiAwLCBjYXQ6ICdiYXonLCB0aWQ6IDIsIHBoOiAnQicsIHNmOiA3IH0sIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAgIHsgbmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiAxLCB0czogNSwgY2F0OiAnYmF6JywgdGlkOiAyLCBwaDogJ0UnLCBzZjogOCB9IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICBdLAorICAgICAgbWV0YWRhdGE6IG1ldGFkYXRhVmFsdWUKKyAgICB9OworCisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZXZlbnREYXRhKTsKKyAgICBhc3NlcnQuaXNUcnVlKG0ubWV0YWRhdGEgaW5zdGFuY2VvZiBBcnJheSk7CisgICAgYXNzZXJ0LmVxdWFsKG0ubWV0YWRhdGEubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobS5tZXRhZGF0YVswXS5uYW1lLCAnbWV0YWRhdGEnKTsKKyAgICBhc3NlcnQuZXF1YWwobS5tZXRhZGF0YVswXS52YWx1ZSwgbWV0YWRhdGFWYWx1ZSk7CisgIH0pOworCisgIC8vIFRPRE8obmR1Y2EpOiBvbmUgc2xpY2UsIHR3byB0aHJlYWRzCisgIC8vIFRPRE8obmR1Y2EpOiBvbmUgc2xpY2UsIHR3byBwaWRzCisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC9jb2RlbWFwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci92OC9jb2RlbWFwLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3Y4L2NvZGVtYXAuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdjgvY29kZW1hcC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC9sb2dfcmVhZGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci92OC9sb2dfcmVhZGVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2ltcG9ydGVyL3Y4L2xvZ19yZWFkZXIuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdjgvbG9nX3JlYWRlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC9zcGxheXRyZWUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3Y4L3NwbGF5dHJlZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9pbXBvcnRlci92OC9zcGxheXRyZWUuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdjgvc3BsYXl0cmVlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3Y4L3Y4X2xvZ19pbXBvcnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvaW1wb3J0ZXIvdjgvdjhfbG9nX2ltcG9ydGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNkMGU5MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3Y4L3Y4X2xvZ19pbXBvcnRlci5odG1sCkBAIC0wLDAgKzEsMjk3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3Y4L2xvZ19yZWFkZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci92OC9jb2RlbWFwLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9pbXBvcnRlci9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NsaWNlLmh0bWwiPgorCis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBWOExvZ0ltcG9ydGVyIGltcG9ydHMgdjgubG9nIGZpbGVzIGludG8gdGhlIHByb3ZpZGVkIG1vZGVsLgorICovCit0ci5leHBvcnRUbygndHIuZS5pbXBvcnRlci52OCcsIGZ1bmN0aW9uKCkgeworICB2YXIgSW1wb3J0ZXIgPSB0ci5pbXBvcnRlci5JbXBvcnRlcjsKKworICBmdW5jdGlvbiBWOExvZ0ltcG9ydGVyKG1vZGVsLCBldmVudERhdGEpIHsKKyAgICB0aGlzLmltcG9ydFByaW9yaXR5ID0gMzsKKyAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOworCisgICAgdGhpcy5sb2dEYXRhXyA9IGV2ZW50RGF0YTsKKworICAgIHRoaXMuY29kZV9tYXBfID0gbmV3IHRyLmUuaW1wb3J0ZXIudjguQ29kZU1hcCgpOworICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLnY4X3RocmVhZF8gPSB1bmRlZmluZWQ7CisKKyAgICB0aGlzLnJvb3Rfc3RhY2tfZnJhbWVfID0gbmV3IHRyLm1vZGVsLlN0YWNrRnJhbWUoCisgICAgICAgIHVuZGVmaW5lZCwgJ3Y4LXJvb3Qtc3RhY2stZnJhbWUnLAorICAgICAgICAndjgtcm9vdC1zdGFjay1mcmFtZScsICd2OC1yb290LXN0YWNrLWZyYW1lJywgMCk7CisKKyAgICAvLyBXZSByZWNvbnN0cnVjdCB0aGUgc3RhY2sgdGltZWxpbmUgZnJvbSB0aWNrcy4KKyAgICB0aGlzLnY4X3N0YWNrX3RpbWVsaW5lXyA9IG5ldyBBcnJheSgpOworICB9CisKKyAgdmFyIGtWOEJpbmFyeVN1ZmZpeGVzID0gWycvZDgnLCAnL2xpYnY4LnNvJ107CisKKworICB2YXIgVGltZXJFdmVudERlZmF1bHRBcmdzID0geworICAgICdWOC5FeGVjdXRlJzogeyBwYXVzZTogZmFsc2UsIG5vX2V4ZWN1dGlvbjogZmFsc2V9LAorICAgICdWOC5FeHRlcm5hbCc6IHsgcGF1c2U6IGZhbHNlLCBub19leGVjdXRpb246IHRydWV9LAorICAgICdWOC5Db21waWxlRnVsbENvZGUnOiB7IHBhdXNlOiB0cnVlLCBub19leGVjdXRpb246IHRydWV9LAorICAgICdWOC5SZWNvbXBpbGVTeW5jaHJvbm91cyc6IHsgcGF1c2U6IHRydWUsIG5vX2V4ZWN1dGlvbjogdHJ1ZX0sCisgICAgJ1Y4LlJlY29tcGlsZVBhcmFsbGVsJzogeyBwYXVzZTogZmFsc2UsIG5vX2V4ZWN1dGlvbjogZmFsc2V9LAorICAgICdWOC5Db21waWxlRXZhbCc6IHsgcGF1c2U6IHRydWUsIG5vX2V4ZWN1dGlvbjogdHJ1ZX0sCisgICAgJ1Y4LlBhcnNlJzogeyBwYXVzZTogdHJ1ZSwgbm9fZXhlY3V0aW9uOiB0cnVlfSwKKyAgICAnVjguUHJlUGFyc2UnOiB7IHBhdXNlOiB0cnVlLCBub19leGVjdXRpb246IHRydWV9LAorICAgICdWOC5QYXJzZUxhenknOiB7IHBhdXNlOiB0cnVlLCBub19leGVjdXRpb246IHRydWV9LAorICAgICdWOC5HQ1NjYXZlbmdlcic6IHsgcGF1c2U6IHRydWUsIG5vX2V4ZWN1dGlvbjogdHJ1ZX0sCisgICAgJ1Y4LkdDQ29tcGFjdG9yJzogeyBwYXVzZTogdHJ1ZSwgbm9fZXhlY3V0aW9uOiB0cnVlfSwKKyAgICAnVjguR0NDb250ZXh0JzogeyBwYXVzZTogdHJ1ZSwgbm9fZXhlY3V0aW9uOiB0cnVlfQorICB9OworCisgIC8qKgorICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIG9iaiBpcyBhIFY4IGxvZyBzdHJpbmcuCisgICAqLworICBWOExvZ0ltcG9ydGVyLmNhbkltcG9ydCA9IGZ1bmN0aW9uKGV2ZW50RGF0YSkgeworICAgIGlmICh0eXBlb2YoZXZlbnREYXRhKSAhPT0gJ3N0cmluZycgJiYgIShldmVudERhdGEgaW5zdGFuY2VvZiBTdHJpbmcpKQorICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGV2ZW50RGF0YS5zdWJzdHJpbmcoMCwgMTEpID09ICd2OC12ZXJzaW9uLCcgfHwKKyAgICAgICAgICAgZXZlbnREYXRhLnN1YnN0cmluZygwLCAxMikgPT0gJ3RpbWVyLWV2ZW50LCcgfHwKKyAgICAgICAgICAgZXZlbnREYXRhLnN1YnN0cmluZygwLCA1KSA9PSAndGljaywnIHx8CisgICAgICAgICAgIGV2ZW50RGF0YS5zdWJzdHJpbmcoMCwgMTUpID09ICdzaGFyZWQtbGlicmFyeSwnIHx8CisgICAgICAgICAgIGV2ZW50RGF0YS5zdWJzdHJpbmcoMCwgOSkgPT0gJ3Byb2ZpbGVyLCcgfHwKKyAgICAgICAgICAgZXZlbnREYXRhLnN1YnN0cmluZygwLCAxNCkgPT0gJ2NvZGUtY3JlYXRpb24sJzsKKyAgfTsKKworICBWOExvZ0ltcG9ydGVyLnByb3RvdHlwZSA9IHsKKworICAgIF9fcHJvdG9fXzogSW1wb3J0ZXIucHJvdG90eXBlLAorCisgICAgcHJvY2Vzc1RpbWVyRXZlbnRfOiBmdW5jdGlvbihuYW1lLCBzdGFydCwgbGVuZ3RoKSB7CisgICAgICB2YXIgYXJncyA9IFRpbWVyRXZlbnREZWZhdWx0QXJnc1tuYW1lXTsKKyAgICAgIGlmIChhcmdzID09PSB1bmRlZmluZWQpIHJldHVybjsKKyAgICAgIHN0YXJ0IC89IDEwMDA7ICAvLyBDb252ZXJ0IHRvIG1pbGxpc2Vjb25kcy4KKyAgICAgIGxlbmd0aCAvPSAxMDAwOworICAgICAgdmFyIGNvbG9ySWQgPSB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhuYW1lKTsKKyAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgndjgnLCBuYW1lLCBjb2xvcklkLCBzdGFydCwKKyAgICAgICAgICBhcmdzLCBsZW5ndGgpOworICAgICAgdGhpcy52OF90aW1lcl90aHJlYWRfLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICB9LAorCisgICAgcHJvY2Vzc1RpbWVyRXZlbnRTdGFydF86IGZ1bmN0aW9uKG5hbWUsIHN0YXJ0KSB7CisgICAgICB2YXIgYXJncyA9IFRpbWVyRXZlbnREZWZhdWx0QXJnc1tuYW1lXTsKKyAgICAgIGlmIChhcmdzID09PSB1bmRlZmluZWQpIHJldHVybjsKKyAgICAgIHN0YXJ0IC89IDEwMDA7ICAvLyBDb252ZXJ0IHRvIG1pbGxpc2Vjb25kcy4KKyAgICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXy5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ3Y4JywgbmFtZSwgc3RhcnQsIGFyZ3MpOworICAgIH0sCisKKyAgICBwcm9jZXNzVGltZXJFdmVudEVuZF86IGZ1bmN0aW9uKG5hbWUsIGVuZCkgeworICAgICAgZW5kIC89IDEwMDA7ICAvLyBDb252ZXJ0IHRvIG1pbGxpc2Vjb25kcy4KKyAgICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXy5zbGljZUdyb3VwLmVuZFNsaWNlKGVuZCk7CisgICAgfSwKKworICAgIHByb2Nlc3NDb2RlQ3JlYXRlRXZlbnRfOiBmdW5jdGlvbih0eXBlLCBraW5kLCBhZGRyZXNzLCBzaXplLCBuYW1lKSB7CisgICAgICB2YXIgY29kZV9lbnRyeSA9IG5ldyB0ci5lLmltcG9ydGVyLnY4LkNvZGVNYXAuQ29kZUVudHJ5KHNpemUsIG5hbWUpOworICAgICAgY29kZV9lbnRyeS5raW5kID0ga2luZDsKKyAgICAgIHRoaXMuY29kZV9tYXBfLmFkZENvZGUoYWRkcmVzcywgY29kZV9lbnRyeSk7CisgICAgfSwKKworICAgIHByb2Nlc3NDb2RlTW92ZUV2ZW50XzogZnVuY3Rpb24oZnJvbSwgdG8pIHsKKyAgICAgIHRoaXMuY29kZV9tYXBfLm1vdmVDb2RlKGZyb20sIHRvKTsKKyAgICB9LAorCisgICAgcHJvY2Vzc0NvZGVEZWxldGVFdmVudF86IGZ1bmN0aW9uKGFkZHJlc3MpIHsKKyAgICAgIHRoaXMuY29kZV9tYXBfLmRlbGV0ZUNvZGUoYWRkcmVzcyk7CisgICAgfSwKKworICAgIHByb2Nlc3NTaGFyZWRMaWJyYXJ5XzogZnVuY3Rpb24obmFtZSwgc3RhcnQsIGVuZCkgeworICAgICAgdmFyIGNvZGVfZW50cnkgPSBuZXcgdHIuZS5pbXBvcnRlci52OC5Db2RlTWFwLkNvZGVFbnRyeSgKKyAgICAgICAgICBlbmQgLSBzdGFydCwgbmFtZSk7CisgICAgICBjb2RlX2VudHJ5LmtpbmQgPSAtMzsgIC8vIEV4dGVybmFsIGNvZGUga2luZC4KKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga1Y4QmluYXJ5U3VmZml4ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHN1ZmZpeCA9IGtWOEJpbmFyeVN1ZmZpeGVzW2ldOworICAgICAgICBpZiAobmFtZS5pbmRleE9mKHN1ZmZpeCwgbmFtZS5sZW5ndGggLSBzdWZmaXgubGVuZ3RoKSA+PSAwKSB7CisgICAgICAgICAgY29kZV9lbnRyeS5raW5kID0gLTE7ICAvLyBWOCBydW50aW1lIGNvZGUga2luZC4KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgdGhpcy5jb2RlX21hcF8uYWRkTGlicmFyeShzdGFydCwgY29kZV9lbnRyeSk7CisgICAgfSwKKworICAgIGZpbmRDb2RlS2luZF86IGZ1bmN0aW9uKGtpbmQpIHsKKyAgICAgIGZvciAobmFtZSBpbiBDb2RlS2luZHMpIHsKKyAgICAgICAgaWYgKENvZGVLaW5kc1tuYW1lXS5raW5kcy5pbmRleE9mKGtpbmQpID49IDApIHsKKyAgICAgICAgICByZXR1cm4gQ29kZUtpbmRzW25hbWVdOworICAgICAgICB9CisgICAgICB9CisgICAgfSwKKworICAgIHByb2Nlc3NUaWNrRXZlbnRfOiBmdW5jdGlvbihwYywgc3RhcnQsIHVudXNlZF94LCB1bnVzZWRfeSwgdm1zdGF0ZSwgc3RhY2spIHsKKyAgICAgIHN0YXJ0IC89IDEwMDA7CisKKyAgICAgIGZ1bmN0aW9uIGZpbmRDaGlsZFdpdGhFbnRyeUlEKHN0YWNrRnJhbWUsIGVudHJ5SUQpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFja0ZyYW1lLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgaWYgKHN0YWNrRnJhbWUuY2hpbGRyZW5baV0uZW50cnlJRCA9PSBlbnRyeUlEKQorICAgICAgICAgICAgcmV0dXJuIHN0YWNrRnJhbWUuY2hpbGRyZW5baV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIH0KKworICAgICAgdmFyIGxhc3RTdGFja0ZyYW1lOworICAgICAgaWYgKHN0YWNrICYmIHN0YWNrLmxlbmd0aCkgeworCisgICAgICAgIGxhc3RTdGFja0ZyYW1lID0gdGhpcy5yb290X3N0YWNrX2ZyYW1lXzsKKyAgICAgICAgLy8gdjggbG9nIHN0YWNrcyBhcmUgaW52ZXJ0ZWQsIGxlYWYgZmlyc3QgYW5kIHRoZSByb290IGF0IHRoZSBlbmQuCisgICAgICAgIHN0YWNrID0gc3RhY2sucmV2ZXJzZSgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgaWYgKCFzdGFja1tpXSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuY29kZV9tYXBfLmZpbmRFbnRyeShzdGFja1tpXSk7CisKKyAgICAgICAgICB2YXIgZW50cnlJRCA9IGVudHJ5ID8gZW50cnkuaWQgOiAnVW5rbm93bic7CisgICAgICAgICAgdmFyIGNoaWxkRnJhbWUgPSBmaW5kQ2hpbGRXaXRoRW50cnlJRChsYXN0U3RhY2tGcmFtZSwgZW50cnlJRCk7CisgICAgICAgICAgaWYgKGNoaWxkRnJhbWUgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgdmFyIGVudHJ5TmFtZSA9IGVudHJ5ID8gZW50cnkubmFtZSA6ICdVbmtub3duJzsKKyAgICAgICAgICAgIGxhc3RTdGFja0ZyYW1lID0gbmV3IHRyLm1vZGVsLlN0YWNrRnJhbWUoCisgICAgICAgICAgICAgICAgbGFzdFN0YWNrRnJhbWUsICd2OHNmLScgKyB0ci5iLkdVSUQuYWxsb2NhdGUoKSwKKyAgICAgICAgICAgICAgICAndjgnLCBlbnRyeU5hbWUsCisgICAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoZW50cnlOYW1lKSk7CisgICAgICAgICAgICBsYXN0U3RhY2tGcmFtZS5lbnRyeUlEID0gZW50cnlJRDsKKyAgICAgICAgICAgIHRoaXMubW9kZWxfLmFkZFN0YWNrRnJhbWUobGFzdFN0YWNrRnJhbWUpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0U3RhY2tGcmFtZSA9IGNoaWxkRnJhbWU7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICB2YXIgcGNFbnRyeSA9IHRoaXMuY29kZV9tYXBfLmZpbmRFbnRyeShwYyk7CisgICAgICAgIHZhciBwY0VudHJ5SUQgPSAndjhwYy0nICsgKHBjRW50cnkgPyBwY0VudHJ5LmlkIDogJ1Vua25vd24nKTsKKyAgICAgICAgaWYgKHRoaXMubW9kZWxfLnN0YWNrRnJhbWVzW3BjRW50cnlJRF0gPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHZhciBwY0VudHJ5TmFtZSA9IHBjRW50cnkgPyBwY0VudHJ5Lm5hbWUgOiAnVW5rbm93bic7CisgICAgICAgICAgbGFzdFN0YWNrRnJhbWUgPSBuZXcgdHIubW9kZWwuU3RhY2tGcmFtZSgKKyAgICAgICAgICAgICAgdW5kZWZpbmVkLCBwY0VudHJ5SUQsCisgICAgICAgICAgICAgICd2OCcsIHBjRW50cnlOYW1lLAorICAgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhwY0VudHJ5TmFtZSkpOworICAgICAgICAgIHRoaXMubW9kZWxfLmFkZFN0YWNrRnJhbWUobGFzdFN0YWNrRnJhbWUpOworICAgICAgICB9CisgICAgICAgIGxhc3RTdGFja0ZyYW1lID0gdGhpcy5tb2RlbF8uc3RhY2tGcmFtZXNbcGNFbnRyeUlEXTsKKyAgICAgIH0KKworICAgICAgdmFyIHNhbXBsZSA9IG5ldyB0ci5tb2RlbC5TYW1wbGUoCisgICAgICAgICAgdW5kZWZpbmVkLCB0aGlzLnY4X3RocmVhZF8sICdWOCBQQycsCisgICAgICAgICAgc3RhcnQsIGxhc3RTdGFja0ZyYW1lLCAxKTsKKyAgICAgIHRoaXMubW9kZWxfLnNhbXBsZXMucHVzaChzYW1wbGUpOworICAgIH0sCisKKyAgICBwcm9jZXNzRGlzdG9ydGlvbl86IGZ1bmN0aW9uKGRpc3RvcnRpb25faW5fcGljb3NlY29uZHMpIHsKKyAgICAgIGRpc3RvcnRpb25fcGVyX2VudHJ5ID0gZGlzdG9ydGlvbl9pbl9waWNvc2Vjb25kcyAvIDEwMDAwMDA7CisgICAgfSwKKworICAgIHByb2Nlc3NQbG90UmFuZ2VfOiBmdW5jdGlvbihzdGFydCwgZW5kKSB7CisgICAgICB4cmFuZ2Vfc3RhcnRfb3ZlcnJpZGUgPSBzdGFydDsKKyAgICAgIHhyYW5nZV9lbmRfb3ZlcnJpZGUgPSBlbmQ7CisgICAgfSwKKworICAgIHByb2Nlc3NWOFZlcnNpb25fOiBmdW5jdGlvbihtYWpvciwgbWlub3IsIGJ1aWxkLCBwYXRjaCwgY2FuZGlkYXRlKSB7CisgICAgICAvLyBkbyBub3RoaW5nLgorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBXYWxrcyB0aHJvdWdoIHRoZSBldmVudHNfIGxpc3QgYW5kIG91dHB1dHMgdGhlIHN0cnVjdHVyZXMgZGlzY292ZXJlZCB0bworICAgICAqIG1vZGVsXy4KKyAgICAgKi8KKyAgICBpbXBvcnRFdmVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGxvZ3JlYWRlciA9IG5ldyB0ci5lLmltcG9ydGVyLnY4LkxvZ1JlYWRlcigKKyAgICAgICAgICB7ICd0aW1lci1ldmVudCcgOiB7CisgICAgICAgICAgICBwYXJzZXJzOiBbbnVsbCwgcGFyc2VJbnQsIHBhcnNlSW50XSwKKyAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzVGltZXJFdmVudF8uYmluZCh0aGlzKQorICAgICAgICAgIH0sCisgICAgICAgICAgJ3NoYXJlZC1saWJyYXJ5JzogeworICAgICAgICAgICAgcGFyc2VyczogW251bGwsIHBhcnNlSW50LCBwYXJzZUludF0sCisgICAgICAgICAgICBwcm9jZXNzb3I6IHRoaXMucHJvY2Vzc1NoYXJlZExpYnJhcnlfLmJpbmQodGhpcykKKyAgICAgICAgICB9LAorICAgICAgICAgICd0aW1lci1ldmVudC1zdGFydCcgOiB7CisgICAgICAgICAgICBwYXJzZXJzOiBbbnVsbCwgcGFyc2VJbnRdLAorICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NUaW1lckV2ZW50U3RhcnRfLmJpbmQodGhpcykKKyAgICAgICAgICB9LAorICAgICAgICAgICd0aW1lci1ldmVudC1lbmQnIDogeworICAgICAgICAgICAgcGFyc2VyczogW251bGwsIHBhcnNlSW50XSwKKyAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzVGltZXJFdmVudEVuZF8uYmluZCh0aGlzKQorICAgICAgICAgIH0sCisgICAgICAgICAgJ2NvZGUtY3JlYXRpb24nOiB7CisgICAgICAgICAgICBwYXJzZXJzOiBbbnVsbCwgcGFyc2VJbnQsIHBhcnNlSW50LCBwYXJzZUludCwgbnVsbF0sCisgICAgICAgICAgICBwcm9jZXNzb3I6IHRoaXMucHJvY2Vzc0NvZGVDcmVhdGVFdmVudF8uYmluZCh0aGlzKQorICAgICAgICAgIH0sCisgICAgICAgICAgJ2NvZGUtbW92ZSc6IHsKKyAgICAgICAgICAgIHBhcnNlcnM6IFtwYXJzZUludCwgcGFyc2VJbnRdLAorICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NDb2RlTW92ZUV2ZW50Xy5iaW5kKHRoaXMpCisgICAgICAgICAgfSwKKyAgICAgICAgICAnY29kZS1kZWxldGUnOiB7CisgICAgICAgICAgICBwYXJzZXJzOiBbcGFyc2VJbnRdLAorICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NDb2RlRGVsZXRlRXZlbnRfLmJpbmQodGhpcykKKyAgICAgICAgICB9LAorICAgICAgICAgICd0aWNrJzogeworICAgICAgICAgICAgcGFyc2VyczogW3BhcnNlSW50LCBwYXJzZUludCwgbnVsbCwgbnVsbCwgcGFyc2VJbnQsICd2YXItYXJncyddLAorICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NUaWNrRXZlbnRfLmJpbmQodGhpcykKKyAgICAgICAgICB9LAorICAgICAgICAgICdkaXN0b3J0aW9uJzogeworICAgICAgICAgICAgcGFyc2VyczogW3BhcnNlSW50XSwKKyAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzRGlzdG9ydGlvbl8uYmluZCh0aGlzKQorICAgICAgICAgIH0sCisgICAgICAgICAgJ3Bsb3QtcmFuZ2UnOiB7CisgICAgICAgICAgICBwYXJzZXJzOiBbcGFyc2VJbnQsIHBhcnNlSW50XSwKKyAgICAgICAgICAgIHByb2Nlc3NvcjogdGhpcy5wcm9jZXNzUGxvdFJhbmdlXy5iaW5kKHRoaXMpCisgICAgICAgICAgfSwKKyAgICAgICAgICAndjgtdmVyc2lvbic6IHsKKyAgICAgICAgICAgIHBhcnNlcnM6IFtwYXJzZUludCwgcGFyc2VJbnQsIHBhcnNlSW50LCBwYXJzZUludCwgcGFyc2VJbnRdLAorICAgICAgICAgICAgcHJvY2Vzc29yOiB0aGlzLnByb2Nlc3NWOFZlcnNpb25fLmJpbmQodGhpcykKKyAgICAgICAgICB9CisgICAgICAgICAgfSk7CisKKyAgICAgIHRoaXMudjhfdGltZXJfdGhyZWFkXyA9CisgICAgICAgICAgdGhpcy5tb2RlbF8uZ2V0T3JDcmVhdGVQcm9jZXNzKC0zMikuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgICB0aGlzLnY4X3RpbWVyX3RocmVhZF8ubmFtZSA9ICdWOCBUaW1lcnMnOworICAgICAgdGhpcy52OF90aHJlYWRfID0KKyAgICAgICAgICB0aGlzLm1vZGVsXy5nZXRPckNyZWF0ZVByb2Nlc3MoLTMyKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIHRoaXMudjhfdGhyZWFkXy5uYW1lID0gJ1Y4JzsKKworICAgICAgdmFyIGxpbmVzID0gdGhpcy5sb2dEYXRhXy5zcGxpdCgnXG4nKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgbG9ncmVhZGVyLnByb2Nlc3NMb2dMaW5lKGxpbmVzW2ldKTsKKyAgICAgIH0KKworICAgICAgLy8gVGhlIHByb2Nlc3Npbmcgb2Ygc2FtcGxlcyBhZGRzIGFsbCB0aGUgcm9vdCBzdGFjayBmcmFtZSB0bworICAgICAgLy8gdGhpcy5yb290X3N0YWNrX2ZyYW1lXy4gQnV0LCB3ZSBkb24ndCB3YW50IHRoYXQgc3RhY2sgZnJhbWUgaW4gdGhlIHJlYWwKKyAgICAgIC8vIG1vZGVsLiBTbyBnZXQgcmlkIG9mIGl0LgorICAgICAgdGhpcy5yb290X3N0YWNrX2ZyYW1lXy5yZW1vdmVBbGxDaGlsZHJlbigpOworCisgICAgICBmdW5jdGlvbiBhZGRTbGljZXMoc2xpY2VzLCB0aHJlYWQpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgZHVyYXRpb24gPSBzbGljZXNbaV0uZW5kIC0gc2xpY2VzW2ldLnN0YXJ0OworICAgICAgICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5TbGljZSgndjgnLCBzbGljZXNbaV0ubmFtZSwKKyAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoc2xpY2VzW2ldLm5hbWUpLAorICAgICAgICAgICAgICBzbGljZXNbaV0uc3RhcnQsIHt9LCBkdXJhdGlvbik7CisgICAgICAgICAgdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICAgICAgICBhZGRTbGljZXMoc2xpY2VzW2ldLmNoaWxkcmVuLCB0aHJlYWQpOworICAgICAgICB9CisgICAgICB9CisgICAgICBhZGRTbGljZXModGhpcy52OF9zdGFja190aW1lbGluZV8sIHRoaXMudjhfdGhyZWFkXyk7CisgICAgfQorICB9OworCisgIHRyLmltcG9ydGVyLkltcG9ydGVyLnJlZ2lzdGVyKFY4TG9nSW1wb3J0ZXIpOworCisgIHJldHVybiB7CisgICAgVjhMb2dJbXBvcnRlcjogVjhMb2dJbXBvcnRlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3Y4L3Y4X2xvZ19pbXBvcnRlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci92OC92OF9sb2dfaW1wb3J0ZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNGJhMjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci92OC92OF9sb2dfaW1wb3J0ZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci92OC92OF9sb2dfaW1wb3J0ZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBWOExvZ0ltcG9ydGVyID0gdHIuZS5pbXBvcnRlci52OC5WOExvZ0ltcG9ydGVyOworCisgIHRlc3QoJ3RpY2tFdmVudEluU2hhcmVkTGlicmFyeScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdzaGFyZWQtbGlicmFyeSwiL3Vzci9saWIvbGliYysrLjEuZHlsaWIiLDB4OTlkOGFhZTAsMHg5OWRjZTcyOScsCisgICAgICAndGljaywweDk5ZDhhYWU0LDEyMTU4LDAsMHgwLDUnXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1stMzJdOworICAgIHZhciB0ID0gcC5maW5kQWxsVGhyZWFkc05hbWVkKCdWOCcpWzBdOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzBdLnRpdGxlLCAnVjggUEMnKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzBdLnN0YXJ0LCAxMjE1OCAvIDEwMDApOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0ubGVhZlN0YWNrRnJhbWUudGl0bGUsICcvdXNyL2xpYi9saWJjKysuMS5keWxpYicpOworICB9KTsKKworICB0ZXN0KCd0aWNrRXZlbnRJbkdlbmVyYXRlZENvZGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnc2hhcmVkLWxpYnJhcnksIi91c3IvbGliL2xpYmMrKy4xLmR5bGliIiwweDk5ZDhhYWUwLDB4OTlkY2U3MjknLAorICAgICAgJ2NvZGUtY3JlYXRpb24sU3R1YiwyLDB4NWI2MGNlODAsMTI1OSwiU3RyaW5nQWRkU3R1YiInLAorICAgICAgJ3RpY2ssMHg1YjYwY2U4NCwxMjE1OCwwLDB4MCw1J107CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbLTMyXTsKKyAgICB2YXIgdGhyZWFkcyA9IHAuZmluZEFsbFRocmVhZHNOYW1lZCgnVjgnKTsKKyAgICB2YXIgdCA9IHRocmVhZHNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0ubGVhZlN0YWNrRnJhbWUudGl0bGUsICdTdHJpbmdBZGRTdHViJyk7CisgIH0pOworCisgIHRlc3QoJ3RpY2tFdmVudEluVWtub3duQ29kZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdzaGFyZWQtbGlicmFyeSwiL3Vzci9saWIvbGliYysrLjEuZHlsaWIiLDB4OTlkOGFhZTAsMHg5OWRjZTcyOScsCisgICAgICAnY29kZS1jcmVhdGlvbixTdHViLDIsMHg1YjYwY2U4MCwxMjU5LCJTdHJpbmdBZGRTdHViIicsCisgICAgICAndGljaywweDQsMHhiZmYwMmYwOCwxMjE1OCwwLDB4MCw1J107CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbLTMyXTsKKyAgICB2YXIgdGhyZWFkcyA9IHAuZmluZEFsbFRocmVhZHNOYW1lZCgnVjgnKTsKKyAgICB2YXIgdCA9IHRocmVhZHNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0ubGVhZlN0YWNrRnJhbWUudGl0bGUsICdVbmtub3duJyk7CisgIH0pOworCisgIHRlc3QoJ3RpY2tFdmVudFdpdGhTdGFjaycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdjb2RlLWNyZWF0aW9uLExhenlDb21waWxlLDAsMHgyOTA1ZDBjMCwxODAwLCJJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5IiwweDU2YjE5MTI0LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAndGljaywweDdmYzZmZTM0LDUyODY3NCwwLDB4MywwLDB4MjkwNWQzMDQnXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1stMzJdOworICAgIHZhciB0ID0gcC5maW5kQWxsVGhyZWFkc05hbWVkKCdWOCcpWzBdOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKAorICAgICAgICBbJ3Y4OiBJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5J10sCisgICAgICAgIHQuc2FtcGxlc1swXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOworICB9KTsKKworICB0ZXN0KCd0d29UaWNrRXZlbnRzV2l0aFN0YWNrJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJ2NvZGUtY3JlYXRpb24sTGF6eUNvbXBpbGUsMCwweDI5MDVkMGMwLDE4MDAsIkluc3RhbnRpYXRlRnVuY3Rpb24gbmF0aXZlIGFwaW5hdGl2ZXMuanM6MjY6MjkiLDB4NTZiMTkxMjQsJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICd0aWNrLDB4N2ZjNmZlMzQsNTI4Njc0LDAsMHgzLDAsMHgyOTA1ZDMwNCcsCisgICAgICAndGljaywweDdmZDJhNTM0LDUzNjIxMywwLDB4ODFkOGQwODAsMCwweDI5MDVkMzA0J107CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbLTMyXTsKKyAgICB2YXIgdCA9IHAuZmluZEFsbFRocmVhZHNOYW1lZCgnVjgnKVswXTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc1swXS5zdGFydCwgNTI4Njc0IC8gMTAwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc1sxXS5zdGFydCwgNTM2MjEzIC8gMTAwMCk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCgKKyAgICAgICAgWyd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOSddLAorICAgICAgICB0LnNhbXBsZXNbMF0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKAorICAgICAgICBbJ3Y4OiBJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5J10sCisgICAgICAgIHQuc2FtcGxlc1sxXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0ubGVhZlN0YWNrRnJhbWUsCisgICAgICAgICAgICAgICAgIHQuc2FtcGxlc1sxXS5sZWFmU3RhY2tGcmFtZSk7CisgIH0pOworCisgIHRlc3QoJ3R3b1RpY2tFdmVudHNXaXRoVHdvU3RhY2tGcmFtZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnY29kZS1jcmVhdGlvbixMYXp5Q29tcGlsZSwwLDB4MjkwNGQ1NjAsODc2LCJJbnN0YW50aWF0ZSBuYXRpdmUgYXBpbmF0aXZlcy5qczo5OjIxIiwweDU2YjE5MGM4LH4nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJ2NvZGUtY3JlYXRpb24sTGF6eUNvbXBpbGUsMCwweDI5MDVkMGMwLDE4MDAsIkluc3RhbnRpYXRlRnVuY3Rpb24gbmF0aXZlIGFwaW5hdGl2ZXMuanM6MjY6MjkiLDB4NTZiMTkxMjQsJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICd0aWNrLDB4N2ZjNmZlMzQsNTI4Njc0LDAsMHgzLDAsMHgyOTA1ZDMwNCwweDI5MDRkNmU4JywKKyAgICAgICd0aWNrLDB4N2ZkMmE1MzQsNTM2MjEzLDAsMHg4MWQ4ZDA4MCwwLDB4MjkwNWQzMDQsMHgyOTA0ZDZlOCddOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07CisgICAgdmFyIHQgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4JylbMF07CisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlcy5sZW5ndGgsIDIpOworCisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc1swXS5zdGFydCwgNTI4Njc0IC8gMTAwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlc1sxXS5zdGFydCwgNTM2MjEzIC8gMTAwMCk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCgKKyAgICAgICAgWyd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOScsCisgICAgICAgICd2ODogSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSddLAorICAgICAgICB0LnNhbXBsZXNbMF0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKAorICAgICAgICBbJ3Y4OiBJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5JywKKyAgICAgICAgJ3Y4OiBJbnN0YW50aWF0ZSBuYXRpdmUgYXBpbmF0aXZlcy5qczo5OjIxJ10sCisgICAgICAgIHQuc2FtcGxlc1sxXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOworCisgICAgdmFyIGNoaWxkU3RhY2tGcmFtZSA9IHQuc2FtcGxlc1swXS5sZWFmU3RhY2tGcmFtZTsKKyAgICBhc3NlcnQuZXF1YWwoY2hpbGRTdGFja0ZyYW1lLCB0LnNhbXBsZXNbMV0ubGVhZlN0YWNrRnJhbWUpOworICAgIGFzc2VydC5lcXVhbChjaGlsZFN0YWNrRnJhbWUuY2hpbGRyZW4ubGVuZ3RoLCAwKTsKKworICAgIHZhciBwYXJlbnRTdGFja0ZyYW1lID0gY2hpbGRTdGFja0ZyYW1lLnBhcmVudEZyYW1lOworICAgIGFzc2VydC5lcXVhbChwYXJlbnRTdGFja0ZyYW1lLmNoaWxkcmVuLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGNoaWxkU3RhY2tGcmFtZSwgcGFyZW50U3RhY2tGcmFtZS5jaGlsZHJlblswXSk7CisKKyAgfSk7CisKKyAgdGVzdCgndGhyZWVUaWNrRXZlbnRzV2l0aFR3b1N0YWNrRnJhbWVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJ2NvZGUtY3JlYXRpb24sTGF6eUNvbXBpbGUsMCwweDI5MDRkNTYwLDg3NiwiSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSIsMHg1NmIxOTBjOCx+JywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICdjb2RlLWNyZWF0aW9uLExhenlDb21waWxlLDAsMHgyOTA1ZDBjMCwxODAwLCJJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5IiwweDU2YjE5MTI0LCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAndGljaywweDdmZDdmNzVjLDUxODMyOCwwLDB4ODFkODZkYTgsMiwweDI5MDRkNmU4JywKKyAgICAgICd0aWNrLDB4N2ZjNmZlMzQsNTI4Njc0LDAsMHgzLDAsMHgyOTA1ZDMwNCwweDI5MDRkNmU4JywKKyAgICAgICd0aWNrLDB4N2ZkMmE1MzQsNTM2MjEzLDAsMHg4MWQ4ZDA4MCwwLDB4MjkwNWQzMDQsMHgyOTA0ZDZlOCddOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWy0zMl07CisgICAgdmFyIHRocmVhZHMgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4Jyk7CisKKyAgICB2YXIgdCA9IHRocmVhZHNbMF07CisgICAgYXNzZXJ0LmVxdWFsKHQuc2FtcGxlcy5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMF0uc3RhcnQsIDUxODMyOCAvIDEwMDApOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMV0uc3RhcnQsIDUyODY3NCAvIDEwMDApOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMl0uc3RhcnQsIDUzNjIxMyAvIDEwMDApOworICAgIGFzc2VydC5kZWVwRXF1YWwoCisgICAgICAgIFsndjg6IEluc3RhbnRpYXRlIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjk6MjEnXSwKKyAgICAgICAgdC5zYW1wbGVzWzBdLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCgKKyAgICAgICAgWyd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOScsCisgICAgICAgICd2ODogSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSddLAorICAgICAgICB0LnNhbXBsZXNbMV0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKAorICAgICAgICBbJ3Y4OiBJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5JywKKyAgICAgICAgJ3Y4OiBJbnN0YW50aWF0ZSBuYXRpdmUgYXBpbmF0aXZlcy5qczo5OjIxJ10sCisgICAgICAgIHQuc2FtcGxlc1syXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOworCisgICAgdmFyIHRvcExldmVsU3RhY2tGcmFtZSA9IHQuc2FtcGxlc1swXS5sZWFmU3RhY2tGcmFtZTsKKyAgICB2YXIgY2hpbGRTdGFja0ZyYW1lID0gdC5zYW1wbGVzWzFdLmxlYWZTdGFja0ZyYW1lOworICAgIGFzc2VydC5lcXVhbCh0LnNhbXBsZXNbMl0ubGVhZlN0YWNrRnJhbWUsIGNoaWxkU3RhY2tGcmFtZSk7CisgICAgYXNzZXJ0LmVxdWFsKHRvcExldmVsU3RhY2tGcmFtZSwgY2hpbGRTdGFja0ZyYW1lLnBhcmVudEZyYW1lKTsKKyAgICBhc3NlcnQuZXF1YWwodG9wTGV2ZWxTdGFja0ZyYW1lLmNoaWxkcmVuLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGNoaWxkU3RhY2tGcmFtZS5jaGlsZHJlbi5sZW5ndGgsIDApOworICAgIGFzc2VydC5lcXVhbChjaGlsZFN0YWNrRnJhbWUsIHRvcExldmVsU3RhY2tGcmFtZS5jaGlsZHJlblswXSk7CisgIH0pOworCisgIHRlc3QoJ3R3b1N1YlN0YWNrcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdjb2RlLWNyZWF0aW9uLExhenlDb21waWxlLDAsMHgyOTA0ZDU2MCw4NzYsIkluc3RhbnRpYXRlIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjk6MjEiLDB4NTZiMTkwYzgsficsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAnY29kZS1jcmVhdGlvbixMYXp5Q29tcGlsZSwwLDB4MjkwNWQwYzAsMTgwMCwiSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOSIsMHg1NmIxOTEyNCwnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJ3RpY2ssMHg3ZmQ3Zjc1Yyw1MTgzMjgsMCwweDgxZDg2ZGE4LDIsMHgyOTA0ZDZlOCcsCisgICAgICAndGljaywweDdmYzZmZTM0LDUyODY3NCwwLDB4MywwLDB4MjkwNWQzMDQsMHgyOTA0ZDZlOCcsCisgICAgICAndGljaywweDdmZDJhNTM0LDUzNjIxMywwLDB4ODFkOGQwODAsMCwweDI5MDVkMzA0LDB4MjkwNGQ2ZTgnLAorICAgICAgJ2NvZGUtY3JlYXRpb24sU2NyaXB0LDAsMHgyOTA2YTdjMCw3OTIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iLDB4NWIxMmZlNTAsficsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAndGljaywweGI2ZjUxZDMwLDc5NDA0OSwwLDB4YjZmN2IzNjgsMiwweDI5MDZhOTE0JywKKyAgICAgICd0aWNrLDB4YjZmNTFkMzAsNzk5MTQ2LDAsMHhiNmY3YjM2OCwwLDB4MjkwNmE5MTQnCisgICAgXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1stMzJdOworICAgIHZhciB0aHJlYWRzID0gcC5maW5kQWxsVGhyZWFkc05hbWVkKCdWOCcpOworICAgIHZhciB0ID0gdGhyZWFkc1swXTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzLmxlbmd0aCwgNSk7CisKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzBdLnN0YXJ0LCA1MTgzMjggLyAxMDAwKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzFdLnN0YXJ0LCA1Mjg2NzQgLyAxMDAwKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzJdLnN0YXJ0LCA1MzYyMTMgLyAxMDAwKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzNdLnN0YXJ0LCA3OTQwNDkgLyAxMDAwKTsKKyAgICBhc3NlcnQuZXF1YWwodC5zYW1wbGVzWzRdLnN0YXJ0LCA3OTkxNDYgLyAxMDAwKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoCisgICAgICAgIFsndjg6IEluc3RhbnRpYXRlIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjk6MjEnXSwKKyAgICAgICAgdC5zYW1wbGVzWzBdLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCgKKyAgICAgICAgWyd2ODogSW5zdGFudGlhdGVGdW5jdGlvbiBuYXRpdmUgYXBpbmF0aXZlcy5qczoyNjoyOScsCisgICAgICAgICd2ODogSW5zdGFudGlhdGUgbmF0aXZlIGFwaW5hdGl2ZXMuanM6OToyMSddLAorICAgICAgICB0LnNhbXBsZXNbMV0uZ2V0VXNlckZyaWVuZGx5U3RhY2tUcmFjZSgpKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKAorICAgICAgICBbJ3Y4OiBJbnN0YW50aWF0ZUZ1bmN0aW9uIG5hdGl2ZSBhcGluYXRpdmVzLmpzOjI2OjI5JywKKyAgICAgICAgJ3Y4OiBJbnN0YW50aWF0ZSBuYXRpdmUgYXBpbmF0aXZlcy5qczo5OjIxJ10sCisgICAgICAgIHQuc2FtcGxlc1syXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOworICAgIGFzc2VydC5kZWVwRXF1YWwoWyd2ODogaHR0cDovL3d3dy5nb29nbGUuY29tLyddLAorICAgICAgICAgICAgICAgICAgICAgIHQuc2FtcGxlc1szXS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOworICAgIGFzc2VydC5kZWVwRXF1YWwoWyd2ODogaHR0cDovL3d3dy5nb29nbGUuY29tLyddLAorICAgICAgICAgICAgICAgICAgICAgIHQuc2FtcGxlc1s0XS5nZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlKCkpOworCisgICAgdmFyIGZpcnNTdGFja1RvcExldmVsU3RhY2tGcmFtZSA9IHQuc2FtcGxlc1swXS5sZWFmU3RhY2tGcmFtZTsKKyAgICB2YXIgZmlyc1N0YWNrQ2hpbGRTdGFja0ZyYW1lID0gdC5zYW1wbGVzWzFdLmxlYWZTdGFja0ZyYW1lOworICAgIGFzc2VydC5lcXVhbChmaXJzU3RhY2tDaGlsZFN0YWNrRnJhbWUsIHQuc2FtcGxlc1syXS5sZWFmU3RhY2tGcmFtZSk7CisgICAgYXNzZXJ0LmVxdWFsKGZpcnNTdGFja1RvcExldmVsU3RhY2tGcmFtZSwKKyAgICAgICAgICAgICAgICAgZmlyc1N0YWNrQ2hpbGRTdGFja0ZyYW1lLnBhcmVudEZyYW1lKTsKKyAgICBhc3NlcnQuZXF1YWwoZmlyc1N0YWNrVG9wTGV2ZWxTdGFja0ZyYW1lLmNoaWxkcmVuLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGZpcnNTdGFja0NoaWxkU3RhY2tGcmFtZS5jaGlsZHJlbi5sZW5ndGgsIDApOworICAgIGFzc2VydC5lcXVhbChmaXJzU3RhY2tDaGlsZFN0YWNrRnJhbWUsCisgICAgICAgICAgICAgICAgIGZpcnNTdGFja1RvcExldmVsU3RhY2tGcmFtZS5jaGlsZHJlblswXSk7CisKKyAgICB2YXIgc2Vjb25kU3RhY2tTdGFja0ZyYW1lID0gdC5zYW1wbGVzWzNdLmxlYWZTdGFja0ZyYW1lOworICAgIGFzc2VydC5lcXVhbChzZWNvbmRTdGFja1N0YWNrRnJhbWUsIHQuc2FtcGxlc1s0XS5sZWFmU3RhY2tGcmFtZSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlY29uZFN0YWNrU3RhY2tGcmFtZS5jaGlsZHJlbi5sZW5ndGgsIDApOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzZWNvbmRTdGFja1N0YWNrRnJhbWUucGFyZW50RnJhbWUpOworICB9KTsKKworICB0ZXN0KCd0aW1lckV2ZW50U2xpY2VDcmVhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsndGltZXItZXZlbnQsIlY4LkV4dGVybmFsIiwzODE4OTQ4MywzJ107CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIHZhciBwID0gbS5wcm9jZXNzZXNbLTMyXTsKKyAgICB2YXIgdGhyZWFkcyA9IHAuZmluZEFsbFRocmVhZHNOYW1lZCgnVjggVGltZXJzJyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0aHJlYWRzKTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkcy5sZW5ndGgsIDEpOworICAgIHZhciB0ID0gdGhyZWFkc1swXTsKKyAgICBhc3NlcnQuZXF1YWwodC5zbGljZUdyb3VwLmxlbmd0aCwgMSk7CisgIH0pOworCisgIHRlc3QoJ3Byb2Nlc3NUaHJlYWRDcmVhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsaW5lcyA9IFsndGltZXItZXZlbnQsIlY4LkV4dGVybmFsIiwzODE4OTQ4MywzJ107CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICAgIGFzc2VydC5pc0RlZmluZWQobSk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1stMzJdOworICAgIGFzc2VydC5pc0RlZmluZWQocCk7CisgICAgdmFyIHRocmVhZHMgPSBwLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ1Y4IFRpbWVycycpOworICAgIGFzc2VydC5pc0RlZmluZWQodGhyZWFkcyk7CisgICAgYXNzZXJ0LmVxdWFsKDEsIHRocmVhZHMubGVuZ3RoKTsKKyAgICB2YXIgdCA9IHRocmVhZHNbMF07CisgICAgYXNzZXJ0LmVxdWFsKCdWOCBUaW1lcnMnLCB0Lm5hbWUpOworICB9KTsKKworICB0ZXN0KCdjYW5JbXBvcnQnLCBmdW5jdGlvbigpIHsKKyAgICBhc3NlcnQuaXNUcnVlKFY4TG9nSW1wb3J0ZXIuY2FuSW1wb3J0KAorICAgICAgICAndGltZXItZXZlbnQsIlY4LkV4dGVybmFsIiwzODE4OTQ4MywzJykpOworICAgIGFzc2VydC5pc1RydWUoVjhMb2dJbXBvcnRlci5jYW5JbXBvcnQoJ3Y4LXZlcnNpb24sNCwzLDY2LDAsMCcpKTsKKyAgICBhc3NlcnQuaXNGYWxzZShWOExvZ0ltcG9ydGVyLmNhbkltcG9ydCgnJykpOworICAgIGFzc2VydC5pc0ZhbHNlKFY4TG9nSW1wb3J0ZXIuY2FuSW1wb3J0KFtdKSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvemlwX2ltcG9ydGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9pbXBvcnRlci96aXBfaW1wb3J0ZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvaW1wb3J0ZXIvemlwX2ltcG9ydGVyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL2ltcG9ydGVyL3ppcF9pbXBvcnRlci5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9sZWFuX2NvbmZpZy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvbGVhbl9jb25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjY4ZjI2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvbGVhbl9jb25maWcuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPCEtLQorVGhlIGxlYW4gY29uZmlnIGlzIGp1c3QgZW5vdWdoIHRvIGltcG9ydCB1bmNvbXByZXNzZWQsIHRyYWNlLWV2ZW50LWZvcm1hdHRlZAoranNvbiBibG9icy4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9oaWdobGlnaHRlci92c3luY19oaWdobGlnaHRlci5odG1sIj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL25ldC9uZXQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL25ldC9uZXQuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvbmV0L25ldC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9uZXQvbmV0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL25ldC9uZXRfYXN5bmNfc2xpY2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL25ldC9uZXRfYXN5bmNfc2xpY2UuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvbmV0L25ldF9hc3luY19zbGljZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9uZXQvbmV0X2FzeW5jX3NsaWNlLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL25ldC9uZXRfYXN5bmNfc2xpY2VfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvbmV0L25ldF9hc3luY19zbGljZV90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL25ldC9uZXRfYXN5bmNfc2xpY2VfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9uZXQvbmV0X2FzeW5jX3NsaWNlX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9hbmltYXRpb25faW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL2FuaW1hdGlvbl9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9hbmltYXRpb25faW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvYW5pbWF0aW9uX2ludGVyYWN0aW9uX3JlY29yZC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9yYWlsL2lkbGVfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL2lkbGVfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvaWRsZV9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9pZGxlX2ludGVyYWN0aW9uX3JlY29yZC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL2lyX3ZlcmlmaWVyX3Jvd190ZXN0X2hlbHBlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9pcl92ZXJpZmllcl9yb3dfdGVzdF9oZWxwZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGU2MDFkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9pcl92ZXJpZmllcl9yb3dfdGVzdF9oZWxwZXIuaHRtbApAQCAtMCwwICsxLDExOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWUtcmFpbC1pci12ZXJpZmllci1yb3ciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsKKyAgICAgIGJvcmRlci1zcGFjaW5nOiAwcHg7CisgICAgfQorICAgICNsYWJlbCB7CisgICAgICB3aWR0aDogMXB4OworICAgIH0KKyAgICB0ZCB7CisgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgICAgcGFkZGluZzogMHB4OworICAgIH0KKyAgICA8L3N0eWxlPgorCisgICAgPHRkIGlkPSJsYWJlbCI+PC90ZD4KKyAgICA8dGQ+PGNhbnZhcyBpZD0iY2FudmFzIj48L3RkPgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgLy8gUmV0dXJucyBhIGxpc3Qgb2Ygbm9uLW92ZXJsYXBwaW5nIGxpc3RzIG9mIGV2ZW50cy4KKyAgLy8gfGV2ZW50c3wgbXVzdCBiZSBzb3J0ZWQgYnkgc3RhcnQgdGltZS4KKyAgLy8gQy5mLiBBc3luY1NsaWNlR3JvdXBUcmFjay5idWlsZFN1YlJvd3NfKCkKKyAgZnVuY3Rpb24gb3JnYW5pemVFdmVudHNJbnRvVHJhY2tzKGV2ZW50cykgeworICAgIGlmIChldmVudHMubGVuZ3RoID09PSAwKQorICAgICAgcmV0dXJuIFtbXV07CisKKyAgICB2YXIgdHJhY2tzID0gW1tldmVudHMuc2hpZnQoKV1dOworICAgIGV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICBmb3IgKHZhciB0cmFja2kgPSAwOyB0cmFja2kgPCB0cmFja3MubGVuZ3RoOyArK3RyYWNraSkgeworICAgICAgICB2YXIgdHJhY2sgPSB0cmFja3NbdHJhY2tpXTsKKyAgICAgICAgdmFyIGxhc3RFdmVudCA9IHRyYWNrW3RyYWNrLmxlbmd0aCAtIDFdOworICAgICAgICBpZiAoZXZlbnQuc3RhcnQgPj0gbGFzdEV2ZW50LmVuZCkgeworICAgICAgICAgIHRyYWNrLnB1c2goZXZlbnQpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgdHJhY2tzLnB1c2goW2V2ZW50XSk7CisgICAgfSk7CisgICAgcmV0dXJuIHRyYWNrczsKKyAgfQorCisgIGZ1bmN0aW9uIGdldEV2ZW50Q29sb3IoZXZlbnQpIHsKKyAgICB2YXIgdHlwZU5hbWVPclRpdGxlID0gZXZlbnQudHlwZU5hbWUgfHwgZXZlbnQudGl0bGU7CisgICAgdmFyIGNvbG9ySWQgPSB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygKKyAgICAgICAgdHlwZU5hbWVPclRpdGxlKTsKKyAgICBpZiAoZXZlbnQucmFpbFR5cGVOYW1lXykgeworICAgICAgY29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZShldmVudC5yYWlsVHlwZU5hbWVfKTsKKyAgICB9CisgICAgcmV0dXJuIHRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlKClbY29sb3JJZF07CisgIH0KKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZXZlbnRzXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuYm91bmRzXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgLy8gfGV2ZW50c3wgbXVzdCBiZSBzb3J0ZWQgYnkgc3RhcnQgdGltZS4KKyAgICBzZXQgZXZlbnRzKGV2ZW50cykgeworICAgICAgdGhpcy5ldmVudHNfID0gZXZlbnRzOworICAgIH0sCisKKyAgICBzZXQgYm91bmRzKGJvdW5kcykgeworICAgICAgdGhpcy5ib3VuZHNfID0gYm91bmRzOworICAgIH0sCisKKyAgICBzZXQgbGFiZWxTdHJpbmcocykgeworICAgICAgdGhpcy4kLmxhYmVsLnRleHRDb250ZW50ID0gczsKKyAgICB9LAorCisgICAgdXBkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciB0cmFja3MgPSBvcmdhbml6ZUV2ZW50c0ludG9UcmFja3ModGhpcy5ldmVudHNfKTsKKyAgICAgIHZhciB0b3RhbFdpZHRoID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKKyAgICAgIHZhciBsYWJlbFdpZHRoID0gdGhpcy4kLmxhYmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOworICAgICAgdGhpcy4kLmNhbnZhcy53aWR0aCA9IHRvdGFsV2lkdGggLSBsYWJlbFdpZHRoOworICAgICAgdmFyIHhTY2FsZSA9IHRoaXMuJC5jYW52YXMud2lkdGggLyB0aGlzLmJvdW5kc18ubWF4OworICAgICAgdmFyIFJPV19IRUlHSFQgPSAyMDsKKyAgICAgIHRoaXMuJC5jYW52YXMuaGVpZ2h0ID0gUk9XX0hFSUdIVCAqIHRyYWNrcy5sZW5ndGg7CisgICAgICB2YXIgY29udGV4dCA9IHRoaXMuJC5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgIHRyYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrLCB0cmFja0luZGV4KSB7CisgICAgICAgIHZhciB5ID0gMjAgKiB0cmFja0luZGV4OworICAgICAgICB0cmFjay5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgdmFyIHggPSBldmVudC5zdGFydCAqIHhTY2FsZTsKKyAgICAgICAgICB2YXIgdyA9IChldmVudC5lbmQgLSBldmVudC5zdGFydCkgKiB4U2NhbGU7CisKKyAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOworICAgICAgICAgIGNvbnRleHQucmVjdCh4LCB5LCB3LCBST1dfSEVJR0hUIC0gMSk7CisgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBnZXRFdmVudENvbG9yKGV2ZW50KTsKKyAgICAgICAgICBjb250ZXh0LmZpbGwoKTsKKyAgICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IDE7CisgICAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9ICdibGFjayc7CisgICAgICAgICAgY29udGV4dC5zdHJva2UoKTsKKworICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAgICAgICAgY29udGV4dC5mb250ID0gJzE1cHggQXJpYWwnOworICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJ2JsYWNrJzsKKyAgICAgICAgICBjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInOworICAgICAgICAgIHZhciB0ZXh0U3RyaW5nID0gZXZlbnQudHlwZU5hbWUgfHwgZXZlbnQudGl0bGU7CisgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0U3RyaW5nLCB4ICsgKHcgLyAyKSwgeSArICgzICogUk9XX0hFSUdIVCAvIDQpKTsKKyAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL2lyX3ZlcmlmaWVyX3Rlc3RfaGVscGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL2lyX3ZlcmlmaWVyX3Rlc3RfaGVscGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVjNTExOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvaXJfdmVyaWZpZXJfdGVzdF9oZWxwZXIuaHRtbApAQCAtMCwwICsxLDE0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9pcl92ZXJpZmllcl9yb3dfdGVzdF9oZWxwZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3JhaWxfaXJfZmluZGVyLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLWUtcmFpbC1pci12ZXJpZmllciI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgdGFibGUgeworICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKKyAgICAgIGJvcmRlci1zcGFjaW5nOiAwcHg7CisgICAgfQorICAgIDwvc3R5bGU+CisKKyAgICA8c3BhbiBpZD0iYnVnIj48L3NwYW4+CisgICAgPHRhYmxlIGlkPSJ0YWJsZSI+PC90YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIGZ1bmN0aW9uIGNvbXBhcmVFdmVudHMoeCwgeSkgeworICAgIGlmICh4LnN0YXJ0ICE9PSB5LnN0YXJ0KQorICAgICAgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OworICAgIHJldHVybiB4Lmd1aWQgLSB5Lmd1aWQ7CisgIH0KKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY3VzdG9taXplTW9kZWxDYWxsYmFja18gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmV4cGVjdGVkSVJzXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2V0IGN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2soY21jKSB7CisgICAgICB0aGlzLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2tfID0gY21jOworICAgIH0sCisKKyAgICAvLyB8aXJzfCBtdXN0IGJlIHNvcnRlZCBieSBzdGFydCB0aW1lLgorICAgIHNldCBleHBlY3RlZElScyhpcnMpIHsKKyAgICAgIHRoaXMuZXhwZWN0ZWRJUnNfID0gaXJzOworICAgIH0sCisKKyAgICB2ZXJpZnk6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIG1vZGVsID0gdHIuZS5hdWRpdHMubmV3Q2hyb21lTW9kZWwodGhpcy5jdXN0b21pemVNb2RlbENhbGxiYWNrXyk7CisgICAgICB2YXIgbW9kZWxIZWxwZXIgPSBuZXcgdHIuZS5hdWRpdHMuQ2hyb21lTW9kZWxIZWxwZXIobW9kZWwpOworICAgICAgdmFyIHJpcmYgPSBuZXcgdHIuZS5yYWlsLlJBSUxJUkZpbmRlcihtb2RlbCwgbW9kZWxIZWxwZXIpOworICAgICAgdmFyIGFjdHVhbElScyA9IFtdOworCisgICAgICB0cnkgeworICAgICAgICBhY3R1YWxJUnMgPSByaXJmLmZpbmRBbGxJbnRlcmFjdGlvblJlY29yZHMoKTsKKyAgICAgIH0gY2F0Y2ggKGJ1ZykgeworICAgICAgICB0aGlzLiQuYnVnLnRleHRDb250ZW50ID0gYnVnOworICAgICAgICB0ci5iLnVuaXR0ZXN0LmFkZEhUTUxPdXRwdXRGb3JDdXJyZW50VGVzdCh0aGlzKTsKKyAgICAgICAgdGhyb3cgYnVnOworICAgICAgfQorCisgICAgICAvLyBmaW5kQWxsSW50ZXJhY3Rpb25SZWNvcmRzKCkgZG9lc24ndCBzb3J0LCBidXQgd2UgbmVlZCB0byBzb3J0IHRoZW0gaW4KKyAgICAgIC8vIG9yZGVyIHRvIGNvbXBhcmUgdGhlbSB0byBleHBlY3RlZElScy4KKyAgICAgIGFjdHVhbElScy5zb3J0KGNvbXBhcmVFdmVudHMpOworCisgICAgICB2YXIgZmFpbHVyZSA9IHVuZGVmaW5lZDsKKyAgICAgIHRyeSB7CisgICAgICAgIGFzc2VydC5lcXVhbCh0aGlzLmV4cGVjdGVkSVJzXy5sZW5ndGgsIGFjdHVhbElScy5sZW5ndGgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZXhwZWN0ZWRJUnNfLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgdmFyIGF0ID0gJ0lSc1snICsgaSArICddLic7CisgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRoaXMuZXhwZWN0ZWRJUnNfW2ldLnRpdGxlLCBhY3R1YWxJUnNbaV0udGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgIGF0ICsgJ3RpdGxlJyk7CisgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRoaXMuZXhwZWN0ZWRJUnNfW2ldLnN0YXJ0LCBhY3R1YWxJUnNbaV0uc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGF0ICsgJ3N0YXJ0Jyk7CisgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRoaXMuZXhwZWN0ZWRJUnNfW2ldLmVuZCwgYWN0dWFsSVJzW2ldLmVuZCwgYXQgKyAnZW5kJyk7CisgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRoaXMuZXhwZWN0ZWRJUnNfW2ldLmV2ZW50Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsSVJzW2ldLmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoLCBhdCArICdldmVudENvdW50Jyk7CisgICAgICAgIH0KKyAgICAgIH0gY2F0Y2ggKGNhdWdodCkgeworICAgICAgICBmYWlsdXJlID0gY2F1Z2h0OworICAgICAgfQorCisgICAgICB2YXIgaXNEZWJ1ZyA9IGxvY2F0aW9uLnNlYXJjaC5zcGxpdCgnJicpLmluZGV4T2YoJ2RlYnVnJykgPj0gMDsKKyAgICAgIGlmICghZmFpbHVyZSAmJiAhaXNEZWJ1ZykKKyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBNYWtlIGdldEV2ZW50Q29sb3IoKSBmb3IgdGhlIGV4cGVjdGVkSVJzIG1hdGNoIHRoZSBhY3R1YWxJUnM6CisgICAgICB0aGlzLmV4cGVjdGVkSVJzXy5mb3JFYWNoKGZ1bmN0aW9uKGVpcikgeworICAgICAgICBpZiAoZWlyLnRpdGxlID09PSAnUmVzcG9uc2UnKSB7CisgICAgICAgICAgZWlyLnJhaWxUeXBlTmFtZV8gPSAncmFpbF9yZXNwb25zZSc7CisgICAgICAgIH0gZWxzZSBpZiAoZWlyLnRpdGxlID09PSAnQW5pbWF0aW9uJykgeworICAgICAgICAgIGVpci5yYWlsVHlwZU5hbWVfID0gJ3JhaWxfYW5pbWF0ZSc7CisgICAgICAgIH0gZWxzZSBpZiAoZWlyLnRpdGxlID09PSAnSWRsZScpIHsKKyAgICAgICAgICBlaXIucmFpbFR5cGVOYW1lXyA9ICdyYWlsX2lkbGUnOworICAgICAgICB9IGVsc2UgaWYgKGVpci50aXRsZSA9PT0gJ0xvYWQnKSB7CisgICAgICAgICAgZWlyLnJhaWxUeXBlTmFtZV8gPSAncmFpbF9sb2FkJzsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIHZhciBpbnRlcmFjdGlvbnNMYWJlbCA9ICdJbnRlcmFjdGlvbnM6JzsKKyAgICAgIHZhciBleHBlY3RlZFJvdyA9IHVuZGVmaW5lZDsKKyAgICAgIGlmIChmYWlsdXJlKSB7CisgICAgICAgIGludGVyYWN0aW9uc0xhYmVsID0gJ0FjdHVhbDonOworCisgICAgICAgIGV4cGVjdGVkUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLWlyLXZlcmlmaWVyLXJvdycpOworICAgICAgICB0aGlzLiQudGFibGUuYXBwZW5kQ2hpbGQoZXhwZWN0ZWRSb3cpOworICAgICAgICBleHBlY3RlZFJvdy5sYWJlbFN0cmluZyA9ICdFeHBlY3RlZDonOworICAgICAgICBleHBlY3RlZFJvdy5ib3VuZHMgPSBtb2RlbC5ib3VuZHM7CisgICAgICAgIGV4cGVjdGVkUm93LmV2ZW50cyA9IHRoaXMuZXhwZWN0ZWRJUnNfOworICAgICAgfQorCisgICAgICB2YXIgYWN0dWFsUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLWlyLXZlcmlmaWVyLXJvdycpOworICAgICAgdGhpcy4kLnRhYmxlLmFwcGVuZENoaWxkKGFjdHVhbFJvdyk7CisgICAgICBhY3R1YWxSb3cubGFiZWxTdHJpbmcgPSBpbnRlcmFjdGlvbnNMYWJlbDsKKyAgICAgIGFjdHVhbFJvdy5ib3VuZHMgPSBtb2RlbC5ib3VuZHM7CisgICAgICBhY3R1YWxSb3cuZXZlbnRzID0gYWN0dWFsSVJzOworCisgICAgICB2YXIgbW9kZWxSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXJhaWwtaXItdmVyaWZpZXItcm93Jyk7CisgICAgICB0aGlzLiQudGFibGUuYXBwZW5kQ2hpbGQobW9kZWxSb3cpOworICAgICAgbW9kZWxSb3cubGFiZWxTdHJpbmcgPSAnTW9kZWw6JzsKKyAgICAgIG1vZGVsUm93LmJvdW5kcyA9IG1vZGVsLmJvdW5kczsKKyAgICAgIG1vZGVsUm93LmV2ZW50cyA9IG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuZ2V0QWxsQXN5bmNTbGljZXNNYXRjaGluZygKKyAgICAgICAgICBmdW5jdGlvbihzbGljZSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9KS5zb3J0KGNvbXBhcmVFdmVudHMpOworCisgICAgICB0aGlzLiQudGFibGUuc3R5bGUud2lkdGggPSAod2luZG93LmlubmVyV2lkdGggLSAzMCkgKyAncHgnOworICAgICAgdHIuYi51bml0dGVzdC5hZGRIVE1MT3V0cHV0Rm9yQ3VycmVudFRlc3QodGhpcyk7CisKKyAgICAgIGlmIChleHBlY3RlZFJvdykKKyAgICAgICAgZXhwZWN0ZWRSb3cudXBkYXRlKCk7CisgICAgICBhY3R1YWxSb3cudXBkYXRlKCk7CisgICAgICBtb2RlbFJvdy51cGRhdGUoKTsKKworICAgICAgaWYgKGZhaWx1cmUpCisgICAgICAgIHRocm93IGZhaWx1cmU7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3JhaWwvbG9hZF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvbG9hZF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvcmFpbC9sb2FkX2ludGVyYWN0aW9uX3JlY29yZC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL2xvYWRfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcHJvdG9faXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcHJvdG9faXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODVlYjBiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9wcm90b19pci5odG1sCkBAIC0wLDAgKzEsMTUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2VfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYXVkaXRvci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvYW5pbWF0aW9uX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmVzcG9uc2VfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9pbmZvLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgQW4gaW50ZXJtZWRpYXRlIGRhdGEgZm9ybWF0IGJldHdlZW4gSW5wdXRMYXRlbmN5QXN5bmNTbGljZXMKKyAqIGFuZCBSQUlMSVJzLgorICovCit0ci5leHBvcnRUbygndHIuZS5yYWlsJywgZnVuY3Rpb24oKSB7CisgIC8vIFRoaXMgaXMgYW4gaW50ZXJtZWRpYXRlIGRhdGEgZm9ybWF0IGJldHdlZW4gSW5wdXRMYXRlbmN5QXN5bmNTbGljZXMgYW5kCisgIC8vIFJlc3BvbnNlIGFuZCBBbmltYXRpb24gSVJzLgorICBmdW5jdGlvbiBQcm90b0lSKGlyVHlwZSkgeworICAgIHRoaXMuaXJUeXBlID0gaXJUeXBlOworICAgIHRoaXMuc3RhcnQgPSBJbmZpbml0eTsKKyAgICB0aGlzLmVuZCA9IC1JbmZpbml0eTsKKyAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHMgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgfQorCisgIFByb3RvSVIuUkVTUE9OU0VfVFlQRSA9ICdyJzsKKyAgUHJvdG9JUi5BTklNQVRJT05fVFlQRSA9ICdhJzsKKworICAvLyBFeHBsaWNpdGx5IGlnbm9yZSBzb21lIGlucHV0IGV2ZW50cyB0byBhbGxvdworICAvLyBSQUlMSVJGaW5kZXIuY2hlY2tBbGxJbnB1dEV2ZW50c0hhbmRsZWQoKSB0byBkZXRlcm1pbmUgd2hpY2ggZXZlbnRzIHdlcmUKKyAgLy8gdW5pbnRlbnRpb25hbGx5IGlnbm9yZWQgZHVlIHRvIGEgYnVnLgorICBQcm90b0lSLklHTk9SRURfVFlQRSA9ICdpZ25vcmVkJzsKKworICBQcm90b0lSLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgaXNWYWxpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmVuZCA+IHRoaXMuc3RhcnQ7CisgICAgfSwKKworICAgIC8vIFJldHVybiB0cnVlIGlmIGFueSBhc3NvY2lhdGVkRXZlbnQncyB0eXBlTmFtZSBpcyBpbiB0eXBlTmFtZXMuCisgICAgY29udGFpbnNUeXBlTmFtZXM6IGZ1bmN0aW9uKHR5cGVOYW1lcykgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHR5cGVOYW1lcy5pbmRleE9mKHRoaXMuYXNzb2NpYXRlZEV2ZW50c1tpXS50eXBlTmFtZSkgPj0gMCkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgZ2V0SVJDb25zdHJ1Y3RvcjogZnVuY3Rpb24oKSB7CisgICAgICBzd2l0Y2ggKHRoaXMuaXJUeXBlKSB7CisgICAgICAgIGNhc2UgUHJvdG9JUi5SRVNQT05TRV9UWVBFOgorICAgICAgICAgIHJldHVybiB0ci5lLnJhaWwuUmVzcG9uc2VJbnRlcmFjdGlvblJlY29yZDsKKyAgICAgICAgY2FzZSBQcm90b0lSLkFOSU1BVElPTl9UWVBFOgorICAgICAgICAgIHJldHVybiB0ci5lLnJhaWwuQW5pbWF0aW9uSW50ZXJhY3Rpb25SZWNvcmQ7CisgICAgICB9CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBjcmVhdGVJbnRlcmFjdGlvblJlY29yZDogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMuaXNWYWxpZCkgeworICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIFByb3RvSVI6ICcgKyB0aGlzLmRlYnVnKCkgKworICAgICAgICAgICAgICAgICAgICAgICcgRmlsZSBhIGJ1ZyB3aXRoIHRoaXMgdHJhY2UhJyk7CisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICB9CisKKyAgICAgIHZhciBjb25zdHJ1Y3RvciA9IHRoaXMuZ2V0SVJDb25zdHJ1Y3RvcigpOworICAgICAgaWYgKGNvbnN0cnVjdG9yID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBpciA9IG5ldyBjb25zdHJ1Y3Rvcih0aGlzLnN0YXJ0LCB0aGlzLmVuZCAtIHRoaXMuc3RhcnQpOworCisgICAgICBmdW5jdGlvbiBwdXNoQXNzb2NpYXRlZEV2ZW50cyhldmVudCkgeworICAgICAgICBpci5hc3NvY2lhdGVkRXZlbnRzLnB1c2goZXZlbnQpOworCisgICAgICAgIC8vIHxldmVudHwgaXMgZWl0aGVyIGFuIElucHV0TGF0ZW5jeUFzeW5jU2xpY2UgKHdoaWNoIGNvbGxlY3RzIGFsbCBvZgorICAgICAgICAvLyBpdHMgYXNzb2NpYXRlZCBldmVudHMgdHJhbnNpdGl2ZWx5KSBvciBhIENTUyBBbmltYXRpb24gKHdoaWNoIGRvZXNuJ3QKKyAgICAgICAgLy8gaGF2ZSBhbnkgYXNzb2NpYXRlZCBldmVudHMpLiBTbyB0aGlzIGRvZXMgbm90IG5lZWQgdG8gcmVjdXJzZS4KKyAgICAgICAgaWYgKGV2ZW50LmFzc29jaWF0ZWRFdmVudHMpCisgICAgICAgICAgaXIuYXNzb2NpYXRlZEV2ZW50cy5hZGRFdmVudFNldChldmVudC5hc3NvY2lhdGVkRXZlbnRzKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgcHVzaEFzc29jaWF0ZWRFdmVudHMoZXZlbnQpOworCisgICAgICAgIC8vIE9sZC1zdHlsZSBJbnB1dExhdGVuY3lBc3luY1NsaWNlcyBoYXZlIHN1YlNsaWNlcy4KKyAgICAgICAgaWYgKGV2ZW50LnN1YlNsaWNlcykKKyAgICAgICAgICBldmVudC5zdWJTbGljZXMuZm9yRWFjaChwdXNoQXNzb2NpYXRlZEV2ZW50cyk7CisgICAgICB9KTsKKworICAgICAgcmV0dXJuIGlyOworICAgIH0sCisKKyAgICAvLyBNZXJnZSB0aGUgb3RoZXIgUHJvdG9JUiBpbnRvIHRoaXMgb25lLgorICAgIG1lcmdlOiBmdW5jdGlvbihvdGhlcikgeworICAgICAgaWYgKHRoaXMuaXJUeXBlICE9PSBvdGhlci5pclR5cGUpCisgICAgICAgIGNvbnNvbGUuZXJyb3IoJ01lcmdpbmcnLCB0aGlzLmRlYnVnKCksIG90aGVyLmRlYnVnKCkpOworCisgICAgICAvLyBEb24ndCB1c2UgcHVzaEV2ZW50KCksIHdoaWNoIHdvdWxkIGxvc2Ugc3BlY2lhbCBzdGFydCwgZW5kLgorICAgICAgdGhpcy5hc3NvY2lhdGVkRXZlbnRzLmFkZEV2ZW50U2V0KG90aGVyLmFzc29jaWF0ZWRFdmVudHMpOworICAgICAgdGhpcy5zdGFydCA9IE1hdGgubWluKHRoaXMuc3RhcnQsIG90aGVyLnN0YXJ0KTsKKyAgICAgIHRoaXMuZW5kID0gTWF0aC5tYXgodGhpcy5lbmQsIG90aGVyLmVuZCk7CisgICAgfSwKKworICAgIC8vIEluY2x1ZGUgfGV2ZW50fCBpbiB0aGlzIFByb3RvSVIsIGV4cGFuZGluZyBzdGFydC9lbmQgdG8gaW5jbHVkZSBpdC4KKyAgICBwdXNoRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAvLyBVc3VhbGx5LCB0aGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB3aGlsZSBpdGVyYXRpbmcgb3ZlciBhIGxpc3Qgb2YKKyAgICAgIC8vIGV2ZW50cyBzb3J0ZWQgYnkgc3RhcnQgdGltZSwgc28gdGhpcyBtZXRob2Qgd29uJ3QgdXN1YWxseSBjaGFuZ2UKKyAgICAgIC8vIHRoaXMuc3RhcnQuIEhvd2V2ZXIsIHRoaXMgd2lsbCBzb21ldGltZXMgYmUgY2FsbGVkIGZvciBQcm90b0lScyBjcmVhdGVkCisgICAgICAvLyBieSBwcmV2aW91cyBoYW5kbGVycywgaW4gd2hpY2ggY2FzZSBldmVudC5zdGFydCBjb3VsZCBwb3NzaWJseSBiZQorICAgICAgLy8gYmVmb3JlIHRoaXMuc3RhcnQuCisgICAgICB0aGlzLnN0YXJ0ID0gTWF0aC5taW4odGhpcy5zdGFydCwgZXZlbnQuc3RhcnQpOworICAgICAgdGhpcy5lbmQgPSBNYXRoLm1heCh0aGlzLmVuZCwgZXZlbnQuZW5kKTsKKyAgICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKGV2ZW50KTsKKyAgICB9LAorCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRpbWVzdGFtcCBpcyBjb250YWluZWQgaW4gdGhpcyBQcm90b0lSLgorICAgIGNvbnRhaW5zVGltZXN0YW1wSW5jbHVzaXZlOiBmdW5jdGlvbih0aW1lc3RhbXApIHsKKyAgICAgIHJldHVybiAodGhpcy5zdGFydCA8PSB0aW1lc3RhbXApICYmICh0aW1lc3RhbXAgPD0gdGhpcy5lbmQpOworICAgIH0sCisKKyAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb3RoZXIgZXZlbnQgaW50ZXJzZWN0cyB0aGlzIFByb3RvSVIuCisgICAgaW50ZXJzZWN0czogZnVuY3Rpb24ob3RoZXIpIHsKKyAgICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzI1OTMzCisgICAgICByZXR1cm4gKG90aGVyLnN0YXJ0IDwgdGhpcy5lbmQpICYmIChvdGhlci5lbmQgPiB0aGlzLnN0YXJ0KTsKKyAgICB9LAorCisgICAgaXNOZWFyOiBmdW5jdGlvbihldmVudCwgdGhyZXNob2xkKSB7CisgICAgICByZXR1cm4gKHRoaXMuZW5kICsgdGhyZXNob2xkKSA+IGV2ZW50LnN0YXJ0OworICAgIH0sCisKKyAgICAvLyBSZXR1cm4gYSBzdHJpbmcgZGVzY3JpYmluZyB0aGlzIFByb3RvSVIgZm9yIGRlYnVnZ2luZy4KKyAgICBkZWJ1ZzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZGVidWdTdHJpbmcgPSB0aGlzLmlyVHlwZSArICcoJzsKKyAgICAgIGRlYnVnU3RyaW5nICs9IHBhcnNlSW50KHRoaXMuc3RhcnQpICsgJyAnOworICAgICAgZGVidWdTdHJpbmcgKz0gcGFyc2VJbnQodGhpcy5lbmQpOworICAgICAgdGhpcy5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGVidWdTdHJpbmcgKz0gJyAnICsgZXZlbnQudHlwZU5hbWU7CisgICAgICB9KTsKKyAgICAgIHJldHVybiBkZWJ1Z1N0cmluZyArICcpJzsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQcm90b0lSOiBQcm90b0lSCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2ludGVyYWN0aW9uX3JlY29yZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YzA4MzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hdWRpdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZV91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfbW9kZWxfaGVscGVyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgQmFzZSBjbGFzcyBmb3IgdHJhY2UgZGF0YSBBdWRpdG9ycy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLmUucmFpbCcsIGZ1bmN0aW9uKCkgeworCisgIGZ1bmN0aW9uIFJBSUxJbnRlcmFjdGlvblJlY29yZCh0aXRsZSwgcmFpbFR5cGVOYW1lLCBzdGFydCwgZHVyYXRpb24pIHsKKyAgICB2YXIgY29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZShyYWlsVHlwZU5hbWUpOworICAgIHRoaXMucmFpbFR5cGVOYW1lXyA9IHJhaWxUeXBlTmFtZTsKKyAgICB0ci5tb2RlbC5JbnRlcmFjdGlvblJlY29yZC5jYWxsKHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGR1cmF0aW9uKTsKKyAgfQorCisgIFJBSUxJbnRlcmFjdGlvblJlY29yZC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5JbnRlcmFjdGlvblJlY29yZC5wcm90b3R5cGUsCisKKyAgICB1cGRhdGVBcmdzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhcmdzID0ge307CisKKyAgICAgIHZhciBsYXlvdXRTbGljZXMgPSB0aGlzLmFzc29jaWF0ZWRFdmVudHMuZmlsdGVyKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHJldHVybiBldmVudC50aXRsZSA9PT0gJ0ZyYW1lVmlldzo6bGF5b3V0JzsKKyAgICAgIH0pOworICAgICAgdmFyIHRpbWVJbkxheW91dCA9IHRyLmIuU3RhdGlzdGljcy5zdW0obGF5b3V0U2xpY2VzLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICByZXR1cm4gZXZlbnQuZHVyYXRpb247CisgICAgICB9KTsKKworICAgICAgYXJnc1snbGF5b3V0SW5mbyddID0geworICAgICAgICAndGltZUluTGF5b3V0JzogdGltZUluTGF5b3V0CisgICAgICB9OworCisgICAgICB0aGlzLmFyZ3MgPSBhcmdzOworICAgIH0sCisKKyAgICBnZXQgcmFpbFR5cGVOYW1lKCkgeworICAgICAgcmV0dXJuIHRoaXMucmFpbFR5cGVOYW1lXzsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgb3ZlcmFsbCByYWlsIHNjb3JlLCBmcm9tIDAgdG8gMS4KKyAgICAgKgorICAgICAqIFJBSUxTY29yZSBmb3IgYW4gaW50ZXJhY3Rpb24gbWVyZ2VzIHRoZSB1c2VyJ3MgcGFpbiB3aXRoIHRoZQorICAgICAqIGVmZmljaWVuY3ksIGluIG9yZGVyIHRvIGNyZWF0ZSBhIHBlcmNlcHRpb24tb3JpZW50ZWQgbWVhc3VyZQorICAgICAqIG9mIGhvdyB1c2VycyBwZXJjaWV2ZSBzcGVlZCBkdXJpbmcgdGhpcyBpbnRlcmFjdGlvbi4KKyAgICAgKgorICAgICAqICAwIG1lYW5zIGEgYmFkIHVzZXIgZXhwZXJpZW5jZS4KKyAgICAgKiAgMSBtZWFucyBhIHBlcmZlY3QgdXNlciBleHBlcmllbmNlLgorICAgICAqLworICAgIGdldCByYWlsU2NvcmUoKSB7CisgICAgICB2YXIgaGFwcGluZXNzID0gMSAtIHRoaXMubm9ybWFsaXplZFVzZXJQYWluOworICAgICAgdmFyIGVmZmljaWVuY3kgPSB0aGlzLm5vcm1hbGl6ZWRFZmZpY2llbmN5OworICAgICAgLy8gVGhlIGxvd2VyIHN1Yi1zY29yZSBpcyBtb3JlIGltcG9ydGFudCB0aGFuIHRoZSBoaWdoZXIgc3ViLXNjb3JlLgorICAgICAgLy8gaGFwcGluZXNzIGlzIG1vcmUgaW1wb3J0YW50IHRoYW4gZWZmaWNpZW5jeS4KKyAgICAgIHZhciBoYXBwaW5lc3NXZWlnaHQgPSAyICogTWF0aC5leHAoMSAtIGhhcHBpbmVzcyk7CisgICAgICB2YXIgZWZmaWNpZW5jeVdlaWdodCA9IE1hdGguZXhwKDEgLSBlZmZpY2llbmN5KTsKKyAgICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgZ3JhcGhlZCBhdCBodHRwOi8vZ29vLmdsL1hNV1VLQQorICAgICAgcmV0dXJuICgoaGFwcGluZXNzICogaGFwcGluZXNzV2VpZ2h0ICsgZWZmaWNpZW5jeSAqIGVmZmljaWVuY3lXZWlnaHQpIC8KKyAgICAgICAgICAgICAgKGhhcHBpbmVzc1dlaWdodCArIGVmZmljaWVuY3lXZWlnaHQpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogTWVhc3VyZXMgdGhlIHBhaW4gdGhlIHVzZXIgZXhwZXJpZW5jZWQsIGZyb20gMCB0byAxLgorICAgICAqCisgICAgICogQSB1c2VyIHBlcmZvcm1zIGFuIGludGVyYWN0aW9uIHdpdGggYW4gZXhwZWN0YXRpb24gaW4gbWluZC4KKyAgICAgKiBXaGVuIHdlIGV4Y2VlZCB0aGVpciBleHBlY3RhdGlvbnMsIHdlIGdldCB6ZXJvIHBhaW4uCisgICAgICogV2hlbiB3ZSBtZWV0IHRoZWlyIGV4cGVjdGF0aW9ucywgd2UgZ2V0IHplcm8gcGFpbi4KKyAgICAgKiBBcyB3ZSBleGNlZWQgdGhlaXIgZXhwZWN0YXRpb25zLCBwYWluIGdvZXMgdXAuIE1heGltdW0gcGFpbgorICAgICAqIGlzIDEuMCwgYWthICJTd2l0Y2ggdG8gRmlyZUZveCIuCisgICAgICovCisgICAgZ2V0IG5vcm1hbGl6ZWRVc2VyUGFpbigpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIE1lYXN1cmVzIHRoZSBlZmZpY2llbmN5IG9mIHRoZSBpbnRlcmFjdGlvbiBmcm9tIDAgdG8gMS4KKyAgICAgKgorICAgICAqIEVmZmljaWVuY3kgaXMgYSBub3Rpb24gb2YgaG93IHdlbGwgd2UgdXNlZCB0aGUgbWFjaGluZSdzIGxpbWl0ZWQKKyAgICAgKiByZXNvdXJjZXMgaW4gc2VydmljZSBvZiB0aGlzIGludGVyYWN0aW9uLiBJZiB3ZSB1c2VkIGl0IHBlcmZlY3RseSwKKyAgICAgKiB3ZSB3b3VsZCBnZXQgYSAxLjAuIElmIHdlIHVzZWQgZXZlcnl0aGluZyB0aGF0IHRoZXJlIHdhcyB0byB1c2UgLS0tCisgICAgICogcG93ZXIsIG1lbW9yeSwgY3B1LCB0aGVuIHdlJ2QgZ2V0IGEgemVyby4KKyAgICAgKi8KKyAgICBnZXQgbm9ybWFsaXplZEVmZmljaWVuY3koKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFJBSUxJbnRlcmFjdGlvblJlY29yZDogUkFJTEludGVyYWN0aW9uUmVjb3JkCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2ludGVyYWN0aW9uX3JlY29yZF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjY2NmYwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2ludGVyYWN0aW9uX3JlY29yZF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3N0dWJfcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIHRlc3RfdXRpbHMgPSB0ci5jLnRlc3RfdXRpbHM7CisKKyAgdGVzdCgnbGF5b3V0SW5mbycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IHRyLmUuYXVkaXRzLm5ld0Nocm9tZU1vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICAvLyBUT0RPKGJlbmpoYXlkZW4pOiBDcmVhdGUKKyAgICAgIG1vZGVsLnJlbmRlcmVyTWFpbi5zbGljZUdyb3VwLnB1c2hTbGljZSh0ZXN0X3V0aWxzLm5ld1NsaWNlRXgoeworICAgICAgICB0aXRsZTogJ0ZyYW1lVmlldzo6bGF5b3V0JywKKyAgICAgICAgc3RhcnQ6IDAsCisgICAgICAgIGR1cmF0aW9uOiAxMDAKKyAgICAgIH0pKTsKKyAgICB9KTsKKworICAgIHZhciBtb2RlbEhlbHBlciA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtb2RlbCk7CisgICAgdmFyIHJpciA9IG5ldyB0ci5lLnJhaWwuUkFJTEludGVyYWN0aW9uUmVjb3JkKAorICAgICAgICAnc2ltcGxlJywgJ3JhaWxfcmVzcG9uc2UnLCAwLCAxMDApOworICAgIHJpci5hc3NvY2lhdGVkRXZlbnRzLnB1c2gobW9kZWwucmVuZGVyZXJNYWluLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKKyAgICByaXIudXBkYXRlQXJncygpOworCisgICAgYXNzZXJ0LmVxdWFsKHJpci5hcmdzLmxheW91dEluZm8udGltZUluTGF5b3V0LCAxMDApOworICB9KTsKKworICB0ZXN0KCdyYWlsU2NvcmUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaXIgPSBuZXcgdHIuZS5yYWlsLlN0dWJSQUlMSW50ZXJhY3Rpb25SZWNvcmQoeworICAgICAgc3RhcnQ6IDAsIGVuZDogMTAwLAorICAgICAgcmFpbFR5cGVOYW1lOiAncmFpbF9pZGxlJywKKyAgICAgIG5vcm1hbGl6ZWRVc2VyUGFpbjogMSwKKyAgICAgIG5vcm1hbGl6ZWRFZmZpY2llbmN5OiAwCisgICAgfSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMCwgaXIucmFpbFNjb3JlLCAxZS01KTsKKworICAgIGlyID0gbmV3IHRyLmUucmFpbC5TdHViUkFJTEludGVyYWN0aW9uUmVjb3JkKHsKKyAgICAgIHN0YXJ0OiAwLCBlbmQ6IDEwMCwKKyAgICAgIHJhaWxUeXBlTmFtZTogJ3JhaWxfaWRsZScsCisgICAgICBub3JtYWxpemVkVXNlclBhaW46IDAsCisgICAgICBub3JtYWxpemVkRWZmaWNpZW5jeTogMQorICAgIH0pOworICAgIGFzc2VydC5jbG9zZVRvKDEsIGlyLnJhaWxTY29yZSwgMWUtNSk7CisKKyAgICBpciA9IG5ldyB0ci5lLnJhaWwuU3R1YlJBSUxJbnRlcmFjdGlvblJlY29yZCh7CisgICAgICBzdGFydDogMCwgZW5kOiAxMDAsCisgICAgICByYWlsVHlwZU5hbWU6ICdyYWlsX2lkbGUnLAorICAgICAgbm9ybWFsaXplZFVzZXJQYWluOiAwLAorICAgICAgbm9ybWFsaXplZEVmZmljaWVuY3k6IDAKKyAgICB9KTsKKyAgICBhc3NlcnQuY2xvc2VUbygwLjQyMzg4LCBpci5yYWlsU2NvcmUsIDFlLTUpOworCisgICAgaXIgPSBuZXcgdHIuZS5yYWlsLlN0dWJSQUlMSW50ZXJhY3Rpb25SZWNvcmQoeworICAgICAgc3RhcnQ6IDAsIGVuZDogMTAwLAorICAgICAgcmFpbFR5cGVOYW1lOiAncmFpbF9pZGxlJywKKyAgICAgIG5vcm1hbGl6ZWRVc2VyUGFpbjogMSwKKyAgICAgIG5vcm1hbGl6ZWRFZmZpY2llbmN5OiAxCisgICAgfSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMC4xNTUzNiwgaXIucmFpbFNjb3JlLCAxZS01KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YWY3N2IKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfaXJfZmluZGVyLmh0bWwKQEAgLTAsMCArMSw5NDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZV91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9hdWRpdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2hyb21lX21vZGVsX2hlbHBlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvaWRsZV9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL2xvYWRfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9wcm90b19pci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfaW5mby5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IEJhc2UgY2xhc3MgZm9yIHRyYWNlIGRhdGEgQXVkaXRvcnMuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLnJhaWwnLCBmdW5jdGlvbigpIHsKKyAgdmFyIElOUFVUX1RZUEUgPSB0ci5lLmNjLklOUFVUX0VWRU5UX1RZUEVfTkFNRVM7CisgIHZhciBQcm90b0lSID0gdHIuZS5yYWlsLlByb3RvSVI7CisKKyAgZnVuY3Rpb24gY29tcGFyZUV2ZW50cyh4LCB5KSB7CisgICAgaWYgKHguc3RhcnQgIT09IHkuc3RhcnQpCisgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7CisgICAgaWYgKHguZW5kICE9PSB5LmVuZCkKKyAgICAgIHJldHVybiB4LmVuZCAtIHkuZW5kOworICAgIGlmICh4Lmd1aWQgJiYgeS5ndWlkKQorICAgICAgcmV0dXJuIHguZ3VpZCAtIHkuZ3VpZDsKKyAgICByZXR1cm4gMDsKKyAgfQorCisgIC8vIElmIHRoZXJlJ3MgbGVzcyB0aGFuIHRoaXMgbXVjaCB0aW1lIGJldHdlZW4gdGhlIGVuZCBvZiBvbmUgZXZlbnQgYW5kIHRoZQorICAvLyBzdGFydCBvZiB0aGUgbmV4dCwgdGhlbiB0aGV5IG1pZ2h0IGJlIG1lcmdlZC4KKyAgLy8gVGhlcmUgd2FzIG5vdCBlbm91Z2ggdGhvdWdodCBnaXZlbiB0byB0aGlzIHZhbHVlLCBzbyBpZiB5b3UgaGF2ZSBhbnkgc2xpZ2h0CisgIC8vIHJlYXNvbiB0byBjaGFuZ2UgaXQsIHRoZW4gcGxlYXNlIGRvIHNvLiBJdCBtaWdodCBhbHNvIGJlIGdvb2QgdG8gc3BsaXQgdGhpcworICAvLyBpbnRvIG11bHRpcGxlIHZhbHVlcy4KKyAgdmFyIElOUFVUX01FUkdFX1RIUkVTSE9MRF9NUyA9IDIwMDsKKyAgdmFyIEFOSU1BVElPTl9NRVJHRV9USFJFU0hPTERfTVMgPSAxOworCisgIHZhciBJTlNJR05JRklDQU5UX01TID0gMTsKKworICB2YXIgS0VZQk9BUkRfVFlQRV9OQU1FUyA9IFsKKyAgICBJTlBVVF9UWVBFLkNIQVIsCisgICAgSU5QVVRfVFlQRS5LRVlfRE9XTl9SQVcsCisgICAgSU5QVVRfVFlQRS5LRVlfRE9XTiwKKyAgICBJTlBVVF9UWVBFLktFWV9VUAorICBdOworICB2YXIgTU9VU0VfUkVTUE9OU0VfVFlQRV9OQU1FUyA9IFsKKyAgICBJTlBVVF9UWVBFLk1PVVNFX1dIRUVMLAorICAgIElOUFVUX1RZUEUuQ0xJQ0ssCisgICAgSU5QVVRfVFlQRS5DT05URVhUX01FTlUKKyAgXTsKKyAgdmFyIE1PVVNFX0RSQUdfVFlQRV9OQU1FUyA9IFsKKyAgICBJTlBVVF9UWVBFLk1PVVNFX0RPV04sCisgICAgSU5QVVRfVFlQRS5NT1VTRV9NT1ZFLAorICAgIElOUFVUX1RZUEUuTU9VU0VfVVAKKyAgXTsKKyAgdmFyIFRBUF9UWVBFX05BTUVTID0gWworICAgIElOUFVUX1RZUEUuVEFQLAorICAgIElOUFVUX1RZUEUuVEFQX0NBTkNFTCwKKyAgICBJTlBVVF9UWVBFLlRBUF9ET1dOCisgIF07CisgIHZhciBQSU5DSF9UWVBFX05BTUVTID0gWworICAgIElOUFVUX1RZUEUuUElOQ0hfQkVHSU4sCisgICAgSU5QVVRfVFlQRS5QSU5DSF9FTkQsCisgICAgSU5QVVRfVFlQRS5QSU5DSF9VUERBVEUKKyAgXTsKKyAgdmFyIEZMSU5HX1RZUEVfTkFNRVMgPSBbCisgICAgSU5QVVRfVFlQRS5GTElOR19DQU5DRUwsCisgICAgSU5QVVRfVFlQRS5GTElOR19TVEFSVAorICBdOworICB2YXIgVE9VQ0hfVFlQRV9OQU1FUyA9IFsKKyAgICBJTlBVVF9UWVBFLlRPVUNIX0VORCwKKyAgICBJTlBVVF9UWVBFLlRPVUNIX01PVkUsCisgICAgSU5QVVRfVFlQRS5UT1VDSF9TVEFSVAorICBdOworICB2YXIgU0NST0xMX1RZUEVfTkFNRVMgPSBbCisgICAgSU5QVVRfVFlQRS5TQ1JPTExfQkVHSU4sCisgICAgSU5QVVRfVFlQRS5TQ1JPTExfRU5ELAorICAgIElOUFVUX1RZUEUuU0NST0xMX1VQREFURQorICBdOworICB2YXIgQUxMX0hBTkRMRURfVFlQRV9OQU1FUyA9IFtdLmNvbmNhdCgKKyAgICBLRVlCT0FSRF9UWVBFX05BTUVTLAorICAgIE1PVVNFX1JFU1BPTlNFX1RZUEVfTkFNRVMsCisgICAgTU9VU0VfRFJBR19UWVBFX05BTUVTLAorICAgIFBJTkNIX1RZUEVfTkFNRVMsCisgICAgVEFQX1RZUEVfTkFNRVMsCisgICAgRkxJTkdfVFlQRV9OQU1FUywKKyAgICBUT1VDSF9UWVBFX05BTUVTLAorICAgIFNDUk9MTF9UWVBFX05BTUVTCisgICk7CisKKyAgdmFyIFJFTkRFUkVSX0ZMSU5HX1RJVExFID0gJ0lucHV0SGFuZGxlclByb3h5OjpIYW5kbGVHZXN0dXJlRmxpbmc6OnN0YXJ0ZWQnOworCisgIGZ1bmN0aW9uIFJBSUxJUkZpbmRlcihtb2RlbCwgbW9kZWxIZWxwZXIpIHsKKyAgICB0aGlzLm1vZGVsID0gbW9kZWw7CisgICAgdGhpcy5tb2RlbEhlbHBlciA9IG1vZGVsSGVscGVyOworICB9OworCisgIFJBSUxJUkZpbmRlci5zdXBwb3J0c01vZGVsSGVscGVyID0gZnVuY3Rpb24obW9kZWxIZWxwZXIpIHsKKyAgICByZXR1cm4gbW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlciAhPT0gdW5kZWZpbmVkOworICB9OworCisgIFJBSUxJUkZpbmRlci5wcm90b3R5cGUgPSB7CisgICAgZmluZEFsbEludGVyYWN0aW9uUmVjb3JkczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcmlycyA9IFtdOworICAgICAgcmlycy5wdXNoLmFwcGx5KHJpcnMsIHRoaXMuZmluZExvYWRJbnRlcmFjdGlvblJlY29yZHMoKSk7CisgICAgICByaXJzLnB1c2guYXBwbHkocmlycywgdGhpcy5maW5kSW5wdXRJbnRlcmFjdGlvblJlY29yZHMoKSk7CisgICAgICAvLyBmaW5kSWRsZUludGVyYWN0aW9uUmVjb3JkcyBtdXN0IGJlIGNhbGxlZCBsYXN0IQorICAgICAgcmlycy5wdXNoLmFwcGx5KHJpcnMsIHRoaXMuZmluZElkbGVJbnRlcmFjdGlvblJlY29yZHMocmlycykpOworICAgICAgcmV0dXJuIHJpcnM7CisgICAgfSwKKworICAgIC8vIEZpbGwgaW4gdGhlIGVtcHR5IHNwYWNlIGJldHdlZW4gSVJzIHdpdGggSWRsZUlScy4KKyAgICBmaW5kSWRsZUludGVyYWN0aW9uUmVjb3JkczogZnVuY3Rpb24ob3RoZXJJUnMpIHsKKyAgICAgIGlmICh0aGlzLm1vZGVsLmJvdW5kcy5pc0VtcHR5KQorICAgICAgICByZXR1cm47CisgICAgICB2YXIgZW1wdHlSYW5nZXMgPSB0ci5iLmZpbmRFbXB0eVJhbmdlc0JldHdlZW5SYW5nZXMoCisgICAgICAgICAgdHIuYi5jb252ZXJ0RXZlbnRzVG9SYW5nZXMob3RoZXJJUnMpLAorICAgICAgICAgIHRoaXMubW9kZWwuYm91bmRzKTsKKyAgICAgIHZhciBpcnMgPSBbXTsKKyAgICAgIGVtcHR5UmFuZ2VzLmZvckVhY2goZnVuY3Rpb24ocmFuZ2UpIHsKKyAgICAgICAgLy8gSWdub3JlIGluc2lnbmlmaWNhbnRseSB0aW55IGlkbGUgcmFuZ2VzLgorICAgICAgICBpZiAocmFuZ2UubWF4IDwgKHJhbmdlLm1pbiArIElOU0lHTklGSUNBTlRfTVMpKQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaXJzLnB1c2gobmV3IHRyLmUucmFpbC5JZGxlSW50ZXJhY3Rpb25SZWNvcmQoCisgICAgICAgICAgICByYW5nZS5taW4sIHJhbmdlLm1heCAtIHJhbmdlLm1pbikpOworICAgICAgfSk7CisgICAgICByZXR1cm4gaXJzOworICAgIH0sCisKKyAgICBnZXRBbGxGcmFtZUV2ZW50czogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZnJhbWVFdmVudHMgPSBbXTsKKyAgICAgIGZyYW1lRXZlbnRzLnB1c2guYXBwbHkoZnJhbWVFdmVudHMsCisgICAgICAgICAgdGhpcy5tb2RlbEhlbHBlci5icm93c2VySGVscGVyLmdldEZyYW1lRXZlbnRzSW5SYW5nZSgKKyAgICAgICAgICAgICAgdHIuZS5hdWRpdHMuSU1QTF9GUkFNRVRJTUVfVFlQRSwgdGhpcy5tb2RlbC5ib3VuZHMpKTsKKworICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5tb2RlbEhlbHBlci5yZW5kZXJlckhlbHBlcnMsIGZ1bmN0aW9uKHBpZCwgcmVuZGVyZXIpIHsKKyAgICAgICAgZnJhbWVFdmVudHMucHVzaC5hcHBseShmcmFtZUV2ZW50cywgcmVuZGVyZXIuZ2V0RnJhbWVFdmVudHNJblJhbmdlKAorICAgICAgICAgICAgdHIuZS5hdWRpdHMuSU1QTF9GUkFNRVRJTUVfVFlQRSwgdGhpcy5tb2RlbC5ib3VuZHMpKTsKKyAgICAgIH0sIHRoaXMpOworICAgICAgcmV0dXJuIGZyYW1lRXZlbnRzLnNvcnQoY29tcGFyZUV2ZW50cyk7CisgICAgfSwKKworICAgIGdldFN0YXJ0TG9hZEV2ZW50czogZnVuY3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiBpc1N0YXJ0TG9hZFNsaWNlKHNsaWNlKSB7CisgICAgICAgIHJldHVybiBzbGljZS50aXRsZSA9PT0gJ1JlbmRlckZyYW1lSW1wbDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQnOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMubW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci5nZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nKAorICAgICAgICAgIGlzU3RhcnRMb2FkU2xpY2UpLnNvcnQoY29tcGFyZUV2ZW50cyk7CisgICAgfSwKKworICAgIGdldEZhaWxMb2FkRXZlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0aW9uIGlzRmFpbExvYWRTbGljZShzbGljZSkgeworICAgICAgICByZXR1cm4gc2xpY2UudGl0bGUgPT09ICdSZW5kZXJGcmFtZUltcGw6OmRpZEZhaWxQcm92aXNpb25hbExvYWQnOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMubW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci5nZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nKAorICAgICAgICAgIGlzRmFpbExvYWRTbGljZSkuc29ydChjb21wYXJlRXZlbnRzKTsKKyAgICB9LAorCisgICAgLy8gTWF0Y2ggdXAgUmVuZGVyRnJhbWVJbXBsIGV2ZW50cyB3aXRoIGZyYW1lIHJlbmRlciBldmVudHMuCisgICAgZmluZExvYWRJbnRlcmFjdGlvblJlY29yZHM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNvbW1pdExvYWRFdmVudHMgPQorICAgICAgICAgIHRoaXMubW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci5nZXRDb21taXRQcm92aXNpb25hbExvYWRFdmVudHNJblJhbmdlKAorICAgICAgICAgICAgICB0aGlzLm1vZGVsLmJvdW5kcyk7CisgICAgICB2YXIgZnJhbWVFdmVudHMgPSB0aGlzLmdldEFsbEZyYW1lRXZlbnRzKCk7CisgICAgICB2YXIgc3RhcnRMb2FkRXZlbnRzID0gdGhpcy5nZXRTdGFydExvYWRFdmVudHMoKTsKKyAgICAgIHZhciBmYWlsTG9hZEV2ZW50cyA9IHRoaXMuZ2V0RmFpbExvYWRFdmVudHMoKTsKKworICAgICAgY29tbWl0TG9hZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGNvbW1pdExvYWQsIGNvbW1pdExvYWRJbmRleCkgeworICAgICAgICBmcmFtZUV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGZyYW1lRXZlbnQpIHsKKyAgICAgICAgICAvLyBTdG9wIGxvb2tpbmcgaWYgdGhpcyB8Y29tbWl0TG9hZHwgYWxyZWFkeSBoYXMgaXRzIGZpcnN0RnJhbWUuCisgICAgICAgICAgaWYgKGNvbW1pdExvYWQuZmlyc3RGcmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIC8vIElnbm9yZSBmcmFtZSBldmVudHMgYmVmb3JlIHxjb21taXRMb2FkfC4KKyAgICAgICAgICBpZiAoZnJhbWVFdmVudC5zdGFydCA8PSBjb21taXRMb2FkLnN0YXJ0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgLy8gSWdub3JlIGZyYW1lIGV2ZW50cyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzLgorICAgICAgICAgIGlmIChmcmFtZUV2ZW50LnBhcmVudENvbnRhaW5lci5wYXJlbnQucGlkICE9PQorICAgICAgICAgICAgICAgY29tbWl0TG9hZC5wYXJlbnRDb250YWluZXIucGFyZW50LnBpZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIC8vIEdpdmUgdXAgbG9va2luZyBpZiB0aGUgZmlyc3QgZnJhbWUgZXZlbnQgYmVsb25ncyB0byBhIGRpZmZlcmVudAorICAgICAgICAgIC8vIGNvbW1pdExvYWRFdmVudC4KKyAgICAgICAgICBpZiAoZnJhbWVFdmVudC5jb21taXRMb2FkRXZlbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAvLyBUaGlzIGFwcGVhcnMgdG8gYmUgdGhlIGZpcnN0IGZyYW1lIGV2ZW50IGZvciB0aGlzIGxvYWQsIGFsdGhvdWdoCisgICAgICAgICAgLy8gdGhpcyBpcyBqdXN0IGEgaGV1cmlzdGljLgorICAgICAgICAgIGNvbW1pdExvYWQuZmlyc3RGcmFtZSA9IGZyYW1lRXZlbnQ7CisgICAgICAgICAgZnJhbWVFdmVudC5jb21taXRMb2FkRXZlbnQgPSBjb21taXRMb2FkOworICAgICAgICB9KTsKKyAgICAgIH0pOworCisgICAgICBzdGFydExvYWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihzdGFydExvYWQpIHsKKyAgICAgICAgZmFpbExvYWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihmYWlsTG9hZCkgeworICAgICAgICAgIC8vIFN0b3AgbG9va2luZyBpZiB0aGlzIHxzdGFydExvYWR8IGFscmVhZHkgaGFzIGl0cyB8ZmFpbExvYWRFdmVudHwuCisgICAgICAgICAgaWYgKHN0YXJ0TG9hZC5mYWlsTG9hZEV2ZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgLy8gSWdub3JlIGV2ZW50cyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzLgorICAgICAgICAgIGlmIChzdGFydExvYWQucGFyZW50Q29udGFpbmVyLnBhcmVudC5waWQgIT09CisgICAgICAgICAgICAgIGZhaWxMb2FkLnBhcmVudENvbnRhaW5lci5wYXJlbnQucGlkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgLy8gSWdub3JlIGZhaWxMb2FkIGV2ZW50cyBiZWZvcmUgfHN0YXJ0TG9hZHwuCisgICAgICAgICAgaWYgKGZhaWxMb2FkLnN0YXJ0IDw9IHN0YXJ0TG9hZC5zdGFydCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIC8vIEdpdmUgdXAgbG9va2luZyBpZiB8ZmFpbExvYWR8IGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQKKyAgICAgICAgICAvLyB8c3RhcnRMb2FkRXZlbnR8LgorICAgICAgICAgIGlmIChmYWlsTG9hZC5zdGFydExvYWRFdmVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIC8vIFRoaXMgfGZhaWxMb2FkfCBhcHBlYXJzIHRvIGdvIHdpdGggfHN0YXJ0TG9hZHwsIGFsdGhvdWdoIHRoaXMgaXMKKyAgICAgICAgICAvLyBqdXN0IGEgaGV1cmlzdGljLgorICAgICAgICAgIGZhaWxMb2FkLnN0YXJ0TG9hZEV2ZW50ID0gc3RhcnRMb2FkOworICAgICAgICAgIHN0YXJ0TG9hZC5mYWlsTG9hZEV2ZW50ID0gZmFpbExvYWQ7CisgICAgICAgIH0pOworICAgICAgfSk7CisKKyAgICAgIHZhciBsaXJzID0gW107CisgICAgICBjb21taXRMb2FkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oY29tbWl0TG9hZCwgY29tbWl0TG9hZEluZGV4KSB7CisgICAgICAgIGlmICghY29tbWl0TG9hZC5maXJzdEZyYW1lKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgbGlyID0gbmV3IHRyLmUucmFpbC5Mb2FkSW50ZXJhY3Rpb25SZWNvcmQoCisgICAgICAgICAgICBjb21taXRMb2FkLnN0YXJ0LCBjb21taXRMb2FkLmZpcnN0RnJhbWUuZW5kIC0gY29tbWl0TG9hZC5zdGFydCk7CisgICAgICAgIGxpci5hc3NvY2lhdGVkRXZlbnRzLnB1c2goY29tbWl0TG9hZCk7CisgICAgICAgIGxpci5hc3NvY2lhdGVkRXZlbnRzLnB1c2goY29tbWl0TG9hZC5maXJzdEZyYW1lKTsKKyAgICAgICAgbGlycy5wdXNoKGxpcik7CisgICAgICB9KTsKKworICAgICAgZmFpbExvYWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihmYWlsTG9hZCkgeworICAgICAgICBpZiAoIWZhaWxMb2FkLnN0YXJ0TG9hZEV2ZW50KQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGxpciA9IG5ldyB0ci5lLnJhaWwuTG9hZEludGVyYWN0aW9uUmVjb3JkKAorICAgICAgICAgICAgZmFpbExvYWQuc3RhcnRMb2FkRXZlbnQuc3RhcnQsCisgICAgICAgICAgICBmYWlsTG9hZC5zdGFydCAtIGZhaWxMb2FkLnN0YXJ0TG9hZEV2ZW50LnN0YXJ0KTsKKyAgICAgICAgbGlyLmFzc29jaWF0ZWRFdmVudHMucHVzaChmYWlsTG9hZC5zdGFydExvYWRFdmVudCk7CisgICAgICAgIGxpci5hc3NvY2lhdGVkRXZlbnRzLnB1c2goZmFpbExvYWQpOworICAgICAgICBsaXJzLnB1c2gobGlyKTsKKyAgICAgIH0pOworCisgICAgICByZXR1cm4gbGlyczsKKyAgICB9LAorCisgICAgLy8gRmluZCBQcm90b0lScywgcG9zdC1wcm9jZXNzIHRoZW0sIGNvbnZlcnQgdGhlbSB0byByZWFsIElScy4KKyAgICBmaW5kSW5wdXRJbnRlcmFjdGlvblJlY29yZHM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHByb3RvSVJzID0gdGhpcy5maW5kUHJvdG9JUnMoKTsKKyAgICAgIHByb3RvSVJzID0gdGhpcy5wb3N0UHJvY2Vzc1Byb3RvSVJzKHByb3RvSVJzKTsKKyAgICAgIHRoaXMuY2hlY2tBbGxJbnB1dEV2ZW50c0hhbmRsZWQocHJvdG9JUnMpOworCisgICAgICB2YXIgaXJzID0gW107CisgICAgICBwcm90b0lScy5mb3JFYWNoKGZ1bmN0aW9uKHByb3RvSVIpIHsKKyAgICAgICAgdmFyIGlyID0gcHJvdG9JUi5jcmVhdGVJbnRlcmFjdGlvblJlY29yZCgpOworICAgICAgICBpZiAoaXIpCisgICAgICAgICAgaXJzLnB1c2goaXIpOworICAgICAgfSk7CisgICAgICByZXR1cm4gaXJzOworICAgIH0sCisKKyAgICBmaW5kUHJvdG9JUnM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHByb3RvSVJzID0gW107CisgICAgICAvLyBUaGlzIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuIEhhbmRsZXJzIGFyZSBpbmRlcGVuZGVudC4KKyAgICAgIHByb3RvSVJzLnB1c2guYXBwbHkocHJvdG9JUnMsIHRoaXMuaGFuZGxlS2V5Ym9hcmRFdmVudHMoKSk7CisgICAgICBwcm90b0lScy5wdXNoLmFwcGx5KHByb3RvSVJzLCB0aGlzLmhhbmRsZU1vdXNlUmVzcG9uc2VFdmVudHMoKSk7CisgICAgICBwcm90b0lScy5wdXNoLmFwcGx5KHByb3RvSVJzLCB0aGlzLmhhbmRsZU1vdXNlRHJhZ0V2ZW50cygpKTsKKyAgICAgIHByb3RvSVJzLnB1c2guYXBwbHkocHJvdG9JUnMsIHRoaXMuaGFuZGxlVGFwUmVzcG9uc2VFdmVudHMoKSk7CisgICAgICBwcm90b0lScy5wdXNoLmFwcGx5KHByb3RvSVJzLCB0aGlzLmhhbmRsZVBpbmNoRXZlbnRzKCkpOworICAgICAgcHJvdG9JUnMucHVzaC5hcHBseShwcm90b0lScywgdGhpcy5oYW5kbGVGbGluZ0V2ZW50cygpKTsKKyAgICAgIHByb3RvSVJzLnB1c2guYXBwbHkocHJvdG9JUnMsIHRoaXMuaGFuZGxlVG91Y2hFdmVudHMoKSk7CisgICAgICBwcm90b0lScy5wdXNoLmFwcGx5KHByb3RvSVJzLCB0aGlzLmhhbmRsZVNjcm9sbEV2ZW50cygpKTsKKyAgICAgIHByb3RvSVJzLnB1c2guYXBwbHkocHJvdG9JUnMsIHRoaXMuaGFuZGxlQ1NTQW5pbWF0aW9ucygpKTsKKyAgICAgIHByb3RvSVJzLnNvcnQoY29tcGFyZUV2ZW50cyk7CisgICAgICByZXR1cm4gcHJvdG9JUnM7CisgICAgfSwKKworICAgIGdldFNvcnRlZElucHV0RXZlbnRzOiBmdW5jdGlvbih0eXBlTmFtZXMpIHsKKyAgICAgIGZ1bmN0aW9uIGlzTWF0Y2hpbmdTbGljZShzbGljZSkgeworICAgICAgICBpZiAoIXNsaWNlLmlzVG9wTGV2ZWwpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICghKHNsaWNlIGluc3RhbmNlb2YgdHIuZS5jYy5JbnB1dExhdGVuY3lBc3luY1NsaWNlKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuIHR5cGVOYW1lcy5pbmRleE9mKHNsaWNlLnR5cGVOYW1lKSA+PSAwOworICAgICAgfQorCisgICAgICByZXR1cm4gdGhpcy5tb2RlbEhlbHBlci5icm93c2VySGVscGVyLmdldEFsbEFzeW5jU2xpY2VzTWF0Y2hpbmcoCisgICAgICAgICAgaXNNYXRjaGluZ1NsaWNlKS5zb3J0KGNvbXBhcmVFdmVudHMpOworICAgIH0sCisKKyAgICAvLyBFdmVyeSBrZXlib2FyZCBldmVudCBpcyBhIFJlc3BvbnNlLgorICAgIGhhbmRsZUtleWJvYXJkRXZlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBwcm90b0lScyA9IFtdOworICAgICAgdGhpcy5nZXRTb3J0ZWRJbnB1dEV2ZW50cyhLRVlCT0FSRF9UWVBFX05BTUVTKS5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBwaXIgPSBuZXcgUHJvdG9JUihQcm90b0lSLlJFU1BPTlNFX1RZUEUpOworICAgICAgICBwaXIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgcHJvdG9JUnMucHVzaChwaXIpOworICAgICAgfSk7CisgICAgICByZXR1cm4gcHJvdG9JUnM7CisgICAgfSwKKworICAgIC8vIFNvbWUgbW91c2UgZXZlbnRzIGNhbiBiZSB0cmFuc2xhdGVkIGRpcmVjdGx5IGludG8gUmVzcG9uc2VzLgorICAgIGhhbmRsZU1vdXNlUmVzcG9uc2VFdmVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHByb3RvSVJzID0gW107CisgICAgICB0aGlzLmdldFNvcnRlZElucHV0RXZlbnRzKE1PVVNFX1JFU1BPTlNFX1RZUEVfTkFNRVMpLmZvckVhY2goCisgICAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBwaXIgPSBuZXcgUHJvdG9JUihQcm90b0lSLlJFU1BPTlNFX1RZUEUpOworICAgICAgICAgICAgcGlyLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICBwcm90b0lScy5wdXNoKHBpcik7CisgICAgICB9KTsKKyAgICAgIHJldHVybiBwcm90b0lSczsKKyAgICB9LAorCisgICAgLy8gRG93biBldmVudHMgZm9sbG93ZWQgY2xvc2VseSBieSBVcCBldmVudHMgYXJlIGNsaWNrIFJlc3BvbnNlcywgYnV0IHRoZQorICAgIC8vIFJlc3BvbnNlIGRvZXNuJ3Qgc3RhcnQgdW50aWwgdGhlIFVwIGV2ZW50LgorICAgIC8vCisgICAgLy8gICAgIFJSUgorICAgIC8vIERERCBVVVUKKyAgICAvLworICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgTW92ZSBldmVudHMgaW4gYmV0d2VlbiBhIERvd24gYW5kIGFuIFVwLCB0aGVuIHRoZSBEb3duCisgICAgLy8gYW5kIHRoZSBmaXJzdCBNb3ZlIGFyZSBhIFJlc3BvbnNlLCB0aGVuIHRoZSByZXN0IG9mIHRoZSBNb3ZlcyBhcmUgYW4KKyAgICAvLyBBbmltYXRpb246CisgICAgLy8KKyAgICAvLyBSUlJSUlJSQUFBQUFBQUFBQUFBQUFBQUFBQUEKKyAgICAvLyBEREQgTU1NIE1NTSBNTU0gTU1NIE1NTSBVVVUKKyAgICAvLworICAgIGhhbmRsZU1vdXNlRHJhZ0V2ZW50czogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcHJvdG9JUnMgPSBbXTsKKyAgICAgIHZhciBjdXJyZW50UElSID0gdW5kZWZpbmVkOworICAgICAgdmFyIG1vdmVDb3VudCA9IDA7CisgICAgICB2YXIgbW91c2VEb3duRXZlbnQgPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmdldFNvcnRlZElucHV0RXZlbnRzKE1PVVNFX0RSQUdfVFlQRV9OQU1FUykuZm9yRWFjaChmdW5jdGlvbihldmVudCkgeworICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGVOYW1lKSB7CisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLk1PVVNFX0RPV046CisgICAgICAgICAgICAvLyBSZXNwb25zZXMgdHlwaWNhbGx5IGRvbid0IHN0YXJ0IHVudGlsIHRoZSBtb3VzZSB1cCBldmVudC4KKyAgICAgICAgICAgIG1vdXNlRG93bkV2ZW50ID0gZXZlbnQ7CisgICAgICAgICAgICBtb3ZlQ291bnQgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBUaGVyZSBtYXkgYmUgbW9yZSB0aGFuIDEwMG1zIGJldHdlZW4gdGhlIHN0YXJ0IG9mIHRoZSBtb3VzZSBkb3duCisgICAgICAgICAgICAvLyBhbmQgdGhlIHN0YXJ0IG9mIHRoZSBtb3VzZSB1cC4gQ2hyb21lIGFuZCB0aGUgd2ViIGRvbid0IHN0YXJ0IHRvCisgICAgICAgICAgICAvLyByZXNwb25kIHVudGlsIHRoZSBtb3VzZSB1cC4gUmVzcG9uc2VJUnMgc3RhcnQgc2NvcmluZyAicGFpbiIgYXQKKyAgICAgICAgICAgIC8vIDEwMG1zIGR1cmF0aW9uLiBJZiBtb3JlIHRoYW4gdGhhdCAxMDBtcyBkdXJhdGlvbiBpcyBidXJuZWQKKyAgICAgICAgICAgIC8vIHRocm91Z2ggd2hpbGUgd2FpdGluZyBmb3IgdGhlIHVzZXIgdG8gcmVsZWFzZSB0aGUKKyAgICAgICAgICAgIC8vIG1vdXNlIGJ1dHRvbiwgdGhlbiBSZXNwb25zZUlSIHdpbGwgdW5mYWlybHkgc3RhcnQgc2NvcmluZyBwYWluCisgICAgICAgICAgICAvLyBiZWZvcmUgQ2hyb21lIGV2ZW4gaGFzIGEgbW91c2UgdXAgdG8gcmVzcG9uZCB0by4KKyAgICAgICAgICAgIC8vIEl0IGlzIHRlY2huaWNhbGx5IHBvc3NpYmxlIGZvciBhIHNpdGUgdG8gYWZmb3JkIG9uZSByZXNwb25zZSBvbgorICAgICAgICAgICAgLy8gbW91c2UgZG93biBhbmQgYW5vdGhlciBvbiBtb3VzZSB1cCwgYnV0IHRoYXQgaXMgYW4gZWRnZSBjYXNlLiBUaGUKKyAgICAgICAgICAgIC8vIHZhc3QgbWFqb3JpdHkgb2YgbW91c2UgZG93bnMgYXJlIG5vdCByZXNwb25zZXMuCisKKyAgICAgICAgICBjYXNlIElOUFVUX1RZUEUuTU9VU0VfTU9WRToKKyAgICAgICAgICAgIGlmICghbW91c2VEb3duRXZlbnQpIHsKKyAgICAgICAgICAgICAgdmFyIHBpciA9IG5ldyBQcm90b0lSKFByb3RvSVIuSUdOT1JFRF9UWVBFKTsKKyAgICAgICAgICAgICAgcGlyLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2gocGlyKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1vdmVDb3VudCsrOworICAgICAgICAgICAgaWYgKG1vdmVDb3VudCA9PT0gMSkgeworICAgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5SRVNQT05TRV9UWVBFKTsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICBjdXJyZW50UElSLmFzc29jaWF0ZWRFdmVudHMucHVzaChtb3VzZURvd25FdmVudCk7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1vdmVDb3VudCA9PT0gMikgeworICAgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5BTklNQVRJT05fVFlQRSk7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgcHJvdG9JUnMucHVzaChjdXJyZW50UElSKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLk1PVVNFX1VQOgorICAgICAgICAgICAgaWYgKCFtb3VzZURvd25FdmVudCkgeworICAgICAgICAgICAgICB2YXIgcGlyID0gbmV3IFByb3RvSVIoUHJvdG9JUi5JR05PUkVEX1RZUEUpOworICAgICAgICAgICAgICBwaXIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgcHJvdG9JUnMucHVzaChwaXIpOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGN1cnJlbnRQSVIpIHsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgY3VycmVudFBJUiA9IG5ldyBQcm90b0lSKFByb3RvSVIuUkVTUE9OU0VfVFlQRSk7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKG1vdXNlRG93bkV2ZW50KTsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICBwcm90b0lScy5wdXNoKGN1cnJlbnRQSVIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbW91c2VEb3duRXZlbnQgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICBtb3ZlQ291bnQgPSAwOworICAgICAgICAgICAgY3VycmVudFBJUiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIGlmIChtb3VzZURvd25FdmVudCkgeworICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5JR05PUkVEX1RZUEUpOworICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChtb3VzZURvd25FdmVudCk7CisgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICB9CisgICAgICByZXR1cm4gcHJvdG9JUnM7CisgICAgfSwKKworICAgIC8vIFNvbGl0YXJ5IFRhcCBldmVudHMgYXJlIHNpbXBsZSBSZXNwb25zZXM6CisgICAgLy8KKyAgICAvLyBSUlIKKyAgICAvLyBUVFQKKyAgICAvLworICAgIC8vIFRhcERvd25zIGFyZSBwYXJ0IG9mIFJlc3BvbnNlcy4KKyAgICAvLworICAgIC8vIFJSUlJSUlIKKyAgICAvLyBEREQgVFRUCisgICAgLy8KKyAgICAvLyBUYXBDYW5jZWxzIGFyZSBwYXJ0IG9mIFJlc3BvbnNlcywgd2hpY2ggc2VlbXMgc3RyYW5nZS4gVGhleSBhbHdheXMgZ28KKyAgICAvLyB3aXRoIHNjcm9sbHMsIHNvIHRoZXknbGwgcHJvYmFibHkgYmUgbWVyZ2VkIHdpdGggc2Nyb2xsIFJlc3BvbnNlcy4KKyAgICAvLyBUYXBDYW5jZWxzIGNhbiB0YWtlIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIHRpbWUgYW5kIGFjY291bnQgZm9yIGEKKyAgICAvLyBzaWduaWZpY2FudCBhbW91bnQgb2Ygd29yaywgd2hpY2ggc2hvdWxkIGJlIGdyb3VwZWQgd2l0aCB0aGUgc2Nyb2xsIElScworICAgIC8vIGlmIHBvc3NpYmxlLgorICAgIC8vCisgICAgLy8gUlJSUlJSUgorICAgIC8vIERERCBDQ0MKKyAgICAvLworICAgIGhhbmRsZVRhcFJlc3BvbnNlRXZlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBwcm90b0lScyA9IFtdOworICAgICAgdmFyIGN1cnJlbnRQSVIgPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmdldFNvcnRlZElucHV0RXZlbnRzKFRBUF9UWVBFX05BTUVTKS5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZU5hbWUpIHsKKyAgICAgICAgICBjYXNlIElOUFVUX1RZUEUuVEFQX0RPV046CisgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5SRVNQT05TRV9UWVBFKTsKKyAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgSU5QVVRfVFlQRS5UQVA6CisgICAgICAgICAgICBpZiAoY3VycmVudFBJUikgeworICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAvLyBTb21ldGltZXMgd2UgZ2V0IFRhcCBldmVudHMgd2l0aCBubyBUYXBEb3duLCBzb21ldGltZXMgd2UgZ2V0CisgICAgICAgICAgICAgIC8vIFRhcERvd24gZXZlbnRzLiBIYW5kbGUgYm90aC4KKyAgICAgICAgICAgICAgY3VycmVudFBJUiA9IG5ldyBQcm90b0lSKFByb3RvSVIuUkVTUE9OU0VfVFlQRSk7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgcHJvdG9JUnMucHVzaChjdXJyZW50UElSKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRQSVIgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgSU5QVVRfVFlQRS5UQVBfQ0FOQ0VMOgorICAgICAgICAgICAgaWYgKCFjdXJyZW50UElSKSB7CisgICAgICAgICAgICAgIHZhciBwaXIgPSBuZXcgUHJvdG9JUihQcm90b0lSLklHTk9SRURfVFlQRSk7CisgICAgICAgICAgICAgIHBpci5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICBwcm90b0lScy5wdXNoKHBpcik7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY3VycmVudFBJUi5pc05lYXIoZXZlbnQsIElOUFVUX01FUkdFX1RIUkVTSE9MRF9NUykpIHsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgY3VycmVudFBJUiA9IG5ldyBQcm90b0lSKFByb3RvSVIuUkVTUE9OU0VfVFlQRSk7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgcHJvdG9JUnMucHVzaChjdXJyZW50UElSKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRQSVIgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgICByZXR1cm4gcHJvdG9JUnM7CisgICAgfSwKKworICAgIC8vIFRoZSBQaW5jaEJlZ2luIGFuZCB0aGUgZmlyc3QgUGluY2hVcGRhdGUgY29tcHJpc2UgYSBSZXNwb25zZSwgdGhlbiB0aGUKKyAgICAvLyByZXN0IG9mIHRoZSBQaW5jaFVwZGF0ZXMgY29tcHJpc2UgYW4gQW5pbWF0aW9uLgorICAgIC8vCisgICAgLy8gUlJSUlJSUkFBQUFBQUFBQUFBQUFBQUFBQUFBCisgICAgLy8gQkJCIFVVVSBVVVUgVVVVIFVVVSBVVVUgRUVFCisgICAgLy8KKyAgICBoYW5kbGVQaW5jaEV2ZW50czogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcHJvdG9JUnMgPSBbXTsKKyAgICAgIHZhciBjdXJyZW50UElSID0gdW5kZWZpbmVkOworICAgICAgdmFyIHNhd0ZpcnN0VXBkYXRlID0gZmFsc2U7CisgICAgICB2YXIgbW9kZWxCb3VuZHMgPSB0aGlzLm1vZGVsLmJvdW5kczsKKyAgICAgIHRoaXMuZ2V0U29ydGVkSW5wdXRFdmVudHMoUElOQ0hfVFlQRV9OQU1FUykuZm9yRWFjaChmdW5jdGlvbihldmVudCkgeworICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGVOYW1lKSB7CisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLlBJTkNIX0JFR0lOOgorICAgICAgICAgICAgaWYgKGN1cnJlbnRQSVIgJiYKKyAgICAgICAgICAgICAgICBjdXJyZW50UElSLmlzTmVhcihldmVudCwgSU5QVVRfTUVSR0VfVEhSRVNIT0xEX01TKSkgeworICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFBJUiA9IG5ldyBQcm90b0lSKFByb3RvSVIuUkVTUE9OU0VfVFlQRSk7CisgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICBwcm90b0lScy5wdXNoKGN1cnJlbnRQSVIpOworICAgICAgICAgICAgc2F3Rmlyc3RVcGRhdGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLlBJTkNIX1VQREFURToKKyAgICAgICAgICAgIC8vIExpa2UgU2Nyb2xsVXBkYXRlcywgdGhlIEJlZ2luIGFuZCB0aGUgZmlyc3QgVXBkYXRlIGNvbnN0aXR1dGUgYQorICAgICAgICAgICAgLy8gUmVzcG9uc2UsIHRoZW4gdGhlIHJlc3Qgb2YgdGhlIFVwZGF0ZXMgY29uc3RpdHV0ZSBhbiBBbmltYXRpb24KKyAgICAgICAgICAgIC8vIHRoYXQgYmVnaW5zIHdoZW4gdGhlIFJlc3BvbnNlIGVuZHMuIElmIHRoZSB1c2VyIHBhdXNlcyBpbiB0aGUKKyAgICAgICAgICAgIC8vIG1pZGRsZSBvZiBhbiBleHRlbmRlZCBwaW5jaCBnZXN0dXJlLCB0aGVuIG11bHRpcGxlIEFuaW1hdGlvbnMKKyAgICAgICAgICAgIC8vIHdpbGwgYmUgY3JlYXRlZC4KKyAgICAgICAgICAgIGlmICghY3VycmVudFBJUiB8fAorICAgICAgICAgICAgICAgICgoY3VycmVudFBJUi5pclR5cGUgPT09IFByb3RvSVIuUkVTUE9OU0VfVFlQRSkgJiYKKyAgICAgICAgICAgICAgICAgc2F3Rmlyc3RVcGRhdGUpIHx8CisgICAgICAgICAgICAgICAgIWN1cnJlbnRQSVIuaXNOZWFyKGV2ZW50LCBJTlBVVF9NRVJHRV9USFJFU0hPTERfTVMpKSB7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIgPSBuZXcgUHJvdG9JUihQcm90b0lSLkFOSU1BVElPTl9UWVBFKTsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICBwcm90b0lScy5wdXNoKGN1cnJlbnRQSVIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICBzYXdGaXJzdFVwZGF0ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgSU5QVVRfVFlQRS5QSU5DSF9FTkQ6CisgICAgICAgICAgICBpZiAoY3VycmVudFBJUikgeworICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB2YXIgcGlyID0gbmV3IFByb3RvSVIoUHJvdG9JUi5JR05PUkVEX1RZUEUpOworICAgICAgICAgICAgICBwaXIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgcHJvdG9JUnMucHVzaChwaXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFBJUiA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIHJldHVybiBwcm90b0lSczsKKyAgICB9LAorCisgICAgLy8gRmxpbmdzIGFyZSBkZWZpbmVkIGJ5IDMgdHlwZXMgb2YgZXZlbnRzOiBGbGluZ1N0YXJ0LCBGbGluZ0NhbmNlbCwgYW5kIHRoZQorICAgIC8vIHJlbmRlcmVyIGZsaW5nIGV2ZW50LiBGbGluZ3MgZG8gbm90IGJlZ2luIHdpdGggYSBSZXNwb25zZS4gRmxpbmdzIGVuZAorICAgIC8vIGVpdGhlciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgRmxpbmdDYW5jZWwsIG9yIGF0IHRoZSBlbmQgb2YgdGhlIHJlbmRlcmVyCisgICAgLy8gZmxpbmcgZXZlbnQuCisgICAgLy8KKyAgICAvLyBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQorICAgIC8vIFNTUworICAgIC8vICAgICBSUlJSUlJSUlJSUlJSUlJSUlJSUlJSCisgICAgLy8KKyAgICAvLworICAgIC8vIEFBQUFBQUFBQUFBCisgICAgLy8gU1NTICAgICAgICBDQ0MKKyAgICAvLworICAgIGhhbmRsZUZsaW5nRXZlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBwcm90b0lScyA9IFtdOworICAgICAgdmFyIGN1cnJlbnRQSVIgPSB1bmRlZmluZWQ7CisgICAgICB2YXIgZmxpbmdFdmVudHMgPSB0aGlzLmdldFNvcnRlZElucHV0RXZlbnRzKEZMSU5HX1RZUEVfTkFNRVMpOworCisgICAgICBmdW5jdGlvbiBpc1JlbmRlcmVyRmxpbmcoZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuIGV2ZW50LnRpdGxlID09PSBSRU5ERVJFUl9GTElOR19USVRMRTsKKyAgICAgIH0KKyAgICAgIHZhciBicm93c2VySGVscGVyID0gdGhpcy5tb2RlbEhlbHBlci5icm93c2VySGVscGVyOworICAgICAgZmxpbmdFdmVudHMucHVzaC5hcHBseShmbGluZ0V2ZW50cywKKyAgICAgICAgICBicm93c2VySGVscGVyLmdldEFsbEFzeW5jU2xpY2VzTWF0Y2hpbmcoaXNSZW5kZXJlckZsaW5nKSk7CisKKyAgICAgIGZsaW5nRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50LnRpdGxlID09PSBSRU5ERVJFUl9GTElOR19USVRMRSkgeworICAgICAgICAgIGlmIChjdXJyZW50UElSKSB7CisgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGN1cnJlbnRQSVIgPSBuZXcgUHJvdG9JUihQcm90b0lSLkFOSU1BVElPTl9UWVBFKTsKKyAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZU5hbWUpIHsKKyAgICAgICAgICBjYXNlIElOUFVUX1RZUEUuRkxJTkdfU1RBUlQ6CisgICAgICAgICAgICBpZiAoY3VycmVudFBJUikgeworICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdBbm90aGVyIEZsaW5nU3RhcnQ/IEZpbGUgYSBidWcgd2l0aCB0aGlzIHRyYWNlIScpOworICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5BTklNQVRJT05fVFlQRSk7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgLy8gU2V0IGVuZCB0byBhbiBpbnZhbGlkIHZhbHVlIHNvIHRoYXQgaXQgY2FuIGJlIG5vdGljZWQgYW5kIGZpeGVkCisgICAgICAgICAgICAgIC8vIGxhdGVyLgorICAgICAgICAgICAgICBjdXJyZW50UElSLmVuZCA9IDA7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgSU5QVVRfVFlQRS5GTElOR19DQU5DRUw6CisgICAgICAgICAgICBpZiAoY3VycmVudFBJUikgeworICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIC8vIEZsaW5nQ2FuY2VsIGV2ZW50cyBzdGFydCB3aGVuIFRvdWNoU3RhcnQgZXZlbnRzIHN0YXJ0LCB3aGljaCBpcworICAgICAgICAgICAgICAvLyB0eXBpY2FsbHkgd2hlbiBhIFJlc3BvbnNlIHN0YXJ0cy4gRmxpbmdDYW5jZWwgZXZlbnRzIGVuZCB3aGVuCisgICAgICAgICAgICAgIC8vIGNocm9tZSBhY2tub3dsZWRnZXMgdGhlbSwgbm90IHdoZW4gdGhleSB1cGRhdGUgdGhlIHNjcmVlbi4gU28KKyAgICAgICAgICAgICAgLy8gdGhlcmUgbWlnaHQgYmUgb25lIG1vcmUgZnJhbWUgZHVyaW5nIHRoZSBGbGluZ0NhbmNlbCwgYWZ0ZXIKKyAgICAgICAgICAgICAgLy8gdGhpcyBBbmltYXRpb24gZW5kcy4gVGhhdCB3b24ndCBhZmZlY3QgdGhlIHNjb3JpbmcgYWxnb3JpdGhtcywKKyAgICAgICAgICAgICAgLy8gYW5kIGl0IHdpbGwgbWFrZSB0aGUgSVJzIGxvb2sgbW9yZSBjb3JyZWN0IGlmIHRoZXkgZG9uJ3QKKyAgICAgICAgICAgICAgLy8gb3ZlcmxhcCB1bm5lY2Vzc2FyaWx5LgorICAgICAgICAgICAgICBjdXJyZW50UElSLmVuZCA9IGV2ZW50LnN0YXJ0OworICAgICAgICAgICAgICBjdXJyZW50UElSID0gdW5kZWZpbmVkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdmFyIHBpciA9IG5ldyBQcm90b0lSKFByb3RvSVIuSUdOT1JFRF9UWVBFKTsKKyAgICAgICAgICAgICAgcGlyLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2gocGlyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIC8vIElmIHRoZXJlIHdhcyBuZWl0aGVyIGEgRkxJTkdfQ0FOQ0VMIG5vciBhIHJlbmRlcmVyIGZsaW5nIGFmdGVyIHRoZQorICAgICAgLy8gRkxJTkdfU1RBUlQsIHRoZW4gYXNzdW1lIHRoYXQgaXQgZW5kcyBhdCB0aGUgZW5kIG9mIHRoZSBtb2RlbCwgc28gc2V0CisgICAgICAvLyB0aGUgZW5kIG9mIGN1cnJlbnRQSVIgdG8gdGhlIGVuZCBvZiB0aGUgbW9kZWwuCisgICAgICBpZiAoY3VycmVudFBJUiAmJiAhY3VycmVudFBJUi5lbmQpCisgICAgICAgIGN1cnJlbnRQSVIuZW5kID0gdGhpcy5tb2RlbC5ib3VuZHMubWF4OworICAgICAgcmV0dXJuIHByb3RvSVJzOworICAgIH0sCisKKyAgICAvLyBUaGUgVG91Y2hTdGFydCBhbmQgdGhlIGZpcnN0IFRvdWNoTW92ZSBjb21wcmlzZSBhIFJlc3BvbnNlLCB0aGVuIHRoZQorICAgIC8vIHJlc3Qgb2YgdGhlIFRvdWNoTW92ZXMgY29tcHJpc2UgYW4gQW5pbWF0aW9uLgorICAgIC8vCisgICAgLy8gUlJSUlJSUkFBQUFBQUFBQUFBQUFBQUFBQUFBCisgICAgLy8gU1NTIE1NTSBNTU0gTU1NIE1NTSBNTU0gRUVFCisgICAgLy8KKyAgICAvLyBJZiB0aGVyZSBhcmUgbm8gVG91Y2hNb3ZlIGV2ZW50cyBpbiBiZXR3ZWVuIGEgVG91Y2hTdGFydCBhbmQgYSBUb3VjaEVuZCwKKyAgICAvLyB0aGVuIGl0J3MganVzdCBhIFJlc3BvbnNlLgorICAgIC8vCisgICAgLy8gUlJSUlJSUgorICAgIC8vIFNTUyBFRUUKKyAgICAvLworICAgIGhhbmRsZVRvdWNoRXZlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBwcm90b0lScyA9IFtdOworICAgICAgdmFyIGN1cnJlbnRQSVIgPSB1bmRlZmluZWQ7CisgICAgICB2YXIgc2F3Rmlyc3RNb3ZlID0gZmFsc2U7CisgICAgICB0aGlzLmdldFNvcnRlZElucHV0RXZlbnRzKFRPVUNIX1RZUEVfTkFNRVMpLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgc3dpdGNoIChldmVudC50eXBlTmFtZSkgeworICAgICAgICAgIGNhc2UgSU5QVVRfVFlQRS5UT1VDSF9TVEFSVDoKKyAgICAgICAgICAgIGlmIChjdXJyZW50UElSKSB7CisgICAgICAgICAgICAgIC8vIE5COiBjdXJyZW50UElSIHdpbGwgcHJvYmFibHkgYmUgbWVyZ2VkIHdpdGggc29tZXRoaW5nIGZyb20KKyAgICAgICAgICAgICAgLy8gaGFuZGxlUGluY2hFdmVudHMoKS4gTXVsdGlwbGUgVG91Y2hTdGFydCBldmVudHMgd2l0aG91dCBhbgorICAgICAgICAgICAgICAvLyBpbnRlcnZlbmluZyBUb3VjaEVuZCBsb2dpY2FsbHkgaW1wbGllcyB0aGF0IG11bHRpcGxlIGZpbmdlcnMKKyAgICAgICAgICAgICAgLy8gYXJlIG9uIHRoZSBzY3JlZW4sIHNvIHRoaXMgaXMgcHJvYmFibHkgYSBwaW5jaCBnZXN0dXJlLgorICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5SRVNQT05TRV9UWVBFKTsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICBwcm90b0lScy5wdXNoKGN1cnJlbnRQSVIpOworICAgICAgICAgICAgICBzYXdGaXJzdE1vdmUgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLlRPVUNIX01PVkU6CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRQSVIpIHsKKyAgICAgICAgICAgICAgY3VycmVudFBJUiA9IG5ldyBQcm90b0lSKFByb3RvSVIuQU5JTUFUSU9OX1RZUEUpOworICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBMaWtlIFNjcm9sbHMgYW5kIFBpbmNoZXMsIHRoZSBSZXNwb25zZSBpcyBkZWZpbmVkIHRvIGJlIHRoZQorICAgICAgICAgICAgLy8gVG91Y2hTdGFydCBwbHVzIHRoZSBmaXJzdCBUb3VjaE1vdmUsIHRoZW4gdGhlIHJlc3Qgb2YgdGhlCisgICAgICAgICAgICAvLyBUb3VjaE1vdmVzIGNvbnN0aXR1dGUgYW4gQW5pbWF0aW9uLgorICAgICAgICAgICAgaWYgKChzYXdGaXJzdE1vdmUgJiYKKyAgICAgICAgICAgICAgICAoY3VycmVudFBJUi5pclR5cGUgPT09IFByb3RvSVIuUkVTUE9OU0VfVFlQRSkpIHx8CisgICAgICAgICAgICAgICAgIWN1cnJlbnRQSVIuaXNOZWFyKGV2ZW50LCBJTlBVVF9NRVJHRV9USFJFU0hPTERfTVMpKSB7CisgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3MgYWxyZWFkeSBhIHRvdWNobW92ZSBpbiB0aGUgY3VycmVudFBJUiBvciBpdCdzIG5vdAorICAgICAgICAgICAgICAvLyBuZWFyIGV2ZW50LCB0aGVuIGZpbmlzaCBpdCBhbmQgc3RhcnQgYSBuZXcgYW5pbWF0aW9uLgorICAgICAgICAgICAgICB2YXIgcHJldkVuZCA9IGN1cnJlbnRQSVIuZW5kOworICAgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5BTklNQVRJT05fVFlQRSk7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSBmb3IgdGhlcmUgdG8gYmUgYSBnYXAgYmV0d2VlbiBUb3VjaE1vdmVzLCBidXQKKyAgICAgICAgICAgICAgLy8gdGhhdCBkb2Vzbid0IG1lYW4gdGhhdCB0aGVyZSBzaG91bGQgYmUgYW4gSWRsZSBJUiB0aGVyZS4KKyAgICAgICAgICAgICAgY3VycmVudFBJUi5zdGFydCA9IHByZXZFbmQ7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIHNhd0ZpcnN0TW92ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgSU5QVVRfVFlQRS5UT1VDSF9FTkQ6CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRQSVIpIHsKKyAgICAgICAgICAgICAgdmFyIHBpciA9IG5ldyBQcm90b0lSKFByb3RvSVIuSUdOT1JFRF9UWVBFKTsKKyAgICAgICAgICAgICAgcGlyLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2gocGlyKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VycmVudFBJUi5pc05lYXIoZXZlbnQsIElOUFVUX01FUkdFX1RIUkVTSE9MRF9NUykpIHsKKyAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdmFyIHBpciA9IG5ldyBQcm90b0lSKFByb3RvSVIuSUdOT1JFRF9UWVBFKTsKKyAgICAgICAgICAgICAgcGlyLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2gocGlyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRQSVIgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgICByZXR1cm4gcHJvdG9JUnM7CisgICAgfSwKKworICAgIC8vIFRoZSBmaXJzdCBTY3JvbGxCZWdpbiBhbmQgdGhlIGZpcnN0IFNjcm9sbFVwZGF0ZSBjb21wcmlzZSBhIFJlc3BvbnNlLAorICAgIC8vIHRoZW4gdGhlIHJlc3QgY29tcHJpc2UgYW4gQW5pbWF0aW9uLgorICAgIC8vCisgICAgLy8gUlJSUlJSUkFBQUFBQUFBQUFBQUFBQUFBQUFBCisgICAgLy8gQkJCIFVVVSBVVVUgVVVVIFVVVSBVVVUgRUVFCisgICAgLy8KKyAgICBoYW5kbGVTY3JvbGxFdmVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHByb3RvSVJzID0gW107CisgICAgICB2YXIgY3VycmVudFBJUiA9IHVuZGVmaW5lZDsKKyAgICAgIHZhciBzYXdGaXJzdFVwZGF0ZSA9IGZhbHNlOworICAgICAgdGhpcy5nZXRTb3J0ZWRJbnB1dEV2ZW50cyhTQ1JPTExfVFlQRV9OQU1FUykuZm9yRWFjaChmdW5jdGlvbihldmVudCkgeworICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGVOYW1lKSB7CisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLlNDUk9MTF9CRUdJTjoKKyAgICAgICAgICAgIC8vIEFsd2F5cyBiZWdpbiBhIG5ldyBQSVIgZXZlbiBpZiB0aGVyZSBhbHJlYWR5IGlzIG9uZSwgdW5saWtlCisgICAgICAgICAgICAvLyBQaW5jaEJlZ2luLgorICAgICAgICAgICAgY3VycmVudFBJUiA9IG5ldyBQcm90b0lSKFByb3RvSVIuUkVTUE9OU0VfVFlQRSk7CisgICAgICAgICAgICBjdXJyZW50UElSLnB1c2hFdmVudChldmVudCk7CisgICAgICAgICAgICBwcm90b0lScy5wdXNoKGN1cnJlbnRQSVIpOworICAgICAgICAgICAgc2F3Rmlyc3RVcGRhdGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLlNDUk9MTF9VUERBVEU6CisgICAgICAgICAgICBpZiAoY3VycmVudFBJUikgeworICAgICAgICAgICAgICBpZiAoY3VycmVudFBJUi5pc05lYXIoZXZlbnQsIElOUFVUX01FUkdFX1RIUkVTSE9MRF9NUykgJiYKKyAgICAgICAgICAgICAgICAgICgoY3VycmVudFBJUi5pclR5cGUgPT09IFByb3RvSVIuQU5JTUFUSU9OX1RZUEUpIHx8CisgICAgICAgICAgICAgICAgICAhc2F3Rmlyc3RVcGRhdGUpKSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICAgIHNhd0ZpcnN0VXBkYXRlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5BTklNQVRJT05fVFlQRSk7CisgICAgICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICAgIHByb3RvSVJzLnB1c2goY3VycmVudFBJUik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIC8vIFNjcm9sbFVwZGF0ZSB3aXRob3V0IFNjcm9sbEJlZ2luLgorICAgICAgICAgICAgICBjdXJyZW50UElSID0gbmV3IFByb3RvSVIoUHJvdG9JUi5BTklNQVRJT05fVFlQRSk7CisgICAgICAgICAgICAgIGN1cnJlbnRQSVIucHVzaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgICAgcHJvdG9JUnMucHVzaChjdXJyZW50UElSKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBJTlBVVF9UWVBFLlNDUk9MTF9FTkQ6CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRQSVIpIHsKKyAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignU2Nyb2xsRW5kIHdpdGhvdXQgU2Nyb2xsVXBkYXRlPyAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlsZSBhIGJ1ZyB3aXRoIHRoaXMgdHJhY2UhJyk7CisgICAgICAgICAgICAgIHZhciBwaXIgPSBuZXcgUHJvdG9JUihQcm90b0lSLklHTk9SRURfVFlQRSk7CisgICAgICAgICAgICAgIHBpci5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICBwcm90b0lScy5wdXNoKHBpcik7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFBJUi5wdXNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgICAgcmV0dXJuIHByb3RvSVJzOworICAgIH0sCisKKyAgICAvLyBDU1MgQW5pbWF0aW9ucyBhcmUgbWVyZ2VkIGludG8gQW5pbWF0aW9ucyB3aGVuIHRoZXkgaW50ZXJzZWN0LgorICAgIGhhbmRsZUNTU0FuaW1hdGlvbnM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGFuaW1hdGlvbkV2ZW50cyA9IHRoaXMubW9kZWxIZWxwZXIuYnJvd3NlckhlbHBlci4KKyAgICAgICAgICBnZXRBbGxBc3luY1NsaWNlc01hdGNoaW5nKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICByZXR1cm4gZXZlbnQudGl0bGUgPT09ICdBbmltYXRpb24nOworICAgICAgfSk7CisKKyAgICAgIHZhciBhbmltYXRpb25SYW5nZXMgPSBbXTsKKyAgICAgIGFuaW1hdGlvbkV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFuaW1hdGlvblJhbmdlcy5wdXNoKHsKKyAgICAgICAgICBtaW46IGV2ZW50LnN0YXJ0LAorICAgICAgICAgIG1heDogZXZlbnQuZW5kLAorICAgICAgICAgIGV2ZW50OiBldmVudAorICAgICAgICB9KTsKKyAgICAgIH0pOworCisgICAgICBmdW5jdGlvbiBtZXJnZShyYW5nZXMpIHsKKyAgICAgICAgdmFyIHByb3RvSVIgPSBuZXcgUHJvdG9JUihQcm90b0lSLkFOSU1BVElPTl9UWVBFKTsKKyAgICAgICAgcmFuZ2VzLmZvckVhY2goZnVuY3Rpb24ocmFuZ2UpIHsKKyAgICAgICAgICBwcm90b0lSLnB1c2hFdmVudChyYW5nZS5ldmVudCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gcHJvdG9JUjsKKyAgICAgIH0KKworICAgICAgcmV0dXJuIHRyLmIubWVyZ2VSYW5nZXMoYW5pbWF0aW9uUmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5JTUFUSU9OX01FUkdFX1RIUkVTSE9MRF9NUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlKTsKKyAgICB9LAorCisgICAgcG9zdFByb2Nlc3NQcm90b0lSczogZnVuY3Rpb24ocHJvdG9JUnMpIHsKKyAgICAgIC8vIHByb3RvSVJzIGlzIGlucHV0IG9ubHkuIFJldHVybnMgYSBtb2RpZmllZCBzZXQgb2YgUHJvdG9JUnMuCisgICAgICAvLyBUaGUgb3JkZXIgaXMgaW1wb3J0YW50LgorICAgICAgcHJvdG9JUnMgPSB0aGlzLm1lcmdlSW50ZXJzZWN0aW5nUmVzcG9uc2VzKHByb3RvSVJzKTsKKyAgICAgIHByb3RvSVJzID0gdGhpcy5tZXJnZUludGVyc2VjdGluZ0FuaW1hdGlvbnMocHJvdG9JUnMpOworICAgICAgcHJvdG9JUnMgPSB0aGlzLmZpeFJlc3BvbnNlQW5pbWF0aW9uU3RhcnRzKHByb3RvSVJzKTsKKyAgICAgIHJldHVybiBwcm90b0lSczsKKyAgICB9LAorCisgICAgLy8gVG91Y2hTdGFydHMgaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUgYXMgU2Nyb2xsQmVnaW5zLgorICAgIC8vIEl0J3MgZWFzaWVyIHRvIGxldCBtdWx0aXBsZSBoYW5kbGVycyBjcmVhdGUgbXVsdGlwbGUgb3ZlcmxhcHBpbmcKKyAgICAvLyBSZXNwb25zZXMgYW5kIHRoZW4gbWVyZ2UgdGhlbSwgcmF0aGVyIHRoYW4gbWFrZSB0aGUgaGFuZGxlcnMgYXdhcmUgb2YgdGhlCisgICAgLy8gb3RoZXIgaGFuZGxlcnMnIFBJUnMuCisgICAgLy8KKyAgICAvLyBGb3IgZXhhbXBsZToKKyAgICAvLyBSUgorICAgIC8vICBSUlIgIC0+IFJSUlJSCisgICAgLy8gICAgUlIKKyAgICAvLworICAgIC8vIHByb3RvSVJzIGlzIGlucHV0IG9ubHkuCisgICAgLy8gUmV0dXJucyBhIG1vZGlmaWVkIHNldCBvZiBQcm90b0lScy4KKyAgICBtZXJnZUludGVyc2VjdGluZ1Jlc3BvbnNlczogZnVuY3Rpb24ocHJvdG9JUnMpIHsKKyAgICAgIHZhciBuZXdQSVJzID0gW107CisgICAgICB3aGlsZSAocHJvdG9JUnMubGVuZ3RoKSB7CisgICAgICAgIHZhciBwaXIgPSBwcm90b0lScy5zaGlmdCgpOworICAgICAgICBuZXdQSVJzLnB1c2gocGlyKTsKKworICAgICAgICAvLyBPbmx5IGNvbnNpZGVyIFJlc3BvbnNlcyBmb3Igbm93LgorICAgICAgICBpZiAocGlyLmlyVHlwZSAhPT0gUHJvdG9JUi5SRVNQT05TRV9UWVBFKQorICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvdG9JUnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICB2YXIgb3RoZXJQSVIgPSBwcm90b0lSc1tpXTsKKworICAgICAgICAgIGlmIChvdGhlclBJUi5pclR5cGUgIT09IHBpci5pclR5cGUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIGlmICghb3RoZXJQSVIuaW50ZXJzZWN0cyhwaXIpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAvLyBEb24ndCBtZXJnZSB0b2dldGhlciBSZXNwb25zZXMgb2YgdGhlIHNhbWUgdHlwZS4KKyAgICAgICAgICAvLyBJZiBoYW5kbGVUb3VjaEV2ZW50cyB3YW50ZWQgdHdvIG9mIGl0cyBSZXNwb25zZXMgdG8gYmUgbWVyZ2VkLCB0aGVuCisgICAgICAgICAgLy8gaXQgd291bGQgaGF2ZSBtYWRlIHRoZW0gdGhhdCB3YXkgdG8gYmVnaW4gd2l0aC4KKyAgICAgICAgICB2YXIgdHlwZU5hbWVzID0gcGlyLmFzc29jaWF0ZWRFdmVudHMubWFwKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICByZXR1cm4gZXZlbnQudHlwZU5hbWU7CisgICAgICAgICAgfSk7CisgICAgICAgICAgaWYgKG90aGVyUElSLmNvbnRhaW5zVHlwZU5hbWVzKHR5cGVOYW1lcykpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIHBpci5tZXJnZShvdGhlclBJUik7CisgICAgICAgICAgcHJvdG9JUnMuc3BsaWNlKGksIDEpOworICAgICAgICAgIC8vIERvbid0IHNraXAgdGhlIG5leHQgb3RoZXJQSVIhCisgICAgICAgICAgLS1pOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gbmV3UElSczsKKyAgICB9LAorCisgICAgLy8gQW4gYW5pbWF0aW9uIGlzIHNpbXBseSBhbiBleHBlY3RhdGlvbiBvZiA2MGZwcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQuCisgICAgLy8gSWYgdHdvIGFuaW1hdGlvbnMgb3ZlcmxhcCwgdGhlbiBtZXJnZSB0aGVtLgorICAgIC8vCisgICAgLy8gRm9yIGV4YW1wbGU6CisgICAgLy8gQUEKKyAgICAvLyAgQUFBICAtPiBBQUFBQQorICAgIC8vICAgIEFBCisgICAgLy8KKyAgICAvLyBwcm90b0lScyBpcyBpbnB1dCBvbmx5LgorICAgIC8vIFJldHVybnMgYSBtb2RpZmllZCBzZXQgb2YgUHJvdG9JUnMuCisgICAgbWVyZ2VJbnRlcnNlY3RpbmdBbmltYXRpb25zOiBmdW5jdGlvbihwcm90b0lScykgeworICAgICAgdmFyIG5ld1BJUnMgPSBbXTsKKyAgICAgIHdoaWxlIChwcm90b0lScy5sZW5ndGgpIHsKKyAgICAgICAgdmFyIHBpciA9IHByb3RvSVJzLnNoaWZ0KCk7CisgICAgICAgIG5ld1BJUnMucHVzaChwaXIpOworCisgICAgICAgIC8vIE9ubHkgY29uc2lkZXIgQW5pbWF0aW9ucyBmb3Igbm93LgorICAgICAgICBpZiAocGlyLmlyVHlwZSAhPT0gUHJvdG9JUi5BTklNQVRJT05fVFlQRSkKKyAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3RvSVJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgdmFyIG90aGVyUElSID0gcHJvdG9JUnNbaV07CisKKyAgICAgICAgICBpZiAob3RoZXJQSVIuaXJUeXBlICE9PSBwaXIuaXJUeXBlKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICBpZiAoIW90aGVyUElSLmludGVyc2VjdHMocGlyKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgcGlyLm1lcmdlKG90aGVyUElSKTsKKyAgICAgICAgICBwcm90b0lScy5zcGxpY2UoaSwgMSk7CisgICAgICAgICAgLy8gRG9uJ3Qgc2tpcCB0aGUgbmV4dCBvdGhlclBJUiEKKyAgICAgICAgICAtLWk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHJldHVybiBuZXdQSVJzOworICAgIH0sCisKKyAgICAvLyBUaGUgZW5kcyBvZiByZXNwb25zZXMgZnJlcXVlbnRseSBvdmVybGFwIHRoZSBzdGFydHMgb2YgYW5pbWF0aW9ucy4KKyAgICAvLyBGaXggdGhlIGFuaW1hdGlvbnMgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGF0IHRoZSB1c2VyIGNhbiBvbmx5IHN0YXJ0IHRvCisgICAgLy8gZXhwZWN0IDYwZnBzIGFmdGVyIHRoZSByZXNwb25zZS4KKyAgICAvLworICAgIC8vIEZvciBleGFtcGxlOgorICAgIC8vIFJSUiAgIC0+IFJSUkFBCisgICAgLy8gIEFBQUEKKyAgICAvLworICAgIC8vIHByb3RvSVJzIGlzIGlucHV0IG9ubHkuCisgICAgLy8gUmV0dXJucyBhIG1vZGlmaWVkIHNldCBvZiBQcm90b0lScy4KKyAgICBmaXhSZXNwb25zZUFuaW1hdGlvblN0YXJ0czogZnVuY3Rpb24ocHJvdG9JUnMpIHsKKyAgICAgIHByb3RvSVJzLmZvckVhY2goZnVuY3Rpb24oYXBpcikgeworICAgICAgICAvLyBPbmx5IGNvbnNpZGVyIGFuaW1hdGlvbnMgZm9yIG5vdy4KKyAgICAgICAgaWYgKGFwaXIuaXJUeXBlICE9PSBQcm90b0lSLkFOSU1BVElPTl9UWVBFKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBwcm90b0lScy5mb3JFYWNoKGZ1bmN0aW9uKHJwaXIpIHsKKyAgICAgICAgICAvLyBPbmx5IGNvbnNpZGVyIHJlc3BvbnNlcyBmb3Igbm93LgorICAgICAgICAgIGlmIChycGlyLmlyVHlwZSAhPT0gUHJvdG9JUi5SRVNQT05TRV9UWVBFKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgLy8gT25seSBjb25zaWRlciByZXNwb25zZXMgdGhhdCBlbmQgZHVyaW5nIHRoZSBhbmltYXRpb24uCisgICAgICAgICAgaWYgKCFhcGlyLmNvbnRhaW5zVGltZXN0YW1wSW5jbHVzaXZlKHJwaXIuZW5kKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIC8vIElnbm9yZSBSZXNwb25zZXMgdGhhdCBhcmUgZW50aXJlbHkgY29udGFpbmVkIGJ5IHRoZSBhbmltYXRpb24uCisgICAgICAgICAgaWYgKGFwaXIuY29udGFpbnNUaW1lc3RhbXBJbmNsdXNpdmUocnBpci5zdGFydCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAvLyBNb3ZlIHRoZSBhbmltYXRpb24gc3RhcnQgdG8gdGhlIHJlc3BvbnNlIGVuZC4KKyAgICAgICAgICBhcGlyLnN0YXJ0ID0gcnBpci5lbmQ7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgICByZXR1cm4gcHJvdG9JUnM7CisgICAgfSwKKworICAgIC8vIENoZWNrIHRoYXQgbm9uZSBvZiB0aGUgaGFuZGxlcnMgYWNjaWRlbnRhbGx5IGlnbm9yZWQgYW4gaW5wdXQgZXZlbnQuCisgICAgY2hlY2tBbGxJbnB1dEV2ZW50c0hhbmRsZWQ6IGZ1bmN0aW9uKHByb3RvSVJzKSB7CisgICAgICB2YXIgaGFuZGxlZEV2ZW50cyA9IFtdOworICAgICAgcHJvdG9JUnMuZm9yRWFjaChmdW5jdGlvbihwcm90b0lSKSB7CisgICAgICAgIHByb3RvSVIuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgaWYgKGhhbmRsZWRFdmVudHMuaW5kZXhPZihldmVudCkgPj0gMCkgeworICAgICAgICAgICAgY29uc29sZS5lcnJvcignZG91YmxlLWhhbmRsZWQgZXZlbnQnLCBldmVudC50eXBlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJzZUludChldmVudC5zdGFydCksIHBhcnNlSW50KGV2ZW50LmVuZCksIHByb3RvSVIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgICBoYW5kbGVkRXZlbnRzLnB1c2goZXZlbnQpOworICAgICAgICB9KTsKKyAgICAgIH0pOworCisgICAgICB0aGlzLmdldFNvcnRlZElucHV0RXZlbnRzKEFMTF9IQU5ETEVEX1RZUEVfTkFNRVMpLmZvckVhY2goCisgICAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgaWYgKGhhbmRsZWRFdmVudHMuaW5kZXhPZihldmVudCkgPCAwKSB7CisgICAgICAgICAgY29uc29sZS5lcnJvcignVU5IQU5ETEVEIElOUFVUIEVWRU5UIScsCisgICAgICAgICAgICAgIGV2ZW50LnR5cGVOYW1lLCBwYXJzZUludChldmVudC5zdGFydCksIHBhcnNlSW50KGV2ZW50LmVuZCkpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBSQUlMSVJGaW5kZXI6IFJBSUxJUkZpbmRlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcmFpbF9pcl9maW5kZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yYWlsX2lyX2ZpbmRlcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkxYTIwOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcmFpbF9pcl9maW5kZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsNTIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL2lyX3ZlcmlmaWVyX3Rlc3RfaGVscGVyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIElOUFVUX1RZUEUgPSB0ci5lLmNjLklOUFVUX0VWRU5UX1RZUEVfTkFNRVM7CisgIHZhciBhdWRpdHMgPSB0ci5lLmF1ZGl0czsKKyAgdmFyIElOUFVUX1RZUEUgPSB0ci5lLmNjLklOUFVUX0VWRU5UX1RZUEVfTkFNRVM7CisKKyAgdGVzdCgnZW1wdHknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmVyaWZpZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXJhaWwtaXItdmVyaWZpZXInKTsKKyAgICB2ZXJpZmllci5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gZnVuY3Rpb24obW9kZWwpIHsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ0ZsaW5nRmxpbmdGbGluZycsIGZ1bmN0aW9uKCkgeworICAgIC8vIFRoaXMgdHJhY2UgZ2F2ZSBtZSBzbyBtYW55IGRpZmZlcmVudCBraW5kcyBvZiB0cm91YmxlIHRoYXQgSSdtIGp1c3QgZ29pbmcKKyAgICAvLyB0byBjb3B5IGl0IHN0cmFpZ2h0IGluIGhlcmUsIHdpdGhvdXQgdHJ5aW5nIHRvIGNsYXJpZnkgaXQgYXQgYWxsLgorICAgIC8vIG1lYXN1cm10LXRyYWNlcy9tb2JpbGUvY25ldF9mbGluZ191cF9mbGluZ19kb3duX21vdG94XzIwMTMuanNvbgorICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZEZyYW1lRXZlbnQobW9kZWwsIHtzdGFydDogMCwgZW5kOiAxMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVE9VQ0hfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiA5MTksIGVuZDogOTk4fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5GTElOR19DQU5DRUwsCisgICAgICAgICAge3N0YXJ0OiA5MTksIGVuZDogMTAwMX0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVEFQX0RPV04sCisgICAgICAgICAge3N0YXJ0OiA5MTksIGVuZDogMTAwMX0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVEFQX0NBTkNFTCwKKyAgICAgICAgICB7c3RhcnQ6IDk3NCwgZW5kOiAxMDIwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5TQ1JPTExfQkVHSU4sCisgICAgICAgICAge3N0YXJ0OiA5NzQsIGVuZDogMTAyMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDk3NCwgZW5kOiAxMDQwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogOTc0LCBlbmQ6IDEwNTR9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX01PVkUsCisgICAgICAgICAge3N0YXJ0OiA5OTAsIGVuZDogMTAyMX0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDk5MCwgZW5kOiAxMDUyfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogMTAwNiwgZW5kOiAxMDIxfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogMTAyMiwgZW5kOiAxMDM2fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5TQ1JPTExfVVBEQVRFLAorICAgICAgICAgIHtzdGFydDogMTAyMiwgZW5kOiAxMDUyfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogMTAzOCwgZW5kOiAxMDQ5fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5TQ1JPTExfVVBEQVRFLAorICAgICAgICAgIHtzdGFydDogMTAzOCwgZW5kOiAxMDY4fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9FTkQsCisgICAgICAgICAge3N0YXJ0OiAxMDQ2LCBlbmQ6IDEwNTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLkZMSU5HX1NUQVJULAorICAgICAgICAgIHtzdGFydDogMTA0NiwgZW5kOiAxMDc3fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9TVEFSVCwKKyAgICAgICAgICB7c3RhcnQ6IDE0MzIsIGVuZDogMjIzOH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuRkxJTkdfQ0FOQ0VMLAorICAgICAgICAgIHtzdGFydDogMTQzMiwgZW5kOiAyMjQxfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogMTUxNiwgZW5kOiAyNjA1fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5TQ1JPTExfQkVHSU4sCisgICAgICAgICAge3N0YXJ0OiAxNTMyLCBlbmQ6IDIyNzR9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAge3N0YXJ0OiAxNTMyLCBlbmQ6IDIyOTR9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAge3N0YXJ0OiAxNTQ5LCBlbmQ6IDIzMTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX0VORCwKKyAgICAgICAgICB7c3RhcnQ6IDE2MjcsIGVuZDogMjI3NX0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuRkxJTkdfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiAxNjI3LCBlbmQ6IDIzMTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRGcmFtZUV2ZW50KG1vZGVsLCB7c3RhcnQ6IDI5OTAsIGVuZDogMzAwMH0pOworICAgIH07CisgICAgdmVyaWZpZXIuZXhwZWN0ZWRJUnMgPSBbCisgICAgICB7dGl0bGU6ICdJZGxlJywgc3RhcnQ6IDAsIGVuZDogOTE5LCBldmVudENvdW50OiAwfSwKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDkxOSwgZW5kOiAxMDU0LCBldmVudENvdW50OiA2fSwKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAxMDU0LCBlbmQ6IDE0MzIsIGV2ZW50Q291bnQ6IDEwfSwKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDE0MzIsIGVuZDogMjYwNSwgZXZlbnRDb3VudDogNX0sCisgICAgICB7dGl0bGU6ICdBbmltYXRpb24nLCBzdGFydDogMjYwNSwgZW5kOiAzMDAwLCBldmVudENvdW50OiAyfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ2tleWJvYXJkRXZlbnRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZlcmlmaWVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLWlyLXZlcmlmaWVyJyk7CisgICAgdmVyaWZpZXIuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5LRVlfRE9XTl9SQVcsCisgICAgICAgICAge3N0YXJ0OiAwLCBlbmQ6IDQ1fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5DSEFSLAorICAgICAgICAgIHtzdGFydDogMTAsIGVuZDogNTB9KTsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgICAge3RpdGxlOiAnUmVzcG9uc2UnLCBzdGFydDogMCwgZW5kOiA1MCwgZXZlbnRDb3VudDogMn0KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKKworICB0ZXN0KCdtb3VzZVJlc3BvbnNlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuQ0xJQ0ssCisgICAgICAgICAge3N0YXJ0OiAwLCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuQ09OVEVYVF9NRU5VLAorICAgICAgICAgIHtzdGFydDogMjAwLCBlbmQ6IDMwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuTU9VU0VfV0hFRUwsCisgICAgICAgICAge3N0YXJ0OiA0MDAsIGVuZDogNTAwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDAsIGVuZDogMTAwLCBldmVudENvdW50OiAxfSwKKyAgICAgIHt0aXRsZTogJ0lkbGUnLCBzdGFydDogMTAwLCBlbmQ6IDIwMCwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAyMDAsIGVuZDogMzAwLCBldmVudENvdW50OiAxfSwKKyAgICAgIHt0aXRsZTogJ0lkbGUnLCBzdGFydDogMzAwLCBlbmQ6IDQwMCwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiA0MDAsIGVuZDogNTAwLCBldmVudENvdW50OiAxfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ21vdXNlRG93blVwUmVzcG9uc2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmVyaWZpZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXJhaWwtaXItdmVyaWZpZXInKTsKKyAgICB2ZXJpZmllci5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLk1PVVNFX0RPV04sCisgICAgICAgICAge3N0YXJ0OiAwLCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuTU9VU0VfVVAsCisgICAgICAgICAge3N0YXJ0OiAyMDAsIGVuZDogMjEwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ0lkbGUnLCBzdGFydDogMCwgZW5kOiAyMDAsIGV2ZW50Q291bnQ6IDB9LAorICAgICAge3RpdGxlOiAnUmVzcG9uc2UnLCBzdGFydDogMjAwLCBlbmQ6IDIxMCwgZXZlbnRDb3VudDogMn0KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKKworICB0ZXN0KCdpZ25vcmVMb25lTW91c2VNb3ZlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuTU9VU0VfTU9WRSwKKyAgICAgICAgICB7c3RhcnQ6IDAsIGVuZDogMTAwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ0lkbGUnLCBzdGFydDogMCwgZW5kOiAxMDAsIGV2ZW50Q291bnQ6IDB9CisgICAgXTsKKyAgICB2ZXJpZmllci52ZXJpZnkoKTsKKyAgfSk7CisKKyAgdGVzdCgnbW91c2VEcmFncycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuTU9VU0VfRE9XTiwKKyAgICAgICAgICB7c3RhcnQ6IDAsIGVuZDogMTAwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5NT1VTRV9NT1ZFLAorICAgICAgICAgIHtzdGFydDogMjAwLCBlbmQ6IDIxNX0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuTU9VU0VfTU9WRSwKKyAgICAgICAgICB7c3RhcnQ6IDIxMCwgZW5kOiAyMjB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLk1PVVNFX01PVkUsCisgICAgICAgICAge3N0YXJ0OiAyMjEsIGVuZDogMjQwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5NT1VTRV9VUCwKKyAgICAgICAgICB7c3RhcnQ6IDQwMCwgZW5kOiA0MTB9KTsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgICAge3RpdGxlOiAnSWRsZScsIHN0YXJ0OiAwLCBlbmQ6IDIwMCwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAyMDAsIGVuZDogMjE1LCBldmVudENvdW50OiAyfSwKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAyMTUsIGVuZDogNDEwLCBldmVudENvdW50OiAzfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ3R3b1Njcm9sbHNOb0ZsaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZlcmlmaWVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLWlyLXZlcmlmaWVyJyk7CisgICAgdmVyaWZpZXIuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5TQ1JPTExfQkVHSU4sCisgICAgICAgICAge3N0YXJ0OiAwLCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDIwLCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDQwLCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDYwLCBlbmQ6IDE1MH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDcwLCBlbmQ6IDE1MH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX0VORCwKKyAgICAgICAgICB7c3RhcnQ6IDgwLCBlbmQ6IDE1MH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX0JFR0lOLAorICAgICAgICAgIHtzdGFydDogMzAwLCBlbmQ6IDQwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDMyMCwgZW5kOiA0MDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAge3N0YXJ0OiAzMzAsIGVuZDogNDUwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5TQ1JPTExfVVBEQVRFLAorICAgICAgICAgIHtzdGFydDogMzQwLCBlbmQ6IDQ1MH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuU0NST0xMX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDM1MCwgZW5kOiA1MDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9FTkQsCisgICAgICAgICAge3N0YXJ0OiAzNjAsIGVuZDogNTAwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDAsIGVuZDogMTAwLCBldmVudENvdW50OiAyfSwKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAxMDAsIGVuZDogMTUwLCBldmVudENvdW50OiA0fSwKKyAgICAgIHt0aXRsZTogJ0lkbGUnLCBzdGFydDogMTUwLCBlbmQ6IDMwMCwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAzMDAsIGVuZDogNDAwLCBldmVudENvdW50OiAyfSwKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiA0MDAsIGVuZDogNTAwLCBldmVudENvdW50OiA0fQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ0NTU0FuaW1hdGlvbnMnLCBmdW5jdGlvbigpIHsKKyAgICAvLyBDU1MgQW5pbWF0aW9ucyBoYXBwZW4gb24gdGhlIHJlbmRlcmVyIHByb2Nlc3MsIG5vdCB0aGUgYnJvd3NlciBwcm9jZXNzLgorICAgIC8vIFRoZXkgYXJlIG1lcmdlZCBpZiB0aGV5IG92ZXJsYXAuCisgICAgLy8gVGhleSBhcmUgbWVyZ2VkIHdpdGggb3RoZXIga2luZHMgb2YgYW5pbWF0aW9ucy4KKyAgICB2YXIgdmVyaWZpZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXJhaWwtaXItdmVyaWZpZXInKTsKKyAgICB2ZXJpZmllci5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIGF1ZGl0cy5hZGRFdmVudChtb2RlbC5yZW5kZXJlck1haW4sIHsKKyAgICAgICAgdGl0bGU6ICdBbmltYXRpb24nLCBzdGFydDogMCwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRFdmVudChtb2RlbC5yZW5kZXJlck1haW4sIHsKKyAgICAgICAgdGl0bGU6ICdBbmltYXRpb24nLCBzdGFydDogOTksIGVuZDogMjAwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5GTElOR19TVEFSVCwKKyAgICAgICAgICB7c3RhcnQ6IDE1MCwgZW5kOiAxODB9KTsKKyAgICAgIGF1ZGl0cy5hZGRGcmFtZUV2ZW50KG1vZGVsLCB7c3RhcnQ6IDI5MCwgZW5kOiAzMDB9KTsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgICAge3RpdGxlOiAnQW5pbWF0aW9uJywgc3RhcnQ6IDAsIGVuZDogMzAwLCBldmVudENvdW50OiAzfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ2ZsaW5nVGhhdElzbnRzdG9wcGVkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZlcmlmaWVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLWlyLXZlcmlmaWVyJyk7CisgICAgdmVyaWZpZXIuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5GTElOR19TVEFSVCwKKyAgICAgICAgICB7c3RhcnQ6IDMyLCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZEZsaW5nQW5pbWF0aW9uRXZlbnQobW9kZWwsIHtzdGFydDogMzgsIGVuZDogMjAwfSk7CisgICAgICBhdWRpdHMuYWRkRnJhbWVFdmVudChtb2RlbCwge3N0YXJ0OiAyOTAsIGVuZDogMzAwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAzMiwgZW5kOiAyMDAsIGV2ZW50Q291bnQ6IDJ9LAorICAgICAge3RpdGxlOiAnSWRsZScsIHN0YXJ0OiAyMDAsIGVuZDogMzAwLCBldmVudENvdW50OiAwfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ2ZsaW5nVGhhdElzU3RvcHBlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuRkxJTkdfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiAzMiwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLkZMSU5HX0NBTkNFTCwKKyAgICAgICAgICB7c3RhcnQ6IDEwNSwgZW5kOiAxNTB9KTsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgICAge3RpdGxlOiAnQW5pbWF0aW9uJywgc3RhcnQ6IDMyLCBlbmQ6IDEwNSwgZXZlbnRDb3VudDogMn0sCisgICAgICB7dGl0bGU6ICdJZGxlJywgc3RhcnQ6IDEwNSwgZW5kOiAxNTAsIGV2ZW50Q291bnQ6IDB9CisgICAgXTsKKyAgICB2ZXJpZmllci52ZXJpZnkoKTsKKyAgfSk7CisKKyAgdGVzdCgnRmxpbmdGbGluZycsIGZ1bmN0aW9uKCkgeworICAgIC8vIG1lYXN1cm10LXRyYWNlcy9tb2JpbGUvZmFjZWJvb2tfb2JhbWFfc2Nyb2xsX2RpYWxvZ19ib3guaHRtbAorICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuRkxJTkdfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiAwLCBlbmQ6IDMwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9TVEFSVCwKKyAgICAgICAgICB7c3RhcnQ6IDEwMCwgZW5kOiAxMzB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLkZMSU5HX0NBTkNFTCwKKyAgICAgICAgICB7c3RhcnQ6IDEwMCwgZW5kOiAxMzB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX01PVkUsCisgICAgICAgICAge3N0YXJ0OiAxMTAsIGVuZDogMTQwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogMTcwLCBlbmQ6IDE4MH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVE9VQ0hfRU5ELAorICAgICAgICAgIHtzdGFydDogMjAwLCBlbmQ6IDIxMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuRkxJTkdfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiAyMDAsIGVuZDogMjIwfSk7CisgICAgICBhdWRpdHMuYWRkRnJhbWVFdmVudChtb2RlbCwge3N0YXJ0OiAyMzAsIGVuZDogMjQwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAwLCBlbmQ6IDEwMCwgZXZlbnRDb3VudDogMn0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAxMDAsIGVuZDogMTQwLCBldmVudENvdW50OiAyfSwKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAxNDAsIGVuZDogMjQwLCBldmVudENvdW50OiAzfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ0xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmVyaWZpZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXJhaWwtaXItdmVyaWZpZXInKTsKKyAgICB2ZXJpZmllci5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIGF1ZGl0cy5hZGRDb21taXRMb2FkRXZlbnQobW9kZWwsIHtzdGFydDogMCwgZW5kOiAxMH0pOworICAgICAgYXVkaXRzLmFkZEZyYW1lRXZlbnQobW9kZWwsIHtzdGFydDogMTEsIGVuZDogMjB9KTsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgICAge3RpdGxlOiAnTG9hZCcsIHN0YXJ0OiAwLCBlbmQ6IDIwLCBldmVudENvdW50OiAyfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ3RvdGFsSWRsZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZEZyYW1lRXZlbnQobW9kZWwsIHtzdGFydDogMCwgZW5kOiAxMH0pOworICAgIH07CisgICAgdmVyaWZpZXIuZXhwZWN0ZWRJUnMgPSBbCisgICAgICB7dGl0bGU6ICdJZGxlJywgc3RhcnQ6IDAsIGVuZDogMTAsIGV2ZW50Q291bnQ6IDB9CisgICAgXTsKKyAgICB2ZXJpZmllci52ZXJpZnkoKTsKKyAgfSk7CisKKyAgdGVzdCgnTXVsdGlwbGVJZGxlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZEZyYW1lRXZlbnQobW9kZWwsIHtzdGFydDogMCwgZW5kOiAxfSk7CisgICAgICBhdWRpdHMuYWRkQ29tbWl0TG9hZEV2ZW50KG1vZGVsLCB7c3RhcnQ6IDEsIGVuZDogMn0pOworICAgICAgYXVkaXRzLmFkZEZyYW1lRXZlbnQobW9kZWwsIHtzdGFydDogMywgZW5kOiA0fSk7CisgICAgICBhdWRpdHMuYWRkQ29tbWl0TG9hZEV2ZW50KG1vZGVsLCB7c3RhcnQ6IDUsIGVuZDogNn0pOworICAgICAgYXVkaXRzLmFkZEZyYW1lRXZlbnQobW9kZWwsIHtzdGFydDogNywgZW5kOiA4fSk7CisgICAgICBhdWRpdHMuYWRkQ29tbWl0TG9hZEV2ZW50KG1vZGVsLCB7c3RhcnQ6IDksIGVuZDogMTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRGcmFtZUV2ZW50KG1vZGVsLCB7c3RhcnQ6IDExLCBlbmQ6IDEyfSk7CisgICAgICBhdWRpdHMuYWRkRnJhbWVFdmVudChtb2RlbCwge3N0YXJ0OiAxMiwgZW5kOiAxM30pOworICAgIH07CisgICAgdmVyaWZpZXIuZXhwZWN0ZWRJUnMgPSBbCisgICAgICB7dGl0bGU6ICdJZGxlJywgc3RhcnQ6IDAsIGVuZDogMSwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdMb2FkJywgc3RhcnQ6IDEsIGVuZDogNCwgZXZlbnRDb3VudDogMn0sCisgICAgICB7dGl0bGU6ICdJZGxlJywgc3RhcnQ6IDQsIGVuZDogNSwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdMb2FkJywgc3RhcnQ6IDUsIGVuZDogOCwgZXZlbnRDb3VudDogMn0sCisgICAgICB7dGl0bGU6ICdJZGxlJywgc3RhcnQ6IDgsIGVuZDogOSwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdMb2FkJywgc3RhcnQ6IDksIGVuZDogMTIsIGV2ZW50Q291bnQ6IDJ9LAorICAgICAge3RpdGxlOiAnSWRsZScsIHN0YXJ0OiAxMiwgZW5kOiAxMywgZXZlbnRDb3VudDogMH0KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKKworICB0ZXN0KCdUb3VjaFN0YXJ0VG91Y2hFbmRUYXAnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmVyaWZpZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXJhaWwtaXItdmVyaWZpZXInKTsKKyAgICB2ZXJpZmllci5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX1NUQVJULAorICAgICAgICAgIHtzdGFydDogMCwgZW5kOiAxMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVE9VQ0hfRU5ELAorICAgICAgICAgIHtzdGFydDogMjAwLCBlbmQ6IDIxMH0pOworICAgIH07CisgICAgdmVyaWZpZXIuZXhwZWN0ZWRJUnMgPSBbCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAwLCBlbmQ6IDIxMCwgZXZlbnRDb3VudDogMn0KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKKworICB0ZXN0KCdUb3VjaE1vdmVSZXNwb25zZUFuaW1hdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVE9VQ0hfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiAwLCBlbmQ6IDEwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogNTAsIGVuZDogMTAwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogNzAsIGVuZDogMTUwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9FTkQsCisgICAgICAgICAge3N0YXJ0OiAyMDAsIGVuZDogMzAwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDAsIGVuZDogMTAwLCBldmVudENvdW50OiAyfSwKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAxMDAsIGVuZDogMzAwLCBldmVudENvdW50OiAyfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ1RhcEV2ZW50cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVEFQLAorICAgICAgICAgIHtzdGFydDogMCwgZW5kOiA1MH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVEFQX0RPV04sCisgICAgICAgICAge3N0YXJ0OiAzMDAsIGVuZDogMzEwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UQVAsCisgICAgICAgICAge3N0YXJ0OiAzMjAsIGVuZDogMzUwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDAsIGVuZDogNTAsIGV2ZW50Q291bnQ6IDF9LAorICAgICAge3RpdGxlOiAnSWRsZScsIHN0YXJ0OiA1MCwgZW5kOiAzMDAsIGV2ZW50Q291bnQ6IDB9LAorICAgICAge3RpdGxlOiAnUmVzcG9uc2UnLCBzdGFydDogMzAwLCBlbmQ6IDM1MCwgZXZlbnRDb3VudDogMn0KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKKworICB0ZXN0KCdUYXBBbmRUYXBDYW5jZWxSZXNwb25zZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmVyaWZpZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci1lLXJhaWwtaXItdmVyaWZpZXInKTsKKyAgICB2ZXJpZmllci5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRBUF9ET1dOLAorICAgICAgICAgIHtzdGFydDogMCwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRBUF9DQU5DRUwsCisgICAgICAgICAge3N0YXJ0OiAzMDAsIGVuZDogMzUwfSk7CisgICAgfTsKKyAgICB2ZXJpZmllci5leHBlY3RlZElScyA9IFsKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDAsIGVuZDogMTAwLCBldmVudENvdW50OiAxfSwKKyAgICAgIHt0aXRsZTogJ0lkbGUnLCBzdGFydDogMTAwLCBlbmQ6IDMwMCwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAzMDAsIGVuZDogMzUwLCBldmVudENvdW50OiAxfQorICAgIF07CisgICAgdmVyaWZpZXIudmVyaWZ5KCk7CisgIH0pOworCisgIHRlc3QoJ1RhcENhbmNlbFJlc3BvbnNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZlcmlmaWVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLWlyLXZlcmlmaWVyJyk7CisgICAgdmVyaWZpZXIuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UQVBfRE9XTiwKKyAgICAgICAgICB7c3RhcnQ6IDAsIGVuZDogMTAwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UQVBfQ0FOQ0VMLAorICAgICAgICAgIHtzdGFydDogMTUwLCBlbmQ6IDIwMH0pOworICAgIH07CisgICAgdmVyaWZpZXIuZXhwZWN0ZWRJUnMgPSBbCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAwLCBlbmQ6IDIwMCwgZXZlbnRDb3VudDogMn0KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKKworICB0ZXN0KCdQaW5jaFJlc3BvbnNlQW5pbWF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZlcmlmaWVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItZS1yYWlsLWlyLXZlcmlmaWVyJyk7CisgICAgdmVyaWZpZXIuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBhdWRpdHMuYWRkRnJhbWVFdmVudChtb2RlbCwge3N0YXJ0OiAwLCBlbmQ6IDEwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5QSU5DSF9CRUdJTiwKKyAgICAgICAgICB7c3RhcnQ6IDEwMCwgZW5kOiAxNTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlBJTkNIX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDEzMCwgZW5kOiAxNjB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlBJTkNIX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDE0MCwgZW5kOiAyMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlBJTkNIX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDE1MCwgZW5kOiAyMDV9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlBJTkNIX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDIxMCwgZW5kOiAyMjB9KTsKKyAgICAgIC8vIHBhdXNlID4gMjAwbXMKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlBJTkNIX1VQREFURSwKKyAgICAgICAgICB7c3RhcnQ6IDQyMSwgZW5kOiA0NzB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlBJTkNIX0VORCwKKyAgICAgICAgICB7c3RhcnQ6IDQ2MCwgZW5kOiA1MDB9KTsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgICAge3RpdGxlOiAnSWRsZScsIHN0YXJ0OiAwLCBlbmQ6IDEwMCwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAxMDAsIGVuZDogMTYwLCBldmVudENvdW50OiAyfSwKKyAgICAgIHt0aXRsZTogJ0FuaW1hdGlvbicsIHN0YXJ0OiAxNjAsIGVuZDogMjIwLCBldmVudENvdW50OiAzfSwKKyAgICAgIHt0aXRsZTogJ0lkbGUnLCBzdGFydDogMjIwLCBlbmQ6IDQyMSwgZXZlbnRDb3VudDogMH0sCisgICAgICB7dGl0bGU6ICdBbmltYXRpb24nLCBzdGFydDogNDIxLCBlbmQ6IDUwMCwgZXZlbnRDb3VudDogMn0KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKKworICB0ZXN0KCdUYXBUaGVuU2Nyb2xsJywgZnVuY3Rpb24oKSB7CisgICAgLy8gbWVhc3VybXQtdHJhY2VzL21vYmlsZS9nb29nbGVfaW9faW5zdHJ1bWVudF9zdHJ1bW1pbmcuanNvbgorICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVE9VQ0hfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiAwLCBlbmQ6IDIwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9FTkQsCisgICAgICAgICAge3N0YXJ0OiA0MCwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX1NUQVJULAorICAgICAgICAgIHtzdGFydDogNTAsIGVuZDogMTIwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogODAsIGVuZDogMTUwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogMTgwLCBlbmQ6IDIwMH0pOworICAgIH07CisgICAgdmVyaWZpZXIuZXhwZWN0ZWRJUnMgPSBbCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiAwLCBlbmQ6IDEwMCwgZXZlbnRDb3VudDogMn0sCisgICAgICB7dGl0bGU6ICdSZXNwb25zZScsIHN0YXJ0OiA1MCwgZW5kOiAxNTAsIGV2ZW50Q291bnQ6IDJ9LAorICAgICAge3RpdGxlOiAnQW5pbWF0aW9uJywgc3RhcnQ6IDE1MCwgZW5kOiAyMDAsIGV2ZW50Q291bnQ6IDF9CisgICAgXTsKKyAgICB2ZXJpZmllci52ZXJpZnkoKTsKKyAgfSk7CisKKyAgdGVzdCgnUGluY2hGbGluZ1RhcFRvdWNoRXZlbnRzT3ZlcmxhcCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2ZXJpZmllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLWUtcmFpbC1pci12ZXJpZmllcicpOworICAgIHZlcmlmaWVyLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSBmdW5jdGlvbihtb2RlbCkgeworICAgICAgYXVkaXRzLmFkZEZyYW1lRXZlbnQobW9kZWwsIHtzdGFydDogMCwgZW5kOiAxMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVE9VQ0hfU1RBUlQsCisgICAgICAgICAge3N0YXJ0OiAyMCwgZW5kOiA1MH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVEFQX0RPV04sCisgICAgICAgICAge3N0YXJ0OiAyMCwgZW5kOiAzMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuRkxJTkdfQ0FOQ0VMLAorICAgICAgICAgIHtzdGFydDogMjAsIGVuZDogNTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX01PVkUsCisgICAgICAgICAge3N0YXJ0OiA2MCwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX1NUQVJULAorICAgICAgICAgIHtzdGFydDogNjAsIGVuZDogMTEwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5QSU5DSF9CRUdJTiwKKyAgICAgICAgICB7c3RhcnQ6IDYwLCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVEFQX0NBTkNFTCwKKyAgICAgICAgICB7c3RhcnQ6IDY1LCBlbmQ6IDc1fSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5UT1VDSF9NT1ZFLAorICAgICAgICAgIHtzdGFydDogNzAsIGVuZDogMTAwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5QSU5DSF9VUERBVEUsCisgICAgICAgICAge3N0YXJ0OiA3MCwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAge3N0YXJ0OiA3NSwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX01PVkUsCisgICAgICAgICAge3N0YXJ0OiA4MCwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAge3N0YXJ0OiA4NSwgZW5kOiAxMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9CRUdJTiwKKyAgICAgICAgICB7c3RhcnQ6IDc1LCBlbmQ6IDEwMH0pOworICAgICAgYXVkaXRzLmFkZElucHV0RXZlbnQobW9kZWwsIElOUFVUX1RZUEUuVE9VQ0hfTU9WRSwKKyAgICAgICAgICB7c3RhcnQ6IDE1MCwgZW5kOiAyMDB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlNDUk9MTF9VUERBVEUsCisgICAgICAgICAge3N0YXJ0OiAxNTAsIGVuZDogMjAwfSk7CisgICAgICBhdWRpdHMuYWRkSW5wdXRFdmVudChtb2RlbCwgSU5QVVRfVFlQRS5GTElOR19TVEFSVCwKKyAgICAgICAgICB7c3RhcnQ6IDE4MCwgZW5kOiAyMTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRJbnB1dEV2ZW50KG1vZGVsLCBJTlBVVF9UWVBFLlRPVUNIX0VORCwKKyAgICAgICAgICB7c3RhcnQ6IDE5MCwgZW5kOiAyMTB9KTsKKyAgICAgIGF1ZGl0cy5hZGRGcmFtZUV2ZW50KG1vZGVsLCB7c3RhcnQ6IDIxNSwgZW5kOiAyMjB9KTsKKyAgICB9OworICAgIHZlcmlmaWVyLmV4cGVjdGVkSVJzID0gWworICAgICAge3RpdGxlOiAnSWRsZScsIHN0YXJ0OiAwLCBlbmQ6IDIwLCBldmVudENvdW50OiAwfSwKKyAgICAgIHt0aXRsZTogJ1Jlc3BvbnNlJywgc3RhcnQ6IDIwLCBlbmQ6IDExMCwgZXZlbnRDb3VudDogOX0sCisgICAgICB7dGl0bGU6ICdBbmltYXRpb24nLCBzdGFydDogMTEwLCBlbmQ6IDIyMCwgZXZlbnRDb3VudDogN30KKyAgICBdOworICAgIHZlcmlmaWVyLnZlcmlmeSgpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcmFpbF9zY29yZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYTFmNjIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmUucmFpbCcsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBSQUlMU2NvcmUob3B0X2lycykgeworICAgIHRoaXMuaW50ZXJhY3Rpb25SZWNvcmRzXyA9IFtdOworICAgIGlmIChvcHRfaXJzKQorICAgICAgdGhpcy5pbnRlcmFjdGlvblJlY29yZHNfLnB1c2guYXBwbHkodGhpcy5pbnRlcmFjdGlvblJlY29yZHNfLCBvcHRfaXJzKTsKKyAgfTsKKworICBSQUlMU2NvcmUucHJvdG90eXBlID0geworICAgIGdldCBpbnRlcmFjdGlvblJlY29yZHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGlvblJlY29yZHNfOworICAgIH0sCisKKyAgICBnZXQgb3ZlcmFsbFNjb3JlKCkgeworICAgICAgLy8gVGhlIGRlc2lnbiBvZiB0aGlzIGFsZ29yaXRobSBpcyBkaXNjdXNzZWQgaGVyZTogaHR0cHM6Ly9nb28uZ2wvQ2MwSDF6CisgICAgICAvLyBUT0RPKGJlbmpoYXlkZW4pOiBNYWtlIGRvYyBwdWJsaWMgYW5kIHJlbW92ZSBiZWxvdyBjb21tZW50PworICAgICAgLy8gVW50aWwgdGhlIGRvYyBpcyBtYWRlIHB1YmxpYywgdGhpcyBpcyBiYXNpY2FsbHkgYSB3ZWlnaHRlZCBhdmVyYWdlLAorICAgICAgLy8gd2hlcmUgdGhlIHdlaWdodHMgYXJlIHR1bmFibGUuIFRoZSB3ZWlnaHRzIGFyZSByZWNvbW1lbmRlZCB0byBiZSBoaWdoZXIKKyAgICAgIC8vIGZvciBsb3dlciBzY29yZXMsIHNvIHRoYXQgbG93ZXIgc2NvcmVzIHdpbGwgYnJpbmcgZG93biB0aGUgb3ZlcmFsbFNjb3JlCisgICAgICAvLyBtb3JlIHRoYW4gaGlnaGVyIHNjb3JlcyBicmluZyBpdCB1cC4gVGhlIG9wdGlvbmFsIGZpZWxkcyBwcm92aWRlIGFuCisgICAgICAvLyBvcHBvcnR1bml0eSB0byBjdXN0b21pemUgdGhlIHR1bmFibGUgcGFyYW1ldGVycyBiYXNlZCBvbiBJUiB0eXBlLAorICAgICAgLy8gZHVyYXRpb24sIGV0Yy4gVGhlIGNvbnRpbnVpdHkgYW5kIG1vbm90b25pY2l0eSBvZiB0aGUgd2VpZ2h0aW5nCisgICAgICAvLyBmdW5jdGlvbiBhcmUgYWxzbyBpbXBvcnRhbnQgY2hhcmFjdGVyaXN0aWNzLiBUaGUgd2VpZ2h0aW5nIGZ1bmN0aW9uIGlzCisgICAgICAvLyBub3QgY29tcG9zZWQgb2YgbWVhbmluZ2Z1bCBzdWItZXhwcmVzc2lvbnM7IGl0IGlzIGEgbW9ub2xpdGhpYworICAgICAgLy8gY29tYmluYXRpb24gb2YgdGhlIHNjb3JlIGFuZCB0dW5hYmxlIHBhcmFtZXRlcnMsIGFuZCBpcyBvcGVuIHRvCisgICAgICAvLyByZWZvcm11bGF0aW9uLgorICAgICAgLy8gVGhlIHdlaWdodGluZyBmdW5jdGlvbiBpcyBncmFwaGVkIGhlcmU6IGh0dHBzOi8vZ29vLmdsLzFibHNYVworICAgICAgaWYgKCF0aGlzLmludGVyYWN0aW9uUmVjb3Jkcy5sZW5ndGgpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBudW1lcmF0b3IgPSAwOworICAgICAgdmFyIGRlbm9taW5hdG9yID0gMDsKKyAgICAgIHRoaXMuaW50ZXJhY3Rpb25SZWNvcmRzLmZvckVhY2goZnVuY3Rpb24oaXIpIHsKKyAgICAgICAgdmFyIHNjb3JlID0gaXIucmFpbFNjb3JlOworCisgICAgICAgIHZhciBzY2FsZSA9IGlyLnJhaWxTY29yZVNjYWxlOworICAgICAgICBpZiAoc2NhbGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBzY2FsZSA9IDM7CisKKyAgICAgICAgdmFyIHBvd2VyID0gaXIucmFpbFNjb3JlUG93ZXI7CisgICAgICAgIGlmIChwb3dlciA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHBvd2VyID0gMC4zOworCisgICAgICAgIHZhciBiYXNlID0gaXIucmFpbFNjb3JlQmFzZTsKKyAgICAgICAgaWYgKGJhc2UgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBiYXNlID0gTWF0aC5leHAoMSk7CisKKyAgICAgICAgdmFyIHdlaWdodCA9IE1hdGgucG93KGJhc2UsIC1zY2FsZSAqIE1hdGgucG93KHNjb3JlLCBwb3dlcikpOworICAgICAgICBudW1lcmF0b3IgKz0gc2NvcmUgKiB3ZWlnaHQ7CisgICAgICAgIGRlbm9taW5hdG9yICs9IHdlaWdodDsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIG51bWVyYXRvciAvIGRlbm9taW5hdG9yOworICAgIH0KKyAgfTsKKworICBSQUlMU2NvcmUuZnJvbU1vZGVsID0gZnVuY3Rpb24obW9kZWwpIHsKKyAgICB2YXIgcmlycyA9IG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMuZmlsdGVyKGZ1bmN0aW9uKGlyKSB7CisgICAgICByZXR1cm4gaXIgaW5zdGFuY2VvZiB0ci5lLnJhaWwuUkFJTEludGVyYWN0aW9uUmVjb3JkOworICAgIH0pOworICAgIGlmIChyaXJzLmxlbmd0aCA9PT0gMCkKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgcmV0dXJuIG5ldyBSQUlMU2NvcmUocmlycyk7CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBSQUlMU2NvcmU6IFJBSUxTY29yZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ZTFlNDgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX3Njb3JlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFJBSUxTY29yZSA9IHRyLmUucmFpbC5SQUlMU2NvcmU7CisKKyAgdGVzdCgnZW1wdHknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcmFpbFNjb3JlID0gbmV3IFJBSUxTY29yZSgpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChyYWlsU2NvcmUub3ZlcmFsbFNjb3JlKTsKKyAgfSk7CisKKyAgdGVzdCgnc2luZ2xlSVInLCBmdW5jdGlvbigpIHsKKyAgICAvLyBTb2xpdGFyeSBzY29yZXMgYWx3YXlzIHJlZHVjZSB0byBleGFjdGx5IHRoZW1zZWx2ZXMuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMTsgKytpKSB7CisgICAgICB2YXIgcmFpbFNjb3JlID0gbmV3IFJBSUxTY29yZShbe3JhaWxTY29yZTogaSAvIDEwfV0pOworICAgICAgYXNzZXJ0LmNsb3NlVG8ocmFpbFNjb3JlLmludGVyYWN0aW9uUmVjb3Jkc1swXS5yYWlsU2NvcmUsCisgICAgICAgICAgICAgICAgICAgICByYWlsU2NvcmUub3ZlcmFsbFNjb3JlLCAwLjAwMSk7CisKKyAgICAgIHJhaWxTY29yZSA9IG5ldyBSQUlMU2NvcmUoW3tyYWlsU2NvcmU6IGkgLyAxMCwgcmFpbFNjb3JlUG93ZXI6IDAuMX1dKTsKKyAgICAgIGFzc2VydC5jbG9zZVRvKHJhaWxTY29yZS5pbnRlcmFjdGlvblJlY29yZHNbMF0ucmFpbFNjb3JlLAorICAgICAgICAgICAgICAgICAgICAgcmFpbFNjb3JlLm92ZXJhbGxTY29yZSwgMC4wMDEpOworCisgICAgICByYWlsU2NvcmUgPSBuZXcgUkFJTFNjb3JlKFt7cmFpbFNjb3JlOiBpIC8gMTAsIHJhaWxTY29yZVNjYWxlOiAtMX1dKTsKKyAgICAgIGFzc2VydC5jbG9zZVRvKHJhaWxTY29yZS5pbnRlcmFjdGlvblJlY29yZHNbMF0ucmFpbFNjb3JlLAorICAgICAgICAgICAgICAgICAgICAgcmFpbFNjb3JlLm92ZXJhbGxTY29yZSwgMC4wMDEpOworCisgICAgICByYWlsU2NvcmUgPSBuZXcgUkFJTFNjb3JlKFt7CisgICAgICAgIHJhaWxTY29yZTogaSAvIDEwLAorICAgICAgICByYWlsU2NvcmVQb3dlcjogMC4xLAorICAgICAgICByYWlsU2NvcmVTY2FsZTogLTEKKyAgICAgIH1dKTsKKyAgICAgIGFzc2VydC5jbG9zZVRvKHJhaWxTY29yZS5pbnRlcmFjdGlvblJlY29yZHNbMF0ucmFpbFNjb3JlLAorICAgICAgICAgICAgICAgICAgICAgcmFpbFNjb3JlLm92ZXJhbGxTY29yZSwgMC4wMDEpOworICAgIH0KKyAgfSk7CisKKyAgdmFyIGJpbmFyeVNjb3JlU2V0cyA9IFsKKyAgICBbMCwgMCwgMCwgMV0sCisgICAgWzAsIDAsIDFdLAorICAgIFswLCAxXSwKKyAgICBbMCwgMSwgMV0sCisgICAgWzAsIDEsIDEsIDFdXTsKKworICB0ZXN0KCdiaW5hcnlTY29yZVNldHMnLCBmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBzaW1wbGVJUihzY29yZSkgeworICAgICAgcmV0dXJuIHtyYWlsU2NvcmU6IHNjb3JlfTsKKyAgICB9CisKKyAgICBmb3IgKHZhciBpbmRleCA9IDE7IGluZGV4IDwgYmluYXJ5U2NvcmVTZXRzLmxlbmd0aDsgKytpbmRleCkgeworICAgICAgdmFyIHByZXZTY29yZSA9IG5ldyBSQUlMU2NvcmUoYmluYXJ5U2NvcmVTZXRzW2luZGV4IC0gMV0ubWFwKHNpbXBsZUlSKSk7CisgICAgICBwcmV2U2NvcmUgPSBwcmV2U2NvcmUub3ZlcmFsbFNjb3JlOworICAgICAgdmFyIGN1cnJlbnRTY29yZSA9IG5ldyBSQUlMU2NvcmUoYmluYXJ5U2NvcmVTZXRzW2luZGV4XS5tYXAoc2ltcGxlSVIpKTsKKyAgICAgIGN1cnJlbnRTY29yZSA9IGN1cnJlbnRTY29yZS5vdmVyYWxsU2NvcmU7CisKKyAgICAgIGFzc2VydC5pc0JlbG93KDAsIHByZXZTY29yZSk7CisgICAgICBhc3NlcnQuaXNCZWxvdyhwcmV2U2NvcmUsIGN1cnJlbnRTY29yZSk7CisKKyAgICAgIHZhciBhbHRTY29yZSA9IG5ldyBSQUlMU2NvcmUoYmluYXJ5U2NvcmVTZXRzW2luZGV4XS5tYXAoZnVuY3Rpb24oc2NvcmUpIHsKKyAgICAgICAgcmV0dXJuIHtyYWlsU2NvcmU6IHNjb3JlLCByYWlsU2NvcmVTY2FsZTogLTF9OworICAgICAgfSkpOworICAgICAgYWx0U2NvcmUgPSBhbHRTY29yZS5vdmVyYWxsU2NvcmU7CisKKyAgICAgIC8vIFdoZW4gc2NhbGUgPCAwLCB0aGVuIGhpZ2hlciBzY29yZXMgYXJlIHdlaWdodGVkIG1vcmUgaGVhdmlseSB0aGFuIGxvd2VyCisgICAgICAvLyBzY29yZXMuCisgICAgICBhc3NlcnQuaXNCZWxvdyhjdXJyZW50U2NvcmUsIGFsdFNjb3JlKTsKKyAgICAgIGFzc2VydC5pc0JlbG93KGFsdFNjb3JlLCAxKTsKKyAgICB9CisgIH0pOworCisgIHRlc3QoJ3plcm9CYXNlJywgZnVuY3Rpb24oKSB7CisgICAgLy8gV2hlbiBiYXNlID0gMCwgdGhlbiB3ZWlnaHQgY291bGQgYmUgMCwgd2hpY2ggY291bGQgY2F1c2UgTmFOLgorICAgIHZhciByYWlsU2NvcmUgPSBuZXcgUkFJTFNjb3JlKFt7cmFpbFNjb3JlOiAwLCByYWlsU2NvcmVCYXNlOiAwfV0pOworICAgIGFzc2VydC5lcXVhbCgwLCByYWlsU2NvcmUub3ZlcmFsbFNjb3JlKTsKKworICAgIHJhaWxTY29yZSA9IG5ldyBSQUlMU2NvcmUoW3tyYWlsU2NvcmU6IDEsIHJhaWxTY29yZUJhc2U6IDB9XSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShpc05hTihyYWlsU2NvcmUub3ZlcmFsbFNjb3JlKSk7CisKKyAgICByYWlsU2NvcmUgPSBuZXcgUkFJTFNjb3JlKFt7CisgICAgICByYWlsU2NvcmU6IDEsCisgICAgICByYWlsU2NvcmVTY2FsZTogLTEsCisgICAgICByYWlsU2NvcmVCYXNlOiAwCisgICAgfV0pOworICAgIGFzc2VydC5pc1RydWUoaXNOYU4ocmFpbFNjb3JlLm92ZXJhbGxTY29yZSkpOworICB9KTsKKworICB0ZXN0KCdvbmVCYXNlJywgZnVuY3Rpb24oKSB7CisgICAgLy8gV2hlbiBiYXNlID0gMSwgdGhlbiBzY2FsZSBhbmQgcG93ZXIgZG9uJ3QgbWF0dGVyLCBhbmQgdGhlIGFsZ29yaXRobQorICAgIC8vIHNpbXBsaWZpZXMgdG8gdW4td2VpZ2h0ZWQgYXZlcmFnaW5nLgorCisgICAgZnVuY3Rpb24gbWVhbihzY29yZXMpIHsKKyAgICAgIHZhciBzdW0gPSAwOworICAgICAgc2NvcmVzLmZvckVhY2goZnVuY3Rpb24oc2NvcmUpIHsKKyAgICAgICAgc3VtICs9IHNjb3JlOworICAgICAgfSk7CisgICAgICByZXR1cm4gc3VtIC8gc2NvcmVzLmxlbmd0aDsKKyAgICB9CisKKyAgICBiaW5hcnlTY29yZVNldHMuZm9yRWFjaChmdW5jdGlvbihzY29yZXMpIHsKKyAgICAgIHZhciByYWlsU2NvcmUgPSBuZXcgUkFJTFNjb3JlKHNjb3Jlcy5tYXAoZnVuY3Rpb24oc2NvcmUpIHsKKyAgICAgICAgcmV0dXJuIHtyYWlsU2NvcmU6IHNjb3JlLCByYWlsU2NvcmVCYXNlOiAxfTsKKyAgICAgIH0pKTsKKyAgICAgIGFzc2VydC5jbG9zZVRvKG1lYW4oc2NvcmVzKSwgcmFpbFNjb3JlLm92ZXJhbGxTY29yZSwgMC4wMSk7CisKKyAgICAgIHJhaWxTY29yZSA9IG5ldyBSQUlMU2NvcmUoc2NvcmVzLm1hcChmdW5jdGlvbihzY29yZSkgeworICAgICAgICByZXR1cm4ge3JhaWxTY29yZTogc2NvcmUsIHJhaWxTY29yZUJhc2U6IDEsIHJhaWxTY29yZVNjYWxlOiAtMX07CisgICAgICB9KSk7CisgICAgICBhc3NlcnQuY2xvc2VUbyhtZWFuKHNjb3JlcyksIHJhaWxTY29yZS5vdmVyYWxsU2NvcmUsIDAuMDEpOworICAgIH0pOworICB9KTsKKworICB0ZXN0KCd6ZXJvSW50ZXJhY3Rpb25SZWNvcmRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNjb3JlID0gbmV3IHRyLmUucmFpbC5SQUlMU2NvcmUoKTsKKyAgICBhc3NlcnQuZXF1YWwoMCwgc2NvcmUuaW50ZXJhY3Rpb25SZWNvcmRzLmxlbmd0aCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHNjb3JlLm92ZXJhbGxTY29yZSk7CisgIH0pOworCisgIHRlc3QoJ292ZXJhbGxTY29yZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzY29yZSA9IG5ldyB0ci5lLnJhaWwuUkFJTFNjb3JlKFsKKyAgICAgIHtyYWlsU2NvcmU6IDAuOX0sCisgICAgICB7cmFpbFNjb3JlOiAxLjB9LAorICAgICAge3JhaWxTY29yZTogMC44OX0sCisgICAgICB7cmFpbFNjb3JlOiAxLjB9LAorICAgICAge3JhaWxTY29yZTogMC4xfQorICAgIF0pOworICAgIGFzc2VydC5lcXVhbCg1LCBzY29yZS5pbnRlcmFjdGlvblJlY29yZHMubGVuZ3RoKTsKKyAgICBhc3NlcnQuY2xvc2VUbyhzY29yZS5vdmVyYWxsU2NvcmUsIDAuNTEsIDAuMDEpOworICB9KTsKKworICB0ZXN0KCdmcm9tTW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSB0ci5lLmF1ZGl0cy5uZXdDaHJvbWVNb2RlbChmdW5jdGlvbihtb2RlbCkgeworICAgICAgbW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQobmV3IHRyLmUucmFpbC5SQUlMSW50ZXJhY3Rpb25SZWNvcmQoCisgICAgICAgICAgJ0lkbGUnLCAncmFpbF9pZGxlJywgMCwgMSkpOworICAgIH0pOworICAgIHZhciBzY29yZSA9IHRyLmUucmFpbC5SQUlMU2NvcmUuZnJvbU1vZGVsKG1vZGVsKTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgc2NvcmUuaW50ZXJhY3Rpb25SZWNvcmRzLmxlbmd0aCk7CisgIH0pOworCisgIHRlc3QoJ2Zyb21FbXB0eU1vZGVsJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gdHIuZS5hdWRpdHMubmV3Q2hyb21lTW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKKyAgICB9KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQodHIuZS5yYWlsLlJBSUxTY29yZS5mcm9tTW9kZWwobW9kZWwpKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9yZXNwb25zZV9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcmVzcG9uc2VfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIxODEwYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcmVzcG9uc2VfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFRoZSBSZXNwb25zZSBwaGFzZSBvZiBSQUlMLgorICovCit0ci5leHBvcnRUbygndHIuZS5yYWlsJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIFJlc3BvbnNlSW50ZXJhY3Rpb25SZWNvcmQoc3RhcnQsIGR1cmF0aW9uKSB7CisgICAgdHIuZS5yYWlsLlJBSUxJbnRlcmFjdGlvblJlY29yZC5jYWxsKAorICAgICAgICB0aGlzLCAnUmVzcG9uc2UnLCAncmFpbF9yZXNwb25zZScsCisgICAgICAgIHN0YXJ0LCBkdXJhdGlvbik7CisgIH0KKworICBSZXNwb25zZUludGVyYWN0aW9uUmVjb3JkLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLmUucmFpbC5SQUlMSW50ZXJhY3Rpb25SZWNvcmQucHJvdG90eXBlLAorCisgICAgZ2V0IG5vcm1hbGl6ZWRVc2VyUGFpbigpIHsKKyAgICAgIC8vIFVzZXIgcGFpbiBpcyBkZXJpdmVkIGZyb20gdGhlIHRpbWUgYmV0d2VlbiB3aGVuIHRoZSB1c2VyIHRoaW5rcyB0aGV5CisgICAgICAvLyBiZWdpbiBhbiBpbnRlcmF0aW9uIChleHBlY3RlZFN0YXJ0KSBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgc2NyZWVuIGZpcnN0CisgICAgICAvLyBjaGFuZ2VzIHRvIHJlZmxlY3QgdGhlIGludGVyYWN0aW9uIChhY3R1YWxFbmQpLiAgVGhlcmUgbWF5IGJlIGEgZGVsYXkKKyAgICAgIC8vIGJldHdlZW4gZXhwZWN0ZWRTdGFydCBhbmQgd2hlbiBjaHJvbWUgZmlyc3Qgc3RhcnRzIHByb2Nlc3NpbmcgdGhlCisgICAgICAvLyBpbnRlcmFjdGlvbiAoYWN0dWFsU3RhcnQpIGlmIHRoZSBtYWluIHRocmVhZCBpcyBidXN5LiAgVGhlIHVzZXIgZG9lc24ndAorICAgICAgLy8ga25vdyB3aGVuIGFjdHVhbFN0YXJ0IGlzLCB0aGV5IG9ubHkga25vdyB3aGVuIGV4cGVjdGVkU3RhcnQgaXMuIFVzZXIKKyAgICAgIC8vIHBhaW4sIGJ5IGRlZmluaXRpb24sIGNvbnNpZGVycyBvbmx5IHdoYXQgdGhlIHVzZXIgZXhwZXJpZW5jZXMsIHNvCisgICAgICAvLyAiZHVyYXRpb24iIGlzIGRlZmluZWQgYXMgYWN0dWFsRW5kIC0gZXhwZWN0ZWRTdGFydC4KKworICAgICAgLy8gVXNlciBwYWluIGlzIGh5cG90aGVzaXplZCB0byByaXNlIGV4cG9uZW50aWFsbHkgYXMgZHVyYXRpb24gcmlzZXMKKyAgICAgIC8vIGJldHdlZW4gMTUwbXMgYW5kIDEwMDBtcy4KKyAgICAgIC8vIFRPRE8oYmVuamhheWRlbiwgbmR1Y2EpIEV4cGVyaW1lbnQgdG8gdmFsaWRhdGUgdGhpcyBoeXBvdGhlc2lzLgorCisgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGdyYXBoZWQgYXQKKyAgICAgIC8vIGh0dHBzOi8vd3d3LmRlc21vcy5jb20vY2FsY3VsYXRvci9mcWhrejFvaGlhCisKKyAgICAgIHZhciBQQUlOX0JFR0lOU19BVF9NUyA9IDE1MDsKKyAgICAgIHZhciBQQUlOX1BFQUtTX0FUX01TID0gMTAwMDsKKworICAgICAgLy8gUEFJTl9QT1dFUiBpcyBhIHR1bmFibGUgcGFyYW1ldGVyIHRoYXQgYWZmZWN0cyB0aGUgc2hhcGUgb2YgdGhpcworICAgICAgLy8gZnVuY3Rpb24uIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuIEF0IGFib3V0IDAuNywgdGhpcyBmdW5jdGlvbiBpcworICAgICAgLy8gYXBwcm94aW1hdGVseSBsaW5lYXIsIHNvIGlmLCBpbiB0aGUgY291cnNlIG9mIHR1bmluZyB0aGlzIHBhcmFtZXRlciwKKyAgICAgIC8vIHlvdSB3YW50IHRvIHNldCBpdCBjbG9zZSB0byAwLjcsIHRoZW4geW91IG1pZ2h0IGFzIHdlbGwgcmVwbGFjZSB0aGlzCisgICAgICAvLyBlbnRpcmUgZnVuY3Rpb24gd2l0aCBhIGNhbGwgdG8gbGVycCgpLiBJZiB5b3Ugd2FudCB0byBzZXQgaXQgY2xvc2UgdG8KKyAgICAgIC8vIDEsIHRoZW4geW91IG1pZ2h0IGFzIHdlbGwgc2tpcCB0aGUgTWF0aC5wb3coKSBzdGVwIGluCisgICAgICAvLyBjb21wdXRlUmF3VXNlclBhaW4oKSBhbHRvZ2V0aGVyLgorICAgICAgdmFyIFBBSU5fUE9XRVIgPSAxLjU7CisKKyAgICAgIC8vIFByZXZlbnQgcmFpc2luZyBhIG5lZ2F0aXZlIG51bWJlciB0byBhIGZyYWN0aW9uYWwgcG93ZXIsIHdoaWNoIHByb2R1Y2VzCisgICAgICAvLyBOYU4uCisgICAgICBpZiAodGhpcy5kdXJhdGlvbiA8IFBBSU5fQkVHSU5TX0FUX01TKQorICAgICAgICByZXR1cm4gMDsKKworICAgICAgZnVuY3Rpb24gY29tcHV0ZVJhd1VzZXJQYWluKGR1cmF0aW9uTXMpIHsKKyAgICAgICAgdmFyIHBhaW5EdXJhdGlvbk1zID0gZHVyYXRpb25NcyAtIFBBSU5fQkVHSU5TX0FUX01TOworICAgICAgICAvLyBDb252ZXJ0IG1zIHRvIHNlY29uZHMgYmVjYXVzZSB0aGlzIHZhbHVlIGlzIGFib3V0IHRvIGJlIHBhc3NlZAorICAgICAgICAvLyB0byBNYXRoLmV4cCgpLCBzbyBpdCBtdXN0IGJlIHNtYWxsIGVub3VnaCB0aGF0IE1hdGguZXhwKCkgd2lsbCBub3QKKyAgICAgICAgLy8gcnVuIG91dCBvZiBJRUVFNzU0IGV4cG9uZW50IGJpdHMgYW5kIHJldHVybiBJbmZpbml0eS4KKyAgICAgICAgdmFyIE1TX1BFUl9TRUNPTkRTID0gMTAwMDsKKyAgICAgICAgdmFyIHBhaW5EdXJhdGlvblNlY29uZHMgPSBwYWluRHVyYXRpb25NcyAvIE1TX1BFUl9TRUNPTkRTOworCisgICAgICAgIC8vIFJhaXNpbmcgcGFpbkR1cmF0aW9uU2Vjb25kcyB0byBhIG5vbi11bml0eSBwb3dlciBtYWtlcyB0aGluZ3MgbW9yZQorICAgICAgICAvLyBpbnRlcmVzdGluZyBhbmQgZ2l2ZXMgdXMgYSBwYXJhbWV0ZXIgdG8gdHVuZSB0byBjaGFuZ2UgdGhlIHNoYXBlIG9mCisgICAgICAgIC8vIHRoZSBmdW5jdGlvbi4KKyAgICAgICAgdmFyIHR1bmVkUGFpbkR1cmF0aW9uU2Vjb25kcyA9IE1hdGgucG93KHBhaW5EdXJhdGlvblNlY29uZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUlOX1BPV0VSKTsKKyAgICAgICAgLy8gZXhwKCkgaGFzIHNvbWUgbmljZSBtYXRoZW1hdGljYWwgcHJvcGVydGllcywgYnV0IHdlIGNvdWxkIHZhcnkgdGhlCisgICAgICAgIC8vIGJhc2UgZnJvbSBlIHRvIHNvbWUgb3RoZXIgcG9zaXRpdmUgbm9uLXVuaXR5IG51bWJlciBmb3IgYW5vdGhlciB3YXkKKyAgICAgICAgLy8gdG8gY2hhbmdlIHRoZSBzaGFwZSBvZiB0aGUgZnVuY3Rpb24gaWYgbmVjZXNzYXJ5LgorICAgICAgICByZXR1cm4gTWF0aC5leHAodHVuZWRQYWluRHVyYXRpb25TZWNvbmRzKTsKKyAgICAgICAgLy8gKElmIHlvdSBtb2RpZnkgdGhpcyBmdW5jdGlvbiB0byBiZSBub24tbW9ub3RvbmljIGFueXdoZXJlLCB0aGVuIHlvdQorICAgICAgICAvLyBzaG91bGQgY29uc2lkZXIgaG93IHRoYXQgYWZmZWN0cyB0aGUgY2xhbXAoKSBhdCB0aGUgZW5kLikKKyAgICAgIH0KKworICAgICAgdmFyIHJhd1VzZXJQYWluID0gY29tcHV0ZVJhd1VzZXJQYWluKHRoaXMuZHVyYXRpb24pOworCisgICAgICB2YXIgbWluUmF3VXNlclBhaW4gPSBjb21wdXRlUmF3VXNlclBhaW4oUEFJTl9CRUdJTlNfQVRfTVMpOworICAgICAgdmFyIG1heFJhd1VzZXJQYWluID0gY29tcHV0ZVJhd1VzZXJQYWluKFBBSU5fUEVBS1NfQVRfTVMpOworICAgICAgdmFyIG5vcm1hbGl6ZWRVc2VyUGFpbiA9IHRyLmIubm9ybWFsaXplKAorICAgICAgICAgIHJhd1VzZXJQYWluLCBtaW5SYXdVc2VyUGFpbiwgbWF4UmF3VXNlclBhaW4pOworCisgICAgICAvLyBub3JtYWxpemVkVXNlclBhaW4gbWlnaHQgYWN0dWFsbHkgYmUgbmVnYXRpdmUgaWYgdGhpcy5kdXJhdGlvbiBpcyBsZXNzCisgICAgICAvLyB0aGFuIFBBSU5fQkVHSU5TX0FUX01TLCBhbmQgaXQgbWlnaHQgYmUgZ3JlYXRlciB0aGFuIDEgaWYgdGhpcy5kdXJhdGlvbgorICAgICAgLy8gaXMgZ3JlYXRlciB0aGFuIFBBSU5fUEVBS1NfQVRfTVMsIHNvIGNsYW1wIGl0IHRvIGJldHdlZW4gMCBhbmQgMS4KKyAgICAgIHJldHVybiB0ci5iLmNsYW1wKG5vcm1hbGl6ZWRVc2VyUGFpbiwgMCwgMSk7CisgICAgfSwKKworICAgIGdldCBub3JtYWxpemVkRWZmaWNpZW5jeSgpIHsKKyAgICAgIHJldHVybiAxOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFJlc3BvbnNlSW50ZXJhY3Rpb25SZWNvcmQ6IFJlc3BvbnNlSW50ZXJhY3Rpb25SZWNvcmQKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3Jlc3BvbnNlX2ludGVyYWN0aW9uX3JlY29yZF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3Jlc3BvbnNlX2ludGVyYWN0aW9uX3JlY29yZF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk3ZTYyZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3JhaWwvcmVzcG9uc2VfaW50ZXJhY3Rpb25fcmVjb3JkX3Rlc3QuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yZXNwb25zZV9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgdGVzdF91dGlscyA9IHRyLmMudGVzdF91dGlsczsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciByZXNwb25zZUlSID0gbmV3IHRyLmUucmFpbC5SZXNwb25zZUludGVyYWN0aW9uUmVjb3JkKDAsIDE1MCk7CisgICAgYXNzZXJ0LmVxdWFsKDAsIHJlc3BvbnNlSVIubm9ybWFsaXplZFVzZXJQYWluKTsKKyAgICByZXNwb25zZUlSID0gbmV3IHRyLmUucmFpbC5SZXNwb25zZUludGVyYWN0aW9uUmVjb3JkKDAsIDE1MC4wMDAxKTsKKyAgICBhc3NlcnQuY2xvc2VUbygwLCByZXNwb25zZUlSLm5vcm1hbGl6ZWRVc2VyUGFpbiwgMWUtNSk7CisgICAgcmVzcG9uc2VJUiA9IG5ldyB0ci5lLnJhaWwuUmVzcG9uc2VJbnRlcmFjdGlvblJlY29yZCgwLCAxMDAwKTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgcmVzcG9uc2VJUi5ub3JtYWxpemVkVXNlclBhaW4pOworICAgIHJlc3BvbnNlSVIgPSBuZXcgdHIuZS5yYWlsLlJlc3BvbnNlSW50ZXJhY3Rpb25SZWNvcmQoMCwgOTk5Ljk5OSk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMSwgcmVzcG9uc2VJUi5ub3JtYWxpemVkVXNlclBhaW4sIDFlLTUpOworICAgIHJlc3BvbnNlSVIgPSBuZXcgdHIuZS5yYWlsLlJlc3BvbnNlSW50ZXJhY3Rpb25SZWNvcmQoMCwgNzUxLjY4KTsKKyAgICBhc3NlcnQuY2xvc2VUbygwLjUsIHJlc3BvbnNlSVIubm9ybWFsaXplZFVzZXJQYWluLCAxZS01KTsKKyAgICByZXNwb25zZUlSID0gbmV3IHRyLmUucmFpbC5SZXNwb25zZUludGVyYWN0aW9uUmVjb3JkKDAsIDEpOworICAgIGFzc2VydC5jbG9zZVRvKDAsIHJlc3BvbnNlSVIubm9ybWFsaXplZFVzZXJQYWluLCAxZS01KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9zdHViX3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9yYWlsL3N0dWJfcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzg3NTJjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvcmFpbC9zdHViX3JhaWxfaW50ZXJhY3Rpb25fcmVjb3JkLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvcmFpbC9yYWlsX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFN0dWIgdmVyc2lvbiBvZiBSQUlMSW50ZXJhY3Rpb25SZWNvcmQgZm9yIHRlc3RpbmcuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5lLnJhaWwnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gU3R1YlJBSUxJbnRlcmFjdGlvblJlY29yZChhcmdzKSB7CisgICAgdmFyIHNkID0gdHIuYy50ZXN0X3V0aWxzLmdldFN0YXJ0QW5kRHVyYXRpb25Gcm9tRGljdChhcmdzKTsKKyAgICB0ci5lLnJhaWwuUkFJTEludGVyYWN0aW9uUmVjb3JkLmNhbGwoCisgICAgICAgICB0aGlzLCBhcmdzLnJhaWxUeXBlTmFtZSwgYXJncy5yYWlsVHlwZU5hbWUsCisgICAgICAgICBzZC5zdGFydCwgc2QuZHVyYXRpb24pOworICAgIHRoaXMuYXJncyA9IGFyZ3M7CisgICAgaWYgKGFyZ3MuYXNzb2NpYXRlZEV2ZW50cykgeworICAgICAgYXJncy5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgdGhpcy5hc3NvY2lhdGVkRXZlbnRzLnB1c2goZXZlbnQpOworICAgICAgfSwgdGhpcyk7CisgICAgfQorICB9CisKKyAgU3R1YlJBSUxJbnRlcmFjdGlvblJlY29yZC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5lLnJhaWwuUkFJTEludGVyYWN0aW9uUmVjb3JkLnByb3RvdHlwZSwKKworICAgIGdldCBub3JtYWxpemVkVXNlclBhaW4oKSB7CisgICAgICByZXR1cm4gdGhpcy5hcmdzLm5vcm1hbGl6ZWRVc2VyUGFpbjsKKyAgICB9LAorCisgICAgZ2V0IG5vcm1hbGl6ZWRFZmZpY2llbmN5KCkgeworICAgICAgcmV0dXJuIHRoaXMuYXJncy5ub3JtYWxpemVkRWZmaWNpZW5jeTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBTdHViUkFJTEludGVyYWN0aW9uUmVjb3JkOiBTdHViUkFJTEludGVyYWN0aW9uUmVjb3JkCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvc3lzdHJhY2VfY29uZmlnLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy9zeXN0cmFjZV9jb25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWM1NGQyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvc3lzdHJhY2VfY29uZmlnLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzwhLS0gQ29yZSBhbmQgVUkgY29uZmlncy4gLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3Lmh0bWwiPgorCis8IS0tIEZlYXR1cmVzIHVzZWQgYnkgQW5kcm9pZCBzeXN0cmFjZS4gLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9iYXR0b3JfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9kZG1zX2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2FsZXJ0c19zaWRlX3BhbmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvYW5kcm9pZC9hbmRyb2lkX2F1ZGl0b3IuaHRtbCI+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy90Y21hbGxvYy9oZWFwLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy90Y21hbGxvYy9oZWFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmMzZWY2NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RjbWFsbG9jL2hlYXAuaHRtbApAQCAtMCwwICsxLDk4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9vYmplY3RfaW5zdGFuY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdXRpbC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmUudGNtYWxsb2MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIE9iamVjdFNuYXBzaG90ID0gdHIubW9kZWwuT2JqZWN0U25hcHNob3Q7CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gSGVhcFNuYXBzaG90KCkgeworICAgIE9iamVjdFNuYXBzaG90LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgIH0KKworICBIZWFwU25hcHNob3QucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0U25hcHNob3QucHJvdG90eXBlLAorCisgICAgcHJlSW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICB0ci5lLmNjLnByZUluaXRpYWxpemVPYmplY3QodGhpcyk7CisgICAgfSwKKworICAgIC8vIFRPRE8oamFtZXNjb29rKTogVGhpcyBzZWVtcyB0byBiZSBjYWxsZWQgYmVmb3JlIHRoZSBncmVlbiBkb3QgaXMgY2xpY2tlZC4KKyAgICAvLyBDb25zaWRlciBkb2luZyBpdCBpbiBoZWFwX3ZpZXcuanMuCisgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5hcmdzLmxlbmd0aCA9PSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGhlYXAgc25hcHNob3QgZGF0YS4nKTsKKworICAgICAgLy8gVGhlIGZpcnN0IGVudHJ5IGlzIHRvdGFsIGFsbG9jYXRpb25zIGFjcm9zcyBhbGwgc3RhY2sgdHJhY2VzLgorICAgICAgdGhpcy50b3RhbF8gPSB0aGlzLmFyZ3NbMF07CisgICAgICAvLyBUaGUgcmVzdCBpcyBhIGxpc3Qgb2YgYWxsb2NhdGlvbnMuCisgICAgICB2YXIgYWxsb2NzID0gdGhpcy5hcmdzLnNsaWNlKDEpOworCisgICAgICAvLyBCdWlsZCBhIG5lc3RlZCBkaWN0aW9uYXJ5IG9mIHRyYWNlIGV2ZW50IG5hbWVzLgorICAgICAgdGhpcy5oZWFwXyA9IHsKKyAgICAgICAgY2hpbGRyZW46IHt9LAorICAgICAgICBjdXJyZW50Qnl0ZXM6IDAsCisgICAgICAgIGN1cnJlbnRBbGxvY3M6IDAsCisgICAgICAgIHRvdGFsQnl0ZXM6IDAsCisgICAgICAgIHRvdGFsQWxsb2NzOiAwCisgICAgICB9OworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxvY3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGFsbG9jID0gYWxsb2NzW2ldOworICAgICAgICB2YXIgdHJhY2VOYW1lcyA9IGFsbG9jLnRyYWNlLnNwbGl0KCcgJyk7CisgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcmVjb3JkIGFsbG9jYXRpb25zIGNhdXNlZCBieSB0aGUgaGVhcCBwcm9maWxpbmcKKyAgICAgICAgLy8gc3lzdGVtIGl0c2VsZiwgc28gc2tpcCBhbGxvY2F0aW9ucyB3aXRoIHRoaXMgc3BlY2lhbCBuYW1lLgorICAgICAgICBpZiAodHJhY2VOYW1lcy5pbmRleE9mKCd0cmFjZS1tZW1vcnktaWdub3JlJykgIT0gLTEpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciBoZWFwRW50cnkgPSB0aGlzLmhlYXBfOworICAgICAgICAvLyBXYWxrIGRvd24gaW50byB0aGUgaGVhcCBvZiBzdGFjayB0cmFjZXMuCisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdHJhY2VOYW1lcy5sZW5ndGg7IGorKykgeworICAgICAgICAgIC8vIExvb2sgZm9yIGV4aXN0aW5nIGNoaWxkcmVuIHdpdGggdGhpcyB0cmFjZS4KKyAgICAgICAgICB2YXIgdHJhY2VOYW1lID0gdHJhY2VOYW1lc1tqXTsKKyAgICAgICAgICAvLyBUaGUgZW1wdHkgdHJhY2UgbmFtZSBtZWFucyAiKGhlcmUpIiwgc28gZG9uJ3Qgcm9sbCB0aG9zZSB1cCBpbnRvCisgICAgICAgICAgLy8gcGFyZW50IHRyYWNlcyBiZWNhdXNlIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gY291bnRlZC4KKyAgICAgICAgICBpZiAodHJhY2VOYW1lLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAvLyBBZGQgdXAgdGhlIHRvdGFsIG1lbW9yeSBmb3IgaW50ZXJtZWRpYXRlIGVudHJpZXMsIHNvIHRoZSB0b3Agb2YKKyAgICAgICAgICAgIC8vIGVhY2ggc3VidHJlZSBpcyB0aGUgdG90YWwgbWVtb3J5IGZvciB0aGF0IHRyZWUuCisgICAgICAgICAgICBoZWFwRW50cnkuY3VycmVudEJ5dGVzICs9IGFsbG9jLmN1cnJlbnRCeXRlczsKKyAgICAgICAgICAgIGhlYXBFbnRyeS5jdXJyZW50QWxsb2NzICs9IGFsbG9jLmN1cnJlbnRBbGxvY3M7CisgICAgICAgICAgICBoZWFwRW50cnkudG90YWxCeXRlcyArPSBhbGxvYy50b3RhbEJ5dGVzOworICAgICAgICAgICAgaGVhcEVudHJ5LnRvdGFsQWxsb2NzICs9IGFsbG9jLnRvdGFsQWxsb2NzOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoIWhlYXBFbnRyeS5jaGlsZHJlblt0cmFjZU5hbWVdKSB7CisgICAgICAgICAgICAvLyBOZXcgdHJhY2UgZW50cnkgYXQgdGhpcyBkZXB0aCwgc28gY3JlYXRlIGEgY2hpbGQgZm9yIGl0LgorICAgICAgICAgICAgaGVhcEVudHJ5LmNoaWxkcmVuW3RyYWNlTmFtZV0gPSB7CisgICAgICAgICAgICAgIGNoaWxkcmVuOiB7fSwKKyAgICAgICAgICAgICAgY3VycmVudEJ5dGVzOiBhbGxvYy5jdXJyZW50Qnl0ZXMsCisgICAgICAgICAgICAgIGN1cnJlbnRBbGxvY3M6IGFsbG9jLmN1cnJlbnRBbGxvY3MsCisgICAgICAgICAgICAgIHRvdGFsQnl0ZXM6IGFsbG9jLnRvdGFsQnl0ZXMsCisgICAgICAgICAgICAgIHRvdGFsQWxsb2NzOiBhbGxvYy50b3RhbEFsbG9jcworICAgICAgICAgICAgfTsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gRGVzY2VuZCBpbnRvIHRoZSBjaGlsZHJlbi4KKyAgICAgICAgICBoZWFwRW50cnkgPSBoZWFwRW50cnkuY2hpbGRyZW5bdHJhY2VOYW1lXTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworICB9OworCisgIE9iamVjdFNuYXBzaG90LnJlZ2lzdGVyKAorICAgIEhlYXBTbmFwc2hvdCwKKyAgICB7dHlwZU5hbWU6ICdtZW1vcnk6OkhlYXAnfSk7CisKKyAgcmV0dXJuIHsKKyAgICBIZWFwU25hcHNob3Q6IEhlYXBTbmFwc2hvdAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RjbWFsbG9jL2hlYXBfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdGNtYWxsb2MvaGVhcF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU5MmMzMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RjbWFsbG9jL2hlYXBfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvdGNtYWxsb2MvaGVhcC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBIZWFwU25hcHNob3QgPSB0ci5lLnRjbWFsbG9jLkhlYXBTbmFwc2hvdDsKKworICAvLyBUZXN0cyB0b3RhbCBhbGxvY2F0aW9uIGNvdW50LgorICB0ZXN0KCd0b3RhbHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc25hcHNob3QgPSBuZXcgSGVhcFNuYXBzaG90KHt9LCAxLCBbCisgICAgICB7CisgICAgICAgICdjdXJyZW50X2FsbG9jcyc6IDEwLAorICAgICAgICAndG90YWxfYWxsb2NzJzogMTAwLAorICAgICAgICAnY3VycmVudF9ieXRlcyc6IDEwMDAwLAorICAgICAgICAndHJhY2UnOiAnJywKKyAgICAgICAgJ3RvdGFsX2J5dGVzJzogMTAwMDAwCisgICAgICB9LAorICAgICAgeworICAgICAgICAnY3VycmVudF9hbGxvY3MnOiAyLAorICAgICAgICAndG90YWxfYWxsb2NzJzogMjIsCisgICAgICAgICdjdXJyZW50X2J5dGVzJzogMjAwLAorICAgICAgICAndHJhY2UnOiAnVGVzdE9iamVjdDo6VGVzdE1ldGhvZCAnLAorICAgICAgICAndG90YWxfYnl0ZXMnOiAyMjAwCisgICAgICB9CisgICAgXSk7CisgICAgc25hcHNob3QucHJlSW5pdGlhbGl6ZSgpOworICAgIHNuYXBzaG90LmluaXRpYWxpemUoKTsKKworICAgIC8vIEJhc2UgY2xhc3MgZ290IHRoZSB0aW1lc3RhbXAuCisgICAgYXNzZXJ0LmVxdWFsKHNuYXBzaG90LnRzLCAxKTsKKworICAgIC8vIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgbGlzdCBpcyBmb3IgdG90YWxzLgorICAgIGFzc2VydC5lcXVhbChzbmFwc2hvdC50b3RhbF8uY3VycmVudEFsbG9jcywgMTApOworICAgIGFzc2VydC5lcXVhbChzbmFwc2hvdC50b3RhbF8uY3VycmVudEJ5dGVzLCAxMDAwMCk7CisgIH0pOworCisgIC8vIFRlc3RzIG11bHRpLWxldmVsIHRyYWNlIHN0YWNrcy4KKyAgdGVzdCgnbXVsdGlMZXZlbCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzbmFwc2hvdCA9IG5ldyBIZWFwU25hcHNob3Qoe30sIDEsIFsKKyAgICAgIHsKKyAgICAgICAgJ2N1cnJlbnRfYWxsb2NzJzogMTAsCisgICAgICAgICd0b3RhbF9hbGxvY3MnOiAxMDAsCisgICAgICAgICdjdXJyZW50X2J5dGVzJzogMTAwMDAsCisgICAgICAgICd0cmFjZSc6ICcnLAorICAgICAgICAndG90YWxfYnl0ZXMnOiAxMDAwMDAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICdjdXJyZW50X2FsbG9jcyc6IDIsCisgICAgICAgICd0b3RhbF9hbGxvY3MnOiAyMiwKKyAgICAgICAgJ2N1cnJlbnRfYnl0ZXMnOiAyMDAsCisgICAgICAgICd0cmFjZSc6ICdUZXN0T2JqZWN0OjpUZXN0TWV0aG9kICcsCisgICAgICAgICd0b3RhbF9ieXRlcyc6IDIyMDAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICdjdXJyZW50X2FsbG9jcyc6IDMsCisgICAgICAgICd0b3RhbF9hbGxvY3MnOiAzMywKKyAgICAgICAgJ2N1cnJlbnRfYnl0ZXMnOiAzMDAsCisgICAgICAgICd0cmFjZSc6ICdUZXN0T2JqZWN0Mjo6VGVzdE1ldGhvZDIgICcsCisgICAgICAgICd0b3RhbF9ieXRlcyc6IDMzMDAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICdjdXJyZW50X2FsbG9jcyc6IDUsCisgICAgICAgICd0b3RhbF9hbGxvY3MnOiA1NSwKKyAgICAgICAgJ2N1cnJlbnRfYnl0ZXMnOiA1MDAsCisgICAgICAgICd0cmFjZSc6ICdUZXN0T2JqZWN0Mjo6VGVzdE1ldGhvZDIgVGVzdE9iamVjdDM6OlRlc3RNZXRob2QzICcsCisgICAgICAgICd0b3RhbF9ieXRlcyc6IDU1MDAKKyAgICAgIH0KKyAgICBdKTsKKyAgICBzbmFwc2hvdC5wcmVJbml0aWFsaXplKCk7CisgICAgc25hcHNob3QuaW5pdGlhbGl6ZSgpOworCisgICAgLy8gT3VyIGhlYXAgaGFzIHR3byB0b3AtbGV2ZWwgc3RhY2tzLgorICAgIHZhciBoZWFwID0gc25hcHNob3QuaGVhcF87CisgICAgdmFyIGNoaWxkS2V5cyA9IE9iamVjdC5rZXlzKGhlYXAuY2hpbGRyZW4pOworICAgIGFzc2VydC5lcXVhbChjaGlsZEtleXMubGVuZ3RoLCAyKTsKKyAgICAvLyBCb3RoIG1ldGhvZHMgZXhpc3QgYXMgY2hpbGRyZW4uCisgICAgYXNzZXJ0Lm5vdEVxdWFsKGNoaWxkS2V5cy5pbmRleE9mKCdUZXN0T2JqZWN0OjpUZXN0TWV0aG9kJyksIC0xKTsKKyAgICBhc3NlcnQubm90RXF1YWwoY2hpbGRLZXlzLmluZGV4T2YoJ1Rlc3RPYmplY3QyOjpUZXN0TWV0aG9kMicpLCAtMSk7CisKKyAgICAvLyBWZXJpZnkgdGhlIGZpcnN0IHRyYWNlIGVudHJ5IHN0YWNrLgorICAgIHZhciB0cmFjZSA9IGhlYXAuY2hpbGRyZW5bJ1Rlc3RPYmplY3Q6OlRlc3RNZXRob2QnXTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2UuY3VycmVudEFsbG9jcywgMik7CisgICAgYXNzZXJ0LmVxdWFsKHRyYWNlLmN1cnJlbnRCeXRlcywgMjAwKTsKKyAgICAvLyBPbmUgY2hpbGQgZm9yICIoaGVyZSkiLgorICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyh0cmFjZS5jaGlsZHJlbikubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHRyYWNlLmNoaWxkcmVuWycnXSk7CisKKyAgICAvLyBWZXJpZnkgdGhlIHNlY29uZCB0cmFjZSBlbnRyeSBzdGFjay4KKyAgICB0cmFjZSA9IGhlYXAuY2hpbGRyZW5bJ1Rlc3RPYmplY3QyOjpUZXN0TWV0aG9kMiddOworICAgIC8vIE1lbW9yeSBzaG91bGQgaGF2ZSBzdW1tZWQgdXAuCisgICAgYXNzZXJ0LmVxdWFsKHRyYWNlLmN1cnJlbnRBbGxvY3MsIDgpOworICAgIGFzc2VydC5lcXVhbCh0cmFjZS5jdXJyZW50Qnl0ZXMsIDgwMCk7CisgICAgLy8gVHdvIGNoaWxkcmVuLCAiKGhlcmUpIiBhbmQgYW5vdGhlciBzdGFjay4KKyAgICBhc3NlcnQuZXF1YWwoT2JqZWN0LmtleXModHJhY2UuY2hpbGRyZW4pLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0cmFjZS5jaGlsZHJlblsnVGVzdE9iamVjdDM6OlRlc3RNZXRob2QzJ10pOworICAgIGFzc2VydC5pc0RlZmluZWQodHJhY2UuY2hpbGRyZW5bJyddKTsKKworICAgIHRyYWNlID0gdHJhY2UuY2hpbGRyZW5bJ1Rlc3RPYmplY3QzOjpUZXN0TWV0aG9kMyddOworICAgIGFzc2VydC5lcXVhbCh0cmFjZS5jdXJyZW50QWxsb2NzLCA1KTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2UuY3VycmVudEJ5dGVzLCA1MDApOworICAgIGFzc2VydC5lcXVhbChPYmplY3Qua2V5cyh0cmFjZS5jaGlsZHJlbikubGVuZ3RoLCAxKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2NvbnRleHQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9jb250ZXh0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9jb250ZXh0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9jb250ZXh0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2ZpbHRlci5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy90cXVlcnkvZmlsdGVyLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfYWxsX29mLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy90cXVlcnkvZmlsdGVyX2FsbF9vZi5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvZmlsdGVyX2FsbF9vZi5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy90cXVlcnkvZmlsdGVyX2FsbF9vZi5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvZmlsdGVyX2FueV9vZi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9hbnlfb2YuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9hbnlfb2YuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9hbnlfb2YuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9oYXNfYW5jZXN0b3IuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2FuY2VzdG9yLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2FuY2VzdG9yLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2FuY2VzdG9yLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2R1cmF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy90cXVlcnkvZmlsdGVyX2hhc19kdXJhdGlvbi5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvZmlsdGVyX2hhc19kdXJhdGlvbi5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy90cXVlcnkvZmlsdGVyX2hhc19kdXJhdGlvbi5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90cXVlcnkvZmlsdGVyX2hhc190aXRsZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9oYXNfdGl0bGUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9oYXNfdGl0bGUuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9oYXNfdGl0bGUuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9pc190b3BfbGV2ZWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaXNfdG9wX2xldmVsLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaXNfdG9wX2xldmVsLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaXNfdG9wX2xldmVsLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS90cXVlcnkuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS90cXVlcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGM2MDgxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdHF1ZXJ5L3RxdWVyeS5odG1sCkBAIC0wLDAgKzEsMTc3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2NyaXB0aW5nX29iamVjdC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RxdWVyeS9jb250ZXh0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9hbGxfb2YuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90cXVlcnkvZmlsdGVyX2FueV9vZi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaGFzX2FuY2VzdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvdHF1ZXJ5L2ZpbHRlcl9oYXNfZHVyYXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90cXVlcnkvZmlsdGVyX2hhc190aXRsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3RxdWVyeS9maWx0ZXJfaXNfdG9wX2xldmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5lLnRxdWVyeScsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBUUXVlcnkoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpIHsKKyAgICB0ci5jLlNjcmlwdGluZ09iamVjdC5jYWxsKHRoaXMpOworCisgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8gPSBicnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKyAgICB0aGlzLnBhcmVudF8gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5maWx0ZXJFeHByZXNzaW9uXyA9IHVuZGVmaW5lZDsKKyAgICAvLyBNZW1vaXplZCBmaWx0ZXJpbmcgcmVzdWx0LgorICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgfTsKKworICBUUXVlcnkucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIuYy5TY3JpcHRpbmdPYmplY3QucHJvdG90eXBlLAorCisgICAgb25Nb2RlbENoYW5nZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKSB7CisgICAgICByZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87CisgICAgfSwKKworICAgIC8vIEFwcGVuZCBhIG5ldyBmaWx0ZXIgZXhwcmVzc2lvbiB0byB0aGlzIHF1ZXJ5IGFuZCByZXR1cm4gYSBxdWVyeSBub2RlCisgICAgLy8gdGhhdCByZXByZXNlbnRzIHRoZSByZXN1bHQuCisgICAgZmlsdGVyOiBmdW5jdGlvbihmaWx0ZXJFeHByZXNzaW9uKSB7CisgICAgICB2YXIgcmVzdWx0ID0gbmV3IFRRdWVyeSh0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyk7CisgICAgICByZXN1bHQucGFyZW50XyA9IHRoaXM7CisgICAgICByZXN1bHQuZmlsdGVyRXhwcmVzc2lvbl8gPQorICAgICAgICAgIHRyLmUudHF1ZXJ5LkZpbHRlci5ub3JtYWxpemVGaWx0ZXJFeHByZXNzaW9uKGZpbHRlckV4cHJlc3Npb24pOworICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LAorCisgICAgLy8gQ3JlYXRlcyBhIGdyYXBoIG9mIHtUYXNrfSBvYmplY3RzIHdoaWNoIHdpbGwgY29tcHV0ZSB0aGUgc2VsZWN0aW9ucyBmb3IKKyAgICAvLyB0aGlzIGZpbHRlciBvYmplY3QgYW5kIGFsbCBvZiBpdHMgcGFyZW50cy4gVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBvYmplY3QKKyAgICAvLyB3aXRoIHRoZSBmb2xsb3dpbmcgZmllbGRzOgorICAgIC8vICAtIHJvb3RUYXNrOiB7VGFza30gd2hpY2ggc2hvdWxkIGJlIGV4ZWN1dGVkIHRvIGtpY2sgb2ZmIHByb2Nlc3NpbmcgZm9yCisgICAgLy8gICAgICAgICAgICAgIHRoZSBlbnRpcmUgdGFzayBncmFwaC4KKyAgICAvLyAgLSBsYXN0VGFzazogVGhlIGZpbmFsIHtUYXNrfSBvZiB0aGUgZ3JhcGguIENhbiBiZSB1c2VkIGJ5IHRoZSBjYWxsZXIgdG8KKyAgICAvLyAgICAgICAgICAgICAgZW5xdWV1ZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgYXQgdGhlIGVuZC4KKyAgICAvLyAgLSBsYXN0Tm9kZTogVGhlIGxhc3QgZmlsdGVyIG9iamVjdCBpbiB0aGUgdGFzay4gSXQncyBzZWxlY3Rpb24gcHJvcGVydHkKKyAgICAvLyAgICAgICAgICAgICAgd2lsbCBjb250YWluIHRoZSBmaWx0ZXJpbmcgcmVzdWx0IG9uY2UgfGZpbmFsVGFza3wKKyAgICAvLyAgICAgICAgICAgICAgY29tcGxldGVzLgorICAgIGNyZWF0ZUZpbHRlclRhc2tHcmFwaF86IGZ1bmN0aW9uKCkgeworICAgICAgLy8gTGlzdCBvZiBub2RlcyBpbiBvcmRlciBmcm9tIHRoZSBjdXJyZW50IG9uZSB0byB0aGUgcm9vdC4KKyAgICAgIHZhciBub2RlcyA9IFtdOworICAgICAgdmFyIG5vZGUgPSB0aGlzOworICAgICAgd2hpbGUgKG5vZGUgIT09IHVuZGVmaW5lZCkgeworICAgICAgICBub2Rlcy5wdXNoKG5vZGUpOworICAgICAgICBub2RlID0gbm9kZS5wYXJlbnRfOworICAgICAgfQorCisgICAgICB2YXIgcm9vdFRhc2sgPSBuZXcgdHIuYi5UYXNrKCk7CisgICAgICB2YXIgbGFzdFRhc2sgPSByb290VGFzazsKKyAgICAgIGZvciAodmFyIGkgPSBub2Rlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldOworICAgICAgICAvLyBSZXVzZSBhbnkgbWVtb2l6ZWQgcmVzdWx0LgorICAgICAgICBpZiAobm9kZS5zZWxlY3Rpb25fICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIG5vZGUuc2VsZWN0aW9uXyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgICBpZiAobm9kZS5wYXJlbnRfID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSByb290LCBzdGFydCBieSBjb2xsZWN0aW5nIGFsbCBvYmplY3RzIGZyb20gdGhlCisgICAgICAgICAgLy8gYnJ1c2hpbmcgc3RhdGUgY29udHJvbGxlci4KKyAgICAgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKAorICAgICAgICAgICAgICB0aGlzLnNlbGVjdEV2ZXJ5dGhpbmdBc1Rhc2tfKG5vZGUuc2VsZWN0aW9uXykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIC8vIE90aGVyd2lzZSBleGVjdXRlIHRoZSBmaWx0ZXIgZXhwcmVzc2lvbiBmb3IgdGhpcyBub2RlIGFuZCBmaWxsCisgICAgICAgICAgLy8gaW4gaXRzIHNlbGVjdGlvbi4KKyAgICAgICAgICB2YXIgcHJldk5vZGUgPSBub2Rlc1tpICsgMV07CisgICAgICAgICAgbGFzdFRhc2sgPSB0aGlzLmNyZWF0ZUZpbHRlclRhc2tGb3JOb2RlXyhsYXN0VGFzaywgbm9kZSwgcHJldk5vZGUpOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4ge3Jvb3RUYXNrOiByb290VGFzaywgbGFzdFRhc2s6IGxhc3RUYXNrLCBsYXN0Tm9kZTogbm9kZX07CisgICAgfSwKKworICAgIGNyZWF0ZUZpbHRlclRhc2tGb3JOb2RlXzogZnVuY3Rpb24obGFzdFRhc2ssIG5vZGUsIHByZXZOb2RlKSB7CisgICAgICByZXR1cm4gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFRPRE8oc2t5b3N0aWwpOiBCcmVhayBpbnRvIHN1YnRhc2tzLgorICAgICAgICBub2RlLmV2YWx1YXRlRmlsdGVyRXhwcmVzc2lvbl8oCisgICAgICAgICAgICBwcmV2Tm9kZS5zZWxlY3Rpb25fLCBub2RlLnNlbGVjdGlvbl8pOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIC8vIEFwcGxpZXMgdGhlIHJlc3VsdCBvZiBhIGZpbHRlciBleHByZXNzaW9uIGZvciBhIGdpdmVuIGV2ZW50IGFuZCBhbGwKKyAgICAvLyBvZiBpdHMgc3Vic2xpY2VzIGFuZCBhZGRzIHRoZSBtYXRjaGluZyBldmVudHMgdG8gYW4gb3V0cHV0IHNlbGVjdGlvbi4KKyAgICBldmFsdWF0ZUZpbHRlckV4cHJlc3Npb25fOiBmdW5jdGlvbihpbnB1dFNlbGVjdGlvbiwgb3V0cHV0U2VsZWN0aW9uKSB7CisgICAgICB2YXIgc2VlbkV2ZW50cyA9IHt9OworICAgICAgaW5wdXRTZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbihldmVudCkgeworICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB0ci5lLnRxdWVyeS5Db250ZXh0KCk7CisgICAgICAgIGNvbnRleHQuZXZlbnQgPSBldmVudDsKKyAgICAgICAgdGhpcy5ldmFsdWF0ZUZpbHRlckV4cHJlc3Npb25Gb3JFdmVudF8oCisgICAgICAgICAgICBjb250ZXh0LCBpbnB1dFNlbGVjdGlvbiwgb3V0cHV0U2VsZWN0aW9uLCBzZWVuRXZlbnRzKTsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGV2YWx1YXRlRmlsdGVyRXhwcmVzc2lvbkZvckV2ZW50XzogZnVuY3Rpb24oCisgICAgICAgIGNvbnRleHQsIGlucHV0U2VsZWN0aW9uLCBvdXRwdXRTZWxlY3Rpb24sIHNlZW5FdmVudHMpIHsKKyAgICAgIHZhciBldmVudCA9IGNvbnRleHQuZXZlbnQ7CisgICAgICBpZiAoaW5wdXRTZWxlY3Rpb24uY29udGFpbnMoZXZlbnQpICYmICFzZWVuRXZlbnRzW2V2ZW50Lmd1aWRdKSB7CisgICAgICAgIHNlZW5FdmVudHNbZXZlbnQuZ3VpZF0gPSB0cnVlOworICAgICAgICBpZiAoIXRoaXMuZmlsdGVyRXhwcmVzc2lvbl8gfHwKKyAgICAgICAgICAgIHRoaXMuZmlsdGVyRXhwcmVzc2lvbl8uZXZhbHVhdGUoY29udGV4dCkpCisgICAgICAgICAgb3V0cHV0U2VsZWN0aW9uLnB1c2goZXZlbnQpOworICAgICAgfQorICAgICAgaWYgKCFldmVudC5zdWJTbGljZXMpCisgICAgICAgIHJldHVybjsKKyAgICAgIGNvbnRleHQgPSBjb250ZXh0LnB1c2goZXZlbnQpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudC5zdWJTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgY29udGV4dC5ldmVudCA9IGV2ZW50LnN1YlNsaWNlc1tpXTsKKyAgICAgICAgdGhpcy5ldmFsdWF0ZUZpbHRlckV4cHJlc3Npb25Gb3JFdmVudF8oCisgICAgICAgICAgICBjb250ZXh0LCBpbnB1dFNlbGVjdGlvbiwgb3V0cHV0U2VsZWN0aW9uLCBzZWVuRXZlbnRzKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLy8gU2hvdyB0aGUgcmVzdWx0IGFzIGEgaGlnaGxpZ2h0IG9uIHRoZSBicnVzaGluZyBzdGF0ZSBjb250cm9sbGVyLiBSZXR1cm5zCisgICAgLy8gYSB7VGFza30gd2hpY2ggcnVucyB0aGUgcXVlcnkgYW5kIHNldHMgdGhlIGhpZ2hsaWdodC4KKyAgICBzaG93OiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBncmFwaCA9IHRoaXMuY3JlYXRlRmlsdGVyVGFza0dyYXBoXygpOworCisgICAgICBncmFwaC5sYXN0VGFzayA9IGdyYXBoLmxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNob3dTY3JpcHRDb250cm9sU2VsZWN0aW9uKAorICAgICAgICAgICAgZ3JhcGgubGFzdE5vZGUuc2VsZWN0aW9uXyk7CisgICAgICB9LCB0aGlzKTsKKyAgICAgIHJldHVybiBncmFwaC5yb290VGFzazsKKyAgICB9LAorCisgICAgLy8gUmV0dXJucyBhIHRhc2sgdGhhdCBmaWxscyB0aGUgZ2l2ZW4gc2VsZWN0aW9uIHdpdGggZXZlcnl0aGluZyByZWFjaGFibGUKKyAgICAvLyBieSB0aGUgYnJ1c2hpbmcgc3RhdGUgY29udHJvbGxlci4KKyAgICBzZWxlY3RFdmVyeXRoaW5nQXNUYXNrXzogZnVuY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB2YXIgcGFzc1Rocm91Z2hGaWx0ZXIgPSBuZXcgdHIuYy5GaWx0ZXIoKTsKKyAgICAgIHZhciBmaWx0ZXJUYXNrID0gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci4KKyAgICAgICAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrKHBhc3NUaHJvdWdoRmlsdGVyLAorICAgICAgICAgICAgICBzZWxlY3Rpb24pOworICAgICAgcmV0dXJuIGZpbHRlclRhc2s7CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdmFyIGdyYXBoID0gdGhpcy5jcmVhdGVGaWx0ZXJUYXNrR3JhcGhfKCk7CisgICAgICAgIHRyLmIuVGFzay5SdW5TeW5jaHJvbm91c2x5KGdyYXBoLnJvb3RUYXNrKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87CisgICAgfQorICB9OworICB0ci5jLlNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5LnJlZ2lzdGVyKAorICAgICAgbmV3IFRRdWVyeSgpLAorICAgICAgeworICAgICAgICBuYW1lOiAnJHQnCisgICAgICB9CisgICk7CisKKyAgcmV0dXJuIHsKKyAgICBUUXVlcnk6IFRRdWVyeQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS90cXVlcnlfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdHF1ZXJ5L3RxdWVyeV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVhOGJjZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3RxdWVyeS90cXVlcnlfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnRfdGFyZ2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2NyaXB0aW5nX2NvbnRyb2xsZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90cXVlcnkvdHF1ZXJ5Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5lLnRxdWVyeScsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKSB7CisgICAgdHIuYi5FdmVudFRhcmdldC5jYWxsKHRoaXMpOworICAgIHRoaXMuYWxsRXZlbnRzXyA9IFtdOworICB9CisKKyAgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlLAorCisgICAgZ2V0IGFsbEV2ZW50cygpIHsKKyAgICAgIHJldHVybiB0aGlzLmFsbEV2ZW50c187CisgICAgfSwKKworICAgIHNldCBhbGxFdmVudHMoYWxsRXZlbnRzKSB7CisgICAgICB0aGlzLmFsbEV2ZW50c18gPSBhbGxFdmVudHM7CisgICAgICB2YXIgZSA9IG5ldyB0ci5iLkV2ZW50KCdtb2RlbC1jaGFuZ2VkJyk7CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSk7CisgICAgfSwKKworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgICByZXR1cm4gbmV3IHRyLmIuVGFzayhmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG4gPSB0aGlzLmFsbEV2ZW50cy5sZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgICAgICAgdGhpcy5hZGRTdWJ0cmVlVG9TZWxlY3Rpb25fKHNlbGVjdGlvbiwgdGhpcy5hbGxFdmVudHNbaV0pOworICAgICAgICB9CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgYWRkU3VidHJlZVRvU2VsZWN0aW9uXzogZnVuY3Rpb24oc2VsZWN0aW9uLCBldmVudCkgeworICAgICAgc2VsZWN0aW9uLnB1c2goZXZlbnQpOworICAgICAgaWYgKGV2ZW50LnN1YlNsaWNlcykgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50LnN1YlNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHRoaXMuYWRkU3VidHJlZVRvU2VsZWN0aW9uXyhzZWxlY3Rpb24sIGV2ZW50LnN1YlNsaWNlc1tpXSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9LAorICAgIHNob3dTY3JpcHRDb250cm9sU2VsZWN0aW9uOiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICB0aGlzLmhpZ2hsaWdodCA9IHNlbGVjdGlvbjsKKyAgICB9CisgIH07CisgIHJldHVybiB7CisgICAgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyOiBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIKKyAgfTsKK30pOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IHRyLmUudHF1ZXJ5LkZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKworICBmdW5jdGlvbiBjcmVhdGVTbGljZUFycmF5KHNsaWNlQ291bnQpIHsKKyAgICB2YXIgYWxsRXZlbnRzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUNvdW50OyBpKyspIHsKKyAgICAgIGFsbEV2ZW50cy5wdXNoKHtndWlkOiBpfSk7CisgICAgfQorICAgIHJldHVybiBhbGxFdmVudHM7CisgIH0KKworICBmdW5jdGlvbiBjcmVhdGVGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKHNsaWNlQ291bnQpIHsKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBuZXcgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyKCk7CisgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuYWxsRXZlbnRzID0gY3JlYXRlU2xpY2VBcnJheShzbGljZUNvdW50KTsKKyAgICByZXR1cm4gYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI7CisgIH0KKworICBmdW5jdGlvbiBnZXRTY3JpcHRPYmplY3QobmFtZSkgeworICAgIHZhciB0eXBlSW5mb3MgPSB0ci5jLlNjcmlwdGluZ09iamVjdFJlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVJbmZvcy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKHR5cGVJbmZvc1tpXS5tZXRhZGF0YS5uYW1lID09PSBuYW1lKSB7CisgICAgICAgIHJldHVybiB0eXBlSW5mb3NbaV0uY29uc3RydWN0b3I7CisgICAgICB9CisgICAgfQorICB9CisKKyAgdGVzdCgndHF1ZXJ5QXN5bmNTZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBjcmVhdGVGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKDMpOworICAgIHZhciB0cXVlcnkgPSBuZXcgdHIuZS50cXVlcnkuVFF1ZXJ5KGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciByZXN1bHQgPSB0cXVlcnkuc2hvdygpOworICAgIHRyLmIuVGFzay5SdW5TeW5jaHJvbm91c2x5KHJlc3VsdCk7CisgICAgYXNzZXJ0LmVxdWFsKGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmhpZ2hsaWdodC5sZW5ndGgsIDMpOworICB9KTsKKworICB0ZXN0KCd0cXVlcnlTeW5jU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gY3JlYXRlRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyXygzKTsKKyAgICB2YXIgdHF1ZXJ5ID0gbmV3IHRyLmUudHF1ZXJ5LlRRdWVyeShicnVzaGluZ1N0YXRlQ29udHJvbGxlcik7CisKKyAgICBhc3NlcnQuZXF1YWwodHF1ZXJ5LnNlbGVjdGlvbi5sZW5ndGgsIDMpOworCisgICAgLy8gU2VsZWN0aW9uIHNob3VsZCBnZXQgcmVzZXQgd2hlbiB0aGUgbW9kZWwgY2hhbmdlcy4KKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5hbGxFdmVudHMgPSBjcmVhdGVTbGljZUFycmF5KDUpOworICAgIHRxdWVyeS5vbk1vZGVsQ2hhbmdlZCgpOworICAgIGFzc2VydC5lcXVhbCh0cXVlcnkuc2VsZWN0aW9uLmxlbmd0aCwgNSk7CisgIH0pOworCisgIHRlc3QoJ3RxdWVyeVBhc3NUaHJvdWdoRmlsdGVyaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IGNyZWF0ZUZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcl8oMyk7CisgICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoKS5maWx0ZXIoKS5zaG93KCk7CisgICAgdHIuYi5UYXNrLlJ1blN5bmNocm9ub3VzbHkocmVzdWx0KTsKKyAgICBhc3NlcnQuZXF1YWwoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuaGlnaGxpZ2h0Lmxlbmd0aCwgMyk7CisgIH0pOworCisgIHRlc3QoJ3RxdWVyeUZpbHRlckhhc1RpdGxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGhhc1RpdGxlID0gZ2V0U2NyaXB0T2JqZWN0KCdoYXNUaXRsZScpOworICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IG5ldyBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKTsKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5hbGxFdmVudHMgPSBbCisgICAgICAgIHtndWlkOiAxLCB0aXRsZTogJ2EnfSwKKyAgICAgICAge2d1aWQ6IDIsIHRpdGxlOiAnYid9LAorICAgICAgICB7Z3VpZDogMywgdGl0bGU6ICdjJ30KKyAgICBdOworICAgIHZhciB0cXVlcnkgPSBuZXcgdHIuZS50cXVlcnkuVFF1ZXJ5KGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGhhc1RpdGxlKCdhJykpLnNlbGVjdGlvbjsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAxKTsKKworICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKCdiJykuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDIpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoL15jJC8pLnNlbGVjdGlvbjsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAzKTsKKyAgfSk7CisKKyAgdGVzdCgndHF1ZXJ5RmlsdGVySGFzQW5jZXN0b3InLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaGFzQW5jZXN0b3IgPSBnZXRTY3JpcHRPYmplY3QoJ2hhc0FuY2VzdG9yJyk7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmFsbEV2ZW50cyA9IFsKKyAgICAgICAge2d1aWQ6IDEsIHRpdGxlOiAnYSd9LAorICAgICAgICB7Z3VpZDogMiwgdGl0bGU6ICdiJywgc3ViU2xpY2VzOiBbe2d1aWQ6IDR9XX0sCisgICAgICAgIHtndWlkOiAzLCB0aXRsZTogJ2MnfQorICAgIF07CisgICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaGFzQW5jZXN0b3IoJ2InKSkuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDQpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaGFzQW5jZXN0b3IoKSkuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDQpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaGFzQW5jZXN0b3IoJ2EnKSkuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgndHF1ZXJ5RmlsdGVyQWxsT2YnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYWxsT2YgPSBnZXRTY3JpcHRPYmplY3QoJ2FsbE9mJyk7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmFsbEV2ZW50cyA9IFsKKyAgICAgICAge2d1aWQ6IDEsIHRpdGxlOiAnYTEnfSwKKyAgICAgICAge2d1aWQ6IDIsIHRpdGxlOiAnYjEnfSwKKyAgICAgICAge2d1aWQ6IDMsIHRpdGxlOiAnYzEnfQorICAgIF07CisgICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoYWxsT2YoJ2ExJykpLnNlbGVjdGlvbjsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAxKTsKKworICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGFsbE9mKCdhMScsIC8xLykpLnNlbGVjdGlvbjsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAxKTsKKworICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGFsbE9mKCkpLnNlbGVjdGlvbjsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMyk7CisgIH0pOworCisgIHRlc3QoJ3RxdWVyeUZpbHRlckFueU9mJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGFueU9mID0gZ2V0U2NyaXB0T2JqZWN0KCdhbnlPZicpOworICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IG5ldyBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKTsKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5hbGxFdmVudHMgPSBbCisgICAgICAgIHtndWlkOiAxLCB0aXRsZTogJ2EnfSwKKyAgICAgICAge2d1aWQ6IDIsIHRpdGxlOiAnYid9LAorICAgICAgICB7Z3VpZDogMywgdGl0bGU6ICdjJ30KKyAgICBdOworICAgIHZhciB0cXVlcnkgPSBuZXcgdHIuZS50cXVlcnkuVFF1ZXJ5KGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGFueU9mKCdhJywgJ2InKSkuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDEpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0uZ3VpZCwgMik7CisKKyAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihhbnlPZignbm90IHRoZXJlJywgJ2EnKSkuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDEpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoYW55T2YoKSkuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAzKTsKKyAgfSk7CisKKyAgdGVzdCgndHF1ZXJ5RmlsdGVySXNUb3BMZXZlbCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpc1RvcExldmVsID0gZ2V0U2NyaXB0T2JqZWN0KCdpc1RvcExldmVsJyk7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmFsbEV2ZW50cyA9IFsKKyAgICAgICAge2d1aWQ6IDEsIHRpdGxlOiAnYSd9LAorICAgICAgICB7Z3VpZDogMiwgdGl0bGU6ICdiJywgc3ViU2xpY2VzOiBbe2d1aWQ6IDR9XX0sCisgICAgICAgIHtndWlkOiAzLCB0aXRsZTogJ2MnfQorICAgIF07CisgICAgdmFyIHRxdWVyeSA9IG5ldyB0ci5lLnRxdWVyeS5UUXVlcnkoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaXNUb3BMZXZlbCgpKS5zZWxlY3Rpb247CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXS5ndWlkLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzJdLmd1aWQsIDMpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaXNUb3BMZXZlbCgnYScpKS5zZWxlY3Rpb247CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgMSk7CisgIH0pOworCisgIHRlc3QoJ3RxdWVyeUZpbHRlckhhc0R1cmF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGhhc0R1cmF0aW9uID0gZ2V0U2NyaXB0T2JqZWN0KCdoYXNEdXJhdGlvbicpOworICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IG5ldyBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKTsKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5hbGxFdmVudHMgPSBbCisgICAgICAgIHtndWlkOiAxLCB0aXRsZTogJ2EnLCBkdXJhdGlvbjogMX0sCisgICAgICAgIHtndWlkOiAyLCB0aXRsZTogJ2InLCBkdXJhdGlvbjogMn0sCisgICAgICAgIHtndWlkOiAzLCB0aXRsZTogJ2MnLCBkdXJhdGlvbjogM30sCisgICAgICAgIHtndWlkOiA0LCB0aXRsZTogJ25vIGR1cmF0aW9uJ30KKyAgICBdOworICAgIHZhciB0cXVlcnkgPSBuZXcgdHIuZS50cXVlcnkuVFF1ZXJ5KGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciByZXN1bHQgPSB0cXVlcnkuZmlsdGVyKGhhc0R1cmF0aW9uKDEuNSwgMi41KSkuc2VsZWN0aW9uOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLmd1aWQsIDIpOworCisgICAgdmFyIHJlc3VsdCA9IHRxdWVyeS5maWx0ZXIoaGFzRHVyYXRpb24oMywgSW5maW5pdHkpKS5zZWxlY3Rpb247CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdC5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMF0uZ3VpZCwgMyk7CisKKyAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihoYXNEdXJhdGlvbigtMSwgMCkpLnNlbGVjdGlvbjsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMCk7CisKKyAgICB2YXIgcmVzdWx0ID0gdHF1ZXJ5LmZpbHRlcihoYXNEdXJhdGlvbihmdW5jdGlvbihkKSB7CisgICAgICByZXR1cm4gZCA+IDI7CisgICAgfSkpLnNlbGVjdGlvbjsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXS5ndWlkLCAzKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdnN5bmMvdnN5bmNfYXVkaXRvci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9leHRyYXMvdnN5bmMvdnN5bmNfYXVkaXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1NGVkZmUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy92c3luYy92c3luY19hdWRpdG9yLmh0bWwKQEAgLTAsMCArMSwxMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYXVkaXRvci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmUuYXVkaXRzJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFZTWU5DX0NPVU5URVJfUFJFQ0lTSU9OUyA9IHsKKyAgICAvLyBBbmRyb2lkLiBTb21lIHZlcnNpb25zIGhhdmUgVlNZTkMgc3BsaXQgb3V0IGludG8gVlNZTkMtYXBwIGFuZCBWU1lOQy1zZi4KKyAgICAvLyBSZXF1aXJlcyAiZ2Z4IiBzeXN0cmFjZSBjYXRlZ29yeSB0byBiZSBlbmFibGVkLgorICAgICdhbmRyb2lkLlZTWU5DLWFwcCc6IDE1LAorICAgICdhbmRyb2lkLlZTWU5DJzogMTUKKyAgfTsKKworICB2YXIgVlNZTkNfU0xJQ0VfUFJFQ0lTSU9OUyA9IHsKKyAgICAvLyBBbmRyb2lkLgorICAgICdSZW5kZXJXaWRnZXRIb3N0Vmlld0FuZHJvaWQ6Ok9uVlN5bmMnOiA1LAorICAgIC8vIEFuZHJvaWQuIFZlcnkgcHJlY2lzZS4gUmVxdWlyZXMgImdmeCIgc3lzdHJhY2UgY2F0ZWdvcnkgdG8gYmUgZW5hYmxlZC4KKyAgICAnVlNZTkMnOiAxMCwKKyAgICAvLyBMaW51eC4gVmVyeSBwcmVjaXNlLiBSZXF1aXJlcyAiZ3B1IiB0cmFjaW5nIGNhdGVnb3J5IHRvIGJlIGVuYWJsZWQuCisgICAgJ3ZibGFuayc6IDEwLAorICAgIC8vIE1hYy4gRGVyaXZlZCBmcm9tIGEgTWFjIGNhbGxiYWNrIChDVkRpc3BsYXlMaW5rU2V0T3V0cHV0Q2FsbGJhY2spLgorICAgICdEaXNwbGF5TGlua01hYzo6R2V0VlN5bmNQYXJhbWV0ZXJzJzogNQorICB9OworCisgIC8qKgorICAgKiBBdWRpdG9yIHRoYXQgYW5hbHl6ZXMgdGhlIG1vZGVsIGFuZCwgaWYgcG9zc2libGUsIGFkZHMgZGF0YSB0byBpdAorICAgKiBpbmRpY2F0aW5nIHdoZW4gdmVydGljYWwgc3luYyBldmVudHMgdG9vayBwbGFjZS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHt0ci5jLkF1ZGl0b3J9CisgICAqLworICBmdW5jdGlvbiBWU3luY0F1ZGl0b3IobW9kZWwpIHsKKyAgICB0ci5jLkF1ZGl0b3IuY2FsbCh0aGlzLCBtb2RlbCk7CisgIH07CisKKyAgVlN5bmNBdWRpdG9yLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLmMuQXVkaXRvci5wcm90b3R5cGUsCisKKyAgICBydW5Bbm5vdGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLm1vZGVsLmRldmljZS52U3luY1RpbWVzdGFtcHMgPSB0aGlzLmZpbmRWU3luY1RpbWVzdGFtcHModGhpcy5tb2RlbCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgdGhlIG1vc3QgYWNjdXJhdGUgVlN5bmMgdGltZXMgYXZhaWxhYmxlIGluIHRoZSBtb2RlbC4KKyAgICAgKi8KKyAgICBmaW5kVlN5bmNUaW1lc3RhbXBzOiBmdW5jdGlvbihtb2RlbCkgeworICAgICAgdmFyIHRpbWVzID0gW107CisKKyAgICAgIC8vIE9ubHkga2VlcCB0aGUgbW9zdCBwcmVjaXNlIFZTeW5jIGRhdGEuCisgICAgICB2YXIgbWF4UHJlY2lzaW9uID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOworICAgICAgdmFyIG1heFRpdGxlID0gdW5kZWZpbmVkOworCisgICAgICBmdW5jdGlvbiB1c2VJbnN0ZWFkKHRpdGxlLCBwcmVjaXNpb25zKSB7CisgICAgICAgIGlmICh0aXRsZSA9PT0gbWF4VGl0bGUpCisgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgdmFyIHByZWNpc2lvbiA9IHByZWNpc2lvbnNbdGl0bGVdOworICAgICAgICBpZiAocHJlY2lzaW9uID09PSB1bmRlZmluZWQgfHwgcHJlY2lzaW9uIDw9IG1heFByZWNpc2lvbikgeworICAgICAgICAgIGlmIChwcmVjaXNpb24gPT09IG1heFByZWNpc2lvbikgeworICAgICAgICAgICAgY29uc29sZS53YXJuKCdFbmNvdW50ZXJlZCB0d28gZGlmZmVyZW50IFZTeW5jIGV2ZW50cyAoJyArCisgICAgICAgICAgICAgICAgbWF4VGl0bGUgKyAnLCAnICsgdGl0bGUgKyAnKSB3aXRoIHRoZSBzYW1lIHByZWNpc2lvbiwgJyArCisgICAgICAgICAgICAgICAnaWdub3JpbmcgdGhlIG5ld2VyIG9uZSAoJyArIHRpdGxlICsgJyknKTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIG1heFByZWNpc2lvbiA9IHByZWNpc2lvbjsKKyAgICAgICAgbWF4VGl0bGUgPSB0aXRsZTsKKyAgICAgICAgdGltZXMgPSBbXTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgcGlkIGluIG1vZGVsLnByb2Nlc3NlcykgeworICAgICAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLnByb2Nlc3Nlc1twaWRdOworICAgICAgICAvLyBUcmF2ZXJzZSBwcm9jZXNzIGNvdW50ZXJzLgorICAgICAgICBmb3IgKHZhciBjaWQgaW4gcHJvY2Vzcy5jb3VudGVycykgeworICAgICAgICAgIGlmICh1c2VJbnN0ZWFkKGNpZCwgVlNZTkNfQ09VTlRFUl9QUkVDSVNJT05TKSkgeworICAgICAgICAgICAgdmFyIGNvdW50ZXIgPSBwcm9jZXNzLmNvdW50ZXJzW2NpZF07CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50ZXIuc2VyaWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgIHZhciBzZXJpZXMgPSBjb3VudGVyLnNlcmllc1tpXTsKKyAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGltZXMsIHNlcmllcy50aW1lc3RhbXBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmF2ZXJzZSB0aHJlYWQgc2xpY2VzLgorICAgICAgICBmb3IgKHZhciB0aWQgaW4gcHJvY2Vzcy50aHJlYWRzKSB7CisgICAgICAgICAgdmFyIHRocmVhZCA9IHByb2Nlc3MudGhyZWFkc1t0aWRdOworICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgc2xpY2UgPSB0aHJlYWQuc2xpY2VHcm91cC5zbGljZXNbaV07CisgICAgICAgICAgICBpZiAodXNlSW5zdGVhZChzbGljZS50aXRsZSwgVlNZTkNfU0xJQ0VfUFJFQ0lTSU9OUykpCisgICAgICAgICAgICAgIHRpbWVzLnB1c2goc2xpY2Uuc3RhcnQpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgICAgdGltZXMuc29ydChmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4IC0geTsgfSk7CisgICAgICByZXR1cm4gdGltZXM7CisgICAgfQorICB9OworCisgIHRyLmMuQXVkaXRvci5yZWdpc3RlcihWU3luY0F1ZGl0b3IpOworCisgIHJldHVybiB7CisgICAgVlN5bmNBdWRpdG9yOiBWU3luY0F1ZGl0b3IKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy92c3luYy92c3luY19hdWRpdG9yX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvZXh0cmFzL3ZzeW5jL3ZzeW5jX2F1ZGl0b3JfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYmZiM2IKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL2V4dHJhcy92c3luYy92c3luY19hdWRpdG9yX3Rlc3QuaHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3ZzeW5jL3ZzeW5jX2F1ZGl0b3IuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkX3NsaWNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKworICB2YXIgQ291bnRlclNlcmllcyA9IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXM7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgVGhyZWFkU2xpY2UgPSB0ci5tb2RlbC5UaHJlYWRTbGljZTsKKyAgdmFyIFZTeW5jQXVkaXRvciA9IHRyLmUuYXVkaXRzLlZTeW5jQXVkaXRvcjsKKworICBmdW5jdGlvbiB0ZXN0RmluZFZTeW5jVGltZXN0YW1wcyhzbGljZXMsIGNvdW50ZXJzLCBleHBlY3RlZFRpbWVzKSB7CisgICAgdmFyIG1vZGVsID0gYnVpbGRNb2RlbChzbGljZXMsIGNvdW50ZXJzKTsKKyAgICB2YXIgYXVkaXRvciA9IG5ldyBWU3luY0F1ZGl0b3IobW9kZWwpOworICAgIGFzc2VydC5kZWVwRXF1YWwoYXVkaXRvci5maW5kVlN5bmNUaW1lc3RhbXBzKG1vZGVsKSwgZXhwZWN0ZWRUaW1lcyk7CisgIH0KKworICBmdW5jdGlvbiBidWlsZE1vZGVsKHNsaWNlcywgY291bnRlcnMpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKKyAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoaSk7CisgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNsaWNlc1tpXS5sZW5ndGg7IGorKykKKyAgICAgICAgdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlc1tpXVtqXSk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnRlcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgIHZhciBjb3VudGVyID0gcHJvY2Vzcy5nZXRPckNyZWF0ZUNvdW50ZXIoCisgICAgICAgICAgY291bnRlcnNbaV0uY2F0ZWdvcnksCisgICAgICAgICAgY291bnRlcnNbaV0ubmFtZSk7CisgICAgICBjb3VudGVyLmFkZFNlcmllcyhjb3VudGVyc1tpXS5zZXJpZXMpOworICAgIH0KKyAgICByZXR1cm4gbW9kZWw7CisgIH0KKworICBmdW5jdGlvbiBidWlsZFNsaWNlKHRpdGxlLCB0aW1lKSB7CisgICAgcmV0dXJuIG5ldyBUaHJlYWRTbGljZSgnJywgdGl0bGUsIDAsIHRpbWUsIHt9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGJ1aWxkQ291bnRlclNlcmllcyhuYW1lLCB0aW1lc3RhbXBzKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyBDb3VudGVyU2VyaWVzKG5hbWUsICcnKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWVzdGFtcHMubGVuZ3RoOyBpKyspCisgICAgICBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSh0aW1lc3RhbXBzW2ldLCAxKTsKKyAgICByZXR1cm4gc2VyaWVzOworICB9CisKKyAgdGVzdCgnZmluZEVtcHR5JywgZnVuY3Rpb24oKSB7CisgICAgdGVzdEZpbmRWU3luY1RpbWVzdGFtcHMoW10sIFtdLCBbXSk7CisgIH0pOworCisgIHRlc3QoJ2ZpbmROb1ZzeW5jJywgZnVuY3Rpb24oKSB7CisgICAgdGVzdEZpbmRWU3luY1RpbWVzdGFtcHMoWworICAgICAgICBbYnVpbGRTbGljZSgnTWVzc2FnZUxvb3A6OlJ1blRhc2snLCAxMCksCisgICAgICAgICBidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDIwKV0sCisgICAgICAgIFtidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDE1KV0KKyAgICBdLCBbXSwgW10pOworICB9KTsKKworICB0ZXN0KCdmaW5kT25lVnN5bmMnLCBmdW5jdGlvbigpIHsKKyAgICB0ZXN0RmluZFZTeW5jVGltZXN0YW1wcyhbW2J1aWxkU2xpY2UoJ3ZibGFuaycsIDQyKV1dLCBbXSwgWzQyXSk7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRNdWx0aXBsZVZzeW5jcycsIGZ1bmN0aW9uKCkgeworICAgIHRlc3RGaW5kVlN5bmNUaW1lc3RhbXBzKFsKKyAgICAgICAgW2J1aWxkU2xpY2UoJ1ZTWU5DJywgMSksIGJ1aWxkU2xpY2UoJ01lc3NhZ2VMb29wOjpSdW5UYXNrJywgMildLAorICAgICAgICBbYnVpbGRTbGljZSgnTWVzc2FnZUxvb3A6OlJ1blRhc2snLCAzKV0sCisgICAgICAgIFtidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDQpLCBidWlsZFNsaWNlKCdWU1lOQycsIDUpXSwKKyAgICAgICAgW2J1aWxkU2xpY2UoJ1ZTWU5DJywgNiksIGJ1aWxkU2xpY2UoJ1ZTWU5DJywgNyldCisgICAgXSwgW10sIFsxLCA1LCA2LCA3XSk7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRNdWx0aXBsZUFuZHJvaWRWc3luY3MnLCBmdW5jdGlvbigpIHsKKyAgICB0ZXN0RmluZFZTeW5jVGltZXN0YW1wcyhbCisgICAgICAgIFtidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDIpXSwKKyAgICAgICAgW2J1aWxkU2xpY2UoJ01lc3NhZ2VMb29wOjpSdW5UYXNrJywgMyldLAorICAgICAgICBbYnVpbGRTbGljZSgnTWVzc2FnZUxvb3A6OlJ1blRhc2snLCA0KV0KKyAgICBdLAorICAgIFsKKyAgICAgIHsKKyAgICAgICAgY2F0ZWdvcnk6ICdhbmRyb2lkJywKKyAgICAgICAgbmFtZTogJ1ZTWU5DLWFwcCcsCisgICAgICAgIHNlcmllczogYnVpbGRDb3VudGVyU2VyaWVzKCdWU1lOQy1hcHAnLCBbMSwgNSwgNiwgN10pCisgICAgICB9CisgICAgXSwgWzEsIDUsIDYsIDddKTsKKyAgfSk7CisKKyAgdGVzdCgnZmluZFVuc29ydGVkJywgZnVuY3Rpb24oKSB7CisgICAgdGVzdEZpbmRWU3luY1RpbWVzdGFtcHMoWworICAgICAgICBbYnVpbGRTbGljZSgnUmVuZGVyV2lkZ2V0SG9zdFZpZXdBbmRyb2lkOjpPblZTeW5jJywgNCksCisgICAgICAgICBidWlsZFNsaWNlKCdNZXNzYWdlTG9vcDo6UnVuVGFzaycsIDIpXSwKKyAgICAgICAgW2J1aWxkU2xpY2UoJ1JlbmRlcldpZGdldEhvc3RWaWV3QW5kcm9pZDo6T25WU3luYycsIDEpLAorICAgICAgICAgYnVpbGRTbGljZSgnUmVuZGVyV2lkZ2V0SG9zdFZpZXdBbmRyb2lkOjpPblZTeW5jJywgMyldCisgICAgXSwgW10sIFsxLCAzLCA0XSk7CisgIH0pOworCisgIHRlc3QoJ2ZpbmREaWZmZXJlbnRQcmVjaXNpb25zJywgZnVuY3Rpb24oKSB7CisgICAgLy8gdmJsYW5rIGhhcyBoaWdoZXIgcHJlY2lzaW9uIHRoYW4gUmVuZGVyV2lkZ2V0SG9zdFZpZXdBbmRyb2lkOjpPblZTeW5jLgorICAgIHRlc3RGaW5kVlN5bmNUaW1lc3RhbXBzKFsKKyAgICAgICAgW2J1aWxkU2xpY2UoJ1JlbmRlcldpZGdldEhvc3RWaWV3QW5kcm9pZDo6T25WU3luYycsIDEpLAorICAgICAgICAgYnVpbGRTbGljZSgndmJsYW5rJywgMiksCisgICAgICAgICBidWlsZFNsaWNlKCdSZW5kZXJXaWRnZXRIb3N0Vmlld0FuZHJvaWQ6Ok9uVlN5bmMnLCAzKV0KKyAgICBdLCBbXSwgWzJdKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9pbXBvcnRlci9lbXB0eV9pbXBvcnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9pbXBvcnRlci9lbXB0eV9pbXBvcnRlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2ltcG9ydGVyL2VtcHR5X2ltcG9ydGVyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvaW1wb3J0ZXIvZW1wdHlfaW1wb3J0ZXIuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9pbXBvcnRlci9pbXBvcnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9pbXBvcnRlci9pbXBvcnRlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2ltcG9ydGVyL2ltcG9ydGVyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvaW1wb3J0ZXIvaW1wb3J0ZXIuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9pbXBvcnRlci9zaW1wbGVfbGluZV9yZWFkZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvaW1wb3J0ZXIvc2ltcGxlX2xpbmVfcmVhZGVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvaW1wb3J0ZXIvc2ltcGxlX2xpbmVfcmVhZGVyLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvaW1wb3J0ZXIvc2ltcGxlX2xpbmVfcmVhZGVyLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvYWxlcnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvYWxlcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODljMGMzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9hbGVydC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfaW5mby5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aW1lZF9ldmVudC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgZnVuY3Rpb24gQWxlcnQoaW5mbywgc3RhcnQsIG9wdF9hc3NvY2lhdGVkRXZlbnRzLCBvcHRfYXJncykgeworICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7CisgICAgdGhpcy5pbmZvID0gaW5mbzsKKyAgICB0aGlzLmFyZ3MgPSBvcHRfYXJncyB8fCB7fTsKKyAgICB0aGlzLmFzc29jaWF0ZWRFdmVudHMgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQob3B0X2Fzc29jaWF0ZWRFdmVudHMpOworICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICBldmVudC5hc3NvY2lhdGVkQWxlcnRzLnB1c2godGhpcyk7CisgICAgfSwgdGhpcyk7CisgIH0KKworICBBbGVydC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSwKKworICAgIGdldCB0aXRsZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmluZm8udGl0bGU7CisgICAgfSwKKworICAgIGdldCBjb2xvcklkKCkgeworICAgICAgcmV0dXJuIHRoaXMuaW5mby5jb2xvcklkOworICAgIH0sCisKKyAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKKyAgICAgIHJldHVybiAnQWxlcnQgJyArIHRoaXMudGl0bGUgKyAnIGF0ICcgKworICAgICAgICAgIHRyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnN0YXJ0KTsKKyAgICB9CisgIH07CisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIEFsZXJ0LAorICAgICAgeworICAgICAgICBuYW1lOiAnYWxlcnQnLAorICAgICAgICBwbHVyYWxOYW1lOiAnYWxlcnRzJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1hbGVydC1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1hbGVydC1zdWItdmlldycKKyAgICAgIH0pOworCisgIHJldHVybiB7CisgICAgQWxlcnQ6IEFsZXJ0CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9hbm5vdGF0aW9uLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2Fubm90YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDViMGMxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9hbm5vdGF0aW9uLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBbm5vdGF0aW9uIGlzIGEgYmFzZSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYWxsIGFubm90YXRpb24gb2JqZWN0cyB0aGF0CisgICAqIGNhbiBiZSBkcmF3biBvbiB0aGUgdGltZWxpbmUuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQW5ub3RhdGlvbigpIHsKKyAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7CisgICAgdGhpcy52aWV3XyA9IHVuZGVmaW5lZDsKKyAgfTsKKworICBBbm5vdGF0aW9uLmZyb21EaWN0SWZQb3NzaWJsZSA9IGZ1bmN0aW9uKGFyZ3MpIHsKKyAgICBpZiAoYXJncy50eXBlTmFtZSA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHR5cGVOYW1lIGFyZ3VtZW50Jyk7CisKKyAgICB2YXIgdHlwZUluZm8gPSBBbm5vdGF0aW9uLmZpbmRUeXBlSW5mb01hdGNoaW5nKGZ1bmN0aW9uKHR5cGVJbmZvKSB7CisgICAgICByZXR1cm4gdHlwZUluZm8ubWV0YWRhdGEudHlwZU5hbWUgPT09IGFyZ3MudHlwZU5hbWU7CisgICAgfSk7CisKKyAgICBpZiAodHlwZUluZm8gPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICByZXR1cm4gdHlwZUluZm8uY29uc3RydWN0b3IuZnJvbURpY3QoYXJncyk7CisgIH07CisKKyAgQW5ub3RhdGlvbi5mcm9tRGljdCA9IGZ1bmN0aW9uKCkgeworICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgIH0KKworICBBbm5vdGF0aW9uLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgZ3VpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmd1aWRfOworICAgIH0sCisKKyAgICAvLyBJbnZva2VkIGJ5IHRyYWNlIG1vZGVsIHdoZW4gdGhpcyBhbm5vdGF0aW9uIGlzIHJlbW92ZWQuCisgICAgb25SZW1vdmU6IGZ1bmN0aW9uKCkgeworICAgIH0sCisKKyAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgZ2V0T3JDcmVhdGVWaWV3OiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgaWYgKCF0aGlzLnZpZXdfKQorICAgICAgICB0aGlzLnZpZXdfID0gdGhpcy5jcmVhdGVWaWV3Xyh2aWV3cG9ydCk7CisgICAgICByZXR1cm4gdGhpcy52aWV3XzsKKyAgICB9LAorCisgICAgY3JlYXRlVmlld186IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9CisgIH07CisKKyAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnModHIuYi4gQkFTSUNfUkVHSVNUUllfTU9ERSk7CisgIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShBbm5vdGF0aW9uLCBvcHRpb25zKTsKKworICBBbm5vdGF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3dpbGwtcmVnaXN0ZXInLCBmdW5jdGlvbihlKSB7CisgICAgaWYgKCFlLnR5cGVJbmZvLmNvbnN0cnVjdG9yLmhhc093blByb3BlcnR5KCdmcm9tRGljdCcpKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgZnJvbURpY3QgbWV0aG9kJyk7CisKKyAgICBpZiAoIWUudHlwZUluZm8ubWV0YWRhdGEudHlwZU5hbWUpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgQW5ub3RhdGlvbnMgbXVzdCBwcm92aWRlIHR5cGVOYW1lJyk7CisgIH0pOworCisgIHJldHVybiB7CisgICAgQW5ub3RhdGlvbjogQW5ub3RhdGlvbgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvYW5ub3RhdGlvbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2Fubm90YXRpb25fdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjOTEzNjAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2Fubm90YXRpb25fdGVzdC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2xvY2F0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3JlY3RfYW5ub3RhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3hfbWFya2VyX2Fubm90YXRpb24uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworCisgIHRlc3QoJ3JlY3RBbm5vdGF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGZha2VZQ29tcG9uZW50czEgPSBbe3N0YWJsZUlkOiAnMS4yJywgeVBlcmNlbnRPZmZzZXQ6IDAuM31dOworICAgIHZhciBmYWtlWUNvbXBvbmVudHMyID0gW3tzdGFibGVJZDogJzEuMicsIHlQZXJjZW50T2Zmc2V0OiAwLjl9XTsKKyAgICB2YXIgc3RhcnQgPSBuZXcgdHIubW9kZWwuTG9jYXRpb24oNTAsIGZha2VZQ29tcG9uZW50czEpOworICAgIHZhciBlbmQgPSBuZXcgdHIubW9kZWwuTG9jYXRpb24oMTAwLCBmYWtlWUNvbXBvbmVudHMyKTsKKyAgICB2YXIgcmVjdEFubm90YXRpb24gPSBuZXcgdHIubW9kZWwuUmVjdEFubm90YXRpb24oc3RhcnQsIGVuZCk7CisgICAgYXNzZXJ0LmVxdWFsKHJlY3RBbm5vdGF0aW9uLnN0YXJ0TG9jYXRpb24sIHN0YXJ0KTsKKyAgICBhc3NlcnQuZXF1YWwocmVjdEFubm90YXRpb24uZW5kTG9jYXRpb24sIGVuZCk7CisgIH0pOworCisgIHRlc3QoJ3hNYXJrZXJBbm5vdGF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHhNYXJrZXJBbm5vdGF0aW9uID0gbmV3IHRyLm1vZGVsLlhNYXJrZXJBbm5vdGF0aW9uKDkwKTsKKyAgICBhc3NlcnQuZXF1YWwoeE1hcmtlckFubm90YXRpb24udGltZXN0YW1wLCA5MCk7CisgIH0pOworCisgIHRlc3QoJ2NvbW1lbnRCb3hBbm5vdGF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGZha2VZQ29tcG9uZW50cyA9IFt7c3RhYmxlSWQ6ICcxLjInLCB5UGVyY2VudE9mZnNldDogMC41fV07CisgICAgdmFyIGxvY2F0aW9uID0gbmV3IHRyLm1vZGVsLkxvY2F0aW9uKDEyMCwgZmFrZVlDb21wb25lbnRzKTsKKyAgICB2YXIgdGV4dCA9ICdhYmMnOworICAgIHZhciBjb21tZW50Qm94QW5ub3RhdGlvbiA9CisgICAgICAgIG5ldyB0ci5tb2RlbC5Db21tZW50Qm94QW5ub3RhdGlvbihsb2NhdGlvbiwgdGV4dCk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbW1lbnRCb3hBbm5vdGF0aW9uLmxvY2F0aW9uLCBsb2NhdGlvbik7CisgICAgYXNzZXJ0LmVxdWFsKGNvbW1lbnRCb3hBbm5vdGF0aW9uLnRleHQsIHRleHQpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI5NGNlZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvYXN5bmNfc2xpY2UuaHRtbApAQCAtMCwwICsxLDEyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgQXN5bmNTbGljZSBjbGFzcy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIEFzeW5jU2xpY2UgcmVwcmVzZW50cyBhbiBpbnRlcnZhbCBvZiB0aW1lIGR1cmluZyB3aGljaCBhbgorICAgKiBhc3luY2hyb25vdXMgb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLiBBbiBBc3luY1NsaWNlIGNvbnN1bWVzIG5vIENQVSB0aW1lCisgICAqIGl0c2VsZiBhbmQgc28gaXMgb25seSBhc3NvY2lhdGVkIHdpdGggVGhyZWFkcyBhdCBpdHMgc3RhcnQgYW5kIGVuZCBwb2ludC4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBBc3luY1NsaWNlKGNhdGVnb3J5LCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MsIGR1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgIG9wdF9pc1RvcExldmVsLCBvcHRfY3B1U3RhcnQsIG9wdF9jcHVEdXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBvcHRfYXJnc1N0cmlwcGVkKSB7CisgICAgdHIubW9kZWwuVGltZWRFdmVudC5jYWxsKHRoaXMsIHN0YXJ0KTsKKworICAgIHRoaXMuY2F0ZWdvcnkgPSBjYXRlZ29yeSB8fCAnJzsKKyAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy5jb2xvcklkID0gY29sb3JJZDsKKyAgICB0aGlzLmFyZ3MgPSBhcmdzOworICAgIHRoaXMuc3RhcnRTdGFja0ZyYW1lID0gdW5kZWZpbmVkOworICAgIHRoaXMuZW5kU3RhY2tGcmFtZSA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmRpZE5vdEZpbmlzaCA9IGZhbHNlOworICAgIHRoaXMuaW1wb3J0YW50ID0gZmFsc2U7CisgICAgdGhpcy5zdWJTbGljZXMgPSBbXTsKKyAgICB0aGlzLnBhcmVudENvbnRhaW5lciA9IHVuZGVmaW5lZDsKKworICAgIHRoaXMuaWQgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zdGFydFRocmVhZCA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmVuZFRocmVhZCA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmNwdVN0YXJ0ID0gdW5kZWZpbmVkOworICAgIHRoaXMuY3B1RHVyYXRpb24gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5hcmdzU3RyaXBwZWQgPSBmYWxzZTsKKworICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjsKKworCisgICAgLy8gVE9ETyhuZHVjYSk6IEZvcmdpdmUgbWUgZm9yIHdoYXQgSSBtdXN0IGRvLgorICAgIHRoaXMuaXNUb3BMZXZlbCA9IChvcHRfaXNUb3BMZXZlbCA9PT0gdHJ1ZSk7CisKKyAgICBpZiAob3B0X2NwdVN0YXJ0ICE9PSB1bmRlZmluZWQpCisgICAgICB0aGlzLmNwdVN0YXJ0ID0gb3B0X2NwdVN0YXJ0OworCisgICAgaWYgKG9wdF9jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQorICAgICAgdGhpcy5jcHVEdXJhdGlvbiA9IG9wdF9jcHVEdXJhdGlvbjsKKworICAgIGlmIChvcHRfYXJnc1N0cmlwcGVkICE9PSB1bmRlZmluZWQpCisgICAgICB0aGlzLmFyZ3NTdHJpcHBlZCA9IG9wdF9hcmdzU3RyaXBwZWQ7CisgIH07CisKKyAgQXN5bmNTbGljZS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSwKKworICAgIGdldCBhbmFseXNpc1R5cGVOYW1lKCkgeworICAgICAgcmV0dXJuIHRoaXMudGl0bGU7CisgICAgfSwKKworICAgIGdldCB2aWV3U3ViR3JvdXBUaXRsZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnRpdGxlOworICAgIH0sCisKKyAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKKyAgICAgIHJldHVybiAnQXN5bmMgc2xpY2UgJyArIHRoaXMudGl0bGUgKyAnIGF0ICcgKworICAgICAgICAgIHRyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnN0YXJ0KTsKKyAgICB9LAorCisgICAgZmluZERlc2NlbmRlbnRTbGljZTogZnVuY3Rpb24odGFyZ2V0VGl0bGUpIHsKKyAgICAgIGlmICghdGhpcy5zdWJTbGljZXMpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdWJTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHRoaXMuc3ViU2xpY2VzW2ldLnRpdGxlID09IHRhcmdldFRpdGxlKQorICAgICAgICAgIHJldHVybiB0aGlzLnN1YlNsaWNlc1tpXTsKKyAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zdWJTbGljZXNbaV0uZmluZERlc2NlbmRlbnRTbGljZSh0YXJnZXRUaXRsZSk7CisgICAgICAgIGlmIChzbGljZSkgcmV0dXJuIHNsaWNlOworICAgICAgfQorICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbERlc2NlbmRlbnRzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIHRoaXMuc3ViU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKKyAgICAgIHRoaXMuc3ViU2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc3ViU2xpY2UpIHsKKyAgICAgICAgc3ViU2xpY2UuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisgICAgICB9LCBvcHRfdGhpcyk7CisgICAgfSwKKworICAgIGNvbXBhcmVUbzogZnVuY3Rpb24odGhhdCkgeworICAgICAgcmV0dXJuIHRoaXMudGl0bGUubG9jYWxlQ29tcGFyZSh0aGF0LnRpdGxlKTsKKyAgICB9CisgIH07CisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIEFzeW5jU2xpY2UsCisgICAgICB7CisgICAgICAgIG5hbWU6ICdhc3luY1NsaWNlJywKKyAgICAgICAgcGx1cmFsTmFtZTogJ2FzeW5jU2xpY2VzJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1zaW5nbGUtYXN5bmMtc2xpY2Utc3ViLXZpZXcnLAorICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtbXVsdGktYXN5bmMtc2xpY2Utc3ViLXZpZXcnCisgICAgICB9KTsKKworCisgIHZhciBvcHRpb25zID0gbmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKAorICAgICAgdHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpOworICBvcHRpb25zLm1hbmRhdG9yeUJhc2VDbGFzcyA9IEFzeW5jU2xpY2U7CisgIG9wdGlvbnMuZGVmYXVsdENvbnN0cnVjdG9yID0gQXN5bmNTbGljZTsKKyAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KEFzeW5jU2xpY2UsIG9wdGlvbnMpOworCisgIHJldHVybiB7CisgICAgQXN5bmNTbGljZTogQXN5bmNTbGljZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvYXN5bmNfc2xpY2VfZ3JvdXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvYXN5bmNfc2xpY2VfZ3JvdXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjk0MGUwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9hc3luY19zbGljZV9ncm91cC5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2FzeW5jX3NsaWNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgQXN5bmNTbGljZUdyb3VwIGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEEgZ3JvdXAgb2YgQXN5bmNTbGljZXMgYXNzb2NpYXRlZCB3aXRoIGEgdGhyZWFkLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyfQorICAgKi8KKyAgZnVuY3Rpb24gQXN5bmNTbGljZUdyb3VwKHBhcmVudENvbnRhaW5lciwgb3B0X25hbWUpIHsKKyAgICB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpOworICAgIHRoaXMucGFyZW50Q29udGFpbmVyXyA9IHBhcmVudENvbnRhaW5lcjsKKyAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7CisgICAgdGhpcy5zbGljZXMgPSBbXTsKKyAgICB0aGlzLm5hbWVfID0gb3B0X25hbWU7CisgICAgdGhpcy52aWV3U3ViR3JvdXBzXyA9IHVuZGVmaW5lZDsKKyAgfQorCisgIEFzeW5jU2xpY2VHcm91cC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCisKKyAgICBnZXQgZ3VpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmd1aWRfOworICAgIH0sCisKKyAgICBnZXQgcGFyZW50Q29udGFpbmVyKCkgeworICAgICAgcmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXzsKKyAgICB9LAorCisgICAgZ2V0IG1vZGVsKCkgeworICAgICAgcmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXy5wYXJlbnQubW9kZWw7CisgICAgfSwKKworICAgIGdldCBzdGFibGVJZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnBhcmVudENvbnRhaW5lcl8uc3RhYmxlSWQgKyAnLkFzeW5jU2xpY2VHcm91cCc7CisgICAgfSwKKworICAgIGdldFNldHRpbmdzS2V5OiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5uYW1lXykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHZhciBwYXJlbnRLZXkgPSB0aGlzLnBhcmVudENvbnRhaW5lcl8uZ2V0U2V0dGluZ3NLZXkoKTsKKyAgICAgIGlmICghcGFyZW50S2V5KQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHBhcmVudEtleSArICcuJyArIHRoaXMubmFtZV87CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEhlbHBlciBmdW5jdGlvbiB0aGF0IHB1c2hlcyB0aGUgcHJvdmlkZWQgc2xpY2Ugb250byB0aGUgc2xpY2VzIGFycmF5LgorICAgICAqLworICAgIHB1c2g6IGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICBzbGljZS5wYXJlbnRDb250YWluZXIgPSB0aGlzLnBhcmVudENvbnRhaW5lcjsKKyAgICAgIHRoaXMuc2xpY2VzLnB1c2goc2xpY2UpOworICAgICAgcmV0dXJuIHNsaWNlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBudW1iZXIgb2Ygc2xpY2VzIGluIHRoaXMgZ3JvdXAuCisgICAgICovCisgICAgZ2V0IGxlbmd0aCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnNsaWNlcy5sZW5ndGg7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFNoaWZ0cyBhbGwgdGhlIHRpbWVzdGFtcHMgaW5zaWRlIHRoaXMgZ3JvdXAgZm9yd2FyZCBieSB0aGUgYW1vdW50CisgICAgICogc3BlY2lmaWVkLCBpbmNsdWRpbmcgYWxsIG5lc3RlZCBzdWJTbGljZXMgaWYgdGhlcmUgYXJlIGFueS4KKyAgICAgKi8KKyAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKKyAgICAgIGZvciAodmFyIHNJID0gMDsgc0kgPCB0aGlzLnNsaWNlcy5sZW5ndGg7IHNJKyspIHsKKyAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zbGljZXNbc0ldOworICAgICAgICBzbGljZS5zdGFydCA9IChzbGljZS5zdGFydCArIGFtb3VudCk7CisgICAgICAgIC8vIFNoaWZ0IGFsbCBuZXN0ZWQgc3ViU2xpY2VzIHJlY3Vyc2l2ZWx5LgorICAgICAgICB2YXIgc2hpZnRTdWJTbGljZXMgPSBmdW5jdGlvbihzdWJTbGljZXMpIHsKKyAgICAgICAgICBpZiAoc3ViU2xpY2VzID09PSB1bmRlZmluZWQgfHwgc3ViU2xpY2VzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICBmb3IgKHZhciBzSiA9IDA7IHNKIDwgc3ViU2xpY2VzLmxlbmd0aDsgc0orKykgeworICAgICAgICAgICAgc3ViU2xpY2VzW3NKXS5zdGFydCArPSBhbW91bnQ7CisgICAgICAgICAgICBzaGlmdFN1YlNsaWNlcyhzdWJTbGljZXNbc0pdLnN1YlNsaWNlcyk7CisgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBzaGlmdFN1YlNsaWNlcyhzbGljZS5zdWJTbGljZXMpOworICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBVcGRhdGVzIHRoZSBib3VuZHMgZm9yIHRoaXMgZ3JvdXAgYmFzZWQgb24gdGhlIHNsaWNlcyBpdCBjb250YWlucy4KKyAgICAgKi8KKyAgICB1cGRhdGVCb3VuZHM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5ib3VuZHMucmVzZXQoKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbaV0uc3RhcnQpOworICAgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNsaWNlc1tpXS5lbmQpOworICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzdWItZ3JvdXBzIGluIHRoaXMgQS1TLUcgZGVmaW5lZCBieSB0aGUgZ3JvdXAgdGl0bGVzLgorICAgICAqCisgICAgICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIEFzeW5jU2xpY2VHcm91cHMgd2hlcmUgZWFjaCBncm91cCBoYXMKKyAgICAgKiBzbGljZXMgdGhhdCBzdGFydGVkIG9uIHRoZSBzYW1lIHRocmVhZC4KKyAgICAgKi8KKyAgICBnZXQgdmlld1N1Ykdyb3VwcygpIHsKKyAgICAgIGlmICh0aGlzLnZpZXdTdWJHcm91cHNfID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdmFyIHByZWZpeCA9ICcnOworICAgICAgICBpZiAodGhpcy5uYW1lICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgcHJlZml4ID0gdGhpcy5uYW1lICsgJy4nOworICAgICAgICBlbHNlCisgICAgICAgICAgcHJlZml4ID0gJyc7CisKKyAgICAgICAgdmFyIHN1Ykdyb3Vwc0J5VGl0bGUgPSB7fTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgIHZhciBzbGljZSA9IHRoaXMuc2xpY2VzW2ldOworICAgICAgICAgIHZhciBzdWJHcm91cFRpdGxlID0gc2xpY2Uudmlld1N1Ykdyb3VwVGl0bGU7CisgICAgICAgICAgaWYgKCFzdWJHcm91cHNCeVRpdGxlW3N1Ykdyb3VwVGl0bGVdKSB7CisgICAgICAgICAgICBzdWJHcm91cHNCeVRpdGxlW3N1Ykdyb3VwVGl0bGVdID0gbmV3IEFzeW5jU2xpY2VHcm91cCgKKyAgICAgICAgICAgICAgICB0aGlzLnBhcmVudENvbnRhaW5lcl8sIHByZWZpeCArIHN1Ykdyb3VwVGl0bGUpOworICAgICAgICAgIH0KKyAgICAgICAgICBzdWJHcm91cHNCeVRpdGxlW3N1Ykdyb3VwVGl0bGVdLnB1c2goc2xpY2UpOworICAgICAgICB9CisgICAgICAgIHRoaXMudmlld1N1Ykdyb3Vwc18gPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMoc3ViR3JvdXBzQnlUaXRsZSk7CisgICAgICAgIHRoaXMudmlld1N1Ykdyb3Vwc18uc29ydChmdW5jdGlvbihhLCBiKSB7CisgICAgICAgICAgcmV0dXJuIGEuc2xpY2VzWzBdLmNvbXBhcmVUbyhiLnNsaWNlc1swXSk7CisgICAgICAgIH0pOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMudmlld1N1Ykdyb3Vwc187CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgdHIubW9kZWwuQXN5bmNTbGljZSkpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBzbGljZSA9IHRoaXMuc2xpY2VzW2ldOworICAgICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIHNsaWNlKTsKKyAgICAgICAgICBpZiAoc2xpY2Uuc3ViU2xpY2VzKQorICAgICAgICAgICAgc2xpY2Uuc3ViU2xpY2VzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEFzeW5jU2xpY2VHcm91cDogQXN5bmNTbGljZUdyb3VwCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hc3luY19zbGljZV9ncm91cF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2FzeW5jX3NsaWNlX2dyb3VwX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9hc3luY19zbGljZV9ncm91cF90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvYXN5bmNfc2xpY2VfZ3JvdXBfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2F0dHJpYnV0ZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjUyMWFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDI3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgQXR0cmlidXRlIGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBBdHRyaWJ1dGUodW5pdHMpIHsKKyAgICB0aGlzLnVuaXRzID0gdW5pdHM7CisKKyAgICAvLyBBdHRyaWJ1dGVJbmZvKHMpIGFib3V0IHRoZSBhdHRyaWJ1dGUgKGUuZy4gaW5mb3JtYXRpb24gYWJvdXQgaG93IGl0IHdhcworICAgIC8vIGNhbGN1bGF0ZWQpLgorICAgIHRoaXMuaW5mb3MgPSBbXTsKKyAgfQorCisgIEF0dHJpYnV0ZS5mcm9tRGljdElmUG9zc2libGUgPSBmdW5jdGlvbihkaWN0LCBvcHRfbW9kZWwpIHsKKyAgICB2YXIgdHlwZUluZm8gPSBBdHRyaWJ1dGUuZmluZFR5cGVJbmZvTWF0Y2hpbmcoZnVuY3Rpb24odHlwZUluZm8pIHsKKyAgICAgIHJldHVybiB0eXBlSW5mby5tZXRhZGF0YS50eXBlID09PSBkaWN0LnR5cGU7CisgICAgfSk7CisKKyAgICBpZiAodHlwZUluZm8gPT09IHVuZGVmaW5lZCkgeworICAgICAgaWYgKG9wdF9tb2RlbCkgeworICAgICAgICBvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ2F0dHJpYnV0ZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgbWVzc2FnZTogJ1Vua25vd24gYXR0cmlidXRlIHR5cGUgXCcnICsgZGljdC50eXBlICsgJ1wnLicKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgICByZXR1cm4gVW5rbm93bkF0dHJpYnV0ZS5mcm9tRGljdChkaWN0LCBvcHRfbW9kZWwpOworICAgIH0KKworICAgIHJldHVybiB0eXBlSW5mby5jb25zdHJ1Y3Rvci5mcm9tRGljdChkaWN0LCBvcHRfbW9kZWwpOworICB9OworCisgIC8qKgorICAgKiBGaW5kIHRoZSBjb21tb24gY29uc3RydWN0b3IgYW5kIHVuaXRzIG9mIGEgbGlzdCBvZiBhdHRyaWJ1dGUgdmFsdWVzLiBJZgorICAgKiB0aGV5IGhhdmUgZGlmZmVyZW50IHR5cGVzIChlLmcuIFNjYWxhckF0dHJpYnV0ZSBhbmQgVW5rbm93bkF0dHJpYnV0ZSkgb3IKKyAgICogdW5pdHMgKGUuZy4gJ21zJyBhbmQgJ0h6JyksIHRoZSBjb21tb24gY29uc3RydWN0b3Igd2lsbCBiZQorICAgKiBVbmtub3duQXR0cmlidXRlIGFuZCB0aGUgY29tbW9uIHVuaXRzIHdpbGwgYmUgdW5kZWZpbmVkLgorICAgKgorICAgKiBVbmRlZmluZWQgYXR0cmlidXRlIHZhbHVlcyBhcmUgc2tpcHBlZC4gVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiB1bmRlZmluZWQKKyAgICogaWYgdGhlIGxpc3Qgb2YgYXR0cmlidXRlIHZhbHVlcyBjb250YWlucyBubyBkZWZpbmVkIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAqLworICBBdHRyaWJ1dGUuZmluZENvbW1vblRyYWl0cyA9IGZ1bmN0aW9uKGF0dHJpYnV0ZXMsIG9wdF9tb2RlbCkgeworICAgIHZhciBjb21tb25UcmFpdHM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgYXR0cmlidXRlID0gYXR0cmlidXRlc1tpXTsKKyAgICAgIGlmIChhdHRyaWJ1dGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgY29udGludWU7CisKKyAgICAgIHZhciBhdHRyaWJ1dGVDb25zdHJ1Y3RvciA9IGF0dHJpYnV0ZS5jb25zdHJ1Y3RvcjsKKyAgICAgIHZhciBhdHRyaWJ1dGVVbml0cyA9IGF0dHJpYnV0ZS51bml0czsKKworICAgICAgaWYgKGNvbW1vblRyYWl0cyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGNvbW1vblRyYWl0cyA9IHsKKyAgICAgICAgICBjb25zdHJ1Y3RvcjogYXR0cmlidXRlQ29uc3RydWN0b3IsCisgICAgICAgICAgdW5pdHM6IGF0dHJpYnV0ZVVuaXRzCisgICAgICAgIH07CisgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZUNvbnN0cnVjdG9yICE9PSBjb21tb25UcmFpdHMuY29uc3RydWN0b3IpIHsKKyAgICAgICAgaWYgKG9wdF9tb2RlbCkgeworICAgICAgICAgIG9wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB0eXBlczogJyArCisgICAgICAgICAgICAgICAgY29tbW9uVHJhaXRzLmNvbnN0cnVjdG9yICsgJyBhbmQgJyArIGF0dHJpYnV0ZUNvbnN0cnVjdG9yICsgJy4nCisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgY29tbW9uVHJhaXRzID0geworICAgICAgICAgIGNvbnN0cnVjdG9yOiBVbmtub3duQXR0cmlidXRlLAorICAgICAgICAgIHVuaXRzOiB1bmRlZmluZWQKKyAgICAgICAgfTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVVuaXRzICE9PSBjb21tb25UcmFpdHMudW5pdHMpIHsKKyAgICAgICAgaWYgKG9wdF9tb2RlbCkgeworICAgICAgICAgIG9wdF9tb2RlbC5pbXBvcnRXYXJuaW5nKHsKKyAgICAgICAgICAgIHR5cGU6ICdhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB1bml0czogJyArIGNvbW1vblRyYWl0cy51bml0cyArCisgICAgICAgICAgICAgICAgJyBhbmQgJyArIGF0dHJpYnV0ZVVuaXRzICsgJy4nCisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgY29tbW9uVHJhaXRzID0geworICAgICAgICAgIGNvbnN0cnVjdG9yOiBVbmtub3duQXR0cmlidXRlLAorICAgICAgICAgIHVuaXRzOiB1bmRlZmluZWQKKyAgICAgICAgfTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiBjb21tb25UcmFpdHM7CisgIH07CisKKyAgLyoqCisgICAqIEFnZ3JlZ2F0ZSBhIGxpc3Qgb2YgY2hpbGQgYXR0cmlidXRlIHZhbHVlcyB3aXRoIGFuIGV4aXN0aW5nIGF0dHJpYnV0ZQorICAgKiB2YWx1ZS4gVGhlIGluZGl2aWR1YWwgdmFsdWVzIGNhbiBiZSB1bmRlZmluZWQsIGluIHdoaWNoIGNhc2UgdGhleSBhcmUKKyAgICogaWdub3JlZC4KKyAgICovCisgIEF0dHJpYnV0ZS5hZ2dyZWdhdGUgPSBmdW5jdGlvbihjaGlsZEF0dHJpYnV0ZXMsIGV4aXN0aW5nUGFyZW50QXR0cmlidXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X21vZGVsKSB7CisgICAgdmFyIGRlZmluZWRDaGlsZEF0dHJpYnV0ZXMgPSBjaGlsZEF0dHJpYnV0ZXMuZmlsdGVyKAorICAgICAgICBmdW5jdGlvbihjaGlsZEF0dHJpYnV0ZSkgeworICAgICAgcmV0dXJuIGNoaWxkQXR0cmlidXRlICE9PSB1bmRlZmluZWQ7CisgICAgfSk7CisKKyAgICAvLyBJZiBhbGwgY2hpbGQgYXR0cmlidXRlIHZhbHVlcyB3ZXJlIHVuZGVmaW5lZCwgcmV0dXJuIHRoZSBleGlzdGluZyBwYXJlbnQKKyAgICAvLyBhdHRyaWJ1dGUgdmFsdWUgKHBvc3NpYmx5IHVuZGVmaW5lZCkuCisgICAgdmFyIHRyYWl0cyA9IEF0dHJpYnV0ZS5maW5kQ29tbW9uVHJhaXRzKGRlZmluZWRDaGlsZEF0dHJpYnV0ZXMsIG9wdF9tb2RlbCk7CisgICAgaWYgKHRyYWl0cyA9PT0gdW5kZWZpbmVkKQorICAgICAgcmV0dXJuIGV4aXN0aW5nUGFyZW50QXR0cmlidXRlOworCisgICAgdmFyIGNvbnN0cnVjdG9yID0gdHJhaXRzLmNvbnN0cnVjdG9yOworCisgICAgLy8gSWYgdGhlIGNvbW1vbiB0eXBlIGRvZXMgbm90IHN1cHBvcnQgbWVyZ2luZyBjaGlsZCBhdHRyaWJ1dGUgdmFsdWVzLAorICAgIC8vIHJldHVybiB0aGUgZXhpc3RpbmcgcGFyZW50IGF0dHJpYnV0ZSB2YWx1ZSAocG9zc2libHkgdW5kZWZpbmVkKS4KKyAgICBpZiAoY29uc3RydWN0b3IubWVyZ2UgPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiBleGlzdGluZ1BhcmVudEF0dHJpYnV0ZTsKKworICAgIHZhciBtZXJnZWRBdHRyaWJ1dGUgPSBjb25zdHJ1Y3Rvci5tZXJnZSgKKyAgICAgICAgZGVmaW5lZENoaWxkQXR0cmlidXRlcywgdHJhaXRzLnVuaXRzLCBvcHRfbW9kZWwpOworCisgICAgLy8gSWYgdGhlcmUgaXMgbm8gZXhpc3RpbmcgcGFyZW50IGF0dHJpYnV0ZSB2YWx1ZSwgdXNlIHRoZSBtZXJnZWQgdmFsdWUKKyAgICAvLyAocG9zc2libHkgdW5kZWZpbmVkKS4KKyAgICBpZiAoZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGUgPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiBtZXJnZWRBdHRyaWJ1dGU7CisKKyAgICAvLyBMZWF2ZSBpdCB1cCB0byB0aGUgZXhpc3RpbmcgcGFyZW50IGF0dHJpYnV0ZSB2YWx1ZSB0byBkZWNpZGUgaWYvaG93IGl0CisgICAgLy8gd2lsbCB1c2UgdGhlIG1lcmdlZCB2YWx1ZSAoZS5nLiBnZW5lcmF0ZSBhbiBpbXBvcnQgd2FybmluZyBpZiB0aGUKKyAgICAvLyBleGlzdGluZyBhbmQgbWVyZ2VkIGF0dHJpYnV0ZSB2YWx1ZSB0eXBlcyBkaWZmZXIpLgorICAgIGV4aXN0aW5nUGFyZW50QXR0cmlidXRlLnVzZU1lcmdlZEF0dHJpYnV0ZShtZXJnZWRBdHRyaWJ1dGUsIG9wdF9tb2RlbCk7CisKKyAgICByZXR1cm4gZXhpc3RpbmdQYXJlbnRBdHRyaWJ1dGU7CisgIH0KKworICBBdHRyaWJ1dGUuZnJvbVRyYWNlVmFsdWUgPSBmdW5jdGlvbihkaWN0LCBvcHRfbW9kZWwpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICB9OworCisgIEF0dHJpYnV0ZS5wcm90b3R5cGUudXNlTWVyZ2VkQXR0cmlidXRlID0gZnVuY3Rpb24obWVyZ2VkQXR0cmlidXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9tb2RlbCkgeworICAgIGlmIChtZXJnZWRBdHRyaWJ1dGUuY29uc3RydWN0b3IgIT09IHRoaXMuY29uc3RydWN0b3IpIHsKKyAgICAgIGlmIChvcHRfbW9kZWwpIHsKKyAgICAgICAgb3B0X21vZGVsLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgIHR5cGU6ICdhdHRyaWJ1dGVfcGFyc2VfZXJyb3InLAorICAgICAgICAgIG1lc3NhZ2U6ICdBdHRyaWJ1dGUgd2l0aCBkaWZmZXJlbnQgdHlwZXM6ICcgKyB0aGlzLmNvbnN0cnVjdG9yICsKKyAgICAgICAgICAgICAgJyBhbmQgJyArIG1lcmdlZEF0dHJpYnV0ZS5jb25zdHJ1Y3RvciArICcuJworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG1lcmdlZEF0dHJpYnV0ZS51bml0cyAhPT0gdGhpcy51bml0cykgeworICAgICAgaWYgKG9wdF9tb2RlbCkgeworICAgICAgICBvcHRfbW9kZWwuaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgdHlwZTogJ2F0dHJpYnV0ZV9wYXJzZV9lcnJvcicsCisgICAgICAgICAgbWVzc2FnZTogJ0F0dHJpYnV0ZSB3aXRoIGRpZmZlcmVudCB1bml0czogJyArIHRoaXMudW5pdHMgKworICAgICAgICAgICAgICAnIGFuZCAnICsgbWVyZ2VkQXR0cmlidXRlLnVuaXRzICsgJy4nCisgICAgICAgIH0pOworICAgICAgfQorICAgIH0KKyAgfTsKKworICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpOworICB0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoQXR0cmlidXRlLCBvcHRpb25zKTsKKworICBBdHRyaWJ1dGUuYWRkRXZlbnRMaXN0ZW5lcignd2lsbC1yZWdpc3RlcicsIGZ1bmN0aW9uKGUpIHsKKyAgICBpZiAoIWUudHlwZUluZm8uY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoJ2Zyb21EaWN0JykpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZXMgbXVzdCBoYXZlIGZyb21EaWN0IG1ldGhvZCcpOworCisgICAgaWYgKCFlLnR5cGVJbmZvLm1ldGFkYXRhLnR5cGUpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZXMgbXVzdCBwcm92aWRlIHR5cGUnKTsKKworICAgIGlmIChlLnR5cGVJbmZvLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gZS50eXBlSW5mby5jb25zdHJ1Y3RvcikKKyAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIHByb3RvdHlwZXMgbXVzdCBwcm92aWRlIGNvbnN0cnVjdG9yLicpOworICB9KTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBTY2FsYXJBdHRyaWJ1dGUodW5pdHMsIHZhbHVlKSB7CisgICAgQXR0cmlidXRlLmNhbGwodGhpcywgdW5pdHMpOworICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgfQorCisgIFNjYWxhckF0dHJpYnV0ZS5mcm9tRGljdCA9IGZ1bmN0aW9uKGRpY3QpIHsKKyAgICByZXR1cm4gbmV3IFNjYWxhckF0dHJpYnV0ZShkaWN0LnVuaXRzLCBwYXJzZUludChkaWN0LnZhbHVlLCAxNikpOworICB9OworCisgIFNjYWxhckF0dHJpYnV0ZS5tZXJnZSA9IGZ1bmN0aW9uKGNoaWxkQXR0cmlidXRlcywgdW5pdHMpIHsKKyAgICB2YXIgc3VtID0gMDsKKyAgICBjaGlsZEF0dHJpYnV0ZXMuZm9yRWFjaChmdW5jdGlvbihjaGlsZEF0dHJpYnV0ZSkgeworICAgICAgc3VtICs9IGNoaWxkQXR0cmlidXRlLnZhbHVlOworICAgIH0pOworICAgIHJldHVybiBuZXcgU2NhbGFyQXR0cmlidXRlKHVuaXRzLCBzdW0pOworICB9CisKKyAgU2NhbGFyQXR0cmlidXRlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBBdHRyaWJ1dGUucHJvdG90eXBlOworCisgIEF0dHJpYnV0ZS5yZWdpc3RlcihTY2FsYXJBdHRyaWJ1dGUsIHt0eXBlOiAnc2NhbGFyJ30pOworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIFN0cmluZ0F0dHJpYnV0ZSh1bml0cywgdmFsdWUpIHsKKyAgICBBdHRyaWJ1dGUuY2FsbCh0aGlzLCB1bml0cyk7CisgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICB9CisKKyAgU3RyaW5nQXR0cmlidXRlLmZyb21EaWN0ID0gZnVuY3Rpb24oZGljdCkgeworICAgIHJldHVybiBuZXcgU3RyaW5nQXR0cmlidXRlKGRpY3QudW5pdHMsIGRpY3QudmFsdWUpOworICB9OworCisgIEF0dHJpYnV0ZS5yZWdpc3RlcihTdHJpbmdBdHRyaWJ1dGUsIHt0eXBlOiAnc3RyaW5nJ30pOworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIFVua25vd25BdHRyaWJ1dGUodW5pdHMsIG9wdF92YWx1ZSkgeworICAgIEF0dHJpYnV0ZS5jYWxsKHRoaXMsIHVuaXRzLCBvcHRfdmFsdWUpOworICAgIHRoaXMudmFsdWUgPSBvcHRfdmFsdWU7CisgIH0KKworICBVbmtub3duQXR0cmlidXRlLmZyb21EaWN0ID0gZnVuY3Rpb24oZGljdCkgeworICAgIHJldHVybiBuZXcgVW5rbm93bkF0dHJpYnV0ZShkaWN0LnVuaXRzKTsKKyAgfTsKKworICBVbmtub3duQXR0cmlidXRlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBBdHRyaWJ1dGUucHJvdG90eXBlOworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEF0dHJpYnV0ZUluZm8odHlwZSwgbWVzc2FnZSkgeworICAgIHRoaXMudHlwZSA9IHR5cGU7CisgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKKyAgfQorCisgIC8qKgorICAgKiBUaGUgdHlwZSBvZiBBdHRyaWJ1dGVJbmZvLgorICAgKiBAZW51bQorICAgKi8KKyAgdmFyIEF0dHJpYnV0ZUluZm9UeXBlID0geworICAgIC8vIEdlbmVyaWMgaW5mb3JtYXRpb24gKGUuZy4gaG93IHRoZSBhdHRyaWJ1dGUgd2FzIGNhbGN1bGF0ZWQpLgorICAgIElORk9STUFUSU9OOiAwLAorCisgICAgLy8gV2FybmluZyAoZS5nLiBpbmNvbnNpc3RlbnQgYXR0cmlidXRlIHZhbHVlcyBwcm92aWRlZCkuCisgICAgV0FSTklORzogMSwKKworICAgIC8vIEF0dHJpYnV0ZSBzb3VyY2UgKGUuZy4gYXR0cmlidXRlIHJlZmVycyB0byBhbiBvbGRlciBkdW1wJ3MgYXR0cmlidXRlKS4KKyAgICBMSU5LOiAyLAorCisgICAgLy8gQ29ycmVzcG9uZGluZyBtZW1vcnkgYWxsb2NhdG9yIGR1bXAgb3ducyBhbm90aGVyIE1BRC4KKyAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBGaWd1cmUgb3V0IGlmIHRoZXJlJ3MgYSBiZXR0ZXIgcGxhY2UgdG8gc3RvcmUgdGhpcy4KKyAgICBNRU1PUllfT1dORVI6IDMsCisKKyAgICAvLyBDb3JyZXNwb25kaW5nIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBpcyBvd25lZCBieSBhbm90aGVyIE1BRC4KKyAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBGaWd1cmUgb3V0IGlmIHRoZXJlJ3MgYSBiZXR0ZXIgcGxhY2UgdG8gc3RvcmUgdGhpcy4KKyAgICBNRU1PUllfT1dORUQ6IDQKKyAgfTsKKworICByZXR1cm4geworICAgIEF0dHJpYnV0ZTogQXR0cmlidXRlLAorICAgIFNjYWxhckF0dHJpYnV0ZTogU2NhbGFyQXR0cmlidXRlLAorICAgIFN0cmluZ0F0dHJpYnV0ZTogU3RyaW5nQXR0cmlidXRlLAorICAgIFVua25vd25BdHRyaWJ1dGU6IFVua25vd25BdHRyaWJ1dGUsCisgICAgQXR0cmlidXRlSW5mbzogQXR0cmlidXRlSW5mbywKKyAgICBBdHRyaWJ1dGVJbmZvVHlwZTogQXR0cmlidXRlSW5mb1R5cGUKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2F0dHJpYnV0ZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2F0dHJpYnV0ZV90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvYXR0cmlidXRlX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9hdHRyaWJ1dGVfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY29tbWVudF9ib3hfYW5ub3RhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0N2Y3M2IKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9sb2NhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYW5ub3RhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcmVjdF9hbm5vdGF0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbm5vdGF0aW9ucy9jb21tZW50X2JveF9hbm5vdGF0aW9uX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworCisgIGZ1bmN0aW9uIENvbW1lbnRCb3hBbm5vdGF0aW9uKGxvY2F0aW9uLCB0ZXh0KSB7CisgICAgdHIubW9kZWwuQW5ub3RhdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisgICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uOworICAgIHRoaXMudGV4dCA9IHRleHQ7CisgIH0KKworICBDb21tZW50Qm94QW5ub3RhdGlvbi5mcm9tRGljdCA9IGZ1bmN0aW9uKGRpY3QpIHsKKyAgICB2YXIgYXJncyA9IGRpY3QuYXJnczsKKyAgICB2YXIgbG9jYXRpb24gPQorICAgICAgICBuZXcgdHIubW9kZWwuTG9jYXRpb24oYXJncy5sb2NhdGlvbi54V29ybGQsIGFyZ3MubG9jYXRpb24ueUNvbXBvbmVudHMpOworICAgIHJldHVybiBuZXcgdHIubW9kZWwuQ29tbWVudEJveEFubm90YXRpb24obG9jYXRpb24sIGFyZ3MudGV4dCk7CisgIH07CisKKyAgQ29tbWVudEJveEFubm90YXRpb24ucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuQW5ub3RhdGlvbi5wcm90b3R5cGUsCisKKyAgICBvblJlbW92ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnZpZXdfLnJlbW92ZVRleHRBcmVhKCk7CisgICAgfSwKKworICAgIHRvRGljdDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4geworICAgICAgICB0eXBlTmFtZTogJ2NvbW1lbnRfYm94JywKKyAgICAgICAgYXJnczogeworICAgICAgICAgIHRleHQ6IHRoaXMudGV4dCwKKyAgICAgICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbi50b0RpY3QoKQorICAgICAgICB9CisgICAgICB9OworICAgIH0sCisKKyAgICBjcmVhdGVWaWV3XzogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHJldHVybiBuZXcgdHIudWkuYW5ub3RhdGlvbnMuQ29tbWVudEJveEFubm90YXRpb25WaWV3KHZpZXdwb3J0LCB0aGlzKTsKKyAgICB9CisgIH07CisKKyAgdHIubW9kZWwuQW5ub3RhdGlvbi5yZWdpc3RlcigKKyAgICAgIENvbW1lbnRCb3hBbm5vdGF0aW9uLCB7dHlwZU5hbWU6ICdjb21tZW50X2JveCd9KTsKKworICByZXR1cm4geworICAgIENvbW1lbnRCb3hBbm5vdGF0aW9uOiBDb21tZW50Qm94QW5ub3RhdGlvbgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY29tcG91bmRfZXZlbnRfc2VsZWN0aW9uX3N0YXRlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvbXBvdW5kX2V2ZW50X3NlbGVjdGlvbl9zdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNDYxMmEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvbXBvdW5kX2V2ZW50X3NlbGVjdGlvbl9zdGF0ZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIEluZGljYXRlcyBob3cgbXVjaCBvZiBhIGNvbXBvdW5kLWV2ZW50IGlzIHNlbGVjdGVkIFtpZiBhbnldLgorICAgKgorICAgKiBUaGUgQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlIGVudW0gaXMgdXNlZCB3aXRoIGV2ZW50cyB0aGF0IGFyZQorICAgKiBkaXJlY3RseSBzZWxlY3RhYmxlLCBidXQgYWxzbyBoYXZlIGFzc29jaWF0ZWQgZXZlbnRzLCB0b28sIHRoYXQgY2FuIGJlCisgICAqIHNlbGVjdGVkLiBJbiB0aGlzIHNpdHVhdGlvbiwgdGhlcmUgYXJlIGEgdmFyaWV0eSBvZiBkaWZmZXJlbnQKKyAgICogc2VsZWN0ZWQgc3RhdGVzIG90aGVyIHRoYW4ganVzdCAieWVzLCBubyIuIFRoaXMgZW51bSBlbmNvZGVzIHRob3NlCisgICAqIHZhcmlvdXMgcG9zc2libGUgc3RhdGVzLgorICAgKi8KKyAgdmFyIENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZSA9IHsKKyAgICAvLyBCYXNpYyBiaXQgc3RhdGVzLgorICAgIE5PVF9TRUxFQ1RFRDogMCwKKyAgICBFVkVOVF9TRUxFQ1RFRDogMHgxLAorICAgIFNPTUVfQVNTT0NJQVRFRF9FVkVOVFNfU0VMRUNURUQ6IDB4MiwKKyAgICBBTExfQVNTT0NJQVRFRF9FVkVOVFNfU0VMRUNURUQ6IDB4NCwKKworICAgIC8vIENvbW1vbiBjb21iaW5hdGlvbnMuCisgICAgRVZFTlRfQU5EX1NPTUVfQVNTT0NJQVRFRF9TRUxFQ1RFRDogMHgxIHwgMHgyLAorICAgIEVWRU5UX0FORF9BTExfQVNTT0NJQVRFRF9TRUxFQ1RFRDogMHgxIHwgMHg0CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGU6IENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvbnRhaW5lcl9tZW1vcnlfZHVtcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZTQxYjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvbnRhaW5lcl9tZW1vcnlfZHVtcC5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RpbWVkX2V2ZW50Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIENvbnRhaW5lck1lbW9yeUR1bXAgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogVGhlIENvbnRhaW5lck1lbW9yeUR1bXAgcmVwcmVzZW50cyBhbiBhYnN0cmFjdCBjb250YWluZXIgbWVtb3J5IGR1bXAuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ29udGFpbmVyTWVtb3J5RHVtcChzdGFydCkgeworICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7CisKKyAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV8gPSB1bmRlZmluZWQ7CisgIH07CisKKyAgQ29udGFpbmVyTWVtb3J5RHVtcC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSwKKworICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgeworICAgICAgdGhpcy5zdGFydCArPSBhbW91bnQ7CisgICAgfSwKKworICAgIGdldCBtZW1vcnlBbGxvY2F0b3JEdW1wcygpIHsKKyAgICAgIHJldHVybiB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXzsKKyAgICB9LAorCisgICAgc2V0IG1lbW9yeUFsbG9jYXRvckR1bXBzKG1lbW9yeUFsbG9jYXRvckR1bXBzKSB7CisgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzXyA9IG1lbW9yeUFsbG9jYXRvckR1bXBzOworCisgICAgICAvLyBDbGVhciB0aGUgaW5kZXggYW5kIGdlbmVyYXRlIGl0IGxhemlseS4KKyAgICAgIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWU6IGZ1bmN0aW9uKGZ1bGxOYW1lKSB7CisgICAgICBpZiAodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc18gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgLy8gTGF6aWx5IGdlbmVyYXRlIHRoZSBpbmRleCBpZiBuZWNlc3NhcnkuCisgICAgICBpZiAodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc0J5RnVsbE5hbWVfID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdmFyIGluZGV4ID0ge307CisgICAgICAgIGZ1bmN0aW9uIGFkZER1bXBzVG9JbmRleChkdW1wcykgeworICAgICAgICAgIGR1bXBzLmZvckVhY2goZnVuY3Rpb24oZHVtcCkgeworICAgICAgICAgICAgaW5kZXhbZHVtcC5mdWxsTmFtZV0gPSBkdW1wOworICAgICAgICAgICAgYWRkRHVtcHNUb0luZGV4KGR1bXAuY2hpbGRyZW4pOworICAgICAgICAgIH0pOworICAgICAgICB9OworICAgICAgICBhZGREdW1wc1RvSW5kZXgodGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wc18pOworICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzQnlGdWxsTmFtZV8gPSBpbmRleDsKKyAgICAgIH0KKworICAgICAgcmV0dXJuIHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcHNCeUZ1bGxOYW1lX1tmdWxsTmFtZV07CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgQ29udGFpbmVyTWVtb3J5RHVtcDogQ29udGFpbmVyTWVtb3J5RHVtcAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jb250YWluZXJfbWVtb3J5X2R1bXBfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvbnRhaW5lcl9tZW1vcnlfZHVtcF90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY291bnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jb3VudGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNjYTY4MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY291bnRlci5odG1sCkBAIC0wLDAgKzEsMjAyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfY29udGFpbmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworCisgIC8qKgorICAgKiBBIGNvbnRhaW5lciBob2xkaW5nIGFsbCBzZXJpZXMgb2YgYSBnaXZlbiB0eXBlIG9mIG1lYXN1cmVtZW50LgorICAgKgorICAgKiBBcyBhbiBleGFtcGxlLCBpZiB3ZSdyZSBtZWFzdXJpbmcgdGhlIHRocm91Z2hwdXQgb2YgZGF0YSBzZW50IG92ZXIgc2V2ZXJhbAorICAgKiBVU0IgY29ubmVjdGlvbnMsIHRoZSB0aHJvdWdocHV0IG9mIGVhY2ggY2FibGUgbWlnaHQgYmUgYWRkZWQgYXMgYSBzZXBhcmF0ZQorICAgKiBzZXJpZXMgdG8gYSBzaW5nbGUgY291bnRlci4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHtFdmVudENvbnRhaW5lcn0KKyAgICovCisgIGZ1bmN0aW9uIENvdW50ZXIocGFyZW50LCBpZCwgY2F0ZWdvcnksIG5hbWUpIHsKKyAgICB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpOworICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKKworICAgIHRoaXMucGFyZW50XyA9IHBhcmVudDsKKyAgICB0aGlzLmlkXyA9IGlkOworICAgIHRoaXMuY2F0ZWdvcnlfID0gY2F0ZWdvcnkgfHwgJyc7CisgICAgdGhpcy5uYW1lXyA9IG5hbWU7CisKKyAgICB0aGlzLnNlcmllc18gPSBbXTsKKyAgICB0aGlzLnRvdGFscyA9IFtdOworICB9CisKKyAgQ291bnRlci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCisKKyAgICBnZXQgZ3VpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmd1aWRfOworICAgIH0sCisKKyAgICBnZXQgcGFyZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMucGFyZW50XzsKKyAgICB9LAorCisgICAgZ2V0IGlkKCkgeworICAgICAgcmV0dXJuIHRoaXMuaWRfOworICAgIH0sCisKKyAgICBnZXQgY2F0ZWdvcnkoKSB7CisgICAgICByZXR1cm4gdGhpcy5jYXRlZ29yeV87CisgICAgfSwKKworICAgIGdldCBuYW1lKCkgeworICAgICAgcmV0dXJuIHRoaXMubmFtZV87CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zZXJpZXNfLmxlbmd0aDsgaSsrKQorICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCB0aGlzLnNlcmllc19baV0pOworICAgIH0sCisKKyAgICBzZXQgdGltZXN0YW1wcyhhcmcpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignQmFkIGNvdW50ZXIgQVBJLiBObyBjb29raWUuJyk7CisgICAgfSwKKworICAgIHNldCBzZXJpZXNOYW1lcyhhcmcpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignQmFkIGNvdW50ZXIgQVBJLiBObyBjb29raWUuJyk7CisgICAgfSwKKworICAgIHNldCBzZXJpZXNDb2xvcnMoYXJnKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhZCBjb3VudGVyIEFQSS4gTm8gY29va2llLicpOworICAgIH0sCisKKyAgICBzZXQgc2FtcGxlcyhhcmcpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignQmFkIGNvdW50ZXIgQVBJLiBObyBjb29raWUuJyk7CisgICAgfSwKKworICAgIGFkZFNlcmllczogZnVuY3Rpb24oc2VyaWVzKSB7CisgICAgICBzZXJpZXMuY291bnRlciA9IHRoaXM7CisgICAgICBzZXJpZXMuc2VyaWVzSW5kZXggPSB0aGlzLnNlcmllc18ubGVuZ3RoOworICAgICAgdGhpcy5zZXJpZXNfLnB1c2goc2VyaWVzKTsKKyAgICAgIHJldHVybiBzZXJpZXM7CisgICAgfSwKKworICAgIGdldFNlcmllczogZnVuY3Rpb24oaWR4KSB7CisgICAgICByZXR1cm4gdGhpcy5zZXJpZXNfW2lkeF07CisgICAgfSwKKworICAgIGdldCBzZXJpZXMoKSB7CisgICAgICByZXR1cm4gdGhpcy5zZXJpZXNfOworICAgIH0sCisKKyAgICBnZXQgbnVtU2VyaWVzKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzXy5sZW5ndGg7CisgICAgfSwKKworICAgIGdldCBudW1TYW1wbGVzKCkgeworICAgICAgaWYgKHRoaXMuc2VyaWVzXy5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybiAwOworICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzX1swXS5sZW5ndGg7CisgICAgfSwKKworICAgIGdldCB0aW1lc3RhbXBzKCkgeworICAgICAgaWYgKHRoaXMuc2VyaWVzXy5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybiBbXTsKKyAgICAgIHJldHVybiB0aGlzLnNlcmllc19bMF0udGltZXN0YW1wczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogT2J0YWlucyBtaW4sIG1heCwgYXZnLCB2YWx1ZXMsIHN0YXJ0LCBhbmQgZW5kIGZvciBkaWZmZXJlbnQgc2VyaWVzIGZvcgorICAgICAqIGEgZ2l2ZW4gY291bnRlcgorICAgICAqICAgICBnZXRTYW1wbGVTdGF0aXN0aWNzKFswLDFdKQorICAgICAqIFRoZSBzdGF0aXN0aWNzIG9iamVjdHMgdGhhdCB0aGlzIHJldHVybnMgYXJlIGFuIGFycmF5IG9mIG9iamVjdHMsIG9uZQorICAgICAqIG9iamVjdCBmb3IgZWFjaCBzZXJpZXMgZm9yIHRoZSBjb3VudGVyIGluIHRoZSBmb3JtOgorICAgICAqIHttaW46IG1pblZhbCwgbWF4OiBtYXhWYWwsIGF2ZzogYXZnVmFsLCBzdGFydDogc3RhcnRWYWwsIGVuZDogZW5kVmFsfQorICAgICAqCisgICAgICogQHBhcmFtIHtBcnJheS48TnVtYmVyPn0gSW5kaWNlcyB0byBzdW1tYXJpemUuCisgICAgICogQHJldHVybiB7T2JqZWN0fSBBbiBhcnJheSBvZiBzdGF0aXN0aWNzLiBFYWNoIGVsZW1lbnQgaW4gdGhlIGFycmF5CisgICAgICogaGFzIGRhdGEgZm9yIG9uZSBvZiB0aGUgc2VyaWVzIGluIHRoZSBzZWxlY3RlZCBjb3VudGVyLgorICAgICAqLworICAgIGdldFNhbXBsZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKHNhbXBsZUluZGljZXMpIHsKKyAgICAgIHNhbXBsZUluZGljZXMuc29ydCgpOworCisgICAgICB2YXIgcmV0ID0gW107CisgICAgICB0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgcmV0LnB1c2goc2VyaWVzLmdldFN0YXRpc3RpY3Moc2FtcGxlSW5kaWNlcykpOworICAgICAgfSk7CisgICAgICByZXR1cm4gcmV0OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBTaGlmdHMgYWxsIHRoZSB0aW1lc3RhbXBzIGluc2lkZSB0aGlzIGNvdW50ZXIgZm9yd2FyZCBieSB0aGUgYW1vdW50CisgICAgICogc3BlY2lmaWVkLgorICAgICAqLworICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNlcmllc18ubGVuZ3RoOyArK2kpCisgICAgICAgIHRoaXMuc2VyaWVzX1tpXS5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFVwZGF0ZXMgdGhlIGJvdW5kcyBmb3IgdGhpcyBjb3VudGVyIGJhc2VkIG9uIHRoZSBzYW1wbGVzIGl0IGNvbnRhaW5zLgorICAgICAqLworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnRvdGFscyA9IFtdOworICAgICAgdGhpcy5tYXhUb3RhbCA9IDA7CisgICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOworCisgICAgICBpZiAodGhpcy5zZXJpZXNfLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgZmlyc3RTZXJpZXMgPSB0aGlzLnNlcmllc19bMF07CisgICAgICB2YXIgbGFzdFNlcmllcyA9IHRoaXMuc2VyaWVzX1t0aGlzLnNlcmllc18ubGVuZ3RoIC0gMV07CisKKyAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKGZpcnN0U2VyaWVzLmdldFRpbWVzdGFtcCgwKSk7CisgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZShsYXN0U2VyaWVzLmdldFRpbWVzdGFtcChsYXN0U2VyaWVzLmxlbmd0aCAtIDEpKTsKKworICAgICAgdmFyIG51bVNlcmllcyA9IHRoaXMubnVtU2VyaWVzOworICAgICAgdGhpcy5tYXhUb3RhbCA9IC1JbmZpbml0eTsKKworICAgICAgLy8gU3VtIHRoZSBzYW1wbGVzIGF0IGVhY2ggdGltZXN0YW1wLgorICAgICAgLy8gTm90ZSwgdGhpcyBhc3N1bWVzIHRoYXQgYWxsIHNlcmllcyBoYXZlIGFsbCB0aW1lc3RhbXBzLgorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaXJzdFNlcmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgdG90YWwgPSAwOworICAgICAgICB0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgICB0b3RhbCArPSBzZXJpZXMuZ2V0U2FtcGxlKGkpLnZhbHVlOworICAgICAgICAgIHRoaXMudG90YWxzLnB1c2godG90YWwpOworICAgICAgICB9LmJpbmQodGhpcykpOworCisgICAgICAgIHRoaXMubWF4VG90YWwgPSBNYXRoLm1heCh0b3RhbCwgdGhpcy5tYXhUb3RhbCk7CisgICAgICB9CisgICAgfQorICB9OworCisgIC8qKgorICAgKiBDb21wYXJpc29uIGJldHdlZW4gY291bnRlcnMgdGhhdCBvcmRlcnMgYnkgcGFyZW50LmNvbXBhcmVUbywgdGhlbiBuYW1lLgorICAgKi8KKyAgQ291bnRlci5jb21wYXJlID0gZnVuY3Rpb24oeCwgeSkgeworICAgIHZhciB0bXAgPSB4LnBhcmVudC5jb21wYXJlVG8oeSk7CisgICAgaWYgKHRtcCAhPSAwKQorICAgICAgcmV0dXJuIHRtcDsKKyAgICB2YXIgdG1wID0geC5uYW1lLmxvY2FsZUNvbXBhcmUoeS5uYW1lKTsKKyAgICBpZiAodG1wID09IDApCisgICAgICByZXR1cm4geC50aWQgLSB5LnRpZDsKKyAgICByZXR1cm4gdG1wOworICB9OworCisgIHJldHVybiB7CisgICAgQ291bnRlcjogQ291bnRlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY291bnRlcl9zYW1wbGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY291bnRlcl9zYW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTE5YmQzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jb3VudGVyX3NhbXBsZS5odG1sCkBAIC0wLDAgKzEsMTA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIFRoZSB2YWx1ZSBvZiBhIGdpdmVuIG1lYXN1cmVtZW50IGF0IGEgZ2l2ZW4gdGltZS4KKyAgICoKKyAgICogQXMgYW4gZXhhbXBsZSwgaWYgd2UncmUgbWVhc3VyaW5nIHRoZSB0aHJvdWdocHV0IG9mIGRhdGEgc2VudCBvdmVyIGEgVVNCCisgICAqIGNvbm5lY3Rpb24sIGVhY2ggY291bnRlciBzYW1wbGUgbWlnaHQgcmVwcmVzZW50IHRoZSBpbnN0YW50YW5lb3VzCisgICAqIHRocm91Z2hwdXQgb2YgdGhlIGNvbm5lY3Rpb24gYXQgYSBnaXZlbiB0aW1lLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0V2ZW50fQorICAgKi8KKyAgZnVuY3Rpb24gQ291bnRlclNhbXBsZShzZXJpZXMsIHRpbWVzdGFtcCwgdmFsdWUpIHsKKyAgICB0ci5tb2RlbC5FdmVudC5jYWxsKHRoaXMpOworICAgIHRoaXMuc2VyaWVzXyA9IHNlcmllczsKKyAgICB0aGlzLnRpbWVzdGFtcF8gPSB0aW1lc3RhbXA7CisgICAgdGhpcy52YWx1ZV8gPSB2YWx1ZTsKKyAgfQorCisgIENvdW50ZXJTYW1wbGUuZ3JvdXBCeVRpbWVzdGFtcCA9IGZ1bmN0aW9uKHNhbXBsZXMpIHsKKyAgICB2YXIgc2FtcGxlc0J5VGltZXN0YW1wID0gdHIuYi5ncm91cChzYW1wbGVzLCBmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgIHJldHVybiBzYW1wbGUudGltZXN0YW1wOworICAgIH0pOworCisgICAgdmFyIHRpbWVzdGFtcHMgPSB0ci5iLmRpY3Rpb25hcnlLZXlzKHNhbXBsZXNCeVRpbWVzdGFtcCk7CisgICAgdGltZXN0YW1wcy5zb3J0KCk7CisgICAgdmFyIGdyb3VwcyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGltZXN0YW1wcy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIHRzID0gdGltZXN0YW1wc1tpXTsKKyAgICAgIHZhciBncm91cCA9IHNhbXBsZXNCeVRpbWVzdGFtcFt0c107CisgICAgICBncm91cC5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKKyAgICAgICAgcmV0dXJuIHguc2VyaWVzLnNlcmllc0luZGV4IC0geS5zZXJpZXMuc2VyaWVzSW5kZXg7CisgICAgICB9KTsKKyAgICAgIGdyb3Vwcy5wdXNoKGdyb3VwKTsKKyAgICB9CisgICAgcmV0dXJuIGdyb3VwczsKKyAgfQorCisgIENvdW50ZXJTYW1wbGUucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnQucHJvdG90eXBlLAorCisgICAgZ2V0IHNlcmllcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlcmllc187CisgICAgfSwKKworICAgIGdldCB0aW1lc3RhbXAoKSB7CisgICAgICByZXR1cm4gdGhpcy50aW1lc3RhbXBfOworICAgIH0sCisKKyAgICBnZXQgdmFsdWUoKSB7CisgICAgICByZXR1cm4gdGhpcy52YWx1ZV87CisgICAgfSwKKworICAgIHNldCB0aW1lc3RhbXAodGltZXN0YW1wKSB7CisgICAgICB0aGlzLnRpbWVzdGFtcF8gPSB0aW1lc3RhbXA7CisgICAgfSwKKworICAgIGFkZEJvdW5kc1RvUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlKSB7CisgICAgICByYW5nZS5hZGRWYWx1ZSh0aGlzLnRpbWVzdGFtcCk7CisgICAgfSwKKworICAgIGdldFNhbXBsZUluZGV4OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCisgICAgICAgICAgdGhpcy5zZXJpZXMudGltZXN0YW1wcywKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4OyB9LAorICAgICAgICAgIHRoaXMudGltZXN0YW1wXyk7CisgICAgfSwKKworICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgeworICAgICAgcmV0dXJuICdDb3VudGVyIHNhbXBsZSBmcm9tICcgKyB0aGlzLnNlcmllc18udGl0bGUgKyAnIGF0ICcgKworICAgICAgICAgIHRyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnRpbWVzdGFtcCk7CisgICAgfQorICB9OworCisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIENvdW50ZXJTYW1wbGUsCisgICAgICB7CisgICAgICAgIG5hbWU6ICdjb3VudGVyU2FtcGxlJywKKyAgICAgICAgcGx1cmFsTmFtZTogJ2NvdW50ZXJTYW1wbGVzJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldycKKyAgICAgIH0pOworCisgIHJldHVybiB7CisgICAgQ291bnRlclNhbXBsZTogQ291bnRlclNhbXBsZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY291bnRlcl9zYW1wbGVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jb3VudGVyX3NhbXBsZV90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY291bnRlcl9zYW1wbGVfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvdW50ZXJfc2FtcGxlX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkY2IxODEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NvdW50ZXJfc2VyaWVzLmh0bWwKQEAgLTAsMCArMSwxMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2FtcGxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICB2YXIgQ291bnRlclNhbXBsZSA9IHRyLm1vZGVsLkNvdW50ZXJTYW1wbGU7CisKKyAgLyoqCisgICAqIEEgY29udGFpbmVyIGhvbGRpbmcgYWxsIHNhbXBsZXMgb2YgYSBnaXZlbiBtZWFzdXJlbWVudCBvdmVyIHRpbWUuCisgICAqCisgICAqIEFzIGFuIGV4YW1wbGUsIGEgY291bnRlciBzZXJpZXMgbWlnaHQgbWVhc3VyZSB0aGUgdGhyb3VnaHB1dCBvZiBkYXRhIHNlbnQKKyAgICogb3ZlciBhIFVTQiBjb25uZWN0aW9uLCB3aXRoIGVhY2ggc2FtcGxlIHJlcHJlc2VudGluZyB0aGUgaW5zdGFudGFuZW91cworICAgKiB0aHJvdWdocHV0IG9mIHRoZSBjb25uZWN0aW9uLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0V2ZW50Q29udGFpbmVyfQorICAgKi8KKyAgZnVuY3Rpb24gQ291bnRlclNlcmllcyhuYW1lLCBjb2xvcikgeworICAgIHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7CisgICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOworCisgICAgdGhpcy5uYW1lXyA9IG5hbWU7CisgICAgdGhpcy5jb2xvcl8gPSBjb2xvcjsKKworICAgIHRoaXMudGltZXN0YW1wc18gPSBbXTsKKyAgICB0aGlzLnNhbXBsZXNfID0gW107CisKKyAgICAvLyBTZXQgYnkgY291bnRlci5hZGRTZXJpZXMKKyAgICB0aGlzLmNvdW50ZXIgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zZXJpZXNJbmRleCA9IHVuZGVmaW5lZDsKKyAgfQorCisgIENvdW50ZXJTZXJpZXMucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLAorCisgICAgZ2V0IGd1aWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5ndWlkXzsKKyAgICB9LAorCisgICAgZ2V0IGxlbmd0aCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnRpbWVzdGFtcHNfLmxlbmd0aDsKKyAgICB9LAorCisgICAgZ2V0IG5hbWUoKSB7CisgICAgICByZXR1cm4gdGhpcy5uYW1lXzsKKyAgICB9LAorCisgICAgZ2V0IGNvbG9yKCkgeworICAgICAgcmV0dXJuIHRoaXMuY29sb3JfOworICAgIH0sCisKKyAgICBnZXQgc2FtcGxlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNhbXBsZXNfOworICAgIH0sCisKKyAgICBnZXQgdGltZXN0YW1wcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnRpbWVzdGFtcHNfOworICAgIH0sCisKKyAgICBnZXRTYW1wbGU6IGZ1bmN0aW9uKGlkeCkgeworICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlc19baWR4XTsKKyAgICB9LAorCisgICAgZ2V0VGltZXN0YW1wOiBmdW5jdGlvbihpZHgpIHsKKyAgICAgIHJldHVybiB0aGlzLnRpbWVzdGFtcHNfW2lkeF07CisgICAgfSwKKworICAgIGFkZENvdW50ZXJTYW1wbGU6IGZ1bmN0aW9uKHRzLCB2YWwpIHsKKyAgICAgIHZhciBzYW1wbGUgPSBuZXcgQ291bnRlclNhbXBsZSh0aGlzLCB0cywgdmFsKTsKKyAgICAgIHRoaXMuYWRkU2FtcGxlKHNhbXBsZSk7CisgICAgICByZXR1cm4gc2FtcGxlOworICAgIH0sCisKKyAgICBhZGRTYW1wbGU6IGZ1bmN0aW9uKHNhbXBsZSkgeworICAgICAgdGhpcy50aW1lc3RhbXBzXy5wdXNoKHNhbXBsZS50aW1lc3RhbXApOworICAgICAgdGhpcy5zYW1wbGVzXy5wdXNoKHNhbXBsZSk7CisgICAgfSwKKworICAgIGdldFN0YXRpc3RpY3M6IGZ1bmN0aW9uKHNhbXBsZUluZGljZXMpIHsKKyAgICAgIHZhciBzdW0gPSAwOworICAgICAgdmFyIG1pbiA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgICB2YXIgbWF4ID0gLU51bWJlci5NQVhfVkFMVUU7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2FtcGxlSW5kaWNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgc2FtcGxlID0gdGhpcy5nZXRTYW1wbGUoc2FtcGxlSW5kaWNlc1tpXSkudmFsdWU7CisKKyAgICAgICAgc3VtICs9IHNhbXBsZTsKKyAgICAgICAgbWluID0gTWF0aC5taW4oc2FtcGxlLCBtaW4pOworICAgICAgICBtYXggPSBNYXRoLm1heChzYW1wbGUsIG1heCk7CisgICAgICB9CisKKyAgICAgIHJldHVybiB7CisgICAgICAgIG1pbjogbWluLAorICAgICAgICBtYXg6IG1heCwKKyAgICAgICAgYXZnOiAoc3VtIC8gc2FtcGxlSW5kaWNlcy5sZW5ndGgpLAorICAgICAgICBzdGFydDogdGhpcy5nZXRTYW1wbGUoc2FtcGxlSW5kaWNlc1swXSkudmFsdWUsCisgICAgICAgIGVuZDogdGhpcy5nZXRTYW1wbGUoc2FtcGxlSW5kaWNlcy5sZW5ndGggLSAxKS52YWx1ZQorICAgICAgfTsKKyAgICB9LAorCisgICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGltZXN0YW1wc18ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdGhpcy50aW1lc3RhbXBzX1tpXSArPSBhbW91bnQ7CisgICAgICAgIHRoaXMuc2FtcGxlc19baV0udGltZXN0YW1wID0gdGhpcy50aW1lc3RhbXBzX1tpXTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCB0ci5tb2RlbC5Db3VudGVyU2FtcGxlKSkgeworICAgICAgICB0aGlzLnNhbXBsZXNfLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDb3VudGVyU2VyaWVzOiBDb3VudGVyU2VyaWVzCisgIH07Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NvdW50ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jb3VudGVyX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9jb3VudGVyX3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jb3VudGVyX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jcHUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY3B1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlkOGNmNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvY3B1Lmh0bWwKQEAgLTAsMCArMSwyMDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NwdV9zbGljZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGhyZWFkX3RpbWVfc2xpY2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgQ3B1IGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKworICB2YXIgQ291bnRlciA9IHRyLm1vZGVsLkNvdW50ZXI7CisgIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOworICB2YXIgQ3B1U2xpY2UgPSB0ci5tb2RlbC5DcHVTbGljZTsKKworICAvKioKKyAgICogVGhlIENwdSByZXByZXNlbnRzIGEgQ3B1IGZyb20gdGhlIGtlcm5lbCdzIHBvaW50IG9mIHZpZXcuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ3B1KGtlcm5lbCwgbnVtYmVyKSB7CisgICAgaWYgKGtlcm5lbCA9PT0gdW5kZWZpbmVkIHx8IG51bWJlciA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGFyZ3VtZW50cycpOworICAgIHRoaXMua2VybmVsID0ga2VybmVsOworICAgIHRoaXMuY3B1TnVtYmVyID0gbnVtYmVyOworICAgIHRoaXMuc2xpY2VzID0gW107CisgICAgdGhpcy5jb3VudGVycyA9IHt9OworICAgIHRoaXMuYm91bmRzID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICB0aGlzLnNhbXBsZXNfID0gdW5kZWZpbmVkOyAvLyBTZXQgZHVyaW5nIGNyZWF0ZVN1YlNsaWNlcworCisgICAgLy8gU3RhcnQgdGltZXN0YW1wIG9mIHRoZSBsYXN0IGFjdGl2ZSB0aHJlYWQuCisgICAgdGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXyA9IHVuZGVmaW5lZDsKKworICAgIC8vIElkZW50aWZpZXIgb2YgdGhlIGxhc3QgYWN0aXZlIHRocmVhZC4gT24gTGludXgsIGl0J3MgYSBwaWQgd2hpbGUgb24KKyAgICAvLyBXaW5kb3dzIGl0J3MgYSB0aHJlYWQgaWQuCisgICAgdGhpcy5sYXN0QWN0aXZlVGhyZWFkXyA9IHVuZGVmaW5lZDsKKworICAgIC8vIE5hbWUgYW5kIGFyZ3VtZW50cyBvZiB0aGUgbGFzdCBhY3RpdmUgdGhyZWFkLgorICAgIHRoaXMubGFzdEFjdGl2ZU5hbWVfID0gdW5kZWZpbmVkOworICAgIHRoaXMubGFzdEFjdGl2ZUFyZ3NfID0gdW5kZWZpbmVkOworICB9OworCisgIENwdS5wcm90b3R5cGUgPSB7CisgICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCB0ci5tb2RlbC5DcHVTbGljZSkpCisgICAgICAgIHRoaXMuc2xpY2VzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKKworICAgICAgaWYgKHRoaXMuc2FtcGxlc18pIHsKKyAgICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCB0ci5tb2RlbC5TYW1wbGUpKQorICAgICAgICAgIHRoaXMuc2FtcGxlc18uZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOworICAgICAgfQorICAgIH0sCisKKyAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5jb3VudGVycykKKyAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5jb3VudGVyc1tpZF0pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtDb3VudGVyfSBUaGUgY291bnRlciBvbiB0aGlzIENQVSB3aXRoIHRoZSBnaXZlbiBjYXRlZ29yeS9uYW1lCisgICAgICogY29tYmluYXRpb24sIGNyZWF0aW5nIGl0IGlmIGl0IGRvZXNuJ3QgZXhpc3QuCisgICAgICovCisgICAgZ2V0T3JDcmVhdGVDb3VudGVyOiBmdW5jdGlvbihjYXQsIG5hbWUpIHsKKyAgICAgIHZhciBpZCA9IGNhdCArICcuJyArIG5hbWU7CisgICAgICBpZiAoIXRoaXMuY291bnRlcnNbaWRdKQorICAgICAgICB0aGlzLmNvdW50ZXJzW2lkXSA9IG5ldyBDb3VudGVyKHRoaXMsIGlkLCBjYXQsIG5hbWUpOworICAgICAgcmV0dXJuIHRoaXMuY291bnRlcnNbaWRdOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBTaGlmdHMgYWxsIHRoZSB0aW1lc3RhbXBzIGluc2lkZSB0aGlzIENQVSBmb3J3YXJkIGJ5IHRoZSBhbW91bnQKKyAgICAgKiBzcGVjaWZpZWQuCisgICAgICovCisgICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7CisgICAgICBmb3IgKHZhciBzSSA9IDA7IHNJIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBzSSsrKQorICAgICAgICB0aGlzLnNsaWNlc1tzSV0uc3RhcnQgPSAodGhpcy5zbGljZXNbc0ldLnN0YXJ0ICsgYW1vdW50KTsKKyAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCisgICAgICAgIHRoaXMuY291bnRlcnNbaWRdLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogVXBkYXRlcyB0aGUgcmFuZ2UgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2xpY2VzIGF0dGFjaGVkIHRvIHRoZSBjcHUuCisgICAgICovCisgICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7CisgICAgICBpZiAodGhpcy5zbGljZXMubGVuZ3RoKSB7CisgICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2xpY2VzWzBdLnN0YXJ0KTsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbdGhpcy5zbGljZXMubGVuZ3RoIC0gMV0uZW5kKTsKKyAgICAgIH0KKyAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuY291bnRlcnMpIHsKKyAgICAgICAgdGhpcy5jb3VudGVyc1tpZF0udXBkYXRlQm91bmRzKCk7CisgICAgICAgIHRoaXMuYm91bmRzLmFkZFJhbmdlKHRoaXMuY291bnRlcnNbaWRdLmJvdW5kcyk7CisgICAgICB9CisgICAgICBpZiAodGhpcy5zYW1wbGVzXyAmJiB0aGlzLnNhbXBsZXNfLmxlbmd0aCkgeworICAgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfWzBdLnN0YXJ0KTsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUoCisgICAgICAgICAgICB0aGlzLnNhbXBsZXNfW3RoaXMuc2FtcGxlc18ubGVuZ3RoIC0gMV0uZW5kKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2FtcGxlc18gPSB0aGlzLmtlcm5lbC5tb2RlbC5zYW1wbGVzLmZpbHRlcihmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgICAgcmV0dXJuIHNhbXBsZS5jcHUgPT0gdGhpczsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICBhZGRDYXRlZ29yaWVzVG9EaWN0OiBmdW5jdGlvbihjYXRlZ29yaWVzRGljdCkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWNlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgY2F0ZWdvcmllc0RpY3RbdGhpcy5zbGljZXNbaV0uY2F0ZWdvcnldID0gdHJ1ZTsKKyAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuY291bnRlcnMpCisgICAgICAgIGNhdGVnb3JpZXNEaWN0W3RoaXMuY291bnRlcnNbaWRdLmNhdGVnb3J5XSA9IHRydWU7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2FtcGxlc18ubGVuZ3RoOyBpKyspCisgICAgICAgIGNhdGVnb3JpZXNEaWN0W3RoaXMuc2FtcGxlc19baV0uY2F0ZWdvcnldID0gdHJ1ZTsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICByZXR1cm4gJ0NQVSAnICsgdGhpcy5jcHVOdW1iZXI7CisgICAgfSwKKworICAgIC8qCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHNsaWNlIGluIHRoZSBDUFUncyBzbGljZXMsIG9yIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBpbmRleE9mOiBmdW5jdGlvbihjcHVTbGljZSkgeworICAgICAgdmFyIGkgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCisgICAgICAgICAgdGhpcy5zbGljZXMsCisgICAgICAgICAgZnVuY3Rpb24oc2xpY2UpIHsgcmV0dXJuIHNsaWNlLnN0YXJ0OyB9LAorICAgICAgICAgIGNwdVNsaWNlLnN0YXJ0KTsKKyAgICAgIGlmICh0aGlzLnNsaWNlc1tpXSAhPT0gY3B1U2xpY2UpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gaTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2xvc2VzIHRoZSB0aHJlYWQgcnVubmluZyBvbiB0aGUgQ1BVLiB8ZW5kX3RpbWVzdGFtcHwgaXMgdGhlIHRpbWVzdGFtcAorICAgICAqIGF0IHdoaWNoIHRoZSB0aHJlYWQgd2FzIHVuc2NoZWR1bGVkLiB8YXJnc3wgaXMgbWVyZ2VkIHdpdGggdGhlIGFyZ3VtZW50cworICAgICAqIHNwZWNpZmllZCB3aGVuIHRoZSB0aHJlYWQgd2FzIGluaXRpYWxseSBzY2hlZHVsZWQuCisgICAgICovCisgICAgY2xvc2VBY3RpdmVUaHJlYWQ6IGZ1bmN0aW9uKGVuZF90aW1lc3RhbXAsIGFyZ3MpIHsKKyAgICAgIC8vIERvbid0IGdlbmVyYXRlIGEgc2xpY2UgaWYgdGhlIGxhc3QgYWN0aXZlIHRocmVhZCBpcyB0aGUgaWRsZSB0YXNrLgorICAgICAgaWYgKHRoaXMubGFzdEFjdGl2ZVRocmVhZF8gPT0gdW5kZWZpbmVkIHx8IHRoaXMubGFzdEFjdGl2ZVRocmVhZF8gPT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBpZiAoZW5kX3RpbWVzdGFtcCA8IHRoaXMubGFzdEFjdGl2ZVRpbWVzdGFtcF8pIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZW5kIHRpbWVzdGFtcCBvZiBhIHRocmVhZCBydW5uaW5nIG9uIENQVSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3B1TnVtYmVyICsgJyBpcyBiZWZvcmUgaXRzIHN0YXJ0IHRpbWVzdGFtcC4nKTsKKyAgICAgIH0KKworICAgICAgLy8gTWVyZ2UgfGFyZ3N8IHdpdGggfHRoaXMubGFzdEFjdGl2ZUFyZ3NffC4gSWYgYSBrZXkgaXMgaW4gYm90aAorICAgICAgLy8gZGljdGlvbmFyaWVzLCB0aGUgdmFsdWUgZnJvbSB8YXJnc3wgaXMgdXNlZC4KKyAgICAgIGZvciAodmFyIGtleSBpbiBhcmdzKSB7CisgICAgICAgIHRoaXMubGFzdEFjdGl2ZUFyZ3NfW2tleV0gPSBhcmdzW2tleV07CisgICAgICB9CisKKyAgICAgIHZhciBkdXJhdGlvbiA9IGVuZF90aW1lc3RhbXAgLSB0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfOworICAgICAgdmFyIHNsaWNlID0gbmV3IHRyLm1vZGVsLkNwdVNsaWNlKAorICAgICAgICAgICcnLCB0aGlzLmxhc3RBY3RpdmVOYW1lXywKKyAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aGlzLmxhc3RBY3RpdmVOYW1lXyksCisgICAgICAgICAgdGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXywKKyAgICAgICAgICB0aGlzLmxhc3RBY3RpdmVBcmdzXywKKyAgICAgICAgICBkdXJhdGlvbik7CisgICAgICBzbGljZS5jcHUgPSB0aGlzOworICAgICAgdGhpcy5zbGljZXMucHVzaChzbGljZSk7CisKKyAgICAgIC8vIENsZWFyIHRoZSBsYXN0IHN0YXRlLgorICAgICAgdGhpcy5sYXN0QWN0aXZlVGltZXN0YW1wXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMubGFzdEFjdGl2ZVRocmVhZF8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmxhc3RBY3RpdmVOYW1lXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMubGFzdEFjdGl2ZUFyZ3NfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBzd2l0Y2hBY3RpdmVUaHJlYWQ6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgb2xkX3RocmVhZF9hcmdzLCBuZXdfdGhyZWFkX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3RocmVhZF9uYW1lLCBuZXdfdGhyZWFkX2FyZ3MpIHsKKyAgICAgIC8vIENsb3NlIHRoZSBwcmV2aW91cyBhY3RpdmUgdGhyZWFkIGFuZCBnZW5lcmF0ZSBhIHNsaWNlLgorICAgICAgdGhpcy5jbG9zZUFjdGl2ZVRocmVhZCh0aW1lc3RhbXAsIG9sZF90aHJlYWRfYXJncyk7CisKKyAgICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIG5ldyB0aHJlYWQuCisgICAgICB0aGlzLmxhc3RBY3RpdmVUaW1lc3RhbXBfID0gdGltZXN0YW1wOworICAgICAgdGhpcy5sYXN0QWN0aXZlVGhyZWFkXyA9IG5ld190aHJlYWRfaWQ7CisgICAgICB0aGlzLmxhc3RBY3RpdmVOYW1lXyA9IG5ld190aHJlYWRfbmFtZTsKKyAgICAgIHRoaXMubGFzdEFjdGl2ZUFyZ3NfID0gbmV3X3RocmVhZF9hcmdzOworICAgIH0sCisKKyAgICBnZXQgc2FtcGxlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNhbXBsZXNfOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogQ29tcGFyaXNvbiBiZXR3ZWVuIHByb2Nlc3NlcyB0aGF0IG9yZGVycyBieSBjcHVOdW1iZXIuCisgICAqLworICBDcHUuY29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsKKyAgICByZXR1cm4geC5jcHVOdW1iZXIgLSB5LmNwdU51bWJlcjsKKyAgfTsKKworCisgIHJldHVybiB7CisgICAgQ3B1OiBDcHUKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NwdV9zbGljZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jcHVfc2xpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWE2MGJkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jcHVfc2xpY2UuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aHJlYWRfdGltZV9zbGljZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBDcHVTbGljZSBjbGFzcy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFNsaWNlID0gdHIubW9kZWwuU2xpY2U7CisKKyAgLyoqCisgICAqIEEgQ3B1U2xpY2UgcmVwcmVzZW50cyBhIHNsaWNlIG9mIHRpbWUgb24gYSBDUFUuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ3B1U2xpY2UoY2F0LCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MsIG9wdF9kdXJhdGlvbikgeworICAgIFNsaWNlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgdGhpcy50aHJlYWRUaGF0V2FzUnVubmluZyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmNwdSA9IHVuZGVmaW5lZDsKKyAgfQorCisgIENwdVNsaWNlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFNsaWNlLnByb3RvdHlwZSwKKworICAgIGdldCBhbmFseXNpc1R5cGVOYW1lKCkgeworICAgICAgcmV0dXJuICd0ci51aS5hbmFseXNpcy5DcHVTbGljZSc7CisgICAgfSwKKworICAgIGdldEFzc29jaWF0ZWRUaW1lc2xpY2U6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLnRocmVhZFRoYXRXYXNSdW5uaW5nKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgdmFyIHRpbWVTbGljZXMgPSB0aGlzLnRocmVhZFRoYXRXYXNSdW5uaW5nLnRpbWVTbGljZXM7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWVTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHRpbWVTbGljZSA9IHRpbWVTbGljZXNbaV07CisgICAgICAgIGlmICh0aW1lU2xpY2Uuc3RhcnQgIT09IHRoaXMuc3RhcnQpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICh0aW1lU2xpY2UuZHVyYXRpb24gIT09IHRoaXMuZHVyYXRpb24pCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHJldHVybiB0aW1lU2xpY2U7CisgICAgICB9CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0KKyAgfTsKKworICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAorICAgICAgQ3B1U2xpY2UsCisgICAgICB7CisgICAgICAgIG5hbWU6ICdjcHVTbGljZScsCisgICAgICAgIHBsdXJhbE5hbWU6ICdjcHVTbGljZXMnLAorICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLXNpbmdsZS1jcHUtc2xpY2Utc3ViLXZpZXcnLAorICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtbXVsdGktY3B1LXNsaWNlLXN1Yi12aWV3JworICAgICAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBDcHVTbGljZTogQ3B1U2xpY2UKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2NwdV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2NwdV90ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvY3B1X3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9jcHVfdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2RldmljZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9kZXZpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmZmMTRiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9kZXZpY2UuaHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ndWlkLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3Bvd2VyX3Nlcmllcy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBEZXZpY2UgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworCisgIC8qKgorICAgKiBEZXZpY2UgcmVwcmVzZW50cyB0aGUgZGV2aWNlLWxldmVsIG9iamVjdHMgaW4gdGhlIG1vZGVsLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge3RyLm1vZGVsLkV2ZW50Q29udGFpbmVyfQorICAgKi8KKyAgZnVuY3Rpb24gRGV2aWNlKG1vZGVsKSB7CisgICAgaWYgKCFtb2RlbCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgbW9kZWwuJyk7CisKKyAgICB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpOworCisgICAgdGhpcy5ndWlkID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7CisgICAgdGhpcy5wb3dlclNlcmllc18gPSB1bmRlZmluZWQ7CisgICAgdGhpcy52U3luY1RpbWVzdGFtcHNfID0gW107CisgIH07CisKKyAgRGV2aWNlLmNvbXBhcmUgPSBmdW5jdGlvbih4LCB5KSB7CisgICAgcmV0dXJuIHguZ3VpZCAtIHkuZ3VpZDsKKyAgfTsKKworICBEZXZpY2UucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnRDb250YWluZXIucHJvdG90eXBlLAorCisgICAgY29tcGFyZVRvOiBmdW5jdGlvbih0aGF0KSB7CisgICAgICByZXR1cm4gRGV2aWNlLmNvbXBhcmUodGhpcywgdGhhdCk7CisgICAgfSwKKworICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgeworICAgICAgcmV0dXJuICdEZXZpY2UnOworICAgIH0sCisKKyAgICBnZXQgdXNlckZyaWVuZGx5RGV0YWlscygpIHsKKyAgICAgIHJldHVybiAnRGV2aWNlJzsKKyAgICB9LAorCisgICAgZ2V0IHN0YWJsZUlkKCkgeworICAgICAgcmV0dXJuICdEZXZpY2UnOworICAgIH0sCisKKyAgICBnZXRTZXR0aW5nc0tleTogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gJ2RldmljZSc7CisgICAgfSwKKworICAgIGdldCBwb3dlclNlcmllcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnBvd2VyU2VyaWVzXzsKKyAgICB9LAorCisgICAgc2V0IHBvd2VyU2VyaWVzKHBvd2VyU2VyaWVzKSB7CisgICAgICB0aGlzLnBvd2VyU2VyaWVzXyA9IHBvd2VyU2VyaWVzOworICAgIH0sCisKKyAgICBnZXQgdlN5bmNUaW1lc3RhbXBzKCkgeworICAgICAgcmV0dXJuIHRoaXMudlN5bmNUaW1lc3RhbXBzXzsKKyAgICB9LAorCisgICAgc2V0IHZTeW5jVGltZXN0YW1wcyh2YWx1ZSkgeworICAgICAgdGhpcy52U3luY1RpbWVzdGFtcHNfID0gdmFsdWU7CisgICAgfSwKKworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOworCisgICAgICB0aGlzLml0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVycyhmdW5jdGlvbihjaGlsZCkgeworICAgICAgICBjaGlsZC51cGRhdGVCb3VuZHMoKTsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkUmFuZ2UoY2hpbGQuYm91bmRzKTsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKKyAgICAgIHRoaXMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGNoaWxkKSB7CisgICAgICAgIGNoaWxkLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKKyAgICAgIH0pOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudlN5bmNUaW1lc3RhbXBzXy5sZW5ndGg7IGkrKykKKyAgICAgICAgdGhpcy52U3luY1RpbWVzdGFtcHNfW2ldICs9IGFtb3VudDsKKyAgICB9LAorCisgICAgYWRkQ2F0ZWdvcmllc1RvRGljdDogZnVuY3Rpb24oY2F0ZWdvcmllc0RpY3QpIHsKKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgIH0sCisKKyAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgaWYgKHRoaXMucG93ZXJTZXJpZXNfKQorICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCB0aGlzLnBvd2VyU2VyaWVzXyk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgRGV2aWNlOiBEZXZpY2UKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2RldmljZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2RldmljZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQwZmRhOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZGV2aWNlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9kZXZpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wb3dlcl9zZXJpZXMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworCisgIHZhciBEZXZpY2UgPSB0ci5tb2RlbC5EZXZpY2U7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgUG93ZXJTZXJpZXMgPSB0ci5tb2RlbC5Qb3dlclNlcmllczsKKworICB0ZXN0KCd1cGRhdGVCb3VuZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGV2aWNlID0gbmV3IERldmljZShuZXcgTW9kZWwoKSk7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzID0gbmV3IFBvd2VyU2VyaWVzKGRldmljZSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgYm91bmRzIG1hdGNoIHRoZSBsb3dlc3QgYW5kIGhpZ2hlc3QgdGltZXN0YW1wcy4KKyAgICBkZXZpY2UucG93ZXJTZXJpZXMuYWRkUG93ZXJTYW1wbGUoMTAwLCA1KTsKKyAgICBkZXZpY2UucG93ZXJTZXJpZXMuYWRkUG93ZXJTYW1wbGUoMjAwLCA1KTsKKyAgICBkZXZpY2UudXBkYXRlQm91bmRzKCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZGV2aWNlLmJvdW5kcy5taW4sIDEwMCk7CisgICAgYXNzZXJ0LmVxdWFsKGRldmljZS5ib3VuZHMubWF4LCAyMDApOworCisgICAgLy8gQWRkIGEgbmV3IHNhbXBsZSBhbmQgdmVyaWZ5IHRoYXQgdGhlIGJvdW5kcyBjaGFuZ2UuCisgICAgZGV2aWNlLnBvd2VyU2VyaWVzLmFkZFBvd2VyU2FtcGxlKDcwMCwgNSk7CisgICAgZGV2aWNlLnVwZGF0ZUJvdW5kcygpOworCisgICAgYXNzZXJ0LmVxdWFsKGRldmljZS5ib3VuZHMubWluLCAxMDApOworICAgIGFzc2VydC5lcXVhbChkZXZpY2UuYm91bmRzLm1heCwgNzAwKTsKKyB9KTsKKworICB0ZXN0KCdzaGlmdFRpbWVzdGFtcHNGb3J3YXJkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRldmljZSA9IG5ldyBEZXZpY2UobmV3IE1vZGVsKCkpOworICAgIGRldmljZS5wb3dlclNlcmllcyA9IG5ldyBQb3dlclNlcmllcyhkZXZpY2UpOworCisgICAgZGV2aWNlLnBvd2VyU2VyaWVzLmFkZFBvd2VyU2FtcGxlKDEwMCwgMik7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzLmFkZFBvd2VyU2FtcGxlKDIwMCwgMik7CisgICAgZGV2aWNlLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoMik7CisKKyAgICBhc3NlcnQuZXF1YWwoZGV2aWNlLnBvd2VyU2VyaWVzLnNhbXBsZXNbMF0uc3RhcnQsIDEwMik7CisgICAgYXNzZXJ0LmVxdWFsKGRldmljZS5wb3dlclNlcmllcy5zYW1wbGVzWzFdLnN0YXJ0LCAyMDIpOworICB9KTsKKworICB0ZXN0KCdpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGV2aWNlID0gbmV3IERldmljZShuZXcgTW9kZWwoKSk7CisKKyAgICAvLyBQb3dlciBzZXJpZXMgc2hvdWxkbid0IGJlIGluY2x1ZGVkIGFzIGEgY2hpbGQgdW50aWwgb25lJ3Mgc2V0LgorICAgIHZhciBjaGlsZEV2ZW50Q29udGFpbmVycyA9IFtdOworICAgIGRldmljZS5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMoZnVuY3Rpb24oZXZlbnRDb250YWluZXIpIHsKKyAgICAgIGNoaWxkRXZlbnRDb250YWluZXJzLnB1c2goZXZlbnRDb250YWluZXIpOworICAgIH0pOworCisgICAgYXNzZXJ0LmRlZXBFcXVhbChjaGlsZEV2ZW50Q29udGFpbmVycywgW10pOworCisgICAgZGV2aWNlLnBvd2VyU2VyaWVzID0gbmV3IFBvd2VyU2VyaWVzKGRldmljZSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgcG93ZXIgc2VyaWVzIGlzIG5vdyBpbmNsdWRlZCBhcyBhIGNoaWxkLgorICAgIHZhciBjaGlsZEV2ZW50Q29udGFpbmVycyA9IFtdOworICAgIGRldmljZS5pdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnMoZnVuY3Rpb24oZXZlbnRDb250YWluZXIpIHsKKyAgICAgIGNoaWxkRXZlbnRDb250YWluZXJzLnB1c2goZXZlbnRDb250YWluZXIpOworICAgIH0pOworCisgICAgYXNzZXJ0LmRlZXBFcXVhbChjaGlsZEV2ZW50Q29udGFpbmVycywgW2RldmljZS5wb3dlclNlcmllc10pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2V2ZW50Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2V2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhkODUwNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZXZlbnQuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2VsZWN0YWJsZV9pdGVtLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3Rpb25fc3RhdGUuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgRXZlbnQgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICB2YXIgU2VsZWN0YWJsZUl0ZW0gPSB0ci5tb2RlbC5TZWxlY3RhYmxlSXRlbTsKKyAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7CisKKyAgLyoqCisgICAqIEFuIEV2ZW50IGlzIHRoZSBiYXNlIHR5cGUgZm9yIGFueSBub24tY29udGFpbmVyLCBzZWxlY3RhYmxlIHBpZWNlCisgICAqIG9mIGRhdGEgaW4gdGhlIHRyYWNlIG1vZGVsLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1NlbGVjdGFibGVJdGVtfQorICAgKi8KKyAgZnVuY3Rpb24gRXZlbnQoKSB7CisgICAgU2VsZWN0YWJsZUl0ZW0uY2FsbCh0aGlzLCB0aGlzIC8qIG1vZGVsSXRlbSAqLyk7CisgICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOworICAgIHRoaXMuc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5OT05FOworICAgIHRoaXMuYXNzb2NpYXRlZEFsZXJ0cyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHRoaXMuaW5mbyA9IHVuZGVmaW5lZDsKKyAgfQorCisgIEV2ZW50LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFNlbGVjdGFibGVJdGVtLnByb3RvdHlwZSwKKworICAgIGdldCBndWlkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgRXZlbnQ6IEV2ZW50CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZXZlbnRfY29udGFpbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNmNjIyZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZXZlbnRfY29udGFpbmVyLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIEV2ZW50Q29udGFpbmVyIGlzIGEgYmFzZSBjbGFzcyBmb3IgYW55IGNsYXNzIGluIHRoZSB0cmFjZSBtb2RlbCB0aGF0CisgICAqIGNvbnRhaW5zIGNoaWxkIGV2ZW50cyBvciBjaGlsZCBFdmVudENvbnRhaW5lcnMuCisgICAqCisgICAqIEZvciBhbGwgRXZlbnRDb250YWluZXJzLCB1cGRhdGVCb3VuZHMoKSBtdXN0IGJlIGNhbGxlZCBhZnRlciBtb2RpZnlpbmcgdGhlCisgICAqIGNvbnRhaW5lcidzIGV2ZW50cyBpZiBhbiB1cC10by1kYXRlIGJvdW5kcyBpcyBleHBlY3RlZC4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBFdmVudENvbnRhaW5lcigpIHsKKyAgICB0aGlzLmltcG9ydGFudCA9IHRydWU7CisgICAgdGhpcy5ib3VuZHNfID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgfQorCisgIEV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSA9IHsKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1N0cmluZ30gQSBzdGFibGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyIHRoYXQgZGVzY3JpYmVzIHRoaXMKKyAgICAgKiBjb250YWluZXIncyBwb3NpdGlvbiBpbiB0aGUgZXZlbnQgdHJlZSByZWxhdGl2ZSB0byB0aGUgcm9vdC4gSWYgYW4gZXZlbnQKKyAgICAgKiBjb250YWluZXIgJ0InIGlzIGEgY2hpbGQgdG8gYW5vdGhlciBldmVudCBjb250YWluZXIgJ0EnLCB0aGVuIGNvbnRhaW5lcgorICAgICAqIEIncyBzdGFibGUgSUQgd291bGQgYmUgJ0EuQicuCisgICAgICovCisgICAgZ2V0IHN0YWJsZUlkKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYm91bmRzIG9mIHRoZSBldmVudCBjb250YWluZXIsIHdoaWNoIGRlc2NyaWJlIHRoZSByYW5nZQorICAgICAqIG9mIHRpbWVzdGFtcHMgZm9yIGFsbCBhbmNlc3RvciBldmVudHMuCisgICAgICovCisgICAgZ2V0IGJvdW5kcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmJvdW5kc187CisgICAgfSwKKworICAgIC8vIFRPRE8oY2hhcmxpZWEpOiBBIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgY291bGQgbGlrZWx5IGJlCisgICAgLy8gcHJvdmlkZWQgdGhhdCB1c2VzICdpdGVyYXRlQWxsRXZlbnRzJy4KKyAgICAvKioKKyAgICAgKiBVcGRhdGVzIHRoZSBib3VuZHMgb2YgdGhlIGV2ZW50IGNvbnRhaW5lci4gQWZ0ZXIgdXBkYXRpbmcsIHRoaXMuYm91bmRzCisgICAgICogd2lsbCBkZXNjcmliZSB0aGUgcmFuZ2Ugb2YgdGltZXN0YW1wcyBvZiBhbGwgYW5jZXN0b3IgZXZlbnRzLgorICAgICAqLworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0sCisKKyAgICAvLyBUT0RPKGNoYXJsaWVhKTogQSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIGNvdWxkIGxpa2VseSBiZQorICAgIC8vIHByb3ZpZGVkIHRoYXQgdXNlcyAnaXRlcmF0ZUFsbEV2ZW50cycuCisgICAgLyoqCisgICAgICogU2hpZnRzIHRoZSB0aW1lc3RhbXBzIGZvciBhbmNlc3RvciBldmVudHMgYnkgJ2Ftb3VudCcgbWlsbGlzZWNvbmRzLgorICAgICAqLworICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgb3ZlciBhbGwgY2hpbGQgZXZlbnRzLgorICAgICAqLworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEl0ZXJhdGVzIG92ZXIgYWxsIGNoaWxkIGNvbnRhaW5lcnMuCisgICAgICovCisgICAgaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEl0ZXJhdGVzIG92ZXIgYWxsIGFuY2VzdG9yIGV2ZW50cy4KKyAgICAgKi8KKyAgICBpdGVyYXRlQWxsRXZlbnRzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIHRoaXMuaXRlcmF0ZUFsbEV2ZW50Q29udGFpbmVycyhmdW5jdGlvbihlYykgeworICAgICAgICBlYy5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyKAorICAgICAgICAgICAgZnVuY3Rpb24oZXZlbnRUeXBlKSB7IHJldHVybiB0cnVlOyB9LAorICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aGlzKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlcyBvdmVyIHRoaXMgY29udGFpbmVyIGFuZCBhbGwgYW5jZXN0b3IgY29udGFpbmVycy4KKyAgICAgKi8KKyAgICBpdGVyYXRlQWxsRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIGZ1bmN0aW9uIHZpc2l0KGVjKSB7CisgICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIGVjKTsKKyAgICAgICAgZWMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKHZpc2l0KTsKKyAgICAgIH0KKyAgICAgIHZpc2l0KHRoaXMpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEV2ZW50Q29udGFpbmVyOiBFdmVudENvbnRhaW5lcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZXZlbnRfaW5mby5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9ldmVudF9pbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVmNmUzNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZXZlbnRfaW5mby5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIEV2ZW50SW5mbyBpcyBhbiBhbm5vdGF0aW9uIGFkZGVkIHRvIEV2ZW50cyBpbiBvcmRlciB0byBkb2N1bWVudAorICAgKiB3aGF0IHRoZXkgcmVwcmVzZW50LCBhbmQgb3ZlcnJpZGUgdGhlaXIgdGl0bGUvY29sb3JJZCB2YWx1ZXMuCisgICAqCisgICAqIFRPRE8oY2NyYWlrKTogZXZlbnR1YWxseSBzdXBwb3J0IG1vcmUgY29tcGxleCBzdHJ1Y3R1cmUvcGFyYWdyYXBocy4KKyAgICoKKyAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIEEgdXNlci12aXNpYmxlIHRpdGxlIGZvciB0aGUgZXZlbnQuCisgICAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbiBBIHVzZXItdmlzaWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgZXZlbnQuCisgICAqIEBwYXJhbSB7QXJyYXl9IGRvY0xpbmtzIEEgbGlzdCBvZiBPYmplY3RzLCBlYWNoIG9mIHRoZSBmb3JtCisgICAqIHtsYWJlbDogc3RyLCB0ZXh0Q29udGVudDogc3RyLCBocmVmOiBzdHJ9CisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gRXZlbnRJbmZvKHRpdGxlLCBkZXNjcmlwdGlvbiwgZG9jTGlua3MpIHsKKyAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgIHRoaXMuZG9jTGlua3MgPSBkb2NMaW5rczsKKyAgICB0aGlzLmNvbG9ySWQgPSB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aXRsZSk7CisgIH0KKworICByZXR1cm4geworICAgIEV2ZW50SW5mbzogRXZlbnRJbmZvCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9ldmVudF9yZWdpc3RyeS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9ldmVudF9yZWdpc3RyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMjI4MGIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2V2ZW50X3JlZ2lzdHJ5Lmh0bWwKQEAgLTAsMCArMSw4NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgRXZlbnRSZWdpc3RyeSBjbGFzcy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIC8vIENyZWF0ZSB0aGUgdHlwZSByZWdpc3RyeS4KKyAgZnVuY3Rpb24gRXZlbnRSZWdpc3RyeSgpIHsKKyAgfQorCisgIHZhciBvcHRpb25zID0gbmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKHRyLmIuQkFTSUNfUkVHSVNUUllfTU9ERSk7CisgIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShFdmVudFJlZ2lzdHJ5LCBvcHRpb25zKTsKKworICAvLyBFbmZvcmNlIGFsbCBvcHRpb25zIG9iamVjdHMgaGF2ZSB0aGUgcmlnaHQgZmllbGRzLgorICBFdmVudFJlZ2lzdHJ5LmFkZEV2ZW50TGlzdGVuZXIoJ3dpbGwtcmVnaXN0ZXInLCBmdW5jdGlvbihlKSB7CisgICAgdmFyIG1ldGFkYXRhID0gZS50eXBlSW5mby5tZXRhZGF0YTsKKworICAgIGlmIChtZXRhZGF0YS5uYW1lID09PSB1bmRlZmluZWQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgZXZlbnRzIG11c3QgcHJvdmlkZSBuYW1lIG1ldGFkYXRhJyk7CisgICAgdmFyIGkgPSB0ci5iLmZpbmRGaXJzdEluQXJyYXkoCisgICAgICBFdmVudFJlZ2lzdHJ5LmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKSwKKyAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHgubWV0YWRhdGEubmFtZSA9PT0gbWV0YWRhdGEubmFtZTsgfSk7CisgICAgaWYgKGkgIT09IHVuZGVmaW5lZCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignRXZlbnQgdHlwZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IHJlZ2lzdGVyZWQnKTsKKworICAgIGlmIChtZXRhZGF0YS5wbHVyYWxOYW1lID09PSB1bmRlZmluZWQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgZXZlbnRzIG11c3QgcHJvdmlkZSBwbHVyYWxOYW1lIG1ldGFkYXRhJyk7CisgICAgaWYgKG1ldGFkYXRhLnNpbmdsZVZpZXdFbGVtZW50TmFtZSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgZXZlbnRzIG11c3QgcHJvdmlkZSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAnc2luZ2xlVmlld0VsZW1lbnROYW1lIG1ldGFkYXRhJyk7CisgICAgfQorICAgIGlmIChtZXRhZGF0YS5tdWx0aVZpZXdFbGVtZW50TmFtZSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdGVyZWQgZXZlbnRzIG11c3QgcHJvdmlkZSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAnbXVsdGlWaWV3RWxlbWVudE5hbWUgbWV0YWRhdGEnKTsKKyAgICB9CisgIH0pOworCisgIC8vIEhlbHBlcjogbG9va3VwIEV2ZW50cyBpbmRleGVkIGJ5IHR5cGUgbmFtZS4KKyAgdmFyIGV2ZW50c0J5VHlwZU5hbWUgPSB1bmRlZmluZWQ7CisgIEV2ZW50UmVnaXN0cnkuZ2V0RXZlbnRUeXBlSW5mb0J5VHlwZU5hbWUgPSBmdW5jdGlvbih0eXBlTmFtZSkgeworICAgIGlmIChldmVudHNCeVR5cGVOYW1lID09PSB1bmRlZmluZWQpIHsKKyAgICAgIGV2ZW50c0J5VHlwZU5hbWUgPSB7fTsKKyAgICAgIEV2ZW50UmVnaXN0cnkuZ2V0QWxsUmVnaXN0ZXJlZFR5cGVJbmZvcygpLmZvckVhY2goZnVuY3Rpb24odHlwZUluZm8pIHsKKyAgICAgICAgZXZlbnRzQnlUeXBlTmFtZVt0eXBlSW5mby5tZXRhZGF0YS5uYW1lXSA9IHR5cGVJbmZvOworICAgICAgfSk7CisgICAgfQorICAgIHJldHVybiBldmVudHNCeVR5cGVOYW1lW3R5cGVOYW1lXTsKKyAgfQorCisgIC8vIEVuc3VyZSBldmVudHNCeVR5cGVOYW1lIHN0YXlzIGN1cnJlbnQuCisgIEV2ZW50UmVnaXN0cnkuYWRkRXZlbnRMaXN0ZW5lcigncmVnaXN0cnktY2hhbmdlZCcsIGZ1bmN0aW9uKCkgeworICAgIGV2ZW50c0J5VHlwZU5hbWUgPSB1bmRlZmluZWQ7CisgIH0pOworCisgIGZ1bmN0aW9uIGNvbnZlcnRDYW1lbENhc2VUb1RpdGxlQ2FzZShuYW1lKSB7CisgICAgdmFyIHJlc3VsdCA9IG5hbWUucmVwbGFjZSgvW0EtWl0vZywgJyAkJicpOworICAgIHJlc3VsdCA9IHJlc3VsdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHJlc3VsdC5zbGljZSgxKTsKKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgRXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlTaW5ndWxhck5hbWUgPSBmdW5jdGlvbih0eXBlTmFtZSkgeworICAgIHZhciB0eXBlSW5mbyA9IEV2ZW50UmVnaXN0cnkuZ2V0RXZlbnRUeXBlSW5mb0J5VHlwZU5hbWUodHlwZU5hbWUpOworICAgIHZhciBzdHIgPSB0eXBlSW5mby5tZXRhZGF0YS5uYW1lOworICAgIHJldHVybiBjb252ZXJ0Q2FtZWxDYXNlVG9UaXRsZUNhc2Uoc3RyKTsKKyAgfTsKKworICBFdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVBsdXJhbE5hbWUgPSBmdW5jdGlvbih0eXBlTmFtZSkgeworICAgIHZhciB0eXBlSW5mbyA9IEV2ZW50UmVnaXN0cnkuZ2V0RXZlbnRUeXBlSW5mb0J5VHlwZU5hbWUodHlwZU5hbWUpOworICAgIHZhciBzdHIgPSB0eXBlSW5mby5tZXRhZGF0YS5wbHVyYWxOYW1lOworICAgIHJldHVybiBjb252ZXJ0Q2FtZWxDYXNlVG9UaXRsZUNhc2Uoc3RyKTsKKyAgfTsKKworICByZXR1cm4geworICAgIEV2ZW50UmVnaXN0cnk6IEV2ZW50UmVnaXN0cnkKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2V2ZW50X3NldC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9ldmVudF9zZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTVlNDJmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9ldmVudF9zZXQuaHRtbApAQCAtMCwwICsxLDI3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ndWlkLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9yZWdpc3RyeS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIEV2ZW50UmVnaXN0cnkgPSB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5OworCisgIHZhciBSZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQgPSB0ci5iLkV2ZW50LmJpbmQoCisgICAgICB1bmRlZmluZWQsICdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywgdHJ1ZSwgZmFsc2UpOworCisgIC8qKgorICAgKiBSZXByZXNlbnRzIGEgZXZlbnQgc2V0IHdpdGhpbiBhICBhbmQgaXRzIGFzc29jaWF0ZWQgc2V0IG9mIHRyYWNrcy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBFdmVudFNldChvcHRfZXZlbnRzKSB7CisgICAgLy8gc3VuYnVyc3Rfem9vbV9sZXZlbCBpcyB1c2VkIGJ5IHN1bmJ1cnN0IGNoYXJ0IHRvIHJlbWVtYmVyCisgICAgLy8gem9vbSBsZXZlbCBhY3Jvc3MgZXZlbnQgc2V0IGNoYW5nZXMuCisgICAgLy8gVE9ETyhnaG9sYXApOiBnZXQgcmlkIG9mIHRoaXMgZXZlbnR1YWxseSB3aGVuCisgICAgLy8gICAgICAgICAgICAgICBldmVudCBzZXRzIHN1cHBvcnQgZnJhbWVzLgorICAgIHRoaXMuc3VuYnVyc3Rfem9vbV9sZXZlbCA9IHVuZGVmaW5lZDsKKworICAgIHRoaXMuYm91bmRzX2RpcnR5XyA9IHRydWU7CisgICAgdGhpcy5ib3VuZHNfID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICB0aGlzLmxlbmd0aF8gPSAwOworICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKKyAgICB0aGlzLnB1c2hlZF9ndWlkc18gPSB7fTsKKworICAgIGlmIChvcHRfZXZlbnRzKSB7CisgICAgICBpZiAob3B0X2V2ZW50cyBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0X2V2ZW50cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICB0aGlzLnB1c2gob3B0X2V2ZW50c1tpXSk7CisgICAgICB9IGVsc2UgaWYgKG9wdF9ldmVudHMgaW5zdGFuY2VvZiBFdmVudFNldCkgeworICAgICAgICB0aGlzLmFkZEV2ZW50U2V0KG9wdF9ldmVudHMpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5wdXNoKG9wdF9ldmVudHMpOworICAgICAgfQorICAgIH0KKyAgfQorICBFdmVudFNldC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBPYmplY3QucHJvdG90eXBlLAorCisgICAgZ2V0IGJvdW5kcygpIHsKKyAgICAgIGlmICh0aGlzLmJvdW5kc19kaXJ0eV8pIHsKKyAgICAgICAgdGhpcy5ib3VuZHNfLnJlc2V0KCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGhfOyBpKyspCisgICAgICAgICAgdGhpc1tpXS5hZGRCb3VuZHNUb1JhbmdlKHRoaXMuYm91bmRzXyk7CisgICAgICAgIHRoaXMuYm91bmRzX2RpcnR5XyA9IGZhbHNlOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMuYm91bmRzXzsKKyAgICB9LAorCisgICAgZ2V0IGR1cmF0aW9uKCkgeworICAgICAgaWYgKHRoaXMuYm91bmRzXy5pc0VtcHR5KQorICAgICAgICByZXR1cm4gMDsKKyAgICAgIHJldHVybiB0aGlzLmJvdW5kc18ubWF4IC0gdGhpcy5ib3VuZHNfLm1pbjsKKyAgICB9LAorCisgICAgZ2V0IGxlbmd0aCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmxlbmd0aF87CisgICAgfSwKKworICAgIGdldCBndWlkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87CisgICAgfSwKKworICAgIGNsZWFyOiBmdW5jdGlvbigpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGhfOyArK2kpCisgICAgICAgIGRlbGV0ZSB0aGlzW2ldOworICAgICAgdGhpcy5sZW5ndGhfID0gMDsKKyAgICAgIHRoaXMuYm91bmRzX2RpcnR5XyA9IHRydWU7CisgICAgfSwKKworICAgIC8vIHB1c2ggcHVzaGVzIG9ubHkgdW5pcXVlIGV2ZW50cy4KKyAgICAvLyBJZiBhbiBldmVudCBoYXMgYmVlbiBhbHJlYWR5IHB1c2hlZCwgZG8gbm90aGluZy4KKyAgICBwdXNoOiBmdW5jdGlvbihldmVudCkgeworICAgICAgaWYgKGV2ZW50Lmd1aWQgPT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V2ZW50IG11c3QgaGF2ZSBhIEdVSUQnKTsKKworICAgICAgaWYgKHRoaXMuY29udGFpbnMoZXZlbnQpKQorICAgICAgICByZXR1cm4gZXZlbnQ7CisKKyAgICAgIHRoaXMucHVzaGVkX2d1aWRzX1tldmVudC5ndWlkXSA9IHRydWU7CisgICAgICB0aGlzW3RoaXMubGVuZ3RoXysrXSA9IGV2ZW50OworICAgICAgdGhpcy5ib3VuZHNfZGlydHlfID0gdHJ1ZTsKKyAgICAgIHJldHVybiBldmVudDsKKyAgICB9LAorCisgICAgY29udGFpbnM6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICByZXR1cm4gdGhpcy5wdXNoZWRfZ3VpZHNfW2V2ZW50Lmd1aWRdOworICAgIH0sCisKKyAgICBhZGRFdmVudFNldDogZnVuY3Rpb24oZXZlbnRTZXQpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRTZXQubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMucHVzaChldmVudFNldFtpXSk7CisgICAgfSwKKworICAgIHN1YkV2ZW50U2V0OiBmdW5jdGlvbihpbmRleCwgY291bnQpIHsKKyAgICAgIGNvdW50ID0gY291bnQgfHwgMTsKKworICAgICAgdmFyIGV2ZW50U2V0ID0gbmV3IEV2ZW50U2V0KCk7CisgICAgICBldmVudFNldC5ib3VuZHNfZGlydHlfID0gdHJ1ZTsKKyAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggKyBjb3VudCA+IHRoaXMubGVuZ3RoXykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmRleCBvdXQgb2YgYm91bmRzJyk7CisKKyAgICAgIGZvciAodmFyIGkgPSBpbmRleDsgaSA8IGluZGV4ICsgY291bnQ7IGkrKykKKyAgICAgICAgZXZlbnRTZXQucHVzaCh0aGlzW2ldKTsKKworICAgICAgcmV0dXJuIGV2ZW50U2V0OworICAgIH0sCisKKyAgICBpbnRlcnNlY3Rpb25Jc0VtcHR5OiBmdW5jdGlvbihvdGhlckV2ZW50U2V0KSB7CisgICAgICByZXR1cm4gIXRoaXMuc29tZShmdW5jdGlvbihldmVudCkgeworICAgICAgICByZXR1cm4gb3RoZXJFdmVudFNldC5jb250YWlucyhldmVudCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgZXF1YWxzOiBmdW5jdGlvbih0aGF0KSB7CisgICAgICBpZiAodGhpcy5sZW5ndGggIT09IHRoYXQubGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gdGhpc1tpXTsKKyAgICAgICAgaWYgKHRoYXQucHVzaGVkX2d1aWRzX1tldmVudC5ndWlkXSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBnZXRFdmVudHNPcmdhbml6ZWRCeUJhc2VUeXBlOiBmdW5jdGlvbihvcHRfcHJ1bmVFbXB0eSkgeworICAgICAgdmFyIGV2ZW50cyA9IHt9OworICAgICAgdmFyIGFsbFR5cGVJbmZvcyA9IEV2ZW50UmVnaXN0cnkuZ2V0QWxsUmVnaXN0ZXJlZFR5cGVJbmZvcygpOworICAgICAgYWxsVHlwZUluZm9zLmZvckVhY2goZnVuY3Rpb24oZXZlbnRUeXBlSW5mbykgeworICAgICAgICBldmVudHNbZXZlbnRUeXBlSW5mby5tZXRhZGF0YS5uYW1lXSA9IG5ldyBFdmVudFNldCgpOworICAgICAgICBpZiAodGhpcy5zdW5idXJzdF96b29tX2xldmVsICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgZXZlbnRzW2V2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV0uc3VuYnVyc3Rfem9vbV9sZXZlbCA9CisgICAgICAgICAgICAgIHRoaXMuc3VuYnVyc3Rfem9vbV9sZXZlbDsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQsIGkpIHsKKyAgICAgICAgdmFyIG1heEV2ZW50SW5kZXggPSAtMTsKKyAgICAgICAgdmFyIG1heEV2ZW50VHlwZUluZm8gPSB1bmRlZmluZWQ7CisgICAgICAgIGFsbFR5cGVJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50VHlwZUluZm8sIGV2ZW50SW5kZXgpIHsKKyAgICAgICAgICBpZiAoIShldmVudCBpbnN0YW5jZW9mIGV2ZW50VHlwZUluZm8uY29uc3RydWN0b3IpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIGlmIChldmVudEluZGV4ID4gbWF4RXZlbnRJbmRleCkgeworICAgICAgICAgICAgbWF4RXZlbnRJbmRleCA9IGV2ZW50SW5kZXg7CisgICAgICAgICAgICBtYXhFdmVudFR5cGVJbmZvID0gZXZlbnRUeXBlSW5mbzsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBpZiAobWF4RXZlbnRJbmRleCA9PSAtMSkgeworICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50KTsKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBldmVudCB0eXBlJyk7CisgICAgICAgIH0KKyAgICAgICAgZXZlbnRzW21heEV2ZW50VHlwZUluZm8ubWV0YWRhdGEubmFtZV0ucHVzaChldmVudCk7CisgICAgICB9KTsKKyAgICAgIGlmIChvcHRfcHJ1bmVFbXB0eSkgeworICAgICAgICB2YXIgcHJ1bmVkRXZlbnRzID0ge307CisgICAgICAgIGZvciAodmFyIGV2ZW50VHlwZSBpbiBldmVudHMpIHsKKyAgICAgICAgICBpZiAoZXZlbnRzW2V2ZW50VHlwZV0ubGVuZ3RoID4gMCkKKyAgICAgICAgICAgIHBydW5lZEV2ZW50c1tldmVudFR5cGVdID0gZXZlbnRzW2V2ZW50VHlwZV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBydW5lZEV2ZW50czsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBldmVudHM7CisgICAgICB9CisgICAgfSwKKworICAgIGdldEV2ZW50c09yZ2FuaXplZEJ5VGl0bGU6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGV2ZW50c0J5VGl0bGUgPSB7fTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgZXZlbnQgPSB0aGlzW2ldOworICAgICAgICBpZiAoZXZlbnQudGl0bGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGV2ZW50IGRpZG5cJ3QgaGF2ZSBhIHRpdGxlIScpOworICAgICAgICBpZiAoZXZlbnRzQnlUaXRsZVtldmVudC50aXRsZV0gPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgZXZlbnRzQnlUaXRsZVtldmVudC50aXRsZV0gPSBbXTsKKyAgICAgICAgfQorICAgICAgICBldmVudHNCeVRpdGxlW2V2ZW50LnRpdGxlXS5wdXNoKGV2ZW50KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBldmVudHNCeVRpdGxlOworICAgIH0sCisKKyAgICBlbnVtRXZlbnRzT2ZUeXBlOiBmdW5jdGlvbih0eXBlLCBmdW5jKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoXzsgaSsrKQorICAgICAgICBpZiAodGhpc1tpXSBpbnN0YW5jZW9mIHR5cGUpCisgICAgICAgICAgZnVuYyh0aGlzW2ldKTsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBldmVudCBzZXQnKTsKKyAgICAgIH0KKworICAgICAgdmFyIGV2ZW50c0J5QmFzZVR5cGUgPSB0aGlzLmdldEV2ZW50c09yZ2FuaXplZEJ5QmFzZVR5cGUodHJ1ZSk7CisgICAgICB2YXIgZXZlbnRUeXBlTmFtZSA9IHRyLmIuZGljdGlvbmFyeUtleXMoZXZlbnRzQnlCYXNlVHlwZSlbMF07CisKKyAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSkgeworICAgICAgICB2YXIgdG1wID0gRXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlTaW5ndWxhck5hbWUoZXZlbnRUeXBlTmFtZSk7CisgICAgICAgIHJldHVybiB0aGlzWzBdLnVzZXJGcmllbmRseU5hbWU7CisgICAgICB9CisKKyAgICAgIHZhciBudW1FdmVudFR5cGVzID0gdHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKGV2ZW50c0J5QmFzZVR5cGUpOworICAgICAgaWYgKG51bUV2ZW50VHlwZXMgIT09IDEpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubGVuZ3RoICsgJyBldmVudHMgb2YgdmFyaW91cyB0eXBlcyc7CisgICAgICB9CisKKyAgICAgIHZhciB0bXAgPSBFdmVudFJlZ2lzdHJ5LmdldFVzZXJGcmllbmRseVBsdXJhbE5hbWUoZXZlbnRUeXBlTmFtZSk7CisgICAgICByZXR1cm4gdGhpcy5sZW5ndGggKyAnICcgKyB0bXA7CisgICAgfSwKKworICAgIGZpbHRlcjogZnVuY3Rpb24oZm4sIG9wdF90aGlzKSB7CisgICAgICB2YXIgcmVzID0gbmV3IEV2ZW50U2V0KCk7CisKKyAgICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgeworICAgICAgICBpZiAoZm4uY2FsbCh0aGlzLCBzbGljZSkpCisgICAgICAgICAgcmVzLnB1c2goc2xpY2UpOworICAgICAgfSwgb3B0X3RoaXMpOworCisgICAgICByZXR1cm4gcmVzOworICAgIH0sCisKKyAgICB0b0FycmF5OiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhcnkgPSBbXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykKKyAgICAgICAgYXJ5LnB1c2godGhpc1tpXSk7CisgICAgICByZXR1cm4gYXJ5OworICAgIH0sCisKKyAgICBmb3JFYWNoOiBmdW5jdGlvbihmbiwgb3B0X3RoaXMpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykKKyAgICAgICAgZm4uY2FsbChvcHRfdGhpcywgdGhpc1tpXSwgaSk7CisgICAgfSwKKworICAgIG1hcDogZnVuY3Rpb24oZm4sIG9wdF90aGlzKSB7CisgICAgICB2YXIgcmVzID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspCisgICAgICAgIHJlcy5wdXNoKGZuLmNhbGwob3B0X3RoaXMsIHRoaXNbaV0sIGkpKTsKKyAgICAgIHJldHVybiByZXM7CisgICAgfSwKKworICAgIGV2ZXJ5OiBmdW5jdGlvbihmbiwgb3B0X3RoaXMpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykKKyAgICAgICAgaWYgKCFmbi5jYWxsKG9wdF90aGlzLCB0aGlzW2ldLCBpKSkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgc29tZTogZnVuY3Rpb24oZm4sIG9wdF90aGlzKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspCisgICAgICAgIGlmIChmbi5jYWxsKG9wdF90aGlzLCB0aGlzW2ldLCBpKSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBFdmVudFNldDogRXZlbnRTZXQsCisgICAgUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50OiBSZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2V2ZW50X3NldF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2V2ZW50X3NldF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRhZjZiMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZXZlbnRfc2V0X3Rlc3QuaHRtbApAQCAtMCwwICsxLDI0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIG5ld01vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsOworICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OworCisgIHRlc3QoJ2V2ZW50U2V0T2JqZWN0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOworICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDUsIHt9LCAxKSk7CisKKyAgICB2YXIgZXZlbnRTZXQgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBldmVudFNldC5wdXNoKHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKKworICAgIGFzc2VydC5lcXVhbChldmVudFNldC5ib3VuZHMubWluLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoZXZlbnRTZXQuYm91bmRzLm1heCwgNCk7CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50U2V0WzBdLCB0MS5zbGljZUdyb3VwLnNsaWNlc1swXSk7CisKKyAgICBldmVudFNldC5wdXNoKHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdKTsKKyAgICBhc3NlcnQuZXF1YWwoZXZlbnRTZXQuYm91bmRzLm1pbiwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50U2V0LmJvdW5kcy5tYXgsIDYpOworICAgIGFzc2VydC5lcXVhbChldmVudFNldFsxXSwgdDEuc2xpY2VHcm91cC5zbGljZXNbMV0pOworCisgICAgZXZlbnRTZXQuY2xlYXIoKTsKKyAgICBhc3NlcnQuZXF1YWwoZXZlbnRTZXQubGVuZ3RoLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgndW5pcXVlQ29udGVudHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2FtcGxlMSA9IHtndWlkOiAxfTsKKyAgICB2YXIgc2FtcGxlMiA9IHtndWlkOiAyfTsKKworICAgIHZhciBldmVudFNldCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworCisgICAgZXZlbnRTZXQucHVzaChzYW1wbGUxKTsKKyAgICBldmVudFNldC5wdXNoKHNhbXBsZTIpOworICAgIGFzc2VydC5lcXVhbChldmVudFNldC5sZW5ndGgsIDIpOworCisgICAgZXZlbnRTZXQucHVzaChzYW1wbGUxKTsKKyAgICBhc3NlcnQuZXF1YWwoZXZlbnRTZXQubGVuZ3RoLCAyKTsKKyAgfSk7CisKKyAgdGVzdCgndXNlckZyaWVuZGx5TmFtZVNpbmd1bGFyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOworICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHNlbGVjdGlvbi51c2VyRnJpZW5kbHlOYW1lKTsKKyAgfSk7CisKKyAgdGVzdCgndXNlckZyaWVuZGx5TmFtZVBsdXJhbCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAyLCB7fSwgMykpOworICAgIHZhciBldmVudFNldCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChbCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdLAorICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1sxXQorICAgIF0pOworICAgIGFzc2VydC5pc0RlZmluZWQoZXZlbnRTZXQudXNlckZyaWVuZGx5TmFtZSk7CisgIH0pOworCisgIHRlc3QoJ3VzZXJGcmllbmRseU5hbWVNaXhlZFBsdXJhbCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAyLCB7fSwgMykpOworCisgICAgdmFyIGkxMCA9IG5ldyB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSgKKyAgICB7fSwgJzB4MTAwMCcsICdjYXQnLCAnbmFtZScsIDEwKTsKKyAgICB2YXIgczEwID0gaTEwLmFkZFNuYXBzaG90KDEwLCB7Zm9vOiAxfSk7CisKKyAgICB2YXIgZXZlbnRTZXQgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoWworICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwKKyAgICAgICAgczEwCisgICAgXSk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChldmVudFNldC51c2VyRnJpZW5kbHlOYW1lKTsKKyAgfSk7CisKKyAgdGVzdCgnZ3JvdXBFdmVudHNCeVRpdGxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgIHZhciB0MSA9IHAxLmdldE9yQ3JlYXRlVGhyZWFkKDEpOworICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDIsIHt9LCAzKSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2InLCAwLCAzLCB7fSwgMykpOworICAgIHZhciBldmVudFNldCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChbCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdLAorICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1sxXSwKKyAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMl0KKyAgICBdKTsKKworICAgIHZhciBldmVudHNCeVRpdGxlID0gZXZlbnRTZXQuZ2V0RXZlbnRzT3JnYW5pemVkQnlUaXRsZSgpOworICAgIGFzc2VydC5lcXVhbCgyLCB0ci5iLmRpY3Rpb25hcnlMZW5ndGgoZXZlbnRzQnlUaXRsZSkpOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhldmVudHNCeVRpdGxlWydhJ10sCisgICAgICAgICAgICAgICAgIFt0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwgdDEuc2xpY2VHcm91cC5zbGljZXNbMV1dKTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoZXZlbnRzQnlUaXRsZVsnYiddLAorICAgICAgICAgICAgICAgICBbdDEuc2xpY2VHcm91cC5zbGljZXNbMl1dKTsKKyAgfSk7CisKKyAgdGVzdCgnaW50ZXJzZWN0aW9uSXNFbXB0eTEnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMykpOworICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMiwge30sIDMpKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYicsIDAsIDMsIHt9LCAzKSk7CisKKyAgICB2YXIgc2V0MSA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChbCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdLAorICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1sxXSwKKyAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMl0KKyAgICBdKTsKKyAgICB2YXIgc2V0MiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChbCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzJdCisgICAgXSk7CisgICAgYXNzZXJ0LmlzRmFsc2Uoc2V0MS5pbnRlcnNlY3Rpb25Jc0VtcHR5KHNldDIpKTsKKyAgfSk7CisKKyAgdGVzdCgnaW50ZXJzZWN0aW9uSXNOb25FbXB0eTInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMykpOworICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMiwge30sIDMpKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYicsIDAsIDMsIHt9LCAzKSk7CisKKyAgICB2YXIgc2V0MSA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChbCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdLAorICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1sxXQorICAgIF0pOworICAgIHZhciBzZXQyID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KFsKKyAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMl0KKyAgICBdKTsKKyAgICBhc3NlcnQuaXNUcnVlKHNldDEuaW50ZXJzZWN0aW9uSXNFbXB0eShzZXQyKSk7CisgIH0pOworCisgIHRlc3QoJ2VxdWFscycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2InLCAwLCAyLCB7fSwgMykpOworICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXcgdHIubW9kZWwuVGhyZWFkU2xpY2UoJycsICdjJywgMCwgMywge30sIDMpKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnZCcsIDAsIDQsIHt9LCA1KSk7CisKKyAgICB2YXIgZXZlbnRTZXQxID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KFsKKyAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMF0sCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdLAorICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1syXQorICAgIF0pOworICAgIHZhciBldmVudFNldDIgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoWworICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1sxXSwKKyAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMF0sCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzJdCisgICAgXSk7CisgICAgdmFyIGV2ZW50U2V0MyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChbCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdLAorICAgICAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwKKyAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbM10KKyAgICBdKTsKKyAgICB2YXIgZXZlbnRTZXQ0ID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KFsKKyAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMV0sCisgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdCisgICAgXSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShldmVudFNldDEuZXF1YWxzKGV2ZW50U2V0MikpOworICAgIGFzc2VydC5pc0ZhbHNlKGV2ZW50U2V0MS5lcXVhbHMoZXZlbnRTZXQzKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoZXZlbnRTZXQxLmVxdWFscyhldmVudFNldDQpKTsKKyAgfSk7CisKKyAgdGVzdCgnZmlsdGVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXdNb2RlbChmdW5jdGlvbihtKSB7CisKKyAgICAgIHZhciBwID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgdCA9IHAuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisKKyAgICAgIG0uczAgPSB0LnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3MwJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgICBtLnMxID0gdC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICAgIHsgdGl0bGU6ICdzMScsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiAxLjAgfSkpOworICAgICAgbS5zMiA9IHQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7IHRpdGxlOiAnczInLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKworICAgICAgbS5ldmVudFNldCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChbbS5zMCwgbS5zMSwgbS5zMl0pOworICAgIH0pOworCisgICAgdmFyIHJlcyA9IG0uZXZlbnRTZXQuZmlsdGVyKGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICByZXR1cm4gc2xpY2UudGl0bGUgPT09ICdzMCc7CisgICAgfSk7CisKKyAgICBhc3NlcnQuaXNUcnVlKHJlcy5lcXVhbHMobmV3IHRyLm1vZGVsLkV2ZW50U2V0KFttLnMwXSkpKTsKKyAgfSk7CisKKyAgdGVzdCgndG9BcnJheScsIGZ1bmN0aW9uKCkgeworICAgICB2YXIgc2FtcGxlcyA9IFsKKyAgICAgICB7Z3VpZDogMX0sCisgICAgICAge2d1aWQ6IDJ9CisgICAgIF07CisgICAgIHZhciBldmVudFNldCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChzYW1wbGVzKTsKKworICAgICBhc3NlcnQuZGVlcEVxdWFsKGV2ZW50U2V0LnRvQXJyYXkoKSwgc2FtcGxlcyk7CisgICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2V2ZW50X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZXZlbnRfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL2V2ZW50X3Rlc3QuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9ldmVudF90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZmxvd19ldmVudC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9mbG93X2V2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQxNzc2NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZmxvd19ldmVudC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgRmxvdyBjbGFzcy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIEZsb3cgcmVwcmVzZW50cyBhbiBpbnRlcnZhbCBvZiB0aW1lIHBsdXMgcGFyYW1ldGVycyBhc3NvY2lhdGVkCisgICAqIHdpdGggdGhhdCBpbnRlcnZhbC4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBGbG93RXZlbnQoY2F0ZWdvcnksIGlkLCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MsIG9wdF9kdXJhdGlvbikgeworICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7CisKKyAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnkgfHwgJyc7CisgICAgdGhpcy50aXRsZSA9IHRpdGxlOworICAgIHRoaXMuY29sb3JJZCA9IGNvbG9ySWQ7CisgICAgdGhpcy5zdGFydCA9IHN0YXJ0OworICAgIHRoaXMuYXJncyA9IGFyZ3M7CisKKyAgICB0aGlzLmlkID0gaWQ7CisKKyAgICB0aGlzLnN0YXJ0U2xpY2UgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5lbmRTbGljZSA9IHVuZGVmaW5lZDsKKworICAgIGlmIChvcHRfZHVyYXRpb24gIT09IHVuZGVmaW5lZCkKKyAgICAgIHRoaXMuZHVyYXRpb24gPSBvcHRfZHVyYXRpb247CisgIH0KKworICBGbG93RXZlbnQucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsCisKKyAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKKyAgICAgIHJldHVybiAnRmxvdyBldmVudCBuYW1lZCAnICsgdGhpcy50aXRsZSArICcgYXQgJyArCisgICAgICAgICAgdHIuYi51bml0cy5UaW1lU3RhbXAuZm9ybWF0KHRoaXMudGltZXN0YW1wKTsKKyAgICB9CisgIH07CisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIEZsb3dFdmVudCwKKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ2Zsb3dFdmVudCcsCisgICAgICAgIHBsdXJhbE5hbWU6ICdmbG93RXZlbnRzJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1tdWx0aS1mbG93LWV2ZW50LXN1Yi12aWV3JworICAgICAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBGbG93RXZlbnQ6IEZsb3dFdmVudAorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9mcmFtZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4ZjFkZDEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2ZyYW1lLmh0bWwKQEAgLTAsMCArMSw5NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBDbGFzcyBkZXNjcmliaW5nIHJlbmRlcmVkIGZyYW1lcy4KKyAqCisgKiBCZWNhdXNlIGEgZnJhbWUgaXMgcHJvZHVjZWQgYnkgbXVsdGlwbGUgdGhyZWFkcywgaXQgZG9lcyBub3QgaW5oZXJpdCBmcm9tCisgKiBUaW1lZEV2ZW50LCBhbmQgaGFzIG5vIGR1cmF0aW9uLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFN0YXRpc3RpY3MgPSB0ci5iLlN0YXRpc3RpY3M7CisKKyAgdmFyIEZSQU1FX1BFUkZfQ0xBU1MgPSB7CisgICAgR09PRDogJ2dvb2QnLAorICAgIEJBRDogJ2JhZCcsCisgICAgVEVSUklCTEU6ICd0ZXJyaWJsZScsCisgICAgTkVVVFJBTDogJ2dlbmVyaWNfd29yaycKKyAgfTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBwYXJhbSB7QXJyYXl9IGFzc29jaWF0ZWRFdmVudHMgU2VsZWN0aW9uIG9mIGV2ZW50cyBjb21wb3NpbmcgdGhlIGZyYW1lLgorICAgKiBAcGFyYW0ge0FycmF5fSB0aHJlYWRUaW1lUmFuZ2VzIEFycmF5IG9mIHt0aHJlYWQsIHN0YXJ0LCBlbmR9CisgICAqIGZvciBlYWNoIHRocmVhZCwgZGVzY3JpYmluZyB0aGUgY3JpdGljYWwgcGF0aCBvZiB0aGUgZnJhbWUuCisgICAqLworICBmdW5jdGlvbiBGcmFtZShhc3NvY2lhdGVkRXZlbnRzLCB0aHJlYWRUaW1lUmFuZ2VzLCBvcHRfYXJncykgeworICAgIHRyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLnRocmVhZFRpbWVSYW5nZXMgPSB0aHJlYWRUaW1lUmFuZ2VzOworICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50cyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChhc3NvY2lhdGVkRXZlbnRzKTsKKyAgICB0aGlzLmFyZ3MgPSBvcHRfYXJncyB8fCB7fTsKKworICAgIHRoaXMudGl0bGUgPSAnRnJhbWUnOworICAgIHRoaXMuc3RhcnQgPSBTdGF0aXN0aWNzLm1pbigKKyAgICAgICAgdGhyZWFkVGltZVJhbmdlcywgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5zdGFydDsgfSk7CisgICAgdGhpcy5lbmQgPSBTdGF0aXN0aWNzLm1heCgKKyAgICAgICAgdGhyZWFkVGltZVJhbmdlcywgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5lbmQ7IH0pOworICAgIHRoaXMudG90YWxEdXJhdGlvbiA9IFN0YXRpc3RpY3Muc3VtKAorICAgICAgICB0aHJlYWRUaW1lUmFuZ2VzLCBmdW5jdGlvbih4KSB7IHJldHVybiB4LmVuZCAtIHguc3RhcnQ7IH0pOworCisgICAgdGhpcy5wZXJmQ2xhc3MgPSBGUkFNRV9QRVJGX0NMQVNTLk5FVVRSQUw7CisgIH07CisKKyAgRnJhbWUucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnQucHJvdG90eXBlLAorCisgICAgc2V0IHBlcmZDbGFzcyhwZXJmQ2xhc3MpIHsKKyAgICAgIHRoaXMuY29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZShwZXJmQ2xhc3MpOworICAgICAgdGhpcy5wZXJmQ2xhc3NfID0gcGVyZkNsYXNzOworICAgIH0sCisKKyAgICBnZXQgcGVyZkNsYXNzKCkgeworICAgICAgcmV0dXJuIHRoaXMucGVyZkNsYXNzXzsKKyAgICB9LAorCisgICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7CisgICAgICB0aGlzLnN0YXJ0ICs9IGFtb3VudDsKKyAgICAgIHRoaXMuZW5kICs9IGFtb3VudDsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRocmVhZFRpbWVSYW5nZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdGhpcy50aHJlYWRUaW1lUmFuZ2VzW2ldLnN0YXJ0ICs9IGFtb3VudDsKKyAgICAgICAgdGhpcy50aHJlYWRUaW1lUmFuZ2VzW2ldLmVuZCArPSBhbW91bnQ7CisgICAgICB9CisgICAgfSwKKworICAgIGFkZEJvdW5kc1RvUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlKSB7CisgICAgICByYW5nZS5hZGRWYWx1ZSh0aGlzLnN0YXJ0KTsKKyAgICAgIHJhbmdlLmFkZFZhbHVlKHRoaXMuZW5kKTsKKyAgICB9CisgIH07CisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIEZyYW1lLAorICAgICAgeworICAgICAgICBuYW1lOiAnZnJhbWUnLAorICAgICAgICBwbHVyYWxOYW1lOiAnZnJhbWVzJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1zaW5nbGUtZnJhbWUtc3ViLXZpZXcnLAorICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtbXVsdGktZnJhbWUtc3ViLXZpZXcnCisgICAgICB9KTsKKworICByZXR1cm4geworICAgIEZyYW1lOiBGcmFtZSwKKyAgICBGUkFNRV9QRVJGX0NMQVNTOiBGUkFNRV9QRVJGX0NMQVNTCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJhMTMyMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wLmh0bWwKQEAgLTAsMCArMSw3NjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvc2l6ZV9pbl9ieXRlcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbnRhaW5lcl9tZW1vcnlfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbWVtb3J5X2FsbG9jYXRvcl9kdW1wLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIEdsb2JhbE1lbW9yeUR1bXAgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogVGhlIEdsb2JhbE1lbW9yeUR1bXAgcmVwcmVzZW50cyBhIHNpbXVsdGFuZW91cyBtZW1vcnkgZHVtcCBvZiBhbGwKKyAgICogcHJvY2Vzc2VzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsIHN0YXJ0KSB7CisgICAgdHIubW9kZWwuQ29udGFpbmVyTWVtb3J5RHVtcC5jYWxsKHRoaXMsIHN0YXJ0KTsKKyAgICB0aGlzLm1vZGVsID0gbW9kZWw7CisgICAgdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHMgPSB7fTsKKyAgfQorCisgIHZhciBTSVpFX0FUVFJJQlVURV9OQU1FID0gJ3NpemUnOworICB2YXIgRUZGRUNUSVZFX1NJWkVfQVRUUklCVVRFX05BTUUgPSAnZWZmZWN0aXZlX3NpemUnOworCisgIGZ1bmN0aW9uIGdldFNpemUoZHVtcCkgeworICAgIHZhciBhdHRyID0gZHVtcC5hdHRyaWJ1dGVzW1NJWkVfQVRUUklCVVRFX05BTUVdOworICAgIGlmIChhdHRyID09PSB1bmRlZmluZWQpCisgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYXR0ci52YWx1ZTsKKyAgfQorCisgIGZ1bmN0aW9uIGhhc1NpemUoZHVtcCkgeworICAgIHJldHVybiBkdW1wLmF0dHJpYnV0ZXNbU0laRV9BVFRSSUJVVEVfTkFNRV0gIT09IHVuZGVmaW5lZDsKKyAgfQorCisgIGZ1bmN0aW9uIG9wdGlvbmFsKHZhbHVlLCBkZWZhdWx0VmFsdWUpIHsKKyAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgcmV0dXJuIHZhbHVlOworICB9CisKKyAgZnVuY3Rpb24gb3duZXJzaGlwVG9Vc2VyRnJpZW5kbHlTdHJpbmcoZHVtcCwgaW1wb3J0YW5jZSkgeworICAgIHJldHVybiBkdW1wLnF1YW50aWZpZWROYW1lICsgJyAoc2hhcmluZyBpbXBvcnRhbmNlICcgKworICAgICAgICBvcHRpb25hbChpbXBvcnRhbmNlLCAwKSArICcpJzsKKyAgfQorCisgIEdsb2JhbE1lbW9yeUR1bXAucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuQ29udGFpbmVyTWVtb3J5RHVtcC5wcm90b3R5cGUsCisKKyAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKKyAgICAgIHJldHVybiAnR2xvYmFsIG1lbW9yeSBkdW1wIGF0ICcgKyB0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQodGhpcy5zdGFydCk7CisgICAgfSwKKworICAgIGdldCBjb250YWluZXJOYW1lKCkgeworICAgICAgcmV0dXJuICdnbG9iYWwgc3BhY2UnOworICAgIH0sCisKKyAgICBjYWxjdWxhdGVHcmFwaEF0dHJpYnV0ZXM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jYWxjdWxhdGVTaXplcygpOworICAgICAgdGhpcy5jYWxjdWxhdGVFZmZlY3RpdmVTaXplcygpOworICAgICAgdGhpcy5hZ2dyZWdhdGVBdHRyaWJ1dGVzKCk7CisgICAgICB0aGlzLmRpc2NvdW50VHJhY2luZ092ZXJoZWFkKCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBhbGwgbWVtb3J5IGFsbG9jYXRvciBkdW1wcyBpbiB0aGUgZHVtcCBncmFwaC4KKyAgICAgKgorICAgICAqIFRoZSBzaXplIHJlZmVycyB0byB0aGUgYWxsb2NhdGVkIHNpemUgb2YgYSAoc3ViKWNvbXBvbmVudC4gSXQgaXMgYQorICAgICAqIG5hdHVyYWwgZXh0ZW5zaW9uIG9mIHRoZSBvcHRpb25hbCBzaXplIGF0dHJpYnV0ZSBwcm92aWRlZCBieQorICAgICAqIE1lbW9yeUFsbG9jYXRvckR1bXAocyk6CisgICAgICoKKyAgICAgKiAgIC0gSWYgYSBNQUQgcHJvdmlkZXMgYSBzaXplIGF0dHJpYnV0ZSwgdGhlbiBpdHMgc2l6ZSBpcyBhc3N1bWVkIHRvIGJlCisgICAgICogICAgIGVxdWFsIHRvIGl0LgorICAgICAqICAgLSBJZiBhIE1BRCBkb2VzIG5vdCBwcm92aWRlIGEgc2l6ZSBhdHRyaWJ1dGUsIHRoZW4gaXRzIHNpemUgaXMgYXNzdW1lZAorICAgICAqICAgICB0byBiZSB0aGUgbWF4aW11bSBvZiAoMSkgdGhlIHNpemUgb2YgdGhlIGxhcmdlc3Qgb3duZXIgb2YgdGhlIE1BRAorICAgICAqICAgICBhbmQgKDIpIHRoZSBhZ2dyZWdhdGVkIHNpemUgb2YgdGhlIE1BRCdzIGNoaWxkcmVuLgorICAgICAqCisgICAgICogTWV0cmljIG1vdGl2YXRpb246ICJIb3cgYmlnIGlzIGEgKHN1YilzeXN0ZW0/IgorICAgICAqCisgICAgICogUGxlYXNlIHJlZmVyIHRvIHRoZSBNZW1vcnkgRHVtcCBHcmFwaCBNZXRyaWMgQ2FsY3VsYXRpb24gZGVzaWduIGRvY3VtZW50CisgICAgICogZm9yIG1vcmUgZGV0YWlscyAoaHR0cHM6Ly9nb28uZ2wvZktnMGR0KS4KKyAgICAgKi8KKyAgICBjYWxjdWxhdGVTaXplczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQb3N0T3JkZXIoCisgICAgICAgICAgdGhpcy5jYWxjdWxhdGVNZW1vcnlBbGxvY2F0b3JEdW1wU2l6ZV8uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgZ2l2ZW4gTWVtb3J5QWxsb2NhdG9yRHVtcC4gVGhpcyBtZXRob2QgYXNzdW1lcworICAgICAqIHRoYXQgdGhlIHNpemUgb2YgYm90aCB0aGUgY2hpbGRyZW4gYW5kIG93bmVycyBvZiB0aGUgZHVtcCBoYXMgYWxyZWFkeQorICAgICAqIGJlZW4gY2FsY3VsYXRlZC4KKyAgICAgKi8KKyAgICBjYWxjdWxhdGVNZW1vcnlBbGxvY2F0b3JEdW1wU2l6ZV86IGZ1bmN0aW9uKGR1bXApIHsKKyAgICAgIC8vIFRoaXMgZmxhZyBiZWNvbWVzIHRydWUgaWYgdGhlIHNpemUgYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGR1bXAKKyAgICAgIC8vIHNob3VsZCBiZSBkZWZpbmVkLCBpLmUuIGlmICgxKSB0aGUgY3VycmVudCBkdW1wJ3Mgc2l6ZSBhdHRyaWJ1dGUgaXMKKyAgICAgIC8vIGRlZmluZWQsICgyKSB0aGUgc2l6ZSBvZiBhdCBsZWFzdCBvbmUgb2YgaXRzIGNoaWxkcmVuIGlzIGRlZmluZWQgb3IKKyAgICAgIC8vICgzKSB0aGUgc2l6ZSBvZiBhdCBsZWFzdCBvbmUgb2YgaXRzIG93bmVycyBpcyBkZWZpbmVkLgorICAgICAgdmFyIHNob3VsZERlZmluZVNpemUgPSBmYWxzZTsKKworICAgICAgLy8gVGhpcyBoZWxwZXIgZnVuY3Rpb24gcmV0dXJucyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgc2l6ZSBhdHRyaWJ1dGUKKyAgICAgIC8vIG9mIHRoZSBnaXZlbiBkZXBlbmRlbnQgbWVtb3J5IGFsbG9jYXRvciBkdW1wLiBJZiB0aGUgYXR0cmlidXRlIGlzCisgICAgICAvLyBkZWZpbmVkLCB0aGUgc2hvdWxkRGVmaW5lU2l6ZSBmbGFnIGFib3ZlIGlzIGFsc28gc2V0IHRvIHRydWUgKGJlY2F1c2UKKyAgICAgIC8vIGNvbmRpdGlvbiAoMikgb3IgKDMpIGlzIHNhdGlzZmllZCkuIE90aGVyd2lzZSwgemVybyBpcyByZXR1cm5lZCAoYW5kCisgICAgICAvLyB0aGUgZmxhZyBpcyBsZWZ0IHVuY2hhbmdlZCkuCisgICAgICBmdW5jdGlvbiBnZXREZXBlbmRlbmN5U2l6ZShkZXBlbmRlbmN5RHVtcCkgeworICAgICAgICB2YXIgYXR0ciA9IGRlcGVuZGVuY3lEdW1wLmF0dHJpYnV0ZXNbU0laRV9BVFRSSUJVVEVfTkFNRV07CisgICAgICAgIGlmIChhdHRyID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHNob3VsZERlZmluZVNpemUgPSB0cnVlOworICAgICAgICByZXR1cm4gYXR0ci52YWx1ZTsKKyAgICAgIH0KKworICAgICAgLy8gMS4gR2V0IHRoZSBzaXplIHByb3ZpZGVkIGJ5IHRoZSBkdW1wLiBJZiBwcmVzZW50LCBkZWZpbmUgYSBmdW5jdGlvbgorICAgICAgLy8gZm9yIGNoZWNraW5nIGRlcGVuZGVudCBzaXplIGNvbnNpc3RlbmN5IChhIGR1bXAgbXVzdCBhbHdheXMgYmUgYmlnZ2VyCisgICAgICAvLyB0aGFuIGFsbCBpdHMgY2hpbGRyZW4gYWdncmVnYXRlZCB0b2dldGhlciBhbmQvb3IgaXRzIGxhcmdlc3Qgb3duZXIpLgorICAgICAgdmFyIHNpemVBdHRyaWJ1dGUgPSBkdW1wLmdldFZhbGlkU2l6ZUF0dHJpYnV0ZU9yVW5kZWZpbmVkKAorICAgICAgICAgIFNJWkVfQVRUUklCVVRFX05BTUUsIHRoaXMubW9kZWwpOworICAgICAgdmFyIHNpemUgPSAwOworICAgICAgdmFyIGluZm9zID0gW107CisgICAgICB2YXIgY2hlY2tEZXBlbmRlbnRTaXplSXNDb25zaXN0ZW50ID0gZnVuY3Rpb24oKSB7IC8qIG5vLW9wICovIH07CisgICAgICBpZiAoc2l6ZUF0dHJpYnV0ZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHNpemUgPSBzaXplQXR0cmlidXRlLnZhbHVlOworICAgICAgICBzaG91bGREZWZpbmVTaXplID0gdHJ1ZTsKKyAgICAgICAgY2hlY2tEZXBlbmRlbnRTaXplSXNDb25zaXN0ZW50ID0gZnVuY3Rpb24oZGVwZW5kZW50U2l6ZSwKKyAgICAgICAgICAgIGRlcGVuZGVudE5hbWUpIHsKKyAgICAgICAgICBpZiAoc2l6ZSA+PSBkZXBlbmRlbnRTaXplKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIHZhciBtZXNzYWdlU3VmZml4ID0gJyAoJyArIHRyLmIudW5pdHMuU2l6ZUluQnl0ZXMuZm9ybWF0KHNpemUpICsKKyAgICAgICAgICAgICAgJykgaXMgbGVzcyB0aGFuICcgKyBkZXBlbmRlbnROYW1lICsgJyAoJyArCisgICAgICAgICAgICAgICAgdHIuYi51bml0cy5TaXplSW5CeXRlcy5mb3JtYXQoZGVwZW5kZW50U2l6ZSkgKyAnKS4nOworICAgICAgICAgIHRoaXMubW9kZWwuaW1wb3J0V2FybmluZyh7CisgICAgICAgICAgICB0eXBlOiAnbWVtb3J5X2R1bXBfcGFyc2VfZXJyb3InLAorICAgICAgICAgICAgbWVzc2FnZTogJ1NpemUgcHJvdmlkZWQgYnkgbWVtb3J5IGFsbG9jYXRvciBkdW1wIFwnJyArCisgICAgICAgICAgICAgICAgZHVtcC5mdWxsTmFtZSArICdcJycgKyBtZXNzYWdlU3VmZml4CisgICAgICAgICAgfSk7CisgICAgICAgICAgaW5mb3MucHVzaChuZXcgdHIubW9kZWwuQXR0cmlidXRlSW5mbygKKyAgICAgICAgICAgICAgdHIubW9kZWwuQXR0cmlidXRlSW5mb1R5cGUuV0FSTklORywKKyAgICAgICAgICAgICAgJ1NpemUgcHJvdmlkZWQgYnkgdGhpcyBtZW1vcnkgYWxsb2NhdG9yIGR1bXAnICsgbWVzc2FnZVN1ZmZpeCkpOworICAgICAgICB9LmJpbmQodGhpcyk7CisgICAgICB9CisKKyAgICAgIC8vIDIuIEFnZ3JlZ2F0ZSBzaXplIG9mIGNoaWxkcmVuLiBUaGUgcmVjdXJzaXZlIGZ1bmN0aW9uIHRyYXZlcnNlcyBhbGwKKyAgICAgIC8vIGRlc2NlbmRhbnRzIGFuZCBlbnN1cmVzIHRoYXQgZG91YmxlLWNvdW50aW5nIGR1ZSB0byBvd25lcnNoaXAgd2l0aGluIGEKKyAgICAgIC8vIHN1YnN5c3RlbSBpcyBhdm9pZGVkLgorICAgICAgdmFyIGFnZ3JlZ2F0ZWRDaGlsZHJlblNpemUgPSAwOworICAgICAgLy8gT3duZWQgY2hpbGQgZHVtcCBuYW1lIC0+IChPd25lciBjaGlsZCBkdW1wIG5hbWUgLT4gb3ZlcmxhcHBpbmcgc2l6ZSkuCisgICAgICB2YXIgYWxsT3ZlcmxhcHMgPSB7fTsKKyAgICAgIGR1bXAuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihjaGlsZER1bXApIHsKKyAgICAgICAgZnVuY3Rpb24gYWdncmVnYXRlRGVzY2VuZGFudER1bXAoZGVzY2VuZGFudER1bXApIHsKKyAgICAgICAgICAvLyBEb24ndCBjb3VudCB0aGlzIGRlc2NlbmRhbnQgZHVtcCBpZiBpdCBvd25zIGFub3RoZXIgZGVzY2VuZGFudCBvZgorICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGR1bXAgKHdvdWxkIGNhdXNlIGRvdWJsZS1jb3VudGluZykuCisgICAgICAgICAgdmFyIG93bmVkRHVtcExpbmsgPSBkZXNjZW5kYW50RHVtcC5vd25zOworICAgICAgICAgIGlmIChvd25lZER1bXBMaW5rICE9PSB1bmRlZmluZWQgJiYKKyAgICAgICAgICAgICAgb3duZWREdW1wTGluay50YXJnZXQuaXNEZXNjZW5kYW50T2YoZHVtcCkpIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSB0YXJnZXQgb3duZWQgZHVtcCBpcyBhIGRlc2NlbmRhbnQgb2YgYSAqZGlmZmVyZW50KiBjaGlsZAorICAgICAgICAgICAgLy8gb2YgdGhlIHRoZSBjdXJyZW50IGR1bXAgKGkuZS4gbm90IGNoaWxkRHVtcCksIHRoZW4gd2UgcmVtZW1iZXIKKyAgICAgICAgICAgIC8vIHRoZSBvd25lcnNoaXAgc28gdGhhdCB3ZSBjb3VsZCBleHBsYWluIHdoeSB0aGUgc2l6ZSBvZiB0aGUKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgZHVtcCBpcyBub3QgZXF1YWwgdG8gdGhlIHN1bSBvZiBpdHMgY2hpbGRyZW4uCisgICAgICAgICAgICB2YXIgb3duZWREZXNjZW5kYW50RHVtcCA9IG93bmVkRHVtcExpbmsudGFyZ2V0OworICAgICAgICAgICAgdmFyIG93bmVkQ2hpbGREdW1wID0gb3duZWREZXNjZW5kYW50RHVtcDsKKyAgICAgICAgICAgIHdoaWxlIChvd25lZENoaWxkRHVtcC5wYXJlbnQgIT09IGR1bXApCisgICAgICAgICAgICAgIG93bmVkQ2hpbGREdW1wID0gb3duZWRDaGlsZER1bXAucGFyZW50OworICAgICAgICAgICAgaWYgKGNoaWxkRHVtcCAhPT0gb3duZWRDaGlsZER1bXApIHsKKyAgICAgICAgICAgICAgdmFyIG92ZXJsYXAgPSBnZXREZXBlbmRlbmN5U2l6ZShkZXNjZW5kYW50RHVtcCk7CisgICAgICAgICAgICAgIGlmIChvdmVybGFwID4gMCkgeworICAgICAgICAgICAgICAgIC8vIE93bmVyIGNoaWxkIGR1bXAgLT4gdG90YWwgb3ZlcmxhcHBpbmcgc2l6ZS4KKyAgICAgICAgICAgICAgICB2YXIgb3duZWRDaGlsZE92ZXJsYXBzID0gYWxsT3ZlcmxhcHNbb3duZWRDaGlsZER1bXAubmFtZV07CisgICAgICAgICAgICAgICAgaWYgKG93bmVkQ2hpbGRPdmVybGFwcyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgICAgYWxsT3ZlcmxhcHNbb3duZWRDaGlsZER1bXAubmFtZV0gPSBvd25lZENoaWxkT3ZlcmxhcHMgPSB7fTsKKyAgICAgICAgICAgICAgICB2YXIgcHJldmlvdXNUb3RhbE92ZXJsYXAgPQorICAgICAgICAgICAgICAgICAgICBvd25lZENoaWxkT3ZlcmxhcHNbY2hpbGREdW1wLm5hbWVdIHx8IDA7CisgICAgICAgICAgICAgICAgdmFyIHVwZGF0ZWRUb3RhbE92ZXJsYXAgPSBwcmV2aW91c1RvdGFsT3ZlcmxhcCArIG92ZXJsYXA7CisgICAgICAgICAgICAgICAgb3duZWRDaGlsZE92ZXJsYXBzW2NoaWxkRHVtcC5uYW1lXSA9IHVwZGF0ZWRUb3RhbE92ZXJsYXA7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBJZiB0aGlzIGRlc2NlbmRhbnQgZHVtcCBpcyBhIGxlYWYgbm9kZSwgYWRkIGl0cyBzaXplIHRvIHRoZQorICAgICAgICAgIC8vIGFnZ3JlZ2F0ZWQgc2l6ZS4KKyAgICAgICAgICBpZiAoZGVzY2VuZGFudER1bXAuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7CisgICAgICAgICAgICBhZ2dyZWdhdGVkQ2hpbGRyZW5TaXplICs9IGdldERlcGVuZGVuY3lTaXplKGRlc2NlbmRhbnREdW1wKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBJZiB0aGlzIGRlc2NlbmRhbnQgZHVtcCBpcyBhbiBpbnRlcm1lZGlhdGUgbm9kZSwgcmVjdXJzZSBkb3duIGludG8KKyAgICAgICAgICAvLyBpdHMgY2hpbGRyZW4uIE5vdGUgdGhhdCB0aGUgZHVtcCdzIHNpemUgaXMgTk9UIGFkZGVkIGJlY2F1c2UgaXQgaXMKKyAgICAgICAgICAvLyBhbiBhZ2dyZWdhdGUgb2YgaXRzIGNoaWxkcmVuICh3b3VsZCBjYXVzZSBkb3VibGUtY291bnRpbmcpLgorICAgICAgICAgIGRlc2NlbmRhbnREdW1wLmNoaWxkcmVuLmZvckVhY2goYWdncmVnYXRlRGVzY2VuZGFudER1bXApOworICAgICAgICB9CisgICAgICAgIGFnZ3JlZ2F0ZURlc2NlbmRhbnREdW1wKGNoaWxkRHVtcCk7CisgICAgICB9KTsKKyAgICAgIC8vIElmIHRoZSBzaXplIG9mIHRoZSBkdW1wIGlzIG5vdCBlcXVhbCB0byB0aGUgc3VtIG9mIGl0cyBjaGlsZHJlbiwgYWRkCisgICAgICAvLyBpbmZvcyB0byBpdHMgY2hpbGRyZW4gZXhwbGFpbmluZyB0aGUgZGlmZmVyZW5jZS4KKyAgICAgIGR1bXAuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihjaGlsZER1bXApIHsKKyAgICAgICAgdmFyIGNoaWxkT3ZlcmxhcHMgPSBhbGxPdmVybGFwc1tjaGlsZER1bXAubmFtZV07CisgICAgICAgIGlmIChjaGlsZE92ZXJsYXBzID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBtZXNzYWdlID0gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHRyLmIubWFwSXRlbXMoY2hpbGRPdmVybGFwcywKKyAgICAgICAgICAgIGZ1bmN0aW9uKG93bmVyQ2hpbGROYW1lLCBvdmVybGFwKSB7CisgICAgICAgICAgcmV0dXJuICdUaGlzIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBvdmVybGFwcyB3aXRoIGl0cyBzaWJsaW5nIFwnJyArCisgICAgICAgICAgICAgIG93bmVyQ2hpbGROYW1lICsgJ1wnICgnICsKKyAgICAgICAgICAgICAgdHIuYi51bml0cy5TaXplSW5CeXRlcy5mb3JtYXQob3ZlcmxhcCkgKyAnKS4nOworICAgICAgICB9KSkuam9pbignICcpOworCisgICAgICAgIGNoaWxkRHVtcC5hdHRyaWJ1dGVzW1NJWkVfQVRUUklCVVRFX05BTUVdLmluZm9zLnB1c2goCisgICAgICAgICAgICBuZXcgdHIubW9kZWwuQXR0cmlidXRlSW5mbygKKyAgICAgICAgICAgICAgICB0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvVHlwZS5JTkZPUk1BVElPTiwgbWVzc2FnZSkpOworICAgICAgfSk7CisgICAgICBjaGVja0RlcGVuZGVudFNpemVJc0NvbnNpc3RlbnQoCisgICAgICAgICAgYWdncmVnYXRlZENoaWxkcmVuU2l6ZSwgJ3RoZSBhZ2dyZWdhdGVkIHNpemUgb2YgaXRzIGNoaWxkcmVuJyk7CisKKyAgICAgIC8vIDMuIENhbGN1bGF0ZSB0aGUgbGFyZ2VzdCBvd25lciBzaXplLgorICAgICAgdmFyIGxhcmdlc3RPd25lclNpemUgPSAwOworICAgICAgZHVtcC5vd25lZEJ5LmZvckVhY2goZnVuY3Rpb24ob3duZXJzaGlwTGluaykgeworICAgICAgICB2YXIgb3duZXIgPSBvd25lcnNoaXBMaW5rLnNvdXJjZTsKKyAgICAgICAgdmFyIG93bmVyU2l6ZSA9IGdldERlcGVuZGVuY3lTaXplKG93bmVyKTsKKyAgICAgICAgbGFyZ2VzdE93bmVyU2l6ZSA9IE1hdGgubWF4KGxhcmdlc3RPd25lclNpemUsIG93bmVyU2l6ZSk7CisgICAgICB9KTsKKyAgICAgIGNoZWNrRGVwZW5kZW50U2l6ZUlzQ29uc2lzdGVudCgKKyAgICAgICAgICBsYXJnZXN0T3duZXJTaXplLCAndGhlIHNpemUgb2YgaXRzIGxhcmdlc3Qgb3duZXInKTsKKworICAgICAgLy8gSWYgbmVpdGhlciB0aGUgZHVtcCBub3IgYW55IG9mIGl0cyBkZXBlbmRlbmNpZXMgKGNoaWxkcmVuIGFuZCBvd25lcnMpCisgICAgICAvLyBwcm92aWRlIGEgc2l6ZSwgZG8gTk9UIGFkZCBhIHplcm8gc2l6ZSBhdHRyaWJ1dGUuCisgICAgICBpZiAoIXNob3VsZERlZmluZVNpemUpIHsKKyAgICAgICAgLy8gVGhlIHJlc3Qgb2YgdGhlIHBpcGVsaW5lIHJlbGllcyBvbiBzaXplIGJlaW5nIGVpdGhlciBhIHZhbGlkCisgICAgICAgIC8vIFNjYWxhckF0dHJpYnV0ZSwgb3IgdW5kZWZpbmVkLgorICAgICAgICBkdW1wLmF0dHJpYnV0ZXNbU0laRV9BVFRSSUJVVEVfTkFNRV0gPSB1bmRlZmluZWQ7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgLy8gQSBkdW1wIG11c3QgYWx3YXlzIGJlIGJpZ2dlciB0aGFuIGFsbCBpdHMgY2hpbGRyZW4gYWdncmVnYXRlZAorICAgICAgLy8gdG9nZXRoZXIgYW5kL29yIGl0cyBsYXJnZXN0IG93bmVyLgorICAgICAgc2l6ZSA9IE1hdGgubWF4KHNpemUsIGFnZ3JlZ2F0ZWRDaGlsZHJlblNpemUsIGxhcmdlc3RPd25lclNpemUpOworCisgICAgICB2YXIgc2l6ZUF0dHJpYnV0ZSA9IG5ldyB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgc2l6ZSk7CisgICAgICBzaXplQXR0cmlidXRlLmluZm9zID0gaW5mb3M7CisgICAgICBkdW1wLmF0dHJpYnV0ZXNbU0laRV9BVFRSSUJVVEVfTkFNRV0gPSBzaXplQXR0cmlidXRlOworCisgICAgICAvLyBBZGQgYSB2aXJ0dWFsIGNoaWxkIHRvIG1ha2UgdXAgZm9yIGV4dHJhIHNpemUgb2YgdGhlIGR1bXAgd2l0aAorICAgICAgLy8gcmVzcGVjdCB0byBpdHMgY2hpbGRyZW4gKGlmIGFwcGxpY2FibGUpLgorICAgICAgaWYgKGFnZ3JlZ2F0ZWRDaGlsZHJlblNpemUgPCBzaXplICYmCisgICAgICAgICAgZHVtcC5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkICYmIGR1bXAuY2hpbGRyZW4ubGVuZ3RoID4gMCkgeworICAgICAgICB2YXIgdmlydHVhbENoaWxkID0gbmV3IHRyLm1vZGVsLk1lbW9yeUFsbG9jYXRvckR1bXAoCisgICAgICAgICAgICBkdW1wLmNvbnRhaW5lck1lbW9yeUR1bXAsIGR1bXAuZnVsbE5hbWUgKyAnLzx1bnNwZWNpZmllZD4nKTsKKyAgICAgICAgdmlydHVhbENoaWxkLnBhcmVudCA9IGR1bXA7CisgICAgICAgIGR1bXAuY2hpbGRyZW4udW5zaGlmdCh2aXJ0dWFsQ2hpbGQpOworICAgICAgICB2aXJ0dWFsQ2hpbGQuYXR0cmlidXRlc1tTSVpFX0FUVFJJQlVURV9OQU1FXSA9CisgICAgICAgICAgICBuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKAorICAgICAgICAgICAgICAgICdieXRlcycsIHNpemUgLSBhZ2dyZWdhdGVkQ2hpbGRyZW5TaXplKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlIHRoZSBlZmZlY3RpdmUgc2l6ZSBvZiBhbGwgbWVtb3J5IGFsbG9jYXRvciBkdW1wcyBpbiB0aGUgZHVtcAorICAgICAqIGdyYXBoLgorICAgICAqCisgICAgICogVGhlIGVmZmVjdGl2ZSBzaXplIHJlZmVycyB0byB0aGUgYW1vdW50IG9mIG1lbW9yeSBhIHBhcnRpY3VsYXIgY29tcG9uZW50CisgICAgICogaXMgdXNpbmcvY29uc3VtaW5nLiBJbiBvdGhlciB3b3JkcywgZXZlcnkgKHJlcG9ydGVkKSBieXRlIG9mIHVzZWQgbWVtb3J5CisgICAgICogaXMgdW5pcXVlbHkgYXR0cmlidXRlZCB0byBleGFjdGx5IG9uZSBjb21wb25lbnQuIENvbnNlcXVlbnRseSwgdW5saWtlCisgICAgICogc2l6ZSwgZWZmZWN0aXZlIHNpemUgaXMgY3VtdWxhdGl2ZSwgaS5lLiB0aGUgc3VtIG9mIHRoZSBlZmZlY3RpdmUgc2l6ZXMKKyAgICAgKiBvZiAodG9wLWxldmVsKSBjb21wb25lbnRzIGlzIGVxdWFsIHRvIHRoZSB0b3RhbCBhbW91bnQgb2YgKHJlcG9ydGVkKQorICAgICAqIHVzZWQgbWVtb3J5LgorICAgICAqCisgICAgICogTWV0cmljIG1vdGl2YXRpb246ICJIb3cgbXVjaCBtZW1vcnkgZG9lcyBhIChzdWIpc3lzdGVtIHVzZT8iIG9yICJGb3IgaG93CisgICAgICogbXVjaCBtZW1vcnkgc2hvdWxkIGEgKHN1YilzeXN0ZW0gYmUgJ2NoYXJnZWQnPyIKKyAgICAgKgorICAgICAqIFBsZWFzZSByZWZlciB0byB0aGUgTWVtb3J5IER1bXAgR3JhcGggTWV0cmljIENhbGN1bGF0aW9uIGRlc2lnbiBkb2N1bWVudAorICAgICAqIGZvciBtb3JlIGRldGFpbHMgKGh0dHBzOi8vZ29vLmdsL2ZLZzBkdCkuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgdGhlIHNpemUgb2YgYWxsIGNvbnRhaW5lZCBtZW1vcnkgYWxsb2NhdG9yCisgICAgICogZHVtcHMgaGFzIGFscmVhZHkgYmVlbiBjYWxjdWxhdGVkIFtzZWUgY2FsY3VsYXRlU2l6ZXMoKV0uCisgICAgICovCisgICAgY2FsY3VsYXRlRWZmZWN0aXZlU2l6ZXM6IGZ1bmN0aW9uKCkgeworICAgICAgLy8gMS4gQ2FsY3VsYXRlIG5vdC1vd25lZCBhbmQgbm90LW93bmluZyBzdWItc2l6ZXMgb2YgYWxsIE1BRHMKKyAgICAgIC8vIChkZXB0aC1maXJzdCBwb3N0LW9yZGVyIHRyYXZlcnNhbCkuCisgICAgICB0aGlzLnRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQb3N0T3JkZXIoCisgICAgICAgICAgdGhpcy5jYWxjdWxhdGVEdW1wU3ViU2l6ZXNfLmJpbmQodGhpcykpOworCisgICAgICAvLyAyLiBDYWxjdWxhdGUgb3duZWQgYW5kIG93bmluZyBjb2VmZmljaWVudHMgb2Ygb3duZWQgYW5kIG93bmVyIE1BRHMKKyAgICAgIC8vIHJlc3BlY3RpdmVseSAoYXJiaXRyYXJ5IHRyYXZlcnNhbCkuCisgICAgICB0aGlzLnRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQb3N0T3JkZXIoCisgICAgICAgICAgdGhpcy5jYWxjdWxhdGVEdW1wT3duZXJzaGlwQ29lZmZpY2llbnRfLmJpbmQodGhpcykpOworCisgICAgICAvLyAzLiBDYWxjdWxhdGUgY3VtdWxhdGl2ZSBvd25lZCBhbmQgb3duaW5nIGNvZWZmaWNpZW50cyBvZiBhbGwgTUFEcworICAgICAgLy8gKGRlcHRoLWZpcnN0IHByZS1vcmRlciB0cmF2ZXJzYWwpLgorICAgICAgdGhpcy50cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0UHJlT3JkZXIoCisgICAgICAgICAgdGhpcy5jYWxjdWxhdGVEdW1wQ3VtdWxhdGl2ZU93bmVyc2hpcENvZWZmaWNpZW50Xy5iaW5kKHRoaXMpKTsKKworICAgICAgLy8gNC4gQ2FsY3VsYXRlIHRoZSBlZmZlY3RpdmUgc2l6ZXMgb2YgYWxsIE1BRHMgKGRlcHRoLWZpcnN0IHBvc3Qtb3JkZXIKKyAgICAgIC8vIHRyYXZlcnNhbCkuCisgICAgICB0aGlzLnRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQb3N0T3JkZXIoCisgICAgICAgICAgdGhpcy5jYWxjdWxhdGVEdW1wRWZmZWN0aXZlU2l6ZV8uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZSBub3Qtb3duZWQgYW5kIG5vdC1vd25pbmcgc3ViLXNpemVzIG9mIGEgbWVtb3J5IGFsbG9jYXRvciBkdW1wCisgICAgICogZnJvbSBpdHMgY2hpbGRyZW4ncyAoc3ViLSlzaXplcy4KKyAgICAgKgorICAgICAqIE5vdC1vd25lZCBzdWItc2l6ZSByZWZlcnMgdG8gdGhlIGFnZ3JlZ2F0ZWQgbWVtb3J5IG9mIGFsbCBjaGlsZHJlbiB3aGljaAorICAgICAqIGlzIG5vdCBvd25lZCBieSBvdGhlciBNQURzLiBDb252ZXJzZWx5LCBub3Qtb3duaW5nIHN1Yi1zaXplIGlzIHRoZQorICAgICAqIGFnZ3JlZ2F0ZWQgbWVtb3J5IG9mIGFsbCBjaGlsZHJlbiB3aGljaCBkbyBub3Qgb3duIGFub3RoZXIgTUFELiBUaGUKKyAgICAgKiBkaWFncmFtIGJlbG93IGlsbHVzdHJhdGVzIHRoZXNlIHR3byBjb25jZXB0czoKKyAgICAgKgorICAgICAqICAgICBST09UIDEgICAgICAgICAgICAgICAgICAgICAgICAgUk9PVCAyCisgICAgICogICAgIHNpemU6IDQgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA1CisgICAgICogICAgIG5vdC1vd25lZCBzdWItc2l6ZTogNCAgICAgICAgICBub3Qtb3duZWQgc3ViLXNpemU6IDEgKCEpCisgICAgICogICAgIG5vdC1vd25pbmcgc3ViLXNpemU6IDAgKCEpICAgICBub3Qtb3duaW5nIHN1Yi1zaXplOiA1CisgICAgICoKKyAgICAgKiAgICAgIF4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAqCisgICAgICogICAgIFBBUkVOVCAxICAgPT09PT0gb3ducyA9PT09PT4gICBQQVJFTlQgMgorICAgICAqICAgICBzaXplOiA0ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNQorICAgICAqICAgICBub3Qtb3duZWQgc3ViLXNpemU6IDQgICAgICAgICAgbm90LW93bmVkIHN1Yi1zaXplOiA1CisgICAgICogICAgIG5vdC1vd25pbmcgc3ViLXNpemU6IDQgICAgICAgICBub3Qtb3duaW5nIHN1Yi1zaXplOiA1CisgICAgICoKKyAgICAgKiAgICAgIF4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAqCisgICAgICogICAgIENISUxEIDEgICAgICAgICAgICAgICAgICAgICAgICBDSElMRCAyCisgICAgICogICAgIHNpemUgW2dpdmVuXTogNCAgICAgICAgICAgICAgICBzaXplIFtnaXZlbl06IDUKKyAgICAgKiAgICAgbm90LW93bmVkIHN1Yi1zaXplOiA0ICAgICAgICAgIG5vdC1vd25lZCBzdWItc2l6ZTogNQorICAgICAqICAgICBub3Qtb3duaW5nIHN1Yi1zaXplOiA0ICAgICAgICAgbm90LW93bmluZyBzdWItc2l6ZTogNQorICAgICAqCisgICAgICogVGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0ICgxKSB0aGUgc2l6ZSBvZiB0aGUgZHVtcCwgaXRzIGNoaWxkcmVuLCBhbmQgaXRzCisgICAgICogb3duZXJzIFtzZWUgY2FsY3VsYXRlU2l6ZXMoKV0gYW5kICgyKSB0aGUgbm90LW93bmVkIGFuZCBub3Qtb3duaW5nCisgICAgICogc3ViLXNpemVzIG9mIGJvdGggdGhlIGNoaWxkcmVuIGFuZCBvd25lcnMgb2YgdGhlIGR1bXAgaGF2ZSBhbHJlYWR5IGJlZW4KKyAgICAgKiBjYWxjdWxhdGVkIFtkZXB0aC1maXJzdCBwb3N0LW9yZGVyIHRyYXZlcnNhbF0uCisgICAgICovCisgICAgY2FsY3VsYXRlRHVtcFN1YlNpemVzXzogZnVuY3Rpb24oZHVtcCkgeworICAgICAgLy8gQ29tcGxldGVseSBza2lwIGR1bXBzIHdpdGggdW5kZWZpbmVkIHNpemUuCisgICAgICBpZiAoIWhhc1NpemUoZHVtcCkpCisgICAgICAgIHJldHVybjsKKworICAgICAgLy8gSWYgdGhlIGR1bXAgaXMgYSBsZWFmIG5vZGUsIHRoZW4gYm90aCBzdWItc2l6ZXMgYXJlIGVxdWFsIHRvIHRoZSBzaXplLgorICAgICAgaWYgKGR1bXAuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fCBkdW1wLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkgeworICAgICAgICB2YXIgc2l6ZSA9IGdldFNpemUoZHVtcCk7CisgICAgICAgIGR1bXAubm90T3duaW5nU3ViU2l6ZV8gPSBzaXplOworICAgICAgICBkdW1wLm5vdE93bmVkU3ViU2l6ZV8gPSBzaXplOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIC8vIENhbGN1bGF0ZSB0aGlzIGR1bXAncyBub3Qtb3duaW5nIHN1Yi1zaXplIGJ5IHN1bW1pbmcgdXAgdGhlIG5vdC1vd25pbmcKKyAgICAgIC8vIHN1Yi1zaXplcyBvZiBjaGlsZHJlbiBNQURzIHdoaWNoIGRvIG5vdCBvd24gYW5vdGhlciBNQUQuCisgICAgICB2YXIgbm90T3duaW5nU3ViU2l6ZSA9IDA7CisgICAgICBkdW1wLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGREdW1wKSB7CisgICAgICAgIGlmIChjaGlsZER1bXAub3ducyAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbm90T3duaW5nU3ViU2l6ZSArPSBvcHRpb25hbChjaGlsZER1bXAubm90T3duaW5nU3ViU2l6ZV8sIDApOworICAgICAgfSk7CisgICAgICBkdW1wLm5vdE93bmluZ1N1YlNpemVfID0gbm90T3duaW5nU3ViU2l6ZTsKKworICAgICAgLy8gQ2FsY3VsYXRlIHRoaXMgZHVtcCdzIG5vdC1vd25lZCBzdWItc2l6ZS4KKyAgICAgIHZhciBub3RPd25lZFN1YlNpemUgPSAwOworICAgICAgZHVtcC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkRHVtcCkgeworICAgICAgICAvLyBJZiB0aGUgY2hpbGQgZHVtcCBpcyBub3Qgb3duZWQsIHRoZW4gYWRkIGl0cyBub3Qtb3duZWQgc3ViLXNpemUuCisgICAgICAgIGlmIChjaGlsZER1bXAub3duZWRCeS5sZW5ndGggPT09IDApIHsKKyAgICAgICAgICBub3RPd25lZFN1YlNpemUgKz0gb3B0aW9uYWwoY2hpbGREdW1wLm5vdE93bmVkU3ViU2l6ZV8sIDApOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBJZiB0aGUgY2hpbGQgZHVtcCBpcyBvd25lZCwgdGhlbiBhZGQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBpdHMgc2l6ZQorICAgICAgICAvLyBhbmQgdGhlIGxhcmdlc3Qgb3duZXIuCisgICAgICAgIHZhciBsYXJnZXN0Q2hpbGRPd25lclNpemUgPSAwOworICAgICAgICBjaGlsZER1bXAub3duZWRCeS5mb3JFYWNoKGZ1bmN0aW9uKG93bmVyc2hpcExpbmspIHsKKyAgICAgICAgICBsYXJnZXN0Q2hpbGRPd25lclNpemUgPSBNYXRoLm1heCgKKyAgICAgICAgICAgICAgbGFyZ2VzdENoaWxkT3duZXJTaXplLCBnZXRTaXplKG93bmVyc2hpcExpbmsuc291cmNlKSk7CisgICAgICAgIH0pOworICAgICAgICBub3RPd25lZFN1YlNpemUgKz0gZ2V0U2l6ZShjaGlsZER1bXApIC0gbGFyZ2VzdENoaWxkT3duZXJTaXplOworICAgICAgfSk7CisgICAgICBkdW1wLm5vdE93bmVkU3ViU2l6ZV8gPSBub3RPd25lZFN1YlNpemU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZSBvd25lZCBhbmQgb3duaW5nIGNvZWZmaWNpZW50cyBvZiBhIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBhbmQKKyAgICAgKiBpdHMgb3duZXJzLgorICAgICAqCisgICAgICogVGhlIG93bmluZyBjb2VmZmljaWVudCByZWZlcnMgdG8gdGhlIHByb3BvcnRpb24gb2YgYSBkdW1wJ3Mgbm90LW93bmluZworICAgICAqIHN1Yi1zaXplIHdoaWNoIGlzIGF0dHJpYnV0ZWQgdG8gdGhlIGR1bXAgKG9ubHkgcmVsZXZhbnQgdG8gb3duaW5nIE1BRHMpLgorICAgICAqIENvbnZlcnNlbHksIHRoZSBvd25lZCBjb2VmZmljaWVudCBpcyB0aGUgcHJvcG9ydGlvbiBvZiBhIGR1bXAncworICAgICAqIG5vdC1vd25lZCBzdWItc2l6ZSwgd2hpY2ggaXMgYXR0cmlidXRlZCB0byBpdCAob25seSByZWxldmFudCB0byBvd25lZAorICAgICAqIE1BRHMpLgorICAgICAqCisgICAgICogVGhlIG5vdC1vd25lZCBzaXplIG9mIHRoZSBvd25lZCBkdW1wIGlzIHNwbGl0IGFtb25nIGl0cyBvd25lcnMgaW4gdGhlCisgICAgICogb3JkZXIgb2YgdGhlIG93bmVyc2hpcCBpbXBvcnRhbmNlIGFzIGRlbW9uc3RyYXRlZCBieSB0aGUgZm9sbG93aW5nCisgICAgICogZXhhbXBsZToKKyAgICAgKgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5IGFsbG9jYXRvciBkdW1wcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPV05FRCAgT1dORVIxICBPV05FUjIgIE9XTkVSMyAgT1dORVI0CisgICAgICogICAgICAgbm90LW93bmVkIHN1Yi1zaXplIFtnaXZlbl0gICAgIDEwICAgICAgIC0gICAgICAgLSAgICAgICAtICAgICAgIC0KKyAgICAgKiAgICAgIG5vdC1vd25pbmcgc3ViLXNpemUgW2dpdmVuXSAgICAgIC0gICAgICAgNiAgICAgICA3ICAgICAgIDUgICAgICAgOAorICAgICAqICAgICAgICAgICAgICAgaW1wb3J0YW5jZSBbZ2l2ZW5dICAgICAgLSAgICAgICAyICAgICAgIDIgICAgICAgMSAgICAgICAwCisgICAgICogICAgYXR0cmlidXRlZCBub3Qtb3duZWQgc3ViLXNpemUgICAgICAyICAgICAgIC0gICAgICAgLSAgICAgICAtICAgICAgIC0KKyAgICAgKiAgIGF0dHJpYnV0ZWQgbm90LW93bmluZyBzdWItc2l6ZSAgICAgIC0gICAgICAgMyAgICAgICA0ICAgICAgIDAgICAgICAgMQorICAgICAqICAgICAgICAgICAgICAgIG93bmVkIGNvZWZmaWNpZW50ICAgMi8xMCAgICAgICAtICAgICAgIC0gICAgICAgLSAgICAgICAtCisgICAgICogICAgICAgICAgICAgICBvd25pbmcgY29lZmZpY2llbnQgICAgICAtICAgICAzLzYgICAgIDQvNyAgICAgMC81ICAgICAxLzgKKyAgICAgKgorICAgICAqIEV4cGxhbmF0aW9uOiBGaXJzdGx5LCA2IGJ5dGVzIGFyZSBzcGxpdCBlcXVhbGx5IGFtb25nIE9XTkVSMSBhbmQgT1dORVIyCisgICAgICogKGhpZ2hlc3QgaW1wb3J0YW5jZSkuIE9XTkVSMiBvd25zIG9uZSBtb3JlIGJ5dGUsIHNvIGl0cyBhdHRyaWJ1dGVkCisgICAgICogbm90LW93bmluZyBzdWItc2l6ZSBpcyA2LzIgKyAxID0gNCBieXRlcy4gT1dORVIzIGlzIGF0dHJpYnV0ZWQgbm8gc2l6ZQorICAgICAqIGJlY2F1c2UgaXQgaXMgc21hbGxlciB0aGFuIHRoZSBvd25lcnMgd2l0aCBoaWdoZXIgcHJpb3JpdHkuIEhvd2V2ZXIsCisgICAgICogT1dORVI0IGlzIGxhcmdlciwgc28gaXQncyBhdHRyaWJ1dGVkIHRoZSBkaWZmZXJlbmNlIDggLSA3ID0gMSBieXRlLgorICAgICAqIEZpbmFsbHksIDIgYnl0ZXMgcmVtYWluIHVuYXR0cmlidXRlZCBhbmQgYXJlIGhlbmNlIGtlcHQgaW4gdGhlIE9XTkVECisgICAgICogZHVtcCBhcyBhdHRyaWJ1dGVkIG5vdC1vd25lZCBzdWItc2l6ZS4gVGhlIGNvZWZmaWNpZW50cyBhcmUgdGhlbgorICAgICAqIGRpcmVjdGx5IGNhbGN1bGF0ZWQgYXMgZnJhY3Rpb25zIG9mIHRoZSBzdWItc2l6ZXMgYW5kIGNvcnJlc3BvbmRpbmcKKyAgICAgKiBhdHRyaWJ1dGVkIHN1Yi1zaXplcy4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCB3ZSBhbHdheXMgYXNzdW1lIHRoYXQgYWxsIG93bmVyc2hpcHMgb2YgYSBkdW1wIG92ZXJsYXAgKGUuZy4KKyAgICAgKiBPV05FUjMgaXMgc3Vic3VtZWQgYnkgYm90aCBPV05FUjEgYW5kIE9XTkVSMikuIEhlbmNlLCB0aGUgdGFibGUgY291bGQKKyAgICAgKiBiZSBhbHRlcm5hdGl2ZWx5IHJlcHJlc2VudGVkIGFzIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVkIG1lbW9yeSByYW5nZQorICAgICAqICAgICAgICAgICAgICAwICAgMSAgIDIgICAgMyAgICA0ICAgIDUgICAgNiAgICAgICAgNyAgICAgICAgOCAgIDkgIDEwCisgICAgICogICBQcmlvcml0eSAyIHwgIE9XTkVSMSArIE9XTkVSMiAoc3BsaXQpICB8IE9XTkVSMiB8CisgICAgICogICBQcmlvcml0eSAxIHwgKGFscmVhZHkgYXR0cmlidXRlZCkgfAorICAgICAqICAgUHJpb3JpdHkgMCB8IC0gLSAtICAoYWxyZWFkeSBhdHRyaWJ1dGVkKSAgLSAtIC0gfCBPV05FUjQgfAorICAgICAqICAgIFJlbWFpbmRlciB8IC0gLSAtIC0gLSAoYWxyZWFkeSBhdHRyaWJ1dGVkKSAtIC0gLSAtIC0gLSAgfCBPV05FRCB8CisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgKDEpIHRoZSBzaXplIG9mIHRoZSBkdW1wIFtzZWUgY2FsY3VsYXRlU2l6ZXMoKV0KKyAgICAgKiBhbmQgKDIpIHRoZSBub3Qtb3duZWQgc2l6ZSBvZiB0aGUgZHVtcCBhbmQgbm90LW93bmluZyBzdWItc2l6ZXMgb2YgaXRzCisgICAgICogb3duZXJzIFtzZWUgdGhlIGZpcnN0IHN0ZXAgb2YgY2FsY3VsYXRlRWZmZWN0aXZlU2l6ZXMoKV0gaGF2ZSBhbHJlYWR5CisgICAgICogYmVlbiBjYWxjdWxhdGVkLiBOb3RlIHRoYXQgdGhlIG1ldGhvZCBkb2Vzbid0IG1ha2UgYW55IGFzc3VtcHRpb25zIGFib3V0CisgICAgICogdGhlIG9yZGVyIGluIHdoaWNoIGR1bXBzIGFyZSB2aXNpdGVkLgorICAgICAqLworICAgIGNhbGN1bGF0ZUR1bXBPd25lcnNoaXBDb2VmZmljaWVudF86IGZ1bmN0aW9uKGR1bXApIHsKKyAgICAgIC8vIENvbXBsZXRlbHkgc2tpcCBkdW1wcyB3aXRoIHVuZGVmaW5lZCBzaXplLgorICAgICAgaWYgKCFoYXNTaXplKGR1bXApKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBjb25zaWRlciBvd25lZCBkdW1wcy4KKyAgICAgIGlmIChkdW1wLm93bmVkQnkubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIFNvcnQgdGhlIG93bmVycyBpbiBkZWNyZWFzaW5nIG9yZGVyIG9mIG93bmVyc2hpcCBpbXBvcnRhbmNlIGFuZAorICAgICAgLy8gaW5jcmVhc2luZyBvcmRlciBvZiBub3Qtb3duaW5nIHN1Yi1zaXplIChpbiBjYXNlIG9mIGVxdWFsIGltcG9ydGFuY2UpLgorICAgICAgdmFyIG93bmVycyA9IGR1bXAub3duZWRCeS5tYXAoZnVuY3Rpb24ob3duZXJzaGlwTGluaykgeworICAgICAgICByZXR1cm4geworICAgICAgICAgIGR1bXA6IG93bmVyc2hpcExpbmsuc291cmNlLAorICAgICAgICAgIGltcG9ydGFuY2U6IG9wdGlvbmFsKG93bmVyc2hpcExpbmsuaW1wb3J0YW5jZSwgMCksCisgICAgICAgICAgbm90T3duaW5nU3ViU2l6ZTogb3B0aW9uYWwob3duZXJzaGlwTGluay5zb3VyY2Uubm90T3duaW5nU3ViU2l6ZV8sIDApCisgICAgICAgIH07CisgICAgICB9KTsKKyAgICAgIG93bmVycy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgICAgaWYgKGEuaW1wb3J0YW5jZSA9PT0gYi5pbXBvcnRhbmNlKQorICAgICAgICAgIHJldHVybiBhLm5vdE93bmluZ1N1YlNpemUgLSBiLm5vdE93bmluZ1N1YlNpemU7CisgICAgICAgIHJldHVybiBiLmltcG9ydGFuY2UgLSBhLmltcG9ydGFuY2U7CisgICAgICB9KTsKKworICAgICAgLy8gTG9vcCBvdmVyIHRoZSBsaXN0IG9mIG93bmVycyBhbmQgZGlzdHJpYnV0ZSB0aGUgb3duZWQgZHVtcCdzIG5vdC1vd25lZAorICAgICAgLy8gc3ViLXNpemUgYW1vbmcgdGhlbSBhY2NvcmRpbmcgdG8gdGhlaXIgb3duZXJzaGlwIGltcG9ydGFuY2UgYW5kCisgICAgICAvLyBub3Qtb3duaW5nIHN1Yi1zaXplLgorICAgICAgdmFyIGN1cnJlbnRJbXBvcnRhbmNlU3RhcnRQb3MgPSAwOworICAgICAgdmFyIGFscmVhZHlBdHRyaWJ1dGVkU3ViU2l6ZSA9IDA7CisgICAgICB3aGlsZSAoY3VycmVudEltcG9ydGFuY2VTdGFydFBvcyA8IG93bmVycy5sZW5ndGgpIHsKKyAgICAgICAgdmFyIGN1cnJlbnRJbXBvcnRhbmNlID0gb3duZXJzW2N1cnJlbnRJbXBvcnRhbmNlU3RhcnRQb3NdLmltcG9ydGFuY2U7CisKKyAgICAgICAgLy8gRmluZCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IG93bmVyIHdpdGggbG93ZXIgcHJpb3JpdHkuCisgICAgICAgIHZhciBuZXh0SW1wb3J0YW5jZVN0YXJ0UG9zID0gY3VycmVudEltcG9ydGFuY2VTdGFydFBvcyArIDE7CisgICAgICAgIHdoaWxlIChuZXh0SW1wb3J0YW5jZVN0YXJ0UG9zIDwgb3duZXJzLmxlbmd0aCAmJgorICAgICAgICAgICAgICAgb3duZXJzW25leHRJbXBvcnRhbmNlU3RhcnRQb3NdLmltcG9ydGFuY2UgPT09CisgICAgICAgICAgICAgICAgICBjdXJyZW50SW1wb3J0YW5jZSkgeworICAgICAgICAgIG5leHRJbXBvcnRhbmNlU3RhcnRQb3MrKzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFZpc2l0IHRoZSBvd25lcnMgd2l0aCB0aGUgc2FtZSBpbXBvcnRhbmNlIGluIGluY3JlYXNpbmcgb3JkZXIgb2YKKyAgICAgICAgLy8gbm90LW93bmVkIHN1Yi1zaXplLCBzcGxpdCB0aGUgb3duZWQgbWVtb3J5IGFtb25nIHRoZW0gYXBwcm9wcmlhdGVseSwKKyAgICAgICAgLy8gYW5kIGNhbGN1bGF0ZSB0aGVpciBvd25pbmcgY29lZmZpY2llbnRzLgorICAgICAgICB2YXIgYXR0cmlidXRlZE5vdE93bmluZ1N1YlNpemUgPSAwOworICAgICAgICBmb3IgKHZhciBwb3MgPSBjdXJyZW50SW1wb3J0YW5jZVN0YXJ0UG9zOyBwb3MgPCBuZXh0SW1wb3J0YW5jZVN0YXJ0UG9zOworICAgICAgICAgICAgIHBvcysrKSB7CisgICAgICAgICAgdmFyIG93bmVyID0gb3duZXJzW3Bvc107CisgICAgICAgICAgdmFyIG5vdE93bmluZ1N1YlNpemUgPSBvd25lci5ub3RPd25pbmdTdWJTaXplOworICAgICAgICAgIGlmIChub3RPd25pbmdTdWJTaXplID4gYWxyZWFkeUF0dHJpYnV0ZWRTdWJTaXplKSB7CisgICAgICAgICAgICBhdHRyaWJ1dGVkTm90T3duaW5nU3ViU2l6ZSArPQorICAgICAgICAgICAgICAgIChub3RPd25pbmdTdWJTaXplIC0gYWxyZWFkeUF0dHJpYnV0ZWRTdWJTaXplKSAvCisgICAgICAgICAgICAgICAgKG5leHRJbXBvcnRhbmNlU3RhcnRQb3MgLSBwb3MpOworICAgICAgICAgICAgYWxyZWFkeUF0dHJpYnV0ZWRTdWJTaXplID0gbm90T3duaW5nU3ViU2l6ZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgb3duaW5nQ29lZmZpY2llbnQgPSAwOworICAgICAgICAgIGlmIChub3RPd25pbmdTdWJTaXplICE9PSAwKQorICAgICAgICAgICAgb3duaW5nQ29lZmZpY2llbnQgPSBhdHRyaWJ1dGVkTm90T3duaW5nU3ViU2l6ZSAvIG5vdE93bmluZ1N1YlNpemU7CisgICAgICAgICAgb3duZXIuZHVtcC5vd25pbmdDb2VmZmljaWVudF8gPSBvd25pbmdDb2VmZmljaWVudDsKKyAgICAgICAgfQorCisgICAgICAgIGN1cnJlbnRJbXBvcnRhbmNlU3RhcnRQb3MgPSBuZXh0SW1wb3J0YW5jZVN0YXJ0UG9zOworICAgICAgfQorCisgICAgICAvLyBBdHRyaWJ1dGUgdGhlIHJlbWFpbmRlciBvZiB0aGUgb3duZWQgZHVtcCdzIG5vdC1vd25lZCBzdWItc2l6ZSB0bworICAgICAgLy8gdGhlIGR1bXAgaXRzZWxmIGFuZCBjYWxjdWxhdGUgaXRzIG93bmVkIGNvZWZmaWNpZW50LgorICAgICAgdmFyIG5vdE93bmVkU3ViU2l6ZSA9IG9wdGlvbmFsKGR1bXAubm90T3duZWRTdWJTaXplXywgMCk7CisgICAgICB2YXIgcmVtYWluZGVyU3ViU2l6ZSA9IG5vdE93bmVkU3ViU2l6ZSAtIGFscmVhZHlBdHRyaWJ1dGVkU3ViU2l6ZTsKKyAgICAgIHZhciBvd25lZENvZWZmaWNpZW50ID0gMDsKKyAgICAgIGlmIChub3RPd25lZFN1YlNpemUgIT09IDApCisgICAgICAgIG93bmVkQ29lZmZpY2llbnQgPSByZW1haW5kZXJTdWJTaXplIC8gbm90T3duZWRTdWJTaXplOworICAgICAgZHVtcC5vd25lZENvZWZmaWNpZW50XyA9IG93bmVkQ29lZmZpY2llbnQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZSBjdW11bGF0aXZlIG93bmVkIGFuZCBvd25pbmcgY29lZmZpY2llbnRzIG9mIGEgbWVtb3J5IGFsbG9jYXRvcgorICAgICAqIGR1bXAgZnJvbSBpdHMgKG5vbi1jdW11bGF0aXZlKSBvd25lZCBhbmQgb3duaW5nIGNvZWZmaWNpZW50cyBhbmQgdGhlCisgICAgICogY3VtdWxhdGl2ZSBjb2VmZmljaWVudHMgb2YgaXRzIHBhcmVudCBhbmQvb3Igb3duZWQgZHVtcC4KKyAgICAgKgorICAgICAqIFRoZSBjdW11bGF0aXZlIGNvZWZmaWNpZW50cyByZXByZXNlbnQgdGhlIHRvdGFsIGVmZmVjdCBvZiBhbGwKKyAgICAgKiAobm9uLXN0cmljdCkgYW5jZXN0b3Igb3duZXJzaGlwcyBvbiBhIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4gVGhlCisgICAgICogY3VtdWxhdGl2ZSBvd25lZCBjb2VmZmljaWVudCBvZiBhIE1BRCBjYW4gYmUgY2FsY3VsYXRlZCBzaW1wbHkgYXM6CisgICAgICoKKyAgICAgKiAgIGN1bXVsYXRpdmVPd25lZEMoTSkgPSBvd25lZEMoTSkgKiBjdW11bGF0aXZlT3duZWRDKHBhcmVudChNKSkKKyAgICAgKgorICAgICAqIFRoaXMgcmVmbGVjdHMgdGhlIGFzc3VtcHRpb24gdGhhdCBpZiBhIHBhcmVudCBvZiBhIGNoaWxkIE1BRCBpcworICAgICAqIChwYXJ0aWFsbHkpIG93bmVkLCB0aGVuIHRoZSBwYXJlbnQncyBvd25lciBhbHNvIGluZGlyZWN0bHkgb3ducyAoYSBwYXJ0CisgICAgICogb2YpIHRoZSBjaGlsZCBNQUQuCisgICAgICoKKyAgICAgKiBUaGUgY3VtdWxhdGl2ZSBvd25pbmcgY29lZmZpY2llbnQgb2YgYSBNQUQgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZSBNQUQKKyAgICAgKiBvd25zIGFub3RoZXIgZHVtcDoKKyAgICAgKgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lmIE0gZG9lc24ndCBvd24gYW5vdGhlciBNQURdCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgLyBjdW11bGF0aXZlT3duaW5nQyhwYXJlbnQoTSkpCisgICAgICogICBjdW11bGF0aXZlT3duaW5nQyhNKSA9CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgXCBbaWYgTSBvd25zIGFub3RoZXIgTUFEXQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duaW5nQyhNKSAqIGN1bXVsYXRpdmVPd25pbmdDKG93bmVkKE0pKQorICAgICAqCisgICAgICogVGhlIHJlYXNvbmluZyBiZWhpbmQgdGhlIGZpcnN0IGNhc2UgaXMgc2ltaWxhciB0byB0aGUgb25lIGZvciBjdW11bGF0aXZlCisgICAgICogb3duZWQgY29lZmZpY2llbnQgYWJvdmUuIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCB3ZSBkb24ndCBuZWVkIHRvCisgICAgICogaW5jbHVkZSB0aGUgZHVtcCdzIChub24tY3VtdWxhdGl2ZSkgb3duaW5nIGNvZWZmaWNpZW50IGJlY2F1c2UgaXQgaXMKKyAgICAgKiBpbXBsaWNpdGx5IDEuCisgICAgICoKKyAgICAgKiBUaGUgZm9ybXVsYSBmb3IgdGhlIHNlY29uZCBjYXNlIGlzIGRlcml2ZWQgYXMgZm9sbG93czogU2luY2UgdGhlIE1BRAorICAgICAqIG93bnMgYW5vdGhlciBkdW1wLCBpdHMgbWVtb3J5IGlzIG5vdCBpbmNsdWRlZCBpbiBpdHMgcGFyZW50J3Mgbm90LW93bmluZworICAgICAqIHN1Yi1zaXplIGFuZCBoZW5jZSBzaG91bGRuJ3QgYmUgYWZmZWN0ZWQgYnkgdGhlIHBhcmVudCdzIGNvcnJlc3BvbmRpbmcKKyAgICAgKiBjdW11bGF0aXZlIGNvZWZmaWNpZW50LiBJbnN0ZWFkLCB0aGUgTUFEIGluZGlyZWN0bHkgb3ducyBldmVyeXRoaW5nCisgICAgICogb3duZWQgYnkgaXRzIG93bmVkIGR1bXAgKGFuZCBzbyBpdCBzaG91bGQgYmUgYWZmZWN0ZWQgYnkgdGhlCisgICAgICogY29ycmVzcG9uZGluZyBjb2VmZmljaWVudCkuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdW5kZWZpbmVkIGNvZWZmaWNpZW50cyAoYW5kIGNvZWZmaWNpZW50cyBvZiBub24tZXhpc3RlbnQKKyAgICAgKiBkdW1wcykgYXJlIGltcGxpY2l0bHkgYXNzdW1lZCB0byBiZSAxLgorICAgICAqCisgICAgICogVGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0ICgxKSB0aGUgc2l6ZSBvZiB0aGUgZHVtcCBbc2VlIGNhbGN1bGF0ZVNpemVzKCldLAorICAgICAqICgyKSB0aGUgKG5vbi1jdW11bGF0aXZlKSBvd25lZCBhbmQgb3duaW5nIGNvZWZmaWNpZW50cyBvZiB0aGUgZHVtcCBbc2VlCisgICAgICogdGhlIHNlY29uZCBzdGVwIG9mIGNhbGN1bGF0ZUVmZmVjdGl2ZVNpemVzKCldLCBhbmQgKDMpIHRoZSBjdW11bGF0aXZlCisgICAgICogY29lZmZpY2llbnRzIG9mIHRoZSBkdW1wJ3MgcGFyZW50IGFuZCBvd25lZCBNQURzIChpZiBwcmVzZW50KQorICAgICAqIFtkZXB0aC1maXJzdCBwcmUtb3JkZXIgdHJhdmVyc2FsXSBoYXZlIGFscmVhZHkgYmVlbiBjYWxjdWxhdGVkLgorICAgICAqLworICAgIGNhbGN1bGF0ZUR1bXBDdW11bGF0aXZlT3duZXJzaGlwQ29lZmZpY2llbnRfOiBmdW5jdGlvbihkdW1wKSB7CisgICAgICAvLyBDb21wbGV0ZWx5IHNraXAgZHVtcHMgd2l0aCB1bmRlZmluZWQgc2l6ZS4KKyAgICAgIGlmICghaGFzU2l6ZShkdW1wKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgY3VtdWxhdGl2ZU93bmVkQ29lZmZpY2llbnQgPSBvcHRpb25hbChkdW1wLm93bmVkQ29lZmZpY2llbnRfLCAxKTsKKyAgICAgIHZhciBwYXJlbnQgPSBkdW1wLnBhcmVudDsKKyAgICAgIGlmIChkdW1wLnBhcmVudCAhPT0gdW5kZWZpbmVkKQorICAgICAgICBjdW11bGF0aXZlT3duZWRDb2VmZmljaWVudCAqPSBkdW1wLnBhcmVudC5jdW11bGF0aXZlT3duZWRDb2VmZmljaWVudF87CisgICAgICBkdW1wLmN1bXVsYXRpdmVPd25lZENvZWZmaWNpZW50XyA9IGN1bXVsYXRpdmVPd25lZENvZWZmaWNpZW50OworCisgICAgICB2YXIgY3VtdWxhdGl2ZU93bmluZ0NvZWZmaWNpZW50OworICAgICAgaWYgKGR1bXAub3ducyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGN1bXVsYXRpdmVPd25pbmdDb2VmZmljaWVudCA9IGR1bXAub3duaW5nQ29lZmZpY2llbnRfICoKKyAgICAgICAgICAgIGR1bXAub3ducy50YXJnZXQuY3VtdWxhdGl2ZU93bmluZ0NvZWZmaWNpZW50XzsKKyAgICAgIH0gZWxzZSBpZiAoZHVtcC5wYXJlbnQgIT09IHVuZGVmaW5lZCkgeworICAgICAgICBjdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnQgPSBkdW1wLnBhcmVudC5jdW11bGF0aXZlT3duaW5nQ29lZmZpY2llbnRfOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgY3VtdWxhdGl2ZU93bmluZ0NvZWZmaWNpZW50ID0gMTsKKyAgICAgIH0KKyAgICAgIGR1bXAuY3VtdWxhdGl2ZU93bmluZ0NvZWZmaWNpZW50XyA9IGN1bXVsYXRpdmVPd25pbmdDb2VmZmljaWVudDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlIHRoZSBlZmZlY3RpdmUgc2l6ZSBvZiBhIG1lbW9yeSBhbGxvY2F0b3IgZHVtcC4KKyAgICAgKgorICAgICAqIEluIG9yZGVyIHRvIHNpbXBsaWZ5IHRoZSAoYWxyZWFkeSBjb21wbGV4KSBjYWxjdWxhdGlvbiwgd2UgdXNlIHRoZSBmYWN0CisgICAgICogdGhhdCBlZmZlY3RpdmUgc2l6ZSBpcyBjdW11bGF0aXZlICh1bmxpa2UgcmVndWxhciBzaXplKSwgaS5lLiB0aGUKKyAgICAgKiBlZmZlY3RpdmUgc2l6ZSBvZiBhIG5vbi1sZWFmIG5vZGUgaXMgZXF1YWwgdG8gdGhlIHN1bSBvZiBlZmZlY3RpdmUgc2l6ZXMKKyAgICAgKiBvZiBpdHMgY2hpbGRyZW4uIFRoZSBlZmZlY3RpdmUgc2l6ZSBvZiBhIGxlYWYgTUFEIGlzIGNhbGN1bGF0ZWQgYXM6CisgICAgICoKKyAgICAgKiAgIGVmZmVjdGl2ZVNpemUoTSkgPSBzaXplKE0pICogY3VtdWxhdGl2ZU93bmluZ0MoTSkgKiBjdW11bGF0aXZlT3duZWRDKE0pCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgKDEpIHRoZSBzaXplIG9mIHRoZSBkdW1wIGFuZCBpdHMgY2hpbGRyZW4gW3NlZQorICAgICAqIGNhbGN1bGF0ZVNpemVzKCldIGFuZCAoMikgdGhlIGN1bXVsYXRpdmUgb3duaW5nIGFuZCBvd25lZCBjb2VmZmljaWVudHMKKyAgICAgKiBvZiB0aGUgZHVtcCAoaWYgaXQncyBhIGxlYWYgbm9kZSkgW3NlZSB0aGUgdGhpcmQgc3RlcCBvZgorICAgICAqIGNhbGN1bGF0ZUVmZmVjdGl2ZVNpemVzKCldIG9yIHRoZSBlZmZlY3RpdmUgc2l6ZXMgb2YgaXRzIGNoaWxkcmVuIChpZgorICAgICAqIGl0J3MgYSBub24tbGVhZiBub2RlKSBbZGVwdGgtZmlyc3QgcG9zdC1vcmRlciB0cmF2ZXJzYWxdIGhhdmUgYWxyZWFkeQorICAgICAqIGJlZW4gY2FsY3VsYXRlZC4KKyAgICAgKi8KKyAgICBjYWxjdWxhdGVEdW1wRWZmZWN0aXZlU2l6ZV86IGZ1bmN0aW9uKGR1bXApIHsKKyAgICAgIC8vIENvbXBsZXRlbHkgc2tpcCBkdW1wcyB3aXRoIHVuZGVmaW5lZCBzaXplLiBBcyBhIHJlc3VsdCwgZWFjaCBkdW1wIHdpbGwKKyAgICAgIC8vIGhhdmUgZGVmaW5lZCBlZmZlY3RpdmUgc2l6ZSBpZiBhbmQgb25seSBpZiBpdCBoYXMgZGVmaW5lZCBzaXplLgorICAgICAgaWYgKCFoYXNTaXplKGR1bXApKSB7CisgICAgICAgIC8vIFRoZSByZXN0IG9mIHRoZSBwaXBlbGluZSByZWxpZXMgb24gZWZmZWN0aXZlIHNpemUgYmVpbmcgZWl0aGVyIGEKKyAgICAgICAgLy8gdmFsaWQgU2NhbGFyQXR0cmlidXRlLCBvciB1bmRlZmluZWQuCisgICAgICAgIGR1bXAuYXR0cmlidXRlc1tFRkZFQ1RJVkVfU0laRV9BVFRSSUJVVEVfTkFNRV0gPSB1bmRlZmluZWQ7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIGVmZmVjdGl2ZVNpemU7CisgICAgICBpZiAoZHVtcC5jaGlsZHJlbiA9PT0gdW5kZWZpbmVkIHx8IGR1bXAuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7CisgICAgICAgIC8vIExlYWYgZHVtcC4KKyAgICAgICAgZWZmZWN0aXZlU2l6ZSA9IGdldFNpemUoZHVtcCkgKiBkdW1wLmN1bXVsYXRpdmVPd25pbmdDb2VmZmljaWVudF8gKgorICAgICAgICAgICAgZHVtcC5jdW11bGF0aXZlT3duZWRDb2VmZmljaWVudF87CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBOb24tbGVhZiBkdW1wLgorICAgICAgICBlZmZlY3RpdmVTaXplID0gMDsKKyAgICAgICAgZHVtcC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkRHVtcCkgeworICAgICAgICAgIGlmICghaGFzU2l6ZShjaGlsZER1bXApKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIGVmZmVjdGl2ZVNpemUgKz0KKyAgICAgICAgICAgICAgY2hpbGREdW1wLmF0dHJpYnV0ZXNbRUZGRUNUSVZFX1NJWkVfQVRUUklCVVRFX05BTUVdLnZhbHVlOworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIHZhciBhdHRyaWJ1dGUgPSBuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIGVmZmVjdGl2ZVNpemUpOworICAgICAgZHVtcC5hdHRyaWJ1dGVzW0VGRkVDVElWRV9TSVpFX0FUVFJJQlVURV9OQU1FXSA9IGF0dHJpYnV0ZTsKKworICAgICAgLy8gQWRkIGF0dHJpYnV0ZSBpbmZvcyByZWdhcmRpbmcgb3duZXJzaGlwIChpZiBhcHBsaWNhYmxlKS4KKyAgICAgIGlmIChkdW1wLm93bmVkQnkubGVuZ3RoID4gMCkgeworICAgICAgICB2YXIgbWVzc2FnZSA9ICdUaGlzIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBpcyBzaGFyZWQgYnkgJyArCisgICAgICAgICAgICBkdW1wLm93bmVkQnkubWFwKGZ1bmN0aW9uKG93bmVyc2hpcExpbmspIHsKKyAgICAgICAgICAgICAgcmV0dXJuIG93bmVyc2hpcFRvVXNlckZyaWVuZGx5U3RyaW5nKAorICAgICAgICAgICAgICAgICAgb3duZXJzaGlwTGluay5zb3VyY2UsIG93bmVyc2hpcExpbmsuaW1wb3J0YW5jZSk7CisgICAgICAgICAgICB9KS5qb2luKCcsICcpICsgJy4nOworICAgICAgICBhdHRyaWJ1dGUuaW5mb3MucHVzaChuZXcgdHIubW9kZWwuQXR0cmlidXRlSW5mbygKKyAgICAgICAgICAgIHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLk1FTU9SWV9PV05FRCwgbWVzc2FnZSkpOworICAgICAgfQorICAgICAgaWYgKGR1bXAub3ducyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHZhciBtZXNzYWdlID0gJ1RoaXMgbWVtb3J5IGFsbG9jYXRvciBkdW1wIHNoYXJlcyAnICsKKyAgICAgICAgICAgIG93bmVyc2hpcFRvVXNlckZyaWVuZGx5U3RyaW5nKAorICAgICAgICAgICAgICAgIGR1bXAub3ducy50YXJnZXQsIGR1bXAub3ducy5pbXBvcnRhbmNlKSArICcuJzsKKyAgICAgICAgYXR0cmlidXRlLmluZm9zLnB1c2gobmV3IHRyLm1vZGVsLkF0dHJpYnV0ZUluZm8oCisgICAgICAgICAgICB0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvVHlwZS5NRU1PUllfT1dORVIsIG1lc3NhZ2UpKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYWdncmVnYXRlQXR0cmlidXRlczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLml0ZXJhdGVSb290QWxsb2NhdG9yRHVtcHMoZnVuY3Rpb24oZHVtcCkgeworICAgICAgICBkdW1wLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXModGhpcy5tb2RlbCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgZGlzY291bnRUcmFjaW5nT3ZlcmhlYWQ6IGZ1bmN0aW9uKCkgeworICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ29uc2lkZXIgZmFjdG9yaW5nIG91dCBhbGwgdGhlIGZpbmFsaXphdGlvbiBjb2RlIGFuZAorICAgICAgLy8gY29uc3RhbnRzIHRvIGEgc2luZ2xlIGZpbGUuCisgICAgICB0ci5iLml0ZXJJdGVtcyh0aGlzLnByb2Nlc3NNZW1vcnlEdW1wcywgZnVuY3Rpb24ocGlkLCBkdW1wKSB7CisgICAgICAgIGR1bXAuZGlzY291bnRUcmFjaW5nT3ZlcmhlYWQodGhpcy5tb2RlbCk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgaXRlcmF0ZUNvbnRhaW5lckR1bXBzOiBmdW5jdGlvbihmbikgeworICAgICAgZm4uY2FsbCh0aGlzLCB0aGlzKTsKKyAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMucHJvY2Vzc01lbW9yeUR1bXBzLCBmdW5jdGlvbihwaWQsIHByb2Nlc3NEdW1wKSB7CisgICAgICAgIGZuLmNhbGwodGhpcywgcHJvY2Vzc0R1bXApOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIGl0ZXJhdGVSb290QWxsb2NhdG9yRHVtcHM6IGZ1bmN0aW9uKGZuKSB7CisgICAgICB0aGlzLml0ZXJhdGVDb250YWluZXJEdW1wcyhmdW5jdGlvbihjb250YWluZXJEdW1wKSB7CisgICAgICAgIHZhciBtZW1vcnlBbGxvY2F0b3JEdW1wcyA9IGNvbnRhaW5lckR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHM7CisgICAgICAgIGlmIChtZW1vcnlBbGxvY2F0b3JEdW1wcyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbWVtb3J5QWxsb2NhdG9yRHVtcHMuZm9yRWFjaChmbiwgdGhpcyk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogVHJhdmVyc2UgdGhlIG1lbW9yeSBkdW1wIGdyYXBoIGluIGEgZGVwdGggZmlyc3QgcG9zdC1vcmRlciwgaS5lLgorICAgICAqIGNoaWxkcmVuIGFuZCBvd25lcnMgb2YgYSBtZW1vcnkgYWxsb2NhdG9yIGR1bXAgYXJlIHZpc2l0ZWQgYmVmb3JlIHRoZQorICAgICAqIGR1bXAgaXRzZWxmLiBUaGlzIG1ldGhvZCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0aGUgZ3JhcGggY29udGFpbnMKKyAgICAgKiBhIGN5Y2xlLgorICAgICAqLworICAgIHRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQb3N0T3JkZXI6IGZ1bmN0aW9uKGZuKSB7CisgICAgICB2YXIgdmlzaXRlZER1bXBzID0gbmV3IFdlYWtTZXQoKTsKKyAgICAgIHZhciBvcGVuRHVtcHMgPSBuZXcgV2Vha1NldCgpOworCisgICAgICBmdW5jdGlvbiB2aXNpdChkdW1wKSB7CisgICAgICAgIGlmICh2aXNpdGVkRHVtcHMuaGFzKGR1bXApKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAob3BlbkR1bXBzLmhhcyhkdW1wKSkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZHVtcC51c2VyRnJpZW5kbHlOYW1lICsgJyBjb250YWlucyBhIGN5Y2xlJyk7CisgICAgICAgIG9wZW5EdW1wcy5hZGQoZHVtcCk7CisKKyAgICAgICAgLy8gVmlzaXQgb3duZXJzIGJlZm9yZSB0aGUgZHVtcHMgdGhleSBvd24uCisgICAgICAgIGR1bXAub3duZWRCeS5mb3JFYWNoKGZ1bmN0aW9uKG93bmVyc2hpcExpbmspIHsKKyAgICAgICAgICB2aXNpdC5jYWxsKHRoaXMsIG93bmVyc2hpcExpbmsuc291cmNlKTsKKyAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAgLy8gVmlzaXQgY2hpbGRyZW4gYmVmb3JlIHBhcmVudHMuCisgICAgICAgIGR1bXAuY2hpbGRyZW4uZm9yRWFjaCh2aXNpdCwgdGhpcyk7CisKKyAgICAgICAgLy8gQWN0dWFsbHkgdmlzaXQgdGhlIGN1cnJlbnQgbWVtb3J5IGFsbG9jYXRvciBkdW1wLgorICAgICAgICBmbi5jYWxsKHRoaXMsIGR1bXApOworICAgICAgICB2aXNpdGVkRHVtcHMuYWRkKGR1bXApOworCisgICAgICAgIG9wZW5EdW1wcy5kZWxldGUoZHVtcCk7CisgICAgICB9CisKKyAgICAgIHRoaXMuaXRlcmF0ZVJvb3RBbGxvY2F0b3JEdW1wcyh2aXNpdCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFRyYXZlcnNlIHRoZSBtZW1vcnkgZHVtcCBncmFwaCBpbiBhIGRlcHRoIGZpcnN0IHByZS1vcmRlciwgaS5lLgorICAgICAqIGNoaWxkcmVuIGFuZCBvd25lcnMgb2YgYSBtZW1vcnkgYWxsb2NhdG9yIGR1bXAgYXJlIHZpc2l0ZWQgYWZ0ZXIgdGhlCisgICAgICogZHVtcCBpdHNlbGYuIFRoaXMgbWV0aG9kIHdpbGwgbm90IHZpc2l0IHNvbWUgZHVtcHMgaWYgdGhlIGdyYXBoIGNvbnRhaW5zCisgICAgICogYSBjeWNsZS4KKyAgICAgKi8KKyAgICB0cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0UHJlT3JkZXI6IGZ1bmN0aW9uKGZuKSB7CisgICAgICB2YXIgdmlzaXRlZER1bXBzID0gbmV3IFdlYWtTZXQoKTsKKworICAgICAgZnVuY3Rpb24gdmlzaXQoZHVtcCkgeworICAgICAgICBpZiAodmlzaXRlZER1bXBzLmhhcyhkdW1wKSkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gSWYgdGhpcyBkdW1wcyBvd25zIGFub3RoZXIgZHVtcCB3aGljaCBoYXNuJ3QgYmVlbiB2aXNpdGVkIHlldCwgdGhlbgorICAgICAgICAvLyB3YWl0IGZvciB0aGlzIGR1bXAgdG8gYmUgdmlzaXRlZCBsYXRlci4KKyAgICAgICAgaWYgKGR1bXAub3ducyAhPT0gdW5kZWZpbmVkICYmICF2aXNpdGVkRHVtcHMuaGFzKGR1bXAub3ducy50YXJnZXQpKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBJZiB0aGlzIGR1bXAncyBwYXJlbnQgaGFzbid0IGJlZW4gdmlzaXRlZCB5ZXQsIHRoZW4gd2FpdCBmb3IgdGhpcworICAgICAgICAvLyBkdW1wIHRvIGJlIHZpc2l0ZWQgbGF0ZXIuCisgICAgICAgIGlmIChkdW1wLnBhcmVudCAhPT0gdW5kZWZpbmVkICYmICF2aXNpdGVkRHVtcHMuaGFzKGR1bXAucGFyZW50KSkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gQWN0dWFsbHkgdmlzaXQgdGhlIGN1cnJlbnQgbWVtb3J5IGFsbG9jYXRvciBkdW1wLgorICAgICAgICBmbi5jYWxsKHRoaXMsIGR1bXApOworICAgICAgICB2aXNpdGVkRHVtcHMuYWRkKGR1bXApOworCisgICAgICAgIC8vIFZpc2l0IG93bmVycyBhZnRlciB0aGUgZHVtcHMgdGhleSBvd24uCisgICAgICAgIGR1bXAub3duZWRCeS5mb3JFYWNoKGZ1bmN0aW9uKG93bmVyc2hpcExpbmspIHsKKyAgICAgICAgICB2aXNpdC5jYWxsKHRoaXMsIG93bmVyc2hpcExpbmsuc291cmNlKTsKKyAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAgLy8gVmlzaXQgY2hpbGRyZW4gYWZ0ZXIgcGFyZW50cy4KKyAgICAgICAgZHVtcC5jaGlsZHJlbi5mb3JFYWNoKHZpc2l0LCB0aGlzKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5pdGVyYXRlUm9vdEFsbG9jYXRvckR1bXBzKHZpc2l0KTsKKyAgICB9CisgIH07CisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIEdsb2JhbE1lbW9yeUR1bXAsCisgICAgICB7CisgICAgICAgIG5hbWU6ICdnbG9iYWxNZW1vcnlEdW1wJywKKyAgICAgICAgcGx1cmFsTmFtZTogJ2dsb2JhbE1lbW9yeUR1bXBzJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1zaW5nbGUtZ2xvYmFsLW1lbW9yeS1kdW1wLXN1Yi12aWV3JywKKyAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLW11bHRpLWdsb2JhbC1tZW1vcnktZHVtcC1zdWItdmlldycKKyAgICAgIH0pOworCisgIHJldHVybiB7CisgICAgR2xvYmFsTWVtb3J5RHVtcDogR2xvYmFsTWVtb3J5RHVtcAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjkwMDZiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXBfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzMxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZ2xvYmFsX21lbW9yeV9kdW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIE1vZGVsID0gdHIuTW9kZWw7CisgIHZhciBHbG9iYWxNZW1vcnlEdW1wID0gdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcDsKKyAgdmFyIFByb2Nlc3NNZW1vcnlEdW1wID0gdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXA7CisgIHZhciBNZW1vcnlBbGxvY2F0b3JEdW1wID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcDsKKyAgdmFyIE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcExpbms7CisgIHZhciBTY2FsYXJBdHRyaWJ1dGUgPSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGU7CisgIHZhciBBdHRyaWJ1dGVJbmZvID0gdHIubW9kZWwuQXR0cmlidXRlSW5mbzsKKyAgdmFyIEF0dHJpYnV0ZUluZm9UeXBlID0gdHIubW9kZWwuQXR0cmlidXRlSW5mb1R5cGU7CisKKyAgdmFyIFNJWkVfREVMVEEgPSAwLjAwMDE7CisKKyAgZnVuY3Rpb24gYnVpbGRBcmdQdXNoZXIoYXJyYXkpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7IGFycmF5LnB1c2goYXJnKTsgfTsKKyAgfQorCisgIGZ1bmN0aW9uIGFzc2VydEVxdWFsVW5pcXVlTWVtYmVycyhhY3R1YWxBcnJheSwgZXhwZWN0ZWRBcnJheSkgeworICAgIGFzc2VydC5sZW5ndGhPZihhY3R1YWxBcnJheSwgZXhwZWN0ZWRBcnJheS5sZW5ndGgpOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhhY3R1YWxBcnJheSwgZXhwZWN0ZWRBcnJheSk7CisgIH0KKworICBmdW5jdGlvbiBhc3NlcnRVbmRlZmluZWRBdHRyaWJ1dGUoZHVtcCwgYXR0cmlidXRlTmFtZSkgeworICAgIHZhciBhdHRyaWJ1dGUgPSBkdW1wLmF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGF0dHJpYnV0ZSwgJ2V4cGVjdGVkIGF0dHJpYnV0ZSBcJycgKyBhdHRyaWJ1dGVOYW1lICsKKyAgICAgICAgJ1wnIG9mIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBcJycgKyBkdW1wLmZ1bGxOYW1lICsgJ1wnIGluICcgKworICAgICAgICBkdW1wLmNvbnRhaW5lck1lbW9yeUR1bXAudXNlckZyaWVuZGx5TmFtZSArICcgdG8gYmUgdW5kZWZpbmVkJyk7CisgIH0KKworICBmdW5jdGlvbiBhc3NlcnREZWZpbmVkQXR0cmlidXRlKGR1bXAsIGF0dHJpYnV0ZU5hbWUsIGV4cGVjdGVkVHlwZSwKKyAgICAgIGV4cGVjdGVkVW5pdHMsIGV4cGVjdGVkVmFsdWUsIGV4cGVjdGVkSW5mb3MsIG9wdF9kZWx0YSkgeworICAgIHZhciBhdHRyaWJ1dGUgPSBkdW1wLmF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07CisgICAgdmFyIGVycm9yTWVzc2FnZVByZWZpeCA9ICdleHBlY3RlZCBhdHRyaWJ1dGUgXCcnICsgYXR0cmlidXRlTmFtZSArCisgICAgICAgICdcJyBvZiBtZW1vcnkgYWxsb2NhdG9yIGR1bXAgXCcnICsgZHVtcC5mdWxsTmFtZSArICdcJyBpbiAnICsKKyAgICAgICAgZHVtcC5jb250YWluZXJNZW1vcnlEdW1wLnVzZXJGcmllbmRseU5hbWUgKyAnIHRvICc7CisKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihhdHRyaWJ1dGUsIGV4cGVjdGVkVHlwZSwKKyAgICAgICAgZXJyb3JNZXNzYWdlUHJlZml4ICsgJ2JlIGFuIGluc3RhbmNlIG9mICcgKyBleHBlY3RlZFR5cGUpOworICAgIGFzc2VydC5lcXVhbChhdHRyaWJ1dGUudW5pdHMsIGV4cGVjdGVkVW5pdHMsCisgICAgICAgIGVycm9yTWVzc2FnZVByZWZpeCArICdoYXZlIHVuaXRzIFwnJyArIGV4cGVjdGVkVW5pdHMgKyAnXCcgYnV0IGdvdCBcJycgKworICAgICAgICBhdHRyaWJ1dGUudW5pdHMgKyAnXCcnKTsKKworICAgIHZhciB2YWx1ZUVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZVByZWZpeCArICdoYXZlIHZhbHVlIFwnJyArCisgICAgICAgIGV4cGVjdGVkVmFsdWUgKyAnXCcgYnV0IGdvdCBcJycgKyBhdHRyaWJ1dGUudmFsdWUgKyAnXCcnOworICAgIGlmIChvcHRfZGVsdGEgIT09IHVuZGVmaW5lZCkgeworICAgICAgYXNzZXJ0LmNsb3NlVG8oCisgICAgICAgICAgYXR0cmlidXRlLnZhbHVlLCBleHBlY3RlZFZhbHVlLCBvcHRfZGVsdGEsIHZhbHVlRXJyb3JNZXNzYWdlKTsKKyAgICB9IGVsc2UgeworICAgICAgYXNzZXJ0LmVxdWFsKGF0dHJpYnV0ZS52YWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdmFsdWVFcnJvck1lc3NhZ2UpOworICAgIH0KKworICAgIGlmIChleHBlY3RlZEluZm9zID09PSB1bmRlZmluZWQpCisgICAgICBleHBlY3RlZEluZm9zID0gW107CisgICAgdmFyIGFjdHVhbEluZm9zID0gZHVtcC5hdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdLmluZm9zOworICAgIGFzc2VydC5sZW5ndGhPZihhY3R1YWxJbmZvcywgZXhwZWN0ZWRJbmZvcy5sZW5ndGgsCisgICAgICAgICdleHBlY3RlZCB0aGUgXCcnICsgYXR0cmlidXRlTmFtZSArICdcJyBhdHRyaWJ1dGUgb2YgJyArCisgICAgICAgICdtZW1vcnkgYWxsb2NhdG9yIGR1bXAgXCcnICsgZHVtcC5mdWxsTmFtZSArICdcJyBpbiAnICsKKyAgICAgICAgZHVtcC5jb250YWluZXJNZW1vcnlEdW1wLnVzZXJGcmllbmRseU5hbWUgKyAnIHRvIGhhdmUgJyArCisgICAgICAgIGV4cGVjdGVkSW5mb3MubGVuZ3RoICsgJyBpbmZvcyBidXQgZ290ICcgKyBhY3R1YWxJbmZvcy5sZW5ndGgpOworICAgIGZvciAodmFyIGsgPSAwOyBrIDwgYWN0dWFsSW5mb3MubGVuZ3RoOyBrKyspIHsKKyAgICAgIHZhciBhY3R1YWxJbmZvID0gYWN0dWFsSW5mb3Nba107CisgICAgICB2YXIgZXhwZWN0ZWRJbmZvID0gZXhwZWN0ZWRJbmZvc1trXTsKKyAgICAgIGFzc2VydC5lcXVhbChhY3R1YWxJbmZvLnR5cGUsIGV4cGVjdGVkSW5mby50eXBlLAorICAgICAgICAgICdleHBlY3RlZCBpbmZvICcgKyBrICsgJyBvZiB0aGUgXCcnICsgYXR0cmlidXRlTmFtZSArICdcJyAnICsKKyAgICAgICAgICAnYXR0cmlidXRlIG9mIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBcJycgKyBkdW1wLmZ1bGxOYW1lICsgJ1wnIGluICcgKworICAgICAgICAgIGR1bXAuY29udGFpbmVyTWVtb3J5RHVtcC51c2VyRnJpZW5kbHlOYW1lICsgJyB0byBoYXZlIHR5cGUgJyArCisgICAgICAgICAgZXhwZWN0ZWRJbmZvLnR5cGUgKyAnIGJ1dCBnb3QgJyArIGFjdHVhbEluZm8udHlwZSk7CisgICAgICBhc3NlcnQubWF0Y2goYWN0dWFsSW5mby5tZXNzYWdlLCBleHBlY3RlZEluZm8ubWVzc2FnZSwKKyAgICAgICAgICAnaW52YWxpZCBtZXNzYWdlIG9mIGluZm8gJyArIGsgKyAnIG9mIHRoZSBcJycgKyBhdHRyaWJ1dGVOYW1lICsKKyAgICAgICAgICAnXCcgYXR0cmlidXRlIG9mIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBcJycgKyBkdW1wLmZ1bGxOYW1lICsKKyAgICAgICAgICAnXCcgaW4gJyArIGR1bXAuY29udGFpbmVyTWVtb3J5RHVtcC51c2VyRnJpZW5kbHlOYW1lKTsKKyAgICB9CisgIH0KKworICBmdW5jdGlvbiBhc3NlcnRTaXplQXR0cmlidXRlKGR1bXAsIHNpemVOYW1lLCBleHBlY3RlZFZhbHVlLCBleHBlY3RlZEluZm9zKSB7CisgICAgaWYgKGV4cGVjdGVkVmFsdWUgPT09IHVuZGVmaW5lZCkgeworICAgICAgYXNzZXJ0VW5kZWZpbmVkQXR0cmlidXRlKGR1bXAsIHNpemVOYW1lKTsKKyAgICAgIC8vIE5vIHNpemUgYXR0cmlidXRlIGluZm9zIHNob3VsZCBiZSBleHBlY3RlZCAodGVzdCBzYW5pdHkgY2hlY2spLgorICAgICAgYXNzZXJ0KGV4cGVjdGVkSW5mb3MgPT09IHVuZGVmaW5lZCB8fCBleHBlY3RlZEluZm9zLmxlbmd0aCA9PT0gMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIGFzc2VydERlZmluZWRBdHRyaWJ1dGUoZHVtcCwgc2l6ZU5hbWUsIFNjYWxhckF0dHJpYnV0ZSwgJ2J5dGVzJywKKyAgICAgICAgICBleHBlY3RlZFZhbHVlLCBleHBlY3RlZEluZm9zLCBTSVpFX0RFTFRBKTsKKyAgICB9CisgIH0KKworICBmdW5jdGlvbiBjcmVhdGVDb250YWluZXJEdW1wcyhwcm9jZXNzTWVtb3J5RHVtcENvdW50LCBvcHRfbW9kZWwpIHsKKyAgICB2YXIgbW9kZWwgPSBvcHRfbW9kZWwgfHwgbmV3IE1vZGVsKCk7CisgICAgdmFyIGdtZCA9IG5ldyBHbG9iYWxNZW1vcnlEdW1wKG1vZGVsLCAwKTsKKyAgICBtb2RlbC5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdtZCk7CisKKyAgICB2YXIgcG1kcyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvY2Vzc01lbW9yeUR1bXBDb3VudDsgaSsrKSB7CisgICAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcyhpKTsKKyAgICAgIHZhciBwbWQgPSBuZXcgUHJvY2Vzc01lbW9yeUR1bXAoZ21kLCBwcm9jZXNzLCAwKTsKKyAgICAgIGdtZC5wcm9jZXNzTWVtb3J5RHVtcHNbaV0gPSBwbWQ7CisgICAgICBwcm9jZXNzLm1lbW9yeUR1bXBzLnB1c2gocG1kKTsKKyAgICAgIHBtZHMucHVzaChwbWQpOworICAgIH0KKworICAgIHJldHVybiBbZ21kXS5jb25jYXQocG1kcyk7CisgIH0KKworICAvKioKKyAgICogQnVpbGQgY29udGFpbmVyIG1lbW9yeSBkdW1wcyBmcm9tIHRyZWUgcmVjaXBlcy4gVGhpcyBmdW5jdGlvbiByZXR1cm5zCisgICAqIGEgbGlzdCBjb250YWluaW5nIGEgZ2xvYmFsIG1lbW9yeSBkdW1wIGFuZCB6ZXJvIG9yIG1vcmUgcHJvY2VzcyBtZW1vcnkKKyAgICogZHVtcHMgY29uc3RydWN0ZWQgZnJvbSB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gYXJndW1lbnQgYXMgZm9sbG93czoKKyAgICoKKyAgICogICBhbGxUcmVlUmVjaXBlcyAoYXJndW1lbnQpOgorICAgKgorICAgKiAgICAgWworICAgKiAgICAgICBbdHJlZSByZWNpcGUgR0EsIHRyZWUgcmVjaXBlIEdCLCAuLi5dLAorICAgKiAgICAgICBbdHJlZSByZWNpcGUgUDFBLCB0cmVlIHJlY2lwZSBQMUIsIC4uLl0sCisgICAqICAgICAgIFt0cmVlIHJlY2lwZSBQMkEsIHRyZWUgcmVjaXBlIFAyQiAuLi5dLAorICAgKiAgICAgICAuLi4KKyAgICogICAgIF0KKyAgICoKKyAgICogICByZXR1cm4gdmFsdWU6CisgICAqCisgICAqICAgICBbCisgICAqICAgICAgIEdsb2JhbE1lbW9yeUR1bXAgd2l0aCByb290IE1lbW9yeUFsbG9jYXRvckR1bXAocykgW0dBLCBHQiwgLi4uXSwKKyAgICogICAgICAgUHJvY2Vzc01lbW9yeUR1bXAgd2l0aCByb290IE1lbW9yeUFsbG9jYXRvckR1bXAocykgW1AxQSwgUDFCLCAuLi5dLAorICAgKiAgICAgICBQcm9jZXNzTWVtb3J5RHVtcCB3aXRoIHJvb3QgTWVtb3J5QWxsb2NhdG9yRHVtcChzKSBbUDJBLCBQMkIsIC4uLl0sCisgICAqICAgICAgIC4uLgorICAgKiAgICAgXQorICAgKgorICAgKiB3aGVyZSBhIHRyZWUgcmVjaXBlIGlzIGFuIG9iamVjdCAoYSByZWN1cnNpdmUgZGF0YSBzdHJ1Y3R1cmUpIHdpdGggdGhlCisgICAqIGZvbGxvd2luZyBmaWVsZHM6CisgICAqCisgICAqICAgbmFtZTogTmFtZSBvZiB0aGUgcmVzdWx0aW5nIE1BRC4KKyAgICogICBndWlkOiBHVUlEIG9mIHRoZSByZXN1bHRpbmcgTUFEIChjYW4gYmUgdW5kZWZpbmVkKS4KKyAgICogICBvd25zOiBHVUlEIG9mIGFub3RoZXIgTUFEIG93bmVkIGJ5IHRoZSByZXN1bHRpbmcgTUFEIChubyBvd25lZCBNQUQgaWYKKyAgICogICAgICAgdW5kZWZpbmVkKS4KKyAgICogICBpbXBvcnRhbmNlOiBJbXBvcnRhbmNlIG9mIHRoZSBhYm92ZSBvd25lcnNoaXAgKGNhbiBiZSB1bmRlZmluZWQpLgorICAgKiAgIHNpemU6IFZhbHVlIG9mIHRoZSAnc2l6ZScgYXR0cmlidXRlIG9mIHRoZSByZXN1bHRpbmcgTUFEIChubyAnc2l6ZScKKyAgICogICAgICAgYXR0cmlidXRlIGlmIHVuZGVmaW5lZCkuCisgICAqICAgY2hpbGRyZW46IExpc3Qgb2YgdHJlZSByZWNpcGVzIGZvciBjaGlsZCBNQURzIChubyBjaGlsZHJlbiBpZiB1bmRlZmluZWQpLgorICAgKiAgIHNraXBfYnVpbGQ6IElmIHRoaXMgb3B0aW9uYWwgcHJvcGVydHkgaXMgc2V0IHRvIHRydWUsIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgKiAgICAgICBza2lwIHRoZSBjb3JyZXNwb25kaW5nIHRyZWUgcmVjaXBlIG5vZGUgYW5kIHdpbGwgbm90IGNyZWF0ZSBhIE1BRAorICAgKiAgICAgICBmb3IgaXQgKG5vdCBhbGxvd2VkIGluIHJvb3QgcmVjaXBlcykuCisgICAqCisgICAqIE90aGVyIGZpZWxkcyAobW9zdCBpbXBvcnRhbnRseSAnZXhwZWN0ZWRfc2l6ZScpIG9mIGEgdHJlZSByZWNpcGUgYXJlCisgICAqIGlnbm9yZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICovCisgIGZ1bmN0aW9uIGJ1aWxkRHVtcFRyZWVzKGFsbFRyZWVSZWNpcGVzLCBvcHRfbW9kZWwpIHsKKyAgICBhc3NlcnQuaXNBYm92ZShhbGxUcmVlUmVjaXBlcy5sZW5ndGgsIDApOworCisgICAgdmFyIG93bmVyRHVtcHMgPSB7fTsgIC8vIG93bmVkIEdVSUQgLT4ge2R1bXA6IG93bmVyLCBpbXBvcnRhbmNlOiBvcHRpb25hbH0uCisgICAgdmFyIG93bmFibGVEdW1wcyA9IHt9OyAgLy8gb3duYWJsZSBHVUlEIC0+IG93bmFibGUgZHVtcC4KKworICAgIGZ1bmN0aW9uIGJ1aWxkQW5kQWRkRHVtcFRyZWVzKGNvbnRhaW5lckR1bXAsIHRyZWVSZWNpcGVzKSB7CisgICAgICBpZiAodHJlZVJlY2lwZXMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBmdW5jdGlvbiBidWlsZER1bXBUcmVlUmVjdXJzaXZlbHkodHJlZVJlY2lwZSwgbmFtZVByZWZpeCkgeworICAgICAgICB2YXIgc2tpcEJ1aWxkID0gdHJlZVJlY2lwZVsnc2tpcF9idWlsZCddOworICAgICAgICB2YXIgbmFtZSA9IHRyZWVSZWNpcGVbJ25hbWUnXTsKKyAgICAgICAgdmFyIGd1aWQgPSB0cmVlUmVjaXBlWydndWlkJ107CisgICAgICAgIHZhciBvd25zID0gdHJlZVJlY2lwZVsnb3ducyddOworICAgICAgICB2YXIgc2l6ZSA9IHRyZWVSZWNpcGVbJ3NpemUnXTsKKyAgICAgICAgdmFyIGltcG9ydGFuY2UgPSB0cmVlUmVjaXBlWydpbXBvcnRhbmNlJ107CisKKyAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHNraXBCdWlsZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5pc0RlZmluZWQobmFtZSk7CisKKyAgICAgICAgdmFyIGZ1bGxOYW1lID0gbmFtZVByZWZpeCArIG5hbWU7CisgICAgICAgIHZhciBkdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoY29udGFpbmVyRHVtcCwgZnVsbE5hbWUsIGd1aWQpOworCisgICAgICAgIGlmIChzaXplICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgZHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIHNpemUpKTsKKyAgICAgICAgaWYgKGd1aWQgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGFzc2VydC5ub3RQcm9wZXJ0eShndWlkLCBvd25hYmxlRHVtcHMpOworICAgICAgICAgIG93bmFibGVEdW1wc1tndWlkXSA9IGR1bXA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG93bnMgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGlmICghKG93bnMgaW4gb3duZXJEdW1wcykpCisgICAgICAgICAgICBvd25lckR1bXBzW293bnNdID0gW107CisgICAgICAgICAgb3duZXJEdW1wc1tvd25zXS5wdXNoKHtkdW1wOiBkdW1wLCBpbXBvcnRhbmNlOiBpbXBvcnRhbmNlfSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodHJlZVJlY2lwZS5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdHJlZVJlY2lwZS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkVHJlZVJlY2lwZSkgeworICAgICAgICAgICAgLy8gVmlydHVhbCBjaGlsZHJlbiBhcmUgYWRkZWQgZHVyaW5nIHNpemUgY2FsY3VsYXRpb24uCisgICAgICAgICAgICBpZiAoY2hpbGRUcmVlUmVjaXBlWydza2lwX2J1aWxkJ10gPT09IHRydWUpCisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHZhciBjaGlsZER1bXAgPQorICAgICAgICAgICAgICAgIGJ1aWxkRHVtcFRyZWVSZWN1cnNpdmVseShjaGlsZFRyZWVSZWNpcGUsIGZ1bGxOYW1lICsgJy8nKTsKKyAgICAgICAgICAgIGNoaWxkRHVtcC5wYXJlbnQgPSBkdW1wOworICAgICAgICAgICAgZHVtcC5jaGlsZHJlbi5wdXNoKGNoaWxkRHVtcCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZHVtcDsKKyAgICAgIH0KKworICAgICAgdmFyIG1lbW9yeUFsbG9jYXRvckR1bXBzID0gdHJlZVJlY2lwZXMubWFwKGZ1bmN0aW9uKHRyZWVSZWNpcGUpIHsKKyAgICAgICAgcmV0dXJuIGJ1aWxkRHVtcFRyZWVSZWN1cnNpdmVseSh0cmVlUmVjaXBlLCAnJyk7CisgICAgICB9KTsKKyAgICAgIGNvbnRhaW5lckR1bXAubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBtZW1vcnlBbGxvY2F0b3JEdW1wczsKKyAgICB9CisKKyAgICAvLyBSZWN1cnNpdmVseSBidWlsZCBtZW1vcnkgYWxsb2NhdG9yIGR1bXAgdHJlZXMgZm9yIGFsbCBjb250YWluZXIgZHVtcHMuCisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gY3JlYXRlQ29udGFpbmVyRHVtcHMoCisgICAgICAgIGFsbFRyZWVSZWNpcGVzLmxlbmd0aCAtIDEsIG9wdF9tb2RlbCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxUcmVlUmVjaXBlcy5sZW5ndGg7IGkrKykKKyAgICAgIGJ1aWxkQW5kQWRkRHVtcFRyZWVzKGNvbnRhaW5lckR1bXBzW2ldLCBhbGxUcmVlUmVjaXBlc1tpXSk7CisKKyAgICAvLyBIb29rIHVwIG93bmVyc2hpcCBsaW5rcy4KKyAgICB0ci5iLml0ZXJJdGVtcyhvd25lckR1bXBzLCBmdW5jdGlvbihvd25lZEd1aWQsIG93bmVyc2hpcEluZm9zKSB7CisgICAgICB2YXIgb3duZWREdW1wID0gb3duYWJsZUR1bXBzW293bmVkR3VpZF07CisgICAgICBhc3NlcnQuaXNEZWZpbmVkKG93bmVkRHVtcCwgJ1RyZWUgcmVjaXBlcyBkb25cJ3QgY29udGFpbiBhIG1lbW9yeSAnICsKKyAgICAgICAgICAnYWxsb2NhdG9yIGR1bXAgd2l0aCBndWlkIFwnJyArIG93bmVkR3VpZCArICdcJycpOworCisgICAgICBvd25lcnNoaXBJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKG93bmVyc2hpcEluZm8pIHsKKyAgICAgICAgdmFyIG93bmVyRHVtcCA9IG93bmVyc2hpcEluZm8uZHVtcDsKKyAgICAgICAgdmFyIG93bmVyc2hpcExpbmsgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcExpbmsoCisgICAgICAgICAgICBvd25lckR1bXAsIG93bmVkRHVtcCwgb3duZXJzaGlwSW5mby5pbXBvcnRhbmNlKTsKKyAgICAgICAgb3duZXJEdW1wLm93bnMgPSBvd25lcnNoaXBMaW5rOworICAgICAgICBvd25lZER1bXAub3duZWRCeS5wdXNoKG93bmVyc2hpcExpbmspOworICAgICAgfSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gY29udGFpbmVyRHVtcHM7CisgIH0KKworICAvLyBDaGVjayB0aGF0IHRoZSBidWlsZER1bXBUcmVlcyB0ZXN0aW5nIGhlbHBlciBtZXRob2QgYWJvdmUgYnVpbGRzIGEKKyAgLy8gaGllcmFyY2h5IG9mIGNvbnRhaW5lciBhbmQgbWVtb3J5IGFsbG9jYXRvciBkdW1wcyBmcm9tIHRyZWUgcmVjaXBlcworICAvLyBjb3JyZWN0bHkuCisgIHRlc3QoJ3Rlc3RTYW5pdHlDaGVja19idWlsZER1bXBUcmVlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250YWluZXJEdW1wcyA9IGJ1aWxkRHVtcFRyZWVzKFsKKyAgICAgIFsgIC8vIEdNRC4KKyAgICAgICAgeworICAgICAgICAgICduYW1lJzogJ2dsb2JhbFNoYXJlZER1bXAxJywKKyAgICAgICAgICAnc2l6ZSc6IDEyMworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgJ25hbWUnOiAnZ2xvYmFsU2hhcmVkRHVtcDInLAorICAgICAgICAgICdzdWJzeXN0ZW1fc2l6ZSc6IDk5OSwKKyAgICAgICAgICAnb3ducyc6IDcsCisgICAgICAgICAgJ2ltcG9ydGFuY2UnOiAtMQorICAgICAgICB9CisgICAgICBdLAorICAgICAgdW5kZWZpbmVkLCAgLy8gUE1EMS4KKyAgICAgIFsgIC8vIFBNRDIuCisgICAgICAgIHsKKyAgICAgICAgICAnbmFtZSc6ICd2OCcsCisgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAnbmFtZSc6ICdpc29sYXRlMScsCisgICAgICAgICAgICAgICdndWlkJzogNworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJ25hbWUnOiAnaXNvbGF0ZTInLAorICAgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICduYW1lJzogJ2lzb2xhdGUzJywKKyAgICAgICAgICAgICAgJ3NpemUnOiA1NCwKKyAgICAgICAgICAgICAgJ2d1aWQnOiA2MCwKKyAgICAgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICduYW1lJzogJ29iajEnLAorICAgICAgICAgICAgICAgICAgJ3NpemUnOiA4OSwKKyAgICAgICAgICAgICAgICAgICdndWlkJzogMworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnb2JqMicsCisgICAgICAgICAgICAgICAgICAnb3ducyc6IDMKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICduYW1lJzogJ29iajMnLAorICAgICAgICAgICAgICAgICAgJ293bnMnOiAzLAorICAgICAgICAgICAgICAgICAgJ2ltcG9ydGFuY2UnOiAyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9CisgICAgICAgICAgXQorICAgICAgICB9CisgICAgICBdCisgICAgXSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGNvbnRhaW5lckR1bXBzLCAzKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisgICAgdmFyIHBtZDEgPSBjb250YWluZXJEdW1wc1sxXTsKKyAgICB2YXIgcG1kMiA9IGNvbnRhaW5lckR1bXBzWzJdOworCisgICAgZnVuY3Rpb24gY2hlY2tEdW1wKGR1bXAsIGV4cGVjdGVkR3VpZCwgZXhwZWN0ZWRGdWxsTmFtZSwgZXhwZWN0ZWRQYXJlbnQsCisgICAgICAgIGV4cGVjdGVkQ2hpbGRyZW5Db3VudCwgZXhwZWN0ZWRTaXplLCBleHBlY3RlZElzT3duZXIsCisgICAgICAgIGV4cGVjdGVkT3duZXJzQ291bnQsIGV4cGVjdGVkQ29udGFpbmVyRHVtcCkgeworICAgICAgYXNzZXJ0LmlzRGVmaW5lZChkdW1wKTsKKyAgICAgIGFzc2VydC5pbnN0YW5jZU9mKGR1bXAsIE1lbW9yeUFsbG9jYXRvckR1bXApOworICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGR1bXAuZ3VpZCwgZXhwZWN0ZWRHdWlkKTsKKyAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkdW1wLmZ1bGxOYW1lLCBleHBlY3RlZEZ1bGxOYW1lKTsKKyAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkdW1wLnBhcmVudCwgZXhwZWN0ZWRQYXJlbnQpOworICAgICAgYXNzZXJ0Lmxlbmd0aE9mKGR1bXAuY2hpbGRyZW4sIGV4cGVjdGVkQ2hpbGRyZW5Db3VudCk7CisKKyAgICAgIGFzc2VydFNpemVBdHRyaWJ1dGUoZHVtcCwgJ3NpemUnLCBleHBlY3RlZFNpemUpOworICAgICAgYXNzZXJ0U2l6ZUF0dHJpYnV0ZShkdW1wLCAnc3Vic3lzdGVtX3NpemUnLCB1bmRlZmluZWQpOworCisgICAgICBpZiAoZXhwZWN0ZWRJc093bmVyKQorICAgICAgICBhc3NlcnQuaXNEZWZpbmVkKGR1bXAub3ducyk7CisgICAgICBlbHNlCisgICAgICAgIGFzc2VydC5pc1VuZGVmaW5lZChkdW1wLm93bnMpOworICAgICAgYXNzZXJ0Lmxlbmd0aE9mKGR1bXAub3duZWRCeSwgZXhwZWN0ZWRPd25lcnNDb3VudCk7CisKKyAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkdW1wLmNvbnRhaW5lck1lbW9yeUR1bXAsIGV4cGVjdGVkQ29udGFpbmVyRHVtcCk7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZXhwZWN0ZWRDb250YWluZXJEdW1wLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKAorICAgICAgICAgIGV4cGVjdGVkRnVsbE5hbWUpLCBkdW1wKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja093bmVyc2hpcExpbmsoZXhwZWN0ZWRTb3VyY2VEdW1wLCBleHBlY3RlZFRhcmdldER1bXAsCisgICAgICAgIGV4cGVjdGVkSW1wb3J0YW5jZSkgeworICAgICAgdmFyIGxpbmsgPSBleHBlY3RlZFNvdXJjZUR1bXAub3duczsKKyAgICAgIGFzc2VydC5pc0RlZmluZWQobGluayk7CisgICAgICBhc3NlcnQuaW5zdGFuY2VPZihsaW5rLCBNZW1vcnlBbGxvY2F0b3JEdW1wTGluayk7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGluay5zb3VyY2UsIGV4cGVjdGVkU291cmNlRHVtcCk7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGluay50YXJnZXQsIGV4cGVjdGVkVGFyZ2V0RHVtcCk7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGluay5pbXBvcnRhbmNlLCBleHBlY3RlZEltcG9ydGFuY2UpOworICAgICAgYXNzZXJ0LmluY2x1ZGUoZXhwZWN0ZWRUYXJnZXREdW1wLm93bmVkQnksIGxpbmspOworICAgIH0KKworICAgIC8vIEdNRCBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgorICAgIGFzc2VydC5sZW5ndGhPZihnbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMsIDIpOworICAgIHZhciBnbG9iYWxTaGFyZWREdW1wMSA9IGdtZC5tZW1vcnlBbGxvY2F0b3JEdW1wc1swXTsKKyAgICBjaGVja0R1bXAoZ2xvYmFsU2hhcmVkRHVtcDEsIHVuZGVmaW5lZCwgJ2dsb2JhbFNoYXJlZER1bXAxJywgdW5kZWZpbmVkLCAwLAorICAgICAgICAxMjMsIGZhbHNlLCAwLCBnbWQpOworICAgIHZhciBnbG9iYWxTaGFyZWREdW1wMiA9IGdtZC5tZW1vcnlBbGxvY2F0b3JEdW1wc1sxXTsKKyAgICBjaGVja0R1bXAoZ2xvYmFsU2hhcmVkRHVtcDIsIHVuZGVmaW5lZCwgJ2dsb2JhbFNoYXJlZER1bXAyJywgdW5kZWZpbmVkLCAwLAorICAgICAgICB1bmRlZmluZWQsIHRydWUsIDAsIGdtZCk7CisKKyAgICAvLyBQTUQxIG1lbW9yeSBhbGxvY2F0b3IgZHVtcHMuCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBtZDEubWVtb3J5QWxsb2NhdG9yRHVtcHMpOworCisgICAgLy8gUE1EMiBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgorICAgIGFzc2VydC5sZW5ndGhPZihwbWQyLm1lbW9yeUFsbG9jYXRvckR1bXBzLCAxKTsKKyAgICB2YXIgdjhEdW1wID0gcG1kMi5tZW1vcnlBbGxvY2F0b3JEdW1wc1swXTsKKyAgICBjaGVja0R1bXAodjhEdW1wLCB1bmRlZmluZWQsICd2OCcsIHVuZGVmaW5lZCwgMiwgdW5kZWZpbmVkLCBmYWxzZSwgMCwKKyAgICAgICAgcG1kMik7CisgICAgdmFyIGlzb2xhdGUxRHVtcCA9IHY4RHVtcC5jaGlsZHJlblswXTsKKyAgICBjaGVja0R1bXAoaXNvbGF0ZTFEdW1wLCA3LCAndjgvaXNvbGF0ZTEnLCB2OER1bXAsIDAsIHVuZGVmaW5lZCwgZmFsc2UsIDEsCisgICAgICAgIHBtZDIpOworICAgIHZhciBpc29sYXRlM0R1bXAgPSB2OER1bXAuY2hpbGRyZW5bMV07CisgICAgY2hlY2tEdW1wKGlzb2xhdGUzRHVtcCwgNjAsICd2OC9pc29sYXRlMycsIHY4RHVtcCwgMywgNTQsIGZhbHNlLCAwLCBwbWQyKTsKKyAgICB2YXIgb2JqMUR1bXAgPSBpc29sYXRlM0R1bXAuY2hpbGRyZW5bMF07CisgICAgY2hlY2tEdW1wKG9iajFEdW1wLCAzLCAndjgvaXNvbGF0ZTMvb2JqMScsIGlzb2xhdGUzRHVtcCwgMCwgODksIGZhbHNlLCAyLAorICAgICAgICBwbWQyKTsKKyAgICB2YXIgb2JqMkR1bXAgPSBpc29sYXRlM0R1bXAuY2hpbGRyZW5bMV07CisgICAgY2hlY2tEdW1wKG9iajJEdW1wLCB1bmRlZmluZWQsICd2OC9pc29sYXRlMy9vYmoyJywgaXNvbGF0ZTNEdW1wLCAwLAorICAgICAgICB1bmRlZmluZWQsIHRydWUsIDAsIHBtZDIpOworICAgIHZhciBvYmozRHVtcCA9IGlzb2xhdGUzRHVtcC5jaGlsZHJlblsyXTsKKyAgICBjaGVja0R1bXAob2JqM0R1bXAsIHVuZGVmaW5lZCwgJ3Y4L2lzb2xhdGUzL29iajMnLCBpc29sYXRlM0R1bXAsIDAsCisgICAgICAgIHVuZGVmaW5lZCwgdHJ1ZSwgMCwgcG1kMik7CisKKyAgICAvLyBPd25lcnNoaXAgbGlua3MuCisgICAgY2hlY2tPd25lcnNoaXBMaW5rKGdsb2JhbFNoYXJlZER1bXAyLCBpc29sYXRlMUR1bXAsIC0xKTsKKyAgICBjaGVja093bmVyc2hpcExpbmsob2JqMkR1bXAsIG9iajFEdW1wLCB1bmRlZmluZWQpOworICAgIGNoZWNrT3duZXJzaGlwTGluayhvYmozRHVtcCwgb2JqMUR1bXAsIDIpOworICB9KTsKKworICAvKioKKyAgICogQ2hlY2sgdGhhdCBjb250YWluZXIgbWVtb3J5IGR1bXBzIGhhdmUgdGhlIGV4cGVjdGVkIHN0cnVjdHVyZSB3aXRoIHNpemVzCisgICAqIGFzIGRlc2NyaWJlZCBieSB0cmVlIHJlY2lwZXMuIFRoZSBmaWVsZHMgb2YgYSB0cmVlIHJlY2lwZSBhcmUgdXNlZCBieSB0aGlzCisgICAqIGZ1bmN0aW9uIHRvIGNoZWNrIHRoZSBwcm9wZXJ0aWVzIG9mIGEgTWVtb3J5QWxsb2NhdG9yRHVtcCBhcyBmb2xsb3dzIChzZWUKKyAgICogdGhlIGJ1aWxkRHVtcFRyZWVzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBhYm91dCB0aGUgc3RydWN0dXJlIG9mCisgICAqIHRyZWUgcmVjaXBlcyk6CisgICAqCisgICAqICAgbmFtZTogRXhwZWN0ZWQgbmFtZSBvZiB0aGUgTUFELgorICAgKiAgIGV4cGVjdGVkX3NpemU6IEV4cGVjdGVkIHZhbHVlIG9mIHRoZSAnc2l6ZScgYXR0cmlidXRlIG9mIHRoZSBNQUQgKG5vCisgICAqICAgICAgICdzaXplJyBhdHRyaWJ1dGUgZXhwZWN0ZWQgaWYgdW5kZWZpbmVkKS4KKyAgICogICBleHBlY3RlZF9zaXplX2luZm9zOiBMaXN0IG9mIGV4cGVjdGVkICdzaXplJyBhdHRyaWJ1dGUgaW5mb3MgKHplcm8gaW5mb3MKKyAgICogICAgICAgZXhwZWN0ZWQgaWYgdW5kZWZpbmVkKS4gVGhlIGl0ZW1zIGluIHRoZSBsaXN0IGFyZSBvYmplY3Qgd2l0aCB0d28KKyAgICogICAgICAgZmllbGRzOiAndHlwZScgKGV4cGVjdGVkIHZhbHVlIG9mIHRoZSBpbmZvIHR5cGUpLCBhbmQgJ21lc3NhZ2UnCisgICAqICAgICAgIChyZWd1bGFyIGV4cHJlc3Npb24gb3ZlciB0aGUgaW5mbyBtZXNzYWdlKS4KKyAgICogICBleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZTogRXhwZWN0ZWQgdmFsdWUgb2YgdGhlICdlZmZlY3RpdmVfc2l6ZScKKyAgICogICAgICAgYXR0cmlidXRlIG9mIHRoZSBNQUQgKG5vICdlZmZlY3RpdmVfc2l6ZScgYXR0cmlidXRlIGV4cGVjdGVkIGlmCisgICAqICAgICAgIHVuZGVmaW5lZCkuCisgICAqICAgZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3M6IExpc3Qgb2YgZXhwZWN0ZWQgJ2VmZmVjdGl2ZV9zaXplJworICAgKiAgICAgICBhdHRyaWJ1dGUgaW5mb3MgKHplcm8gaW5mb3MgZXhwZWN0ZWQgaWYgdW5kZWZpbmVkKS4gVGhlIGl0ZW1zIGluIHRoZQorICAgKiAgICAgICBsaXN0IGFyZSBvYmplY3Qgd2l0aCB0d28gZmllbGRzOiAndHlwZScgKGV4cGVjdGVkIHZhbHVlIG9mIHRoZSBpbmZvCisgICAqICAgICAgIHR5cGUpLCBhbmQgJ21lc3NhZ2UnIChyZWd1bGFyIGV4cHJlc3Npb24gb3ZlciB0aGUgaW5mbyBtZXNzYWdlKS4KKyAgICogICBjaGlsZHJlbjogTGlzdCBvZiB0cmVlIHJlY2lwZXMgZm9yIGNoaWxkIE1BRHMgKG5vIGNoaWxkcmVuIGV4cGVjdGVkIGlmCisgICAqICAgICAgIHVuZGVmaW5lZCkuCisgICAqCisgICAqIE90aGVyIGZpZWxkcyBvZiBhIHRyZWUgcmVjaXBlIChpbmNsdWRpbmcgJ3NraXBfYnVpbGQnKSBhcmUgaWdub3JlZCBieSB0aGlzCisgICAqIGZ1bmN0aW9uLgorICAgKi8KKyAgZnVuY3Rpb24gY2hlY2tEdW1wVHJlZXMoY29udGFpbmVyRHVtcHMsIGFsbFRyZWVSZWNpcGVzKSB7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGNvbnRhaW5lckR1bXBzLCBhbGxUcmVlUmVjaXBlcy5sZW5ndGgpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250YWluZXJEdW1wcy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIGNvbnRhaW5lckR1bXAgPSBjb250YWluZXJEdW1wc1tpXTsKKyAgICAgIHZhciB0cmVlUmVjaXBlcyA9IGFsbFRyZWVSZWNpcGVzW2ldOworCisgICAgICB2YXIgbWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBjb250YWluZXJEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzOworICAgICAgaWYgKHRyZWVSZWNpcGVzID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG1lbW9yeUFsbG9jYXRvckR1bXBzLAorICAgICAgICAgICAgJ2V4cGVjdGVkIHVuZGVmaW5lZCBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzIGluICcgKworICAgICAgICAgICAgY29udGFpbmVyRHVtcC51c2VyRnJpZW5kbHlOYW1lKTsKKyAgICAgICAgY29udGludWU7CisgICAgICB9CisKKyAgICAgIGFzc2VydC5pc0RlZmluZWQobWVtb3J5QWxsb2NhdG9yRHVtcHMsCisgICAgICAgICAgJ2V4cGVjdGVkIGRlZmluZWQgbWVtb3J5IGFsbG9jYXRvciBkdW1wcyBpbiAnICsKKyAgICAgICAgICBjb250YWluZXJEdW1wLnVzZXJGcmllbmRseU5hbWUpOworICAgICAgYXNzZXJ0Lmxlbmd0aE9mKG1lbW9yeUFsbG9jYXRvckR1bXBzLCB0cmVlUmVjaXBlcy5sZW5ndGgsCisgICAgICAgICAgJ2V4cGVjdGVkICcgKyB0cmVlUmVjaXBlcy5sZW5ndGggKyAnIHJvb3QgbWVtb3J5IGFsbG9jYXRvciBkdW1wcyAnICsKKyAgICAgICAgICAnYnV0IGdvdCAnICsgbWVtb3J5QWxsb2NhdG9yRHVtcHMubGVuZ3RoICsgJyBpbiAnICsKKyAgICAgICAgICBjb250YWluZXJEdW1wLnVzZXJGcmllbmRseU5hbWUpOworCisgICAgICBmdW5jdGlvbiBjaGVja0R1bXBUcmVlKGR1bXAsIHRyZWVSZWNpcGUsIGV4cGVjdGVkUGFyZW50LCBuYW1lUHJlZml4KSB7CisgICAgICAgIC8vIENoZWNrIGZ1bGwgbmFtZSwgcGFyZW50LCBhbmQgY29udGFpbmVyIGR1bXAuCisgICAgICAgIHZhciBleHBlY3RlZEZ1bGxOYW1lID0gbmFtZVByZWZpeCArIHRyZWVSZWNpcGVbJ25hbWUnXTsKKyAgICAgICAgdmFyIGVycm9yTWVzc2FnZVByZWZpeCA9ICdtZW1vcnkgYWxsb2NhdG9yIGR1bXAgXCcnICsgZHVtcC5mdWxsTmFtZSArCisgICAgICAgICAgICAnXCcgaW4gJyArIGR1bXAuY29udGFpbmVyTWVtb3J5RHVtcC51c2VyRnJpZW5kbHlOYW1lICsgJyAnOworCisgICAgICAgIGFzc2VydC5lcXVhbChkdW1wLmZ1bGxOYW1lLCBleHBlY3RlZEZ1bGxOYW1lLAorICAgICAgICAgICAgZXJyb3JNZXNzYWdlUHJlZml4ICsgJ2hhcyBpbnZhbGlkIGZ1bGwgbmFtZScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZHVtcC5wYXJlbnQsIGV4cGVjdGVkUGFyZW50LAorICAgICAgICAgICAgZXJyb3JNZXNzYWdlUHJlZml4ICsgJ2hhcyBpbnZhbGlkIHBhcmVudCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZHVtcC5jb250YWluZXJNZW1vcnlEdW1wLCBjb250YWluZXJEdW1wLAorICAgICAgICAgICAgZXJyb3JNZXNzYWdlUHJlZml4ICsgJ2hhcyBpbnZhbGlkIGNvbnRhaW5lciBtZW1vcnkgZHVtcCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udGFpbmVyRHVtcC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKKyAgICAgICAgICAgIGV4cGVjdGVkRnVsbE5hbWUpLCBkdW1wLCBlcnJvck1lc3NhZ2VQcmVmaXggKworICAgICAgICAgICAgJ2lzIG5vdCBpbmRleGVkIGluIGl0cyBjb250YWluZXIgbWVtb3J5IGR1bXAnKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0ICdzaXplJyB3YXMgY2FsY3VsYXRlZCBjb3JyZWN0bHkuCisgICAgICAgIGFzc2VydFNpemVBdHRyaWJ1dGUoZHVtcCwgJ3NpemUnLCB0cmVlUmVjaXBlWydleHBlY3RlZF9zaXplJ10sCisgICAgICAgICAgICB0cmVlUmVjaXBlWydleHBlY3RlZF9zaXplX2luZm9zJ10pOworCisgICAgICAgIC8vIENoZWNrIHRoYXQgJ2VmZmVjdGl2ZV9zaXplJyB3YXMgY2FsY3VsYXRlZCBjb3JyZWN0bHkuCisgICAgICAgIGFzc2VydFNpemVBdHRyaWJ1dGUoZHVtcCwgJ2VmZmVjdGl2ZV9zaXplJywKKyAgICAgICAgICAgIHRyZWVSZWNpcGVbJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJ10sCisgICAgICAgICAgICB0cmVlUmVjaXBlWydleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyddKTsKKworICAgICAgICAvLyBDaGVjayBjaGlsZHJlbiByZWN1cnNpdmVseS4KKyAgICAgICAgdmFyIGFjdHVhbENoaWxkcmVuID0gZHVtcC5jaGlsZHJlbjsKKyAgICAgICAgdmFyIGV4cGVjdGVkQ2hpbGRyZW4gPSB0cmVlUmVjaXBlLmNoaWxkcmVuIHx8IFtdOworICAgICAgICBhc3NlcnQubGVuZ3RoT2YoYWN0dWFsQ2hpbGRyZW4sIGV4cGVjdGVkQ2hpbGRyZW4ubGVuZ3RoLAorICAgICAgICAgICAgJ2V4cGVjdGVkIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBcJycgKyBkdW1wLmZ1bGxOYW1lICsgJ1wnIGluICcgKworICAgICAgICAgICAgZHVtcC5jb250YWluZXJNZW1vcnlEdW1wLnVzZXJGcmllbmRseU5hbWUgKyAnIHRvIGhhdmUgJyArCisgICAgICAgICAgICBleHBlY3RlZENoaWxkcmVuLmxlbmd0aCArICcgY2hpbGRyZW4gYnV0IGdvdCAnICsKKyAgICAgICAgICAgIGFjdHVhbENoaWxkcmVuLmxlbmd0aCk7CisgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgYWN0dWFsQ2hpbGRyZW4ubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICBjaGVja0R1bXBUcmVlKGFjdHVhbENoaWxkcmVuW2tdLCBleHBlY3RlZENoaWxkcmVuW2tdLCBkdW1wLAorICAgICAgICAgICAgICBleHBlY3RlZEZ1bGxOYW1lICsgJy8nKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG1lbW9yeUFsbG9jYXRvckR1bXBzLmxlbmd0aDsgaisrKQorICAgICAgICBjaGVja0R1bXBUcmVlKG1lbW9yeUFsbG9jYXRvckR1bXBzW2pdLCB0cmVlUmVjaXBlc1tqXSwgdW5kZWZpbmVkLCAnJyk7CisgICAgfQorICB9CisKKyAgZnVuY3Rpb24gZ2VuZXJpY0luZm8odHlwZSwgcmVnZXgpIHsKKyAgICByZXR1cm4ge3R5cGU6IHR5cGUsIG1lc3NhZ2U6IHJlZ2V4fTsKKyAgfQorCisgIGZ1bmN0aW9uIGluZm9ybWF0aW9uSW5mbyhyZWdleCkgeworICAgIHJldHVybiBnZW5lcmljSW5mbyhBdHRyaWJ1dGVJbmZvVHlwZS5JTkZPUk1BVElPTiwgcmVnZXgpOworICB9CisKKyAgZnVuY3Rpb24gd2FybmluZ0luZm8ocmVnZXgpIHsKKyAgICByZXR1cm4gZ2VuZXJpY0luZm8oQXR0cmlidXRlSW5mb1R5cGUuV0FSTklORywgcmVnZXgpOworICB9CisKKyAgZnVuY3Rpb24gb3duZXJzaGlwSW5mbyh0eXBlLCBwcmVmaXgsIGVudHJpZXMpIHsKKyAgICBhc3NlcnQoZW50cmllcy5sZW5ndGggJSAzID09PSAwKTsgIC8vIFRlc3Qgc2FuaXR5IGNoZWNrLgorCisgICAgdmFyIHJlZ0V4cFN0cmluZyA9ICdcXGInICsgcHJlZml4ICsgJ1xcYic7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpICs9IDMpIHsKKyAgICAgIHJlZ0V4cFN0cmluZyArPSAnLipcJycgKyBlbnRyaWVzW2ldICsgJ1wnJzsKKyAgICAgIHJlZ0V4cFN0cmluZyArPSAnLipcXGInICsgZW50cmllc1tpICsgMV0gKyAnXFxiJzsKKyAgICAgIHJlZ0V4cFN0cmluZyArPSAnLipcXGJpbXBvcnRhbmNlICcgKyBlbnRyaWVzW2kgKyAyXSArICdcXGInOworICAgIH0KKworICAgIHJldHVybiBnZW5lcmljSW5mbyh0eXBlLCBuZXcgUmVnRXhwKHJlZ0V4cFN0cmluZykpOworICB9CisKKyAgZnVuY3Rpb24gb3duZXJJbmZvKC8qIGZ1bGxOYW1lMSwgY29udGFpbmVyTmFtZTEsIGltcG9ydGFuY2UxLCAuLi4gKi8pIHsKKyAgICByZXR1cm4gb3duZXJzaGlwSW5mbyhBdHRyaWJ1dGVJbmZvVHlwZS5NRU1PUllfT1dORVIsICdzaGFyZXMnLAorICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTsKKyAgfQorCisgIGZ1bmN0aW9uIG93bmVkSW5mbygvKiBmdWxsTmFtZTEsIGNvbnRhaW5lck5hbWUxLCBpbXBvcnRhbmNlMSwgLi4uICovKSB7CisgICAgcmV0dXJuIG93bmVyc2hpcEluZm8oQXR0cmlidXRlSW5mb1R5cGUuTUVNT1JZX09XTkVELCAnc2hhcmVkIGJ5JywKKyAgICAgICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7CisgIH0KKworICAvLyBDaGVjayB0aGF0IHRoZSBjaGVja0R1bXBUcmVlcyB0ZXN0aW5nIGhlbHBlciBtZXRob2QgYWJvdmUgYWN0dWFsbHkKKyAgLy8gcGVyZm9ybXMgdGhlIGV4cGVjdGVkIGNoZWNrcy4gU2luY2UgaXQgd2lsbCBiZSB1c2VkIGhlYXZpbHkgdGhyb3VnaG91dAorICAvLyB0aGlzIGZpbGUgKHdoZXJlIGl0IGlzIGV4cGVjdGVkIHRvIHBhc3MpLCB3ZSBvbmx5IG5lZWQgdG8gdmVyaWZ5IHRoYXQgaXQKKyAgLy8gZG9lcyBpbmRlZWQgZmFpbCBpbiBzZXZlcmFsIGNhc2VzIHdoZXJlIGl0IHNob3VsZC4KKyAgdGVzdCgndGVzdFNhbml0eUNoZWNrX2NoZWNrRHVtcFRyZWVzX2ludmFsaWROYW1lJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gY3JlYXRlQ29udGFpbmVyRHVtcHMoMCk7CisgICAgdmFyIGdtZCA9IGNvbnRhaW5lckR1bXBzWzBdOworICAgIHZhciB2OER1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChnbWQsICd2OCcpOworICAgIHZhciBoZWFwc0R1bXAgPQorICAgICAgICBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChnbWQsICdoZWFwcycpOyAgLy8gU2hvdWxkIGJlICd2OC9oZWFwcycuCisgICAgdjhEdW1wLmNoaWxkcmVuLnB1c2goaGVhcHNEdW1wKTsKKyAgICBoZWFwc0R1bXAucGFyZW50ID0gdjhEdW1wOworICAgIGdtZC5tZW1vcnlBbGxvY2F0b3JEdW1wcyA9IFt2OER1bXBdOworCisgICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbigpIHsKKyAgICAgIGNoZWNrRHVtcFRyZWVzKGNvbnRhaW5lckR1bXBzLCBbCisgICAgICAgIFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICd2OCcsCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdoZWFwcycKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgXSk7CisgICAgfSwgLydoZWFwcycuKmludmFsaWQgZnVsbCBuYW1lLyk7CisgIH0pOworCisgIHRlc3QoJ3Rlc3RTYW5pdHlDaGVja19jaGVja0R1bXBUcmVlc19pbnZhbGlkU3RydWN0dXJlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gY3JlYXRlQ29udGFpbmVyRHVtcHMoMCk7CisgICAgdmFyIGdtZCA9IGNvbnRhaW5lckR1bXBzWzBdOworICAgIHZhciByb290RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKGdtZCwgJ3Jvb3QnKTsKKyAgICB2YXIgY2hpbGQxRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKGdtZCwgJ3Jvb3QvY2hpbGQxJyk7CisgICAgcm9vdER1bXAuY2hpbGRyZW4ucHVzaChjaGlsZDFEdW1wKTsKKyAgICBjaGlsZDFEdW1wLnBhcmVudCA9IHJvb3REdW1wOworICAgIGdtZC5tZW1vcnlBbGxvY2F0b3JEdW1wcyA9IFtyb290RHVtcF07CisKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgeworICAgICAgY2hlY2tEdW1wVHJlZXMoY29udGFpbmVyRHVtcHMsIFsKKyAgICAgICAgWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3Jvb3QnLAorICAgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQxJworICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBjaGlsZCBpcyBub3QgcHJlc2VudCBpbiB0aGUgZHVtcC4KKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDInLAorICAgICAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICBdKTsKKyAgICB9LCAvZXhwZWN0ZWQuKlxiMlxiLipjaGlsZHJlbi4qZ290LipcYjFcYi8pOworICB9KTsKKworICB0ZXN0KCd0ZXN0U2FuaXR5Q2hlY2tfY2hlY2tEdW1wVHJlZXNfaW52YWxpZFBhcmVudExpbmsnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29udGFpbmVyRHVtcHMgPSBjcmVhdGVDb250YWluZXJEdW1wcygwKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisgICAgdmFyIHJvb3REdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoZ21kLCAncm9vdCcpOworICAgIHZhciBwYXJlbnREdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoZ21kLCAncm9vdC9wYXJlbnQnKTsKKyAgICByb290RHVtcC5jaGlsZHJlbi5wdXNoKHBhcmVudER1bXApOworICAgIHBhcmVudER1bXAucGFyZW50ID0gcm9vdER1bXA7CisgICAgdmFyIGNoaWxkRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKGdtZCwgJ3Jvb3QvcGFyZW50L2NoaWxkJyk7CisgICAgcGFyZW50RHVtcC5jaGlsZHJlbi5wdXNoKGNoaWxkRHVtcCk7CisgICAgY2hpbGREdW1wLnBhcmVudCA9IHJvb3REdW1wOyAgLy8gVGhpcyBzaG91bGQgY29ycmVjdGx5IGJlIHBhcmVudER1bXAuCisgICAgZ21kLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gW3Jvb3REdW1wXTsKKworICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICBjaGVja0R1bXBUcmVlcyhjb250YWluZXJEdW1wcywgWworICAgICAgICBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAncm9vdCcsCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdwYXJlbnQnLAorICAgICAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQnCisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICBdKTsKKyAgICB9LCAnaW52YWxpZCBwYXJlbnQnKTsKKyAgfSk7CisKKyAgdGVzdCgndGVzdFNhbml0eUNoZWNrX2NoZWNrRHVtcFRyZWVzX2ludmFsaWRTaXplJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gY3JlYXRlQ29udGFpbmVyRHVtcHMoMSk7CisgICAgdmFyIGdtZCA9IGNvbnRhaW5lckR1bXBzWzBdOworICAgIHZhciBwbWQgPSBjb250YWluZXJEdW1wc1sxXTsKKyAgICB2YXIgcm9vdER1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQsICdyb290Jyk7CisgICAgcm9vdER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAxMDApKTsKKyAgICB2YXIgcGFyZW50RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZCwgJ3Jvb3QvcGFyZW50Jyk7CisgICAgcGFyZW50RHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDQ5KSk7CisgICAgcm9vdER1bXAuY2hpbGRyZW4ucHVzaChwYXJlbnREdW1wKTsKKyAgICBwYXJlbnREdW1wLnBhcmVudCA9IHJvb3REdW1wOworICAgIHBtZC5tZW1vcnlBbGxvY2F0b3JEdW1wcyA9IFtyb290RHVtcF07CisKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgeworICAgICAgY2hlY2tEdW1wVHJlZXMoY29udGFpbmVyRHVtcHMsIFsKKyAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAncm9vdCcsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwMCwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ3BhcmVudCcsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA1MCAgLy8gVGhpcyBzaG91bGQgYmUgNDkuCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIF0pOworICAgIH0sIC9leHBlY3RlZC4qJ3NpemUnLip2YWx1ZS4qXGI1MFxiLipnb3QuKlxiNDlcYi8pOworICB9KTsKKworICB0ZXN0KCd0ZXN0U2FuaXR5Q2hlY2tfY2hlY2tEdW1wVHJlZXNfaW52YWxpZEVmZmVjdGl2ZVNpemUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29udGFpbmVyRHVtcHMgPSBjcmVhdGVDb250YWluZXJEdW1wcygxKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisgICAgdmFyIHBtZCA9IGNvbnRhaW5lckR1bXBzWzFdOworICAgIHZhciByb290RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZCwgJ3Jvb3QnKTsKKyAgICByb290RHVtcC5hZGRBdHRyaWJ1dGUoJ2VmZmVjdGl2ZV9zaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCA5OSkpOworICAgIHZhciBwYXJlbnREdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAocG1kLCAncm9vdC9wYXJlbnQnKTsKKyAgICBwYXJlbnREdW1wLmFkZEF0dHJpYnV0ZSgnZWZmZWN0aXZlX3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDUwKSk7CisgICAgcm9vdER1bXAuY2hpbGRyZW4ucHVzaChwYXJlbnREdW1wKTsKKyAgICBwYXJlbnREdW1wLnBhcmVudCA9IHJvb3REdW1wOworICAgIHBtZC5tZW1vcnlBbGxvY2F0b3JEdW1wcyA9IFtyb290RHVtcF07CisKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgeworICAgICAgY2hlY2tEdW1wVHJlZXMoY29udGFpbmVyRHVtcHMsIFsKKyAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAncm9vdCcsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxMDAsICAvLyBUaGlzIHNob3VsZCBiZSA5OS4KKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ3BhcmVudCcsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNTAKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgXSk7CisgICAgfSwgL2V4cGVjdGVkLionZWZmZWN0aXZlX3NpemUnLip2YWx1ZS4qXGIxMDBcYi4qZ290LipcYjk5XGIvKTsKKyAgfSk7CisKKyAgdGVzdCgndGVzdFNhbml0eUNoZWNrX2NoZWNrRHVtcFRyZWVzX2ludmFsaWRTaXplSW5mb0NvdW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gY3JlYXRlQ29udGFpbmVyRHVtcHMoMCk7CisgICAgdmFyIGdtZCA9IGNvbnRhaW5lckR1bXBzWzBdOworICAgIHZhciB2OER1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChnbWQsICd2OCcpOworICAgIC8vIFRoaXMgYXR0cmlidXRlIHNob3VsZCBoYXZlIGFuIGluZm8uCisgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNTApKTsKKyAgICBnbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBbdjhEdW1wXTsKKworICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICBjaGVja0R1bXBUcmVlcyhjb250YWluZXJEdW1wcywgWworICAgICAgICBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAndjgnLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA1MCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICB3YXJuaW5nSW5mbygvW3NvbWVfbWVzc2FnZV0vKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgXSk7CisgICAgfSwgL2V4cGVjdGVkLipcJ3NpemUnLiondjgnLipcYjEgaW5mb3NcYi4qXGJnb3RcYi4qXGIwXGIvKTsKKyAgfSk7CisKKyAgdGVzdCgndGVzdFNhbml0eUNoZWNrX2NoZWNrRHVtcFRyZWVzX2ludmFsaWRTaXplSW5mb1R5cGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29udGFpbmVyRHVtcHMgPSBjcmVhdGVDb250YWluZXJEdW1wcygwKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisgICAgdmFyIHY4RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKGdtZCwgJ3Y4Jyk7CisgICAgdmFyIGF0dHIgPSBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDUwKTsKKyAgICBhdHRyLmluZm9zLnB1c2gobmV3IEF0dHJpYnV0ZUluZm8oCisgICAgICAgIEF0dHJpYnV0ZUluZm9UeXBlLklORk9STUFUSU9OLCAnbWVzc2FnZSB0ZXh0IScpKTsKKyAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgYXR0cik7CisgICAgZ21kLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gW3Y4RHVtcF07CisKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgeworICAgICAgY2hlY2tEdW1wVHJlZXMoY29udGFpbmVyRHVtcHMsIFsKKyAgICAgICAgWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNTAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgd2FybmluZ0luZm8oL15tZXNzYWdlIHRleHQhJC8pICAvLyBUaGlzIHNob3VsZCBiZSBpbmZvcm1hdGlvbkluZm8uCisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICBdKTsKKyAgICB9LCAvZXhwZWN0ZWQuKlxiaW5mbyAwXGIuKidzaXplJy4qJ3Y4Jy4qXGJ0eXBlIDFcYi4qXGJnb3RcYi4qXGIwXGIvKTsKKyAgfSk7CisKKyAgdGVzdCgndGVzdFNhbml0eUNoZWNrX2NoZWNrRHVtcFRyZWVzX2ludmFsaWRTaXplSW5mb01lc3NhZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29udGFpbmVyRHVtcHMgPSBjcmVhdGVDb250YWluZXJEdW1wcygwKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisgICAgdmFyIHY4RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKGdtZCwgJ3Y4Jyk7CisgICAgdmFyIGF0dHIgPSBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDUwKTsKKyAgICBhdHRyLmluZm9zLnB1c2gobmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuV0FSTklORywgJ29rJykpOworICAgIGF0dHIuaW5mb3MucHVzaChuZXcgQXR0cmlidXRlSW5mbyhBdHRyaWJ1dGVJbmZvVHlwZS5JTkZPUk1BVElPTiwgJ29uZScpKTsKKyAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgYXR0cik7CisgICAgZ21kLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gW3Y4RHVtcF07CisKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgeworICAgICAgY2hlY2tEdW1wVHJlZXMoY29udGFpbmVyRHVtcHMsIFsKKyAgICAgICAgWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNTAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgd2FybmluZ0luZm8oLy4qLyksCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvdHdvLykgIC8vIFRoaXMgc2hvdWxkIGJlIC9vbmUvLgorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgXSk7CisgICAgfSwgL2ludmFsaWQgbWVzc2FnZS4qXGJpbmZvIDFcYi4qJ3NpemUnLiondjgnLyk7CisgIH0pOworCisgIHRlc3QoJ3Rlc3RTYW5pdHlDaGVja19jaGVja0R1bXBUcmVlc19pbnZhbGlkRWZmZWN0aXZlU2l6ZUluZm8nLAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gY3JlYXRlQ29udGFpbmVyRHVtcHMoMCk7CisgICAgdmFyIGdtZCA9IGNvbnRhaW5lckR1bXBzWzBdOworICAgIHZhciBvaWxwYW5EdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoZ21kLCAnb2lscGFuJyk7CisgICAgdmFyIGF0dHIgPSBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDc4KTsKKyAgICBhdHRyLmluZm9zLnB1c2gobmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuSU5GT1JNQVRJT04sICd0aHJlZScpKTsKKyAgICBvaWxwYW5EdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNDkpKTsKKyAgICBvaWxwYW5EdW1wLmFkZEF0dHJpYnV0ZSgnZWZmZWN0aXZlX3NpemUnLCBhdHRyKTsKKyAgICBnbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBbb2lscGFuRHVtcF07CisKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgeworICAgICAgY2hlY2tEdW1wVHJlZXMoY29udGFpbmVyRHVtcHMsIFsKKyAgICAgICAgWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ29pbHBhbicsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDQ5LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNzgsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvdHdvLykgIC8vIFRoaXMgc2hvdWxkIGJlIC90aHJlZS8uCisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICBdKTsKKyAgICB9LCAvaW52YWxpZCBtZXNzYWdlLipcYmluZm8gMFxiLionZWZmZWN0aXZlX3NpemUnLionb2lscGFuJy8pOworICB9KTsKKworICAvKioKKyAgICogQnVpbGQgY29udGFpbmVyIG1lbW9yeSBkdW1wcyBmcm9tIHRyZWUgcmVjaXBlcywgbGV0IHRoZSByZXN1bHRpbmcKKyAgICogR2xvYmFsTWVtb3J5RHVtcCBjYWxjdWxhdGUgc2l6ZXMgYW5kIGVmZmVjdGl2ZSBzaXplcywgYW5kIHRoZW4gY2hlY2sgdGhhdAorICAgKiB0aGUgYXVnbWVudGVkIGNvbnRhaW5lciBtZW1vcnkgZHVtcHMgaGF2ZSB0aGUgZXhwZWN0ZWQgc3RydWN0dXJlIHdpdGgKKyAgICogY29ycmVjdCBzaXplcyBhbmQgZWZmZWN0aXZlIHNpemVzIChhcyBkZXNjcmliZWQgYnkgdGhlIHNhbWUgdHJlZSByZWNpcGVzKS4KKyAgICoKKyAgICogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBidWlsZER1bXBUcmVlcyBhbmQgY2hlY2tEdW1wVHJlZXMgZm9yIG1vcmUKKyAgICogZGV0YWlscyBhYm91dCB0aGUgc3RydWN0dXJlIG9mIHRyZWUgcmVjaXBlcy4KKyAgICovCisgIGZ1bmN0aW9uIHRlc3RTaXplc0NhbGN1bGF0aW9uKGFsbFRyZWVSZWNpcGVzKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gYnVpbGREdW1wVHJlZXMoYWxsVHJlZVJlY2lwZXMpOworICAgIHZhciBnbWQgPSBjb250YWluZXJEdW1wc1swXTsKKyAgICBnbWQuY2FsY3VsYXRlU2l6ZXMoKTsKKyAgICBnbWQuY2FsY3VsYXRlRWZmZWN0aXZlU2l6ZXMoKTsKKyAgICBjaGVja0R1bXBUcmVlcyhjb250YWluZXJEdW1wcywgYWxsVHJlZVJlY2lwZXMpOworICB9CisKKyAgLy8gQ2hlY2sgdGhhdCB0aGUgdGVzdFNpemVzQ2FsY3VsYXRpb24gdGVzdGluZyBoZWxwZXIgbWV0aG9kIGFib3ZlCisgIC8vIGFjdHVhbGx5IHBlcmZvcm1zIHRoZSBleHBlY3RlZCBjaGVja3MuIFNpbmNlIGl0IHdpbGwgYmUgdXNlZCBoZWF2aWx5CisgIC8vIHRocm91Z2hvdXQgdGhpcyBmaWxlICh3aGVyZSBpdCBpcyBleHBlY3RlZCB0byBwYXNzKSwgd2Ugb25seSBuZWVkIHRvCisgIC8vIHZlcmlmeSB0aGF0IGl0IGRvZXMgaW5kZWVkIGZhaWwgd2hlbiBpdCBzaG91bGQuCisgIHRlc3QoJ3Rlc3RTYW5pdHlDaGVja190ZXN0U2l6ZXNDYWxjdWxhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICB0ZXN0U2l6ZXNDYWxjdWxhdGlvbihbCisgICAgICAgIFtdLAorICAgICAgICB1bmRlZmluZWQsCisgICAgICAgIFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICd3aW5oZWFwJworICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnbWFsbG9jJywKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTAwLAorICAgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnYWxsb2NhdGVkX29iamVjdHMnLAorICAgICAgICAgICAgICAgICdzaXplJzogMTAwLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTAwCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdleHRyYScsCisgICAgICAgICAgICAgICAgJ3NpemUnOiAyMCwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIF0pOworICAgIH0sIC9leHBlY3RlZC4qJ3NpemUnLip2YWx1ZS4qXGIxMDBcYi4qZ290LipcYjEyMFxiLyk7CisgIH0pOworCisgIGZ1bmN0aW9uIGNhbGN1bGF0aW9uVGVzdChjYXNlTmFtZSwgdHJlZVJlY2lwZXMpIHsKKyAgICB0ZXN0KCdjYWxjdWxhdGVTaXplc18nICsgY2FzZU5hbWUsIGZ1bmN0aW9uKCkgeworICAgICAgdGVzdFNpemVzQ2FsY3VsYXRpb24odHJlZVJlY2lwZXMpOworICAgIH0pOworICB9CisKKyAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgLy8gQWN0dWFsIHRlc3RzIGJlZ2luIGhlcmUuCisgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgdGVzdCgnaXRlcmF0ZUNvbnRhaW5lckR1bXBzX3dpdGhvdXRQcm9jZXNzTWVtb3J5RHVtcHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29udGFpbmVyRHVtcHMgPSBjcmVhdGVDb250YWluZXJEdW1wcygwKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisKKyAgICB2YXIgdmlzaXRlZENvbnRhaW5lckR1bXBzID0gW107CisgICAgZ21kLml0ZXJhdGVDb250YWluZXJEdW1wcyhidWlsZEFyZ1B1c2hlcih2aXNpdGVkQ29udGFpbmVyRHVtcHMpKTsKKyAgICBhc3NlcnRFcXVhbFVuaXF1ZU1lbWJlcnModmlzaXRlZENvbnRhaW5lckR1bXBzLCBjb250YWluZXJEdW1wcyk7CisgIH0pOworCisgIHRlc3QoJ2l0ZXJhdGVDb250YWluZXJEdW1wc193aXRoUHJvY2Vzc01lbW9yeUR1bXBzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gY3JlYXRlQ29udGFpbmVyRHVtcHMoMik7CisgICAgdmFyIGdtZCA9IGNvbnRhaW5lckR1bXBzWzBdOworCisgICAgdmFyIHZpc2l0ZWRDb250YWluZXJEdW1wcyA9IFtdOworICAgIGdtZC5pdGVyYXRlQ29udGFpbmVyRHVtcHMoYnVpbGRBcmdQdXNoZXIodmlzaXRlZENvbnRhaW5lckR1bXBzKSk7CisgICAgYXNzZXJ0RXF1YWxVbmlxdWVNZW1iZXJzKHZpc2l0ZWRDb250YWluZXJEdW1wcywgY29udGFpbmVyRHVtcHMpOworICB9KTsKKworICB0ZXN0KCdpdGVyYXRlUm9vdEFsbG9jYXRvckR1bXBzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXBzID0gYnVpbGREdW1wVHJlZXMoWworICAgICAgWyAgLy8gR01ELgorICAgICAgICB7CisgICAgICAgICAgJ25hbWUnOiAnZ2xvYmFsU2hhcmVkRHVtcDEnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAnbmFtZSc6ICdnbG9iYWxTaGFyZWREdW1wMicKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAgIFsgIC8vIFBNRC4KKyAgICAgICAgeworICAgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICduYW1lJzogJ2lzb2xhdGUnCisgICAgICAgICAgICB9CisgICAgICAgICAgXQorICAgICAgICB9CisgICAgICBdCisgICAgXSk7CisgICAgdmFyIGdtZCA9IGNvbnRhaW5lckR1bXBzWzBdOworICAgIHZhciBwbWQgPSBjb250YWluZXJEdW1wc1sxXTsKKworICAgIHZhciB2aXNpdGVkQWxsb2NhdG9yRHVtcHMgPSBbXTsKKyAgICBnbWQuaXRlcmF0ZVJvb3RBbGxvY2F0b3JEdW1wcyhidWlsZEFyZ1B1c2hlcih2aXNpdGVkQWxsb2NhdG9yRHVtcHMpKTsKKyAgICBhc3NlcnRFcXVhbFVuaXF1ZU1lbWJlcnModmlzaXRlZEFsbG9jYXRvckR1bXBzLCBbCisgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ2dsb2JhbFNoYXJlZER1bXAxJyksCisgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ2dsb2JhbFNoYXJlZER1bXAyJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Y4JykKKyAgICBdKTsKKyAgfSk7CisKKyAgdGVzdCgndHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdE9yZGVyX29uZVRyZWVXaXRob3V0T3duZXJzJywKKyAgICAgIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250YWluZXJEdW1wcyA9IGJ1aWxkRHVtcFRyZWVzKFsKKyAgICAgIFsgIC8vIEdNRC4KKyAgICAgICAgeworICAgICAgICAgICduYW1lJzogJ3Jvb3QnLAorICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJ25hbWUnOiAncGFyZW50JywKKyAgICAgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMScKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMicKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0KKyAgICAgIF0KKyAgICBdKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisKKyAgICAvLyBQb3N0LW9yZGVyLgorICAgIHZhciB2aXNpdGVkQWxsb2NhdG9yRHVtcHMgPSBbXTsKKyAgICBnbWQudHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdFBvc3RPcmRlcigKKyAgICAgICAgYnVpbGRBcmdQdXNoZXIodmlzaXRlZEFsbG9jYXRvckR1bXBzKSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aXNpdGVkQWxsb2NhdG9yRHVtcHMsIFsKKyAgICAgIGdtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdC9wYXJlbnQvY2hpbGQxJyksCisgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Jvb3QvcGFyZW50L2NoaWxkMicpLAorICAgICAgZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdyb290L3BhcmVudCcpLAorICAgICAgZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdyb290JykKKyAgICBdKTsKKworICAgIC8vIFByZS1vcmRlci4KKyAgICB2YXIgdmlzaXRlZEFsbG9jYXRvckR1bXBzID0gW107CisgICAgZ21kLnRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQcmVPcmRlcigKKyAgICAgICAgYnVpbGRBcmdQdXNoZXIodmlzaXRlZEFsbG9jYXRvckR1bXBzKSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aXNpdGVkQWxsb2NhdG9yRHVtcHMsIFsKKyAgICAgIGdtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdCcpLAorICAgICAgZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdyb290L3BhcmVudCcpLAorICAgICAgZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdyb290L3BhcmVudC9jaGlsZDEnKSwKKyAgICAgIGdtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdC9wYXJlbnQvY2hpbGQyJykKKyAgICBdKTsKKyAgfSk7CisKKyAgdGVzdCgndHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdE9yZGVyX29uZVRyZWVXaXRoT3duZXJzJywKKyAgICAgIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250YWluZXJEdW1wcyA9IGJ1aWxkRHVtcFRyZWVzKFsKKyAgICAgIFtdLCAgLy8gR01ELgorICAgICAgWyAgLy8gUE1ELgorICAgICAgICB7CisgICAgICAgICAgJ25hbWUnOiAncm9vdCcsCisgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAnbmFtZSc6ICdwYXJlbnQnLAorICAgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQxJywKKyAgICAgICAgICAgICAgICAgICdvd25zJzogMAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQyJywKKyAgICAgICAgICAgICAgICAgICdndWlkJzogMAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQzJywKKyAgICAgICAgICAgICAgICAgICdvd25zJzogMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfQorICAgICAgICAgIF0KKyAgICAgICAgfQorICAgICAgXQorICAgIF0pOworICAgIHZhciBnbWQgPSBjb250YWluZXJEdW1wc1swXTsKKyAgICB2YXIgcG1kID0gY29udGFpbmVyRHVtcHNbMV07CisKKyAgICAvLyBQb3N0LW9yZGVyLgorICAgIHZhciB2aXNpdGVkQWxsb2NhdG9yRHVtcHMgPSBbXTsKKyAgICBnbWQudHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdFBvc3RPcmRlcigKKyAgICAgICAgYnVpbGRBcmdQdXNoZXIodmlzaXRlZEFsbG9jYXRvckR1bXBzKSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aXNpdGVkQWxsb2NhdG9yRHVtcHMsIFsKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdC9wYXJlbnQvY2hpbGQxJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Jvb3QvcGFyZW50L2NoaWxkMycpLAorICAgICAgcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdyb290L3BhcmVudC9jaGlsZDInKSwKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdC9wYXJlbnQnKSwKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdCcpCisgICAgXSk7CisKKyAgICAvLyBQcmUtb3JkZXIuCisgICAgdmFyIHZpc2l0ZWRBbGxvY2F0b3JEdW1wcyA9IFtdOworICAgIGdtZC50cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0UHJlT3JkZXIoCisgICAgICAgIGJ1aWxkQXJnUHVzaGVyKHZpc2l0ZWRBbGxvY2F0b3JEdW1wcykpOworICAgIGFzc2VydC5kZWVwRXF1YWwodmlzaXRlZEFsbG9jYXRvckR1bXBzLCBbCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Jvb3QnKSwKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdC9wYXJlbnQnKSwKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgncm9vdC9wYXJlbnQvY2hpbGQyJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Jvb3QvcGFyZW50L2NoaWxkMScpLAorICAgICAgcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdyb290L3BhcmVudC9jaGlsZDMnKQorICAgIF0pOworICB9KTsKKworICB0ZXN0KCd0cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0T3JkZXJfbXVsdGlwbGVUcmVlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250YWluZXJEdW1wcyA9IGJ1aWxkRHVtcFRyZWVzKFsKKyAgICAgIFsgIC8vIEdNRC4KKyAgICAgICAgeworICAgICAgICAgICduYW1lJzogJ3NoYXJlZCcsCisgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAnbmFtZSc6ICdwb29sMScsCisgICAgICAgICAgICAgICdndWlkJzogMQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJ25hbWUnOiAncG9vbDInLAorICAgICAgICAgICAgICAnb3ducyc6IDMKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0KKyAgICAgIF0sCisgICAgICBbICAvLyBQTUQuCisgICAgICAgIHsKKyAgICAgICAgICAnbmFtZSc6ICdvaWxwYW4nLAorICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJ25hbWUnOiAnb2JqZWN0cycKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJywKKyAgICAgICAgICAgICAgJ293bnMnOiAxLAorICAgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnc21hbGwnLAorICAgICAgICAgICAgICAgICAgJ2d1aWQnOiAyCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdsYXJnZScKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAnbmFtZSc6ICd2OCcsCisgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAnbmFtZSc6ICdpc29sYXRlMScsCisgICAgICAgICAgICAgICdvd25zJzogMgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJ25hbWUnOiAnaXNvbGF0ZTInLAorICAgICAgICAgICAgICAnZ3VpZCc6IDMKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0KKyAgICAgIF0KKyAgICBdKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisgICAgdmFyIHBtZCA9IGNvbnRhaW5lckR1bXBzWzFdOworCisgICAgLy8gUG9zdC1vcmRlci4KKyAgICB2YXIgdmlzaXRlZEFsbG9jYXRvckR1bXBzID0gW107CisgICAgZ21kLnRyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQb3N0T3JkZXIoCisgICAgICAgIGJ1aWxkQXJnUHVzaGVyKHZpc2l0ZWRBbGxvY2F0b3JEdW1wcykpOworICAgIGFzc2VydC5kZWVwRXF1YWwodmlzaXRlZEFsbG9jYXRvckR1bXBzLCBbCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Y4L2lzb2xhdGUxJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ29pbHBhbi9oZWFwcy9zbWFsbCcpLAorICAgICAgcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdvaWxwYW4vaGVhcHMvbGFyZ2UnKSwKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnb2lscGFuL2hlYXBzJyksCisgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3NoYXJlZC9wb29sMScpLAorICAgICAgZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdzaGFyZWQvcG9vbDInKSwKKyAgICAgIGdtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnc2hhcmVkJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ29pbHBhbi9vYmplY3RzJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ29pbHBhbicpLAorICAgICAgcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd2OC9pc29sYXRlMicpLAorICAgICAgcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd2OCcpCisgICAgXSk7CisKKyAgICAvLyBQcmUtb3JkZXIuCisgICAgdmFyIHZpc2l0ZWRBbGxvY2F0b3JEdW1wcyA9IFtdOworICAgIGdtZC50cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0UHJlT3JkZXIoCisgICAgICAgIGJ1aWxkQXJnUHVzaGVyKHZpc2l0ZWRBbGxvY2F0b3JEdW1wcykpOworICAgIGFzc2VydC5kZWVwRXF1YWwodmlzaXRlZEFsbG9jYXRvckR1bXBzLCBbCisgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3NoYXJlZCcpLAorICAgICAgZ21kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdzaGFyZWQvcG9vbDEnKSwKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnb2lscGFuJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ29pbHBhbi9vYmplY3RzJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ29pbHBhbi9oZWFwcycpLAorICAgICAgcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCdvaWxwYW4vaGVhcHMvc21hbGwnKSwKKyAgICAgIHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgnb2lscGFuL2hlYXBzL2xhcmdlJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Y4JyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Y4L2lzb2xhdGUxJyksCisgICAgICBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Y4L2lzb2xhdGUyJyksCisgICAgICBnbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3NoYXJlZC9wb29sMicpCisgICAgXSk7CisgIH0pOworCisgIHRlc3QoJ3RyYXZlcnNlQWxsb2NhdG9yRHVtcHNJbkRlcHRoRmlyc3RQb3N0T3JkZXJfY3ljbGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29udGFpbmVyRHVtcHMgPSBidWlsZER1bXBUcmVlcyhbCisgICAgICBbICAvLyBHTUQuCisgICAgICAgIHsKKyAgICAgICAgICAnbmFtZSc6ICdzaGFyZWQnLAorICAgICAgICAgICdvd25zJzogMiwKKyAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICduYW1lJzogJ3Bvb2wnLAorICAgICAgICAgICAgICAnZ3VpZCc6IDEKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0KKyAgICAgIF0sCisgICAgICBbICAvLyBQTUQuCisgICAgICAgIHsKKyAgICAgICAgICAnbmFtZSc6ICdvaWxwYW4nLAorICAgICAgICAgICdvd25zJzogMSwKKyAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICduYW1lJzogJ29iamVjdHMnLAorICAgICAgICAgICAgICAnZ3VpZCc6IDIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0KKyAgICAgIF0KKyAgICBdKTsKKyAgICB2YXIgZ21kID0gY29udGFpbmVyRHVtcHNbMF07CisKKyAgICAvLyBQb3N0LW9yZGVyLgorICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICBnbWQudHJhdmVyc2VBbGxvY2F0b3JEdW1wc0luRGVwdGhGaXJzdFBvc3RPcmRlcihmdW5jdGlvbigpIHt9KTsKKyAgICB9LCAvY29udGFpbnMuKmN5Y2xlLyk7CisKKyAgICAvLyBQcmUtb3JkZXIuCisgICAgdmFyIHZpc2l0ZWRBbGxvY2F0b3JEdW1wcyA9IFtdOworICAgIGdtZC50cmF2ZXJzZUFsbG9jYXRvckR1bXBzSW5EZXB0aEZpcnN0UHJlT3JkZXIoCisgICAgICAgIGJ1aWxkQXJnUHVzaGVyKHZpc2l0ZWRBbGxvY2F0b3JEdW1wcykpOworICAgIGFzc2VydC5kZWVwRXF1YWwodmlzaXRlZEFsbG9jYXRvckR1bXBzLCBbXSk7CisgIH0pOworCisgIC8vIEp1c3QgY2hlY2sgdGhhdCB0aGUgbWV0aG9kIGRvZXNuJ3QgY3Jhc2ggdXBvbiBlbmNvdW50ZXJpbmcgZW1wdHkgYW5kL29yCisgIC8vIHVuZGVmaW5lZCBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgorICBjYWxjdWxhdGlvblRlc3QoJ25vRHVtcHMnLCBbCisgICAgdW5kZWZpbmVkLCAgLy8gR01ELgorICAgIFtdLCAgLy8gUE1EMS4KKyAgICB1bmRlZmluZWQgIC8vIFBNRDIuCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnZmxhdER1bXBzJywgWworICAgIFsgIC8vIEdNRC4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnc2hhcmVkJywKKyAgICAgICAgJ3NpemUnOiAxMDI0LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwMjQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDEwMjQKKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRC4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnZ3B1JworICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCd6ZXJvU2l6ZXMnLCBbCisgICAgWyAgLy8gR01ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdzaGFyZWQnLAorICAgICAgICAnc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMAorICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnZ3B1JywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnemVybycsCisgICAgICAgICAgICAnc2l6ZSc6IDAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQyLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdncHUnLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICd6ZXJvJywKKyAgICAgICAgICAgICdzaXplJzogMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3VuZGVmaW5lZCcKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnY2hpbGRyZW5fYWxsU2l6ZXNVbmRlZmluZWQnLCBbCisgICAgWworICAgICAgeworICAgICAgICAnbmFtZSc6ICdwYXJlbnQnLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQxJworICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQyJworICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdjaGlsZHJlbl9wYXJlbnRTaXplVW5kZWZpbmVkJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAncGFyZW50JywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzODQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDM4NCwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMScsCisgICAgICAgICAgICAnc2l6ZSc6IDEyOCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTI4LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTI4CisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDInLAorICAgICAgICAgICAgJ3NpemUnOiAyNTYsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDI1NiwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDI1NgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdjaGlsZHJlbl9wYXJlbnRTaXplRGVmaW5lZF9jaGlsZHJlbkFkZFVwJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAncGFyZW50JywKKyAgICAgICAgJ3NpemUnOiAwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDEnCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDInCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ2NoaWxkcmVuX3BhcmVudFNpemVEZWZpbmVkX2NoaWxkcmVuRG9udEFkZFVwJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAncGFyZW50JywKKyAgICAgICAgJ3NpemUnOiAyMDQ4LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwNDgsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDIwNDgsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMjA0OCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDIwNDgKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMScKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMicKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnY2hpbGRyZW5fb25lQ2hpbGRTaXplVW5kZWZpbmVkX2NoaWxkcmVuQWRkVXAnLCBbCisgICAgWworICAgICAgeworICAgICAgICAnbmFtZSc6ICdwYXJlbnQnLAorICAgICAgICAnc2l6ZSc6IDQwOTYsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNDA5NiwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNDA5NiwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMScKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMicsCisgICAgICAgICAgICAnc2l6ZSc6IDQwOTYsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDQwOTYsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA0MDk2CisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ2NoaWxkcmVuX29uZUNoaWxkU2l6ZVVuZGVmaW5lZF9jaGlsZHJlbkRvbnRBZGRVcCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3BhcmVudCcsCisgICAgICAgICdzaXplJzogNjE0NCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2MTQ0LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA2MTQ0LAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnPHVuc3BlY2lmaWVkPicsCisgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwNDgsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyMDQ4CisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDEnCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDInLAorICAgICAgICAgICAgJ3NpemUnOiA0MDk2LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA0MDk2LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNDA5NgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdjaGlsZHJlbl9hbGxTaXplc0RlZmluZWRfY2hpbGRyZW5BZGRVcCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3BhcmVudCcsCisgICAgICAgICdzaXplJzogMTAwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTAwLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQxJywKKyAgICAgICAgICAgICdzaXplJzogNzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDcwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNzAKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMicsCisgICAgICAgICAgICAnc2l6ZSc6IDMwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMwCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ2NoaWxkcmVuX2FsbFNpemVzRGVmaW5lZF9jaGlsZHJlbkRvbnRVcCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3BhcmVudCcsCisgICAgICAgICdzaXplJzogMTUwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE1MCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTUwLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnPHVuc3BlY2lmaWVkPicsCisgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDUwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNTAKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMScsCisgICAgICAgICAgICAnc2l6ZSc6IDcwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA3MCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDcwCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDInLAorICAgICAgICAgICAgJ3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzMAorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdjaGlsZHJlbl9vbmVDaGlsZFNpemVEZWZpbmVkJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAncGFyZW50JywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA0OSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNDksCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDEnLAorICAgICAgICAgICAgJ3NpemUnOiA0OSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNDksCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA0OQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQyJworICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdjaGlsZHJlbl9tdWx0aXBsZUxldmVscycsIFsKKyAgICBbXSwgIC8vIEdNRC4KKyAgICBbICAvLyBQTUQuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzNiwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMzYsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdpc29sYXRlMScsCisgICAgICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDEwLAorICAgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ3NraXBfYnVpbGQnOiB0cnVlLAorICAgICAgICAgICAgICAgICduYW1lJzogJzx1bnNwZWNpZmllZD4nLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMywKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDMsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJywKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDQsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA0LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnaXNvbGF0ZTInLAorICAgICAgICAgICAgJ3NpemUnOiAxMiwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTIsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxMiwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ29iamVjdHMnLAorICAgICAgICAgICAgICAgICdzaXplJzogNSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDUsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnaGVhcHMnLAorICAgICAgICAgICAgICAgICdzaXplJzogNywKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDcsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNworICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdpc29sYXRlMycsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE0LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTQsCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDE0LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTQsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTQKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJworICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ293bmVyc19hbGxTaXplc1VuZGVmaW5lZCcsIFsKKyAgICBbICAvLyBHTUQuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2JpdG1hcCcsCisgICAgICAgICdndWlkJzogNworICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndGlsZScsCisgICAgICAgICdvd25zJzogNywKKyAgICAgICAgJ2ltcG9ydGFuY2UnOiAxCisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQyLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdjaHVuaycsCisgICAgICAgICdvd25zJzogNworICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdvd25lcnNfb3duZWRTaXplRGVmaW5lZCcsIFsKKyAgICBbICAvLyBHTUQuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2JpdG1hcCcsCisgICAgICAgICdzaXplJzogMTUsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTUsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDE1LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCd0aWxlJywgJ1Byb2Nlc3MgMCcsIDAsICdjaHVuaycsICdQcm9jZXNzIDEnLCAwKQorICAgICAgICBdLAorICAgICAgICAnZ3VpZCc6IDcKKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDEuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3RpbGUnLAorICAgICAgICAnb3ducyc6IDcKKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDIuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2NodW5rJywKKyAgICAgICAgJ293bnMnOiA3CisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ293bmVyc19vd25lZFNpemVVbmRlZmluZWQnLCBbCisgICAgWyAgLy8gR01ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdiaXRtYXAnLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDksCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ3RpbGUnLCAnUHJvY2VzcyAwJywgMCwgJ2NodW5rJywgJ1Byb2Nlc3MgMScsIDApCisgICAgICAgIF0sCisgICAgICAgICdndWlkJzogNworICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndGlsZScsCisgICAgICAgICdzaXplJzogNSwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA1LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyLjUsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ2JpdG1hcCcsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdLAorICAgICAgICAnb3ducyc6IDcKKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDIuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2NodW5rJywKKyAgICAgICAgJ3NpemUnOiA5LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDksCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDYuNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnYml0bWFwJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgIF0sCisgICAgICAgICdvd25zJzogNworICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdvd25lcnNfb25lT3duZXJTaXplRGVmaW5lZCcsIFsKKyAgICBbICAvLyBHTUQuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2JpdG1hcCcsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ3RpbGUnLCAnUHJvY2VzcyAwJywgMCwgJ2NodW5rJywgJ1Byb2Nlc3MgMScsIDApCisgICAgICAgIF0sCisgICAgICAgICdndWlkJzogNworICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndGlsZScsCisgICAgICAgICdzaXplJzogMTYsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDE2LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdiaXRtYXAnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgXSwKKyAgICAgICAgJ293bnMnOiA3CisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQyLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdjaHVuaycsCisgICAgICAgICdvd25zJzogNworICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdvd25lcnNfb25lT3duZXJTaXplVW5kZWZpbmVkJywgWworICAgIFsgIC8vIEdNRC4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnYml0bWFwJywKKyAgICAgICAgJ3NpemUnOiAyMCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAyMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMiwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVkSW5mbygndGlsZScsICdQcm9jZXNzIDAnLCAwLCAnY2h1bmsnLCAnUHJvY2VzcyAxJywgMCkKKyAgICAgICAgXSwKKyAgICAgICAgJ2d1aWQnOiA3CisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQxLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICd0aWxlJywKKyAgICAgICAgJ293bnMnOiA3CisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQyLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdjaHVuaycsCisgICAgICAgICdzaXplJzogMTgsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTgsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDE4LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdiaXRtYXAnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgXSwKKyAgICAgICAgJ293bnMnOiA3CisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ293bmVyc19hbGxTaXplc0RlZmluZWQnLCBbCisgICAgWyAgLy8gR01ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdiaXRtYXAnLAorICAgICAgICAnc2l6ZSc6IDYwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDYwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzMSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVkSW5mbygndGlsZScsICdQcm9jZXNzIDAnLCAwLCAnY2h1bmsnLCAnUHJvY2VzcyAxJywgMCkKKyAgICAgICAgXSwKKyAgICAgICAgJ2d1aWQnOiA3CisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQxLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICd0aWxlJywKKyAgICAgICAgJ3NpemUnOiAyOSwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAyOSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTkuNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnYml0bWFwJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgIF0sCisgICAgICAgICdvd25zJzogNworICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMi4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnY2h1bmsnLAorICAgICAgICAnc2l6ZSc6IDE5LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE5LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA5LjUsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ2JpdG1hcCcsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdLAorICAgICAgICAnb3ducyc6IDcKKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnb3duZXJzX2hpZXJhcmNoeScsIFsKKyAgICBbICAvLyBHTUQuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2JpdG1hcCcsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNTAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ3RpbGUnLCAnUHJvY2VzcyAwJywgMCwgJ2NodW5rJywgJ1Byb2Nlc3MgMScsIDApCisgICAgICAgIF0sCisgICAgICAgICdndWlkJzogNworICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndGlsZScsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNTAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ29iamVjdDEnLCAnUHJvY2VzcyAwJywgMCwgJ29iamVjdDInLCAnUHJvY2VzcyAwJywgMCwKKyAgICAgICAgICAgICAgJ29iamVjdDMnLCAnUHJvY2VzcyAwJywgMCksCisgICAgICAgICAgb3duZXJJbmZvKCdiaXRtYXAnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgXSwKKyAgICAgICAgJ293bnMnOiA3LAorICAgICAgICAnZ3VpZCc6IDAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICduYW1lJzogJ29iamVjdDEnLAorICAgICAgICAnc2l6ZSc6IDMwLAorICAgICAgICAnb3ducyc6IDAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMzAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDksCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ3RpbGUnLCAnUHJvY2VzcyAwJywgMCkKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnb2JqZWN0MicsCisgICAgICAgICdvd25zJzogMAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnb2JqZWN0MycsCisgICAgICAgICdzaXplJzogNTAsCisgICAgICAgICdvd25zJzogMCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA1MCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMjEsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ3RpbGUnLCAnUHJvY2VzcyAwJywgMCkKKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMi4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnY2h1bmsnLAorICAgICAgICAnc2l6ZSc6IDQwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDQwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnYml0bWFwJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgIF0sCisgICAgICAgICdvd25zJzogNworICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdvd25lcnNfd2l0aENoaWxkcmVuJywgWworICAgIFsgIC8vIEdNRC4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnYml0bWFwJywKKyAgICAgICAgJ2d1aWQnOiA3LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDQ4LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxNywKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVkSW5mbygndGlsZScsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnc3ViYml0bWFwMScsCisgICAgICAgICAgICAnc2l6ZSc6IDMyLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzMiwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDE3ICogKDMyIC8gNDgpCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdzdWJiaXRtYXAyJywKKyAgICAgICAgICAgICdzaXplJzogMTYsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE2LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTcgKiAoMTYgLyA0OCkKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRC4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndGlsZScsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMzEsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ2NjJywgJ1Byb2Nlc3MgMCcsIDApLAorICAgICAgICAgIG93bmVySW5mbygnYml0bWFwJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgIF0sCisgICAgICAgICdndWlkJzogOCwKKyAgICAgICAgJ293bnMnOiA3LAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnPHVuc3BlY2lmaWVkPicsCisgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDcsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdzdWJ0aWxlJywKKyAgICAgICAgICAgICdzaXplJzogMjQsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDI0LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMAorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnY2MnLAorICAgICAgICAnb3ducyc6IDgsCisgICAgICAgICdzaXplJzogMzEsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMzEsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMxLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCd0aWxlJywgJ1Byb2Nlc3MgMCcsIDApCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnb3duZXJzX3dpdGhQYXJlbnRzJywgWworICAgIFsgIC8vIEdNRC4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnYml0bWFwJywKKyAgICAgICAgJ3NpemUnOiA5NiwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA5NiwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMzIsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMzIsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzMgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnc3ViYml0bWFwJywKKyAgICAgICAgICAgICdndWlkJzogMiwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNjQsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lZEluZm8oJ3RpbGUvc3VidGlsZScsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICd0aWxlJywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2NCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMCwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3N1YnRpbGUnLAorICAgICAgICAgICAgJ2d1aWQnOiAxLAorICAgICAgICAgICAgJ293bnMnOiAyLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2NCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVkSW5mbygnY2MnLCAnUHJvY2VzcyAwJywgMCksCisgICAgICAgICAgICAgIG93bmVySW5mbygnYml0bWFwL3N1YmJpdG1hcCcsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnY2MnLAorICAgICAgICAnb3ducyc6IDEsCisgICAgICAgICdzaXplJzogNjQsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNjQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDY0LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCd0aWxlL3N1YnRpbGUnLCAnUHJvY2VzcyAwJywgMCkKKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdvd25lcnNfbXVsdGlwbGVMZXZlbHMnLCBbCisgICAgWyAgLy8gR01ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdiaXRtYXAnLAorICAgICAgICAnc2l6ZSc6IDk2LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDk2LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzMiwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJzx1bnNwZWNpZmllZD4nLAorICAgICAgICAgICAgJ3NraXBfYnVpbGQnOiB0cnVlLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzMiwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMyCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdzdWJiaXRtYXAnLAorICAgICAgICAgICAgJ2d1aWQnOiAyLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2NCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVkSW5mbygndGlsZScsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICd0aWxlJywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2NCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnYml0bWFwL3N1YmJpdG1hcCcsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdLAorICAgICAgICAnb3ducyc6IDIsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdzdWJ0aWxlJywKKyAgICAgICAgICAgICdndWlkJzogMSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNjQsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lZEluZm8oJ2NjJywgJ1Byb2Nlc3MgMCcsIDApCisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdjYycsCisgICAgICAgICdvd25zJzogMSwKKyAgICAgICAgJ3NpemUnOiA2NCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2NCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNjQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ3RpbGUvc3VidGlsZScsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ3ZpZXdzX2FsbFNpemVzVW5kZWZpbmVkJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndjgnLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAndjgvaGVhcHMnLAorICAgICAgICAgICAgJ2d1aWQnOiAxCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICd2OC9vYmplY3RzJywKKyAgICAgICAgICAgICdvd25zJzogMQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCd2aWV3c19vd25lZFNpemVEZWZpbmVkJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndjgnLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxMCwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJywKKyAgICAgICAgICAgICdndWlkJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMTAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVkSW5mbygndjgvb2JqZWN0cycsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnb2JqZWN0cycsCisgICAgICAgICAgICAnb3ducyc6IDEKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgndmlld3Nfb3duZXJTaXplRGVmaW5lZCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAyMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMjAsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdoZWFwcycsCisgICAgICAgICAgICAnZ3VpZCc6IDEsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLionb2JqZWN0cycuKlxiMjBcLjAgQlxiLykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lZEluZm8oJ3Y4L29iamVjdHMnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ29iamVjdHMnLAorICAgICAgICAgICAgJ293bnMnOiAxLAorICAgICAgICAgICAgJ3NpemUnOiAyMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMjAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZXJJbmZvKCd2OC9oZWFwcycsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCd2aWV3c19wYXJlbnRTaXplVW5kZWZpbmVkJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndjgnLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDMwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzMCwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJywKKyAgICAgICAgICAgICdndWlkJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDMwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLionb2JqZWN0cycuKlxiMjBcLjAgQlxiLykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZWRJbmZvKCd2OC9vYmplY3RzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICdvd25zJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMjAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMjAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVySW5mbygndjgvaGVhcHMnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgndmlld3Nfb3duZXJTaXplVW5kZWZpbmVkX2NoaWxkcmVuQWRkVXAnLCBbCisgICAgWworICAgICAgeworICAgICAgICAnbmFtZSc6ICd2OCcsCisgICAgICAgICdzaXplJzogMzAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMzAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMwLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnaGVhcHMnLAorICAgICAgICAgICAgJ2d1aWQnOiAxLAorICAgICAgICAgICAgJ3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZWRJbmZvKCd2OC9vYmplY3RzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICdvd25zJzogMQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCd2aWV3c19vd25lclNpemVVbmRlZmluZWRfY2hpbGRyZW5Eb250QWRkVXAnLCBbCisgICAgWworICAgICAgeworICAgICAgICAnbmFtZSc6ICd2OCcsCisgICAgICAgICdzaXplJzogNDAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQwLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnPHVuc3BlY2lmaWVkPicsCisgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTAKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJywKKyAgICAgICAgICAgICdndWlkJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDMwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVkSW5mbygndjgvb2JqZWN0cycsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnb2JqZWN0cycsCisgICAgICAgICAgICAnb3ducyc6IDEKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgndmlld3Nfb3duZWRTaXplVW5kZWZpbmVkX2NoaWxkcmVuQWRkVXAnLCBbCisgICAgWworICAgICAgeworICAgICAgICAnbmFtZSc6ICd2OCcsCisgICAgICAgICdzaXplJzogMzAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMzAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMwLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnaGVhcHMnLAorICAgICAgICAgICAgJ2d1aWQnOiAxLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBpbmZvcm1hdGlvbkluZm8oL1xib3ZlcmxhcHNcYi4qJ29iamVjdHMnLipcYjMwXC4wIEJcYi8pCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZWRJbmZvKCd2OC9vYmplY3RzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICdvd25zJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDMwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVySW5mbygndjgvaGVhcHMnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgndmlld3Nfb3duZWRTaXplVW5kZWZpbmVkX2NoaWxkcmVuRG9udEFkZFVwJywgWworICAgIFsKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndjgnLAorICAgICAgICAnc2l6ZSc6IDQwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDQwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA0MCwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJzx1bnNwZWNpZmllZD4nLAorICAgICAgICAgICAgJ3NraXBfYnVpbGQnOiB0cnVlLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDEwCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdoZWFwcycsCisgICAgICAgICAgICAnZ3VpZCc6IDEsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDMwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLionb2JqZWN0cycuKlxiMzBcLjAgQlxiLykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lZEluZm8oJ3Y4L29iamVjdHMnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ29iamVjdHMnLAorICAgICAgICAgICAgJ293bnMnOiAxLAorICAgICAgICAgICAgJ3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZXJJbmZvKCd2OC9oZWFwcycsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCd2aWV3c19hbGxTaXplc0RlZmluZWRfY2hpbGRyZW5BZGRVcCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgJ3NpemUnOiAzMCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMzAsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdoZWFwcycsCisgICAgICAgICAgICAnZ3VpZCc6IDEsCisgICAgICAgICAgICAnc2l6ZSc6IDMwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBpbmZvcm1hdGlvbkluZm8oL1xib3ZlcmxhcHNcYi4qJ29iamVjdHMnLipcYjE0XC4wIEJcYi8pCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTYsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVkSW5mbygndjgvb2JqZWN0cycsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnb2JqZWN0cycsCisgICAgICAgICAgICAnb3ducyc6IDEsCisgICAgICAgICAgICAnc2l6ZSc6IDE0LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxNCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDE0LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lckluZm8oJ3Y4L2hlYXBzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ3ZpZXdzX2FsbFNpemVzRGVmaW5lZF9jaGlsZHJlbkRvbnRBZGRVcCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgJ3NpemUnOiAzNSwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMzUsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNSwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJywKKyAgICAgICAgICAgICdndWlkJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMzAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDMwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLionb2JqZWN0cycuKlxiMTRcLjAgQlxiLykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxNiwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZWRJbmZvKCd2OC9vYmplY3RzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICdvd25zJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMTQsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE0LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTQsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVySW5mbygndjgvaGVhcHMnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgndmlld3NfZGVlcCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Jvb3QnLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE3LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxNywKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3BhcmVudDEnLAorICAgICAgICAgICAgJ3NpemUnOiAxMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA1LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLioncGFyZW50MicuKlxiNVwuMCBCXGIvKQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJzx1bnNwZWNpZmllZD4nLAorICAgICAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMgorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnY2hpbGQnLAorICAgICAgICAgICAgICAgICdndWlkJzogMSwKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDgsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA4LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICAgICAgb3duZWRJbmZvKCdyb290L3BhcmVudDIvY2hpbGQnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3BhcmVudDInLAorICAgICAgICAgICAgJ3NpemUnOiA4LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA4LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBpbmZvcm1hdGlvbkluZm8oL1xib3ZlcmxhcHNcYi4qJ3BhcmVudDMnLipcYjNcLjAgQlxiLykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAzLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2NoaWxkJywKKyAgICAgICAgICAgICAgICAnZ3VpZCc6IDIsCisgICAgICAgICAgICAgICAgJ293bnMnOiAxLAorICAgICAgICAgICAgICAgICdzaXplJzogNSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDUsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMiwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgICAgICBvd25lZEluZm8oJ3Jvb3QvcGFyZW50My9jaGlsZCcsICdnbG9iYWwgc3BhY2UnLCAwKSwKKyAgICAgICAgICAgICAgICAgIG93bmVySW5mbygncm9vdC9wYXJlbnQxL2NoaWxkJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdwYXJlbnQzJywKKyAgICAgICAgICAgICdzaXplJzogNywKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNywKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDcsCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA0LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2NoaWxkJywKKyAgICAgICAgICAgICAgICAnb3ducyc6IDIsCisgICAgICAgICAgICAgICAgJ3NpemUnOiAzLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMywKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgICAgIG93bmVySW5mbygncm9vdC9wYXJlbnQyL2NoaWxkJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ3ZpZXdzX25lc3RlZCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3N5c3RlbScsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNywKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNywKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3N1YnN5c3RlbS1BJywKKyAgICAgICAgICAgICdvd25zJzogMTUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA1LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lckluZm8oJ3N5c3RlbS9zdWJzeXN0ZW0tQicsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ29iamVjdHMnLAorICAgICAgICAgICAgICAgICdvd25zJzogMzAsCisgICAgICAgICAgICAgICAgJ3NpemUnOiAzLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMywKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgICAgIG93bmVySW5mbygnc3lzdGVtL3N1YnN5c3RlbS1BL2hlYXBzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnaGVhcHMnLAorICAgICAgICAgICAgICAgICdndWlkJzogMzAsCisgICAgICAgICAgICAgICAgJ3NpemUnOiA1LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLionb2JqZWN0cycuKlxiM1wuMCBCXGIvKQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMiwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgICAgICBvd25lZEluZm8oJ3N5c3RlbS9zdWJzeXN0ZW0tQS9vYmplY3RzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdzdWJzeXN0ZW0tQicsCisgICAgICAgICAgICAnZ3VpZCc6IDE1LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA3LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLionc3Vic3lzdGVtLUEnLipcYjVcLjAgQlxiLykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lZEluZm8oJ3N5c3RlbS9zdWJzeXN0ZW0tQScsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ29iamVjdHMnLAorICAgICAgICAgICAgICAgICdvd25zJzogNDAsCisgICAgICAgICAgICAgICAgJ3NpemUnOiA3LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNywKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgICAgIG93bmVySW5mbygnc3lzdGVtL3N1YnN5c3RlbS1CL2hlYXBzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnaGVhcHMnLAorICAgICAgICAgICAgICAgICdndWlkJzogNDAsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA3LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb25JbmZvKC9cYm92ZXJsYXBzXGIuKidvYmplY3RzJy4qXGI3XC4wIEJcYi8pCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgICAgIG93bmVkSW5mbygnc3lzdGVtL3N1YnN5c3RlbS1CL29iamVjdHMnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnaW1wb3J0YW5jZV9lcXVhbCcsIFsKKyAgICBbICAvLyBHTUQgKGJvdGggaW1wb3J0YW5jZXMgdW5kZWZpbmVkIGFuZCBlcXVhbCBzaXplcykuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVkJywKKyAgICAgICAgJ2d1aWQnOiAxLAorICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA0LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCdvd25lcjEnLCAnZ2xvYmFsIHNwYWNlJywgMCwgJ293bmVyMicsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjEnLAorICAgICAgICAnb3ducyc6IDEsCisgICAgICAgICdzaXplJzogNiwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjInLAorICAgICAgICAnb3ducyc6IDEsCisgICAgICAgICdzaXplJzogNiwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQxIChvbmx5IG9uZSBpbXBvcnRhbmNlIGRlZmluZWQgYW5kIGRpZmZlcmVudCBzaXplcykuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVkJywKKyAgICAgICAgJ2d1aWQnOiAyLAorICAgICAgICAnc2l6ZSc6IDIwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA1LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCdvd25lcjEnLCAnUHJvY2VzcyAwJywgMCwgJ293bmVyMicsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjEnLAorICAgICAgICAnb3ducyc6IDIsCisgICAgICAgICdpbXBvcnRhbmNlJzogMCwKKyAgICAgICAgJ3NpemUnOiAxNSwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTAgLyAyICsgNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnb3duZWQnLCAnUHJvY2VzcyAwJywgMCkKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnb3duZXIyJywKKyAgICAgICAgJ293bnMnOiAyLAorICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxMCAvIDIsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ1Byb2Nlc3MgMCcsIDApCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDIgKGFsbCBpbXBvcnRhbmNlcyBkZWZpbmVkIGFuZCBkaWZmZXJlbnQgc2l6ZXMpLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lZCcsCisgICAgICAgICdndWlkJzogMywKKyAgICAgICAgJ3NpemUnOiAxNSwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVkSW5mbygnb3duZXIxJywgJ1Byb2Nlc3MgMScsIDMsICdvd25lcjInLCAnUHJvY2VzcyAxJywgMywKKyAgICAgICAgICAgICAgJ293bmVyMycsICdQcm9jZXNzIDEnLCAzKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjEnLAorICAgICAgICAnb3ducyc6IDMsCisgICAgICAgICdpbXBvcnRhbmNlJzogMywKKyAgICAgICAgJ3NpemUnOiA4LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDgsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDggLyAzLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdQcm9jZXNzIDEnLCAzKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjInLAorICAgICAgICAnb3ducyc6IDMsCisgICAgICAgICdpbXBvcnRhbmNlJzogMywKKyAgICAgICAgJ3NpemUnOiA5LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDksCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDggLyAzICsgMSAvIDIsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ1Byb2Nlc3MgMScsIDMpCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVyMycsCisgICAgICAgICdvd25zJzogMywKKyAgICAgICAgJ2ltcG9ydGFuY2UnOiAzLAorICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA4IC8gMyArIDEgLyAyICsgMSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnb3duZWQnLCAnUHJvY2VzcyAxJywgMykKKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdpbXBvcnRhbmNlX25vdEVxdWFsJywgWworICAgIFsgIC8vIEdNRCAob25lIGltcG9ydGFuY2UgdW5kZWZpbmVkIGFuZCBlcXVhbCBzaXplcykuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVkJywKKyAgICAgICAgJ2d1aWQnOiAxLAorICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA0LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCdvd25lcjEnLCAnZ2xvYmFsIHNwYWNlJywgMCwgJ293bmVyMicsICdnbG9iYWwgc3BhY2UnLCAxKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjEnLAorICAgICAgICAnb3ducyc6IDEsCisgICAgICAgICdzaXplJzogNiwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA2LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjInLAorICAgICAgICAnb3ducyc6IDEsCisgICAgICAgICdpbXBvcnRhbmNlJzogMSwKKyAgICAgICAgJ3NpemUnOiA2LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ2dsb2JhbCBzcGFjZScsIDEpCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDEgKG9uZSBpbXBvcnRhbmNlIHVuZGVmaW5lZCBhbmQgZGlmZmVyZW50IHNpemVzKS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnb3duZWQnLAorICAgICAgICAnZ3VpZCc6IDIsCisgICAgICAgICdzaXplJzogMjAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMjAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ293bmVyMScsICdQcm9jZXNzIDAnLCAtMSwgJ293bmVyMicsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjEnLAorICAgICAgICAnb3ducyc6IDIsCisgICAgICAgICdpbXBvcnRhbmNlJzogLTEsCisgICAgICAgICdzaXplJzogMTYsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ1Byb2Nlc3MgMCcsIC0xKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjInLAorICAgICAgICAnb3ducyc6IDIsCisgICAgICAgICdzaXplJzogMTAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQyIChhbGwgaW1wb3J0YW5jZXMgZGVmaW5lZCBhbmQgZGlmZmVyZW50IHNpemVzKS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnb3duZWQnLAorICAgICAgICAnZ3VpZCc6IDMsCisgICAgICAgICdzaXplJzogMTUsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTUsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDUsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ293bmVyMScsICdQcm9jZXNzIDEnLCA0LCAnb3duZXIyJywgJ1Byb2Nlc3MgMScsIDMsCisgICAgICAgICAgICAgICdvd25lcjMnLCAnUHJvY2VzcyAxJywgMikKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnb3duZXIxJywKKyAgICAgICAgJ293bnMnOiAzLAorICAgICAgICAnaW1wb3J0YW5jZSc6IDQsCisgICAgICAgICdzaXplJzogOCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA4LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA4LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdQcm9jZXNzIDEnLCA0KQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjInLAorICAgICAgICAnb3ducyc6IDMsCisgICAgICAgICdpbXBvcnRhbmNlJzogMywKKyAgICAgICAgJ3NpemUnOiA2LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ1Byb2Nlc3MgMScsIDMpCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVyMycsCisgICAgICAgICdvd25zJzogMywKKyAgICAgICAgJ2ltcG9ydGFuY2UnOiAyLAorICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdQcm9jZXNzIDEnLCAyKQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICAvLyBFeGFtcGxlIHRha2VuIGZyb20gR2xvYmFsTWVtb3J5RHVtcC5jYWxjdWxhdGVEdW1wT3duZXJzaGlwQ29lZmZpY2llbnRfKCkKKyAgLy8gZG9jdW1lbnRhdGlvbi4KKyAgY2FsY3VsYXRpb25UZXN0KCdpbXBvcnRhbmNlX21hbnlPd25lcnMnLCBbCisgICAgWyAgLy8gR01ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lZCcsCisgICAgICAgICdndWlkJzogNCwKKyAgICAgICAgJ3NpemUnOiAxMCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMiwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVkSW5mbygnb3duZXIxJywgJ1Byb2Nlc3MgMCcsIDIsCisgICAgICAgICAgICAgICdzb21lX3BhcmVudC9vd25lcjInLCAnUHJvY2VzcyAxJywgMiwgJ293bmVyMycsICdQcm9jZXNzIDInLCAxLAorICAgICAgICAgICAgICAnb3duZXI0JywgJ1Byb2Nlc3MgMicsIDApCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDEuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVyMScsCisgICAgICAgICdvd25zJzogNCwKKyAgICAgICAgJ2ltcG9ydGFuY2UnOiAyLAorICAgICAgICAnc2l6ZSc6IDYsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNiwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNiAvIDIsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ2dsb2JhbCBzcGFjZScsIDIpCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDIuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3NvbWVfcGFyZW50JywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA3LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA2IC8gMiArIDEsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdvd25lcjInLAorICAgICAgICAgICAgJ293bnMnOiA0LAorICAgICAgICAgICAgJ2ltcG9ydGFuY2UnOiAyLAorICAgICAgICAgICAgJ3NpemUnOiA3LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA3LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNiAvIDIgKyAxLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ2dsb2JhbCBzcGFjZScsIDIpCisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQzLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjMnLAorICAgICAgICAnb3ducyc6IDQsCisgICAgICAgICdpbXBvcnRhbmNlJzogMSwKKyAgICAgICAgJ3NpemUnOiA1LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDUsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ2dsb2JhbCBzcGFjZScsIDEpCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVyNCcsCisgICAgICAgICdvd25zJzogNCwKKyAgICAgICAgJ2ltcG9ydGFuY2UnOiAwLAorICAgICAgICAnc2l6ZSc6IDgsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogOCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnb3duZWQnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdpbXBvcnRhbmNlX2NoYWluT3duZXJzaGlwcycsIFsKKyAgICBbICAvLyBHTUQuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ293bmVkJywKKyAgICAgICAgJ2d1aWQnOiA1LAorICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCdvd25lcjEnLCAnUHJvY2VzcyAwJywgMikKKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnb3duZXIxJywKKyAgICAgICAgJ293bnMnOiA1LAorICAgICAgICAnaW1wb3J0YW5jZSc6IDIsCisgICAgICAgICdndWlkJzogNiwKKyAgICAgICAgJ3NpemUnOiA2LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDYsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDIsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ3N1Ym93bmVyMScsICdQcm9jZXNzIDAnLCAwKSwKKyAgICAgICAgICBvd25lckluZm8oJ293bmVkJywgJ2dsb2JhbCBzcGFjZScsIDIpCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3N1Ym93bmVyMScsCisgICAgICAgICdvd25zJzogNiwKKyAgICAgICAgJ3NpemUnOiA0LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ293bmVyMScsICdQcm9jZXNzIDAnLCAwKQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICBbICAvLyBQTUQyLgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdvd25lcjInLAorICAgICAgICAnb3ducyc6IDUsCisgICAgICAgICdpbXBvcnRhbmNlJzogMSwKKyAgICAgICAgJ2d1aWQnOiA4LAorICAgICAgICAnc2l6ZSc6IDgsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogOCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMiAtIDIgLyA0LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCdzdWJvd25lcjInLCAnUHJvY2VzcyAxJywgMCksCisgICAgICAgICAgb3duZXJJbmZvKCdvd25lZCcsICdnbG9iYWwgc3BhY2UnLCAxKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdzdWJvd25lcjInLAorICAgICAgICAnb3ducyc6IDgsCisgICAgICAgICdzaXplJzogMiwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAyLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyIC8gNCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnb3duZXIyJywgJ1Byb2Nlc3MgMScsIDApCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnaW1wb3J0YW5jZV9uZXN0ZWQnLCBbCisgICAgWworICAgICAgeworICAgICAgICAnbmFtZSc6ICdncmV5JywKKyAgICAgICAgJ2d1aWQnOiAxNSwKKyAgICAgICAgJ3NpemUnOiAyMCwKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAyMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNiwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVkSW5mbygnYmx1ZScsICdnbG9iYWwgc3BhY2UnLCAxLCAncHVycGxlJywgJ2dsb2JhbCBzcGFjZScsIDIpCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2JsdWUnLAorICAgICAgICAnZ3VpZCc6IDE4LAorICAgICAgICAnb3ducyc6IDE1LAorICAgICAgICAnaW1wb3J0YW5jZSc6IDEsCisgICAgICAgICdzaXplJzogMTQsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDEsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lZEluZm8oJ3JlZCcsICdnbG9iYWwgc3BhY2UnLCAwKSwKKyAgICAgICAgICBvd25lckluZm8oJ2dyZXknLCAnZ2xvYmFsIHNwYWNlJywgMSkKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAncHVycGxlJywKKyAgICAgICAgJ293bnMnOiAxNSwKKyAgICAgICAgJ2ltcG9ydGFuY2UnOiAyLAorICAgICAgICAnc2l6ZSc6IDcsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogNywKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNywKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnZ3JleScsICdnbG9iYWwgc3BhY2UnLCAyKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICd5ZWxsb3cnLAorICAgICAgICAnb3ducyc6IDIxLAorICAgICAgICAnaW1wb3J0YW5jZSc6IDMsCisgICAgICAgICdzaXplJzogMTAsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTAsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDMsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ3JlZCcsICdnbG9iYWwgc3BhY2UnLCAzKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdyZWQnLAorICAgICAgICAnZ3VpZCc6IDIxLAorICAgICAgICAnb3ducyc6IDE4LAorICAgICAgICAnc2l6ZSc6IDEyLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEyLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCd5ZWxsb3cnLCAnZ2xvYmFsIHNwYWNlJywgMywgJ2dyZWVuJywgJ2dsb2JhbCBzcGFjZScsIDMpLAorICAgICAgICAgIG93bmVySW5mbygnYmx1ZScsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAnbmFtZSc6ICdncmVlbicsCisgICAgICAgICdvd25zJzogMjEsCisgICAgICAgICdpbXBvcnRhbmNlJzogMywKKyAgICAgICAgJ3NpemUnOiA4LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDgsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDIsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICBvd25lckluZm8oJ3JlZCcsICdnbG9iYWwgc3BhY2UnLCAzKQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICBjYWxjdWxhdGlvblRlc3QoJ2ltcG9ydGFuY2Vfc2luZ2xlUmVmaW5lbWVudCcsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Y4JywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxMywKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTMsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICdvd25zJzogMSwKKyAgICAgICAgICAgICdzaXplJzogMTEsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDExLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTEsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVySW5mbygndjgvaGVhcHMnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA0LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ29iamVjdDEnLAorICAgICAgICAgICAgICAgICdvd25zJzogMiwKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDcsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA3LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDcsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICAgICAgb3duZXJJbmZvKCd2OC9oZWFwcy9oZWFwMScsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnaGVhcHMnLAorICAgICAgICAgICAgJ2d1aWQnOiAxLAorICAgICAgICAgICAgJ3NpemUnOiAxMywKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTMsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgaW5mb3JtYXRpb25JbmZvKC9cYm92ZXJsYXBzXGIuKidvYmplY3RzJy4qXGIxMVwuMCBCXGIvKQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDIsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVkSW5mbygndjgvb2JqZWN0cycsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJzx1bnNwZWNpZmllZD4nLAorICAgICAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDMsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMQorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnaGVhcDEnLAorICAgICAgICAgICAgICAgICdndWlkJzogMiwKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDEwLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTAsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgICAgICBvd25lZEluZm8oJ3Y4L29iamVjdHMvb2JqZWN0MScsICdnbG9iYWwgc3BhY2UnLCAwKQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgXSk7CisKKyAgY2FsY3VsYXRpb25UZXN0KCdpbXBvcnRhbmNlX3NoYXJlZFJlZmluZW1lbnQnLCBbCisgICAgWyAgLy8gR01ELgorICAgICAgeworICAgICAgICAnbmFtZSc6ICdzaGFyZWRfYml0bWFwJywKKyAgICAgICAgJ2d1aWQnOiAwLAorICAgICAgICAnc2l6ZSc6IDIzLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIzLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA1LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCd0aWxlX21hbmFnZXInLCAnUHJvY2VzcyAwJywgMiwgJ2dwdScsICdQcm9jZXNzIDEnLCAxKQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnPHVuc3BlY2lmaWVkPicsCisgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEzLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTMgKiA1IC8gKDEzICsgMykKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2JpdG1hcDB4NycsCisgICAgICAgICAgICAnZ3VpZCc6IDk5OSwKKyAgICAgICAgICAgICdzaXplJzogMTAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMyAqIDUgLyAoMTMgKyAzKSwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZWRJbmZvKCd0aWxlX21hbmFnZXIvdGlsZTQyJywgJ1Byb2Nlc3MgMCcsIDEsCisgICAgICAgICAgICAgICAgICAnZ3B1L2NodW5rLTNcXC4xNCcsICdQcm9jZXNzIDEnLCAyKQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMS4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndGlsZV9tYW5hZ2VyJywKKyAgICAgICAgJ293bnMnOiAwLAorICAgICAgICAnaW1wb3J0YW5jZSc6IDIsCisgICAgICAgICdzaXplJzogMTIsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMTIsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDUgKyAyLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZXJJbmZvKCdzaGFyZWRfYml0bWFwJywgJ2dsb2JhbCBzcGFjZScsIDIpCisgICAgICAgIF0sCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNSwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3RpbGU0MicsCisgICAgICAgICAgICAnb3ducyc6IDk5OSwKKyAgICAgICAgICAgICdpbXBvcnRhbmNlJzogMSwKKyAgICAgICAgICAgICdzaXplJzogNywKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNywKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDIsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVySW5mbygnc2hhcmVkX2JpdG1hcC9iaXRtYXAweDcnLCAnZ2xvYmFsIHNwYWNlJywgMSkKKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDIuCisgICAgICB7CisgICAgICAgICduYW1lJzogJ2dwdScsCisgICAgICAgICdvd25zJzogMCwKKyAgICAgICAgJ2ltcG9ydGFuY2UnOiAxLAorICAgICAgICAnc2l6ZSc6IDE2LAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE2LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiA2ICsgNSwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygnc2hhcmVkX2JpdG1hcCcsICdnbG9iYWwgc3BhY2UnLCAxKQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnPHVuc3BlY2lmaWVkPicsCisgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDExLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnY2h1bmstMy4xNCcsCisgICAgICAgICAgICAnb3ducyc6IDk5OSwKKyAgICAgICAgICAgICdpbXBvcnRhbmNlJzogMiwKKyAgICAgICAgICAgICdzaXplJzogNSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNSwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDUsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVySW5mbygnc2hhcmVkX2JpdG1hcC9iaXRtYXAweDcnLCAnZ2xvYmFsIHNwYWNlJywgMikKKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIC8vIEV4YW1wbGUgdGFrZW4gZnJvbSBodHRwczovL2dvby5nbC9mS2cwZHQuCisgIGNhbGN1bGF0aW9uVGVzdCgnZG9jdW1lbnRhdGlvbkV4YW1wbGUnLCBbCisgICAgWyAgLy8gR01ELCBHbG9iYWwgKHNoYXJlZCkgbWVtb3J5LgorICAgICAgeworICAgICAgICAnbmFtZSc6ICd1bmtub3duJywKKyAgICAgICAgJ2d1aWQnOiAyLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE2LAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgb3duZWRJbmZvKCdzaGFyZWRiaXRtYXAvMHg3JywgJ1Byb2Nlc3MgMCcsIDEsCisgICAgICAgICAgICAgICd2OC9oZWFwcy8xJywgJ1Byb2Nlc3MgMScsIDIpCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgIFsgIC8vIFBNRDEsIEJyb3dzZXIgcHJvY2Vzcy4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAnc2hhcmVkYml0bWFwJywKKyAgICAgICAgJ3NpemUnOiAxNywKKyAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxNywKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogOSwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJzx1bnNwZWNpZmllZD4nLAorICAgICAgICAgICAgJ3NraXBfYnVpbGQnOiB0cnVlLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnMHg3JywKKyAgICAgICAgICAgICdzaXplJzogMTYsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE2LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogOCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgb3duZXJJbmZvKCd1bmtub3duJywgJ2dsb2JhbCBzcGFjZScsIDEpCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ293bnMnOiAyLAorICAgICAgICAgICAgJ2ltcG9ydGFuY2UnOiAxLAorICAgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnPHVuc3BlY2lmaWVkPicsCisgICAgICAgICAgICAgICAgJ3NraXBfYnVpbGQnOiB0cnVlLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogMTYsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogOAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAneScKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisgICAgWyAgLy8gUE1EMiwgUmVuZGVyZXIgcHJvY2Vzcy4KKyAgICAgIHsKKyAgICAgICAgJ25hbWUnOiAndjgnLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEzLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxMywKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ2hlYXBzJywKKyAgICAgICAgICAgICdndWlkJzogMTAwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxMiwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBpbmZvcm1hdGlvbkluZm8oL1xib3ZlcmxhcHNcYi4qJ29iamVjdHMnLipcYjlcLjAgQlxiLykKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAzLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICBvd25lZEluZm8oJ3Y4L29iamVjdHMvc3RyaW5ncycsICdQcm9jZXNzIDEnLCAwKQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJzEnLAorICAgICAgICAgICAgICAgICdzaXplJzogOCwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDgsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMiwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgICAgICBvd25lckluZm8oJ3Vua25vd24nLCAnZ2xvYmFsIHNwYWNlJywgMikKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICdvd25zJzogMiwKKyAgICAgICAgICAgICAgICAnaW1wb3J0YW5jZSc6IDIKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJzInLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNCwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxLAorICAgICAgICAgICAgICAgICdzaXplJzogNAorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdvYmplY3RzJywKKyAgICAgICAgICAgICdzaXplJzogMTAsCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTAsCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBbCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICAgICAnc2tpcF9idWlsZCc6IHRydWUsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDEKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ3N0cmluZ3MnLAorICAgICAgICAgICAgICAgICdzaXplJzogOSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDksCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogOSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgICAgICBvd25lckluZm8oJ3Y4L2hlYXBzJywgJ1Byb2Nlc3MgMScsIDApCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAnb3ducyc6IDEwMAorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uIE5ldmVydGhlbGVzcywgdGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHdlIGNhbgorICAvLyBoYW5kbGUgaW52YWxpZCBzaXplcyAocGFyZW50IGR1bXAgYmVpbmcgc21hbGxlciB0aGFuIGl0cyBhZ2dyZWdhdGVkCisgIC8vIGNoaWxkcmVuIGFuZCBvd25lZCBkdW1wIGJlaW5nIHNtYWxsZXIgdGhhbiBpdHMgbGFyZ2VzdCBvd25lcikgZ3JhY2VmdWxseS4KKyAgY2FsY3VsYXRpb25UZXN0KCdpbnZhbGlkU2l6ZXMnLCBbCisgICAgWworICAgICAgeworICAgICAgICAnbmFtZSc6ICdyb290MScsCisgICAgICAgICdzaXplJzogMjQsCisgICAgICAgICdleHBlY3RlZF9zaXplJzogMjQsCisgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQsCisgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICc8dW5zcGVjaWZpZWQ+JywKKyAgICAgICAgICAgICdza2lwX2J1aWxkJzogdHJ1ZSwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplJzogNCwKKyAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDQKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3BhcmVudCcsCisgICAgICAgICAgICAnc2l6ZSc6IDE3LCAgLy8gSW52YWxpZDogY2hpbGQgaGFzIGxhcmdlciBzaXplLgorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAyMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICB3YXJuaW5nSW5mbygvXGJsZXNzIHRoYW5cYi4qXGJjaGlsZHJlblxiLipcYjIwXC4wIEJcYi8pCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMCwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2NoaWxkJywKKyAgICAgICAgICAgICAgICAnZ3VpZCc6IDEsCisgICAgICAgICAgICAgICAgJ3NpemUnOiAxMCwgIC8vIEludmFsaWQ6IG93bmVyIGhhcyBsYXJnZXIgc2l6ZS4KKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICAgICAgd2FybmluZ0luZm8oL1xibGVzcyB0aGFuXGIuKlxibGFyZ2VzdCBvd25lclxiLipcYjIwXC4wIEJcYi8pCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAwLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZV9pbmZvcyc6IFsKKyAgICAgICAgICAgICAgICAgIG93bmVkSW5mbygncm9vdDInLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Jvb3QyJywKKyAgICAgICAgJ293bnMnOiAxLAorICAgICAgICAnc2l6ZSc6IDIwLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDIwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAyMCwKKyAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgIG93bmVySW5mbygncm9vdDEvcGFyZW50L2NoaWxkJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIF0pOworCisgIGNhbGN1bGF0aW9uVGVzdCgnbXVsdGlwbGVJbmZvcycsIFsKKyAgICBbCisgICAgICB7CisgICAgICAgICduYW1lJzogJ3Jvb3QnLAorICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemUnOiAxMCwKKyAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3BhcmVudDEnLAorICAgICAgICAgICAgJ3NpemUnOiA1LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiAxMCwKKyAgICAgICAgICAgICdleHBlY3RlZF9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICB3YXJuaW5nSW5mbygvXGJsZXNzIHRoYW5cYi4qXGJjaGlsZHJlblxiLipcYjEwLjAgQlxiLyksCisgICAgICAgICAgICAgIGluZm9ybWF0aW9uSW5mbygvXGJvdmVybGFwc1xiLioncGFyZW50MicuKlxiMTdcLjAgQlxiLipcYm92ZXJsYXBzXGIuKidwYXJlbnQzJy4qXGI3LjAgQlxiLykgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMSwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2NoaWxkJywKKyAgICAgICAgICAgICAgICAnZ3VpZCc6IDMsCisgICAgICAgICAgICAgICAgJ3NpemUnOiAxMCwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDEwLAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDEsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICAgICAgb3duZWRJbmZvKCdyb290L3BhcmVudDIvY2hpbGQxJywgJ2dsb2JhbCBzcGFjZScsIDAsCisgICAgICAgICAgICAgICAgICAgICAgJ3Jvb3QvcGFyZW50Mi9jaGlsZDInLCAnZ2xvYmFsIHNwYWNlJywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAncm9vdC9wYXJlbnQzJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdwYXJlbnQyJywKKyAgICAgICAgICAgIC8vIE5PVEUocGV0cmNlcm1hayk6IFRoZSBleHBlY3RlZCBzaXplIGhlcmUgaXMgYSBsaXR0bGUgc3RyYW5nZQorICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGUgY2hpbGRyZW4gYm90aCBvd24gdGhlIHNhbWUgZHVtcCAobmFtZWx5CisgICAgICAgICAgICAvLyByb290L3BhcmVudDEvY2hpbGQpLiBJdCB3b3VsZCwgdGhlcmVmb3JlLCBwcm9iYWJseSBtYWtlIG1vcmUKKyAgICAgICAgICAgIC8vIHNlbnNlIGZvciB0aGUgY2FsY3VsYXRlZCBzaXplIHRvIGJlIDkuIFNpbmNlIHRoaXMgaXMgYW4gdW5saWtlbHkKKyAgICAgICAgICAgIC8vIGNhc2UgYW5kIHdvdWxkIGNvbXBsaWNhdGUgdGhlIChhbHJlYWR5IGNvbXBsZXgpIHNpemUKKyAgICAgICAgICAgIC8vIGNhbGN1bGF0aW9uLCB3ZSB3aWxsIG5vdyBrZWVwIHRoZSBhbGdvcml0aG0gYXMgaXMuCisgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDE3LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogMTQgLyAzICsgMiwKKyAgICAgICAgICAgICdjaGlsZHJlbic6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2NoaWxkMScsCisgICAgICAgICAgICAgICAgJ293bnMnOiAzLAorICAgICAgICAgICAgICAgICdzaXplJzogOSwKKyAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfc2l6ZSc6IDksCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNyAvIDMgKyAxIC8gMiArIDEsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICAgICAgb3duZXJJbmZvKCdyb290L3BhcmVudDEvY2hpbGQnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdjaGlsZDInLAorICAgICAgICAgICAgICAgICdvd25zJzogMywKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDgsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA4LAorICAgICAgICAgICAgICAgICdleHBlY3RlZF9lZmZlY3RpdmVfc2l6ZSc6IDcgLyAzICsgMSAvIDIsCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplX2luZm9zJzogWworICAgICAgICAgICAgICAgICAgb3duZXJJbmZvKCdyb290L3BhcmVudDEvY2hpbGQnLCAnZ2xvYmFsIHNwYWNlJywgMCkKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3BhcmVudDMnLAorICAgICAgICAgICAgJ3NpemUnOiA3LAorICAgICAgICAgICAgJ2V4cGVjdGVkX3NpemUnOiA3LAorICAgICAgICAgICAgJ2V4cGVjdGVkX2VmZmVjdGl2ZV9zaXplJzogNyAvIDMsCisgICAgICAgICAgICAnZXhwZWN0ZWRfZWZmZWN0aXZlX3NpemVfaW5mb3MnOiBbCisgICAgICAgICAgICAgIG93bmVySW5mbygncm9vdC9wYXJlbnQxL2NoaWxkJywgJ2dsb2JhbCBzcGFjZScsIDApCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ293bnMnOiAzCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICBdKTsKKworICAvLyBDaGVjayB0aGF0IHNpemUgY2FsY3VsYXRpb24gaXMgTk9UIHByZWNlZGVkIGJ5IGF0dHJpYnV0ZQorICAvLyBhZ2dyZWdhdGlvbiwgd2hpY2ggd291bGQgcmVjdXJzaXZlbHkgc3VtIHVwIHNpemUgYXR0cmlidXRlcy4KKyAgdGVzdCgnY2FsY3VsYXRlR3JhcGhBdHRyaWJ1dGVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBidWlsZER1bXBUcmVlcyhbCisgICAgICAgIHVuZGVmaW5lZCwgIC8vIEdNRC4KKyAgICAgICAgWyAgLy8gUE1ELgorICAgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ3Jvb3QnLAorICAgICAgICAgICAgJ2NoaWxkcmVuJzogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnb3duZXJfY2hpbGQnLAorICAgICAgICAgICAgICAgICdvd25zJzogOSwKKyAgICAgICAgICAgICAgICAnc2l6ZSc6IDcKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ293bmVkX2NoaWxkJywKKyAgICAgICAgICAgICAgICAnZ3VpZCc6IDksCisgICAgICAgICAgICAgICAgJ3NpemUnOiAyMAorICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICBdLCBtb2RlbCk7CisgICAgfSk7CisgICAgdmFyIHBtZCA9IG1vZGVsLmdldFByb2Nlc3MoMCkubWVtb3J5RHVtcHNbMF07CisKKyAgICB2YXIgcm9vdER1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3Jvb3QnKTsKKyAgICBhc3NlcnRTaXplQXR0cmlidXRlKHJvb3REdW1wLCAnc2l6ZScsIDIwKTsKKyAgICBhc3NlcnRTaXplQXR0cmlidXRlKHJvb3REdW1wLCAnZWZmZWN0aXZlX3NpemUnLCAyMCk7CisKKyAgICB2YXIgb3duZXJDaGlsZER1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoCisgICAgICAgICdyb290L293bmVyX2NoaWxkJyk7CisgICAgYXNzZXJ0U2l6ZUF0dHJpYnV0ZShvd25lckNoaWxkRHVtcCwgJ3NpemUnLCA3KTsKKyAgICBhc3NlcnRTaXplQXR0cmlidXRlKG93bmVyQ2hpbGREdW1wLCAnZWZmZWN0aXZlX3NpemUnLCA3LCBbCisgICAgICBvd25lckluZm8oJ3Jvb3Qvb3duZWRfY2hpbGQnLCAnUHJvY2VzcyAwJywgMCkKKyAgICBdKTsKKworICAgIHZhciBvd25lZENoaWxkRHVtcCA9IHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgKKyAgICAgICAgJ3Jvb3Qvb3duZWRfY2hpbGQnKTsKKyAgICBhc3NlcnRTaXplQXR0cmlidXRlKG93bmVkQ2hpbGREdW1wLCAnc2l6ZScsIDIwLAorICAgICAgICBbaW5mb3JtYXRpb25JbmZvKC9cYm92ZXJsYXBzXGIuKidvd25lcl9jaGlsZCcuKlxiN1wuMCBCXGIvKV0pOworICAgIGFzc2VydFNpemVBdHRyaWJ1dGUob3duZWRDaGlsZER1bXAsICdlZmZlY3RpdmVfc2l6ZScsIDEzLAorICAgICAgICBbb3duZWRJbmZvKCdyb290L293bmVyX2NoaWxkJywgJ1Byb2Nlc3MgMCcsIDApXSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pbnN0YW50X2V2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE2YjM4ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgSW5zdGFudEV2ZW50IGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEluc3RhbnRFdmVudFR5cGUgPSB7CisgICAgR0xPQkFMOiAxLAorICAgIFBST0NFU1M6IDIKKyAgfTsKKworICBmdW5jdGlvbiBJbnN0YW50RXZlbnQoY2F0ZWdvcnksIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgYXJncykgeworICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzKTsKKworICAgIHRoaXMuY2F0ZWdvcnkgPSBjYXRlZ29yeSB8fCAnJzsKKyAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy5jb2xvcklkID0gY29sb3JJZDsKKyAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgdGhpcy5hcmdzID0gYXJnczsKKworICAgIHRoaXMudHlwZSA9IHVuZGVmaW5lZDsKKyAgfTsKKworICBJbnN0YW50RXZlbnQucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUKKyAgfTsKKworICBmdW5jdGlvbiBHbG9iYWxJbnN0YW50RXZlbnQoY2F0ZWdvcnksIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgYXJncykgeworICAgIEluc3RhbnRFdmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgIHRoaXMudHlwZSA9IEluc3RhbnRFdmVudFR5cGUuR0xPQkFMOworICB9OworCisgIEdsb2JhbEluc3RhbnRFdmVudC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBJbnN0YW50RXZlbnQucHJvdG90eXBlLAorICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgeworICAgICAgcmV0dXJuICdHbG9iYWwgaW5zdGFudCBldmVudCAnICsgdGhpcy50aXRsZSArICcgQCAnICsKKyAgICAgICAgICB0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQoc3RhcnQpOworICAgIH0KKyAgfTsKKworICBmdW5jdGlvbiBQcm9jZXNzSW5zdGFudEV2ZW50KGNhdGVnb3J5LCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MpIHsKKyAgICBJbnN0YW50RXZlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICB0aGlzLnR5cGUgPSBJbnN0YW50RXZlbnRUeXBlLlBST0NFU1M7CisgIH07CisKKyAgUHJvY2Vzc0luc3RhbnRFdmVudC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBJbnN0YW50RXZlbnQucHJvdG90eXBlLAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICByZXR1cm4gJ1Byb2Nlc3MtbGV2ZWwgaW5zdGFudCBldmVudCAnICsgdGhpcy50aXRsZSArICcgQCAnICsKKyAgICAgICAgICB0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQoc3RhcnQpOworICAgIH0KKyAgfTsKKworICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAorICAgICAgSW5zdGFudEV2ZW50LAorICAgICAgeworICAgICAgICBuYW1lOiAnaW5zdGFudEV2ZW50JywKKyAgICAgICAgcGx1cmFsTmFtZTogJ2luc3RhbnRFdmVudHMnLAorICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLXNpbmdsZS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3JywKKyAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLW11bHRpLWluc3RhbnQtZXZlbnQtc3ViLXZpZXcnCisgICAgICB9KTsKKworICByZXR1cm4geworICAgIEdsb2JhbEluc3RhbnRFdmVudDogR2xvYmFsSW5zdGFudEV2ZW50LAorICAgIFByb2Nlc3NJbnN0YW50RXZlbnQ6IFByb2Nlc3NJbnN0YW50RXZlbnQsCisKKyAgICBJbnN0YW50RXZlbnRUeXBlOiBJbnN0YW50RXZlbnRUeXBlLAorICAgIEluc3RhbnRFdmVudDogSW5zdGFudEV2ZW50CisgIH07Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2ludGVyYWN0aW9uX3JlY29yZC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmE4NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbXBvdW5kX2V2ZW50X3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aW1lZF9ldmVudC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIHZhciBDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5Db21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGU7CisKKyAgZnVuY3Rpb24gSW50ZXJhY3Rpb25SZWNvcmQodGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBkdXJhdGlvbikgeworICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7CisgICAgdGhpcy50aXRsZSA9IHRpdGxlOworICAgIHRoaXMuY29sb3JJZCA9IGNvbG9ySWQ7CisgICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uOworICAgIHRoaXMuYXJncyA9IHt9OworICAgIHRoaXMuYXNzb2NpYXRlZEV2ZW50cyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICB9CisgIEludGVyYWN0aW9uUmVjb3JkLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLlRpbWVkRXZlbnQucHJvdG90eXBlLAorCisgICAgZ2V0IHN1YlNsaWNlcygpIHsKKyAgICAgIHJldHVybiBbXTsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICByZXR1cm4gdGhpcy50aXRsZSArICcgaW50ZXJhY3Rpb24gYXQgJyArCisgICAgICAgICAgdHIuYi51bml0cy5UaW1lU3RhbXAuZm9ybWF0KHRoaXMuc3RhcnQpOworICAgIH0sCisKKyAgICBjb21wdXRlQ29tcG91bmRFdmVuU2VsZWN0aW9uU3RhdGU6IGZ1bmN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdmFyIGNlc3MgPSBDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUuTk9UX1NFTEVDVEVEOworICAgICAgaWYgKHNlbGVjdGlvbi5jb250YWlucyh0aGlzKSkKKyAgICAgICAgY2VzcyB8PSBDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUuRVZFTlRfU0VMRUNURUQ7CisKKyAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRFdmVudHMuaW50ZXJzZWN0aW9uSXNFbXB0eShzZWxlY3Rpb24pKQorICAgICAgICByZXR1cm4gY2VzczsKKworICAgICAgdmFyIGFsbENvbnRhaW5lZCA9IHRoaXMuYXNzb2NpYXRlZEV2ZW50cy5ldmVyeShmdW5jdGlvbihldmVudCkgeworICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmNvbnRhaW5zKGV2ZW50KTsKKyAgICAgIH0pOworCisgICAgICBpZiAoYWxsQ29udGFpbmVkKQorICAgICAgICBjZXNzIHw9IENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZS5BTExfQVNTT0NJQVRFRF9FVkVOVFNfU0VMRUNURUQ7CisgICAgICBlbHNlCisgICAgICAgIGNlc3MgfD0gQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlLlNPTUVfQVNTT0NJQVRFRF9FVkVOVFNfU0VMRUNURUQ7CisgICAgICByZXR1cm4gY2VzczsKKyAgICB9CisgIH07CisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIEludGVyYWN0aW9uUmVjb3JkLAorICAgICAgeworICAgICAgICBuYW1lOiAnaW50ZXJhY3Rpb24nLAorICAgICAgICBwbHVyYWxOYW1lOiAnaW50ZXJhY3Rpb25zJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1zaW5nbGUtaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3JywKKyAgICAgICAgbXVsdGlWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLW11bHRpLWludGVyYWN0aW9uLXJlY29yZC1zdWItdmlldycKKyAgICAgIH0pOworCisgIHJldHVybiB7CisgICAgSW50ZXJhY3Rpb25SZWNvcmQ6IEludGVyYWN0aW9uUmVjb3JkCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pbnRlcmFjdGlvbl9yZWNvcmRfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pbnRlcmFjdGlvbl9yZWNvcmRfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ZDMxZTMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2ludGVyYWN0aW9uX3JlY29yZF90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvc3R1Yl9yYWlsX2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgdGVzdF91dGlscyA9IHRyLmMudGVzdF91dGlsczsKKyAgdmFyIENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLkNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZTsKKworICBmdW5jdGlvbiBjcmVhdGVNb2RlbChvcHRfY3VzdG9taXplTW9kZWxDYWxsYmFjaykgeworICAgIHJldHVybiB0ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBtb2RlbC5wMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIG1vZGVsLnQyID0gbW9kZWwucDEuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisKKyAgICAgIG1vZGVsLnMxID0gbW9kZWwudDIuc2xpY2VHcm91cC5wdXNoU2xpY2UodGVzdF91dGlscy5uZXdTbGljZUV4KHsKKyAgICAgICAgdGl0bGU6ICdhJywgc3RhcnQ6IDEwLCBlbmQ6IDIwCisgICAgICB9KSk7CisgICAgICBtb2RlbC5zMiA9IG1vZGVsLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKHRlc3RfdXRpbHMubmV3U2xpY2VFeCh7CisgICAgICAgIHRpdGxlOiAnYicsIHN0YXJ0OiAyMCwgZW5kOiAzMAorICAgICAgfSkpOworCisgICAgICBtb2RlbC5pcjEgPSBuZXcgdHIuZS5yYWlsLlN0dWJSQUlMSW50ZXJhY3Rpb25SZWNvcmQoeworICAgICAgICBzdGFydDogMTAwLCBlbmQ6IDIwMCwKKyAgICAgICAgcmFpbFR5cGVOYW1lOiAncmFpbF9yZXNwb25zZScsCisgICAgICAgIG5vcm1hbGl6ZWRFZmZpY2llbmN5OiAxLiwKKyAgICAgICAgbm9ybWFsaXplZFVzZXJQYWluOiAwLjAKKyAgICAgIH0pOworICAgICAgbW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQobW9kZWwuaXIxKTsKKyAgICAgIG1vZGVsLmlyMS5hc3NvY2lhdGVkRXZlbnRzLnB1c2gobW9kZWwuczEpOworICAgICAgbW9kZWwuaXIxLmFzc29jaWF0ZWRFdmVudHMucHVzaChtb2RlbC5zMik7CisKKyAgICAgIGlmIChvcHRfY3VzdG9taXplTW9kZWxDYWxsYmFjaykKKyAgICAgICAgb3B0X2N1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sobW9kZWwpOworICAgIH0pOworICB9CisgIHRlc3QoJ25vdFNlbGVjdGVkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gY3JlYXRlTW9kZWwoKTsKKworICAgIHZhciBzZWwgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKworICAgIGFzc2VydC5lcXVhbChDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUuTk9UX1NFTEVDVEVELAorICAgICAgICAgICAgICAgICBtb2RlbC5pcjEuY29tcHV0ZUNvbXBvdW5kRXZlblNlbGVjdGlvblN0YXRlKHNlbCkpOworICB9KTsKKworICB0ZXN0KCdkaXJlY3RTZWxlY3RlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IGNyZWF0ZU1vZGVsKCk7CisKKyAgICB2YXIgc2VsID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgc2VsLnB1c2gobW9kZWwuaXIxKTsKKworICAgIGFzc2VydC5lcXVhbChDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUuRVZFTlRfU0VMRUNURUQsCisgICAgICAgICAgICAgICAgIG1vZGVsLmlyMS5jb21wdXRlQ29tcG91bmRFdmVuU2VsZWN0aW9uU3RhdGUoc2VsKSk7CisgIH0pOworCisgIHRlc3QoJ2RpcmVjdEFuZFNvbWVBc3NvY2lhdGVkU2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBjcmVhdGVNb2RlbCgpOworCisgICAgdmFyIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbC5wdXNoKG1vZGVsLmlyMSk7CisgICAgc2VsLnB1c2gobW9kZWwuczEpOworCisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUuRVZFTlRfQU5EX1NPTUVfQVNTT0NJQVRFRF9TRUxFQ1RFRCwKKyAgICAgICAgbW9kZWwuaXIxLmNvbXB1dGVDb21wb3VuZEV2ZW5TZWxlY3Rpb25TdGF0ZShzZWwpKTsKKworICB9KTsKKworICB0ZXN0KCdhbGxBc3NvY2lhdGVkRXZlbnRzU2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBjcmVhdGVNb2RlbCgpOworCisgICAgdmFyIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbC5wdXNoKG1vZGVsLnMxKTsKKyAgICBzZWwucHVzaChtb2RlbC5zMik7CisKKyAgICBhc3NlcnQuZXF1YWwoQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlLkFMTF9BU1NPQ0lBVEVEX0VWRU5UU19TRUxFQ1RFRCwKKyAgICAgICAgICAgICAgICAgbW9kZWwuaXIxLmNvbXB1dGVDb21wb3VuZEV2ZW5TZWxlY3Rpb25TdGF0ZShzZWwpKTsKKyAgfSk7CisKKyAgdGVzdCgnZGlyZWN0QW5kQWxsQXNzb2NpYXRlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IGNyZWF0ZU1vZGVsKCk7CisKKyAgICB2YXIgc2VsID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgc2VsLnB1c2gobW9kZWwuaXIxKTsKKyAgICBzZWwucHVzaChtb2RlbC5zMSk7CisgICAgc2VsLnB1c2gobW9kZWwuczIpOworCisgICAgYXNzZXJ0LmVxdWFsKENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZS5FVkVOVF9BTkRfQUxMX0FTU09DSUFURURfU0VMRUNURUQsCisgICAgICAgICAgICAgICAgIG1vZGVsLmlyMS5jb21wdXRlQ29tcG91bmRFdmVuU2VsZWN0aW9uU3RhdGUoc2VsKSk7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvaXJfY292ZXJhZ2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvaXJfY292ZXJhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzI1NzJkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pcl9jb3ZlcmFnZS5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGdldEFsbEFzc29jaWF0ZWRFdmVudHMoaXJzKSB7CisgICAgdmFyIGFsbEFzc29jaWF0ZWRFdmVudHMgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBpcnMuZm9yRWFjaChmdW5jdGlvbihpcikgeworICAgICAgaXIuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIC8vIEZsb3dFdmVudHMgZG9uJ3QgaGF2ZSBwYXJlbnRDb250YWluZXJzIG9yIGNwdUR1cmF0aW9ucywgYW5kIGl0J3MKKyAgICAgICAgLy8gYW5ub3lpbmcgdG8gaGlnaGxpZ2h0IHRoZW0uCisgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIHRyLm1vZGVsLkZsb3dFdmVudCkKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIGFsbEFzc29jaWF0ZWRFdmVudHMucHVzaChldmVudCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgICByZXR1cm4gYWxsQXNzb2NpYXRlZEV2ZW50czsKKyAgfQorCisgIGZ1bmN0aW9uIGdldFVuYXNzb2NpYXRlZEV2ZW50cyhtb2RlbCwgYXNzb2NpYXRlZEV2ZW50cykgeworICAgIHZhciB1bmFzc29jaWF0ZWRFdmVudHMgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBtb2RlbC5nZXRBbGxQcm9jZXNzZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHByb2Nlc3MpIHsKKyAgICAgIGZvciAodmFyIHRpZCBpbiBwcm9jZXNzLnRocmVhZHMpIHsKKyAgICAgICAgdmFyIHRocmVhZCA9IHByb2Nlc3MudGhyZWFkc1t0aWRdOworICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgLy8gVGhlIHNldCBvZiB1bmFzc29jaWF0ZWQgZXZlbnRzIGNvbnRhaW5zIG9ubHkgZXZlbnRzIHRoYXQgYXJlIG5vdCBpbgorICAgICAgICAgIC8vIHRoZSBzZXQgb2YgYXNzb2NpYXRlZCBldmVudHMuCisgICAgICAgICAgLy8gT25seSBhZGQgZXZlbnQgdG8gdGhlIHNldCBvZiB1bmFzc29jaWF0ZWQgZXZlbnRzIGlmIGl0IGlzIG5vdCBpbgorICAgICAgICAgIC8vIHRoZSBzZXQgb2YgYXNzb2NpYXRlZCBldmVudHMuCisgICAgICAgICAgaWYgKCFhc3NvY2lhdGVkRXZlbnRzLmNvbnRhaW5zKGV2ZW50KSkKKyAgICAgICAgICAgIHVuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKGV2ZW50KTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgfSk7CisgICAgcmV0dXJuIHVuYXNzb2NpYXRlZEV2ZW50czsKKyAgfQorCisgIGZ1bmN0aW9uIGdldFRvdGFsQ3B1RHVyYXRpb24oZXZlbnRzKSB7CisgICAgdmFyIGNwdU1zID0gMDsKKyAgICBldmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCkgeworICAgICAgLy8gQWRkIHVwIGV2ZW50cycgY3B1IGR1cmF0aW9uIGlmIHRoZXkgaGF2ZSBhbnkuCisgICAgICAvLyBBdm9pZCBkb3VibGUtY291bnRpbmcgY3B1IGR1cmF0aW9uIGJ5IG9ubHkgY291bnRpbmcgdG9wLWxldmVsIGV2ZW50cy4KKyAgICAgIGlmIChldmVudC5jcHVEdXJhdGlvbiAmJiBldmVudC5pc1RvcExldmVsKQorICAgICAgICBjcHVNcyArPSBldmVudC5jcHVEdXJhdGlvbjsKKyAgICB9KTsKKyAgICByZXR1cm4gY3B1TXM7CisgIH0KKworICBmdW5jdGlvbiBnZXRJUkNvdmVyYWdlRnJvbU1vZGVsKG1vZGVsKSB7CisgICAgdmFyIGFzc29jaWF0ZWRFdmVudHMgPSBnZXRBbGxBc3NvY2lhdGVkRXZlbnRzKG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMpOworCisgICAgaWYgKCFhc3NvY2lhdGVkRXZlbnRzLmxlbmd0aCkKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICB2YXIgdW5hc3NvY2lhdGVkRXZlbnRzID0gZ2V0VW5hc3NvY2lhdGVkRXZlbnRzKAorICAgICAgICBtb2RlbCwgYXNzb2NpYXRlZEV2ZW50cyk7CisKKyAgICB2YXIgYXNzb2NpYXRlZENwdU1zID0gZ2V0VG90YWxDcHVEdXJhdGlvbihhc3NvY2lhdGVkRXZlbnRzKTsKKyAgICB2YXIgdW5hc3NvY2lhdGVkQ3B1TXMgPSBnZXRUb3RhbENwdUR1cmF0aW9uKHVuYXNzb2NpYXRlZEV2ZW50cyk7CisKKyAgICB2YXIgdG90YWxFdmVudENvdW50ID0gYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGggKyB1bmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoOworICAgIHZhciB0b3RhbENwdU1zID0gYXNzb2NpYXRlZENwdU1zICsgdW5hc3NvY2lhdGVkQ3B1TXM7CisgICAgdmFyIGNvdmVyZWRDcHVSYXRpbyA9IHVuZGVmaW5lZDsKKyAgICB2YXIgdW5jb3ZlcmVkQ3B1UmF0aW8gPSB1bmRlZmluZWQ7CisgICAgaWYgKHRvdGFsQ3B1TXMpIHsKKyAgICAgIGNvdmVyZWRDcHVSYXRpbyA9IGFzc29jaWF0ZWRDcHVNcyAvIHRvdGFsQ3B1TXM7CisgICAgICB1bmNvdmVyZWRDcHVSYXRpbyA9IDEgLSBjb3ZlcmVkQ3B1UmF0aW87CisgICAgfQorCisgICAgcmV0dXJuIHsKKyAgICAgIGFzc29jaWF0ZWRFdmVudHM6IGFzc29jaWF0ZWRFdmVudHMsCisgICAgICB1bmFzc29jaWF0ZWRFdmVudHM6IHVuYXNzb2NpYXRlZEV2ZW50cywKKyAgICAgIGFzc29jaWF0ZWRDcHVNczogYXNzb2NpYXRlZENwdU1zLAorICAgICAgdW5hc3NvY2lhdGVkQ3B1TXM6IHVuYXNzb2NpYXRlZENwdU1zLAorICAgICAgY292ZXJlZEV2ZW50c1JhdGlvOiBhc3NvY2lhdGVkRXZlbnRzLmxlbmd0aCAvIHRvdGFsRXZlbnRDb3VudCwKKyAgICAgIHVuY292ZXJlZEV2ZW50c1JhdGlvOiB1bmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoIC8gdG90YWxFdmVudENvdW50LAorICAgICAgY292ZXJlZENwdVJhdGlvOiBjb3ZlcmVkQ3B1UmF0aW8sCisgICAgICB1bmNvdmVyZWRDcHVSYXRpbzogdW5jb3ZlcmVkQ3B1UmF0aW8KKyAgICB9OworICB9CisKKyAgcmV0dXJuIHsKKyAgICBnZXRJUkNvdmVyYWdlRnJvbU1vZGVsOiBnZXRJUkNvdmVyYWdlRnJvbU1vZGVsCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pcl9jb3ZlcmFnZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2lyX2NvdmVyYWdlX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzJlZWRjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9pcl9jb3ZlcmFnZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9pcl9jb3ZlcmFnZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7CisKKyAgdGVzdCgnY29tcHV0ZUNvdmVyYWdlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgICAgdmFyIHMwID0gdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAge3RpdGxlOiAnczAnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMS4wfSkpOworICAgICAgczAuY3B1RHVyYXRpb24gPSAwLjQ7CisgICAgICBzMC5pc1RvcExldmVsID0gdHJ1ZTsKKyAgICAgIHZhciB1bmFzc29jaWF0ZWRFdmVudCA9IHRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICAgIHt0aXRsZTogJ3MxJywgc3RhcnQ6IDYuMCwgZHVyYXRpb246IDEuMH0pKTsKKyAgICAgIHVuYXNzb2NpYXRlZEV2ZW50LmNwdUR1cmF0aW9uID0gMC44OworICAgICAgdW5hc3NvY2lhdGVkRXZlbnQuaXNUb3BMZXZlbCA9IHRydWU7CisgICAgICB2YXIgczIgPSB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgICB7dGl0bGU6ICdzMicsIHN0YXJ0OiAyLjAsIGR1cmF0aW9uOiAxLjB9KSk7CisgICAgICBzMi5jcHVEdXJhdGlvbiA9IDAuNDsKKyAgICAgIHMyLmlzVG9wTGV2ZWwgPSB0cnVlOworICAgICAgdmFyIGYwID0gdHIuYy50ZXN0X3V0aWxzLm5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgdGl0bGU6ICd0ZXN0MScsCisgICAgICAgIHN0YXJ0OiAwLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBzdGFydFNsaWNlOiBzMCwKKyAgICAgICAgZW5kU2xpY2U6IHMyLAorICAgICAgICBpZDogJzB4MTAwJworICAgICAgfSk7CisgICAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZjApOworICAgICAgdmFyIGFzMSA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXgoeworICAgICAgICB0aXRsZTogJ0lucHV0TGF0ZW5jeTo6R2VzdHVyZVRhcCcsCisgICAgICAgIGNhdDogJ2JlbmNobWFyayxsYXRlbmN5SW5mbycsCisgICAgICAgIHN0YXJ0OiAyLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBpZDogJzB4MTAwJywKKyAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgc3RhcnRUaHJlYWQ6IHRocmVhZAorICAgICAgfSk7CisgICAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goYXMxKTsKKyAgICAgIHZhciBpciA9IG5ldyB0ci5tb2RlbC5JbnRlcmFjdGlvblJlY29yZCgndGVzdCcsIDAsIDAsIDcpOworICAgICAgaXIuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKGFzMSk7CisgICAgICBpci5hc3NvY2lhdGVkRXZlbnRzLnB1c2goczApOworICAgICAgaXIuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKHMyKTsKKyAgICAgIGlyLmFzc29jaWF0ZWRFdmVudHMucHVzaChmMCk7CisgICAgICBtb2RlbC5hZGRJbnRlcmFjdGlvblJlY29yZChpcik7CisgICAgfSk7CisKKyAgICB2YXIgY292ZXJhZ2UgPSB0ci5tb2RlbC5nZXRJUkNvdmVyYWdlRnJvbU1vZGVsKG1vZGVsKTsKKyAgICBhc3NlcnQuZXF1YWwoMywgY292ZXJhZ2UuYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGgpOworICAgIGFzc2VydC5lcXVhbCgxLCBjb3ZlcmFnZS51bmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoKTsKKyAgICBhc3NlcnQuY2xvc2VUbygwLjc1LCBjb3ZlcmFnZS5jb3ZlcmVkRXZlbnRzUmF0aW8sIDFlLTMpOworICAgIGFzc2VydC5jbG9zZVRvKDAuMjUsIGNvdmVyYWdlLnVuY292ZXJlZEV2ZW50c1JhdGlvLCAxZS0zKTsKKyAgICBhc3NlcnQuY2xvc2VUbygwLjgsIGNvdmVyYWdlLmFzc29jaWF0ZWRDcHVNcywgMWUtMyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMC44LCBjb3ZlcmFnZS51bmFzc29jaWF0ZWRDcHVNcywgMWUtMyk7CisgICAgYXNzZXJ0LmNsb3NlVG8oMC41LCBjb3ZlcmFnZS5jb3ZlcmVkQ3B1UmF0aW8sIDFlLTMpOworICAgIGFzc2VydC5jbG9zZVRvKDAuNSwgY292ZXJhZ2UudW5jb3ZlcmVkQ3B1UmF0aW8sIDFlLTMpOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwva2VybmVsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2tlcm5lbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMTAwZjkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2tlcm5lbC5odG1sCkBAIC0wLDAgKzEsMTQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jcHUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3Byb2Nlc3NfYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9pdGVyYXRpb25faGVscGVycy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBQcm9jZXNzIGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgdmFyIENwdSA9IHRyLm1vZGVsLkNwdTsKKyAgdmFyIFByb2Nlc3NCYXNlID0gdHIubW9kZWwuUHJvY2Vzc0Jhc2U7CisKKyAgLyoqCisgICAqIFRoZSBLZXJuZWwgcmVwcmVzZW50cyBrZXJuZWwtbGV2ZWwgb2JqZWN0cyBpbiB0aGUgbW9kZWwuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gS2VybmVsKG1vZGVsKSB7CisgICAgUHJvY2Vzc0Jhc2UuY2FsbCh0aGlzLCBtb2RlbCk7CisKKyAgICB0aGlzLmNwdXMgPSB7fTsKKyAgICB0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF8gPSB1bmRlZmluZWQ7CisgIH07CisKKyAgLyoqCisgICAqIENvbXBhcmlzb24gYmV0d2VlbiBrZXJuZWxzIGlzIHByZXR0eSBtZWFuaW5nbGVzcy4KKyAgICovCisgIEtlcm5lbC5jb21wYXJlID0gZnVuY3Rpb24oeCwgeSkgeworICAgIHJldHVybiAwOworICB9OworCisgIEtlcm5lbC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBQcm9jZXNzQmFzZS5wcm90b3R5cGUsCisKKyAgICBjb21wYXJlVG86IGZ1bmN0aW9uKHRoYXQpIHsKKyAgICAgIHJldHVybiBLZXJuZWwuY29tcGFyZSh0aGlzLCB0aGF0KTsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICByZXR1cm4gJ0tlcm5lbCc7CisgICAgfSwKKworICAgIGdldCB1c2VyRnJpZW5kbHlEZXRhaWxzKCkgeworICAgICAgcmV0dXJuICdLZXJuZWwnOworICAgIH0sCisKKyAgICBnZXQgc3RhYmxlSWQoKSB7CisgICAgICByZXR1cm4gJ0tlcm5lbCc7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge0NwdX0gR2V0cyBhIHNwZWNpZmljIENwdSBvciBjcmVhdGVzIG9uZSBpZgorICAgICAqIGl0IGRvZXMgbm90IGV4aXN0LgorICAgICAqLworICAgIGdldE9yQ3JlYXRlQ3B1OiBmdW5jdGlvbihjcHVOdW1iZXIpIHsKKyAgICAgIGlmICghdGhpcy5jcHVzW2NwdU51bWJlcl0pCisgICAgICAgIHRoaXMuY3B1c1tjcHVOdW1iZXJdID0gbmV3IENwdSh0aGlzLCBjcHVOdW1iZXIpOworICAgICAgcmV0dXJuIHRoaXMuY3B1c1tjcHVOdW1iZXJdOworICAgIH0sCisKKyAgICBnZXQgc29mdHdhcmVNZWFzdXJlZENwdUNvdW50KCkgeworICAgICAgcmV0dXJuIHRoaXMuc29mdHdhcmVNZWFzdXJlZENwdUNvdW50XzsKKyAgICB9LAorCisgICAgc2V0IHNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudChzb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQpIHsKKyAgICAgIGlmICh0aGlzLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudF8gIT09IHVuZGVmaW5lZCAmJgorICAgICAgICAgIHRoaXMuc29mdHdhcmVNZWFzdXJlZENwdUNvdW50XyAhPT0gc29mdHdhcmVNZWFzdXJlZENwdUNvdW50KSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigKKyAgICAgICAgICAgICdDYW5ub3QgY2hhbmdlIHRoZSBzb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQgb25jZSBpdCBpcyBzZXQnKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnRfID0gc29mdHdhcmVNZWFzdXJlZENwdUNvdW50OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBFc3RpbWF0ZXMgaG93IG1hbnkgY3B1cyBhcmUgaW4gdGhlIHN5c3RlbSwgZm9yIHVzZSBpbiBzeXN0ZW0gbG9hZAorICAgICAqIGVzdGltYXRpb24uCisgICAgICoKKyAgICAgKiBJZiBrZXJuZWwgdHJhY2Ugd2FzIHByb3ZpZGVkLCB1c2VzIHRoYXQgZGF0YS4gT3RoZXJ3aXNlLCB1c2VzIHRoZQorICAgICAqIHNvZnR3YXJlIG1lYXN1cmVkIGNwdSBjb3VudC4KKyAgICAgKi8KKyAgICBnZXQgYmVzdEd1ZXNzQXRDcHVDb3VudCgpIHsKKyAgICAgIHZhciByZWFsQ3B1Q291bnQgPSB0ci5iLmRpY3Rpb25hcnlMZW5ndGgodGhpcy5jcHVzKTsKKyAgICAgIGlmIChyZWFsQ3B1Q291bnQgIT09IDApCisgICAgICAgIHJldHVybiByZWFsQ3B1Q291bnQ7CisgICAgICByZXR1cm4gdGhpcy5zb2Z0d2FyZU1lYXN1cmVkQ3B1Q291bnQ7CisgICAgfSwKKworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICBQcm9jZXNzQmFzZS5wcm90b3R5cGUudXBkYXRlQm91bmRzLmNhbGwodGhpcyk7CisgICAgICBmb3IgKHZhciBjcHVOdW1iZXIgaW4gdGhpcy5jcHVzKSB7CisgICAgICAgIHZhciBjcHUgPSB0aGlzLmNwdXNbY3B1TnVtYmVyXTsKKyAgICAgICAgY3B1LnVwZGF0ZUJvdW5kcygpOworICAgICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZShjcHUuYm91bmRzKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKKyAgICAgIFByb2Nlc3NCYXNlLnByb3RvdHlwZS5jcmVhdGVTdWJTbGljZXMuY2FsbCh0aGlzKTsKKyAgICAgIGZvciAodmFyIGNwdU51bWJlciBpbiB0aGlzLmNwdXMpIHsKKyAgICAgICAgdmFyIGNwdSA9IHRoaXMuY3B1c1tjcHVOdW1iZXJdOworICAgICAgICBjcHUuY3JlYXRlU3ViU2xpY2VzKCk7CisgICAgICB9CisgICAgfSwKKworICAgIGFkZENhdGVnb3JpZXNUb0RpY3Q6IGZ1bmN0aW9uKGNhdGVnb3JpZXNEaWN0KSB7CisgICAgICBQcm9jZXNzQmFzZS5wcm90b3R5cGUuYWRkQ2F0ZWdvcmllc1RvRGljdC5jYWxsKHRoaXMsIGNhdGVnb3JpZXNEaWN0KTsKKyAgICAgIGZvciAodmFyIGNwdU51bWJlciBpbiB0aGlzLmNwdXMpCisgICAgICAgIHRoaXMuY3B1c1tjcHVOdW1iZXJdLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpOworICAgIH0sCisKKyAgICBnZXRTZXR0aW5nc0tleTogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gJ2tlcm5lbCc7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7CisgICAgICBQcm9jZXNzQmFzZS5wcm90b3R5cGUuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzLmNhbGwoCisgICAgICAgICAgdGhpcywgY2FsbGJhY2ssIG9wdF90aGlzKTsKKyAgICAgIGZvciAodmFyIGNwdUlkIGluIHRoaXMuY3B1cykKKyAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5jcHVzW2NwdUlkXSk7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIFByb2Nlc3NCYXNlLnByb3RvdHlwZS5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyLmNhbGwoCisgICAgICAgICAgdGhpcywgZXZlbnRUeXBlUHJlZGljYXRlLCBjYWxsYmFjaywgb3B0X3RoaXMpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEtlcm5lbDogS2VybmVsCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9rZXJuZWxfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9rZXJuZWxfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyOGQxNDUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2tlcm5lbF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2tlcm5lbC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2Jlc3RHdWVzc0F0Q3B1Q291bnRXaXRoTm9EYXRhJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbXSwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICB9KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQobS5rZXJuZWwuYmVzdEd1ZXNzQXRDcHVDb3VudCk7CisgIH0pOworCisgIHRlc3QoJ2Jlc3RHdWVzc0F0Q3B1Q291bnRXaXRoQ3B1RGF0YScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgbS5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICB2YXIgYzEgPSBtLmtlcm5lbC5nZXRPckNyZWF0ZUNwdSgxKTsKKyAgICAgIHZhciBjMiA9IG0ua2VybmVsLmdldE9yQ3JlYXRlQ3B1KDIpOworICAgIH0pOworICAgIGFzc2VydC5lcXVhbChtLmtlcm5lbC5iZXN0R3Vlc3NBdENwdUNvdW50LCAyKTsKKyAgfSk7CisKKyAgdGVzdCgnYmVzdEd1ZXNzQXRDcHVDb3VudFdpdGhTb2Z0d2FyZUNwdUNvdW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbXSwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgIG0ua2VybmVsLnNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCA9IDI7CisgICAgfSk7CisgICAgYXNzZXJ0LmVxdWFsKG0ua2VybmVsLmJlc3RHdWVzc0F0Q3B1Q291bnQsIDIpOworICB9KTsKKworICB0ZXN0KCdrZXJuZWxTdGFibGVJZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworCisgICAgYXNzZXJ0LmVxdWFsKG1vZGVsLmtlcm5lbC5zdGFibGVJZCwgJ0tlcm5lbCcpOworICB9KTsKKworICB0ZXN0KCdrZXJuZWxUaW1lU2hpZnRpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbChbXSk7CisKKyAgICB2YXIgY3RyMSA9IG0ua2VybmVsLmdldE9yQ3JlYXRlQ291bnRlcignY2F0JywgJ2N0cjEnKTsKKyAgICB2YXIgc2VyaWVzMSA9IG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdhJywgMCk7CisgICAgc2VyaWVzMS5hZGRDb3VudGVyU2FtcGxlKDEwMCwgNSk7CisgICAgc2VyaWVzMS5hZGRDb3VudGVyU2FtcGxlKDIwMCwgNSk7CisgICAgY3RyMS5hZGRTZXJpZXMoc2VyaWVzMSk7CisKKyAgICB2YXIgY3RyMiA9IG0ua2VybmVsLmdldE9yQ3JlYXRlQ3B1KDEpLmdldE9yQ3JlYXRlQ291bnRlcignY2F0JywgJ2N0cjInKTsKKyAgICB2YXIgc2VyaWVzMiA9IG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdiJywgMCk7CisgICAgc2VyaWVzMi5hZGRDb3VudGVyU2FtcGxlKDMwMCwgNSk7CisgICAgc2VyaWVzMi5hZGRDb3VudGVyU2FtcGxlKDQwMCwgNSk7CisgICAgY3RyMi5hZGRTZXJpZXMoc2VyaWVzMik7CisKKyAgICBtLmtlcm5lbC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKDIpOworCisgICAgYXNzZXJ0LmVxdWFsKGN0cjEuc2VyaWVzWzBdLnNhbXBsZXNbMF0udGltZXN0YW1wLCAxMDIpOworICAgIGFzc2VydC5lcXVhbChjdHIxLnNlcmllc1swXS5zYW1wbGVzWzFdLnRpbWVzdGFtcCwgMjAyKTsKKworICAgIGFzc2VydC5lcXVhbChjdHIyLnNlcmllc1swXS5zYW1wbGVzWzBdLnRpbWVzdGFtcCwgMzAyKTsKKyAgICBhc3NlcnQuZXF1YWwoY3RyMi5zZXJpZXNbMF0uc2FtcGxlc1sxXS50aW1lc3RhbXAsIDQwMik7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9sb2NhdGlvbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9sb2NhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNmQ5NzYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL2xvY2F0aW9uLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBZQ29tcG9uZW50IGlzIGEgY2xhc3MgdGhhdCBoYW5kbGVzIHN0b3JpbmcgdGhlIHN0YWJsZUlkIGFuZCB0aGUgcGVyY2VudGFnZQorICAgKiBvZmZzZXQgaW4gdGhlIHkgZGlyZWN0aW9uIG9mIGFsbCB0cmFja3Mgd2l0aGluIGEgc3BlY2lmaWMgdmlld1ggYW5kIHZpZXdZCisgICAqIGNvb3JkaW5hdGUuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gWUNvbXBvbmVudChzdGFibGVJZCwgeVBlcmNlbnRPZmZzZXQpIHsKKyAgICB0aGlzLnN0YWJsZUlkID0gc3RhYmxlSWQ7CisgICAgdGhpcy55UGVyY2VudE9mZnNldCA9IHlQZXJjZW50T2Zmc2V0OworICB9CisKKyAgWUNvbXBvbmVudC5wcm90b3R5cGUgPSB7CisgICAgdG9EaWN0OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIHN0YWJsZUlkOiB0aGlzLnN0YWJsZUlkLAorICAgICAgICB5UGVyY2VudE9mZnNldDogdGhpcy55UGVyY2VudE9mZnNldAorICAgICAgfTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIExvY2F0aW9uIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIGEgc3BhdGlhbCBsb2NhdGlvbiBvbiB0aGUgdGltZWxpbmUKKyAgICogdGhhdCBpcyBzcGVjaWZpZWQgYnkgcGVyY2VudCBvZmZzZXRzIHdpdGhpbiB0cmFja3MgcmF0aGVyIHRoYW4gc3BlY2lmaWMKKyAgICogcG9pbnRzLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIExvY2F0aW9uKHhXb3JsZCwgeUNvbXBvbmVudHMpIHsKKyAgICB0aGlzLnhXb3JsZF8gPSB4V29ybGQ7CisgICAgdGhpcy55Q29tcG9uZW50c18gPSB5Q29tcG9uZW50czsKKyAgfTsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBMb2NhdGlvbiBnaXZlbiBieSB4IGFuZCB5IGNvb3JkaW5hdGVzIHdpdGggcmVzcGVjdCB0bworICAgKiB0aGUgdGltZWxpbmUncyBkcmF3aW5nIGNhbnZhcy4KKyAgICovCisgIExvY2F0aW9uLmZyb21WaWV3Q29vcmRpbmF0ZXMgPSBmdW5jdGlvbih2aWV3cG9ydCwgdmlld1gsIHZpZXdZKSB7CisgICAgdmFyIGR0ID0gdmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisgICAgdmFyIHhXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCh2aWV3WCk7CisgICAgdmFyIHlDb21wb25lbnRzID0gW107CisKKyAgICAvLyBTaW5jZSB3ZSdyZSBnaXZlbiBjb29yZGluYXRlcyB3aXRoaW4gdGhlIHRpbWVsaW5lIGNhbnZhcywgd2UgbmVlZCB0bworICAgIC8vIGNvbnZlcnQgdGhlbSB0byBkb2N1bWVudCBjb29yZGluYXRlcyB0byBnZXQgdGhlIGVsZW1lbnQuCisgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KAorICAgICAgICAgIHZpZXdYICsgdmlld3BvcnQubW9kZWxUcmFja0NvbnRhaW5lci5jYW52YXMub2Zmc2V0TGVmdCwKKyAgICAgICAgICB2aWV3WSArIHZpZXdwb3J0Lm1vZGVsVHJhY2tDb250YWluZXIuY2FudmFzLm9mZnNldFRvcCk7CisgICAgLy8gQnVpbGQgeUNvbXBvbmVudHMgYnkgY2FsY3VsYXRpbmcgcGVyY2VudGFnZSBvZmZzZXQgd2l0aCByZXNwZWN0IHRvCisgICAgLy8gZWFjaCBwYXJlbnQgdHJhY2suCisgICAgd2hpbGUgKGVsZW0gaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spIHsKKyAgICAgIGlmIChlbGVtLmV2ZW50Q29udGFpbmVyKSB7CisgICAgICAgIHZhciBib3VuZFJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICB2YXIgeVBlcmNlbnRPZmZzZXQgPSAodmlld1kgLSBib3VuZFJlY3QudG9wKSAvIGJvdW5kUmVjdC5oZWlnaHQ7CisgICAgICAgIHlDb21wb25lbnRzLnB1c2goCisgICAgICAgICAgICBuZXcgWUNvbXBvbmVudChlbGVtLmV2ZW50Q29udGFpbmVyLnN0YWJsZUlkLCB5UGVyY2VudE9mZnNldCkpOworICAgICAgfQorICAgICAgZWxlbSA9IGVsZW0ucGFyZW50RWxlbWVudDsKKyAgICB9CisKKyAgICBpZiAoeUNvbXBvbmVudHMubGVuZ3RoID09IDApCisgICAgICByZXR1cm47CisgICAgcmV0dXJuIG5ldyBMb2NhdGlvbih4V29ybGQsIHlDb21wb25lbnRzKTsKKyAgfQorCisgIExvY2F0aW9uLmZyb21TdGFibGVJZEFuZFRpbWVzdGFtcCA9IGZ1bmN0aW9uKHZpZXdwb3J0LCBzdGFibGVJZCwgdHMpIHsKKyAgICB2YXIgeFdvcmxkID0gdHM7CisgICAgdmFyIHlDb21wb25lbnRzID0gW107CisKKyAgICAvLyBUaGUgeSBjb21wb25lbnRzJyBwZXJjZW50YWdlIG9mZnNldHMgd2lsbCBiZSBjYWxjdWxhdGVkIHdpdGggcmVzcGVjdCB0bworICAgIC8vIHRoZSBib3VuZGluZ1JlY3QncyB0b3Agb2YgY29udGFpbmluZyB0cmFjay4KKyAgICB2YXIgY29udGFpbmVyVG9UcmFjayA9IHZpZXdwb3J0LmNvbnRhaW5lclRvVHJhY2tNYXA7CisgICAgdmFyIGVsZW0gPSBjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZChzdGFibGVJZCk7CisgICAgaWYgKCFlbGVtKQorICAgICAgcmV0dXJuOworCisgICAgdmFyIGZpcnN0WSA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOworICAgIHdoaWxlIChlbGVtIGluc3RhbmNlb2YgdHIudWkudHJhY2tzLlRyYWNrKSB7CisgICAgICBpZiAoZWxlbS5ldmVudENvbnRhaW5lcikgeworICAgICAgICB2YXIgYm91bmRSZWN0ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgdmFyIHlQZXJjZW50T2Zmc2V0ID0gKGZpcnN0WSAtIGJvdW5kUmVjdC50b3ApIC8gYm91bmRSZWN0LmhlaWdodDsKKyAgICAgICAgeUNvbXBvbmVudHMucHVzaCgKKyAgICAgICAgICAgIG5ldyBZQ29tcG9uZW50KGVsZW0uZXZlbnRDb250YWluZXIuc3RhYmxlSWQsIHlQZXJjZW50T2Zmc2V0KSk7CisgICAgICB9CisgICAgICBlbGVtID0gZWxlbS5wYXJlbnRFbGVtZW50OworICAgIH0KKworICAgIGlmICh5Q29tcG9uZW50cy5sZW5ndGggPT0gMCkKKyAgICAgIHJldHVybjsKKyAgICByZXR1cm4gbmV3IExvY2F0aW9uKHhXb3JsZCwgeUNvbXBvbmVudHMpOworICB9CisKKyAgTG9jYXRpb24ucHJvdG90eXBlID0geworCisgICAgZ2V0IHhXb3JsZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnhXb3JsZF87CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZpcnN0IHZhbGlkIGNvbnRhaW5pbmcgdHJhY2sgYmFzZWQgb24gdGhlCisgICAgICogaW50ZXJuYWwgeUNvbXBvbmVudHMuCisgICAgICovCisgICAgZ2V0Q29udGFpbmluZ1RyYWNrOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdmFyIGNvbnRhaW5lclRvVHJhY2sgPSB2aWV3cG9ydC5jb250YWluZXJUb1RyYWNrTWFwOworICAgICAgZm9yICh2YXIgaSBpbiB0aGlzLnlDb21wb25lbnRzXykgeworICAgICAgICB2YXIgeUNvbXBvbmVudCA9IHRoaXMueUNvbXBvbmVudHNfW2ldOworICAgICAgICB2YXIgdHJhY2sgPSBjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCh5Q29tcG9uZW50LnN0YWJsZUlkKTsKKyAgICAgICAgaWYgKHRyYWNrICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuIHRyYWNrOworICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIGFuZCByZXR1cm5zIHggYW5kIHkgY29vcmRpbmF0ZXMgb2YgdGhlIGN1cnJlbnQgbG9jYXRpb24gd2l0aAorICAgICAqIHJlc3BlY3QgdG8gdGhlIHRpbWVsaW5lJ3MgY2FudmFzLgorICAgICAqLworICAgIHRvVmlld0Nvb3JkaW5hdGVzOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdmFyIGR0ID0gdmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisgICAgICB2YXIgY29udGFpbmVyVG9UcmFjayA9IHZpZXdwb3J0LmNvbnRhaW5lclRvVHJhY2tNYXA7CisgICAgICB2YXIgdmlld1ggPSBkdC54V29ybGRUb1ZpZXcodGhpcy54V29ybGRfKTsKKworICAgICAgdmFyIHZpZXdZID0gLTE7CisgICAgICBmb3IgKHZhciBpbmRleCBpbiB0aGlzLnlDb21wb25lbnRzXykgeworICAgICAgICB2YXIgeUNvbXBvbmVudCA9IHRoaXMueUNvbXBvbmVudHNfW2luZGV4XTsKKyAgICAgICAgdmFyIHRyYWNrID0gY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoeUNvbXBvbmVudC5zdGFibGVJZCk7CisgICAgICAgIGlmICh0cmFjayAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdmFyIGJvdW5kUmVjdCA9IHRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgIHZpZXdZID0geUNvbXBvbmVudC55UGVyY2VudE9mZnNldCAqIGJvdW5kUmVjdC5oZWlnaHQgKyBib3VuZFJlY3QudG9wOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHJldHVybiB7CisgICAgICAgIHZpZXdYOiB2aWV3WCwKKyAgICAgICAgdmlld1k6IHZpZXdZCisgICAgICB9OworICAgIH0sCisKKyAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgeFdvcmxkOiB0aGlzLnhXb3JsZF8sCisgICAgICAgIHlDb21wb25lbnRzOiB0aGlzLnlDb21wb25lbnRzXworICAgICAgfTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBMb2NhdGlvbjogTG9jYXRpb24KKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjMyOWI0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbApAQCAtMCwwICsxLDEyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXR0cmlidXRlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIE1lbW9yeUFsbG9jYXRvckR1bXAgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBNZW1vcnlBbGxvY2F0b3JEdW1wKGNvbnRhaW5lck1lbW9yeUR1bXAsIGZ1bGxOYW1lLCBvcHRfZ3VpZCkgeworICAgIHRoaXMuZnVsbE5hbWUgPSBmdWxsTmFtZTsKKyAgICB0aGlzLnBhcmVudCA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmNoaWxkcmVuID0gW107CisgICAgdGhpcy5hdHRyaWJ1dGVzID0ge307CisKKyAgICAvLyBUaGUgYXNzb2NpYXRlZCBjb250YWluZXIgbWVtb3J5IGR1bXAuCisgICAgdGhpcy5jb250YWluZXJNZW1vcnlEdW1wID0gY29udGFpbmVyTWVtb3J5RHVtcDsKKworICAgIC8vIE93bmVyc2hpcCByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgorICAgIHRoaXMub3ducyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLm93bmVkQnkgPSBbXTsKKworICAgIC8vIFJldGVudGlvbiByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW1vcnkgYWxsb2NhdG9yIGR1bXBzLgorICAgIHRoaXMucmV0YWlucyA9IFtdOworICAgIHRoaXMucmV0YWluZWRCeSA9IFtdOworCisgICAgLy8gRm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KKyAgICB0aGlzLmd1aWQgPSBvcHRfZ3VpZDsKKyAgfTsKKworICBNZW1vcnlBbGxvY2F0b3JEdW1wLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgbmFtZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmZ1bGxOYW1lLnN1YnN0cmluZyh0aGlzLmZ1bGxOYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKKyAgICB9LAorCisgICAgZ2V0IHF1YW50aWZpZWROYW1lKCkgeworICAgICAgcmV0dXJuICdcJycgKyB0aGlzLmZ1bGxOYW1lICsgJ1wnIGluICcgKworICAgICAgICAgIHRoaXMuY29udGFpbmVyTWVtb3J5RHVtcC5jb250YWluZXJOYW1lOworICAgIH0sCisKKyAgICBpc0Rlc2NlbmRhbnRPZjogZnVuY3Rpb24ob3RoZXJEdW1wKSB7CisgICAgICB2YXIgZHVtcCA9IHRoaXM7CisgICAgICB3aGlsZSAoZHVtcCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChkdW1wID09PSBvdGhlckR1bXApCisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGR1bXAgPSBkdW1wLnBhcmVudDsKKyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgYWRkQXR0cmlidXRlOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgeworICAgICAgaWYgKG5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0R1cGxpY2F0ZSBhdHRyaWJ1dGUgbmFtZTogJyArIG5hbWUgKyAnLicpOworICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7CisgICAgfSwKKworICAgIGFnZ3JlZ2F0ZUF0dHJpYnV0ZXM6IGZ1bmN0aW9uKG9wdF9tb2RlbCkgeworICAgICAgdmFyIGF0dHJpYnV0ZXMgPSB7fTsKKworICAgICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkKSB7CisgICAgICAgIGNoaWxkLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXMob3B0X21vZGVsKTsKKyAgICAgICAgdHIuYi5pdGVySXRlbXMoY2hpbGQuYXR0cmlidXRlcywgZnVuY3Rpb24obmFtZSkgeworICAgICAgICAgIGF0dHJpYnV0ZXNbbmFtZV0gPSB0cnVlOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICB0ci5iLml0ZXJJdGVtcyhhdHRyaWJ1dGVzLCBmdW5jdGlvbihuYW1lKSB7CisgICAgICAgIHZhciBjaGlsZEF0dHJpYnV0ZXMgPSB0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbihjaGlsZCkgeworICAgICAgICAgIHJldHVybiBjaGlsZC5hdHRyaWJ1dGVzW25hbWVdOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgICAgdmFyIGN1cnJlbnRBdHRyaWJ1dGUgPSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07CisgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHRyLm1vZGVsLkF0dHJpYnV0ZS5hZ2dyZWdhdGUoCisgICAgICAgICAgICBjaGlsZEF0dHJpYnV0ZXMsIGN1cnJlbnRBdHRyaWJ1dGUsIG9wdF9tb2RlbCk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgZ2V0VmFsaWRTaXplQXR0cmlidXRlT3JVbmRlZmluZWQ6IGZ1bmN0aW9uKHNpemVBdHRyTmFtZSwgb3B0X21vZGVsKSB7CisgICAgICB2YXIgc2l6ZUF0dHIgPSB0aGlzLmF0dHJpYnV0ZXNbc2l6ZUF0dHJOYW1lXTsKKyAgICAgIGlmIChzaXplQXR0ciA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICBpZiAoIShzaXplQXR0ciBpbnN0YW5jZW9mIHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZSkpIHsKKyAgICAgICAgaWYgKG9wdF9tb2RlbCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgb3B0X21vZGVsLmltcG9ydFdhcm5pbmcoeworICAgICAgICAgICAgdHlwZTogJ21lbW9yeV9kdW1wX3BhcnNlX2Vycm9yJywKKyAgICAgICAgICAgIG1lc3NhZ2U6ICdcJycgKyBzaXplQXR0ck5hbWUgKyAnXCcgYXR0cmlidXRlIG9mIG1lbW9yeSBhbGxvY2F0b3IgJyArCisgICAgICAgICAgICAgICAgJ2R1bXAgXCcnICsgbWVtb3J5QWxsb2NhdG9yRHVtcC5mdWxsTmFtZSArICdcJyBpcyBub3QgYSBzY2FsYXIuJworICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICB9CisKKyAgICAgIHJldHVybiBzaXplQXR0cjsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gTWVtb3J5QWxsb2NhdG9yRHVtcExpbmsoc291cmNlLCB0YXJnZXQsIG9wdF9pbXBvcnRhbmNlKSB7CisgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CisgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7CisgICAgdGhpcy5pbXBvcnRhbmNlID0gb3B0X2ltcG9ydGFuY2U7CisgIH0KKworICByZXR1cm4geworICAgIE1lbW9yeUFsbG9jYXRvckR1bXA6IE1lbW9yeUFsbG9jYXRvckR1bXAsCisgICAgTWVtb3J5QWxsb2NhdG9yRHVtcExpbms6IE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXBfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXBfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYzVhZWUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcF90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgQ29udGFpbmVyTWVtb3J5RHVtcCA9IHRyLm1vZGVsLkNvbnRhaW5lck1lbW9yeUR1bXA7CisgIHZhciBNZW1vcnlBbGxvY2F0b3JEdW1wID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcDsKKyAgdmFyIE1lbW9yeUFsbG9jYXRvckR1bXBMaW5rID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcExpbms7CisgIHZhciBTY2FsYXJBdHRyaWJ1dGUgPSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGU7CisKKyAgZnVuY3Rpb24gbmV3Q2hpbGREdW1wKHBhcmVudER1bXAsIG5hbWUpIHsKKyAgICB2YXIgY2hpbGREdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoCisgICAgICAgIHBhcmVudER1bXAuY29udGFpbmVyTWVtb3J5RHVtcCwgcGFyZW50RHVtcC5mdWxsTmFtZSArICcvJyArIG5hbWUpOworICAgIGNoaWxkRHVtcC5wYXJlbnQgPSBwYXJlbnREdW1wOworICAgIHBhcmVudER1bXAuY2hpbGRyZW4ucHVzaChjaGlsZER1bXApOworICAgIHJldHVybiBjaGlsZER1bXA7CisgIH0KKworICB0ZXN0KCdtZW1vcnlBbGxvY2F0b3JEdW1wX2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRhaW5lckR1bXAgPSBuZXcgQ29udGFpbmVyTWVtb3J5RHVtcCg0Mik7CisgICAgY29udGFpbmVyRHVtcC5jb250YWluZXJOYW1lID0gJ3N1cGVyIGR1bXAnOworICAgIHZhciBkdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoY29udGFpbmVyRHVtcCwgJ3Y4L29iamVjdHMvb2JqZWN0NycpOworCisgICAgYXNzZXJ0LmVxdWFsKGR1bXAubmFtZSwgJ29iamVjdDcnKTsKKyAgICBhc3NlcnQuZXF1YWwoZHVtcC5mdWxsTmFtZSwgJ3Y4L29iamVjdHMvb2JqZWN0NycpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChkdW1wLmNvbnRhaW5lck1lbW9yeUR1bXAsIGNvbnRhaW5lckR1bXApOworICAgIGFzc2VydC5lcXVhbChkdW1wLnF1YW50aWZpZWROYW1lLCAnXCd2OC9vYmplY3RzL29iamVjdDdcJyBpbiBzdXBlciBkdW1wJyk7CisgIH0pOworCisgIHRlc3QoJ21lbW9yeUFsbG9jYXRvckR1bXBzX2FnZ3JlZ2F0ZUF0dHJpYnV0ZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbWQgPSBuZXcgQ29udGFpbmVyTWVtb3J5RHVtcCg0Mik7CisKKyAgICB2YXIgb2lscGFuRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKG1kLCAnb2lscGFuJyk7CisgICAgb2lscGFuRHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgNykpOworCisgICAgdmFyIG9pbHBhbkJ1Y2tldDFEdW1wID0gbmV3Q2hpbGREdW1wKG9pbHBhbkR1bXAsICdidWNrZXQxJyk7CisgICAgb2lscGFuQnVja2V0MUR1bXAuYWRkQXR0cmlidXRlKCdzaXplJywKKyAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCA1MTIpKTsKKyAgICBvaWxwYW5CdWNrZXQxRHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLAorICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgMykpOworICAgIG9pbHBhbkJ1Y2tldDFEdW1wLmFkZEF0dHJpYnV0ZSgnaW5uZXJfc2l6ZScsCisgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMjU2KSk7CisKKyAgICB2YXIgb2lscGFuQnVja2V0MkR1bXAgPSBuZXdDaGlsZER1bXAob2lscGFuRHVtcCwgJ2J1Y2tldDInKTsKKworICAgIHZhciBvaWxwYW5CdWNrZXQyU3RyaW5nc0R1bXAgPSBuZXdDaGlsZER1bXAob2lscGFuQnVja2V0MkR1bXAsICdzdHJpbmdzJyk7CisgICAgb2lscGFuQnVja2V0MlN0cmluZ3NEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsCisgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNTEyKSk7CisgICAgb2lscGFuQnVja2V0MlN0cmluZ3NEdW1wLmFkZEF0dHJpYnV0ZSgnb2JqZWN0c19jb3VudCcsCisgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ29iamVjdHMnLCA0KSk7CisgICAgb2lscGFuQnVja2V0MlN0cmluZ3NEdW1wLmFkZEF0dHJpYnV0ZSgnaW5uZXJfc2l6ZScsCisgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNTEyKSk7CisKKyAgICBvaWxwYW5EdW1wLmFnZ3JlZ2F0ZUF0dHJpYnV0ZXMoKTsKKworICAgIC8vIG9pbHBhbiBoYXMgKnNvbWUqIGF0dHJpYnV0ZXMgYWdncmVnYXRlZC4KKyAgICBhc3NlcnQuZXF1YWwob2lscGFuRHVtcC5hdHRyaWJ1dGVzWydvYmplY3RzX2NvdW50J10udmFsdWUsIDcpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5EdW1wLmF0dHJpYnV0ZXNbJ2lubmVyX3NpemUnXS52YWx1ZSwgNzY4KTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuRHVtcC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDEwMjQpOworCisgICAgLy8gb2lscGFuL2J1Y2tldDIgaGFzICphbGwqIGF0dHJpYnV0ZXMgYWdncmVnYXRlZC4KKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MkR1bXAuYXR0cmlidXRlc1snb2JqZWN0c19jb3VudCddLnZhbHVlLAorICAgICAgICA0KTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MkR1bXAuYXR0cmlidXRlc1snaW5uZXJfc2l6ZSddLnZhbHVlLCA1MTIpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQyRHVtcC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDUxMik7CisKKyAgICAvLyBvaWxwYW4vYnVja2V0Mi9zdHJpbmdzIGhhcyAqbm8qIGF0dHJpYnV0ZXMgYWdncmVnYXRlZC4KKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQnVja2V0MlN0cmluZ3NEdW1wLmF0dHJpYnV0ZXNbCisgICAgICAgICdvYmplY3RzX2NvdW50J10udmFsdWUsIDQpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQyU3RyaW5nc0R1bXAuYXR0cmlidXRlc1snaW5uZXJfc2l6ZSddLnZhbHVlLCA1MTIpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5CdWNrZXQyU3RyaW5nc0R1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCA1MTIpOworICB9KTsKKworICB0ZXN0KCdtZW1vcnlBbGxvY2F0b3JEdW1wc19pc0Rlc2NlbmRhbnRPZicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtZCA9IG5ldyBDb250YWluZXJNZW1vcnlEdW1wKDQyKTsKKworICAgIHZhciB2OER1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChtZCwgJ3Y4Jyk7CisgICAgdmFyIHY4SGVhcHNEdW1wID0gbmV3Q2hpbGREdW1wKHY4RHVtcCwgJ2hlYXBzJyk7CisgICAgdmFyIHY4T2JqZWN0c0R1bXAgPSBuZXdDaGlsZER1bXAodjhEdW1wLCAnb2JqZWN0cycpOworICAgIHZhciB2OE9iamVjdDFEdW1wID0gbmV3Q2hpbGREdW1wKHY4T2JqZWN0c0R1bXAsICdvYmoxJyk7CisgICAgdmFyIHY4T2JqZWN0MkR1bXAgPSBuZXdDaGlsZER1bXAodjhPYmplY3RzRHVtcCwgJ29iajInKTsKKworICAgIHZhciBvaWxwYW5EdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAobWQsICdvaWxwYW4nKTsKKworICAgIGFzc2VydC5pc1RydWUodjhEdW1wLmlzRGVzY2VuZGFudE9mKHY4RHVtcCkpOworICAgIGFzc2VydC5pc1RydWUodjhIZWFwc0R1bXAuaXNEZXNjZW5kYW50T2YodjhEdW1wKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh2OE9iamVjdHNEdW1wLmlzRGVzY2VuZGFudE9mKHY4RHVtcCkpOworICAgIGFzc2VydC5pc1RydWUodjhPYmplY3QxRHVtcC5pc0Rlc2NlbmRhbnRPZih2OER1bXApKTsKKyAgICBhc3NlcnQuaXNUcnVlKHY4T2JqZWN0MkR1bXAuaXNEZXNjZW5kYW50T2YodjhEdW1wKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh2OE9iamVjdHNEdW1wLmlzRGVzY2VuZGFudE9mKHY4T2JqZWN0c0R1bXApKTsKKyAgICBhc3NlcnQuaXNUcnVlKHY4T2JqZWN0MUR1bXAuaXNEZXNjZW5kYW50T2YodjhPYmplY3RzRHVtcCkpOworICAgIGFzc2VydC5pc1RydWUodjhPYmplY3QyRHVtcC5pc0Rlc2NlbmRhbnRPZih2OE9iamVjdHNEdW1wKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShvaWxwYW5EdW1wLmlzRGVzY2VuZGFudE9mKG9pbHBhbkR1bXApKTsKKworICAgIGFzc2VydC5pc0ZhbHNlKHY4RHVtcC5pc0Rlc2NlbmRhbnRPZihvaWxwYW5EdW1wKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodjhEdW1wLmlzRGVzY2VuZGFudE9mKHY4SGVhcHNEdW1wKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodjhEdW1wLmlzRGVzY2VuZGFudE9mKHY4T2JqZWN0c0R1bXApKTsKKyAgICBhc3NlcnQuaXNGYWxzZSh2OER1bXAuaXNEZXNjZW5kYW50T2YodjhPYmplY3QxRHVtcCkpOworICAgIGFzc2VydC5pc0ZhbHNlKHY4RHVtcC5pc0Rlc2NlbmRhbnRPZih2OE9iamVjdDJEdW1wKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodjhPYmplY3QxRHVtcC5pc0Rlc2NlbmRhbnRPZih2OE9iamVjdDJEdW1wKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodjhPYmplY3QyRHVtcC5pc0Rlc2NlbmRhbnRPZih2OE9iamVjdDFEdW1wKSk7CisgIH0pOworCisgIHRlc3QoJ21lbW9yeUFsbG9jYXRvckR1bXBMaW5rX2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGQxID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoJ3Y4L2lzb2xhdGUxJyk7CisgICAgdmFyIGQyID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoJ29pbHBhbi9kb2N1bWVudDEnKTsKKyAgICB2YXIgbGluayA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wTGluayhkMSwgZDIsIDMpOworCisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpbmsuc291cmNlLCBkMSk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpbmsudGFyZ2V0LCBkMik7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpbmsuaW1wb3J0YW5jZSwgMyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvbW9kZWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvbW9kZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzJmODBlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tb2RlbC5odG1sCkBAIC0wLDAgKzEsNzQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2ludGVydmFsX3RyZWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2F1ZGl0b3IuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9pbXBvcnRlci9lbXB0eV9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvaW1wb3J0ZXIvaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2FsZXJ0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9kZXZpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2Zsb3dfZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2ZyYW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2luc3RhbnRfZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2ludGVyYWN0aW9uX3JlY29yZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwva2VybmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbF9pbmRpY2VzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zYW1wbGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3N0YWNrX2ZyYW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL292ZXJsYXkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBNb2RlbCBpcyBhIHBhcnNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAqIFRyYWNlRXZlbnRzIG9idGFpbmVkIGZyb20gYmFzZS90cmFjZV9ldmVudCBpbiB3aGljaCB0aGUgYmVnaW4tZW5kCisgKiB0b2tlbnMgYXJlIGNvbnZlcnRlZCBpbnRvIGEgaGllcmFyY2h5IG9mIHByb2Nlc3NlcywgdGhyZWFkcywKKyAqIHN1YnJvd3MsIGFuZCBzbGljZXMuCisgKgorICogVGhlIGJ1aWxkaW5nIGJsb2NrIG9mIHRoZSBtb2RlbCBpcyBhIHNsaWNlLiBBIHNsaWNlIGlzIHJvdWdobHkKKyAqIGVxdWl2YWxlbnQgdG8gZnVuY3Rpb24gY2FsbCBleGVjdXRpbmcgb24gYSBzcGVjaWZpYyB0aHJlYWQuIEFzIGEKKyAqIHJlc3VsdCwgc2xpY2VzIG1heSBoYXZlIG9uZSBvciBtb3JlIHN1YnNsaWNlcy4KKyAqCisgKiBBIHRocmVhZCBjb250YWlucyBvbmUgb3IgbW9yZSBzdWJyb3dzIG9mIHNsaWNlcy4gUm93IDAgY29ycmVzcG9uZHMgdG8KKyAqIHRoZSAicm9vdCIgc2xpY2VzLCBlLmcuIHRoZSB0b3Btb3N0IHNsaWNlcy4gUm93IDEgY29udGFpbnMgc2xpY2VzIHRoYXQKKyAqIGFyZSBuZXN0ZWQgMSBkZWVwIGluIHRoZSBzdGFjaywgYW5kIHNvIG9uLiBXZSB1c2UgdGhlc2Ugc3Vicm93cyB0byBkcmF3CisgKiBuZXN0aW5nIHRhc2tzLgorICoKKyAqLwordHIuZXhwb3J0VG8oJ3RyJywgZnVuY3Rpb24oKSB7CisgIHZhciBJbXBvcnRlciA9IHRyLmltcG9ydGVyLkltcG9ydGVyOworICB2YXIgUHJvY2VzcyA9IHRyLm1vZGVsLlByb2Nlc3M7CisgIHZhciBEZXZpY2UgPSB0ci5tb2RlbC5EZXZpY2U7CisgIHZhciBLZXJuZWwgPSB0ci5tb2RlbC5LZXJuZWw7CisgIHZhciBHbG9iYWxNZW1vcnlEdW1wID0gdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcDsKKyAgdmFyIEdsb2JhbEluc3RhbnRFdmVudCA9IHRyLm1vZGVsLkdsb2JhbEluc3RhbnRFdmVudDsKKyAgdmFyIEZsb3dFdmVudCA9IHRyLm1vZGVsLkZsb3dFdmVudDsKKyAgdmFyIEFsZXJ0ID0gdHIubW9kZWwuQWxlcnQ7CisgIHZhciBJbnRlcmFjdGlvblJlY29yZCA9IHRyLm1vZGVsLkludGVyYWN0aW9uUmVjb3JkOworICB2YXIgU2FtcGxlID0gdHIubW9kZWwuU2FtcGxlOworCisgIGZ1bmN0aW9uIEltcG9ydE9wdGlvbnMoKSB7CisgICAgdGhpcy5zaGlmdFdvcmxkVG9aZXJvID0gdHJ1ZTsKKyAgICB0aGlzLnBydW5lRW1wdHlDb250YWluZXJzID0gdHJ1ZTsKKworICAgIC8vIENhbGxiYWNrIGNhbGxlZCBhZnRlcgorICAgIC8vIGltcG9ydGVycyBydW4gaW4gd2hpY2ggbW9yZSBkYXRhIGNhbiBiZSBhZGRlZCB0byB0aGUgbW9kZWwsIGJlZm9yZSBpdCBpcworICAgIC8vIGZpbmFsaXplZC4KKyAgICB0aGlzLmN1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sgPSB1bmRlZmluZWQ7CisKKyAgICB2YXIgYXVkaXRvclR5cGVzID0gdHIuYy5BdWRpdG9yLmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTsKKyAgICB0aGlzLmF1ZGl0b3JDb25zdHJ1Y3RvcnMgPSBhdWRpdG9yVHlwZXMubWFwKGZ1bmN0aW9uKHR5cGVJbmZvKSB7CisgICAgICByZXR1cm4gdHlwZUluZm8uY29uc3RydWN0b3I7CisgICAgfSk7CisgIH0KKworICBJbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMgPSBmdW5jdGlvbihhcmdzLCBhcmdzU3RhcnRJbmRleCkgeworICAgIHZhciBhcmcwID0gYXJnc1thcmdzU3RhcnRJbmRleCArIDBdOworICAgIGlmICh0eXBlb2YgYXJnMCA9PT0gJ29iamVjdCcpIHsKKyAgICAgIGlmICghKGFyZzAgaW5zdGFuY2VvZiBJbXBvcnRPcHRpb25zKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkJyk7CisgICAgICByZXR1cm4gYXJnMDsKKyAgICB9CisgICAgdmFyIG9wdGlvbnMgPSBuZXcgSW1wb3J0T3B0aW9ucygpOworICAgIGlmIChhcmdzW2FyZ3NTdGFydEluZGV4XSAhPT0gdW5kZWZpbmVkKQorICAgICAgb3B0aW9ucy5zaGlmdFdvcmxkVG9aZXJvID0gYXJnc1thcmdzU3RhcnRJbmRleF07CisKKyAgICBpZiAoYXJnc1thcmdzU3RhcnRJbmRleCArIDFdICE9PSB1bmRlZmluZWQpCisgICAgICBvcHRpb25zLnBydW5lRW1wdHlDb250YWluZXJzID0gYXJnc1thcmdzU3RhcnRJbmRleCArIDFdOworCisgICAgaWYgKGFyZ3NbYXJnc1N0YXJ0SW5kZXggKyAyXSkKKyAgICAgIG9wdGlvbnMuY3VzdG9taXplTW9kZWxDYWxsYmFjayA9IGFyZ3NbYXJnc1N0YXJ0SW5kZXggKyAyXTsKKworICAgIHJldHVybiBvcHRpb25zOworICB9CisKKyAgZnVuY3Rpb24gQ2xvY2tTeW5jUmVjb3JkKG5hbWUsIHRzLCBhcmdzKSB7CisgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICB0aGlzLnRzID0gdHM7CisgICAgdGhpcy5hcmdzID0gYXJnczsKKyAgfQorCisgIC8qKgorICAgKiBCdWlsZHMgYSBtb2RlbCBmcm9tIGFuIGFycmF5IG9mIFRyYWNlRXZlbnQgb2JqZWN0cy4KKyAgICogQHBhcmFtIHtPYmplY3Q9fSBvcHRfZXZlbnREYXRhIERhdGEgZnJvbSBhIHNpbmdsZSB0cmFjZSB0byBiZSBpbXBvcnRlZCBpbnRvCisgICAqICAgICB0aGUgbmV3IG1vZGVsLiBTZWUgTW9kZWwuaW1wb3J0VHJhY2VzIGZvciBkZXRhaWxzIG9uIGhvdyB0bworICAgKiAgICAgaW1wb3J0IG11bHRpcGxlIHRyYWNlcyBhdCBvbmNlLgorICAgKiBAcGFyYW0ge0ltcG9ydE9wdGlvbnM9fSBvcHRfb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgaW1wb3J0LgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIE1vZGVsKG9wdF9ldmVudERhdGEsIG9wdF9vcHRpb25zKSB7CisgICAgdHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTsKKyAgICB0ci5iLkV2ZW50VGFyZ2V0LmRlY29yYXRlKHRoaXMpOworCisgICAgdGhpcy5mYXZpY29uSHVlID0gJ2JsdWUnOyAvLyBTaG91bGQgYmUgYSBrZXkgZnJvbSBmYXZpY29ucy5odG1sCisKKyAgICB0aGlzLmRldmljZSA9IG5ldyBEZXZpY2UodGhpcyk7CisgICAgdGhpcy5rZXJuZWwgPSBuZXcgS2VybmVsKHRoaXMpOworICAgIHRoaXMucHJvY2Vzc2VzID0ge307CisgICAgdGhpcy5tZXRhZGF0YSA9IFtdOworICAgIHRoaXMuY2F0ZWdvcmllcyA9IFtdOworICAgIHRoaXMuaW5zdGFudEV2ZW50cyA9IFtdOworICAgIHRoaXMuZmxvd0V2ZW50cyA9IFtdOworICAgIHRoaXMuY2xvY2tTeW5jUmVjb3JkcyA9IFtdOworICAgIHRoaXMuaW50cmluc2ljVGltZVVuaXRfID0gdW5kZWZpbmVkOworCisgICAgdGhpcy5zdGFja0ZyYW1lcyA9IHt9OworICAgIHRoaXMuc2FtcGxlcyA9IFtdOworCisgICAgdGhpcy5hbGVydHMgPSBbXTsKKyAgICB0aGlzLmludGVyYWN0aW9uX3JlY29yZHMgPSBbXTsKKworICAgIHRoaXMuZmxvd0ludGVydmFsVHJlZSA9IG5ldyB0ci5iLkludGVydmFsVHJlZSgKKyAgICAgICAgZnVuY3Rpb24oZikgeyByZXR1cm4gZi5zdGFydDsgfSwKKyAgICAgICAgZnVuY3Rpb24oZikgeyByZXR1cm4gZi5lbmQ7IH0pOworCisgICAgdGhpcy5nbG9iYWxNZW1vcnlEdW1wcyA9IFtdOworCisgICAgdGhpcy5hbm5vdGF0aW9uc0J5R3VpZF8gPSB7fTsKKworICAgIHRoaXMuaW1wb3J0V2FybmluZ3NfID0gW107CisgICAgdGhpcy5yZXBvcnRlZEltcG9ydFdhcm5pbmdzXyA9IHt9OworCisgICAgdGhpcy5tb2RlbEluZGljZXMgPSB1bmRlZmluZWQ7CisgICAgdmFyIG9wdGlvbnMgPSBJbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMoYXJndW1lbnRzLCAxKTsKKyAgICBpZiAob3B0X2V2ZW50RGF0YSkKKyAgICAgIHRoaXMuaW1wb3J0VHJhY2VzKFtvcHRfZXZlbnREYXRhXSwgb3B0aW9ucyk7CisgIH0KKworICBNb2RlbC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCisKKyAgICBpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyOiBmdW5jdGlvbihldmVudFR5cGVQcmVkaWNhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aGlzKSB7CisgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIEdsb2JhbE1lbW9yeUR1bXApKQorICAgICAgICB0aGlzLmdsb2JhbE1lbW9yeUR1bXBzLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKKworICAgICAgaWYgKGV2ZW50VHlwZVByZWRpY2F0ZS5jYWxsKG9wdF90aGlzLCBHbG9iYWxJbnN0YW50RXZlbnQpKQorICAgICAgICB0aGlzLmluc3RhbnRFdmVudHMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOworCisgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIEZsb3dFdmVudCkpCisgICAgICAgIHRoaXMuZmxvd0V2ZW50cy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisKKyAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgQWxlcnQpKQorICAgICAgICB0aGlzLmFsZXJ0cy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisKKyAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgSW50ZXJhY3Rpb25SZWNvcmQpKQorICAgICAgICB0aGlzLmludGVyYWN0aW9uX3JlY29yZHMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOworCisgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIFNhbXBsZSkpCisgICAgICAgIHRoaXMuc2FtcGxlcy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7CisgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCB0aGlzLmRldmljZSk7CisgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCB0aGlzLmtlcm5lbCk7CisgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCisgICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIHRoaXMucHJvY2Vzc2VzW3BpZF0pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBTb21lIG9iamVjdHMgaW4gdGhlIG1vZGVsIGNhbiBwZXJzaXN0IHRoZWlyIHN0YXRlIGluIE1vZGVsU2V0dGluZ3MuCisgICAgICoKKyAgICAgKiBUaGlzIGl0ZXJhdGVzIHRocm91Z2ggdGhlbS4KKyAgICAgKi8KKyAgICBpdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzOiBmdW5jdGlvbihjYWxsYmFjaykgeworICAgICAgdGhpcy5rZXJuZWwuaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0cyhjYWxsYmFjayk7CisgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCisgICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0uaXRlcmF0ZUFsbFBlcnNpc3RhYmxlT2JqZWN0cyhjYWxsYmFjayk7CisgICAgfSwKKworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOworICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuYm91bmRzOworCisgICAgICB0aGlzLml0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVycyhmdW5jdGlvbihlYykgeworICAgICAgICBlYy51cGRhdGVCb3VuZHMoKTsKKyAgICAgICAgYm91bmRzLmFkZFJhbmdlKGVjLmJvdW5kcyk7CisgICAgICB9KTsKKyAgICAgIHRoaXMuaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcigKKyAgICAgICAgICBmdW5jdGlvbihldmVudENvbnN0cnVjdG9yKSB7IHJldHVybiB0cnVlOyB9LAorICAgICAgICAgIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBldmVudC5hZGRCb3VuZHNUb1JhbmdlKGJvdW5kcyk7CisgICAgICAgICAgfSk7CisgICAgfSwKKworICAgIHNoaWZ0V29ybGRUb1plcm86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNoaWZ0QW1vdW50ID0gLXRoaXMuYm91bmRzLm1pbjsKKyAgICAgIHRoaXMuaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzKGZ1bmN0aW9uKGVjKSB7CisgICAgICAgIGVjLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoc2hpZnRBbW91bnQpOworICAgICAgfSk7CisgICAgICB0aGlzLml0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXIoCisgICAgICAgIGZ1bmN0aW9uKGV2ZW50Q29uc3RydWN0b3IpIHsgcmV0dXJuIHRydWU7IH0sCisgICAgICAgIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgZXZlbnQuc3RhcnQgKz0gc2hpZnRBbW91bnQ7CisgICAgICAgIH0pOworICAgICAgdGhpcy51cGRhdGVCb3VuZHMoKTsKKyAgICB9LAorCisgICAgZ2V0IG51bVByb2Nlc3NlcygpIHsKKyAgICAgIHZhciBuID0gMDsKKyAgICAgIGZvciAodmFyIHAgaW4gdGhpcy5wcm9jZXNzZXMpCisgICAgICAgIG4rKzsKKyAgICAgIHJldHVybiBuOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtQcm9jZXNzfSBHZXRzIGEgVGltZWxpbmVQcm9jZXNzIGZvciBhIHNwZWNpZmllZCBwaWQuIFJldHVybnMKKyAgICAgKiB1bmRlZmluZWQgaWYgdGhlIHByb2Nlc3MgZG9lc24ndCBleGlzdC4KKyAgICAgKi8KKyAgICBnZXRQcm9jZXNzOiBmdW5jdGlvbihwaWQpIHsKKyAgICAgIHJldHVybiB0aGlzLnByb2Nlc3Nlc1twaWRdOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtQcm9jZXNzfSBHZXRzIGEgVGltZWxpbmVQcm9jZXNzIGZvciBhIHNwZWNpZmllZCBwaWQgb3IKKyAgICAgKiBjcmVhdGVzIG9uZSBpZiBpdCBkb2VzIG5vdCBleGlzdC4KKyAgICAgKi8KKyAgICBnZXRPckNyZWF0ZVByb2Nlc3M6IGZ1bmN0aW9uKHBpZCkgeworICAgICAgaWYgKCF0aGlzLnByb2Nlc3Nlc1twaWRdKQorICAgICAgICB0aGlzLnByb2Nlc3Nlc1twaWRdID0gbmV3IFByb2Nlc3ModGhpcywgcGlkKTsKKyAgICAgIHJldHVybiB0aGlzLnByb2Nlc3Nlc1twaWRdOworICAgIH0sCisKKyAgICBwdXNoSW5zdGFudEV2ZW50OiBmdW5jdGlvbihpbnN0YW50RXZlbnQpIHsKKyAgICAgIHRoaXMuaW5zdGFudEV2ZW50cy5wdXNoKGluc3RhbnRFdmVudCk7CisgICAgfSwKKworICAgIGFkZFN0YWNrRnJhbWU6IGZ1bmN0aW9uKHN0YWNrRnJhbWUpIHsKKyAgICAgIGlmICh0aGlzLnN0YWNrRnJhbWVzW3N0YWNrRnJhbWUuaWRdKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YWNrIGZyYW1lIGFscmVhZHkgZXhpc3RzJyk7CisgICAgICB0aGlzLnN0YWNrRnJhbWVzW3N0YWNrRnJhbWUuaWRdID0gc3RhY2tGcmFtZTsKKyAgICAgIHJldHVybiBzdGFja0ZyYW1lOworICAgIH0sCisKKyAgICBhZGRJbnRlcmFjdGlvblJlY29yZDogZnVuY3Rpb24oaXIpIHsKKyAgICAgIHRoaXMuaW50ZXJhY3Rpb25fcmVjb3Jkcy5wdXNoKGlyKTsKKyAgICAgIHJldHVybiBpcjsKKyAgICB9LAorCisgICAgZ2V0Q2xvY2tTeW5jUmVjb3Jkc05hbWVkOiBmdW5jdGlvbihuYW1lKSB7CisgICAgICByZXR1cm4gdGhpcy5jbG9ja1N5bmNSZWNvcmRzLmZpbHRlcihmdW5jdGlvbih4KSB7CisgICAgICAgIHJldHVybiB4Lm5hbWUgPT09IG5hbWU7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIHRoZSBzZXQgb2YgY2F0ZWdvcmllcyBmcm9tIHRoZSBzbGljZXMgYW5kIGNvdW50ZXJzLgorICAgICAqLworICAgIHVwZGF0ZUNhdGVnb3JpZXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBjYXRlZ29yaWVzRGljdCA9IHt9OworICAgICAgdGhpcy5kZXZpY2UuYWRkQ2F0ZWdvcmllc1RvRGljdChjYXRlZ29yaWVzRGljdCk7CisgICAgICB0aGlzLmtlcm5lbC5hZGRDYXRlZ29yaWVzVG9EaWN0KGNhdGVnb3JpZXNEaWN0KTsKKyAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKKyAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5hZGRDYXRlZ29yaWVzVG9EaWN0KGNhdGVnb3JpZXNEaWN0KTsKKworICAgICAgdGhpcy5jYXRlZ29yaWVzID0gW107CisgICAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzRGljdCkKKyAgICAgICAgaWYgKGNhdGVnb3J5ICE9ICcnKQorICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKGNhdGVnb3J5KTsKKyAgICB9LAorCisgICAgZ2V0QWxsVGhyZWFkczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGhyZWFkcyA9IFtdOworICAgICAgZm9yICh2YXIgdGlkIGluIHRoaXMua2VybmVsLnRocmVhZHMpIHsKKyAgICAgICAgdGhyZWFkcy5wdXNoKHByb2Nlc3MudGhyZWFkc1t0aWRdKTsKKyAgICAgIH0KKyAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykgeworICAgICAgICB2YXIgcHJvY2VzcyA9IHRoaXMucHJvY2Vzc2VzW3BpZF07CisgICAgICAgIGZvciAodmFyIHRpZCBpbiBwcm9jZXNzLnRocmVhZHMpIHsKKyAgICAgICAgICB0aHJlYWRzLnB1c2gocHJvY2Vzcy50aHJlYWRzW3RpZF0pOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gdGhyZWFkczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIGFsbCBwcm9jZXNzZXMgaW4gdGhlIG1vZGVsLgorICAgICAqLworICAgIGdldEFsbFByb2Nlc3NlczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcHJvY2Vzc2VzID0gW107CisgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCisgICAgICAgIHByb2Nlc3Nlcy5wdXNoKHRoaXMucHJvY2Vzc2VzW3BpZF0pOworICAgICAgcmV0dXJuIHByb2Nlc3NlczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIGFsbCB0aGUgY291bnRlcnMgaW4gdGhlIG1vZGVsLgorICAgICAqLworICAgIGdldEFsbENvdW50ZXJzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBjb3VudGVycyA9IFtdOworICAgICAgY291bnRlcnMucHVzaC5hcHBseSgKKyAgICAgICAgICBjb3VudGVycywgdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHRoaXMuZGV2aWNlLmNvdW50ZXJzKSk7CisgICAgICBjb3VudGVycy5wdXNoLmFwcGx5KAorICAgICAgICAgIGNvdW50ZXJzLCB0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5rZXJuZWwuY291bnRlcnMpKTsKKyAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykgeworICAgICAgICB2YXIgcHJvY2VzcyA9IHRoaXMucHJvY2Vzc2VzW3BpZF07CisgICAgICAgIGZvciAodmFyIHRpZCBpbiBwcm9jZXNzLmNvdW50ZXJzKSB7CisgICAgICAgICAgY291bnRlcnMucHVzaChwcm9jZXNzLmNvdW50ZXJzW3RpZF0pOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gY291bnRlcnM7CisgICAgfSwKKworICAgIGdldEFubm90YXRpb25CeUdVSUQ6IGZ1bmN0aW9uKGd1aWQpIHsKKyAgICAgIHJldHVybiB0aGlzLmFubm90YXRpb25zQnlHdWlkX1tndWlkXTsKKyAgICB9LAorCisgICAgYWRkQW5ub3RhdGlvbjogZnVuY3Rpb24oYW5ub3RhdGlvbikgeworICAgICAgaWYgKCFhbm5vdGF0aW9uLmd1aWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQW5ub3RhdGlvbiB3aXRoIHVuZGVmaW5lZCBndWlkIGdpdmVuJyk7CisKKyAgICAgIHRoaXMuYW5ub3RhdGlvbnNCeUd1aWRfW2Fubm90YXRpb24uZ3VpZF0gPSBhbm5vdGF0aW9uOworICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdhbm5vdGF0aW9uQ2hhbmdlJyk7CisgICAgfSwKKworICAgIHJlbW92ZUFubm90YXRpb246IGZ1bmN0aW9uKGFubm90YXRpb24pIHsKKyAgICAgIHRoaXMuYW5ub3RhdGlvbnNCeUd1aWRfW2Fubm90YXRpb24uZ3VpZF0ub25SZW1vdmUoKTsKKyAgICAgIGRlbGV0ZSB0aGlzLmFubm90YXRpb25zQnlHdWlkX1thbm5vdGF0aW9uLmd1aWRdOworICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdhbm5vdGF0aW9uQ2hhbmdlJyk7CisgICAgfSwKKworICAgIGdldEFsbEFubm90YXRpb25zOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5hbm5vdGF0aW9uc0J5R3VpZF8pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1N0cmluZ30gVGhlIG5hbWUgb2YgdGhlIHRocmVhZCB0byBmaW5kLgorICAgICAqIEByZXR1cm4ge0FycmF5fSBBbiBhcnJheSBvZiBhbGwgdGhlIG1hdGNoZWQgdGhyZWFkcy4KKyAgICAgKi8KKyAgICBmaW5kQWxsVGhyZWFkc05hbWVkOiBmdW5jdGlvbihuYW1lKSB7CisgICAgICB2YXIgbmFtZWRUaHJlYWRzID0gW107CisgICAgICBuYW1lZFRocmVhZHMucHVzaC5hcHBseSgKKyAgICAgICAgICBuYW1lZFRocmVhZHMsCisgICAgICAgICAgdGhpcy5rZXJuZWwuZmluZEFsbFRocmVhZHNOYW1lZChuYW1lKSk7CisgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpIHsKKyAgICAgICAgbmFtZWRUaHJlYWRzLnB1c2guYXBwbHkoCisgICAgICAgICAgICBuYW1lZFRocmVhZHMsCisgICAgICAgICAgICB0aGlzLnByb2Nlc3Nlc1twaWRdLmZpbmRBbGxUaHJlYWRzTmFtZWQobmFtZSkpOworICAgICAgfQorICAgICAgcmV0dXJuIG5hbWVkVGhyZWFkczsKKyAgICB9LAorCisgICAgY3JlYXRlSW1wb3J0ZXJfOiBmdW5jdGlvbihldmVudERhdGEpIHsKKyAgICAgIHZhciBpbXBvcnRlckNvbnN0cnVjdG9yID0gdHIuaW1wb3J0ZXIuSW1wb3J0ZXIuZmluZEltcG9ydGVyRm9yKAorICAgICAgICAgIGV2ZW50RGF0YSk7CisKKyAgICAgIC8vIFRPRE8oa3BoYW5lZSk6IFRocm93aW5nIHNhbWUgRXJyb3IgYXQgMiBwbGFjZXMuIExldHMgdHJ5IHRvIGF2b2lkIGl0IQorICAgICAgaWYgKCFpbXBvcnRlckNvbnN0cnVjdG9yKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCisgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgYW4gaW1wb3J0ZXIgZm9yIHRoZSBwcm92aWRlZCBldmVudERhdGEuJyk7CisKKyAgICAgIHZhciBpbXBvcnRlciA9IG5ldyBpbXBvcnRlckNvbnN0cnVjdG9yKAorICAgICAgICAgIHRoaXMsIGV2ZW50RGF0YSk7CisgICAgICByZXR1cm4gaW1wb3J0ZXI7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgdGhlIHByb3ZpZGVkIHRyYWNlcyBpbnRvIHRoZSBtb2RlbC4gVGhlIGV2ZW50RGF0YSB0eXBlCisgICAgICogaXMgdW5kZWZpbmVkIGFuZCB3aWxsIGJlIHBhc3NlZCB0byBhbGwgdGhlIGltcG9ydGVycyByZWdpc3RlcmVkCisgICAgICogdmlhIEltcG9ydGVyLnJlZ2lzdGVyLiBUaGUgZmlyc3QgaW1wb3J0ZXIgdGhhdCByZXR1cm5zIHRydWUKKyAgICAgKiBmb3IgY2FuSW1wb3J0KGV2ZW50cykgd2lsbCBiZSB1c2VkIHRvIGltcG9ydCB0aGUgZXZlbnRzLgorICAgICAqCisgICAgICogVGhlIHByaW1hcnkgdHJhY2UgaXMgcHJvdmlkZWQgdmlhIHRoZSBldmVudERhdGEgdmFyaWFibGUuIElmIG11bHRpcGxlCisgICAgICogdHJhY2VzIGFyZSB0byBiZSBpbXBvcnRlZCwgc3BlY2lmeSB0aGUgZmlyc3Qgb25lIGFzIGV2ZW50cywgYW5kIHRoZQorICAgICAqIHJlbWFpbmRlciBpbiB0aGUgb3B0X2FkZGl0aW9uYWxFdmVudERhdGEgYXJyYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge0FycmF5fSB0cmFjZXMgQW4gYXJyYXkgb2YgZXZlbnREYXRhIHRvIGJlIGltcG9ydGVkLiBFYWNoCisgICAgICogZXZlbnREYXRhIHNob3VsZCBjb3JyZXNwb25kIHRvIGEgc2luZ2xlIHRyYWNlIGZpbGUgYW5kIHdpbGwgYmUgaGFuZGxlZCBieQorICAgICAqIGEgc2VwYXJhdGUgaW1wb3J0ZXIuCisgICAgICogQHBhcmFtIHtJbXBvcnRPcHRpb25zfSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSBpbXBvcnQsIG9yIHVuZGVmaW5lZCBmb3IKKyAgICAgKiBkZWZhdWx0IG9wdGlvbnMuCisgICAgICovCisgICAgaW1wb3J0VHJhY2VzOiBmdW5jdGlvbih0cmFjZXMsIG9wdF9vcHRpb25zKSB7CisgICAgICB2YXIgcHJvZ3Jlc3NNZXRlciA9IHsKKyAgICAgICAgdXBkYXRlOiBmdW5jdGlvbihtc2cpIHt9CisgICAgICB9OworICAgICAgdmFyIG9wdGlvbnMgPSBJbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMoYXJndW1lbnRzLCAxKTsKKyAgICAgIHZhciB0YXNrID0gdGhpcy5jcmVhdGVJbXBvcnRUcmFjZXNUYXNrKAorICAgICAgICAgIHByb2dyZXNzTWV0ZXIsCisgICAgICAgICAgdHJhY2VzLAorICAgICAgICAgIG9wdGlvbnMpOworICAgICAgdHIuYi5UYXNrLlJ1blN5bmNocm9ub3VzbHkodGFzayk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgYSB0cmFjZSB3aXRoIHRoZSB1c3VhbCBvcHRpb25zIGZyb20gaW1wb3J0VHJhY2VzLCBidXQKKyAgICAgKiBkb2VzIHNvIHVzaW5nIGlkbGUgY2FsbGJhY2tzLCBwdXR0aW5nIHVwIGFuIGltcG9ydCBkaWFsb2cKKyAgICAgKiBkdXJpbmcgdGhlIGltcG9ydCBwcm9jZXNzLgorICAgICAqLworICAgIGltcG9ydFRyYWNlc1dpdGhQcm9ncmVzc0RpYWxvZzogZnVuY3Rpb24odHJhY2VzLCBvcHRfb3B0aW9ucykgeworICAgICAgaWYgKHRyLmlzSGVhZGxlc3MpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSB0aGlzIG1ldGhvZCBpbiBoZWFkbGVzcyBtb2RlIScpOworICAgICAgdmFyIG9wdGlvbnMgPSBJbXBvcnRPcHRpb25zLmZyb21Bcmd1bWVudHMoYXJndW1lbnRzLCAxKTsKKworICAgICAgdmFyIG92ZXJsYXkgPSB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICAgIG92ZXJsYXkudGl0bGUgPSAnSW1wb3J0aW5nLi4uJzsKKyAgICAgIG92ZXJsYXkudXNlckNhbkNsb3NlID0gZmFsc2U7CisgICAgICBvdmVybGF5Lm1zZ0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICBvdmVybGF5LmFwcGVuZENoaWxkKG92ZXJsYXkubXNnRWwpOworICAgICAgb3ZlcmxheS5tc2dFbC5zdHlsZS5tYXJnaW4gPSAnMjBweCc7CisgICAgICBvdmVybGF5LnVwZGF0ZSA9IGZ1bmN0aW9uKG1zZykgeworICAgICAgICB0aGlzLm1zZ0VsLnRleHRDb250ZW50ID0gbXNnOworICAgICAgfQorICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKKworICAgICAgdmFyIHRhc2sgPSB0aGlzLmNyZWF0ZUltcG9ydFRyYWNlc1Rhc2soCisgICAgICAgICAgb3ZlcmxheSwKKyAgICAgICAgICB0cmFjZXMsCisgICAgICAgICAgb3B0aW9ucyk7CisgICAgICB2YXIgcHJvbWlzZSA9IHRyLmIuVGFzay5SdW5XaGVuSWRsZSh0YXNrKTsKKyAgICAgIHByb21pc2UudGhlbigKKyAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIG92ZXJsYXkudmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikgeworICAgICAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gZmFsc2U7CisgICAgICAgICAgfSk7CisgICAgICByZXR1cm4gcHJvbWlzZTsKKyAgICB9LAorCisgICAgaGFzRXZlbnREYXRhRGVjb2Rlcl86IGZ1bmN0aW9uKGltcG9ydGVycykgeworICAgICAgaWYgKGltcG9ydGVycy5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbXBvcnRlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCFpbXBvcnRlcnNbaV0uaXNUcmFjZURhdGFDb250YWluZXIoKSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHRhc2sgdGhhdCB3aWxsIGltcG9ydCB0aGUgcHJvdmlkZWQgdHJhY2VzIGludG8gdGhlIG1vZGVsLAorICAgICAqIHVwZGF0aW5nIHRoZSBwcm9ncmVzc01ldGVyIGFzIGl0IGdvZXMuIFBhcmFtZXRlcnMgYXJlIGFzIGRlZmluZWQgaW4KKyAgICAgKiBpbXBvcnRUcmFjZXMuCisgICAgICovCisgICAgY3JlYXRlSW1wb3J0VHJhY2VzVGFzazogZnVuY3Rpb24ocHJvZ3Jlc3NNZXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X29wdGlvbnMpIHsKKyAgICAgIHZhciBvcHRpb25zID0gSW1wb3J0T3B0aW9ucy5mcm9tQXJndW1lbnRzKGFyZ3VtZW50cywgMik7CisKKyAgICAgIGlmICh0aGlzLmltcG9ydGluZ18pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSBpbXBvcnRpbmcuJyk7CisgICAgICB0aGlzLmltcG9ydGluZ18gPSB0cnVlOworCisgICAgICAvLyBKdXN0IHNvbWUgc2ltcGxlIHNldHVwLiBJdCBpcyB1c2VmdWwgdG8gaGF2ZSBhIG5vcCBmaXJzdAorICAgICAgLy8gdGFzayBzbyB0aGF0IHdlIGNhbiBzZXQgdXAgdGhlIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoKQorICAgICAgLy8gcGF0dGVybiB0aGF0IGZvbGxvd3MuCisgICAgICB2YXIgaW1wb3J0VGFzayA9IG5ldyB0ci5iLlRhc2soZnVuY3Rpb24oKSB7CisgICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdJIHdpbGwgbm93IGltcG9ydCB5b3VyIHRyYWNlcyBmb3IgeW91Li4uJyk7CisgICAgICB9LCB0aGlzKTsKKyAgICAgIHZhciBsYXN0VGFzayA9IGltcG9ydFRhc2s7CisKKyAgICAgIHZhciBpbXBvcnRlcnMgPSBbXTsKKworICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gQ29weSB0aGUgdHJhY2VzIGFycmF5LCB3ZSBtYXkgbXV0YXRlIGl0LgorICAgICAgICB0cmFjZXMgPSB0cmFjZXMuc2xpY2UoMCk7CisgICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdDcmVhdGluZyBpbXBvcnRlcnMuLi4nKTsKKyAgICAgICAgLy8gRmlndXJlIG91dCB3aGljaCBpbXBvcnRlcnMgdG8gdXNlLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyYWNlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICBpbXBvcnRlcnMucHVzaCh0aGlzLmNyZWF0ZUltcG9ydGVyXyh0cmFjZXNbaV0pKTsKKworICAgICAgICAvLyBTb21lIHRyYWNlcyBoYXZlIG90aGVyIHRyYWNlcyBpbnNpZGUgdGhlbS4gQmVmb3JlIGRvaW5nIHRoZSBmdWxsCisgICAgICAgIC8vIGltcG9ydCwgYXNrIHRoZSBpbXBvcnRlciBpZiBpdCBoYXMgYW55IHN1YnRyYWNlcywgYW5kIGlmIHNvLCBjcmVhdGUKKyAgICAgICAgLy8gaW1wb3J0ZXJzIGZvciB0aGVtLCBhbHNvLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltcG9ydGVycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBzdWJ0cmFjZXMgPSBpbXBvcnRlcnNbaV0uZXh0cmFjdFN1YnRyYWNlcygpOworICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3VidHJhY2VzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICB0cmFjZXMucHVzaChzdWJ0cmFjZXNbal0pOworICAgICAgICAgICAgICBpbXBvcnRlcnMucHVzaCh0aGlzLmNyZWF0ZUltcG9ydGVyXyhzdWJ0cmFjZXNbal0pKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgIC8vIFRPRE8oa3BoYW5lZSk6IExvZyB0aGUgc3VidHJhY2UgZmlsZSB3aGljaCBoYXMgZmFpbGVkLgorICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IubmFtZSArICc6ICcgKyBlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRyYWNlcy5sZW5ndGggJiYgIXRoaXMuaGFzRXZlbnREYXRhRGVjb2Rlcl8oaW1wb3J0ZXJzKSkgeworICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgYW4gaW1wb3J0ZXIgZm9yICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHByb3ZpZGVkIGV2ZW50RGF0YS4nKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNvcnQgdGhlbSBvbiBwcmlvcml0eS4gVGhpcyBlbnN1cmVzIGltcG9ydGluZyBoYXBwZW5zIGluIGEKKyAgICAgICAgLy8gcHJlZGljdGFibGUgb3JkZXIsIGUuZy4gZnRyYWNlX2ltcG9ydGVyIGJlZm9yZQorICAgICAgICAvLyB0cmFjZV9ldmVudF9pbXBvcnRlci4KKyAgICAgICAgaW1wb3J0ZXJzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICAgIHJldHVybiB4LmltcG9ydFByaW9yaXR5IC0geS5pbXBvcnRQcmlvcml0eTsKKyAgICAgICAgfSk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gUnVuIHRoZSBpbXBvcnQuCisgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKHRhc2spIHsKKyAgICAgICAgaW1wb3J0ZXJzLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZXIsIGluZGV4KSB7CisgICAgICAgICAgdGFzay5zdWJUYXNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoCisgICAgICAgICAgICAgICAgJ0ltcG9ydGluZyAnICsgKGluZGV4ICsgMSkgKyAnIG9mICcgKyBpbXBvcnRlcnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGltcG9ydGVyLmltcG9ydEV2ZW50cygpOworICAgICAgICAgIH0sIHRoaXMpOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBSdW4gdGhlIGN1c29taXplTW9kZWxDYWxsYmFjayBpZiBuZWVkZWQuCisgICAgICBpZiAob3B0aW9ucy5jdXN0b21pemVNb2RlbENhbGxiYWNrKSB7CisgICAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24odGFzaykgeworICAgICAgICAgIG9wdGlvbnMuY3VzdG9taXplTW9kZWxDYWxsYmFjayh0aGlzKTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICB9CisKKyAgICAgIC8vIEZpbmFsaXplIGltcG9ydC4KKyAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24odGFzaykgeworICAgICAgICBpbXBvcnRlcnMuZm9yRWFjaChmdW5jdGlvbihpbXBvcnRlciwgaW5kZXgpIHsKKyAgICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgKKyAgICAgICAgICAgICAgJ0ltcG9ydGluZyBzYW1wbGUgZGF0YSAnICsgKGluZGV4ICsgMSkgKyAnLycgKyBpbXBvcnRlcnMubGVuZ3RoKTsKKyAgICAgICAgICBpbXBvcnRlci5pbXBvcnRTYW1wbGVEYXRhKCk7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIC8vIEF1dG9jbG9zZSBvcGVuIHNsaWNlcyBhbmQgY3JlYXRlIHN1YlNsaWNlcy4KKyAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7CisgICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdBdXRvY2xvc2luZyBvcGVuIHNsaWNlcy4uLicpOworICAgICAgICAvLyBTb3J0IHRoZSBzYW1wbGVzLgorICAgICAgICB0aGlzLnNhbXBsZXMuc29ydChmdW5jdGlvbih4LCB5KSB7CisgICAgICAgICAgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OworICAgICAgICB9KTsKKworICAgICAgICB0aGlzLnVwZGF0ZUJvdW5kcygpOworICAgICAgICB0aGlzLmtlcm5lbC5hdXRvQ2xvc2VPcGVuU2xpY2VzKHRoaXMuYm91bmRzLm1heCk7CisgICAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKKyAgICAgICAgICB0aGlzLnByb2Nlc3Nlc1twaWRdLmF1dG9DbG9zZU9wZW5TbGljZXModGhpcy5ib3VuZHMubWF4KTsKKworICAgICAgICB0aGlzLmtlcm5lbC5jcmVhdGVTdWJTbGljZXMoKTsKKyAgICAgICAgZm9yICh2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQorICAgICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0uY3JlYXRlU3ViU2xpY2VzKCk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gRmluYWxpemUgaW1wb3J0LgorICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbih0YXNrKSB7CisgICAgICAgIGltcG9ydGVycy5mb3JFYWNoKGZ1bmN0aW9uKGltcG9ydGVyLCBpbmRleCkgeworICAgICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKAorICAgICAgICAgICAgICAnRmluYWxpemluZyBpbXBvcnQgJyArIChpbmRleCArIDEpICsgJy8nICsgaW1wb3J0ZXJzLmxlbmd0aCk7CisgICAgICAgICAgaW1wb3J0ZXIuZmluYWxpemVJbXBvcnQoKTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gUnVuIHByZWluaXQuCisgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnSW5pdGlhbGl6aW5nIG9iamVjdHMgKHN0ZXAgMS8yKS4uLicpOworICAgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCisgICAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5wcmVJbml0aWFsaXplT2JqZWN0cygpOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIC8vIFBydW5lIGVtcHR5IGNvbnRhaW5lcnMuCisgICAgICBpZiAob3B0aW9ucy5wcnVuZUVtcHR5Q29udGFpbmVycykgeworICAgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdQcnVuaW5nIGVtcHR5IGNvbnRhaW5lcnMuLi4nKTsKKyAgICAgICAgICB0aGlzLmtlcm5lbC5wcnVuZUVtcHR5Q29udGFpbmVycygpOworICAgICAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykgeworICAgICAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5wcnVuZUVtcHR5Q29udGFpbmVycygpOworICAgICAgICAgIH0KKyAgICAgICAgfSwgdGhpcyk7CisgICAgICB9CisKKyAgICAgIC8vIE1lcmdlIGtlcm5lbCBhbmQgdXNlcmxhbmQgc2xpY2VzIG9uIGVhY2ggdGhyZWFkLgorICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKKyAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ01lcmdpbmcga2VybmVsIHdpdGggdXNlcmxhbmQuLi4nKTsKKyAgICAgICAgZm9yICh2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQorICAgICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0ubWVyZ2VLZXJuZWxXaXRoVXNlcmxhbmQoKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBDcmVhdGUgYXVkaXRvcnMKKyAgICAgIHZhciBhdWRpdG9ycyA9IFtdOworICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKKyAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0FkZGluZyBhcmJpdHJhcnkgZGF0YSB0byBtb2RlbC4uLicpOworICAgICAgICBhdWRpdG9ycyA9IG9wdGlvbnMuYXVkaXRvckNvbnN0cnVjdG9ycy5tYXAoCisgICAgICAgICAgZnVuY3Rpb24oYXVkaXRvckNvbnN0cnVjdG9yKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IGF1ZGl0b3JDb25zdHJ1Y3Rvcih0aGlzKTsKKyAgICAgICAgICB9LCB0aGlzKTsKKyAgICAgICAgYXVkaXRvcnMuZm9yRWFjaChmdW5jdGlvbihhdWRpdG9yKSB7CisgICAgICAgICAgYXVkaXRvci5ydW5Bbm5vdGF0ZSgpOworICAgICAgICB9KTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQ29tcHV0aW5nIGZpbmFsIHdvcmxkIGJvdW5kcy4uLicpOworICAgICAgICB0aGlzLnVwZGF0ZUJvdW5kcygpOworICAgICAgICB0aGlzLnVwZGF0ZUNhdGVnb3JpZXNfKCk7CisKKyAgICAgICAgaWYgKG9wdGlvbnMuc2hpZnRXb3JsZFRvWmVybykKKyAgICAgICAgICB0aGlzLnNoaWZ0V29ybGRUb1plcm8oKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBCdWlsZCB0aGUgZmxvdyBldmVudCBpbnRlcnZhbCB0cmVlLgorICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKKyAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0J1aWxkaW5nIGZsb3cgZXZlbnQgbWFwLi4uJyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5mbG93RXZlbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgdmFyIGZsb3dFdmVudCA9IHRoaXMuZmxvd0V2ZW50c1tpXTsKKyAgICAgICAgICB0aGlzLmZsb3dJbnRlcnZhbFRyZWUuaW5zZXJ0KGZsb3dFdmVudCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5mbG93SW50ZXJ2YWxUcmVlLnVwZGF0ZUhpZ2hWYWx1ZXMoKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBKb2luIHJlZnMuCisgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnSm9pbmluZyBvYmplY3QgcmVmcy4uLicpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltcG9ydGVycy5sZW5ndGg7IGkrKykKKyAgICAgICAgICBpbXBvcnRlcnNbaV0uam9pblJlZnMoKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBEZWxldGUgYW55IHVuZGVsZXRlZCBvYmplY3RzLgorICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKKyAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ0NsZWFuaW5nIHVwIHVuZGVsZXRlZCBvYmplY3RzLi4uJyk7CisgICAgICAgIGZvciAodmFyIHBpZCBpbiB0aGlzLnByb2Nlc3NlcykKKyAgICAgICAgICB0aGlzLnByb2Nlc3Nlc1twaWRdLmF1dG9EZWxldGVPYmplY3RzKHRoaXMuYm91bmRzLm1heCk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gU29ydCBnbG9iYWwgYW5kIHByb2Nlc3MgbWVtb3J5IGR1bXBzLgorICAgICAgbGFzdFRhc2sgPSBsYXN0VGFzay5hZnRlcihmdW5jdGlvbigpIHsKKyAgICAgICAgcHJvZ3Jlc3NNZXRlci51cGRhdGUoJ1NvcnRpbmcgbWVtb3J5IGR1bXBzLi4uJyk7CisgICAgICAgIHRoaXMuZ2xvYmFsTWVtb3J5RHVtcHMuc29ydChmdW5jdGlvbih4LCB5KSB7CisgICAgICAgICAgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OworICAgICAgICB9KTsKKyAgICAgICAgZm9yICh2YXIgcGlkIGluIHRoaXMucHJvY2Vzc2VzKQorICAgICAgICAgIHRoaXMucHJvY2Vzc2VzW3BpZF0uc29ydE1lbW9yeUR1bXBzKCk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gQ2FsY3VsYXRlIG1lbW9yeSBkdW1wIGdyYXBoIGF0dHJpYnV0ZXMuCisgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnQ2FsY3VsYXRpbmcgbWVtb3J5IGR1bXAgZ3JhcGggYXR0cmlidXRlcy4uLicpOworICAgICAgICB0aGlzLmdsb2JhbE1lbW9yeUR1bXBzLmZvckVhY2goZnVuY3Rpb24oZHVtcCkgeworICAgICAgICAgIGR1bXAuY2FsY3VsYXRlR3JhcGhBdHRyaWJ1dGVzKCk7CisgICAgICAgIH0pOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIC8vIFJ1biBpbml0aWFsaXplcnMuCisgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnSW5pdGlhbGl6aW5nIG9iamVjdHMgKHN0ZXAgMi8yKS4uLicpOworICAgICAgICBmb3IgKHZhciBwaWQgaW4gdGhpcy5wcm9jZXNzZXMpCisgICAgICAgICAgdGhpcy5wcm9jZXNzZXNbcGlkXS5pbml0aWFsaXplT2JqZWN0cygpOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIC8vIEJ1aWxkIGV2ZW50IGluZGljZXMgbWFwcGluZyBmcm9tIGFuIGV2ZW50IGlkIHRvIGFsbCBmbG93IGV2ZW50cy4KKyAgICAgIGxhc3RUYXNrID0gbGFzdFRhc2suYWZ0ZXIoZnVuY3Rpb24oKSB7CisgICAgICAgIHByb2dyZXNzTWV0ZXIudXBkYXRlKCdCdWlsZGluZyBmbG93IGV2ZW50IGluZGljZXMuLi4nKTsKKyAgICAgICAgdGhpcy5tb2RlbEluZGljZXMgPSBuZXcgdHIubW9kZWwuTW9kZWxJbmRpY2VzKHRoaXMpOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIC8vIFJ1biBhdWRpdHMuCisgICAgICBsYXN0VGFzayA9IGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICBwcm9ncmVzc01ldGVyLnVwZGF0ZSgnUnVubmluZyBhdWRpdG9ycy4uLicpOworICAgICAgICBhdWRpdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGF1ZGl0b3IpIHsKKyAgICAgICAgICBhdWRpdG9yLnJ1bkF1ZGl0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuaW50ZXJhY3Rpb25fcmVjb3Jkcy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKKyAgICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7CisgICAgICAgIH0pOworICAgICAgICB0aGlzLmFsZXJ0cy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKKyAgICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7CisgICAgICAgIH0pOworCisgICAgICAgIHRoaXMudXBkYXRlQm91bmRzKCk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gQ2xlYW51cC4KKyAgICAgIGxhc3RUYXNrLmFmdGVyKGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLmltcG9ydGluZ18gPSBmYWxzZTsKKyAgICAgIH0sIHRoaXMpOworICAgICAgcmV0dXJuIGltcG9ydFRhc2s7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBpbXBvcnQgd2FybmluZyBkYXRhLiBEYXRhIG11c3QgcHJvdmlkZSB0d28KKyAgICAgKiAgICBhY2Nlc3NvcnM6IHR5cGUsIG1lc3NhZ2UuIFRoZSB0eXBlcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgaWYgd2UKKyAgICAgKiAgICBzaG91bGQgb3V0cHV0IHRoZSBtZXNzYWdlLCB3ZSdsbCBvbmx5IG91dHB1dCBvbmUgbWVzc2FnZSBvZiBlYWNoIHR5cGUuCisgICAgICogICAgVGhlIG1lc3NhZ2UgaXMgdGhlIGFjdHVhbCB3YXJuaW5nIGNvbnRlbnQuCisgICAgICovCisgICAgaW1wb3J0V2FybmluZzogZnVuY3Rpb24oZGF0YSkgeworICAgICAgdGhpcy5pbXBvcnRXYXJuaW5nc18ucHVzaChkYXRhKTsKKworICAgICAgLy8gT25seSBsb2cgZWFjaCB3YXJuaW5nIHR5cGUgb25jZS4gV2UgbWF5IHdhbnQgdG8gYWRkIHNvbWUga2luZCBvZgorICAgICAgLy8gZmxhZyB0byBhbGxvdyByZXBvcnRpbmcgYWxsIGltcG9ydGVyIHdhcm5pbmdzLgorICAgICAgaWYgKHRoaXMucmVwb3J0ZWRJbXBvcnRXYXJuaW5nc19bZGF0YS50eXBlXSA9PT0gdHJ1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBjb25zb2xlLndhcm4oZGF0YS5tZXNzYWdlKTsKKyAgICAgIHRoaXMucmVwb3J0ZWRJbXBvcnRXYXJuaW5nc19bZGF0YS50eXBlXSA9IHRydWU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aW1lIHVuaXQgdGhhdCBpcyB1c2VkIHRvIGZvcm1hdCB2YWx1ZXMgYW5kIGRldGVybWluZXMgdGhlCisgICAgICogcHJlY2lzaW9uIG9mIHRoZSB0aW1lc3RhbXAgdmFsdWVzLgorICAgICAqLworICAgIGdldCBpbnRyaW5zaWNUaW1lVW5pdCgpIHsKKyAgICAgIGlmICh0aGlzLmludHJpbnNpY1RpbWVVbml0XyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gdHIuYi51bml0cy5UaW1lLnN1cHBvcnRlZFVuaXRzLm1zOworICAgICAgcmV0dXJuIHRoaXMuaW50cmluc2ljVGltZVVuaXRfOworICAgIH0sCisKKyAgICBzZXQgaW50cmluc2ljVGltZVVuaXQodmFsdWUpIHsKKyAgICAgIGlmICh0aGlzLmludHJpbnNpY1RpbWVVbml0XyA9PT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICAgIGlmICh0aGlzLmludHJpbnNpY1RpbWVVbml0XyAhPT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludHJpbnNpYyB0aW1lIHVuaXQgYWxyZWFkeSBzZXQnKTsKKyAgICAgIHRoaXMuaW50cmluc2ljVGltZVVuaXRfID0gdmFsdWU7CisgICAgfSwKKworICAgIGdldCBoYXNJbXBvcnRXYXJuaW5ncygpIHsKKyAgICAgIHJldHVybiAodGhpcy5pbXBvcnRXYXJuaW5nc18ubGVuZ3RoID4gMCk7CisgICAgfSwKKworICAgIGdldCBpbXBvcnRXYXJuaW5ncygpIHsKKyAgICAgIHJldHVybiB0aGlzLmltcG9ydFdhcm5pbmdzXzsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBJbXBvcnRPcHRpb25zOiBJbXBvcnRPcHRpb25zLAorICAgIENsb2NrU3luY1JlY29yZDogQ2xvY2tTeW5jUmVjb3JkLAorICAgIE1vZGVsOiBNb2RlbAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfaW5kaWNlcy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tb2RlbF9pbmRpY2VzLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfaW5kaWNlcy5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL21vZGVsX2luZGljZXMuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tb2RlbF9pbmRpY2VzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvbW9kZWxfaW5kaWNlc190ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfaW5kaWNlc190ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvbW9kZWxfaW5kaWNlc190ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfc2V0dGluZ3MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvbW9kZWxfc2V0dGluZ3MuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9tb2RlbF9zZXR0aW5ncy5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL21vZGVsX3NldHRpbmdzLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfc2V0dGluZ3NfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tb2RlbF9zZXR0aW5nc190ZXN0Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvbW9kZWxfc2V0dGluZ3NfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL21vZGVsX3NldHRpbmdzX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tb2RlbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL21vZGVsX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGE3MGRhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9tb2RlbF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw0MzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3ppcF9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3Y4L3Y4X2xvZ19pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYW5ub3RhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgVGhyZWFkU2xpY2UgPSB0ci5tb2RlbC5UaHJlYWRTbGljZTsKKyAgdmFyIFRpdGxlT3JDYXRlZ29yeUZpbHRlciA9IHRyLmMuVGl0bGVPckNhdGVnb3J5RmlsdGVyOworICB2YXIgRnJhbWUgPSB0ci5tb2RlbC5GcmFtZTsKKworICB2YXIgY3JlYXRlTW9kZWxXaXRoT25lT2ZFdmVyeXRoaW5nID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgY3B1ID0gbS5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoMSk7CisgICAgY3B1LnNsaWNlcy5wdXNoKHRyLmMudGVzdF91dGlscy5uZXdTbGljZSgxLCAzKSk7CisKKyAgICB2YXIgcCA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgIHZhciB0ID0gcC5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB2YXIgc2xpY2UgPSBuZXcgVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDQpOworICAgIHQuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOworICAgIHQuYXN5bmNTbGljZUdyb3VwLnB1c2godHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2UoMCwgMSwgdCwgdCkpOworCisgICAgdmFyIGMgPSBwLmdldE9yQ3JlYXRlQ291bnRlcignJywgJ1Byb2Nlc3NDb3VudGVyJyk7CisgICAgdmFyIGFTZXJpZXMgPSBuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnYScsIDApOworICAgIHZhciBiU2VyaWVzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ2InLCAwKTsKKyAgICBjLmFkZFNlcmllcyhhU2VyaWVzKTsKKyAgICBjLmFkZFNlcmllcyhiU2VyaWVzKTsKKworICAgIGFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCA1KTsKKyAgICBhU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgNik7CisgICAgYVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDIsIDUpOworICAgIGFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgzLCA3KTsKKworICAgIGJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCAxMCk7CisgICAgYlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDEsIDE1KTsKKyAgICBiU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMiwgMTIpOworICAgIGJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgzLCAxNik7CisKKyAgICB2YXIgYzEgPSBjcHUuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCAnQ3B1Q291bnRlcicpOworICAgIHZhciBhU2VyaWVzID0gbmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ2EnLCAwKTsKKyAgICB2YXIgYlNlcmllcyA9IG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCdiJywgMCk7CisgICAgYzEuYWRkU2VyaWVzKGFTZXJpZXMpOworICAgIGMxLmFkZFNlcmllcyhiU2VyaWVzKTsKKworICAgIGFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCA1KTsKKyAgICBhU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgNik7CisgICAgYVNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDIsIDUpOworICAgIGFTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgzLCA3KTsKKworICAgIGJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCAxMCk7CisgICAgYlNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDEsIDE1KTsKKyAgICBiU2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMiwgMTIpOworICAgIGJTZXJpZXMuYWRkQ291bnRlclNhbXBsZSgzLCAxNik7CisKKyAgICB2YXIgZnJhbWUxID0gbmV3IEZyYW1lKFtzbGljZV0sIFt7dGhyZWFkOiB0LCBzdGFydDogMSwgZW5kOiA1fV0pOworICAgIHAuZnJhbWVzLnB1c2guYXBwbHkocC5mcmFtZXMsIGZyYW1lMSk7CisKKyAgICB2YXIgZ2QgPSBuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtLCAyKTsKKyAgICB2YXIgcGQgPSBuZXcgdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXAoZ2QsIHAsIDIpOworICAgIGdkLnByb2Nlc3NNZW1vcnlEdW1wc1sxXSA9IHBkOworICAgIG0uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnZCk7CisgICAgcC5tZW1vcnlEdW1wcy5wdXNoKHBkKTsKKworICAgIG0udXBkYXRlQm91bmRzKCk7CisKKyAgICByZXR1cm4gbTsKKyAgfTsKKworICB0ZXN0KCdtb2RlbEJvdW5kc19FbXB0eU1vZGVsJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLnVwZGF0ZUJvdW5kcygpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChtLmJvdW5kcy5taW4pOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChtLmJvdW5kcy5tYXgpOworICB9KTsKKworICB0ZXN0KCdtb2RlbEJvdW5kc19PbmVFbXB0eVRocmVhZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICBtLnVwZGF0ZUJvdW5kcygpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChtLmJvdW5kcy5taW4pOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChtLmJvdW5kcy5tYXgpOworICB9KTsKKworICB0ZXN0KCdtb2RlbEJvdW5kc19PbmVUaHJlYWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciB0ID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgdC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDMpKTsKKyAgICBtLnVwZGF0ZUJvdW5kcygpOworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDEpOworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDQpOworICB9KTsKKworICB0ZXN0KCdtb2RlbEJvdW5kc19PbmVUaHJlYWRBbmRPbmVFbXB0eVRocmVhZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IFRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7CisgICAgdmFyIHQyID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgbS51cGRhdGVCb3VuZHMoKTsKKyAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWluLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWF4LCA0KTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZWxCb3VuZHNfT25lQ3B1JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgY3B1ID0gbS5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoMSk7CisgICAgY3B1LnNsaWNlcy5wdXNoKHRyLmMudGVzdF91dGlscy5uZXdTbGljZSgxLCAzKSk7CisgICAgbS51cGRhdGVCb3VuZHMoKTsKKyAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWluLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWF4LCA0KTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZWxCb3VuZHNfT25lQ3B1T25lVGhyZWFkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgY3B1ID0gbS5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoMSk7CisgICAgY3B1LnNsaWNlcy5wdXNoKHRyLmMudGVzdF91dGlscy5uZXdTbGljZSgxLCAzKSk7CisKKyAgICB2YXIgdCA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDEpOworICAgIHQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IFRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCA0KSk7CisKKyAgICBtLnVwZGF0ZUJvdW5kcygpOworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDEpOworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDUpOworICB9KTsKKworICB0ZXN0KCdtb2RlbEJvdW5kc19HbG9iYWxNZW1vcnlEdW1wcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgbS5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKG0sIDEpKTsKKyAgICBtLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2gobmV3IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXAobSwgMykpOworICAgIG0uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtLCA1KSk7CisKKyAgICBtLnVwZGF0ZUJvdW5kcygpOworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5taW4sIDEpOworICAgIGFzc2VydC5lcXVhbChtLmJvdW5kcy5tYXgsIDUpOworICB9KTsKKworICB0ZXN0KCdtb2RlbEJvdW5kc19Qcm9jZXNzTWVtb3J5RHVtcHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIGdkID0gbmV3IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXAobSwgLTEpOworICAgIHAubWVtb3J5RHVtcHMucHVzaChuZXcgdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXAoZ2QsIG0sIDEpKTsKKyAgICBwLm1lbW9yeUR1bXBzLnB1c2gobmV3IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wKGdkLCBtLCAzKSk7CisgICAgcC5tZW1vcnlEdW1wcy5wdXNoKG5ldyB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcChnZCwgbSwgNSkpOworCisgICAgbS51cGRhdGVCb3VuZHMoKTsKKyAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWluLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobS5ib3VuZHMubWF4LCA1KTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZWxDYW5JbXBvcnRFbXB0eScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtOworICAgIG0gPSBuZXcgdHIuTW9kZWwoW10pOworICAgIGFzc2VydC5pc0RlZmluZWQobS5tb2RlbEluZGljZXMpOworICAgIG0gPSBuZXcgdHIuTW9kZWwoJycpOworICB9KTsKKworICB0ZXN0KCdtb2RlbENhbkltcG9ydFN1YnRyYWNlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzeXN0cmFjZUxpbmVzID0gWworICAgICAgJ1N1cmZhY2VGbGluZ2VyLTIgIFswMDFdIC4uLjEgMTAwMC4wOiAwOiBCfDF8dGFza0EnLAorICAgICAgJ1N1cmZhY2VGbGluZ2VyLTIgIFswMDFdIC4uLjEgMjAwMC4wOiAwOiBFJywKKyAgICAgICcgICAgICAgIGNocm9tZS0zICBbMDAxXSAuLi4xIDIwMDAuMDogMDogdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogJyArCisgICAgICAgICAgJ3BhcmVudF90cz0wJworICAgIF07CisgICAgdmFyIHRyYWNlRXZlbnRzID0gWworICAgICAge3RzOiAxMDAwLCBwaWQ6IDEsIHRpZDogMywgcGg6ICdCJywgY2F0OiAnYycsIG5hbWU6ICd0YXNrQicsIGFyZ3M6IHsKKyAgICAgICAgbXlfb2JqZWN0OiB7aWRfcmVmOiAnMHgxMDAwJ30KKyAgICAgIH19LAorICAgICAge3RzOiAyMDAwLCBwaWQ6IDEsIHRpZDogMywgcGg6ICdFJywgY2F0OiAnYycsIG5hbWU6ICd0YXNrQicsIGFyZ3M6IHt9fQorICAgIF07CisKKyAgICB2YXIgY29tYmluZWQgPSBKU09OLnN0cmluZ2lmeSh7CisgICAgICB0cmFjZUV2ZW50czogdHJhY2VFdmVudHMsCisgICAgICBzeXN0ZW1UcmFjZUV2ZW50czogc3lzdHJhY2VMaW5lcy5qb2luKCdcbicpCisgICAgfSk7CisKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtjb21iaW5lZF0pOworICAgIGFzc2VydC5lcXVhbCh0ci5iLmRpY3Rpb25hcnlWYWx1ZXMobS5wcm9jZXNzZXMpLmxlbmd0aCwgMSk7CisKKyAgICB2YXIgcDEgPSBtLnByb2Nlc3Nlc1sxXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHAxKTsKKworICAgIHZhciB0MiA9IHAxLnRocmVhZHNbMl07CisgICAgdmFyIHQzID0gcDEudGhyZWFkc1szXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQyKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQzKTsKKworICAgIGFzc2VydC5lcXVhbCgxLCAxLCB0Mi5zbGljZUdyb3VwLmxlbmd0aCk7CisgICAgYXNzZXJ0LmVxdWFsKHQyLnNsaWNlR3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAndGFza0EnKTsKKworICAgIGFzc2VydC5lcXVhbCh0My5zbGljZUdyb3VwLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHQzLnNsaWNlR3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAndGFza0InKTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZWxDYW5JbXBvcnRDb21wcmVzc2VkU2luZ2xlU3VidHJhY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29tcHJlc3NlZFRyYWNlID0gYXRvYignSDRzSUFDS2ZGVlVDL3dzdUxVcExURTUxeThuTVMwOHQwalZTVUlnMk1EQ01WJyArCisgICAgICAgICdkRFQwek5VTURRd01OQXpzRklBSXFjYXc1cVN4T0pzUjY1Z2ZEcU1FRHBjQVRpQzYxWmJBQUFBJyk7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbY29tcHJlc3NlZFRyYWNlXSk7CisgICAgYXNzZXJ0LmVxdWFsKDEsIHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcykubGVuZ3RoKTsKKworICAgIHZhciBwMSA9IG0ucHJvY2Vzc2VzWzFdOworICAgIGFzc2VydC5pc0RlZmluZWQocDEpOworCisgICAgdmFyIHQyID0gcDEudGhyZWFkc1syXTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHQyKTsKKworICAgIGFzc2VydC5lcXVhbCgxLCB0Mi5zbGljZUdyb3VwLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKCd0YXNrQScsIHQyLnNsaWNlR3JvdXAuc2xpY2VzWzBdLnRpdGxlKTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZWxDYW5JbXBvcnRTdWJ0cmFjZXNSZWN1cnNpdmVseScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzeXN0cmFjZUxpbmVzID0gWworICAgICAgJ1N1cmZhY2VGbGluZ2VyLTIgIFswMDFdIC4uLjEgMTAwMC4wOiAwOiBCfDF8dGFza0EnLAorICAgICAgJ1N1cmZhY2VGbGluZ2VyLTIgIFswMDFdIC4uLjEgMjAwMC4wOiAwOiBFJywKKyAgICAgICcgICAgICAgIGNocm9tZS0zICBbMDAxXSAuLi4xIDIwMDAuMDogMDogdHJhY2VfZXZlbnRfY2xvY2tfc3luYzogJyArCisgICAgICAgICAgJ3BhcmVudF90cz0wJworICAgIF07CisgICAgdmFyIG91dGVyVHJhY2VFdmVudHMgPSBbCisgICAgICB7dHM6IDEwMDAsIHBpZDogMSwgdGlkOiAzLCBwaDogJ0InLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tCJywgYXJnczogeworICAgICAgICBteV9vYmplY3Q6IHtpZF9yZWY6ICcweDEwMDAnfQorICAgICAgfX0KKyAgICBdOworCisgICAgdmFyIGlubmVyVHJhY2VFdmVudHMgPSBbCisgICAgICB7dHM6IDIwMDAsIHBpZDogMSwgdGlkOiAzLCBwaDogJ0UnLCBjYXQ6ICdjJywgbmFtZTogJ3Rhc2tCJywgYXJnczoge319CisgICAgXTsKKworICAgIHZhciBpbm5lclRyYWNlID0gSlNPTi5zdHJpbmdpZnkoeworICAgICAgdHJhY2VFdmVudHM6IGlubmVyVHJhY2VFdmVudHMsCisgICAgICBzeXN0ZW1UcmFjZUV2ZW50czogc3lzdHJhY2VMaW5lcy5qb2luKCdcbicpCisgICAgfSk7CisKKyAgICB2YXIgb3V0ZXJUcmFjZSA9IEpTT04uc3RyaW5naWZ5KHsKKyAgICAgIHRyYWNlRXZlbnRzOiBvdXRlclRyYWNlRXZlbnRzLAorICAgICAgc3lzdGVtVHJhY2VFdmVudHM6IGlubmVyVHJhY2UKKyAgICB9KTsKKworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgbS5pbXBvcnRUcmFjZXMoW291dGVyVHJhY2VdKTsKKyAgICBhc3NlcnQuZXF1YWwodHIuYi5kaWN0aW9uYXJ5VmFsdWVzKG0ucHJvY2Vzc2VzKS5sZW5ndGgsIDEpOworCisgICAgdmFyIHAxID0gbS5wcm9jZXNzZXNbMV07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChwMSk7CisKKyAgICB2YXIgdDIgPSBwMS50aHJlYWRzWzJdOworICAgIHZhciB0MyA9IHAxLnRocmVhZHNbM107CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0Mik7CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0Myk7CisKKyAgICBhc3NlcnQuZXF1YWwoMSwgMSwgdDIuc2xpY2VHcm91cC5sZW5ndGgpOworICAgIGFzc2VydC5lcXVhbCh0Mi5zbGljZUdyb3VwLnNsaWNlc1swXS50aXRsZSwgJ3Rhc2tBJyk7CisKKyAgICBhc3NlcnQuZXF1YWwodDMuc2xpY2VHcm91cC5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbCh0My5zbGljZUdyb3VwLnNsaWNlc1swXS50aXRsZSwgJ3Rhc2tCJyk7CisgIH0pOworCisgIHRlc3QoJ21vZGVsV2l0aEltcG9ydEZhaWx1cmUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbWFsZm9ybWVkID0gJ3t0cmFjZUV2ZW50czogW3tnYXJiYWdlJzsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIGFzc2VydC50aHJvdyhmdW5jdGlvbigpIHsKKyAgICAgIG0uaW1wb3J0VHJhY2VzKFttYWxmb3JtZWRdKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgdGVzdCgnVGl0bGVPckNhdGVnb3J5RmlsdGVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHMwID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlKDEsIDMpOworICAgIGFzc2VydC5pc1RydWUobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignYScpLm1hdGNoU2xpY2UoczApKTsKKyAgICBhc3NlcnQuaXNGYWxzZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCd4JykubWF0Y2hTbGljZShzMCkpOworCisgICAgdmFyIHMxID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQoJ2JhJywgMSwgMyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShuZXcgVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdhJykubWF0Y2hTbGljZShzMSkpOworICAgIGFzc2VydC5pc1RydWUobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcignYmEnKS5tYXRjaFNsaWNlKHMxKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UobmV3IFRpdGxlT3JDYXRlZ29yeUZpbHRlcigneCcpLm1hdGNoU2xpY2UoczEpKTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZWxfZmluZEFsbFRocmVhZHNOYW1lZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB0Lm5hbWUgPSAnQ3JCcm93c2VyTWFpbic7CisKKyAgICBtLnVwZGF0ZUJvdW5kcygpOworICAgIHZhciBmID0gbS5maW5kQWxsVGhyZWFkc05hbWVkKCdDckJyb3dzZXJNYWluJyk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChbdF0sIGYpOworICAgIGYgPSBtLmZpbmRBbGxUaHJlYWRzTmFtZWQoJ05vU3VjaFRocmVhZCcpOworICAgIGFzc2VydC5lcXVhbChmLmxlbmd0aCwgMCk7CisgIH0pOworCisgIHRlc3QoJ21vZGVsX3VwZGF0ZUNhdGVnb3JpZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciB0ID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgdC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJ2NhdGVnb3J5QScsICdhJywgMCwgMSwge30sIDMpKTsKKyAgICB0LnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyBUaHJlYWRTbGljZSgnY2F0ZWdvcnlBJywgJ2EnLCAwLCAxLCB7fSwgMykpOworICAgIHQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IFRocmVhZFNsaWNlKCdjYXRlZ29yeUInLCAnYScsIDAsIDEsIHt9LCAzKSk7CisgICAgdC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJ2NhdGVnb3J5QScsICdhJywgMCwgMSwge30sIDMpKTsKKyAgICB0LnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyBUaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMykpOworICAgIG0udXBkYXRlQ2F0ZWdvcmllc18oKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKFsnY2F0ZWdvcnlBJywgJ2NhdGVnb3J5QiddLCBtLmNhdGVnb3JpZXMpOworICB9KTsKKworICB0ZXN0KCdtb2RlbF9pdGVyYXRlQWxsRXZlbnRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVNb2RlbFdpdGhPbmVPZkV2ZXJ5dGhpbmcoKTsKKyAgICB2YXIgd2FzQ2FsbGVkID0gZmFsc2U7CisgICAgbS5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICBhc3NlcnQuaXNUcnVlKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuRXZlbnQpOworICAgICAgd2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9KTsKKyAgICBhc3NlcnQuaXNUcnVlKHdhc0NhbGxlZCk7CisgIH0pOworCisgIHRlc3QoJ2N1c3RvbWl6ZUNhbGxiYWNrJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbXSwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBicm93c2VyUHJvY2VzcyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgICAgdmFyIGJyb3dzZXJNYWluID0gYnJvd3NlclByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ2NhdCcsICdUYXNrJywgMCk7CisgICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ2NhdCcsICdTdWJUYXNrJywgMSk7CisgICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDkpOworICAgICAgYnJvd3Nlck1haW4uc2xpY2VHcm91cC5lbmRTbGljZSgxMCk7CisgICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ2NhdCcsICdUYXNrJywgMjApOworICAgICAgYnJvd3Nlck1haW4uc2xpY2VHcm91cC5lbmRTbGljZSgzMCk7CisgICAgfSk7CisgICAgdmFyIHQyID0gbS5wcm9jZXNzZXNbMV0udGhyZWFkc1syXTsKKyAgICBhc3NlcnQuZXF1YWwodDIuc2xpY2VHcm91cC5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcXVhbCh0Mi5zbGljZUdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMik7CisgIH0pOworCisgIHRlc3QoJ21vZGVsX3NvcnRzU2FtcGxlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgLy8gVGhlIDE4NCwgMCBhbmQgMTg1IGFyZSB0aGUgdGljay10aW1lcworICAgIC8vIGFuZCBpcnJlc3BlY3RpdmUgb2YgdGhlIG9yZGVyCisgICAgLy8gaW4gd2hpY2ggdGhlIGxpbmVzIGFwcGVhciBpbiB0aGUgdHJhY2UsCisgICAgLy8gdGhlIHNhbXBsZXMgc2hvdWxkIGFsd2F5cyBiZSBzb3J0ZWQgYnkgc2FtcGxpbmcgdGltZS4KKyAgICBtLmltcG9ydFRyYWNlcyhbJ3RpY2ssMHg5YSwxODQsMCwweDAsNScsCisgICAgICAgICAgICAgICAgICAgICd0aWNrLDB4OWIsMCwwLDB4MCw1JywKKyAgICAgICAgICAgICAgICAgICAgJ3RpY2ssMHg5YywxODUsMCwweDAsNSddKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zYW1wbGVzWzBdLnN0YXJ0LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zYW1wbGVzWzFdLnN0YXJ0LCAwLjE4NCk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2FtcGxlc1syXS5zdGFydCwgMC4xODUpOworICB9KTsKKworICB0ZXN0KCdtb2RlbF9zb3J0c0dsb2JhbE1lbW9yeUR1bXBzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbXSwgdHJ1ZSAvKiBzaGlmdFdvcmxkVG9aZXJvICovLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2gobmV3IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXAobSwgMSkpOworICAgICAgbS5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKG0sIDUpKTsKKyAgICAgIG0uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtLCAzKSk7CisgICAgfSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uZ2xvYmFsTWVtb3J5RHVtcHNbMF0uc3RhcnQsIDApOworICAgIGFzc2VydC5lcXVhbChtLmdsb2JhbE1lbW9yeUR1bXBzWzFdLnN0YXJ0LCAyKTsKKyAgICBhc3NlcnQuZXF1YWwobS5nbG9iYWxNZW1vcnlEdW1wc1syXS5zdGFydCwgNCk7CisgIH0pOworCisgIHRlc3QoJ21vZGVsX2ZpbmFsaXplc1Byb2Nlc3NNZW1vcnlEdW1wcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICBtLmltcG9ydFRyYWNlcyhbXSwgdHJ1ZSAvKiBzaGlmdFdvcmxkVG9aZXJvICovLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZyA9IG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKG0sIC0xKTsKKyAgICAgIG0uZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnKTsKKworICAgICAgdmFyIHBtZDEgPSBuZXcgdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXAoZywgcCwgMSk7CisgICAgICBwLm1lbW9yeUR1bXBzLnB1c2gocG1kMSk7CisKKyAgICAgIHZhciBwbWQyID0gbmV3IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wKGcsIHAsIDUpOworICAgICAgcC5tZW1vcnlEdW1wcy5wdXNoKHBtZDIpOworCisgICAgICB2YXIgcG1kMyA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcChnLCBwLCAzKTsKKyAgICAgIHAubWVtb3J5RHVtcHMucHVzaChwbWQzKTsKKyAgICAgIHBtZDMudm1SZWdpb25zID0gW107CisgICAgfSk7CisKKyAgICAvLyBDaGVjayB0aGUgc29ydCBvcmRlci4KKyAgICBhc3NlcnQuZXF1YWwocC5tZW1vcnlEdW1wc1swXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHAubWVtb3J5RHVtcHNbMV0uc3RhcnQsIDQpOworICAgIGFzc2VydC5lcXVhbChwLm1lbW9yeUR1bXBzWzJdLnN0YXJ0LCA2KTsKKworICAgIC8vIENoZWNrIHRoYXQgdGhlIG1vc3QgcmVjZW50IFZNIHJlZ2lvbnMgYXJlIGxpbmtlZCBjb3JyZWN0bHkuCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHAubWVtb3J5RHVtcHNbMF0ubW9zdFJlY2VudFZtUmVnaW9ucyk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHAubWVtb3J5RHVtcHNbMV0ubW9zdFJlY2VudFZtUmVnaW9ucywgMCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKAorICAgICAgICBwLm1lbW9yeUR1bXBzWzFdLm1vc3RSZWNlbnRWbVJlZ2lvbnMsCisgICAgICAgIHAubWVtb3J5RHVtcHNbMl0ubW9zdFJlY2VudFZtUmVnaW9ucyk7CisgIH0pOworCisgIHRlc3QoJ21vZGVsX2Fubm90YXRpb25BZGRSZW1vdmUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBhMSA9IG5ldyB0ci5tb2RlbC5Bbm5vdGF0aW9uKCk7CisgICAgdmFyIGEyID0gbmV3IHRyLm1vZGVsLkFubm90YXRpb24oKTsKKworICAgIGFzc2VydC5lcXVhbChtLmdldEFsbEFubm90YXRpb25zKCkubGVuZ3RoLCAwKTsKKyAgICBtLmFkZEFubm90YXRpb24oYTEpOworICAgIGFzc2VydC5lcXVhbChtLmdldEFsbEFubm90YXRpb25zKCkubGVuZ3RoLCAxKTsKKyAgICBtLmFkZEFubm90YXRpb24oYTIpOworICAgIGFzc2VydC5lcXVhbChtLmdldEFsbEFubm90YXRpb25zKCkubGVuZ3RoLCAyKTsKKworICAgIGFzc2VydC5lcXVhbChtLmdldEFubm90YXRpb25CeUdVSUQoYTEuZ3VpZCksIGExKTsKKyAgICBhc3NlcnQuZXF1YWwobS5nZXRBbm5vdGF0aW9uQnlHVUlEKGEyLmd1aWQpLCBhMik7CisKKyAgICBtLnJlbW92ZUFubm90YXRpb24oYTEpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChtLmdldEFubm90YXRpb25CeUdVSUQoYTEuZ3VpZCkpOworICAgIGFzc2VydC5lcXVhbChtLmdldEFubm90YXRpb25CeUdVSUQoYTIuZ3VpZCksIGEyKTsKKyAgICBhc3NlcnQuZXF1YWwobS5nZXRBbGxBbm5vdGF0aW9ucygpLmxlbmd0aCwgMSk7CisgIH0pOworCisgIHRlc3QoJ21vZGVsX2ludHJpbnNpY1RpbWVVbml0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHVuaXQgPSB0ci5iLnVuaXRzLlRpbWUuc3VwcG9ydGVkVW5pdHM7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKworICAgIC8vIGJ5IGRlZmF1bHQgaXQgc2hvdWxkIGJlIG1pbGxpc2Vjb25kcworICAgIGFzc2VydC5lcXVhbChtLmludHJpbnNpY1RpbWVVbml0LCB1bml0Lm1zKTsKKworICAgIG0uaW50cmluc2ljVGltZVVuaXQgPSB1bml0Lm5zOworICAgIGFzc2VydC5lcXVhbChtLmludHJpbnNpY1RpbWVVbml0LCB1bml0Lm5zKTsKKyAgICAvLyBzaG91bGQgYmUgYWJsZSB0byBzZXQgdG8gdGhlIHNhbWUKKyAgICBtLmludHJpbnNpY1RpbWVVbml0ID0gdW5pdC5uczsKKyAgICBhc3NlcnQuZXF1YWwobS5pbnRyaW5zaWNUaW1lVW5pdCwgdW5pdC5ucyk7CisgICAgLy8gc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGNoYW5nZSBpdCBhZnRlciBmaXhpbmcgaXQKKyAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7IG0uaW50cmluc2ljVGltZVVuaXQgPSB1bml0Lm1zOyB9KTsKKyAgICBhc3NlcnQuZXF1YWwobS5pbnRyaW5zaWNUaW1lVW5pdCwgdW5pdC5ucyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvb2JqZWN0X2NvbGxlY3Rpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvb2JqZWN0X2NvbGxlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjNkYjkzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9vYmplY3RfY29sbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMjI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL29iamVjdF9pbnN0YW5jZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBPYmplY3RDb2xsZWN0aW9uIGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgdmFyIE9iamVjdEluc3RhbmNlID0gdHIubW9kZWwuT2JqZWN0SW5zdGFuY2U7CisgIHZhciBPYmplY3RTbmFwc2hvdCA9IHRyLm1vZGVsLk9iamVjdFNuYXBzaG90OworCisgIC8qKgorICAgKiBBIGNvbGxlY3Rpb24gb2Ygb2JqZWN0IGluc3RhbmNlcyBhbmQgdGhlaXIgc25hcHNob3RzLCBhY2Nlc3NpYmxlIGJ5IGlkIGFuZAorICAgKiB0aW1lLCBvciBieSBvYmplY3QgbmFtZS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBPYmplY3RDb2xsZWN0aW9uKHBhcmVudCkgeworICAgIHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7CisgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CisgICAgdGhpcy5pbnN0YW5jZU1hcHNCeUlkXyA9IHt9OyAvLyBpZCAtPiBUaW1lVG9PYmplY3RJbnN0YW5jZU1hcAorICAgIHRoaXMuaW5zdGFuY2VzQnlUeXBlTmFtZV8gPSB7fTsKKyAgICB0aGlzLmNyZWF0ZU9iamVjdEluc3RhbmNlXyA9IHRoaXMuY3JlYXRlT2JqZWN0SW5zdGFuY2VfLmJpbmQodGhpcyk7CisgIH0KKworICBPYmplY3RDb2xsZWN0aW9uLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSwKKworICAgIGl0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVyczogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIHZhciBiSSA9ICEhZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIE9iamVjdEluc3RhbmNlKTsKKyAgICAgIHZhciBiUyA9ICEhZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIE9iamVjdFNuYXBzaG90KTsKKyAgICAgIGlmIChiSSA9PT0gZmFsc2UgJiYgYlMgPT09IGZhbHNlKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2UpIHsKKyAgICAgICAgaWYgKGJJKQorICAgICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIGluc3RhbmNlKTsKKyAgICAgICAgaWYgKGJTKQorICAgICAgICAgIGluc3RhbmNlLnNuYXBzaG90cy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisgICAgICB9LCBvcHRfdGhpcyk7CisgICAgfSwKKworICAgIGNyZWF0ZU9iamVjdEluc3RhbmNlXzogZnVuY3Rpb24oCisgICAgICAgIHBhcmVudCwgaWQsIGNhdGVnb3J5LCBuYW1lLCBjcmVhdGlvblRzLCBvcHRfYmFzZVR5cGVOYW1lKSB7CisgICAgICB2YXIgY29uc3RydWN0b3IgPSB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZS5nZXRDb25zdHJ1Y3RvcigKKyAgICAgICAgICBjYXRlZ29yeSwgbmFtZSk7CisgICAgICB2YXIgaW5zdGFuY2UgPSBuZXcgY29uc3RydWN0b3IoCisgICAgICAgICAgcGFyZW50LCBpZCwgY2F0ZWdvcnksIG5hbWUsIGNyZWF0aW9uVHMsIG9wdF9iYXNlVHlwZU5hbWUpOworICAgICAgdmFyIHR5cGVOYW1lID0gaW5zdGFuY2UudHlwZU5hbWU7CisgICAgICB2YXIgaW5zdGFuY2VzT2ZUeXBlTmFtZSA9IHRoaXMuaW5zdGFuY2VzQnlUeXBlTmFtZV9bdHlwZU5hbWVdOworICAgICAgaWYgKCFpbnN0YW5jZXNPZlR5cGVOYW1lKSB7CisgICAgICAgIGluc3RhbmNlc09mVHlwZU5hbWUgPSBbXTsKKyAgICAgICAgdGhpcy5pbnN0YW5jZXNCeVR5cGVOYW1lX1t0eXBlTmFtZV0gPSBpbnN0YW5jZXNPZlR5cGVOYW1lOworICAgICAgfQorICAgICAgaW5zdGFuY2VzT2ZUeXBlTmFtZS5wdXNoKGluc3RhbmNlKTsKKyAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICB9LAorCisgICAgZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF86IGZ1bmN0aW9uKGlkKSB7CisgICAgICB2YXIgaW5zdGFuY2VNYXAgPSB0aGlzLmluc3RhbmNlTWFwc0J5SWRfW2lkXTsKKyAgICAgIGlmIChpbnN0YW5jZU1hcCkKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlTWFwOworICAgICAgaW5zdGFuY2VNYXAgPSBuZXcgdHIubW9kZWwuVGltZVRvT2JqZWN0SW5zdGFuY2VNYXAoCisgICAgICAgICAgdGhpcy5jcmVhdGVPYmplY3RJbnN0YW5jZV8sIHRoaXMucGFyZW50LCBpZCk7CisgICAgICB0aGlzLmluc3RhbmNlTWFwc0J5SWRfW2lkXSA9IGluc3RhbmNlTWFwOworICAgICAgcmV0dXJuIGluc3RhbmNlTWFwOworICAgIH0sCisKKyAgICBpZFdhc0NyZWF0ZWQ6IGZ1bmN0aW9uKGlkLCBjYXRlZ29yeSwgbmFtZSwgdHMpIHsKKyAgICAgIHZhciBpbnN0YW5jZU1hcCA9IHRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZU1hcF8oaWQpOworICAgICAgcmV0dXJuIGluc3RhbmNlTWFwLmlkV2FzQ3JlYXRlZChjYXRlZ29yeSwgbmFtZSwgdHMpOworICAgIH0sCisKKyAgICBhZGRTbmFwc2hvdDogZnVuY3Rpb24oaWQsIGNhdGVnb3J5LCBuYW1lLCB0cywgYXJncywgb3B0X2Jhc2VUeXBlTmFtZSkgeworICAgICAgdmFyIGluc3RhbmNlTWFwID0gdGhpcy5nZXRPckNyZWF0ZUluc3RhbmNlTWFwXyhpZCk7CisgICAgICB2YXIgc25hcHNob3QgPSBpbnN0YW5jZU1hcC5hZGRTbmFwc2hvdCgKKyAgICAgICAgICBjYXRlZ29yeSwgbmFtZSwgdHMsIGFyZ3MsIG9wdF9iYXNlVHlwZU5hbWUpOworICAgICAgaWYgKHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNhdGVnb3J5ICE9IGNhdGVnb3J5KSB7CisgICAgICAgIHZhciBtc2cgPSAnQWRkZWQgc25hcHNob3QgbmFtZT0nICsgbmFtZSArICcgd2l0aCBjYXQ9JyArIGNhdGVnb3J5ICsKKyAgICAgICAgICAgICcgaW1wb3NzaWJsZS4gSXQgaW5zdGFuY2Ugd2FzIGNyZWF0ZWQvc25hcHNob3R0ZWQgd2l0aCBjYXQ9JyArCisgICAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5jYXRlZ29yeSArICcgbmFtZT0nICsKKyAgICAgICAgICAgIHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLm5hbWU7CisgICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpOworICAgICAgfQorICAgICAgaWYgKG9wdF9iYXNlVHlwZU5hbWUgJiYKKyAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5iYXNlVHlwZU5hbWUgIT0gb3B0X2Jhc2VUeXBlTmFtZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBhZGQgc25hcHNob3Qgd2l0aCBiYXNlVHlwZU5hbWU9JyArCisgICAgICAgICAgICAgICAgICAgICAgICBvcHRfYmFzZVR5cGVOYW1lICsgJy4gSXQgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAnd2FzIHByZXZpb3VzbHkgY3JlYXRlZCB3aXRoIG5hbWU9JyArCisgICAgICAgICAgICAgICAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5iYXNlVHlwZU5hbWUpOworICAgICAgfQorICAgICAgaWYgKHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLm5hbWUgIT0gbmFtZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBhZGQgc25hcHNob3Qgd2l0aCBuYW1lPScgKyBuYW1lICsgJy4gSXQgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAnd2FzIHByZXZpb3VzbHkgY3JlYXRlZCB3aXRoIG5hbWU9JyArCisgICAgICAgICAgICAgICAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5uYW1lKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBzbmFwc2hvdDsKKyAgICB9LAorCisgICAgaWRXYXNEZWxldGVkOiBmdW5jdGlvbihpZCwgY2F0ZWdvcnksIG5hbWUsIHRzKSB7CisgICAgICB2YXIgaW5zdGFuY2VNYXAgPSB0aGlzLmdldE9yQ3JlYXRlSW5zdGFuY2VNYXBfKGlkKTsKKyAgICAgIHZhciBkZWxldGVkSW5zdGFuY2UgPSBpbnN0YW5jZU1hcC5pZFdhc0RlbGV0ZWQoY2F0ZWdvcnksIG5hbWUsIHRzKTsKKyAgICAgIGlmICghZGVsZXRlZEluc3RhbmNlKQorICAgICAgICByZXR1cm47CisgICAgICBpZiAoZGVsZXRlZEluc3RhbmNlLmNhdGVnb3J5ICE9IGNhdGVnb3J5KSB7CisgICAgICAgIHZhciBtc2cgPSAnRGVsZXRpbmcgb2JqZWN0ICcgKyBkZWxldGVkSW5zdGFuY2UubmFtZSArCisgICAgICAgICAgICAnIHdpdGggYSBkaWZmZXJlbnQgY2F0ZWdvcnkgJyArCisgICAgICAgICAgICAndGhhbiB3aGVuIGl0IHdhcyBjcmVhdGVkLiBJdCBwcmV2aW91cyBoYWQgY2F0PScgKworICAgICAgICAgICAgZGVsZXRlZEluc3RhbmNlLmNhdGVnb3J5ICsgJyBidXQgdGhlIGRlbGV0ZSBjb21tYW5kICcgKworICAgICAgICAgICAgJ2hhZCBjYXQ9JyArIGNhdGVnb3J5OworICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKKyAgICAgIH0KKyAgICAgIGlmIChkZWxldGVkSW5zdGFuY2UuYmFzZVR5cGVOYW1lICE9IG5hbWUpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZWxldGlvbiByZXF1ZXN0ZWQgZm9yIG5hbWU9JyArCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lICsgJyBjb3VsZCBub3QgcHJvY2VlZDogJyArCisgICAgICAgICAgICAgICAgICAgICAgICAnQW4gZXhpc3Rpbmcgb2JqZWN0IHdpdGggYmFzZVR5cGVOYW1lPScgKworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlZEluc3RhbmNlLmJhc2VUeXBlTmFtZSArICcgZXhpc3RlZC4nKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYXV0b0RlbGV0ZU9iamVjdHM6IGZ1bmN0aW9uKG1heFRpbWVzdGFtcCkgeworICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5pbnN0YW5jZU1hcHNCeUlkXywgZnVuY3Rpb24oaWQsIGkyaW1hcCkgeworICAgICAgICB2YXIgbGFzdEluc3RhbmNlID0gaTJpbWFwLmxhc3RJbnN0YW5jZTsKKyAgICAgICAgaWYgKGxhc3RJbnN0YW5jZS5kZWxldGlvblRzICE9IE51bWJlci5NQVhfVkFMVUUpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICBpMmltYXAuaWRXYXNEZWxldGVkKAorICAgICAgICAgICAgbGFzdEluc3RhbmNlLmNhdGVnb3J5LCBsYXN0SW5zdGFuY2UubmFtZSwgbWF4VGltZXN0YW1wKTsKKyAgICAgICAgLy8gaWRXYXNEZWxldGVkIHdpbGwgY2F1c2UgbGFzdEluc3RhbmNlLmRlbGV0aW9uVHNXYXNFeHBsaWNpdCB0byBiZSBzZXQKKyAgICAgICAgLy8gdG8gdHJ1ZS4gVW5zZXQgaXQgaGVyZS4KKyAgICAgICAgbGFzdEluc3RhbmNlLmRlbGV0aW9uVHNXYXNFeHBsaWNpdCA9IGZhbHNlOworICAgICAgfSk7CisgICAgfSwKKworICAgIGdldE9iamVjdEluc3RhbmNlQXQ6IGZ1bmN0aW9uKGlkLCB0cykgeworICAgICAgdmFyIGluc3RhbmNlTWFwID0gdGhpcy5pbnN0YW5jZU1hcHNCeUlkX1tpZF07CisgICAgICBpZiAoIWluc3RhbmNlTWFwKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIGluc3RhbmNlTWFwLmdldEluc3RhbmNlQXQodHMpOworICAgIH0sCisKKyAgICBnZXRTbmFwc2hvdEF0OiBmdW5jdGlvbihpZCwgdHMpIHsKKyAgICAgIHZhciBpbnN0YW5jZSA9IHRoaXMuZ2V0T2JqZWN0SW5zdGFuY2VBdChpZCwgdHMpOworICAgICAgaWYgKCFpbnN0YW5jZSkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiBpbnN0YW5jZS5nZXRTbmFwc2hvdEF0KHRzKTsKKyAgICB9LAorCisgICAgaXRlck9iamVjdEluc3RhbmNlczogZnVuY3Rpb24oaXRlciwgb3B0X3RoaXMpIHsKKyAgICAgIG9wdF90aGlzID0gb3B0X3RoaXMgfHwgdGhpczsKKyAgICAgIHRyLmIuaXRlckl0ZW1zKHRoaXMuaW5zdGFuY2VNYXBzQnlJZF8sIGZ1bmN0aW9uKGlkLCBpMmltYXApIHsKKyAgICAgICAgaTJpbWFwLmluc3RhbmNlcy5mb3JFYWNoKGl0ZXIsIG9wdF90aGlzKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXRBbGxPYmplY3RJbnN0YW5jZXM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGluc3RhbmNlcyA9IFtdOworICAgICAgdGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGkpIHsgaW5zdGFuY2VzLnB1c2goaSk7IH0pOworICAgICAgcmV0dXJuIGluc3RhbmNlczsKKyAgICB9LAorCisgICAgZ2V0QWxsSW5zdGFuY2VzTmFtZWQ6IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlc0J5VHlwZU5hbWVfW25hbWVdOworICAgIH0sCisKKyAgICBnZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlc0J5VHlwZU5hbWVfOworICAgIH0sCisKKyAgICBwcmVJbml0aWFsaXplQWxsT2JqZWN0czogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2UpIHsKKyAgICAgICAgaW5zdGFuY2UucHJlSW5pdGlhbGl6ZSgpOworICAgICAgfSk7CisgICAgfSwKKworICAgIGluaXRpYWxpemVBbGxPYmplY3RzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuaXRlck9iamVjdEluc3RhbmNlcyhmdW5jdGlvbihpbnN0YW5jZSkgeworICAgICAgICBpbnN0YW5jZS5pbml0aWFsaXplKCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgaW5pdGlhbGl6ZUluc3RhbmNlczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLml0ZXJPYmplY3RJbnN0YW5jZXMoZnVuY3Rpb24oaW5zdGFuY2UpIHsKKyAgICAgICAgaW5zdGFuY2UuaW5pdGlhbGl6ZSgpOworICAgICAgfSk7CisgICAgfSwKKworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOworICAgICAgdGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKSB7CisgICAgICAgIGluc3RhbmNlLnVwZGF0ZUJvdW5kcygpOworICAgICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZShpbnN0YW5jZS5ib3VuZHMpOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgeworICAgICAgdGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKSB7CisgICAgICAgIGluc3RhbmNlLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBhZGRDYXRlZ29yaWVzVG9EaWN0OiBmdW5jdGlvbihjYXRlZ29yaWVzRGljdCkgeworICAgICAgdGhpcy5pdGVyT2JqZWN0SW5zdGFuY2VzKGZ1bmN0aW9uKGluc3RhbmNlKSB7CisgICAgICAgIGNhdGVnb3JpZXNEaWN0W2luc3RhbmNlLmNhdGVnb3J5XSA9IHRydWU7CisgICAgICB9KTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBPYmplY3RDb2xsZWN0aW9uOiBPYmplY3RDb2xsZWN0aW9uCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3RfY29sbGVjdGlvbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL29iamVjdF9jb2xsZWN0aW9uX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3RfY29sbGVjdGlvbl90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvb2JqZWN0X2NvbGxlY3Rpb25fdGVzdC5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL29iamVjdF9pbnN0YW5jZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9vYmplY3RfaW5zdGFuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDU0MTk1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9vYmplY3RfaW5zdGFuY2UuaHRtbApAQCAtMCwwICsxLDE5NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9vYmplY3Rfc25hcHNob3QuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIE9iamVjdFNuYXBzaG90IGFuZCBPYmplY3RIaXN0b3J5IGNsYXNzZXMuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICB2YXIgT2JqZWN0U25hcHNob3QgPSB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdDsKKworICAvKioKKyAgICogQW4gb2JqZWN0IHdpdGggYSBzcGVjaWZpYyBpZCwgd2hvc2Ugc3RhdGUgaGFzIGJlZW4gc25hcHNob3R0ZWQgc2V2ZXJhbAorICAgKiB0aW1lcy4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBPYmplY3RJbnN0YW5jZSgKKyAgICAgIHBhcmVudCwgaWQsIGNhdGVnb3J5LCBuYW1lLCBjcmVhdGlvblRzLCBvcHRfYmFzZVR5cGVOYW1lKSB7CisgICAgdHIubW9kZWwuRXZlbnQuY2FsbCh0aGlzKTsKKyAgICB0aGlzLnBhcmVudCA9IHBhcmVudDsKKyAgICB0aGlzLmlkID0gaWQ7CisgICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5OworICAgIHRoaXMuYmFzZVR5cGVOYW1lID0gb3B0X2Jhc2VUeXBlTmFtZSA/IG9wdF9iYXNlVHlwZU5hbWUgOiBuYW1lOworICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgdGhpcy5jcmVhdGlvblRzID0gY3JlYXRpb25UczsKKyAgICB0aGlzLmNyZWF0aW9uVHNXYXNFeHBsaWNpdCA9IGZhbHNlOworICAgIHRoaXMuZGVsZXRpb25UcyA9IE51bWJlci5NQVhfVkFMVUU7CisgICAgdGhpcy5kZWxldGlvblRzV2FzRXhwbGljaXQgPSBmYWxzZTsKKyAgICB0aGlzLmNvbG9ySWQgPSAwOworICAgIHRoaXMuYm91bmRzID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICB0aGlzLnNuYXBzaG90cyA9IFtdOworICAgIHRoaXMuaGFzSW1wbGljaXRTbmFwc2hvdHMgPSBmYWxzZTsKKyAgfQorCisgIE9iamVjdEluc3RhbmNlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50LnByb3RvdHlwZSwKKworICAgIGdldCB0eXBlTmFtZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLm5hbWU7CisgICAgfSwKKworICAgIGFkZEJvdW5kc1RvUmFuZ2U6IGZ1bmN0aW9uKHJhbmdlKSB7CisgICAgICByYW5nZS5hZGRSYW5nZSh0aGlzLmJvdW5kcyk7CisgICAgfSwKKworICAgIGFkZFNuYXBzaG90OiBmdW5jdGlvbih0cywgYXJncywgb3B0X25hbWUsIG9wdF9iYXNlVHlwZU5hbWUpIHsKKyAgICAgIGlmICh0cyA8IHRoaXMuY3JlYXRpb25UcykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTbmFwc2hvdHMgbXVzdCBiZSA+PSBpbnN0YW5jZS5jcmVhdGlvblRzJyk7CisgICAgICBpZiAodHMgPj0gdGhpcy5kZWxldGlvblRzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBjYW5ub3QgYmUgYWRkZWQgYWZ0ZXIgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAnYW4gb2JqZWN0cyBkZWxldGlvbiB0aW1lc3RhbXAuJyk7CisKKyAgICAgIHZhciBsYXN0U25hcHNob3Q7CisgICAgICBpZiAodGhpcy5zbmFwc2hvdHMubGVuZ3RoID4gMCkgeworICAgICAgICBsYXN0U25hcHNob3QgPSB0aGlzLnNuYXBzaG90c1t0aGlzLnNuYXBzaG90cy5sZW5ndGggLSAxXTsKKyAgICAgICAgaWYgKGxhc3RTbmFwc2hvdC50cyA9PSB0cykKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90cyBhbHJlYWR5IGV4aXN0cyBhdCB0aGlzIHRpbWUhJyk7CisgICAgICAgIGlmICh0cyA8IGxhc3RTbmFwc2hvdC50cykgeworICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKKyAgICAgICAgICAgICAgJ1NuYXBzaG90cyBtdXN0IGJlIGFkZGVkIGluIGluY3JlYXNpbmcgdGltZXN0YW1wIG9yZGVyJyk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gVXBkYXRlIGJhc2VUeXBlTmFtZSBpZiBuZWVkZWQuCisgICAgICBpZiAob3B0X25hbWUgJiYKKyAgICAgICAgICAodGhpcy5uYW1lICE9IG9wdF9uYW1lKSkgeworICAgICAgICBpZiAoIW9wdF9iYXNlVHlwZU5hbWUpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYmFzZSB0eXBlIG5hbWUgZm9yIG5hbWUgdXBkYXRlJyk7CisgICAgICAgIGlmICh0aGlzLmJhc2VUeXBlTmFtZSAhPSBvcHRfYmFzZVR5cGVOYW1lKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVwZGF0ZSB0eXBlIG5hbWU6IGJhc2UgdHlwZXMgZG9udCBtYXRjaCcpOworICAgICAgICB0aGlzLm5hbWUgPSBvcHRfbmFtZTsKKyAgICAgIH0KKworICAgICAgdmFyIHNuYXBzaG90Q29uc3RydWN0b3IgPQorICAgICAgICAgIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90LmdldENvbnN0cnVjdG9yKAorICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5LCB0aGlzLm5hbWUpOworICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IHNuYXBzaG90Q29uc3RydWN0b3IodGhpcywgdHMsIGFyZ3MpOworICAgICAgdGhpcy5zbmFwc2hvdHMucHVzaChzbmFwc2hvdCk7CisgICAgICByZXR1cm4gc25hcHNob3Q7CisgICAgfSwKKworICAgIHdhc0RlbGV0ZWQ6IGZ1bmN0aW9uKHRzKSB7CisgICAgICB2YXIgbGFzdFNuYXBzaG90OworICAgICAgaWYgKHRoaXMuc25hcHNob3RzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgbGFzdFNuYXBzaG90ID0gdGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoIC0gMV07CisgICAgICAgIGlmIChsYXN0U25hcHNob3QudHMgPiB0cykKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCisgICAgICAgICAgICAgICdJbnN0YW5jZSBjYW5ub3QgYmUgZGVsZXRlZCBhdCB0cz0nICsKKyAgICAgICAgICAgICAgdHMgKyAnLiBBIHNuYXBzaG90IGV4aXN0cyB0aGF0IGlzIG9sZGVyLicpOworICAgICAgfQorICAgICAgdGhpcy5kZWxldGlvblRzID0gdHM7CisgICAgICB0aGlzLmRlbGV0aW9uVHNXYXNFeHBsaWNpdCA9IHRydWU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFNlZSBPYmplY3RTbmFwc2hvdCBjb25zdHJ1Y3RvciBub3RlcyBvbiBvYmplY3QgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgcHJlSW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc25hcHNob3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB0aGlzLnNuYXBzaG90c1tpXS5wcmVJbml0aWFsaXplKCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFNlZSBPYmplY3RTbmFwc2hvdCBjb25zdHJ1Y3RvciBub3RlcyBvbiBvYmplY3QgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc25hcHNob3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB0aGlzLnNuYXBzaG90c1tpXS5pbml0aWFsaXplKCk7CisgICAgfSwKKworICAgIGdldFNuYXBzaG90QXQ6IGZ1bmN0aW9uKHRzKSB7CisgICAgICBpZiAodHMgPCB0aGlzLmNyZWF0aW9uVHMpIHsKKyAgICAgICAgaWYgKHRoaXMuY3JlYXRpb25Uc1dhc0V4cGxpY2l0KQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndHMgbXVzdCBiZSB3aXRoaW4gbGlmZXRpbWUgb2YgdGhpcyBpbnN0YW5jZScpOworICAgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdHNbMF07CisgICAgICB9CisgICAgICBpZiAodHMgPiB0aGlzLmRlbGV0aW9uVHMpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigndHMgbXVzdCBiZSB3aXRoaW4gbGlmZXRpbWUgb2YgdGhpcyBpbnN0YW5jZScpOworCisgICAgICB2YXIgc25hcHNob3RzID0gdGhpcy5zbmFwc2hvdHM7CisgICAgICB2YXIgaSA9IHRyLmIuZmluZEluZGV4SW5Tb3J0ZWRJbnRlcnZhbHMoCisgICAgICAgICAgc25hcHNob3RzLAorICAgICAgICAgIGZ1bmN0aW9uKHNuYXBzaG90KSB7IHJldHVybiBzbmFwc2hvdC50czsgfSwKKyAgICAgICAgICBmdW5jdGlvbihzbmFwc2hvdCwgaSkgeworICAgICAgICAgICAgaWYgKGkgPT0gc25hcHNob3RzLmxlbmd0aCAtIDEpCisgICAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdHNbaV0ub2JqZWN0SW5zdGFuY2UuZGVsZXRpb25UczsKKyAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdHNbaSArIDFdLnRzIC0gc25hcHNob3RzW2ldLnRzOworICAgICAgICAgIH0sCisgICAgICAgICAgdHMpOworICAgICAgaWYgKGkgPCAwKSB7CisgICAgICAgIC8vIE5vdGUsIHRoaXMgaXMgYSBsaXR0bGUgYml0IHNrZXRjaHk6IHRoaXMgbGV0cyBlYXJseSB0cyBwb2ludCBhdCB0aGUKKyAgICAgICAgLy8gZmlyc3Qgc25hcHNob3QsIGV2ZW4gYmVmb3JlIGl0IGlzIHRha2VuLiBXZSBkbyB0aGlzIGJlY2F1c2UgcmFzdGVyCisgICAgICAgIC8vIHRhc2tzIHVzdWFsbHkgcG9zdCBiZWZvcmUgdGhlaXIgdGlsZSBzbmFwc2hvdHMgYXJlIGR1bXBlZC4gVGhpcyBtYXkKKyAgICAgICAgLy8gYmUgYSBnb29kIGxpbmUgb2YgY29kZSB0byByZS12aXNpdCBpZiB3ZSBzdGFydCBzZWVpbmcgc3RyYW5nZSBhbmQKKyAgICAgICAgLy8gY29uZnVzaW5nIG9iamVjdCByZWZlcmVuY2VzIHNob3dpbmcgdXAgaW4gdGhlIHRyYWNlcy4KKyAgICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3RzWzBdOworICAgICAgfQorICAgICAgaWYgKGkgPj0gdGhpcy5zbmFwc2hvdHMubGVuZ3RoKQorICAgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoIC0gMV07CisgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdHNbaV07CisgICAgfSwKKworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOworICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5jcmVhdGlvblRzKTsKKyAgICAgIGlmICh0aGlzLmRlbGV0aW9uVHMgIT0gTnVtYmVyLk1BWF9WQUxVRSkKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5kZWxldGlvblRzKTsKKyAgICAgIGVsc2UgaWYgKHRoaXMuc25hcHNob3RzLmxlbmd0aCA+IDApCisgICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc25hcHNob3RzW3RoaXMuc25hcHNob3RzLmxlbmd0aCAtIDFdLnRzKTsKKyAgICB9LAorCisgICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7CisgICAgICB0aGlzLmNyZWF0aW9uVHMgKz0gYW1vdW50OworICAgICAgaWYgKHRoaXMuZGVsZXRpb25UcyAhPSBOdW1iZXIuTUFYX1ZBTFVFKQorICAgICAgICB0aGlzLmRlbGV0aW9uVHMgKz0gYW1vdW50OworICAgICAgdGhpcy5zbmFwc2hvdHMuZm9yRWFjaChmdW5jdGlvbihzbmFwc2hvdCkgeworICAgICAgICBzbmFwc2hvdC50cyArPSBhbW91bnQ7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICByZXR1cm4gdGhpcy50eXBlTmFtZSArICcgb2JqZWN0ICcgKyB0aGlzLmlkOworICAgIH0KKyAgfTsKKworICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAorICAgIE9iamVjdEluc3RhbmNlLAorICAgIHsKKyAgICAgIG5hbWU6ICdvYmplY3RJbnN0YW5jZScsCisgICAgICBwbHVyYWxOYW1lOiAnb2JqZWN0SW5zdGFuY2VzJywKKyAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtc2luZ2xlLW9iamVjdC1pbnN0YW5jZS1zdWItdmlldycsCisgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtbXVsdGktb2JqZWN0LXN1Yi12aWV3JworICAgIH0pOworCisgIHZhciBvcHRpb25zID0gbmV3IHRyLmIuRXh0ZW5zaW9uUmVnaXN0cnlPcHRpb25zKAorICAgICAgdHIuYi5UWVBFX0JBU0VEX1JFR0lTVFJZX01PREUpOworICBvcHRpb25zLm1hbmRhdG9yeUJhc2VDbGFzcyA9IE9iamVjdEluc3RhbmNlOworICBvcHRpb25zLmRlZmF1bHRDb25zdHJ1Y3RvciA9IE9iamVjdEluc3RhbmNlOworICB0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoT2JqZWN0SW5zdGFuY2UsIG9wdGlvbnMpOworCisgIHJldHVybiB7CisgICAgT2JqZWN0SW5zdGFuY2U6IE9iamVjdEluc3RhbmNlCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3RfaW5zdGFuY2VfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9vYmplY3RfaW5zdGFuY2VfdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL29iamVjdF9pbnN0YW5jZV90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvb2JqZWN0X2luc3RhbmNlX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9vYmplY3Rfc25hcHNob3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvb2JqZWN0X3NuYXBzaG90Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI2ZGFiYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvb2JqZWN0X3NuYXBzaG90Lmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQSBzbmFwc2hvdCBvZiBhbiBvYmplY3QgaW5zdGFuY2UsIGF0IGEgZ2l2ZW4gbW9tZW50IGluIHRpbWUuCisgICAqCisgICAqIEluaXRpYWxpemF0aW9uIG9mIHNuYXBzaG90cyBhbmQgaW5zdGFuY2VzIGlzIHRocmVlIHBoYXNlZDoKKyAgICoKKyAgICogMS4gSW5zdGFuY2VzIGFuZCBzbmFwc2hvdHMgYXJlIGNvbnN0cnVjdGVkLiBUaGlzIGhhcHBlbnMgZHVyaW5nIGV2ZW50CisgICAqICAgIGltcG9ydGluZy4gTGl0dGxlIHNob3VsZCBiZSBkb25lIGhlcmUsIGJlY2F1c2UgdGhlIG9iamVjdCdzIGRhdGEKKyAgICogICAgYXJlIHN0aWxsIGJlaW5nIHVzZWQgYnkgdGhlIGltcG9ydGVyIHRvIHJlY29uc3RydWN0IG9iamVjdCByZWZlcmVuY2VzLgorICAgKgorICAgKiAyLiBJbnN0YW5jZXMgYW5kIHNuYXBzaHRvcyBhcmUgcHJlaW5pdGlhbGl6ZWQuIFRoaXMgaGFwcGVucyBhZnRlciBpbXBsaWNpdAorICAgKiAgICBvYmplY3RzIGhhdmUgYmVlbiBmb3VuZCwgYnV0IGJlZm9yZSBhbnkgcmVmZXJlbmNlcyBoYXZlIGJlZW4gZm91bmQgYW5kCisgICAqICAgIHN3aXRjaGVkIHRvIGRpcmVjdCByZWZlcmVuY2VzLiBUaHVzLCBldmVyeSBzbmFwc2hvdCBzdGFuZHMgb24gaXRzIG93bi4KKyAgICogICAgVGhpcyBpcyBhIGdvb2QgdGltZSB0byBkbyBnbG9iYWwgZmllbGQgcmVuYW1pbmcgYW5kIHR5cGUgY29udmVyc2lvbiwKKyAgICogICAgZS5nLiByZWNvZ25pemluZyBkb21haW4tc3BlY2lmaWMgdHlwZXMgYW5kIGNvbnZlcnRpbmcgZnJvbSBDKysgbmFtaW5nCisgICAqICAgIGNvbnZlbnRpb24gdG8gSlMuCisgICAqCisgICAqIDMuIEluc3RhbmNlcyBhbmQgc25hcHNodG9zIGFyZSBpbml0aWFsaXplZC4gQXQgdGhpcyBwb2ludCwge2lkX3JlZjoKKyAgICogICAgJzB4MTAwMCd9IGZpZWxkcyBoYXZlIGJlZW4gY29udmVydGVkIHRvIHNuYXBzaG90IHJlZmVyZW5jZXMuIFRoaXMgaXMgYQorICAgKiAgICBnb29kIHRpbWUgdG8gZ2VuZXJpYyBpbml0aWFsaXphdGlvbiBzdGVwcyBhbmQgYXJndW1lbnQgdmVyaWZpY2F0aW9uLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIE9iamVjdFNuYXBzaG90KG9iamVjdEluc3RhbmNlLCB0cywgYXJncykgeworICAgIHRyLm1vZGVsLkV2ZW50LmNhbGwodGhpcyk7CisgICAgdGhpcy5vYmplY3RJbnN0YW5jZSA9IG9iamVjdEluc3RhbmNlOworICAgIHRoaXMudHMgPSB0czsKKyAgICB0aGlzLmFyZ3MgPSBhcmdzOworICB9CisKKyAgT2JqZWN0U25hcHNob3QucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuRXZlbnQucHJvdG90eXBlLAorCisgICAgLyoqCisgICAgICogU2VlIE9iamVjdFNuYXBzaG90IGNvbnN0cnVjdG9yIG5vdGVzIG9uIG9iamVjdCBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBwcmVJbml0aWFsaXplOiBmdW5jdGlvbigpIHsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogU2VlIE9iamVjdFNuYXBzaG90IGNvbnN0cnVjdG9yIG5vdGVzIG9uIG9iamVjdCBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsKKyAgICB9LAorCisgICAgYWRkQm91bmRzVG9SYW5nZTogZnVuY3Rpb24ocmFuZ2UpIHsKKyAgICAgIHJhbmdlLmFkZFZhbHVlKHRoaXMudHMpOworICAgIH0sCisKKyAgICBnZXQgdXNlckZyaWVuZGx5TmFtZSgpIHsKKyAgICAgIHJldHVybiAnU25hcHNob3Qgb2YgJyArCisgICAgICAgICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZS50eXBlTmFtZSArICcgJyArCisgICAgICAgICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZS5pZCArICcgQCAnICsKKyAgICAgICAgICAgICB0ci5iLnVuaXRzLlRpbWVTdGFtcC5mb3JtYXQodGhpcy50cyk7CisgICAgfQorICB9OworCisgIHRyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoCisgICAgICBPYmplY3RTbmFwc2hvdCwKKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ29iamVjdFNuYXBzaG90JywKKyAgICAgICAgcGx1cmFsTmFtZTogJ29iamVjdFNuYXBzaG90cycsCisgICAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtc2luZ2xlLW9iamVjdC1zbmFwc2hvdC1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1tdWx0aS1vYmplY3Qtc3ViLXZpZXcnCisgICAgICB9KTsKKworICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucygKKyAgICAgIHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTsKKyAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBPYmplY3RTbmFwc2hvdDsKKyAgb3B0aW9ucy5kZWZhdWx0Q29uc3RydWN0b3IgPSBPYmplY3RTbmFwc2hvdDsKKyAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KE9iamVjdFNuYXBzaG90LCBvcHRpb25zKTsKKworICByZXR1cm4geworICAgIE9iamVjdFNuYXBzaG90OiBPYmplY3RTbmFwc2hvdAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvb2JqZWN0X3NuYXBzaG90X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvb2JqZWN0X3NuYXBzaG90X3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9vYmplY3Rfc25hcHNob3RfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL29iamVjdF9zbmFwc2hvdF90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcG93ZXJfc2FtcGxlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Bvd2VyX3NhbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NTVhZjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Bvd2VyX3NhbXBsZS5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9yZWdpc3RyeS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIEV2ZW50ID0gdHIubW9kZWwuRXZlbnQ7CisgIHZhciBFdmVudFJlZ2lzdHJ5ID0gdHIubW9kZWwuRXZlbnRSZWdpc3RyeTsKKworICAvKioKKyAgICogQSBzYW1wbGUgdGhhdCBjb250YWlucyBhIHBvd2VyIG1lYXN1cmVtZW50IChpbiBtVykuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7RXZlbnR9CisgICAqLworICBmdW5jdGlvbiBQb3dlclNhbXBsZShzZXJpZXMsIHN0YXJ0LCBwb3dlcikgeworICAgIEV2ZW50LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLnNlcmllc18gPSBzZXJpZXM7CisgICAgdGhpcy5zdGFydF8gPSBzdGFydDsKKyAgICB0aGlzLnBvd2VyXyA9IHBvd2VyOworICB9CisKKyAgUG93ZXJTYW1wbGUucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogRXZlbnQucHJvdG90eXBlLAorCisgICAgZ2V0IHNlcmllcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlcmllc187CisgICAgfSwKKworICAgIGdldCBzdGFydCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnN0YXJ0XzsKKyAgICB9LAorCisgICAgc2V0IHN0YXJ0KHZhbHVlKSB7CisgICAgICB0aGlzLnN0YXJ0XyA9IHZhbHVlOworICAgIH0sCisKKyAgICBnZXQgcG93ZXIoKSB7CisgICAgICByZXR1cm4gdGhpcy5wb3dlcl87CisgICAgfSwKKworICAgIHNldCBwb3dlcih2YWx1ZSkgeworICAgICAgdGhpcy5wb3dlcl8gPSB2YWx1ZTsKKyAgICB9CisgIH07CisKKyAgLy8gVE9ETyhjaGFybGllYSk6IENyZWF0ZSBhIHNwZWNpYWwgdmlldyBmb3Igd2hlbiBQb3dlclNhbXBsZXMgYXJlCisgIC8vIHNlbGVjdGVkLgorICBFdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAorICAgICAgUG93ZXJTYW1wbGUsCisgICAgICB7CisgICAgICAgIG5hbWU6ICdwb3dlclNhbXBsZScsCisgICAgICAgIHBsdXJhbE5hbWU6ICdwb3dlclNhbXBsZXMnLAorICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1tdWx0aS1wb3dlci1zYW1wbGUtc3ViLXZpZXcnCisgICAgICB9KTsKKworICByZXR1cm4geworICAgIFBvd2VyU2FtcGxlOiBQb3dlclNhbXBsZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcG93ZXJfc2FtcGxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcG93ZXJfc2FtcGxlX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTg1ZTMwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9wb3dlcl9zYW1wbGVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wb3dlcl9zYW1wbGUuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworCisgIHZhciBQb3dlclNhbXBsZSA9IHRyLm1vZGVsLlBvd2VyU2FtcGxlOworCisgIHRlc3QoJ3Bvd2VyU2FtcGxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyB0ci5tb2RlbC5Qb3dlclNlcmllcyhuZXcgdHIuTW9kZWwoKS5kZXZpY2UpOworCisgICAgdmFyIHNhbXBsZTEgPSBuZXcgUG93ZXJTYW1wbGUoc2VyaWVzLCAwLjAsIDEwMDAuMCk7CisgICAgdmFyIHNhbXBsZTIgPSBuZXcgUG93ZXJTYW1wbGUoc2VyaWVzLCAxLjAsIDIwMDAuMCk7CisKKyAgICBhc3NlcnQuZXF1YWwoc2FtcGxlMS5zZXJpZXMsIHNlcmllcyk7CisgICAgYXNzZXJ0LmVxdWFsKHNhbXBsZTEuc3RhcnQsIDAuMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNhbXBsZTEucG93ZXIsIDEwMDAuMCk7CisKKyAgICBhc3NlcnQuZXF1YWwoc2FtcGxlMi5zZXJpZXMsIHNlcmllcyk7CisgICAgYXNzZXJ0LmVxdWFsKHNhbXBsZTIuc3RhcnQsIDEuMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNhbXBsZTIucG93ZXIsIDIwMDAuMCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcG93ZXJfc2VyaWVzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Bvd2VyX3Nlcmllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMDU5MDkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Bvd2VyX3Nlcmllcy5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X2NvbnRhaW5lci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcG93ZXJfc2FtcGxlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKworICB2YXIgUG93ZXJTYW1wbGUgPSB0ci5tb2RlbC5Qb3dlclNhbXBsZTsKKworICAvKioKKyAgICogQSBjb250YWluZXIgaG9sZGluZyBhIHRpbWUgc2VyaWVzIG9mIHBvd2VyIHNhbXBsZXMuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7RXZlbnRDb250YWluZXJ9CisgICAqLworICBmdW5jdGlvbiBQb3dlclNlcmllcyhkZXZpY2UpIHsKKyAgICB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5jYWxsKHRoaXMpOworCisgICAgdGhpcy5kZXZpY2VfID0gZGV2aWNlOworICAgIHRoaXMuc2FtcGxlc18gPSBbXTsKKyAgfQorCisgIFBvd2VyU2VyaWVzLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSwKKworICAgIGdldCBkZXZpY2UoKSB7CisgICAgICByZXR1cm4gdGhpcy5kZXZpY2VfOworICAgIH0sCisKKyAgICBnZXQgc2FtcGxlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNhbXBsZXNfOworICAgIH0sCisKKyAgICBnZXQgc3RhYmxlSWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5kZXZpY2VfLnN0YWJsZUlkICsgJy5Qb3dlclNlcmllcyc7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEFkZHMgYSBwb3dlciBzYW1wbGUgdG8gdGhlIHNlcmllcyBhbmQgcmV0dXJucyBpdC4KKyAgICAgKgorICAgICAqIE5vdGU6IFNhbXBsZXMgbXVzdCBiZSBhZGRlZCBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyLgorICAgICAqLworICAgIGFkZFBvd2VyU2FtcGxlOiBmdW5jdGlvbih0cywgdmFsKSB7CisgICAgICB2YXIgc2FtcGxlID0gbmV3IFBvd2VyU2FtcGxlKHRoaXMsIHRzLCB2YWwpOworICAgICAgdGhpcy5zYW1wbGVzXy5wdXNoKHNhbXBsZSk7CisgICAgICByZXR1cm4gc2FtcGxlOworICAgIH0sCisKKyAgICAvLyBUT0RPKGNoYXJsaWVhKTogQWRkIGEgZnVuY3Rpb24gdGhhdCBhbGxvd3MgdXMgdG8gbWVhc3VyZSB0aGUgdG90YWwgZW5lcmd5CisgICAgLy8gY29uc3VtZWQgYmV0d2VlbiB0d28gdGltZXN0YW1wcy4KKworICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNhbXBsZXNfLmxlbmd0aDsgKytpKQorICAgICAgICB0aGlzLnNhbXBsZXNfW2ldLnN0YXJ0ICs9IGFtb3VudDsKKyAgICB9LAorCisgICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7CisKKyAgICAgIGlmICh0aGlzLnNhbXBsZXNfLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSh0aGlzLnNhbXBsZXNfWzBdLnN0YXJ0KTsKKyAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2FtcGxlc19bdGhpcy5zYW1wbGVzXy5sZW5ndGggLSAxXS5zdGFydCk7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3RoaXMpIHsKKyAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgUG93ZXJTYW1wbGUpKQorICAgICAgICB0aGlzLnNhbXBsZXNfLmZvckVhY2goY2FsbGJhY2ssIG9wdF90aGlzKTsKKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbENoaWxkRXZlbnRDb250YWluZXJzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQb3dlclNlcmllczogUG93ZXJTZXJpZXMKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Bvd2VyX3Nlcmllc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Bvd2VyX3Nlcmllc190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzIzMTM4NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcG93ZXJfc2VyaWVzX3Rlc3QuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZGV2aWNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcG93ZXJfc2VyaWVzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKworICB2YXIgTW9kZWwgPSB0ci5Nb2RlbDsKKyAgdmFyIFBvd2VyU2VyaWVzID0gdHIubW9kZWwuUG93ZXJTZXJpZXM7CisKKyAgdGVzdCgnc3RhYmxlSWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGV2aWNlID0geyBzdGFibGVJZDogJ3Rlc3QnIH07CisgICAgdmFyIHNlcmllcyA9IG5ldyBQb3dlclNlcmllcyhkZXZpY2UpOworCisgICAgYXNzZXJ0LmVxdWFsKHNlcmllcy5zdGFibGVJZCwgJ3Rlc3QuUG93ZXJTZXJpZXMnKTsKKyAgfSk7CisKKyAgdGVzdCgnZGV2aWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRldmljZSA9IG5ldyB0ci5tb2RlbC5EZXZpY2UobmV3IE1vZGVsKCkpOworICAgIHZhciBzZXJpZXMgPSBuZXcgUG93ZXJTZXJpZXMoZGV2aWNlKTsKKworICAgIGFzc2VydC5lcXVhbChzZXJpZXMuZGV2aWNlLCBkZXZpY2UpOworICB9KTsKKworICB0ZXN0KCdhZGRQb3dlclNhbXBsZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBuZXcgUG93ZXJTZXJpZXMobmV3IE1vZGVsKCkuZGV2aWNlKTsKKworICAgIGFzc2VydC5lcXVhbChzZXJpZXMuc2FtcGxlcy5sZW5ndGgsIDApOworCisgICAgdmFyIHNhbXBsZTEgPSBzZXJpZXMuYWRkUG93ZXJTYW1wbGUoMCwgMTAwMCk7CisgICAgdmFyIHNhbXBsZTIgPSBzZXJpZXMuYWRkUG93ZXJTYW1wbGUoMSwgMjAwMCk7CisKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNlcmllcy5zYW1wbGVzLCBbc2FtcGxlMSwgc2FtcGxlMl0pOworICB9KTsKKworICB0ZXN0KCdzaGlmdFRpbWVzdGFtcHNGb3J3YXJkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyBQb3dlclNlcmllcyhuZXcgTW9kZWwoKS5kZXZpY2UpOworCisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAsIDEwMDApOworICAgIHNlcmllcy5hZGRQb3dlclNhbXBsZSgxLCAyMDAwKTsKKworICAgIHNlcmllcy5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKDIpOworCisgICAgYXNzZXJ0LmVxdWFsKHNlcmllcy5zYW1wbGVzWzBdLnN0YXJ0LCAyKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VyaWVzLnNhbXBsZXNbMV0uc3RhcnQsIDMpOworCisgICAgc2VyaWVzLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoLTQpOworCisgICAgYXNzZXJ0LmVxdWFsKHNlcmllcy5zYW1wbGVzWzBdLnN0YXJ0LCAtMik7CisgICAgYXNzZXJ0LmVxdWFsKHNlcmllcy5zYW1wbGVzWzFdLnN0YXJ0LCAtMSk7CisgIH0pOworCisKKyAgdGVzdCgndXBkYXRlQm91bmRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyBQb3dlclNlcmllcyhuZXcgTW9kZWwoKS5kZXZpY2UpOworCisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAsIDEwMDApOworICAgIHNlcmllcy5hZGRQb3dlclNhbXBsZSgxLCAyMDAwKTsKKyAgICBzZXJpZXMudXBkYXRlQm91bmRzKCk7CisKKyAgICBhc3NlcnQuZXF1YWwoc2VyaWVzLmJvdW5kcy5taW4sIDApOworICAgIGFzc2VydC5lcXVhbChzZXJpZXMuYm91bmRzLm1heCwgMSk7CisKKyAgICBzZXJpZXMuYWRkUG93ZXJTYW1wbGUoNCwgMzAwMCk7CisgICAgc2VyaWVzLnVwZGF0ZUJvdW5kcygpOworCisgICAgYXNzZXJ0LmVxdWFsKHNlcmllcy5ib3VuZHMubWluLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VyaWVzLmJvdW5kcy5tYXgsIDQpOworICB9KTsKKworICB0ZXN0KCdpdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyBQb3dlclNlcmllcyhuZXcgTW9kZWwoKS5kZXZpY2UpOworCisgICAgdmFyIGV2ZW50c0luU2VyaWVzID0gW107CisgICAgc2VyaWVzLml0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXIoCisgICAgICAgIGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICBldmVudHNJblNlcmllcy5wdXNoKGV2ZW50KTsKKyAgICAgICAgfSk7CisKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGV2ZW50c0luU2VyaWVzLCBbXSk7CisKKyAgICB2YXIgc2FtcGxlMSA9IHNlcmllcy5hZGRQb3dlclNhbXBsZSgwLCAxMDAwKTsKKyAgICB2YXIgc2FtcGxlMiA9IHNlcmllcy5hZGRQb3dlclNhbXBsZSgxLCAyMDAwKTsKKworICAgIGV2ZW50c0luU2VyaWVzID0gW107CisgICAgc2VyaWVzLml0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXIoCisgICAgICAgIGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfSwKKyAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICBldmVudHNJblNlcmllcy5wdXNoKGV2ZW50KTsKKyAgICAgICAgfSk7CisKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGV2ZW50c0luU2VyaWVzLCBbc2FtcGxlMSwgc2FtcGxlMl0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Byb2Nlc3MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcHJvY2Vzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhOGJhYzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Byb2Nlc3MuaHRtbApAQCAtMCwwICsxLDE2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFByb2Nlc3MgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICB2YXIgUHJvY2Vzc0Jhc2UgPSB0ci5tb2RlbC5Qcm9jZXNzQmFzZTsKKyAgdmFyIFByb2Nlc3NJbnN0YW50RXZlbnQgPSB0ci5tb2RlbC5Qcm9jZXNzSW5zdGFudEV2ZW50OworICB2YXIgRnJhbWUgPSB0ci5tb2RlbC5GcmFtZTsKKyAgdmFyIFByb2Nlc3NNZW1vcnlEdW1wID0gdHIubW9kZWwuUHJvY2Vzc01lbW9yeUR1bXA7CisKKyAgLyoqCisgICAqIFRoZSBQcm9jZXNzIHJlcHJlc2VudHMgYSBzaW5nbGUgdXNlcmxhbmQgcHJvY2VzcyBpbiB0aGUKKyAgICogdHJhY2UuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gUHJvY2Vzcyhtb2RlbCwgcGlkKSB7CisgICAgaWYgKG1vZGVsID09PSB1bmRlZmluZWQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21vZGVsIG11c3QgYmUgcHJvdmlkZWQnKTsKKyAgICBpZiAocGlkID09PSB1bmRlZmluZWQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BpZCBtdXN0IGJlIHByb3ZpZGVkJyk7CisgICAgdHIubW9kZWwuUHJvY2Vzc0Jhc2UuY2FsbCh0aGlzLCBtb2RlbCk7CisgICAgdGhpcy5waWQgPSBwaWQ7CisgICAgdGhpcy5uYW1lID0gdW5kZWZpbmVkOworICAgIHRoaXMubGFiZWxzID0gW107CisgICAgdGhpcy5pbnN0YW50RXZlbnRzID0gW107CisgICAgdGhpcy5tZW1vcnlEdW1wcyA9IFtdOworICAgIHRoaXMuZnJhbWVzID0gW107CisgIH07CisKKyAgLyoqCisgICAqIENvbXBhcmlzb24gYmV0d2VlbiBwcm9jZXNzZXMgdGhhdCBvcmRlcnMgYnkgcGlkLgorICAgKi8KKyAgUHJvY2Vzcy5jb21wYXJlID0gZnVuY3Rpb24oeCwgeSkgeworICAgIHZhciB0bXAgPSB0ci5tb2RlbC5Qcm9jZXNzQmFzZS5jb21wYXJlKHgsIHkpOworICAgIGlmICh0bXApCisgICAgICByZXR1cm4gdG1wOworCisgICAgdG1wID0gdHIuYi5jb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoCisgICAgICAgIHgubmFtZSwgeS5uYW1lLAorICAgICAgICBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4LmxvY2FsZUNvbXBhcmUoeSk7IH0pOworICAgIGlmICh0bXApCisgICAgICByZXR1cm4gdG1wOworCisgICAgdG1wID0gdHIuYi5jb21wYXJlQXJyYXlzKHgubGFiZWxzLCB5LmxhYmVscywKKyAgICAgICAgZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geC5sb2NhbGVDb21wYXJlKHkpOyB9KTsKKyAgICBpZiAodG1wKQorICAgICAgcmV0dXJuIHRtcDsKKworICAgIHJldHVybiB4LnBpZCAtIHkucGlkOworICB9OworCisgIFByb2Nlc3MucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuUHJvY2Vzc0Jhc2UucHJvdG90eXBlLAorCisgICAgZ2V0IHN0YWJsZUlkKCkgeworICAgICAgcmV0dXJuIHRoaXMucGlkOworICAgIH0sCisKKyAgICBjb21wYXJlVG86IGZ1bmN0aW9uKHRoYXQpIHsKKyAgICAgIHJldHVybiBQcm9jZXNzLmNvbXBhcmUodGhpcywgdGhhdCk7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIFByb2Nlc3NCYXNlLnByb3RvdHlwZS5pdGVyYXRlQWxsRXZlbnRzSW5UaGlzQ29udGFpbmVyLmNhbGwoCisgICAgICAgICAgdGhpcywgZXZlbnRUeXBlUHJlZGljYXRlLCBjYWxsYmFjaywgb3B0X3RoaXMpOworCisgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIFByb2Nlc3NJbnN0YW50RXZlbnQpKQorICAgICAgICB0aGlzLmluc3RhbnRFdmVudHMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOworCisgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIEZyYW1lKSkKKyAgICAgICAgdGhpcy5mcmFtZXMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOworCisgICAgICBpZiAoZXZlbnRUeXBlUHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIFByb2Nlc3NNZW1vcnlEdW1wKSkKKyAgICAgICAgdGhpcy5tZW1vcnlEdW1wcy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisgICAgfSwKKworICAgIHB1c2hJbnN0YW50RXZlbnQ6IGZ1bmN0aW9uKGluc3RhbnRFdmVudCkgeworICAgICAgdGhpcy5pbnN0YW50RXZlbnRzLnB1c2goaW5zdGFudEV2ZW50KTsKKyAgICB9LAorCisgICAgYWRkTGFiZWxJZk5lZWRlZDogZnVuY3Rpb24obGFiZWxOYW1lKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGFiZWxzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmICh0aGlzLmxhYmVsc1tpXSA9PT0gbGFiZWxOYW1lKQorICAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHRoaXMubGFiZWxzLnB1c2gobGFiZWxOYW1lKTsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICB2YXIgcmVzOworICAgICAgaWYgKHRoaXMubmFtZSkKKyAgICAgICAgcmVzID0gdGhpcy5uYW1lICsgJyAocGlkICcgKyB0aGlzLnBpZCArICcpJzsKKyAgICAgIGVsc2UKKyAgICAgICAgcmVzID0gJ1Byb2Nlc3MgJyArIHRoaXMucGlkOworICAgICAgaWYgKHRoaXMubGFiZWxzLmxlbmd0aCkKKyAgICAgICAgcmVzICs9ICc6ICcgKyB0aGlzLmxhYmVscy5qb2luKCcsICcpOworICAgICAgcmV0dXJuIHJlczsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseURldGFpbHMoKSB7CisgICAgICBpZiAodGhpcy5uYW1lKQorICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgJyAocGlkICcgKyB0aGlzLnBpZCArICcpJzsKKyAgICAgIHJldHVybiAncGlkOiAnICsgdGhpcy5waWQ7CisgICAgfSwKKworICAgIGdldFNldHRpbmdzS2V5OiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5uYW1lKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgaWYgKCF0aGlzLmxhYmVscy5sZW5ndGgpCisgICAgICAgIHJldHVybiAncHJvY2Vzc2VzLicgKyB0aGlzLm5hbWU7CisgICAgICByZXR1cm4gJ3Byb2Nlc3Nlcy4nICsgdGhpcy5uYW1lICsgJy4nICsgdGhpcy5sYWJlbHMuam9pbignLicpOworICAgIH0sCisKKyAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKKyAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuaW5zdGFudEV2ZW50cykKKyAgICAgICAgdGhpcy5pbnN0YW50RXZlbnRzW2lkXS5zdGFydCArPSBhbW91bnQ7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5mcmFtZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMuZnJhbWVzW2ldLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm1lbW9yeUR1bXBzLmxlbmd0aDsgaSsrKQorICAgICAgICB0aGlzLm1lbW9yeUR1bXBzW2ldLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQoYW1vdW50KTsKKworICAgICAgdHIubW9kZWwuUHJvY2Vzc0Jhc2UucHJvdG90eXBlCisgICAgICAgICAgLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICB9LAorCisgICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRyLm1vZGVsLlByb2Nlc3NCYXNlLnByb3RvdHlwZS51cGRhdGVCb3VuZHMuYXBwbHkodGhpcyk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5mcmFtZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMuZnJhbWVzW2ldLmFkZEJvdW5kc1RvUmFuZ2UodGhpcy5ib3VuZHMpOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubWVtb3J5RHVtcHMubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMubWVtb3J5RHVtcHNbaV0uYWRkQm91bmRzVG9SYW5nZSh0aGlzLmJvdW5kcyk7CisgICAgfSwKKworICAgIHNvcnRNZW1vcnlEdW1wczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLm1lbW9yeUR1bXBzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7CisgICAgICB9KTsKKyAgICAgIHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wLmhvb2tVcE1vc3RSZWNlbnRWbVJlZ2lvbnNMaW5rcygKKyAgICAgICAgICB0aGlzLm1lbW9yeUR1bXBzKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQcm9jZXNzOiBQcm9jZXNzCisgIH07Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Byb2Nlc3NfYmFzZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9wcm9jZXNzX2Jhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjVlZmFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9wcm9jZXNzX2Jhc2UuaHRtbApAQCAtMCwwICsxLDI0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ndWlkLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb3VudGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL29iamVjdF9jb2xsZWN0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aHJlYWQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgUHJvY2Vzc0Jhc2UgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworCisgIHZhciBUaHJlYWQgPSB0ci5tb2RlbC5UaHJlYWQ7CisgIHZhciBDb3VudGVyID0gdHIubW9kZWwuQ291bnRlcjsKKworICAvKioKKyAgICogVGhlIFByb2Nlc3NCYXNlIGlzIGEgcGFydGlhbCBiYXNlIGNsYXNzLCB1cG9uIHdoaWNoIEtlcm5lbAorICAgKiBhbmQgUHJvY2VzcyBhcmUgYnVpbHQuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7dHIubW9kZWwuRXZlbnRDb250YWluZXJ9CisgICAqLworICBmdW5jdGlvbiBQcm9jZXNzQmFzZShtb2RlbCkgeworICAgIGlmICghbW9kZWwpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgcHJvdmlkZSBhIG1vZGVsJyk7CisgICAgdHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTsKKyAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7CisgICAgdGhpcy5tb2RlbCA9IG1vZGVsOworICAgIHRoaXMudGhyZWFkcyA9IHt9OworICAgIHRoaXMuY291bnRlcnMgPSB7fTsKKyAgICB0aGlzLm9iamVjdHMgPSBuZXcgdHIubW9kZWwuT2JqZWN0Q29sbGVjdGlvbih0aGlzKTsKKyAgICB0aGlzLnNvcnRJbmRleCA9IDA7CisgIH07CisKKyAgUHJvY2Vzc0Jhc2UuY29tcGFyZSA9IGZ1bmN0aW9uKHgsIHkpIHsKKyAgICByZXR1cm4geC5zb3J0SW5kZXggLSB5LnNvcnRJbmRleDsKKyAgfTsKKworICBQcm9jZXNzQmFzZS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCisKKyAgICBnZXQgZ3VpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmd1aWRfOworICAgIH0sCisKKyAgICBnZXQgc3RhYmxlSWQoKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0sCisKKyAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgZm9yICh2YXIgdGlkIGluIHRoaXMudGhyZWFkcykKKyAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy50aHJlYWRzW3RpZF0pOworICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5jb3VudGVycykKKyAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5jb3VudGVyc1tpZF0pOworICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5vYmplY3RzKTsKKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgIH0sCisKKyAgICBpdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzOiBmdW5jdGlvbihjYikgeworICAgICAgY2IodGhpcyk7CisgICAgICBmb3IgKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKQorICAgICAgICB0aGlzLnRocmVhZHNbdGlkXS5pdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzKGNiKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgaW4gdGhpcyBwcm9jZXNzLgorICAgICAqLworICAgIGdldCBudW1UaHJlYWRzKCkgeworICAgICAgdmFyIG4gPSAwOworICAgICAgZm9yICh2YXIgcCBpbiB0aGlzLnRocmVhZHMpIHsKKyAgICAgICAgbisrOworICAgICAgfQorICAgICAgcmV0dXJuIG47CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFNoaWZ0cyBhbGwgdGhlIHRpbWVzdGFtcHMgaW5zaWRlIHRoaXMgcHJvY2VzcyBmb3J3YXJkIGJ5IHRoZSBhbW91bnQKKyAgICAgKiBzcGVjaWZpZWQuCisgICAgICovCisgICAgc2hpZnRUaW1lc3RhbXBzRm9yd2FyZDogZnVuY3Rpb24oYW1vdW50KSB7CisgICAgICB0aGlzLml0ZXJhdGVBbGxDaGlsZEV2ZW50Q29udGFpbmVycyhmdW5jdGlvbihjaGlsZCkgeworICAgICAgICBjaGlsZC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2xvc2VzIGFueSBvcGVuIHNsaWNlcy4KKyAgICAgKi8KKyAgICBhdXRvQ2xvc2VPcGVuU2xpY2VzOiBmdW5jdGlvbihvcHRfbWF4VGltZXN0YW1wKSB7CisgICAgICBmb3IgKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKSB7CisgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLnRocmVhZHNbdGlkXTsKKyAgICAgICAgdGhyZWFkLmF1dG9DbG9zZU9wZW5TbGljZXMob3B0X21heFRpbWVzdGFtcCk7CisgICAgICB9CisgICAgfSwKKworICAgIGF1dG9EZWxldGVPYmplY3RzOiBmdW5jdGlvbihtYXhUaW1lc3RhbXApIHsKKyAgICAgIHRoaXMub2JqZWN0cy5hdXRvRGVsZXRlT2JqZWN0cyhtYXhUaW1lc3RhbXApOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIG1vZGVsIGFmdGVyIGZpbmFsaXppbmcgaW1wb3J0cywKKyAgICAgKiBidXQgYmVmb3JlIGpvaW5pbmcgcmVmcy4KKyAgICAgKi8KKyAgICBwcmVJbml0aWFsaXplT2JqZWN0czogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLm9iamVjdHMucHJlSW5pdGlhbGl6ZUFsbE9iamVjdHMoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBtb2RlbCBhZnRlciBqb2luaW5nIHJlZnMuCisgICAgICovCisgICAgaW5pdGlhbGl6ZU9iamVjdHM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5vYmplY3RzLmluaXRpYWxpemVBbGxPYmplY3RzKCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIE1lcmdlIHNsaWNlcyBmcm9tIHRoZSBrZXJuZWwgd2l0aCB0aG9zZSBmcm9tIHVzZXJsYW5kIGZvciBlYWNoIHRocmVhZC4KKyAgICAgKi8KKyAgICBtZXJnZUtlcm5lbFdpdGhVc2VybGFuZDogZnVuY3Rpb24oKSB7CisgICAgICBmb3IgKHZhciB0aWQgaW4gdGhpcy50aHJlYWRzKSB7CisgICAgICAgIHZhciB0aHJlYWQgPSB0aGlzLnRocmVhZHNbdGlkXTsKKyAgICAgICAgdGhyZWFkLm1lcmdlS2VybmVsV2l0aFVzZXJsYW5kKCk7CisgICAgICB9CisgICAgfSwKKworICAgIHVwZGF0ZUJvdW5kczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmJvdW5kcy5yZXNldCgpOworICAgICAgZm9yICh2YXIgdGlkIGluIHRoaXMudGhyZWFkcykgeworICAgICAgICB0aGlzLnRocmVhZHNbdGlkXS51cGRhdGVCb3VuZHMoKTsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkUmFuZ2UodGhpcy50aHJlYWRzW3RpZF0uYm91bmRzKTsKKyAgICAgIH0KKyAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuY291bnRlcnMpIHsKKyAgICAgICAgdGhpcy5jb3VudGVyc1tpZF0udXBkYXRlQm91bmRzKCk7CisgICAgICAgIHRoaXMuYm91bmRzLmFkZFJhbmdlKHRoaXMuY291bnRlcnNbaWRdLmJvdW5kcyk7CisgICAgICB9CisgICAgICB0aGlzLm9iamVjdHMudXBkYXRlQm91bmRzKCk7CisgICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLm9iamVjdHMuYm91bmRzKTsKKyAgICB9LAorCisgICAgYWRkQ2F0ZWdvcmllc1RvRGljdDogZnVuY3Rpb24oY2F0ZWdvcmllc0RpY3QpIHsKKyAgICAgIGZvciAodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpCisgICAgICAgIHRoaXMudGhyZWFkc1t0aWRdLmFkZENhdGVnb3JpZXNUb0RpY3QoY2F0ZWdvcmllc0RpY3QpOworICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5jb3VudGVycykKKyAgICAgICAgY2F0ZWdvcmllc0RpY3RbdGhpcy5jb3VudGVyc1tpZF0uY2F0ZWdvcnldID0gdHJ1ZTsKKyAgICAgIHRoaXMub2JqZWN0cy5hZGRDYXRlZ29yaWVzVG9EaWN0KGNhdGVnb3JpZXNEaWN0KTsKKyAgICB9LAorCisgICAgZmluZEFsbFRocmVhZHNNYXRjaGluZzogZnVuY3Rpb24ocHJlZGljYXRlLCBvcHRfdGhpcykgeworICAgICAgdmFyIHRocmVhZHMgPSBbXTsKKyAgICAgIGZvciAodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpIHsKKyAgICAgICAgdmFyIHRocmVhZCA9IHRoaXMudGhyZWFkc1t0aWRdOworICAgICAgICBpZiAocHJlZGljYXRlLmNhbGwob3B0X3RoaXMsIHRocmVhZCkpCisgICAgICAgICAgdGhyZWFkcy5wdXNoKHRocmVhZCk7CisgICAgICB9CisgICAgICByZXR1cm4gdGhyZWFkczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtTdHJpbmd9IFRoZSBuYW1lIG9mIHRoZSB0aHJlYWQgdG8gZmluZC4KKyAgICAgKiBAcmV0dXJuIHtBcnJheX0gQW4gYXJyYXkgb2YgYWxsIHRoZSBtYXRjaGVkIHRocmVhZHMuCisgICAgICovCisgICAgZmluZEFsbFRocmVhZHNOYW1lZDogZnVuY3Rpb24obmFtZSkgeworICAgICAgdmFyIHRocmVhZHMgPSB0aGlzLmZpbmRBbGxUaHJlYWRzTWF0Y2hpbmcoZnVuY3Rpb24odGhyZWFkKSB7CisgICAgICAgIGlmICghdGhyZWFkLm5hbWUpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdGhyZWFkLm5hbWUgPT09IG5hbWU7CisgICAgICB9KTsKKyAgICAgIHJldHVybiB0aHJlYWRzOworICAgIH0sCisKKyAgICBmaW5kQXRNb3N0T25lVGhyZWFkTmFtZWQ6IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgIHZhciB0aHJlYWRzID0gdGhpcy5maW5kQWxsVGhyZWFkc05hbWVkKG5hbWUpOworICAgICAgaWYgKHRocmVhZHMubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgaWYgKHRocmVhZHMubGVuZ3RoID4gMSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBubyBtb3JlIHRoYW4gb25lICcgKyBuYW1lKTsKKyAgICAgIHJldHVybiB0aHJlYWRzWzBdOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIHRocmVhZHMgZnJvbSB0aGUgcHJvY2VzcyB0aGF0IGFyZSBmdWxseSBlbXB0eS4KKyAgICAgKi8KKyAgICBwcnVuZUVtcHR5Q29udGFpbmVyczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGhyZWFkc1RvS2VlcCA9IHt9OworICAgICAgZm9yICh2YXIgdGlkIGluIHRoaXMudGhyZWFkcykgeworICAgICAgICB2YXIgdGhyZWFkID0gdGhpcy50aHJlYWRzW3RpZF07CisgICAgICAgIGlmICghdGhyZWFkLmlzRW1wdHkpCisgICAgICAgICAgdGhyZWFkc1RvS2VlcFt0aWRdID0gdGhyZWFkOworICAgICAgfQorICAgICAgdGhpcy50aHJlYWRzID0gdGhyZWFkc1RvS2VlcDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7VGltZWxpbmVUaHJlYWR9IFRoZSB0aHJlYWQgaWRlbnRpZmllZCBieSB0aWQgb24gdGhpcyBwcm9jZXNzLAorICAgICAqIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0LgorICAgICAqLworICAgIGdldFRocmVhZDogZnVuY3Rpb24odGlkKSB7CisgICAgICByZXR1cm4gdGhpcy50aHJlYWRzW3RpZF07CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1RpbWVsaW5lVGhyZWFkfSBUaGUgdGhyZWFkIGlkZW50aWZpZWQgYnkgdGlkIG9uIHRoaXMgcHJvY2VzcywKKyAgICAgKiBjcmVhdGluZyBpdCBpZiBpdCBkb2Vzbid0IGV4aXN0LgorICAgICAqLworICAgIGdldE9yQ3JlYXRlVGhyZWFkOiBmdW5jdGlvbih0aWQpIHsKKyAgICAgIGlmICghdGhpcy50aHJlYWRzW3RpZF0pCisgICAgICAgIHRoaXMudGhyZWFkc1t0aWRdID0gbmV3IFRocmVhZCh0aGlzLCB0aWQpOworICAgICAgcmV0dXJuIHRoaXMudGhyZWFkc1t0aWRdOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtDb3VudGVyfSBUaGUgY291bnRlciBvbiB0aGlzIHByb2Nlc3Mgd2l0aCB0aGUgZ2l2ZW4KKyAgICAgKiBjYXRlZ29yeS9uYW1lIGNvbWJpbmF0aW9uLCBjcmVhdGluZyBpdCBpZiBpdCBkb2Vzbid0IGV4aXN0LgorICAgICAqLworICAgIGdldE9yQ3JlYXRlQ291bnRlcjogZnVuY3Rpb24oY2F0LCBuYW1lKSB7CisgICAgICB2YXIgaWQgPSBjYXQgKyAnLicgKyBuYW1lOworICAgICAgaWYgKCF0aGlzLmNvdW50ZXJzW2lkXSkKKyAgICAgICAgdGhpcy5jb3VudGVyc1tpZF0gPSBuZXcgQ291bnRlcih0aGlzLCBpZCwgY2F0LCBuYW1lKTsKKyAgICAgIHJldHVybiB0aGlzLmNvdW50ZXJzW2lkXTsKKyAgICB9LAorCisgICAgZ2V0U2V0dGluZ3NLZXk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKKyAgICAgIGZvciAodmFyIHRpZCBpbiB0aGlzLnRocmVhZHMpCisgICAgICAgIHRoaXMudGhyZWFkc1t0aWRdLmNyZWF0ZVN1YlNsaWNlcygpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFByb2Nlc3NCYXNlOiBQcm9jZXNzQmFzZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUwZTUwNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sCkBAIC0wLDAgKzEsMjM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWVfc3RhbXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY29udGFpbmVyX21lbW9yeV9kdW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgUHJvY2Vzc01lbW9yeUR1bXAgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworCisgIC8vIE5hbWVzIG9mIE1lbW9yeUFsbG9jYXRvckR1bXAocykgZnJvbSB3aGljaCB0cmFjaW5nIG92ZXJoZWFkIHNob3VsZCBiZQorICAvLyBkaXNjb3VudGVkLgorICB2YXIgRElTQ09VTlRFRF9BTExPQ0FUT1JfTkFNRVMgPSBbJ3dpbmhlYXAnLCAnbWFsbG9jJ107CisKKyAgLyoqCisgICAqIFRoZSBQcm9jZXNzTWVtb3J5RHVtcCByZXByZXNlbnRzIGEgbWVtb3J5IGR1bXAgb2YgYSBzaW5nbGUgcHJvY2Vzcy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBQcm9jZXNzTWVtb3J5RHVtcChnbG9iYWxNZW1vcnlEdW1wLCBwcm9jZXNzLCBzdGFydCkgeworICAgIHRyLm1vZGVsLkNvbnRhaW5lck1lbW9yeUR1bXAuY2FsbCh0aGlzLCBzdGFydCk7CisgICAgdGhpcy5wcm9jZXNzID0gcHJvY2VzczsKKyAgICB0aGlzLmdsb2JhbE1lbW9yeUR1bXAgPSBnbG9iYWxNZW1vcnlEdW1wOworCisgICAgdGhpcy50b3RhbFJlc2lkZW50Qnl0ZXMgPSB1bmRlZmluZWQ7CisgICAgdGhpcy52bVJlZ2lvbnNfID0gdW5kZWZpbmVkOworCisgICAgdGhpcy50cmFjaW5nTWVtb3J5RGlzY291bnRlZF8gPSBmYWxzZTsKKyAgfTsKKworICBQcm9jZXNzTWVtb3J5RHVtcC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5Db250YWluZXJNZW1vcnlEdW1wLnByb3RvdHlwZSwKKworICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgeworICAgICAgcmV0dXJuICdQcm9jZXNzIG1lbW9yeSBkdW1wIGF0ICcgKworICAgICAgICAgIHRyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnN0YXJ0KTsKKyAgICB9LAorCisgICAgZ2V0IGNvbnRhaW5lck5hbWUoKSB7CisgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzLnVzZXJGcmllbmRseU5hbWU7CisgICAgfSwKKworICAgIGdldCB2bVJlZ2lvbnMoKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoCisgICAgICAgICAgJ1ZNIHJlZ2lvbnMgbXVzdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBtb3N0UmVjZW50Vm1SZWdpb25zIGZpZWxkJyk7CisgICAgfSwKKworICAgIHNldCB2bVJlZ2lvbnModm1SZWdpb25zKSB7CisgICAgICB0aGlzLnZtUmVnaW9uc18gPSB2bVJlZ2lvbnM7CisgICAgfSwKKworICAgIGdldCBoYXNPd25WbVJlZ2lvbnMoKSB7CisgICAgICByZXR1cm4gdGhpcy52bVJlZ2lvbnNfICE9PSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdDogZnVuY3Rpb24oc3RhdE5hbWUpIHsKKyAgICAgIGlmICh0aGlzLm1vc3RSZWNlbnRWbVJlZ2lvbnMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgdmFyIHRvdGFsID0gMDsKKyAgICAgIHRoaXMubW9zdFJlY2VudFZtUmVnaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHZtUmVnaW9uKSB7CisgICAgICAgIHZhciBzdGF0VmFsdWUgPSB2bVJlZ2lvbi5ieXRlU3RhdHNbc3RhdE5hbWVdOworICAgICAgICBpZiAoc3RhdFZhbHVlID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB0b3RhbCArPSBzdGF0VmFsdWU7CisgICAgICB9KTsKKyAgICAgIHJldHVybiB0b3RhbDsKKyAgICB9LAorCisgICAgZGlzY291bnRUcmFjaW5nT3ZlcmhlYWQ6IGZ1bmN0aW9uKG9wdF9tb2RlbCkgeworICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgY2FsbGluZyB0aGlzIG1ldGhvZCB0d2ljZSB3b24ndCBsZWFkIHRvCisgICAgICAvLyAnZG91YmxlLWRpc2NvdW50aW5nJy4KKyAgICAgIGlmICh0aGlzLnRyYWNpbmdNZW1vcnlEaXNjb3VudGVkXykKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy50cmFjaW5nTWVtb3J5RGlzY291bnRlZF8gPSB0cnVlOworCisgICAgICB2YXIgdHJhY2luZ0R1bXAgPSB0aGlzLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd0cmFjaW5nJyk7CisgICAgICBpZiAodHJhY2luZ0R1bXAgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBTdWJ0cmFjdCAncmVzaWRlbnRfc2l6ZScgZnJvbSB0b3RhbHMgYW5kIFZNIHJlZ2lvbnMgc3RhdHMuCisgICAgICB2YXIgdHJhY2luZ1Jlc2lkZW50U2l6ZUF0dHIgPQorICAgICAgICAgIHRyYWNpbmdEdW1wLmdldFZhbGlkU2l6ZUF0dHJpYnV0ZU9yVW5kZWZpbmVkKAorICAgICAgICAgICAgICAncmVzaWRlbnRfc2l6ZScsIG9wdF9tb2RlbCk7CisgICAgICBpZiAodHJhY2luZ1Jlc2lkZW50U2l6ZUF0dHIgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB2YXIgdHJhY2luZ1Jlc2lkZW50U2l6ZSA9IHRyYWNpbmdSZXNpZGVudFNpemVBdHRyLnZhbHVlOworCisgICAgICAgIC8vIFN1YnRyYWN0IHRoZSB0cmFjaW5nIHNpemUgZnJvbSB0aGUgdG90YWwuCisgICAgICAgIGlmICh0aGlzLnRvdGFsUmVzaWRlbnRCeXRlcyAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgIHRoaXMudG90YWxSZXNpZGVudEJ5dGVzIC09IHRyYWNpbmdSZXNpZGVudFNpemU7CisKKyAgICAgICAgLy8gU3VidHJhY3QgdGhlIHRyYWNpbmcgc2l6ZSBmcm9tIFZNIHJlZ2lvbnMuCisgICAgICAgIGlmICh0aGlzLnZtUmVnaW9uc18gIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHRoaXMudm1SZWdpb25zXy5wdXNoKFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgICAgIG1hcHBlZEZpbGU6ICdbZGlzY291bnRlZCB0cmFjaW5nIG92ZXJoZWFkXScsCisgICAgICAgICAgICBieXRlU3RhdHM6IHsKKyAgICAgICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IC10cmFjaW5nUmVzaWRlbnRTaXplLAorICAgICAgICAgICAgICBwcm9wb3J0aW9uYWxSZXNpZGVudDogLXRyYWNpbmdSZXNpZGVudFNpemUKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gU3VidHJhY3QgJ3NpemUnIGZyb20gdGhlICd3aW5oZWFwJyBvciAnbWFsbG9jJyBNZW1vcnlBbGxvY2F0b3JEdW1wLgorICAgICAgdmFyIHRyYWNpbmdTaXplQXR0ciA9IHRyYWNpbmdEdW1wLmdldFZhbGlkU2l6ZUF0dHJpYnV0ZU9yVW5kZWZpbmVkKAorICAgICAgICAgICdzaXplJywgb3B0X21vZGVsKTsKKyAgICAgIGlmICh0cmFjaW5nU2l6ZUF0dHIgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB2YXIgdHJhY2luZ1NpemUgPSB0cmFjaW5nU2l6ZUF0dHIudmFsdWU7CisKKyAgICAgICAgdmFyIGhhc0Rpc2NvdW50ZWRGcm9tQWxsb2NhdG9yRHVtcHMgPSBESVNDT1VOVEVEX0FMTE9DQVRPUl9OQU1FUy5zb21lKAorICAgICAgICAgICAgZnVuY3Rpb24oYWxsb2NhdG9yTmFtZSkgeworICAgICAgICAgIHZhciBkdW1wID0gdGhpcy5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZShhbGxvY2F0b3JOYW1lKTsKKyAgICAgICAgICBpZiAoZHVtcCA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgdmFyIG92ZXJoZWFkU2l6ZUF0dHJpYnV0ZSA9IG5ldyB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUoCisgICAgICAgICAgICAgICdieXRlcycsIC10cmFjaW5nU2l6ZSk7CisgICAgICAgICAgdmFyIG92ZXJoZWFkRHVtcCA9IG5ldyB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wKAorICAgICAgICAgICAgICB0aGlzLCBhbGxvY2F0b3JOYW1lICsgJy9kaXNjb3VudGVkX3RyYWNpbmdfb3ZlcmhlYWQnKTsKKyAgICAgICAgICBvdmVyaGVhZER1bXAucGFyZW50ID0gZHVtcDsKKyAgICAgICAgICBvdmVyaGVhZER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgb3ZlcmhlYWRTaXplQXR0cmlidXRlKTsKKyAgICAgICAgICBkdW1wLmNoaWxkcmVuLnB1c2gob3ZlcmhlYWREdW1wKTsKKworICAgICAgICAgIHZhciBkdW1wU2l6ZUF0dHIgPSBkdW1wLmdldFZhbGlkU2l6ZUF0dHJpYnV0ZU9yVW5kZWZpbmVkKAorICAgICAgICAgICAgICAnc2l6ZScsIG9wdF9tb2RlbCk7CisgICAgICAgICAgaWYgKGR1bXBTaXplQXR0ciAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgZHVtcFNpemVBdHRyLnZhbHVlIC09IHRyYWNpbmdTaXplOworCisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sIHRoaXMpOworCisgICAgICAgIC8vIEZvcmNlIHJlYnVpbGRpbmcgdGhlIG1lbW9yeSBhbGxvY2F0b3IgZHVtcCBpbmRleCAoaWYgd2UndmUganVzdCBhZGRlZAorICAgICAgICAvLyBhIG5ldyBtZW1vcnkgYWxsb2NhdG9yIGR1bXApLgorICAgICAgICBpZiAoaGFzRGlzY291bnRlZEZyb21BbGxvY2F0b3JEdW1wcykKKyAgICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gdGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wczsKKyAgICAgIH0KKyAgICB9CisgIH07CisKKyAgUHJvY2Vzc01lbW9yeUR1bXAuaG9va1VwTW9zdFJlY2VudFZtUmVnaW9uc0xpbmtzID0gZnVuY3Rpb24ocHJvY2Vzc0R1bXBzKSB7CisgICAgdmFyIG1vc3RSZWNlbnRWbVJlZ2lvbnMgPSB1bmRlZmluZWQ7CisKKyAgICBwcm9jZXNzRHVtcHMuZm9yRWFjaChmdW5jdGlvbihwcm9jZXNzRHVtcCkgeworICAgICAgLy8gVXBkYXRlIHRoZSBtb3N0IHJlY2VudCBWTSByZWdpb25zIGZyb20gdGhlIGN1cnJlbnQgZHVtcC4KKyAgICAgIGlmIChwcm9jZXNzRHVtcC52bVJlZ2lvbnNfICE9PSB1bmRlZmluZWQpCisgICAgICAgIG1vc3RSZWNlbnRWbVJlZ2lvbnMgPSBwcm9jZXNzRHVtcC52bVJlZ2lvbnNfOworCisgICAgICAvLyBTZXQgdGhlIG1vc3QgcmVjZW50IFZNIHJlZ2lvbnMgb2YgdGhlIGN1cnJlbnQgZHVtcC4KKyAgICAgIHByb2Nlc3NEdW1wLm1vc3RSZWNlbnRWbVJlZ2lvbnMgPSBtb3N0UmVjZW50Vm1SZWdpb25zOworICAgIH0pOworICB9OworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIFZNUmVnaW9uKHN0YXJ0QWRkcmVzcywgc2l6ZUluQnl0ZXMsIHByb3RlY3Rpb25GbGFncywKKyAgICAgIG1hcHBlZEZpbGUsIGJ5dGVTdGF0cykgeworICAgIHRoaXMuc3RhcnRBZGRyZXNzID0gc3RhcnRBZGRyZXNzOworICAgIHRoaXMuc2l6ZUluQnl0ZXMgPSBzaXplSW5CeXRlczsKKyAgICB0aGlzLnByb3RlY3Rpb25GbGFncyA9IHByb3RlY3Rpb25GbGFnczsKKyAgICB0aGlzLm1hcHBlZEZpbGUgPSBtYXBwZWRGaWxlOworICAgIHRoaXMuYnl0ZVN0YXRzID0gYnl0ZVN0YXRzOworICB9OworCisgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEID0gNDsKKyAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFID0gMjsKKyAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX0VYRUNVVEUgPSAxOworCisgIFZNUmVnaW9uLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgcHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcoKSB7CisgICAgICBpZiAodGhpcy5wcm90ZWN0aW9uRmxhZ3MgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiAoCisgICAgICAgICAgKHRoaXMucHJvdGVjdGlvbkZsYWdzICYgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgPyAncicgOiAnLScpICsKKyAgICAgICAgICAodGhpcy5wcm90ZWN0aW9uRmxhZ3MgJiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfV1JJVEUgPyAndycgOiAnLScpICsKKyAgICAgICAgICAodGhpcy5wcm90ZWN0aW9uRmxhZ3MgJiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfRVhFQ1VURSA/ICd4JyA6ICctJykKKyAgICAgICk7CisgICAgfQorICB9OworCisgIFZNUmVnaW9uLmZyb21EaWN0ID0gZnVuY3Rpb24oZGljdCkgeworICAgIHJldHVybiBuZXcgVk1SZWdpb24oCisgICAgICAgIGRpY3Quc3RhcnRBZGRyZXNzLAorICAgICAgICBkaWN0LnNpemVJbkJ5dGVzLAorICAgICAgICBkaWN0LnByb3RlY3Rpb25GbGFncywKKyAgICAgICAgZGljdC5tYXBwZWRGaWxlLAorICAgICAgICBWTVJlZ2lvbkJ5dGVTdGF0cy5mcm9tRGljdChkaWN0LmJ5dGVTdGF0cykpOworICB9OworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIFZNUmVnaW9uQnl0ZVN0YXRzKHByaXZhdGVDbGVhblJlc2lkZW50LCBwcml2YXRlRGlydHlSZXNpZGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkQ2xlYW5SZXNpZGVudCwgc2hhcmVkRGlydHlSZXNpZGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcG9ydGlvbmFsUmVzaWRlbnQsIHN3YXBwZWQpIHsKKyAgICB0aGlzLnByaXZhdGVDbGVhblJlc2lkZW50ID0gcHJpdmF0ZUNsZWFuUmVzaWRlbnQ7CisgICAgdGhpcy5wcml2YXRlRGlydHlSZXNpZGVudCA9IHByaXZhdGVEaXJ0eVJlc2lkZW50OworICAgIHRoaXMuc2hhcmVkQ2xlYW5SZXNpZGVudCA9IHNoYXJlZENsZWFuUmVzaWRlbnQ7CisgICAgdGhpcy5zaGFyZWREaXJ0eVJlc2lkZW50ID0gc2hhcmVkRGlydHlSZXNpZGVudDsKKyAgICB0aGlzLnByb3BvcnRpb25hbFJlc2lkZW50ID0gcHJvcG9ydGlvbmFsUmVzaWRlbnQ7CisgICAgdGhpcy5zd2FwcGVkID0gc3dhcHBlZDsKKyAgfQorCisgIFZNUmVnaW9uQnl0ZVN0YXRzLmZyb21EaWN0ID0gZnVuY3Rpb24oZGljdCkgeworICAgIHJldHVybiBuZXcgVk1SZWdpb25CeXRlU3RhdHMoCisgICAgICAgIGRpY3QucHJpdmF0ZUNsZWFuUmVzaWRlbnQsCisgICAgICAgIGRpY3QucHJpdmF0ZURpcnR5UmVzaWRlbnQsCisgICAgICAgIGRpY3Quc2hhcmVkQ2xlYW5SZXNpZGVudCwKKyAgICAgICAgZGljdC5zaGFyZWREaXJ0eVJlc2lkZW50LAorICAgICAgICBkaWN0LnByb3BvcnRpb25hbFJlc2lkZW50LAorICAgICAgICBkaWN0LnN3YXBwZWQpOworICB9CisKKyAgdHIubW9kZWwuRXZlbnRSZWdpc3RyeS5yZWdpc3RlcigKKyAgICAgIFByb2Nlc3NNZW1vcnlEdW1wLAorICAgICAgeworICAgICAgICBuYW1lOiAncHJvY2Vzc01lbW9yeUR1bXAnLAorICAgICAgICBwbHVyYWxOYW1lOiAncHJvY2Vzc01lbW9yeUR1bXBzJywKKyAgICAgICAgc2luZ2xlVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1zaW5nbGUtcHJvY2Vzcy1tZW1vcnktZHVtcC1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1tdWx0aS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3JworICAgICAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBQcm9jZXNzTWVtb3J5RHVtcDogUHJvY2Vzc01lbW9yeUR1bXAsCisgICAgVk1SZWdpb246IFZNUmVnaW9uLAorICAgIFZNUmVnaW9uQnl0ZVN0YXRzOiBWTVJlZ2lvbkJ5dGVTdGF0cworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwOGYyZTcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzkzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2dsb2JhbF9tZW1vcnlfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbWVtb3J5X2FsbG9jYXRvcl9kdW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzX21lbW9yeV9kdW1wLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIEdsb2JhbE1lbW9yeUR1bXAgPSB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wOworICB2YXIgUHJvY2Vzc01lbW9yeUR1bXAgPSB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcDsKKyAgdmFyIE1lbW9yeUFsbG9jYXRvckR1bXAgPSB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wOworICB2YXIgVk1SZWdpb24gPSB0ci5tb2RlbC5WTVJlZ2lvbjsKKyAgdmFyIFNjYWxhckF0dHJpYnV0ZSA9IHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZTsKKworICB2YXIgY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXAgPSBmdW5jdGlvbih0aW1lc3RhbXAsIG1vZGVsKSB7CisgICAgdmFyIGdtZCA9IG5ldyBHbG9iYWxNZW1vcnlEdW1wKG1vZGVsLCB0aW1lc3RhbXApOworICAgIG1vZGVsLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2goZ21kKTsKKyAgICB2YXIgcCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOworICAgIHZhciBwbWQgPSBuZXcgUHJvY2Vzc01lbW9yeUR1bXAoZ21kLCBwLCB0aW1lc3RhbXAgKyAxKTsKKyAgICBnbWQucHJvY2Vzc01lbW9yeUR1bXBzWzEyM10gPSBwbWQ7CisgICAgcC5tZW1vcnlEdW1wcy5wdXNoKHBtZCk7CisgICAgcmV0dXJuIHBtZDsKKyAgfQorCisgIHZhciBjcmVhdGVGaW5hbGl6ZWRQcm9jZXNzTWVtb3J5RHVtcCA9IGZ1bmN0aW9uKHRpbWVzdGFtcCwgY3JlYXRlZENhbGxiYWNrKSB7CisgICAgcmV0dXJuIGNyZWF0ZUZpbmFsaXplZFByb2Nlc3NNZW1vcnlEdW1wcyhbdGltZXN0YW1wXSwgZnVuY3Rpb24ocG1kcykgeworICAgICAgY3JlYXRlZENhbGxiYWNrKHBtZHNbMF0pOworICAgIH0pWzBdOworICB9CisKKyAgZnVuY3Rpb24gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXBzKHRpbWVzdGFtcHMsIGNyZWF0ZWRDYWxsYmFjaykgeworICAgIHZhciBtb2RlbCA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgeworICAgICAgdmFyIHBtZHMgPSB0aW1lc3RhbXBzLm1hcChmdW5jdGlvbih0aW1lc3RhbXApIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVByb2Nlc3NNZW1vcnlEdW1wKHRpbWVzdGFtcCwgbW9kZWwpOworICAgICAgfSk7CisgICAgICBjcmVhdGVkQ2FsbGJhY2socG1kcyk7CisgICAgfSk7CisgICAgdmFyIHBtZHMgPSBtb2RlbC5nZXRQcm9jZXNzKDEyMykubWVtb3J5RHVtcHM7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHBtZHMsIHRpbWVzdGFtcHMubGVuZ3RoKTsKKyAgICByZXR1cm4gcG1kczsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrUHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcocHJvdGVjdGlvbkZsYWdzLCBleHBlY3RlZFN0cmluZykgeworICAgIHZhciB2bVJlZ2lvbiA9IFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgIHN0YXJ0QWRkcmVzczogMjU2LAorICAgICAgc2l6ZUluQnl0ZXM6IDMzNiwKKyAgICAgIHByb3RlY3Rpb25GbGFnczogcHJvdGVjdGlvbkZsYWdzLAorICAgICAgbWFwcGVkRmlsZTogJ1tzdGFjazoyMDMxMF0nLAorICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiA5NiwKKyAgICAgICAgc3dhcHBlZDogMTQ0LAorICAgICAgICBwcm9wb3J0aW9uYWxSZXNpZGVudDogMTU4CisgICAgICB9CisgICAgfSk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHZtUmVnaW9uLnByb3RlY3Rpb25GbGFnc1RvU3RyaW5nLCBleHBlY3RlZFN0cmluZyk7CisgIH0KKworICB0ZXN0KCd0b3RhbFJlc2lkZW50U2l6ZUluQnl0ZXNfdW5kZWZpbmVkVm1SZWdpb25zJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHBtZCA9IGNyZWF0ZUZpbmFsaXplZFByb2Nlc3NNZW1vcnlEdW1wKDQyLCBmdW5jdGlvbihwbWQpIHt9KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocG1kLm1vc3RSZWNlbnRUb3RhbFByb3BvcnRpb25hbFJlc2lkZW50U2l6ZUluQnl0ZXMpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZCgKKyAgICAgICAgcG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZURpcnR5UmVzaWRlbnQnKSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKAorICAgICAgICBwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlQ2xlYW5SZXNpZGVudCcpKTsKKyAgfSk7CisKKyAgdGVzdCgndG90YWxSZXNpZGVudFNpemVJbkJ5dGVzX3plcm9WbVJlZ2lvbnMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcG1kID0gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXAoNDIsIGZ1bmN0aW9uKHBtZCkgeworICAgICAgcG1kLnZtUmVnaW9ucyA9IFtdOworICAgIH0pOworICAgIGFzc2VydC5lcXVhbChwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcm9wb3J0aW9uYWxSZXNpZGVudCcpLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZURpcnR5UmVzaWRlbnQnKSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3ByaXZhdGVDbGVhblJlc2lkZW50JyksIDApOworICB9KTsKKworICB0ZXN0KCd0b3RhbFJlc2lkZW50U2l6ZUluQnl0ZXNfb25lVm1SZWdpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcG1kID0gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXAoNDIsIGZ1bmN0aW9uKHBtZCkgeworICAgICAgcG1kLnZtUmVnaW9ucyA9IFsKKyAgICAgICAgVk1SZWdpb24uZnJvbURpY3QoeworICAgICAgICAgIHN0YXJ0QWRkcmVzczogMjU2LAorICAgICAgICAgIHNpemVJbkJ5dGVzOiAzMzYsCisgICAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8CisgICAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURSwKKyAgICAgICAgICBtYXBwZWRGaWxlOiAnW3N0YWNrOjIwMzEwXScsCisgICAgICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogOTYsCisgICAgICAgICAgICBzd2FwcGVkOiAxNDQsCisgICAgICAgICAgICBwcm9wb3J0aW9uYWxSZXNpZGVudDogMTU4CisgICAgICAgICAgfQorICAgICAgICB9KQorICAgICAgXTsKKyAgICB9KTsKKyAgICBhc3NlcnQuZXF1YWwoCisgICAgICAgIHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3Byb3BvcnRpb25hbFJlc2lkZW50JyksIDE1OCk7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlRGlydHlSZXNpZGVudCcpLCA5Nik7CisgICAgYXNzZXJ0LmVxdWFsKHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3ByaXZhdGVDbGVhblJlc2lkZW50JyksIDApOworICB9KTsKKworICB0ZXN0KCd0b3RhbFJlc2lkZW50U2l6ZUluQnl0ZXNfdHdvVm1SZWdpb25zJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHBtZCA9IGNyZWF0ZUZpbmFsaXplZFByb2Nlc3NNZW1vcnlEdW1wKDQyLCBmdW5jdGlvbihwbWQpIHsKKyAgICAgIHBtZC52bVJlZ2lvbnMgPSBbCisgICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgICBzdGFydEFkZHJlc3M6IDI1NiwKKyAgICAgICAgICBzaXplSW5CeXRlczogMzM2LAorICAgICAgICAgIHByb3RlY3Rpb25GbGFnczogVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfAorICAgICAgICAgICAgICBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfV1JJVEUsCisgICAgICAgICAgbWFwcGVkRmlsZTogJ1tzdGFjazoyMDMxMF0nLAorICAgICAgICAgIGJ5dGVTdGF0czogeworICAgICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDk2LAorICAgICAgICAgICAgc3dhcHBlZDogMTQ0LAorICAgICAgICAgICAgcHJvcG9ydGlvbmFsUmVzaWRlbnQ6IDE1OAorICAgICAgICAgIH0KKyAgICAgICAgfSksCisgICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgICBzdGFydEFkZHJlc3M6IDg0OCwKKyAgICAgICAgICBzaXplSW5CeXRlczogNTkyLAorICAgICAgICAgIHByb3RlY3Rpb25GbGFnczogVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfAorICAgICAgICAgICAgICBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfRVhFQ1VURSwKKyAgICAgICAgICBtYXBwZWRGaWxlOiAnL2Rldi9hc2htZW0vZGFsdmlrJywKKyAgICAgICAgICBieXRlU3RhdHM6IHsKKyAgICAgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiAyMDUsCisgICAgICAgICAgICBwcml2YXRlQ2xlYW5SZXNpZGVudDogMCwKKyAgICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAyMDUKKyAgICAgICAgICB9CisgICAgICAgIH0pCisgICAgICBdOworICAgIH0pOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgcG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnKSwgMzYzKTsKKyAgICBhc3NlcnQuZXF1YWwoCisgICAgICAgIHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3ByaXZhdGVEaXJ0eVJlc2lkZW50JyksIDMwMSk7CisgICAgYXNzZXJ0LmVxdWFsKHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3N3YXBwZWQnKSwgMTQ0KTsKKyAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZUNsZWFuUmVzaWRlbnQnKSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3NoYXJlZENsZWFuUmVzaWRlbnQnKSwgMCk7CisgIH0pOworCisgIHRlc3QoJ2hvb2tVcE1vc3RSZWNlbnRWbVJlZ2lvbnNMaW5rc19lbXB0eUFycmF5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGR1bXBzID0gW107CisgICAgUHJvY2Vzc01lbW9yeUR1bXAuaG9va1VwTW9zdFJlY2VudFZtUmVnaW9uc0xpbmtzKGR1bXBzKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZHVtcHMsIDApOworICB9KTsKKworICB0ZXN0KCdob29rVXBNb3N0UmVjZW50Vm1SZWdpb25zTGlua3Nfbm9uRW1wdHlBcnJheScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisKKyAgICAvLyBBIGR1bXAgd2l0aCBubyBWTSByZWdpb25zIG9yIGFsbG9jYXRvciBkdW1wcy4KKyAgICB2YXIgZHVtcDEgPSBjcmVhdGVQcm9jZXNzTWVtb3J5RHVtcCgxLCBtKTsKKworICAgIC8vIEEgZHVtcCB3aXRoIFZNIHJlZ2lvbnMgYW5kIG1hbGxvYyBhbmQgT2lscGFuIGFsbG9jYXRvciBkdW1wcy4KKyAgICB2YXIgZHVtcDIgPSBjcmVhdGVQcm9jZXNzTWVtb3J5RHVtcCgyLCBtKTsKKyAgICBkdW1wMi52bVJlZ2lvbnMgPSBbXTsKKyAgICBkdW1wMi5tZW1vcnlBbGxvY2F0b3JEdW1wcyA9IChmdW5jdGlvbigpIHsKKyAgICAgIHZhciBvaWxwYW5EdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoJ29pbHBhbicpOworICAgICAgb2lscGFuRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwMjQpKTsKKyAgICAgIG9pbHBhbkR1bXAuYWRkQXR0cmlidXRlKCdvYmplY3RzX2NvdW50JywKKyAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdvYmplY3RzJywgNykpOworICAgICAgb2lscGFuRHVtcC5hZGRBdHRyaWJ1dGUoJ2lubmVyX3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDc2OCkpOworCisgICAgICB2YXIgdjhEdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAoJ3Y4Jyk7CisgICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAyMDQ4KSk7CisgICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdvYmplY3RzX2NvdW50JywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnb2JqZWN0cycsIDE1KSk7CisgICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdpbm5lcl9zaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAxOTk5KSk7CisKKyAgICAgIHJldHVybiBbb2lscGFuRHVtcC4gdjhEdW1wXTsKKyAgICB9KSgpOworCisgICAgLy8gQSBkdW1wIHdpdGggbWFsbG9jIGFuZCBWOCBhbGxvY2F0b3IgZHVtcHMuCisgICAgdmFyIGR1bXAzID0gY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXAoMywgbSk7CisgICAgZHVtcDMubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSAoZnVuY3Rpb24oKSB7CisgICAgICB2YXIgbWFsbG9jRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKCdtYWxsb2MnKTsKKyAgICAgIG1hbGxvY0R1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAxMDI0KSk7CisgICAgICBtYWxsb2NEdW1wLmFkZEF0dHJpYnV0ZSgnb2JqZWN0c19jb3VudCcsCisgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnb2JqZWN0cycsIDcpKTsKKyAgICAgIG1hbGxvY0R1bXAuYWRkQXR0cmlidXRlKCdpbm5lcl9zaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCA3NjgpKTsKKworICAgICAgdmFyIHY4RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKCd2OCcpOworICAgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMjA0OCkpOworICAgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnb2JqZWN0c19jb3VudCcsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ29iamVjdHMnLCAxNSkpOworICAgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnaW5uZXJfc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTk5OSkpOworCisgICAgICByZXR1cm4gW21hbGxvY0R1bXAuIHY4RHVtcF07CisgICAgfSkoKTsKKworICAgIC8vIEEgZHVtcCB3aXRoIFZNIHJlZ2lvbnMuCisgICAgdmFyIGR1bXA0ID0gY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXAoNCwgbSk7CisgICAgZHVtcDQudm1SZWdpb25zID0gWworICAgICAgVk1SZWdpb24uZnJvbURpY3QoeworICAgICAgICBzdGFydEFkZHJlc3M6IDI1NiwKKyAgICAgICAgc2l6ZUluQnl0ZXM6IDMzNiwKKyAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8CisgICAgICAgICAgICBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfV1JJVEUsCisgICAgICAgIG1hcHBlZEZpbGU6ICdbc3RhY2s6MjAzMTBdJywKKyAgICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgICAgcHJpdmF0ZVJlc2lkZW50OiA5NiwKKyAgICAgICAgICBzaGFyZWRSZXNpZGVudDogMTQ0LAorICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxNTgKKyAgICAgICAgfQorICAgICAgfSkKKyAgICBdOworCisgICAgdmFyIGR1bXBzID0gW2R1bXAxLCBkdW1wMiwgZHVtcDMsIGR1bXA0XTsKKyAgICBQcm9jZXNzTWVtb3J5RHVtcC5ob29rVXBNb3N0UmVjZW50Vm1SZWdpb25zTGlua3MoZHVtcHMpOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKGR1bXBzLCA0KTsKKworICAgIGFzc2VydC5lcXVhbChkdW1wc1swXSwgZHVtcDEpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChkdW1wMS5tb3N0UmVjZW50Vm1SZWdpb25zKTsKKworICAgIGFzc2VydC5lcXVhbChkdW1wc1sxXSwgZHVtcDIpOworICAgIGFzc2VydC5lcXVhbChkdW1wMi5tb3N0UmVjZW50Vm1SZWdpb25zLCBkdW1wMi52bVJlZ2lvbnNfKTsKKworICAgIGFzc2VydC5lcXVhbChkdW1wc1syXSwgZHVtcDMpOworICAgIGFzc2VydC5lcXVhbChkdW1wMy5tb3N0UmVjZW50Vm1SZWdpb25zLCBkdW1wMi52bVJlZ2lvbnNfKTsKKworICAgIGFzc2VydC5lcXVhbChkdW1wc1szXSwgZHVtcDQpOworICAgIGFzc2VydC5lcXVhbChkdW1wNC5tb3N0UmVjZW50Vm1SZWdpb25zLCBkdW1wNC52bVJlZ2lvbnNfKTsKKyAgfSk7CisKKyAgdGVzdCgndm1SZWdpb25fcHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcnLCBmdW5jdGlvbigpIHsKKyAgICBjaGVja1Byb3RlY3Rpb25GbGFnc1RvU3RyaW5nKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsKKyAgICBjaGVja1Byb3RlY3Rpb25GbGFnc1RvU3RyaW5nKDAsICctLS0nKTsKKyAgICBjaGVja1Byb3RlY3Rpb25GbGFnc1RvU3RyaW5nKFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFELCAnci0tJyk7CisgICAgY2hlY2tQcm90ZWN0aW9uRmxhZ3NUb1N0cmluZygKKyAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfCBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfRVhFQ1VURSwKKyAgICAgICAgJ3IteCcpOworICAgIGNoZWNrUHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcoCisgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFLAorICAgICAgICAncnctJyk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrRGlzY291bnRUcmFjaW5nT3ZlcmhlYWRfdW5kZWZpbmVkRmllbGRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHBtZCA9IGNyZWF0ZUZpbmFsaXplZFByb2Nlc3NNZW1vcnlEdW1wKDQyLCBmdW5jdGlvbihwbWQpIHsKKyAgICAgIHZhciB2OER1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQsICd2OCcpOworICAgICAgdjhEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMjA0OCkpOworCisgICAgICB2YXIgdHJhY2luZ0R1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQsICd0cmFjaW5nJyk7CisgICAgICB0cmFjaW5nRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwMjQpKTsKKworICAgICAgcG1kLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gW3Y4RHVtcCwgdHJhY2luZ0R1bXBdOworICAgIH0pOworCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBtZC50b3RhbFJlc2lkZW50Qnl0ZXMpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZCgKKyAgICAgICAgcG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnKSk7CisKKyAgICB2YXIgdjhEdW1wID0gcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKCd2OCcpOworICAgIGFzc2VydC5lcXVhbCh2OER1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAyMDQ4KTsKKworICAgIHZhciB0cmFjaW5nRHVtcCA9IHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgndHJhY2luZycpOworICAgIGFzc2VydC5lcXVhbCh0cmFjaW5nRHVtcC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDEwMjQpOworICB9KTsKKworICB0ZXN0KCdjaGVja0Rpc2NvdW50VHJhY2luZ092ZXJoZWFkX2RlZmluZWRGaWVsZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcG1kID0gY3JlYXRlRmluYWxpemVkUHJvY2Vzc01lbW9yeUR1bXAoNDIsIGZ1bmN0aW9uKHBtZCkgeworICAgICAgcG1kLnRvdGFsUmVzaWRlbnRCeXRlcyA9IDEwMjQwOworCisgICAgICBwbWQudm1SZWdpb25zID0gWworICAgICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7CisgICAgICAgICAgc3RhcnRBZGRyZXNzOiAyNTYsCisgICAgICAgICAgc2l6ZUluQnl0ZXM6IDYwMDAsCisgICAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8CisgICAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURSwKKyAgICAgICAgICBtYXBwZWRGaWxlOiAnW3N0YWNrOjIwMzEwXScsCisgICAgICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogNDA5NiwKKyAgICAgICAgICAgIHN3YXBwZWQ6IDE1MzYsCisgICAgICAgICAgICBwcm9wb3J0aW9uYWxSZXNpZGVudDogNTEyMAorICAgICAgICAgIH0KKyAgICAgICAgfSkKKyAgICAgIF07CisKKyAgICAgIHZhciBtYWxsb2NEdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAocG1kLCAnbWFsbG9jJyk7CisgICAgICBtYWxsb2NEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMzA3MikpOworCisgICAgICB2YXIgdHJhY2luZ0R1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQsICd0cmFjaW5nJyk7CisgICAgICB0cmFjaW5nRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwMjQpKTsKKyAgICAgIHRyYWNpbmdEdW1wLmFkZEF0dHJpYnV0ZSgKKyAgICAgICAgICAncmVzaWRlbnRfc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTAwMCkpOworCisgICAgICBwbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBbbWFsbG9jRHVtcCwgdHJhY2luZ0R1bXBdOworICAgIH0pOworCisgICAgYXNzZXJ0LmVxdWFsKHBtZC50b3RhbFJlc2lkZW50Qnl0ZXMsIDkyNDApOworCisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlRGlydHlSZXNpZGVudCcpLCAzMDk2KTsKKyAgICBhc3NlcnQuZXF1YWwocG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgnc3dhcHBlZCcpLCAxNTM2KTsKKyAgICBhc3NlcnQuZXF1YWwoCisgICAgICAgIHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3Byb3BvcnRpb25hbFJlc2lkZW50JyksIDQxMjApOworCisgICAgdmFyIG1hbGxvY0R1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ21hbGxvYycpOworICAgIGFzc2VydC5lcXVhbChtYWxsb2NEdW1wLmF0dHJpYnV0ZXNbJ3NpemUnXS52YWx1ZSwgMjA0OCk7CisKKyAgICB2YXIgZGlzY291bnREdW1wID0gcG1kLmdldE1lbW9yeUFsbG9jYXRvckR1bXBCeUZ1bGxOYW1lKAorICAgICAgICAnbWFsbG9jL2Rpc2NvdW50ZWRfdHJhY2luZ19vdmVyaGVhZCcpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChkaXNjb3VudER1bXAucGFyZW50LCBtYWxsb2NEdW1wKTsKKyAgICBhc3NlcnQuaW5jbHVkZShtYWxsb2NEdW1wLmNoaWxkcmVuLCBkaXNjb3VudER1bXApOworICAgIGFzc2VydC5lcXVhbChkaXNjb3VudER1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAtMTAyNCk7CisKKyAgICB2YXIgdHJhY2luZ0R1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3RyYWNpbmcnKTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2luZ0R1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAxMDI0KTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2luZ0R1bXAuYXR0cmlidXRlc1sncmVzaWRlbnRfc2l6ZSddLnZhbHVlLCAxMDAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tEaXNjb3VudFRyYWNpbmdPdmVyaGVhZF93aW5oZWFwJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHBtZCA9IGNyZWF0ZUZpbmFsaXplZFByb2Nlc3NNZW1vcnlEdW1wKDQyLCBmdW5jdGlvbihwbWQpIHsKKyAgICAgIHZhciB3aW5oZWFwRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZCwgJ3dpbmhlYXAnKTsKKyAgICAgIHdpbmhlYXBEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNTEyMCkpOworCisgICAgICB2YXIgdHJhY2luZ0R1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQsICd0cmFjaW5nJyk7CisgICAgICB0cmFjaW5nRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLCBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDIwNDgpKTsKKworICAgICAgcG1kLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gW3RyYWNpbmdEdW1wLCB3aW5oZWFwRHVtcF07CisgICAgfSk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocG1kLnRvdGFsUmVzaWRlbnRCeXRlcyk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoCisgICAgICAgIHBtZC5nZXRNb3N0UmVjZW50VG90YWxWbVJlZ2lvblN0YXQoJ3ByaXZhdGVEaXJ0eVJlc2lkZW50JykpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChwbWQuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdzd2FwcGVkJykpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZCgKKyAgICAgICAgcG1kLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnKSk7CisKKyAgICB2YXIgd2luaGVhcER1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoJ3dpbmhlYXAnKTsKKyAgICBhc3NlcnQuZXF1YWwod2luaGVhcER1bXAuYXR0cmlidXRlc1snc2l6ZSddLnZhbHVlLCAzMDcyKTsKKworICAgIHZhciBkaXNjb3VudER1bXAgPSBwbWQuZ2V0TWVtb3J5QWxsb2NhdG9yRHVtcEJ5RnVsbE5hbWUoCisgICAgICAgICd3aW5oZWFwL2Rpc2NvdW50ZWRfdHJhY2luZ19vdmVyaGVhZCcpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChkaXNjb3VudER1bXAucGFyZW50LCB3aW5oZWFwRHVtcCk7CisgICAgYXNzZXJ0LmluY2x1ZGUod2luaGVhcER1bXAuY2hpbGRyZW4sIGRpc2NvdW50RHVtcCk7CisgICAgYXNzZXJ0LmVxdWFsKGRpc2NvdW50RHVtcC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIC0yMDQ4KTsKKworICAgIHZhciB0cmFjaW5nRHVtcCA9IHBtZC5nZXRNZW1vcnlBbGxvY2F0b3JEdW1wQnlGdWxsTmFtZSgndHJhY2luZycpOworICAgIGFzc2VydC5lcXVhbCh0cmFjaW5nRHVtcC5hdHRyaWJ1dGVzWydzaXplJ10udmFsdWUsIDIwNDgpOworICB9KTsKKworICB0ZXN0KCdjaGVja0Rpc2NvdW50VHJhY2luZ092ZXJoZWFkX3dpdGhNb3N0UmVjZW50Vm1SZWdpb25zTGlua3MnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcG1kcyA9IGNyZWF0ZUZpbmFsaXplZFByb2Nlc3NNZW1vcnlEdW1wcyhbNDIsIDkwXSwgZnVuY3Rpb24ocG1kcykgeworICAgICAgcG1kc1swXS50b3RhbFJlc2lkZW50Qnl0ZXMgPSAxMDAwOworICAgICAgcG1kc1swXS52bVJlZ2lvbnMgPSBbCisgICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgICBzdGFydEFkZHJlc3M6IDI1NiwKKyAgICAgICAgICBzaXplSW5CeXRlczogNjAwMCwKKyAgICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKKyAgICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFLAorICAgICAgICAgIG1hcHBlZEZpbGU6ICdbc3RhY2s6MjAzMTBdJywKKyAgICAgICAgICBieXRlU3RhdHM6IHsKKyAgICAgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiA0MDk2CisgICAgICAgICAgfQorICAgICAgICB9KQorICAgICAgXTsKKyAgICAgIHBtZHNbMF0ubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSAoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciB0cmFjaW5nRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZHNbMF0sICd0cmFjaW5nJyk7CisgICAgICAgIHRyYWNpbmdEdW1wLmFkZEF0dHJpYnV0ZSgKKyAgICAgICAgICAgICdyZXNpZGVudF9zaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAxMDApKTsKKyAgICAgICAgcmV0dXJuIFt0cmFjaW5nRHVtcF07CisgICAgICB9KSgpOworCisgICAgICBwbWRzWzFdLnRvdGFsUmVzaWRlbnRCeXRlcyA9IDIwMDA7CisgICAgICBwbWRzWzFdLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgdHJhY2luZ0R1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWRzWzBdLCAndHJhY2luZycpOworICAgICAgICB0cmFjaW5nRHVtcC5hZGRBdHRyaWJ1dGUoCisgICAgICAgICAgICAncmVzaWRlbnRfc2l6ZScsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMjAwKSk7CisgICAgICAgIHJldHVybiBbdHJhY2luZ0R1bXBdOworICAgICAgfSkoKTsKKyAgICB9KTsKKworICAgIC8vIEZpcnN0IFBNRDogQm90aCB0b3RhbCByZXNpZGVudCBhbmQgcHJpdmF0ZSBkaXJ0eSByZXNpZGVudCBzaXplIHNob3VsZCBiZQorICAgIC8vIHJlZHVjZWQgYnkgMTAwLgorICAgIGFzc2VydC5lcXVhbChwbWRzWzBdLnRvdGFsUmVzaWRlbnRCeXRlcywgOTAwKTsKKyAgICBhc3NlcnQuZXF1YWwoCisgICAgICAgIHBtZHNbMF0uZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KCdwcml2YXRlRGlydHlSZXNpZGVudCcpLCAzOTk2KTsKKworICAgIC8vIFNlY29uZCBQTUQ6IFRvdGFsIHJlc2lkZW50IHNpemUgc2hvdWxkIGJlIHJlZHVjZWQgYnkgMjAwLCB3aGVyZWFzIHByaXZhdGUKKyAgICAvLyBkaXJ0eSByZXNpZGVudCBzaXplIHNob3VsZCBiZSByZWR1Y2VkIGJ5IDEwMCAoYmVjYXVzZSBpdCBjb21lcyBmcm9tCisgICAgLy8gdGhlIFZNIHJlZ2lvbnMgaW4gdGhlIGZpcnN0IGR1bXApLgorICAgIGFzc2VydC5lcXVhbChwbWRzWzFdLnRvdGFsUmVzaWRlbnRCeXRlcywgMTgwMCk7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBwbWRzWzFdLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdCgncHJpdmF0ZURpcnR5UmVzaWRlbnQnKSwgMzk5Nik7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcHJvY2Vzc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Byb2Nlc3NfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZjkzZGMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3Byb2Nlc3NfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2ZyYW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2luc3RhbnRfZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm9jZXNzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aHJlYWRfc2xpY2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdnZXRPckNyZWF0ZUNvdW50ZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcHJvY2VzcyA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzKG1vZGVsLCA3KTsKKyAgICB2YXIgY3RyQmFyID0gcHJvY2Vzcy5nZXRPckNyZWF0ZUNvdW50ZXIoJ2ZvbycsICdiYXInKTsKKyAgICB2YXIgY3RyQmFyMiA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVDb3VudGVyKCdmb28nLCAnYmFyJyk7CisgICAgYXNzZXJ0LmVxdWFsKGN0ckJhcjIsIGN0ckJhcik7CisgIH0pOworCisgIHRlc3QoJ3NoaWZ0VGltZXN0YW1wc0ZvcndhcmQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcHJvY2VzcyA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzKG1vZGVsLCA3KTsKKyAgICB2YXIgY3RyID0gcHJvY2Vzcy5nZXRPckNyZWF0ZUNvdW50ZXIoJ2ZvbycsICdiYXInKTsKKyAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKworICAgIHZhciBpbnN0YW50RXZlbnQgPSBuZXcgdHIubW9kZWwuSW5zdGFudEV2ZW50KCdjYXQnLCAnZXZlbnQxJywgMSwgMTAwKTsKKyAgICBwcm9jZXNzLnB1c2hJbnN0YW50RXZlbnQoaW5zdGFudEV2ZW50KTsKKworICAgIHZhciBzbGljZSA9IG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgNCk7CisgICAgdmFyIGZyYW1lID0KKyAgICAgICAgbmV3IHRyLm1vZGVsLkZyYW1lKFtzbGljZV0sIFt7dGhyZWFkOiB0aHJlYWQsIHN0YXJ0OiAxMDAsIGVuZDogMjAwfV0pOworICAgIHByb2Nlc3MuZnJhbWVzLnB1c2goZnJhbWUpOworCisgICAgdmFyIG1lbW9yeUR1bXAgPSBuZXcgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcChtb2RlbCwgMTAwKTsKKyAgICBwcm9jZXNzLm1lbW9yeUR1bXBzLnB1c2gobWVtb3J5RHVtcCk7CisKKyAgICB2YXIgc2hpZnRDb3VudCA9IDA7CisgICAgdGhyZWFkLnNoaWZ0VGltZXN0YW1wc0ZvcndhcmQgPSBmdW5jdGlvbih0cykgeworICAgICAgaWYgKHRzID09IDAuMzIpCisgICAgICAgIHNoaWZ0Q291bnQrKzsKKyAgICB9OworICAgIGN0ci5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkID0gZnVuY3Rpb24odHMpIHsKKyAgICAgIGlmICh0cyA9PSAwLjMyKQorICAgICAgICBzaGlmdENvdW50Kys7CisgICAgfTsKKworICAgIHByb2Nlc3Muc2hpZnRUaW1lc3RhbXBzRm9yd2FyZCgwLjMyKTsKKyAgICBhc3NlcnQuZXF1YWwoc2hpZnRDb3VudCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKGluc3RhbnRFdmVudC5zdGFydCwgMTAwLjMyKTsKKyAgICBhc3NlcnQuZXF1YWwoZnJhbWUuc3RhcnQsIDEwMC4zMik7CisgICAgYXNzZXJ0LmVxdWFsKGZyYW1lLmVuZCwgMjAwLjMyKTsKKyAgICBhc3NlcnQuZXF1YWwobWVtb3J5RHVtcC5zdGFydCwgMTAwLjMyKTsKKyAgfSk7CisKKyAgdGVzdCgnY29tcGFyZU9uUElEJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAxID0gbmV3IHRyLm1vZGVsLlByb2Nlc3MobW9kZWwsIDEpOworICAgIHAxLm5hbWUgPSAnUmVuZGVyZXInOworCisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAyID0gbmV3IHRyLm1vZGVsLlByb2Nlc3MobW9kZWwsIDIpOworICAgIHAyLm5hbWUgPSAnUmVuZGVyZXInOworCisgICAgYXNzZXJ0LmlzQmVsb3cocDEuY29tcGFyZVRvKHAyKSwgMCk7CisgIH0pOworCisgIHRlc3QoJ2NvbXBhcmVPblNvcnRJbmRleCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzKG1vZGVsLCAxKTsKKyAgICBwMS5uYW1lID0gJ1JlbmRlcmVyJzsKKyAgICBwMS5zb3J0SW5kZXggPSAxOworCisgICAgdmFyIHAyID0gbmV3IHRyLm1vZGVsLlByb2Nlc3MobW9kZWwsIDIpOworICAgIHAyLm5hbWUgPSAnUmVuZGVyZXInOworCisgICAgYXNzZXJ0LmlzQWJvdmUocDEuY29tcGFyZVRvKHAyKSwgMCk7CisgIH0pOworCisgIHRlc3QoJ2NvbXBhcmVPbk5hbWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgMSk7CisgICAgcDEubmFtZSA9ICdCcm93c2VyJzsKKworICAgIHZhciBwMiA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzKG1vZGVsLCAyKTsKKyAgICBwMi5uYW1lID0gJ1JlbmRlcmVyJzsKKworICAgIGFzc2VydC5pc0JlbG93KHAxLmNvbXBhcmVUbyhwMiksIDApOworICB9KTsKKworICB0ZXN0KCdjb21wYXJlT25MYWJlbHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgMSk7CisgICAgcDEubmFtZSA9ICdSZW5kZXJlcic7CisgICAgcDEubGFiZWxzID0gWydhJ107CisKKyAgICB2YXIgcDIgPSBuZXcgdHIubW9kZWwuUHJvY2Vzcyhtb2RlbCwgMik7CisgICAgcDIubmFtZSA9ICdSZW5kZXJlcic7CisgICAgcDIubGFiZWxzID0gWydiJ107CisKKyAgICBhc3NlcnQuaXNCZWxvdyhwMS5jb21wYXJlVG8ocDIpLCAwKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb3h5X3NlbGVjdGFibGVfaXRlbS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW0uaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW0uaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW0uaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW1fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW1fdGVzdC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3Byb3h5X3NlbGVjdGFibGVfaXRlbV90ZXN0Lmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcHJveHlfc2VsZWN0YWJsZV9pdGVtX3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9yZWN0X2Fubm90YXRpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcmVjdF9hbm5vdGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA3M2Y4NwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvcmVjdF9hbm5vdGF0aW9uLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbG9jYXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2Fubm90YXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Fubm90YXRpb25zL3JlY3RfYW5ub3RhdGlvbl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKworICBmdW5jdGlvbiBSZWN0QW5ub3RhdGlvbihzdGFydCwgZW5kKSB7CisgICAgdHIubW9kZWwuQW5ub3RhdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisgICAgdGhpcy5zdGFydExvY2F0aW9uXyA9IHN0YXJ0OyAvLyBMb2NhdGlvbiBvZiB0b3AtbGVmdCBjb3JuZXIuCisgICAgdGhpcy5lbmRMb2NhdGlvbl8gPSBlbmQ7IC8vIExvY2F0aW9uIG9mIGJvdHRvbS1yaWdodCBjb3JuZXIuCisgICAgdGhpcy5maWxsU3R5bGUgPSAncmdiYSgyNTUsIDE4MCwgMCwgMC4zKSc7CisgIH0KKworICBSZWN0QW5ub3RhdGlvbi5mcm9tRGljdCA9IGZ1bmN0aW9uKGRpY3QpIHsKKyAgICB2YXIgYXJncyA9IGRpY3QuYXJnczsKKyAgICB2YXIgc3RhcnRMb2MgPQorICAgICAgICBuZXcgdHIubW9kZWwuTG9jYXRpb24oYXJncy5zdGFydC54V29ybGQsIGFyZ3Muc3RhcnQueUNvbXBvbmVudHMpOworICAgIHZhciBlbmRMb2MgPQorICAgICAgICBuZXcgdHIubW9kZWwuTG9jYXRpb24oYXJncy5lbmQueFdvcmxkLCBhcmdzLmVuZC55Q29tcG9uZW50cyk7CisgICAgcmV0dXJuIG5ldyB0ci5tb2RlbC5SZWN0QW5ub3RhdGlvbihzdGFydExvYywgZW5kTG9jKTsKKyAgfQorCisgIFJlY3RBbm5vdGF0aW9uLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLkFubm90YXRpb24ucHJvdG90eXBlLAorCisgICAgZ2V0IHN0YXJ0TG9jYXRpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5zdGFydExvY2F0aW9uXzsKKyAgICB9LAorCisgICAgZ2V0IGVuZExvY2F0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuZW5kTG9jYXRpb25fOworICAgIH0sCisKKyAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgdHlwZU5hbWU6ICdyZWN0JywKKyAgICAgICAgYXJnczogeworICAgICAgICAgIHN0YXJ0OiB0aGlzLnN0YXJ0TG9jYXRpb24udG9EaWN0KCksCisgICAgICAgICAgZW5kOiB0aGlzLmVuZExvY2F0aW9uLnRvRGljdCgpCisgICAgICAgIH0KKyAgICAgIH07CisgICAgfSwKKworICAgIGNyZWF0ZVZpZXdfOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgcmV0dXJuIG5ldyB0ci51aS5hbm5vdGF0aW9ucy5SZWN0QW5ub3RhdGlvblZpZXcodmlld3BvcnQsIHRoaXMpOworICAgIH0KKyAgfTsKKworICB0ci5tb2RlbC5Bbm5vdGF0aW9uLnJlZ2lzdGVyKFJlY3RBbm5vdGF0aW9uLCB7dHlwZU5hbWU6ICdyZWN0J30pOworCisgIHJldHVybiB7CisgICAgUmVjdEFubm90YXRpb246IFJlY3RBbm5vdGF0aW9uCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9zYW1wbGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvc2FtcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0Yjg2ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvc2FtcGxlLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aW1lZF9ldmVudC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBTYW1wbGUgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQSBTYW1wbGUgcmVwcmVzZW50cyBhIHNhbXBsZSB0YWtlbiBhdCBhbiBpbnN0YW50IGluIHRpbWUsIHBsdXMgaXRzIHN0YWNrCisgICAqIGZyYW1lIGFuZCBwYXJhbWV0ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IHNhbXBsZS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBTYW1wbGUoY3B1LCB0aHJlYWQsIHRpdGxlLCBzdGFydCwgbGVhZlN0YWNrRnJhbWUsCisgICAgICAgICAgICAgICAgICBvcHRfd2VpZ2h0LCBvcHRfYXJncykgeworICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7CisKKyAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy5jcHUgPSBjcHU7CisgICAgdGhpcy50aHJlYWQgPSB0aHJlYWQ7CisgICAgdGhpcy5sZWFmU3RhY2tGcmFtZSA9IGxlYWZTdGFja0ZyYW1lOworICAgIHRoaXMud2VpZ2h0ID0gb3B0X3dlaWdodDsKKyAgICB0aGlzLmFyZ3MgPSBvcHRfYXJncyB8fCB7fTsKKyAgfQorCisgIFNhbXBsZS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5UaW1lZEV2ZW50LnByb3RvdHlwZSwKKworICAgIGdldCBjb2xvcklkKCkgeworICAgICAgcmV0dXJuIHRoaXMubGVhZlN0YWNrRnJhbWUuY29sb3JJZDsKKyAgICB9LAorCisgICAgZ2V0IHN0YWNrVHJhY2UoKSB7CisgICAgICByZXR1cm4gdGhpcy5sZWFmU3RhY2tGcmFtZS5zdGFja1RyYWNlOworICAgIH0sCisKKyAgICBnZXRVc2VyRnJpZW5kbHlTdGFja1RyYWNlOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmxlYWZTdGFja0ZyYW1lLmdldFVzZXJGcmllbmRseVN0YWNrVHJhY2UoKTsKKyAgICB9LAorCisgICAgZ2V0IHVzZXJGcmllbmRseU5hbWUoKSB7CisgICAgICByZXR1cm4gJ1NhbXBsZSBhdCAnICsgdHIuYi51bml0cy5UaW1lU3RhbXAuZm9ybWF0KHRoaXMuc3RhcnQpOworICAgIH0KKyAgfTsKKworICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAorICAgICAgU2FtcGxlLAorICAgICAgeworICAgICAgICBuYW1lOiAnc2FtcGxlJywKKyAgICAgICAgcGx1cmFsTmFtZTogJ3NhbXBsZXMnLAorICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLXNpbmdsZS1zYW1wbGUtc3ViLXZpZXcnLAorICAgICAgICBtdWx0aVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtbXVsdGktc2FtcGxlLXN1Yi12aWV3JworICAgICAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBTYW1wbGU6IFNhbXBsZQorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9zYW1wbGVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9zYW1wbGVfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNDhkMzMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NhbXBsZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBTYW1wbGUgPSB0ci5tb2RlbC5TYW1wbGU7CisgIHZhciBTdGFja0ZyYW1lID0gdHIubW9kZWwuU3RhY2tGcmFtZTsKKyAgdmFyIFRocmVhZCA9IHRyLm1vZGVsLlRocmVhZDsKKworICB0ZXN0KCdzYW1wbGVTdGFja1RyYWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRocmVhZCA9IHRyLmMudGVzdF91dGlscy5uZXdGYWtlVGhyZWFkKCk7CisKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgZkFCQyA9IHRyLmMudGVzdF91dGlscy5uZXdTdGFja1RyYWNlKG1vZGVsLCAnY2F0JywgWydhJywgJ2InLCAnYyddKTsKKworICAgIHZhciBzID0gbmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2luc3RydWN0aW9uc19yZXRpcmVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgMTAsIGZBQkMsIDEwKTsKKyAgICB2YXIgc3RhY2tUcmFjZSA9IHMuc3RhY2tUcmFjZTsKKyAgICB2YXIgc3RhY2tUcmFjZU5hbWVzID0gc3RhY2tUcmFjZS5tYXAoZnVuY3Rpb24oZikgeyByZXR1cm4gZi50aXRsZTsgfSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbCgKKyAgICAgICAgc3RhY2tUcmFjZU5hbWVzLAorICAgICAgICBbJ2MnLCAnYicsICdhJ10pOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2VsZWN0YWJsZV9pdGVtLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NlbGVjdGFibGVfaXRlbS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NlbGVjdGFibGVfaXRlbS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NlbGVjdGFibGVfaXRlbS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NlbGVjdGFibGVfaXRlbV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NlbGVjdGFibGVfaXRlbV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UzNmIzZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvc2VsZWN0YWJsZV9pdGVtX3Rlc3QuaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3RhYmxlX2l0ZW0uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2V2ZW50X3RvX3RyYWNrX21hcC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBFdmVudCA9IHRyLm1vZGVsLkV2ZW50OworICB2YXIgRXZlbnRUb1RyYWNrTWFwID0gdHIudWkudHJhY2tzLkV2ZW50VG9UcmFja01hcDsKKyAgdmFyIFNlbGVjdGFibGVJdGVtID0gdHIubW9kZWwuU2VsZWN0YWJsZUl0ZW07CisgIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOworCisgIHRlc3QoJ2NoZWNrTW9kZWxJdGVtJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlbGVjdGFibGVJdGVtMSA9IG5ldyBTZWxlY3RhYmxlSXRlbSh1bmRlZmluZWQpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzZWxlY3RhYmxlSXRlbTEubW9kZWxJdGVtKTsKKworICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgpOworICAgIHZhciBzZWxlY3RhYmxlSXRlbTIgPSBuZXcgU2VsZWN0YWJsZUl0ZW0oZXZlbnQpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3RhYmxlSXRlbTIubW9kZWxJdGVtLCBldmVudCk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrU2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VsZWN0YWJsZUl0ZW0gPSBuZXcgU2VsZWN0YWJsZUl0ZW0odW5kZWZpbmVkKTsKKworICAgIHNlbGVjdGFibGVJdGVtLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuTk9ORTsKKyAgICBhc3NlcnQuaXNGYWxzZShzZWxlY3RhYmxlSXRlbS5zZWxlY3RlZCk7CisKKyAgICBzZWxlY3RhYmxlSXRlbS5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworICAgIGFzc2VydC5pc1RydWUoc2VsZWN0YWJsZUl0ZW0uc2VsZWN0ZWQpOworCisgICAgc2VsZWN0YWJsZUl0ZW0uc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRDsKKyAgICBhc3NlcnQuaXNGYWxzZShzZWxlY3RhYmxlSXRlbS5zZWxlY3RlZCk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrQWRkVG9TZWxlY3Rpb25fdW5kZWZpbmVkTW9kZWxJdGVtJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlbGVjdGFibGVJdGVtID0gbmV3IFNlbGVjdGFibGVJdGVtKHVuZGVmaW5lZCk7CisgICAgdmFyIHNlbGVjdGlvbiA9IFtdOworICAgIHNlbGVjdGFibGVJdGVtLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbGVjdGlvbiwgMCk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrQWRkVG9TZWxlY3Rpb25fZGVmaW5lZE1vZGVsSXRlbScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgpOworICAgIHZhciBzZWxlY3RhYmxlSXRlbSA9IG5ldyBTZWxlY3RhYmxlSXRlbShldmVudCk7CisgICAgdmFyIHNlbGVjdGlvbiA9IFtdOworICAgIHNlbGVjdGFibGVJdGVtLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbGVjdGlvbiwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvblswXSwgZXZlbnQpOworICB9KTsKKworICB0ZXN0KCdjaGVja0FkZFRvVHJhY2tNYXBfdW5kZWZpbmVkTW9kZWxJdGVtJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlbGVjdGFibGVJdGVtID0gbmV3IFNlbGVjdGFibGVJdGVtKHVuZGVmaW5lZCk7CisgICAgdmFyIGV2ZW50VG9UcmFja01hcCA9IG5ldyBFdmVudFRvVHJhY2tNYXAoKTsKKyAgICB2YXIgdHJhY2sgPSB7fTsKKyAgICBzZWxlY3RhYmxlSXRlbS5hZGRUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCwgdHJhY2spOworICAgIGFzc2VydC5sZW5ndGhPZihPYmplY3Qua2V5cyhldmVudFRvVHJhY2tNYXApLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tBZGRUb1RyYWNrTWFwX2RlZmluZWRNb2RlbEl0ZW0nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoKTsKKyAgICB2YXIgc2VsZWN0YWJsZUl0ZW0gPSBuZXcgU2VsZWN0YWJsZUl0ZW0oZXZlbnQpOworICAgIHZhciBldmVudFRvVHJhY2tNYXAgPSBuZXcgRXZlbnRUb1RyYWNrTWFwKCk7CisgICAgdmFyIHRyYWNrID0ge307CisgICAgc2VsZWN0YWJsZUl0ZW0uYWRkVG9UcmFja01hcChldmVudFRvVHJhY2tNYXAsIHRyYWNrKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoT2JqZWN0LmtleXMoZXZlbnRUb1RyYWNrTWFwKSwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50VG9UcmFja01hcFtldmVudC5ndWlkXSwgdHJhY2spOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvc2VsZWN0aW9uX3N0YXRlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NsaWNlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NsaWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIwMDhlMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvc2xpY2UuaHRtbApAQCAtMCwwICsxLDI0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aW1lZF9ldmVudC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBTbGljZSBjbGFzcy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIFNsaWNlIHJlcHJlc2VudHMgYW4gaW50ZXJ2YWwgb2YgdGltZSBwbHVzIHBhcmFtZXRlcnMgYXNzb2NpYXRlZAorICAgKiB3aXRoIHRoYXQgaW50ZXJ2YWwuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gU2xpY2UoY2F0ZWdvcnksIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgYXJncywgb3B0X2R1cmF0aW9uLAorICAgICAgICAgICAgICAgICBvcHRfY3B1U3RhcnQsIG9wdF9jcHVEdXJhdGlvbiwgb3B0X2FyZ3NTdHJpcHBlZCkgeworICAgIHRyLm1vZGVsLlRpbWVkRXZlbnQuY2FsbCh0aGlzLCBzdGFydCk7CisKKyAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnkgfHwgJyc7CisgICAgdGhpcy50aXRsZSA9IHRpdGxlOworICAgIHRoaXMuY29sb3JJZCA9IGNvbG9ySWQ7CisgICAgdGhpcy5hcmdzID0gYXJnczsKKyAgICB0aGlzLnN0YXJ0U3RhY2tGcmFtZSA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmVuZFN0YWNrRnJhbWUgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5kaWROb3RGaW5pc2ggPSBmYWxzZTsKKyAgICB0aGlzLmluRmxvd0V2ZW50cyA9IFtdOworICAgIHRoaXMub3V0Rmxvd0V2ZW50cyA9IFtdOworICAgIHRoaXMuc3ViU2xpY2VzID0gW107CisgICAgdGhpcy5zZWxmVGltZSA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmNwdVNlbGZUaW1lID0gdW5kZWZpbmVkOworICAgIHRoaXMuaW1wb3J0YW50ID0gZmFsc2U7CisgICAgdGhpcy5wYXJlbnRDb250YWluZXIgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5hcmdzU3RyaXBwZWQgPSBmYWxzZTsKKworICAgIC8vIHBhcmVudFNsaWNlIGFuZCBpc1RvcExldmVsIHdpbGwgYmUgc2V0IGJ5IFNsaWNlR3JvdXAuCisgICAgdGhpcy5wYXJlbnRTbGljZSA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmlzVG9wTGV2ZWwgPSBmYWxzZTsKKyAgICAvLyBBZnRlciBTbGljZUdyb3VwIHByb2Nlc3NlcyBTbGljZXMsIGlzVG9wTGV2ZWwgc2hvdWxkIGJlIGVxdWl2YWxlbnQgdG8KKyAgICAvLyAhcGFyZW50U2xpY2UuCisKKyAgICBpZiAob3B0X2R1cmF0aW9uICE9PSB1bmRlZmluZWQpCisgICAgICB0aGlzLmR1cmF0aW9uID0gb3B0X2R1cmF0aW9uOworCisgICAgaWYgKG9wdF9jcHVTdGFydCAhPT0gdW5kZWZpbmVkKQorICAgICAgdGhpcy5jcHVTdGFydCA9IG9wdF9jcHVTdGFydDsKKworICAgIGlmIChvcHRfY3B1RHVyYXRpb24gIT09IHVuZGVmaW5lZCkKKyAgICAgIHRoaXMuY3B1RHVyYXRpb24gPSBvcHRfY3B1RHVyYXRpb247CisKKyAgICBpZiAob3B0X2FyZ3NTdHJpcHBlZCAhPT0gdW5kZWZpbmVkKQorICAgICAgdGhpcy5hcmdzU3RyaXBwZWQgPSB0cnVlOworICB9CisKKyAgU2xpY2UucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuVGltZWRFdmVudC5wcm90b3R5cGUsCisKKworICAgIGdldCBhbmFseXNpc1R5cGVOYW1lKCkgeworICAgICAgcmV0dXJuIHRoaXMudGl0bGU7CisgICAgfSwKKworICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgeworICAgICAgcmV0dXJuICdTbGljZSAnICsgdGhpcy50aXRsZSArICcgYXQgJyArCisgICAgICAgICAgdHIuYi51bml0cy5UaW1lU3RhbXAuZm9ybWF0KHRoaXMuc3RhcnQpOworICAgIH0sCisKKyAgICBmaW5kRGVzY2VuZGVudFNsaWNlOiBmdW5jdGlvbih0YXJnZXRUaXRsZSkgeworICAgICAgaWYgKCF0aGlzLnN1YlNsaWNlcykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN1YlNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAodGhpcy5zdWJTbGljZXNbaV0udGl0bGUgPT0gdGFyZ2V0VGl0bGUpCisgICAgICAgICAgcmV0dXJuIHRoaXMuc3ViU2xpY2VzW2ldOworICAgICAgICB2YXIgc2xpY2UgPSB0aGlzLnN1YlNsaWNlc1tpXS5maW5kRGVzY2VuZGVudFNsaWNlKHRhcmdldFRpdGxlKTsKKyAgICAgICAgaWYgKHNsaWNlKSByZXR1cm4gc2xpY2U7CisgICAgICB9CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgbW9zdFRvcExldmVsU2xpY2UoKSB7CisgICAgICB2YXIgY3VyU2xpY2UgPSB0aGlzOworICAgICAgd2hpbGUgKGN1clNsaWNlLnBhcmVudFNsaWNlKQorICAgICAgICBjdXJTbGljZSA9IGN1clNsaWNlLnBhcmVudFNsaWNlOworCisgICAgICByZXR1cm4gY3VyU2xpY2U7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIE9idGFpbnMgYWxsIHN1YnNlcXVlbnQgc2xpY2VzIG9mIHRoaXMgc2xpY2UuCisgICAgICoKKyAgICAgKiBTdWJzZXF1ZW50IHNsaWNlcyBhcmUgc2xpY2VzIHRoYXQgZ2V0IGV4ZWN1dGVkIGFmdGVyIGEgcGFydGljdWxhcgorICAgICAqIHNsaWNlLCBpLmUuLCBhbGwgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBjYWxsZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgb25lLgorICAgICAqCisgICAgICogRm9yIGluc3RhbmNlLCBFLml0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzKCkgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlOgorICAgICAqIFsgICAgIEEgICAgICAgICAgXQorICAgICAqIFsgQl1bICBEICAgXVsgRyAgXQorICAgICAqICBbQ10gW0VdW0ZdICBbSF0KKyAgICAgKiB3aWxsIHBhc3MgRiwgRywgdGhlbiBIIHRvIHRoZSBwcm92aWRlZCBjYWxsYmFjay4KKyAgICAgKgorICAgICAqIFRoZSByZWFzb24gd2UgbmVlZCBzdWJzZXF1ZW50IHNsaWNlcyBvZiBhIHBhcnRpY3VsYXIgc2xpY2UgaXMgdGhhdAorICAgICAqIHdoZW4gdGhlcmUgaXMgZmxvdyBldmVudCBnb2VzIGludG8sIGUuZy4sIEUsIHdlIG9ubHkgd2FudCB0byBoaWdobGlnaHQKKyAgICAgKiBFJ3Mgc3Vic2VxdWVudCBzbGljZXMgdG8gaW5kaWNhdGUgdGhlIGV4ZWN1dGlvbiBvcmRlci4KKyAgICAgKgorICAgICAqIFRoZSBpZGVhIHRvIGNhbGN1bGF0ZSB0aGUgc3Vic2VxdWVudCBzbGljZXMgb2Ygc2xpY2UgRSBpcyB0byB2aWV3CisgICAgICogdGhlIHNsaWNlIGdyb3VwIGFzIGEgdHJlZSB3aGVyZSB0aGUgdG9wLWxldmVsIHNsaWNlIEEgaXMgdGhlIHJvb3Qgbm9kZS4KKyAgICAgKiBUaGUgcHJlb3JkZXIgZGVwdGgtZmlyc3Qtc2VhcmNoIChERlMpIG9yZGVyIGlzIG5hdHVyYWxseSBlcXVpdmFsZW50CisgICAgICogdG8gdGhlIGZ1bmN0aW9uIGNhbGwgb3JkZXIuIFdlIGp1c3QgbmVlZCB0byBwZXJmb3JtIGEgREZTLCBhbmQgc3RhcnQKKyAgICAgKiByZWNvcmRpbmcgdGhlIHNsaWNlcyBhZnRlciB3ZSBzZWUgdGhlIG9jY3VyYW5jZSBvZiBFLgorICAgICAqLworICAgIGl0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzOiBmdW5jdGlvbihjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIHZhciBwYXJlbnRTdGFjayA9IFtdOworICAgICAgdmFyIHN0YXJ0ZWQgPSBmYWxzZTsKKworICAgICAgLy8gZ2V0IHRoZSByb290IG5vZGUgYW5kIHB1c2ggaXQgdG8gdGhlIERGUyBzdGFjaworICAgICAgdmFyIHRvcG1vc3RTbGljZSA9IHRoaXMubW9zdFRvcExldmVsU2xpY2U7CisgICAgICBwYXJlbnRTdGFjay5wdXNoKHRvcG1vc3RTbGljZSk7CisKKyAgICAgIC8vIFVzaW5nIHRoZSBzdGFjayB0byBwZXJmb3JtIERGUworICAgICAgd2hpbGUgKHBhcmVudFN0YWNrLmxlbmd0aCAhPT0gMCkgeworICAgICAgICB2YXIgY3VyU2xpY2UgPSBwYXJlbnRTdGFjay5wb3AoKTsKKworICAgICAgICBpZiAoc3RhcnRlZCkKKyAgICAgICAgICBjYWxsYmFjay5jYWxsKG9wdF90aGlzLCBjdXJTbGljZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBzdGFydGVkID0gKGN1clNsaWNlLmd1aWQgPT09IHRoaXMuZ3VpZCk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IGN1clNsaWNlLnN1YlNsaWNlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgIHBhcmVudFN0YWNrLnB1c2goY3VyU2xpY2Uuc3ViU2xpY2VzW2ldKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBnZXQgc3Vic2VxdWVudFNsaWNlcygpIHsKKyAgICAgIHZhciByZXMgPSBbXTsKKworICAgICAgdGhpcy5pdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlcyhmdW5jdGlvbihzdWJzZXFTbGljZSkgeworICAgICAgICByZXMucHVzaChzdWJzZXFTbGljZSk7CisgICAgICB9KTsKKworICAgICAgcmV0dXJuIHJlczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogT2J0YWlucyB0aGUgcGFyZW50cyBvZiBhIHNsaWNlLCBmcm9tIHRoZSBtb3N0IGltbWVkaWF0ZSB0byB0aGUgcm9vdC4KKyAgICAgKgorICAgICAqIEZvciBpbnN0YW5jZSwgRS5pdGVyYXRlQWxsQW5jZXN0b3JzKCkgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlOgorICAgICAqIFsgICAgIEEgICAgICAgICAgXQorICAgICAqIFsgQl1bICBEICAgXVsgRyAgXQorICAgICAqICBbQ10gW0VdW0ZdICBbSF0KKyAgICAgKiB3aWxsIHBhc3MgRCwgdGhlbiBBIHRvIHRoZSBwcm92aWRlZCBjYWxsYmFjaywgaW4gdGhlIG9yZGVyIGZyb20gdGhlCisgICAgICogbGVhdmVzIHRvIHRoZSByb290LgorICAgICAqLworICAgIGl0ZXJhdGVBbGxBbmNlc3RvcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgdmFyIGN1clNsaWNlID0gdGhpczsKKworICAgICAgd2hpbGUgKGN1clNsaWNlLnBhcmVudFNsaWNlKSB7CisgICAgICAgIGN1clNsaWNlID0gY3VyU2xpY2UucGFyZW50U2xpY2U7CisgICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIGN1clNsaWNlKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZ2V0IGFuY2VzdG9yU2xpY2VzKCkgeworICAgICAgdmFyIHJlcyA9IFtdOworCisgICAgICB0aGlzLml0ZXJhdGVBbGxBbmNlc3RvcnMoZnVuY3Rpb24oYW5jZXN0b3IpIHsKKyAgICAgICAgcmVzLnB1c2goYW5jZXN0b3IpOworICAgICAgfSk7CisKKyAgICAgIHJldHVybiByZXM7CisgICAgfSwKKworICAgIGl0ZXJhdGVFbnRpcmVIaWVyYXJjaHk6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgdmFyIG1vc3RUb3BMZXZlbFNsaWNlID0gdGhpcy5tb3N0VG9wTGV2ZWxTbGljZTsKKyAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIG1vc3RUb3BMZXZlbFNsaWNlKTsKKyAgICAgIG1vc3RUb3BMZXZlbFNsaWNlLml0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisgICAgfSwKKworICAgIGdldCBlbnRpcmVIaWVyYXJjaHkoKSB7CisgICAgICB2YXIgcmVzID0gW107CisKKyAgICAgIHRoaXMuaXRlcmF0ZUVudGlyZUhpZXJhcmNoeShmdW5jdGlvbihzbGljZSkgeworICAgICAgICByZXMucHVzaChzbGljZSk7CisgICAgICB9KTsKKworICAgICAgcmV0dXJuIHJlczsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIHNsaWNlLCBhbmQgaXRzIGFuY2VzdG9yIGFuZCBzdWJzZXF1ZW50IHNsaWNlcy4KKyAgICAgKgorICAgICAqIEZvciBpbnN0YW5jZSwgRS5hbmNlc3RvckFuZFN1YnNlcXVlbnRTbGljZXMgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlOgorICAgICAqIFsgICAgIEEgICAgICAgICAgXQorICAgICAqIFsgQl1bICBEICAgXVsgRyAgXQorICAgICAqICBbQ10gW0VdW0ZdICBbSF0KKyAgICAgKiB3aWxsIHJldHVybiBFLCBELCBBLCBGLCBHLCBhbmQgSCwgd2hlcmUgRSBpcyBpdHNlbGYsIEQgYW5kIEEgYXJlCisgICAgICogRSdzIGFuY2VzdG9ycywgYW5kIEYsIEcsIGFuZCBIIGFyZSBzdWJzZXF1ZW50IHNsaWNlcyBvZiBFCisgICAgICovCisgICAgZ2V0IGFuY2VzdG9yQW5kU3Vic2VxdWVudFNsaWNlcygpIHsKKyAgICAgIHZhciByZXMgPSBbXTsKKworICAgICAgcmVzLnB1c2godGhpcyk7CisKKyAgICAgIHRoaXMuaXRlcmF0ZUFsbEFuY2VzdG9ycyhmdW5jdGlvbihhU2xpY2UpIHsKKyAgICAgICAgcmVzLnB1c2goYVNsaWNlKTsKKyAgICAgIH0pOworCisgICAgICB0aGlzLml0ZXJhdGVBbGxTdWJzZXF1ZW50U2xpY2VzKGZ1bmN0aW9uKHNTbGljZSkgeworICAgICAgICByZXMucHVzaChzU2xpY2UpOworICAgICAgfSk7CisKKyAgICAgIHJldHVybiByZXM7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxEZXNjZW5kZW50czogZnVuY3Rpb24oY2FsbGJhY2ssIG9wdF90aGlzKSB7CisgICAgICB0aGlzLnN1YlNsaWNlcy5mb3JFYWNoKGNhbGxiYWNrLCBvcHRfdGhpcyk7CisgICAgICB0aGlzLnN1YlNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHN1YlNsaWNlKSB7CisgICAgICAgIHN1YlNsaWNlLml0ZXJhdGVBbGxEZXNjZW5kZW50cyhjYWxsYmFjaywgb3B0X3RoaXMpOworICAgICAgfSwgb3B0X3RoaXMpOworICAgIH0sCisKKyAgICBnZXQgZGVzY2VuZGVudFNsaWNlcygpIHsKKyAgICAgIHZhciByZXMgPSBbXTsKKworICAgICAgdGhpcy5pdGVyYXRlQWxsRGVzY2VuZGVudHMoZnVuY3Rpb24oZGVzKSB7CisgICAgICAgIHJlcy5wdXNoKGRlcyk7CisgICAgICB9KTsKKworICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisKKyAgfTsKKworICByZXR1cm4geworICAgIFNsaWNlOiBTbGljZQorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9zbGljZV9ncm91cC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC9zbGljZV9ncm91cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NTY3ZmEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NsaWNlX2dyb3VwLmh0bWwKQEAgLTAsMCArMSw2NTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X2NvbnRhaW5lci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFNsaWNlR3JvdXAgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKKworICBmdW5jdGlvbiBnZXRTbGljZUxvKHMpIHsKKyAgICByZXR1cm4gcy5zdGFydDsKKyAgfQorCisgIGZ1bmN0aW9uIGdldFNsaWNlSGkocykgeworICAgIHJldHVybiBzLmVuZDsKKyAgfQorCisgIC8qKgorICAgKiBBIGdyb3VwIG9mIFNsaWNlcywgcGx1cyBjb2RlIHRvIGNyZWF0ZSB0aGVtIGZyb20gQi9FIGV2ZW50cywgYXMKKyAgICogd2VsbCBhcyBhcnJhbmdlIHRoZW0gaW50byBzdWJSb3dzLgorICAgKgorICAgKiBEbyBub3QgbXV0YXRlIHRoZSBzbGljZXMgYXJyYXkgZGlyZWN0bHkuIE1vZGlmeSBpdCBvbmx5IGJ5CisgICAqIFNsaWNlR3JvdXAgbXV0YXRpb24gbWV0aG9kcy4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBwYXJhbSB7ZnVuY3Rpb24obmV3OlNsaWNlLCBjYXRlZ29yeSwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzKT19CisgICAqICAgICBvcHRfc2xpY2VDb25zdHJ1Y3RvciBUaGUgY29uc3RydWN0b3IgdG8gdXNlIHdoZW4gY3JlYXRpbmcgc2xpY2VzLgorICAgKiBAZXh0ZW5kcyB7dHIubW9kZWwuRXZlbnRDb250YWluZXJ9CisgICAqLworICBmdW5jdGlvbiBTbGljZUdyb3VwKHBhcmVudENvbnRhaW5lciwgb3B0X3NsaWNlQ29uc3RydWN0b3IsIG9wdF9uYW1lKSB7CisgICAgdHIubW9kZWwuRXZlbnRDb250YWluZXIuY2FsbCh0aGlzKTsKKyAgICB0aGlzLmd1aWRfID0gdHIuYi5HVUlELmFsbG9jYXRlKCk7CisKKyAgICB0aGlzLnBhcmVudENvbnRhaW5lcl8gPSBwYXJlbnRDb250YWluZXI7CisKKyAgICB2YXIgc2xpY2VDb25zdHJ1Y3RvciA9IG9wdF9zbGljZUNvbnN0cnVjdG9yIHx8IFNsaWNlOworICAgIHRoaXMuc2xpY2VDb25zdHJ1Y3RvciA9IHNsaWNlQ29uc3RydWN0b3I7CisKKyAgICB0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXyA9IFtdOworCisgICAgdGhpcy5zbGljZXMgPSBbXTsKKyAgICB0aGlzLnRvcExldmVsU2xpY2VzID0gW107CisgICAgdGhpcy5oYXZlVG9wTGV2ZWxTbGljZXNCZWVuQnVpbHQgPSBmYWxzZTsKKyAgICB0aGlzLm5hbWVfID0gb3B0X25hbWU7CisKKyAgICBpZiAodGhpcy5tb2RlbCA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdTbGljZUdyb3VwIG11c3QgaGF2ZSBtb2RlbCBkZWZpbmVkLicpOworICB9CisKKyAgU2xpY2VHcm91cC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudENvbnRhaW5lci5wcm90b3R5cGUsCisKKyAgICBnZXQgZ3VpZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmd1aWRfOworICAgIH0sCisKKyAgICBnZXQgcGFyZW50Q29udGFpbmVyKCkgeworICAgICAgcmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXzsKKyAgICB9LAorCisgICAgZ2V0IG1vZGVsKCkgeworICAgICAgcmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXy5tb2RlbDsKKyAgICB9LAorCisgICAgZ2V0IHN0YWJsZUlkKCkgeworICAgICAgcmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyXy5zdGFibGVJZCArICcuU2xpY2VHcm91cCc7CisgICAgfSwKKworICAgIGdldFNldHRpbmdzS2V5OiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5uYW1lXykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHZhciBwYXJlbnRLZXkgPSB0aGlzLnBhcmVudENvbnRhaW5lcl8uZ2V0U2V0dGluZ3NLZXkoKTsKKyAgICAgIGlmICghcGFyZW50S2V5KQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHBhcmVudEtleSArICcuJyArIHRoaXMubmFtZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7TnVtYmVyfSBUaGUgbnVtYmVyIG9mIHNsaWNlcyBpbiB0aGlzIGdyb3VwLgorICAgICAqLworICAgIGdldCBsZW5ndGgoKSB7CisgICAgICByZXR1cm4gdGhpcy5zbGljZXMubGVuZ3RoOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBwdXNoZXMgdGhlIHByb3ZpZGVkIHNsaWNlIG9udG8gdGhlIHNsaWNlcyBhcnJheS4KKyAgICAgKiBAcGFyYW0ge1NsaWNlfSBzbGljZSBUaGUgc2xpY2UgdG8gYmUgYWRkZWQgdG8gdGhlIHNsaWNlcyBhcnJheS4KKyAgICAgKi8KKyAgICBwdXNoU2xpY2U6IGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICB0aGlzLmhhdmVUb3BMZXZlbFNsaWNlc0JlZW5CdWlsdCA9IGZhbHNlOworICAgICAgc2xpY2UucGFyZW50Q29udGFpbmVyID0gdGhpcy5wYXJlbnRDb250YWluZXJfOworICAgICAgdGhpcy5zbGljZXMucHVzaChzbGljZSk7CisgICAgICByZXR1cm4gc2xpY2U7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEhlbHBlciBmdW5jdGlvbiB0aGF0IHB1c2hlcyB0aGUgcHJvdmlkZWQgc2xpY2VzIG9udG8gdGhlIHNsaWNlcyBhcnJheS4KKyAgICAgKiBAcGFyYW0ge0FycmF5LjxTbGljZT59IHNsaWNlcyBBbiBhcnJheSBvZiBzbGljZXMgdG8gYmUgYWRkZWQuCisgICAgICovCisgICAgcHVzaFNsaWNlczogZnVuY3Rpb24oc2xpY2VzKSB7CisgICAgICB0aGlzLmhhdmVUb3BMZXZlbFNsaWNlc0JlZW5CdWlsdCA9IGZhbHNlOworICAgICAgc2xpY2VzLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgc2xpY2UucGFyZW50Q29udGFpbmVyID0gdGhpcy5wYXJlbnRDb250YWluZXJfOworICAgICAgICB0aGlzLnNsaWNlcy5wdXNoKHNsaWNlKTsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBPcGVucyBhIG5ldyBzbGljZSBpbiB0aGUgZ3JvdXAncyBzbGljZXMuCisgICAgICoKKyAgICAgKiBDYWxscyB0byBiZWdpblNsaWNlIGFuZAorICAgICAqIGVuZFNsaWNlIG11c3QgYmUgbWFkZSB3aXRoIG5vbi1tb25vdG9uaWNhbGx5LWRlY3JlYXNpbmcgdGltZXN0YW1wcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB7U3RyaW5nfSBjYXRlZ29yeSBDYXRlZ29yeSBuYW1lIG9mIHRoZSBzbGljZSB0byBhZGQuCisgICAgICogQHBhcmFtIHtTdHJpbmd9IHRpdGxlIFRpdGxlIG9mIHRoZSBzbGljZSB0byBhZGQuCisgICAgICogQHBhcmFtIHtOdW1iZXJ9IHRzIFRoZSB0aW1ldHNhbXAgb2YgdGhlIHNsaWNlLCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHBhcmFtIHtPYmplY3QuPHN0cmluZywgT2JqZWN0Pj19IG9wdF9hcmdzIEFyZ3VtZW50cyBhc3NvY2lhdGVkIHdpdGgKKyAgICAgKiB0aGUgc2xpY2UuCisgICAgICogQHBhcmFtIHtOdW1iZXI9fSBvcHRfY29sb3JJZCBUaGUgY29sb3Igb2YgdGhlIHNsaWNlLCBkZWZpbmVkIGJ5CisgICAgICogaXRzIHBhbGV0dGUgaWQgKHNlZSB1aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sKS4KKyAgICAgKi8KKyAgICBiZWdpblNsaWNlOiBmdW5jdGlvbihjYXRlZ29yeSwgdGl0bGUsIHRzLCBvcHRfYXJncywgb3B0X3R0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfYXJnc1N0cmlwcGVkLCBvcHRfY29sb3JJZCkgeworICAgICAgaWYgKHRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCkgeworICAgICAgICB2YXIgcHJldlNsaWNlID0gdGhpcy5vcGVuUGFydGlhbFNsaWNlc19bCisgICAgICAgICAgICB0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGggLSAxXTsKKyAgICAgICAgaWYgKHRzIDwgcHJldlNsaWNlLnN0YXJ0KQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2xpY2VzIG11c3QgYmUgYWRkZWQgaW4gaW5jcmVhc2luZyB0aW1lc3RhbXAgb3JkZXInKTsKKyAgICAgIH0KKworICAgICAgdmFyIGNvbG9ySWQgPSBvcHRfY29sb3JJZCB8fAorICAgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKHRpdGxlKTsKKyAgICAgIHZhciBzbGljZSA9IG5ldyB0aGlzLnNsaWNlQ29uc3RydWN0b3IoY2F0ZWdvcnksIHRpdGxlLCBjb2xvcklkLCB0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X2FyZ3MgPyBvcHRfYXJncyA6IHt9LCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfdHRzLCB1bmRlZmluZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9hcmdzU3RyaXBwZWQpOworICAgICAgdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ucHVzaChzbGljZSk7CisgICAgICBzbGljZS5kaWROb3RGaW5pc2ggPSB0cnVlOworICAgICAgdGhpcy5wdXNoU2xpY2Uoc2xpY2UpOworCisgICAgICByZXR1cm4gc2xpY2U7CisgICAgfSwKKworICAgIGlzVGltZXN0YW1wVmFsaWRGb3JCZWdpbk9yRW5kOiBmdW5jdGlvbih0cykgeworICAgICAgaWYgKCF0aGlzLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGgpCisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgdmFyIHRvcCA9IHRoaXMub3BlblBhcnRpYWxTbGljZXNfW3RoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCAtIDFdOworICAgICAgcmV0dXJuIHRzID49IHRvcC5zdGFydDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7TnVtYmVyfSBUaGUgbnVtYmVyIG9mIGJlZ2luU2xpY2VzIGZvciB3aGljaCBhbiBlbmRTbGljZSBoYXMgbm90CisgICAgICogYmVlbiBpc3N1ZWQuCisgICAgICovCisgICAgZ2V0IG9wZW5TbGljZUNvdW50KCkgeworICAgICAgcmV0dXJuIHRoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aDsKKyAgICB9LAorCisgICAgZ2V0IG1vc3RSZWNlbnRseU9wZW5lZFBhcnRpYWxTbGljZSgpIHsKKyAgICAgIGlmICghdGhpcy5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHRoaXMub3BlblBhcnRpYWxTbGljZXNfW3RoaXMub3BlblBhcnRpYWxTbGljZXNfLmxlbmd0aCAtIDFdOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBFbmRzIHRoZSBsYXN0IGJlZ3VuIHNsaWNlIGluIHRoaXMgZ3JvdXAgYW5kIHB1c2hlcyBpdCBvbnRvIHRoZSBzbGljZQorICAgICAqIGFycmF5LgorICAgICAqCisgICAgICogQHBhcmFtIHtOdW1iZXJ9IHRzIFRpbWVzdGFtcCB3aGVuIHRoZSBzbGljZSBlbmRlZAorICAgICAqIEBwYXJhbSB7TnVtYmVyPX0gb3B0X2NvbG9ySWQgVGhlIGNvbG9yIG9mIHRoZSBzbGljZSwgZGVmaW5lZCBieQorICAgICAqIGl0cyBwYWxldHRlIGlkIChzZWUgdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCkuCisgICAgICogQHJldHVybiB7U2xpY2V9IHNsaWNlLgorICAgICAqLworICAgIGVuZFNsaWNlOiBmdW5jdGlvbih0cywgb3B0X3R0cywgb3B0X2NvbG9ySWQpIHsKKyAgICAgIGlmICghdGhpcy5vcGVuU2xpY2VDb3VudCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbmRTbGljZSBjYWxsZWQgd2l0aG91dCBhbiBvcGVuIHNsaWNlJyk7CisKKyAgICAgIHZhciBzbGljZSA9IHRoaXMub3BlblBhcnRpYWxTbGljZXNfW3RoaXMub3BlblNsaWNlQ291bnQgLSAxXTsKKyAgICAgIHRoaXMub3BlblBhcnRpYWxTbGljZXNfLnNwbGljZSh0aGlzLm9wZW5TbGljZUNvdW50IC0gMSwgMSk7CisgICAgICBpZiAodHMgPCBzbGljZS5zdGFydCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTbGljZSAnICsgc2xpY2UudGl0bGUgKworICAgICAgICAgICAgICAgICAgICAgICAgJyBlbmQgdGltZSBpcyBiZWZvcmUgaXRzIHN0YXJ0LicpOworCisgICAgICBzbGljZS5kdXJhdGlvbiA9IHRzIC0gc2xpY2Uuc3RhcnQ7CisgICAgICBzbGljZS5kaWROb3RGaW5pc2ggPSBmYWxzZTsKKyAgICAgIHNsaWNlLmNvbG9ySWQgPSBvcHRfY29sb3JJZCB8fCBzbGljZS5jb2xvcklkOworCisgICAgICBpZiAob3B0X3R0cyAmJiBzbGljZS5jcHVTdGFydCAhPT0gdW5kZWZpbmVkKQorICAgICAgICBzbGljZS5jcHVEdXJhdGlvbiA9IG9wdF90dHMgLSBzbGljZS5jcHVTdGFydDsKKworICAgICAgcmV0dXJuIHNsaWNlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBQdXNoIGEgY29tcGxldGUgZXZlbnQgYXMgYSBTbGljZSBpbnRvIHRoZSBzbGljZSBsaXN0LgorICAgICAqIFRoZSB0aW1lc3RhbXAgY2FuIGJlIGluIGFueSBvcmRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB7U3RyaW5nfSBjYXRlZ29yeSBDYXRlZ29yeSBuYW1lIG9mIHRoZSBzbGljZSB0byBhZGQuCisgICAgICogQHBhcmFtIHtTdHJpbmd9IHRpdGxlIFRpdGxlIG9mIHRoZSBzbGljZSB0byBhZGQuCisgICAgICogQHBhcmFtIHtOdW1iZXJ9IHRzIFRoZSB0aW1ldHNhbXAgb2YgdGhlIHNsaWNlLCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHBhcmFtIHtOdW1iZXJ9IGR1cmF0aW9uIFRoZSBkdXJhdGlvbiBvZiB0aGUgc2xpY2UsIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAcGFyYW0ge09iamVjdC48c3RyaW5nLCBPYmplY3Q+PX0gb3B0X2FyZ3MgQXJndW1lbnRzIGFzc29jaWF0ZWQgd2l0aAorICAgICAqIHRoZSBzbGljZS4KKyAgICAgKiBAcGFyYW0ge051bWJlcj19IG9wdF9jb2xvcklkIFRoZSBjb2xvciBvZiB0aGUgc2xpY2UsIGFzIGRlZmluZWQgYnkKKyAgICAgKiBpdHMgcGFsZXR0ZSBpZCAoc2VlIHVpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwpLgorICAgICAqLworICAgIHB1c2hDb21wbGV0ZVNsaWNlOiBmdW5jdGlvbihjYXRlZ29yeSwgdGl0bGUsIHRzLCBkdXJhdGlvbiwgdHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVEdXJhdGlvbiwgb3B0X2FyZ3MsIG9wdF9hcmdzU3RyaXBwZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9jb2xvcklkKSB7CisgICAgICB2YXIgY29sb3JJZCA9IG9wdF9jb2xvcklkIHx8CisgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcodGl0bGUpOworICAgICAgdmFyIHNsaWNlID0gbmV3IHRoaXMuc2xpY2VDb25zdHJ1Y3RvcihjYXRlZ29yeSwgdGl0bGUsIGNvbG9ySWQsIHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfYXJncyA/IG9wdF9hcmdzIDoge30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uLCB0dHMsIGNwdUR1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfYXJnc1N0cmlwcGVkKTsKKyAgICAgIGlmIChkdXJhdGlvbiA9PT0gdW5kZWZpbmVkKQorICAgICAgICBzbGljZS5kaWROb3RGaW5pc2ggPSB0cnVlOworICAgICAgdGhpcy5wdXNoU2xpY2Uoc2xpY2UpOworICAgICAgcmV0dXJuIHNsaWNlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgYW55IG9wZW4gc2xpY2VzLgorICAgICAqIEBwYXJhbSB7TnVtYmVyPX0gb3B0X21heFRpbWVzdGFtcCBUaGUgZW5kIHRpbWUgdG8gdXNlIGZvciB0aGUgY2xvc2VkCisgICAgICogc2xpY2VzLiBJZiBub3QgcHJvdmlkZWQsCisgICAgICogdGhlIG1heCB0aW1lc3RhbXAgZm9yIHRoaXMgc2xpY2UgaXMgcHJvdmlkZWQuCisgICAgICovCisgICAgYXV0b0Nsb3NlT3BlblNsaWNlczogZnVuY3Rpb24ob3B0X21heFRpbWVzdGFtcCkgeworICAgICAgaWYgKCFvcHRfbWF4VGltZXN0YW1wKSB7CisgICAgICAgIHRoaXMudXBkYXRlQm91bmRzKCk7CisgICAgICAgIG9wdF9tYXhUaW1lc3RhbXAgPSB0aGlzLmJvdW5kcy5tYXg7CisgICAgICB9CisgICAgICBmb3IgKHZhciBzSSA9IDA7IHNJIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBzSSsrKSB7CisgICAgICAgIHZhciBzbGljZSA9IHRoaXMuc2xpY2VzW3NJXTsKKyAgICAgICAgaWYgKHNsaWNlLmRpZE5vdEZpbmlzaCkKKyAgICAgICAgICBzbGljZS5kdXJhdGlvbiA9IG9wdF9tYXhUaW1lc3RhbXAgLSBzbGljZS5zdGFydDsKKyAgICAgIH0KKyAgICAgIHRoaXMub3BlblBhcnRpYWxTbGljZXNfID0gW107CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFNoaWZ0cyBhbGwgdGhlIHRpbWVzdGFtcHMgaW5zaWRlIHRoaXMgZ3JvdXAgZm9yd2FyZCBieSB0aGUgYW1vdW50CisgICAgICogc3BlY2lmaWVkLgorICAgICAqLworICAgIHNoaWZ0VGltZXN0YW1wc0ZvcndhcmQ6IGZ1bmN0aW9uKGFtb3VudCkgeworICAgICAgZm9yICh2YXIgc0kgPSAwOyBzSSA8IHRoaXMuc2xpY2VzLmxlbmd0aDsgc0krKykgeworICAgICAgICB2YXIgc2xpY2UgPSB0aGlzLnNsaWNlc1tzSV07CisgICAgICAgIHNsaWNlLnN0YXJ0ID0gKHNsaWNlLnN0YXJ0ICsgYW1vdW50KTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogVXBkYXRlcyB0aGUgYm91bmRzIGZvciB0aGlzIGdyb3VwIGJhc2VkIG9uIHRoZSBzbGljZXMgaXQgY29udGFpbnMuCisgICAgICovCisgICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpY2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2xpY2VzW2ldLnN0YXJ0KTsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy5zbGljZXNbaV0uZW5kKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgY29weVNsaWNlOiBmdW5jdGlvbihzbGljZSkgeworICAgICAgdmFyIG5ld1NsaWNlID0gbmV3IHRoaXMuc2xpY2VDb25zdHJ1Y3RvcihzbGljZS5jYXRlZ29yeSwgc2xpY2UudGl0bGUsCisgICAgICAgICAgc2xpY2UuY29sb3JJZCwgc2xpY2Uuc3RhcnQsCisgICAgICAgICAgc2xpY2UuYXJncywgc2xpY2UuZHVyYXRpb24sIHNsaWNlLmNwdVN0YXJ0LCBzbGljZS5jcHVEdXJhdGlvbik7CisgICAgICBuZXdTbGljZS5kaWROb3RGaW5pc2ggPSBzbGljZS5kaWROb3RGaW5pc2g7CisgICAgICByZXR1cm4gbmV3U2xpY2U7CisgICAgfSwKKworICAgIGl0ZXJhdGVBbGxFdmVudHNJblRoaXNDb250YWluZXI6IGZ1bmN0aW9uKGV2ZW50VHlwZVByZWRpY2F0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgb3B0X3RoaXMpIHsKKyAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgdGhpcy5zbGljZUNvbnN0cnVjdG9yKSkKKyAgICAgICAgdGhpcy5zbGljZXMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOworICAgIH0sCisKKyAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgIH0sCisKKyAgICBnZXRTbGljZXNPZk5hbWU6IGZ1bmN0aW9uKHRpdGxlKSB7CisgICAgICB2YXIgc2xpY2VzID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpY2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmICh0aGlzLnNsaWNlc1tpXS50aXRsZSA9PSB0aXRsZSkgeworICAgICAgICAgIHNsaWNlcy5wdXNoKHRoaXMuc2xpY2VzW2ldKTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgcmV0dXJuIHNsaWNlczsKKyAgICB9LAorCisgICAgaXRlclNsaWNlc0luVGltZVJhbmdlOiBmdW5jdGlvbihjYWxsYmFjaywgc3RhcnQsIGVuZCkgeworICAgICAgdmFyIHJldCA9IFtdOworICAgICAgdHIuYi5pdGVyYXRlT3ZlckludGVyc2VjdGluZ0ludGVydmFscygKKyAgICAgICAgdGhpcy50b3BMZXZlbFNsaWNlcywKKyAgICAgICAgZnVuY3Rpb24ocykgeyByZXR1cm4gcy5zdGFydDsgfSwKKyAgICAgICAgZnVuY3Rpb24ocykgeyByZXR1cm4gcy5kdXJhdGlvbjsgfSwKKyAgICAgICAgc3RhcnQsCisgICAgICAgIGVuZCwKKyAgICAgICAgZnVuY3Rpb24odG9wTGV2ZWxTbGljZSkgeworICAgICAgICAgIGNhbGxiYWNrKHRvcExldmVsU2xpY2UpOworICAgICAgICAgIHRvcExldmVsU2xpY2UuaXRlcmF0ZUFsbERlc2NlbmRlbnRzKGNhbGxiYWNrKTsKKyAgICAgICAgfSk7CisgICAgICByZXR1cm4gcmV0OworICAgIH0sCisKKyAgICBmaW5kU2xpY2VBdFRzOiBmdW5jdGlvbih0cykgeworICAgICAgaWYgKCF0aGlzLmhhdmVUb3BMZXZlbFNsaWNlc0JlZW5CdWlsdCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3BlJyk7CisgICAgICB2YXIgaSA9IHRyLmIuZmluZEluZGV4SW5Tb3J0ZWRDbG9zZWRJbnRlcnZhbHMoCisgICAgICAgICAgdGhpcy50b3BMZXZlbFNsaWNlcywKKyAgICAgICAgICBnZXRTbGljZUxvLCBnZXRTbGljZUhpLAorICAgICAgICAgIHRzKTsKKyAgICAgIGlmIChpID09IC0xIHx8IGkgPT0gdGhpcy50b3BMZXZlbFNsaWNlcy5sZW5ndGgpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBjdXJTbGljZSA9IHRoaXMudG9wTGV2ZWxTbGljZXNbaV07CisKKyAgICAgIC8vIE5vdyByZWN1cnNlIG9uIHNsaWNlIGxvb2tpbmcgZm9yIHN1YlNsaWNlIG9mIGdpdmVuIHRzLgorICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgdmFyIGkgPSB0ci5iLmZpbmRJbmRleEluU29ydGVkQ2xvc2VkSW50ZXJ2YWxzKAorICAgICAgICAgICAgY3VyU2xpY2Uuc3ViU2xpY2VzLAorICAgICAgICAgICAgZ2V0U2xpY2VMbywgZ2V0U2xpY2VIaSwKKyAgICAgICAgICAgIHRzKTsKKyAgICAgICAgaWYgKGkgPT0gLTEgfHwgaSA9PSBjdXJTbGljZS5zdWJTbGljZXMubGVuZ3RoKQorICAgICAgICAgIHJldHVybiBjdXJTbGljZTsKKyAgICAgICAgY3VyU2xpY2UgPSBjdXJTbGljZS5zdWJTbGljZXNbaV07CisgICAgICB9CisgICAgfSwKKworICAgIGZpbmROZXh0U2xpY2VBZnRlcjogZnVuY3Rpb24odHMsIHJlZkd1aWQpIHsKKyAgICAgIHZhciBpID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAorICAgICAgICAgIHRoaXMuc2xpY2VzLCBnZXRTbGljZUxvLCB0cyk7CisgICAgICBpZiAoaSA9PT0gdGhpcy5zbGljZXMubGVuZ3RoKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgZm9yICg7IGkgPCB0aGlzLnNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgc2xpY2UgPSB0aGlzLnNsaWNlc1tpXTsKKyAgICAgICAgaWYgKHNsaWNlLnN0YXJ0ID4gdHMpCisgICAgICAgICAgcmV0dXJuIHNsaWNlOworICAgICAgICBpZiAoc2xpY2UuZ3VpZCA8PSByZWZHdWlkKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXR1cm4gc2xpY2U7CisgICAgICB9CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Qgc3ViU2xpY2VzIGZvciB0aGlzIGdyb3VwLgorICAgICAqIFBvcHVsYXRlIHRoZSBncm91cCB0b3BMZXZlbFNsaWNlcywgcGFyZW50IHNsaWNlcyBnZXQgYSBzdWJTbGljZXNbXSwKKyAgICAgKiBhIHNlbGZUaHJlYWRUaW1lIGFuZCBhIHNlbGZUaW1lLCBjaGlsZCBzbGljZXMgZ2V0IGEgcGFyZW50U2xpY2UKKyAgICAgKiByZWZlcmVuY2UuCisgICAgICovCisgICAgY3JlYXRlU3ViU2xpY2VzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuaGF2ZVRvcExldmVsU2xpY2VzQmVlbkJ1aWx0ID0gdHJ1ZTsKKyAgICAgIHRoaXMuY3JlYXRlU3ViU2xpY2VzSW1wbF8oKTsKKyAgICAgIGlmICh0aGlzLnBhcmVudENvbnRhaW5lci50aW1lU2xpY2VzKQorICAgICAgICB0aGlzLmFkZENwdVRpbWVUb1N1YnNsaWNlc18odGhpcy5wYXJlbnRDb250YWluZXIudGltZVNsaWNlcyk7CisgICAgICB0aGlzLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICAgIHZhciBzZWxmVGltZSA9IHNsaWNlLmR1cmF0aW9uOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlLnN1YlNsaWNlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICBzZWxmVGltZSAtPSBzbGljZS5zdWJTbGljZXNbaV0uZHVyYXRpb247CisgICAgICAgIHNsaWNlLnNlbGZUaW1lID0gc2VsZlRpbWU7CisKKyAgICAgICAgaWYgKHNsaWNlLmNwdUR1cmF0aW9uID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBjcHVTZWxmVGltZSA9IHNsaWNlLmNwdUR1cmF0aW9uOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlLnN1YlNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIGlmIChzbGljZS5zdWJTbGljZXNbaV0uY3B1RHVyYXRpb24gIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIGNwdVNlbGZUaW1lIC09IHNsaWNlLnN1YlNsaWNlc1tpXS5jcHVEdXJhdGlvbjsKKyAgICAgICAgfQorICAgICAgICBzbGljZS5jcHVTZWxmVGltZSA9IGNwdVNlbGZUaW1lOworICAgICAgfSk7CisgICAgfSwKKyAgICBjcmVhdGVTdWJTbGljZXNJbXBsXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcHJlY2lzaW9uVW5pdCA9IHRoaXMubW9kZWwuaW50cmluc2ljVGltZVVuaXQ7CisKKyAgICAgIGZ1bmN0aW9uIGFkZFNsaWNlSWZCb3VuZHMocm9vdCwgY2hpbGQpIHsKKyAgICAgICAgLy8gQmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlIHN0YXJ0IHRpbWUgb2YgY2hpbGQgaXMgPj0gdGhlIHN0YXJ0IHRpbWUKKyAgICAgICAgLy8gb2YgYWxsIG90aGVyIHNsaWNlcyBzZWVuIHNvIGZhciwgd2UgY2FuIGp1c3QgY2hlY2sgdGhlIGxhc3Qgc2xpY2UKKyAgICAgICAgLy8gb2YgZWFjaCByb3cgZm9yIGJvdW5kaW5nLgorICAgICAgICBpZiAocm9vdC5ib3VuZHMoY2hpbGQsIHByZWNpc2lvblVuaXQpKSB7CisgICAgICAgICAgaWYgKHJvb3Quc3ViU2xpY2VzICYmIHJvb3Quc3ViU2xpY2VzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGlmIChhZGRTbGljZUlmQm91bmRzKHJvb3Quc3ViU2xpY2VzW3Jvb3Quc3ViU2xpY2VzLmxlbmd0aCAtIDFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQpKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgY2hpbGQucGFyZW50U2xpY2UgPSByb290OworICAgICAgICAgIGlmIChyb290LnN1YlNsaWNlcyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgcm9vdC5zdWJTbGljZXMgPSBbXTsKKyAgICAgICAgICByb290LnN1YlNsaWNlcy5wdXNoKGNoaWxkKTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisKKyAgICAgIGlmICghdGhpcy5zbGljZXMubGVuZ3RoKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBvcHMgPSBbXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHRoaXMuc2xpY2VzW2ldLnN1YlNsaWNlcykKKyAgICAgICAgICB0aGlzLnNsaWNlc1tpXS5zdWJTbGljZXMuc3BsaWNlKDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWNlc1tpXS5zdWJTbGljZXMubGVuZ3RoKTsKKyAgICAgICAgb3BzLnB1c2goaSk7CisgICAgICB9CisKKyAgICAgIHZhciBvcmlnaW5hbFNsaWNlcyA9IHRoaXMuc2xpY2VzOworICAgICAgb3BzLnNvcnQoZnVuY3Rpb24oaXgsIGl5KSB7CisgICAgICAgIHZhciB4ID0gb3JpZ2luYWxTbGljZXNbaXhdOworICAgICAgICB2YXIgeSA9IG9yaWdpbmFsU2xpY2VzW2l5XTsKKyAgICAgICAgaWYgKHguc3RhcnQgIT0geS5zdGFydCkKKyAgICAgICAgICByZXR1cm4geC5zdGFydCAtIHkuc3RhcnQ7CisKKyAgICAgICAgLy8gRWxlbWVudHMgZ2V0IGluc2VydGVkIGludG8gdGhlIHNsaWNlcyBhcnJheSBpbiBvcmRlciBvZiB3aGVuIHRoZQorICAgICAgICAvLyBzbGljZXMgc3RhcnQuIEJlY2F1c2Ugc2xpY2VzIG11c3QgYmUgcHJvcGVybHkgbmVzdGVkLCB3ZSBicmVhaworICAgICAgICAvLyBzdGFydC10aW1lIHRpZXMgYnkgYXNzdW1pbmcgdGhhdCB0aGUgZWxlbWVudHMgYXBwZWFyaW5nIGVhcmxpZXIKKyAgICAgICAgLy8gaW4gdGhlIHNsaWNlcyBhcnJheSAoYW5kIHRodXMgZW5kaW5nIGVhcmxpZXIpIHN0YXJ0IGVhcmxpZXIuCisgICAgICAgIHJldHVybiBpeCAtIGl5OworICAgICAgfSk7CisKKyAgICAgIHZhciBzbGljZXMgPSBuZXcgQXJyYXkodGhpcy5zbGljZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3BzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHNsaWNlc1tpXSA9IG9yaWdpbmFsU2xpY2VzW29wc1tpXV07CisgICAgICB9CisKKyAgICAgIC8vIEFjdHVhbGx5IGJ1aWxkIHRoZSBzdWJyb3dzLgorICAgICAgdmFyIHJvb3RTbGljZSA9IHNsaWNlc1swXTsKKyAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMgPSBbXTsKKyAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMucHVzaChyb290U2xpY2UpOworICAgICAgcm9vdFNsaWNlLmlzVG9wTGV2ZWwgPSB0cnVlOworICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBzbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOworICAgICAgICBpZiAoIWFkZFNsaWNlSWZCb3VuZHMocm9vdFNsaWNlLCBzbGljZSkpIHsKKyAgICAgICAgICByb290U2xpY2UgPSBzbGljZTsKKyAgICAgICAgICByb290U2xpY2UuaXNUb3BMZXZlbCA9IHRydWU7CisgICAgICAgICAgdGhpcy50b3BMZXZlbFNsaWNlcy5wdXNoKHJvb3RTbGljZSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gS2VlcCB0aGUgc2xpY2VzIGluIHNvcnRlZCBmb3JtLgorICAgICAgdGhpcy5zbGljZXMgPSBzbGljZXM7CisgICAgfSwKKyAgICBhZGRDcHVUaW1lVG9TdWJzbGljZXNfOiBmdW5jdGlvbih0aW1lU2xpY2VzKSB7CisgICAgICB2YXIgU0NIRURVTElOR19TVEFURSA9IHRyLm1vZGVsLlNDSEVEVUxJTkdfU1RBVEU7CisgICAgICB2YXIgc2xpY2VJZHggPSAwOworICAgICAgdGltZVNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHRpbWVTbGljZSkgeworICAgICAgICBpZiAodGltZVNsaWNlLnNjaGVkdWxpbmdTdGF0ZSA9PSBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcpIHsKKyAgICAgICAgICB3aGlsZSAoc2xpY2VJZHggPCB0aGlzLnRvcExldmVsU2xpY2VzLmxlbmd0aCkgeworICAgICAgICAgICAgaWYgKHRoaXMuYWRkQ3B1VGltZVRvU3Vic2xpY2VfKHRoaXMudG9wTGV2ZWxTbGljZXNbc2xpY2VJZHhdLAorICAgICAgICAgICAgICAgIHRpbWVTbGljZSkpIHsKKyAgICAgICAgICAgICAgLy8gVGhlIGN1cnJlbnQgdG9wLWxldmVsIHNsaWNlIGFuZCBjaGlsZHJlbiBhcmUgZnVsbHkKKyAgICAgICAgICAgICAgLy8gYWNjb3VudGVkIGZvciwgcHJvY2VlZCB0byBuZXh0IHRvcC1sZXZlbCBzbGljZS4KKyAgICAgICAgICAgICAgc2xpY2VJZHgrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIC8vIFRoZSBjdXJyZW50IHRvcC1sZXZlbCBydW5zIGJleW9uZCB0aGUgdGltZSBzbGljZSwgYnJlYWsgb3V0CisgICAgICAgICAgICAgIC8vIHNvIHdlIGNhbiBwb3RlbnRpYWxseSBhZGQgbW9yZSB0aW1lIHNsaWNlcyB0byBpdAorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisgICAgLyogQWRkIHJ1bi10aW1lIG9mIHRoaXMgdGltZVNsaWNlIHRvIHRoZSBwYXNzZWQgaW4gc2xpY2UKKyAgICAgKiBhbmQgYWxsIG9mIGl0J3MgY2hpbGRyZW4gKHJlY3Vyc2l2ZWx5KS4KKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNsaWNlIGVuZHMgYmVmb3JlIG9yIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICogdGltZSBzbGljZSwgc2lnbmFsaW5nIHdlIGFyZSBkb25lIHdpdGggdGhpcyBzbGljZS4KKyAgICAgKi8KKyAgICBhZGRDcHVUaW1lVG9TdWJzbGljZV86IGZ1bmN0aW9uKHNsaWNlLCB0aW1lU2xpY2UpIHsKKyAgICAgIC8vIE1ha2Ugc3VyZSB0aGV5IG92ZXJsYXAKKyAgICAgIGlmIChzbGljZS5zdGFydCA+IHRpbWVTbGljZS5lbmQgfHwgc2xpY2UuZW5kIDwgdGltZVNsaWNlLnN0YXJ0KQorICAgICAgICByZXR1cm4gc2xpY2UuZW5kIDw9IHRpbWVTbGljZS5lbmQ7CisKKyAgICAgIC8vIENvbXB1dGUgYWN0dWFsIG92ZXJsYXAKKyAgICAgIHZhciBkdXJhdGlvbiA9IHRpbWVTbGljZS5kdXJhdGlvbjsKKyAgICAgIGlmIChzbGljZS5zdGFydCA+IHRpbWVTbGljZS5zdGFydCkKKyAgICAgICAgZHVyYXRpb24gLT0gc2xpY2Uuc3RhcnQgLSB0aW1lU2xpY2Uuc3RhcnQ7CisgICAgICBpZiAodGltZVNsaWNlLmVuZCA+IHNsaWNlLmVuZCkKKyAgICAgICAgZHVyYXRpb24gLT0gdGltZVNsaWNlLmVuZCAtIHNsaWNlLmVuZDsKKworICAgICAgaWYgKHNsaWNlLmNwdUR1cmF0aW9uKSB7CisgICAgICAgIHNsaWNlLmNwdUR1cmF0aW9uICs9IGR1cmF0aW9uOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgc2xpY2UuY3B1RHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZS5zdWJTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdGhpcy5hZGRDcHVUaW1lVG9TdWJzbGljZV8oc2xpY2Uuc3ViU2xpY2VzW2ldLCB0aW1lU2xpY2UpOworICAgICAgfQorCisgICAgICByZXR1cm4gc2xpY2UuZW5kIDw9IHRpbWVTbGljZS5lbmQ7CisgICAgfQorICB9OworCisgIC8qKgorICAgKiBNZXJnZSB0d28gc2xpY2UgZ3JvdXBzLgorICAgKgorICAgKiBJZiB0aGUgdHdvIGdyb3VwcyBkbyBub3QgbmVzdCBwcm9wZXJseSBzb21lIG9mIHRoZSBzbGljZXMgb2YgZ3JvdXBCIHdpbGwKKyAgICogYmUgc3BsaXQgdG8gYWNjb21vZGF0ZSB0aGUgaW1wcm9wZXIgbmVzdGluZy4gIFRoaXMgaXMgZG9uZSB0byBhY2NvbW9kYXRlCisgICAqIGNvbWJpbmVkIGtlcm5lbCBhbmQgdXNlcmxhbmQgY2FsbCBzdGFja3Mgb24gQW5kcm9pZC4gIEJlY2F1c2UgdXNlcmxhbmQKKyAgICogdHJhY2luZyBpcyBkb25lIGJ5IHdyaXRpbmcgdG8gdGhlIHRyYWNlX21hcmtlciBmaWxlLCB0aGUga2VybmVsIGNhbGxzCisgICAqIHRoYXQgZ2V0IGludm9rZWQgYXMgcGFydCBvZiB0aGF0IHdyaXRlIG1heSBub3QgYmUgcHJvcGVybHkgbmVzdGVkIHdpdGgKKyAgICogdGhlIHVzZXJsYW5kIGNhbGwgdHJhY2UuICBGb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlIG1heSBvY2N1cjoKKyAgICoKKyAgICogICAgIGtlcm5lbCBlbnRlciBzeXNfd3JpdGUgICAgICAgICh0aGUgd3JpdGUgdG8gdHJhY2VfbWFya2VyKQorICAgKiAgICAgdXNlciAgIGVudGVyIHNvbWVfZnVuY3Rpb24KKyAgICogICAgIGtlcm5lbCBleGl0ICBzeXNfd3JpdGUKKyAgICogICAgIC4uLgorICAgKiAgICAga2VybmVsIGVudGVyIHN5c193cml0ZSAgICAgICAgKHRoZSB3cml0ZSB0byB0cmFjZV9tYXJrZXIpCisgICAqICAgICB1c2VyICAgZXhpdCAgc29tZV9mdW5jdGlvbgorICAgKiAgICAga2VybmVsIGV4aXQgIHN5c193cml0ZQorICAgKgorICAgKiBUaGlzIGlzIGhhbmRsZWQgYnkgc3BsaXR0aW5nIHRoZSBzeXNfd3JpdGUgY2FsbCBpbnRvIHR3byBzbGljZXMgYXMKKyAgICogZm9sbG93czoKKyAgICoKKyAgICogICAgIHwgc3lzX3dyaXRlIHwgICAgICAgICAgICBzb21lX2Z1bmN0aW9uICAgICAgICAgICAgfCBzeXNfd3JpdGUgKGNvbnQuKSB8CisgICAqICAgICAgICAgICAgICAgICB8IHN5c193cml0ZSAoY29udC4pIHwgICAgIHwgc3lzX3dyaXRlIHwKKyAgICoKKyAgICogVGhlIGNvbG9ySWQgb2YgYm90aCBwYXJ0cyBvZiB0aGUgc3BsaXQgc2xpY2VzIGFyZSBrZXB0IHRoZSBzYW1lLCBhbmQgdGhlCisgICAqICIgKGNvbnQuKSIgc3VmZml4IGlzIGFwcGVuZGVkIHRvIHRoZSBsYXRlciBwYXJ0cyBvZiBhIHNwbGl0IHNsaWNlLgorICAgKgorICAgKiBUaGUgdHdvIGlucHV0IFNsaWNlR3JvdXBzIGFyZSBub3QgbW9kaWZpZWQgYnkgdGhpcywgYW5kIHRoZSBtZXJnZWQKKyAgICogU2xpY2VHcm91cCB3aWxsIGNvbnRhaW4gYSBjb3B5IG9mIGVhY2ggb2YgdGhlIGlucHV0IGdyb3Vwcycgc2xpY2VzICh0aG9zZQorICAgKiBjb3BpZXMgbWF5IGJlIHNwbGl0KS4KKyAgICovCisgIFNsaWNlR3JvdXAubWVyZ2UgPSBmdW5jdGlvbihncm91cEEsIGdyb3VwQikgeworICAgIC8vIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgdHJhdmVyc2luZyB0aGUgdHdvIHNsaWNlIGdyb3VwcyBpbiByZXZlcnNlCisgICAgLy8gb3JkZXIuICBUaGUgc2xpY2VzIGluIGVhY2ggZ3JvdXAgYXJlIHNvcnRlZCBieSBhc2NlbmRpbmcgZW5kLXRpbWUsIHNvCisgICAgLy8gd2UgbXVzdCBkbyB0aGUgdHJhdmVyc2FsIGZyb20gYmFjayB0byBmcm9udCBpbiBvcmRlciB0byBtYWludGFpbiB0aGUKKyAgICAvLyBzb3J0aW5nLgorICAgIC8vCisgICAgLy8gV2UgdHJhdmVyc2UgdGhlIHR3byBncm91cHMgc2ltdWx0YW5lb3VzbHksIG1lcmdpbmcgYXMgd2UgZ28uICBBdCBlYWNoCisgICAgLy8gaXRlcmF0aW9uIHdlIGNob29zZSB0aGUgZ3JvdXAgZnJvbSB3aGljaCB0byB0YWtlIHRoZSBuZXh0IHNsaWNlIGJhc2VkCisgICAgLy8gb24gd2hpY2ggZ3JvdXAncyBuZXh0IHNsaWNlIGhhcyB0aGUgZ3JlYXRlciBlbmQtdGltZS4gIER1cmluZyB0aGlzCisgICAgLy8gdHJhdmVyc2FsIHdlIG1haW50YWluIGEgc3RhY2sgb2YgY3VycmVudGx5ICJvcGVuIiBzbGljZXMgZm9yIGVhY2ggaW5wdXQKKyAgICAvLyBncm91cC4gIEEgc2xpY2UgaXMgY29uc2lkZXJlZCAib3BlbiIgZnJvbSB0aGUgdGltZSBpdCBnZXRzIHJlYWNoZWQgaW4KKyAgICAvLyBvdXIgaW5wdXQgZ3JvdXAgdHJhdmVyc2FsIHRvIHRoZSB0aW1lIHdlIHJlYWNoIGFuIHNsaWNlIGluIHRoaXMKKyAgICAvLyB0cmF2ZXJzYWwgd2l0aCBhbiBlbmQtdGltZSBiZWZvcmUgdGhlIHN0YXJ0IHRpbWUgb2YgdGhlICJvcGVuIiBzbGljZS4KKyAgICAvLworICAgIC8vIEVhY2ggdGltZSBhIHNsaWNlIGZyb20gZ3JvdXBBIGlzIG9wZW5lZCBvciBjbG9zZWQgKGV2ZW50cyBjb3JyZXNwb25kaW5nCisgICAgLy8gdG8gdGhlIGVuZC10aW1lIGFuZCBzdGFydC10aW1lIG9mIHRoZSBpbnB1dCBzbGljZSwgcmVzcGVjdGl2ZWx5KSB3ZQorICAgIC8vIHNwbGl0IGFsbCBvZiB0aGUgY3VycmVudGx5IG9wZW4gc2xpY2VzIGZyb20gZ3JvdXBCLgorCisgICAgaWYgKGdyb3VwQS5vcGVuUGFydGlhbFNsaWNlc18ubGVuZ3RoID4gMCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignZ3JvdXBBIGhhcyBvcGVuIHBhcnRpYWwgc2xpY2VzJyk7CisKKyAgICBpZiAoZ3JvdXBCLm9wZW5QYXJ0aWFsU2xpY2VzXy5sZW5ndGggPiAwKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdncm91cEIgaGFzIG9wZW4gcGFydGlhbCBzbGljZXMnKTsKKworICAgIGlmIChncm91cEEucGFyZW50Q29udGFpbmVyICE9IGdyb3VwQi5wYXJlbnRDb250YWluZXIpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpZmZlcmVudCBwYXJlbnQgdGhyZWFkcy4gQ2Fubm90IG1lcmdlJyk7CisKKyAgICBpZiAoZ3JvdXBBLnNsaWNlQ29uc3RydWN0b3IgIT0gZ3JvdXBCLnNsaWNlQ29uc3RydWN0b3IpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpZmZlcmVudCBzbGljZSBjb25zdHJ1Y3RvcnMuIENhbm5vdCBtZXJnZScpOworCisgICAgdmFyIHJlc3VsdCA9IG5ldyBTbGljZUdyb3VwKGdyb3VwQS5wYXJlbnRDb250YWluZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwQS5zbGljZUNvbnN0cnVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cEEubmFtZV8pOworCisgICAgdmFyIHNsaWNlc0EgPSBncm91cEEuc2xpY2VzOworICAgIHZhciBzbGljZXNCID0gZ3JvdXBCLnNsaWNlczsKKyAgICB2YXIgaWR4QSA9IDA7CisgICAgdmFyIGlkeEIgPSAwOworICAgIHZhciBvcGVuQSA9IFtdOworICAgIHZhciBvcGVuQiA9IFtdOworCisgICAgdmFyIHNwbGl0T3BlblNsaWNlcyA9IGZ1bmN0aW9uKHdoZW4pIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3BlbkIubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIG9sZFNsaWNlID0gb3BlbkJbaV07CisgICAgICAgIHZhciBvbGRFbmQgPSBvbGRTbGljZS5lbmQ7CisgICAgICAgIGlmICh3aGVuIDwgb2xkU2xpY2Uuc3RhcnQgfHwgb2xkRW5kIDwgd2hlbikgeworICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc2xpY2Ugc2hvdWxkIG5vdCBiZSBzcGxpdCcpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIG5ld1NsaWNlID0gcmVzdWx0LmNvcHlTbGljZShvbGRTbGljZSk7CisgICAgICAgIG5ld1NsaWNlLnN0YXJ0ID0gd2hlbjsKKyAgICAgICAgbmV3U2xpY2UuZHVyYXRpb24gPSBvbGRFbmQgLSB3aGVuOworICAgICAgICBpZiAobmV3U2xpY2UudGl0bGUuaW5kZXhPZignIChjb250LiknKSA9PSAtMSkKKyAgICAgICAgICBuZXdTbGljZS50aXRsZSArPSAnIChjb250LiknOworICAgICAgICBvbGRTbGljZS5kdXJhdGlvbiA9IHdoZW4gLSBvbGRTbGljZS5zdGFydDsKKyAgICAgICAgb3BlbkJbaV0gPSBuZXdTbGljZTsKKyAgICAgICAgcmVzdWx0LnB1c2hTbGljZShuZXdTbGljZSk7CisgICAgICB9CisgICAgfTsKKworICAgIHZhciBjbG9zZU9wZW5TbGljZXMgPSBmdW5jdGlvbih1cFRvKSB7CisgICAgICB3aGlsZSAob3BlbkEubGVuZ3RoID4gMCB8fCBvcGVuQi5sZW5ndGggPiAwKSB7CisgICAgICAgIHZhciBuZXh0QSA9IG9wZW5BW29wZW5BLmxlbmd0aCAtIDFdOworICAgICAgICB2YXIgbmV4dEIgPSBvcGVuQltvcGVuQi5sZW5ndGggLSAxXTsKKyAgICAgICAgdmFyIGVuZEEgPSBuZXh0QSAmJiBuZXh0QS5lbmQ7CisgICAgICAgIHZhciBlbmRCID0gbmV4dEIgJiYgbmV4dEIuZW5kOworCisgICAgICAgIGlmICgoZW5kQSA9PT0gdW5kZWZpbmVkIHx8IGVuZEEgPiB1cFRvKSAmJgorICAgICAgICAgICAgKGVuZEIgPT09IHVuZGVmaW5lZCB8fCBlbmRCID4gdXBUbykpIHsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZW5kQiA9PT0gdW5kZWZpbmVkIHx8IGVuZEEgPCBlbmRCKSB7CisgICAgICAgICAgc3BsaXRPcGVuU2xpY2VzKGVuZEEpOworICAgICAgICAgIG9wZW5BLnBvcCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIG9wZW5CLnBvcCgpOworICAgICAgICB9CisgICAgICB9CisgICAgfTsKKworICAgIHdoaWxlIChpZHhBIDwgc2xpY2VzQS5sZW5ndGggfHwgaWR4QiA8IHNsaWNlc0IubGVuZ3RoKSB7CisgICAgICB2YXIgc0EgPSBzbGljZXNBW2lkeEFdOworICAgICAgdmFyIHNCID0gc2xpY2VzQltpZHhCXTsKKyAgICAgIHZhciBuZXh0U2xpY2UsIGlzRnJvbUI7CisKKyAgICAgIGlmIChzQSA9PT0gdW5kZWZpbmVkIHx8IChzQiAhPT0gdW5kZWZpbmVkICYmIHNBLnN0YXJ0ID4gc0Iuc3RhcnQpKSB7CisgICAgICAgIG5leHRTbGljZSA9IHJlc3VsdC5jb3B5U2xpY2Uoc0IpOworICAgICAgICBpc0Zyb21CID0gdHJ1ZTsKKyAgICAgICAgaWR4QisrOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgbmV4dFNsaWNlID0gcmVzdWx0LmNvcHlTbGljZShzQSk7CisgICAgICAgIGlzRnJvbUIgPSBmYWxzZTsKKyAgICAgICAgaWR4QSsrOworICAgICAgfQorCisgICAgICBjbG9zZU9wZW5TbGljZXMobmV4dFNsaWNlLnN0YXJ0KTsKKworICAgICAgcmVzdWx0LnB1c2hTbGljZShuZXh0U2xpY2UpOworCisgICAgICBpZiAoaXNGcm9tQikgeworICAgICAgICBvcGVuQi5wdXNoKG5leHRTbGljZSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBzcGxpdE9wZW5TbGljZXMobmV4dFNsaWNlLnN0YXJ0KTsKKyAgICAgICAgb3BlbkEucHVzaChuZXh0U2xpY2UpOworICAgICAgfQorICAgIH0KKworICAgIGNsb3NlT3BlblNsaWNlcygpOworCisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfTsKKworICByZXR1cm4geworICAgIFNsaWNlR3JvdXA6IFNsaWNlR3JvdXAKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NsaWNlX2dyb3VwX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvc2xpY2VfZ3JvdXBfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZjc0YWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NsaWNlX2dyb3VwX3Rlc3QuaHRtbApAQCAtMCwwICsxLDg2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZV9ncm91cC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKKyAgdmFyIFNsaWNlR3JvdXAgPSB0ci5tb2RlbC5TbGljZUdyb3VwOworICB2YXIgbmV3U2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2U7CisgIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7CisgIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7CisgIHZhciBuZXdUaHJlYWRTbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdUaHJlYWRTbGljZTsKKyAgdmFyIG5ld01vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsOworICB2YXIgbmV3RmFrZVRocmVhZCA9IHRyLmMudGVzdF91dGlscy5uZXdGYWtlVGhyZWFkOworCisgIHRlc3QoJ2Jhc2ljQmVnaW5FbmQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworICAgIGFzc2VydC5lcXVhbChncm91cC5vcGVuU2xpY2VDb3VudCwgMCk7CisgICAgdmFyIHNsaWNlQSA9IGdyb3VwLmJlZ2luU2xpY2UoJycsICdhJywgMSwge2E6IDF9KTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAub3BlblNsaWNlQ291bnQsIDEpOworICAgIGFzc2VydC5lcXVhbChzbGljZUEudGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlQS5zdGFydCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlQS5hcmdzLmEsIDEpOworCisgICAgdmFyIHNsaWNlQiA9IGdyb3VwLmVuZFNsaWNlKDMpOworICAgIGFzc2VydC5lcXVhbChzbGljZUEsIHNsaWNlQik7CisgICAgYXNzZXJ0LmVxdWFsKHNsaWNlQi5kdXJhdGlvbiwgMik7CisgIH0pOworCisgIHRlc3QoJ3N1YlNsaWNlc0J1aWxkZXJCYXNpYycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAyKSk7CisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAzLCAxKSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQSwgc0JdKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygwKSwgdW5kZWZpbmVkKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygxKSwgc0EpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMpLCBzQSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMy4xKSwgc0IpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDQpLCBzQik7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoNSksIHVuZGVmaW5lZCk7CisgIH0pOworCisgIHRlc3QoJ3N1YlNsaWNlc0J1aWxkZXJCYXNpYzInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgNCkpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOworCisgICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLCBbc0FdKTsKKworICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNBLnN1YlNsaWNlcywgW3NCXSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnNlbGZUaW1lLCAzKTsKKworICAgIGFzc2VydC5lcXVhbChzQSwgc0IucGFyZW50U2xpY2UpOworICAgIGFzc2VydC5pc1RydWUoc0EuaXNUb3BMZXZlbCk7CisgICAgYXNzZXJ0LmlzRmFsc2Uoc0IuaXNUb3BMZXZlbCk7CisgIH0pOworCisgIHRlc3QoJ3N1YlNsaWNlc0J1aWxkZXJOZXN0ZWRFeGFjdGx5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAobmV3RmFrZVRocmVhZCgpKTsKKyAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDEsIDQpKTsKKyAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDQpKTsKKworICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NCXSk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0Iuc3ViU2xpY2VzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzQi5zdWJTbGljZXMsIFtzQV0pOworICAgIGFzc2VydC5lcXVhbChzQi5zZWxmVGltZSwgMCk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0IsIHNBLnBhcmVudFNsaWNlKTsKKyAgICBhc3NlcnQuaXNUcnVlKHNCLmlzVG9wTGV2ZWwpOworICAgIGFzc2VydC5pc0ZhbHNlKHNBLmlzVG9wTGV2ZWwpOworCisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMCksIHVuZGVmaW5lZCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMSksIHNBKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygyKSwgc0EpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDUpLCBzQSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoNiksIHVuZGVmaW5lZCk7CisgIH0pOworCisgIHRlc3QoJ3N1YlNsaWNlc0J1aWxkZXJJbnN0YW50RXZlbnRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAobmV3RmFrZVRocmVhZCgpKTsKKyAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDApKTsKKyAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDIsIDApKTsKKworICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBLCBzQl0pOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDEpLCBzQSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMS41KSwgdW5kZWZpbmVkKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygyKSwgc0IpOworICB9KTsKKworICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyVHdvSW5zdGFudEV2ZW50cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAwKSk7CisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLCAwKSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQV0pOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0JdKTsKKyAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDApOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLCBzQi5wYXJlbnRTbGljZSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzQS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuaXNGYWxzZShzQi5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygxKSwgc0IpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDEuMDAwMSksIHVuZGVmaW5lZCk7CisgIH0pOworCisgIHRlc3QoJ3N1YlNsaWNlc0J1aWxkZXJPdXRPZk9yZGVyQWRkaXRpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6CisgICAgLy8gWyAgICBhICAgICBdWyAgIGIgICBdCisgICAgLy8gV2hlcmUgaW5zZXJ0aW9uIGlzIGRvbmUgYmFja3dhcmQuCisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAzLCAxKSk7CisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAyKSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQSwgc0JdKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygzKSwgc0EpOworICB9KTsKKworICB0ZXN0KCdzdWJSb3dCdWlsZGVyT3V0T2ZPcmRlckFkZGl0aW9uMicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisKKyAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKKyAgICAvLyBbICAgIGEgICAgIF0KKyAgICAvLyAgIFsgIGIgICBdCisgICAgLy8gV2hlcmUgaW5zZXJ0aW9uIGlzIGRvbmUgYmFja3dhcmQuCisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAzLCAxKSk7CisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCA1KSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQV0pOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0JdKTsKKyAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDQpOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLCBzQi5wYXJlbnRTbGljZSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzQS5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuaXNGYWxzZShzQi5pc1RvcExldmVsKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygxLjUpLCBzQSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMyksIHNCKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygzLjUpLCBzQik7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoNCksIHNCKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcyg0LjUpLCBzQSk7CisgIH0pOworCisgIHRlc3QoJ3N1YlNsaWNlc0J1aWxkZXJPbk5lc3RlZFplcm9MZW5ndGgnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6CisgICAgLy8gWyAgICBhICAgIF0KKyAgICAvLyBbICBiMSBdICBbXTwtIGIyIHdoZXJlIGIyLmR1cmF0aW9uID0gMCBhbmQgYjIuZW5kID09IGEuZW5kLgorICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMykpOworICAgIHZhciBzQjEgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYjEnLCAxLCAyKSk7CisgICAgdmFyIHNCMiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiMicsIDQsIDApKTsKKworICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBXSk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0Euc3ViU2xpY2VzLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzQS5zdWJTbGljZXMsIFtzQjEsIHNCMl0pOworICAgIGFzc2VydC5lcXVhbChzQS5zZWxmVGltZSwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0EsIHNCMS5wYXJlbnRTbGljZSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLCBzQjIucGFyZW50U2xpY2UpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDEpLCBzQjEpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDQpLCBzQjIpOworICB9KTsKKworICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyT25Hcm91cDEnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6CisgICAgLy8gWyAgICBhICAgICBdICAgWyAgYyAgIF0KKyAgICAvLyAgIFsgIGIgICBdCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7CisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLjUsIDEpKTsKKyAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYycsIDUsIDApKTsKKworICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnRvcExldmVsU2xpY2VzLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cC50b3BMZXZlbFNsaWNlcywgW3NBLCBzQ10pOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0JdKTsKKyAgICBhc3NlcnQuZXF1YWwoc0Euc2VsZlRpbWUsIDIpOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLCBzQi5wYXJlbnRTbGljZSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMSksIHNBKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygyKSwgc0IpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMpLCBzQSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoNC41KSwgdW5kZWZpbmVkKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcyg1KSwgc0MpOworICB9KTsKKworICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyT25Hcm91cDInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6CisgICAgLy8gWyAgICBhICAgICBdICAgWyAgZCAgIF0KKyAgICAvLyAgIFsgIGIgICBdCisgICAgLy8gICAgWyBjIF0KKyAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDMpKTsKKyAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDEuNSwgMSkpOworICAgIHZhciBzQyA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdjJywgMS43NSwgMC41KSk7CisgICAgdmFyIHNEID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2QnLCA1LCAwLjI1KSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQSwgc0RdKTsKKworICAgIGFzc2VydC5lcXVhbChzQS5zdWJTbGljZXMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNBLnN1YlNsaWNlcywgW3NCXSk7CisgICAgYXNzZXJ0LmVxdWFsKHNBLnNlbGZUaW1lLCAyKTsKKworICAgIGFzc2VydC5lcXVhbChzQSwgc0IucGFyZW50U2xpY2UpOworICAgIGFzc2VydC5lcXVhbChzQi5zdWJTbGljZXMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNCLnN1YlNsaWNlcywgW3NDXSk7CisgICAgYXNzZXJ0LmVxdWFsKHNCLnNlbGZUaW1lLCAwLjUpOworCisgICAgYXNzZXJ0LmVxdWFsKHNCLCBzQy5wYXJlbnRTbGljZSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmRTbGljZUF0VHMoMiksIHNDKTsKKyAgfSk7CisKKyAgdGVzdCgnZmluZE5leHRTbGljZUFmdGVyQmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworICAgIC8vIFBhdHRlcm4gYmVpbmcgdGVzdGVkOgorICAgIC8vIFsgICAgICAgIGEgICAgICAgICBdIFsgICBkICAgIF0KKyAgICAvLyBbYl0gICAgWyAgIGMgICBdICAgICAgICAgICAgICAgICB3aGVyZSBiIGlzIGR1cj0wCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAxLCBlbmQ6IDR9KSk7CisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDF9KSk7CisgICAgdmFyIHNDID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYycsIHN0YXJ0OiAyLCBlbmQ6IDN9KSk7CisgICAgdmFyIHNEID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnZCcsIHN0YXJ0OiA1LCBlbmQ6IDZ9KSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kTmV4dFNsaWNlQWZ0ZXIoMCwgMCksIHNBKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZE5leHRTbGljZUFmdGVyKDEsIHNBLmd1aWQpLCBzQik7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmZpbmROZXh0U2xpY2VBZnRlcigxLCBzQi5ndWlkKSwgc0MpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kTmV4dFNsaWNlQWZ0ZXIoMiwgc0MuZ3VpZCksIHNEKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZE5leHRTbGljZUFmdGVyKDYsIDApLCB1bmRlZmluZWQpOworICB9KTsKKworICB0ZXN0KCdzdWJTbGljZXNCdWlsZGVyVG9sZXJhdGVGUEluYWNjdXJhY3knLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgLy8gUGF0dGVybiBiZWluZyB0ZXN0ZWQ6CisgICAgLy8gWyAgYSAgXQorICAgIC8vIFsgIGIgIF0gd2hlcmUgYi5lbmQgY29udGFpbnMgYSB0aW55IEZQIGNhbGN1bGF0aW9uIGVycm9yLgorICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMykpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMSwgMy4wMDAwMDAwMDAxKSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC50b3BMZXZlbFNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAudG9wTGV2ZWxTbGljZXMsIFtzQV0pOworCisgICAgYXNzZXJ0LmVxdWFsKHNBLnN1YlNsaWNlcy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3ViU2xpY2VzLCBbc0JdKTsKKyAgICBhc3NlcnQuZXF1YWwoc0EsIHNCLnBhcmVudFNsaWNlKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuZmluZFNsaWNlQXRUcygxKSwgc0IpOworICAgIGFzc2VydC5lcXVhbChncm91cC5maW5kU2xpY2VBdFRzKDMpLCBzQik7CisgIH0pOworCisgIHRlc3QoJ2Jhc2ljTWVyZ2UnLCBmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBUZXN0U2xpY2UoCisgICAgICAgIGNhdCwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24sCisgICAgICAgIG9wdF9jcHVTdGFydCwgb3B0X2NwdUR1cmF0aW9uKSB7CisgICAgICBTbGljZS5jYWxsKHRoaXMsIGNhdCwgdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24sCisgICAgICAgICAgICAgICAgIG9wdF9jcHVTdGFydCwgb3B0X2NwdUR1cmF0aW9uKTsKKyAgICB9CisgICAgVGVzdFNsaWNlLnByb3RvdHlwZSA9IHsKKyAgICAgIF9fcHJvdG9fXzogU2xpY2UucHJvdG90eXBlCisgICAgfTsKKworICAgIHZhciB0aHJlYWQgPSBuZXdGYWtlVGhyZWFkKCk7CisgICAgdmFyIGEgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQsIFRlc3RTbGljZSk7CisgICAgdmFyIGIgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQsIFRlc3RTbGljZSk7CisgICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMSk7CisgICAgYS5lbmRTbGljZSgyKTsKKyAgICBiLmJlZ2luU2xpY2UoJycsICd0d28nLCAzKTsKKyAgICBiLmVuZFNsaWNlKDUpOworCisgICAgdmFyIG0gPSBTbGljZUdyb3VwLm1lcmdlKGEsIGIpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlcy5sZW5ndGgsIDIpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnRpdGxlLCAnb25lJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnN0YXJ0LCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uZHVyYXRpb24sIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnRpdGxlLCAndHdvJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnN0YXJ0LCAzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uZHVyYXRpb24sIDIpOworCisgICAgLy8gZW5zdXJlIGNvbnN0cnVjdG9yIG1lcmdlZCBjb3JyZWN0bHkKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZUNvbnN0cnVjdG9yLCBUZXN0U2xpY2UpOworICB9KTsKKworICB0ZXN0KCduZXN0ZWRNZXJnZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0aHJlYWQgPSBuZXdGYWtlVGhyZWFkKCk7CisgICAgdmFyIGEgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOworICAgIHZhciBiID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKKyAgICBhLmJlZ2luU2xpY2UoJycsICdvbmUnLCAxKTsKKyAgICBhLmVuZFNsaWNlKDQpOworICAgIGIuYmVnaW5TbGljZSgnJywgJ3R3bycsIDIpOworICAgIGIuZW5kU2xpY2UoMyk7CisKKyAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICdvbmUnKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgMyk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICd0d28nKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uc3RhcnQsIDIpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5kdXJhdGlvbiwgMSk7CisgIH0pOworCisgIHRlc3QoJ3N0YXJ0U3BsaXRNZXJnZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0aHJlYWQgPSBuZXdGYWtlVGhyZWFkKCk7CisgICAgdmFyIGEgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOworICAgIHZhciBiID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKKyAgICBhLmJlZ2luU2xpY2UoJycsICdvbmUnLCAyKTsKKyAgICBhLmVuZFNsaWNlKDQpOworICAgIGIuYmVnaW5TbGljZSgnJywgJ3R3bycsIDEpOworICAgIGIuZW5kU2xpY2UoMyk7CisKKyAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgMyk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICd0d28nKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICdvbmUnKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uc3RhcnQsIDIpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5kdXJhdGlvbiwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0udGl0bGUsICd0d28gKGNvbnQuKScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLmR1cmF0aW9uLCAxKTsKKyAgfSk7CisKKyAgdGVzdCgnc3RhcnRTcGxpdFR3b01lcmdlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRocmVhZCA9IG5ld0Zha2VUaHJlYWQoKTsKKyAgICB2YXIgYSA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7CisgICAgdmFyIGIgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOworICAgIGEuYmVnaW5TbGljZSgnJywgJ29uZScsIDMpOworICAgIGEuZW5kU2xpY2UoNik7CisgICAgYi5iZWdpblNsaWNlKCcnLCAndHdvJywgMSk7CisgICAgYi5iZWdpblNsaWNlKCcnLCAndGhyZWUnLCAyKTsKKyAgICBiLmVuZFNsaWNlKDQpOworICAgIGIuZW5kU2xpY2UoNSk7CisKKyAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgNSk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICd0d28nKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICd0aHJlZScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLmR1cmF0aW9uLCAxKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS50aXRsZSwgJ29uZScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5zdGFydCwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLmR1cmF0aW9uLCAzKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS50aXRsZSwgJ3R3byAoY29udC4pJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzNdLnN0YXJ0LCAzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10uZHVyYXRpb24sIDIpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLnRpdGxlLCAndGhyZWUgKGNvbnQuKScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1s0XS5zdGFydCwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLmR1cmF0aW9uLCAxKTsKKyAgfSk7CisKKyAgdGVzdCgnc3RhcnRTcGxpdFR3aWNlTWVyZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGhyZWFkID0gbmV3RmFrZVRocmVhZCgpOworICAgIHZhciBhID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKKyAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7CisgICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMik7CisgICAgYS5iZWdpblNsaWNlKCcnLCAndHdvJywgMyk7CisgICAgYS5lbmRTbGljZSg1KTsKKyAgICBhLmVuZFNsaWNlKDYpOworICAgIGIuYmVnaW5TbGljZSgnJywgJ3RocmVlJywgMSk7CisgICAgYi5lbmRTbGljZSg0KTsKKworICAgIHZhciBtID0gU2xpY2VHcm91cC5tZXJnZShhLCBiKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXMubGVuZ3RoLCA1KTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS50aXRsZSwgJ3RocmVlJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnN0YXJ0LCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uZHVyYXRpb24sIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnRpdGxlLCAnb25lJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnN0YXJ0LCAyKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uZHVyYXRpb24sIDQpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnRpdGxlLCAndGhyZWUgKGNvbnQuKScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLmR1cmF0aW9uLCAxKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS50aXRsZSwgJ3R3bycpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5zdGFydCwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzNdLmR1cmF0aW9uLCAyKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1s0XS50aXRsZSwgJ3RocmVlIChjb250LiknKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uc3RhcnQsIDMpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1s0XS5kdXJhdGlvbiwgMSk7CisgIH0pOworCisgIHRlc3QoJ2VuZFNwbGl0TWVyZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGhyZWFkID0gbmV3RmFrZVRocmVhZCgpOworICAgIHZhciBhID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKKyAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7CisgICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMSk7CisgICAgYS5lbmRTbGljZSgzKTsKKyAgICBiLmJlZ2luU2xpY2UoJycsICd0d28nLCAyKTsKKyAgICBiLmVuZFNsaWNlKDQpOworCisgICAgdmFyIG0gPSBTbGljZUdyb3VwLm1lcmdlKGEsIGIpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlcy5sZW5ndGgsIDMpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnRpdGxlLCAnb25lJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLnN0YXJ0LCAxKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uZHVyYXRpb24sIDIpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnRpdGxlLCAndHdvJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLnN0YXJ0LCAyKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0uZHVyYXRpb24sIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnRpdGxlLCAndHdvIChjb250LiknKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uc3RhcnQsIDMpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5kdXJhdGlvbiwgMSk7CisgIH0pOworCisgIHRlc3QoJ2VuZFNwbGl0VHdvTWVyZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGhyZWFkID0gbmV3RmFrZVRocmVhZCgpOworICAgIHZhciBhID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKKyAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7CisgICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMSk7CisgICAgYS5lbmRTbGljZSg0KTsKKyAgICBiLmJlZ2luU2xpY2UoJycsICd0d28nLCAyKTsKKyAgICBiLmJlZ2luU2xpY2UoJycsICd0aHJlZScsIDMpOworICAgIGIuZW5kU2xpY2UoNSk7CisgICAgYi5lbmRTbGljZSg2KTsKKworICAgIHZhciBtID0gU2xpY2VHcm91cC5tZXJnZShhLCBiKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXMubGVuZ3RoLCA1KTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS50aXRsZSwgJ29uZScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5zdGFydCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLmR1cmF0aW9uLCAzKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS50aXRsZSwgJ3R3bycpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLmR1cmF0aW9uLCAyKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS50aXRsZSwgJ3RocmVlJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnN0YXJ0LCAzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uZHVyYXRpb24sIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzNdLnRpdGxlLCAndHdvIChjb250LiknKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10uc3RhcnQsIDQpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5kdXJhdGlvbiwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0udGl0bGUsICd0aHJlZSAoY29udC4pJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLnN0YXJ0LCA0KTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uZHVyYXRpb24sIDEpOworICB9KTsKKworICB0ZXN0KCdlbmRTcGxpdFR3aWNlTWVyZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGhyZWFkID0gbmV3RmFrZVRocmVhZCgpOworICAgIHZhciBhID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKKyAgICB2YXIgYiA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7CisgICAgYS5iZWdpblNsaWNlKCcnLCAnb25lJywgMSk7CisgICAgYS5iZWdpblNsaWNlKCcnLCAndHdvJywgMik7CisgICAgYS5lbmRTbGljZSg0KTsKKyAgICBhLmVuZFNsaWNlKDUpOworICAgIGIuYmVnaW5TbGljZSgnJywgJ3RocmVlJywgMyk7CisgICAgYi5lbmRTbGljZSg2KTsKKworICAgIHZhciBtID0gU2xpY2VHcm91cC5tZXJnZShhLCBiKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXMubGVuZ3RoLCA1KTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS50aXRsZSwgJ29uZScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5zdGFydCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzBdLmR1cmF0aW9uLCA0KTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS50aXRsZSwgJ3R3bycpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLmR1cmF0aW9uLCAyKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS50aXRsZSwgJ3RocmVlJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzJdLnN0YXJ0LCAzKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uZHVyYXRpb24sIDEpOworCisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzNdLnRpdGxlLCAndGhyZWUgKGNvbnQuKScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5zdGFydCwgNCk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzNdLmR1cmF0aW9uLCAxKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1s0XS50aXRsZSwgJ3RocmVlIChjb250LiknKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uc3RhcnQsIDUpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1s0XS5kdXJhdGlvbiwgMSk7CisgIH0pOworCisgIC8vIElucHV0OgorICAvLyBBOiAgfCAgICBvbmUgICAgIHwgICAgICAgfCAgICAgdHdvICAgICB8CisgIC8vCisgIC8vIEI6ICAgICAgIHwgICAgICAgICB0aHJlZSAgICAgICAgIHwKKyAgLy8KKyAgLy8gT3V0cHV0OgorICAvLyAgICAgfCAgICBvbmUgICAgIHwgdGhyZWUgfCAgICAgdHdvICAgICB8CisgIC8vICAgICAgICAgIHwgdGhyZWUgfCAgICAgICB8IHRocmVlIHwKKyAgdGVzdCgnc3BsaXRUd2ljZU1lcmdlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRocmVhZCA9IG5ld0Zha2VUaHJlYWQoKTsKKyAgICB2YXIgYSA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7CisgICAgdmFyIGIgPSBuZXcgU2xpY2VHcm91cCh0aHJlYWQpOworICAgIGEuYmVnaW5TbGljZSgnJywgJ29uZScsIDEpOworICAgIGEuZW5kU2xpY2UoMyk7CisgICAgYS5iZWdpblNsaWNlKCcnLCAndHdvJywgNCk7CisgICAgYS5lbmRTbGljZSg2KTsKKyAgICBiLmJlZ2luU2xpY2UoJycsICd0aHJlZScsIDIpOworICAgIGIuZW5kU2xpY2UoNSk7CisKKyAgICB2YXIgbSA9IFNsaWNlR3JvdXAubWVyZ2UoYSwgYik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzLmxlbmd0aCwgNSk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0udGl0bGUsICdvbmUnKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMF0uc3RhcnQsIDEpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1swXS5kdXJhdGlvbiwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMV0udGl0bGUsICd0aHJlZScpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1sxXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzFdLmR1cmF0aW9uLCAxKTsKKworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS50aXRsZSwgJ3RocmVlIChjb250LiknKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbMl0uc3RhcnQsIDMpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1syXS5kdXJhdGlvbiwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10udGl0bGUsICd0d28nKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbM10uc3RhcnQsIDQpOworICAgIGFzc2VydC5lcXVhbChtLnNsaWNlc1szXS5kdXJhdGlvbiwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0udGl0bGUsICd0aHJlZSAoY29udC4pJyk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc2xpY2VzWzRdLnN0YXJ0LCA0KTsKKyAgICBhc3NlcnQuZXF1YWwobS5zbGljZXNbNF0uZHVyYXRpb24sIDEpOworICB9KTsKKworICB0ZXN0KCdib3VuZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworICAgIGdyb3VwLnVwZGF0ZUJvdW5kcygpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChncm91cC5ib3VuZHMubWluKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoZ3JvdXAuYm91bmRzLm1heCk7CisKKyAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2UoMSwgMykpOworICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZSg3LCAyKSk7CisgICAgZ3JvdXAudXBkYXRlQm91bmRzKCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5taW4sIDEpOworICAgIGFzc2VydC5lcXVhbChncm91cC5ib3VuZHMubWF4LCA5KTsKKyAgfSk7CisKKyAgdGVzdCgnYm91bmRzV2l0aFBhcnRpYWwnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworICAgIGdyb3VwLmJlZ2luU2xpY2UoJycsICdhJywgNyk7CisgICAgZ3JvdXAudXBkYXRlQm91bmRzKCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5taW4sIDcpOworICAgIGFzc2VydC5lcXVhbChncm91cC5ib3VuZHMubWF4LCA3KTsKKyAgfSk7CisKKyAgdGVzdCgnYm91bmRzV2l0aFR3b1BhcnRpYWxzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAobmV3RmFrZVRocmVhZCgpKTsKKyAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYScsIDApOworICAgIGdyb3VwLmJlZ2luU2xpY2UoJycsICdhJywgMSk7CisgICAgZ3JvdXAudXBkYXRlQm91bmRzKCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5taW4sIDApOworICAgIGFzc2VydC5lcXVhbChncm91cC5ib3VuZHMubWF4LCAxKTsKKyAgfSk7CisKKyAgdGVzdCgnYm91bmRzV2l0aEJvdGhQYXJ0aWFsQW5kUmVndWxhcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisgICAgZ3JvdXAudXBkYXRlQm91bmRzKCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGdyb3VwLmJvdW5kcy5taW4pOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChncm91cC5ib3VuZHMubWF4KTsKKworICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZSgxLCAzKSk7CisgICAgZ3JvdXAuYmVnaW5TbGljZSgnJywgJ2EnLCA3KTsKKyAgICBncm91cC51cGRhdGVCb3VuZHMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuYm91bmRzLm1pbiwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5tYXgsIDcpOworICB9KTsKKworICB0ZXN0KCdhdXRvY2xvc2VyQmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworICAgIGFzc2VydC5lcXVhbCgwLCBncm91cC5vcGVuU2xpY2VDb3VudCk7CisKKyAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDAuNSkpOworCisgICAgZ3JvdXAuYmVnaW5TbGljZSgnJywgJ2InLCAyKTsKKyAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYycsIDIuNSk7CisgICAgZ3JvdXAuZW5kU2xpY2UoMyk7CisKKyAgICBncm91cC5hdXRvQ2xvc2VPcGVuU2xpY2VzKCk7CisgICAgZ3JvdXAudXBkYXRlQm91bmRzKCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuYm91bmRzLm1pbiwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmJvdW5kcy5tYXgsIDMpOworICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXMubGVuZ3RoLCAzKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMF0udGl0bGUsICdhJyk7CisgICAgYXNzZXJ0LmlzRmFsc2UoZ3JvdXAuc2xpY2VzWzBdLmRpZE5vdEZpbmlzaCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLnRpdGxlLCAnYicpOworICAgIGFzc2VydC5pc1RydWUoZ3JvdXAuc2xpY2VzWzFdLmRpZE5vdEZpbmlzaCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5kdXJhdGlvbiwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzJdLnRpdGxlLCAnYycpOworICAgIGFzc2VydC5pc0ZhbHNlKGdyb3VwLnNsaWNlc1syXS5kaWROb3RGaW5pc2gpOworICB9KTsKKworICB0ZXN0KCdhdXRvY2xvc2VyV2l0aFN1YlRhc2tzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAobmV3RmFrZVRocmVhZCgpKTsKKyAgICBhc3NlcnQuZXF1YWwoMCwgZ3JvdXAub3BlblNsaWNlQ291bnQpOworCisgICAgZ3JvdXAuYmVnaW5TbGljZSgnJywgJ2EnLCAxKTsKKyAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYjEnLCAyKTsKKyAgICBncm91cC5lbmRTbGljZSgzKTsKKyAgICBncm91cC5iZWdpblNsaWNlKCcnLCAnYjInLCAzKTsKKworICAgIGdyb3VwLmF1dG9DbG9zZU9wZW5TbGljZXMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzLmxlbmd0aCwgMyk7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5pc1RydWUoZ3JvdXAuc2xpY2VzWzBdLmRpZE5vdEZpbmlzaCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1swXS5kdXJhdGlvbiwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLnRpdGxlLCAnYjEnKTsKKyAgICBhc3NlcnQuaXNGYWxzZShncm91cC5zbGljZXNbMV0uZGlkTm90RmluaXNoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmR1cmF0aW9uLCAxKTsKKworICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMl0udGl0bGUsICdiMicpOworICAgIGFzc2VydC5pc1RydWUoZ3JvdXAuc2xpY2VzWzJdLmRpZE5vdEZpbmlzaCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1syXS5kdXJhdGlvbiwgMCk7CisgIH0pOworCisgIHRlc3QoJ2F1dG9jbG9zZUNvbXBsZXRlU2xpY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgZ3JvdXAucHVzaENvbXBsZXRlU2xpY2UoJycsICdhJywgMSwgdW5kZWZpbmVkKTsKKyAgICBncm91cC5wdXNoQ29tcGxldGVTbGljZSgnJywgJ2InLCAyLCAzKTsKKworICAgIGdyb3VwLmF1dG9DbG9zZU9wZW5TbGljZXMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzLmxlbmd0aCwgMik7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLnRpdGxlLCAnYScpOworICAgIGFzc2VydC5pc1RydWUoZ3JvdXAuc2xpY2VzWzBdLmRpZE5vdEZpbmlzaCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1swXS5kdXJhdGlvbiwgNCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLnRpdGxlLCAnYicpOworICAgIGFzc2VydC5pc0ZhbHNlKGdyb3VwLnNsaWNlc1sxXS5kaWROb3RGaW5pc2gpOworICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMV0uZHVyYXRpb24sIDMpOworICB9KTsKKworICB0ZXN0KCdzbGljZUdyb3VwU3RhYmxlSWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOworICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAodGhyZWFkKTsKKworICAgIGFzc2VydC5lcXVhbChwcm9jZXNzLnN0YWJsZUlkLCAxMjMpOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWQuc3RhYmxlSWQsICcxMjMuNDU2Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnN0YWJsZUlkLCAnMTIzLjQ1Ni5TbGljZUdyb3VwJyk7CisgIH0pOworCisgIHRlc3QoJ2dldFNsaWNlc09mTmFtZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisgICAgdmFyIGV4cGVjdGVkID0gW107CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgIHZhciBhU2xpY2UgPSBuZXdTbGljZU5hbWVkKCdhJywgaSwgaSArIDEpOworICAgICAgZ3JvdXAucHVzaFNsaWNlKGFTbGljZSk7CisgICAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIGkgKyAxLCBpICsgMikpOworICAgICAgZXhwZWN0ZWQucHVzaChhU2xpY2UpOworICAgIH0KKworICAgIGFzc2VydC5kZWVwRXF1YWwoZ3JvdXAuZ2V0U2xpY2VzT2ZOYW1lKCdhJyksIGV4cGVjdGVkKTsKKyAgfSk7CisKKyAgdGVzdCgnaXRlclNsaWNlc0luVGltZVJhbmdlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAobmV3RmFrZVRocmVhZCgpKTsKKyAgICB2YXIgZXhwZWN0ZWQgPSBbXTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgdmFyIHNsaWNlID0gbmV3U2xpY2VOYW1lZCgnYScsIGksIDEpOworICAgICAgZ3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICAgIGlmICg0IDw9IGkgJiYgaSA8PSA3KQorICAgICAgICBleHBlY3RlZC5wdXNoKHNsaWNlKTsKKyAgICB9CisgICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICB2YXIgb2JzZXJ2ZWQgPSBbXTsKKyAgICBncm91cC5pdGVyU2xpY2VzSW5UaW1lUmFuZ2UoZnVuY3Rpb24oc2xpY2UpIHsgb2JzZXJ2ZWQucHVzaChzbGljZSk7IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNSwgNy41KTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKG9ic2VydmVkLCBleHBlY3RlZCk7CisgIH0pOworCisgIHRlc3QoJ2NvbXB1dGVDcHVEdXJhdGlvbk5vT3ZlcmxhcCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBTQ0hFRFVMSU5HX1NUQVRFID0gdHIubW9kZWwuU0NIRURVTElOR19TVEFURTsKKyAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOworICAgIHZhciB0ID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg0NTYpOworICAgIHQudGltZVNsaWNlcyA9IFtuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsIDIwLCAyMCksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuU0xFRVBJTkcsIDQwLCAxMCksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgNTAsIDEwKV07CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAodCk7CisgICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2RyYXcnLCAwLCAyMCkpOworICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdyZW5kZXInLCA2MCwgMjApKTsKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdUR1cmF0aW9uLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY29tcHV0ZUNwdUR1cmF0aW9uUGFydGlhbE92ZXJsYXAnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgU0NIRURVTElOR19TVEFURSA9IHRyLm1vZGVsLlNDSEVEVUxJTkdfU1RBVEU7CisgICAgdmFyIHByb2Nlc3MgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMTIzKTsKKyAgICB2YXIgdCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoNDU2KTsKKyAgICB0LnRpbWVTbGljZXMgPSBbbmV3VGhyZWFkU2xpY2UodCwgU0NIRURVTElOR19TVEFURS5SVU5OSU5HLCAyMCwgMjApLAorICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCA0MCwgMTApLAorICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsIDUwLCAxMCldOworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHQpOworICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdkcmF3JywgMTAsIDMwKSk7CisgICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ3JlbmRlcicsIDUwLCAyMCkpOworICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMF0uY3B1RHVyYXRpb24sIDIwKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdUR1cmF0aW9uLCAxMCk7CisgIH0pOworCisgIHRlc3QoJ2NvbXB1dGVDcHVEdXJhdGlvbkZ1bGxPdmVybGFwJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIFNDSEVEVUxJTkdfU1RBVEUgPSB0ci5tb2RlbC5TQ0hFRFVMSU5HX1NUQVRFOworICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7CisgICAgdmFyIHQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7CisgICAgdC50aW1lU2xpY2VzID0gW25ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjAsIDIwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3VGhyZWFkU2xpY2UodCwgU0NIRURVTElOR19TVEFURS5TTEVFUElORywgNDAsIDEwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3VGhyZWFkU2xpY2UodCwgU0NIRURVTElOR19TVEFURS5SVU5OSU5HLCA1MCwgMjApXTsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh0KTsKKyAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnZHJhdycsIDIwLCAzMCkpOworICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdyZW5kZXInLCA1MCwgMjApKTsKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCAyMCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5jcHVEdXJhdGlvbiwgMjApOworICB9KTsKKworICB0ZXN0KCdjb21wdXRlQ3B1U2VsZkR1cmF0aW9uV2l0aFN1YnNsaWNlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBTQ0hFRFVMSU5HX1NUQVRFID0gdHIubW9kZWwuU0NIRURVTElOR19TVEFURTsKKyAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOworICAgIHZhciB0ID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg0NTYpOworICAgIHQudGltZVNsaWNlcyA9IFtuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlJVTk5JTkcsIDIwLCAyMCksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuU0xFRVBJTkcsIDQwLCAxMCksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgNTAsIDIwKV07CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAodCk7CisgICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2RyYXcnLCAyMCwgMzApKTsKKyAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgncmVuZGVyJywgMjEsIDgpKTsKKyAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnZmx1c2gnLCAyOSwgMTEpKTsKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCAyMCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1swXS5jcHVTZWxmVGltZSwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5jcHVEdXJhdGlvbiwgOCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1sxXS5jcHVTZWxmVGltZSwgOCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLnNsaWNlc1syXS5jcHVEdXJhdGlvbiwgMTEpOworICAgIGFzc2VydC5lcXVhbChncm91cC5zbGljZXNbMl0uY3B1U2VsZlRpbWUsIDExKTsKKyAgfSk7CisKKyAgdGVzdCgnY29tcHV0ZUNwdUR1cmF0aW9uU21hbGxUaW1lc2xpY2VzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIFNDSEVEVUxJTkdfU1RBVEUgPSB0ci5tb2RlbC5TQ0hFRFVMSU5HX1NUQVRFOworICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7CisgICAgdmFyIHQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7CisgICAgdC50aW1lU2xpY2VzID0gW25ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjAsIDEpLAorICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyMSwgMSksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjIsIDEpLAorICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyMywgMSksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjQsIDEpLAorICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyNSwgMSksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjYsIDEpLAorICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyNywgMSksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMjgsIDEpLAorICAgICAgICAgICAgICAgICAgICBuZXdUaHJlYWRTbGljZSh0LCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAyOSwgMSksCisgICAgICAgICAgICAgICAgICAgIG5ld1RocmVhZFNsaWNlKHQsIFNDSEVEVUxJTkdfU1RBVEUuUlVOTklORywgMzAsIDEpXTsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cCh0KTsKKyAgICBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnZHJhdycsIDIwLCAxMSkpOyAvLyAyMCxbMjIsMjQsMjYsMjhdLDMwCisgICAgZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ3JlbmRlcicsIDIyLCA4KSk7IC8vIDIyLFsyNCwgMjYsIDI4XQorICAgIGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdmbHVzaCcsIDI0LCA2KSk7IC8vIDI0LCAyNiwgMjgKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdUR1cmF0aW9uLCA2KTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzBdLmNwdVNlbGZUaW1lLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdUR1cmF0aW9uLCA0KTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzFdLmNwdVNlbGZUaW1lLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzJdLmNwdUR1cmF0aW9uLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuc2xpY2VzWzJdLmNwdVNlbGZUaW1lLCAzKTsKKyAgfSk7CisKKyAgdGVzdCgnc2xpY2VQYXJlbnRDb250YWluZXJTZXRBdFB1c2gnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKKyAgICAgIG0ucHJvY2VzcyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEyMyk7CisgICAgICBtLnRocmVhZCA9IG0ucHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg0NTYpOworICAgICAgbS5ncm91cCA9IG5ldyBTbGljZUdyb3VwKG0udGhyZWFkKTsKKworICAgICAgbS5zQSA9IG0uZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgICAgeyB0aXRsZTogJ3NBJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEwLjAgfSkpOworCisgICAgICBtLmdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworICAgIH0pOworCisgICAgYXNzZXJ0LmRlZXBFcXVhbChtLnNBLnBhcmVudENvbnRhaW5lciwgbS50aHJlYWQpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NsaWNlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvc2xpY2VfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNmJlYTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3NsaWNlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDE2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZV9ncm91cC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOworICB2YXIgU2xpY2VHcm91cCA9IHRyLm1vZGVsLlNsaWNlR3JvdXA7CisgIHZhciBuZXdTbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZTsKKyAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKKyAgdmFyIG5ld1NsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZDsKKyAgdmFyIG5ld0Zha2VUaHJlYWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3RmFrZVRocmVhZDsKKworICB0ZXN0KCdmaW5kRGVzY2VuZGVudFNsaWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdyb3VwID0gbmV3IFNsaWNlR3JvdXAobmV3RmFrZVRocmVhZCgpKTsKKworICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0EnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMTAuMCB9KSk7CisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzQicsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiA0LjAgfSkpOworICAgIHZhciBzQyA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0MnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMi4wIH0pKTsKKworICAgIGdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgYXNzZXJ0LmRlZXBFcXVhbChzQiwgc0EuZmluZERlc2NlbmRlbnRTbGljZSgnc0InKSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzQywgc0EuZmluZERlc2NlbmRlbnRTbGljZSgnc0MnKSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHNBLmZpbmREZXNjZW5kZW50U2xpY2UoJ3NEJykpOworICB9KTsKKworICB0ZXN0KCdpdGVyYXRlQWxsRGVzY2VuZGVudHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzQScsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiAxMC4wIH0pKTsKKyAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NCJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDQuMCB9KSk7CisgICAgdmFyIHNDID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzQycsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiAyLjAgfSkpOworCisgICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNBLmRlc2NlbmRlbnRTbGljZXMsIFtzQiwgc0NdKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNDLmRlc2NlbmRlbnRTbGljZXMsIFtdKTsKKyAgfSk7CisKKyAgdGVzdCgnbW9zdFRvcExldmVsU2xpY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzQScsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiAxMC4wIH0pKTsKKyAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NCJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDQuMCB9KSk7CisgICAgdmFyIHNDID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzQycsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiAyLjAgfSkpOworCisgICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICBhc3NlcnQuZXF1YWwoc0EubW9zdFRvcExldmVsU2xpY2UsIHNBKTsKKyAgICBhc3NlcnQuZXF1YWwoc0IubW9zdFRvcExldmVsU2xpY2UsIHNBKTsKKyAgICBhc3NlcnQuZXF1YWwoc0MubW9zdFRvcExldmVsU2xpY2UsIHNBKTsKKyAgfSk7CisKKyAgdGVzdCgnaXRlcmF0ZUFsbEFuY2VzdG9ycycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisKKyAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NBJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEwLjAgfSkpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0InLCBzdGFydDogMC4wLCBkdXJhdGlvbjogNC4wIH0pKTsKKyAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NDJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDIuMCB9KSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIC8vIE5vdGUgdGhhdCB3ZSBpdGVyYXRlIGFuY2VzdG9ycyBmcm9tIHRoZSBsZWF2ZXMgdG8gdGhlIHJvb3QKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNDLmFuY2VzdG9yU2xpY2VzLCBbc0IsIHNBXSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzQS5hbmNlc3RvclNsaWNlcywgW10pOworICB9KTsKKworICB0ZXN0KCdpdGVyYXRlQWxsU3Vic2VxdWVudFNsaWNlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisKKyAgICAvLyBbICAgICBBICAgICBdCisgICAgLy8gWyBCIF1bIEQgXVtGXQorICAgIC8vIFtDXSAgW0VdCisKKyAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NBJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEwLjAgfSkpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0InLCBzdGFydDogMC4wLCBkdXJhdGlvbjogNC4wIH0pKTsKKyAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NDJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDIuMCB9KSk7CisgICAgdmFyIHNEID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzRCcsIHN0YXJ0OiA1LjAsIGR1cmF0aW9uOiAyLjAgfSkpOworICAgIHZhciBzRSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0UnLCBzdGFydDogNS4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICB2YXIgc0YgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NGJywgc3RhcnQ6IDguMCwgZHVyYXRpb246IDIuMCB9KSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoc0Euc3Vic2VxdWVudFNsaWNlcywgW3NCLCBzQywgc0QsIHNFLCBzRl0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc0Quc3Vic2VxdWVudFNsaWNlcywgW3NFLCBzRl0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc0Yuc3Vic2VxdWVudFNsaWNlcywgW10pOworICB9KTsKKworICB0ZXN0KCdhbmNlc3RvckFuZFN1YnNlcXVlbnRTbGljZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZ3JvdXAgPSBuZXcgU2xpY2VHcm91cChuZXdGYWtlVGhyZWFkKCkpOworCisgICAgLy8gWyAgICAgQSAgICAgXQorICAgIC8vIFsgQiBdWyBEIF1bRl0KKyAgICAvLyBbQ10gIFtFXQorCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzQScsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiAxMC4wIH0pKTsKKyAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NCJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDQuMCB9KSk7CisgICAgdmFyIHNDID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzQycsIHN0YXJ0OiAwLjAsIGR1cmF0aW9uOiAyLjAgfSkpOworICAgIHZhciBzRCA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0QnLCBzdGFydDogNS4wLCBkdXJhdGlvbjogMi4wIH0pKTsKKyAgICB2YXIgc0UgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NFJywgc3RhcnQ6IDUuMCwgZHVyYXRpb246IDEuMCB9KSk7CisgICAgdmFyIHNGID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzRicsIHN0YXJ0OiA4LjAsIGR1cmF0aW9uOiAyLjAgfSkpOworCisgICAgZ3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHNELmFuY2VzdG9yQW5kU3Vic2VxdWVudFNsaWNlcywgW3NELCBzQSwgc0UsIHNGXSk7CisgIH0pOworCisgIHRlc3QoJ2VudGlyZUhpZXJhcmNoeScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKG5ld0Zha2VUaHJlYWQoKSk7CisKKyAgICAvLyBbICAgICBBICAgICBdCisgICAgLy8gWyBCIF1bIEQgXVtGXQorICAgIC8vIFtDXSAgW0VdCisKKyAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NBJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDEwLjAgfSkpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0InLCBzdGFydDogMC4wLCBkdXJhdGlvbjogNC4wIH0pKTsKKyAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NDJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDIuMCB9KSk7CisgICAgdmFyIHNEID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlRXgoCisgICAgICAgIHsgdGl0bGU6ICdzRCcsIHN0YXJ0OiA1LjAsIGR1cmF0aW9uOiAyLjAgfSkpOworICAgIHZhciBzRSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZUV4KAorICAgICAgICB7IHRpdGxlOiAnc0UnLCBzdGFydDogNS4wLCBkdXJhdGlvbjogMS4wIH0pKTsKKyAgICB2YXIgc0YgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VFeCgKKyAgICAgICAgeyB0aXRsZTogJ3NGJywgc3RhcnQ6IDguMCwgZHVyYXRpb246IDIuMCB9KSk7CisKKyAgICBncm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwoc0QuZW50aXJlSGllcmFyY2h5LCBbc0EsIHNCLCBzQywgc0QsIHNFLCBzRl0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3N0YWNrX2ZyYW1lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3N0YWNrX2ZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBhZTUwZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvc3RhY2tfZnJhbWUuaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIFN0YWNrRnJhbWUocGFyZW50RnJhbWUsIGlkLCBjYXRlZ29yeSwgdGl0bGUsIGNvbG9ySWQpIHsKKyAgICBpZiAoaWQgPT09IHVuZGVmaW5lZCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignaWQgbXVzdCBiZSBnaXZlbicpOworICAgIHRoaXMucGFyZW50RnJhbWVfID0gcGFyZW50RnJhbWU7CisgICAgdGhpcy5pZCA9IGlkOworICAgIHRoaXMuY2F0ZWdvcnkgPSBjYXRlZ29yeSB8fCAnJzsKKyAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy5jb2xvcklkID0gY29sb3JJZDsKKyAgICB0aGlzLmNoaWxkcmVuID0gW107CisKKyAgICBpZiAodGhpcy5wYXJlbnRGcmFtZV8pCisgICAgICB0aGlzLnBhcmVudEZyYW1lXy5hZGRDaGlsZCh0aGlzKTsKKyAgfQorCisgIFN0YWNrRnJhbWUucHJvdG90eXBlID0geworICAgIGdldCBwYXJlbnRGcmFtZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnBhcmVudEZyYW1lXzsKKyAgICB9LAorCisgICAgc2V0IHBhcmVudEZyYW1lKHBhcmVudEZyYW1lKSB7CisgICAgICBpZiAodGhpcy5wYXJlbnRGcmFtZV8pCisgICAgICAgIHRoaXMucGFyZW50RnJhbWVfLnJlbW92ZUNoaWxkKHRoaXMpOworICAgICAgdGhpcy5wYXJlbnRGcmFtZV8gPSBwYXJlbnRGcmFtZTsKKyAgICAgIGlmICh0aGlzLnBhcmVudEZyYW1lXykKKyAgICAgICAgdGhpcy5wYXJlbnRGcmFtZV8uYWRkQ2hpbGQodGhpcyk7CisgICAgfSwKKworICAgIGFkZENoaWxkOiBmdW5jdGlvbihjaGlsZCkgeworICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTsKKyAgICB9LAorCisgICAgcmVtb3ZlQ2hpbGQ6IGZ1bmN0aW9uKGNoaWxkKSB7CisgICAgICB2YXIgaSA9IHRoaXMuY2hpbGRyZW4uaW5kZXhPZihjaGlsZC5pZCk7CisgICAgICBpZiAoaSA9PSAtMSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdvbWcnKTsKKyAgICAgIHRoaXMuY2hpbGRyZW4uc3BsaWNlKGksIDEpOworICAgIH0sCisKKyAgICByZW1vdmVBbGxDaGlsZHJlbjogZnVuY3Rpb24oKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMuY2hpbGRyZW5baV0ucGFyZW50RnJhbWVfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoMCwgdGhpcy5jaGlsZHJlbi5sZW5ndGgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHN0YWNrRnJhbWVzIHdoZXJlIHRoZSBtb3N0IHNwZWNpZmljIGZyYW1lIGlzIGZpcnN0LgorICAgICAqLworICAgIGdldCBzdGFja1RyYWNlKCkgeworICAgICAgdmFyIHN0YWNrID0gW107CisgICAgICB2YXIgY3VyID0gdGhpczsKKyAgICAgIHdoaWxlIChjdXIpIHsKKyAgICAgICAgc3RhY2sucHVzaChjdXIpOworICAgICAgICBjdXIgPSBjdXIucGFyZW50RnJhbWU7CisgICAgICB9CisgICAgICByZXR1cm4gc3RhY2s7CisgICAgfSwKKworICAgIGdldFVzZXJGcmllbmRseVN0YWNrVHJhY2U6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUcmFjZS5tYXAoZnVuY3Rpb24oeCkgeworICAgICAgICByZXR1cm4geC5jYXRlZ29yeSArICc6ICcgKyB4LnRpdGxlOworICAgICAgfSk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgU3RhY2tGcmFtZTogU3RhY2tGcmFtZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGhyZWFkLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3RocmVhZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZTM0MWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3RocmVhZC5odG1sCkBAIC0wLDAgKzEsMjk5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9jb250YWluZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RocmVhZF9zbGljZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2VfZ3JvdXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2FzeW5jX3NsaWNlX2dyb3VwLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyB0aGUgVGhyZWFkIGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEFzeW5jU2xpY2UgPSB0ci5tb2RlbC5Bc3luY1NsaWNlOworICB2YXIgQXN5bmNTbGljZUdyb3VwID0gdHIubW9kZWwuQXN5bmNTbGljZUdyb3VwOworICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKKyAgdmFyIFNsaWNlR3JvdXAgPSB0ci5tb2RlbC5TbGljZUdyb3VwOworICB2YXIgVGhyZWFkU2xpY2UgPSB0ci5tb2RlbC5UaHJlYWRTbGljZTsKKyAgdmFyIFRocmVhZFRpbWVTbGljZSA9IHRyLm1vZGVsLlRocmVhZFRpbWVTbGljZTsKKworICAvKioKKyAgICogQSBUaHJlYWQgc3RvcmVzIGFsbCB0aGUgdHJhY2UgZXZlbnRzIGNvbGxlY3RlZCBmb3IgYSBwYXJ0aWN1bGFyCisgICAqIHRocmVhZC4gV2Ugb3JnYW5pemUgdGhlIHN5bmNocm9ub3VzIHNsaWNlcyBvbiBhIHRocmVhZCBieSAic3Vicm93cywiIHdoZXJlCisgICAqIHN1YnJvdyAwIGhhcyBhbGwgdGhlIHJvb3Qgc2xpY2VzLCBzdWJyb3cgMSB0aG9zZSBuZXN0ZWQgMSBkZWVwLCBhbmQgc28gb24uCisgICAqIFRoZSBhc3luY2hyb25vdXMgc2xpY2VzIGFyZSBzdG9yZWQgaW4gYW4gQXN5bmNTbGljZUdyb3VwIG9iamVjdC4KKyAgICoKKyAgICogVGhlIHNsaWNlcyBzdG9yZWQgb24gYSBUaHJlYWQgc2hvdWxkIGJlIGluc3RhbmNlcyBvZgorICAgKiBUaHJlYWRTbGljZS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHt0ci5tb2RlbC5FdmVudENvbnRhaW5lcn0KKyAgICovCisgIGZ1bmN0aW9uIFRocmVhZChwYXJlbnQsIHRpZCkgeworICAgIGlmICghcGFyZW50KQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJlbnQgbXVzdCBiZSBwcm92aWRlZC4nKTsKKworICAgIHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLmNhbGwodGhpcyk7CisgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CisgICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOworICAgIHRoaXMuc29ydEluZGV4ID0gMDsKKyAgICB0aGlzLnRpZCA9IHRpZDsKKyAgICB0aGlzLm5hbWUgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zYW1wbGVzXyA9IHVuZGVmaW5lZDsgLy8gU2V0IGR1cmluZyBjcmVhdGVTdWJTbGljZXMKKworICAgIHZhciB0aGF0ID0gdGhpczsKKworICAgIHRoaXMuc2xpY2VHcm91cCA9IG5ldyBTbGljZUdyb3VwKHRoaXMsIFRocmVhZFNsaWNlLCAnc2xpY2VzJyk7CisgICAgdGhpcy50aW1lU2xpY2VzID0gdW5kZWZpbmVkOworICAgIHRoaXMua2VybmVsU2xpY2VHcm91cCA9IG5ldyBTbGljZUdyb3VwKAorICAgICAgICB0aGlzLCBUaHJlYWRTbGljZSwgJ2tlcm5lbC1zbGljZXMnKTsKKyAgICB0aGlzLmFzeW5jU2xpY2VHcm91cCA9IG5ldyBBc3luY1NsaWNlR3JvdXAodGhpcywgJ2FzeW5jLXNsaWNlcycpOworICB9CisKKyAgVGhyZWFkLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLkV2ZW50Q29udGFpbmVyLnByb3RvdHlwZSwKKworICAgIGdldCBndWlkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87CisgICAgfSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnBhcmVudC5tb2RlbDsKKyAgICB9LAorCisgICAgZ2V0IHN0YWJsZUlkKCkgeworICAgICAgcmV0dXJuIHRoaXMucGFyZW50LnN0YWJsZUlkICsgJy4nICsgdGhpcy50aWQ7CisgICAgfSwKKworICAgIGNvbXBhcmVUbzogZnVuY3Rpb24odGhhdCkgeworICAgICAgcmV0dXJuIFRocmVhZC5jb21wYXJlKHRoaXMsIHRoYXQpOworICAgIH0sCisKKyAgICBpdGVyYXRlQWxsQ2hpbGRFdmVudENvbnRhaW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgaWYgKHRoaXMuc2xpY2VHcm91cC5sZW5ndGgpCisgICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIHRoaXMuc2xpY2VHcm91cCk7CisgICAgICBpZiAodGhpcy5rZXJuZWxTbGljZUdyb3VwLmxlbmd0aCkKKyAgICAgICAgY2FsbGJhY2suY2FsbChvcHRfdGhpcywgdGhpcy5rZXJuZWxTbGljZUdyb3VwKTsKKyAgICAgIGlmICh0aGlzLmFzeW5jU2xpY2VHcm91cC5sZW5ndGgpCisgICAgICAgIGNhbGxiYWNrLmNhbGwob3B0X3RoaXMsIHRoaXMuYXN5bmNTbGljZUdyb3VwKTsKKyAgICB9LAorCisgICAgaXRlcmF0ZUFsbEV2ZW50c0luVGhpc0NvbnRhaW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlUHJlZGljYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBvcHRfdGhpcykgeworICAgICAgaWYgKHRoaXMudGltZVNsaWNlcyAmJiB0aGlzLnRpbWVTbGljZXMubGVuZ3RoKSB7CisgICAgICAgIGlmIChldmVudFR5cGVQcmVkaWNhdGUuY2FsbChvcHRfdGhpcywgVGhyZWFkVGltZVNsaWNlKSkKKyAgICAgICAgICB0aGlzLnRpbWVTbGljZXMuZm9yRWFjaChjYWxsYmFjaywgb3B0X3RoaXMpOworICAgICAgfQorICAgIH0sCisKKyAgICBpdGVyYXRlQWxsUGVyc2lzdGFibGVPYmplY3RzOiBmdW5jdGlvbihjYikgeworICAgICAgY2IodGhpcyk7CisgICAgICBpZiAodGhpcy5zbGljZUdyb3VwLmxlbmd0aCkKKyAgICAgICAgY2IodGhpcy5zbGljZUdyb3VwKTsKKyAgICAgIHRoaXMuYXN5bmNTbGljZUdyb3VwLnZpZXdTdWJHcm91cHMuZm9yRWFjaChjYik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFNoaWZ0cyBhbGwgdGhlIHRpbWVzdGFtcHMgaW5zaWRlIHRoaXMgdGhyZWFkIGZvcndhcmQgYnkgdGhlIGFtb3VudAorICAgICAqIHNwZWNpZmllZC4KKyAgICAgKi8KKyAgICBzaGlmdFRpbWVzdGFtcHNGb3J3YXJkOiBmdW5jdGlvbihhbW91bnQpIHsKKyAgICAgIHRoaXMuc2xpY2VHcm91cC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7CisKKyAgICAgIGlmICh0aGlzLnRpbWVTbGljZXMpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRpbWVTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgc2xpY2UgPSB0aGlzLnRpbWVTbGljZXNbaV07CisgICAgICAgICAgc2xpY2Uuc3RhcnQgKz0gYW1vdW50OworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHRoaXMua2VybmVsU2xpY2VHcm91cC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7CisgICAgICB0aGlzLmFzeW5jU2xpY2VHcm91cC5zaGlmdFRpbWVzdGFtcHNGb3J3YXJkKGFtb3VudCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGlzIHRocmVhZCBpcyBlbXB0eS4gSWYgdHJ1ZSwgaXQgdXN1YWxseSBpbXBsaWVzCisgICAgICogdGhhdCBpdCBzaG91bGQgYmUgcHJ1bmVkIGZyb20gdGhlIG1vZGVsLgorICAgICAqLworICAgIGdldCBpc0VtcHR5KCkgeworICAgICAgaWYgKHRoaXMuc2xpY2VHcm91cC5sZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICh0aGlzLnNsaWNlR3JvdXAub3BlblNsaWNlQ291bnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICh0aGlzLnRpbWVTbGljZXMgJiYgdGhpcy50aW1lU2xpY2VzLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgaWYgKHRoaXMua2VybmVsU2xpY2VHcm91cC5sZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICh0aGlzLmFzeW5jU2xpY2VHcm91cC5sZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICh0aGlzLnNhbXBsZXNfLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFVwZGF0ZXMgdGhlIGJvdW5kcyBiYXNlZCBvbiB0aGUKKyAgICAgKiBjdXJyZW50IG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0aHJlYWQuCisgICAgICovCisgICAgdXBkYXRlQm91bmRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuYm91bmRzLnJlc2V0KCk7CisKKyAgICAgIHRoaXMuc2xpY2VHcm91cC51cGRhdGVCb3VuZHMoKTsKKyAgICAgIHRoaXMuYm91bmRzLmFkZFJhbmdlKHRoaXMuc2xpY2VHcm91cC5ib3VuZHMpOworCisgICAgICB0aGlzLmtlcm5lbFNsaWNlR3JvdXAudXBkYXRlQm91bmRzKCk7CisgICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLmtlcm5lbFNsaWNlR3JvdXAuYm91bmRzKTsKKworICAgICAgdGhpcy5hc3luY1NsaWNlR3JvdXAudXBkYXRlQm91bmRzKCk7CisgICAgICB0aGlzLmJvdW5kcy5hZGRSYW5nZSh0aGlzLmFzeW5jU2xpY2VHcm91cC5ib3VuZHMpOworCisgICAgICBpZiAodGhpcy50aW1lU2xpY2VzICYmIHRoaXMudGltZVNsaWNlcy5sZW5ndGgpIHsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUodGhpcy50aW1lU2xpY2VzWzBdLnN0YXJ0KTsKKyAgICAgICAgdGhpcy5ib3VuZHMuYWRkVmFsdWUoCisgICAgICAgICAgICB0aGlzLnRpbWVTbGljZXNbdGhpcy50aW1lU2xpY2VzLmxlbmd0aCAtIDFdLmVuZCk7CisgICAgICB9CisKKyAgICAgIGlmICh0aGlzLnNhbXBsZXNfICYmIHRoaXMuc2FtcGxlc18ubGVuZ3RoKSB7CisgICAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKHRoaXMuc2FtcGxlc19bMF0uc3RhcnQpOworICAgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZSgKKyAgICAgICAgICAgIHRoaXMuc2FtcGxlc19bdGhpcy5zYW1wbGVzXy5sZW5ndGggLSAxXS5lbmQpOworICAgICAgfQorICAgIH0sCisKKyAgICBhZGRDYXRlZ29yaWVzVG9EaWN0OiBmdW5jdGlvbihjYXRlZ29yaWVzRGljdCkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNsaWNlR3JvdXAubGVuZ3RoOyBpKyspCisgICAgICAgIGNhdGVnb3JpZXNEaWN0W3RoaXMuc2xpY2VHcm91cC5zbGljZXNbaV0uY2F0ZWdvcnldID0gdHJ1ZTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5rZXJuZWxTbGljZUdyb3VwLmxlbmd0aDsgaSsrKQorICAgICAgICBjYXRlZ29yaWVzRGljdFt0aGlzLmtlcm5lbFNsaWNlR3JvdXAuc2xpY2VzW2ldLmNhdGVnb3J5XSA9IHRydWU7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYXN5bmNTbGljZUdyb3VwLmxlbmd0aDsgaSsrKQorICAgICAgICBjYXRlZ29yaWVzRGljdFt0aGlzLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbaV0uY2F0ZWdvcnldID0gdHJ1ZTsKKyAgICAgIGlmICh0aGlzLnNhbXBsZXNfKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zYW1wbGVzXy5sZW5ndGg7IGkrKykKKyAgICAgICAgICBjYXRlZ29yaWVzRGljdFt0aGlzLnNhbXBsZXNfW2ldLmNhdGVnb3J5XSA9IHRydWU7CisgICAgICB9CisgICAgfSwKKworICAgIGF1dG9DbG9zZU9wZW5TbGljZXM6IGZ1bmN0aW9uKG9wdF9tYXhUaW1lc3RhbXApIHsKKyAgICAgIHRoaXMuc2xpY2VHcm91cC5hdXRvQ2xvc2VPcGVuU2xpY2VzKG9wdF9tYXhUaW1lc3RhbXApOworICAgICAgdGhpcy5rZXJuZWxTbGljZUdyb3VwLmF1dG9DbG9zZU9wZW5TbGljZXMob3B0X21heFRpbWVzdGFtcCk7CisgICAgfSwKKworICAgIG1lcmdlS2VybmVsV2l0aFVzZXJsYW5kOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmtlcm5lbFNsaWNlR3JvdXAubGVuZ3RoID4gMCkgeworICAgICAgICB2YXIgbmV3U2xpY2VzID0gU2xpY2VHcm91cC5tZXJnZSgKKyAgICAgICAgICAgIHRoaXMuc2xpY2VHcm91cCwgdGhpcy5rZXJuZWxTbGljZUdyb3VwKTsKKyAgICAgICAgdGhpcy5zbGljZUdyb3VwLnNsaWNlcyA9IG5ld1NsaWNlcy5zbGljZXM7CisgICAgICAgIHRoaXMua2VybmVsU2xpY2VHcm91cCA9IG5ldyBTbGljZUdyb3VwKHRoaXMpOworICAgICAgICB0aGlzLnVwZGF0ZUJvdW5kcygpOworICAgICAgfQorICAgIH0sCisKKyAgICBjcmVhdGVTdWJTbGljZXM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zbGljZUdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworICAgICAgdGhpcy5zYW1wbGVzXyA9IHRoaXMucGFyZW50Lm1vZGVsLnNhbXBsZXMuZmlsdGVyKGZ1bmN0aW9uKHNhbXBsZSkgeworICAgICAgICByZXR1cm4gc2FtcGxlLnRocmVhZCA9PSB0aGlzOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1N0cmluZ30gQSB1c2VyLWZyaWVuZGx5IG5hbWUgZm9yIHRoaXMgdGhyZWFkLgorICAgICAqLworICAgIGdldCB1c2VyRnJpZW5kbHlOYW1lKCkgeworICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCB0aGlzLnRpZDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7U3RyaW5nfSBVc2VyIGZyaWVuZGx5IGRldGFpbHMgYWJvdXQgdGhpcyB0aHJlYWQuCisgICAgICovCisgICAgZ2V0IHVzZXJGcmllbmRseURldGFpbHMoKSB7CisgICAgICByZXR1cm4gJ3RpZDogJyArIHRoaXMudGlkICsKKyAgICAgICAgICAodGhpcy5uYW1lID8gJywgbmFtZTogJyArIHRoaXMubmFtZSA6ICcnKTsKKyAgICB9LAorCisgICAgZ2V0U2V0dGluZ3NLZXk6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLm5hbWUpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICB2YXIgcGFyZW50S2V5ID0gdGhpcy5wYXJlbnQuZ2V0U2V0dGluZ3NLZXkoKTsKKyAgICAgIGlmICghcGFyZW50S2V5KQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHBhcmVudEtleSArICcuJyArIHRoaXMubmFtZTsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgc2xpY2UgaW4gdGhlIHRpbWVTbGljZXMgYXJyYXksIG9yIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBpbmRleE9mVGltZVNsaWNlOiBmdW5jdGlvbih0aW1lU2xpY2UpIHsKKyAgICAgIHZhciBpID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAorICAgICAgICAgIHRoaXMudGltZVNsaWNlcywKKyAgICAgICAgICBmdW5jdGlvbihzbGljZSkgeyByZXR1cm4gc2xpY2Uuc3RhcnQ7IH0sCisgICAgICAgICAgdGltZVNsaWNlLnN0YXJ0KTsKKyAgICAgIGlmICh0aGlzLnRpbWVTbGljZXNbaV0gIT09IHRpbWVTbGljZSkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiBpOworICAgIH0sCisKKyAgICBnZXRTY2hlZHVsaW5nU3RhdHNGb3JSYW5nZTogZnVuY3Rpb24oc3RhcnQsIGVuZCkgeworICAgICAgdmFyIHN0YXRzID0ge307CisKKyAgICAgIGlmICghdGhpcy50aW1lU2xpY2VzKSByZXR1cm4gc3RhdHM7CisKKyAgICAgIGZ1bmN0aW9uIGFkZFN0YXRzRm9yU2xpY2UodGhyZWFkVGltZVNsaWNlKSB7CisgICAgICAgIHZhciBvdmVybGFwU3RhcnQgPSBNYXRoLm1heCh0aHJlYWRUaW1lU2xpY2Uuc3RhcnQsIHN0YXJ0KTsKKyAgICAgICAgdmFyIG92ZXJsYXBFbmQgPSBNYXRoLm1pbih0aHJlYWRUaW1lU2xpY2UuZW5kLCBlbmQpOworICAgICAgICB2YXIgc2NoZWR1bGluZ1N0YXRlID0gdGhyZWFkVGltZVNsaWNlLnNjaGVkdWxpbmdTdGF0ZTsKKworICAgICAgICBpZiAoIShzY2hlZHVsaW5nU3RhdGUgaW4gc3RhdHMpKQorICAgICAgICAgIHN0YXRzW3NjaGVkdWxpbmdTdGF0ZV0gPSAwOworICAgICAgICBzdGF0c1tzY2hlZHVsaW5nU3RhdGVdICs9IG92ZXJsYXBFbmQgLSBvdmVybGFwU3RhcnQ7CisgICAgICB9CisKKyAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy50aW1lU2xpY2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LnN0YXJ0OyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LmVuZDsgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkU3RhdHNGb3JTbGljZSk7CisgICAgICByZXR1cm4gc3RhdHM7CisgICAgfSwKKworICAgIGdldCBzYW1wbGVzKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlc187CisgICAgfQorICB9OworCisgIC8qKgorICAgKiBDb21wYXJpc29uIGJldHdlZW4gdGhyZWFkcyB0aGF0IG9yZGVycyBmaXJzdCBieSBwYXJlbnQuY29tcGFyZVRvLAorICAgKiB0aGVuIGJ5IG5hbWVzLCB0aGVuIGJ5IHRpZC4KKyAgICovCisgIFRocmVhZC5jb21wYXJlID0gZnVuY3Rpb24oeCwgeSkgeworICAgIHZhciB0bXAgPSB4LnBhcmVudC5jb21wYXJlVG8oeS5wYXJlbnQpOworICAgIGlmICh0bXApCisgICAgICByZXR1cm4gdG1wOworCisgICAgdG1wID0geC5zb3J0SW5kZXggLSB5LnNvcnRJbmRleDsKKyAgICBpZiAodG1wKQorICAgICAgcmV0dXJuIHRtcDsKKworICAgIHRtcCA9IHRyLmIuY29tcGFyZVBvc3NpYmx5VW5kZWZpbmVkVmFsdWVzKAorICAgICAgICB4Lm5hbWUsIHkubmFtZSwKKyAgICAgICAgZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geC5sb2NhbGVDb21wYXJlKHkpOyB9KTsKKyAgICBpZiAodG1wKQorICAgICAgcmV0dXJuIHRtcDsKKworICAgIHJldHVybiB4LnRpZCAtIHkudGlkOworICB9OworCisgIHJldHVybiB7CisgICAgVGhyZWFkOiBUaHJlYWQKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3RocmVhZF9zbGljZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC90aHJlYWRfc2xpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZThlYWUzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC90aHJlYWRfc2xpY2UuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBUaHJlYWQgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKKworICAvKioKKyAgICogQSBUaHJlYWRTbGljZSByZXByZXNlbnRzIGFuIGludGVydmFsIG9mIHRpbWUgb24gYSB0aHJlYWQgcmVzb3VyY2UKKyAgICogd2l0aCBhc3NvY2lhdGVkIG5lc3RpbmdlZCBzbGljZSBpbmZvcm1hdGlvbi4KKyAgICoKKyAgICogVGhyZWFkU2xpY2VzIGFyZSB0eXBpY2FsbHkgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgdHJhY2UgZXZlbnQgcGFpciBvbiBhCisgICAqIHNwZWNpZmljIHRocmVhZC4KKyAgICogRm9yIGV4YW1wbGUsCisgICAqICAgVFJBQ0VfRVZFTlRfQkVHSU4xKCJ4IiwibXlBcmciLCA3KSBhdCB0aW1lPTAuMW1zCisgICAqICAgVFJBQ0VfRVZFTlRfRU5EMCgpICAgICAgICAgICAgICAgICBhdCB0aW1lPTAuM21zCisgICAqIFRoaXMgcmVzdWx0cyBpbiBhIHNpbmdsZSBzbGljZSBmcm9tIDAuMSB3aXRoIGR1cmF0aW9uIDAuMiBvbiBhCisgICAqIHNwZWNpZmljIHRocmVhZC4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBUaHJlYWRTbGljZShjYXQsIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgYXJncywgb3B0X2R1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICBvcHRfY3B1U3RhcnQsIG9wdF9jcHVEdXJhdGlvbiwgb3B0X2FyZ3NTdHJpcHBlZCkgeworICAgIFNsaWNlLmNhbGwodGhpcywgY2F0LCB0aXRsZSwgY29sb3JJZCwgc3RhcnQsIGFyZ3MsIG9wdF9kdXJhdGlvbiwKKyAgICAgICAgICAgICAgIG9wdF9jcHVTdGFydCwgb3B0X2NwdUR1cmF0aW9uLCBvcHRfYXJnc1N0cmlwcGVkKTsKKyAgICAvLyBEbyBub3QgbW9kaWZ5IHRoaXMgZGlyZWN0bHkuCisgICAgLy8gc3ViU2xpY2VzIGlzIGNvbmZpZ3VyZWQgYnkgU2xpY2VHcm91cC5yZWJ1aWxkU3ViUm93c18uCisgICAgdGhpcy5zdWJTbGljZXMgPSBbXTsKKyAgfQorCisgIFRocmVhZFNsaWNlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFNsaWNlLnByb3RvdHlwZQorICB9OworCisgIHRyLm1vZGVsLkV2ZW50UmVnaXN0cnkucmVnaXN0ZXIoCisgICAgICBUaHJlYWRTbGljZSwKKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ3NsaWNlJywKKyAgICAgICAgcGx1cmFsTmFtZTogJ3NsaWNlcycsCisgICAgICAgIHNpbmdsZVZpZXdFbGVtZW50TmFtZTogJ3RyLXVpLWEtc2luZ2xlLXRocmVhZC1zbGljZS1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1tdWx0aS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnCisgICAgICB9KTsKKworICByZXR1cm4geworICAgIFRocmVhZFNsaWNlOiBUaHJlYWRTbGljZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGhyZWFkX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGhyZWFkX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC90aHJlYWRfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3RocmVhZF90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGhyZWFkX3RpbWVfc2xpY2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGhyZWFkX3RpbWVfc2xpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTlhZWQzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC90aHJlYWRfdGltZV9zbGljZS5odG1sCkBAIC0wLDAgKzEsMTUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLm1vZGVsJywgZnVuY3Rpb24oKSB7CisgIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOworCisKKyAgdmFyIFNDSEVEVUxJTkdfU1RBVEUgPSB7CisgICAgREVCVUc6ICdEZWJ1ZycsCisgICAgRVhJVF9ERUFEOiAnRXhpdCBEZWFkJywKKyAgICBSVU5OQUJMRTogJ1J1bm5hYmxlJywKKyAgICBSVU5OSU5HOiAnUnVubmluZycsCisgICAgU0xFRVBJTkc6ICdTbGVlcGluZycsCisgICAgU1RPUFBFRDogJ1N0b3BwZWQnLAorICAgIFRBU0tfREVBRDogJ1Rhc2sgRGVhZCcsCisgICAgVU5JTlRSX1NMRUVQOiAnVW5pbnRlcnJ1cHRpYmxlIFNsZWVwJywKKyAgICBVTklOVFJfU0xFRVBfV0FLRV9LSUxMOiAnVW5pbnRlcnJ1cHRpYmxlIFNsZWVwIHwgV2FrZUtpbGwnLAorICAgIFVOSU5UUl9TTEVFUF9XQUtJTkc6ICdVbmludGVycnVwdGlibGUgU2xlZXAgfCBXYWtpbmcnLAorICAgIFVOS05PV046ICdVTktOT1dOJywKKyAgICBXQUtFX0tJTEw6ICdXYWtla2lsbCcsCisgICAgV0FLSU5HOiAnV2FraW5nJywKKyAgICBaT01CSUU6ICdab21iaWUnCisgIH07CisKKyAgLyoqCisgICAqIEEgVGhyZWFkVGltZVNsaWNlIGlzIGEgc2xpY2Ugb2YgdGltZSBvbiBhIHNwZWNpZmljIHRocmVhZCB3aGVyZSB0aGF0IHRocmVhZAorICAgKiB3YXMgcnVubmluZyBvbiBhIHNwZWNpZmljIENQVSwgb3IgaW4gYSBzcGVjaWZpYyBzbGVlcCBzdGF0ZS4KKyAgICoKKyAgICogQXMgYSB0aHJlYWQgc3dpdGNoZXMgbW92ZXMgdGhyb3VnaCBpdHMgbGlmZSwgaXQgc29tZXRpbWVzIGdvZXMgdG8gc2xlZXAgYW5kCisgICAqIGNhbid0IHJ1bi4gT3RoZXIgdGltZXMsIGl0cyBydW5uYWJsZSBidXQgaXNuJ3QgYWN0dWFsbHkgYXNzaWduZWQgdG8gYSBDUFUuCisgICAqIEZpbmFsbHksIHNvbWV0aW1lcyBpdCBnZXRzIHB1dCBvbiBhIENQVSB0byBhY3R1YWxseSBleGVjdXRlLiBFYWNoIG9mIHRoZXNlCisgICAqIHN0YXRlcyBpcyByZXByZXNlbnRlZCBieSBhIFRocmVhZFRpbWVTbGljZToKKyAgICoKKyAgICogICBTbGVlcGluZyBvciBydW5uYWJsZTogY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcgaXMgdW5kZWZpbmVkCisgICAqICAgUnVubmluZzogIGNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nIGlzIHNldC4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBUaHJlYWRUaW1lU2xpY2UodGhyZWFkLCBzY2hlZHVsaW5nU3RhdGUsIGNhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24pIHsKKyAgICBTbGljZS5jYWxsKHRoaXMsIGNhdCwgc2NoZWR1bGluZ1N0YXRlLAorICAgICAgICAgICAgICAgdGhpcy5nZXRDb2xvckZvclN0YXRlXyhzY2hlZHVsaW5nU3RhdGUpLAorICAgICAgICBzdGFydCwgYXJncywgb3B0X2R1cmF0aW9uKTsKKyAgICB0aGlzLnRocmVhZCA9IHRocmVhZDsKKyAgICB0aGlzLnNjaGVkdWxpbmdTdGF0ZSA9IHNjaGVkdWxpbmdTdGF0ZTsKKyAgICB0aGlzLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nID0gdW5kZWZpbmVkOworICB9CisKKyAgVGhyZWFkVGltZVNsaWNlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFNsaWNlLnByb3RvdHlwZSwKKworICAgIGdldENvbG9yRm9yU3RhdGVfOiBmdW5jdGlvbihzdGF0ZSkgeworICAgICAgdmFyIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUgPSB0ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWU7CisgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgIGNhc2UgU0NIRURVTElOR19TVEFURS5SVU5OQUJMRToKKyAgICAgICAgICByZXR1cm4gZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgndGhyZWFkX3N0YXRlX3J1bm5hYmxlJyk7CisgICAgICAgIGNhc2UgU0NIRURVTElOR19TVEFURS5SVU5OSU5HOgorICAgICAgICAgIHJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfcnVubmluZycpOworICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuU0xFRVBJTkc6CisgICAgICAgICAgcmV0dXJuIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ3RocmVhZF9zdGF0ZV9zbGVlcGluZycpOworICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuREVCVUc6CisgICAgICAgIGNhc2UgU0NIRURVTElOR19TVEFURS5FWElUX0RFQUQ6CisgICAgICAgIGNhc2UgU0NIRURVTElOR19TVEFURS5TVE9QUEVEOgorICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuVEFTS19ERUFEOgorICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuVU5JTlRSX1NMRUVQOgorICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuVU5JTlRSX1NMRUVQX1dBS0VfS0lMTDoKKyAgICAgICAgY2FzZSBTQ0hFRFVMSU5HX1NUQVRFLlVOSU5UUl9TTEVFUF9XQUtJTkc6CisgICAgICAgIGNhc2UgU0NIRURVTElOR19TVEFURS5VTktOT1dOOgorICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuV0FLRV9LSUxMOgorICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuV0FLSU5HOgorICAgICAgICBjYXNlIFNDSEVEVUxJTkdfU1RBVEUuWk9NQklFOgorICAgICAgICAgIHJldHVybiBnZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0aHJlYWRfc3RhdGVfaW93YWl0Jyk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgcmV0dXJuIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ3RocmVhZF9zdGF0ZV91bmtub3duJyk7CisgICAgICB9CisgICAgfSwKKworICAgIGdldCBhbmFseXNpc1R5cGVOYW1lKCkgeworICAgICAgcmV0dXJuICd0ci51aS5hbmFseXNpcy5UaHJlYWRUaW1lU2xpY2UnOworICAgIH0sCisKKyAgICBnZXRBc3NvY2lhdGVkQ3B1U2xpY2U6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmNwdU9uV2hpY2hUaHJlYWRXYXNSdW5uaW5nKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgdmFyIGNwdVNsaWNlcyA9IHRoaXMuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcuc2xpY2VzOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjcHVTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGNwdVNsaWNlID0gY3B1U2xpY2VzW2ldOworICAgICAgICBpZiAoY3B1U2xpY2Uuc3RhcnQgIT09IHRoaXMuc3RhcnQpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChjcHVTbGljZS5kdXJhdGlvbiAhPT0gdGhpcy5kdXJhdGlvbikKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcmV0dXJuIGNwdVNsaWNlOworICAgICAgfQorICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0Q3B1U2xpY2VUaGF0VG9va0NwdTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHZhciBjdXJJbmRleCA9IHRoaXMudGhyZWFkLmluZGV4T2ZUaW1lU2xpY2UodGhpcyk7CisgICAgICB2YXIgY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmc7CisgICAgICB3aGlsZSAoY3VySW5kZXggPj0gMCkgeworICAgICAgICB2YXIgY3VyU2xpY2UgPSB0aGlzLnRocmVhZC50aW1lU2xpY2VzW2N1ckluZGV4XTsKKyAgICAgICAgaWYgKCFjdXJTbGljZS5jcHVPbldoaWNoVGhyZWFkV2FzUnVubmluZykgeworICAgICAgICAgIGN1ckluZGV4LS07CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcgPSBjdXJTbGljZS5nZXRBc3NvY2lhdGVkQ3B1U2xpY2UoKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBpZiAoIWNwdVNsaWNlV2hlbkxhc3RSdW5uaW5nKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICB2YXIgY3B1ID0gY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcuY3B1OworICAgICAgdmFyIGluZGV4T2ZTbGljZU9uQ3B1V2hlbkxhc3RSdW5uaW5nID0KKyAgICAgICAgICBjcHUuaW5kZXhPZihjcHVTbGljZVdoZW5MYXN0UnVubmluZyk7CisgICAgICB2YXIgbmV4dFJ1bm5pbmdTbGljZSA9IGNwdS5zbGljZXNbaW5kZXhPZlNsaWNlT25DcHVXaGVuTGFzdFJ1bm5pbmcgKyAxXTsKKyAgICAgIGlmICghbmV4dFJ1bm5pbmdTbGljZSkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIGlmIChNYXRoLmFicyhuZXh0UnVubmluZ1NsaWNlLnN0YXJ0IC0gY3B1U2xpY2VXaGVuTGFzdFJ1bm5pbmcuZW5kKSA8CisgICAgICAgICAgMC4wMDAwMSkKKyAgICAgICAgcmV0dXJuIG5leHRSdW5uaW5nU2xpY2U7CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0KKyAgfTsKKworICB0ci5tb2RlbC5FdmVudFJlZ2lzdHJ5LnJlZ2lzdGVyKAorICAgICAgVGhyZWFkVGltZVNsaWNlLAorICAgICAgeworICAgICAgICBuYW1lOiAndGhyZWFkVGltZVNsaWNlJywKKyAgICAgICAgcGx1cmFsTmFtZTogJ3RocmVhZFRpbWVTbGljZXMnLAorICAgICAgICBzaW5nbGVWaWV3RWxlbWVudE5hbWU6ICd0ci11aS1hLXNpbmdsZS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldycsCisgICAgICAgIG11bHRpVmlld0VsZW1lbnROYW1lOiAndHItdWktYS1tdWx0aS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldycKKyAgICAgIH0pOworCisKKyAgcmV0dXJuIHsKKyAgICBUaHJlYWRUaW1lU2xpY2U6IFRocmVhZFRpbWVTbGljZSwKKyAgICBTQ0hFRFVMSU5HX1NUQVRFOiBTQ0hFRFVMSU5HX1NUQVRFCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC90aW1lX3RvX29iamVjdF9pbnN0YW5jZV9tYXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwLmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGltZV90b19vYmplY3RfaW5zdGFuY2VfbWFwX3Rlc3QuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9tb2RlbC90aW1lX3RvX29iamVjdF9pbnN0YW5jZV9tYXBfdGVzdC5odG1sCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3RpbWVfdG9fb2JqZWN0X2luc3RhbmNlX21hcF90ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGltZWRfZXZlbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGltZWRfZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTc5NGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC90aW1lZF9ldmVudC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIHRoZSBUaW1lZEV2ZW50IGNsYXNzLgorICovCit0ci5leHBvcnRUbygndHIubW9kZWwnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEEgVGltZWRFdmVudCBpcyB0aGUgYmFzZSB0eXBlIGZvciBhbnkgcGllY2Ugb2YgZGF0YSBpbiB0aGUgdHJhY2UgbW9kZWwgd2l0aAorICAgKiBhIHNwZWNpZmljIHN0YXJ0IGFuZCBkdXJhdGlvbi4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBUaW1lZEV2ZW50KHN0YXJ0KSB7CisgICAgdHIubW9kZWwuRXZlbnQuY2FsbCh0aGlzKTsKKyAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgdGhpcy5kdXJhdGlvbiA9IDA7CisgICAgdGhpcy5jcHVTdGFydCA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmNwdUR1cmF0aW9uID0gdW5kZWZpbmVkOworICB9CisKKyAgVGltZWRFdmVudC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5FdmVudC5wcm90b3R5cGUsCisKKyAgICBnZXQgZW5kKCkgeworICAgICAgcmV0dXJuIHRoaXMuc3RhcnQgKyB0aGlzLmR1cmF0aW9uOworICAgIH0sCisKKyAgICBhZGRCb3VuZHNUb1JhbmdlOiBmdW5jdGlvbihyYW5nZSkgeworICAgICAgcmFuZ2UuYWRkVmFsdWUodGhpcy5zdGFydCk7CisgICAgICByYW5nZS5hZGRWYWx1ZSh0aGlzLmVuZCk7CisgICAgfSwKKworICAgIC8vIGJvdW5kcyByZXR1cm5zIHdoZXRoZXIgdGhhdCBUaW1lZEV2ZW50IGhhcHBlbnMgd2l0aGluIHRoaXMgdGltZWQgZXZlbnQKKyAgICBib3VuZHM6IGZ1bmN0aW9uKHRoYXQsIHByZWNpc2lvblVuaXQpIHsKKyAgICAgIGlmIChwcmVjaXNpb25Vbml0ID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgcHJlY2lzaW9uVW5pdCA9IHRyLmIudW5pdHMuVGltZS5zdXBwb3J0ZWRVbml0cy5tczsKKyAgICAgIH0KKyAgICAgIHZhciBzdGFydHNCZWZvcmUgPSBwcmVjaXNpb25Vbml0LnJvdW5kZWRMZXNzKHRoYXQuc3RhcnQsIHRoaXMuc3RhcnQpOworICAgICAgdmFyIGVuZHNBZnRlciA9IHByZWNpc2lvblVuaXQucm91bmRlZExlc3ModGhpcy5lbmQsIHRoYXQuZW5kKTsKKyAgICAgIHJldHVybiAhc3RhcnRzQmVmb3JlICYmICFlbmRzQWZ0ZXI7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgVGltZWRFdmVudDogVGltZWRFdmVudAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGltZWRfZXZlbnRfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy9tb2RlbC90aW1lZF9ldmVudF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGExNWY1OAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwvdGltZWRfZXZlbnRfdGVzdC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aW1lZF9ldmVudC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2JvdW5kc19zdGFydFByZWNpc2lvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB1bml0ID0gdHIuYi51bml0cy5UaW1lLnN1cHBvcnRlZFVuaXRzOworCisgICAgdmFyIG91dGVyID0gbmV3IHRyLm1vZGVsLlRpbWVkRXZlbnQoMTAuMDAwMSk7CisgICAgb3V0ZXIuZHVyYXRpb24gPSAwLjk5OTk7CisgICAgdmFyIGlubmVyID0gbmV3IHRyLm1vZGVsLlRpbWVkRXZlbnQoMTAuMDAwMCk7CisgICAgaW5uZXIuZHVyYXRpb24gPSAxLjAwMDA7CisKKyAgICBhc3NlcnQuaXNUcnVlKG91dGVyLmJvdW5kcyhpbm5lcikpOworICAgIGFzc2VydC5pc1RydWUob3V0ZXIuYm91bmRzKGlubmVyLCB1bml0Lm1zKSk7CisKKyAgICBhc3NlcnQuaXNGYWxzZShvdXRlci5ib3VuZHMoaW5uZXIsIHVuaXQubnMpKTsKKyAgfSk7CisKKyAgdGVzdCgnYm91bmRzX2VuZFByZWNpc2lvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB1bml0ID0gdHIuYi51bml0cy5UaW1lLnN1cHBvcnRlZFVuaXRzOworCisgICAgdmFyIG91dGVyID0gbmV3IHRyLm1vZGVsLlRpbWVkRXZlbnQoMTAuMDAwMCk7CisgICAgb3V0ZXIuZHVyYXRpb24gPSAwLjk5OTk7CisgICAgdmFyIGlubmVyID0gbmV3IHRyLm1vZGVsLlRpbWVkRXZlbnQoMTAuMDAwMCk7CisgICAgaW5uZXIuZHVyYXRpb24gPSAxLjAwMDA7CisKKyAgICBhc3NlcnQuaXNUcnVlKG91dGVyLmJvdW5kcyhpbm5lcikpOworICAgIGFzc2VydC5pc1RydWUob3V0ZXIuYm91bmRzKGlubmVyLCB1bml0Lm1zKSk7CisKKyAgICBhc3NlcnQuaXNGYWxzZShvdXRlci5ib3VuZHMoaW5uZXIsIHVuaXQubnMpKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3hfbWFya2VyX2Fubm90YXRpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvbW9kZWwveF9tYXJrZXJfYW5ub3RhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMWU5ODYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL21vZGVsL3hfbWFya2VyX2Fubm90YXRpb24uaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hbm5vdGF0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbm5vdGF0aW9ucy94X21hcmtlcl9hbm5vdGF0aW9uX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci5tb2RlbCcsIGZ1bmN0aW9uKCkgeworCisgIGZ1bmN0aW9uIFhNYXJrZXJBbm5vdGF0aW9uKHRpbWVzdGFtcCkgeworICAgIHRyLm1vZGVsLkFubm90YXRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKworICAgIHRoaXMudGltZXN0YW1wID0gdGltZXN0YW1wOworICAgIHRoaXMuc3Ryb2tlU3R5bGUgPSAncmdiYSgwLCAwLCAyNTUsIDAuNSknOworICB9CisKKyAgWE1hcmtlckFubm90YXRpb24uZnJvbURpY3QgPSBmdW5jdGlvbihkaWN0KSB7CisgICAgcmV0dXJuIG5ldyBYTWFya2VyQW5ub3RhdGlvbihkaWN0LmFyZ3MudGltZXN0YW1wKTsKKyAgfQorCisgIFhNYXJrZXJBbm5vdGF0aW9uLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLkFubm90YXRpb24ucHJvdG90eXBlLAorCisgICAgdG9EaWN0OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIHR5cGVOYW1lOiAneG1hcmtlcicsCisgICAgICAgIGFyZ3M6IHsKKyAgICAgICAgICB0aW1lc3RhbXA6IHRoaXMudGltZXN0YW1wCisgICAgICAgIH0KKyAgICAgIH07CisgICAgfSwKKworICAgIGNyZWF0ZVZpZXdfOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgcmV0dXJuIG5ldyB0ci51aS5hbm5vdGF0aW9ucy5YTWFya2VyQW5ub3RhdGlvblZpZXcodmlld3BvcnQsIHRoaXMpOworICAgIH0KKyAgfTsKKworICB0ci5tb2RlbC5Bbm5vdGF0aW9uLnJlZ2lzdGVyKAorICAgICAgWE1hcmtlckFubm90YXRpb24sIHt0eXBlTmFtZTogJ3htYXJrZXInfSk7CisKKyAgcmV0dXJuIHsKKyAgICBYTWFya2VyQW5ub3RhdGlvbjogWE1hcmtlckFubm90YXRpb24KKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3RyYWNlMmh0bWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdHJhY2UyaHRtbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MTczMjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3RyYWNlMmh0bWwuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdmlldy5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3ZhciBnX3RpbWVsaW5lVmlld0VsOworCisoZnVuY3Rpb24oKSB7CisgIHZhciBzdHlsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKKyAgdmFyIGxpbmVzID0gWworICAgICdodG1sLCBib2R5IHsnLAorICAgICcgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7JywKKyAgICAnICBvdmVyZmxvdzogaGlkZGVuOycsCisgICAgJyAgbWFyZ2luOiAwcHg7JywKKyAgICAnICBwYWRkaW5nOiAwOycsCisgICAgJyAgd2lkdGg6IDEwMCU7JywKKyAgICAnICBoZWlnaHQ6IDEwMCU7JywKKyAgICAnfScsCisgICAgJ3RyLXVpLXRpbWVsaW5lLXZpZXcgeycsCisgICAgJyAgd2lkdGg6IDEwMCU7JywKKyAgICAnICBoZWlnaHQ6IDEwMCU7JywKKyAgICAnfScsCisgICAgJ3RyLXVpLXRpbWVsaW5lLXZpZXc6Zm9jdXMgeycsCisgICAgJyAgb3V0bGluZTogbm9uZTsnLAorICAgICd9JworICBdOworICBzdHlsZUVsLnRleHRDb250ZW50ID0gbGluZXMuam9pbignXG4nKTsKKyAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsKTsKK30pKCk7CisKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKKyAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyYWNrLXZpZXctY29udGFpbmVyJyk7CisgIGNvbnRhaW5lci5pZCA9ICd0cmFja192aWV3X2NvbnRhaW5lcic7CisKKyAgZ190aW1lbGluZVZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXRpbWVsaW5lLXZpZXcnKTsKKyAgZ190aW1lbGluZVZpZXdFbC5hcHBlbmRDaGlsZChjb250YWluZXIpOworCisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZ190aW1lbGluZVZpZXdFbCk7CisKKyAgdmFyIHRyYWNlcyA9IFtdOworICB2YXIgdmlld2VyRGF0YVNjcmlwdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdmlld2VyLWRhdGEnKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aWV3ZXJEYXRhU2NyaXB0cy5sZW5ndGg7IGkrKykgeworICAgIHZhciB0ZXh0ID0gdmlld2VyRGF0YVNjcmlwdHNbaV0udGV4dENvbnRlbnQ7CisgICAgLy8gVHJpbSBsZWFkaW5nIG5ld2xpbmVzIG9mZiB0aGUgdGV4dC4gVGhleSBoYXBwZW4gZHVyaW5nIHdyaXRpbmcuCisgICAgd2hpbGUgKHRleHRbMF0gPT0gJ1xuJykKKyAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygxKTsKKyAgICB0cmFjZXMucHVzaChhdG9iKHRleHQpKTsKKyAgfQorCisgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgIHZhciBwID0gbS5pbXBvcnRUcmFjZXNXaXRoUHJvZ3Jlc3NEaWFsb2codHJhY2VzLCB0cnVlKTsKKyAgcC50aGVuKAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgIGdfdGltZWxpbmVWaWV3RWwubW9kZWwgPSBtOworICAgICAgICBnX3RpbWVsaW5lVmlld0VsLnVwZGF0ZURvY3VtZW50RmF2aWNvbigpOworICAgICAgICBnX3RpbWVsaW5lVmlld0VsLmdsb2JhbE1vZGUgPSB0cnVlOworICAgICAgICBnX3RpbWVsaW5lVmlld0VsLnZpZXdUaXRsZSA9IGRvY3VtZW50LnRpdGxlOworICAgICAgfSwKKyAgICAgIGZ1bmN0aW9uKGVycikgeworICAgICAgICB2YXIgb3ZlcmxheSA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICAgICAgb3ZlcmxheS50ZXh0Q29udGVudCA9IHRyLmIubm9ybWFsaXplRXhjZXB0aW9uKGVycikubWVzc2FnZTsKKyAgICAgICAgb3ZlcmxheS50aXRsZSA9ICdJbXBvcnQgZXJyb3InOworICAgICAgICBvdmVybGF5LnZpc2libGUgPSB0cnVlOworICAgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9hbGVydF9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9hbGVydF9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NmE1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FsZXJ0X3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSwxNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1hbGVydC1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICB9CisgICAgI3RhYmxlIHsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0idGFibGUiPgorICAgIDwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zID0gWworICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdMYWJlbCcsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93Lm5hbWU7IH0sCisgICAgICAgICAgd2lkdGg6ICcxNTBweCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnVmFsdWUnLAorICAgICAgICAgIHdpZHRoOiAnMTAwJScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnZhbHVlOyB9CisgICAgICAgIH0KKyAgICAgIF07CisgICAgICB0aGlzLiQudGFibGUuc2hvd0hlYWRlciA9IGZhbHNlOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0Um93c0ZvclNpbmdsZUFsZXJ0XzogZnVuY3Rpb24oYWxlcnQpIHsKKyAgICAgIHZhciByb3dzID0gW107CisKKyAgICAgIC8vIEFyZ3VtZW50cworICAgICAgZm9yICh2YXIgYXJnTmFtZSBpbiBhbGVydC5hcmdzKSB7CisgICAgICAgIHZhciBhcmdWaWV3ID0KKyAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgICAgICBhcmdWaWV3Lm9iamVjdCA9IGFsZXJ0LmFyZ3NbYXJnTmFtZV07CisgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6IGFyZ05hbWUsIHZhbHVlOiBhcmdWaWV3IH0pOworICAgICAgfQorCisgICAgICAvLyBBc3NvY2lhdGVkIGV2ZW50cworICAgICAgaWYgKGFsZXJ0LmFzc29jaWF0ZWRFdmVudHMubGVuZ3RoKSB7CisgICAgICAgIGFsZXJ0LmFzc29jaWF0ZWRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCwgaSkgeworICAgICAgICAgIHZhciBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKyAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBldmVudDsKKyAgICAgICAgICB9LCBldmVudC50aXRsZSk7CisKKyAgICAgICAgICB2YXIgdmFsdWVTdHJpbmcgPSAnJzsKKyAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiB0ci5tb2RlbC5UaW1lZEV2ZW50KQorICAgICAgICAgICAgdmFsdWVTdHJpbmcgPSAndG9vayAnICsgZXZlbnQuZHVyYXRpb24udG9GaXhlZCgyKSArICdtcyc7CisKKyAgICAgICAgICByb3dzLnB1c2goeworICAgICAgICAgICAgbmFtZTogbGlua0VsLAorICAgICAgICAgICAgdmFsdWU6IHZhbHVlU3RyaW5nCisgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICAvLyBEZXNjcmlwdGlvbgorICAgICAgdmFyIGRlc2NyaXB0aW9uRWwgPSB0ci51aS5iLmNyZWF0ZURpdih7CisgICAgICAgICAgdGV4dENvbnRlbnQ6IGFsZXJ0LmluZm8uZGVzY3JpcHRpb24sCisgICAgICAgICAgbWF4V2lkdGg6ICczMDBweCcKKyAgICAgIH0pOworICAgICAgcm93cy5wdXNoKHsKKyAgICAgICAgbmFtZTogJ0Rlc2NyaXB0aW9uJywKKyAgICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uRWwKKyAgICAgIH0pOworCisgICAgICAvLyBBZGRpdGlvbmFsIFJlYWRpbmcgTGlua3MKKyAgICAgIGlmIChhbGVydC5pbmZvLmRvY0xpbmtzKSB7CisgICAgICAgIGFsZXJ0LmluZm8uZG9jTGlua3MuZm9yRWFjaChmdW5jdGlvbihsaW5rT2JqZWN0KSB7CisgICAgICAgICAgdmFyIGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICAgICAgICBsaW5rRWwudGFyZ2V0ID0gJ19ibGFuayc7CisgICAgICAgICAgbGlua0VsLmhyZWYgPSBsaW5rT2JqZWN0LmhyZWY7CisgICAgICAgICAgbGlua0VsLnRleHRDb250ZW50ID0gbGlua09iamVjdC50ZXh0Q29udGVudDsKKyAgICAgICAgICByb3dzLnB1c2goeworICAgICAgICAgICAgbmFtZTogbGlua09iamVjdC5sYWJlbCwKKyAgICAgICAgICAgIHZhbHVlOiBsaW5rRWwKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgICByZXR1cm4gcm93czsKKyAgICB9LAorCisgICAgZ2V0Um93c0ZvckFsZXJ0c186IGZ1bmN0aW9uKGFsZXJ0cykgeworICAgICAgaWYgKGFsZXJ0cy5sZW5ndGggPT0gMSkgeworICAgICAgICB2YXIgcm93cyA9IFt7CisgICAgICAgICAgbmFtZTogJ0FsZXJ0JywKKyAgICAgICAgICB2YWx1ZTogYWxlcnRzWzBdLnRpdGxlCisgICAgICAgIH1dOworICAgICAgICB2YXIgZGV0YWlsUm93cyA9IHRoaXMuZ2V0Um93c0ZvclNpbmdsZUFsZXJ0XyhhbGVydHNbMF0pOworICAgICAgICByb3dzLnB1c2guYXBwbHkocm93cywgZGV0YWlsUm93cyk7CisgICAgICAgIHJldHVybiByb3dzOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGFsZXJ0cy5tYXAoZnVuY3Rpb24oYWxlcnQpIHsKKyAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgbmFtZTogJ0FsZXJ0JywKKyAgICAgICAgICAgIHZhbHVlOiBhbGVydC50aXRsZSwKKyAgICAgICAgICAgIGlzRXhwYW5kZWQ6IGFsZXJ0cy5zaXplIDwgMTAsIC8vIFRoaXMgaXMgc29tZXdoYXQgYXJiaXRyYXJ5IGZvciBub3cuCisgICAgICAgICAgICBzdWJSb3dzOiB0aGlzLmdldFJvd3NGb3JTaW5nbGVBbGVydF8oYWxlcnQpCisgICAgICAgICAgfTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICB9CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuJC50YWJsZS5yb3dzID0gW107CisgICAgICAgIHRoaXMuJC50YWJsZS5yZWJ1aWxkKCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIGFsZXJ0cyA9IHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gdGhpcy5nZXRSb3dzRm9yQWxlcnRzXyhhbGVydHMpOworICAgICAgdGhpcy4kLnRhYmxlLnJlYnVpbGQoKTsKKyAgICB9LAorCisgICAgZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpIHsKKyAgICAgIGlmICghdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdLmFzc29jaWF0ZWRFdmVudHM7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9hbGVydF9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZjZjZkMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzbGljZSA9IG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAwLCBkdXJhdGlvbjogMC4wMDJ9KTsKKworICAgIHZhciBBTEVSVF9JTkZPXzEgPSBuZXcgdHIubW9kZWwuRXZlbnRJbmZvKAorICAgICAgICAnQWxlcnQgMScsICdDcml0aWNhbCBhbGVydCcsCisgICAgICAgIFt7CisgICAgICAgICAgbGFiZWw6ICdQcm9qZWN0IFBhZ2UnLAorICAgICAgICAgIHRleHRDb250ZW50OiAnVHJhY2UtVmlld2VyIEdpdGh1YiBQcm9qZWN0JywKKyAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS90cmFjZS12aWV3ZXIvJworICAgICAgICB9XSk7CisKKyAgICB2YXIgYWxlcnQgPSBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCA1LCBbc2xpY2VdKTsKKyAgICBhc3NlcnQuZXF1YWwoMSwgYWxlcnQuYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGgpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKGFsZXJ0KTsKKworICAgIHZhciBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbGVydC1zdWItdmlldycpOworICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChzdWJWaWV3LnJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQuYXNzb2NpYXRlZEV2ZW50cyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1YlZpZXcpOworCisgICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgc3ViVmlldywgJ3RyLXVpLWItdGFibGUnKTsKKworICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOworICAgIHZhciBjb2x1bW5zID0gdGFibGUudGFibGVDb2x1bW5zOworICAgIGFzc2VydC5sZW5ndGhPZihyb3dzLCA0KTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoY29sdW1ucywgMik7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg0M2NhNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sCkBAIC0wLDAgKzEsMTA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2JydXNoaW5nX3N0YXRlX2NvbnRyb2xsZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLWFuYWx5c2lzLWxpbmsiIGlzPSJhIgorICAgIG9uLWNsaWNrPSJ7e29uQ2xpY2tlZF99fSIKKyAgICBvbi1tb3VzZWVudGVyPSJ7e29uTW91c2VFbnRlcl99fSIKKyAgICBvbi1tb3VzZWxlYXZlPSJ7e29uTW91c2VMZWF2ZV99fSI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogaW5saW5lOworICAgICAgY29sb3I6IC13ZWJraXQtbGluazsKKyAgICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOworICAgICAgLyogVE9ETyhuZHVjYSk6IFdoaXRlc3BhY2UgaXMgZm9yY2VkIHRvIG5vcm1hbCBoZXJlIGJlY2F1c2UgdGhlCisgICAgICAgICBhbmFseXNpc19yZXN1bHRzLmNzcyBmb3JjZXMgZXZlcnl0aGluZyB1bmRlciBpdCB0byBwcmUuIFRoaXMgaXMgaW5zYW5lLgorICAgICAgICAgV2hlbiB0aGF0IGhvcnJpYmxlIGV2aWwgY2xhc3MgZGllcywgdGhlbiB3ZSBjYW4gcmlwIHRoaXMgd2hpdGUtc3BhY2UKKyAgICAgICAgIHJlc3RyaWN0aW9uIG91dC4KKyAgICAgICAqLworICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKKyAgICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8Y29udGVudD48L2NvbnRlbnQ+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgUG9seW1lcih7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBhdHRhY2hlZDogZnVuY3Rpb24oKSB7CisgICAgICAvLyBTYXZlIGFuIGluc3RhbmNlIG9mIHRoZSBjb250cm9sbGVyIHNpbmNlIGl0J3MgZ29pbmcgdG8gYmUgdXNlZCBpbgorICAgICAgLy8gZGV0YWNoZWQoKSB3aGVyZSBpdCBjYW4gbm8gbG9uZ2VyIGJlIG9idGFpbmVkLgorICAgICAgdGhpcy5jb250cm9sbGVyXyA9CisgICAgICAgICAgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRDb250cm9sbGVyRm9yRWxlbWVudCh0aGlzKTsKKyAgICB9LAorCisgICAgZGV0YWNoZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgLy8gUmVzZXQgaGlnaGxpZ2h0cy4KKyAgICAgIHRoaXMuY2xlYXJIaWdobGlnaHRfKCk7CisgICAgICB0aGlzLmNvbnRyb2xsZXJfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXzsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIC8vIFNlbGVjdGlvbiBjYW4gYmUgZWl0aGVyIGFuIEV2ZW50U2V0IG9yIGEgZnVuY3Rpb24uCisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICB0aGlzLnRleHRDb250ZW50ID0gc2VsZWN0aW9uLnVzZXJGcmllbmRseU5hbWU7CisgICAgfSwKKworICAgIHNldFNlbGVjdGlvbkFuZENvbnRlbnQ6IGZ1bmN0aW9uKHNlbGVjdGlvbiwgb3B0X3RleHRDb250ZW50KSB7CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICBpZiAob3B0X3RleHRDb250ZW50KQorICAgICAgICB0aGlzLnRleHRDb250ZW50ID0gb3B0X3RleHRDb250ZW50OworICAgIH0sCisKKyAgICBnZXRDdXJyZW50U2VsZWN0aW9uXzogZnVuY3Rpb24oKSB7CisgICAgICAvLyBHZXRzIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgaW52b2tpbmcgdGhlIHNlbGVjdGlvbiBmdW5jdGlvbiBpZiBuZWVkZWQuCisgICAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0aW9uXyA9PT0gJ2Z1bmN0aW9uJykKKyAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXygpOworICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXzsKKyAgICB9LAorCisgICAgc2V0SGlnaGxpZ2h0XzogZnVuY3Rpb24ob3B0X2V2ZW50U2V0KSB7CisgICAgICBpZiAodGhpcy5jb250cm9sbGVyXykKKyAgICAgICAgdGhpcy5jb250cm9sbGVyXy5jaGFuZ2VBbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzKG9wdF9ldmVudFNldCk7CisgICAgfSwKKworICAgIGNsZWFySGlnaGxpZ2h0XzogZnVuY3Rpb24ob3B0X2V2ZW50U2V0KSB7CisgICAgICB0aGlzLnNldEhpZ2hsaWdodF8oKTsKKyAgICB9LAorCisgICAgb25DbGlja2VkXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgZXZlbnQgPSBuZXcgdHIubW9kZWwuUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7CisgICAgICBldmVudC5zZWxlY3Rpb24gPSB0aGlzLmdldEN1cnJlbnRTZWxlY3Rpb25fKCk7CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIH0sCisKKyAgICBvbk1vdXNlRW50ZXJfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2V0SGlnaGxpZ2h0Xyh0aGlzLmdldEN1cnJlbnRTZWxlY3Rpb25fKCkpOworICAgIH0sCisKKyAgICBvbk1vdXNlTGVhdmVfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2xlYXJIaWdobGlnaHRfKCk7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfbGlua190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmtfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0Mjk1M2YKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmtfdGVzdC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCd0ZXN0QmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpOworCisgICAgdmFyIGkxMCA9IG5ldyB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSgKKyAgICB7fSwgJzB4MTAwMCcsICdjYXQnLCAnbmFtZScsIDEwKTsKKyAgICB2YXIgczEwID0gaTEwLmFkZFNuYXBzaG90KDEwLCB7Zm9vOiAxfSk7CisKKyAgICBsaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChzMTApOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChsaW5rKTsKKworICAgIHZhciBkaWRSU0MgPSBmYWxzZTsKKyAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICBkaWRSU0MgPSB0cnVlOworICAgICAgYXNzZXJ0LmVxdWFsKGUuc2VsZWN0aW9uWzBdLCBzMTApOworICAgIH0pOworICAgIGxpbmsuY2xpY2soKTsKKyAgICBhc3NlcnQuaXNUcnVlKGRpZFJTQyk7CisgIH0pOworCisgIHRlc3QoJ3Rlc3RHZW5lcmF0b3JWZXJzaW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKworICAgIHZhciBpMTAgPSBuZXcgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UoCisgICAge30sICcweDEwMDAnLCAnY2F0JywgJ25hbWUnLCAxMCk7CisgICAgdmFyIHMxMCA9IGkxMC5hZGRTbmFwc2hvdCgxMCwge2ZvbzogMX0pOworCisgICAgZnVuY3Rpb24gc2VsZWN0aW9uR2VuZXJhdG9yKCkgeworICAgICAgcmV0dXJuIG5ldyB0ci5tb2RlbC5FdmVudFNldChzMTApOworICAgIH0KKyAgICBzZWxlY3Rpb25HZW5lcmF0b3IudXNlckZyaWVuZGx5TmFtZSA9ICdoZWxsbyB3b3JsZCc7CisgICAgbGluay5zZWxlY3Rpb24gPSBzZWxlY3Rpb25HZW5lcmF0b3I7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGxpbmspOworCisgICAgdmFyIGRpZFJTQyA9IGZhbHNlOworICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcigncmVxdWVzdFNlbGVjdGlvbkNoYW5nZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblswXSwgczEwKTsKKyAgICAgIGRpZFJTQyA9IHRydWU7CisgICAgfSk7CisgICAgbGluay5jbGljaygpOworICAgIGFzc2VydC5pc1RydWUoZGlkUlNDKTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRhZmIyMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+CisKKzwhLS0KK0BmaWxlb3ZlcnZpZXcgUG9seW1lciBlbGVtZW50IGZvciB2YXJpb3VzIGFuYWx5c2lzIHN1Yi12aWV3cy4KKy0tPgorPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworICBQb2x5bWVyKHsKKyAgICBzZXQgdGFiTGFiZWwobGFiZWwpIHsKKyAgICAgIHJldHVybiB0aGlzLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgbGFiZWwpOworICAgIH0sCisKKyAgICBnZXQgdGFiTGFiZWwoKSB7CisgICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcpOworICAgIH0sCisKKyAgICBnZXQgcmVxdWlyZXNUYWxsVmlldygpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpIHsKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEVhY2ggZWxlbWVudCBleHRlbmRpbmcgdGhpcyBvbmUgbXVzdCBpbXBsZW1lbnQKKyAgICAgKiBhICdzZWxlY3Rpb24nIHByb3BlcnR5LgorICAgICAqLworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCEnKTsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkIScpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxNjRhOTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdGVzdCgnc3ViVmlld1Rocm93c05vdEltcGxlbWVudGVkRXJyb3JzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHN1YlZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXN1Yi12aWV3Jyk7CisKKyAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7CisgICAgICBzdWJWaWV3LnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIH0sICdOb3QgaW1wbGVtZW50ZWQhJyk7CisKKyAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdmlld1NlbGVjdGlvbiA9IHN1YlZpZXcuc2VsZWN0aW9uOworICAgIH0sICdOb3QgaW1wbGVtZW50ZWQhJyk7CisKKyAgICBzdWJWaWV3LnRhYkxhYmVsID0gJ1RhYiBMYWJlbCc7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlZpZXcuZ2V0QXR0cmlidXRlKCd0YWItbGFiZWwnKSwgJ1RhYiBMYWJlbCcpOworICAgIGFzc2VydC5lcXVhbChzdWJWaWV3LnRhYkxhYmVsLCAnVGFiIExhYmVsJyk7CisKKyAgICBzdWJWaWV3LnRhYkxhYmVsID0gJ05ldyBMYWJlbCc7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlZpZXcuZ2V0QXR0cmlidXRlKCd0YWItbGFiZWwnKSwgJ05ldyBMYWJlbCcpOworICAgIGFzc2VydC5lcXVhbChzdWJWaWV3LnRhYkxhYmVsLCAnTmV3IExhYmVsJyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk3NGE0MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sCkBAIC0wLDAgKzEsMjcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3RhYl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKworPCEtLSBTdWIgVmlld3MuIC0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9hc3luY19zbGljZV9zdWJfdmlldy5odG1sIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF90aW1lX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlldy5odG1sIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9jb3VudGVyX3NhbXBsZV9zdWJfdmlldy5odG1sIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfZmxvd19ldmVudF9zdWJfdmlldy5odG1sIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X2luc3RhbmNlX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X3NuYXBzaG90X3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX3NhbXBsZV9zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3Lmh0bWwiPgorCis8bGluayByZWw9ImltcG9ydCIKKyAgICBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX2ludGVyYWN0aW9uX3JlY29yZF9zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9pbnRlcmFjdGlvbl9yZWNvcmRfc3ViX3ZpZXcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYWxlcnRfc3ViX3ZpZXcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfZnJhbWVfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIKKyAgICBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfZnJhbWVfc3ViX3ZpZXcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiCisgICAgaHJlZj0iL3VpL2FuYWx5c2lzL3NpbmdsZV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9wb3dlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbCI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9wb2x5bWVyX3V0aWxzLmh0bWwiPgorCis8IS0tCitAZmlsZW92ZXJ2aWV3IEEgY29tcG9uZW50IHVzZWQgdG8gZGlzcGxheSBhbiBhbmFseXNpcyBvZiBhIHNlbGVjdGlvbiwKK3VzaW5nIGN1c3RvbSBlbGVtZW50cyBzcGVjaWFsaXplZCBmb3IgZGlmZmVyZW50IGV2ZW50IHR5cGVzLgorLS0+Cis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtYW5hbHlzaXMtdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgICA6aG9zdCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgICBoZWlnaHQ6IDI3NXB4OworICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgIH0KKworICAgICAgOmhvc3QoLnRhbGwtbW9kZSkgeworICAgICAgICBoZWlnaHQ6IDUyNXB4OworICAgICAgfQorCisgICAgICA6OmNvbnRlbnQgPiAqIHsKKyAgICAgICAgZmxleDogMSAwIGF1dG87CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8Y29udGVudD48L2NvbnRlbnQ+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgKGZ1bmN0aW9uKCkgeworICAgIHZhciBFdmVudFJlZ2lzdHJ5ID0gdHIubW9kZWwuRXZlbnRSZWdpc3RyeTsKKworICAgIFBvbHltZXIoeworICAgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnRhYlZpZXdfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS10YWItdmlldycpOworICAgICAgICB0aGlzLnRhYlZpZXdfLnN0eWxlLmZsZXggPSAnMSAxIGF1dG8nOworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMudGFiVmlld18pOworICAgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5vblNlbGVjdGVkVGFiQ2hhbmdlXyA9IHRoaXMub25TZWxlY3RlZFRhYkNoYW5nZV8uYmluZCh0aGlzKTsKKyAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfID0gdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcyk7CisKKyAgICAgICAgdGhpcy5sYXN0U2VlblNlbGVjdGlvbl8gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIH0sCisKKyAgICAgIHNldCB0YWxsTW9kZSh2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0YWxsLW1vZGUnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgndGFsbC1tb2RlJyk7CisgICAgICB9LAorCisgICAgICBnZXQgdGFsbE1vZGUoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmNsYXNzTGlzdC5jb250YWlucygndGFsbC1tb2RlJyk7CisgICAgICB9LAorCisgICAgICBnZXQgdGFiVmlldygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudGFiVmlld187CisgICAgICB9LAorCisgICAgICBnZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXzsKKyAgICAgIH0sCisKKyAgICAgIHNldCBicnVzaGluZ1N0YXRlQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcikgeworICAgICAgICBpZiAodGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcikgeworICAgICAgICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnJlbW92ZUV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8pOworICAgICAgICB9CisgICAgICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfID0gYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI7CisgICAgICAgIGlmICh0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyKSB7CisgICAgICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICAgJ2NoYW5nZScsIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKCk7CisgICAgICB9LAorCisgICAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgICByZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uc2VsZWN0aW9uOworICAgICAgfSwKKworICAgICAgb25TZWxlY3Rpb25DaGFuZ2VkXzogZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uc2VsZWN0aW9uOworCisgICAgICAgIHZhciBzZWxlY3Rpb25IYXNTYW1lVmFsdWUgPSB0aGlzLmxhc3RTZWVuU2VsZWN0aW9uXy5lcXVhbHMoc2VsZWN0aW9uKTsKKyAgICAgICAgdGhpcy5sYXN0U2VlblNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICAgIGlmIChzZWxlY3Rpb25IYXNTYW1lVmFsdWUpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBsYXN0U2VsZWN0ZWRUYWJUYWdOYW1lOworICAgICAgICB2YXIgbGFzdFNlbGVjdGVkVGFiVHlwZU5hbWU7CisgICAgICAgIGlmICh0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiKSB7CisgICAgICAgICAgbGFzdFNlbGVjdGVkVGFiVGFnTmFtZSA9IHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWIudGFnTmFtZTsKKyAgICAgICAgICBsYXN0U2VsZWN0ZWRUYWJUeXBlTmFtZSA9IHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWIuX2V2ZW50VHlwZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnRhbGxNb2RlID0gZmFsc2U7CisKKyAgICAgICAgdmFyIHByZXZpb3VzbHlTZWxlY3RlZFRhYiA9IHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWI7CisgICAgICAgIHRoaXMudGFiVmlld18ucmVtb3ZlRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAnc2VsZWN0ZWQtdGFiLWNoYW5nZScsIHRoaXMub25TZWxlY3RlZFRhYkNoYW5nZV8pOworCisgICAgICAgIHZhciBwcmV2aW91c1N1YlZpZXdzID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJWaWV3Xy5jaGlsZHJlbi5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBwcmV2aW91c1N1YlZpZXcgPSB0aGlzLnRhYlZpZXdfLmNoaWxkcmVuW2ldOworICAgICAgICAgIHByZXZpb3VzU3ViVmlld3NbcHJldmlvdXNTdWJWaWV3Ll9ldmVudFR5cGVOYW1lXSA9IHByZXZpb3VzU3ViVmlldzsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMudGFiVmlld18uc2F2ZVRhYlN0YXRlcygpOworICAgICAgICB0aGlzLnRhYlZpZXdfLnRleHRDb250ZW50ID0gJyc7CisgICAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoID09IDApIHsKKyAgICAgICAgICB0aGlzLnRhYlZpZXdfLnRhYlN0cmlwSGVhZGluZ1RleHQgPSAnTm90aGluZyBzZWxlY3RlZC4gVGFwIHN0dWZmLic7CisgICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgdGhpcy50YWJWaWV3Xy50YWJTdHJpcEhlYWRpbmdUZXh0ID0gJzEgaXRlbSBzZWxlY3RlZDogJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0aGlzLnRhYlZpZXdfLnRhYlN0cmlwSGVhZGluZ1RleHQgPSBzZWxlY3Rpb24ubGVuZ3RoICsKKyAgICAgICAgICAgICAgJyBpdGVtcyBzZWxlY3RlZDogJzsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBldmVudHNCeUJhc2VUeXBlTmFtZSA9IHNlbGVjdGlvbi5nZXRFdmVudHNPcmdhbml6ZWRCeUJhc2VUeXBlKHRydWUpOworCisgICAgICAgIHZhciBudW1CYXNlVHlwZXNUb0FuYWx5emUgPSB0ci5iLmRpY3Rpb25hcnlMZW5ndGgoZXZlbnRzQnlCYXNlVHlwZU5hbWUpOworICAgICAgICBmb3IgKHZhciBldmVudFR5cGVOYW1lIGluIGV2ZW50c0J5QmFzZVR5cGVOYW1lKSB7CisgICAgICAgICAgdmFyIHN1YlNlbGVjdGlvbiA9IGV2ZW50c0J5QmFzZVR5cGVOYW1lW2V2ZW50VHlwZU5hbWVdOworICAgICAgICAgIHZhciBzdWJWaWV3ID0gdGhpcy5jcmVhdGVTdWJWaWV3Rm9yU2VsZWN0aW9uXygKKyAgICAgICAgICAgIGV2ZW50VHlwZU5hbWUsIHN1YlNlbGVjdGlvbiwgcHJldmlvdXNTdWJWaWV3c1tldmVudFR5cGVOYW1lXSk7CisgICAgICAgICAgLy8gU3RvcmUgdGhlIGV2ZW50VHlwZU5hbWUgZm9yIGZ1dHVyZSB0YWIgcmVzdG9yYXRpb24uCisgICAgICAgICAgc3ViVmlldy5fZXZlbnRUeXBlTmFtZSA9IGV2ZW50VHlwZU5hbWU7CisgICAgICAgICAgdGhpcy50YWJWaWV3Xy5hcHBlbmRDaGlsZChzdWJWaWV3KTsKKworICAgICAgICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc3ViU2VsZWN0aW9uOworICAgICAgICB9CisKKyAgICAgICAgLy8gUmVzdG9yZSB0aGUgdGFiIHR5cGUgdGhhdCB3YXMgcHJldmlvdXNseSBzZWxlY3RlZC4gRmlyc3QgdHJ5IGJ5IHRhZworICAgICAgICAvLyBuYW1lLgorICAgICAgICB2YXIgdGFiOworICAgICAgICBpZiAobGFzdFNlbGVjdGVkVGFiVGFnTmFtZSkKKyAgICAgICAgICB0YWIgPSB0aGlzLnRhYlZpZXdfLnF1ZXJ5U2VsZWN0b3IobGFzdFNlbGVjdGVkVGFiVGFnTmFtZSk7CisKKyAgICAgICAgLy8gSWYgdGhhdCBmYWlscywgbG9vayBmb3IgYSB0YWIgd2l0aCB0aGF0IHR5cGVOYW1lLgorICAgICAgICBpZiAoIXRhYiAmJiBsYXN0U2VsZWN0ZWRUYWJUeXBlTmFtZSkgeworICAgICAgICAgIHZhciB0YWIgPSB0ci5iLmZpbmRGaXJzdEluQXJyYXkoCisgICAgICAgICAgICAgIHRoaXMudGFiVmlld18uY2hpbGRyZW4sIGZ1bmN0aW9uKHRhYikgeworICAgICAgICAgICAgcmV0dXJuIHRhYi5fZXZlbnRUeXBlTmFtZSA9PT0gbGFzdFNlbGVjdGVkVGFiVHlwZU5hbWU7CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gSWYgYWxsIGVsc2UgZmFpbHMsIHBpY2sgdGhlIGZpcnN0IHRhYi4KKyAgICAgICAgaWYgKCF0YWIpCisgICAgICAgICAgdGFiID0gdGhpcy50YWJWaWV3Xy5maXJzdENoaWxkOworCisgICAgICAgIHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWIgPSB0YWI7CisgICAgICAgIHRoaXMub25TZWxlY3RlZFRhYkNoYW5nZV8oKTsKKworICAgICAgICB0aGlzLnRhYlZpZXdfLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnLCB0aGlzLm9uU2VsZWN0ZWRUYWJDaGFuZ2VfKTsKKyAgICAgIH0sCisKKyAgICAgIGNyZWF0ZVN1YlZpZXdGb3JTZWxlY3Rpb25fOiBmdW5jdGlvbihldmVudFR5cGVOYW1lLCBzdWJTZWxlY3Rpb24sCisgICAgICAgICAgcHJldmlvdXNTdWJWaWV3KSB7CisgICAgICAgIC8vIEZpbmQuCisgICAgICAgIHZhciBldmVudFR5cGVJbmZvID0gRXZlbnRSZWdpc3RyeS5nZXRFdmVudFR5cGVJbmZvQnlUeXBlTmFtZSgKKyAgICAgICAgICAgIGV2ZW50VHlwZU5hbWUpOworICAgICAgICB2YXIgc2luZ2xlTW9kZSA9IHN1YlNlbGVjdGlvbi5sZW5ndGggPT0gMTsKKyAgICAgICAgdmFyIHRhZ05hbWU7CisgICAgICAgIGlmIChzdWJTZWxlY3Rpb24ubGVuZ3RoID09PSAxKQorICAgICAgICAgIHRhZ05hbWUgPSBldmVudFR5cGVJbmZvLm1ldGFkYXRhLnNpbmdsZVZpZXdFbGVtZW50TmFtZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHRhZ05hbWUgPSBldmVudFR5cGVJbmZvLm1ldGFkYXRhLm11bHRpVmlld0VsZW1lbnROYW1lOworCisgICAgICAgIGlmICghdHIudWkuYi5nZXRQb2x5bWVyRWxlbWVudE5hbWVkKHRhZ05hbWUpKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRWxlbWVudCBub3QgcmVnaXN0ZXJlZDogJyArIHRhZ05hbWUpOworCisgICAgICAgIC8vIENyZWF0ZSBpZiBuZWNlc3NhcnkuCisgICAgICAgIHZhciBzdWJWaWV3OworICAgICAgICBpZiAocHJldmlvdXNTdWJWaWV3ICYmCisgICAgICAgICAgICBwcmV2aW91c1N1YlZpZXcudGFnTmFtZSA9PT0gdGFnTmFtZS50b1VwcGVyQ2FzZSgpKQorICAgICAgICAgIHN1YlZpZXcgPSBwcmV2aW91c1N1YlZpZXc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsKKworICAgICAgICAvLyBTZXQgbGFiZWwuCisgICAgICAgIHZhciBjYW1lbExhYmVsOworICAgICAgICBpZiAoc3ViU2VsZWN0aW9uLmxlbmd0aCA9PT0gMSkKKyAgICAgICAgICBjYW1lbExhYmVsID0gRXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlTaW5ndWxhck5hbWUoZXZlbnRUeXBlTmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBjYW1lbExhYmVsID0gRXZlbnRSZWdpc3RyeS5nZXRVc2VyRnJpZW5kbHlQbHVyYWxOYW1lKGV2ZW50VHlwZU5hbWUpOworICAgICAgICBzdWJWaWV3LnRhYkxhYmVsID0gY2FtZWxMYWJlbCArICcgKCcgKyBzdWJTZWxlY3Rpb24ubGVuZ3RoICsgJyknOworCisgICAgICAgIHJldHVybiBzdWJWaWV3OworICAgICAgfSwKKworICAgICAgb25TZWxlY3RlZFRhYkNoYW5nZV86IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXzsKKyAgICAgICAgaWYgKHRoaXMudGFiVmlld18uc2VsZWN0ZWRUYWIpIHsKKyAgICAgICAgICB2YXIgc2VsZWN0ZWRUYWIgPSB0aGlzLnRhYlZpZXdfLnNlbGVjdGVkVGFiOworICAgICAgICAgIHRoaXMudGFsbE1vZGUgPSBzZWxlY3RlZFRhYi5yZXF1aXJlc1RhbGxWaWV3OworICAgICAgICAgIGlmIChicnVzaGluZ1N0YXRlQ29udHJvbGxlcikgeworICAgICAgICAgICAgdmFyIHJsdGggPSBzZWxlY3RlZFRhYi5yZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQ7CisgICAgICAgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5jaGFuZ2VBbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKHJsdGgpOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0aGlzLnRhbGxNb2RlID0gZmFsc2U7CisgICAgICAgICAgaWYgKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKQorICAgICAgICAgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuY2hhbmdlQW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50cyh1bmRlZmluZWQpOworICAgICAgICB9CisgICAgICB9CisgICAgfSk7CisgIH0pKCk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9hbmFseXNpc192aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWE4Y2RkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9hbmFseXNpc192aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDE0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9icnVzaGluZ19zdGF0ZV9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvdW50ZXJfc2FtcGxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb3VudGVyX3Nlcmllcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKyAgdmFyIEJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKyAgdmFyIE1vZGVsID0gdHIuTW9kZWw7CisgIHZhciBDb3VudGVyID0gdHIubW9kZWwuQ291bnRlcjsKKyAgdmFyIENvdW50ZXJTZXJpZXMgPSB0ci5tb2RlbC5Db3VudGVyU2VyaWVzOworICB2YXIgQ291bnRlclNhbXBsZSA9IHRyLm1vZGVsLkNvdW50ZXJTYW1wbGU7CisgIHZhciBuZXdUaHJlYWRTbGljZSA9IHRyLmMudGVzdF91dGlscy5uZXdUaHJlYWRTbGljZTsKKyAgdmFyIFNDSEVEVUxJTkdfU1RBVEUgPSB0ci5tb2RlbC5TQ0hFRFVMSU5HX1NUQVRFOworICB2YXIgSW50ZXJhY3Rpb25SZWNvcmQgPSB0ci5tb2RlbC5JbnRlcmFjdGlvblJlY29yZDsKKworICBmdW5jdGlvbiBhc3NlcnRFdmVudFNldChhY3R1YWxFdmVudFNldCwgZXhwZWN0ZWRFdmVudHMpIHsKKyAgICB2YXIgZXhwZWN0ZWRFdmVudFNldCA9IG5ldyBFdmVudFNldChleHBlY3RlZEV2ZW50cyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShhY3R1YWxFdmVudFNldC5lcXVhbHMoZXhwZWN0ZWRFdmVudFNldCksCisgICAgICAgICdFdmVudFNldCBvYmplY3RzIGFyZSBub3QgZXF1YWwnKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrVGFiKHRhYiwgZXhwZWN0ZWRUYWdOYW1lLCBleHBlY3RlZFNlbGVjdGlvbkV2ZW50cykgeworICAgIGFzc2VydC5lcXVhbCh0YWIudGFnTmFtZSwgZXhwZWN0ZWRUYWdOYW1lLnRvVXBwZXJDYXNlKCkpOworICAgIGFzc2VydEV2ZW50U2V0KHRhYi5zZWxlY3Rpb24sIGV4cGVjdGVkU2VsZWN0aW9uRXZlbnRzKTsKKyAgfQorCisgIHRlc3QoJ3NlbGVjdGVkVGFiQ2hhbmdlJywgZnVuY3Rpb24oKSB7CisgICAgLy8gU2V0IHVwIHRoZSBtb2RlbC4KKyAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKKyAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKworICAgIHZhciBjb3VudGVyID0gcHJvY2Vzcy5nZXRPckNyZWF0ZUNvdW50ZXIoJ3VuaXZlcnNlJywgJ3BsYW5ldHMnKTsKKyAgICB2YXIgc2VyaWVzID0gY291bnRlci5hZGRTZXJpZXMobmV3IENvdW50ZXJTZXJpZXMoJ3gnLCAwKSk7CisgICAgdmFyIHNhbXBsZTEgPSBzZXJpZXMuYWRkQ291bnRlclNhbXBsZSgwLCAxMDApOworICAgIHZhciBzYW1wbGUyID0gc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgOTApOworICAgIHZhciBzYW1wbGUzID0gc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMiwgODApOworCisgICAgdmFyIHRocmVhZCA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIHNsaWNlMSA9IG5ld1RocmVhZFNsaWNlKHRocmVhZCwgU0NIRURVTElOR19TVEFURS5SVU5OSU5HLCAwLCAxKTsKKyAgICB2YXIgc2xpY2UyID0gbmV3VGhyZWFkU2xpY2UodGhyZWFkLCBTQ0hFRFVMSU5HX1NUQVRFLlNMRUVQSU5HLCAxLCAyLjcxOCk7CisgICAgdGhyZWFkLnRpbWVTbGljZXMgPSBbc2xpY2UxLCBzbGljZTJdOworCisgICAgdmFyIHJlY29yZDEgPSBuZXcgSW50ZXJhY3Rpb25SZWNvcmQoJ3IxJywgMCwgMjAwLCAzMDApOworICAgIHJlY29yZDEuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKHNhbXBsZTEpOworICAgIHJlY29yZDEuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKHNsaWNlMSk7CisgICAgdmFyIHJlY29yZDIgPSBuZXcgSW50ZXJhY3Rpb25SZWNvcmQoJ3IyJywgMCwgNjAwLCAxMDApOworICAgIHJlY29yZDIuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKHNhbXBsZTIpOworICAgIHJlY29yZDIuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKHNhbXBsZTMpOworICAgIHJlY29yZDIuYXNzb2NpYXRlZEV2ZW50cy5wdXNoKHNsaWNlMSk7CisKKyAgICAvLyBTZXQgdXAgdGhlIGFuYWx5c2lzIHZpZXdzIGFuZCBicnVzaGluZyBzdGF0ZSBjb250cm9sbGVyLgorICAgIHZhciBhbmFseXNpc1ZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLXZpZXcnKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYW5hbHlzaXNWaWV3KTsKKyAgICB2YXIgdGFiVmlldyA9IGFuYWx5c2lzVmlldy50YWJWaWV3OworICAgIHZhciBjb250cm9sbGVyID0gbmV3IEJydXNoaW5nU3RhdGVDb250cm9sbGVyKHVuZGVmaW5lZCk7CisgICAgYW5hbHlzaXNWaWV3LmJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gY29udHJvbGxlcjsKKworICAgIGZ1bmN0aW9uIGNoZWNrU2VsZWN0ZWRUYWIoZXhwZWN0ZWRTZWxlY3RlZFRhYiwgZXhwZWN0ZWRSZWxhdGVkRXZlbnRzKSB7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFiVmlldy5zZWxlY3RlZFRhYiwgZXhwZWN0ZWRTZWxlY3RlZFRhYik7CisgICAgICBhc3NlcnRFdmVudFNldChjb250cm9sbGVyLmN1cnJlbnRCcnVzaGluZ1N0YXRlLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHMsCisgICAgICAgICAgZXhwZWN0ZWRSZWxhdGVkRXZlbnRzKTsKKyAgICB9CisKKyAgICAvLyAxLiBFbXB0eSBzZWxlY3Rpb24gKGltcGxpY2l0KS4KKyAgICBhc3NlcnQubGVuZ3RoT2YodGFiVmlldy50YWJzLCAwKTsKKyAgICBjaGVja1NlbGVjdGVkVGFiKHVuZGVmaW5lZCwgW10pOworCisgICAgLy8gMi4gRXZlbnQgc2VsZWN0aW9uOiB0d28gc2FtcGxlcyBhbmQgb25lIHRocmVhZCBzbGljZS4KKyAgICBjb250cm9sbGVyLmNoYW5nZVNlbGVjdGlvbkZyb21SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoCisgICAgICAgIG5ldyBFdmVudFNldChbc2FtcGxlMSwgc2xpY2UxLCBzYW1wbGUyXSkpOworICAgIGFzc2VydC5sZW5ndGhPZih0YWJWaWV3LnRhYnMsIDIpOworICAgIHZhciBzYW1wbGVUYWIyID0gdGFiVmlldy50YWJzWzBdOworICAgIGNoZWNrVGFiKHNhbXBsZVRhYjIsCisgICAgICAgICd0ci11aS1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3JywKKyAgICAgICAgW3NhbXBsZTEsIHNhbXBsZTJdKTsKKyAgICB2YXIgc2luZ2xlVGhyZWFkU2xpY2VUYWIyID0gdGFiVmlldy50YWJzWzFdOworICAgIGNoZWNrVGFiKHNpbmdsZVRocmVhZFNsaWNlVGFiMiwKKyAgICAgICAgJ3RyLXVpLWEtc2luZ2xlLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3JywKKyAgICAgICAgW3NsaWNlMV0pOworICAgIC8vIEZpcnN0IHRhYiBzaG91bGQgYmUgc2VsZWN0ZWQuCisgICAgY2hlY2tTZWxlY3RlZFRhYihzYW1wbGVUYWIyLCBbXSk7CisKKyAgICAvLyAzLiBUYWIgc2VsZWN0aW9uOiBzaW5nbGUgdGhyZWFkIHNsaWNlIHRhYi4KKyAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gc2luZ2xlVGhyZWFkU2xpY2VUYWIyOworICAgIGNoZWNrU2VsZWN0ZWRUYWIoc2luZ2xlVGhyZWFkU2xpY2VUYWIyLCBbXSk7CisKKyAgICAvLyA0LiBFdmVudCBzZWxlY3Rpb246IG9uZSBzYW1wbGUsIHR3byB0aHJlYWQgc2xpY2VzLCBhbmQgb25lIGludGVyYWN0aW9uCisgICAgLy8gcmVjb3JkLgorICAgIGNvbnRyb2xsZXIuY2hhbmdlU2VsZWN0aW9uRnJvbVJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgKKyAgICAgICAgbmV3IEV2ZW50U2V0KFtzbGljZTEsIHNsaWNlMiwgc2FtcGxlMywgcmVjb3JkMV0pKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodGFiVmlldy50YWJzLCAzKTsKKyAgICB2YXIgc2FtcGxlVGFiNCA9IHRhYlZpZXcudGFic1swXTsKKyAgICBjaGVja1RhYihzYW1wbGVUYWI0LAorICAgICAgICAndHItdWktYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldycsCisgICAgICAgIFtzYW1wbGUzXSk7CisgICAgLy8gUmV1c2UgdGFiIChzYW1lIGV2ZW50IHR5cGUgYW5kIHN1Yi12aWV3IHRhZyBuYW1lKS4KKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2FtcGxlVGFiNCwgc2FtcGxlVGFiMik7CisgICAgdmFyIHNpbmdsZVJlY29yZFRhYjQgPSB0YWJWaWV3LnRhYnNbMV07CisgICAgY2hlY2tUYWIoc2luZ2xlUmVjb3JkVGFiNCwKKyAgICAgICAgJ3RyLXVpLWEtc2luZ2xlLWludGVyYWN0aW9uLXJlY29yZC1zdWItdmlldycsCisgICAgICAgIFtyZWNvcmQxXSk7CisgICAgdmFyIG11bHRpVGhyZWFkU2xpY2VUYWI0ID0gdGFiVmlldy50YWJzWzJdOworICAgIGNoZWNrVGFiKG11bHRpVGhyZWFkU2xpY2VUYWI0LAorICAgICAgICAndHItdWktYS1tdWx0aS10aHJlYWQtdGltZS1zbGljZS1zdWItdmlldycsCisgICAgICAgIFtzbGljZTEsIHNsaWNlMl0pOworICAgIC8vIFJlbWVtYmVyIHNlbGVjdGVkIHRhYiAoZXZlbiB0aG91Z2ggdGhlIHRhYiB3YXMgZGVzdHJveWVkKS4KKyAgICBjaGVja1NlbGVjdGVkVGFiKG11bHRpVGhyZWFkU2xpY2VUYWI0LCBbXSk7CisKKyAgICAvLyA1LiBUYWIgc2VsZWN0aW9uOiBzaW5nbGUgaW50ZXJhY3Rpb24gcmVjb3JkIHRhYi4KKyAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gc2luZ2xlUmVjb3JkVGFiNDsKKyAgICBjaGVja1NlbGVjdGVkVGFiKHNpbmdsZVJlY29yZFRhYjQsIFtzYW1wbGUxLCBzbGljZTFdKTsKKworICAgIC8vIDYuIEV2ZW50IHNlbGVjdGlvbjogb25lIGludGVyYWN0aW9uIHJlY29yZC4KKyAgICBjb250cm9sbGVyLmNoYW5nZVNlbGVjdGlvbkZyb21SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoCisgICAgICAgIG5ldyBFdmVudFNldChbcmVjb3JkMl0pKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodGFiVmlldy50YWJzLCAxKTsKKyAgICB2YXIgc2luZ2xlUmVjb3JkVGFiNiA9IHRhYlZpZXcudGFic1swXTsKKyAgICBjaGVja1RhYihzaW5nbGVSZWNvcmRUYWI2LAorICAgICAgICAndHItdWktYS1zaW5nbGUtaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3JywKKyAgICAgICAgW3JlY29yZDJdKTsKKyAgICAvLyBSZXVzZSB0YWIgKHNhbWUgZXZlbnQgdHlwZSBhbmQgc3ViLXZpZXcgdGFnIG5hbWUpLgorICAgIGFzc2VydC5zdHJpY3RFcXVhbChzaW5nbGVSZWNvcmRUYWI2LCBzaW5nbGVSZWNvcmRUYWI0KTsKKyAgICAvLyBSZW1lbWJlciBzZWxlY3RlZCB0YWIuCisgICAgY2hlY2tTZWxlY3RlZFRhYihzaW5nbGVSZWNvcmRUYWI2LCBbc2FtcGxlMiwgc2FtcGxlMywgc2xpY2UxXSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGUwZDhlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9jb3VudGVyX3NhbXBsZV9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsMTIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci11aS1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3JworICAgIGV4dGVuZHM9J3RyLXVpLWEtc3ViLXZpZXcnPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDx0ci11aS1iLXRhYmxlIGlkPSd0YWJsZSc+PC90ci11aS1iLXRhYmxlPgorICA8L3RlbXBsYXRlPgorPC9wb2x5bWVyLWVsZW1lbnQ+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisoZnVuY3Rpb24oKSB7CisgIHZhciBDT1VOVEVSX1NBTVBMRV9UQUJMRV9DT0xVTU5TID0gWworICAgIHsKKyAgICAgIHRpdGxlOiAnQ291bnRlcicsCisgICAgICB3aWR0aDogJzE1MHB4JywKKyAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5jb3VudGVyOyB9CisgICAgfSwKKyAgICB7CisgICAgICB0aXRsZTogJ1NlcmllcycsCisgICAgICB3aWR0aDogJzE1MHB4JywKKyAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5zZXJpZXM7IH0KKyAgICB9LAorICAgIHsKKyAgICAgIHRpdGxlOiAnVGltZScsCisgICAgICB3aWR0aDogJzE1MHB4JywKKyAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5zdGFydDsgfQorICAgIH0sCisgICAgeworICAgICAgdGl0bGU6ICdWYWx1ZScsCisgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnZhbHVlOyB9CisgICAgfQorICBdOworCisgIFBvbHltZXIoJ3RyLXVpLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnLCB7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBDT1VOVEVSX1NBTVBMRV9UQUJMRV9DT0xVTU5TOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPQorICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID8gdGhpcy5nZXRSb3dzXyh0aGlzLnNlbGVjdGlvbi50b0FycmF5KCkpIDogW107CisgICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0YWJsZSByb3dzIGZvciB0aGUgc3BlY2lmaWVkIHNhbXBsZXMuCisgICAgICoKKyAgICAgKiBXZSBwcmludCBlYWNoIGNvdW50ZXIvc2VyaWVzIGNvbWJpbmF0aW9uIHRoZSBmaXJzdCB0aW1lIHRoYXQgaXQKKyAgICAgKiBhcHBlYXJzLiBGb3Igc3Vic2VxdWVudCBzYW1wbGVzIGluIGVhY2ggc2VyaWVzLCB3ZSBvbWl0IHRoZSBjb3VudGVyCisgICAgICogYW5kIHNlcmllcyBuYW1lLiBUaGlzIG1ha2VzIGl0IGVhc3kgdG8gc2NhbiB0byBmaW5kIHRoZSBuZXh0IHNlcmllcy4KKyAgICAgKgorICAgICAqIEVhY2ggc2VyaWVzIGNhbiBiZSBjb2xsYXBzZWQuIEluIHRoZSBleHBhbmRlZCBzdGF0ZSwgYWxsIHNhbXBsZXMKKyAgICAgKiBhcmUgc2hvd24uIEluIHRoZSBjb2xsYXBzZWQgc3RhdGUsIG9ubHkgdGhlIGZpcnN0IHNhbXBsZSBpcyBkaXNwbGF5ZWQuCisgICAgICovCisgICAgZ2V0Um93c186IGZ1bmN0aW9uKHNhbXBsZXMpIHsKKyAgICAgIHZhciBzYW1wbGVzQnlDb3VudGVyID0gdHIuYi5ncm91cChzYW1wbGVzLCBmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgICAgcmV0dXJuIHNhbXBsZS5zZXJpZXMuY291bnRlci5ndWlkOworICAgICAgfSk7CisKKyAgICAgIHZhciByb3dzID0gW107CisgICAgICB0ci5iLml0ZXJJdGVtcyhzYW1wbGVzQnlDb3VudGVyLCBmdW5jdGlvbih1bnVzZWQsIGNvdW50ZXJTYW1wbGVzKSB7CisgICAgICAgIHZhciBzYW1wbGVzQnlTZXJpZXMgPSB0ci5iLmdyb3VwKGNvdW50ZXJTYW1wbGVzLCBmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgICAgICByZXR1cm4gc2FtcGxlLnNlcmllcy5ndWlkOworICAgICAgICB9KTsKKworICAgICAgICB0ci5iLml0ZXJJdGVtcyhzYW1wbGVzQnlTZXJpZXMsIGZ1bmN0aW9uKHVudXNlZCwgc2VyaWVzU2FtcGxlcykgeworICAgICAgICAgIHZhciBzZXJpZXNSb3dzID0gdGhpcy5nZXRSb3dzRm9yU2FtcGxlc18oc2VyaWVzU2FtcGxlcyk7CisgICAgICAgICAgc2VyaWVzUm93c1swXS5jb3VudGVyID0gc2VyaWVzU2FtcGxlc1swXS5zZXJpZXMuY291bnRlci5uYW1lOworICAgICAgICAgIHNlcmllc1Jvd3NbMF0uc2VyaWVzID0gc2VyaWVzU2FtcGxlc1swXS5zZXJpZXMubmFtZTsKKworICAgICAgICAgIGlmIChzZXJpZXNSb3dzLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICAgIHNlcmllc1Jvd3NbMF0uc3ViUm93cyA9IHNlcmllc1Jvd3Muc2xpY2UoMSk7CisgICAgICAgICAgICBzZXJpZXNSb3dzWzBdLmlzRXhwYW5kZWQgPSB0cnVlOworICAgICAgICAgIH0KKworICAgICAgICAgIHJvd3MucHVzaChzZXJpZXNSb3dzWzBdKTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgcmV0dXJuIHJvd3M7CisgICAgfSwKKworICAgIGdldFJvd3NGb3JTYW1wbGVzXzogZnVuY3Rpb24oc2FtcGxlcykgeworICAgICAgcmV0dXJuIHNhbXBsZXMubWFwKGZ1bmN0aW9uKHNhbXBsZSkgeworICAgICAgICByZXR1cm4geworICAgICAgICAgIHN0YXJ0OiBzYW1wbGUudGltZXN0YW1wLAorICAgICAgICAgIHZhbHVlOiBzYW1wbGUudmFsdWUKKyAgICAgICAgfTsKKyAgICAgIH0pOworICAgIH0KKyAgfSk7Cit9KSgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2NvdW50ZXJfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MDM1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2NvdW50ZXJfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDE3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvY291bnRlcl9zZXJpZXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvY291bnRlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworCisgIHZhciBDb3VudGVyID0gdHIubW9kZWwuQ291bnRlcjsKKyAgdmFyIENvdW50ZXJTZXJpZXMgPSB0ci5tb2RlbC5Db3VudGVyU2VyaWVzOworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV91bmRlZmluZWRTZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnKTsKKyAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCh1bmRlZmluZWQpOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKGFuYWx5c2lzRWwuJC50YWJsZS50YWJsZVJvd3MsIDApOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV9vbmVDb3VudGVyT25lU2VyaWVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyBDb3VudGVyU2VyaWVzKCdzZXJpZXMxJywgMCk7CisgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMCwgMCk7CisgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMSwgMTApOworCisgICAgdmFyIGNvdW50ZXIgPSBuZXcgQ291bnRlcihudWxsLCAwLCAnY2F0JywgJ2N0cjEnKTsKKyAgICBjb3VudGVyLmFkZFNlcmllcyhzZXJpZXMpOworCisgICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWNvdW50ZXItc2FtcGxlLXN1Yi12aWV3Jyk7CisgICAgYW5hbHlzaXNFbC5zZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoc2VyaWVzLnNhbXBsZXMpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKKworICAgIC8vIFRoZSBmaXJzdCBzYW1wbGUgc2hvdWxkIGJlIGxpc3RlZCBhcyBhIGNvbGxhcHNpYmxlIGhlYWRlciByb3cgZm9yIHRoZQorICAgIC8vIHNlcmllcy4KKyAgICB2YXIgcm93cyA9IGFuYWx5c2lzRWwuJC50YWJsZS50YWJsZVJvd3M7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHJvd3MsIDEpOworICAgIGFzc2VydC5pc1RydWUocm93c1swXS5pc0V4cGFuZGVkKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudGVyLCAnY3RyMScpOworICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNlcmllcywgJ3NlcmllczEnKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0udmFsdWUsIDApOworCisgICAgLy8gVGhlIHNlY29uZCBzYW1wbGUgc2hvdWxkIGJlIGxpc3RlZCBhcyBhIHN1YnJvdyBvZiB0aGUgZmlyc3QuCisgICAgdmFyIHN1YlJvd3MgPSByb3dzWzBdLnN1YlJvd3M7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHN1YlJvd3MsIDEpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzdWJSb3dzWzBdLmNvdW50ZXIpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzdWJSb3dzWzBdLnNlcmllcyk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF0uc3RhcnQsIDEpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLnZhbHVlLCAxMCk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3NpbmdsZVNhbXBsZURvZXNudEhhdmVTdWJyb3dzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyBDb3VudGVyU2VyaWVzKCdzZXJpZXMxJywgMCk7CisgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMCwgMCk7CisKKyAgICB2YXIgY291bnRlciA9IG5ldyBDb3VudGVyKG51bGwsIDAsICdjYXQnLCAnY3RyMScpOworICAgIGNvdW50ZXIuYWRkU2VyaWVzKHNlcmllcyk7CisKKyAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnKTsKKyAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9IG5ldyBFdmVudFNldChzZXJpZXMuc2FtcGxlcyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOworCisgICAgLy8gVGhlIGZpcnN0IHNhbXBsZSBzaG91bGQgYmUgbGlzdGVkIGFzIGEgY29sbGFwc2libGUgaGVhZGVyIHJvdyBmb3IgdGhlCisgICAgLy8gc2VyaWVzLgorICAgIHZhciByb3dzID0gYW5hbHlzaXNFbC4kLnRhYmxlLnRhYmxlUm93czsKKyAgICBhc3NlcnQubGVuZ3RoT2Yocm93cywgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnRlciwgJ2N0cjEnKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zZXJpZXMsICdzZXJpZXMxJyk7CisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc3RhcnQsIDApOworICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnZhbHVlLCAwKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93c1swXS5zdWJSb3dzKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfb25lQ291bnRlclR3b1NlcmllcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMxID0gbmV3IENvdW50ZXJTZXJpZXMoJ3NlcmllczEnLCAwKTsKKyAgICBzZXJpZXMxLmFkZENvdW50ZXJTYW1wbGUoMSwgMTApOworICAgIHNlcmllczEuYWRkQ291bnRlclNhbXBsZSgyLCAyMCk7CisKKyAgICB2YXIgc2VyaWVzMiA9IG5ldyBDb3VudGVyU2VyaWVzKCdzZXJpZXMyJywgMCk7CisgICAgc2VyaWVzMi5hZGRDb3VudGVyU2FtcGxlKDMsIDMwKTsKKworICAgIHZhciBjb3VudGVyID0gbmV3IENvdW50ZXIobnVsbCwgMCwgJ2NhdCcsICdjdHIxJyk7CisgICAgY291bnRlci5hZGRTZXJpZXMoc2VyaWVzMSk7CisgICAgY291bnRlci5hZGRTZXJpZXMoc2VyaWVzMik7CisKKyAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnKTsKKyAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9CisgICAgICAgIG5ldyBFdmVudFNldChzZXJpZXMxLnNhbXBsZXMuY29uY2F0KHNlcmllczIuc2FtcGxlcykpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKKworICAgIC8vIFRoZSBmaXJzdCBzYW1wbGVzIHNob3VsZCBiZSBsaXN0ZWQgYXMgY29sbGFwc2libGUgaGVhZGVyIHJvd3MgZm9yIHRoZQorICAgIC8vIHNlcmllcy4KKyAgICB2YXIgcm93cyA9IGFuYWx5c2lzRWwuJC50YWJsZS50YWJsZVJvd3M7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHJvd3MsIDIpOworICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50ZXIsICdjdHIxJyk7CisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uc2VyaWVzLCAnc2VyaWVzMScpOworICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnN0YXJ0LCAxKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1swXS52YWx1ZSwgMTApOworCisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uY291bnRlciwgJ2N0cjEnKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1sxXS5zZXJpZXMsICdzZXJpZXMyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uc3RhcnQsIDMpOworICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLnZhbHVlLCAzMCk7CisKKyAgICAvLyBUaGUgc3Vic2VxdWVudCBzYW1wbGVzIHNob3VsZCBiZSBsaXN0ZWQgYXMgc3Vicm93cyBvZiB0aGUgZmlyc3QuCisgICAgdmFyIHN1YlJvd3MxID0gcm93c1swXS5zdWJSb3dzOworICAgIGFzc2VydC5sZW5ndGhPZihzdWJSb3dzMSwgMSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1YlJvd3MxWzBdLmNvdW50ZXIpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzdWJSb3dzMVswXS5zZXJpZXMpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzMVswXS5zdGFydCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MxWzBdLnZhbHVlLCAyMCk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93c1sxXS5zdWJSb3dzKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfdHdvQ291bnRlcnNUd29TZXJpZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VyaWVzMSA9IG5ldyBDb3VudGVyU2VyaWVzKCdzZXJpZXMxJywgMCk7CisgICAgc2VyaWVzMS5hZGRDb3VudGVyU2FtcGxlKDEsIDEwKTsKKworICAgIHZhciBzZXJpZXMyID0gbmV3IENvdW50ZXJTZXJpZXMoJ3NlcmllczInLCAwKTsKKyAgICBzZXJpZXMyLmFkZENvdW50ZXJTYW1wbGUoMiwgMjApOworCisgICAgdmFyIGNvdW50ZXIxID0gbmV3IENvdW50ZXIobnVsbCwgMCwgJ2NhdCcsICdjdHIxJyk7CisgICAgdmFyIGNvdW50ZXIyID0gbmV3IENvdW50ZXIobnVsbCwgMCwgJ2NhdCcsICdjdHIyJyk7CisgICAgY291bnRlcjEuYWRkU2VyaWVzKHNlcmllczEpOworICAgIGNvdW50ZXIyLmFkZFNlcmllcyhzZXJpZXMyKTsKKworICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1jb3VudGVyLXNhbXBsZS1zdWItdmlldycpOworICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0KKyAgICAgICAgbmV3IEV2ZW50U2V0KHNlcmllczEuc2FtcGxlcy5jb25jYXQoc2VyaWVzMi5zYW1wbGVzKSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOworCisgICAgLy8gRWFjaCBzYW1wbGUgc2hvdWxkIGJlIGEgaGVhZGVyIHJvdyB3aXRoIG5vIHN1YnJvd3MuCisgICAgdmFyIHJvd3MgPSBhbmFseXNpc0VsLiQudGFibGUudGFibGVSb3dzOworICAgIGFzc2VydC5sZW5ndGhPZihyb3dzLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudGVyLCAnY3RyMScpOworICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLnNlcmllcywgJ3NlcmllczEnKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1swXS5zdGFydCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0udmFsdWUsIDEwKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93c1swXS5zdWJSb3dzKTsKKworICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLmNvdW50ZXIsICdjdHIyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV0uc2VyaWVzLCAnc2VyaWVzMicpOworICAgIGFzc2VydC5lcXVhbChyb3dzWzFdLnN0YXJ0LCAyKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1sxXS52YWx1ZSwgMjApOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChyb3dzWzFdLnN1YlJvd3MpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV9jb250ZW50c0NsZWFyZWRFYWNoU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IG5ldyBDb3VudGVyU2VyaWVzKCdzZXJpZXMxJywgMCk7CisgICAgc2VyaWVzLmFkZENvdW50ZXJTYW1wbGUoMCwgMCk7CisKKyAgICB2YXIgY291bnRlciA9IG5ldyBDb3VudGVyKG51bGwsIDAsICdjYXQnLCAnY3RyMScpOworICAgIGNvdW50ZXIuYWRkU2VyaWVzKHNlcmllcyk7CisKKyAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtY291bnRlci1zYW1wbGUtc3ViLXZpZXcnKTsKKyAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9IG5ldyBFdmVudFNldChzZXJpZXMuc2FtcGxlcyk7CisgICAgYW5hbHlzaXNFbC5zZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoc2VyaWVzLnNhbXBsZXMpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKKworICAgIGFzc2VydC5sZW5ndGhPZihhbmFseXNpc0VsLiQudGFibGUudGFibGVSb3dzLCAxKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvZmxvd19jbGFzc2lmaWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA4Y2YxOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvZmxvd19jbGFzc2lmaWVyLmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEZMT1dfSU4gPSAweDE7CisgIHZhciBGTE9XX09VVCA9IDB4MjsKKyAgdmFyIEZMT1dfSU5fT1VUID0gRkxPV19JTiB8IEZMT1dfT1VUOworCisgIGZ1bmN0aW9uIEZsb3dDbGFzc2lmaWVyKCkgeworICAgIHRoaXMubnVtRXZlbnRzXyA9IDA7CisgICAgdGhpcy5ldmVudHNCeUdVSURfID0ge307CisgIH0KKworICBGbG93Q2xhc3NpZmllci5wcm90b3R5cGUgPSB7CisgICAgZ2V0RlNfOiBmdW5jdGlvbihldmVudCkgeworICAgICAgdmFyIGZzID0gdGhpcy5ldmVudHNCeUdVSURfW2V2ZW50Lmd1aWRdOworICAgICAgaWYgKGZzID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5udW1FdmVudHNfKys7CisgICAgICAgIGZzID0geworICAgICAgICAgIHN0YXRlOiAwLAorICAgICAgICAgIGV2ZW50OiBldmVudAorICAgICAgICB9OworICAgICAgICB0aGlzLmV2ZW50c0J5R1VJRF9bZXZlbnQuZ3VpZF0gPSBmczsKKyAgICAgIH0KKyAgICAgIHJldHVybiBmczsKKyAgICB9LAorCisgICAgYWRkSW5GbG93OiBmdW5jdGlvbihldmVudCkgeworICAgICAgdmFyIGZzID0gdGhpcy5nZXRGU18oZXZlbnQpOworICAgICAgZnMuc3RhdGUgfD0gRkxPV19JTjsKKyAgICAgIHJldHVybiBldmVudDsKKyAgICB9LAorCisgICAgYWRkT3V0RmxvdzogZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHZhciBmcyA9IHRoaXMuZ2V0RlNfKGV2ZW50KTsKKyAgICAgIGZzLnN0YXRlIHw9IEZMT1dfT1VUOworICAgICAgcmV0dXJuIGV2ZW50OworICAgIH0sCisKKyAgICBoYXNFdmVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMubnVtRXZlbnRzXyA+IDA7CisgICAgfSwKKworICAgIGdldCBpbkZsb3dFdmVudHMoKSB7CisgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICBmb3IgKHZhciBndWlkIGluIHRoaXMuZXZlbnRzQnlHVUlEXykgeworICAgICAgICB2YXIgZnMgPSB0aGlzLmV2ZW50c0J5R1VJRF9bZ3VpZF07CisgICAgICAgIGlmIChmcy5zdGF0ZSA9PT0gRkxPV19JTikKKyAgICAgICAgICBzZWxlY3Rpb24ucHVzaChmcy5ldmVudCk7CisgICAgICB9CisgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBnZXQgb3V0Rmxvd0V2ZW50cygpIHsKKyAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIGZvciAodmFyIGd1aWQgaW4gdGhpcy5ldmVudHNCeUdVSURfKSB7CisgICAgICAgIHZhciBmcyA9IHRoaXMuZXZlbnRzQnlHVUlEX1tndWlkXTsKKyAgICAgICAgaWYgKGZzLnN0YXRlID09PSBGTE9XX09VVCkKKyAgICAgICAgICBzZWxlY3Rpb24ucHVzaChmcy5ldmVudCk7CisgICAgICB9CisgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBnZXQgaW50ZXJuYWxGbG93RXZlbnRzKCkgeworICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgZm9yICh2YXIgZ3VpZCBpbiB0aGlzLmV2ZW50c0J5R1VJRF8pIHsKKyAgICAgICAgdmFyIGZzID0gdGhpcy5ldmVudHNCeUdVSURfW2d1aWRdOworICAgICAgICBpZiAoZnMuc3RhdGUgPT09IEZMT1dfSU5fT1VUKQorICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKGZzLmV2ZW50KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBzZWxlY3Rpb247CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgRmxvd0NsYXNzaWZpZXI6IEZsb3dDbGFzc2lmaWVyCisgIH07Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2Zsb3dfY2xhc3NpZmllcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2Zsb3dfY2xhc3NpZmllcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNhM2E0NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvZmxvd19jbGFzc2lmaWVyX3Rlc3QuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2Zsb3dfY2xhc3NpZmllci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBuZXdGbG93RXZlbnRFeCA9IHRyLmMudGVzdF91dGlscy5uZXdGbG93RXZlbnRFeDsKKworICB0ZXN0KCdiYXNpYycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICAndGl0bGUnOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDEwIH0pOworICAgIHZhciBiID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICAndGl0bGUnOiAnYicsIHN0YXJ0OiAxMCwgZW5kOiAyMCB9KTsKKyAgICB2YXIgYyA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2MnLCBzdGFydDogMjAsIGVuZDogMjUgfSk7CisgICAgdmFyIGQgPSBuZXdGbG93RXZlbnRFeCh7CisgICAgICAgICd0aXRsZSc6ICdkJywgc3RhcnQ6IDMwLCBlbmQ6IDM1IH0pOworCisgICAgdmFyIGZjID0gbmV3IHRyLnVpLmFuYWx5c2lzLkZsb3dDbGFzc2lmaWVyKCk7CisgICAgZmMuYWRkSW5GbG93KGEpOworCisgICAgZmMuYWRkSW5GbG93KGIpOworICAgIGZjLmFkZE91dEZsb3coYik7CisKKyAgICBmYy5hZGRJbkZsb3coYyk7CisgICAgZmMuYWRkT3V0RmxvdyhjKTsKKworICAgIGZjLmFkZE91dEZsb3coZCk7CisKKyAgICBmdW5jdGlvbiBhc1NvcnRlZEFycmF5KHNlbGVjdGlvbikgeworICAgICAgdmFyIGV2ZW50cyA9IHRyLmIuYXNBcnJheShzZWxlY3Rpb24pOworICAgICAgZXZlbnRzLnNvcnQoZnVuY3Rpb24oYSwgYikgeworICAgICAgICByZXR1cm4gYS5ndWlkIC0gYi5ndWlkOworICAgICAgfSk7CisgICAgICByZXR1cm4gZXZlbnRzOworICAgIH0KKworICAgIGFzc2VydC5kZWVwRXF1YWwoYXNTb3J0ZWRBcnJheShmYy5pbkZsb3dFdmVudHMpLCBbYV0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoYXNTb3J0ZWRBcnJheShmYy5vdXRGbG93RXZlbnRzKSwgW2RdKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKGFzU29ydGVkQXJyYXkoZmMuaW50ZXJuYWxGbG93RXZlbnRzKSwgW2IsIGNdKTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxOGUyOWMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbApAQCAtMCwwICsxLDMzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yZWN0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3NpemVfaW5fYnl0ZXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX3N0YW1wLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL29iamVjdF9pbnN0YW5jZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvb2JqZWN0X3NuYXBzaG90Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy9zaXplX2luX2J5dGVzX3NwYW4uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9zdGFtcF9zcGFuLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldyIKKyAgICBpcz0iSFRNTFVua25vd25FbGVtZW50Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPGRpdiBpZD0iY29udGVudCI+CisgICAgPC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIGZ1bmN0aW9uIGlzVGFibGUob2JqZWN0KSB7CisgICAgaWYgKCEob2JqZWN0IGluc3RhbmNlb2YgQXJyYXkpIHx8CisgICAgICAgIChvYmplY3QubGVuZ3RoIDwgMikpIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKHZhciBjb2xOYW1lIGluIG9iamVjdFswXSkgeworICAgICAgaWYgKHR5cGVvZiBjb2xOYW1lICE9PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdC5sZW5ndGg7ICsraSkgeworICAgICAgaWYgKCEob2JqZWN0W2ldIGluc3RhbmNlb2YgT2JqZWN0KSkgcmV0dXJuIGZhbHNlOworICAgICAgZm9yICh2YXIgY29sTmFtZSBpbiBvYmplY3RbaV0pIHsKKyAgICAgICAgaWYgKGkgJiYgKG9iamVjdFswXVtjb2xOYW1lXSA9PT0gdW5kZWZpbmVkKSkgcmV0dXJuIGZhbHNlOworICAgICAgICB2YXIgY2VsbFR5cGUgPSB0eXBlb2Ygb2JqZWN0W2ldW2NvbE5hbWVdOworICAgICAgICBpZiAoY2VsbFR5cGUgIT09ICdzdHJpbmcnICYmIGNlbGxUeXBlICE9ICdudW1iZXInKSByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBpZiAoaSkgeworICAgICAgICBmb3IgKHZhciBjb2xOYW1lIGluIG9iamVjdFswXSkgeworICAgICAgICAgIGlmIChvYmplY3RbaV1bY29sTmFtZV0gPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworICB9CisKKyAgUG9seW1lcih7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5vYmplY3RfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgb2JqZWN0KCkgeworICAgICAgcmV0dXJuIHRoaXMub2JqZWN0XzsKKyAgICB9LAorCisgICAgc2V0IG9iamVjdChvYmplY3QpIHsKKyAgICAgIHRoaXMub2JqZWN0XyA9IG9iamVjdDsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICcnOworICAgICAgdGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKCcnLCB0aGlzLm9iamVjdF8sIDAsIDAsIDUsICcnKTsKKyAgICB9LAorCisgICAgYXBwZW5kRWxlbWVudHNGb3JUeXBlXzogZnVuY3Rpb24oCisgICAgICAgIGxhYmVsLCBvYmplY3QsIGluZGVudCwgZGVwdGgsIG1heERlcHRoLCBzdWZmaXgpIHsKKyAgICAgIGlmIChkZXB0aCA+IG1heERlcHRoKSB7CisgICAgICAgIHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8oCisgICAgICAgICAgICBsYWJlbCwgaW5kZW50LCAnPHJlY3Vyc2lvbiBsaW1pdCByZWFjaGVkPicsIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGFiZWwsIGluZGVudCwgJ3VuZGVmaW5lZCcsIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKG9iamVjdCA9PT0gbnVsbCkgeworICAgICAgICB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLCBpbmRlbnQsICdudWxsJywgc3VmZml4KTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBpZiAoIShvYmplY3QgaW5zdGFuY2VvZiBPYmplY3QpKSB7CisgICAgICAgIHZhciB0eXBlID0gdHlwZW9mIG9iamVjdDsKKyAgICAgICAgaWYgKHR5cGUgPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICB2YXIgb2JqZWN0UmVwbGFjZWQgPSBmYWxzZTsKKyAgICAgICAgICBpZiAoKG9iamVjdFswXSA9PSAneycgJiYgb2JqZWN0W29iamVjdC5sZW5ndGggLSAxXSA9PSAnfScpIHx8CisgICAgICAgICAgICAgIChvYmplY3RbMF0gPT0gJ1snICYmIG9iamVjdFtvYmplY3QubGVuZ3RoIC0gMV0gPT0gJ10nKSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgb2JqZWN0ID0gSlNPTi5wYXJzZShvYmplY3QpOworICAgICAgICAgICAgICBvYmplY3RSZXBsYWNlZCA9IHRydWU7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmICghb2JqZWN0UmVwbGFjZWQpIHsKKyAgICAgICAgICAgIGlmIChvYmplY3QuaW5kZXhPZignXG4nKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgdmFyIGxpbmVzID0gb2JqZWN0LnNwbGl0KCdcbicpOworICAgICAgICAgICAgICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGkpIHsKKyAgICAgICAgICAgICAgICB2YXIgdGV4dCwgaW9mZiwgbGwsIHNzOworICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICAgIHRleHQgPSAnIicgKyBsaW5lOworICAgICAgICAgICAgICAgICAgaW9mZiA9IDA7CisgICAgICAgICAgICAgICAgICBsbCA9IGxhYmVsOworICAgICAgICAgICAgICAgICAgc3MgPSAnJzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPCBsaW5lcy5sZW5ndGggLSAxKSB7CisgICAgICAgICAgICAgICAgICB0ZXh0ID0gbGluZTsKKyAgICAgICAgICAgICAgICAgIGlvZmYgPSAxOworICAgICAgICAgICAgICAgICAgbGwgPSAnJzsKKyAgICAgICAgICAgICAgICAgIHNzID0gJyc7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgIHRleHQgPSBsaW5lICsgJyInOworICAgICAgICAgICAgICAgICAgaW9mZiA9IDE7CisgICAgICAgICAgICAgICAgICBsbCA9ICcnOworICAgICAgICAgICAgICAgICAgc3MgPSBzdWZmaXg7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdmFyIGVsID0gdGhpcy5hcHBlbmRTaW1wbGVUZXh0XygKKyAgICAgICAgICAgICAgICAgICAgbGwsIGluZGVudCArIGlvZmYgKiBsYWJlbC5sZW5ndGggKyBpb2ZmLCB0ZXh0LCBzcyk7CisgICAgICAgICAgICAgICAgZWwuc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUnOworICAgICAgICAgICAgICAgIHJldHVybiBlbDsKKyAgICAgICAgICAgICAgfSwgdGhpcyk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8oCisgICAgICAgICAgICAgICAgICBsYWJlbCwgaW5kZW50LCAnIicgKyBvYmplY3QgKyAnIicsIHN1ZmZpeCk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvKiBGYWxsIHRocm91Z2ggdG8gdGhlIGZsb3cgYmVsb3cgKi8KKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGFiZWwsIGluZGVudCwgb2JqZWN0LCBzdWZmaXgpOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCkgeworICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpOworICAgICAgICBsaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChvYmplY3QpOworICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfKGxhYmVsLCBpbmRlbnQsIGxpbmssIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdEluc3RhbmNlKSB7CisgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgIGxpbmsuc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KG9iamVjdCk7CisgICAgICAgIHRoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsIGluZGVudCwgbGluaywgc3VmZml4KTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgdHIuYi5SZWN0KSB7CisgICAgICAgIHRoaXMuYXBwZW5kU2ltcGxlVGV4dF8obGFiZWwsIGluZGVudCwgb2JqZWN0LnRvU3RyaW5nKCksIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuU2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgdmFyIGVsID0gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7CisgICAgICAgIGVsLm51bUJ5dGVzID0gb2JqZWN0Lm51bUJ5dGVzOworICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfKGxhYmVsLCBpbmRlbnQsIGVsLCBzdWZmaXgpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbikgeworICAgICAgICB2YXIgZWwgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICAgICAgZWwuZHVyYXRpb24gPSBvYmplY3QuZHVyYXRpb247CisgICAgICAgIHRoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsIGluZGVudCwgZWwsIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIHRyLmIudW5pdHMuVGltZVN0YW1wKSB7CisgICAgICAgIHZhciBlbCA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtc3RhbXAtc3BhbicpOworICAgICAgICBlbC50aW1lc3RhbXAgPSBvYmplY3QudGltZXN0YW1wOworICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfKGxhYmVsLCBpbmRlbnQsIGVsLCBzdWZmaXgpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRzRm9yQXJyYXlfKAorICAgICAgICAgICAgbGFiZWwsIG9iamVjdCwgaW5kZW50LCBkZXB0aCwgbWF4RGVwdGgsIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdGhpcy5hcHBlbmRFbGVtZW50c0Zvck9iamVjdF8oCisgICAgICAgICAgbGFiZWwsIG9iamVjdCwgaW5kZW50LCBkZXB0aCwgbWF4RGVwdGgsIHN1ZmZpeCk7CisgICAgfSwKKworICAgIGFwcGVuZEVsZW1lbnRzRm9yQXJyYXlfOiBmdW5jdGlvbigKKyAgICAgICAgbGFiZWwsIG9iamVjdCwgaW5kZW50LCBkZXB0aCwgbWF4RGVwdGgsIHN1ZmZpeCkgeworICAgICAgaWYgKG9iamVjdC5sZW5ndGggPT0gMCkgeworICAgICAgICB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLCBpbmRlbnQsICdbXScsIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKGlzVGFibGUob2JqZWN0KSkgeworICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisgICAgICAgIHZhciBjb2x1bW5zID0gW107CisgICAgICAgIHRyLmIuaXRlckl0ZW1zKG9iamVjdFswXSwgZnVuY3Rpb24oY29sTmFtZSkgeworICAgICAgICAgIGNvbHVtbnMucHVzaCh7dGl0bGU6IGNvbE5hbWUsIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHJldHVybiByb3dbY29sTmFtZV07CisgICAgICAgICAgfX0pOworICAgICAgICB9KTsKKyAgICAgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICAgICAgdGFibGUudGFibGVSb3dzID0gb2JqZWN0OworICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfKGxhYmVsLCBpbmRlbnQsIHRhYmxlLCBzdWZmaXgpOworICAgICAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKAorICAgICAgICAgIGxhYmVsICsgJ1snLAorICAgICAgICAgIG9iamVjdFswXSwKKyAgICAgICAgICBpbmRlbnQsIGRlcHRoICsgMSwgbWF4RGVwdGgsCisgICAgICAgICAgb2JqZWN0Lmxlbmd0aCA+IDEgPyAnLCcgOiAnXScgKyBzdWZmaXgpOworICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKAorICAgICAgICAgICAgJycsCisgICAgICAgICAgICBvYmplY3RbaV0sCisgICAgICAgICAgICBpbmRlbnQgKyBsYWJlbC5sZW5ndGggKyAxLCBkZXB0aCArIDEsIG1heERlcHRoLAorICAgICAgICAgICAgaSA8IG9iamVjdC5sZW5ndGggLSAxID8gJywnIDogJ10nICsgc3VmZml4KTsKKyAgICAgIH0KKyAgICAgIHJldHVybjsKKyAgICB9LAorCisgICAgYXBwZW5kRWxlbWVudHNGb3JPYmplY3RfOiBmdW5jdGlvbigKKyAgICAgICAgbGFiZWwsIG9iamVjdCwgaW5kZW50LCBkZXB0aCwgbWF4RGVwdGgsIHN1ZmZpeCkgeworICAgICAgdmFyIGtleXMgPSB0ci5iLmRpY3Rpb25hcnlLZXlzKG9iamVjdCk7CisgICAgICBpZiAoa2V5cy5sZW5ndGggPT0gMCkgeworICAgICAgICB0aGlzLmFwcGVuZFNpbXBsZVRleHRfKGxhYmVsLCBpbmRlbnQsICd7fScsIHN1ZmZpeCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKAorICAgICAgICAgIGxhYmVsICsgJ3snICsga2V5c1swXSArICc6ICcsCisgICAgICAgICAgb2JqZWN0W2tleXNbMF1dLAorICAgICAgICAgIGluZGVudCwgZGVwdGgsIG1heERlcHRoLAorICAgICAgICAgIGtleXMubGVuZ3RoID4gMSA/ICcsJyA6ICd9JyArIHN1ZmZpeCk7CisgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdGhpcy5hcHBlbmRFbGVtZW50c0ZvclR5cGVfKAorICAgICAgICAgICAga2V5c1tpXSArICc6ICcsCisgICAgICAgICAgICBvYmplY3Rba2V5c1tpXV0sCisgICAgICAgICAgICBpbmRlbnQgKyBsYWJlbC5sZW5ndGggKyAxLCBkZXB0aCArIDEsIG1heERlcHRoLAorICAgICAgICAgICAgaSA8IGtleXMubGVuZ3RoIC0gMSA/ICcsJyA6ICd9JyArIHN1ZmZpeCk7CisgICAgICB9CisgICAgfSwKKworICAgIGFwcGVuZEVsZW1lbnRXaXRoTGFiZWxfOiBmdW5jdGlvbihsYWJlbCwgaW5kZW50LCBkYXRhRWxlbWVudCwgc3VmZml4KSB7CisgICAgICB2YXIgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAgIHZhciBpbmRlbnRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgaW5kZW50U3Bhbi5zdHlsZS53aGl0ZVNwYWNlID0gJ3ByZSc7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluZGVudDsgaSsrKQorICAgICAgICBpbmRlbnRTcGFuLnRleHRDb250ZW50ICs9ICcgJzsKKyAgICAgIHJvdy5hcHBlbmRDaGlsZChpbmRlbnRTcGFuKTsKKworICAgICAgdmFyIGxhYmVsU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgIGxhYmVsU3Bhbi50ZXh0Q29udGVudCA9IGxhYmVsOworICAgICAgcm93LmFwcGVuZENoaWxkKGxhYmVsU3Bhbik7CisKKyAgICAgIHJvdy5hcHBlbmRDaGlsZChkYXRhRWxlbWVudCk7CisgICAgICB2YXIgc3VmZml4U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgIHN1ZmZpeFNwYW4udGV4dENvbnRlbnQgPSBzdWZmaXg7CisgICAgICByb3cuYXBwZW5kQ2hpbGQoc3VmZml4U3Bhbik7CisKKyAgICAgIHJvdy5kYXRhRWxlbWVudCA9IGRhdGFFbGVtZW50OworICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocm93KTsKKyAgICB9LAorCisgICAgYXBwZW5kU2ltcGxlVGV4dF86IGZ1bmN0aW9uKGxhYmVsLCBpbmRlbnQsIHRleHQsIHN1ZmZpeCkgeworICAgICAgdmFyIGVsID0gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgIGVsLnRleHRDb250ZW50ID0gdGV4dDsKKyAgICAgIHRoaXMuYXBwZW5kRWxlbWVudFdpdGhMYWJlbF8obGFiZWwsIGluZGVudCwgZWwsIHN1ZmZpeCk7CisgICAgICByZXR1cm4gZWw7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXctd2l0aC1sYWJlbCIKKyAgICBpcz0iSFRNTFVua25vd25FbGVtZW50Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgPC90ZW1wbGF0ZT4KKworICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5sYWJlbEVsXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgdGhpcy5nZW5lcmljT2JqZWN0Vmlld18gPQorICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMubGFiZWxFbF8pOworICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfKTsKKyAgICB9LAorCisgICAgZ2V0IGxhYmVsKCkgeworICAgICAgcmV0dXJuIHRoaXMubGFiZWxFbF8udGV4dENvbnRlbnQ7CisgICAgfSwKKworICAgIHNldCBsYWJlbChsYWJlbCkgeworICAgICAgdGhpcy5sYWJlbEVsXy50ZXh0Q29udGVudCA9IGxhYmVsOworICAgIH0sCisKKyAgICBnZXQgb2JqZWN0KCkgeworICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfLm9iamVjdDsKKyAgICB9LAorCisgICAgc2V0IG9iamVjdChvYmplY3QpIHsKKyAgICAgIHRoaXMuZ2VuZXJpY09iamVjdFZpZXdfLm9iamVjdCA9IG9iamVjdDsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ2ZDk1MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSwxOTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZGVlcF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvb2JqZWN0X2luc3RhbmNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgdGVzdCgndW5kZWZpbmVkVmFsdWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgIHZpZXcub2JqZWN0ID0gdW5kZWZpbmVkOworICAgIGFzc2VydC5lcXVhbCh2aWV3LiQuY29udGVudC50ZXh0Q29udGVudCwgJ3VuZGVmaW5lZCcpOworICB9KTsKKworICB0ZXN0KCdudWxsVmFsdWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgIHZpZXcub2JqZWN0ID0gbnVsbDsKKyAgICBhc3NlcnQuZXF1YWwodmlldy4kLmNvbnRlbnQudGV4dENvbnRlbnQsICdudWxsJyk7CisgIH0pOworCisgIHRlc3QoJ3N0cmluZ1ZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9ICdzdHJpbmcgdmFsdWUnOworICAgIGFzc2VydC5lcXVhbCh2aWV3LiQuY29udGVudC50ZXh0Q29udGVudCwgJyJzdHJpbmcgdmFsdWUiJyk7CisgIH0pOworCisgIHRlc3QoJ211bHRpTGluZVN0cmluZ1ZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9ICdpIGFtIGFcbiAgc3RyaW5nIHZhbHVlXG5pIGhhdmVcbiAgdmFyaW91cyBpbmRlbnRzJzsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7CisgICAgdmFyIGMgPSB2aWV3LiQuY29udGVudDsKKyAgfSk7CisKKyAgdGVzdCgnbXVsdGlMaW5lU3RyaW5nVmFsdWVJbnNpZGVPYmplY3QnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgIHZpZXcub2JqZWN0ID0ge2tleTogJ2kgYW0gYVxuICBzdHJpbmcgdmFsdWVcbmkgaGF2ZVxuICB2YXJpb3VzIGluZGVudHMnLAorICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnc2ltcGxlJ307CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICAgIHZhciBjID0gdmlldy4kLmNvbnRlbnQ7CisKKyAgfSk7CisKKyAgdGVzdCgnanNvbk9iamVjdFN0cmluZ1ZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9ICd7IngiOiAxfSc7CisgICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LmNoaWxkcmVuLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCwgNCk7CisgIH0pOworCisgIHRlc3QoJ2pzb25BcnJheVN0cmluZ1ZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9ICdbMSwyLDNdJzsKKyAgICBhc3NlcnQuZXF1YWwodmlldy4kLmNvbnRlbnQuY2hpbGRyZW4ubGVuZ3RoLCAzKTsKKyAgfSk7CisKKyAgdGVzdCgnYm9vbGVhblZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9IGZhbHNlOworICAgIGFzc2VydC5lcXVhbCh2aWV3LiQuY29udGVudC50ZXh0Q29udGVudCwgJ2ZhbHNlJyk7CisgIH0pOworCisgIHRlc3QoJ251bWJlclZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9IDMuMTQxNTk7CisgICAgYXNzZXJ0LmVxdWFsKHZpZXcuJC5jb250ZW50LnRleHRDb250ZW50LCAnMy4xNDE1OScpOworICB9KTsKKworICB0ZXN0KCdvYmplY3RTbmFwc2hvdFZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKworICAgIHZhciBpMTAgPSBuZXcgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UoCisgICAgICAgIHt9LCAnMHgxMDAwJywgJ2NhdCcsICduYW1lJywgMTApOworICAgIHZhciBzMTAgPSBpMTAuYWRkU25hcHNob3QoMTAsIHtmb286IDF9KTsKKworICAgIHZpZXcub2JqZWN0ID0gczEwOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodmlldy4kLmNvbnRlbnQuY2hpbGRyZW5bMF0uZGF0YUVsZW1lbnQudGFnTmFtZSwKKyAgICAgICAgJ1RSLVVJLUEtQU5BTFlTSVMtTElOSycpOworICB9KTsKKworICB0ZXN0KCdvYmplY3RJbnN0YW5jZVZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKworICAgIHZhciBpMTAgPSBuZXcgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UoCisgICAgICAgIHt9LCAnMHgxMDAwJywgJ2NhdCcsICduYW1lJywgMTApOworICAgIHZhciBzMTAgPSBpMTAuYWRkU25hcHNob3QoMTAsIHtmb286IDF9KTsKKworICAgIHZpZXcub2JqZWN0ID0gaTEwOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh2aWV3LiQuY29udGVudC5jaGlsZHJlblswXS5kYXRhRWxlbWVudC50YWdOYW1lLAorICAgICAgICAnVFItVUktQS1BTkFMWVNJUy1MSU5LJyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX2VtcHR5QXJyYXlWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBbXTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3R3b1ZhbHVlQXJyYXlWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBbMSwgMl07CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV90d29WYWx1ZUJBcnJheVZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9IFsxLCB7eDogMX1dOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfYXJyYXlWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBbMSwgMiwgJ3RocmVlJ107CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV9hcnJheVdpdGhTaW1wbGVPYmplY3RWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBbe3NpbXBsZTogJ29iamVjdCd9XTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX2FycmF5V2l0aENvbXBsZXhPYmplY3RWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBbe2NvbDA6ICdvYmplY3QnLCBjb2wxOiAwfSwKKyAgICAgICAgICAgICAgICAgICB7Y29sMjogJ09iamVjdCcsIGNvbDM6IDF9XTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7CisgICAgYXNzZXJ0LmVxdWFsKHVuZGVmaW5lZCwgdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgIHZpZXcuJC5jb250ZW50LCAndGFibGUnKSk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX2FycmF5V2l0aERlZXBPYmplY3RWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBbe2tleToge2RlZXA6ICdvYmplY3QgdmFsdWVzIG1ha2UgaXNUYWJsZSgpIHJldHVybiBmYWxzZSd9fV07CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICAgIGFzc2VydC5lcXVhbCh1bmRlZmluZWQsIHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICB2aWV3LiQuY29udGVudCwgJ3RhYmxlJykpOworICB9KTsKKworICB0ZXN0KCdqc29uVGFibGVWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBbe2NvbDA6ICdvYmplY3QnLCBjb2wxOiAwfSwge2NvbDA6ICdPYmplY3QnLCBjb2wxOiAxfV07CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICAgIHZhciB0YWJsZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHZpZXcuJC5jb250ZW50LCAndHItdWktYi10YWJsZScpOworICAgIGFzc2VydC5lcXVhbCgnY29sMCcsIHRhYmxlLnRhYmxlQ29sdW1uc1swXS50aXRsZSk7CisgICAgYXNzZXJ0LmVxdWFsKCdjb2wxJywgdGFibGUudGFibGVDb2x1bW5zWzFdLnRpdGxlKTsKKyAgICBhc3NlcnQuZXF1YWwoJ29iamVjdCcsIHRhYmxlLnRhYmxlQ29sdW1uc1swXS52YWx1ZSh0YWJsZS50YWJsZVJvd3NbMF0pKTsKKyAgICBhc3NlcnQuZXF1YWwoJ09iamVjdCcsIHRhYmxlLnRhYmxlQ29sdW1uc1swXS52YWx1ZSh0YWJsZS50YWJsZVJvd3NbMV0pKTsKKyAgICBhc3NlcnQuZXF1YWwoMCwgdGFibGUudGFibGVDb2x1bW5zWzFdLnZhbHVlKHRhYmxlLnRhYmxlUm93c1swXSkpOworICAgIGFzc2VydC5lcXVhbCgxLCB0YWJsZS50YWJsZUNvbHVtbnNbMV0udmFsdWUodGFibGUudGFibGVSb3dzWzFdKSk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX29iamVjdFZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9IHsKKyAgICAgICdlbnRyeV9vbmUnOiAnZW50cnlfb25lX3ZhbHVlJywKKyAgICAgICdlbnRyeV90d28nOiAyLAorICAgICAgJ2VudHJ5X3RocmVlJzogWzMsIDQsIDVdCisgICAgfTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7CisgIH0pOworCisgIHRlc3QoJ3RpbWVEdXJhdGlvblZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICB2aWV3Lm9iamVjdCA9IG5ldyB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbigzKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICB2aWV3LiQuY29udGVudCwgJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJykpOworICB9KTsKKworICB0ZXN0KCd0aW1lU3RhbXBWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBuZXcgdHIuYi51bml0cy5UaW1lU3RhbXAoMyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgdmlldy4kLmNvbnRlbnQsICd0ci11aS11LXRpbWUtc3RhbXAtc3BhbicpKTsKKyAgfSk7CisKKyAgdGVzdCgnc2l6ZUluQnl0ZXNWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgdmlldy5vYmplY3QgPSBuZXcgdHIuYi51bml0cy5TaXplSW5CeXRlcygzKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICB2aWV3LiQuY29udGVudCwgJ3RyLXVpLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJykpOworICB9KTsKKworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9hbGxvY2F0b3JfZGV0YWlsc19wYW5lLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX2FsbG9jYXRvcl9kZXRhaWxzX3BhbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzJlMzk1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9hbGxvY2F0b3JfZGV0YWlsc19wYW5lLmh0bWwKQEAgLTAsMCArMSwxNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3V0aWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lIj4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICAgIDpob3N0IHsKKyAgICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICAgIH0KKworICAgICAgI2xhYmVsIHsKKyAgICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICAgIHBhZGRpbmc6IDhweDsKKworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzhlOGU4ZTsKKyAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHdoaXRlOworCisgICAgICAgIGZvbnQtc2l6ZTogIDE1cHg7CisgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgfQorCisgICAgICAjY29udGVudHMgeworICAgICAgICBmbGV4OiAxIDAgYXV0bzsKKyAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICAgICAgZm9udC1zaXplOiAxMnB4OworICAgICAgfQorCisgICAgICAjY29udGVudHMgLmluZm8tdGV4dCB7CisgICAgICAgIHBhZGRpbmc6IDhweDsKKyAgICAgICAgY29sb3I6ICM2NjY7CisgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPGRpdiBpZD0ibGFiZWwiPkFsbG9jYXRvciBkZXRhaWxzPC9kaXY+CisgICAgPGRpdiBpZD0iY29udGVudHMiPjwvZGl2PgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgKGZ1bmN0aW9uKCkgeworICAgIHZhciBJTVBPUlRBTkNFX1JVTEVTID0gWworICAgICAgeworICAgICAgICBjb25kaXRpb246ICdzaXplJywKKyAgICAgICAgaW1wb3J0YW5jZTogMTAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGNvbmRpdGlvbjogJ3BhZ2Vfc2l6ZScsCisgICAgICAgIGltcG9ydGFuY2U6IDAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGNvbmRpdGlvbjogL3NpemUvLAorICAgICAgICBpbXBvcnRhbmNlOiA1CisgICAgICB9LAorICAgICAgeworICAgICAgICBpbXBvcnRhbmNlOiAwCisgICAgICB9CisgICAgXTsKKworICAgIFBvbHltZXIoeworICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ29uc2lkZXIgc2hhcmluZyBtb3JlIGNvZGUgYmV0d2VlbgorICAgICAgLy8gdHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lIGFuZAorICAgICAgLy8gdHItdWktYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lIChlLmcuIGJ5IGRlZmluaW5nIGEgY29tbW9uCisgICAgICAvLyBiYXNlIGNsYXNzIHRyLWMtbWVtb3J5LWR1bXAtcGFuZSkuCisKKyAgICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfID0gdW5kZWZpbmVkOworICAgICAgfSwKKworICAgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgfSwKKworICAgICAgc2V0IG1lbW9yeUFsbG9jYXRvckR1bXAobWVtb3J5QWxsb2NhdG9yRHVtcCkgeworICAgICAgICB0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfID0gbWVtb3J5QWxsb2NhdG9yRHVtcDsKKyAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICAgIH0sCisKKyAgICAgIGdldCBtZW1vcnlBbGxvY2F0b3JEdW1wKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tZW1vcnlBbGxvY2F0b3JEdW1wXzsKKyAgICAgIH0sCisKKyAgICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuJC5jb250ZW50cy50ZXh0Q29udGVudCA9ICcnOworCisgICAgICAgIGlmICh0aGlzLm1lbW9yeUFsbG9jYXRvckR1bXBfID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB2YXIgaW5mb1RleHQgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgdGhpcy4kLmNvbnRlbnRzLmFwcGVuZENoaWxkKGluZm9UZXh0KTsKKyAgICAgICAgICBpbmZvVGV4dC5jbGFzc0xpc3QuYWRkKCdpbmZvLXRleHQnKTsKKyAgICAgICAgICBpbmZvVGV4dC5pbm5lclRleHQgPSAnTm8gbWVtb3J5IGFsbG9jYXRvciBkdW1wIHNlbGVjdGVkJzsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlUm93c18oKTsKKyAgICAgICAgdmFyIGNvbHVtbnMgPSB0aGlzLmNyZWF0ZUNvbHVtbnNfKHJvd3MpOworCisgICAgICAgIHZhciB0YWJsZSA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICAgJ3RyLXVpLWItdGFibGUnKTsKKyAgICAgICAgdGhpcy4kLmNvbnRlbnRzLmFwcGVuZENoaWxkKHRhYmxlKTsKKyAgICAgICAgdGFibGUuc3VwcG9ydHNTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgICAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgICAgIHRyLnVpLmFuYWx5c2lzLmV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5KHRhYmxlKTsKKyAgICAgIH0sCisKKyAgICAgIGNyZWF0ZVJvd3NfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGNyZWF0ZUFsbG9jYXRvclJvdyA9IGZ1bmN0aW9uKGFsbG9jYXRvckR1bXApIHsKKyAgICAgICAgICB2YXIgY2VsbHMgPSB0ci5iLm1hcEl0ZW1zKGFsbG9jYXRvckR1bXAuYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgZnVuY3Rpb24oYXR0ck5hbWUsIGF0dHJWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci51aS5hbmFseXNpcy5NZW1vcnlDZWxsKGF0dHJWYWx1ZSk7CisgICAgICAgICAgfSk7CisgICAgICAgICAgdmFyIHJvdyA9IHsKKyAgICAgICAgICAgIHRpdGxlOiBhbGxvY2F0b3JEdW1wLm5hbWUsCisgICAgICAgICAgICBjZWxsczogY2VsbHMKKyAgICAgICAgICB9OworICAgICAgICAgIGlmIChhbGxvY2F0b3JEdW1wLmNoaWxkcmVuLmxlbmd0aCA+IDApCisgICAgICAgICAgICByb3cuc3ViUm93cyA9IGFsbG9jYXRvckR1bXAuY2hpbGRyZW4ubWFwKGNyZWF0ZUFsbG9jYXRvclJvdyk7CisgICAgICAgICAgcmV0dXJuIHJvdzsKKyAgICAgICAgfTsKKyAgICAgICAgdmFyIHJvd3MgPSBbY3JlYXRlQWxsb2NhdG9yUm93KHRoaXMubWVtb3J5QWxsb2NhdG9yRHVtcF8pXTsKKyAgICAgICAgcmV0dXJuIHJvd3M7CisgICAgICB9LAorCisgICAgICBjcmVhdGVDb2x1bW5zXzogZnVuY3Rpb24ocm93cykgeworICAgICAgICB2YXIgdGl0bGVDb2x1bW4gPSB7CisgICAgICAgICAgdGl0bGU6ICdBbGxvY2F0b3InLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHJldHVybiByb3cudGl0bGU7CisgICAgICAgICAgfSwKKyAgICAgICAgICB3aWR0aDogJzIwMHB4JywKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKKyAgICAgICAgICAgIHJldHVybiByb3dBLnRpdGxlLmxvY2FsZUNvbXBhcmUocm93Qi50aXRsZSk7CisgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHZhciBhdHRyaWJ1dGVDb2x1bW5zID0gdHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLmZyb21Sb3dzKAorICAgICAgICAgICAgcm93cywgJ2NlbGxzJyk7CisgICAgICAgIHRyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHkoYXR0cmlidXRlQ29sdW1ucyk7CisgICAgICAgIHRyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbi5zb3J0QnlJbXBvcnRhbmNlKAorICAgICAgICAgICAgYXR0cmlidXRlQ29sdW1ucywgSU1QT1JUQU5DRV9SVUxFUyk7CisKKyAgICAgICAgdmFyIGNvbHVtbnMgPSBbdGl0bGVDb2x1bW5dLmNvbmNhdChhdHRyaWJ1dGVDb2x1bW5zKTsKKyAgICAgICAgcmV0dXJuIGNvbHVtbnM7CisgICAgICB9CisgICAgfSk7CisgIH0pKCk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX2FsbG9jYXRvcl9kZXRhaWxzX3BhbmVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9hbGxvY2F0b3JfZGV0YWlsc19wYW5lX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2ViYTNhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9hbGxvY2F0b3JfZGV0YWlsc19wYW5lX3Rlc3QuaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIKKyAgICBocmVmPSIvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfYWxsb2NhdG9yX2RldGFpbHNfcGFuZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbnRhaW5lcl9tZW1vcnlfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tZW1vcnlfYWxsb2NhdG9yX2R1bXAuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgTWVtb3J5QWxsb2NhdG9yRHVtcCA9IHRyLm1vZGVsLk1lbW9yeUFsbG9jYXRvckR1bXA7CisgIHZhciBDb250YWluZXJNZW1vcnlEdW1wID0gdHIubW9kZWwuQ29udGFpbmVyTWVtb3J5RHVtcDsKKyAgdmFyIFNjYWxhckF0dHJpYnV0ZSA9IHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZTsKKworICBmdW5jdGlvbiBjcmVhdGVNZW1vcnlBbGxvY2F0b3JEdW1wKCkgeworICAgIHZhciBtZW1vcnlEdW1wID0gbmV3IENvbnRhaW5lck1lbW9yeUR1bXAoLTEwKTsKKyAgICB2YXIgZHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKG1lbW9yeUR1bXAsICd2OCcpOworICAgIGR1bXAuYWRkQXR0cmlidXRlKCdzaXplJywKKyAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAxMDczNzQxODI0KSAvKiAxIEdpQiAqLyk7CisgICAgZHVtcC5hZGRBdHRyaWJ1dGUoJ2lubmVyX3NpemUnLAorICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDIwOTcxNTIpIC8qIDIgTWlCICovKTsKKyAgICBkdW1wLmFkZEF0dHJpYnV0ZSgnb2JqZWN0c19jb3VudCcsIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ29iamVjdHMnLCAyMDQpKTsKKyAgICByZXR1cm4gZHVtcDsKKyAgfQorCisgIHRlc3QoJ2luc3RhbnRpYXRlX2VtcHR5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICd0ci11aS1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUnKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfbm9uRW1wdHknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbWVtb3J5QWxsb2NhdG9yRHVtcCA9IGNyZWF0ZU1lbW9yeUFsbG9jYXRvckR1bXAoKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAndHItdWktYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lJyk7CisgICAgdmlld0VsLm1lbW9yeUFsbG9jYXRvckR1bXAgPSBtZW1vcnlBbGxvY2F0b3JEdW1wOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworCisgICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgdmlld0VsLCAndHItdWktYi10YWJsZScpOworCisgICAgdmFyIHJvd3MgPSB0YWJsZS50YWJsZVJvd3M7CisgICAgdmFyIGNvbHVtbnMgPSB0YWJsZS50YWJsZUNvbHVtbnM7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHJvd3MsIDEpOworICAgIGFzc2VydC5sZW5ndGhPZihjb2x1bW5zLCA0KTsKKworICAgIHZhciB0aXRsZUNvbHVtbiA9IGNvbHVtbnNbMF07CisgICAgdmFyIG91dGVyU2l6ZUNvbHVtbiA9IGNvbHVtbnNbMV07CisgICAgdmFyIGlubmVyU2l6ZUNvbHVtbiA9IGNvbHVtbnNbMl07CisgICAgdmFyIG9iamVjdHNDb3VudENvbHVtbiA9IGNvbHVtbnNbM107CisKKyAgICAvLyBDaGVjayB0aGUgcm93cyBvZiB0aGUgdGFibGUuCisgICAgYXNzZXJ0LmVxdWFsKHRpdGxlQ29sdW1uLnZhbHVlKHJvd3NbMF0pLCAndjgnKTsKKyAgICBhc3NlcnQuZXF1YWwoaW5uZXJTaXplQ29sdW1uLnZhbHVlKHJvd3NbMF0pLm51bUJ5dGVzLCAyMDk3MTUyKTsKKyAgICBhc3NlcnQuZXF1YWwob2JqZWN0c0NvdW50Q29sdW1uLnZhbHVlKHJvd3NbMF0pLCAyMDQpOworICAgIGFzc2VydC5lcXVhbChvdXRlclNpemVDb2x1bW4udmFsdWUocm93c1swXSkubnVtQnl0ZXMsIDEwNzM3NDE4MjQpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfb3ZlcnZpZXdfcGFuZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxMWQzMjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmUuaHRtbApAQCAtMCwwICsxLDMwOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9sZWdlbmQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiCisgICAgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX2FsbG9jYXRvcl9kZXRhaWxzX3BhbmUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIKKyAgICBocmVmPSIvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3V0aWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3VuaXRzL3NpemVfaW5fYnl0ZXNfc3Bhbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS92aWV3X3NwZWNpZmljX2JydXNoaW5nX3N0YXRlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lIj4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICAgIDpob3N0IHsKKyAgICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICAgIH0KKworICAgICAgI2xhYmVsIHsKKyAgICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICAgIHBhZGRpbmc6IDhweDsKKworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzhlOGU4ZTsKKyAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHdoaXRlOworCisgICAgICAgIGZvbnQtc2l6ZTogIDE1cHg7CisgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgfQorCisgICAgICAjdGFibGUgeworICAgICAgICBmbGV4OiAxIDAgYXV0bzsKKyAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDx0ci11aS1iLXZpZXctc3BlY2lmaWMtYnJ1c2hpbmctc3RhdGUgaWQ9InN0YXRlIgorICAgICAgICB2aWV3LWlkPSJhbmFseXNpcy5tZW1vcnlfZHVtcF9vdmVydmlld19wYW5lIj4KKyAgICA8L3RyLXVpLWItdmlldy1zcGVjaWZpYy1icnVzaGluZy1zdGF0ZT4KKyAgICA8ZGl2IGlkPSJsYWJlbCI+T3ZlcnZpZXc8L2Rpdj4KKyAgICA8dHItdWktYi10YWJsZSBpZD0idGFibGUiPgorICAgIDwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIChmdW5jdGlvbigpIHsKKyAgICB2YXIgSU1QT1JUQU5DRV9SVUxFUyA9IFsKKyAgICAgIHsKKyAgICAgICAgY29uZGl0aW9uOiAndHJhY2luZycsCisgICAgICAgIGltcG9ydGFuY2U6IDAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGltcG9ydGFuY2U6IDEKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIExJTktfU1lNQk9MID0gU3RyaW5nLmZyb21DaGFyQ29kZSg5OTAzKTsKKworICAgIFBvbHltZXIoeworICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ29uc2lkZXIgc2hhcmluZyBtb3JlIGNvZGUgYmV0d2VlbgorICAgICAgLy8gdHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lIGFuZCB0ci1jLW1lbW9yeS1kdW1wLXByb2Nlc3MgcGFuZQorICAgICAgLy8gKGUuZy4gYnkgZGVmaW5pbmcgYSBjb21tb24gYmFzZSBjbGFzcyB0ci1jLW1lbW9yeS1kdW1wLXBhbmUpLgorCisgICAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfID0gdW5kZWZpbmVkOworICAgICAgfSwKKworICAgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLiQudGFibGUuc3VwcG9ydHNTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0aGlzLiQudGFibGUuY2VsbFNlbGVjdGlvbk1vZGUgPSB0cnVlOworICAgICAgICB0aGlzLiQudGFibGUucm93SGlnaGxpZ2h0RW5hYmxlZCA9IHRydWU7CisgICAgICAgIHRoaXMuJC50YWJsZS5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlZCcsCisgICAgICAgICAgICBmdW5jdGlvbih0YWJsZUV2ZW50KSB7CisgICAgICAgICAgdGFibGVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICB2YXIgcGFuZUV2ZW50ID0gbmV3IHRyLmIuRXZlbnQoJ3NlbGVjdGVkLW1lbW9yeS1jZWxsLWNoYW5nZWQnKTsKKyAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQocGFuZUV2ZW50KTsKKyAgICAgICAgICB0aGlzLnN0b3JlU2VsZWN0aW9uXygpOworICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgfSwKKworICAgICAgc2V0IHByb2Nlc3NNZW1vcnlEdW1wcyhwcm9jZXNzTWVtb3J5RHVtcHMpIHsKKyAgICAgICAgdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfID0gcHJvY2Vzc01lbW9yeUR1bXBzOworICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgfSwKKworICAgICAgZ2V0IHByb2Nlc3NNZW1vcnlEdW1wcygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc01lbW9yeUR1bXBzXzsKKyAgICAgIH0sCisKKyAgICAgIGdldCBzZWxlY3RlZE1lbW9yeUNlbGwoKSB7CisgICAgICAgIHZhciBzZWxlY3RlZFRhYmxlUm93ID0gdGhpcy4kLnRhYmxlLnNlbGVjdGVkVGFibGVSb3c7CisgICAgICAgIGlmICghc2VsZWN0ZWRUYWJsZVJvdykKKyAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICAgIHZhciBzZWxlY3RlZENvbHVtbkluZGV4ID0gdGhpcy4kLnRhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXg7CisgICAgICAgIGlmIChzZWxlY3RlZENvbHVtbkluZGV4ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgICB2YXIgc2VsZWN0ZWRDb2x1bW4gPSB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zW3NlbGVjdGVkQ29sdW1uSW5kZXhdOworICAgICAgICB2YXIgc2VsZWN0ZWRNZW1vcnlDZWxsID0gc2VsZWN0ZWRDb2x1bW4uY2VsbChzZWxlY3RlZFRhYmxlUm93KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGVkTWVtb3J5Q2VsbDsKKyAgICAgIH0sCisKKyAgICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBwcm9jZXNzTWVtb3J5RHVtcHMgPSB0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc18gfHwgW107CisKKyAgICAgICAgdmFyIHJvd3MgPSBwcm9jZXNzTWVtb3J5RHVtcHMubWFwKGZ1bmN0aW9uKHByb2Nlc3NNZW1vcnlEdW1wKSB7CisgICAgICAgICAgZnVuY3Rpb24gYnVpbGRWTVJlZ2lvbnNQYW5lKCkgeworICAgICAgICAgICAgdmFyIHBhbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICAgICAgICAgICAndHItdWktYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScpOworICAgICAgICAgICAgcGFuZS52bVJlZ2lvbnMgPSBwcm9jZXNzTWVtb3J5RHVtcC5tb3N0UmVjZW50Vm1SZWdpb25zOworICAgICAgICAgICAgcmV0dXJuIHBhbmU7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gVXNlZCBtZW1vcnkgKHRvdGFsIHJlc2lkZW50LCBQU1MsIC4uLikuCisgICAgICAgICAgdmFyIHVzZWRNZW1vcnlTaXplcyA9IHt9OworICAgICAgICAgIHZhciB0b3RhbFJlc2lkZW50ID0gcHJvY2Vzc01lbW9yeUR1bXAudG90YWxSZXNpZGVudEJ5dGVzOworICAgICAgICAgIGlmICh0b3RhbFJlc2lkZW50ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IHRyLnVpLmFuYWx5c2lzLk1lbW9yeUNlbGwoCisgICAgICAgICAgICAgICAgbmV3IHRyLm1vZGVsLlNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCB0b3RhbFJlc2lkZW50KSk7CisgICAgICAgICAgICBjZWxsLmJ1aWxkRGV0YWlsc1BhbmUgPSBidWlsZFZNUmVnaW9uc1BhbmU7CisgICAgICAgICAgICB1c2VkTWVtb3J5U2l6ZXNbJ1RvdGFsIHJlc2lkZW50J10gPSBjZWxsOworICAgICAgICAgIH0KKworICAgICAgICAgIGZ1bmN0aW9uIGFkZEJ5dGVTdGF0Q2VsbChieXRlU3RhdE5hbWUsIGNvbHVtblRpdGxlKSB7CisgICAgICAgICAgICB2YXIgYnl0ZVN0YXQgPQorICAgICAgICAgICAgICAgIHByb2Nlc3NNZW1vcnlEdW1wLmdldE1vc3RSZWNlbnRUb3RhbFZtUmVnaW9uU3RhdChieXRlU3RhdE5hbWUpOworICAgICAgICAgICAgaWYgKGJ5dGVTdGF0ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgdmFyIGF0dHIgPSBuZXcgdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIGJ5dGVTdGF0KTsKKyAgICAgICAgICAgICAgaWYgKCFwcm9jZXNzTWVtb3J5RHVtcC5oYXNPd25WbVJlZ2lvbnMpIHsKKyAgICAgICAgICAgICAgICBhdHRyLmluZm9zLnB1c2gobmV3IHRyLm1vZGVsLkF0dHJpYnV0ZUluZm8oCisgICAgICAgICAgICAgICAgICAgIHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLkxJTkssCisgICAgICAgICAgICAgICAgICAgICAnT2xkZXIgdmFsdWUgKHByb2Nlc3MgZGlkIG5vdCBkdW1wIG1lbW9yeSBtYXBzKS4nKSk7CisgICAgICAgICAgICAgICAgYXR0ci5pc09sZGVyVmFsdWUgPSB0cnVlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IHRyLnVpLmFuYWx5c2lzLk1lbW9yeUNlbGwoYXR0cik7CisgICAgICAgICAgICAgIGNlbGwuYnVpbGREZXRhaWxzUGFuZSA9IGJ1aWxkVk1SZWdpb25zUGFuZTsKKyAgICAgICAgICAgICAgdXNlZE1lbW9yeVNpemVzW2NvbHVtblRpdGxlXSA9IGNlbGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGFkZEJ5dGVTdGF0Q2VsbCgncHJvcG9ydGlvbmFsUmVzaWRlbnQnLCAnUFNTJyk7CisgICAgICAgICAgYWRkQnl0ZVN0YXRDZWxsKCdwcml2YXRlRGlydHlSZXNpZGVudCcsICdQcml2YXRlIGRpcnR5Jyk7CisgICAgICAgICAgYWRkQnl0ZVN0YXRDZWxsKCdzd2FwcGVkJywgJ1N3YXBwZWQnKTsKKworICAgICAgICAgIC8vIEFsbG9jYXRvciBtZW1vcnkgKHY4LCBvaWxwYW4sIC4uLikuCisgICAgICAgICAgdmFyIGFsbG9jYXRvclNpemVzID0ge307CisgICAgICAgICAgaWYgKHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzLmZvckVhY2goZnVuY3Rpb24oZHVtcCkgeworICAgICAgICAgICAgICB2YXIgYXR0ciA9IGR1bXAuYXR0cmlidXRlc1snc2l6ZSddOworICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyB0ci51aS5hbmFseXNpcy5NZW1vcnlDZWxsKGF0dHIpOworICAgICAgICAgICAgICBjZWxsLmJ1aWxkRGV0YWlsc1BhbmUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2YXIgcGFuZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgICAgICAgICAgICd0ci11aS1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUnKTsKKyAgICAgICAgICAgICAgICBwYW5lLm1lbW9yeUFsbG9jYXRvckR1bXAgPSBkdW1wOworICAgICAgICAgICAgICAgIHJldHVybiBwYW5lOworICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICBhbGxvY2F0b3JTaXplc1tkdW1wLmZ1bGxOYW1lXSA9IGNlbGw7CisgICAgICAgICAgICB9LCB0aGlzKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdGl0bGU6IHByb2Nlc3NNZW1vcnlEdW1wLnByb2Nlc3MudXNlckZyaWVuZGx5TmFtZSwKKyAgICAgICAgICAgIHVzZWRNZW1vcnlTaXplczogdXNlZE1lbW9yeVNpemVzLAorICAgICAgICAgICAgYWxsb2NhdG9yU2l6ZXM6IGFsbG9jYXRvclNpemVzCisgICAgICAgICAgfTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSByb3dzOworCisgICAgICAgIC8vIEFkZCBhICdUb3RhbCcgcm93IGlmIHRoZXJlIGFyZSBhdCBsZWFzdCB0d28gcHJvY2VzcyBtZW1vcnkgZHVtcHMuCisgICAgICAgIGlmIChyb3dzLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICB2YXIgdG90YWxSb3cgPSB7CisgICAgICAgICAgICB0aXRsZTogJ1RvdGFsJywKKyAgICAgICAgICAgIG5vTGVnZW5kOiB0cnVlCisgICAgICAgICAgfTsKKyAgICAgICAgICB0ci51aS5hbmFseXNpcy5hZ2dyZWdhdGVUYWJsZVJvd0NlbGxzKAorICAgICAgICAgICAgICB0b3RhbFJvdywgcm93cywgJ3VzZWRNZW1vcnlTaXplcycpOworICAgICAgICAgIHRyLnVpLmFuYWx5c2lzLmFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHMoCisgICAgICAgICAgICAgIHRvdGFsUm93LCByb3dzLCAnYWxsb2NhdG9yU2l6ZXMnKTsKKyAgICAgICAgICB0aGlzLiQudGFibGUuZm9vdGVyUm93cyA9IFt0b3RhbFJvd107CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNfKHJvd3MpOworCisgICAgICAgIHRoaXMuJC50YWJsZS5yZWJ1aWxkKCk7CisKKyAgICAgICAgdGhpcy5yZXN0b3JlU2VsZWN0aW9uXygpOworICAgICAgfSwKKworICAgICAgdXBkYXRlQ29sdW1uc186IGZ1bmN0aW9uKHJvd3MpIHsKKyAgICAgICAgdmFyIHRpdGxlQ29sdW1uID0geworICAgICAgICAgIHRpdGxlOiAnUHJvY2VzcycsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeworICAgICAgICAgICAgaWYgKHJvdy5ub0xlZ2VuZCkKKyAgICAgICAgICAgICAgcmV0dXJuIHJvdy50aXRsZTsKKyAgICAgICAgICAgIHZhciB0aXRsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1jb2xvci1sZWdlbmQnKTsKKyAgICAgICAgICAgIHRpdGxlRWwubGFiZWwgPSByb3cudGl0bGU7CisgICAgICAgICAgICByZXR1cm4gdGl0bGVFbDsKKyAgICAgICAgICB9LAorICAgICAgICAgIHdpZHRoOiAnMjAwcHgnLAorICAgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgICAgcmV0dXJuIHJvd0EudGl0bGUubG9jYWxlQ29tcGFyZShyb3dCLnRpdGxlKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHN1cHBvcnRzQ2VsbFNlbGVjdGlvbjogZmFsc2UKKyAgICAgICAgfTsKKworICAgICAgICB2YXIgdXNlZE1lbW9yeVNpemVDb2x1bW5zID0gdHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLmZyb21Sb3dzKAorICAgICAgICAgICAgcm93cywgJ3VzZWRNZW1vcnlTaXplcycpOworICAgICAgICB2YXIgYWxsb2NhdG9yU2l6ZUNvbHVtbnMgPSB0ci51aS5hbmFseXNpcy5NZW1vcnlDb2x1bW4uZnJvbVJvd3MoCisgICAgICAgICAgICByb3dzLCAnYWxsb2NhdG9yU2l6ZXMnLCBmdW5jdGlvbihhbGxvY2F0b3JOYW1lKSB7CisgICAgICAgICAgdmFyIHRpdGxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgICAgICAgIHRpdGxlRWwubGFiZWwgPSBhbGxvY2F0b3JOYW1lOworICAgICAgICAgIHJldHVybiB0aXRsZUVsOworICAgICAgICB9KTsKKyAgICAgICAgdHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNvcnRCeUltcG9ydGFuY2UoCisgICAgICAgICAgICBhbGxvY2F0b3JTaXplQ29sdW1ucywgSU1QT1JUQU5DRV9SVUxFUyk7CisKKyAgICAgICAgLy8gR3JleSB0aGUgJ3RyYWNpbmcnIGNvbHVtbiBvdXQgKGlmIHByZXNlbnQpLgorICAgICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBGaW5kIGEgbGVzcyBoYWNreSB3YXkgdG8gZG8gdGhpcy4KKyAgICAgICAgdmFyIHRyYWNpbmdDb2x1bW4gPSB0ci5iLmZpbmRGaXJzdEluQXJyYXkoYWxsb2NhdG9yU2l6ZUNvbHVtbnMsCisgICAgICAgICAgICBmdW5jdGlvbihjb2x1bW4pIHsKKyAgICAgICAgICByZXR1cm4gY29sdW1uLm5hbWUgPT09ICd0cmFjaW5nJzsKKyAgICAgICAgfSk7CisgICAgICAgIGlmICh0cmFjaW5nQ29sdW1uICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB2YXIgdHJhY2luZ0NvbHVtbkNvbG9yID0gdHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKVsKKyAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd0cmFjaW5nX21lbW9yeV9jb2x1bW4nKV07CisgICAgICAgICAgdHJhY2luZ0NvbHVtbi50aXRsZSA9IHRyLnVpLmIuY3JlYXRlU3BhbigKKyAgICAgICAgICAgICAge3RleHRDb250ZW50OiAndHJhY2luZycsIGNvbG9yOiB0cmFjaW5nQ29sdW1uQ29sb3J9KTsKKyAgICAgICAgICB0cmFjaW5nQ29sdW1uLmNvbG9yID0gdHJhY2luZ0NvbHVtbkNvbG9yOworICAgICAgICB9CisKKyAgICAgICAgLy8gTWFrZSB0aGUgdXNlZCBtZW1vcnkgc2l6ZSBjb2x1bW5zIGJsdWUuCisgICAgICAgIC8vIFRPRE8ocGV0cmNlcm1hayk6IEZpbmQgYSBsZXNzIGhhY2t5IHdheSB0byBkbyB0aGlzLgorICAgICAgICB1c2VkTWVtb3J5U2l6ZUNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbihjb2x1bW4pIHsKKyAgICAgICAgICB2YXIgb2xkZXJVc2VkTWVtb3J5Q29sdW1uQ29sb3IgPSB0ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpWworICAgICAgICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ29sZGVyX3VzZWRfbWVtb3J5X2NvbHVtbicpXTsKKyAgICAgICAgICB2YXIgdXNlZE1lbW9yeUNvbHVtbkNvbG9yID0gdHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKVsKKyAgICAgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yUmVzZXJ2ZWROYW1lKCd1c2VkX21lbW9yeV9jb2x1bW4nKV07CisgICAgICAgICAgY29sdW1uLnRpdGxlID0gdHIudWkuYi5jcmVhdGVTcGFuKAorICAgICAgICAgICAgICB7dGV4dENvbnRlbnQ6IGNvbHVtbi50aXRsZSwgY29sb3I6IHVzZWRNZW1vcnlDb2x1bW5Db2xvcn0pOworICAgICAgICAgIGNvbHVtbi5jb2xvciA9IGZ1bmN0aW9uKGF0dHIpIHsKKyAgICAgICAgICAgIHJldHVybiBhdHRyLmlzT2xkZXJWYWx1ZSA/CisgICAgICAgICAgICAgICAgb2xkZXJVc2VkTWVtb3J5Q29sdW1uQ29sb3IgOiB1c2VkTWVtb3J5Q29sdW1uQ29sb3I7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICB2YXIgc2l6ZUNvbHVtbnMgPSB1c2VkTWVtb3J5U2l6ZUNvbHVtbnMuY29uY2F0KGFsbG9jYXRvclNpemVDb2x1bW5zKTsKKyAgICAgICAgdHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShzaXplQ29sdW1ucyk7CisKKyAgICAgICAgdmFyIGNvbHVtbnMgPSBbdGl0bGVDb2x1bW5dLmNvbmNhdChzaXplQ29sdW1ucyk7CisgICAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgICAgfSwKKworICAgICAgc3RvcmVTZWxlY3Rpb25fOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHNlbGVjdGVkUm93VGl0bGU7CisgICAgICAgIHZhciBzZWxlY3RlZFJvdyA9IHRoaXMuJC50YWJsZS5zZWxlY3RlZFRhYmxlUm93OworICAgICAgICBpZiAoc2VsZWN0ZWRSb3cgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBzZWxlY3RlZFJvd1RpdGxlID0gc2VsZWN0ZWRSb3cudGl0bGU7CisKKyAgICAgICAgdmFyIHNlbGVjdGVkQ29sdW1uTmFtZTsKKyAgICAgICAgdmFyIHNlbGVjdGVkQ29sdW1uSW5kZXggPSB0aGlzLiQudGFibGUuc2VsZWN0ZWRDb2x1bW5JbmRleDsKKyAgICAgICAgaWYgKHNlbGVjdGVkQ29sdW1uSW5kZXggIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHZhciBzZWxlY3RlZENvbHVtbiA9IHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnNbc2VsZWN0ZWRDb2x1bW5JbmRleF07CisgICAgICAgICAgc2VsZWN0ZWRDb2x1bW5OYW1lID0gc2VsZWN0ZWRDb2x1bW4ubmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuJC5zdGF0ZS5zZXQoCisgICAgICAgICAgICB7cm93VGl0bGU6IHNlbGVjdGVkUm93VGl0bGUsIGNvbHVtbk5hbWU6IHNlbGVjdGVkQ29sdW1uTmFtZX0pOworICAgICAgfSwKKworICAgICAgcmVzdG9yZVNlbGVjdGlvbl86IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLiQuc3RhdGUuZ2V0KCk7CisgICAgICAgIGlmIChzZXR0aW5ncyA9PT0gdW5kZWZpbmVkIHx8IHNldHRpbmdzLnJvd1RpdGxlID09PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICAgIHNldHRpbmdzLmNvbHVtbk5hbWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHNlbGVjdGVkQ29sdW1uTmFtZSA9IHNldHRpbmdzLmNvbHVtbk5hbWU7CisgICAgICAgIHZhciBzZWxlY3RlZENvbHVtbkluZGV4ID0gdHIuYi5maW5kRmlyc3RJbmRleEluQXJyYXkoCisgICAgICAgICAgICB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zLCBmdW5jdGlvbihjb2x1bW4pIHsKKyAgICAgICAgICByZXR1cm4gY29sdW1uLm5hbWUgPT09IHNlbGVjdGVkQ29sdW1uTmFtZTsKKyAgICAgICAgfSk7CisgICAgICAgIGlmIChzZWxlY3RlZENvbHVtbkluZGV4IDwgMCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHNlbGVjdGVkUm93VGl0bGUgPSBzZXR0aW5ncy5yb3dUaXRsZTsKKyAgICAgICAgdmFyIHNlbGVjdGVkUm93ID0gdHIuYi5maW5kRmlyc3RJbkFycmF5KHRoaXMuJC50YWJsZS50YWJsZVJvd3MsCisgICAgICAgICAgICBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICByZXR1cm4gcm93LnRpdGxlID09PSBzZWxlY3RlZFJvd1RpdGxlOworICAgICAgICB9KTsKKyAgICAgICAgaWYgKHNlbGVjdGVkUm93ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuJC50YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gc2VsZWN0ZWRSb3c7CisgICAgICAgIHRoaXMuJC50YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4ID0gc2VsZWN0ZWRDb2x1bW5JbmRleDsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSkoKTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfb3ZlcnZpZXdfcGFuZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmVfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OWZhYjIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjc3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX292ZXJ2aWV3X3BhbmUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYnJ1c2hpbmdfc3RhdGVfY29udHJvbGxlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXBzKCkgeworICAgIHZhciBnbWQgPSB0ci51aS5hbmFseXNpcy5jcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcCgpOworICAgIHJldHVybiB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMoZ21kLnByb2Nlc3NNZW1vcnlEdW1wcyk7CisgIH0KKworICB0ZXN0KCdpbnN0YW50aWF0ZV96ZXJvRHVtcHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lJyk7CisgICAgdmlld0VsLnByb2Nlc3NNZW1vcnlEdW1wcyA9IFtdOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworCisgICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZyh2aWV3RWwsICd0ci11aS1iLXRhYmxlJyk7CisKKyAgICB2YXIgcm93cyA9IHRhYmxlLnRhYmxlUm93czsKKyAgICB2YXIgZm9vdGVyUm93cyA9IHRhYmxlLmZvb3RlclJvd3M7CisgICAgdmFyIGNvbHVtbnMgPSB0YWJsZS50YWJsZUNvbHVtbnM7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHJvd3MsIDApOworICAgIGFzc2VydC5sZW5ndGhPZihmb290ZXJSb3dzLCAwKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoY29sdW1ucywgMSk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX29uZUR1bXAnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXBzID0gY3JlYXRlUHJvY2Vzc01lbW9yeUR1bXBzKCk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lJyk7CisgICAgdmlld0VsLnByb2Nlc3NNZW1vcnlEdW1wcyA9IHByb2Nlc3NNZW1vcnlEdW1wcy5zbGljZSgxLCAyKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKworICAgIHZhciB0YWJsZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcodmlld0VsLCAndHItdWktYi10YWJsZScpOworCisgICAgdmFyIHJvd3MgPSB0YWJsZS50YWJsZVJvd3M7CisgICAgdmFyIGZvb3RlclJvd3MgPSB0YWJsZS5mb290ZXJSb3dzOworICAgIHZhciBjb2x1bW5zID0gdGFibGUudGFibGVDb2x1bW5zOworICAgIGFzc2VydC5sZW5ndGhPZihyb3dzLCAxKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoZm9vdGVyUm93cywgMCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGNvbHVtbnMsIDgpOworCisgICAgdmFyIHRpdGxlQ29sdW1uID0gY29sdW1uc1swXTsKKyAgICB2YXIgdG90YWxDb2x1bW4gPSBjb2x1bW5zWzFdOworICAgIHZhciBwcm9wb3J0aW9uYWxDb2x1bW4gPSBjb2x1bW5zWzJdOworICAgIHZhciBwcml2YXRlRGlydHlDb2x1bW4gPSBjb2x1bW5zWzNdOworICAgIHZhciBzd2FwcGVkQ29sdW1uID0gY29sdW1uc1s0XTsKKyAgICB2YXIgbWFsbG9jQ29sdW1uID0gY29sdW1uc1s1XTsKKyAgICB2YXIgdjhDb2x1bW4gPSBjb2x1bW5zWzZdOworICAgIHZhciB0cmFjaW5nQ29sdW1uID0gY29sdW1uc1s3XTsKKworICAgIGFzc2VydC5lcXVhbCh0aXRsZUNvbHVtbi52YWx1ZShyb3dzWzBdKS5sYWJlbCwgJ1Byb2Nlc3MgMicpOworICAgIGFzc2VydC5lcXVhbCh0b3RhbENvbHVtbi52YWx1ZShyb3dzWzBdKS5jaGlsZHJlblswXS5udW1CeXRlcywgMTkzOTg2NTYpOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgcHJvcG9ydGlvbmFsQ29sdW1uLnZhbHVlKHJvd3NbMF0pLmNoaWxkcmVuWzBdLm51bUJ5dGVzLCAxNDE1NTc3Nik7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBwcml2YXRlRGlydHlDb2x1bW4udmFsdWUocm93c1swXSkuY2hpbGRyZW5bMF0ubnVtQnl0ZXMsIDApOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgc3dhcHBlZENvbHVtbi52YWx1ZShyb3dzWzBdKS5jaGlsZHJlblswXS5udW1CeXRlcywgMzIpOworICAgIGFzc2VydC5lcXVhbChtYWxsb2NDb2x1bW4udmFsdWUocm93c1swXSkubnVtQnl0ZXMsIDIwOTcxNTIpOworICAgIGFzc2VydC5lcXVhbCh2OENvbHVtbi52YWx1ZShyb3dzWzBdKS5udW1CeXRlcywgNTI0Mjg4MCk7CisgICAgYXNzZXJ0LmVxdWFsKHRyYWNpbmdDb2x1bW4udmFsdWUocm93c1swXSkuY2hpbGRyZW5bMF0ubnVtQnl0ZXMsIDEwNDg1NzYpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV9tdWx0aXBsZUR1bXBzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHByb2Nlc3NNZW1vcnlEdW1wcyA9IGNyZWF0ZVByb2Nlc3NNZW1vcnlEdW1wcygpOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZScpOworICAgIHZpZXdFbC5wcm9jZXNzTWVtb3J5RHVtcHMgPSBwcm9jZXNzTWVtb3J5RHVtcHM7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisKKyAgICB2YXIgdGFibGUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKHZpZXdFbCwgJ3RyLXVpLWItdGFibGUnKTsKKworICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOworICAgIHZhciBmb290ZXJSb3dzID0gdGFibGUuZm9vdGVyUm93czsKKyAgICB2YXIgY29sdW1ucyA9IHRhYmxlLnRhYmxlQ29sdW1uczsKKyAgICBhc3NlcnQubGVuZ3RoT2Yocm93cywgMyk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGZvb3RlclJvd3MsIDEpOworICAgIGFzc2VydC5sZW5ndGhPZihjb2x1bW5zLCA5KTsKKworICAgIHZhciB0aXRsZUNvbHVtbiA9IGNvbHVtbnNbMF07CisgICAgdmFyIHRvdGFsQ29sdW1uID0gY29sdW1uc1sxXTsKKyAgICB2YXIgcHJvcG9ydGlvbmFsQ29sdW1uID0gY29sdW1uc1syXTsKKyAgICB2YXIgcHJpdmF0ZURpcnR5Q29sdW1uID0gY29sdW1uc1szXTsKKyAgICB2YXIgc3dhcHBlZENvbHVtbiA9IGNvbHVtbnNbNF07CisgICAgdmFyIG1hbGxvY0NvbHVtbiA9IGNvbHVtbnNbNV07CisgICAgdmFyIHY4Q29sdW1uID0gY29sdW1uc1s2XTsKKyAgICB2YXIgb2lscGFuQ29sdW1uID0gY29sdW1uc1s3XTsKKyAgICB2YXIgdHJhY2luZ0NvbHVtbiA9IGNvbHVtbnNbOF07CisKKyAgICAvLyBDaGVjayB0aGUgcm93cyBvZiB0aGUgdGFibGUuCisgICAgYXNzZXJ0LmVxdWFsKHRpdGxlQ29sdW1uLnZhbHVlKHJvd3NbMF0pLmxhYmVsLCAnUHJvY2VzcyAxJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRvdGFsQ29sdW1uLnZhbHVlKHJvd3NbMF0pLmNoaWxkcmVuWzBdLm51bUJ5dGVzLCAzMTQ1NzI4MCk7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBwcm9wb3J0aW9uYWxDb2x1bW4udmFsdWUocm93c1swXSkuY2hpbGRyZW5bMF0ubnVtQnl0ZXMsIDEwNDg1NzYwKTsKKyAgICBhc3NlcnQuZXF1YWwoCisgICAgICAgIHByaXZhdGVEaXJ0eUNvbHVtbi52YWx1ZShyb3dzWzBdKS5jaGlsZHJlblswXS5udW1CeXRlcywgODM4ODYwOCk7CisgICAgYXNzZXJ0LmVxdWFsKHN3YXBwZWRDb2x1bW4udmFsdWUocm93c1swXSkuY2hpbGRyZW5bMF0ubnVtQnl0ZXMsIDApOworICAgIGFzc2VydC5lcXVhbChtYWxsb2NDb2x1bW4udmFsdWUocm93c1swXSksICcnKTsKKyAgICBhc3NlcnQuZXF1YWwodjhDb2x1bW4udmFsdWUocm93c1swXSksICcnKTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQ29sdW1uLnZhbHVlKHJvd3NbMF0pLCAnJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRyYWNpbmdDb2x1bW4udmFsdWUocm93c1swXSksICcnKTsKKworICAgIGFzc2VydC5lcXVhbCh0aXRsZUNvbHVtbi52YWx1ZShyb3dzWzFdKS5sYWJlbCwgJ1Byb2Nlc3MgMicpOworICAgIGFzc2VydC5lcXVhbCh0b3RhbENvbHVtbi52YWx1ZShyb3dzWzFdKS5jaGlsZHJlblswXS5udW1CeXRlcywgMTkzOTg2NTYpOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgcHJvcG9ydGlvbmFsQ29sdW1uLnZhbHVlKHJvd3NbMV0pLmNoaWxkcmVuWzBdLm51bUJ5dGVzLCAxNDE1NTc3Nik7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBwcml2YXRlRGlydHlDb2x1bW4udmFsdWUocm93c1sxXSkuY2hpbGRyZW5bMF0ubnVtQnl0ZXMsIDApOworICAgIGFzc2VydC5lcXVhbChzd2FwcGVkQ29sdW1uLnZhbHVlKHJvd3NbMV0pLmNoaWxkcmVuWzBdLm51bUJ5dGVzLCAzMik7CisgICAgYXNzZXJ0LmVxdWFsKG1hbGxvY0NvbHVtbi52YWx1ZShyb3dzWzFdKS5udW1CeXRlcywgMjA5NzE1Mik7CisgICAgYXNzZXJ0LmVxdWFsKHY4Q29sdW1uLnZhbHVlKHJvd3NbMV0pLm51bUJ5dGVzLCA1MjQyODgwKTsKKyAgICBhc3NlcnQuZXF1YWwob2lscGFuQ29sdW1uLnZhbHVlKHJvd3NbMV0pLCAnJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRyYWNpbmdDb2x1bW4udmFsdWUocm93c1sxXSkuY2hpbGRyZW5bMF0ubnVtQnl0ZXMsIDEwNDg1NzYpOworCisgICAgYXNzZXJ0LmVxdWFsKHRpdGxlQ29sdW1uLnZhbHVlKHJvd3NbMl0pLmxhYmVsLCAnUHJvY2VzcyAzJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRvdGFsQ29sdW1uLnZhbHVlKHJvd3NbMl0pLCAnJyk7CisgICAgYXNzZXJ0LmVxdWFsKHByb3BvcnRpb25hbENvbHVtbi52YWx1ZShyb3dzWzJdKSwgJycpOworICAgIGFzc2VydC5lcXVhbChwcml2YXRlRGlydHlDb2x1bW4udmFsdWUocm93c1syXSksICcnKTsKKyAgICBhc3NlcnQuZXF1YWwoc3dhcHBlZENvbHVtbi52YWx1ZShyb3dzWzJdKSwgJycpOworICAgIGFzc2VydC5lcXVhbChtYWxsb2NDb2x1bW4udmFsdWUocm93c1syXSksICcnKTsKKyAgICBhc3NlcnQuZXF1YWwodjhDb2x1bW4udmFsdWUocm93c1syXSkubnVtQnl0ZXMsIDEwNzM3NDE4MjQpOworICAgIGFzc2VydC5lcXVhbChvaWxwYW5Db2x1bW4udmFsdWUocm93c1syXSkubnVtQnl0ZXMsIDIxNDc0ODM2NDgpOworICAgIGFzc2VydC5lcXVhbCh0cmFjaW5nQ29sdW1uLnZhbHVlKHJvd3NbMl0pLCAnJyk7CisKKyAgICAvLyBDaGVjayB0aGUgZm9vdGVyIHJvdy4KKyAgICBhc3NlcnQuZXF1YWwodGl0bGVDb2x1bW4udmFsdWUoZm9vdGVyUm93c1swXSksICdUb3RhbCcpOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgdG90YWxDb2x1bW4udmFsdWUoZm9vdGVyUm93c1swXSkuY2hpbGRyZW5bMF0ubnVtQnl0ZXMsIDUwODU1OTM2KTsKKyAgICBhc3NlcnQuZXF1YWwoCisgICAgICAgIHByb3BvcnRpb25hbENvbHVtbi52YWx1ZShmb290ZXJSb3dzWzBdKS5jaGlsZHJlblswXS5udW1CeXRlcywgMjQ2NDE1MzYpOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgcHJpdmF0ZURpcnR5Q29sdW1uLnZhbHVlKGZvb3RlclJvd3NbMF0pLmNoaWxkcmVuWzBdLm51bUJ5dGVzLCA4Mzg4NjA4KTsKKyAgICBhc3NlcnQuZXF1YWwoc3dhcHBlZENvbHVtbi52YWx1ZShmb290ZXJSb3dzWzBdKS5jaGlsZHJlblswXS5udW1CeXRlcywgMzIpOworICAgIGFzc2VydC5lcXVhbChtYWxsb2NDb2x1bW4udmFsdWUoZm9vdGVyUm93c1swXSkubnVtQnl0ZXMsIDIwOTcxNTIpOworICAgIGFzc2VydC5lcXVhbCh2OENvbHVtbi52YWx1ZShmb290ZXJSb3dzWzBdKS5udW1CeXRlcywgMTA3ODk4NDcwNCk7CisgICAgYXNzZXJ0LmVxdWFsKG9pbHBhbkNvbHVtbi52YWx1ZShmb290ZXJSb3dzWzBdKS5udW1CeXRlcywgMjE0NzQ4MzY0OCk7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICB0cmFjaW5nQ29sdW1uLnZhbHVlKGZvb3RlclJvd3NbMF0pLmNoaWxkcmVuWzBdLm51bUJ5dGVzLCAxMDQ4NTc2KTsKKyAgfSk7CisKKyAgdGVzdCgnc2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHByb2Nlc3NNZW1vcnlEdW1wcyA9IGNyZWF0ZVByb2Nlc3NNZW1vcnlEdW1wcygpOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZScpOworICAgIHZpZXdFbC5wcm9jZXNzTWVtb3J5RHVtcHMgPSBwcm9jZXNzTWVtb3J5RHVtcHM7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisKKyAgICB2YXIgZGlkRmlyZVNlbGVjdGVkRHVtcENoYW5nZWQ7CisgICAgdmlld0VsLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGVkLW1lbW9yeS1jZWxsLWNoYW5nZWQnLAorICAgICAgICBmdW5jdGlvbihlKSB7CisgICAgICBkaWRGaXJlU2VsZWN0ZWREdW1wQ2hhbmdlZCA9IHRydWU7CisgICAgfSk7CisKKyAgICB2YXIgdGFibGUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgICB2aWV3RWwsICd0ci11aS1iLXRhYmxlJyk7CisKKyAgICAvLyBTaW11bGF0ZSBjbGlja2luZyBvbiB0aGUgJ29pbHBhbicgY2VsbCBvZiB0aGUgc2Vjb25kIHByb2Nlc3MuCisgICAgZGlkRmlyZVNlbGVjdGVkRHVtcENoYW5nZWQgPSBmYWxzZTsKKyAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gdGFibGUudGFibGVSb3dzWzJdOworICAgIHRhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXggPSA3OworICAgIGFzc2VydC5pc1RydWUoZGlkRmlyZVNlbGVjdGVkRHVtcENoYW5nZWQpOworICAgIGFzc2VydC5pc0RlZmluZWQodmlld0VsLnNlbGVjdGVkTWVtb3J5Q2VsbCk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZCh2aWV3RWwuc2VsZWN0ZWRNZW1vcnlDZWxsLmJ1aWxkRGV0YWlsc1BhbmUpOworCisgICAgLy8gU2ltdWxhdGUgY2xpY2tpbmcgb24gdGhlICdQcm9wb3J0aW9uYWwgdXNlZCBtZW1vcnkgKG1tYXBzKScgY2VsbCBvZiB0aGUKKyAgICAvLyBzZWNvbmQgcHJvY2Vzcy4KKyAgICBkaWRGaXJlU2VsZWN0ZWREdW1wQ2hhbmdlZCA9IGZhbHNlOworICAgIHRhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXggPSAyOworICAgIGFzc2VydC5pc1RydWUoZGlkRmlyZVNlbGVjdGVkRHVtcENoYW5nZWQpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZCh2aWV3RWwuc2VsZWN0ZWRNZW1vcnlDZWxsKTsKKyAgfSk7CisKKyAgdGVzdCgnbWVtb3J5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHByb2Nlc3NNZW1vcnlEdW1wcyA9IGNyZWF0ZVByb2Nlc3NNZW1vcnlEdW1wcygpOworICAgIHZhciBjb250YWluZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGNvbnRhaW5lckVsLmJydXNoaW5nU3RhdGVDb250cm9sbGVyID0KKyAgICAgICAgbmV3IHRyLmMuQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIodW5kZWZpbmVkKTsKKworICAgIGZ1bmN0aW9uIHNpbXVsYXRlVmlldyhkdW1wcywgZXhwZWN0U2VsZWN0aW9uRXZlbnRGaXJlcywgY2FsbGJhY2spIHsKKyAgICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tZW1vcnktZHVtcC1vdmVydmlldy1wYW5lJyk7CisgICAgICBjb250YWluZXJFbC50ZXh0Q29udGVudCA9ICcnOworICAgICAgY29udGFpbmVyRWwuYXBwZW5kQ2hpbGQodmlldyk7CisKKyAgICAgIHZhciBkaWRGaXJlU2VsZWN0ZWREdW1wQ2hhbmdlZCA9IGZhbHNlOworICAgICAgdmlldy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RlZC1tZW1vcnktY2VsbC1jaGFuZ2VkJywgZnVuY3Rpb24oZSkgeworICAgICAgICBkaWRGaXJlU2VsZWN0ZWREdW1wQ2hhbmdlZCA9IHRydWU7CisgICAgICB9KTsKKworICAgICAgdmlldy5wcm9jZXNzTWVtb3J5RHVtcHMgPSBkdW1wczsKKworICAgICAgYXNzZXJ0LmVxdWFsKGRpZEZpcmVTZWxlY3RlZER1bXBDaGFuZ2VkLCBleHBlY3RTZWxlY3Rpb25FdmVudEZpcmVzKTsKKworICAgICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZyh2aWV3LCAndHItdWktYi10YWJsZScpOworICAgICAgY2FsbGJhY2sodmlldywgdGFibGUpOworICAgIH0KKworICAgIC8vIFNob3cgYSB2aWV3IHdpdGggYWxsIHByb2Nlc3Nlcy4KKyAgICBzaW11bGF0ZVZpZXcocHJvY2Vzc01lbW9yeUR1bXBzLCBmYWxzZSwgZnVuY3Rpb24odmlldywgdGFibGUpIHsKKyAgICAgIC8vIE5vIGNlbGwgc2hvdWxkIGJlIHNlbGVjdGVkLgorICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHZpZXcuc2VsZWN0ZWRNZW1vcnlDZWxsKTsKKyAgICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93KTsKKyAgICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4KTsKKworICAgICAgLy8gU2VsZWN0IHRoZSAnUFNTJyBjb2x1bW4gb2YgdGhlIHNlY29uZCBwcm9jZXNzIChjZWxsIGNvbnRhaW5pbmcKKyAgICAgIC8vICcxNC4wIE1pQicpLgorICAgICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHRhYmxlLnRhYmxlUm93c1sxXTsKKyAgICAgIHRhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXggPSAyOworICAgIH0pOworCisgICAgLy8gU2hvdyBhIHZpZXcgd2l0aCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBwcm9jZXNzZXMgb25seS4KKyAgICBzaW11bGF0ZVZpZXcocHJvY2Vzc01lbW9yeUR1bXBzLnNsaWNlKDEsIDMpLCB0cnVlLCBmdW5jdGlvbih2aWV3LCB0YWJsZSkgeworICAgICAgLy8gVGhlICdQU1MnIGNvbHVtbiBvZiB0aGUgc2Vjb25kIHByb2Nlc3Mgc2hvdWxkIHN0aWxsIGJlIHNlbGVjdGVkLgorICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuc2VsZWN0ZWRNZW1vcnlDZWxsLmF0dHIudmFsdWUsIDE0MTU1Nzc2KTsKKyAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LnRpdGxlLCAnUHJvY2VzcyAyJyk7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoCisgICAgICAgICAgdGFibGUudGFibGVDb2x1bW5zW3RhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXhdLm5hbWUsICdQU1MnKTsKKyAgICB9KTsKKworICAgIC8vIFNob3cgYSB2aWV3IHdpdGggdGhlIHRoaXJkIHByb2Nlc3NlcyBvbmx5LgorICAgIHNpbXVsYXRlVmlldyhwcm9jZXNzTWVtb3J5RHVtcHMuc2xpY2UoMiwgMyksIGZhbHNlLCBmdW5jdGlvbih2aWV3LCB0YWJsZSkgeworICAgICAgLy8gTm8gY2VsbCBzaG91bGQgYmUgc2VsZWN0ZWQgKHRoZSBzZWNvbmQgcHJvY2VzcyBpcyBub3Qgc2hvd24pLgorICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHZpZXcuc2VsZWN0ZWRNZW1vcnlDZWxsKTsKKyAgICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93KTsKKyAgICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4KTsKKyAgICB9KTsKKworICAgIC8vIFNob3cgYSB2aWV3IHdpdGggYWxsIHByb2Nlc3NlcyBhZ2Fpbi4KKyAgICBzaW11bGF0ZVZpZXcocHJvY2Vzc01lbW9yeUR1bXBzLCB0cnVlLCBmdW5jdGlvbih2aWV3LCB0YWJsZSkgeworICAgICAgLy8gVGhlICdQU1MnIGNvbHVtbiBvZiB0aGUgc2Vjb25kIHByb2Nlc3Mgc2hvdWxkIGJlIHNlbGVjdGVkIGFnYWluLgorICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuc2VsZWN0ZWRNZW1vcnlDZWxsLmF0dHIudmFsdWUsIDE0MTU1Nzc2KTsKKyAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LnRpdGxlLCAnUHJvY2VzcyAyJyk7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoCisgICAgICAgICAgdGFibGUudGFibGVDb2x1bW5zW3RhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXhdLm5hbWUsICdQU1MnKTsKKworICAgICAgLy8gU2VsZWN0IHRoZSAndjgnIGNvbHVtbiBvZiB0aGUgZmlyc3QgcHJvY2VzcyAoZW1wdHkgY2VsbCkuCisgICAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gdGFibGUudGFibGVSb3dzWzBdOworICAgICAgdGFibGUuc2VsZWN0ZWRDb2x1bW5JbmRleCA9IDY7CisgICAgfSk7CisKKyAgICAvLyBTaG93IGEgdmlldyB3aXRoIGZpcnN0IHByb2Nlc3Mgb25seS4KKyAgICBzaW11bGF0ZVZpZXcocHJvY2Vzc01lbW9yeUR1bXBzLnNsaWNlKDAsIDEpLCBmYWxzZSwgZnVuY3Rpb24odmlldywgdGFibGUpIHsKKyAgICAgIC8vIE5vdGhpbmcgc2hvdWxkIGJlIHNlbGVjdGVkIChubyBwcm9jZXNzIHdpdGggYSAndjgnIGNvbHVtbiB2YWx1ZSBpcworICAgICAgLy8gc2hvd24pLgorICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHZpZXcuc2VsZWN0ZWRNZW1vcnlDZWxsKTsKKyAgICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93KTsKKyAgICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4KTsKKworICAgICAgLy8gU2VsZWN0ICdUb3RhbCByZXNpZGVudCcgY29sdW1uIG9mIHRoZSBmaXJzdCBwcm9jZXNzIChjZWxsIGNvbnRhaW5pbmcKKyAgICAgIC8vICczMC4wIE1pQicpLgorICAgICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHRhYmxlLnRhYmxlUm93c1swXTsKKyAgICAgIHRhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXggPSAxOworICAgIH0pOworCisgICAgLy8gU2hvdyBhIHZpZXcgd2l0aCBhbGwgcHJvY2Vzc2VzIGFnYWluLgorICAgIHNpbXVsYXRlVmlldyhwcm9jZXNzTWVtb3J5RHVtcHMsIHRydWUsIGZ1bmN0aW9uKHZpZXcsIHRhYmxlKSB7CisgICAgICAvLyBUaGUgJ1RvdGFsIHJlc2lkZW50JyBjb2x1bW4gb2YgdGhlIGZpcnN0IHByb2Nlc3Mgc2hvdWxkIHN0aWxsIGJlCisgICAgICAvLyBzZWxlY3RlZC4KKyAgICAgIGFzc2VydC5lcXVhbCh2aWV3LnNlbGVjdGVkTWVtb3J5Q2VsbC5hdHRyLnZhbHVlLCAzMTQ1NzI4MCk7CisgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdy50aXRsZSwgJ1Byb2Nlc3MgMScpOworICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKAorICAgICAgICAgIHRhYmxlLnRhYmxlQ29sdW1uc1t0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4XS5uYW1lLCAnVG90YWwgcmVzaWRlbnQnKTsKKyAgICB9KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3RfdXRpbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzE1OWIyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwKQEAgLTAsMCArMSwxNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXR0cmlidXRlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IEhlbHBlciBmdW5jdGlvbnMgZm9yIG1lbW9yeSBkdW1wIGFuYWx5c2lzIHN1Yi12aWV3IHRlc3RzLgorICovCit0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEdsb2JhbE1lbW9yeUR1bXAgPSB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wOworICB2YXIgUHJvY2Vzc01lbW9yeUR1bXAgPSB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcDsKKyAgdmFyIE1lbW9yeUFsbG9jYXRvckR1bXAgPSB0ci5tb2RlbC5NZW1vcnlBbGxvY2F0b3JEdW1wOworICB2YXIgVk1SZWdpb24gPSB0ci5tb2RlbC5WTVJlZ2lvbjsKKyAgdmFyIFZNUmVnaW9uQnl0ZVN0YXRzID0gdHIubW9kZWwuVk1SZWdpb25CeXRlU3RhdHM7CisgIHZhciBTY2FsYXJBdHRyaWJ1dGUgPSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGU7CisKKyAgZnVuY3Rpb24gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXAoKSB7CisgICAgdmFyIG1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgcDIgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMik7CisgICAgICB2YXIgcDMgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMyk7CisKKyAgICAgIHZhciBnbWQgPSBuZXcgR2xvYmFsTWVtb3J5RHVtcChtb2RlbCwgNDIpOworICAgICAgbW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHMucHVzaChnbWQpOworCisgICAgICBmdW5jdGlvbiBhZGRQcm9jZXNzTWVtb3J5RHVtcChwcm9jZXNzLCB0aW1lc3RhbXApIHsKKyAgICAgICAgdmFyIHBtZCA9IG5ldyBQcm9jZXNzTWVtb3J5RHVtcChnbWQsIHByb2Nlc3MsIHRpbWVzdGFtcCk7CisgICAgICAgIHByb2Nlc3MubWVtb3J5RHVtcHMucHVzaChwbWQpOworICAgICAgICBnbWQucHJvY2Vzc01lbW9yeUR1bXBzW3Byb2Nlc3MucGlkXSA9IHBtZDsKKyAgICAgICAgcmV0dXJuIHBtZDsKKyAgICAgIH0KKworICAgICAgLy8gT25lIHByb2Nlc3Mgd2l0aCBtb3N0IHJlY2VudCBWTSByZWdpb25zLgorICAgICAgdmFyIG1vc3RSZWNlbnRHbWQgPSBuZXcgR2xvYmFsTWVtb3J5RHVtcChtb2RlbCwgMzApOworICAgICAgdmFyIG1vc3RSZWNlbnRQbWQxID0gbmV3IFByb2Nlc3NNZW1vcnlEdW1wKG1vc3RSZWNlbnRHbWQsIHAxLCAzMSk7CisgICAgICBwMS5tZW1vcnlEdW1wcy5wdXNoKG1vc3RSZWNlbnRQbWQxKTsKKyAgICAgIG1vc3RSZWNlbnRHbWQucHJvY2Vzc01lbW9yeUR1bXBzW3AxLnBpZF0gPSBtb3N0UmVjZW50UG1kMTsKKworICAgICAgdmFyIHBtZDEgPSBhZGRQcm9jZXNzTWVtb3J5RHVtcChwMSwgNDEpOworICAgICAgcG1kMS50b3RhbFJlc2lkZW50Qnl0ZXMgPSAzMTQ1NzI4MCAvKiAzMCBNaUIgKi87CisgICAgICBtb3N0UmVjZW50UG1kMS52bVJlZ2lvbnMgPSBbCisgICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgICAgIHN0YXJ0QWRkcmVzczogMTAyNCwKKyAgICAgICAgICAgIHNpemVJbkJ5dGVzOiAyMDk3MTUyMCwgLyogMjAgTWlCICovCisgICAgICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFELAorICAgICAgICAgICAgbWFwcGVkRmlsZTogJ1tzdGFja10nLAorICAgICAgICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDgzODg2MDgsIC8qIDggTWlCICovCisgICAgICAgICAgICAgICAgc2hhcmVkQ2xlYW5SZXNpZGVudDogMTI1ODI5MTIsIC8qIDEyIE1pQiAqLworICAgICAgICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxMDQ4NTc2MCAvKiAxMCBNaUIgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSkKKyAgICAgIF07CisKKyAgICAgIC8vIE9uZSBwcm9jZXNzIHdpdGggZXZlcnl0aGluZy4KKyAgICAgIHZhciBwbWQyID0gYWRkUHJvY2Vzc01lbW9yeUR1bXAocDIsIDQyKTsKKyAgICAgIHBtZDIudG90YWxSZXNpZGVudEJ5dGVzID0gMjA5NzE1MjAgLyogMjAgTWlCICovOworICAgICAgcG1kMi52bVJlZ2lvbnMgPSBbCisgICAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgICBzdGFydEFkZHJlc3M6IDI1NiwKKyAgICAgICAgICBzaXplSW5CeXRlczogNjAwMCwKKyAgICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKKyAgICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFLAorICAgICAgICAgIG1hcHBlZEZpbGU6ICdbc3RhY2s6MjAzMTBdJywKKyAgICAgICAgICBieXRlU3RhdHM6IHsKKyAgICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxNTcyODY0MCwgLyogMTUgTWlCICovCisgICAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogMTU3Mjg2NCwgLyogMS41IE1pQiAqLworICAgICAgICAgICAgc3dhcHBlZDogMzIgLyogMzIgQiAqLworICAgICAgICAgIH0KKyAgICAgICAgfSkKKyAgICAgIF07CisgICAgICBwbWQyLm1lbW9yeUFsbG9jYXRvckR1bXBzID0gKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgbWFsbG9jRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZDIsICdtYWxsb2MnKTsKKyAgICAgICAgbWFsbG9jRHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLAorICAgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAzMTQ1NzI4KSAvKiAzIE1pQiAqLyk7CisKKyAgICAgICAgdmFyIHY4RHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZDIsICd2OCcpOworICAgICAgICB2OER1bXAuYWRkQXR0cmlidXRlKCdzaXplJywKKyAgICAgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgNTI0Mjg4MCkgLyogNSBNaUIgKi8pOworCisgICAgICAgIHZhciB0cmFjaW5nRHVtcCA9IG5ldyBNZW1vcnlBbGxvY2F0b3JEdW1wKHBtZDIsICd0cmFjaW5nJyk7CisgICAgICAgIHRyYWNpbmdEdW1wLmFkZEF0dHJpYnV0ZSgnc2l6ZScsCisgICAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDEwNDg1NzYpIC8qIDEgTWlCICovKTsKKyAgICAgICAgdHJhY2luZ0R1bXAuYWRkQXR0cmlidXRlKCdyZXNpZGVudF9zaXplJywKKyAgICAgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTU3Mjg2NCkgLyogMS41IE1pQiAqLyk7CisKKyAgICAgICAgcmV0dXJuIFttYWxsb2NEdW1wLCB2OER1bXAsIHRyYWNpbmdEdW1wXTsKKyAgICAgIH0pKCk7CisKKyAgICAgIC8vIE9uZSBwcm9jZXNzIHdpdGggYWxsb2NhdG9yIGR1bXBzLgorICAgICAgdmFyIHBtZDMgPSBhZGRQcm9jZXNzTWVtb3J5RHVtcChwMywgNDMpOworICAgICAgcG1kMy5tZW1vcnlBbGxvY2F0b3JEdW1wcyA9IChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG9pbHBhbkR1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChwbWQzLCAnb2lscGFuJyk7CisgICAgICAgIG9pbHBhbkR1bXAuYWRkQXR0cmlidXRlKCdzaXplJywKKyAgICAgICAgICAgIG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMjE0NzQ4MzY0OCkgLyogMiBHaUIgKi8pOworICAgICAgICBvaWxwYW5EdW1wLmFkZEF0dHJpYnV0ZSgnaW5uZXJfc2l6ZScsCisgICAgICAgICAgICBuZXcgU2NhbGFyQXR0cmlidXRlKCdieXRlcycsIDUyNDI4ODApIC8qIDUgTWlCICovKTsKKyAgICAgICAgb2lscGFuRHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLAorICAgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnb2JqZWN0cycsIDIwMTUpKTsKKworICAgICAgICB2YXIgdjhEdW1wID0gbmV3IE1lbW9yeUFsbG9jYXRvckR1bXAocG1kMywgJ3Y4Jyk7CisgICAgICAgIHY4RHVtcC5hZGRBdHRyaWJ1dGUoJ3NpemUnLAorICAgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAxMDczNzQxODI0KSAvKiAxIEdpQiAqLyk7CisgICAgICAgIHY4RHVtcC5hZGRBdHRyaWJ1dGUoJ2lubmVyX3NpemUnLAorICAgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCAyMDk3MTUyKSAvKiAyIE1pQiAqLyk7CisgICAgICAgIHY4RHVtcC5hZGRBdHRyaWJ1dGUoJ29iamVjdHNfY291bnQnLAorICAgICAgICAgICAgbmV3IFNjYWxhckF0dHJpYnV0ZSgnb2JqZWN0cycsIDIwNCkpOworCisgICAgICAgIHJldHVybiBbb2lscGFuRHVtcCwgdjhEdW1wXTsKKyAgICAgIH0pKCk7CisgICAgfSk7CisKKyAgICByZXR1cm4gbW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHNbMF07CisgIH0KKworICBmdW5jdGlvbiBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzKCkgeworICAgIHZhciBnbG9iYWxNZW1vcnlEdW1wID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXAoKTsKKyAgICByZXR1cm4gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcCgpIHsKKyAgICB2YXIgZ2xvYmFsTWVtb3J5RHVtcCA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wKCk7CisgICAgcmV0dXJuIGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzWzJdOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcDogY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXAsCisgICAgY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wczogY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wcywKKyAgICBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXA6IGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY5MDczNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbC5odG1sCkBAIC0wLDAgKzEsNDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2F0dHJpYnV0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgSGVscGVyIGNvZGUgZm9yIG1lbW9yeSBkdW1wIHN1Yi12aWV3cy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLnVpLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIEEgdGFibGUgYnVpbGRlciBjb2x1bW4gZm9yIGRpc3BsYXlpbmcgbWVtb3J5IGR1bXAgZGF0YS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBNZW1vcnlDb2x1bW4obmFtZSwgdGl0bGUsIHVuaXRzLCBjZWxsR2V0dGVyKSB7CisgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy51bml0cyA9IHVuaXRzOworICAgIHRoaXMuY2VsbCA9IGNlbGxHZXR0ZXI7CisKKyAgICAvLyBDb2xvciBvZiB0aGUgdmFsdWVzIHJldHVybmVkIGJ5IHRoaXMgY29sdW1uLiBUaGlzIGNhbiBiZSBlaXRoZXIKKyAgICAvLyAoMSkgdW5kZWZpbmVkIChubyBzcGVjaWZpYyBjb2xvciBpcyBzZXQpLCAoMikgYSBjb2xvciBzdHJpbmcgKGUuZy4KKyAgICAvLyAnYmx1ZScpLCBvciAoMykgYSBmdW5jdGlvbiBtYXBwaW5nIGRlZmluZWQgYXR0cmlidXRlcyB0byBjb2xvciBzdHJpbmdzCisgICAgLy8gKHRoZSByZXR1cm4gdmFsdWUgY2FuIGJlIHVuZGVmaW5lZCBhZ2FpbikuCisgICAgdGhpcy5jb2xvciA9IHVuZGVmaW5lZDsKKyAgfQorCisgIE1lbW9yeUNvbHVtbi5mcm9tUm93cyA9IGZ1bmN0aW9uKHJvd3MsIGNlbGxLZXksIG9wdF90aXRsZUJ1aWxkZXIpIHsKKyAgICB2YXIgY29sdW1uVHJhaXRzID0ge307CisKKyAgICBmdW5jdGlvbiBnYXRoZXJUcmFpdHMocm93KSB7CisgICAgICBpZiAocm93ID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHZhciBhdHRyQ2VsbHMgPSByb3dbY2VsbEtleV07CisgICAgICB0ci5iLml0ZXJJdGVtcyhhdHRyQ2VsbHMsIGZ1bmN0aW9uKGF0dHJOYW1lLCBhdHRyQ2VsbCkgeworICAgICAgICBpZiAoYXR0ckNlbGwgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciBhdHRyVmFsdWUgPSBhdHRyQ2VsbC5hdHRyOworICAgICAgICBpZiAoYXR0clZhbHVlID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgZXhpc3RpbmdUcmFpdHMgPSBjb2x1bW5UcmFpdHNbYXR0ck5hbWVdOworICAgICAgICBpZiAoZXhpc3RpbmdUcmFpdHMgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGNvbHVtblRyYWl0c1thdHRyTmFtZV0gPSB7CisgICAgICAgICAgICBjb25zdHJ1Y3RvcjogYXR0clZhbHVlLmNvbnN0cnVjdG9yLAorICAgICAgICAgICAgdW5pdHM6IGF0dHJWYWx1ZS51bml0cworICAgICAgICAgIH07CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChleGlzdGluZ1RyYWl0cy5jb25zdHJ1Y3RvciAhPT0gYXR0clZhbHVlLmNvbnN0cnVjdG9yIHx8CisgICAgICAgICAgICBleGlzdGluZ1RyYWl0cy51bml0cyAhPT0gYXR0clZhbHVlLnVuaXRzKSB7CisgICAgICAgICAgZXhpc3RpbmdUcmFpdHMuY29uc3RydWN0b3IgPSB0ci5tb2RlbC5Vbmtub3duQXR0cmlidXRlOworICAgICAgICAgIGV4aXN0aW5nVHJhaXRzLnVuaXRzID0gdW5kZWZpbmVkOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIGlmIChyb3cuc3ViUm93cyAhPT0gdW5kZWZpbmVkKQorICAgICAgICByb3cuc3ViUm93cy5mb3JFYWNoKGdhdGhlclRyYWl0cyk7CisgICAgfTsKKyAgICByb3dzLmZvckVhY2goZ2F0aGVyVHJhaXRzKTsKKworICAgIHZhciB0aXRsZUJ1aWxkZXIgPSBvcHRfdGl0bGVCdWlsZGVyIHx8IHRyLmIuaWRlbnRpdHk7CisKKyAgICB2YXIgY29sdW1ucyA9IFtdOworICAgIHRyLmIuaXRlckl0ZW1zKGNvbHVtblRyYWl0cywgZnVuY3Rpb24oY29sdW1uTmFtZSwgY29sdW1uVHJhaXRzKSB7CisgICAgICB2YXIgY2VsbEdldHRlciA9IGZpZWxkR2V0dGVyKGNlbGxLZXksIGNvbHVtbk5hbWUpOworICAgICAgdmFyIHRpdGxlID0gdGl0bGVCdWlsZGVyKGNvbHVtbk5hbWUpOworICAgICAgY29sdW1ucy5wdXNoKE1lbW9yeUNvbHVtbi5mcm9tQXR0cmlidXRlVHJhaXRzKAorICAgICAgICAgIGNvbHVtbk5hbWUsIHRpdGxlLCBjb2x1bW5UcmFpdHMsIGNlbGxHZXR0ZXIpKTsKKyAgICB9KTsKKworICAgIHJldHVybiBjb2x1bW5zOworICB9OworCisgIE1lbW9yeUNvbHVtbi5mcm9tQXR0cmlidXRlVHJhaXRzID0gZnVuY3Rpb24obmFtZSwgdGl0bGUsIHRyYWl0cywgY2VsbEdldHRlcikgeworICAgIHZhciBjb25zdHJ1Y3RvcjsKKyAgICBpZiAodHJhaXRzLmNvbnN0cnVjdG9yID09PSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUpCisgICAgICBjb25zdHJ1Y3RvciA9IFNjYWxhck1lbW9yeUNvbHVtbjsKKyAgICBlbHNlCisgICAgICBjb25zdHJ1Y3RvciA9IE1lbW9yeUNvbHVtbjsKKyAgICByZXR1cm4gbmV3IGNvbnN0cnVjdG9yKG5hbWUsIHRpdGxlLCB0cmFpdHMudW5pdHMsIGNlbGxHZXR0ZXIpOworICB9OworCisgIE1lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHkgPSBmdW5jdGlvbihjb2x1bW5zKSB7CisgICAgdmFyIGNvbHVtbldpZHRoID0gKDEwMCAvIGNvbHVtbnMubGVuZ3RoKS50b0ZpeGVkKDMpICsgJyUnOworICAgIGNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbihjb2x1bW4pIHsKKyAgICAgIGNvbHVtbi53aWR0aCA9IGNvbHVtbldpZHRoOworICAgIH0pOworICB9OworCisgIC8qKgorICAgKiBTb3J0IGEgbGlzdCBvZiBtZW1vcnkgY29sdW1ucyBhY2NvcmRpbmcgdG8gYSBsaXN0IG9mIGltcG9ydGFuY2UgcnVsZXMuCisgICAqIFRoaXMgZnVuY3Rpb24gbW9kaWZpZXMgdGhlIG9yaWdpbmFsIGFycmF5IGFuZCBkb2Vzbid0IHJldHVybiBhbnl0aGluZy4KKyAgICoKKyAgICogVGhlIGxpc3Qgb2YgaW1wb3J0YW5jZSBydWxlcyBjb250YWlucyBvYmplY3RzIHdpdGggbWFuZGF0b3J5ICdpbXBvcnRhbmNlJworICAgKiBudW1lcmljIGZpZWxkcyBhbmQgb3B0aW9uYWwgJ2NvbmRpdGlvbicgc3RyaW5nIG9yIHJlZ2V4IGZpZWxkcy4gRXhhbXBsZToKKyAgICoKKyAgICogICB2YXIgaW1wb3J0YW5jZVJ1bGVzID0gWworICAgKiAgICAgeworICAgKiAgICAgICBjb25kaXRpb246ICdwYWdlX3NpemUnLAorICAgKiAgICAgICBpbXBvcnRhbmNlOiA4CisgICAqICAgICB9LAorICAgKiAgICAgeworICAgKiAgICAgICBjb25kaXRpb246IC9zaXplLywKKyAgICogICAgICAgaW1wb3J0YW5jZTogMTAKKyAgICogICAgIH0sCisgICAqICAgICB7CisgICAqICAgICAgIC8vIE5vIGNvbmRpdGlvbjogbWF0Y2hlcyBhbGwgY29sdW1ucy4KKyAgICogICAgICAgaW1wb3J0YW5jZTogOQorICAgKiAgICAgfQorICAgKiAgIF07CisgICAqCisgICAqIFRoZSBpbXBvcnRhbmNlIG9mIGEgY29sdW1uIGlzIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IHJ1bGUgd2hvc2UgY29uZGl0aW9uCisgICAqIG1hdGNoZXMgdGhlIGNvbHVtbidzIG5hbWUsIHNvIHRoZSBydWxlcyBhYm92ZSB3aWxsIHNvcnQgYSBnZW5lcmljIGxpc3Qgb2YKKyAgICogY29sdW1ucyBpbnRvIHRocmVlIGdyb3VwcyBhcyBmb2xsb3dzOgorICAgKgorICAgKiAgICAgIFttb3N0IGltcG9ydGFudCwgbGVmdCBpbiB0aGUgcmVzdWx0aW5nIHRhYmxlXQorICAgKiAgIDEuIGNvbHVtbnMgd2hvc2UgbmFtZSBjb250YWlucyAnc2l6ZScgZXhjbHVkaW5nICdwYWdlX3NpemUnIGJlY2F1c2UgaXQKKyAgICogICAgICB3b3VsZCBoYXZlIGFscmVhZHkgbWF0Y2hlZCB0aGUgZmlyc3QgcnVsZSAoTm90ZSB0aGF0IHN0cmluZyBtYXRjaGVzCisgICAqICAgICAgbXVzdCBiZSBleGFjdCBzbyBhIGNvbHVtbiBuYW1lZCAncGFnZV9zaXplMicgd291bGQgbm90IG1hdGNoIHRoZQorICAgKiAgICAgIGZpcnN0IHJ1bGUgYW5kIHdvdWxkIHRoZXJlZm9yZSBiZWxvbmcgdG8gdGhpcyBncm91cCkuCisgICAqICAgMi4gY29sdW1ucyB3aG9zZSBuYW1lIGRvZXMgbm90IGNvbnRhaW4gJ3NpemUnLgorICAgKiAgIDMuIGNvbHVtbnMgd2hvc2UgbmFtZSBpcyAncGFnZV9zaXplJy4KKyAgICogICAgICBbbGVhc3QgaW1wb3J0YW50LCByaWdodCBpbiB0aGUgcmVzdWx0aW5nIHRhYmxlXQorICAgKgorICAgKiB3aGVyZSB0aGUgb3JkZXIgd2l0aGluIGVhY2ggZ3JvdXAgaXMgdW5tb2RpZmllZCAoc3RhYmxlIHNvcnQpLgorICAgKi8KKyAgTWVtb3J5Q29sdW1uLnNvcnRCeUltcG9ydGFuY2UgPSBmdW5jdGlvbihjb2x1bW5zLCBpbXBvcnRhbmNlUnVsZXMpIHsKKyAgICB2YXIgcG9zaXRpb25zID0gY29sdW1ucy5tYXAoZnVuY3Rpb24oY29sdW1uLCBzcmNJbmRleCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgaW1wb3J0YW5jZTogY29sdW1uLmdldEltcG9ydGFuY2UoaW1wb3J0YW5jZVJ1bGVzKSwKKyAgICAgICAgc3JjSW5kZXg6IHNyY0luZGV4LAorICAgICAgICBjb2x1bW46IGNvbHVtbgorICAgICAgfTsKKyAgICB9KTsKKworICAgIHBvc2l0aW9ucy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgIC8vIEtlZXAgZXhpc3Rpbmcgb3JkZXIgb2YgY29sdW1ucyBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgaW1wb3J0YW5jZQorICAgICAgLy8gKHN0YWJsZSBzb3J0KS4KKyAgICAgIGlmIChhLmltcG9ydGFuY2UgPT09IGIuaW1wb3J0YW5jZSkKKyAgICAgICAgcmV0dXJuIGEuc3JjSW5kZXggLSBiLnNyY0luZGV4OworCisgICAgICAvLyBTb3J0IGNvbHVtbnMgaW4gZGVzY2VuZGluZyBvcmRlciBvZiBpbXBvcnRhbmNlLgorICAgICAgcmV0dXJuIGIuaW1wb3J0YW5jZSAtIGEuaW1wb3J0YW5jZTsKKyAgICB9KTsKKworICAgIHBvc2l0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHBvc2l0aW9uLCBkc3RJbmRleCkgeworICAgICAgY29sdW1uc1tkc3RJbmRleF0gPSBwb3NpdGlvbi5jb2x1bW47CisgICAgfSk7CisgIH07CisKKyAgTWVtb3J5Q29sdW1uLmljb25Gcm9tQXR0cmlidXRlSW5mb1R5cGUgPSBmdW5jdGlvbih0eXBlKSB7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICBjYXNlIHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLldBUk5JTkc6CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgc3ltYm9sOiBTdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpLCAgLy8gRXhjbGFtYXRpb24gbWFyayBpbiBhIHRyaWFuZ2xlLgorICAgICAgICAgIGNvbG9yOiAncmVkJworICAgICAgICB9OworICAgICAgY2FzZSB0ci5tb2RlbC5BdHRyaWJ1dGVJbmZvVHlwZS5MSU5LOgorICAgICAgICByZXR1cm4geworICAgICAgICAgIHN5bWJvbDogU3RyaW5nLmZyb21DaGFyQ29kZSg5OTAzKSAgLy8gTGluayBzeW1ib2wuCisgICAgICAgICAgLyogRG9uJ3QgbW9kaWZ5IHRoZSBjb2xvci4gKi8KKyAgICAgICAgfTsKKyAgICAgIGNhc2UgdHIubW9kZWwuQXR0cmlidXRlSW5mb1R5cGUuTUVNT1JZX09XTkVSOgorICAgICAgICByZXR1cm4geworICAgICAgICAgIHN5bWJvbDogU3RyaW5nLmZyb21DaGFyQ29kZSg4NzAyKSwgIC8vIFJpZ2h0IGFycm93LgorICAgICAgICAgIGNvbG9yOiAnZ3JlZW4nCisgICAgICAgIH07CisgICAgICBjYXNlIHRyLm1vZGVsLkF0dHJpYnV0ZUluZm9UeXBlLk1FTU9SWV9PV05FRDoKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICBzeW1ib2w6IFN0cmluZy5mcm9tQ2hhckNvZGUoODcwMSksICAvLyBMZWZ0IGFycm93LgorICAgICAgICAgIGNvbG9yOiAnZ3JlZW4nCisgICAgICAgIH07CisgICAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4geworICAgICAgICAgIHN5bWJvbDogU3RyaW5nLmZyb21DaGFyQ29kZSg5NDMyKSwgIC8vIENpcmNsZWQgc21hbGwgbGV0dGVyICdpJy4KKyAgICAgICAgICBjb2xvcjogJ2JsdWUnCisgICAgICAgIH07CisgICAgfQorICAgIHRocm93IG5ldyBFcnJvcignVW5yZWFjaGFibGUnKTsKKyAgfTsKKworICBNZW1vcnlDb2x1bW4ucHJvdG90eXBlID0geworICAgIGF0dHI6IGZ1bmN0aW9uKHJvdykgeworICAgICAgdmFyIGNlbGwgPSB0aGlzLmNlbGwocm93KTsKKyAgICAgIGlmIChjZWxsID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gY2VsbC5hdHRyOworICAgIH0sCisKKyAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICB2YXIgYXR0ciA9IHRoaXMuYXR0cihyb3cpOworICAgICAgaWYgKGF0dHIgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuICcnOworICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RGVmaW5lZEF0dHJpYnV0ZShhdHRyKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogRm9ybWF0IGEgZGVmaW5lZCBhdHRyaWJ1dGUgKGJvdGggdmFsdWVzIGFuZCBpbmZvcykuIFRoaXMgbWV0aG9kIGlzIG5vdAorICAgICAqIGludGVuZGVkIHRvIGJlIG92ZXJyaWRlbi4KKyAgICAgKi8KKyAgICBmb3JtYXREZWZpbmVkQXR0cmlidXRlOiBmdW5jdGlvbihhdHRyKSB7CisgICAgICB2YXIgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdERlZmluZWRBdHRyaWJ1dGVWYWx1ZShhdHRyKTsKKworICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBjb2xvciBvZiB0aGUgcmVzdWx0aW5nIGVsZW1lbnQuCisgICAgICB2YXIgY29sb3I7CisgICAgICBpZiAodHlwZW9mIHRoaXMuY29sb3IgPT09ICdmdW5jdGlvbicpCisgICAgICAgIGNvbG9yID0gdGhpcy5jb2xvcihhdHRyKTsKKyAgICAgIGVsc2UKKyAgICAgICAgY29sb3IgPSB0aGlzLmNvbG9yOworCisgICAgICAvLyBJZiBubyBjb2xvciBpcyBzcGVjaWZpZWQgYW5kIHRoZXJlIGFyZSBubyBpbmZvcywgdGhlcmUgaXMgbm8gbmVlZAorICAgICAgLy8gdG8gd3JhcCB0aGUgdmFsdWUgaW4gYSBzcGFuIGVsZW1lbnQuCisgICAgICBpZiAoY29sb3IgPT09IHVuZGVmaW5lZCAmJiBhdHRyLmluZm9zLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFZhbHVlOworCisgICAgICB2YXIgYXR0ckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgYXR0ckVsLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CisgICAgICBhdHRyRWwuc3R5bGUuYWxpZ25JdGVtcyA9ICdjZW50ZXInOworICAgICAgYXR0ckVsLmFwcGVuZENoaWxkKHRyLnVpLmIuYXNIVE1MT3JUZXh0Tm9kZShmb3JtYXR0ZWRWYWx1ZSkpOworCisgICAgICAvLyBBZGQgaW5mbyBpY29ucyB3aXRoIHRvb2x0aXBzLgorICAgICAgYXR0ci5pbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKGluZm8pIHsKKyAgICAgICAgdmFyIGluZm9FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAgaW5mb0VsLnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzRweCc7CisgICAgICAgIGluZm9FbC5zdHlsZS5jdXJzb3IgPSAnaGVscCc7CisgICAgICAgIGluZm9FbC5zdHlsZS5mb250V2VpZ2h0ID0gJ2JvbGQnOworICAgICAgICB2YXIgaWNvbiA9IE1lbW9yeUNvbHVtbi5pY29uRnJvbUF0dHJpYnV0ZUluZm9UeXBlKGluZm8udHlwZSk7CisgICAgICAgIGluZm9FbC50ZXh0Q29udGVudCA9IGljb24uc3ltYm9sOworICAgICAgICBpZiAoaWNvbi5jb2xvciAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgIGluZm9FbC5zdHlsZS5jb2xvciA9IGljb24uY29sb3I7CisgICAgICAgIGluZm9FbC50aXRsZSA9IGluZm8ubWVzc2FnZTsKKyAgICAgICAgYXR0ckVsLmFwcGVuZENoaWxkKGluZm9FbCk7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gU2V0IHRoZSBjb2xvciBvZiB0aGUgZWxlbWVudC4KKyAgICAgIGlmIChjb2xvciAhPT0gdW5kZWZpbmVkKQorICAgICAgICBhdHRyRWwuc3R5bGUuY29sb3IgPSBjb2xvcjsKKworICAgICAgcmV0dXJuIGF0dHJFbDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogRm9ybWF0IHRoZSB2YWx1ZSBvZiBhIGRlZmluZWQgYXR0cmlidXRlLiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCB0byBiZQorICAgICAqIG92ZXJyaWRlbiBieSBhdHRyaWJ1dGUgdHlwZS91bml0IHNwZWNpZmljIGNvbHVtbnMgKGUuZy4gc2hvdyAnMS4wIEtpQicKKyAgICAgKiBpbnN0ZWFkIG9mICcxMDI0JyBmb3IgU2NhbGFyQXR0cmlidXRlKHMpIHJlcHJlc2VudGluZyBieXRlcykuCisgICAgICovCisgICAgZm9ybWF0RGVmaW5lZEF0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbihhdHRyKSB7CisgICAgICByZXR1cm4gU3RyaW5nKGF0dHIudmFsdWUpOworICAgIH0sCisKKyAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKKyAgICAgIHZhciBhdHRyQSA9IHRoaXMuYXR0cihyb3dBKTsKKyAgICAgIHZhciBhdHRyQiA9IHRoaXMuYXR0cihyb3dCKTsKKyAgICAgIGlmIChhdHRyQSA9PT0gdW5kZWZpbmVkICYmIGF0dHJCID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiAwOworICAgICAgaWYgKGF0dHJBID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiAtMTsKKyAgICAgIGlmIChhdHRyQiA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gMTsKKyAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVEZWZpbmVkQXR0cmlidXRlcyhhdHRyQSwgYXR0ckIpOworICAgIH0sCisKKyAgICBjb21wYXJlRGVmaW5lZEF0dHJpYnV0ZXM6IGZ1bmN0aW9uKGF0dHJBLCBhdHRyQikgeworICAgICAgdmFyIHN0ckEgPSBTdHJpbmcoYXR0ckEudmFsdWUpOworICAgICAgdmFyIHN0ckIgPSBTdHJpbmcoYXR0ckIudmFsdWUpOworICAgICAgcmV0dXJuIHN0ckEubG9jYWxlQ29tcGFyZShzdHJCKTsKKyAgICB9LAorCisgICAgZ2V0SW1wb3J0YW5jZTogZnVuY3Rpb24oaW1wb3J0YW5jZVJ1bGVzKSB7CisgICAgICBpZiAoaW1wb3J0YW5jZVJ1bGVzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IG1hdGNoaW5nIHJ1bGUuCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltcG9ydGFuY2VSdWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgaW1wb3J0YW5jZVJ1bGUgPSBpbXBvcnRhbmNlUnVsZXNbaV07CisgICAgICAgIGlmICh0aGlzLm1hdGNoZXNOYW1lQ29uZGl0aW9uKGltcG9ydGFuY2VSdWxlLmNvbmRpdGlvbikpCisgICAgICAgICAgcmV0dXJuIGltcG9ydGFuY2VSdWxlLmltcG9ydGFuY2U7CisgICAgICB9CisKKyAgICAgIC8vIE5vIG1hdGNoaW5nIHJ1bGUuIFJldHVybiBsb3dlciBpbXBvcnRhbmNlIHRoYW4gYWxsIHJ1bGVzLgorICAgICAgdmFyIG1pbkltcG9ydGFuY2UgPSBpbXBvcnRhbmNlUnVsZXNbMF0uaW1wb3J0YW5jZTsKKyAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgaW1wb3J0YW5jZVJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIG1pbkltcG9ydGFuY2UgPSBNYXRoLm1pbihtaW5JbXBvcnRhbmNlLCBpbXBvcnRhbmNlUnVsZXNbaV0uaW1wb3J0YW5jZSk7CisgICAgICB9CisgICAgICByZXR1cm4gbWluSW1wb3J0YW5jZSAtIDE7CisgICAgfSwKKworICAgIG1hdGNoZXNOYW1lQ29uZGl0aW9uOiBmdW5jdGlvbihjb25kaXRpb24pIHsKKyAgICAgIC8vIFJ1bGVzIHdpdGhvdXQgY29uZGl0aW9ucyBtYXRjaCBhbGwgY29sdW1ucy4KKyAgICAgIGlmIChjb25kaXRpb24gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgIC8vIFN0cmluZyBjb25kaXRpb25zIG11c3QgbWF0Y2ggdGhlIGNvbHVtbiBuYW1lIGV4YWN0bHkuCisgICAgICBpZiAodHlwZW9mKGNvbmRpdGlvbikgPT09ICdzdHJpbmcnKQorICAgICAgICByZXR1cm4gdGhpcy5uYW1lID09PSBjb25kaXRpb247CisKKyAgICAgIC8vIElmIHRoZSBjb25kaXRpb24gaXMgbm90IGEgc3RyaW5nLCBhc3N1bWUgaXQgaXMgYSBSZWdFeHAuCisgICAgICByZXR1cm4gY29uZGl0aW9uLnRlc3QodGhpcy5uYW1lKTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gU2NhbGFyTWVtb3J5Q29sdW1uKG5hbWUsIHRpdGxlLCB1bml0cywgY2VsbEdldHRlcikgeworICAgIE1lbW9yeUNvbHVtbi5jYWxsKHRoaXMsIG5hbWUsIHRpdGxlLCB1bml0cywgY2VsbEdldHRlcik7CisgIH0KKworICBTY2FsYXJNZW1vcnlDb2x1bW4ucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogTWVtb3J5Q29sdW1uLnByb3RvdHlwZSwKKworICAgIGZvcm1hdERlZmluZWRBdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oYXR0cikgeworICAgICAgaWYgKHRoaXMudW5pdHMgPT09ICdieXRlcycpIHsKKyAgICAgICAgdmFyIHNpemVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7CisgICAgICAgIHNpemVFbC5udW1CeXRlcyA9IGF0dHIudmFsdWU7CisgICAgICAgIHJldHVybiBzaXplRWw7CisgICAgICB9CisgICAgICByZXR1cm4gTWVtb3J5Q29sdW1uLnByb3RvdHlwZS5mb3JtYXREZWZpbmVkQXR0cmlidXRlVmFsdWUuY2FsbCgKKyAgICAgICAgICB0aGlzLCBhdHRyKTsKKyAgICB9LAorCisgICAgY29tcGFyZURlZmluZWRBdHRyaWJ1dGVzOiBmdW5jdGlvbihhdHRyQSwgYXR0ckIpIHsKKyAgICAgIHJldHVybiBhdHRyQS52YWx1ZSAtIGF0dHJCLnZhbHVlOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBNZW1vcnlDZWxsKGF0dHIpIHsKKyAgICB0aGlzLmF0dHIgPSBhdHRyOworICB9CisKKyAgTWVtb3J5Q2VsbC5leHRyYWN0QXR0cmlidXRlID0gZnVuY3Rpb24oY2VsbCkgeworICAgIGlmIChjZWxsID09PSB1bmRlZmluZWQpCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIHJldHVybiBjZWxsLmF0dHI7CisgIH07CisKKyAgZnVuY3Rpb24gZmllbGRHZXR0ZXIoLyogZmllbGRzICovKSB7CisgICAgdmFyIGZpZWxkcyA9IHRyLmIuYXNBcnJheShhcmd1bWVudHMpOworICAgIHJldHVybiBmdW5jdGlvbihyb3cpIHsKKyAgICAgIHZhciB2YWx1ZSA9IHJvdzsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKQorICAgICAgICB2YWx1ZSA9IHZhbHVlW2ZpZWxkc1tpXV07CisgICAgICByZXR1cm4gdmFsdWU7CisgICAgfTsKKyAgfQorCisgIC8qKiBMaW1pdCBmb3IgdGhlIG51bWJlciBvZiBzdWItcm93cyBmb3IgcmVjdXJzaXZlIHRhYmxlIHJvdyBleHBhbnNpb24uICovCisgIHZhciBSRUNVUlNJVkVfRVhQQU5TSU9OX01BWF9TVUJfUk9XX0NPVU5UID0gMTA7CisKKyAgZnVuY3Rpb24gZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHkodGFibGUpIHsKKyAgICBmdW5jdGlvbiBleHBhbmRSb3dSZWN1cnNpdmVseShyb3cpIHsKKyAgICAgIGlmIChyb3cuc3ViUm93cyA9PT0gdW5kZWZpbmVkIHx8IHJvdy5zdWJSb3dzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuOworICAgICAgaWYgKHJvdy5zdWJSb3dzLmxlbmd0aCA+IFJFQ1VSU0lWRV9FWFBBTlNJT05fTUFYX1NVQl9ST1dfQ09VTlQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRhYmxlLnNldEV4cGFuZGVkRm9yVGFibGVSb3cocm93LCB0cnVlKTsKKyAgICAgIHJvdy5zdWJSb3dzLmZvckVhY2goZXhwYW5kUm93UmVjdXJzaXZlbHkpOworICAgIH0KKyAgICB0YWJsZS50YWJsZVJvd3MuZm9yRWFjaChleHBhbmRSb3dSZWN1cnNpdmVseSk7CisgIH0KKworICAvLyBUT0RPKHBldHJjZXJtYWspOiBUaGlzIGNvZGUgaXMgYWxtb3N0IHRoZSBzYW1lIGFzCisgIC8vIE1lbW9yeUFsbG9jYXRvckR1bXAuYWdncmVnYXRlQXR0cmlidXRlcy4gQ29uc2lkZXIgc2hhcmluZyBjb2RlIGJldHdlZW4KKyAgLy8gdGhlIHR3byBmdW5jdGlvbnMuCisgIGZ1bmN0aW9uIGFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHNSZWN1cnNpdmVseShyb3csIGNlbGxLZXkpIHsKKyAgICB2YXIgc3ViUm93cyA9IHJvdy5zdWJSb3dzOworICAgIGlmIChzdWJSb3dzID09PSB1bmRlZmluZWQpCisgICAgICByZXR1cm47CisKKyAgICBzdWJSb3dzLmZvckVhY2goZnVuY3Rpb24oc3ViUm93KSB7CisgICAgICBhZ2dyZWdhdGVUYWJsZVJvd0NlbGxzUmVjdXJzaXZlbHkoc3ViUm93LCBjZWxsS2V5KTsKKyAgICB9KTsKKworICAgIGFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHMocm93LCBzdWJSb3dzLCBjZWxsS2V5KTsKKyAgfQorCisgIGZ1bmN0aW9uIGFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHMocm93LCBzdWJSb3dzLCBjZWxsS2V5KSB7CisgICAgdmFyIHJvd0NlbGxzID0gcm93W2NlbGxLZXldOworICAgIGlmIChyb3dDZWxscyA9PT0gdW5kZWZpbmVkKQorICAgICAgcm93W2NlbGxLZXldID0gcm93Q2VsbHMgPSB7fTsKKworICAgIHZhciBzdWJSb3dDZWxsTmFtZXMgPSB7fTsKKyAgICBzdWJSb3dzLmZvckVhY2goZnVuY3Rpb24oc3ViUm93KSB7CisgICAgICB2YXIgc3ViUm93Q2VsbHMgPSBzdWJSb3dbY2VsbEtleV07CisgICAgICBpZiAoc3ViUm93Q2VsbHMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworICAgICAgdHIuYi5pdGVySXRlbXMoc3ViUm93Q2VsbHMsIGZ1bmN0aW9uKGNvbHVtbk5hbWUpIHsKKyAgICAgICAgc3ViUm93Q2VsbE5hbWVzW2NvbHVtbk5hbWVdID0gdHJ1ZTsKKyAgICAgIH0pOworICAgIH0pOworCisgICAgdHIuYi5pdGVySXRlbXMoc3ViUm93Q2VsbE5hbWVzLCBmdW5jdGlvbihjZWxsTmFtZSkgeworICAgICAgdmFyIHN1YlJvd0F0dHJpYnV0ZXMgPSBzdWJSb3dzLm1hcChmdW5jdGlvbihzdWJSb3cpIHsKKyAgICAgICAgdmFyIHN1YlJvd0NlbGxzID0gc3ViUm93W2NlbGxLZXldOworICAgICAgICBpZiAoc3ViUm93Q2VsbHMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICByZXR1cm4gTWVtb3J5Q2VsbC5leHRyYWN0QXR0cmlidXRlKHN1YlJvd0NlbGxzW2NlbGxOYW1lXSk7CisgICAgICB9LCB0aGlzKTsKKyAgICAgIHZhciBleGlzdGluZ1Jvd0NlbGwgPSByb3dDZWxsc1tjZWxsTmFtZV07CisgICAgICB2YXIgZXhpc3RpbmdSb3dBdHRyaWJ1dGUgPSBNZW1vcnlDZWxsLmV4dHJhY3RBdHRyaWJ1dGUoZXhpc3RpbmdSb3dDZWxsKTsKKworICAgICAgdmFyIGFnZ3JlZ2F0ZWRBdHRyaWJ1dGUgPQorICAgICAgICAgIHRyLm1vZGVsLkF0dHJpYnV0ZS5hZ2dyZWdhdGUoc3ViUm93QXR0cmlidXRlcywgZXhpc3RpbmdSb3dBdHRyaWJ1dGUpOworCisgICAgICBpZiAoZXhpc3RpbmdSb3dDZWxsICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgLy8gVGhlIGNlbGwgbWlnaHQgY29udGFpbiBzb21lIGV4dHJhIGZpZWxkcyAoZS5nLiBjdXN0b20KKyAgICAgICAgLy8gYnVpbGREZXRhaWxzUGFuZSBtZXRob2QpIHdoaWNoIHdlIGRvbid0IHdhbnQgdG8gdGhyb3cgYXdheS4KKyAgICAgICAgZXhpc3RpbmdSb3dDZWxsLmF0dHIgPSBhZ2dyZWdhdGVkQXR0cmlidXRlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcm93Q2VsbHNbY2VsbE5hbWVdID0gbmV3IE1lbW9yeUNlbGwoYWdncmVnYXRlZEF0dHJpYnV0ZSk7CisgICAgICB9CisgICAgfSk7CisgIH0KKworICByZXR1cm4geworICAgIE1lbW9yeUNvbHVtbjogTWVtb3J5Q29sdW1uLAorICAgIFNjYWxhck1lbW9yeUNvbHVtbjogU2NhbGFyTWVtb3J5Q29sdW1uLAorICAgIE1lbW9yeUNlbGw6IE1lbW9yeUNlbGwsCisgICAgZmllbGRHZXR0ZXI6IGZpZWxkR2V0dGVyLAorICAgIGV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5OiBleHBhbmRUYWJsZVJvd3NSZWN1cnNpdmVseSwKKyAgICBhZ2dyZWdhdGVUYWJsZVJvd0NlbGxzUmVjdXJzaXZlbHk6IGFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHNSZWN1cnNpdmVseSwKKyAgICBhZ2dyZWdhdGVUYWJsZVJvd0NlbGxzOiBhZ2dyZWdhdGVUYWJsZVJvd0NlbGxzCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ4YmM1MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdXRpbF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw3ODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3V0aWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXR0cmlidXRlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIE1lbW9yeUNvbHVtbiA9IHRyLnVpLmFuYWx5c2lzLk1lbW9yeUNvbHVtbjsKKyAgdmFyIFNjYWxhck1lbW9yeUNvbHVtbiA9IHRyLnVpLmFuYWx5c2lzLlNjYWxhck1lbW9yeUNvbHVtbjsKKyAgdmFyIE1lbW9yeUNlbGwgPSB0ci51aS5hbmFseXNpcy5NZW1vcnlDZWxsOworICB2YXIgZmllbGRHZXR0ZXIgPSB0ci51aS5hbmFseXNpcy5maWVsZEdldHRlcjsKKyAgdmFyIGV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5ID0gdHIudWkuYW5hbHlzaXMuZXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHk7CisgIHZhciBhZ2dyZWdhdGVUYWJsZVJvd0NlbGxzID0gdHIudWkuYW5hbHlzaXMuYWdncmVnYXRlVGFibGVSb3dDZWxsczsKKyAgdmFyIGFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHNSZWN1cnNpdmVseSA9CisgICAgICB0ci51aS5hbmFseXNpcy5hZ2dyZWdhdGVUYWJsZVJvd0NlbGxzUmVjdXJzaXZlbHk7CisgIHZhciBTdHJpbmdBdHRyaWJ1dGUgPSB0ci5tb2RlbC5TdHJpbmdBdHRyaWJ1dGU7CisgIHZhciBTY2FsYXJBdHRyaWJ1dGUgPSB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGU7CisgIHZhciBBdHRyaWJ1dGVJbmZvID0gdHIubW9kZWwuQXR0cmlidXRlSW5mbzsKKyAgdmFyIEF0dHJpYnV0ZUluZm9UeXBlID0gdHIubW9kZWwuQXR0cmlidXRlSW5mb1R5cGU7CisKKyAgZnVuY3Rpb24gY2hlY2tQZXJjZW50KHN0cmluZywgZXhwZWN0ZWRQZXJjZW50KSB7CisgICAgYXNzZXJ0LmVxdWFsKE51bWJlcihzdHJpbmcuc2xpY2UoMCwgLTEpKSwgZXhwZWN0ZWRQZXJjZW50KTsKKyAgICBhc3NlcnQuZXF1YWwoc3RyaW5nLnNsaWNlKC0xKSwgJyUnKTsKKyAgfQorCisgIGZ1bmN0aW9uIGJ1aWxkU3RyaW5nQ2VsbCh2YWx1ZSwgdW5pdHMpIHsKKyAgICByZXR1cm4gbmV3IE1lbW9yeUNlbGwobmV3IFN0cmluZ0F0dHJpYnV0ZSh2YWx1ZSwgdW5pdHMpKTsKKyAgfQorCisgIGZ1bmN0aW9uIGJ1aWxkU2NhbGFyQ2VsbCh2YWx1ZSwgdW5pdHMpIHsKKyAgICByZXR1cm4gbmV3IE1lbW9yeUNlbGwobmV3IFNjYWxhckF0dHJpYnV0ZSh2YWx1ZSwgdW5pdHMpKTsKKyAgfQorCisgIGZ1bmN0aW9uIGJ1aWxkVGVzdFJvd3MoKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdSb3cgMScsCisgICAgICAgIGF0dHJpYnV0ZXM6IHsKKyAgICAgICAgICAnY3B1X3RlbXBlcmF0dXJlJzogYnVpbGRTdHJpbmdDZWxsKCdDJywgJ2JlbG93IHplcm8nKQorICAgICAgICB9LAorICAgICAgICBzdWJSb3dzOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgdGl0bGU6ICdSb3cgMUEnLAorICAgICAgICAgICAgYXR0cmlidXRlczogeworICAgICAgICAgICAgICAncGFnZV9zaXplJzogYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIDEwMjQpCisgICAgICAgICAgICB9CisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICB0aXRsZTogJ1JvdyAxQicsCisgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7CisgICAgICAgICAgICAgICdwYWdlX3NpemUnOiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgNTEyKSwKKyAgICAgICAgICAgICAgJ21peGVkJzogYnVpbGRTdHJpbmdDZWxsKCdtcycsICcwLjAxJykKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnUm93IDInLAorICAgICAgICBhdHRyaWJ1dGVzOiB7CisgICAgICAgICAgJ2NwdV90ZW1wZXJhdHVyZSc6IHVuZGVmaW5lZCwKKyAgICAgICAgICAnbWl4ZWQnOiBidWlsZFNjYWxhckNlbGwoJ21zJywgMC45OSkKKyAgICAgICAgfQorICAgICAgfQorICAgIF07CisgIH0KKworICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl9mcm9tUm93c19kZWZhdWx0VGl0bGVCdWlsZGVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHJvd3MgPSBidWlsZFRlc3RSb3dzKCk7CisgICAgdmFyIGNvbHVtbnMgPSBNZW1vcnlDb2x1bW4uZnJvbVJvd3Mocm93cywgJ2F0dHJpYnV0ZXMnKTsKKyAgICBhc3NlcnQubGVuZ3RoT2YoY29sdW1ucywgMyk7CisKKyAgICB2YXIgY3B1VGVtcGVyYXR1cmVDb2x1bW4gPSBjb2x1bW5zWzBdOworICAgIGFzc2VydC5lcXVhbChjcHVUZW1wZXJhdHVyZUNvbHVtbi50aXRsZSwgJ2NwdV90ZW1wZXJhdHVyZScpOworICAgIGFzc2VydC5lcXVhbChjcHVUZW1wZXJhdHVyZUNvbHVtbi51bml0cywgJ0MnKTsKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihjcHVUZW1wZXJhdHVyZUNvbHVtbiwgTWVtb3J5Q29sdW1uKTsKKyAgICBhc3NlcnQubm90SW5zdGFuY2VPZihjcHVUZW1wZXJhdHVyZUNvbHVtbiwgU2NhbGFyTWVtb3J5Q29sdW1uKTsKKworICAgIHZhciBwYWdlU2l6ZUNvbHVtbiA9IGNvbHVtbnNbMV07CisgICAgYXNzZXJ0LmVxdWFsKHBhZ2VTaXplQ29sdW1uLnRpdGxlLCAncGFnZV9zaXplJyk7CisgICAgYXNzZXJ0LmVxdWFsKHBhZ2VTaXplQ29sdW1uLnVuaXRzLCAnYnl0ZXMnKTsKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihwYWdlU2l6ZUNvbHVtbiwgU2NhbGFyTWVtb3J5Q29sdW1uKTsKKworICAgIHZhciBtaXhlZENvbHVtbiA9IGNvbHVtbnNbMl07CisgICAgYXNzZXJ0LmVxdWFsKG1peGVkQ29sdW1uLnRpdGxlLCAnbWl4ZWQnKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQobWl4ZWRDb2x1bW4udW5pdHMpOworICAgIGFzc2VydC5pbnN0YW5jZU9mKG1peGVkQ29sdW1uLCBNZW1vcnlDb2x1bW4pOworICAgIGFzc2VydC5ub3RJbnN0YW5jZU9mKG1peGVkQ29sdW1uLCBTY2FsYXJNZW1vcnlDb2x1bW4pOworICB9KTsKKworICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl9mcm9tUm93c19jdXN0b21UaXRsZUJ1aWxkZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcm93cyA9IGJ1aWxkVGVzdFJvd3MoKTsKKyAgICB2YXIgY29sdW1ucyA9IE1lbW9yeUNvbHVtbi5mcm9tUm93cyhyb3dzLCAnYXR0cmlidXRlcycsIGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgIHZhciB0aXRsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgdGl0bGVFbC5pbm5lclRleHQgPSBuYW1lOworICAgICAgcmV0dXJuIHRpdGxlRWw7CisgICAgfSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGNvbHVtbnMsIDMpOworCisgICAgdmFyIGNwdVRlbXBlcmF0dXJlQ29sdW1uID0gY29sdW1uc1swXTsKKyAgICBhc3NlcnQuZXF1YWwoY3B1VGVtcGVyYXR1cmVDb2x1bW4udGl0bGUudGV4dENvbnRlbnQsICdjcHVfdGVtcGVyYXR1cmUnKTsKKyAgICBhc3NlcnQuZXF1YWwoY3B1VGVtcGVyYXR1cmVDb2x1bW4udW5pdHMsICdDJyk7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2YoY3B1VGVtcGVyYXR1cmVDb2x1bW4sIE1lbW9yeUNvbHVtbik7CisgICAgYXNzZXJ0Lm5vdEluc3RhbmNlT2YoY3B1VGVtcGVyYXR1cmVDb2x1bW4sIFNjYWxhck1lbW9yeUNvbHVtbik7CisKKyAgICB2YXIgcGFnZVNpemVDb2x1bW4gPSBjb2x1bW5zWzFdOworICAgIGFzc2VydC5lcXVhbChwYWdlU2l6ZUNvbHVtbi50aXRsZS50ZXh0Q29udGVudCwgJ3BhZ2Vfc2l6ZScpOworICAgIGFzc2VydC5lcXVhbChwYWdlU2l6ZUNvbHVtbi51bml0cywgJ2J5dGVzJyk7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2YocGFnZVNpemVDb2x1bW4sIFNjYWxhck1lbW9yeUNvbHVtbik7CisKKyAgICB2YXIgbWl4ZWRDb2x1bW4gPSBjb2x1bW5zWzJdOworICAgIGFzc2VydC5lcXVhbChtaXhlZENvbHVtbi50aXRsZS50ZXh0Q29udGVudCwgJ21peGVkJyk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG1peGVkQ29sdW1uLnVuaXRzKTsKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihtaXhlZENvbHVtbiwgTWVtb3J5Q29sdW1uKTsKKyAgICBhc3NlcnQubm90SW5zdGFuY2VPZihtaXhlZENvbHVtbiwgU2NhbGFyTWVtb3J5Q29sdW1uKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDb2x1bW5fZnJvbUF0dHJpYnV0ZVRyYWl0cycsIGZ1bmN0aW9uKCkgeworICAgIC8vIFN0cmluZyBhdHRyaWJ1dGUuCisgICAgdmFyIHRyYWl0cyA9IHsKKyAgICAgIGNvbnN0cnVjdG9yOiBTdHJpbmdBdHRyaWJ1dGUsCisgICAgICB1bml0czogJ01icHMnCisgICAgfTsKKyAgICB2YXIgY29sdW1uID0gTWVtb3J5Q29sdW1uLmZyb21BdHRyaWJ1dGVUcmFpdHMoCisgICAgICAgICdmaXJzdF9jb2x1bW4nLCAnRmlyc3QgQ29sdW1uJywgdHJhaXRzLCBmaWVsZEdldHRlcigneCcpKTsKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihjb2x1bW4sIE1lbW9yeUNvbHVtbik7CisgICAgYXNzZXJ0LmVxdWFsKGNvbHVtbi5uYW1lLCAnZmlyc3RfY29sdW1uJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbHVtbi50aXRsZSwgJ0ZpcnN0IENvbHVtbicpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChjb2x1bW4ud2lkdGgpOworICAgIGFzc2VydC5lcXVhbChjb2x1bW4udmFsdWUoe3g6IGJ1aWxkU3RyaW5nQ2VsbCgnTWJwcycsICd2ZXJ5IGZhc3QnKX0pLAorICAgICAgICAndmVyeSBmYXN0Jyk7CisgICAgYXNzZXJ0LmlzQWJvdmUoY29sdW1uLmNtcCh7eDogYnVpbGRTdHJpbmdDZWxsKCdNYnBzJywgJ3Nsb3cnKX0sCisgICAgICAgIHt4OiBidWlsZFN0cmluZ0NlbGwoJ01icHMnLCAnZmFzdCcpfSksIDApOworCisgICAgLy8gU2NhbGFyIGF0dHJpYnV0ZS4KKyAgICB2YXIgdHJhaXRzID0geworICAgICAgY29uc3RydWN0b3I6IFNjYWxhckF0dHJpYnV0ZSwKKyAgICAgIHVuaXRzOiAnYnl0ZXMnCisgICAgfTsKKyAgICB2YXIgY29sdW1uID0gTWVtb3J5Q29sdW1uLmZyb21BdHRyaWJ1dGVUcmFpdHMoCisgICAgICAgICdzZWNvbmRfY29sdW1uJywgJ1NlY29uZCBDb2x1bW4nLCB0cmFpdHMsIGZpZWxkR2V0dGVyKCd4JykpOworICAgIGFzc2VydC5pbnN0YW5jZU9mKGNvbHVtbiwgTWVtb3J5Q29sdW1uKTsKKyAgICBhc3NlcnQuZXF1YWwoY29sdW1uLm5hbWUsICdzZWNvbmRfY29sdW1uJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbHVtbi50aXRsZSwgJ1NlY29uZCBDb2x1bW4nKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoY29sdW1uLndpZHRoKTsKKyAgICBhc3NlcnQuZXF1YWwoY29sdW1uLnZhbHVlKHt4OiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMTAyNCl9KS5udW1CeXRlcywKKyAgICAgICAgMTAyNCk7CisgICAgYXNzZXJ0LmlzQWJvdmUoY29sdW1uLmNtcCh7eDogYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIDEwMCl9LAorICAgICAgICB7eDogYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIDk5Ljk5KX0pLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDb2x1bW5fc3BhY2VFcXVhbGx5JywgZnVuY3Rpb24oKSB7CisgICAgLy8gWmVybyBjb2x1bW5zLgorICAgIHZhciBjb2x1bW5zID0gW107CisgICAgTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShjb2x1bW5zKTsKKworICAgIC8vIE9uZSBjb2x1bW4uCisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnRmlyc3QgQ29sdW1uJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfQorICAgICAgfQorICAgIF07CisgICAgTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShjb2x1bW5zKTsKKyAgICBjaGVja1BlcmNlbnQoY29sdW1uc1swXS53aWR0aCwgMTAwKTsKKworICAgIC8vIFR3byBjb2x1bW5zLgorICAgIHZhciBjb2x1bW5zID0gWworICAgICAgeworICAgICAgICB0aXRsZTogJ0ZpcnN0IENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5maXJzdERhdGE7IH0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnU2Vjb25kIENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5maXJzdERhdGE7IH0KKyAgICAgIH0KKyAgICBdOworICAgIE1lbW9yeUNvbHVtbi5zcGFjZUVxdWFsbHkoY29sdW1ucyk7CisgICAgY2hlY2tQZXJjZW50KGNvbHVtbnNbMF0ud2lkdGgsIDUwKTsKKyAgICBjaGVja1BlcmNlbnQoY29sdW1uc1sxXS53aWR0aCwgNTApOworICB9KTsKKworICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl9zb3J0QnlJbXBvcnRhbmNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAgICdwYWdlX3NpemUnLCAnUGFnZSBTaXplJywgJ2J5dGVzJywgZmllbGRHZXR0ZXIoJ3Bnc2l6ZScpKSwKKyAgICAgIG5ldyBNZW1vcnlDb2x1bW4oCisgICAgICAgICAgJ3Jlc2lkZW50X3NpemUnLCAnUmVzaWRlbnQgU2l6ZScsICdieXRlcycsIGZpZWxkR2V0dGVyKCdyc3MnKSksCisgICAgICBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAgICdvYmplY3RfY291bnQnLCAnT2JqZWN0IENvdW50JywgJ29iamVjdHMnLCBmaWVsZEdldHRlcignb2JqY291bnQnKSksCisgICAgICBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAgICdwcm9wb3J0aW9uYWxfc2l6ZScsICdQcm9wb3J0aW9uYWwgU2l6ZScsICdieXRlcycsIGZpZWxkR2V0dGVyKCdwc3MnKSkKKyAgICBdOworCisgICAgdmFyIHJ1bGVzID0gWworICAgICAgeworICAgICAgICBjb25kaXRpb246ICdwYWdlX3NpemUnLAorICAgICAgICBpbXBvcnRhbmNlOiA4CisgICAgICB9LAorICAgICAgeworICAgICAgICBjb25kaXRpb246IC9zaXplLywKKyAgICAgICAgaW1wb3J0YW5jZTogMTAKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGltcG9ydGFuY2U6IDkKKyAgICAgIH0KKyAgICBdOworCisgICAgTWVtb3J5Q29sdW1uLnNvcnRCeUltcG9ydGFuY2UoY29sdW1ucywgcnVsZXMpOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKGNvbHVtbnMsIDQpOworICAgIGFzc2VydC5lcXVhbChjb2x1bW5zWzBdLm5hbWUsICdyZXNpZGVudF9zaXplJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbHVtbnNbMV0ubmFtZSwgJ3Byb3BvcnRpb25hbF9zaXplJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbHVtbnNbMl0ubmFtZSwgJ29iamVjdF9jb3VudCcpOworICAgIGFzc2VydC5lcXVhbChjb2x1bW5zWzNdLm5hbWUsICdwYWdlX3NpemUnKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDb2x1bW5fZmllbGRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKKyAgICBhc3NlcnQuZXF1YWwoYy50aXRsZSwgJ1Rlc3QgQ29sdW1uJyk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGMud2lkdGgpOworICB9KTsKKworICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl9hdHRyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKKworICAgIC8vIFVuZGVmaW5lZCBjZWxsIG9yIGF0dHJpYnV0ZSBpbnNpZGUgY2VsbC4KKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoYy5hdHRyKHt9KSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGMuYXR0cih7eDogbmV3IE1lbW9yeUNlbGwodW5kZWZpbmVkKX0pKTsKKworICAgIC8vIERlZmluZWQgYXR0cmlidXRlIGluc2lkZSBjZWxsLgorICAgIHZhciBhdHRyID0gbmV3IFNjYWxhckF0dHJpYnV0ZSgnaFBhJywgMTAxMy4yNSk7CisgICAgdmFyIHJvdyA9IHt4OiBuZXcgTWVtb3J5Q2VsbChhdHRyKX07CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGMuYXR0cihyb3cpLCBhdHRyKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDb2x1bW5fdmFsdWVfdW5kZWZpbmVkQ29sb3InLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYyA9IG5ldyBNZW1vcnlDb2x1bW4oCisgICAgICAgICd0ZXN0X2NvbHVtbicsICdUZXN0IENvbHVtbicsICdtcycsIGZpZWxkR2V0dGVyKCd4JykpOworCisgICAgLy8gVW5kZWZpbmVkIGNlbGwgb3IgYXR0cmlidXRlIGluc2lkZSBjZWxsLgorICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt9KSwgJycpOworICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt4OiBuZXcgTWVtb3J5Q2VsbCh1bmRlZmluZWQpfSksICcnKTsKKworICAgIC8vIERlZmluZWQgY2VsbC4KKyAgICB2YXIgdmFsdWUgPSBjLnZhbHVlKHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgMTIzKX0pOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZSwgJzEyMycpOworCisgICAgLy8gQXR0cmlidXRlIHdpdGggaW5mb3MuCisgICAgdmFyIGNlbGwgPSBidWlsZFN0cmluZ0NlbGwoJ21zJywgJ2EgY291cGxlJyk7CisgICAgY2VsbC5hdHRyLmluZm9zID0gWworICAgICAgbmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuV0FSTklORywgJ1RoaXMgdmFsdWUgaXMgdG9vIGNvb2wnKSwKKyAgICAgIG5ldyBBdHRyaWJ1dGVJbmZvKEF0dHJpYnV0ZUluZm9UeXBlLkxJTkssICdTb3VyY2U6IFRlc3QnKQorICAgIF07CisgICAgdmFyIHZhbHVlID0gYy52YWx1ZSh7eDogY2VsbH0pOworICAgIGFzc2VydC5sZW5ndGhPZih2YWx1ZS5jaGlsZE5vZGVzLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuc3R5bGUuY29sb3IsICcnKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1swXS50ZXh0Q29udGVudCwgJ2EgY291cGxlJyk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMV0udGV4dENvbnRlbnQsIFN0cmluZy5mcm9tQ2hhckNvZGUoOTg4OCkpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzFdLnRpdGxlLCAnVGhpcyB2YWx1ZSBpcyB0b28gY29vbCcpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzJdLnRleHRDb250ZW50LCBTdHJpbmcuZnJvbUNoYXJDb2RlKDk5MDMpKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1syXS50aXRsZSwgJ1NvdXJjZTogVGVzdCcpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2YWx1ZSk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrTWVtb3J5Q29sdW1uX3ZhbHVlX2NvbG9yU3RyaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKKyAgICBjLmNvbG9yID0gJyMwMDk5OTknOworCisgICAgLy8gVW5kZWZpbmVkIGNlbGwgb3IgYXR0cmlidXRlIGluc2lkZSBjZWxsLgorICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt9KSwgJycpOworICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt4OiBuZXcgTWVtb3J5Q2VsbCh1bmRlZmluZWQpfSksICcnKTsKKworICAgIC8vIERlZmluZWQgY2VsbC4KKyAgICB2YXIgdmFsdWUgPSBjLnZhbHVlKHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgMTIzKX0pOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS50ZXh0Q29udGVudCwgJzEyMycpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5zdHlsZS5jb2xvciwgJ3JnYigwLCAxNTMsIDE1MyknKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmFsdWUpOworCisgICAgLy8gQXR0cmlidXRlIHdpdGggaW5mb3MuCisgICAgdmFyIGNlbGwgPSBidWlsZFN0cmluZ0NlbGwoJ21zJywgJ2EgY291cGxlJyk7CisgICAgY2VsbC5hdHRyLmluZm9zID0gWworICAgICAgbmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuV0FSTklORywgJ1RoaXMgdmFsdWUgaXMgdG9vIGNvb2wnKSwKKyAgICAgIG5ldyBBdHRyaWJ1dGVJbmZvKEF0dHJpYnV0ZUluZm9UeXBlLkxJTkssICdTb3VyY2U6IFRlc3QnKQorICAgIF07CisgICAgdmFyIHZhbHVlID0gYy52YWx1ZSh7eDogY2VsbH0pOworICAgIGFzc2VydC5sZW5ndGhPZih2YWx1ZS5jaGlsZE5vZGVzLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuc3R5bGUuY29sb3IsICdyZ2IoMCwgMTUzLCAxNTMpJyk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMF0udGV4dENvbnRlbnQsICdhIGNvdXBsZScpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzFdLnRleHRDb250ZW50LCBTdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1sxXS50aXRsZSwgJ1RoaXMgdmFsdWUgaXMgdG9vIGNvb2wnKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1syXS50ZXh0Q29udGVudCwgU3RyaW5nLmZyb21DaGFyQ29kZSg5OTAzKSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMl0udGl0bGUsICdTb3VyY2U6IFRlc3QnKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmFsdWUpOworICB9KTsKKworICB0ZXN0KCdjaGVja01lbW9yeUNvbHVtbl92YWx1ZV9jb2xvckZ1bmN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKKyAgICBjLmNvbG9yID0gZnVuY3Rpb24oYXR0cikgeworICAgICAgcmV0dXJuIGF0dHIudmFsdWUgPCAwID8gJ2dyZWVuJyA6IHVuZGVmaW5lZDsKKyAgICB9OworCisgICAgLy8gVW5kZWZpbmVkIGNlbGwgb3IgYXR0cmlidXRlIGluc2lkZSBjZWxsLgorICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt9KSwgJycpOworICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt4OiBuZXcgTWVtb3J5Q2VsbCh1bmRlZmluZWQpfSksICcnKTsKKworICAgIC8vIERlZmluZWQgY2VsbC4KKyAgICB2YXIgdmFsdWUgPSBjLnZhbHVlKHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgMTIzKX0pOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZSwgJzEyMycpOworCisgICAgdmFyIHZhbHVlID0gYy52YWx1ZSh7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIC0xMjMpfSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLnRleHRDb250ZW50LCAnLTEyMycpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5zdHlsZS5jb2xvciwgJ2dyZWVuJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZhbHVlKTsKKworICAgIC8vIEF0dHJpYnV0ZSB3aXRoIGluZm9zLgorICAgIHZhciBjZWxsID0gYnVpbGRTdHJpbmdDZWxsKCdtcycsIDQyKTsKKyAgICBjZWxsLmF0dHIuaW5mb3MgPSBbCisgICAgICBuZXcgQXR0cmlidXRlSW5mbyhBdHRyaWJ1dGVJbmZvVHlwZS5XQVJOSU5HLCAnVGhpcyB2YWx1ZSBpcyB0b28gY29vbCcpLAorICAgICAgbmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuTElOSywgJ1NvdXJjZTogVGVzdCcpCisgICAgXTsKKyAgICB2YXIgdmFsdWUgPSBjLnZhbHVlKHt4OiBjZWxsfSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHZhbHVlLmNoaWxkTm9kZXMsIDMpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5zdHlsZS5jb2xvciwgJycpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzBdLnRleHRDb250ZW50LCAnNDInKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCwgU3RyaW5nLmZyb21DaGFyQ29kZSg5ODg4KSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMV0udGl0bGUsICdUaGlzIHZhbHVlIGlzIHRvbyBjb29sJyk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMl0udGV4dENvbnRlbnQsIFN0cmluZy5mcm9tQ2hhckNvZGUoOTkwMykpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzJdLnRpdGxlLCAnU291cmNlOiBUZXN0Jyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZhbHVlKTsKKworICAgIHZhciBjZWxsID0gYnVpbGRTdHJpbmdDZWxsKCdtcycsIC0yNzMuMTUpOworICAgIGNlbGwuYXR0ci5pbmZvcyA9IFsKKyAgICAgIG5ldyBBdHRyaWJ1dGVJbmZvKAorICAgICAgICAgIEF0dHJpYnV0ZUluZm9UeXBlLklORk9STUFUSU9OLCAnVGhpcyB2YWx1ZSBpcyBhYnNvbHV0ZWx5IGNvb2wnKQorICAgIF07CisgICAgdmFyIHZhbHVlID0gYy52YWx1ZSh7eDogY2VsbH0pOworICAgIGFzc2VydC5sZW5ndGhPZih2YWx1ZS5jaGlsZE5vZGVzLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuc3R5bGUuY29sb3IsICdncmVlbicpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzBdLnRleHRDb250ZW50LCAnLTI3My4xNScpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzFdLnRleHRDb250ZW50LCBTdHJpbmcuZnJvbUNoYXJDb2RlKDk0MzIpKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1sxXS50aXRsZSwgJ1RoaXMgdmFsdWUgaXMgYWJzb2x1dGVseSBjb29sJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZhbHVlKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDb2x1bW5fY21wJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKKworICAgIC8vIENlbGwgKG9yIHRoZSBhc3NvY2lhdGVkIGF0dHJpYnV0ZSkgdW5kZWZpbmVkIGluIG9uZSBvciBib3RoIHJvd3MuCisgICAgYXNzZXJ0LmVxdWFsKGMuY21wKHt9LCB7eTogbmV3IE1lbW9yeUNlbGwodW5kZWZpbmVkKX0pLCAwKTsKKyAgICBhc3NlcnQuaXNBYm92ZShjLmNtcCh7eDogYnVpbGRTdHJpbmdDZWxsKCdtcycsICduZWdhdGl2ZScpfSwge30pLCAwKTsKKyAgICBhc3NlcnQuaXNCZWxvdyhjLmNtcCh7fSwge3g6IGJ1aWxkU3RyaW5nQ2VsbCgnbXMnLCAncG9zaXRpdmUnKX0pLCAwKTsKKworICAgIC8vIENlbGwgZGVmaW5lZCBpbiBib3RoIHJvd3MKKyAgICBhc3NlcnQuZXF1YWwoYy5jbXAoe3g6IGJ1aWxkU3RyaW5nQ2VsbCgndCcsICdlcXVhbCcpfSwKKyAgICAgICAge3g6IGJ1aWxkU3RyaW5nQ2VsbCgndCcsICdlcXVhbCcpfSksIDApOworICAgIGFzc2VydC5pc0Fib3ZlKGMuY21wKHt4OiBidWlsZFN0cmluZ0NlbGwoJ3UnLCAnYmlnZ2VyJyl9LAorICAgICAgICB7eDogYnVpbGRTdHJpbmdDZWxsKCd1JywgJ0JJRycpfSksIDApOworICAgIGFzc2VydC5pc0JlbG93KGMuY21wKHt4OiBidWlsZFN0cmluZ0NlbGwoJ3YnLCAnc21hbGwnKX0sCisgICAgICAgIHt4OiBidWlsZFN0cmluZ0NlbGwoJ3YnLCAnc21hTEwnKX0pLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDb2x1bW5fZ2V0SW1wb3J0YW5jZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjID0gbmV3IFNjYWxhck1lbW9yeUNvbHVtbigKKyAgICAgICAgJ3Rlc3RfY29sdW1uJywgJ1Rlc3QgQ29sdW1uJywgJ2J5dGVzJywgZmllbGRHZXR0ZXIoJ3gnKSk7CisKKyAgICB2YXIgcnVsZXMxID0gW107CisgICAgYXNzZXJ0LmVxdWFsKGMuZ2V0SW1wb3J0YW5jZShydWxlczEpLCAwKTsKKworICAgIHZhciBydWxlczIgPSBbCisgICAgICB7CisgICAgICAgIGNvbmRpdGlvbjogJ3Rlc3QnLAorICAgICAgICBpbXBvcnRhbmNlOiA0CisgICAgICB9LAorICAgICAgeworICAgICAgICBjb25kaXRpb246IC90ZXN0JC8sCisgICAgICAgIGltcG9ydGFuY2U6IDIKKyAgICAgIH0KKyAgICBdOworICAgIGFzc2VydC5lcXVhbChjLmdldEltcG9ydGFuY2UocnVsZXMyKSwgMSk7CisKKyAgICB2YXIgcnVsZXMzID0gWworICAgICAgeworICAgICAgICBjb25kaXRpb246ICd0ZXN0X2NvbHVtbicsCisgICAgICAgIGltcG9ydGFuY2U6IDEwCisgICAgICB9LAorICAgICAgeworICAgICAgICBpbXBvcnRhbmNlOiA1CisgICAgICB9CisgICAgXTsKKyAgICBhc3NlcnQuZXF1YWwoYy5nZXRJbXBvcnRhbmNlKHJ1bGVzMyksIDEwKTsKKworICAgIHZhciBydWxlczQgPSBbCisgICAgICB7CisgICAgICAgIGNvbmRpdGlvbjogJ3Rlc3RfY29sdW1uMicsCisgICAgICAgIGltcG9ydGFuY2U6IDgKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGNvbmRpdGlvbjogL2NvbHVtbi8sCisgICAgICAgIGltcG9ydGFuY2U6IDEyCisgICAgICB9CisgICAgXTsKKyAgICBhc3NlcnQuZXF1YWwoYy5nZXRJbXBvcnRhbmNlKHJ1bGVzNCksIDEyKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDb2x1bW5fbWF0Y2hlc05hbWVDb25kaXRpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYyA9IG5ldyBTY2FsYXJNZW1vcnlDb2x1bW4oCisgICAgICAgICd0ZXN0X2NvbHVtbicsICdUZXN0IENvbHVtbicsICdieXRlcycsIGZpZWxkR2V0dGVyKCd4JykpOworCisgICAgYXNzZXJ0LmlzVHJ1ZShjLm1hdGNoZXNOYW1lQ29uZGl0aW9uKHVuZGVmaW5lZCkpOworCisgICAgYXNzZXJ0LmlzRmFsc2UoYy5tYXRjaGVzTmFtZUNvbmRpdGlvbigndGVzdCcpKTsKKyAgICBhc3NlcnQuaXNUcnVlKGMubWF0Y2hlc05hbWVDb25kaXRpb24oJ3Rlc3RfY29sdW1uJykpOworICAgIGFzc2VydC5pc0ZhbHNlKGMubWF0Y2hlc05hbWVDb25kaXRpb24oJ3Rlc3RfY29sdW1uMicpKTsKKworICAgIGFzc2VydC5pc1RydWUoYy5tYXRjaGVzTmFtZUNvbmRpdGlvbigvdGVzdC8pKTsKKyAgICBhc3NlcnQuaXNUcnVlKGMubWF0Y2hlc05hbWVDb25kaXRpb24oL15bXl9dKl9bXl9dKiQvKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYy5tYXRjaGVzTmFtZUNvbmRpdGlvbigvdGVzdCQvKSk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrU2NhbGFyTWVtb3J5Q29sdW1uX3ZhbHVlX3VuZGVmaW5lZENvbG9yJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgU2NhbGFyTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnYnl0ZXMnLCBmaWVsZEdldHRlcigneCcpKTsKKworICAgIC8vIFVuZGVmaW5lZCBjZWxsIG9yIGF0dHJpYnV0ZSBpbnNpZGUgY2VsbC4KKyAgICBhc3NlcnQuZXF1YWwoYy52YWx1ZSh7fSksICcnKTsKKyAgICBhc3NlcnQuZXF1YWwoYy52YWx1ZSh7eDogbmV3IE1lbW9yeUNlbGwodW5kZWZpbmVkKX0pLCAnJyk7CisKKyAgICAvLyBEZWZpbmVkIGNlbGwuCisgICAgdmFyIHZhbHVlID0gYy52YWx1ZSh7eDogYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIDEwMjQpfSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLm51bUJ5dGVzLCAxMDI0KTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmFsdWUpOworCisgICAgLy8gQXR0cmlidXRlIHdpdGggaW5mb3MuCisgICAgdmFyIGNlbGwgPSBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMjA0OCk7CisgICAgY2VsbC5hdHRyLmluZm9zID0gWworICAgICAgbmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuV0FSTklORywgJ1RoaXMgdmFsdWUgaXMgdG9vIGNvb2wnKSwKKyAgICAgIG5ldyBBdHRyaWJ1dGVJbmZvKEF0dHJpYnV0ZUluZm9UeXBlLkxJTkssICdTb3VyY2U6IFRlc3QnKQorICAgIF07CisgICAgdmFyIHZhbHVlID0gYy52YWx1ZSh7eDogY2VsbH0pOworICAgIGFzc2VydC5sZW5ndGhPZih2YWx1ZS5jaGlsZE5vZGVzLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuc3R5bGUuY29sb3IsICcnKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1swXS5udW1CeXRlcywgMjA0OCk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMV0udGV4dENvbnRlbnQsIFN0cmluZy5mcm9tQ2hhckNvZGUoOTg4OCkpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzFdLnRpdGxlLCAnVGhpcyB2YWx1ZSBpcyB0b28gY29vbCcpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzJdLnRleHRDb250ZW50LCBTdHJpbmcuZnJvbUNoYXJDb2RlKDk5MDMpKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1syXS50aXRsZSwgJ1NvdXJjZTogVGVzdCcpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2YWx1ZSk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrU2NhbGFyTWVtb3J5Q29sdW1uX3ZhbHVlX2NvbG9yU3RyaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgU2NhbGFyTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnYnl0ZXMnLCBmaWVsZEdldHRlcigneCcpKTsKKyAgICBjLmNvbG9yID0gJyMwMDk5OTknOworCisgICAgLy8gVW5kZWZpbmVkIGNlbGwgb3IgYXR0cmlidXRlIGluc2lkZSBjZWxsLgorICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt9KSwgJycpOworICAgIGFzc2VydC5lcXVhbChjLnZhbHVlKHt4OiBuZXcgTWVtb3J5Q2VsbCh1bmRlZmluZWQpfSksICcnKTsKKworICAgIC8vIERlZmluZWQgY2VsbC4KKyAgICB2YXIgdmFsdWUgPSBjLnZhbHVlKHt4OiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMTAyNCl9KTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodmFsdWUuY2hpbGROb2RlcywgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMF0ubnVtQnl0ZXMsIDEwMjQpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5zdHlsZS5jb2xvciwgJ3JnYigwLCAxNTMsIDE1MyknKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmFsdWUpOworCisgICAgLy8gQXR0cmlidXRlIHdpdGggaW5mb3MuCisgICAgdmFyIGNlbGwgPSBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMjA0OCk7CisgICAgY2VsbC5hdHRyLmluZm9zID0gWworICAgICAgbmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuV0FSTklORywgJ1RoaXMgdmFsdWUgaXMgdG9vIGNvb2wnKSwKKyAgICAgIG5ldyBBdHRyaWJ1dGVJbmZvKEF0dHJpYnV0ZUluZm9UeXBlLkxJTkssICdTb3VyY2U6IFJ1bW9yJykKKyAgICBdOworICAgIHZhciB2YWx1ZSA9IGMudmFsdWUoe3g6IGNlbGx9KTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodmFsdWUuY2hpbGROb2RlcywgMyk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLnN0eWxlLmNvbG9yLCAncmdiKDAsIDE1MywgMTUzKScpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzBdLm51bUJ5dGVzLCAyMDQ4KTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCwgU3RyaW5nLmZyb21DaGFyQ29kZSg5ODg4KSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMV0udGl0bGUsICdUaGlzIHZhbHVlIGlzIHRvbyBjb29sJyk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMl0udGV4dENvbnRlbnQsIFN0cmluZy5mcm9tQ2hhckNvZGUoOTkwMykpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzJdLnRpdGxlLCAnU291cmNlOiBSdW1vcicpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2YWx1ZSk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrU2NhbGFyTWVtb3J5Q29sdW1uX3ZhbHVlX2NvbG9yRnVuY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYyA9IG5ldyBTY2FsYXJNZW1vcnlDb2x1bW4oCisgICAgICAgICd0ZXN0X2NvbHVtbicsICdUZXN0IENvbHVtbicsICdieXRlcycsIGZpZWxkR2V0dGVyKCd4JykpOworICAgIGMuY29sb3IgPSBmdW5jdGlvbihhdHRyKSB7CisgICAgICByZXR1cm4gYXR0ci52YWx1ZSA8IDAgPyAnZ3JlZW4nIDogdW5kZWZpbmVkOworICAgIH07CisKKyAgICAvLyBVbmRlZmluZWQgY2VsbCBvciBhdHRyaWJ1dGUgaW5zaWRlIGNlbGwuCisgICAgYXNzZXJ0LmVxdWFsKGMudmFsdWUoe30pLCAnJyk7CisgICAgYXNzZXJ0LmVxdWFsKGMudmFsdWUoe3g6IG5ldyBNZW1vcnlDZWxsKHVuZGVmaW5lZCl9KSwgJycpOworCisgICAgLy8gRGVmaW5lZCBjZWxsLgorICAgIHZhciB2YWx1ZSA9IGMudmFsdWUoe3g6IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCAxMDI0KX0pOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5udW1CeXRlcywgMTAyNCk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZhbHVlKTsKKworICAgIHZhciB2YWx1ZSA9IGMudmFsdWUoe3g6IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCAtMTAyNCl9KTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodmFsdWUuY2hpbGROb2RlcywgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMF0ubnVtQnl0ZXMsIC0xMDI0KTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuc3R5bGUuY29sb3IsICdncmVlbicpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2YWx1ZSk7CisKKyAgICAvLyBBdHRyaWJ1dGUgd2l0aCBpbmZvcy4KKyAgICB2YXIgY2VsbCA9IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCAyMDQ4KTsKKyAgICBjZWxsLmF0dHIuaW5mb3MgPSBbCisgICAgICBuZXcgQXR0cmlidXRlSW5mbyhBdHRyaWJ1dGVJbmZvVHlwZS5XQVJOSU5HLCAnVGhpcyB2YWx1ZSBpcyB0b28gY29vbCcpLAorICAgICAgbmV3IEF0dHJpYnV0ZUluZm8oQXR0cmlidXRlSW5mb1R5cGUuTElOSywgJ1NvdXJjZTogVGVzdCcpCisgICAgXTsKKyAgICB2YXIgdmFsdWUgPSBjLnZhbHVlKHt4OiBjZWxsfSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHZhbHVlLmNoaWxkTm9kZXMsIDMpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5zdHlsZS5jb2xvciwgJycpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzBdLm51bUJ5dGVzLCAyMDQ4KTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCwgU3RyaW5nLmZyb21DaGFyQ29kZSg5ODg4KSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMV0udGl0bGUsICdUaGlzIHZhbHVlIGlzIHRvbyBjb29sJyk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLmNoaWxkTm9kZXNbMl0udGV4dENvbnRlbnQsIFN0cmluZy5mcm9tQ2hhckNvZGUoOTkwMykpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzJdLnRpdGxlLCAnU291cmNlOiBUZXN0Jyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZhbHVlKTsKKworICAgIHZhciBjZWxsID0gYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIC0yMDQ4KTsKKyAgICBjZWxsLmF0dHIuaW5mb3MgPSBbCisgICAgICBuZXcgQXR0cmlidXRlSW5mbygKKyAgICAgICAgICBBdHRyaWJ1dGVJbmZvVHlwZS5JTkZPUk1BVElPTiwgJ1RoaXMgdmFsdWUgaXMgaW1wb3NzaWJseSBjb29sJykKKyAgICBdOworICAgIHZhciB2YWx1ZSA9IGMudmFsdWUoe3g6IGNlbGx9KTsKKyAgICBhc3NlcnQubGVuZ3RoT2YodmFsdWUuY2hpbGROb2RlcywgMik7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLnN0eWxlLmNvbG9yLCAnZ3JlZW4nKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1swXS5udW1CeXRlcywgLTIwNDgpOworICAgIGFzc2VydC5lcXVhbCh2YWx1ZS5jaGlsZE5vZGVzWzFdLnRleHRDb250ZW50LCBTdHJpbmcuZnJvbUNoYXJDb2RlKDk0MzIpKTsKKyAgICBhc3NlcnQuZXF1YWwodmFsdWUuY2hpbGROb2Rlc1sxXS50aXRsZSwgJ1RoaXMgdmFsdWUgaXMgaW1wb3NzaWJseSBjb29sJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZhbHVlKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tTY2FsYXJNZW1vcnlDb2x1bW5fY21wJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMgPSBuZXcgU2NhbGFyTWVtb3J5Q29sdW1uKAorICAgICAgICAndGVzdF9jb2x1bW4nLCAnVGVzdCBDb2x1bW4nLCAnbXMnLCBmaWVsZEdldHRlcigneCcpKTsKKworICAgIC8vIENlbGwgKG9yIHRoZSBhc3NvY2lhdGVkIGF0dHJpYnV0ZSkgdW5kZWZpbmVkIGluIG9uZSBvciBib3RoIHJvd3MuCisgICAgYXNzZXJ0LmVxdWFsKGMuY21wKHt9LCB7eTogbmV3IE1lbW9yeUNlbGwodW5kZWZpbmVkKX0pLCAwKTsKKyAgICBhc3NlcnQuaXNBYm92ZShjLmNtcCh7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIC0xMCl9LCB7fSksIDApOworICAgIGFzc2VydC5pc0JlbG93KGMuY21wKHt9LCB7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIDIwKX0pLCAwKTsKKworICAgIC8vIENlbGwgZGVmaW5lZCBpbiBib3RoIHJvd3MKKyAgICBhc3NlcnQuZXF1YWwoYy5jbXAoe3g6IGJ1aWxkU2NhbGFyQ2VsbCgnbXMnLCAwLjAxKX0sCisgICAgICAgIHt4OiBidWlsZFNjYWxhckNlbGwoJ21zJywgMC4wMSl9KSwgMCk7CisgICAgYXNzZXJ0LmlzQWJvdmUoYy5jbXAoe3g6IGJ1aWxkU2NhbGFyQ2VsbCgnbXMnLCAtMSl9LAorICAgICAgICB7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIC0yKX0pLCAwKTsKKyAgICBhc3NlcnQuaXNCZWxvdyhjLmNtcCh7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIDk5OSl9LAorICAgICAgICB7eDogYnVpbGRTY2FsYXJDZWxsKCdtcycsIDEwMDApfSksIDApOworICB9KTsKKworICB0ZXN0KCdjaGVja0ZpZWxkR2V0dGVyJywgZnVuY3Rpb24oKSB7CisgICAgLy8gWmVybyBjZWxscy4KKyAgICB2YXIgZiA9IGZpZWxkR2V0dGVyKCk7CisgICAgdmFyIHJvdyA9IHthOiA1fTsKKyAgICBhc3NlcnQuZXF1YWwoZihyb3cpLCByb3cpOworCisgICAgLy8gT25lIGNlbGwuCisgICAgdmFyIGYgPSBmaWVsZEdldHRlcigncDInKTsKKyAgICBhc3NlcnQuZXF1YWwoZih7cDE6ICd3cm9uZycsIHAyOiAncmlnaHQnfSksICdyaWdodCcpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChmKHtwMTogJ3dyb25nJ30pKTsKKworICAgIC8vIE11bHRpcGxlIGNlbGxzLgorICAgIHZhciBmID0gZmllbGRHZXR0ZXIoJ2InLCAnZCcsICdmJyk7CisgICAgYXNzZXJ0LmVxdWFsKGYoe2E6IDAsIGI6IHtjOiAwLCBkOiB7ZTogMCwgZjogNDJ9fX0pLCA0Mik7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrRXhwYW5kVGFibGVSb3dzUmVjdXJzaXZlbHknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdTaW5nbGUgY29sdW1uJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmRhdGE7IH0sCisgICAgICAgIHdpZHRoOiAnMTAwcHgnCisgICAgICB9CisgICAgXTsKKworICAgIHZhciByb3dzID0gWworICAgICAgeworICAgICAgICBkYXRhOiAnYWxsb2NhdGVkJywKKyAgICAgICAgc3ViUm93czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGRhdGE6ICd2OCcKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGRhdGE6ICdvaWxwYW4nLAorICAgICAgICAgICAgc3ViUm93czogWworICAgICAgICAgICAgICB7IGRhdGE6ICdoZWFwcycgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiAnb2JqZWN0cycgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgZGF0YTogJ3NraWEnLAorICAgICAgICAgICAgc3ViUm93czogWworICAgICAgICAgICAgICB7IGRhdGE6ICd3YXknIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogJ3RvbycgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiAnbWFueScgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiAnc3ViLScgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiAncm93cycgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiAnc28nIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogJ3RoYXQnIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogJ3RoZXknIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogJ3dvdWxkblwndCcgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiAnYmUnIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogJ2F1dG8tJyB9LAorICAgICAgICAgICAgICB7IGRhdGE6ICdleHBhbmRlZCcgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZGF0YTogJ292ZXJoZWFkJywKKyAgICAgICAgc3ViUm93czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGRhdGE6ICdpbnRlcm5hbF9mcmFnbWVudGF0aW9uJworICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgZGF0YTogJ2V4dGVybmFsX2ZyYWdtZW50YXRpb24nLAorICAgICAgICAgICAgc3ViUm93czogW10KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisKKyAgICBleHBhbmRUYWJsZVJvd3NSZWN1cnNpdmVseSh0YWJsZSk7CisKKyAgICAvLyAnYWxsb2NhdGVkJyByb3cgc2hvdWxkIGJlIGV4cGFuZGVkLgorICAgIGFzc2VydC5pc1RydWUodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdKSk7CisKKyAgICAvLyAnYWxsb2NhdGVkL3Y4JyByb3cgY2Fubm90IGJlIGV4cGFuZGVkIChubyBzdWItcm93cykuCisgICAgYXNzZXJ0LmlzRmFsc2UodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLnN1YlJvd3NbMF0pKTsKKworICAgIC8vICdhbGxvY2F0ZWQvb2lscGFuJyByb3cgc2hvdWxkIGJlIGV4cGFuZGVkLgorICAgIGFzc2VydC5pc1RydWUodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLnN1YlJvd3NbMV0pKTsKKworICAgIC8vICdhbGxvY2F0ZWQvc2tpYScgcm93IHNob3VsZCBub3QgYmUgZXhwYW5kZWQgKG1vcmUgdGhhbiAxMCBzdWItcm93cykuCisgICAgYXNzZXJ0LmlzRmFsc2UodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLnN1YlJvd3NbMl0pKTsKKworICAgIC8vICdvdmVyaGVhZCcgcm93IHNob3VsZCBiZSBleHBhbmRlZC4KKyAgICBhc3NlcnQuaXNUcnVlKHRhYmxlLmdldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1sxXSkpOworCisgICAgLy8gJ292ZXJoZWFkL2ludGVybmFsX2ZyYWdtZW50YXRpb24nIGNhbm5vdCBiZSBleHBhbmRlZCAobm8gc3ViLXJvd3MpLgorICAgIGFzc2VydC5pc0ZhbHNlKHRhYmxlLmdldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1sxXS5zdWJSb3dzWzBdKSk7CisKKyAgICAvLyAnb3ZlcmhlYWQvZXh0ZXJuYWxfZnJhZ21lbnRhdGlvbicgY2Fubm90IGJlIGV4cGFuZGVkIChubyBzdWItcm93cykuCisgICAgYXNzZXJ0LmlzRmFsc2UodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzFdLnN1YlJvd3NbMV0pKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tNZW1vcnlDZWxsX2V4dHJhY3RBdHRyaWJ1dGUnLCBmdW5jdGlvbigpIHsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoTWVtb3J5Q2VsbC5leHRyYWN0QXR0cmlidXRlKHVuZGVmaW5lZCkpOworCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKE1lbW9yeUNlbGwuZXh0cmFjdEF0dHJpYnV0ZShuZXcgTWVtb3J5Q2VsbCh1bmRlZmluZWQpKSk7CisKKyAgICB2YXIgYXR0ciA9IG5ldyBTY2FsYXJBdHRyaWJ1dGUoJ2J5dGVzJywgMTAyNCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKE1lbW9yeUNlbGwuZXh0cmFjdEF0dHJpYnV0ZShuZXcgTWVtb3J5Q2VsbChhdHRyKSksIGF0dHIpOworICB9KTsKKworICB0ZXN0KCdjaGVja0FnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHNSZWN1cnNpdmVseScsIGZ1bmN0aW9uKCkgeworICAgIHZhciByb3cgPSB7CisgICAgICB0ZXN0Q2VsbHM6IHsKKyAgICAgICAgYTogYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIDE3KQorICAgICAgfSwKKyAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgeworICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgbm8gdGVzdENlbGxzLgorICAgICAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdENlbGxzOiB7CisgICAgICAgICAgICAgICAgYjogYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIDEwMyksCisgICAgICAgICAgICAgICAgYzogYnVpbGRTdHJpbmdDZWxsKCcnLCAnYXR0cmlidXRlLXNob3VsZC1ub3QtcHJvcGFnYXRlLXVwd2FyZHMnKQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgbm8gc3ViUm93cy4KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3RDZWxsczoge30sCisgICAgICAgICAgICAgIHN1YlJvd3M6IFtdCisgICAgICAgICAgICB9CisgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgdGVzdENlbGxzOiB7CisgICAgICAgICAgICBiOiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgMjApLAorICAgICAgICAgICAgYTogYnVpbGRTY2FsYXJDZWxsKCdieXRlcycsIDEzKQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgXQorICAgIH07CisKKyAgICBhZ2dyZWdhdGVUYWJsZVJvd0NlbGxzUmVjdXJzaXZlbHkocm93LCAndGVzdENlbGxzJyk7CisKKyAgICB2YXIgYXR0ckEgPSByb3cudGVzdENlbGxzLmEuYXR0cjsKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihhdHRyQSwgU2NhbGFyQXR0cmlidXRlKTsKKyAgICBhc3NlcnQuZXF1YWwoYXR0ckEudW5pdHMsICdieXRlcycpOworICAgIGFzc2VydC5lcXVhbChhdHRyQS52YWx1ZSwgMTcpOworCisgICAgdmFyIGF0dHJCID0gcm93LnRlc3RDZWxscy5iLmF0dHI7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2YoYXR0ckIsIFNjYWxhckF0dHJpYnV0ZSk7CisgICAgYXNzZXJ0LmVxdWFsKGF0dHJCLnVuaXRzLCAnYnl0ZXMnKTsKKyAgICBhc3NlcnQuZXF1YWwoYXR0ckIudmFsdWUsIDEyMyk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93LnRlc3RDZWxscy5jLmF0dHIpOworICB9KTsKKworICB0ZXN0KCdjaGVja0FnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2VsbCA9IG5ldyBNZW1vcnlDZWxsKHVuZGVmaW5lZCk7CisgICAgY2VsbC5mb28gPSAnYmFyJzsKKworICAgIHZhciByb3cgPSB7CisgICAgICAvLyBJbnRlbnRpb25hbGx5IG5vIHRlc3RDZWxscy4KKyAgICAgIG90aGVyQ2VsbHM6IHsKKyAgICAgICAgYTogY2VsbAorICAgICAgfQorICAgIH07CisgICAgdmFyIHN1YlJvd3MgPSBbCisgICAgICB7CisgICAgICAgIHRlc3RDZWxsczogeworICAgICAgICAgIGE6IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCAxKQorICAgICAgICB9LAorICAgICAgICBzdWJSb3dzOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgdGVzdENlbGxzOiB7CisgICAgICAgICAgICAgIGM6IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCAxMykKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRlc3RDZWxsczogeworICAgICAgICAgIGE6IGJ1aWxkU2NhbGFyQ2VsbCgnYnl0ZXMnLCAyKSwKKyAgICAgICAgICBiOiBidWlsZFNjYWxhckNlbGwoJ2J5dGVzJywgNSkKKyAgICAgICAgfSwKKyAgICAgICAgb3RoZXJDZWxsczogeworICAgICAgICAgIGE6IGJ1aWxkU2NhbGFyQ2VsbCgnb2JqZWN0cycsIDE1MyksCisgICAgICAgICAgYjogYnVpbGRTdHJpbmdDZWxsKCcnLCAnYXR0cmlidXRlLXNob3VsZC1ub3QtcHJvcGFnYXRlLXVwd2FyZHMnKQorICAgICAgICB9CisgICAgICB9CisgICAgXTsKKworICAgIGFnZ3JlZ2F0ZVRhYmxlUm93Q2VsbHMocm93LCBzdWJSb3dzLCAndGVzdENlbGxzJyk7CisgICAgYWdncmVnYXRlVGFibGVSb3dDZWxscyhyb3csIHN1YlJvd3MsICdvdGhlckNlbGxzJyk7CisKKyAgICB2YXIgdGVzdEF0dHJBID0gcm93LnRlc3RDZWxscy5hLmF0dHI7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2YodGVzdEF0dHJBLCBTY2FsYXJBdHRyaWJ1dGUpOworICAgIGFzc2VydC5lcXVhbCh0ZXN0QXR0ckEudW5pdHMsICdieXRlcycpOworICAgIGFzc2VydC5lcXVhbCh0ZXN0QXR0ckEudmFsdWUsIDMpOworCisgICAgdmFyIHRlc3RBdHRyQiA9IHJvdy50ZXN0Q2VsbHMuYi5hdHRyOworICAgIGFzc2VydC5pbnN0YW5jZU9mKHRlc3RBdHRyQiwgU2NhbGFyQXR0cmlidXRlKTsKKyAgICBhc3NlcnQuZXF1YWwodGVzdEF0dHJCLnVuaXRzLCAnYnl0ZXMnKTsKKyAgICBhc3NlcnQuZXF1YWwodGVzdEF0dHJCLnZhbHVlLCA1KTsKKworICAgIGFzc2VydC5ub3RQcm9wZXJ0eShyb3cudGVzdENlbGxzLCAnYycpOworCisgICAgdmFyIG90aGVyQ2VsbEEgPSByb3cub3RoZXJDZWxscy5hOworICAgIGFzc2VydC5lcXVhbChvdGhlckNlbGxBLmZvbywgJ2JhcicpOworICAgIHZhciBvdGhlckF0dHJBID0gb3RoZXJDZWxsQS5hdHRyOworICAgIGFzc2VydC5pbnN0YW5jZU9mKG90aGVyQXR0ckEsIFNjYWxhckF0dHJpYnV0ZSk7CisgICAgYXNzZXJ0LmVxdWFsKG90aGVyQXR0ckEudW5pdHMsICdvYmplY3RzJyk7CisgICAgYXNzZXJ0LmVxdWFsKG90aGVyQXR0ckEudmFsdWUsIDE1Myk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93Lm90aGVyQ2VsbHMuYi5hdHRyKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTgwZDdlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF92aWV3Lmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9vdmVydmlld19wYW5lLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbWVtb3J5LWR1bXAtdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgfQorCisgICAgI292ZXJ2aWV3X3BhbmUsCisgICAgI2RldGFpbHNfcGFuZV9jb250YWluZXIgeworICAgICAgZmxleDogMCAwIGF1dG87CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHRyLXVpLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZSBpZD0ib3ZlcnZpZXdfcGFuZSI+CisgICAgPC90ci11aS1hLW1lbW9yeS1kdW1wLW92ZXJ2aWV3LXBhbmU+CisgICAgPGRpdiBpZD0iZGV0YWlsc19wYW5lX2NvbnRhaW5lciI+CisgICAgPC9kaXY+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucHJvY2Vzc01lbW9yeUR1bXBzXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLm92ZXJ2aWV3X3BhbmUuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAnc2VsZWN0ZWQtbWVtb3J5LWNlbGwtY2hhbmdlZCcsIHRoaXMudXBkYXRlRGV0YWlsc1BhbmVfLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBzZXQgcHJvY2Vzc01lbW9yeUR1bXBzKHByb2Nlc3NNZW1vcnlEdW1wcykgeworICAgICAgdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfID0gcHJvY2Vzc01lbW9yeUR1bXBzOworICAgICAgdGhpcy4kLm92ZXJ2aWV3X3BhbmUucHJvY2Vzc01lbW9yeUR1bXBzID0gdGhpcy5wcm9jZXNzTWVtb3J5RHVtcHNfOworICAgICAgdGhpcy51cGRhdGVEZXRhaWxzUGFuZV8oKTsKKyAgICB9LAorCisgICAgZ2V0IHByb2Nlc3NNZW1vcnlEdW1wcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZW1vcnlEdW1wc187CisgICAgfSwKKworICAgIHVwZGF0ZURldGFpbHNQYW5lXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLiQuZGV0YWlsc19wYW5lX2NvbnRhaW5lci50ZXh0Q29udGVudCA9ICcnOworICAgICAgdmFyIHNlbGVjdGVkTWVtb3J5Q2VsbCA9IHRoaXMuJC5vdmVydmlld19wYW5lLnNlbGVjdGVkTWVtb3J5Q2VsbDsKKyAgICAgIGlmICghc2VsZWN0ZWRNZW1vcnlDZWxsIHx8ICFzZWxlY3RlZE1lbW9yeUNlbGwuYnVpbGREZXRhaWxzUGFuZSkKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy4kLmRldGFpbHNfcGFuZV9jb250YWluZXIuYXBwZW5kQ2hpbGQoCisgICAgICAgICAgc2VsZWN0ZWRNZW1vcnlDZWxsLmJ1aWxkRGV0YWlsc1BhbmUoKSk7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjODgzNTQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3RfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wcyA9CisgICAgICB0ci51aS5hbmFseXNpcy5jcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzOworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHByb2Nlc3NNZW1vcnlEdW1wcyA9IGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMoKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW1lbW9yeS1kdW1wLXZpZXcnKTsKKyAgICB2aWV3RWwucHJvY2Vzc01lbW9yeUR1bXBzID0gcHJvY2Vzc01lbW9yeUR1bXBzOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworCisgICAgdmFyIG92ZXJ2aWV3UGFuZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHZpZXdFbCwgJ3RyLXVpLWEtbWVtb3J5LWR1bXAtb3ZlcnZpZXctcGFuZScpOworICAgIHZhciBvdmVydmlld1RhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgb3ZlcnZpZXdQYW5lLCAndHItdWktYi10YWJsZScpOworICAgIGFzc2VydC5sZW5ndGhPZihvdmVydmlld1RhYmxlLnRhYmxlUm93cywgMyk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKG92ZXJ2aWV3VGFibGUudGFibGVDb2x1bW5zLCA5KTsKKworICAgIC8vIFNlbGVjdCB0b3RhbHMgb2YgZmlyc3QgcHJvY2Vzcy4KKyAgICBvdmVydmlld1RhYmxlLnNlbGVjdGVkVGFibGVSb3cgPSBvdmVydmlld1RhYmxlLnRhYmxlUm93c1swXTsKKyAgICBvdmVydmlld1RhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXggPSAxOworICAgIHZhciBkZXRhaWxzUGFuZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHZpZXdFbCwgJ3RyLXVpLWEtbWVtb3J5LWR1bXAtdm0tcmVnaW9ucy1kZXRhaWxzLXBhbmUnKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwoCisgICAgICAgIGRldGFpbHNQYW5lLnZtUmVnaW9ucywgcHJvY2Vzc01lbW9yeUR1bXBzWzBdLm1vc3RSZWNlbnRWbVJlZ2lvbnMpOworCisgICAgLy8gU2VsZWN0IFBTUyBvZiBmaXJzdCBwcm9jZXNzLgorICAgIG92ZXJ2aWV3VGFibGUuc2VsZWN0ZWRDb2x1bW5JbmRleCA9IDI7CisgICAgdmFyIGRldGFpbHNQYW5lID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgdmlld0VsLCAndHItdWktYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCgKKyAgICAgICAgZGV0YWlsc1BhbmUudm1SZWdpb25zLCBwcm9jZXNzTWVtb3J5RHVtcHNbMF0ubW9zdFJlY2VudFZtUmVnaW9ucyk7CisKKyAgICAvLyBTZWxlY3QgUFNTIG9mIHRoaXJkIHByb2Nlc3MuCisgICAgb3ZlcnZpZXdUYWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gb3ZlcnZpZXdUYWJsZS50YWJsZVJvd3NbMl07CisgICAgdmFyIGRldGFpbHNQYW5lID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgdmlld0VsLCAndHItdWktYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZScpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChkZXRhaWxzUGFuZSk7CisKKyAgICAvLyBTZWxlY3Qgb2lscGFuIGR1bXAgb2Ygc2Vjb25kIHByb2Nlc3MuCisgICAgb3ZlcnZpZXdUYWJsZS5zZWxlY3RlZENvbHVtbkluZGV4ID0gNzsKKyAgICB2YXIgZGV0YWlsc1BhbmUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgICB2aWV3RWwsICd0ci11aS1hLW1lbW9yeS1kdW1wLWFsbG9jYXRvci1kZXRhaWxzLXBhbmUnKTsKKyAgICB2YXIgZGV0YWlsc1RhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgZGV0YWlsc1BhbmUsICd0ci11aS1iLXRhYmxlJyk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKGRldGFpbHNUYWJsZS50YWJsZVJvd3MsIDEpOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmQ2NjZkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF92bV9yZWdpb25zX2RldGFpbHNfcGFuZS5odG1sCkBAIC0wLDAgKzEsMzcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld191dGlsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9hdHRyaWJ1dGUuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZSI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgICA6aG9zdCB7CisgICAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICB9CisKKyAgICAgICNsYWJlbCB7CisgICAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgICAgICBwYWRkaW5nOiA4cHg7CisKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKKyAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4ZThlOGU7CisgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTsKKworICAgICAgICBmb250LXNpemU6ICAxNXB4OworICAgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgIH0KKworICAgICAgI2NvbnRlbnRzIHsKKyAgICAgICAgZmxleDogMSAwIGF1dG87CisgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CisgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICAgIH0KKworICAgICAgI2NvbnRlbnRzIC5pbmZvLXRleHQgeworICAgICAgICBwYWRkaW5nOiA4cHg7CisgICAgICAgIGNvbG9yOiAjNjY2OworICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImxhYmVsIj5NZW1vcnkgbWFwczwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnRlbnRzIj48L2Rpdj4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIChmdW5jdGlvbigpIHsKKyAgICAvKioKKyAgICAgKiBSdWxlcyBmb3IgY2xhc3NpZnlpbmcgbWVtb3J5IG1hcHMuCisgICAgICoKKyAgICAgKiBUaGVzZSBydWxlcyBhcmUgZGVyaXZlZCBmcm9tIGNvcmUvam5pL2FuZHJvaWRfb3NfRGVidWcuY3BwIGluIEFuZHJvaWQuCisgICAgICovCisgICAgdmFyIENMQVNTSUZJQ0FUSU9OX1JVTEVTID0geworICAgICAgbmFtZTogJ1RvdGFsJywKKyAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgIHsKKyAgICAgICAgICBuYW1lOiAnQW5kcm9pZCcsCisgICAgICAgICAgZmlsZTogL15cL2RldlwvYXNobWVtKD8hXC9saWJjIG1hbGxvYykvLAorICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIG5hbWU6ICdKYXZhIHJ1bnRpbWUnLAorICAgICAgICAgICAgICBmaWxlOiAvXlwvZGV2XC9hc2htZW1cL2RhbHZpay0vLAorICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIG5hbWU6ICdTcGFjZXMnLAorICAgICAgICAgICAgICAgICAgZmlsZTogL1wvZGFsdmlrLShhbGxvY3xtYWlufGxhcmdlIG9iamVjdHxub24gbW92aW5nfHp5Z290ZSkgc3BhY2UvLCAgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnTm9ybWFsJywKKyAgICAgICAgICAgICAgICAgICAgICBmaWxlOiAvXC9kYWx2aWstKGFsbG9jfG1haW4pLworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0xhcmdlJywKKyAgICAgICAgICAgICAgICAgICAgICBmaWxlOiAvXC9kYWx2aWstbGFyZ2Ugb2JqZWN0LworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1p5Z290ZScsCisgICAgICAgICAgICAgICAgICAgICAgZmlsZTogL1wvZGFsdmlrLXp5Z290ZS8KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdOb24tbW92aW5nJywKKyAgICAgICAgICAgICAgICAgICAgICBmaWxlOiAvXC9kYWx2aWstbm9uIG1vdmluZy8KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgbmFtZTogJ0xpbmVhciBBbGxvYycsCisgICAgICAgICAgICAgICAgICBmaWxlOiAvXC9kYWx2aWstTGluZWFyQWxsb2MvCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBuYW1lOiAnSW5kaXJlY3QgUmVmZXJlbmNlIFRhYmxlJywKKyAgICAgICAgICAgICAgICAgIGZpbGU6IC9cL2RhbHZpay1pbmRpcmVjdC5yZWYvCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBuYW1lOiAnQ2FjaGUnLAorICAgICAgICAgICAgICAgICAgZmlsZTogL1wvZGFsdmlrLWppdC1jb2RlLWNhY2hlLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgbmFtZTogJ0FjY291bnRpbmcnCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICBuYW1lOiAnQ3Vyc29yJywKKyAgICAgICAgICAgICAgZmlsZTogL1wvQ3Vyc29yV2luZG93LworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbmFtZTogJ0FzaG1lbScKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBuYW1lOiAnTmF0aXZlIGhlYXAnLAorICAgICAgICAgIGZpbGU6IC9eKChcW2hlYXBcXSl8KFxbYW5vbjopfChcL2RldlwvYXNobWVtXC9saWJjIG1hbGxvYyl8JCkvCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBuYW1lOiAnU3RhY2snLAorICAgICAgICAgIGZpbGU6IC9eXFtzdGFjay8KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdGaWxlcycsCisgICAgICAgICAgZmlsZTogL1wuKCgoKGphcil8KGFwayl8KHR0Zil8KG9kZXgpfChvYXQpfChhcmcpKSQpfChkZXgpfChzbykpLywKKyAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICBuYW1lOiAnc28nLAorICAgICAgICAgICAgICBmaWxlOiAvXC5zby8KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIG5hbWU6ICdqYXInLAorICAgICAgICAgICAgICBmaWxlOiAvXC5qYXIkLworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbmFtZTogJ2FwaycsCisgICAgICAgICAgICAgIGZpbGU6IC9cLmFwayQvCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICBuYW1lOiAndHRmJywKKyAgICAgICAgICAgICAgZmlsZTogL1wudHRmJC8KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIG5hbWU6ICdkZXgnLAorICAgICAgICAgICAgICBmaWxlOiAvXC4oKGRleCl8KG9kZXgkKSkvCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICBuYW1lOiAnb2F0JywKKyAgICAgICAgICAgICAgZmlsZTogL1wub2F0JC8KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIG5hbWU6ICdhcnQnLAorICAgICAgICAgICAgICBmaWxlOiAvXC5hcnQkLworICAgICAgICAgICAgfQorICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdEZXZpY2VzJywKKyAgICAgICAgICBmaWxlOiAvKF5cL2RldlwvKXwoYW5vbl9pbm9kZTpkbWFidWYpLywKKyAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICBuYW1lOiAnR1BVJywKKyAgICAgICAgICAgICAgZmlsZTogL1wvKChudil8KG1hbGkpfChrZ3NsKSkvCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICBuYW1lOiAnRE1BJywKKyAgICAgICAgICAgICAgZmlsZTogL2Fub25faW5vZGU6ZG1hYnVmLworICAgICAgICAgICAgfQorICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIC8vIEFkZCBhIHNlcGFyYXRlIGNhdGVnb3J5IGZvciB0aGUgZGlzY291bnRlZCB0cmFjaW5nIG92ZXJoZWFkIHRvCisgICAgICAgICAgLy8gYXZvaWQgbmVnYXRpdmUgJ1RvdGFsL090aGVyJyBzaXplcy4KKyAgICAgICAgICBuYW1lOiAnRGlzY291bnRlZCB0cmFjaW5nIG92ZXJoZWFkJywKKyAgICAgICAgICBmaWxlOiAvXFtkaXNjb3VudGVkIHRyYWNpbmcgb3ZlcmhlYWRcXS8KKyAgICAgICAgfQorICAgICAgXQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB0cmVlIG9mIG5lc3RlZCByb3dzIChjb250YWluaW5nIG5vIG1tYXBzKSBjb3JyZXNwb25kaW5nIHRvIGEKKyAgICAgKiB0cmVlIG9mIGNsYXNzaWZpY2F0aW9uIHJ1bGVzLgorICAgICAqLworICAgIGZ1bmN0aW9uIGNyZWF0ZUVtcHR5Um93KHJ1bGUpIHsKKyAgICAgIHZhciByb3cgPSB7CisgICAgICAgIHRpdGxlOiBydWxlLm5hbWUsCisgICAgICAgIHJ1bGU6IHJ1bGUsCisgICAgICAgIGNlbGxzOiB7fSwKKyAgICAgICAgc3ViUm93czogW10KKyAgICAgIH07CisgICAgICBpZiAocnVsZS5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkKQorICAgICAgICByb3cuc3ViUm93cyA9IHJ1bGUuY2hpbGRyZW4ubWFwKGNyZWF0ZUVtcHR5Um93KTsKKyAgICAgIHJldHVybiByb3c7CisgICAgfQorCisgICAgZnVuY3Rpb24gaGV4U3RyaW5nKGFkZHJlc3MsIGlzNjRCaXRBZGRyZXNzKSB7CisgICAgICB2YXIgaGV4UGFkZGluZyA9IGlzNjRCaXRBZGRyZXNzID8gJzAwMDAwMDAwMDAwMDAwMDAnIDogJzAwMDAwMDAwJzsKKyAgICAgIGlmIChhZGRyZXNzID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gKGhleFBhZGRpbmcgKyBhZGRyZXNzLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC1oZXhQYWRkaW5nLmxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xhc3NpZnkgYSBtZW1vcnkgbWFwIGFuZCBhZGQgaXQgYXMgYSBsZWFmIHJvdyB0byBhIHRyZWUgb2YgbmVzdGVkIHJvd3MuCisgICAgICovCisgICAgZnVuY3Rpb24gY2xhc3NpZnlWTVJlZ2lvbihyb3csIHZtUmVnaW9uLCBpczY0Qml0QWRkcmVzcykgeworICAgICAgdmFyIHJ1bGUgPSByb3cucnVsZTsKKyAgICAgIGlmIChydWxlID09PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICBydWxlLmNoaWxkcmVuID09PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICBydWxlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkgeworICAgICAgICAvLyBMZWFmIHJ1bGUgKGNyZWF0ZSBhIHN1Yi1yb3cgZm9yIHRoZSBtbWFwKS4KKyAgICAgICAgdmFyIG1hcHBlZEZpbGUgPSB2bVJlZ2lvbi5tYXBwZWRGaWxlIHx8ICcnOworCisgICAgICAgIHZhciBjZWxscyA9IHt9OworICAgICAgICBmdW5jdGlvbiBhZGRDZWxsSWZWYWx1ZURlZmluZWQoY29sdW1uTmFtZSwgYXR0ckNsYXNzLCB1bml0cywgdmFsdWUpIHsKKyAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB2YXIgYXR0ciA9IG5ldyBhdHRyQ2xhc3ModW5pdHMsIHZhbHVlKTsKKyAgICAgICAgICB2YXIgY2VsbCA9IG5ldyB0ci51aS5hbmFseXNpcy5NZW1vcnlDZWxsKGF0dHIpOworICAgICAgICAgIGNlbGxzW2NvbHVtbk5hbWVdID0gY2VsbDsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiBhZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZChjb2x1bW5OYW1lLCB2YWx1ZSkgeworICAgICAgICAgIGFkZENlbGxJZlZhbHVlRGVmaW5lZChjb2x1bW5OYW1lLAorICAgICAgICAgICAgICB0ci5tb2RlbC5TY2FsYXJBdHRyaWJ1dGUsICdieXRlcycsIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBhZGRDZWxsSWZWYWx1ZURlZmluZWQoJ1N0YXJ0IGFkZHJlc3MnLAorICAgICAgICAgICAgdHIubW9kZWwuU3RyaW5nQXR0cmlidXRlLCAnJywKKyAgICAgICAgICAgIGhleFN0cmluZyh2bVJlZ2lvbi5zdGFydEFkZHJlc3MsIGlzNjRCaXRBZGRyZXNzKSk7CisgICAgICAgIGFkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdWaXJ0dWFsIHNpemUnLCB2bVJlZ2lvbi5zaXplSW5CeXRlcyk7CisgICAgICAgIGFkZENlbGxJZlZhbHVlRGVmaW5lZCgnUHJvdGVjdGlvbiBmbGFncycsCisgICAgICAgICAgICB0ci5tb2RlbC5TdHJpbmdBdHRyaWJ1dGUsICcnLAorICAgICAgICAgICAgdm1SZWdpb24ucHJvdGVjdGlvbkZsYWdzVG9TdHJpbmcpOworICAgICAgICBhZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnUFNTJywKKyAgICAgICAgICAgIHZtUmVnaW9uLmJ5dGVTdGF0cy5wcm9wb3J0aW9uYWxSZXNpZGVudCk7CisgICAgICAgIGFkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdQcml2YXRlIGRpcnR5JywKKyAgICAgICAgICAgIHZtUmVnaW9uLmJ5dGVTdGF0cy5wcml2YXRlRGlydHlSZXNpZGVudCk7CisgICAgICAgIGFkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdQcml2YXRlIGNsZWFuJywKKyAgICAgICAgICAgIHZtUmVnaW9uLmJ5dGVTdGF0cy5wcml2YXRlQ2xlYW5SZXNpZGVudCk7CisgICAgICAgIGFkZEJ5dGVzQ2VsbElmVmFsdWVEZWZpbmVkKCdTaGFyZWQgZGlydHknLAorICAgICAgICAgICAgdm1SZWdpb24uYnl0ZVN0YXRzLnNoYXJlZERpcnR5UmVzaWRlbnQpOworICAgICAgICBhZGRCeXRlc0NlbGxJZlZhbHVlRGVmaW5lZCgnU2hhcmVkIGNsZWFuJywKKyAgICAgICAgICAgIHZtUmVnaW9uLmJ5dGVTdGF0cy5zaGFyZWRDbGVhblJlc2lkZW50KTsKKyAgICAgICAgYWRkQnl0ZXNDZWxsSWZWYWx1ZURlZmluZWQoJ1N3YXBwZWQnLAorICAgICAgICAgICAgdm1SZWdpb24uYnl0ZVN0YXRzLnN3YXBwZWQpOworCisgICAgICAgIHJvdy5zdWJSb3dzLnB1c2goe3RpdGxlOiBtYXBwZWRGaWxlLCBjZWxsczogY2VsbHN9KTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICAvLyBOb24tbGVhZiBydWxlIChjbGFzc2lmeSBtbWFwIGZ1cnRoZXIgZG93biB0aGUgdHJlZSkuCisgICAgICBmdW5jdGlvbiB2bVJlZ2lvbk1hdGNoZXNDaGlsZFJ1bGUoY2hpbGRSdWxlKSB7CisgICAgICAgIHZhciBmaWxlUmVnRXhwID0gY2hpbGRSdWxlLmZpbGU7CisgICAgICAgIGlmIChmaWxlUmVnRXhwID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBmaWxlUmVnRXhwLnRlc3Qodm1SZWdpb24ubWFwcGVkRmlsZSk7CisgICAgICB9CisKKyAgICAgIHZhciBtYXRjaGVkQ2hpbGRSdWxlSW5kZXggPSB0ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheSgKKyAgICAgICAgICBydWxlLmNoaWxkcmVuLCB2bVJlZ2lvbk1hdGNoZXNDaGlsZFJ1bGUpOworICAgICAgaWYgKG1hdGNoZWRDaGlsZFJ1bGVJbmRleCA9PT0gLTEpIHsKKyAgICAgICAgLy8gTW1hcCBiZWxvbmdzIHRvIHRoZSAnT3RoZXInIG5vZGUgKGNyZWF0ZWQgbGF6aWx5KS4KKyAgICAgICAgbWF0Y2hlZENoaWxkUnVsZUluZGV4ID0gcnVsZS5jaGlsZHJlbi5sZW5ndGg7CisgICAgICAgIGlmIChtYXRjaGVkQ2hpbGRSdWxlSW5kZXggPj0gcm93LnN1YlJvd3MubGVuZ3RoKSB7CisgICAgICAgICAgcm93LnN1YlJvd3MucHVzaCh7CisgICAgICAgICAgICB0aXRsZTogJ090aGVyJywKKyAgICAgICAgICAgIGNlbGxzOiB7fSwKKyAgICAgICAgICAgIHN1YlJvd3M6IFtdCisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgY2xhc3NpZnlWTVJlZ2lvbigKKyAgICAgICAgICByb3cuc3ViUm93c1ttYXRjaGVkQ2hpbGRSdWxlSW5kZXhdLCB2bVJlZ2lvbiwgaXM2NEJpdEFkZHJlc3MpOworICAgIH0KKworICAgIFBvbHltZXIoeworICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogQ29uc2lkZXIgc2hhcmluZyBtb3JlIGNvZGUgYmV0d2VlbgorICAgICAgLy8gdHItdWktYS1tZW1vcnktZHVtcC1hbGxvY2F0b3ItZGV0YWlscy1wYW5lIGFuZAorICAgICAgLy8gdHItdWktYS1tZW1vcnktZHVtcC12bS1yZWdpb25zLWRldGFpbHMtcGFuZSAoZS5nLiBieSBkZWZpbmluZyBhIGNvbW1vbgorICAgICAgLy8gYmFzZSBjbGFzcyB0ci1jLW1lbW9yeS1kdW1wLWRldGFpbHMtcGFuZSkuCisKKyAgICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnZtUmVnaW9uc18gPSB1bmRlZmluZWQ7CisgICAgICB9LAorCisgICAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgICB9LAorCisgICAgICBzZXQgdm1SZWdpb25zKHZtUmVnaW9ucykgeworICAgICAgICB0aGlzLnZtUmVnaW9uc18gPSB2bVJlZ2lvbnM7CisgICAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgICB9LAorCisgICAgICBnZXQgdm1SZWdpb25zKCkgeworICAgICAgICByZXR1cm4gdGhpcy52bVJlZ2lvbnNfOworICAgICAgfSwKKworICAgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy4kLmNvbnRlbnRzLnRleHRDb250ZW50ID0gJyc7CisKKyAgICAgICAgaWYgKHRoaXMudm1SZWdpb25zXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdmFyIGluZm9UZXh0ID0gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgIHRoaXMuJC5jb250ZW50cy5hcHBlbmRDaGlsZChpbmZvVGV4dCk7CisgICAgICAgICAgaW5mb1RleHQuY2xhc3NMaXN0LmFkZCgnaW5mby10ZXh0Jyk7CisgICAgICAgICAgaW5mb1RleHQuaW5uZXJUZXh0ID0gJ05vIG1lbW9yeSBtYXBzIHNlbGVjdGVkJzsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlUm93c18oKTsKKyAgICAgICAgdmFyIGNvbHVtbnMgPSB0aGlzLmNyZWF0ZUNvbHVtbnNfKHJvd3MpOworCisgICAgICAgIHZhciB0YWJsZSA9IHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICAgJ3RyLXVpLWItdGFibGUnKTsKKyAgICAgICAgdGhpcy4kLmNvbnRlbnRzLmFwcGVuZENoaWxkKHRhYmxlKTsKKyAgICAgICAgdGFibGUuc3VwcG9ydHNTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworCisgICAgICAgIC8vIFRPRE8ocGV0cmNlcm1hayk6IFRoaXMgY2FuIGJlIHF1aXRlIHNsb3cuIENvbnNpZGVyIGRvaW5nIHRoaXMgc29tZWhvdworICAgICAgICAvLyBhc3luY2hyb25vdXNseS4KKyAgICAgICAgdGFibGUucmVidWlsZCgpOworCisgICAgICAgIHRyLnVpLmFuYWx5c2lzLmV4cGFuZFRhYmxlUm93c1JlY3Vyc2l2ZWx5KHRhYmxlKTsKKyAgICAgIH0sCisKKyAgICAgIGNyZWF0ZVJvd3NfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogRmlndXJlIG91dCBpZiB0aGVyZSdzIGEgY2xlYW5lciB3YXkgdG8gZG8gdGhpcy4KKyAgICAgICAgdmFyIGlzNjRCaXRBZGRyZXNzID0gdGhpcy52bVJlZ2lvbnNfLnNvbWUoZnVuY3Rpb24odm1SZWdpb24pIHsKKyAgICAgICAgICBpZiAodm1SZWdpb24uc3RhcnRBZGRyZXNzID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgcmV0dXJuIHZtUmVnaW9uLnN0YXJ0QWRkcmVzcyA+PSA0Mjk0OTY3Mjk2IC8qIDJeMzIgKi87CisgICAgICAgIH0pOworCisgICAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSB0cmVlIHN0cnVjdHVyZSBvZiByb3dzLgorICAgICAgICB2YXIgcm9vdFJvdyA9IGNyZWF0ZUVtcHR5Um93KENMQVNTSUZJQ0FUSU9OX1JVTEVTKTsKKworICAgICAgICAvLyBDbGFzc2lmeSB0aGUgbW1hcHMuCisgICAgICAgIHRoaXMudm1SZWdpb25zXy5tYXAoZnVuY3Rpb24odm1SZWdpb24pIHsKKyAgICAgICAgICBjbGFzc2lmeVZNUmVnaW9uKHJvb3RSb3csIHZtUmVnaW9uLCBpczY0Qml0QWRkcmVzcyk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEFnZ3JlZ2F0ZSBhdHRyaWJ1dGVzIG9mIHRoZSBtbWFwcy4KKyAgICAgICAgdHIudWkuYW5hbHlzaXMuYWdncmVnYXRlVGFibGVSb3dDZWxsc1JlY3Vyc2l2ZWx5KHJvb3RSb3csICdjZWxscycpOworCisgICAgICAgIHJldHVybiBbcm9vdFJvd107CisgICAgICB9LAorCisgICAgICBjcmVhdGVDb2x1bW5zXzogZnVuY3Rpb24ocm93cykgeworICAgICAgICB2YXIgdGl0bGVDb2x1bW4gPSB7CisgICAgICAgICAgdGl0bGU6ICdNYXBwZWQgZmlsZScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeworICAgICAgICAgICAgcmV0dXJuIHJvdy50aXRsZTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHdpZHRoOiAnMjAwcHgnLAorICAgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgICAgcmV0dXJuIHJvd0EudGl0bGUubG9jYWxlQ29tcGFyZShyb3dCLnRpdGxlKTsKKyAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgdmFyIGF0dHJpYnV0ZUNvbHVtbnMgPSB0ci51aS5hbmFseXNpcy5NZW1vcnlDb2x1bW4uZnJvbVJvd3MoCisgICAgICAgICAgICByb3dzLCAnY2VsbHMnKTsKKyAgICAgICAgdHIudWkuYW5hbHlzaXMuTWVtb3J5Q29sdW1uLnNwYWNlRXF1YWxseShhdHRyaWJ1dGVDb2x1bW5zKTsKKworICAgICAgICB2YXIgY29sdW1ucyA9IFt0aXRsZUNvbHVtbl0uY29uY2F0KGF0dHJpYnV0ZUNvbHVtbnMpOworICAgICAgICByZXR1cm4gY29sdW1uczsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSkoKTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF92bV9yZWdpb25zX2RldGFpbHNfcGFuZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkxOWVkZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdm1fcmVnaW9uc19kZXRhaWxzX3BhbmVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgIGhyZWY9Ii91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF92bV9yZWdpb25zX2RldGFpbHNfcGFuZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFZNUmVnaW9uID0gdHIubW9kZWwuVk1SZWdpb247CisKKyAgZnVuY3Rpb24gY3JlYXRlVk1SZWdpb25zKCkgeworICAgIHJldHVybiBbCisgICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7CisgICAgICAgIG1hcHBlZEZpbGU6ICcvbGliL2Nocm9tZS5zbycsCisgICAgICAgIHN0YXJ0QWRkcmVzczogNjU1MzYsCisgICAgICAgIHNpemVJbkJ5dGVzOiA1MzY4NzA5MTIsCisgICAgICAgIHByb3RlY3Rpb25GbGFnczogVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfAorICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX0VYRUNVVEUsCisgICAgICAgIGJ5dGVTdGF0czogeworICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiA4MTkyCisgICAgICAgIH0KKyAgICAgIH0pLAorICAgICAgVk1SZWdpb24uZnJvbURpY3QoeworICAgICAgICBtYXBwZWRGaWxlOiAnL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAnLAorICAgICAgICBzdGFydEFkZHJlc3M6IDE0MDI5Njk4MzE1MDU5MiwKKyAgICAgICAgc2l6ZUluQnl0ZXM6IDIwOTcxNTIsCisgICAgICAgIHByb3RlY3Rpb25GbGFnczogMCwKKyAgICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgICAgcHJvcG9ydGlvbmFsUmVzaWRlbnQ6IDAKKyAgICAgICAgfQorICAgICAgfSksCisgICAgICBWTVJlZ2lvbi5mcm9tRGljdCh7CisgICAgICAgIHN0YXJ0QWRkcmVzczogMTA5OTUxMTYyNzc3NjAsCisgICAgICAgIHNpemVJbkJ5dGVzOiAyMTQ3NDgzNjQ4LAorICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFEIHwKKyAgICAgICAgICAgIFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19XUklURSwKKyAgICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDAsCisgICAgICAgICAgc3dhcHBlZDogMAorICAgICAgICB9CisgICAgICB9KSwKKyAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgc3RhcnRBZGRyZXNzOiAxMjA5NDYyNzkwNTUzNiwKKyAgICAgICAgc2l6ZUluQnl0ZXM6IDIxNDc0ODM2NDgsCisgICAgICAgIHByb3RlY3Rpb25GbGFnczogVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfAorICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1dSSVRFLAorICAgICAgICBieXRlU3RhdHM6IHsKKyAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogMCwKKyAgICAgICAgICBzd2FwcGVkOiAwCisgICAgICAgIH0KKyAgICAgIH0pLAorICAgICAgVk1SZWdpb24uZnJvbURpY3QoeworICAgICAgICBtYXBwZWRGaWxlOiAnL2Rldi9hc2htZW0vZGFsdmlrLXp5Z290ZSBzcGFjZScsCisgICAgICAgIHN0YXJ0QWRkcmVzczogMTMxOTQxMzk1MzMzMTIsCisgICAgICAgIHNpemVJbkJ5dGVzOiAxMDAsCisgICAgICAgIHByb3RlY3Rpb25GbGFnczogVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX1JFQUQgfAorICAgICAgICAgICAgVk1SZWdpb24uUFJPVEVDVElPTl9GTEFHX0VYRUNVVEUsCisgICAgICAgIGJ5dGVTdGF0czogeworICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiAxMDAsCisgICAgICAgICAgcHJpdmF0ZURpcnR5UmVzaWRlbnQ6IDAsCisgICAgICAgICAgc3dhcHBlZDogMAorICAgICAgICB9CisgICAgICB9KSwKKyAgICAgIFZNUmVnaW9uLmZyb21EaWN0KHsKKyAgICAgICAgbWFwcGVkRmlsZTogJy9kZXYvYXNobWVtL2xpYmMgbWFsbG9jJywKKyAgICAgICAgc3RhcnRBZGRyZXNzOiAxNDI5MzY1MTE2MTA4OCwKKyAgICAgICAgc2l6ZUluQnl0ZXM6IDIwMCwKKyAgICAgICAgcHJvdGVjdGlvbkZsYWdzOiBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfUkVBRCB8CisgICAgICAgICAgICBWTVJlZ2lvbi5QUk9URUNUSU9OX0ZMQUdfRVhFQ1VURSwKKyAgICAgICAgYnl0ZVN0YXRzOiB7CisgICAgICAgICAgcHJvcG9ydGlvbmFsUmVzaWRlbnQ6IDIwMCwKKyAgICAgICAgICBwcml2YXRlRGlydHlSZXNpZGVudDogMCwKKyAgICAgICAgICBzd2FwcGVkOiAwCisgICAgICAgIH0KKyAgICAgIH0pCisgICAgXTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrUm93VmFsdWUocm93LCBjb2x1bW4sIGV4cGVjdGVkVmFsdWUpIHsKKyAgICB2YXIgdmFsdWUgPSBjb2x1bW4udmFsdWUocm93KTsKKyAgICBpZiAodHlwZW9mKGV4cGVjdGVkVmFsdWUpID09PSAnbnVtYmVyJykKKyAgICAgIHZhbHVlID0gdmFsdWUubnVtQnl0ZXM7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLCBleHBlY3RlZFZhbHVlKTsKKyAgfQorCisgIHRlc3QoJ2luc3RhbnRpYXRlX2VtcHR5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICd0ci11aS1hLW1lbW9yeS1kdW1wLXZtLXJlZ2lvbnMtZGV0YWlscy1wYW5lJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX25vbkVtcHR5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZtUmVnaW9ucyA9IGNyZWF0ZVZNUmVnaW9ucygpOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICd0ci11aS1hLW1lbW9yeS1kdW1wLXZtLXJlZ2lvbnMtZGV0YWlscy1wYW5lJyk7CisgICAgdmlld0VsLnZtUmVnaW9ucyA9IHZtUmVnaW9uczsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKworICAgIHZhciB0YWJsZSA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHZpZXdFbCwgJ3RyLXVpLWItdGFibGUnKTsKKworICAgIHZhciBjb2x1bW5zID0gdGFibGUudGFibGVDb2x1bW5zOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKGNvbHVtbnMsIDcpOworICAgIHZhciB0aXRsZUNvbHVtbiA9IGNvbHVtbnNbMF07CisgICAgdmFyIHZpcnR1YWxTaXplQ29sdW1uID0gY29sdW1uc1sxXTsKKyAgICB2YXIgcHJvcG9ydGlvbmFsUmVzaWRlbnRDb2x1bW4gPSBjb2x1bW5zWzJdOworICAgIHZhciBwcml2YXRlRGlydHlSZXNpZGVudENvbHVtbiA9IGNvbHVtbnNbM107CisgICAgdmFyIHN3YXBwZWRDb2x1bW4gPSBjb2x1bW5zWzRdOworICAgIHZhciBzdGFydEFkZHJlc3NDb2x1bW4gPSBjb2x1bW5zWzVdOworICAgIHZhciBwcm90ZWN0aW9uRmxhZ3NDb2x1bW4gPSBjb2x1bW5zWzZdOworCisgICAgZnVuY3Rpb24gY2hlY2tSb3cocm93LCBleHBlY3RlZFRpdGxlLCBleHBlY3RlZFZpcnR1YWxTaXplLAorICAgICAgICBleHBlY3RlZFByb3BvcnRpb25hbFJlc2lkZW50LCBleHBlY3RlZFByaXZhdGVEaXJ0eVJlc2lkZW50LAorICAgICAgICBleHBlY3RlZFN3YXBwZWQsIGV4cGVjdGVkU3RhcnRBZGRyZXNzLCBleHBlY3RlZFByb3RlY3Rpb25GbGFncywKKyAgICAgICAgZXhwZWN0ZWRTdWJSb3dDb3VudCkgeworICAgICAgY2hlY2tSb3dWYWx1ZShyb3csIHRpdGxlQ29sdW1uLCBleHBlY3RlZFRpdGxlKTsKKyAgICAgIGNoZWNrUm93VmFsdWUocm93LCB2aXJ0dWFsU2l6ZUNvbHVtbiwgZXhwZWN0ZWRWaXJ0dWFsU2l6ZSk7CisgICAgICBjaGVja1Jvd1ZhbHVlKAorICAgICAgICAgIHJvdywgcHJvcG9ydGlvbmFsUmVzaWRlbnRDb2x1bW4sIGV4cGVjdGVkUHJvcG9ydGlvbmFsUmVzaWRlbnQpOworICAgICAgY2hlY2tSb3dWYWx1ZSgKKyAgICAgICAgICByb3csIHByaXZhdGVEaXJ0eVJlc2lkZW50Q29sdW1uLCBleHBlY3RlZFByaXZhdGVEaXJ0eVJlc2lkZW50KTsKKyAgICAgIGNoZWNrUm93VmFsdWUocm93LCBzd2FwcGVkQ29sdW1uLCBleHBlY3RlZFN3YXBwZWQpOworICAgICAgY2hlY2tSb3dWYWx1ZShyb3csIHN0YXJ0QWRkcmVzc0NvbHVtbiwgZXhwZWN0ZWRTdGFydEFkZHJlc3MpOworICAgICAgY2hlY2tSb3dWYWx1ZShyb3csIHByb3RlY3Rpb25GbGFnc0NvbHVtbiwgZXhwZWN0ZWRQcm90ZWN0aW9uRmxhZ3MpOworCisgICAgICBpZiAoZXhwZWN0ZWRTdWJSb3dDb3VudCA9PT0gdW5kZWZpbmVkKQorICAgICAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93LnN1YlJvd3MpOworICAgICAgZWxzZQorICAgICAgICBhc3NlcnQubGVuZ3RoT2Yocm93LnN1YlJvd3MsIGV4cGVjdGVkU3ViUm93Q291bnQpOworICAgIH0KKworICAgIC8vIENoZWNrIHRoZSByb3dzIG9mIHRoZSB0YWJsZS4KKyAgICB2YXIgcm93cyA9IHRhYmxlLnRhYmxlUm93czsKKyAgICBhc3NlcnQubGVuZ3RoT2Yocm93cywgMSk7CisKKyAgICB2YXIgdG90YWxSb3cgPSByb3dzWzBdOworICAgIGNoZWNrUm93KHRvdGFsUm93LCAnVG90YWwnLCA0ODMzOTM1NjYwLCA4NDkyLCAwLCAwLCAnJywgJycsIDcpOworCisgICAgdmFyIGFuZHJvaWRSb3cgPSB0b3RhbFJvdy5zdWJSb3dzWzBdOworICAgIGNoZWNrUm93KGFuZHJvaWRSb3csICdBbmRyb2lkJywgMTAwLCAxMDAsIDAsIDAsICcnLCAnJywgMyk7CisKKyAgICB2YXIgamF2YVJ1bnRpbWVSb3cgPSBhbmRyb2lkUm93LnN1YlJvd3NbMF07CisgICAgY2hlY2tSb3coamF2YVJ1bnRpbWVSb3csICdKYXZhIHJ1bnRpbWUnLCAxMDAsIDEwMCwgMCwgMCwgJycsICcnLCA1KTsKKworICAgIHZhciBzcGFjZXNSb3cgPSBqYXZhUnVudGltZVJvdy5zdWJSb3dzWzBdOworICAgIGNoZWNrUm93KHNwYWNlc1JvdywgJ1NwYWNlcycsIDEwMCwgMTAwLCAwLCAwLCAnJywgJycsIDQpOworCisgICAgdmFyIG5vcm1hbFJvdyA9IHNwYWNlc1Jvdy5zdWJSb3dzWzBdOworICAgIGNoZWNrUm93KG5vcm1hbFJvdywgJ05vcm1hbCcsICcnLCAnJywgJycsICcnLCAnJywgJycsIDApOworCisgICAgdmFyIGZpbGVzUm93ID0gdG90YWxSb3cuc3ViUm93c1szXTsKKyAgICBjaGVja1JvdyhmaWxlc1JvdywgJ0ZpbGVzJywgNTM4OTY4MDY0LCA4MTkyLCAnJywgJycsICcnLCAnJywgNyk7CisKKyAgICB2YXIgc29Sb3cgPSBmaWxlc1Jvdy5zdWJSb3dzWzBdOworICAgIGNoZWNrUm93KHNvUm93LCAnc28nLCA1Mzg5NjgwNjQsIDgxOTIsICcnLCAnJywgJycsICcnLCAyKTsKKworICAgIHZhciBtbWFwQ2hyb21lUm93ID0gc29Sb3cuc3ViUm93c1swXTsKKyAgICBjaGVja1JvdyhtbWFwQ2hyb21lUm93LCAnL2xpYi9jaHJvbWUuc28nLCA1MzY4NzA5MTIsIDgxOTIsICcnLCAnJywKKyAgICAgICAgJzAwMDAwMDAwMDAwMTAwMDAnLCAnci14JywgdW5kZWZpbmVkKTsKKworICAgIHZhciBtbWFwTGliWDExUm93ID0gc29Sb3cuc3ViUm93c1sxXTsKKyAgICBjaGVja1JvdyhtbWFwTGliWDExUm93LCAnL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJYMTEuc28uNi4zLjAnLAorICAgICAgICAyMDk3MTUyLCAwLCAnJywgJycsICcwMDAwN2Y5OTZmZDgwMDAwJywgJy0tLScsIHVuZGVmaW5lZCk7CisKKyAgICB2YXIgb3RoZXJSb3cgPSB0b3RhbFJvdy5zdWJSb3dzWzZdOworICAgIGNoZWNrUm93KG90aGVyUm93LCAnT3RoZXInLCA0Mjk0OTY3Mjk2LCAnJywgMCwgMCwgJycsICcnLCAyKTsKKworICAgIHZhciBtbWFwT3RoZXIyUm93ID0gb3RoZXJSb3cuc3ViUm93c1sxXTsKKyAgICBjaGVja1JvdyhtbWFwT3RoZXIyUm93LCAnJywgMjE0NzQ4MzY0OCwgJycsIDAsIDAsICcwMDAwMGIwMDAwMDAwMDAwJywKKyAgICAgICAgJ3J3LScsIHVuZGVmaW5lZCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2EzYTA5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9hc3luY19zbGljZV9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktYXN5bmMtc2xpY2Utc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldyBpZD0iY29udGVudCI+PC90ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3PgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpIHsKKyAgICAgIGlmICghdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24oYXN5bmNFdmVudCkgeworICAgICAgICBpZiAoIWFzeW5jRXZlbnQuYXNzb2NpYXRlZEV2ZW50cykKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIGFzeW5jRXZlbnQuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgc2VsZWN0aW9uLnB1c2goZXZlbnQpOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGgpCisgICAgICAgIHJldHVybiBzZWxlY3Rpb247CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2FzeW5jX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfYXN5bmNfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlODY1MjkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2FzeW5jX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIG5ld0FzeW5jU2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXg7CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgdDEuYXN5bmNTbGljZUdyb3VwLnB1c2gobmV3QXN5bmNTbGljZUV4KHsKKyAgICAgIHRpdGxlOiAnYScsCisgICAgICBzdGFydDogMTAsCisgICAgICBlbmQ6IDIwLAorICAgICAgc3RhcnRUaHJlYWQ6IHQxLAorICAgICAgZW5kVGhyZWFkOiB0MQorICAgIH0pKTsKKyAgICB0MS5hc3luY1NsaWNlR3JvdXAucHVzaChuZXdBc3luY1NsaWNlRXgoeworICAgICAgdGl0bGU6ICdiJywKKyAgICAgIHN0YXJ0OiAyNSwKKyAgICAgIGVuZDogNDAsCisgICAgICBzdGFydFRocmVhZDogdDEsCisgICAgICBlbmRUaHJlYWQ6IHQxCisgICAgfSkpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKHQxLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0pOworICAgIHNlbGVjdGlvbi5wdXNoKHQxLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMV0pOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktYXN5bmMtc2xpY2Utc3ViLXZpZXcnKTsKKyAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2NwdV9zbGljZV9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYjg2MTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2NwdV9zbGljZV9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLWNwdS1zbGljZS1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICAjY29udGVudCB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldyBpZD0iY29udGVudCI+PC90ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3PgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLiQuY29udGVudC5ldmVudHNIYXZlU3ViUm93cyA9IGZhbHNlOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2NwdV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2NwdV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U1NGU0OQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfY3B1X3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci9saW51eF9wZXJmL2Z0cmFjZV9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfY3B1X3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gY3JlYXRlQmFzaWNNb2RlbCgpIHsKKyAgICB2YXIgbGluZXMgPSBbCisgICAgICAnQW5kcm9pZC5sYXVuY2hlci01ODQgICBbMDAxXSBkLi4zIDEyNjIyLjUwNjg5MDogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QW5kcm9pZC5sYXVuY2hlciBwcmV2X3BpZD01ODQgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIrID09PiBuZXh0X2NvbW09QmluZGVyXzEgbmV4dF9waWQ9MjE3IG5leHRfcHJpbz0xMjAnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSBkLi4zIDEyNjIyLjUwNjkxODogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QmluZGVyXzEgcHJldl9waWQ9MjE3IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1EID09PiBuZXh0X2NvbW09QW5kcm9pZC5sYXVuY2hlciBuZXh0X3BpZD01ODQgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAnQW5kcm9pZC5sYXVuY2hlci01ODQgICBbMDAxXSBkLi40IDEyNjIyLjUwNjkzNjogc2NoZWRfd2FrZXVwOiBjb21tPUJpbmRlcl8xIHBpZD0yMTcgcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9jcHU9MDAxJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjMgMTI2MjIuNTA2OTUwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1BbmRyb2lkLmxhdW5jaGVyIHByZXZfcGlkPTU4NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UisgPT0+IG5leHRfY29tbT1CaW5kZXJfMSBuZXh0X3BpZD0yMTcgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIC4uLjEgMTI2MjIuNTA3MDU3OiB0cmFjaW5nX21hcmtfd3JpdGU6IEJ8MTI4fHF1ZXVlQnVmZmVyJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gLi4uMSAxMjYyMi41MDcxNzU6IHRyYWNpbmdfbWFya193cml0ZTogRScsCisgICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIGQuLjMgMTI2MjIuNTA3MjUzOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1CaW5kZXJfMSBwcmV2X3BpZD0yMTcgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVMgPT0+IG5leHRfY29tbT1BbmRyb2lkLmxhdW5jaGVyIG5leHRfcGlkPTU4NCBuZXh0X3ByaW89MTIwJyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIF07CisKKyAgICByZXR1cm4gbmV3IHRyLk1vZGVsKGxpbmVzLmpvaW4oJ1xuJyksIGZhbHNlKTsKKyAgfQorCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVCYXNpY01vZGVsKCk7CisgICAgdmFyIGNwdSA9IG0ua2VybmVsLmNwdXNbMV07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChjcHUpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKGNwdS5zbGljZXNbMF0pOworICAgIHNlbGVjdGlvbi5wdXNoKGNwdS5zbGljZXNbMV0pOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktY3B1LXNsaWNlLXN1Yi12aWV3Jyk7CisgICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X2RldGFpbHNfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfZGV0YWlsc190YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5N2IzMWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X2RldGFpbHNfdGFibGUuaHRtbApAQCAtMCwwICsxLDMxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9zdGFtcF9zcGFuLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLXVpLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZSc+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgfQorICAgICN0YWJsZSB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CisgICAgfQorCisgICAgI3RpdGxldGFibGUgeworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgfQorCisgICAgI3RpdGxlLWluZm8geworICAgICAgZm9udC1zaXplOiAxMnB4OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDx0ci11aS1iLXRhYmxlIGlkPSJ0aXRsZXRhYmxlIj4KKyAgICA8L3RyLXVpLWItdGFibGU+CisgICAgPHRyLXVpLWItdGFibGUgaWQ9InRhYmxlIj4KKyAgICA8L3RyLXVpLWItdGFibGU+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fID0gdHJ1ZTsKKyAgICAgIHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfID0gdHJ1ZTsKKyAgICB9LAorCisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5pbml0VGl0bGVUYWJsZV8oKTsKKyAgICB9LAorCisgICAgZ2V0IGV2ZW50c0hhdmVEdXJhdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl87CisgICAgfSwKKworICAgIHNldCBldmVudHNIYXZlRHVyYXRpb24oZXZlbnRzSGF2ZUR1cmF0aW9uKSB7CisgICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSBldmVudHNIYXZlRHVyYXRpb247CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgZXZlbnRzSGF2ZVN1YlJvd3MoKSB7CisgICAgICByZXR1cm4gdGhpcy5ldmVudHNIYXZlU3ViUm93c187CisgICAgfSwKKworICAgIHNldCBldmVudHNIYXZlU3ViUm93cyhldmVudHNIYXZlU3ViUm93cykgeworICAgICAgdGhpcy5ldmVudHNIYXZlU3ViUm93c18gPSBldmVudHNIYXZlU3ViUm93czsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25fOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbl87CisKKyAgICAgIHRoaXMudXBkYXRlVGl0bGVUYWJsZV8oKTsKKworICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSBbXTsKKyAgICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlRm9vdGVyUm93cyA9IFtdOworICAgICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBzdW1tYXJ5ID0gbmV3IHRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KAorICAgICAgICAgICdUb3RhbHMnLCB0aGlzLnNlbGVjdGlvbl8pOworICAgICAgdGhpcy51cGRhdGVDb2x1bW5zXyhzdW1tYXJ5KTsKKyAgICAgIHRoaXMudXBkYXRlUm93c18oc3VtbWFyeSk7CisgICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOworICAgIH0sCisKKyAgICBpbml0VGl0bGVUYWJsZV86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLnRpdGxldGFibGU7CisKKyAgICAgIHRhYmxlLnNob3dIZWFkZXIgPSBmYWxzZTsKKyAgICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IFsKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnVGl0bGUnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy50aXRsZTsgfSwKKyAgICAgICAgICB3aWR0aDogJzM1MHB4JworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdWYWx1ZScsCisgICAgICAgICAgd2lkdGg6ICcxMDAlJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgICByZXR1cm4gcm93LnZhbHVlOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgXTsKKyAgICB9LAorCisgICAgdXBkYXRlVGl0bGVUYWJsZV86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHRpdGxlOworICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXyAmJiB0aGlzLnNlbGVjdGlvbl8ubGVuZ3RoKQorICAgICAgICB0aXRsZSA9IHRoaXMuc2VsZWN0aW9uX1swXS50aXRsZTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGl0bGUgPSAnPE5vIHNlbGVjdGlvbj4nOworCisgICAgICB2YXIgdGFibGUgPSB0aGlzLiQudGl0bGV0YWJsZTsKKyAgICAgIHRhYmxlLnRhYmxlUm93cyA9IFt7CisgICAgICAgIHRpdGxlOiAnVGl0bGUnLAorICAgICAgICB2YWx1ZTogdGl0bGUKKyAgICAgIH1dOworICAgIH0sCisKKyAgICB1cGRhdGVDb2x1bW5zXzogZnVuY3Rpb24oc3VtbWFyeSkgeworICAgICAgdmFyIGhhc0NwdURhdGE7CisgICAgICBpZiAoc3VtbWFyeS5jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQorICAgICAgICBoYXNDcHVEYXRhID0gdHJ1ZTsKKyAgICAgIGlmIChzdW1tYXJ5LmNwdVNlbGZUaW1lICE9PSB1bmRlZmluZWQpCisgICAgICAgIGhhc0NwdURhdGEgPSB0cnVlOworCisgICAgICB2YXIgY29sV2lkdGhQZXJjZW50YWdlOworICAgICAgaWYgKGhhc0NwdURhdGEpCisgICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICcyMCUnOworICAgICAgZWxzZQorICAgICAgICBjb2xXaWR0aFBlcmNlbnRhZ2UgPSAnMzMuMzMzMyUnOworCisgICAgICB2YXIgdGltZVNwYW5Db25maWcgPSB7b3duZXJEb2N1bWVudDogdGhpcy5vd25lckRvY3VtZW50fTsKKyAgICAgIHZhciBjb2x1bW5zID0gW107CisKKyAgICAgIGNvbHVtbnMucHVzaCh7CisgICAgICAgIHRpdGxlOiAnU3RhcnQnLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgaWYgKHJvdy5fX3Byb3RvX18gPT09IHRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5LnByb3RvdHlwZSkgeworICAgICAgICAgICAgcmV0dXJuIHJvdy50aXRsZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgICAgbGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiBuZXcgdHIubW9kZWwuRXZlbnRTZXQocm93LmV2ZW50KTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgICBsaW5rRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbigKKyAgICAgICAgICAgICAgcm93LnN0YXJ0LCB0aW1lU3BhbkNvbmZpZykpOworICAgICAgICAgIHJldHVybiBsaW5rRWw7CisgICAgICAgIH0sCisgICAgICAgIHdpZHRoOiAnMzUwcHgnLAorICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKKyAgICAgICAgICByZXR1cm4gcm93QS5zdGFydCAtIHJvd0Iuc3RhcnQ7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgICAgICBpZiAodGhpcy5ldmVudHNIYXZlRHVyYXRpb25fKSB7CisgICAgICAgIGNvbHVtbnMucHVzaCh7CisgICAgICAgICAgdGl0bGU6ICdXYWxsIER1cmF0aW9uIChtcyknLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHJldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKAorICAgICAgICAgICAgICAgIHJvdy5kdXJhdGlvbiwgdGltZVNwYW5Db25maWcpOworICAgICAgICAgIH0sCisgICAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLAorICAgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgICAgcmV0dXJuIHJvd0EuZHVyYXRpb24gLSByb3dCLmR1cmF0aW9uOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIGlmICh0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gJiYgaGFzQ3B1RGF0YSkgeworICAgICAgICBjb2x1bW5zLnB1c2goeworICAgICAgICAgIHRpdGxlOiAnQ1BVIER1cmF0aW9uIChtcyknLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHJldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKAorICAgICAgICAgICAgICAgIHJvdy5jcHVEdXJhdGlvbiwgdGltZVNwYW5Db25maWcpOworICAgICAgICAgIH0sCisgICAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLAorICAgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgICAgcmV0dXJuIHJvd0EuY3B1RHVyYXRpb24gLSByb3dCLmNwdUR1cmF0aW9uOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIGlmICh0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyAmJiB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8pIHsKKyAgICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ1NlbGYgdGltZSAobXMpJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgICByZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3BhbigKKyAgICAgICAgICAgICAgICByb3cuc2VsZlRpbWUsIHRpbWVTcGFuQ29uZmlnKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKKyAgICAgICAgICAgIHJldHVybiByb3dBLnNlbGZUaW1lIC0gcm93Qi5zZWxmVGltZTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICBpZiAodGhpcy5ldmVudHNIYXZlU3ViUm93c18gJiYgdGhpcy5ldmVudHNIYXZlRHVyYXRpb25fICYmIGhhc0NwdURhdGEpIHsKKyAgICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ0NQVSBTZWxmIFRpbWUgKG1zKScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeworICAgICAgICAgICAgcmV0dXJuIHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVEdXJhdGlvblNwYW4oCisgICAgICAgICAgICAgICAgcm93LmNwdVNlbGZUaW1lLCB0aW1lU3BhbkNvbmZpZyk7CisgICAgICAgICAgfSwKKyAgICAgICAgICB3aWR0aDogJzx1cGF0ZWQgZnVydGhlciBkb3duPicsCisgICAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7CisgICAgICAgICAgICByZXR1cm4gcm93QS5jcHVTZWxmVGltZSAtIHJvd0IuY3B1U2VsZlRpbWU7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgdmFyIGFyZ0tleXMgPSB0ci5iLmRpY3Rpb25hcnlLZXlzKHN1bW1hcnkudG90YWxsZWRBcmdzKTsKKyAgICAgIGFyZ0tleXMuc29ydCgpOworCisgICAgICB2YXIgb3RoZXJLZXlzID0gc3VtbWFyeS51bnRvdGFsbGFibGVBcmdzLnNsaWNlKDApOworICAgICAgb3RoZXJLZXlzLnNvcnQoKTsKKworICAgICAgYXJnS2V5cy5wdXNoLmFwcGx5KGFyZ0tleXMsIG90aGVyS2V5cyk7CisgICAgICB2YXIga2V5c1dpdGhDb2x1bW5zID0gYXJnS2V5cy5zbGljZSgwLCA0KTsKKyAgICAgIHZhciBrZXlzSW5PdGhlckNvbHVtbiA9IGFyZ0tleXMuc2xpY2UoNCk7CisKKyAgICAgIGtleXNXaXRoQ29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGFyZ0tleSkgeworCisgICAgICAgIHZhciBoYXNUb3RhbCA9IHN1bW1hcnkudG90YWxsZWRBcmdzW2FyZ0tleV07CisgICAgICAgIHZhciBjb2xEZXNjID0geworICAgICAgICAgIHRpdGxlOiAnQXJnOiAnICsgYXJnS2V5LAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIGlmIChyb3cuX19wcm90b19fICE9PSB0ci51aS5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGUpIHsKKyAgICAgICAgICAgICAgdmFyIGFyZ1ZpZXcgPQorICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgICAgICAgICAgIGFyZ1ZpZXcub2JqZWN0ID0gcm93LmFyZ3NbYXJnS2V5XTsKKyAgICAgICAgICAgICAgcmV0dXJuIGFyZ1ZpZXc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaGFzVG90YWwpCisgICAgICAgICAgICAgIHJldHVybiByb3cudG90YWxsZWRBcmdzW2FyZ0tleV07CisgICAgICAgICAgICByZXR1cm4gJyc7CisgICAgICAgICAgfSwKKyAgICAgICAgICB3aWR0aDogJzx1cGF0ZWQgZnVydGhlciBkb3duPicKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKGhhc1RvdGFsKSB7CisgICAgICAgICAgY29sRGVzYy5jbXAgPSBmdW5jdGlvbihyb3dBLCByb3dCKSB7CisgICAgICAgICAgICByZXR1cm4gcm93QS5hcmdzW2FyZ0tleV0gLSByb3dCLmFyZ3NbYXJnS2V5XTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY29sdW1ucy5wdXNoKGNvbERlc2MpOworICAgICAgfSk7CisKKyAgICAgIGlmIChrZXlzSW5PdGhlckNvbHVtbi5sZW5ndGgpIHsKKyAgICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ090aGVyIEFyZ3MnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIGlmIChyb3cuX19wcm90b19fID09PSB0ci51aS5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeS5wcm90b3R5cGUpCisgICAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgICAgIHZhciBhcmdWaWV3ID0KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICAgICAgICAgIHZhciBvYmogPSB7fTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5c0luT3RoZXJDb2x1bW4ubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgIG9ialtrZXlzSW5PdGhlckNvbHVtbltpXV0gPSByb3cuYXJnc1trZXlzSW5PdGhlckNvbHVtbltpXV07CisgICAgICAgICAgICBhcmdWaWV3Lm9iamVjdCA9IG9iajsKKyAgICAgICAgICAgIHJldHVybiBhcmdWaWV3OworICAgICAgICAgIH0sCisgICAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nCisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICB2YXIgY29sV2lkdGhQZXJjZW50YWdlOworICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09IDEpCisgICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICcxMDAlJzsKKyAgICAgIGVsc2UKKyAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gKDEwMCAvIChjb2x1bW5zLmxlbmd0aCAtIDEpKS50b0ZpeGVkKDMpICsgJyUnOworCisgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspCisgICAgICAgIGNvbHVtbnNbaV0ud2lkdGggPSBjb2xXaWR0aFBlcmNlbnRhZ2U7CisKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgIH0sCisKKyAgICB1cGRhdGVSb3dzXzogZnVuY3Rpb24oc3VtbWFyeSkgeworICAgICAgdGhpcy4kLnRhYmxlLnNvcnRDb2x1bW5JbmRleCA9IDA7CisgICAgICBmdW5jdGlvbiBSb3coZXZlbnQpIHsKKyAgICAgICAgdGhpcy5ldmVudCA9IGV2ZW50OworICAgICAgfQorICAgICAgUm93LnByb3RvdHlwZSA9IHsKKyAgICAgICAgZ2V0IHN0YXJ0KCkgeyByZXR1cm4gdGhpcy5ldmVudC5zdGFydDsgfSwKKyAgICAgICAgZ2V0IGR1cmF0aW9uKCkgeyByZXR1cm4gdGhpcy5ldmVudC5kdXJhdGlvbjsgfSwKKyAgICAgICAgZ2V0IGNwdUR1cmF0aW9uKCkgeyByZXR1cm4gdGhpcy5ldmVudC5jcHVEdXJhdGlvbjsgfSwKKyAgICAgICAgZ2V0IHNlbGZUaW1lKCkgeyByZXR1cm4gdGhpcy5ldmVudC5zZWxmVGltZTsgfSwKKyAgICAgICAgZ2V0IGNwdVNlbGZUaW1lKCkgeyByZXR1cm4gdGhpcy5ldmVudC5jcHVTZWxmVGltZTsgfSwKKyAgICAgICAgZ2V0IGFyZ3MoKSB7IHJldHVybiB0aGlzLmV2ZW50LmFyZ3M7IH0KKyAgICAgIH07CisKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSB0aGlzLnNlbGVjdGlvbl8ubWFwKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHJldHVybiBuZXcgUm93KGV2ZW50KTsKKyAgICAgIH0pOworICAgICAgdGhpcy4kLnRhYmxlLmZvb3RlclJvd3MgPSBbc3VtbWFyeV07CisgICAgfQorICB9KTsKKzwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CisKKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9kZXRhaWxzX3RhYmxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfZGV0YWlsc190YWJsZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZmNjBhYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfZGV0YWlsc190YWJsZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfZGV0YWlsc190YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIE1vZGVsID0gdHIuTW9kZWw7CisgIHZhciBUaHJlYWQgPSB0ci5tb2RlbC5UaHJlYWQ7CisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OworCisgIHRlc3QoJ3NvcnRpbmdPZkZpcnN0Q29sdW1uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7CisgICAgdmFyIHNBID0gdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMSwgZW5kOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDEsIGNwdUVuZDogMS43NX0pKTsKKyAgICB2YXIgc0IgPSB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMCwgY3B1RW5kOiAzfSkpOworICAgIHZhciBzQyA9IHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDQsIGVuZDogNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAzLCBjcHVFbmQ6IDMuNzV9KSk7CisgICAgdHNnLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgdmFyIHRocmVhZFRyYWNrID0ge307CisgICAgdGhyZWFkVHJhY2sudGhyZWFkID0gdGhyZWFkOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCh0c2cuc2xpY2VzKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTsKKyAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworCisgICAgdmFyIHRhYmxlID0gdmlld0VsLiQudGFibGU7CisgICAgdmFyIGNtcFJlc3VsdCA9IHRhYmxlLnRhYmxlQ29sdW1uc1swXS5jbXAoc0EsIHNCKTsKKyAgICBhc3NlcnQuZXF1YWwoY21wUmVzdWx0LCAxKTsKKyAgfSk7CisKKyAgdGVzdCgnd2l0aENwdVRpbWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKKyAgICB2YXIgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgIHZhciB0c2cgPSB0aHJlYWQuc2xpY2VHcm91cDsKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMCwgY3B1RW5kOiAzfSkpOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDEsIGVuZDogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAxLCBjcHVFbmQ6IDEuNzV9KSk7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogNCwgZW5kOiA1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDMsIGNwdUVuZDogMy43NX0pKTsKKyAgICB0c2cuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICB2YXIgdGhyZWFkVHJhY2sgPSB7fTsKKyAgICB0aHJlYWRUcmFjay50aHJlYWQgPSB0aHJlYWQ7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KHRzZy5zbGljZXMpOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOworICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisgIH0pOworCisgIHRlc3QoJ3dpdGhvdXRDcHVUaW1lJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiAzfSkpOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDEsIGVuZDogMn0pKTsKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiA0LCBlbmQ6IDV9KSk7CisgICAgdHNnLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgdmFyIHRocmVhZFRyYWNrID0ge307CisgICAgdGhyZWFkVHJhY2sudGhyZWFkID0gdGhyZWFkOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCh0c2cuc2xpY2VzKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTsKKyAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKKworCisgIHRlc3QoJ3dpdGhGZXdlclRoYW5Gb3VyQXJncycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOworICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHt2YWx1ZTE6IDMsIHZhbHVlMjogJ3gnLCB2YWx1ZTM6IDF9fSkpOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDEsIGVuZDogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHt2YWx1ZTE6IDMuMSwgdmFsdWUyOiAneScsIHZhbHVlMzogMn19KSk7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogNCwgZW5kOiA1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge3ZhbHVlMTogMy4yLCB2YWx1ZTI6ICd6JywgdmFsdWUzOiAneCd9fSkpOworICAgIHRzZy5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIHZhciB0aHJlYWRUcmFjayA9IHt9OworICAgIHRocmVhZFRyYWNrLnRocmVhZCA9IHRocmVhZDsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQodHNnLnNsaWNlcyk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tdWx0aS1ldmVudC1kZXRhaWxzLXRhYmxlJyk7CisgICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKyAgfSk7CisKKyAgdGVzdCgnd2l0aEV4dHJhQXJncycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOworICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHt2YWx1ZTE6IDMsIHZhbHVlMjogJ3gnLCB2YWx1ZTM6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU0OiA0LCB2YWx1ZTU6IDUsIHZhbHVlNjogNn19KSk7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMSwgZW5kOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge3ZhbHVlMTogMy4xLCB2YWx1ZTI6ICd5JywgdmFsdWUzOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlNDogNCwgdmFsdWU1OiA1LCB2YWx1ZTY6IDZ9fSkpOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDQsIGVuZDogNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHt2YWx1ZTE6IDMuMiwgdmFsdWUyOiAneicsIHZhbHVlMzogJ3gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlNDogNCwgdmFsdWU1OiAnd2hvb3BzJywgdmFsdWU2OiA2fX0pKTsKKyAgICB0c2cuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICB2YXIgdGhyZWFkVHJhY2sgPSB7fTsKKyAgICB0aHJlYWRUcmFjay50aHJlYWQgPSB0aHJlYWQ7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KHRzZy5zbGljZXMpOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOworICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisgIH0pOworCisgIHRlc3QoJ25vRHVyYXRpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKKworICAgIHZhciBmZTEgPSBuZXcgdHIubW9kZWwuRmxvd0V2ZW50KCdjYXQnLCAxMjM0LCAndGl0bGUnLCA3LCAxMCwge30pOworICAgIHZhciBmZTIgPSBuZXcgdHIubW9kZWwuRmxvd0V2ZW50KCdjYXQnLCAxMjM0LCAndGl0bGUnLCA4LCAyMCwge30pOworCisgICAgLy8gTWFrZSByZWFkaW5nIHNvbWUgcHJvcGVydGllcyBhbiBleHBsb3Npb24sIGFzIGEgd2F5IHRvIGVuc3VyZSB0aGF0IHRoZXkKKyAgICAvLyBhcmVuJ3QgcmVhZC4KKyAgICB2YXIgZmFpbFByb3AgPSB7CisgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBub3QgYmUgY2FsbGVkJyk7CisgICAgICB9CisgICAgfTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmUxLCAnZHVyYXRpb24nLCBmYWlsUHJvcCk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMiwgJ2R1cmF0aW9uJywgZmFpbFByb3ApOworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMSwgJ3N1YlJvd3MnLCBmYWlsUHJvcCk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMiwgJ3N1YlJvd3MnLCBmYWlsUHJvcCk7CisKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmUxLCAnc2VsZlRpbWUnLCBmYWlsUHJvcCk7CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMiwgJ3NlbGZUaW1lJywgZmFpbFByb3ApOworCisgICAgbW9kZWwuZmxvd0V2ZW50cy5wdXNoKGZlMSk7CisgICAgbW9kZWwuZmxvd0V2ZW50cy5wdXNoKGZlMik7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KFtmZTEsIGZlMl0pOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOworICAgIHZpZXdFbC5ldmVudHNIYXZlRHVyYXRpb24gPSBmYWxzZTsKKyAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTMxNjQxYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDEyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnlfdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X2RldGFpbHNfdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgfQorICAgICNjb250ZW50IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgZmxleDogMCAxIGF1dG87CisgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOworICAgIH0KKyAgICAjY29udGVudCA+ICogeworICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOworICAgIH0KKyAgICB0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUgeworICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7CisgICAgfQorCisgICAgdHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZSAgeworICAgICAgbWFyZ2luLXRvcDogMS4yNWVtOworICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhYWE7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1ZW07CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyA9IHRydWU7CisgICAgICB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyA9IHRydWU7CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCA8PSAxKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgbXVsdGlwbGUgaXRlbXMnKTsKKyAgICAgIHRoaXMuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKKyAgICB9LAorCisgICAgc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzOiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgZXZlbnRzSGF2ZUR1cmF0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXzsKKyAgICB9LAorCisgICAgc2V0IGV2ZW50c0hhdmVEdXJhdGlvbihldmVudHNIYXZlRHVyYXRpb24pIHsKKyAgICAgIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyA9IGV2ZW50c0hhdmVEdXJhdGlvbjsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBldmVudHNIYXZlU3ViUm93cygpIHsKKyAgICAgIHJldHVybiB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXzsKKyAgICB9LAorCisgICAgc2V0IGV2ZW50c0hhdmVTdWJSb3dzKGV2ZW50c0hhdmVTdWJSb3dzKSB7CisgICAgICB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyA9IGV2ZW50c0hhdmVTdWJSb3dzOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOworCisgICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICcnOworICAgICAgaWYgKCFzZWxlY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGV2ZW50c0J5VGl0bGUgPSBzZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlUaXRsZSgpOworICAgICAgdmFyIG51bVRpdGxlcyA9IHRyLmIuZGljdGlvbmFyeUxlbmd0aChldmVudHNCeVRpdGxlKTsKKworICAgICAgdmFyIHN1bW1hcnlUYWJsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgICAndHItdWktYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlJyk7CisgICAgICBzdW1tYXJ5VGFibGVFbC5jb25maWd1cmUoeworICAgICAgICBzaG93VG90YWxzOiBudW1UaXRsZXMgPiAxLAorICAgICAgICBldmVudHNCeVRpdGxlOiBldmVudHNCeVRpdGxlLAorICAgICAgICBldmVudHNIYXZlRHVyYXRpb246IHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXywKKyAgICAgICAgZXZlbnRzSGF2ZVN1YlJvd3M6IHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfCisgICAgICB9KTsKKyAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKHN1bW1hcnlUYWJsZUVsKTsKKworICAgICAgdmFyIHNlbGVjdGlvblN1bW1hcnlUYWJsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgICAndHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZScpOworICAgICAgc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwuc2VsZWN0aW9uID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKKyAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKHNlbGVjdGlvblN1bW1hcnlUYWJsZUVsKTsKKworICAgICAgaWYgKG51bVRpdGxlcyA9PT0gMSkgeworICAgICAgICB2YXIgZGV0YWlsc1RhYmxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICAgJ3RyLXVpLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOworICAgICAgICBkZXRhaWxzVGFibGVFbC5ldmVudHNIYXZlRHVyYXRpb24gPSB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl87CisgICAgICAgIGRldGFpbHNUYWJsZUVsLmV2ZW50c0hhdmVTdWJSb3dzID0gdGhpcy5ldmVudHNIYXZlU3ViUm93c187CisgICAgICAgIGRldGFpbHNUYWJsZUVsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQoZGV0YWlsc1RhYmxlRWwpOworICAgICAgfQorICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZGEwOTAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDk5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgTW9kZWwgPSB0ci5Nb2RlbDsKKyAgdmFyIFRocmVhZCA9IHRyLm1vZGVsLlRocmVhZDsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7CisgIHZhciBuZXdTbGljZUNhdGVnb3J5ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlQ2F0ZWdvcnk7CisgIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOworCisgIHRlc3QoJ2RpZmZlcmVudFRpdGxlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOworICAgIHZhciB0NTMgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoNTIpLmdldE9yQ3JlYXRlVGhyZWFkKDUzKTsKKyAgICB0NTMuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDAuMCwgMC4wNCkpOworICAgIHQ1My5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMC4xMiwgMC4wNikpOworICAgIHQ1My5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhYScsIDAuNSwgMC41KSk7CisgICAgdDUzLnNsaWNlR3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICB2YXIgdDUzdHJhY2sgPSB7fTsKKyAgICB0NTN0cmFjay50aHJlYWQgPSB0NTM7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2godDUzLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKKyAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2xpY2VHcm91cC5zbGljZXNbMV0pOworICAgIHNlbGVjdGlvbi5wdXNoKHQ1My5zbGljZUdyb3VwLnNsaWNlc1syXSk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldycpOworICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisKKyAgICB2YXIgc3VtbWFyeVRhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgICB2aWV3RWwsICd0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHN1bW1hcnlUYWJsZUVsKTsKKworICAgIGFzc2VydC5pc1RydWUoc3VtbWFyeVRhYmxlRWwuc2hvd1RvdGFscyk7CisgICAgYXNzZXJ0LmVxdWFsKHRyLmIuZGljdGlvbmFyeUxlbmd0aChzdW1tYXJ5VGFibGVFbC5ldmVudHNCeVRpdGxlKSwgMik7CisKKyAgICB2YXIgc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgICB2aWV3RWwsICd0ci11aS1hLXNlbGVjdGlvbi1zdW1tYXJ5LXRhYmxlJyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbCk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvblN1bW1hcnlUYWJsZUVsLnNlbGVjdGlvbiwgc2VsZWN0aW9uKTsKKworICAgIHZhciBkZXRhaWxzVGFibGVFbCA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHZpZXdFbCwgJ3RyLXVpLWEtbXVsdGktZXZlbnQtZGV0YWlscy10YWJsZScpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChkZXRhaWxzVGFibGVFbCk7CisgIH0pOworCisgIHRlc3QoJ3NhbWVUaXRsZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKKyAgICB2YXIgdDUzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKS5nZXRPckNyZWF0ZVRocmVhZCg1Myk7CisgICAgdDUzLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2MnLCAwLjAsIDAuMDQpKTsKKyAgICB0NTMuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYycsIDAuMTIsIDAuMDYpKTsKKyAgICB0NTMuc2xpY2VHcm91cC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIHZhciB0NTN0cmFjayA9IHt9OworICAgIHQ1M3RyYWNrLnRocmVhZCA9IHQ1MzsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2xpY2VHcm91cC5zbGljZXNbMF0pOworICAgIHNlbGVjdGlvbi5wdXNoKHQ1My5zbGljZUdyb3VwLnNsaWNlc1sxXSk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldycpOworICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisKKyAgICB2YXIgc3VtbWFyeVRhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgICB2aWV3RWwsICd0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKHN1bW1hcnlUYWJsZUVsKTsKKworICAgIGFzc2VydC5pc0ZhbHNlKHN1bW1hcnlUYWJsZUVsLnNob3dUb3RhbHMpOworICAgIGFzc2VydC5lcXVhbCh0ci5iLmRpY3Rpb25hcnlMZW5ndGgoc3VtbWFyeVRhYmxlRWwuZXZlbnRzQnlUaXRsZSksIDEpOworCisgICAgdmFyIHNlbGVjdGlvblN1bW1hcnlUYWJsZUVsID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgdmlld0VsLCAndHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZScpOworICAgIGFzc2VydC5pc0RlZmluZWQoc2VsZWN0aW9uU3VtbWFyeVRhYmxlRWwpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25TdW1tYXJ5VGFibGVFbC5zZWxlY3Rpb24sIHNlbGVjdGlvbik7CisKKyAgICB2YXIgZGV0YWlsc1RhYmxlRWwgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgICB2aWV3RWwsICd0ci11aS1hLW11bHRpLWV2ZW50LWRldGFpbHMtdGFibGUnKTsKKyAgICAgICAgYXNzZXJ0LmlzRGVmaW5lZChkZXRhaWxzVGFibGVFbCk7CisgICAgYXNzZXJ0LmVxdWFsKGRldGFpbHNUYWJsZUVsLnNlbGVjdGlvbiwgc2VsZWN0aW9uKTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnkuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyMjIwNTAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnkuaHRtbApAQCAtMCwwICsxLDIwOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7Cit0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gTXVsdGlFdmVudFN1bW1hcnkodGl0bGUsIGV2ZW50cykgeworICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKKyAgICB0aGlzLmR1cmF0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLnNlbGZUaW1lXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmV2ZW50c18gPSBldmVudHM7CisKKyAgICB0aGlzLmNwdVRpbWVzQ29tcHV0ZWRfID0gZmFsc2U7CisgICAgdGhpcy5jcHVTZWxmVGltZV8gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5jcHVEdXJhdGlvbl8gPSB1bmRlZmluZWQ7CisKKyAgICB0aGlzLm1heER1cmF0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLm1heENwdUR1cmF0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLm1heFNlbGZUaW1lXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLm1heENwdVNlbGZUaW1lXyA9IHVuZGVmaW5lZDsKKworICAgIHRoaXMudW50b3RhbGxhYmxlQXJnc18gPSBbXTsKKyAgICB0aGlzLnRvdGFsbGVkQXJnc18gPSB1bmRlZmluZWQ7CisgIH07CisgIE11bHRpRXZlbnRTdW1tYXJ5LnByb3RvdHlwZSA9IHsKKworICAgIHNldCB0aXRsZSh0aXRsZSkgeworICAgICAgaWYgKHRpdGxlID09ICdUb3RhbHMnKQorICAgICAgICB0aGlzLnRvdGFsc1JvdyA9IHRydWU7CisgICAgICB0aGlzLnRpdGxlXyA9IHRpdGxlOworICAgIH0sCisKKyAgICBnZXQgdGl0bGUoKSB7CisgICAgICByZXR1cm4gdGhpcy50aXRsZV87CisgICAgfSwKKworICAgIGdldCBkdXJhdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmR1cmF0aW9uXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuZHVyYXRpb25fID0gdHIuYi5TdGF0aXN0aWNzLnN1bSgKKyAgICAgICAgICAgIHRoaXMuZXZlbnRzXywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQuZHVyYXRpb247CisgICAgICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzLmR1cmF0aW9uXzsKKyAgICB9LAorCisgICAgZ2V0IGNwdVNlbGZUaW1lKCkgeworICAgICAgdGhpcy5jb21wdXRlQ3B1VGltZXNJZk5lZWRlZF8oKTsKKyAgICAgIHJldHVybiB0aGlzLmNwdVNlbGZUaW1lXzsKKyAgICB9LAorCisgICAgZ2V0IGNwdUR1cmF0aW9uKCkgeworICAgICAgdGhpcy5jb21wdXRlQ3B1VGltZXNJZk5lZWRlZF8oKTsKKyAgICAgIHJldHVybiB0aGlzLmNwdUR1cmF0aW9uXzsKKyAgICB9LAorCisgICAgY29tcHV0ZUNwdVRpbWVzSWZOZWVkZWRfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmNwdVRpbWVzQ29tcHV0ZWRfKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLmNwdVRpbWVzQ29tcHV0ZWRfID0gdHJ1ZTsKKworICAgICAgdmFyIGNwdVNlbGZUaW1lID0gMDsKKyAgICAgIHZhciBjcHVEdXJhdGlvbiA9IDA7CisgICAgICB2YXIgaGFzQ3B1RGF0YSA9IGZhbHNlOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmV2ZW50c18ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gdGhpcy5ldmVudHNfW2ldOworICAgICAgICBpZiAoZXZlbnQuY3B1RHVyYXRpb24gIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGNwdUR1cmF0aW9uICs9IGV2ZW50LmNwdUR1cmF0aW9uOworICAgICAgICAgIGhhc0NwdURhdGEgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV2ZW50LmNwdVNlbGZUaW1lICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICBjcHVTZWxmVGltZSArPSBldmVudC5jcHVTZWxmVGltZTsKKyAgICAgICAgICBoYXNDcHVEYXRhID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKGhhc0NwdURhdGEpIHsKKyAgICAgICAgdGhpcy5jcHVEdXJhdGlvbl8gPSBjcHVEdXJhdGlvbjsKKyAgICAgICAgdGhpcy5jcHVTZWxmVGltZV8gPSBjcHVTZWxmVGltZTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZ2V0IHNlbGZUaW1lKCkgeworICAgICAgaWYgKHRoaXMuc2VsZlRpbWVfID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5zZWxmVGltZV8gPSAwOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZXZlbnRzXy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIGlmICh0aGlzLmV2ZW50c19baV0uc2VsZlRpbWUgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuc2VsZlRpbWVfICs9IHRoaXMuZXZlbnRzW2ldLnNlbGZUaW1lOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5zZWxmVGltZV87CisgICAgfSwKKworICAgIGdldCBldmVudHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5ldmVudHNfOworICAgIH0sCisKKyAgICBnZXQgbnVtRXZlbnRzKCkgeworICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzXy5sZW5ndGg7CisgICAgfSwKKworICAgIGdldCBudW1BbGVydHMoKSB7CisgICAgICBpZiAodGhpcy5udW1BbGVydHNfID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5udW1BbGVydHNfID0gdHIuYi5TdGF0aXN0aWNzLnN1bSh0aGlzLmV2ZW50c18sIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgcmV0dXJuIGV2ZW50LmFzc29jaWF0ZWRBbGVydHMubGVuZ3RoOworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzLm51bUFsZXJ0c187CisgICAgfSwKKworICAgIGdldCB1bnRvdGFsbGFibGVBcmdzKCkgeworICAgICAgdGhpcy51cGRhdGVBcmdzSWZOZWVkZWRfKCk7CisgICAgICByZXR1cm4gdGhpcy51bnRvdGFsbGFibGVBcmdzXzsKKyAgICB9LAorCisgICAgZ2V0IHRvdGFsbGVkQXJncygpIHsKKyAgICAgIHRoaXMudXBkYXRlQXJnc0lmTmVlZGVkXygpOworICAgICAgcmV0dXJuIHRoaXMudG90YWxsZWRBcmdzXzsKKyAgICB9LAorCisKKyAgICBnZXQgbWF4RHVyYXRpb24oKSB7CisgICAgICBpZiAodGhpcy5tYXhEdXJhdGlvbl8gPT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLm1heER1cmF0aW9uXyA9IHRyLmIuU3RhdGlzdGljcy5tYXgoCisgICAgICAgICAgICB0aGlzLmV2ZW50c18sIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmR1cmF0aW9uOworICAgICAgICAgICAgfSk7CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5tYXhEdXJhdGlvbl87CisgICAgfSwKKworCisgICAgZ2V0IG1heENwdUR1cmF0aW9uKCkgeworICAgICAgaWYgKHRoaXMubWF4Q3B1RHVyYXRpb25fID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5tYXhDcHVEdXJhdGlvbl8gPSB0ci5iLlN0YXRpc3RpY3MubWF4KAorICAgICAgICAgICAgdGhpcy5ldmVudHNfLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5jcHVEdXJhdGlvbjsKKyAgICAgICAgICAgIH0pOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMubWF4Q3B1RHVyYXRpb25fOworICAgIH0sCisKKworICAgIGdldCBtYXhTZWxmVGltZSgpIHsKKyAgICAgIGlmICh0aGlzLm1heFNlbGZUaW1lXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMubWF4U2VsZlRpbWVfID0gdHIuYi5TdGF0aXN0aWNzLm1heCgKKyAgICAgICAgICAgIHRoaXMuZXZlbnRzXywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQuc2VsZlRpbWU7CisgICAgICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzLm1heFNlbGZUaW1lXzsKKyAgICB9LAorCisKKyAgICBnZXQgbWF4Q3B1U2VsZlRpbWUoKSB7CisgICAgICBpZiAodGhpcy5tYXhDcHVTZWxmVGltZV8gPT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLm1heENwdVNlbGZUaW1lXyA9IHRyLmIuU3RhdGlzdGljcy5tYXgoCisgICAgICAgICAgICB0aGlzLmV2ZW50c18sIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmNwdVNlbGZUaW1lOworICAgICAgICAgICAgfSk7CisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5tYXhDcHVTZWxmVGltZV87CisgICAgfSwKKworCisgICAgdXBkYXRlQXJnc0lmTmVlZGVkXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy50b3RhbGxlZEFyZ3NfICE9PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHVudG90YWxsYWJsZUFyZ3MgPSB7fTsKKyAgICAgIHZhciB0b3RhbGxlZEFyZ3MgPSB7fTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5ldmVudHNfLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBldmVudCA9IHRoaXMuZXZlbnRzX1tpXTsKKyAgICAgICAgZm9yICh2YXIgYXJnTmFtZSBpbiBldmVudC5hcmdzKSB7CisgICAgICAgICAgdmFyIGFyZ1ZhbCA9IGV2ZW50LmFyZ3NbYXJnTmFtZV07CisgICAgICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgYXJnVmFsOworICAgICAgICAgIGlmICh0eXBlICE9PSAnbnVtYmVyJykgeworICAgICAgICAgICAgdW50b3RhbGxhYmxlQXJnc1thcmdOYW1lXSA9IHRydWU7CisgICAgICAgICAgICBkZWxldGUgdG90YWxsZWRBcmdzW2FyZ05hbWVdOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfQorICAgICAgICAgIGlmICh1bnRvdGFsbGFibGVBcmdzW2FyZ05hbWVdKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAodG90YWxsZWRBcmdzW2FyZ05hbWVdID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0b3RhbGxlZEFyZ3NbYXJnTmFtZV0gPSAwOworICAgICAgICAgIHRvdGFsbGVkQXJnc1thcmdOYW1lXSArPSBhcmdWYWw7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHRoaXMudW50b3RhbGxhYmxlQXJnc18gPSB0ci5iLmRpY3Rpb25hcnlLZXlzKHVudG90YWxsYWJsZUFyZ3MpOworICAgICAgdGhpcy50b3RhbGxlZEFyZ3NfID0gdG90YWxsZWRBcmdzOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIE11bHRpRXZlbnRTdW1tYXJ5OiBNdWx0aUV2ZW50U3VtbWFyeQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5X3RhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJhMzJiMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZS5odG1sCkBAIC0wLDAgKzEsMzExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX2R1cmF0aW9uX3NwYW4uaHRtbCI+CisKKzwvc2NyaXB0PgorPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgfQorICAgICN0YWJsZSB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHRyLXVpLWItdGFibGUgaWQ9InRhYmxlIj4KKyAgICA8L3RyLXVpLWItdGFibGU+CisgICAgPC9kaXY+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnNob3dUb3RhbHNfID0gZmFsc2U7CisgICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSB0cnVlOworICAgICAgdGhpcy5ldmVudHNIYXZlU3ViUm93c18gPSB0cnVlOworICAgICAgdGhpcy5ldmVudHNCeVRpdGxlXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgdXBkYXRlVGFibGVDb2x1bW5zXzogZnVuY3Rpb24ocm93cywgbWF4VmFsdWVzKSB7CisgICAgICB2YXIgaGFzQ3B1RGF0YSA9IGZhbHNlOworICAgICAgdmFyIGhhc0FsZXJ0cyA9IGZhbHNlOworICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uKHJvdykgeworICAgICAgICBpZiAocm93LmNwdUR1cmF0aW9uICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgaGFzQ3B1RGF0YSA9IHRydWU7CisgICAgICAgIGlmIChyb3cuY3B1U2VsZlRpbWUgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBoYXNDcHVEYXRhID0gdHJ1ZTsKKyAgICAgICAgaWYgKHJvdy5udW1BbGVydHMpCisgICAgICAgICAgaGFzQWxlcnRzID0gdHJ1ZTsKKyAgICAgIH0pOworCisgICAgICB2YXIgb3duZXJEb2N1bWVudCA9IHRoaXMub3duZXJEb2N1bWVudDsKKworICAgICAgdmFyIGNvbHVtbnMgPSBbXTsKKworICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgdGl0bGU6ICdOYW1lJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeworICAgICAgICAgIGlmIChyb3cudGl0bGUgPT09ICdUb3RhbHMnKQorICAgICAgICAgICAgcmV0dXJuICdUb3RhbHMnOworCisgICAgICAgICAgdmFyIGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpOworICAgICAgICAgIGxpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci5tb2RlbC5FdmVudFNldChyb3cuZXZlbnRzKTsKKyAgICAgICAgICB9LCByb3cudGl0bGUpOworICAgICAgICAgIHJldHVybiBsaW5rRWw7CisgICAgICAgIH0sCisgICAgICAgIHdpZHRoOiAnMzUwcHgnLAorICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKKyAgICAgICAgICByZXR1cm4gcm93QS50aXRsZS5sb2NhbGVDb21wYXJlKHJvd0IudGl0bGUpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIGlmICh0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8pIHsKKyAgICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ1dhbGwgRHVyYXRpb24nLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHJldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKHJvdy5kdXJhdGlvbiwgeworICAgICAgICAgICAgICB0b3RhbDogcm93LnRvdGFsc1JvdyA/IHVuZGVmaW5lZCA6IG1heFZhbHVlcy5kdXJhdGlvbiwKKyAgICAgICAgICAgICAgb3duZXJEb2N1bWVudDogb3duZXJEb2N1bWVudCwKKyAgICAgICAgICAgICAgcmlnaHRBbGlnbjogdHJ1ZQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwKKyAgICAgICAgICB3aWR0aDogJzx1cGF0ZWQgZnVydGhlciBkb3duPicsCisgICAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7CisgICAgICAgICAgICByZXR1cm4gcm93QS5kdXJhdGlvbiAtIHJvd0IuZHVyYXRpb247CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXyAmJiBoYXNDcHVEYXRhKSB7CisgICAgICAgIGNvbHVtbnMucHVzaCh7CisgICAgICAgICAgdGl0bGU6ICdDUFUgRHVyYXRpb24nLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHJldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKHJvdy5jcHVEdXJhdGlvbiwgeworICAgICAgICAgICAgICB0b3RhbDogcm93LnRvdGFsc1JvdyA/IHVuZGVmaW5lZCA6IG1heFZhbHVlcy5jcHVEdXJhdGlvbiwKKyAgICAgICAgICAgICAgb3duZXJEb2N1bWVudDogb3duZXJEb2N1bWVudCwKKyAgICAgICAgICAgICAgcmlnaHRBbGlnbjogdHJ1ZQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwKKyAgICAgICAgICB3aWR0aDogJzx1cGF0ZWQgZnVydGhlciBkb3duPicsCisgICAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7CisgICAgICAgICAgICByZXR1cm4gcm93QS5jcHVEdXJhdGlvbiAtIHJvd0IuY3B1RHVyYXRpb247CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfICYmIHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uXykgeworICAgICAgICBjb2x1bW5zLnB1c2goeworICAgICAgICAgIHRpdGxlOiAnU2VsZiB0aW1lJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgICByZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3Bhbihyb3cuc2VsZlRpbWUsIHsKKyAgICAgICAgICAgICAgdG90YWw6IHJvdy50b3RhbHNSb3cgPyB1bmRlZmluZWQgOiBtYXhWYWx1ZXMuc2VsZlRpbWUsCisgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQ6IG93bmVyRG9jdW1lbnQsCisgICAgICAgICAgICAgIHJpZ2h0QWxpZ246IHRydWUKKyAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sCisgICAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLAorICAgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgICAgcmV0dXJuIHJvd0Euc2VsZlRpbWUgLSByb3dCLnNlbGZUaW1lOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIGlmICh0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyAmJiB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gJiYgaGFzQ3B1RGF0YSkgeworICAgICAgICBjb2x1bW5zLnB1c2goeworICAgICAgICAgIHRpdGxlOiAnQ1BVIFNlbGYgVGltZScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeworICAgICAgICAgICAgcmV0dXJuIHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVEdXJhdGlvblNwYW4ocm93LmNwdVNlbGZUaW1lLCB7CisgICAgICAgICAgICAgIHRvdGFsOiByb3cudG90YWxzUm93ID8gdW5kZWZpbmVkIDogbWF4VmFsdWVzLmNwdVNlbGZUaW1lLAorICAgICAgICAgICAgICBvd25lckRvY3VtZW50OiBvd25lckRvY3VtZW50LAorICAgICAgICAgICAgICByaWdodEFsaWduOiB0cnVlCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHdpZHRoOiAnPHVwYXRlZCBmdXJ0aGVyIGRvd24+JywKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKKyAgICAgICAgICAgIHJldHVybiByb3dBLmNwdVNlbGZUaW1lIC0gcm93Qi5jcHVTZWxmVGltZTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgfQorICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgdGl0bGU6ICdPY2N1cnJlbmNlcycsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICByZXR1cm4gcm93Lm51bUV2ZW50czsKKyAgICAgICAgfSwKKyAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLAorICAgICAgICBjbXA6IGZ1bmN0aW9uKHJvd0EsIHJvd0IpIHsKKyAgICAgICAgICByZXR1cm4gcm93QS5udW1FdmVudHMgLSByb3dCLm51bUV2ZW50czsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIHZhciBhbGVydHNDb2x1bW5JbmRleDsKKyAgICAgIGlmIChoYXNBbGVydHMpIHsKKyAgICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ051bSBBbGVydHMnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHJldHVybiByb3cubnVtQWxlcnRzOworICAgICAgICAgIH0sCisgICAgICAgICAgd2lkdGg6ICc8dXBhdGVkIGZ1cnRoZXIgZG93bj4nLAorICAgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgICAgcmV0dXJuIHJvd0EubnVtQWxlcnRzIC0gcm93Qi5udW1BbGVydHM7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgYWxlcnRzQ29sdW1uSW5kZXggPSBjb2x1bW5zLmxlbmd0aCAtIDE7CisgICAgICB9CisgICAgICB2YXIgY29sV2lkdGhQZXJjZW50YWdlOworICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09IDEpCisgICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICcxMDAlJzsKKyAgICAgIGVsc2UKKyAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gKDEwMCAvIChjb2x1bW5zLmxlbmd0aCAtIDEpKS50b0ZpeGVkKDMpICsgJyUnOworCisgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspCisgICAgICAgIGNvbHVtbnNbaV0ud2lkdGggPSBjb2xXaWR0aFBlcmNlbnRhZ2U7CisKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworCisgICAgICBpZiAoaGFzQWxlcnRzKSB7CisgICAgICAgIHRoaXMuJC50YWJsZS5zb3J0Q29sdW1uSW5kZXggPSBhbGVydHNDb2x1bW5JbmRleDsKKyAgICAgICAgdGhpcy4kLnRhYmxlLnNvcnREZXNjZW5kaW5nID0gdHJ1ZTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgY29uZmlndXJlOiBmdW5jdGlvbihjb25maWcpIHsKKyAgICAgIGlmIChjb25maWcuZXZlbnRzQnlUaXRsZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkOiBldmVudHNCeVRpdGxlJyk7CisKKyAgICAgIGlmIChjb25maWcuc2hvd1RvdGFscyAhPT0gdW5kZWZpbmVkKQorICAgICAgICB0aGlzLnNob3dUb3RhbHNfID0gY29uZmlnLnNob3dUb3RhbHM7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMuc2hvd1RvdGFsc18gPSB0cnVlOworCisgICAgICBpZiAoY29uZmlnLmV2ZW50c0hhdmVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKQorICAgICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSBjb25maWcuZXZlbnRzSGF2ZUR1cmF0aW9uOworICAgICAgZWxzZQorICAgICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSB0cnVlOworCisgICAgICBpZiAoY29uZmlnLmV2ZW50c0hhdmVTdWJSb3dzICE9PSB1bmRlZmluZWQpCisgICAgICAgIHRoaXMuZXZlbnRzSGF2ZVN1YlJvd3NfID0gY29uZmlnLmV2ZW50c0hhdmVTdWJSb3dzOworICAgICAgZWxzZQorICAgICAgICB0aGlzLmV2ZW50c0hhdmVTdWJSb3dzXyA9IHRydWU7CisKKyAgICAgIHRoaXMuZXZlbnRzQnlUaXRsZV8gPSBjb25maWcuZXZlbnRzQnlUaXRsZTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBzaG93VG90YWxzKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2hvd1RvdGFsc187CisgICAgfSwKKworICAgIHNldCBzaG93VG90YWxzKHNob3dUb3RhbHMpIHsKKyAgICAgIHRoaXMuc2hvd1RvdGFsc18gPSBzaG93VG90YWxzOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IGV2ZW50c0hhdmVEdXJhdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl87CisgICAgfSwKKworICAgIHNldCBldmVudHNIYXZlRHVyYXRpb24oZXZlbnRzSGF2ZUR1cmF0aW9uKSB7CisgICAgICB0aGlzLmV2ZW50c0hhdmVEdXJhdGlvbl8gPSBldmVudHNIYXZlRHVyYXRpb247CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgZXZlbnRzSGF2ZVN1YlJvd3MoKSB7CisgICAgICByZXR1cm4gdGhpcy5ldmVudHNIYXZlU3ViUm93c187CisgICAgfSwKKworICAgIHNldCBldmVudHNIYXZlU3ViUm93cyhldmVudHNIYXZlU3ViUm93cykgeworICAgICAgdGhpcy5ldmVudHNIYXZlU3ViUm93c18gPSBldmVudHNIYXZlU3ViUm93czsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBldmVudHNCeVRpdGxlKCkgeworICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzQnlUaXRsZV87CisgICAgfSwKKworICAgIHNldCBldmVudHNCeVRpdGxlKGV2ZW50c0J5VGl0bGUpIHsKKyAgICAgIHRoaXMuZXZlbnRzQnlUaXRsZV8gPSBldmVudHNCeVRpdGxlOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbkJvdW5kcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkJvdW5kc187CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb25Cb3VuZHMoc2VsZWN0aW9uQm91bmRzKSB7CisgICAgICB0aGlzLnNlbGVjdGlvbkJvdW5kc18gPSBzZWxlY3Rpb25Cb3VuZHM7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGV2ZW50c0J5VGl0bGU7CisgICAgICBpZiAodGhpcy5ldmVudHNCeVRpdGxlXyAhPT0gdW5kZWZpbmVkKQorICAgICAgICBldmVudHNCeVRpdGxlID0gdGhpcy5ldmVudHNCeVRpdGxlXzsKKyAgICAgIGVsc2UKKyAgICAgICAgZXZlbnRzQnlUaXRsZSA9IFtdOworCisgICAgICB2YXIgYWxsRXZlbnRzID0gW107CisgICAgICB2YXIgcm93cyA9IFtdOworICAgICAgdHIuYi5pdGVySXRlbXMoCisgICAgICAgICAgZXZlbnRzQnlUaXRsZSwKKyAgICAgICAgICBmdW5jdGlvbih0aXRsZSwgZXZlbnRzT2ZTaW5nbGVUaXRsZSkgeworICAgICAgICAgICAgYWxsRXZlbnRzLnB1c2guYXBwbHkoYWxsRXZlbnRzLCBldmVudHNPZlNpbmdsZVRpdGxlKTsKKyAgICAgICAgICAgIHZhciByb3cgPSBuZXcgdHIudWkuYW5hbHlzaXMuTXVsdGlFdmVudFN1bW1hcnkoCisgICAgICAgICAgICAgIHRpdGxlLCBldmVudHNPZlNpbmdsZVRpdGxlKTsKKyAgICAgICAgICAgIHJvd3MucHVzaChyb3cpOworICAgICAgICAgIH0pOworCisgICAgICB0aGlzLnVwZGF0ZVRhYmxlQ29sdW1uc18ocm93cyk7CisgICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gcm93czsKKworICAgICAgdmFyIG1heFZhbHVlcyA9IHsKKyAgICAgICAgZHVyYXRpb246IHVuZGVmaW5lZCwKKyAgICAgICAgc2VsZlRpbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgY3B1U2VsZlRpbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgY3B1RHVyYXRpb246IHVuZGVmaW5lZAorICAgICAgfTsKKworICAgICAgaWYgKHRoaXMuZXZlbnRzSGF2ZUR1cmF0aW9uKSB7CisgICAgICAgIGZvciAodmFyIGNvbHVtbiBpbiBtYXhWYWx1ZXMpIHsKKyAgICAgICAgICBtYXhWYWx1ZXNbY29sdW1uXSA9IHRyLmIuU3RhdGlzdGljcy5tYXgocm93cywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudFtjb2x1bW5dOworICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHZhciBmb290ZXJSb3dzID0gW107CisKKyAgICAgIGlmICh0aGlzLnNob3dUb3RhbHNfKSB7CisgICAgICAgIHZhciBtdWx0aUV2ZW50U3VtbWFyeSA9IG5ldyB0ci51aS5hbmFseXNpcy5NdWx0aUV2ZW50U3VtbWFyeSgKKyAgICAgICAgICAnVG90YWxzJywgYWxsRXZlbnRzKTsKKyAgICAgICAgZm9vdGVyUm93cy5wdXNoKG11bHRpRXZlbnRTdW1tYXJ5KTsKKyAgICAgIH0KKworCisgICAgICB0aGlzLnVwZGF0ZVRhYmxlQ29sdW1uc18ocm93cywgbWF4VmFsdWVzKTsKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSByb3dzOworCisgICAgICAvLyBUT0RPKHNlbGVjdGlvbiBib3VuZHMpLgorCisgICAgICAvLyBUT0RPKHNvcnRpbmcpCisKKyAgICAgIHRoaXMuJC50YWJsZS5mb290ZXJSb3dzID0gZm9vdGVyUm93czsKKyAgICAgIHRoaXMuJC50YWJsZS5yZWJ1aWxkKCk7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90YWJsZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnlfdGFibGVfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYWM4NTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnlfdGFibGVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1bW1hcnlfdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZGVlcF91dGlscy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKyAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKKworICB0ZXN0KCdiYXNpY05vQ3B1JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZHVyYXRpb246IDAuNX0pKTsKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxLCBkdXJhdGlvbjogMC41fSkpOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDIsIGR1cmF0aW9uOiAwLjV9KSk7CisgICAgdHNnLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgdmFyIHRocmVhZFRyYWNrID0ge307CisgICAgdGhyZWFkVHJhY2sudGhyZWFkID0gdGhyZWFkOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCh0c2cuc2xpY2VzKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnKTsKKyAgICB2aWV3RWwuY29uZmlndXJlKHsKKyAgICAgIHNob3dUb3RhbHM6IHRydWUsCisgICAgICBldmVudHNIYXZlRHVyYXRpb246IHRydWUsCisgICAgICBldmVudHNCeVRpdGxlOiBzZWxlY3Rpb24uZ2V0RXZlbnRzT3JnYW5pemVkQnlUaXRsZSgpCisgICAgfSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisgIH0pOworCisgIHRlc3QoJ2Jhc2ljV2l0aENwdScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOworICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAwLCBjcHVFbmQ6IDN9KSk7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMSwgZW5kOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDEsIGNwdUVuZDogMS43NX0pKTsKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiA0LCBlbmQ6IDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMywgY3B1RW5kOiAzLjc1fSkpOworICAgIHRzZy5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIHZhciB0aHJlYWRUcmFjayA9IHt9OworICAgIHRocmVhZFRyYWNrLnRocmVhZCA9IHRocmVhZDsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQodHNnLnNsaWNlcyk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tdWx0aS1ldmVudC1zdW1tYXJ5LXRhYmxlJyk7CisgICAgdmlld0VsLmNvbmZpZ3VyZSh7CisgICAgICBzaG93VG90YWxzOiB0cnVlLAorICAgICAgZXZlbnRzSGF2ZUR1cmF0aW9uOiB0cnVlLAorICAgICAgZXZlbnRzQnlUaXRsZTogc2VsZWN0aW9uLmdldEV2ZW50c09yZ2FuaXplZEJ5VGl0bGUoKQorICAgIH0pOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKKworICB0ZXN0KCdub0R1cmF0aW9uTm9TdWJSb3dzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisKKyAgICB2YXIgZmUxID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgNywgMTAsIHt9KTsKKyAgICB2YXIgZmUyID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgOCwgMjAsIHt9KTsKKworICAgIC8vIE1ha2UgcmVhZGluZyBzb21lIHByb3BlcnRpZXMgYW4gZXhwbG9zaW9uLCBhcyBhIHdheSB0byBlbnN1cmUgdGhhdCB0aGV5CisgICAgLy8gYXJlbid0IHJlYWQuCisgICAgdmFyIGZhaWxQcm9wID0geworICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGJlIGNhbGxlZCcpOworICAgICAgfQorICAgIH07CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMSwgJ2R1cmF0aW9uJywgZmFpbFByb3ApOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTIsICdkdXJhdGlvbicsIGZhaWxQcm9wKTsKKworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTEsICdzdWJSb3dzJywgZmFpbFByb3ApOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTIsICdzdWJSb3dzJywgZmFpbFByb3ApOworCisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZlMSwgJ3NlbGZUaW1lJywgZmFpbFByb3ApOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmZTIsICdzZWxmVGltZScsIGZhaWxQcm9wKTsKKworICAgIG1vZGVsLmZsb3dFdmVudHMucHVzaChmZTEpOworICAgIG1vZGVsLmZsb3dFdmVudHMucHVzaChmZTIpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldChbZmUxLCBmZTJdKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LXN1bW1hcnktdGFibGUnKTsKKyAgICB2aWV3RWwuY29uZmlndXJlKHsKKyAgICAgIHNob3dUb3RhbHM6IHRydWUsCisgICAgICBldmVudHNIYXZlRHVyYXRpb246IGZhbHNlLAorICAgICAgZXZlbnRzSGF2ZVN1YlJvd3M6IGZhbHNlLAorICAgICAgZXZlbnRzQnlUaXRsZTogc2VsZWN0aW9uLmdldEV2ZW50c09yZ2FuaXplZEJ5VGl0bGUoKQorICAgIH0pOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKKworICAvLyBUT0RPKG5kdWNhKTogVG9vbHRpcHBpc2ggc3R1ZmYuCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdW1tYXJ5X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMyNzk1MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeV90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfZXZlbnRfc3VtbWFyeS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OworCisgIHRlc3QoJ3N1bW1hcnlSb3dOb0NwdScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOworICAgIHZhciB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIHRzZyA9IHRocmVhZC5zbGljZUdyb3VwOworCisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiAzfSkpOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiYicsIHN0YXJ0OiAxLCBlbmQ6IDJ9KSk7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2JiJywgc3RhcnQ6IDQsIGVuZDogNX0pKTsKKyAgICB0c2cuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICB2YXIgcm93ID0gbmV3IHRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KCd4JywgdHNnLnNsaWNlcy5zbGljZSgwKSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5kdXJhdGlvbiwgNSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5zZWxmVGltZSwgNCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHJvdy5jcHVEdXJhdGlvbik7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHJvdy5jcHVTZWxmVGltZSk7CisgIH0pOworCisgIHRlc3QoJ3N1bW1hcnlSb3dXaXRoQ3B1JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7CisKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVTdGFydDogMCwgY3B1RW5kOiAzfSkpOworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDEsIGVuZDogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVN0YXJ0OiAxLCBjcHVFbmQ6IDEuNzV9KSk7CisgICAgdHNnLnB1c2hTbGljZShuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogNCwgZW5kOiA1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1U3RhcnQ6IDMsIGNwdUVuZDogMy43NX0pKTsKKyAgICB0c2cuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICB2YXIgcm93ID0gbmV3IHRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KCd4JywgdHNnLnNsaWNlcy5zbGljZSgwKSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5kdXJhdGlvbiwgNSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5zZWxmVGltZSwgNCk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5jcHVEdXJhdGlvbiwgNC41KTsKKyAgICBhc3NlcnQuZXF1YWwocm93LmNwdVNlbGZUaW1lLCAzLjc1KTsKKyAgICBhc3NlcnQuZXF1YWwocm93Lm1heER1cmF0aW9uLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwocm93Lm1heFNlbGZUaW1lLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwocm93Lm1heENwdUR1cmF0aW9uLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwocm93Lm1heENwdVNlbGZUaW1lLCAyLjI1KTsKKyAgfSk7CisKKyAgdGVzdCgnc3VtbWFyeVJvd05vblNsaWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7CisKKyAgICB2YXIgZmUxID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgNywgMTAsIHt9KTsKKyAgICB2YXIgZmUyID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgOCwgMjAsIHt9KTsKKyAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUxKTsKKyAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUyKTsKKworICAgIHZhciByb3cgPSBuZXcgdHIudWkuYW5hbHlzaXMuTXVsdGlFdmVudFN1bW1hcnkoJ2EnLCBbZmUxLCBmZTJdKTsKKyAgICBhc3NlcnQuZXF1YWwocm93LmR1cmF0aW9uLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwocm93LnNlbGZUaW1lLCAwKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93LmNwdUR1cmF0aW9uKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQocm93LmNwdVNlbGZUaW1lKTsKKyAgICBhc3NlcnQuZXF1YWwocm93Lm1heER1cmF0aW9uLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnc3VtbWFyeU51bUFsZXJ0cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzbGljZSA9IG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAwLCBkdXJhdGlvbjogMC4wMDJ9KTsKKworICAgIHZhciBBTEVSVF9JTkZPXzEgPSBuZXcgdHIubW9kZWwuRXZlbnRJbmZvKAorICAgICAgICAnQWxlcnQgMScsICdDcml0aWNhbCBhbGVydCcpOworCisgICAgdmFyIGFsZXJ0ID0gbmV3IHRyLm1vZGVsLkFsZXJ0KEFMRVJUX0lORk9fMSwgNSwgW3NsaWNlXSk7CisKKyAgICB2YXIgcm93ID0gbmV3IHRyLnVpLmFuYWx5c2lzLk11bHRpRXZlbnRTdW1tYXJ5KCdhJywgW3NsaWNlXSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5udW1BbGVydHMsIDEpOworICB9KTsKKworICB0ZXN0KCdhcmdTdW1tYXJ5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgdHNnID0gdGhyZWFkLnNsaWNlR3JvdXA7CisKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7dmFsdWUxOiAzLCB2YWx1ZTI6ICd4JywgdmFsdWUzOiAxfX0pKTsKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7dmFsdWUxOiAzLCB2YWx1ZTI6ICd5JywgdmFsdWUzOiAyfX0pKTsKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiA0LCBlbmQ6IDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7dmFsdWUxOiAzLCB2YWx1ZTI6ICd6JywgdmFsdWUzOiAneCd9fSkpOworICAgIHRzZy5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgIHZhciByb3cgPSBuZXcgdHIudWkuYW5hbHlzaXMuTXVsdGlFdmVudFN1bW1hcnkoJ3gnLCB0c2cuc2xpY2VzLnNsaWNlKDApKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHJvdy50b3RhbGxlZEFyZ3MsIHt2YWx1ZTE6IDl9KTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHJvdy51bnRvdGFsbGFibGVBcmdzLCBbJ3ZhbHVlMicsICd2YWx1ZTMnXSk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5tYXhEdXJhdGlvbiwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKHJvdy5tYXhTZWxmVGltZSwgMik7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9mbG93X2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2Zsb3dfZXZlbnRfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzBhMzI5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9mbG93X2V2ZW50X3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktZmxvdy1ldmVudC1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDx0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXc+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LmV2ZW50c0hhdmVEdXJhdGlvbiA9IGZhbHNlOworICAgICAgdGhpcy4kLmNvbnRlbnQuZXZlbnRzSGF2ZVN1YlJvd3MgPSBmYWxzZTsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLiQuY29udGVudC5zZWxlY3Rpb247CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZmxvd19ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2Zsb3dfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNGMyYjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2Zsb3dfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKworICB0ZXN0KCdhbmFseXplU2VsZWN0aW9uV2l0aFNpbmdsZUV2ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisKKyAgICB2YXIgZmUxID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgNywgMTAsIHt9KTsKKyAgICB2YXIgZmUyID0gbmV3IHRyLm1vZGVsLkZsb3dFdmVudCgnY2F0JywgMTIzNCwgJ3RpdGxlJywgOCwgMjAsIHt9KTsKKyAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUxKTsKKyAgICBtb2RlbC5mbG93RXZlbnRzLnB1c2goZmUyKTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChmZTEpOworICAgIHNlbGVjdGlvbi5wdXNoKGZlMik7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDIpOworCisgICAgdmFyIHN1YlZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWZsb3ctZXZlbnQtc3ViLXZpZXcnKTsKKyAgICBzdWJWaWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChzdWJWaWV3KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9mcmFtZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9mcmFtZV9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNjQ5NzEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2ZyYW1lX3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1mcmFtZS1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgIHZhciByZWFsVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXcnKTsKKyAgICAgIHJlYWxWaWV3LmV2ZW50c0hhdmVEdXJhdGlvbiA9IGZhbHNlOworICAgICAgcmVhbFZpZXcuZXZlbnRzSGF2ZVN1YlJvd3MgPSBmYWxzZTsKKworICAgICAgdGhpcy5hcHBlbmRDaGlsZChyZWFsVmlldyk7CisgICAgICByZWFsVmlldy5zZXRTZWxlY3Rpb25XaXRob3V0RXJyb3JDaGVja3Moc2VsZWN0aW9uKTsKKworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOworICAgIH0sCisKKyAgICBnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCkgeworICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXy5mb3JFYWNoKGZ1bmN0aW9uKGZyYW1lRXZlbnQpIHsKKyAgICAgICAgZnJhbWVFdmVudC5hc3NvY2lhdGVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICBzZWxlY3Rpb24ucHVzaChldmVudCk7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2I4OTRmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0iY29udGVudCI+PC90ci11aS1iLXRhYmxlPgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisKKyAgICAgIHNlbGVjdGlvbiA9IHRyLmIuYXNBcnJheShzZWxlY3Rpb24pLnNvcnQoCisgICAgICAgICAgdHIuYi5SYW5nZS5jb21wYXJlQnlNaW5UaW1lcyk7CisKKyAgICAgIHZhciBvd25lckRvY3VtZW50ID0gdGhpcy5vd25lckRvY3VtZW50OworICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLmNvbnRlbnQ7CisgICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ0R1bXAnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHZhciBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKyAgICAgICAgICAgIGxpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgdHIubW9kZWwuRXZlbnRTZXQocm93KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdmFyIHNwYW5FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAgICAgIHNwYW5FbC50ZXh0Q29udGVudCA9ICdHbG9iYWwgbWVtb3J5IGR1bXAgYXQgJzsKKyAgICAgICAgICAgIGxpbmtFbC5hcHBlbmRDaGlsZChzcGFuRWwpOworICAgICAgICAgICAgbGlua0VsLmFwcGVuZENoaWxkKHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oCisgICAgICAgICAgICAgICAgcm93LnN0YXJ0LCB7b3duZXJEb2N1bWVudDogb3duZXJEb2N1bWVudH0pKTsKKyAgICAgICAgICAgIHJldHVybiBsaW5rRWw7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICBdOworICAgICAgdGFibGUuc2hvd0hlYWRlciA9IGZhbHNlOworICAgICAgdGFibGUudGFibGVSb3dzID0gc2VsZWN0aW9uOworICAgICAgdGFibGUucmVidWlsZCgpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFjOGYzNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfZ2xvYmFsX21lbW9yeV9kdW1wX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdiYXNpYycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisKKyAgICBmdW5jdGlvbiBhZGRHbG9iYWxNZW1vcnlEdW1wKHRpbWVzdGFtcCkgeworICAgICAgdmFyIGdtZCA9IG5ldyB0ci5tb2RlbC5HbG9iYWxNZW1vcnlEdW1wKG0sIHRpbWVzdGFtcCk7CisgICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2goZ21kKTsKKyAgICAgIHJldHVybiBnbWQ7CisgICAgfQorCisgICAgdmFyIGQxID0gYWRkR2xvYmFsTWVtb3J5RHVtcCg1KTsKKyAgICB2YXIgZDIgPSBhZGRHbG9iYWxNZW1vcnlEdW1wKDIwKTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChkMSk7CisgICAgc2VsZWN0aW9uLnB1c2goZDIpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAyKTsKKworICAgIHZhciBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgJ3RyLXVpLWEtbXVsdGktZ2xvYmFsLW1lbW9yeS1kdW1wLXN1Yi12aWV3Jyk7CisgICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3ViVmlldyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJlOGRjNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfaW5zdGFudF9ldmVudF9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLWluc3RhbnQtZXZlbnQtc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPGRpdiBpZD0nY29udGVudCc+PC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gJyc7CisgICAgICB2YXIgcmVhbFZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3Jyk7CisgICAgICByZWFsVmlldy5ldmVudHNIYXZlRHVyYXRpb24gPSBmYWxzZTsKKyAgICAgIHJlYWxWaWV3LmV2ZW50c0hhdmVTdWJSb3dzID0gZmFsc2U7CisKKyAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKHJlYWxWaWV3KTsKKyAgICAgIHJlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pOworCisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfaW5zdGFudF9ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ODJiNzQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKworICB0ZXN0KCdhbmFseXplU2VsZWN0aW9uV2l0aFNpbmdsZUV2ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHA1MiA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2Vzcyg1Mik7CisgICAgdmFyIHQ1MyA9IHA1Mi5nZXRPckNyZWF0ZVRocmVhZCg1Myk7CisKKyAgICB2YXIgaWUxID0gbmV3IHRyLm1vZGVsLlByb2Nlc3NJbnN0YW50RXZlbnQoJ2NhdCcsICd0aXRsZScsIDcsIDEwLCB7fSk7CisgICAgdmFyIGllMiA9IG5ldyB0ci5tb2RlbC5Qcm9jZXNzSW5zdGFudEV2ZW50KCdjYXQnLCAndGl0bGUnLCA3LCAyMCwge30pOworICAgIHA1Mi5pbnN0YW50RXZlbnRzLnB1c2goaWUxKTsKKyAgICBwNTIuaW5zdGFudEV2ZW50cy5wdXNoKGllMik7CisKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChpZTEpOworICAgIHNlbGVjdGlvbi5wdXNoKGllMik7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDIpOworCisgICAgdmFyIHN1YlZpZXcgPQorICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWluc3RhbnQtZXZlbnQtc3ViLXZpZXcnKTsKKyAgICBzdWJWaWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChzdWJWaWV3KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9pbnRlcmFjdGlvbl9yZWNvcmRfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUzYTE0MwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1pbnRlcmFjdGlvbi1yZWNvcmQtc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy50ZXh0Q29udGVudCA9ICcnOworICAgICAgdmFyIHJlYWxWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1tdWx0aS1ldmVudC1zdWItdmlldycpOworCisgICAgICB0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTsKKyAgICAgIHJlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pOworCisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKSB7CisgICAgICBpZiAoIXRoaXMuY3VycmVudFNlbGVjdGlvbl8pCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oaXIpIHsKKyAgICAgICAgaXIuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgc2VsZWN0aW9uLnB1c2goZXZlbnQpOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfb2JqZWN0X3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJlM2MzOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfb2JqZWN0X3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtbXVsdGktb2JqZWN0LXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHRyLXVpLWItdGFibGUgaWQ9ImNvbnRlbnQiPjwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLmNvbnRlbnQuc2hvd0hlYWRlciA9IGZhbHNlOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworCisgICAgICB2YXIgb2JqZWN0RXZlbnRzID0gdHIuYi5hc0FycmF5KHNlbGVjdGlvbikuc29ydCgKKyAgICAgICAgICB0ci5iLlJhbmdlLmNvbXBhcmVCeU1pblRpbWVzKTsKKworICAgICAgdmFyIHRpbWVTcGFuQ29uZmlnID0ge293bmVyRG9jdW1lbnQ6IHRoaXMub3duZXJEb2N1bWVudH07CisgICAgICB2YXIgdGFibGUgPSB0aGlzLiQuY29udGVudDsKKyAgICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IFsKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnRmlyc3QnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpCisgICAgICAgICAgICAgIHJldHVybiB0ci51aS51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKGV2ZW50LnRzLCB0aW1lU3BhbkNvbmZpZyk7CisKKyAgICAgICAgICAgIHZhciBzcGFuRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgICAgICAgICBzcGFuRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbigKKyAgICAgICAgICAgICAgICBldmVudC5jcmVhdGlvblRzLCB0aW1lU3BhbkNvbmZpZykpOworICAgICAgICAgICAgc3BhbkVsLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlU3Bhbih7CisgICAgICAgICAgICAgICAgdGV4dENvbnRlbnQ6ICctJywKKyAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnNHB4JywKKyAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCcKKyAgICAgICAgICAgIH0pKTsKKyAgICAgICAgICAgIGlmIChldmVudC5kZWxldGlvblRzICE9IE51bWJlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgc3BhbkVsLmFwcGVuZENoaWxkKHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oCisgICAgICAgICAgICAgICAgICBldmVudC5kZWxldGlvblRzLCB0aW1lU3BhbkNvbmZpZykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHNwYW5FbDsKKyAgICAgICAgICB9LAorICAgICAgICAgIHdpZHRoOiAnMjAwcHgnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ1NlY29uZCcsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KGV2ZW50KTsKKyAgICAgICAgICAgIH0sIGV2ZW50LnVzZXJGcmllbmRseU5hbWUpOworICAgICAgICAgICAgcmV0dXJuIGxpbmtFbDsKKyAgICAgICAgICB9LAorICAgICAgICAgIHdpZHRoOiAnMTAwJScKKyAgICAgICAgfQorICAgICAgXTsKKyAgICAgIHRhYmxlLnRhYmxlUm93cyA9IG9iamVjdEV2ZW50czsKKyAgICAgIHRhYmxlLnJlYnVpbGQoKTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9vYmplY3Rfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMTM3NDIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX29iamVjdF9zdWJfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBPYmplY3RJbnN0YW5jZSA9IHRyLm1vZGVsLk9iamVjdEluc3RhbmNlOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX2FuYWx5c2lzV2l0aE9iamVjdHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIG9iamVjdHMgPSBwMS5vYmplY3RzOworICAgIHZhciBpMTAgPSBvYmplY3RzLmlkV2FzQ3JlYXRlZCgKKyAgICAgICAgJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgMTApOworICAgIHZhciBzMTAgPSBvYmplY3RzLmFkZFNuYXBzaG90KCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzbmFwc2hvdC0xJyk7CisgICAgdmFyIHMyNSA9IG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgMjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYXBzaG90LTInKTsKKyAgICB2YXIgczQwID0gb2JqZWN0cy5hZGRTbmFwc2hvdCgnMHgxMDAwJywgJ3RyLmUuY2MnLCAnTGF5ZXJUcmVlSG9zdEltcGwnLCA0MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc25hcHNob3QtMycpOworICAgIG9iamVjdHMuaWRXYXNEZWxldGVkKCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDQ1KTsKKworICAgIHZhciB0cmFjayA9IHt9OworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChpMTApOworICAgIHNlbGVjdGlvbi5wdXNoKHMxMCk7CisgICAgc2VsZWN0aW9uLnB1c2goczI1KTsKKyAgICBzZWxlY3Rpb24ucHVzaChzNDApOworCisgICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLW9iamVjdC1zdWItdmlldycpOworICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3Bvd2VyX3NhbXBsZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9wb3dlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGIyOGJlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9wb3dlcl9zYW1wbGVfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDc4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLXBvd2VyLXNhbXBsZS1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICB9CisgICAgI3RhYmxlIHsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0idGFibGUiPjwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ1RpbWUnLAorICAgICAgICAgIHdpZHRoOiAnMTUwcHgnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5zdGFydDsgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdQb3dlciAobVcpJywKKyAgICAgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5wb3dlcjsgfQorICAgICAgICB9CisgICAgICBdOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy4kLnRhYmxlLnJvd3MgPSBbXTsKKyAgICAgICAgdGhpcy4kLnRhYmxlLnJlYnVpbGQoKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIgcG93ZXJTYW1wbGVzID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSB0aGlzLmdldFJvd3NGb3JQb3dlclNhbXBsZXNfKHBvd2VyU2FtcGxlcyk7CisgICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOworICAgIH0sCisKKyAgICBnZXRSb3dzRm9yUG93ZXJTYW1wbGVzXzogZnVuY3Rpb24ocG93ZXJTYW1wbGVzKSB7CisgICAgICByZXR1cm4gcG93ZXJTYW1wbGVzLm1hcChmdW5jdGlvbihwb3dlclNhbXBsZSkgeworICAgICAgICByZXR1cm4geworICAgICAgICAgIHN0YXJ0OiBwb3dlclNhbXBsZS5zdGFydCwKKyAgICAgICAgICBwb3dlcjogcG93ZXJTYW1wbGUucG93ZXIKKyAgICAgICAgfTsKKyAgICAgIH0pOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3Bvd2VyX3NhbXBsZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3Bvd2VyX3NhbXBsZV9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkwM2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfcG93ZXJfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wb3dlcl9zYW1wbGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3Bvd2VyX3Nlcmllcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfcG93ZXJfc2FtcGxlX3N1Yl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBzZXJpZXMgPSBuZXcgdHIubW9kZWwuUG93ZXJTZXJpZXMobW9kZWwuZGV2aWNlKTsKKyAgICBtb2RlbC5kZXZpY2UucG93ZXJTZXJpZXMgPSBzZXJpZXM7CisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworCisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAsIDEwMDApOworICAgIHNlcmllcy5hZGRQb3dlclNhbXBsZSgxLCAyMDAwKTsKKyAgICBzZXJpZXMuYWRkUG93ZXJTYW1wbGUoMiwgMzAwMCk7CisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDMsIDQwMDApOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktcG93ZXItc2FtcGxlLXN1Yi12aWV3Jyk7CisgICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlcmllcy5zYW1wbGVzOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZjVkZDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHRyLXVpLWItdGFibGUgaWQ9ImNvbnRlbnQiPjwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKworICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworCisgICAgICBzZWxlY3Rpb24gPSB0ci5iLmFzQXJyYXkoc2VsZWN0aW9uKS5zb3J0KAorICAgICAgICAgIHRyLmIuUmFuZ2UuY29tcGFyZUJ5TWluVGltZXMpOworCisgICAgICB2YXIgb3duZXJEb2N1bWVudCA9IHRoaXMub3duZXJEb2N1bWVudDsKKyAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC5jb250ZW50OworICAgICAgdGFibGUudGFibGVDb2x1bW5zID0gWworICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdEdW1wJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KHJvdyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHZhciBzcGFuRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgICAgICAgICBzcGFuRWwudGV4dENvbnRlbnQgPSAnUHJvY2VzcyBtZW1vcnkgZHVtcCBhdCAnOworICAgICAgICAgICAgbGlua0VsLmFwcGVuZENoaWxkKHNwYW5FbCk7CisgICAgICAgICAgICBsaW5rRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbigKKyAgICAgICAgICAgICAgICByb3cuc3RhcnQsIHtvd25lckRvY3VtZW50OiBvd25lckRvY3VtZW50fSkpOworICAgICAgICAgICAgcmV0dXJuIGxpbmtFbDsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIF07CisgICAgICB0YWJsZS5zaG93SGVhZGVyID0gZmFsc2U7CisgICAgICB0YWJsZS50YWJsZVJvd3MgPSBzZWxlY3Rpb247CisgICAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhODVkMTMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworICB2YXIgR2xvYmFsTWVtb3J5RHVtcCA9IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXA7CisgIHZhciBQcm9jZXNzTWVtb3J5RHVtcCA9IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wOworCisgIHRlc3QoJ2Jhc2ljJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcCA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDQyKTsKKworICAgIGZ1bmN0aW9uIGFkZFByb2Nlc3NNZW1vcnlEdW1wKHRpbWVzdGFtcCkgeworICAgICAgdmFyIGdtZCA9IG5ldyBHbG9iYWxNZW1vcnlEdW1wKG0sIHRpbWVzdGFtcCk7CisgICAgICBtLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2goZ21kKTsKKyAgICAgIHZhciBwbWQgPSBuZXcgUHJvY2Vzc01lbW9yeUR1bXAoZ21kLCBwLCB0aW1lc3RhbXApOworICAgICAgcC5tZW1vcnlEdW1wcy5wdXNoKHBtZCk7CisgICAgICBnbWQucHJvY2Vzc01lbW9yeUR1bXBzW3BtZC5waWRdID0gcG1kOworICAgICAgcmV0dXJuIHBtZDsKKyAgICB9CisKKyAgICB2YXIgZDEgPSBhZGRQcm9jZXNzTWVtb3J5RHVtcCg1KTsKKyAgICB2YXIgZDIgPSBhZGRQcm9jZXNzTWVtb3J5RHVtcCgyMCk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2goZDEpOworICAgIHNlbGVjdGlvbi5wdXNoKGQyKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMik7CisKKyAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICd0ci11aS1hLW11bHRpLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXcnKTsKKyAgICBzdWJWaWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChzdWJWaWV3KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9zYW1wbGVfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY4ZGY5NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfc2FtcGxlX3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1tdWx0aS1zYW1wbGUtc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPGRpdiBpZD0nY29udGVudCc+PC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IHJlcXVpcmVzVGFsbFZpZXcoKSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gJyc7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworCisgICAgICBpZiAodHIuaXNEZWZpbmVkKCd0ci51aS5lLmFuYWx5c2lzLlNhbXBsaW5nU3VtbWFyeVBhbmVsJykpIHsKKyAgICAgICAgdmFyIHBhbmVsID0gbmV3IHRyLnVpLmUuYW5hbHlzaXMuU2FtcGxpbmdTdW1tYXJ5UGFuZWwoKTsKKyAgICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocGFuZWwpOworICAgICAgICBwYW5lbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICdTYW1wbGluZ1N1bW1hcnlQYW5lbCBub3QgaW5zdGFsbGVkLiA6KCc7CisgICAgICB9CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uXzsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiNjhkMDkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3NhbXBsZV9zdWJfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9zYW1wbGVfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL3VpL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5Lmh0bWwnPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIE1vZGVsID0gdHIuTW9kZWw7CisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworICB2YXIgbmV3U2FtcGxlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2FtcGxlTmFtZWQ7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aE11bHRpcGxlU2FtcGxlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOworICAgIHZhciB0NTM7CisgICAgbW9kZWwuaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgdDUzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKS5nZXRPckNyZWF0ZVRocmVhZCg1Myk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ0JCQiddLCAwKSk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ0FBQSddLCAwLjAyKSk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ0FBQSddLCAwLjA0KSk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3U2FtcGxlTmFtZWQodDUzLCAnWCcsICdjYXQnLCBbJ1NsZWVwaW5nJ10sIDAuMDYpKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnQkJCJ10sIDAuMDgpKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnQUFBJ10sIDAuMTApKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnQ0NDJ10sIDAuMTIpKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ2NhdCcsIFsnU2xlZXBpbmcnXSwgMC4xNCkpOworICAgIH0pOworCisgICAgdmFyIHQ1M3RyYWNrID0ge307CisgICAgdDUzdHJhY2sudGhyZWFkID0gdDUzOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdDUzLnNhbXBsZXMubGVuZ3RoOyBpKyspCisgICAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2FtcGxlc1tpXSk7CisKKyAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktc2FtcGxlLXN1Yi12aWV3Jyk7CisgICAgdmlldy5zdHlsZS5oZWlnaHQgPSAnNTAwcHgnOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKKyAgICB2aWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcyZjRmZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL211bHRpX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9yZWxhdGVkX2V2ZW50cy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLXRocmVhZC1zbGljZS1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICAjY29udGVudCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleDogMSAxIGF1dG87CisgICAgfQorICAgICNjb250ZW50ID4gdHItdWktYS1yZWxhdGVkLWV2ZW50cyB7CisgICAgICBtYXJnaW4tbGVmdDogOHB4OworICAgICAgZmxleDogMCAxIDIwMHB4OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImNvbnRlbnQiPjwvZGl2PgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisKKyAgICAgIC8vIFRPRE8obmR1Y2EpOiBUaGlzIGlzIGEgZ3Jvc3MgaGFjayBmb3IgY2MgRnJhbWUgVmlld2VyLCBidXQgaXRzIG9ubHkKKyAgICAgIC8vIHRoZSBmcmFtZSB2aWV3ZXIgdGhhdCBuZWVkcyB0aGlzIGZlYXR1cmUsIHNvIH5zaHJ1Z34uCisgICAgICAvLyBXZSBjaGVjayBmb3IgaXRzIHByZXNlbmNlIHNvIHRoYXQgd2UgZG8gbm90IGhhdmUgYSBoYXJkIGRlcGVuZGVuY3kKKyAgICAgIC8vIG9uIGZyYW1lIHZpZXdlci4KKyAgICAgIGlmICh0ci5pc0V4cG9ydGVkKCd0ci51aS5lLmNocm9tZS5jYy5SYXN0ZXJUYXNrU2VsZWN0aW9uJykpIHsKKyAgICAgICAgaWYgKHRyLnVpLmUuY2hyb21lLmNjLlJhc3RlclRhc2tTZWxlY3Rpb24uc3VwcG9ydHMoc2VsZWN0aW9uKSkgeworICAgICAgICAgIHZhciBsdHZTZWxlY3Rpb24gPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuUmFzdGVyVGFza1NlbGVjdGlvbigKKyAgICAgICAgICAgICAgc2VsZWN0aW9uKTsKKworICAgICAgICAgIHZhciBsdHYgPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuTGF5ZXJUcmVlSG9zdEltcGxTbmFwc2hvdFZpZXcoKTsKKyAgICAgICAgICBsdHYub2JqZWN0U25hcHNob3QgPSBsdHZTZWxlY3Rpb24uY29udGFpbmluZ1NuYXBzaG90OworICAgICAgICAgIGx0di5zZWxlY3Rpb24gPSBsdHZTZWxlY3Rpb247CisgICAgICAgICAgbHR2LmV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZCA9IGx0dlNlbGVjdGlvbi5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQ7CisKKyAgICAgICAgICB0aGlzLiQuY29udGVudC50ZXh0Q29udGVudCA9ICcnOworICAgICAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKGx0dik7CisKKyAgICAgICAgICB0aGlzLnJlcXVpcmVzVGFsbFZpZXdfID0gdHJ1ZTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgdGhpcy4kLmNvbnRlbnQudGV4dENvbnRlbnQgPSAnJzsKKworICAgICAgdmFyIG1lc3YgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3Jyk7CisgICAgICBtZXN2LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKG1lc3YpOworCisgICAgICB2YXIgcmVsYXRlZEV2ZW50cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtcmVsYXRlZC1ldmVudHMnKTsKKyAgICAgIHJlbGF0ZWRFdmVudHMuc2V0UmVsYXRlZEV2ZW50cyhzZWxlY3Rpb24pOworCisgICAgICBpZiAocmVsYXRlZEV2ZW50cy5oYXNSZWxhdGVkRXZlbnRzKCkpIHsKKyAgICAgICAgdGhpcy4kLmNvbnRlbnQuYXBwZW5kQ2hpbGQocmVsYXRlZEV2ZW50cyk7CisgICAgICB9CisgICAgfSwKKworICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgeworICAgICAgaWYgKHRoaXMuJC5jb250ZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgdmFyIGNoaWxkVGFnTmFtZSA9IHRoaXMuJC5jb250ZW50LmNoaWxkcmVuWzBdLnRhZ05hbWU7CisgICAgICBpZiAoY2hpbGRUYWdOYW1lID09PSAnVFItVUktQS1NVUxUSS1FVkVOVC1TVUItVklFVycpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgLy8gVXNpbmcgcmFzdGVyIHRhc2sgdmlldy4KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3RocmVhZF9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL211bHRpX3RocmVhZF9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdmZDEwZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RocmVhZF9zbGljZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIG5ld1NsaWNlRXggPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VFeDsKKyAgdmFyIG5ld0Zsb3dFdmVudEV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld0Zsb3dFdmVudEV4OworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQ1MyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2Vzcyg1MikuZ2V0T3JDcmVhdGVUaHJlYWQoNTMpOworICAgIHQ1My5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAuMCwgZHVyYXRpb246IDAuNSwKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgdDUzLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMS4wLCBkdXJhdGlvbjogMiwKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgdDUzLnNsaWNlR3JvdXAuY3JlYXRlU3ViU2xpY2VzKCk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2godDUzLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKKyAgICBzZWxlY3Rpb24ucHVzaCh0NTMuc2xpY2VHcm91cC5zbGljZXNbMV0pOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtbXVsdGktdGhyZWFkLXNsaWNlLXN1Yi12aWV3Jyk7CisgICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKyAgfSk7CisKKyAgdGVzdCgnd2l0aEZsb3dzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obSkgeworICAgICAgbS5wMSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworCisgICAgICBtLnQyID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIG0udDMgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDMpOworICAgICAgbS50NCA9IG0ucDEuZ2V0T3JDcmVhdGVUaHJlYWQoNCk7CisKKyAgICAgIG0uc0EgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDUsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNCID0gbS50My5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMTAsIGVuZDogMTUsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNDID0gbS50NC5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2MnLCBzdGFydDogMjAsIGVuZDogMjAsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisKKyAgICAgIG0udDIuY3JlYXRlU3ViU2xpY2VzKCk7CisgICAgICBtLnQzLmNyZWF0ZVN1YlNsaWNlcygpOworICAgICAgbS50NC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgICAgbS5mMSA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMCwgZW5kOiAxMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zQSwKKyAgICAgICAgZW5kU2xpY2U6IG0uc0IKKyAgICAgIH0pOworICAgICAgbS5mMiA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMTUsIGVuZDogMjEsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uc0IsCisgICAgICAgIGVuZFNsaWNlOiBtLnNDCisgICAgICB9KTsKKyAgICB9KTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChtLnNBKTsKKyAgICBzZWxlY3Rpb24ucHVzaChtLnNCKTsKKyAgICBzZWxlY3Rpb24ucHVzaChtLnNDKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLW11bHRpLXRocmVhZC1zbGljZS1zdWItdmlldycpOworICAgIHZpZXdFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjA2OTZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV9ldmVudF9zdWJfdmlldy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgfQorICAgICNjb250ZW50IHsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDx0ci11aS1hLW11bHRpLWV2ZW50LXN1Yi12aWV3IGlkPSJjb250ZW50Ij48L3RyLXVpLWEtbXVsdGktZXZlbnQtc3ViLXZpZXc+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LmV2ZW50c0hhdmVTdWJSb3dzID0gZmFsc2U7CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy4kLmNvbnRlbnQuc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdGhpcy4kLmNvbnRlbnQuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9tdWx0aV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJjNGNlZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvbXVsdGlfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tdWx0aV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGNyZWF0ZUJhc2ljTW9kZWwoKSB7CisgICAgdmFyIGxpbmVzID0gWworICAgICAgJ0FuZHJvaWQubGF1bmNoZXItNTg0ICAgWzAwMV0gZC4uMyAxMjYyMi41MDY4OTA6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUFuZHJvaWQubGF1bmNoZXIgcHJldl9waWQ9NTg0IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SKyA9PT4gbmV4dF9jb21tPUJpbmRlcl8xIG5leHRfcGlkPTIxNyBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gZC4uMyAxMjYyMi41MDY5MTg6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUJpbmRlcl8xIHByZXZfcGlkPTIxNyBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9RCA9PT4gbmV4dF9jb21tPUFuZHJvaWQubGF1bmNoZXIgbmV4dF9waWQ9NTg0IG5leHRfcHJpbz0xMjAnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJ0FuZHJvaWQubGF1bmNoZXItNTg0ICAgWzAwMV0gZC4uNCAxMjYyMi41MDY5MzY6IHNjaGVkX3dha2V1cDogY29tbT1CaW5kZXJfMSBwaWQ9MjE3IHByaW89MTIwIHN1Y2Nlc3M9MSB0YXJnZXRfY3B1PTAwMScsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAnQW5kcm9pZC5sYXVuY2hlci01ODQgICBbMDAxXSBkLi4zIDEyNjIyLjUwNjk1MDogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QW5kcm9pZC5sYXVuY2hlciBwcmV2X3BpZD01ODQgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPVIrID09PiBuZXh0X2NvbW09QmluZGVyXzEgbmV4dF9waWQ9MjE3IG5leHRfcHJpbz0xMjAnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSAuLi4xIDEyNjIyLjUwNzA1NzogdHJhY2luZ19tYXJrX3dyaXRlOiBCfDEyOHxxdWV1ZUJ1ZmZlcicsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIC4uLjEgMTI2MjIuNTA3MTc1OiB0cmFjaW5nX21hcmtfd3JpdGU6IEUnLAorICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSBkLi4zIDEyNjIyLjUwNzI1Mzogc2NoZWRfc3dpdGNoOiBwcmV2X2NvbW09QmluZGVyXzEgcHJldl9waWQ9MjE3IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1TID09PiBuZXh0X2NvbW09QW5kcm9pZC5sYXVuY2hlciBuZXh0X3BpZD01ODQgbmV4dF9wcmlvPTEyMCcgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBdOworCisgICAgcmV0dXJuIG5ldyB0ci5Nb2RlbChsaW5lcy5qb2luKCdcbicpLCBmYWxzZSk7CisgIH0KKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gY3JlYXRlQmFzaWNNb2RlbCgpOworCisgICAgdmFyIHRocmVhZCA9IG0uZmluZEFsbFRocmVhZHNOYW1lZCgnQmluZGVyXzEnKVswXTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaCh0aHJlYWQudGltZVNsaWNlc1swXSk7CisgICAgc2VsZWN0aW9uLnB1c2godGhyZWFkLnRpbWVTbGljZXNbMV0pOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICd0ci11aS1hLW11bHRpLXRocmVhZC10aW1lLXNsaWNlLXN1Yi12aWV3Jyk7CisgICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA0Mjk0ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvb2JqZWN0X2luc3RhbmNlX3ZpZXcuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7CisgIHZhciBPYmplY3RJbnN0YW5jZVZpZXcgPSB0ci51aS5iLmRlZmluZSgnb2JqZWN0LWluc3RhbmNlLXZpZXcnKTsKKworICBPYmplY3RJbnN0YW5jZVZpZXcucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgcmVxdWlyZXNUYWxsVmlldygpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBzZXQgbW9kZWxFdmVudChvYmopIHsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2UgPSBvYmo7CisgICAgfSwKKworICAgIGdldCBtb2RlbEV2ZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMub2JqZWN0SW5zdGFuY2U7CisgICAgfSwKKworICAgIGdldCBvYmplY3RJbnN0YW5jZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLm9iamVjdEluc3RhbmNlXzsKKyAgICB9LAorCisgICAgc2V0IG9iamVjdEluc3RhbmNlKGkpIHsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gaTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHMoKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9CisgIH07CisKKyAgdmFyIG9wdGlvbnMgPSBuZXcgdHIuYi5FeHRlbnNpb25SZWdpc3RyeU9wdGlvbnMoCisgICAgICB0ci5iLlRZUEVfQkFTRURfUkVHSVNUUllfTU9ERSk7CisgIG9wdGlvbnMubWFuZGF0b3J5QmFzZUNsYXNzID0gT2JqZWN0SW5zdGFuY2VWaWV3OworICBvcHRpb25zLmRlZmF1bHRNZXRhZGF0YSA9IHsKKyAgICBzaG93SW5UcmFja1ZpZXc6IHRydWUKKyAgfTsKKyAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KE9iamVjdEluc3RhbmNlVmlldywgb3B0aW9ucyk7CisKKyAgcmV0dXJuIHsKKyAgICBPYmplY3RJbnN0YW5jZVZpZXc6IE9iamVjdEluc3RhbmNlVmlldworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvb2JqZWN0X3NuYXBzaG90X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvb2JqZWN0X3NuYXBzaG90X3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzc1OTFlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXh0ZW5zaW9uX3JlZ2lzdHJ5Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIE9iamVjdFNuYXBzaG90VmlldyA9IHRyLnVpLmIuZGVmaW5lKCdvYmplY3Qtc25hcHNob3QtdmlldycpOworCisgIE9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdF8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHNldCBtb2RlbEV2ZW50KG9iaikgeworICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdCA9IG9iajsKKyAgICB9LAorCisgICAgZ2V0IG1vZGVsRXZlbnQoKSB7CisgICAgICByZXR1cm4gdGhpcy5vYmplY3RTbmFwc2hvdDsKKyAgICB9LAorCisgICAgZ2V0IG9iamVjdFNuYXBzaG90KCkgeworICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U25hcHNob3RfOworICAgIH0sCisKKyAgICBzZXQgb2JqZWN0U25hcHNob3QoaSkgeworICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdF8gPSBpOworICAgICAgdGhpcy51cGRhdGVDb250ZW50cygpOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50czogZnVuY3Rpb24oKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0KKyAgfTsKKworICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucygKKyAgICAgIHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTsKKyAgb3B0aW9ucy5tYW5kYXRvcnlCYXNlQ2xhc3MgPSBPYmplY3RTbmFwc2hvdFZpZXc7CisgIG9wdGlvbnMuZGVmYXVsdE1ldGFkYXRhID0geworICAgIHNob3dJbnN0YW5jZXM6IHRydWUsCisgICAgc2hvd0luVHJhY2tWaWV3OiB0cnVlCisgIH07CisgIHRyLmIuZGVjb3JhdGVFeHRlbnNpb25SZWdpc3RyeShPYmplY3RTbmFwc2hvdFZpZXcsIG9wdGlvbnMpOworCisgIHJldHVybiB7CisgICAgT2JqZWN0U25hcHNob3RWaWV3OiBPYmplY3RTbmFwc2hvdFZpZXcKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3JlbGF0ZWRfZXZlbnRzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3JlbGF0ZWRfZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM3YTYzZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHMuaHRtbApAQCAtMCwwICsxLDI3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19saW5rLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9mbG93X2NsYXNzaWZpZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1yZWxhdGVkLWV2ZW50cyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgfQorICAgICN0YWJsZSB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHRyLXVpLWItdGFibGUgaWQ9InRhYmxlIj48L3RyLXVpLWItdGFibGU+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZXZlbnRHcm91cHNfID0gW107CisKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ0V2ZW50KHMpJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgICB2YXIgdHlwZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgICAgICAgdHlwZUVsLmlubmVyVGV4dCA9IHJvdy50eXBlOworICAgICAgICAgICAgaWYgKHJvdy50b29sdGlwKQorICAgICAgICAgICAgICB0eXBlRWwudGl0bGUgPSByb3cudG9vbHRpcDsKKyAgICAgICAgICAgIHJldHVybiB0eXBlRWw7CisgICAgICAgICAgfSwKKyAgICAgICAgICB3aWR0aDogJzE1MHB4JworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdMaW5rJywKKyAgICAgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICAgIHZhciBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKyAgICAgICAgICAgIGlmIChyb3cubmFtZSkKKyAgICAgICAgICAgICAgbGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQocm93LnNlbGVjdGlvbiwgcm93Lm5hbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBsaW5rRWwuc2VsZWN0aW9uID0gcm93LnNlbGVjdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBsaW5rRWw7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICBdOworICAgIH0sCisKKyAgICBoYXNSZWxhdGVkRXZlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiAodGhpcy5ldmVudEdyb3Vwc18gJiYgdGhpcy5ldmVudEdyb3Vwc18ubGVuZ3RoID4gMCk7CisgICAgfSwKKworICAgIHNldFJlbGF0ZWRFdmVudHM6IGZ1bmN0aW9uKGV2ZW50U2V0KSB7CisgICAgICB0aGlzLmV2ZW50R3JvdXBzXyA9IFtdOworICAgICAgdGhpcy5hZGRDb25uZWN0ZWRGbG93c18oZXZlbnRTZXQpOworICAgICAgdGhpcy5hZGRDb25uZWN0ZWRFdmVudHNfKGV2ZW50U2V0KTsKKyAgICAgIHRoaXMuYWRkT3ZlcmxhcHBpbmdTYW1wbGVzXyhldmVudFNldCk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBhZGRDb25uZWN0ZWRGbG93c186IGZ1bmN0aW9uKGV2ZW50U2V0KSB7CisgICAgICB2YXIgY2xhc3NpZmllciA9IG5ldyB0ci51aS5hbmFseXNpcy5GbG93Q2xhc3NpZmllcigpOworICAgICAgZXZlbnRTZXQuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgeworICAgICAgICBpZiAoc2xpY2UuaW5GbG93RXZlbnRzKSB7CisgICAgICAgICAgc2xpY2UuaW5GbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZmxvdykgeworICAgICAgICAgICAgY2xhc3NpZmllci5hZGRJbkZsb3coZmxvdyk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNsaWNlLm91dEZsb3dFdmVudHMpIHsKKyAgICAgICAgICBzbGljZS5vdXRGbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZmxvdykgeworICAgICAgICAgICAgY2xhc3NpZmllci5hZGRPdXRGbG93KGZsb3cpOworICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIGlmICghY2xhc3NpZmllci5oYXNFdmVudHMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgYWRkVG9FdmVudEdyb3VwcyA9IGZ1bmN0aW9uKHR5cGUsIGZsb3dFdmVudCkgeworICAgICAgICB0aGlzLmV2ZW50R3JvdXBzXy5wdXNoKHsKKyAgICAgICAgICB0eXBlOiB0eXBlLAorICAgICAgICAgIHNlbGVjdGlvbjogbmV3IHRyLm1vZGVsLkV2ZW50U2V0KGZsb3dFdmVudCksCisgICAgICAgICAgbmFtZTogZmxvd0V2ZW50LnRpdGxlCisgICAgICAgIH0pOworICAgICAgfTsKKworICAgICAgY2xhc3NpZmllci5pbkZsb3dFdmVudHMuZm9yRWFjaCgKKyAgICAgICAgICBhZGRUb0V2ZW50R3JvdXBzLmJpbmQodGhpcywgJ0luY29taW5nIGZsb3cnKSk7CisgICAgICBjbGFzc2lmaWVyLm91dEZsb3dFdmVudHMuZm9yRWFjaCgKKyAgICAgICAgICBhZGRUb0V2ZW50R3JvdXBzLmJpbmQodGhpcywgJ091dGdvaW5nIGZsb3cnKSk7CisgICAgICBjbGFzc2lmaWVyLmludGVybmFsRmxvd0V2ZW50cy5mb3JFYWNoKAorICAgICAgICAgIGFkZFRvRXZlbnRHcm91cHMuYmluZCh0aGlzLCAnSW50ZXJuYWwgZmxvdycpKTsKKyAgICB9LAorCisgICAgYWRkQ29ubmVjdGVkRXZlbnRzXzogZnVuY3Rpb24oZXZlbnRTZXQpIHsKKyAgICAgIGlmIChldmVudFNldC5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHByZWNlZGluZ0V2ZW50cyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChldmVudFNldC50b0FycmF5KCkpOworICAgICAgdmFyIGZvbGxvd2luZ0V2ZW50cyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChldmVudFNldC50b0FycmF5KCkpOworCisgICAgICB2YXIgaSA9IDA7CisgICAgICB3aGlsZSAoaSA8IHByZWNlZGluZ0V2ZW50cy5sZW5ndGgpIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gcHJlY2VkaW5nRXZlbnRzW2ldOworICAgICAgICB0aGlzLmFkZEluRmxvd0V2ZW50c18oZXZlbnQsIHByZWNlZGluZ0V2ZW50cyk7CisgICAgICAgIHRoaXMuYWRkQW5jZXN0b3JzXyhldmVudCwgcHJlY2VkaW5nRXZlbnRzKTsKKyAgICAgICAgaWYgKGV2ZW50LnN0YXJ0U2xpY2UpCisgICAgICAgICAgcHJlY2VkaW5nRXZlbnRzLnB1c2goZXZlbnQuc3RhcnRTbGljZSk7CisgICAgICAgIGkrKzsKKyAgICAgIH0KKworICAgICAgaSA9IDA7CisgICAgICB3aGlsZSAoaSA8IGZvbGxvd2luZ0V2ZW50cy5sZW5ndGgpIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gZm9sbG93aW5nRXZlbnRzW2ldOworICAgICAgICB0aGlzLmFkZE91dEZsb3dFdmVudHNfKGV2ZW50LCBmb2xsb3dpbmdFdmVudHMpOworICAgICAgICB0aGlzLmFkZERlc2NlbmRlbnRzXyhldmVudCwgZm9sbG93aW5nRXZlbnRzKTsKKyAgICAgICAgaWYgKGV2ZW50LmVuZFNsaWNlKQorICAgICAgICAgIGZvbGxvd2luZ0V2ZW50cy5wdXNoKGV2ZW50LmVuZFNsaWNlKTsKKyAgICAgICAgaSsrOworICAgICAgfQorCisgICAgICB2YXIgYWxsRXZlbnRzID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KHByZWNlZGluZ0V2ZW50cy50b0FycmF5KCkpOworICAgICAgZm9sbG93aW5nRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZSkgeworICAgICAgICBhbGxFdmVudHMucHVzaChlKTsKKyAgICAgIH0pOworICAgICAgaSA9IDA7CisgICAgICB3aGlsZSAoaSA8IGFsbEV2ZW50cy5sZW5ndGgpIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gYWxsRXZlbnRzW2ldOworICAgICAgICB0aGlzLmFkZEluRmxvd0V2ZW50c18oZXZlbnQsIGFsbEV2ZW50cyk7CisgICAgICAgIHRoaXMuYWRkT3V0Rmxvd0V2ZW50c18oZXZlbnQsIGFsbEV2ZW50cyk7CisgICAgICAgIHRoaXMuYWRkQW5jZXN0b3JzXyhldmVudCwgYWxsRXZlbnRzKTsKKyAgICAgICAgdGhpcy5hZGREZXNjZW5kZW50c18oZXZlbnQsIGFsbEV2ZW50cyk7CisgICAgICAgIGlmIChldmVudC5zdGFydFNsaWNlKQorICAgICAgICAgIGFsbEV2ZW50cy5wdXNoKGV2ZW50LnN0YXJ0U2xpY2UpOworICAgICAgICBpZiAoZXZlbnQuZW5kU2xpY2UpCisgICAgICAgICAgYWxsRXZlbnRzLnB1c2goZXZlbnQuZW5kU2xpY2UpOworICAgICAgICBpKys7CisgICAgICB9CisKKyAgICAgIGlmIChwcmVjZWRpbmdFdmVudHMubGVuZ3RoICE9PSBldmVudFNldC5sZW5ndGgpIHsKKyAgICAgICAgdGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7CisgICAgICAgICAgdHlwZTogJ1ByZWNlZGluZyBldmVudHMnLAorICAgICAgICAgIHRvb2x0aXA6ICdBbGwgZXZlbnRzIHRoYXQgaGF2ZSBsZWQgdG8gdGhlIHNlbGVjdGVkIG9uZShzKSwgJyArCisgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3RlZCBieSBmbG93IGFycm93cyBvciBieSBoaWVyYXJjaHkuJywKKyAgICAgICAgICBzZWxlY3Rpb246IHByZWNlZGluZ0V2ZW50cworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIGlmIChmb2xsb3dpbmdFdmVudHMubGVuZ3RoICE9PSBldmVudFNldC5sZW5ndGgpIHsKKyAgICAgICAgdGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7CisgICAgICAgICAgdHlwZTogJ0ZvbGxvd2luZyBldmVudHMnLAorICAgICAgICAgIHRvb2x0aXA6ICdBbGwgZXZlbnRzIHRoYXQgaGF2ZSBiZWVuIGNhdXNlZCBieSB0aGUgc2VsZWN0ZWQgb25lKHMpLCAnICsKKyAgICAgICAgICAgICAgICAgICAnY29ubmVjdGVkIGJ5IGZsb3cgYXJyb3dzIG9yIGJ5IGNhbGwgc3RhY2suJywKKyAgICAgICAgICBzZWxlY3Rpb246IGZvbGxvd2luZ0V2ZW50cworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIGlmIChhbGxFdmVudHMubGVuZ3RoICE9PSBldmVudFNldC5sZW5ndGgpIHsKKyAgICAgICAgdGhpcy5ldmVudEdyb3Vwc18ucHVzaCh7CisgICAgICAgICAgdHlwZTogJ0FsbCBjb25uZWN0ZWQgZXZlbnRzJywKKyAgICAgICAgICB0b29sdGlwOiAnQWxsIGV2ZW50cyBjb25uZWN0ZWQgdG8gdGhlIHNlbGVjdGVkIG9uZShzKSBieSBmbG93ICcgKworICAgICAgICAgICAgICAgICAgICdhcnJvd3Mgb3IgYnkgY2FsbCBzdGFjay4nLAorICAgICAgICAgIHNlbGVjdGlvbjogYWxsRXZlbnRzCisgICAgICAgIH0pOworICAgICAgfQorICAgIH0sCisKKyAgICBhZGRJbkZsb3dFdmVudHNfOiBmdW5jdGlvbihldmVudCwgZXZlbnRTZXQpIHsKKyAgICAgIGlmICghZXZlbnQuaW5GbG93RXZlbnRzKQorICAgICAgICByZXR1cm47CisgICAgICBldmVudC5pbkZsb3dFdmVudHMuZm9yRWFjaChmdW5jdGlvbihlKSB7CisgICAgICAgIGV2ZW50U2V0LnB1c2goZSk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgYWRkT3V0Rmxvd0V2ZW50c186IGZ1bmN0aW9uKGV2ZW50LCBldmVudFNldCkgeworICAgICAgaWYgKCFldmVudC5vdXRGbG93RXZlbnRzKQorICAgICAgICByZXR1cm47CisgICAgICBldmVudC5vdXRGbG93RXZlbnRzLmZvckVhY2goZnVuY3Rpb24oZSkgeworICAgICAgICBldmVudFNldC5wdXNoKGUpOworICAgICAgfSk7CisgICAgfSwKKworICAgIGFkZEFuY2VzdG9yc186IGZ1bmN0aW9uKGV2ZW50LCBldmVudFNldCkgeworICAgICAgaWYgKCFldmVudC5pdGVyYXRlQWxsQW5jZXN0b3JzKQorICAgICAgICByZXR1cm47CisgICAgICBldmVudC5pdGVyYXRlQWxsQW5jZXN0b3JzKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZXZlbnRTZXQucHVzaChlKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBhZGREZXNjZW5kZW50c186IGZ1bmN0aW9uKGV2ZW50LCBldmVudFNldCkgeworICAgICAgaWYgKCFldmVudC5pdGVyYXRlQWxsRGVzY2VuZGVudHMpCisgICAgICAgIHJldHVybjsKKyAgICAgIGV2ZW50Lml0ZXJhdGVBbGxEZXNjZW5kZW50cyhmdW5jdGlvbihlKSB7CisgICAgICAgIGV2ZW50U2V0LnB1c2goZSk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLy8gRmluZCB0aGUgW2ZpcnN0LCBsYXN0XSBpbmRleCBvZiB0aGUgc2FtcGxlcyBvdmVybGFwcGluZyBzbGljZSwgYXNzdW1pbmcKKyAgICAvLyBzYW1wbGVzIGFyZSBzb3J0ZWQuIHxsYXN0fCBpcyBwYXN0LXRoZS1lbmQgc28gcmV0dXJuZWQgaW5kaWNlcyBjYW4gYmUKKyAgICAvLyB1c2VkIHdpdGggQXJyYXkuc2xpY2UuCisgICAgZmluZE92ZXJsYXBwaW5nU2FtcGxlSW5kaWNlc186IGZ1bmN0aW9uKHNhbXBsZXMsIHNsaWNlKSB7CisgICAgICAvLyBCaW5hcnkgc2VhcmNoLiB8dGVzdHwgaXMgYSBmdW5jdGlvbiB0aGF0IHNob3VsZCByZXR1cm4gdHJ1ZSB3aGVuIHdlCisgICAgICAvLyBuZWVkIHRvIGV4cGxvcmUgdGhlIGxlZnQgYnJhbmNoIGFuZCBmYWxzZSB0byBleHBsb3JlIHRoZSByaWdodCBicmFuY2guCisgICAgICBmdW5jdGlvbiBiaW5TZWFyY2godGVzdCkgeworICAgICAgICB2YXIgaTAgPSAwOworICAgICAgICB2YXIgaTEgPSBzYW1wbGVzLmxlbmd0aDsKKyAgICAgICAgd2hpbGUgKGkwIDwgaTEgLSAxKSB7CisgICAgICAgICAgdmFyIGkgPSBNYXRoLnRydW5jKChpMCArIGkxKSAvIDIpOworICAgICAgICAgIGlmICh0ZXN0KGkpKQorICAgICAgICAgICAgaTEgPSBpOyAgLy8gRXhwbG9yZSB0aGUgbGVmdCBicmFuY2guCisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaTAgPSBpOyAgLy8gRXhwbG9yZSB0aGUgcmlnaHQgYnJhbmNoLgorICAgICAgICB9CisgICAgICAgIHJldHVybiBpMTsKKyAgICAgIH0KKworICAgICAgdmFyIGZpcnN0ID0gYmluU2VhcmNoKGZ1bmN0aW9uKGkpIHsKKyAgICAgICAgcmV0dXJuIHNsaWNlLnN0YXJ0IDw9IHNhbXBsZXNbaV0uc3RhcnQ7CisgICAgICB9KTsKKyAgICAgIHZhciBzbGljZUVuZCA9IHNsaWNlLnN0YXJ0ICsgc2xpY2UuZHVyYXRpb247CisgICAgICB2YXIgbGFzdCA9IGJpblNlYXJjaChmdW5jdGlvbihpKSB7CisgICAgICAgIHJldHVybiBzbGljZUVuZCA8IHNhbXBsZXNbaV0uc3RhcnQ7CisgICAgICB9KTsKKyAgICAgIHJldHVybiBbZmlyc3QsIGxhc3RdOworICAgIH0sCisKKyAgICBhZGRPdmVybGFwcGluZ1NhbXBsZXNfOiBmdW5jdGlvbihldmVudFNldCkgeworICAgICAgdmFyIHNhbXBsZXMgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQ7CisgICAgICBldmVudFNldC5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICAgIGlmICghc2xpY2UucGFyZW50Q29udGFpbmVyIHx8ICFzbGljZS5wYXJlbnRDb250YWluZXIuc2FtcGxlcykKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciBjYW5kaWRhdGVzID0gc2xpY2UucGFyZW50Q29udGFpbmVyLnNhbXBsZXM7CisgICAgICAgIHZhciBmaWx0ZXJlZFNhbXBsZXMgPSBjYW5kaWRhdGVzLnNsaWNlLmFwcGx5KGNhbmRpZGF0ZXMsCisgICAgICAgICAgICB0aGlzLmZpbmRPdmVybGFwcGluZ1NhbXBsZUluZGljZXNfKGNhbmRpZGF0ZXMsIHNsaWNlKSk7CisgICAgICAgIGZpbHRlcmVkU2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZSkgeworICAgICAgICAgIHNhbXBsZXMucHVzaChzYW1wbGUpOworICAgICAgICB9KTsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICBpZiAoc2FtcGxlcy5sZW5ndGggPiAwKSB7CisgICAgICAgIHRoaXMuZXZlbnRHcm91cHNfLnB1c2goeworICAgICAgICAgIHR5cGU6ICdPdmVybGFwcGluZyBzYW1wbGVzJywKKyAgICAgICAgICB0b29sdGlwOiAnQWxsIHNhbXBsZXMgb3ZlcmxhcHBpbmcgdGhlIHNlbGVjdGVkIHNsaWNlKHMpLicsCisgICAgICAgICAgc2VsZWN0aW9uOiBzYW1wbGVzCisgICAgICAgIH0pOworICAgICAgfQorICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLnRhYmxlOworICAgICAgaWYgKHRoaXMuZXZlbnRHcm91cHNfID09PSB1bmRlZmluZWQpCisgICAgICAgIHRhYmxlLnRhYmxlUm93cyA9IFtdOworICAgICAgZWxzZQorICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSB0aGlzLmV2ZW50R3JvdXBzXy5zbGljZSgpOworICAgICAgdGFibGUucmVidWlsZCgpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3JlbGF0ZWRfZXZlbnRzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHNfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMzQzYWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3JlbGF0ZWRfZXZlbnRzX3Rlc3QuaHRtbApAQCAtMCwwICsxLDIxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zYW1wbGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RocmVhZF9zbGljZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvcmVsYXRlZF9ldmVudHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OworICB2YXIgbmV3Rmxvd0V2ZW50RXggPSB0ci5jLnRlc3RfdXRpbHMubmV3Rmxvd0V2ZW50RXg7CisKKyAgZnVuY3Rpb24gY3JlYXRlTW9kZWwoKSB7CisgICAgdmFyIG0gPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obSkgeworICAgICAgbS5wMSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworCisgICAgICBtLnQyID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIG0udDMgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDMpOworICAgICAgbS50NCA9IG0ucDEuZ2V0T3JDcmVhdGVUaHJlYWQoNCk7CisKKyAgICAgIC8vIFNldHVwIHNhbXBsZXMgYW5kIHNsaWNlcyBpbiB0aGlzIHdheToKKyAgICAgIC8vICAgICAwICAgIDUgICAgMTAgICAxNSAgIDIwCisgICAgICAvLyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgICAgLy8gdDIgICAgICAgICAgICAgICoKKyAgICAgIC8vICAgICBbIGEgIF1bIF1hYQorICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIC8vIHQzICAgICAgICAgKiAgKiAqICAqICAgICoKKyAgICAgIC8vICAgICAgICAgICAgICAgKiAgICAqCisgICAgICAvLyAgICAgICAgICAgICAgIFsgYiAgXQorICAgICAgLy8gICAgICAgICAgICAgICAgW2JiXQorICAgICAgLy8gICAgICAgICAgICAgICAgIFtdYmJiCisgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgLy8gdDQgICAgICAgICAgICAgICAgICAgICAgfGMKKyAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICBtLnNhbXBsZXMucHVzaCgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlNhbXBsZShudWxsLCBtLnQzLCAnYjEwXzEnLCAxMCksCisgICAgICAgIG5ldyB0ci5tb2RlbC5TYW1wbGUobnVsbCwgbS50MywgJ2I3JywgNyksCisgICAgICAgIG5ldyB0ci5tb2RlbC5TYW1wbGUobnVsbCwgbS50MywgJ2IxMicsIDEyKSwKKyAgICAgICAgbmV3IHRyLm1vZGVsLlNhbXBsZShudWxsLCBtLnQzLCAnYjIwJywgMjApLAorICAgICAgICBuZXcgdHIubW9kZWwuU2FtcGxlKG51bGwsIG0udDMsICdiMTBfMicsIDEwKSwKKyAgICAgICAgbmV3IHRyLm1vZGVsLlNhbXBsZShudWxsLCBtLnQzLCAnYjE1XzEnLCAxNSksCisgICAgICAgIG5ldyB0ci5tb2RlbC5TYW1wbGUobnVsbCwgbS50MywgJ2IxNV8yJywgMTUpLAorICAgICAgICBuZXcgdHIubW9kZWwuU2FtcGxlKG51bGwsIG0udDIsICdhMTInLCAxMikKKyAgICAgICk7CisKKyAgICAgIG0uc0EgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDUsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNBQSA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdhYScsIHN0YXJ0OiA2LCBlbmQ6IDgsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNCID0gbS50My5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMTAsIGVuZDogMTUsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNCQiA9IG0udDMuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdiYicsIHN0YXJ0OiAxMSwgZW5kOiAxNCwKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0ci5tb2RlbC5UaHJlYWRTbGljZX0pKTsKKyAgICAgIG0uc0JCQiA9IG0udDMuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdiYmInLCBzdGFydDogMTIsIGVuZDogMTMsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNDID0gbS50NC5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2MnLCBzdGFydDogMjAsIGVuZDogMjAsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisKKyAgICAgIG0udDIuY3JlYXRlU3ViU2xpY2VzKCk7CisgICAgICBtLnQzLmNyZWF0ZVN1YlNsaWNlcygpOworICAgICAgbS50NC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgICAgLy8gQWRkIGZsb3cgZXZlbnRzLgorICAgICAgbS5mMCA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2FfYWEnLCBzdGFydDogNSwgZW5kOiA2LAorICAgICAgICBzdGFydFNsaWNlOiBtLnNBLAorICAgICAgICBlbmRTbGljZTogbS5zQUEKKyAgICAgIH0pOworICAgICAgbS5mMSA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2FfYicsIHN0YXJ0OiAwLCBlbmQ6IDEwLAorICAgICAgICBzdGFydFNsaWNlOiBtLnNBLAorICAgICAgICBlbmRTbGljZTogbS5zQgorICAgICAgfSk7CisgICAgICBtLmYyID0gbmV3Rmxvd0V2ZW50RXgoeworICAgICAgICAndGl0bGUnOiAnYl9iYmInLCBzdGFydDogMTAsIGVuZDogMTIsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uc0IsCisgICAgICAgIGVuZFNsaWNlOiBtLnNCQkIKKyAgICAgIH0pOworICAgICAgbS5mMyA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2JiYl9jJywgc3RhcnQ6IDEzLCBlbmQ6IDIwLAorICAgICAgICBzdGFydFNsaWNlOiBtLnNCQkIsCisgICAgICAgIGVuZFNsaWNlOiBtLnNDCisgICAgICB9KTsKKyAgICB9KTsKKyAgICByZXR1cm4gbTsKKyAgfTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gY3JlYXRlTW9kZWwoKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXJlbGF0ZWQtZXZlbnRzJyk7CisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgKKyAgICAgICAgW20uc0EsIG0uZjAsIG0uc0FBLCBtLmYxLCBtLnNCLCBtLmYyLCBtLnNCQiwgbS5zQkJCLCBtLmYzLCBtLnNDXSk7CisgICAgdmlld0VsLnNldFJlbGF0ZWRFdmVudHMoc2VsZWN0aW9uKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKworICAgIC8vIENoZWNrIHRoYXQgdGhlIGVsZW1lbnQgaGFuZGxlcyBtdWx0aXBsZSBzZXRSZWxhdGVkRXZlbnRzIGNhbGxzIGNvcnJlY3RseS4KKyAgICBhc3NlcnQubGVuZ3RoT2Yodmlld0VsLiQudGFibGUudGFibGVSb3dzLCA1KTsKKyAgICB2aWV3RWwuc2V0UmVsYXRlZEV2ZW50cyhzZWxlY3Rpb24pOworICAgIGFzc2VydC5sZW5ndGhPZih2aWV3RWwuJC50YWJsZS50YWJsZVJvd3MsIDUpOworICB9KTsKKworICB0ZXN0KCd2YWxpZGF0ZUZsb3dzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVNb2RlbCgpOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtcmVsYXRlZC1ldmVudHMnKTsKKyAgICB2aWV3RWwuc2V0UmVsYXRlZEV2ZW50cyhuZXcgdHIubW9kZWwuRXZlbnRTZXQoW20uc0IsIG0uc0JCLCBtLnNCQkJdKSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisKKyAgICB2YXIgaW5GbG93cywgb3V0Rmxvd3MsIGludGVybmFsRmxvd3M7CisgICAgdmlld0VsLiQudGFibGUudGFibGVSb3dzLmZvckVhY2goZnVuY3Rpb24ocm93KSB7CisgICAgICBpZiAocm93LnR5cGUgPT09ICdJbmNvbWluZyBmbG93JykgeworICAgICAgICBhc3NlcnQuaXNVbmRlZmluZWQoaW5GbG93cyk7CisgICAgICAgIGluRmxvd3MgPSByb3cuc2VsZWN0aW9uOworICAgICAgfQorICAgICAgaWYgKHJvdy50eXBlID09PSAnT3V0Z29pbmcgZmxvdycpIHsKKyAgICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG91dEZsb3dzKTsKKyAgICAgICAgb3V0Rmxvd3MgPSByb3cuc2VsZWN0aW9uOworICAgICAgfQorICAgICAgaWYgKHJvdy50eXBlID09PSAnSW50ZXJuYWwgZmxvdycpIHsKKyAgICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGludGVybmFsRmxvd3MpOworICAgICAgICBpbnRlcm5hbEZsb3dzID0gcm93LnNlbGVjdGlvbjsKKyAgICAgIH0KKyAgICB9KTsKKyAgICBhc3NlcnQuZXF1YWwoaW5GbG93cy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChpbkZsb3dzWzBdLnRpdGxlLCAnYV9iJyk7CisgICAgYXNzZXJ0LmVxdWFsKG91dEZsb3dzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKG91dEZsb3dzWzBdLnRpdGxlLCAnYmJiX2MnKTsKKyAgICBhc3NlcnQuZXF1YWwoaW50ZXJuYWxGbG93cy5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChpbnRlcm5hbEZsb3dzWzBdLnRpdGxlLCAnYl9iYmInKTsKKyAgfSk7CisKKyAgdGVzdCgndmFsaWRhdGVDb25uZWN0ZWRFdmVudHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IGNyZWF0ZU1vZGVsKCk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1yZWxhdGVkLWV2ZW50cycpOworICAgIHZpZXdFbC5zZXRSZWxhdGVkRXZlbnRzKG5ldyB0ci5tb2RlbC5FdmVudFNldChbbS5zQkJdKSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisKKyAgICB2YXIgcHJlY2VkaW5nRXZlbnRzLCBmb2xsb3dpbmdFdmVudHMsIGFsbEV2ZW50czsKKyAgICB2aWV3RWwuJC50YWJsZS50YWJsZVJvd3MuZm9yRWFjaChmdW5jdGlvbihyb3cpIHsKKyAgICAgIGlmIChyb3cudHlwZSA9PT0gJ1ByZWNlZGluZyBldmVudHMnKSB7CisgICAgICAgIGFzc2VydC5pc1VuZGVmaW5lZChwcmVjZWRpbmdFdmVudHMpOworICAgICAgICBwcmVjZWRpbmdFdmVudHMgPSByb3cuc2VsZWN0aW9uOworICAgICAgfQorICAgICAgaWYgKHJvdy50eXBlID09PSAnRm9sbG93aW5nIGV2ZW50cycpIHsKKyAgICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGZvbGxvd2luZ0V2ZW50cyk7CisgICAgICAgIGZvbGxvd2luZ0V2ZW50cyA9IHJvdy5zZWxlY3Rpb247CisgICAgICB9CisgICAgICBpZiAocm93LnR5cGUgPT09ICdBbGwgY29ubmVjdGVkIGV2ZW50cycpIHsKKyAgICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGFsbEV2ZW50cyk7CisgICAgICAgIGFsbEV2ZW50cyA9IHJvdy5zZWxlY3Rpb247CisgICAgICB9CisgICAgfSk7CisKKyAgICB2YXIgcHJlY2VkaW5nVGl0bGVzID0gcHJlY2VkaW5nRXZlbnRzLm1hcChmdW5jdGlvbihlKSB7CisgICAgICByZXR1cm4gZS50aXRsZTsKKyAgICB9KTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMocHJlY2VkaW5nVGl0bGVzLCBbJ2EnLCAnYV9iJywgJ2InLCAnYmInXSk7CisKKyAgICB2YXIgZm9sbG93aW5nVGl0bGVzID0gZm9sbG93aW5nRXZlbnRzLm1hcChmdW5jdGlvbihlKSB7CisgICAgICByZXR1cm4gZS50aXRsZTsKKyAgICB9KTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoZm9sbG93aW5nVGl0bGVzLCBbJ2JiJywgJ2JiYicsICdiYmJfYycsICdjJ10pOworCisgICAgdmFyIGFsbFRpdGxlcyA9IGFsbEV2ZW50cy5tYXAoZnVuY3Rpb24oZSkgeworICAgICAgcmV0dXJuIGUudGl0bGU7CisgICAgfSk7CisgICAgYXNzZXJ0LnNhbWVNZW1iZXJzKGFsbFRpdGxlcywKKyAgICAgICAgWydhJywgJ2FfYWEnLCAnYWEnLCAnYV9iJywgJ2InLCAnYmInLCAnYmJiJywgJ2JfYmJiJywgJ2JiYl9jJywgJ2MnXSk7CisgIH0pOworCisgIHRlc3QoJ3ZhbGlkYXRlT3ZlcmxhcHBpbmdTYW1wbGVzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVNb2RlbCgpOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtcmVsYXRlZC1ldmVudHMnKTsKKyAgICB2aWV3RWwuc2V0UmVsYXRlZEV2ZW50cyhuZXcgdHIubW9kZWwuRXZlbnRTZXQoW20uc0JdKSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXdFbCk7CisKKyAgICB2YXIgb3ZlcmxhcHBpbmdTYW1wbGVzOworICAgIHZpZXdFbC4kLnRhYmxlLnRhYmxlUm93cy5mb3JFYWNoKGZ1bmN0aW9uKHJvdykgeworICAgICAgaWYgKHJvdy50eXBlID09PSAnT3ZlcmxhcHBpbmcgc2FtcGxlcycpIHsKKyAgICAgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKG92ZXJsYXBwaW5nU2FtcGxlcyk7CisgICAgICAgIG92ZXJsYXBwaW5nU2FtcGxlcyA9IHJvdy5zZWxlY3Rpb247CisgICAgICB9CisgICAgfSk7CisKKyAgICB2YXIgc2FtcGxlc1RpdGxlcyA9IG92ZXJsYXBwaW5nU2FtcGxlcy5tYXAoZnVuY3Rpb24oZSkgeworICAgICAgcmV0dXJuIGUudGl0bGU7CisgICAgfSk7CisgICAgYXNzZXJ0LnNhbWVNZW1iZXJzKHNhbXBsZXNUaXRsZXMsCisgICAgICAgIFsnYjEwXzEnLCAnYjEwXzInLCAnYjEyJywgJ2IxNV8xJywgJ2IxNV8yJ10pOworICB9KTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmEzNTI2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zZWxlY3Rpb25fc3VtbWFyeV90YWJsZS5odG1sCkBAIC0wLDAgKzEsOTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZSc+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgI3RhYmxlIHsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0idGFibGUiPgorICAgIDwvdHItdWktYi10YWJsZT4KKyAgICA8L2Rpdj4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICB9LAorCisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLnRhYmxlLnNob3dIZWFkZXIgPSBmYWxzZTsKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ05hbWUnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy50aXRsZTsgfSwKKyAgICAgICAgICB3aWR0aDogJzM1MHB4JworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdWYWx1ZScsCisgICAgICAgICAgd2lkdGg6ICcxMDAlJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgICByZXR1cm4gcm93LnZhbHVlOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgXTsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uXzsKKyAgICAgIHZhciByb3dzID0gW107CisgICAgICB2YXIgaGFzUmFuZ2U7CisgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fICYmICghc2VsZWN0aW9uLmJvdW5kcy5pc0VtcHR5KSkKKyAgICAgICAgaGFzUmFuZ2UgPSB0cnVlOworICAgICAgZWxzZQorICAgICAgICBoYXNSYW5nZSA9IGZhbHNlOworCisgICAgICB2YXIgdGltZVNwYW5Db25maWcgPSB7b3duZXJEb2N1bWVudDogdGhpcy5vd25lckRvY3VtZW50fTsKKworICAgICAgcm93cy5wdXNoKHsKKyAgICAgICAgdGl0bGU6ICdTZWxlY3Rpb24gc3RhcnQnLAorICAgICAgICB2YWx1ZTogaGFzUmFuZ2UgPyB0ci51aS51bml0cy5jcmVhdGVUaW1lU3RhbXBTcGFuKAorICAgICAgICAgICAgc2VsZWN0aW9uLmJvdW5kcy5taW4sIHRpbWVTcGFuQ29uZmlnKSA6ICc8ZW1wdHk+JworICAgICAgfSk7CisgICAgICByb3dzLnB1c2goeworICAgICAgICB0aXRsZTogJ1NlbGVjdGlvbiBleHRlbnQnLAorICAgICAgICB2YWx1ZTogaGFzUmFuZ2UgPyB0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKAorICAgICAgICAgICAgc2VsZWN0aW9uLmJvdW5kcy5yYW5nZSwgdGltZVNwYW5Db25maWcpIDogJzxlbXB0eT4nCisgICAgICB9KTsKKworICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IHJvd3M7CisgICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NlbGVjdGlvbl9zdW1tYXJ5X3RhYmxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2VsZWN0aW9uX3N1bW1hcnlfdGFibGVfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZjVlZjcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NlbGVjdGlvbl9zdW1tYXJ5X3RhYmxlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3NlbGVjdGlvbl9zdW1tYXJ5X3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgTW9kZWwgPSB0ci5Nb2RlbDsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7CisKKyAgdGVzdCgnbm9TZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3VtbWFyeVRhYmxlID0KKyAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZScpOworICAgIHN1bW1hcnlUYWJsZS5zZWxlY3Rpb24gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1bW1hcnlUYWJsZSk7CisKKyAgICB2YXIgdGFibGVFbCA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHN1bW1hcnlUYWJsZSwgJ3RyLXVpLWItdGFibGUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVFbC50YWJsZVJvd3NbMF0udmFsdWUsICc8ZW1wdHk+Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlRWwudGFibGVSb3dzWzFdLnZhbHVlLCAnPGVtcHR5PicpOworICB9KTsKKworICB0ZXN0KCdlbXB0eVNlbGVjdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzdW1tYXJ5VGFibGUgPQorICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNlbGVjdGlvbi1zdW1tYXJ5LXRhYmxlJyk7CisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHN1bW1hcnlUYWJsZS5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1bW1hcnlUYWJsZSk7CisKKyAgICB2YXIgdGFibGVFbCA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHN1bW1hcnlUYWJsZSwgJ3RyLXVpLWItdGFibGUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVFbC50YWJsZVJvd3NbMF0udmFsdWUsICc8ZW1wdHk+Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlRWwudGFibGVSb3dzWzFdLnZhbHVlLCAnPGVtcHR5PicpOworICB9KTsKKworICB0ZXN0KCdzZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKKyAgICB2YXIgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgIHZhciB0c2cgPSB0aHJlYWQuc2xpY2VHcm91cDsKKworICAgIHRzZy5wdXNoU2xpY2UobmV3U2xpY2VFeCh7dGl0bGU6ICdhJywgc3RhcnQ6IDAsIGVuZDogM30pKTsKKyAgICB0c2cucHVzaFNsaWNlKG5ld1NsaWNlRXgoe3RpdGxlOiAnYicsIHN0YXJ0OiAxLCBlbmQ6IDJ9KSk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2godHNnLnNsaWNlc1swXSk7CisgICAgc2VsZWN0aW9uLnB1c2godHNnLnNsaWNlc1sxXSk7CisKKyAgICB2YXIgc3VtbWFyeVRhYmxlID0KKyAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zZWxlY3Rpb24tc3VtbWFyeS10YWJsZScpOworICAgIHN1bW1hcnlUYWJsZS5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHN1bW1hcnlUYWJsZSk7CisKKyAgICB2YXIgdGFibGVFbCA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmcoCisgICAgICAgIHN1bW1hcnlUYWJsZSwgJ3RyLXVpLWItdGFibGUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVFbC50YWJsZVJvd3NbMF0udmFsdWUudGltZXN0YW1wLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVFbC50YWJsZVJvd3NbMV0udmFsdWUuZHVyYXRpb24sIDMpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9hbGVydF9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfYWxlcnRfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGZjZmExCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfYWxlcnRfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLWFsZXJ0LXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKworICAgICAgdGhpcy50ZXh0Q29udGVudCA9ICcnOworICAgICAgdmFyIHJlYWxWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKKyAgICAgIHJlYWxWaWV3LmFkZEV4dHJhUm93c0NhbGxiYWNrID0gZnVuY3Rpb24ocm93cykgeworICAgICAgICAvLyBBbGVydCBkZXNjcmlwdGlvbi4KKyAgICAgICAgdmFyIGFsZXJ0ID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uX1swXTsKKworICAgICAgICB2YXIgZGVzY3JpcHRpb25FbCA9IHRyLnVpLmIuY3JlYXRlU3Bhbih7CisgICAgICAgICAgdGV4dENvbnRlbnQ6IGFsZXJ0LmluZm8uZGVzY3JpcHRpb24KKyAgICAgICAgfSk7CisgICAgICAgIHJvd3MucHVzaCh7CisgICAgICAgICAgbmFtZTogJ0Rlc2NyaXB0aW9uJywKKyAgICAgICAgICB2YWx1ZTogZGVzY3JpcHRpb25FbAorICAgICAgICB9KTsKKworICAgICAgICAvLyBBc3NvY2lhdGVkIGV2ZW50cy4uLgorICAgICAgICBpZiAoYWxlcnQuYXNzb2NpYXRlZEV2ZW50cy5sZW5ndGgpIHsKKyAgICAgICAgICB2YXIgZXZlbnRTdWJSb3dzID0gW107CisgICAgICAgICAgYWxlcnQuYXNzb2NpYXRlZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50LCBpKSB7CisgICAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50OworICAgICAgICAgICAgfSwgZXZlbnQudXNlckZyaWVuZGx5TmFtZSk7CisgICAgICAgICAgICBldmVudFN1YlJvd3MucHVzaCh7CisgICAgICAgICAgICAgIG5hbWU6IGksCisgICAgICAgICAgICAgIHZhbHVlOiBsaW5rRWwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgIH0pOworCisgICAgICAgICAgcm93cy5wdXNoKHsKKyAgICAgICAgICAgIG5hbWU6ICdBbGVydHMnLCB2YWx1ZTogJycsCisgICAgICAgICAgICBpc0V4cGFuZGVkOiB0cnVlLCBzdWJSb3dzOiBldmVudFN1YlJvd3MKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgfS5iaW5kKHRoaXMpOworCisgICAgICB0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTsKKyAgICAgIHJlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9hc3luY19zbGljZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Nzk1MmIzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfYXN5bmNfc2xpY2Vfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Ij4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGdldEV2ZW50Um93c186IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAvLyBUT0RPKG5kdWNhKTogRmlndXJlIG91dCBpZiB0aGVyZSBpcyBhIGNsZWFuZXIgd2F5IHRvIGRvIHRoaXMuCisgICAgICB2YXIgcm93cyA9IHRoaXMuX19wcm90b19fLl9fcHJvdG9fXy5nZXRFdmVudFJvd3NfKGV2ZW50KTsKKworICAgICAgLy8gUHV0IHRoZSBJRCB1cCB0b3AuCisgICAgICByb3dzLnNwbGljZSgwLCAwLCB7CisgICAgICAgIG5hbWU6ICdJRCcsCisgICAgICAgIHZhbHVlOiBldmVudC5pZAorICAgICAgfSk7CisgICAgICByZXR1cm4gcm93czsKKyAgICB9LAorCisgICAgZ2V0IHJlbGF0ZWRFdmVudHNUb0hpZ2hsaWdodCgpIHsKKyAgICAgIGlmICghdGhpcy5jdXJyZW50U2VsZWN0aW9uXykKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdLmFzc29jaWF0ZWRFdmVudHM7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZThiNTgyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfYXN5bmNfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX2FzeW5jX3NsaWNlX3N1Yl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIG5ld0FzeW5jU2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlRXg7CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisgICAgdDEuYXN5bmNTbGljZUdyb3VwLnB1c2gobmV3QXN5bmNTbGljZUV4KHsKKyAgICAgIGlkOiAzMTQxNSwKKyAgICAgIHRpdGxlOiAnYScsCisgICAgICBzdGFydDogMTAsCisgICAgICBkdXJhdGlvbjogMjAsCisgICAgICBzdGFydFRocmVhZDogdDEsCisgICAgICBlbmRUaHJlYWQ6IHQxCisgICAgfSkpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKHQxLmFzeW5jU2xpY2VHcm91cC5zbGljZXNbMF0pOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc2luZ2xlLWFzeW5jLXNsaWNlLXN1Yi12aWV3Jyk7CisgICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKyAgfSk7CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2NwdV9zbGljZV9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1YzdhZWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDEzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtY3B1LXNsaWNlLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIHRhYmxlIHsKKyAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CisgICAgICBib3JkZXItd2lkdGg6IDA7CisgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OworICAgICAgd2lkdGg6IDEwMCU7CisgICAgfQorCisgICAgdGFibGUgdHIgPiB0ZDpmaXJzdC1jaGlsZCB7CisgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKKyAgICB9CisKKyAgICB0YWJsZSB0ciA+IHRkIHsKKyAgICAgIHBhZGRpbmc6IDJweCA0cHggMnB4IDRweDsKKyAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsKKyAgICAgIHdpZHRoOiAxNTBweDsKKyAgICB9CisKKyAgICB0YWJsZSB0ZCB0ZCB7CisgICAgICBwYWRkaW5nOiAwIDAgMCAwOworICAgICAgd2lkdGg6IGF1dG87CisgICAgfQorICAgIHRyIHsKKyAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorCisgICAgdHI6bnRoLWNoaWxkKDJuKzApIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMmUyZTI7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHRhYmxlPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+UnVubmluZyBwcm9jZXNzOjwvdGQ+PHRkIGlkPSJwcm9jZXNzLW5hbWUiPjwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+UnVubmluZyB0aHJlYWQ6PC90ZD48dGQgaWQ9InRocmVhZC1uYW1lIj48L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPlN0YXJ0OjwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8dHItdWktdS10aW1lLXN0YW1wLXNwYW4gaWQ9InN0YXJ0Ij4KKyAgICAgICAgICA8L3RyLXVpLXUtdGltZS1zdGFtcC1zcGFuPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPkR1cmF0aW9uOjwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8dHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4gaWQ9ImR1cmF0aW9uIj4KKyAgICAgICAgICA8L3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPkFjdGl2ZSBzbGljZXM6PC90ZD48dGQgaWQ9InJ1bm5pbmctdGhyZWFkIj48L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPkFyZ3M6PC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDx0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcgaWQ9ImFyZ3MiPgorICAgICAgICAgIDwvdHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3PgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgUG9seW1lcih7CisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPT0gMSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBzbGljZXMnKTsKKyAgICAgIGlmICghKHNlbGVjdGlvblswXSBpbnN0YW5jZW9mIHRyLm1vZGVsLkNwdVNsaWNlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHRocmVhZCB0aW1lIHNsaWNlcycpOworCisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworCisgICAgICB2YXIgY3B1U2xpY2UgPSBzZWxlY3Rpb25bMF07CisgICAgICB2YXIgdGhyZWFkID0gY3B1U2xpY2UudGhyZWFkVGhhdFdhc1J1bm5pbmc7CisKKyAgICAgIHZhciBzaGFkb3dSb290ID0gdGhpcy5zaGFkb3dSb290OworICAgICAgaWYgKHRocmVhZCkgeworICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNwcm9jZXNzLW5hbWUnKS50ZXh0Q29udGVudCA9CisgICAgICAgICAgICB0aHJlYWQucGFyZW50LnVzZXJGcmllbmRseU5hbWU7CisgICAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3RocmVhZC1uYW1lJykudGV4dENvbnRlbnQgPQorICAgICAgICAgICAgdGhyZWFkLnVzZXJGcmllbmRseU5hbWU7CisgICAgICB9IGVsc2UgeworICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNwcm9jZXNzLW5hbWUnKS5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPQorICAgICAgICAgICAgJ25vbmUnOworICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN0aHJlYWQtbmFtZScpLnRleHRDb250ZW50ID0gY3B1U2xpY2UudGl0bGU7CisgICAgICB9CisKKyAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N0YXJ0JykudGltZXN0YW1wID0gY3B1U2xpY2Uuc3RhcnQ7CisgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNkdXJhdGlvbicpLmR1cmF0aW9uID0gY3B1U2xpY2UuZHVyYXRpb247CisKKyAgICAgIHZhciBydW5uaW5nVGhyZWFkRWwgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNydW5uaW5nLXRocmVhZCcpOworCisgICAgICB2YXIgdGltZVNsaWNlID0gY3B1U2xpY2UuZ2V0QXNzb2NpYXRlZFRpbWVzbGljZSgpOworICAgICAgaWYgKCF0aW1lU2xpY2UpIHsKKyAgICAgICAgcnVubmluZ1RocmVhZEVsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhciB0aHJlYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgIHRocmVhZExpbmsuc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KHRpbWVTbGljZSk7CisgICAgICAgIHRocmVhZExpbmsudGV4dENvbnRlbnQgPSAnQ2xpY2sgdG8gc2VsZWN0JzsKKyAgICAgICAgcnVubmluZ1RocmVhZEVsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICBydW5uaW5nVGhyZWFkRWwudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgICAgcnVubmluZ1RocmVhZEVsLmFwcGVuZENoaWxkKHRocmVhZExpbmspOworICAgICAgfQorCisgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNhcmdzJykub2JqZWN0ID0gY3B1U2xpY2UuYXJnczsKKworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfY3B1X3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGVhMmZlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfY3B1X3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDc4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvbGludXhfcGVyZi9mdHJhY2VfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3NpbmdsZV9jcHVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBjcmVhdGVCYXNpY01vZGVsKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjMgMTI2MjIuNTA2ODkwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1BbmRyb2lkLmxhdW5jaGVyIHByZXZfcGlkPTU4NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UisgPT0+IG5leHRfY29tbT1CaW5kZXJfMSBuZXh0X3BpZD0yMTcgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIGQuLjMgMTI2MjIuNTA2OTE4OiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1CaW5kZXJfMSBwcmV2X3BpZD0yMTcgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPUQgPT0+IG5leHRfY29tbT1BbmRyb2lkLmxhdW5jaGVyIG5leHRfcGlkPTU4NCBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjQgMTI2MjIuNTA2OTM2OiBzY2hlZF93YWtldXA6IGNvbW09QmluZGVyXzEgcGlkPTIxNyBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDEnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJ0FuZHJvaWQubGF1bmNoZXItNTg0ICAgWzAwMV0gZC4uMyAxMjYyMi41MDY5NTA6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUFuZHJvaWQubGF1bmNoZXIgcHJldl9waWQ9NTg0IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SKyA9PT4gbmV4dF9jb21tPUJpbmRlcl8xIG5leHRfcGlkPTIxNyBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gLi4uMSAxMjYyMi41MDcwNTc6IHRyYWNpbmdfbWFya193cml0ZTogQnwxMjh8cXVldWVCdWZmZXInLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSAuLi4xIDEyNjIyLjUwNzE3NTogdHJhY2luZ19tYXJrX3dyaXRlOiBFJywKKyAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gZC4uMyAxMjYyMi41MDcyNTM6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUJpbmRlcl8xIHByZXZfcGlkPTIxNyBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPUFuZHJvaWQubGF1bmNoZXIgbmV4dF9waWQ9NTg0IG5leHRfcHJpbz0xMjAnIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHJldHVybiBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICB9CisKKyAgdGVzdCgnY3B1U2xpY2VWaWV3X3dpdGhDcHVTbGljZU9uRXhpc3RpbmdUaHJlYWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IGNyZWF0ZUJhc2ljTW9kZWwoKTsKKworICAgIHZhciBjcHUgPSBtLmtlcm5lbC5jcHVzWzFdOworICAgIGFzc2VydC5pc0RlZmluZWQoY3B1KTsKKyAgICB2YXIgY3B1U2xpY2UgPSBjcHUuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbCgnQmluZGVyXzEnLCBjcHVTbGljZS50aXRsZSk7CisKKyAgICB2YXIgdGhyZWFkID0gbS5maW5kQWxsVGhyZWFkc05hbWVkKCdCaW5kZXJfMScpWzBdOworICAgIGFzc2VydC5pc0RlZmluZWQodGhyZWFkKTsKKyAgICBhc3NlcnQuZXF1YWwoY3B1U2xpY2UudGhyZWFkVGhhdFdhc1J1bm5pbmcsIHRocmVhZCk7CisKKyAgICB2YXIgdmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc2luZ2xlLWNwdS1zbGljZS1zdWItdmlldycpOworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChjcHVTbGljZSk7CisgICAgdmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworCisgICAgLy8gQ2xpY2tpbmcgdGhlIGFuYWx5c2lzIGxpbmsgc2hvdWxkIGZvY3VzIHRoZSBCaW5kZXIxJ3MgdGltZXNsaWNlLgorICAgIHZhciBkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4gPSBmYWxzZTsKKyAgICB2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICBhc3NlcnQuZXF1YWwoMSwgZS5zZWxlY3Rpb24ubGVuZ3RoKTsKKyAgICAgIGFzc2VydC5lcXVhbCh0aHJlYWQudGltZVNsaWNlc1swXSwgZS5zZWxlY3Rpb25bMF0pOworICAgICAgZGlkU2VsZWN0aW9uQ2hhbmdlSGFwcGVuID0gdHJ1ZTsKKyAgICB9KTsKKyAgICB2aWV3LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigndHItdWktYS1hbmFseXNpcy1saW5rJykuY2xpY2soKTsKKyAgICBhc3NlcnQuaXNUcnVlKGRpZFNlbGVjdGlvbkNoYW5nZUhhcHBlbik7CisgIH0pOworCisgIHRlc3QoJ2NwdVNsaWNlVmlld1dpdGhDcHVTbGljZU9uTWlzc2luZ1RocmVhZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gY3JlYXRlQmFzaWNNb2RlbCgpOworCisgICAgdmFyIGNwdSA9IG0ua2VybmVsLmNwdXNbMV07CisgICAgYXNzZXJ0LmlzRGVmaW5lZChjcHUpOworICAgIHZhciBjcHVTbGljZSA9IGNwdS5zbGljZXNbMV07CisgICAgYXNzZXJ0LmVxdWFsKCdBbmRyb2lkLmxhdW5jaGVyJywgY3B1U2xpY2UudGl0bGUpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChjcHVTbGljZS50aHJlYWQpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKGNwdVNsaWNlKTsKKworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtY3B1LXNsaWNlLXN1Yi12aWV3Jyk7CisgICAgdmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZmNiN2MKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsMjQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3N0YWNrX2ZyYW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX2R1cmF0aW9uX3NwYW4uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbi5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICB9CisgICAgI3RhYmxlIHsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0idGFibGUiPgorICAgIDwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zID0gWworICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdMYWJlbCcsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93Lm5hbWU7IH0sCisgICAgICAgICAgd2lkdGg6ICcxNTBweCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnVmFsdWUnLAorICAgICAgICAgIHdpZHRoOiAnMTAwJScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnZhbHVlOyB9CisgICAgICAgIH0KKyAgICAgIF07CisgICAgICB0aGlzLiQudGFibGUuc2hvd0hlYWRlciA9IGZhbHNlOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPT0gMSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIHNpbmdsZSBzbGljZXMnKTsKKyAgICAgIHRoaXMuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7CisgICAgfSwKKworICAgIHNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrczogZnVuY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0RXZlbnRSb3dzXzogZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHZhciByb3dzID0gW107CisKKyAgICAgIGlmIChldmVudC5lcnJvcikKKyAgICAgICAgcm93cy5wdXNoKHsgbmFtZTogJ0Vycm9yJywgdmFsdWU6IGV2ZW50LmVycm9yIH0pOworCisgICAgICBpZiAoZXZlbnQudGl0bGUpCisgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdUaXRsZScsIHZhbHVlOiBldmVudC50aXRsZSB9KTsKKworICAgICAgaWYgKGV2ZW50LmNhdGVnb3J5KQorICAgICAgICByb3dzLnB1c2goeyBuYW1lOiAnQ2F0ZWdvcnknLCB2YWx1ZTogZXZlbnQuY2F0ZWdvcnkgfSk7CisKKyAgICAgIHZhciBzdGFydEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLXN0YW1wLXNwYW4nKTsKKyAgICAgIHN0YXJ0RWwudGltZXN0YW1wID0gZXZlbnQuc3RhcnQ7CisgICAgICByb3dzLnB1c2goeyBuYW1lOiAnU3RhcnQnLCB2YWx1ZTogc3RhcnRFbCB9KTsKKworICAgICAgaWYgKGV2ZW50LmR1cmF0aW9uKSB7CisgICAgICAgIHZhciB3YWxsRHVyYXRpb25FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgICAndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICAgICAgd2FsbER1cmF0aW9uRWwuZHVyYXRpb24gPSBldmVudC5kdXJhdGlvbjsKKyAgICAgICAgcm93cy5wdXNoKHsgbmFtZTogJ1dhbGwgRHVyYXRpb24nLCB2YWx1ZTogd2FsbER1cmF0aW9uRWwgfSk7CisgICAgICB9CisKKyAgICAgIGlmIChldmVudC5jcHVEdXJhdGlvbikgeworICAgICAgICB2YXIgY3B1RHVyYXRpb25FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgICAndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICAgICAgY3B1RHVyYXRpb25FbC5kdXJhdGlvbiA9IGV2ZW50LmNwdUR1cmF0aW9uOworICAgICAgICByb3dzLnB1c2goeyBuYW1lOiAnQ1BVIER1cmF0aW9uJywgdmFsdWU6IGNwdUR1cmF0aW9uRWwgfSk7CisgICAgICB9CisKKyAgICAgIGlmIChldmVudC5zdWJTbGljZXMgIT09IHVuZGVmaW5lZCAmJiBldmVudC5zdWJTbGljZXMubGVuZ3RoICE9PSAwKSB7CisgICAgICAgIGlmIChldmVudC5zZWxmVGltZSkgeworICAgICAgICAgIHZhciBzZWxmVGltZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICAgICAgICBzZWxmVGltZUVsLmR1cmF0aW9uID0gZXZlbnQuc2VsZlRpbWU7CisgICAgICAgICAgcm93cy5wdXNoKHsgbmFtZTogJ1NlbGYgVGltZScsIHZhbHVlOiBzZWxmVGltZUVsIH0pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV2ZW50LmNwdVNlbGZUaW1lKSB7CisgICAgICAgICAgdmFyIGNwdVNlbGZUaW1lRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICAgICAndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICAgICAgICBjcHVTZWxmVGltZUVsLmR1cmF0aW9uID0gZXZlbnQuY3B1U2VsZlRpbWU7CisgICAgICAgICAgaWYgKGV2ZW50LmNwdVNlbGZUaW1lID4gZXZlbnQuc2VsZlRpbWUpIHsKKyAgICAgICAgICAgIGNwdVNlbGZUaW1lRWwud2FybmluZyA9CisgICAgICAgICAgICAgICAgJyBOb3RlIHRoYXQgQ1BVIFNlbGYgVGltZSBpcyBsYXJnZXIgdGhhbiBTZWxmIFRpbWUuICcgKworICAgICAgICAgICAgICAgICdUaGlzIGlzIGEga25vd24gbGltaXRhdGlvbiBvZiB0aGlzIHN5c3RlbSwgd2hpY2ggb2NjdXJzICcgKworICAgICAgICAgICAgICAgICdkdWUgdG8gc2V2ZXJhbCBzdWJzbGljZXMsIHJvdW5kaW5nIGlzc3VlcywgYW5kIGltcHJlY2lzZSAnICsKKyAgICAgICAgICAgICAgICAndGltZSBhdCB3aGljaCB3ZSBnZXQgY3B1LSBhbmQgcmVhbC10aW1lLic7CisgICAgICAgICAgfQorICAgICAgICAgIHJvd3MucHVzaCh7bmFtZTogJ0NQVSBTZWxmIFRpbWUnLAorICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNwdVNlbGZUaW1lRWx9KTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBpZiAoZXZlbnQuZHVyYXRpb25JblVzZXJUaW1lKSB7CisgICAgICAgIHZhciBkdXJhdGlvbkluVXNlclRpbWVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgICAndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICAgICAgZHVyYXRpb25JblVzZXJUaW1lRWwuZHVyYXRpb24gPSBldmVudC5kdXJhdGlvbkluVXNlclRpbWU7CisgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdEdXJhdGlvbiAoVSknLCB2YWx1ZTogZHVyYXRpb25JblVzZXJUaW1lRWwgfSk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGNyZWF0ZVN0YWNrRnJhbWVFbChzZikgeworICAgICAgICB2YXIgc2ZFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc3RhY2stZnJhbWUnKTsKKyAgICAgICAgc2ZFbC5zdGFja0ZyYW1lID0gc2Y7CisgICAgICAgIHJldHVybiBzZkVsOworICAgICAgfQorICAgICAgaWYgKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSAmJiBldmVudC5lbmRTdGFja0ZyYW1lKSB7CisgICAgICAgIGlmIChldmVudC5zdGFydFN0YWNrRnJhbWUgPT09IGV2ZW50LmVuZFN0YWNrRnJhbWUpIHsKKyAgICAgICAgICByb3dzLnB1c2goe25hbWU6ICdTdGFydCtFbmQgU3RhY2sgVHJhY2UnLAorICAgICAgICAgICAgICB2YWx1ZTogY3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTsKKworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdTdGFydCBTdGFjayBUcmFjZScsCisgICAgICAgICAgICAgIHZhbHVlOiBjcmVhdGVTdGFja0ZyYW1lRWwoZXZlbnQuc3RhcnRTdGFja0ZyYW1lKX0pOworICAgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdFbmQgU3RhY2sgVHJhY2UnLAorICAgICAgICAgICAgICB2YWx1ZTogY3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LmVuZFN0YWNrRnJhbWUpfSk7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc3RhcnRTdGFja0ZyYW1lKSB7CisgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdTdGFydCBTdGFjayBUcmFjZScsCisgICAgICAgICAgICB2YWx1ZTogY3JlYXRlU3RhY2tGcmFtZUVsKGV2ZW50LnN0YXJ0U3RhY2tGcmFtZSl9KTsKKworICAgICAgfSBlbHNlIGlmIChldmVudC5lbmRTdGFja0ZyYW1lKSB7CisgICAgICAgIHJvd3MucHVzaCh7IG5hbWU6ICdFbmQgU3RhY2sgVHJhY2UnLAorICAgICAgICAgICAgdmFsdWU6IGNyZWF0ZVN0YWNrRnJhbWVFbChldmVudC5lbmRTdGFja0ZyYW1lKX0pOworICAgICAgfQorCisgICAgICBpZiAoZXZlbnQuaW5mbykgeworICAgICAgICB2YXIgZGVzY3JpcHRpb25FbCA9IHRyLnVpLmIuY3JlYXRlRGl2KHsKKyAgICAgICAgICAgIHRleHRDb250ZW50OiBldmVudC5pbmZvLmRlc2NyaXB0aW9uLAorICAgICAgICAgICAgbWF4V2lkdGg6ICczMDBweCcKKyAgICAgICAgfSk7CisgICAgICAgIHJvd3MucHVzaCh7CisgICAgICAgICAgbmFtZTogJ0Rlc2NyaXB0aW9uJywKKyAgICAgICAgICB2YWx1ZTogZGVzY3JpcHRpb25FbAorICAgICAgICB9KTsKKworCisgICAgICAgIGlmIChldmVudC5pbmZvLmRvY0xpbmtzKSB7CisgICAgICAgICAgZXZlbnQuaW5mby5kb2NMaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmtPYmplY3QpIHsKKyAgICAgICAgICAgIHZhciBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CisgICAgICAgICAgICBsaW5rRWwudGFyZ2V0ID0gJ19ibGFuayc7CisgICAgICAgICAgICBsaW5rRWwuaHJlZiA9IGxpbmtPYmplY3QuaHJlZjsKKyAgICAgICAgICAgIGxpbmtFbC50ZXh0Q29udGVudCA9IGxpbmtPYmplY3QudGV4dENvbnRlbnQ7CisgICAgICAgICAgICByb3dzLnB1c2goeworICAgICAgICAgICAgICBuYW1lOiBsaW5rT2JqZWN0LmxhYmVsLAorICAgICAgICAgICAgICB2YWx1ZTogbGlua0VsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBpZiAoZXZlbnQuYXNzb2NpYXRlZEFsZXJ0cy5sZW5ndGgpIHsKKyAgICAgICAgdmFyIGFsZXJ0U3ViUm93cyA9IFtdOworICAgICAgICBldmVudC5hc3NvY2lhdGVkQWxlcnRzLmZvckVhY2goZnVuY3Rpb24oYWxlcnQpIHsKKyAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgICAgbGlua0VsLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KGFsZXJ0KTsKKyAgICAgICAgICB9LCBhbGVydC5pbmZvLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICBhbGVydFN1YlJvd3MucHVzaCh7CisgICAgICAgICAgICBuYW1lOiBhbGVydC50aXRsZSwKKyAgICAgICAgICAgIHZhbHVlOiBsaW5rRWwKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcm93cy5wdXNoKHsKKyAgICAgICAgICBuYW1lOiAnQWxlcnRzJywgdmFsdWU6ICcnLAorICAgICAgICAgIGlzRXhwYW5kZWQ6IHRydWUsIHN1YlJvd3M6IGFsZXJ0U3ViUm93cworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiByb3dzOworICAgIH0sCisKKyAgICBhZGRBcmdzVG9Sb3dzXzogZnVuY3Rpb24ocm93cywgYXJncykgeworICAgICAgdmFyIG4gPSAwOworICAgICAgZm9yICh2YXIgYXJnTmFtZSBpbiBhcmdzKSB7CisgICAgICAgIG4gKz0gMTsKKyAgICAgIH0KKyAgICAgIGlmIChuID4gMCkgeworICAgICAgICB2YXIgc3ViUm93cyA9IFtdOworICAgICAgICBmb3IgKHZhciBhcmdOYW1lIGluIGFyZ3MpIHsKKyAgICAgICAgICB2YXIgYXJnVmlldyA9CisgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgICAgICAgIGFyZ1ZpZXcub2JqZWN0ID0gYXJnc1thcmdOYW1lXTsKKyAgICAgICAgICBzdWJSb3dzLnB1c2goeyBuYW1lOiBhcmdOYW1lLAorICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBhcmdWaWV3fSk7CisgICAgICAgIH0KKyAgICAgICAgcm93cy5wdXNoKHsKKyAgICAgICAgICBuYW1lOiAnQXJncycsIHZhbHVlOiAnJywKKyAgICAgICAgICBpc0V4cGFuZGVkOiB0cnVlLCBzdWJSb3dzOiBzdWJSb3dzCisgICAgICAgIH0pOworICAgICAgfQorICAgICAgcmV0dXJuIHJvd3M7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuJC50YWJsZS5yb3dzID0gW107CisgICAgICAgIHRoaXMuJC50YWJsZS5yZWJ1aWxkKCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIGV2ZW50ID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uX1swXTsKKworICAgICAgdmFyIHJvd3MgPSB0aGlzLmdldEV2ZW50Um93c18oZXZlbnQpOworICAgICAgaWYgKGV2ZW50LmFyZ3NTdHJpcHBlZCkKKyAgICAgICAgcm93cy5wdXNoKHsgbmFtZTogJ0FyZ3MnLCB2YWx1ZTogJ1N0cmlwcGVkJyB9KTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5hZGRBcmdzVG9Sb3dzXyhyb3dzLCBldmVudC5hcmdzKTsKKworICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IHJvd3M7CisgICAgICB0aGlzLiQudGFibGUucmVidWlsZCgpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI0YTc2YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDI1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZGVlcF91dGlscy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKyAgdmFyIG5ld1NsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZDsKKyAgdmFyIG5ld1NsaWNlQ2F0ZWdvcnkgPSB0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VDYXRlZ29yeTsKKworICBmdW5jdGlvbiBjcmVhdGVTZWxlY3Rpb24oY3VzdG9taXplVGhyZWFkQ2FsbGJhY2spIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgTW9kZWwoKTsKKyAgICB2YXIgaW1wb3J0T3B0aW9ucyA9IG5ldyB0ci5JbXBvcnRPcHRpb25zKCk7CisgICAgaW1wb3J0T3B0aW9ucy5jdXN0b21pemVNb2RlbENhbGxiYWNrID0gZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdDUzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKS5nZXRPckNyZWF0ZVRocmVhZCg1Myk7CisgICAgICBjdXN0b21pemVUaHJlYWRDYWxsYmFjayh0NTMsIG1vZGVsKTsKKyAgICB9CisgICAgbW9kZWwuaW1wb3J0VHJhY2VzKFtdLCBpbXBvcnRPcHRpb25zKTsKKworICAgIHZhciB0NTMgPSBtb2RlbC5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdOworCisgICAgdmFyIHQ1M3RyYWNrID0ge307CisgICAgdDUzdHJhY2sudGhyZWFkID0gdDUzOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKHQ1My5zbGljZUdyb3VwLnNsaWNlc1swXSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDEpOworCisgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdGlvbldpdGhTaW5nbGVTbGljZShvcHRfb3B0aW9ucykgeworICAgIHZhciBvcHRpb25zID0gb3B0X29wdGlvbnMgfHwge307CisgICAgcmV0dXJuIGNyZWF0ZVNlbGVjdGlvbihmdW5jdGlvbih0NTMsIG1vZGVsKSB7CisgICAgICBpZiAob3B0aW9ucy53aXRoU3RhcnRTdGFja0ZyYW1lIHx8IG9wdGlvbnMud2l0aEVuZFN0YWNrRnJhbWUpIHsKKyAgICAgICAgdmFyIGZBID0gdHIuYy50ZXN0X3V0aWxzLm5ld1N0YWNrVHJhY2UobW9kZWwsICdjYXQnLCBbJ2ExJywgJ2EyJ10pOworICAgICAgICB2YXIgZkIgPSB0ci5jLnRlc3RfdXRpbHMubmV3U3RhY2tUcmFjZShtb2RlbCwgJ2NhdCcsIFsnYjEnLCAnYjInXSk7CisgICAgICB9CisKKyAgICAgIHZhciBzbGljZTsKKyAgICAgIGlmIChvcHRpb25zLndpdGhDYXRlZ29yeSkKKyAgICAgICAgc2xpY2UgPSBuZXdTbGljZUNhdGVnb3J5KCdmb28nLCAnYicsIDAsIDAuMDAyKTsKKyAgICAgIGVsc2UKKyAgICAgICAgc2xpY2UgPSBuZXdTbGljZU5hbWVkKCdiJywgMCwgMC4wMDIpOworCisgICAgICBpZiAob3B0aW9ucy53aXRoU3RhcnRTdGFja0ZyYW1lKQorICAgICAgICBzbGljZS5zdGFydFN0YWNrRnJhbWUgPSBvcHRpb25zLndpdGhTdGFydFN0YWNrRnJhbWUgPT09ICdhJyA/IGZBIDogZkI7CisKKyAgICAgIGlmIChvcHRpb25zLndpdGhFbmRTdGFja0ZyYW1lKQorICAgICAgICBzbGljZS5lbmRTdGFja0ZyYW1lID0gb3B0aW9ucy53aXRoRW5kU3RhY2tGcmFtZSA9PT0gJ2EnID8gZkEgOiBmQjsKKworICAgICAgdDUzLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICB9KTsKKyAgfTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2luZ2xlU2xpY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlKCk7CisKKyAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7CisgICAgYW5hbHlzaXNFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOworICB9KTsKKworICB0ZXN0KCdhbGVydHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2xpY2UgPSBuZXdTbGljZU5hbWVkKCdiJywgMCwgMC4wMDIpOworCisgICAgdmFyIEFMRVJUX0lORk9fMSA9IG5ldyB0ci5tb2RlbC5FdmVudEluZm8oCisgICAgICAgICdBbGVydCAxJywgJ0NyaXRpY2FsIGFsZXJ0Jyk7CisKKyAgICB2YXIgYWxlcnQgPSBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCA1LCBbc2xpY2VdKTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChzbGljZSk7CisKKyAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7CisgICAgYW5hbHlzaXNFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2luZ2xlU2xpY2VXaXRoQXJnJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlbGVjdGlvbiA9IGNyZWF0ZVNlbGVjdGlvbihmdW5jdGlvbih0NTMpIHsKKyAgICAgIHZhciBzbGljZSA9IG5ld1NsaWNlTmFtZWQoJ215X3NsaWNlJywgMCwgMS4wKTsKKyAgICAgIHNsaWNlLmFyZ3MgPSB7CisgICAgICAgICdjb21wbGV4JzogeworICAgICAgICAgICdiJzogJzIgYXMgYSBzdHJpbmcnLAorICAgICAgICAgICdjJzogWzMsIDQsIDVdCisgICAgICAgIH0KKyAgICAgIH07CisgICAgICB0NTMuc2xpY2VHcm91cC5wdXNoU2xpY2Uoc2xpY2UpOworICAgIH0pOworCisgICAgdmFyIHN1YlZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOworICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChzdWJWaWV3KTsKKworICAgIHZhciBnb3YgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKHN1YlZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgIGFzc2VydC5pc0RlZmluZWQoZ292KTsKKyAgfSk7CisKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2luZ2xlU2xpY2VDYXRlZ29yeScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2Uoe3dpdGhDYXRlZ29yeTogdHJ1ZX0pOworCisgICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOworICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZVN0YXJ0U3RhY2tGcmFtZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2UoCisgICAgICAgIHt3aXRoU3RhcnRTdGFja0ZyYW1lOiAnYSd9KTsKKworICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKKyAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYW5hbHlzaXNFbCk7CisKKyAgICB2YXIgZSA9IHRyLmIuZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KAorICAgICAgICBhbmFseXNpc0VsLCAvU3RhcnQgU3RhY2sgVHJhY2UvKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGUpOworICAgIGFzc2VydC5pc0RlZmluZWQoZS5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZUVuZFN0YWNrRnJhbWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlKAorICAgICAgICB7d2l0aEVuZFN0YWNrRnJhbWU6ICdiJ30pOworCisgICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOworICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKKworICAgIHZhciBlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRXaXRoVGV4dENvbnRlbnQoCisgICAgICAgIGFuYWx5c2lzRWwsIC9FbmQgU3RhY2sgVHJhY2UvKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGUpOworICAgIGFzc2VydC5pc0RlZmluZWQoZS5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lKTsKKyAgICBhc3NlcnQuZXF1YWwoZS5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lLnRpdGxlLCAnYjInKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aERpZmZlcmVudFN0YXJ0QW5kRW5kU3RhY2tGcmFtZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uV2l0aFNpbmdsZVNsaWNlKAorICAgICAgICB7d2l0aFN0YXJ0U3RhY2tGcmFtZTogJ2EnLAorICAgICAgICAgd2l0aEVuZFN0YWNrRnJhbWU6ICdiJ30pOworCisgICAgdmFyIGFuYWx5c2lzRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOworICAgIGFuYWx5c2lzRWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChhbmFseXNpc0VsKTsKKworICAgIHZhciBlQSA9IHRyLmIuZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KAorICAgICAgICBhbmFseXNpc0VsLCAvU3RhcnQgU3RhY2sgVHJhY2UvKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGVBKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGVBLm5leHRTaWJsaW5nLmNoaWxkcmVuWzBdLnN0YWNrRnJhbWUpOworICAgIGFzc2VydC5lcXVhbChlQS5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lLnRpdGxlLCAnYTInKTsKKworICAgIHZhciBlQiA9IHRyLmIuZmluZERlZXBFbGVtZW50V2l0aFRleHRDb250ZW50KAorICAgICAgICBhbmFseXNpc0VsLCAvRW5kIFN0YWNrIFRyYWNlLyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChlQik7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChlQi5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lKTsKKyAgICBhc3NlcnQuZXF1YWwoZUIubmV4dFNpYmxpbmcuY2hpbGRyZW5bMF0uc3RhY2tGcmFtZS50aXRsZSwgJ2IyJyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhTYW1lU3RhcnRBbmRFbmRTdGFja0ZyYW1lcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2UoCisgICAgICAgIHt3aXRoU3RhcnRTdGFja0ZyYW1lOiAnYScsCisgICAgICAgICB3aXRoRW5kU3RhY2tGcmFtZTogJ2EnfSk7CisKKyAgICB2YXIgYW5hbHlzaXNFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7CisgICAgYW5hbHlzaXNFbC5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGFuYWx5c2lzRWwpOworCisgICAgdmFyIGUgPSB0ci5iLmZpbmREZWVwRWxlbWVudFdpdGhUZXh0Q29udGVudCgKKyAgICAgICAgYW5hbHlzaXNFbCwgL1N0YXJ0XCtFbmQgU3RhY2sgVHJhY2UvKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGUpOworICAgIGFzc2VydC5pc0RlZmluZWQoZS5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lKTsKKyAgICBhc3NlcnQuZXF1YWwoZS5uZXh0U2libGluZy5jaGlsZHJlblswXS5zdGFja0ZyYW1lLnRpdGxlLCAnYTInKTsKKyAgfSk7CisKKyAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhTaW5nbGVTbGljZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2UoKTsKKyAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Jyk7CisgICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisKKyAgICB2YXIgdGFibGUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nKAorICAgICAgICBzdWJWaWV3LCAndHItdWktYi10YWJsZScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS50YWJsZVJvd3MubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzWzBdLnZhbHVlLCAnYicpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS50YWJsZVJvd3NbMV0udmFsdWUudGltZXN0YW1wLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzWzJdLnZhbHVlLmR1cmF0aW9uLCAwLjAwMik7CisgIH0pOworCisgIHRlc3QoJ2FuYWx5emVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2VDYXRlZ29yeScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb25XaXRoU2luZ2xlU2xpY2Uoe3dpdGhDYXRlZ29yeTogdHJ1ZX0pOworCisgICAgdmFyIHN1YlZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOworICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworCisgICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgc3ViVmlldywgJ3RyLXVpLWItdGFibGUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzLmxlbmd0aCwgNCk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnRhYmxlUm93c1swXS52YWx1ZSwgJ2InKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUudGFibGVSb3dzWzFdLnZhbHVlLCAnZm9vJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnRhYmxlUm93c1syXS52YWx1ZS50aW1lc3RhbXAsIDApOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS50YWJsZVJvd3NbM10udmFsdWUuZHVyYXRpb24sIDAuMDAyKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfd2l0aFNpbmdsZVNsaWNlQ29udGFpbmluZ0lEUmVmJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgIHZhciBteU9iamVjdFNsaWNlID0gcDEub2JqZWN0cy5hZGRTbmFwc2hvdCgKKyAgICAgICAgJzB4MTAwMCcsICdjYXQnLCAnbXlfb2JqZWN0JywgMCk7CisKKyAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZUNhdGVnb3J5KCdjYXQnLCAnYicsIDAsIDIpKTsKKyAgICB0MS5zbGljZUdyb3VwLnNsaWNlc1swXS5hcmdzLm15X29iamVjdCA9IG15T2JqZWN0U2xpY2U7CisKKyAgICB2YXIgdDF0cmFjayA9IHt9OworICAgIHQxdHJhY2sudGhyZWFkID0gdDE7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2godDEuc2xpY2VHcm91cC5zbGljZXNbMF0pOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAxKTsKKworICAgIHZhciBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKKyAgICBzdWJWaWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3ViVmlldyk7CisKKyAgICB2YXIgYW5hbHlzaXNMaW5rID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZyhzdWJWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKyAgICBhc3NlcnQuaXNEZWZpbmVkKGFuYWx5c2lzTGluayk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhTaW5nbGVTbGljZUNvbnRhaW5pbmdJbmZvJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNsaWNlID0gbmV3U2xpY2VOYW1lZCgnYicsIDAsIDEpOworICAgIHNsaWNlLmluZm8gPSBuZXcgdHIubW9kZWwuRXZlbnRJbmZvKAorICAgICAgICAnSW5mbyB0aXRsZScsICdEZXNjcmlwdGlvbicpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKHNsaWNlKTsKKworICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKKyAgICBhbmFseXNpc0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYW5hbHlzaXNFbCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2Zsb3dfZXZlbnRfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2Zsb3dfZXZlbnRfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2MyYWFmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3NpbmdsZV9ldmVudF9zdWJfdmlldy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1mbG93LWV2ZW50LXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc2luZ2xlLWV2ZW50LXN1Yi12aWV3Ij4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGdldEV2ZW50Um93c186IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAvLyBUT0RPKG5kdWNhKTogRmlndXJlIG91dCBpZiB0aGVyZSBpcyBhIGNsZWFuZXIgd2F5IHRvIGRvIHRoaXMuCisgICAgICB2YXIgcm93cyA9IHRoaXMuX19wcm90b19fLl9fcHJvdG9fXy5nZXRFdmVudFJvd3NfKGV2ZW50KTsKKworICAgICAgLy8gUHV0IHRoZSBJRCB1cCB0b3AuCisgICAgICByb3dzLnNwbGljZSgwLCAwLCB7CisgICAgICAgIG5hbWU6ICdJRCcsCisgICAgICAgIHZhbHVlOiBldmVudC5pZAorICAgICAgfSk7CisKKyAgICAgIGZ1bmN0aW9uIGNyZWF0ZUxpbmtUbyhzbGljZSkgeworICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgIGxpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci5tb2RlbC5FdmVudFNldChzbGljZSk7CisgICAgICAgIH0pOworICAgICAgICBsaW5rRWwudGV4dENvbnRlbnQgPSBzbGljZS51c2VyRnJpZW5kbHlOYW1lOworICAgICAgICByZXR1cm4gbGlua0VsOworICAgICAgfQorCisgICAgICByb3dzLnB1c2goeworICAgICAgICBuYW1lOiAnRnJvbScsCisgICAgICAgIHZhbHVlOiBjcmVhdGVMaW5rVG8oZXZlbnQuc3RhcnRTbGljZSkKKyAgICAgIH0pOworICAgICAgcm93cy5wdXNoKHsKKyAgICAgICAgbmFtZTogJ1RvJywKKyAgICAgICAgdmFsdWU6IGNyZWF0ZUxpbmtUbyhldmVudC5lbmRTbGljZSkKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHJvd3M7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2Zsb3dfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfZmxvd19ldmVudF9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkyOTY3NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2Zsb3dfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKyAgdmFyIHRlc3RfdXRpbHMgPSB0ci5jLnRlc3RfdXRpbHM7CisKKyAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhTaW5nbGVFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IHRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIG1vZGVsLnAxID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgICAgbW9kZWwudDIgPSBtb2RlbC5wMS5nZXRPckNyZWF0ZVRocmVhZChtb2RlbC5wMSk7CisgICAgICBtb2RlbC5zQSA9IG1vZGVsLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKHRlc3RfdXRpbHMubmV3U2xpY2VFeCh7CisgICAgICAgIHRpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDIKKyAgICAgIH0pKTsKKyAgICAgIG1vZGVsLnNCID0gbW9kZWwudDIuc2xpY2VHcm91cC5wdXNoU2xpY2UodGVzdF91dGlscy5uZXdTbGljZUV4KHsKKyAgICAgICAgdGl0bGU6ICdiJywgc3RhcnQ6IDksIGVuZDogMTEKKyAgICAgIH0pKTsKKyAgICAgIG1vZGVsLmZlID0gdGVzdF91dGlscy5uZXdGbG93RXZlbnRFeCh7CisgICAgICAgIGNhdDogJ2NhdCcsCisgICAgICAgIGlkOiAxMjM0LAorICAgICAgICB0aXRsZTogJ015RmxvdycsCisgICAgICAgIHN0YXJ0OiAxLAorICAgICAgICBlbmQ6IDEwLAorICAgICAgICBzdGFydFNsaWNlOiBtb2RlbC5zQSwKKyAgICAgICAgZW5kU2xpY2U6IG1vZGVsLnNCCisgICAgICB9KTsKKyAgICAgIG1vZGVsLmZsb3dFdmVudHMucHVzaChtb2RlbC5mZSk7CisgICAgfSk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2gobW9kZWwuZmUpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAxKTsKKworICAgIHZhciBzdWJWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZmxvdy1ldmVudC1zdWItdmlldycpOworICAgIHN1YlZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChzdWJWaWV3KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfZnJhbWVfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2ZyYW1lX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZlODA3ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2ZyYW1lX3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FsZXJ0X3N1Yl92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLWZyYW1lLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIH0KKyAgICAjYXN2IHsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYS1hbGVydC1zdWItdmlldyBpZD0iYXN2Ij4KKyAgICA8L3RyLXVpLWEtYWxlcnQtc3ViLXZpZXc+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPSAxKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgc2luZ2xlIGZyYW1lIScpOworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKyAgICAgIHRoaXMuJC5hc3Yuc2VsZWN0aW9uID0gc2VsZWN0aW9uWzBdLmFzc29jaWF0ZWRBbGVydHM7CisgICAgfSwKKworICAgIGdldCByZWxhdGVkRXZlbnRzVG9IaWdobGlnaHQoKSB7CisgICAgICBpZiAoIXRoaXMuY3VycmVudFNlbGVjdGlvbl8pCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uX1swXS5hc3NvY2lhdGVkRXZlbnRzOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZjhkNmUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlldy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8dHItdWktYS1tZW1vcnktZHVtcC12aWV3IGlkPSJtZW1vcnlfZHVtcF92aWV3Ij4KKyAgICA8L3RyLXVpLWEtbWVtb3J5LWR1bXAtdmlldz4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCAhPT0gMSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IHN1cHBvcnRzIGEgc2luZ2xlIGdsb2JhbCBtZW1vcnkgZHVtcCcpOworICAgICAgaWYgKCEoc2VsZWN0aW9uWzBdIGluc3RhbmNlb2YgdHIubW9kZWwuR2xvYmFsTWVtb3J5RHVtcCkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBnbG9iYWwgbWVtb3J5IGR1bXBzJyk7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy4kLm1lbW9yeV9kdW1wX3ZpZXcucHJvY2Vzc01lbW9yeUR1bXBzID0gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKAorICAgICAgICAgIHNlbGVjdGlvblswXS5wcm9jZXNzTWVtb3J5RHVtcHMpOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2dsb2JhbF9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZDliN2MKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9nbG9iYWxfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcCA9IHRyLnVpLmFuYWx5c2lzLmNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wOworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdsb2JhbE1lbW9yeUR1bXAgPSBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcCgpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKGdsb2JhbE1lbW9yeUR1bXApOworCisgICAgdmFyIHZpZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICd0ci11aS1hLXNpbmdsZS1nbG9iYWwtbWVtb3J5LWR1bXAtc3ViLXZpZXcnKTsKKyAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRlMjU5YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLWluc3RhbnQtZXZlbnQtc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPGRpdiBpZD0nY29udGVudCc+PC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gJyc7CisgICAgICB2YXIgcmVhbFZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOworICAgICAgcmVhbFZpZXcuc2V0U2VsZWN0aW9uV2l0aG91dEVycm9yQ2hlY2tzKHNlbGVjdGlvbik7CisKKyAgICAgIHRoaXMuJC5jb250ZW50LmFwcGVuZENoaWxkKHJlYWxWaWV3KTsKKworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2luc3RhbnRfZXZlbnRfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1M2EzODEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9pbnN0YW50X2V2ZW50X3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgTW9kZWwgPSB0ci5Nb2RlbDsKKyAgdmFyIFRocmVhZCA9IHRyLm1vZGVsLlRocmVhZDsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisKKyAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhTaW5nbGVFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBNb2RlbCgpOworICAgIHZhciBwNTIgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoNTIpOworICAgIHZhciB0NTMgPSBwNTIuZ2V0T3JDcmVhdGVUaHJlYWQoNTMpOworCisgICAgdmFyIGllID0gbmV3IHRyLm1vZGVsLlByb2Nlc3NJbnN0YW50RXZlbnQoJ2NhdCcsICd0aXRsZScsIDcsIDEwLCB7fSk7CisgICAgaWUuZHVyYXRpb24gPSAyMDsKKyAgICBwNTIuaW5zdGFudEV2ZW50cy5wdXNoKGllKTsKKworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKGllKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMSk7CisKKyAgICB2YXIgc3ViVmlldyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICd0ci11aS1hLXNpbmdsZS1pbnN0YW50LWV2ZW50LXN1Yi12aWV3Jyk7CisgICAgc3ViVmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3ViVmlldyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2ludGVyYWN0aW9uX3JlY29yZF9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfaW50ZXJhY3Rpb25fcmVjb3JkX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZjNzdjOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX2ludGVyYWN0aW9uX3JlY29yZF9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtaW50ZXJhY3Rpb24tcmVjb3JkLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7CisgICAgICB2YXIgcmVhbFZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldycpOworCisgICAgICB0aGlzLmFwcGVuZENoaWxkKHJlYWxWaWV3KTsKKyAgICAgIHJlYWxWaWV3LnNldFNlbGVjdGlvbldpdGhvdXRFcnJvckNoZWNrcyhzZWxlY3Rpb24pOworCisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBnZXQgcmVsYXRlZEV2ZW50c1RvSGlnaGxpZ2h0KCkgeworICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTZWxlY3Rpb25fKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl9bMF0uYXNzb2NpYXRlZEV2ZW50czsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X2luc3RhbmNlX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9vYmplY3RfaW5zdGFuY2Vfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzU3ODhkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X2luc3RhbmNlX3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtb2JqZWN0LWluc3RhbmNlLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKworICAgICNzbmFwc2hvdHMgPiAqIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKworICAgIDpob3N0IHsKKyAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgfQorCisgICAgKiB7CisgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OworICAgIH0KKworICAgIC50aXRsZSB7CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDEyOCwgMTI4LCAxMjgpOworICAgICAgZm9udC1zaXplOiAxMTAlOworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgfQorCisgICAgdGQsIHRoIHsKKyAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9J2NvbnRlbnQnPjwvZGl2PgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgcmVxdWlyZXNUYWxsVmlldygpIHsKKyAgICAgIGlmICh0aGlzLiQuY29udGVudC5jaGlsZHJlbi5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICh0aGlzLiQuY29udGVudC5jaGlsZHJlblswXSBpbnN0YW5jZW9mCisgICAgICAgICAgdHIudWkuYW5hbHlzaXMuT2JqZWN0SW5zdGFuY2VWaWV3KQorICAgICAgICByZXR1cm4gdGhpcy4kLmNvbnRlbnQuY2hpbGRyZW5bMF0ucmVxdWlyZXNUYWxsVmlldzsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgaXRlbSBzZWxlY3Rpb25zJyk7CisgICAgICBpZiAoIShzZWxlY3Rpb25bMF0gaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBvYmplY3QgaW5zdGFuY2VzJyk7CisKKyAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gJyc7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworCisgICAgICB2YXIgaW5zdGFuY2UgPSBzZWxlY3Rpb25bMF07CisgICAgICB2YXIgdHlwZUluZm8gPSB0ci51aS5hbmFseXNpcy5PYmplY3RJbnN0YW5jZVZpZXcuZ2V0VHlwZUluZm8oCisgICAgICAgICAgaW5zdGFuY2UuY2F0ZWdvcnksIGluc3RhbmNlLnR5cGVOYW1lKTsKKyAgICAgIGlmICh0eXBlSW5mbykgeworICAgICAgICB2YXIgY3VzdG9tVmlldyA9IG5ldyB0eXBlSW5mby5jb25zdHJ1Y3RvcigpOworICAgICAgICB0aGlzLiQuY29udGVudC5hcHBlbmRDaGlsZChjdXN0b21WaWV3KTsKKyAgICAgICAgY3VzdG9tVmlldy5tb2RlbEV2ZW50ID0gaW5zdGFuY2U7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLmFwcGVuZEdlbmVyaWNBbmFseXNpc18oaW5zdGFuY2UpOworICAgICAgfQorICAgIH0sCisKKyAgICBhcHBlbmRHZW5lcmljQW5hbHlzaXNfOiBmdW5jdGlvbihpbnN0YW5jZSkgeworICAgICAgdmFyIGh0bWwgPSAnJzsKKyAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9InRpdGxlIj4nICsKKyAgICAgICAgICBpbnN0YW5jZS50eXBlTmFtZSArICcgJyArCisgICAgICAgICAgaW5zdGFuY2UuaWQgKyAnPC9kaXY+XG4nOworICAgICAgaHRtbCArPSAnPHRhYmxlPic7CisgICAgICBodG1sICs9ICc8dHI+JzsKKyAgICAgIGh0bWwgKz0gJzx0cj48dGQ+Y3JlYXRpb25Uczo8L3RkPjx0ZD4nICsKKyAgICAgICAgICBpbnN0YW5jZS5jcmVhdGlvblRzICsgJzwvdGQ+PC90cj5cbic7CisgICAgICBpZiAoaW5zdGFuY2UuZGVsZXRpb25UcyAhPSBOdW1iZXIuTUFYX1ZBTFVFKSB7CisgICAgICAgIGh0bWwgKz0gJzx0cj48dGQ+ZGVsZXRpb25Uczo8L3RkPjx0ZD4nICsKKyAgICAgICAgICAgIGluc3RhbmNlLmRlbGV0aW9uVHMgKyAnPC90ZD48L3RyPlxuJzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGh0bWwgKz0gJzx0cj48dGQ+ZGVsZXRpb25Uczo8L3RkPjx0ZD5ub3QgZGVsZXRlZDwvdGQ+PC90cj5cbic7CisgICAgICB9CisgICAgICBodG1sICs9ICc8dHI+PHRkPnNuYXBzaG90czo8L3RkPjx0ZCBpZD0ic25hcHNob3RzIj48L3RkPjwvdHI+XG4nOworICAgICAgaHRtbCArPSAnPC90YWJsZT4nOworICAgICAgdGhpcy4kLmNvbnRlbnQuaW5uZXJIVE1MID0gaHRtbDsKKyAgICAgIHZhciBzbmFwc2hvdHNFbCA9IHRoaXMuJC5jb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyNzbmFwc2hvdHMnKTsKKyAgICAgIGluc3RhbmNlLnNuYXBzaG90cy5mb3JFYWNoKGZ1bmN0aW9uKHNuYXBzaG90KSB7CisgICAgICAgIHZhciBzbmFwc2hvdExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKyAgICAgICAgc25hcHNob3RMaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChzbmFwc2hvdCk7CisgICAgICAgIHNuYXBzaG90c0VsLmFwcGVuZENoaWxkKHNuYXBzaG90TGluayk7CisgICAgICB9KTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X2luc3RhbmNlX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9pbnN0YW5jZV9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRlYmVkZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9pbnN0YW5jZV9zdWJfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X2luc3RhbmNlX3N1Yl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIE9iamVjdEluc3RhbmNlID0gdHIubW9kZWwuT2JqZWN0SW5zdGFuY2U7CisKKyAgdGVzdCgnYW5hbHl6ZVNlbGVjdGlvbldpdGhPYmplY3RJbnN0YW5jZVVua25vd25UeXBlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGkxMCA9IG5ldyBPYmplY3RJbnN0YW5jZSh7fSwgJzB4MTAwMCcsICdjYXQnLCAnc29tZVVuaGFuZGxlZE5hbWUnLCAxMCk7CisgICAgdmFyIHMxMCA9IGkxMC5hZGRTbmFwc2hvdCgxMCwge2ZvbzogMX0pOworICAgIHZhciBzMjAgPSBpMTAuYWRkU25hcHNob3QoMjAsIHtmb286IDJ9KTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChpMTApOworCisgICAgdmFyIHZpZXcgPQorICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS1vYmplY3QtaW5zdGFuY2Utc3ViLXZpZXcnKTsKKyAgICB2aWV3LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X3NuYXBzaG90X3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9vYmplY3Rfc25hcHNob3Rfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGRlNjkzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfb2JqZWN0X3NuYXBzaG90X3N1Yl92aWV3Lmh0bWwKQEAgLTAsMCArMSwxMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfbGluay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvYW5hbHlzaXNfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX2V2ZW50X3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtb2JqZWN0LXNuYXBzaG90LXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgICNhcmdzIHsKKyAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CisgICAgfQorCisgICAgOmhvc3QgeworICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKworICAgIDo6Y29udGVudCAqIHsKKyAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CisgICAgfQorCisgICAgOjpjb250ZW50IC50aXRsZSB7CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDEyOCwgMTI4LCAxMjgpOworICAgICAgZm9udC1zaXplOiAxMTAlOworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgfQorCisgICAgOjpjb250ZW50IHRkLCB0aCB7CisgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8Y29udGVudD48L2NvbnRlbnQ+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgeworICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICBpZiAodGhpcy5jaGlsZHJlblswXSBpbnN0YW5jZW9mIHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90VmlldykKKyAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5bMF0ucmVxdWlyZXNUYWxsVmlldzsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgaXRlbSBzZWxlY3Rpb25zJyk7CisgICAgICBpZiAoIShzZWxlY3Rpb25bMF0gaW5zdGFuY2VvZiB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBvYmplY3QgaW5zdGFuY2VzJyk7CisKKyAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisKKyAgICAgIHZhciBzbmFwc2hvdCA9IHNlbGVjdGlvblswXTsKKworICAgICAgdmFyIHR5cGVJbmZvID0gdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LmdldFR5cGVJbmZvKAorICAgICAgICAgIHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNhdGVnb3J5LCBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS50eXBlTmFtZSk7CisgICAgICBpZiAodHlwZUluZm8pIHsKKyAgICAgICAgdmFyIGN1c3RvbVZpZXcgPSBuZXcgdHlwZUluZm8uY29uc3RydWN0b3IoKTsKKyAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChjdXN0b21WaWV3KTsKKyAgICAgICAgY3VzdG9tVmlldy5tb2RlbEV2ZW50ID0gc25hcHNob3Q7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLmFwcGVuZEdlbmVyaWNBbmFseXNpc18oc25hcHNob3QpOworICAgICAgfQorICAgIH0sCisKKyAgICBhcHBlbmRHZW5lcmljQW5hbHlzaXNfOiBmdW5jdGlvbihzbmFwc2hvdCkgeworICAgICAgdmFyIGluc3RhbmNlID0gc25hcHNob3Qub2JqZWN0SW5zdGFuY2U7CisKKyAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKKworICAgICAgdmFyIHRpdGxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIHRpdGxlRWwuY2xhc3NMaXN0LmFkZCgndGl0bGUnKTsKKyAgICAgIHRpdGxlRWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1NuYXBzaG90IG9mICcpKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGl0bGVFbCk7CisKKyAgICAgIHZhciBpbnN0YW5jZUxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpOworICAgICAgaW5zdGFuY2VMaW5rRWwuc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KGluc3RhbmNlKTsKKyAgICAgIHRpdGxlRWwuYXBwZW5kQ2hpbGQoaW5zdGFuY2VMaW5rRWwpOworCisgICAgICB0aXRsZUVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgQCAnKSk7CisKKyAgICAgIHRpdGxlRWwuYXBwZW5kQ2hpbGQodHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbigKKyAgICAgICAgICBzbmFwc2hvdC50cywge293bmVyRG9jdW1lbnQ6IHRoaXMub3duZXJEb2N1bWVudH0pKTsKKworICAgICAgdmFyIHRhYmxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0YWJsZUVsKTsKKworICAgICAgdmFyIHJvd0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKKyAgICAgIHRhYmxlRWwuYXBwZW5kQ2hpbGQocm93RWwpOworCisgICAgICB2YXIgbGFiZWxFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CisgICAgICBsYWJlbEVsLnRleHRDb250ZW50ID0gJ2FyZ3M6JzsKKyAgICAgIHJvd0VsLmFwcGVuZENoaWxkKGxhYmVsRWwpOworCisgICAgICB2YXIgYXJnc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKKyAgICAgIGFyZ3NFbC5pZCA9ICdhcmdzJzsKKyAgICAgIHJvd0VsLmFwcGVuZENoaWxkKGFyZ3NFbCk7CisKKyAgICAgIHZhciBvYmplY3RWaWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcnKTsKKyAgICAgIG9iamVjdFZpZXdFbC5vYmplY3QgPSBzbmFwc2hvdC5hcmdzOworICAgICAgYXJnc0VsLmFwcGVuZENoaWxkKG9iamVjdFZpZXdFbCk7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9zbmFwc2hvdF9zdWJfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9vYmplY3Rfc25hcHNob3Rfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxYWY0ZDQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9vYmplY3Rfc25hcHNob3Rfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc2luZ2xlX29iamVjdF9zbmFwc2hvdF9zdWJfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luc3RhbnRpYXRlX3NuYXBzaG90VmlldycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpMTAgPSBuZXcgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UoCisgICAgICAgIHt9LCAnMHgxMDAwJywgJ2NhdCcsICduYW1lJywgMTApOworICAgIHZhciBzMTAgPSBpMTAuYWRkU25hcHNob3QoMTAsIHtmb286IDF9KTsKKyAgICBpMTAudXBkYXRlQm91bmRzKCk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2goczEwKTsKKworICAgIHZhciB2aWV3ID0KKyAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtb2JqZWN0LXNuYXBzaG90LXN1Yi12aWV3Jyk7CisgICAgdmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9wcm9jZXNzX21lbW9yeV9kdW1wX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MwOWJmMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvbWVtb3J5X2R1bXBfdmlldy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1wcm9jZXNzLW1lbW9yeS1kdW1wLXN1Yi12aWV3IgorICAgIGV4dGVuZHM9InRyLXVpLWEtc3ViLXZpZXciPgorICA8dGVtcGxhdGU+CisgICAgPHRyLXVpLWEtbWVtb3J5LWR1bXAtdmlldyBpZD0ibWVtb3J5X2R1bXBfdmlldyI+CisgICAgPC90ci11aS1hLW1lbW9yeS1kdW1wLXZpZXc+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBhIHNpbmdsZSBwcm9jZXNzIG1lbW9yeSBkdW1wJyk7CisgICAgICBpZiAoIShzZWxlY3Rpb25bMF0gaW5zdGFuY2VvZiB0ci5tb2RlbC5Qcm9jZXNzTWVtb3J5RHVtcCkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBwcm9jZXNzIG1lbW9yeSBkdW1wcycpOworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKyAgICAgIHRoaXMuJC5tZW1vcnlfZHVtcF92aWV3LnByb2Nlc3NNZW1vcnlEdW1wcyA9IFtzZWxlY3Rpb25bMF1dOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIGdldCByZXF1aXJlc1RhbGxWaWV3KCkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfcHJvY2Vzc19tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRjN2M0YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3Byb2Nlc3NfbWVtb3J5X2R1bXBfc3ViX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9tZW1vcnlfZHVtcF9zdWJfdmlld190ZXN0X3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXAgPSB0ci51aS5hbmFseXNpcy5jcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXA7CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXAgPSBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXAoKTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChwcm9jZXNzTWVtb3J5RHVtcCk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgJ3RyLXVpLWEtc2luZ2xlLXByb2Nlc3MtbWVtb3J5LWR1bXAtc3ViLXZpZXcnKTsKKyAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3NhbXBsZV9zdWJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5NjljZjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvc3RhY2tfZnJhbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbi5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXNpbmdsZS1zYW1wbGUtc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0iY29udGVudCI+PC90ci11aS1iLXRhYmxlPgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLiQuY29udGVudC50YWJsZUNvbHVtbnMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ0ZpcnN0Q29sdW1uJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudGl0bGU7IH0sCisgICAgICAgICAgd2lkdGg6ICcyNTBweCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnU2Vjb25kQ29sdW1uJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudmFsdWU7IH0sCisgICAgICAgICAgd2lkdGg6ICcxMDAlJworICAgICAgICB9CisgICAgICBdOworICAgICAgdGhpcy4kLmNvbnRlbnQuc2hvd0hlYWRlciA9IGZhbHNlOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fID0gc2VsZWN0aW9uOworCisgICAgICBpZiAodGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuJC5jb250ZW50LnRhYmxlUm93cyA9IFtdOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBzYW1wbGUgPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fWzBdOworICAgICAgdmFyIHRhYmxlID0gdGhpcy4kLmNvbnRlbnQ7CisKKyAgICAgIHZhciByb3dzID0gW107CisKKyAgICAgIHJvd3MucHVzaCh7CisgICAgICAgIHRpdGxlOiAnVGl0bGUnLAorICAgICAgICB2YWx1ZTogc2FtcGxlLnRpdGxlCisgICAgICB9KTsKKworICAgICAgcm93cy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ1NhbXBsZSB0aW1lJywKKyAgICAgICAgICB2YWx1ZTogdHIudWkudW5pdHMuY3JlYXRlVGltZVN0YW1wU3BhbigKKyAgICAgICAgICAgICAgc2FtcGxlLnN0YXJ0LCB7b3duZXJEb2N1bWVudDogdGhpcy5vd25lckRvY3VtZW50fSkKKyAgICAgIH0pOworCisgICAgICB2YXIgc2ZFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtc3RhY2stZnJhbWUnKTsKKyAgICAgIHNmRWwuc3RhY2tGcmFtZSA9IHNhbXBsZS5sZWFmU3RhY2tGcmFtZTsKKyAgICAgIHJvd3MucHVzaCh7CisgICAgICAgIHRpdGxlOiAnU3RhY2sgdHJhY2UnLAorICAgICAgICB2YWx1ZTogc2ZFbAorICAgICAgfSk7CisgICAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgICAgdGFibGUucmVidWlsZCgpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmY2OTg0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfc2FtcGxlX3N1Yl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3NpbmdsZV9zYW1wbGVfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3N0dWJfYW5hbHlzaXNfcmVzdWx0cy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIE1vZGVsID0gdHIuTW9kZWw7CisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworICB2YXIgU3R1YkFuYWx5c2lzUmVzdWx0cyA9IHRyLnVpLmFuYWx5c2lzLlN0dWJBbmFseXNpc1Jlc3VsdHM7CisgIHZhciBuZXdTYW1wbGVOYW1lZCA9IHRyLmMudGVzdF91dGlscy5uZXdTYW1wbGVOYW1lZDsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2luZ2xlU2FtcGxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKCk7CisgICAgdmFyIHQ1MzsKKyAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICB0NTMgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoNTIpLmdldE9yQ3JlYXRlVGhyZWFkKDUzKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXdTYW1wbGVOYW1lZCh0NTMsICdYJywgJ215LWNhdGVnb3J5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2EnLCAnYicsICdjJ10sIDAuMTg0KSk7CisgICAgfSk7CisKKyAgICB2YXIgdDUzdHJhY2sgPSB7fTsKKyAgICB0NTN0cmFjay50aHJlYWQgPSB0NTM7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisKKyAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMCk7CisgICAgc2VsZWN0aW9uLnB1c2godDUzLnNhbXBsZXNbMF0pOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAxKTsKKworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtc2FtcGxlLXN1Yi12aWV3Jyk7CisgICAgdmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworCisgICAgdmFyIHRhYmxlID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgdmlldywgJ3RyLXVpLWItdGFibGUnKTsKKworICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOworICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMyk7CisKKyAgICBhc3NlcnQuZXF1YWwocm93c1swXS52YWx1ZSwgJ1gnKTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1sxXS52YWx1ZS50aW1lc3RhbXAsIDAuMTg0KTsKKyAgICBhc3NlcnQuZXF1YWwocm93c1syXS52YWx1ZS5zdGFja0ZyYW1lLCB0NTMuc2FtcGxlc1swXS5sZWFmU3RhY2tGcmFtZSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3NsaWNlX3N1Yl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE4ZGQ5MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3JlbGF0ZWRfZXZlbnRzLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWEtc2luZ2xlLXRocmVhZC1zbGljZS1zdWItdmlldyIKKyAgICBleHRlbmRzPSJ0ci11aS1hLXN1Yi12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICB9CisgICAgI2V2ZW50cyB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICB9CisKKyAgICA8L3N0eWxlPgorICAgIDx0ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldyBpZD0iY29udGVudCI+PC90ci11aS1hLXNpbmdsZS1ldmVudC1zdWItdmlldz4KKyAgICA8ZGl2IGlkPSJldmVudHMiPgorICAgICAgPHRyLXVpLWEtcmVsYXRlZC1ldmVudHMgaWQ9InJlbGF0ZWRFdmVudHMiPgorICAgICAgPC90ci11aS1hLXJlbGF0ZWQtZXZlbnRzPgorICAgIDwvZGl2PgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgIHRoaXMuJC5yZWxhdGVkRXZlbnRzLnNldFJlbGF0ZWRFdmVudHMoc2VsZWN0aW9uKTsKKyAgICAgIGlmICh0aGlzLiQucmVsYXRlZEV2ZW50cy5oYXNSZWxhdGVkRXZlbnRzKCkpCisgICAgICAgIHRoaXMuJC5yZWxhdGVkRXZlbnRzLnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy4kLnJlbGF0ZWRFdmVudHMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3NsaWNlX3N1Yl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZjNzYxZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc2luZ2xlX3RocmVhZF9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC90aHJlYWRfc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OworICB2YXIgbmV3Rmxvd0V2ZW50RXggPSB0ci5jLnRlc3RfdXRpbHMubmV3Rmxvd0V2ZW50RXg7CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgdDUzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDUyKS5nZXRPckNyZWF0ZVRocmVhZCg1Myk7CisgICAgdDUzLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMC4wLCBkdXJhdGlvbjogMC41fSkpOworICAgIHQ1My5zbGljZUdyb3VwLmNyZWF0ZVN1YlNsaWNlcygpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbGVjdGlvbi5wdXNoKHQ1My5zbGljZUdyb3VwLnNsaWNlc1swXSk7CisKKyAgICB2YXIgdmlld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtdGhyZWFkLXNsaWNlLXN1Yi12aWV3Jyk7CisgICAgdmlld0VsLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlld0VsKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVXaXRoRmxvd0V2ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obSkgeworICAgICAgbS5wMSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworCisgICAgICBtLnQyID0gbS5wMS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIG0udDMgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDMpOworICAgICAgbS50NCA9IG0ucDEuZ2V0T3JDcmVhdGVUaHJlYWQoNCk7CisKKyAgICAgIG0uc0EgPSBtLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKAorICAgICAgICAgIG5ld1NsaWNlRXgoe3RpdGxlOiAnYScsIHN0YXJ0OiAwLCBlbmQ6IDUsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNCID0gbS50My5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2InLCBzdGFydDogMTAsIGVuZDogMTUsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisgICAgICBtLnNDID0gbS50NC5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2MnLCBzdGFydDogMjAsIGVuZDogMjAsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2V9KSk7CisKKyAgICAgIG0udDIuY3JlYXRlU3ViU2xpY2VzKCk7CisgICAgICBtLnQzLmNyZWF0ZVN1YlNsaWNlcygpOworICAgICAgbS50NC5jcmVhdGVTdWJTbGljZXMoKTsKKworICAgICAgbS5mMSA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMCwgZW5kOiAxMCwKKyAgICAgICAgc3RhcnRTbGljZTogbS5zQSwKKyAgICAgICAgZW5kU2xpY2U6IG0uc0IKKyAgICAgIH0pOworICAgICAgbS5mMiA9IG5ld0Zsb3dFdmVudEV4KHsKKyAgICAgICAgJ3RpdGxlJzogJ2Zsb3dpc2gnLCBzdGFydDogMTUsIGVuZDogMjEsCisgICAgICAgIHN0YXJ0U2xpY2U6IG0uc0IsCisgICAgICAgIGVuZFNsaWNlOiBtLnNDCisgICAgICB9KTsKKyAgICB9KTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ucHVzaChtLnNBKTsKKworICAgIHZhciB2aWV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXNpbmdsZS10aHJlYWQtc2xpY2Utc3ViLXZpZXcnKTsKKyAgICB2aWV3RWwuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3RWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWYwZGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX3N1Yl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zaW5nbGUtdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXciCisgICAgZXh0ZW5kcz0idHItdWktYS1zdWItdmlldyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgdGFibGUgeworICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKKyAgICAgIGJvcmRlci13aWR0aDogMDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CisgICAgICB3aWR0aDogMTAwJTsKKyAgICB9CisKKyAgICB0YWJsZSB0ciA+IHRkOmZpcnN0LWNoaWxkIHsKKyAgICAgIHBhZGRpbmctbGVmdDogMnB4OworICAgIH0KKworICAgIHRhYmxlIHRyID4gdGQgeworICAgICAgcGFkZGluZzogMnB4IDRweCAycHggNHB4OworICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wOworICAgICAgd2lkdGg6IDE1MHB4OworICAgIH0KKworICAgIHRhYmxlIHRkIHRkIHsKKyAgICAgIHBhZGRpbmc6IDAgMCAwIDA7CisgICAgICB3aWR0aDogYXV0bzsKKyAgICB9CisgICAgdHIgeworICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisKKyAgICB0cjpudGgtY2hpbGQoMm4rMCkgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dGFibGU+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD5SdW5uaW5nIHByb2Nlc3M6PC90ZD48dGQgaWQ9InByb2Nlc3MtbmFtZSI+PC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD5SdW5uaW5nIHRocmVhZDo8L3RkPjx0ZCBpZD0idGhyZWFkLW5hbWUiPjwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+U3RhdGU6PC90ZD4KKyAgICAgICAgPHRkPjxiPjxzcGFuIGlkPSJzdGF0ZSI+PC9zcGFuPjwvYj48L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPlN0YXJ0OjwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8dHItdWktdS10aW1lLXN0YW1wLXNwYW4gaWQ9InN0YXJ0Ij4KKyAgICAgICAgICA8L3RyLXVpLXUtdGltZS1zdGFtcC1zcGFuPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPkR1cmF0aW9uOjwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8dHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4gaWQ9ImR1cmF0aW9uIj4KKyAgICAgICAgICA8L3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKworICAgICAgPHRyPgorICAgICAgICA8dGQ+T24gQ1BVOjwvdGQ+PHRkIGlkPSJvbi1jcHUiPjwvdGQ+CisgICAgICA8L3RyPgorCisgICAgICA8dHI+CisgICAgICAgIDx0ZD5SdW5uaW5nIGluc3RlYWQ6PC90ZD48dGQgaWQ9InJ1bm5pbmctaW5zdGVhZCI+PC90ZD4KKyAgICAgIDwvdHI+CisKKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPkFyZ3M6PC90ZD48dGQgaWQ9ImFyZ3MiPjwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZWxlY3Rpb25fOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBzdXBwb3J0cyBzaW5nbGUgc2xpY2VzJyk7CisgICAgICBpZiAoIShzZWxlY3Rpb25bMF0gaW5zdGFuY2VvZiB0ci5tb2RlbC5UaHJlYWRUaW1lU2xpY2UpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgc3VwcG9ydHMgdGhyZWFkIHRpbWUgc2xpY2VzJyk7CisKKyAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisKKyAgICAgIHZhciB0aW1lU2xpY2UgPSBzZWxlY3Rpb25bMF07CisgICAgICB2YXIgdGhyZWFkID0gdGltZVNsaWNlLnRocmVhZDsKKworICAgICAgdmFyIHNoYWRvd1Jvb3QgPSB0aGlzLnNoYWRvd1Jvb3Q7CisgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNzdGF0ZScpLnRleHRDb250ZW50ID0gdGltZVNsaWNlLnRpdGxlOworICAgICAgdmFyIHN0YXRlQ29sb3IgPSB0ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpW3RpbWVTbGljZS5jb2xvcklkXTsKKyAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N0YXRlJykuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gc3RhdGVDb2xvcjsKKworICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcHJvY2Vzcy1uYW1lJykudGV4dENvbnRlbnQgPQorICAgICAgICAgIHRocmVhZC5wYXJlbnQudXNlckZyaWVuZGx5TmFtZTsKKyAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3RocmVhZC1uYW1lJykudGV4dENvbnRlbnQgPQorICAgICAgICAgIHRocmVhZC51c2VyRnJpZW5kbHlOYW1lOworCisgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNzdGFydCcpLnRpbWVzdGFtcCA9IHRpbWVTbGljZS5zdGFydDsKKyAgICAgIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2R1cmF0aW9uJykuZHVyYXRpb24gPSB0aW1lU2xpY2UuZHVyYXRpb247CisgICAgICB2YXIgb25DcHVFbCA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI29uLWNwdScpOworICAgICAgb25DcHVFbC50ZXh0Q29udGVudCA9ICcnOworICAgICAgdmFyIHJ1bm5pbmdJbnN0ZWFkRWwgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNydW5uaW5nLWluc3RlYWQnKTsKKyAgICAgIGlmICh0aW1lU2xpY2UuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcpIHsKKyAgICAgICAgcnVubmluZ0luc3RlYWRFbC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHJ1bm5pbmdJbnN0ZWFkRWwpOworCisgICAgICAgIHZhciBjcHVMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgIGNwdUxpbmsuc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KAorICAgICAgICAgICAgdGltZVNsaWNlLmdldEFzc29jaWF0ZWRDcHVTbGljZSgpKTsKKyAgICAgICAgY3B1TGluay50ZXh0Q29udGVudCA9CisgICAgICAgICAgICB0aW1lU2xpY2UuY3B1T25XaGljaFRocmVhZFdhc1J1bm5pbmcudXNlckZyaWVuZGx5TmFtZTsKKyAgICAgICAgb25DcHVFbC5hcHBlbmRDaGlsZChjcHVMaW5rKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIG9uQ3B1RWwucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChvbkNwdUVsKTsKKworICAgICAgICB2YXIgY3B1U2xpY2VUaGF0VG9va0NwdSA9IHRpbWVTbGljZS5nZXRDcHVTbGljZVRoYXRUb29rQ3B1KCk7CisgICAgICAgIGlmIChjcHVTbGljZVRoYXRUb29rQ3B1KSB7CisgICAgICAgICAgdmFyIGNwdUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKyAgICAgICAgICBjcHVMaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChjcHVTbGljZVRoYXRUb29rQ3B1KTsKKyAgICAgICAgICBpZiAoY3B1U2xpY2VUaGF0VG9va0NwdS50aHJlYWQpCisgICAgICAgICAgICBjcHVMaW5rLnRleHRDb250ZW50ID0gY3B1U2xpY2VUaGF0VG9va0NwdS50aHJlYWQudXNlckZyaWVuZGx5TmFtZTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBjcHVMaW5rLnRleHRDb250ZW50ID0gY3B1U2xpY2VUaGF0VG9va0NwdS50aXRsZTsKKyAgICAgICAgICBydW5uaW5nSW5zdGVhZEVsLmFwcGVuZENoaWxkKGNwdUxpbmspOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJ1bm5pbmdJbnN0ZWFkRWwucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChydW5uaW5nSW5zdGVhZEVsKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICB2YXIgYXJnc0VsID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjYXJncycpOworICAgICAgaWYgKHRyLmIuZGljdGlvbmFyeUtleXModGltZVNsaWNlLmFyZ3MpLmxlbmd0aCA+IDApIHsKKyAgICAgICAgdmFyIGFyZ3NWaWV3ID0KKyAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3QtdmlldycpOworICAgICAgICBhcmdzVmlldy5vYmplY3QgPSB0aW1lU2xpY2UuYXJnczsKKworICAgICAgICBhcmdzRWwucGFyZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICAgIGFyZ3NFbC50ZXh0Q29udGVudCA9ICcnOworICAgICAgICBhcmdzRWwuYXBwZW5kQ2hpbGQoYXJnc1ZpZXcpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgYXJnc0VsLnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgIH0KKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhZDliNTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3NpbmdsZV90aHJlYWRfdGltZV9zbGljZV9zdWJfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL2xpbnV4X3BlcmYvZnRyYWNlX2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfdGhyZWFkX3RpbWVfc2xpY2Vfc3ViX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICBmdW5jdGlvbiBjcmVhdGVCYXNpY01vZGVsKCkgeworICAgIHZhciBsaW5lcyA9IFsKKyAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjMgMTI2MjIuNTA2ODkwOiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1BbmRyb2lkLmxhdW5jaGVyIHByZXZfcGlkPTU4NCBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UisgPT0+IG5leHRfY29tbT1CaW5kZXJfMSBuZXh0X3BpZD0yMTcgbmV4dF9wcmlvPTEyMCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAnICAgICAgIEJpbmRlcl8xLTIxNyAgIFswMDFdIGQuLjMgMTI2MjIuNTA2OTE4OiBzY2hlZF9zd2l0Y2g6IHByZXZfY29tbT1CaW5kZXJfMSBwcmV2X3BpZD0yMTcgcHJldl9wcmlvPTEyMCBwcmV2X3N0YXRlPUQgPT0+IG5leHRfY29tbT1BbmRyb2lkLmxhdW5jaGVyIG5leHRfcGlkPTU4NCBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICdBbmRyb2lkLmxhdW5jaGVyLTU4NCAgIFswMDFdIGQuLjQgMTI2MjIuNTA2OTM2OiBzY2hlZF93YWtldXA6IGNvbW09QmluZGVyXzEgcGlkPTIxNyBwcmlvPTEyMCBzdWNjZXNzPTEgdGFyZ2V0X2NwdT0wMDEnLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJ0FuZHJvaWQubGF1bmNoZXItNTg0ICAgWzAwMV0gZC4uMyAxMjYyMi41MDY5NTA6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUFuZHJvaWQubGF1bmNoZXIgcHJldl9waWQ9NTg0IHByZXZfcHJpbz0xMjAgcHJldl9zdGF0ZT1SKyA9PT4gbmV4dF9jb21tPUJpbmRlcl8xIG5leHRfcGlkPTIxNyBuZXh0X3ByaW89MTIwJywgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gLi4uMSAxMjYyMi41MDcwNTc6IHRyYWNpbmdfbWFya193cml0ZTogQnwxMjh8cXVldWVCdWZmZXInLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgICAgJyAgICAgICBCaW5kZXJfMS0yMTcgICBbMDAxXSAuLi4xIDEyNjIyLjUwNzE3NTogdHJhY2luZ19tYXJrX3dyaXRlOiBFJywKKyAgICAgICcgICAgICAgQmluZGVyXzEtMjE3ICAgWzAwMV0gZC4uMyAxMjYyMi41MDcyNTM6IHNjaGVkX3N3aXRjaDogcHJldl9jb21tPUJpbmRlcl8xIHByZXZfcGlkPTIxNyBwcmV2X3ByaW89MTIwIHByZXZfc3RhdGU9UyA9PT4gbmV4dF9jb21tPUFuZHJvaWQubGF1bmNoZXIgbmV4dF9waWQ9NTg0IG5leHRfcHJpbz0xMjAnIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgXTsKKworICAgIHJldHVybiBuZXcgdHIuTW9kZWwobGluZXMuam9pbignXG4nKSwgZmFsc2UpOworICB9CisKKyAgdGVzdCgncnVubmluZ1NsaWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVCYXNpY01vZGVsKCk7CisKKyAgICB2YXIgY3B1ID0gbS5rZXJuZWwuY3B1c1sxXTsKKyAgICB2YXIgYmluZGVyU2xpY2UgPSBjcHUuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChiaW5kZXJTbGljZS50aXRsZSwgJ0JpbmRlcl8xJyk7CisgICAgdmFyIGxhdW5jaGVyU2xpY2UgPSBjcHUuc2xpY2VzWzFdOworICAgIGFzc2VydC5lcXVhbChsYXVuY2hlclNsaWNlLnRpdGxlLCAnQW5kcm9pZC5sYXVuY2hlcicpOworCisKKyAgICB2YXIgdGhyZWFkID0gbS5maW5kQWxsVGhyZWFkc05hbWVkKCdCaW5kZXJfMScpWzBdOworCisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAndHItdWktYS1zaW5nbGUtdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXcnKTsKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2godGhyZWFkLnRpbWVTbGljZXNbMF0pOworICAgIHZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKKworICAgIC8vIENsaWNraW5nIHRoZSBhbmFseXNpcyBsaW5rIHNob3VsZCBmb2N1cyB0aGUgQmluZGVyMSdzIHRpbWVzbGljZS4KKyAgICB2YXIgZGlkU2VsZWN0aW9uQ2hhbmdlSGFwcGVuID0gZmFsc2U7CisgICAgdmlldy5hZGRFdmVudExpc3RlbmVyKCdyZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlJywgZnVuY3Rpb24oZSkgeworICAgICAgYXNzZXJ0LmVxdWFsKGUuc2VsZWN0aW9uLmxlbmd0aCwgMSk7CisgICAgICBhc3NlcnQuZXF1YWwoZS5zZWxlY3Rpb25bMF0sIGJpbmRlclNsaWNlKTsKKyAgICAgIGRpZFNlbGVjdGlvbkNoYW5nZUhhcHBlbiA9IHRydWU7CisgICAgfSk7CisgICAgdmlldy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpLmNsaWNrKCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4pOworICB9KTsKKworICB0ZXN0KCdzbGVlcGluZ1NsaWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVCYXNpY01vZGVsKCk7CisKKyAgICB2YXIgY3B1ID0gbS5rZXJuZWwuY3B1c1sxXTsKKyAgICB2YXIgYmluZGVyU2xpY2UgPSBjcHUuc2xpY2VzWzBdOworICAgIGFzc2VydC5lcXVhbChiaW5kZXJTbGljZS50aXRsZSwgJ0JpbmRlcl8xJyk7CisgICAgdmFyIGxhdW5jaGVyU2xpY2UgPSBjcHUuc2xpY2VzWzFdOworICAgIGFzc2VydC5lcXVhbChsYXVuY2hlclNsaWNlLnRpdGxlLCAnQW5kcm9pZC5sYXVuY2hlcicpOworCisKKyAgICB2YXIgdGhyZWFkID0gbS5maW5kQWxsVGhyZWFkc05hbWVkKCdCaW5kZXJfMScpWzBdOworCisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAndHItdWktYS1zaW5nbGUtdGhyZWFkLXRpbWUtc2xpY2Utc3ViLXZpZXcnKTsKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2godGhyZWFkLnRpbWVTbGljZXNbMV0pOworICAgIHZpZXcuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKKworICAgIC8vIENsaWNraW5nIHRoZSBhbmFseXNpcyBsaW5rIHNob3VsZCBmb2N1cyB0aGUgQW5kcm9pZC5sYXVuY2hlciBzbGljZQorICAgIHZhciBkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4gPSBmYWxzZTsKKyAgICB2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICBhc3NlcnQuZXF1YWwoZS5zZWxlY3Rpb24ubGVuZ3RoLCAxKTsKKyAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblswXSwgbGF1bmNoZXJTbGljZSk7CisgICAgICBkaWRTZWxlY3Rpb25DaGFuZ2VIYXBwZW4gPSB0cnVlOworICAgIH0pOworICAgIHZpZXcuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKS5jbGljaygpOworICAgIGFzc2VydC5pc1RydWUoZGlkU2VsZWN0aW9uQ2hhbmdlSGFwcGVuKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NDE0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3N0YWNrX2ZyYW1lLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYS1zdGFjay1mcmFtZSI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDx0ci11aS1iLXRhYmxlIGlkPSJ0YWJsZSI+PC90ci11aS1iLXRhYmxlPgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zdGFja0ZyYW1lXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZUNvbHVtbnMgPSBbXTsKKyAgICAgIHRoaXMuJC50YWJsZS5zaG93SGVhZGVyID0gZmFsc2U7CisgICAgfSwKKworICAgIGdldCBzdGFja0ZyYW1lKCkgeworICAgICAgcmV0dXJuIHRoaXMuc3RhY2tGcmFtZV87CisgICAgfSwKKworICAgIHNldCBzdGFja0ZyYW1lKHN0YWNrRnJhbWUpIHsKKyAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC50YWJsZTsKKworICAgICAgdGhpcy5zdGFja0ZyYW1lXyA9IHN0YWNrRnJhbWU7CisgICAgICBpZiAoc3RhY2tGcmFtZSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IFtdOworICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSBbXTsKKyAgICAgICAgdGFibGUucmVidWlsZCgpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBoYXNDYXRlZ29yeSA9IGZhbHNlOworICAgICAgdmFyIGhhc05hbWUgPSBmYWxzZTsKKyAgICAgIHZhciBoYXNUaXRsZSA9IGZhbHNlOworCisgICAgICB0YWJsZS50YWJsZVJvd3MgPSBzdGFja0ZyYW1lLnN0YWNrVHJhY2U7CisgICAgICB0YWJsZS50YWJsZVJvd3MuZm9yRWFjaChmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgaGFzQ2F0ZWdvcnkgfD0gcm93LmNhdGVnb3J5ICE9PSB1bmRlZmluZWQ7CisgICAgICAgIGhhc05hbWUgfD0gcm93Lm5hbWUgIT09IHVuZGVmaW5lZDsKKyAgICAgICAgaGFzVGl0bGUgfD0gcm93LnRpdGxlICE9PSB1bmRlZmluZWQ7CisgICAgICB9KTsKKworICAgICAgdmFyIGNvbHMgPSBbXTsKKyAgICAgIGlmIChoYXNDYXRlZ29yeSkKKyAgICAgICAgY29scy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ0NhdGVnb3J5JywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuY2F0ZWdvcnk7IH0KKyAgICAgICAgfSk7CisKKyAgICAgIGlmIChoYXNOYW1lKQorICAgICAgICBjb2xzLnB1c2goeworICAgICAgICAgIHRpdGxlOiAnTmFtZScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93Lm5hbWU7IH0KKyAgICAgICAgfSk7CisKKyAgICAgIGlmIChoYXNUaXRsZSkKKyAgICAgICAgY29scy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ1RpdGxlJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudGl0bGU7IH0KKyAgICAgICAgfSk7CisKKyAgICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHM7CisgICAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc3RhY2tfZnJhbWVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zdGFja19mcmFtZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdkZGNmYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc3RhY2tfZnJhbWVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zdGFja19mcmFtZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIGZBID0gdHIuYy50ZXN0X3V0aWxzLm5ld1N0YWNrVHJhY2UobW9kZWwsICdjYXQnLCBbJ2ExJywgJ2EyJywgJ2EzJ10pOworCisgICAgdmFyIHN0YWNrRnJhbWVWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zdGFjay1mcmFtZScpOworICAgIHN0YWNrRnJhbWVWaWV3LnN0YWNrRnJhbWUgPSBmQTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3RhY2tGcmFtZVZpZXcpOworICB9KTsKKworICB0ZXN0KCdjbGVhcmluZ1N0YWNrRnJhbWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgZkEgPSB0ci5jLnRlc3RfdXRpbHMubmV3U3RhY2tUcmFjZShtb2RlbCwgJ2NhdCcsIFsnYTEnLCAnYTInLCAnYTMnXSk7CisKKyAgICB2YXIgc3RhY2tGcmFtZVZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLXN0YWNrLWZyYW1lJyk7CisgICAgc3RhY2tGcmFtZVZpZXcuc3RhY2tGcmFtZSA9IGZBOworICAgIHN0YWNrRnJhbWVWaWV3LnN0YWNrRnJhbWUgPSB1bmRlZmluZWQ7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3RhY2tGcmFtZVZpZXcuc3RhY2tGcmFtZSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHN0YWNrRnJhbWVWaWV3LiQudGFibGUuJC5ib2R5LmNoaWxkcmVuLCAwKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy9zdHViX2FuYWx5c2lzX3Jlc3VsdHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc3R1Yl9hbmFseXNpc19yZXN1bHRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjU3YzEwNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc3R1Yl9hbmFseXNpc19yZXN1bHRzLmh0bWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5hbmFseXNpcycsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBTdHViQW5hbHlzaXNSZXN1bHRzKCkgeworICAgIHRoaXMuaGVhZGVycyA9IFtdOworICAgIHRoaXMuaW5mbyA9IFtdOworICAgIHRoaXMudGFibGVzID0gW107CisgIH0KKyAgU3R1YkFuYWx5c2lzUmVzdWx0cy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBPYmplY3QucHJvdG95cGUsCisKKyAgICBhcHBlbmRUYWJsZTogZnVuY3Rpb24ocGFyZW50LCBjbGFzc05hbWUpIHsKKyAgICAgIHZhciB0YWJsZSA9IHsKKyAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsCisgICAgICAgIHJvd3M6IFtdCisgICAgICB9OworICAgICAgdGFibGUudEhlYWQgPSB1bmRlZmluZWQ7CisgICAgICB0YWJsZS5jbGFzc05hbWUgPSBjbGFzc05hbWU7CisgICAgICB0YWJsZS5jbGFzc0xpc3QgPSBbXTsKKyAgICAgIHRhYmxlLmNsYXNzTGlzdC5wdXNoKGNsYXNzTmFtZSk7CisgICAgICB0YWJsZS5jbGFzc0xpc3QuYWRkID0gZnVuY3Rpb24oY2xhc3NOYW1lKSB7CisgICAgICAgIHRhYmxlLmNsYXNzTGlzdC5wdXNoKGNsYXNzTmFtZSk7CisgICAgICB9OworICAgICAgdGhpcy50YWJsZXMucHVzaCh0YWJsZSk7CisgICAgICByZXR1cm4gdGFibGU7CisgICAgfSwKKworICAgIGFwcGVuZEhlYWRlcjogZnVuY3Rpb24obGFiZWwpIHsKKyAgICAgIHZhciBoZWFkZXIgPSB7CisgICAgICAgIGxhYmVsOiBsYWJlbAorICAgICAgfTsKKyAgICAgIHRoaXMuaGVhZGVycy5wdXNoKGhlYWRlcik7CisgICAgICByZXR1cm4gaGVhZGVyOworICAgIH0sCisKKyAgICBhcHBlbmRJbmZvOiBmdW5jdGlvbihsYWJlbCwgdmFsdWUpIHsKKyAgICAgIHRoaXMuaW5mby5wdXNoKHtsYWJlbDogbGFiZWwsIHZhbHVlOiB2YWx1ZX0pOworICAgIH0sCisKKyAgICBhcHBlbmREZXRhaWxzUm93OiBmdW5jdGlvbih0YWJsZSwgc3RhcnQsIGR1cmF0aW9uLCBzZWxmVGltZSwgYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25HZW5lcmF0b3IsIGNwdUR1cmF0aW9uKSB7CisgICAgICB0YWJsZS5yb3dzLnB1c2goeworICAgICAgICBzdGFydDogc3RhcnQsCisgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiwKKyAgICAgICAgc2VsZlRpbWU6IHNlbGZUaW1lLAorICAgICAgICBhcmdzOiBhcmdzLAorICAgICAgICBzZWxlY3Rpb25HZW5lcmF0b3I6IHNlbGVjdGlvbkdlbmVyYXRvciwKKyAgICAgICAgY3B1RHVyYXRpb246IGNwdUR1cmF0aW9ufSk7CisgICAgfSwKKworICAgIGFwcGVuZEhlYWRSb3c6IGZ1bmN0aW9uKHRhYmxlKSB7CisgICAgICBpZiAodGFibGUuaGVhZGVyUm93KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIGhlYWRlciByb3cgYWxsb3dlZC4nKTsKKyAgICAgIHRhYmxlLmhlYWRlclJvdyA9IFtdOworICAgICAgcmV0dXJuIHRhYmxlLmhlYWRlclJvdzsKKyAgICB9LAorCisgICAgYXBwZW5kVGFibGVDZWxsOiBmdW5jdGlvbih0YWJsZSwgcm93LCB0ZXh0KSB7CisgICAgICByb3cucHVzaCh0ZXh0KTsKKyAgICB9LAorCisgICAgYXBwZW5kU3BhY2luZ1JvdzogZnVuY3Rpb24odGFibGUpIHsKKyAgICAgIHZhciByb3cgPSB7c3BhY2luZzogdHJ1ZX07CisgICAgICB0YWJsZS5yb3dzLnB1c2gocm93KTsKKyAgICAgIHJldHVybiByb3c7CisgICAgfSwKKworICAgIGFwcGVuZEluZm9Sb3c6IGZ1bmN0aW9uKHRhYmxlLCBsYWJlbCwgb3B0X3RleHQpIHsKKyAgICAgIHZhciByb3cgPSB7bGFiZWw6IGxhYmVsLCB0ZXh0OiBvcHRfdGV4dH07CisgICAgICB0YWJsZS5yb3dzLnB1c2gocm93KTsKKyAgICAgIHJldHVybiByb3c7CisgICAgfSwKKworICAgIGFwcGVuZEluZm9Sb3dUaW1lOiBmdW5jdGlvbih0YWJsZSwgbGFiZWwsIHRpbWUpIHsKKyAgICAgIHZhciByb3cgPSB7bGFiZWw6IGxhYmVsLCB0aW1lOiB0aW1lfTsKKyAgICAgIHRhYmxlLnJvd3MucHVzaChyb3cpOworICAgICAgcmV0dXJuIHJvdzsKKyAgICB9LAorCisgICAgYXBwZW5kRGF0YVJvdzogZnVuY3Rpb24odGFibGUsIGxhYmVsLCBkdXJhdGlvbiwgY3B1RHVyYXRpb24sIHNlbGZUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVNlbGZUaW1lLCBvY2N1cnJlbmNlcywgcGVyY2VudGFnZSwgZGV0YWlscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25HZW5lcmF0b3IpIHsKKyAgICAgIHZhciByb3cgPSB7CisgICAgICAgIGxhYmVsOiBsYWJlbCwKKyAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLAorICAgICAgICBjcHVEdXJhdGlvbjogY3B1RHVyYXRpb24sCisgICAgICAgIHNlbGZUaW1lOiBzZWxmVGltZSwKKyAgICAgICAgY3B1U2VsZlRpbWU6IGNwdVNlbGZUaW1lLAorICAgICAgICBvY2N1cnJlbmNlczogb2NjdXJyZW5jZXMsCisgICAgICAgIHBlcmNlbnRhZ2U6IHBlcmNlbnRhZ2UsCisgICAgICAgIGRldGFpbHM6IGRldGFpbHMsCisgICAgICAgIHNlbGVjdGlvbkdlbmVyYXRvcjogc2VsZWN0aW9uR2VuZXJhdG9yCisgICAgICB9OworICAgICAgdGFibGUucm93cy5wdXNoKHJvdyk7CisgICAgICByZXR1cm4gcm93OworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFN0dWJBbmFseXNpc1Jlc3VsdHM6IFN0dWJBbmFseXNpc1Jlc3VsdHMKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3N0dWJfYW5hbHlzaXNfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvc3R1Yl9hbmFseXNpc190YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZDNjOTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3N0dWJfYW5hbHlzaXNfdGFibGUuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gU3R1YkFuYWx5c2lzVGFibGUoKSB7CisgICAgdGhpcy5vd25lckRvY3VtZW50XyA9IGRvY3VtZW50OworICAgIHRoaXMubm9kZXNfID0gW107CisgIH0KKworICBTdHViQW5hbHlzaXNUYWJsZS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBPYmplY3QucHJvdG95cGUsCisKKyAgICBnZXQgb3duZXJEb2N1bWVudCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm93bmVyRG9jdW1lbnRfOworICAgIH0sCisKKyAgICBhcHBlbmRDaGlsZDogZnVuY3Rpb24obm9kZSkgeworICAgICAgaWYgKG5vZGUudGFnTmFtZSA9PSAnVEZPT1QnIHx8IG5vZGUudGFnTmFtZSA9PSAnVEhFQUQnIHx8CisgICAgICAgICAgICAgIG5vZGUudGFnTmFtZSA9PSAnVEJPRFknKSB7CisgICAgICAgIG5vZGUuX19wcm90b19fID0gU3R1YkFuYWx5c2lzVGFibGUucHJvdG90eXBlOworICAgICAgICBub2RlLm5vZGVzXyA9IFtdOworICAgICAgICBub2RlLm93bmVyRG9jdW1lbnRfID0gZG9jdW1lbnQ7CisgICAgICB9CisgICAgICB0aGlzLm5vZGVzXy5wdXNoKG5vZGUpOworICAgIH0sCisKKyAgICBnZXQgbGFzdE5vZGUoKSB7CisgICAgICByZXR1cm4gdGhpcy5ub2Rlc18ucG9wKCk7CisgICAgfSwKKworICAgIGdldCBub2RlQ291bnQoKSB7CisgICAgICByZXR1cm4gdGhpcy5ub2Rlc18ubGVuZ3RoOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFN0dWJBbmFseXNpc1RhYmxlOiBTdHViQW5hbHlzaXNUYWJsZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvdGFiX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvdGFiX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODMzYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbmFseXNpcy90YWJfdmlldy5odG1sCkBAIC0wLDAgKzEsNDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1hLXRhYi12aWV3IgorICAgIGNvbnN0cnVjdG9yPSJUcmFjaW5nQW5hbHlzaXNUYWJWaWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICAgIDpob3N0IHsKKyAgICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOworICAgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgICAgfQorCisgICAgICB0YWItc3RyaXBbdGFicy1oaWRkZW5dIHsKKyAgICAgICAgZGlzcGxheTogbm9uZTsKKyAgICAgIH0KKworICAgICAgdGFiLXN0cmlwIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiwgMjM2LCAyMzYpOworICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzhlOGU4ZTsKKyAgICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICAgIGZsZXgtZmxvdzogcm93OworICAgICAgICBvdmVyZmxvdy14OiBhdXRvOworICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAxMHB4OworICAgICAgICBmb250LXNpemU6IDEycHg7CisgICAgICB9CisKKyAgICAgIHRhYi1idXR0b24geworICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICAgIHBhZGRpbmc6IDRweCAxNXB4IDFweCAxNXB4OworICAgICAgICBtYXJnaW4tdG9wOiAycHg7CisgICAgICB9CisKKyAgICAgIHRhYi1idXR0b25bc2VsZWN0ZWQ9dHJ1ZV0geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE2MywgMTYzLCAxNjMpOworICAgICAgICBib3JkZXItYm90dG9tOiBub25lOworICAgICAgICBwYWRkaW5nOiAzcHggMTRweCAxcHggMTRweDsKKyAgICAgIH0KKworICAgICAgdGFicy1jb250ZW50LWNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICB9CisKKyAgICAgIDo6Y29udGVudCA+ICogeworICAgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIH0KKworICAgICAgOjpjb250ZW50ID4gKjpub3QoW3NlbGVjdGVkXSkgeworICAgICAgICBkaXNwbGF5OiBub25lOworICAgICAgfQorCisgICAgICBidXR0b24tbGFiZWwgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgICB9CisKKyAgICAgIHRhYi1zdHJpcC1oZWFkaW5nIHsKKyAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgICAgICBwYWRkaW5nOiA0cHggMTVweCAxcHggMTVweDsKKyAgICAgICAgbWFyZ2luLXRvcDogMnB4OworICAgICAgICBtYXJnaW4tYmVmb3JlOiAyMHB4OworICAgICAgICBtYXJnaW4tYWZ0ZXI6IDEwcHg7CisgICAgICB9CisgICAgICAjdHNoIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lOworICAgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorCisgICAgPHRhYi1zdHJpcD4KKyAgICAgIDx0YWItc3RyaXAtaGVhZGluZyBpZD0idHNoaCI+CisgICAgICAgIDxzcGFuIGlkPSJ0c2giPjwvc3Bhbj4KKyAgICAgIDwvdGFiLXN0cmlwLWhlYWRpbmc+CisgICAgICA8dGVtcGxhdGUgcmVwZWF0PSJ7e3RhYiBpbiB0YWJzX319Ij4KKyAgICAgICAgPHRhYi1idXR0b24KKyAgICAgICAgICAgIGJ1dHRvbi1pZD0ie3sgdGFiLmlkIH19IgorICAgICAgICAgICAgb24tY2xpY2s9Int7IHRhYkJ1dHRvblNlbGVjdEhhbmRsZXJfIH19IgorICAgICAgICAgICAgc2VsZWN0ZWQ9Int7IHNlbGVjdGVkVGFiXy5pZCA9PT0gdGFiLmlkIH19Ij4KKyAgICAgICAgICA8YnV0dG9uLWxhYmVsPnt7IHRhYi5sYWJlbCA/IHRhYi5sYWJlbCA6ICdObyBMYWJlbCd9fTwvYnV0dG9uLWxhYmVsPgorICAgICAgICA8L3RhYi1idXR0b24+CisgICAgICA8L3RlbXBsYXRlPgorICAgIDwvdGFiLXN0cmlwPgorCisgICAgPHRhYnMtY29udGVudC1jb250YWluZXIgaWQ9J2NvbnRlbnQtY29udGFpbmVyJz4KKyAgICAgICAgPGNvbnRlbnQ+PC9jb250ZW50PgorICAgIDwvdGFicy1jb250ZW50LWNvbnRhaW5lcj4KKworICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgUG9seW1lcih7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLnRzaGguc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKworICAgICAgLy8gQSB0YWIgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIGZvbGxvd2luZyB0dXBsZToKKyAgICAgIC8vIChpZCwgbGFiZWwsIGNvbnRlbnQsIG9ic2VydmVyLCBzYXZlZFNjcm9sbFRvcCwgc2F2ZWRTY3JvbGxMZWZ0KS4KKyAgICAgIC8vIFRoZSBwcm9wZXJ0aWVzIGFyZSB1c2VkIGluIHRoZSBmb2xsb3dpbmcgd2F5OgorICAgICAgLy8gaWQ6IFVuaXF1ZWx5IGlkZW50aWZpZXMgYSB0YWIuIEl0IGlzIHRoZSBzYW1lIG51bWJlciBhcyB0aGUgaW5kZXgKKyAgICAgIC8vICAgICBpbiB0aGUgdGFicyBhcnJheS4gVXNlZCBwcmltYXJpbHkgYnkgdGhlIG9uLWNsaWNrIGV2ZW50IGF0dGFjaGVkCisgICAgICAvLyAgICAgdG8gYnV0dG9ucy4KKyAgICAgIC8vIGxhYmVsOiBBIHN0cmluZywgcmVwcmVzZW50aW5nIHRoZSBsYWJlbCBwcmludGVkIG9uIHRoZSB0YWIgYnV0dG9uLgorICAgICAgLy8gY29udGVudDogVGhlIGxpZ2h0LWRvbSBjaGlsZCByZXByZXNlbnRpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZSB0YWIuCisgICAgICAvLyAgICAgVGhlIGNvbnRlbnQgaXMgYXBwZW5kZWQgdG8gdGhpcyB0YWItdmlldyBieSB0aGUgdXNlci4KKyAgICAgIC8vIG9ic2VydmVyczogVGhlIG9ic2VydmVycyBhdHRhY2hlZCB0byB0aGUgY29udGVudCBub2RlIHRvIHdhdGNoIGZvcgorICAgICAgLy8gICAgIGF0dHJpYnV0ZSBjaGFuZ2VzLiBUaGUgYXR0cmlidXRlcyBvZiBpbnRlcmVzdCBhcmU6ICdzZWxlY3RlZCcsCisgICAgICAvLyAgICAgYW5kICd0YWItbGFiZWwnLgorICAgICAgLy8gc2F2ZWRTY3JvbGxUb3AvTGVmdDogVXNlZCB0byByZXR1cm4gdGhlIHNjcm9sbCBwb3NpdGlvbiB1cG9uIHN3aXRjaGluZworICAgICAgLy8gICAgIHRhYnMuIFRoZSB2YWx1ZXMgYXJlIGdlbmVyYWxseSBzYXZlZCB3aGVuIGEgdGFiIHN3aXRjaCBvY2N1cnMuCisgICAgICAvLworICAgICAgLy8gVGhlIG9yZGVyIG9mIHRoZSB0YWJzIGlzIHJlbGV2YW50IGZvciB0aGUgdGFiIG9yZGVyaW5nLgorICAgICAgdGhpcy50YWJzXyA9IFtdOworICAgICAgdGhpcy5zZWxlY3RlZFRhYl8gPSB1bmRlZmluZWQ7CisKKyAgICAgIC8vIFJlZ2lzdGVyIGFueSBhbHJlYWR5IGV4aXN0aW5nIGNoaWxkcmVuLgorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKQorICAgICAgICB0aGlzLnByb2Nlc3NBZGRlZENoaWxkXyh0aGlzLmNoaWxkcmVuW2ldKTsKKworICAgICAgLy8gSW4gY2FzZSB0aGUgdXNlciBkZWNpZGVzIHRvIGFkZCBtb3JlIHRhYnMsIG1ha2Ugc3VyZSB3ZSB3YXRjaCBmb3IKKyAgICAgIC8vIGFueSBjaGlsZCBtdXRhdGlvbnMuCisgICAgICB0aGlzLmNoaWxkcmVuT2JzZXJ2ZXJfID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoCisgICAgICAgICAgdGhpcy5jaGlsZHJlblVwZGF0ZWRfLmJpbmQodGhpcykpOworICAgICAgdGhpcy5jaGlsZHJlbk9ic2VydmVyXy5vYnNlcnZlKHRoaXMsIHsgY2hpbGRMaXN0OiAndHJ1ZScgfSk7CisgICAgfSwKKworICAgIGdldCB0YWJTdHJpcEhlYWRpbmdUZXh0KCkgeworICAgICAgcmV0dXJuIHRoaXMuJC50c2gudGV4dENvbnRlbnQ7CisgICAgfSwKKworICAgIHNldCB0YWJTdHJpcEhlYWRpbmdUZXh0KHRhYlN0cmlwSGVhZGluZ1RleHQpIHsKKyAgICAgIHRoaXMuJC50c2gudGV4dENvbnRlbnQgPSB0YWJTdHJpcEhlYWRpbmdUZXh0OworICAgICAgaWYgKCEhdGFiU3RyaXBIZWFkaW5nVGV4dCkKKyAgICAgICAgdGhpcy4kLnRzaGguc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgZWxzZQorICAgICAgICB0aGlzLiQudHNoaC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0ZWRUYWIoKSB7CisgICAgICAvLyBNYWtlIHN1cmUgd2UgcHJvY2VzcyBhbnkgcGVuZGluZyBjaGlsZHJlbiBhZGRpdGlvbnMgLyByZW1vdmFscywgYmVmb3JlCisgICAgICAvLyB0cnlpbmcgdG8gc2VsZWN0IGEgdGFiLiBPdGhlcndpc2UsIHdlIG1pZ2h0IG5vdCBmaW5kIHNvbWUgY2hpbGRyZW4uCisgICAgICB0aGlzLmNoaWxkcmVuVXBkYXRlZF8oCisgICAgICAgIHRoaXMuY2hpbGRyZW5PYnNlcnZlcl8udGFrZVJlY29yZHMoKSwgdGhpcy5jaGlsZHJlbk9ic2VydmVyXyk7CisKKyAgICAgIC8vIERvIG5vdCBnaXZlIGFjY2VzcyB0byB0aGUgdXNlciB0byB0aGUgaW5uZXIgZGF0YSBzdHJ1Y3R1cmUuCisgICAgICAvLyBBIHVzZXIgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBtdXRhdGUgdGhlIGFkZGVkIHRhYiBjb250ZW50LgorICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWJfKQorICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRhYl8uY29udGVudDsKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIHNldCBzZWxlY3RlZFRhYihjb250ZW50KSB7CisgICAgICAvLyBNYWtlIHN1cmUgd2UgcHJvY2VzcyBhbnkgcGVuZGluZyBjaGlsZHJlbiBhZGRpdGlvbnMgLyByZW1vdmFscywgYmVmb3JlCisgICAgICAvLyB0cnlpbmcgdG8gc2VsZWN0IGEgdGFiLiBPdGhlcndpc2UsIHdlIG1pZ2h0IG5vdCBmaW5kIHNvbWUgY2hpbGRyZW4uCisgICAgICB0aGlzLmNoaWxkcmVuVXBkYXRlZF8oCisgICAgICAgIHRoaXMuY2hpbGRyZW5PYnNlcnZlcl8udGFrZVJlY29yZHMoKSwgdGhpcy5jaGlsZHJlbk9ic2VydmVyXyk7CisKKyAgICAgIGlmIChjb250ZW50ID09PSB1bmRlZmluZWQgfHwgY29udGVudCA9PT0gbnVsbCkgeworICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8odW5kZWZpbmVkKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICAvLyBTZWFyY2ggZm9yIHRoZSBzcGVjaWZpYyBub2RlIGluIG91ciB0YWJzIGxpc3QuCisgICAgICAvLyBJZiBpdCBpcyBub3QgdGhlcmUgcHJpbnQgYSB3YXJuaW5nLgorICAgICAgdmFyIGNvbnRlbnRUYWJJZCA9IHVuZGVmaW5lZDsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJzXy5sZW5ndGg7IGkrKykKKyAgICAgICAgaWYgKHRoaXMudGFic19baV0uY29udGVudCA9PT0gY29udGVudCkgeworICAgICAgICAgIGNvbnRlbnRUYWJJZCA9IHRoaXMudGFic19baV0uaWQ7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgaWYgKGNvbnRlbnRUYWJJZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGNvbnNvbGUud2FybignVGFiIG5vdCBpbiB0YWJzIGxpc3QuIElnbm9yaW5nIGNoYW5nZWQgc2VsZWN0aW9uLicpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyhjb250ZW50VGFiSWQpOworICAgIH0sCisKKyAgICBnZXQgdGFic0hpZGRlbigpIHsKKyAgICAgIHZhciB0cyA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCd0YWItc3RyaXAnKTsKKyAgICAgIHJldHVybiB0cy5oYXNBdHRyaWJ1dGUoJ3RhYnMtaGlkZGVuJyk7CisgICAgfSwKKworICAgIHNldCB0YWJzSGlkZGVuKHRhYnNIaWRkZW4pIHsKKyAgICAgIHRhYnNIaWRkZW4gPSAhIXRhYnNIaWRkZW47CisgICAgICB2YXIgdHMgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigndGFiLXN0cmlwJyk7CisgICAgICBpZiAodGFic0hpZGRlbikKKyAgICAgICAgdHMuc2V0QXR0cmlidXRlKCd0YWJzLWhpZGRlbicsIHRydWUpOworICAgICAgZWxzZQorICAgICAgICB0cy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYnMtaGlkZGVuJyk7CisgICAgfSwKKworICAgIGdldCB0YWJzKCkgeworICAgICAgcmV0dXJuIHRoaXMudGFic18ubWFwKGZ1bmN0aW9uKHRhYk9iamVjdCkgeworICAgICAgICByZXR1cm4gdGFiT2JqZWN0LmNvbnRlbnQ7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogRnVuY3Rpb24gY2FsbGVkIG9uIGxpZ2h0LWRvbSBjaGlsZCBhZGRpdGlvbi4KKyAgICAgKi8KKyAgICBwcm9jZXNzQWRkZWRDaGlsZF86IGZ1bmN0aW9uKGNoaWxkKSB7CisgICAgICB2YXIgb2JzZXJ2ZXJBdHRyaWJ1dGVTZWxlY3RlZCA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKAorICAgICAgICAgIHRoaXMuY2hpbGRBdHRyaWJ1dGVzQ2hhbmdlZF8uYmluZCh0aGlzKSk7CisgICAgICB2YXIgb2JzZXJ2ZXJBdHRyaWJ1dGVUYWJMYWJlbCA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKAorICAgICAgICAgIHRoaXMuY2hpbGRBdHRyaWJ1dGVzQ2hhbmdlZF8uYmluZCh0aGlzKSk7CisgICAgICB2YXIgdGFiT2JqZWN0ID0geworICAgICAgICBpZDogdGhpcy50YWJzXy5sZW5ndGgsCisgICAgICAgIGNvbnRlbnQ6IGNoaWxkLAorICAgICAgICBsYWJlbDogY2hpbGQuZ2V0QXR0cmlidXRlKCd0YWItbGFiZWwnKSwKKyAgICAgICAgb2JzZXJ2ZXJzOiB7CisgICAgICAgICAgZm9yQXR0cmlidXRlU2VsZWN0ZWQ6IG9ic2VydmVyQXR0cmlidXRlU2VsZWN0ZWQsCisgICAgICAgICAgZm9yQXR0cmlidXRlVGFiTGFiZWw6IG9ic2VydmVyQXR0cmlidXRlVGFiTGFiZWwKKyAgICAgICAgfQorICAgICAgfTsKKworICAgICAgdGhpcy50YWJzXy5wdXNoKHRhYk9iamVjdCk7CisgICAgICBpZiAoY2hpbGQuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKSB7CisgICAgICAgIC8vIFdoZW4gcmVjZWl2aW5nIGEgY2hpbGQgd2l0aCB0aGUgc2VsZWN0ZWQgYXR0cmlidXRlLCBpZiB3ZSBoYXZlIG5vCisgICAgICAgIC8vIHNlbGVjdGVkIHRhYiwgbWFyayB0aGUgY2hpbGQgYXMgdGhlIHNlbGVjdGVkIHRhYiwgb3RoZXJ3aXNlIGtlZXAKKyAgICAgICAgLy8gdGhlIHByZXZpb3VzIHNlbGVjdGlvbi4KKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWJfKQorICAgICAgICAgIGNoaWxkLnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRUYWJCeUlkXyh0YWJPYmplY3QuaWQpOworICAgICAgfQorCisgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHVzZXIgbWlnaHQgaGF2ZSBzZXQgdGhlIHNlbGVjdGVkCisgICAgICAvLyBwcm9wZXJ0eSBiZWZvcmUgd2UgZ290IHRvIHByb2Nlc3MgdGhlIGNoaWxkLgorICAgICAgdmFyIHByZXZpb3VzU2VsZWN0ZWQgPSBjaGlsZC5zZWxlY3RlZDsKKworICAgICAgdmFyIHRhYlZpZXcgPSB0aGlzOworCisgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoCisgICAgICAgICAgY2hpbGQsCisgICAgICAgICAgJ3NlbGVjdGVkJywgeworICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICAgICAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgICAgICAgICB0YWJWaWV3LmNoYW5nZVNlbGVjdGVkVGFiQnlJZF8odGFiT2JqZWN0LmlkKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICB2YXIgd2FzU2VsZWN0ZWQgPSB0YWJWaWV3LnNlbGVjdGVkVGFiXyA9PT0gdGFiT2JqZWN0OworICAgICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQpCisgICAgICAgICAgICAgICAgdGFiVmlldy5jaGFuZ2VTZWxlY3RlZFRhYkJ5SWRfKHVuZGVmaW5lZCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworCisgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZCkKKyAgICAgICAgY2hpbGQuc2VsZWN0ZWQgPSBwcmV2aW91c1NlbGVjdGVkOworCisgICAgICBvYnNlcnZlckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUoY2hpbGQsCisgICAgICAgICAgeyBhdHRyaWJ1dGVGaWx0ZXI6IFsnc2VsZWN0ZWQnXSB9KTsKKyAgICAgIG9ic2VydmVyQXR0cmlidXRlVGFiTGFiZWwub2JzZXJ2ZShjaGlsZCwKKyAgICAgICAgICB7IGF0dHJpYnV0ZUZpbHRlcjogWyd0YWItbGFiZWwnXSB9KTsKKworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBGdW5jdGlvbiBjYWxsZWQgb24gbGlnaHQtZG9tIGNoaWxkIHJlbW92YWwuCisgICAgICovCisgICAgcHJvY2Vzc1JlbW92ZWRDaGlsZF86IGZ1bmN0aW9uKGNoaWxkKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFic18ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIGlkcyBhcmUgdGhlIHNhbWUgYXMgdGhlIHRhYiBwb3NpdGlvbiBhZnRlciByZW1vdmFsLgorICAgICAgICB0aGlzLnRhYnNfW2ldLmlkID0gaTsKKyAgICAgICAgaWYgKHRoaXMudGFic19baV0uY29udGVudCA9PT0gY2hpbGQpIHsKKyAgICAgICAgICB0aGlzLnRhYnNfW2ldLm9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZC5kaXNjb25uZWN0KCk7CisgICAgICAgICAgdGhpcy50YWJzX1tpXS5vYnNlcnZlcnMuZm9yQXR0cmlidXRlVGFiTGFiZWwuZGlzY29ubmVjdCgpOworICAgICAgICAgIC8vIFRoZSB1c2VyIGhhcyByZW1vdmVkIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGFiLgorICAgICAgICAgIGlmICh0aGlzLnRhYnNfW2ldID09PSB0aGlzLnNlbGVjdGVkVGFiXykgeworICAgICAgICAgICAgdGhpcy5jbGVhclNlbGVjdGVkVGFiXygpOworICAgICAgICAgICAgdGhpcy5maXJlKCdzZWxlY3RlZC10YWItY2hhbmdlJyk7CisgICAgICAgICAgfQorICAgICAgICAgIGNoaWxkLnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKKyAgICAgICAgICBkZWxldGUgY2hpbGQuc2VsZWN0ZWQ7CisgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBvYnNlcnZlciBzaW5jZSB3ZSBubyBsb25nZXIgY2FyZSBhYm91dCB0aGlzIGNoaWxkLgorICAgICAgICAgIHRoaXMudGFic18uc3BsaWNlKGksIDEpOworICAgICAgICAgIGktLTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBjaGlsZCBhdHRyaWJ1dGUgY2hhbmdlcy4gVGhlIG9ubHkgcmVsZXZhbnQKKyAgICAgKiBhdHRyaWJ1dGVzIGZvciB0aGUgdGFiLXZpZXcgYXJlICd0YWItbGFiZWwnIGFuZCAnc2VsZWN0ZWQnLgorICAgICAqLworICAgIGNoaWxkQXR0cmlidXRlc0NoYW5nZWRfOiBmdW5jdGlvbihtdXRhdGlvbnMsIG9ic2VydmVyKSB7CisgICAgICB2YXIgdGFiT2JqZWN0ID0gdW5kZWZpbmVkOworICAgICAgLy8gRmlyc3QgZmlndXJlIG91dCB3aGljaCBjaGlsZCBoYXMgYmVlbiBjaGFuZ2VkLgorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYnNfLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLnRhYnNfW2ldLm9ic2VydmVyczsKKyAgICAgICAgaWYgKG9ic2VydmVycy5mb3JBdHRyaWJ1dGVTZWxlY3RlZCA9PT0gb2JzZXJ2ZXIgfHwKKyAgICAgICAgICAgIG9ic2VydmVycy5mb3JBdHRyaWJ1dGVUYWJMYWJlbCA9PT0gb2JzZXJ2ZXIpIHsKKyAgICAgICAgICAgIHRhYk9iamVjdCA9IHRoaXMudGFic19baV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCB1bmxlc3MgdGhlIHVzZXIgaGFzIG1lc3NlZCB3aXRoIG91ciBpbnRlcm5hbAorICAgICAgLy8gZGF0YSBzdHJ1Y3R1cmUuCisgICAgICBpZiAoIXRhYk9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBOZXh0IGhhbmRsZSB0aGUgYXR0cmlidXRlIGNoYW5nZXMuCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG11dGF0aW9ucy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgbm9kZSA9IHRhYk9iamVjdC5jb250ZW50OworICAgICAgICAvLyAndGFiLWxhYmVsJyBhdHRyaWJ1dGUgaGFzIGJlZW4gY2hhbmdlZC4KKyAgICAgICAgaWYgKG11dGF0aW9uc1tpXS5hdHRyaWJ1dGVOYW1lID09PSAndGFiLWxhYmVsJykKKyAgICAgICAgICB0YWJPYmplY3QubGFiZWwgPSBub2RlLmdldEF0dHJpYnV0ZSgndGFiLWxhYmVsJyk7CisgICAgICAgIC8vICdzZWxlY3RlZCcgYXR0cmlidXRlIGhhcyBiZWVuIGNoYW5nZWQuCisgICAgICAgIGlmIChtdXRhdGlvbnNbaV0uYXR0cmlidXRlTmFtZSA9PT0gJ3NlbGVjdGVkJykgeworICAgICAgICAgIC8vIFRoZSBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0LgorICAgICAgICAgIHZhciBub2RlSXNTZWxlY3RlZCA9IG5vZGUuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpOworICAgICAgICAgIGlmIChub2RlSXNTZWxlY3RlZCkKKyAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh0YWJPYmplY3QuaWQpOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyh1bmRlZmluZWQpOworICAgICAgICB9CisgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBsaWdodC1kb20gYWRkaXRpb25zIGFuZCByZW1vdmFscyBmcm9tIHRoZQorICAgICAqIHRhYi12aWV3IGNvbXBvbmVudC4KKyAgICAgKi8KKyAgICBjaGlsZHJlblVwZGF0ZWRfOiBmdW5jdGlvbihtdXRhdGlvbnMsIG9ic2VydmVyKSB7CisgICAgICBtdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbikgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG11dGF0aW9uLnJlbW92ZWROb2Rlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICB0aGlzLnByb2Nlc3NSZW1vdmVkQ2hpbGRfKG11dGF0aW9uLnJlbW92ZWROb2Rlc1tpXSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICB0aGlzLnByb2Nlc3NBZGRlZENoaWxkXyhtdXRhdGlvbi5hZGRlZE5vZGVzW2ldKTsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBIYW5kbGVyIGNhbGxlZCB3aGVuIGEgY2xpY2sgZXZlbnQgaGFwcGVucyBvbiBhbnkgb2YgdGhlIHRhYiBidXR0b25zLgorICAgICAqLworICAgIHRhYkJ1dHRvblNlbGVjdEhhbmRsZXJfOiBmdW5jdGlvbihldmVudCwgZGV0YWlsLCBzZW5kZXIpIHsKKyAgICAgIHRoaXMuY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXyhzZW5kZXIuZ2V0QXR0cmlidXRlKCdidXR0b24taWQnKSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFRoaXMgZG9lcyB0aGUgYWN0dWFsIHdvcmsuIDopCisgICAgICovCisgICAgY2hhbmdlU2VsZWN0ZWRUYWJCeUlkXzogZnVuY3Rpb24oaWQpIHsKKyAgICAgIHZhciBuZXdUYWIgPSBpZCAhPT0gdW5kZWZpbmVkID8gdGhpcy50YWJzX1tpZF0gOiB1bmRlZmluZWQ7CisgICAgICB2YXIgY2hhbmdlZCA9IHRoaXMuc2VsZWN0ZWRUYWJfICE9PSBuZXdUYWI7CisgICAgICB0aGlzLnNhdmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fKCk7CisgICAgICB0aGlzLmNsZWFyU2VsZWN0ZWRUYWJfKCk7CisgICAgICBpZiAoaWQgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLnNldFNlbGVjdGVkVGFiQnlJZF8oaWQpOworICAgICAgICB0aGlzLnJlc3RvcmVDdXJyZW50VGFiU2Nyb2xsUG9zaXRpb25fKCk7CisgICAgICB9CisKKyAgICAgIGlmIChjaGFuZ2VkKQorICAgICAgICB0aGlzLmZpcmUoJ3NlbGVjdGVkLXRhYi1jaGFuZ2UnKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGFiIGJhc2VkIG9uIGl0cyBpbnRlcm5hbAorICAgICAqIGlkLiBUaGUgY29ycmVzcG9uZGluZyBsaWdodC1kb20gZWxlbWVudCByZWNlaXZlcyB0aGUgc2VsZWN0ZWQgYXR0cmlidXRlLgorICAgICAqLworICAgIHNldFNlbGVjdGVkVGFiQnlJZF86IGZ1bmN0aW9uKGlkKSB7CisgICAgICB0aGlzLnNlbGVjdGVkVGFiXyA9IHRoaXMudGFic19baWRdOworICAgICAgLy8gRGlzY29ubmVjdCBvYnNlcnZlciB3aGlsZSB3ZSBtdXRhdGUgdGhlIGNoaWxkLgorICAgICAgdGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLmRpc2Nvbm5lY3QoKTsKKyAgICAgIHRoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsICdzZWxlY3RlZCcpOworICAgICAgLy8gUmVjb25uZWN0IHRoZSBvYnNlcnZlciB0byB3YXRjaCBmb3IgY2hhbmdlcyBpbiB0aGUgZnV0dXJlLgorICAgICAgdGhpcy5zZWxlY3RlZFRhYl8ub2JzZXJ2ZXJzLmZvckF0dHJpYnV0ZVNlbGVjdGVkLm9ic2VydmUoCisgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uY29udGVudCwgeyBhdHRyaWJ1dGVGaWx0ZXI6IFsnc2VsZWN0ZWQnXSB9KTsKKworICAgIH0sCisKKyAgICBzYXZlVGFiU3RhdGVzOiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIFNjcm9sbCBwb3NpdGlvbnMgb2YgdW5zZWxlY3RlZCB0YWJzIGhhdmUgYWxyZWFkeSBiZWVuIHNhdmVkLgorICAgICAgdGhpcy5zYXZlQ3VycmVudFRhYlNjcm9sbFBvc2l0aW9uXygpOworICAgIH0sCisKKyAgICBzYXZlQ3VycmVudFRhYlNjcm9sbFBvc2l0aW9uXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYl8pIHsKKyAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uY29udGVudC5fc2F2ZWRTY3JvbGxUb3AgPQorICAgICAgICAgICAgdGhpcy4kWydjb250ZW50LWNvbnRhaW5lciddLnNjcm9sbFRvcDsKKyAgICAgICAgdGhpcy5zZWxlY3RlZFRhYl8uY29udGVudC5fc2F2ZWRTY3JvbGxMZWZ0ID0KKyAgICAgICAgICAgIHRoaXMuJFsnY29udGVudC1jb250YWluZXInXS5zY3JvbGxMZWZ0OworICAgICAgfQorICAgIH0sCisKKyAgICByZXN0b3JlQ3VycmVudFRhYlNjcm9sbFBvc2l0aW9uXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYl8pIHsKKyAgICAgICAgdGhpcy4kWydjb250ZW50LWNvbnRhaW5lciddLnNjcm9sbFRvcCA9CisgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiXy5jb250ZW50Ll9zYXZlZFNjcm9sbFRvcCB8fCAwOworICAgICAgICB0aGlzLiRbJ2NvbnRlbnQtY29udGFpbmVyJ10uc2Nyb2xsTGVmdCA9CisgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiXy5jb250ZW50Ll9zYXZlZFNjcm9sbExlZnQgfHwgMDsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjbGVhcnMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0YWIuIFRoaXMgaGFuZGxlcyByZW1vdmFsCisgICAgICogb2YgdGhlIHNlbGVjdGVkIGF0dHJpYnV0ZSBmcm9tIHRoZSBsaWdodC1kb20gZWxlbWVudC4KKyAgICAgKi8KKyAgICBjbGVhclNlbGVjdGVkVGFiXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYl8pIHsKKyAgICAgICAgLy8gRGlzY29ubmVjdCBvYnNlcnZlciB3aGlsZSB3ZSBtdXRhdGUgdGhlIGNoaWxkLgorICAgICAgICB0aGlzLnNlbGVjdGVkVGFiXy5vYnNlcnZlcnMuZm9yQXR0cmlidXRlU2VsZWN0ZWQuZGlzY29ubmVjdCgpOworICAgICAgICB0aGlzLnNlbGVjdGVkVGFiXy5jb250ZW50LnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTsKKyAgICAgICAgLy8gUmVjb25uZWN0IHRoZSBvYnNlcnZlciB0byB3YXRjaCBmb3IgY2hhbmdlcyBpbiB0aGUgZnV0dXJlLgorICAgICAgICB0aGlzLnNlbGVjdGVkVGFiXy5vYnNlcnZlcnMuZm9yQXR0cmlidXRlU2VsZWN0ZWQub2JzZXJ2ZSgKKyAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJfLmNvbnRlbnQsIHsgYXR0cmlidXRlRmlsdGVyOiBbJ3NlbGVjdGVkJ10gfSk7CisgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJfID0gdW5kZWZpbmVkOworICAgICAgfQorICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3RhYl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5hbHlzaXMvdGFiX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NDk2OTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2FuYWx5c2lzL3RhYl92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDMyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvdGFiX3ZpZXcuaHRtbCI+CisKKzx0ZW1wbGF0ZSBpZD0idGFiLXZpZXctdGVzdC10ZW1wbGF0ZSI+CisgIDx0ci11aS1hLXRhYi12aWV3PgorICAgIDxwIHRhYi1sYWJlbD0iRXhpc3RpbmcgTGFiZWwiPiBUYWIgd2l0aCBsYWJlbCBhbHJlYWR5IHNldCA8L3A+CisgICAgPHA+IFRhYiBDb250ZW50IHdpdGggbm8gbGFiZWwgPC9wPgorICAgIDxwIHNlbGVjdGVkPSJzZWxlY3RlZCIgdGFiLWxhYmVsPSJTaG91bGQgYmUgc2VsZWN0ZWQiPgorICAgICAgQWxyZWFkeSBzZWxlY3RlZCB0YWIKKyAgICA8L3A+CisgICAgPHAgc2VsZWN0ZWQ9InNlbGVjdGVkIiB0YWItbGFiZWw9IlNob3VsZCBub3QgYmUgc2VsZWN0ZWQiPgorICAgICAgU2Vjb25kIGFscmVhZHkgc2VsZWN0ZWQgdGFiCisgICAgPC9wPgorICA8L3RyLXVpLWEtdGFiLXZpZXc+Cis8L3RlbXBsYXRlPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50Ll9jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKworICAgIHZhciBUQUJfVEVYVCA9ICdMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LicgKworICAgICAgICAnIENyYXMgZWxlaWZlbmQgZWxpdCBuZWMgZXJhdCB0cmlzdGlxdWUgcGVsbGVudGVzcXVlLiBDcmFzIHBsYWNlcmF0ICcgKworICAgICAgICAnbGVjdHVzLCBzZWQgc2VtcGVyIHRvcnRvciBvcm5hcmUgcXVpcy4gTWFlY2VuYXMgdml0YWUgaGVuZHJlcml0LiAnICsKKyAgICAgICAgJ0NyYXMgbWF0dGlzIGludGVyZHVtIG5pc2ksIGVnZXQgZWdlc3RhcyBkdWkgaWFjdWxpcyB1bHRyaWNpZXMuIFByb2knICsKKyAgICAgICAgJ24gbWFnbmEgYXQgbmliaCBmcmluZ2lsbGEgdGluY2lkdW50IGlkIHZpdGFlIGFudGUuIEZ1c2NlIG5lYyB1cm5hIG4nICsKKyAgICAgICAgJ29uIHBvcnR0aXRvciB0aW5jaWR1bnQuIFBlbGxlbnRlc3F1ZSBoYWJpdGFudCBtb3JiaSB0cmlzdGlxdWUgc2VuZWMnICsKKyAgICAgICAgJ3R1cyBuZXR1cyBldCBtYWxlc3VhZGEgZmFtZXMgYWMgdHVycGlzIGVnZXN0YXMuIFN1c3BlbmRpc3NlIHNlZCB2ZWwnICsKKyAgICAgICAgJ2l0IG1vbGxpcyBvcm5hcmUgc2l0IGFtZXQgdmVsIGF1Z3VlLiBOdWxsYW0gcmhvbmN1cyBpbiB0ZWxsdXMgaWQuICcgKworICAgICAgICAnVmVzdGlidWx1bSBhbnRlIGlwc3VtIHByaW1pcyBpbiBmYXVjaWJ1cyBvcmNpIGx1Y3R1cyBldCB1bHRyaWNlcyAnICsKKyAgICAgICAgJ2N1YmlsaWEgQ3VyYWU7IE51bmMgYXQgdmVsaXQgY29uc2VjdGV0dXIgaXBzdW0gdGVtcHVzIHRlbXB1cy4gTnVuYyAnICsKKyAgICAgICAgJ21hdHRpcyBzYXBpZW4sIGEgcGxhY2VyYXQgZXJhdC4gVml2YW11cyBhYyBlbmltIHVsdHJpY2llcywgZ3JhdmlkYSAnICsKKyAgICAgICAgJ251bGxhIHV0LCBzY2VsZXJpc3F1ZSBtYWduYS4gU2VkIGEgdm9sdXRwYXQgZW5pbS4gTW9yYmkgdnVscHV0YXRlLCAnICsKKyAgICAgICAgJ3NlZCBlZ2VzdGFzIG1vbGxpcywgdXJuYSBuaXNsIHZhcml1cyBzZW0sIHNlZCB2ZW5lbmF0aXMgdHVycGlzIG51bGwnICsKKyAgICAgICAgJ2EgaXBzdW0uIFN1c3BlbmRpc3NlIHBvdGVudGkuJzsKKworICAgIHZhciB0YWJWaWV3Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS53aWR0aCA9ICc1MDBweCc7CisgICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMjAwcHgnOworCisgICAgdmFyIHRhYlZpZXcgPSBuZXcgVHJhY2luZ0FuYWx5c2lzVGFiVmlldygpOworCisgICAgdmFyIGZpcnN0VGFiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZmlyc3RUYWIuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnRmlyc3QgVGFiIExhYmVsJyk7CisgICAgZmlyc3RUYWIuaW5uZXJIVE1MID0gJzxwPicgKyBUQUJfVEVYVCArICc8cD4nOworCisgICAgdmFyIHNlY29uZFRhYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHNlY29uZFRhYi5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdTZWNvbmQgVGFiIExhYmVsJyk7CisgICAgc2Vjb25kVGFiLmlubmVySFRNTCA9ICc8Yj4nICsgJ1NlY29uZCBUYWIgVGV4dCcgKyAnPC9iPic7CisKKyAgICB2YXIgdGhpcmRUYWIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0aGlyZFRhYi5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdUaGlyZCBUYWIgTGFiZWwnKTsKKyAgICB0aGlyZFRhYi5pbm5lckhUTUwgPSAnPGI+JyArICdUaGlyZCBUYWIgVGV4dCcgKyAnPC9iPic7CisKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKGZpcnN0VGFiKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHNlY29uZFRhYik7CisgICAgdGFiVmlldy5hcHBlbmRDaGlsZCh0aGlyZFRhYik7CisgICAgdGFiVmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0YWJWaWV3KTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJWaWV3Q29udGFpbmVyKTsKKworICAgIHRoaXJkVGFiLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ1NvbWV0aGluZyBEaWZmZXJlbnQnKTsKKworICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICBidXR0b24udGV4dENvbnRlbnQgPSAnQ2hhbmdlIGxhYmVsJzsKKworICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeworICAgICAgdGhpcmRUYWIuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnTGFiZWwgQ2hhbmdlZCcpOworICAgIH0pOworCisgICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHNlY29uZFRhYjsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYnV0dG9uKTsKKyAgfSk7CisKKworICB0ZXN0KCdpbnN0YW50aWF0ZVdpdGhUYWJIZWFkaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIFRBQl9URVhUID0gJ0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuJyArCisgICAgICAgICcgQ3JhcyBlbGVpZmVuZCBlbGl0IG5lYyBlcmF0IHRyaXN0aXF1ZSBwZWxsZW50ZXNxdWUuIENyYXMgcGxhY2VyYXQgJyArCisgICAgICAgICdsZWN0dXMsIHNlZCBzZW1wZXIgdG9ydG9yIG9ybmFyZSBxdWlzLiBNYWVjZW5hcyB2aXRhZSBoZW5kcmVyaXQuICcgKworICAgICAgICAnQ3JhcyBtYXR0aXMgaW50ZXJkdW0gbmlzaSwgZWdldCBlZ2VzdGFzIGR1aSBpYWN1bGlzIHVsdHJpY2llcy4gUHJvaScgKworICAgICAgICAnbiBtYWduYSBhdCBuaWJoIGZyaW5naWxsYSB0aW5jaWR1bnQgaWQgdml0YWUgYW50ZS4gRnVzY2UgbmVjIHVybmEgbicgKworICAgICAgICAnb24gcG9ydHRpdG9yIHRpbmNpZHVudC4gUGVsbGVudGVzcXVlIGhhYml0YW50IG1vcmJpIHRyaXN0aXF1ZSBzZW5lYycgKworICAgICAgICAndHVzIG5ldHVzIGV0IG1hbGVzdWFkYSBmYW1lcyBhYyB0dXJwaXMgZWdlc3Rhcy4gU3VzcGVuZGlzc2Ugc2VkIHZlbCcgKworICAgICAgICAnaXQgbW9sbGlzIG9ybmFyZSBzaXQgYW1ldCB2ZWwgYXVndWUuIE51bGxhbSByaG9uY3VzIGluIHRlbGx1cyBpZC4gJyArCisgICAgICAgICdWZXN0aWJ1bHVtIGFudGUgaXBzdW0gcHJpbWlzIGluIGZhdWNpYnVzIG9yY2kgbHVjdHVzIGV0IHVsdHJpY2VzICcgKworICAgICAgICAnY3ViaWxpYSBDdXJhZTsgTnVuYyBhdCB2ZWxpdCBjb25zZWN0ZXR1ciBpcHN1bSB0ZW1wdXMgdGVtcHVzLiBOdW5jICcgKworICAgICAgICAnbWF0dGlzIHNhcGllbiwgYSBwbGFjZXJhdCBlcmF0LiBWaXZhbXVzIGFjIGVuaW0gdWx0cmljaWVzLCBncmF2aWRhICcgKworICAgICAgICAnbnVsbGEgdXQsIHNjZWxlcmlzcXVlIG1hZ25hLiBTZWQgYSB2b2x1dHBhdCBlbmltLiBNb3JiaSB2dWxwdXRhdGUsICcgKworICAgICAgICAnc2VkIGVnZXN0YXMgbW9sbGlzLCB1cm5hIG5pc2wgdmFyaXVzIHNlbSwgc2VkIHZlbmVuYXRpcyB0dXJwaXMgbnVsbCcgKworICAgICAgICAnYSBpcHN1bS4gU3VzcGVuZGlzc2UgcG90ZW50aS4nOworCisgICAgdmFyIHRhYlZpZXdDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLndpZHRoID0gJzUwMHB4JzsKKyAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7CisKKyAgICB2YXIgdGFiVmlldyA9IG5ldyBUcmFjaW5nQW5hbHlzaXNUYWJWaWV3KCk7CisgICAgdGFiVmlldy50YWJTdHJpcEhlYWRpbmdUZXh0ID0gJ0hlbGxvIHdvcmxkOic7CisKKyAgICB2YXIgZmlyc3RUYWIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBmaXJzdFRhYi5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdGaXJzdCBUYWIgTGFiZWwnKTsKKyAgICBmaXJzdFRhYi5pbm5lckhUTUwgPSAnPHA+JyArIFRBQl9URVhUICsgJzxwPic7CisKKyAgICB2YXIgc2Vjb25kVGFiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgc2Vjb25kVGFiLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ1NlY29uZCBUYWIgTGFiZWwnKTsKKyAgICBzZWNvbmRUYWIuaW5uZXJIVE1MID0gJzxiPicgKyAnU2Vjb25kIFRhYiBUZXh0JyArICc8L2I+JzsKKworICAgIHZhciB0aGlyZFRhYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRoaXJkVGFiLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ1RoaXJkIFRhYiBMYWJlbCcpOworICAgIHRoaXJkVGFiLmlubmVySFRNTCA9ICc8Yj4nICsgJ1RoaXJkIFRhYiBUZXh0JyArICc8L2I+JzsKKworICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQoZmlyc3RUYWIpOworICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQoc2Vjb25kVGFiKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHRoaXJkVGFiKTsKKyAgICB0YWJWaWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlZpZXcpOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYlZpZXdDb250YWluZXIpOworICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSBzZWNvbmRUYWI7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlQ2hpbGRyZW5BbHJlYWR5SW5zaWRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhYlZpZXdUZW1wbGF0ZSA9IFRISVNfRE9DLnF1ZXJ5U2VsZWN0b3IoJyN0YWItdmlldy10ZXN0LXRlbXBsYXRlJyk7CisgICAgdmFyIHRhYlZpZXcgPSB0YWJWaWV3VGVtcGxhdGUuY3JlYXRlSW5zdGFuY2UoKTsKKworICAgIHZhciB0YWJWaWV3Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS53aWR0aCA9ICc0MDBweCc7CisgICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMjAwcHgnOworCisgICAgdGFiVmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0YWJWaWV3KTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJWaWV3Q29udGFpbmVyKTsKKworICB9KTsKKworICB0ZXN0KCdwcm9ncmFtYXRpY2FsbHlTZXRTZWxlY3RlZFRhYicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJWaWV3Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS53aWR0aCA9ICc1MDBweCc7CisgICAgdGFiVmlld0NvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMjAwcHgnOworCisgICAgdmFyIHRhYlZpZXcgPSBuZXcgVHJhY2luZ0FuYWx5c2lzVGFiVmlldygpOworCisgICAgdmFyIHQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIHQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIHQzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQxKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQyKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQzKTsKKworICAgIGFzc2VydC5pc1VuZGVmaW5lZCh0YWJWaWV3LnNlbGVjdGVkVGFiKTsKKyAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gdDE7CisKKyAgICBhc3NlcnQuaXNUcnVlKHQxLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodDIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBhc3NlcnQuaXNGYWxzZSh0My5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOworICAgIGFzc2VydC5pc1RydWUoT2JqZWN0LmlzKHQxLCB0YWJWaWV3LnNlbGVjdGVkVGFiKSk7CisKKyAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gdDI7CisgICAgYXNzZXJ0LmlzRmFsc2UodDEuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBhc3NlcnQuaXNUcnVlKHQyLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodDMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBhc3NlcnQuaXNUcnVlKE9iamVjdC5pcyh0MiwgdGFiVmlldy5zZWxlY3RlZFRhYikpOworCisgICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHQzOworICAgIGFzc2VydC5pc0ZhbHNlKHQxLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodDIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBhc3NlcnQuaXNUcnVlKHQzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShPYmplY3QuaXModDMsIHRhYlZpZXcuc2VsZWN0ZWRUYWIpKTsKKworICAgIHQxLnNlbGVjdGVkID0gdHJ1ZTsKKyAgICBhc3NlcnQuaXNUcnVlKHQxLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodDIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBhc3NlcnQuaXNGYWxzZSh0My5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOworICAgIGFzc2VydC5pc1RydWUoT2JqZWN0LmlzKHQxLCB0YWJWaWV3LnNlbGVjdGVkVGFiKSk7CisKKyAgICAvLyBNYWtlIHN1cmUganVzdCByYW5kb21seSBzZXR0aW5nIGEgdGFiIGFzIG5vdCBzZWxlY3RlZCBkb2VzIG5vdAorICAgIC8vIGJyZWFrIHRoZSBleGlzdGluZyBzZWxlY3Rpb24uCisgICAgdDIuc2VsZWN0ZWQgPSBmYWxzZTsKKyAgICB0My5zZWxlY3RlZCA9IGZhbHNlOworICAgIGFzc2VydC5pc1RydWUodDEuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBhc3NlcnQuaXNGYWxzZSh0Mi5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOworICAgIGFzc2VydC5pc0ZhbHNlKHQzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShPYmplY3QuaXModDEsIHRhYlZpZXcuc2VsZWN0ZWRUYWIpKTsKKworICAgIHQzLnNlbGVjdGVkID0gdHJ1ZTsKKyAgICBhc3NlcnQuaXNGYWxzZSh0MS5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOworICAgIGFzc2VydC5pc0ZhbHNlKHQyLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0My5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpOworICAgIGFzc2VydC5pc1RydWUoT2JqZWN0LmlzKHQzLCB0YWJWaWV3LnNlbGVjdGVkVGFiKSk7CisKKyAgICB0YWJWaWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlZpZXcpOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYlZpZXdDb250YWluZXIpOworICB9KTsKKworICAvKioKKyAgICogVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGlmIGFuIGVsZW1lbnQgaGFzIGEgc2VsZWN0ZWQgcHJvcGVydHkgYWxyZWFkeSBzZXQsCisgICAqIGJlZm9yZSBiZWluZyBhdHRhY2hlZCB0byB0aGUgdGFiVmlldywgaXQgc3RpbGwgZ2V0cyBzZWxlY3RlZCBpZiB0aGUKKyAgICogcHJvcGVydHkgaXMgdHJ1ZSwgYWZ0ZXIgaXQgZ2V0cyBhdHRhY2hlZC4KKyAgICovCisgIHRlc3QoJ2luc3RhbnRpYXRlU2V0U2VsZWN0ZWRUYWJBbHJlYWR5U2V0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhYlZpZXdDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLndpZHRoID0gJzUwMHB4JzsKKyAgICB0YWJWaWV3Q29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7CisKKyAgICB2YXIgdGFiVmlldyA9IG5ldyBUcmFjaW5nQW5hbHlzaXNUYWJWaWV3KCk7CisKKyAgICB2YXIgdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0MS50ZXh0Q29udGVudCA9ICdUaGlzIHRleHQgc2hvdWxkIEJFIHZpc2libGUuJzsKKyAgICB2YXIgdDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0Mi50ZXh0Q29udGVudCA9ICdUaGlzIHRleHQgc2hvdWxkIE5PVCBiZSB2aXNpYmxlLic7CisgICAgdmFyIHQzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdDMudGV4dENvbnRlbnQgPSAnVGhpcyB0ZXh0IHNob3VsZCBOT1QgYmUgdmlzaWJsZSwgYWxzby4nOworCisgICAgdDEuc2VsZWN0ZWQgPSB0cnVlOworICAgIHQyLnNlbGVjdGVkID0gZmFsc2U7CisgICAgdDMuc2VsZWN0ZWQgPSBmYWxzZTsKKworICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDEpOworICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDIpOworICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDMpOworCisgICAgdDEuc2V0QXR0cmlidXRlKCd0YWItbGFiZWwnLCAnVGhpcyBzaG91bGQgYmUgc2VsZWN0ZWQnKTsKKyAgICB0Mi5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdOb3Qgc2VsZWN0ZWQnKTsKKyAgICB0My5zZXRBdHRyaWJ1dGUoJ3RhYi1sYWJlbCcsICdOb3Qgc2VsZWN0ZWQnKTsKKworICAgIHRhYlZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQodGFiVmlldyk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFiVmlld0NvbnRhaW5lcik7CisgIH0pOworCisgIHRlc3QoJ3NlbGVjdGluZ0ludmFsaWRUYWJXb3JrcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJWaWV3ID0gbmV3IFRyYWNpbmdBbmFseXNpc1RhYlZpZXcoKTsKKyAgICB2YXIgdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgaW52YWxpZENoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQxKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQyKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQzKTsKKworICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSB0MTsKKworICAgIGFzc2VydC5lcXVhbCh0YWJWaWV3LnNlbGVjdGVkVGFiLCB0MSk7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCBzZWxlY3RpbmcgYW4gaW52YWxpZCB0YWIgZG9lcyBub3QgYnJlYWsgdGhlIGN1cnJlbnQKKyAgICAvLyBzZWxlY3Rpb24uCisgICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IGludmFsaWRDaGlsZDsKKyAgICBhc3NlcnQuZXF1YWwodDEsIHRhYlZpZXcuc2VsZWN0ZWRUYWIpOworCisgICAgLy8gQWxzbyBtYWtlIHN1cmUgdGhlIGludmFsaWRDaGlsZCBkb2VzIG5vdCBpbmZsdWVuY2UgdGhlIHRhYiB2aWV3IHdoZW4KKyAgICAvLyBpdCBoYXMgYSBzZWxlY3RlZCBwcm9wZXJ0eSBzZXQuCisgICAgaW52YWxpZENoaWxkLnNlbGVjdGVkID0gdHJ1ZTsKKyAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gaW52YWxpZENoaWxkOworICAgIGFzc2VydC5lcXVhbCh0MSwgdGFiVmlldy5zZWxlY3RlZFRhYik7CisgIH0pOworCisgIHRlc3QoJ2NoYW5nZVRhYkNhdXNlc0V2ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhYlZpZXcgPSBuZXcgVHJhY2luZ0FuYWx5c2lzVGFiVmlldygpOworICAgIHZhciB0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciB0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciBpbnZhbGlkQ2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDEpOworICAgIHRhYlZpZXcuYXBwZW5kQ2hpbGQodDIpOworCisgICAgdmFyIG51bUNoYW5nZUV2ZW50cyA9IDA7CisgICAgdGFiVmlldy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RlZC10YWItY2hhbmdlJywgZnVuY3Rpb24oKSB7CisgICAgICAgIG51bUNoYW5nZUV2ZW50cysrOworICAgIH0pOworICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSB0MTsKKyAgICBhc3NlcnQuZXF1YWwobnVtQ2hhbmdlRXZlbnRzLCAxKTsKKyAgICB0YWJWaWV3LnNlbGVjdGVkVGFiID0gdDE7CisgICAgYXNzZXJ0LmVxdWFsKG51bUNoYW5nZUV2ZW50cywgMSk7CisgICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHQyOworICAgIGFzc2VydC5lcXVhbChudW1DaGFuZ2VFdmVudHMsIDIpOworICAgIHRhYlZpZXcuc2VsZWN0ZWRUYWIgPSB1bmRlZmluZWQ7CisgICAgYXNzZXJ0LmVxdWFsKG51bUNoYW5nZUV2ZW50cywgMyk7CisgIH0pOworCisgIC8qKgorICAgKiBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHJlbW92aW5nIHRoZSBzZWxlY3RlZCB0YWIgZG9lcyBub3Qgc2VsZWN0CisgICAqIGFueSBvdGhlciB0YWIuCisgICAqLworICB0ZXN0KCdpbnN0YW50aWF0ZVJlbW92aW5nU2VsZWN0ZWRUYWInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFiVmlld0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhYlZpZXdDb250YWluZXIuc3R5bGUud2lkdGggPSAnNTAwcHgnOworICAgIHRhYlZpZXdDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzIwMHB4JzsKKworICAgIHZhciB0YWJWaWV3ID0gbmV3IFRyYWNpbmdBbmFseXNpc1RhYlZpZXcoKTsKKworICAgIHZhciB0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHQxLnRleHRDb250ZW50ID0gJ1RoaXMgdGV4dCBzaG91bGQgQkUgdmlzaWJsZS4nOworICAgIHZhciB0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHQyLnRleHRDb250ZW50ID0gJ1RoaXMgdGV4dCBzaG91bGQgTk9UIGJlIHZpc2libGUuJzsKKyAgICB2YXIgdDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0My50ZXh0Q29udGVudCA9ICdUaGlzIHRleHQgc2hvdWxkIE5PVCBiZSB2aXNpYmxlLCBhbHNvLic7CisKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQxKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQyKTsKKyAgICB0YWJWaWV3LmFwcGVuZENoaWxkKHQzKTsKKworICAgIHQxLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ1RoaXMgc2hvdWxkIG5vdCBleGlzdCcpOworICAgIHQyLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ05vdCBzZWxlY3RlZCcpOworICAgIHQzLnNldEF0dHJpYnV0ZSgndGFiLWxhYmVsJywgJ05vdCBzZWxlY3RlZCcpOworCisgICAgdGFiVmlldy5zZWxlY3RlZFRhYiA9IHQxOworICAgIHRhYlZpZXcucmVtb3ZlQ2hpbGQodDEpOworCisgICAgdGFiVmlld0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0YWJWaWV3KTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJWaWV3Q29udGFpbmVyKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc3NmNiOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbl92aWV3Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuYW5ub3RhdGlvbnMnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEEgYmFzZSBjbGFzcyBmb3IgYWxsIGFubm90YXRpb24gdmlld3MuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQW5ub3RhdGlvblZpZXcodmlld3BvcnQsIGFubm90YXRpb24pIHsKKyAgfQorCisgIEFubm90YXRpb25WaWV3LnByb3RvdHlwZSA9IHsKKyAgICBkcmF3OiBmdW5jdGlvbihjdHgpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgQW5ub3RhdGlvblZpZXc6IEFubm90YXRpb25WaWV3CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmOGMwOWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Fubm90YXRpb25zL2Fubm90YXRpb25fdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbG9jYXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2NvbW1lbnRfYm94X2Fubm90YXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3JlY3RfYW5ub3RhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3hfbWFya2VyX2Fubm90YXRpb24uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworCisgIGZ1bmN0aW9uIGNyZWF0ZVBvcHVsYXRlZFRpbWVsaW5lKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgIHRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZSh0ci5jLnRlc3RfdXRpbHMubmV3U2xpY2VOYW1lZCgnYScsIDgwLCA1MCkpOworCisgICAgdmFyIHRpbWVsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdHJhY2stdmlldycpOworICAgIHZhciB2cCA9IG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KHRpbWVsaW5lKTsKKyAgICB0aW1lbGluZS5tb2RlbCA9IG1vZGVsOworICAgIHRpbWVsaW5lLnN0eWxlLm1heEhlaWdodCA9ICc2MDBweCc7CisKKyAgICByZXR1cm4gdGltZWxpbmU7CisgIH0KKworICB0ZXN0KCdyZWN0QW5ub3RhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBmYWtlWUNvbXBvbmVudHMxID0gW3tzdGFibGVJZDogJzEuMicsIHlQZXJjZW50T2Zmc2V0OiAwLjN9XTsKKyAgICB2YXIgZmFrZVlDb21wb25lbnRzMiA9IFt7c3RhYmxlSWQ6ICcxLjInLCB5UGVyY2VudE9mZnNldDogMC45fV07CisgICAgdmFyIHN0YXJ0ID0gbmV3IHRyLm1vZGVsLkxvY2F0aW9uKDUwLCBmYWtlWUNvbXBvbmVudHMxKTsKKyAgICB2YXIgZW5kID0gbmV3IHRyLm1vZGVsLkxvY2F0aW9uKDEwMCwgZmFrZVlDb21wb25lbnRzMik7CisgICAgdmFyIHJlY3RBbm5vdGF0aW9uID0gbmV3IHRyLm1vZGVsLlJlY3RBbm5vdGF0aW9uKHN0YXJ0LCBlbmQpOworCisgICAgdmFyIHRpbWVsaW5lID0gY3JlYXRlUG9wdWxhdGVkVGltZWxpbmUoKTsKKyAgICB0aW1lbGluZS5tb2RlbC5hZGRBbm5vdGF0aW9uKHJlY3RBbm5vdGF0aW9uKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZWxpbmUpOworICB9KTsKKworICB0ZXN0KCd4TWFya2VyQW5ub3RhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB4TWFya2VyQW5ub3RhdGlvbiA9IG5ldyB0ci5tb2RlbC5YTWFya2VyQW5ub3RhdGlvbig5MCk7CisKKyAgICB2YXIgdGltZWxpbmUgPSBjcmVhdGVQb3B1bGF0ZWRUaW1lbGluZSgpOworICAgIHZhciBtb2RlbCA9IHRpbWVsaW5lLm1vZGVsOworICAgIHRpbWVsaW5lLm1vZGVsLmFkZEFubm90YXRpb24oeE1hcmtlckFubm90YXRpb24pOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lbGluZSk7CisgIH0pOworCisgIHRlc3QoJ2NvbW1lbnRCb3hBbm5vdGF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGZha2VZQ29tcG9uZW50cyA9IFt7c3RhYmxlSWQ6ICcxLjInLCB5UGVyY2VudE9mZnNldDogMC41fV07CisgICAgdmFyIGxvY2F0aW9uID0gbmV3IHRyLm1vZGVsLkxvY2F0aW9uKDEyMCwgZmFrZVlDb21wb25lbnRzKTsKKyAgICB2YXIgdGV4dCA9ICdhYmMnOworICAgIHZhciBjb21tZW50Qm94QW5ub3RhdGlvbiA9CisgICAgICAgIG5ldyB0ci5tb2RlbC5Db21tZW50Qm94QW5ub3RhdGlvbihsb2NhdGlvbiwgdGV4dCk7CisKKyAgICB2YXIgdGltZWxpbmUgPSBjcmVhdGVQb3B1bGF0ZWRUaW1lbGluZSgpOworICAgIHRpbWVsaW5lLm1vZGVsLmFkZEFubm90YXRpb24oY29tbWVudEJveEFubm90YXRpb24pOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lbGluZSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvY29tbWVudF9ib3hfYW5ub3RhdGlvbl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Fubm90YXRpb25zL2NvbW1lbnRfYm94X2Fubm90YXRpb25fdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5N2Y3NmQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Fubm90YXRpb25zL2NvbW1lbnRfYm94X2Fubm90YXRpb25fdmlldy5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Fubm90YXRpb25zL2Fubm90YXRpb25fdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmFubm90YXRpb25zJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIHZpZXcgb2YgYSBjb21tZW50IGJveCBjb25zaXN0aW5nIG9mIGEgdGV4dGFyZWEgYW5kIGEgbGluZSB0byB0aGUKKyAgICogYWN0dWFsIGxvY2F0aW9uLgorICAgKiBAZXh0ZW5kcyB7QW5ub3RhdGlvblZpZXd9CisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ29tbWVudEJveEFubm90YXRpb25WaWV3KHZpZXdwb3J0LCBhbm5vdGF0aW9uKSB7CisgICAgdGhpcy52aWV3cG9ydF8gPSB2aWV3cG9ydDsKKyAgICB0aGlzLmFubm90YXRpb25fID0gYW5ub3RhdGlvbjsKKyAgICB0aGlzLnRleHRBcmVhXyA9IHVuZGVmaW5lZDsKKworICAgIHRoaXMuc3R5bGVXaWR0aCA9IDI1MDsKKyAgICB0aGlzLnN0eWxlSGVpZ2h0ID0gNTA7CisgICAgdGhpcy5mb250U2l6ZSA9IDEwOworICAgIHRoaXMucmlnaHRPZmZzZXQgPSA1MDsKKyAgICB0aGlzLnRvcE9mZnNldCA9IDI1OworICB9CisKKyAgQ29tbWVudEJveEFubm90YXRpb25WaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmFubm90YXRpb25zLkFubm90YXRpb25WaWV3LnByb3RvdHlwZSwKKworICAgIHJlbW92ZVRleHRBcmVhOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudGV4dEFyZWFfLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy50ZXh0QXJlYV8pOworICAgIH0sCisKKyAgICBkcmF3OiBmdW5jdGlvbihjdHgpIHsKKyAgICAgIHZhciBjb29yZHMgPSB0aGlzLmFubm90YXRpb25fLmxvY2F0aW9uLnRvVmlld0Nvb3JkaW5hdGVzKHRoaXMudmlld3BvcnRfKTsKKyAgICAgIGlmIChjb29yZHMudmlld1ggPCAwKSB7CisgICAgICAgIGlmICh0aGlzLnRleHRBcmVhXykKKyAgICAgICAgICB0aGlzLnRleHRBcmVhXy5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgLy8gU2V0IHVwIHRleHRhcmVhIGVsZW1lbnQuCisgICAgICBpZiAoIXRoaXMudGV4dEFyZWFfKSB7CisgICAgICAgIHRoaXMudGV4dEFyZWFfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTsKKyAgICAgICAgdGhpcy50ZXh0QXJlYV8uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOworICAgICAgICB0aGlzLnRleHRBcmVhXy5yZWFkT25seSA9IHRydWU7CisgICAgICAgIHRoaXMudGV4dEFyZWFfLnZhbHVlID0gdGhpcy5hbm5vdGF0aW9uXy50ZXh0OworICAgICAgICAvLyBTZXQgdGhlIHotaW5kZXggc28gdGhhdCB0aGlzIGlzIHNob3duIG9uIHRvcCBvZiBjYW52YXMuCisgICAgICAgIHRoaXMudGV4dEFyZWFfLnN0eWxlLnpJbmRleCA9IDE7CisgICAgICAgIGN0eC5jYW52YXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzLnRleHRBcmVhXyk7CisgICAgICB9CisKKyAgICAgIHRoaXMudGV4dEFyZWFfLnN0eWxlLndpZHRoID0gdGhpcy5zdHlsZVdpZHRoICsgJ3B4JzsKKyAgICAgIHRoaXMudGV4dEFyZWFfLnN0eWxlLmhlaWdodCA9IHRoaXMuc3R5bGVIZWlnaHQgKyAncHgnOworICAgICAgdGhpcy50ZXh0QXJlYV8uc3R5bGUuZm9udFNpemUgPSB0aGlzLmZvbnRTaXplICsgJ3B4JzsKKyAgICAgIHRoaXMudGV4dEFyZWFfLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7CisKKyAgICAgIC8vIFVwZGF0ZSBwb3NpdGlvbnMgdG8gbGF0ZXN0IGNvb3JkaW5hdGUuCisgICAgICB0aGlzLnRleHRBcmVhXy5zdHlsZS5sZWZ0ID0KKyAgICAgICAgICBjb29yZHMudmlld1ggKyBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKworICAgICAgICAgIHRoaXMucmlnaHRPZmZzZXQgKyAncHgnOworICAgICAgdGhpcy50ZXh0QXJlYV8uc3R5bGUudG9wID0KKyAgICAgICAgICBjb29yZHMudmlld1kgLSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtCisgICAgICAgICAgdGhpcy50b3BPZmZzZXQgKyAncHgnOworCisgICAgICAvLyBEcmF3IHBvaW50ZXIgbGluZSBmcm9tIG9mZnNldCB0byBhY3R1YWwgbG9jYXRpb24uCisgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDAsIDAsIDApJzsKKyAgICAgIGN0eC5saW5lV2lkdGggPSAyOworICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgdHIudWkuYi5kcmF3TGluZShjdHgsIGNvb3Jkcy52aWV3WCwKKyAgICAgICAgICBjb29yZHMudmlld1kgLSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCwKKyAgICAgICAgICBjb29yZHMudmlld1ggKyB0aGlzLnJpZ2h0T2Zmc2V0LAorICAgICAgICAgIGNvb3Jkcy52aWV3WSAtIHRoaXMudG9wT2Zmc2V0IC0KKyAgICAgICAgICAgIGN0eC5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKTsKKyAgICAgIGN0eC5zdHJva2UoKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDb21tZW50Qm94QW5ub3RhdGlvblZpZXc6IENvbW1lbnRCb3hBbm5vdGF0aW9uVmlldworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvcmVjdF9hbm5vdGF0aW9uX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMvcmVjdF9hbm5vdGF0aW9uX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWM5MGNkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbm5vdGF0aW9ucy9yZWN0X2Fubm90YXRpb25fdmlldy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Fubm90YXRpb25zL2Fubm90YXRpb25fdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmFubm90YXRpb25zJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIHZpZXcgcmVzcG9uc2libGUgZm9yIGRyYXdpbmcgYSBzaW5nbGUgaGlnaGxpZ2h0IHJlY3RhbmdsZSBib3ggb24KKyAgICogdGhlIHRpbWVsaW5lLgorICAgKiBAZXh0ZW5kcyB7QW5ub3RhdGlvblZpZXd9CisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gUmVjdEFubm90YXRpb25WaWV3KHZpZXdwb3J0LCBhbm5vdGF0aW9uKSB7CisgICAgdGhpcy52aWV3cG9ydF8gPSB2aWV3cG9ydDsKKyAgICB0aGlzLmFubm90YXRpb25fID0gYW5ub3RhdGlvbjsKKyAgfQorCisgIFJlY3RBbm5vdGF0aW9uVmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5hbm5vdGF0aW9ucy5Bbm5vdGF0aW9uVmlldy5wcm90b3R5cGUsCisKKyAgICBkcmF3OiBmdW5jdGlvbihjdHgpIHsKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworICAgICAgdmFyIHN0YXJ0Q29vcmRzID0KKyAgICAgICAgICB0aGlzLmFubm90YXRpb25fLnN0YXJ0TG9jYXRpb24udG9WaWV3Q29vcmRpbmF0ZXModGhpcy52aWV3cG9ydF8pOworICAgICAgdmFyIGVuZENvb3JkcyA9CisgICAgICAgICAgdGhpcy5hbm5vdGF0aW9uXy5lbmRMb2NhdGlvbi50b1ZpZXdDb29yZGluYXRlcyh0aGlzLnZpZXdwb3J0Xyk7CisKKyAgICAgIC8vIFByZXZlbnQgZHJhd2luZyBpbnRvIHRoZSBydWxlciB0cmFjayBieSBjbGFtcGluZyB0aGUgaW5pdGlhbCBZCisgICAgICAvLyBwb2ludCBhbmQgdGhlIHJlY3QncyBZIHNpemUuCisgICAgICB2YXIgc3RhcnRZID0gc3RhcnRDb29yZHMudmlld1kgLSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDsKKyAgICAgIHZhciBzaXplWSA9IGVuZENvb3Jkcy52aWV3WSAtIHN0YXJ0Q29vcmRzLnZpZXdZOworICAgICAgaWYgKHN0YXJ0WSArIHNpemVZIDwgMCkgeworICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugc2l6ZVkgaXMgbmVnYXRpdmUuIElmIGZpbmFsIFkgaXMgbmVnYXRpdmUsCisgICAgICAgIC8vIG92ZXJ3cml0ZSBzdGFydFkgc28gdGhhdCB0aGUgcmVjdGFuZ2xlIGVuZHMgYXQgeT0wLgorICAgICAgICBzdGFydFkgPSBzaXplWTsKKyAgICAgIH0gZWxzZSBpZiAoc3RhcnRZIDwgMCkgeworICAgICAgICBzdGFydFkgPSAwOworICAgICAgfQorCisgICAgICBjdHguZmlsbFN0eWxlID0gdGhpcy5hbm5vdGF0aW9uXy5maWxsU3R5bGU7CisgICAgICBjdHguZmlsbFJlY3Qoc3RhcnRDb29yZHMudmlld1gsIHN0YXJ0WSwKKyAgICAgICAgICBlbmRDb29yZHMudmlld1ggLSBzdGFydENvb3Jkcy52aWV3WCwgc2l6ZVkpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFJlY3RBbm5vdGF0aW9uVmlldzogUmVjdEFubm90YXRpb25WaWV3CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9hbm5vdGF0aW9ucy94X21hcmtlcl9hbm5vdGF0aW9uX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMveF9tYXJrZXJfYW5ub3RhdGlvbl92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk0ZGU4NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYW5ub3RhdGlvbnMveF9tYXJrZXJfYW5ub3RhdGlvbl92aWV3Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbl92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuYW5ub3RhdGlvbnMnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEEgdmlldyB0aGF0IGRyYXdzIGEgdmVydGljYWwgbGluZSBvbiB0aGUgdGltZWxpbmUgYXQgYSBzcGVjaWZpYyB0aW1lc3RhbXAuCisgICAqIEBleHRlbmRzIHtBbm5vdGF0aW9uVmlld30KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBYTWFya2VyQW5ub3RhdGlvblZpZXcodmlld3BvcnQsIGFubm90YXRpb24pIHsKKyAgICB0aGlzLnZpZXdwb3J0XyA9IHZpZXdwb3J0OworICAgIHRoaXMuYW5ub3RhdGlvbl8gPSBhbm5vdGF0aW9uOworICB9CisKKyAgWE1hcmtlckFubm90YXRpb25WaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmFubm90YXRpb25zLkFubm90YXRpb25WaWV3LnByb3RvdHlwZSwKKworICAgIGRyYXc6IGZ1bmN0aW9uKGN0eCkgeworICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisgICAgICB2YXIgdmlld1ggPSBkdC54V29ybGRUb1ZpZXcodGhpcy5hbm5vdGF0aW9uXy50aW1lc3RhbXApOworCisgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICB0ci51aS5iLmRyYXdMaW5lKGN0eCwgdmlld1gsIDAsIHZpZXdYLCBjdHguY2FudmFzLmhlaWdodCk7CisgICAgICBjdHguc3Ryb2tlU3R5bGUgPSB0aGlzLmFubm90YXRpb25fLnN0cm9rZVN0eWxlOworICAgICAgY3R4LnN0cm9rZSgpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFhNYXJrZXJBbm5vdGF0aW9uVmlldzogWE1hcmtlckFubm90YXRpb25WaWV3CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2FuaW1hdGlvbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2FuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxZmE2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvYW5pbWF0aW9uLmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBSZXByZXNlbnRzIGEgcHJvY2VkdXJhbCBhbmltYXRpb24gdGhhdCBjYW4gYmUgcnVuIGJ5IGFuCisgICAqIHRyLnVpLmIuQW5pbWF0aW9uQ29udHJvbGxlci4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBBbmltYXRpb24oKSB7CisgIH0KKworICBBbmltYXRpb24ucHJvdG90eXBlID0geworCisgICAgLyoqCisgICAgICogQ2FsbGVkIHdoZW4gYW4gYW5pbWF0aW9uIGhhcyBiZWVuIHF1ZXVlZCBhZnRlciBhIHJ1bm5pbmcgYW5pbWF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgYW5pbWF0aW9uIGNhbiB0YWtlIG9uIHRoZSByZXNwb25zaWJpbGl0aWVzCisgICAgICogb2YgdGhlIHJ1bm5pbmcgYW5pbWF0aW9uLiBJZiB0cnVlLCB0YWtlT3ZlckZvciB3aWxsIGJlIGNhbGxlZCBvbiB0aGUKKyAgICAgKiBhbmltYXRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIGFuaW1hdGlvbnMgdGhhdCBhY2NlbGVyYXRlIGFzIHBhaXJzIG9mIHRoZW0gYXJlCisgICAgICogcXVldWVkLgorICAgICAqLworICAgIGNhblRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbikgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIHRha2Ugb3ZlciByZXNwb25zaWJsaXRpZXMgb2YgYW4gZXhpc3RpbmdBbmltYXRpb24uCisgICAgICoKKyAgICAgKiBBdCB0aGlzIHBvaW50LCB0aGUgZXhpc3RpbmdBbmltYXRpb24gaGFzIGJlZW4gdGlja2VkIG9uZSBsYXN0IHRpbWUsIHRoZW4KKyAgICAgKiBzdG9wcGVkLiBUaGlzIGFuaW1hdGlvbiB3aWxsIGJlIHN0YXJ0ZWQgYWZ0ZXIgdGhpcyByZXR1cm5zIGFuZCBoYXMgdGhlCisgICAgICogam9iIG9mIGZpbmlzaGluZyhvciB0cmFuc2l0aW9uaW5nIGF3YXkgZnJvbSkgdGhlIGVmZmVjdCB0aGUgZXhpc3RpbmcKKyAgICAgKiBhbmltYXRpb24gd2FzIHRyeWluZyB0byBhY2NvbXBsaXNoLgorICAgICAqLworICAgIHRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbiwgbmV3U3RhcnRUaW1lc3RhbXAsIHRhcmdldCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgc3RhcnQ6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBhbiBhbmltYXRpb24gaXMgc3RvcHBlZCBiZWZvcmUgaXQgZmluaXNoZXMuIFRoZSBhbmltYXRpb24gY2FuCisgICAgICogZG8gd2hhdCBpdCB3YW50cyBoZXJlLCB1c3VhbGx5IG5vdGhpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0ge051bWJlcn0gdGltZXN0YW1wIFdoZW4gdGhlIGFuaW1hdGlvbiB3YXMgc3RvcHBlZC4KKyAgICAgKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0IFRoZSBvYmplY3QgYmVpbmcgYW5pbWF0ZWQuIE1heSBiZSB1bmRlZmluZWQsIHRha2UKKyAgICAgKiBjYXJlLgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gd2lsbEJlVGFrZW5PdmVyQnlBbm90aGVyQW5pbWF0aW9uIFdoZXRoZXIgdGhpcyBhbmltYXRpb24KKyAgICAgKiBpcyBnb2luZyB0byBiZSBoYW5kZWQgdG8gYW5vdGhlciBhbmltYXRpb24ncyB0YWtlT3ZlckZvciBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICBkaWRTdG9wRWFybHk6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbEJlVGFrZW5PdmVyQnlBbm90aGVyQW5pbWF0aW9uKSB7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgdGhlIGFuaW1hdGlvbiBpcyBmaW5pc2hlZC4KKyAgICAgKi8KKyAgICB0aWNrOiBmdW5jdGlvbih0aW1lc3RhbXAsIHRhcmdldCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBBbmltYXRpb246IEFuaW1hdGlvbgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9hbmltYXRpb25fY29udHJvbGxlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2FuaW1hdGlvbl9jb250cm9sbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU1ZjdlYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9hbmltYXRpb25fY29udHJvbGxlci5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudF90YXJnZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFmLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2FuaW1hdGlvbi5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBNYW5hZ2VzIGV4ZWN1dGlvbiwgcXVldWVpbmcgYW5kIGJsZW5kaW5nIG9mIHRyLnVpLmIuQW5pbWF0aW9ucyBhZ2FpbnN0CisgICAqIGEgc2luZ2xlIHRhcmdldC4KKyAgICoKKyAgICogVGFyZ2V0cyBtdXN0IGhhdmUgYSBjbG9uZUFuaW1hdGlvblN0YXRlKCkgbWV0aG9kIHRoYXQgcmV0dXJucyBhbGwgdGhlCisgICAqIGFuaW1hdGFibGUgc3RhdGVzIG9mIHRoYXQgdGFyZ2V0LgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge3RyLmIuRXZlbnRUYXJnZXR9CisgICAqLworICBmdW5jdGlvbiBBbmltYXRpb25Db250cm9sbGVyKCkgeworICAgIHRyLmIuRXZlbnRUYXJnZXQuY2FsbCh0aGlzKTsKKworICAgIHRoaXMudGFyZ2V0XyA9IHVuZGVmaW5lZDsKKworICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXyA9IHVuZGVmaW5lZDsKKworICAgIHRoaXMudGlja1NjaGVkdWxlZF8gPSBmYWxzZTsKKyAgfQorCisgIEFuaW1hdGlvbkNvbnRyb2xsZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIuYi5FdmVudFRhcmdldC5wcm90b3R5cGUsCisKKyAgICBnZXQgdGFyZ2V0KCkgeworICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0XzsKKyAgICB9LAorCisgICAgc2V0IHRhcmdldCh0YXJnZXQpIHsKKyAgICAgIGlmICh0aGlzLmFjdGl2ZUFuaW1hdGlvbl8pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNoYW5nZSB0YXJnZXQgd2hpbGUgYW5pbWF0aW9uIGlzIHJ1bm5pbmcuJyk7CisgICAgICBpZiAodGFyZ2V0LmNsb25lQW5pbWF0aW9uU3RhdGUgPT09IHVuZGVmaW5lZCB8fAorICAgICAgICAgIHR5cGVvZiB0YXJnZXQuY2xvbmVBbmltYXRpb25TdGF0ZSAhPT0gJ2Z1bmN0aW9uJykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0YXJnZXQgbXVzdCBoYXZlIGEgY2xvbmVBbmltYXRpb25TdGF0ZSBmdW5jdGlvbicpOworCisgICAgICB0aGlzLnRhcmdldF8gPSB0YXJnZXQ7CisgICAgfSwKKworICAgIGdldCBhY3RpdmVBbmltYXRpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5hY3RpdmVBbmltYXRpb25fOworICAgIH0sCisKKyAgICBnZXQgaGFzQWN0aXZlQW5pbWF0aW9uKCkgeworICAgICAgcmV0dXJuICEhdGhpcy5hY3RpdmVBbmltYXRpb25fOworICAgIH0sCisKKyAgICBxdWV1ZUFuaW1hdGlvbjogZnVuY3Rpb24oYW5pbWF0aW9uLCBvcHRfbm93KSB7CisgICAgICBpZiAodGhpcy50YXJnZXRfID09PSB1bmRlZmluZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHF1ZXVlIGFuaW1hdGlvbnMgd2l0aG91dCBhIHRhcmdldCcpOworCisgICAgICB2YXIgbm93OworICAgICAgaWYgKG9wdF9ub3cgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgbm93ID0gb3B0X25vdzsKKyAgICAgIGVsc2UKKyAgICAgICAgbm93ID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpOworCisgICAgICBpZiAodGhpcy5hY3RpdmVBbmltYXRpb25fKSB7CisgICAgICAgIC8vIE11c3QgdGljayB0aGUgYW5pbWF0aW9uIGJlZm9yZSBzdG9wcGluZyBpdCBjYXNlIGl0cyBhYm91dCB0byBzdG9wLAorICAgICAgICAvLyBhbmQgdG8gdXBkYXRlIHRoZSB0YXJnZXQgd2l0aCBpdHMgZmluYWwgc2V0cyBvZiBlZGl0cyB1cCB0byB0aGlzCisgICAgICAgIC8vIHBvaW50LgorICAgICAgICB2YXIgZG9uZSA9IHRoaXMuYWN0aXZlQW5pbWF0aW9uXy50aWNrKG5vdywgdGhpcy50YXJnZXRfKTsKKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgdGhpcy5hY3RpdmVBbmltYXRpb25fID0gdW5kZWZpbmVkOworICAgICAgfQorCisgICAgICBpZiAodGhpcy5hY3RpdmVBbmltYXRpb25fKSB7CisgICAgICAgIGlmIChhbmltYXRpb24uY2FuVGFrZU92ZXJGb3IodGhpcy5hY3RpdmVBbmltYXRpb25fKSkgeworICAgICAgICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXy5kaWRTdG9wRWFybHkobm93LCB0aGlzLnRhcmdldF8sIHRydWUpOworICAgICAgICAgIGFuaW1hdGlvbi50YWtlT3ZlckZvcih0aGlzLmFjdGl2ZUFuaW1hdGlvbl8sIG5vdywgdGhpcy50YXJnZXRfKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uZGlkU3RvcEVhcmx5KG5vdywgdGhpcy50YXJnZXRfLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXyA9IGFuaW1hdGlvbjsKKyAgICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXy5zdGFydChub3csIHRoaXMudGFyZ2V0Xyk7CisKKyAgICAgIGlmICh0aGlzLnRpY2tTY2hlZHVsZWRfKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLnRpY2tTY2hlZHVsZWRfID0gdHJ1ZTsKKyAgICAgIHRyLmIucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudGlja0FjdGl2ZUFuaW1hdGlvbl8sIHRoaXMpOworICAgIH0sCisKKyAgICBjYW5jZWxBY3RpdmVBbmltYXRpb246IGZ1bmN0aW9uKG9wdF9ub3cpIHsKKyAgICAgIGlmICghdGhpcy5hY3RpdmVBbmltYXRpb25fKQorICAgICAgICByZXR1cm47CisgICAgICB2YXIgbm93OworICAgICAgaWYgKG9wdF9ub3cgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgbm93ID0gb3B0X25vdzsKKyAgICAgIGVsc2UKKyAgICAgICAgbm93ID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpOworICAgICAgdGhpcy5hY3RpdmVBbmltYXRpb25fLmRpZFN0b3BFYXJseShub3csIHRoaXMudGFyZ2V0XywgZmFsc2UpOworICAgICAgdGhpcy5hY3RpdmVBbmltYXRpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICB0aWNrQWN0aXZlQW5pbWF0aW9uXzogZnVuY3Rpb24oZnJhbWVCZWdpblRpbWUpIHsKKyAgICAgIHRoaXMudGlja1NjaGVkdWxlZF8gPSBmYWxzZTsKKyAgICAgIGlmICghdGhpcy5hY3RpdmVBbmltYXRpb25fKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGlmICh0aGlzLnRhcmdldF8gPT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLmFjdGl2ZUFuaW1hdGlvbl8uZGlkU3RvcEVhcmx5KGZyYW1lQmVnaW5UaW1lLCB0aGlzLnRhcmdldF8sIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIgb2xkVGFyZ2V0U3RhdGUgPSB0aGlzLnRhcmdldF8uY2xvbmVBbmltYXRpb25TdGF0ZSgpOworCisgICAgICB2YXIgZG9uZSA9IHRoaXMuYWN0aXZlQW5pbWF0aW9uXy50aWNrKGZyYW1lQmVnaW5UaW1lLCB0aGlzLnRhcmdldF8pOworICAgICAgaWYgKGRvbmUpCisgICAgICAgIHRoaXMuYWN0aXZlQW5pbWF0aW9uXyA9IHVuZGVmaW5lZDsKKworICAgICAgaWYgKHRoaXMuYWN0aXZlQW5pbWF0aW9uXykgeworICAgICAgICB0aGlzLnRpY2tTY2hlZHVsZWRfID0gdHJ1ZTsKKyAgICAgICAgdHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy50aWNrQWN0aXZlQW5pbWF0aW9uXywgdGhpcyk7CisgICAgICB9CisKKyAgICAgIGlmIChvbGRUYXJnZXRTdGF0ZSkgeworICAgICAgICB2YXIgZSA9IG5ldyB0ci5iLkV2ZW50KCdkaWR0aWNrJyk7CisgICAgICAgIGUub2xkVGFyZ2V0U3RhdGUgPSBvbGRUYXJnZXRTdGF0ZTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUsIGZhbHNlLCBmYWxzZSk7CisgICAgICB9CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgQW5pbWF0aW9uQ29udHJvbGxlcjogQW5pbWF0aW9uQ29udHJvbGxlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9hbmltYXRpb25fY29udHJvbGxlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvYW5pbWF0aW9uX2NvbnRyb2xsZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMzJlYzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvYW5pbWF0aW9uX2NvbnRyb2xsZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9hbmltYXRpb25fY29udHJvbGxlci5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBTaW1wbGVBbmltYXRpb24ob3B0aW9ucykgeworICAgIHRoaXMuc3RvcFRpbWUgPSBvcHRpb25zLnN0b3BUaW1lOworCisgICAgdGhpcy5zdGFydENhbGxlZCA9IGZhbHNlOworICAgIHRoaXMuZGlkU3RvcEVhcmx5Q2FsbGVkID0gZmFsc2U7CisgICAgdGhpcy53YXNUYWtlbk92ZXIgPSBmYWxzZTsKKyAgICB0aGlzLnRpY2tDb3VudCA9IDA7CisgIH0KKworICBTaW1wbGVBbmltYXRpb24ucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkuYi5BbmltYXRpb24ucHJvdG90eXBlLAorCisgICAgY2FuVGFrZU92ZXJGb3I6IGZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIHRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbiwgbmV3U3RhcnRUaW1lc3RhbXAsIHRhcmdldCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgc3RhcnQ6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7CisgICAgICB0aGlzLnN0YXJ0Q2FsbGVkID0gdHJ1ZTsKKyAgICB9LAorCisgICAgZGlkU3RvcEVhcmx5OiBmdW5jdGlvbih0aW1lc3RhbXAsIHRhcmdldCwgd2lsbEJlVGFrZW5PdmVyKSB7CisgICAgICB0aGlzLmRpZFN0b3BFYXJseUNhbGxlZCA9IHRydWU7CisgICAgICB0aGlzLndhc1Rha2VuT3ZlciA9IHdpbGxCZVRha2VuT3ZlcjsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgYW5pbWF0aW9uIGlzIGZpbmlzaGVkLgorICAgICAqLworICAgIHRpY2s6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7CisgICAgICB0aGlzLnRpY2tDb3VudCsrOworICAgICAgcmV0dXJuIHRpbWVzdGFtcCA+PSB0aGlzLnN0b3BUaW1lOworICAgIH0KKyAgfTsKKworICB0ZXN0KCdjYW5jZWwnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0geworICAgICAgeDogMCwKKyAgICAgIGNsb25lQW5pbWF0aW9uU3RhdGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4ge3g6IHRoaXMueH07IH0KKyAgICB9OworCisgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIudWkuYi5BbmltYXRpb25Db250cm9sbGVyKCk7CisgICAgY29udHJvbGxlci50YXJnZXQgPSB0YXJnZXQ7CisKKyAgICB2YXIgYW5pbWF0aW9uID0gbmV3IFNpbXBsZUFuaW1hdGlvbih7c3RvcFRpbWU6IDEwMH0pOworICAgIGNvbnRyb2xsZXIucXVldWVBbmltYXRpb24oYW5pbWF0aW9uKTsKKworICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigwKTsKKyAgICBhc3NlcnQuZXF1YWwoYW5pbWF0aW9uLnRpY2tDb3VudCwgMSk7CisgICAgY29udHJvbGxlci5jYW5jZWxBY3RpdmVBbmltYXRpb24oKTsKKyAgICBhc3NlcnQuaXNGYWxzZShjb250cm9sbGVyLmhhc0FjdGl2ZUFuaW1hdGlvbik7CisgICAgYXNzZXJ0LmlzVHJ1ZShhbmltYXRpb24uZGlkU3RvcEVhcmx5Q2FsbGVkKTsKKyAgfSk7CisKKyAgdGVzdCgnc2ltcGxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9IHsKKyAgICAgIHg6IDAsCisgICAgICBjbG9uZUFuaW1hdGlvblN0YXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt4OiB0aGlzLnh9OyB9CisgICAgfTsKKworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLnVpLmIuQW5pbWF0aW9uQ29udHJvbGxlcigpOworICAgIGNvbnRyb2xsZXIudGFyZ2V0ID0gdGFyZ2V0OworCisgICAgdmFyIGFuaW1hdGlvbiA9IG5ldyBTaW1wbGVBbmltYXRpb24oe3N0b3BUaW1lOiAxMDB9KTsKKyAgICBjb250cm9sbGVyLnF1ZXVlQW5pbWF0aW9uKGFuaW1hdGlvbik7CisKKyAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oMCk7CisgICAgYXNzZXJ0LmVxdWFsKGFuaW1hdGlvbi50aWNrQ291bnQsIDEpOworICAgIGFzc2VydC5pc1RydWUoY29udHJvbGxlci5oYXNBY3RpdmVBbmltYXRpb24pOworCisgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDEwMCk7CisgICAgYXNzZXJ0LmVxdWFsKGFuaW1hdGlvbi50aWNrQ291bnQsIDIpOworICAgIGFzc2VydC5pc0ZhbHNlKGNvbnRyb2xsZXIuaGFzQWN0aXZlQW5pbWF0aW9uKTsKKyAgfSk7CisKKyAgdGVzdCgncXVldWVUd28nLCBmdW5jdGlvbigpIHsKKyAgICAvLyBDbGVhciBhbGwgcGVuZGluZyByYWZzIHNvIGlmIHNvbWV0aGluZyBpcyBsaW5nZXJpbmcgaXQgd2lsbCBibG93IHVwIGhlcmUuCisgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDApOworCisgICAgdmFyIHRhcmdldCA9IHsKKyAgICAgIHg6IDAsCisgICAgICBjbG9uZUFuaW1hdGlvblN0YXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt4OiB0aGlzLnh9OyB9CisgICAgfTsKKworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLnVpLmIuQW5pbWF0aW9uQ29udHJvbGxlcigpOworICAgIGNvbnRyb2xsZXIudGFyZ2V0ID0gdGFyZ2V0OworCisgICAgdmFyIGExID0gbmV3IFNpbXBsZUFuaW1hdGlvbih7c3RvcFRpbWU6IDEwMH0pOworICAgIHZhciBhMiA9IG5ldyBTaW1wbGVBbmltYXRpb24oe3N0b3BUaW1lOiAxMDB9KTsKKyAgICBjb250cm9sbGVyLnF1ZXVlQW5pbWF0aW9uKGExLCAwKTsKKyAgICBhc3NlcnQuaXNUcnVlKGExLnN0YXJ0Q2FsbGVkKTsKKyAgICBjb250cm9sbGVyLnF1ZXVlQW5pbWF0aW9uKGEyLCA1MCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShhMS5kaWRTdG9wRWFybHlDYWxsZWQpOworICAgIGFzc2VydC5pc1RydWUoYTIuc3RhcnRDYWxsZWQpOworCisgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDE1MCk7CisgICAgYXNzZXJ0LmlzRmFsc2UoY29udHJvbGxlci5oYXNBY3RpdmVBbmltYXRpb24pOworICAgIGFzc2VydC5pc0Fib3ZlKGEyLnRpY2tDb3VudCwgMCk7CisgIH0pOworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEFuaW1hdGlvblRoYXRDYW5UYWtlT3ZlckZvclNpbXBsZUFuaW1hdGlvbigpIHsKKyAgICB0aGlzLnRha2VPdmVyRm9yQW5pbWF0aW9uID0gdW5kZWZpbmVkOworICB9CisKKyAgQW5pbWF0aW9uVGhhdENhblRha2VPdmVyRm9yU2ltcGxlQW5pbWF0aW9uLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmIuQW5pbWF0aW9uLnByb3RvdHlwZSwKKworCisgICAgY2FuVGFrZU92ZXJGb3I6IGZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uKSB7CisgICAgICByZXR1cm4gZXhpc3RpbmdBbmltYXRpb24gaW5zdGFuY2VvZiBTaW1wbGVBbmltYXRpb247CisgICAgfSwKKworICAgIHRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbiwgbmV3U3RhcnRUaW1lc3RhbXAsIHRhcmdldCkgeworICAgICAgdGhpcy50YWtlT3ZlckZvckFuaW1hdGlvbiA9IGV4aXN0aW5nQW5pbWF0aW9uOworICAgIH0sCisKKyAgICBzdGFydDogZnVuY3Rpb24odGltZXN0YW1wLCB0YXJnZXQpIHsKKyAgICAgIHRoaXMuc3RhcnRDYWxsZWQgPSB0cnVlOworICAgIH0KKyAgfTsKKworICB0ZXN0KCd0YWtlT3ZlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YXJnZXQgPSB7CisgICAgICB4OiAwLAorICAgICAgY2xvbmVBbmltYXRpb25TdGF0ZTogZnVuY3Rpb24oKSB7IHJldHVybiB7eDogdGhpcy54fTsgfQorICAgIH07CisKKyAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci51aS5iLkFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKKyAgICBjb250cm9sbGVyLnRhcmdldCA9IHRhcmdldDsKKworICAgIHZhciBhMSA9IG5ldyBTaW1wbGVBbmltYXRpb24oe3N0b3BUaW1lOiAxMDB9KTsKKyAgICB2YXIgYTIgPSBuZXcgQW5pbWF0aW9uVGhhdENhblRha2VPdmVyRm9yU2ltcGxlQW5pbWF0aW9uKCk7CisgICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihhMSwgMCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShhMS5zdGFydENhbGxlZCk7CisgICAgYXNzZXJ0LmVxdWFsKGExLnRpY2tDb3VudCwgMCk7CisgICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihhMiwgMTApOworICAgIGFzc2VydC5pc1RydWUoYTEuZGlkU3RvcEVhcmx5Q2FsbGVkKTsKKyAgICBhc3NlcnQuaXNUcnVlKGExLndhc1Rha2VuT3Zlcik7CisgICAgYXNzZXJ0LmVxdWFsKGExLnRpY2tDb3VudCwgMSk7CisKKyAgICBhc3NlcnQuZXF1YWwoYTEsIGEyLnRha2VPdmVyRm9yQW5pbWF0aW9uKTsKKyAgICBhc3NlcnQuaXNUcnVlKGEyLnN0YXJ0Q2FsbGVkKTsKKworICAgIGNvbnRyb2xsZXIuY2FuY2VsQWN0aXZlQW5pbWF0aW9uKCk7CisgICAgYXNzZXJ0LmlzRmFsc2UoY29udHJvbGxlci5oYXNBY3RpdmVBbmltYXRpb24pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvYnJ1c2hpbmdfc3RhdGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9icnVzaGluZ19zdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMzA0M2IKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvYnJ1c2hpbmdfc3RhdGUuaHRtbApAQCAtMCwwICsxLDIwMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ndWlkLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOworCisgIGZ1bmN0aW9uIEJydXNoaW5nU3RhdGUoKSB7CisgICAgdGhpcy5ndWlkXyA9IHRyLmIuR1VJRC5hbGxvY2F0ZSgpOworICAgIHRoaXMuc2VsZWN0aW9uXyA9IG5ldyBFdmVudFNldCgpOworICAgIHRoaXMuZmluZE1hdGNoZXNfID0gbmV3IEV2ZW50U2V0KCk7CisgICAgdGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXyA9IG5ldyBFdmVudFNldCgpOworICAgIHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0aGlzLmFwcGxpZWRUb01vZGVsXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLnZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGVzXyA9IHt9OworICB9CisgIEJydXNoaW5nU3RhdGUucHJvdG90eXBlID0geworICAgIGdldCBndWlkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87CisgICAgfSwKKworICAgIGNsb25lOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciB0aGF0ID0gbmV3IEJydXNoaW5nU3RhdGUoKTsKKyAgICAgIHRoYXQuc2VsZWN0aW9uXyA9IHRoaXMuc2VsZWN0aW9uXzsKKyAgICAgIHRoYXQuZmluZE1hdGNoZXNfID0gdGhpcy5maW5kTWF0Y2hlc187CisgICAgICB0aGF0LmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfID0gdGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXzsKKyAgICAgIHRoYXQuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18gPSB0aGlzLmFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHNfOworICAgICAgdGhhdC52aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlc18gPSB0aGlzLnZpZXdTcGVjaWZpY0JydXNoaW5nU3RhdGVzXzsKKworICAgICAgcmV0dXJuIHRoYXQ7CisgICAgfSwKKworICAgIGVxdWFsczogZnVuY3Rpb24odGhhdCkgeworICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbl8uZXF1YWxzKHRoYXQuc2VsZWN0aW9uXykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICghdGhpcy5maW5kTWF0Y2hlc18uZXF1YWxzKHRoYXQuZmluZE1hdGNoZXNfKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgaWYgKCF0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfLmVxdWFscygKKyAgICAgICAgICB0aGF0LmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBpZiAoIXRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18uZXF1YWxzKAorICAgICAgICAgIHRoYXQuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18pKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIC8vIFdlIGN1cnJlbnRseSBkbyBub3QgdGFrZSB0aGUgdmlldy1zcGVjaWZpYyBicnVzaGluZyBzdGF0ZXMgaW50bworICAgICAgLy8gYWNjb3VudC4gSWYgd2UgZGlkLCBldmVyeSBjaGFuZ2Ugb2YgdGhlIHZpZXctc3BlY2lmaWMgYnJ1c2hpbmcgc3RhdGUKKyAgICAgIC8vIG9mIGFueSB2aWV3IHdvdWxkIGNhdXNlIGEgcmVkcmF3IG9mIHRoZSB3aG9sZSBVSSAoc2VlIHRoZQorICAgICAgLy8gQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuY3VycmVudEJydXNoaW5nU3RhdGUgc2V0dGVyKS4KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uT2ZJbnRlcmVzdCgpIHsKKyAgICAgIGlmICh0aGlzLnNlbGVjdGlvbl8ubGVuZ3RoKQorICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25fOworCisgICAgICBpZiAodGhpcy5oaWdobGlnaHRfLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0XzsKKworICAgICAgaWYgKHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18ubGVuZ3RoKQorICAgICAgICByZXR1cm4gdGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXzsKKworICAgICAgaWYgKHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18ubGVuZ3RoKQorICAgICAgICByZXR1cm4gdGhpcy5hbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzXzsKKworICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXzsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAodGhpcy5hcHBsaWVkVG9Nb2RlbF8pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IG11dGF0ZSB0aGlzIHN0YXRlIHJpZ2h0IG5vdycpOworICAgICAgaWYgKHNlbGVjdGlvbiA9PT0gdW5kZWZpbmVkKQorICAgICAgICBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgZ2V0IGZpbmRNYXRjaGVzKCkgeworICAgICAgcmV0dXJuIHRoaXMuZmluZE1hdGNoZXNfOworICAgIH0sCisKKyAgICBzZXQgZmluZE1hdGNoZXMoZmluZE1hdGNoZXMpIHsKKyAgICAgIGlmICh0aGlzLmFwcGxpZWRUb01vZGVsXykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbXV0YXRlIHRoaXMgc3RhdGUgcmlnaHQgbm93Jyk7CisgICAgICBpZiAoZmluZE1hdGNoZXMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgZmluZE1hdGNoZXMgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICAgIHRoaXMuZmluZE1hdGNoZXNfID0gZmluZE1hdGNoZXM7CisgICAgfSwKKworICAgIGdldCBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKCkgeworICAgICAgcmV0dXJuIHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c187CisgICAgfSwKKworICAgIHNldCBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzKGFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHMpIHsKKyAgICAgIGlmICh0aGlzLmFwcGxpZWRUb01vZGVsXykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbXV0YXRlIHRoaXMgc3RhdGUgcmlnaHQgbm93Jyk7CisgICAgICBpZiAoYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50cyA9PT0gdW5kZWZpbmVkKQorICAgICAgICBhbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzID0gbmV3IEV2ZW50U2V0KCk7CisgICAgICB0aGlzLmFuYWx5c2lzVmlld1JlbGF0ZWRFdmVudHNfID0gYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50czsKKyAgICB9LAorCisgICAgZ2V0IGFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5hbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzXzsKKyAgICB9LAorCisgICAgc2V0IGFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHMoYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50cykgeworICAgICAgaWYgKHRoaXMuYXBwbGllZFRvTW9kZWxfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBtdXRhdGUgdGhpcyBzdGF0ZSByaWdodCBub3cnKTsKKyAgICAgIGlmIChhbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzID09PSB1bmRlZmluZWQpCisgICAgICAgIGFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHMgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICAgIHRoaXMuYW5hbHlzaXNMaW5rSG92ZXJlZEV2ZW50c18gPSBhbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzOworICAgIH0sCisKKyAgICBnZXQgaXNBcHBsaWVkVG9Nb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmFwcGxpZWRUb01vZGVsXyAhPT0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgaGFzSGlnaGxpZ2h0XygpIHsKKyAgICAgIHJldHVybiB0aGlzLmZpbmRNYXRjaGVzXy5sZW5ndGggPiAwIHx8CisgICAgICAgICAgdGhpcy5hbmFseXNpc1ZpZXdSZWxhdGVkRXZlbnRzXy5sZW5ndGggPiAwIHx8CisgICAgICAgICAgdGhpcy5hbmFseXNpc0xpbmtIb3ZlcmVkRXZlbnRzXy5sZW5ndGggPiAwOworICAgIH0sCisKKyAgICBnZXQgdmlld1NwZWNpZmljQnJ1c2hpbmdTdGF0ZXMoKSB7CisgICAgICByZXR1cm4gdGhpcy52aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlc187CisgICAgfSwKKworICAgIHNldCB2aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlcyh2aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlcykgeworICAgICAgdGhpcy52aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlc18gPSB2aWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlczsKKyAgICB9LAorCisgICAgYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGU6IGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICB0aGlzLmFwcGxpZWRUb01vZGVsXyA9IG1vZGVsOworCisgICAgICBpZiAoIXRoaXMuaGFzSGlnaGxpZ2h0XykgeworICAgICAgICB0aGlzLnNlbGVjdGlvbl8uZm9yRWFjaChmdW5jdGlvbihlKSB7CisgICAgICAgICAgZS5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBtb2RlbC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHNlbGVjdGlvblN0YXRlOworICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fLmNvbnRhaW5zKGUpKSB7CisgICAgICAgICAgc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKKyAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbmRNYXRjaGVzXy5jb250YWlucyhlKSB8fAorICAgICAgICAgICAgICAgICAgIHRoaXMuYW5hbHlzaXNWaWV3UmVsYXRlZEV2ZW50c18uY29udGFpbnMoZSkgfHwKKyAgICAgICAgICAgICAgICAgICB0aGlzLmFuYWx5c2lzTGlua0hvdmVyZWRFdmVudHNfLmNvbnRhaW5zKGUpKSB7CisgICAgICAgICAgc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBzZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkRJTU1FRDsKKyAgICAgICAgfQorICAgICAgICBlLnNlbGVjdGlvblN0YXRlID0gc2VsZWN0aW9uU3RhdGU7CisgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICB0cmFuc2Zlck1vZGVsT3duZXJzaGlwVG9DbG9uZTogZnVuY3Rpb24odGhhdCkgeworICAgICAgaWYgKCF0aGlzLmFwcGxpZWRUb01vZGVsXykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYXBwbGllZCcpOworICAgICAgLy8gQXNzdW1lcyB0aGlzLmVxdWFscyh0aGF0KS4KKyAgICAgIHRoYXQuYXBwbGllZFRvTW9kZWxfID0gdGhpcy5hcHBsaWVkVG9Nb2RlbF87CisgICAgICB0aGlzLmFwcGxpZWRUb01vZGVsXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgdW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5hcHBsaWVkVG9Nb2RlbF8pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGFwcGxpZWQnKTsKKyAgICAgIHZhciBtb2RlbCA9IHRoaXMuYXBwbGllZFRvTW9kZWxfOworICAgICAgdGhpcy5hcHBsaWVkVG9Nb2RlbF8gPSB1bmRlZmluZWQ7CisKKyAgICAgIGlmICghdGhpcy5oYXNIaWdobGlnaHRfKSB7CisgICAgICAgIHRoaXMuc2VsZWN0aW9uXy5mb3JFYWNoKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICBlLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuTk9ORTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgbW9kZWwuaXRlcmF0ZUFsbEV2ZW50cyhmdW5jdGlvbihlKSB7CisgICAgICAgIGUuc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5OT05FOworICAgICAgfSk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgQnJ1c2hpbmdTdGF0ZTogQnJ1c2hpbmdTdGF0ZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9icnVzaGluZ19zdGF0ZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvYnJ1c2hpbmdfc3RhdGVfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YzhlMGMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvYnJ1c2hpbmdfc3RhdGVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgbmV3U2xpY2VFeCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZUV4OworCisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKKworICBmdW5jdGlvbiBuZXdTaW1wbGVNb2RlbCgpIHsKKyAgICByZXR1cm4gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG0pIHsKKyAgICAgIG0ucDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIG0udDIgPSBtLnAxLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworCisgICAgICBtLnNBID0gbS50Mi5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgICBuZXdTbGljZUV4KHt0aXRsZTogJ2EnLCBzdGFydDogMCwgZW5kOiA1fSkpOworICAgICAgbS5zQiA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdiJywgc3RhcnQ6IDEwLCBlbmQ6IDE1fSkpOworICAgICAgbS5zQyA9IG0udDIuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgICAgbmV3U2xpY2VFeCh7dGl0bGU6ICdjJywgc3RhcnQ6IDIwLCBlbmQ6IDIwfSkpOworICAgIH0pOworICB9CisKKyAgdGVzdCgnYnJ1c2hpbmdTdGF0ZVNpbXBsZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3U2ltcGxlTW9kZWwoKTsKKworICAgIHZhciBicyA9IG5ldyB0ci51aS5iLkJydXNoaW5nU3RhdGUoKTsKKyAgICBicy5zZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoW20uc0FdKTsKKworICAgIGJzLmFwcGx5VG9Nb2RlbFNlbGVjdGlvblN0YXRlKG0pOworICAgIGFzc2VydC5lcXVhbChtLnNBLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCk7CisgICAgYnMudW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlKCk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc0Euc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLk5PTkUpOworICB9KTsKKworICB0ZXN0KCdicnVzaGluZ1N0YXRlV2l0aFNpbXBsZUhpZ2hsaWdodCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3U2ltcGxlTW9kZWwoKTsKKworICAgIHZhciBicyA9IG5ldyB0ci51aS5iLkJydXNoaW5nU3RhdGUoKTsKKyAgICBicy5zZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoW20uc0FdKTsKKyAgICBicy5maW5kTWF0Y2hlcyA9IG5ldyBFdmVudFNldChbbS5zQSwgbS5zQl0pOworCisgICAgYnMuYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGUobSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc0Euc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zQi5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQpOworICAgIGFzc2VydC5lcXVhbChtLnNDLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5ESU1NRUQpOworICAgIGJzLnVuYXBwbHlGcm9tTW9kZWxTZWxlY3Rpb25TdGF0ZSgpOworICAgIGFzc2VydC5lcXVhbChtLnNBLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5OT05FKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zQi5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuTk9ORSk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc0Muc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLk5PTkUpOworICB9KTsKKworICB0ZXN0KCdicnVzaGluZ1RyYW5zZmVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXdTaW1wbGVNb2RlbCgpOworCisgICAgdmFyIGJzID0gbmV3IHRyLnVpLmIuQnJ1c2hpbmdTdGF0ZSgpOworICAgIGJzLnNlbGVjdGlvbiA9IG5ldyBFdmVudFNldChbbS5zQV0pOworCisgICAgdmFyIGJzMiA9IGJzLmNsb25lKCk7CisKKyAgICBicy5hcHBseVRvTW9kZWxTZWxlY3Rpb25TdGF0ZShtKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zQS5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQpOworICAgIGJzLnRyYW5zZmVyTW9kZWxPd25lcnNoaXBUb0Nsb25lKGJzMik7CisgICAgYXNzZXJ0LmlzRmFsc2UoYnMuaXNBcHBsaWVkVG9Nb2RlbCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShiczIuaXNBcHBsaWVkVG9Nb2RlbCk7CisKKyAgICBiczIudW5hcHBseUZyb21Nb2RlbFNlbGVjdGlvblN0YXRlKCk7CisgICAgYXNzZXJ0LmVxdWFsKG0uc0Euc2VsZWN0aW9uU3RhdGUsIFNlbGVjdGlvblN0YXRlLk5PTkUpOworICAgIGFzc2VydC5lcXVhbChtLnNCLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5OT05FKTsKKyAgICBhc3NlcnQuZXF1YWwobS5zQy5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuTk9ORSk7CisgIH0pOworCisgIHRlc3QoJ2VxdWFsaXR5JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXdTaW1wbGVNb2RlbCgpOworCisgICAgdmFyIGJzID0gbmV3IHRyLnVpLmIuQnJ1c2hpbmdTdGF0ZSgpOworICAgIGJzLnNlbGVjdGlvbiA9IG5ldyBFdmVudFNldChbbS5zQV0pOworICAgIGJzLmZpbmRNYXRjaGVzID0gbmV3IEV2ZW50U2V0KFttLnNCXSk7CisgICAgYnMuYXBwbHlUb01vZGVsU2VsZWN0aW9uU3RhdGUgPSBuZXcgRXZlbnRTZXQoW20uc0NdKTsKKworICAgIC8vIENsb25lIGVxdWFsaXR5LCBidXQgd2l0aCBzaGFyZWQgcmVmcy4KKyAgICB2YXIgYnMyID0gYnMuY2xvbmUoKTsKKyAgICBhc3NlcnQuaXNUcnVlKGJzLmVxdWFscyhiczIpKTsKKworICAgIC8vIFNhbWUgdmFsdWUsIGRpZmZlcmVudCByZWZzLgorICAgIGJzMi5zZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoW20uc0FdKTsKKyAgICBhc3NlcnQuaXNUcnVlKGJzLmVxdWFscyhiczIpKTsKKworICAgIC8vIERpZmZlcmVudCBhY3R1YWwgdmFsdWVzLgorICAgIGJzMi5zZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoW20uc0JdKTsKKyAgICBhc3NlcnQuaXNGYWxzZShicy5lcXVhbHMoYnMyKSk7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NhbWVyYS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NhbWVyYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwNWQwOWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY2FtZXJhLmh0bWwKQEAgLTAsMCArMSwzNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIGNvbnN0YW50cyA9IHsKKyAgICBERUZBVUxUX1NDQUxFOiAwLjUsCisgICAgREVGQVVMVF9FWUVfRElTVEFOQ0U6IDEwMDAwLAorICAgIE1JTklNVU1fRElTVEFOQ0U6IDEwMDAsCisgICAgTUFYSU1VTV9ESVNUQU5DRTogMTAwMDAwLAorICAgIEZPVjogMTUsCisgICAgUkVTQ0FMRV9USU1FT1VUX01TOiAyMDAsCisgICAgTUFYSU1VTV9USUxUOiA4MCwKKyAgICBTRVRUSU5HU19OQU1FU1BBQ0U6ICd0ci51aV9jYW1lcmEnCisgIH07CisKKworICB2YXIgQ2FtZXJhID0gdHIudWkuYi5kZWZpbmUoJ2NhbWVyYScpOworCisgIENhbWVyYS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKGV2ZW50U291cmNlKSB7CisgICAgICB0aGlzLmV2ZW50U291cmNlXyA9IGV2ZW50U291cmNlOworCisgICAgICB0aGlzLmV2ZW50U291cmNlXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnBhbicsCisgICAgICAgICAgdGhpcy5vblBhbkJlZ2luXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMuZXZlbnRTb3VyY2VfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXBhbicsCisgICAgICAgICAgdGhpcy5vblBhblVwZGF0ZV8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLmV2ZW50U291cmNlXy5hZGRFdmVudExpc3RlbmVyKCdlbmRwYW4nLAorICAgICAgICAgIHRoaXMub25QYW5FbmRfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLmV2ZW50U291cmNlXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnpvb20nLAorICAgICAgICAgIHRoaXMub25ab29tQmVnaW5fLmJpbmQodGhpcykpOworICAgICAgdGhpcy5ldmVudFNvdXJjZV8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlem9vbScsCisgICAgICAgICAgdGhpcy5vblpvb21VcGRhdGVfLmJpbmQodGhpcykpOworICAgICAgdGhpcy5ldmVudFNvdXJjZV8uYWRkRXZlbnRMaXN0ZW5lcignZW5kem9vbScsCisgICAgICAgICAgdGhpcy5vblpvb21FbmRfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLmV2ZW50U291cmNlXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnJvdGF0ZScsCisgICAgICAgICAgdGhpcy5vblJvdGF0ZUJlZ2luXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMuZXZlbnRTb3VyY2VfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXJvdGF0ZScsCisgICAgICAgICAgdGhpcy5vblJvdGF0ZVVwZGF0ZV8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLmV2ZW50U291cmNlXy5hZGRFdmVudExpc3RlbmVyKCdlbmRyb3RhdGUnLAorICAgICAgICAgIHRoaXMub25Sb3RhdGVFbmRfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLmV5ZV8gPSBbMCwgMCwgY29uc3RhbnRzLkRFRkFVTFRfRVlFX0RJU1RBTkNFXTsKKyAgICAgIHRoaXMuZ2F6ZVRhcmdldF8gPSBbMCwgMCwgMF07CisgICAgICB0aGlzLnJvdGF0aW9uXyA9IFswLCAwXTsKKworICAgICAgdGhpcy5waXhlbFJhdGlvXyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgfSwKKworCisgICAgZ2V0IG1vZGVsVmlld01hdHJpeCgpIHsKKyAgICAgIHZhciBtdk1hdHJpeCA9IG1hdDQuY3JlYXRlKCk7CisKKyAgICAgIG1hdDQubG9va0F0KG12TWF0cml4LCB0aGlzLmV5ZV8sIHRoaXMuZ2F6ZVRhcmdldF8sIFswLCAxLCAwXSk7CisgICAgICByZXR1cm4gbXZNYXRyaXg7CisgICAgfSwKKworICAgIGdldCBwcm9qZWN0aW9uTWF0cml4KCkgeworICAgICAgdmFyIHJlY3QgPQorICAgICAgICAgIHRyLnVpLmIud2luZG93UmVjdEZvckVsZW1lbnQodGhpcy5jYW52YXNfKS4KKyAgICAgICAgICAgICAgc2NhbGVTaXplKHRoaXMucGl4ZWxSYXRpb18pOworCisgICAgICB2YXIgYXNwZWN0UmF0aW8gPSByZWN0LndpZHRoIC8gcmVjdC5oZWlnaHQ7CisgICAgICB2YXIgbWF0cml4ID0gbWF0NC5jcmVhdGUoKTsKKyAgICAgIG1hdDQucGVyc3BlY3RpdmUoCisgICAgICAgICAgbWF0cml4LCB0ci5iLmRlZzJyYWQoY29uc3RhbnRzLkZPViksIGFzcGVjdFJhdGlvLCAxLCAxMDAwMDApOworCisgICAgICByZXR1cm4gbWF0cml4OworICAgIH0sCisKKyAgICBzZXQgY2FudmFzKGMpIHsKKyAgICAgIHRoaXMuY2FudmFzXyA9IGM7CisgICAgfSwKKworICAgIHNldCBkZXZpY2VSZWN0KHJlY3QpIHsKKyAgICAgIHRoaXMuZGV2aWNlUmVjdF8gPSByZWN0OworICAgIH0sCisKKyAgICBnZXQgc3RhY2tpbmdEaXN0YW5jZURhbXBlbmluZygpIHsKKyAgICAgIHZhciBnYXplVmVjdG9yID0gWworICAgICAgICB0aGlzLmdhemVUYXJnZXRfWzBdIC0gdGhpcy5leWVfWzBdLAorICAgICAgICB0aGlzLmdhemVUYXJnZXRfWzFdIC0gdGhpcy5leWVfWzFdLAorICAgICAgICB0aGlzLmdhemVUYXJnZXRfWzJdIC0gdGhpcy5leWVfWzJdXTsKKyAgICAgIHZlYzMubm9ybWFsaXplKGdhemVWZWN0b3IsIGdhemVWZWN0b3IpOworICAgICAgcmV0dXJuIDEgKyBnYXplVmVjdG9yWzJdOworICAgIH0sCisKKyAgICBsb2FkQ2FtZXJhRnJvbVNldHRpbmdzOiBmdW5jdGlvbihzZXR0aW5ncykgeworICAgICAgdGhpcy5leWVfID0gc2V0dGluZ3MuZ2V0KAorICAgICAgICAgICdleWUnLCB0aGlzLmV5ZV8sIGNvbnN0YW50cy5TRVRUSU5HU19OQU1FU1BBQ0UpOworICAgICAgdGhpcy5nYXplVGFyZ2V0XyA9IHNldHRpbmdzLmdldCgKKyAgICAgICAgICAnZ2F6ZV90YXJnZXQnLCB0aGlzLmdhemVUYXJnZXRfLCBjb25zdGFudHMuU0VUVElOR1NfTkFNRVNQQUNFKTsKKyAgICAgIHRoaXMucm90YXRpb25fID0gc2V0dGluZ3MuZ2V0KAorICAgICAgICAgICdyb3RhdGlvbicsIHRoaXMucm90YXRpb25fLCBjb25zdGFudHMuU0VUVElOR1NfTkFNRVNQQUNFKTsKKworICAgICAgdGhpcy5kaXNwYXRjaFJlbmRlckV2ZW50XygpOworICAgIH0sCisKKyAgICBzYXZlQ2FtZXJhVG9TZXR0aW5nczogZnVuY3Rpb24oc2V0dGluZ3MpIHsKKyAgICAgIHNldHRpbmdzLnNldCgKKyAgICAgICAgICAnZXllJywgdGhpcy5leWVfLCBjb25zdGFudHMuU0VUVElOR1NfTkFNRVNQQUNFKTsKKyAgICAgIHNldHRpbmdzLnNldCgKKyAgICAgICAgICAnZ2F6ZV90YXJnZXQnLCB0aGlzLmdhemVUYXJnZXRfLCBjb25zdGFudHMuU0VUVElOR1NfTkFNRVNQQUNFKTsKKyAgICAgIHNldHRpbmdzLnNldCgKKyAgICAgICAgICAncm90YXRpb24nLCB0aGlzLnJvdGF0aW9uXywgY29uc3RhbnRzLlNFVFRJTkdTX05BTUVTUEFDRSk7CisgICAgfSwKKworICAgIHJlc2V0Q2FtZXJhOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZXllXyA9IFswLCAwLCBjb25zdGFudHMuREVGQVVMVF9FWUVfRElTVEFOQ0VdOworICAgICAgdGhpcy5nYXplVGFyZ2V0XyA9IFswLCAwLCAwXTsKKyAgICAgIHRoaXMucm90YXRpb25fID0gWzAsIDBdOworCisgICAgICB2YXIgc2V0dGluZ3MgPSB0ci5iLlNlc3Npb25TZXR0aW5ncygpOworICAgICAgdmFyIGtleXMgPSBzZXR0aW5ncy5rZXlzKGNvbnN0YW50cy5TRVRUSU5HU19OQU1FU1BBQ0UpOworICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSAwKSB7CisgICAgICAgIHRoaXMubG9hZENhbWVyYUZyb21TZXR0aW5ncyhzZXR0aW5ncyk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuZGV2aWNlUmVjdF8pIHsKKyAgICAgICAgdmFyIHJlY3QgPSB0ci51aS5iLndpbmRvd1JlY3RGb3JFbGVtZW50KHRoaXMuY2FudmFzXykuCisgICAgICAgICAgICBzY2FsZVNpemUodGhpcy5waXhlbFJhdGlvXyk7CisKKyAgICAgICAgdGhpcy5leWVfWzBdID0gdGhpcy5kZXZpY2VSZWN0Xy53aWR0aCAvIDI7CisgICAgICAgIHRoaXMuZXllX1sxXSA9IHRoaXMuZGV2aWNlUmVjdF8uaGVpZ2h0IC8gMjsKKworICAgICAgICB0aGlzLmdhemVUYXJnZXRfWzBdID0gdGhpcy5kZXZpY2VSZWN0Xy53aWR0aCAvIDI7CisgICAgICAgIHRoaXMuZ2F6ZVRhcmdldF9bMV0gPSB0aGlzLmRldmljZVJlY3RfLmhlaWdodCAvIDI7CisgICAgICB9CisKKyAgICAgIHRoaXMuc2F2ZUNhbWVyYVRvU2V0dGluZ3Moc2V0dGluZ3MpOworICAgICAgdGhpcy5kaXNwYXRjaFJlbmRlckV2ZW50XygpOworICAgIH0sCisKKyAgICB1cGRhdGVQYW5CeURlbHRhOiBmdW5jdGlvbihkZWx0YSkgeworICAgICAgdmFyIHJlY3QgPQorICAgICAgICAgIHRyLnVpLmIud2luZG93UmVjdEZvckVsZW1lbnQodGhpcy5jYW52YXNfKS4KKyAgICAgICAgICAgICAgc2NhbGVTaXplKHRoaXMucGl4ZWxSYXRpb18pOworCisgICAgICAvLyBHZXQgdGhlIGV5ZSB2ZWN0b3IsIHNpbmNlIHdlJ2xsIGJlIGFkanVzdGluZyBnYXplVGFyZ2V0LgorICAgICAgdmFyIGV5ZVZlY3RvciA9IFsKKyAgICAgICAgdGhpcy5leWVfWzBdIC0gdGhpcy5nYXplVGFyZ2V0X1swXSwKKyAgICAgICAgdGhpcy5leWVfWzFdIC0gdGhpcy5nYXplVGFyZ2V0X1sxXSwKKyAgICAgICAgdGhpcy5leWVfWzJdIC0gdGhpcy5nYXplVGFyZ2V0X1syXV07CisgICAgICB2YXIgbGVuZ3RoID0gdmVjMy5sZW5ndGgoZXllVmVjdG9yKTsKKyAgICAgIHZlYzMubm9ybWFsaXplKGV5ZVZlY3RvciwgZXllVmVjdG9yKTsKKworICAgICAgdmFyIGhhbGZGb3YgPSBjb25zdGFudHMuRk9WIC8gMjsKKyAgICAgIHZhciBtdWx0aXBsaWVyID0KKyAgICAgICAgICAyLjAgKiBsZW5ndGggKiBNYXRoLnRhbih0ci5iLmRlZzJyYWQoaGFsZkZvdikpIC8gcmVjdC5oZWlnaHQ7CisKKyAgICAgIC8vIEdldCB0aGUgdXAgYW5kIHJpZ2h0IHZlY3RvcnMuCisgICAgICB2YXIgdXAgPSBbMCwgMSwgMF07CisgICAgICB2YXIgcm90TWF0cml4ID0gbWF0NC5jcmVhdGUoKTsKKyAgICAgIG1hdDQucm90YXRlKAorICAgICAgICAgIHJvdE1hdHJpeCwgcm90TWF0cml4LCB0ci5iLmRlZzJyYWQodGhpcy5yb3RhdGlvbl9bMV0pLCBbMCwgMSwgMF0pOworICAgICAgbWF0NC5yb3RhdGUoCisgICAgICAgICAgcm90TWF0cml4LCByb3RNYXRyaXgsIHRyLmIuZGVnMnJhZCh0aGlzLnJvdGF0aW9uX1swXSksIFsxLCAwLCAwXSk7CisgICAgICB2ZWMzLnRyYW5zZm9ybU1hdDQodXAsIHVwLCByb3RNYXRyaXgpOworCisgICAgICB2YXIgcmlnaHQgPSBbMCwgMCwgMF07CisgICAgICB2ZWMzLmNyb3NzKHJpZ2h0LCBleWVWZWN0b3IsIHVwKTsKKyAgICAgIHZlYzMubm9ybWFsaXplKHJpZ2h0LCByaWdodCk7CisKKyAgICAgIC8vIFVwZGF0ZSB0aGUgZ2F6ZSB0YXJnZXQuCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICB0aGlzLmdhemVUYXJnZXRfW2ldICs9CisgICAgICAgICAgICBkZWx0YVswXSAqIG11bHRpcGxpZXIgKiByaWdodFtpXSAtIGRlbHRhWzFdICogbXVsdGlwbGllciAqIHVwW2ldOworCisgICAgICAgIHRoaXMuZXllX1tpXSA9IHRoaXMuZ2F6ZVRhcmdldF9baV0gKyBsZW5ndGggKiBleWVWZWN0b3JbaV07CisgICAgICB9CisKKyAgICAgIC8vIElmIHdlIGhhdmUgc29tZSB6IG9mZnNldCwgd2UgbmVlZCB0byByZXBvc2l0aW9uIGdhemVUYXJnZXQKKyAgICAgIC8vIHRvIGJlIG9uIHRoZSBwbGFuZSB6ID0gMCB3aXRoIG5vcm1hbCBbMCwgMCwgMV0uCisgICAgICBpZiAoTWF0aC5hYnModGhpcy5nYXplVGFyZ2V0X1syXSkgPiAxZS02KSB7CisgICAgICAgIHZhciBnYXplVmVjdG9yID0gWy1leWVWZWN0b3JbMF0sIC1leWVWZWN0b3JbMV0sIC1leWVWZWN0b3JbMl1dOworICAgICAgICB2YXIgbmV3TGVuZ3RoID0gdHIuYi5jbGFtcCgKKyAgICAgICAgICAgIC10aGlzLmV5ZV9bMl0gLyBnYXplVmVjdG9yWzJdLAorICAgICAgICAgICAgY29uc3RhbnRzLk1JTklNVU1fRElTVEFOQ0UsCisgICAgICAgICAgICBjb25zdGFudHMuTUFYSU1VTV9ESVNUQU5DRSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzOyArK2kpCisgICAgICAgICAgdGhpcy5nYXplVGFyZ2V0X1tpXSA9IHRoaXMuZXllX1tpXSArIG5ld0xlbmd0aCAqIGdhemVWZWN0b3JbaV07CisgICAgICB9CisKKyAgICAgIHRoaXMuc2F2ZUNhbWVyYVRvU2V0dGluZ3ModHIuYi5TZXNzaW9uU2V0dGluZ3MoKSk7CisgICAgICB0aGlzLmRpc3BhdGNoUmVuZGVyRXZlbnRfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZVpvb21CeURlbHRhOiBmdW5jdGlvbihkZWx0YSkgeworICAgICAgdmFyIGRlbHRhWSA9IGRlbHRhWzFdOworICAgICAgZGVsdGFZID0gdHIuYi5jbGFtcChkZWx0YVksIC01MCwgNTApOworICAgICAgdmFyIHNjYWxlID0gMS4wIC0gZGVsdGFZIC8gMTAwLjA7CisKKyAgICAgIHZhciBleWVWZWN0b3IgPSBbMCwgMCwgMF07CisgICAgICB2ZWMzLnN1YnRyYWN0KGV5ZVZlY3RvciwgdGhpcy5leWVfLCB0aGlzLmdhemVUYXJnZXRfKTsKKworICAgICAgdmFyIGxlbmd0aCA9IHZlYzMubGVuZ3RoKGV5ZVZlY3Rvcik7CisKKyAgICAgIC8vIENsYW1wIHRoZSBsZW5ndGggdG8gYWxsb3dlZCB2YWx1ZXMgYnkgY2hhbmdpbmcgdGhlIHNjYWxlLgorICAgICAgaWYgKGxlbmd0aCAqIHNjYWxlIDwgY29uc3RhbnRzLk1JTklNVU1fRElTVEFOQ0UpCisgICAgICAgIHNjYWxlID0gY29uc3RhbnRzLk1JTklNVU1fRElTVEFOQ0UgLyBsZW5ndGg7CisgICAgICBlbHNlIGlmIChsZW5ndGggKiBzY2FsZSA+IGNvbnN0YW50cy5NQVhJTVVNX0RJU1RBTkNFKQorICAgICAgICBzY2FsZSA9IGNvbnN0YW50cy5NQVhJTVVNX0RJU1RBTkNFIC8gbGVuZ3RoOworCisgICAgICB2ZWMzLnNjYWxlKGV5ZVZlY3RvciwgZXllVmVjdG9yLCBzY2FsZSk7CisgICAgICB2ZWMzLmFkZCh0aGlzLmV5ZV8sIHRoaXMuZ2F6ZVRhcmdldF8sIGV5ZVZlY3Rvcik7CisKKyAgICAgIHRoaXMuc2F2ZUNhbWVyYVRvU2V0dGluZ3ModHIuYi5TZXNzaW9uU2V0dGluZ3MoKSk7CisgICAgICB0aGlzLmRpc3BhdGNoUmVuZGVyRXZlbnRfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZVJvdGF0ZUJ5RGVsdGE6IGZ1bmN0aW9uKGRlbHRhKSB7CisgICAgICBkZWx0YVswXSAqPSAwLjU7CisgICAgICBkZWx0YVsxXSAqPSAwLjU7CisKKyAgICAgIGlmIChNYXRoLmFicyh0aGlzLnJvdGF0aW9uX1swXSArIGRlbHRhWzFdKSA+IGNvbnN0YW50cy5NQVhJTVVNX1RJTFQpCisgICAgICAgIHJldHVybjsKKyAgICAgIGlmIChNYXRoLmFicyh0aGlzLnJvdGF0aW9uX1sxXSAtIGRlbHRhWzBdKSA+IGNvbnN0YW50cy5NQVhJTVVNX1RJTFQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGV5ZVZlY3RvciA9IFswLCAwLCAwLCAwXTsKKyAgICAgIHZlYzMuc3VidHJhY3QoZXllVmVjdG9yLCB0aGlzLmV5ZV8sIHRoaXMuZ2F6ZVRhcmdldF8pOworCisgICAgICAvLyBVbmRvIHRoZSBjdXJyZW50IHJvdGF0aW9uLgorICAgICAgdmFyIHJvdE1hdHJpeCA9IG1hdDQuY3JlYXRlKCk7CisgICAgICBtYXQ0LnJvdGF0ZSgKKyAgICAgICAgICByb3RNYXRyaXgsIHJvdE1hdHJpeCwgLXRyLmIuZGVnMnJhZCh0aGlzLnJvdGF0aW9uX1swXSksIFsxLCAwLCAwXSk7CisgICAgICBtYXQ0LnJvdGF0ZSgKKyAgICAgICAgICByb3RNYXRyaXgsIHJvdE1hdHJpeCwgLXRyLmIuZGVnMnJhZCh0aGlzLnJvdGF0aW9uX1sxXSksIFswLCAxLCAwXSk7CisgICAgICB2ZWM0LnRyYW5zZm9ybU1hdDQoZXllVmVjdG9yLCBleWVWZWN0b3IsIHJvdE1hdHJpeCk7CisKKyAgICAgIC8vIFVwZGF0ZSByb3RhdGlvbiB2YWx1ZXMuCisgICAgICB0aGlzLnJvdGF0aW9uX1swXSArPSBkZWx0YVsxXTsKKyAgICAgIHRoaXMucm90YXRpb25fWzFdIC09IGRlbHRhWzBdOworCisgICAgICAvLyBSZWRvIHRoZSBuZXcgcm90YXRpb24uCisgICAgICBtYXQ0LmlkZW50aXR5KHJvdE1hdHJpeCk7CisgICAgICBtYXQ0LnJvdGF0ZSgKKyAgICAgICAgICByb3RNYXRyaXgsIHJvdE1hdHJpeCwgdHIuYi5kZWcycmFkKHRoaXMucm90YXRpb25fWzFdKSwgWzAsIDEsIDBdKTsKKyAgICAgIG1hdDQucm90YXRlKAorICAgICAgICAgIHJvdE1hdHJpeCwgcm90TWF0cml4LCB0ci5iLmRlZzJyYWQodGhpcy5yb3RhdGlvbl9bMF0pLCBbMSwgMCwgMF0pOworICAgICAgdmVjNC50cmFuc2Zvcm1NYXQ0KGV5ZVZlY3RvciwgZXllVmVjdG9yLCByb3RNYXRyaXgpOworCisgICAgICB2ZWMzLmFkZCh0aGlzLmV5ZV8sIHRoaXMuZ2F6ZVRhcmdldF8sIGV5ZVZlY3Rvcik7CisKKyAgICAgIHRoaXMuc2F2ZUNhbWVyYVRvU2V0dGluZ3ModHIuYi5TZXNzaW9uU2V0dGluZ3MoKSk7CisgICAgICB0aGlzLmRpc3BhdGNoUmVuZGVyRXZlbnRfKCk7CisgICAgfSwKKworCisgICAgLy8gRXZlbnQgY2FsbGJhY2tzLgorICAgIG9uUGFuQmVnaW5fOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLnBhbm5pbmdfID0gdHJ1ZTsKKyAgICAgIHRoaXMubGFzdE1vdXNlUG9zaXRpb25fID0gdGhpcy5nZXRNb3VzZVBvc2l0aW9uXyhlKTsKKyAgICB9LAorCisgICAgb25QYW5VcGRhdGVfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMucGFubmluZ18pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGRlbHRhID0gdGhpcy5nZXRNb3VzZURlbHRhXyhlLCB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyk7CisgICAgICB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyA9IHRoaXMuZ2V0TW91c2VQb3NpdGlvbl8oZSk7CisgICAgICB0aGlzLnVwZGF0ZVBhbkJ5RGVsdGEoZGVsdGEpOworICAgIH0sCisKKyAgICBvblBhbkVuZF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMucGFubmluZ18gPSBmYWxzZTsKKyAgICB9LAorCisgICAgb25ab29tQmVnaW5fOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLnpvb21pbmdfID0gdHJ1ZTsKKworICAgICAgdmFyIHAgPSB0aGlzLmdldE1vdXNlUG9zaXRpb25fKGUpOworCisgICAgICB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyA9IHA7CisgICAgICB0aGlzLnpvb21Qb2ludF8gPSBwOworICAgIH0sCisKKyAgICBvblpvb21VcGRhdGVfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMuem9vbWluZ18pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGRlbHRhID0gdGhpcy5nZXRNb3VzZURlbHRhXyhlLCB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyk7CisgICAgICB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyA9IHRoaXMuZ2V0TW91c2VQb3NpdGlvbl8oZSk7CisgICAgICB0aGlzLnVwZGF0ZVpvb21CeURlbHRhKGRlbHRhKTsKKyAgICB9LAorCisgICAgb25ab29tRW5kXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy56b29taW5nXyA9IGZhbHNlOworICAgICAgdGhpcy56b29tUG9pbnRfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBvblJvdGF0ZUJlZ2luXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5yb3RhdGluZ18gPSB0cnVlOworICAgICAgdGhpcy5sYXN0TW91c2VQb3NpdGlvbl8gPSB0aGlzLmdldE1vdXNlUG9zaXRpb25fKGUpOworICAgIH0sCisKKyAgICBvblJvdGF0ZVVwZGF0ZV86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGlmICghdGhpcy5yb3RhdGluZ18pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGRlbHRhID0gdGhpcy5nZXRNb3VzZURlbHRhXyhlLCB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyk7CisgICAgICB0aGlzLmxhc3RNb3VzZVBvc2l0aW9uXyA9IHRoaXMuZ2V0TW91c2VQb3NpdGlvbl8oZSk7CisgICAgICB0aGlzLnVwZGF0ZVJvdGF0ZUJ5RGVsdGEoZGVsdGEpOworICAgIH0sCisKKyAgICBvblJvdGF0ZUVuZF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMucm90YXRpbmdfID0gZmFsc2U7CisgICAgfSwKKworCisgICAgLy8gTWlzYyBoZWxwZXIgZnVuY3Rpb25zLgorICAgIGdldE1vdXNlUG9zaXRpb25fOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgcmVjdCA9IHRyLnVpLmIud2luZG93UmVjdEZvckVsZW1lbnQodGhpcy5jYW52YXNfKTsKKyAgICAgIHJldHVybiBbKGUuY2xpZW50WCAtIHJlY3QueCkgKiB0aGlzLnBpeGVsUmF0aW9fLAorICAgICAgICAgICAgICAoZS5jbGllbnRZIC0gcmVjdC55KSAqIHRoaXMucGl4ZWxSYXRpb19dOworICAgIH0sCisKKyAgICBnZXRNb3VzZURlbHRhXzogZnVuY3Rpb24oZSwgcCkgeworICAgICAgdmFyIG5ld1AgPSB0aGlzLmdldE1vdXNlUG9zaXRpb25fKGUpOworICAgICAgcmV0dXJuIFtuZXdQWzBdIC0gcFswXSwgbmV3UFsxXSAtIHBbMV1dOworICAgIH0sCisKKyAgICBkaXNwYXRjaFJlbmRlckV2ZW50XzogZnVuY3Rpb24oKSB7CisgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3JlbmRlcnJlcXVpcmVkJywgZmFsc2UsIGZhbHNlKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDYW1lcmE6IENhbWVyYQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jYW1lcmFfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NhbWVyYV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VhMGNjNgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jYW1lcmFfdGVzdC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JlY3QuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcXVhZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYm94Mi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9xdWFkX3N0YWNrX3ZpZXcuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKworICBmdW5jdGlvbiBjcmVhdGVRdWFkcygpIHsKKyAgICB2YXIgcXVhZHMgPSBbCisgICAgICB0ci5iLlF1YWQuZnJvbVhZV0goLTUwMCwgLTUwMCwgMzAsIDMwKSwgLy8gNCBjb3JuZXJzCisgICAgICB0ci5iLlF1YWQuZnJvbVhZV0goLTUwMCwgNDcwLCAzMCwgMzApLAorICAgICAgdHIuYi5RdWFkLmZyb21YWVdIKDQ3MCwgLTUwMCwgMzAsIDMwKSwKKyAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCg0NzAsIDQ3MCwgMzAsIDMwKSwKKyAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgtMjUwLCAtMjUwLCAyNTAsIDI1MCksIC8vIGNyb3NzaGFpcnMKKyAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgwLCAtMjUwLCAyNTAsIDI1MCksIC8vIGNyb3NzaGFpcnMKKyAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgtMjUwLCAwLCAyNTAsIDI1MCksIC8vIGNyb3NzaGFpcnMKKyAgICAgIHRyLmIuUXVhZC5mcm9tWFlXSCgwLCAwLCAyNTAsIDI1MCkgLy8gY3Jvc3NoYWlycworICAgIF07CisgICAgcXVhZHNbMF0uc3RhY2tpbmdHcm91cElkID0gMDsKKyAgICBxdWFkc1sxXS5zdGFja2luZ0dyb3VwSWQgPSAwOworICAgIHF1YWRzWzJdLnN0YWNraW5nR3JvdXBJZCA9IDA7CisgICAgcXVhZHNbM10uc3RhY2tpbmdHcm91cElkID0gMDsKKyAgICBxdWFkc1s0XS5zdGFja2luZ0dyb3VwSWQgPSAxOworICAgIHF1YWRzWzVdLnN0YWNraW5nR3JvdXBJZCA9IDE7CisgICAgcXVhZHNbNl0uc3RhY2tpbmdHcm91cElkID0gMTsKKyAgICBxdWFkc1s3XS5zdGFja2luZ0dyb3VwSWQgPSAxOworICAgIHJldHVybiBxdWFkczsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZVF1YWRTdGFja1ZpZXcodGVzdEZyYW1ld29yaykgeworICAgIHZhciBxdWFkcyA9IGNyZWF0ZVF1YWRzKCk7CisgICAgdmFyIHZpZXcgPSBuZXcgdHIudWkuYi5RdWFkU3RhY2tWaWV3KCk7CisgICAgLy8gc2ltdWxhdGUgdGhlIGNvbnN0cmFpbnRzIG9mIHRoZSBsYXllci10cmVlLXZpZXcKKyAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc0MDBweCc7CisgICAgdmlldy5zdHlsZS53aWR0aCA9ICc4MDBweCc7CisgICAgdmlldy5kZXZpY2VSZWN0ID0gdHIuYi5SZWN0LmZyb21YWVdIKC0yNTAsIC0yNTAsIDUwMCwgNTAwKTsKKyAgICB2aWV3LnF1YWRzID0gcXVhZHM7CisKKyAgICB0ZXN0RnJhbWV3b3JrLmFkZEhUTUxPdXRwdXQodmlldyk7CisgICAgcmV0dXJuIHZpZXc7CisgIH0KKworICB0ZXN0KCdpbml0aWFsU3RhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmlldyA9IGNyZWF0ZVF1YWRTdGFja1ZpZXcodGhpcyk7CisKKyAgICB2YXIgdmlld1JlY3QgPQorICAgICAgICB2aWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIGFzc2VydC5lcXVhbCh2aWV3UmVjdC5oZWlnaHQsIDQwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHZpZXdSZWN0LndpZHRoLCA4MDApOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY2hhcnRfYmFzZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NoYXJ0X2Jhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjI1ZGVhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NoYXJ0X2Jhc2UuaHRtbApAQCAtMCwwICsxLDI5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZDMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzdHlsZT4KKyAgKiAvZGVlcC8gLmNoYXJ0LWJhc2UgI3RpdGxlIHsKKyAgICBmb250LXNpemU6IDE2cHQ7CisgIH0KKworICAqIC9kZWVwLyAuY2hhcnQtYmFzZSB7CisgICAgZm9udC1zaXplOiAxMnB0OworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgY3Vyc29yOiBkZWZhdWx0OworICB9CisKKyAgKiAvZGVlcC8gLmNoYXJ0LWJhc2UgLmF4aXMgcGF0aCwKKyAgKiAvZGVlcC8gLmNoYXJ0LWJhc2UgLmF4aXMgbGluZSB7CisgICAgZmlsbDogbm9uZTsKKyAgICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7CisgICAgc3Ryb2tlOiAjMDAwOworICB9Cis8L3N0eWxlPgorCis8dGVtcGxhdGUgaWQ9ImNoYXJ0LWJhc2UtdGVtcGxhdGUiPgorICA8c3ZnPiA8IS0tIHN2ZyB0YWcgaXMgZHJvcHBlZCBieSBDaGFydEJhc2UuZGVjb3JhdGUuIC0tPgorICAgIDxnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9ImNoYXJ0LWFyZWEiPgorICAgICAgPGcgY2xhc3M9InggYXhpcyI+PC9nPgorICAgICAgPGcgY2xhc3M9InkgYXhpcyI+PC9nPgorICAgICAgPHRleHQgaWQ9InRpdGxlIj48L3RleHQ+CisgICAgPC9nPgorICA8L3N2Zz4KKzwvdGVtcGxhdGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKKworICB2YXIgc3ZnTlMgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnOworICB2YXIgaGlnaGxpZ2h0SWRCb29zdCA9IHRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlSGlnaGxpZ2h0SWRCb29zdCgpOworCisgIGZ1bmN0aW9uIGdldENvbG9yT2ZLZXkoa2V5LCBzZWxlY3RlZCkgeworICAgIHZhciBpZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGtleSk7CisgICAgaWYgKHNlbGVjdGVkKQorICAgICAgaWQgKz0gaGlnaGxpZ2h0SWRCb29zdDsKKyAgICByZXR1cm4gdHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKVtpZF07CisgIH0KKworICAvKioKKyAgICogQSB2aXJ0dWFsIGJhc2UgY2xhc3MgZm9yIGJhc2ljIGNoYXJ0cyB0aGF0IHByb3ZpZGVzIFggYW5kIFkgYXhlcywgaWYKKyAgICogbmVlZGVkLCBhIHRpdGxlLCBhbmQgbGVnZW5kLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBDaGFydEJhc2UgPSB0ci51aS5iLmRlZmluZSgnc3ZnJywgdW5kZWZpbmVkLCBzdmdOUyk7CisKKyAgQ2hhcnRCYXNlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2NoYXJ0LWJhc2UnKTsKKyAgICAgIHRoaXMuY2hhcnRUaXRsZV8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmRhdGFfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5zZXJpZXNLZXlzXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMud2lkdGhfID0gNDAwOworICAgICAgdGhpcy5oZWlnaHRfID0gMzAwOworCisgICAgICAvLyBUaGlzIHNob3VsZCB1c2UgdHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlLiBIb3dldmVyLCBjcmVhdGluZworICAgICAgLy8gc3ZnLW5hbWVzcGFjZWQgZWxlbWVudHMgaW5zaWRlIGEgdGVtcGxhdGUgaXNuJ3QgcG9zc2libGUuIFRodXMsIHRoaXMKKyAgICAgIC8vIGhhY2suCisgICAgICB2YXIgdGVtcGxhdGUgPSBUSElTX0RPQy5xdWVyeVNlbGVjdG9yKCcjY2hhcnQtYmFzZS10ZW1wbGF0ZScpOworICAgICAgdmFyIHN2Z0VsID0gdGVtcGxhdGUuY29udGVudC5xdWVyeVNlbGVjdG9yKCdzdmcnKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ZnRWwuY2hpbGRyZW4ubGVuZ3RoOyBpKyspCisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoc3ZnRWwuY2hpbGRyZW5baV0uY2xvbmVOb2RlKHRydWUpKTsKKworICAgICAgLy8gc3ZnIGxpa2VzIHRvIHRha2Ugb3ZlciB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGZvciBzb21lIHJlYXNvbi4gVGhpcworICAgICAgLy8gd29ya3MgYXJvdW5kIGl0LgorICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KAorICAgICAgICAgIHRoaXMsICd3aWR0aCcsIHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiB0aGlzLndpZHRoXzsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHdpZHRoKSB7CisgICAgICAgICAgICAgIHRoaXMud2lkdGhfID0gd2lkdGg7CisgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSk7CisgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoCisgICAgICAgICAgdGhpcywgJ2hlaWdodCcsIHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhlaWdodF87CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2V0OiBmdW5jdGlvbihoZWlnaHQpIHsKKyAgICAgICAgICAgICAgdGhpcy5oZWlnaHRfID0gaGVpZ2h0OworICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXQgY2hhcnRUaXRsZSgpIHsKKyAgICAgIHJldHVybiBjaGFydFRpdGxlXzsKKyAgICB9LAorCisgICAgc2V0IGNoYXJ0VGl0bGUoY2hhcnRUaXRsZSkgeworICAgICAgdGhpcy5jaGFydFRpdGxlXyA9IGNoYXJ0VGl0bGU7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgY2hhcnRBcmVhRWxlbWVudCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjaGFydC1hcmVhJyk7CisgICAgfSwKKworICAgIGdldCBkYXRhKCkgeworICAgICAgcmV0dXJuIHRoaXMuZGF0YV87CisgICAgfSwKKworICAgIHNldFNpemU6IGZ1bmN0aW9uKHNpemUpIHsKKyAgICAgIHRoaXMud2lkdGhfID0gc2l6ZS53aWR0aDsKKyAgICAgIHRoaXMuaGVpZ2h0XyA9IHNpemUuaGVpZ2h0OworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IG1hcmdpbigpIHsKKyAgICAgIHZhciBtYXJnaW4gPSB7dG9wOiAyMCwgcmlnaHQ6IDIwLCBib3R0b206IDMwLCBsZWZ0OiA1MH07CisgICAgICBpZiAodGhpcy5jaGFydFRpdGxlXykKKyAgICAgICAgbWFyZ2luLnRvcCArPSAyMDsKKyAgICAgIHJldHVybiBtYXJnaW47CisgICAgfSwKKworICAgIGdldCBjaGFydEFyZWFTaXplKCkgeworICAgICAgdmFyIG1hcmdpbiA9IHRoaXMubWFyZ2luOworICAgICAgcmV0dXJuIHsKKyAgICAgICAgd2lkdGg6IHRoaXMud2lkdGhfIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQsCisgICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHRfIC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20KKyAgICAgIH07CisgICAgfSwKKworICAgIGdldExlZ2VuZEtleXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIHVwZGF0ZVNjYWxlc186IGZ1bmN0aW9uKHdpZHRoLCBoZWlnaHQpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgbWFyZ2luID0gdGhpcy5tYXJnaW47CisgICAgICB2YXIgd2lkdGggPSB0aGlzLmNoYXJ0QXJlYVNpemUud2lkdGg7CisgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5jaGFydEFyZWFTaXplLmhlaWdodDsKKworICAgICAgdmFyIHRoaXNTZWwgPSBkMy5zZWxlY3QodGhpcyk7CisgICAgICB0aGlzU2VsLmF0dHIoJ3dpZHRoJywgdGhpcy53aWR0aF8pOworICAgICAgdGhpc1NlbC5hdHRyKCdoZWlnaHQnLCB0aGlzLmhlaWdodF8pOworCisgICAgICB2YXIgY2hhcnRBcmVhU2VsID0gZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCk7CisgICAgICBjaGFydEFyZWFTZWwuYXR0cigKKyAgICAgICAgICAndHJhbnNmb3JtJywKKyAgICAgICAgICAndHJhbnNsYXRlKCcgKyBtYXJnaW4ubGVmdCArICcsJyArIG1hcmdpbi50b3AgKyAnKScpOworCisgICAgICB0aGlzLnVwZGF0ZVNjYWxlc18od2lkdGgsIGhlaWdodCk7CisKKyAgICAgIC8vIEF4ZXMuCisgICAgICBpZiAodGhpcy54U2NhbGVfICYmIHRoaXMueVNjYWxlXykgeworICAgICAgICB2YXIgeEF4aXNSZW5kZXJlciA9IGQzLnN2Zy5heGlzKCkKKyAgICAgICAgICAgIC5zY2FsZSh0aGlzLnhTY2FsZV8pCisgICAgICAgICAgICAub3JpZW50KCdib3R0b20nKTsKKworICAgICAgICB2YXIgeUF4aXNSZW5kZXJlciA9IGQzLnN2Zy5heGlzKCkKKyAgICAgICAgICAgIC5zY2FsZSh0aGlzLnlTY2FsZV8pCisgICAgICAgICAgICAub3JpZW50KCdsZWZ0Jyk7CisKKyAgICAgICAgY2hhcnRBcmVhU2VsLnNlbGVjdCgnLnguYXhpcycpCisgICAgICAgICAgICAuYXR0cigndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgwLCcgKyBoZWlnaHQgKyAnKScpCisgICAgICAgICAgICAuY2FsbCh4QXhpc1JlbmRlcmVyKTsKKworICAgICAgICBjaGFydEFyZWFTZWwuc2VsZWN0KCcueS5heGlzJykKKyAgICAgICAgICAgIC5jYWxsKHlBeGlzUmVuZGVyZXIpOworICAgICAgfQorCisgICAgICAvLyBUaXRsZS4KKyAgICAgIHZhciB0aXRsZVNlbCA9IGNoYXJ0QXJlYVNlbC5zZWxlY3QoJyN0aXRsZScpOworICAgICAgaWYgKHRoaXMuY2hhcnRUaXRsZV8pIHsKKyAgICAgICAgdGl0bGVTZWwuYXR0cigndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgnICsgd2lkdGggKiAwLjUgKyAnLC01KScpCisgICAgICAgICAgICAuc3R5bGUoJ2Rpc3BsYXknLCB1bmRlZmluZWQpCisgICAgICAgICAgICAuc3R5bGUoJ3RleHQtYW5jaG9yJywgJ21pZGRsZScpCisgICAgICAgICAgICAuYXR0cignY2xhc3MnLCAndGl0bGUnKQorICAgICAgICAgICAgLmF0dHIoJ3dpZHRoJywgd2lkdGgpCisgICAgICAgICAgICAudGV4dCh0aGlzLmNoYXJ0VGl0bGVfKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRpdGxlU2VsLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTsKKyAgICAgIH0KKworICAgICAgLy8gQmFzaWNzCisgICAgICB0aGlzLnVwZGF0ZUxlZ2VuZF8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlTGVnZW5kXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIga2V5cyA9IHRoaXMuZ2V0TGVnZW5kS2V5c18oKTsKKyAgICAgIGlmIChrZXlzID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGNoYXJ0QXJlYVNlbCA9IGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpOworICAgICAgdmFyIGNoYXJ0QXJlYVNpemUgPSB0aGlzLmNoYXJ0QXJlYVNpemU7CisKKyAgICAgIHZhciBsZWdlbmRFbnRyaWVzU2VsID0gY2hhcnRBcmVhU2VsLnNlbGVjdEFsbCgnLmxlZ2VuZCcpCisgICAgICAgICAgLmRhdGEoa2V5cy5zbGljZSgpLnJldmVyc2UoKSk7CisKKyAgICAgIGxlZ2VuZEVudHJpZXNTZWwuZW50ZXIoKQorICAgICAgICAgIC5hcHBlbmQoJ2cnKQorICAgICAgICAgIC5hdHRyKCdjbGFzcycsICdsZWdlbmQnKQorICAgICAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBmdW5jdGlvbihkLCBpKSB7CisgICAgICAgICAgICByZXR1cm4gJ3RyYW5zbGF0ZSgwLCcgKyBpICogMjAgKyAnKSc7CisgICAgICAgICAgfSkuYXBwZW5kKCd0ZXh0JykudGV4dChmdW5jdGlvbihrZXkpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgICAgfSk7CisgICAgICBsZWdlbmRFbnRyaWVzU2VsLmV4aXQoKS5yZW1vdmUoKTsKKworICAgICAgbGVnZW5kRW50cmllc1NlbC5hdHRyKCd4JywgY2hhcnRBcmVhU2l6ZS53aWR0aCAtIDE4KQorICAgICAgICAgIC5hdHRyKCd3aWR0aCcsIDE4KQorICAgICAgICAgIC5hdHRyKCdoZWlnaHQnLCAxOCkKKyAgICAgICAgICAuc3R5bGUoJ2ZpbGwnLCBmdW5jdGlvbihrZXkpIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IHRoaXMuY3VycmVudEhpZ2hsaWdodGVkTGVnZW5kS2V5ID09PSBrZXk7CisgICAgICAgICAgICByZXR1cm4gZ2V0Q29sb3JPZktleShrZXksIHNlbGVjdGVkKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworCisgICAgICBsZWdlbmRFbnRyaWVzU2VsLnNlbGVjdEFsbCgndGV4dCcpCisgICAgICAgIC5hdHRyKCd4JywgY2hhcnRBcmVhU2l6ZS53aWR0aCAtIDI0KQorICAgICAgICAuYXR0cigneScsIDkpCisgICAgICAgIC5hdHRyKCdkeScsICcuMzVlbScpCisgICAgICAgIC5zdHlsZSgndGV4dC1hbmNob3InLCAnZW5kJykKKyAgICAgICAgLnRleHQoZnVuY3Rpb24oZCkgeyByZXR1cm4gZDsgfSk7CisgICAgfSwKKworICAgIGdldCBoaWdobGlnaHRlZExlZ2VuZEtleSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodGVkTGVnZW5kS2V5XzsKKyAgICB9LAorCisgICAgc2V0IGhpZ2hsaWdodGVkTGVnZW5kS2V5KGhpZ2hsaWdodGVkTGVnZW5kS2V5KSB7CisgICAgICB0aGlzLmhpZ2hsaWdodGVkTGVnZW5kS2V5XyA9IGhpZ2hsaWdodGVkTGVnZW5kS2V5OworICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRfKCk7CisgICAgfSwKKworICAgIGdldCBjdXJyZW50SGlnaGxpZ2h0ZWRMZWdlbmRLZXkoKSB7CisgICAgICBpZiAodGhpcy50ZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXlfKQorICAgICAgICByZXR1cm4gdGhpcy50ZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXlfOworICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0ZWRMZWdlbmRLZXlfOworICAgIH0sCisKKyAgICBwdXNoVGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5OiBmdW5jdGlvbihrZXkpIHsKKyAgICAgIGlmICh0aGlzLnRlbXBIaWdobGlnaHRlZExlZ2VuZEtleV8pCisgICAgICAgIHRocm93IG5ldyBFcnJvcigncHVzaCBjYW5ub3QgbmVzdCcpOworICAgICAgdGhpcy50ZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXlfID0ga2V5OworICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRfKCk7CisgICAgfSwKKworICAgIHBvcFRlbXBIaWdobGlnaHRlZExlZ2VuZEtleTogZnVuY3Rpb24oa2V5KSB7CisgICAgICBpZiAodGhpcy50ZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXlfICE9IGtleSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwb3AgY2Fubm90IGhhcHBlbicpOworICAgICAgdGhpcy50ZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXlfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHRfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUhpZ2hsaWdodF86IGZ1bmN0aW9uKCkgeworICAgICAgLy8gVXBkYXRlIGxhYmVsIGNvbG9ycy4KKyAgICAgIHZhciBjaGFydEFyZWFTZWwgPSBkMy5zZWxlY3QodGhpcy5jaGFydEFyZWFFbGVtZW50KTsKKyAgICAgIHZhciBsZWdlbmRFbnRyaWVzU2VsID0gY2hhcnRBcmVhU2VsLnNlbGVjdEFsbCgnLmxlZ2VuZCcpOworCisgICAgICB2YXIgdGhhdCA9IHRoaXM7CisgICAgICBsZWdlbmRFbnRyaWVzU2VsLmVhY2goZnVuY3Rpb24oa2V5KSB7CisgICAgICAgIHZhciBoaWdobGlnaHRlZCA9IGtleSA9PSB0aGF0LmN1cnJlbnRIaWdobGlnaHRlZExlZ2VuZEtleTsKKyAgICAgICAgdmFyIGNvbG9yID0gZ2V0Q29sb3JPZktleShrZXksIGhpZ2hsaWdodGVkKTsKKyAgICAgICAgdGhpcy5zdHlsZS5maWxsID0gY29sb3I7CisgICAgICAgIGlmIChoaWdobGlnaHRlZCkKKyAgICAgICAgICB0aGlzLnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICB0aGlzLnN0eWxlLmZvbnRXZWlnaHQgPSAnJzsKKyAgICAgIH0pOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIGdldENvbG9yT2ZLZXk6IGdldENvbG9yT2ZLZXksCisgICAgQ2hhcnRCYXNlOiBDaGFydEJhc2UKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY29sb3JfbGVnZW5kLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY29sb3JfbGVnZW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlkZTFjMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb2xvcl9sZWdlbmQuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb21wb3VuZF9ldmVudF9zZWxlY3Rpb25fc3RhdGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorCis8IS0tCitAZmlsZW92ZXJ2aWV3IEEgY29tcG9uZW50IHVzZWQgdG8gZGlzcGxheSBhIGxhYmVsIGFuZCBhIGNvbG9yIHNxdWFyZS4KKworVGhlIGNvbG9yZWQgc3F1YXJlIGlzIHR5cGljYWxseSBmaWxsZWQgd2l0aCB0aGUgY29sb3IgYXNzb2NpYXRlZCB3aXRoCit0aGF0IGxhYmVsLCB1c2luZyB0aGUgZ2V0Q29sb3JJZCogbWV0aG9kcyBmcm9tIGJhc2UvY29sb3Jfc2NoZW1lLgorLS0+Cis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWItY29sb3ItbGVnZW5kIj4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgfQorCisgICAgI3NxdWFyZSB7CisgICAgICBmb250LXNpemU6IDE1MCU7ICAvKiBNYWtlIHRoZSBzcXVhcmUgYmlnZ2VyLiAqLworICAgICAgbGluZS1oZWlnaHQ6IDAlOyAgLyogUHJldmVudCB0aGUgc3F1YXJlIGZyb20gaW5jcmVhc2luZyBsZWdlbmQgaGVpZ2h0LiAqLworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzcGFuIGlkPSJzcXVhcmUiPjwvc3Bhbj4KKyAgICA8c3BhbiBpZD0ibGFiZWwiPjwvc3Bhbj4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBibGFja1NxdWFyZUNoYXJDb2RlID0gOTYzMjsKKyAgICAgIHRoaXMuJC5zcXVhcmUuaW5uZXJUZXh0ID0gU3RyaW5nLmZyb21DaGFyQ29kZShibGFja1NxdWFyZUNoYXJDb2RlKTsKKyAgICAgIHRoaXMubGFiZWxfID0gdW5kZWZpbmVkOworCisgICAgICB0aGlzLmNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZV8gPQorICAgICAgICAgIHRyLm1vZGVsLkNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZS5OT1RfU0VMRUNURUQ7CisgICAgfSwKKworICAgIHNldCBjb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUoY29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlKSB7CisgICAgICB0aGlzLmNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZV8gPSBjb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGU7CisgICAgICAvLyBUT0RPKG5kdWNhKTogQWRqdXN0IGFwcGVhcmFuY2UgYmFzZWQgb24gYXNzb2NpYXRlZCBzdGF0ZS4KKyAgICB9LAorCisgICAgZ2V0IGxhYmVsKCkgeworICAgICAgcmV0dXJuIHRoaXMubGFiZWxfOworICAgIH0sCisKKyAgICBzZXQgbGFiZWwobGFiZWwpIHsKKyAgICAgIGlmIChsYWJlbCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuc2V0TGFiZWxBbmRDb2xvcklkKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIgY29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGxhYmVsKTsKKyAgICAgIHRoaXMuc2V0TGFiZWxBbmRDb2xvcklkKGxhYmVsLCBjb2xvcklkKTsKKyAgICB9LAorCisgICAgc2V0TGFiZWxBbmRDb2xvcklkOiBmdW5jdGlvbihsYWJlbCwgY29sb3JJZCkgeworICAgICAgdGhpcy5sYWJlbF8gPSBsYWJlbDsKKworICAgICAgdGhpcy4kLmxhYmVsLnRleHRDb250ZW50ID0gJyc7CisgICAgICB0aGlzLiQubGFiZWwuYXBwZW5kQ2hpbGQodHIudWkuYi5hc0hUTUxPclRleHROb2RlKGxhYmVsKSk7CisKKyAgICAgIGlmIChjb2xvcklkID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy4kLnNxdWFyZS5zdHlsZS5jb2xvciA9ICdpbml0aWFsJzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBwYWxldHRlUmF3ID0gdHIudWkuYi5nZXRSYXdDb2xvclBhbGV0dGUoKTsKKyAgICAgICAgdmFyIGNvbG9yID0gdHIudWkuYi5jb2xvclRvUkdCU3RyaW5nKHBhbGV0dGVSYXdbY29sb3JJZF0pOworICAgICAgICB0aGlzLiQuc3F1YXJlLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgICB9CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb2xvcl9sZWdlbmRfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NvbG9yX2xlZ2VuZF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjg3MmI3YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb2xvcl9sZWdlbmRfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTA2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NvbG9yX2xlZ2VuZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBDb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5Db21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGU7CisKKyAgdGVzdCgnbm9MYWJlbFNldCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2xvckxlZ2VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItY29sb3ItbGVnZW5kJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNvbG9yTGVnZW5kKTsKKyAgfSk7CisKKyAgdGVzdCgndW5kZWZpbmVkTGFiZWwnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgIGNvbG9yTGVnZW5kLmxhYmVsID0gdW5kZWZpbmVkOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChjb2xvckxlZ2VuZCk7CisgIH0pOworCisgIHRlc3QoJ2VtcHR5TGFiZWwnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgIGNvbG9yTGVnZW5kLmxhYmVsID0gJyc7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNvbG9yTGVnZW5kKTsKKyAgfSk7CisKKyAgdGVzdCgnbm9uRW1wdHlMYWJlbCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2xvckxlZ2VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItY29sb3ItbGVnZW5kJyk7CisgICAgY29sb3JMZWdlbmQubGFiZWwgPSAnRnJlcXVlbmN5JzsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29sb3JMZWdlbmQpOworICB9KTsKKworICB0ZXN0KCdsb25nTGFiZWwnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgIGNvbG9yTGVnZW5kLmxhYmVsID0gJ1RvdGFsIG1lbW9yeSB1c2FnZSc7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNvbG9yTGVnZW5kKTsKKyAgfSk7CisKKyAgdGVzdCgnZGlyZWN0bHlTZXRDb2xvcklkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbG9yTGVnZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1jb2xvci1sZWdlbmQnKTsKKyAgICBjb2xvckxlZ2VuZC5zZXRMYWJlbEFuZENvbG9ySWQoJ2hlbGxvX3dvcmxkJywgNyAvKiBjb2xvcklkICovKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29sb3JMZWdlbmQpOworICB9KTsKKworICB0ZXN0KCdkaXJlY3RseVByb3ZpZGVkTGFiZWxFbGVtZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbG9yTGVnZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1jb2xvci1sZWdlbmQnKTsKKyAgICBjb2xvckxlZ2VuZC5zZXRMYWJlbEFuZENvbG9ySWQoCisgICAgICAgIHRyLnVpLmIuY3JlYXRlU3Bhbih7dGV4dENvbnRlbnQ6ICdoZWxsbycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnaGVsbG8tc3Bhbid9KSwKKyAgICAgICAgNyAvKiBjb2xvcklkICovKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29sb3JMZWdlbmQpOworICB9KTsKKworICB0ZXN0KCdjZXNzT2JqZWN0U2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgIGNvbG9yTGVnZW5kLmxhYmVsID0gJ09iamVjdCBzZWxlY3RlZCc7CisgICAgY29sb3JMZWdlbmQuY29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlID0KKyAgICAgICAgQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlLkVWRU5UX1NFTEVDVEVEOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChjb2xvckxlZ2VuZCk7CisgIH0pOworCisgIHRlc3QoJ2Nlc3NTb21lQXNzb2NpYXRlZE9iamVjdHNTZWxlY3RlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2xvckxlZ2VuZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItY29sb3ItbGVnZW5kJyk7CisgICAgY29sb3JMZWdlbmQubGFiZWwgPSAnU29tZSBhc3NvY2lhdGVkIG9iamVjdHMgc2VsZWN0ZWQnOworICAgIGNvbG9yTGVnZW5kLmNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZSA9CisgICAgICAgIENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZS5TT01FX0FTU09DSUFURURfRVZFTlRTX1NFTEVDVEVEOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNvbG9yTGVnZW5kKTsKKyAgfSk7CisKKyAgdGVzdCgnY2Vzc0FsbEFzc29jaWF0ZWRPYmplY3RzU2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgIGNvbG9yTGVnZW5kLmxhYmVsID0gJ0FsbCBhc3NvY2lhdGVkIG9iamVjdHMgc2VsZWN0ZWQnOworICAgIGNvbG9yTGVnZW5kLmNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZSA9CisgICAgICAgIENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZS5BTExfQVNTT0NJQVRFRF9FVkVOVFNfU0VMRUNURUQ7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29sb3JMZWdlbmQpOworICB9KTsKKworICB0ZXN0KCdjZXNzT2JqZWN0QW5kU29tZUFzc29jaWF0ZWRPYmplY3RzU2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgIGNvbG9yTGVnZW5kLmxhYmVsID0gJ09iamVjdCBhbmQgc29tZSBhc3NvY2lhdGVkIG9iamVjdHMgc2VsZWN0ZWQnOworICAgIGNvbG9yTGVnZW5kLmNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZSA9CisgICAgICAgIENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZS5FVkVOVF9BTkRfU09NRV9BU1NPQ0lBVEVEX1NFTEVDVEVEOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNvbG9yTGVnZW5kKTsKKyAgfSk7CisKKyAgdGVzdCgnY2Vzc09iamVjdEFuZEFsbEFzc29jaWF0ZWRPYmplY3RzU2VsZWN0ZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sb3JMZWdlbmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWNvbG9yLWxlZ2VuZCcpOworICAgIGNvbG9yTGVnZW5kLmxhYmVsID0gJ09iamVjdCBhbmQgYWxsIGFzc29jaWF0ZWQgb2JqZWN0cyBzZWxlY3RlZCc7CisgICAgY29sb3JMZWdlbmQuY29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlID0KKyAgICAgICAgQ29tcG91bmRFdmVudFNlbGVjdGlvblN0YXRlLkVWRU5UX0FORF9BTExfQVNTT0NJQVRFRF9TRUxFQ1RFRDsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChjb2xvckxlZ2VuZCk7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3M2RiMjgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29sb3JfdXRpbHMuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgY29sb3Igc2NoZW1lIHJlbGF0ZWQgZnVuY3Rpb25zLgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworICB2YXIgY29sb3JUb1JHQlN0cmluZyA9IHRyLnVpLmIuY29sb3JUb1JHQlN0cmluZzsKKyAgdmFyIGNvbG9yVG9SR0JBU3RyaW5nID0gdHIudWkuYi5jb2xvclRvUkdCQVN0cmluZzsKKworICAvLyBCYXNpYyBjb25zdGFudHMuLi4KKworICB2YXIgZ2VuZXJhbFB1cnBvc2VDb2xvcnMgPSBbCisgICAge3I6IDEzOCwgZzogMTEzLCBiOiAxNTJ9LAorICAgIHtyOiAxNzUsIGc6IDExMiwgYjogMTMzfSwKKyAgICB7cjogMTI3LCBnOiAxMzUsIGI6IDIyNX0sCisgICAge3I6IDkzLCBnOiA4MSwgYjogMTM3fSwKKyAgICB7cjogMTE2LCBnOiAxNDMsIGI6IDExOX0sCisgICAge3I6IDE3OCwgZzogMjE0LCBiOiAxMjJ9LAorICAgIHtyOiA4NywgZzogMTA5LCBiOiAxNDd9LAorICAgIHtyOiAxMTksIGc6IDE1NSwgYjogOTV9LAorICAgIHtyOiAxMTQsIGc6IDE4MCwgYjogMTYwfSwKKyAgICB7cjogMTMyLCBnOiA4NSwgYjogMTAzfSwKKyAgICB7cjogMTU3LCBnOiAyMTAsIGI6IDE1MH0sCisgICAge3I6IDE0OCwgZzogOTQsIGI6IDg2fSwKKyAgICB7cjogMTY0LCBnOiAxMDgsIGI6IDEzOH0sCisgICAge3I6IDEzOSwgZzogMTkxLCBiOiAxNTB9LAorICAgIHtyOiAxMTAsIGc6IDk5LCBiOiAxNDV9LAorICAgIHtyOiA4MCwgZzogMTI5LCBiOiAxMDl9LAorICAgIHtyOiAxMjUsIGc6IDE0MCwgYjogMTQ5fSwKKyAgICB7cjogOTMsIGc6IDEyNCwgYjogMTMyfSwKKyAgICB7cjogMTQwLCBnOiA4NSwgYjogMTQwfSwKKyAgICB7cjogMTA0LCBnOiAxNjMsIGI6IDE2Mn0sCisgICAge3I6IDEzMiwgZzogMTQxLCBiOiAxNzh9LAorICAgIHtyOiAxMzEsIGc6IDEwNSwgYjogMTQ3fSwKKyAgICB7cjogMTM1LCBnOiAxODMsIGI6IDk4fSwKKyAgICB7cjogMTUyLCBnOiAxMzQsIGI6IDE3N30sCisgICAge3I6IDE0MSwgZzogMTg4LCBiOiAxNDF9LAorICAgIHtyOiAxMzMsIGc6IDE2MCwgYjogMjEwfSwKKyAgICB7cjogMTI2LCBnOiAxODYsIGI6IDE0OH0sCisgICAge3I6IDExMiwgZzogMTk4LCBiOiAyMDV9LAorICAgIHtyOiAxODAsIGc6IDEyMiwgYjogMTk1fSwKKyAgICB7cjogMjAzLCBnOiAxNDQsIGI6IDE1Mn1dOworCisgIHZhciByZXNlcnZlZENvbG9yc0J5TmFtZSA9IHsKKyAgICB0aHJlYWRfc3RhdGVfaW93YWl0OiB7cjogMTgyLCBnOiAxMjUsIGI6IDE0M30sCisgICAgdGhyZWFkX3N0YXRlX3J1bm5pbmc6IHtyOiAxMjYsIGc6IDIwMCwgYjogMTQ4fSwKKyAgICB0aHJlYWRfc3RhdGVfcnVubmFibGU6IHtyOiAxMzMsIGc6IDE2MCwgYjogMjEwfSwKKyAgICB0aHJlYWRfc3RhdGVfc2xlZXBpbmc6IHtyOiAyNDAsIGc6IDI0MCwgYjogMjQwfSwKKyAgICB0aHJlYWRfc3RhdGVfdW5rbm93bjoge3I6IDE5OSwgZzogMTU1LCBiOiAxMjV9LAorCisgICAgbWVtb3J5X2R1bXA6IHtyOiAwLCBnOiAwLCBiOiAxODB9LAorCisgICAgZ2VuZXJpY193b3JrOiB7cjogMTI1LCBnOiAxMjUsIGI6IDEyNX0sCisKKyAgICBnb29kOiB7cjogMCwgZzogMTI1LCBiOiAwfSwKKyAgICBiYWQ6IHtyOiAxODAsIGc6IDEyNSwgYjogMH0sCisgICAgdGVycmlibGU6IHtyOiAxODAsIGc6IDAsIGI6IDB9LAorCisgICAgYmxhY2s6IHtyOiAwLCBnOiAwLCBiOiAwfSwKKworICAgIHJhaWxfcmVzcG9uc2U6IHtyOiA2NywgZzogMTM1LCBiOiAyNTN9LAorICAgIHJhaWxfYW5pbWF0ZToge3I6IDI0NCwgZzogNzQsIGI6IDYzfSwKKyAgICByYWlsX2lkbGU6IHtyOiAyMzgsIGc6IDE0MiwgYjogMH0sCisgICAgcmFpbF9sb2FkOiB7cjogMTMsIGc6IDE2OCwgYjogOTd9LAorCisgICAgdXNlZF9tZW1vcnlfY29sdW1uOiB7cjogMCwgZzogMCwgYjogMjU1fSwKKyAgICBvbGRlcl91c2VkX21lbW9yeV9jb2x1bW46IHtyOiAxNTMsIGc6IDIwNCwgYjogMjU1fSwKKyAgICB0cmFjaW5nX21lbW9yeV9jb2x1bW46IHtyOiAxNTMsIGc6IDE1MywgYjogMTUzfSwKKworICAgIGNxX2J1aWxkX3J1bm5pbmc6IHtyOiAyNTUsIGc6IDI1NSwgYjogMTE5fSwKKyAgICBjcV9idWlsZF9wYXNzZWQ6IHtyOiAxNTMsIGc6IDIzOCwgYjogMTAyfSwKKyAgICBjcV9idWlsZF9mYWlsZWQ6IHtyOiAyMzgsIGc6IDEzNiwgYjogMTM2fSwKKyAgICBjcV9idWlsZF9hYmFuZG9uZWQ6IHtyOiAxODcsIGc6IDE4NywgYjogMTg3fSwKKworICAgIGNxX2J1aWxkX2F0dGVtcHRfcnVubmluZzoge3I6IDIyMiwgZzogMjIyLCBiOiA3NX0sCisgICAgY3FfYnVpbGRfYXR0ZW1wdF9wYXNzZWQ6IHtyOiAxMDMsIGc6IDIxOCwgYjogMzV9LAorICAgIGNxX2J1aWxkX2F0dGVtcHRfZmFpbGVkOiB7cjogMTk3LCBnOiA4MSwgYjogODF9CisgIH07CisKKyAgLy8gU29tZSBjb25zdGFudHMgd2UnbGwgbmVlZCBmb3IgbGF0ZXIgbG9va3Vwcy4KKyAgdmFyIG51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHMgPSBnZW5lcmFsUHVycG9zZUNvbG9ycy5sZW5ndGg7CisgIHZhciBudW1SZXNlcnZlZENvbG9ySWRzID0gdHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKHJlc2VydmVkQ29sb3JzQnlOYW1lKTsKKworICAvLyBUaGUgY29sb3IgcGFsZXR0ZSBpcyBzcGxpdCBpbiBoYWxmLCB3aXRoIHRoZSB1cHBlcgorICAvLyBoYWxmIG9mIHRoZSBwYWxldHRlIGJlaW5nIHRoZSAiaGlnaGxpZ2h0ZWQiIHZlcmlzb24KKyAgLy8gb2YgdGhlIGJhc2UgY29sb3IuIFNvLCBjb2xvciA3J3MgaGlnaGxpZ2h0ZWQgZm9ybSBpcworICAvLyA3ICsgKHBhbGV0dGUubGVuZ3RoIC8gMikuCisgIC8vCisgIC8vIFRoZXNlIGJyaWdodCB2ZXJzaW9ucyBvZiBjb2xvcnMgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkCisgIC8vIGZyb20gdGhlIGJhc2UgY29sb3JzLgorICAvLworICAvLyBXaXRoaW4gdGhlIGNvbG9yIHBhbGV0dGUsIHRoZXJlIGFyZSAiZ2VuZXJhbCBwdXJwb3NlIiBjb2xvcnMsCisgIC8vIHdoaWNoIGNhbiBiZSB1c2VkIGZvciByYW5kb20gY29sb3Igc2VsZWN0aW9uLCBhbmQKKyAgLy8gcmVzZXJ2ZWQgY29sb3JzLCB3aGljaCBhcmUgdXNlZCB3aGVuIHNwZWNpZmljIGNvbG9ycworICAvLyBuZWVkIHRvIGJlIHVzZWQsIGUuZy4gd2hlcmUgcmVkIGlzIGRlc2lyZWQuCisgIHZhciBwYWxldHRlUmF3ID0gKGZ1bmN0aW9uKCkgeworICAgIHZhciBwYWxldHRlQmFzZSA9IFtdOworICAgIHBhbGV0dGVCYXNlLnB1c2guYXBwbHkocGFsZXR0ZUJhc2UsIGdlbmVyYWxQdXJwb3NlQ29sb3JzKTsKKyAgICBwYWxldHRlQmFzZS5wdXNoLmFwcGx5KHBhbGV0dGVCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHJlc2VydmVkQ29sb3JzQnlOYW1lKSk7CisgICAgcmV0dXJuIHBhbGV0dGVCYXNlLmNvbmNhdChwYWxldHRlQmFzZS5tYXAodHIudWkuYi5icmlnaHRlbkNvbG9yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGVCYXNlLm1hcCh0ci51aS5iLmRlc2F0dXJhdGVDb2xvcikpOworICB9KSgpOworICB2YXIgcGFsZXR0ZSA9IHBhbGV0dGVSYXcubWFwKGNvbG9yVG9SR0JTdHJpbmcpOworCisgIHZhciBoaWdobGlnaHRJZEJvb3N0ID0gcGFsZXR0ZVJhdy5sZW5ndGggLyAzOworICB2YXIgZGVzYXR1cmF0ZUlkQm9vc3QgPSAocGFsZXR0ZVJhdy5sZW5ndGggLyAzKSAqIDI7CisKKyAgLy8gQnVpbGQgcmVzZXJ2ZWRDb2xvck5hbWVUb0lkTWFwLgorICB2YXIgcmVzZXJ2ZWRDb2xvck5hbWVUb0lkTWFwID0gKGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0ge307CisgICAgdmFyIGkgPSBnZW5lcmFsUHVycG9zZUNvbG9ycy5sZW5ndGg7CisgICAgdHIuYi5pdGVySXRlbXMocmVzZXJ2ZWRDb2xvcnNCeU5hbWUsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKKyAgICAgIG1ba2V5XSA9IGkrKzsKKyAgICB9KTsKKyAgICByZXR1cm4gbTsKKyAgfSkoKTsKKworICAvKioKKyAgICogQ29tcHV0ZXMgYSBzaW1wbGlzdGljIGhhc2hjb2RlIG9mIHRoZSBwcm92aWRlIG5hbWUuIFVzZWQgdG8gY2hvc2UgY29sb3JzCisgICAqIGZvciBzbGljZXMuCisgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFRoZSBzdHJpbmcgdG8gaGFzaC4KKyAgICovCisgIGZ1bmN0aW9uIGdldFN0cmluZ0hhc2gobmFtZSkgeworICAgIHZhciBoYXNoID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyArK2kpCisgICAgICBoYXNoID0gKGhhc2ggKyAzNyAqIGhhc2ggKyAxMSAqIG5hbWUuY2hhckNvZGVBdChpKSkgJSAweEZGRkZGRkZGOworICAgIHJldHVybiBoYXNoOworICB9CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGNvbG9yIHBhbGV0dGUuCisgICAqLworICBmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGUoKSB7CisgICAgcmV0dXJuIHBhbGV0dGU7CisgIH0KKworICAvKioKKyAgICogR2V0cyB0aGUgcmF3IGNvbG9yIHBhbGV0dGUsIHdoZXJlIGVudHJpZXMgYXJlIHN0aWxsIG9iamVjdHMuCisgICAqLworICBmdW5jdGlvbiBnZXRSYXdDb2xvclBhbGV0dGUoKSB7CisgICAgcmV0dXJuIHBhbGV0dGVSYXc7CisgIH0KKworICAvKioKKyAgICogQHJldHVybiB7TnVtYmVyfSBUaGUgdmFsdWUgdG8gYWRkIHRvIGEgY29sb3IgSUQgdG8gZ2V0IGl0cyBoaWdobGlnaHRlZAorICAgKiBjb2xvciBJRC4gRS5nLiA3ICsgZ2V0UGFsZXR0ZUhpZ2hsaWdodElkQm9vc3QoKSB5aWVsZHMgYSBicmlnaHRlbmVkIGZvcm0KKyAgICogb2YgNydzIGJhc2UgY29sb3IuCisgICAqLworICBmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGVIaWdobGlnaHRJZEJvb3N0KCkgeworICAgIHJldHVybiBoaWdobGlnaHRJZEJvb3N0OworICB9CisgIC8qKgorICAgKiBAcmV0dXJuIHtOdW1iZXJ9IFRoZSB2YWx1ZSB0byBhZGQgdG8gYSBjb2xvciBJRCB0byBnZXQgaXRzIGRlc2F0dXJhdGVkCisgICAqIGNvbG9yIElELiBFLmcuIDcgKyBnZXRQYWxldHRlRGVzYXR1cmF0ZUlkQm9vc3QoKSB5aWVsZHMgYSBkZXNhdHVyYXRlIGZvcm0KKyAgICogb2YgNydzIGJhc2UgY29sb3IuCisgICAqLworICBmdW5jdGlvbiBnZXRDb2xvclBhbGV0dGVEZXNhdHVyYXRlSWRCb29zdCgpIHsKKyAgICByZXR1cm4gZGVzYXR1cmF0ZUlkQm9vc3Q7CisgIH0KKworICAvKioKKyAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgVGhlIGNvbG9yIG5hbWUuCisgICAqIEByZXR1cm4ge051bWJlcn0gVGhlIGNvbG9yIElEIGZvciB0aGUgZ2l2ZW4gY29sb3IgbmFtZS4KKyAgICovCisgIGZ1bmN0aW9uIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUobmFtZSkgeworICAgIHZhciBpZCA9IHJlc2VydmVkQ29sb3JOYW1lVG9JZE1hcFtuYW1lXTsKKyAgICBpZiAoaWQgPT09IHVuZGVmaW5lZCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIGNvbG9yICcpICsgbmFtZTsKKyAgICByZXR1cm4gaWQ7CisgIH0KKworICAvLyBQcmV2aW91c2x5IGNvbXB1dGVkIHN0cmluZyBjb2xvciBJRHMuIFRoZXkgYXJlIGJhc2VkIG9uIGEgc3RhYmxlIGhhc2gsIHNvCisgIC8vIGl0IGlzIHNhZmUgdG8gc2F2ZSB0aGVtIHRocm91Z2hvdXQgdGhlIHByb2dyYW0gdGltZS4KKyAgdmFyIHN0cmluZ0NvbG9ySWRDYWNoZSA9IHt9OworCisgIC8qKgorICAgKiBAcmV0dXJuIHtOdW1iZXJ9IEEgY29sb3IgSUQgdGhhdCBpcyBzdGFibHkgYXNzb2NpYXRlZCB0byB0aGUgcHJvdmlkZWQgdmlhCisgICAqIHRoZSBnZXRTdHJpbmdIYXNoIG1ldGhvZC4gVGhlIGNvbG9yIElEIHdpbGwgYmUgY2hvc2VuIGZyb20gdGhlIGdlbmVyYWwKKyAgICogcHVycG9zZSBJRCBzcGFjZSBvbmx5LCBlLmcuIG5vIHJlc2VydmVkIElEIHdpbGwgYmUgdXNlZC4KKyAgICovCisgIGZ1bmN0aW9uIGdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyhzdHJpbmcpIHsKKyAgICBpZiAoc3RyaW5nQ29sb3JJZENhY2hlW3N0cmluZ10gPT09IHVuZGVmaW5lZCkgeworICAgICAgdmFyIGhhc2ggPSBnZXRTdHJpbmdIYXNoKHN0cmluZyk7CisgICAgICBzdHJpbmdDb2xvcklkQ2FjaGVbc3RyaW5nXSA9IGhhc2ggJSBudW1HZW5lcmFsUHVycG9zZUNvbG9ySWRzOworICAgIH0KKyAgICByZXR1cm4gc3RyaW5nQ29sb3JJZENhY2hlW3N0cmluZ107CisgIH0KKworICB2YXIgcGFsZXR0ZVByb3BlcnRpZXMgPSB7CisgICAgbnVtR2VuZXJhbFB1cnBvc2VDb2xvcklkczogbnVtR2VuZXJhbFB1cnBvc2VDb2xvcklkcywKKyAgICBoaWdobGlnaHRJZEJvb3N0OiBoaWdobGlnaHRJZEJvb3N0LAorICAgIGRlc2F0dXJhdGVJZEJvb3N0OiBkZXNhdHVyYXRlSWRCb29zdAorICB9OworCisgIHJldHVybiB7CisgICAgZ2V0UmF3Q29sb3JQYWxldHRlOiBnZXRSYXdDb2xvclBhbGV0dGUsCisgICAgZ2V0Q29sb3JQYWxldHRlOiBnZXRDb2xvclBhbGV0dGUsCisgICAgcGFsZXR0ZVByb3BlcnRpZXM6IHBhbGV0dGVQcm9wZXJ0aWVzLAorICAgIGdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3Q6IGdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3QsCisgICAgZ2V0Q29sb3JQYWxldHRlRGVzYXR1cmF0ZUlkQm9vc3Q6IGdldENvbG9yUGFsZXR0ZURlc2F0dXJhdGVJZEJvb3N0LAorICAgIGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWU6IGdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUsCisgICAgZ2V0U3RyaW5nSGFzaDogZ2V0U3RyaW5nSGFzaCwKKyAgICBnZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmc6IGdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb2xvcl9zY2hlbWVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NvbG9yX3NjaGVtZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM1MzgyZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb2xvcl9zY2hlbWVfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29sb3Jfc2NoZW1lLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIGJyaWdodGVuID0gdHIudWkuYi5icmlnaHRlbkNvbG9yOworICB2YXIgZGVzYXR1cmF0ZSA9IHRyLnVpLmIuZGVzYXR1cmF0ZUNvbG9yOworCisgIHRlc3QoJ2J1aWxkQ29sb3JQYWxldHRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHBhbGV0dGUgPSB0ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpOworICAgIHZhciByYXdQYWxldHRlID0gdHIudWkuYi5nZXRSYXdDb2xvclBhbGV0dGUoKTsKKyAgICB2YXIgaGlnaGxpZ2h0T2Zmc2V0ID0gdHIudWkuYi5nZXRDb2xvclBhbGV0dGVIaWdobGlnaHRJZEJvb3N0KCk7CisgICAgdmFyIGRlc2F0dXJhdGVPZmZzZXQgPSB0ci51aS5iLmdldENvbG9yUGFsZXR0ZURlc2F0dXJhdGVJZEJvb3N0KCk7CisKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFsZXR0ZS5sZW5ndGgsIHJhd1BhbGV0dGUubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwocGFsZXR0ZS5sZW5ndGggJSAzLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwocGFsZXR0ZS5sZW5ndGggLyAzLCBoaWdobGlnaHRPZmZzZXQpOworICAgIGFzc2VydC5lcXVhbCgocGFsZXR0ZS5sZW5ndGggLyAzKSAqIDIsIGRlc2F0dXJhdGVPZmZzZXQpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYXdQYWxldHRlLmxlbmd0aCAvIDM7IGkrKykgeworICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyYXdQYWxldHRlW2kgKyBoaWdobGlnaHRPZmZzZXRdLAorICAgICAgICAgICAgICAgICAgICAgICBicmlnaHRlbihyYXdQYWxldHRlW2ldKSk7CisgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJhd1BhbGV0dGVbaSArIGRlc2F0dXJhdGVPZmZzZXRdLAorICAgICAgICAgICAgICAgICAgICAgICBkZXNhdHVyYXRlKHJhd1BhbGV0dGVbaV0pKTsKKyAgICB9CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb2xvcl91dGlscy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NvbG9yX3V0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE1YWQzNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb2xvcl91dGlscy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgY29sb3Igc2NoZW1lIHJlbGF0ZWQgZnVuY3Rpb25zLgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworCisgIGZ1bmN0aW9uIGJvdW5kQ2hhbm5lbCh2KSB7CisgICAgcmV0dXJuIE1hdGgubWluKDI1NSwgTWF0aC5tYXgoMCwgTWF0aC5mbG9vcih2KSkpOworICB9CisKKyAgZnVuY3Rpb24gYnJpZ2h0ZW5Db2xvcihjKSB7CisgICAgdmFyIGs7CisgICAgaWYgKGMuciA+PSAyNDAgJiYgYy5nID49IDI0MCAmJiBjLmIgPj0gMjQwKQorICAgICAgayA9IDAuODA7CisgICAgZWxzZQorICAgICAgayA9IDEuNDU7CisKKyAgICByZXR1cm4geworICAgICAgcjogYm91bmRDaGFubmVsKGMuciAqIGspLAorICAgICAgZzogYm91bmRDaGFubmVsKGMuZyAqIGspLAorICAgICAgYjogYm91bmRDaGFubmVsKGMuYiAqIGspCisgICAgfTsKKyAgfQorICBmdW5jdGlvbiBkZXNhdHVyYXRlQ29sb3IoYykgeworICAgIHZhciB2YWx1ZSA9IGJvdW5kQ2hhbm5lbCgoYy5yICsgYy5nICsgYy5iKSAvIDMpOworICAgIHJldHVybiB7IHI6IHZhbHVlLCBnOiB2YWx1ZSwgYjogdmFsdWUgfTsKKyAgfQorICBmdW5jdGlvbiBjb2xvclRvUkdCU3RyaW5nKGMpIHsKKyAgICByZXR1cm4gJ3JnYignICsgYy5yICsgJywnICsgYy5nICsgJywnICsgYy5iICsgJyknOworICB9CisgIGZ1bmN0aW9uIGNvbG9yVG9SR0JBU3RyaW5nKGMsIGEpIHsKKyAgICByZXR1cm4gJ3JnYmEoJyArIGMuciArICcsJyArIGMuZyArICcsJyArIGMuYiArICcsJyArIGEgKyAnKSc7CisgIH0KKworICByZXR1cm4geworICAgIGJyaWdodGVuQ29sb3I6IGJyaWdodGVuQ29sb3IsCisgICAgZGVzYXR1cmF0ZUNvbG9yOiBkZXNhdHVyYXRlQ29sb3IsCisgICAgY29sb3JUb1JHQlN0cmluZzogY29sb3JUb1JHQlN0cmluZywKKyAgICBjb2xvclRvUkdCQVN0cmluZzogY29sb3JUb1JHQkFTdHJpbmcKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NvbnRhaW5lcl90aGF0X2RlY29yYXRlc19pdHNfY2hpbGRyZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWI1ZmNjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2NvbnRhaW5lcl90aGF0X2RlY29yYXRlc19pdHNfY2hpbGRyZW4uaHRtbApAQCAtMCwwICsxLDEwNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IENvbnRhaW5lciB0aGF0IGRlY29yYXRlcyBpdHMgY2hpbGRyZW4uCisgKi8KK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBDb250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4gPSB0ci51aS5iLmRlZmluZSgnZGl2Jyk7CisKKyAgQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLm9ic2VydmVyXyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKHRoaXMuZGlkTXV0YXRlXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMub2JzZXJ2ZXJfLm9ic2VydmUodGhpcywgeyBjaGlsZExpc3Q6IHRydWUgfSk7CisKKyAgICAgIC8vIHRleHRDb250ZW50IGlzIGEgdmFyaWFibGUgb24gcmVndWxhciBIVE1MRWxlbWVudHMuIEhvd2V2ZXIsIHdlIHdhbnQgdG8KKyAgICAgIC8vIGhvb2sgYW5kIHByZXZlbnQgd3JpdGVzIHRvIGl0LgorICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KAorICAgICAgICAgIHRoaXMsICd0ZXh0Q29udGVudCcsCisgICAgICAgICAgeyBnZXQ6IHVuZGVmaW5lZCwgc2V0OiB0aGlzLm9uU2V0VGV4dENvbnRlbnRffSk7CisgICAgfSwKKworICAgIGFwcGVuZENoaWxkOiBmdW5jdGlvbih4KSB7CisgICAgICBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZENoaWxkLmNhbGwodGhpcywgeCk7CisgICAgICB0aGlzLmRpZE11dGF0ZV8odGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKSk7CisgICAgfSwKKworICAgIGluc2VydEJlZm9yZTogZnVuY3Rpb24oeCwgeSkgeworICAgICAgSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZS5pbnNlcnRCZWZvcmUuY2FsbCh0aGlzLCB4LCB5KTsKKyAgICAgIHRoaXMuZGlkTXV0YXRlXyh0aGlzLm9ic2VydmVyXy50YWtlUmVjb3JkcygpKTsKKyAgICB9LAorCisgICAgcmVtb3ZlQ2hpbGQ6IGZ1bmN0aW9uKHgpIHsKKyAgICAgIEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hpbGQuY2FsbCh0aGlzLCB4KTsKKyAgICAgIHRoaXMuZGlkTXV0YXRlXyh0aGlzLm9ic2VydmVyXy50YWtlUmVjb3JkcygpKTsKKyAgICB9LAorCisgICAgcmVwbGFjZUNoaWxkOiBmdW5jdGlvbih4LCB5KSB7CisgICAgICBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLnJlcGxhY2VDaGlsZC5jYWxsKHRoaXMsIHgsIHkpOworICAgICAgdGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpOworICAgIH0sCisKKyAgICBvblNldFRleHRDb250ZW50XzogZnVuY3Rpb24odGV4dENvbnRlbnQpIHsKKyAgICAgIGlmICh0ZXh0Q29udGVudCAhPSAnJykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0ZXh0Q29udGVudCBjYW4gb25seSBiZSBzZXQgdG8gXCdcJy4nKTsKKyAgICAgIHRoaXMuY2xlYXIoKTsKKyAgICB9LAorCisgICAgY2xlYXI6IGZ1bmN0aW9uKCkgeworICAgICAgd2hpbGUgKHRoaXMubGFzdENoaWxkKQorICAgICAgICBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkLmNhbGwodGhpcywgdGhpcy5sYXN0Q2hpbGQpOworICAgICAgdGhpcy5kaWRNdXRhdGVfKHRoaXMub2JzZXJ2ZXJfLnRha2VSZWNvcmRzKCkpOworICAgIH0sCisKKyAgICBkaWRNdXRhdGVfOiBmdW5jdGlvbihyZWNvcmRzKSB7CisgICAgICB0aGlzLmJlZ2luRGVjb3JhdGluZ18oKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgYWRkZWROb2RlcyA9IHJlY29yZHNbaV0uYWRkZWROb2RlczsKKyAgICAgICAgaWYgKGFkZGVkTm9kZXMpIHsKKyAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFkZGVkTm9kZXMubGVuZ3RoOyBqKyspCisgICAgICAgICAgICB0aGlzLmRlY29yYXRlQ2hpbGRfKGFkZGVkTm9kZXNbal0pOworICAgICAgICB9CisgICAgICAgIHZhciByZW1vdmVkTm9kZXMgPSByZWNvcmRzW2ldLnJlbW92ZWROb2RlczsKKyAgICAgICAgaWYgKHJlbW92ZWROb2RlcykgeworICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcmVtb3ZlZE5vZGVzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICB0aGlzLnVuZGVjb3JhdGVDaGlsZF8ocmVtb3ZlZE5vZGVzW2pdKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHRoaXMuZG9uZURlY29yYXRpbmdGb3JOb3dfKCk7CisgICAgfSwKKworICAgIGRlY29yYXRlQ2hpbGRfOiBmdW5jdGlvbihjaGlsZCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgdW5kZWNvcmF0ZUNoaWxkXzogZnVuY3Rpb24oY2hpbGQpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIGJlZ2luRGVjb3JhdGluZ186IGZ1bmN0aW9uKCkgeworICAgIH0sCisKKyAgICBkb25lRGVjb3JhdGluZ0Zvck5vd186IGZ1bmN0aW9uKCkgeworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIENvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbjogQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuCisgIH07CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhhNDZlYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9jb250YWluZXJfdGhhdF9kZWNvcmF0ZXNfaXRzX2NoaWxkcmVuX3Rlc3QuaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb250YWluZXJfdGhhdF9kZWNvcmF0ZXNfaXRzX2NoaWxkcmVuLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgZnVuY3Rpb24gY3JlYXRlQ2hpbGQoKSB7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3Bhbi5kZWNvcmF0ZWQgPSBmYWxzZTsKKyAgICByZXR1cm4gc3BhbjsKKyAgfQorCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBTaW1wbGVDb250YWluZXIgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICdzaW1wbGUtY29udGFpbmVyJywgdHIudWkuYi5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4pOworCisgIFNpbXBsZUNvbnRhaW5lci5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5iLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbi5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZUNoaWxkXzogZnVuY3Rpb24oY2hpbGQpIHsKKyAgICAgIGFzc2VydC5pc0ZhbHNlKGNoaWxkLmRlY29yYXRlZCk7CisgICAgICBjaGlsZC5kZWNvcmF0ZWQgPSB0cnVlOworICAgIH0sCisKKyAgICB1bmRlY29yYXRlQ2hpbGRfOiBmdW5jdGlvbihjaGlsZCkgeworICAgICAgYXNzZXJ0LmlzVHJ1ZShjaGlsZC5kZWNvcmF0ZWQpOworICAgICAgY2hpbGQuZGVjb3JhdGVkID0gZmFsc2U7CisgICAgfQorICB9OworCisgIHRlc3QoJ2FkZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250YWluZXIgPSBuZXcgU2ltcGxlQ29udGFpbmVyKCk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUNoaWxkKCkpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVDaGlsZCgpKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlQ2hpbGQoKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShjb250YWluZXIuY2hpbGRyZW5bMF0uZGVjb3JhdGVkKTsKKyAgICBhc3NlcnQuaXNUcnVlKGNvbnRhaW5lci5jaGlsZHJlblsxXS5kZWNvcmF0ZWQpOworICAgIGFzc2VydC5pc1RydWUoY29udGFpbmVyLmNoaWxkcmVuWzJdLmRlY29yYXRlZCk7CisgIH0pOworCisgIHRlc3QoJ2NsZWFyVXNpbmdUZXh0Q29udGVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjMCA9IGNyZWF0ZUNoaWxkKCk7CisgICAgdmFyIGNvbnRhaW5lciA9IG5ldyBTaW1wbGVDb250YWluZXIoKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYzApOworICAgIGNvbnRhaW5lci50ZXh0Q29udGVudCA9ICcnOworICAgIGFzc2VydC5pc0ZhbHNlKGMwLmRlY29yYXRlZCk7CisgIH0pOworCisgIHRlc3QoJ2NsZWFyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMwID0gY3JlYXRlQ2hpbGQoKTsKKyAgICB2YXIgY29udGFpbmVyID0gbmV3IFNpbXBsZUNvbnRhaW5lcigpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjMCk7CisgICAgY29udGFpbmVyLmNsZWFyKCk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYzAuZGVjb3JhdGVkKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zZXJ0TmV3QmVmb3JlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMwID0gY3JlYXRlQ2hpbGQoKTsKKyAgICB2YXIgYzEgPSBjcmVhdGVDaGlsZCgpOworICAgIHZhciBjb250YWluZXIgPSBuZXcgU2ltcGxlQ29udGFpbmVyKCk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGMxKTsKKyAgICBjb250YWluZXIuaW5zZXJ0QmVmb3JlKGMwLCBjMSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShjMC5kZWNvcmF0ZWQpOworICAgIGFzc2VydC5pc1RydWUoYzEuZGVjb3JhdGVkKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zZXJ0RXhpc3RpbmdCZWZvcmUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYzAgPSBjcmVhdGVDaGlsZCgpOworICAgIHZhciBjMSA9IGNyZWF0ZUNoaWxkKCk7CisgICAgdmFyIGNvbnRhaW5lciA9IG5ldyBTaW1wbGVDb250YWluZXIoKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYzEpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjMCk7CisgICAgY29udGFpbmVyLmluc2VydEJlZm9yZShjMCwgYzEpOworICAgIGFzc2VydC5pc1RydWUoYzAuZGVjb3JhdGVkKTsKKyAgICBhc3NlcnQuaXNUcnVlKGMxLmRlY29yYXRlZCk7CisgIH0pOworCisgIHRlc3QoJ3Rlc3RSZXBsYWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGMwID0gY3JlYXRlQ2hpbGQoKTsKKyAgICB2YXIgYzEgPSBjcmVhdGVDaGlsZCgpOworICAgIHZhciBjb250YWluZXIgPSBuZXcgU2ltcGxlQ29udGFpbmVyKCk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGMwKTsKKyAgICBjb250YWluZXIucmVwbGFjZUNoaWxkKGMxLCBjMCk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYzAuZGVjb3JhdGVkKTsKKyAgICBhc3NlcnQuaXNUcnVlKGMxLmRlY29yYXRlZCk7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2QzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZDMuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2QzLmh0bWwKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kMy5odG1sCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvZGVlcF91dGlscy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2RlZXBfdXRpbHMuaHRtbApyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbApkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RlZXBfdXRpbHNfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RlZXBfdXRpbHNfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1NjEyZjYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZGVlcF91dGlsc190ZXN0Lmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBvcHRfY2xhc3MpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOworICAgIGlmIChvcHRfY2xhc3MpCisgICAgICBlbC5jbGFzc05hbWUgPSBvcHRfY2xhc3M7CisgICAgcmV0dXJuIGVsOworICB9CisKKyAgdGVzdCgndGVzdEZpbmREZWVwRWxlbWVudE1hdGNoaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSBjcmVhdGVFbGVtZW50KCdhJyk7CisgICAgdmFyIGFfID0gYS5jcmVhdGVTaGFkb3dSb290KCk7CisKKyAgICB2YXIgYiA9IGNyZWF0ZUVsZW1lbnQoJ2InKTsKKyAgICBhXy5hcHBlbmRDaGlsZChiKTsKKworICAgIHZhciBiXyA9IGIuY3JlYXRlU2hhZG93Um9vdCgpOworICAgIGJfLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2MnLCAneCcpKTsKKworICAgIHZhciBtID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZyhhLCAnYy54Jyk7CisgICAgYXNzZXJ0LmVxdWFsKG0sIGJfLmNoaWxkcmVuWzBdKTsKKyAgfSk7CisKKyAgdGVzdCgndGVzdEZpbmREZWVwRWxlbWVudHNNYXRjaGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gY3JlYXRlRWxlbWVudCgnYScpOworICAgIHZhciBhXyA9IGEuY3JlYXRlU2hhZG93Um9vdCgpOworCisgICAgdmFyIGIgPSBjcmVhdGVFbGVtZW50KCdiJyk7CisgICAgYV8uYXBwZW5kQ2hpbGQoYik7CisKKyAgICB2YXIgYl8gPSBiLmNyZWF0ZVNoYWRvd1Jvb3QoKTsKKyAgICBiXy5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdjJywgJ3gnKSk7CisgICAgYl8uYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnYycsICd4JykpOworCisgICAgdmFyIG0gPSB0ci5iLmZpbmREZWVwRWxlbWVudHNNYXRjaGluZyhhLCAnYy54Jyk7CisgICAgYXNzZXJ0LmVxdWFsKG1bMF0sIGJfLmNoaWxkcmVuWzBdKTsKKyAgICBhc3NlcnQuZXF1YWwobVsxXSwgYl8uY2hpbGRyZW5bMV0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kb21faGVscGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3MDVjMzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbApAQCAtMCwwICsxLDI4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zZXR0aW5ncy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHN0eWxlPgorKiAvZGVlcC8gLmxhYmVsZWQtY2hlY2tib3ggeworICBkaXNwbGF5OiBmbGV4OworICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorPC9zdHlsZT4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKworICBmdW5jdGlvbiBjcmVhdGVTcGFuKG9wdF9kaWN0aW9uYXJ5KSB7CisgICAgdmFyIHNwYW5FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBpZiAob3B0X2RpY3Rpb25hcnkpIHsKKyAgICAgIGlmIChvcHRfZGljdGlvbmFyeS5jbGFzc05hbWUpCisgICAgICAgIHNwYW5FbC5jbGFzc05hbWUgPSBvcHRfZGljdGlvbmFyeS5jbGFzc05hbWU7CisgICAgICBpZiAob3B0X2RpY3Rpb25hcnkudGV4dENvbnRlbnQpCisgICAgICAgIHNwYW5FbC50ZXh0Q29udGVudCA9IG9wdF9kaWN0aW9uYXJ5LnRleHRDb250ZW50OworICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5LnBhcmVudCkKKyAgICAgICAgb3B0X2RpY3Rpb25hcnkucGFyZW50LmFwcGVuZENoaWxkKHNwYW5FbCk7CisgICAgICBpZiAob3B0X2RpY3Rpb25hcnkuYm9sZCkKKyAgICAgICAgc3BhbkVsLnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCc7CisgICAgICBpZiAob3B0X2RpY3Rpb25hcnkubWFyZ2luTGVmdCkKKyAgICAgICAgc3BhbkVsLnN0eWxlLm1hcmdpbkxlZnQgPSBvcHRfZGljdGlvbmFyeS5tYXJnaW5MZWZ0OworICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5Lm1hcmdpblJpZ2h0KQorICAgICAgICBzcGFuRWwuc3R5bGUubWFyZ2luUmlnaHQgPSBvcHRfZGljdGlvbmFyeS5tYXJnaW5SaWdodDsKKyAgICAgIGlmIChvcHRfZGljdGlvbmFyeS5iYWNrZ3JvdW5kQ29sb3IpCisgICAgICAgIHNwYW5FbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBvcHRfZGljdGlvbmFyeS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICBpZiAob3B0X2RpY3Rpb25hcnkuY29sb3IpCisgICAgICAgIHNwYW5FbC5zdHlsZS5jb2xvciA9IG9wdF9kaWN0aW9uYXJ5LmNvbG9yOworICAgIH0KKyAgICByZXR1cm4gc3BhbkVsOworICB9OworCisgIGZ1bmN0aW9uIGNyZWF0ZURpdihvcHRfZGljdGlvbmFyeSkgeworICAgIHZhciBkaXZFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGlmIChvcHRfZGljdGlvbmFyeSkgeworICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5LmNsYXNzTmFtZSkKKyAgICAgICAgZGl2RWwuY2xhc3NOYW1lID0gb3B0X2RpY3Rpb25hcnkuY2xhc3NOYW1lOworICAgICAgaWYgKG9wdF9kaWN0aW9uYXJ5LnBhcmVudCkKKyAgICAgICAgb3B0X2RpY3Rpb25hcnkucGFyZW50LmFwcGVuZENoaWxkKGRpdkVsKTsKKyAgICAgIGlmIChvcHRfZGljdGlvbmFyeS50ZXh0Q29udGVudCkKKyAgICAgICAgZGl2RWwudGV4dENvbnRlbnQgPSBvcHRfZGljdGlvbmFyeS50ZXh0Q29udGVudDsKKyAgICAgIGlmIChvcHRfZGljdGlvbmFyeS5tYXhXaWR0aCkKKyAgICAgICAgZGl2RWwuc3R5bGUubWF4V2lkdGggPSBvcHRfZGljdGlvbmFyeS5tYXhXaWR0aDsKKyAgICB9CisgICAgcmV0dXJuIGRpdkVsOworICB9OworCisgIGZ1bmN0aW9uIGNyZWF0ZVNjb3BlZFN0eWxlKHN0eWxlQ29udGVudCkgeworICAgIHZhciBzdHlsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKKyAgICBzdHlsZUVsLnNjb3BlZCA9IHRydWU7CisgICAgc3R5bGVFbC5pbm5lckhUTUwgPSBzdHlsZUNvbnRlbnQ7CisgICAgcmV0dXJuIHN0eWxlRWw7CisgIH0KKworICBmdW5jdGlvbiB2YWx1ZXNFcXVhbChhLCBiKSB7CisgICAgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSAmJiBiIGluc3RhbmNlb2YgQXJyYXkpCisgICAgICByZXR1cm4gYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKTsKKyAgICByZXR1cm4gYSA9PT0gYjsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yKAorICAgICAgdGFyZ2V0RWwsIHRhcmdldEVsUHJvcGVydHksCisgICAgICBzZXR0aW5nc0tleSwgZGVmYXVsdFZhbHVlLAorICAgICAgaXRlbXMsIG9wdF9uYW1lc3BhY2UpIHsKKyAgICB2YXIgZGVmYXVsdFZhbHVlSW5kZXg7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIGl0ZW0gPSBpdGVtc1tpXTsKKyAgICAgIGlmICh2YWx1ZXNFcXVhbChpdGVtLnZhbHVlLCBkZWZhdWx0VmFsdWUpKSB7CisgICAgICAgIGRlZmF1bHRWYWx1ZUluZGV4ID0gaTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIGlmIChkZWZhdWx0VmFsdWVJbmRleCA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZWZhdWx0VmFsdWUgbXVzdCBiZSBpbiB0aGUgaXRlbXMgbGlzdCcpOworCisgICAgdmFyIHNlbGVjdG9yRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKKyAgICBzZWxlY3RvckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldOworICAgICAgdmFyIG9wdGlvbkVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CisgICAgICBvcHRpb25FbC50ZXh0Q29udGVudCA9IGl0ZW0ubGFiZWw7CisgICAgICBvcHRpb25FbC50YXJnZXRQcm9wZXJ0eVZhbHVlID0gaXRlbS52YWx1ZTsKKyAgICAgIHNlbGVjdG9yRWwuYXBwZW5kQ2hpbGQob3B0aW9uRWwpOworICAgIH0KKyAgICBmdW5jdGlvbiBvbkNoYW5nZShlKSB7CisgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RvckVsLnNlbGVjdGVkT3B0aW9uc1swXS50YXJnZXRQcm9wZXJ0eVZhbHVlOworICAgICAgdHIuYi5TZXR0aW5ncy5zZXQoc2V0dGluZ3NLZXksIHZhbHVlLCBvcHRfbmFtZXNwYWNlKTsKKyAgICAgIHRhcmdldEVsW3RhcmdldEVsUHJvcGVydHldID0gdmFsdWU7CisgICAgfQorICAgIHZhciBvbGRTZXR0ZXIgPSB0YXJnZXRFbC5fX2xvb2t1cFNldHRlcl9fKCdzZWxlY3RlZEluZGV4Jyk7CisgICAgc2VsZWN0b3JFbC5fX2RlZmluZUdldHRlcl9fKCdzZWxlY3RlZFZhbHVlJywgZnVuY3Rpb24odikgeworICAgICAgcmV0dXJuIHNlbGVjdG9yRWwuY2hpbGRyZW5bc2VsZWN0b3JFbC5zZWxlY3RlZEluZGV4XS50YXJnZXRQcm9wZXJ0eVZhbHVlOworICAgIH0pOworICAgIHNlbGVjdG9yRWwuX19kZWZpbmVTZXR0ZXJfXygnc2VsZWN0ZWRWYWx1ZScsIGZ1bmN0aW9uKHYpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0b3JFbC5jaGlsZHJlbi5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RvckVsLmNoaWxkcmVuW2ldLnRhcmdldFByb3BlcnR5VmFsdWU7CisgICAgICAgIGlmICh2YWx1ZXNFcXVhbCh2YWx1ZSwgdikpIHsKKyAgICAgICAgICB2YXIgY2hhbmdlZCA9IHNlbGVjdG9yRWwuc2VsZWN0ZWRJbmRleCAhPSBpOworICAgICAgICAgIGlmIChjaGFuZ2VkKSB7CisgICAgICAgICAgICBzZWxlY3RvckVsLnNlbGVjdGVkSW5kZXggPSBpOworICAgICAgICAgICAgb25DaGFuZ2UoKTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICB9CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIHZhbHVlJyk7CisgICAgfSk7CisKKyAgICB2YXIgaW5pdGlhbFZhbHVlID0gdHIuYi5TZXR0aW5ncy5nZXQoCisgICAgICAgIHNldHRpbmdzS2V5LCBkZWZhdWx0VmFsdWUsIG9wdF9uYW1lc3BhY2UpOworICAgIHZhciBkaWRTZXQgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdG9yRWwuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAgICAgIGlmICh2YWx1ZXNFcXVhbChzZWxlY3RvckVsLmNoaWxkcmVuW2ldLnRhcmdldFByb3BlcnR5VmFsdWUsCisgICAgICAgICAgaW5pdGlhbFZhbHVlKSkgeworICAgICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICB0YXJnZXRFbFt0YXJnZXRFbFByb3BlcnR5XSA9IGluaXRpYWxWYWx1ZTsKKyAgICAgICAgc2VsZWN0b3JFbC5zZWxlY3RlZEluZGV4ID0gaTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIGlmICghZGlkU2V0KSB7CisgICAgICBzZWxlY3RvckVsLnNlbGVjdGVkSW5kZXggPSBkZWZhdWx0VmFsdWVJbmRleDsKKyAgICAgIHRhcmdldEVsW3RhcmdldEVsUHJvcGVydHldID0gZGVmYXVsdFZhbHVlOworICAgIH0KKworICAgIHJldHVybiBzZWxlY3RvckVsOworICB9CisKKyAgZnVuY3Rpb24gY3JlYXRlRWRpdENhdGVnb3J5U3BhbihvcHRpb25Hcm91cEVsLCB0YXJnZXRFbCkgeworICAgIHZhciBzcGFuRWwgPSBjcmVhdGVTcGFuKHtjbGFzc05hbWU6ICdlZGl0LWNhdGVnb3JpZXMnfSk7CisgICAgc3BhbkVsLnRleHRDb250ZW50ID0gJ0VkaXQgY2F0ZWdvcmllcyc7CisgICAgc3BhbkVsLmNsYXNzTGlzdC5hZGQoJ2xhYmVsZWQtb3B0aW9uJyk7CisKKyAgICBzcGFuRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKKyAgICAgIHRhcmdldEVsLm9uQ2xpY2tFZGl0Q2F0ZWdvcmllcygpOworICAgIH0pOworICAgIHJldHVybiBzcGFuRWw7CisgIH0KKworICBmdW5jdGlvbiBjcmVhdGVPcHRpb25Hcm91cCh0YXJnZXRFbCwgdGFyZ2V0RWxQcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3NLZXksIGRlZmF1bHRWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMpIHsKKyAgICBmdW5jdGlvbiBvbkNoYW5nZSgpIHsKKyAgICAgIHZhciB2YWx1ZSA9IFtdOworICAgICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoKQorICAgICAgICB2YWx1ZSA9IHRoaXMudmFsdWUuc3BsaXQoJywnKTsKKyAgICAgIHRyLmIuU2V0dGluZ3Muc2V0KHNldHRpbmdzS2V5LCB2YWx1ZSk7CisgICAgICB0YXJnZXRFbFt0YXJnZXRFbFByb3BlcnR5XSA9IHZhbHVlOworICAgIH0KKworICAgIHZhciBvcHRpb25Hcm91cEVsID0gY3JlYXRlU3Bhbih7Y2xhc3NOYW1lOiAnbGFiZWxlZC1vcHRpb24tZ3JvdXAnfSk7CisgICAgdmFyIGluaXRpYWxWYWx1ZSA9IHRyLmIuU2V0dGluZ3MuZ2V0KHNldHRpbmdzS2V5LCBkZWZhdWx0VmFsdWUpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07CisgICAgICB2YXIgaWQgPSAnY2F0ZWdvcnktcHJlc2V0LScgKyBpdGVtLmxhYmVsLnJlcGxhY2UoLyAvZywgJy0nKTsKKworICAgICAgdmFyIHJhZGlvRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworICAgICAgcmFkaW9FbC50eXBlID0gJ3JhZGlvJzsKKyAgICAgIHJhZGlvRWwuc2V0QXR0cmlidXRlKCdpZCcsIGlkKTsKKyAgICAgIHJhZGlvRWwuc2V0QXR0cmlidXRlKCduYW1lJywgJ2NhdGVnb3J5LXByZXNldHMtZ3JvdXAnKTsKKyAgICAgIHJhZGlvRWwuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGl0ZW0udmFsdWUpOworICAgICAgcmFkaW9FbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZS5iaW5kKHJhZGlvRWwsIHRhcmdldEVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEVsUHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3NLZXkpKTsKKyAgICAgIGlmICh2YWx1ZXNFcXVhbChpbml0aWFsVmFsdWUsIGl0ZW0udmFsdWUpKQorICAgICAgICByYWRpb0VsLmNoZWNrZWQgPSB0cnVlOworCisgICAgICB2YXIgbGFiZWxFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7CisgICAgICBsYWJlbEVsLnRleHRDb250ZW50ID0gaXRlbS5sYWJlbDsKKyAgICAgIGxhYmVsRWwuc2V0QXR0cmlidXRlKCdmb3InLCBpZCk7CisKKyAgICAgIHZhciBzcGFuRWwgPSBjcmVhdGVTcGFuKHtjbGFzc05hbWU6ICdsYWJlbGVkLW9wdGlvbid9KTsKKyAgICAgIHNwYW5FbC5hcHBlbmRDaGlsZChyYWRpb0VsKTsKKyAgICAgIHNwYW5FbC5hcHBlbmRDaGlsZChsYWJlbEVsKTsKKworICAgICAgc3BhbkVsLl9fZGVmaW5lU2V0dGVyX18oJ2NoZWNrZWQnLCBmdW5jdGlvbihvcHRfYm9vbCkgeworICAgICAgICB2YXIgY2hhbmdlZCA9IHJhZGlvRWwuY2hlY2tlZCAhPT0gKCEhb3B0X2Jvb2wpOworICAgICAgICBpZiAoIWNoYW5nZWQpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHJhZGlvRWwuY2hlY2tlZCA9ICEhb3B0X2Jvb2w7CisgICAgICAgIG9uQ2hhbmdlKCk7CisgICAgICB9KTsKKyAgICAgIHNwYW5FbC5fX2RlZmluZUdldHRlcl9fKCdjaGVja2VkJywgZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiByYWRpb0VsLmNoZWNrZWQ7CisgICAgICB9KTsKKworICAgICAgb3B0aW9uR3JvdXBFbC5hcHBlbmRDaGlsZChzcGFuRWwpOworICAgIH0KKyAgICBvcHRpb25Hcm91cEVsLmFwcGVuZENoaWxkKGNyZWF0ZUVkaXRDYXRlZ29yeVNwYW4ob3B0aW9uR3JvdXBFbCwgdGFyZ2V0RWwpKTsKKyAgICAvLyBTaW5jZSB0aGlzIG9wdGlvbiBncm91cCBlbGVtZW50IGlzIG5vdCB5ZXQgYWRkZWQgdG8gdGhlIHRyZWUsCisgICAgLy8gcXVlcnlTZWxlY3RvciB3aWxsIGZhaWwgZHVyaW5nIHVwZGF0ZUVkaXRDYXRlZ29yaWVzU3RhdHVzXyBjYWxsLgorICAgIC8vIEhlbmNlLCBjcmVhdGluZyB0aGUgZWxlbWVudCB3aXRoIHRoZSAnZXhwYW5kZWQnIGNsYXNzbGlzdCBjYXRlZ29yeQorICAgIC8vIGFkZGVkLCBpZiBsYXN0IHNlbGVjdGVkIHZhbHVlIHdhcyAnTWFudWFsJyBzZWxlY3Rpb24uCisgICAgaWYgKCFpbml0aWFsVmFsdWUubGVuZ3RoKQorICAgICAgb3B0aW9uR3JvdXBFbC5jbGFzc0xpc3QuYWRkKCdjYXRlZ29yaWVzLWV4cGFuZGVkJyk7CisgICAgdGFyZ2V0RWxbdGFyZ2V0RWxQcm9wZXJ0eV0gPSBpbml0aWFsVmFsdWU7CisKKyAgICByZXR1cm4gb3B0aW9uR3JvdXBFbDsKKyAgfQorCisgIHZhciBuZXh0Q2hlY2tib3hJZCA9IDE7CisgIGZ1bmN0aW9uIGNyZWF0ZUNoZWNrQm94KHRhcmdldEVsLCB0YXJnZXRFbFByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc0tleSwgZGVmYXVsdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCkgeworICAgIHZhciBidXR0b25FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisgICAgYnV0dG9uRWwudHlwZSA9ICdjaGVja2JveCc7CisKKyAgICB2YXIgaW5pdGlhbFZhbHVlID0gdHIuYi5TZXR0aW5ncy5nZXQoc2V0dGluZ3NLZXksIGRlZmF1bHRWYWx1ZSk7CisgICAgYnV0dG9uRWwuY2hlY2tlZCA9ICEhaW5pdGlhbFZhbHVlOworICAgIGlmICh0YXJnZXRFbCkKKyAgICAgIHRhcmdldEVsW3RhcmdldEVsUHJvcGVydHldID0gaW5pdGlhbFZhbHVlOworCisgICAgZnVuY3Rpb24gb25DaGFuZ2UoKSB7CisgICAgICB0ci5iLlNldHRpbmdzLnNldChzZXR0aW5nc0tleSwgYnV0dG9uRWwuY2hlY2tlZCk7CisgICAgICBpZiAodGFyZ2V0RWwpCisgICAgICAgIHRhcmdldEVsW3RhcmdldEVsUHJvcGVydHldID0gYnV0dG9uRWwuY2hlY2tlZDsKKyAgICB9CisKKyAgICBidXR0b25FbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7CisKKyAgICB2YXIgaWQgPSAnI2NoZWNrYm94LScgKyBuZXh0Q2hlY2tib3hJZCsrOworCisgICAgdmFyIHNwYW5FbCA9IGNyZWF0ZVNwYW4oe2NsYXNzTmFtZTogJ2xhYmVsZWQtY2hlY2tib3gnfSk7CisgICAgYnV0dG9uRWwuc2V0QXR0cmlidXRlKCdpZCcsIGlkKTsKKworICAgIHZhciBsYWJlbEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTsKKyAgICBsYWJlbEVsLnRleHRDb250ZW50ID0gbGFiZWw7CisgICAgbGFiZWxFbC5zZXRBdHRyaWJ1dGUoJ2ZvcicsIGlkKTsKKyAgICBzcGFuRWwuYXBwZW5kQ2hpbGQoYnV0dG9uRWwpOworICAgIHNwYW5FbC5hcHBlbmRDaGlsZChsYWJlbEVsKTsKKworICAgIHNwYW5FbC5fX2RlZmluZVNldHRlcl9fKCdjaGVja2VkJywgZnVuY3Rpb24ob3B0X2Jvb2wpIHsKKyAgICAgIHZhciBjaGFuZ2VkID0gYnV0dG9uRWwuY2hlY2tlZCAhPT0gKCEhb3B0X2Jvb2wpOworICAgICAgaWYgKCFjaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGJ1dHRvbkVsLmNoZWNrZWQgPSAhIW9wdF9ib29sOworICAgICAgb25DaGFuZ2UoKTsKKyAgICB9KTsKKyAgICBzcGFuRWwuX19kZWZpbmVHZXR0ZXJfXygnY2hlY2tlZCcsIGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIGJ1dHRvbkVsLmNoZWNrZWQ7CisgICAgfSk7CisKKyAgICByZXR1cm4gc3BhbkVsOworICB9CisKKyAgZnVuY3Rpb24gaXNFbGVtZW50QXR0YWNoZWRUb0RvY3VtZW50KGVsKSB7CisgICAgdmFyIGN1ciA9IGVsOworICAgIHdoaWxlIChjdXIucGFyZW50Tm9kZSkKKyAgICAgIGN1ciA9IGN1ci5wYXJlbnROb2RlOworICAgIHJldHVybiAoY3VyID09PSBlbC5vd25lckRvY3VtZW50IHx8IGN1ci5ub2RlTmFtZSA9PT0gJyNkb2N1bWVudC1mcmFnbWVudCcpOworICB9CisKKyAgZnVuY3Rpb24gYXNIVE1MT3JUZXh0Tm9kZSh2YWx1ZSwgb3B0X293bmVyRG9jdW1lbnQpIHsKKyAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOb2RlKQorICAgICAgcmV0dXJuIHZhbHVlOworICAgIHZhciBvd25lckRvY3VtZW50ID0gb3B0X293bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7CisgICAgcmV0dXJuIG93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodmFsdWUpOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBjcmVhdGVTcGFuOiBjcmVhdGVTcGFuLAorICAgIGNyZWF0ZURpdjogY3JlYXRlRGl2LAorICAgIGNyZWF0ZVNjb3BlZFN0eWxlOiBjcmVhdGVTY29wZWRTdHlsZSwKKyAgICBjcmVhdGVTZWxlY3RvcjogY3JlYXRlU2VsZWN0b3IsCisgICAgY3JlYXRlT3B0aW9uR3JvdXA6IGNyZWF0ZU9wdGlvbkdyb3VwLAorICAgIGNyZWF0ZUNoZWNrQm94OiBjcmVhdGVDaGVja0JveCwKKyAgICBpc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQ6IGlzRWxlbWVudEF0dGFjaGVkVG9Eb2N1bWVudCwKKyAgICBhc0hUTUxPclRleHROb2RlOiBhc0hUTUxPclRleHROb2RlCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RvbV9oZWxwZXJzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kb21faGVscGVyc190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2M2JhMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kb21faGVscGVyc190ZXN0Lmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50Ll9jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7CisKKyAgdGVzdCgnc2ltcGxlU3BhbkFuZERpdicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXZFbCA9IHRyLnVpLmIuY3JlYXRlRGl2KHsKKyAgICAgIGNsYXNzTmFtZTogJ2EtZGl2LWNsYXNzJywgcGFyZW50OiBkb2N1bWVudC5ib2R5CisgICAgfSk7CisgICAgdmFyIHRlc3RUZXh0ID0gJ3NvbWUgc3BhbiB0ZXh0JzsKKyAgICB2YXIgc3BhbkVsID0gdHIudWkuYi5jcmVhdGVTcGFuKHsKKyAgICAgIGNsYXNzTmFtZTogJ2Etc3Bhbi1jbGFzcycsCisgICAgICB0ZXh0Q29udGVudDogdGVzdFRleHQsCisgICAgICBwYXJlbnQ6IGRpdkVsCisgICAgfSk7CisgICAgdmFyIGVsdEluRG9jdW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYS1kaXYtY2xhc3M+LmEtc3Bhbi1jbGFzcycpOworICAgIGFzc2VydC5lcXVhbChlbHRJbkRvY3VtZW50LnRleHRDb250ZW50LCB0ZXN0VGV4dCk7CisgICAgZWx0SW5Eb2N1bWVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGVsdEluRG9jdW1lbnQpOworICB9KTsKKworICB0ZXN0KCdjaGVja2JveEZyb21EZWZhdWx0cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YXJnZXQgPSB7Zm9vOiB1bmRlZmluZWR9OworICAgIHZhciBjYiA9IHRyLnVpLmIuY3JlYXRlQ2hlY2tCb3godGFyZ2V0LCAnZm9vJywgJ215Q2hlY2tCb3gnLCBmYWxzZSwgJ0ZvbycpOworICAgIGFzc2VydC5pc0ZhbHNlKHRhcmdldC5mb28pOworICB9KTsKKworICB0ZXN0KCdjaGVja2JveEZyb21TZXR0aW5ncycsIGZ1bmN0aW9uKCkgeworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdteUNoZWNrQm94JywgdHJ1ZSk7CisgICAgdmFyIHRhcmdldCA9IHtmb286IHVuZGVmaW5lZH07CisgICAgdmFyIGNiID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCh0YXJnZXQsICdmb28nLCAnbXlDaGVja0JveCcsIGZhbHNlLCAnRm9vJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0YXJnZXQuZm9vKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tib3hDaGFuZ2VkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9IHtmb286IHVuZGVmaW5lZH07CisgICAgdmFyIGNiID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCh0YXJnZXQsICdmb28nLCAnbXlDaGVja0JveCcsIGZhbHNlLCAnRm9vJyk7CisgICAgY2IuY2hlY2tlZCA9IHRydWU7CisKKyAgICBhc3NlcnQuaXNUcnVlKHRyLmIuU2V0dGluZ3MuZ2V0KCdteUNoZWNrQm94JywgdW5kZWZpbmVkKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0YXJnZXQuZm9vKTsKKyAgfSk7CisKKyAgdGVzdCgnc2VsZWN0b3JTZXR0aW5nc0FscmVheVNldCcsIGZ1bmN0aW9uKCkgeworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdteVNjYWxlJywgMC4yNSk7CisKKyAgICB2YXIgdGFyZ2V0ID0geworICAgICAgc2NhbGU6IDMxNAorICAgIH07CisgICAgdmFyIHNlbCA9IHRyLnVpLmIuY3JlYXRlU2VsZWN0b3IoCisgICAgICAgIHRhcmdldCwgJ3NjYWxlJywKKyAgICAgICAgJ215U2NhbGUnLCAwLjM3NSwKKyAgICAgICAgW3tsYWJlbDogJzYuMjUlJywgdmFsdWU6IDAuMDYyNX0sCisgICAgICAgICB7bGFiZWw6ICcxMi41JScsIHZhbHVlOiAwLjEyNX0sCisgICAgICAgICB7bGFiZWw6ICcyNSUnLCB2YWx1ZTogMC4yNX0sCisgICAgICAgICB7bGFiZWw6ICczNy41JScsIHZhbHVlOiAwLjM3NX0sCisgICAgICAgICB7bGFiZWw6ICc1MCUnLCB2YWx1ZTogMC41fSwKKyAgICAgICAgIHtsYWJlbDogJzc1JScsIHZhbHVlOiAwLjc1fSwKKyAgICAgICAgIHtsYWJlbDogJzEwMCUnLCB2YWx1ZTogMX0sCisgICAgICAgICB7bGFiZWw6ICcyMDAlJywgdmFsdWU6IDJ9CisgICAgICAgIF0pOworICAgIGFzc2VydC5lcXVhbCh0YXJnZXQuc2NhbGUsIDAuMjUpOworICAgIGFzc2VydC5lcXVhbChzZWwuc2VsZWN0ZWRJbmRleCwgMik7CisgIH0pOworCisgIHRlc3QoJ3NlbGVjdG9yU2V0dGluZ3NEZWZhdWx0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9IHsKKyAgICAgIHNjYWxlOiAzMTQKKyAgICB9OworICAgIHZhciBzZWwgPSB0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICB0YXJnZXQsICdzY2FsZScsCisgICAgICAgICdteVNjYWxlJywgMC4zNzUsCisgICAgICAgIFt7bGFiZWw6ICc2LjI1JScsIHZhbHVlOiAwLjA2MjV9LAorICAgICAgICAge2xhYmVsOiAnMTIuNSUnLCB2YWx1ZTogMC4xMjV9LAorICAgICAgICAge2xhYmVsOiAnMjUlJywgdmFsdWU6IDAuMjV9LAorICAgICAgICAge2xhYmVsOiAnMzcuNSUnLCB2YWx1ZTogMC4zNzV9LAorICAgICAgICAge2xhYmVsOiAnNTAlJywgdmFsdWU6IDAuNX0sCisgICAgICAgICB7bGFiZWw6ICc3NSUnLCB2YWx1ZTogMC43NX0sCisgICAgICAgICB7bGFiZWw6ICcxMDAlJywgdmFsdWU6IDF9LAorICAgICAgICAge2xhYmVsOiAnMjAwJScsIHZhbHVlOiAyfQorICAgICAgICBdKTsKKyAgICBhc3NlcnQuZXF1YWwodGFyZ2V0LnNjYWxlLCAwLjM3NSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbC5zZWxlY3RlZEluZGV4LCAzKTsKKyAgfSk7CisKKyAgdGVzdCgnc2VsZWN0b3JTZXR0aW5nc0NoYW5nZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0geworICAgICAgc2NhbGU6IDMxNAorICAgIH07CisgICAgdmFyIHNlbCA9IHRyLnVpLmIuY3JlYXRlU2VsZWN0b3IoCisgICAgICAgIHRhcmdldCwgJ3NjYWxlJywKKyAgICAgICAgJ215U2NhbGUnLCAwLjM3NSwKKyAgICAgICAgW3tsYWJlbDogJzYuMjUlJywgdmFsdWU6IDAuMDYyNX0sCisgICAgICAgICB7bGFiZWw6ICcxMi41JScsIHZhbHVlOiAwLjEyNX0sCisgICAgICAgICB7bGFiZWw6ICcyNSUnLCB2YWx1ZTogMC4yNX0sCisgICAgICAgICB7bGFiZWw6ICczNy41JScsIHZhbHVlOiAwLjM3NX0sCisgICAgICAgICB7bGFiZWw6ICc1MCUnLCB2YWx1ZTogMC41fSwKKyAgICAgICAgIHtsYWJlbDogJzc1JScsIHZhbHVlOiAwLjc1fSwKKyAgICAgICAgIHtsYWJlbDogJzEwMCUnLCB2YWx1ZTogMX0sCisgICAgICAgICB7bGFiZWw6ICcyMDAlJywgdmFsdWU6IDJ9CisgICAgICAgIF0pOworICAgIGFzc2VydC5lcXVhbChzZWwuc2VsZWN0ZWRWYWx1ZSwgMC4zNzUpOworICAgIHNlbC5zZWxlY3RlZFZhbHVlID0gMC43NTsKKyAgICBhc3NlcnQuZXF1YWwodGFyZ2V0LnNjYWxlLCAwLjc1KTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsLnNlbGVjdGVkVmFsdWUsIDAuNzUpOworICAgIGFzc2VydC5lcXVhbCh1bmRlZmluZWQpLCAwLjc1LCB0ci5iLlNldHRpbmdzLmdldCgnbXlTY2FsZScpOworICB9KTsKKworICB0ZXN0KCdhc0hUTUxPclRleHROb2RlX3N0cmluZycsIGZ1bmN0aW9uKCkgeworICAgIC8vIERlZmF1bHQgb3duZXIgZG9jdW1lbnQuCisgICAgdmFyIG5vZGUgPSB0ci51aS5iLmFzSFRNTE9yVGV4dE5vZGUoJ0hlbGxvLCBXb3JsZCEnKTsKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihub2RlLCBOb2RlKTsKKyAgICBhc3NlcnQuZXF1YWwobm9kZS50ZXh0Q29udGVudCwgJ0hlbGxvLCBXb3JsZCEnKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwobm9kZS5vd25lckRvY3VtZW50LCBkb2N1bWVudCk7CisKKyAgICAvLyBDdXN0b20gb3duZXIgZG9jdW1lbnQuCisgICAgdmFyIG5vZGUgPSB0ci51aS5iLmFzSFRNTE9yVGV4dE5vZGUoJ0J5ZSwgV29ybGQhJywgVEhJU19ET0MpOworICAgIGFzc2VydC5pbnN0YW5jZU9mKG5vZGUsIE5vZGUpOworICAgIGFzc2VydC5lcXVhbChub2RlLnRleHRDb250ZW50LCAnQnllLCBXb3JsZCEnKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwobm9kZS5vd25lckRvY3VtZW50LCBUSElTX0RPQyk7CisgIH0pOworCisgIHRlc3QoJ2FzSFRNTE9yVGV4dE5vZGVfbm9kZScsIGZ1bmN0aW9uKCkgeworICAgIC8vIE5vZGUgb2JqZWN0LiBPd25lciBkb2N1bWVudCBzaG91bGQgTk9UIGJlIG1vZGlmaWVkLgorICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0hpJywgVEhJU19ET0MpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ci51aS5iLmFzSFRNTE9yVGV4dE5vZGUobm9kZSksIG5vZGUpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChub2RlLm93bmVyRG9jdW1lbnQsIGRvY3VtZW50KTsKKworICAgIC8vIEhUTUxFbGVtZW50IG9iamVjdC4gT3duZXIgZG9jdW1lbnQgc2hvdWxkIE5PVCBiZSBtb2RpZmllZC4KKyAgICB2YXIgbm9kZSA9IFRISVNfRE9DLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ci51aS5iLmFzSFRNTE9yVGV4dE5vZGUobm9kZSksIG5vZGUpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbChub2RlLm93bmVyRG9jdW1lbnQsIFRISVNfRE9DKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2RyYWdfaGFuZGxlLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9kcmFnX2hhbmRsZS5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZS5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RyYWdfaGFuZGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdlOWMzMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZS5odG1sCkBAIC0wLDAgKzEsMTY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvYmFzZS9kcmFnX2hhbmRsZS5jc3MiPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIERldGVjdHMgd2hlbiB1c2VyIGNsaWNrcyBoYW5kbGUgZGV0ZXJtaW5lcyBuZXcgaGVpZ2h0IG9mIGNvbnRhaW5lciBiYXNlZAorICAgKiBvbiB1c2VyJ3MgdmVydGljYWwgbW91c2UgbW92ZSBhbmQgcmVzaXplcyB0aGUgdGFyZ2V0LgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0hUTUxEaXZFbGVtZW50fQorICAgKiBZb3Ugd2lsbCBuZWVkIHRvIHNldCB0YXJnZXQgdG8gYmUgdGhlIGRyYWdnYWJsZSBlbGVtZW50CisgICAqLworICB2YXIgRHJhZ0hhbmRsZSA9IHRyLnVpLmIuZGVmaW5lKCd4LWRyYWctaGFuZGxlJyk7CisKKyAgRHJhZ0hhbmRsZS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmxhc3RNb3VzZVBvc18gPSAwOworICAgICAgdGhpcy5vbk1vdXNlTW92ZV8gPSB0aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5vbk1vdXNlVXBfID0gdGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyk7CisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd25fKTsKKyAgICAgIHRoaXMudGFyZ2V0XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuaG9yaXpvbnRhbCA9IHRydWU7CisgICAgICB0aGlzLm9ic2VydmVyXyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKAorICAgICAgICAgIHRoaXMuZGlkVGFyZ2V0TXV0YXRlXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMudGFyZ2V0U2l6ZXNCeU1vZGVLZXlfID0ge307CisgICAgfSwKKworICAgIGdldCBtb2RlS2V5XygpIHsKKyAgICAgIHJldHVybiB0aGlzLnRhcmdldF8uY2xhc3NOYW1lID09ICcnID8gJy4nIDogdGhpcy50YXJnZXRfLmNsYXNzTmFtZTsKKyAgICB9LAorCisgICAgZ2V0IHRhcmdldCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnRhcmdldF87CisgICAgfSwKKworICAgIHNldCB0YXJnZXQodGFyZ2V0KSB7CisgICAgICB0aGlzLm9ic2VydmVyXy5kaXNjb25uZWN0KCk7CisgICAgICB0aGlzLnRhcmdldF8gPSB0YXJnZXQ7CisgICAgICBpZiAoIXRoaXMudGFyZ2V0XykKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5vYnNlcnZlcl8ub2JzZXJ2ZSh0aGlzLnRhcmdldF8sIHsKKyAgICAgICAgYXR0cmlidXRlczogdHJ1ZSwKKyAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10KKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXQgaG9yaXpvbnRhbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmhvcml6b250YWxfOworICAgIH0sCisKKyAgICBzZXQgaG9yaXpvbnRhbChoKSB7CisgICAgICB0aGlzLmhvcml6b250YWxfID0gaDsKKyAgICAgIGlmICh0aGlzLmhvcml6b250YWxfKQorICAgICAgICB0aGlzLmNsYXNzTmFtZSA9ICdob3Jpem9udGFsLWRyYWctaGFuZGxlJzsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5jbGFzc05hbWUgPSAndmVydGljYWwtZHJhZy1oYW5kbGUnOworICAgIH0sCisKKyAgICBnZXQgdmVydGljYWwoKSB7CisgICAgICByZXR1cm4gIXRoaXMuaG9yaXpvbnRhbF87CisgICAgfSwKKworICAgIHNldCB2ZXJ0aWNhbCh2KSB7CisgICAgICB0aGlzLmhvcml6b250YWwgPSAhdjsKKyAgICB9LAorCisgICAgZm9yY2VNdXRhdGlvbk9ic2VydmVyRmx1c2hfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciByZWNvcmRzID0gdGhpcy5vYnNlcnZlcl8udGFrZVJlY29yZHMoKTsKKyAgICAgIGlmIChyZWNvcmRzLmxlbmd0aCkKKyAgICAgICAgdGhpcy5kaWRUYXJnZXRNdXRhdGVfKHJlY29yZHMpOworICAgIH0sCisKKyAgICBkaWRUYXJnZXRNdXRhdGVfOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgbW9kZVNpemUgPSB0aGlzLnRhcmdldFNpemVzQnlNb2RlS2V5X1t0aGlzLm1vZGVLZXlfXTsKKyAgICAgIGlmIChtb2RlU2l6ZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuc2V0VGFyZ2V0U2l6ZV8obW9kZVNpemUpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIC8vIElmIHdlIGhhZG4ndCBwcmV2aW91c2x5IHNpemVkIHRoZSB0YXJnZXQsIHRoZW4ganVzdCByZW1vdmUgYW55IG1hbnVhbAorICAgICAgLy8gc2l6aW5nIHRoYXQgd2UgYXBwbGllZC4KKyAgICAgIHRoaXMudGFyZ2V0Xy5zdHlsZVt0aGlzLnRhcmdldFN0eWxlS2V5X10gPSAnJzsKKyAgICB9LAorCisgICAgZ2V0IHRhcmdldFN0eWxlS2V5XygpIHsKKyAgICAgIHJldHVybiB0aGlzLmhvcml6b250YWxfID8gJ2hlaWdodCcgOiAnd2lkdGgnOworICAgIH0sCisKKyAgICBnZXRUYXJnZXRTaXplXzogZnVuY3Rpb24oKSB7CisgICAgICAvLyBJZiBzdHlsZSBpcyBub3Qgc2V0LCBzdGFydCBvZmYgd2l0aCBjb21wdXRlZCBoZWlnaHQuCisgICAgICB2YXIgdGFyZ2V0U3R5bGVLZXkgPSB0aGlzLnRhcmdldFN0eWxlS2V5XzsKKyAgICAgIGlmICghdGhpcy50YXJnZXRfLnN0eWxlW3RhcmdldFN0eWxlS2V5XSkgeworICAgICAgICB0aGlzLnRhcmdldF8uc3R5bGVbdGFyZ2V0U3R5bGVLZXldID0KKyAgICAgICAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMudGFyZ2V0XylbdGFyZ2V0U3R5bGVLZXldOworICAgICAgfQorICAgICAgdmFyIHNpemUgPSBwYXJzZUludCh0aGlzLnRhcmdldF8uc3R5bGVbdGFyZ2V0U3R5bGVLZXldKTsKKyAgICAgIHRoaXMudGFyZ2V0U2l6ZXNCeU1vZGVLZXlfW3RoaXMubW9kZUtleV9dID0gc2l6ZTsKKyAgICAgIHJldHVybiBzaXplOworICAgIH0sCisKKyAgICBzZXRUYXJnZXRTaXplXzogZnVuY3Rpb24ocykgeworICAgICAgdGhpcy50YXJnZXRfLnN0eWxlW3RoaXMudGFyZ2V0U3R5bGVLZXlfXSA9IHMgKyAncHgnOworICAgICAgdGhpcy50YXJnZXRTaXplc0J5TW9kZUtleV9bdGhpcy5tb2RlS2V5X10gPSBzOworICAgIH0sCisKKyAgICBhcHBseURlbHRhXzogZnVuY3Rpb24oZGVsdGEpIHsKKyAgICAgIC8vIEFwcGx5IG5ldyBzaXplIHRvIHRoZSBjb250YWluZXIuCisgICAgICB2YXIgY3VyU2l6ZSA9IHRoaXMuZ2V0VGFyZ2V0U2l6ZV8oKTsKKyAgICAgIHZhciBuZXdTaXplOworICAgICAgaWYgKHRoaXMudGFyZ2V0XyA9PT0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmcpIHsKKyAgICAgICAgbmV3U2l6ZSA9IGN1clNpemUgKyBkZWx0YTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIG5ld1NpemUgPSBjdXJTaXplIC0gZGVsdGE7CisgICAgICB9CisgICAgICB0aGlzLnNldFRhcmdldFNpemVfKG5ld1NpemUpOworICAgIH0sCisKKyAgICBvbk1vdXNlTW92ZV86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIC8vIENvbXB1dGUgdGhlIGRpZmZlcmVuY2UgaW4gaGVpZ2h0IHBvc2l0aW9uLgorICAgICAgdmFyIGN1ck1vdXNlUG9zID0gdGhpcy5ob3Jpem9udGFsXyA/IGUuY2xpZW50WSA6IGUuY2xpZW50WDsKKyAgICAgIHZhciBkZWx0YSA9IHRoaXMubGFzdE1vdXNlUG9zXyAtIGN1ck1vdXNlUG9zOworCisgICAgICB0aGlzLmFwcGx5RGVsdGFfKGRlbHRhKTsKKworICAgICAgdGhpcy5sYXN0TW91c2VQb3NfID0gY3VyTW91c2VQb3M7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgb25Nb3VzZURvd25fOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMudGFyZ2V0XykKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5mb3JjZU11dGF0aW9uT2JzZXJ2ZXJGbHVzaF8oKTsKKyAgICAgIHRoaXMubGFzdE1vdXNlUG9zXyA9IHRoaXMuaG9yaXpvbnRhbF8gPyBlLmNsaWVudFkgOiBlLmNsaWVudFg7CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlXyk7CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXBfKTsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBvbk1vdXNlVXBfOiBmdW5jdGlvbihlKSB7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlXyk7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXBfKTsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBEcmFnSGFuZGxlOiBEcmFnSGFuZGxlCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RyYWdfaGFuZGxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ5MDE3MwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmFnX2hhbmRsZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZHJhZ19oYW5kbGUuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIGNyZWF0ZURyYWdIYW5kbGUgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlbC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKKyAgICBlbC5zdHlsZS53aWR0aCA9ICcyMDBweCc7CisgICAgZWwuc3R5bGUuaGVpZ2h0ID0gJzIwMHB4JzsKKyAgICBlbC5zdHlsZS5kaXNwbGF5ID0gJy13ZWJraXQtZmxleCc7CisgICAgZWwuc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiA9ICdjb2x1bW4nOworCisgICAgdmFyIHVwcGVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB1cHBlckVsLnN0eWxlLndlYmtpdEZsZXggPSAnMSAxIGF1dG8nOworCisgICAgdmFyIGxvd2VyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBsb3dlckVsLnN0eWxlLmhlaWdodCA9ICcxMDBweCc7CisKKyAgICB2YXIgZHJhZ0hhbmRsZSA9IG5ldyB0ci51aS5iLkRyYWdIYW5kbGUoKTsKKyAgICBkcmFnSGFuZGxlLnRhcmdldCA9IGxvd2VyRWw7CisKKyAgICBlbC5hcHBlbmRDaGlsZCh1cHBlckVsKTsKKyAgICBlbC5hcHBlbmRDaGlsZChkcmFnSGFuZGxlKTsKKyAgICBlbC5hcHBlbmRDaGlsZChsb3dlckVsKTsKKyAgICBlbC51cHBlckVsID0gdXBwZXJFbDsKKyAgICBlbC5kcmFnSGFuZGxlID0gZHJhZ0hhbmRsZTsKKyAgICBlbC5sb3dlckVsID0gbG93ZXJFbDsKKworICAgIGVsLmdldExvd2VyRWxIZWlnaHQgPSBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMubG93ZXJFbCkuaGVpZ2h0KTsKKyAgICB9OworICAgIHJldHVybiBlbDsKKyAgfTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHRoaXMuYWRkSFRNTE91dHB1dChjcmVhdGVEcmFnSGFuZGxlKCkpOworICB9KTsKKworICB0ZXN0KCdhcHBseURlbHRhJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGVsID0gY3JlYXRlRHJhZ0hhbmRsZSgpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworCisgICAgdmFyIGRyYWdIYW5kbGUgPSBlbC5kcmFnSGFuZGxlOworICAgIHZhciBvbGRIZWlnaHQgPSBlbC5nZXRMb3dlckVsSGVpZ2h0KCk7CisgICAgZHJhZ0hhbmRsZS5hcHBseURlbHRhXygxMCk7CisgICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgb2xkSGVpZ2h0ICsgMTApOworCisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbCk7CisgIH0pOworCisgIHRlc3QoJ2NsYXNzTmFtZU11dGF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGVsID0gY3JlYXRlRHJhZ0hhbmRsZSgpOworCisgICAgdmFyIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOworICAgIHN0eWxlRWwudGV4dENvbnRlbnQgPQorICAgICAgICAnLm1vZGUtYSB7IGhlaWdodDogMTAwcHg7IH0gLm1vZGUtYiB7IGhlaWdodDogNTBweDsgfSc7CisgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsKTsKKworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworCisgICAgdmFyIGRyYWdIYW5kbGUgPSBlbC5kcmFnSGFuZGxlOworICAgIGVsLmxvd2VyRWwuY2xhc3NOYW1lID0gJ21vZGUtYSc7CisgICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgMTAwKTsKKworICAgIGRyYWdIYW5kbGUuYXBwbHlEZWx0YV8oMTApOworICAgIGFzc2VydC5lcXVhbChlbC5nZXRMb3dlckVsSGVpZ2h0KCksIDExMCk7CisKKyAgICAvLyBDaGFuZ2UgdGhlIGNsYXNzLCB3aGljaCBzaG91bGQgcmVzdG9yZSB0aGUgbGF5b3V0CisgICAgLy8gdG8gdGhlIGRlZmF1bHQgc2l6aW5nIGZvciBtb2RlLWIKKyAgICBlbC5sb3dlckVsLmNsYXNzTmFtZSA9ICdtb2RlLWInOworICAgIGRyYWdIYW5kbGUuZm9yY2VNdXRhdGlvbk9ic2VydmVyRmx1c2hfKCk7CisgICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgNTApOworCisgICAgZHJhZ0hhbmRsZS5hcHBseURlbHRhXygxMCk7CisgICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgNjApOworCisgICAgLy8gUmVzdG9yZSB0aGUgY2xhc3MtYSwgd2hpY2ggc2hvdWxkIHJlc3RvcmUgdGhlIGxheW91dAorICAgIC8vIHRvIHNpemluZyB3aGVuIHdlIHdlcmUgY2hhbmdlZC4KKyAgICBlbC5sb3dlckVsLmNsYXNzTmFtZSA9ICdtb2RlLWEnOworICAgIGRyYWdIYW5kbGUuZm9yY2VNdXRhdGlvbk9ic2VydmVyRmx1c2hfKCk7CisgICAgYXNzZXJ0LmVxdWFsKGVsLmdldExvd2VyRWxIZWlnaHQoKSwgMTEwKTsKKworICAgIGRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQoc3R5bGVFbCk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmF3X2hlbHBlcnMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcmF3X2hlbHBlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTljODQzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2RyYXdfaGVscGVycy5odG1sCkBAIC0wLDAgKzEsNDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2V2ZW50X3ByZXNlbnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZWxpZGVkX2NhY2hlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdmFyaW91cyBoZWxwZXIgbWV0aG9kcyBmb3IgZHJhd2luZyB0byBhIHByb3ZpZGVkCisgKiBjYW52YXMuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIHZhciBlbGlkZWRUaXRsZUNhY2hlID0gbmV3IHRyLnVpLmIuRWxpZGVkVGl0bGVDYWNoZSgpOworICB2YXIgcGFsZXR0ZSA9IHRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlKCk7CisgIHZhciBFdmVudFByZXNlbnRlciA9IHRyLnVpLmIuRXZlbnRQcmVzZW50ZXI7CisgIHZhciBibGFja0NvbG9ySWQgPSB0ci51aS5iLmdldENvbG9ySWRGb3JSZXNlcnZlZE5hbWUoJ2JsYWNrJyk7CisKKyAgLyoqCisgICAqIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBhbGxvdyBmb3IgY29uc2lzdGVudCBzdHlsZSBVSSBlbGVtZW50cy4KKyAgICogVGhyZWFkIHRpbWUgdmlzdWFsaXNhdGlvbiB1c2VzIGEgc21hbGxlciByZWN0YW5nbGUgdGhhdCBoYXMgdGhpcyBoZWlnaHQuCisgICAqIEBjb25zdAorICAgKi8KKyAgdmFyIFRISU5fU0xJQ0VfSEVJR0hUID0gNDsKKworICAvKioKKyAgICogVGhpcyB2YWx1ZSBpcyB1c2VkIHRvIGZvciBwZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9ucyB3aGVuIGRyYXdpbmcgbGFyZ2UKKyAgICogem9vbWVkIG91dCB0cmFjZXMgdGhhdCBmZWF0dXJlIGNwdSB0aW1lIGluIHRoZSBzbGljZXMuIElmIHRoZSB3YWl0aW5nCisgICAqIHdpZHRoIGlzIGxlc3MgdGhhbiB0aGUgdGhyZXNob2xkLCB3ZSBvbmx5IGRyYXcgdGhlIHJlY3RhbmdsZSBhcyBhIHNvbGlkLgorICAgKiBAY29uc3QKKyAgICovCisgIHZhciBTTElDRV9XQUlUSU5HX1dJRFRIX0RSQVdfVEhSRVNIT0xEID0gMzsKKworICAvKioKKyAgICogSWYgdGhlIHNsaWNlIGhhcyBtb3N0bHkgYmVlbiB3YWl0aW5nIHRvIGJlIHNjaGVkdWxlZCBvbiB0aGUgY3B1LCB0aGUKKyAgICogd2FsbCBjbG9jayB3aWxsIGJlIGZhciBncmVhdGVyIHRoYW4gdGhlIGNwdSBjbG9jay4gRHJhdyB0aGUgc2xpY2UKKyAgICogb25seSBhcyBhbiBpZGxlIHNsaWNlLCBpZiB0aGUgYWN0aXZlIHdpZHRoIGlzIG5vdCB0aGlja2VyIHRoYW4gdGhlCisgICAqIHRocmVzaG9sZC4KKyAgICogQGNvbnN0CisgICAqLworICB2YXIgU0xJQ0VfQUNUSVZFX1dJRFRIX0RSQVdfVEhSRVNIT0xEID0gMTsKKworICAvKioKKyAgICogU2hvdWxkIHdlIGVsaWRlIHRleHQgb24gdHJhY2UgbGFiZWxzPworICAgKiBXaXRob3V0IGVsaWRpbmcsIHRleHQgdGhhdCBpcyB0b28gd2lkZSBpc24ndCBkcmF3biBhdCBhbGwuCisgICAqIERpc2FibGUgaWYgeW91IGZlZWwgdGhpcyBjYXVzZXMgYSBwZXJmb3JtYW5jZSBwcm9ibGVtLgorICAgKiBUaGlzIGlzIGEgZGVmYXVsdCB2YWx1ZSB0aGF0IGNhbiBiZSBvdmVycmlkZGVuIGluIHRyYWNrcyBmb3IgdGVzdGluZy4KKyAgICogQGNvbnN0CisgICAqLworICB2YXIgU0hPVUxEX0VMSURFX1RFWFQgPSB0cnVlOworCisgIC8qKgorICAgKiBEcmF3IHRoZSBkZWZpbmUgbGluZSBpbnRvIHxjdHh8LgorICAgKgorICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCBUaGUgY29udGV4dCB0byBkcmF3IGludG8uCisgICAqIEBwYXJhbSB7ZmxvYXR9IHgxIFRoZSBzdGFydCB4IHBvc2l0aW9uIG9mIHRoZSBsaW5lLgorICAgKiBAcGFyYW0ge2Zsb2F0fSB5MSBUaGUgc3RhcnQgeSBwb3NpdGlvbiBvZiB0aGUgbGluZS4KKyAgICogQHBhcmFtIHtmbG9hdH0geDIgVGhlIGVuZCB4IHBvc2l0aW9uIG9mIHRoZSBsaW5lLgorICAgKiBAcGFyYW0ge2Zsb2F0fSB5MiBUaGUgZW5kIHkgcG9zaXRpb24gb2YgdGhlIGxpbmUuCisgICAqLworICBmdW5jdGlvbiBkcmF3TGluZShjdHgsIHgxLCB5MSwgeDIsIHkyKSB7CisgICAgY3R4Lm1vdmVUbyh4MSwgeTEpOworICAgIGN0eC5saW5lVG8oeDIsIHkyKTsKKyAgfQorCisgIC8qKgorICAgKiBEcmF3IHRoZSBkZWZpbmVkIHRyaWFuZ2xlIGludG8gfGN0eHwuCisgICAqCisgICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IFRoZSBjb250ZXh0IHRvIGRyYXcgaW50by4KKyAgICogQHBhcmFtIHtmbG9hdH0geDEgVGhlIGZpcnN0IGNvcm5lciB4LgorICAgKiBAcGFyYW0ge2Zsb2F0fSB5MSBUaGUgZmlyc3QgY29ybmVyIHkuCisgICAqIEBwYXJhbSB7ZmxvYXR9IHgyIFRoZSBzZWNvbmQgY29ybmVyIHguCisgICAqIEBwYXJhbSB7ZmxvYXR9IHkyIFRoZSBzZWNvbmQgY29ybmVyIHkuCisgICAqIEBwYXJhbSB7ZmxvYXR9IHgzIFRoZSB0aGlyZCBjb3JuZXIgeC4KKyAgICogQHBhcmFtIHtmbG9hdH0geTMgVGhlIHRoaXJkIGNvcm5lciB5LgorICAgKi8KKyAgZnVuY3Rpb24gZHJhd1RyaWFuZ2xlKGN0eCwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5MykgeworICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICBjdHgubW92ZVRvKHgxLCB5MSk7CisgICAgY3R4LmxpbmVUbyh4MiwgeTIpOworICAgIGN0eC5saW5lVG8oeDMsIHkzKTsKKyAgICBjdHguY2xvc2VQYXRoKCk7CisgIH0KKworICAvKioKKyAgICogRHJhdyBhbiBhcnJvdyBpbnRvIHxjdHh8LgorICAgKgorICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCBUaGUgY29udGV4dCB0byBkcmF3IGludG8uCisgICAqIEBwYXJhbSB7ZmxvYXR9IHgxIFRoZSBzaGFmdCB4LgorICAgKiBAcGFyYW0ge2Zsb2F0fSB5MSBUaGUgc2hhZnQgeS4KKyAgICogQHBhcmFtIHtmbG9hdH0geDIgVGhlIGhlYWQgeC4KKyAgICogQHBhcmFtIHtmbG9hdH0geTIgVGhlIGhlYWQgeS4KKyAgICogQHBhcmFtIHtmbG9hdH0gYXJyb3dMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgaGVhZC4KKyAgICogQHBhcmFtIHtmbG9hdH0gYXJyb3dXaWR0aCBUaGUgd2lkdGggb2YgdGhlIGhlYWQuCisgICAqLworICBmdW5jdGlvbiBkcmF3QXJyb3coY3R4LCB4MSwgeTEsIHgyLCB5MiwgYXJyb3dMZW5ndGgsIGFycm93V2lkdGgpIHsKKyAgICB2YXIgZHggPSB4MiAtIHgxOworICAgIHZhciBkeSA9IHkyIC0geTE7CisgICAgdmFyIGxlbiA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7CisgICAgdmFyIHBlcmMgPSAobGVuIC0gYXJyb3dMZW5ndGgpIC8gbGVuOworICAgIHZhciBieCA9IHgxICsgcGVyYyAqIGR4OworICAgIHZhciBieSA9IHkxICsgcGVyYyAqIGR5OworICAgIHZhciB1eCA9IGR4IC8gbGVuOworICAgIHZhciB1eSA9IGR5IC8gbGVuOworICAgIHZhciBheCA9IHV5ICogYXJyb3dXaWR0aDsKKyAgICB2YXIgYXkgPSAtdXggKiBhcnJvd1dpZHRoOworCisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGRyYXdMaW5lKGN0eCwgeDEsIHkxLCB4MiwgeTIpOworICAgIGN0eC5zdHJva2UoKTsKKworICAgIGRyYXdUcmlhbmdsZShjdHgsCisgICAgICAgIGJ4ICsgYXgsIGJ5ICsgYXksCisgICAgICAgIHgyLCB5MiwKKyAgICAgICAgYnggLSBheCwgYnkgLSBheSk7CisgICAgY3R4LmZpbGwoKTsKKyAgfQorCisgIC8qKgorICAgKiBEcmF3IHRoZSBwcm92aWRlZCBzbGljZXMgdG8gdGhlIHNjcmVlbi4KKyAgICoKKyAgICogRWFjaCBvZiB0aGUgZWxlbWVudHMgaW4gfHNsaWNlc3wgbXVzdCBwcm92aWRlIHRoZSBmb2xsb3cgbWV0aG9kczoKKyAgICogICAqIHN0YXJ0CisgICAqICAgKiBkdXJhdGlvbgorICAgKiAgICogY29sb3JJZAorICAgKiAgICogc2VsZWN0ZWQKKyAgICoKKyAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggVGhlIGNhbnZhcyBjb250ZXh0LgorICAgKiBAcGFyYW0ge1RpbWVsaW5lRHJhd1RyYW5zZm9ybX0gZHQgVGhlIGRyYXcgdHJhbnNmb3JtLgorICAgKiBAcGFyYW0ge2Zsb2F0fSB2aWV3TFdvcmxkIFRoZSBsZWZ0IG1vc3QgcG9pbnQgb2YgdGhlIHdvcmxkIHZpZXdwb3J0LgorICAgKiBAcGFyYW0ge2Zsb2F0fSB2aWV3UldvcmxkIFRoZSByaWdodCBtb3N0IHBvaW50IG9mIHRoZSB3b3JsZCB2aWV3cG9ydC4KKyAgICogQHBhcmFtIHtmbG9hdH0gdmlld0hlaWdodCBUaGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydC4KKyAgICogQHBhcmFtIHtBcnJheX0gc2xpY2VzIFRoZSBzbGljZXMgdG8gZHJhdy4KKyAgICogQHBhcmFtIHtib29sfSBhc3luYyBXaGV0aGVyIHRoZSBzbGljZXMgYXJlIGRyYXduIHdpdGggYXN5bmMgc3R5bGUuCisgICAqLworICBmdW5jdGlvbiBkcmF3U2xpY2VzKGN0eCwgZHQsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsIHZpZXdIZWlnaHQsIHNsaWNlcywKKyAgICAgICAgICAgICAgICAgICAgICBhc3luYykgeworICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICB2YXIgcGl4V2lkdGggPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoMSk7CisgICAgdmFyIGhlaWdodCA9IHZpZXdIZWlnaHQgKiBwaXhlbFJhdGlvOworCisgICAgdmFyIGRhcmtSZWN0SGVpZ2h0ID0gVEhJTl9TTElDRV9IRUlHSFQgKiBwaXhlbFJhdGlvOworCisgICAgLy8gTm90IGVub3VnaCBzcGFjZSBmb3IgYm90aCBjb2xvcnMsIHVzZSBsaWdodCBjb2xvciBvbmx5LgorICAgIGlmIChoZWlnaHQgPCBkYXJrUmVjdEhlaWdodCkKKyAgICAgIGRhcmtSZWN0SGVpZ2h0ID0gMDsKKworICAgIHZhciBsaWdodFJlY3RIZWlnaHQgPSBoZWlnaHQgLSBkYXJrUmVjdEhlaWdodDsKKworICAgIC8vIEJlZ2luIHJlbmRlcmluZyBpbiB3b3JsZCBzcGFjZS4KKyAgICBjdHguc2F2ZSgpOworICAgIGR0LmFwcGx5VHJhbnNmb3JtVG9DYW52YXMoY3R4KTsKKworICAgIHZhciByZWN0ID0gbmV3IHRyLnVpLmIuRmFzdFJlY3RSZW5kZXJlcigKKyAgICAgICAgY3R4LCAyICogcGl4V2lkdGgsIDIgKiBwaXhXaWR0aCwgcGFsZXR0ZSk7CisgICAgcmVjdC5zZXRZYW5kSCgwLCBoZWlnaHQpOworCisgICAgdmFyIGxvd1NsaWNlID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAorICAgICAgICBzbGljZXMsCisgICAgICAgIGZ1bmN0aW9uKHNsaWNlKSB7IHJldHVybiBzbGljZS5zdGFydCArIHNsaWNlLmR1cmF0aW9uOyB9LAorICAgICAgICB2aWV3TFdvcmxkKTsKKworICAgIHZhciBoYWRUb3BMZXZlbCA9IGZhbHNlOworCisgICAgZm9yICh2YXIgaSA9IGxvd1NsaWNlOyBpIDwgc2xpY2VzLmxlbmd0aDsgKytpKSB7CisgICAgICB2YXIgc2xpY2UgPSBzbGljZXNbaV07CisgICAgICB2YXIgeCA9IHNsaWNlLnN0YXJ0OworICAgICAgaWYgKHggPiB2aWV3UldvcmxkKQorICAgICAgICBicmVhazsKKworICAgICAgdmFyIHcgPSBwaXhXaWR0aDsKKyAgICAgIGlmIChzbGljZS5kdXJhdGlvbiA+IDApIHsKKyAgICAgICAgdyA9IE1hdGgubWF4KHNsaWNlLmR1cmF0aW9uLCAwLjAwMDAwMSk7CisgICAgICAgIGlmICh3IDwgcGl4V2lkdGgpCisgICAgICAgICAgdyA9IHBpeFdpZHRoOworICAgICAgfQorCisgICAgICB2YXIgY29sb3JJZCA9IEV2ZW50UHJlc2VudGVyLmdldFNsaWNlQ29sb3JJZChzbGljZSk7CisgICAgICB2YXIgYWxwaGEgPSBFdmVudFByZXNlbnRlci5nZXRTbGljZUFscGhhKHNsaWNlLCBhc3luYyk7CisgICAgICB2YXIgbGlnaHRBbHBoYSA9IGFscGhhICogMC43MDsKKworICAgICAgaWYgKGFzeW5jICYmIHNsaWNlLmlzVG9wTGV2ZWwpIHsKKyAgICAgICAgcmVjdC5zZXRZYW5kSCgzLCBoZWlnaHQgLSAzKTsKKyAgICAgICAgaGFkVG9wTGV2ZWwgPSB0cnVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmVjdC5zZXRZYW5kSCgwLCBoZWlnaHQpOworICAgICAgfQorCisgICAgICAvLyBJZiBjcHVEdXJhdGlvbiBpcyBhdmFpbGFibGUsIGRyYXcgcmVjdGFuZ2xlcyBwcm9wb3J0aW9uYWwgdG8gdGhlCisgICAgICAvLyBhbW91bnQgb2YgY3B1IHRpbWUgdGFrZW4uCisgICAgICBpZiAoIXNsaWNlLmNwdUR1cmF0aW9uKSB7CisgICAgICAgIC8vIE5vIGNwdUR1cmF0aW9uIGF2YWlsYWJsZSwgZHJhdyB1c2luZyBvbmx5IG9uZSBhbHBoYS4KKyAgICAgICAgcmVjdC5maWxsUmVjdCh4LCB3LCBjb2xvcklkLCBhbHBoYSk7CisgICAgICAgIGNvbnRpbnVlOworICAgICAgfQorCisgICAgICB2YXIgYWN0aXZlV2lkdGggPSB3ICogKHNsaWNlLmNwdUR1cmF0aW9uIC8gc2xpY2UuZHVyYXRpb24pOworICAgICAgdmFyIHdhaXRpbmdXaWR0aCA9IHcgLSBhY3RpdmVXaWR0aDsKKworICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBlbm91Z2ggc2NyZWVuIHNwYWNlIHRvIGRyYXcgdGhlIHdob2xlIHNsaWNlLCB3aXRoCisgICAgICAvLyBib3RoIGNvbG9yIHRvbmVzLgorICAgICAgLy8KKyAgICAgIC8vIFRydW5jYXRlIHRoZSBhY3RpdmVXaWR0aCB0byAwIGlmIGl0IGlzIGxlc3MgdGhhbiAndGhyZXNob2xkJyBwaXhlbHMuCisgICAgICBpZiAoYWN0aXZlV2lkdGggPCBTTElDRV9BQ1RJVkVfV0lEVEhfRFJBV19USFJFU0hPTEQgKiBwaXhXaWR0aCkgeworICAgICAgICBhY3RpdmVXaWR0aCA9IDA7CisgICAgICAgIHdhaXRpbmdXaWR0aCA9IHc7CisgICAgICB9CisKKyAgICAgIC8vIFRydW5jYXRlIHRoZSB3YWl0aW5nV2lkdGggdG8gMCBpZiBpdCBpcyBsZXNzIHRoYW4gJ3RocmVzaG9sZCcgcGl4ZWxzLgorICAgICAgaWYgKHdhaXRpbmdXaWR0aCA8IFNMSUNFX1dBSVRJTkdfV0lEVEhfRFJBV19USFJFU0hPTEQgKiBwaXhXaWR0aCkgeworICAgICAgICBhY3RpdmVXaWR0aCA9IHc7CisgICAgICAgIHdhaXRpbmdXaWR0aCA9IDA7CisgICAgICB9CisKKyAgICAgIC8vIFdlIG5vdyBkcmF3IHRoZSB0d28gcmVjdGFuZ2xlcyBtYWtpbmcgdXAgdGhlIGV2ZW50IHNsaWNlLgorICAgICAgLy8gTk9URTogVGhlIGlmIHN0YXRlbWVudHMgYXJlIG5lY2Vzc2FyeSBmb3IgcGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnMuCisgICAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBmb3JjZSBkcmF3cywgaWYgdGhlIHdpZHRoIG9mIHRoZSByZWN0YW5nbGUgaXMgMC4KKyAgICAgIC8vCisgICAgICAvLyBGaXJzdCBkcmF3IHRoZSBzb2xpZCBjb2xvciwgcmVwcmVzZW50aW5nIHRoZSAnYWN0aXZlJyBwYXJ0LgorICAgICAgaWYgKGFjdGl2ZVdpZHRoID4gMCkgeworICAgICAgICByZWN0LmZpbGxSZWN0KHgsIGFjdGl2ZVdpZHRoLCBjb2xvcklkLCBhbHBoYSk7CisgICAgICB9CisKKyAgICAgIC8vIE5leHQgZHJhdyB0aGUgdHdvIHRvbmVkICdpZGxlJyBwYXJ0LgorICAgICAgLy8gTk9URTogU3Vic3RyYWN0aW5nIHBpeFdpZHRoIGFuZCBkcmF3aW5nIG9uZSBleHRyYSBwaXhlbCBpcyBkb25lIHRvCisgICAgICAvLyBwcmV2ZW50IGRyYXdpbmcgYXJ0aWZhY3RzLiBXaXRob3V0IGl0LCB0aGUgdHdvIHBhcnRzIG9mIHRoZSBzbGljZSwKKyAgICAgIC8vICgnYWN0aXZlJyBhbmQgJ2lkbGUnKSBtYXkgYXBwZWFyIHNwbGl0IGFwYXJ0LgorICAgICAgaWYgKHdhaXRpbmdXaWR0aCA+IDApIHsKKyAgICAgICAgLy8gRmlyc3QgZHJhdyB0aGUgbGlnaHQgdG9uZWQgdG9wIHBhcnQuCisgICAgICAgIHJlY3Quc2V0WWFuZEgoMCwgbGlnaHRSZWN0SGVpZ2h0KTsKKyAgICAgICAgcmVjdC5maWxsUmVjdCh4ICsgYWN0aXZlV2lkdGggLSBwaXhXaWR0aCwKKyAgICAgICAgICAgIHdhaXRpbmdXaWR0aCArIHBpeFdpZHRoLCBjb2xvcklkLCBsaWdodEFscGhhKTsKKyAgICAgICAgLy8gVGhlbiB0aGUgc29saWQgYm90dG9tIGhhbGYuCisgICAgICAgIHJlY3Quc2V0WWFuZEgobGlnaHRSZWN0SGVpZ2h0LCBkYXJrUmVjdEhlaWdodCk7CisgICAgICAgIHJlY3QuZmlsbFJlY3QoeCArIGFjdGl2ZVdpZHRoIC0gcGl4V2lkdGgsCisgICAgICAgICAgICB3YWl0aW5nV2lkdGggKyBwaXhXaWR0aCwgY29sb3JJZCwgYWxwaGEpOworICAgICAgICAvLyBSZXNldCBmb3IgdGhlIG5leHQgc2xpY2UuCisgICAgICAgIHJlY3Quc2V0WWFuZEgoMCwgaGVpZ2h0KTsKKyAgICAgIH0KKyAgICB9CisgICAgcmVjdC5mbHVzaCgpOworCisgICAgaWYgKGFzeW5jICYmIGhhZFRvcExldmVsKSB7CisgICAgICAvLyBEcmF3IGEgdG9wIGJvcmRlciBvdmVyIGFzeW5jIHNsaWNlcyBpbiBvcmRlciB0byB2aXN1YWxseSBzZXBhcmF0ZQorICAgICAgLy8gdGhlbSBmcm9tIGV2ZW50cyBhYm92ZSBpdC4KKyAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3RyYWNlLXZpZXdlci9pc3N1ZXMvNzI1LgorICAgICAgcmVjdC5zZXRZYW5kSCgyLCAxKTsKKyAgICAgIGZvciAodmFyIGkgPSBsb3dTbGljZTsgaSA8IHNsaWNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgc2xpY2UgPSBzbGljZXNbaV07CisgICAgICAgIHZhciB4ID0gc2xpY2Uuc3RhcnQ7CisgICAgICAgIGlmICh4ID4gdmlld1JXb3JsZCkKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoIXNsaWNlLmlzVG9wTGV2ZWwpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmFyIHcgPSBwaXhXaWR0aDsKKyAgICAgICAgaWYgKHNsaWNlLmR1cmF0aW9uID4gMCkgeworICAgICAgICAgIHcgPSBNYXRoLm1heChzbGljZS5kdXJhdGlvbiwgMC4wMDAwMDEpOworICAgICAgICAgIGlmICh3IDwgcGl4V2lkdGgpCisgICAgICAgICAgICB3ID0gcGl4V2lkdGg7CisgICAgICAgIH0KKworICAgICAgICByZWN0LmZpbGxSZWN0KHgsIHcsIGJsYWNrQ29sb3JJZCwgMC43KTsKKyAgICAgIH0KKyAgICAgIHJlY3QuZmx1c2goKTsKKyAgICB9CisKKyAgICBjdHgucmVzdG9yZSgpOworICB9CisKKyAgLyoqCisgICAqIERyYXcgdGhlIHByb3ZpZGVkIGluc3RhbnQgc2xpY2VzIGFzIGxpbmVzIHRvIHRoZSBzY3JlZW4uCisgICAqCisgICAqIEVhY2ggb2YgdGhlIGVsZW1lbnRzIGluIHxzbGljZXN8IG11c3QgcHJvdmlkZSB0aGUgZm9sbG93IG1ldGhvZHM6CisgICAqICAgKiBzdGFydAorICAgKiAgICogZHVyYXRpb24gd2l0aCB2YWx1ZSBvZiAwLgorICAgKiAgICogY29sb3JJZAorICAgKiAgICogc2VsZWN0ZWQKKyAgICoKKyAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggVGhlIGNhbnZhcyBjb250ZXh0LgorICAgKiBAcGFyYW0ge1RpbWVsaW5lRHJhd1RyYW5zZm9ybX0gZHQgVGhlIGRyYXcgdHJhbnNmb3JtLgorICAgKiBAcGFyYW0ge2Zsb2F0fSB2aWV3TFdvcmxkIFRoZSBsZWZ0IG1vc3QgcG9pbnQgb2YgdGhlIHdvcmxkIHZpZXdwb3J0LgorICAgKiBAcGFyYW0ge2Zsb2F0fSB2aWV3UldvcmxkIFRoZSByaWdodCBtb3N0IHBvaW50IG9mIHRoZSB3b3JsZCB2aWV3cG9ydC4KKyAgICogQHBhcmFtIHtmbG9hdH0gdmlld0hlaWdodCBUaGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydC4KKyAgICogQHBhcmFtIHtBcnJheX0gc2xpY2VzIFRoZSBzbGljZXMgdG8gZHJhdy4KKyAgICogQHBhcmFtIHtOdW1lcn0gbGluZVdpZHRoSW5QaXhlbHMgVGhlIHdpZHRoIG9mIHRoZSBsaW5lcy4KKyAgICovCisgIGZ1bmN0aW9uIGRyYXdJbnN0YW50U2xpY2VzQXNMaW5lcygKKyAgICAgIGN0eCwgZHQsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsIHZpZXdIZWlnaHQsIHNsaWNlcywgbGluZVdpZHRoSW5QaXhlbHMpIHsKKyAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgdmFyIGhlaWdodCA9IHZpZXdIZWlnaHQgKiBwaXhlbFJhdGlvOworCisgICAgdmFyIHBpeFdpZHRoID0gZHQueFZpZXdWZWN0b3JUb1dvcmxkKDEpOworCisgICAgLy8gQmVnaW4gcmVuZGVyaW5nIGluIHdvcmxkIHNwYWNlLgorICAgIGN0eC5zYXZlKCk7CisgICAgY3R4LmxpbmVXaWR0aCA9IHBpeFdpZHRoICogbGluZVdpZHRoSW5QaXhlbHMgKiBwaXhlbFJhdGlvOworICAgIGR0LmFwcGx5VHJhbnNmb3JtVG9DYW52YXMoY3R4KTsKKyAgICBjdHguYmVnaW5QYXRoKCk7CisKKyAgICB2YXIgbG93U2xpY2UgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCisgICAgICAgIHNsaWNlcywKKyAgICAgICAgZnVuY3Rpb24oc2xpY2UpIHsgcmV0dXJuIHNsaWNlLnN0YXJ0OyB9LAorICAgICAgICB2aWV3TFdvcmxkKTsKKworICAgIGZvciAodmFyIGkgPSBsb3dTbGljZTsgaSA8IHNsaWNlcy5sZW5ndGg7ICsraSkgeworICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOworICAgICAgdmFyIHggPSBzbGljZS5zdGFydDsKKyAgICAgIGlmICh4ID4gdmlld1JXb3JsZCkKKyAgICAgICAgYnJlYWs7CisKKyAgICAgIGN0eC5zdHJva2VTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldEluc3RhbnRTbGljZUNvbG9yKHNsaWNlKTsKKworICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgY3R4Lm1vdmVUbyh4LCAwKTsKKyAgICAgIGN0eC5saW5lVG8oeCwgaGVpZ2h0KTsKKyAgICAgIGN0eC5zdHJva2UoKTsKKyAgICB9CisgICAgY3R4LnJlc3RvcmUoKTsKKyAgfQorCisgIC8qKgorICAgKiBEcmF3cyB0aGUgbGFiZWxzIGZvciB0aGUgZ2l2ZW4gc2xpY2VzLgorICAgKgorICAgKiBUaGUgfHNsaWNlc3wgYXJyYXkgbXVzdCBjb250YWluIG9iamVjdHMgd2l0aCB0aGUgZm9sbG93aW5nIEFQSToKKyAgICogICAqIHN0YXJ0CisgICAqICAgKiBkdXJhdGlvbgorICAgKiAgICogdGl0bGUKKyAgICogICAqIGRpZE5vdEZpbmlzaCAob3B0aW9uYWwpCisgICAqCisgICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IFRoZSBncmFwaGljcyBjb250ZXh0LgorICAgKiBAcGFyYW0ge1RpbWVsaW5lRHJhd1RyYW5zZm9ybX0gZHQgVGhlIGRyYXcgdHJhbnNmb3JtLgorICAgKiBAcGFyYW0ge2Zsb2F0fSB2aWV3TFdvcmxkIFRoZSBsZWZ0IG1vc3QgcG9pbnQgb2YgdGhlIHdvcmxkIHZpZXdwb3J0LgorICAgKiBAcGFyYW0ge2Zsb2F0fSB2aWV3UldvcmxkIFRoZSByaWdodCBtb3N0IHBvaW50IG9mIHRoZSB3b3JsZCB2aWV3cG9ydC4KKyAgICogQHBhcmFtIHtBcnJheX0gc2xpY2VzIFRoZSBzbGljZXMgdG8gbGFiZWwuCisgICAqIEBwYXJhbSB7Ym9vbH0gYXN5bmMgV2hldGhlciB0aGUgc2xpY2UgbGFiZWxzIGFyZSBkcmF3biB3aXRoIGFzeW5jIHN0eWxlLgorICAgKiBAcGFyYW0ge2Zsb2F0fSBmb250U2l6ZSBUaGUgZm9udCBzaXplLgorICAgKiBAcGFyYW0ge2Zsb2F0fSB5T2Zmc2V0IFRoZSBmb250IG9mZnNldC4KKyAgICovCisgIGZ1bmN0aW9uIGRyYXdMYWJlbHMoY3R4LCBkdCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwgc2xpY2VzLCBhc3luYywKKyAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZSwgeU9mZnNldCkgeworICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICB2YXIgcGl4V2lkdGggPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoMSk7CisKKyAgICBjdHguc2F2ZSgpOworCisgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInOworICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAndG9wJzsKKyAgICBjdHguZm9udCA9IChmb250U2l6ZSAqIHBpeGVsUmF0aW8pICsgJ3B4IHNhbnMtc2VyaWYnOworCisgICAgaWYgKGFzeW5jKQorICAgICAgY3R4LmZvbnQgPSAnaXRhbGljICcgKyBjdHguZm9udDsKKworICAgIHZhciBjWSA9IHlPZmZzZXQgKiBwaXhlbFJhdGlvOworCisgICAgdmFyIGxvd1NsaWNlID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAorICAgICAgICBzbGljZXMsCisgICAgICAgIGZ1bmN0aW9uKHNsaWNlKSB7IHJldHVybiBzbGljZS5zdGFydCArIHNsaWNlLmR1cmF0aW9uOyB9LAorICAgICAgICB2aWV3TFdvcmxkKTsKKworICAgIC8vIERvbid0IHJlbmRlciB0ZXh0IHVudGlsIHVudGlsIGl0IGlzIDIwcHggd2lkZQorICAgIHZhciBxdWlja0Rpc2NhcmRUaHJlc3Nob2xkID0gcGl4V2lkdGggKiAyMDsKKyAgICBmb3IgKHZhciBpID0gbG93U2xpY2U7IGkgPCBzbGljZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgIHZhciBzbGljZSA9IHNsaWNlc1tpXTsKKyAgICAgIGlmIChzbGljZS5zdGFydCA+IHZpZXdSV29ybGQpCisgICAgICAgIGJyZWFrOworCisgICAgICBpZiAoc2xpY2UuZHVyYXRpb24gPD0gcXVpY2tEaXNjYXJkVGhyZXNzaG9sZCkKKyAgICAgICAgY29udGludWU7CisKKyAgICAgIHZhciB0aXRsZSA9IHNsaWNlLnRpdGxlICsKKyAgICAgICAgICAoc2xpY2UuZGlkTm90RmluaXNoID8gJyAoRGlkIE5vdCBGaW5pc2gpJyA6ICcnKTsKKworICAgICAgdmFyIGRyYXduVGl0bGUgPSB0aXRsZTsKKyAgICAgIHZhciBkcmF3bldpZHRoID0gZWxpZGVkVGl0bGVDYWNoZS5sYWJlbFdpZHRoKGN0eCwgZHJhd25UaXRsZSk7CisgICAgICB2YXIgZnVsbExhYmVsV2lkdGggPSBlbGlkZWRUaXRsZUNhY2hlLmxhYmVsV2lkdGhXb3JsZCgKKyAgICAgICAgICBjdHgsIGRyYXduVGl0bGUsIHBpeFdpZHRoKTsKKyAgICAgIGlmIChTSE9VTERfRUxJREVfVEVYVCAmJiBmdWxsTGFiZWxXaWR0aCA+IHNsaWNlLmR1cmF0aW9uKSB7CisgICAgICAgIHZhciBlbGlkZWRWYWx1ZXMgPSBlbGlkZWRUaXRsZUNhY2hlLmdldCgKKyAgICAgICAgICAgIGN0eCwgcGl4V2lkdGgsCisgICAgICAgICAgICBkcmF3blRpdGxlLCBkcmF3bldpZHRoLAorICAgICAgICAgICAgc2xpY2UuZHVyYXRpb24pOworICAgICAgICBkcmF3blRpdGxlID0gZWxpZGVkVmFsdWVzLnN0cmluZzsKKyAgICAgICAgZHJhd25XaWR0aCA9IGVsaWRlZFZhbHVlcy53aWR0aDsKKyAgICAgIH0KKworICAgICAgaWYgKGRyYXduV2lkdGggKiBwaXhXaWR0aCA8IHNsaWNlLmR1cmF0aW9uKSB7CisgICAgICAgIGN0eC5maWxsU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRUZXh0Q29sb3Ioc2xpY2UpOworICAgICAgICB2YXIgY1ggPSBkdC54V29ybGRUb1ZpZXcoc2xpY2Uuc3RhcnQgKyAwLjUgKiBzbGljZS5kdXJhdGlvbik7CisgICAgICAgIGN0eC5maWxsVGV4dChkcmF3blRpdGxlLCBjWCwgY1ksIGRyYXduV2lkdGgpOworICAgICAgfQorICAgIH0KKyAgICBjdHgucmVzdG9yZSgpOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBkcmF3U2xpY2VzOiBkcmF3U2xpY2VzLAorICAgIGRyYXdJbnN0YW50U2xpY2VzQXNMaW5lczogZHJhd0luc3RhbnRTbGljZXNBc0xpbmVzLAorICAgIGRyYXdMYWJlbHM6IGRyYXdMYWJlbHMsCisKKyAgICBkcmF3TGluZTogZHJhd0xpbmUsCisgICAgZHJhd1RyaWFuZ2xlOiBkcmF3VHJpYW5nbGUsCisgICAgZHJhd0Fycm93OiBkcmF3QXJyb3csCisKKyAgICBlbGlkZWRUaXRsZUNhY2hlXzogZWxpZGVkVGl0bGVDYWNoZSwKKworICAgIFRISU5fU0xJQ0VfSEVJR0hUOiBUSElOX1NMSUNFX0hFSUdIVAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcm9wZG93bi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2Ryb3Bkb3duLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk0MDIzYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcm9wZG93bi5odG1sCkBAIC0wLDAgKzEsMTU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYi1kcm9wZG93biI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgI291dGVyIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIHBhZGRpbmc6IDFweCA0cHggMXB4IDRweDsKKyAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgfQorCisgICAgI3N0YXRlIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CisgICAgICBtYXJnaW4tcmlnaHQ6IDBweDsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgIH0KKworICAgICNpY29uIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgIH0KKyAgICBkaWFsb2cgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgcGFkZGluZzogMDsKKyAgICAgIGJvcmRlcjogMDsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisgICAgZGlhbG9nOjpiYWNrZHJvcCB7CisgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4wNSk7CisgICAgfQorCisgICAgI2RpYWxvZy1mcmFtZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIHBhZGRpbmc6IDZweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgIGN1cnNvcjogZGVmYXVsdDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10b29sYmFyLWJ1dHRvbiBpZD0ib3V0ZXIiCisgICAgICAgIG9uLWtleWRvd249Int7IG9uT3V0ZXJLZXlEb3duXyB9fSIKKyAgICAgICAgb24tY2xpY2s9Int7IG9uT3V0ZXJDbGlja18gfX0iPgorICAgICAgPGRpdiBpZD0iaWNvbiI+JiM5ODgxOzwvZGl2PgorICAgICAgPGRpdiBpZD0ic3RhdGUiPiYjOTY2Mjs8L2Rpdj4KKyAgICA8L3RyLXVpLWItdG9vbGJhci1idXR0b24+CisgICAgPGRpYWxvZyBpZD0iZGlhbG9nIgorICAgICAgICBvbi1jbGljaz0ie3sgb25EaWFsb2dDbGlja18gfX0iCisgICAgICAgIG9uLWNhbmNlbD0ie3sgb25EaWFsb2dDYW5jZWxfIH19Ij4KKyAgICAgIDxkaXYgaWQ9ImRpYWxvZy1mcmFtZSI+CisgICAgICAgIDxjb250ZW50PjwvY29udGVudD4KKyAgICAgIDwvZGl2PgorICAgIDwvZGlhbG9nPgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLm91dGVyLnRhYkluZGV4ID0gMDsKKyAgICB9LAorCisgICAgZ2V0IGljb25FbGVtZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMuJC5pY29uOworICAgIH0sCisKKyAgICBvbk91dGVyS2V5RG93bl86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGlmIChlLmtleUNvZGUgPT09ICcgJy5jaGFyQ29kZUF0KDApKSB7CisgICAgICAgIHRoaXMudG9nZ2xlXygpOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICB9CisgICAgfSwKKworICAgIG9uT3V0ZXJDbGlja186IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBvciA9IHRoaXMuJC5vdXRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBpbnNpZGUgPSB0cnVlOworICAgICAgaW5zaWRlICY9IGUuY2xpZW50WCA+PSBvci5sZWZ0OworICAgICAgaW5zaWRlICY9IGUuY2xpZW50WCA8IG9yLnJpZ2h0OworICAgICAgaW5zaWRlICY9IGUuY2xpZW50WSA+PSBvci50b3A7CisgICAgICBpbnNpZGUgJj0gZS5jbGllbnRZIDwgb3IuYm90dG9tOworICAgICAgaWYgKCFpbnNpZGUpCisgICAgICAgIHJldHVybjsKKworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgdGhpcy50b2dnbGVfKCk7CisgICAgfSwKKworICAgIHRvZ2dsZV86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmlzT3BlbikKKyAgICAgICAgdGhpcy5zaG93KCk7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMuY2xvc2UoKTsKKyAgICB9LAorCisgICAgc2hvdzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5pc09wZW4pCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy4kLm91dGVyLmNsYXNzTGlzdC5hZGQoJ29wZW4nKTsKKworICAgICAgdmFyIGRkciA9IHRoaXMuJC5vdXRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciByVyA9IE1hdGgubWF4KGRkci53aWR0aCwgMTUwKTsKKyAgICAgIHRoaXMuJC5kaWFsb2cuc3R5bGUubWluV2lkdGggPSByVyArICdweCc7CisgICAgICB0aGlzLiQuZGlhbG9nLnNob3dNb2RhbCgpOworCisgICAgICB2YXIgZGR3ID0gdGhpcy4kLm91dGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOworICAgICAgdmFyIHcgPSB0aGlzLiQuZGlhbG9nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOworICAgICAgdGhpcy4kLmRpYWxvZy5zdHlsZS50b3AgPSBkZHIuYm90dG9tIC0gMSArICdweCc7CisgICAgICB0aGlzLiQuZGlhbG9nLnN0eWxlLmxlZnQgPSBkZHIubGVmdCArICdweCc7CisgICAgfSwKKworICAgIG9uRGlhbG9nQ2xpY2tfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMuaXNPcGVuKQorICAgICAgICByZXR1cm47CisgICAgICBpZiAoZS5zcmNFbGVtZW50ICE9PSB0aGlzLiQuZGlhbG9nKQorICAgICAgICByZXR1cm47CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICB0aGlzLmNsb3NlKCk7CisgICAgfSwKKworICAgIG9uRGlhbG9nQ2FuY2VsXzogZnVuY3Rpb24oZSkgeworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgdGhpcy5jbG9zZSgpOworICAgIH0sCisKKyAgICBjbG9zZTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMuaXNPcGVuKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLiQuZGlhbG9nLmNsb3NlKCk7CisgICAgICB0aGlzLiQub3V0ZXIuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpOworICAgICAgdGhpcy4kLm91dGVyLmZvY3VzKCk7CisgICAgfSwKKworICAgIGdldCBpc09wZW4oKSB7CisgICAgICByZXR1cm4gdGhpcy4kLmRpYWxvZy5oYXNBdHRyaWJ1dGUoJ29wZW4nKTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2Ryb3Bkb3duX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcm9wZG93bl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY1YTZkMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9kcm9wZG93bl90ZXN0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kcm9wZG93bi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2Jhc2ljJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1kcm9wZG93bicpOworICAgIGRkLnN0eWxlLm1hcmdpbkxlZnQgPSAnNTBweCc7CisgICAgZGQuc3R5bGUud2lkdGggPSAnNTBweCc7CisgICAgZGQuaWNvbkVsZW1lbnQudGV4dENvbnRlbnQgPSAnU2V0dGluZ3MgJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNjk5KTsKKworICAgIGRkLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlRGl2KHt0ZXh0Q29udGVudDogJ2l0ZW0gMSd9KSk7CisgICAgZGQuYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVEaXYoe3RleHRDb250ZW50OiAnaXRlbSAyIGxvbmdlcid9KSk7CisgICAgZGQuYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVEaXYoe3RleHRDb250ZW50OiAnaXRlbSAzJ30pKTsKKworICAgIHZhciBjb250YWluZXIgPSB0ci51aS5iLmNyZWF0ZURpdigpOworICAgIGNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkZCk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlRGl2KHt0ZXh0Q29udGVudDogJ3NvbWUgdGV4dCd9KSk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlRGl2KHt0ZXh0Q29udGVudDogJ3NvbWUgbW9yZSB0ZXh0J30pKTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVEaXYoe3RleHRDb250ZW50OiAnbW9yZSB0ZXh0J30pKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY29udGFpbmVyKTsKKworICAgIGRkLnNob3coKTsKKyAgICBkZC5jbG9zZSgpOworICB9KTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9lbGlkZWRfY2FjaGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9lbGlkZWRfY2FjaGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjNmNDM0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2VsaWRlZF9jYWNoZS5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIGEgY2FjaGluZyBsYXllciBmb3IgZWxpZGVkIHRleHQgdmFsdWVzLgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQ2FjaGUgZm9yIGVsaWRlZCBzdHJpbmdzLgorICAgKiBNb3ZlZCBmcm9tIHRoZSBFbGlkZWRUaXRsZUNhY2hlIHByb3RveXBlIHRvIGEgImdsb2JhbCIgZm9yIHNwZWVkCisgICAqICh2YXJpYWJsZSByZWZlcmVuY2UgaXMgMTAweCBmYXN0ZXIpLgorICAgKiAgIGtleTogU3RyaW5nIHdlIHdpc2ggdG8gZWxpZGUuCisgICAqICAgdmFsdWU6IEFub3RoZXIgZGljdCB3aG9zZSBrZXkgaXMgd2lkdGgKKyAgICogICAgIGFuZCB2YWx1ZSBpcyBhbiBFbGlkZWRTdHJpbmdXaWR0aFBhaXIuCisgICAqLworICB2YXIgZWxpZGVkVGl0bGVDYWNoZURpY3QgPSB7fTsKKyAgdmFyIGVsaWRlZFRpdGxlQ2FjaGUgPSBuZXcgRWxpZGVkVGl0bGVDYWNoZSgpOworCisgIC8qKgorICAgKiBBIGNhY2hlIGZvciBlbGlkZWQgc3RyaW5ncy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBFbGlkZWRUaXRsZUNhY2hlKCkgeworICAgIC8vIFRPRE8oanJnKTogcG9zc2libHkgb2Jzb2xldGVkIHdpdGggdGhlIGVsaWRlZCBzdHJpbmcgY2FjaGUuCisgICAgLy8gQ29uc2lkZXIgcmVtb3ZpbmcuCisgICAgdGhpcy50ZXh0V2lkdGhNYXAgPSB7fTsKKyAgfQorCisgIEVsaWRlZFRpdGxlQ2FjaGUucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIFJldHVybiBlbGlkZWQgdGV4dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB7Y3R4fSBDb250ZXh0IFRoZSBncmFwaGljcyBjb250ZXh0LgorICAgICAqIEBwYXJhbSB7cGl4V2lkdGh9IFBpeGVsIHdpZHRoLgorICAgICAqIEBwYXJhbSB7dGl0bGV9IE9yaWdpbmFsIHRpdGxlIHRleHQuCisgICAgICogQHBhcmFtIHt3aWR0aH0gRHJhd24gd2lkdGggaW4gd29ybGQgY29vcmRzLgorICAgICAqIEBwYXJhbSB7c2xpY2VEdXJhdGlvbn0gV2hlcmUgdGhlIHRpdGxlIG11c3QgZml0IChpbiB3b3JsZCBjb29yZHMpLgorICAgICAqIEByZXR1cm4ge0VsaWRlZFN0cmluZ1dpZHRoUGFpcn0gRWxpZGVkIHN0cmluZyBhbmQgd2lkdGguCisgICAgICovCisgICAgZ2V0OiBmdW5jdGlvbihjdHgsIHBpeFdpZHRoLCB0aXRsZSwgd2lkdGgsIHNsaWNlRHVyYXRpb24pIHsKKyAgICAgIHZhciBlbGlkZWREaWN0ID0gZWxpZGVkVGl0bGVDYWNoZURpY3RbdGl0bGVdOworICAgICAgaWYgKCFlbGlkZWREaWN0KSB7CisgICAgICAgIGVsaWRlZERpY3QgPSB7fTsKKyAgICAgICAgZWxpZGVkVGl0bGVDYWNoZURpY3RbdGl0bGVdID0gZWxpZGVkRGljdDsKKyAgICAgIH0KKworICAgICAgdmFyIGVsaWRlZERpY3RGb3JQaXhXaWR0aCA9IGVsaWRlZERpY3RbcGl4V2lkdGhdOworICAgICAgaWYgKCFlbGlkZWREaWN0Rm9yUGl4V2lkdGgpIHsKKyAgICAgICAgZWxpZGVkRGljdFtwaXhXaWR0aF0gPSB7fTsKKyAgICAgICAgZWxpZGVkRGljdEZvclBpeFdpZHRoID0gZWxpZGVkRGljdFtwaXhXaWR0aF07CisgICAgICB9CisKKyAgICAgIHZhciBzdHJpbmdXaWR0aFBhaXIgPSBlbGlkZWREaWN0Rm9yUGl4V2lkdGhbc2xpY2VEdXJhdGlvbl07CisgICAgICBpZiAoc3RyaW5nV2lkdGhQYWlyID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdmFyIG5ld3RpdGxlID0gdGl0bGU7CisgICAgICAgIHZhciBlbGlkZWQgPSBmYWxzZTsKKyAgICAgICAgd2hpbGUgKHRoaXMubGFiZWxXaWR0aFdvcmxkKGN0eCwgbmV3dGl0bGUsIHBpeFdpZHRoKSA+IHNsaWNlRHVyYXRpb24pIHsKKyAgICAgICAgICBpZiAobmV3dGl0bGUubGVuZ3RoICogMC43NSA8IDEpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBuZXd0aXRsZSA9IG5ld3RpdGxlLnN1YnN0cmluZygwLCBuZXd0aXRsZS5sZW5ndGggKiAwLjc1KTsKKyAgICAgICAgICBlbGlkZWQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVsaWRlZCAmJiBuZXd0aXRsZS5sZW5ndGggPiAzKQorICAgICAgICAgIG5ld3RpdGxlID0gbmV3dGl0bGUuc3Vic3RyaW5nKDAsIG5ld3RpdGxlLmxlbmd0aCAtIDMpICsgJy4uLic7CisKKyAgICAgICAgc3RyaW5nV2lkdGhQYWlyID0gbmV3IEVsaWRlZFN0cmluZ1dpZHRoUGFpcigKKyAgICAgICAgICAgIG5ld3RpdGxlLCB0aGlzLmxhYmVsV2lkdGgoY3R4LCBuZXd0aXRsZSkpOworICAgICAgICBlbGlkZWREaWN0Rm9yUGl4V2lkdGhbc2xpY2VEdXJhdGlvbl0gPSBzdHJpbmdXaWR0aFBhaXI7CisgICAgICB9CisgICAgICByZXR1cm4gc3RyaW5nV2lkdGhQYWlyOworICAgIH0sCisKKyAgICBxdWlja01lYXN1cmVUZXh0XzogZnVuY3Rpb24oY3R4LCB0ZXh0KSB7CisgICAgICB2YXIgdyA9IHRoaXMudGV4dFdpZHRoTWFwW3RleHRdOworICAgICAgaWYgKCF3KSB7CisgICAgICAgIHcgPSBjdHgubWVhc3VyZVRleHQodGV4dCkud2lkdGg7CisgICAgICAgIHRoaXMudGV4dFdpZHRoTWFwW3RleHRdID0gdzsKKyAgICAgIH0KKyAgICAgIHJldHVybiB3OworICAgIH0sCisKKyAgICBsYWJlbFdpZHRoOiBmdW5jdGlvbihjdHgsIHRpdGxlKSB7CisgICAgICByZXR1cm4gdGhpcy5xdWlja01lYXN1cmVUZXh0XyhjdHgsIHRpdGxlKSArIDI7CisgICAgfSwKKworICAgIGxhYmVsV2lkdGhXb3JsZDogZnVuY3Rpb24oY3R4LCB0aXRsZSwgcGl4V2lkdGgpIHsKKyAgICAgIHJldHVybiB0aGlzLmxhYmVsV2lkdGgoY3R4LCB0aXRsZSkgKiBwaXhXaWR0aDsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEEgcGFpciByZXByZXNlbnRpbmcgYW4gZWxpZGVkIHN0cmluZyBhbmQgd29ybGQtY29vcmRpbmF0ZSB3aWR0aAorICAgKiB0byBkcmF3IGl0LgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEVsaWRlZFN0cmluZ1dpZHRoUGFpcihzdHJpbmcsIHdpZHRoKSB7CisgICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7CisgICAgdGhpcy53aWR0aCA9IHdpZHRoOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBFbGlkZWRUaXRsZUNhY2hlOiBFbGlkZWRUaXRsZUNhY2hlCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2V2ZW50X3ByZXNlbnRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2V2ZW50X3ByZXNlbnRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5ZjZiY2UKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZXZlbnRfcHJlc2VudGVyLmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFByb3ZpZGVzIGNvbG9yIHNjaGVtZSByZWxhdGVkIGZ1bmN0aW9ucy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKyAgdmFyIHBhbGV0dGVSYXcgPSB0ci51aS5iLmdldFJhd0NvbG9yUGFsZXR0ZSgpOworICB2YXIgcGFsZXR0ZSA9IHRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlKCk7CisKKyAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7CisKKyAgLyoqCisgICAqIFByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IHZpZXcgdmFsdWVzIGZvciBldmVudHMuCisgICAqLworICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB7CisgICAgZ2V0U2VsZWN0YWJsZUl0ZW1Db2xvcjogZnVuY3Rpb24oaXRlbSkgeworICAgICAgdmFyIGNvbG9ySWQgPSBpdGVtLmNvbG9ySWQgKyB0aGlzLmdldENvbG9ySWRPZmZzZXRfKGl0ZW0pOworICAgICAgcmV0dXJuIHBhbGV0dGVbY29sb3JJZF07CisgICAgfSwKKworICAgIGdldENvbG9ySWRPZmZzZXRfOiBmdW5jdGlvbihldmVudCkgeworICAgICAgaWYgKGV2ZW50LnNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRCkKKyAgICAgICAgcmV0dXJuIHRyLnVpLmIucGFsZXR0ZVByb3BlcnRpZXMuaGlnaGxpZ2h0SWRCb29zdDsKKyAgICAgIGVsc2UgaWYgKGV2ZW50LnNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5ESU1NRUQpCisgICAgICAgIHJldHVybiB0ci51aS5iLnBhbGV0dGVQcm9wZXJ0aWVzLmRlc2F0dXJhdGVJZEJvb3N0OworICAgICAgcmV0dXJuIDA7CisgICAgfSwKKworICAgIGdldFRleHRDb2xvcjogZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIGlmIChldmVudC5zZWxlY3Rpb25TdGF0ZSA9PT0gU2VsZWN0aW9uU3RhdGUuRElNTUVEKQorICAgICAgICByZXR1cm4gJ3JnYig2MCw2MCw2MCknOworICAgICAgcmV0dXJuICdyZ2IoMCwwLDApJzsKKyAgICB9LAorCisgICAgZ2V0U2xpY2VDb2xvcklkOiBmdW5jdGlvbihzbGljZSkgeworICAgICAgcmV0dXJuIHNsaWNlLmNvbG9ySWQgKyB0aGlzLmdldENvbG9ySWRPZmZzZXRfKHNsaWNlKTsKKyAgICB9LAorCisgICAgZ2V0U2xpY2VBbHBoYTogZnVuY3Rpb24oc2xpY2UsIGFzeW5jKSB7CisgICAgICB2YXIgYWxwaGEgPSAxOworICAgICAgaWYgKGFzeW5jKQorICAgICAgICBhbHBoYSAqPSAwLjM7CisgICAgICByZXR1cm4gYWxwaGE7CisgICAgfSwKKworICAgIGdldEluc3RhbnRTbGljZUNvbG9yOiBmdW5jdGlvbihpbnN0YW50KSB7CisgICAgICB2YXIgY29sb3JJZCA9IGluc3RhbnQuY29sb3JJZCArIHRoaXMuZ2V0Q29sb3JJZE9mZnNldF8oaW5zdGFudCk7CisgICAgICByZXR1cm4gdHIudWkuYi5jb2xvclRvUkdCQVN0cmluZyhwYWxldHRlUmF3W2NvbG9ySWRdLCAxLjApOworICAgIH0sCisKKyAgICBnZXRPYmplY3RJbnN0YW5jZUNvbG9yOiBmdW5jdGlvbihpbnN0YW5jZSkgeworICAgICAgdmFyIGNvbG9ySWQgPSBpbnN0YW5jZS5jb2xvcklkICsgdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhpbnN0YW5jZSk7CisgICAgICByZXR1cm4gdHIudWkuYi5jb2xvclRvUkdCQVN0cmluZyhwYWxldHRlUmF3W2NvbG9ySWRdLCAwLjI1KTsKKyAgICB9LAorCisgICAgZ2V0T2JqZWN0U25hcHNob3RDb2xvcjogZnVuY3Rpb24oc25hcHNob3QpIHsKKyAgICAgIHZhciBjb2xvcklkID0KKyAgICAgICAgICBzbmFwc2hvdC5vYmplY3RJbnN0YW5jZS5jb2xvcklkICsgdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhzbmFwc2hvdCk7CisgICAgICByZXR1cm4gcGFsZXR0ZVtjb2xvcklkXTsKKyAgICB9LAorCisgICAgZ2V0Q291bnRlclNlcmllc0NvbG9yOiBmdW5jdGlvbihjb2xvcklkLCBzZWxlY3Rpb25TdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9hbHBoYU11bHRpcGxpZXIpIHsKKyAgICAgIHZhciBldmVudCA9IHtzZWxlY3Rpb25TdGF0ZTogc2VsZWN0aW9uU3RhdGV9OworICAgICAgcmV0dXJuIHRyLnVpLmIuY29sb3JUb1JHQkFTdHJpbmcoCisgICAgICAgICAgcGFsZXR0ZVJhd1tjb2xvcklkICsgdGhpcy5nZXRDb2xvcklkT2Zmc2V0XyhldmVudCldLAorICAgICAgICAgICAgICAob3B0X2FscGhhTXVsdGlwbGllciAhPT0gdW5kZWZpbmVkID8gb3B0X2FscGhhTXVsdGlwbGllciA6IDEuMCkpOworICAgIH0sCisKKyAgICBnZXRCYXJTbmFwc2hvdENvbG9yOiBmdW5jdGlvbihzbmFwc2hvdCwgb2Zmc2V0KSB7CisgICAgICB2YXIgY29sb3JJZCA9CisgICAgICAgICAgKHNuYXBzaG90Lm9iamVjdEluc3RhbmNlLmNvbG9ySWQgKyBvZmZzZXQpICUKKyAgICAgICAgICB0ci51aS5iLnBhbGV0dGVQcm9wZXJ0aWVzLm51bUdlbmVyYWxQdXJwb3NlQ29sb3JJZHM7CisgICAgICBjb2xvcklkICs9IHRoaXMuZ2V0Q29sb3JJZE9mZnNldF8oc25hcHNob3QpOworICAgICAgcmV0dXJuIHRyLnVpLmIuY29sb3JUb1JHQkFTdHJpbmcocGFsZXR0ZVJhd1tjb2xvcklkXSwgMS4wKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBFdmVudFByZXNlbnRlcjogRXZlbnRQcmVzZW50ZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZmFzdF9yZWN0X3JlbmRlcmVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZmFzdF9yZWN0X3JlbmRlcmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NmODkzMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9mYXN0X3JlY3RfcmVuZGVyZXIuaHRtbApAQCAtMCwwICsxLDEzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgZHJhd2luZyBtYXNzaXZlIG51bWJlcnMgb2YKKyAqIGNvbG9yZWQgcmVjdGFuZ2xlcyBpbnRvIGEgY2FudmFzIGluIGFuIGVmZmljaWVudCBtYW5uZXIsIHByb3ZpZGVkCisgKiB0aGV5IGFyZSBkcmF3biBsZWZ0IHRvIHJpZ2h0IHdpdGggZml4ZWQgeSBhbmQgaGVpZ2h0IHRocm91Z2hvdXQuCisgKgorICogVGhlIGJhc2ljIGlkZWEgdXNlZCBoZXJlIGlzIHRvIGZ1c2Ugc3VicGl4ZWwgcmVjdGFuZ2xlcyB0b2dldGhlciBzbyB0aGF0CisgKiB3ZSBuZXZlciBpc3N1ZSBhIGNhbnZhcyBmaWxsUmVjdCBmb3IgdGhlbS4gSXQgdHVybnMgb3V0IEphdmFzY3JpcHQgY2FuCisgKiBkbyB0aGlzIHF1aXRlIGVmZmljaWVudGx5LCBjb21wYXJlZCB0byBhc2tpbmcgQ2FudmFzMkQgdG8gZG8gdGhlIHNhbWUuCisgKgorICogQSBmZXcgZXh0cmEgdGhpbmdzIGFyZSBkb25lIGJ5IHRoaXMgY2xhc3MgaW4gdGhlIG5hbWUgb2Ygc3BlZWQ6CisgKiAtIFZpZXdwb3J0IGN1bGxpbmc6IG9mZi12aWV3cG9ydCByZWN0YW5nbGVzIGFyZSBkaXNjYXJkZWQuCisgKgorICogLSBUaGUgYWN0dWFsIGRpc2NhcmRpbmcgb3BlcmF0aW9uIGlzIGRvbmUgaW4gd29ybGQgc3BhY2UsCisgKiAgIGUuZy4gcHJlLXRyYW5zZm9ybS4KKyAqCisgKiAtIFJhdGhlciB0aGFuIGV4cGVuZGluZyBjb21wdXRlIGN5Y2xlcyB0cnlpbmcgdG8gZmlndXJlIG91dCBhbiBhdmVyYWdlCisgKiAgIGNvbG9yIGZvciBmdXNlZCByZWN0YW5nbGVzIGZyb20gY3NzIHN0cmluZ3MsIHlvdSBpbnN0ZWFkIGRyYXcgdXNpbmcKKyAqICAgcGFsbGV0aXplZCBjb2xvcnMuIFRoZSBmdXNlZCByZWN0IGNvbG9yIGlzIGNob29zZW4gZnJvbSB0aGUgcmVjdGFuZ2xlIHdpdGgKKyAqICAgdGhlIGhpZ2hlciBhbHBoYSB2YWx1ZSwgaWYgZXF1YWwgdGhlIG1heCBwYWxsZXRlIGluZGV4IGVuY291bnRlcmVkLgorICoKKyAqIE1ha2Ugc3VyZSB0byBmbHVzaCB0aGUgdHJhY2tSZW5kZXJlciBiZWZvcmUgZmluaXNoaW5nIGRyYXdpbmcgaW4gb3JkZXIKKyAqIHRvIGNvbW1pdCBhbnkgcXVldWVkIGRyYXdpbmcgb3BlcmF0aW9ucy4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogQ3JlYXRlcyBhIGZhc3QgcmVjdCByZW5kZXJlciB3aXRoIGEgc3BlY2lmaWMgc2V0IG9mIGN1bGxpbmcgcnVsZXMKKyAgICogYW5kIGNvbG9yIHBhbGxldHRlLgorICAgKiBAcGFyYW0ge0dyYXBoaWNzQ29udGV4dDJEfSBjdHggQ2FudmFzMkQgZHJhd2luZyBjb250ZXh0LgorICAgKiBAcGFyYW0ge251bWJlcn0gbWluUmVjdFNpemUgT25seSByZWN0YW5nbGVzIHdpdGggd2lkdGggPCBtaW5SZWN0U2l6ZSBhcmUKKyAgICogICAgY29uc2lkZXJlZCBmb3IgbWVyZ2luZy4KKyAgICogQHBhcmFtIHtudW1iZXJ9IG1heE1lcmdlRGlzdCBDb250cm9scyBob3cgbWFueSBzdWNjZXNzaXZlIHNtYWxsIHJlY3RhbmdsZXMKKyAgICogICAgY2FuIGJlIG1lcmdlZCB0b2dldGhlciBiZWZvcmUgaXNzdWluZyBhIHJlY3RhbmdsZS4KKyAgICogQHBhcmFtIHtBcnJheX0gcGFsbGV0dGUgVGhlIGNvbG9yIHBhbGxldGUgZm9yIGRyYXdpbmcuIFBhbGxldHRlIHNsb3RzCisgICAqICAgIHNob3VsZCBtYXAgdG8gdmFsaWQgQ2FudmFzIGZpbGxTdHlsZSBzdHJpbmdzLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIEZhc3RSZWN0UmVuZGVyZXIoY3R4LCBtaW5SZWN0U2l6ZSwgbWF4TWVyZ2VEaXN0LCBwYWxsZXR0ZSkgeworICAgIHRoaXMuY3R4XyA9IGN0eDsKKyAgICB0aGlzLm1pblJlY3RTaXplXyA9IG1pblJlY3RTaXplOworICAgIHRoaXMubWF4TWVyZ2VEaXN0XyA9IG1heE1lcmdlRGlzdDsKKyAgICB0aGlzLnBhbGxldHRlXyA9IHBhbGxldHRlOworICB9CisKKyAgRmFzdFJlY3RSZW5kZXJlci5wcm90b3R5cGUgPSB7CisgICAgeV86IDAsCisgICAgaF86IDAsCisgICAgbWVyZ2luZ186IGZhbHNlLAorICAgIG1lcmdlU3RhcnRYXzogMCwKKyAgICBtZXJnZUN1clJpZ2h0XzogMCwKKyAgICBtZXJnZWRDb2xvcklkXzogMCwKKyAgICBtZXJnZWRBbHBoYV86IDAsCisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2VzIHRoZSB5IHBvc2l0aW9uIGFuZCBoZWlnaHQgZm9yIHN1YnNlcXVlbnQgZmlsbFJlY3QKKyAgICAgKiBjYWxscy4geCBhbmQgd2lkdGggYXJlIHNwZWNpZmllaWQgb24gdGhlIGZpbGxSZWN0IGNhbGxzLgorICAgICAqLworICAgIHNldFlhbmRIOiBmdW5jdGlvbih5LCBoKSB7CisgICAgICBpZiAodGhpcy55XyA9PT0geSAmJgorICAgICAgICAgIHRoaXMuaF8gPT09IGgpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMuZmx1c2goKTsKKyAgICAgIHRoaXMueV8gPSB5OworICAgICAgdGhpcy5oXyA9IGg7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEZpbGxzIHJlY3RhbmdsZSBhdCB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uLCBpZiB2aXNpYmxlLiBJZiB0aGUKKyAgICAgKiByZWN0YW5nbGUgaXMgc3VicGl4ZWwsIGl0IHdpbGwgYmUgbWVyZ2VkIHdpdGggYWRqYWNlbnQgcmVjdGFuZ2xlcy4KKyAgICAgKiBUaGUgZHJhd2luZyBvcGVyYXRpb24gbWF5IG5vdCB0YWtlIGVmZmVjdCB1bnRpbCBmbHVzaCBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGNvbG9ySWQgVGhlIGNvbG9yIG9mIHRoaXMgcmVjdGFuZ2xlLCBhcyBhbiBpbmRleAorICAgICAqICAgICBpbiB0aGUgcmVuZGVyZXIncyBjb2xvciBwYWxsZXRlLgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhbHBoYSBUaGUgb3BhY2l0eSBvZiB0aGUgcmVjdGFuZ2xlIGFzIDAuMC0xLjAgbnVtYmVyLgorICAgICAqLworICAgIGZpbGxSZWN0OiBmdW5jdGlvbih4LCB3LCBjb2xvcklkLCBhbHBoYSkgeworICAgICAgdmFyIHIgPSB4ICsgdzsKKyAgICAgIGlmICh3IDwgdGhpcy5taW5SZWN0U2l6ZV8pIHsKKyAgICAgICAgaWYgKHIgLSB0aGlzLm1lcmdlU3RhcnRYXyA+IHRoaXMubWF4TWVyZ2VEaXN0XykKKyAgICAgICAgICB0aGlzLmZsdXNoKCk7CisgICAgICAgIGlmICghdGhpcy5tZXJnaW5nXykgeworICAgICAgICAgIHRoaXMubWVyZ2luZ18gPSB0cnVlOworICAgICAgICAgIHRoaXMubWVyZ2VTdGFydFhfID0geDsKKyAgICAgICAgICB0aGlzLm1lcmdlQ3VyUmlnaHRfID0gcjsKKyAgICAgICAgICB0aGlzLm1lcmdlZENvbG9ySWRfID0gY29sb3JJZDsKKyAgICAgICAgICB0aGlzLm1lcmdlZEFscGhhXyA9IGFscGhhOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHRoaXMubWVyZ2VDdXJSaWdodF8gPSByOworCisgICAgICAgICAgaWYgKHRoaXMubWVyZ2VkQWxwaGFfIDwgYWxwaGEgfHwKKyAgICAgICAgICAgICAgKHRoaXMubWVyZ2VkQWxwaGFfID09PSBhbHBoYSAmJiB0aGlzLm1lcmdlZENvbG9ySWRfIDwgY29sb3JJZCkpIHsKKyAgICAgICAgICAgIHRoaXMubWVyZ2VkQWxwaGFfID0gYWxwaGE7CisgICAgICAgICAgICB0aGlzLm1lcmdlZENvbG9ySWRfID0gY29sb3JJZDsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh0aGlzLm1lcmdpbmdfKQorICAgICAgICAgIHRoaXMuZmx1c2goKTsKKyAgICAgICAgdGhpcy5jdHhfLmZpbGxTdHlsZSA9IHRoaXMucGFsbGV0dGVfW2NvbG9ySWRdOworICAgICAgICB0aGlzLmN0eF8uZ2xvYmFsQWxwaGEgPSBhbHBoYTsKKyAgICAgICAgdGhpcy5jdHhfLmZpbGxSZWN0KHgsIHRoaXMueV8sIHcsIHRoaXMuaF8pOworICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBDb21taXRzIGFueSBwZW5kaW5nIGZpbGxSZWN0IG9wZXJhdGlvbnMgdG8gdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3MKKyAgICAgKiBjb250ZXh0LgorICAgICAqLworICAgIGZsdXNoOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLm1lcmdpbmdfKSB7CisgICAgICAgIHRoaXMuY3R4Xy5maWxsU3R5bGUgPSB0aGlzLnBhbGxldHRlX1t0aGlzLm1lcmdlZENvbG9ySWRfXTsKKyAgICAgICAgdGhpcy5jdHhfLmdsb2JhbEFscGhhID0gdGhpcy5tZXJnZWRBbHBoYV87CisgICAgICAgIHRoaXMuY3R4Xy5maWxsUmVjdCh0aGlzLm1lcmdlU3RhcnRYXywgdGhpcy55XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVyZ2VDdXJSaWdodF8gLSB0aGlzLm1lcmdlU3RhcnRYXywgdGhpcy5oXyk7CisgICAgICAgIHRoaXMubWVyZ2luZ18gPSBmYWxzZTsKKyAgICAgIH0KKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBGYXN0UmVjdFJlbmRlcmVyOiBGYXN0UmVjdFJlbmRlcmVyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2Zhdmljb25zLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvZmF2aWNvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzgyYTEyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2Zhdmljb25zLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKyAgdmFyIEZhdmljb25zQnlIdWUgPSB7CisgICAgYmx1ZTogJ2RhdGE6aW1hZ2Uvdm5kbWljcm9zb2Z0aWNvbjtiYXNlNjQsQUFBQkFBSUFFQkFBQUFFQUlBQm9CQUFBSmdBQUFDQWdBQUFCQUNBQXFCQUFBSTRFQUFBb0FBQUFFQUFBQUNBQUFBQUJBQ0FBQUFBQUFBQUVBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBamo4eEFHQXJJZ3FPUHpFOG5VWTNkcUpKT0plaVNUaVhuVVkzZG80L01UeGhLeUlLamtBeEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUpCd0FBQUFBQVpKQk16U29TenFsc1U4KzZiUlFQLzIxVVQvL3RWRS8vN1JRUC8yd1R6M3Bwa282cFk5QU1qUUFBQUFCVHlNYkFBQUFBQUI3ZTNzQUFQLy9BS0ZTUkUrd1R6M2R0VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLyt6VUQ3L3NFODkvN0JPUGYrcVREdmRsME0wVHdBQUFBQldKeDRBK2ZuNUFOamQzVG5JaVg3ZnRWQTkvN1ZSUC8rMVVULy90VkUvLzdWUlAvK3hUejMvckUwOC82eE1PLytzVER2L3JFMDgvNmRLT3QrU1FUTTVxMHc3QUxPMHRBM3Y4Zkd1MDV1Ui83Tk1PZiswVHp6L3RFODgvN1JQUHYrdVRUMy9wMG83LzZaSk92K21TVHIvcGtrNi82WkpPdittU2pyL24wWTRybkl3S2czaDRlRks5L2o0OE4yenJQL0ZlR3IveG5wcy84WjZiUC9BYVV2L3RsdzEvN1JiTmYrMVd6WC90RnMxLzdSYk5mKzBXelgvdEZzMS83TmJOUENxV3kxSzdlM3RqUG41K2YvNDl2WC85dkx5Ly9ieTh2LzI4dkgvOGJadi8rNlJILy91a3lQLzdwTWovKzZTSS8vdWtpUC83cE1qLysyU0l2L3FqeUwvMzRrZmpQSHg4Ykw1K2ZuLytmbjUvL241K2YvNStmci8rZm41Ly9XN2NQL3psQjMvODVZaC8vT1dJZi96bGlILzg1WWgvL0dWSWYvcmtSLy82WkFmLytLTEhyTHo4L08yK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvMXVuRC84NVFkLy9PV0lmL3psaUgvODVZaC8vQ1VJUC9tamgvLzQ0d2UvK09NSHYvZGlSNjI4dkx5bWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLzlieDAvL09YSS8vem1DYi84NWdtLysrVkl2L2hqQi8vM1lvZS85MktIdi9kaWg3LzJJWWRtZkh4OFZ6NCtQajMrZm41Ly9uNStmLzUrZm4vK2ZuNS8vam8wLy8zM2J2Lzk5MjkvL2JidGYvZXVEWC8wNm9KLzlPckMvL1Rxd3YvMDZvTTk4eWZEMXpyNitzWTkvZjN4dm41K2YvNStmbi8rZm41Ly9uNStmLzUrdnYvK2Z2OC8vbjcvZi8zK1BILzNNczYvOU84QVAvVXZRRC8xTDBBLzlLOEFNYkl0QUFZLy8vL0FQVDA5RmI0K1BqeStmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZnIvOS9idS85ektPZi9UdXdELzFMd0EvOVM4QVBMUXVBQlczY1FBQU96czdBRG01dVlGOXZiMmVQbjUrZlQ1K2ZuLytmbjUvL241K2YvNStmbi8rZm42Ly9mMjd2L2N5VG4vMDdzQS85UzhBUFRSdWdCNHc2MEFCY215QUFBQUFBQUE4UER3QU96czdBYjI5dlpkK1BqNDB2bjUrZno1K2ZuLytmbjUvL241K2YvNDkvSC81TmR1L05qRUlkTFN1Z0JkeWJJQUJzeTFBQUFBQUFBQUFBQUFBQUFBQUFEbjUrY0FxS2lvQVBUMDlDSDM5L2R5K1BqNHR2ajQrTlg0K1BqVitQajR0dlgwNjNMdDZNTWhPUUFBQU0rL1JBQUFBQUFBQUFBQUFQQVBBQURBQXdBQXdBTUFBSUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFCQUFDQUFRQUF3QU1BQVBBUEFBQW9BQUFBSUFBQUFFQUFBQUFCQUNBQUFBQUFBQUFRQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkN3VUVERGdaRXh4V0p4NHRZaXdpTjJJc0lqZFdKeDR0T0JrVEhBc0ZCQXdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vL3dBYkRBa0taUzBqTVlzK01XeWRSamVpcGtvNng2dE1POXV0VFR6anJVMDg0NnRNTzl1bVNqckhuVVkzb29zK01XeGxMU014R3d3SkN2Ly8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnWkZBQVBCd1VIY2pNb1BKdEZOcHFzVFR6aHMxQSsvTFZSUC8rMlVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83WlJQLysxVVQvL3MxQSsvS3hOUE9HYlJUYWFjVEluUEE4SEJRYzRHUk1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQveXA0QVVDUWNHWlZETklDdFRqemt0VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzBVVC8vczFBKy83SlFQdityVER2a2trRXpnRThqR3huL3hab0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUEvLy8vQUdzd0pTcWlTVGl2czFBKys3VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RGQSsvN0ZQUGYreFR6My9zVTg5LzdGUFBmK3ZUajM3bmtjM3IyZ3VKQ3IvLy84QUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdNREFQL0RvZ0IvVkV3c3FFMDl2N1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdOUVB2K3ZUajMvcjA0OS82OU9QZit2VGozL3IwNDkvNjlPUGYrdVRqei9vVWc0djIweEppei9ubnNBQWdFQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEMTlmVUFrcDJmSGRLMnNiVzVXMHIvdFZBKy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLyt5VUQ3L3JVMDgvNnhOUFArdFRUei9yVTA4LzYxTlBQK3RUVHovclUwOC82MU5QUCtzVFR6L25rWTN0V0FxSVIycFN6c0FBQUFBQUFBQUFBQUFBQUFBZVhsNUFEWTJOZ25kMzkrTzZ0YlQvYmxiU3YrMVVENy90VkUvLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8rMVVULy9zbEErLzZ4TlBQK3JURHYvcTB3Ny82dE1PLytyVER2L3EwdzcvNnRNTy8rclREdi9xMHc3LzZ0TU8vK3FURHY5bGtNMGppVVFEUWxTSlIwQUFBQUFBQUFBQUFELy8vOEF4TVRFUy9YMjl1M3MyTlgvdVZ0Sy83VlFQdisxVVQvL3RWRS8vN1ZSUC8rMVVULy90VkUvLzdWUlAvKzFVVC8vdFZFLy83RlBQditxVER2L3FFczYvNmhMT3Yrb1N6ci9xRXM2LzZoTE92K29TenIvcUVzNi82aExPditvU3pyL3FFczYvNmxMT3YrbFNUbnRoRHN1Uy8rVGNnQUFBQUFBbTV1YkFIQndjQS9vNk9peCt2djgvK3pZMVArNVcwci90VkErLzdWUlAvKzFVVC8vdFZFLy83VlJQLysxVVQvL3RWRS8vN1ZSUC8reFR6My9xRXM2LzZaS092K21TanIvcGtvNi82WktPdittU2pyL3BrbzYvNlpLT3YrbVNqci9wa282LzZaS092K21TanIvcGtvNi82WktPditiUlRheFNpRWFEMmN1SkFELy8vOEF5Y25KUmZYMTlmRDYrL3ovNjlmVS83aFlSLyswVGp2L3RFNDgvN1JPUFArMFRqei90RTQ4LzdST1BQKzBUejMvcjA0Ky82VkpPditqU0RuL28wZzUvNk5JT2YralNEbi9vMGc1LzZOSU9mK2pTRG4vbzBnNS82TklPZitqU0RyL28wZzUvNk5JT2YralNEbi9vMGc2LzZCSE9mQ0NPUzlGMEZ4S0FBQUFBQUxrNU9TTitmbjUvL242K3YveTUrWC8wNXVTLzlDVGlQL1FsSW4vMEpTSi85Q1VpZi9RbEluLzBKU0svOHlHYi8vQWFEYi92V2MwLzcxbk5mKzlaelQvdldjMC83MW5OUCs5WmpUL3ZXWTAvNzFtTlArOVpqVC92R1kwLzd4bU5QKzhaalQvdkdZMC83eG1OUCs4WmpUL3UyVTAvN0ZpTFkwQUFBQUNrNU9URnUvdjc4WDUrZm4vK2ZuNS8vbjUrZi81K3ZyLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrLzMvOTlpeS8vS1dJLy95bFNILzhaVWgvL0dWSWYveGxTSC84WlVoLy9HVklmL3hsU0gvOFpVaC8vR1ZJZi94bFNILzhaVWgvL0dWSWYveGxTSC84WlVoLy9DVUlmL3ZreUQvNVkwZnhZMVhFeGJEdzhNejlQVDA1Zm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL243L2YvMzJMTC84NWNqLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi93bENELzdwSWcvKzZTSVAvcGp4L2x1bklaTTlYVjFWRDM5L2YwK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2Z2OS8vZllzdi96bHlQLzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC83NU1nLyt1UkgvL3FrQi8vNnBBZi8raVBIL1RJZkJ0UTNkM2RZZmo0K1BuNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNSsvMy85OWl5Ly9PWEkvL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8rNlRJUC9vangvLzU0OGYvK2VQSC8vbmp4Ly81bzRmK2MxL0hHSGg0ZUZsK1BqNCt2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjcvZi8zMkxMLzg1Y2ovL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvdGtpRC81WTBmLytTTkgvL2xqUi8vNVkwZi8rV05ILy9rakIvNnpuOGNaZURnNEZyNCtQajMrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZnY5Ly9mWXN2L3pseVAvODVZaC8vT1dJZi96bGlILzg1WWgvL09XSWYvemxpSC84NVloLy9PV0lmL3psaUgvNjVFZy8rS01Idi9paXg3LzRvc2UvK0tMSHYvaWl4Ny80b3NlLytDTEh2ZkxmUnRhM056Y1F2ZjM5Ky81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81Ky8zLzk5aXkvL09YSS8vemxpSC84NVloLy9PV0lmL3psaUgvODVZaC8vT1dJZi96bGlILzg1WWgvK3FSSVAvZ2loNy8zNG9lLzkrS0h2L2ZpaDcvMzRvZS85K0tIdi9maWg3LzNZZ2U3OFY2R2tMUzB0SWo5ZlgxMmZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNy9mLzMyTEgvODVZZy8vT1ZIdi96bFI3Lzg1VWUvL09WSHYvemxSNy84NVVlLy9PVklmL3BqeUgvM29nZi85MkhILy9kaHgvLzNZY2YvOTJISC8vZGh4Ly8zWWNmLzkySEgvL2FoaDdadW5NWkk1NmVuZ2p5OHZLdStmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmcjcvL2pyMmYvMnlwTC85c21QLy9iSmtQLzJ5WkQvOXNtUS8vYkprUC8yeVpELzVyTkkvOU9lRlAvU25oWC8wcDRWLzlLZUZmL1NuaFgvMFowVi85R2RGZi9SblJYLzBaMFYvOHlXRnE2S1ZCY0kvLy8vQU8zdDdXcjUrZm4rK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNi8vbjYvUC81K3Z6LytmcjgvL242L1AvNSt2ei8rZnI4Ly9uNi9QL2gwMTMvMHJzQS85TzhBUC9UdkFELzA3d0EvOU84QVAvVHZBRC8wN3dBLzlPOEFQL1N2QUQreUxNQWF2L21BQURyNitzQTRlSGhKUGIyOXR2NStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvK0xTVy8vVHV3RC8xTHdBLzlTOEFQL1V2QUQvMUx3QS85UzhBUC9VdkFELzFMd0EvOUs2QU51L3FnQWt5TEVBQUx1N3V3QUFBQUFBOHZMeWdmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vNHRKYi85TzdBUC9VdkFELzFMd0EvOVM4QVAvVXZBRC8xTHdBLzlTOEFQL1V2QUQvenJZQWdRQUFBQUNmalFBQUFBQUFBT3pzN0FEazVPUWU5dmIyelBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvaTBsdi8wN3NBLzlTOEFQL1V2QUQvMUx3QS85UzhBUC9VdkFELzFMd0EvOUs2QU16Q3JBQWV5YklBQUFBQUFBQUFBQUFBc0xDd0FQLy8vd0R2Nys5TytQajQ3UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8rTFNXLy9UdXdELzFMd0EvOVM4QVAvVXZBRC8xTHdBLzlTOEFQL1R1d0RzeTdRQVR1N1VBQUNYaFFBQUFBQUFBQUFBQUFBQUFBQUExdGJXQUxTMHRBUHk4dkp2K1BqNDlQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi80dEpiLzlPN0FQL1V2QUQvMUx3QS85UzhBUC9VdkFELzA3d0E5TTYzQUc2WmlRQUR0cUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTR1TGlBTmZYMXdiejgvTnorUGo0OFBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi9pMGx2LzA3c0EvOVM4QVAvVXZBRC8xTHdBLzlPOEFQRFB1QUJ6dUtNQUJzR3JBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNCtQakFOalkyQVR5OHZKWitQajQydm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LytIU1cvL1R1Z0QvMUxzQS85UzhBUC9UdXdEYXpyY0FXYmVqQUFUQnF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUExTlRVQUI4Zkh3RHc4UEFyOXZiMm5QajQrTzM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLzd1YXMvK2JaZHYvajFtdnQyY1l6bk11MEFDc1VGQUFBdGFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT3ZyNndEajQrTUc4dkx5T3ZiMjlwRDQrUGpTK2ZuNTh2bjUrZjM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41L2ZuNStmTDQrZnJTOS9qOGtQVDEvVHJzOHY4RzhQUC9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURoNGVFQTF0YldBdS92N3h2MDlQUko5dmIyZHZiMjlwZjM5L2VvOS9mM3FQYjI5cGYyOXZaMjlQVDBTZS92N3h2VzF0WUM0ZUhoQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvZ0IvLy9nQUgvL2dBQWYvd0FBRC80QUFBZjhBQUFEK0FBQUFmQUFBQUR3QUFBQTRBQUFBR0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUdBQUFBQndBQUFBOEFBQUFQZ0FBQUg0QUFBQi9BQUFBLzRBQUFmL2dBQWYvOEFBUC8vd0FQLycsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICBncmVlbjogJ2RhdGE6aW1hZ2Uvdm5kbWljcm9zb2Z0aWNvbjtiYXNlNjQsQUFBQkFBSUFFQkFBQUFFQUlBQm9CQUFBSmdBQUFDQWdBQUFCQUNBQXFCQUFBSTRFQUFBb0FBQUFFQUFBQUNBQUFBQUJBQ0FBQUFBQUFBQUVBQUFTQ3dBQUVnc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYldKTEFFcENNd3B0WWtzOGVXeFRkbjF3VnBkOWNGYVhlV3hUZG0xaVN6eEtRek1LYldKTEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBK09Dc0FBQUFBQVhCbFRUU0JkRm1saUhwZTZZcDhYLzJMZldEL2kzMWcvNHA4WC8ySGVWM3BmM05ZcFc1alREUUFBQUFCUFRjcUFBQUFBQUI3ZTNzQWx2Ly9BSUIxWGsrSGVWM2RpMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtKZTEvL2gzcGQvNGQ1WGYrRGRWcmRkR2hRVHdBQUFBQkRQQzRBK2ZuNUFOcmIzRG11cFpQZmlueGYvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0llbDcvaEhkYi80UjJXLytFZGx2L2hIZGIvNEJ6V045d1pVMDVnM1phQUxTMHRBM3c4UEd1dTdTai80aDVXLytKZTE3L2lYdGUvNHQ4WC8rSGVGei9nbk5ZLzRGeVdQK0JjbGovZ1hKWS80RnlXUCtCY2xqL2ZHMVVybDlOUEEzaDRlRks5L2o0OE12RnVmK2ttb1AvcHB1Ri82YWJoZitKa0hML2M0UmovM09FWS85emhHUC9jb05qLzNLRFkvOXlnMlAvY29Oai8zQ0RZdkJnZjE5SzdlM3RqUG41K2YvMzl2Yi85ZlR6Ly9YMDgvLzA5UFAvaXRLdy8wbStoLzlNdjRuL1RMK0ovMHkvaWY5TXY0bi9UTCtKLzB5K2lQOUx1NGIvUnJKL2pQSHg4Ykw1K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzRyWHRQOUh3b24vU3NPTC8wckRpLzlLdzR2L1NzT0wvMG5DaXY5SHZZYi9ScnVGLzBTMWdiTHo4L08yK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YrSzE3UC9SOEtKLzByRGkvOUt3NHYvU3NPTC8wbkJpZjlHdVlUL1JiYUMvMFcyZ3Y5RHNuKzI4dkx5bWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2pkaTEvMHZEalA5T3hJNy9Uc1NPLzByQWl2OUZ0b1AvUkxLQS8wU3lnUDlFc29EL1FxNTltZkh4OFZ6NCtQajMrZm41Ly9uNStmLzUrZm4vK2ZuNS85cnc1di9INnRuL3lPcmEvOExwMmY5ZTFiNy9POHl6L3ozTXRQODl6TFQvUGN1eTl6ekFwVnpyNitzWTkvZjN4dm41K2YvNStmbi8rZm41Ly9uNStmLzcrdnIvL1ByNy8vejYrLy96K2ZuL1p1UFkvemJjenY4NTNjNy9PZDNPL3pqYnpjWTEwc1lZLy8vL0FQVDA5RmI0K1BqeStmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzYrZm4vOFBqMy8yWGoxLzgyM016L09kek4vem5jemZJNDJNbFdPK1hXQU96czdBRG01dVlGOXZiMmVQbjUrZlQ1K2ZuLytmbjUvL241K2YvNStmbi8rdm41Ly9ENDkvOWo0dGYvTmR2TS96bmN6ZlE0MmN0NE5jdTlCVGJSd2dBQUFBQUE4UER3QU96czdBYjI5dlpkK1BqNDB2bjUrZno1K2ZuLytmbjUvL241K2YveitQai9qdW5nL0ZMZjB0STQyY3RkTmRIQ0JqZlV4Z0FBQUFBQUFBQUFBQUFBQUFEbjUrY0FxS2lvQVBUMDlDSDM5L2R5K1BqNHR2ajQrTlg0K1BqVitQajR0dTMyOVhMTzcrd2hBRlFtQUdyVXlnQUFBQUFBQUFBQUFQQVBBQURBQXdBQXdBTUFBSUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFCQUFDQUFRQUF3QU1BQVBBUEFBQW9BQUFBSUFBQUFFQUFBQUFCQUNBQUFBQUFBQUFRQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkNRZ0dEQ3NtSFJ4Q095NHRTME0wTjB0RE5EZENPeTR0S3lZZEhBa0lCZ3dBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vL3dBVkVnNEtUVVUxTVd0Z1NteDViVk9pZ0hOWXg0TjJXOXVGZDF6amhYZGM0NE4yVzl1QWMxakhlVzFUb210Z1NteE5SalV4RlJNT0N2Ly8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNzbkhnQUxDZ2dIV0U4OFBIZHJVcHFFZDF2aGlYeGYvSXQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2lYeGYvSVIzVytGM2ExS2FWMDQ4UEFzS0NBY3JKeDRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy9BQVBqY3FHWEpuVDRDRmVGemtpMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0tmV0QvaVh4Zi80bDdYditEZGxya2NHVk5nRHcyS2huLy8rc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vQUZKS09TcDljRmF2aW54Zis0dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2lueGYvNGg2WHYrSWVsMy9pSHBkLzRoNlh2K0dlVjM3ZVcxVXIxQklOeXIvLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdNREFQLy8zZ0JzWjFvc2duVmJ2NHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzRsOFgvK0hlVjMvaG5sYy80WjVYUCtHZVZ6L2hubGMvNFo1WFArR2VGei9mRzlWdjFSTE9pei85TG9BQWdJQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEMTlmVUFsNWliSGNiQ3VyV1NoR24vaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtKZTEvL2hYaGMvNFIzVy8rRmQxdi9oWGRiLzRWM1cvK0ZkMXYvaFhkYi80VjNXLytFZDF2L2VXMVR0VWxDTWgyQ2RWa0FBQUFBQUFBQUFBQUFBQUFBZVhsNUFEWTJOZ25lM3QrTzR0L1ovWktGYWYrTGZWLy9pMzFnLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArTGZXRC9pWHRlLzRSM1cvK0RkbHIvZzNaYS80TjJXditEZGxyL2czWmEvNE4yV3YrRGRsci9nM1phLzROMld2K0NkVnI5YzJkUGpod1pFd2svT1NzQUFBQUFBQUFBQUFELy8vOEF4TVRFUy9YMTl1M2s0ZHYva29ScC80dDlYLytMZldEL2kzMWcvNHQ5WVArTGZXRC9pMzFnLzR0OVlQK0xmV0QvaTMxZy80aDZYditDZFZyL2dYUlovNEYwV2YrQmRGbi9nWFJaLzRGMFdmK0JkRm4vZ1hSWi80RjBXZitCZEZuL2dYUlovNEYwV2Y5K2NsZnRaVnRHUy8zanJnQUFBQUFBbTV1YkFIQndjQS9vNk9peCsvdjcvK1BnMi8rU2hHbi9pMzFmLzR0OVlQK0xmV0QvaTMxZy80dDlZUCtMZldEL2kzMWcvNHQ5WVArSWVsNy9nWFJaLzRCeldQK0FjMWovZ0hOWS80QnpXUCtBYzFqL2dITlkvNEJ6V1ArQWMxai9nSE5ZLzRCeldQK0FjMWovZ0hOWS80QnpXUDkzYTFLeE9UTW5EMUJITndELy8vOEF5Y25KUmZYMTlmRDcrL3YvNCtEYS81Q0NaLytKZWwzL2lYdGQvNGw3WGYrSmUxMy9pWHRkLzRsN1hmK0tlMTcvaUhoZC80QnhWLzkvY0ZiL2YzQlcvMzl3VnY5L2NGYi9mM0JXLzM5d1Z2OS9jRmIvZjNCVy8zOXdWdjkvY0ZiL2YzQlcvMzl3VnY5L2NGYi9mM0JXLzMxdVZQQm5XVVJGbzQ1dEFBQUFBQUxrNU9TTitmbjUvL3I2K3YvdDdPai92TFNrLzdhdW5QKzNycDMvdDY2ZC83ZXVuZiszcnAzL3VLK2UvNkdtanY5dmtHMy9iSTVyLzJ5T2EvOXNqbXYvYkk1ci8yeU9hLzlzam12L2JJNXIvMnlPYS85c2ptci9iSTFxLzJ5TmF2OXNqV3IvYkkxcS8ydU5hdjlyaldyL2E0MXEvMTZHWkkwQUFBQUNrNU9URnUvdjc4WDUrZm4vK2ZuNS8vbjUrZi81K2ZyLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzgrdnYvd09mVi8wdkNpLzlLd29yL1NzS0svMHJDaXY5S3dvci9Tc0tLLzByQ2l2OUt3b3IvU3NLSy8wckNpdjlLd29yL1NzS0svMHJDaXY5S3dvci9Tc0tLLzBuQWlmOUp2NGovUnJlQ3hTdHhVQmJEdzhNejlQVDA1Zm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o2Ky8rLzU5WC9UTVNNLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlKd1luL1NMNkkvMGkraVA5R3VvWGxPSlZxTTlYVjFWRDM5L2YwK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vL1ByNy83L24xZjlNdzR6L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9TY0NKLzBlOGh2OUh2SWIvUjd5Ry8wYTZoZlE5b1hKUTNkM2RZZmo0K1BuNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOCt2di92K2ZWLzB6RGpQOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8waS9pUDlHdW9YL1JycUUvMGE2aFA5R3VvVC9Scm1EK1Q2bGRXSGg0ZUZsK1BqNCt2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejYrLysvNTlYL1RNT00vMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85SXZvZi9SYmlELzBXM2d2OUZ1SVAvUmJpRC8wVzRnLzlGdDRMNlBxWjJaZURnNEZyNCtQajMrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8vUHI3LzcvbjFmOU13NHovU3NPTC8wckRpLzlLdzR2L1NzT0wvMHJEaS85S3c0di9Tc09MLzByRGkvOUt3NHYvU0wySC8wVzJndjlGdFlIL1JiV0IvMFcxZ2Y5RnRZSC9SYldCLzBTMGdQYytvM1JhM056Y1F2ZjM5Ky81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi84K3Z2L3YrZlYvMHpEalA5S3c0di9Tc09MLzByRGkvOUt3NHYvU3NPTC8wckRpLzlLdzR2L1NzT0wvMGU4aHY5RXRJRC9STE9BLzBTemdQOUVzNEQvUkxPQS8wU3pnUDlFczREL1E3Ri83enllY1VMUzB0SWo5ZlgxMmZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96NisvKy81OVgvU3NPTC8wakNpdjlJd29yL1NNS0svMGpDaXY5SXdvci9TTUtLLzByQ2l2OUh1b1QvUkxGKy8wT3dmZjlFc0gzL1JMQjkvMFN3ZmY5RXNIMy9STEI5LzBTd2ZmOUNybnpaT0packk1NmVuZ2p5OHZLdStmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2bjYvOS94NmYrbDM4WC9vOS9ELzZUZncvK2szOFAvcE4vRC82VGZ3LytrMzhUL2E5S3ovMERCb2Y5QndLSC9RY0NoLzBIQW9mOUJ3S0QvUWNDZy8wRy9vUDlCdjZEL1FiK2cvMEM0bUs0dGJVNEkvLy8vQU8zdDdXcjUrZm4rK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK3ZuNi8vdjYrLy83K3Z2LysvcjcvL3Y2Ky8vNyt2di8vUHI3Ly92NisvK0I1OTcvTmR2Ti96bmN6Zjg1M00zL09kek4vem5jemY4NTNNMy9PZHpOL3puY3pmODUyODMrTnRIRGFrYi8rZ0RyNitzQTRlSGhKUGIyOXR2NStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMy9uM2Y4MjNNei9PZHpOL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1M00zL09kek4vempheTlzMHg3a2tOcy9CQUx1N3V3QUFBQUFBOHZMeWdmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vZitmZC96YmJ6UDg1M00zL09kek4vem5jemY4NTNNMy9PZHpOL3puY3pmODUzTTMvTjlYSGdRQUFBQUFzcFpvQUFBQUFBT3pzN0FEazVPUWU5dmIyelBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2Y5LzU5My9OdHZNL3puY3pmODUzTTMvT2R6Ti96bmN6Zjg1M00zL09kek4vempheTh3MHlyd2VOdERDQUFBQUFBQUFBQUFBc0xDd0FQLy8vd0R2Nys5TytQajQ3UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8zL24zZjgyMjh6L09kek4vem5jemY4NTNNMy9PZHpOL3puY3pmODUyOHpzTjlQRVRrRDQ1Z0FvbkpFQUFBQUFBQUFBQUFBQUFBQUExdGJXQUxTMHRBUHk4dkp2K1BqNDlQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9mK2ZkL3piYnpQODUzTTMvT2R6Ti96bmN6Zjg1M00zL09kdk05RGpXeDI0cW9KVURNYjJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTR1TGlBTmZYMXdiejgvTnorUGo0OFBuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZjkvNTkzL050dk0vem5jemY4NTNNMy9PZHpOL3puYnpQQTQxOGh6TXI2eEJqVEl1Z0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNCtQakFOalkyQVR5OHZKWitQajQydm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzM3bTNmOHoyOHovTjl6Ti96bmN6Zjg1Mjh6YU9OYklXVEsvc2dRMHlMc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUExTlRVQUI4Zkh3RHc4UEFyOXZiMm5QajQrTzM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL3ZmRHIvNVRxNHYrTDZPRHRZT0RVbkRUVHhTc0FHQnNBTXJ5d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT3ZyNndEajQrTUc4dkx5T3ZiMjlwRDQrUGpTK2ZuNTh2bjUrZjM1K2ZuLytmbjUvL241K2YvNStmbi8rZm41L2ZuNStmTDYrUGpTK3ZmM2tQdjA5VHIvNnU0Ry8rL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURoNGVFQTF0YldBdS92N3h2MDlQUko5dmIyZHZiMjlwZjM5L2VvOS9mM3FQYjI5cGYyOXZaMjlQVDBTZS92N3h2VzF0WUM0ZUhoQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvZ0IvLy9nQUgvL2dBQWYvd0FBRC80QUFBZjhBQUFEK0FBQUFmQUFBQUR3QUFBQTRBQUFBR0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUdBQUFBQndBQUFBOEFBQUFQZ0FBQUg0QUFBQi9BQUFBLzRBQUFmL2dBQWYvOEFBUC8vd0FQLycsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisKKyAgICByZWQ6ICdkYXRhOmltYWdlL3ZuZG1pY3Jvc29mdGljb247YmFzZTY0LEFBQUJBQUlBRUJBQUFBRUFJQUJvQkFBQUpnQUFBQ0FnQUFBQkFDQUFxQkFBQUk0RUFBQW9BQUFBRUFBQUFDQUFBQUFCQUNBQUFBQUFBQUFFQUFBU0N3QUFFZ3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVF4bWJBQzBSYWdwREdaczhTaHlzZGt3ZHNwZE1IYktYU2h5c2RrTVptend1RVdvS1F4bWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW1EbGdBQUFBQUFVUWFuelJQSHJpbFV4L0I2VlFneGYxVklNYi9WU0RHLzFRZ3hmMVRIOERwVGgyMnBVTVpuRFFBQUFBQkpRNVhBQUFBQUFCN2Vuc0EvLzhBQUZVcnIwOVNIOERkVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VUg4UC9VeC9CLzFJZndQOVFIcnJkUnhxbFR3QUFBQUFvRDE0QStmbjVBTnpmMXptTWF0UGZWQjdHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlUSDhML1VSNjgvMUFldlA5UUhyei9VUjY4LzA0ZHQ5OUVHYUE1VUI2N0FMUzBzdzN4OHUrdW5ZRGQvMUFaeFA5VEhjWC9VeDNGLzFRZXhmOVRIci8vVHgyMy8wOGN0djlQSGJiL1R4MjIvMDhkdHY5UEhiYi9TeHV1cmprU2ZnM2g0ZUZLK1BqMzhMV2Y1UDk3VXRML2ZWWFMvMzFWMC85Zk9jei9TU2ZDLzBrbndQOUpKOEQvU1NmQS8wa253UDlKSjhEL1NTZkEvMGdudi9BL0tMTks3ZTN0alBuNStmLzI5ZmovOHZEMy8vUHg5Ly95OFBmL2ZJTHovelEvOFA4M1F2RC9OMEx3L3pkQzhQODNRdkQvTjBMdy96ZEI3LzgyUU96L016M2dqUEh4OGJMNStmbi8rZm41Ly9uNitmLzUrdm4vK2ZuNS8zNkc5djh5UVBUL05rUDAvelpEOVA4MlEvVC9Oa1AwL3pWQzh2ODBRT3ovTTBEcS96SSs0N0x6OC9PMitmbjUvL241K2YvNStmbi8rZm41Ly9uNStmOTlodmIvTWtEMC96WkQ5UDgyUS9UL05rUDAvelZDOGY4elArZi9NajdrL3pJKzVQOHhQZDYyOHZMeW1mbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9nWW4yL3pkRTlQODdSL1QvTzBmMC96WkY4UDh5UU9QL01UL2UvekUvM3Y4eFA5Ny9MejNabWZIeDhWejQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvOWZaK1AvQnhmai93c2I0Lzd2RCtQODdqL1gvRG56eC94Rjk4ZjhSZmZIL0VYenc5eFp2NVZ6cjYrc1k5L2YzeHZuNStmLzUrZm4vK2ZuNS8vbjUrZi83Ky9uLy9QejUvLzM4K2YveCtQbi9PckQrL3dDWS8vOEFtZi8vQUpuLy93Q1ovY1lBbFBNWS8vLy9BUFQwOUZiNCtQankrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi82K2ZuLzd2WDUvem11L3Y4QWwvLy9BSmovL3dDWS92SUFsZnBXQUovL0FPenM3QURtNXVZRjl2YjJlUG41K2ZUNStmbi8rZm41Ly9uNStmLzUrZm4vK3ZuNS8rNzErZjg1cmY3L0FKYi8vd0NZLy9RQWx2eDRBSXpyQlFDUThnQUFBQUFBOFBEd0FPenM3QWIyOXZaZCtQajQwdm41K2Z6NStmbi8rZm41Ly9uNStmL3g5dm4vYnNQOC9DR2svdElBbHZ4ZEFKRHlCZ0NUOVFBQUFBQUFBQUFBQUFBQUFBRG41K2NBcUtpb0FQVDA5Q0gzOS9keStQajR0dmo0K05YNCtQalYrUGo0dHV2eTkzTEQ0ZlVoQUFDN0FFU282d0FBQUFBQUFBQUFBUEFQQUFEQUF3QUF3QU1BQUlBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQkFBQ0FBUUFBd0FNQUFQQVBBQUFvQUFBQUlBQUFBRUFBQUFBQkFDQUFBQUFBQUFBUUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJCZ0lNREJvS1BSd29EMTR0TGhGck55NFJhemNvRDE0dEdnbzlIQVlDREF3QUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVArMy93QU5CUjBLTHhKdU1VRVltR3hLSEt5aVRoMjJ4MUFldTl0UkhyM2pVUjY5NDFBZXU5dE9IYmJIU2h5c29rRVltR3d2RW00eERRVWVDdis2L3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCb0tQZ0FIQXhBSE5oUjlQRWticXBwUkhyM2hWQ0RFL0ZVZ3h2OVZJTWYvVlNESC8xVWd4djlWSU1iL1ZTREgvMVVneC85VklNYi9WQ0RFL0ZFZXZPRklHNm1hTlJSOFBBY0RFQWNhQ2owQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEVlVQOEFKZzVZR1VZYW80QlJINzdrVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1YL1ZCL0UvMVFmdy85UUhydmtSUm1nZ0NVT1ZoblFUdjhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBLy8vL0FESVRkU3BNSGJLdlZDREUrMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WQ0RFLzFNZnd2OVRIOEgvVXgvQi8xTWZ3djlTSDcvN1NoeXRyekVTY1NyLy8vOEFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3TURBTXRvL3dCVlBvWXNVU0MzdjFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xUWZ4UDlTSHNEL1VoNi8vMUlldi85U0hyLy9VaDYvLzFJZXYvOVNIci8vU3h5d3Z6TVRkeXltUGY4QUFRQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDE5ZlVBbmFLUUhiZXAxclZmTGNuL1ZCL0cvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VUg4UC9VUjYrLzFFZXZmOVJIcjMvVVI2OS8xRWV2ZjlSSHIzL1VSNjkvMUVldmY5UkhyMy9TaHV0dFMwUmFCMVBIcmtBQUFBQUFBQUFBQUFBQUFBQWVYbDVBRFkyTmduZjROeU8xOHp1L1Y4dHlmOVVIOGIvVlNERy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVkIvRC8xRWV2UDlRSHJyL1VCNjcvMUFldS85UUhydi9VQjY3LzFBZXUvOVFIcnYvVUI2Ny8xQWV1LzlRSHJyOVJocWtqaEVHS0FrbkRsb0FBQUFBQUFBQUFBRC8vLzhBeE1URVMvYjM5TzNaenUvL1h5M0ovMVFmeHY5VklNYi9WU0RHLzFVZ3h2OVZJTWIvVlNERy8xVWd4djlWSU1iL1ZTREcvMU1md3Y5UUhici9UeDI0LzA4ZHVQOVBIYmovVHgyNC8wOGR1UDlQSGJqL1R4MjQvMDhkdVA5UEhiai9UeDI0LzA4ZHVmOU5ITFR0UGhlUlM1czUvd0FBQUFBQW01dWJBSEJ3Y0EvbzZPaXgrL3o2LzlqTzcvOWZMY24vVkIvRy8xVWd4djlWSU1iL1ZTREcvMVVneHY5VklNYi9WU0RHLzFVZ3h2OVRIOEgvVHgyNC8wNGR0djlPSGJiL1RoMjIvMDRkdHY5T0hiYi9UaDIyLzA0ZHR2OU9IYmIvVGgyMi8wNGR0djlPSGJiL1RoMjIvMDRkdHY5Skc2bXhJdzFSRHpBU2NRRC8vLzhBeWNuSlJmWDE5ZkQ3L1ByLzJNM3YvMXdxeVA5U0hNWC9VaHpGLzFJY3hmOVNITVgvVWh6Ri8xSWN4ZjlUSGNYL1V4N0EvMDRjdGY5TkhMTC9UaHl6LzA0Y3MvOU5ITFAvVFJ5ei8wMGNzLzlPSExQL1RoeXovMDRjcy85T0hMUC9UaHl6LzA0Y3MvOU5ITFAvVGh5ei8wd2NzUEEvRm85Rll5VGtBQUFBQUFMazVPU04rZm41Ly9yNitmL240dlQvbm9EZC81WjIyditXZHRyL2xuYmEvNVoyMnYrV2R0ci9tSGZiLzM1ZzEvOUtNTXIvU0MvSC8wZ3Z4LzlJTDhmL1NDL0gvMGd2eC85SUw4Yi9TQy9HLzBndnh2OUhMOGIvUnkvRy8wY3Z4djlITDhiL1J5L0cvMGN2eHY5SEw4WC9SeTdGL3o4dHVJMEFBQUFDazVPVEZ1L3Y3OFg1K2ZuLytmbjUvL241K2YvNit2bi8rZnI1Ly9uNitmLzUrdm4vK2ZyNS8vbjYrZi85L2ZuL3ViNzMvemhGOHY4MlEvTC9Oa1B5L3paRDh2ODJRL0wvTmtQeS96WkQ4djgyUS9ML05rUHkvelpEOHY4MlEvTC9Oa1B5L3paRDh2ODJRL0wvTmtQeS96VkM4ZjgxUXZEL016L214UjhuamhiRHc4TXo5UFQwNWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly96OCtmKzV2ZmYvT0VYMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MVF2SC9ORUh2L3pSQjcvOHpRT3JsS1RPNk05WFYxVkQzOS9mMCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9QejUvN205OS84NFJmVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTlVMdy96UkE3UDgwUU92L05FRHIvek5BNmZRc044bFEzZDNkWWZqNCtQbjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzgvUG4vdWIzMy96aEY5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelZCNy84elFPbi9Nei9vL3pNLzZQOHpRT2ovTXovbitTMDR6bUhoNGVGbCtQajQrdm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL3o4K2YrNXZmZi9PRVgwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODBRZTcvTXovbS96TS81Zjh6UCtiL016L20vek0vNXY4eVArWDZMam5QWmVEZzRGcjQrUGozK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vL1B6NS83bTk5Lzg0UmZUL05rUDAvelpEOVA4MlEvVC9Oa1AwL3paRDlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05FSHMvekkrNC84eVB1UC9NajdqL3pJKzQvOHlQdVAvTWo3ai96SSs0ZmN0T014YTNOemNRdmYzOSsvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOC9Qbi91YjMzL3poRjlQODJRL1QvTmtQMC96WkQ5UDgyUS9UL05rUDAvelpEOVA4MlEvVC9Oa1AwL3pSQTYvOHhQZUgvTVQzZy96RTk0UDh4UGVEL01UM2cvekU5NFA4eFBlRC9NVDNlN3lzMnhrTFMwdElqOWZYMTJmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vejgrZis0dmZmL05rUDAvek5COVA4MFFmVC9ORUgwL3pSQjlQODBRZlQvTkVIMC96WkM4LzgxUCtuL01qemUvekk3M2Y4eU85My9NanZkL3pJNzNmOHlPOTMvTWp2ZC96STczZjh4TzlyWktUTzdJNTZlbmdqeTh2S3UrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rL3I1Lzl6ZStQK2NvdmYvbXFEMy81cWc5Lythb1BmL21xRDMvNXFnOS8rYW9QZi9Vb0x6L3gxcDUvOGVhZWIvSG1ubS94NXA1djhlYWVYL0htbmwveDVwNWY4ZWFPWC9IbWpsL3lCaDNhNGpKb2tJLy8vL0FPM3Q3V3I1K2ZuKytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2cjUvL3o4K2YvOC9Qbi8vUHo1Ly96OCtmLzgvUG4vL1B6NS8vejgrZjlkdmZ6L0FKZisvd0NaL3Y4QW1mNy9BSm4rL3dDWi92OEFtZjcvQUpuKy93Q1ovdjhBbVA3K0FKTHhhZ0M0L3dEcjYrc0E0ZUhoSlBiMjl0djUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzF1OC9mOEFsdi8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDVy9Oc0FpZWNrQUkveEFMdTd1d0FBQUFBQTh2THlnZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL1c3ejkvd0NXLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKUDNnUUFBQUFBQWNyOEFBQUFBQU96czdBRGs1T1FlOXZiMnpQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmOWJ2UDMvQUpiLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDVy9Nd0FpK29lQUpEeEFBQUFBQUFBQUFBQXNMQ3dBUC8vL3dEdjcrOU8rUGo0N1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvMXU4L2Y4QWx2Ly9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbC83c0FKTDBUZ0NyL3dBQWE3UUFBQUFBQUFBQUFBQUFBQUFBMXRiV0FMUzB0QVB5OHZKditQajQ5UG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vVzd6OS93Q1cvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmorOUFDVStHNEFicmdEQUlQYUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0dUxpQU5mWDF3Yno4L056K1BqNDhQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2Y5YnZQMy9BSmIvL3dDWS8vOEFtUC8vQUpqLy93Q1kvdkFBbGZsekFJVGNCZ0NLNXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTQrUGpBTmpZMkFUeTh2SlorUGo0MnZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8xdTcvZjhBbGYvL0FKZi8vd0NZLy84QWwvN2FBSlQ0V1FDRTNBUUFpdWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMU5UVUFCOGZId0R3OFBBcjl2YjJuUGo0K08zNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi9yTnY3LzNiRy9QOXJ3Znp0TTZyN25BQ1I5U3NBRVIwQUFJUFpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU92cjZ3RGo0K01HOHZMeU92YjI5cEQ0K1BqUytmbjU4dm41K2YzNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS9mbjUrZkw2K2ZqUy9QajJrUDMzOGpyLytlSUcvL2ZxQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEaDRlRUExdGJXQXUvdjd4djA5UFJKOXZiMmR2YjI5cGYzOS9lbzkvZjNxUGIyOXBmMjl2WjI5UFQwU2Uvdjd4dlcxdFlDNGVIaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL2dCLy8vZ0FILy9nQUFmL3dBQUQvNEFBQWY4QUFBRCtBQUFBZkFBQUFEd0FBQUE0QUFBQUdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFHQUFBQUJ3QUFBQThBQUFBUGdBQUFINEFBQUIvQUFBQS80QUFBZi9nQUFmLzhBQVAvL3dBUC8nLCAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworCisgICAgeWVsbG93OiAnZGF0YTppbWFnZS92bmRtaWNyb3NvZnRpY29uO2Jhc2U2NCxBQUFCQUFJQUlDQUFBQUVBSUFDb0VBQUFKZ0FBQUJBUUFBQUJBQ0FBYUFRQUFNNFFBQUFvQUFBQUlBQUFBRUFBQUFBQkFDQUFBQUFBQUFBUUFBQVNDd0FBRWdzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQndBWktoUUFPV0FpQUVWMEtnQkZkQ29BT1dBaUFCa3FGQUFBQUFjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOFpBQUFDaEFIQUVwOEp3QnZ1MTBBZ05lU0FJbmx1QUNON2M0QWovRFhBSS93MXdDTjdjNEFpZVc0QUlEWGtnQnZ1MTBBU253bkFBb1FCd0E4WkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWJMZ0FBQUFBRkFGbVdNd0IvMVl3QWovRFhBSlg3K1FDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSlg3K1FDUDc5Y0FmdFdNQUZtVk13QUFBQVVBR3k0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTd2OEFBRDFtRlFCNnpYWUFrUExkQUpmKy9nQ1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVA3L0FKZisvd0NWL1A0QWp2RGRBSGpLZGdBOFpCVUE2ZjhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvL0FBQldrQ1lBaCtLb0FKYjgrUUNZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmYrL3dDVit2OEFsUHIvQUpUNi93Q1YrdjhBa3ZmNUFJUGRxQUJUakNZQS8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnSUNBQmIvL3dBa2E1d3FBb3pxdXdDWS92OEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1gvZjhBay9qL0FKUDMvd0NUOS84QWsvZi9BSlAzL3dDVDkvOEFrdmIvQUliaXV3QlpseW9BLy84QUFBRUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHo4L01BcUphSkhaREQ1clFMblA3L0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QWx2ei9BSkwyL3dDUjlQOEFrZlQvQUpIMC93Q1I5UDhBa2ZUL0FKSDAvd0NSOVA4QWtmVC9BSVRmdEFCUWhoMEFqTzBBQUFBQUFBQUFBQUFBQUFBQWZYMTlBRHc4UEFuaTN0dVB1dUQ1L1F1Yy8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpiOC93Q1E4LzhBai9IL0FJL3gvd0NQOGY4QWovSC9BSS94L3dDUDhmOEFqL0gvQUkveC93Q1A4ZjhBanZEOUFIN1Vqd0FpT1FrQVNIa0FBQUFBQUFnSUNBRC8vLzhBeGNYRlQvajE5Tys5NHZ2L0Nwei8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NWKy84QWovSC9BSTN1L3dDTjd2OEFqZTcvQUkzdS93Q043djhBamU3L0FJM3Uvd0NON3Y4QWplNy9BSTN1L3dDTzd2OEFpdW52QUhDOFR3RC8vd0FBQlFnQXFLaW9BSHA2ZWhIcDZlbTMvZnY1Lzd6aCt2OEtuUC8vQUpqLy93Q1kvLzhBbVAvL0FKai8vd0NZLy84QW1QLy9BSmovL3dDWS8vOEFsZnIvQUk3dS93Q002LzhBak92L0FJenIvd0NNNi84QWpPdi9BSXpyL3dDTTYvOEFqT3YvQUl6ci93Q002LzhBak92L0FJenIvd0NNNi84QWc5eTNBRVJ5RVFCZW5RRC8vLzhBek16TVRmYjI5dlA5Ky9uL3ZPSDYvd3FiLy84QWx2Ly9BSmIvL3dDVy8vOEFsdi8vQUpiLy93Q1cvLzhBbC8vL0FKVDUvd0NMNi84QWllai9BSW5vL3dDSjZQOEFpZWovQUluby93Q0o2UDhBaWVqL0FJbm8vd0NKNlA4QWllai9BSW5vL3dDSjZQOEFpZWovQUluby93Q0g1Zk1BYjc1TkFNUC9BQUFBQUFYbDVlV1grZm41Ly92NitmL1Q2dnIvV2J2OS8wKzMvZjlRdC8zL1VMZjkvMUMzL2Y5UXQvMy9VYmo5L3pldysvOEluTy8vQjVuci93ZVo2LzhIbWV2L0I1bnEvd2VaNnY4SG1lci9CNW5xL3dlWjZ2OEhtZXIvQjVqcS93ZVk2djhIbU9uL0I1anAvd2VZNmY4SG1Pbi9CcGpwL3dlUDE1Y0JBQUFGcEtTa0hmRHc4TS81K2ZuLytmbjUvL241K2YvMStQbi85UGY1Ly9UMytmLzA5L24vOVBmNS8vVDMrZi80K1BuL28rVDYvd3EvL2Y4SHYvMy9DTC85L3dpLy9mOEl2LzMvQ0wvOS93aS8vZjhJdi8zL0NMLzgvd2krL1A4SXZ2ei9DTDc4L3dpKy9QOEl2dnovQ0w3OC93ZTkrLzhIdlByL0JyYnh6d1I5cFIzTHk4dEE5ZlgxN1BuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly8zNitmK2w1dnYvQ2NMLy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHYvMy9CcjM2L3dhOSt2OEd1dmJzQlpuTFFOcmEybUQzOS9mNCtmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLy9mcjUvNlhtKy84SndmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjc3OC93YTc5LzhHdXZmL0JycjMvd2E1OWZnRm85aGc0dUxpZFBqNCtQMzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzkrdm4vcGViNy93bkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2UrKy84R3VmWC9CcmowL3dhNDlQOEd1UFQvQnJmei9RV20zWFRrNU9SNitQajQvZm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvLzM2K2YrbDV2di9DY0gvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh2ZnIvQnJmeS93YTI4ZjhHdHZIL0JyYngvd2EyOGY4R3RmRDlCYWZkZXVYbDVXLzQrUGo4K2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vL2ZyNS82WG0rLzhKd2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dmQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I3ejUvd2ExNy84R3RPNy9CclR1L3dhMDd2OEd0TzcvQnJUdS93YXo3ZndGcGR0djRlSGhWdmo0K1BiNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvOSt2bi9wZWI3L3duQi8vOEh3Zi8vQjhILy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdmLy9COEgvL3dlNytQOEdzdTMvQnJIci93YXg2LzhHc2V2L0JySHIvd2F4Ni84R3Nldi9CckRxOWdXaDFWYmEydG96OXZiMjV2bjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vMzYrZitrNWZ2L0JzSC8vd1BBLy84RHdQLy9BOEQvL3dQQS8vOER3UC8vQThELy93WEEvLzhHdXZiL0JyRHEvd2F1NlA4R3J1ai9CcTdvL3dhdTZQOEdydWovQnE3by93YXU2UDhHcmVYbUJabkxNNysvdnhIMDlQVEMrZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rL3I1Lzgzdit2OXgydnovYnRuOS8yL1ovZjl2MmYzL2I5bjkvMi9aL2Y5djJmMy9SZEw1L3lYRzd2OG14T3ovSnNUcy95YkU2LzhteE92L0pzVHIveVhFNi84bHcrdi9KY1ByL3lLOTVjSVFpckFSLy8vL0FQRHc4SUg1K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLyt2bjUvL3I1K2YvNitmbi8rdm41Ly9yNStmLzYrZm4vK3ZuNS8vcjUrZitIOFB6L09lcisvenpxL3Y4ODZ2Ny9QT3IrL3p6cS92ODg2djcvUE9yKy96enEvdjg4NnYzL091RHpnV3ovL3dEMDlQUUE1K2ZuTlBmMzkrbjUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41LzRYdy9mODQ2Ly8vTyt2Ly96dnIvLzg3Ni8vL08rdi8venZyLy84NzYvLy9PK3YvL3p2cC9lazMyKzAwT3VmNkFNckt5Z0N6czdNRjgvUHptdm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuL2hmRDkvempyLy84NzYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Ly96dnIvLzg3Ni8vL091WDVtaXFwdHdVd3Y4OEFBQUFBQVBQejh3RHA2ZWt1OS9mMzNmbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmK0Y4UDMvT092Ly96dnIvLzg3Ni8vL08rdi8venZyLy84NzYvLy9PK3YvL3p2cC9kMDMzTzh1T3VYNUFBQUFBQUFBQUFBQXZyNitBUC8vL3dEeDhmRmwrUGo0OWZuNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvNFh3L2Y4NDYvLy9PK3YvL3p2ci8vODc2Ly8vTyt2Ly96dnIvLzg3NnY3MU9lUDJaWTcvL3dBdXM4SUFBQUFBQUFBQUFBQUFBQUFBNE9EZ0FOUFQwd2owOVBTSStmbjUrdm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vaGZEOS96anIvLzg3Ni8vL08rdi8venZyLy84NzYvLy9PK3YvK2pybStZZ3l4OWdJTmRQbEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE2ZW5wQU9IaDRRMzA5UFNNK2ZuNStQbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YrRjhQMy9PT3YvL3p2ci8vODc2Ly8vTyt2Ly96dnIvL2c2NS9xTU50WG5EVGpkN3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTZlbnBBT0xpNGdyMDlQUncrUGo0NS9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS80UHcvZjgxNi8vL09ldi8venZyLy84NzZ2N25PdWI1Y0RiVzV3bzMzTzRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNE9EZ0FOSFIwUUx4OGZFODkvZjNzZm41K2ZYNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZi81K2ZuLytmbjUvL241K2YvNStmbi90L1Q3LzRYeC9mK0E4UDMxWGV6OHNUbms5end1eGRVQ050VGtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSRVJFQVAvLy93RG82T2dNOVBUMFRmZjM5NlQ0K1BqZitmbjUrUG41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vbjUrZmo1K1BqZjl2ZjNwUEwwOUUzbTZPZ003LzMvQVB0Yk93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ01qSXdEMTlmVUE0dUxpQnZIeDhTbjE5ZlZkOXZiMmpmZjM5NjczOS9lOTkvZjN2ZmYzOTY3Mjl2YU45ZlgxWGZIeDhTbmw0dUlHOVBYMUFGRW5JZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3dELy8vZ0FILy9nQUFmL3dBQUQvNEFBQWY4QUFBRCtBQUFBZkFBQUFEd0FBQUE0QUFBQUdBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFHQUFBQUJnQUFBQWNBQUFBUGdBQUFINEFBQUIvQUFBQS80QUFBZi9BQUFQLzhBQVAvL3dBUC9LQUFBQUJBQUFBQWdBQUFBQVFBZ0FBQUFBQUFBQkFBQUVnc0FBQklMQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQm9yZ0FBUzM0SUFIVEROUUNDMjJ3QWgrT01BSWZqakFDQzIyd0FkTVExQUV4L0NBQm9yd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUJyQUFBQUFBQUFlY3N3QUl6c25nQ1UrT1VBbC8zN0FKaisvd0NZL3Y4QWwvMzdBSlAzNVFDTDZaNEFkOGd3QUFBQUFBQSthUUFBQUFBQWNYZDZBUDhBQUFBT2lOdE5BSlAzMmdDWS8vOEFtUC8vQUpqLy93Q1kvLzhBbVAvL0FKYjgvd0NVK2Y4QWsvai9BSTd3MmdCKzFFMEFBQUFBQUVkNEFQbjcvQURjMk5VNVQ3UDMzZ0NYLy84QW1QLy9BSmovL3dDWS8vOEFtUC8vQUpYNi93Q1I4LzhBa1BML0FKRHovd0NROC84QWpPemVBSHJPT1FDUjlBQzN0N2NPOGUvdnNHbkEvZjhBbGYvL0FKZi8vd0NYLy84QWwvLy9BSlA0L3dDTjd2OEFqT3ovQUl6cy93Q003UDhBak96L0FJenQvd0NHNHJBQVk2b080dUxpVC9qMzkvR0l6ZnovTWF2Ky96U3MvdjgwclA3L0ZhSDUvd09WN2Y4RGxPdi9BNVRyL3dPVTYvOERsT3YvQTVUci93T1U2LzhEaytqeEJJdlZUKzN0N1pUNStmbi84ZmI1Lyt2eitmL3I5UG4vNnZQNS8xblIrLzhFdlB6L0I3Mzgvd2U5L1A4SHZmei9CNzM4L3dlOS9QOEh2UHYvQjdyNC93YXg3WlR5OHZLNytmbjUvL241K2YvNitmbi8rdm41Ly9uNStmOWUxZjMvQThELy93ZkIvLzhId2YvL0I4SC8vd2ZCLy84SHdQMy9CcnYzL3dhNTlmOEd0TzY3OC9QendmbjUrZi81K2ZuLytmbjUvL241K2YvNCtmbi9YdFg5L3dQQS8vOEh3Zi8vQjhILy93ZkIvLzhIdi96L0JyZnovd2ExNy84R3RlLy9Cckhxd2ZQejg2WDUrZm4vK2ZuNS8vbjUrZi81K2ZuLytQbjUvMkRXL2Y4R3dmLy9Dc0wvL3dyQy8vOEp2L3YvQ0xYdS93aXg2ZjhJc2VuL0NMSHAvd2V0NUtYeTh2Sm8rZm41K3ZuNStmLzUrZm4vK2ZuNS8vbjUrZi9JN3ZyL3F1ZjcvNnpuKy8rbTUvdi9UZHo1L3l6VjlQOHUxZlQvTHRYMC95N1U4L29veU9wbzdPenNIL2YzOTlENStmbi8rZm41Ly9uNStmLzUrZm4vL1ByNS8vMzYrZi8rK3ZuLzlmbjUvMnJ2L3Y4NTdQLy9QT3ovL3p6cy8vODg2LzNRT3VMekgvLy8vd0QwOVBSaCtmbjU5dm41K2YvNStmbi8rZm41Ly9uNStmLzUrZm4vK2ZuNS8vSDQrZjlvN3Y3L09Pdi8venZyLy84NzYvLzJPdWY2WVVILy93RHU3dTRBNmVucEIvYjI5b1Q1K2ZuMytmbjUvL241K2YvNStmbi8rZm41Ly9uNStmL3grUG4vWnU3Ky96ZnIvLzg3Ni8vM091ajhoRGZjN3djNDRQTUFBQUFBQVBIeDhRRHU3dTRJOXZiMmFQajQrTm41K2ZuOStmbjUvL241K2YvNStmbi84L241LzR6eC9QMVM3UDdaTytuOGFEZmg5QWc1NVBjQUFBQUFBQUFBQUFBQUFBQUE2K3ZyQU4vZjN3SDE5ZlVvOS9mM2Z2ajQrTUg0K1BqZStQajQzdmo0K01IcTl2aCt3L0gyS0FETTV3Rms0ZThBQUFBQUFBQUFBQUR3RHdBQTRBY0FBTUFEQUFDQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFRQUFnQUVBQU1BREFBRGdCd0FBJyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICB9OworCisgIHJldHVybiB7CisgICAgRmF2aWNvbnNCeUh1ZTogRmF2aWNvbnNCeUh1ZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9oZWFkaW5nLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaGVhZGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1Y2U5OGQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaGVhZGluZy5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLXVpLWhlYWRpbmcnPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMsIDI0NSwgMjQ3KTsKKyAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM4ZThlOGU7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgIG1hcmdpbjogMDsKKyAgICAgIHBhZGRpbmc6IDAgNXB4IDAgMDsKKyAgICB9CisKKyAgICBoZWFkaW5nIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOworICAgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOworICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICB9CisKKyAgICAjYXJyb3cgeworICAgICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKKyAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICAgICAgbWFyZ2luLWxlZnQ6IDVweDsKKyAgICAgIG1hcmdpbi1yaWdodDogNXB4OworICAgICAgd2lkdGg6IDhweDsKKyAgICB9CisKKyAgICAjbGluaywgI2hlYWRpbmdfY29udGVudCB7CisgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxoZWFkaW5nIGlkPSdoZWFkaW5nJyBvbi1jbGljaz0ne3tvbkhlYWRpbmdEaXZDbGlja2VkX319Jz4KKyAgICAgIDxzcGFuIGlkPSdhcnJvdyc+PC9zcGFuPgorICAgICAgPHNwYW4gaWQ9J2hlYWRpbmdfY29udGVudCc+PC9zcGFuPgorICAgICAgPHRyLXVpLWEtYW5hbHlzaXMtbGluayBpZD0nbGluayc+PC90ci11aS1hLWFuYWx5c2lzLWxpbms+CisgICAgPC9oZWFkaW5nPgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgUG9seW1lcih7CisgICAgRE9XTl9BUlJPVzogU3RyaW5nLmZyb21DaGFyQ29kZSgweDI1QkUpLAorICAgIFJJR0hUX0FSUk9XOiBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCOCksCisKKyAgICByZWFkeTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIC8vIE1pbnVzIDYgPT0gMXB4IGJvcmRlciArIDVweCBwYWRkaW5nIHJpZ2h0LgorICAgICAgdGhpcy5zdHlsZS53aWR0aCA9ICh0ci5jLmNvbnN0YW50cy5IRUFESU5HX1dJRFRIIC0gNikgKyAncHgnOworCisgICAgICB0aGlzLmhlYWRpbmdfID0gJyc7CisgICAgICB0aGlzLmV4cGFuZGVkXyA9IHRydWU7CisgICAgICB0aGlzLmFycm93VmlzaWJsZV8gPSBmYWxzZTsKKyAgICAgIHRoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXyA9IHVuZGVmaW5lZDsKKworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IGhlYWRpbmcoKSB7CisgICAgICByZXR1cm4gdGhpcy5oZWFkaW5nXzsKKyAgICB9LAorCisgICAgc2V0IGhlYWRpbmcodGV4dCkgeworICAgICAgaWYgKHRoaXMuaGVhZGluZ18gPT09IHRleHQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5oZWFkaW5nXyA9IHRleHQ7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBzZXQgYXJyb3dWaXNpYmxlKHZhbCkgeworICAgICAgaWYgKHRoaXMuYXJyb3dWaXNpYmxlXyA9PT0gdmFsKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuYXJyb3dWaXNpYmxlXyA9ICEhdmFsOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgc2V0IHRvb2x0aXAodGV4dCkgeworICAgICAgdGhpcy4kLmhlYWRpbmcudGl0bGUgPSB0ZXh0OworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uR2VuZXJhdG9yKGdlbmVyYXRvcikgeworICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXyA9PT0gZ2VuZXJhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuc2VsZWN0aW9uR2VuZXJhdG9yXyA9IGdlbmVyYXRvcjsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBleHBhbmRlZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkXzsKKyAgICB9LAorCisgICAgc2V0IGV4cGFuZGVkKGV4cGFuZGVkKSB7CisgICAgICBpZiAodGhpcy5leHBhbmRlZF8gPT09IGV4cGFuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuZXhwYW5kZWRfID0gISFleHBhbmRlZDsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIG9uSGVhZGluZ0RpdkNsaWNrZWRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgdHIuYi5FdmVudCgnaGVhZGluZy1jbGlja2VkJywgeydidWJibGVzJzogdHJ1ZX0pKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmFycm93VmlzaWJsZV8pIHsKKyAgICAgICAgdGhpcy4kLmFycm93LnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMuJC5hcnJvdy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICB0aGlzLiQuaGVhZGluZy5zdHlsZS5kaXNwbGF5ID0gdGhpcy5leHBhbmRlZF8gPyAnJyA6ICdub25lJzsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuYXJyb3dWaXNpYmxlXykgeworICAgICAgICB0aGlzLiQuYXJyb3cudGV4dENvbnRlbnQgPQorICAgICAgICAgICAgdGhpcy5leHBhbmRlZF8gPyB0aGlzLkRPV05fQVJST1cgOiB0aGlzLlJJR0hUX0FSUk9XOworICAgICAgfQorCisgICAgICB0aGlzLiQubGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgdGhpcy4kLmhlYWRpbmdfY29udGVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworCisgICAgICBpZiAodGhpcy5zZWxlY3Rpb25HZW5lcmF0b3JfKSB7CisgICAgICAgIHRoaXMuJC5saW5rLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJzsKKyAgICAgICAgdGhpcy4kLmxpbmsuc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb25HZW5lcmF0b3JfOworICAgICAgICB0aGlzLiQubGluay50ZXh0Q29udGVudCA9IHRoaXMuaGVhZGluZ187CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLiQuaGVhZGluZ19jb250ZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJzsKKyAgICAgICAgdGhpcy4kLmhlYWRpbmdfY29udGVudC50ZXh0Q29udGVudCA9IHRoaXMuaGVhZGluZ187CisgICAgICB9CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9ob3Rfa2V5Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaG90X2tleS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZmFkMjkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaG90X2tleS5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2d1aWQuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBIb3RLZXkoZGljdCkgeworICAgIGlmIChkaWN0LmV2ZW50VHlwZSA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdldmVudFR5cGUgbXVzdCBiZSBnaXZlbicpOworICAgIGlmIChkaWN0LmtleUNvZGUgPT09IHVuZGVmaW5lZCAmJiBkaWN0LmtleUNvZGVzID09PSB1bmRlZmluZWQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleUNvZGUgb3Iga2V5Q29kZXMgbXVzdCBiZSBnaXZlbicpOworICAgIGlmIChkaWN0LmtleUNvZGUgIT09IHVuZGVmaW5lZCAmJiBkaWN0LmtleUNvZGVzICE9PSB1bmRlZmluZWQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkga2V5Q29kZSBvciBrZXlDb2RlcyBjYW4gYmUgZ2l2ZW4nKTsKKyAgICBpZiAoZGljdC5jYWxsYmFjayA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYWxsYmFjayBtdXN0IGJlIGdpdmVuJyk7CisKKyAgICB0aGlzLmV2ZW50VHlwZV8gPSBkaWN0LmV2ZW50VHlwZTsKKyAgICB0aGlzLmtleUNvZGVzXyA9IFtdOworCisgICAgaWYgKGRpY3Qua2V5Q29kZSkKKyAgICAgIHRoaXMucHVzaEtleUNvZGVfKGRpY3Qua2V5Q29kZSk7CisgICAgZWxzZSBpZiAoZGljdC5rZXlDb2RlcykgeworICAgICAgZGljdC5rZXlDb2Rlcy5mb3JFYWNoKHRoaXMucHVzaEtleUNvZGVfLCB0aGlzKTsKKyAgICB9CisKKyAgICB0aGlzLnVzZUNhcHR1cmVfID0gISFkaWN0LnVzZUNhcHR1cmU7CisgICAgdGhpcy5jYWxsYmFja18gPSBkaWN0LmNhbGxiYWNrOworICAgIHRoaXMudGhpc0FyZ18gPSBkaWN0LnRoaXNBcmcgIT09IHVuZGVmaW5lZCA/IGRpY3QudGhpc0FyZyA6IHVuZGVmaW5lZDsKKworICAgIHRoaXMuaGVscFRleHRfID0gZGljdC5oZWxwVGV4dCAhPT0gdW5kZWZpbmVkID8gZGljdC5oZWxwVGV4dCA6IHVuZGVmaW5lZDsKKyAgfQorCisgIEhvdEtleS5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGV2ZW50VHlwZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmV2ZW50VHlwZV87CisgICAgfSwKKworICAgIGdldCBrZXlDb2RlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmtleUNvZGVzXzsKKyAgICB9LAorCisgICAgZ2V0IGhlbHBUZXh0KCkgeworICAgICAgcmV0dXJuIHRoaXMuaGVscFRleHRfOworICAgIH0sCisKKyAgICBjYWxsOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKHRoaXMudGhpc0FyZ18sIGUpOworICAgIH0sCisKKyAgICBwdXNoS2V5Q29kZV86IGZ1bmN0aW9uKGtleUNvZGUpIHsKKyAgICAgIHRoaXMua2V5Q29kZXNfLnB1c2goa2V5Q29kZSk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgSG90S2V5OiBIb3RLZXkKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaG90a2V5X2NvbnRyb2xsZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9ob3RrZXlfY29udHJvbGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhN2M1ZmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaG90a2V5X2NvbnRyb2xsZXIuaHRtbApAQCAtMCwwICsxLDI5MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZ3VpZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9ob3Rfa2V5Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InR2LXVpLWItaG90a2V5LWNvbnRyb2xsZXIiPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5nbG9iYWxNb2RlXyA9IGZhbHNlOworICAgICAgdGhpcy5zbGF2ZWRUb1BhcmVudENvbnRyb2xsZXJfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5jdXJIb3N0XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuY2hpbGRDb250cm9sbGVyc18gPSBbXTsKKworICAgICAgdGhpcy5idWJibGluZ0tleURvd25Ib3RLZXlzXyA9IHt9OworICAgICAgdGhpcy5jYXB0dXJpbmdLZXlEb3duSG90S2V5c18gPSB7fTsKKyAgICAgIHRoaXMuYnViYmxpbmdLZXlQcmVzc0hvdEtleXNfID0ge307CisgICAgICB0aGlzLmNhcHR1cmluZ0tleVByZXNzSG90S2V5c18gPSB7fTsKKworICAgICAgdGhpcy5vbkJ1YmJsaW5nS2V5RG93bl8gPSB0aGlzLm9uS2V5Xy5iaW5kKHRoaXMsIGZhbHNlKTsKKyAgICAgIHRoaXMub25DYXB0dXJpbmdLZXlEb3duXyA9IHRoaXMub25LZXlfLmJpbmQodGhpcywgdHJ1ZSk7CisgICAgICB0aGlzLm9uQnViYmxpbmdLZXlQcmVzc18gPSB0aGlzLm9uS2V5Xy5iaW5kKHRoaXMsIGZhbHNlKTsKKyAgICAgIHRoaXMub25DYXB0dXJpbmdLZXlQcmVzc18gPSB0aGlzLm9uS2V5Xy5iaW5kKHRoaXMsIHRydWUpOworICAgIH0sCisKKyAgICBhdHRhY2hlZDogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgaG9zdCA9IHRoaXMuZmluZEhvc3RfKCk7CisgICAgICBpZiAoaG9zdC5fX2hvdGtleUNvbnRyb2xsZXIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignTXVsdGlwbGUgaG90a2V5IGNvbnRyb2xsZXJzIGF0dGFjaGVkIHRvIHRoaXMgaG9zdCcpOworCisgICAgICBob3N0Ll9faG90a2V5Q29udHJvbGxlciA9IHRoaXM7CisgICAgICB0aGlzLmN1ckhvc3RfID0gaG9zdDsKKworICAgICAgdmFyIHBhcmVudEVsZW1lbnQ7CisgICAgICBpZiAoaG9zdC5wYXJlbnRFbGVtZW50KQorICAgICAgICBwYXJlbnRFbGVtZW50ID0gaG9zdC5wYXJlbnRFbGVtZW50OworICAgICAgZWxzZQorICAgICAgICBwYXJlbnRFbGVtZW50ID0gaG9zdC5wYXJlbnROb2RlLmhvc3Q7CisgICAgICB2YXIgcGFyZW50Q29udHJvbGxlciA9IHRyLmIuZ2V0SG90a2V5Q29udHJvbGxlckZvckVsZW1lbnQoCisgICAgICAgICAgcGFyZW50RWxlbWVudCk7CisKKyAgICAgIGlmIChwYXJlbnRDb250cm9sbGVyKSB7CisgICAgICAgIHRoaXMuc2xhdmVkVG9QYXJlbnRDb250cm9sbGVyXyA9IHBhcmVudENvbnRyb2xsZXI7CisgICAgICAgIHBhcmVudENvbnRyb2xsZXIuYWRkQ2hpbGRDb250cm9sbGVyXyh0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLm9uQnViYmxpbmdLZXlEb3duXywgZmFsc2UpOworICAgICAgaG9zdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbkNhcHR1cmluZ0tleURvd25fLCB0cnVlKTsKKyAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLm9uQnViYmxpbmdLZXlQcmVzc18sIGZhbHNlKTsKKyAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLm9uQ2FwdHVyaW5nS2V5UHJlc3NfLCB0cnVlKTsKKyAgICB9LAorCisgICAgZGV0YWNoZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGhvc3QgPSB0aGlzLmN1ckhvc3RfOworICAgICAgaWYgKCFob3N0KQorICAgICAgICByZXR1cm47CisKKyAgICAgIGRlbGV0ZSBob3N0Ll9faG90a2V5Q29udHJvbGxlcjsKKyAgICAgIHRoaXMuY3VySG9zdF8gPSB1bmRlZmluZWQ7CisKKyAgICAgIGlmICh0aGlzLnNsYXZlZFRvUGFyZW50Q29udHJvbGxlcl8pIHsKKyAgICAgICAgdGhpcy5zbGF2ZWRUb1BhcmVudENvbnRyb2xsZXJfLnJlbW92ZUNoaWxkQ29udHJvbGxlcl8odGhpcyk7CisgICAgICAgIHRoaXMuc2xhdmVkVG9QYXJlbnRDb250cm9sbGVyXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLm9uQnViYmxpbmdLZXlEb3duXywgZmFsc2UpOworICAgICAgaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbkNhcHR1cmluZ0tleURvd25fLCB0cnVlKTsKKyAgICAgIGhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLm9uQnViYmxpbmdLZXlQcmVzc18sIGZhbHNlKTsKKyAgICAgIGhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLm9uQ2FwdHVyaW5nS2V5UHJlc3NfLCB0cnVlKTsKKyAgICB9LAorCisgICAgYWRkQ2hpbGRDb250cm9sbGVyXzogZnVuY3Rpb24oY29udHJvbGxlcikgeworICAgICAgdmFyIGkgPSB0aGlzLmNoaWxkQ29udHJvbGxlcnNfLmluZGV4T2YoY29udHJvbGxlcik7CisgICAgICBpZiAoaSAhPT0gLTEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29udHJvbGxlciBhbHJlYWR5IHJlZ2lzdGVyZWQnKTsKKyAgICAgIHRoaXMuY2hpbGRDb250cm9sbGVyc18ucHVzaChjb250cm9sbGVyKTsKKyAgICB9LAorCisgICAgcmVtb3ZlQ2hpbGRDb250cm9sbGVyXzogZnVuY3Rpb24oY29udHJvbGxlcikgeworICAgICAgdmFyIGkgPSB0aGlzLmNoaWxkQ29udHJvbGxlcnNfLmluZGV4T2YoY29udHJvbGxlcik7CisgICAgICBpZiAoaSA9PT0gLTEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29udHJvbGxlciBub3QgcmVnaXN0ZXJlZCcpOworICAgICAgdGhpcy5jaGlsZENvbnRyb2xsZXJzXy5zcGxpY2UoaSwgMSk7CisgICAgICByZXR1cm4gY29udHJvbGxlcjsKKyAgICB9LAorCisgICAgZ2V0S2V5TWFwRm9yRXZlbnRUeXBlXzogZnVuY3Rpb24oZXZlbnRUeXBlLCB1c2VDYXB0dXJlKSB7CisgICAgICBpZiAoZXZlbnRUeXBlID09PSAna2V5ZG93bicpIHsKKyAgICAgICAgaWYgKCF1c2VDYXB0dXJlKQorICAgICAgICAgIHJldHVybiB0aGlzLmJ1YmJsaW5nS2V5RG93bkhvdEtleXNfOworICAgICAgICBlbHNlCisgICAgICAgICAgcmV0dXJuIHRoaXMuY2FwdHVyaW5nS2V5RG93bkhvdEtleXNfOworICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdrZXlwcmVzcycpIHsKKyAgICAgICAgaWYgKCF1c2VDYXB0dXJlKQorICAgICAgICAgIHJldHVybiB0aGlzLmJ1YmJsaW5nS2V5UHJlc3NIb3RLZXlzXzsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHJldHVybiB0aGlzLmNhcHR1cmluZ0tleVByZXNzSG90S2V5c187CisgICAgICB9IGVsc2UgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGtleSBldmVudCcpOworICAgICAgfQorICAgIH0sCisKKyAgICBhZGRIb3RLZXk6IGZ1bmN0aW9uKGhvdEtleSkgeworICAgICAgaWYgKCEoaG90S2V5IGluc3RhbmNlb2YgdHIudWkuYi5Ib3RLZXkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hvdEtleSBtdXN0IGJlIGEgdHIudWkuYi5Ib3RLZXknKTsKKworICAgICAgdmFyIGtleU1hcCA9IHRoaXMuZ2V0S2V5TWFwRm9yRXZlbnRUeXBlXygKKyAgICAgICAgICBob3RLZXkuZXZlbnRUeXBlLCBob3RLZXkudXNlQ2FwdHVyZSk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaG90S2V5LmtleUNvZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBrZXlDb2RlID0gaG90S2V5LmtleUNvZGVzW2ldOworICAgICAgICBpZiAoa2V5TWFwW2tleUNvZGVdKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignS2V5IGlzIGFscmVhZHkgYm91bmQgZm9yIGtleUNvZGU9JyArIGtleUNvZGUpOworICAgICAgfQorCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhvdEtleS5rZXlDb2Rlcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIga2V5Q29kZSA9IGhvdEtleS5rZXlDb2Rlc1tpXTsKKyAgICAgICAga2V5TWFwW2tleUNvZGVdID0gaG90S2V5OworICAgICAgfQorICAgICAgcmV0dXJuIGhvdEtleTsKKyAgICB9LAorCisgICAgcmVtb3ZlSG90S2V5OiBmdW5jdGlvbihob3RLZXkpIHsKKyAgICAgIGlmICghKGhvdEtleSBpbnN0YW5jZW9mIHRyLnVpLmIuSG90S2V5KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdob3RLZXkgbXVzdCBiZSBhIHRyLnVpLmIuSG90S2V5Jyk7CisKKyAgICAgIHZhciBrZXlNYXAgPSB0aGlzLmdldEtleU1hcEZvckV2ZW50VHlwZV8oCisgICAgICAgICAgaG90S2V5LmV2ZW50VHlwZSwgaG90S2V5LnVzZUNhcHR1cmUpOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhvdEtleS5rZXlDb2Rlcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIga2V5Q29kZSA9IGhvdEtleS5rZXlDb2Rlc1tpXTsKKyAgICAgICAgaWYgKCFrZXlNYXBba2V5Q29kZV0pCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdLZXkgaXMgbm90IGJvdW5kIGZvciBrZXlDb2RlPScgKyBrZXlDb2RlKTsKKyAgICAgICAga2V5TWFwW2tleUNvZGVdID0gaG90S2V5OworICAgICAgfQorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBob3RLZXkua2V5Q29kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGtleUNvZGUgPSBob3RLZXkua2V5Q29kZXNbaV07CisgICAgICAgIGRlbGV0ZSBrZXlNYXBba2V5Q29kZV07CisgICAgICB9CisgICAgICByZXR1cm4gaG90S2V5OworICAgIH0sCisKKyAgICBnZXQgZ2xvYmFsTW9kZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmdsb2JhbE1vZGVfOworICAgIH0sCisKKyAgICBzZXQgZ2xvYmFsTW9kZShnbG9iYWxNb2RlKSB7CisgICAgICB0aGlzLmRldGFjaGVkKCk7CisgICAgICB0aGlzLmdsb2JhbE1vZGVfID0gISFnbG9iYWxNb2RlOworICAgICAgdGhpcy5hdHRhY2hlZCgpOworICAgIH0sCisKKyAgICBnZXQgdG9wbW9zdENvbnJvbGxlcl8oKSB7CisgICAgICBpZiAodGhpcy5zbGF2ZWRUb1BhcmVudENvbnRyb2xsZXJfKQorICAgICAgICByZXR1cm4gdGhpcy5zbGF2ZWRUb1BhcmVudENvbnRyb2xsZXJfLnRvcG1vc3RDb25yb2xsZXJfOworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfSwKKworICAgIGNoaWxkUmVxdWVzdHNHZW5lcmFsRm9jdXM6IGZ1bmN0aW9uKGNoaWxkKSB7CisgICAgICB2YXIgdG9wbW9zdCA9IHRoaXMudG9wbW9zdENvbnJvbGxlcl87CisgICAgICBpZiAodG9wbW9zdC5jdXJIb3N0XykgeworICAgICAgICBpZiAodG9wbW9zdC5jdXJIb3N0Xy5oYXNBdHRyaWJ1dGUoJ3RhYkluZGV4JykpIHsKKyAgICAgICAgICB0b3Btb3N0LmN1ckhvc3RfLmZvY3VzKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpCisgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7CisgICAgICB9CisgICAgfSwKKworICAgIGNoaWxkUmVxdWVzdHNCbHVyOiBmdW5jdGlvbihjaGlsZCkgeworICAgICAgY2hpbGQuYmx1cigpOworCisgICAgICB2YXIgdG9wbW9zdCA9IHRoaXMudG9wbW9zdENvbnJvbGxlcl87CisgICAgICBpZiAodG9wbW9zdC5jdXJIb3N0XykgeworICAgICAgICB0b3Btb3N0LmN1ckhvc3RfLmZvY3VzKCk7CisgICAgICB9CisgICAgfSwKKworICAgIGZpbmRIb3N0XzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5nbG9iYWxNb2RlXykgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh0aGlzLnBhcmVudEVsZW1lbnQpCisgICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50RWxlbWVudDsKKworICAgICAgICB2YXIgbm9kZSA9IHRoaXM7CisgICAgICAgIHdoaWxlIChub2RlLnBhcmVudE5vZGUpIHsKKyAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBub2RlLmhvc3Q7CisgICAgICB9CisgICAgfSwKKworICAgIGFwcGVuZE1hdGNoaW5nSG90S2V5c1RvXzogZnVuY3Rpb24obWF0Y2hlZEhvdEtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlQ2FwdHVyZSwgZSkgeworICAgICAgdmFyIGxvY2FsS2V5TWFwID0gdGhpcy5nZXRLZXlNYXBGb3JFdmVudFR5cGVfKGUudHlwZSwgdXNlQ2FwdHVyZSk7CisgICAgICB2YXIgbG9jYWxIb3RLZXkgPSBsb2NhbEtleU1hcFtlLmtleUNvZGVdOworICAgICAgaWYgKGxvY2FsSG90S2V5KQorICAgICAgICBtYXRjaGVkSG90S2V5cy5wdXNoKGxvY2FsSG90S2V5KTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkQ29udHJvbGxlcnNfLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBjb250cm9sbGVyID0gdGhpcy5jaGlsZENvbnRyb2xsZXJzX1tpXTsKKyAgICAgICAgY29udHJvbGxlci5hcHBlbmRNYXRjaGluZ0hvdEtleXNUb18obWF0Y2hlZEhvdEtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDYXB0dXJlLCBlKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgb25LZXlfOiBmdW5jdGlvbih1c2VDYXB0dXJlLCBlKSB7CisgICAgICAvLyBLZXlzIGRpc3BhdGNoZWQgdG8gSU5QVVQgZWxlbWVudHMgc3RpbGwgYnViYmxlLCBldmVuIHdoZW4gdGhleSdyZQorICAgICAgLy8gaGFuZGxlZC4gU28sIHNraXAgYW55IGV2ZW50cyB0aGF0IHRhcmdldGVkIHRoZSBpbnB1dCBlbGVtZW50LgorICAgICAgaWYgKHVzZUNhcHR1cmUgPT0gZmFsc2UgJiYgZS5wYXRoWzBdLnRhZ05hbWUgPT0gJ0lOUFVUJykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgc29ydGVkQ29udHJvbGxlcnM7CisKKyAgICAgIHZhciBtYXRjaGVkSG90S2V5cyA9IFtdOworICAgICAgdGhpcy5hcHBlbmRNYXRjaGluZ0hvdEtleXNUb18obWF0Y2hlZEhvdEtleXMsIHVzZUNhcHR1cmUsIGUpOworCisgICAgICBpZiAobWF0Y2hlZEhvdEtleXMubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIGlmIChtYXRjaGVkSG90S2V5cy5sZW5ndGggPiAxKSB7CisgICAgICAgIC8vIFRPRE8obmR1Y2EpOiBUbyBkbyBzdXBwb3J0IGZvciBjb2RkbGluZyBob3RLZXlzLCB3ZSBuZWVkIHRvCisgICAgICAgIC8vIHNvcnQgdGhlIGxpc3RlbmVycyBieSB0aGVpciBjYXB0dXJpbmcvYnViYmxpbmcgb3JkZXIgYW5kIHRoZW4gcGljaworICAgICAgICAvLyB0aGUgb25lIHRoYXQgd291bGQgdG9wb2xvZ2ljYWxseSB3aW4gdGhlIHRpZSwgcGVyIERPTSBkaXNwYXRjaCBydWxlcy4KKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb3JlIHRoYW4gb25lIGhvdEtleSBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQnKTsKKyAgICAgIH0KKworCisgICAgICB2YXIgaG90S2V5ID0gbWF0Y2hlZEhvdEtleXNbMF07CisKKyAgICAgIHZhciBwcmV2ZW50ZWQgPSAwOworICAgICAgcHJldmVudGVkIHw9IGhvdEtleS5jYWxsKGUpOworCisgICAgICAvLyBXZSB3YW50IHRvIHJldHVybiBmYWxzZSBpZiBwcmV2ZW50RGVmYXVsdGVkLCBvciBvbmUgb2YgdGhlIGhhbmRsZXJzCisgICAgICAvLyByZXR1cm4gZmFsc2UuIEJ1dCBvdGhlcndpc2UsIHdlIHdhbnQgdG8gcmV0dXJuIHVuZGVmaWVuZC4KKyAgICAgIHJldHVybiAhcHJldmVudGVkICYmIGUuZGVmYXVsdFByZXZlbnRlZDsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLmInLCBmdW5jdGlvbigpIHsKKworICBmdW5jdGlvbiBnZXRIb3RrZXlDb250cm9sbGVyRm9yRWxlbWVudChyZWZFbGVtZW50KSB7CisgICAgdmFyIGN1ckVsZW1lbnQgPSByZWZFbGVtZW50OworICAgIHdoaWxlIChjdXJFbGVtZW50KSB7CisgICAgICBpZiAoY3VyRWxlbWVudC50YWdOYW1lID09PSAndHYtdWktYi1ob3RrZXktY29udHJvbGxlcicpCisgICAgICAgIHJldHVybiBjdXJFbGVtZW50OworCisgICAgICBpZiAoY3VyRWxlbWVudC5fX2hvdGtleUNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBjdXJFbGVtZW50Ll9faG90a2V5Q29udHJvbGxlcjsKKworICAgICAgaWYgKGN1ckVsZW1lbnQucGFyZW50RWxlbWVudCkgeworICAgICAgICBjdXJFbGVtZW50ID0gY3VyRWxlbWVudC5wYXJlbnRFbGVtZW50OworICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKworICAgICAgLy8gUHJvYmFibHkgaW5zaWRlIGEgc2hhZG93CisgICAgICBjdXJFbGVtZW50ID0gZmluZEhvc3QoY3VyRWxlbWVudCk7CisgICAgfQorICAgIHJldHVybiB1bmRlZmluZWQ7CisgIH0KKworICBmdW5jdGlvbiBmaW5kSG9zdChpbml0aWFsTm9kZSkgeworICAgIHZhciBub2RlID0gaW5pdGlhbE5vZGU7CisgICAgd2hpbGUgKG5vZGUucGFyZW50Tm9kZSkgeworICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsKKyAgICB9CisgICAgcmV0dXJuIG5vZGUuaG9zdDsKKyAgfQorCisgIHJldHVybiB7CisgICAgZ2V0SG90a2V5Q29udHJvbGxlckZvckVsZW1lbnQ6IGdldEhvdGtleUNvbnRyb2xsZXJGb3JFbGVtZW50CisgIH07Cit9KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9ob3RrZXlfY29udHJvbGxlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaG90a2V5X2NvbnRyb2xsZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5OWFkOWQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaG90a2V5X2NvbnRyb2xsZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hvdGtleV9jb250cm9sbGVyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIEtleUV2ZW50TWFuYWdlciA9IHRyLmIuS2V5RXZlbnRNYW5hZ2VyOworCisgIGZ1bmN0aW9uIG5ld0tleUV2ZW50KGV2ZW50VHlwZSwgZGljdCkgeworICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoZXZlbnRUeXBlLCB0cnVlLCB0cnVlKTsKKyAgICBpZiAoZGljdC5rZXlDb2RlID09PSB1bmRlZmluZWQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleUNvZGUgcmVxdWlyZWQnKTsKKyAgICBlLmtleUNvZGUgPSBkaWN0LmtleUNvZGU7CisgICAgcmV0dXJuIGU7CisgIH0KKworICB0ZXN0KCdzaW1wbGVIb3RrZXlNYW5hZ2VyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHJvb3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyb290RWxlbWVudCk7CisgICAgdHJ5IHsKKyAgICAgIHZhciBlbGVtZW50U2hhZG93ID0gcm9vdEVsZW1lbnQuY3JlYXRlU2hhZG93Um9vdCgpOworCisgICAgICB2YXIgaGtjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHYtdWktYi1ob3RrZXktY29udHJvbGxlcicpOworICAgICAgZWxlbWVudFNoYWRvdy5hcHBlbmRDaGlsZChoa2MpOworCisgICAgICB2YXIgc3ViRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgZWxlbWVudFNoYWRvdy5hcHBlbmRDaGlsZChzdWJFbGVtZW50KTsKKworICAgICAgYXNzZXJ0LmVxdWFsKHRyLmIuZ2V0SG90a2V5Q29udHJvbGxlckZvckVsZW1lbnQoc3ViRWxlbWVudCksIGhrYyk7CisKKyAgICAgIHZhciBkaWRHZXRDYWxsZWQgPSBmYWxzZTsKKyAgICAgIGhrYy5hZGRIb3RLZXkobmV3IHRyLnVpLmIuSG90S2V5KHsKKyAgICAgICAgZXZlbnRUeXBlOiAna2V5ZG93bicsCisgICAgICAgIGtleUNvZGU6IDczLCB1c2VDYXB0dXJlOiB0cnVlLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oKSB7CisgICAgICAgICAgZGlkR2V0Q2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgfSkpOworCisgICAgICAvLyBFbnN1cmUgaXQgaXMgY2FsbGVkIHdoZW4gZXZlbnRzIHRhcmdldCB0aGUgcm9vdCBlbGVtZW50LgorICAgICAgdmFyIGUgPSBuZXdLZXlFdmVudCgna2V5ZG93bicsIHtrZXlDb2RlOiA3M30pOworICAgICAgcm9vdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChlKTsKKyAgICAgIGFzc2VydC5pc1RydWUoZGlkR2V0Q2FsbGVkKTsKKworICAgICAgLy8gRW5zdXJlIGl0IGlzIHN0aWxsIGNhbGxlZCB3aGVuIHdlIHRhcmdldCB0aGUgc3ViIGVsZW1lbnQuCisgICAgICBkaWRHZXRDYWxsZWQgPSBmYWxzZTsKKyAgICAgIHZhciBlID0gbmV3S2V5RXZlbnQoJ2tleWRvd24nLCB7a2V5Q29kZTogNzN9KTsKKyAgICAgIHN1YkVsZW1lbnQuZGlzcGF0Y2hFdmVudChlKTsKKyAgICAgIGFzc2VydC5pc1RydWUoZGlkR2V0Q2FsbGVkKTsKKworICAgIH0gZmluYWxseSB7CisgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJvb3RFbGVtZW50KTsKKyAgICB9CisgIH0pOworCisgIHRlc3QoJ25lc3RlZEhvdGtleUNvbnRyb2xsZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcm9vdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3RFbGVtZW50KTsKKyAgICB0cnkgeworICAgICAgdmFyIGVsZW1lbnRTaGFkb3cgPSByb290RWxlbWVudC5jcmVhdGVTaGFkb3dSb290KCk7CisKKyAgICAgIHZhciBoa2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0di11aS1iLWhvdGtleS1jb250cm9sbGVyJyk7CisgICAgICBlbGVtZW50U2hhZG93LmFwcGVuZENoaWxkKGhrYyk7CisKKyAgICAgIHZhciBzdWJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICBlbGVtZW50U2hhZG93LmFwcGVuZENoaWxkKHN1YkVsZW1lbnQpOworICAgICAgYXNzZXJ0LmVxdWFsKHRyLmIuZ2V0SG90a2V5Q29udHJvbGxlckZvckVsZW1lbnQoZWxlbWVudFNoYWRvdyksIGhrYyk7CisKKyAgICAgIHZhciBzdWJIS0MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0di11aS1iLWhvdGtleS1jb250cm9sbGVyJyk7CisgICAgICBzdWJFbGVtZW50LmFwcGVuZENoaWxkKHN1YkhLQyk7CisKKyAgICAgIGFzc2VydC5lcXVhbCh0ci5iLmdldEhvdGtleUNvbnRyb2xsZXJGb3JFbGVtZW50KHN1YkVsZW1lbnQpLCBzdWJIS0MpOworCisgICAgICB2YXIgZGlkR2V0Q2FsbGVkID0gZmFsc2U7CisgICAgICBzdWJIS0MuYWRkSG90S2V5KG5ldyB0ci51aS5iLkhvdEtleSh7CisgICAgICAgIGV2ZW50VHlwZTogJ2tleWRvd24nLAorICAgICAgICBrZXlDb2RlOiA3MywgdXNlQ2FwdHVyZTogdHJ1ZSwKKyAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGRpZEdldENhbGxlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgIH0pKTsKKworICAgICAgLy8gRW5zdXJlIGl0IGlzIGNhbGxlZCB3aGVuIGV2ZW50cyB0YXJnZXQgdGhlIHJvb3QgZWxlbWVudC4KKyAgICAgIHZhciBlID0gbmV3S2V5RXZlbnQoJ2tleWRvd24nLCB7a2V5Q29kZTogNzN9KTsKKyAgICAgIHJvb3RFbGVtZW50LmRpc3BhdGNoRXZlbnQoZSk7CisgICAgICBhc3NlcnQuaXNUcnVlKGRpZEdldENhbGxlZCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocm9vdEVsZW1lbnQpOworICAgIH0KKyAgfSk7CisKKyAgdGVzdCgnaW5wdXRJbnNpZGVIS0MnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcm9vdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3RFbGVtZW50KTsKKyAgICB0cnkgeworICAgICAgdmFyIGVsZW1lbnRTaGFkb3cgPSByb290RWxlbWVudC5jcmVhdGVTaGFkb3dSb290KCk7CisKKyAgICAgIHZhciBoa2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0di11aS1iLWhvdGtleS1jb250cm9sbGVyJyk7CisgICAgICBlbGVtZW50U2hhZG93LmFwcGVuZENoaWxkKGhrYyk7CisKKyAgICAgIHZhciBpbnB1dEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKyAgICAgIGVsZW1lbnRTaGFkb3cuYXBwZW5kQ2hpbGQoaW5wdXRFbCk7CisKKyAgICAgIHZhciBkaWRHZXRDYWxsZWQgPSBmYWxzZTsKKyAgICAgIGhrYy5hZGRIb3RLZXkobmV3IHRyLnVpLmIuSG90S2V5KHsKKyAgICAgICAgZXZlbnRUeXBlOiAna2V5cHJlc3MnLAorICAgICAgICBrZXlDb2RlOiAnYScuY2hhckNvZGVBdCgwKSwgdXNlQ2FwdHVyZTogZmFsc2UsCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICBjb25zb2xlLmxvZygnYSB3YXMgcHJlc3NlZCcpOworICAgICAgICAgIGRpZEdldENhbGxlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgIH0pKTsKKworICAgICAgLy8gRW5zdXJlIGl0IGlzIGNhbGxlZCB3aGVuIGV2ZW50cyB0YXJnZXQgdGhlIHJvb3QgZWxlbWVudC4KKyAgICAgIGRpZEdldENhbGxlZCA9IGZhbHNlOworICAgICAgdmFyIGUgPSBuZXdLZXlFdmVudCgna2V5cHJlc3MnLCB7a2V5Q29kZTogJ2EnLmNoYXJDb2RlQXQoMCl9KTsKKyAgICAgIHJvb3RFbGVtZW50LmRpc3BhdGNoRXZlbnQoZSk7CisgICAgICBhc3NlcnQuaXNUcnVlKGRpZEdldENhbGxlZCk7CisKKyAgICAgIC8vIEhhbmRsZXIgc2hvdWxkIE5PVCBiZSBjYWxsZWQgd2hlbiBldmVudHMgdGFyZ2V0IHRoZSBpbnB1dCBlbGVtZW50LgorICAgICAgZGlkR2V0Q2FsbGVkID0gZmFsc2U7CisgICAgICB2YXIgZSA9IG5ld0tleUV2ZW50KCdrZXlwcmVzcycsIHtrZXlDb2RlOiAnYScuY2hhckNvZGVBdCgwKX0pOworICAgICAgaW5wdXRFbC5kaXNwYXRjaEV2ZW50KGUpOworICAgICAgYXNzZXJ0LmlzRmFsc2UoZGlkR2V0Q2FsbGVkKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyb290RWxlbWVudCk7CisgICAgfQorICB9KTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9pbmZvX2Jhci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2luZm9fYmFyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY4MjViYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9pbmZvX2Jhci5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItdWktYi1pbmZvLWJhcicgaXM9J0hUTUxEaXZFbGVtZW50Jz4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLCAyMzUsIDE2Mik7CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0EzQTNBMzsKKyAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgd2hpdGU7CisgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQTNBM0EzOworICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHdoaXRlOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGhlaWdodDogMjZweDsKKyAgICAgIHBhZGRpbmc6IDAgM3B4IDAgM3B4OworICAgIH0KKworICAgIDpob3N0KC5pbmZvLWJhci1oaWRkZW4pIHsKKyAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorCisgICAgI21lc3NhZ2UgeyBmbGV4OiAxIDEgYXV0bzsgfQorICAgIDwvc3R5bGU+CisKKyAgICA8c3BhbiBpZD0nbWVzc2FnZSc+PC9zcGFuPgorICAgIDxzcGFuIGlkPSdidXR0b25zJz48L3NwYW4+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMubWVzc2FnZUVsXyA9IHRoaXMuJC5tZXNzYWdlOworICAgICAgdGhpcy5idXR0b25zRWxfID0gdGhpcy4kLmJ1dHRvbnM7CisKKyAgICAgIHRoaXMubWVzc2FnZSA9ICcnOworICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7CisgICAgfSwKKworICAgIGdldCBtZXNzYWdlKCkgeworICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZUVsXy50ZXh0Q29udGVudDsKKyAgICB9LAorCisgICAgc2V0IG1lc3NhZ2UobWVzc2FnZSkgeworICAgICAgdGhpcy5tZXNzYWdlRWxfLnRleHRDb250ZW50ID0gbWVzc2FnZTsKKyAgICB9LAorCisgICAgZ2V0IHZpc2libGUoKSB7CisgICAgICByZXR1cm4gIXRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdpbmZvLWJhci1oaWRkZW4nKTsKKyAgICB9LAorCisgICAgc2V0IHZpc2libGUodmlzaWJsZSkgeworICAgICAgaWYgKHZpc2libGUpCisgICAgICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgnaW5mby1iYXItaGlkZGVuJyk7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnaW5mby1iYXItaGlkZGVuJyk7CisgICAgfSwKKworICAgIHJlbW92ZUFsbEJ1dHRvbnM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5idXR0b25zRWxfLnRleHRDb250ZW50ID0gJyc7CisgICAgfSwKKworICAgIGFkZEJ1dHRvbjogZnVuY3Rpb24odGV4dCwgY2xpY2tDYWxsYmFjaykgeworICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOworICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gdGV4dDsKKyAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsaWNrQ2FsbGJhY2spOworICAgICAgdGhpcy5idXR0b25zRWxfLmFwcGVuZENoaWxkKGJ1dHRvbik7CisgICAgICByZXR1cm4gYnV0dG9uOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaW5mb19iYXJfZ3JvdXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9pbmZvX2Jhcl9ncm91cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3OGRiNjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaW5mb19iYXJfZ3JvdXAuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvdWkvYmFzZS9pbmZvX2Jhci5odG1sJz4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci11aS1iLWluZm8tYmFyLWdyb3VwJyBpcz0nSFRNTFVua25vd25FbGVtZW50Jz4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBmbGV4OiAwIDAgYXV0bzsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9J21lc3NhZ2VzJz48L2Rpdj4KKyAgPC90ZW1wbGF0ZT4KKworICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMubWVzc2FnZXNfID0gW107CisgICAgfSwKKworICAgIGNsZWFyTWVzc2FnZXM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5tZXNzYWdlc18gPSBbXTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGFkZE1lc3NhZ2U6IGZ1bmN0aW9uKHRleHQsIG9wdF9idXR0b25zKSB7CisgICAgICBvcHRfYnV0dG9ucyA9IG9wdF9idXR0b25zIHx8IFtdOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRfYnV0dG9ucy5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAob3B0X2J1dHRvbnNbaV0uYnV0dG9uVGV4dCA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYnV0dG9uVGV4dCBtdXN0IGJlIHByb3ZpZGVkJyk7CisgICAgICAgIGlmIChvcHRfYnV0dG9uc1tpXS5vbkNsaWNrID09PSB1bmRlZmluZWQpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdvbkNsaWNrIG11c3QgYmUgcHJvdmlkZWQnKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5tZXNzYWdlc18ucHVzaCh7CisgICAgICAgIHRleHQ6IHRleHQsCisgICAgICAgIGJ1dHRvbnM6IG9wdF9idXR0b25zIHx8IFtdCisgICAgICB9KTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLiQubWVzc2FnZXMudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgIHRoaXMubWVzc2FnZXNfLmZvckVhY2goZnVuY3Rpb24obWVzc2FnZSkgeworICAgICAgICB2YXIgYmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1pbmZvLWJhcicpOworICAgICAgICBiYXIubWVzc2FnZSA9IG1lc3NhZ2UudGV4dDsKKyAgICAgICAgYmFyLnZpc2libGUgPSB0cnVlOworCisgICAgICAgIG1lc3NhZ2UuYnV0dG9ucy5mb3JFYWNoKGZ1bmN0aW9uKGJ1dHRvbikgeworICAgICAgICAgIGJhci5hZGRCdXR0b24oYnV0dG9uLmJ1dHRvblRleHQsIGJ1dHRvbi5vbkNsaWNrKTsKKyAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAgdGhpcy4kLm1lc3NhZ2VzLmFwcGVuZENoaWxkKGJhcik7CisgICAgICB9LCB0aGlzKTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2luZm9fYmFyX2dyb3VwX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9pbmZvX2Jhcl9ncm91cF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBiZjNiOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9pbmZvX2Jhcl9ncm91cF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvaW5mb19iYXJfZ3JvdXAuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdncm91cC1pbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpbmZvQmFyR3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWluZm8tYmFyLWdyb3VwJyk7CisgICAgaW5mb0Jhckdyb3VwLmFkZE1lc3NhZ2UoCisgICAgICAgICdNZXNzYWdlIDEnLAorICAgICAgICBbe2J1dHRvblRleHQ6ICdvaycsIG9uQ2xpY2s6IGZ1bmN0aW9uKCkge319XSk7CisgICAgaW5mb0Jhckdyb3VwLmFkZE1lc3NhZ2UoCisgICAgICAgICdNZXNzYWdlIDInLAorICAgICAgICBbe2J1dHRvblRleHQ6ICdidXR0b24gMicsIG9uQ2xpY2s6IGZ1bmN0aW9uKCkge319XSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGluZm9CYXJHcm91cCk7CisgIH0pOworCisgIHRlc3QoJ2dyb3VwLXBvcHVsYXRlLXRoZW4tY2xlYXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaW5mb0Jhckdyb3VwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1pbmZvLWJhci1ncm91cCcpOworICAgIGluZm9CYXJHcm91cC5hZGRNZXNzYWdlKAorICAgICAgICAnTWVzc2FnZSAxJywKKyAgICAgICAgW3tidXR0b25UZXh0OiAnb2snLCBvbkNsaWNrOiBmdW5jdGlvbigpIHt9fV0pOworICAgIGluZm9CYXJHcm91cC5hZGRNZXNzYWdlKAorICAgICAgICAnTWVzc2FnZSAyJywKKyAgICAgICAgW3tidXR0b25UZXh0OiAnYnV0dG9uIDInLCBvbkNsaWNrOiBmdW5jdGlvbigpIHt9fV0pOworICAgIGluZm9CYXJHcm91cC5jbGVhck1lc3NhZ2VzKCk7CisgICAgYXNzZXJ0LmVxdWFsKGluZm9CYXJHcm91cC5jaGlsZHJlbi5sZW5ndGgsIDApOworICB9KTsKKworICB0ZXN0KCdncm91cC1wb3B1bGF0ZS1jbGVhci1yZXBvcHVsYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGluZm9CYXJHcm91cCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItaW5mby1iYXItZ3JvdXAnKTsKKyAgICBpbmZvQmFyR3JvdXAuYWRkTWVzc2FnZSgKKyAgICAgICAgJ01lc3NhZ2UgMScsCisgICAgICAgIFt7YnV0dG9uVGV4dDogJ29rJywgb25DbGljazogZnVuY3Rpb24oKSB7fX1dKTsKKyAgICBpbmZvQmFyR3JvdXAuYWRkTWVzc2FnZSgKKyAgICAgICAgJ01lc3NhZ2UgMicsCisgICAgICAgIFt7YnV0dG9uVGV4dDogJ2J1dHRvbiAyJywgb25DbGljazogZnVuY3Rpb24oKSB7fX1dKTsKKyAgICBpbmZvQmFyR3JvdXAuY2xlYXJNZXNzYWdlcygpOworICAgIGluZm9CYXJHcm91cC5hZGRNZXNzYWdlKAorICAgICAgICAnTWVzc2FnZSAxJywKKyAgICAgICAgW3tidXR0b25UZXh0OiAnb2snLCBvbkNsaWNrOiBmdW5jdGlvbigpIHt9fV0pOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChpbmZvQmFyR3JvdXApOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvaW5mb19iYXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2luZm9fYmFyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmNkM2MyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2luZm9fYmFyX3Rlc3QuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9pbmZvX2Jhci5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpbmZvQmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1pbmZvLWJhcicpOworICAgIGluZm9CYXIubWVzc2FnZSA9ICdUaGlzIGlzIGFuIGluZm8nOworICAgIGluZm9CYXIudmlzaWJsZSA9IHRydWU7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGluZm9CYXIpOworICB9KTsKKworICB0ZXN0KCdidXR0b25zJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGluZm9CYXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLWluZm8tYmFyJyk7CisgICAgaW5mb0Jhci52aXNpYmxlID0gdHJ1ZTsKKyAgICBpbmZvQmFyLm1lc3NhZ2UgPSAnVGhpcyBpcyBhbiBpbmZvIGJhciB3aXRoIGJ1dHRvbnMnOworICAgIHZhciBkaWRDbGljayA9IGZhbHNlOworICAgIHZhciBidXR0b24gPSBpbmZvQmFyLmFkZEJ1dHRvbignTW9yZSBpbmZvLi4uJywgZnVuY3Rpb24oKSB7CisgICAgICBkaWRDbGljayA9IHRydWU7CisgICAgfSk7CisgICAgYnV0dG9uLmNsaWNrKCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkaWRDbGljayk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGluZm9CYXIpOworICB9KTsKKworICB0ZXN0KCdoaWRpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaW5mb0JhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItaW5mby1iYXInKTsKKyAgICBpbmZvQmFyLm1lc3NhZ2UgPSAnVGhpcyBpcyBhbiBpbmZvIGJhcic7CisgICAgaW5mb0Jhci52aXNpYmxlID0gdHJ1ZTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoaW5mb0Jhcik7CisKKyAgICBhc3NlcnQuZXF1YWwoZ2V0Q29tcHV0ZWRTdHlsZShpbmZvQmFyKVsnZGlzcGxheSddLCAnZmxleCcpOworCisgICAgaW5mb0Jhci52aXNpYmxlID0gZmFsc2U7CisgICAgYXNzZXJ0LmVxdWFsKGdldENvbXB1dGVkU3R5bGUoaW5mb0JhcilbJ2Rpc3BsYXknXSwgJ25vbmUnKTsKKworICAgIGluZm9CYXIudmlzaWJsZSA9IHRydWU7CisgICAgYXNzZXJ0LmVxdWFsKGdldENvbXB1dGVkU3R5bGUoaW5mb0JhcilbJ2Rpc3BsYXknXSwgJ2ZsZXgnKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpbmVfY2hhcnQuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2xpbmVfY2hhcnQuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGluZV9jaGFydC5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saW5lX2NoYXJ0LmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2xpbmVfY2hhcnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saW5lX2NoYXJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY4Y2E4ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saW5lX2NoYXJ0Lmh0bWwKQEAgLTAsMCArMSwzMDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2QzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NoYXJ0X2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvbW91c2VfdHJhY2tlci5odG1sIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL2Jhc2UvbGluZV9jaGFydC5jc3MiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKyAgdmFyIENoYXJ0QmFzZSA9IHRyLnVpLmIuQ2hhcnRCYXNlOworICB2YXIgZ2V0Q29sb3JPZktleSA9IHRyLnVpLmIuZ2V0Q29sb3JPZktleTsKKworICBmdW5jdGlvbiBnZXRTYW1wbGVXaWR0aChkYXRhLCBpbmRleCwgbGVmdFNpZGUpIHsKKyAgICB2YXIgbGVmdEluZGV4LCByaWdodEluZGV4OworICAgIGlmIChsZWZ0U2lkZSkgeworICAgICAgbGVmdEluZGV4ID0gTWF0aC5tYXgoaW5kZXggLSAxLCAwKTsKKyAgICAgIHJpZ2h0SW5kZXggPSBpbmRleDsKKyAgICB9IGVsc2UgeworICAgICAgbGVmdEluZGV4ID0gaW5kZXg7CisgICAgICByaWdodEluZGV4ID0gTWF0aC5taW4oaW5kZXggKyAxLCBkYXRhLmxlbmd0aCAtIDEpOworICAgIH0KKyAgICB2YXIgbGVmdFdpZHRoID0gZGF0YVtpbmRleF0ueCAtIGRhdGFbbGVmdEluZGV4XS54OworICAgIHZhciByaWdodFdpZHRoID0gZGF0YVtyaWdodEluZGV4XS54IC0gZGF0YVtpbmRleF0ueDsKKyAgICByZXR1cm4gbGVmdFdpZHRoICogMC41ICsgcmlnaHRXaWR0aCAqIDAuNTsKKyAgfQorCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBMaW5lQ2hhcnQgPSB0ci51aS5iLmRlZmluZSgnbGluZS1jaGFydCcsIENoYXJ0QmFzZSk7CisKKyAgTGluZUNoYXJ0LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IENoYXJ0QmFzZS5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICBDaGFydEJhc2UucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2xpbmUtY2hhcnQnKTsKKworICAgICAgdGhpcy5icnVzaGVkUmFuZ2VfID0gbmV3IHRyLmIuUmFuZ2UoKTsKKworICAgICAgdGhpcy54U2NhbGVfID0gZDMuc2NhbGUubGluZWFyKCk7CisgICAgICB0aGlzLnlTY2FsZV8gPSBkMy5zY2FsZS5saW5lYXIoKTsKKyAgICAgIGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpCisgICAgICAgICAgLmFwcGVuZCgnZycpCisgICAgICAgICAgLmF0dHIoJ2lkJywgJ2JydXNoZXMnKTsKKyAgICAgIGQzLnNlbGVjdCh0aGlzLmNoYXJ0QXJlYUVsZW1lbnQpCisgICAgICAgICAgLmFwcGVuZCgnZycpCisgICAgICAgICAgLmF0dHIoJ2lkJywgJ3NlcmllcycpOworCisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd25fLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXRhIGFycmF5IGZvciB0aGUgb2JqZWN0CisgICAgICoKKyAgICAgKiBAcGFyYW0ge0FycmF5fSBkYXRhIFRoZSBkYXRhLiBFYWNoIGVsZW1lbnQgbXVzdCBiZSBhbiBvYmplY3QsIHdpdGggYXQKKyAgICAgKiBsZWFzdCBhbiB4IHByb3BlcnR5LiBBbGwgb3RoZXIgcHJvcGVydGllcyBiZWNvbWUgc2VyaWVzIG5hbWVzIGluIHRoZQorICAgICAqIGNoYXJ0LiBUaGUgZGF0YSBjYW4gYmUgc3BhcnNlIChpLmUuIGV2ZXJ5IHggdmFsdWUgZG9lcyBub3QgaGF2ZSB0bworICAgICAqIGNvbnRhaW4gZGF0YSBmb3IgZXZlcnkgc2VyaWVzKS4KKyAgICAgKi8KKyAgICBzZXQgZGF0YShkYXRhKSB7CisgICAgICBpZiAoZGF0YS5sZW5ndGggPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIG11c3QgYmUgbm9uemVyby4gUGFzcyB1bmRlZmluZWQuJyk7CisKKyAgICAgIHRoaXMuZGF0YV8gPSBkYXRhOworICAgICAgdGhpcy5zZXJpZXNLZXlzXyA9IHRoaXMuZ2V0U2VyaWVzS2V5c18oKTsKKworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgLy8gTm90ZTogcmFuZ2UgY2FuIG9ubHkgYmUgc2V0LCBub3QgcmV0cmlldmVkLiBJdCBuZWVkcyB0byBiZSBpbW11dGFibGUKKyAgICAvLyBvciBlbHNlIG9kZCBkYXRhIGJpbmRpbmcgZWZmZWN0cyB3aWxsIHJlc3VsdC4KKyAgICBzZXQgYnJ1c2hlZFJhbmdlKHJhbmdlKSB7CisgICAgICB0aGlzLmJydXNoZWRSYW5nZV8ucmVzZXQoKTsKKyAgICAgIHRoaXMuYnJ1c2hlZFJhbmdlXy5hZGRSYW5nZShyYW5nZSk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBjb21wdXRlQnJ1c2hSYW5nZUZyb21JbmRpY2VzOiBmdW5jdGlvbihpbmRleEEsIGluZGV4QikgeworICAgICAgdmFyIHIgPSBuZXcgdHIuYi5SYW5nZSgpOworICAgICAgdmFyIGxlZnRJbmRleCA9IE1hdGgubWluKGluZGV4QSwgaW5kZXhCKTsKKyAgICAgIHZhciByaWdodEluZGV4ID0gTWF0aC5tYXgoaW5kZXhBLCBpbmRleEIpOworICAgICAgbGVmdEluZGV4ID0gTWF0aC5tYXgoMCwgbGVmdEluZGV4KTsKKyAgICAgIHJpZ2h0SW5kZXggPSBNYXRoLm1pbih0aGlzLmRhdGFfLmxlbmd0aCAtIDEsIHJpZ2h0SW5kZXgpOworICAgICAgci5hZGRWYWx1ZSh0aGlzLmRhdGFfW2xlZnRJbmRleF0ueCAtCisgICAgICAgICAgZ2V0U2FtcGxlV2lkdGgodGhpcy5kYXRhXywgbGVmdEluZGV4LCB0cnVlKSk7CisgICAgICByLmFkZFZhbHVlKHRoaXMuZGF0YV9bcmlnaHRJbmRleF0ueCArCisgICAgICAgICAgZ2V0U2FtcGxlV2lkdGgodGhpcy5kYXRhXywgcmlnaHRJbmRleCwgZmFsc2UpKTsKKyAgICAgIHJldHVybiByOworICAgIH0sCisKKyAgICBnZXRMZWdlbmRLZXlzXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5zZXJpZXNLZXlzXyAmJgorICAgICAgICAgIHRoaXMuc2VyaWVzS2V5c18ubGVuZ3RoID4gMSkKKyAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWVzS2V5c18uc2xpY2UoKTsKKyAgICAgIHJldHVybiBbXTsKKyAgICB9LAorCisgICAgZ2V0U2VyaWVzS2V5c186IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuZGF0YV8gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgLy8gQWNjdW11bGF0ZSB0aGUga2V5cyBvbiBlYWNoIGRhdGEgcG9pbnQuCisgICAgICB2YXIga2V5U2V0ID0ge307CisgICAgICB0aGlzLmRhdGFfLmZvckVhY2goZnVuY3Rpb24oZGF0dW0pIHsKKyAgICAgICAgaWYgKGRhdHVtLnggPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VsZW1lbnRzIG11c3QgaGF2ZSAieCIgZmllbGRzLicpOworCisgICAgICAgIE9iamVjdC5rZXlzKGRhdHVtKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgeworICAgICAgICAgIC8vIERvbid0IGNvdW50ICd4JzogaXQncyB0aGUgZG9tYWluLCBub3QgYW4gYWN0dWFsIHNlcmllcy4KKyAgICAgICAgICBpZiAoa2V5ID09PSAneCcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICBrZXlTZXRba2V5XSA9IHRydWU7CisgICAgICAgIH0pOworICAgICAgfSk7CisKKyAgICAgIHJldHVybiBPYmplY3Qua2V5cyhrZXlTZXQpOworICAgIH0sCisKKyAgICB1cGRhdGVTY2FsZXNfOiBmdW5jdGlvbih3aWR0aCwgaGVpZ2h0KSB7CisgICAgICBpZiAodGhpcy5kYXRhXyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIFguCisgICAgICB0aGlzLnhTY2FsZV8ucmFuZ2UoWzAsIHdpZHRoXSk7CisgICAgICB0aGlzLnhTY2FsZV8uZG9tYWluKGQzLmV4dGVudCh0aGlzLmRhdGFfLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLng7IH0pKTsKKworICAgICAgLy8gWS4KKyAgICAgIHZhciB5UmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOworICAgICAgdGhpcy5kYXRhXy5mb3JFYWNoKGZ1bmN0aW9uKGRhdHVtKSB7CisgICAgICAgIHRoaXMuc2VyaWVzS2V5c18uZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKKyAgICAgICAgICAvLyBBbGxvdyBmb3Igc3BhcnNlIGRhdGEKKyAgICAgICAgICBpZiAoZGF0dW1ba2V5XSAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgeVJhbmdlLmFkZFZhbHVlKGRhdHVtW2tleV0pOworICAgICAgICB9KTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICB0aGlzLnlTY2FsZV8ucmFuZ2UoW2hlaWdodCwgMF0pOworICAgICAgdGhpcy55U2NhbGVfLmRvbWFpbihbeVJhbmdlLm1pbiwgeVJhbmdlLm1heF0pOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgQ2hhcnRCYXNlLnByb3RvdHlwZS51cGRhdGVDb250ZW50c18uY2FsbCh0aGlzKTsKKyAgICAgIGlmICghdGhpcy5kYXRhXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgY2hhcnRBcmVhU2VsID0gZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCk7CisKKyAgICAgIHZhciBicnVzaGVzID0gdGhpcy5icnVzaGVkUmFuZ2VfLmlzRW1wdHkgPyBbXSA6IFt0aGlzLmJydXNoZWRSYW5nZV9dOworCisgICAgICB2YXIgYnJ1c2hSZWN0c1NlbCA9IGNoYXJ0QXJlYVNlbC5zZWxlY3QoJyNicnVzaGVzJykKKyAgICAgICAgICAuc2VsZWN0QWxsKCdyZWN0JykuZGF0YShicnVzaGVzKTsKKyAgICAgIGJydXNoUmVjdHNTZWwuZW50ZXIoKQorICAgICAgICAgIC5hcHBlbmQoJ3JlY3QnKTsKKyAgICAgIGJydXNoUmVjdHNTZWwuZXhpdCgpLnJlbW92ZSgpOworICAgICAgYnJ1c2hSZWN0c1NlbAorICAgICAgICAuYXR0cigneCcsIGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLnhTY2FsZV8oZC5taW4pOworICAgICAgICAgIH0uYmluZCh0aGlzKSkKKyAgICAgICAgLmF0dHIoJ3knLCAwKQorICAgICAgICAuYXR0cignd2lkdGgnLCBmdW5jdGlvbihkKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy54U2NhbGVfKGQubWF4KSAtIHRoaXMueFNjYWxlXyhkLm1pbik7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKQorICAgICAgICAuYXR0cignaGVpZ2h0JywgdGhpcy5jaGFydEFyZWFTaXplLmhlaWdodCk7CisKKyAgICAgIHZhciBkYXRhQnlTZXJpZXNLZXkgPSB0aGlzLmdldERhdGFCeVNlcmllc0tleV8oKTsKKworICAgICAgdmFyIHNlcmllc1NlbCA9IGNoYXJ0QXJlYVNlbC5zZWxlY3QoJyNzZXJpZXMnKTsKKyAgICAgIHZhciBwYXRoc1NlbCA9IHNlcmllc1NlbC5zZWxlY3RBbGwoJ3BhdGgnKS5kYXRhKHRoaXMuc2VyaWVzS2V5c18pOworICAgICAgcGF0aHNTZWwuZW50ZXIoKQorICAgICAgICAgIC5hcHBlbmQoJ3BhdGgnKQorICAgICAgICAgIC5hdHRyKCdjbGFzcycsICdsaW5lJykKKyAgICAgICAgICAuc3R5bGUoJ3N0cm9rZScsIGZ1bmN0aW9uKGtleSkgeworICAgICAgICAgICAgcmV0dXJuIGdldENvbG9yT2ZLZXkoa2V5KTsKKyAgICAgICAgICB9KQorICAgICAgICAgIC5hdHRyKCdkJywgZnVuY3Rpb24oa2V5KSB7CisgICAgICAgICAgICB2YXIgbGluZSA9IGQzLnN2Zy5saW5lKCkKKyAgICAgICAgICAgICAgLngoZnVuY3Rpb24oZCkgeyByZXR1cm4gdGhpcy54U2NhbGVfKGQueCk7IH0uYmluZCh0aGlzKSkKKyAgICAgICAgICAgICAgLnkoZnVuY3Rpb24oZCkgeyByZXR1cm4gdGhpcy55U2NhbGVfKGRba2V5XSk7IH0uYmluZCh0aGlzKSk7CisgICAgICAgICAgICByZXR1cm4gbGluZShkYXRhQnlTZXJpZXNLZXlba2V5XSk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgIHBhdGhzU2VsLmV4aXQoKS5yZW1vdmUoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG1hcCBvZiBzZXJpZXMga2V5IHRvIHRoZSBkYXRhIGZvciB0aGF0IHNlcmllcy4KKyAgICAgKgorICAgICAqIEV4YW1wbGU6CisgICAgICogLy8gcmV0dXJucyB7eTogW3t4OiAxLCB5OiAxfSwge3g6IDMsIHk6IDN9XSwgejogW3t4OiAyLCB6OiAyfV19CisgICAgICogdGhpcy5kYXRhXyA9IFt7eDogMSwgeTogMX0sIHt4OiAyLCB6OiAyfSwge3g6IDMsIHk6IDN9XTsKKyAgICAgKiB0aGlzLmdldERhdGFCeVNlcmllc0tleV8oKTsKKyAgICAgKiBAcmV0dXJuIHtPYmplY3R9IEEgbWFwIG9mIHNlcmllcyBkYXRhIGJ5IHNlcmllcyBrZXkuCisgICAgICovCisgICAgZ2V0RGF0YUJ5U2VyaWVzS2V5XzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZGF0YUJ5U2VyaWVzS2V5ID0ge307CisgICAgICB0aGlzLnNlcmllc0tleXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzS2V5KSB7CisgICAgICAgIGRhdGFCeVNlcmllc0tleVtzZXJpZXNLZXldID0gW107CisgICAgICB9KTsKKworICAgICAgdGhpcy5kYXRhXy5mb3JFYWNoKGZ1bmN0aW9uKG11bHRpU2VyaWVzRGF0dW0pIHsKKyAgICAgICAgdmFyIHggPSBtdWx0aVNlcmllc0RhdHVtLng7CisKKyAgICAgICAgZDMua2V5cyhtdWx0aVNlcmllc0RhdHVtKS5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllc0tleSkgeworICAgICAgICAgIC8vIFNraXAgJ3gnIC0gaXQncyBub3QgYSBzZXJpZXMKKyAgICAgICAgICBpZiAoc2VyaWVzS2V5ID09PSAneCcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICBpZiAobXVsdGlTZXJpZXNEYXR1bVtzZXJpZXNLZXldID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICB2YXIgc2luZ2xlU2VyaWVzRGF0dW0gPSB7eDogeH07CisgICAgICAgICAgc2luZ2xlU2VyaWVzRGF0dW1bc2VyaWVzS2V5XSA9IG11bHRpU2VyaWVzRGF0dW1bc2VyaWVzS2V5XTsKKyAgICAgICAgICBkYXRhQnlTZXJpZXNLZXlbc2VyaWVzS2V5XS5wdXNoKHNpbmdsZVNlcmllc0RhdHVtKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKworICAgICAgcmV0dXJuIGRhdGFCeVNlcmllc0tleTsKKyAgICB9LAorCisgICAgZ2V0RGF0YUluZGV4QXRDbGllbnRQb2ludF86IGZ1bmN0aW9uKGNsaWVudFgsIGNsaWVudFksIGNsaXBUb1kpIHsKKyAgICAgIHZhciByZWN0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBtYXJnaW4gPSB0aGlzLm1hcmdpbjsKKyAgICAgIHZhciBjaGFydEFyZWFTaXplID0gdGhpcy5jaGFydEFyZWFTaXplOworCisgICAgICB2YXIgeCA9IGNsaWVudFggLSByZWN0LmxlZnQgLSBtYXJnaW4ubGVmdDsKKyAgICAgIHZhciB5ID0gY2xpZW50WSAtIHJlY3QudG9wIC0gbWFyZ2luLnRvcDsKKworICAgICAgLy8gRG9uJ3QgY2hlY2sgd2lkdGg6IGxldCBwZW9wbGUgc2VsZWN0IHRoZSBsZWZ0LSBhbmQgcmlnaHQtbW9zdCBkYXRhCisgICAgICAvLyBwb2ludHMuCisgICAgICBpZiAoY2xpcFRvWSkgeworICAgICAgICBpZiAoeSA8IDAgfHwKKyAgICAgICAgICAgIHkgPj0gY2hhcnRBcmVhU2l6ZS5oZWlnaHQpCisgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIH0KKworICAgICAgdmFyIGRhdGFYID0gdGhpcy54U2NhbGVfLmludmVydCh4KTsKKworICAgICAgdmFyIGluZGV4OworICAgICAgaWYgKHRoaXMuZGF0YV8pIHsKKyAgICAgICAgdmFyIGJpc2VjdCA9IGQzLmJpc2VjdG9yKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQueDsgfSkucmlnaHQ7CisgICAgICAgIGluZGV4ID0gYmlzZWN0KHRoaXMuZGF0YV8sIGRhdGFYKSAtIDE7CisgICAgICB9CisKKyAgICAgIHJldHVybiBpbmRleDsKKyAgICB9LAorCisgICAgb25Nb3VzZURvd25fOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgaW5kZXggPSB0aGlzLmdldERhdGFJbmRleEF0Q2xpZW50UG9pbnRfKGUuY2xpZW50WCwgZS5jbGllbnRZLCB0cnVlKTsKKworICAgICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdHIudWkuYi50cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAoCisgICAgICAgICAgICB0aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMsIGUuYnV0dG9uKSwKKyAgICAgICAgICAgIHRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMsIGUuYnV0dG9uKSk7CisgICAgICB9CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworCisgICAgICB2YXIgZXZlbnQgPSBuZXcgdHIuYi5FdmVudCgnaXRlbS1tb3VzZWRvd24nKTsKKyAgICAgIGV2ZW50LmRhdGEgPSB0aGlzLmRhdGFfW2luZGV4XTsKKyAgICAgIGV2ZW50LmluZGV4ID0gaW5kZXg7CisgICAgICBldmVudC5idXR0b25zID0gZS5idXR0b25zOworICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB9LAorCisgICAgb25Nb3VzZU1vdmVfOiBmdW5jdGlvbihidXR0b24sIGUpIHsKKyAgICAgIHZhciBpbmRleCA9IHRoaXMuZ2V0RGF0YUluZGV4QXRDbGllbnRQb2ludF8oZS5jbGllbnRYLCBlLmNsaWVudFksIGZhbHNlKTsKKyAgICAgIGlmIChlLmJ1dHRvbnMgIT09IHVuZGVmaW5lZCkgeworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICB9CisKKyAgICAgIHZhciBldmVudCA9IG5ldyB0ci5iLkV2ZW50KCdpdGVtLW1vdXNlbW92ZScpOworICAgICAgZXZlbnQuZGF0YSA9IHRoaXMuZGF0YV9baW5kZXhdOworICAgICAgZXZlbnQuaW5kZXggPSBpbmRleDsKKyAgICAgIGV2ZW50LmJ1dHRvbiA9IGJ1dHRvbjsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgfSwKKworICAgIG9uTW91c2VVcF86IGZ1bmN0aW9uKGJ1dHRvbiwgZSkgeworICAgICAgdmFyIGluZGV4ID0gdGhpcy5nZXREYXRhSW5kZXhBdENsaWVudFBvaW50XyhlLmNsaWVudFgsIGUuY2xpZW50WSwgZmFsc2UpOworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKworICAgICAgdmFyIGV2ZW50ID0gbmV3IHRyLmIuRXZlbnQoJ2l0ZW0tbW91c2V1cCcpOworICAgICAgZXZlbnQuZGF0YSA9IHRoaXMuZGF0YV9baW5kZXhdOworICAgICAgZXZlbnQuaW5kZXggPSBpbmRleDsKKyAgICAgIGV2ZW50LmJ1dHRvbiA9IGJ1dHRvbjsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgTGluZUNoYXJ0OiBMaW5lQ2hhcnQKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbGluZV9jaGFydF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbGluZV9jaGFydF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU5MjQ0NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saW5lX2NoYXJ0X3Rlc3QuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvbGluZV9jaGFydC5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdpbnN0YW50aWF0aW9uX3NpbmdsZVNlcmllcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjaGFydCA9IG5ldyB0ci51aS5iLkxpbmVDaGFydCgpOworICAgIGNoYXJ0LndpZHRoID0gNDAwOworICAgIGNoYXJ0LmhlaWdodCA9IDIwMDsKKyAgICBjaGFydC5jaGFydFRpdGxlID0gJ0NoYXJ0IHRpdGxlJzsKKyAgICB2YXIgZGF0YSA9IFsKKyAgICAgIHt4OiAxMCwgeTogMTAwfSwKKyAgICAgIHt4OiAyMCwgeTogMTEwfSwKKyAgICAgIHt4OiAzMCwgeTogMTAwfSwKKyAgICAgIHt4OiA0MCwgeTogNTB9CisgICAgXTsKKyAgICBjaGFydC5kYXRhID0gZGF0YTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0aW9uX3R3b1NlcmllcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjaGFydCA9IG5ldyB0ci51aS5iLkxpbmVDaGFydCgpOworCisgICAgY2hhcnQud2lkdGggPSA0MDA7CisgICAgY2hhcnQuaGVpZ2h0ID0gMjAwOworICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOworICAgIHZhciBkYXRhID0gWworICAgICAge3g6IDEwLCBhbHBoYTogMTAwLCBiZXRhOiA1MH0sCisgICAgICB7eDogMjAsIGFscGhhOiAxMTAsIGJldGE6IDc1fSwKKyAgICAgIHt4OiAzMCwgYWxwaGE6IDEwMCwgYmV0YTogMTI1fSwKKyAgICAgIHt4OiA0MCwgYWxwaGE6IDUwLCBiZXRhOiAxMjV9CisgICAgXTsKKyAgICBjaGFydC5kYXRhID0gZGF0YTsKKworICAgIHZhciByID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICByLmFkZFZhbHVlKDIwKTsKKyAgICByLmFkZFZhbHVlKDQwKTsKKyAgICBjaGFydC5icnVzaGVkUmFuZ2UgPSByOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNoYXJ0KTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGlvbl90d29TcGFyc2VTZXJpZXNXaXRoRmlyc3RWYWx1ZVNwYXJzZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjaGFydCA9IG5ldyB0ci51aS5iLkxpbmVDaGFydCgpOworCisgICAgY2hhcnQud2lkdGggPSA0MDA7CisgICAgY2hhcnQuaGVpZ2h0ID0gMjAwOworICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOworICAgIHZhciBkYXRhID0gWworICAgICAge3g6IDEwLCBhbHBoYTogMjAsIGJldGE6IHVuZGVmaW5lZH0sCisgICAgICB7eDogMjAsIGFscGhhOiB1bmRlZmluZWQsIGJldGE6IDEwfSwKKyAgICAgIHt4OiAzMCwgYWxwaGE6IDEwLCBiZXRhOiB1bmRlZmluZWR9LAorICAgICAge3g6IDQ1LCBhbHBoYTogdW5kZWZpbmVkLCBiZXRhOiAyMH0sCisgICAgICB7eDogNTAsIGFscGhhOiAzMCwgYmV0YTogMzB9CisgICAgXTsKKyAgICBjaGFydC5kYXRhID0gZGF0YTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChjaGFydCk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRpb25fdHdvU3BhcnNlU2VyaWVzV2l0aEZpcnN0VmFsdWVOb3RTcGFyc2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2hhcnQgPSBuZXcgdHIudWkuYi5MaW5lQ2hhcnQoKTsKKworICAgIGNoYXJ0LndpZHRoID0gNDAwOworICAgIGNoYXJ0LmhlaWdodCA9IDIwMDsKKyAgICBjaGFydC5jaGFydFRpdGxlID0gJ0NoYXJ0IHRpdGxlJzsKKyAgICB2YXIgZGF0YSA9IFsKKyAgICAgIHt4OiAxMCwgYWxwaGE6IDIwLCBiZXRhOiA0MH0sCisgICAgICB7eDogMjAsIGFscGhhOiB1bmRlZmluZWQsIGJldGE6IDEwfSwKKyAgICAgIHt4OiAzMCwgYWxwaGE6IDEwLCBiZXRhOiB1bmRlZmluZWR9LAorICAgICAge3g6IDQ1LCBhbHBoYTogdW5kZWZpbmVkLCBiZXRhOiAyMH0sCisgICAgICB7eDogNTAsIGFscGhhOiAzMCwgYmV0YTogdW5kZWZpbmVkfQorICAgIF07CisgICAgY2hhcnQuZGF0YSA9IGRhdGE7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOworICB9KTsKKworICB0ZXN0KCdicnVzaFJhbmdlRnJvbUluZGljZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2hhcnQgPSBuZXcgdHIudWkuYi5MaW5lQ2hhcnQoKTsKKyAgICB2YXIgZGF0YSA9IFsKKyAgICAgIHt4OiAxMCwgdmFsdWU6IDUwfSwKKyAgICAgIHt4OiAzMCwgdmFsdWU6IDYwfSwKKyAgICAgIHt4OiA3MCwgdmFsdWU6IDcwfSwKKyAgICAgIHt4OiA4MCwgdmFsdWU6IDgwfSwKKyAgICAgIHt4OiAxMjAsIHZhbHVlOiA5MH0KKyAgICBdOworICAgIGNoYXJ0LmRhdGEgPSBkYXRhOworICAgIHZhciByID0gbmV3IHRyLmIuUmFuZ2UoKTsKKworICAgIC8vIFJhbmdlIG1pbiBzaG91bGQgYmUgMTAuCisgICAgciA9IGNoYXJ0LmNvbXB1dGVCcnVzaFJhbmdlRnJvbUluZGljZXMoLTIsIDEpOworICAgIGFzc2VydC5lcXVhbChyLm1pbiwgMTApOworCisgICAgLy8gUmFuZ2UgbWF4IHNob3VsZCBiZSAxMjAuCisgICAgciA9IGNoYXJ0LmNvbXB1dGVCcnVzaFJhbmdlRnJvbUluZGljZXMoMywgMTApOworICAgIGFzc2VydC5lcXVhbChyLm1heCwgMTIwKTsKKworICAgIC8vIFJhbmdlIHNob3VsZCBiZSBbMTAsIDEyMF0KKyAgICByID0gY2hhcnQuY29tcHV0ZUJydXNoUmFuZ2VGcm9tSW5kaWNlcygtMiwgMTApOworICAgIGFzc2VydC5lcXVhbChyLm1pbiwgMTApOworICAgIGFzc2VydC5lcXVhbChyLm1heCwgMTIwKTsKKworICAgIC8vIFJhbmdlIHNob3VsZCBiZSBbMjAsIDEwMF0KKyAgICByID0gY2hhcnQuY29tcHV0ZUJydXNoUmFuZ2VGcm9tSW5kaWNlcygxLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwoci5taW4sIDIwKTsKKyAgICBhc3NlcnQuZXF1YWwoci5tYXgsIDEwMCk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRpb25faW50ZXJhY3RpdmVCcnVzaGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjaGFydCA9IG5ldyB0ci51aS5iLkxpbmVDaGFydCgpOworICAgIGNoYXJ0LndpZHRoID0gNDAwOworICAgIGNoYXJ0LmhlaWdodCA9IDIwMDsKKyAgICBjaGFydC5jaGFydFRpdGxlID0gJ0NoYXJ0IHRpdGxlJzsKKyAgICB2YXIgZGF0YSA9IFsKKyAgICAgIHt4OiAxMCwgdmFsdWU6IDUwfSwKKyAgICAgIHt4OiAyMCwgdmFsdWU6IDYwfSwKKyAgICAgIHt4OiAzMCwgdmFsdWU6IDgwfSwKKyAgICAgIHt4OiA0MCwgdmFsdWU6IDIwfSwKKyAgICAgIHt4OiA1MCwgdmFsdWU6IDMwfSwKKyAgICAgIHt4OiA2MCwgdmFsdWU6IDIwfSwKKyAgICAgIHt4OiA3MCwgdmFsdWU6IDE1fSwKKyAgICAgIHt4OiA4MCwgdmFsdWU6IDIwfQorICAgIF07CisgICAgY2hhcnQuZGF0YSA9IGRhdGE7CisKKyAgICB2YXIgbW91c2VEb3duSW5kZXggPSB1bmRlZmluZWQ7CisgICAgdmFyIGN1ck1vdXNlSW5kZXggPSB1bmRlZmluZWQ7CisKKyAgICBmdW5jdGlvbiB1cGRhdGVCcnVzaGVkUmFuZ2UoKSB7CisgICAgICBpZiAobW91c2VEb3duSW5kZXggPT09IHVuZGVmaW5lZCkgeworICAgICAgICBjaGFydC5icnVzaGVkUmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICBjaGFydC5icnVzaGVkUmFuZ2UgPSBjaGFydC5jb21wdXRlQnJ1c2hSYW5nZUZyb21JbmRpY2VzKAorICAgICAgICAgIG1vdXNlRG93bkluZGV4LCBjdXJNb3VzZUluZGV4KTsKKyAgICB9CisKKyAgICBjaGFydC5hZGRFdmVudExpc3RlbmVyKCdpdGVtLW1vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIG1vdXNlRG93bkluZGV4ID0gZS5pbmRleDsKKyAgICAgIGN1ck1vdXNlSW5kZXggPSBlLmluZGV4OworICAgICAgdXBkYXRlQnJ1c2hlZFJhbmdlKCk7CisgICAgfSk7CisgICAgY2hhcnQuYWRkRXZlbnRMaXN0ZW5lcignaXRlbS1tb3VzZW1vdmUnLCBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoZS5idXR0b24gPT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisgICAgICBjdXJNb3VzZUluZGV4ID0gZS5pbmRleDsKKyAgICAgIHVwZGF0ZUJydXNoZWRSYW5nZSgpOworICAgIH0pOworICAgIGNoYXJ0LmFkZEV2ZW50TGlzdGVuZXIoJ2l0ZW0tbW91c2V1cCcsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIGN1ck1vdXNlSW5kZXggPSBlLmluZGV4OworICAgICAgdXBkYXRlQnJ1c2hlZFJhbmdlKCk7CisgICAgfSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNoYXJ0KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpc3RfYW5kX2Fzc29jaWF0ZWRfdmlldy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL2xpc3RfYW5kX2Fzc29jaWF0ZWRfdmlldy5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X2FuZF9hc3NvY2lhdGVkX3ZpZXcuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VlN2RiMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X2FuZF9hc3NvY2lhdGVkX3ZpZXcuaHRtbApAQCAtMCwwICsxLDEzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL2Jhc2UvbGlzdF9hbmRfYXNzb2NpYXRlZF92aWV3LmNzcyI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9saXN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBBIGxpc3Qgb2YgdGhpbmdzLCBhbmQgYSB2aWV3ZXIgZm9yIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQKKyAqIHRoaW5nLgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBMaXN0QW5kQXNzb2NpYXRlZFZpZXcgPSB0ci51aS5iLmRlZmluZSgneC1saXN0LWFuZC1hc3NvY2lhdGVkLXZpZXcnKTsKKyAgTGlzdEFuZEFzc29jaWF0ZWRWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmxpc3RfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5saXN0UHJvcGVydHlfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy52aWV3XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMudmlld1Byb3BlcnR5XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMubGlzdFZpZXdfID0gbmV3IHRyLnVpLmIuTGlzdFZpZXcoKTsKKyAgICAgIHRoaXMubGlzdFZpZXdfLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbi1jaGFuZ2VkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcykpOworICAgICAgdGhpcy5wbGFjZWhvbGRlcl8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5saXN0Vmlld18pOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyXyk7CisgICAgfSwKKworICAgIGdldCBsaXN0VmlldygpIHsKKyAgICAgIHJldHVybiB0aGlzLmxpc3RWaWV3XzsKKyAgICB9LAorCisgICAgZ2V0IGxpc3QoKSB7CisgICAgICByZXR1cm4gdGhpcy5saXN0XzsKKyAgICB9LAorCisgICAgc2V0IGxpc3QobGlzdCkgeworICAgICAgdGhpcy5saXN0XyA9IGxpc3Q7CisgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuXygpOworICAgIH0sCisKKyAgICBnZXQgbGlzdFByb3BlcnR5KCkgeworICAgICAgcmV0dXJuIHRoaXMubGlzdFByb3BlcnR5XzsKKyAgICB9LAorCisgICAgc2V0IGxpc3RQcm9wZXJ0eShsaXN0UHJvcGVydHkpIHsKKyAgICAgIHRoaXMubGlzdFByb3BlcnR5XyA9IGxpc3RQcm9wZXJ0eTsKKyAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW5fKCk7CisgICAgfSwKKworICAgIGdldCB2aWV3KCkgeworICAgICAgcmV0dXJuIHRoaXMudmlld187CisgICAgfSwKKworICAgIHNldCB2aWV3KHZpZXcpIHsKKyAgICAgIHRoaXMudmlld18gPSB2aWV3OworICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbl8oKTsKKyAgICB9LAorCisgICAgZ2V0IHZpZXdQcm9wZXJ0eSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnZpZXdQcm9wZXJ0eV87CisgICAgfSwKKworICAgIHNldCB2aWV3UHJvcGVydHkodmlld1Byb3BlcnR5KSB7CisgICAgICB0aGlzLnZpZXdQcm9wZXJ0eV8gPSB2aWV3UHJvcGVydHk7CisgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuXygpOworICAgIH0sCisKKyAgICB1cGRhdGVDaGlsZHJlbl86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNvbXBsZXRlID0gdGhpcy5saXN0XyAmJgorICAgICAgICAgIHRoaXMubGlzdFByb3BlcnR5XyAmJgorICAgICAgICAgIHRoaXMudmlld18gJiYKKyAgICAgICAgICB0aGlzLnZpZXdQcm9wZXJ0eV87CisgICAgICBpZiAoIWNvbXBsZXRlKSB7CisgICAgICAgIHRoaXMucmVwbGFjZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoaWxkcmVuWzFdKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGlzdF8ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGl0ZW1FbDsKKyAgICAgICAgaWYgKGkgPj0gdGhpcy5saXN0Vmlld18uY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAgICAgaXRlbUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgdGhpcy5saXN0Vmlld18uYXBwZW5kQ2hpbGQoaXRlbUVsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBpdGVtRWwgPSB0aGlzLmxpc3RWaWV3Xy5jaGlsZHJlbltpXTsKKyAgICAgICAgfQorICAgICAgICBpdGVtRWwuaXRlbSA9IHRoaXMubGlzdF9baV07CisgICAgICAgIHZhciBnZXR0ZXIgPSB0aGlzLmxpc3RfW2ldLl9fbG9va3VwR2V0dGVyX18odGhpcy5saXN0UHJvcGVydHlfKTsKKyAgICAgICAgaWYgKGdldHRlcikKKyAgICAgICAgICBpdGVtRWwudGV4dENvbnRlbnQgPSBnZXR0ZXIuY2FsbCh0aGlzLmxpc3RfW2ldKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIGl0ZW1FbC50ZXh0Q29udGVudCA9IHRoaXMubGlzdF9baV1bdGhpcy5saXN0UHJvcGVydHlfXTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuY2hpbGRyZW5bMV0gPT0gdGhpcy5wbGFjZWhvbGRlcl8pIHsKKyAgICAgICAgdGhpcy5yZXBsYWNlQ2hpbGQodGhpcy52aWV3XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlblsxXSk7CisgICAgICB9CisgICAgICBpZiAodGhpcy5saXN0Vmlld18uY2hpbGRyZW4ubGVuZ3RoICYmCisgICAgICAgICAgIXRoaXMubGlzdFZpZXdfLnNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgdGhpcy5saXN0Vmlld18uc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5saXN0Vmlld18uY2hpbGRyZW5bMF07CisgICAgfSwKKworICAgIG9uU2VsZWN0aW9uQ2hhbmdlZF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBzZXR0ZXIgPSB0aGlzLnZpZXdfLl9fbG9va3VwU2V0dGVyX18odGhpcy52aWV3UHJvcGVydHlfKTsKKyAgICAgIGlmICghc2V0dGVyKSB7CisgICAgICAgIHZhciBwcm9wID0gdGhpcy52aWV3UHJvcGVydHlfOworICAgICAgICBzZXR0ZXIgPSBmdW5jdGlvbih2YWx1ZSkgeyB0aGlzW3Byb3BdID0gdmFsdWU7IH0KKyAgICAgIH0KKyAgICAgIGlmICh0aGlzLmxpc3RWaWV3Xy5zZWxlY3RlZEVsZW1lbnQpIHsKKyAgICAgICAgc2V0dGVyLmNhbGwodGhpcy52aWV3XywKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0Vmlld18uc2VsZWN0ZWRFbGVtZW50Lml0ZW0pOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgc2V0dGVyLmNhbGwodGhpcy52aWV3XywKKyAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkKTsKKyAgICAgIH0KKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBMaXN0QW5kQXNzb2NpYXRlZFZpZXc6IExpc3RBbmRBc3NvY2lhdGVkVmlldworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X2FuZF9hc3NvY2lhdGVkX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2xpc3RfYW5kX2Fzc29jaWF0ZWRfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkxY2MzNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X2FuZF9hc3NvY2lhdGVkX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2xpc3RfYW5kX2Fzc29jaWF0ZWRfdmlldy5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgTGlzdEFuZEFzc29jaWF0ZWRWaWV3ID0gdHIudWkuYi5MaXN0QW5kQXNzb2NpYXRlZFZpZXc7CisKKyAgdmFyIFNpbXBsZVZpZXcgPSB0ci51aS5iLmRlZmluZSgnZGl2Jyk7CisgIFNpbXBsZVZpZXcucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5pdGVtXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2V0IGl0ZW0oaXRlbSkgeworICAgICAgdGhpcy5pdGVtXyA9IGl0ZW07CisgICAgfSwKKyAgICBnZXQgaXRlbSgpIHsKKyAgICAgIHJldHVybiB0aGlzLml0ZW1fOworICAgIH0KKyAgfTsKKworICB0ZXN0KCdsaXN0Vmlld05hbWluZ1dpdGhGaWVsZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBsYXYgPSBuZXcgTGlzdEFuZEFzc29jaWF0ZWRWaWV3KCk7CisgICAgdmFyIGxpc3QgPSBbCisgICAgICB7eDogJzEnfSwKKyAgICAgIHt4OiAnMid9LAorICAgICAge3g6ICczJ30KKyAgICBdOworICAgIHZhciB2aWV3ID0gbmV3IFNpbXBsZVZpZXcoKTsKKworICAgIGxhdi5saXN0ID0gbGlzdDsKKyAgICBsYXYubGlzdFByb3BlcnR5ID0gJ3gnOworICAgIGxhdi52aWV3ID0gdmlldzsKKyAgICBsYXYudmlld1Byb3BlcnR5ID0gJ2l0ZW0nOworCisgICAgdmFyIGxhdkxpc3RWaWV3ID0gbGF2Lmxpc3RWaWV3OworICAgIGFzc2VydC5lcXVhbChsYXZMaXN0Vmlldy5jaGlsZHJlbi5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcXVhbChsYXZMaXN0Vmlldy5jaGlsZHJlblswXS50ZXh0Q29udGVudCwgJzEnKTsKKyAgfSk7CisKKyAgdGVzdCgnbGlzdFZpZXdOYW1pbmdXaXRoUHJvcGVydHknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbGF2ID0gbmV3IExpc3RBbmRBc3NvY2lhdGVkVmlldygpOworCisgICAgZnVuY3Rpb24gWCh4KSB7CisgICAgICB0aGlzLnggPSB4OworICAgIH0KKyAgICBYLnByb3RvdHlwZSA9IHsKKyAgICAgIGdldCB0aXRsZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMueDsKKyAgICAgIH0KKyAgICB9OworCisgICAgdmFyIGxpc3QgPSBbCisgICAgICBuZXcgWCgnMScpLAorICAgICAgbmV3IFgoJzInKSwKKyAgICAgIG5ldyBYKCczJykKKyAgICBdOworICAgIHZhciB2aWV3ID0gbmV3IFNpbXBsZVZpZXcoKTsKKworICAgIGxhdi5saXN0ID0gbGlzdDsKKyAgICBsYXYubGlzdFByb3BlcnR5ID0gJ3RpdGxlJzsKKyAgICBsYXYudmlldyA9IHZpZXc7CisgICAgbGF2LnZpZXdQcm9wZXJ0eSA9ICdpdGVtJzsKKworICAgIHZhciBsYXZMaXN0VmlldyA9IGxhdi5saXN0VmlldzsKKyAgICBhc3NlcnQuZXF1YWwobGF2TGlzdFZpZXcuY2hpbGRyZW4ubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwobGF2TGlzdFZpZXcuY2hpbGRyZW5bMF0udGV4dENvbnRlbnQsICcxJyk7CisgIH0pOworCisgIHRlc3QoJ3NlbGVjdGlvbkNoYW5nZXNWaWV3JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxhdiA9IG5ldyBMaXN0QW5kQXNzb2NpYXRlZFZpZXcoKTsKKyAgICB2YXIgbGlzdCA9IFsKKyAgICAgIHt4OiAnMSd9LAorICAgICAge3g6ICcyJ30sCisgICAgICB7eDogJzMnfQorICAgIF07CisgICAgdmFyIHZpZXcgPSBuZXcgU2ltcGxlVmlldygpOworCisgICAgbGF2Lmxpc3QgPSBsaXN0OworICAgIGxhdi5saXN0UHJvcGVydHkgPSAneCc7CisgICAgbGF2LnZpZXcgPSB2aWV3OworICAgIGxhdi52aWV3UHJvcGVydHkgPSAnaXRlbSc7CisgICAgdmFyIGxhdkxpc3RWaWV3ID0gbGF2Lmxpc3RWaWV3OworCisgICAgYXNzZXJ0LmVxdWFsKGxpc3RbMF0sIHZpZXcuaXRlbSk7CisgICAgbGF2TGlzdFZpZXcuY2hpbGRyZW5bMV0uc2VsZWN0ZWQgPSB0cnVlOworICAgIGFzc2VydC5lcXVhbChsaXN0WzFdLCB2aWV3Lml0ZW0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGlzdF92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X3ZpZXcuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvbGlzdF92aWV3LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2xpc3Rfdmlldy5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTI4ZjlkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL2xpc3Rfdmlldy5odG1sCkBAIC0wLDAgKzEsMTY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvYmFzZS9saXN0X3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V2ZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NvbnRhaW5lcl90aGF0X2RlY29yYXRlc19pdHNfY2hpbGRyZW4uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBTaW1wbGUgbGlzdCB2aWV3LgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgTGlzdFZpZXcgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICd4LWxpc3QtdmlldycsIHRyLnVpLmIuQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuKTsKKworICBMaXN0Vmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5iLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbi5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0ci51aS5iLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbi5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzKTsKKworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd4LWxpc3QtdmlldycpOworICAgICAgdGhpcy5vbkl0ZW1DbGlja2VkXyA9IHRoaXMub25JdGVtQ2xpY2tlZF8uYmluZCh0aGlzKTsKKyAgICAgIHRoaXMub25LZXlEb3duXyA9IHRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy50YWJJbmRleCA9IDA7CisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLm9uS2V5RG93bl8pOworCisgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWRfID0gZmFsc2U7CisgICAgfSwKKworICAgIGRlY29yYXRlQ2hpbGRfOiBmdW5jdGlvbihpdGVtKSB7CisgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2xpc3QtaXRlbScpOworICAgICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25JdGVtQ2xpY2tlZF8sIHRydWUpOworCisgICAgICB2YXIgbGlzdFZpZXcgPSB0aGlzOworICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KAorICAgICAgICAgIGl0ZW0sCisgICAgICAgICAgJ3NlbGVjdGVkJywgeworICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAorICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICAgICAgICB2YXIgb2xkU2VsZWN0aW9uID0gbGlzdFZpZXcuc2VsZWN0ZWRFbGVtZW50OworICAgICAgICAgICAgICBpZiAob2xkU2VsZWN0aW9uICYmIG9sZFNlbGVjdGlvbiAhPSB0aGlzICYmIHZhbHVlKQorICAgICAgICAgICAgICAgIGxpc3RWaWV3LnNlbGVjdGVkRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7CisgICAgICAgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCAnc2VsZWN0ZWQnKTsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpOworICAgICAgICAgICAgICB2YXIgbmV3U2VsZWN0aW9uID0gbGlzdFZpZXcuc2VsZWN0ZWRFbGVtZW50OworICAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uICE9IG9sZFNlbGVjdGlvbikKKyAgICAgICAgICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQobGlzdFZpZXcsICdzZWxlY3Rpb24tY2hhbmdlZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSk7CisgICAgfSwKKworICAgIHVuZGVjb3JhdGVDaGlsZF86IGZ1bmN0aW9uKGl0ZW0pIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZF8gfD0gaXRlbS5zZWxlY3RlZDsKKworICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdsaXN0LWl0ZW0nKTsKKyAgICAgIGl0ZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9uSXRlbUNsaWNrZWRfKTsKKyAgICAgIGRlbGV0ZSBpdGVtLnNlbGVjdGVkOworICAgIH0sCisKKyAgICBiZWdpbkRlY29yYXRpbmdfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZF8gPSBmYWxzZTsKKyAgICB9LAorCisgICAgZG9uZURlY29yYXRpbmdGb3JOb3dfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkNoYW5nZWRfKQorICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgZmFsc2UpOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0ZWRFbGVtZW50KCkgeworICAgICAgdmFyIGVsID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcubGlzdC1pdGVtW3NlbGVjdGVkXScpOworICAgICAgaWYgKCFlbCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiBlbDsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGVkRWxlbWVudChlbCkgeworICAgICAgaWYgKCFlbCkgeworICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEVsZW1lbnQpCisgICAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQuc2VsZWN0ZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBpZiAoZWwucGFyZW50RWxlbWVudCAhPSB0aGlzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCisgICAgICAgICAgICAnQ2FuIG9ubHkgc2VsZWN0IGVsZW1lbnRzIHRoYXQgYXJlIGNoaWxkcmVuIG9mIHRoaXMgbGlzdCB2aWV3Jyk7CisgICAgICBlbC5zZWxlY3RlZCA9IHRydWU7CisgICAgfSwKKworICAgIGdldEVsZW1lbnRCeUluZGV4OiBmdW5jdGlvbihpbmRleCkgeworICAgICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcignLmxpc3QtaXRlbTpudGgtY2hpbGQoJyArIGluZGV4ICsgJyknKTsKKyAgICB9LAorCisgICAgY2xlYXI6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNoYW5nZWQgPSB0aGlzLnNlbGVjdGVkRWxlbWVudCAhPT0gdW5kZWZpbmVkOworICAgICAgdHIudWkuYi5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4ucHJvdG90eXBlLmNsZWFyLmNhbGwodGhpcyk7CisgICAgICBpZiAoY2hhbmdlZCkKKyAgICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzZWxlY3Rpb24tY2hhbmdlZCcsIGZhbHNlKTsKKyAgICB9LAorCisgICAgb25JdGVtQ2xpY2tlZF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBjdXJyZW50U2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5zZWxlY3RlZEVsZW1lbnQ7CisgICAgICBpZiAoY3VycmVudFNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgY3VycmVudFNlbGVjdGVkRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7CisgICAgICB2YXIgZWxlbWVudCA9IGUudGFyZ2V0OworICAgICAgd2hpbGUgKGVsZW1lbnQucGFyZW50RWxlbWVudCAhPSB0aGlzKQorICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50OworICAgICAgaWYgKGVsZW1lbnQgIT09IGN1cnJlbnRTZWxlY3RlZEVsZW1lbnQpCisgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsICdzZWxlY3RlZCcpOworICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzZWxlY3Rpb24tY2hhbmdlZCcsIGZhbHNlKTsKKyAgICB9LAorCisgICAgb25LZXlEb3duXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRFbGVtZW50ID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgaWYgKGUua2V5Q29kZSA9PSAzOCkgeyAvLyBVcCBhcnJvdy4KKyAgICAgICAgdmFyIHByZXYgPSB0aGlzLnNlbGVjdGVkRWxlbWVudC5wcmV2aW91c1NpYmxpbmc7CisgICAgICAgIGlmIChwcmV2KSB7CisgICAgICAgICAgcHJldi5zZWxlY3RlZCA9IHRydWU7CisgICAgICAgICAgdHIudWkuYi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKHByZXYpOworICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT0gNDApIHsgLy8gRG93biBhcnJvdy4KKyAgICAgICAgdmFyIG5leHQgPSB0aGlzLnNlbGVjdGVkRWxlbWVudC5uZXh0U2libGluZzsKKyAgICAgICAgaWYgKG5leHQpIHsKKyAgICAgICAgICBuZXh0LnNlbGVjdGVkID0gdHJ1ZTsKKyAgICAgICAgICB0ci51aS5iLnNjcm9sbEludG9WaWV3SWZOZWVkZWQobmV4dCk7CisgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICB9CisgICAgfSwKKworICAgIGFkZEl0ZW06IGZ1bmN0aW9uKHRleHRDb250ZW50KSB7CisgICAgICB2YXIgaXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgaXRlbS50ZXh0Q29udGVudCA9IHRleHRDb250ZW50OworICAgICAgdGhpcy5hcHBlbmRDaGlsZChpdGVtKTsKKyAgICAgIHJldHVybiBpdGVtOworICAgIH0KKworICB9OworCisgIHJldHVybiB7CisgICAgTGlzdFZpZXc6IExpc3RWaWV3CisgIH07CisKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbGlzdF92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9saXN0X3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjMDAyZTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbGlzdF92aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9saXN0X3ZpZXcuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIExpc3RWaWV3ID0gdHIudWkuYi5MaXN0VmlldzsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2aWV3ID0gbmV3IExpc3RWaWV3KCk7CisgICAgdmFyIGkxID0gdmlldy5hZGRJdGVtKCdpdGVtIDEnKTsKKyAgICB2YXIgaTIgPSB2aWV3LmFkZEl0ZW0oJ2l0ZW0gMicpOworICAgIHZhciBpMyA9IHZpZXcuYWRkSXRlbSgnaXRlbSAzJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKKworICB0ZXN0KCdwcm9ncmFtbWF0aWNTZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdmlldyA9IG5ldyBMaXN0VmlldygpOworICAgIHZhciBpMSA9IHZpZXcuYWRkSXRlbSgnaXRlbSAxJyk7CisgICAgdmFyIGkyID0gdmlldy5hZGRJdGVtKCdpdGVtIDInKTsKKyAgICB2YXIgaTMgPSB2aWV3LmFkZEl0ZW0oJ2l0ZW0gMycpOworCisgICAgaTIuc2VsZWN0ZWQgPSB0cnVlOworICAgIGFzc2VydC5pc1RydWUoaTIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBpMy5zZWxlY3RlZCA9IHRydWU7CisgICAgYXNzZXJ0LmlzRmFsc2UoaTIuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKTsKKyAgICBhc3NlcnQuaXNUcnVlKGkzLmhhc0F0dHJpYnV0ZSgnc2VsZWN0ZWQnKSk7CisgIH0pOworCisgIHRlc3QoJ2NsaWNrU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZpZXcgPSBuZXcgTGlzdFZpZXcoKTsKKyAgICB2YXIgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOworICAgIHZpZXcuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uLWNoYW5nZWQnLCBmdW5jdGlvbigpIHsKKyAgICAgIGRpZEZpcmVTZWxlY3Rpb25DaGFuZ2UgPSB0cnVlOworICAgIH0pOworICAgIHZhciBpMSA9IHZpZXcuYWRkSXRlbSgnaXRlbSAxJyk7CisgICAgdmFyIGkyID0gdmlldy5hZGRJdGVtKCdpdGVtIDInKTsKKyAgICB2YXIgaTMgPSB2aWV3LmFkZEl0ZW0oJ2l0ZW0gMycpOworCisgICAgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOworICAgIGkyLmNsaWNrKCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkaWRGaXJlU2VsZWN0aW9uQ2hhbmdlKTsKKyAgICBhc3NlcnQuZXF1YWwodmlldy5zZWxlY3RlZEVsZW1lbnQsIGkyKTsKKworICAgIGRpZEZpcmVTZWxlY3Rpb25DaGFuZ2UgPSBmYWxzZTsKKyAgICBpMy5jbGljaygpOworICAgIGFzc2VydC5pc1RydWUoZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSk7CisgICAgYXNzZXJ0LmVxdWFsKHZpZXcuc2VsZWN0ZWRFbGVtZW50LCBpMyk7CisKKyAgICAvLyBDbGljayB0aGUgc2FtZSB0YXJnZXQgYWdhaW4uCisgICAgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOworICAgIGkzLmNsaWNrKCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkaWRGaXJlU2VsZWN0aW9uQ2hhbmdlKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQodmlldy5zZWxlY3RlZEVsZW1lbnQpOworCisgICAgZGlkRmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOworICAgIGkxLmNsaWNrKCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkaWRGaXJlU2VsZWN0aW9uQ2hhbmdlKTsKKyAgICBhc3NlcnQuZXF1YWwodmlldy5zZWxlY3RlZEVsZW1lbnQsIGkxKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVfaWNvbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVfaWNvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViODhkNDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbW91c2VfbW9kZV9pY29uLmh0bWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL21vdXNlX21vZGVzLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWItbW91c2UtbW9kZS1pY29uIj4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvdWktc3RhdGVzLnBuZyk7CisgICAgICB3aWR0aDogMjdweDsKKyAgICAgIGhlaWdodDogMzBweDsKKyAgICB9CisgICAgOmhvc3QuYWN0aXZlIHsKKyAgICAgIGN1cnNvcjogYXV0bzsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHB1Ymxpc2g6IHsKKyAgICAgIG1vZGVOYW1lOiB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHJlZmxlY3Q6IHRydWUKKyAgICAgIH0KKyAgICB9LAorCisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmFjdGl2ZV8gPSBmYWxzZTsKKyAgICAgIHRoaXMuYWNjZWxlcmF0b3JLZXlfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgbW9kZSgpIHsKKyAgICAgIHJldHVybiB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREVbdGhpcy5tb2RlTmFtZV07CisgICAgfSwKKworICAgIHNldCBtb2RlKG1vZGUpIHsKKyAgICAgIHZhciBtb2RlSW5mbyA9IHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1ttb2RlXTsKKyAgICAgIHZhciBtb2RlTmFtZSA9IHRyLmIuZmluZEZpcnN0S2V5SW5EaWN0TWF0Y2hpbmcoCisgICAgICAgICAgdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLAorICAgICAgICAgIGZ1bmN0aW9uKG1vZGVOYW1lLCBjYW5kaWRhdGVNb2RlKSB7CisgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlTW9kZSA9PT0gbW9kZTsKKyAgICAgICAgICB9KTsKKyAgICAgIGlmIChtb2RlTmFtZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbW9kZScpOworICAgICAgdGhpcy5tb2RlTmFtZSA9IG1vZGVOYW1lOworICAgIH0sCisKKyAgICBtb2RlTmFtZUNoYW5nZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IGFjdGl2ZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmFjdGl2ZV87CisgICAgfSwKKworICAgIHNldCBhY3RpdmUoYWN0aXZlKSB7CisgICAgICB0aGlzLmFjdGl2ZV8gPSAhIWFjdGl2ZTsKKyAgICAgIGlmICh0aGlzLmFjdGl2ZV8pCisgICAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgYWNjZWxlcmF0b3JLZXkoKSB7CisgICAgICByZXR1cm4gdGhpcy5hY2NlbGVyYXRvcktleV87CisgICAgfSwKKworICAgIHNldCBhY2NlbGVyYXRvcktleShhY2NlbGVyYXRvcktleSkgeworICAgICAgdGhpcy5hY2NlbGVyYXRvcktleV8gPSBhY2NlbGVyYXRvcktleTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5tb2RlTmFtZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBtb2RlID0gdGhpcy5tb2RlOworICAgICAgaWYgKG1vZGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1vZGUnKTsKKworICAgICAgdmFyIG1vZGVJbmZvID0gdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW21vZGVdOworICAgICAgaWYgKCFtb2RlSW5mbykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1vZGUnKTsKKworICAgICAgdmFyIHRpdGxlID0gbW9kZUluZm8udGl0bGU7CisgICAgICBpZiAodGhpcy5hY2NlbGVyYXRvcktleV8pCisgICAgICAgIHRpdGxlID0gdGl0bGUgKyAnICgnICsgdGhpcy5hY2NlbGVyYXRvcktleV8gKyAnKSc7CisgICAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisKKyAgICAgIHZhciBicDsKKyAgICAgIGlmICh0aGlzLmFjdGl2ZV8pCisgICAgICAgIGJwID0gbW9kZUluZm8uYWN0aXZlQmFja2dyb3VuZFBvc2l0aW9uOworICAgICAgZWxzZQorICAgICAgICBicCA9IG1vZGVJbmZvLmRlZmF1bHRCYWNrZ3JvdW5kUG9zaXRpb247CisgICAgICB0aGlzLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiA9IGJwOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVfaWNvbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbW91c2VfbW9kZV9pY29uX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzkxN2VkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVfaWNvbl90ZXN0Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvbW91c2VfbW9kZV9pY29uLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBNT1VTRV9TRUxFQ1RPUl9NT0RFID0gdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFOworCisgIHRlc3QoJ2luYWN0aXZlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLW1vdXNlLW1vZGUtaWNvbicpOworICAgIGljb24ubW9kZSA9IE1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OOworICAgIGFzc2VydC5lcXVhbChpY29uLm1vZGVOYW1lLCAnU0VMRUNUSU9OJyk7CisgICAgaWNvbi5hY2NlbGVyYXRvcktleSA9ICdhJzsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoaWNvbik7CisgIH0pOworCisgIHRlc3QoJ2FjdGl2ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1tb3VzZS1tb2RlLWljb24nKTsKKyAgICBpY29uLm1vZGUgPSBNT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTjsKKyAgICBhc3NlcnQuZXF1YWwoaWNvbi5tb2RlTmFtZSwgJ1NFTEVDVElPTicpOworICAgIGljb24uYWN0aXZlID0gdHJ1ZTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoaWNvbik7CisgIH0pOworCisgIHRlc3QoJ21vZGVOYW1lU2V0dGVyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLW1vdXNlLW1vZGUtaWNvbicpOworICAgIGljb24uc2V0QXR0cmlidXRlKCdtb2RlTmFtZScsICdTRUxFQ1RJT04nKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoaWNvbik7CisKKyAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIGFzc2VydC5lcXVhbChpY29uLm1vZGUsIDEpOworICAgIH0pOworICB9KTsKK30pOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVfc2VsZWN0b3IuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI5YTA0ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwKQEAgLTAsMCArMSw1NjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvaG90a2V5X2NvbnRyb2xsZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvbW91c2VfdHJhY2tlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9tb3VzZV9tb2Rlcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9tb3VzZV9tb2RlX2ljb24uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYi1tb3VzZS1tb2RlLXNlbGVjdG9yIj4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisKKyAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBlbGVtZW50OworICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKworICAgICAgYmFja2dyb3VuZDogI0RERDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNCQkI7CisgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CisgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLDAsMCwwLjIpOworICAgICAgbGVmdDogY2FsYygxMDAlIC0gMTIwcHgpOworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgdG9wOiAxMDBweDsKKyAgICAgIHVzZXItc2VsZWN0OiBub25lOworICAgICAgd2lkdGg6IDI5cHg7CisgICAgICB6LWluZGV4OiAyMDsKKyAgICB9CisKKyAgICAuZHJhZy1oYW5kbGUgeworICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy91aS1zdGF0ZXMucG5nKSAycHggM3B4IG5vLXJlcGVhdDsKKyAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JDQkNCQzsKKyAgICAgIGN1cnNvcjogbW92ZTsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgaGVpZ2h0OiAxM3B4OworICAgICAgd2lkdGg6IDI3cHg7CisgICAgfQorCisgICAgLnRvb2wtYnV0dG9uIHsKKyAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7CisgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCQ0JDQkM7CisgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0YxRjFGMTsKKyAgICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICB9CisKKyAgICAuYnV0dG9ucyA+IC50b29sLWJ1dHRvbjpsYXN0LWNoaWxkIHsKKyAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CisgICAgfQorCisgICAgPC9zdHlsZT4KKyAgICA8ZGl2IGNsYXNzPSJkcmFnLWhhbmRsZSI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iYnV0dG9ucyI+CisgICAgPC9kaXY+CisgIDwvdGVtcGxhdGU+Cis8L3BvbHltZXItZWxlbWVudD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIHZhciBNT1VTRV9TRUxFQ1RPUl9NT0RFID0gdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFOworICB2YXIgTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPUyA9IHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPUzsKKworCisgIHZhciBNSU5fTU9VU0VfU0VMRUNUSU9OX0RJU1RBTkNFID0gNDsKKworICB2YXIgTU9ESUZJRVIgPSB7CisgICAgU0hJRlQ6IDB4MSwKKyAgICBTUEFDRTogMHgyLAorICAgIENNRF9PUl9DVFJMOiAweDQKKyAgfTsKKworICAvKioKKyAgICogUHJvdmlkZXMgYSBwYW5lbCBmb3Igc3dpdGNoaW5nIHRoZSBpbnRlcmFjdGlvbiBtb2RlIG9mIHRoZSBtb3VzZS4KKyAgICogSXQgaGFuZGxlcyB0aGUgdXNlciBpbnRlcmFjdGlvbiBhbmQgZGlzcGF0Y2hlcyBldmVudHMgZm9yIHRoZSB2YXJpb3VzCisgICAqIG1vZGVzLgorICAgKi8KKyAgUG9seW1lcigndHItdWktYi1tb3VzZS1tb2RlLXNlbGVjdG9yJywgeworICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgY3JlYXRlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXyA9IE1PVVNFX1NFTEVDVE9SX01PREUuQUxMX01PREVTOworCisgICAgICB0aGlzLmluaXRpYWxSZWxhdGl2ZU1vdXNlRG93blBvc18gPSB7eDogMCwgeTogMH07CisKKyAgICAgIHRoaXMuZGVmYXVsdE1vZGVfID0gTU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOOworICAgICAgdGhpcy5zZXR0aW5nc0tleV8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLm1vdXNlUG9zXyA9IHt4OiAwLCB5OiAwfTsKKyAgICAgIHRoaXMubW91c2VEb3duUG9zXyA9IHt4OiAwLCB5OiAwfTsKKworICAgICAgdGhpcy5vbk1vdXNlRG93bl8gPSB0aGlzLm9uTW91c2VEb3duXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5vbk1vdXNlTW92ZV8gPSB0aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5vbk1vdXNlVXBfID0gdGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyk7CisKKyAgICAgIHRoaXMub25LZXlEb3duXyA9IHRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5vbktleVVwXyA9IHRoaXMub25LZXlVcF8uYmluZCh0aGlzKTsKKworICAgICAgdGhpcy5tb2RlXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMubW9kZVRvS2V5Q29kZU1hcF8gPSB7fTsKKyAgICAgIHRoaXMubW9kaWZpZXJUb01vZGVNYXBfID0ge307CisKKyAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLm1vZGVCZWZvcmVBbHRlcm5hdGl2ZU1vZGVBY3RpdmF0ZWRfID0gbnVsbDsKKworICAgICAgdGhpcy5pc0ludGVyYWN0aW5nXyA9IGZhbHNlOworICAgICAgdGhpcy5pc0NsaWNrXyA9IGZhbHNlOworICAgIH0sCisKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmJ1dHRvbnNFbF8gPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmJ1dHRvbnMnKTsKKyAgICAgIHRoaXMuZHJhZ0hhbmRsZUVsXyA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuZHJhZy1oYW5kbGUnKTsKKyAgICAgIHRoaXMuc3VwcG9ydGVkTW9kZU1hc2sgPSBNT1VTRV9TRUxFQ1RPUl9NT0RFLkFMTF9NT0RFUzsKKworICAgICAgdGhpcy5kcmFnSGFuZGxlRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsCisgICAgICAgICAgdGhpcy5vbkRyYWdIYW5kbGVNb3VzZURvd25fLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLmJ1dHRvbnNFbF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25CdXR0b25Nb3VzZVVwXyk7CisgICAgICB0aGlzLmJ1dHRvbnNFbF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbkJ1dHRvbk1vdXNlRG93bl8pOworICAgICAgdGhpcy5idXR0b25zRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkJ1dHRvblByZXNzXy5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgYXR0YWNoZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25LZXlEb3duXyk7CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMub25LZXlVcF8pOworICAgIH0sCisKKyAgICBkZXRhY2hlZDogZnVuY3Rpb24oKSB7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd25fKTsKKyAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5vbktleVVwXyk7CisgICAgfSwKKworICAgIGdldCB0YXJnZXRFbGVtZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0RWxlbWVudF87CisgICAgfSwKKworICAgIHNldCB0YXJnZXRFbGVtZW50KHRhcmdldCkgeworICAgICAgaWYgKHRoaXMudGFyZ2V0RWxlbWVudF8pCisgICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbk1vdXNlRG93bl8pOworICAgICAgdGhpcy50YXJnZXRFbGVtZW50XyA9IHRhcmdldDsKKyAgICAgIGlmICh0aGlzLnRhcmdldEVsZW1lbnRfKQorICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd25fKTsKKyAgICB9LAorCisgICAgZ2V0IGRlZmF1bHRNb2RlKCkgeworICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdE1vZGVfOworICAgIH0sCisKKyAgICBzZXQgZGVmYXVsdE1vZGUoZGVmYXVsdE1vZGUpIHsKKyAgICAgIHRoaXMuZGVmYXVsdE1vZGVfID0gZGVmYXVsdE1vZGU7CisgICAgfSwKKworICAgIGdldCBzZXR0aW5nc0tleSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzS2V5XzsKKyAgICB9LAorCisgICAgc2V0IHNldHRpbmdzS2V5KHNldHRpbmdzS2V5KSB7CisgICAgICB0aGlzLnNldHRpbmdzS2V5XyA9IHNldHRpbmdzS2V5OworICAgICAgaWYgKCF0aGlzLnNldHRpbmdzS2V5XykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgbW9kZSA9IHRyLmIuU2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ3NLZXlfICsgJy5tb2RlJywgdW5kZWZpbmVkKTsKKyAgICAgIC8vIE1vZGVzIGNoYW5nZWQgZnJvbSAxLDIsMyw0IHRvIDB4MSwgMHgyLCAweDQsIDB4OC4gRml4IGFueSBzdHJheQorICAgICAgLy8gc2V0dGluZ3MgdG8gdGhlIGJlc3Qgb2Ygb3VyIGFiaWxpdGllcy4KKyAgICAgIGlmIChNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW21vZGVdID09PSB1bmRlZmluZWQpCisgICAgICAgIG1vZGUgPSB1bmRlZmluZWQ7CisKKyAgICAgIC8vIFJlc3RvcmluZyBzZXR0aW5ncyBhZ2FpbnN0IHVuc3VwcG9ydGVkIG1vZGVzIHNob3VsZCBqdXN0IGdvIGJhY2sgdG8gdGhlCisgICAgICAvLyBkZWZhdWx0IG1vZGUuCisgICAgICBpZiAoKG1vZGUgJiB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXykgPT09IDApCisgICAgICAgIG1vZGUgPSB1bmRlZmluZWQ7CisKKyAgICAgIGlmICghbW9kZSkKKyAgICAgICAgbW9kZSA9IHRoaXMuZGVmYXVsdE1vZGVfOworICAgICAgdGhpcy5tb2RlID0gbW9kZTsKKworICAgICAgdmFyIHBvcyA9IHRyLmIuU2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ3NLZXlfICsgJy5wb3MnLCB1bmRlZmluZWQpOworICAgICAgaWYgKHBvcykKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgfSwKKworICAgIGdldCBzdXBwb3J0ZWRNb2RlTWFzaygpIHsKKyAgICAgIHJldHVybiB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXzsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgc3VwcG9ydGVkIG1vZGVzLiBTaG91bGQgYmUgYW4gT1ItaW5nIG9mIE1PVVNFX1NFTEVDVE9SX01PREUKKyAgICAgKiB2YWx1ZXMuCisgICAgICovCisgICAgc2V0IHN1cHBvcnRlZE1vZGVNYXNrKHN1cHBvcnRlZE1vZGVNYXNrKSB7CisgICAgICBpZiAodGhpcy5tb2RlICYmIChzdXBwb3J0ZWRNb2RlTWFzayAmIHRoaXMubW9kZSkgPT09IDApCisgICAgICAgIHRocm93IG5ldyBFcnJvcignc3VwcG9ydGVkTW9kZU1hc2sgbXVzdCBpbmNsdWRlIGN1cnJlbnQgbW9kZS4nKTsKKworICAgICAgZnVuY3Rpb24gY3JlYXRlQnV0dG9uRm9yTW9kZShtb2RlKSB7CisgICAgICAgIHJldHVybiBidXR0b247CisgICAgICB9CisKKyAgICAgIHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfID0gc3VwcG9ydGVkTW9kZU1hc2s7CisgICAgICB0aGlzLmJ1dHRvbnNFbF8udGV4dENvbnRlbnQgPSAnJzsKKyAgICAgIGZvciAodmFyIG1vZGVOYW1lIGluIE1PVVNFX1NFTEVDVE9SX01PREUpIHsKKyAgICAgICAgaWYgKG1vZGVOYW1lID09ICdBTExfTU9ERVMnKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB2YXIgbW9kZSA9IE1PVVNFX1NFTEVDVE9SX01PREVbbW9kZU5hbWVdOworICAgICAgICBpZiAoKHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfICYgbW9kZSkgPT09IDApCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItbW91c2UtbW9kZS1pY29uJyk7CisgICAgICAgIGJ1dHRvbi5tb2RlID0gbW9kZTsKKyAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ3Rvb2wtYnV0dG9uJyk7CisKKyAgICAgICAgdGhpcy5idXR0b25zRWxfLmFwcGVuZENoaWxkKGJ1dHRvbik7CisgICAgICB9CisgICAgfSwKKworICAgIGdldEJ1dHRvbkZvck1vZGVfOiBmdW5jdGlvbihtb2RlKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYnV0dG9uc0VsXy5jaGlsZHJlbi5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgYnV0dG9uRWwgPSB0aGlzLmJ1dHRvbnNFbF8uY2hpbGRyZW5baV07CisgICAgICAgIGlmIChidXR0b25FbC5tb2RlID09PSBtb2RlKQorICAgICAgICAgIHJldHVybiBidXR0b25FbDsKKyAgICAgIH0KKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBtb2RlKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVfOworICAgIH0sCisKKyAgICBzZXQgbW9kZShuZXdNb2RlKSB7CisgICAgICBpZiAobmV3TW9kZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmICh0eXBlb2YgbmV3TW9kZSAhPT0gJ251bWJlcicpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb2RlIG11c3QgYmUgYSBudW1iZXInKTsKKyAgICAgICAgaWYgKChuZXdNb2RlICYgdGhpcy5zdXBwb3J0ZWRNb2RlTWFza18pID09PSAwKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHN3aXRjaCB0byB0aGlzIG1vZGUsIGl0IGlzIG5vdCBzdXBwb3J0ZWQnKTsKKyAgICAgICAgaWYgKE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbbmV3TW9kZV0gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBtb2RlJyk7CisgICAgICB9CisKKyAgICAgIHZhciBtb2RlSW5mbzsKKworICAgICAgaWYgKHRoaXMuY3VycmVudE1vZGVfID09PSBuZXdNb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGlmICh0aGlzLmN1cnJlbnRNb2RlXykgeworICAgICAgICB2YXIgYnV0dG9uRWwgPSB0aGlzLmdldEJ1dHRvbkZvck1vZGVfKHRoaXMuY3VycmVudE1vZGVfKTsKKyAgICAgICAgaWYgKGJ1dHRvbkVsKQorICAgICAgICAgIGJ1dHRvbkVsLmFjdGl2ZSA9IGZhbHNlOworCisgICAgICAgIC8vIEVuZCBldmVudC4KKyAgICAgICAgaWYgKHRoaXMuaXNJbnRlcmFjdGluZ18pIHsKKworICAgICAgICAgIHZhciBtb3VzZUV2ZW50ID0gdGhpcy5jcmVhdGVFdmVudF8oCisgICAgICAgICAgICAgIE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbdGhpcy5tb2RlXS5ldmVudE5hbWVzLmVuZCk7CisgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRXhpdCBldmVudC4KKyAgICAgICAgbW9kZUluZm8gPSBNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW3RoaXMuY3VycmVudE1vZGVfXTsKKyAgICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsIG1vZGVJbmZvLmV2ZW50TmFtZXMuZXhpdCwgdHJ1ZSk7CisgICAgICB9CisKKyAgICAgIHRoaXMuY3VycmVudE1vZGVfID0gbmV3TW9kZTsKKworICAgICAgaWYgKHRoaXMuY3VycmVudE1vZGVfKSB7CisgICAgICAgIHZhciBidXR0b25FbCA9IHRoaXMuZ2V0QnV0dG9uRm9yTW9kZV8odGhpcy5jdXJyZW50TW9kZV8pOworICAgICAgICBpZiAoYnV0dG9uRWwpCisgICAgICAgICAgYnV0dG9uRWwuYWN0aXZlID0gdHJ1ZTsKKworICAgICAgICAvLyBFbnRlcmluZyBhIG5ldyBtb2RlIHJlc2V0cyBtb3VzZSBkb3duIHBvcy4KKyAgICAgICAgdGhpcy5tb3VzZURvd25Qb3NfLnggPSB0aGlzLm1vdXNlUG9zXy54OworICAgICAgICB0aGlzLm1vdXNlRG93blBvc18ueSA9IHRoaXMubW91c2VQb3NfLnk7CisKKyAgICAgICAgLy8gRW50ZXIgZXZlbnQuCisgICAgICAgIG1vZGVJbmZvID0gTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1t0aGlzLmN1cnJlbnRNb2RlX107CisgICAgICAgIGlmICghdGhpcy5pc0luQWx0ZXJuYXRpdmVNb2RlXykKKyAgICAgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgbW9kZUluZm8uZXZlbnROYW1lcy5lbnRlciwgdHJ1ZSk7CisKKyAgICAgICAgLy8gQmVnaW4gZXZlbnQuCisgICAgICAgIGlmICh0aGlzLmlzSW50ZXJhY3RpbmdfKSB7CisgICAgICAgICAgdmFyIG1vdXNlRXZlbnQgPSB0aGlzLmNyZWF0ZUV2ZW50XygKKyAgICAgICAgICAgICAgTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1t0aGlzLm1vZGVdLmV2ZW50TmFtZXMuYmVnaW4pOworICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKKyAgICAgICAgfQorCisKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuc2V0dGluZ3NLZXlfICYmICF0aGlzLmlzSW5BbHRlcm5hdGl2ZU1vZGVfKQorICAgICAgICB0ci5iLlNldHRpbmdzLnNldCh0aGlzLnNldHRpbmdzS2V5XyArICcubW9kZScsIHRoaXMubW9kZSk7CisgICAgfSwKKworICAgIHNldEtleUNvZGVGb3JNb2RlOiBmdW5jdGlvbihtb2RlLCBrZXlDb2RlKSB7CisgICAgICBpZiAoKG1vZGUgJiB0aGlzLnN1cHBvcnRlZE1vZGVNYXNrXykgPT09IDApCisgICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kZSBub3Qgc3VwcG9ydGVkJyk7CisgICAgICB0aGlzLm1vZGVUb0tleUNvZGVNYXBfW21vZGVdID0ga2V5Q29kZTsKKworICAgICAgaWYgKCF0aGlzLmJ1dHRvbnNFbF8pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGJ1dHRvbkVsID0gdGhpcy5nZXRCdXR0b25Gb3JNb2RlXyhtb2RlKTsKKyAgICAgIGlmIChidXR0b25FbCkKKyAgICAgICAgYnV0dG9uRWwuYWNjZWxlcmF0b3JLZXkgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGtleUNvZGUpOworICAgIH0sCisKKyAgICBzZXRDdXJyZW50TW91c2VQb3NGcm9tRXZlbnRfOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLm1vdXNlUG9zXy54ID0gZS5jbGllbnRYOworICAgICAgdGhpcy5tb3VzZVBvc18ueSA9IGUuY2xpZW50WTsKKyAgICB9LAorCisgICAgY3JlYXRlRXZlbnRfOiBmdW5jdGlvbihldmVudE5hbWUsIHNvdXJjZUV2ZW50KSB7CisgICAgICB2YXIgZXZlbnQgPSBuZXcgdHIuYi5FdmVudChldmVudE5hbWUsIHRydWUpOworICAgICAgZXZlbnQuY2xpZW50WCA9IHRoaXMubW91c2VQb3NfLng7CisgICAgICBldmVudC5jbGllbnRZID0gdGhpcy5tb3VzZVBvc18ueTsKKyAgICAgIGV2ZW50LmRlbHRhWCA9IHRoaXMubW91c2VQb3NfLnggLSB0aGlzLm1vdXNlRG93blBvc18ueDsKKyAgICAgIGV2ZW50LmRlbHRhWSA9IHRoaXMubW91c2VQb3NfLnkgLSB0aGlzLm1vdXNlRG93blBvc18ueTsKKyAgICAgIGV2ZW50Lm1vdXNlRG93blggPSB0aGlzLm1vdXNlRG93blBvc18ueDsKKyAgICAgIGV2ZW50Lm1vdXNlRG93blkgPSB0aGlzLm1vdXNlRG93blBvc18ueTsKKyAgICAgIGV2ZW50LmRpZFByZXZlbnREZWZhdWx0ID0gZmFsc2U7CisgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCA9IGZ1bmN0aW9uKCkgeworICAgICAgICBldmVudC5kaWRQcmV2ZW50RGVmYXVsdCA9IHRydWU7CisgICAgICAgIGlmIChzb3VyY2VFdmVudCkKKyAgICAgICAgICBzb3VyY2VFdmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgfTsKKyAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbiA9IGZ1bmN0aW9uKCkgeworICAgICAgICBzb3VyY2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgIH07CisgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICAgIH07CisgICAgICByZXR1cm4gZXZlbnQ7CisgICAgfSwKKworICAgIG9uTW91c2VEb3duXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKGUuYnV0dG9uICE9PSAwKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLnNldEN1cnJlbnRNb3VzZVBvc0Zyb21FdmVudF8oZSk7CisgICAgICB2YXIgbW91c2VFdmVudCA9IHRoaXMuY3JlYXRlRXZlbnRfKAorICAgICAgICAgIE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbdGhpcy5tb2RlXS5ldmVudE5hbWVzLmJlZ2luLCBlKTsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKKyAgICAgIHRoaXMuaXNJbnRlcmFjdGluZ18gPSB0cnVlOworICAgICAgdGhpcy5pc0NsaWNrXyA9IHRydWU7CisgICAgICB0ci51aS5iLnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcCh0aGlzLm9uTW91c2VNb3ZlXywgdGhpcy5vbk1vdXNlVXBfKTsKKyAgICB9LAorCisgICAgb25Nb3VzZU1vdmVfOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLnNldEN1cnJlbnRNb3VzZVBvc0Zyb21FdmVudF8oZSk7CisKKyAgICAgIHZhciBtb3VzZUV2ZW50ID0gdGhpcy5jcmVhdGVFdmVudF8oCisgICAgICAgICAgTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1t0aGlzLm1vZGVdLmV2ZW50TmFtZXMudXBkYXRlLCBlKTsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtb3VzZUV2ZW50KTsKKworICAgICAgaWYgKHRoaXMuaXNJbnRlcmFjdGluZ18pCisgICAgICAgIHRoaXMuY2hlY2tJc0NsaWNrXyhlKTsKKyAgICB9LAorCisgICAgb25Nb3VzZVVwXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKGUuYnV0dG9uICE9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBtb3VzZUV2ZW50ID0gdGhpcy5jcmVhdGVFdmVudF8oCisgICAgICAgICAgTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1t0aGlzLm1vZGVdLmV2ZW50TmFtZXMuZW5kLCBlKTsKKyAgICAgIG1vdXNlRXZlbnQuaXNDbGljayA9IHRoaXMuaXNDbGlja187CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7CisKKyAgICAgIGlmICh0aGlzLmlzQ2xpY2tfICYmICFtb3VzZUV2ZW50LmRpZFByZXZlbnREZWZhdWx0KQorICAgICAgICB0aGlzLmRpc3BhdGNoQ2xpY2tFdmVudHNfKGUpOworCisgICAgICB0aGlzLmlzSW50ZXJhY3RpbmdfID0gZmFsc2U7CisgICAgICB0aGlzLnVwZGF0ZUFsdGVybmF0aXZlTW9kZVN0YXRlXyhlKTsKKyAgICB9LAorCisgICAgb25CdXR0b25Nb3VzZURvd25fOiBmdW5jdGlvbihlKSB7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOworICAgIH0sCisKKyAgICBvbkJ1dHRvbk1vdXNlVXBfOiBmdW5jdGlvbihlKSB7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOworICAgIH0sCisKKyAgICBvbkJ1dHRvblByZXNzXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMubW9kZSA9IGUudGFyZ2V0Lm1vZGU7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwKKworICAgIG9uS2V5RG93bl86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIC8vIEtleXMgZGlzcGF0Y2hlZCB0byBJTlBVVCBlbGVtZW50cyBzdGlsbCBidWJibGUsIGV2ZW4gd2hlbiB0aGV5J3JlCisgICAgICAvLyBoYW5kbGVkLiBTbywgc2tpcCBhbnkgZXZlbnRzIHRoYXQgdGFyZ2V0ZWQgdGhlIGlucHV0IGVsZW1lbnQuCisgICAgICBpZiAoZS5wYXRoWzBdLnRhZ05hbWUgPT0gJ0lOUFVUJykKKyAgICAgICAgcmV0dXJuOworCisgICAgICBpZiAoZS5rZXlDb2RlID09PSAnICcuY2hhckNvZGVBdCgwKSkKKyAgICAgICAgdGhpcy5zcGFjZVByZXNzZWRfID0gdHJ1ZTsKKyAgICAgIHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVNb2RlU3RhdGVfKGUpOworICAgIH0sCisKKyAgICBvbktleVVwXzogZnVuY3Rpb24oZSkgeworICAgICAgLy8gS2V5cyBkaXNwYXRjaGVkIHRvIElOUFVUIGVsZW1lbnRzIHN0aWxsIGJ1YmJsZSwgZXZlbiB3aGVuIHRoZXkncmUKKyAgICAgIC8vIGhhbmRsZWQuIFNvLCBza2lwIGFueSBldmVudHMgdGhhdCB0YXJnZXRlZCB0aGUgaW5wdXQgZWxlbWVudC4KKyAgICAgIGlmIChlLnBhdGhbMF0udGFnTmFtZSA9PSAnSU5QVVQnKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGlmIChlLmtleUNvZGUgPT09ICcgJy5jaGFyQ29kZUF0KDApKQorICAgICAgICB0aGlzLnNwYWNlUHJlc3NlZF8gPSBmYWxzZTsKKworICAgICAgdmFyIGRpZEhhbmRsZUtleSA9IGZhbHNlOworICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5tb2RlVG9LZXlDb2RlTWFwXywgZnVuY3Rpb24obW9kZVN0ciwga2V5Q29kZSkgeworICAgICAgICBpZiAoZS5rZXlDb2RlID09PSBrZXlDb2RlKSB7CisgICAgICAgICAgdGhpcy5tb2RlQmVmb3JlQWx0ZXJuYXRpdmVNb2RlQWN0aXZhdGVkXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgICB2YXIgbW9kZSA9IHBhcnNlSW50KG1vZGVTdHIpOworICAgICAgICAgIHRoaXMubW9kZSA9IG1vZGU7CisgICAgICAgICAgZGlkSGFuZGxlS2V5ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgfSwgdGhpcyk7CisKKyAgICAgIGlmIChkaWRIYW5kbGVLZXkpIHsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB0aGlzLnVwZGF0ZUFsdGVybmF0aXZlTW9kZVN0YXRlXyhlKTsKKyAgICB9LAorCisgICAgdXBkYXRlQWx0ZXJuYXRpdmVNb2RlU3RhdGVfOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgc2hpZnRQcmVzc2VkID0gZS5zaGlmdEtleTsKKyAgICAgIHZhciBzcGFjZVByZXNzZWQgPSB0aGlzLnNwYWNlUHJlc3NlZF87CisgICAgICB2YXIgY21kT3JDdHJsUHJlc3NlZCA9CisgICAgICAgICAgKHRyLmlzTWFjICYmIGUubWV0YUtleSkgfHwgKCF0ci5pc01hYyAmJiBlLmN0cmxLZXkpOworCisgICAgICAvLyBGaWd1cmUgb3V0IHRoZSBuZXcgbW9kZQorICAgICAgdmFyIHNtbSA9IHRoaXMuc3VwcG9ydGVkTW9kZU1hc2tfOworICAgICAgdmFyIG5ld01vZGU7CisgICAgICB2YXIgaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUgPSBmYWxzZTsKKyAgICAgIGlmIChzaGlmdFByZXNzZWQgJiYKKyAgICAgICAgICAodGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU0hJRlRdICYgc21tKSAhPT0gMCkgeworICAgICAgICBuZXdNb2RlID0gdGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU0hJRlRdOworICAgICAgICBpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZSA9IHRydWU7CisgICAgICB9IGVsc2UgaWYgKHNwYWNlUHJlc3NlZCAmJgorICAgICAgICAgICAgICAgICAodGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU1BBQ0VdICYgc21tKSAhPT0gMCkgeworICAgICAgICBuZXdNb2RlID0gdGhpcy5tb2RpZmllclRvTW9kZU1hcF9bTU9ESUZJRVIuU1BBQ0VdOworICAgICAgICBpc05ld01vZGVBbkFsdGVybmF0aXZlTW9kZSA9IHRydWU7CisgICAgICB9IGVsc2UgaWYgKGNtZE9yQ3RybFByZXNzZWQgJiYKKyAgICAgICAgICAgICAgICAgKHRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLkNNRF9PUl9DVFJMXSAmIHNtbSkgIT09IDApIHsKKyAgICAgICAgbmV3TW9kZSA9IHRoaXMubW9kaWZpZXJUb01vZGVNYXBfW01PRElGSUVSLkNNRF9PUl9DVFJMXTsKKyAgICAgICAgaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUgPSB0cnVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gR28gdG8gdGhlIG9sZCBtb2RlLCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICAgIGlmICh0aGlzLmlzSW5BbHRlcm5hdGl2ZU1vZGVfKSB7CisgICAgICAgICAgbmV3TW9kZSA9IHRoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF87CisgICAgICAgICAgaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBuZXdNb2RlID0gdW5kZWZpbmVkOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8vIE1heWJlIGEgbW9kZSBjaGFuZ2UgaXNuJ3QgbmVlZGVkLgorICAgICAgaWYgKHRoaXMubW9kZSA9PT0gbmV3TW9kZSB8fCBuZXdNb2RlID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgLy8gT2theSwgd2UncmUgY2hhbmdpbmcuCisgICAgICBpZiAoaXNOZXdNb2RlQW5BbHRlcm5hdGl2ZU1vZGUpCisgICAgICAgIHRoaXMubW9kZUJlZm9yZUFsdGVybmF0aXZlTW9kZUFjdGl2YXRlZF8gPSB0aGlzLm1vZGU7CisgICAgICB0aGlzLm1vZGUgPSBuZXdNb2RlOworICAgIH0sCisKKyAgICBnZXQgaXNJbkFsdGVybmF0aXZlTW9kZV8oKSB7CisgICAgICByZXR1cm4gISF0aGlzLm1vZGVCZWZvcmVBbHRlcm5hdGl2ZU1vZGVBY3RpdmF0ZWRfOworICAgIH0sCisKKyAgICBzZXRNb2RpZmllckZvckFsdGVybmF0ZU1vZGU6IGZ1bmN0aW9uKG1vZGUsIG1vZGlmaWVyKSB7CisgICAgICB0aGlzLm1vZGlmaWVyVG9Nb2RlTWFwX1ttb2RpZmllcl0gPSBtb2RlOworICAgIH0sCisKKyAgICBnZXQgcG9zKCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgeDogcGFyc2VJbnQodGhpcy5zdHlsZS5sZWZ0KSwKKyAgICAgICAgeTogcGFyc2VJbnQodGhpcy5zdHlsZS50b3ApCisgICAgICB9OworICAgIH0sCisKKyAgICBzZXQgcG9zKHBvcykgeworICAgICAgcG9zID0gdGhpcy5jb25zdHJhaW5Qb3NpdGlvblRvQm91bmRzXyhwb3MpOworCisgICAgICB0aGlzLnN0eWxlLmxlZnQgPSBwb3MueCArICdweCc7CisgICAgICB0aGlzLnN0eWxlLnRvcCA9IHBvcy55ICsgJ3B4JzsKKworICAgICAgaWYgKHRoaXMuc2V0dGluZ3NLZXlfKQorICAgICAgICB0ci5iLlNldHRpbmdzLnNldCh0aGlzLnNldHRpbmdzS2V5XyArICcucG9zJywgdGhpcy5wb3MpOworICAgIH0sCisKKyAgICBjb25zdHJhaW5Qb3NpdGlvblRvQm91bmRzXzogZnVuY3Rpb24ocG9zKSB7CisgICAgICB2YXIgcGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuYm9keTsKKyAgICAgIHZhciBwYXJlbnRSZWN0ID0gdHIudWkuYi53aW5kb3dSZWN0Rm9yRWxlbWVudChwYXJlbnQpOworCisgICAgICB2YXIgdG9wID0gMDsKKyAgICAgIHZhciBib3R0b20gPSBwYXJlbnRSZWN0LmhlaWdodCAtIHRoaXMub2Zmc2V0SGVpZ2h0OworICAgICAgdmFyIGxlZnQgPSAwOworICAgICAgdmFyIHJpZ2h0ID0gcGFyZW50UmVjdC53aWR0aCAtIHRoaXMub2Zmc2V0V2lkdGg7CisKKyAgICAgIHZhciByZXMgPSB7fTsKKyAgICAgIHJlcy54ID0gTWF0aC5tYXgocG9zLngsIGxlZnQpOworICAgICAgcmVzLnggPSBNYXRoLm1pbihyZXMueCwgcmlnaHQpOworCisgICAgICByZXMueSA9IE1hdGgubWF4KHBvcy55LCB0b3ApOworICAgICAgcmVzLnkgPSBNYXRoLm1pbihyZXMueSwgYm90dG9tKTsKKyAgICAgIHJldHVybiByZXM7CisgICAgfSwKKworICAgIG9uRHJhZ0hhbmRsZU1vdXNlRG93bl86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CisKKyAgICAgIHZhciBtb3VzZURvd25Qb3MgPSB7CisgICAgICAgIHg6IGUuY2xpZW50WCAtIHRoaXMub2Zmc2V0TGVmdCwKKyAgICAgICAgeTogZS5jbGllbnRZIC0gdGhpcy5vZmZzZXRUb3AKKyAgICAgIH07CisgICAgICB0ci51aS5iLnRyYWNrTW91c2VNb3Zlc1VudGlsTW91c2VVcChmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBwb3MgPSB7fTsKKyAgICAgICAgcG9zLnggPSBlLmNsaWVudFggLSBtb3VzZURvd25Qb3MueDsKKyAgICAgICAgcG9zLnkgPSBlLmNsaWVudFkgLSBtb3VzZURvd25Qb3MueTsKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBjaGVja0lzQ2xpY2tfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMuaXNJbnRlcmFjdGluZ18gfHwgIXRoaXMuaXNDbGlja18pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGRlbHRhWCA9IHRoaXMubW91c2VQb3NfLnggLSB0aGlzLm1vdXNlRG93blBvc18ueDsKKyAgICAgIHZhciBkZWx0YVkgPSB0aGlzLm1vdXNlUG9zXy55IC0gdGhpcy5tb3VzZURvd25Qb3NfLnk7CisgICAgICB2YXIgbWluRGlzdCA9IE1JTl9NT1VTRV9TRUxFQ1RJT05fRElTVEFOQ0U7CisKKyAgICAgIGlmIChkZWx0YVggKiBkZWx0YVggKyBkZWx0YVkgKiBkZWx0YVkgPiBtaW5EaXN0ICogbWluRGlzdCkKKyAgICAgICAgdGhpcy5pc0NsaWNrXyA9IGZhbHNlOworICAgIH0sCisKKyAgICBkaXNwYXRjaENsaWNrRXZlbnRzXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKCF0aGlzLmlzQ2xpY2tfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBtb2RlSW5mbyA9IE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbTU9VU0VfU0VMRUNUT1JfTU9ERS5TRUxFQ1RJT05dOworICAgICAgdmFyIGV2ZW50TmFtZXMgPSBtb2RlSW5mby5ldmVudE5hbWVzOworCisgICAgICB2YXIgbW91c2VFdmVudCA9IHRoaXMuY3JlYXRlRXZlbnRfKGV2ZW50TmFtZXMuYmVnaW4pOworICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpOworCisgICAgICBtb3VzZUV2ZW50ID0gdGhpcy5jcmVhdGVFdmVudF8oZXZlbnROYW1lcy5lbmQpOworICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1vdXNlRXZlbnQpOworICAgIH0KKyAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBNSU5fTU9VU0VfU0VMRUNUSU9OX0RJU1RBTkNFOiBNSU5fTU9VU0VfU0VMRUNUSU9OX0RJU1RBTkNFLAorICAgIE1PRElGSUVSOiBNT0RJRklFUgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdjYTBhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVfc2VsZWN0b3JfdGVzdC5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NldHRpbmdzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL21vdXNlX21vZGVfc2VsZWN0b3IuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIE1PVVNFX1NFTEVDVE9SX01PREUgPSB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREU7CisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItbW91c2UtbW9kZS1zZWxlY3RvcicpOworICAgIHNlbC5zdXBwb3J0ZWRNb2RlTWFzayA9CisgICAgICAgIE1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OIHwKKyAgICAgICAgTU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChzZWwpOworICB9KTsKKworICB0ZXN0KCdjaGFuZ2VNYXNrV2l0aFVuc3VwcG9ydGVkTW9kZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLW1vdXNlLW1vZGUtc2VsZWN0b3InKTsKKyAgICBzZWwubW9kZSA9IE1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OOworICAgIGFzc2VydC50aHJvdyhmdW5jdGlvbigpIHsKKyAgICAgIHNlbC5zdXBwb3J0ZWRNb2RlTWFzayA9IE1PVVNFX1NFTEVDVE9SX01PREUuWk9PTTsKKyAgICB9KTsKKyAgfSk7CisKKyAgdGVzdCgnbW9kZVBlcnNpc3RzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlbDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLW1vdXNlLW1vZGUtc2VsZWN0b3InKTsKKyAgICBzZWwxLmRlZmF1bHRNb2RlXyA9IE1PVVNFX1NFTEVDVE9SX01PREUuWk9PTTsKKyAgICBzZWwxLnNldHRpbmdzS2V5ID0gJ2Zvbyc7CisgICAgYXNzZXJ0LmVxdWFsKHNlbDEubW9kZSwgTU9VU0VfU0VMRUNUT1JfTU9ERS5aT09NKTsKKworICAgIHNlbDEubW9kZSA9IE1PVVNFX1NFTEVDVE9SX01PREUuUEFOU0NBTjsKKworICAgIHZhciBzZWwyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1tb3VzZS1tb2RlLXNlbGVjdG9yJyk7CisgICAgc2VsMi5zZXR0aW5nc0tleSA9ICdmb28nOworICAgIGFzc2VydC5lcXVhbChzZWwyLm1vZGUsIE1PVVNFX1NFTEVDVE9SX01PREUuUEFOU0NBTik7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbW91c2VfbW9kZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkODdhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX21vZGVzLmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIHZhciBNT1VTRV9TRUxFQ1RPUl9NT0RFID0ge307CisgIE1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OID0gMHgxOworICBNT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU4gPSAweDI7CisgIE1PVVNFX1NFTEVDVE9SX01PREUuWk9PTSA9IDB4NDsKKyAgTU9VU0VfU0VMRUNUT1JfTU9ERS5USU1JTkcgPSAweDg7CisgIE1PVVNFX1NFTEVDVE9SX01PREUuUk9UQVRFID0gMHgxMDsKKyAgTU9VU0VfU0VMRUNUT1JfTU9ERS5BTExfTU9ERVMgPSAweDFGOworCisgIHZhciBNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TID0ge307CisgIE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbTU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOXSA9IHsKKyAgICBtb2RlOiBNT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU4sCisgICAgdGl0bGU6ICdwYW4nLAorICAgIGV2ZW50TmFtZXM6IHsKKyAgICAgIGVudGVyOiAnZW50ZXJwYW4nLAorICAgICAgYmVnaW46ICdiZWdpbnBhbicsCisgICAgICB1cGRhdGU6ICd1cGRhdGVwYW4nLAorICAgICAgZW5kOiAnZW5kcGFuJywKKyAgICAgIGV4aXQ6ICdleGl0cGFuJworICAgIH0sCisgICAgYWN0aXZlQmFja2dyb3VuZFBvc2l0aW9uOiAnLTMwcHggLTEwcHgnLAorICAgIGRlZmF1bHRCYWNrZ3JvdW5kUG9zaXRpb246ICcwIC0xMHB4JworICB9OworICBNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW01PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OXSA9IHsKKyAgICBtb2RlOiBNT1VTRV9TRUxFQ1RPUl9NT0RFLlNFTEVDVElPTiwKKyAgICB0aXRsZTogJ3NlbGVjdGlvbicsCisgICAgZXZlbnROYW1lczogeworICAgICAgZW50ZXI6ICdlbnRlcnNlbGVjdGlvbicsCisgICAgICBiZWdpbjogJ2JlZ2luc2VsZWN0aW9uJywKKyAgICAgIHVwZGF0ZTogJ3VwZGF0ZXNlbGVjdGlvbicsCisgICAgICBlbmQ6ICdlbmRzZWxlY3Rpb24nLAorICAgICAgZXhpdDogJ2V4aXRzZWxlY3Rpb24nCisgICAgfSwKKyAgICBhY3RpdmVCYWNrZ3JvdW5kUG9zaXRpb246ICctMzBweCAtNDBweCcsCisgICAgZGVmYXVsdEJhY2tncm91bmRQb3NpdGlvbjogJzAgLTQwcHgnCisgIH07CisKKyAgTU9VU0VfU0VMRUNUT1JfTU9ERV9JTkZPU1tNT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT01dID0geworICAgIG1vZGU6IE1PVVNFX1NFTEVDVE9SX01PREUuWk9PTSwKKyAgICB0aXRsZTogJ3pvb20nLAorICAgIGV2ZW50TmFtZXM6IHsKKyAgICAgIGVudGVyOiAnZW50ZXJ6b29tJywKKyAgICAgIGJlZ2luOiAnYmVnaW56b29tJywKKyAgICAgIHVwZGF0ZTogJ3VwZGF0ZXpvb20nLAorICAgICAgZW5kOiAnZW5kem9vbScsCisgICAgICBleGl0OiAnZXhpdHpvb20nCisgICAgfSwKKyAgICBhY3RpdmVCYWNrZ3JvdW5kUG9zaXRpb246ICctMzBweCAtNzBweCcsCisgICAgZGVmYXVsdEJhY2tncm91bmRQb3NpdGlvbjogJzAgLTcwcHgnCisgIH07CisgIE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1NbTU9VU0VfU0VMRUNUT1JfTU9ERS5USU1JTkddID0geworICAgIG1vZGU6IE1PVVNFX1NFTEVDVE9SX01PREUuVElNSU5HLAorICAgIHRpdGxlOiAndGltaW5nJywKKyAgICBldmVudE5hbWVzOiB7CisgICAgICBlbnRlcjogJ2VudGVydGltaW5nJywKKyAgICAgIGJlZ2luOiAnYmVnaW50aW1pbmcnLAorICAgICAgdXBkYXRlOiAndXBkYXRldGltaW5nJywKKyAgICAgIGVuZDogJ2VuZHRpbWluZycsCisgICAgICBleGl0OiAnZXhpdHRpbWluZycKKyAgICB9LAorICAgIGFjdGl2ZUJhY2tncm91bmRQb3NpdGlvbjogJy0zMHB4IC0xMDBweCcsCisgICAgZGVmYXVsdEJhY2tncm91bmRQb3NpdGlvbjogJzAgLTEwMHB4JworICB9OworICBNT1VTRV9TRUxFQ1RPUl9NT0RFX0lORk9TW01PVVNFX1NFTEVDVE9SX01PREUuUk9UQVRFXSA9IHsKKyAgICBtb2RlOiBNT1VTRV9TRUxFQ1RPUl9NT0RFLlJPVEFURSwKKyAgICB0aXRsZTogJ3JvdGF0ZScsCisgICAgZXZlbnROYW1lczogeworICAgICAgZW50ZXI6ICdlbnRlcnJvdGF0ZScsCisgICAgICBiZWdpbjogJ2JlZ2lucm90YXRlJywKKyAgICAgIHVwZGF0ZTogJ3VwZGF0ZXJvdGF0ZScsCisgICAgICBlbmQ6ICdlbmRyb3RhdGUnLAorICAgICAgZXhpdDogJ2V4aXRyb3RhdGUnCisgICAgfSwKKyAgICBhY3RpdmVCYWNrZ3JvdW5kUG9zaXRpb246ICctMzBweCAtMTMwcHgnLAorICAgIGRlZmF1bHRCYWNrZ3JvdW5kUG9zaXRpb246ICcwIC0xMzBweCcKKyAgfTsKKworICByZXR1cm4geworICAgIE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1M6IE1PVVNFX1NFTEVDVE9SX01PREVfSU5GT1MsCisgICAgTU9VU0VfU0VMRUNUT1JfTU9ERTogTU9VU0VfU0VMRUNUT1JfTU9ERQorICB9OworfSk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvbW91c2VfdHJhY2tlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX3RyYWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDc1MDAyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL21vdXNlX3RyYWNrZXIuaHRtbApAQCAtMCwwICsxLDExNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBBIE1vdXNlLWV2ZW50IGFidHJhY3Rpb24gdGhhdCB3YWl0cyBmb3IKKyAqICAgbW91c2Vkb3duLCB0aGVuIHdhdGNoZXMgZm9yIHN1YnNlcXVlbnQgbW91c2Vtb3ZlIGV2ZW50cworICogICB1bnRpbCB0aGUgbmV4dCBtb3VzZXVwIGV2ZW50LCB0aGVuIHdhaXRzIGFnYWluLgorICogICBTdGF0ZSBjaGFuZ2VzIGFyZSBzaWduYWxlZCB3aXRoCisgKiAgICAgICdtb3VzZS10cmFja2VyLXN0YXJ0JyA6IG1vdXNlZG93biBhbmQgdHJhY2tpbmcKKyAqICAgICAgJ21vdXNlLXRyYWNrZXItbW92ZScgOiBtb3VzZSBtb3ZlCisgKiAgICAgICdtb3VzZS10cmFja2VyLWVuZCcgOiBtb3VzZXVwIGFuZCBub3QgdHJhY2tpbmcuCisgKi8KKwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldEVsZW1lbnQgd2lsbCByZWN2IGV2ZW50cyAnbW91c2UtdHJhY2tlci1zdGFydCcsCisgICAqICAgICAnbW91c2UtdHJhY2tlci1tb3ZlJywgJ21vdXNlLXRyYWNrZXItZW5kJy4KKyAgICovCisgIGZ1bmN0aW9uIE1vdXNlVHJhY2tlcihvcHRfdGFyZ2V0RWxlbWVudCkgeworICAgIHRoaXMub25Nb3VzZURvd25fID0gdGhpcy5vbk1vdXNlRG93bl8uYmluZCh0aGlzKTsKKyAgICB0aGlzLm9uTW91c2VNb3ZlXyA9IHRoaXMub25Nb3VzZU1vdmVfLmJpbmQodGhpcyk7CisgICAgdGhpcy5vbk1vdXNlVXBfID0gdGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyk7CisKKyAgICB0aGlzLnRhcmdldEVsZW1lbnQgPSBvcHRfdGFyZ2V0RWxlbWVudDsKKyAgfQorCisgIE1vdXNlVHJhY2tlci5wcm90b3R5cGUgPSB7CisKKyAgICBnZXQgdGFyZ2V0RWxlbWVudCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnRhcmdldEVsZW1lbnRfOworICAgIH0sCisKKyAgICBzZXQgdGFyZ2V0RWxlbWVudCh0YXJnZXRFbGVtZW50KSB7CisgICAgICBpZiAodGhpcy50YXJnZXRFbGVtZW50XykKKyAgICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duXyk7CisgICAgICB0aGlzLnRhcmdldEVsZW1lbnRfID0gdGFyZ2V0RWxlbWVudDsKKyAgICAgIGlmICh0aGlzLnRhcmdldEVsZW1lbnRfKQorICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd25fKTsKKyAgICB9LAorCisgICAgb25Nb3VzZURvd25fOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoZS5idXR0b24gIT09IDApCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICBlID0gdGhpcy5yZW1ha2VFdmVudF8oZSwgJ21vdXNlLXRyYWNrZXItc3RhcnQnKTsKKyAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8uZGlzcGF0Y2hFdmVudChlKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVfKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcF8pOworICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5vbk1vdXNlVXBfKTsKKyAgICAgIHRoaXMuc2F2ZVByZXZpb3VzVXNlclNlbGVjdF8gPSBkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J107CisgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J10gPSAnbm9uZSc7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgb25Nb3VzZU1vdmVfOiBmdW5jdGlvbihlKSB7CisgICAgICBlID0gdGhpcy5yZW1ha2VFdmVudF8oZSwgJ21vdXNlLXRyYWNrZXItbW92ZScpOworICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5kaXNwYXRjaEV2ZW50KGUpOworICAgIH0sCisKKyAgICBvbk1vdXNlVXBfOiBmdW5jdGlvbihlKSB7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlXyk7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXBfKTsKKyAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMub25Nb3VzZVVwXyk7CisgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlWyctd2Via2l0LXVzZXItc2VsZWN0J10gPQorICAgICAgICAgIHRoaXMuc2F2ZVByZXZpb3VzVXNlclNlbGVjdF87CisgICAgICBlID0gdGhpcy5yZW1ha2VFdmVudF8oZSwgJ21vdXNlLXRyYWNrZXItZW5kJyk7CisgICAgICB0aGlzLnRhcmdldEVsZW1lbnRfLmRpc3BhdGNoRXZlbnQoZSk7CisgICAgfSwKKworICAgIHJlbWFrZUV2ZW50XzogZnVuY3Rpb24oZSwgbmV3VHlwZSkgeworICAgICAgdmFyIHJlbWFkZSA9IG5ldyB0ci5iLkV2ZW50KG5ld1R5cGUsIHRydWUsIHRydWUpOworICAgICAgcmVtYWRlLnggPSBlLng7CisgICAgICByZW1hZGUueSA9IGUueTsKKyAgICAgIHJlbWFkZS5vZmZzZXRYID0gZS5vZmZzZXRYOworICAgICAgcmVtYWRlLm9mZnNldFkgPSBlLm9mZnNldFk7CisgICAgICByZW1hZGUuY2xpZW50WCA9IGUuY2xpZW50WDsKKyAgICAgIHJlbWFkZS5jbGllbnRZID0gZS5jbGllbnRZOworICAgICAgcmV0dXJuIHJlbWFkZTsKKyAgICB9CisKKyAgfTsKKworICBmdW5jdGlvbiB0cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAobW91c2VNb3ZlSGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9tb3VzZVVwSGFuZGxlciwgb3B0X2tleVVwSGFuZGxlcikgeworICAgIGZ1bmN0aW9uIGNsZWFudXBBbmREaXNwYXRjaFRvTW91c2VVcChlKSB7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3VzZU1vdmVIYW5kbGVyKTsKKyAgICAgIGlmIChvcHRfa2V5VXBIYW5kbGVyKQorICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIG9wdF9rZXlVcEhhbmRsZXIpOworICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGNsZWFudXBBbmREaXNwYXRjaFRvTW91c2VVcCk7CisgICAgICBpZiAob3B0X21vdXNlVXBIYW5kbGVyKQorICAgICAgICBvcHRfbW91c2VVcEhhbmRsZXIoZSk7CisgICAgfQorICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZUhhbmRsZXIpOworICAgIGlmIChvcHRfa2V5VXBIYW5kbGVyKQorICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBvcHRfa2V5VXBIYW5kbGVyKTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgY2xlYW51cEFuZERpc3BhdGNoVG9Nb3VzZVVwKTsKKyAgfQorCisgIHJldHVybiB7CisgICAgTW91c2VUcmFja2VyOiBNb3VzZVRyYWNrZXIsCisgICAgdHJhY2tNb3VzZU1vdmVzVW50aWxNb3VzZVVwOiB0cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvb3ZlcmxheS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL292ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzc2YTJhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL292ZXJsYXkuaHRtbApAQCAtMCwwICsxLDM0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91dGlscy5odG1sIj4KKworPHRlbXBsYXRlIGlkPSJvdmVybGF5LXRlbXBsYXRlIj4KKyAgPHN0eWxlPgorICAgIG92ZXJsYXktbWFzayB7CisgICAgICBsZWZ0OiAwOworICAgICAgcGFkZGluZzogOHB4OworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgdG9wOiAwOworICAgICAgei1pbmRleDogMTAwMDsKKyAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKyAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKKyAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgIGxlZnQ6IDA7CisgICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICB0b3A6IDA7CisgICAgICB3aWR0aDogMTAwJTsKKyAgICB9CisgICAgb3ZlcmxheS1tYXNrOmZvY3VzIHsKKyAgICAgIG91dGxpbmU6IG5vbmU7CisgICAgfQorICAgIG92ZXJsYXktdmVydGljYWwtY2VudGVyaW5nLWNvbnRhaW5lciB7CisgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyOworICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIH0KKyAgICBvdmVybGF5LWZyYW1lIHsKKyAgICAgIHotaW5kZXg6IDExMDA7CisgICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOworICAgICAgbWFyZ2luOiA3NXB4OworICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgbWluLWhlaWdodDogMDsKKyAgICB9CisgICAgdGl0bGUtYmFyIHsKKyAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKKyAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87CisgICAgfQorICAgIHRpdGxlIHsKKyAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgICAgfQorICAgIGNsb3NlLWJ1dHRvbiB7CisgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtZW5kOworICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7CisgICAgICBmb250LXNpemU6IDEwcHQ7CisgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgIHBhZGRpbmc6IDJweDsKKyAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICAgIHdpZHRoOiAxNnB4OworICAgIH0KKyAgICBjbG9zZS1idXR0b246aG92ZXIgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKKyAgICAgIGJvcmRlci1jb2xvcjogYmxhY2s7CisgICAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgfQorICAgIG92ZXJsYXktY29udGVudCB7CisgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgb3ZlcmZsb3cteTogYXV0bzsKKyAgICAgIHBhZGRpbmc6IDEwcHg7CisgICAgICBtaW4td2lkdGg6IDMwMHB4OworICAgICAgbWluLWhlaWdodDogMDsKKyAgICB9CisgICAgYnV0dG9uLWJhciB7CisgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBiYXNlbGluZTsKKyAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjOworICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKKyAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOworICAgICAgcGFkZGluZzogNHB4OworICAgIH0KKyAgPC9zdHlsZT4KKworICA8b3ZlcmxheS1tYXNrPgorICAgIDxvdmVybGF5LXZlcnRpY2FsLWNlbnRlcmluZy1jb250YWluZXI+CisgICAgICA8b3ZlcmxheS1mcmFtZT4KKyAgICAgICAgPHRpdGxlLWJhcj4KKyAgICAgICAgICA8dGl0bGU+PC90aXRsZT4KKyAgICAgICAgICA8Y2xvc2UtYnV0dG9uPiYjeDI3MTU8L2Nsb3NlLWJ1dHRvbj4KKyAgICAgICAgPC90aXRsZS1iYXI+CisgICAgICAgIDxvdmVybGF5LWNvbnRlbnQ+CisgICAgICAgICAgPGNvbnRlbnQ+PC9jb250ZW50PgorICAgICAgICA8L292ZXJsYXktY29udGVudD4KKyAgICAgICAgPGJ1dHRvbi1iYXI+PC9idXR0b24tYmFyPgorICAgICAgPC9vdmVybGF5LWZyYW1lPgorICAgIDwvb3ZlcmxheS12ZXJ0aWNhbC1jZW50ZXJpbmctY29udGFpbmVyPgorICA8L292ZXJsYXktbWFzaz4KKzwvdGVtcGxhdGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBJbXBsZW1lbnRzIGFuIGVsZW1lbnQgdGhhdCBpcyBoaWRkZW4gYnkgZGVmYXVsdCwgYnV0CisgKiB3aGVuIHNob3duLCBkaW1zIGFuZCAoYXR0ZW1wdHMgdG8pIGRpc2FibGUgdGhlIG1haW4gZG9jdW1lbnQuCisgKgorICogWW91IGNhbiB0dXJuIGFueSBkaXYgaW50byBhbiBvdmVybGF5LiBOb3RlIHRoYXQgd2hpbGUgYW4KKyAqIG92ZXJsYXkgZWxlbWVudCBpcyBzaG93biwgaXRzIHBhcmVudCBpcyBjaGFuZ2VkLiBIaWRpbmcgdGhlIG92ZXJsYXkKKyAqIHJlc3RvcmVzIGl0cyBvcmlnaW5hbCBwYXJlbnRhZ2UuCisgKgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworICBpZiAodHIuaXNIZWFkbGVzcykKKyAgICByZXR1cm4ge307CisKKyAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OworCisgIC8qKgorICAgKiBDcmVhdGVzIGEgbmV3IG92ZXJsYXkgZWxlbWVudC4gSXQgd2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBzaG93bi4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHtIVE1MRGl2RWxlbWVudH0KKyAgICovCisgIHZhciBPdmVybGF5ID0gdHIudWkuYi5kZWZpbmUoJ292ZXJsYXknKTsKKworICBPdmVybGF5LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZSwKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBvdmVybGF5IGVsZW1lbnQuCisgICAgICovCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdvdmVybGF5Jyk7CisKKyAgICAgIHRoaXMucGFyZW50RWxfID0gdGhpcy5vd25lckRvY3VtZW50LmJvZHk7CisKKyAgICAgIHRoaXMudmlzaWJsZV8gPSBmYWxzZTsKKyAgICAgIHRoaXMudXNlckNhbkNsb3NlXyA9IHRydWU7CisKKyAgICAgIHRoaXMub25LZXlEb3duXyA9IHRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5vbkNsaWNrXyA9IHRoaXMub25DbGlja18uYmluZCh0aGlzKTsKKyAgICAgIHRoaXMub25Gb2N1c0luXyA9IHRoaXMub25Gb2N1c0luXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5vbkRvY3VtZW50Q2xpY2tfID0gdGhpcy5vbkRvY3VtZW50Q2xpY2tfLmJpbmQodGhpcyk7CisgICAgICB0aGlzLm9uQ2xvc2VfID0gdGhpcy5vbkNsb3NlXy5iaW5kKHRoaXMpOworCisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2libGUtY2hhbmdlJywKKyAgICAgICAgICB0ci51aS5iLk92ZXJsYXkucHJvdG90eXBlLm9uVmlzaWJsZUNoYW5nZV8uYmluZCh0aGlzKSwgdHJ1ZSk7CisKKyAgICAgIC8vIFNldHVwIHRoZSBzaGFkb3cgcm9vdAorICAgICAgdmFyIGNyZWF0ZVNoYWRvd1Jvb3QgPSB0aGlzLmNyZWF0ZVNoYWRvd1Jvb3QgfHwKKyAgICAgICAgICB0aGlzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Q7CisgICAgICB0aGlzLnNoYWRvd18gPSBjcmVhdGVTaGFkb3dSb290LmNhbGwodGhpcyk7CisgICAgICB0aGlzLnNoYWRvd18uYXBwZW5kQ2hpbGQodHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjb3ZlcmxheS10ZW1wbGF0ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRISVNfRE9DKSk7CisKKyAgICAgIHRoaXMuY2xvc2VCdG5fID0gdGhpcy5zaGFkb3dfLnF1ZXJ5U2VsZWN0b3IoJ2Nsb3NlLWJ1dHRvbicpOworICAgICAgdGhpcy5jbG9zZUJ0bl8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9uQ2xvc2VfKTsKKworICAgICAgdGhpcy5zaGFkb3dfCisgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ292ZXJsYXktZnJhbWUnKQorICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25DbGlja18pOworCisgICAgICB0aGlzLm9ic2VydmVyXyA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKAorICAgICAgICAgIHRoaXMuZGlkQnV0dG9uQmFyTXV0YXRlXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMub2JzZXJ2ZXJfLm9ic2VydmUodGhpcy5zaGFkb3dfLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi1iYXInKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjaGlsZExpc3Q6IHRydWUgfSk7CisKKyAgICAgIC8vIHRpdGxlIGlzIGEgdmFyaWFibGUgb24gcmVndWxhciBIVE1MRWxlbWVudHMuIEhvd2V2ZXIsIHdlIHdhbnQgdG8KKyAgICAgIC8vIHVzZSBpdCBmb3Igc29tZXRoaW5nIG1vcmUgdXNlZnVsLgorICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KAorICAgICAgICAgIHRoaXMsICd0aXRsZScsIHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcigndGl0bGUnKS50ZXh0Q29udGVudDsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHRpdGxlKSB7CisgICAgICAgICAgICAgIHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCd0aXRsZScpLnRleHRDb250ZW50ID0gdGl0bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSk7CisgICAgfSwKKworICAgIHNldCB1c2VyQ2FuQ2xvc2UodXNlckNhbkNsb3NlKSB7CisgICAgICB0aGlzLnVzZXJDYW5DbG9zZV8gPSB1c2VyQ2FuQ2xvc2U7CisgICAgICB0aGlzLmNsb3NlQnRuXy5zdHlsZS5kaXNwbGF5ID0KKyAgICAgICAgICB1c2VyQ2FuQ2xvc2UgPyAnYmxvY2snIDogJ25vbmUnOworICAgIH0sCisKKyAgICBnZXQgYnV0dG9ucygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcignYnV0dG9uLWJhcicpOworICAgIH0sCisKKyAgICBnZXQgdmlzaWJsZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnZpc2libGVfOworICAgIH0sCisKKyAgICBzZXQgdmlzaWJsZShuZXdWYWx1ZSkgeworICAgICAgaWYgKHRoaXMudmlzaWJsZV8gPT09IG5ld1ZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMudmlzaWJsZV8gPSBuZXdWYWx1ZTsKKyAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ3Zpc2libGUtY2hhbmdlJyk7CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSk7CisgICAgfSwKKworICAgIG9uVmlzaWJsZUNoYW5nZV86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy52aXNpYmxlXyA/IHRoaXMuc2hvd18oKSA6IHRoaXMuaGlkZV8oKTsKKyAgICB9LAorCisgICAgc2hvd186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5wYXJlbnRFbF8uYXBwZW5kQ2hpbGQodGhpcyk7CisKKyAgICAgIGlmICh0aGlzLnVzZXJDYW5DbG9zZV8pIHsKKyAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5vbktleURvd25fLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkRvY3VtZW50Q2xpY2tfLmJpbmQodGhpcykpOworICAgICAgfQorCisgICAgICB0aGlzLnBhcmVudEVsXy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5vbkZvY3VzSW5fKTsKKyAgICAgIHRoaXMudGFiSW5kZXggPSAwOworCisgICAgICAvLyBGb2N1cyB0aGUgZmlyc3QgdGhpbmcgd2UgZmluZCB0aGF0IG1ha2VzIHNlbnNlLiAoU2tpcCB0aGUgY2xvc2UgYnV0dG9uCisgICAgICAvLyBhcyBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgYXMgdGhlIGZpcnN0IHRoaW5nIHRvIGZvY3VzLikKKyAgICAgIHZhciBmb2N1c0VsID0gdW5kZWZpbmVkOworICAgICAgdmFyIGVsTGlzdCA9IHRoaXMucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBpbnB1dCwgbGlzdCwgc2VsZWN0LCBhJyk7CisgICAgICBpZiAoZWxMaXN0Lmxlbmd0aCA+IDApIHsKKyAgICAgICAgaWYgKGVsTGlzdFswXSA9PT0gdGhpcy5jbG9zZUJ0bl8pIHsKKyAgICAgICAgICBpZiAoZWxMaXN0Lmxlbmd0aCA+IDEpCisgICAgICAgICAgICBmb2N1c0VsID0gZWxMaXN0WzFdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGZvY3VzRWwgPSBlbExpc3RbMF07CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGlmIChmb2N1c0VsID09PSB1bmRlZmluZWQpCisgICAgICAgIGZvY3VzRWwgPSB0aGlzOworICAgICAgZm9jdXNFbC5mb2N1cygpOworICAgIH0sCisKKyAgICBoaWRlXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnBhcmVudEVsXy5yZW1vdmVDaGlsZCh0aGlzKTsKKworICAgICAgdGhpcy5wYXJlbnRFbF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHRoaXMub25Gb2N1c0luXyk7CisKKyAgICAgIGlmICh0aGlzLmNsb3NlQnRuXykKKyAgICAgICAgdGhpcy5jbG9zZUJ0bl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm9uQ2xvc2VfKTsKKworICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMub25LZXlEb3duXyk7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25Eb2N1bWVudENsaWNrXyk7CisgICAgfSwKKworICAgIG9uQ2xvc2VfOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTsKKyAgICAgIGlmICgoZS50eXBlICE9ICdrZXlkb3duJykgfHwKKyAgICAgICAgICAoZS50eXBlID09PSAna2V5ZG93bicgJiYgZS5rZXlDb2RlID09PSAyNykpCisgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ2Nsb3NlY2xpY2snKTsKKyAgICB9LAorCisgICAgb25Gb2N1c0luXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKGUudGFyZ2V0ID09PSB0aGlzKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aGlzLmZvY3VzKCk7IH0sIDApOworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICB9LAorCisgICAgZGlkQnV0dG9uQmFyTXV0YXRlXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIGhhc0J1dHRvbnMgPSB0aGlzLmJ1dHRvbnMuY2hpbGRyZW4ubGVuZ3RoID4gMDsKKyAgICAgIGlmIChoYXNCdXR0b25zKQorICAgICAgICB0aGlzLnNoYWRvd18ucXVlcnlTZWxlY3RvcignYnV0dG9uLWJhcicpLnN0eWxlLmRpc3BsYXkgPSB1bmRlZmluZWQ7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMuc2hhZG93Xy5xdWVyeVNlbGVjdG9yKCdidXR0b24tYmFyJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICB9LAorCisgICAgb25LZXlEb3duXzogZnVuY3Rpb24oZSkgeworICAgICAgLy8gRGlzYWxsb3cgc2hpZnQtdGFiIGJhY2sgdG8gYW5vdGhlciBlbGVtZW50LgorICAgICAgaWYgKGUua2V5Q29kZSA9PT0gOSAmJiAgLy8gdGFiCisgICAgICAgICAgZS5zaGlmdEtleSAmJgorICAgICAgICAgIGUudGFyZ2V0ID09PSB0aGlzKSB7CisgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBpZiAoZS5rZXlDb2RlICE9PSAyNykgIC8vIGVzY2FwZQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMub25DbG9zZV8oZSk7CisgICAgfSwKKworICAgIG9uQ2xpY2tfOiBmdW5jdGlvbihlKSB7CisgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIH0sCisKKyAgICBvbkRvY3VtZW50Q2xpY2tfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMudXNlckNhbkNsb3NlXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLm9uQ2xvc2VfKGUpOworICAgIH0KKyAgfTsKKworICBPdmVybGF5LnNob3dFcnJvciA9IGZ1bmN0aW9uKG1zZywgb3B0X2VycikgeworICAgIHZhciBvID0gbmV3IE92ZXJsYXkoKTsKKyAgICBvLnRpdGxlID0gJ0Vycm9yJzsKKyAgICBvLnRleHRDb250ZW50ID0gbXNnOworICAgIGlmIChvcHRfZXJyKSB7CisgICAgICB2YXIgZSA9IHRyLmIubm9ybWFsaXplRXhjZXB0aW9uKG9wdF9lcnIpOworCisgICAgICB2YXIgc3RhY2tEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTsKKyAgICAgIHN0YWNrRGl2LnRleHRDb250ZW50ID0gZS5zdGFjazsKKyAgICAgIHN0YWNrRGl2LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzhweCc7CisgICAgICBzdGFja0Rpdi5zdHlsZS5tYXJnaW4gPSAwOworICAgICAgby5hcHBlbmRDaGlsZChzdGFja0Rpdik7CisgICAgfQorICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CisgICAgYi50ZXh0Q29udGVudCA9ICdPSyc7CisgICAgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeworICAgICAgby52aXNpYmxlID0gZmFsc2U7CisgICAgfSk7CisgICAgby5idXR0b25zLmFwcGVuZENoaWxkKGIpOworICAgIG8udmlzaWJsZSA9IHRydWU7CisgICAgcmV0dXJuIG87CisgIH0KKworICByZXR1cm4geworICAgIE92ZXJsYXk6IE92ZXJsYXkKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvb3ZlcmxheV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvb3ZlcmxheV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VhNTc2YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9vdmVybGF5X3Rlc3QuaHRtbApAQCAtMCwwICsxLDEyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2Uvb3ZlcmxheS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBhZGRTaG93QnV0dG9uRm9yRGlhbG9nKGRsZykgeworICAgIHZhciBidG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICBidG4udGV4dENvbnRlbnQgPSAnTGF1bmNoIE92ZXJsYXknOworICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIGRsZy52aXNpYmxlID0gdHJ1ZTsKKyAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgfSk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYnRuKTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VCdXR0b24odGl0bGUpIHsKKyAgICB2YXIgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CisgICAgYnRuLnRleHRDb250ZW50ID0gdGl0bGU7CisgICAgcmV0dXJuIGJ0bjsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VDbG9zZUJ1dHRvbihkbGcpIHsKKyAgICB2YXIgYnRuID0gbWFrZUJ1dHRvbignY2xvc2UnKTsKKyAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CisgICAgICBkbGcub25DbG9zZV8oZSk7CisgICAgfSk7CisgICAgcmV0dXJuIGJ0bjsKKyAgfQorCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICBkbGcuY2xhc3NMaXN0LmFkZCgnZXhhbXBsZS1vdmVybGF5Jyk7CisgICAgZGxnLnRpdGxlID0gJ0V4YW1wbGVPdmVybGF5JzsKKyAgICBkbGcuaW5uZXJIVE1MID0gJ2hlbGxvJzsKKyAgICBkbGcuYnV0dG9ucy5hcHBlbmRDaGlsZChtYWtlQnV0dG9uKCdpIGFtIGEgYnV0dG9uJykpOworICAgIGRsZy5idXR0b25zLmFwcGVuZENoaWxkKG1ha2VDbG9zZUJ1dHRvbihkbGcpKTsKKyAgICBkbGcuYnV0dG9ucy5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZVNwYW4oCisgICAgICAgIHt0ZXh0Q29udGVudDogJ2kgYW0gYSBzcGFuJ30pKTsKKyAgICBhZGRTaG93QnV0dG9uRm9yRGlhbG9nLmNhbGwodGhpcywgZGxnKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfbm9CdXR0b25zJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICBkbGcuY2xhc3NMaXN0LmFkZCgnZXhhbXBsZS1vdmVybGF5Jyk7CisgICAgZGxnLnRpdGxlID0gJ0V4YW1wbGVPdmVybGF5JzsKKyAgICBkbGcuaW5uZXJIVE1MID0gJ2hlbGxvJzsKKyAgICBhZGRTaG93QnV0dG9uRm9yRGlhbG9nLmNhbGwodGhpcywgZGxnKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfZGlzYWJsZVVzZXJDbG9zZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkbGcgPSBuZXcgdHIudWkuYi5PdmVybGF5KCk7CisgICAgZGxnLmNsYXNzTGlzdC5hZGQoJ2V4YW1wbGUtb3ZlcmxheScpOworICAgIGRsZy51c2VyQ2FuQ2xvc2UgPSBmYWxzZTsKKyAgICBkbGcudGl0bGUgPSAnVW5jbG9zYWJsZSc7CisgICAgZGxnLmlubmVySFRNTCA9ICdUaGlzIGhhcyBubyBjbG9zZSBYIGJ1dHRvbi4nOworICAgIGRsZy5idXR0b25zLmFwcGVuZENoaWxkKG1ha2VDbG9zZUJ1dHRvbihkbGcpKTsKKyAgICBhZGRTaG93QnV0dG9uRm9yRGlhbG9nLmNhbGwodGhpcywgZGxnKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVUYWxsJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICBkbGcudGl0bGUgPSAnVGFsbENvbnRlbnQnOworICAgIHZhciBjb250ZW50RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBjb250ZW50RWwuc3R5bGUub3ZlcmZsb3dZID0gJ2F1dG8nOworICAgIGRsZy5hcHBlbmRDaGlsZChjb250ZW50RWwpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgZWwudGV4dENvbnRlbnQgPSAnbGluZSAnICsgaTsKKyAgICAgIGNvbnRlbnRFbC5hcHBlbmRDaGlsZChlbCk7CisgICAgfQorCisKKyAgICBkbGcuYnV0dG9ucy5hcHBlbmRDaGlsZChtYWtlQnV0dG9uKCdpIGFtIGEgYnV0dG9uJykpOworICAgIGFkZFNob3dCdXR0b25Gb3JEaWFsb2cuY2FsbCh0aGlzLCBkbGcpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZVRhbGxXaXRoTWFueURpcmVjdENoaWxkcmVuJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICBkbGcudGl0bGUgPSAnVGFsbENvbnRlbnQnOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKKyAgICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgZWwuc3R5bGUud2Via2l0RmxleCA9ICcxIDAgYXV0byc7CisgICAgICBlbC50ZXh0Q29udGVudCA9ICdsaW5lICcgKyBpOworICAgICAgZGxnLmFwcGVuZENoaWxkKGVsKTsKKyAgICB9CisKKyAgICBkbGcuYnV0dG9ucy5hcHBlbmRDaGlsZChtYWtlQnV0dG9uKCdpIGFtIGEgYnV0dG9uJykpOworICAgIGFkZFNob3dCdXR0b25Gb3JEaWFsb2cuY2FsbCh0aGlzLCBkbGcpOworICB9KTsKKworICB0ZXN0KCdjbG9zZWNsaWNrRXZlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGxnID0gbmV3IHRyLnVpLmIuT3ZlcmxheSgpOworICAgIGRsZy50aXRsZSA9ICdUZXN0IGNsb3NlY2xpY2sgZXZlbnQnOworICAgIHZhciBjbG9zZUJ0biA9IG1ha2VDbG9zZUJ1dHRvbihkbGcpOworICAgIGRsZy5idXR0b25zLmFwcGVuZENoaWxkKGNsb3NlQnRuKTsKKworICAgIHZhciBjbG9zZUNsaWNrZWQgPSBmYWxzZTsKKyAgICBkbGcuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2VjbGljaycsIGZ1bmN0aW9uKCkgeworICAgICAgY2xvc2VDbGlja2VkID0gdHJ1ZTsKKyAgICB9KTsKKworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIGZ1bmN0aW9uIHByZXNzQ2xvc2UoKSB7CisgICAgICAgIGNsb3NlQnRuLmNsaWNrKCk7CisgICAgICAgIGlmIChjbG9zZUNsaWNrZWQpCisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignY2xvc2VjbGljayBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCcpKTsKKyAgICAgIH0KKyAgICAgIGRsZy52aXNpYmxlID0gdHJ1ZTsKKyAgICAgIHNldFRpbWVvdXQocHJlc3NDbG9zZSwgNjApOworICAgIH0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvcGllX2NoYXJ0LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9waWVfY2hhcnQuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvcGllX2NoYXJ0LmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3BpZV9jaGFydC5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9waWVfY2hhcnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9waWVfY2hhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmE0MmYyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3BpZV9jaGFydC5odG1sCkBAIC0wLDAgKzEsMjc3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kMy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jaGFydF9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvYmFzZS9waWVfY2hhcnQuY3NzIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKyAgdmFyIENoYXJ0QmFzZSA9IHRyLnVpLmIuQ2hhcnRCYXNlOworICB2YXIgZ2V0Q29sb3JPZktleSA9IHRyLnVpLmIuZ2V0Q29sb3JPZktleTsKKworICB2YXIgTUlOX1JBRElVUyA9IDEwMDsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgUGllQ2hhcnQgPSB0ci51aS5iLmRlZmluZSgncGllLWNoYXJ0JywgQ2hhcnRCYXNlKTsKKworICBQaWVDaGFydC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBDaGFydEJhc2UucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgQ2hhcnRCYXNlLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMpOworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdwaWUtY2hhcnQnKTsKKworICAgICAgdGhpcy5kYXRhXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuc2VyaWVzS2V5c18gPSB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBjaGFydEFyZWFTZWwgPSBkMy5zZWxlY3QodGhpcy5jaGFydEFyZWFFbGVtZW50KTsKKyAgICAgIHZhciBwaWVHcm91cFNlbCA9IGNoYXJ0QXJlYVNlbC5hcHBlbmQoJ2cnKQorICAgICAgICAuYXR0cignY2xhc3MnLCAncGllLWdyb3VwJyk7CisgICAgICB0aGlzLnBpZUdyb3VwXyA9IHBpZUdyb3VwU2VsLm5vZGUoKTsKKworICAgICAgdGhpcy5wYXRoc0dyb3VwXyA9IHBpZUdyb3VwU2VsLmFwcGVuZCgnZycpCisgICAgICAgIC5hdHRyKCdjbGFzcycsICdwYXRocycpCisgICAgICAgIC5ub2RlKCk7CisgICAgICB0aGlzLmxhYmVsc0dyb3VwXyA9IHBpZUdyb3VwU2VsLmFwcGVuZCgnZycpCisgICAgICAgIC5hdHRyKCdjbGFzcycsICdsYWJlbHMnKQorICAgICAgICAubm9kZSgpOworICAgICAgdGhpcy5saW5lc0dyb3VwXyA9IHBpZUdyb3VwU2VsLmFwcGVuZCgnZycpCisgICAgICAgIC5hdHRyKCdjbGFzcycsICdsaW5lcycpCisgICAgICAgIC5ub2RlKCk7CisgICAgfSwKKworICAgIGdldCBkYXRhKCkgeworICAgICAgcmV0dXJuIHRoaXMuZGF0YV87CisgICAgfSwKKworCisgICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheX0gZGF0YSBEYXRhIGZvciB0aGUgY2hhcnQsIHdoZXJlIGVhY2ggZWxlbWVudCBpbiB0aGUgYXJyYXkKKyAgICAgKiBtdXN0IGJlIG9mIHRoZSBmb3JtIHtsYWJlbDogc3RyLCB2YWx1ZTogbnVtYmVyfS4KKyAgICAgKi8KKyAgICBzZXQgZGF0YShkYXRhKSB7CisgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGxhYmVsIHZhbHVlcyBpbiB0aGUgZGF0YSBzZXQuIEUuZy4gZnJvbQorICAgICAgICAvLyAgIFt7bGFiZWw6ICdhJywgLi4ufSwge2xhYmVsOiAnYicsIC4uLn1dCisgICAgICAgIC8vIHdlIHdvdWxkIGNvbW1wdXRlIFsnYScsICd5J10uIFRoZXNlIGJlY29tZSB0aGUgc2VyaWVzIGtleXMuCisgICAgICAgIHZhciBzZXJpZXNLZXlzID0gW107CisgICAgICAgIHZhciBzZWVuU2VyaWVzS2V5cyA9IHt9OworICAgICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24oZCkgeworICAgICAgICAgIHZhciBrID0gZC5sYWJlbDsKKyAgICAgICAgICBpZiAoc2VlblNlcmllc0tleXNba10pCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xhYmVsICcgKyBrICsgJyBoYXMgYmVlbiB1c2VkIGFscmVhZHknKTsKKyAgICAgICAgICBzZXJpZXNLZXlzLnB1c2goayk7CisgICAgICAgICAgc2VlblNlcmllc0tleXNba10gPSB0cnVlOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgICAgdGhpcy5zZXJpZXNLZXlzXyA9IHNlcmllc0tleXM7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLnNlcmllc0tleXNfID0gdW5kZWZpbmVkOworICAgICAgfQorICAgICAgdGhpcy5kYXRhXyA9IGRhdGE7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgbWFyZ2luKCkgeworICAgICAgdmFyIG1hcmdpbiA9IHt0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGxlZnQ6IDB9OworICAgICAgaWYgKHRoaXMuY2hhcnRUaXRsZV8pCisgICAgICAgIG1hcmdpbi50b3AgKz0gNDA7CisgICAgICByZXR1cm4gbWFyZ2luOworICAgIH0sCisKKyAgICBnZXRNaW5TaXplOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisKKyAgICAgIHZhciBsYWJlbFNlbCA9IGQzLnNlbGVjdCh0aGlzLmxhYmVsc0dyb3VwXykuc2VsZWN0QWxsKCcubGFiZWwnKTsKKyAgICAgIHZhciBtYXhMYWJlbFdpZHRoID0gLU51bWJlci5NQVhfVkFMVUU7CisgICAgICB2YXIgbGVmdFRleHRIZWlnaHRTdW0gPSAwOworICAgICAgdmFyIHJpZ2h0VGV4dEhlaWdodFN1bSA9IDA7CisgICAgICBsYWJlbFNlbC5lYWNoKGZ1bmN0aW9uKGwpIHsKKyAgICAgICAgdmFyIHIgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBtYXhMYWJlbFdpZHRoID0gTWF0aC5tYXgobWF4TGFiZWxXaWR0aCwgci53aWR0aCArIDMyKTsKKyAgICAgICAgaWYgKHRoaXMuc3R5bGUudGV4dEFuY2hvciA9PSAnZW5kJykgeworICAgICAgICAgIGxlZnRUZXh0SGVpZ2h0U3VtICs9IHIuaGVpZ2h0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJpZ2h0VGV4dEhlaWdodFN1bSArPSByLmhlaWdodDsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIHZhciB0aXRsZVdpZHRoID0gdGhpcy5xdWVyeVNlbGVjdG9yKAorICAgICAgICAgICcjdGl0bGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKKyAgICAgIHZhciBtYXJnaW4gPSB0aGlzLm1hcmdpbjsKKyAgICAgIHZhciBtYXJnaW5XaWR0aCA9IG1hcmdpbi5sZWZ0ICsgbWFyZ2luLnJpZ2h0OworICAgICAgdmFyIG1hcmdpbkhlaWdodCA9IG1hcmdpbi50b3AgKyBtYXJnaW4uYm90dG9tOworICAgICAgcmV0dXJuIHsKKyAgICAgICAgd2lkdGg6IE1hdGgubWF4KDIgKiBNSU5fUkFESVVTICsgMiAqIG1heExhYmVsV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVdpZHRoICogMS4xKSArIG1hcmdpbldpZHRoLAorICAgICAgICBoZWlnaHQ6IG1hcmdpbkhlaWdodCArIE1hdGgubWF4KDIgKiBNSU5fUkFESVVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRUZXh0SGVpZ2h0U3VtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0VGV4dEhlaWdodFN1bSkgKiAxLjI1CisgICAgICB9OworICAgIH0sCisKKworICAgIGdldExlZ2VuZEtleXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIFRoaXMgY2xhc3MgY3JlYXRlcyBpdHMgb3duIGxlZ2VuZCwgaW5zdGVhZCBvZiB1c2luZyBDaGFydEJhc2UuCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICB1cGRhdGVTY2FsZXNfOiBmdW5jdGlvbih3aWR0aCwgaGVpZ2h0KSB7CisgICAgICBpZiAodGhpcy5kYXRhXyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICBDaGFydEJhc2UucHJvdG90eXBlLnVwZGF0ZUNvbnRlbnRzXy5jYWxsKHRoaXMpOworICAgICAgaWYgKCF0aGlzLmRhdGFfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciB3aWR0aCA9IHRoaXMuY2hhcnRBcmVhU2l6ZS53aWR0aDsKKyAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmNoYXJ0QXJlYVNpemUuaGVpZ2h0OworICAgICAgdmFyIHJhZGl1cyA9IE1hdGgubWF4KE1JTl9SQURJVVMsIE1hdGgubWluKHdpZHRoLCBoZWlnaHQgKiAwLjk1KSAvIDIpOworCisgICAgICBkMy5zZWxlY3QodGhpcy5waWVHcm91cF8pLmF0dHIoCisgICAgICAgICAgJ3RyYW5zZm9ybScsCisgICAgICAgICAgJ3RyYW5zbGF0ZSgnICsgd2lkdGggLyAyICsgJywnICsgaGVpZ2h0IC8gMiArICcpJyk7CisKKyAgICAgIC8vIEJpbmQgdGhlIHBpZSBsYXlvdXQgdG8gaXRzIGRhdGEKKyAgICAgIHZhciBwaWVMYXlvdXQgPSBkMy5sYXlvdXQucGllKCkKKyAgICAgICAgLnZhbHVlKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudmFsdWU7IH0pCisgICAgICAgIC5zb3J0KG51bGwpOworCisgICAgICB2YXIgcGllUGF0aHNTZWwgPSBkMy5zZWxlY3QodGhpcy5wYXRoc0dyb3VwXykKKyAgICAgICAgICAuZGF0dW0odGhpcy5kYXRhXykKKyAgICAgICAgICAuc2VsZWN0QWxsKCdwYXRoJykKKyAgICAgICAgICAuZGF0YShwaWVMYXlvdXQpOworCisgICAgICBmdW5jdGlvbiBtaWRBbmdsZShkKSB7CisgICAgICAgIHJldHVybiBkLnN0YXJ0QW5nbGUgKyAoZC5lbmRBbmdsZSAtIGQuc3RhcnRBbmdsZSkgLyAyOworICAgICAgfQorCisgICAgICB2YXIgcGF0aHNBcmMgPSBkMy5zdmcuYXJjKCkKKyAgICAgICAgLmlubmVyUmFkaXVzKDApCisgICAgICAgIC5vdXRlclJhZGl1cyhyYWRpdXMgLSAzMCk7CisKKyAgICAgIHZhciB2YWx1ZUxhYmVsQXJjID0gZDMuc3ZnLmFyYygpCisgICAgICAgIC5pbm5lclJhZGl1cyhyYWRpdXMgLSAxMDApCisgICAgICAgIC5vdXRlclJhZGl1cyhyYWRpdXMgLSAzMCk7CisKKyAgICAgIHZhciBsaW5lQmVnaW5BcmMgPSBkMy5zdmcuYXJjKCkKKyAgICAgICAgLmlubmVyUmFkaXVzKHJhZGl1cyAtIDUwKQorICAgICAgICAub3V0ZXJSYWRpdXMocmFkaXVzIC0gNTApOworCisgICAgICB2YXIgbGluZUVuZEFyYyA9IGQzLnN2Zy5hcmMoKQorICAgICAgICAuaW5uZXJSYWRpdXMocmFkaXVzKQorICAgICAgICAub3V0ZXJSYWRpdXMocmFkaXVzKTsKKworICAgICAgLy8gUGF0aHMuCisgICAgICBwaWVQYXRoc1NlbC5lbnRlcigpLmFwcGVuZCgncGF0aCcpCisgICAgICAgIC5hdHRyKCdjbGFzcycsICdhcmMnKQorICAgICAgICAuYXR0cignZmlsbCcsIGZ1bmN0aW9uKGQsIGkpIHsKKyAgICAgICAgICAgIHZhciBvcmlnRGF0YSA9IHRoaXMuZGF0YV9baV07CisgICAgICAgICAgICB2YXIgaGlnaGxpZ2h0ZWQgPSAob3JpZ0RhdGEubGFiZWwgPT09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SGlnaGxpZ2h0ZWRMZWdlbmRLZXkpOworICAgICAgICAgICAgcmV0dXJuIGdldENvbG9yT2ZLZXkob3JpZ0RhdGEubGFiZWwsIGhpZ2hsaWdodGVkKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpCisgICAgICAgIC5hdHRyKCdkJywgcGF0aHNBcmMpCisgICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbihkLCBpKSB7CisgICAgICAgICAgICB2YXIgb3JpZ0RhdGEgPSB0aGlzLmRhdGFfW2ldOworICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IHRyLmIuRXZlbnQoJ2l0ZW0tY2xpY2snKTsKKyAgICAgICAgICAgIGV2ZW50LmRhdGEgPSBvcmlnRGF0YTsKKyAgICAgICAgICAgIGV2ZW50LmluZGV4ID0gaTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICAgICAgICBkMy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpCisgICAgICAgIC5vbignbW91c2VlbnRlcicsIGZ1bmN0aW9uKGQsIGkpIHsKKyAgICAgICAgICAgIHZhciBvcmlnRGF0YSA9IHRoaXMuZGF0YV9baV07CisgICAgICAgICAgICB0aGlzLnB1c2hUZW1wSGlnaGxpZ2h0ZWRMZWdlbmRLZXkob3JpZ0RhdGEubGFiZWwpOworICAgICAgICAgIH0uYmluZCh0aGlzKSkKKyAgICAgICAgLm9uKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24oZCwgaSkgeworICAgICAgICAgICAgdmFyIG9yaWdEYXRhID0gdGhpcy5kYXRhX1tpXTsKKyAgICAgICAgICAgIHRoaXMucG9wVGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5KG9yaWdEYXRhLmxhYmVsKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworCisgICAgICAvLyBWYWx1ZSBsYWJlbHMuCisgICAgICBwaWVQYXRoc1NlbC5lbnRlcigpLmFwcGVuZCgndGV4dCcpCisgICAgICAgIC5hdHRyKCdjbGFzcycsICdhcmMtdGV4dCcpCisgICAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBmdW5jdGlvbihkKSB7CisgICAgICAgICAgICByZXR1cm4gJ3RyYW5zbGF0ZSgnICsgdmFsdWVMYWJlbEFyYy5jZW50cm9pZChkKSArICcpJzsKKyAgICAgICAgICB9KQorICAgICAgICAuYXR0cignZHknLCAnLjM1ZW0nKQorICAgICAgICAuc3R5bGUoJ3RleHQtYW5jaG9yJywgJ21pZGRsZScpCisgICAgICAgIC50ZXh0KGZ1bmN0aW9uKGQsIGkpIHsKKyAgICAgICAgICAgIHZhciBvcmlnRGF0YSA9IHRoaXMuZGF0YV9baV07CisgICAgICAgICAgICBpZiAob3JpZ0RhdGEudmFsdWVUZXh0ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgIHJldHVybiAnJzsKKworICAgICAgICAgICAgaWYgKGQuZW5kQW5nbGUgLSBkLnN0YXJ0QW5nbGUgPCAwLjQpCisgICAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgICAgIHJldHVybiBvcmlnRGF0YS52YWx1ZVRleHQ7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKworICAgICAgcGllUGF0aHNTZWwuZXhpdCgpLnJlbW92ZSgpOworCisgICAgICAvLyBMYWJlbHMuCisgICAgICB2YXIgbGFiZWxTZWwgPSBkMy5zZWxlY3QodGhpcy5sYWJlbHNHcm91cF8pLnNlbGVjdEFsbCgnLmxhYmVsJykKKyAgICAgICAgICAuZGF0YShwaWVMYXlvdXQodGhpcy5kYXRhXykpOworICAgICAgbGFiZWxTZWwuZW50ZXIoKQorICAgICAgICAgIC5hcHBlbmQoJ3RleHQnKQorICAgICAgICAgIC5hdHRyKCdjbGFzcycsICdsYWJlbCcpCisgICAgICAgICAgLmF0dHIoJ2R5JywgJy4zNWVtJyk7CisKKyAgICAgIGxhYmVsU2VsLnRleHQoZnVuY3Rpb24oZCkgeworICAgICAgICBpZiAoZC5kYXRhLmxhYmVsLmxlbmd0aCA+IDQwKQorICAgICAgICAgIHJldHVybiBkLmRhdGEubGFiZWwuc3Vic3RyKDAsIDQwKSArICcuLi4nOworICAgICAgICByZXR1cm4gZC5kYXRhLmxhYmVsOworICAgICAgfSk7CisgICAgICBsYWJlbFNlbC5hdHRyKCd0cmFuc2Zvcm0nLCBmdW5jdGlvbihkKSB7CisgICAgICAgIHZhciBwb3MgPSBsaW5lRW5kQXJjLmNlbnRyb2lkKGQpOworICAgICAgICBwb3NbMF0gPSByYWRpdXMgKiAobWlkQW5nbGUoZCkgPCBNYXRoLlBJID8gMSA6IC0xKTsKKyAgICAgICAgcmV0dXJuICd0cmFuc2xhdGUoJyArIHBvcyArICcpJzsKKyAgICAgIH0pOworICAgICAgbGFiZWxTZWwuc3R5bGUoJ3RleHQtYW5jaG9yJywgZnVuY3Rpb24oZCkgeworICAgICAgICByZXR1cm4gbWlkQW5nbGUoZCkgPCBNYXRoLlBJID8gJ3N0YXJ0JyA6ICdlbmQnOworICAgICAgfSk7CisKKyAgICAgIC8vIExpbmVzLgorICAgICAgdmFyIGxpbmVTZWwgPSBkMy5zZWxlY3QodGhpcy5saW5lc0dyb3VwXykuc2VsZWN0QWxsKCcubGluZScpCisgICAgICAgICAgLmRhdGEocGllTGF5b3V0KHRoaXMuZGF0YV8pKTsKKyAgICAgIGxpbmVTZWwuZW50ZXIoKQorICAgICAgICAuYXBwZW5kKCdwb2x5bGluZScpCisgICAgICAgIC5hdHRyKCdjbGFzcycsICdsaW5lJykKKyAgICAgICAgLmF0dHIoJ2R5JywgJy4zNWVtJyk7CisgICAgICBsaW5lU2VsLmF0dHIoJ3BvaW50cycsIGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgdmFyIHBvcyA9IGxpbmVFbmRBcmMuY2VudHJvaWQoZCk7CisgICAgICAgIHBvc1swXSA9IHJhZGl1cyAqIDAuOTUgKiAobWlkQW5nbGUoZCkgPCBNYXRoLlBJID8gMSA6IC0xKTsKKyAgICAgICAgcmV0dXJuIFtsaW5lQmVnaW5BcmMuY2VudHJvaWQoZCksIGxpbmVFbmRBcmMuY2VudHJvaWQoZCksIHBvc107CisgICAgICB9KTsKKyAgICB9LAorCisgICAgdXBkYXRlSGlnaGxpZ2h0XzogZnVuY3Rpb24oKSB7CisgICAgICBDaGFydEJhc2UucHJvdG90eXBlLnVwZGF0ZUhpZ2hsaWdodF8uY2FsbCh0aGlzKTsKKyAgICAgIC8vIFVwZGF0ZSBjb2xvciBvZiBwaWUgc2VnbWVudHMuCisgICAgICB2YXIgcGF0aHNHcm91cFNlbCA9IGQzLnNlbGVjdCh0aGlzLnBhdGhzR3JvdXBfKTsKKyAgICAgIHZhciB0aGF0ID0gdGhpczsKKyAgICAgIHBhdGhzR3JvdXBTZWwuc2VsZWN0QWxsKCcuYXJjJykuZWFjaChmdW5jdGlvbihkLCBpKSB7CisgICAgICAgIHZhciBvcmlnRGF0YSA9IHRoYXQuZGF0YV9baV07CisgICAgICAgIHZhciBoaWdobGlnaHRlZCA9IG9yaWdEYXRhLmxhYmVsID09IHRoYXQuY3VycmVudEhpZ2hsaWdodGVkTGVnZW5kS2V5OworICAgICAgICB2YXIgY29sb3IgPSBnZXRDb2xvck9mS2V5KG9yaWdEYXRhLmxhYmVsLCBoaWdobGlnaHRlZCk7CisgICAgICAgIHRoaXMuc3R5bGUuZmlsbCA9IGNvbG9yOworICAgICAgfSk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgUGllQ2hhcnQ6IFBpZUNoYXJ0CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3BpZV9jaGFydF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvcGllX2NoYXJ0X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTZhNWI2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3BpZV9jaGFydF90ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3BpZV9jaGFydC5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdzaW1wbGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2hhcnQgPSBuZXcgdHIudWkuYi5QaWVDaGFydCgpOworICAgIGNoYXJ0LndpZHRoID0gNDAwOworICAgIGNoYXJ0LmhlaWdodCA9IDIwMDsKKyAgICBhc3NlcnQuZXF1YWwoY2hhcnQuZ2V0QXR0cmlidXRlKCd3aWR0aCcpLCAnNDAwJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoYXJ0LmdldEF0dHJpYnV0ZSgnaGVpZ2h0JyksICcyMDAnKTsKKyAgICBjaGFydC5jaGFydFRpdGxlID0gJ0NoYXJ0IHRpdGxlJzsKKyAgICB2YXIgZGF0YSA9IFsKKyAgICAgIHtsYWJlbDogJ2EnLCB2YWx1ZTogMTAwfSwKKyAgICAgIHtsYWJlbDogJ2InLCB2YWx1ZTogMjAwfSwKKyAgICAgIHtsYWJlbDogJ2MnLCB2YWx1ZTogMzAwfQorICAgIF07CisgICAgY2hhcnQuZGF0YSA9IGRhdGE7CisgICAgY2hhcnQuaGlnaGxpZ2h0ZWRMZWdlbmRLZXkgPSAnYSc7CisgICAgY2hhcnQucHVzaFRlbXBIaWdobGlnaHRlZExlZ2VuZEtleSgnYicpOworICAgIGNoYXJ0LmhpZ2hsaWdodGVkTGVnZW5kS2V5ID0gJ2MnOworICAgIGFzc2VydC5lcXVhbChjaGFydC5jdXJyZW50SGlnaGxpZ2h0ZWRMZWdlbmRLZXksICdiJyk7CisgICAgY2hhcnQucG9wVGVtcEhpZ2hsaWdodGVkTGVnZW5kS2V5KCdiJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoYXJ0LmhpZ2hsaWdodGVkTGVnZW5kS2V5LCAnYycpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChjaGFydCk7CisgIH0pOworCisgIHRlc3QoJ3dpdGhWYWx1ZVRleHQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2hhcnQgPSBuZXcgdHIudWkuYi5QaWVDaGFydCgpOworICAgIGNoYXJ0LndpZHRoID0gNDAwOworICAgIGNoYXJ0LmhlaWdodCA9IDIwMDsKKyAgICBjaGFydC5jaGFydFRpdGxlID0gJ0NoYXJ0IHRpdGxlJzsKKyAgICB2YXIgZGF0YSA9IFsKKyAgICAgIHtsYWJlbDogJ2EnLCB2YWx1ZTogMTAwLCB2YWx1ZVRleHQ6ICcxMDBtcyd9LAorICAgICAge2xhYmVsOiAnYicsIHZhbHVlOiAyMDAsIHZhbHVlVGV4dDogJzIwMG1zJ30sCisgICAgICB7bGFiZWw6ICdjJywgdmFsdWU6IDMwMCwgdmFsdWVUZXh0OiAnMzAwbXMnfQorICAgIF07CisgICAgY2hhcnQuZGF0YSA9IGRhdGE7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNoYXJ0KTsKKyAgfSk7CisKKyAgdGVzdCgnY2xpY2tFdmVudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjaGFydCA9IG5ldyB0ci51aS5iLlBpZUNoYXJ0KCk7CisgICAgY2hhcnQud2lkdGggPSA0MDA7CisgICAgY2hhcnQuaGVpZ2h0ID0gMjAwOworICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOworICAgIHZhciBkYXRhID0gWworICAgICAge2xhYmVsOiAnYScsIHZhbHVlOiAxMDAsIGZvbzogNDJ9LAorICAgICAge2xhYmVsOiAnYicsIHZhbHVlOiAyMDAsIGZvbzogNDN9CisgICAgXTsKKyAgICBjaGFydC5kYXRhID0gZGF0YTsKKworICAgIHZhciBkaWRHZXRDbGljayA9IGZhbHNlOworICAgIGNoYXJ0LmFkZEV2ZW50TGlzdGVuZXIoJ2l0ZW0tY2xpY2snLCBmdW5jdGlvbihldmVudCkgeworICAgICAgYXNzZXJ0LmVxdWFsKGV2ZW50LmluZGV4LCAxKTsKKyAgICAgIGFzc2VydC5lcXVhbChldmVudC5kYXRhLmZvbywgNDMpOworICAgICAgZGlkR2V0Q2xpY2sgPSB0cnVlOworICAgIH0pOworCisgICAgdmFyIGFyYzAgPSBjaGFydC5xdWVyeVNlbGVjdG9yQWxsKCcucGF0aHMgPiBwYXRoJylbMV07CisgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KGFyYzAsICdjbGljaycpOworICAgIGFzc2VydC5pc1RydWUoZGlkR2V0Q2xpY2spOworICB9KTsKKworICB0ZXN0KCdsb3RzT2ZWYWx1ZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2hhcnQgPSBuZXcgdHIudWkuYi5QaWVDaGFydCgpOworICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOworICAgIHZhciBkYXRhID0gWworICAgICAge2xhYmVsOiAnYScsIHZhbHVlOiAxMDB9LAorICAgICAge2xhYmVsOiAnYmInLCB2YWx1ZTogMjAwfSwKKyAgICAgIHtsYWJlbDogJ2NjY2MnLCB2YWx1ZTogMzAwfSwKKyAgICAgIHtsYWJlbDogJ2RkJywgdmFsdWU6IDUwfSwKKyAgICAgIHtsYWJlbDogJ2VlZWVlJywgdmFsdWU6IDI1MH0sCisgICAgICB7bGFiZWw6ICdmZmZmZmZmJywgdmFsdWU6IDEyMH0sCisgICAgICB7bGFiZWw6ICdnZ2cnLCB2YWx1ZTogOTB9LAorICAgICAge2xhYmVsOiAnaGhoaCcsIHZhbHVlOiAxNzV9LAorICAgICAge2xhYmVsOiAndG9vbG9uZ2lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWknLCB2YWx1ZTogMzI1fSwKKyAgICAgIHtsYWJlbDogJ2pqampqaicsIHZhbHVlOiAxNDB9LAorICAgICAge2xhYmVsOiAna2tra2tra2trJywgdmFsdWU6IDE3MH0sCisgICAgICB7bGFiZWw6ICdsbGwnLCB2YWx1ZTogMjIwfQorICAgIF07CisgICAgY2hhcnQuZGF0YSA9IGRhdGE7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNoYXJ0KTsKKworICAgIHZhciBtaW5TaXplID0gY2hhcnQuZ2V0TWluU2l6ZSgpOworICAgIGNoYXJ0LnNldFNpemUoY2hhcnQuZ2V0TWluU2l6ZSgpKTsKKyAgfSk7CisKKyAgdGVzdCgnZGVuc2VWYWx1ZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2hhcnQgPSBuZXcgdHIudWkuYi5QaWVDaGFydCgpOworICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSAnQ2hhcnQgdGl0bGUnOworICAgIHZhciBkYXRhID0gWworICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICcyLjg1NW1zJywKKyAgICAgICAgdmFsdWU6IDIuODU0OTk5OTk5OTk5OTk3LAorICAgICAgICBsYWJlbDogJzE1Njk1OScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzkuOTQ5bXMnLAorICAgICAgICB2YWx1ZTogOS45NDg5OTk5OTk5OTk5OTgsCisgICAgICAgIGxhYmVsOiAnMTYxMzEnCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICc0Mi4zMTRtcycsCisgICAgICAgIHZhbHVlOiA0Mi4zMTQwMDAwMDAwMDA3MjUsCisgICAgICAgIGxhYmVsOiAnNTE1MTEnCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICczMS4wNjltcycsCisgICAgICAgIHZhbHVlOiAzMS4wNjkwMDAwMDAwMDAyOCwKKyAgICAgICAgbGFiZWw6ICdBdWRpb091dHB1dERldmljZScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzEuNDE4bXMnLAorICAgICAgICB2YWx1ZTogMS40MTgsCisgICAgICAgIGxhYmVsOiAnQnJvd3NlckJsb2NraW5nV29ya2VyMi81MDk1MScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzAuMDQ0bXMnLAorICAgICAgICB2YWx1ZTogMC4wNDQsCisgICAgICAgIGxhYmVsOiAnQnJvd3NlckJsb2NraW5nV29ya2VyMy81MDY5NScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzE4LjUyNm1zJywKKyAgICAgICAgdmFsdWU6IDE4LjUyNTk5OTk5OTk5OTkzLAorICAgICAgICBsYWJlbDogJ0Nocm9tZV9DaGlsZElPVGhyZWFkJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWVUZXh0OiAnMi44ODhtcycsCisgICAgICAgIHZhbHVlOiAyLjg4OCwKKyAgICAgICAgbGFiZWw6ICdDaHJvbWVfRmlsZVRocmVhZCcKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzAuMDY3bXMnLAorICAgICAgICB2YWx1ZTogMC4wNjcsCisgICAgICAgIGxhYmVsOiAnQ2hyb21lX0hpc3RvcnlUaHJlYWQnCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICcyNS40MjFtcycsCisgICAgICAgIHZhbHVlOiAyNS40MjEwMDAwMDAwMDAwNDYsCisgICAgICAgIGxhYmVsOiAnQ2hyb21lX0lPVGhyZWFkJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWVUZXh0OiAnMC4wMTltcycsCisgICAgICAgIHZhbHVlOiAwLjAxOSwKKyAgICAgICAgbGFiZWw6ICdDaHJvbWVfUHJvY2Vzc0xhdW5jaGVyVGhyZWFkJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWVUZXh0OiAnNjQzLjA4OG1zJywKKyAgICAgICAgdmFsdWU6IDY0My4wODc5OTk5OTk5OTUsCisgICAgICAgIGxhYmVsOiAnQ29tcG9zaXRvcicKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzQuMDVtcycsCisgICAgICAgIHZhbHVlOiA0LjA0OTk5OTk5OTk5OTk3MywKKyAgICAgICAgbGFiZWw6ICdDb21wb3NpdG9yUmFzdGVyV29ya2VyMS8yMjAzMScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzUwLjA0bXMnLAorICAgICAgICB2YWx1ZTogNTAuMDQwMDAwMDAwMDAwMTA2LAorICAgICAgICBsYWJlbDogJ0NyQnJvd3Nlck1haW4nCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICcxMjU2LjUxM21zJywKKyAgICAgICAgdmFsdWU6IDEyNTYuNTEzMDAwMDAwMDA0MiwKKyAgICAgICAgbGFiZWw6ICdDckdwdU1haW4nCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICc1NTAyLjE5NW1zJywKKyAgICAgICAgdmFsdWU6IDU1MDIuMTk0OTk5OTk5OTksCisgICAgICAgIGxhYmVsOiAnQ3JSZW5kZXJlck1haW4nCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICcxNS41NTNtcycsCisgICAgICAgIHZhbHVlOiAxNS41NTI5OTk5OTk5OTk4NjIsCisgICAgICAgIGxhYmVsOiAnRkZtcGVnRGVtdXhlcicKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzYzLjcwNm1zJywKKyAgICAgICAgdmFsdWU6IDYzLjcwNjAwMDAwMDAwMTUyNCwKKyAgICAgICAgbGFiZWw6ICdNZWRpYScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlVGV4dDogJzIuNzQybXMnLAorICAgICAgICB2YWx1ZTogMi43NDE5OTk5OTk5OTk5OTg3LAorICAgICAgICBsYWJlbDogJ1Bvd2VyU2F2ZUJsb2NrZXInCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZVRleHQ6ICcwLjExNW1zJywKKyAgICAgICAgdmFsdWU6IDAuMTE1MDAwMDAwMDAwMDAwMDUsCisgICAgICAgIGxhYmVsOiAnV2F0Y2hkb2cnCisgICAgICB9CisgICAgXTsKKyAgICBjaGFydC5kYXRhID0gZGF0YTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOworCisgICAgdmFyIG1pblNpemUgPSBjaGFydC5nZXRNaW5TaXplKCk7CisgICAgY2hhcnQuc2V0U2l6ZShjaGFydC5nZXRNaW5TaXplKCkpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvcG9seW1lcl91dGlscy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3BvbHltZXJfdXRpbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOGU3NDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3BvbHltZXJfdXRpbHMuaHRtbApAQCAtMCwwICsxLDg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgSGVscGVyIGNvZGUgZm9yIHdvcmtpbmcgd2l0aCBQb2x5bWVyLgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworCisgIE9iamVjdC5vYnNlcnZlKFBvbHltZXIuZWxlbWVudHMsIGNsZWFyUG9seW1lckVsZW1lbnRDYWNoZXMpOworCisgIHZhciBlbGVtZW50c0J5TmFtZSA9IHVuZGVmaW5lZDsKKyAgdmFyIGVsZW1lbnRzVGhhdEV4dGVuZCA9IHVuZGVmaW5lZDsKKyAgdmFyIGVsZW1lbnRTdWJjbGFzc2VzID0gdW5kZWZpbmVkOworICBmdW5jdGlvbiBjbGVhclBvbHltZXJFbGVtZW50Q2FjaGVzKCkgeworICAgIGVsZW1lbnRzQnlOYW1lID0ge307CisgICAgZWxlbWVudHNUaGF0RXh0ZW5kID0gdW5kZWZpbmVkOworICAgIGVsZW1lbnRTdWJjbGFzc2VzID0ge307CisgIH0KKworICBmdW5jdGlvbiBidWlsZEVsZW1lbnRNYXBzSWZOZWVkZWQoKSB7CisgICAgaWYgKGVsZW1lbnRzVGhhdEV4dGVuZCAhPT0gdW5kZWZpbmVkICYmIGVsZW1lbnRzQnlOYW1lICE9PSB1bmRlZmluZWQpCisgICAgICByZXR1cm47CisgICAgZWxlbWVudHNCeU5hbWUgPSB7fTsKKyAgICBlbGVtZW50c1RoYXRFeHRlbmQgPSB7fTsKKyAgICBQb2x5bWVyLmVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCkgeworICAgICAgaWYgKGVsZW1lbnRzQnlOYW1lW2VsZW1lbnQubmFtZV0pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignU29tZXRoaW5nIGlzIHN0cmFuZ2U6IGR1cGUgcG9seW1lciBlbGVtZW50IG5hbWVzJyk7CisKKyAgICAgIGVsZW1lbnRzQnlOYW1lW2VsZW1lbnQubmFtZV0gPSBlbGVtZW50OworCisgICAgICBpZiAoZWxlbWVudC5leHRlbmRzKSB7CisgICAgICAgIGlmIChlbGVtZW50c1RoYXRFeHRlbmRbZWxlbWVudC5leHRlbmRzXSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIGVsZW1lbnRzVGhhdEV4dGVuZFtlbGVtZW50LmV4dGVuZHNdID0gW107CisgICAgICAgIGVsZW1lbnRzVGhhdEV4dGVuZFtlbGVtZW50LmV4dGVuZHNdLnB1c2goZWxlbWVudC5uYW1lKTsKKyAgICAgIH0KKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGdldFBvbHltZXJFbGVtZW50TmFtZWQodGFnTmFtZSkgeworICAgIGJ1aWxkRWxlbWVudE1hcHNJZk5lZWRlZCgpOworICAgIHJldHVybiBlbGVtZW50c0J5TmFtZVt0YWdOYW1lXTsKKyAgfQorCisgIGZ1bmN0aW9uIGdldFBvbHltZXJFbGVtZW50c1RoYXRTdWJjbGFzcyh0YWdOYW1lKSB7CisgICAgaWYgKFBvbHltZXIud2FpdGluZ0ZvcigpLmxlbmd0aCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBhcmUgdW5yZXNvbHZlZCBwb2x5bWVyIGVsZW1lbnRzLiAnICsKKyAgICAgICAgJ1dhaXQgdW50aWwgUG9seW1lci53aGVuUmVhZHknKTsKKyAgICB9CisKKyAgICBidWlsZEVsZW1lbnRNYXBzSWZOZWVkZWQoKTsKKworICAgIHZhciBlbGVtZW50ID0gZ2V0UG9seW1lckVsZW1lbnROYW1lZCh0YWdOYW1lKTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICB0aHJvdyBuZXcgRXJyb3IodGFnTmFtZSArICcgaXMgbm90IGEgcG9seW1lciBlbGVtZW50Jyk7CisKKyAgICBpZiAoZWxlbWVudFN1YmNsYXNzZXMgPT09IHVuZGVmaW5lZCkKKyAgICAgIGVsZW1lbnRTdWJjbGFzc2VzID0ge307CisKKyAgICBpZiAoZWxlbWVudFN1YmNsYXNzZXNbdGFnTmFtZV0gPT09IHVuZGVmaW5lZCkgeworICAgICAgdmFyIGltbWVkaWF0ZVN1YkVsZW1lbnRzID0gZWxlbWVudHNUaGF0RXh0ZW5kW2VsZW1lbnQubmFtZV07CisgICAgICB2YXIgYWxsU3ViRWxlbWVudHMgPSBbXTsKKyAgICAgIGlmIChpbW1lZGlhdGVTdWJFbGVtZW50cyAhPT0gdW5kZWZpbmVkICYmIGltbWVkaWF0ZVN1YkVsZW1lbnRzLmxlbmd0aCkgeworICAgICAgICBpbW1lZGlhdGVTdWJFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHN1YkVsZW1lbnQpIHsKKyAgICAgICAgICBhbGxTdWJFbGVtZW50cy5wdXNoKHN1YkVsZW1lbnQpOworICAgICAgICAgIGFsbFN1YkVsZW1lbnRzLnB1c2guYXBwbHkoCisgICAgICAgICAgICBhbGxTdWJFbGVtZW50cywgZ2V0UG9seW1lckVsZW1lbnRzVGhhdFN1YmNsYXNzKHN1YkVsZW1lbnQpKTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgICBlbGVtZW50U3ViY2xhc3Nlc1t0YWdOYW1lXSA9IGFsbFN1YkVsZW1lbnRzOworICAgIH0KKyAgICByZXR1cm4gZWxlbWVudFN1YmNsYXNzZXNbdGFnTmFtZV07CisgIH0KKworICByZXR1cm4geworICAgIGdldFBvbHltZXJFbGVtZW50TmFtZWQ6IGdldFBvbHltZXJFbGVtZW50TmFtZWQsCisgICAgZ2V0UG9seW1lckVsZW1lbnRzVGhhdFN1YmNsYXNzOiBnZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3MKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvcXVhZF9zdGFja192aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvcXVhZF9zdGFja192aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmViY2JiOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9xdWFkX3N0YWNrX3ZpZXcuaHRtbApAQCAtMCwwICsxLDY4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmJveDIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvbWF0aC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9xdWFkLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhZi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yZWN0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NldHRpbmdzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NhbWVyYS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL21vdXNlX3RyYWNrZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+CisKKzxzdHlsZT4KKyogL2RlZXAvIHF1YWQtc3RhY2stdmlldyB7CisgIGRpc3BsYXk6IGJsb2NrOworICBmbG9hdDogbGVmdDsKKyAgaGVpZ2h0OiAxMDAlOworICBvdmVyZmxvdzogaGlkZGVuOworICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIEZvciB0aGUgYWJzb2x1dGUgcG9zaXRpb25lZCBtb3VzZS1tb2RlLXNlbGVjdG9yICovCisgIHdpZHRoOiAxMDAlOworfQorCisqIC9kZWVwLyBxdWFkLXN0YWNrLXZpZXcgPiAjaGVhZGVyIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBmb250LXNpemU6IDcwJTsKKyAgdG9wOiAxMHB4OworICBsZWZ0OiAxMHB4OworICB3aWR0aDogODAwcHg7Cit9CisqIC9kZWVwLyBxdWFkLXN0YWNrLXZpZXcgPiAjc3RhY2tpbmctZGlzdGFuY2Utc2xpZGVyIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBmb250LXNpemU6IDcwJTsKKyAgdG9wOiAxMHB4OworICByaWdodDogMTBweDsKK30KKworKiAvZGVlcC8gcXVhZC1zdGFjay12aWV3ID4gI2Nocm9tZS1sZWZ0IHsKKyAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvY2hyb21lLWxlZnQucG5nJyk7CisgIGRpc3BsYXk6IG5vbmU7Cit9CisKKyogL2RlZXAvIHF1YWQtc3RhY2stdmlldyA+ICNjaHJvbWUtbWlkIHsKKyAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvY2hyb21lLW1pZC5wbmcnKTsKKyAgZGlzcGxheTogbm9uZTsKK30KKworKiAvZGVlcC8gcXVhZC1zdGFjay12aWV3ID4gI2Nocm9tZS1yaWdodCB7CisgIGNvbnRlbnQ6IHVybCgnLi4vaW1hZ2VzL2Nocm9tZS1yaWdodC5wbmcnKTsKKyAgZGlzcGxheTogbm9uZTsKK30KKzwvc3R5bGU+CisKKzx0ZW1wbGF0ZSBpZD0ncXVhZC1zdGFjay12aWV3LXRlbXBsYXRlJz4KKyAgPGRpdiBpZD0iaGVhZGVyIj48L2Rpdj4KKyAgPGlucHV0IGlkPSJzdGFja2luZy1kaXN0YW5jZS1zbGlkZXIiIHR5cGU9InJhbmdlIiBtaW49MSBtYXg9NDAwIHN0ZXA9MT4KKyAgPC9pbnB1dD4KKyAgPGNhbnZhcyBpZD0nY2FudmFzJz48L2NhbnZhcz4KKyAgPGltZyBpZD0nY2hyb21lLWxlZnQnLz4KKyAgPGltZyBpZD0nY2hyb21lLW1pZCcvPgorICA8aW1nIGlkPSdjaHJvbWUtcmlnaHQnLz4KKzwvdGVtcGxhdGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBRdWFkU3RhY2tWaWV3IGNvbnRyb2xzIHRoZSBjb250ZW50IGFuZCB2aWV3aW5nIGFuZ2xlIGEKKyAqIFF1YWRTdGFjay4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKyAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OworCisgIHZhciBjb25zdGFudHMgPSB7fTsKKyAgY29uc3RhbnRzLklNQUdFX0xPQURfUkVUUllfVElNRV9NUyA9IDUwMDsKKyAgY29uc3RhbnRzLlNVQkRJVklTSU9OX01JTklNVU0gPSAxOworICBjb25zdGFudHMuU1VCRElWSVNJT05fUkVDVVJTSU9OX0RFUFRIID0gMzsKKyAgY29uc3RhbnRzLlNVQkRJVklTSU9OX0RFUFRIX1RIUkVTSE9MRCA9IDEwMDsKKyAgY29uc3RhbnRzLkZBUl9QTEFORV9ESVNUQU5DRSA9IDEwMDAwOworCisgIC8vIENhcmUgb2YgYmNrZW5uZXlAIHZpYQorICAvLyBodHRwOi8vZXh0cmVtZWx5c2F0aXNmYWN0b3J5dG90YWxpdGFyaWFuaXNtLmNvbS9ibG9nLz9wPTIxMjAKKyAgZnVuY3Rpb24gZHJhd1RleHR1cmVkVHJpYW5nbGUoY3R4LCBpbWcsIHAwLCBwMSwgcDIsIHQwLCB0MSwgdDIpIHsKKyAgICB2YXIgdG1wX3AwID0gW3AwWzBdLCBwMFsxXV07CisgICAgdmFyIHRtcF9wMSA9IFtwMVswXSwgcDFbMV1dOworICAgIHZhciB0bXBfcDIgPSBbcDJbMF0sIHAyWzFdXTsKKyAgICB2YXIgdG1wX3QwID0gW3QwWzBdLCB0MFsxXV07CisgICAgdmFyIHRtcF90MSA9IFt0MVswXSwgdDFbMV1dOworICAgIHZhciB0bXBfdDIgPSBbdDJbMF0sIHQyWzFdXTsKKworICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICBjdHgubW92ZVRvKHRtcF9wMFswXSwgdG1wX3AwWzFdKTsKKyAgICBjdHgubGluZVRvKHRtcF9wMVswXSwgdG1wX3AxWzFdKTsKKyAgICBjdHgubGluZVRvKHRtcF9wMlswXSwgdG1wX3AyWzFdKTsKKyAgICBjdHguY2xvc2VQYXRoKCk7CisKKyAgICB0bXBfcDFbMF0gLT0gdG1wX3AwWzBdOworICAgIHRtcF9wMVsxXSAtPSB0bXBfcDBbMV07CisgICAgdG1wX3AyWzBdIC09IHRtcF9wMFswXTsKKyAgICB0bXBfcDJbMV0gLT0gdG1wX3AwWzFdOworCisgICAgdG1wX3QxWzBdIC09IHRtcF90MFswXTsKKyAgICB0bXBfdDFbMV0gLT0gdG1wX3QwWzFdOworICAgIHRtcF90MlswXSAtPSB0bXBfdDBbMF07CisgICAgdG1wX3QyWzFdIC09IHRtcF90MFsxXTsKKworICAgIHZhciBkZXQgPSAxIC8gKHRtcF90MVswXSAqIHRtcF90MlsxXSAtIHRtcF90MlswXSAqIHRtcF90MVsxXSksCisKKyAgICAgICAgLy8gbGluZWFyIHRyYW5zZm9ybWF0aW9uCisgICAgICAgIGEgPSAodG1wX3QyWzFdICogdG1wX3AxWzBdIC0gdG1wX3QxWzFdICogdG1wX3AyWzBdKSAqIGRldCwKKyAgICAgICAgYiA9ICh0bXBfdDJbMV0gKiB0bXBfcDFbMV0gLSB0bXBfdDFbMV0gKiB0bXBfcDJbMV0pICogZGV0LAorICAgICAgICBjID0gKHRtcF90MVswXSAqIHRtcF9wMlswXSAtIHRtcF90MlswXSAqIHRtcF9wMVswXSkgKiBkZXQsCisgICAgICAgIGQgPSAodG1wX3QxWzBdICogdG1wX3AyWzFdIC0gdG1wX3QyWzBdICogdG1wX3AxWzFdKSAqIGRldCwKKworICAgICAgICAvLyB0cmFuc2xhdGlvbgorICAgICAgICBlID0gdG1wX3AwWzBdIC0gYSAqIHRtcF90MFswXSAtIGMgKiB0bXBfdDBbMV0sCisgICAgICAgIGYgPSB0bXBfcDBbMV0gLSBiICogdG1wX3QwWzBdIC0gZCAqIHRtcF90MFsxXTsKKworICAgIGN0eC5zYXZlKCk7CisgICAgY3R4LnRyYW5zZm9ybShhLCBiLCBjLCBkLCBlLCBmKTsKKyAgICBjdHguY2xpcCgpOworICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKKyAgICBjdHgucmVzdG9yZSgpOworICB9CisKKyAgZnVuY3Rpb24gZHJhd1RyaWFuZ2xlU3ViKAorICAgICAgY3R4LCBpbWcsIHAwLCBwMSwgcDIsIHQwLCB0MSwgdDIsIG9wdF9yZWN1cnNpb25fZGVwdGgpIHsKKyAgICB2YXIgZGVwdGggPSBvcHRfcmVjdXJzaW9uX2RlcHRoIHx8IDA7CisKKyAgICAvLyBXZSBtYXkgc3ViZGl2aWRlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGxpbWl0IG9mIHJlY3Vyc2lvbi4KKyAgICB2YXIgc3ViZGl2aXNpb25JbmRleCA9IDA7CisgICAgaWYgKGRlcHRoIDwgY29uc3RhbnRzLlNVQkRJVklTSU9OX01JTklNVU0pIHsKKyAgICAgIHN1YmRpdmlzaW9uSW5kZXggPSA3OworICAgIH0gZWxzZSBpZiAoZGVwdGggPCBjb25zdGFudHMuU1VCRElWSVNJT05fUkVDVVJTSU9OX0RFUFRIKSB7CisgICAgICBpZiAoTWF0aC5hYnMocDBbMl0gLSBwMVsyXSkgPiBjb25zdGFudHMuU1VCRElWSVNJT05fREVQVEhfVEhSRVNIT0xEKQorICAgICAgICBzdWJkaXZpc2lvbkluZGV4ICs9IDE7CisgICAgICBpZiAoTWF0aC5hYnMocDBbMl0gLSBwMlsyXSkgPiBjb25zdGFudHMuU1VCRElWSVNJT05fREVQVEhfVEhSRVNIT0xEKQorICAgICAgICBzdWJkaXZpc2lvbkluZGV4ICs9IDI7CisgICAgICBpZiAoTWF0aC5hYnMocDFbMl0gLSBwMlsyXSkgPiBjb25zdGFudHMuU1VCRElWSVNJT05fREVQVEhfVEhSRVNIT0xEKQorICAgICAgICBzdWJkaXZpc2lvbkluZGV4ICs9IDQ7CisgICAgfQorCisgICAgLy8gVGhlc2UgbmVlZCB0byBiZSBjcmVhdGVkIGV2ZXJ5IHRpbWUsIHNpbmNlIHRlbXBvcmFyaWVzCisgICAgLy8gb3V0c2lkZSBvZiB0aGUgc2NvcGUgd2lsbCBiZSByZXdyaXR0ZW4gaW4gcmVjdXJzaW9uLgorICAgIHZhciBwMDEgPSB2ZWM0LmNyZWF0ZSgpOworICAgIHZhciBwMDIgPSB2ZWM0LmNyZWF0ZSgpOworICAgIHZhciBwMTIgPSB2ZWM0LmNyZWF0ZSgpOworICAgIHZhciB0MDEgPSB2ZWMyLmNyZWF0ZSgpOworICAgIHZhciB0MDIgPSB2ZWMyLmNyZWF0ZSgpOworICAgIHZhciB0MTIgPSB2ZWMyLmNyZWF0ZSgpOworCisgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiBiZWZvcmUgdy1kaXZpZGUuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIHsKKyAgICAgIHAwW2ldICo9IHAwWzJdOworICAgICAgcDFbaV0gKj0gcDFbMl07CisgICAgICBwMltpXSAqPSBwMlsyXTsKKyAgICB9CisKKyAgICAvLyBJbnRlcnBvbGF0ZSB0aGUgM2QgcG9zaXRpb24uCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgIHAwMVtpXSA9IChwMFtpXSArIHAxW2ldKSAvIDI7CisgICAgICBwMDJbaV0gPSAocDBbaV0gKyBwMltpXSkgLyAyOworICAgICAgcDEyW2ldID0gKHAxW2ldICsgcDJbaV0pIC8gMjsKKyAgICB9CisKKyAgICAvLyBSZS1hcHBseSB3LWRpdmlkZSB0byB0aGUgb3JpZ2luYWwgcG9pbnRzIGFuZCB0aGUgaW50ZXJwb2xhdGVkIG9uZXMuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIHsKKyAgICAgIHAwW2ldIC89IHAwWzJdOworICAgICAgcDFbaV0gLz0gcDFbMl07CisgICAgICBwMltpXSAvPSBwMlsyXTsKKworICAgICAgcDAxW2ldIC89IHAwMVsyXTsKKyAgICAgIHAwMltpXSAvPSBwMDJbMl07CisgICAgICBwMTJbaV0gLz0gcDEyWzJdOworICAgIH0KKworICAgIC8vIEludGVycG9sYXRlIHRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzLgorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjsgKytpKSB7CisgICAgICB0MDFbaV0gPSAodDBbaV0gKyB0MVtpXSkgLyAyOworICAgICAgdDAyW2ldID0gKHQwW2ldICsgdDJbaV0pIC8gMjsKKyAgICAgIHQxMltpXSA9ICh0MVtpXSArIHQyW2ldKSAvIDI7CisgICAgfQorCisgICAgLy8gQmFzZWQgb24gdGhlIGluZGV4LCB3ZSBzdWJkaXZpZGUgdGhlIHRyaWFuZ2xlIGRpZmZlcmVudGx5LgorICAgIC8vIEFzc3VtaW5nIHRoZSB0cmlhbmdsZSBpcyBwMCwgcDEsIHAyIGFuZCBwb2ludHMgYmV0d2VlbiBpIGoKKyAgICAvLyBhcmUgcmVwcmVzZW50ZWQgYXMgcGlqICh0aGF0IGlzLCBhIHBvaW50IGJldHdlZW4gcDIgYW5kIHAwCisgICAgLy8gaXMgcDAyLCBldGMpLCB0aGVuIHRoZSBuZXcgdHJpYW5nbGVzIGFyZSBkZWZpbmVkIGJ5CisgICAgLy8gdGhlIDNyZCA0dGggYW5kIDV0aCBhcmd1bWVudHMgaW50byB0aGUgZnVuY3Rpb24uCisgICAgc3dpdGNoIChzdWJkaXZpc2lvbkluZGV4KSB7CisgICAgICBjYXNlIDE6CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAwMSwgcDIsIHQwLCB0MDEsIHQyLCBkZXB0aCArIDEpOworICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAwMSwgcDEsIHAyLCB0MDEsIHQxLCB0MiwgZGVwdGggKyAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDI6CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAxLCBwMDIsIHQwLCB0MSwgdDAyLCBkZXB0aCArIDEpOworICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAxLCBwMDIsIHAyLCB0MSwgdDAyLCB0MiwgZGVwdGggKyAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDM6CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAwMSwgcDAyLCB0MCwgdDAxLCB0MDIsIGRlcHRoICsgMSk7CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAyLCBwMDEsIHAyLCB0MDIsIHQwMSwgdDIsIGRlcHRoICsgMSk7CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAxLCBwMSwgcDIsIHQwMSwgdDEsIHQyLCBkZXB0aCArIDEpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgNDoKKyAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMCwgcDEyLCBwMiwgdDAsIHQxMiwgdDIsIGRlcHRoICsgMSk7CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAxLCBwMTIsIHQwLCB0MSwgdDEyLCBkZXB0aCArIDEpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgNToKKyAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMCwgcDAxLCBwMiwgdDAsIHQwMSwgdDIsIGRlcHRoICsgMSk7CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDIsIHAwMSwgcDEyLCB0MiwgdDAxLCB0MTIsIGRlcHRoICsgMSk7CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAxLCBwMSwgcDEyLCB0MDEsIHQxLCB0MTIsIGRlcHRoICsgMSk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSA2OgorICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAwLCBwMTIsIHAwMiwgdDAsIHQxMiwgdDAyLCBkZXB0aCArIDEpOworICAgICAgICBkcmF3VHJpYW5nbGVTdWIoY3R4LCBpbWcsIHAwLCBwMSwgcDEyLCB0MCwgdDEsIHQxMiwgZGVwdGggKyAxKTsKKyAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMDIsIHAxMiwgcDIsIHQwMiwgdDEyLCB0MiwgZGVwdGggKyAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDc6CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAsIHAwMSwgcDAyLCB0MCwgdDAxLCB0MDIsIGRlcHRoICsgMSk7CisgICAgICAgIGRyYXdUcmlhbmdsZVN1YihjdHgsIGltZywgcDAxLCBwMTIsIHAwMiwgdDAxLCB0MTIsIHQwMiwgZGVwdGggKyAxKTsKKyAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMDEsIHAxLCBwMTIsIHQwMSwgdDEsIHQxMiwgZGVwdGggKyAxKTsKKyAgICAgICAgZHJhd1RyaWFuZ2xlU3ViKGN0eCwgaW1nLCBwMDIsIHAxMiwgcDIsIHQwMiwgdDEyLCB0MiwgZGVwdGggKyAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICAvLyBJbiB0aGUgMCBjYXNlIGFuZCBhbGwgb3RoZXIgY2FzZXMsIHdlIHNpbXBseSBkcmF3IHRoZSB0cmlhbmdsZS4KKyAgICAgICAgZHJhd1RleHR1cmVkVHJpYW5nbGUoY3R4LCBpbWcsIHAwLCBwMSwgcDIsIHQwLCB0MSwgdDIpOworICAgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICAvLyBDcmVhdGVkIHRvIGF2b2lkIGNyZWF0aW5nIGdhcmJhZ2Ugd2hlbiBkb2luZyBidWxrIHRyYW5zZm9ybXMuCisgIHZhciB0bXBfdmVjNCA9IHZlYzQuY3JlYXRlKCk7CisgIGZ1bmN0aW9uIHRyYW5zZm9ybSh0cmFuc2Zvcm1lZCwgcG9pbnQsIG1hdHJpeCwgdmlld3BvcnQpIHsKKyAgICB2ZWM0LnNldCh0bXBfdmVjNCwgcG9pbnRbMF0sIHBvaW50WzFdLCAwLCAxKTsKKyAgICB2ZWM0LnRyYW5zZm9ybU1hdDQodG1wX3ZlYzQsIHRtcF92ZWM0LCBtYXRyaXgpOworCisgICAgdmFyIHcgPSB0bXBfdmVjNFszXTsKKyAgICBpZiAodyA8IDFlLTYpIHcgPSAxZS02OworCisgICAgdHJhbnNmb3JtZWRbMF0gPSAoKHRtcF92ZWM0WzBdIC8gdykgKyAxKSAqIHZpZXdwb3J0LndpZHRoIC8gMjsKKyAgICB0cmFuc2Zvcm1lZFsxXSA9ICgodG1wX3ZlYzRbMV0gLyB3KSArIDEpICogdmlld3BvcnQuaGVpZ2h0IC8gMjsKKyAgICB0cmFuc2Zvcm1lZFsyXSA9IHc7CisgIH0KKworICBmdW5jdGlvbiBkcmF3UHJvamVjdGVkUXVhZEJhY2tncm91bmRUb0NvbnRleHQoCisgICAgICBxdWFkLCBwMSwgcDIsIHAzLCBwNCwgY3R4LCBxdWFkQ2FudmFzKSB7CisgICAgaWYgKHF1YWQuaW1hZ2VEYXRhKSB7CisgICAgICBxdWFkQ2FudmFzLndpZHRoID0gcXVhZC5pbWFnZURhdGEud2lkdGg7CisgICAgICBxdWFkQ2FudmFzLmhlaWdodCA9IHF1YWQuaW1hZ2VEYXRhLmhlaWdodDsKKyAgICAgIHF1YWRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5wdXRJbWFnZURhdGEocXVhZC5pbWFnZURhdGEsIDAsIDApOworICAgICAgdmFyIHF1YWRCQm94ID0gbmV3IHRyLmIuQkJveDIoKTsKKyAgICAgIHF1YWRCQm94LmFkZFF1YWQocXVhZCk7CisgICAgICB2YXIgaXcgPSBxdWFkQ2FudmFzLndpZHRoOworICAgICAgdmFyIGloID0gcXVhZENhbnZhcy5oZWlnaHQ7CisgICAgICBkcmF3VHJpYW5nbGVTdWIoCisgICAgICAgICAgY3R4LCBxdWFkQ2FudmFzLAorICAgICAgICAgIHAxLCBwMiwgcDQsCisgICAgICAgICAgWzAsIDBdLCBbaXcsIDBdLCBbMCwgaWhdKTsKKyAgICAgIGRyYXdUcmlhbmdsZVN1YigKKyAgICAgICAgICBjdHgsIHF1YWRDYW52YXMsCisgICAgICAgICAgcDIsIHAzLCBwNCwKKyAgICAgICAgICBbaXcsIDBdLCBbaXcsIGloXSwgWzAsIGloXSk7CisgICAgfQorCisgICAgaWYgKHF1YWQuYmFja2dyb3VuZENvbG9yKSB7CisgICAgICBjdHguZmlsbFN0eWxlID0gcXVhZC5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICBjdHgubW92ZVRvKHAxWzBdLCBwMVsxXSk7CisgICAgICBjdHgubGluZVRvKHAyWzBdLCBwMlsxXSk7CisgICAgICBjdHgubGluZVRvKHAzWzBdLCBwM1sxXSk7CisgICAgICBjdHgubGluZVRvKHA0WzBdLCBwNFsxXSk7CisgICAgICBjdHguY2xvc2VQYXRoKCk7CisgICAgICBjdHguZmlsbCgpOworICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uIGRyYXdQcm9qZWN0ZWRRdWFkT3V0bGluZVRvQ29udGV4dCgKKyAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpIHsKKyAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgY3R4Lm1vdmVUbyhwMVswXSwgcDFbMV0pOworICAgIGN0eC5saW5lVG8ocDJbMF0sIHAyWzFdKTsKKyAgICBjdHgubGluZVRvKHAzWzBdLCBwM1sxXSk7CisgICAgY3R4LmxpbmVUbyhwNFswXSwgcDRbMV0pOworICAgIGN0eC5jbG9zZVBhdGgoKTsKKyAgICBjdHguc2F2ZSgpOworICAgIGlmIChxdWFkLmJvcmRlckNvbG9yKQorICAgICAgY3R4LnN0cm9rZVN0eWxlID0gcXVhZC5ib3JkZXJDb2xvcjsKKyAgICBlbHNlCisgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDEyOCwxMjgsMTI4KSc7CisKKyAgICBpZiAocXVhZC5zaGFkb3dPZmZzZXQpIHsKKyAgICAgIGN0eC5zaGFkb3dDb2xvciA9ICdyZ2IoMCwgMCwgMCknOworICAgICAgY3R4LnNoYWRvd09mZnNldFggPSBxdWFkLnNoYWRvd09mZnNldFswXTsKKyAgICAgIGN0eC5zaGFkb3dPZmZzZXRZID0gcXVhZC5zaGFkb3dPZmZzZXRbMV07CisgICAgICBpZiAocXVhZC5zaGFkb3dCbHVyKQorICAgICAgICBjdHguc2hhZG93Qmx1ciA9IHF1YWQuc2hhZG93Qmx1cjsKKyAgICB9CisKKyAgICBpZiAocXVhZC5ib3JkZXJXaWR0aCkKKyAgICAgIGN0eC5saW5lV2lkdGggPSBxdWFkLmJvcmRlcldpZHRoOworICAgIGVsc2UKKyAgICAgIGN0eC5saW5lV2lkdGggPSAxOworCisgICAgY3R4LnN0cm9rZSgpOworICAgIGN0eC5yZXN0b3JlKCk7CisgIH0KKworICBmdW5jdGlvbiBkcmF3UHJvamVjdGVkUXVhZFNlbGVjdGlvbk91dGxpbmVUb0NvbnRleHQoCisgICAgICBxdWFkLCBwMSwgcDIsIHAzLCBwNCwgY3R4LCBxdWFkQ2FudmFzKSB7CisgICAgaWYgKCFxdWFkLnVwcGVyQm9yZGVyQ29sb3IpCisgICAgICByZXR1cm47CisKKyAgICBjdHgubGluZVdpZHRoID0gODsKKyAgICBjdHguc3Ryb2tlU3R5bGUgPSBxdWFkLnVwcGVyQm9yZGVyQ29sb3I7CisKKyAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgY3R4Lm1vdmVUbyhwMVswXSwgcDFbMV0pOworICAgIGN0eC5saW5lVG8ocDJbMF0sIHAyWzFdKTsKKyAgICBjdHgubGluZVRvKHAzWzBdLCBwM1sxXSk7CisgICAgY3R4LmxpbmVUbyhwNFswXSwgcDRbMV0pOworICAgIGN0eC5jbG9zZVBhdGgoKTsKKyAgICBjdHguc3Ryb2tlKCk7CisgIH0KKworICBmdW5jdGlvbiBkcmF3UHJvamVjdGVkUXVhZFRvQ29udGV4dCgKKyAgICAgIHBhc3NOdW1iZXIsIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpIHsKKyAgICBpZiAocGFzc051bWJlciA9PT0gMCkgeworICAgICAgZHJhd1Byb2plY3RlZFF1YWRCYWNrZ3JvdW5kVG9Db250ZXh0KAorICAgICAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpOworICAgIH0gZWxzZSBpZiAocGFzc051bWJlciA9PT0gMSkgeworICAgICAgZHJhd1Byb2plY3RlZFF1YWRPdXRsaW5lVG9Db250ZXh0KAorICAgICAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpOworICAgIH0gZWxzZSBpZiAocGFzc051bWJlciA9PT0gMikgeworICAgICAgZHJhd1Byb2plY3RlZFF1YWRTZWxlY3Rpb25PdXRsaW5lVG9Db250ZXh0KAorICAgICAgICAgIHF1YWQsIHAxLCBwMiwgcDMsIHA0LCBjdHgsIHF1YWRDYW52YXMpOworICAgIH0gZWxzZSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFzcyBudW1iZXInKTsKKyAgICB9CisgIH0KKworICB2YXIgdG1wX3AxID0gdmVjMy5jcmVhdGUoKTsKKyAgdmFyIHRtcF9wMiA9IHZlYzMuY3JlYXRlKCk7CisgIHZhciB0bXBfcDMgPSB2ZWMzLmNyZWF0ZSgpOworICB2YXIgdG1wX3A0ID0gdmVjMy5jcmVhdGUoKTsKKyAgZnVuY3Rpb24gdHJhbnNmb3JtQW5kUHJvY2Vzc1F1YWRzKAorICAgICAgbWF0cml4LCB2aWV3cG9ydCwgcXVhZHMsIG51bVBhc3NlcywgaGFuZGxlUXVhZEZ1bmMsIG9wdF9hcmcxLCBvcHRfYXJnMikgeworCisgICAgZm9yICh2YXIgcGFzc051bWJlciA9IDA7IHBhc3NOdW1iZXIgPCBudW1QYXNzZXM7IHBhc3NOdW1iZXIrKykgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWFkcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgcXVhZCA9IHF1YWRzW2ldOworICAgICAgICB0cmFuc2Zvcm0odG1wX3AxLCBxdWFkLnAxLCBtYXRyaXgsIHZpZXdwb3J0KTsKKyAgICAgICAgdHJhbnNmb3JtKHRtcF9wMiwgcXVhZC5wMiwgbWF0cml4LCB2aWV3cG9ydCk7CisgICAgICAgIHRyYW5zZm9ybSh0bXBfcDMsIHF1YWQucDMsIG1hdHJpeCwgdmlld3BvcnQpOworICAgICAgICB0cmFuc2Zvcm0odG1wX3A0LCBxdWFkLnA0LCBtYXRyaXgsIHZpZXdwb3J0KTsKKyAgICAgICAgaGFuZGxlUXVhZEZ1bmMocGFzc051bWJlciwgcXVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgdG1wX3AxLCB0bXBfcDIsIHRtcF9wMywgdG1wX3A0LAorICAgICAgICAgICAgICAgICAgICAgICBvcHRfYXJnMSwgb3B0X2FyZzIpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBRdWFkU3RhY2tWaWV3ID0gdHIudWkuYi5kZWZpbmUoJ3F1YWQtc3RhY2stdmlldycpOworCisgIFF1YWRTdGFja1ZpZXcucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2xhc3NOYW1lID0gJ3F1YWQtc3RhY2stdmlldyc7CisKKyAgICAgIHZhciBub2RlID0gdHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjcXVhZC1zdGFjay12aWV3LXRlbXBsYXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRISVNfRE9DKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobm9kZSk7CisgICAgICB0aGlzLnVwZGF0ZUhlYWRlclZpc2liaWxpdHlfKCk7CisgICAgICB0aGlzLmNhbnZhc18gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjYW52YXMnKTsKKyAgICAgIHRoaXMuY2hyb21lSW1hZ2VzXyA9IHsKKyAgICAgICAgbGVmdDogdGhpcy5xdWVyeVNlbGVjdG9yKCcjY2hyb21lLWxlZnQnKSwKKyAgICAgICAgbWlkOiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjaHJvbWUtbWlkJyksCisgICAgICAgIHJpZ2h0OiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNjaHJvbWUtcmlnaHQnKQorICAgICAgfTsKKworICAgICAgdmFyIHN0YWNraW5nRGlzdGFuY2VTbGlkZXIgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoCisgICAgICAgICAgJyNzdGFja2luZy1kaXN0YW5jZS1zbGlkZXInKTsKKyAgICAgIHN0YWNraW5nRGlzdGFuY2VTbGlkZXIudmFsdWUgPSB0ci5iLlNldHRpbmdzLmdldCgKKyAgICAgICAgICAncXVhZFN0YWNrVmlldy5zdGFja2luZ0Rpc3RhbmNlJywgNDUpOworICAgICAgc3RhY2tpbmdEaXN0YW5jZVNsaWRlci5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uU3RhY2tpbmdEaXN0YW5jZUNoYW5nZV8uYmluZCh0aGlzKSk7CisgICAgICBzdGFja2luZ0Rpc3RhbmNlU2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ2lucHV0JywgdGhpcy5vblN0YWNraW5nRGlzdGFuY2VDaGFuZ2VfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLnRyYWNrTW91c2VfKCk7CisKKyAgICAgIHRoaXMuY2FtZXJhXyA9IG5ldyB0ci51aS5iLkNhbWVyYSh0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyk7CisgICAgICB0aGlzLmNhbWVyYV8uYWRkRXZlbnRMaXN0ZW5lcigncmVuZGVycmVxdWlyZWQnLAorICAgICAgICAgIHRoaXMub25SZW5kZXJSZXF1aXJlZF8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLmNhbWVyYVdhc1Jlc2V0XyA9IGZhbHNlOworICAgICAgdGhpcy5jYW1lcmFfLmNhbnZhcyA9IHRoaXMuY2FudmFzXzsKKworICAgICAgdGhpcy52aWV3cG9ydFJlY3RfID0gdHIuYi5SZWN0LmZyb21YWVdIKDAsIDAsIDAsIDApOworCisgICAgICB0aGlzLnBpeGVsUmF0aW9fID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICB9LAorCisgICAgdXBkYXRlSGVhZGVyVmlzaWJpbGl0eV86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuaGVhZGVyVGV4dCkKKyAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjaGVhZGVyJykuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgZWxzZQorICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNoZWFkZXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgIH0sCisKKyAgICBnZXQgaGVhZGVyVGV4dCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNoZWFkZXInKS50ZXh0Q29udGVudDsKKyAgICB9LAorCisgICAgc2V0IGhlYWRlclRleHQoaGVhZGVyVGV4dCkgeworICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcjaGVhZGVyJykudGV4dENvbnRlbnQgPSBoZWFkZXJUZXh0OworICAgICAgdGhpcy51cGRhdGVIZWFkZXJWaXNpYmlsaXR5XygpOworICAgIH0sCisKKyAgICBvblN0YWNraW5nRGlzdGFuY2VDaGFuZ2VfOiBmdW5jdGlvbihlKSB7CisgICAgICB0ci5iLlNldHRpbmdzLnNldCgncXVhZFN0YWNrVmlldy5zdGFja2luZ0Rpc3RhbmNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2tpbmdEaXN0YW5jZSk7CisgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7CisgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIH0sCisKKyAgICBnZXQgc3RhY2tpbmdEaXN0YW5jZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNzdGFja2luZy1kaXN0YW5jZS1zbGlkZXInKS52YWx1ZTsKKyAgICB9LAorCisgICAgZ2V0IG1vdXNlTW9kZVNlbGVjdG9yKCkgeworICAgICAgcmV0dXJuIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfOworICAgIH0sCisKKyAgICBnZXQgY2FtZXJhKCkgeworICAgICAgcmV0dXJuIHRoaXMuY2FtZXJhXzsKKyAgICB9LAorCisgICAgc2V0IHF1YWRzKHEpIHsKKyAgICAgIHRoaXMucXVhZHNfID0gcTsKKyAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTsKKyAgICB9LAorCisgICAgc2V0IGRldmljZVJlY3QocmVjdCkgeworICAgICAgaWYgKCFyZWN0IHx8IHJlY3QuZXF1YWxUbyh0aGlzLmRldmljZVJlY3RfKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLmRldmljZVJlY3RfID0gcmVjdDsKKyAgICAgIHRoaXMuY2FtZXJhXy5kZXZpY2VSZWN0ID0gcmVjdDsKKyAgICAgIHRoaXMuY2hyb21lUXVhZF8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIHJlc2l6ZTogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMub2Zmc2V0UGFyZW50KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgdmFyIHdpZHRoID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5vZmZzZXRQYXJlbnQpLndpZHRoKTsKKyAgICAgIHZhciBoZWlnaHQgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLm9mZnNldFBhcmVudCkuaGVpZ2h0KTsKKyAgICAgIHZhciByZWN0ID0gdHIuYi5SZWN0LmZyb21YWVdIKDAsIDAsIHdpZHRoLCBoZWlnaHQpOworCisgICAgICBpZiAocmVjdC5lcXVhbFRvKHRoaXMudmlld3BvcnRSZWN0XykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdGhpcy52aWV3cG9ydFJlY3RfID0gcmVjdDsKKyAgICAgIHRoaXMuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7CisgICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7CisgICAgICB0aGlzLmNhbnZhc18uc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7CisgICAgICB0aGlzLmNhbnZhc18uc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JzsKKyAgICAgIHRoaXMuY2FudmFzXy53aWR0aCA9IHRoaXMucGl4ZWxSYXRpb18gKiB3aWR0aDsKKyAgICAgIHRoaXMuY2FudmFzXy5oZWlnaHQgPSB0aGlzLnBpeGVsUmF0aW9fICogaGVpZ2h0OworICAgICAgaWYgKCF0aGlzLmNhbWVyYVdhc1Jlc2V0XykgeworICAgICAgICB0aGlzLmNhbWVyYV8ucmVzZXRDYW1lcmEoKTsKKyAgICAgICAgdGhpcy5jYW1lcmFXYXNSZXNldF8gPSB0cnVlOworICAgICAgfQorICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHJlYWR5VG9EcmF3OiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIElmIHNyYyBpc24ndCBzZXQgeWV0LCBzZXQgaXQgdG8gZW5zdXJlIHdlIGNhbiB1c2UKKyAgICAgIC8vIHRoZSBpbWFnZSB0byBkcmF3IG9udG8gYSBjYW52YXMuCisgICAgICBpZiAoIXRoaXMuY2hyb21lSW1hZ2VzXy5sZWZ0LnNyYykgeworICAgICAgICB2YXIgbGVmdENvbnRlbnQgPQorICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5jaHJvbWVJbWFnZXNfLmxlZnQpLmNvbnRlbnQ7CisgICAgICAgIGxlZnRDb250ZW50ID0gbGVmdENvbnRlbnQucmVwbGFjZSgvdXJsXCgoLiopXCkvLCAnJDEnKTsKKworICAgICAgICB2YXIgbWlkQ29udGVudCA9CisgICAgICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNocm9tZUltYWdlc18ubWlkKS5jb250ZW50OworICAgICAgICBtaWRDb250ZW50ID0gbWlkQ29udGVudC5yZXBsYWNlKC91cmxcKCguKilcKS8sICckMScpOworCisgICAgICAgIHZhciByaWdodENvbnRlbnQgPQorICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5jaHJvbWVJbWFnZXNfLnJpZ2h0KS5jb250ZW50OworICAgICAgICByaWdodENvbnRlbnQgPSByaWdodENvbnRlbnQucmVwbGFjZSgvdXJsXCgoLiopXCkvLCAnJDEnKTsKKworICAgICAgICB0aGlzLmNocm9tZUltYWdlc18ubGVmdC5zcmMgPSBsZWZ0Q29udGVudDsKKyAgICAgICAgdGhpcy5jaHJvbWVJbWFnZXNfLm1pZC5zcmMgPSBtaWRDb250ZW50OworICAgICAgICB0aGlzLmNocm9tZUltYWdlc18ucmlnaHQuc3JjID0gcmlnaHRDb250ZW50OworICAgICAgfQorCisgICAgICAvLyBJZiBhbGwgb2YgdGhlIGltYWdlcyBhcmUgbG9hZGVkIChoZWlnaHQgPiAwKSwgdGhlbgorICAgICAgLy8gd2UgYXJlIHJlYWR5IHRvIGRyYXcuCisgICAgICByZXR1cm4gKHRoaXMuY2hyb21lSW1hZ2VzXy5sZWZ0LmhlaWdodCA+IDApICYmCisgICAgICAgICAgICAgKHRoaXMuY2hyb21lSW1hZ2VzXy5taWQuaGVpZ2h0ID4gMCkgJiYKKyAgICAgICAgICAgICAodGhpcy5jaHJvbWVJbWFnZXNfLnJpZ2h0LmhlaWdodCA+IDApOworICAgIH0sCisKKyAgICBnZXQgY2hyb21lUXVhZCgpIHsKKyAgICAgIGlmICh0aGlzLmNocm9tZVF1YWRfKQorICAgICAgICByZXR1cm4gdGhpcy5jaHJvbWVRdWFkXzsKKworICAgICAgLy8gRHJhdyB0aGUgY2hyb21lIGJvcmRlciBpbnRvIGEgc2VwYXJhdGUgY2FudmFzLgorICAgICAgdmFyIGNocm9tZUNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgICAgdmFyIG9mZnNldFkgPSB0aGlzLmNocm9tZUltYWdlc18ubGVmdC5oZWlnaHQ7CisKKyAgICAgIGNocm9tZUNhbnZhcy53aWR0aCA9IHRoaXMuZGV2aWNlUmVjdF8ud2lkdGg7CisgICAgICBjaHJvbWVDYW52YXMuaGVpZ2h0ID0gdGhpcy5kZXZpY2VSZWN0Xy5oZWlnaHQgKyBvZmZzZXRZOworCisgICAgICB2YXIgbGVmdFdpZHRoID0gdGhpcy5jaHJvbWVJbWFnZXNfLmxlZnQud2lkdGg7CisgICAgICB2YXIgbWlkV2lkdGggPSB0aGlzLmNocm9tZUltYWdlc18ubWlkLndpZHRoOworICAgICAgdmFyIHJpZ2h0V2lkdGggPSB0aGlzLmNocm9tZUltYWdlc18ucmlnaHQud2lkdGg7CisKKyAgICAgIHZhciBjaHJvbWVDdHggPSBjaHJvbWVDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgIGNocm9tZUN0eC5kcmF3SW1hZ2UodGhpcy5jaHJvbWVJbWFnZXNfLmxlZnQsIDAsIDApOworCisgICAgICBjaHJvbWVDdHguc2F2ZSgpOworICAgICAgY2hyb21lQ3R4LnRyYW5zbGF0ZShsZWZ0V2lkdGgsIDApOworCisgICAgICAvLyBDYWxjdWxhdGUgdGhlIHNjYWxlIG9mIHRoZSBtaWQgaW1hZ2UuCisgICAgICB2YXIgcyA9ICh0aGlzLmRldmljZVJlY3RfLndpZHRoIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aCkgLyBtaWRXaWR0aDsKKyAgICAgIGNocm9tZUN0eC5zY2FsZShzLCAxKTsKKworICAgICAgY2hyb21lQ3R4LmRyYXdJbWFnZSh0aGlzLmNocm9tZUltYWdlc18ubWlkLCAwLCAwKTsKKyAgICAgIGNocm9tZUN0eC5yZXN0b3JlKCk7CisKKyAgICAgIGNocm9tZUN0eC5kcmF3SW1hZ2UoCisgICAgICAgICAgdGhpcy5jaHJvbWVJbWFnZXNfLnJpZ2h0LCBsZWZ0V2lkdGggKyBzICogbWlkV2lkdGgsIDApOworCisgICAgICAvLyBDb25zdHJ1Y3QgdGhlIHF1YWQuCisgICAgICB2YXIgY2hyb21lUmVjdCA9IHRyLmIuUmVjdC5mcm9tWFlXSCgKKyAgICAgICAgICB0aGlzLmRldmljZVJlY3RfLngsCisgICAgICAgICAgdGhpcy5kZXZpY2VSZWN0Xy55IC0gb2Zmc2V0WSwKKyAgICAgICAgICB0aGlzLmRldmljZVJlY3RfLndpZHRoLAorICAgICAgICAgIHRoaXMuZGV2aWNlUmVjdF8uaGVpZ2h0ICsgb2Zmc2V0WSk7CisgICAgICB2YXIgY2hyb21lUXVhZCA9IHRyLmIuUXVhZC5mcm9tUmVjdChjaHJvbWVSZWN0KTsKKyAgICAgIGNocm9tZVF1YWQuc3RhY2tpbmdHcm91cElkID0gdGhpcy5tYXhTdGFja2luZ0dyb3VwSWRfICsgMTsKKyAgICAgIGNocm9tZVF1YWQuaW1hZ2VEYXRhID0gY2hyb21lQ3R4LmdldEltYWdlRGF0YSgKKyAgICAgICAgICAwLCAwLCBjaHJvbWVDYW52YXMud2lkdGgsIGNocm9tZUNhbnZhcy5oZWlnaHQpOworICAgICAgY2hyb21lUXVhZC5zaGFkb3dPZmZzZXQgPSBbMCwgMF07CisgICAgICBjaHJvbWVRdWFkLnNoYWRvd0JsdXIgPSA1OworICAgICAgY2hyb21lUXVhZC5ib3JkZXJXaWR0aCA9IDM7CisgICAgICB0aGlzLmNocm9tZVF1YWRfID0gY2hyb21lUXVhZDsKKyAgICAgIHJldHVybiB0aGlzLmNocm9tZVF1YWRfOworICAgIH0sCisKKyAgICBzY2hlZHVsZVJlbmRlcjogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5yZWRyYXdTY2hlZHVsZWRfKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB0aGlzLnJlZHJhd1NjaGVkdWxlZF8gPSB0cnVlOworICAgICAgdHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yZW5kZXIsIHRoaXMpOworICAgIH0sCisKKyAgICBvblJlbmRlclJlcXVpcmVkXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpOworICAgIH0sCisKKyAgICBzdGFja1RyYW5zZm9ybUFuZFByb2Nlc3NRdWFkc186IGZ1bmN0aW9uKAorICAgICAgICBudW1QYXNzZXMsIGhhbmRsZVF1YWRGdW5jLCBpbmNsdWRlQ2hyb21lUXVhZCwgb3B0X2FyZzEsIG9wdF9hcmcyKSB7CisgICAgICB2YXIgbXYgPSB0aGlzLmNhbWVyYV8ubW9kZWxWaWV3TWF0cml4OworICAgICAgdmFyIHAgPSB0aGlzLmNhbWVyYV8ucHJvamVjdGlvbk1hdHJpeDsKKworICAgICAgdmFyIHZpZXdwb3J0ID0gdHIuYi5SZWN0LmZyb21YWVdIKAorICAgICAgICAgIDAsIDAsIHRoaXMuY2FudmFzXy53aWR0aCwgdGhpcy5jYW52YXNfLmhlaWdodCk7CisKKyAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcXVhZCBzdGFja3MuCisgICAgICB2YXIgcXVhZFN0YWNrcyA9IFtdOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnF1YWRzXy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgcXVhZCA9IHRoaXMucXVhZHNfW2ldOworICAgICAgICB2YXIgc3RhY2tpbmdJZCA9IHF1YWQuc3RhY2tpbmdHcm91cElkIHx8IDA7CisgICAgICAgIHdoaWxlIChzdGFja2luZ0lkID49IHF1YWRTdGFja3MubGVuZ3RoKQorICAgICAgICAgIHF1YWRTdGFja3MucHVzaChbXSk7CisKKyAgICAgICAgcXVhZFN0YWNrc1tzdGFja2luZ0lkXS5wdXNoKHF1YWQpOworICAgICAgfQorCisgICAgICB2YXIgbXZwID0gbWF0NC5jcmVhdGUoKTsKKyAgICAgIHRoaXMubWF4U3RhY2tpbmdHcm91cElkXyA9IHF1YWRTdGFja3MubGVuZ3RoOworICAgICAgdmFyIGVmZmVjdGl2ZVN0YWNraW5nRGlzdGFuY2UgPQorICAgICAgICAgIHRoaXMuc3RhY2tpbmdEaXN0YW5jZSAqIHRoaXMuY2FtZXJhXy5zdGFja2luZ0Rpc3RhbmNlRGFtcGVuaW5nOworCisgICAgICAvLyBEcmF3IHRoZSBxdWFkIHN0YWNrcywgcmFpc2luZyBlYWNoIHN1YnNlcXVlbnQgbGV2ZWwuCisgICAgICBtYXQ0Lm11bHRpcGx5KG12cCwgcCwgbXYpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWFkU3RhY2tzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHRyYW5zZm9ybUFuZFByb2Nlc3NRdWFkcyhtdnAsIHZpZXdwb3J0LCBxdWFkU3RhY2tzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtUGFzc2VzLCBoYW5kbGVRdWFkRnVuYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9hcmcxLCBvcHRfYXJnMik7CisKKyAgICAgICAgbWF0NC50cmFuc2xhdGUobXYsIG12LCBbMCwgMCwgZWZmZWN0aXZlU3RhY2tpbmdEaXN0YW5jZV0pOworICAgICAgICBtYXQ0Lm11bHRpcGx5KG12cCwgcCwgbXYpOworICAgICAgfQorCisgICAgICBpZiAoaW5jbHVkZUNocm9tZVF1YWQgJiYgdGhpcy5kZXZpY2VSZWN0XykgeworICAgICAgICB0cmFuc2Zvcm1BbmRQcm9jZXNzUXVhZHMobXZwLCB2aWV3cG9ydCwgW3RoaXMuY2hyb21lUXVhZF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1QYXNzZXMsIGRyYXdQcm9qZWN0ZWRRdWFkVG9Db250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X2FyZzEsIG9wdF9hcmcyKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucmVkcmF3U2NoZWR1bGVkXyA9IGZhbHNlOworCisgICAgICBpZiAoIXRoaXMucmVhZHlUb0RyYXcoKSkgeworICAgICAgICBzZXRUaW1lb3V0KHRoaXMuc2NoZWR1bGVSZW5kZXIuYmluZCh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICBjb25zdGFudHMuSU1BR0VfTE9BRF9SRVRSWV9USU1FX01TKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBpZiAoIXRoaXMucXVhZHNfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBjYW52YXNDdHggPSB0aGlzLmNhbnZhc18uZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgIGlmICghdGhpcy5yZXNpemUoKSkKKyAgICAgICAgY2FudmFzQ3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc18ud2lkdGgsIHRoaXMuY2FudmFzXy5oZWlnaHQpOworCisgICAgICB2YXIgcXVhZENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgICAgdGhpcy5zdGFja1RyYW5zZm9ybUFuZFByb2Nlc3NRdWFkc18oCisgICAgICAgICAgMywgZHJhd1Byb2plY3RlZFF1YWRUb0NvbnRleHQsIHRydWUsCisgICAgICAgICAgY2FudmFzQ3R4LCBxdWFkQ2FudmFzKTsKKyAgICAgIHF1YWRDYW52YXMud2lkdGggPSAwOyAvLyBIYWNrOiBGcmVlcyB0aGUgcXVhZENhbnZhcycgcmVzb3VyY2VzLgorICAgIH0sCisKKyAgICB0cmFja01vdXNlXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgJ3RyLXVpLWItbW91c2UtbW9kZS1zZWxlY3RvcicpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8udGFyZ2V0RWxlbWVudCA9IHRoaXMuY2FudmFzXzsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnN1cHBvcnRlZE1vZGVNYXNrID0KKyAgICAgICAgICB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OIHwKKyAgICAgICAgICB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREUuUEFOU0NBTiB8CisgICAgICAgICAgdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT00gfAorICAgICAgICAgIHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERS5ST1RBVEU7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5tb2RlID0gdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLlBBTlNDQU47CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5wb3MgPSB7eDogMCwgeTogMTAwfTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8pOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0dGluZ3NLZXkgPQorICAgICAgICAgICdxdWFkU3RhY2tWaWV3Lm1vdXNlTW9kZVNlbGVjdG9yJzsKKworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlKAorICAgICAgICAgIHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERS5ST1RBVEUsIHRyLnVpLmIuTU9ESUZJRVIuU0hJRlQpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0TW9kaWZpZXJGb3JBbHRlcm5hdGVNb2RlKAorICAgICAgICAgIHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERS5QQU5TQ0FOLCB0ci51aS5iLk1PRElGSUVSLlNQQUNFKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldE1vZGlmaWVyRm9yQWx0ZXJuYXRlTW9kZSgKKyAgICAgICAgICB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREUuWk9PTSwgdHIudWkuYi5NT0RJRklFUi5DTURfT1JfQ1RSTCk7CisKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXNlbGVjdGlvbicsCisgICAgICAgICAgdGhpcy5vblNlbGVjdGlvblVwZGF0ZV8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbmRzZWxlY3Rpb24nLAorICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25VcGRhdGVfLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBleHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIGJyID0gdGhpcy5jYW52YXNfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgcmV0dXJuIFsKKyAgICAgICAgdGhpcy5waXhlbFJhdGlvXyAqIChlLmNsaWVudFggLSB0aGlzLmNhbnZhc18ub2Zmc2V0TGVmdCAtIGJyLmxlZnQpLAorICAgICAgICB0aGlzLnBpeGVsUmF0aW9fICogKGUuY2xpZW50WSAtIHRoaXMuY2FudmFzXy5vZmZzZXRUb3AgLSBici50b3ApCisgICAgICBdOworICAgIH0sCisKKyAgICBvblNlbGVjdGlvblVwZGF0ZV86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBtb3VzZVBvcyA9IHRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7CisgICAgICB2YXIgcmVzID0gW107CisgICAgICBmdW5jdGlvbiBoYW5kbGVRdWFkKHBhc3NOdW1iZXIsIHF1YWQsIHAxLCBwMiwgcDMsIHA0KSB7CisgICAgICAgIGlmICh0ci5iLnBvaW50SW5JbXBsaWNpdFF1YWQobW91c2VQb3MsIHAxLCBwMiwgcDMsIHA0KSkKKyAgICAgICAgICByZXMucHVzaChxdWFkKTsKKyAgICAgIH0KKyAgICAgIHRoaXMuc3RhY2tUcmFuc2Zvcm1BbmRQcm9jZXNzUXVhZHNfKDEsIGhhbmRsZVF1YWQsIGZhbHNlKTsKKyAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ3NlbGVjdGlvbmNoYW5nZScpOworICAgICAgZS5xdWFkcyA9IHJlczsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChlKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBRdWFkU3RhY2tWaWV3OiBRdWFkU3RhY2tWaWV3CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3Jlc2l6ZV9zZW5zb3IuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9yZXNpemVfc2Vuc29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ1MTlkNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9yZXNpemVfc2Vuc29yLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91dGlscy5odG1sIj4KKworPHNjcmlwdCBzcmM9Ii9jc3MtZWxlbWVudC1xdWVyaWVzL3NyYy9SZXNpemVTZW5zb3IuanMiPjwvc2NyaXB0PgorCis8IS0tCitAZmlsZW92ZXJ2aWV3IEEgY29udGFpbmVyIHRoYXQgc2Vuc2VzIHdoZW4gaXRzIHNpemUgY2hhbmdlcy4KKy0tPgorPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLXJlc2l6ZS1zZW5zb3IiPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgICAgOmhvc3QgeworICAgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICA8Y29udGVudD48L2NvbnRlbnQ+CisgICAgPC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworICAoZnVuY3Rpb24oKSB7CisgICAgUG9seW1lcih7CisgICAgICBhdHRhY2hlZDogZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFJlc2l6ZVNlbnNvciBvbmx5IHdvcmtzIGlmIGl0J3Mgcm9vdGVkIGluIGEgZG9jdW1lbnQgd2hlbiBpdCdzCisgICAgICAgIC8vIGNyZWF0ZWQsIHNvIHdhaXQgdW50aWwgdGhlIHRyLXVpLWItcmVzaXplLXNlbnNvciBpcyBhdHRhY2hlZCB0byB0aGUKKyAgICAgICAgLy8gRE9NIGJlZm9yZSBjcmVhdGluZyB0aGUgUmVzaXplU2Vuc29yLgorICAgICAgICB0aGlzLnNlbnNvcl8gPSBuZXcgUmVzaXplU2Vuc29yKHRoaXMuJC5jb250YWluZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJlc2l6ZV8uYmluZCh0aGlzKSk7CisgICAgICAgIC8vIFJlc2l6ZVNlbnNvciBhcHBlbmRzIGEgZGl2IHRvIHRoaXMuJC5jb250YWluZXIuIFRoYXQgZGl2IG11c3QgYmUgYQorICAgICAgICAvLyBkaXJlY3Qgc2libGluZyBvZiA8Y29udGVudD4uCisgICAgICAgIC8vIFJlc2l6ZVNlbnNvcidzIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBOb2RlLCBzbyBpdCBjYW5ub3QgYmUKKyAgICAgICAgLy8gdGhpcy5zaGFkb3dSb290LgorICAgICAgfSwKKworICAgICAgb25SZXNpemVfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyB0ci5iLkV2ZW50KCdyZXNpemUnLCBmYWxzZSwgZmFsc2UpKTsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSkoKTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9yZXNpemVfc2Vuc29yX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9yZXNpemVfc2Vuc29yX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWQxNzE1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3Jlc2l6ZV9zZW5zb3JfdGVzdC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9yZXNpemVfc2Vuc29yLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gZm9yY2VMYXlvdXQoZWxlbWVudCkgeworICAgIGNvbnNvbGUuZGVidWcoZWxlbWVudC5vZmZzZXRIZWlnaHQpOworICB9CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2Vuc29yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1yZXNpemUtc2Vuc29yJyk7CisgICAgc2Vuc29yLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdoZWxsbycpKTsKKworICAgIHZhciByZXNpemVDb3VudCA9IDA7CisgICAgZnVuY3Rpb24gb25SZXNpemUoZXZlbnQpIHsKKyAgICAgIHJlc2l6ZUNvdW50ICs9IDE7CisgICAgfQorCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHNlbnNvcik7CisgICAgZm9yY2VMYXlvdXQoc2Vuc29yKTsKKyAgICBzZW5zb3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpOworCisgICAgLy8gVHJpZ2dlciBhIHJlc2l6ZToKKyAgICBzZW5zb3Iuc3R5bGUuZm9udFNpemUgPSAnMjBwdCc7CisgICAgZm9yY2VMYXlvdXQoc2Vuc29yKTsKKworICAgIC8vIFRoZSBldmVudCBkb2Vzbid0IGZpcmUgc3luY2hyb25vdXNseSwgc28gcmV0dXJuIGEgUHJvbWlzZSBmb3IgYSB0YXNrIHRoYXQKKyAgICAvLyB3aWxsIGJlIHJ1biB3aGVuIHRoZSBtYWluIHRocmVhZCBpcyBJZGxlIGFmdGVyIHRoZSByZXNpemUgZXZlbnQgZmlyZXMuCisgICAgcmV0dXJuIHRyLmIuVGFzay5SdW5XaGVuSWRsZShuZXcgdHIuYi5UYXNrKGZ1bmN0aW9uKHRhc2spIHsKKyAgICAgIGFzc2VydC5lcXVhbCgxLCByZXNpemVDb3VudCk7CisgICAgICBzZW5zb3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpOworICAgICAgc2Vuc29yLnN0eWxlLmZvbnRTaXplID0gJzEycHQnOworICAgICAgZm9yY2VMYXlvdXQoc2Vuc29yKTsKKyAgICB9LCB0aGlzKSkudGhlbih0ci5iLlRhc2suUnVuV2hlbklkbGUobmV3IHRyLmIuVGFzayhmdW5jdGlvbih0YXNrKSB7CisgICAgICBhc3NlcnQuZXF1YWwoMSwgcmVzaXplQ291bnQpOworICAgIH0sIHRoaXMpKSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zb3J0YWJsZV90YWJsZS5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc29ydGFibGVfdGFibGUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvc29ydGFibGVfdGFibGUuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc29ydGFibGVfdGFibGUuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc29ydGFibGVfdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9zb3J0YWJsZV90YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZWMzMGUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc29ydGFibGVfdGFibGUuaHRtbApAQCAtMCwwICsxLDE4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL2Jhc2Uvc29ydGFibGVfdGFibGUuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgQSBzb3J0YWJsZSB0YWJsZSB3aXRoIGhpc3Rvcnkgc3RhdGVzLgorICovCit0ci5leHBvcnRUbygndHIudWkuYicsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgU29ydGFibGVUYWJsZSA9IHRyLnVpLmIuZGVmaW5lKCdzb3J0YWJsZS10YWJsZScpOworCisgIHZhciBVTlNPUlRFRF9BUlJPVyA9ICcmI3gyNUJGJzsKKyAgdmFyIFNPUlRfQVNDRU5ESU5HX0FSUk9XID0gJyYjeDI1QkUnOworICB2YXIgU09SVF9ERVNDRU5ESU5HX0FSUk9XID0gJyYjeDI1QjQnOworICB2YXIgU09SVF9ESVJfQVNDRU5ESU5HID0gJ2Rvd253YXJkJzsKKyAgdmFyIFNPUlRfRElSX0RFU0NFTkRJTkcgPSAndXB3YXJkJzsKKworICBTb3J0YWJsZVRhYmxlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxUYWJsZUVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzb3J0YWJsZS10YWJsZScpOworICAgICAgaWYgKCF0aGlzLnRIZWFkKQorICAgICAgICByZXR1cm47CisgICAgICB2YXIgaGVhZGVyUm93ID0gdGhpcy50SGVhZC5yb3dzWzBdOworICAgICAgdmFyIGN1cnJlbnRTdGF0ZSA9IHdpbmRvdy5oaXN0b3J5LnN0YXRlOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZWFkZXJSb3cuY2VsbHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaGVhZGVyUm93LmNlbGxzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGlja2VkXywgdHJ1ZSk7CisgICAgICAgIGhlYWRlclJvdy5jZWxsc1tpXS5pbm5lckhUTUwgKz0gJyZuYnNwOycgKyBVTlNPUlRFRF9BUlJPVzsKKyAgICAgIH0KKworICAgICAgaWYgKGN1cnJlbnRTdGF0ZSAmJiBjdXJyZW50U3RhdGUudGFibGVTb3J0aW5nKSB7CisgICAgICAgIHZhciBoYXNoQ29kZSA9IHRoaXMuc29ydGluZ0hhc2hDb2RlXygpOworICAgICAgICBpZiAoY3VycmVudFN0YXRlLnRhYmxlU29ydGluZ1toYXNoQ29kZV0pIHsKKyAgICAgICAgICB0aGlzLnNvcnQoY3VycmVudFN0YXRlLnRhYmxlU29ydGluZ1toYXNoQ29kZV0uY29sLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RhdGUudGFibGVTb3J0aW5nW2hhc2hDb2RlXS5zb3J0RGlyZWN0aW9uKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBvbkl0ZW1DbGlja2VkXzogZnVuY3Rpb24oZSkgeworICAgICAgLy8gJ3RoaXMnIHJlZmVycyB0byB0aGUgdGFibGUgY2VsbCB0aGF0IGhhcyBiZWVuIGNsaWNrZWQuCisgICAgICB2YXIgaGVhZGVyUm93ID0gdGhpcy5wYXJlbnROb2RlOworICAgICAgdmFyIHRhYmxlID0gaGVhZGVyUm93LnBhcmVudE5vZGUucGFyZW50Tm9kZTsKKyAgICAgIHZhciBjb2xJbmRleCA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGhlYWRlclJvdy5jZWxscykuaW5kZXhPZih0aGlzKTsKKyAgICAgIHZhciBzb3J0RGlyZWN0aW9uID0gdGFibGUuc29ydChjb2xJbmRleCk7CisgICAgICB2YXIgY3VycmVudFN0YXRlID0gaGlzdG9yeS5zdGF0ZTsKKyAgICAgIGlmICghY3VycmVudFN0YXRlLnRhYmxlU29ydGluZykKKyAgICAgICAgY3VycmVudFN0YXRlLnRhYmxlU29ydGluZyA9IHt9OworICAgICAgY3VycmVudFN0YXRlLnRhYmxlU29ydGluZ1t0YWJsZS5zb3J0aW5nSGFzaENvZGVfKCldID0geworICAgICAgICBjb2w6IGNvbEluZGV4LAorICAgICAgICBzb3J0RGlyZWN0aW9uOiBzb3J0RGlyZWN0aW9uCisgICAgICB9OworICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKGN1cnJlbnRTdGF0ZSwgJycpOworICAgIH0sCisKKyAgICBzb3J0OiBmdW5jdGlvbihjb2xJbmRleCwgb3B0X3NvcnREaXJlY3Rpb24pIHsKKyAgICAgIHZhciBoZWFkZXJSb3cgPSB0aGlzLnRIZWFkLnJvd3NbMF07CisgICAgICB2YXIgaGVhZGVyQ2VsbCA9IGhlYWRlclJvdy5jZWxsc1tjb2xJbmRleF07CisKKyAgICAgIGlmICghaGVhZGVyQ2VsbC5oYXNBdHRyaWJ1dGUoJ3NvcnQnKSkgeworICAgICAgICAvLyB3ZSBhcmUgZWl0aGVyIHNvcnRpbmcgYSBuZXcgY29sdW1uIChub3QgcHJldmlvdXNseSBzb3J0ZWQpLAorICAgICAgICAvLyBvciBzb3J0aW5nIGJhc2VkIG9uIGEgZ2l2ZW4gc29ydCBkaXJlY3Rpb24gKG9wdF9zb3J0RGlyZWN0aW9uKS4KKyAgICAgICAgcmV0dXJuIHNvcnRCeUNvbHVtbl8oaGVhZGVyUm93LCBoZWFkZXJDZWxsLCBjb2xJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3NvcnREaXJlY3Rpb24pOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gcmVzb3J0IHRoZSBjdXJyZW50IHNvcnQgY29sdW1uIGluIHRoZSBvdGhlciBkaXJlY3Rpb24KKyAgICAgICAgcmV0dXJuIHJldmVyc2VTb3J0RGlyZWN0aW9uXyhoZWFkZXJSb3csIGhlYWRlckNlbGwsIG9wdF9zb3J0RGlyZWN0aW9uKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBzb3J0RGlyZWN0aW9uOworICAgIH0sCisKKyAgICAvLyBBIHZlcnkgc2ltcGxlIGhhc2ggZnVuY3Rpb24sIGJhc2VkIG9ubHkgb24gdGhlIGhlYWRlciByb3cgYW5kCisgICAgLy8gdGhlIHRhYmxlIGxvY2F0aW9uLiBJdCBpcyB1c2VkIHRvIGNoZWNrIHRoYXQgdGFibGUgbG9hZGVkCisgICAgLy8gY2FuIGJlIHNvcnRlZCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGhpc3RvcnkgaW5mb3JtYXRpb24uCisgICAgc29ydGluZ0hhc2hDb2RlXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5zb3J0aW5nSGFzaFZhbHVlXykKKyAgICAgICAgcmV0dXJuIHRoaXMuc29ydGluZ0hhc2hWYWx1ZV87CisgICAgICB2YXIgaGVhZGVyVGV4dCA9IHRoaXMudEhlYWQucm93c1swXS5pbm5lclRleHQ7CisgICAgICB2YXIgaGFzaCA9IDA7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhlYWRlclRleHQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGhlYWRlclRleHQuY2hhckNvZGVBdChpKSA8IDEyNykKKyAgICAgICAgICBoYXNoICs9IGhlYWRlclRleHQuY2hhckNvZGVBdChpKTsKKyAgICAgIH0KKworICAgICAgLy8gdXNlIHRoZSB0YWJsZSBpbmRleCBhcyB3ZWxsIGluIGNhc2UgdGhlIHNhbWUgdGFibGUKKyAgICAgIC8vIGlzIGRpc3BsYXllZCBtb3JlIHRoYW4gb25jZSBvbiBhIHNpbmdsZSBwYWdlLgorICAgICAgdmFyIHRhYmxlSW5kZXggPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCgKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzb3J0YWJsZS10YWJsZScpKS5pbmRleE9mKHRoaXMpOworICAgICAgdGhpcy5zb3J0aW5nSGFzaFZhbHVlXyA9IHRhYmxlSW5kZXggKyAnJyArIGhhc2g7CisgICAgICByZXR1cm4gdGhpcy5zb3J0aW5nSGFzaFZhbHVlXzsKKyAgICB9CisgIH07CisKKyAgZnVuY3Rpb24gY29tcGFyZUFzY2VuZGluZ18oYSwgYikgeworICAgIHJldHVybiBjb21wYXJlXyhhLCBiKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNvbXBhcmVEZXNjZW5kaW5nXyhhLCBiKSB7CisgICAgcmV0dXJuIGNvbXBhcmVfKGIsIGEpOworICB9CisKKyAgZnVuY3Rpb24gY29tcGFyZV8oYSwgYikgeworICAgIHZhciBhMSA9IHBhcnNlRmxvYXQoYSk7CisgICAgdmFyIGIxID0gcGFyc2VGbG9hdChiKTsKKyAgICBpZiAoaXNOYU4oYTEpICYmIGlzTmFOKGIxKSkKKyAgICAgIHJldHVybiBhLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZShiLnRvU3RyaW5nKCkpOworICAgIGlmIChpc05hTihhMSkpCisgICAgICByZXR1cm4gLTE7CisgICAgaWYgKGlzTmFOKGIxKSkKKyAgICAgIHJldHVybiAxOworICAgIHJldHVybiBhMSAtIGIxOworICB9CisKKyAgZnVuY3Rpb24gc29ydEJ5Q29sdW1uXyhoZWFkZXJSb3csIGhlYWRlckNlbGwsIGNvbEluZGV4LCBvcHRfc29ydERpcmVjdGlvbikgeworICAgIHZhciBzb3J0RGlyZWN0aW9uID0gb3B0X3NvcnREaXJlY3Rpb24gfHwgU09SVF9ESVJfQVNDRU5ESU5HOworICAgIC8vIHJlbW92ZSBzb3J0IGF0dHJpYnV0ZSBmcm9tIG90aGVyIGhlYWRlciBlbGVtZW50cy4KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhlYWRlclJvdy5jZWxscy5sZW5ndGg7IGkrKykgeworICAgICAgaWYgKGhlYWRlclJvdy5jZWxsc1tpXS5nZXRBdHRyaWJ1dGUoJ3NvcnQnKSkgeworICAgICAgICBoZWFkZXJSb3cuY2VsbHNbaV0ucmVtb3ZlQXR0cmlidXRlKCdzb3J0Jyk7CisgICAgICAgIHZhciBoZWFkZXJTdHIgPSBoZWFkZXJSb3cuY2VsbHNbaV0uaW5uZXJIVE1MOworICAgICAgICBoZWFkZXJSb3cuY2VsbHNbaV0uaW5uZXJIVE1MID0KKyAgICAgICAgICAgIGhlYWRlclN0ci5zdWJzdHIoMCwgaGVhZGVyU3RyLmxlbmd0aCAtIDIpICsgVU5TT1JURURfQVJST1c7CisgICAgICB9CisgICAgfQorCisgICAgdmFyIGhlYWRlclN0ciA9IGhlYWRlclJvdy5jZWxsc1tjb2xJbmRleF0uaW5uZXJIVE1MOworICAgIGhlYWRlckNlbGwuaW5uZXJIVE1MID0gaGVhZGVyU3RyLnN1YnN0cigwLCBoZWFkZXJTdHIubGVuZ3RoIC0gMikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnREaXJlY3Rpb24gPT0gU09SVF9ESVJfQVNDRU5ESU5HID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0FTQ0VORElOR19BUlJPVyA6IFNPUlRfREVTQ0VORElOR19BUlJPVyk7CisKKyAgICBoZWFkZXJDZWxsLnNldEF0dHJpYnV0ZSgnc29ydCcsIHNvcnREaXJlY3Rpb24pOworICAgIHZhciByb3dzID0gaGVhZGVyUm93LnBhcmVudE5vZGUucGFyZW50Tm9kZS50Qm9kaWVzWzBdLnJvd3M7CisgICAgdmFyIHRlbXBSb3dzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CisgICAgICB0ZW1wUm93cy5wdXNoKFtyb3dzW2ldLmNlbGxzW2NvbEluZGV4XS5pbm5lclRleHQsIHJvd3NbaV1dKTsKKyAgICB9CisKKyAgICB0ZW1wUm93cy5zb3J0KHNvcnREaXJlY3Rpb24gPT0gU09SVF9ESVJfQVNDRU5ESU5HID8KKyAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQXNjZW5kaW5nXyA6IGNvbXBhcmVEZXNjZW5kaW5nXyk7CisKKyAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRlbXBSb3dzLmxlbmd0aDsgaisrKSB7CisgICAgICBoZWFkZXJSb3cucGFyZW50Tm9kZS5wYXJlbnROb2RlLnRCb2RpZXNbMF0uCisgICAgICAgICAgYXBwZW5kQ2hpbGQodGVtcFJvd3Nbal1bMV0pOworICAgIH0KKyAgICByZXR1cm4gc29ydERpcmVjdGlvbjsKKyAgfQorCisgIGZ1bmN0aW9uIHJldmVyc2VTb3J0RGlyZWN0aW9uXyhoZWFkZXJSb3csIGhlYWRlckNlbGwsIG9wdF9zb3J0RGlyZWN0aW9uKSB7CisgICAgdmFyIHNvcnREaXJlY3Rpb24gPSBoZWFkZXJDZWxsLmdldEF0dHJpYnV0ZSgnc29ydCcpOworICAgIC8vIGlmIGl0IGlzIGFscmVhZHkgc29ydGVkIGluIHRoZSBjb3JyZWN0IGRpcmVjdGlvbiwgZG8gbm90aGluZy4KKyAgICBpZiAob3B0X3NvcnREaXJlY3Rpb24gPT0gc29ydERpcmVjdGlvbikKKyAgICAgIHJldHVybiBzb3J0RGlyZWN0aW9uOworICAgIHNvcnREaXJlY3Rpb24gPSBzb3J0RGlyZWN0aW9uID09IFNPUlRfRElSX0RFU0NFTkRJTkcgPworICAgICAgICAgICAgICAgICAgICBTT1JUX0RJUl9BU0NFTkRJTkcgOiBTT1JUX0RJUl9ERVNDRU5ESU5HOworICAgIGhlYWRlckNlbGwuc2V0QXR0cmlidXRlKCdzb3J0Jywgc29ydERpcmVjdGlvbik7CisgICAgdmFyIGhlYWRlclN0ciA9IGhlYWRlckNlbGwuaW5uZXJIVE1MOworICAgIGhlYWRlckNlbGwuaW5uZXJIVE1MID0gaGVhZGVyU3RyLnN1YnN0cigwLCBoZWFkZXJTdHIubGVuZ3RoIC0gMikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnREaXJlY3Rpb24gPT0gU09SVF9ESVJfQVNDRU5ESU5HID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0FTQ0VORElOR19BUlJPVyA6IFNPUlRfREVTQ0VORElOR19BUlJPVyk7CisgICAgLy8gaW5zdGVhZCBvZiByZS1zb3J0aW5nLCB3ZSByZXZlcnNlIHRoZSBzb3J0ZWQgcm93cy4KKyAgICB2YXIgaGVhZGVyUm93ID0gaGVhZGVyQ2VsbC5wYXJlbnROb2RlOworICAgIHZhciB0Ym9keSA9IGhlYWRlclJvdy5wYXJlbnROb2RlLnBhcmVudE5vZGUudEJvZGllc1swXTsKKyAgICB2YXIgdGVtcFJvd3MgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRib2R5LnJvd3MubGVuZ3RoOyBpKyspCisgICAgICB0ZW1wUm93c1t0ZW1wUm93cy5sZW5ndGhdID0gdGJvZHkucm93c1tpXTsKKyAgICBmb3IgKHZhciBpID0gdGVtcFJvd3MubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pCisgICAgICB0Ym9keS5hcHBlbmRDaGlsZCh0ZW1wUm93c1tpXSk7CisgICAgcmV0dXJuIHNvcnREaXJlY3Rpb247CisgIH0KKworICByZXR1cm4geworICAgIFNvcnRhYmxlVGFibGU6IFNvcnRhYmxlVGFibGUKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc29ydGFibGVfdGFibGVfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3NvcnRhYmxlX3RhYmxlX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjE4NzQxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3NvcnRhYmxlX3RhYmxlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDIzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9zb3J0YWJsZV90YWJsZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBTb3J0YWJsZVRhYmxlID0gdHIudWkuYi5Tb3J0YWJsZVRhYmxlOworCisgIGZ1bmN0aW9uIGNvbnZlcnRUb0hUTUwocykgeworICAgIHZhciByZXMgPSAnJzsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHsKKyAgICAgIHJlcyArPSBzLmNoYXJDb2RlQXQoaSkgPiAxMjcgPworICAgICAgICAgICAgICcmI3gnICsgcy5jaGFyQ29kZUF0KGkpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpICsgJzsnIDoKKyAgICAgICAgICAgICBzLmNoYXJBdChpKTsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKKyAgfQorCisgIGZ1bmN0aW9uIFNpbXBsZVRhYmxlKCkgeworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RhYmxlJyk7CisgICAgdmFyIHRoZWFkID0gdGFibGUuY3JlYXRlVEhlYWQoKTsKKyAgICB2YXIgdGZvb3QgPSB0YWJsZS5jcmVhdGVURm9vdCgpOworICAgIHZhciB0Ym9keSA9IHRhYmxlLmNyZWF0ZVRCb2R5KCk7CisgICAgdmFyIGhlYWRlclJvdyA9IHRoZWFkLmluc2VydFJvdygwKTsKKyAgICBoZWFkZXJSb3cuaW5zZXJ0Q2VsbCgwKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnTmFtZScpKTsKKyAgICBoZWFkZXJSb3cuaW5zZXJ0Q2VsbCgxKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnVmFsdWUnKSk7CisgICAgdmFyIHJvdzEgPSB0Ym9keS5pbnNlcnRSb3coMCk7CisgICAgcm93MS5pbnNlcnRDZWxsKDApLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdGaXJzdCcpKTsKKyAgICByb3cxLmluc2VydENlbGwoMSkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJzInKSk7CisgICAgdmFyIHJvdzIgPSB0Ym9keS5pbnNlcnRSb3coMSk7CisgICAgcm93Mi5pbnNlcnRDZWxsKDApLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdNaWRkbGUnKSk7CisgICAgcm93Mi5pbnNlcnRDZWxsKDEpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcxOCcpKTsKKyAgICB2YXIgcm93MyA9IHRib2R5Lmluc2VydFJvdygyKTsKKyAgICByb3czLmluc2VydENlbGwoMCkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0xhc3QnKSk7CisgICAgcm93My5pbnNlcnRDZWxsKDEpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcxJykpOworICAgIHZhciBmb290ZXJSb3cgPSB0Zm9vdC5pbnNlcnRSb3coMCk7CisgICAgZm9vdGVyUm93Lmluc2VydENlbGwoMCkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0F2ZXJhZ2UnKSk7CisgICAgZm9vdGVyUm93Lmluc2VydENlbGwoMSkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJzcnKSk7CisgICAgcmV0dXJuIHRhYmxlOworICB9CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBTaW1wbGVUYWJsZSgpOworICAgIFNvcnRhYmxlVGFibGUuZGVjb3JhdGUodGFibGUpOworICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdMYXN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcxJyk7CisgICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgorICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOworICB9KTsKKworICB0ZXN0KCdzb3J0T25BbHBoYWJldGljQ29sdW1uQXNjZW5kaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhYmxlID0gU2ltcGxlVGFibGUoKTsKKyAgICBTb3J0YWJsZVRhYmxlLmRlY29yYXRlKHRhYmxlKTsKKyAgICB0YWJsZS5zb3J0KDAgLyosICdkb3dud2FyZCcgKi8pOworICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QkU7Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1swXS5pbm5lclRleHQsICdMYXN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcxJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7CisgICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgorICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOworICB9KTsKKworICB0ZXN0KCdzb3J0T25BbHBoYWJldGljQ29sdW1uRGVzY2VuZGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IFNpbXBsZVRhYmxlKCk7CisgICAgU29ydGFibGVUYWJsZS5kZWNvcmF0ZSh0YWJsZSk7CisgICAgdGFibGUuc29ydCgwICwgJ3Vwd2FyZCcpOworICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QjQ7Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ01pZGRsZScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMTgnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0xhc3QnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzEnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7CisgICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgorICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOworICB9KTsKKworICB0ZXN0KCdzb3J0T25OdW1lcmljQ29sdW1uQXNjZW5kaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhYmxlID0gU2ltcGxlVGFibGUoKTsKKyAgICBTb3J0YWJsZVRhYmxlLmRlY29yYXRlKHRhYmxlKTsKKyAgICB0YWJsZS5zb3J0KDEgLyosICdkb3dud2FyZCcgKi8pOworICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QkU7Jyk7CisgICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0xhc3QnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzEnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdNaWRkbGUnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzE4Jyk7CisgICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgorICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOworICB9KTsKKworICB0ZXN0KCdzb3J0T25OdW1lcmljQ29sdW1uRGVzY2VuZGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IFNpbXBsZVRhYmxlKCk7CisgICAgU29ydGFibGVUYWJsZS5kZWNvcmF0ZSh0YWJsZSk7CisgICAgdGFibGUuc29ydCgxICwgJ3Vwd2FyZCcpOworICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QjQ7Jyk7CisgICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ01pZGRsZScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMTgnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1sxXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1swXS5pbm5lclRleHQsICdMYXN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcxJyk7CisgICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgorICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOworICB9KTsKKworICB0ZXN0KCdzb3J0T25BQ29sdW1uVGhlblJldmVyc2VJdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IFNpbXBsZVRhYmxlKCk7CisgICAgU29ydGFibGVUYWJsZS5kZWNvcmF0ZSh0YWJsZSk7CisgICAgdGFibGUuc29ydCgwKTsKKyAgICB2YXIgaGVhZGVyUm93ID0gdGFibGUudEhlYWQucm93c1swXTsKKyAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMF0uaW5uZXJIVE1MKSwKKyAgICAgICAgICAgICAgICAgJ05hbWUmbmJzcDsmI3gyNUJFOycpOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1sxXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnVmFsdWUmbmJzcDsmI3gyNUJGOycpOworICAgIHZhciB0YWJsZVJvd3MgPSB0YWJsZS50Qm9kaWVzWzBdLnJvd3M7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1swXS5jZWxsc1swXS5pbm5lclRleHQsICdGaXJzdCcpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMicpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTGFzdCcpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTWlkZGxlJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcxOCcpOworICAgIC8vIHRoZSBmb290ZXIgc2hvdWxkIG5ldmVyIGNoYW5nZS4KKyAgICB2YXIgZm9vdGVyUm93ID0gdGFibGUudEZvb3Qucm93c1swXTsKKyAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzBdLmlubmVyVGV4dCwgJ0F2ZXJhZ2UnKTsKKyAgICBhc3NlcnQuZXF1YWwoZm9vdGVyUm93LmNlbGxzWzFdLmlubmVyVGV4dCwgJzcnKTsKKyAgICB0YWJsZS5zb3J0KDApOworICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QjQ7Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ01pZGRsZScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMTgnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0xhc3QnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzEnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7CisgICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgorICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOworICB9KTsKKworICB0ZXN0KCdzb3J0T25BQ29sdW1uVGhlbk9uQW5vdGhlckNvbHVtbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IFNpbXBsZVRhYmxlKCk7CisgICAgU29ydGFibGVUYWJsZS5kZWNvcmF0ZSh0YWJsZSk7CisgICAgdGFibGUuc29ydCgwICwgJ3Vwd2FyZCcpOworICAgIHZhciBoZWFkZXJSb3cgPSB0YWJsZS50SGVhZC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChjb252ZXJ0VG9IVE1MKGhlYWRlclJvdy5jZWxsc1swXS5pbm5lckhUTUwpLAorICAgICAgICAgICAgICAgICAnTmFtZSZuYnNwOyYjeDI1QjQ7Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzFdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdWYWx1ZSZuYnNwOyYjeDI1QkY7Jyk7CisgICAgdmFyIHRhYmxlUm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzBdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ01pZGRsZScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMTgnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0xhc3QnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzEnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ0ZpcnN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlUm93c1syXS5jZWxsc1sxXS5pbm5lclRleHQsICcyJyk7CisgICAgLy8gdGhlIGZvb3RlciBzaG91bGQgbmV2ZXIgY2hhbmdlLgorICAgIHZhciBmb290ZXJSb3cgPSB0YWJsZS50Rm9vdC5yb3dzWzBdOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMF0uaW5uZXJUZXh0LCAnQXZlcmFnZScpOworICAgIGFzc2VydC5lcXVhbChmb290ZXJSb3cuY2VsbHNbMV0uaW5uZXJUZXh0LCAnNycpOworICAgIHRhYmxlLnNvcnQoMSAvKiwgJ2Rvd253YXJkJyAqLyk7CisgICAgdmFyIGhlYWRlclJvdyA9IHRhYmxlLnRIZWFkLnJvd3NbMF07CisgICAgYXNzZXJ0LmVxdWFsKGNvbnZlcnRUb0hUTUwoaGVhZGVyUm93LmNlbGxzWzBdLmlubmVySFRNTCksCisgICAgICAgICAgICAgICAgICdOYW1lJm5ic3A7JiN4MjVCRjsnKTsKKyAgICBhc3NlcnQuZXF1YWwoY29udmVydFRvSFRNTChoZWFkZXJSb3cuY2VsbHNbMV0uaW5uZXJIVE1MKSwKKyAgICAgICAgICAgICAgICAgJ1ZhbHVlJm5ic3A7JiN4MjVCRTsnKTsKKyAgICB2YXIgdGFibGVSb3dzID0gdGFibGUudEJvZGllc1swXS5yb3dzOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnTGFzdCcpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMF0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMV0uY2VsbHNbMF0uaW5uZXJUZXh0LCAnRmlyc3QnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzFdLmNlbGxzWzFdLmlubmVyVGV4dCwgJzInKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGVSb3dzWzJdLmNlbGxzWzBdLmlubmVyVGV4dCwgJ01pZGRsZScpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZVJvd3NbMl0uY2VsbHNbMV0uaW5uZXJUZXh0LCAnMTgnKTsKKyAgICAvLyB0aGUgZm9vdGVyIHNob3VsZCBuZXZlciBjaGFuZ2UuCisgICAgdmFyIGZvb3RlclJvdyA9IHRhYmxlLnRGb290LnJvd3NbMF07CisgICAgYXNzZXJ0LmVxdWFsKGZvb3RlclJvdy5jZWxsc1swXS5pbm5lclRleHQsICdBdmVyYWdlJyk7CisgICAgYXNzZXJ0LmVxdWFsKGZvb3RlclJvdy5jZWxsc1sxXS5pbm5lclRleHQsICc3Jyk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS9zdW5idXJzdF9jaGFydC5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc3VuYnVyc3RfY2hhcnQuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvdWkvc3VuYnVyc3RfY2hhcnQuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc3VuYnVyc3RfY2hhcnQuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc3VuYnVyc3RfY2hhcnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9zdW5idXJzdF9jaGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxZjQ2OTEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvc3VuYnVyc3RfY2hhcnQuaHRtbApAQCAtMCwwICsxLDQ0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZDMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY2hhcnRfYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL2Jhc2Uvc3VuYnVyc3RfY2hhcnQuY3NzIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIHZhciBDaGFydEJhc2UgPSB0ci51aS5iLkNoYXJ0QmFzZTsKKyAgdmFyIGdldENvbG9yT2ZLZXkgPSB0ci51aS5iLmdldENvbG9yT2ZLZXk7CisKKyAgdmFyIE1JTl9SQURJVVMgPSAxMDA7CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIFN1bmJ1cnN0Q2hhcnQgPSB0ci51aS5iLmRlZmluZSgnc3VuYnVyc3QtY2hhcnQnLCBDaGFydEJhc2UpOworCisgIFN1bmJ1cnN0Q2hhcnQucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogQ2hhcnRCYXNlLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIENoYXJ0QmFzZS5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzKTsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc3VuYnVyc3QtY2hhcnQnKTsKKworICAgICAgdGhpcy5kYXRhXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuc2VyaWVzS2V5c18gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMueURvbWFpbk1pbl8gPSAwLjA7CisgICAgICB0aGlzLnlEb21haW5NYXhfID0gMC4wOworICAgICAgdGhpcy54RG9tYWluU2NhbGVfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy55RG9tYWluU2NhbGVfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5yYWRpdXNfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5hcmNfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5zZWxlY3RlZE5vZGVfID0gbnVsbDsKKyAgICAgIHRoaXMudmlzXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMubm9kZXNfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5taW5YXyA9IDAuMDsKKyAgICAgIHRoaXMubWF4WF8gPSAxLjA7CisgICAgICB0aGlzLm1pbllfID0gMC4wOworICAgICAgdGhpcy5jbGlja2VkWV8gPSAwOworCisgICAgICB2YXIgY2hhcnRBcmVhU2VsID0gZDMuc2VsZWN0KHRoaXMuY2hhcnRBcmVhRWxlbWVudCk7CisgICAgICB0aGlzLmxlZ2VuZFNlbF8gPSBjaGFydEFyZWFTZWwuYXBwZW5kKCdnJyk7CisKKyAgICAgIHZhciBwaWVHcm91cFNlbCA9IGNoYXJ0QXJlYVNlbC5hcHBlbmQoJ2cnKQorICAgICAgICAuYXR0cignY2xhc3MnLCAncGllLWdyb3VwJyk7CisgICAgICB0aGlzLnBpZUdyb3VwXyA9IHBpZUdyb3VwU2VsLm5vZGUoKTsKKworICAgICAgdGhpcy5iYWNrU2VsXyA9IHBpZUdyb3VwU2VsLmFwcGVuZCgnZycpOworCisKKyAgICAgIHRoaXMucGF0aHNHcm91cF8gPSBwaWVHcm91cFNlbC5hcHBlbmQoJ2cnKQorICAgICAgICAuYXR0cignY2xhc3MnLCAncGF0aHMnKQorICAgICAgICAubm9kZSgpOworICAgIH0sCisKKyAgICBnZXQgZGF0YSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmRhdGFfOworICAgIH0sCisKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7RGF0YX0gRGF0YSBmb3IgdGhlIGNoYXJ0LCB3aGVyZSBkYXRhIG11c3QgYmUgb2YgdGhlCisgICAgICogZm9ybSB7Y2F0ZWdvcnk6IHN0ciwgbmFtZTogc3RyLCAoc2l6ZTogbnVtYmVyIG9yIGNoaWxkcmVuOiBbXSl9IC4KKyAgICAgKi8KKyAgICBzZXQgZGF0YShkYXRhKSB7CisgICAgICB0aGlzLmRhdGFfID0gZGF0YTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBtYXJnaW4oKSB7CisgICAgICB2YXIgbWFyZ2luID0ge3RvcDogMCwgcmlnaHQ6IDAsIGJvdHRvbTogMCwgbGVmdDogMH07CisgICAgICBpZiAodGhpcy5jaGFydFRpdGxlXykKKyAgICAgICAgbWFyZ2luLnRvcCArPSA0MDsKKyAgICAgIHJldHVybiBtYXJnaW47CisgICAgfSwKKworICAgIHNldCBzZWxlY3RlZE5vZGVJRChpZCkgeworICAgICAgdGhpcy56b29tVG9JRF8oaWQpOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0ZWROb2RlSUQoKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVfICE9IG51bGwpCisgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTm9kZV8uaWQ7CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGVkTm9kZSgpIHsKKyAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZV8gIT0gbnVsbCkKKyAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWROb2RlXzsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICBnZXRNaW5TaXplOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdHIudWkuYi5pc0VsZW1lbnRBdHRhY2hlZFRvRG9jdW1lbnQodGhpcykpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IG1lYXN1cmUgd2hlbiB1bmF0dGFjaGVkJyk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworCisgICAgICB2YXIgdGl0bGVXaWR0aCA9IHRoaXMucXVlcnlTZWxlY3RvcigKKyAgICAgICAgICAnI3RpdGxlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CisgICAgICB2YXIgbWFyZ2luID0gdGhpcy5tYXJnaW47CisgICAgICB2YXIgbWFyZ2luV2lkdGggPSBtYXJnaW4ubGVmdCArIG1hcmdpbi5yaWdodDsKKyAgICAgIHZhciBtYXJnaW5IZWlnaHQgPSBtYXJnaW4udG9wICsgbWFyZ2luLmJvdHRvbTsKKworICAgICAgLy8gVE9ETyh2bWl1cmEpOiBDYWxjIHRoaXMgd2hlbiB3ZSdyZSBkb25lIHdpdGggbGF5b3V0LgorICAgICAgcmV0dXJuIHsKKyAgICAgICAgd2lkdGg6IDYwMCwKKyAgICAgICAgaGVpZ2h0OiA2MDAKKyAgICAgIH07CisgICAgfSwKKworICAgIGdldExlZ2VuZEtleXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIFRoaXMgY2xhc3MgY3JlYXRlcyBpdHMgb3duIGxlZ2VuZCwgaW5zdGVhZCBvZiB1c2luZyBDaGFydEJhc2UuCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICB1cGRhdGVTY2FsZXNfOiBmdW5jdGlvbih3aWR0aCwgaGVpZ2h0KSB7CisgICAgICBpZiAodGhpcy5kYXRhXyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisgICAgfSwKKworICAgIC8vIEludGVycG9sYXRlIHRoZSBzY2FsZXMhCisgICAgYXJjVHdlZW5fOiBmdW5jdGlvbihtaW5YLCBtYXhYLCBtaW5ZKSB7CisgICAgICB2YXIgdGhhdCA9IHRoaXM7CisgICAgICB2YXIgeGQsIHlkLCB5cjsKKworICAgICAgaWYgKG1pblkgPiAwKSB7CisgICAgICAgIHhkID0gZDMuaW50ZXJwb2xhdGUodGhhdC54RG9tYWluU2NhbGVfLmRvbWFpbigpLCBbbWluWCwgbWF4WF0pOworICAgICAgICB5ZCA9IGQzLmludGVycG9sYXRlKAorICAgICAgICAgICAgdGhhdC55RG9tYWluU2NhbGVfLmRvbWFpbigpLCBbbWluWSwgdGhhdC55RG9tYWluTWF4X10pOworICAgICAgICB5ciA9IGQzLmludGVycG9sYXRlKHRoYXQueURvbWFpblNjYWxlXy5yYW5nZSgpLCBbNTAsIHRoYXQucmFkaXVzX10pOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHhkID0gZDMuaW50ZXJwb2xhdGUodGhhdC54RG9tYWluU2NhbGVfLmRvbWFpbigpLCBbbWluWCwgbWF4WF0pOworICAgICAgICB5ZCA9IGQzLmludGVycG9sYXRlKHRoYXQueURvbWFpblNjYWxlXy5kb21haW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhhdC55RG9tYWluTWluXywgdGhhdC55RG9tYWluTWF4X10pOworICAgICAgICB5ciA9IGQzLmludGVycG9sYXRlKHRoYXQueURvbWFpblNjYWxlXy5yYW5nZSgpLCBbNTAsIHRoYXQucmFkaXVzX10pOworICAgICAgfQorCisgICAgICByZXR1cm4gZnVuY3Rpb24oZCwgaSkgeworICAgICAgICByZXR1cm4gaSA/IGZ1bmN0aW9uKHQpIHsgcmV0dXJuIHRoYXQuYXJjXyhkKTsgfQorICAgICAgICAgICAgOiBmdW5jdGlvbih0KSB7CisgICAgICAgICAgICAgIHRoYXQueERvbWFpblNjYWxlXy5kb21haW4oeGQodCkpOworICAgICAgICAgICAgICB0aGF0LnlEb21haW5TY2FsZV8uZG9tYWluKHlkKHQpKS5yYW5nZSh5cih0KSk7CisgICAgICAgICAgICAgIHJldHVybiB0aGF0LmFyY18oZCk7CisgICAgICAgICAgICB9OworICAgICAgfTsKKyAgICB9LAorCisgICAgZ2V0Tm9kZUJ5SWRfOiBmdW5jdGlvbihpZCkgeworICAgICAgaWYgKCF0aGlzLm5vZGVzXykKKyAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgIGlmIChpZCA8IDAgfHwgaWQgPiB0aGlzLm5vZGVzXy5sZW5ndGgpCisgICAgICAgIHJldHVybiBudWxsOworCisgICAgICByZXR1cm4gdGhpcy5ub2Rlc19baWRdOworICAgIH0sCisKKyAgICB6b29tT3V0XzogZnVuY3Rpb24oKSB7CisgICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7CisgICAgfSwKKworICAgIC8vIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0LCB0aWxsIHRoZSBnaXZlbiBkZXB0aCwKKyAgICAvLyB0aGUgdHJlZSBpcyBsaW5lYXIuIChpLmUsIGEgc2luZ2xlIHN0cmluZyB3aXRoIG5vIGJyYW5jaGVzLikKKyAgICB6b29tVG9EZXB0aDogZnVuY3Rpb24oZGVwdGgpIHsKKyAgICAgIHZhciBub2RlID0gdGhpcy5kYXRhXy5ub2RlczsKKyAgICAgIHdoaWxlIChub2RlLmRlcHRoICE9PSBkZXB0aCkgeworICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggIT09IDEpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b29tVG9EZXB0aCByZXF1aXJlcyB0aGUgdHJlZSB0byBiZSBsaW5lYXIgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0aWxsIHRoZSBzcGVjaWZpZWQgZGVwdGguJyk7CisgICAgICAgIG5vZGUgPSBub2RlLmNoaWxkcmVuWzBdOworICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMuem9vbVRvSURfKG5vZGUuaWQpOworICAgIH0sCisKKyAgICB6b29tVG9JRF86IGZ1bmN0aW9uKGlkKSB7CisgICAgICB2YXIgZCA9IHRoaXMuZ2V0Tm9kZUJ5SWRfKGlkKTsKKworICAgICAgaWYgKGQpIHsKKyAgICAgICAgdGhpcy5jbGlja2VkWV8gPSBkLnk7CisgICAgICAgIHRoaXMubWluWF8gPSBkLng7CisgICAgICAgIHRoaXMubWF4WF8gPSBkLnggKyBkLmR4OworICAgICAgICB0aGlzLm1pbllfID0gZC55OworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHRoaXMuY2xpY2tlZFlfID0gLTE7CisgICAgICAgIHRoaXMubWluWF8gPSAwLjA7CisgICAgICAgIHRoaXMubWF4WF8gPSAxLjA7CisgICAgICAgIHRoaXMubWluWV8gPSAwLjA7CisgICAgICB9CisKKyAgICAgIHRoaXMuc2VsZWN0ZWROb2RlXyA9IGQ7CisgICAgICB0aGlzLnJlZHJhd1NlZ21lbnRzXyh0aGlzLm1pblhfLCB0aGlzLm1heFhfLCB0aGlzLm1pbllfKTsKKyAgICAgIHZhciBwYXRoID0gdGhpcy52aXNfLnNlbGVjdEFsbCgncGF0aCcpOworCisgICAgICBwYXRoLnRyYW5zaXRpb24oKQorICAgICAgICAuZHVyYXRpb24oNzUwKQorICAgICAgICAuYXR0clR3ZWVuKCdkJywgdGhpcy5hcmNUd2Vlbl8odGhpcy5taW5YXywgdGhpcy5tYXhYXywgdGhpcy5taW5ZXykpOworCisgICAgICB0aGlzLnNob3dCcmVhZGNydW1ic18oZCk7CisKKyAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ25vZGUtc2VsZWN0ZWQnKTsKKyAgICAgIGUubm9kZSA9IGQ7CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSk7CisgICAgfSwKKworICAgIGNsaWNrXzogZnVuY3Rpb24oZCkgeworICAgICAgaWYgKGQzLmV2ZW50LnNoaWZ0S2V5KSB7CisgICAgICAgIC8vIFpvb20gcGFydGlhbGx5IG9udG8gdGhlIHNlbGVjdGVkIHJhbmdlCisgICAgICAgIHZhciBkaWZmX3ggPSAodGhpcy5tYXhYXyAtIHRoaXMubWluWF8pICogMC41OworICAgICAgICB0aGlzLm1pblhfID0gZC54ICsgZC5keCAqIDAuNSAtIGRpZmZfeCAqIDAuNTsKKyAgICAgICAgdGhpcy5taW5YXyA9IHRoaXMubWluWF8gPCAwLjAgPyAwLjAgOiB0aGlzLm1pblhfOworICAgICAgICB0aGlzLm1heFhfID0gdGhpcy5taW5YXyArIGRpZmZfeDsKKyAgICAgICAgdGhpcy5tYXhYXyA9IHRoaXMubWF4WF8gPiAxLjAgPyAxLjAgOiB0aGlzLm1heFhfOworICAgICAgICB0aGlzLm1pblhfID0gdGhpcy5tYXhYXyAtIGRpZmZfeDsKKworICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZV8gPSBkOworICAgICAgICB0aGlzLnJlZHJhd1NlZ21lbnRzXyh0aGlzLm1pblhfLCB0aGlzLm1heFhfLCB0aGlzLm1pbllfKTsKKworICAgICAgICB2YXIgcGF0aCA9IHRoaXMudmlzXy5zZWxlY3RBbGwoJ3BhdGgnKTsKKyAgICAgICAgcGF0aC50cmFuc2l0aW9uKCkKKyAgICAgICAgICAuZHVyYXRpb24oNzUwKQorICAgICAgICAgIC5hdHRyVHdlZW4oJ2QnLCB0aGlzLmFyY1R3ZWVuXyh0aGlzLm1pblhfLCB0aGlzLm1heFhfLCB0aGlzLm1pbllfKSk7CisKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB0aGlzLnNlbGVjdGVkTm9kZUlEID0gZC5pZDsKKworICAgICAgdmFyIGUgPSBuZXcgdHIuYi5FdmVudCgnbm9kZS1jbGlja2VkJyk7CisgICAgICBlLm5vZGUgPSBkOworICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOworICAgIH0sCisKKyAgICAvLyBHaXZlbiBhIG5vZGUgaW4gYSBwYXJ0aXRpb24gbGF5b3V0LCByZXR1cm4gYW4gYXJyYXkgb2YgYWxsIG9mIGl0cworICAgIC8vIGFuY2VzdG9yIG5vZGVzLCBoaWdoZXN0IGZpcnN0LCBidXQgZXhjbHVkaW5nIHRoZSByb290LgorICAgIGdldEFuY2VzdG9yc186IGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgIHZhciBwYXRoID0gW107CisgICAgICB2YXIgY3VycmVudCA9IG5vZGU7CisgICAgICB3aGlsZSAoY3VycmVudC5wYXJlbnQpIHsKKyAgICAgICAgcGF0aC51bnNoaWZ0KGN1cnJlbnQpOworICAgICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQ7CisgICAgICB9CisgICAgICByZXR1cm4gcGF0aDsKKyAgICB9LAorCisgICAgc2hvd0JyZWFkY3J1bWJzXzogZnVuY3Rpb24oZCkgeworICAgICAgdmFyIHNlcXVlbmNlQXJyYXkgPSB0aGlzLmdldEFuY2VzdG9yc18oZCk7CisKKyAgICAgIC8vIEZhZGUgYWxsIHRoZSBzZWdtZW50cy4KKyAgICAgIHRoaXMudmlzXy5zZWxlY3RBbGwoJ3BhdGgnKQorICAgICAgICAuc3R5bGUoJ29wYWNpdHknLCBmdW5jdGlvbihkKSB7CisgICAgICAgICAgICByZXR1cm4gc2VxdWVuY2VBcnJheS5pbmRleE9mKGQpID49IDAgPyAwLjcgOiAxLjA7CisgICAgICAgICAgfSk7CisKKyAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ25vZGUtaGlnaGxpZ2h0ZWQnKTsKKyAgICAgIGUubm9kZSA9IGQ7CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSk7CisKKyAgICAgIC8vaWYgKHRoaXMuZGF0YV8ub25Ob2RlSGlnaGxpZ2h0ZWQgIT0gdW5kZWZpbmVkKQorICAgICAgLy8gIHRoaXMuZGF0YV8ub25Ob2RlSGlnaGxpZ2h0ZWQodGhpcywgZCk7CisgICAgfSwKKworICAgIG1vdXNlT3Zlcl86IGZ1bmN0aW9uKGQpIHsKKyAgICAgIHRoaXMuc2hvd0JyZWFkY3J1bWJzXyhkKTsKKyAgICB9LAorCisgICAgLy8gUmVzdG9yZSBldmVyeXRoaW5nIHRvIGZ1bGwgb3BhY2l0eSB3aGVuIG1vdmluZyBvZmYgdGhlCisgICAgLy8gdmlzdWFsaXphdGlvbi4KKyAgICBtb3VzZUxlYXZlXzogZnVuY3Rpb24oZCkgeworICAgICAgdmFyIHRoYXQgPSB0aGlzOworICAgICAgLy8gSGlkZSB0aGUgYnJlYWRjcnVtYiB0cmFpbAorICAgICAgaWYgKHRoYXQuc2VsZWN0ZWROb2RlXyAhPSBudWxsKQorICAgICAgICB0aGF0LnNob3dCcmVhZGNydW1ic18odGhhdC5zZWxlY3RlZE5vZGVfKTsKKyAgICAgIGVsc2UgeworICAgICAgICAvLyBEZWFjdGl2YXRlIGFsbCBzZWdtZW50cyBkdXJpbmcgdHJhbnNpdGlvbi4KKyAgICAgICAgdGhhdC52aXNfLnNlbGVjdEFsbCgncGF0aCcpCisgICAgICAgICAgLm9uKCdtb3VzZW92ZXInLCBudWxsKTsKKworICAgICAgICAvLyBUcmFuc2l0aW9uIGVhY2ggc2VnbWVudCB0byBmdWxsIG9wYWNpdHkgYW5kIHRoZW4gcmVhY3RpdmF0ZSBpdC4KKyAgICAgICAgdGhhdC52aXNfLnNlbGVjdEFsbCgncGF0aCcpCisgICAgICAgICAgLnRyYW5zaXRpb24oKQorICAgICAgICAgIC5kdXJhdGlvbigzMDApCisgICAgICAgICAgLnN0eWxlKCdvcGFjaXR5JywgMSkKKyAgICAgICAgICAuZWFjaCgnZW5kJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIGQzLnNlbGVjdCh0aGF0KS5vbignbW91c2VvdmVyJywgZnVuY3Rpb24oZCkgeworICAgICAgICAgICAgICAgIHRoYXQubW91c2VPdmVyXyhkKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLy8gVXBkYXRlIHZpc2libGUgc2VnbWVudHMgYmV0d2VlbiBuZXcgbWluL21heCByYW5nZXMuCisgICAgcmVkcmF3U2VnbWVudHNfOiBmdW5jdGlvbihtaW5YLCBtYXhYLCBtaW5ZKSB7CisgICAgICB2YXIgdGhhdCA9IHRoaXM7CisgICAgICB2YXIgc2NhbGUgPSBtYXhYIC0gbWluWDsKKyAgICAgIHZhciB2aXNpYmxlX25vZGVzID0gdGhhdC5ub2Rlc18uZmlsdGVyKGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgcmV0dXJuIGQuZGVwdGggJiYKKyAgICAgICAgICAgIChkLnkgPj0gbWluWSkgJiYKKyAgICAgICAgICAgIChkLnggPCBtYXhYKSAmJgorICAgICAgICAgICAgKGQueCArIGQuZHggPiBtaW5YKSAmJgorICAgICAgICAgICAgKGQuZHggLyBzY2FsZSA+IDAuMDAxKTsKKyAgICAgIH0pOworICAgICAgdmFyIHBhdGggPSB0aGF0LnZpc18uZGF0YShbdGhhdC5kYXRhXy5ub2Rlc10pLnNlbGVjdEFsbCgncGF0aCcpCisgICAgICAgIC5kYXRhKHZpc2libGVfbm9kZXMsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuaWQ7IH0pOworCisgICAgICBwYXRoLmVudGVyKCkuaW5zZXJ0KCdzdmc6cGF0aCcpCisgICAgICAgIC5hdHRyKCdkJywgdGhhdC5hcmNfKQorICAgICAgICAuYXR0cignZmlsbC1ydWxlJywgJ2V2ZW5vZGQnKQorICAgICAgICAuc3R5bGUoJ2ZpbGwnLCBmdW5jdGlvbihkZCkgeyByZXR1cm4gZ2V0Q29sb3JPZktleShkZC5jYXRlZ29yeSk7IH0pCisgICAgICAgIC5zdHlsZSgnb3BhY2l0eScsIDEuMCkKKyAgICAgICAgLm9uKCdtb3VzZW92ZXInLCBmdW5jdGlvbihkKSB7IHRoYXQubW91c2VPdmVyXyhkKTsgfSkKKyAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKGQpIHsgdGhhdC5jbGlja18oZCk7IH0pOworCisgICAgICBwYXRoLmV4aXQoKS5yZW1vdmUoKTsKKyAgICAgIHJldHVybiBwYXRoOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgQ2hhcnRCYXNlLnByb3RvdHlwZS51cGRhdGVDb250ZW50c18uY2FsbCh0aGlzKTsKKyAgICAgIGlmICghdGhpcy5kYXRhXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgdGhhdCA9IHRoaXM7CisKKyAgICAgIC8vIFBhcnRpdGlvbiBkYXRhIGludG8gZDMgbm9kZXMuCisgICAgICB2YXIgcGFydGl0aW9uID0gZDMubGF5b3V0LnBhcnRpdGlvbigpCisgICAgICAgICAgLnNpemUoWzEsIDFdKQorICAgICAgICAgIC52YWx1ZShmdW5jdGlvbihkKSB7IHJldHVybiBkLnNpemU7IH0pOworICAgICAgdGhhdC5ub2Rlc18gPSBwYXJ0aXRpb24ubm9kZXModGhhdC5kYXRhXy5ub2Rlcyk7CisKKyAgICAgIC8vIEFsbG9jYXRlIGFuIGlkIHRvIGVhY2ggbm9kZS4gIEdhdGhlciBhbGwgY2F0ZWdvcmllcy4KKyAgICAgIHZhciBjYXRlZ29yeURpY3QgPSB7fTsKKyAgICAgIHRoYXQubm9kZXNfLmZvckVhY2goZnVuY3Rpb24gZihkLCBpKSB7CisgICAgICAgIGQuaWQgPSBpOworICAgICAgICBjYXRlZ29yeURpY3RbZC5jYXRlZ29yeV0gPSBudWxsOworICAgICAgfSk7CisKKyAgICAgIC8vIENyZWF0ZSBsZWdlbmQuCisgICAgICB2YXIgbGkgPSB7CisgICAgICAgIHc6IDg1LCBoOiAyMCwgczogMywgcjogMworICAgICAgfTsKKworICAgICAgdmFyIGxlZ2VuZCA9IHRoYXQubGVnZW5kU2VsXy5hcHBlbmQoJ3N2ZzpzdmcnKQorICAgICAgICAgIC5hdHRyKCd3aWR0aCcsIGxpLncpCisgICAgICAgICAgLmF0dHIoJ2hlaWdodCcsIGQzLmtleXMoY2F0ZWdvcnlEaWN0KS5sZW5ndGggKiAobGkuaCArIGxpLnMpKTsKKworICAgICAgdmFyIGcgPSBsZWdlbmQuc2VsZWN0QWxsKCdnJykKKyAgICAgICAgICAuZGF0YShkMy5rZXlzKGNhdGVnb3J5RGljdCkpCisgICAgICAgICAgLmVudGVyKCkuYXBwZW5kKCdzdmc6ZycpCisgICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIGZ1bmN0aW9uKGQsIGkpIHsKKyAgICAgICAgICAgIHJldHVybiAndHJhbnNsYXRlKDAsJyArIGkgKiAobGkuaCArIGxpLnMpICsgJyknOworICAgICAgICAgIH0pOworCisgICAgICBnLmFwcGVuZCgnc3ZnOnJlY3QnKQorICAgICAgICAgIC5hdHRyKCdyeCcsIGxpLnIpCisgICAgICAgICAgLmF0dHIoJ3J5JywgbGkucikKKyAgICAgICAgICAuYXR0cignd2lkdGgnLCBsaS53KQorICAgICAgICAgIC5hdHRyKCdoZWlnaHQnLCBsaS5oKQorICAgICAgICAgIC5zdHlsZSgnZmlsbCcsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGdldENvbG9yT2ZLZXkoZCk7IH0pOworCisgICAgICBnLmFwcGVuZCgnc3ZnOnRleHQnKQorICAgICAgICAgIC5hdHRyKCd4JywgbGkudyAvIDIpCisgICAgICAgICAgLmF0dHIoJ3knLCBsaS5oIC8gMikKKyAgICAgICAgICAuYXR0cignZHknLCAnMC4zNWVtJykKKyAgICAgICAgICAuYXR0cigndGV4dC1hbmNob3InLCAnbWlkZGxlJykKKyAgICAgICAgICAuYXR0cignZmlsbCcsICcjZmZmJykKKyAgICAgICAgICAuYXR0cignZm9udC1zaXplJywgJzEycHgnKQorICAgICAgICAgIC50ZXh0KGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQ7IH0pOworCisgICAgICAvLyBDcmVhdGUgc3VuYnVyc3QgdmlzdWFsaXphdGlvbi4KKyAgICAgIHZhciB3aWR0aCA9IHRoYXQuY2hhcnRBcmVhU2l6ZS53aWR0aDsKKyAgICAgIHZhciBoZWlnaHQgPSB0aGF0LmNoYXJ0QXJlYVNpemUuaGVpZ2h0OworICAgICAgdGhhdC5yYWRpdXNfID0gTWF0aC5tYXgoTUlOX1JBRElVUywgTWF0aC5taW4od2lkdGgsIGhlaWdodCkgLyAyKTsKKworICAgICAgZDMuc2VsZWN0KHRoYXQucGllR3JvdXBfKS5hdHRyKAorICAgICAgICAgICd0cmFuc2Zvcm0nLAorICAgICAgICAgICd0cmFuc2xhdGUoJyArIHdpZHRoIC8gMiArICcsJyArIGhlaWdodCAvIDIgKyAnKScpOworCisgICAgICB0aGF0LnNlbGVjdGVkTm9kZV8gPSBudWxsOworCisgICAgICB2YXIgZGVwdGggPSAxLjAgKyBkMy5tYXgodGhhdC5ub2Rlc18sIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuZGVwdGg7IH0pOworICAgICAgdGhhdC55RG9tYWluTWluXyA9IDEuMCAvIGRlcHRoOworICAgICAgdGhhdC55RG9tYWluTWF4XyA9IE1hdGgubWluKE1hdGgubWF4KGRlcHRoLCAyMCksIDUwKSAvIGRlcHRoOworCisgICAgICB0aGF0LnhEb21haW5TY2FsZV8gPSBkMy5zY2FsZS5saW5lYXIoKQorICAgICAgICAgIC5yYW5nZShbMCwgMiAqIE1hdGguUEldKTsKKworICAgICAgdGhhdC55RG9tYWluU2NhbGVfID0gZDMuc2NhbGUuc3FydCgpCisgICAgICAgICAgLmRvbWFpbihbdGhhdC55RG9tYWluTWluXywgdGhhdC55RG9tYWluTWF4X10pCisgICAgICAgICAgLnJhbmdlKFs1MCwgdGhhdC5yYWRpdXNfXSk7CisKKyAgICAgIHRoYXQuYXJjXyA9IGQzLnN2Zy5hcmMoKQorICAgICAgICAgIC5zdGFydEFuZ2xlKGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigyICogTWF0aC5QSSwgdGhhdC54RG9tYWluU2NhbGVfKGQueCkpKTsKKyAgICAgICAgICB9KQorICAgICAgICAgIC5lbmRBbmdsZShmdW5jdGlvbihkKSB7CisgICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwKKyAgICAgICAgICAgICAgICBNYXRoLm1pbigyICogTWF0aC5QSSwgdGhhdC54RG9tYWluU2NhbGVfKGQueCArIGQuZHgpKSk7CisgICAgICAgICAgfSkKKyAgICAgICAgICAuaW5uZXJSYWRpdXMoZnVuY3Rpb24oZCkgeworICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIHRoYXQueURvbWFpblNjYWxlXygoZC55KSkpOworICAgICAgICAgIH0pCisgICAgICAgICAgLm91dGVyUmFkaXVzKGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCB0aGF0LnlEb21haW5TY2FsZV8oKGQueSArIGQuZHkpKSk7CisgICAgICAgICAgfSk7CisKKworICAgICAgLy8gQm91bmRpbmcgY2lyY2xlIHVuZGVybmVhdGggdGhlIHN1bmJ1cnN0LCB0byBtYWtlIGl0IGVhc2llciB0byBkZXRlY3QKKyAgICAgIC8vIHdoZW4gdGhlIG1vdXNlIGxlYXZlcyB0aGUgcGFyZW50IGcuCisgICAgICB0aGF0LmJhY2tTZWxfLmFwcGVuZCgnc3ZnOmNpcmNsZScpCisgICAgICAgICAgLmF0dHIoJ3InLCB0aGF0LnJhZGl1c18pCisgICAgICAgICAgLnN0eWxlKCdvcGFjaXR5JywgMC4wKQorICAgICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbigpIHsgdGhhdC56b29tT3V0XygpOyB9KTsKKworCisgICAgICB0aGF0LnZpc18gPSBkMy5zZWxlY3QodGhhdC5wYXRoc0dyb3VwXyk7CisgICAgICB0aGF0LnNlbGVjdGVkTm9kZUlEID0gMDsKKyAgICAgIHRoYXQudmlzXy5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uKGQpIHsgdGhhdC5tb3VzZUxlYXZlXyhkKTsgfSk7CisgICAgfSwKKworICAgIHVwZGF0ZUhpZ2hsaWdodF86IGZ1bmN0aW9uKCkgeworICAgICAgQ2hhcnRCYXNlLnByb3RvdHlwZS51cGRhdGVIaWdobGlnaHRfLmNhbGwodGhpcyk7CisgICAgICAvLyBVcGRhdGUgY29sb3Igb2YgcGllIHNlZ21lbnRzLgorICAgICAgdmFyIHBhdGhzR3JvdXBTZWwgPSBkMy5zZWxlY3QodGhpcy5wYXRoc0dyb3VwXyk7CisgICAgICB2YXIgdGhhdCA9IHRoaXM7CisgICAgICBwYXRoc0dyb3VwU2VsLnNlbGVjdEFsbCgnLmFyYycpLmVhY2goZnVuY3Rpb24oZCwgaSkgeworICAgICAgICB2YXIgb3JpZ0RhdGEgPSB0aGF0LmRhdGFfW2ldOworICAgICAgICB2YXIgaGlnaGxpZ2h0ZWQgPSBvcmlnRGF0YS5sYWJlbCA9PSB0aGF0LmN1cnJlbnRIaWdobGlnaHRlZExlZ2VuZEtleTsKKyAgICAgICAgdmFyIGNvbG9yID0gZ2V0Q29sb3JPZktleShvcmlnRGF0YS5sYWJlbCwgaGlnaGxpZ2h0ZWQpOworICAgICAgICB0aGlzLnN0eWxlLmZpbGwgPSBnZXRDb2xvck9mS2V5KG9yaWdEYXRhLmxhYmVsLCBoaWdobGlnaHRlZCk7CisgICAgICB9KTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBTdW5idXJzdENoYXJ0OiBTdW5idXJzdENoYXJ0CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3N1bmJ1cnN0X2NoYXJ0X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9zdW5idXJzdF9jaGFydF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI5NjNlMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS9zdW5idXJzdF9jaGFydF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2Uvc3VuYnVyc3RfY2hhcnQuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdGVzdCgnc2ltcGxlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNoYXJ0ID0gbmV3IHRyLnVpLmIuU3VuYnVyc3RDaGFydCgpOworICAgIGNoYXJ0LndpZHRoID0gNjAwOworICAgIGNoYXJ0LmhlaWdodCA9IDYwMDsKKyAgICBhc3NlcnQuZXF1YWwoY2hhcnQuZ2V0QXR0cmlidXRlKCd3aWR0aCcpLCAnNjAwJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoYXJ0LmdldEF0dHJpYnV0ZSgnaGVpZ2h0JyksICc2MDAnKTsKKyAgICBjaGFydC5jaGFydFRpdGxlID0gJ0NoYXJ0IHRpdGxlJzsKKyAgICB2YXIgbm9kZXMgPSB7CisgICAgICBjYXRlZ29yeTogJ3Jvb3QnLAorICAgICAgbmFtZTogJzxBbGwgVGhyZWFkcz4nLAorICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgeworICAgICAgICAgIGNhdGVnb3J5OiAnVGhyZWFkJywKKyAgICAgICAgICBuYW1lOiAnVGhyZWFkIDEnLAorICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKKyAgICAgICAgICAgICAgbmFtZTogJ2ZvbygpJywKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Nocm9tZScsCisgICAgICAgICAgICAgICAgICBuYW1lOiAnZm9vKCknLAorICAgICAgICAgICAgICAgICAgc2l6ZTogMTUwCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Nocm9tZScsCisgICAgICAgICAgICAgICAgICBuYW1lOiAnYmFyKCknLAorICAgICAgICAgICAgICAgICAgc2l6ZTogMjAwCisgICAgICAgICAgICAgICAgfV0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKKyAgICAgICAgICAgICAgbmFtZTogJ2JhcigpJywKKyAgICAgICAgICAgICAgc2l6ZTogMjAwCisgICAgICAgICAgICB9XQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgY2F0ZWdvcnk6ICdUaHJlYWQnLAorICAgICAgICAgIG5hbWU6ICdUaHJlYWQgMicsCisgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdKYXZhJywKKyAgICAgICAgICAgICAgbmFtZTogJ0phdmEnLAorICAgICAgICAgICAgICBzaXplOiAxMDAKKyAgICAgICAgICAgIH1dCisgICAgICAgIH1dCisgICAgfTsKKyAgICBjaGFydC5kYXRhID0geworICAgICAgbm9kZXM6IG5vZGVzCisgICAgfTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdGFibGUuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczMzI5NzkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdGFibGUuaHRtbApAQCAtMCwwICsxLDEyMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+CisKKzwhLS0KK0BmaWxlb3ZlcnZpZXcgQSBjb250YWluZXIgdGhhdCBjb25zdHJ1Y3RzIGEgdGFibGUtbGlrZSBjb250YWluZXIuCistLT4KKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYi10YWJsZSI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgICA6aG9zdCB7CisgICAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICB9CisKKyAgICAgIHRhYmxlIHsKKyAgICAgICAgZm9udC1zaXplOiAxMnB4OworCisgICAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOworICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOworICAgICAgICBib3JkZXItc3BhY2luZzogMDsKKyAgICAgICAgYm9yZGVyLXdpZHRoOiAwOworICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBpbml0aWFsOworICAgICAgfQorCisgICAgICB0ciA+IHRkIHsKKyAgICAgICAgcGFkZGluZzogMnB4IDRweCAycHggNHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7CisgICAgICB9CisKKyAgICAgIHRyOmZvY3VzLAorICAgICAgdGQ6Zm9jdXMgeworICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkIHJnYmEoMCwwLDAsMC4xKTsKKyAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7CisgICAgICB9CisKKyAgICAgIGJ1dHRvbi50b2dnbGUtYnV0dG9uIHsKKyAgICAgICAgaGVpZ2h0OiAxNXB4OworICAgICAgICBsaW5lLWhlaWdodDogNjAlOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgIH0KKworICAgICAgYnV0dG9uID4gKiB7CisgICAgICAgIGhlaWdodDogMTVweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgICAgIH0KKworICAgICAgdGQuYnV0dG9uLWNvbHVtbiB7CisgICAgICAgIHdpZHRoOiAzMHB4OworICAgICAgfQorCisgICAgICB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5zZW5zaXRpdmU6aG92ZXIgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjOworICAgICAgfQorCisgICAgICB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCB7CisgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworCisgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7CisgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOworCisgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZmZmZmZmOworICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTsKKyAgICAgIH0KKworICAgICAgdGFibGUgPiB0Zm9vdCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7CisgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgfQorCisgICAgICAvKiBTZWxlY3Rpb24uICovCisgICAgICB0YWJsZSA+IHRib2R5LnJvdy1zZWxlY3Rpb24tbW9kZSA+IHRyW3NlbGVjdGVkXSwKKyAgICAgIHRhYmxlID4gdGJvZHkuY2VsbC1zZWxlY3Rpb24tbW9kZSA+IHRyID4gdGRbc2VsZWN0ZWRdIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMywgMTk5LCAxNjUpOyAgLyogdHVycXVvaXNlICovCisgICAgICB9CisgICAgICB0YWJsZSA+IHRib2R5LmNlbGwtc2VsZWN0aW9uLW1vZGUucm93LWhpZ2hsaWdodC1lbmFibGVkID4KKyAgICAgICAgICB0ci5oaWdobGlnaHRlZC1yb3cgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEzLCAyMzYsIDIyOSk7ICAvKiBsaWdodCB0dXJxdW9pc2UgKi8KKyAgICAgIH0KKworICAgICAgLyogSG92ZXIuICovCisgICAgICB0YWJsZSA+IHRib2R5LnJvdy1zZWxlY3Rpb24tbW9kZSA+CisgICAgICAgICAgdHI6aG92ZXI6bm90KC5lbXB0eS1yb3cpOm5vdChbc2VsZWN0ZWRdKSwKKyAgICAgIHRhYmxlID4gdGJvZHkuY2VsbC1zZWxlY3Rpb24tbW9kZSA+CisgICAgICAgICAgdHI6bm90KC5lbXB0eS1yb3cpOm5vdCguaGlnaGxpZ2h0ZWQtcm93KSA+CisgICAgICAgICAgdGQuc3VwcG9ydHMtc2VsZWN0aW9uOmhvdmVyOm5vdChbc2VsZWN0ZWRdKSwKKyAgICAgIHRhYmxlID4gdGZvb3QgPiB0cjpob3ZlciB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7ICAvKiBncmV5ICovCisgICAgICB9CisgICAgICB0YWJsZSA+IHRib2R5LmNlbGwtc2VsZWN0aW9uLW1vZGUucm93LWhpZ2hsaWdodC1lbmFibGVkID4KKyAgICAgICAgICB0cjpob3Zlcjpub3QoLmVtcHR5LXJvdyk6bm90KC5oaWdobGlnaHRlZC1yb3cpIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjsgIC8qIGxpZ2h0IGdyZXkgKi8KKyAgICAgIH0KKworICAgICAgLyogSG92ZXIgb24gc2VsZWN0ZWQgYW5kIGhpZ2hsaWdodGVkIGVsZW1lbnRzLiAqLworICAgICAgdGFibGUgPiB0Ym9keS5yb3ctc2VsZWN0aW9uLW1vZGUgPiB0cjpob3ZlcltzZWxlY3RlZF0sCisgICAgICB0YWJsZSA+IHRib2R5LmNlbGwtc2VsZWN0aW9uLW1vZGUgPiB0ciA+IHRkOmhvdmVyW3NlbGVjdGVkXSwKKyAgICAgIHRhYmxlID4gdGJvZHkuY2VsbC1zZWxlY3Rpb24tbW9kZSA+IHRyLmhpZ2hsaWdodGVkLXJvdyA+IHRkOmhvdmVyIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MSwgMjE3LCAyMDIpOyAgLyogc2VtaS1saWdodCB0dXJxdW9pc2UgKi8KKyAgICAgIH0KKworICAgICAgdGFibGUgPiB0Ym9keSA+IHRyLmVtcHR5LXJvdyA+IHRkIHsKKyAgICAgICAgY29sb3I6ICM2NjY7CisgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgICAgfQorCisgICAgICB0YWJsZSA+IHRib2R5Lmhhcy1mb290ZXIgPiB0cjpsYXN0LWNoaWxkID4gdGQgeworICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTsKKyAgICAgIH0KKworICAgICAgdGFibGUgPiB0Zm9vdCA+IHRyOmZpcnN0LWNoaWxkID4gdGQgeworICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZmZmZjsKKyAgICAgIH0KKworICAgICAgZXhwYW5kLWJ1dHRvbiB7CisgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgY3Vyc29yOiBwb2ludGVyOworICAgICAgICBmb250LXNpemU6IDlweDsKKyAgICAgICAgbWluLXdpZHRoOiA4cHg7CisgICAgICAgIG1heC13aWR0aDogOHB4OworICAgICAgfQorCisgICAgICAuYnV0dG9uLWV4cGFuZGVkIHsKKyAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOworICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHRhYmxlPgorICAgICAgPHRoZWFkIGlkPSJoZWFkIj4KKyAgICAgIDwvdGhlYWQ+CisgICAgICA8dGJvZHkgaWQ9ImJvZHkiPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0Zm9vdCBpZD0iZm9vdCI+CisgICAgICA8L3Rmb290PgorICAgIDwvdGFibGU+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgKGZ1bmN0aW9uKCkgeworICAgIHZhciBSSUdIVF9BUlJPVyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNWI2KTsKKyAgICB2YXIgVU5TT1JURURfQVJST1cgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjVCRik7CisgICAgdmFyIEFTQ0VORElOR19BUlJPVyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNUI0KTsKKyAgICB2YXIgREVTQ0VORElOR19BUlJPVyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyNUJFKTsKKyAgICB2YXIgQkFTSUNfSU5ERU5UQVRJT04gPSA4OworCisgICAgUG9seW1lcih7CisgICAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8gPSBmYWxzZTsKKyAgICAgICAgdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8gPSBmYWxzZTsKKyAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPSB1bmRlZmluZWQ7CisgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gPSB1bmRlZmluZWQ7CisKKyAgICAgICAgdGhpcy50YWJsZUNvbHVtbnNfID0gW107CisgICAgICAgIHRoaXMudGFibGVSb3dzXyA9IFtdOworICAgICAgICB0aGlzLnRhYmxlUm93c0luZm9fID0gW107CisgICAgICAgIHRoaXMudGFibGVGb290ZXJSb3dzXyA9IFtdOworICAgICAgICB0aGlzLnNvcnRDb2x1bW5JbmRleF8gPSB1bmRlZmluZWQ7CisgICAgICAgIHRoaXMuc29ydERlc2NlbmRpbmdfID0gZmFsc2U7CisgICAgICAgIHRoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXyA9IFtdOworICAgICAgICB0aGlzLmhlYWRlckNlbGxzXyA9IFtdOworICAgICAgICB0aGlzLnNob3dIZWFkZXJfID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5lbXB0eVZhbHVlXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXyA9ICdzdWJSb3dzJzsKKyAgICAgIH0sCisKKyAgICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy4kLmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICdrZXlkb3duJywgdGhpcy5vbktleURvd25fLmJpbmQodGhpcyksIHRydWUpOworICAgICAgfSwKKworICAgICAgY2xlYXI6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXyA9IGZhbHNlOworICAgICAgICB0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXyA9IGZhbHNlOworICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4XyA9IHVuZGVmaW5lZDsKKworICAgICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7CisgICAgICAgIHRoaXMudGFibGVDb2x1bW5zXyA9IFtdOworICAgICAgICB0aGlzLnRhYmxlUm93c18gPSBbXTsKKyAgICAgICAgdGhpcy50YWJsZVJvd3NJbmZvXyA9IG5ldyBXZWFrTWFwKCk7CisgICAgICAgIHRoaXMudGFibGVGb290ZXJSb3dzXyA9IFtdOworICAgICAgICB0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fID0gbmV3IFdlYWtNYXAoKTsKKyAgICAgICAgdGhpcy5zb3J0Q29sdW1uSW5kZXhfID0gdW5kZWZpbmVkOworICAgICAgICB0aGlzLnNvcnREZXNjZW5kaW5nXyA9IGZhbHNlOworICAgICAgICB0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc18gPSBbXTsKKyAgICAgICAgdGhpcy5oZWFkZXJDZWxsc18gPSBbXTsKKyAgICAgICAgdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXyA9ICdzdWJSb3dzJzsKKyAgICAgIH0sCisKKyAgICAgIGdldCBzaG93SGVhZGVyKCkgeworICAgICAgICByZXR1cm4gdGhpcy5zaG93SGVhZGVyXzsKKyAgICAgIH0sCisKKyAgICAgIHNldCBzaG93SGVhZGVyKHNob3dIZWFkZXIpIHsKKyAgICAgICAgdGhpcy5zaG93SGVhZGVyXyA9IHNob3dIZWFkZXI7CisgICAgICAgIHRoaXMuc2NoZWR1bGVSZWJ1aWxkSGVhZGVyc18oKTsKKyAgICAgIH0sCisKKyAgICAgIHNldCBzdWJSb3dzUHJvcGVydHlOYW1lKG5hbWUpIHsKKyAgICAgICAgdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lXyA9IG5hbWU7CisgICAgICB9LAorCisgICAgICBnZXQgZW1wdHlWYWx1ZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZW1wdHlWYWx1ZV87CisgICAgICB9LAorCisgICAgICBzZXQgZW1wdHlWYWx1ZShlbXB0eVZhbHVlKSB7CisgICAgICAgIHZhciBwcmV2aW91c0VtcHR5VmFsdWUgPSB0aGlzLmVtcHR5VmFsdWVfOworICAgICAgICB0aGlzLmVtcHR5VmFsdWVfID0gZW1wdHlWYWx1ZTsKKyAgICAgICAgaWYgKHRoaXMudGFibGVSb3dzXy5sZW5ndGggPT09IDAgJiYgZW1wdHlWYWx1ZSAhPT0gcHJldmlvdXNFbXB0eVZhbHVlKQorICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTsKKyAgICAgIH0sCisKKyAgICAgIC8qKgorICAgICAgICogRGF0YSBvYmplY3RzIHNob3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgZmllbGRzOgorICAgICAgICogICBtYW5kYXRvcnk6IHRpdGxlLCB2YWx1ZQorICAgICAgICogICBvcHRpb25hbDogd2lkdGgge3N0cmluZ30sIGNtcCB7ZnVuY3Rpb259LCBjb2xTcGFuIHtudW1iZXJ9LAorICAgICAgICogICAgICAgICAgICAgc2hvd0V4cGFuZEJ1dHRvbnMge2Jvb2xlYW59LCB0ZXh0QWxpZ24ge3N0cmluZ30KKyAgICAgICAqCisgICAgICAgKiBAcGFyYW0ge0FycmF5fSBjb2x1bW5zIEFuIGFycmF5IG9mIGRhdGEgb2JqZWN0cy4KKyAgICAgICAqLworICAgICAgc2V0IHRhYmxlQ29sdW1ucyhjb2x1bW5zKSB7CisgICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGNvbHVtc24gd2l0aCBleHBhbmQgYnV0dG9ucy4uLgorICAgICAgICB2YXIgY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIGlmIChjb2x1bW5zW2ldLnNob3dFeHBhbmRCdXR0b25zKQorICAgICAgICAgICAgY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zLnB1c2goaSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbHVtbnNXaXRoRXhwYW5kQnV0dG9ucy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgICAvLyBGaXJzdCBjb2x1bW4gaWYgbm9uZSBoYXZlIHNwZWNpZmllZC4KKyAgICAgICAgICBjb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnMgPSBbMF07CisgICAgICAgIH0KKworICAgICAgICAvLyBTYW5pdHkgY2hlY2sgY29sdW1ucy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIGNvbEluZm8gPSBjb2x1bW5zW2ldOworICAgICAgICAgIGlmIChjb2xJbmZvLndpZHRoID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIHZhciBoYXNFeHBhbmRCdXR0b24gPSBjb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnMuaW5kZXhPZihpKSAhPT0gLTE7CisKKyAgICAgICAgICB2YXIgdyA9IGNvbEluZm8ud2lkdGg7CisgICAgICAgICAgaWYgKHcpIHsKKyAgICAgICAgICAgIGlmICgvXGQrcHgvLnRlc3QodykpIHsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKC9cZCslLy50ZXN0KHcpKSB7CisgICAgICAgICAgICAgIGlmIChoYXNFeHBhbmRCdXR0b24pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbnMgY2Fubm90IGJlICUtc2l6ZWQgYW5kIGhvc3QgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgYW4gZXhwYW5kIGJ1dHRvbicpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB3aWR0aCBzdHJpbmcnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21taXQgdGhlIGNoYW5nZS4KKyAgICAgICAgdGhpcy50YWJsZUNvbHVtbnNfID0gY29sdW1uczsKKyAgICAgICAgdGhpcy5oZWFkZXJDZWxsc18gPSBbXTsKKyAgICAgICAgdGhpcy5jb2x1bW5zV2l0aEV4cGFuZEJ1dHRvbnNfID0gY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zOworICAgICAgICB0aGlzLnNvcnRDb2x1bW5JbmRleCA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5zY2hlZHVsZVJlYnVpbGRIZWFkZXJzXygpOworCisgICAgICAgIC8vIEJsb3cgYXdheSB0aGUgdGFibGUgcm93cywgdG9vLgorICAgICAgICB0aGlzLnRhYmxlUm93cyA9IHRoaXMudGFibGVSb3dzXzsKKyAgICAgIH0sCisKKyAgICAgIGdldCB0YWJsZUNvbHVtbnMoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc187CisgICAgICB9LAorCisgICAgICAvKioKKyAgICAgICAqIEBwYXJhbSB7QXJyYXl9IHJvd3MgQW4gYXJyYXkgb2YgJ3Jvdycgb2JqZWN0cyB3aXRoIHRoZSBmb2xsb3dpbmcKKyAgICAgICAqIGZpZWxkczoKKyAgICAgICAqICAgb3B0aW9uYWw6IHN1YlJvd3MgQW4gYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHNhbWUgJ3JvdycKKyAgICAgICAqICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlLiBTZXQgc3ViUm93c1Byb3BlcnR5TmFtZSB0byB1c2UgYW4KKyAgICAgICAqICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpdmUgZmllbGQgbmFtZS4KKyAgICAgICAqLworICAgICAgc2V0IHRhYmxlUm93cyhyb3dzKSB7CisgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID0gdW5kZWZpbmVkOworICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfID0gdW5kZWZpbmVkOworICAgICAgICB0aGlzLm1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfKCk7CisgICAgICAgIHRoaXMudGFibGVSb3dzXyA9IHJvd3M7CisgICAgICAgIHRoaXMudGFibGVSb3dzSW5mb18gPSBuZXcgV2Vha01hcCgpOworICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZEJvZHlfKCk7CisgICAgICB9LAorCisgICAgICBnZXQgdGFibGVSb3dzKCkgeworICAgICAgICByZXR1cm4gdGhpcy50YWJsZVJvd3NfOworICAgICAgfSwKKworICAgICAgc2V0IGZvb3RlclJvd3Mocm93cykgeworICAgICAgICB0aGlzLnRhYmxlRm9vdGVyUm93c18gPSByb3dzOworICAgICAgICB0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fID0gbmV3IFdlYWtNYXAoKTsKKyAgICAgICAgdGhpcy5zY2hlZHVsZVJlYnVpbGRGb290ZXJfKCk7CisgICAgICB9LAorCisgICAgICBnZXQgZm9vdGVyUm93cygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudGFibGVGb290ZXJSb3dzXzsKKyAgICAgIH0sCisKKyAgICAgIHNldCBzb3J0Q29sdW1uSW5kZXgobnVtYmVyKSB7CisgICAgICAgIGlmIChudW1iZXIgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIHRoaXMuc29ydENvbHVtbkluZGV4XyA9IHVuZGVmaW5lZDsKKyAgICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckFycm93c18oKTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aCA8PSBudW1iZXIpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2x1bW4gbnVtYmVyICcgKyBudW1iZXIgKyAnIGlzIG91dCBvZiBib3VuZHMuJyk7CisgICAgICAgIGlmICghdGhpcy50YWJsZUNvbHVtbnNfW251bWJlcl0uY21wKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sdW1uICcgKyBudW1iZXIgKyAnIGRvZXMgbm90IGhhdmUgYSBjb21wYXJhdG9yLicpOworCisgICAgICAgIHRoaXMuc29ydENvbHVtbkluZGV4XyA9IG51bWJlcjsKKyAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJBcnJvd3NfKCk7CisgICAgICAgIHRoaXMuc2NoZWR1bGVSZWJ1aWxkQm9keV8oKTsKKyAgICAgIH0sCisKKyAgICAgIGdldCBzb3J0Q29sdW1uSW5kZXgoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnNvcnRDb2x1bW5JbmRleF87CisgICAgICB9LAorCisgICAgICBzZXQgc29ydERlc2NlbmRpbmcodmFsdWUpIHsKKyAgICAgICAgdmFyIG5ld1ZhbHVlID0gISF2YWx1ZTsKKworICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuc29ydERlc2NlbmRpbmdfKSB7CisgICAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZ18gPSBuZXdWYWx1ZTsKKyAgICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckFycm93c18oKTsKKyAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZEJvZHlfKCk7CisgICAgICAgIH0KKyAgICAgIH0sCisKKyAgICAgIGdldCBzb3J0RGVzY2VuZGluZygpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuc29ydERlc2NlbmRpbmdfOworICAgICAgfSwKKworICAgICAgdXBkYXRlSGVhZGVyQXJyb3dzXzogZnVuY3Rpb24oKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5oZWFkZXJDZWxsc18ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICBpZiAoIXRoaXMudGFibGVDb2x1bW5zX1tpXS5jbXApIHsKKyAgICAgICAgICAgIHRoaXMuaGVhZGVyQ2VsbHNfW2ldLnNpZGVDb250ZW50ID0gJyc7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGkgIT09IHRoaXMuc29ydENvbHVtbkluZGV4XykgeworICAgICAgICAgICAgdGhpcy5oZWFkZXJDZWxsc19baV0uc2lkZUNvbnRlbnQgPSBVTlNPUlRFRF9BUlJPVzsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIH0KKyAgICAgICAgICB0aGlzLmhlYWRlckNlbGxzX1tpXS5zaWRlQ29udGVudCA9IHRoaXMuc29ydERlc2NlbmRpbmdfID8KKyAgICAgICAgICAgIERFU0NFTkRJTkdfQVJST1cgOiBBU0NFTkRJTkdfQVJST1c7CisgICAgICAgIH0KKyAgICAgIH0sCisKKyAgICAgIHNvcnRSb3dzXzogZnVuY3Rpb24ocm93cykgeworICAgICAgICByb3dzLnNvcnQoZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgIGlmICh0aGlzLnNvcnREZXNjZW5kaW5nXykKKyAgICAgICAgICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAoCisgICAgICAgICAgICAgICAgcm93Qi51c2VyUm93LCByb3dBLnVzZXJSb3cpOworICAgICAgICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAoCisgICAgICAgICAgICAgICAgcm93QS51c2VyUm93LCByb3dCLnVzZXJSb3cpOworICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICAvLyBTb3J0IGV4cGFuZGVkIHN1YiByb3dzIHJlY3Vyc2l2ZWx5LgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICBpZiAocm93c1tpXS5pc0V4cGFuZGVkKQorICAgICAgICAgICAgdGhpcy5zb3J0Um93c18ocm93c1tpXVt0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSk7CisgICAgICAgIH0KKyAgICAgIH0sCisKKyAgICAgIGdlbmVyYXRlSGVhZGVyQ29sdW1uc186IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLmhlYWRlckNlbGxzXyA9IFtdOworICAgICAgICB0aGlzLiQuaGVhZC50ZXh0Q29udGVudCA9ICcnOworICAgICAgICBpZiAoIXRoaXMuc2hvd0hlYWRlcl8pCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciB0ciA9IHRoaXMuYXBwZW5kTmV3RWxlbWVudF8odGhpcy4kLmhlYWQsICd0cicpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciB0ZCA9IHRoaXMuYXBwZW5kTmV3RWxlbWVudF8odHIsICd0ZCcpOworCisgICAgICAgICAgdmFyIGhlYWRlckNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlLWhlYWRlci1jZWxsJyk7CisKKyAgICAgICAgICBpZiAodGhpcy5zaG93SGVhZGVyKQorICAgICAgICAgICAgaGVhZGVyQ2VsbC5jZWxsVGl0bGUgPSB0aGlzLnRhYmxlQ29sdW1uc19baV0udGl0bGU7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaGVhZGVyQ2VsbC5jZWxsVGl0bGUgPSAnJzsKKworICAgICAgICAgIC8vIElmIHRoZSB0YWJsZSBjYW4gYmUgc29ydGVkIGJ5IHRoaXMgY29sdW1uLCBhdHRhY2ggYSB0YXAgY2FsbGJhY2sKKyAgICAgICAgICAvLyB0byB0aGUgY29sdW1uLgorICAgICAgICAgIGlmICh0aGlzLnRhYmxlQ29sdW1uc19baV0uY21wKSB7CisgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdzZW5zaXRpdmUnKTsKKyAgICAgICAgICAgIGhlYWRlckNlbGwudGFwQ2FsbGJhY2sgPSB0aGlzLmNyZWF0ZVNvcnRDYWxsYmFja18oaSk7CisgICAgICAgICAgICAvLyBTZXQgYXJyb3cgcG9zaXRpb24sIGRlcGVuZGluZyBvbiB0aGUgc29ydENvbHVtbkluZGV4LgorICAgICAgICAgICAgaWYgKHRoaXMuc29ydENvbHVtbkluZGV4XyA9PT0gaSkKKyAgICAgICAgICAgICAgaGVhZGVyQ2VsbC5zaWRlQ29udGVudCA9IHRoaXMuc29ydERlc2NlbmRpbmdfID8KKyAgICAgICAgICAgICAgICBERVNDRU5ESU5HX0FSUk9XIDogQVNDRU5ESU5HX0FSUk9XOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBoZWFkZXJDZWxsLnNpZGVDb250ZW50ID0gVU5TT1JURURfQVJST1c7CisgICAgICAgICAgfQorCisgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoaGVhZGVyQ2VsbCk7CisgICAgICAgICAgdGhpcy5oZWFkZXJDZWxsc18ucHVzaChoZWFkZXJDZWxsKTsKKyAgICAgICAgfQorICAgICAgfSwKKworICAgICAgYXBwbHlTaXplc186IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGhpcy50YWJsZVJvd3NfLmxlbmd0aCA9PT0gMCAmJiAhdGhpcy5zaG93SGVhZGVyKQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIHJvd1RvUmVtb3ZlU2l6aW5nOworICAgICAgICB2YXIgcm93VG9TaXplOworICAgICAgICBpZiAodGhpcy5zaG93SGVhZGVyKSB7CisgICAgICAgICAgcm93VG9TaXplID0gdGhpcy4kLmhlYWQuY2hpbGRyZW5bMF07CisgICAgICAgICAgcm93VG9SZW1vdmVTaXppbmcgPSB0aGlzLiQuYm9keS5jaGlsZHJlblswXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByb3dUb1NpemUgPSB0aGlzLiQuYm9keS5jaGlsZHJlblswXTsKKyAgICAgICAgICByb3dUb1JlbW92ZVNpemluZyA9IHRoaXMuJC5oZWFkLmNoaWxkcmVuWzBdOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgaWYgKHJvd1RvUmVtb3ZlU2l6aW5nICYmIHJvd1RvUmVtb3ZlU2l6aW5nLmNoaWxkcmVuW2ldKSB7CisgICAgICAgICAgICB2YXIgdGRUb1JlbW92ZVNpemluZyA9IHJvd1RvUmVtb3ZlU2l6aW5nLmNoaWxkcmVuW2ldOworICAgICAgICAgICAgdGRUb1JlbW92ZVNpemluZy5zdHlsZS5taW5XaWR0aCA9ICcnOworICAgICAgICAgICAgdGRUb1JlbW92ZVNpemluZy5zdHlsZS53aWR0aCA9ICcnOworICAgICAgICAgIH0KKworICAgICAgICAgIC8vIEFwcGx5IHNpemluZy4KKyAgICAgICAgICB2YXIgdGQgPSByb3dUb1NpemUuY2hpbGRyZW5baV07CisKKyAgICAgICAgICB2YXIgZGVsdGE7CisgICAgICAgICAgaWYgKHRoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXy5pbmRleE9mKGkpICE9PSAtMSkgeworICAgICAgICAgICAgdGQuc3R5bGUucGFkZGluZ0xlZnQgPSBCQVNJQ19JTkRFTlRBVElPTiArICdweCc7CisgICAgICAgICAgICBkZWx0YSA9IEJBU0lDX0lOREVOVEFUSU9OICsgJ3B4JzsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVsdGEgPSB1bmRlZmluZWQ7CisgICAgICAgICAgfQorCisgICAgICAgICAgZnVuY3Rpb24gY2FsYyhiYXNlLCBkZWx0YSkgeworICAgICAgICAgICAgaWYgKGRlbHRhKQorICAgICAgICAgICAgICByZXR1cm4gJ2NhbGMoJyArIGJhc2UgKyAnIC0gJyArIGRlbHRhICsgJyknOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXR1cm4gYmFzZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2YXIgdyA9IHRoaXMudGFibGVDb2x1bW5zX1tpXS53aWR0aDsKKyAgICAgICAgICBpZiAodykgeworICAgICAgICAgICAgaWYgKC9cZCtweC8udGVzdCh3KSkgeworICAgICAgICAgICAgICB0ZC5zdHlsZS5taW5XaWR0aCA9IGNhbGModywgZGVsdGEpOworICAgICAgICAgICAgfSBlbHNlIGlmICgvXGQrJS8udGVzdCh3KSkgeworICAgICAgICAgICAgICB0ZC5zdHlsZS53aWR0aCA9IHc7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCB3aWR0aCBzdHJpbmc6ICcgKyB3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0sCisKKyAgICAgIGNyZWF0ZVNvcnRDYWxsYmFja186IGZ1bmN0aW9uKGNvbHVtbk51bWJlcikgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHByZXZpb3VzSW5kZXggPSB0aGlzLnNvcnRDb2x1bW5JbmRleDsKKyAgICAgICAgICB0aGlzLnNvcnRDb2x1bW5JbmRleCA9IGNvbHVtbk51bWJlcjsKKyAgICAgICAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gY29sdW1uTnVtYmVyKQorICAgICAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZyA9IGZhbHNlOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuc29ydERlc2NlbmRpbmcgPSAhdGhpcy5zb3J0RGVzY2VuZGluZzsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgICAgfSwKKworICAgICAgZ2VuZXJhdGVUYWJsZVJvd05vZGVzXzogZnVuY3Rpb24odGFibGVTZWN0aW9uLCB1c2VyUm93cywgcm93SW5mb01hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudGF0aW9uLCBsYXN0QWRkZWRSb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRSb3dJbmZvKSB7CisgICAgICAgIGlmICh0aGlzLnNvcnRDb2x1bW5JbmRleF8gIT09IHVuZGVmaW5lZCAmJgorICAgICAgICAgICAgdGFibGVTZWN0aW9uID09PSB0aGlzLiQuYm9keSkgeworICAgICAgICAgIHVzZXJSb3dzID0gdXNlclJvd3Muc2xpY2UoKTsgLy8gRG9uJ3QgbWVzcyB3aXRoIHRoZSBpbnB1dCBkYXRhLgorICAgICAgICAgIHVzZXJSb3dzLnNvcnQoZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgICAgdmFyIGMgPSB0aGlzLnRhYmxlQ29sdW1uc19bdGhpcy5zb3J0Q29sdW1uSW5kZXhfXS5jbXAoCisgICAgICAgICAgICAgICAgICByb3dBLCByb3dCKTsKKyAgICAgICAgICAgIGlmICh0aGlzLnNvcnREZXNjZW5kaW5nXykKKyAgICAgICAgICAgICAgYyA9IC1jOworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlclJvd3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgdXNlclJvdyA9IHVzZXJSb3dzW2ldOworICAgICAgICAgIHZhciByb3dJbmZvID0gdGhpcy5nZXRPckNyZWF0ZVJvd0luZm9Gb3JfKHJvd0luZm9NYXAsIHVzZXJSb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Um93SW5mbyk7CisgICAgICAgICAgdmFyIGh0bWxOb2RlID0gdGhpcy5nZXRIVE1MTm9kZUZvclJvd0luZm9fKAorICAgICAgICAgICAgICB0YWJsZVNlY3Rpb24sIHJvd0luZm8sIHJvd0luZm9NYXAsIGluZGVudGF0aW9uKTsKKworICAgICAgICAgIGlmIChsYXN0QWRkZWRSb3cgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgLy8gUHV0IGZpcnN0IGludG8gdGhlIHRhYmxlLgorICAgICAgICAgICAgdGFibGVTZWN0aW9uLmluc2VydEJlZm9yZShodG1sTm9kZSwgdGFibGVTZWN0aW9uLmZpcnN0Q2hpbGQpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIHNob3J0aGFuZCBmb3IgaW5zZXJ0QWZ0ZXIoaHRtbE5vZGUsIGxhc3RBZGRlZCkuCisgICAgICAgICAgICB2YXIgbmV4dFNpYmxpbmdPZkxhc3RBZGRlZCA9IGxhc3RBZGRlZFJvdy5uZXh0U2libGluZzsKKyAgICAgICAgICAgIHRhYmxlU2VjdGlvbi5pbnNlcnRCZWZvcmUoaHRtbE5vZGUsIG5leHRTaWJsaW5nT2ZMYXN0QWRkZWQpOworICAgICAgICAgIH0KKyAgICAgICAgICB0aGlzLnVwZGF0ZVRhYkluZGV4Rm9yVGFibGVSb3dOb2RlXyhodG1sTm9kZSk7CisKKyAgICAgICAgICBsYXN0QWRkZWRSb3cgPSBodG1sTm9kZTsKKyAgICAgICAgICBpZiAoIXJvd0luZm8uaXNFeHBhbmRlZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgLy8gQXBwZW5kIHN1YnJvd3Mgbm93LgorICAgICAgICAgIGxhc3RBZGRlZFJvdyA9IHRoaXMuZ2VuZXJhdGVUYWJsZVJvd05vZGVzXygKKyAgICAgICAgICAgICAgdGFibGVTZWN0aW9uLCB1c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dLCByb3dJbmZvTWFwLAorICAgICAgICAgICAgICBpbmRlbnRhdGlvbiArIDEsIGxhc3RBZGRlZFJvdywgcm93SW5mbyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhc3RBZGRlZFJvdzsKKyAgICAgIH0sCisKKyAgICAgIGdldE9yQ3JlYXRlUm93SW5mb0Zvcl86IGZ1bmN0aW9uKHJvd0luZm9NYXAsIHVzZXJSb3csIHBhcmVudFJvd0luZm8pIHsKKyAgICAgICAgaWYgKHJvd0luZm9NYXAuaGFzKHVzZXJSb3cpKQorICAgICAgICAgIHJldHVybiByb3dJbmZvTWFwLmdldCh1c2VyUm93KTsKKworICAgICAgICB2YXIgcm93SW5mbyA9IHsKKyAgICAgICAgICB1c2VyUm93OiB1c2VyUm93LAorICAgICAgICAgIGh0bWxOb2RlOiB1bmRlZmluZWQsCisgICAgICAgICAgaXNFeHBhbmRlZDogdXNlclJvdy5pc0V4cGFuZGVkIHx8IGZhbHNlLAorICAgICAgICAgIHBhcmVudFJvd0luZm86IHBhcmVudFJvd0luZm8KKyAgICAgICAgfTsKKyAgICAgICAgcm93SW5mb01hcC5zZXQodXNlclJvdywgcm93SW5mbyk7CisgICAgICAgIHJldHVybiByb3dJbmZvOworICAgICAgfSwKKworICAgICAgZ2V0SFRNTE5vZGVGb3JSb3dJbmZvXzogZnVuY3Rpb24odGFibGVTZWN0aW9uLCByb3dJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93SW5mb01hcCwgaW5kZW50YXRpb24pIHsKKyAgICAgICAgaWYgKHJvd0luZm8uaHRtbE5vZGUpCisgICAgICAgICAgcmV0dXJuIHJvd0luZm8uaHRtbE5vZGU7CisKKyAgICAgICAgdmFyIElOREVOVF9TUEFDRSA9IGluZGVudGF0aW9uICogMTY7CisgICAgICAgIHZhciBJTkRFTlRfU1BBQ0VfTk9fQlVUVE9OID0gaW5kZW50YXRpb24gKiAxNiArIEJBU0lDX0lOREVOVEFUSU9OOworICAgICAgICB2YXIgdHJFbGVtZW50ID0gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CisgICAgICAgIHJvd0luZm8uaHRtbE5vZGUgPSB0ckVsZW1lbnQ7CisgICAgICAgIHJvd0luZm8uaW5kZW50YXRpb24gPSBpbmRlbnRhdGlvbjsKKyAgICAgICAgdHJFbGVtZW50LnJvd0luZm8gPSByb3dJbmZvOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDspIHsKKyAgICAgICAgICB2YXIgdGQgPSB0aGlzLmFwcGVuZE5ld0VsZW1lbnRfKHRyRWxlbWVudCwgJ3RkJyk7CisgICAgICAgICAgdGQuY29sdW1uSW5kZXggPSBpOworCisgICAgICAgICAgdmFyIGNvbHVtbiA9IHRoaXMudGFibGVDb2x1bW5zX1tpXTsKKyAgICAgICAgICB2YXIgdmFsdWUgPSBjb2x1bW4udmFsdWUocm93SW5mby51c2VyUm93KTsKKyAgICAgICAgICB2YXIgY29sU3BhbiA9IGNvbHVtbi5jb2xTcGFuID8gY29sdW1uLmNvbFNwYW4gOiAxOworICAgICAgICAgIHRkLnN0eWxlLmNvbFNwYW4gPSBjb2xTcGFuOworICAgICAgICAgIGlmIChjb2x1bW4udGV4dEFsaWduKSB7CisgICAgICAgICAgICB0ZC5zdHlsZS50ZXh0QWxpZ24gPSBjb2x1bW4udGV4dEFsaWduOworICAgICAgICAgIH0KKworICAgICAgICAgIGlmICh0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oaSkpCisgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdzdXBwb3J0cy1zZWxlY3Rpb24nKTsKKworICAgICAgICAgIGlmICh0aGlzLmNvbHVtbnNXaXRoRXhwYW5kQnV0dG9uc18uaW5kZXhPZihpKSAhPSAtMSkgeworICAgICAgICAgICAgaWYgKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSAmJgorICAgICAgICAgICAgICAgIHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgIHRkLnN0eWxlLnBhZGRpbmdMZWZ0ID0gSU5ERU5UX1NQQUNFICsgJ3B4JzsKKyAgICAgICAgICAgICAgdmFyIGV4cGFuZEJ1dHRvbiA9IHRoaXMuYXBwZW5kTmV3RWxlbWVudF8odGQsCisgICAgICAgICAgICAgICAgICAnZXhwYW5kLWJ1dHRvbicpOworICAgICAgICAgICAgICBleHBhbmRCdXR0b24udGV4dENvbnRlbnQgPSBSSUdIVF9BUlJPVzsKKyAgICAgICAgICAgICAgaWYgKHJvd0luZm8uaXNFeHBhbmRlZCkKKyAgICAgICAgICAgICAgICBleHBhbmRCdXR0b24uY2xhc3NMaXN0LmFkZCgnYnV0dG9uLWV4cGFuZGVkJyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0ZC5zdHlsZS5wYWRkaW5nTGVmdCA9IElOREVOVF9TUEFDRV9OT19CVVRUT04gKyAncHgnOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQodHIudWkuYi5hc0hUTUxPclRleHROb2RlKHZhbHVlLCB0aGlzLm93bmVyRG9jdW1lbnQpKTsKKworICAgICAgICAgIGkgKz0gY29sU3BhbjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBuZWVkc0NsaWNrTGlzdGVuZXIgPSBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMuY29sdW1uc1dpdGhFeHBhbmRCdXR0b25zXy5sZW5ndGgpCisgICAgICAgICAgbmVlZHNDbGlja0xpc3RlbmVyID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAodGFibGVTZWN0aW9uID09IHRoaXMuJC5ib2R5KQorICAgICAgICAgIG5lZWRzQ2xpY2tMaXN0ZW5lciA9IHRydWU7CisKKyAgICAgICAgaWYgKG5lZWRzQ2xpY2tMaXN0ZW5lcikgeworICAgICAgICAgIHRyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICBpZiAoZS50YXJnZXQudGFnTmFtZSA9PSAnRVhQQU5ELUJVVFRPTicpIHsKKyAgICAgICAgICAgICAgdGhpcy5zZXRFeHBhbmRlZEZvclVzZXJSb3dfKAorICAgICAgICAgICAgICAgICAgdGFibGVTZWN0aW9uLCByb3dJbmZvTWFwLAorICAgICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93LCAhcm93SW5mby5pc0V4cGFuZGVkKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBnZXRURChjdXIpIHsKKyAgICAgICAgICAgICAgaWYgKGN1ciA9PT0gdHJFbGVtZW50KQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd29haCcpOworICAgICAgICAgICAgICBpZiAoY3VyLnBhcmVudEVsZW1lbnQgPT09IHRyRWxlbWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3VyOworICAgICAgICAgICAgICByZXR1cm4gZ2V0VEQoY3VyLnBhcmVudEVsZW1lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pIHsKKyAgICAgICAgICAgICAgdmFyIGlzQWxyZWFkeVNlbGVjdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgIHZhciB0ZFRoYXRXYXNDbGlja2VkID0gZ2V0VEQoZS50YXJnZXQpOworICAgICAgICAgICAgICBpZiAoIXRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKSB7CisgICAgICAgICAgICAgICAgaXNBbHJlYWR5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyA9PT0gcm93SW5mbzsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpc0FscmVhZHlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID09PSByb3dJbmZvOworICAgICAgICAgICAgICAgIGlzQWxyZWFkeVNlbGVjdGVkICY9ICh0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfID09PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZFRoYXRXYXNDbGlja2VkLmNvbHVtbkluZGV4KTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAoaXNBbHJlYWR5U2VsZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAocm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dICYmCisgICAgICAgICAgICAgICAgICAgIHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RXhwYW5kZWRGb3JVc2VyUm93XygKKyAgICAgICAgICAgICAgICAgICAgICB0YWJsZVNlY3Rpb24sIHJvd0luZm9NYXAsCisgICAgICAgICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93LCAhcm93SW5mby5pc0V4cGFuZGVkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhpcy5kaWRUYWJsZVJvd0luZm9HZXRDbGlja2VkXygKKyAgICAgICAgICAgICAgICAgICAgcm93SW5mbywgdGRUaGF0V2FzQ2xpY2tlZC5jb2x1bW5JbmRleCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGlmIChyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10gJiYKKyAgICAgICAgICAgICAgICAgIHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnNldEV4cGFuZGVkRm9yVXNlclJvd18oCisgICAgICAgICAgICAgICAgICAgIHRhYmxlU2VjdGlvbiwgcm93SW5mb01hcCwKKyAgICAgICAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93LCAhcm93SW5mby5pc0V4cGFuZGVkKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcm93SW5mby5odG1sTm9kZTsKKyAgICAgIH0sCisKKyAgICAgIHJlbW92ZVN1Yk5vZGVzXzogZnVuY3Rpb24odGFibGVTZWN0aW9uLCByb3dJbmZvLCByb3dJbmZvTWFwKSB7CisgICAgICAgIGlmIChyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAodmFyIGkgPSAwOworICAgICAgICAgICAgIGkgPCByb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgc3ViUm93ID0gcm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dW2ldOworICAgICAgICAgIHZhciBzdWJSb3dJbmZvID0gcm93SW5mb01hcC5nZXQoc3ViUm93KTsKKyAgICAgICAgICBpZiAoIXN1YlJvd0luZm8pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIHZhciBzdWJOb2RlID0gc3ViUm93SW5mby5odG1sTm9kZTsKKyAgICAgICAgICBpZiAoc3ViTm9kZSAmJiBzdWJOb2RlLnBhcmVudE5vZGUgPT09IHRhYmxlU2VjdGlvbikgeworICAgICAgICAgICAgdGFibGVTZWN0aW9uLnJlbW92ZUNoaWxkKHN1Yk5vZGUpOworICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJOb2Rlc18odGFibGVTZWN0aW9uLCBzdWJSb3dJbmZvLCByb3dJbmZvTWFwKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0sCisKKyAgICAgIHNjaGVkdWxlUmVidWlsZEhlYWRlcnNfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5oZWFkZXJEaXJ0eV8gPSB0cnVlOworICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZF8oKTsKKyAgICAgIH0sCisKKyAgICAgIHNjaGVkdWxlUmVidWlsZEJvZHlfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5ib2R5RGlydHlfID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zY2hlZHVsZVJlYnVpbGRfKCk7CisgICAgICB9LAorCisgICAgICBzY2hlZHVsZVJlYnVpbGRGb290ZXJfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5mb290ZXJEaXJ0eV8gPSB0cnVlOworICAgICAgICB0aGlzLnNjaGVkdWxlUmVidWlsZF8oKTsKKyAgICAgIH0sCisKKyAgICAgIHNjaGVkdWxlUmVidWlsZF86IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGhpcy5yZWJ1aWxkUGVuZGluZ18pCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLnJlYnVpbGRQZW5kaW5nXyA9IHRydWU7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdGhpcy5yZWJ1aWxkUGVuZGluZ18gPSBmYWxzZTsKKyAgICAgICAgICB0aGlzLnJlYnVpbGQoKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpLCAwKTsKKyAgICAgIH0sCisKKyAgICAgIHJlYnVpbGRJZk5lZWRlZF86IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnJlYnVpbGQoKTsKKyAgICAgIH0sCisKKyAgICAgIHJlYnVpbGQ6IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgd2FzQm9keU9ySGVhZGVyRGlydHkgPSB0aGlzLmhlYWRlckRpcnR5XyB8fCB0aGlzLmJvZHlEaXJ0eV87CisKKyAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGlydHlfKSB7CisgICAgICAgICAgdGhpcy5nZW5lcmF0ZUhlYWRlckNvbHVtbnNfKCk7CisgICAgICAgICAgdGhpcy5oZWFkZXJEaXJ0eV8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5ib2R5RGlydHlfKSB7CisgICAgICAgICAgdGhpcy4kLmJvZHkudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgICAgICB0aGlzLmdlbmVyYXRlVGFibGVSb3dOb2Rlc18oCisgICAgICAgICAgICAgIHRoaXMuJC5ib2R5LAorICAgICAgICAgICAgICB0aGlzLnRhYmxlUm93c18sIHRoaXMudGFibGVSb3dzSW5mb18sIDAsCisgICAgICAgICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICBpZiAodGhpcy50YWJsZVJvd3NfLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmVtcHR5VmFsdWVfICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHZhciB0ckVsZW1lbnQgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKKyAgICAgICAgICAgIHRoaXMuJC5ib2R5LmFwcGVuZENoaWxkKHRyRWxlbWVudCk7CisgICAgICAgICAgICB0ckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZW1wdHktcm93Jyk7CisgICAgICAgICAgICB2YXIgdGQgPSB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKKyAgICAgICAgICAgIHRyRWxlbWVudC5hcHBlbmRDaGlsZCh0ZCk7CisgICAgICAgICAgICB0ZC5jb2xTcGFuID0gdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDsKKyAgICAgICAgICAgIHZhciBlbXB0eVZhbHVlID0gdGhpcy5lbXB0eVZhbHVlXzsKKyAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKAorICAgICAgICAgICAgICAgIHRyLnVpLmIuYXNIVE1MT3JUZXh0Tm9kZShlbXB0eVZhbHVlLCB0aGlzLm93bmVyRG9jdW1lbnQpKTsKKyAgICAgICAgICB9CisgICAgICAgICAgdGhpcy5ib2R5RGlydHlfID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2FzQm9keU9ySGVhZGVyRGlydHkpCisgICAgICAgICAgdGhpcy5hcHBseVNpemVzXygpOworCisgICAgICAgIGlmICh0aGlzLmZvb3RlckRpcnR5XykgeworICAgICAgICAgIHRoaXMuJC5mb290LnRleHRDb250ZW50ID0gJyc7CisgICAgICAgICAgdGhpcy5nZW5lcmF0ZVRhYmxlUm93Tm9kZXNfKAorICAgICAgICAgICAgICB0aGlzLiQuZm9vdCwKKyAgICAgICAgICAgICAgdGhpcy50YWJsZUZvb3RlclJvd3NfLCB0aGlzLnRhYmxlRm9vdGVyUm93c0luZm9fLCAwLAorICAgICAgICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCk7CisgICAgICAgICAgaWYgKHRoaXMudGFibGVGb290ZXJSb3dzSW5mb18ubGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLiQuYm9keS5jbGFzc0xpc3QuYWRkKCdoYXMtZm9vdGVyJyk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2hhcy1mb290ZXInKTsKKyAgICAgICAgICB9CisgICAgICAgICAgdGhpcy5mb290ZXJEaXJ0eV8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgfSwKKworICAgICAgYXBwZW5kTmV3RWxlbWVudF86IGZ1bmN0aW9uKHBhcmVudCwgdGFnTmFtZSkgeworICAgICAgICB2YXIgZWxlbWVudCA9IHBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CisgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgICB9LAorCisgICAgICBnZXRFeHBhbmRlZEZvclRhYmxlUm93OiBmdW5jdGlvbih1c2VyUm93KSB7CisgICAgICAgIHRoaXMucmVidWlsZElmTmVlZGVkXygpOworICAgICAgICB2YXIgcm93SW5mbyA9IHRoaXMudGFibGVSb3dzSW5mb18uZ2V0KHVzZXJSb3cpOworICAgICAgICBpZiAocm93SW5mbyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUm93IGhhcyBub3QgYmVlbiBzZWVuLCBtdXN0IGV4cGFuZCBpdHMgcGFyZW50cycpOworICAgICAgICByZXR1cm4gcm93SW5mby5pc0V4cGFuZGVkOworICAgICAgfSwKKworICAgICAgc2V0RXhwYW5kZWRGb3JUYWJsZVJvdzogZnVuY3Rpb24odXNlclJvdywgZXhwYW5kZWQpIHsKKyAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7CisgICAgICAgIHZhciByb3dJbmZvID0gdGhpcy50YWJsZVJvd3NJbmZvXy5nZXQodXNlclJvdyk7CisgICAgICAgIGlmIChyb3dJbmZvID09PSB1bmRlZmluZWQpCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSb3cgaGFzIG5vdCBiZWVuIHNlZW4sIG11c3QgZXhwYW5kIGl0cyBwYXJlbnRzJyk7CisgICAgICAgIHJldHVybiB0aGlzLnNldEV4cGFuZGVkRm9yVXNlclJvd18odGhpcy4kLmJvZHksIHRoaXMudGFibGVSb3dzSW5mb18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlclJvdywgZXhwYW5kZWQpOworICAgICAgfSwKKworICAgICAgc2V0RXhwYW5kZWRGb3JVc2VyUm93XzogZnVuY3Rpb24odGFibGVTZWN0aW9uLCByb3dJbmZvTWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlclJvdywgZXhwYW5kZWQpIHsKKyAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7CisKKyAgICAgICAgdmFyIHJvd0luZm8gPSByb3dJbmZvTWFwLmdldCh1c2VyUm93KTsKKyAgICAgICAgaWYgKHJvd0luZm8gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JvdyBoYXMgbm90IGJlZW4gc2VlbiwgbXVzdCBleHBhbmQgaXRzIHBhcmVudHMnKTsKKworICAgICAgICByb3dJbmZvLmlzRXhwYW5kZWQgPSAhIWV4cGFuZGVkOworICAgICAgICAvLyBJZiBubyBub2RlLCB0aGVuIG5vdGhpbmcgZnVydGhlciBuZWVkcyBkb2luZy4KKyAgICAgICAgaWYgKHJvd0luZm8uaHRtbE5vZGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gSWYgaXRzIGRldGFjaGVkLCB0aGVuIG5vdGhpbmcgbmVlZHMgZG9pbmcuCisgICAgICAgIGlmIChyb3dJbmZvLmh0bWxOb2RlLnBhcmVudEVsZW1lbnQgIT09IHRhYmxlU2VjdGlvbikKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gT3RoZXJ3aXNlLCByZWJ1aWxkLgorICAgICAgICB2YXIgZXhwYW5kQnV0dG9uID0gcm93SW5mby5odG1sTm9kZS5xdWVyeVNlbGVjdG9yKCdleHBhbmQtYnV0dG9uJyk7CisgICAgICAgIGlmIChyb3dJbmZvLmlzRXhwYW5kZWQpIHsKKyAgICAgICAgICBleHBhbmRCdXR0b24uY2xhc3NMaXN0LmFkZCgnYnV0dG9uLWV4cGFuZGVkJyk7CisgICAgICAgICAgdmFyIGxhc3RBZGRlZFJvdyA9IHJvd0luZm8uaHRtbE5vZGU7CisgICAgICAgICAgaWYgKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXSkgeworICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVRhYmxlUm93Tm9kZXNfKAorICAgICAgICAgICAgICAgIHRhYmxlU2VjdGlvbiwKKyAgICAgICAgICAgICAgICByb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10sIHJvd0luZm9NYXAsCisgICAgICAgICAgICAgICAgcm93SW5mby5pbmRlbnRhdGlvbiArIDEsCisgICAgICAgICAgICAgICAgbGFzdEFkZGVkUm93LCByb3dJbmZvKTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgZXhwYW5kQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2J1dHRvbi1leHBhbmRlZCcpOworICAgICAgICAgIHRoaXMucmVtb3ZlU3ViTm9kZXNfKHRhYmxlU2VjdGlvbiwgcm93SW5mbywgcm93SW5mb01hcCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLm1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfKCk7CisgICAgICB9LAorCisgICAgICBnZXQgc3VwcG9ydHNTZWxlY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXzsKKyAgICAgIH0sCisKKyAgICAgIHNldCBzdXBwb3J0c1NlbGVjdGlvbihzdXBwb3J0c1NlbGVjdGlvbikgeworICAgICAgICB0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTsKKyAgICAgICAgdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8gPSAhIXN1cHBvcnRzU2VsZWN0aW9uOworICAgICAgICB0aGlzLmRpZFNlbGVjdGlvblN0YXRlQ2hhbmdlXygpOworICAgICAgfSwKKworICAgICAgZ2V0IGNlbGxTZWxlY3Rpb25Nb2RlKCkgeworICAgICAgICByZXR1cm4gdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV87CisgICAgICB9LAorCisgICAgICBzZXQgY2VsbFNlbGVjdGlvbk1vZGUoY2VsbFNlbGVjdGlvbk1vZGUpIHsKKyAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7CisgICAgICAgIHRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfID0gISFjZWxsU2VsZWN0aW9uTW9kZTsKKyAgICAgICAgdGhpcy5kaWRTZWxlY3Rpb25TdGF0ZUNoYW5nZV8oKTsKKyAgICAgIH0sCisKKyAgICAgIGdldCByb3dIaWdobGlnaHRFbmFibGVkKCkgeworICAgICAgICByZXR1cm4gdGhpcy5yb3dIaWdobGlnaHRFbmFibGVkXzsKKyAgICAgIH0sCisKKyAgICAgIHNldCByb3dIaWdobGlnaHRFbmFibGVkKHJvd0hpZ2hsaWdodEVuYWJsZWQpIHsKKyAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7CisgICAgICAgIHRoaXMucm93SGlnaGxpZ2h0RW5hYmxlZF8gPSAhIXJvd0hpZ2hsaWdodEVuYWJsZWQ7CisgICAgICAgIHRoaXMuZGlkU2VsZWN0aW9uU3RhdGVDaGFuZ2VfKCk7CisgICAgICB9LAorCisgICAgICBkaWRTZWxlY3Rpb25TdGF0ZUNoYW5nZV86IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKSB7CisgICAgICAgICAgLy8gU2VsZWN0aW9uIGRpc2FibGVkLgorICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2NlbGwtc2VsZWN0aW9uLW1vZGUnKTsKKyAgICAgICAgICB0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdyb3ctc2VsZWN0aW9uLW1vZGUnKTsKKyAgICAgICAgICB0aGlzLiQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdyb3ctaGlnaGxpZ2h0LWVuYWJsZWQnKTsKKyAgICAgICAgfSBlbHNlIGlmICghdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pIHsKKyAgICAgICAgICAvLyBSb3cgc2VsZWN0aW9uIG1vZGUuCisgICAgICAgICAgdGhpcy4kLmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC1zZWxlY3Rpb24tbW9kZScpOworICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3Jvdy1zZWxlY3Rpb24tbW9kZScpOworICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3Jvdy1oaWdobGlnaHQtZW5hYmxlZCcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIC8vIENlbGwgc2VsZWN0aW9uIG1vZGUuCisgICAgICAgICAgdGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgnY2VsbC1zZWxlY3Rpb24tbW9kZScpOworICAgICAgICAgIHRoaXMuJC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3Jvdy1zZWxlY3Rpb24tbW9kZScpOworICAgICAgICAgIGlmICh0aGlzLnJvd0hpZ2hsaWdodEVuYWJsZWRfKQorICAgICAgICAgICAgdGhpcy4kLmJvZHkuY2xhc3NMaXN0LmFkZCgncm93LWhpZ2hsaWdodC1lbmFibGVkJyk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy4kLmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgncm93LWhpZ2hsaWdodC1lbmFibGVkJyk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiQuYm9keS5jaGlsZHJlbi5sZW5ndGg7IGkrKykKKyAgICAgICAgICB0aGlzLnVwZGF0ZVRhYkluZGV4Rm9yVGFibGVSb3dOb2RlXyh0aGlzLiQuYm9keS5jaGlsZHJlbltpXSk7CisgICAgICAgIHRoaXMubWF5YmVVcGRhdGVTZWxlY3RlZFJvd18oKTsKKyAgICAgIH0sCisKKyAgICAgIG1heWJlVXBkYXRlU2VsZWN0ZWRSb3dfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIFN1cHBvcnRzU2VsZWN0aW9uIG1heSBiZSBvZmYuCisgICAgICAgIGlmICghdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pIHsKKyAgICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkU3RhdGVfKCk7CisgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPSB1bmRlZmluZWQ7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2VsZWN0ZWRVc2VyUm93IG1heSBub3QgYmUgdmlzaWJsZQorICAgICAgICBmdW5jdGlvbiBpc1Zpc2libGUocm93SW5mbykgeworICAgICAgICAgIGlmICghcm93SW5mby5odG1sTm9kZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICByZXR1cm4gISFyb3dJbmZvLmh0bWxOb2RlLnBhcmVudEVsZW1lbnQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzVmlzaWJsZSh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykpIHsKKyAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkU3RhdGVfKCk7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFN0YXRlXygpOworICAgICAgICB2YXIgY3VyUm93SW5mbyA9IHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fOworICAgICAgICB3aGlsZSAoY3VyUm93SW5mbyAmJiAhaXNWaXNpYmxlKGN1clJvd0luZm8pKQorICAgICAgICAgIGN1clJvd0luZm8gPSBjdXJSb3dJbmZvLnBhcmVudFJvd0luZm87CisKKyAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPSBjdXJSb3dJbmZvOworICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18pCisgICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFN0YXRlXygpOworICAgICAgfSwKKworICAgICAgZGlkVGFibGVSb3dJbmZvR2V0Q2xpY2tlZF86IGZ1bmN0aW9uKHJvd0luZm8sIGNvbHVtbkluZGV4KSB7CisgICAgICAgIGlmICghdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykgeworICAgICAgICAgIGlmICghdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGNvbHVtbkluZGV4KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXyAhPT0gcm93SW5mbykKKyAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3cgPSByb3dJbmZvLnVzZXJSb3c7CisKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleCAhPT0gY29sdW1uSW5kZXgpCisgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4ID0gY29sdW1uSW5kZXg7CisgICAgICB9LAorCisgICAgICBnZXQgc2VsZWN0ZWRUYWJsZVJvdygpIHsKKyAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXykKKyAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18udXNlclJvdzsKKyAgICAgIH0sCisKKyAgICAgIHNldCBzZWxlY3RlZFRhYmxlUm93KHVzZXJSb3cpIHsKKyAgICAgICAgdGhpcy5yZWJ1aWxkSWZOZWVkZWRfKCk7CisgICAgICAgIGlmICghdGhpcy5zdXBwb3J0c1NlbGVjdGlvbl8pCisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWxlY3Rpb24gaXMgb2ZmLiBTZXQgc3VwcG9ydHNTZWxlY3Rpb249dHJ1ZS4nKTsKKworICAgICAgICB2YXIgcm93SW5mbyA9IHRoaXMudGFibGVSb3dzSW5mb18uZ2V0KHVzZXJSb3cpOworICAgICAgICBpZiAocm93SW5mbyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUm93IGhhcyBub3QgYmVlbiBzZWVuLCBtdXN0IGV4cGFuZCBpdHMgcGFyZW50cycpOworCisgICAgICAgIHZhciBlID0gdGhpcy5wcmVwYXJlVG9DaGFuZ2VTZWxlY3Rpb25fKCk7CisgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID0gcm93SW5mbzsKKyAgICAgICAgaWYgKHRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKSB7CisgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fICYmCisgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgdmFyIGkgPSB0aGlzLmdldEZpcnN0U2VsZWN0YWJsZUNvbHVtbkluZGV4XygpOworICAgICAgICAgICAgaWYgKGkgPT0gLTEpCisgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbm9wZScpOworICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4XyA9IGk7CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gPSB1bmRlZmluZWQ7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkU3RhdGVfKCk7CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGUpOworICAgICAgfSwKKworICAgICAgdXBkYXRlVGFiSW5kZXhGb3JUYWJsZVJvd05vZGVfOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgaWYgKHRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKSB7CisgICAgICAgICAgaWYgKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykgeworICAgICAgICAgICAgcm93LnRhYkluZGV4ID0gMDsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgaWYgKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oaSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgIHJvdy5jaGlsZHJlbltpXS50YWJJbmRleCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGlmICghdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pIHsKKyAgICAgICAgICAgIHJvdy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYkluZGV4Jyk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJsZUNvbHVtbnNfLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgIGlmICghdGhpcy5kb2VzQ29sdW1uSW5kZXhTdXBwb3J0U2VsZWN0aW9uKGkpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICByb3cuY2hpbGRyZW5baV0ucmVtb3ZlQXR0cmlidXRlKCd0YWJJbmRleCcpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSwKKworICAgICAgcHJlcGFyZVRvQ2hhbmdlU2VsZWN0aW9uXzogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ3NlbGVjdGlvbi1jaGFuZ2VkJyk7CisgICAgICAgIHZhciBwcmV2aW91c1NlbGVjdGVkUm93SW5mbyA9IHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fOworICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZFJvd0luZm8pCisgICAgICAgICAgZS5wcmV2aW91c1NlbGVjdGVkVGFibGVSb3cgPSBwcmV2aW91c1NlbGVjdGVkUm93SW5mby51c2VyUm93OworICAgICAgICBlbHNlCisgICAgICAgICAgZS5wcmV2aW91c1NlbGVjdGVkVGFibGVSb3cgPSB1bmRlZmluZWQ7CisKKyAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFN0YXRlXygpOworCisgICAgICAgIHJldHVybiBlOworICAgICAgfSwKKworICAgICAgcmVtb3ZlU2VsZWN0ZWRTdGF0ZV86IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnNldFNlbGVjdGVkU3RhdGVfKGZhbHNlKTsKKyAgICAgIH0sCisKKyAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGVfOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFN0YXRlXyh0cnVlKTsKKyAgICAgIH0sCisKKyAgICAgIHNldFNlbGVjdGVkU3RhdGVfOiBmdW5jdGlvbihzZWxlY3QpIHsKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgdGFibGVSb3dOb2RlID0gdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18uaHRtbE5vZGU7CisKKyAgICAgICAgLy8gQWRkL3JlbW92ZSByb3cgaGlnaGxpZ2h0IChpZiBhcHBsaWNhYmxlKS4KKyAgICAgICAgaWYgKHRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfICYmIHRoaXMucm93SGlnaGxpZ2h0RW5hYmxlZF8pIHsKKyAgICAgICAgICBpZiAoc2VsZWN0KQorICAgICAgICAgICAgdGFibGVSb3dOb2RlLmNsYXNzTGlzdC5hZGQoJ2hpZ2hsaWdodGVkLXJvdycpOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRhYmxlUm93Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKCdoaWdobGlnaHRlZC1yb3cnKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZC9yZW1vdmUgcm93L2NlbGwgc2VsZWN0aW9uLgorICAgICAgICB2YXIgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0YWJsZU5vZGVHaXZlblRhYmxlUm93Tm9kZV8odGFibGVSb3dOb2RlKTsKKyAgICAgICAgaWYgKHNlbGVjdCkKKyAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCB0cnVlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpOworICAgICAgfSwKKworICAgICAgZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbjogZnVuY3Rpb24oY29sdW1uSW5kZXgpIHsKKyAgICAgICAgdmFyIGNvbHVtbkluZm8gPSB0aGlzLnRhYmxlQ29sdW1uc19bY29sdW1uSW5kZXhdOworICAgICAgICB2YXIgc2NzID0gY29sdW1uSW5mby5zdXBwb3J0c0NlbGxTZWxlY3Rpb247CisgICAgICAgIGlmIChzY3MgPT09IGZhbHNlKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9LAorCisgICAgICBnZXRGaXJzdFNlbGVjdGFibGVDb2x1bW5JbmRleF86IGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFibGVDb2x1bW5zXy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIGlmICh0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24oaSkpCisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgICB9LAorCisgICAgICBnZXRTZWxlY3RhYmxlTm9kZUdpdmVuVGFibGVSb3dOb2RlXzogZnVuY3Rpb24oaHRtbE5vZGUpIHsKKyAgICAgICAgaWYgKCF0aGlzLmNlbGxTZWxlY3Rpb25Nb2RlXykgeworICAgICAgICAgIHJldHVybiBodG1sTm9kZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gaHRtbE5vZGUuY2hpbGRyZW5bdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4X107CisgICAgICAgIH0KKyAgICAgIH0sCisKKyAgICAgIGdldCBzZWxlY3RlZENvbHVtbkluZGV4KCkgeworICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKQorICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgIGlmICghdGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pCisgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF87CisgICAgICB9LAorCisgICAgICBzZXQgc2VsZWN0ZWRDb2x1bW5JbmRleChzZWxlY3RlZENvbHVtbkluZGV4KSB7CisgICAgICAgIHRoaXMucmVidWlsZElmTmVlZGVkXygpOworICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydHNTZWxlY3Rpb25fKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2VsZWN0aW9uIGlzIG9mZi4gU2V0IHN1cHBvcnRzU2VsZWN0aW9uPXRydWUuJyk7CisgICAgICAgIGlmIChzZWxlY3RlZENvbHVtbkluZGV4IDwgMCB8fAorICAgICAgICAgICAgc2VsZWN0ZWRDb2x1bW5JbmRleCA+PSB0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbmRleCcpOworICAgICAgICBpZiAoIXRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihzZWxlY3RlZENvbHVtbkluZGV4KSkKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgY29sdW1uJyk7CisKKyAgICAgICAgdmFyIGUgPSB0aGlzLnByZXBhcmVUb0NoYW5nZVNlbGVjdGlvbl8oKTsKKyAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbkluZGV4XyA9IHNlbGVjdGVkQ29sdW1uSW5kZXg7CisgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfID09PSB1bmRlZmluZWQpCisgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPSB1bmRlZmluZWQ7CisgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTdGF0ZV8oKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZSk7CisgICAgICB9LAorCisgICAgICBvbktleURvd25fOiBmdW5jdGlvbihlKSB7CisgICAgICAgIGlmICh0aGlzLnN1cHBvcnRzU2VsZWN0aW9uXyA9PT0gZmFsc2UpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGNvZGVfdG9fY29tbWFuZF9uYW1lcyA9IHsKKyAgICAgICAgICAzNzogJ0FSUk9XX0xFRlQnLAorICAgICAgICAgIDM4OiAnQVJST1dfVVAnLAorICAgICAgICAgIDM5OiAnQVJST1dfUklHSFQnLAorICAgICAgICAgIDQwOiAnQVJST1dfRE9XTicKKyAgICAgICAgfTsKKyAgICAgICAgdmFyIGNtZE5hbWUgPSBjb2RlX3RvX2NvbW1hbmRfbmFtZXNbZS5rZXlDb2RlXTsKKyAgICAgICAgaWYgKGNtZE5hbWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICB0aGlzLnBlcmZvcm1LZXlDb21tYW5kXyhjbWROYW1lKTsKKyAgICAgIH0sCisKKyAgICAgIHBlcmZvcm1LZXlDb21tYW5kXzogZnVuY3Rpb24oY21kTmFtZSkgeworICAgICAgICB0aGlzLnJlYnVpbGRJZk5lZWRlZF8oKTsKKworICAgICAgICB2YXIgcm93SW5mbyA9IHRoaXMuc2VsZWN0ZWRUYWJsZVJvd0luZm9fOworICAgICAgICB2YXIgaHRtbE5vZGUgPSByb3dJbmZvLmh0bWxOb2RlOworICAgICAgICBpZiAoY21kTmFtZSA9PT0gJ0FSUk9XX1VQJykgeworICAgICAgICAgIHZhciBwcmV2ID0gaHRtbE5vZGUucHJldmlvdXNFbGVtZW50U2libGluZzsKKyAgICAgICAgICBpZiAocHJldikgeworICAgICAgICAgICAgdHIudWkuYi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKHByZXYpOworICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93ID0gcHJldi5yb3dJbmZvLnVzZXJSb3c7CisgICAgICAgICAgICB0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjbWROYW1lID09PSAnQVJST1dfRE9XTicpIHsKKyAgICAgICAgICB2YXIgbmV4dCA9IGh0bWxOb2RlLm5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgICBpZiAobmV4dCkgeworICAgICAgICAgICAgdHIudWkuYi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5leHQpOworICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93ID0gbmV4dC5yb3dJbmZvLnVzZXJSb3c7CisgICAgICAgICAgICB0aGlzLmZvY3VzU2VsZWN0ZWRfKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjbWROYW1lID09PSAnQVJST1dfUklHSFQnKSB7CisgICAgICAgICAgaWYgKHRoaXMuY2VsbFNlbGVjdGlvbk1vZGVfKSB7CisgICAgICAgICAgICB2YXIgbmV3SW5kZXggPSB0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXhfICsgMTsKKyAgICAgICAgICAgIGlmIChuZXdJbmRleCA+PSB0aGlzLnRhYmxlQ29sdW1uc18ubGVuZ3RoKQorICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAoIXRoaXMuZG9lc0NvbHVtbkluZGV4U3VwcG9ydFNlbGVjdGlvbihuZXdJbmRleCkpCisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleCA9IG5ld0luZGV4OworICAgICAgICAgICAgdGhpcy5mb2N1c1NlbGVjdGVkXygpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChyb3dJbmZvLnVzZXJSb3dbdGhpcy5zdWJSb3dzUHJvcGVydHlOYW1lX10gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKHJvd0luZm8udXNlclJvd1t0aGlzLnN1YlJvd3NQcm9wZXJ0eU5hbWVfXS5sZW5ndGggPT09IDApCisgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFyb3dJbmZvLmlzRXhwYW5kZWQpCisgICAgICAgICAgICAgIHRoaXMuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dJbmZvLnVzZXJSb3csIHRydWUpOworICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYmxlUm93ID0KKyAgICAgICAgICAgICAgcm93SW5mby51c2VyUm93W3RoaXMuc3ViUm93c1Byb3BlcnR5TmFtZV9dWzBdOworICAgICAgICAgICAgdGhpcy5mb2N1c1NlbGVjdGVkXygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChjbWROYW1lID09PSAnQVJST1dfTEVGVCcpIHsKKyAgICAgICAgICBpZiAodGhpcy5jZWxsU2VsZWN0aW9uTW9kZV8pIHsKKyAgICAgICAgICAgIHZhciBuZXdJbmRleCA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5JbmRleF8gLSAxOworICAgICAgICAgICAgaWYgKG5ld0luZGV4IDwgMCkKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCF0aGlzLmRvZXNDb2x1bW5JbmRleFN1cHBvcnRTZWxlY3Rpb24obmV3SW5kZXgpKQorICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uSW5kZXggPSBuZXdJbmRleDsKKyAgICAgICAgICAgIHRoaXMuZm9jdXNTZWxlY3RlZF8oKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocm93SW5mby5pc0V4cGFuZGVkKSB7CisgICAgICAgICAgICAgIHRoaXMuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dJbmZvLnVzZXJSb3csIGZhbHNlKTsKKyAgICAgICAgICAgICAgdGhpcy5mb2N1c1NlbGVjdGVkXygpOworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vdCBleHBhbmRlZC4gU2VsZWN0IHBhcmVudC4uLgorICAgICAgICAgICAgdmFyIHBhcmVudFJvd0luZm8gPSByb3dJbmZvLnBhcmVudFJvd0luZm87CisgICAgICAgICAgICBpZiAocGFyZW50Um93SW5mbykgeworICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3cgPSBwYXJlbnRSb3dJbmZvLnVzZXJSb3c7CisgICAgICAgICAgICAgIHRoaXMuZm9jdXNTZWxlY3RlZF8oKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBjb21tYW5kJyk7CisgICAgICB9LAorCisgICAgICBmb2N1c1NlbGVjdGVkXzogZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFRhYmxlUm93SW5mb18pCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0YWJsZU5vZGVHaXZlblRhYmxlUm93Tm9kZV8oCisgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFibGVSb3dJbmZvXy5odG1sTm9kZSk7CisgICAgICAgIG5vZGUuZm9jdXMoKTsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSkoKTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktYi10YWJsZS1oZWFkZXItY2VsbCIgb24tdGFwPSJvblRhcF8iPgorICA8dGVtcGxhdGU+CisgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisKKyAgICBzcGFuIHsKKyAgICAgIGZsZXg6IDAgMSBhdXRvOworICAgIH0KKworICAgIHNpZGUtZWxlbWVudCB7CisgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworICAgICAgZmxleDogMSAwIGF1dG87CisgICAgICBwYWRkaW5nLWxlZnQ6IDRweDsKKyAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgICBmb250LXNpemU6IDE1cHg7CisgICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKyAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICAgIGxpbmUtaGVpZ2h0OiA4NSU7CisgICAgfQorICA8L3N0eWxlPgorCisgICAgPHNwYW4gaWQ9InRpdGxlIj48L3NwYW4+PHNpZGUtZWxlbWVudCBpZD0ic2lkZSI+PC9zaWRlLWVsZW1lbnQ+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy50YXBDYWxsYmFja18gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmNlbGxUaXRsZV8gPSAnJzsKKyAgICB9LAorCisgICAgc2V0IGNlbGxUaXRsZSh2YWx1ZSkgeworICAgICAgdGhpcy5jZWxsVGl0bGVfID0gdmFsdWU7CisKKyAgICAgIHZhciB0aXRsZU5vZGUgPSB0ci51aS5iLmFzSFRNTE9yVGV4dE5vZGUoCisgICAgICAgICAgdGhpcy5jZWxsVGl0bGVfLCB0aGlzLm93bmVyRG9jdW1lbnQpOworCisgICAgICB0aGlzLiQudGl0bGUuaW5uZXJUZXh0ID0gJyc7CisgICAgICB0aGlzLiQudGl0bGUuYXBwZW5kQ2hpbGQodGl0bGVOb2RlKTsKKyAgICB9LAorCisgICAgZ2V0IGNlbGxUaXRsZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmNlbGxUaXRsZV87CisgICAgfSwKKworICAgIGNsZWFyU2lkZUNvbnRlbnQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLnNpZGUudGV4dENvbnRlbnQgPSAnJzsKKyAgICB9LAorCisgICAgc2V0IHNpZGVDb250ZW50KGNvbnRlbnQpIHsKKyAgICAgIHRoaXMuJC5zaWRlLnRleHRDb250ZW50ID0gY29udGVudDsKKyAgICB9LAorCisgICAgZ2V0IHNpZGVDb250ZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMuJC5zaWRlLnRleHRDb250ZW50OworICAgIH0sCisKKyAgICBzZXQgdGFwQ2FsbGJhY2soY2FsbGJhY2spIHsKKyAgICAgIHRoaXMuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInOworICAgICAgdGhpcy50YXBDYWxsYmFja18gPSBjYWxsYmFjazsKKyAgICB9LAorCisgICAgZ2V0IHRhcENhbGxiYWNrKCkgeworICAgICAgcmV0dXJuIHRoaXMudGFwQ2FsbGJhY2tfOworICAgIH0sCisKKyAgICBvblRhcF86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMudGFwQ2FsbGJhY2tfKQorICAgICAgICB0aGlzLnRhcENhbGxiYWNrXygpOworICAgIH0KKyAgfSk7Cis8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3RhYmxlX2hlYWRlcl9jZWxsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdGFibGVfaGVhZGVyX2NlbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjBmYzcxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3RhYmxlX2hlYWRlcl9jZWxsLmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLXRhYmxlLWhlYWRlci1jZWxsIgorICAgIG9uLXRhcD0ib25UYXBfIj4KKyAgPHRlbXBsYXRlPgorICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgfQorCisgICAgc3BhbiB7CisgICAgICBmbGV4OiAwIDEgYXV0bzsKKyAgICB9CisKKyAgICBzaWRlLWVsZW1lbnQgeworICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgIGZsZXg6IDEgMCBhdXRvOworICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7CisgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgICAgZm9udC1zaXplOiAxNXB4OworICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgICBsaW5lLWhlaWdodDogODUlOworICAgIH0KKyAgPC9zdHlsZT4KKworICAgIDxzcGFuIGlkPSJ0aXRsZSI+PC9zcGFuPjxzaWRlLWVsZW1lbnQgaWQ9InNpZGUiPjwvc2lkZS1lbGVtZW50PgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudGFwQ2FsbGJhY2tfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5jZWxsVGl0bGVfID0gJyc7CisgICAgfSwKKworICAgIHNldCBjZWxsVGl0bGUodmFsdWUpIHsKKyAgICAgIHRoaXMuY2VsbFRpdGxlXyA9IHZhbHVlOworCisgICAgICB2YXIgdGl0bGVOb2RlID0KKyAgICAgICAgICB0ci51aS5iLmFzSFRNTE9yVGV4dE5vZGUodGhpcy5jZWxsVGl0bGVfLCB0aGlzLm93bmVyRG9jdW1lbnQpOworCisgICAgICB0aGlzLiQudGl0bGUuaW5uZXJUZXh0ID0gJyc7CisgICAgICB0aGlzLiQudGl0bGUuYXBwZW5kQ2hpbGQodGl0bGVOb2RlKTsKKyAgICB9LAorCisgICAgZ2V0IGNlbGxUaXRsZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmNlbGxUaXRsZV87CisgICAgfSwKKworICAgIGNsZWFyU2lkZUNvbnRlbnQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLnNpZGUudGV4dENvbnRlbnQgPSAnJzsKKyAgICB9LAorCisgICAgc2V0IHNpZGVDb250ZW50KGNvbnRlbnQpIHsKKyAgICAgIHRoaXMuJC5zaWRlLnRleHRDb250ZW50ID0gY29udGVudDsKKyAgICB9LAorCisgICAgZ2V0IHNpZGVDb250ZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMuJC5zaWRlLnRleHRDb250ZW50OworICAgIH0sCisKKyAgICBzZXQgdGFwQ2FsbGJhY2soY2FsbGJhY2spIHsKKyAgICAgIHRoaXMuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInOworICAgICAgdGhpcy50YXBDYWxsYmFja18gPSBjYWxsYmFjazsKKyAgICB9LAorCisgICAgZ2V0IHRhcENhbGxiYWNrKCkgeworICAgICAgcmV0dXJuIHRoaXMudGFwQ2FsbGJhY2tfOworICAgIH0sCisKKyAgICBvblRhcF86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMudGFwQ2FsbGJhY2tfKQorICAgICAgICB0aGlzLnRhcENhbGxiYWNrXygpOworICAgIH0KKyAgfSk7Cis8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3RhYmxlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90YWJsZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM0MTUyNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90YWJsZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMTI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgVEhJU19ET0MgPSBkb2N1bWVudC5fY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OworCisgIGZ1bmN0aW9uIGlzU2VsZWN0ZWQoZWxlbWVudCkgeworICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzZWxlY3RlZCcpID09PSAndHJ1ZSc7CisgIH0KKworICBmdW5jdGlvbiBpc0hpZ2hsaWdodGVkKGVsZW1lbnQpIHsKKyAgICByZXR1cm4gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZ2hsaWdodGVkLXJvdycpOworICB9CisKKyAgdGVzdCgnaW5zdGFudGlhdGVFbXB0eVRhYmxlX3dpdGhvdXRFbXB0eVZhbHVlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnRmlyc3QgQ29sdW1uJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfSwKKyAgICAgICAgd2lkdGg6ICczMDBweCcKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnU2Vjb25kIENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5zZWNvbmREYXRhOyB9CisgICAgICB9CisgICAgXTsKKworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTsKKyAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgIHRhYmxlLnRhYmxlUm93cyA9IFtdOworICAgIHRhYmxlLnJlYnVpbGQoKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICAvLyBDaGVjayB0aGF0IHRoZSB3aWR0aCBvZiB0aGUgZmlyc3QgY29sdW1uIHdhcyBzZXQgY29ycmVjdGx5IChkZXNwaXRlIG5vCisgICAgLy8gYm9keSByb3dzKS4KKyAgICB2YXIgZmlyc3RDb2x1bW5IZWFkZXIgPSB0YWJsZS4kLmhlYWQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF07CisgICAgYXNzZXJ0LmNsb3NlVG8oZmlyc3RDb2x1bW5IZWFkZXIub2Zmc2V0V2lkdGgsIDMwMCwgMjApOworCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZmlyc3QgY29sdW1uIGhhcyBhIG5vbi1lbXB0eSBoZWFkZXIuCisgICAgdmFyIGZpcnN0Q29sdW1uVGl0bGUgPSB0ci5iLmZpbmREZWVwRWxlbWVudE1hdGNoaW5nUHJlZGljYXRlKAorICAgICAgICBmaXJzdENvbHVtbkhlYWRlciwgZnVuY3Rpb24oZWxlbWVudCkgeworICAgICAgcmV0dXJuIGVsZW1lbnQudGV4dENvbnRlbnQgPT09ICdGaXJzdCBDb2x1bW4nOworICAgIH0pOworICAgIGFzc2VydC5pc0RlZmluZWQoZmlyc3RDb2x1bW5UaXRsZSk7CisKKyAgICAvLyBDaGVjayB0aGF0IGVtcHR5IHZhbHVlIHdhcyBub3QgYXBwZW5kZWQuCisgICAgYXNzZXJ0Lmxlbmd0aE9mKHRhYmxlLiQuYm9keS5jaGlsZHJlbiwgMCk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlRW1wdHlUYWJsZV93aXRoRW1wdHlWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2x1bW5zID0gWworICAgICAgeworICAgICAgICB0aXRsZTogJ0ZpcnN0IENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5maXJzdERhdGE7IH0sCisgICAgICAgIHdpZHRoOiAnMzAwcHgnCisgICAgICB9LAorICAgICAgeworICAgICAgICB0aXRsZTogJ1NlY29uZCBDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfQorICAgICAgfQorICAgIF07CisKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB0YWJsZS50YWJsZVJvd3MgPSBbXTsKKyAgICB0YWJsZS5lbXB0eVZhbHVlID0gJ1RoaXMgdGFibGUgaXMgbGVmdCBpbnRlbnRpb25hbGx5IGVtcHR5JzsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgd2lkdGggb2YgdGhlIGZpcnN0IGNvbHVtbiB3YXMgc2V0IGNvcnJlY3RseSAoZGVzcGl0ZSBubworICAgIC8vIGJvZHkgcm93cykuCisgICAgdmFyIGZpcnN0Q29sdW1uSGVhZGVyID0gdGFibGUuJC5oZWFkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdOworICAgIGFzc2VydC5jbG9zZVRvKGZpcnN0Q29sdW1uSGVhZGVyLm9mZnNldFdpZHRoLCAzMDAsIDIwKTsKKworICAgIC8vIENoZWNrIHRoYXQgZW1wdHkgdmFsdWUgd2FzIGFwcGVuZGVkLgorICAgIGFzc2VydC5sZW5ndGhPZih0YWJsZS4kLmJvZHkuY2hpbGRyZW4sIDEpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZU5lc3RlZFRhYmxlTm9OZXN0cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2x1bW5zID0gWworICAgICAgeworICAgICAgICB0aXRsZTogJ0ZpcnN0IENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5maXJzdERhdGE7IH0sCisgICAgICAgIHdpZHRoOiAnMjAwcHgnCisgICAgICB9LAorICAgICAgeworICAgICAgICB0aXRsZTogJ1NlY29uZCBDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfQorICAgICAgfQorICAgIF07CisKKyAgICB2YXIgcm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgZmlyc3REYXRhOiAnQTEnLAorICAgICAgICBzZWNvbmREYXRhOiAnQTInCisgICAgICB9LAorICAgICAgeworICAgICAgICBmaXJzdERhdGE6ICdCMScsCisgICAgICAgIHNlY29uZERhdGE6ICdCMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKKyAgICB0YWJsZS5lbXB0eVZhbHVlID0gJ1RISVMgU0hPVUxEIE5PVCBCRSBWSVNJQkxFISEhJzsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworCisgICAgLy8gQ2hlY2sgdGhhdCBlbXB0eSB2YWx1ZSB3YXMgbm90IGFwcGVuZGVkLgorICAgIGFzc2VydC5sZW5ndGhPZih0YWJsZS4kLmJvZHkuY2hpbGRyZW4sIDIpOworICB9KTsKKworICB0ZXN0KCdzZXF1ZW50aWFsUmVidWlsZHNCZWhhdmVTYW5lbHknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdGaXJzdCBDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAorICAgICAgICB3aWR0aDogJzIwMHB4JworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdTZWNvbmQgQ29sdW1uJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LnNlY29uZERhdGE7IH0KKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHJvd3MgPSBbCisgICAgICB7CisgICAgICAgIGZpcnN0RGF0YTogJ0ExJywKKyAgICAgICAgc2Vjb25kRGF0YTogJ0EyJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZmlyc3REYXRhOiAnQjEnLAorICAgICAgICBzZWNvbmREYXRhOiAnQjInCisgICAgICB9CisgICAgXTsKKyAgICB2YXIgZm9vdGVyUm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgZmlyc3REYXRhOiAnQTEnLAorICAgICAgICBzZWNvbmREYXRhOiAnQTInCisgICAgICB9LAorICAgICAgeworICAgICAgICBmaXJzdERhdGE6ICdCMScsCisgICAgICAgIHNlY29uZERhdGE6ICdCMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKKyAgICB0YWJsZS5mb290ZXJSb3dzID0gZm9vdGVyUm93czsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgdGFibGUucmVidWlsZCgpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS4kLmJvZHkuY2hpbGRyZW4ubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuJC5mb290LmNoaWxkcmVuLmxlbmd0aCwgMik7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZU5lc3RlZFRhYmxlV2l0aE5lc3RzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnRmlyc3QgQ29sdW1uJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmZpcnN0RGF0YTsgfSwKKyAgICAgICAgd2lkdGg6ICcyNTBweCcKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnU2Vjb25kIENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5zZWNvbmREYXRhOyB9LAorICAgICAgICB3aWR0aDogJzUwJScKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHJvd3MgPSBbCisgICAgICB7CisgICAgICAgIGZpcnN0RGF0YTogJ0ExJywKKyAgICAgICAgc2Vjb25kRGF0YTogJ0EyJywKKyAgICAgICAgc3ViUm93czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YjEgQTEnLAorICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YjEgQTInCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIyIEExJywKKyAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIyIEEyJywKKyAgICAgICAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YlN1YjEgQTEnLAorICAgICAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWJTdWIxIEEyJworICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViU3ViMiBBMScsCisgICAgICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YlN1YjIgQTInCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YjMgQTEnLAorICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YjMgQTInCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBmaXJzdERhdGE6ICdCMScsCisgICAgICAgIHNlY29uZERhdGE6ICdCMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZVNvcnRpbmdDYWxsYmFja3NXaXRoTmVzdHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdGaXJzdCBDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAorICAgICAgICB3aWR0aDogJzUwJScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnU2Vjb25kIENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5zZWNvbmREYXRhOyB9LAorICAgICAgICB3aWR0aDogJzI1MHB4JywKKyAgICAgICAgY21wOiBmdW5jdGlvbihyb3dBLCByb3dCKSB7CisgICAgICAgICAgcmV0dXJuIHJvd0Euc2Vjb25kRGF0YS50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoCisgICAgICAgICAgICAgIHJvd0Iuc2Vjb25kRGF0YS50b1N0cmluZygpKTsKKyAgICAgICAgfSwKKyAgICAgICAgc2hvd0V4cGFuZEJ1dHRvbnM6IHRydWUKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHJvd3MgPSBbCisgICAgICB7CisgICAgICAgIGZpcnN0RGF0YTogJ0ExJywKKyAgICAgICAgc2Vjb25kRGF0YTogJ0EyJywKKyAgICAgICAgc3ViUm93czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YjEgQTEnLAorICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YjEgQTInCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIyIEExJywKKyAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIyIEEyJywKKyAgICAgICAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YlN1YjEgQTEnLAorICAgICAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWJTdWIxIEEyJworICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViU3ViMiBBMScsCisgICAgICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YlN1YjIgQTInCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YjMgQTEnLAorICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YjMgQTInCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBmaXJzdERhdGE6ICdCMScsCisgICAgICAgIHNlY29uZERhdGE6ICdCMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIGZvb3RlclJvd3MgPSBbCisgICAgICB7CisgICAgICAgIGZpcnN0RGF0YTogJ0YxJywKKyAgICAgICAgc2Vjb25kRGF0YTogJ0YyJywKKyAgICAgICAgc3ViUm93czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGZpcnN0RGF0YTogJ1N1YjFGMScsCisgICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViMUYyJworICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViMkYxJywKKyAgICAgICAgICAgIHNlY29uZERhdGE6ICdTdWIyRjInLAorICAgICAgICAgICAgc3ViUm93czogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViU3ViMUYxJywKKyAgICAgICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViU3ViMUYyJworICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmlyc3REYXRhOiAnU3ViU3ViMkYxJywKKyAgICAgICAgICAgICAgICBzZWNvbmREYXRhOiAnU3ViU3ViMkYyJworICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICBmaXJzdERhdGE6ICdTdWIzRjEnLAorICAgICAgICAgICAgc2Vjb25kRGF0YTogJ1N1YjNGMicKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGZpcnN0RGF0YTogJ0ZcJzEnLAorICAgICAgICBzZWNvbmREYXRhOiAnRlwnMicKKyAgICAgIH0KKworICAgIF07CisKKyAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7CisgICAgdGFibGUuZm9vdGVyUm93cyA9IGZvb3RlclJvd3M7CisgICAgdGFibGUucmVidWlsZCgpOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKworICAgIHZhciBidXR0b24gPSBUSElTX0RPQy5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICBidXR0b24udGV4dENvbnRlbnQgPSAnU29ydCBCeSBDb2wgMCc7CisgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CisgICAgICB0YWJsZS5zb3J0RGVzY2VuZGluZyA9ICF0YWJsZS5zb3J0RGVzY2VuZGluZzsKKyAgICAgIHRhYmxlLnNvcnRDb2x1bW5JbmRleCA9IDA7CisgICAgfSk7CisgICAgdGFibGUucmVidWlsZCgpOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGJ1dHRvbik7CisgIH0pOworCisKKyAgdGVzdCgnaW5zdGFudGlhdGVOZXN0ZWRUYWJsZUFscmVhZHlFeHBhbmRlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2x1bW5zID0gWworICAgICAgeworICAgICAgICB0aXRsZTogJ2EnLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYTsgfSwKKyAgICAgICAgd2lkdGg6ICcxNTBweCcKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnYScsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5iOyB9LAorICAgICAgICB3aWR0aDogJzUwJScKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHJvd3MgPSBbCisgICAgICB7CisgICAgICAgIGE6ICdhVG9wbGV2ZWwnLAorICAgICAgICBiOiAnYlRvcGxldmVsJywKKyAgICAgICAgaXNFeHBhbmRlZDogdHJ1ZSwKKyAgICAgICAgc3ViUm93czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGE6ICdhMScsCisgICAgICAgICAgICBiOiAnYjEnCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXTsKKworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTsKKyAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7CisgICAgdGFibGUucmVidWlsZCgpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICB2YXIgYTFFbCA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmdQcmVkaWNhdGUodGFibGUsIGZ1bmN0aW9uKGVsZW1lbnQpIHsKKyAgICAgIHJldHVybiBlbGVtZW50LnRleHRDb250ZW50ID09ICdhMSc7CisgICAgfSk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChhMUVsKTsKKworICAgIHZhciBiVG9wbGV2ZWxFbCA9IHRyLmIuZmluZERlZXBFbGVtZW50TWF0Y2hpbmdQcmVkaWNhdGUoCisgICAgICAgIHRhYmxlLAorICAgICAgICBmdW5jdGlvbihlbGVtZW50KSB7CisgICAgICAgICAgcmV0dXJuIGVsZW1lbnQudGV4dENvbnRlbnQgPT0gJ2JUb3BsZXZlbCc7CisgICAgICAgIH0pOworICAgIGFzc2VydC5pc0RlZmluZWQoYlRvcGxldmVsRWwpOworICAgIHZhciBleHBhbmRCdXR0b24gPSBiVG9wbGV2ZWxFbC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2V4cGFuZC1idXR0b24nKTsKKyAgICBhc3NlcnQuaXNUcnVlKGV4cGFuZEJ1dHRvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2J1dHRvbi1leHBhbmRlZCcpKTsKKyAgfSk7CisKKworICB0ZXN0KCdzdWJSb3dzVGhhdEFyZVJldHJpZXZlZE9uRGVtYW5kJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnYScsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5hOyB9LAorICAgICAgICB3aWR0aDogJzE1MHB4JworICAgICAgfQorICAgIF07CisKKyAgICB2YXIgcm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgYTogJ3JvdzEnLAorICAgICAgICBzdWJSb3dzOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgYjogJ3JvdzEuMScsCisgICAgICAgICAgICBnZXQgc3ViUm93cygpIHsKKyAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG9sZCBub3QgYmUgY2FsbGVkJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXTsKKworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTsKKyAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7CisgICAgdGFibGUucmVidWlsZCgpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisgIH0pOworCisKKyAgdGVzdCgnaW5zdGFudGlhdGVUYWJsZVdpdGhIaWRkZW5IZWFkZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdhJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmE7IH0sCisgICAgICAgIHdpZHRoOiAnMTUwcHgnCisgICAgICB9LAorICAgICAgeworICAgICAgICB0aXRsZTogJ2EnLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYjsgfSwKKyAgICAgICAgd2lkdGg6ICc1MCUnCisgICAgICB9CisgICAgXTsKKworICAgIHZhciByb3dzID0gWworICAgICAgeworICAgICAgICBhOiAnYVRvcGxldmVsJywKKyAgICAgICAgYjogJ2JUb3BsZXZlbCcKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnNob3dIZWFkZXIgPSBmYWxzZTsKKyAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7CisgICAgdGFibGUucmVidWlsZCgpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICB2YXIgdEhlYWQgPSB0YWJsZS4kLmhlYWQ7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLiQuaGVhZC5jaGlsZHJlbi5sZW5ndGgsIDApOworICAgIGFzc2VydC5lcXVhbCgwLCB0SGVhZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpOworCisgICAgdGFibGUuc2hvd0hlYWRlciA9IHRydWU7CisgICAgdGFibGUucmVidWlsZCgpOworICAgIHRhYmxlLnNob3dIZWFkZXIgPSBmYWxzZTsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLiQuaGVhZC5jaGlsZHJlbi5sZW5ndGgsIDApOworICB9KTsKKworCisgIHRlc3QoJ3NvcnRDb2x1bW5zTm90UG9zc2libGVPblBlcmNlbnRTaXplZENvbHVtbnMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdUaXRsZScsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5hOyB9LAorICAgICAgICB3aWR0aDogJzE1MHB4JworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdWYWx1ZScsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5iOyB9LAorICAgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgICBzaG93RXhwYW5kQnV0dG9uczogdHJ1ZQorICAgICAgfQorICAgIF07CisKKyAgICB2YXIgdGFibGUxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlMS5zaG93SGVhZGVyID0gdHJ1ZTsKKworICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICB0YWJsZTEudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB9KTsKKyAgfSk7CisKKyAgdGVzdCgndHdvVGFibGVzRmlyc3RDb2x1bW5NYXRjaGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2x1bW5zID0gWworICAgICAgeworICAgICAgICB0aXRsZTogJ1RpdGxlJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmE7IH0sCisgICAgICAgIHdpZHRoOiAnMTUwcHgnCisgICAgICB9LAorICAgICAgeworICAgICAgICB0aXRsZTogJ1ZhbHVlJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmI7IH0sCisgICAgICAgIHdpZHRoOiAnMTAwJScKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTsKKyAgICB0YWJsZTEuc2hvd0hlYWRlciA9IHRydWU7CisgICAgdGFibGUxLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUxLnRhYmxlUm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgYTogJ2ZpcnN0JywKKyAgICAgICAgYjogJ3JvdycKKyAgICAgIH0KKyAgICBdOworICAgIHRhYmxlMS5yZWJ1aWxkKCk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlMSk7CisKKyAgICB2YXIgdGFibGUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlMi5zaG93SGVhZGVyID0gZmFsc2U7CisgICAgdGFibGUyLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUyLnRhYmxlUm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgYTogJ3NlY29uZCcsCisgICAgICAgIGI6ICdyb3cnCisgICAgICB9CisgICAgXTsKKyAgICB0YWJsZTIucmVidWlsZCgpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZTIpOworCisgICAgdmFyIGgxRmlyc3RDb2wgPSB0YWJsZTEuJC5oZWFkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdOworICAgIHZhciBoMkZpcnN0Q29sID0gdGFibGUyLiQuYm9keS5jaGlsZHJlblswXS5jaGlsZHJlblswXTsKKyAgICBhc3NlcnQuZXF1YWwoaDFGaXJzdENvbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCwKKyAgICAgICAgICAgICAgICAgaDJGaXJzdENvbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7CisgIH0pOworCisgIHRlc3QoJ3Byb2dyYW1tYXRpY1NvcnRpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudmFsdWU7IH0sCisgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgIHJldHVybiByb3dBLnZhbHVlLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZSgKKyAgICAgICAgICAgICAgcm93Qi52YWx1ZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIF07CisKKyAgICB2YXIgcm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6ICdBMScsCisgICAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICB2YWx1ZTogJ0ExLjEnCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICB2YWx1ZTogJ0ExLjInLAorICAgICAgICAgICAgc3ViUm93czogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFsdWU6ICdBMS4yLjEnCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YWx1ZTogJ0ExLjIuMicKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgdmFsdWU6ICdBMS4zJworICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6ICdBMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgIHRhYmxlLnJlYnVpbGQoKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICB0YWJsZS5zb3J0RGVzY2VuZGluZyA9IHRydWU7CisgICAgdGFibGUuc29ydENvbHVtbkluZGV4ID0gMDsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgdmFyIHIwID0gdGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdOworICAgIGFzc2VydC5lcXVhbChyMC5yb3dJbmZvLnVzZXJSb3csIHJvd3NbMV0pOworCisgICAgdmFyIHIxID0gdGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdOworICAgIGFzc2VydC5lcXVhbChyMS5yb3dJbmZvLnVzZXJSb3csIHJvd3NbMF0pOworICB9KTsKKworICB0ZXN0KCdzb3J0aW5nQWZ0ZXJFeHBhbmQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudmFsdWU7IH0sCisgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgIHJldHVybiByb3dBLnZhbHVlLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZSgKKyAgICAgICAgICAgICAgcm93Qi52YWx1ZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIF07CisKKyAgICB2YXIgcm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6ICdBMScsCisgICAgICAgIGlzRXhwYW5kZWQ6IHRydWUsCisgICAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICB2YWx1ZTogJ0ExLjEnCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICB2YWx1ZTogJ0ExLjInLAorICAgICAgICAgICAgc3ViUm93czogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFsdWU6ICdBMS4yLjEnCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YWx1ZTogJ0ExLjIuMicKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgdmFsdWU6ICdBMS4zJworICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6ICdBMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgIHRhYmxlLnJlYnVpbGQoKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICB0YWJsZS5zb3J0RGVzY2VuZGluZyA9IHRydWU7CisgICAgdGFibGUuc29ydENvbHVtbkluZGV4ID0gMDsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgdmFyIHIwID0gdGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdOworICAgIGFzc2VydC5lcXVhbChyMC5yb3dJbmZvLnVzZXJSb3csIHJvd3NbMV0pOworCisgICAgdmFyIHIxID0gdGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdOworICAgIGFzc2VydC5lcXVhbChyMS5yb3dJbmZvLnVzZXJSb3csIHJvd3NbMF0pOworCisgICAgdmFyIHIyID0gdGFibGUuJC5ib2R5LmNoaWxkcmVuWzJdOworICAgIGFzc2VydC5lcXVhbChyMi5yb3dJbmZvLnVzZXJSb3csIHJvd3NbMF0uc3ViUm93c1syXSk7CisKKyAgICBhc3NlcnQuaXNGYWxzZShyMC5oYXNBdHRyaWJ1dGUoJ3RhYkluZGV4JykpOworICB9KTsKKworICBmdW5jdGlvbiBjcmVhdGVTaW1wbGVPbmVDb2x1bW5OZXN0ZWRUYWJsZSgpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cudmFsdWU7IH0sCisgICAgICAgIGNtcDogZnVuY3Rpb24ocm93QSwgcm93QikgeworICAgICAgICAgIHJldHVybiByb3dBLnZhbHVlLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZSgKKyAgICAgICAgICAgICAgcm93Qi52YWx1ZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIF07CisKKyAgICB2YXIgcm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6ICdBMScsCisgICAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICB2YWx1ZTogJ0ExLjEnCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICB2YWx1ZTogJ0ExLjInLAorICAgICAgICAgICAgc3ViUm93czogWworICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFsdWU6ICdBMS4yLjEnCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YWx1ZTogJ0ExLjIuMicKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgdmFsdWU6ICdBMS4zJworICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6ICdBMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgIHJldHVybiB0YWJsZTsKKyAgfQorCisgIHRlc3QoJ2V4cGFuZEFmdGVyUmVidWlsZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IGNyZWF0ZVNpbXBsZU9uZUNvbHVtbk5lc3RlZFRhYmxlKCk7CisgICAgdGFibGUucmVidWlsZCgpOworICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKworICAgIHRhYmxlLnJlYnVpbGQoKTsKKyAgICBhc3NlcnQuaXNGYWxzZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0pKTsKKyAgICB0YWJsZS5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0sIHRydWUpOworICAgIGFzc2VydC5pc1RydWUodGFibGUuZ2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdKSk7CisKKyAgICB2YXIgcjEgPSB0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV07CisgICAgYXNzZXJ0LmVxdWFsKHIxLnJvd0luZm8udXNlclJvdywgcm93c1swXS5zdWJSb3dzWzBdKTsKKyAgfSk7CisKKyAgdGVzdCgndGFibGVTZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBjcmVhdGVTaW1wbGVPbmVDb2x1bW5OZXN0ZWRUYWJsZSgpOworICAgIHZhciByb3dzID0gdGFibGUudGFibGVSb3dzOworCisgICAgdGFibGUuc3VwcG9ydHNTZWxlY3Rpb24gPSB0cnVlOworICAgIHRhYmxlLnNlbGVjdGVkVGFibGVSb3cgPSByb3dzWzBdOworCisgICAgdGFibGUuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLCB0cnVlKTsKKyAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gcm93c1swXS5zdWJSb3dzWzFdOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCByb3dzWzBdLnN1YlJvd3NbMV0pOworCisgICAgdGFibGUuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLCBmYWxzZSk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHJvd3NbMF0pOworCisgICAgdGFibGUuc3VwcG9ydHNTZWxlY3Rpb24gPSBmYWxzZTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdywgdW5kZWZpbmVkKTsKKworICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICB0YWJsZS5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0uc3ViUm93c1sxXSwgdHJ1ZSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKworICAgIHZhciByMCA9IHRhYmxlLiQuYm9keS5jaGlsZHJlblswXTsKKyAgICBhc3NlcnQuaXNUcnVlKHIwLmhhc0F0dHJpYnV0ZSgndGFiSW5kZXgnKSk7CisgIH0pOworCisKKyAgdGVzdCgna2V5TW92ZW1lbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBjcmVhdGVTaW1wbGVPbmVDb2x1bW5OZXN0ZWRUYWJsZSgpOworICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworCisgICAgdmFyIHJvd3MgPSB0YWJsZS50YWJsZVJvd3M7CisgICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHJvd3NbMF07CisKKyAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX0RPV04nKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdywgcm93c1sxXSk7CisKKyAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX1VQJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHJvd3NbMF0pOworCisgICAgLy8gQXJyb3cgcmlnaHQgb24gY29sbGFwc2VkIHJvdyBzaG91bGQgZXhwYW5kLgorICAgIHRhYmxlLnNlbGVjdGVkVGFibGVSb3cgPSByb3dzWzBdOworICAgIHRhYmxlLnBlcmZvcm1LZXlDb21tYW5kXygnQVJST1dfUklHSFQnKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdywgcm93c1swXS5zdWJSb3dzWzBdKTsKKyAgICBhc3NlcnQuaXNUcnVlKHRhYmxlLmdldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1swXSkpOworCisgICAgdGFibGUucGVyZm9ybUtleUNvbW1hbmRfKCdBUlJPV19ET1dOJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHJvd3NbMF0uc3ViUm93c1sxXSk7CisKKyAgICAvLyBBUnJvdyBsZWZ0IG9uIGNvbGxhcHNlZCBpdGVtIHNob3VsZCBzZWxlY3QgcGFyZW50LgorICAgIHRhYmxlLnBlcmZvcm1LZXlDb21tYW5kXygnQVJST1dfTEVGVCcpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCByb3dzWzBdKTsKKyAgICBhc3NlcnQuaXNUcnVlKHRhYmxlLmdldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1swXSkpOworCisgICAgLy8gQXJyb3cgcmlnaHQgb24gZXhwYW5kZWQgcm93IHNob3VsZCBzZWxlY3QgZmlyc3QgY2hpbGQuCisgICAgdGFibGUuc2VsZWN0ZWRUYWJsZVJvdyA9IHJvd3NbMF07CisgICAgdGFibGUuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLCB0cnVlKTsKKyAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX1JJR0hUJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHJvd3NbMF0uc3ViUm93c1swXSk7CisKKyAgICAvLyBBcnJvdyByaWdodCBvbiBhIG5vbi1leHBhbmRhYmxlIHJvdyBzaG91bGQgZG8gbm90aGluZy4KKyAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gcm93c1sxXTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuc2VsZWN0ZWRUYWJsZVJvdywgcm93c1sxXSk7CisgICAgdGFibGUucGVyZm9ybUtleUNvbW1hbmRfKCdBUlJPV19SSUdIVCcpOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZFRhYmxlUm93LCByb3dzWzFdKTsKKyAgICBhc3NlcnQuaXNGYWxzZSh0YWJsZS5nZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMV0pKTsKKyAgfSk7CisKKyAgdGVzdCgncmVkdWNlTnVtYmVyT2ZDb2x1bW5zQWZ0ZXJSZWJ1aWxkJywgZnVuY3Rpb24oKSB7CisgICAgLy8gQ3JlYXRlIGEgdGFibGUgd2l0aCB0d28gY29sdW1ucy4KKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisgICAgdGFibGUudGFibGVDb2x1bW5zID0gWworICAgICAgeworICAgICAgICB0aXRsZTogJ0ZpcnN0IENvbHVtbicsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5maXJzdERhdGE7IH0sCisgICAgICAgIHdpZHRoOiAnMTAwcHgnCisgICAgICB9LAorICAgICAgeworICAgICAgICB0aXRsZTogJ1NlY29uZCBDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfSwKKyAgICAgICAgd2lkdGg6ICcxMDBweCcKKyAgICAgIH0KKyAgICBdOworCisgICAgLy8gQnVpbGQgdGhlIHRhYmxlLgorICAgIHRhYmxlLnJlYnVpbGQoKTsKKworICAgIC8vIENoZWNrIHRoYXQgcmVkdWNpbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIGRvZXNuJ3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdGaXJzdCBDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAorICAgICAgICB3aWR0aDogJzIwMHB4JworICAgICAgfQorICAgIF07CisgIH0pOworCisgIHRlc3QoJ2NlbGxTZWxlY3Rpb25CYXNpYycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2x1bW5zID0gWworICAgICAgeworICAgICAgICB0aXRsZTogJ1RpdGxlJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmE7IH0sCisgICAgICAgIHdpZHRoOiAnMTUwcHgnLAorICAgICAgICBzdXBwb3J0c0NlbGxTZWxlY3Rpb246IGZhbHNlCisgICAgICB9LAorICAgICAgeworICAgICAgICB0aXRsZTogJ0NvbDEnLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYjsgfSwKKyAgICAgICAgd2lkdGg6ICczMyUnCisgICAgICB9LAorICAgICAgeworICAgICAgICB0aXRsZTogJ0NvbDInLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYiAqIDI7IH0sCisgICAgICAgIHdpZHRoOiAnMzMlJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdDb2wzJywKKyAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeyByZXR1cm4gcm93LmIgKiAzOyB9LAorICAgICAgICB3aWR0aDogJzMzJScKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnNob3dIZWFkZXIgPSB0cnVlOworICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICB0YWJsZS5jZWxsU2VsZWN0aW9uTW9kZSA9IHRydWU7CisgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB0YWJsZS50YWJsZVJvd3MgPSBbCisgICAgICB7CisgICAgICAgIGE6ICdmaXJzdCcsCisgICAgICAgIGI6ICcxJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgYTogJ3NlY29uZCcsCisgICAgICAgIGI6ICcyJworICAgICAgfQorICAgIF07CisgICAgdGFibGUucmVidWlsZCgpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gdGFibGUudGFibGVSb3dzWzBdOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS5zZWxlY3RlZENvbHVtbkluZGV4LCAxKTsKKworICAgIHRhYmxlLnBlcmZvcm1LZXlDb21tYW5kXygnQVJST1dfRE9XTicpOworICAgIHRhYmxlLnBlcmZvcm1LZXlDb21tYW5kXygnQVJST1dfUklHSFQnKTsKKyAgICB0YWJsZS5wZXJmb3JtS2V5Q29tbWFuZF8oJ0FSUk9XX1JJR0hUJyk7CisgICAgdGFibGUucGVyZm9ybUtleUNvbW1hbmRfKCdBUlJPV19MRUZUJyk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkVGFibGVSb3csIHRhYmxlLnRhYmxlUm93c1sxXSk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLnNlbGVjdGVkQ29sdW1uSW5kZXgsIDIpOworICB9KTsKKworICB0ZXN0KCdjZWxsU2VsZWN0aW9uTmVzdGVkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnVGl0bGUnLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYTsgfSwKKyAgICAgICAgd2lkdGg6ICcxNTBweCcsCisgICAgICAgIHN1cHBvcnRzQ2VsbFNlbGVjdGlvbjogZmFsc2UKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnVmFsdWUnLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYjsgfSwKKyAgICAgICAgd2lkdGg6ICcxNTBweCcKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHJvd3MgPSBbCisgICAgICB7CisgICAgICAgIGE6ICdwYXJlbnQnLAorICAgICAgICBiOiAnMScsCisgICAgICAgIHN1YlJvd3M6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICBhOiAnY2hpbGQnLAorICAgICAgICAgICAgYjogJzInCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXTsKKworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTsKKyAgICB0YWJsZS5zaG93SGVhZGVyID0gdHJ1ZTsKKyAgICB0YWJsZS5zdXBwb3J0c1NlbGVjdGlvbiA9IHRydWU7CisgICAgdGFibGUuY2VsbFNlbGVjdGlvbk1vZGUgPSB0cnVlOworICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKworICAgIC8vIEV4cGFuZCB0aGUgcGFyZW50IHJvdy4KKyAgICB0YWJsZS5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0sIHRydWUpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzSGlnaGxpZ2h0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNIaWdobGlnaHRlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV0pKTsKKworICAgIC8vIFNlbGVjdCB0aGUgc2Vjb25kIGNlbGwgaW4gdGhlIGNoaWxkIHJvdy4KKyAgICB0YWJsZS5zZWxlY3RlZFRhYmxlUm93ID0gcm93c1swXS5zdWJSb3dzWzBdOworICAgIGFzc2VydC5pc0ZhbHNlKGlzU2VsZWN0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNTZWxlY3RlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0pKTsKKyAgICBhc3NlcnQuaXNGYWxzZShpc1NlbGVjdGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblsxXSkpOworICAgIGFzc2VydC5pc1RydWUoaXNTZWxlY3RlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0pKTsKKyAgICBhc3NlcnQuaXNGYWxzZShpc0hpZ2hsaWdodGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzSGlnaGxpZ2h0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdKSk7CisKKyAgICAvLyBGb2xkIHRoZSBwYXJlbnQgcm93LiBUaGUgc2Vjb25kIGNlbGwgaW4gdGhlIHBhcmVudCByb3cgc2hvdWxkIGJlCisgICAgLy8gYXV0b21hdGljYWxseSBzZWxlY3RlZC4KKyAgICB0YWJsZS5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0sIGZhbHNlKTsKKyAgICBhc3NlcnQuaXNGYWxzZShpc1NlbGVjdGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXSkpOworICAgIGFzc2VydC5pc1RydWUoaXNTZWxlY3RlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0pKTsKKyAgICBhc3NlcnQuaXNGYWxzZShpc0hpZ2hsaWdodGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXSkpOworCisgICAgLy8gRXhwYW5kIHRoZSBwYXJlbnQgcm93IGFnYWluLiBPbmx5IHRoZSBzZWNvbmQgY2VsbCBvZiB0aGUgcGFyZW50IHJvdworICAgIC8vIHNob3VsZCBzdGlsbCBiZSBzZWxlY3RlZC4KKyAgICB0YWJsZS5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0sIHRydWUpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzU2VsZWN0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShpc1NlbGVjdGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXS5jaGlsZHJlblsxXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzU2VsZWN0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNTZWxlY3RlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0pKTsKKyAgICBhc3NlcnQuaXNGYWxzZShpc0hpZ2hsaWdodGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzSGlnaGxpZ2h0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdKSk7CisgIH0pOworCisgIHRlc3QoJ2NlbGxTZWxlY3Rpb25IaWdobGlnaHQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdUaXRsZScsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5hOyB9LAorICAgICAgICB3aWR0aDogJzE1MHB4JywKKyAgICAgICAgc3VwcG9ydHNDZWxsU2VsZWN0aW9uOiBmYWxzZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdWYWx1ZScsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5iOyB9LAorICAgICAgICB3aWR0aDogJzE1MHB4JworICAgICAgfQorICAgIF07CisKKyAgICB2YXIgcm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgYTogJ3BhcmVudCcsCisgICAgICAgIGI6ICcxJywKKyAgICAgICAgc3ViUm93czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGE6ICdjaGlsZCcsCisgICAgICAgICAgICBiOiAnMicKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnNob3dIZWFkZXIgPSB0cnVlOworICAgIHRhYmxlLnN1cHBvcnRzU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICB0YWJsZS5jZWxsU2VsZWN0aW9uTW9kZSA9IHRydWU7CisgICAgdGFibGUucm93SGlnaGxpZ2h0RW5hYmxlZCA9IHRydWU7CisgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgIHRhYmxlLnJlYnVpbGQoKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworCisgICAgLy8gRXhwYW5kIHRoZSBwYXJlbnQgcm93LgorICAgIHRhYmxlLnNldEV4cGFuZGVkRm9yVGFibGVSb3cocm93c1swXSwgdHJ1ZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNIaWdobGlnaHRlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMF0pKTsKKyAgICBhc3NlcnQuaXNGYWxzZShpc0hpZ2hsaWdodGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblsxXSkpOworCisgICAgLy8gU2VsZWN0IHRoZSBzZWNvbmQgY2VsbCBpbiB0aGUgY2hpbGQgcm93LgorICAgIHRhYmxlLnNlbGVjdGVkVGFibGVSb3cgPSByb3dzWzBdLnN1YlJvd3NbMF07CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNTZWxlY3RlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMF0pKTsKKyAgICBhc3NlcnQuaXNGYWxzZShpc1NlbGVjdGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXS5jaGlsZHJlblsxXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzU2VsZWN0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShpc1NlbGVjdGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblsxXS5jaGlsZHJlblsxXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzSGlnaGxpZ2h0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShpc0hpZ2hsaWdodGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblsxXSkpOworCisgICAgLy8gRm9sZCB0aGUgcGFyZW50IHJvdy4gVGhlIHNlY29uZCBjZWxsIGluIHRoZSBwYXJlbnQgcm93IHNob3VsZCBiZQorICAgIC8vIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQuCisgICAgdGFibGUuc2V0RXhwYW5kZWRGb3JUYWJsZVJvdyhyb3dzWzBdLCBmYWxzZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNTZWxlY3RlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMF0pKTsKKyAgICBhc3NlcnQuaXNUcnVlKGlzU2VsZWN0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShpc0hpZ2hsaWdodGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXSkpOworCisgICAgLy8gRXhwYW5kIHRoZSBwYXJlbnQgcm93IGFnYWluLiBPbmx5IHRoZSBzZWNvbmQgY2VsbCBvZiB0aGUgcGFyZW50IHJvdworICAgIC8vIHNob3VsZCBzdGlsbCBiZSBzZWxlY3RlZC4KKyAgICB0YWJsZS5zZXRFeHBhbmRlZEZvclRhYmxlUm93KHJvd3NbMF0sIHRydWUpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzU2VsZWN0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShpc1NlbGVjdGVkKHRhYmxlLiQuYm9keS5jaGlsZHJlblswXS5jaGlsZHJlblsxXSkpOworICAgIGFzc2VydC5pc0ZhbHNlKGlzU2VsZWN0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzFdKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNTZWxlY3RlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0pKTsKKyAgICBhc3NlcnQuaXNUcnVlKGlzSGlnaGxpZ2h0ZWQodGFibGUuJC5ib2R5LmNoaWxkcmVuWzBdKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoaXNIaWdobGlnaHRlZCh0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV0pKTsKKyAgfSk7CisKKyAgdGVzdCgnaGVhZGVyc1dpdGhIdG1sRWxlbWVudHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZmlyc3RDb2x1bW5UaXRsZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdGaXJzdCBDb2x1bW4nKTsKKyAgICB2YXIgc2Vjb25kQ29sdW1uVGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc2Vjb25kQ29sdW1uVGl0bGUuaW5uZXJUZXh0ID0gJ1NlY29uZCBDb2x1bW4nOworICAgIHNlY29uZENvbHVtblRpdGxlLnN0eWxlLmNvbG9yID0gJ2JsdWUnOworCisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICB7CisgICAgICAgIHRpdGxlOiBmaXJzdENvbHVtblRpdGxlLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9LAorICAgICAgICB3aWR0aDogJzIwMHB4JworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6IHNlY29uZENvbHVtblRpdGxlLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuc2Vjb25kRGF0YTsgfQorICAgICAgfQorICAgIF07CisKKyAgICB2YXIgcm93cyA9IFsKKyAgICAgIHsKKyAgICAgICAgZmlyc3REYXRhOiAnQTEnLAorICAgICAgICBzZWNvbmREYXRhOiAnQTInCisgICAgICB9LAorICAgICAgeworICAgICAgICBmaXJzdERhdGE6ICdCMScsCisgICAgICAgIHNlY29uZERhdGE6ICdCMicKKyAgICAgIH0KKyAgICBdOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworCisgICAgdmFyIGZpcnN0Q29sdW1uSGVhZGVyID0gdGFibGUuJC5oZWFkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdOworICAgIHZhciBzZWNvbmRDb2x1bW5IZWFkZXIgPSB0YWJsZS4kLmhlYWQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bMF07CisgICAgYXNzZXJ0LmVxdWFsKGZpcnN0Q29sdW1uSGVhZGVyLmNlbGxUaXRsZS50ZXh0Q29udGVudCwgJ0ZpcnN0IENvbHVtbicpOworICAgIGFzc2VydC5lcXVhbChzZWNvbmRDb2x1bW5IZWFkZXIuY2VsbFRpdGxlLnRleHRDb250ZW50LCAnU2Vjb25kIENvbHVtbicpOworICB9KTsKKworICB0ZXN0KCd0ZXh0QWxpZ24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdhJywKKyAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgcmV0dXJuIHJvdy5hOworICAgICAgICB9CisgICAgICB9CisgICAgXTsKKyAgICB2YXIgcm93cyA9IFt7YTogMX1dOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10YWJsZScpOworICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgdGFibGUudGFibGVSb3dzID0gcm93czsKKyAgICB0YWJsZS5yZWJ1aWxkKCk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworCisgICAgYXNzZXJ0LmVxdWFsKCdyaWdodCcsIHRhYmxlLiQuYm9keS5jaGlsZHJlblswXS5jaGlsZHJlblswXS5zdHlsZS50ZXh0QWxpZ24pOworICB9KTsKKworICB0ZXN0KCdzdWJSb3dzUHJvcGVydHlOYW1lJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICB7CisgICAgICAgIHRpdGxlOiAnYScsCisgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsKKyAgICAgICAgICByZXR1cm4gcm93LmE7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBdOworICAgIHZhciByb3dzID0gWworICAgICAgeworICAgICAgICBhOiAxLAorICAgICAgICBpc0V4cGFuZGVkOiB0cnVlLAorICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgIHthOiAyfQorICAgICAgICBdCisgICAgICB9CisgICAgXTsKKworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdGFibGUnKTsKKyAgICB0YWJsZS5zdWJSb3dzUHJvcGVydHlOYW1lID0gJ2NoaWxkcmVuJzsKKyAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSBjb2x1bW5zOworICAgIHRhYmxlLnRhYmxlUm93cyA9IHJvd3M7CisgICAgdGFibGUucmVidWlsZCgpOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKworICAgIGFzc2VydC5lcXVhbCgyLCB0YWJsZS4kLmJvZHkuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMF0udGV4dENvbnRlbnQpOworICB9KTsKKworICB0ZXN0KCdzaG91bGROb3RSZW5kZXJVbmRlZmluZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sdW1ucyA9IFsKKyAgICAgIHsKKyAgICAgICAgdGl0bGU6ICdDb2x1bW4nLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuZmlyc3REYXRhOyB9CisgICAgICB9CisgICAgXTsKKworICAgIHZhciByb3dzID0gWworICAgICAgeworICAgICAgICBmaXJzdERhdGE6IHVuZGVmaW5lZCwKKyAgICAgICAgc2Vjb25kRGF0YTogJ0EyJworICAgICAgfQorICAgIF07CisKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisgICAgdGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB0YWJsZS50YWJsZVJvd3MgPSByb3dzOworICAgIHRhYmxlLnJlYnVpbGQoKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICAvLyBjaGVjayB0aGF0IHdlIGRvbid0IGhhdmUgJ3VuZGVmaW5lZCcgYW55d2hlcmUKKyAgICBhc3NlcnQuaXNUcnVlKHRhYmxlLiQuYm9keS5pbm5lckhUTUwuaW5kZXhPZigndW5kZWZpbmVkJykgPCAwKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3RpbWluZ190b29sLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdGltaW5nX3Rvb2wuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmY0ODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3RpbWluZ190b29sLmh0bWwKQEAgLTAsMCArMSwzMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvY29uc3RhbnRzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NsaWNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFRpbWluZ1Rvb2wgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIGNvbnN0YW50cyA9IHRyLmMuY29uc3RhbnRzOworCisgIC8qKgorICAgKiBUb29sIGZvciB0YWtpbmcgdGltZSBtZWFzdXJlbWVudHMgaW4gdGhlIFRpbWVsaW5lVHJhY2tWaWV3IHVzaW5nCisgICAqIFZpZXdwb3J0bWFya2Vycy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBUaW1pbmdUb29sKHZpZXdwb3J0LCB0YXJnZXRFbGVtZW50KSB7CisgICAgdGhpcy52aWV3cG9ydF8gPSB2aWV3cG9ydDsKKworICAgIC8vIFByZXBhcmUgdGhlIGV2ZW50IGhhbmRsZXJzIHRvIGJlIGFkZGVkIGFuZCByZW1vdmVkIHJlcGVhdGVkbHkuCisgICAgdGhpcy5vbk1vdXNlTW92ZV8gPSB0aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMpOworICAgIHRoaXMub25EYmxDbGlja18gPSB0aGlzLm9uRGJsQ2xpY2tfLmJpbmQodGhpcyk7CisgICAgdGhpcy50YXJnZXRFbGVtZW50XyA9IHRhcmdldEVsZW1lbnQ7CisKKyAgICAvLyBWYWxpZCBvbmx5IGR1cmluZyBtb3VzZWRvd24uCisgICAgdGhpcy5pc01vdmluZ0xlZnRFZGdlXyA9IGZhbHNlOworICB9OworCisgIFRpbWluZ1Rvb2wucHJvdG90eXBlID0geworCisgICAgb25FbnRlclRpbWluZzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlXyk7CisgICAgICB0aGlzLnRhcmdldEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoJ2RibGNsaWNrJywgdGhpcy5vbkRibENsaWNrXyk7CisgICAgfSwKKworICAgIG9uQmVnaW5UaW1pbmc6IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGlmICghdGhpcy5pc1RvdWNoUG9pbnRJbnNpZGVUcmFja0JvdW5kc18oZS5jbGllbnRYLCBlLmNsaWVudFkpKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBwdCA9IHRoaXMuZ2V0U25hcHBlZFRvRXZlbnRQb3NpdGlvbl8oZSk7CisgICAgICB0aGlzLm1vdXNlRG93bkF0XyhwdC54LCBwdC55KTsKKworICAgICAgdGhpcy51cGRhdGVTbmFwSW5kaWNhdG9yc18ocHQpOworICAgIH0sCisKKyAgICB1cGRhdGVTbmFwSW5kaWNhdG9yc186IGZ1bmN0aW9uKHB0KSB7CisgICAgICBpZiAoIXB0LnNuYXBwZWQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHZhciBpciA9IHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2U7CisgICAgICBpZiAoaXIubWluID09PSBwdC54KQorICAgICAgICBpci5sZWZ0U25hcEluZGljYXRvciA9IG5ldyB0ci51aS5TbmFwSW5kaWNhdG9yKHB0LnksIHB0LmhlaWdodCk7CisgICAgICBpZiAoaXIubWF4ID09PSBwdC54KQorICAgICAgICBpci5yaWdodFNuYXBJbmRpY2F0b3IgPSBuZXcgdHIudWkuU25hcEluZGljYXRvcihwdC55LCBwdC5oZWlnaHQpOworICAgIH0sCisKKyAgICBvblVwZGF0ZVRpbWluZzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIHB0ID0gdGhpcy5nZXRTbmFwcGVkVG9FdmVudFBvc2l0aW9uXyhlKTsKKyAgICAgIHRoaXMubW91c2VNb3ZlQXRfKHB0LngsIHB0LnksIHRydWUpOworICAgICAgdGhpcy51cGRhdGVTbmFwSW5kaWNhdG9yc18ocHQpOworICAgIH0sCisKKyAgICBvbkVuZFRpbWluZzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5tb3VzZVVwXygpOworICAgIH0sCisKKyAgICBvbkV4aXRUaW1pbmc6IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMudGFyZ2V0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZV8pOworICAgICAgdGhpcy50YXJnZXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMub25EYmxDbGlja18pOworICAgIH0sCisKKyAgICBvbk1vdXNlTW92ZV86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGlmIChlLmJ1dHRvbikKKyAgICAgICAgcmV0dXJuOworICAgICAgdmFyIHdvcmxkWCA9IHRoaXMuZ2V0V29ybGRYRnJvbUV2ZW50XyhlKTsKKyAgICAgIHRoaXMubW91c2VNb3ZlQXRfKHdvcmxkWCwgZS5jbGllbnRZLCBmYWxzZSk7CisgICAgfSwKKworICAgIG9uRGJsQ2xpY2tfOiBmdW5jdGlvbihlKSB7CisgICAgICAvLyBUT0RPKG5kdWNhKTogSW1wbGVtZW50IGRvYnVsZWNsaWNraW5nLgorICAgICAgY29uc29sZS5lcnJvcignbm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIGlzVG91Y2hQb2ludEluc2lkZVRyYWNrQm91bmRzXzogZnVuY3Rpb24oY2xpZW50WCwgY2xpZW50WSkgeworICAgICAgaWYgKCF0aGlzLnZpZXdwb3J0XyB8fAorICAgICAgICAgICF0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyIHx8CisgICAgICAgICAgIXRoaXMudmlld3BvcnRfLm1vZGVsVHJhY2tDb250YWluZXIuY2FudmFzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBjYW52YXMgPSB0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyLmNhbnZhczsKKyAgICAgIHZhciBjYW52YXNSZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgaWYgKGNsaWVudFggPj0gY2FudmFzUmVjdC5sZWZ0ICYmIGNsaWVudFggPD0gY2FudmFzUmVjdC5yaWdodCAmJgorICAgICAgICAgIGNsaWVudFkgPj0gY2FudmFzUmVjdC50b3AgJiYgY2xpZW50WSA8PSBjYW52YXNSZWN0LmJvdHRvbSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgbW91c2VEb3duQXRfOiBmdW5jdGlvbih3b3JsZFgsIHkpIHsKKyAgICAgIHZhciBpciA9IHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2U7CisgICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKKworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgdmFyIG5lYXJuZXNzVGhyZXNob2xkV29ybGQgPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoNiAqIHBpeGVsUmF0aW8pOworCisgICAgICBpZiAoaXIuaXNFbXB0eSkgeworICAgICAgICBpci5zZXRNaW5BbmRNYXgod29ybGRYLCB3b3JsZFgpOworICAgICAgICBpci5yaWdodFNlbGVjdGVkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5pc01vdmluZ0xlZnRFZGdlXyA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKworICAgICAgLy8gTGVmdCBlZGdlIHRlc3QuCisgICAgICBpZiAoTWF0aC5hYnMod29ybGRYIC0gaXIubWluKSA8IG5lYXJuZXNzVGhyZXNob2xkV29ybGQpIHsKKyAgICAgICAgaXIubGVmdFNlbGVjdGVkID0gdHJ1ZTsKKyAgICAgICAgaXIubWluID0gd29ybGRYOworICAgICAgICB0aGlzLmlzTW92aW5nTGVmdEVkZ2VfID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICAvLyBSaWdodCBlZGdlIHRlc3QuCisgICAgICBpZiAoTWF0aC5hYnMod29ybGRYIC0gaXIubWF4KSA8IG5lYXJuZXNzVGhyZXNob2xkV29ybGQpIHsKKyAgICAgICAgaXIucmlnaHRTZWxlY3RlZCA9IHRydWU7CisgICAgICAgIGlyLm1heCA9IHdvcmxkWDsKKyAgICAgICAgdGhpcy5pc01vdmluZ0xlZnRFZGdlXyA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlyLnNldE1pbkFuZE1heCh3b3JsZFgsIHdvcmxkWCk7CisgICAgICBpci5yaWdodFNlbGVjdGVkID0gdHJ1ZTsKKyAgICAgIHRoaXMuaXNNb3ZpbmdMZWZ0RWRnZV8gPSBmYWxzZTsKKyAgICB9LAorCisgICAgbW91c2VNb3ZlQXRfOiBmdW5jdGlvbih3b3JsZFgsIHksIG1vdXNlRG93bikgeworICAgICAgdmFyIGlyID0gdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZTsKKworICAgICAgaWYgKG1vdXNlRG93bikgeworICAgICAgICB0aGlzLnVwZGF0ZU1vdmluZ0VkZ2VfKHdvcmxkWCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIGlyID0gdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZTsKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworCisgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgICB2YXIgbmVhcm5lc3NUaHJlc2hvbGRXb3JsZCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCg2ICogcGl4ZWxSYXRpbyk7CisKKyAgICAgIC8vIExlZnQgZWRnZSB0ZXN0LgorICAgICAgaWYgKE1hdGguYWJzKHdvcmxkWCAtIGlyLm1pbikgPCBuZWFybmVzc1RocmVzaG9sZFdvcmxkKSB7CisgICAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IHRydWU7CisgICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICAvLyBSaWdodCBlZGdlIHRlc3QuCisgICAgICBpZiAoTWF0aC5hYnMod29ybGRYIC0gaXIubWF4KSA8IG5lYXJuZXNzVGhyZXNob2xkV29ybGQpIHsKKyAgICAgICAgaXIubGVmdFNlbGVjdGVkID0gZmFsc2U7CisgICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IGZhbHNlOworICAgICAgaXIucmlnaHRTZWxlY3RlZCA9IGZhbHNlOworICAgICAgcmV0dXJuOworICAgIH0sCisKKyAgICB1cGRhdGVNb3ZpbmdFZGdlXzogZnVuY3Rpb24obmV3V29ybGRYKSB7CisgICAgICB2YXIgaXIgPSB0aGlzLnZpZXdwb3J0Xy5pbnRlcmVzdFJhbmdlOworICAgICAgdmFyIGEgPSBpci5taW47CisgICAgICB2YXIgYiA9IGlyLm1heDsKKyAgICAgIGlmICh0aGlzLmlzTW92aW5nTGVmdEVkZ2VfKQorICAgICAgICBhID0gbmV3V29ybGRYOworICAgICAgZWxzZQorICAgICAgICBiID0gbmV3V29ybGRYOworCisgICAgICBpZiAoYSA8PSBiKQorICAgICAgICBpci5zZXRNaW5BbmRNYXgoYSwgYik7CisgICAgICBlbHNlCisgICAgICAgIGlyLnNldE1pbkFuZE1heChiLCBhKTsKKworICAgICAgaWYgKGlyLm1pbiA9PSBuZXdXb3JsZFgpIHsKKyAgICAgICAgdGhpcy5pc01vdmluZ0xlZnRFZGdlXyA9IHRydWU7CisgICAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IHRydWU7CisgICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSBmYWxzZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMuaXNNb3ZpbmdMZWZ0RWRnZV8gPSBmYWxzZTsKKyAgICAgICAgaXIubGVmdFNlbGVjdGVkID0gZmFsc2U7CisgICAgICAgIGlyLnJpZ2h0U2VsZWN0ZWQgPSB0cnVlOworICAgICAgfQorICAgIH0sCisKKyAgICBtb3VzZVVwXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKKyAgICAgIHZhciBpciA9IHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2U7CisKKyAgICAgIGlyLmxlZnRTZWxlY3RlZCA9IGZhbHNlOworICAgICAgaXIucmlnaHRTZWxlY3RlZCA9IGZhbHNlOworCisgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgICB2YXIgbWluV2lkdGhWYWx1ZSA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgyICogcGl4ZWxSYXRpbyk7CisgICAgICBpZiAoaXIucmFuZ2UgPCBtaW5XaWR0aFZhbHVlKQorICAgICAgICBpci5yZXNldCgpOworICAgIH0sCisKKyAgICBnZXRXb3JsZFhGcm9tRXZlbnRfOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgICB2YXIgY2FudmFzID0gdGhpcy52aWV3cG9ydF8ubW9kZWxUcmFja0NvbnRhaW5lci5jYW52YXM7CisgICAgICB2YXIgd29ybGRPZmZzZXQgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDsKKyAgICAgIHZhciB2aWV3WCA9IChlLmNsaWVudFggLSB3b3JsZE9mZnNldCkgKiBwaXhlbFJhdGlvOworICAgICAgcmV0dXJuIHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnhWaWV3VG9Xb3JsZCh2aWV3WCk7CisgICAgfSwKKworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBjbG9zZXN0IHBvc2l0aW9uIG9mIGFuIGV2ZW50IHdpdGhpbiBhIHZlcnRpY2FsIHJhbmdlIG9mIHRoZSBtb3VzZQorICAgICAqIHBvc2l0aW9uIGlmIHBvc3NpYmxlLCBvdGhlcndpc2UgdXNlIHRoZSBwb3NpdGlvbiBvZiB0aGUgbW91c2UgcG9pbnRlci4KKyAgICAgKiBAcGFyYW0ge01vdXNlRXZlbnR9IGUgTW91c2UgZXZlbnQgd2l0aCB0aGUgY3VycmVudCBtb3VzZSBjb29yZGluYXRlcy4KKyAgICAgKiBAcmV0dXJuIHsKKyAgICAgKiAgIHtOdW1iZXJ9IHgsIFRoZSB4IGNvb3JkaW5hdGUgaW4gd29ybGQgc3BhY2UuCisgICAgICogICB7TnVtYmVyfSB5LCBUaGUgeSBjb29yZGluYXRlIGluIHdvcmxkIHNwYWNlLgorICAgICAqICAge051bWJlcn0gaGVpZ2h0LCBUaGUgaGVpZ2h0IG9mIHRoZSBldmVudC4KKyAgICAgKiAgIHtib29sZWFufSBzbmFwcGVkIFdoZXRoZXIgdGhlIGNvb3JkaW5hdGVzIGFyZSBmcm9tIGEgc25hcHBlZCBldmVudCBvcgorICAgICAqICAgICB0aGUgbW91c2UgcG9zaXRpb24uCisgICAgICogfQorICAgICAqLworICAgIGdldFNuYXBwZWRUb0V2ZW50UG9zaXRpb25fOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgICB2YXIgRVZFTlRfU05BUF9SQU5HRSA9IDE2ICogcGl4ZWxSYXRpbzsKKworICAgICAgdmFyIG1vZGVsVHJhY2tDb250YWluZXIgPSB0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyOworICAgICAgdmFyIG1vZGVsVHJhY2tDb250YWluZXJSZWN0ID0gbW9kZWxUcmFja0NvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKworICAgICAgdmFyIHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydF87CisgICAgICB2YXIgZHQgPSB2aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKKyAgICAgIHZhciB3b3JsZE1heERpc3QgPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoRVZFTlRfU05BUF9SQU5HRSk7CisKKyAgICAgIHZhciB3b3JsZFggPSB0aGlzLmdldFdvcmxkWEZyb21FdmVudF8oZSk7CisgICAgICB2YXIgbW91c2VZID0gZS5jbGllbnRZOworCisgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisKKyAgICAgIC8vIExvb2sgYXQgdGhlIHRyYWNrIHVuZGVyIG1vdXNlIHBvc2l0aW9uIGZpcnN0IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgICBtb2RlbFRyYWNrQ29udGFpbmVyLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBtb3VzZVksIG1vdXNlWSwgc2VsZWN0aW9uKTsKKworICAgICAgLy8gTG9vayBhdCBhbGwgdHJhY2tzIHZpc2libGUgb24gc2NyZWVuLgorICAgICAgaWYgKCFzZWxlY3Rpb24ubGVuZ3RoKSB7CisgICAgICAgIG1vZGVsVHJhY2tDb250YWluZXIuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgICAgICB3b3JsZFgsIHdvcmxkTWF4RGlzdCwKKyAgICAgICAgICAgIG1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcCwgbW9kZWxUcmFja0NvbnRhaW5lclJlY3QuYm90dG9tLAorICAgICAgICAgICAgc2VsZWN0aW9uKTsKKyAgICAgIH0KKworICAgICAgdmFyIG1pbkRpc3RYID0gd29ybGRNYXhEaXN0OworICAgICAgdmFyIG1pbkRpc3RZID0gSW5maW5pdHk7CisgICAgICB2YXIgcGl4V2lkdGggPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoMSk7CisKKyAgICAgIC8vIENyZWF0ZSByZXN1bHQgb2JqZWN0IHdpdGggdGhlIG1vdXNlIGNvb3JkaW5hdGVzLgorICAgICAgdmFyIHJlc3VsdCA9IHsKKyAgICAgICAgeDogd29ybGRYLAorICAgICAgICB5OiBtb3VzZVkgLSBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC50b3AsCisgICAgICAgIGhlaWdodDogMCwKKyAgICAgICAgc25hcHBlZDogZmFsc2UKKyAgICAgIH07CisKKyAgICAgIHZhciBldmVudEJvdW5kcyA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdGlvbi5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgZXZlbnQgPSBzZWxlY3Rpb25baV07CisgICAgICAgIHZhciB0cmFjayA9IHZpZXdwb3J0LnRyYWNrRm9yRXZlbnQoZXZlbnQpOworICAgICAgICB2YXIgdHJhY2tSZWN0ID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisKKyAgICAgICAgZXZlbnRCb3VuZHMucmVzZXQoKTsKKyAgICAgICAgZXZlbnQuYWRkQm91bmRzVG9SYW5nZShldmVudEJvdW5kcyk7CisgICAgICAgIHZhciBldmVudFg7CisgICAgICAgIGlmIChNYXRoLmFicyhldmVudEJvdW5kcy5taW4gLSB3b3JsZFgpIDwKKyAgICAgICAgICAgIE1hdGguYWJzKGV2ZW50Qm91bmRzLm1heCAtIHdvcmxkWCkpIHsKKyAgICAgICAgICBldmVudFggPSBldmVudEJvdW5kcy5taW47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgZXZlbnRYID0gZXZlbnRCb3VuZHMubWF4OworICAgICAgICB9CisKKyAgICAgICAgdmFyIGRpc3RYID0gZXZlbnRYIC0gd29ybGRYOworCisgICAgICAgIHZhciBldmVudFkgPSB0cmFja1JlY3QudG9wOworICAgICAgICB2YXIgZXZlbnRIZWlnaHQgPSB0cmFja1JlY3QuaGVpZ2h0OworICAgICAgICB2YXIgZGlzdFkgPSBNYXRoLmFicyhldmVudFkgKyBldmVudEhlaWdodCAvIDIgLSBtb3VzZVkpOworCisgICAgICAgIC8vIFByZWZlciBldmVudHMgd2l0aCBhIGNsb3NlciB5IHBvc2l0aW9uIGlmIHRoZWlyIHggZGlmZmVyZW5jZSBpcyBiZWxvdworICAgICAgICAvLyB0aGUgd2lkdGggb2YgYSBwaXhlbC4KKyAgICAgICAgaWYgKChkaXN0WCA8PSBtaW5EaXN0WCB8fCBNYXRoLmFicyhkaXN0WCAtIG1pbkRpc3RYKSA8IHBpeFdpZHRoKSAmJgorICAgICAgICAgICAgZGlzdFkgPCBtaW5EaXN0WSkgeworICAgICAgICAgIG1pbkRpc3RYID0gZGlzdFg7CisgICAgICAgICAgbWluRGlzdFkgPSBkaXN0WTsKKworICAgICAgICAgIC8vIFJldHJpZXZlIHRoZSBldmVudCBwb3NpdGlvbiBmcm9tIHRoZSBoaXQuCisgICAgICAgICAgcmVzdWx0LnggPSBldmVudFg7CisgICAgICAgICAgcmVzdWx0LnkgPSBldmVudFkgKworICAgICAgICAgICAgICBtb2RlbFRyYWNrQ29udGFpbmVyLnNjcm9sbFRvcCAtIG1vZGVsVHJhY2tDb250YWluZXJSZWN0LnRvcDsKKyAgICAgICAgICByZXN1bHQuaGVpZ2h0ID0gZXZlbnRIZWlnaHQ7CisgICAgICAgICAgcmVzdWx0LnNuYXBwZWQgPSB0cnVlOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgVGltaW5nVG9vbDogVGltaW5nVG9vbAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90aW1pbmdfdG9vbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdGltaW5nX3Rvb2xfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYTQyYzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdGltaW5nX3Rvb2xfdGVzdC5odG1sCkBAIC0wLDAgKzEsNzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RpbWluZ190b29sLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gY3JlYXRlMTAwUHhXaWRlVmlld3BvcnRJbnRvMTBXaWRlV29ybGQoKSB7CisgICAgdmFyIHZwID0gbmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOworICAgIHZhciB0ZW1wRGlzcGxheVRyYW5zZm9ybSA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICB0ZW1wRGlzcGxheVRyYW5zZm9ybS54U2V0V29ybGRCb3VuZHMoMCwgMTAsIDEwMCk7CisgICAgdnAuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KHRlbXBEaXNwbGF5VHJhbnNmb3JtKTsKKworICAgIGFzc2VydC5lcXVhbCh2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS54Vmlld1RvV29ybGQoMCksIDApOworICAgIGFzc2VydC5lcXVhbCh2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS54Vmlld1RvV29ybGQoMTAwKSwgMTApOworCisgICAgcmV0dXJuIHZwOworICB9CisKKyAgdGVzdCgnZHJhZ0xlZnRJbnRlcmVzdFJlZ2lvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2cCA9IGNyZWF0ZTEwMFB4V2lkZVZpZXdwb3J0SW50bzEwV2lkZVdvcmxkKCk7CisgICAgdnAuaW50ZXJlc3RSYW5nZS5taW4gPSAxOworICAgIHZwLmludGVyZXN0UmFuZ2UubWF4ID0gOTsKKyAgICB2YXIgdG9vbCA9IG5ldyB0ci51aS5iLlRpbWluZ1Rvb2wodnApOworCisgICAgdG9vbC5tb3VzZURvd25BdF8oMS4xLCAwKTsKKyAgICBhc3NlcnQuaXNUcnVlKHZwLmludGVyZXN0UmFuZ2UubGVmdFNlbGVjdGVkKTsKKyAgICB0b29sLm1vdXNlTW92ZUF0XygxLjUsIDAsIHRydWUpOworICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1pbiwgMS41KTsKKyAgICB0b29sLm1vdXNlVXBfKCk7CisgICAgYXNzZXJ0LmVxdWFsKHZwLmludGVyZXN0UmFuZ2UubWluLCAxLjUpOworICAgIGFzc2VydC5pc0ZhbHNlKHZwLmludGVyZXN0UmFuZ2UubGVmdFNlbGVjdGVkKTsKKyAgfSk7CisKKyAgdGVzdCgnZHJhZ1JpZ2h0SW50ZXJlc3RSZWdpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdnAgPSBjcmVhdGUxMDBQeFdpZGVWaWV3cG9ydEludG8xMFdpZGVXb3JsZCgpOworICAgIHZwLmludGVyZXN0UmFuZ2UubWluID0gMTsKKyAgICB2cC5pbnRlcmVzdFJhbmdlLm1heCA9IDk7CisgICAgdmFyIHRvb2wgPSBuZXcgdHIudWkuYi5UaW1pbmdUb29sKHZwKTsKKworICAgIHRvb2wubW91c2VEb3duQXRfKDkuMSwgMCk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh2cC5pbnRlcmVzdFJhbmdlLnJpZ2h0U2VsZWN0ZWQpOworICAgIHRvb2wubW91c2VNb3ZlQXRfKDgsIDAsIHRydWUpOworICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1heCwgOCk7CisgICAgdG9vbC5tb3VzZVVwXygpOworICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1heCwgOCk7CisgICAgYXNzZXJ0LmlzRmFsc2UodnAuaW50ZXJlc3RSYW5nZS5sZWZ0U2VsZWN0ZWQpOworICB9KTsKKworICB0ZXN0KCdkcmFnSW5OZXdTcGFjZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB2cCA9IGNyZWF0ZTEwMFB4V2lkZVZpZXdwb3J0SW50bzEwV2lkZVdvcmxkKCk7CisgICAgdnAuaW50ZXJlc3RSYW5nZS5taW4gPSAxOworICAgIHZwLmludGVyZXN0UmFuZ2UubWF4ID0gOTsKKyAgICB2YXIgdG9vbCA9IG5ldyB0ci51aS5iLlRpbWluZ1Rvb2wodnApOworCisgICAgdG9vbC5tb3VzZURvd25BdF8oNSwgMCk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh2cC5pbnRlcmVzdFJhbmdlLnJpZ2h0U2VsZWN0ZWQpOworICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1pbiwgNSk7CisgICAgYXNzZXJ0LmVxdWFsKHZwLmludGVyZXN0UmFuZ2UubWF4LCA1KTsKKyAgICB0b29sLm1vdXNlTW92ZUF0Xyg0LCAwLCB0cnVlKTsKKyAgICBhc3NlcnQuZXF1YWwodnAuaW50ZXJlc3RSYW5nZS5taW4sIDQpOworICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1heCwgNSk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh2cC5pbnRlcmVzdFJhbmdlLmxlZnRTZWxlY3RlZCk7CisgICAgdG9vbC5tb3VzZVVwXygpOworICAgIGFzc2VydC5lcXVhbCh2cC5pbnRlcmVzdFJhbmdlLm1pbiwgNCk7CisgICAgYXNzZXJ0LmlzRmFsc2UodnAuaW50ZXJlc3RSYW5nZS5sZWZ0U2VsZWN0ZWQpOworICAgIGFzc2VydC5pc0ZhbHNlKHZwLmludGVyZXN0UmFuZ2UucmlnaHRTZWxlY3RlZCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL3VpL3Rvb2xfYnV0dG9uLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90b29sX2J1dHRvbi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS91aS90b29sX2J1dHRvbi5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90b29sX2J1dHRvbi5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90b29sYmFyX2J1dHRvbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3Rvb2xiYXJfYnV0dG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGYwOGM3NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS90b29sYmFyX2J1dHRvbi5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8L3NjcmlwdD4KKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItdWktYi10b29sYmFyLWJ1dHRvbicgbm9zY3JpcHQ+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNSk7CisgICAgICBjb2xvcjogcmdiYSgwLDAsMCwwLjgpOworICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CisgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOworICAgICAgbWluLXdpZHRoOiAyM3B4OworICAgIH0KKworICAgIDpob3N0KDpob3ZlcikgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxLjApOworICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7CisgICAgICBib3gtc2hhZG93OiAwIDAgLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjQpOworICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMSk7CisgICAgfQorCisgICAgI2FsaWduZXIgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgICAgYWxpZ24tc2VsZjogY2VudGVyOworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImFsaWduZXIiPgorICAgICAgPGNvbnRlbnQ+PC9jb250ZW50PgorICAgIDwvZGl2PgorICA8L3RlbXBsYXRlPgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdG9vbGJhcl9idXR0b25fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3Rvb2xiYXJfYnV0dG9uX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjFjYzVhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3Rvb2xiYXJfYnV0dG9uX3Rlc3QuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90b29sYmFyX2J1dHRvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCd0YWxsV2l0aFRleHRDb250ZW50JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10b29sYmFyLWJ1dHRvbicpOworICAgIGVsLnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKyAgICBlbC5zdHlsZS5oZWlnaHQgPSAnNDBweCc7CisKKyAgICBlbC50ZXh0Q29udGVudCA9ICdibGFoYmxhaCc7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZWwpOworICB9KTsKKworICB0ZXN0KCd0YWxsV2l0aElubmVyU3BhbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdG9vbGJhci1idXR0b24nKTsKKyAgICBlbC5zdHlsZS53aWR0aCA9ICcxMDBweCc7CisgICAgZWwuc3R5bGUuaGVpZ2h0ID0gJzQwcHgnOworCisgICAgZWwuYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVTcGFuKHt0ZXh0Q29udGVudDogJ2JsYWhibGFoJ30pKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChlbCk7CisgIH0pOworCisgIHRlc3QoJ3B1bnknLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRvb2xiYXItYnV0dG9uJyk7CisgICAgZWwudGV4dENvbnRlbnQgPSAnTSc7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGVsKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS91aS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3VpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWEzMGQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS91aS5odG1sCkBAIC0wLDAgKzEsMTY5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmInLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogRGVjb3JhdGVzIGVsZW1lbnRzIGFzIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MuCisgICAqIEBwYXJhbSB7c3RyaW5nfCFFbGVtZW50fSBzb3VyY2UgVGhlIHdheSB0byBmaW5kIHRoZSBlbGVtZW50KHMpIHRvIGRlY29yYXRlLgorICAgKiAgICAgSWYgdGhpcyBpcyBhIHN0cmluZyB0aGVuIHtAY29kZSBxdWVyeVNlbGV0b3JBbGx9IGlzIHVzZWQgdG8gZmluZCB0aGUKKyAgICogICAgIGVsZW1lbnRzIHRvIGRlY29yYXRlLgorICAgKiBAcGFyYW0geyFGdW5jdGlvbn0gY29uc3RyIFRoZSBjb25zdHJ1Y3RvciB0byBkZWNvcmF0ZSB3aXRoLiBUaGUgY29uc3RyCisgICAqICAgICBuZWVkcyB0byBoYXZlIGEge0Bjb2RlIGRlY29yYXRlfSBmdW5jdGlvbi4KKyAgICovCisgIGZ1bmN0aW9uIGRlY29yYXRlKHNvdXJjZSwgY29uc3RyKSB7CisgICAgdmFyIGVsZW1lbnRzOworICAgIGlmICh0eXBlb2Ygc291cmNlID09ICdzdHJpbmcnKQorICAgICAgZWxlbWVudHMgPSB0ci5kb2MucXVlcnlTZWxlY3RvckFsbChzb3VyY2UpOworICAgIGVsc2UKKyAgICAgIGVsZW1lbnRzID0gW3NvdXJjZV07CisKKyAgICBmb3IgKHZhciBpID0gMCwgZWw7IGVsID0gZWxlbWVudHNbaV07IGkrKykgeworICAgICAgaWYgKCEoZWwgaW5zdGFuY2VvZiBjb25zdHIpKQorICAgICAgICBjb25zdHIuZGVjb3JhdGUoZWwpOworICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBEZWZpbmVzIGEgdHJhY2luZyBVSSBjb21wb25lbnQsIGEgZnVuY3Rpb24gdGhhdCBjYW4gYmUgY2FsbGVkIHRvIGNvbnN0cnVjdAorICAgKiB0aGUgY29tcG9uZW50LgorICAgKgorICAgKiB0ciBjbGFzczoKKyAgICogdmFyIExpc3QgPSB0ci51aS5iLmRlZmluZSgnbGlzdCcpOworICAgKiBMaXN0LnByb3RvdHlwZSA9IHsKKyAgICogICBfX3Byb3RvX186IEhUTUxVTGlzdEVsZW1lbnQucHJvdG90eXBlLAorICAgKiAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKKyAgICogICAgIC4uLgorICAgKiAgIH0sCisgICAqICAgLi4uCisgICAqIH07CisgICAqCisgICAqIERlcml2ZWQgY2xhc3M6CisgICAqIHZhciBDdXN0b21MaXN0ID0gdHIudWkuYi5kZWZpbmUoJ2N1c3RvbS1saXN0JywgTGlzdCk7CisgICAqIEN1c3RvbUxpc3QucHJvdG90eXBlID0geworICAgKiAgIF9fcHJvdG9fXzogTGlzdC5wcm90b3R5cGUsCisgICAqICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgKiAgICAgLi4uCisgICAqICAgfSwKKyAgICogICAuLi4KKyAgICogfTsKKyAgICoKKyAgICogQHBhcmFtIHtzdHJpbmd9IGNsYXNzTmFtZSBUaGUgY2xhc3NOYW1lIG9mIHRoZSBuZXdseSBjcmVhdGVkIHN1YnR5cGUuIElmCisgICAqICAgICBzdWJjbGFzc2luZyBieSBwYXNzaW5nIGluIG9wdF9wYXJlbnRDb25zdHJ1Y3RvciwgdGhpcyBpcyB1c2VkIGZvcgorICAgKiAgICAgZGVidWdnaW5nLiBJZiBub3Qgc3ViY2xhc3NpbmcsIHRoZW4gaXQgaXMgdGhlIHRhZyBuYW1lIHRoYXQgd2lsbCBiZQorICAgKiAgICAgY3JlYXRlZCBieSB0aGUgY29tcG9uZW50LgorCisgICAqIEBwYXJhbSB7ZnVuY3Rpb249fSBvcHRfcGFyZW50Q29uc3RydWN0b3IgVGhlIHBhcmVudCBjbGFzcyBmb3IgdGhpcyBuZXcKKyAgICogICAgIGVsZW1lbnQsIGlmIHN1YmNsYXNzaW5nIGlzIGRlc2lyZWQuIElmIHByb3ZpZGVkLCB0aGUgcGFyZW50IGNsYXNzIG11c3QKKyAgICogICAgIGJlIGFsc28gYSBmdW5jdGlvbiBjcmVhdGVkIGJ5IHRyLnVpLmIuZGVmaW5lLgorICAgKgorICAgKiBAcGFyYW0ge3N0cmluZz19IG9wdF90YWdOUyBUaGUgbmFtZXNwYWNlIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgYmFzZQorICAgKiAgICAgZWxlbWVudC4gSGFzIG5vIG1lYW5pbmcgd2hlbiBvcHRfcGFyZW50Q29uc3RydWN0b3IgaXMgcGFzc2VkIGFuZCBtdXN0CisgICAqICAgICBlaXRoZXIgYmUgdW5kZWZpbmVkIG9yIHRoZSBzYW1lIG5hbWVzcGFjZSBhcyB0aGUgcGFyZW50IGNsYXNzLgorICAgKgorICAgKiBAcmV0dXJuIHtmdW5jdGlvbihPYmplY3Q9KTpFbGVtZW50fSBUaGUgbmV3bHkgY3JlYXRlZCBjb21wb25lbnQKKyAgICogICAgIGNvbnN0cnVjdG9yLgorICAgKi8KKyAgZnVuY3Rpb24gZGVmaW5lKGNsYXNzTmFtZSwgb3B0X3BhcmVudENvbnN0cnVjdG9yLCBvcHRfdGFnTlMpIHsKKyAgICBpZiAodHlwZW9mIGNsYXNzTmFtZSA9PSAnZnVuY3Rpb24nKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Bhc3NpbmcgZnVuY3Rpb25zIGFzIGNsYXNzTmFtZSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgJyArCisgICAgICAgICAgICAgICAgICAgICAgJ3VzZSAoY2xhc3NOYW1lLCBvcHRfcGFyZW50Q29uc3RydWN0b3IpIHRvIHN1YmNsYXNzJyk7CisgICAgfQorCisgICAgdmFyIGNsYXNzTmFtZSA9IGNsYXNzTmFtZS50b0xvd2VyQ2FzZSgpOworICAgIGlmIChvcHRfcGFyZW50Q29uc3RydWN0b3IgJiYgIW9wdF9wYXJlbnRDb25zdHJ1Y3Rvci50YWdOYW1lKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcHRfcGFyZW50Q29uc3RydWN0b3Igd2FzIG5vdCAnICsKKyAgICAgICAgICAgICAgICAgICAgICAnY3JlYXRlZCBieSB0ci51aS5iLmRlZmluZScpOworCisgICAgLy8gV2FsayB1cCB0aGUgcGFyZW50IGNvbnN0cnVjdG9ycyB1bnRpbCB3ZSBjYW4gZmluZCB0aGUgdHlwZSBvZiB0YWcKKyAgICAvLyB0byBjcmVhdGUuCisgICAgdmFyIHRhZ05hbWUgPSBjbGFzc05hbWU7CisgICAgdmFyIHRhZ05TID0gdW5kZWZpbmVkOworICAgIGlmIChvcHRfcGFyZW50Q29uc3RydWN0b3IpIHsKKyAgICAgIGlmIChvcHRfdGFnTlMpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBub3Qgc3BlY2lmeSB0YWdOUyBpZiBwYXJlbnRDb25zdHJ1Y3RvciBpcyBnaXZlbicpOworICAgICAgdmFyIHBhcmVudCA9IG9wdF9wYXJlbnRDb25zdHJ1Y3RvcjsKKyAgICAgIHdoaWxlIChwYXJlbnQgJiYgcGFyZW50LnRhZ05hbWUpIHsKKyAgICAgICAgdGFnTmFtZSA9IHBhcmVudC50YWdOYW1lOworICAgICAgICB0YWdOUyA9IHBhcmVudC50YWdOUzsKKyAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudENvbnN0cnVjdG9yOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICB0YWdOUyA9IG9wdF90YWdOUzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IFVJIGVsZW1lbnQgY29uc3RydWN0b3IuCisgICAgICogQXJndW1lbnRzIHBhc3NlZCB0byB0aGUgY29uc3R1Y3RvciBhcmUgcHJvdmlkZWQgdG8gdGhlIGRlY29yYXRlIG1ldGhvZC4KKyAgICAgKiBZb3Ugd2lsbCBuZWVkIHRvIGNhbGwgdGhlIHBhcmVudCBlbGVtZW50cyBkZWNvcmF0ZSBtZXRob2QgZnJvbSB3aXRoaW4KKyAgICAgKiB5b3VyIGRlY29yYXRlIG1ldGhvZCBhbmQgcGFzcyBhbnkgcmVxdWlyZWQgcGFyYW1ldGVycy4KKyAgICAgKiBAY29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBmdW5jdGlvbiBmKCkgeworICAgICAgaWYgKG9wdF9wYXJlbnRDb25zdHJ1Y3RvciAmJgorICAgICAgICAgIGYucHJvdG90eXBlLl9fcHJvdG9fXyAhPSBvcHRfcGFyZW50Q29uc3RydWN0b3IucHJvdG90eXBlKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigKKyAgICAgICAgICAgIGNsYXNzTmFtZSArICcgcHJvdG90eWVcJ3MgX19wcm90b19fIGZpZWxkIGlzIG1lc3NlZCB1cC4gJyArCisgICAgICAgICAgICAnSXQgTVVTVCBiZSB0aGUgcHJvdG90eXBlIG9mICcgKyBvcHRfcGFyZW50Q29uc3RydWN0b3IudGFnTmFtZSk7CisgICAgICB9CisKKyAgICAgIHZhciBlbDsKKyAgICAgIGlmICh0YWdOUyA9PT0gdW5kZWZpbmVkKQorICAgICAgICBlbCA9IHRyLmRvYy5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOworICAgICAgZWxzZQorICAgICAgICBlbCA9IHRyLmRvYy5jcmVhdGVFbGVtZW50TlModGFnTlMsIHRhZ05hbWUpOworICAgICAgZi5kZWNvcmF0ZS5jYWxsKHRoaXMsIGVsLCBhcmd1bWVudHMpOworICAgICAgcmV0dXJuIGVsOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY29yYXRlcyBhbiBlbGVtZW50IGFzIGEgVUkgZWxlbWVudCBjbGFzcy4KKyAgICAgKiBAcGFyYW0geyFFbGVtZW50fSBlbCBUaGUgZWxlbWVudCB0byBkZWNvcmF0ZS4KKyAgICAgKi8KKyAgICBmLmRlY29yYXRlID0gZnVuY3Rpb24oZWwpIHsKKyAgICAgIGVsLl9fcHJvdG9fXyA9IGYucHJvdG90eXBlOworICAgICAgZWwuZGVjb3JhdGUuYXBwbHkoZWwsIGFyZ3VtZW50c1sxXSk7CisgICAgICBlbC5jb25zdHJ1Y3RvciA9IGY7CisgICAgfTsKKworICAgIGYuY2xhc3NOYW1lID0gY2xhc3NOYW1lOworICAgIGYudGFnTmFtZSA9IHRhZ05hbWU7CisgICAgZi50YWdOUyA9IHRhZ05TOworICAgIGYucGFyZW50Q29uc3RydWN0b3IgPSAob3B0X3BhcmVudENvbnN0cnVjdG9yID8gb3B0X3BhcmVudENvbnN0cnVjdG9yIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCk7CisgICAgZi50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCFmLnBhcmVudENvbnN0cnVjdG9yKQorICAgICAgICByZXR1cm4gZi50YWdOYW1lOworICAgICAgcmV0dXJuIGYucGFyZW50Q29uc3RydWN0b3IudG9TdHJpbmcoKSArICc6OicgKyBmLmNsYXNzTmFtZTsKKyAgICB9OworCisgICAgcmV0dXJuIGY7CisgIH0KKworICBmdW5jdGlvbiBlbGVtZW50SXNDaGlsZE9mKGVsLCBwb3RlbnRpYWxQYXJlbnQpIHsKKyAgICBpZiAoZWwgPT0gcG90ZW50aWFsUGFyZW50KQorICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdmFyIGN1ciA9IGVsOworICAgIHdoaWxlIChjdXIucGFyZW50Tm9kZSkgeworICAgICAgaWYgKGN1ciA9PSBwb3RlbnRpYWxQYXJlbnQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgY3VyID0gY3VyLnBhcmVudE5vZGU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgfTsKKworICByZXR1cm4geworICAgIGRlY29yYXRlOiBkZWNvcmF0ZSwKKyAgICBkZWZpbmU6IGRlZmluZSwKKyAgICBlbGVtZW50SXNDaGlsZE9mOiBlbGVtZW50SXNDaGlsZE9mCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3VpX3N0YXRlLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdWlfc3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWNiOGI2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3VpX3N0YXRlLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbG9jYXRpb24uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIHZhciBMb2NhdGlvbiA9IHRyLm1vZGVsLkxvY2F0aW9uOworCisgIC8qKgorICAgKiBVSVN0YXRlIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB0aW1lbGluZSBieQorICAgKiB0aGUgTG9jYXRpb24gb2YgdGhlIHBvaW50IG9mIGludGVyZXN0IGFuZCB0aGUgY3VycmVudCBzY2FsZVggb2YgdGhlCisgICAqIHRpbWVsaW5lLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIFVJU3RhdGUobG9jYXRpb24sIHNjYWxlWCkgeworICAgIHRoaXMubG9jYXRpb25fID0gbG9jYXRpb247CisgICAgdGhpcy5zY2FsZVhfID0gc2NhbGVYOworICB9OworCisgIC8qKgorICAgKiBBY2NlcHRzIGEgVUlTdGF0ZSBzdHJpbmcgaW4gdGhlIGZvcm1hdCBvZiAodGltZXN0YW1wKUAoc3RhYmxlSUQpeChzY2FsZVgpCisgICAqIFJldHVybnMgdW5kZWZpbmVkIGlmIHN0cmluZyBpcyBub3QgaW4gdGhpcyBmb3JtYXQsIG9yIHRocm93cyBhbiBFcnJvciBpZgorICAgKiB2YXJpYWJsZXMgaW4gYSBzeW50YWN0aWNhbGx5LWNvcnJlY3Qgc3RhdGVTdHJpbmcgZG9lcyBub3QgcHJvZHVjZSBhIHZhbGlkCisgICAqIFVJU3RhdGUuIE90aGVyd2lzZSByZXR1cm5zIGEgY29uc3RydWN0ZWQgVUlTdGF0ZSBpbnN0YW5jZS4KKyAgICovCisgIFVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyA9IGZ1bmN0aW9uKG1vZGVsLCB2aWV3cG9ydCwgc3RhdGVTdHJpbmcpIHsKKyAgICB2YXIgbmF2QnlGaW5kZXJQYXR0ZXJuID0gL14oLT9cZCsoXC5cZCspPylAKC4rKXgoXGQrKFwuXGQrKT8pJC9nOworICAgIHZhciBtYXRjaCA9IG5hdkJ5RmluZGVyUGF0dGVybi5leGVjKHN0YXRlU3RyaW5nKTsKKyAgICBpZiAoIW1hdGNoKQorICAgICAgcmV0dXJuOworCisgICAgdmFyIHRpbWVzdGFtcCA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pOworICAgIHZhciBzdGFibGVJZCA9IG1hdGNoWzNdOworICAgIHZhciBzY2FsZVggPSBwYXJzZUZsb2F0KG1hdGNoWzRdKTsKKworICAgIGlmIChzY2FsZVggPD0gMCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBTY2FsZVggdmFsdWUgaW4gVUkgU3RhdGUgc3RyaW5nLicpOworCisgICAgaWYgKCF2aWV3cG9ydC5jb250YWluZXJUb1RyYWNrTWFwLmdldFRyYWNrQnlTdGFibGVJZChzdGFibGVJZCkpCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgU3RhYmxlSUQgZ2l2ZW4gaW4gVUkgU3RhdGUgU3RyaW5nLicpOworCisgICAgdmFyIGxvYyA9IHRyLm1vZGVsLkxvY2F0aW9uLmZyb21TdGFibGVJZEFuZFRpbWVzdGFtcCgKKyAgICAgICAgdmlld3BvcnQsIHN0YWJsZUlkLCB0aW1lc3RhbXApOworICAgIHJldHVybiBuZXcgVUlTdGF0ZShsb2MsIHNjYWxlWCk7CisgIH0KKworICBVSVN0YXRlLnByb3RvdHlwZSA9IHsKKworICAgIGdldCBsb2NhdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uXzsKKyAgICB9LAorCisgICAgZ2V0IHNjYWxlWCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnNjYWxlWF87CisgICAgfSwKKworICAgIHRvVXNlckZyaWVuZGx5U3RyaW5nOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdmFyIHRpbWVzdGFtcCA9IHRoaXMubG9jYXRpb25fLnhXb3JsZDsKKyAgICAgIHZhciBzdGFibGVJZCA9CisgICAgICAgICAgdGhpcy5sb2NhdGlvbl8uZ2V0Q29udGFpbmluZ1RyYWNrKHZpZXdwb3J0KS5ldmVudENvbnRhaW5lci5zdGFibGVJZDsKKyAgICAgIHZhciBzY2FsZVggPSB0aGlzLnNjYWxlWF87CisgICAgICByZXR1cm4gdGltZXN0YW1wLnRvRml4ZWQoNSkgKyAnQCcgKyBzdGFibGVJZCArICd4JyArIHNjYWxlWC50b0ZpeGVkKDUpOworICAgIH0sCisKKyAgICB0b0RpY3Q6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb25fLnRvRGljdCgpLAorICAgICAgICBzY2FsZVg6IHRoaXMuc2NhbGVYXworICAgICAgfTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBVSVN0YXRlOiBVSVN0YXRlCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3VpX3N0YXRlX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS91aV9zdGF0ZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzEzZGU4NwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS91aV9zdGF0ZV90ZXN0Lmh0bWwKQEAgLTAsMCArMSw5OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWlfc3RhdGUuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgVUlTdGF0ZSA9IHRyLnVpLmIuVUlTdGF0ZTsKKworICBmdW5jdGlvbiBGYWtlTW9kZWwoKSB7CisgICAgdGhpcy5wcm9jZXNzZXMgPSB7IDE6IHsgdGhyZWFkczogeyAyOiB7IHN0YWJsZUlkOiAnMS4yJyB9IH0gfSB9OworICB9CisKKyAgLy8gRmFrZVRyYWNrIG5lZWRzIHRvIGJlIGFuIGluc3RhbmNlIG9mIHRyLnVpLnRyYWNrcy5UcmFjayBiZWNhdXNlIGEKKyAgLy8gbG9jYXRpb24gaXMgY29uc3RydWN0ZWQgaW4gdGVybXMgb2YgVHJhY2sgaW5zdGFuY2VzLgorICBmdW5jdGlvbiBGYWtlVHJhY2soKSB7IH0KKyAgRmFrZVRyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsCisKKyAgICBnZXQgZXZlbnRDb250YWluZXIoKSB7CisgICAgICByZXR1cm4geyBzdGFibGVJZDogJzEuMicgfTsKKyAgICB9LAorCisgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB7IHRvcDogNSwgaGVpZ2h0OiAyIH07CisgICAgfSwKKworICAgIGdldCBwYXJlbnRFbGVtZW50KCkgeworICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICB9OworCisgIGZ1bmN0aW9uIEZha2VWaWV3UG9ydCgpIHsKKyAgICB0aGlzLmNvbnRhaW5lclRvVHJhY2tNYXAgPSB7CisgICAgICAvLyAiMS4yIiBpcyB0aGUgb25seSB2YWxpZCBzdGFibGVJZCB0aGlzIHRlc3QgZnVuY3Rpb24gYWNjZXB0cy4KKyAgICAgIGdldFRyYWNrQnlTdGFibGVJZDogZnVuY3Rpb24oc3RhYmxlSWQpIHsKKyAgICAgICAgaWYgKHN0YWJsZUlkID09PSAnMS4yJykKKyAgICAgICAgICByZXR1cm4gbmV3IEZha2VUcmFjazsKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIH0KKyAgICB9OworICB9CisKKyAgdGVzdCgnaW52YWxpZFN0YWJsZUlkJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IEZha2VNb2RlbDsKKyAgICB2YXIgdnAgPSBuZXcgRmFrZVZpZXdQb3J0OworICAgIGFzc2VydC50aHJvd3MoZnVuY3Rpb24oKSB7CisgICAgICBVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcobW9kZWwsIHZwLCAnMTVAMS4zeDYnKTsKKyAgICB9KTsKKyAgICBhc3NlcnQudGhyb3dzKGZ1bmN0aW9uKCkgeworICAgICAgVUlTdGF0ZS5mcm9tVXNlckZyaWVuZGx5U3RyaW5nKG1vZGVsLCB2cCwgJzE1QDIuMng2Jyk7CisgICAgfSk7CisgICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbigpIHsKKyAgICAgIFVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyhtb2RlbCwgdnAsICc1MDVAMS54NScpOworICAgIH0pOworICB9KTsKKworICB0ZXN0KCdpbnZhbGlkU2NhbGVYJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IEZha2VNb2RlbDsKKyAgICB2YXIgdnAgPSBuZXcgRmFrZVZpZXdQb3J0OworICAgIGFzc2VydC5pc1VuZGVmaW5lZChVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcobW9kZWwsIHZwLCAnMUAxLjJ4LTEnKSk7CisgICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbigpIHsKKyAgICAgIFVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyhtb2RlbCwgdnAsICcxQDEuMngwJyk7CisgICAgfSk7CisgIH0pOworCisgIHRlc3QoJ2ludmFsaWRTeW50YXgnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgRmFrZU1vZGVsOworICAgIHZhciB2cCA9IG5ldyBGYWtlVmlld1BvcnQ7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKFVJU3RhdGUuZnJvbVVzZXJGcmllbmRseVN0cmluZyhtb2RlbCwgdnAsICc1JykpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcobW9kZWwsIHZwLCAnNUB4NScpKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoVUlTdGF0ZS5mcm9tVXNlckZyaWVuZGx5U3RyaW5nKG1vZGVsLCB2cCwgJ2FiQDEuMng1JykpOworICB9KTsKKworICB0ZXN0KCd2YWxpZFN0cmluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyBGYWtlTW9kZWw7CisgICAgdmFyIHZwID0gbmV3IEZha2VWaWV3UG9ydDsKKyAgICB2YXIgc3RyID0gJy01MDEyNS41MTIzMUAxLjJ4MS4xMjM0NSc7CisgICAgdmFyIHVpU3RhdGUgPSBVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcobW9kZWwsIHZwLCBzdHIpOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZCh1aVN0YXRlKTsKKyAgICBhc3NlcnQuZXF1YWwodWlTdGF0ZS5sb2NhdGlvbi54V29ybGQsIC01MDEyNS41MTIzMSk7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICB1aVN0YXRlLmxvY2F0aW9uLmdldENvbnRhaW5pbmdUcmFjayh2cCkuZXZlbnRDb250YWluZXIuc3RhYmxlSWQsCisgICAgICAgICcxLjInKTsKKyAgICBhc3NlcnQuZXF1YWwodWlTdGF0ZS5zY2FsZVgsIDEuMTIzNDUpOworCisgICAgYXNzZXJ0LmVxdWFsKHVpU3RhdGUudG9Vc2VyRnJpZW5kbHlTdHJpbmcodnApLCBzdHIpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdWlfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3VpX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2NiMmVmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3VpX3Rlc3QuaHRtbApAQCAtMCwwICsxLDI0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUZXN0RWxlbWVudCA9IHRyLnVpLmIuZGVmaW5lKCdkaXYnKTsKKyAgVGVzdEVsZW1lbnQucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmRlY29yYXRlQ2FsbENvdW50KQorICAgICAgICB0aGlzLmRlY29yYXRlQ2FsbENvdW50ID0gMDsKKyAgICAgIHRoaXMuZGVjb3JhdGVDYWxsQ291bnQrKzsKKyAgICB9CisgIH07CisKKyAgdmFyIEJhc2UgPSB0ci51aS5iLmRlZmluZSgnZGl2Jyk7CisgIEJhc2UucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogSFRNTERpdkVsZW1lbnQucHJvdG90eXBlLAorICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZGVjb3JhdGVkQXNCYXNlID0gdHJ1ZTsKKyAgICB9LAorICAgIHNldCBiYXNlUHJvcGVydHkodikgeworICAgICAgdGhpcy5iYXNlUHJvcGVydHlTZXQgPSB2OworICAgIH0KKyAgfTsKKworICB0ZXN0KCdkZWNvcmF0ZU9uY2VWaWFOZXcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGVzdEVsZW1lbnQgPSBuZXcgVGVzdEVsZW1lbnQoKTsKKyAgICBhc3NlcnQuZXF1YWwodGVzdEVsZW1lbnQuZGVjb3JhdGVDYWxsQ291bnQsIDEpOworICB9KTsKKworICB0ZXN0KCdkZWNvcmF0ZU9uY2VEaXJlY3RseScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRyLnVpLmIuZGVjb3JhdGUodGVzdEVsZW1lbnQsIFRlc3RFbGVtZW50KTsKKyAgICBhc3NlcnQuZXF1YWwodGVzdEVsZW1lbnQuZGVjb3JhdGVDYWxsQ291bnQsIDEpOworICB9KTsKKworICB0ZXN0KCdjb21wb25lbnRUb1N0cmluZycsIGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC5lcXVhbChCYXNlLnRvU3RyaW5nKCksICdkaXYnKTsKKworICAgIHZhciBTdWIgPSB0ci51aS5iLmRlZmluZSgnU3ViJywgQmFzZSk7CisgICAgYXNzZXJ0LmVxdWFsKFN1Yi50b1N0cmluZygpLCAnZGl2OjpzdWInKTsKKworICAgIHZhciBTdWJTdWIgPSB0ci51aS5iLmRlZmluZSgnTWFyaW5lJywgU3ViKTsKKyAgICBhc3NlcnQuZXF1YWwoU3ViU3ViLnRvU3RyaW5nKCksICdkaXY6OnN1Yjo6bWFyaW5lJyk7CisgIH0pOworCisgIHRlc3QoJ2Jhc2ljRGVmaW5lcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBiYXNlSW5zdGFuY2UgPSBuZXcgQmFzZSgpOworICAgIGFzc2VydC5pbnN0YW5jZU9mKGJhc2VJbnN0YW5jZSwgQmFzZSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShiYXNlSW5zdGFuY2UuZGVjb3JhdGVkQXNCYXNlKTsKKworICAgIGFzc2VydC5lcXVhbChiYXNlSW5zdGFuY2UuY29uc3RydWN0b3IsIEJhc2UpOworICAgIGFzc2VydC5lcXVhbChiYXNlSW5zdGFuY2UuY29uc3RydWN0b3IudG9TdHJpbmcoKSwgJ2RpdicpOworCisgICAgYmFzZUluc3RhbmNlLmJhc2VQcm9wZXJ0eVNldCA9IDc7CisgICAgYXNzZXJ0LmVxdWFsKGJhc2VJbnN0YW5jZS5iYXNlUHJvcGVydHlTZXQsIDcpOworICB9KTsKKworICB0ZXN0KCdzdWJjbGFzc2luZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBTdWIgPSB0ci51aS5iLmRlZmluZSgnc3ViJywgQmFzZSk7CisgICAgU3ViLnByb3RvdHlwZSA9IHsKKyAgICAgIF9fcHJvdG9fXzogQmFzZS5wcm90b3R5cGUsCisgICAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuZGVjb3JhdGVkQXNTdWIgPSB0cnVlOworICAgICAgfQorICAgIH07CisKKyAgICB2YXIgc3ViSW5zdGFuY2UgPSBuZXcgU3ViKCk7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2Yoc3ViSW5zdGFuY2UsIFN1Yik7CisgICAgYXNzZXJ0LmlzVHJ1ZShzdWJJbnN0YW5jZS5kZWNvcmF0ZWRBc1N1Yik7CisKKyAgICBhc3NlcnQuaW5zdGFuY2VPZihzdWJJbnN0YW5jZSwgQmFzZSk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHN1Ykluc3RhbmNlLmRlY29yYXRlZEFzQmFzZSk7CisKKyAgICBhc3NlcnQuZXF1YWwoc3ViSW5zdGFuY2UuY29uc3RydWN0b3IsIFN1Yik7CisgICAgYXNzZXJ0LmVxdWFsKHN1Ykluc3RhbmNlLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCksICdkaXY6OnN1YicpOworCisgICAgc3ViSW5zdGFuY2UuYmFzZVByb3BlcnR5ID0gdHJ1ZTsKKyAgICBhc3NlcnQuaXNUcnVlKHN1Ykluc3RhbmNlLmJhc2VQcm9wZXJ0eVNldCk7CisgIH0pOworCisgIHZhciBOb0FyZ3MgPSB0ci51aS5iLmRlZmluZSgnZGl2Jyk7CisgIE5vQXJncy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUsCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5ub0FyZ3NEZWNvcmF0ZWRfID0gdHJ1ZTsKKyAgICB9LAorICAgIGdldCBub0FyZ3NEZWNvcmF0ZWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5ub0FyZ3NEZWNvcmF0ZWRfOworICAgIH0KKyAgfTsKKworICB2YXIgQXJncyA9IHRyLnVpLmIuZGVmaW5lKCdhcmdzJywgTm9BcmdzKTsKKyAgQXJncy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBOb0FyZ3MucHJvdG90eXBlLAorICAgIGRlY29yYXRlOiBmdW5jdGlvbihmaXJzdCkgeworICAgICAgdGhpcy5maXJzdF8gPSBmaXJzdDsKKyAgICAgIHRoaXMuYXJnc0RlY29yYXRlZF8gPSB0cnVlOworICAgIH0sCisgICAgZ2V0IGZpcnN0KCkgeworICAgICAgcmV0dXJuIHRoaXMuZmlyc3RfOworICAgIH0sCisgICAgZ2V0IGFyZ3NEZWNvcmF0ZWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5hcmdzRGVjb3JhdGVkXzsKKyAgICB9CisgIH07CisKKyAgdmFyIEFyZ3NDaGlsZCA9IHRyLnVpLmIuZGVmaW5lKCdhcmdzLWNoaWxkJywgQXJncyk7CisgIEFyZ3NDaGlsZC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBBcmdzLnByb3RvdHlwZSwKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oXywgc2Vjb25kKSB7CisgICAgICB0aGlzLnNlY29uZF8gPSBzZWNvbmQ7CisgICAgICB0aGlzLmFyZ3NDaGlsZERlY29yYXRlZF8gPSB0cnVlOworICAgIH0sCisgICAgZ2V0IHNlY29uZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlY29uZF87CisgICAgfSwKKyAgICBnZXQgZGVjb3JhdGVkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZGVjb3JhdGVkXzsKKyAgICB9LAorICAgIGdldCBhcmdzQ2hpbGREZWNvcmF0ZWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5hcmdzQ2hpbGREZWNvcmF0ZWRfID0gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgdmFyIEFyZ3NEZWNvcmF0aW5nQ2hpbGQgPSB0ci51aS5iLmRlZmluZSgnYXJncy1kZWNvcmF0aW5nLWNoaWxkJywgQXJncyk7CisgIEFyZ3NEZWNvcmF0aW5nQ2hpbGQucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogQXJncy5wcm90b3R5cGUsCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKGZpcnN0LCBzZWNvbmQpIHsKKyAgICAgIEFyZ3MucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgZmlyc3QpOworICAgICAgdGhpcy5zZWNvbmRfID0gc2Vjb25kOworICAgICAgdGhpcy5hcmdzRGVjb3JhdGluZ0NoaWxkRGVjb3JhdGVkXyA9IHRydWU7CisgICAgfSwKKyAgICBnZXQgc2Vjb25kKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2Vjb25kXzsKKyAgICB9LAorICAgIGdldCBkZWNvcmF0ZWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5kZWNvcmF0ZWRfOworICAgIH0sCisgICAgZ2V0IGFyZ3NEZWNvcmF0aW5nQ2hpbGREZWNvcmF0ZWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5hcmdzQ2hpbGREZWNvcmF0ZWRfID0gdHJ1ZTsKKyAgICB9CisgIH07CisKKyAgdGVzdCgnZGVjb3JhdGVfbm9Bcmd1bWVudHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbm9BcmdzOworICAgIGFzc2VydC5kb2VzTm90VGhyb3coZnVuY3Rpb24oKSB7CisgICAgICBub0FyZ3MgPSBuZXcgTm9BcmdzKCk7CisgICAgfSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShub0FyZ3Mubm9BcmdzRGVjb3JhdGVkKTsKKyAgfSk7CisKKyAgdGVzdCgnZGVjb3JhdGVfYXJndW1lbnRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGFyZ3MgPSBuZXcgQXJncygndGhpcyBpcyBmaXJzdCcpOworICAgIGFzc2VydC5lcXVhbChhcmdzLmZpcnN0LCAndGhpcyBpcyBmaXJzdCcpOworICAgIGFzc2VydC5pc1RydWUoYXJncy5hcmdzRGVjb3JhdGVkKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJncy5ub0FyZ3NEZWNvcmF0ZWQpOworICB9KTsKKworICB0ZXN0KCdkZWNvcmF0ZV9zdWJjbGFzc0FyZ3VtZW50cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBhcmdzQ2hpbGQgPSBuZXcgQXJnc0NoaWxkKCd0aGlzIGlzIGZpcnN0JywgJ2FuZCBzZWNvbmQnKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJnc0NoaWxkLmZpcnN0KTsKKyAgICBhc3NlcnQuZXF1YWwoYXJnc0NoaWxkLnNlY29uZCwgJ2FuZCBzZWNvbmQnKTsKKworICAgIGFzc2VydC5pc1RydWUoYXJnc0NoaWxkLmFyZ3NDaGlsZERlY29yYXRlZCk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGFyZ3NDaGlsZC5hcmdzRGVjb3JhdGVkKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJnc0NoaWxkLm5vQXJnc0RlY29yYXRlZCk7CisgIH0pOworCisgIHRlc3QoJ2RlY29yYXRlX3N1YkNsYXNzQ2FsbHNQYXJlbnREZWNvcmF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBhcmdzRGVjb3JhdGluZ0NoaWxkID0gbmV3IEFyZ3NEZWNvcmF0aW5nQ2hpbGQoCisgICAgICAgICd0aGlzIGlzIGZpcnN0JywgJ2FuZCBzZWNvbmQnKTsKKyAgICBhc3NlcnQuZXF1YWwoYXJnc0RlY29yYXRpbmdDaGlsZC5maXJzdCwgJ3RoaXMgaXMgZmlyc3QnKTsKKyAgICBhc3NlcnQuZXF1YWwoYXJnc0RlY29yYXRpbmdDaGlsZC5zZWNvbmQsICdhbmQgc2Vjb25kJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShhcmdzRGVjb3JhdGluZ0NoaWxkLmFyZ3NEZWNvcmF0aW5nQ2hpbGREZWNvcmF0ZWQpOworICAgIGFzc2VydC5pc1RydWUoYXJnc0RlY29yYXRpbmdDaGlsZC5hcmdzRGVjb3JhdGVkKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoYXJnc0RlY29yYXRpbmdDaGlsZC5ub0FyZ3NEZWNvcmF0ZWQpOworICB9KTsKKworICB0ZXN0KCdkZWZpbmVXaXRoTmFtZXNwYWNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHN2Z05TID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsKKyAgICB2YXIgY2xzID0gdHIudWkuYi5kZWZpbmUoJ3N2ZycsIHVuZGVmaW5lZCwgc3ZnTlMpOworICAgIGNscy5wcm90b3R5cGUgPSB7CisgICAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgMjAwKTsKKyAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIDIwMCk7CisgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd2aWV3UG9ydCcsICcwIDAgMjAwIDIwMCcpOworICAgICAgICB2YXIgcmVjdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCAncmVjdCcpOworICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCd4JywgMTApOworICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCd5JywgMTApOworICAgICAgICByZWN0RWwuc2V0QXR0cmlidXRlKCd3aWR0aCcsIDE4MCk7CisgICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIDE4MCk7CisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQocmVjdEVsKTsKKyAgICAgIH0KKyAgICB9OworICAgIHZhciBlbCA9IG5ldyBjbHMoKTsKKyAgICBhc3NlcnQuZXF1YWwoZWwudGFnTmFtZSwgJ3N2ZycpOworICAgIGFzc2VydC5lcXVhbChlbC5uYW1lc3BhY2VVUkksIHN2Z05TKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZWwpOworICB9KTsKKworICB0ZXN0KCdkZWZpbmVTdWJjbGFzc1dpdGhOYW1lc3BhY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3ZnTlMgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnOworICAgIHZhciBjbHMgPSB0ci51aS5iLmRlZmluZSgnc3ZnJywgdW5kZWZpbmVkLCBzdmdOUyk7CisgICAgY2xzLnByb3RvdHlwZSA9IHsKKyAgICAgIF9fcHJvdG9fXzogSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSwKKworICAgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAyMDApOworICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgMjAwKTsKKyAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZpZXdQb3J0JywgJzAgMCAyMDAgMjAwJyk7CisgICAgICAgIHZhciByZWN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICdyZWN0Jyk7CisgICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ3gnLCAxMCk7CisgICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ3knLCAxMCk7CisgICAgICAgIHJlY3RFbC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgMTgwKTsKKyAgICAgICAgcmVjdEVsLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgMTgwKTsKKyAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChyZWN0RWwpOworICAgICAgfQorICAgIH07CisKKyAgICB2YXIgc3ViQ2xzID0gdHIudWkuYi5kZWZpbmUoJ3N1YicsIGNscyk7CisgICAgc3ViQ2xzLnByb3RvdHlwZSA9IHsKKyAgICAgIF9fcHJvdG9fXzogY2xzLnByb3RvdHlwZQorICAgIH07CisgICAgYXNzZXJ0LmVxdWFsKHN1YkNscy50b1N0cmluZygpLCAnc3ZnOjpzdWInKTsKKworICAgIHZhciBlbCA9IG5ldyBzdWJDbHMoKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZWwpOworICAgIGFzc2VydC5lcXVhbChlbC50YWdOYW1lLCAnc3ZnJyk7CisgICAgYXNzZXJ0LmVxdWFsKGVsLm5hbWVzcGFjZVVSSSwgc3ZnTlMpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdXRpbHMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS91dGlscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5ODk5YTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdXRpbHMuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JlY3QuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5iJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGluc3RhbnRpYXRlVGVtcGxhdGUoc2VsZWN0b3IsIGRvYykgeworICAgIGRvYyA9IGRvYyB8fCBkb2N1bWVudDsKKyAgICB2YXIgZWwgPSBkb2MucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgaWYgKCFlbCkKKyAgICAgIHRocm93IG5ldyBFcnJvcignRWxlbWVudCBub3QgZm91bmQnKTsKKyAgICByZXR1cm4gZWwuY3JlYXRlSW5zdGFuY2UoKTsKKyAgfQorCisgIGZ1bmN0aW9uIHdpbmRvd1JlY3RGb3JFbGVtZW50KGVsZW1lbnQpIHsKKyAgICB2YXIgcG9zaXRpb24gPSBbZWxlbWVudC5vZmZzZXRMZWZ0LCBlbGVtZW50Lm9mZnNldFRvcF07CisgICAgdmFyIHNpemUgPSBbZWxlbWVudC5vZmZzZXRXaWR0aCwgZWxlbWVudC5vZmZzZXRIZWlnaHRdOworICAgIHZhciBub2RlID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgIHBvc2l0aW9uWzBdICs9IG5vZGUub2Zmc2V0TGVmdDsKKyAgICAgIHBvc2l0aW9uWzFdICs9IG5vZGUub2Zmc2V0VG9wOworICAgICAgbm9kZSA9IG5vZGUub2Zmc2V0UGFyZW50OworICAgIH0KKyAgICByZXR1cm4gdHIuYi5SZWN0LmZyb21YWVdIKHBvc2l0aW9uWzBdLCBwb3NpdGlvblsxXSwgc2l6ZVswXSwgc2l6ZVsxXSk7CisgIH0KKworICBmdW5jdGlvbiBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKGVsKSB7CisgICAgdmFyIHByID0gZWwucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICB2YXIgY3IgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBpZiAoY3IudG9wIDwgcHIudG9wKSB7CisgICAgICBlbC5zY3JvbGxJbnRvVmlldyh0cnVlKTsKKyAgICB9IGVsc2UgaWYgKGNyLmJvdHRvbSA+IHByLmJvdHRvbSkgeworICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpOworICAgIH0KKyAgfQorCisgIHJldHVybiB7CisgICAgaW5zdGFudGlhdGVUZW1wbGF0ZTogaW5zdGFudGlhdGVUZW1wbGF0ZSwKKyAgICB3aW5kb3dSZWN0Rm9yRWxlbWVudDogd2luZG93UmVjdEZvckVsZW1lbnQsCisgICAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZDogc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS91dGlsc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdXRpbHNfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NjU2YjEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2UvdXRpbHNfdGVzdC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0iaW5zdGFudGlhdGUtdGVtcGxhdGUtcG9seW1lci1lbGVtZW50LXRlc3QiPgorICA8dGVtcGxhdGU+PC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworICBQb2x5bWVyKHsKKyAgICB0ZXN0UHJvcGVydHk6ICdUZXN0JworICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KKworPHRlbXBsYXRlIGlkPSJpbnN0YW50aWF0ZS10ZW1wbGF0ZS1wb2x5bWVyLXRlc3QiPgorICA8aW5zdGFudGlhdGUtdGVtcGxhdGUtcG9seW1lci1lbGVtZW50LXRlc3Q+CisgIDwvaW5zdGFudGlhdGUtdGVtcGxhdGUtcG9seW1lci1lbGVtZW50LXRlc3Q+Cis8L3RlbXBsYXRlPgorCis8dGVtcGxhdGUgaWQ9Im11bHRpcGxlLXRlbXBsYXRlLXRlc3QiPgorICA8dGVtcGxhdGU+CisgICAgPGluc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItZWxlbWVudC10ZXN0PgorICAgIDwvaW5zdGFudGlhdGUtdGVtcGxhdGUtcG9seW1lci1lbGVtZW50LXRlc3Q+CisgICAgPHNwYW4gdGVzdC1hdHRyaWJ1dGU9J1Rlc3RBdHRyaWJ1dGUnPkZvbzwvc3Bhbj4KKyAgPC90ZW1wbGF0ZT4KKyAgPGluc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItZWxlbWVudC10ZXN0PgorICA8L2luc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItZWxlbWVudC10ZXN0PgorPC90ZW1wbGF0ZT4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50Ll9jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVUZW1wbGF0ZVBvbHltZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZSA9IHRyLnVpLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAnI2luc3RhbnRpYXRlLXRlbXBsYXRlLXBvbHltZXItdGVzdCcsCisgICAgICAgICAgICAgICAgVEhJU19ET0MpOworICAgIGFzc2VydC5lcXVhbChlLmNoaWxkcmVuLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGUuY2hpbGRyZW5bMF0udGVzdFByb3BlcnR5LCAnVGVzdCcpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZVRlbXBsYXRlTXVsdGlwbGVUZW1wbGF0ZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgb3V0ZXJFbGVtZW50ID0gdHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNtdWx0aXBsZS10ZW1wbGF0ZS10ZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRISVNfRE9DKTsKKyAgICBhc3NlcnQuZXF1YWwob3V0ZXJFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKG91dGVyRWxlbWVudC5jaGlsZHJlblsxXS50ZXN0UHJvcGVydHksICdUZXN0Jyk7CisKKyAgICAvLyBNYWtlIHN1cmUgd2UgY2FuIHN0aWxsIGluc3RhbnRpYXRlIGlubmVyIHRlbXBsYXRlcywgaWYgd2UgbmVlZCB0aGVtLgorICAgIHZhciBpbm5lckVsZW1lbnQgPSBvdXRlckVsZW1lbnQuY2hpbGRyZW5bMF0uY3JlYXRlSW5zdGFuY2UoKTsKKyAgICBhc3NlcnQuZXF1YWwoaW5uZXJFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKGlubmVyRWxlbWVudC5jaGlsZHJlblswXS50ZXN0UHJvcGVydHksICdUZXN0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKAorICAgICAgICBpbm5lckVsZW1lbnQuY2hpbGRyZW5bMV0uZ2V0QXR0cmlidXRlKCd0ZXN0LWF0dHJpYnV0ZScpLAorICAgICAgICAnVGVzdEF0dHJpYnV0ZScpOworICAgIGFzc2VydC5lcXVhbChpbm5lckVsZW1lbnQuY2hpbGRyZW5bMV0udGV4dENvbnRlbnQsICdGb28nKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvdmlld19zcGVjaWZpY19icnVzaGluZ19zdGF0ZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3ZpZXdfc3BlY2lmaWNfYnJ1c2hpbmdfc3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTA5OTdiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9iYXNlL3ZpZXdfc3BlY2lmaWNfYnJ1c2hpbmdfc3RhdGUuaHRtbApAQCAtMCwwICsxLDg5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYnJ1c2hpbmdfc3RhdGVfY29udHJvbGxlci5odG1sIj4KKworPCEtLQorVGhpcyBlbGVtZW50IGhhbmRsZXMgc3RvcmluZyBhbmQgcmV0cmlldmluZyB0aGUgYnJ1c2hpbmcgc3RhdGUgb2YgYXJiaXRyYXJ5Cit2aWV3cyAoZS5nLiBhbmFseXNpcyBzdWItdmlld3MpLiBBbiBlbGVtZW50IGNhbiB1c2UgaXQgYnkgaW5zdGFudGlhdGluZyBpdCBhbmQKK2FwcGVuZGluZyBpdCB0byBpdHNlbGY6CisKKyAgPGRpdiBpZD0ic29tZS12aWV3LXdpdGgtc3BlY2lmaWMtYnJ1c2hpbmctc3RhdGUiPgorICAgIDx0ci11aS1iLXZpZXctc3BlY2lmaWMtYnJ1c2hpbmctc3RhdGUgdmlldy1pZD0idW5pcXVlLXZpZXctaWRlbnRpZmllciI+CisgICAgPC90ci11aS1iLXZpZXctc3BlY2lmaWMtYnJ1c2hpbmctc3RhdGU+CisgICAgLi4uIG90aGVyIGNoaWxkIGVsZW1lbnRzIC4uLgorICA8L2Rpdj4KKworVGhlIHN0YXRlIGNhbiB0aGVuIGJlIHJldHJpZXZlZCBmcm9tIGFuZCBwdXNoZWQgdG8gdGhlIHN0YXRlIGVsZW1lbnQgYXMKK2ZvbGxvd3M6CisKKyAgbmV3U3RhdGVFbGVtZW50LnNldChzdGF0ZSk7CisgIHN0YXRlID0gbmV3U3RhdGVFbGVtZW50LmdldCgpOworCitVbmRlciB0aGUgaG9vZCwgdGhlIHN0YXRlIGVsZW1lbnQgc2VhcmNoZXMgdGhlIERPTSB0cmVlIGZvciBhbiBhbmNlc3RvciBlbGVtZW50Cit3aXRoIGEgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgZmllbGQgdG8gcGVyc2lzdCB0aGUgc3RhdGUgKHNlZSB0aGUKK3RyLmMuQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgYW5kIHRyLnVpLmIuQnJ1c2hpbmdTdGF0ZSBjbGFzc2VzIGZvciBtb3JlCitkZXRhaWxzKS4KKy0tPgorPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1iLXZpZXctc3BlY2lmaWMtYnJ1c2hpbmctc3RhdGUiPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgLyoqIENvbXB1bHNvcnkgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFzc29jaWF0ZWQgdmlldy4gKi8KKyAgICBnZXQgdmlld0lkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCd2aWV3LWlkJyk7CisgICAgfSwKKworICAgIHNldCB2aWV3SWQodmlld0lkKSB7CisgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndmlldy1pZCcsIHZpZXdJZCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBwZXJzaXN0ZWQgc3RhdGUgb2YgdGhlIGFzc29jaWF0ZWQgdmlldy4gVGhlIHJldHVybmVkIG9iamVjdAorICAgICAqIChvciBhbnkgb2YgaXRzIGZpZWxkcykgbXVzdCBub3QgYmUgbW9kaWZpZWQgYnkgdGhlIGNhbGxlciAodW5sZXNzIHRoZQorICAgICAqIG9iamVjdC9maWVsZCBpcyB0cmVhdGVkIGFzIGEgcmVmZXJlbmNlKS4KKyAgICAgKgorICAgICAqIElmIG5vIHN0YXRlIGhhcyBiZWVuIHBlcnNpc3RlZCB5ZXQgb3IgdGhlcmUgaXMgbm8gYW5jZXN0b3IgZWxlbWVudCB3aXRoCisgICAgICogYSBicnVzaGluZ1N0YXRlQ29udHJvbGxlciBmaWVsZCwgdGhpcyBtZXRob2QgcmV0dXJucyB1bmRlZmluZWQuCisgICAgICovCisgICAgZ2V0OiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciB2aWV3SWQgPSB0aGlzLnZpZXdJZDsKKyAgICAgIGlmICghdmlld0lkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VsZW1lbnQgbXVzdCBoYXZlIGEgdmlldy1pZCBhdHRyaWJ1dGUhJyk7CisKKyAgICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9CisgICAgICAgICAgdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRDb250cm9sbGVyRm9yRWxlbWVudCh0aGlzKTsKKyAgICAgIGlmICghYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIHJldHVybiBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5nZXRWaWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlKHZpZXdJZCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFBlcnNpc3QgdGhlIHByb3ZpZGVkIHN0YXRlIG9mIHRoZSBhc3NvY2lhdGVkIHZpZXcuIFRoZSBwcm92aWRlZCBvYmplY3QKKyAgICAgKiAob3IgYW55IG9mIGl0cyBmaWVsZHMpIG11c3Qgbm90IGJlIG1vZGlmaWVkIGFmdGVyd2FyZHMgKHVubGVzcyB0aGUKKyAgICAgKiBvYmplY3QvZmllbGQgaXMgdHJlYXRlZCBhcyBhIHJlZmVyZW5jZSkuCisgICAgICoKKyAgICAgKiBJZiB0aGVyZSBpcyBubyBhbmNlc3RvciBlbGVtZW50IHdpdGggYSBicnVzaGluZ1N0YXRlQ29udHJvbGxlciBmaWVsZCwKKyAgICAgKiB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCisgICAgICovCisgICAgc2V0OiBmdW5jdGlvbihzdGF0ZSkgeworICAgICAgdmFyIHZpZXdJZCA9IHRoaXMudmlld0lkOworICAgICAgaWYgKCF2aWV3SWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignRWxlbWVudCBtdXN0IGhhdmUgYSB2aWV3LWlkIGF0dHJpYnV0ZSEnKTsKKworICAgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0KKyAgICAgICAgICB0ci5jLkJydXNoaW5nU3RhdGVDb250cm9sbGVyLmdldENvbnRyb2xsZXJGb3JFbGVtZW50KHRoaXMpOworICAgICAgaWYgKCFicnVzaGluZ1N0YXRlQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5jaGFuZ2VWaWV3U3BlY2lmaWNCcnVzaGluZ1N0YXRlKHZpZXdJZCwgc3RhdGUpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvdmlld19zcGVjaWZpY19icnVzaGluZ19zdGF0ZV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2Jhc2Uvdmlld19zcGVjaWZpY19icnVzaGluZ19zdGF0ZV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhkZTcxOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvYmFzZS92aWV3X3NwZWNpZmljX2JydXNoaW5nX3N0YXRlX3Rlc3QuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYnJ1c2hpbmdfc3RhdGVfY29udHJvbGxlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS92aWV3X3NwZWNpZmljX2JydXNoaW5nX3N0YXRlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIEJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gdHIuYy5CcnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKworICBmdW5jdGlvbiBzZXRTdGF0ZUVsZW1lbnQoY29udGFpbmVyRWwsIHZpZXdJZCkgeworICAgIHZhciBzdGF0ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAndHItdWktYi12aWV3LXNwZWNpZmljLWJydXNoaW5nLXN0YXRlJyk7CisgICAgc3RhdGVFbGVtZW50LnZpZXdJZCA9IHZpZXdJZDsKKyAgICBjb250YWluZXJFbC5hcHBlbmRDaGlsZChzdGF0ZUVsZW1lbnQpOworICAgIHJldHVybiBzdGF0ZUVsZW1lbnQ7CisgIH0KKworICBmdW5jdGlvbiBhZGRDaGlsZERpdihlbGVtZW50KSB7CisgICAgdmFyIGNoaWxkID0gZWxlbWVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOworICAgIHJldHVybiBjaGlsZDsKKyAgfQorCisgIGZ1bmN0aW9uIGFkZFNoYWRvd0NoaWxkRGl2KGVsZW1lbnQpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IGVsZW1lbnQuY3JlYXRlU2hhZG93Um9vdCgpOworICAgIHJldHVybiBhZGRDaGlsZERpdihzaGFkb3dSb290KTsKKyAgfQorCisgIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhvdXRCcnVzaGluZ1N0YXRlQ29udHJvbGxlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250YWluZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworCisgICAgdmFyIHN0YXRlRWxlbWVudDEgPSBzZXRTdGF0ZUVsZW1lbnQoY29udGFpbmVyRWwsICd0ZXN0LXZpZXcnKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3RhdGVFbGVtZW50MS5nZXQoKSk7CisgICAgc3RhdGVFbGVtZW50MS5zZXQoe2U6IDIuNzE4Mjh9KTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3RhdGVFbGVtZW50MS5nZXQoKSk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhCcnVzaGluZ1N0YXRlQ29udHJvbGxlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciByb290RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgY29udGFpbmVyRWwgPSBhZGRDaGlsZERpdihhZGRTaGFkb3dDaGlsZERpdihhZGRDaGlsZERpdihyb290RWwpKSk7CisgICAgcm9vdEVsLmJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEJydXNoaW5nU3RhdGVDb250cm9sbGVyKHVuZGVmaW5lZCk7CisKKyAgICB2YXIgc3RhdGVFbGVtZW50MSA9IHNldFN0YXRlRWxlbWVudChjb250YWluZXJFbCwgJ3Rlc3QtdmlldycpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChzdGF0ZUVsZW1lbnQxLmdldCgpKTsKKyAgICBzdGF0ZUVsZW1lbnQxLnNldCh7ZTogMi43MTgyOH0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3RhdGVFbGVtZW50MS5nZXQoKSwge2U6IDIuNzE4Mjh9KTsKKworICAgIHZhciBzdGF0ZUVsZW1lbnQyID0gc2V0U3RhdGVFbGVtZW50KGNvbnRhaW5lckVsLCAndGVzdC12aWV3LTInKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc3RhdGVFbGVtZW50Mi5nZXQoKSk7CisgICAgc3RhdGVFbGVtZW50Mi5zZXQoe3BpOiAzLjE0MTU5fSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzdGF0ZUVsZW1lbnQyLmdldCgpLCB7cGk6IDMuMTQxNTl9KTsKKworICAgIHZhciBzdGF0ZUVsZW1lbnQzID0gc2V0U3RhdGVFbGVtZW50KGNvbnRhaW5lckVsLCAndGVzdC12aWV3Jyk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzdGF0ZUVsZW1lbnQzLmdldCgpLCB7ZTogMi43MTgyOH0pOworCisgICAgdmFyIHN0YXRlRWxlbWVudDQgPSBzZXRTdGF0ZUVsZW1lbnQoY29udGFpbmVyRWwsICd0ZXN0LXZpZXctMicpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3RhdGVFbGVtZW50NC5nZXQoKSwge3BpOiAzLjE0MTU5fSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvYWJvdXRfdHJhY2luZy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9hYm91dF90cmFjaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAwZDg3NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvYWJvdXRfdHJhY2luZy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvY29tbW9uLmNzcyI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvZnVsbF9jb25maWcuaHRtbCI+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5hYm91dF90cmFjaW5nJywgZnVuY3Rpb24oKSB7CisgIHdpbmRvdy5wcm9maWxpbmdWaWV3ID0gdW5kZWZpbmVkOyAgLy8gTWFkZSBnbG9iYWwgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5LgorCisgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cucHJvZmlsaW5nVmlldyA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuUHJvZmlsaW5nVmlldygpOworICAgIHByb2ZpbGluZ1ZpZXcudGltZWxpbmVWaWV3Lmdsb2JhbE1vZGUgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocHJvZmlsaW5nVmlldyk7CisgIH0pOworCisgIHJldHVybiB7fTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL2NvbW1vbi5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL2NvbW1vbi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmYjVmNwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvY29tbW9uLmNzcwpAQCAtMCwwICsxLDI1IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorICovCitodG1sLAorYm9keSB7CisgIGhlaWdodDogMTAwJTsKK30KKworYm9keSB7CisgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICBtYXJnaW46IDA7CisgIHBhZGRpbmc6IDA7Cit9CisKK2JvZHkgPiB4LXByb2ZpbGluZy12aWV3IHsKKyAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgbWluLWhlaWdodDogMDsKK30KKworYm9keSA+IHgtcHJvZmlsaW5nLXZpZXcgPiB4LXRpbWVsaW5lLXZpZXc6Zm9jdXMgeworICBvdXRsaW5lOiAwCit9CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX2Nvbm5lY3Rpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX2Nvbm5lY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmRiMjBjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfY29ubmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIENvbnRhaW5zIGNvbm5lY3Rpb24gY29kZSB0aGF0IGluc3BlY3RvcidzIGVtYmVkZGluZyBmcmFtZXdvcmsgY2FsbHMgb24KKyAqIHRyYWNpbmcsIGFuZCB0aGF0IHRyYWNpbmcgY2FuIHVzZSB0byB0YWxrIHRvIGluc3BlY3Rvci4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLnVpLmUuYWJvdXRfdHJhY2luZycsIGZ1bmN0aW9uKCkgeworICAvLyBJbnRlcmZhY2UgdXNlZCBieSBpbnNwZWN0b3Igd2hlbiBpdCBoYW5kcyBkYXRhIHRvIHVzIGZyb20gdGhlIGJhY2tlbmQuCisgIHdpbmRvdy5EZXZUb29sc0FQSSA9IHsKKyAgICBzZXRUb29sYmFyQ29sb3JzOiBmdW5jdGlvbigpIHsgfSwKKyAgICBhZGRFeHRlbnNpb25zOiBmdW5jdGlvbigpIHsgfSwKKyAgICBzZXRJbnNwZWN0ZWRQYWdlSWQ6IGZ1bmN0aW9uKCkgeyB9LAorCisgICAgZGlzcGF0Y2hNZXNzYWdlOiBmdW5jdGlvbihwYXlsb2FkKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBoYXZlIGJlZW4gcGF0Y2hlZCBieSBJbnNwZWN0b3JDb25uZWN0aW9uJyk7CisgICAgfQorICB9OworICAvLyBUZW1wb3JhcnkgdW50aWwgaW5zcGVjdG9yIGJhY2tlbmQgc3dpdGNoZXMgdG8gRGV2VG9vbHNBUEkuCisgIHdpbmRvdy5JbnNwZWN0b3JGcm9udGVuZEFQSSA9IHdpbmRvdy5EZXZUb29sc0FQSTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBJbnNwZWN0b3JDb25uZWN0aW9uKCkgeworICAgIGlmIChJbnNwZWN0b3JDb25uZWN0aW9uLmluc3RhbmNlKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaW5nbGV0b24nKTsKKworICAgIHRoaXMubmV4dFJlcXVlc3RJZF8gPSAxOworICAgIHRoaXMucGVuZGluZ1JlcXVlc3RSZXNvbHZlcnNJZF8gPSB7fTsKKworICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdGVuZXJzQnlNZXRob2ROYW1lXyA9IHt9OworICAgIERldlRvb2xzQVBJLmRpc3BhdGNoTWVzc2FnZSA9IHRoaXMuZGlzcGF0Y2hNZXNzYWdlXy5iaW5kKHRoaXMpOworICB9CisKKyAgSW5zcGVjdG9yQ29ubmVjdGlvbi5wcm90b3R5cGUgPSB7CisgICAgcmVxOiBmdW5jdGlvbihtZXRob2QsIHBhcmFtcykgeworICAgICAgdmFyIGlkID0gdGhpcy5uZXh0UmVxdWVzdElkXysrOworICAgICAgdmFyIG1zZyA9IEpTT04uc3RyaW5naWZ5KHsKKyAgICAgICAgaWQ6IGlkLAorICAgICAgICBtZXRob2Q6IG1ldGhvZCwKKyAgICAgICAgcGFyYW1zOiBwYXJhbXMKKyAgICAgIH0pOworICAgICAgRGV2VG9vbHNIb3N0LnNlbmRNZXNzYWdlVG9CYWNrZW5kKG1zZyk7CisKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdFJlc29sdmVyc0lkX1tpZF0gPSB7CisgICAgICAgICAgcmVzb2x2ZTogcmVzb2x2ZSwKKyAgICAgICAgICByZWplY3Q6IHJlamVjdAorICAgICAgICB9OworICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXI6IGZ1bmN0aW9uKG1ldGhvZCwgbGlzdGVuZXIpIHsKKyAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdGVuZXJzQnlNZXRob2ROYW1lX1ttZXRob2RdID0gbGlzdGVuZXI7CisgICAgfSwKKworICAgIGRpc3BhdGNoTWVzc2FnZV86IGZ1bmN0aW9uKHBheWxvYWQpIHsKKyAgICAgIHZhciBpc1N0cmluZ1BheWxvYWQgPSB0eXBlb2YgcGF5bG9hZCA9PT0gJ3N0cmluZyc7CisgICAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBUcmFjaW5nLmRhdGFDb2xsZWN0ZWQgYmVjYXVzZSBpdCBpcyBoaWdoCisgICAgICAvLyBiYW5kd2lkdGguCisgICAgICB2YXIgaXNEYXRhQ29sbGVjdGVkTWVzc2FnZSA9IGlzU3RyaW5nUGF5bG9hZCA/CisgICAgICAgICAgcGF5bG9hZC5pbmRleE9mKCcibWV0aG9kIjogIlRyYWNpbmcuZGF0YUNvbGxlY3RlZCInKSAhPT0gLTEgOgorICAgICAgICAgIHBheWxvYWQubWV0aG9kID09PSAnVHJhY2luZy5kYXRhQ29sbGVjdGVkJzsKKyAgICAgIGlmIChpc0RhdGFDb2xsZWN0ZWRNZXNzYWdlKSB7CisgICAgICAgIHZhciBsaXN0ZW5lciA9IHRoaXMubm90aWZpY2F0aW9uTGlzdGVuZXJzQnlNZXRob2ROYW1lX1sKKyAgICAgICAgICAgICdUcmFjaW5nLmRhdGFDb2xsZWN0ZWQnXTsKKyAgICAgICAgaWYgKGxpc3RlbmVyKSB7CisgICAgICAgICAgLy8gRklYTUUobG9pc2xvKTogdHJhY2Ugdmlld2VyIHNob3VsZCBiZSBhYmxlIHRvIHByb2Nlc3MKKyAgICAgICAgICAvLyByYXcgbWVzc2FnZSBvYmplY3QgYmVjYXVzZSBzdHJpbmcgYmFzZWQgdmVyc2lvbiBhIGZldyB0aW1lcworICAgICAgICAgIC8vIHNsb3dlciBvbiB0aGUgYnJvd3NlciBzaWRlLgorICAgICAgICAgIC8vIHNlZSBodHRwczovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzc4NDUxMzAwMi4KKyAgICAgICAgICBsaXN0ZW5lcihpc1N0cmluZ1BheWxvYWQgPyBwYXlsb2FkIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICB2YXIgbWVzc2FnZSA9IGlzU3RyaW5nUGF5bG9hZCA/IEpTT04ucGFyc2UocGF5bG9hZCkgOiBwYXlsb2FkOworICAgICAgaWYgKG1lc3NhZ2UuaWQpIHsKKyAgICAgICAgdmFyIHJlc29sdmVyID0gdGhpcy5wZW5kaW5nUmVxdWVzdFJlc29sdmVyc0lkX1ttZXNzYWdlLmlkXTsKKyAgICAgICAgaWYgKHJlc29sdmVyID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICBjb25zb2xlLmxvZygnVW5yZWNvZ25pemVkIGFjaycsIG1lc3NhZ2UpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobWVzc2FnZS5lcnJvcikgeworICAgICAgICAgIHJlc29sdmVyLnJlamVjdChtZXNzYWdlLmVycm9yKTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgcmVzb2x2ZXIucmVzb2x2ZShtZXNzYWdlLnJlc3VsdCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKG1lc3NhZ2VbJ21ldGhvZCddKSB7CisgICAgICAgIHZhciBsaXN0ZW5lciA9IHRoaXMubm90aWZpY2F0aW9uTGlzdGVuZXJzQnlNZXRob2ROYW1lX1ttZXNzYWdlLm1ldGhvZF07CisgICAgICAgIGlmIChsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgY29uc29sZS5sb2coJ1VuaGFuZGxlZCAnLCBtZXNzYWdlLm1ldGhvZCk7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGxpc3RlbmVyKG1lc3NhZ2UucGFyYW1zKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgY29uc29sZS5sb2coJ1Vua25vd24gZGlzcGF0Y2hNZXNzYWdlOiAnLCBwYXlsb2FkKTsKKyAgICB9CisgIH07CisKKyAgaWYgKHdpbmRvdy5EZXZUb29sc0hvc3QpCisgICAgSW5zcGVjdG9yQ29ubmVjdGlvbi5pbnN0YW5jZSA9IG5ldyBJbnNwZWN0b3JDb25uZWN0aW9uKCk7CisgIGVsc2UKKyAgICBJbnNwZWN0b3JDb25uZWN0aW9uLmluc3RhbmNlID0gdW5kZWZpbmVkOworCisgIHJldHVybiB7CisgICAgSW5zcGVjdG9yQ29ubmVjdGlvbjogSW5zcGVjdG9yQ29ubmVjdGlvbgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTA1YjYzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sCkBAIC0wLDAgKzEsMTg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiCisgICAgICBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvaW5zcGVjdG9yX2Nvbm5lY3Rpb24uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmFib3V0X3RyYWNpbmcnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZWRQcm9taXNlKGRhdGEpIHsKKyAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgaWYgKGRhdGEpCisgICAgICAgIHJlc29sdmUoZGF0YSk7CisgICAgICBlbHNlCisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gcHJvbWlzZTsKKyAgfQorCisgIGZ1bmN0aW9uIGFwcGVuZFRyYWNlQ2h1bmtzVG8oY2h1bmtzLCBtZXNzYWdlU3RyaW5nKSB7CisgICAgaWYgKHR5cGVvZiBtZXNzYWdlU3RyaW5nICE9PSAnc3RyaW5nJykKKyAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhJyk7CisgICAgdmFyIHJlID0gLyJwYXJhbXMiOlxzKlx7XHMqInZhbHVlIjpccypcWyhbXl0rKVxdXHMqXH1ccypcfS87CisgICAgdmFyIG0gPSByZS5leGVjKG1lc3NhZ2VTdHJpbmcpOworICAgIGlmICghbSkKKyAgICAgIHRocm93IG5ldyBFcnJvcignTWFsZm9ybWVkIHJlc3BvbnNlJyk7CisKKyAgICBpZiAoY2h1bmtzLmxlbmd0aCA+IDEpCisgICAgICBjaHVua3MucHVzaCgnLCcpOworICAgIGNodW5rcy5wdXNoKG1bMV0pOworICB9CisKKyAgLyoqCisgICAqIENvbnRyb2xzIHRyYWNpbmcgdXNpbmcgdGhlIGluc3BlY3RvcidzIEZyb250ZW5kQWdlbnRIb3N0IEFQSXMuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gSW5zcGVjdG9yVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKSB7CisgICAgdGhpcy5yZWNvcmRpbmdfID0gZmFsc2U7CisgICAgdGhpcy5idWZmZXJVc2FnZV8gPSAwOworICAgIHRoaXMuY29ubl8gPSB0ci51aS5lLmFib3V0X3RyYWNpbmcuSW5zcGVjdG9yQ29ubmVjdGlvbi5pbnN0YW5jZTsKKyAgICB0aGlzLmN1cnJlbnRUcmFjZVRleHRDaHVua3NfID0gdW5kZWZpbmVkOworICB9CisKKyAgSW5zcGVjdG9yVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkuZS5hYm91dF90cmFjaW5nLlRyYWNpbmdDb250cm9sbGVyQ2xpZW50LnByb3RvdHlwZSwKKworICAgIGJlZ2luTW9uaXRvcmluZzogZnVuY3Rpb24obW9uaXRvcmluZ09wdGlvbnMpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIGVuZE1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgY2FwdHVyZU1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgZ2V0TW9uaXRvcmluZ1N0YXR1czogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gY3JlYXRlUmVzb2x2ZWRQcm9taXNlKHsKKyAgICAgICAgaXNNb25pdG9yaW5nOiBmYWxzZSwKKyAgICAgICAgY2F0ZWdvcnlGaWx0ZXI6ICcnLAorICAgICAgICB1c2VTeXN0ZW1UcmFjaW5nOiBmYWxzZSwKKyAgICAgICAgdXNlQ29udGludW91c1RyYWNpbmc6IGZhbHNlLAorICAgICAgICB1c2VTYW1wbGluZzogZmFsc2UKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXRDYXRlZ29yaWVzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciByZXMgPSB0aGlzLmNvbm5fLnJlcSgnVHJhY2luZy5nZXRDYXRlZ29yaWVzJywge30pOworICAgICAgcmV0dXJuIHJlcy50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICByZXR1cm4gcmVzdWx0LmNhdGVnb3JpZXM7CisgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgcmV0dXJuIFtdOworICAgICAgfSk7CisgICAgfSwKKworICAgIGJlZ2luUmVjb3JkaW5nOiBmdW5jdGlvbihyZWNvcmRpbmdPcHRpb25zKSB7CisgICAgICBpZiAodGhpcy5yZWNvcmRpbmdfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgcmVjb3JkaW5nJyk7CisgICAgICB0aGlzLnJlY29yZGluZ18gPSAnc3RhcnRpbmcnOworICAgICAgdmFyIHJlcyA9IHRoaXMuY29ubl8ucmVxKAorICAgICAgICAgICdUcmFjaW5nLnN0YXJ0JywKKyAgICAgICAgICB7CisgICAgICAgICAgICBjYXRlZ29yaWVzOiByZWNvcmRpbmdPcHRpb25zLmNhdGVnb3J5RmlsdGVyLAorICAgICAgICAgICAgb3B0aW9uczoKKyAgICAgICAgICAgICAgICBbcmVjb3JkaW5nT3B0aW9ucy50cmFjaW5nUmVjb3JkTW9kZSwKKyAgICAgICAgICAgICAgICAgIChyZWNvcmRpbmdPcHRpb25zLnVzZVNhbXBsaW5nID8gJ2VuYWJsZS1zYW1wbGluZycgOiAnJykKKyAgICAgICAgICAgICAgICBdLmpvaW4oJywnKSwKKyAgICAgICAgICAgIGJ1ZmZlclVzYWdlUmVwb3J0aW5nSW50ZXJ2YWw6IDEwMDAKKyAgICAgICAgICB9KTsKKyAgICAgIHJlcyA9IHJlcy50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uIG9rKCkgeworICAgICAgICAgICAgdGhpcy5jb25uXy5zZXROb3RpZmljYXRpb25MaXN0ZW5lcigKKyAgICAgICAgICAgICAgICAnVHJhY2luZy5idWZmZXJVc2FnZScsCisgICAgICAgICAgICAgICAgdGhpcy5vbkJ1ZmZlclVzYWdlVXBkYXRlRnJvbUluc3BlY3Rvcl8uYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLnJlY29yZGluZ18gPSB0cnVlOworICAgICAgICAgIH0uYmluZCh0aGlzKSwKKyAgICAgICAgICBmdW5jdGlvbiBlcnJvcigpIHsKKyAgICAgICAgICAgIHRoaXMucmVjb3JkaW5nXyA9IGZhbHNlOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICByZXR1cm4gcmVzOworICAgIH0sCisKKyAgICBvbkJ1ZmZlclVzYWdlVXBkYXRlRnJvbUluc3BlY3Rvcl86IGZ1bmN0aW9uKHBhcmFtcykgeworICAgICAgdGhpcy5idWZmZXJVc2FnZV8gPSBwYXJhbXMudmFsdWUgfHwgcGFyYW1zLnBlcmNlbnRGdWxsOworICAgIH0sCisKKyAgICBiZWdpbkdldEJ1ZmZlclBlcmNlbnRGdWxsOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciB0aGF0ID0gdGhpczsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXNvbHZlKHRoYXQuYnVmZmVyVXNhZ2VfKTsKKyAgICAgICAgfSwgMTAwKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBvbkRhdGFDb2xsZWN0ZWRfOiBmdW5jdGlvbihtZXNzYWdlU3RyaW5nKSB7CisgICAgICBhcHBlbmRUcmFjZUNodW5rc1RvKHRoaXMuY3VycmVudFRyYWNlVGV4dENodW5rc18sIG1lc3NhZ2VTdHJpbmcpOworICAgIH0sCisKKyAgICBlbmRSZWNvcmRpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMucmVjb3JkaW5nXyA9PT0gZmFsc2UpCisgICAgICAgIHJldHVybiBjcmVhdGVSZXNvbHZlZFByb21pc2UoKTsKKworICAgICAgaWYgKHRoaXMucmVjb3JkaW5nXyAhPT0gdHJ1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZW5kJyk7CisKKyAgICAgIHRoaXMuY3VycmVudFRyYWNlVGV4dENodW5rc18gPSBbJ1snXTsKKyAgICAgIHRoaXMuY29ubl8uc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXIoCisgICAgICAgICAgJ1RyYWNpbmcuZGF0YUNvbGxlY3RlZCcsIHRoaXMub25EYXRhQ29sbGVjdGVkXy5iaW5kKHRoaXMpKTsKKworICAgICAgdmFyIGNsZWFyTGlzdGVuZXJzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuY29ubl8uc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXIoCisgICAgICAgICAgICAnVHJhY2luZy5idWZmZXJVc2FnZScsIHVuZGVmaW5lZCk7CisgICAgICAgIHRoaXMuY29ubl8uc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXIoCisgICAgICAgICAgICAnVHJhY2luZy50cmFjaW5nQ29tcGxldGUnLCB1bmRlZmluZWQpOworICAgICAgICB0aGlzLmNvbm5fLnNldE5vdGlmaWNhdGlvbkxpc3RlbmVyKAorICAgICAgICAgICAgJ1RyYWNpbmcuZGF0YUNvbGxlY3RlZCcsIHVuZGVmaW5lZCk7CisgICAgICB9LmJpbmQodGhpcyk7CisKKyAgICAgIHRoaXMucmVjb3JkaW5nXyA9ICdzdG9wcGluZyc7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIGZ1bmN0aW9uIHRyYWNpbmdDb21wbGV0ZSgpIHsKKyAgICAgICAgICBjbGVhckxpc3RlbmVycygpOworICAgICAgICAgIHRoaXMucmVjb3JkaW5nXyA9IGZhbHNlOworICAgICAgICAgIHRoaXMuY3VycmVudFRyYWNlVGV4dENodW5rc18ucHVzaCgnXScpOworICAgICAgICAgIHZhciB0cmFjZVRleHQgPSB0aGlzLmN1cnJlbnRUcmFjZVRleHRDaHVua3NfLmpvaW4oJycpOworICAgICAgICAgIHRoaXMuY3VycmVudFRyYWNlVGV4dENodW5rc18gPSB1bmRlZmluZWQ7CisgICAgICAgICAgcmVzb2x2ZSh0cmFjZVRleHQpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdHJhY2luZ0ZhaWxlZChlcnIpIHsKKyAgICAgICAgICBjbGVhckxpc3RlbmVycygpOworICAgICAgICAgIHRoaXMucmVjb3JkaW5nXyA9IGZhbHNlOworICAgICAgICAgIHJlamVjdChlcnIpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5jb25uXy5zZXROb3RpZmljYXRpb25MaXN0ZW5lcigKKyAgICAgICAgICAgICdUcmFjaW5nLnRyYWNpbmdDb21wbGV0ZScsIHRyYWNpbmdDb21wbGV0ZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5jb25uXy5yZXEoJ1RyYWNpbmcuZW5kJywge30pLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiBlbmQoKSB7CisgICAgICAgICAgICAgIC8vIE5vdGhpbmcgaGFwcGVucyBoZXJlLiBXZSdyZSByZWFsbHkgd2FpdGluZyBmb3IKKyAgICAgICAgICAgICAgLy8gVHJhY2luZy50cmFjaW5nQ29tcGxldGUuCisgICAgICAgICAgICB9LmJpbmQodGhpcyksCisgICAgICAgICAgICB0cmFjaW5nRmFpbGVkLmJpbmQodGhpcykpOworICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgZGVmYXVsdFRyYWNlTmFtZTogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gJ3RyYWNlLmpzb24nOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50OiBJbnNwZWN0b3JUcmFjaW5nQ29udHJvbGxlckNsaWVudCwKKyAgICBhcHBlbmRUcmFjZUNodW5rc1RvOiBhcHBlbmRUcmFjZUNodW5rc1RvCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmYxNWNjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgaHJlZj0iL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL2luc3BlY3Rvcl90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgdGVzdCgnYmVnaW5SZWNvcmRpbmdfc2VuZENhdGVnb3JpZXNBbmRPcHRpb25zJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRyb2xsZXIgPQorICAgICAgICBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLkluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50KCk7CisgICAgY29udHJvbGxlci5jb25uXyA9IG5ldyAoZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnJlcSA9IGZ1bmN0aW9uKG1ldGhvZCwgcGFyYW1zKSB7CisgICAgICAgIHZhciBtc2cgPSBKU09OLnN0cmluZ2lmeSh7CisgICAgICAgICAgaWQ6IDEsCisgICAgICAgICAgbWV0aG9kOiBtZXRob2QsCisgICAgICAgICAgcGFyYW1zOiBwYXJhbXMKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBuZXcgKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRoaXMubXNnID0gbXNnOworICAgICAgICAgIHRoaXMudGhlbiA9IGZ1bmN0aW9uKG0xLCBtMikgeworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgfTsKKyAgICAgICAgfSkoKTsKKyAgICAgIH07CisgICAgICB0aGlzLnNldE5vdGlmaWNhdGlvbkxpc3RlbmVyID0gZnVuY3Rpb24obWV0aG9kLCBsaXN0ZW5lcikgeworICAgICAgfTsKKyAgICB9KSgpOworCisgICAgdmFyIHJlY29yZGluZ09wdGlvbnMgPSB7CisgICAgICBjYXRlZ29yeUZpbHRlcjogSlNPTi5zdHJpbmdpZnkoWydhJywgJ2InLCAnYyddKSwKKyAgICAgIHVzZVN5c3RlbVRyYWNpbmc6IGZhbHNlLAorICAgICAgdHJhY2luZ1JlY29yZE1vZGU6ICd0ZXN0LW1vZGUnLAorICAgICAgdXNlU2FtcGxpbmc6IHRydWUKKyAgICB9OworCisgICAgdmFyIHJlc3VsdCA9IEpTT04ucGFyc2UoY29udHJvbGxlci5iZWdpblJlY29yZGluZyhyZWNvcmRpbmdPcHRpb25zKS5tc2cpOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQucGFyYW1zLmNhdGVnb3JpZXMsIEpTT04uc3RyaW5naWZ5KFsnYScsICdiJywgJ2MnXSkpOworICAgIHZhciBvcHRpb25zID0gcmVzdWx0LnBhcmFtcy5vcHRpb25zLnNwbGl0KCcsJyk7CisgICAgdmFyIHRyYWNpbmdSZWNvcmRUZXN0TW9kZSA9IGZhbHNlOworICAgIHZhciBzYW1wbGVGbGFnID0gZmFsc2U7CisgICAgZm9yICh2YXIgcyBpbiBvcHRpb25zKSB7CisgICAgICBpZiAob3B0aW9uc1tzXSA9PT0gJ3Rlc3QtbW9kZScpIHRyYWNpbmdSZWNvcmRUZXN0TW9kZSA9IHRydWU7CisgICAgICBlbHNlIGlmIChvcHRpb25zW3NdID09PSAnZW5hYmxlLXNhbXBsaW5nJykgc2FtcGxlRmxhZyA9IHRydWU7CisgICAgICBlbHNlIGFzc2VydC5lcXVhbChvcHRpb25zW3NdLCAnJyk7CisgICAgfQorICAgIGFzc2VydC5pc1RydWUodHJhY2luZ1JlY29yZFRlc3RNb2RlKTsKKyAgICBhc3NlcnQuaXNUcnVlKHNhbXBsZUZsYWcpOworICB9KTsKKworICB0ZXN0KCdvbGRGb3JtYXQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2h1bmtzID0gW107CisgICAgdHIudWkuZS5hYm91dF90cmFjaW5nLmFwcGVuZFRyYWNlQ2h1bmtzVG8oY2h1bmtzLCAnInsgIm1ldGhvZCI6ICJUcmFjaW5nLmRhdGFDb2xsZWN0ZWQiLCAicGFyYW1zIjogeyAidmFsdWUiOiBbIHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6MCwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJudW1fY3B1cyIsImFyZ3MiOnsibnVtYmVyIjo0fX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJwcm9jZXNzX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi01fX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJwcm9jZXNzX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJSZW5kZXJlciJ9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InByb2Nlc3NfbGFiZWxzIiwiYXJncyI6eyJsYWJlbHMiOiJKUyBCaW4ifX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkwOCwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJ0aHJlYWRfc29ydF9pbmRleCIsImFyZ3MiOnsic29ydF9pbmRleCI6LTF9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTE3LCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ29tcG9zaXRvciJ9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ2hyb21lX0NoaWxkSU9UaHJlYWQifX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxOSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNvbXBvc2l0b3JSYXN0ZXJXb3JrZXIxLzI4OTE5In19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MDgsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDclJlbmRlcmVyTWFpbiJ9fSx7ImNhdCI6ImlwYyx0b3BsZXZlbCIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTEsInRzIjoyMjAwMDA4NDc0NiwicGgiOiJYIiwibmFtZSI6IkNoYW5uZWxSZWFkZXI6OkRpc3BhdGNoSW5wdXREYXRhIiwiYXJncyI6eyJjbGFzcyI6NjQsImxpbmUiOjI1fSwidGR1ciI6MCwidHRzIjoxODUzMDY0fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6Im92ZXJoZWFkIiwiYXJncyI6eyJhdmVyYWdlX292ZXJoZWFkIjowLjAxNX19IF0gfSB9IicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIGFzc2VydC5lcXVhbChjaHVua3MubGVuZ3RoLCAxKTsKKyAgICBKU09OLnBhcnNlKCdbJyArIGNodW5rcy5qb2luKCcnKSArICddJyk7CisgIH0pOworCisgIHRlc3QoJ25ld0Zvcm1hdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjaHVua3MgPSBbXTsKKyAgICB0ci51aS5lLmFib3V0X3RyYWNpbmcuYXBwZW5kVHJhY2VDaHVua3NUbyhjaHVua3MsICcieyAibWV0aG9kIjogIlRyYWNpbmcuZGF0YUNvbGxlY3RlZCIsICJwYXJhbXMiOiB7ICJ2YWx1ZSI6IFt7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjAsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoibnVtX2NwdXMiLCJhcmdzIjp7Im51bWJlciI6NH19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTEsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoicHJvY2Vzc19zb3J0X2luZGV4IiwiYXJncyI6eyJzb3J0X2luZGV4IjotNX19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTEsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoicHJvY2Vzc19uYW1lIiwiYXJncyI6eyJuYW1lIjoiUmVuZGVyZXIifX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJwcm9jZXNzX2xhYmVscyIsImFyZ3MiOnsibGFiZWxzIjoiSlMgQmluIn19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MDgsInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoidGhyZWFkX3NvcnRfaW5kZXgiLCJhcmdzIjp7InNvcnRfaW5kZXgiOi0xfX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxNywidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNvbXBvc2l0b3IifX0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJ0aHJlYWRfbmFtZSIsImFyZ3MiOnsibmFtZSI6IkNocm9tZV9DaGlsZElPVGhyZWFkIn19LHsiY2F0IjoiX19tZXRhZGF0YSIsInBpZCI6Mjg4NzEsInRpZCI6Mjg5MTksInRzIjowLCJwaCI6Ik0iLCJuYW1lIjoidGhyZWFkX25hbWUiLCJhcmdzIjp7Im5hbWUiOiJDb21wb3NpdG9yUmFzdGVyV29ya2VyMS8yODkxOSJ9fSx7ImNhdCI6Il9fbWV0YWRhdGEiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTA4LCJ0cyI6MCwicGgiOiJNIiwibmFtZSI6InRocmVhZF9uYW1lIiwiYXJncyI6eyJuYW1lIjoiQ3JSZW5kZXJlck1haW4ifX0seyJjYXQiOiJpcGMsdG9wbGV2ZWwiLCJwaWQiOjI4ODcxLCJ0aWQiOjI4OTExLCJ0cyI6MjIwMDAwODQ3NDYsInBoIjoiWCIsIm5hbWUiOiJDaGFubmVsUmVhZGVyOjpEaXNwYXRjaElucHV0RGF0YSIsImFyZ3MiOnsiY2xhc3MiOjY0LCJsaW5lIjoyNX0sInRkdXIiOjAsInR0cyI6MTg1MzA2NH0seyJjYXQiOiJfX21ldGFkYXRhIiwicGlkIjoyODg3MSwidGlkIjoyODkxMSwidHMiOjAsInBoIjoiTSIsIm5hbWUiOiJvdmVyaGVhZCIsImFyZ3MiOnsiYXZlcmFnZV9vdmVyaGVhZCI6MC4wMTV9fV0gfSB9IicpOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIGFzc2VydC5lcXVhbChjaHVua3MubGVuZ3RoLCAxKTsKKyAgICBKU09OLnBhcnNlKCdbJyArIGNodW5rcy5qb2luKCcnKSArICddJyk7CisgIH0pOworCisgIHRlc3QoJ3N0cmluZ0FuZE9iamVjdFBheWxvYWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29ubmVjdGlvbiA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuSW5zcGVjdG9yQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24uc2V0Tm90aWZpY2F0aW9uTGlzdGVuZXIoJ1RyYWNpbmcuZGF0YUNvbGxlY3RlZCcsCisgICAgICAgIGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAgICAgICBhc3NlcnQudHlwZU9mKG1lc3NhZ2UsICdzdHJpbmcnKTsKKyAgICAgICAgICBKU09OLnBhcnNlKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgKTsKKyAgICBjb25uZWN0aW9uLmRpc3BhdGNoTWVzc2FnZV8oJ3sgIm1ldGhvZCI6ICJUcmFjaW5nLmRhdGFDb2xsZWN0ZWQiLCAicGFyYW1zIjogeyAidmFsdWUiOiBbXSB9IH0nKTsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgICBjb25uZWN0aW9uLmRpc3BhdGNoTWVzc2FnZV8oeydtZXRob2QnOiAnVHJhY2luZy5kYXRhQ29sbGVjdGVkJywgJ3BhcmFtcyc6IHsndmFsdWUnOiBbXSB9IH0pOyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL21vY2tfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9tb2NrX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWVkMDYxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9tb2NrX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgaHJlZj0iL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmFib3V0X3RyYWNpbmcnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gTW9ja1RyYWNpbmdDb250cm9sbGVyQ2xpZW50KCkgeworICAgIHRoaXMucmVxdWVzdHMgPSBbXTsKKyAgICB0aGlzLm5leHRSZXF1ZXN0SW5kZXggPSAwOworICAgIHRoaXMuYWxsb3dMb29waW5nID0gZmFsc2U7CisgIH0KKworICBNb2NrVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkuZS5hYm91dF90cmFjaW5nLlRyYWNpbmdDb250cm9sbGVyQ2xpZW50LnByb3RvdHlwZSwKKworICAgIGV4cGVjdFJlcXVlc3Q6IGZ1bmN0aW9uKG1ldGhvZCwgZ2VuZXJhdGVSZXNwb25zZSkgeworICAgICAgdmFyIGdlbmVyYXRlUmVzcG9uc2VDYjsKKyAgICAgIGlmICh0eXBlb2YgZ2VuZXJhdGVSZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykgeworICAgICAgICBnZW5lcmF0ZVJlc3BvbnNlQ2IgPSBnZW5lcmF0ZVJlc3BvbnNlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgZ2VuZXJhdGVSZXNwb25zZUNiID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlUmVzcG9uc2U7CisgICAgICAgIH07CisgICAgICB9CisKKyAgICAgIHRoaXMucmVxdWVzdHMucHVzaCh7CisgICAgICAgIG1ldGhvZDogbWV0aG9kLAorICAgICAgICBnZW5lcmF0ZVJlc3BvbnNlQ2I6IGdlbmVyYXRlUmVzcG9uc2VDYn0pOworICAgIH0sCisKKyAgICBfcmVxdWVzdDogZnVuY3Rpb24obWV0aG9kLCBhcmdzKSB7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICB2YXIgcmVxdWVzdEluZGV4ID0gdGhpcy5uZXh0UmVxdWVzdEluZGV4OworICAgICAgICBpZiAocmVxdWVzdEluZGV4ID49IHRoaXMucmVxdWVzdHMubGVuZ3RoKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5oYW5kbGVkIHJlcXVlc3QnKTsKKyAgICAgICAgaWYgKCF0aGlzLmFsbG93TG9vcGluZykgeworICAgICAgICAgIHRoaXMubmV4dFJlcXVlc3RJbmRleCsrOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHRoaXMubmV4dFJlcXVlc3RJbmRleCA9ICh0aGlzLm5leHRSZXF1ZXN0SW5kZXggKyAxKSAlCisgICAgICAgICAgICAgIHRoaXMucmVxdWVzdHMubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHJlcSA9IHRoaXMucmVxdWVzdHNbcmVxdWVzdEluZGV4XTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKG1ldGhvZCwgcmVxLm1ldGhvZCk7CisgICAgICAgIHZhciByZXNwID0gcmVxLmdlbmVyYXRlUmVzcG9uc2VDYihhcmdzKTsKKyAgICAgICAgcmVzb2x2ZShyZXNwKTsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGFzc2VydEFsbFJlcXVlc3RzSGFuZGxlZDogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5hbGxvd0xvb3BpbmcpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb21wYXRpYmxlIHdpdGggYWxsb3dMb29waW5nJyk7CisgICAgICBhc3NlcnQuZXF1YWwodGhpcy5yZXF1ZXN0cy5sZW5ndGgsIHRoaXMubmV4dFJlcXVlc3RJbmRleCk7CisgICAgfSwKKworICAgIGJlZ2luTW9uaXRvcmluZzogZnVuY3Rpb24obW9uaXRvcmluZ09wdGlvbnMpIHsKKyAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdiZWdpbk1vbml0b3JpbmcnLCBtb25pdG9yaW5nT3B0aW9ucyk7CisgICAgfSwKKworICAgIGVuZE1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ2VuZE1vbml0b3JpbmcnKTsKKyAgICB9LAorCisgICAgY2FwdHVyZU1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ2NhcHR1cmVNb25pdG9yaW5nJyk7CisgICAgfSwKKworICAgIGdldE1vbml0b3JpbmdTdGF0dXM6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ2dldE1vbml0b3JpbmdTdGF0dXMnKTsKKyAgICB9LAorCisgICAgZ2V0Q2F0ZWdvcmllczogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnZ2V0Q2F0ZWdvcmllcycpOworICAgIH0sCisKKyAgICBiZWdpblJlY29yZGluZzogZnVuY3Rpb24ocmVjb3JkaW5nT3B0aW9ucykgeworICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ2JlZ2luUmVjb3JkaW5nJywgcmVjb3JkaW5nT3B0aW9ucyk7CisgICAgfSwKKworICAgIGJlZ2luR2V0QnVmZmVyUGVyY2VudEZ1bGw6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ2JlZ2luR2V0QnVmZmVyUGVyY2VudEZ1bGwnKTsKKyAgICB9LAorCisgICAgZW5kUmVjb3JkaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdlbmRSZWNvcmRpbmcnKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBNb2NrVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQ6IE1vY2tUcmFjaW5nQ29udHJvbGxlckNsaWVudAorICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9wcm9maWxpbmdfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9wcm9maWxpbmdfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNGU1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3Lmh0bWwKQEAgLTAsMCArMSw2MjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZTY0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiCisgICAgICBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIKKyAgICAgIGhyZWY9Ii91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9pbnNwZWN0b3JfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgaHJlZj0iL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3hocl9iYXNlZF90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2luZm9fYmFyX2dyb3VwLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hvdGtleV9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL292ZXJsYXkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXcuaHRtbCI+CisKKzxzdHlsZT4KK3gtcHJvZmlsaW5nLXZpZXcgeworICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgcGFkZGluZzogMDsKK30KKworeC1wcm9maWxpbmctdmlldyAuY29udHJvbHMgI3NhdmUtYnV0dG9uIHsKKyAgbWFyZ2luLWxlZnQ6IDY0cHggIWltcG9ydGFudDsKK30KKworeC1wcm9maWxpbmctdmlldyAuY29udHJvbHMgI3VwbG9hZC1idXR0b24geworICBkaXNwbGF5OiBub25lOworfQorCit4LXByb2ZpbGluZy12aWV3ID4gdHItdWktdGltZWxpbmUtdmlldyB7CisgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgIG1pbi1oZWlnaHQ6IDA7Cit9CisKKy5yZXBvcnQtaWQtbWVzc2FnZSB7CisgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Cit9CisKK3gtdGltZWxpbmUtdmlldy1idXR0b25zLAoreC10aW1lbGluZS12aWV3LWJ1dHRvbnMgPiAjbW9uaXRvcmluZy1lbGVtZW50cyB7CisgIGRpc3BsYXk6IGZsZXg7CisgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cit9Cis8L3N0eWxlPgorCis8dGVtcGxhdGUgaWQ9InByb2ZpbGluZy12aWV3LXRlbXBsYXRlIj4KKyAgPHRyLXVpLWItaW5mby1iYXItZ3JvdXA+PC90ci11aS1iLWluZm8tYmFyLWdyb3VwPgorICA8eC10aW1lbGluZS12aWV3LWJ1dHRvbnM+CisgICAgPGJ1dHRvbiBpZD0icmVjb3JkLWJ1dHRvbiI+UmVjb3JkPC9idXR0b24+CisgICAgPHNwYW4gaWQ9Im1vbml0b3JpbmctZWxlbWVudHMiPgorICAgICAgPGlucHV0IGlkPSJtb25pdG9yLWNoZWNrYm94IiB0eXBlPSJjaGVja2JveCI+CisgICAgICA8bGFiZWwgZm9yPSJtb25pdG9yLWNoZWNrYm94Ij5Nb25pdG9yaW5nPC9sYWJlbD48L2lucHV0PgorICAgICAgPGJ1dHRvbiBpZD0iY2FwdHVyZS1idXR0b24iPkNhcHR1cmUgTW9uaXRvcmluZyBTbmFwc2hvdDwvYnV0dG9uPgorICAgIDwvc3Bhbj4KKyAgICA8YnV0dG9uIGlkPSJzYXZlLWJ1dHRvbiI+U2F2ZTwvYnV0dG9uPgorICAgIDxidXR0b24gaWQ9InVwbG9hZC1idXR0b24iPlVwbG9hZDwvYnV0dG9uPgorICAgIDxidXR0b24gaWQ9ImxvYWQtYnV0dG9uIj5Mb2FkPC9idXR0b24+CisgIDwveC10aW1lbGluZS12aWV3LWJ1dHRvbnM+CisgIDx0ci11aS10aW1lbGluZS12aWV3PgorICAgIDx0cmFjay12aWV3LWNvbnRhaW5lciBpZD0ndHJhY2tfdmlld19jb250YWluZXInPjwvdHJhY2stdmlldy1jb250YWluZXI+CisgIDwvdHItdWktdGltZWxpbmUtdmlldz4KKzwvdGVtcGxhdGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBQcm9maWxpbmdWaWV3IGdsdWVzIHRoZSBWaWV3IGNvbnRyb2wgdG8KKyAqIFRyYWNpbmdDb250cm9sbGVyLgorICovCit0ci5leHBvcnRUbygndHIudWkuZS5hYm91dF90cmFjaW5nJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIHJlYWRGaWxlKGZpbGUpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgIHZhciBmaWxlbmFtZSA9IGZpbGUubmFtZTsKKyAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgIHJlc29sdmUoZGF0YS50YXJnZXQucmVzdWx0KTsKKyAgICAgIH07CisgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycikgeworICAgICAgICByZWplY3QoZXJyKTsKKyAgICAgIH0KKworICAgICAgdmFyIGlzX2JpbmFyeSA9IC9bLl1neiQvLnRlc3QoZmlsZW5hbWUpIHx8IC9bLl16aXAkLy50ZXN0KGZpbGVuYW1lKTsKKyAgICAgIGlmIChpc19iaW5hcnkpCisgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7CisgICAgfSk7CisgIH0KKworICAvKioKKyAgICogUHJvZmlsaW5nVmlldworICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0hUTUxVbmtub3duRWxlbWVudH0KKyAgICovCisgIHZhciBQcm9maWxpbmdWaWV3ID0gdHIudWkuYi5kZWZpbmUoJ3gtcHJvZmlsaW5nLXZpZXcnKTsKKyAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OworICB2YXIgUkVQT1JUX1VQTE9BRF9VUkwgPSAnaHR0cDovL2NyYXNoLXN0YWdpbmcvJzsKKworICBQcm9maWxpbmdWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKCcjcHJvZmlsaW5nLXZpZXctdGVtcGxhdGUnLAorICAgICAgICAgIFRISVNfRE9DKSk7CisKKyAgICAgIHRoaXMudGltZWxpbmVWaWV3XyA9IHRoaXMucXVlcnlTZWxlY3RvcigndHItdWktdGltZWxpbmUtdmlldycpOworICAgICAgdGhpcy5pbmZvQmFyR3JvdXBfID0gdGhpcy5xdWVyeVNlbGVjdG9yKCd0ci11aS1iLWluZm8tYmFyLWdyb3VwJyk7CisKKyAgICAgIC8vIERldGFjaCB0aGUgYnV0dG9ucy4gV2Ugd2lsbCByZWF0dGFjaCB0aGVtIHRvIHRoZSB0aW1lbGluZSB2aWV3LgorICAgICAgLy8gVE9ETyhuZHVjYSk6IE1ha2UgdGltZWxpbmUtdmlldyBoYXZlIGEgY29udGVudCBzZWxlY3Q9IngtYnV0dG9ucyIKKyAgICAgIC8vIHRoYXQgcHVsbHMgaW4gYW55IGJ1dHRvbnMuCisgICAgICB0aGlzLm1vbml0b3JpbmdFbGVtZW50c18gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yaW5nLWVsZW1lbnRzJyk7CisgICAgICB0aGlzLm1vbml0b3JDaGVja2JveF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yLWNoZWNrYm94Jyk7CisgICAgICB0aGlzLmNhcHR1cmVCdXR0b25fID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcjY2FwdHVyZS1idXR0b24nKTsKKyAgICAgIHRoaXMucmVjb3JkQnV0dG9uXyA9IHRoaXMucXVlcnlTZWxlY3RvcignI3JlY29yZC1idXR0b24nKTsKKyAgICAgIHRoaXMubG9hZEJ1dHRvbl8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyNsb2FkLWJ1dHRvbicpOworICAgICAgdGhpcy5zYXZlQnV0dG9uXyA9IHRoaXMucXVlcnlTZWxlY3RvcignI3NhdmUtYnV0dG9uJyk7CisgICAgICB0aGlzLnVwbG9hZEJ1dHRvbl8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJyN1cGxvYWQtYnV0dG9uJyk7CisKKyAgICAgIHZhciBidXR0b25zID0gdGhpcy5xdWVyeVNlbGVjdG9yKCd4LXRpbWVsaW5lLXZpZXctYnV0dG9ucycpOworICAgICAgYnV0dG9ucy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGJ1dHRvbnMpOworICAgICAgdGhpcy50aW1lbGluZVZpZXdfLmxlZnRDb250cm9scy5hcHBlbmRDaGlsZChidXR0b25zKTsKKyAgICAgIHRoaXMuaW5pdEJ1dHRvbnNfKCk7CisKKyAgICAgIHRoaXMudGltZWxpbmVWaWV3Xy5ob3RrZXlDb250cm9sbGVyLmFkZEhvdEtleShuZXcgdHIudWkuYi5Ib3RLZXkoeworICAgICAgICBldmVudFR5cGU6ICdrZXlwcmVzcycsCisgICAgICAgIGtleUNvZGU6ICdyJy5jaGFyQ29kZUF0KDApLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMuYmVnaW5SZWNvcmRpbmcoKTsKKyAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfSwKKyAgICAgICAgdGhpc0FyZzogdGhpcworICAgICAgfSkpOworCisgICAgICB0aGlzLmluaXREcmFnQW5kRHJvcF8oKTsKKworICAgICAgaWYgKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KSB7CisgICAgICAgIHRoaXMudHJhY2luZ0NvbnRyb2xsZXJDbGllbnRfID0gdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQ7CisgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5EZXZUb29sc0hvc3QgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50XyA9CisgICAgICAgICAgICBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLkluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50KCk7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50XyA9CisgICAgICAgICAgICBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLlhockJhc2VkVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5pc1JlY29yZGluZ18gPSBmYWxzZTsKKyAgICAgIHRoaXMuaXNNb25pdG9yaW5nXyA9IGZhbHNlOworICAgICAgdGhpcy5hY3RpdmVUcmFjZV8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHdpbmRvdy5vbk1vbml0b3JpbmdTdGF0ZUNoYW5nZWQgPSBmdW5jdGlvbihpc19tb25pdG9yaW5nKSB7CisgICAgICAgIHRoaXMub25Nb25pdG9yaW5nU3RhdGVDaGFuZ2VkXyhpc19tb25pdG9yaW5nKTsKKyAgICAgIH0uYmluZCh0aGlzKTsKKworICAgICAgd2luZG93Lm9uVXBsb2FkRXJyb3IgPSBmdW5jdGlvbihlcnJvcl9tZXNzYWdlKSB7CisgICAgICAgIHRoaXMuc2V0VXBsb2FkT3ZlcmxheVRleHRfKFsnVHJhY2UgdXBsb2FkIGZhaWxlZDogJyArIGVycm9yX21lc3NhZ2VdKTsKKyAgICAgIH0uYmluZCh0aGlzKTsKKyAgICAgIHdpbmRvdy5vblVwbG9hZFByb2dyZXNzID0gZnVuY3Rpb24ocGVyY2VudCwgY3VycmVudEFzU3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEFzU3RyaW5nKSB7CisgICAgICAgIHRoaXMuc2V0VXBsb2FkT3ZlcmxheVRleHRfKAorICAgICAgICAgICAgWydVcGxvYWQgcHJvZ3Jlc3M6ICcgKyBwZXJjZW50ICsgJyUgKCcgKyBjdXJyZW50QXNTdHJpbmcgKyAnIG9mICcgKworICAgICAgICAgICAgY3VycmVudEFzU3RyaW5nICsgJyBieXRlcyknXSk7CisgICAgICB9LmJpbmQodGhpcyk7CisgICAgICB3aW5kb3cub25VcGxvYWRDb21wbGV0ZSA9IGZ1bmN0aW9uKHJlcG9ydElkKSB7CisgICAgICAgIHZhciBtZXNzYWdlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKAorICAgICAgICAgICAgJ1RyYWNlIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseS4gUmVwb3J0IGlkOiAnKTsKKyAgICAgICAgbWVzc2FnZURpdi5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CisgICAgICAgIHZhciByZXBvcnRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOworICAgICAgICBtZXNzYWdlRGl2LmFwcGVuZENoaWxkKHJlcG9ydExpbmspOworICAgICAgICByZXBvcnRMaW5rLmhyZWYgPSBSRVBPUlRfVVBMT0FEX1VSTCArIHJlcG9ydElkOworICAgICAgICByZXBvcnRMaW5rLnRleHQgPSByZXBvcnRJZDsKKyAgICAgICAgcmVwb3J0TGluay5jbGFzc05hbWUgPSAncmVwb3J0LWlkLW1lc3NhZ2UnOworICAgICAgICByZXBvcnRMaW5rLnRhcmdldCA9ICdfYmxhbmsnOworICAgICAgICB0aGlzLnNldFVwbG9hZE92ZXJsYXlDb250ZW50XyhtZXNzYWdlRGl2KTsKKyAgICAgIH0uYmluZCh0aGlzKTsKKworICAgICAgdGhpcy5nZXRNb25pdG9yaW5nU3RhdHVzKCk7CisgICAgICB0aGlzLnVwZGF0ZVRyYWNpbmdDb250cm9sbGVyU3BlY2lmaWNTdGF0ZV8oKTsKKyAgICB9LAorCisgICAgLy8gRGV0YWNoIGFsbCBkb2N1bWVudCBldmVudCBsaXN0ZW5lcnMuIFdpdGhvdXQgdGhpcyB0aGUgdGVzdHMgY2FuIGdldAorICAgIC8vIGNvbmZ1c2VkIGFzIHRoZSBlbGVtZW50IG1heSBzdGlsbCBiZSBsaXN0ZW5pbmcgd2hlbiB0aGUgbmV4dCB0ZXN0IHJ1bnMuCisgICAgZGV0YWNoXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmRldGFjaERyYWdBbmREcm9wXygpOworICAgIH0sCisKKyAgICBnZXQgaXNSZWNvcmRpbmcoKSB7CisgICAgICByZXR1cm4gdGhpcy5pc1JlY29yZGluZ187CisgICAgfSwKKworICAgIGdldCBpc01vbml0b3JpbmcoKSB7CisgICAgICByZXR1cm4gdGhpcy5pc01vbml0b3JpbmdfOworICAgIH0sCisKKyAgICBzZXQgdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKKyAgICAgIHRoaXMudHJhY2luZ0NvbnRyb2xsZXJDbGllbnRfID0gdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQ7CisgICAgICB0aGlzLnVwZGF0ZVRyYWNpbmdDb250cm9sbGVyU3BlY2lmaWNTdGF0ZV8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlVHJhY2luZ0NvbnRyb2xsZXJTcGVjaWZpY1N0YXRlXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgaXNJbnNwZWN0b3IgPSB0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50XyBpbnN0YW5jZW9mCisgICAgICAgICAgdHIudWkuZS5hYm91dF90cmFjaW5nLkluc3BlY3RvclRyYWNpbmdDb250cm9sbGVyQ2xpZW50OworCisgICAgICBpZiAoaXNJbnNwZWN0b3IpIHsKKyAgICAgICAgdGhpcy5pbmZvQmFyR3JvdXBfLmFkZE1lc3NhZ2UoCisgICAgICAgICAgICAnVGhpcyBhYm91dDp0cmFjaW5nIGlzIGNvbm5lY3RlZCB0byBhIHJlbW90ZSBkZXZpY2UuLi4nLAorICAgICAgICAgICAgW3tidXR0b25UZXh0OiAnV293IScsIG9uQ2xpY2s6IGZ1bmN0aW9uKCkge319XSk7CisgICAgICB9CisKKyAgICAgIHRoaXMubW9uaXRvcmluZ0VsZW1lbnRzXy5zdHlsZS5kaXNwbGF5ID0gaXNJbnNwZWN0b3IgPyAnbm9uZScgOiAnJzsKKyAgICB9LAorCisgICAgYmVnaW5SZWNvcmRpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmdfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgcmVjb3JkaW5nJyk7CisgICAgICBpZiAodGhpcy5pc01vbml0b3JpbmdfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgbW9uaXRvcmluZycpOworICAgICAgdGhpcy5pc1JlY29yZGluZ18gPSB0cnVlOworICAgICAgdGhpcy5tb25pdG9yQ2hlY2tib3hfLmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgIHRoaXMubW9uaXRvckNoZWNrYm94Xy5jaGVja2VkID0gZmFsc2U7CisgICAgICB2YXIgcmVzdWx0UHJvbWlzZSA9IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5iZWdpblJlY29yZGluZygKKyAgICAgICAgICB0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50Xyk7CisgICAgICByZXN1bHRQcm9taXNlLnRoZW4oCisgICAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgdGhpcy5pc1JlY29yZGluZ18gPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMubW9uaXRvckNoZWNrYm94Xy5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgICAgICAgdmFyIHRyYWNlTmFtZSA9IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5kZWZhdWx0VHJhY2VOYW1lKAorICAgICAgICAgICAgICAgIHRoaXMudHJhY2luZ0NvbnRyb2xsZXJDbGllbnRfKTsKKyAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlVHJhY2UodHJhY2VOYW1lLCBkYXRhLCBmYWxzZSk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpLAorICAgICAgICAgIGZ1bmN0aW9uKGVycikgeworICAgICAgICAgICAgdGhpcy5pc1JlY29yZGluZ18gPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMubW9uaXRvckNoZWNrYm94Xy5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIHRyLnVpLmUuYWJvdXRfdHJhY2luZy5Vc2VyQ2FuY2VsbGVkRXJyb3IpCisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHRyLnVpLmIuT3ZlcmxheS5zaG93RXJyb3IoJ0Vycm9yIHdoaWxlIHJlY29yZGluZycsIGVycik7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgIHJldHVybiByZXN1bHRQcm9taXNlOworICAgIH0sCisKKyAgICBiZWdpbk1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmdfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgcmVjb3JkaW5nJyk7CisgICAgICBpZiAodGhpcy5pc01vbml0b3JpbmdfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgbW9uaXRvcmluZycpOworICAgICAgdmFyIHJlc3VsdFByb21pc2UgPQorICAgICAgICAgIHRyLnVpLmUuYWJvdXRfdHJhY2luZy5iZWdpbk1vbml0b3JpbmcodGhpcy50cmFjaW5nQ29udHJvbGxlckNsaWVudF8pOworICAgICAgcmVzdWx0UHJvbWlzZS50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgIH0uYmluZCh0aGlzKSwKKyAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiB0ci51aS5lLmFib3V0X3RyYWNpbmcuVXNlckNhbmNlbGxlZEVycm9yKQorICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0ci51aS5iLk92ZXJsYXkuc2hvd0Vycm9yKCdFcnJvciB3aGlsZSBtb25pdG9yaW5nJywgZXJyKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgcmV0dXJuIHJlc3VsdFByb21pc2U7CisgICAgfSwKKworICAgIGVuZE1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuaXNSZWNvcmRpbmdfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgcmVjb3JkaW5nJyk7CisgICAgICBpZiAoIXRoaXMuaXNNb25pdG9yaW5nXykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb25pdG9yaW5nIGlzIGRpc2FibGVkJyk7CisgICAgICB2YXIgcmVzdWx0UHJvbWlzZSA9CisgICAgICAgICAgdHIudWkuZS5hYm91dF90cmFjaW5nLmVuZE1vbml0b3JpbmcodGhpcy50cmFjaW5nQ29udHJvbGxlckNsaWVudF8pOworICAgICAgcmVzdWx0UHJvbWlzZS50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgIH0uYmluZCh0aGlzKSwKKyAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiB0ci51aS5lLmFib3V0X3RyYWNpbmcuVXNlckNhbmNlbGxlZEVycm9yKQorICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0ci51aS5iLk92ZXJsYXkuc2hvd0Vycm9yKCdFcnJvciB3aGlsZSBtb25pdG9yaW5nJywgZXJyKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgcmV0dXJuIHJlc3VsdFByb21pc2U7CisgICAgfSwKKworICAgIGNhcHR1cmVNb25pdG9yaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5pc01vbml0b3JpbmdfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vbml0b3JpbmcgaXMgZGlzYWJsZWQnKTsKKyAgICAgIHZhciByZXN1bHRQcm9taXNlID0KKyAgICAgICAgICB0ci51aS5lLmFib3V0X3RyYWNpbmcuY2FwdHVyZU1vbml0b3JpbmcoCisgICAgICAgICAgICAgIHRoaXMudHJhY2luZ0NvbnRyb2xsZXJDbGllbnRfKTsKKyAgICAgIHJlc3VsdFByb21pc2UudGhlbigKKyAgICAgICAgICBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICB2YXIgdHJhY2VOYW1lID0gdHIudWkuZS5hYm91dF90cmFjaW5nLmRlZmF1bHRUcmFjZU5hbWUoCisgICAgICAgICAgICAgICAgdGhpcy50cmFjaW5nQ29udHJvbGxlckNsaWVudF8pOworICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVUcmFjZSh0cmFjZU5hbWUsIGRhdGEsIHRydWUpOworICAgICAgICAgIH0uYmluZCh0aGlzKSwKKyAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiB0ci51aS5lLmFib3V0X3RyYWNpbmcuVXNlckNhbmNlbGxlZEVycm9yKQorICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0ci51aS5iLk92ZXJsYXkuc2hvd0Vycm9yKCdFcnJvciB3aGlsZSBtb25pdG9yaW5nJywgZXJyKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgcmV0dXJuIHJlc3VsdFByb21pc2U7CisgICAgfSwKKworICAgIGdldE1vbml0b3JpbmdTdGF0dXM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHJlc3VsdFByb21pc2UgPQorICAgICAgICAgIHRyLnVpLmUuYWJvdXRfdHJhY2luZy5nZXRNb25pdG9yaW5nU3RhdHVzKAorICAgICAgICAgICAgICB0aGlzLnRyYWNpbmdDb250cm9sbGVyQ2xpZW50Xyk7CisgICAgICByZXN1bHRQcm9taXNlLnRoZW4oCisgICAgICAgICAgZnVuY3Rpb24oc3RhdHVzKSB7CisgICAgICAgICAgICB0aGlzLm9uTW9uaXRvcmluZ1N0YXRlQ2hhbmdlZF8oc3RhdHVzLmlzTW9uaXRvcmluZyk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpLAorICAgICAgICAgIGZ1bmN0aW9uKGVycikgeworICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIHRyLnVpLmUuYWJvdXRfdHJhY2luZy5Vc2VyQ2FuY2VsbGVkRXJyb3IpCisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHRyLnVpLmIuT3ZlcmxheS5zaG93RXJyb3IoJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHRyYWNpbmcgc3RhdGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgcmV0dXJuIHJlc3VsdFByb21pc2U7CisgICAgfSwKKworICAgIG9uTW9uaXRvcmluZ1N0YXRlQ2hhbmdlZF86IGZ1bmN0aW9uKGlzX21vbml0b3JpbmcpIHsKKyAgICAgIHRoaXMuaXNNb25pdG9yaW5nXyA9IGlzX21vbml0b3Jpbmc7CisgICAgICB0aGlzLnJlY29yZEJ1dHRvbl8uZGlzYWJsZWQgPSBpc19tb25pdG9yaW5nOworICAgICAgdGhpcy5jYXB0dXJlQnV0dG9uXy5kaXNhYmxlZCA9ICFpc19tb25pdG9yaW5nOworICAgICAgdGhpcy5tb25pdG9yQ2hlY2tib3hfLmNoZWNrZWQgPSBpc19tb25pdG9yaW5nOworICAgIH0sCisKKyAgICBnZXQgdGltZWxpbmVWaWV3KCkgeworICAgICAgcmV0dXJuIHRoaXMudGltZWxpbmVWaWV3XzsKKyAgICB9LAorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICBjbGVhckFjdGl2ZVRyYWNlOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2F2ZUJ1dHRvbl8uZGlzYWJsZWQgPSB0cnVlOworICAgICAgdGhpcy51cGxvYWRCdXR0b25fLmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgIHRoaXMuYWN0aXZlVHJhY2VfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBzZXRBY3RpdmVUcmFjZTogZnVuY3Rpb24oZmlsZW5hbWUsIGRhdGEpIHsKKyAgICAgIHRoaXMuYWN0aXZlVHJhY2VfID0geworICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsCisgICAgICAgIGRhdGE6IGRhdGEKKyAgICAgIH07CisKKyAgICAgIHRoaXMuaW5mb0Jhckdyb3VwXy5jbGVhck1lc3NhZ2VzKCk7CisgICAgICB0aGlzLnVwZGF0ZVRyYWNpbmdDb250cm9sbGVyU3BlY2lmaWNTdGF0ZV8oKTsKKyAgICAgIHRoaXMuc2F2ZUJ1dHRvbl8uZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgIHRoaXMudXBsb2FkQnV0dG9uXy5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgdGhpcy50aW1lbGluZVZpZXdfLnZpZXdUaXRsZSA9IGZpbGVuYW1lOworCisgICAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgICAgdmFyIHAgPSBtLmltcG9ydFRyYWNlc1dpdGhQcm9ncmVzc0RpYWxvZyhbZGF0YV0sIHRydWUpOworICAgICAgcC50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy50aW1lbGluZVZpZXdfLm1vZGVsID0gbTsKKyAgICAgICAgICAgIHRoaXMudGltZWxpbmVWaWV3Xy51cGRhdGVEb2N1bWVudEZhdmljb24oKTsKKyAgICAgICAgICB9LmJpbmQodGhpcyksCisgICAgICAgICAgZnVuY3Rpb24oZXJyKSB7CisgICAgICAgICAgICB0ci51aS5iLk92ZXJsYXkuc2hvd0Vycm9yKCdXaGlsZSBpbXBvcnRpbmc6ICcsIGVycik7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICBpbml0QnV0dG9uc186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5yZWNvcmRCdXR0b25fLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgdGhpcy5iZWdpblJlY29yZGluZygpOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisKKyAgICAgIHRoaXMubW9uaXRvckNoZWNrYm94Xy5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgIGlmICh0aGlzLmlzTW9uaXRvcmluZ18pCisgICAgICAgICAgICAgIHRoaXMuZW5kTW9uaXRvcmluZygpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICB0aGlzLmJlZ2luTW9uaXRvcmluZygpOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisKKyAgICAgIHRoaXMuY2FwdHVyZUJ1dHRvbl8uYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAnY2xpY2snLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICB0aGlzLmNhcHR1cmVNb25pdG9yaW5nKCk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMuY2FwdHVyZUJ1dHRvbl8uZGlzYWJsZWQgPSB0cnVlOworCisgICAgICB0aGlzLmxvYWRCdXR0b25fLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgdGhpcy5vbkxvYWRDbGlja2VkXygpOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisKKyAgICAgIHRoaXMuc2F2ZUJ1dHRvbl8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TYXZlQ2xpY2tlZF8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLnNhdmVCdXR0b25fLmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgdGhpcy51cGxvYWRCdXR0b25fLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25VcGxvYWRDbGlja2VkXy5iaW5kKHRoaXMpKTsKKyAgICAgIGlmICh0eXBlb2YoY2hyb21lLnNlbmQpID09PSAnZnVuY3Rpb24nKSB7CisgICAgICAgIHRoaXMudXBsb2FkQnV0dG9uXy5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7CisgICAgICB9CisgICAgICB0aGlzLnVwbG9hZEJ1dHRvbl8uZGlzYWJsZWQgPSB0cnVlOworICAgICAgdGhpcy51cGxvYWRPdmVybGF5XyA9IG51bGw7CisgICAgfSwKKworICAgIHJlcXVlc3RGaWxlbmFtZV86IGZ1bmN0aW9uKCkgeworCisgICAgICAvLyB1bnNhZmUgZmlsZW5hbWUgcGF0dGVybnM6CisgICAgICB2YXIgaWxsZWdhbFJlID0gL1tcL1w/PD5cXDpcKlx8IjpdL2c7CisgICAgICB2YXIgY29udHJvbFJlID0gL1tceDAwLVx4MWZceDgwLVx4OWZdL2c7CisgICAgICB2YXIgcmVzZXJ2ZWRSZSA9IC9eXC4rJC87CisKKyAgICAgIHZhciBmaWxlbmFtZTsKKyAgICAgIHZhciBkZWZhdWx0TmFtZSA9IHRoaXMuYWN0aXZlVHJhY2VfLmZpbGVuYW1lOworICAgICAgdmFyIGZpbGVFeHRlbnNpb24gPSAnLmpzb24nOworICAgICAgdmFyIGZpbGVSZWdleCA9IC9cLmpzb24kLzsKKyAgICAgIGlmICgvWy5dZ3okLy50ZXN0KGRlZmF1bHROYW1lKSkgeworICAgICAgICBmaWxlRXh0ZW5zaW9uICs9ICcuZ3onOworICAgICAgICBmaWxlUmVnZXggPSAvXC5qc29uXC5neiQvOworICAgICAgfSBlbHNlIGlmICgvWy5demlwJC8udGVzdChkZWZhdWx0TmFtZSkpIHsKKyAgICAgICAgZmlsZUV4dGVuc2lvbiA9ICcuemlwJzsKKyAgICAgICAgZmlsZVJlZ2V4ID0gL1wuemlwJC87CisgICAgICB9CisKKyAgICAgIHZhciBjdXN0b20gPSBwcm9tcHQoJ0ZpbGVuYW1lPyAoJyArIGZpbGVFeHRlbnNpb24gKworICAgICAgICAgICAgICAgICAgICAgICAgICAnIGFwcGVuZGVkKSBPciBsZWF2ZSBibGFuazonKTsKKyAgICAgIGlmIChjdXN0b20gPT09IG51bGwpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBuYW1lOworICAgICAgaWYgKGN1c3RvbSkgeworICAgICAgICBuYW1lID0gJyAnICsgY3VzdG9tOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOworICAgICAgICB2YXIgZGF0ZVRleHQgPSAnICcgKyBkYXRlLnRvRGF0ZVN0cmluZygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgJyAnICsgZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKTsKKyAgICAgICAgbmFtZSA9IGRhdGVUZXh0OworICAgICAgfQorCisgICAgICBmaWxlbmFtZSA9IGRlZmF1bHROYW1lLnJlcGxhY2UoZmlsZVJlZ2V4LCBuYW1lKSArIGZpbGVFeHRlbnNpb247CisKKyAgICAgIHJldHVybiBmaWxlbmFtZQorICAgICAgICAgICAgICAucmVwbGFjZShpbGxlZ2FsUmUsICcuJykKKyAgICAgICAgICAgICAgLnJlcGxhY2UoY29udHJvbFJlLCAnXHUyMDIyJykKKyAgICAgICAgICAgICAgLnJlcGxhY2UocmVzZXJ2ZWRSZSwgJycpCisgICAgICAgICAgICAgIC5yZXBsYWNlKC9ccysvZywgJ18nKTsKKyAgICB9LAorCisgICAgb25TYXZlQ2xpY2tlZF86IGZ1bmN0aW9uKCkgeworICAgICAgLy8gQ3JlYXRlIGEgYmxvYiBVUkwgZnJvbSB0aGUgYmluYXJ5IGFycmF5LgorICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbdGhpcy5hY3RpdmVUcmFjZV8uZGF0YV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAnYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5J30pOworICAgICAgdmFyIGJsb2JVcmwgPSB3aW5kb3cud2Via2l0VVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKKworICAgICAgLy8gQ3JlYXRlIGEgbGluayBhbmQgY2xpY2sgb24gaXQuIEJFU1QgQVBJIEVWQVIhCisgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdhJyk7CisgICAgICBsaW5rLmhyZWYgPSBibG9iVXJsOworICAgICAgdmFyIGZpbGVuYW1lID0gdGhpcy5yZXF1ZXN0RmlsZW5hbWVfKCk7CisgICAgICBpZiAoZmlsZW5hbWUpIHsKKyAgICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVuYW1lOworICAgICAgICBsaW5rLmNsaWNrKCk7CisgICAgICB9CisgICAgfSwKKworICAgIG9uVXBsb2FkQ2xpY2tlZF86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMudXBsb2FkT3ZlcmxheV8pIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVwbG9hZGluZycpOworICAgICAgfQorICAgICAgdGhpcy5pbml0VXBsb2FkU3RhdHVzT3ZlcmxheV8oKTsKKyAgICB9LAorCisgICAgaW5pdFVwbG9hZFN0YXR1c092ZXJsYXlfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8gPSB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8udGl0bGUgPSAnVXBsb2FkaW5nIHRyYWNlLi4uJzsKKyAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8udXNlckNhbkNsb3NlID0gZmFsc2U7CisgICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfLnZpc2libGUgPSB0cnVlOworCisgICAgICB0aGlzLnNldFVwbG9hZE92ZXJsYXlUZXh0XyhbCisgICAgICAgICdZb3UgYXJlIGFib3V0IHRvIHVwbG9hZCB0cmFjZSBkYXRhIHRvIEdvb2dsZSBzZXJ2ZXIuJywKKyAgICAgICAgJ1dvdWxkIHlvdSBsaWtlIHRvIHByb2NlZWQ/JworICAgICAgXSk7CisgICAgICB2YXIgb2tCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICAgIG9rQnV0dG9uLnRleHRDb250ZW50ID0gJ09rJzsKKyAgICAgIG9rQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5kb1RyYWNlVXBsb2FkXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5hcHBlbmRDaGlsZChva0J1dHRvbik7CisKKyAgICAgIHZhciBjYW5jZWxCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICAgIGNhbmNlbEJ1dHRvbi50ZXh0Q29udGVudCA9ICdDYW5jZWwnOworICAgICAgY2FuY2VsQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVVwbG9hZE92ZXJsYXlfLmJpbmQodGhpcykpOworICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy5idXR0b25zLmFwcGVuZENoaWxkKGNhbmNlbEJ1dHRvbik7CisgICAgfSwKKworICAgIHNldFVwbG9hZE92ZXJsYXlDb250ZW50XzogZnVuY3Rpb24oY29udGVudCkgeworICAgICAgaWYgKCF0aGlzLnVwbG9hZE92ZXJsYXlfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCB1cGxvYWRpbmcnKTsKKworICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy50ZXh0Q29udGVudCA9ICcnOworICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICB9LAorCisgICAgc2V0VXBsb2FkT3ZlcmxheVRleHRfOiBmdW5jdGlvbihtZXNzYWdlcykgeworICAgICAgdmFyIGNvbnRlbnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgbWVzc2FnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBtZXNzYWdlRGl2LnRleHRDb250ZW50ID0gbWVzc2FnZXNbaV07CisgICAgICAgIGNvbnRlbnREaXYuYXBwZW5kQ2hpbGQobWVzc2FnZURpdik7CisgICAgICB9CisgICAgICB0aGlzLnNldFVwbG9hZE92ZXJsYXlDb250ZW50Xyhjb250ZW50RGl2KTsKKyAgICB9LAorCisgICAgZG9UcmFjZVVwbG9hZF86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zZXRVcGxvYWRPdmVybGF5VGV4dF8oWydVcGxvYWRpbmcgdHJhY2UgZGF0YS4uLiddKTsKKyAgICAgIHRoaXMudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5yZW1vdmVDaGlsZCgKKyAgICAgICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuZmlyc3RDaGlsZCk7CisgICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuZmlyc3RDaGlsZC50ZXh0Q29udGVudCA9ICdDbG9zZSc7CisKKyAgICAgIHZhciBmaWxlbmFtZSA9IHRoaXMuYWN0aXZlVHJhY2VfLmZpbGVuYW1lOworICAgICAgdmFyIGlzQmluYXJ5ID0gL1suXWd6JC8udGVzdChmaWxlbmFtZSkgfHwgL1suXXppcCQvLnRlc3QoZmlsZW5hbWUpOworICAgICAgaWYgKGlzQmluYXJ5KSB7CisgICAgICAgIHZhciBkYXRhX2Jhc2U2NCA9IHRyLmIuQmFzZTY0LkVuY29kZUFycmF5QnVmZmVyVG9TdHJpbmcoCisgICAgICAgICAgICB0aGlzLmFjdGl2ZVRyYWNlXy5kYXRhKTsKKyAgICAgICAgY2hyb21lLnNlbmQoJ2RvVXBsb2FkQmFzZTY0JywgW2RhdGFfYmFzZTY0XSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBjaHJvbWUuc2VuZCgnZG9VcGxvYWQnLCBbdGhpcy5hY3RpdmVUcmFjZV8uZGF0YV0pOworICAgICAgfQorICAgIH0sCisKKyAgICBoaWRlVXBsb2FkT3ZlcmxheV86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLnVwbG9hZE92ZXJsYXlfKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCB1cGxvYWRpbmcnKTsKKworICAgICAgdGhpcy51cGxvYWRPdmVybGF5Xy52aXNpYmxlID0gZmFsc2U7CisgICAgICB0aGlzLnVwbG9hZE92ZXJsYXlfID0gbnVsbDsKKyAgICB9LAorCisgICAgb25Mb2FkQ2xpY2tlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisgICAgICBpbnB1dEVsZW1lbnQudHlwZSA9ICdmaWxlJzsKKyAgICAgIGlucHV0RWxlbWVudC5tdWx0aXBsZSA9IGZhbHNlOworCisgICAgICB2YXIgY2hhbmdlRmlyZWQgPSBmYWxzZTsKKyAgICAgIGlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICdjaGFuZ2UnLAorICAgICAgICAgIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VGaXJlZCkKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgY2hhbmdlRmlyZWQgPSB0cnVlOworCisgICAgICAgICAgICB2YXIgZmlsZSA9IGlucHV0RWxlbWVudC5maWxlc1swXTsKKyAgICAgICAgICAgIHJlYWRGaWxlKGZpbGUpLnRoZW4oCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVUcmFjZShmaWxlLm5hbWUsIGRhdGEpOworICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgICAgICAgICAgIHRyLnVpLmIuT3ZlcmxheS5zaG93RXJyb3IoJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZmlsZTogJyArIGVycik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICBpbnB1dEVsZW1lbnQuY2xpY2soKTsKKyAgICB9LAorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICBpbml0RHJhZ0FuZERyb3BfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZHJvcEhhbmRsZXJfID0gdGhpcy5kcm9wSGFuZGxlcl8uYmluZCh0aGlzKTsKKyAgICAgIHRoaXMuaWdub3JlRHJhZ0V2ZW50XyA9IHRoaXMuaWdub3JlRHJhZ0V2ZW50Xy5iaW5kKHRoaXMpOworICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfLCBmYWxzZSk7CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW5kJywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfLCBmYWxzZSk7CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCB0aGlzLmlnbm9yZURyYWdFdmVudF8sIGZhbHNlKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIHRoaXMuaWdub3JlRHJhZ0V2ZW50XywgZmFsc2UpOworICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmlnbm9yZURyYWdFdmVudF8sIGZhbHNlKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmRyb3BIYW5kbGVyXywgZmFsc2UpOworICAgIH0sCisKKyAgICBkZXRhY2hEcmFnQW5kRHJvcF86IGZ1bmN0aW9uKCkgeworICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfKTsKKyAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdlbmQnLCB0aGlzLmlnbm9yZURyYWdFdmVudF8pOworICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgdGhpcy5pZ25vcmVEcmFnRXZlbnRfKTsKKyAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIHRoaXMuaWdub3JlRHJhZ0V2ZW50Xyk7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaWdub3JlRHJhZ0V2ZW50Xyk7CisgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5kcm9wSGFuZGxlcl8pOworICAgIH0sCisKKyAgICBpZ25vcmVEcmFnRXZlbnRfOiBmdW5jdGlvbihlKSB7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGRyb3BIYW5kbGVyXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKHRoaXMuaXNBbnlEaWFsb2dVcF8pCisgICAgICAgIHJldHVybjsKKworICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKworICAgICAgdmFyIGZpbGVzID0gZS5kYXRhVHJhbnNmZXIuZmlsZXM7CisgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSAxKSB7CisgICAgICAgIHRyLnVpLmIuT3ZlcmxheS5zaG93RXJyb3IoJzEgZmlsZSBzdXBwb3J0ZWQgYXQgYSB0aW1lLicpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHJlYWRGaWxlKGZpbGVzWzBdKS50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlVHJhY2UoZmlsZXNbMF0ubmFtZSwgZGF0YSk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpLAorICAgICAgICAgIGZ1bmN0aW9uKGVycikgeworICAgICAgICAgICAgdHIudWkuYi5PdmVybGF5LnNob3dFcnJvcignRXJyb3Igd2hpbGUgbG9hZGluZyBmaWxlOiAnICsgZXJyKTsKKyAgICAgICAgICB9KTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQcm9maWxpbmdWaWV3OiBQcm9maWxpbmdWaWV3CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9wcm9maWxpbmdfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3Byb2ZpbGluZ192aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTU3ZmNiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9wcm9maWxpbmdfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSwyNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgaHJlZj0iL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL21vY2tfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9wcm9maWxpbmdfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciB0ZXN0RGF0YSA9IFsKKyAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDE1MDAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKKyAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDE5MDAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfSwKKyAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDMyMDAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0InfSwKKyAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU0MDAwLCBjYXQ6ICdmb28nLCB0aWQ6IDUzLCBwaDogJ0UnfQorICBdOworCisgIHZhciBtb25pdG9yaW5nT3B0aW9ucyA9IHsKKyAgICBpc01vbml0b3Jpbmc6IGZhbHNlLAorICAgIGNhdGVnb3J5RmlsdGVyOiAnKicsCisgICAgdXNlU3lzdGVtVHJhY2luZzogZmFsc2UsCisgICAgdXNlQ29udGludW91c1RyYWNpbmc6IGZhbHNlLAorICAgIHVzZVNhbXBsaW5nOiBmYWxzZQorICB9OworCisgIHZhciBQcm9maWxpbmdWaWV3ID0gdHIudWkuZS5hYm91dF90cmFjaW5nLlByb2ZpbGluZ1ZpZXc7CisKKyAgdGVzdCgncmVjb3JkaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vY2sgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLk1vY2tUcmFjaW5nQ29udHJvbGxlckNsaWVudCgpOworICAgIG1vY2suYWxsb3dMb29waW5nID0gdHJ1ZTsKKyAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2dldE1vbml0b3JpbmdTdGF0dXMnLCBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBidG9hKEpTT04uc3RyaW5naWZ5KG1vbml0b3JpbmdPcHRpb25zKSk7CisgICAgfSk7CisgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdlbmRSZWNvcmRpbmcnLCBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiAnJzsKKyAgICB9KTsKKyAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2dldENhdGVnb3JpZXMnLCBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBbJ2EnLCAnYicsICdjJ107CisgICAgfSk7CisgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdiZWdpblJlY29yZGluZycsIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgIHJldHVybiAnJzsKKyAgICB9KTsKKyAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2VuZFJlY29yZGluZycsIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0ZXN0RGF0YSk7CisgICAgfSk7CisKKyAgICB2YXIgdmlldyA9IG5ldyBQcm9maWxpbmdWaWV3KG1vY2spOworICAgIHZpZXcuc3R5bGUuaGVpZ2h0ID0gJzQwMHB4JzsKKyAgICB2aWV3LnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKKworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciByZWNvcmRpbmdQcm9taXNlID0gdmlldy5iZWdpblJlY29yZGluZygpOworCisgICAgICB2YXIgZGlkQWJvcnQgPSBmYWxzZTsKKyAgICAgIGZ1bmN0aW9uIHByZXNzUmVjb3JkKCkgeworICAgICAgICBpZiAoZGlkQWJvcnQpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICByZWNvcmRpbmdQcm9taXNlLnNlbGVjdGlvbkRsZy5jbGlja1JlY29yZEJ1dHRvbigpOworICAgICAgICBzZXRUaW1lb3V0KHByZXNzU3RvcCwgNjApOworICAgICAgfQorICAgICAgZnVuY3Rpb24gcHJlc3NTdG9wKCkgeworICAgICAgICByZWNvcmRpbmdQcm9taXNlLnByb2dyZXNzRGxnLmNsaWNrU3RvcEJ1dHRvbigpOworICAgICAgfQorICAgICAgc2V0VGltZW91dChwcmVzc1JlY29yZCwgNjApOworICAgICAgcmVjb3JkaW5nUHJvbWlzZS50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH0sCisgICAgICAgICAgZnVuY3Rpb24oZXJyKSB7CisgICAgICAgICAgICBkaWRBYm9ydCA9IHRydWU7CisgICAgICAgICAgICByZWplY3QoZXJyKTsKKyAgICAgICAgICB9KTsKKyAgICB9KTsKKyAgfSk7CisKKyAgdGVzdCgnbW9uaXRvcmluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2NrID0gbmV3IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5Nb2NrVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKTsKKyAgICBtb2NrLmFsbG93TG9vcGluZyA9IHRydWU7CisgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdnZXRNb25pdG9yaW5nU3RhdHVzJywgZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gYnRvYShKU09OLnN0cmluZ2lmeShtb25pdG9yaW5nT3B0aW9ucykpOworICAgIH0pOworICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnYmVnaW5Nb25pdG9yaW5nJywgZnVuY3Rpb24oZGF0YSkgeworICAgICAgcmV0dXJuICcnOworICAgIH0pOworICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnY2FwdHVyZU1vbml0b3JpbmcnLCBmdW5jdGlvbihkYXRhKSB7CisgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGVzdERhdGEpOworICAgIH0pOworICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnZW5kTW9uaXRvcmluZycsIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgIHJldHVybiAnJzsKKyAgICB9KTsKKworICAgIHZhciB2aWV3ID0gbmV3IFByb2ZpbGluZ1ZpZXcobW9jayk7CisgICAgdmlldy5zdHlsZS5oZWlnaHQgPSAnNDAwcHgnOworICAgIHZpZXcuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworCisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgYXNzZXJ0LmlzRmFsc2Uodmlldy5tb25pdG9yQ2hlY2tib3hfLmNoZWNrZWQpOworCisgICAgICBmdW5jdGlvbiBiZWdpbk1vbml0b3JpbmcoKSB7CisgICAgICAgIC8vIFNpbmNlIHdlIGRvbid0IGZhbGwgYmFjayB0byBUcmFjaW5nQ29udHJvbGxlciB3aGVuIHRlc3RpbmcsCisgICAgICAgIC8vIHdlIGNhbm5vdCByZWx5IG9uIFRyYWNpbmdDb250cm9sbGVyIHRvIGludm9rZSBhIGNhbGxiYWNrIHRvIGNoYW5nZQorICAgICAgICAvLyB2aWV3LmlzTW9uaXRvcmluZ18uIFRodXMgd2UgY2hhbmdlIHZpZXcuaXNNb25pdG9yaW5nXyBtYW51YWxseS4KKyAgICAgICAgdmlldy5vbk1vbml0b3JpbmdTdGF0ZUNoYW5nZWRfKHRydWUpOworICAgICAgICBhc3NlcnQuaXNUcnVlKHZpZXcubW9uaXRvckNoZWNrYm94Xy5jaGVja2VkKTsKKyAgICAgICAgc2V0VGltZW91dChjYXB0dXJlTW9uaXRvcmluZywgNjApOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBjYXB0dXJlTW9uaXRvcmluZygpIHsKKyAgICAgICAgYXNzZXJ0LmlzVHJ1ZSh2aWV3Lm1vbml0b3JDaGVja2JveF8uY2hlY2tlZCk7CisgICAgICAgIHZpZXcuY2FwdHVyZUJ1dHRvbl8uY2xpY2soKTsKKyAgICAgICAgc2V0VGltZW91dChlbmRNb25pdG9yaW5nLCA2MCk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGVuZE1vbml0b3JpbmcoKSB7CisgICAgICAgIGFzc2VydC5pc1RydWUodmlldy5tb25pdG9yQ2hlY2tib3hfLmNoZWNrZWQpOworICAgICAgICB2aWV3Lm1vbml0b3JDaGVja2JveF8uY2xpY2soKTsKKyAgICAgICAgYXNzZXJ0LmlzRmFsc2Uodmlldy5tb25pdG9yQ2hlY2tib3hfLmNoZWNrZWQpOworICAgICAgfQorCisgICAgICB2YXIgbW9uaXRvcmluZ1Byb21pc2UgPSB2aWV3LmJlZ2luTW9uaXRvcmluZygpOworICAgICAgc2V0VGltZW91dChiZWdpbk1vbml0b3JpbmcsIDYwKTsKKworICAgICAgbW9uaXRvcmluZ1Byb21pc2UudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgIH0pOworICB9KTsKKworICB0ZXN0KCd1cGxvYWRfY29tcHJlc3NlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2NrID0gbmV3IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5Nb2NrVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKTsKKyAgICBtb2NrLmFsbG93TG9vcGluZyA9IHRydWU7CisgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdnZXRNb25pdG9yaW5nU3RhdHVzJywgZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gYnRvYShKU09OLnN0cmluZ2lmeShtb25pdG9yaW5nT3B0aW9ucykpOworICAgIH0pOworICAgIHZhciB2aWV3ID0gbmV3IFByb2ZpbGluZ1ZpZXcobW9jayk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICAgIHZhciB1cGxvYWRCdXR0b24gPSB2aWV3LnVwbG9hZEJ1dHRvbl87CisgICAgYXNzZXJ0LmlzTm90TnVsbCh1cGxvYWRCdXR0b24pOworICAgIGFzc2VydC5pc1RydWUodXBsb2FkQnV0dG9uLmRpc2FibGVkKTsKKyAgICBhc3NlcnQuaXNOdWxsKHZpZXcudXBsb2FkT3ZlcmxheV8pOworCisgICAgdmlldy5zZXRBY3RpdmVUcmFjZSgndGVzdEZpbGUuZ3onLCBbXSk7CisKKyAgICB2YXIgb3JpZ2luYWxfZGF0YSA9ICdkR1Z6ZEFBQSc7CisgICAgdmFyIGRlY29kZWRfc2l6ZSA9IHRyLmIuQmFzZTY0LmdldERlY29kZWRCdWZmZXJMZW5ndGgob3JpZ2luYWxfZGF0YSk7CisgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihkZWNvZGVkX3NpemUpOworICAgIHRyLmIuQmFzZTY0LkRlY29kZVRvVHlwZWRBcnJheShvcmlnaW5hbF9kYXRhLCBuZXcgRGF0YVZpZXcoYnVmZmVyKSk7CisgICAgdmlldy5hY3RpdmVUcmFjZV8uZGF0YSA9IGJ1ZmZlcjsKKyAgICBhc3NlcnQuaXNGYWxzZSh1cGxvYWRCdXR0b24uZGlzYWJsZWQpOworCisgICAgdmFyIG92ZXJsYXkgPSBudWxsOworICAgIHZhciBjbGlja1VwbG9hZEFuZFZlcmlmeSA9IGZ1bmN0aW9uKCkgeworICAgICAgdmlldy5vblVwbG9hZENsaWNrZWRfKCk7CisgICAgICBhc3NlcnQuaXNOb3ROdWxsKHZpZXcudXBsb2FkT3ZlcmxheV8pOworICAgICAgYXNzZXJ0LmlzVHJ1ZSh2aWV3LnVwbG9hZE92ZXJsYXlfLnZpc2libGUpOworICAgICAgb3ZlcmxheSA9IHZpZXcudXBsb2FkT3ZlcmxheV87CisgICAgICBhc3NlcnQubm90RXF1YWwodmlldy51cGxvYWRPdmVybGF5Xy5idXR0b25zLnN0eWxlLmRpc3BsYXksICdub25lJyk7CisgICAgICBhc3NlcnQuZXF1YWwodmlldy51cGxvYWRPdmVybGF5Xy5idXR0b25zLmNoaWxkTm9kZXMubGVuZ3RoLCAyKTsKKyAgICB9OworICAgIGNsaWNrVXBsb2FkQW5kVmVyaWZ5KCk7CisKKyAgICB2YXIgY2FuY2VsQnV0dG9uID0gdmlldy51cGxvYWRPdmVybGF5Xy5idXR0b25zLmxhc3RDaGlsZDsKKyAgICBhc3NlcnQuZXF1YWwoY2FuY2VsQnV0dG9uLnRleHRDb250ZW50LCAnQ2FuY2VsJyk7CisgICAgY2FuY2VsQnV0dG9uLmNsaWNrKCk7CisgICAgYXNzZXJ0LmlzTnVsbCh2aWV3LnVwbG9hZE92ZXJsYXlfKTsKKyAgICBhc3NlcnQuaXNGYWxzZShvdmVybGF5LnZpc2libGUpOworCisgICAgY2xpY2tVcGxvYWRBbmRWZXJpZnkoKTsKKyAgICB2YXIgb2tCdXR0b24gPSB2aWV3LnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuZmlyc3RDaGlsZDsKKyAgICBhc3NlcnQuZXF1YWwob2tCdXR0b24udGV4dENvbnRlbnQsICdPaycpOworICAgIHZhciBjb21tYW5kU2VudCA9IG51bGw7CisgICAgdmFyIGRhdGFTZW50ID0gbnVsbDsKKyAgICBjaHJvbWUuc2VuZCA9IGZ1bmN0aW9uKGNvbW1hbmQsIGRhdGEpIHsKKyAgICAgIGNvbW1hbmRTZW50ID0gY29tbWFuZDsKKyAgICAgIGRhdGFTZW50ID0gZGF0YTsKKyAgICB9OworICAgIG9rQnV0dG9uLmNsaWNrKCk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbW1hbmRTZW50LCAnZG9VcGxvYWRCYXNlNjQnKTsKKyAgICBhc3NlcnQuZXF1YWwoZGF0YVNlbnRbMF0sIG9yaWdpbmFsX2RhdGEpOworCisgICAgYXNzZXJ0LmlzVHJ1ZSh2aWV3LnVwbG9hZE92ZXJsYXlfLnZpc2libGUpOworICAgIG92ZXJsYXkgPSB2aWV3LnVwbG9hZE92ZXJsYXlfOworICAgIGFzc2VydC5lcXVhbCh2aWV3LnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuY2hpbGROb2Rlcy5sZW5ndGgsIDEpOworICAgIHZhciBjbG9zZUJ1dHRvbiA9IHZpZXcudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5jaGlsZE5vZGVzWzBdOworICAgIGFzc2VydC5lcXVhbChjbG9zZUJ1dHRvbi50ZXh0Q29udGVudCwgJ0Nsb3NlJyk7CisgICAgY2xvc2VCdXR0b24uY2xpY2soKTsKKyAgICBhc3NlcnQuaXNOdWxsKHZpZXcudXBsb2FkT3ZlcmxheV8pOworICAgIGFzc2VydC5pc0ZhbHNlKG92ZXJsYXkudmlzaWJsZSk7CisgIH0pOworCisgIHRlc3QoJ3VwbG9hZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2NrID0gbmV3IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5Nb2NrVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKTsKKyAgICBtb2NrLmFsbG93TG9vcGluZyA9IHRydWU7CisgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdnZXRNb25pdG9yaW5nU3RhdHVzJywgZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gYnRvYShKU09OLnN0cmluZ2lmeShtb25pdG9yaW5nT3B0aW9ucykpOworICAgIH0pOworICAgIHZhciB2aWV3ID0gbmV3IFByb2ZpbGluZ1ZpZXcobW9jayk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICAgIHZhciB1cGxvYWRCdXR0b24gPSB2aWV3LnVwbG9hZEJ1dHRvbl87CisgICAgYXNzZXJ0LmlzTm90TnVsbCh1cGxvYWRCdXR0b24pOworICAgIGFzc2VydC5pc1RydWUodXBsb2FkQnV0dG9uLmRpc2FibGVkKTsKKyAgICBhc3NlcnQuaXNOdWxsKHZpZXcudXBsb2FkT3ZlcmxheV8pOworCisgICAgdmlldy5zZXRBY3RpdmVUcmFjZSgndGVzdEZpbGUnLCBbXSk7CisgICAgdmlldy5hY3RpdmVUcmFjZV8uZGF0YSA9IFsndCcsICdlJywgJ3MnLCAndCddOworICAgIGFzc2VydC5pc0ZhbHNlKHVwbG9hZEJ1dHRvbi5kaXNhYmxlZCk7CisKKyAgICB2YXIgb3ZlcmxheSA9IG51bGw7CisgICAgdmFyIGNsaWNrVXBsb2FkQW5kVmVyaWZ5ID0gZnVuY3Rpb24oKSB7CisgICAgICB2aWV3Lm9uVXBsb2FkQ2xpY2tlZF8oKTsKKyAgICAgIGFzc2VydC5pc05vdE51bGwodmlldy51cGxvYWRPdmVybGF5Xyk7CisgICAgICBhc3NlcnQuaXNUcnVlKHZpZXcudXBsb2FkT3ZlcmxheV8udmlzaWJsZSk7CisgICAgICBvdmVybGF5ID0gdmlldy51cGxvYWRPdmVybGF5XzsKKyAgICAgIGFzc2VydC5ub3RFcXVhbCh2aWV3LnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuc3R5bGUuZGlzcGxheSwgJ25vbmUnKTsKKyAgICAgIGFzc2VydC5lcXVhbCh2aWV3LnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMuY2hpbGROb2Rlcy5sZW5ndGgsIDIpOworICAgIH07CisgICAgY2xpY2tVcGxvYWRBbmRWZXJpZnkoKTsKKworICAgIHZhciBjYW5jZWxCdXR0b24gPSB2aWV3LnVwbG9hZE92ZXJsYXlfLmJ1dHRvbnMubGFzdENoaWxkOworICAgIGFzc2VydC5lcXVhbChjYW5jZWxCdXR0b24udGV4dENvbnRlbnQsICdDYW5jZWwnKTsKKyAgICBjYW5jZWxCdXR0b24uY2xpY2soKTsKKyAgICBhc3NlcnQuaXNOdWxsKHZpZXcudXBsb2FkT3ZlcmxheV8pOworICAgIGFzc2VydC5pc0ZhbHNlKG92ZXJsYXkudmlzaWJsZSk7CisKKyAgICBjbGlja1VwbG9hZEFuZFZlcmlmeSgpOworICAgIHZhciBva0J1dHRvbiA9IHZpZXcudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5maXJzdENoaWxkOworICAgIGFzc2VydC5lcXVhbChva0J1dHRvbi50ZXh0Q29udGVudCwgJ09rJyk7CisgICAgdmFyIGNvbW1hbmRTZW50ID0gbnVsbDsKKyAgICB2YXIgZGF0YVNlbnQgPSBudWxsOworICAgIGNocm9tZS5zZW5kID0gZnVuY3Rpb24oY29tbWFuZCwgZGF0YSkgeworICAgICAgY29tbWFuZFNlbnQgPSBjb21tYW5kOworICAgICAgZGF0YVNlbnQgPSBkYXRhOworICAgIH07CisgICAgb2tCdXR0b24uY2xpY2soKTsKKyAgICBhc3NlcnQuZXF1YWwoY29tbWFuZFNlbnQsICdkb1VwbG9hZCcpOworICAgIGFzc2VydC5lcXVhbChkYXRhU2VudFswXSwgdmlldy5hY3RpdmVUcmFjZV8uZGF0YSk7CisKKyAgICBhc3NlcnQuaXNUcnVlKHZpZXcudXBsb2FkT3ZlcmxheV8udmlzaWJsZSk7CisgICAgb3ZlcmxheSA9IHZpZXcudXBsb2FkT3ZlcmxheV87CisgICAgYXNzZXJ0LmVxdWFsKHZpZXcudXBsb2FkT3ZlcmxheV8uYnV0dG9ucy5jaGlsZE5vZGVzLmxlbmd0aCwgMSk7CisgICAgdmFyIGNsb3NlQnV0dG9uID0gdmlldy51cGxvYWRPdmVybGF5Xy5idXR0b25zLmNoaWxkTm9kZXNbMF07CisgICAgYXNzZXJ0LmVxdWFsKGNsb3NlQnV0dG9uLnRleHRDb250ZW50LCAnQ2xvc2UnKTsKKyAgICBjbG9zZUJ1dHRvbi5jbGljaygpOworICAgIGFzc2VydC5pc051bGwodmlldy51cGxvYWRPdmVybGF5Xyk7CisgICAgYXNzZXJ0LmlzRmFsc2Uob3ZlcmxheS52aXNpYmxlKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9hbmRfY2FwdHVyZV9jb250cm9sbGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9hbmRfY2FwdHVyZV9jb250cm9sbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JmOGExZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXIuaHRtbApAQCAtMCwwICsxLDIzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX3NlbGVjdGlvbl9kaWFsb2cuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmFib3V0X3RyYWNpbmcnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gYmVnaW5Nb25pdG9yaW5nKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KSB7CisgICAgdmFyIGZpbmFsUHJvbWlzZVJlc29sdmVyOworICAgIHZhciBmaW5hbFByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIGZpbmFsUHJvbWlzZVJlc29sdmVyID0geworICAgICAgICByZXNvbHZlOiByZXNvbHZlLAorICAgICAgICByZWplY3Q6IHJlamVjdAorICAgICAgfTsKKyAgICB9KTsKKworICAgIC8vIFRPRE8oaGFyYWtlbik6IEltcGxlbWVudCBhIGNvbmZpZ3VyZSBkaWFsb2cgdG8gc2V0IHRoZXNlIG9wdGlvbnMuCisgICAgdmFyIG1vbml0b3JpbmdPcHRpb25zID0geworICAgICAgY2F0ZWdvcnlGaWx0ZXI6ICcqJywKKyAgICAgIHVzZVN5c3RlbVRyYWNpbmc6IGZhbHNlLAorICAgICAgdHJhY2luZ1JlY29yZE1vZGU6ICdyZWNvcmQtdW50aWwtZnVsbCcsCisgICAgICB1c2VTYW1wbGluZzogdHJ1ZQorICAgIH07CisKKworICAgIHZhciBiZWdpbk1vbml0b3JpbmdQcm9taXNlID0gdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQuYmVnaW5Nb25pdG9yaW5nKAorICAgICAgICBtb25pdG9yaW5nT3B0aW9ucyk7CisKKyAgICBiZWdpbk1vbml0b3JpbmdQcm9taXNlLnRoZW4oCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGZpbmFsUHJvbWlzZVJlc29sdmVyLnJlc29sdmUoKTsKKyAgICAgICAgfSwKKyAgICAgICAgZnVuY3Rpb24oZXJyKSB7CisgICAgICAgICAgZmluYWxQcm9taXNlUmVzb2x2ZXIucmVqZWN0KGVycik7CisgICAgICAgIH0pOworCisgICAgcmV0dXJuIGZpbmFsUHJvbWlzZTsKKyAgfQorCisgIGZ1bmN0aW9uIGVuZE1vbml0b3JpbmcodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKKyAgICB2YXIgZW5kTW9uaXRvcmluZ1Byb21pc2UgPSB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5lbmRNb25pdG9yaW5nKCk7CisgICAgcmV0dXJuIGVuZE1vbml0b3JpbmdQcm9taXNlLnRoZW4oCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgfSk7CisgIH0KKworICBmdW5jdGlvbiBjYXB0dXJlTW9uaXRvcmluZyh0cmFjaW5nQ29udHJvbGxlckNsaWVudCkgeworICAgIHZhciBjYXB0dXJlTW9uaXRvcmluZ1Byb21pc2UgPQorICAgICAgICB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5jYXB0dXJlTW9uaXRvcmluZygpOworICAgIHJldHVybiBjYXB0dXJlTW9uaXRvcmluZ1Byb21pc2U7CisgIH0KKworICBmdW5jdGlvbiBnZXRNb25pdG9yaW5nU3RhdHVzKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KSB7CisgICAgdmFyIGdldE1vbml0b3JpbmdTdGF0dXNQcm9taXNlID0KKyAgICAgICAgdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQuZ2V0TW9uaXRvcmluZ1N0YXR1cygpOworICAgIHJldHVybiBnZXRNb25pdG9yaW5nU3RhdHVzUHJvbWlzZTsKKyAgfQorCisgIGZ1bmN0aW9uIGJlZ2luUmVjb3JkaW5nKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KSB7CisgICAgdmFyIGZpbmFsUHJvbWlzZVJlc29sdmVyOworICAgIHZhciBmaW5hbFByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIGZpbmFsUHJvbWlzZVJlc29sdmVyID0geworICAgICAgICByZXNvbHZlOiByZXNvbHZlLAorICAgICAgICByZWplY3Q6IHJlamVjdAorICAgICAgfTsKKyAgICB9KTsKKyAgICBmaW5hbFByb21pc2Uuc2VsZWN0aW9uRGxnID0gdW5kZWZpbmVkOworICAgIGZpbmFsUHJvbWlzZS5wcm9ncmVzc0RsZyA9IHVuZGVmaW5lZDsKKworICAgIGZ1bmN0aW9uIGJlZ2luUmVjb3JkaW5nRXJyb3IoZXJyKSB7CisgICAgICBmaW5hbFByb21pc2VSZXNvbHZlci5yZWplY3QoZXJyKTsKKyAgICB9CisKKyAgICAvLyBTdGVwIDA6IEVuZCByZWNvcmRpbmcuIFRoaXMgaXMgbmVjZXNzYXJ5IHdoZW4gdGhlIHVzZXIgcmVsb2FkcyB0aGUKKyAgICAvLyBhYm91dDp0cmFjaW5nIHBhZ2Ugd2hlbiB3ZSBhcmUgcmVjb3JkaW5nLiBXaW5kb3cub25iZWZvcmV1bmxvYWQgaXMgbm90CisgICAgLy8gcmVsaWFibGUgdG8gZW5kIHJlY29yZGluZyBvbiByZWxvYWQuCisgICAgZW5kUmVjb3JkaW5nKHRyYWNpbmdDb250cm9sbGVyQ2xpZW50KS50aGVuKAorICAgICAgICBnZXRDYXRlZ29yaWVzLAorICAgICAgICBnZXRDYXRlZ29yaWVzKTsgIC8vIElnbm9yZSBlcnJvci4KKworICAgIC8vIEJ1dCBqdXN0IGluIGNhc2UsIGJpbmQgb25iZWZvcmV1bmxvYWQgYW55d2F5LgorICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGVuZFJlY29yZGluZyh0cmFjaW5nQ29udHJvbGxlckNsaWVudCk7CisgICAgfQorCisgICAgLy8gU3RlcCAxOiBHZXQgY2F0ZWdvcmllcy4KKyAgICBmdW5jdGlvbiBnZXRDYXRlZ29yaWVzKCkgeworICAgICAgdmFyIHAgPSB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5nZXRDYXRlZ29yaWVzKCkudGhlbigKKyAgICAgICAgICBzaG93VHJhY2luZ0RpYWxvZywKKyAgICAgICAgICBiZWdpblJlY29yZGluZ0Vycm9yKTsKKyAgICAgIHAuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CisgICAgICAgIGJlZ2luUmVjb3JkaW5nRXJyb3IoZXJyKTsKKyAgICAgIH0pOworICAgIH0KKworICAgIC8vIFN0ZXAgMjogU2hvdyB0cmFjaW5nIGRpYWxvZy4KKyAgICB2YXIgc2VsZWN0aW9uRGxnOworICAgIGZ1bmN0aW9uIHNob3dUcmFjaW5nRGlhbG9nKGNhdGVnb3JpZXMpIHsKKyAgICAgIHNlbGVjdGlvbkRsZyA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuUmVjb3JkU2VsZWN0aW9uRGlhbG9nKCk7CisgICAgICBzZWxlY3Rpb25EbGcuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7CisgICAgICBzZWxlY3Rpb25EbGcuc2V0dGluZ3Nfa2V5ID0KKyAgICAgICAgICAndHIudWkuZS5hYm91dF90cmFjaW5nLnJlY29yZF9zZWxlY3Rpb25fZGlhbG9nJzsKKyAgICAgIHNlbGVjdGlvbkRsZy5hZGRFdmVudExpc3RlbmVyKCdyZWNvcmRjbGljaycsIHN0YXJ0VHJhY2luZyk7CisgICAgICBzZWxlY3Rpb25EbGcuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2VjbGljaycsIGNhbmNlbFJlY29yZGluZyk7CisgICAgICBzZWxlY3Rpb25EbGcudmlzaWJsZSA9IHRydWU7CisKKyAgICAgIGZpbmFsUHJvbWlzZS5zZWxlY3Rpb25EbGcgPSBzZWxlY3Rpb25EbGc7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FuY2VsUmVjb3JkaW5nKCkgeworICAgICAgZmluYWxQcm9taXNlLnNlbGVjdGlvbkRsZyA9IHVuZGVmaW5lZDsKKyAgICAgIGZpbmFsUHJvbWlzZVJlc29sdmVyLnJlamVjdChuZXcgVXNlckNhbmNlbGxlZEVycm9yKCkpOworICAgIH0KKworICAgIC8vIFN0ZXAgMjogRG8gdGhlIGFjdHVhbCB0cmFjaW5nIGRpYWxvZy4KKyAgICB2YXIgcHJvZ3Jlc3NEbGc7CisgICAgdmFyIGJ1ZmZlclBlcmNlbnRGdWxsRGl2OworICAgIGZ1bmN0aW9uIHN0YXJ0VHJhY2luZygpIHsKKyAgICAgIHByb2dyZXNzRGxnID0gbmV3IHRyLnVpLmIuT3ZlcmxheSgpOworICAgICAgcHJvZ3Jlc3NEbGcudGV4dENvbnRlbnQgPSAnUmVjb3JkaW5nLi4uJzsKKyAgICAgIHByb2dyZXNzRGxnLnVzZXJDYW5DbG9zZSA9IGZhbHNlOworCisgICAgICBidWZmZXJQZXJjZW50RnVsbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgcHJvZ3Jlc3NEbGcuYXBwZW5kQ2hpbGQoYnVmZmVyUGVyY2VudEZ1bGxEaXYpOworCisgICAgICB2YXIgc3RvcEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOworICAgICAgc3RvcEJ1dHRvbi50ZXh0Q29udGVudCA9ICdTdG9wJzsKKyAgICAgIHByb2dyZXNzRGxnLmNsaWNrU3RvcEJ1dHRvbiA9IGZ1bmN0aW9uKCkgeworICAgICAgICBzdG9wQnV0dG9uLmNsaWNrKCk7CisgICAgICB9OworICAgICAgcHJvZ3Jlc3NEbGcuYXBwZW5kQ2hpbGQoc3RvcEJ1dHRvbik7CisKKyAgICAgIHZhciByZWNvcmRpbmdPcHRpb25zID0geworICAgICAgICBjYXRlZ29yeUZpbHRlcjogc2VsZWN0aW9uRGxnLmNhdGVnb3J5RmlsdGVyKCksCisgICAgICAgIHVzZVN5c3RlbVRyYWNpbmc6IHNlbGVjdGlvbkRsZy51c2VTeXN0ZW1UcmFjaW5nLAorICAgICAgICB0cmFjaW5nUmVjb3JkTW9kZTogc2VsZWN0aW9uRGxnLnRyYWNpbmdSZWNvcmRNb2RlLAorICAgICAgICB1c2VTYW1wbGluZzogc2VsZWN0aW9uRGxnLnVzZVNhbXBsaW5nCisgICAgICB9OworCisKKyAgICAgIHZhciByZXF1ZXN0UHJvbWlzZSA9IHRyYWNpbmdDb250cm9sbGVyQ2xpZW50LmJlZ2luUmVjb3JkaW5nKAorICAgICAgICAgIHJlY29yZGluZ09wdGlvbnMpOworICAgICAgcmVxdWVzdFByb21pc2UudGhlbigKKyAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHByb2dyZXNzRGxnLnZpc2libGUgPSB0cnVlOworICAgICAgICAgICAgc3RvcEJ1dHRvbi5mb2N1cygpOworICAgICAgICAgICAgdXBkYXRlQnVmZmVyUGVyY2VudEZ1bGwoJzAnKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHJlY29yZEZhaWxlZCk7CisKKyAgICAgIHN0b3BCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gVE9ETyhjaHJpc2hlbnJ5KTogQ3VycmVudGx5LCB0aGlzIG9ubHkgZGlzbWlzcyB0aGUgcHJvZ3Jlc3MKKyAgICAgICAgLy8gZGlhbG9nIHdoZW4gdHJhY2luZ0NvbXBsZXRlIGV2ZW50IGlzIHJlY2VpdmVkLiBXaGVuIHBlcmZvcm1pbmcKKyAgICAgICAgLy8gcmVtb3RlIGRlYnVnZ2luZywgdGhlIHRyYWNpbmdDb21wbGV0ZSBldmVudCBtYXkgYmUgZGVsYXllZAorICAgICAgICAvLyBjb25zaWRlcmFibGUuIFdlIHNob3VsZCBpbmRpY2F0ZSB0byB1c2VyIHRoYXQgd2UgYXJlIHdhaXRpbmcKKyAgICAgICAgLy8gZm9yIHRyYWNpbmdDb21wbGV0ZSBldmVudCBpbnN0ZWFkIG9mIGJlaW5nIHVucmVzcG9uc2l2ZS4gKEZvcgorICAgICAgICAvLyBub3csIEkgZGlzYWJsZSB0aGUgInN0b3AiIGJ1dHRvbiwgc2luY2UgY2xpY2tpbmcgb24gdGhlIGJ1dHRvbgorICAgICAgICAvLyBhZ2FpbiBub3cgY2F1c2UgZXhjZXB0aW9uLikKKyAgICAgICAgdmFyIHJlY29yZGluZ1Byb21pc2UgPSBlbmRSZWNvcmRpbmcodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpOworICAgICAgICByZWNvcmRpbmdQcm9taXNlLnRoZW4oCisgICAgICAgICAgICByZWNvcmRGaW5pc2hlZCwKKyAgICAgICAgICAgIHJlY29yZEZhaWxlZCk7CisgICAgICAgIHN0b3BCdXR0b24uZGlzYWJsZWQgPSB0cnVlOworICAgICAgICBidWZmZXJQZXJjZW50RnVsbERpdiA9IHVuZGVmaW5lZDsKKyAgICAgIH0pOworICAgICAgZmluYWxQcm9taXNlLnByb2dyZXNzRGxnID0gcHJvZ3Jlc3NEbGc7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVjb3JkRmluaXNoZWQodHJhY2VkRGF0YSkgeworICAgICAgcHJvZ3Jlc3NEbGcudmlzaWJsZSA9IGZhbHNlOworICAgICAgZmluYWxQcm9taXNlLnByb2dyZXNzRGxnID0gdW5kZWZpbmVkOworICAgICAgZmluYWxQcm9taXNlUmVzb2x2ZXIucmVzb2x2ZSh0cmFjZWREYXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWNvcmRGYWlsZWQoZXJyKSB7CisgICAgICBwcm9ncmVzc0RsZy52aXNpYmxlID0gZmFsc2U7CisgICAgICBmaW5hbFByb21pc2UucHJvZ3Jlc3NEbGcgPSB1bmRlZmluZWQ7CisgICAgICBmaW5hbFByb21pc2VSZXNvbHZlci5yZWplY3QoZXJyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRCdWZmZXJQZXJjZW50RnVsbCgpIHsKKyAgICAgIGlmICghYnVmZmVyUGVyY2VudEZ1bGxEaXYpCisgICAgICAgIHJldHVybjsKKworICAgICAgdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQuYmVnaW5HZXRCdWZmZXJQZXJjZW50RnVsbCgpLnRoZW4oCisgICAgICAgICAgdXBkYXRlQnVmZmVyUGVyY2VudEZ1bGwpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHVwZGF0ZUJ1ZmZlclBlcmNlbnRGdWxsKHBlcmNlbnRfZnVsbCkgeworICAgICAgaWYgKCFidWZmZXJQZXJjZW50RnVsbERpdikKKyAgICAgICAgcmV0dXJuOworCisgICAgICBwZXJjZW50X2Z1bGwgPSBNYXRoLnJvdW5kKDEwMCAqIHBhcnNlRmxvYXQocGVyY2VudF9mdWxsKSk7CisgICAgICB2YXIgbmV3VGV4dCA9ICdCdWZmZXIgdXNhZ2U6ICcgKyBwZXJjZW50X2Z1bGwgKyAnJSc7CisgICAgICBpZiAoYnVmZmVyUGVyY2VudEZ1bGxEaXYudGV4dENvbnRlbnQgIT0gbmV3VGV4dCkKKyAgICAgICAgYnVmZmVyUGVyY2VudEZ1bGxEaXYudGV4dENvbnRlbnQgPSBuZXdUZXh0OworCisgICAgICB3aW5kb3cuc2V0VGltZW91dChnZXRCdWZmZXJQZXJjZW50RnVsbCwgNTAwKTsKKyAgICB9CisKKyAgICAvLyBUaGF0cyBpdCEgV2UncmUgZG9uZS4KKyAgICByZXR1cm4gZmluYWxQcm9taXNlOworICB9OworCisgIGZ1bmN0aW9uIGVuZFJlY29yZGluZyh0cmFjaW5nQ29udHJvbGxlckNsaWVudCkgeworICAgIHJldHVybiB0cmFjaW5nQ29udHJvbGxlckNsaWVudC5lbmRSZWNvcmRpbmcoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGRlZmF1bHRUcmFjZU5hbWUodHJhY2luZ0NvbnRyb2xsZXJDbGllbnQpIHsKKyAgICByZXR1cm4gdHJhY2luZ0NvbnRyb2xsZXJDbGllbnQuZGVmYXVsdFRyYWNlTmFtZSgpOworICB9CisKKyAgZnVuY3Rpb24gVXNlckNhbmNlbGxlZEVycm9yKCkgeworICAgIEVycm9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgIH0KKyAgVXNlckNhbmNlbGxlZEVycm9yLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEVycm9yLnByb3RvdHlwZQorICB9OworCisgIHJldHVybiB7CisgICAgYmVnaW5SZWNvcmRpbmc6IGJlZ2luUmVjb3JkaW5nLAorICAgIGJlZ2luTW9uaXRvcmluZzogYmVnaW5Nb25pdG9yaW5nLAorICAgIGVuZE1vbml0b3Jpbmc6IGVuZE1vbml0b3JpbmcsCisgICAgY2FwdHVyZU1vbml0b3Jpbmc6IGNhcHR1cmVNb25pdG9yaW5nLAorICAgIGdldE1vbml0b3JpbmdTdGF0dXM6IGdldE1vbml0b3JpbmdTdGF0dXMsCisgICAgVXNlckNhbmNlbGxlZEVycm9yOiBVc2VyQ2FuY2VsbGVkRXJyb3IsCisgICAgZGVmYXVsdFRyYWNlTmFtZTogZGVmYXVsdFRyYWNlTmFtZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfYW5kX2NhcHR1cmVfY29udHJvbGxlcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYxZDlkMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXJfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiCisgICAgICBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvbW9ja190cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiCisgICAgICBocmVmPSIvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX2FuZF9jYXB0dXJlX2NvbnRyb2xsZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICB2YXIgdGVzdERhdGEgPSBbCisgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAxNTAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCisgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAxOTAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCisgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiAzMjAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCisgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NDAwMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KKyAgXTsKKworICB0ZXN0KCdmdWxsUmVjb3JkaW5nJywgZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIG1vY2sgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLk1vY2tUcmFjaW5nQ29udHJvbGxlckNsaWVudCgpOworICAgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdlbmRSZWNvcmRpbmcnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuICcnOworICAgICAgfSk7CisgICAgICBtb2NrLmV4cGVjdFJlcXVlc3QoJ2dldENhdGVnb3JpZXMnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICByZWNvcmRpbmdQcm9taXNlLnNlbGVjdGlvbkRsZy5jbGlja1JlY29yZEJ1dHRvbigpOworICAgICAgICB9LCAyMCk7CisgICAgICAgIHJldHVybiBbJ2EnLCAnYicsICdjJ107CisgICAgICB9KTsKKyAgICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnYmVnaW5SZWNvcmRpbmcnLCBmdW5jdGlvbihyZWNvcmRpbmdPcHRpb25zKSB7CisgICAgICAgIGFzc2VydC50eXBlT2YocmVjb3JkaW5nT3B0aW9ucy5jYXRlZ29yeUZpbHRlciwgJ3N0cmluZycpOworICAgICAgICBhc3NlcnQudHlwZU9mKHJlY29yZGluZ09wdGlvbnMudXNlU3lzdGVtVHJhY2luZywgJ2Jvb2xlYW4nKTsKKyAgICAgICAgYXNzZXJ0LnR5cGVPZihyZWNvcmRpbmdPcHRpb25zLnVzZVNhbXBsaW5nLCAnYm9vbGVhbicpOworICAgICAgICBhc3NlcnQudHlwZU9mKHJlY29yZGluZ09wdGlvbnMudHJhY2luZ1JlY29yZE1vZGUsICdzdHJpbmcnKTsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICByZWNvcmRpbmdQcm9taXNlLnByb2dyZXNzRGxnLmNsaWNrU3RvcEJ1dHRvbigpOworICAgICAgICB9LCAxMCk7CisgICAgICAgIHJldHVybiAnJzsKKyAgICAgIH0pOworICAgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdlbmRSZWNvcmRpbmcnLCBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0ZXN0RGF0YSk7CisgICAgICB9KTsKKworICAgICAgdmFyIHJlY29yZGluZ1Byb21pc2UgPSB0ci51aS5lLmFib3V0X3RyYWNpbmcuYmVnaW5SZWNvcmRpbmcobW9jayk7CisKKyAgICAgIHJldHVybiByZWNvcmRpbmdQcm9taXNlLnRoZW4oCisgICAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgbW9jay5hc3NlcnRBbGxSZXF1ZXN0c0hhbmRsZWQoKTsKKyAgICAgICAgICAgIHZhciB0ZXN0RGF0YVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRlc3REYXRhKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChkYXRhLCB0ZXN0RGF0YVN0cmluZyk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgfSwKKyAgICAgICAgICBmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgcmVqZWN0KCdUaGlzIHNob3VsZCBuZXZlciBiZSByZWFjaGVkJyk7CisgICAgICAgICAgfSk7CisgICAgfSk7CisgIH0pOworCisgIHRlc3QoJ21vbml0b3JpbmcnLCBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgbW9jayA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuTW9ja1RyYWNpbmdDb250cm9sbGVyQ2xpZW50KCk7CisKKyAgICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnYmVnaW5Nb25pdG9yaW5nJywgZnVuY3Rpb24obW9uaXRvcmluZ09wdGlvbnMpIHsKKyAgICAgICAgYXNzZXJ0LnR5cGVPZihtb25pdG9yaW5nT3B0aW9ucy5jYXRlZ29yeUZpbHRlciwgJ3N0cmluZycpOworICAgICAgICBhc3NlcnQudHlwZU9mKG1vbml0b3JpbmdPcHRpb25zLnVzZVN5c3RlbVRyYWNpbmcsICdib29sZWFuJyk7CisgICAgICAgIGFzc2VydC50eXBlT2YobW9uaXRvcmluZ09wdGlvbnMudXNlU2FtcGxpbmcsICdib29sZWFuJyk7CisgICAgICAgIGFzc2VydC50eXBlT2YobW9uaXRvcmluZ09wdGlvbnMudHJhY2luZ1JlY29yZE1vZGUsICdzdHJpbmcnKTsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2FwdHVyZVByb21pc2UgPSB0ci51aS5lLmFib3V0X3RyYWNpbmcuY2FwdHVyZU1vbml0b3JpbmcobW9jayk7CisgICAgICAgICAgY2FwdHVyZVByb21pc2UudGhlbigKKyAgICAgICAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgIHZhciB0ZXN0RGF0YVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRlc3REYXRhKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZGF0YSwgdGVzdERhdGFTdHJpbmcpOworICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgMTApOworICAgICAgICByZXR1cm4gJyc7CisgICAgICB9KTsKKworICAgICAgbW9jay5leHBlY3RSZXF1ZXN0KCdjYXB0dXJlTW9uaXRvcmluZycsIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgZW5kUHJvbWlzZSA9IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5lbmRNb25pdG9yaW5nKG1vY2spOworICAgICAgICAgIGVuZFByb21pc2UudGhlbigKKyAgICAgICAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgIG1vY2suYXNzZXJ0QWxsUmVxdWVzdHNIYW5kbGVkKCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgMTApOworICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGVzdERhdGEpOworICAgICAgfSk7CisKKyAgICAgIG1vY2suZXhwZWN0UmVxdWVzdCgnZW5kTW9uaXRvcmluZycsIGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgIH0pOworCisgICAgICB0ci51aS5lLmFib3V0X3RyYWNpbmcuYmVnaW5Nb25pdG9yaW5nKG1vY2spOworICAgIH0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9zZWxlY3Rpb25fZGlhbG9nLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9zZWxlY3Rpb25fZGlhbG9nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE1MWJhOAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcvcmVjb3JkX3NlbGVjdGlvbl9kaWFsb2cuaHRtbApAQCAtMCwwICsxLDY4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL292ZXJsYXkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvaW5mb19iYXJfZ3JvdXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+CisKKzx0ZW1wbGF0ZSBpZD0icmVjb3JkLXNlbGVjdGlvbi1kaWFsb2ctdGVtcGxhdGUiPgorICA8c3R5bGU+CisgIC5jYXRlZ29yaWVzLWNvbHVtbi12aWV3IHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICAgIG1heC13aWR0aDogNjQwcHg7CisgICAgbWluLWhlaWdodDogMDsKKyAgICBtaW4td2lkdGg6IDA7CisgICAgb3BhY2l0eTogMTsKKyAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDFzIGVhc2UsIG1heC13aWR0aCAxcyBlYXNlLCBvcGFjaXR5IDFzIGVhc2U7CisgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7CisgIH0KKworICAuY2F0ZWdvcmllcy1jb2x1bW4tdmlldy1oaWRkZW4geworICAgIG1heC1oZWlnaHQ6IDA7CisgICAgbWF4LXdpZHRoOiAwOworICAgIG9wYWNpdHk6IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgfQorCisgIC5jYXRlZ29yaWVzLXNlbGVjdGlvbiB7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgfQorCisgIC5jYXRlZ29yeS1wcmVzZXRzIHsKKyAgICBwYWRkaW5nOiA0cHg7CisgIH0KKworICAuY2F0ZWdvcnktZGVzY3JpcHRpb24geworICAgIGNvbG9yOiAjYWFhOworICAgIGZvbnQtc2l6ZTogc21hbGw7CisgICAgbWF4LWhlaWdodDogMWVtOworICAgIG9wYWNpdHk6IDE7CisgICAgcGFkZGluZy1sZWZ0OiA0cHg7CisgICAgcGFkZGluZy1yaWdodDogNHB4OworICAgIHRleHQtYWxpZ246IHJpZ2h0OworICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMXMgZWFzZSwgb3BhY2l0eSAxcyBlYXNlOworICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5OworICB9CisKKyAgLmNhdGVnb3J5LWRlc2NyaXB0aW9uLWhpZGRlbiB7CisgICAgbWF4LWhlaWdodDogMDsKKyAgICBvcGFjaXR5OiAwOworICB9CisKKyAgLmRlZmF1bHQtZW5hYmxlZC1jYXRlZ29yaWVzLAorICAuZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzIHsKKyAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgcGFkZGluZzogNHB4OworICAgIHdpZHRoOiAzMDBweDsKKyAgfQorCisgIC5kZWZhdWx0LWVuYWJsZWQtY2F0ZWdvcmllcyA+IGRpdiwKKyAgLmRlZmF1bHQtZGlzYWJsZWQtY2F0ZWdvcmllcyA+IGRpdiB7CisgICAgcGFkZGluZzogNHB4OworICB9CisKKyAgLnRyYWNpbmctbW9kZXMgeworICAgIC13ZWJraXQtZmxleDogMSAwIGF1dG87CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJldmVyc2U7CisgICAgcGFkZGluZzogNHB4OworICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGRkOworICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZGRkOworICB9CisKKyAgLmRlZmF1bHQtZGlzYWJsZWQtY2F0ZWdvcmllcyB7CisgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZGRkOworICB9CisKKyAgLndhcm5pbmctZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGNvbG9yOiAjQkQyRTJFOworICAgIHdpZHRoOiAyLjBleDsKKyAgICBoZWlnaHQ6IDIuMGV4OworICAgIGJvcmRlci1yYWRpdXM6IDIuMGV4OworICAgIGJvcmRlcjogMXB4IHNvbGlkICNCRDJFMkU7CisgIH0KKworICAuY2F0ZWdvcmllcyB7CisgICAgZm9udC1zaXplOiA4MCU7CisgICAgcGFkZGluZzogMTBweDsKKyAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICB9CisKKyAgLmdyb3VwLXNlbGVjdG9ycyB7CisgICAgZm9udC1zaXplOiA4MCU7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7CisgICAgcGFkZGluZy1ib3R0b206IDZweDsKKyAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOworICB9CisKKyAgLmdyb3VwLXNlbGVjdG9ycyBidXR0b24geworICAgIHBhZGRpbmc6IDFweDsKKyAgfQorCisgIC5yZWNvcmQtc2VsZWN0aW9uLWRpYWxvZyAubGFiZWxlZC1vcHRpb24tZ3JvdXAgeworICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87CisgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGxlZnQ7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICB9CisKKyAgLnJlY29yZC1zZWxlY3Rpb24tZGlhbG9nIC5sYWJlbGVkLW9wdGlvbiB7CisgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkIHdoaXRlOworICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB3aGl0ZTsKKyAgfQorCisgIC5yZWNvcmQtc2VsZWN0aW9uLWRpYWxvZyAuZWRpdC1jYXRlZ29yaWVzIHsKKyAgICBwYWRkaW5nLWxlZnQ6IDZweDsKKyAgfQorCisgIC5yZWNvcmQtc2VsZWN0aW9uLWRpYWxvZyAuZWRpdC1jYXRlZ29yaWVzOmFmdGVyIHsKKyAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7CisgICAgZm9udC1zaXplOiAxMjUlOworICB9CisKKyAgLnJlY29yZC1zZWxlY3Rpb24tZGlhbG9nIC5sYWJlbGVkLW9wdGlvbi1ncm91cDpub3QoLmNhdGVnb3JpZXMtZXhwYW5kZWQpCisgICAgICAuZWRpdC1jYXRlZ29yaWVzOmFmdGVyIHsKKyAgICBjb250ZW50OiAnXDI1QjgnOyAvKiBSaWdodCB0cmlhbmdsZSAqLworICB9CisKKyAgLnJlY29yZC1zZWxlY3Rpb24tZGlhbG9nIC5sYWJlbGVkLW9wdGlvbi1ncm91cC5jYXRlZ29yaWVzLWV4cGFuZGVkCisgICAgICAuZWRpdC1jYXRlZ29yaWVzOmFmdGVyIHsKKyAgICBjb250ZW50OiAnXDI1QkUnOyAvKiBEb3duIHRyaWFuZ2xlICovCisgIH0KKworICA8L3N0eWxlPgorCisgIDxkaXYgY2xhc3M9InJlY29yZC1zZWxlY3Rpb24tZGlhbG9nIj4KKyAgICA8dHItdWktYi1pbmZvLWJhci1ncm91cD48L3RyLXVpLWItaW5mby1iYXItZ3JvdXA+CisgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcnktcHJlc2V0cyI+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcnktZGVzY3JpcHRpb24iPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNhdGVnb3JpZXMtY29sdW1uLXZpZXciPgorICAgICAgPGRpdiBjbGFzcz0idHJhY2luZy1tb2RlcyI+PC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yaWVzLXNlbGVjdGlvbiI+CisgICAgICAgIDxkaXYgY2xhc3M9ImRlZmF1bHQtZW5hYmxlZC1jYXRlZ29yaWVzIj4KKyAgICAgICAgICA8ZGl2PlJlY29yZCZuYnNwO0NhdGVnb3JpZXM8L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJncm91cC1zZWxlY3RvcnMiPgorICAgICAgICAgICAgU2VsZWN0CisgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhbGwtYnRuIj5BbGw8L2J1dHRvbj4KKyAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5vbmUtYnRuIj5Ob25lPC9idXR0b24+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY2F0ZWdvcmllcyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJkZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMiPgorICAgICAgICAgIDxkaXY+RGlzYWJsZWQmbmJzcDtieSZuYnNwO0RlZmF1bHQmbmJzcDtDYXRlZ29yaWVzCisgICAgICAgICAgICA8YSBjbGFzcz0id2FybmluZy1kZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMiPiE8L2E+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXAtc2VsZWN0b3JzIj4KKyAgICAgICAgICAgIFNlbGVjdAorICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWxsLWJ0biI+QWxsPC9idXR0b24+CisgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJub25lLWJ0biI+Tm9uZTwvYnV0dG9uPgorICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImNhdGVnb3JpZXMiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvdGVtcGxhdGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBSZWNvcmRTZWxlY3Rpb25EaWFsb2cgcHJlc2VudHMgdGhlIGF2YWlsYWJsZSBjYXRlZ29yaWVzCisgKiB0byBiZSBlbmFibGVkL2Rpc2FibGVkIGR1cmluZyB0ci5jLgorICovCit0ci5leHBvcnRUbygndHIudWkuZS5hYm91dF90cmFjaW5nJywgZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKKyAgdmFyIFJlY29yZFNlbGVjdGlvbkRpYWxvZyA9IHRyLnVpLmIuZGVmaW5lKCdkaXYnKTsKKworICB2YXIgREVGQVVMVF9QUkVTRVRTID0gWworICAgIHt0aXRsZTogJ1dlYiBkZXZlbG9wZXInLAorICAgICAgY2F0ZWdvcnlGaWx0ZXI6IFsnYmxpbmsnLCAnY2MnLCAnbmV0bG9nJywgJ3JlbmRlcmVyLnNjaGVkdWxlcicsCisgICAgICAgICd0b3BsZXZlbCcsICd2OCddfSwKKyAgICB7dGl0bGU6ICdJbnB1dCBsYXRlbmN5JywKKyAgICAgIGNhdGVnb3J5RmlsdGVyOiBbJ2JlbmNobWFyaycsICdpbnB1dCcsICdldmRldicsICdyZW5kZXJlci5zY2hlZHVsZXInLAorICAgICAgICAndG9wbGV2ZWwnXX0sCisgICAge3RpdGxlOiAnUmVuZGVyaW5nJywKKyAgICAgIGNhdGVnb3J5RmlsdGVyOiBbJ2JsaW5rJywgJ2NjJywgJ2dwdScsICd0b3BsZXZlbCddfSwKKyAgICB7dGl0bGU6ICdKYXZhc2NyaXB0IGFuZCByZW5kZXJpbmcnLAorICAgICAgY2F0ZWdvcnlGaWx0ZXI6IFsnYmxpbmsnLCAnY2MnLCAnZ3B1JywgJ3JlbmRlcmVyLnNjaGVkdWxlcicsICd2OCcsCisgICAgICAgICd0b3BsZXZlbCddfSwKKyAgICB7dGl0bGU6ICdGcmFtZSBWaWV3ZXInLAorICAgICAgY2F0ZWdvcnlGaWx0ZXI6IFsnYmxpbmsnLCAnY2MnLCAnZ3B1JywgJ3JlbmRlcmVyLnNjaGVkdWxlcicsICd2OCcsCisgICAgICAgICd0b3BsZXZlbCcsCisgICAgICAgICdkaXNhYmxlZC1ieS1kZWZhdWx0LWNjLmRlYnVnJywKKyAgICAgICAgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcucGljdHVyZSddfSwKKyAgICB7dGl0bGU6ICdNYW51YWxseSBzZWxlY3Qgc2V0dGluZ3MnLAorICAgICAgY2F0ZWdvcnlGaWx0ZXI6IFtdfQorICBdOworICB2YXIgUkVDT1JESU5HX01PREVTID0gWworICAgICAgeydsYWJlbCc6ICdSZWNvcmQgdW50aWwgZnVsbCcsCisgICAgICAgICd2YWx1ZSc6ICdyZWNvcmQtdW50aWwtZnVsbCd9LAorICAgICAgeydsYWJlbCc6ICdSZWNvcmQgY29udGludW91c2x5JywKKyAgICAgICAgJ3ZhbHVlJzogJ3JlY29yZC1jb250aW51b3VzbHknfSwKKyAgICAgIHsnbGFiZWwnOiAnUmVjb3JkIGFzIG11Y2ggYXMgcG9zc2libGUnLAorICAgICAgICAndmFsdWUnOiAncmVjb3JkLWFzLW11Y2gtYXMtcG9zc2libGUnfV07CisgIHZhciBERUZBVUxUX1JFQ09SRF9NT0RFID0gJ3JlY29yZC11bnRpbC1mdWxsJzsKKyAgdmFyIERFRkFVTFRfQ09OVElOVU9VU19UUkFDSU5HID0gdHJ1ZTsKKyAgdmFyIERFRkFVTFRfU1lTVEVNX1RSQUNJTkcgPSB0cnVlOworICB2YXIgREVGQVVMVF9TQU1QTElOR19UUkFDSU5HID0gZmFsc2U7CisKKyAgUmVjb3JkU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmIuT3ZlcmxheS5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0ci51aS5iLk92ZXJsYXkucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7CisgICAgICB0aGlzLnRpdGxlID0gJ1JlY29yZCBhIG5ldyB0cmFjZS4uLic7CisKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgncmVjb3JkLWRpYWxvZy1vdmVybGF5Jyk7CisKKyAgICAgIHZhciBub2RlID0KKyAgICAgICAgICB0ci51aS5iLmluc3RhbnRpYXRlVGVtcGxhdGUoJyNyZWNvcmQtc2VsZWN0aW9uLWRpYWxvZy10ZW1wbGF0ZScsCisgICAgICAgICAgVEhJU19ET0MpOworICAgICAgdGhpcy5hcHBlbmRDaGlsZChub2RlKTsKKworICAgICAgdGhpcy5yZWNvcmRCdXR0b25FbF8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICAgIHRoaXMucmVjb3JkQnV0dG9uRWxfLnRleHRDb250ZW50ID0gJ1JlY29yZCc7CisgICAgICB0aGlzLnJlY29yZEJ1dHRvbkVsXy5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICdjbGljaycsCisgICAgICAgICAgdGhpcy5vblJlY29yZEJ1dHRvbkNsaWNrZWRfLmJpbmQodGhpcykpOworICAgICAgdGhpcy5yZWNvcmRCdXR0b25FbF8uc3R5bGUuZm9udFNpemUgPSAnMTEwJSc7CisgICAgICB0aGlzLmJ1dHRvbnMuYXBwZW5kQ2hpbGQodGhpcy5yZWNvcmRCdXR0b25FbF8pOworCisgICAgICB0aGlzLmNhdGVnb3JpZXNWaWV3XyA9IHRoaXMucXVlcnlTZWxlY3RvcignLmNhdGVnb3JpZXMtY29sdW1uLXZpZXcnKTsKKyAgICAgIHRoaXMucHJlc2V0c0VsXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLmNhdGVnb3J5LXByZXNldHMnKTsKKyAgICAgIHRoaXMucHJlc2V0c0VsXy5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZU9wdGlvbkdyb3VwKAorICAgICAgICAgIHRoaXMsICdjdXJyZW50bHlDaG9zZW5QcmVzZXQnLAorICAgICAgICAgICdhYm91dF90cmFjaW5nLnJlY29yZF9zZWxlY3Rpb25fZGlhbG9nX3ByZXNldCcsCisgICAgICAgICAgREVGQVVMVF9QUkVTRVRTWzBdLmNhdGVnb3J5RmlsdGVyLAorICAgICAgICAgIERFRkFVTFRfUFJFU0VUUy5tYXAoZnVuY3Rpb24ocCkgeworICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IHAudGl0bGUsIHZhbHVlOiBwLmNhdGVnb3J5RmlsdGVyIH07CisgICAgICAgICAgfSkpKTsKKworICAgICAgdGhpcy50cmFjaW5nUmVjb3JkTW9kZVNsdHJfID0gdHIudWkuYi5jcmVhdGVTZWxlY3RvcigKKyAgICAgICAgICB0aGlzLCAndHJhY2luZ1JlY29yZE1vZGUnLAorICAgICAgICAgICdyZWNvcmRTZWxlY3Rpb25EaWFsb2cudHJhY2luZ1JlY29yZE1vZGUnLAorICAgICAgICAgIERFRkFVTFRfUkVDT1JEX01PREUsIFJFQ09SRElOR19NT0RFUyk7CisKKyAgICAgIHRoaXMuc3lzdGVtVHJhY2luZ0JuXyA9IHRyLnVpLmIuY3JlYXRlQ2hlY2tCb3goCisgICAgICAgICAgdW5kZWZpbmVkLCB1bmRlZmluZWQsCisgICAgICAgICAgJ3JlY29yZFNlbGVjdGlvbkRpYWxvZy51c2VTeXN0ZW1UcmFjaW5nJywgREVGQVVMVF9TWVNURU1fVFJBQ0lORywKKyAgICAgICAgICAnU3lzdGVtIHRyYWNpbmcnKTsKKyAgICAgIHRoaXMuc2FtcGxpbmdUcmFjaW5nQm5fID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCgKKyAgICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwKKyAgICAgICAgICAncmVjb3JkU2VsZWN0aW9uRGlhbG9nLnVzZVNhbXBsaW5nJywgREVGQVVMVF9TQU1QTElOR19UUkFDSU5HLAorICAgICAgICAgICdTdGF0ZSBzYW1wbGluZycpOworICAgICAgdGhpcy50cmFjaW5nTW9kZXNDb250YWluZXJFbF8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy50cmFjaW5nLW1vZGVzJyk7CisgICAgICB0aGlzLnRyYWNpbmdNb2Rlc0NvbnRhaW5lckVsXy5hcHBlbmRDaGlsZCh0aGlzLnRyYWNpbmdSZWNvcmRNb2RlU2x0cl8pOworICAgICAgdGhpcy50cmFjaW5nTW9kZXNDb250YWluZXJFbF8uYXBwZW5kQ2hpbGQodGhpcy5zeXN0ZW1UcmFjaW5nQm5fKTsKKyAgICAgIHRoaXMudHJhY2luZ01vZGVzQ29udGFpbmVyRWxfLmFwcGVuZENoaWxkKHRoaXMuc2FtcGxpbmdUcmFjaW5nQm5fKTsKKworCisgICAgICB0aGlzLmVuYWJsZWRDYXRlZ29yaWVzQ29udGFpbmVyRWxfID0KKyAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWVuYWJsZWQtY2F0ZWdvcmllcyAuY2F0ZWdvcmllcycpOworCisgICAgICB0aGlzLmRpc2FibGVkQ2F0ZWdvcmllc0NvbnRhaW5lckVsXyA9CisgICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCcuZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzIC5jYXRlZ29yaWVzJyk7CisKKyAgICAgIHRoaXMuY3JlYXRlR3JvdXBTZWxlY3RCdXR0b25zXygKKyAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWVuYWJsZWQtY2F0ZWdvcmllcycpKTsKKyAgICAgIHRoaXMuY3JlYXRlR3JvdXBTZWxlY3RCdXR0b25zXygKKyAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMnKSk7CisgICAgICB0aGlzLmNyZWF0ZURlZmF1bHREaXNhYmxlZFdhcm5pbmdEaWFsb2dfKAorICAgICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcignLndhcm5pbmctZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzJykpOworICAgICAgdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8gPSBmYWxzZTsKKworICAgICAgLy8gVE9ETyhjaHJpc2hlbnJ5KTogV2hlbiB1c2VkIHdpdGggdHIudWkuYi5PdmVybGF5IChzdWNoIGFzIGluCisgICAgICAvLyBjaHJvbWU6Ly90cmFjaW5nLCB0aGlzIGRvZXMgbm90IHlldCBsb29rIHF1aXRlIHJpZ2h0IGR1ZSB0bworICAgICAgLy8gdGhlIDEwcHggb3ZlcmxheSBjb250ZW50IHBhZGRpbmcgKGJ1dCBpdCdzIGdvb2QgZW5vdWdoKS4KKyAgICAgIHRoaXMuaW5mb0Jhckdyb3VwXyA9IHRoaXMucXVlcnlTZWxlY3RvcigndHItdWktYi1pbmZvLWJhci1ncm91cCcpOworCisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2libGUtY2hhbmdlJywgdGhpcy5vblZpc2libGVDaGFuZ2VfLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBzZXQgc3VwcG9ydHNTeXN0ZW1UcmFjaW5nKHMpIHsKKyAgICAgIGlmIChzKSB7CisgICAgICAgIHRoaXMuc3lzdGVtVHJhY2luZ0JuXy5zdHlsZS5kaXNwbGF5ID0gdW5kZWZpbmVkOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5zeXN0ZW1UcmFjaW5nQm5fLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgIHRoaXMudXNlU3lzdGVtVHJhY2luZyA9IGZhbHNlOworICAgICAgfQorICAgIH0sCisKKyAgICBnZXQgdHJhY2luZ1JlY29yZE1vZGUoKSB7CisgICAgICByZXR1cm4gdGhpcy50cmFjaW5nUmVjb3JkTW9kZVNsdHJfLnNlbGVjdGVkVmFsdWU7CisgICAgfSwKKyAgICBzZXQgdHJhY2luZ1JlY29yZE1vZGUodmFsdWUpIHsKKyAgICAgIHRoaXMudHJhY2luZ1JlY29yZE1vZGVfID0gdmFsdWU7CisgICAgfSwKKworICAgIGdldCB1c2VTeXN0ZW1UcmFjaW5nKCkgeworICAgICAgcmV0dXJuIHRoaXMuc3lzdGVtVHJhY2luZ0JuXy5jaGVja2VkOworICAgIH0sCisgICAgc2V0IHVzZVN5c3RlbVRyYWNpbmcodmFsdWUpIHsKKyAgICAgIHRoaXMuc3lzdGVtVHJhY2luZ0JuXy5jaGVja2VkID0gISF2YWx1ZTsKKyAgICB9LAorCisgICAgZ2V0IHVzZVNhbXBsaW5nKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2FtcGxpbmdUcmFjaW5nQm5fLmNoZWNrZWQ7CisgICAgfSwKKyAgICBzZXQgdXNlU2FtcGxpbmcodmFsdWUpIHsKKyAgICAgIHRoaXMuc2FtcGxpbmdUcmFjaW5nQm5fLmNoZWNrZWQgPSAhIXZhbHVlOworICAgIH0sCisKKyAgICBzZXQgY2F0ZWdvcmllcyhjKSB7CisgICAgICBpZiAoIShjIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhdGVnb3JpZXMgbXVzdCBiZSBhbiBhcnJheScpOworICAgICAgdGhpcy5jYXRlZ29yaWVzXyA9IGM7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jYXRlZ29yaWVzXy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgc3BsaXQgPSB0aGlzLmNhdGVnb3JpZXNfW2ldLnNwbGl0KCcsJyk7CisgICAgICAgIHRoaXMuY2F0ZWdvcmllc19baV0gPSBzcGxpdC5zaGlmdCgpOworICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMCkKKyAgICAgICAgICB0aGlzLmNhdGVnb3JpZXNfID0gdGhpcy5jYXRlZ29yaWVzXy5jb25jYXQoc3BsaXQpOworICAgICAgfQorICAgIH0sCisKKyAgICBzZXQgc2V0dGluZ3Nfa2V5KGspIHsKKyAgICAgIHRoaXMuc2V0dGluZ3Nfa2V5XyA9IGs7CisgICAgfSwKKworICAgIHNldCBzZXR0aW5ncyhzKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvbnQgdXNlIHRoaXMhJyk7CisgICAgfSwKKworICAgIHVzaW5nUHJlc2V0XzogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50bHlDaG9zZW5QcmVzZXRfLmxlbmd0aCA+IDAgfHwKKyAgICAgICAgICAgICB0aGlzLmlzUHJlc2V0U2VsZWN0ZWRfOworICAgIH0sCisKKyAgICBnZXQgY3VycmVudGx5Q2hvc2VuUHJlc2V0KCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0XzsKKyAgICB9LAorCisgICAgc2V0IGN1cnJlbnRseUNob3NlblByZXNldChwcmVzZXQpIHsKKyAgICAgIGlmICghKHByZXNldCBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWNvcmRTZWxlY3Rpb25EaWFsb2cuY3VycmVudGx5Q2hvc2VuUHJlc2V0OicgKworICAgICAgICAgICAgJyBwcmVzZXQgbXVzdCBiZSBhbiBhcnJheS4nKTsKKyAgICAgIHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0XyA9IHByZXNldDsKKyAgICAgIHRoaXMuaXNQcmVzZXRTZWxlY3RlZF8gPSBmYWxzZTsKKworICAgICAgaWYgKHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0Xy5sZW5ndGgpIHsKKyAgICAgICAgdGhpcy5pc1ByZXNldFNlbGVjdGVkXyA9IHRydWU7CisgICAgICAgIHRoaXMuY2hhbmdlRWRpdENhdGVnb3JpZXNTdGF0ZV8oZmFsc2UpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy51cGRhdGVDYXRlZ29yeUNvbHVtblZpZXdfKHRydWUpOworICAgICAgICB0aGlzLmNoYW5nZUVkaXRDYXRlZ29yaWVzU3RhdGVfKHRydWUpOworICAgICAgfQorICAgICAgdGhpcy51cGRhdGVNYW51YWxTZWxlY3Rpb25WaWV3XygpOworICAgICAgdGhpcy51cGRhdGVQcmVzZXREZXNjcmlwdGlvbl8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlTWFudWFsU2VsZWN0aW9uVmlld186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNsYXNzTGlzdCA9IHRoaXMuY2F0ZWdvcmllc1ZpZXdfLmNsYXNzTGlzdDsKKyAgICAgIGlmICghdGhpcy51c2luZ1ByZXNldF8oKSkgeworICAgICAgICBjbGFzc0xpc3QucmVtb3ZlKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHRoaXMuZWRpdENhdGVnb3JpZXNPcGVuZWRfKQorICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoJ2NhdGVnb3JpZXMtY29sdW1uLXZpZXctaGlkZGVuJyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBjbGFzc0xpc3QuYWRkKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpOworICAgICAgfQorICAgIH0sCisKKyAgICB1cGRhdGVDYXRlZ29yeUNvbHVtblZpZXdfOiBmdW5jdGlvbihzaG91bGRSZWFkRnJvbVNldHRpbmdzKSB7CisgICAgICB2YXIgY2F0ZWdvcnlTZXQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXRlZ29yaWVzJyk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3J5U2V0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBjYXRlZ29yeUdyb3VwID0gY2F0ZWdvcnlTZXRbaV0uY2hpbGRyZW47CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2F0ZWdvcnlHcm91cC5sZW5ndGg7ICsraikgeworICAgICAgICAgIHZhciBjYXRlZ29yeUVsID0gY2F0ZWdvcnlHcm91cFtqXS5jaGlsZHJlblswXTsKKyAgICAgICAgICBjYXRlZ29yeUVsLmNoZWNrZWQgPSBzaG91bGRSZWFkRnJvbVNldHRpbmdzID8KKyAgICAgICAgICAgICAgdHIuYi5TZXR0aW5ncy5nZXQoY2F0ZWdvcnlFbC52YWx1ZSwgZmFsc2UsIHRoaXMuc2V0dGluZ3Nfa2V5XykgOgorICAgICAgICAgICAgICBmYWxzZTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBvbkNsaWNrRWRpdENhdGVnb3JpZXM6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLnVzaW5nUHJlc2V0XygpKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGlmICghdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8pIHsKKyAgICAgICAgdGhpcy51cGRhdGVDYXRlZ29yeUNvbHVtblZpZXdfKGZhbHNlKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF8ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICB2YXIgY2F0ZWdvcnlFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKAorICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF9baV0pOworICAgICAgICAgIGlmICghY2F0ZWdvcnlFbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIGNhdGVnb3J5RWwuY2hlY2tlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgdGhpcy5jaGFuZ2VFZGl0Q2F0ZWdvcmllc1N0YXRlXyghdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8pOworICAgICAgdGhpcy51cGRhdGVNYW51YWxTZWxlY3Rpb25WaWV3XygpOworICAgICAgdGhpcy5yZWNvcmRCdXR0b25FbF8uZm9jdXMoKTsKKyAgICB9LAorCisgICAgY2hhbmdlRWRpdENhdGVnb3JpZXNTdGF0ZV86IGZ1bmN0aW9uKGVkaXRDYXRlZ29yaWVzU3RhdGUpIHsKKyAgICAgIHZhciBwcmVzZXRPcHRpb25zR3JvdXAgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5sYWJlbGVkLW9wdGlvbi1ncm91cCcpOworICAgICAgaWYgKCFwcmVzZXRPcHRpb25zR3JvdXApCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5lZGl0Q2F0ZWdvcmllc09wZW5lZF8gPSBlZGl0Q2F0ZWdvcmllc1N0YXRlOworICAgICAgaWYgKHRoaXMuZWRpdENhdGVnb3JpZXNPcGVuZWRfKQorICAgICAgICAgIHByZXNldE9wdGlvbnNHcm91cC5jbGFzc0xpc3QuYWRkKCdjYXRlZ29yaWVzLWV4cGFuZGVkJyk7CisgICAgICBlbHNlCisgICAgICAgICAgcHJlc2V0T3B0aW9uc0dyb3VwLmNsYXNzTGlzdC5yZW1vdmUoJ2NhdGVnb3JpZXMtZXhwYW5kZWQnKTsKKyAgICB9LAorCisgICAgdXBkYXRlUHJlc2V0RGVzY3JpcHRpb25fOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcignLmNhdGVnb3J5LWRlc2NyaXB0aW9uJyk7CisgICAgICBpZiAodGhpcy51c2luZ1ByZXNldF8oKSkgeworICAgICAgICBkZXNjcmlwdGlvbi5pbm5lclRleHQgPSB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF87CisgICAgICAgIGRlc2NyaXB0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NhdGVnb3J5LWRlc2NyaXB0aW9uLWhpZGRlbicpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgZGVzY3JpcHRpb24uaW5uZXJUZXh0ID0gJyc7CisgICAgICAgIGlmICghZGVzY3JpcHRpb24uY2xhc3NMaXN0LmNvbnRhaW5zKCdjYXRlZ29yeS1kZXNjcmlwdGlvbi1oaWRkZW4nKSkKKyAgICAgICAgICBkZXNjcmlwdGlvbi5jbGFzc0xpc3QuYWRkKCdjYXRlZ29yeS1kZXNjcmlwdGlvbi1oaWRkZW4nKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgY2F0ZWdvcnlGaWx0ZXI6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMudXNpbmdQcmVzZXRfKCkpIHsKKyAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBbXTsKKyAgICAgICAgdmFyIGFsbENhdGVnb3JpZXMgPSB0aGlzLmFsbENhdGVnb3JpZXNfKCk7CisgICAgICAgIGZvciAodmFyIGNhdGVnb3J5IGluIGFsbENhdGVnb3JpZXMpIHsKKyAgICAgICAgICB2YXIgZGlzYWJsZWQgPSBjYXRlZ29yeS5pbmRleE9mKCdkaXNhYmxlZC1ieS1kZWZhdWx0LScpID09IDA7CisgICAgICAgICAgaWYgKHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0Xy5pbmRleE9mKGNhdGVnb3J5KSA+PSAwKSB7CisgICAgICAgICAgICBpZiAoZGlzYWJsZWQpCisgICAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghZGlzYWJsZWQpCisgICAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaCgnLScgKyBjYXRlZ29yeSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjYXRlZ29yaWVzLmpvaW4oJywnKTsKKyAgICAgIH0KKworICAgICAgdmFyIGNhdGVnb3JpZXMgPSB0aGlzLnVuc2VsZWN0ZWRDYXRlZ29yaWVzXygpOworICAgICAgdmFyIGNhdGVnb3JpZXNfbGVuZ3RoID0gY2F0ZWdvcmllcy5sZW5ndGg7CisgICAgICB2YXIgbmVnYXRlZF9jYXRlZ29yaWVzID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVnb3JpZXNfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgLy8gU2tpcCBhbnkgY2F0ZWdvcnkgd2l0aCBhICwgYXMgaXQgd2lsbCBjYXVzZSBpc3N1ZXMgd2hlbiB3ZSBuZWdhdGUuCisgICAgICAgIC8vIEJvdGggc2lkZXMgc2hvdWxkIGhhdmUgYmVlbiBhZGRlZCBhcyBzZXBhcmF0ZSBjYXRlZ29yaWVzLCB0aGVzZSBjYW4KKyAgICAgICAgLy8gb25seSBjb21lIGZyb20gc2V0dGluZ3MuCisgICAgICAgIGlmIChjYXRlZ29yaWVzW2ldLm1hdGNoKC8sLykpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIG5lZ2F0ZWRfY2F0ZWdvcmllcy5wdXNoKCctJyArIGNhdGVnb3JpZXNbaV0pOworICAgICAgfQorICAgICAgY2F0ZWdvcmllcyA9IG5lZ2F0ZWRfY2F0ZWdvcmllcy5qb2luKCcsJyk7CisKKyAgICAgIHZhciBkaXNhYmxlZENhdGVnb3JpZXMgPSB0aGlzLmVuYWJsZWREaXNhYmxlZEJ5RGVmYXVsdENhdGVnb3JpZXNfKCk7CisgICAgICBkaXNhYmxlZENhdGVnb3JpZXMgPSBkaXNhYmxlZENhdGVnb3JpZXMuam9pbignLCcpOworCisgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgaWYgKGNhdGVnb3JpZXMgIT09ICcnKQorICAgICAgICByZXN1bHRzLnB1c2goY2F0ZWdvcmllcyk7CisgICAgICBpZiAoZGlzYWJsZWRDYXRlZ29yaWVzICE9PSAnJykKKyAgICAgICAgcmVzdWx0cy5wdXNoKGRpc2FibGVkQ2F0ZWdvcmllcyk7CisgICAgICByZXR1cm4gcmVzdWx0cy5qb2luKCcsJyk7CisgICAgfSwKKworICAgIGNsaWNrUmVjb3JkQnV0dG9uOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucmVjb3JkQnV0dG9uRWxfLmNsaWNrKCk7CisgICAgfSwKKworICAgIG9uUmVjb3JkQnV0dG9uQ2xpY2tlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7CisgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3JlY29yZGNsaWNrJyk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGNvbGxlY3RJbnB1dHNfOiBmdW5jdGlvbihpbnB1dHMsIGlzQ2hlY2tlZCkgeworICAgICAgdmFyIGlucHV0c19sZW5ndGggPSBpbnB1dHMubGVuZ3RoOworICAgICAgdmFyIGNhdGVnb3JpZXMgPSBbXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzX2xlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBpbnB1dCA9IGlucHV0c1tpXTsKKyAgICAgICAgaWYgKGlucHV0LmNoZWNrZWQgPT09IGlzQ2hlY2tlZCkKKyAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goaW5wdXQudmFsdWUpOworICAgICAgfQorICAgICAgcmV0dXJuIGNhdGVnb3JpZXM7CisgICAgfSwKKworICAgIHVuc2VsZWN0ZWRDYXRlZ29yaWVzXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgaW5wdXRzID0KKyAgICAgICAgICB0aGlzLmVuYWJsZWRDYXRlZ29yaWVzQ29udGFpbmVyRWxfLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0Jyk7CisgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0SW5wdXRzXyhpbnB1dHMsIGZhbHNlKTsKKyAgICB9LAorCisgICAgZW5hYmxlZERpc2FibGVkQnlEZWZhdWx0Q2F0ZWdvcmllc186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGlucHV0cyA9CisgICAgICAgICAgdGhpcy5kaXNhYmxlZENhdGVnb3JpZXNDb250YWluZXJFbF8ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKTsKKyAgICAgIHJldHVybiB0aGlzLmNvbGxlY3RJbnB1dHNfKGlucHV0cywgdHJ1ZSk7CisgICAgfSwKKworICAgIG9uVmlzaWJsZUNoYW5nZV86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMudmlzaWJsZSkKKyAgICAgICAgdGhpcy51cGRhdGVGb3JtXygpOworICAgIH0sCisKKyAgICBidWlsZElucHV0c186IGZ1bmN0aW9uKGlucHV0cywgY2hlY2tlZERlZmF1bHQsIHBhcmVudCkgeworICAgICAgdmFyIGlucHV0c19sZW5ndGggPSBpbnB1dHMubGVuZ3RoOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHNfbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGNhdGVnb3J5ID0gaW5wdXRzW2ldOworCisgICAgICAgIHZhciBpbnB1dEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKyAgICAgICAgaW5wdXRFbC50eXBlID0gJ2NoZWNrYm94JzsKKyAgICAgICAgaW5wdXRFbC5pZCA9IGNhdGVnb3J5OworICAgICAgICBpbnB1dEVsLnZhbHVlID0gY2F0ZWdvcnk7CisKKyAgICAgICAgaW5wdXRFbC5jaGVja2VkID0gdHIuYi5TZXR0aW5ncy5nZXQoCisgICAgICAgICAgICBjYXRlZ29yeSwgY2hlY2tlZERlZmF1bHQsIHRoaXMuc2V0dGluZ3Nfa2V5Xyk7CisgICAgICAgIGlucHV0RWwub25jbGljayA9IHRoaXMudXBkYXRlU2V0dGluZ18uYmluZCh0aGlzKTsKKworICAgICAgICB2YXIgbGFiZWxFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7CisgICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBjYXRlZ29yeS5yZXBsYWNlKCdkaXNhYmxlZC1ieS1kZWZhdWx0LScsICcnKTsKKyAgICAgICAgbGFiZWxFbC5zZXRBdHRyaWJ1dGUoJ2ZvcicsIGNhdGVnb3J5KTsKKworICAgICAgICB2YXIgZGl2RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgZGl2RWwuYXBwZW5kQ2hpbGQoaW5wdXRFbCk7CisgICAgICAgIGRpdkVsLmFwcGVuZENoaWxkKGxhYmVsRWwpOworCisgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChkaXZFbCk7CisgICAgICB9CisgICAgfSwKKworICAgIGFsbENhdGVnb3JpZXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIERlZHVwIHRoZSBjYXRlZ29yaWVzLiBXZSBtYXkgaGF2ZSB0aGluZ3MgaW4gc2V0dGluZ3MgdGhhdCBhcmUgYWxzbworICAgICAgLy8gcmV0dXJuZWQgd2hlbiB3ZSBxdWVyeSB0aGUgY2F0ZWdvcnkgbGlzdC4KKyAgICAgIHZhciBjYXRlZ29yeVNldCA9IHt9OworICAgICAgdmFyIGFsbENhdGVnb3JpZXMgPQorICAgICAgICAgIHRoaXMuY2F0ZWdvcmllc18uY29uY2F0KHRyLmIuU2V0dGluZ3Mua2V5cyh0aGlzLnNldHRpbmdzX2tleV8pKTsKKyAgICAgIHZhciBhbGxDYXRlZ29yaWVzTGVuZ3RoID0gYWxsQ2F0ZWdvcmllcy5sZW5ndGg7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbENhdGVnb3JpZXNMZW5ndGg7ICsraSkKKyAgICAgICAgY2F0ZWdvcnlTZXRbYWxsQ2F0ZWdvcmllc1tpXV0gPSB0cnVlOworICAgICAgcmV0dXJuIGNhdGVnb3J5U2V0OworICAgIH0sCisKKyAgICB1cGRhdGVGb3JtXzogZnVuY3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiBpZ25vcmVDYXNlQ29tcGFyZShhLCBiKSB7CisgICAgICAgIHJldHVybiBhLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShiLnRvTG93ZXJDYXNlKCkpOworICAgICAgfQorCisgICAgICB0aGlzLmVuYWJsZWRDYXRlZ29yaWVzQ29udGFpbmVyRWxfLmlubmVySFRNTCA9ICcnOyAvLyBDbGVhciBvbGQgY2F0ZWdvcmllcworICAgICAgdGhpcy5kaXNhYmxlZENhdGVnb3JpZXNDb250YWluZXJFbF8uaW5uZXJIVE1MID0gJyc7CisKKyAgICAgIHRoaXMucmVjb3JkQnV0dG9uRWxfLmZvY3VzKCk7CisKKyAgICAgIHZhciBhbGxDYXRlZ29yaWVzID0gdGhpcy5hbGxDYXRlZ29yaWVzXygpOworICAgICAgdmFyIGNhdGVnb3JpZXMgPSBbXTsKKyAgICAgIHZhciBkaXNhYmxlZENhdGVnb3JpZXMgPSBbXTsKKyAgICAgIGZvciAodmFyIGNhdGVnb3J5IGluIGFsbENhdGVnb3JpZXMpIHsKKyAgICAgICAgaWYgKGNhdGVnb3J5LmluZGV4T2YoJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtJykgPT0gMCkKKyAgICAgICAgICBkaXNhYmxlZENhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpOworICAgICAgfQorICAgICAgZGlzYWJsZWRDYXRlZ29yaWVzID0gZGlzYWJsZWRDYXRlZ29yaWVzLnNvcnQoaWdub3JlQ2FzZUNvbXBhcmUpOworICAgICAgY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXMuc29ydChpZ25vcmVDYXNlQ29tcGFyZSk7CisKKyAgICAgIGlmICh0aGlzLmNhdGVnb3JpZXNfLmxlbmd0aCA9PSAwKSB7CisgICAgICAgIHRoaXMuaW5mb0Jhckdyb3VwXy5hZGRNZXNzYWdlKAorICAgICAgICAgICAgJ05vIGNhdGVnb3JpZXMgZm91bmQ7IHJlY29yZGluZyB3aWxsIHVzZSBkZWZhdWx0IGNhdGVnb3JpZXMuJyk7CisgICAgICB9CisKKyAgICAgIHRoaXMuYnVpbGRJbnB1dHNfKGNhdGVnb3JpZXMsIHRydWUsIHRoaXMuZW5hYmxlZENhdGVnb3JpZXNDb250YWluZXJFbF8pOworCisgICAgICBpZiAoZGlzYWJsZWRDYXRlZ29yaWVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgdGhpcy5kaXNhYmxlZENhdGVnb3JpZXNDb250YWluZXJFbF8uaGlkZGVuID0gZmFsc2U7CisgICAgICAgIHRoaXMuYnVpbGRJbnB1dHNfKGRpc2FibGVkQ2F0ZWdvcmllcywgZmFsc2UsCisgICAgICAgICAgICB0aGlzLmRpc2FibGVkQ2F0ZWdvcmllc0NvbnRhaW5lckVsXyk7CisgICAgICB9CisgICAgfSwKKworICAgIHVwZGF0ZVNldHRpbmdfOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgY2hlY2tib3ggPSBlLnRhcmdldDsKKyAgICAgIHRyLmIuU2V0dGluZ3Muc2V0KGNoZWNrYm94LnZhbHVlLCBjaGVja2JveC5jaGVja2VkLCB0aGlzLnNldHRpbmdzX2tleV8pOworCisgICAgICAvLyBDaGFuZ2UgdGhlIGN1cnJlbnQgcmVjb3JkIG1vZGUgdG8gJ01hbnVhbGx5IHNlbGVjdCBzZXR0aW5ncycgZnJvbQorICAgICAgLy8gcHJlc2V0IG1vZGUgaWYgYW5kIG9ubHkgaWYgY3VycmVudGx5IHVzZXIgaXMgaW4gcHJlc2V0IHJlY29yZCBtb2RlCisgICAgICAvLyBhbmQgdXNlciBzZWxlY3RzL2Rlc2VsZWN0cyBhbnkgY2F0ZWdvcnkgaW4gJ0VkaXQgQ2F0ZWdvcmllcycgbW9kZS4KKyAgICAgIGlmICh0aGlzLnVzaW5nUHJlc2V0XygpKSB7CisgICAgICAgIGlmIChjaGVja2JveC5jaGVja2VkKSB7CisgICAgICAgICAgdGhpcy5jdXJyZW50bHlDaG9zZW5QcmVzZXRfLnB1c2goY2hlY2tib3gudmFsdWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHZhciBwb3MgPSB0aGlzLmN1cnJlbnRseUNob3NlblByZXNldF8ubGFzdEluZGV4T2YoY2hlY2tib3gudmFsdWUpOworICAgICAgICAgIHRoaXMuY3VycmVudGx5Q2hvc2VuUHJlc2V0Xy5zcGxpY2UocG9zLCAxKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgY2F0ZWdvcnlFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKAorICAgICAgICAgICAgJ2NhdGVnb3J5LXByZXNldC1NYW51YWxseS1zZWxlY3Qtc2V0dGluZ3MnKTsKKyAgICAgICAgY2F0ZWdvcnlFbC5jaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcuY2F0ZWdvcnktZGVzY3JpcHRpb24nKTsKKyAgICAgICAgZGVzY3JpcHRpb24uaW5uZXJUZXh0ID0gJyc7CisgICAgICAgIGRlc2NyaXB0aW9uLmNsYXNzTGlzdC5hZGQoJ2NhdGVnb3J5LWRlc2NyaXB0aW9uLWhpZGRlbicpOworICAgICAgfQorICAgIH0sCisKKyAgICBjcmVhdGVHcm91cFNlbGVjdEJ1dHRvbnNfOiBmdW5jdGlvbihwYXJlbnQpIHsKKyAgICAgIHZhciBmbGlwSW5wdXRzID0gZnVuY3Rpb24oZGlyKSB7CisgICAgICAgIHZhciBpbnB1dHMgPSBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICBpZiAoaW5wdXRzW2ldLmNoZWNrZWQgPT09IGRpcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgIC8vIGNsaWNrKCkgaXMgdXNlZCBzbyB0aGUgc2V0dGluZ3Mgd2lsbCBiZSBjb3JyZWNsdHkgc3RvcmVkLiBTZXR0aW5nCisgICAgICAgICAgLy8gY2hlY2tlZCBkb2VzIG5vdCB0cmlnZ2VyIHRoZSBvbmNsaWNrIChvciBvbmNoYW5nZSkgY2FsbGJhY2suCisgICAgICAgICAgaW5wdXRzW2ldLmNsaWNrKCk7CisgICAgICAgIH0KKyAgICAgIH07CisKKyAgICAgIHZhciBhbGxCdG4gPSBwYXJlbnQucXVlcnlTZWxlY3RvcignLmFsbC1idG4nKTsKKyAgICAgIGFsbEJ0bi5vbmNsaWNrID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgIGZsaXBJbnB1dHModHJ1ZSk7CisgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgfTsKKworICAgICAgdmFyIG5vbmVCdG4gPSBwYXJlbnQucXVlcnlTZWxlY3RvcignLm5vbmUtYnRuJyk7CisgICAgICBub25lQnRuLm9uY2xpY2sgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgZmxpcElucHV0cyhmYWxzZSk7CisgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgfTsKKyAgICB9LAorCisgICAgc2V0V2FybmluZ0RpYWxvZ092ZXJsYXlUZXh0XzogZnVuY3Rpb24obWVzc2FnZXMpIHsKKyAgICAgIHZhciBjb250ZW50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbWVzc2FnZURpdi50ZXh0Q29udGVudCA9IG1lc3NhZ2VzW2ldOworICAgICAgICBjb250ZW50RGl2LmFwcGVuZENoaWxkKG1lc3NhZ2VEaXYpOworICAgICAgfQorICAgICAgdGhpcy53YXJuaW5nT3ZlcmxheV8udGV4dENvbnRlbnQgPSAnJzsKKyAgICAgIHRoaXMud2FybmluZ092ZXJsYXlfLmFwcGVuZENoaWxkKGNvbnRlbnREaXYpOworICAgIH0sCisKKyAgICBjcmVhdGVEZWZhdWx0RGlzYWJsZWRXYXJuaW5nRGlhbG9nXzogZnVuY3Rpb24od2FybmluZ0xpbmspIHsKKyAgICAgIGZ1bmN0aW9uIG9uQ2xpY2tIYW5kbGVyKGV2dCkgeworICAgICAgICB0aGlzLndhcm5pbmdPdmVybGF5XyA9IHRyLnVpLmIuT3ZlcmxheSgpOworICAgICAgICB0aGlzLndhcm5pbmdPdmVybGF5Xy5wYXJlbnRFbF8gPSB0aGlzOworICAgICAgICB0aGlzLndhcm5pbmdPdmVybGF5Xy50aXRsZSA9ICdXYXJuaW5nLi4uJzsKKyAgICAgICAgdGhpcy53YXJuaW5nT3ZlcmxheV8udXNlckNhbkNsb3NlID0gdHJ1ZTsKKyAgICAgICAgdGhpcy53YXJuaW5nT3ZlcmxheV8udmlzaWJsZSA9IHRydWU7CisKKyAgICAgICAgdGhpcy5zZXRXYXJuaW5nRGlhbG9nT3ZlcmxheVRleHRfKFsKKyAgICAgICAgICAnRW5hYmxpbmcgdGhlIGRlZmF1bHQgZGlzYWJsZWQgY2F0ZWdvcmllcyBtYXkgaGF2ZScsCisgICAgICAgICAgJ3BlcmZvcm1hbmNlIGFuZCBtZW1vcnkgaW1wYWN0IHdoaWxlIHRyLmMuJworICAgICAgICBdKTsKKworICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgIH0KKyAgICAgIHdhcm5pbmdMaW5rLm9uY2xpY2sgPSBvbkNsaWNrSGFuZGxlci5iaW5kKHRoaXMpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFJlY29yZFNlbGVjdGlvbkRpYWxvZzogUmVjb3JkU2VsZWN0aW9uRGlhbG9nCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfc2VsZWN0aW9uX2RpYWxvZ190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9zZWxlY3Rpb25fZGlhbG9nX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjdiZDYwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy9yZWNvcmRfc2VsZWN0aW9uX2RpYWxvZ190ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3JlY29yZF9zZWxlY3Rpb25fZGlhbG9nLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NldHRpbmdzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICB0ZXN0KCdpbnN0YW50aXRhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY2F0ZWdvcmllcyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzA7IGkrKykKKyAgICAgIGNhdGVnb3JpZXMucHVzaCgnY2F0LScgKyBpKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwOyBpKyspCisgICAgICBjYXRlZ29yaWVzLnB1c2goJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2F0LScgKyBpKTsKKyAgICBjYXRlZ29yaWVzLnB1c2goJ3JlYWxseS1yZWFsbHktcmVhbGx5LXJlYWxseS1yZWFsbHktcmVhbGx5LXZlcnktbG9vbmctY2F0Jyk7CisgICAgY2F0ZWdvcmllcy5wdXNoKCdmaXJzdCxzZWNvbmQsdGhpcmQnKTsKKyAgICBjYXRlZ29yaWVzLnB1c2goJ2NjLGRpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnKTsKKworICAgIHZhciBkbGcgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOworICAgIGRsZy5jYXRlZ29yaWVzID0gY2F0ZWdvcmllczsKKyAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2tleSc7CisgICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOworCisgICAgdmFyIHNob3dCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICBzaG93QnV0dG9uLnRleHRDb250ZW50ID0gJ1Nob3cgcmVjb3JkIHNlbGVjdGlvbiBkaWFsb2cnOworICAgIHNob3dCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CisgICAgICBkbGcudmlzaWJsZSA9IHRydWU7CisgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIH0pOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChzaG93QnV0dG9uKTsKKyAgfSk7CisKKyAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX3NwbGl0Q2F0ZWdvcmllcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkbGcgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOworICAgIGRsZy5jYXRlZ29yaWVzID0KKyAgICAgICAgWydjYyxkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZSxjYy5kZWJ1ZycsICd0d28sdGhyZWUnLCAndGhyZWUnXTsKKyAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2tleSc7CisgICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOworICAgIGRsZy51cGRhdGVGb3JtXygpOworCisgICAgdmFyIGV4cGVjdGVkID0KKyAgICAgICAgWyciY2MiJywgJyJjYy5kZWJ1ZyInLCAnImRpc2FibGVkLWJ5LWRlZmF1bHQtb25lIicsICcidGhyZWUiJywgJyJ0d28iJ107CisKKyAgICB2YXIgbGFiZWxzID0gZGxnLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXRlZ29yaWVzIGlucHV0Jyk7CisgICAgdmFyIHJlc3VsdHMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhYmVscy5sZW5ndGg7IGkrKykgeworICAgICAgcmVzdWx0cy5wdXNoKCciJyArIGxhYmVsc1tpXS52YWx1ZSArICciJyk7CisgICAgfQorICAgIHJlc3VsdHMgPSByZXN1bHRzLnNvcnQoKTsKKworICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0cywgZXhwZWN0ZWQpOworICB9KTsKKworICB0ZXN0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2dfVXBkYXRlRm9ybV9Ob1NldHRpbmdzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuUmVjb3JkU2VsZWN0aW9uRGlhbG9nKCk7CisgICAgZGxnLmNhdGVnb3JpZXMgPSBbJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJywgJ3R3bycsICd0aHJlZSddOworICAgIGRsZy5zZXR0aW5nc19rZXkgPSAna2V5JzsKKyAgICBkbGcuY3VycmVudGx5Q2hvc2VuUHJlc2V0ID0gW107CisgICAgZGxnLnVwZGF0ZUZvcm1fKCk7CisKKyAgICB2YXIgY2hlY2tib3hlcyA9IGRsZy5xdWVyeVNlbGVjdG9yQWxsKCcuY2F0ZWdvcmllcyBpbnB1dCcpOworICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMF0uaWQsICd0aHJlZScpOworICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzBdLnZhbHVlLCAndGhyZWUnKTsKKyAgICBhc3NlcnQuaXNUcnVlKGNoZWNrYm94ZXNbMF0uY2hlY2tlZCk7CisgICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMV0uaWQsICd0d28nKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1sxXS52YWx1ZSwgJ3R3bycpOworICAgIGFzc2VydC5pc1RydWUoY2hlY2tib3hlc1sxXS5jaGVja2VkKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1syXS5pZCwgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMl0udmFsdWUsICdkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZScpOworICAgIGFzc2VydC5pc0ZhbHNlKGNoZWNrYm94ZXNbMl0uY2hlY2tlZCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICcnKTsKKworICAgIHZhciBsYWJlbHMgPSBkbGcucXVlcnlTZWxlY3RvckFsbCgnLmNhdGVnb3JpZXMgbGFiZWwnKTsKKyAgICBhc3NlcnQuZXF1YWwobGFiZWxzLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxdWFsKGxhYmVsc1swXS50ZXh0Q29udGVudCwgJ3RocmVlJyk7CisgICAgYXNzZXJ0LmVxdWFsKGxhYmVsc1sxXS50ZXh0Q29udGVudCwgJ3R3bycpOworICAgIGFzc2VydC5lcXVhbChsYWJlbHNbMl0udGV4dENvbnRlbnQsICdvbmUnKTsKKyAgfSk7CisKKyAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX1VwZGF0ZUZvcm1fU2V0dGluZ3MnLCBmdW5jdGlvbigpIHsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgndHdvJywgdHJ1ZSwgJ2NhdGVnb3JpZXMnKTsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgndGhyZWUnLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKTsKKworICAgIHZhciBkbGcgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOworICAgIGRsZy5jYXRlZ29yaWVzID0gWydkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZSddOworICAgIGRsZy5zZXR0aW5nc19rZXkgPSAnY2F0ZWdvcmllcyc7CisgICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOworICAgIGRsZy51cGRhdGVGb3JtXygpOworCisgICAgdmFyIGNoZWNrYm94ZXMgPSBkbGcucXVlcnlTZWxlY3RvckFsbCgnLmNhdGVnb3JpZXMgaW5wdXQnKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlcy5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzBdLmlkLCAndGhyZWUnKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1swXS52YWx1ZSwgJ3RocmVlJyk7CisgICAgYXNzZXJ0LmlzRmFsc2UoY2hlY2tib3hlc1swXS5jaGVja2VkKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1sxXS5pZCwgJ3R3bycpOworICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzFdLnZhbHVlLCAndHdvJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShjaGVja2JveGVzWzFdLmNoZWNrZWQpOworICAgIGFzc2VydC5lcXVhbChjaGVja2JveGVzWzJdLmlkLCAnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1syXS52YWx1ZSwgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJyk7CisgICAgYXNzZXJ0LmlzRmFsc2UoY2hlY2tib3hlc1syXS5jaGVja2VkKTsKKworICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJy10aHJlZScpOworCisgICAgdmFyIGxhYmVscyA9IGRsZy5xdWVyeVNlbGVjdG9yQWxsKCcuY2F0ZWdvcmllcyBsYWJlbCcpOworICAgIGFzc2VydC5lcXVhbChsYWJlbHMubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwobGFiZWxzWzBdLnRleHRDb250ZW50LCAndGhyZWUnKTsKKyAgICBhc3NlcnQuZXF1YWwobGFiZWxzWzFdLnRleHRDb250ZW50LCAndHdvJyk7CisgICAgYXNzZXJ0LmVxdWFsKGxhYmVsc1syXS50ZXh0Q29udGVudCwgJ29uZScpOworICB9KTsKKworICB0ZXN0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2dfVXBkYXRlRm9ybV9EaXNhYmxlZEJ5RGVmYXVsdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkbGcgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOworICAgIGRsZy5jYXRlZ29yaWVzID0gWydkaXNhYmxlZC1ieS1kZWZhdWx0LWJhcicsICdiYXonXTsKKyAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOworICAgIGRsZy5jdXJyZW50bHlDaG9zZW5QcmVzZXQgPSBbXTsKKyAgICBkbGcudXBkYXRlRm9ybV8oKTsKKworICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJycpOworCisgICAgdmFyIGlucHV0cyA9CisgICAgICAgIGRsZy5xdWVyeVNlbGVjdG9yKCdpbnB1dCNkaXNhYmxlZC1ieS1kZWZhdWx0LWJhcicpLmNsaWNrKCk7CisKKyAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICdkaXNhYmxlZC1ieS1kZWZhdWx0LWJhcicpOworCisgICAgYXNzZXJ0LmlzRmFsc2UoCisgICAgICAgIHRyLmIuU2V0dGluZ3MuZ2V0KCdkaXNhYmxlZC1ieS1kZWZhdWx0LWZvbycsIGZhbHNlLCAnY2F0ZWdvcmllcycpKTsKKyAgfSk7CisKKyAgdGVzdCgnc2VsZWN0QWxsJywgZnVuY3Rpb24oKSB7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3R3bycsIHRydWUsICdjYXRlZ29yaWVzJyk7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJyk7CisKKyAgICB2YXIgZGxnID0gbmV3IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5SZWNvcmRTZWxlY3Rpb25EaWFsb2coKTsKKyAgICBkbGcuY2F0ZWdvcmllcyA9IFsnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnXTsKKyAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOworICAgIGRsZy5jdXJyZW50bHlDaG9zZW5QcmVzZXQgPSBbXTsKKyAgICBkbGcudXBkYXRlRm9ybV8oKTsKKyAgfSk7CisKKyAgdGVzdCgnc2VsZWN0Tm9uZScsIGZ1bmN0aW9uKCkgeworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0d28nLCB0cnVlLCAnY2F0ZWdvcmllcycpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0aHJlZScsIGZhbHNlLCAnY2F0ZWdvcmllcycpOworCisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuUmVjb3JkU2VsZWN0aW9uRGlhbG9nKCk7CisgICAgZGxnLmNhdGVnb3JpZXMgPSBbJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJ107CisgICAgZGxnLnNldHRpbmdzX2tleSA9ICdjYXRlZ29yaWVzJzsKKyAgICBkbGcuY3VycmVudGx5Q2hvc2VuUHJlc2V0ID0gW107CisgICAgZGxnLnVwZGF0ZUZvcm1fKCk7CisKKyAgICAvLyBFbmFibGVzIHRoZSB0aHJlZSBvcHRpb24sIHR3byBhbHJlYWR5IGVuYWJsZWQuCisgICAgZGxnLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWVuYWJsZWQtY2F0ZWdvcmllcyAuYWxsLWJ0bicpLmNsaWNrKCk7CisgICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLCAnJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0ci5iLlNldHRpbmdzLmdldCgndGhyZWUnLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKSk7CisKKyAgICAvLyBEaXNhYmxlcyB0aHJlZSBhbmQgdHdvLgorICAgIGRsZy5xdWVyeVNlbGVjdG9yKCcuZGVmYXVsdC1lbmFibGVkLWNhdGVnb3JpZXMgLm5vbmUtYnRuJykuY2xpY2soKTsKKyAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICctdGhyZWUsLXR3bycpOworICAgIGFzc2VydC5pc0ZhbHNlKHRyLmIuU2V0dGluZ3MuZ2V0KCd0d28nLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKSk7CisgICAgYXNzZXJ0LmlzRmFsc2UodHIuYi5TZXR0aW5ncy5nZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJykpOworCisgICAgLy8gVHVybiBjYXRlZ29yaWVzIGJhY2sgb24gc28gdGhleSBjYW4gYmUgaWdub3JlZC4KKyAgICBkbGcucXVlcnlTZWxlY3RvcignLmRlZmF1bHQtZW5hYmxlZC1jYXRlZ29yaWVzIC5hbGwtYnRuJykuY2xpY2soKTsKKworICAgIC8vIEVuYWJsZXMgZGlzYWJsZWQgY2F0ZWdvcnkuCisgICAgZGxnLnF1ZXJ5U2VsZWN0b3IoJy5kZWZhdWx0LWRpc2FibGVkLWNhdGVnb3JpZXMgLmFsbC1idG4nKS5jbGljaygpOworICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZSgKKyAgICAgICAgdHIuYi5TZXR0aW5ncy5nZXQoJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJywgZmFsc2UsICdjYXRlZ29yaWVzJykpOworCisgICAgLy8gVHVybiBkaXNhYmxlZCBieSBkZWZhdWx0IGJhY2sgb2ZmLgorICAgIGRsZy5xdWVyeVNlbGVjdG9yKCcuZGVmYXVsdC1kaXNhYmxlZC1jYXRlZ29yaWVzIC5ub25lLWJ0bicpLmNsaWNrKCk7CisgICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLCAnJyk7CisgICAgYXNzZXJ0LmlzRmFsc2UoCisgICAgICAgIHRyLmIuU2V0dGluZ3MuZ2V0KCdkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZScsIGZhbHNlLCAnY2F0ZWdvcmllcycpKTsKKyAgfSk7CisKKyAgdGVzdCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nX25vUHJlc2V0JywgZnVuY3Rpb24oKSB7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ2Fib3V0X3RyYWNpbmcucmVjb3JkX3NlbGVjdGlvbl9kaWFsb2dfcHJlc2V0JywgW10pOworICAgIHZhciBkbGcgPSBuZXcgdHIudWkuZS5hYm91dF90cmFjaW5nLlJlY29yZFNlbGVjdGlvbkRpYWxvZygpOworICAgIGFzc2VydC5pc0ZhbHNlKGRsZy51c2luZ1ByZXNldF8oKSk7CisgIH0pOworCisgIHRlc3QoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZ19kZWZhdWx0UHJlc2V0JywgZnVuY3Rpb24oKSB7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3R3bycsIHRydWUsICdjYXRlZ29yaWVzJyk7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJyk7CisKKyAgICB2YXIgZGxnID0gbmV3IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5SZWNvcmRTZWxlY3Rpb25EaWFsb2coKTsKKyAgICBkbGcuY2F0ZWdvcmllcyA9IFsnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnXTsKKyAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOworICAgIC8vIE5vdGU6IGN1cnJlbnRseUNob3NlblByZXNldCBpcyBub3Qgc2V0IGhlcmUsIHNvIHRoZSBkZWZhdWx0IGlzIHVzZWQuCisgICAgZGxnLnVwZGF0ZUZvcm1fKCk7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIGRlZmF1bHQgZmlsdGVyIGlzIHJldHVybmVkLgorICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJy10aHJlZSwtdHdvJyk7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIGRlZmF1bHQgdHJhY2luZyB0eXBlcyBhcmUgcmV0dXJuZWQuCisgICAgYXNzZXJ0LmVxdWFsKGRsZy50cmFjaW5nUmVjb3JkTW9kZSwgJ3JlY29yZC11bnRpbC1mdWxsJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkbGcudXNlU3lzdGVtVHJhY2luZyk7CisgICAgYXNzZXJ0LmlzRmFsc2UoZGxnLnVzZVNhbXBsaW5nKTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGUgbWFudWFsIHNldHRpbmdzIGFyZSBub3QgdmlzaWJsZS4KKyAgICB2YXIgY2xhc3NMaXN0ID0gZGxnLmNhdGVnb3JpZXNWaWV3Xy5jbGFzc0xpc3Q7CisgICAgYXNzZXJ0LmlzVHJ1ZShjbGFzc0xpc3QuY29udGFpbnMoJ2NhdGVnb3JpZXMtY29sdW1uLXZpZXctaGlkZGVuJykpOworCisgICAgLy8gVmVyaWZ5IG1hbnVhbCBzZXR0aW5ncyBkbyBub3QgbW9kaWZ5IHRoZSBjaGVja2JveGVzLgorICAgIHZhciBjaGVja2JveGVzID0gZGxnLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXRlZ29yaWVzIGlucHV0Jyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXMubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1swXS5pZCwgJ3RocmVlJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMF0udmFsdWUsICd0aHJlZScpOworICAgIGFzc2VydC5pc0ZhbHNlKGNoZWNrYm94ZXNbMF0uY2hlY2tlZCk7CisgICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMV0uaWQsICd0d28nKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1sxXS52YWx1ZSwgJ3R3bycpOworICAgIGFzc2VydC5pc1RydWUoY2hlY2tib3hlc1sxXS5jaGVja2VkKTsKKyAgICBhc3NlcnQuZXF1YWwoY2hlY2tib3hlc1syXS5pZCwgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJyk7CisgICAgYXNzZXJ0LmVxdWFsKGNoZWNrYm94ZXNbMl0udmFsdWUsICdkaXNhYmxlZC1ieS1kZWZhdWx0LW9uZScpOworICAgIGFzc2VydC5pc0ZhbHNlKGNoZWNrYm94ZXNbMl0uY2hlY2tlZCk7CisgIH0pOworCisgIHRlc3QoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZ19jaGFuZ2VQcmVzZXRzJywgZnVuY3Rpb24oKSB7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3R3bycsIHRydWUsICdjYXRlZ29yaWVzJyk7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ3RocmVlJywgZmFsc2UsICdjYXRlZ29yaWVzJyk7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnLCB0cnVlLCAnY2F0ZWdvcmllcycpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2cudHJhY2luZ1JlY29yZE1vZGUnLAorICAgICAgICAncmVjb3JkLWFzLW11Y2gtYXMtcG9zc2libGUnKTsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nLnVzZVN5c3RlbVRyYWNpbmcnLCB0cnVlKTsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgncmVjb3JkU2VsZWN0aW9uRGlhbG9nLnVzZVNhbXBsaW5nJywgZmFsc2UpOworCisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuUmVjb3JkU2VsZWN0aW9uRGlhbG9nKCk7CisgICAgZGxnLmNhdGVnb3JpZXMgPSBbJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtb25lJ107CisgICAgZGxnLnNldHRpbmdzX2tleSA9ICdjYXRlZ29yaWVzJzsKKyAgICAvLyBOb3RlOiBjdXJyZW50bHlDaG9zZW5QcmVzZXQgaXMgbm90IHNldCBoZXJlLCBzbyB0aGUgZGVmYXVsdCBpcyB1c2VkLgorICAgIGRsZy51cGRhdGVGb3JtXygpOworCisgICAgLy8gUHJlc2V0IG1vZGUgaXMgb24uCisgICAgYXNzZXJ0LmlzVHJ1ZShkbGcudXNpbmdQcmVzZXRfKCkpOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBkZWZhdWx0IGZpbHRlciBpcyByZXR1cm5lZC4KKyAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksCisgICAgICAgICctdGhyZWUsLXR3bycpOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBkZWZhdWx0IHRyYWNpbmcgdHlwZXMgYXJlIHJldHVybmVkLgorICAgIGFzc2VydC5lcXVhbChkbGcudHJhY2luZ1JlY29yZE1vZGUsICdyZWNvcmQtYXMtbXVjaC1hcy1wb3NzaWJsZScpOworICAgIGFzc2VydC5pc1RydWUoZGxnLnVzZVN5c3RlbVRyYWNpbmcpOworICAgIGFzc2VydC5pc0ZhbHNlKGRsZy51c2VTYW1wbGluZyk7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIG1hbnVhbCBzZXR0aW5ncyBhcmUgbm90IHZpc2libGUuCisgICAgdmFyIGNsYXNzTGlzdCA9IGRsZy5jYXRlZ29yaWVzVmlld18uY2xhc3NMaXN0OworICAgIGFzc2VydC5pc1RydWUoY2xhc3NMaXN0LmNvbnRhaW5zKCdjYXRlZ29yaWVzLWNvbHVtbi12aWV3LWhpZGRlbicpKTsKKworICAgIC8vIFN3aXRjaCB0byBtYW51YWwgc2V0dGluZ3MgYW5kIHZlcmlmeSB0aGUgZGVmYXVsdCB2YWx1ZXMgYXJlIG5vdCByZXR1cm5lZC4KKyAgICBkbGcuY3VycmVudGx5Q2hvc2VuUHJlc2V0ID0gW107CisKKyAgICAvLyBQcmVzZXQgbW9kZSBpcyBvZmYuCisgICAgYXNzZXJ0LmlzRmFsc2UoZGxnLnVzaW5nUHJlc2V0XygpKTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGUgZGVmYXVsdCBmaWx0ZXIgaXMgcmV0dXJuZWQuCisgICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLCAnLXRocmVlLGRpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnKTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGUgdHJhY2luZyB0eXBlcyBzZXQgYnkgY2F0YWxvZyBhcmUgcmV0dXJuZWQuCisgICAgYXNzZXJ0LmVxdWFsKGRsZy50cmFjaW5nUmVjb3JkTW9kZSwgJ3JlY29yZC1hcy1tdWNoLWFzLXBvc3NpYmxlJyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkbGcudXNlU3lzdGVtVHJhY2luZyk7CisgICAgYXNzZXJ0LmlzRmFsc2UoZGxnLnVzZVNhbXBsaW5nKTsKKyAgICBhc3NlcnQuaXNGYWxzZShjbGFzc0xpc3QuY29udGFpbnMoJ2NhdGVnb3JpZXMtY29sdW1uLXZpZXctaGlkZGVuJykpOworCisgICAgLy8gU3dpdGNoIHRvIHRoZSBncmFwaGljcywgcmVuZGVyaW5nLCBhbmQgcmFzdGVyaXphdGlvbiBwcmVzZXQuCisgICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFsnYmxpbmsnLCAnY2MnLCAncmVuZGVyZXInLAorICAgICAgJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnXTsKKyAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksCisgICAgICAgICdkaXNhYmxlZC1ieS1kZWZhdWx0LWNjLmRlYnVnLC10aHJlZSwtdHdvJyk7CisgIH0pOworCisgIHRlc3QoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZ19zYXZlZFByZXNldCcsIGZ1bmN0aW9uKCkgeworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0d28nLCB0cnVlLCAnY2F0ZWdvcmllcycpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCd0aHJlZScsIGZhbHNlLCAnY2F0ZWdvcmllcycpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2cudHJhY2luZ1JlY29yZE1vZGUnLAorICAgICAgICAncmVjb3JkLWNvbnRpbnVvdXNseScpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2cudXNlU3lzdGVtVHJhY2luZycsIHRydWUpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdyZWNvcmRTZWxlY3Rpb25EaWFsb2cudXNlU2FtcGxpbmcnLCB0cnVlKTsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgndHIudWkuZS5hYm91dF90cmFjaW5nLnJlY29yZF9zZWxlY3Rpb25fZGlhbG9nX3ByZXNldCcsCisgICAgICAgIFsnYmxpbmsnLCAnY2MnLCAncmVuZGVyZXInLCAnY2MuZGVidWcnXSk7CisKKyAgICB2YXIgZGxnID0gbmV3IHRyLnVpLmUuYWJvdXRfdHJhY2luZy5SZWNvcmRTZWxlY3Rpb25EaWFsb2coKTsKKyAgICBkbGcuY2F0ZWdvcmllcyA9IFsnZGlzYWJsZWQtYnktZGVmYXVsdC1vbmUnXTsKKyAgICBkbGcuc2V0dGluZ3Nfa2V5ID0gJ2NhdGVnb3JpZXMnOworICAgIGRsZy51cGRhdGVGb3JtXygpOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBjb3JyZWN0IGZpbHRlciBpcyByZXR1cm5lZC4KKyAgICBhc3NlcnQuZXF1YWwoZGxnLmNhdGVnb3J5RmlsdGVyKCksICctdGhyZWUsLXR3bycpOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBjb3JyZWN0IHRyYWNpbmcgdHlwZXMgYXJlIHJldHVybmVkLgorICAgIGFzc2VydC5lcXVhbChkbGcudHJhY2luZ1JlY29yZE1vZGUsICdyZWNvcmQtY29udGludW91c2x5Jyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkbGcudXNlU3lzdGVtVHJhY2luZyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkbGcudXNlU2FtcGxpbmcpOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBtYW51YWwgc2V0dGluZ3MgYXJlIG5vdCB2aXNpYmxlLgorICAgIHZhciBjbGFzc0xpc3QgPSBkbGcuY2F0ZWdvcmllc1ZpZXdfLmNsYXNzTGlzdDsKKyAgICBhc3NlcnQuaXNUcnVlKGNsYXNzTGlzdC5jb250YWlucygnY2F0ZWdvcmllcy1jb2x1bW4tdmlldy1oaWRkZW4nKSk7CisKKyAgICAvLyBTd2l0Y2ggdG8gbWFudWFsIHNldHRpbmdzIGFuZCB2ZXJpZnkgdGhlIGRlZmF1bHQgdmFsdWVzIGFyZSBub3QgcmV0dXJuZWQuCisgICAgZGxnLmN1cnJlbnRseUNob3NlblByZXNldCA9IFtdOworICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwgJy10aHJlZScpOworICAgIGFzc2VydC5lcXVhbChkbGcudHJhY2luZ1JlY29yZE1vZGUsICdyZWNvcmQtY29udGludW91c2x5Jyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkbGcudXNlU3lzdGVtVHJhY2luZyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShkbGcudXNlU2FtcGxpbmcpOworICAgIGFzc2VydC5pc0ZhbHNlKGNsYXNzTGlzdC5jb250YWlucygnY2F0ZWdvcmllcy1jb2x1bW4tdmlldy1oaWRkZW4nKSk7CisgIH0pOworCisgIHRlc3QoJ3JlY29yZFNlbGVjdGlvbkRpYWxvZ19jYXRlZ29yeUZpbHRlcnMnLCBmdW5jdGlvbigpIHsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgnZGVmYXVsdDEnLCB0cnVlLCAnY2F0ZWdvcmllcycpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdkaXNhYmxlZDEnLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKTsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgnZGlzYWJsZWQtYnktZGVmYXVsdC1jYy5kaXNhYmxlZDInLCBmYWxzZSwgJ2NhdGVnb3JpZXMnKTsKKyAgICB0ci5iLlNldHRpbmdzLnNldCgnaW5wdXQnLCB0cnVlLCAnY2F0ZWdvcmllcycpOworICAgIHRyLmIuU2V0dGluZ3Muc2V0KCdibGluaycsIHRydWUsICdjYXRlZ29yaWVzJyk7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ2NjJywgZmFsc2UsICdjYXRlZ29yaWVzJyk7CisgICAgdHIuYi5TZXR0aW5ncy5zZXQoJ2Rpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnLCB0cnVlLCAnY2F0ZWdvcmllcycpOworCisgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5lLmFib3V0X3RyYWNpbmcuUmVjb3JkU2VsZWN0aW9uRGlhbG9nKCk7CisgICAgZGxnLnNldHRpbmdzX2tleSA9ICdjYXRlZ29yaWVzJzsKKyAgICBkbGcuY2F0ZWdvcmllcyA9IFtdOworICAgIGRsZy5jdXJyZW50bHlDaG9zZW5QcmVzZXQgPSBbXTsKKyAgICBkbGcudXBkYXRlRm9ybV8oKTsKKworICAgIGFzc2VydC5lcXVhbChkbGcuY2F0ZWdvcnlGaWx0ZXIoKSwKKyAgICAgICAgJy1jYywtZGlzYWJsZWQxLGRpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcnKTsKKworICAgIC8vIFN3aXRjaCB0byB0aGUgZ3JhcGhpY3MsIHJlbmRlcmluZywgYW5kIHJhc3Rlcml6YXRpb24gcHJlc2V0LgorICAgIGRsZy5jdXJyZW50bHlDaG9zZW5QcmVzZXQgPSBbJ2JsaW5rJywgJ2NjJywgJ3JlbmRlcmVyJywKKyAgICAgICdkaXNhYmxlZC1ieS1kZWZhdWx0LWNjLmRlYnVnJ107CisgICAgYXNzZXJ0LmVxdWFsKGRsZy5jYXRlZ29yeUZpbHRlcigpLAorICAgICAgICAnLWRlZmF1bHQxLGRpc2FibGVkLWJ5LWRlZmF1bHQtY2MuZGVidWcsLWRpc2FibGVkMSwtaW5wdXQnKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWY0NmFjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy90cmFjaW5nX2NvbnRyb2xsZXJfY2xpZW50Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmUuYWJvdXRfdHJhY2luZycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQ29tbXVuaWNhdGVzIHdpdGggY29udGVudC9icm93c2VyL3RyYWNpbmdfY29udHJvbGxlcl9pbXBsLmNjCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQoKSB7IH0KKworICBUcmFjaW5nQ29udHJvbGxlckNsaWVudC5wcm90b3R5cGUgPSB7CisgICAgYmVnaW5Nb25pdG9yaW5nOiBmdW5jdGlvbihtb25pdG9yaW5nT3B0aW9ucykgeyB9LAorICAgIGVuZE1vbml0b3Jpbmc6IGZ1bmN0aW9uKCkgeyB9LAorICAgIGNhcHR1cmVNb25pdG9yaW5nOiBmdW5jdGlvbigpIHsgfSwKKyAgICBnZXRNb25pdG9yaW5nU3RhdHVzOiBmdW5jdGlvbigpIHsgfSwKKyAgICBnZXRDYXRlZ29yaWVzOiBmdW5jdGlvbigpIHsgfSwKKyAgICBiZWdpblJlY29yZGluZzogZnVuY3Rpb24ocmVjb3JkaW5nT3B0aW9ucykgeyB9LAorICAgIGJlZ2luR2V0QnVmZmVyUGVyY2VudEZ1bGw6IGZ1bmN0aW9uKCkgeyB9LAorICAgIGVuZFJlY29yZGluZzogZnVuY3Rpb24oKSB7IH0sCisgICAgZGVmYXVsdFRyYWNlTmFtZTogZnVuY3Rpb24oKSB7IH0KKyAgfTsKKworICByZXR1cm4geworICAgIFRyYWNpbmdDb250cm9sbGVyQ2xpZW50OiBUcmFjaW5nQ29udHJvbGxlckNsaWVudAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcveGhyX2Jhc2VkX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Fib3V0X3RyYWNpbmcveGhyX2Jhc2VkX3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTYwYzZlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYWJvdXRfdHJhY2luZy94aHJfYmFzZWRfdHJhY2luZ19jb250cm9sbGVyX2NsaWVudC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2U2NC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgaHJlZj0iL3VpL2V4dHJhcy9hYm91dF90cmFjaW5nL3RyYWNpbmdfY29udHJvbGxlcl9jbGllbnQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmFib3V0X3RyYWNpbmcnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gYmVnaW5YaHIobWV0aG9kLCBwYXRoLCBkYXRhKSB7CisgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkKKyAgICAgIGRhdGEgPSBudWxsOworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgIGlmIChtZXRob2QgIT0gJ1BPU1QnICYmIGRhdGEgIT09IG51bGwpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignTm9uLVBPU1Qgc2hvdWxkIGhhdmUgZGF0YT09bnVsbCcpOworICAgICAgcmVxLm9wZW4obWV0aG9kLCBwYXRoLCB0cnVlKTsKKyAgICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0KSB7CisgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAocmVxLnN0YXR1cyA9PSAyMDAgJiYgcmVxLnJlc3BvbnNlVGV4dCAhPSAnIyNFUlJPUiMjJykgeworICAgICAgICAgICAgICByZXNvbHZlKHJlcS5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignRXJyb3Igb2NjdXJlZCBhdCAnICsgcGF0aCkpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0sIDApOworICAgICAgICB9CisgICAgICB9OworICAgICAgcmVxLnNlbmQoZGF0YSk7CisgICAgfSk7CisgIH0KKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBYaHJCYXNlZFRyYWNpbmdDb250cm9sbGVyQ2xpZW50KCkgeyB9CisKKyAgWGhyQmFzZWRUcmFjaW5nQ29udHJvbGxlckNsaWVudC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5lLmFib3V0X3RyYWNpbmcuVHJhY2luZ0NvbnRyb2xsZXJDbGllbnQucHJvdG90eXBlLAorCisgICAgYmVnaW5Nb25pdG9yaW5nOiBmdW5jdGlvbihtb25pdG9yaW5nT3B0aW9ucykgeworICAgICAgdmFyIG1vbml0b3JpbmdPcHRpb25zQjY0ID0gYnRvYShKU09OLnN0cmluZ2lmeShtb25pdG9yaW5nT3B0aW9ucykpOworICAgICAgcmV0dXJuIGJlZ2luWGhyKCdHRVQnLCAnL2pzb24vYmVnaW5fbW9uaXRvcmluZz8nICsgbW9uaXRvcmluZ09wdGlvbnNCNjQpOworICAgIH0sCisKKyAgICBlbmRNb25pdG9yaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBiZWdpblhocignR0VUJywgJy9qc29uL2VuZF9tb25pdG9yaW5nJyk7CisgICAgfSwKKworICAgIGNhcHR1cmVNb25pdG9yaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBiZWdpblhocignR0VUJywgJy9qc29uL2NhcHR1cmVfbW9uaXRvcmluZ19jb21wcmVzc2VkJykudGhlbigKKyAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgIHZhciBkZWNvZGVkX3NpemUgPSB0ci5iLkJhc2U2NC5nZXREZWNvZGVkQnVmZmVyTGVuZ3RoKGRhdGEpOworICAgICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoZGVjb2RlZF9zaXplKTsKKyAgICAgICAgICB0ci5iLkJhc2U2NC5EZWNvZGVUb1R5cGVkQXJyYXkoZGF0YSwgbmV3IERhdGFWaWV3KGJ1ZmZlcikpOworICAgICAgICAgIHJldHVybiBidWZmZXI7CisgICAgICAgIH0KKyAgICAgICk7CisgICAgfSwKKworICAgIGdldE1vbml0b3JpbmdTdGF0dXM6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIGJlZ2luWGhyKCdHRVQnLCAnL2pzb24vZ2V0X21vbml0b3Jpbmdfc3RhdHVzJykudGhlbigKKyAgICAgICAgICBmdW5jdGlvbihtb25pdG9yaW5nT3B0aW9uc0I2NCkgeworICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXRvYihtb25pdG9yaW5nT3B0aW9uc0I2NCkpOworICAgICAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXRDYXRlZ29yaWVzOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBiZWdpblhocignR0VUJywgJy9qc29uL2NhdGVnb3JpZXMnKS50aGVuKAorICAgICAgICAgIGZ1bmN0aW9uKGpzb24pIHsKKyAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGpzb24pOworICAgICAgICAgIH0pOworICAgIH0sCisKKyAgICBiZWdpblJlY29yZGluZzogZnVuY3Rpb24ocmVjb3JkaW5nT3B0aW9ucykgeworICAgICAgdmFyIHJlY29yZGluZ09wdGlvbnNCNjQgPSBidG9hKEpTT04uc3RyaW5naWZ5KHJlY29yZGluZ09wdGlvbnMpKTsKKyAgICAgIHJldHVybiBiZWdpblhocignR0VUJywgJy9qc29uL2JlZ2luX3JlY29yZGluZz8nICsKKyAgICAgICAgICAgICAgICAgICAgICByZWNvcmRpbmdPcHRpb25zQjY0KTsKKyAgICB9LAorCisgICAgYmVnaW5HZXRCdWZmZXJQZXJjZW50RnVsbDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gYmVnaW5YaHIoJ0dFVCcsICcvanNvbi9nZXRfYnVmZmVyX3BlcmNlbnRfZnVsbCcpOworICAgIH0sCisKKyAgICBlbmRSZWNvcmRpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIGJlZ2luWGhyKCdHRVQnLCAnL2pzb24vZW5kX3JlY29yZGluZ19jb21wcmVzc2VkJykudGhlbigKKyAgICAgICAgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgIHZhciBkZWNvZGVkX3NpemUgPSB0ci5iLkJhc2U2NC5nZXREZWNvZGVkQnVmZmVyTGVuZ3RoKGRhdGEpOworICAgICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoZGVjb2RlZF9zaXplKTsKKyAgICAgICAgICB0ci5iLkJhc2U2NC5EZWNvZGVUb1R5cGVkQXJyYXkoZGF0YSwgbmV3IERhdGFWaWV3KGJ1ZmZlcikpOworICAgICAgICAgIHJldHVybiBidWZmZXI7CisgICAgICAgIH0KKyAgICAgICk7CisgICAgfSwKKworICAgIGRlZmF1bHRUcmFjZU5hbWU6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuICd0cmFjZS5qc29uLmd6JzsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBYaHJCYXNlZFRyYWNpbmdDb250cm9sbGVyQ2xpZW50OiBYaHJCYXNlZFRyYWNpbmdDb250cm9sbGVyQ2xpZW50CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYW5hbHlzaXMvc2FtcGxpbmdfc3VtbWFyeS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYW5hbHlzaXMvc2FtcGxpbmdfc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmYTJlNWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSw1NjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3BpZV9jaGFydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9zb3J0YWJsZV90YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9zdW5idXJzdF9jaGFydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91dGlscy5odG1sIj4KKworPHRlbXBsYXRlIGlkPSJ4LXNhbXBsZS1zdW1tYXJ5LXBhbmVsLXRlbXBsYXRlIj4KKyAgPHN0eWxlPgorICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICBwYWRkaW5nOiA1cHg7CisgICAgfQorICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC10b29sYmFyIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKworICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1sZWZ0LXBhbmVsIHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIHdpZHRoOiA2MTBweDsKKyAgICAgIGxlZnQ6IDA7CisgICAgICB0b3A6IDA7CisgICAgICBoZWlnaHQ6IDYxMHB4OworICAgICAgcGFkZGluZzogNXB4OworICAgIH0KKworICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1sZWZ0LXBhbmVsID4gcmVzdWx0LWFyZWEgeworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICB3aWR0aDogNjEwcHg7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBsZWZ0OiAwOworICAgICAgdG9wOiAwOworICAgICAgaGVpZ2h0OiA2MTBweDsKKyAgICB9CisKKyAgICAueC1zYW1wbGUtc3VtbWFyeS1wYW5lbCA+IHgtbGVmdC1wYW5lbCA+IHgtZXhwbGFuYXRpb24geworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB0b3A6IDMwMHB4OworICAgICAgbGVmdDogMjUwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgICAgdmVydGljYWwtYWxpZ246bWlkZGxlOworICAgICAgY29sb3I6ICM2NjY7CisgICAgICBmb250LXNpemU6IDEycHg7CisgICAgfQorCisgICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgbWluLWhlaWdodDogNjEwcHg7CisgICAgICBtYXJnaW4tbGVmdDogNjEwcHg7CisgICAgICBwYWRkaW5nOiA1cHg7CisgICAgfQorCisgICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsIHRkIHsKKyAgICAgIGNvbG9yOiAjZmZmOworICAgICAgcGFkZGluZzogMXB4IDVweDsKKyAgICAgIGZvbnQtc2l6ZTogMS4wZW07CisgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIH0KKworICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1yaWdodC1wYW5lbCA+IHgtc2VxdWVuY2UgeworICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgIHdpZHRoOiA2MDBweDsKKyAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICBmb250LXNpemU6IDE0cHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgfQorCisgICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsID4geC1zZXF1ZW5jZSB0YWJsZSB7CisgICAgICBtaW4td2lkdGg6IDYwMHB4OworICAgIH0KKworICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1yaWdodC1wYW5lbCA+IHgtY2FsbGVlcyB7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIHdpZHRoOiA2MDBweDsKKyAgICAgIGhlaWdodDogYXV0bzsKKyAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAgZm9udC1zaXplOiAxNHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgIH0KKworICAgIC54LXNhbXBsZS1zdW1tYXJ5LXBhbmVsID4geC1yaWdodC1wYW5lbCA+IHgtY2FsbGVlcyAueC1jb2wtbnVtZXJpYyB7CisgICAgICB3aWR0aDogMzBweDsKKyAgICB9CisKKyAgICAueC1zYW1wbGUtc3VtbWFyeS1wYW5lbCA+IHgtcmlnaHQtcGFuZWwgPiB4LWNhbGxlZXMgLngtdGQtbnVtZXJpYyB7CisgICAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAgICB9CisKKyAgICAueC1zYW1wbGUtc3VtbWFyeS1wYW5lbCA+IHgtcmlnaHQtcGFuZWwgPiB4LWNhbGxlZXMgdGFibGUgeworICAgICAgbWluLXdpZHRoOiA2MDBweDsKKyAgICAgIG1heC13aWR0aDogNjAwcHg7CisgICAgfQorCisgICAgLngtc2FtcGxlLXN1bW1hcnktcGFuZWwgPiB4LXJpZ2h0LXBhbmVsID4geC1jYWxsZWVzIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICBoZWlnaHQ6IDMwMHB4OworICAgIH0KKworICA8L3N0eWxlPgorCisgIDx4LXRvb2xiYXI+PC94LXRvb2xiYXI+CisgIDx4LWxlZnQtcGFuZWw+CisgICAgPHJlc3VsdC1hcmVhPjwvcmVzdWx0LWFyZWE+CisgICAgPHgtZXhwbGFuYXRpb24+PC94LWV4cGxhbmF0aW9uPgorICA8L3gtbGVmdC1wYW5lbD4KKyAgPHgtcmlnaHQtcGFuZWw+CisgICAgPHgtc2VxdWVuY2U+PC94LXNlcXVlbmNlPgorICAgIDx4LWNhbGxlZXM+PC94LWNhbGxlZXM+CisgIDwveC1yaWdodC1wYW5lbD4KKzwvdGVtcGxhdGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmFuYWx5c2lzJywgZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKKworICB2YXIgUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50ID0gdHIubW9kZWwuUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50OworICB2YXIgZ2V0Q29sb3JPZktleSA9IHRyLnVpLmIuZ2V0Q29sb3JPZktleTsKKworICAvKioKKyAgICAqIEBjb25zdHJ1Y3RvcgorICAgICovCisgIHZhciBDYWxsVHJlZU5vZGUgPSBmdW5jdGlvbihuYW1lLCBjYXRlZ29yeSkgeworICAgIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkOworICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5OworICAgIHRoaXMuc2VsZlRpbWUgPSAwLjA7CisgICAgdGhpcy5jaGlsZHJlbiA9IFtdOworCisgICAgLy8gRGVmaW5lZCBvbmx5IGZvciBsZWFmIG5vZGVzLCBsZWFmX25vZGVfaWQgY29ycmVzcG9uZHMgdG8KKyAgICAvLyB0aGUgaWQgb2YgdGhlIGxlYWYgc3RhY2sgZnJhbWUuCisgICAgdGhpcy5sZWFmX25vZGVfaWQgPSB1bmRlZmluZWQ7CisgIH07CisKKyAgQ2FsbFRyZWVOb2RlLnByb3RvdHlwZSA9IHsKKyAgICBhZGRDaGlsZDogZnVuY3Rpb24obm9kZSkgeworICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKG5vZGUpOworICAgICAgbm9kZS5wYXJlbnQgPSB0aGlzOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgVGhyZWFkID0gZnVuY3Rpb24odGhyZWFkKSB7CisgICAgdGhpcy50aHJlYWQgPSB0aHJlYWQ7CisgICAgdGhpcy5yb290Tm9kZSA9IG5ldyBDYWxsVHJlZU5vZGUoJ3Jvb3QnLCAncm9vdCcpOworICAgIHRoaXMucm9vdENhdGVnb3JpZXMgPSB7fTsKKyAgICB0aGlzLnNmVG9Ob2RlID0ge307CisgICAgdGhpcy5zZlRvTm9kZVsnX19yb290J10gPSBzZWxmLnJvb3ROb2RlOworICB9OworCisgIFRocmVhZC5wcm90b3R5cGUgPSB7CisgICAgZ2V0Q2FsbFRyZWVOb2RlOiBmdW5jdGlvbihzdGFja0ZyYW1lKSB7CisgICAgICBpZiAoc3RhY2tGcmFtZS5pZCBpbiB0aGlzLnNmVG9Ob2RlKQorICAgICAgICByZXR1cm4gdGhpcy5zZlRvTm9kZVtzdGFja0ZyYW1lLmlkXTsKKworICAgICAgLy8gQ3JlYXRlICYgc2F2ZSB0aGUgbm9kZS4KKyAgICAgIHZhciBuZXdOb2RlID0gbmV3IENhbGxUcmVlTm9kZShzdGFja0ZyYW1lLnRpdGxlLCBzdGFja0ZyYW1lLmNhdGVnb3J5KTsKKyAgICAgIHRoaXMuc2ZUb05vZGVbc3RhY2tGcmFtZS5pZF0gPSBuZXdOb2RlOworCisgICAgICAvLyBBZGQgbm9kZSB0byBwYXJlbnQgdHJlZSBub2RlLgorICAgICAgaWYgKHN0YWNrRnJhbWUucGFyZW50RnJhbWUpIHsKKyAgICAgICAgdmFyIHBhcmVudE5vZGUgPSB0aGlzLmdldENhbGxUcmVlTm9kZShzdGFja0ZyYW1lLnBhcmVudEZyYW1lKTsKKworICAgICAgICBwYXJlbnROb2RlLmFkZENoaWxkKG5ld05vZGUpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQ3JlYXRpbmcgYSByb290IGNhdGVnb3J5IG5vZGUgZm9yIGVhY2ggY2F0ZWdvcnkgaGVscHMgZ3JvdXAgc2FtcGxlcworICAgICAgICAvLyB0aGF0IG1heSBiZSBtaXNzaW5nIGNhbGwgc3RhY2tzLgorICAgICAgICB2YXIgcm9vdENhdGVnb3J5ID0gdGhpcy5yb290Q2F0ZWdvcmllc1tzdGFja0ZyYW1lLmNhdGVnb3J5XTsKKyAgICAgICAgaWYgKCFyb290Q2F0ZWdvcnkpIHsKKyAgICAgICAgICByb290Q2F0ZWdvcnkgPQorICAgICAgICAgICAgICBuZXcgQ2FsbFRyZWVOb2RlKHN0YWNrRnJhbWUuY2F0ZWdvcnksIHN0YWNrRnJhbWUuY2F0ZWdvcnkpOworICAgICAgICAgIHRoaXMucm9vdE5vZGUuYWRkQ2hpbGQocm9vdENhdGVnb3J5KTsKKyAgICAgICAgICB0aGlzLnJvb3RDYXRlZ29yaWVzW3N0YWNrRnJhbWUuY2F0ZWdvcnldID0gcm9vdENhdGVnb3J5OworICAgICAgICB9CisgICAgICAgIHJvb3RDYXRlZ29yeS5hZGRDaGlsZChuZXdOb2RlKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBuZXdOb2RlOworICAgIH0sCisKKyAgICBhZGRTYW1wbGU6IGZ1bmN0aW9uKHNhbXBsZSkgeworICAgICAgdmFyIGxlYWZfbm9kZSA9IHRoaXMuZ2V0Q2FsbFRyZWVOb2RlKHNhbXBsZS5sZWFmU3RhY2tGcmFtZSk7CisgICAgICBsZWFmX25vZGUubGVhZl9ub2RlX2lkID0gc2FtcGxlLmxlYWZTdGFja0ZyYW1lLmlkOworICAgICAgbGVhZl9ub2RlLnNlbGZUaW1lICs9IHNhbXBsZS53ZWlnaHQ7CisgICAgfQorICB9OworCisgIGZ1bmN0aW9uIGdlbkNhbGxUcmVlKG5vZGUsIGlzUm9vdCkgeworICAgIHZhciByZXQgPSB7CisgICAgICBjYXRlZ29yeTogbm9kZS5jYXRlZ29yeSwKKyAgICAgIG5hbWU6IG5vZGUubmFtZSwKKyAgICAgIGxlYWZfbm9kZV9pZDogbm9kZS5sZWFmX25vZGVfaWQKKyAgICB9OworCisgICAgaWYgKGlzUm9vdCB8fCBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsKKyAgICAgIHJldC5jaGlsZHJlbiA9IFtdOworICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgYysrKQorICAgICAgICByZXQuY2hpbGRyZW4ucHVzaChnZW5DYWxsVHJlZShub2RlLmNoaWxkcmVuW2NdLCBmYWxzZSkpOworICAgICAgaWYgKG5vZGUuc2VsZlRpbWUgPiAwLjApIHsKKyAgICAgICAgLy8gc2F5LCBjYWxsZXIgKHIpIGNhbGxzIGNhbGxlZSAoZSkgd2hpY2ggY2FsbHMgY2FsbGVlMiAoMikKKyAgICAgICAgLy8gYW5kIGZvbGxvd2luZyBhcmUgdGhlIHNhbXBsZXMKKyAgICAgICAgLy8gciByIHIgciByIHIgcgorICAgICAgICAvLyAgIGUgZSBlCisgICAgICAgIC8vICAgMiAyIDIKKyAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCByIGhhcyBhIG5vbi16ZXJvIHNlbGYgdGltZSAoNCBzYW1wbGVzIHRvIGJlIHByZWNpc2UpCisgICAgICAgIC8vIFRoZSA8c2VsZj4gbm9kZSBtYWtlcyB0aGUgcmVwcmVzZW50YXRpb24gcmVzZW1ibGUgdGhlIGZvbGxvd2luZworICAgICAgICAvLyB3aGVyZSBzIGRlbm90ZXMgdGhlIHNlbGZ0aW1lLgorICAgICAgICAvLyByIHIgciByIHIgciByCisgICAgICAgIC8vIHMgZSBlIGUgcyBzIHMKKyAgICAgICAgLy8gICAyIDIgMgorICAgICAgICAvLworICAgICAgICAvLyBBbW9uZyB0aGUgb2J2aW91cyB2aXN1YWxpemF0aW9uIGJlbmVmaXQsIHRoaXMgYWxzbyBjcmVhdGVzIHRoZQorICAgICAgICAvLyBpbnZhcmlhbmNlIHRoYXQgYSBub2RlIGNhbiBub3Qgc2ltdWx0YW5lb3VzbHkgaGF2ZSBzYW1wbGVzIGFuZAorICAgICAgICAvLyBjaGlsZHJlbi4KKyAgICAgICAgcmV0LmNoaWxkcmVuLnB1c2goeworICAgICAgICAgIG5hbWU6ICc8c2VsZj4nLAorICAgICAgICAgIGNhdGVnb3J5OiByZXQuY2F0ZWdvcnksCisgICAgICAgICAgc2l6ZTogbm9kZS5zZWxmVGltZSwKKyAgICAgICAgICBsZWFmX25vZGVfaWQ6IG5vZGUubGVhZl9ub2RlX2lkCisgICAgICAgIH0pOworICAgICAgICBkZWxldGUgcmV0LmxlYWZfbm9kZV9pZDsgIC8vIHJldCBpcyBub3QgYSBsZWFmIG5vZGUgYW55bW9yZS4KKyAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICByZXQuc2l6ZSA9IG5vZGUuc2VsZlRpbWU7CisgICAgfQorICAgIGlmIChpc1Jvb3QpCisgICAgICByZXR1cm4gcmV0LmNoaWxkcmVuOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBmdW5jdGlvbiBnZXRTYW1wbGVUeXBlcyhzZWxlY3Rpb24pIHsKKyAgICB2YXIgc2FtcGxlRGljdCA9IHt9OworICAgIHZhciBzYW1wbGVzID0gc2VsZWN0aW9uLmdldEV2ZW50c09yZ2FuaXplZEJ5QmFzZVR5cGUoKS5zYW1wbGU7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICBzYW1wbGVEaWN0W3NhbXBsZXNbaV0udGl0bGVdID0gbnVsbDsKKyAgICB9CisgICAgcmV0dXJuIE9iamVjdC5rZXlzKHNhbXBsZURpY3QpOworICB9CisKKyAgLy8gQ3JlYXRlIHN1bmJ1cnN0IGRhdGEgZnJvbSB0aGUgc2VsZWN0aW9uLgorICBmdW5jdGlvbiBjcmVhdGVTdW5idXJzdERhdGEoc2VsZWN0aW9uLCBzYW1wbGVUeXBlKSB7CisgICAgdmFyIHRocmVhZHMgPSB7fTsKKyAgICBmdW5jdGlvbiBnZXRPckNyZWF0ZVRocmVhZCh0aHJlYWQpIHsKKyAgICAgIHZhciByZXQgPSB1bmRlZmluZWQ7CisgICAgICBpZiAodGhyZWFkLnRpZCBpbiB0aHJlYWRzKSB7CisgICAgICAgIHJldCA9IHRocmVhZHNbdGhyZWFkLnRpZF07CisgICAgICB9IGVsc2UgeworICAgICAgICByZXQgPSBuZXcgVGhyZWFkKHRocmVhZCk7CisgICAgICAgIHRocmVhZHNbdGhyZWFkLnRpZF0gPSByZXQ7CisgICAgICB9CisgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8vIFByb2Nlc3Mgc2FtcGxlcy4KKyAgICB2YXIgc2FtcGxlcyA9IHNlbGVjdGlvbi5nZXRFdmVudHNPcmdhbml6ZWRCeUJhc2VUeXBlKCkuc2FtcGxlOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2FtcGxlcy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIHNhbXBsZSA9IHNhbXBsZXNbaV07CisgICAgICBpZiAoc2FtcGxlLnRpdGxlID09IHNhbXBsZVR5cGUpCisgICAgICAgIGdldE9yQ3JlYXRlVGhyZWFkKHNhbXBsZS50aHJlYWQpLmFkZFNhbXBsZShzYW1wbGUpOworICAgIH0KKworICAgIC8vIEdlbmVyYXRlIHN1bmJ1cnN0IGRhdGEuCisgICAgdmFyIHN1bmJ1cnN0RGF0YSA9IHsKKyAgICAgIG5hbWU6ICc8QWxsIFRocmVhZHM+JywKKyAgICAgIGNhdGVnb3J5OiAncm9vdCcsCisgICAgICBjaGlsZHJlbjogW10KKyAgICB9OworICAgIGZvciAodmFyIHQgaW4gdGhyZWFkcykgeworICAgICAgaWYgKCF0aHJlYWRzLmhhc093blByb3BlcnR5KHQpKSBjb250aW51ZTsKKyAgICAgIHZhciB0aHJlYWQgPSB0aHJlYWRzW3RdOworICAgICAgdmFyIHRocmVhZERhdGEgPSB7CisgICAgICAgIG5hbWU6ICdUaHJlYWQgJyArIHRocmVhZC50aHJlYWQudGlkICsgJzogJyArIHRocmVhZC50aHJlYWQubmFtZSwKKyAgICAgICAgY2F0ZWdvcnk6ICdUaHJlYWQnLAorICAgICAgICBjaGlsZHJlbjogZ2VuQ2FsbFRyZWUodGhyZWFkLnJvb3ROb2RlLCB0cnVlKQorICAgICAgfTsKKyAgICAgIHN1bmJ1cnN0RGF0YS5jaGlsZHJlbi5wdXNoKHRocmVhZERhdGEpOworICAgIH0KKyAgICByZXR1cm4gc3VuYnVyc3REYXRhOworICB9CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIFNhbXBsaW5nU3VtbWFyeVBhbmVsID0KKyAgICAgIHRyLnVpLmIuZGVmaW5lKCd4LXNhbXBsZS1zdW1tYXJ5LXBhbmVsJyk7CisgIFNhbXBsaW5nU3VtbWFyeVBhbmVsLnRleHRMYWJlbCA9ICdTYW1wbGluZyBTdW1tYXJ5JzsKKyAgU2FtcGxpbmdTdW1tYXJ5UGFuZWwuc3VwcG9ydHNNb2RlbCA9IGZ1bmN0aW9uKG0pIHsKKyAgICBpZiAobSA9PSB1bmRlZmluZWQpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCisgICAgICAgIHJlYXNvbjogJ1Vua25vd24gdHJhY2luZyBtb2RlbCcKKyAgICAgIH07CisgICAgfQorCisgICAgaWYgKG0uc2FtcGxlcy5sZW5ndGggPT0gMCkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSwKKyAgICAgICAgcmVhc29uOiAnTm8gc2FtcGxpbmcgZGF0YSBpbiB0cmFjZScKKyAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIHsKKyAgICAgIHN1cHBvcnRlZDogdHJ1ZQorICAgIH07CisgIH07CisKKyAgLy8gUmV0dXJuIGEgZGljdCB3aXRoIGtleXMgYXMgc3RhY2stZnJhbWUgaWRzCisgIC8vIGFuZCB2YWx1ZXMgYXMgc2VsZWN0aW9uIG9iamVjdHMgd2hpY2ggY29udGFpbiBhbGwgdGhlCisgIC8vIHNhbXBsZXMgd2hvc2UgbGVhZiBzdGFjay1mcmFtZSBpZCBtYXRjaGVzIHRoZSBrZXkuCisgIGZ1bmN0aW9uIGRpdmlkZVNhbXBsZXNCYXNlZE9uTGVhZlN0YWNrRnJhbWUoc2VsZWN0aW9uKSB7CisgICAgdmFyIHN0YWNrRnJhbWVJZFRvU2FtcGxlcyA9IHt9OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0aW9uLmxlbmd0aDsgKytpKSB7CisgICAgICB2YXIgc2FtcGxlID0gc2VsZWN0aW9uW2ldOworICAgICAgdmFyIGlkID0gc2FtcGxlLmxlYWZTdGFja0ZyYW1lLmlkOworICAgICAgaWYgKCFzdGFja0ZyYW1lSWRUb1NhbXBsZXNbaWRdKQorICAgICAgICBzdGFja0ZyYW1lSWRUb1NhbXBsZXNbaWRdID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICBzdGFja0ZyYW1lSWRUb1NhbXBsZXNbaWRdLnB1c2goc2FtcGxlKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YWNrRnJhbWVJZFRvU2FtcGxlczsKKyAgfQorCisgIFNhbXBsaW5nU3VtbWFyeVBhbmVsLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3gtc2FtcGxlLXN1bW1hcnktcGFuZWwnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKAorICAgICAgICAgICcjeC1zYW1wbGUtc3VtbWFyeS1wYW5lbC10ZW1wbGF0ZScsIFRISVNfRE9DKSk7CisKKyAgICAgIHRoaXMuc2FtcGxlVHlwZV8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLnNhbXBsZVR5cGVTZWxlY3Rvcl8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmNoYXJ0XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICB0aGlzLnN0YWNrRnJhbWVJZFRvU2FtcGxlc18gPSBkaXZpZGVTYW1wbGVzQmFzZWRPbkxlYWZTdGFja0ZyYW1lKAorICAgICAgICAgIHNlbGVjdGlvbik7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgc2FtcGxlVHlwZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnNhbXBsZVR5cGVfOworICAgIH0sCisKKyAgICBzZXQgc2FtcGxlVHlwZSh0eXBlKSB7CisgICAgICB0aGlzLnNhbXBsZVR5cGVfID0gdHlwZTsKKyAgICAgIGlmICh0aGlzLnNhbXBsZVR5cGVTZWxlY3Rvcl8pCisgICAgICAgIHRoaXMuc2FtcGxlVHlwZVNlbGVjdG9yXy5zZWxlY3RlZFZhbHVlID0gdHlwZTsKKyAgICAgIHRoaXMudXBkYXRlUmVzdWx0QXJlYV8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ2FsbGVlc186IGZ1bmN0aW9uKGQpIHsKKyAgICAgIC8vIFVwZGF0ZSBjYWxsZWUgdGFibGUuCisgICAgICB2YXIgdGhhdCA9IHRoaXM7CisgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOworCisgICAgICAvLyBBZGQgY29sdW1uIHN0eWxlcy4KKyAgICAgIHZhciBjb2wwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29sJyk7CisgICAgICB2YXIgY29sMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvbCcpOworICAgICAgY29sMC5jbGFzc05hbWUgKz0gJ3gtY29sLW51bWVyaWMnOworICAgICAgY29sMS5jbGFzc05hbWUgKz0gJ3gtY29sLW51bWVyaWMnOworICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY29sMCk7CisgICAgICB0YWJsZS5hcHBlbmRDaGlsZChjb2wxKTsKKworICAgICAgLy8gQWRkIGhlYWRlcnMuCisgICAgICB2YXIgdGhlYWQgPSB0YWJsZS5jcmVhdGVUSGVhZCgpOworICAgICAgdmFyIGhlYWRlclJvdyA9IHRoZWFkLmluc2VydFJvdygwKTsKKyAgICAgIGhlYWRlclJvdy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzg4OCc7CisgICAgICBoZWFkZXJSb3cuaW5zZXJ0Q2VsbCgwKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2FtcGxlcycpKTsKKyAgICAgIGhlYWRlclJvdy5pbnNlcnRDZWxsKDEpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdQZXJjZW50JykpOworICAgICAgaGVhZGVyUm93Lmluc2VydENlbGwoMikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1N5bWJvbCcpKTsKKworICAgICAgLy8gQWRkIGJvZHkuCisgICAgICB2YXIgdGJvZHkgPSB0YWJsZS5jcmVhdGVUQm9keSgpOworICAgICAgaWYgKGQuY2hpbGRyZW4pIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIGMgPSBkLmNoaWxkcmVuW2ldOworICAgICAgICAgIHZhciByb3cgPSB0Ym9keS5pbnNlcnRSb3coaSk7CisgICAgICAgICAgdmFyIGJnQ29sb3IgPSBnZXRDb2xvck9mS2V5KGMuY2F0ZWdvcnkpOworICAgICAgICAgIGlmIChiZ0NvbG9yID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIGJnQ29sb3IgPSAnIzQ0NDQ0NCc7CisgICAgICAgICAgcm93LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJnQ29sb3I7CisgICAgICAgICAgdmFyIGNlbGwwID0gcm93Lmluc2VydENlbGwoMCk7CisgICAgICAgICAgdmFyIGNlbGwxID0gcm93Lmluc2VydENlbGwoMSk7CisgICAgICAgICAgdmFyIGNlbGwyID0gcm93Lmluc2VydENlbGwoMik7CisgICAgICAgICAgY2VsbDAuY2xhc3NOYW1lICs9ICd4LXRkLW51bWVyaWMnOworICAgICAgICAgIGNlbGwxLmNsYXNzTmFtZSArPSAneC10ZC1udW1lcmljJzsKKyAgICAgICAgICBjZWxsMC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjLnZhbHVlLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICBjZWxsMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgKKyAgICAgICAgICAgICAgKDEwMCAqIGMudmFsdWUgLyBkLnZhbHVlKS50b0ZpeGVkKDIpICsgJyUnKSk7CisgICAgICAgICAgY2VsbDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYy5uYW1lKSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gTWFrZSBpdCBzb3J0YWJsZS4KKyAgICAgIHRyLnVpLmIuU29ydGFibGVUYWJsZS5kZWNvcmF0ZSh0YWJsZSk7CisKKyAgICAgIHZhciBjYWxsZWVBcmVhID0gdGhhdC5xdWVyeVNlbGVjdG9yKCd4LWNhbGxlZXMnKTsKKyAgICAgIGNhbGxlZUFyZWEudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgIGNhbGxlZUFyZWEuYXBwZW5kQ2hpbGQodGFibGUpOworICAgIH0sCisKKyAgICB1cGRhdGVIaWdobGlnaHRfOiBmdW5jdGlvbihkKSB7CisgICAgICB2YXIgdGhhdCA9IHRoaXM7CisKKyAgICAgIC8vIFVwZGF0ZSBleHBsYW5hdGlvbi4KKyAgICAgIHZhciBwZXJjZW50ID0gMTAwLjA7CisgICAgICBpZiAodGhhdC5jaGFydF8uc2VsZWN0ZWROb2RlICE9IG51bGwpCisgICAgICAgIHBlcmNlbnQgPSAxMDAuMCAqIGQudmFsdWUgLyB0aGF0LmNoYXJ0Xy5zZWxlY3RlZE5vZGUudmFsdWU7CisgICAgICB0aGF0LnF1ZXJ5U2VsZWN0b3IoJ3gtZXhwbGFuYXRpb24nKS5pbm5lckhUTUwgPQorICAgICAgICAgIGQudmFsdWUgKyAnPGJyPicgKyBwZXJjZW50LnRvRml4ZWQoMikgKyAnJSc7CisKKyAgICAgIC8vIFVwZGF0ZSBjYWxsIHN0YWNrIHRhYmxlLgorICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTsKKyAgICAgIHZhciB0aGVhZCA9IHRhYmxlLmNyZWF0ZVRIZWFkKCk7CisgICAgICB2YXIgdGJvZHkgPSB0YWJsZS5jcmVhdGVUQm9keSgpOworICAgICAgdmFyIGhlYWRlclJvdyA9IHRoZWFkLmluc2VydFJvdygwKTsKKyAgICAgIGhlYWRlclJvdy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzg4OCc7CisgICAgICBoZWFkZXJSb3cuaW5zZXJ0Q2VsbCgwKS5hcHBlbmRDaGlsZCgKKyAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnQ2FsbCBTdGFjaycpKTsKKworICAgICAgdmFyIGNhbGxTdGFjayA9IFtdOworICAgICAgdmFyIGZyYW1lID0gZDsKKyAgICAgIHdoaWxlIChmcmFtZSAmJiBmcmFtZS5pZCkgeworICAgICAgICBjYWxsU3RhY2sucHVzaChmcmFtZSk7CisgICAgICAgIGZyYW1lID0gZnJhbWUucGFyZW50OworICAgICAgfQorCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxTdGFjay5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgcm93ID0gdGJvZHkuaW5zZXJ0Um93KGkpOworICAgICAgICB2YXIgYmdDb2xvciA9IGdldENvbG9yT2ZLZXkoY2FsbFN0YWNrW2ldLmNhdGVnb3J5KTsKKyAgICAgICAgaWYgKGJnQ29sb3IgPT0gdW5kZWZpbmVkKQorICAgICAgICAgIGJnQ29sb3IgPSAnIzQ0NDQ0NCc7CisgICAgICAgIHJvdy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBiZ0NvbG9yOworICAgICAgICBpZiAoaSA9PSAwKQorICAgICAgICAgIHJvdy5zdHlsZS5mb250V2VpZ2h0ID0gJ2JvbGQnOworICAgICAgICByb3cuaW5zZXJ0Q2VsbCgwKS5hcHBlbmRDaGlsZCgKKyAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNhbGxTdGFja1tpXS5uYW1lKSk7CisgICAgICB9CisKKyAgICAgIHZhciBzZXF1ZW5jZUFyZWEgPSB0aGF0LnF1ZXJ5U2VsZWN0b3IoJ3gtc2VxdWVuY2UnKTsKKyAgICAgIHNlcXVlbmNlQXJlYS50ZXh0Q29udGVudCA9ICcnOworICAgICAgc2VxdWVuY2VBcmVhLmFwcGVuZENoaWxkKHRhYmxlKTsKKyAgICB9LAorCisgICAgZ2V0U2FtcGxlc0Zyb21Ob2RlXzogZnVuY3Rpb24obm9kZSkgeworICAgICAgLy8gQSBub2RlIGhhcyBzYW1wbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCwgaWYgaXQncyBhIGxlYWYgbm9kZS4KKyAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIGlmIChub2RlLmxlYWZfbm9kZV9pZCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHNlbGVjdGlvbi5hZGRFdmVudFNldCh0aGlzLnN0YWNrRnJhbWVJZFRvU2FtcGxlc19bbm9kZS5sZWFmX25vZGVfaWRdKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKG5vZGUuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fAorICAgICAgICAgICAgICAgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIG5vZGUgc2hvdWxkIGVpdGhlciBoYXZlIHNhbXBsZXMsIG9yIGNoaWxkcmVuJyk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICAgIHNlbGVjdGlvbi5hZGRFdmVudFNldCh0aGlzLmdldFNhbXBsZXNGcm9tTm9kZV8obm9kZS5jaGlsZHJlbltpXSkpOworICAgICAgfQorICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgdXBkYXRlUmVzdWx0QXJlYV86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciByZXN1bHRBcmVhID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdyZXN1bHQtYXJlYScpOworICAgICAgdGhpcy5jaGFydF8gPSB1bmRlZmluZWQ7CisgICAgICByZXN1bHRBcmVhLnRleHRDb250ZW50ID0gJyc7CisKKyAgICAgIHZhciBzdW5idXJzdERhdGEgPQorICAgICAgICAgIGNyZWF0ZVN1bmJ1cnN0RGF0YSh0aGlzLnNlbGVjdGlvbl8sIHRoaXMuc2FtcGxlVHlwZV8pOworICAgICAgdGhpcy5jaGFydF8gPSBuZXcgdHIudWkuYi5TdW5idXJzdENoYXJ0KCk7CisgICAgICB0aGlzLmNoYXJ0Xy53aWR0aCA9IDYwMDsKKyAgICAgIHRoaXMuY2hhcnRfLmhlaWdodCA9IDYwMDsKKyAgICAgIHRoaXMuY2hhcnRfLmNoYXJ0VGl0bGUgPSAnU2FtcGxpbmcgU3VtbWFyeSc7CisKKyAgICAgIHRoaXMuY2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ25vZGUtc2VsZWN0ZWQnLCAoZnVuY3Rpb24oZSkgeworICAgICAgICB0aGlzLnVwZGF0ZUNhbGxlZXNfKGUubm9kZSk7CisgICAgICB9KS5iaW5kKHRoaXMpKTsKKworICAgICAgdGhpcy5jaGFydF8uYWRkRXZlbnRMaXN0ZW5lcignbm9kZS1jbGlja2VkJywgKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gbmV3IFJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOworICAgICAgICB2YXIgZGVwdGggPSBlLm5vZGUuZGVwdGg7CisgICAgICAgIGlmIChlLm5vZGUubmFtZSA9PT0gJzxzZWxmPicpCisgICAgICAgICAgZGVwdGgtLTsKKyAgICAgICAgZXZlbnQuc2VsZWN0aW9uID0gdGhpcy5nZXRTYW1wbGVzRnJvbU5vZGVfKGUubm9kZSk7CisgICAgICAgIGV2ZW50LnNlbGVjdGlvbi5zdW5idXJzdF96b29tX2xldmVsID0gZGVwdGg7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICB9KS5iaW5kKHRoaXMpKTsKKworICAgICAgdGhpcy5jaGFydF8uYWRkRXZlbnRMaXN0ZW5lcignbm9kZS1oaWdobGlnaHRlZCcsIChmdW5jdGlvbihlKSB7CisgICAgICAgIHRoaXMudXBkYXRlSGlnaGxpZ2h0XyhlLm5vZGUpOworICAgICAgfSkuYmluZCh0aGlzKSk7CisKKyAgICAgIHRoaXMuY2hhcnRfLmRhdGEgPSB7CisgICAgICAgIG5vZGVzOiBzdW5idXJzdERhdGEKKyAgICAgIH07CisKKyAgICAgIHJlc3VsdEFyZWEuYXBwZW5kQ2hpbGQodGhpcy5jaGFydF8pOworICAgICAgdGhpcy5jaGFydF8uc2V0U2l6ZSh0aGlzLmNoYXJ0Xy5nZXRNaW5TaXplKCkpOworCisgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fLnN1bmJ1cnN0X3pvb21fbGV2ZWwgIT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLmNoYXJ0Xy56b29tVG9EZXB0aCh0aGlzLnNlbGVjdGlvbl8uc3VuYnVyc3Rfem9vbV9sZXZlbCk7CisgICAgICB9CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3Rpb25fLmxlbmd0aCA9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIEdldCBhdmFpbGFibGUgc2FtcGxlIHR5cGVzIGluIHJhbmdlLgorICAgICAgdmFyIHNhbXBsZVR5cGVzID0gZ2V0U2FtcGxlVHlwZXModGhpcy5zZWxlY3Rpb25fKTsKKyAgICAgIGlmIChzYW1wbGVUeXBlcy5pbmRleE9mKHRoaXMuc2FtcGxlVHlwZV8pID09IC0xKQorICAgICAgICB0aGlzLnNhbXBsZVR5cGVfID0gc2FtcGxlVHlwZXNbMF07CisKKyAgICAgIC8vIENyZWF0ZSBzYW1wbGUgdHlwZSBkcm9wZG93bi4KKyAgICAgIHZhciBzYW1wbGVUeXBlT3B0aW9ucyA9IFtdOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVUeXBlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgc2FtcGxlVHlwZU9wdGlvbnMucHVzaCh7bGFiZWw6IHNhbXBsZVR5cGVzW2ldLCB2YWx1ZTogc2FtcGxlVHlwZXNbaV19KTsKKworICAgICAgdmFyIHRvb2xiYXJFbCA9IHRoaXMucXVlcnlTZWxlY3RvcigneC10b29sYmFyJyk7CisgICAgICB0aGlzLnNhbXBsZVR5cGVTZWxlY3Rvcl8gPSB0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgJ3NhbXBsZVR5cGUnLAorICAgICAgICAgICdzYW1wbGluZ1N1bW1hcnlQYW5lbC5zYW1wbGVUeXBlJywKKyAgICAgICAgICB0aGlzLnNhbXBsZVR5cGVfLAorICAgICAgICAgIHNhbXBsZVR5cGVPcHRpb25zKTsKKyAgICAgIHRvb2xiYXJFbC50ZXh0Q29udGVudCA9ICdTYW1wbGUgVHlwZTogJzsKKyAgICAgIHRvb2xiYXJFbC5hcHBlbmRDaGlsZCh0aGlzLnNhbXBsZVR5cGVTZWxlY3Rvcl8pOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFNhbXBsaW5nU3VtbWFyeVBhbmVsOiBTYW1wbGluZ1N1bW1hcnlQYW5lbCwKKyAgICBjcmVhdGVTdW5idXJzdERhdGE6IGNyZWF0ZVN1bmJ1cnN0RGF0YQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnlfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvYW5hbHlzaXMvc2FtcGxpbmdfc3VtbWFyeV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdjMTg4OQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2FuYWx5c2lzL3NhbXBsaW5nX3N1bW1hcnlfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9hbmFseXNpcy9zYW1wbGluZ19zdW1tYXJ5Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFN0YWNrRnJhbWUgPSB0ci5tb2RlbC5TdGFja0ZyYW1lOworICB2YXIgU2FtcGxlID0gdHIubW9kZWwuU2FtcGxlOworCisgIHZhciBuZXdTbGljZUV4ID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlRXg7CisKKyAgZnVuY3Rpb24gY3JlYXRlU2VsZWN0aW9uKCkgeworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgIHRocmVhZC5uYW1lID0gJ1RoZSBUaHJlYWQnOworCisgICAgdmFyIGZBID0gbmV3IFN0YWNrRnJhbWUodW5kZWZpbmVkLCAwLCAnQ2hyb21lJywgJ2EnLCA3KTsKKyAgICB2YXIgZkFCID0gbmV3IFN0YWNrRnJhbWUoZkEsIDEsICdDaHJvbWUnLCAnYicsIDcpOworICAgIHZhciBmQUJDID0gbmV3IFN0YWNrRnJhbWUoZkFCLCAyLCAnQ2hyb21lJywgJ2MnLCA3KTsKKyAgICB2YXIgZkFEID0gbmV3IFN0YWNrRnJhbWUoZkEsIDMsICdHUFUgRHJpdmVyJywgJ2QnLCA3KTsKKworICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIGZBQkMsIDEwKSk7CisgICAgc2VsZWN0aW9uLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2N5Y2xlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCwgZkFCLCAxMCkpOworICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUsIGZBQiwgMTApKTsKKyAgICBzZWxlY3Rpb24ucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnY3ljbGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLCBmQUIsIDEwKSk7CisgICAgc2VsZWN0aW9uLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2N5Y2xlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNSwgZkFELCAxMCkpOworICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUsIGZBRCwgNSkpOworICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIGZBRCwgNSkpOworICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdwYWdlX21pc3NlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNSwgZkFELCA3KSk7CisgICAgc2VsZWN0aW9uLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ3BhZ2VfbWlzc2VzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwLCBmQUQsIDkpKTsKKyAgICByZXR1cm4gc2VsZWN0aW9uOworICB9CisKKyAgdGVzdCgnY3JlYXRlU3VuYnVyc3REYXRhQmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcyA9IGNyZWF0ZVNlbGVjdGlvbigpOworCisgICAgdmFyIGV4cGVjdCA9IHsKKyAgICAgIG5hbWU6ICc8QWxsIFRocmVhZHM+JywKKyAgICAgIGNhdGVnb3J5OiAncm9vdCcsCisgICAgICBjaGlsZHJlbjogWworICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ1RocmVhZCAyOiBUaGUgVGhyZWFkJywKKyAgICAgICAgICBjYXRlZ29yeTogJ1RocmVhZCcsCisgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAorICAgICAgICAgICAgICBuYW1lOiAnQ2hyb21lJywKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Nocm9tZScsCisgICAgICAgICAgICAgICAgICBuYW1lOiAnYScsCisgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAorICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdiJywKKyAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Nocm9tZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZl9ub2RlX2lkOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxMAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJzxzZWxmPicsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMzAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogMQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnR1BVIERyaXZlcicsCisgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2QnLAorICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogMywKKyAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyMAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9CisgICAgICAgICAgXQorICAgICAgICB9CisgICAgICBdCisgICAgfTsKKworICAgIHZhciBzdW5idXJzdERhdGEgPSB0ci51aS5lLmFuYWx5c2lzLmNyZWF0ZVN1bmJ1cnN0RGF0YShzLCAnY3ljbGVzJyk7CisgICAgYXNzZXJ0LmVxdWFsKEpTT04uc3RyaW5naWZ5KHN1bmJ1cnN0RGF0YSksIEpTT04uc3RyaW5naWZ5KGV4cGVjdCkpOworICB9KTsKKworICB0ZXN0KCdwcm9jZXNzT25seVNhbXBsZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHRocmVhZCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB0aHJlYWQubmFtZSA9ICdUaGUgVGhyZWFkJzsKKworICAgIHZhciBmQSA9IG5ldyBTdGFja0ZyYW1lKHVuZGVmaW5lZCwgMSwgJ0Nocm9tZScsICdhJywgNyk7CisgICAgdmFyIGZBQiA9IG5ldyBTdGFja0ZyYW1lKGZBLCAyLCAnQ2hyb21lJywgJ2InLCA3KTsKKyAgICB2YXIgZkFCQyA9IG5ldyBTdGFja0ZyYW1lKGZBQiwgMywgJ0Nocm9tZScsICdjJywgNyk7CisgICAgdmFyIGZBRCA9IG5ldyBTdGFja0ZyYW1lKGZBLCA0LCAnR1BVIERyaXZlcicsICdkJywgNyk7CisKKyAgICBzZWxlY3Rpb24ucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnY3ljbGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLCBmQUJDLCAxMCkpOworICAgIHNlbGVjdGlvbi5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdjeWNsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAsIGZBQiwgMTApKTsKKyAgICBzZWxlY3Rpb24ucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAncGFnZV9taXNzZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIGZBRCwgOSkpOworICAgIHZhciBleHBlY3QgPSB7CisgICAgICBuYW1lOiAnPEFsbCBUaHJlYWRzPicsCisgICAgICBjYXRlZ29yeTogJ3Jvb3QnLAorICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdUaHJlYWQgMjogVGhlIFRocmVhZCcsCisgICAgICAgICAgY2F0ZWdvcnk6ICdUaHJlYWQnLAorICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKKyAgICAgICAgICAgICAgbmFtZTogJ0Nocm9tZScsCisgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAorICAgICAgICAgICAgICAgICAgbmFtZTogJ2EnLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnR1BVIERyaXZlcicsCisgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2QnLAorICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogNCwKKyAgICAgICAgICAgICAgICAgICAgICBzaXplOiA5CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdCisgICAgICAgIH0KKyAgICAgIF0KKyAgICB9OworCisgICAgLy8gQWxvbmcgd2l0aCB0aGUgc2FtcGxlcywgcHVzaCBzb21lIHNsaWNlcyB0b28uCisgICAgLy8gVGhlIHBhbmVsIHNob3VsZCBjb21wbGV0ZWx5IGlnbm9yZSB0aGVzZS4KKyAgICBzZWxlY3Rpb24ucHVzaChuZXdTbGljZUV4KHsKKyAgICAgIHR5cGU6IHRyLm1vZGVsLlRocmVhZFNsaWNlLAorICAgICAgdGl0bGU6ICdhJywgc3RhcnQ6IDEsIGR1cmF0aW9uOiAyCisgICAgfSkpOworICAgIHNlbGVjdGlvbi5wdXNoKG5ld1NsaWNlRXgoeworICAgICAgdHlwZTogdHIubW9kZWwuVGhyZWFkU2xpY2UsCisgICAgICB0aXRsZTogJ2YnLCBzdGFydDogOSwgZHVyYXRpb246IDcKKyAgICB9KSk7CisKKyAgICB2YXIgc3VuYnVyc3REYXRhID0gdHIudWkuZS5hbmFseXNpcy5jcmVhdGVTdW5idXJzdERhdGEoCisgICAgICAgIHNlbGVjdGlvbiwgJ3BhZ2VfbWlzc2VzJyk7CisgICAgYXNzZXJ0LmVxdWFsKEpTT04uc3RyaW5naWZ5KHN1bmJ1cnN0RGF0YSksIEpTT04uc3RyaW5naWZ5KGV4cGVjdCkpOworICB9KTsKKworICB0ZXN0KCdjcmVhdGVTdW5idXJzdERhdGFTYW1wbGVUeXBlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHMgPSBjcmVhdGVTZWxlY3Rpb24oKTsKKworICAgIHZhciBleHBlY3QgPSB7CisgICAgICBuYW1lOiAnPEFsbCBUaHJlYWRzPicsCisgICAgICBjYXRlZ29yeTogJ3Jvb3QnLAorICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdUaHJlYWQgMjogVGhlIFRocmVhZCcsCisgICAgICAgICAgY2F0ZWdvcnk6ICdUaHJlYWQnLAorICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ2hyb21lJywKKyAgICAgICAgICAgICAgbmFtZTogJ0Nocm9tZScsCisgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDaHJvbWUnLAorICAgICAgICAgICAgICAgICAgbmFtZTogJ2EnLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnR1BVIERyaXZlcicsCisgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2QnLAorICAgICAgICAgICAgICAgICAgICAgIGxlYWZfbm9kZV9pZDogMywKKyAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxNgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9CisgICAgICAgICAgXQorICAgICAgICB9CisgICAgICBdCisgICAgfTsKKworICAgIHZhciBzdW5idXJzdERhdGEgPSB0ci51aS5lLmFuYWx5c2lzLmNyZWF0ZVN1bmJ1cnN0RGF0YShzLCAncGFnZV9taXNzZXMnKTsKKyAgICBhc3NlcnQuZXF1YWwoSlNPTi5zdHJpbmdpZnkoc3VuYnVyc3REYXRhKSwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0KSk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHMgPSBjcmVhdGVTZWxlY3Rpb24oKTsKKworICAgIHZhciBwYW5lbCA9IG5ldyB0ci51aS5lLmFuYWx5c2lzLlNhbXBsaW5nU3VtbWFyeVBhbmVsKCk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHBhbmVsKTsKKyAgICBwYW5lbC5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKKyAgICBwYW5lbC5zZWxlY3Rpb24gPSBzOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvY2MuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9jYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NWI4ODAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvY2MuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2NjLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9saXN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvdGlsZV92aWV3Lmh0bWwiPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9kZWJ1Z2dlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9kZWJ1Z2dlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZjAzZGIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyLmh0bWwKQEAgLTAsMCArMSw0NzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kcmFnX2hhbmRsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9pbmZvX2Jhci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9ob3RrZXlfY29udHJvbGxlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9saXN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvbW91c2VfbW9kZV9zZWxlY3Rvci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9vdmVybGF5Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5odG1sIj4KKworPHRlbXBsYXRlIGlkPSJ0ci11aS1lLWNocm9tZS1jYy1kaXNwbGF5LWl0ZW0tZGVidWdnZXItdGVtcGxhdGUiPgorICA8c3R5bGU+CisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciB7CisgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgIH0KKworICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1kaXNwbGF5LWl0ZW0tZGVidWdnZXIgPiBsZWZ0LXBhbmVsIHsKKyAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIG1pbi13aWR0aDogMzAwcHg7CisgICAgb3ZlcmZsb3cteTogYXV0bzsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgPgorICAgICAgICBkaXNwbGF5LWl0ZW0taW5mbyB7CisgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICBwYWRkaW5nLXRvcDogMnB4OworICB9CisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gbGVmdC1wYW5lbCA+CisgICAgICAgIGRpc3BsYXktaXRlbS1pbmZvIC50aXRsZSB7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgbWFyZ2luLWxlZnQ6IDVweDsKKyAgICBtYXJnaW4tcmlnaHQ6IDVweDsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgPgorICAgICAgICBkaXNwbGF5LWl0ZW0taW5mbyAuZXhwb3J0IHsKKyAgICBtYXJnaW46IDVweDsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IHgtZHJhZy1oYW5kbGUgeworICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87CisgIH0KKworICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1kaXNwbGF5LWl0ZW0tZGVidWdnZXIgPiByaWdodC1wYW5lbCB7CisgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgIH0KKworICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1kaXNwbGF5LWl0ZW0tZGVidWdnZXIgPiBsZWZ0LXBhbmVsID4KKyAgICAgIGRpc3BsYXktaXRlbS1pbmZvID4gaGVhZGVyIHsKKyAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU1NTsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgPgorICAgICAgZGlzcGxheS1pdGVtLWluZm8gPiAueC1saXN0LXZpZXcgPiBkaXYgeworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNTU1OworICAgIHBhZGRpbmctdG9wOiAzcHg7CisgICAgcGFkZGluZy1ib3R0b206IDNweDsKKyAgICBwYWRkaW5nLWxlZnQ6IDVweDsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgPgorICAgICAgZGlzcGxheS1pdGVtLWluZm8gPiAueC1saXN0LXZpZXcgPiBkaXY6aG92ZXIgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7CisgICAgY3Vyc29yOiBwb2ludGVyOworICB9CisKKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gcmlnaHQtcGFuZWwgPgorICAgICAgdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtbGlzdC12aWV3Lmhhc1BpY3R1cmVPcHMgeworICAgIGRpc3BsYXk6IGJsb2NrOworICB9CisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gcmlnaHQtcGFuZWwgPgorICAgICAgICB4LWRyYWctaGFuZGxlLmhhc1BpY3R1cmVPcHMgeworICAgIGRpc3BsYXk6IGJsb2NrOworICB9CisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtZGlzcGxheS1pdGVtLWRlYnVnZ2VyID4gcmlnaHQtcGFuZWwgPgorICAgICAgICB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1saXN0LXZpZXcgeworICAgIGRpc3BsYXk6IG5vbmU7CisgICAgb3ZlcmZsb3cteTogYXV0bzsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciA+IHJpZ2h0LXBhbmVsID4KKyAgICAgICAgeC1kcmFnLWhhbmRsZSB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlciByYXN0ZXItYXJlYSB7CisgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOworICAgIG1pbi1oZWlnaHQ6IDIwMHB4OworICAgIG1pbi13aWR0aDogMjAwcHg7CisgICAgb3ZlcmZsb3cteTogYXV0bzsKKyAgICBwYWRkaW5nLWxlZnQ6IDVweDsKKyAgfQorICA8L3N0eWxlPgorCisgIDxsZWZ0LXBhbmVsPgorICAgIDxkaXNwbGF5LWl0ZW0taW5mbz4KKyAgICAgIDxoZWFkZXI+CisgICAgICAgIDxzcGFuIGNsYXNzPSd0aXRsZSc+RGlzcGxheSBJdGVtIExpc3Q8L3NwYW4+CisgICAgICAgIDxzcGFuIGNsYXNzPSdzaXplJz48L3NwYW4+CisgICAgICAgIDxkaXYgY2xhc3M9J2V4cG9ydCc+CisgICAgICAgICAgPGlucHV0IGNsYXNzPSdkbGZpbGVuYW1lJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nZGlzcGxheWl0ZW1saXN0Lmpzb24nIC8+CisgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0nZGxleHBvcnQnPkV4cG9ydCBkaXNwbGF5IGl0ZW0gbGlzdDwvYnV0dG9uPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0nZXhwb3J0Jz4KKyAgICAgICAgICA8aW5wdXQgY2xhc3M9J3NrcGZpbGVuYW1lJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nc2twaWN0dXJlLnNrcCcgLz4KKyAgICAgICAgICA8YnV0dG9uIGNsYXNzPSdza3BleHBvcnQnPkV4cG9ydCBsaXN0IGFzIFNrUGljdHVyZTwvYnV0dG9uPgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvaGVhZGVyPgorICAgIDwvZGlzcGxheS1pdGVtLWluZm8+CisgIDwvbGVmdC1wYW5lbD4KKyAgPHJpZ2h0LXBhbmVsPgorICAgIDxyYXN0ZXItYXJlYT48Y2FudmFzPjwvY2FudmFzPjwvcmFzdGVyLWFyZWE+CisgIDwvcmlnaHQtcGFuZWw+Cis8L3RlbXBsYXRlPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuY2MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFRISVNfRE9DID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5vd25lckRvY3VtZW50OworCisgIC8qKgorICAgKiBEaXNwbGF5SXRlbURlYnVnZ2VyIGlzIGEgdmlldyBvZiBhIERpc3BsYXlJdGVtTGlzdFNuYXBzaG90IGZvciBpbnNwZWN0aW5nCisgICAqIGEgZGlzcGxheSBpdGVtIGxpc3QgYW5kIHRoZSBwaWN0dXJlcyB3aXRoaW4gaXQuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIERpc3BsYXlJdGVtRGVidWdnZXIgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICd0ci11aS1lLWNocm9tZS1jYy1kaXNwbGF5LWl0ZW0tZGVidWdnZXInKTsKKworICBEaXNwbGF5SXRlbURlYnVnZ2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgbm9kZSA9IHRyLnVpLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKKyAgICAgICAgICAnI3RyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1kZWJ1Z2dlci10ZW1wbGF0ZScsIFRISVNfRE9DKTsKKworICAgICAgdGhpcy5hcHBlbmRDaGlsZChub2RlKTsKKworICAgICAgdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy56b29tU2NhbGVWYWx1ZV8gPSAxOworCisgICAgICB0aGlzLnNpemVJbmZvXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLnNpemUnKTsKKyAgICAgIHRoaXMucmFzdGVyQXJlYV8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3Jhc3Rlci1hcmVhJyk7CisgICAgICB0aGlzLnJhc3RlckNhbnZhc18gPSB0aGlzLnJhc3RlckFyZWFfLnF1ZXJ5U2VsZWN0b3IoJ2NhbnZhcycpOworICAgICAgdGhpcy5yYXN0ZXJDdHhfID0gdGhpcy5yYXN0ZXJDYW52YXNfLmdldENvbnRleHQoJzJkJyk7CisKKyAgICAgIHRoaXMudHJhY2tNb3VzZV8oKTsKKworICAgICAgdGhpcy5kaXNwbGF5SXRlbUluZm9fID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdkaXNwbGF5LWl0ZW0taW5mbycpOworICAgICAgdGhpcy5kaXNwbGF5SXRlbUluZm9fLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ2NsaWNrJywgdGhpcy5vbkRpc3BsYXlJdGVtSW5mb0NsaWNrXy5iaW5kKHRoaXMpLCBmYWxzZSk7CisKKyAgICAgIHRoaXMuZGlzcGxheUl0ZW1MaXN0Vmlld18gPSBuZXcgdHIudWkuYi5MaXN0VmlldygpOworICAgICAgdGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlZCcsCisgICAgICAgICAgdGhpcy5vbkRpc3BsYXlJdGVtTGlzdFNlbGVjdGlvbl8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLmRpc3BsYXlJdGVtSW5mb18uYXBwZW5kQ2hpbGQodGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xyk7CisKKyAgICAgIHRoaXMuZGlzcGxheUxpc3RGaWxlbmFtZV8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5kbGZpbGVuYW1lJyk7CisgICAgICB0aGlzLmRpc3BsYXlMaXN0RXhwb3J0QnV0dG9uXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLmRsZXhwb3J0Jyk7CisgICAgICB0aGlzLmRpc3BsYXlMaXN0RXhwb3J0QnV0dG9uXy5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICdjbGljaycsIHRoaXMub25FeHBvcnREaXNwbGF5TGlzdENsaWNrZWRfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLnNrcEZpbGVuYW1lXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLnNrcGZpbGVuYW1lJyk7CisgICAgICB0aGlzLnNrcEV4cG9ydEJ1dHRvbl8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJy5za3BleHBvcnQnKTsKKyAgICAgIHRoaXMuc2twRXhwb3J0QnV0dG9uXy5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICdjbGljaycsIHRoaXMub25FeHBvcnRTa1BpY3R1cmVDbGlja2VkXy5iaW5kKHRoaXMpKTsKKworICAgICAgdmFyIGxlZnRQYW5lbCA9IHRoaXMucXVlcnlTZWxlY3RvcignbGVmdC1wYW5lbCcpOworCisgICAgICB2YXIgbWlkZGxlRHJhZ0hhbmRsZSA9IG5ldyB0ci51aS5iLkRyYWdIYW5kbGUoKTsKKyAgICAgIG1pZGRsZURyYWdIYW5kbGUuaG9yaXpvbnRhbCA9IGZhbHNlOworICAgICAgbWlkZGxlRHJhZ0hhbmRsZS50YXJnZXQgPSBsZWZ0UGFuZWw7CisKKyAgICAgIHZhciByaWdodFBhbmVsID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdyaWdodC1wYW5lbCcpOworCisgICAgICB0aGlzLmluZm9CYXJfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1pbmZvLWJhcicpOworICAgICAgdGhpcy5yYXN0ZXJBcmVhXy5pbnNlcnRCZWZvcmUodGhpcy5pbmZvQmFyXywgdGhpcy5yYXN0ZXJDYW52YXNfKTsKKworICAgICAgdGhpcy5pbnNlcnRCZWZvcmUobWlkZGxlRHJhZ0hhbmRsZSwgcmlnaHRQYW5lbCk7CisKKyAgICAgIHRoaXMucGljdHVyZV8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMucGljdHVyZU9wc0xpc3RWaWV3XyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5QaWN0dXJlT3BzTGlzdFZpZXcoKTsKKyAgICAgIHJpZ2h0UGFuZWwuaW5zZXJ0QmVmb3JlKHRoaXMucGljdHVyZU9wc0xpc3RWaWV3XywgdGhpcy5yYXN0ZXJBcmVhXyk7CisKKyAgICAgIHRoaXMucGljdHVyZU9wc0xpc3REcmFnSGFuZGxlXyA9IG5ldyB0ci51aS5iLkRyYWdIYW5kbGUoKTsKKyAgICAgIHRoaXMucGljdHVyZU9wc0xpc3REcmFnSGFuZGxlXy5ob3Jpem9udGFsID0gZmFsc2U7CisgICAgICB0aGlzLnBpY3R1cmVPcHNMaXN0RHJhZ0hhbmRsZV8udGFyZ2V0ID0gdGhpcy5waWN0dXJlT3BzTGlzdFZpZXdfOworICAgICAgcmlnaHRQYW5lbC5pbnNlcnRCZWZvcmUodGhpcy5waWN0dXJlT3BzTGlzdERyYWdIYW5kbGVfLCB0aGlzLnJhc3RlckFyZWFfKTsKKyAgICB9LAorCisgICAgZ2V0IHBpY3R1cmUoKSB7CisgICAgICByZXR1cm4gdGhpcy5waWN0dXJlXzsKKyAgICB9LAorCisgICAgc2V0IGRpc3BsYXlJdGVtTGlzdChkaXNwbGF5SXRlbUxpc3QpIHsKKyAgICAgIHRoaXMuZGlzcGxheUl0ZW1MaXN0XyA9IGRpc3BsYXlJdGVtTGlzdDsKKyAgICAgIHRoaXMucGljdHVyZSA9IHRoaXMuZGlzcGxheUl0ZW1MaXN0XzsKKworICAgICAgdGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xy5jbGVhcigpOworICAgICAgdGhpcy5kaXNwbGF5SXRlbUxpc3RfLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAgICAgICB2YXIgbmV3TGlzdEl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgbmV3TGlzdEl0ZW0uaW5uZXJUZXh0ID0gaXRlbTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbXByb3ZlIG91ciBvdXRwdXQgdG8gYmV0dGVyIGZvcm1hdCB0aGlzLgorICAgICAgICB2YXIgdGV4dCA9IGl0ZW0uc2twNjQgPyBpdGVtLm5hbWUgOiBpdGVtOworICAgICAgICB0aGlzLmRpc3BsYXlJdGVtTGlzdFZpZXdfLmFkZEl0ZW0odGV4dCk7CisgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBzZXQgcGljdHVyZShwaWN0dXJlKSB7CisgICAgICB0aGlzLnBpY3R1cmVfID0gcGljdHVyZTsKKworICAgICAgLy8gSGlkZSB0aGUgb3BzIGxpc3QgaWYgd2UgYXJlIHNob3dpbmcgdGhlICJtYWluIiBkaXNwbGF5IGl0ZW0gbGlzdC4KKyAgICAgIHZhciBzaG93T3BzTGlzdCA9IHBpY3R1cmUgJiYgcGljdHVyZSAhPT0gdGhpcy5kaXNwbGF5SXRlbUxpc3RfOworICAgICAgdGhpcy51cGRhdGVEcmF3T3BzTGlzdF8oc2hvd09wc0xpc3QpOworCisgICAgICBpZiAocGljdHVyZSkgeworICAgICAgICB2YXIgc2l6ZSA9IHRoaXMuZ2V0UmFzdGVyQ2FudmFzU2l6ZV8oKTsKKyAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLndpZHRoID0gc2l6ZS53aWR0aDsKKyAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLmhlaWdodCA9IHNpemUuaGVpZ2h0OworICAgICAgfQorCisgICAgICB2YXIgYm91bmRzID0gdGhpcy5yYXN0ZXJBcmVhXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBzZWxlY3RvckJvdW5kcyA9IHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8ucG9zID0geworICAgICAgICB4OiAoYm91bmRzLnJpZ2h0IC0gc2VsZWN0b3JCb3VuZHMud2lkdGggLSAxMCksCisgICAgICAgIHk6IGJvdW5kcy50b3AKKyAgICAgIH07CisKKyAgICAgIHRoaXMucmFzdGVyaXplXygpOworCisgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldFJhc3RlckNhbnZhc1NpemVfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmFzdGVyQXJlYV8pOworICAgICAgdmFyIHdpZHRoID0gcGFyc2VJbnQoc3R5bGUud2lkdGgpOworICAgICAgdmFyIGhlaWdodCA9IHBhcnNlSW50KHN0eWxlLmhlaWdodCk7CisgICAgICBpZiAodGhpcy5waWN0dXJlXykgeworICAgICAgICB3aWR0aCA9IE1hdGgubWF4KHdpZHRoLCB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdC53aWR0aCk7CisgICAgICAgIGhlaWdodCA9IE1hdGgubWF4KGhlaWdodCwgdGhpcy5waWN0dXJlXy5sYXllclJlY3QuaGVpZ2h0KTsKKyAgICAgIH0KKworICAgICAgcmV0dXJuIHsKKyAgICAgICAgd2lkdGg6IHdpZHRoLAorICAgICAgICBoZWlnaHQ6IGhlaWdodAorICAgICAgfTsKKyAgICB9LAorCisgICAgc2NoZWR1bGVVcGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMudXBkYXRlQ29udGVudHNQZW5kaW5nXykKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c1BlbmRpbmdfID0gdHJ1ZTsKKyAgICAgIHRyLmIucmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5UaGlzRnJhbWVJZlBvc3NpYmxlKAorICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfLmJpbmQodGhpcykKKyAgICAgICk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzUGVuZGluZ18gPSBmYWxzZTsKKworICAgICAgaWYgKHRoaXMucGljdHVyZV8pIHsKKyAgICAgICAgdGhpcy5zaXplSW5mb18udGV4dENvbnRlbnQgPSAnKCcgKworICAgICAgICAgICAgdGhpcy5waWN0dXJlXy5sYXllclJlY3Qud2lkdGggKyAnIHggJyArCisgICAgICAgICAgICB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdC5oZWlnaHQgKyAnKSc7CisgICAgICB9CisKKyAgICAgIC8vIFJldHVybiBpZiBwaWN0dXJlIGhhc24ndCBmaW5pc2hlZCByYXN0ZXJpemluZy4KKyAgICAgIGlmICghdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuaW5mb0Jhcl8udmlzaWJsZSA9IGZhbHNlOworICAgICAgdGhpcy5pbmZvQmFyXy5yZW1vdmVBbGxCdXR0b25zKCk7CisgICAgICBpZiAodGhpcy5waWN0dXJlQXNJbWFnZURhdGFfLmVycm9yKSB7CisgICAgICAgIHRoaXMuaW5mb0Jhcl8ubWVzc2FnZSA9ICdDYW5ub3QgcmFzdGVyaXplLi4uJzsKKyAgICAgICAgdGhpcy5pbmZvQmFyXy5hZGRCdXR0b24oJ01vcmUgaW5mby4uLicsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB2YXIgb3ZlcmxheSA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICAgICAgICBvdmVybGF5LnRleHRDb250ZW50ID0gdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfLmVycm9yOworICAgICAgICAgIG92ZXJsYXkudmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuaW5mb0Jhcl8udmlzaWJsZSA9IHRydWU7CisgICAgICB9CisKKyAgICAgIHRoaXMuZHJhd1BpY3R1cmVfKCk7CisgICAgfSwKKworICAgIGRyYXdQaWN0dXJlXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc2l6ZSA9IHRoaXMuZ2V0UmFzdGVyQ2FudmFzU2l6ZV8oKTsKKyAgICAgIGlmIChzaXplLndpZHRoICE9PSB0aGlzLnJhc3RlckNhbnZhc18ud2lkdGgpCisgICAgICAgIHRoaXMucmFzdGVyQ2FudmFzXy53aWR0aCA9IHNpemUud2lkdGg7CisgICAgICBpZiAoc2l6ZS5oZWlnaHQgIT09IHRoaXMucmFzdGVyQ2FudmFzXy5oZWlnaHQpCisgICAgICAgIHRoaXMucmFzdGVyQ2FudmFzXy5oZWlnaHQgPSBzaXplLmhlaWdodDsKKworICAgICAgdGhpcy5yYXN0ZXJDdHhfLmNsZWFyUmVjdCgwLCAwLCBzaXplLndpZHRoLCBzaXplLmhlaWdodCk7CisKKyAgICAgIGlmICghdGhpcy5waWN0dXJlXyB8fCAhdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfLmltYWdlRGF0YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgaW1nQ2FudmFzID0gdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfLmFzQ2FudmFzKCk7CisgICAgICB2YXIgdyA9IGltZ0NhbnZhcy53aWR0aDsKKyAgICAgIHZhciBoID0gaW1nQ2FudmFzLmhlaWdodDsKKyAgICAgIHRoaXMucmFzdGVyQ3R4Xy5kcmF3SW1hZ2UoaW1nQ2FudmFzLCAwLCAwLCB3LCBoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCB3ICogdGhpcy56b29tU2NhbGVWYWx1ZV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGggKiB0aGlzLnpvb21TY2FsZVZhbHVlXyk7CisgICAgfSwKKworICAgIHJhc3Rlcml6ZV86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMucGljdHVyZV8pIHsKKyAgICAgICAgdGhpcy5waWN0dXJlXy5yYXN0ZXJpemUoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHNob3dPdmVyZHJhdzogZmFsc2UKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB0aGlzLm9uUmFzdGVyQ29tcGxldGVfLmJpbmQodGhpcykpOworICAgICAgfQorICAgIH0sCisKKyAgICBvblJhc3RlckNvbXBsZXRlXzogZnVuY3Rpb24ocGljdHVyZUFzSW1hZ2VEYXRhKSB7CisgICAgICB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8gPSBwaWN0dXJlQXNJbWFnZURhdGE7CisgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIG9uRGlzcGxheUl0ZW1MaXN0U2VsZWN0aW9uXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIHNlbGVjdGVkID0gdGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xy5zZWxlY3RlZEVsZW1lbnQ7CisKKyAgICAgIGlmICghc2VsZWN0ZWQpIHsKKyAgICAgICAgdGhpcy5waWN0dXJlID0gdGhpcy5kaXNwbGF5SXRlbUxpc3RfOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoCisgICAgICAgICAgdGhpcy5kaXNwbGF5SXRlbUxpc3RWaWV3Xy5jaGlsZHJlbiwgc2VsZWN0ZWQpOworICAgICAgdmFyIGRpc3BsYXlJdGVtID0gdGhpcy5kaXNwbGF5SXRlbUxpc3RfLml0ZW1zW2luZGV4XTsKKyAgICAgIGlmIChkaXNwbGF5SXRlbSAmJiBkaXNwbGF5SXRlbS5za3A2NCkKKyAgICAgICAgdGhpcy5waWN0dXJlID0gbmV3IHRyLmUuY2MuUGljdHVyZSgKKyAgICAgICAgICAgIGRpc3BsYXlJdGVtLnNrcDY0LCB0aGlzLmRpc3BsYXlJdGVtTGlzdF8ubGF5ZXJSZWN0KTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5waWN0dXJlID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBvbkRpc3BsYXlJdGVtSW5mb0NsaWNrXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKGUgJiYgZS50YXJnZXQgPT0gdGhpcy5kaXNwbGF5SXRlbUluZm9fKSB7CisgICAgICAgIHRoaXMuZGlzcGxheUl0ZW1MaXN0Vmlld18uc2VsZWN0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOworICAgICAgfQorICAgIH0sCisKKyAgICB1cGRhdGVEcmF3T3BzTGlzdF86IGZ1bmN0aW9uKHNob3dPcHNMaXN0KSB7CisgICAgICBpZiAoc2hvd09wc0xpc3QpIHsKKyAgICAgICAgdGhpcy5waWN0dXJlT3BzTGlzdFZpZXdfLnBpY3R1cmUgPSB0aGlzLnBpY3R1cmVfOworICAgICAgICBpZiAodGhpcy5waWN0dXJlT3BzTGlzdFZpZXdfLm51bU9wcyA+IDApIHsKKyAgICAgICAgICB0aGlzLnBpY3R1cmVPcHNMaXN0Vmlld18uY2xhc3NMaXN0LmFkZCgnaGFzUGljdHVyZU9wcycpOworICAgICAgICAgIHRoaXMucGljdHVyZU9wc0xpc3REcmFnSGFuZGxlXy5jbGFzc0xpc3QuYWRkKCdoYXNQaWN0dXJlT3BzJyk7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMucGljdHVyZU9wc0xpc3RWaWV3Xy5jbGFzc0xpc3QucmVtb3ZlKCdoYXNQaWN0dXJlT3BzJyk7CisgICAgICAgIHRoaXMucGljdHVyZU9wc0xpc3REcmFnSGFuZGxlXy5jbGFzc0xpc3QucmVtb3ZlKCdoYXNQaWN0dXJlT3BzJyk7CisgICAgICB9CisgICAgfSwKKworICAgIHRyYWNrTW91c2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgICAndHItdWktYi1tb3VzZS1tb2RlLXNlbGVjdG9yJyk7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy50YXJnZXRFbGVtZW50ID0gdGhpcy5yYXN0ZXJBcmVhXzsKKyAgICAgIHRoaXMucmFzdGVyQXJlYV8uYXBwZW5kQ2hpbGQodGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8pOworCisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zdXBwb3J0ZWRNb2RlTWFzayA9CisgICAgICAgICAgdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT007CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5tb2RlID0gdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT007CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5kZWZhdWx0TW9kZSA9IHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERS5aT09NOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0dGluZ3NLZXkgPSAncGljdHVyZURlYnVnZ2VyLm1vdXNlTW9kZVNlbGVjdG9yJzsKKworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW56b29tJywKKyAgICAgICAgICB0aGlzLm9uQmVnaW5ab29tXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXpvb20nLAorICAgICAgICAgIHRoaXMub25VcGRhdGVab29tXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHpvb20nLAorICAgICAgICAgIHRoaXMub25FbmRab29tXy5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgb25CZWdpblpvb21fOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLmlzWm9vbWluZ18gPSB0cnVlOworCisgICAgICB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKKworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCisKKyAgICBvblVwZGF0ZVpvb21fOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMuaXNab29taW5nXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgY3VycmVudE1vdXNlVmlld1BvcyA9IHRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7CisKKyAgICAgIC8vIFRha2UgdGhlIGRpc3RhbmNlIHRoZSBtb3VzZSBoYXMgbW92ZWQgYW5kIHdlIHdhbnQgdG8gem9vbSBhdCBhYm91dAorICAgICAgLy8gMS8xMDAwdGggb2YgdGhhdCBzcGVlZC4gMC4wMSBmZWVscyBqdW1weS4gVGhpcyBjb3VsZCBwb3NzaWJseSBiZSB0dW5lZAorICAgICAgLy8gbW9yZSBpZiBwZW9wbGUgZmVlbCBpdCdzIHRvbyBzbG93LgorICAgICAgdGhpcy56b29tU2NhbGVWYWx1ZV8gKz0KKyAgICAgICAgICAoKHRoaXMubGFzdE1vdXNlVmlld1Bvc18ueSAtIGN1cnJlbnRNb3VzZVZpZXdQb3MueSkgKiAwLjAwMSk7CisgICAgICB0aGlzLnpvb21TY2FsZVZhbHVlXyA9IE1hdGgubWF4KHRoaXMuem9vbVNjYWxlVmFsdWVfLCAwLjEpOworCisgICAgICB0aGlzLmRyYXdQaWN0dXJlXygpOworCisgICAgICB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfID0gY3VycmVudE1vdXNlVmlld1BvczsKKyAgICB9LAorCisgICAgb25FbmRab29tXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5sYXN0TW91c2VWaWV3UG9zXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuaXNab29taW5nXyA9IGZhbHNlOworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCisKKyAgICBleHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXzogZnVuY3Rpb24oZSkgeworICAgICAgcmV0dXJuIHsKKyAgICAgICAgeDogZS5jbGllbnRYIC0gdGhpcy5yYXN0ZXJBcmVhXy5vZmZzZXRMZWZ0LAorICAgICAgICB5OiBlLmNsaWVudFkgLSB0aGlzLnJhc3RlckFyZWFfLm9mZnNldFRvcAorICAgICAgfTsKKyAgICB9LAorCisgICAgc2F2ZUZpbGVfOiBmdW5jdGlvbihmaWxlbmFtZSwgcmF3RGF0YSkgeworICAgICAgaWYgKCFyYXdEYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIENvbnZlcnQgdGhpcyBTdHJpbmcgaW50byBhbiBVaW50OEFycmF5CisgICAgICB2YXIgbGVuZ3RoID0gcmF3RGF0YS5sZW5ndGg7CisgICAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIobGVuZ3RoKTsKKyAgICAgIHZhciB1aW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpOworICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCBsZW5ndGg7IGMrKykKKyAgICAgICAgdWludDhBcnJheVtjXSA9IHJhd0RhdGEuY2hhckNvZGVBdChjKTsKKworICAgICAgLy8gQ3JlYXRlIGEgYmxvYiBVUkwgZnJvbSB0aGUgYmluYXJ5IGFycmF5LgorICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbdWludDhBcnJheV0sIHt0eXBlOiAnYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5J30pOworICAgICAgdmFyIGJsb2JVcmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKKworICAgICAgLy8gQ3JlYXRlIGEgbGluayBhbmQgY2xpY2sgb24gaXQuCisgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdhJyk7CisgICAgICBsaW5rLmhyZWYgPSBibG9iVXJsOworICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVuYW1lOworICAgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnRzJyk7CisgICAgICBldmVudC5pbml0TW91c2VFdmVudCgKKyAgICAgICAgICAnY2xpY2snLCB0cnVlLCBmYWxzZSwgd2luZG93LCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTsKKyAgICAgIGxpbmsuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgfSwKKworICAgIG9uRXhwb3J0RGlzcGxheUxpc3RDbGlja2VkXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcmF3RGF0YSA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZGlzcGxheUl0ZW1MaXN0Xy5pdGVtcyk7CisgICAgICB0aGlzLnNhdmVGaWxlXyh0aGlzLmRpc3BsYXlMaXN0RmlsZW5hbWVfLnZhbHVlLCByYXdEYXRhKTsKKyAgICB9LAorCisgICAgb25FeHBvcnRTa1BpY3R1cmVDbGlja2VkXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcmF3RGF0YSA9IGF0b2IodGhpcy5waWN0dXJlXy5nZXRCYXNlNjRTa3BEYXRhKCkpOworICAgICAgdGhpcy5zYXZlRmlsZV8odGhpcy5za3BGaWxlbmFtZV8udmFsdWUsIHJhd0RhdGEpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIERpc3BsYXlJdGVtRGVidWdnZXI6IERpc3BsYXlJdGVtRGVidWdnZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fZGVidWdnZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZjViYzcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2RlYnVnZ2VyX3Rlc3QuaHRtbApAQCAtMCwwICsxLDEzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fZGVidWdnZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXNwbGF5SXRlbUxpc3QgPSBuZXcgdHIuZS5jYy5EaXNwbGF5SXRlbUxpc3RTbmFwc2hvdCgKKyAgICAgIHtpZDogJzMxNDE1J30sCisgICAgICAxMCwKKyAgICAgIHsKKyAgICAgICAgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAnbGF5ZXJfcmVjdCc6IFstMTUsIC0xNSwgNDYsIDgzM10sCisgICAgICAgICAgJ2l0ZW1zJzogWworICAgICAgICAgICAgJ0JlZ2luQ2xpcERpc3BsYXlJdGVtJywKKyAgICAgICAgICAgICdFbmRDbGlwRGlzcGxheUl0ZW0nCisgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICAnc2twNjQnOiAnW2Fub3RoZXIgc2tpYSBwaWN0dXJlIGluIGJhc2U2NF0nfSk7CisgICAgZGlzcGxheUl0ZW1MaXN0LnByZUluaXRpYWxpemUoKTsKKyAgICBkaXNwbGF5SXRlbUxpc3QuaW5pdGlhbGl6ZSgpOworCisgICAgdmFyIGRiZyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5EaXNwbGF5SXRlbURlYnVnZ2VyKCk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRiZyk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGRiZy5kaXNwbGF5SXRlbUxpc3RfKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoZGJnLnBpY3R1cmVfKTsKKyAgICBkYmcuZGlzcGxheUl0ZW1MaXN0ID0gZGlzcGxheUl0ZW1MaXN0OworICAgIGFzc2VydC5pc0RlZmluZWQoZGJnLmRpc3BsYXlJdGVtTGlzdF8pOworICAgIGFzc2VydC5pc0RlZmluZWQoZGJnLnBpY3R1cmVfKTsKKyAgICBhc3NlcnQuZXF1YWwoZGJnLmRpc3BsYXlJdGVtTGlzdF8uaXRlbXMubGVuZ3RoLCAyKTsKKyAgICBkYmcuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7CisgIH0pOworCisgIHRlc3QoJ3NlbGVjdGlvbnMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGlzcGxheUl0ZW1MaXN0ID0gbmV3IHRyLmUuY2MuRGlzcGxheUl0ZW1MaXN0U25hcHNob3QoCisgICAgICB7aWQ6ICczMTQxNSd9LAorICAgICAgMTAsCisgICAgICB7CisgICAgICAgICdwYXJhbXMnOiB7CisgICAgICAgICAgJ2xheWVyX3JlY3QnOiBbLTE1LCAtMTUsIDQ2LCA4MzNdLAorICAgICAgICAgICdpdGVtcyc6IFsKKyAgICAgICAgICAgICdCZWdpbkNsaXBEaXNwbGF5SXRlbScsCisgICAgICAgICAgICAnVHJhbnNmb3JtRGlzcGxheUl0ZW0nLAorICAgICAgICAgICAgeyduYW1lJzogJ0RyYXdpbmdEaXNwbGF5SXRlbScsICdza3A2NCc6ICdbc2tpYSBwaWN0dXJlIGluIGJhc2U2NF0nfSwKKyAgICAgICAgICAgICdFbmRUcmFuc2Zvcm1EaXNwbGF5SXRlbScsCisgICAgICAgICAgICAnRW5kQ2xpcERpc3BsYXlJdGVtJworICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgJ3NrcDY0JzogJ1thbm90aGVyIHNraWEgcGljdHVyZSBpbiBiYXNlNjRdJ30pOworICAgIGRpc3BsYXlJdGVtTGlzdC5wcmVJbml0aWFsaXplKCk7CisgICAgZGlzcGxheUl0ZW1MaXN0LmluaXRpYWxpemUoKTsKKworICAgIHZhciBkYmcgPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuRGlzcGxheUl0ZW1EZWJ1Z2dlcigpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChkYmcpOworICAgIGRiZy5kaXNwbGF5SXRlbUxpc3QgPSBkaXNwbGF5SXRlbUxpc3Q7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChkYmcuZGlzcGxheUl0ZW1MaXN0Xyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChkYmcucGljdHVyZV8pOworICAgIGFzc2VydC5lcXVhbChkYmcuZGlzcGxheUl0ZW1MaXN0Xy5pdGVtcy5sZW5ndGgsIDUpOworCisgICAgdmFyIGluaXRpYWxQaWN0dXJlID0gZGJnLnBpY3R1cmVfOworICAgIGFzc2VydC5pc0Fib3ZlKGluaXRpYWxQaWN0dXJlLmd1aWQsIDApOworCisgICAgLy8gU2VsZWN0IHRoZSBkcmF3aW5nIGRpc3BsYXkgaXRlbSBhbmQgbWFrZSBzdXJlIHRoZSBwaWN0dXJlIHVwZGF0ZXMuCisgICAgdmFyIGxpc3RWaWV3ID0gZGJnLmRpc3BsYXlJdGVtTGlzdFZpZXdfOworICAgIGxpc3RWaWV3LnNlbGVjdGVkRWxlbWVudCA9IGxpc3RWaWV3LmdldEVsZW1lbnRCeUluZGV4KDMpOworICAgIHZhciB1cGRhdGVkUGljdHVyZSA9IGRiZy5waWN0dXJlXzsKKyAgICBhc3NlcnQuaXNBYm92ZSh1cGRhdGVkUGljdHVyZS5ndWlkLCAwKTsKKyAgICBhc3NlcnQubm90RXF1YWwoaW5pdGlhbFBpY3R1cmUuZ3VpZCwgdXBkYXRlZFBpY3R1cmUuZ3VpZCk7CisKKyAgICAvLyBTZWxlY3QgdGhlIFRyYW5zZm9ybURpc3BsYXlJdGVtIGFuZCBtYWtlIHN1cmUgdGhlIHBpY3R1cmUgaXMgYmxhbmsuCisgICAgbGlzdFZpZXcuc2VsZWN0ZWRFbGVtZW50ID0gbGlzdFZpZXcuZ2V0RWxlbWVudEJ5SW5kZXgoMik7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKGRiZy5waWN0dXJlXyk7CisKKyAgICAvLyBEZXNlbGVjdCBhIGxpc3QgaXRlbSBhbmQgbWFrZSBzdXJlIHRoZSBwaWN0dXJlIGlzIHJlc2V0IHRvIHRoZSBvcmlnaW5hbC4KKyAgICBsaXN0Vmlldy5zZWxlY3RlZEVsZW1lbnQgPSB1bmRlZmluZWQ7CisgICAgdXBkYXRlZFBpY3R1cmUgPSBkYmcucGljdHVyZV87CisgICAgYXNzZXJ0LmlzQWJvdmUodXBkYXRlZFBpY3R1cmUuZ3VpZCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKGluaXRpYWxQaWN0dXJlLmd1aWQsIHVwZGF0ZWRQaWN0dXJlLmd1aWQpOworCisgICAgZGJnLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOworICB9KTsKKworICB0ZXN0KCdleHBvcnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGlzcGxheUl0ZW1MaXN0ID0gbmV3IHRyLmUuY2MuRGlzcGxheUl0ZW1MaXN0U25hcHNob3QoCisgICAgICB7aWQ6ICczMTQxNSd9LAorICAgICAgMTAsCisgICAgICB7CisgICAgICAgICdwYXJhbXMnOiB7CisgICAgICAgICAgJ2xheWVyX3JlY3QnOiBbLTE1LCAtMTUsIDQ2LCA4MzNdLAorICAgICAgICAgICdpdGVtcyc6IFsKKyAgICAgICAgICAgICdCZWdpbkNsaXBEaXNwbGF5SXRlbScsCisgICAgICAgICAgICAnRW5kQ2xpcERpc3BsYXlJdGVtJworICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgJ3NrcDY0JzogJ2MydHdhV04wZFhKbCd9KTsKKyAgICBkaXNwbGF5SXRlbUxpc3QucHJlSW5pdGlhbGl6ZSgpOworICAgIGRpc3BsYXlJdGVtTGlzdC5pbml0aWFsaXplKCk7CisKKyAgICB2YXIgZGJnID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLkRpc3BsYXlJdGVtRGVidWdnZXIoKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGJnKTsKKyAgICBkYmcuZGlzcGxheUl0ZW1MaXN0ID0gZGlzcGxheUl0ZW1MaXN0OworCisgICAgdmFyIG9uU2F2ZURpc3BsYXlMaXN0Q2FsbGVkID0gZmFsc2U7CisgICAgZGJnLnNhdmVGaWxlXyA9IGZ1bmN0aW9uKGZpbGVuYW1lLCByYXdEYXRhKSB7CisgICAgICBvblNhdmVEaXNwbGF5TGlzdENhbGxlZCA9IHRydWU7CisgICAgICBhc3NlcnQuZXF1YWwoZmlsZW5hbWUsICdkaXNwbGF5aXRlbWxpc3QuanNvbicpOworICAgICAgYXNzZXJ0LmVxdWFsKHJhd0RhdGEsICdbIkJlZ2luQ2xpcERpc3BsYXlJdGVtIiwiRW5kQ2xpcERpc3BsYXlJdGVtIl0nKTsKKyAgICB9OworICAgIGRiZy5vbkV4cG9ydERpc3BsYXlMaXN0Q2xpY2tlZF8oKTsKKyAgICBhc3NlcnQob25TYXZlRGlzcGxheUxpc3RDYWxsZWQpOworCisgICAgdmFyIG9uU2F2ZVNrUGljdHVyZUNhbGxlZCA9IGZhbHNlOworICAgIGRiZy5zYXZlRmlsZV8gPSBmdW5jdGlvbihmaWxlbmFtZSwgcmF3RGF0YSkgeworICAgICAgb25TYXZlU2tQaWN0dXJlQ2FsbGVkID0gdHJ1ZTsKKyAgICAgIGFzc2VydC5lcXVhbChmaWxlbmFtZSwgJ3NrcGljdHVyZS5za3AnKTsKKyAgICAgIGFzc2VydC5lcXVhbChyYXdEYXRhLCAnc2twaWN0dXJlJyk7CisgICAgfTsKKyAgICBkYmcub25FeHBvcnRTa1BpY3R1cmVDbGlja2VkXygpOworICAgIGFzc2VydChvblNhdmVTa1BpY3R1cmVDYWxsZWQpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3Rfdmlldy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3Rfdmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI2NWY0YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdF92aWV3LmNzcwpAQCAtMCwwICsxLDkgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgKi8KKworKiAvZGVlcC8gLnRyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1saXN0LXZpZXcgeworICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7CisgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fbGlzdF92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3Rfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmNmVlYmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvZGlzcGxheV9pdGVtX2xpc3Rfdmlldy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9saXN0X3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2Rpc3BsYXlfaXRlbV9saXN0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9kaXNwbGF5X2l0ZW1fZGVidWdnZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmNocm9tZS5jYycsIGZ1bmN0aW9uKCkgeworICAvKgorICAgKiBEaXNwbGF5cyBhIGRpc3BsYXkgaXRlbSBzbmFwc2hvdCBpbiBhIGh1bWFuIHJlYWRhYmxlIGZvcm0uCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIERpc3BsYXlJdGVtU25hcHNob3RWaWV3ID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAndHItdWktZS1jaHJvbWUtY2MtZGlzcGxheS1pdGVtLWxpc3QtdmlldycsCisgICAgICB0ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcpOworCisgIERpc3BsYXlJdGVtU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3RyLXVpLWUtY2hyb21lLWNjLWRpc3BsYXktaXRlbS1saXN0LXZpZXcnKTsKKyAgICAgIHRoaXMuZGlzcGxheUl0ZW1EZWJ1Z2dlcl8gPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuRGlzcGxheUl0ZW1EZWJ1Z2dlcigpOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmRpc3BsYXlJdGVtRGVidWdnZXJfKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMub2JqZWN0U25hcHNob3RfICYmIHRoaXMuZGlzcGxheUl0ZW1EZWJ1Z2dlcl8pCisgICAgICAgIHRoaXMuZGlzcGxheUl0ZW1EZWJ1Z2dlcl8uZGlzcGxheUl0ZW1MaXN0ID0gdGhpcy5vYmplY3RTbmFwc2hvdF87CisgICAgfQorICB9OworCisgIHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5yZWdpc3RlcigKKyAgICAgIERpc3BsYXlJdGVtU25hcHNob3RWaWV3LAorICAgICAgeworICAgICAgICB0eXBlTmFtZXM6IFsnY2M6OkRpc3BsYXlJdGVtTGlzdCddLAorICAgICAgICBzaG93SW5zdGFuY2VzOiBmYWxzZQorICAgICAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBEaXNwbGF5SXRlbVNuYXBzaG90VmlldzogRGlzcGxheUl0ZW1TbmFwc2hvdFZpZXcKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvaW1hZ2VzL2lucHV0LWV2ZW50LnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9pbWFnZXMvaW5wdXQtZXZlbnQucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy9jaHJvbWUvY2MvaW1hZ2VzL2lucHV0LWV2ZW50LnBuZwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2ltYWdlcy9pbnB1dC1ldmVudC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2ltYWdlcy9pbnB1dC1ldmVudC5zdmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvaW1hZ2VzL2lucHV0LWV2ZW50LnN2ZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2NjL2ltYWdlcy9pbnB1dC1ldmVudC5zdmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9pbWFnZXMvaW5wdXQtZXZlbnQuc3ZnCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfcGlja2VyLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NDFiNGQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfcGlja2VyLmNzcwpAQCAtMCwwICsxLDQzIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorICovCisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWxheWVyLXBpY2tlciB7CisgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1sYXllci1waWNrZXIgPiB0b3AtY29udHJvbHMgeworICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOworICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIDAsIDEwMCUgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tKCNFNUU1RTUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvKCNEMUQxRDEpKTsKKyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4ZThlOGU7CisgIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTsKKyAgZGlzcGxheTogaW5saW5lOworICBmb250LXNpemU6IDE0cHg7CisgIHBhZGRpbmctbGVmdDogMnB4OworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1sYXllci1waWNrZXIgPiB0b3AtY29udHJvbHMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7CisgICAgdmVydGljYWwtYWxpZ246IC0ycHg7Cit9CisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWxheWVyLXBpY2tlciA+IC54LWxpc3QtdmlldyB7CisgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgIG92ZXJmbG93OiBhdXRvOworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1sYXllci1waWNrZXIgPiB0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXcgeworICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOworICBoZWlnaHQ6IDIwMHB4OworICBvdmVyZmxvdzogYXV0bzsKK30KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtbGF5ZXItcGlja2VyID4gdHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3ICogeworICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7CisgIGN1cnNvcjogdGV4dDsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzcyNjVhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3BpY2tlci5odG1sCkBAIC0wLDAgKzEsMzIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl9waWNrZXIuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2NvbnN0YW50cy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy91dGlsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kcmFnX2hhbmRsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9saXN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2Mvc2VsZWN0aW9uLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuY2MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIGNvbnN0YW50cyA9IHRyLmUuY2MuY29uc3RhbnRzOworICB2YXIgYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXMgPSB0ci5lLmNjLmJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzOworICB2YXIgUkVOREVSX1BBU1NfUVVBRFMgPQorICAgICAgTWF0aC5tYXgoY29uc3RhbnRzLkFDVElWRV9UUkVFLCBjb25zdGFudHMuUEVORElOR19UUkVFKSArIDE7CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIExheWVyUGlja2VyID0gdHIudWkuYi5kZWZpbmUoJ3RyLXVpLWUtY2hyb21lLWNjLWxheWVyLXBpY2tlcicpOworCisgIExheWVyUGlja2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmx0aGlfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5jb250cm9sc18gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0b3AtY29udHJvbHMnKTsKKyAgICAgIHRoaXMucmVuZGVyUGFzc1F1YWRzXyA9IGZhbHNlOworCisKKyAgICAgIHRoaXMuaXRlbUxpc3RfID0gbmV3IHRyLnVpLmIuTGlzdFZpZXcoKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9sc18pOworCisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuaXRlbUxpc3RfKTsKKworICAgICAgdGhpcy5pdGVtTGlzdF8uYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAnc2VsZWN0aW9uLWNoYW5nZWQnLCB0aGlzLm9uSXRlbVNlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICAgIHRoaXMsICd3aGljaFRyZWUnLAorICAgICAgICAgICdsYXllclBpY2tlci53aGljaFRyZWUnLCBjb25zdGFudHMuQUNUSVZFX1RSRUUsCisgICAgICAgICAgW3tsYWJlbDogJ0FjdGl2ZSB0cmVlJywgdmFsdWU6IGNvbnN0YW50cy5BQ1RJVkVfVFJFRX0sCisgICAgICAgICAgIHtsYWJlbDogJ1BlbmRpbmcgdHJlZScsIHZhbHVlOiBjb25zdGFudHMuUEVORElOR19UUkVFfSwKKyAgICAgICAgICAge2xhYmVsOiAnUmVuZGVyIHBhc3MgcXVhZHMnLCB2YWx1ZTogUkVOREVSX1BBU1NfUVVBRFN9XSkpOworCisgICAgICB0aGlzLnNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzXyA9IGZhbHNlOworICAgICAgdmFyIHNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCgKKyAgICAgICAgICB0aGlzLCAnc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnMnLAorICAgICAgICAgICdsYXllclBpY2tlci5zaG93UHVyZVRyYW5zZm9ybUxheWVycycsIGZhbHNlLAorICAgICAgICAgICdUcmFuc2Zvcm0gbGF5ZXJzJyk7CisgICAgICBzaG93UHVyZVRyYW5zZm9ybUxheWVycy5jbGFzc0xpc3QuYWRkKCdzaG93LXRyYW5zZm9ybS1sYXllcnMnKTsKKyAgICAgIHNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzLnRpdGxlID0KKyAgICAgICAgICAnV2hlbiBjaGVja2VkLCBwdXJlIHRyYW5zZm9ybSBsYXllcnMgYXJlIHNob3duJzsKKyAgICAgIHRoaXMuY29udHJvbHNfLmFwcGVuZENoaWxkKHNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzKTsKKyAgICB9LAorCisgICAgZ2V0IGx0aGlTbmFwc2hvdCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmx0aGlTbmFwc2hvdF87CisgICAgfSwKKworICAgIHNldCBsdGhpU25hcHNob3QobHRoaVNuYXBzaG90KSB7CisgICAgICB0aGlzLmx0aGlTbmFwc2hvdF8gPSBsdGhpU25hcHNob3Q7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgd2hpY2hUcmVlKCkgeworICAgICAgcmV0dXJuIHRoaXMucmVuZGVyUGFzc1F1YWRzXyA/IGNvbnN0YW50cy5BQ1RJVkVfVFJFRSA6IHRoaXMud2hpY2hUcmVlXzsKKyAgICB9LAorCisgICAgc2V0IHdoaWNoVHJlZSh3aGljaFRyZWUpIHsKKyAgICAgIHRoaXMud2hpY2hUcmVlXyA9IHdoaWNoVHJlZTsKKyAgICAgIHRoaXMucmVuZGVyUGFzc1F1YWRzXyA9ICh3aGljaFRyZWUgPT0gUkVOREVSX1BBU1NfUVVBRFMpOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnc2VsZWN0aW9uLWNoYW5nZScsIGZhbHNlKTsKKyAgICB9LAorCisgICAgZ2V0IGxheWVyVHJlZUltcGwoKSB7CisgICAgICBpZiAodGhpcy5sdGhpU25hcHNob3QgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0aGlzLmx0aGlTbmFwc2hvdC5nZXRUcmVlKHRoaXMud2hpY2hUcmVlKTsKKyAgICB9LAorCisgICAgZ2V0IGlzUmVuZGVyUGFzc1F1YWRzKCkgeworICAgICAgcmV0dXJuIHRoaXMucmVuZGVyUGFzc1F1YWRzXzsKKyAgICB9LAorCisgICAgZ2V0IHNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnNfOworICAgIH0sCisKKyAgICBzZXQgc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnMoc2hvdykgeworICAgICAgaWYgKHRoaXMuc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnNfID09PSBzaG93KQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLnNob3dQdXJlVHJhbnNmb3JtTGF5ZXJzXyA9IHNob3c7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXRSZW5kZXJQYXNzSW5mb3NfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5sdGhpU25hcHNob3RfKQorICAgICAgICByZXR1cm4gW107CisKKyAgICAgIHZhciByZW5kZXJQYXNzSW5mbyA9IFtdOworICAgICAgaWYgKCF0aGlzLmx0aGlTbmFwc2hvdF8uYXJncy5mcmFtZSB8fAorICAgICAgICAgICF0aGlzLmx0aGlTbmFwc2hvdF8uYXJncy5mcmFtZS5yZW5kZXJQYXNzZXMpCisgICAgICAgIHJldHVybiByZW5kZXJQYXNzSW5mbzsKKworICAgICAgdmFyIHJlbmRlclBhc3NlcyA9IHRoaXMubHRoaVNuYXBzaG90Xy5hcmdzLmZyYW1lLnJlbmRlclBhc3NlczsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVuZGVyUGFzc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBpbmZvID0ge3JlbmRlclBhc3M6IHJlbmRlclBhc3Nlc1tpXSwKKyAgICAgICAgICAgICAgICAgICAgIGRlcHRoOiAwLAorICAgICAgICAgICAgICAgICAgICAgaWQ6IGksCisgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnY2M6OlJlbmRlclBhc3MnfTsKKyAgICAgICAgcmVuZGVyUGFzc0luZm8ucHVzaChpbmZvKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiByZW5kZXJQYXNzSW5mbzsKKyAgICB9LAorCisgICAgZ2V0TGF5ZXJJbmZvc186IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmx0aGlTbmFwc2hvdF8pCisgICAgICAgIHJldHVybiBbXTsKKworICAgICAgdmFyIHRyZWUgPSB0aGlzLmx0aGlTbmFwc2hvdF8uZ2V0VHJlZSh0aGlzLndoaWNoVHJlZV8pOworICAgICAgaWYgKCF0cmVlKQorICAgICAgICByZXR1cm4gW107CisKKyAgICAgIHZhciBsYXllckluZm9zID0gW107CisKKyAgICAgIHZhciBzaG93UHVyZVRyYW5zZm9ybUxheWVycyA9IHRoaXMuc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnNfOworCisgICAgICBmdW5jdGlvbiBpc1B1cmVUcmFuc2Zvcm1MYXllcihsYXllcikgeworICAgICAgICBpZiAobGF5ZXIuYXJncy5jb21wb3NpdGluZ1JlYXNvbnMgJiYKKyAgICAgICAgICAgIGxheWVyLmFyZ3MuY29tcG9zaXRpbmdSZWFzb25zLmxlbmd0aCAhPSAxICYmCisgICAgICAgICAgICBsYXllci5hcmdzLmNvbXBvc2l0aW5nUmVhc29uc1swXSAhPSAnTm8gcmVhc29ucyBnaXZlbicpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChsYXllci5hcmdzLmRyYXdzQ29udGVudCkKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9CisgICAgICB2YXIgdmlzaXRlZExheWVycyA9IHt9OworICAgICAgZnVuY3Rpb24gdmlzaXRMYXllcihsYXllciwgZGVwdGgsIGlzTWFzaywgaXNSZXBsaWNhKSB7CisgICAgICAgIGlmICh2aXNpdGVkTGF5ZXJzW2xheWVyLmxheWVySWRdKQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmlzaXRlZExheWVyc1tsYXllci5sYXllcklkXSA9IHRydWU7CisgICAgICAgIHZhciBpbmZvID0ge2xheWVyOiBsYXllciwKKyAgICAgICAgICBkZXB0aDogZGVwdGh9OworCisgICAgICAgIGlmIChsYXllci5hcmdzLmRyYXdzQ29udGVudCkKKyAgICAgICAgICBpbmZvLm5hbWUgPSBsYXllci5vYmplY3RJbnN0YW5jZS5uYW1lOworICAgICAgICBlbHNlCisgICAgICAgICAgaW5mby5uYW1lID0gJ2NjOjpMYXllckltcGwnOworCisgICAgICAgIGlmIChsYXllci51c2luZ0dwdVJhc3Rlcml6YXRpb24pCisgICAgICAgICAgaW5mby5uYW1lICs9ICcgKEcpJzsKKworICAgICAgICBpbmZvLmlzTWFza0xheWVyID0gaXNNYXNrOworICAgICAgICBpbmZvLnJlcGxpY2FMYXllciA9IGlzUmVwbGljYTsKKworICAgICAgICBpZiAoc2hvd1B1cmVUcmFuc2Zvcm1MYXllcnMgfHwgIWlzUHVyZVRyYW5zZm9ybUxheWVyKGxheWVyKSkKKyAgICAgICAgICBsYXllckluZm9zLnB1c2goaW5mbyk7CisKKyAgICAgIH07CisgICAgICB0cmVlLml0ZXJMYXllcnModmlzaXRMYXllcik7CisgICAgICByZXR1cm4gbGF5ZXJJbmZvczsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLnJlbmRlclBhc3NRdWFkc18pCisgICAgICAgIHRoaXMudXBkYXRlUmVuZGVyUGFzc0NvbnRlbnRzXygpOworICAgICAgZWxzZQorICAgICAgICB0aGlzLnVwZGF0ZUxheWVyQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZVJlbmRlclBhc3NDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5pdGVtTGlzdF8uY2xlYXIoKTsKKworICAgICAgdmFyIHNlbGVjdGVkUmVuZGVyUGFzc0lkOworICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXyAmJiB0aGlzLnNlbGVjdGlvbl8uYXNzb2NpYXRlZFJlbmRlclBhc3NJZCkKKyAgICAgICAgc2VsZWN0ZWRSZW5kZXJQYXNzSWQgPSB0aGlzLnNlbGVjdGlvbl8uYXNzb2NpYXRlZFJlbmRlclBhc3NJZDsKKworICAgICAgdmFyIHJlbmRlclBhc3NJbmZvcyA9IHRoaXMuZ2V0UmVuZGVyUGFzc0luZm9zXygpOworICAgICAgcmVuZGVyUGFzc0luZm9zLmZvckVhY2goZnVuY3Rpb24ocmVuZGVyUGFzc0luZm8pIHsKKyAgICAgICAgdmFyIHJlbmRlclBhc3MgPSByZW5kZXJQYXNzSW5mby5yZW5kZXJQYXNzOworICAgICAgICB2YXIgaWQgPSByZW5kZXJQYXNzSW5mby5pZDsKKworICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlRWxlbWVudFdpdGhEZXB0aF8ocmVuZGVyUGFzc0luZm8uZGVwdGgpOworICAgICAgICB2YXIgbGFiZWxFbCA9IGl0ZW0uYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVTcGFuKCkpOworCisgICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSByZW5kZXJQYXNzSW5mby5uYW1lICsgJyAnICsgaWQ7CisgICAgICAgIGl0ZW0ucmVuZGVyUGFzcyA9IHJlbmRlclBhc3M7CisgICAgICAgIGl0ZW0ucmVuZGVyUGFzc0lkID0gaWQ7CisgICAgICAgIHRoaXMuaXRlbUxpc3RfLmFwcGVuZENoaWxkKGl0ZW0pOworCisgICAgICAgIGlmIChpZCA9PSBzZWxlY3RlZFJlbmRlclBhc3NJZCkgeworICAgICAgICAgIHJlbmRlclBhc3Muc2VsZWN0aW9uU3RhdGUgPQorICAgICAgICAgICAgICB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKKyAgICAgICAgfQorICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIHVwZGF0ZUxheWVyQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2hhbmdpbmdJdGVtU2VsZWN0aW9uXyA9IHRydWU7CisgICAgICB0cnkgeworICAgICAgICB0aGlzLml0ZW1MaXN0Xy5jbGVhcigpOworCisgICAgICAgIHZhciBzZWxlY3RlZExheWVySWQ7CisgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbl8gJiYgdGhpcy5zZWxlY3Rpb25fLmFzc29jaWF0ZWRMYXllcklkKQorICAgICAgICAgIHNlbGVjdGVkTGF5ZXJJZCA9IHRoaXMuc2VsZWN0aW9uXy5hc3NvY2lhdGVkTGF5ZXJJZDsKKworICAgICAgICB2YXIgbGF5ZXJJbmZvcyA9IHRoaXMuZ2V0TGF5ZXJJbmZvc18oKTsKKyAgICAgICAgbGF5ZXJJbmZvcy5mb3JFYWNoKGZ1bmN0aW9uKGxheWVySW5mbykgeworICAgICAgICAgIHZhciBsYXllciA9IGxheWVySW5mby5sYXllcjsKKyAgICAgICAgICB2YXIgaWQgPSBsYXllci5sYXllcklkOworCisgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZUVsZW1lbnRXaXRoRGVwdGhfKGxheWVySW5mby5kZXB0aCk7CisgICAgICAgICAgdmFyIGxhYmVsRWwgPSBpdGVtLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlU3BhbigpKTsKKworICAgICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBsYXllckluZm8ubmFtZSArICcgJyArIGlkOworCisgICAgICAgICAgdmFyIG5vdGVzRWwgPSBpdGVtLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlU3BhbigpKTsKKyAgICAgICAgICBpZiAobGF5ZXJJbmZvLmlzTWFza0xheWVyKQorICAgICAgICAgICAgbm90ZXNFbC50ZXh0Q29udGVudCArPSAnKG1hc2spJzsKKyAgICAgICAgICBpZiAobGF5ZXJJbmZvLmlzUmVwbGljYUxheWVyKQorICAgICAgICAgICAgbm90ZXNFbC50ZXh0Q29udGVudCArPSAnKHJlcGxpY2EpJzsKKworICAgICAgICAgIGlmIChsYXllci5ncHVNZW1vcnlVc2FnZUluQnl0ZXMgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgdmFyIHJvdW5kZWQgPSBieXRlc1RvUm91bmRlZE1lZ2FieXRlcyhsYXllci5ncHVNZW1vcnlVc2FnZUluQnl0ZXMpOworICAgICAgICAgICAgaWYgKHJvdW5kZWQgIT09IDApCisgICAgICAgICAgICAgIG5vdGVzRWwudGV4dENvbnRlbnQgKz0gJyAoJyArIHJvdW5kZWQgKyAnIE1CKSc7CisgICAgICAgICAgfQorCisgICAgICAgICAgaXRlbS5sYXllciA9IGxheWVyOworICAgICAgICAgIHRoaXMuaXRlbUxpc3RfLmFwcGVuZENoaWxkKGl0ZW0pOworCisgICAgICAgICAgaWYgKGxheWVyLmxheWVySWQgPT0gc2VsZWN0ZWRMYXllcklkKSB7CisgICAgICAgICAgICBsYXllci5zZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0gZmluYWxseSB7CisgICAgICAgIHRoaXMuY2hhbmdpbmdJdGVtU2VsZWN0aW9uXyA9IGZhbHNlOworICAgICAgfQorICAgIH0sCisKKyAgICBjcmVhdGVFbGVtZW50V2l0aERlcHRoXzogZnVuY3Rpb24oZGVwdGgpIHsKKyAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICAgIHZhciBpbmRlbnRFbCA9IGl0ZW0uYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVTcGFuKCkpOworICAgICAgaW5kZW50RWwuc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUnOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXB0aDsgaSsrKQorICAgICAgICBpbmRlbnRFbC50ZXh0Q29udGVudCA9IGluZGVudEVsLnRleHRDb250ZW50ICsgJyAnOworICAgICAgcmV0dXJuIGl0ZW07CisgICAgfSwKKworICAgIG9uSXRlbVNlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAodGhpcy5jaGFuZ2luZ0l0ZW1TZWxlY3Rpb25fKQorICAgICAgICByZXR1cm47CisgICAgICBpZiAodGhpcy5yZW5kZXJQYXNzUXVhZHNfKQorICAgICAgICB0aGlzLm9uUmVuZGVyUGFzc1NlbGVjdGVkXyhlKTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5vbkxheWVyU2VsZWN0ZWRfKGUpOworICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzZWxlY3Rpb24tY2hhbmdlJywgZmFsc2UpOworICAgIH0sCisKKyAgICBvblJlbmRlclBhc3NTZWxlY3RlZF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBzZWxlY3RlZFJlbmRlclBhc3M7CisgICAgICB2YXIgc2VsZWN0ZWRSZW5kZXJQYXNzSWQ7CisgICAgICBpZiAodGhpcy5pdGVtTGlzdF8uc2VsZWN0ZWRFbGVtZW50KSB7CisgICAgICAgIHNlbGVjdGVkUmVuZGVyUGFzcyA9IHRoaXMuaXRlbUxpc3RfLnNlbGVjdGVkRWxlbWVudC5yZW5kZXJQYXNzOworICAgICAgICBzZWxlY3RlZFJlbmRlclBhc3NJZCA9CisgICAgICAgICAgICB0aGlzLml0ZW1MaXN0Xy5zZWxlY3RlZEVsZW1lbnQucmVuZGVyUGFzc0lkOworICAgICAgfQorCisgICAgICBpZiAoc2VsZWN0ZWRSZW5kZXJQYXNzKSB7CisgICAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5SZW5kZXJQYXNzU2VsZWN0aW9uKAorICAgICAgICAgICAgc2VsZWN0ZWRSZW5kZXJQYXNzLCBzZWxlY3RlZFJlbmRlclBhc3NJZCk7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgICB9CisgICAgfSwKKworICAgIG9uTGF5ZXJTZWxlY3RlZF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBzZWxlY3RlZExheWVyOworICAgICAgaWYgKHRoaXMuaXRlbUxpc3RfLnNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgc2VsZWN0ZWRMYXllciA9IHRoaXMuaXRlbUxpc3RfLnNlbGVjdGVkRWxlbWVudC5sYXllcjsKKworICAgICAgaWYgKHNlbGVjdGVkTGF5ZXIpCisgICAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5MYXllclNlbGVjdGlvbihzZWxlY3RlZExheWVyKTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uXzsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIGlmICh0aGlzLnNlbGVjdGlvbl8gPT0gc2VsZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIExheWVyUGlja2VyOiBMYXllclBpY2tlcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF92aWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzdjNmEwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuY3NzCkBAIC0wLDAgKzEsMTggQEAKKy8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgKi8KKworKiAvZGVlcC8gLnRyLXVpLWUtY2hyb21lLWNjLWx0aGktcy12aWV3IHsKKyAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50OworICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7CisgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKK30KKworKiAvZGVlcC8gLnRyLXVpLWUtY2hyb21lLWNjLWx0aGktcy12aWV3ID4gdHItdWktZS1jaHJvbWUtY2MtbGF5ZXItcGlja2VyIHsKKyAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKK30KKworKiAvZGVlcC8gLnRyLXVpLWUtY2hyb21lLWNjLWx0aGktcy12aWV3ID4geC1kcmFnLWhhbmRsZSB7CisgIC13ZWJraXQtZmxleDogMCAwIGF1dG87Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjkxM2E0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuaHRtbApAQCAtMCwwICsxLDEyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3BpY2tlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3RpbGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL29iamVjdF9zbmFwc2hvdF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RyYWdfaGFuZGxlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuY2MnLCBmdW5jdGlvbigpIHsKKyAgLyoKKyAgICogRGlzcGxheXMgYSBMYXllclRyZWVIb3N0SW1wbCBzbmFwc2hvdCBpbiBhIGh1bWFuIHJlYWRhYmxlIGZvcm0uCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIExheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3ID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAndHItdWktZS1jaHJvbWUtY2MtbGF5ZXItdHJlZS1ob3N0LWltcGwtc25hcHNob3QtdmlldycsCisgICAgICB0ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcpOworCisgIExheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3RyLXVpLWUtY2hyb21lLWNjLWx0aGktcy12aWV3Jyk7CisKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKworICAgICAgdGhpcy5sYXllclBpY2tlcl8gPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuTGF5ZXJQaWNrZXIoKTsKKyAgICAgIHRoaXMubGF5ZXJQaWNrZXJfLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ3NlbGVjdGlvbi1jaGFuZ2UnLAorICAgICAgICAgIHRoaXMub25MYXllclBpY2tlclNlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLmxheWVyVmlld18gPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuTGF5ZXJWaWV3KCk7CisgICAgICB0aGlzLmxheWVyVmlld18uYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAnc2VsZWN0aW9uLWNoYW5nZScsCisgICAgICAgICAgdGhpcy5vbkxheWVyVmlld1NlbGVjdGlvbkNoYW5nZWRfLmJpbmQodGhpcykpOworICAgICAgdGhpcy5kcmFnSGFuZGxlXyA9IG5ldyB0ci51aS5iLkRyYWdIYW5kbGUoKTsKKyAgICAgIHRoaXMuZHJhZ0hhbmRsZV8uaG9yaXpvbnRhbCA9IGZhbHNlOworICAgICAgdGhpcy5kcmFnSGFuZGxlXy50YXJnZXQgPSB0aGlzLmxheWVyVmlld187CisKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5sYXllclBpY2tlcl8pOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmRyYWdIYW5kbGVfKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5sYXllclZpZXdfKTsKKworICAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgdGhlIGN1cnJlbnQgdmFsdWVzIGZyb20gbGF5ZXJWaWV3XyBhbmQgbGF5ZXJQaWNrZXJfLAorICAgICAgLy8gc2luY2UgdGhvc2UgbWlnaHQgaGF2ZSBiZWVuIGNyZWF0ZWQgYmVmb3JlIHdlIGFkZGVkIHRoZSBsaXN0ZW5lci4KKyAgICAgIHRoaXMub25MYXllclZpZXdTZWxlY3Rpb25DaGFuZ2VkXygpOworICAgICAgdGhpcy5vbkxheWVyUGlja2VyU2VsZWN0aW9uQ2hhbmdlZF8oKTsKKworICAgIH0sCisKKyAgICBnZXQgb2JqZWN0U25hcHNob3QoKSB7CisgICAgICByZXR1cm4gdGhpcy5vYmplY3RTbmFwc2hvdF87CisgICAgfSwKKworICAgIHNldCBvYmplY3RTbmFwc2hvdChvYmplY3RTbmFwc2hvdCkgeworICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdF8gPSBvYmplY3RTbmFwc2hvdDsKKworICAgICAgdmFyIGx0aGkgPSB0aGlzLm9iamVjdFNuYXBzaG90OworICAgICAgdmFyIGxheWVyVHJlZUltcGw7CisgICAgICBpZiAobHRoaSkKKyAgICAgICAgbGF5ZXJUcmVlSW1wbCA9IGx0aGkuZ2V0VHJlZSh0aGlzLmxheWVyUGlja2VyXy53aGljaFRyZWUpOworCisgICAgICB0aGlzLmxheWVyUGlja2VyXy5sdGhpU25hcHNob3QgPSBsdGhpOworICAgICAgdGhpcy5sYXllclZpZXdfLmxheWVyVHJlZUltcGwgPSBsYXllclRyZWVJbXBsOworICAgICAgdGhpcy5sYXllclZpZXdfLnJlZ2VuZXJhdGVDb250ZW50KCk7CisKKyAgICAgIGlmICghdGhpcy5zZWxlY3Rpb25fKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uXy5maW5kRXF1aXZhbGVudChsdGhpKTsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fID09IHNlbGVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdGhpcy5sYXllclBpY2tlcl8uc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgICAgdGhpcy5sYXllclZpZXdfLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnY2Mtc2VsZWN0aW9uLWNoYW5nZScpOworICAgIH0sCisKKyAgICBvbkxheWVyUGlja2VyU2VsZWN0aW9uQ2hhbmdlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gdGhpcy5sYXllclBpY2tlcl8uc2VsZWN0aW9uOworICAgICAgdGhpcy5sYXllclZpZXdfLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uOworICAgICAgdGhpcy5sYXllclZpZXdfLmxheWVyVHJlZUltcGwgPSB0aGlzLmxheWVyUGlja2VyXy5sYXllclRyZWVJbXBsOworICAgICAgdGhpcy5sYXllclZpZXdfLmlzUmVuZGVyUGFzc1F1YWRzID0gdGhpcy5sYXllclBpY2tlcl8uaXNSZW5kZXJQYXNzUXVhZHM7CisgICAgICB0aGlzLmxheWVyVmlld18ucmVnZW5lcmF0ZUNvbnRlbnQoKTsKKyAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnY2Mtc2VsZWN0aW9uLWNoYW5nZScpOworICAgIH0sCisKKyAgICBvbkxheWVyVmlld1NlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHRoaXMubGF5ZXJWaWV3Xy5zZWxlY3Rpb247CisgICAgICB0aGlzLmxheWVyUGlja2VyXy5zZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbjsKKyAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnY2Mtc2VsZWN0aW9uLWNoYW5nZScpOworICAgIH0sCisKKyAgICBnZXQgZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKCkgeworICAgICAgcmV0dXJuIHRoaXMubGF5ZXJWaWV3Xy5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQ7CisgICAgfSwKKworICAgIHNldCBleHRyYUhpZ2hsaWdodHNCeUxheWVySWQoZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKSB7CisgICAgICB0aGlzLmxheWVyVmlld18uZXh0cmFIaWdobGlnaHRzQnlMYXllcklkID0gZXh0cmFIaWdobGlnaHRzQnlMYXllcklkOworICAgIH0KKyAgfTsKKworICB0ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcucmVnaXN0ZXIoCisgICAgICBMYXllclRyZWVIb3N0SW1wbFNuYXBzaG90Vmlldywge3R5cGVOYW1lOiAnY2M6OkxheWVyVHJlZUhvc3RJbXBsJ30pOworCisgIHJldHVybiB7CisgICAgTGF5ZXJUcmVlSG9zdEltcGxTbmFwc2hvdFZpZXc6IExheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YjhkNGQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF92aWV3Lmh0bWwiPgorCis8c2NyaXB0IHNyYz0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdF9kYXRhLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKKyAgICB2YXIgcCA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcylbMF07CisKKyAgICB2YXIgaW5zdGFuY2UgPSBwLm9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzTmFtZWQoJ2NjOjpMYXllclRyZWVIb3N0SW1wbCcpWzBdOworICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKKworICAgIHZhciB2aWV3ID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLkxheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3KCk7CisgICAgdmlldy5zdHlsZS53aWR0aCA9ICc5MDBweCc7CisgICAgdmlldy5zdHlsZS5oZWlnaHQgPSAnNDAwcHgnOworICAgIHZpZXcub2JqZWN0U25hcHNob3QgPSBzbmFwc2hvdDsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfcXVhZF9zdGFja192aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9xdWFkX3N0YWNrX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDQ5NmZlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfcXVhZF9zdGFja192aWV3Lmh0bWwKQEAgLTAsMCArMSwxMTkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2NvbG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3F1YWQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFmLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2RlYnVnX2NvbG9ycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3JlbmRlcl9wYXNzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3RpbGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdXRpbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2luZm9fYmFyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3F1YWRfc3RhY2tfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91dGlscy5odG1sIj4KKworPHN0eWxlPgorKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtbGF5ZXItdHJlZS1xdWFkLXN0YWNrLXZpZXcgeworICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWxheWVyLXRyZWUtcXVhZC1zdGFjay12aWV3ID4gdG9wLWNvbnRyb2xzIHsKKyAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKKyAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAwLCAxMDAlIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSgjRTVFNUU1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bygjRDFEMUQxKSk7CisgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOGU4ZThlOworICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7CisgIGRpc3BsYXk6IGZsZXg7CisgIGZsZXgtZmxvdzogcm93IHdyYXA7CisgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgIGZvbnQtc2l6ZTogIDE0cHg7CisgIHBhZGRpbmctbGVmdDogMnB4OworICBvdmVyZmxvdzogaGlkZGVuOworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1sYXllci10cmVlLXF1YWQtc3RhY2stdmlldyA+CisgICAgICB0b3AtY29udHJvbHMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7CisgIHZlcnRpY2FsLWFsaWduOiAtMnB4OworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1sYXllci10cmVlLXF1YWQtc3RhY2stdmlldyA+IC53aGF0LXJhc3Rlcml6ZWQgeworICBjb2xvcjogLXdlYmtpdC1saW5rOworICBjdXJzb3I6IHBvaW50ZXI7CisgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGJvdHRvbTogMTBweDsKKyAgbGVmdDogMTBweDsKK30KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtbGF5ZXItdHJlZS1xdWFkLXN0YWNrLXZpZXcgPiAjaW5wdXQtZXZlbnQgeworICBjb250ZW50OiB1cmwoJy4vaW1hZ2VzL2lucHV0LWV2ZW50LnBuZycpOworICBkaXNwbGF5OiBub25lOworfQorPC9zdHlsZT4KKworPHRlbXBsYXRlIGlkPSd0ci11aS1lLWNocm9tZS1jYy1sYXllci10cmVlLXF1YWQtc3RhY2stdmlldy10ZW1wbGF0ZSc+CisgIDxpbWcgaWQ9J2lucHV0LWV2ZW50Jy8+Cis8L3RlbXBsYXRlPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgR3JhcGhpY2FsIHZpZXcgb2YgIExheWVyVHJlZUltcGwsIHdpdGggY29udHJvbHMgZm9yCisgKiB0eXBlIG9mIGxheWVyIGNvbnRlbnQgc2hvd24gYW5kIGluZm8gYmFyIGZvciBjb250ZW50LWxvYWRpbmcgd2FybmluZ3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci51aS5lLmNocm9tZS5jYycsIGZ1bmN0aW9uKCkgeworCisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKKyAgdmFyIFRJTEVfSEVBVE1BUF9UWVBFID0ge307CisgIFRJTEVfSEVBVE1BUF9UWVBFLk5PTkUgPSAnbm9uZSc7CisgIFRJTEVfSEVBVE1BUF9UWVBFLlNDSEVEVUxFRF9QUklPUklUWSA9ICdzY2hlZHVsZWRQcmlvcml0eSc7CisgIFRJTEVfSEVBVE1BUF9UWVBFLlVTSU5HX0dQVV9NRU1PUlkgPSAndXNpbmdHcHVNZW1vcnknOworCisgIHZhciBjYyA9IHRyLnVpLmUuY2hyb21lLmNjOworCisgIGZ1bmN0aW9uIGNyZWF0ZVRpbGVSZWN0c1NlbGVjdG9yQmFzZU9wdGlvbnMoKSB7CisgICAgcmV0dXJuIFt7bGFiZWw6ICdOb25lJywgdmFsdWU6ICdub25lJ30sCisgICAgICAgICAgICB7bGFiZWw6ICdDb3ZlcmFnZSBSZWN0cycsIHZhbHVlOiAnY292ZXJhZ2UnfV07CisgIH0KKworICB2YXIgYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXMgPSB0ci5lLmNjLmJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzOworCisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIExheWVyVHJlZVF1YWRTdGFja1ZpZXcgPQorICAgICAgdHIudWkuYi5kZWZpbmUoJ3RyLXVpLWUtY2hyb21lLWNjLWxheWVyLXRyZWUtcXVhZC1zdGFjay12aWV3Jyk7CisKKyAgTGF5ZXJUcmVlUXVhZFN0YWNrVmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmlzUmVuZGVyUGFzc1F1YWRzXyA9IGZhbHNlOworICAgICAgdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfID0ge307IC8vIE1hcHMgcGljdHVyZS5ndWlkIHRvIFBpY3R1cmVBc0ltYWdlRGF0YS4KKyAgICAgIHRoaXMubWVzc2FnZXNfID0gW107CisgICAgICB0aGlzLmNvbnRyb2xzXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RvcC1jb250cm9scycpOworICAgICAgdGhpcy5pbmZvQmFyXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItaW5mby1iYXInKTsKKyAgICAgIHRoaXMucXVhZFN0YWNrVmlld18gPSBuZXcgdHIudWkuYi5RdWFkU3RhY2tWaWV3KCk7CisgICAgICB0aGlzLnF1YWRTdGFja1ZpZXdfLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ3NlbGVjdGlvbmNoYW5nZScsIHRoaXMub25RdWFkU3RhY2tWaWV3U2VsZWN0aW9uQ2hhbmdlXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMuZXh0cmFIaWdobGlnaHRzQnlMYXllcklkXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuaW5wdXRFdmVudEltYWdlRGF0YV8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBtID0gdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFOworICAgICAgdmFyIG1tcyA9IHRoaXMucXVhZFN0YWNrVmlld18ubW91c2VNb2RlU2VsZWN0b3I7CisgICAgICBtbXMuc2V0dGluZ3NLZXkgPSAndHIuZS5jYy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Lm1vdXNlTW9kZVNlbGVjdG9yJzsKKyAgICAgIG1tcy5zZXRLZXlDb2RlRm9yTW9kZShtLlNFTEVDVElPTiwgJ1onLmNoYXJDb2RlQXQoMCkpOworICAgICAgbW1zLnNldEtleUNvZGVGb3JNb2RlKG0uUEFOU0NBTiwgJ1gnLmNoYXJDb2RlQXQoMCkpOworICAgICAgbW1zLnNldEtleUNvZGVGb3JNb2RlKG0uWk9PTSwgJ0MnLmNoYXJDb2RlQXQoMCkpOworICAgICAgbW1zLnNldEtleUNvZGVGb3JNb2RlKG0uUk9UQVRFLCAnVicuY2hhckNvZGVBdCgwKSk7CisKKyAgICAgIHZhciBub2RlID0gdHIudWkuYi5pbnN0YW50aWF0ZVRlbXBsYXRlKAorICAgICAgICAgICcjdHItdWktZS1jaHJvbWUtY2MtbGF5ZXItdHJlZS1xdWFkLXN0YWNrLXZpZXctdGVtcGxhdGUnLCBUSElTX0RPQyk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKG5vZGUpOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzXyk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuaW5mb0Jhcl8pOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLnF1YWRTdGFja1ZpZXdfKTsKKworICAgICAgdGhpcy50aWxlUmVjdHNTZWxlY3Rvcl8gPSB0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICAgIHRoaXMsICdob3dUb1Nob3dUaWxlcycsCisgICAgICAgICAgJ2xheWVyVmlldy5ob3dUb1Nob3dUaWxlcycsICdub25lJywKKyAgICAgICAgICBjcmVhdGVUaWxlUmVjdHNTZWxlY3RvckJhc2VPcHRpb25zKCkpOworICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQodGhpcy50aWxlUmVjdHNTZWxlY3Rvcl8pOworCisgICAgICB2YXIgdGlsZUhlYXRtYXBUZXh0ID0gdHIudWkuYi5jcmVhdGVTcGFuKHsKKyAgICAgICAgdGV4dENvbnRlbnQ6ICdUaWxlIGhlYXRtYXA6JworICAgICAgfSk7CisgICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZCh0aWxlSGVhdG1hcFRleHQpOworCisgICAgICB2YXIgdGlsZUhlYXRtYXBTZWxlY3RvciA9IHRyLnVpLmIuY3JlYXRlU2VsZWN0b3IoCisgICAgICAgICAgdGhpcywgJ3RpbGVIZWF0bWFwVHlwZScsCisgICAgICAgICAgJ2xheWVyVmlldy50aWxlSGVhdG1hcFR5cGUnLCBUSUxFX0hFQVRNQVBfVFlQRS5OT05FLAorICAgICAgICAgIFt7bGFiZWw6ICdOb25lJywKKyAgICAgICAgICAgIHZhbHVlOiBUSUxFX0hFQVRNQVBfVFlQRS5OT05FfSwKKyAgICAgICAgICAge2xhYmVsOiAnU2NoZWR1bGVkIFByaW9yaXR5JywKKyAgICAgICAgICAgIHZhbHVlOiBUSUxFX0hFQVRNQVBfVFlQRS5TQ0hFRFVMRURfUFJJT1JJVFl9LAorICAgICAgICAgICB7bGFiZWw6ICdJcyB1c2luZyBHUFUgbWVtb3J5JywKKyAgICAgICAgICAgIHZhbHVlOiBUSUxFX0hFQVRNQVBfVFlQRS5VU0lOR19HUFVfTUVNT1JZfQorICAgICAgICAgIF0pOworICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQodGlsZUhlYXRtYXBTZWxlY3Rvcik7CisKKyAgICAgIHZhciBzaG93T3RoZXJMYXllcnNDaGVja2JveCA9IHRyLnVpLmIuY3JlYXRlQ2hlY2tCb3goCisgICAgICAgICAgdGhpcywgJ3Nob3dPdGhlckxheWVycycsCisgICAgICAgICAgJ2xheWVyVmlldy5zaG93T3RoZXJMYXllcnMnLCB0cnVlLAorICAgICAgICAgICdPdGhlciBsYXllcnMvcGFzc2VzJyk7CisgICAgICBzaG93T3RoZXJMYXllcnNDaGVja2JveC50aXRsZSA9CisgICAgICAgICAgJ1doZW4gY2hlY2tlZCwgc2hvdyBhbGwgbGF5ZXJzLCBzZWxlY3RlZCBvciBub3QuJzsKKyAgICAgIHRoaXMuY29udHJvbHNfLmFwcGVuZENoaWxkKHNob3dPdGhlckxheWVyc0NoZWNrYm94KTsKKworICAgICAgdmFyIHNob3dJbnZhbGlkYXRpb25zQ2hlY2tib3ggPSB0ci51aS5iLmNyZWF0ZUNoZWNrQm94KAorICAgICAgICAgIHRoaXMsICdzaG93SW52YWxpZGF0aW9ucycsCisgICAgICAgICAgJ2xheWVyVmlldy5zaG93SW52YWxpZGF0aW9ucycsIHRydWUsCisgICAgICAgICAgJ0ludmFsaWRhdGlvbnMnKTsKKyAgICAgIHNob3dJbnZhbGlkYXRpb25zQ2hlY2tib3gudGl0bGUgPQorICAgICAgICAgICdXaGVuIGNoZWNrZWQsIGNvbXBvc2l0aW5nIGludmFsaWRhdGlvbnMgYXJlIGhpZ2hsaWdodGVkIGluIHJlZCc7CisgICAgICB0aGlzLmNvbnRyb2xzXy5hcHBlbmRDaGlsZChzaG93SW52YWxpZGF0aW9uc0NoZWNrYm94KTsKKworICAgICAgdmFyIHNob3dVbnJlY29yZGVkUmVnaW9uQ2hlY2tib3ggPSB0ci51aS5iLmNyZWF0ZUNoZWNrQm94KAorICAgICAgICAgIHRoaXMsICdzaG93VW5yZWNvcmRlZFJlZ2lvbicsCisgICAgICAgICAgJ2xheWVyVmlldy5zaG93VW5yZWNvcmRlZFJlZ2lvbicsIHRydWUsCisgICAgICAgICAgJ1VucmVjb3JkZWQgYXJlYScpOworICAgICAgc2hvd1VucmVjb3JkZWRSZWdpb25DaGVja2JveC50aXRsZSA9CisgICAgICAgICAgJ1doZW4gY2hlY2tlZCwgdW5yZWNvcmRlZCBhcmVhcyBhcmUgaGlnaGxpZ2h0ZWQgaW4geWVsbG93JzsKKyAgICAgIHRoaXMuY29udHJvbHNfLmFwcGVuZENoaWxkKHNob3dVbnJlY29yZGVkUmVnaW9uQ2hlY2tib3gpOworCisgICAgICB2YXIgc2hvd0JvdHRsZW5lY2tzQ2hlY2tib3ggPSB0ci51aS5iLmNyZWF0ZUNoZWNrQm94KAorICAgICAgICAgIHRoaXMsICdzaG93Qm90dGxlbmVja3MnLAorICAgICAgICAgICdsYXllclZpZXcuc2hvd0JvdHRsZW5lY2tzJywgdHJ1ZSwKKyAgICAgICAgICAnQm90dGxlbmVja3MnKTsKKyAgICAgIHNob3dCb3R0bGVuZWNrc0NoZWNrYm94LnRpdGxlID0KKyAgICAgICAgICAnV2hlbiBjaGVja2VkLCBzY3JvbGwgYm90dGxlbmVja3MgYXJlIGhpZ2hsaWdodGVkJzsKKyAgICAgIHRoaXMuY29udHJvbHNfLmFwcGVuZENoaWxkKHNob3dCb3R0bGVuZWNrc0NoZWNrYm94KTsKKworICAgICAgdmFyIHNob3dMYXlvdXRSZWN0c0NoZWNrYm94ID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCgKKyAgICAgICAgICB0aGlzLCAnc2hvd0xheW91dFJlY3RzJywKKyAgICAgICAgICAnbGF5ZXJWaWV3LnNob3dMYXlvdXRSZWN0cycsIGZhbHNlLAorICAgICAgICAgICdMYXlvdXQgcmVjdHMnKTsKKyAgICAgIHNob3dMYXlvdXRSZWN0c0NoZWNrYm94LnRpdGxlID0KKyAgICAgICAgICAnV2hlbiBjaGVja2VkLCBzaG93cyByZWN0cyBmb3IgcmVnaW9ucyB3aGVyZSBsYXlvdXQgaGFwcGVuZWQnOworICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQoc2hvd0xheW91dFJlY3RzQ2hlY2tib3gpOworCisgICAgICB2YXIgc2hvd0NvbnRlbnRzQ2hlY2tib3ggPSB0ci51aS5iLmNyZWF0ZUNoZWNrQm94KAorICAgICAgICAgIHRoaXMsICdzaG93Q29udGVudHMnLAorICAgICAgICAgICdsYXllclZpZXcuc2hvd0NvbnRlbnRzJywgdHJ1ZSwKKyAgICAgICAgICAnQ29udGVudHMnKTsKKyAgICAgIHNob3dDb250ZW50c0NoZWNrYm94LnRpdGxlID0KKyAgICAgICAgICAnV2hlbiBjaGVja2VkLCBzaG93IHRoZSByZW5kZXJlZCBjb250ZW50cyBpbnNpZGUgdGhlIGxheWVyIG91dGxpbmVzJzsKKyAgICAgIHRoaXMuY29udHJvbHNfLmFwcGVuZENoaWxkKHNob3dDb250ZW50c0NoZWNrYm94KTsKKworICAgICAgdmFyIHNob3dBbmltYXRpb25Cb3VuZHNDaGVja2JveCA9IHRyLnVpLmIuY3JlYXRlQ2hlY2tCb3goCisgICAgICAgICAgdGhpcywgJ3Nob3dBbmltYXRpb25Cb3VuZHMnLAorICAgICAgICAgICdsYXllclZpZXcuc2hvd0FuaW1hdGlvbkJvdW5kcycsIGZhbHNlLAorICAgICAgICAgICdBbmltYXRpb24gQm91bmRzJyk7CisgICAgICBzaG93QW5pbWF0aW9uQm91bmRzQ2hlY2tib3gudGl0bGUgPSAnV2hlbiBjaGVja2VkLCBzaG93IGEgYm9yZGVyIGFyb3VuZCcgKworICAgICAgICAgICcgYSBsYXllciBzaG93aW5nIHRoZSBleHRlbnQgb2YgaXRzIGFuaW1hdGlvbi4nOworICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQoc2hvd0FuaW1hdGlvbkJvdW5kc0NoZWNrYm94KTsKKworICAgICAgdmFyIHNob3dJbnB1dEV2ZW50c0NoZWNrYm94ID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCgKKyAgICAgICAgICB0aGlzLCAnc2hvd0lucHV0RXZlbnRzJywKKyAgICAgICAgICAnbGF5ZXJWaWV3LnNob3dJbnB1dEV2ZW50cycsIHRydWUsCisgICAgICAgICAgJ0lucHV0IGV2ZW50cycpOworICAgICAgc2hvd0lucHV0RXZlbnRzQ2hlY2tib3gudGl0bGUgPSAnV2hlbiBjaGVja2VkLCBpbnB1dCBldmVudHMgYXJlICcgKworICAgICAgICAgICdkaXNwbGF5ZWQgYXMgY2lyY2xlcy4nOworICAgICAgdGhpcy5jb250cm9sc18uYXBwZW5kQ2hpbGQoc2hvd0lucHV0RXZlbnRzQ2hlY2tib3gpOworCisgICAgICB0aGlzLndoYXRSYXN0ZXJpemVkTGlua18gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CisgICAgICB0aGlzLndoYXRSYXN0ZXJpemVkTGlua18uY2xhc3NMaXN0LmFkZCgnd2hhdC1yYXN0ZXJpemVkJyk7CisgICAgICB0aGlzLndoYXRSYXN0ZXJpemVkTGlua18udGV4dENvbnRlbnQgPSAnV2hhdCByYXN0ZXJpemVkPyc7CisgICAgICB0aGlzLndoYXRSYXN0ZXJpemVkTGlua18uYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAnY2xpY2snLCB0aGlzLm9uV2hhdFJhc3Rlcml6ZWRMaW5rQ2xpY2tlZF8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXyk7CisgICAgfSwKKworICAgIGdldCBsYXllclRyZWVJbXBsKCkgeworICAgICAgcmV0dXJuIHRoaXMubGF5ZXJUcmVlSW1wbF87CisgICAgfSwKKworICAgIHNldCBpc1JlbmRlclBhc3NRdWFkcyhuZXdWYWx1ZSkgeworICAgICAgdGhpcy5pc1JlbmRlclBhc3NRdWFkc18gPSBuZXdWYWx1ZTsKKyAgICB9LAorCisgICAgc2V0IGxheWVyVHJlZUltcGwobGF5ZXJUcmVlSW1wbCkgeworICAgICAgaWYgKHRoaXMubGF5ZXJUcmVlSW1wbF8gPT09IGxheWVyVHJlZUltcGwpCisgICAgICAgIHJldHVybjsKKworICAgICAgLy8gRklYTUUocGRyKTogV2UgbWF5IHdhbnQgdG8gY2xlYXIgcGljdHVyZUFzSW1hZ2VEYXRhXyBoZXJlIHRvIHNhdmUKKyAgICAgIC8vICAgICAgICAgICAgIG1lbW9yeSBhdCB0aGUgY29zdCBvZiBwZXJmb3JtYW5jZS4gTm90ZSB0aGF0CisgICAgICAvLyAgICAgICAgICAgICBwaWN0dXJlQXNJbWFnZURhdGFfIHdpbGwgYmUgY2xlYXJlZCB3aGVuIHRoaXMgaXMKKyAgICAgIC8vICAgICAgICAgICAgIGRlc3RydWN0ZWQsIGJ1dCB0aGlzIHZpZXcgbWlnaHQgbGl2ZSBmb3Igc2V2ZXJhbAorICAgICAgLy8gICAgICAgICAgICAgbGF5ZXJUcmVlSW1wbHMuCisgICAgICB0aGlzLmxheWVyVHJlZUltcGxfID0gbGF5ZXJUcmVlSW1wbDsKKyAgICAgIHRoaXMuc2VsZWN0aW9uID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZXh0cmFIaWdobGlnaHRzQnlMYXllcklkXzsKKyAgICB9LAorCisgICAgc2V0IGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZChleHRyYUhpZ2hsaWdodHNCeUxheWVySWQpIHsKKyAgICAgIHRoaXMuZXh0cmFIaWdobGlnaHRzQnlMYXllcklkXyA9IGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZDsKKyAgICAgIHRoaXMuc2NoZWR1bGVVcGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IHNob3dPdGhlckxheWVycygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNob3dPdGhlckxheWVyc187CisgICAgfSwKKworICAgIHNldCBzaG93T3RoZXJMYXllcnMoc2hvdykgeworICAgICAgdGhpcy5zaG93T3RoZXJMYXllcnNfID0gc2hvdzsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBzaG93QW5pbWF0aW9uQm91bmRzKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2hvd0FuaW1hdGlvbkJvdW5kc187CisgICAgfSwKKworICAgIHNldCBzaG93QW5pbWF0aW9uQm91bmRzKHNob3cpIHsKKyAgICAgIHRoaXMuc2hvd0FuaW1hdGlvbkJvdW5kc18gPSBzaG93OworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IHNob3dJbnB1dEV2ZW50cygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNob3dJbnB1dEV2ZW50c187CisgICAgfSwKKworICAgIHNldCBzaG93SW5wdXRFdmVudHMoc2hvdykgeworICAgICAgdGhpcy5zaG93SW5wdXRFdmVudHNfID0gc2hvdzsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBzaG93Q29udGVudHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5zaG93Q29udGVudHNfOworICAgIH0sCisKKyAgICBzZXQgc2hvd0NvbnRlbnRzKHNob3cpIHsKKyAgICAgIHRoaXMuc2hvd0NvbnRlbnRzXyA9IHNob3c7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgc2hvd0ludmFsaWRhdGlvbnMoKSB7CisgICAgICByZXR1cm4gdGhpcy5zaG93SW52YWxpZGF0aW9uc187CisgICAgfSwKKworICAgIHNldCBzaG93SW52YWxpZGF0aW9ucyhzaG93KSB7CisgICAgICB0aGlzLnNob3dJbnZhbGlkYXRpb25zXyA9IHNob3c7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgc2hvd1VucmVjb3JkZWRSZWdpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5zaG93VW5yZWNvcmRlZFJlZ2lvbl87CisgICAgfSwKKworICAgIHNldCBzaG93VW5yZWNvcmRlZFJlZ2lvbihzaG93KSB7CisgICAgICB0aGlzLnNob3dVbnJlY29yZGVkUmVnaW9uXyA9IHNob3c7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgc2hvd0JvdHRsZW5lY2tzKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2hvd0JvdHRsZW5lY2tzXzsKKyAgICB9LAorCisgICAgc2V0IHNob3dCb3R0bGVuZWNrcyhzaG93KSB7CisgICAgICB0aGlzLnNob3dCb3R0bGVuZWNrc18gPSBzaG93OworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IHNob3dMYXlvdXRSZWN0cygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNob3dMYXlvdXRSZWN0c187CisgICAgfSwKKworICAgIHNldCBzaG93TGF5b3V0UmVjdHMoc2hvdykgeworICAgICAgdGhpcy5zaG93TGF5b3V0UmVjdHNfID0gc2hvdzsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBob3dUb1Nob3dUaWxlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmhvd1RvU2hvd1RpbGVzXzsKKyAgICB9LAorCisgICAgc2V0IGhvd1RvU2hvd1RpbGVzKHZhbCkgeworICAgICAgLy8gTWFrZSBzdXJlIHZhbCBpcyBzb21ldGhpbmcgd2UgZXhwZWN0LgorICAgICAgY29uc29sZS5hc3NlcnQoCisgICAgICAgICAgKHZhbCA9PT0gJ25vbmUnKSB8fAorICAgICAgICAgICh2YWwgPT09ICdjb3ZlcmFnZScpIHx8CisgICAgICAgICAgIWlzTmFOKHBhcnNlRmxvYXQodmFsKSkpOworCisgICAgICB0aGlzLmhvd1RvU2hvd1RpbGVzXyA9IHZhbDsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCB0aWxlSGVhdG1hcFR5cGUoKSB7CisgICAgICByZXR1cm4gdGhpcy50aWxlSGVhdG1hcFR5cGVfOworICAgIH0sCisKKyAgICBzZXQgdGlsZUhlYXRtYXBUeXBlKHZhbCkgeworICAgICAgdGhpcy50aWxlSGVhdG1hcFR5cGVfID0gdmFsOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbl87CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3Rpb24gPT09IHNlbGVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOworICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdzZWxlY3Rpb24tY2hhbmdlJyk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICByZWdlbmVyYXRlQ29udGVudDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnVwZGF0ZVRpbGVzU2VsZWN0b3JfKCk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBsb2FkRGF0YUZvckltYWdlRWxlbWVudF86IGZ1bmN0aW9uKGltYWdlLCBjYWxsYmFjaykgeworICAgICAgdmFyIGltYWdlQ29udGVudCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGltYWdlKS5jb250ZW50OworICAgICAgaW1hZ2Uuc3JjID0gaW1hZ2VDb250ZW50LnJlcGxhY2UoL3VybFwoKC4qKVwpLywgJyQxJyk7CisgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgIGNhbnZhcy53aWR0aCA9IGltYWdlLndpZHRoOworICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0OworICAgICAgICBjdHguZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKyAgICAgICAgdmFyIGltYWdlRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoCisgICAgICAgICAgICAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICBjYWxsYmFjayhpbWFnZURhdGEpOworICAgICAgfQorICAgIH0sCisKKyAgICBvblF1YWRTdGFja1ZpZXdTZWxlY3Rpb25DaGFuZ2VfOiBmdW5jdGlvbihlKSB7CisgICAgICB2YXIgc2VsZWN0YWJsZVF1YWRzID0gZS5xdWFkcy5maWx0ZXIoZnVuY3Rpb24ocSkgeworICAgICAgICByZXR1cm4gcS5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCAhPT0gdW5kZWZpbmVkOworICAgICAgfSk7CisgICAgICBpZiAoc2VsZWN0YWJsZVF1YWRzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gdW5kZWZpbmVkOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIC8vIFNvcnQgdGhlIHF1YWRzIGxvdyB0byBoaWdoIG9uIHN0YWNraW5nR3JvdXBJZC4KKyAgICAgIHNlbGVjdGFibGVRdWFkcy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsKKyAgICAgICAgdmFyIHogPSB4LnN0YWNraW5nR3JvdXBJZCAtIHkuc3RhY2tpbmdHcm91cElkOworICAgICAgICBpZiAoeiAhPSAwKQorICAgICAgICAgIHJldHVybiB6OworICAgICAgICByZXR1cm4geC5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZC5zcGVjaWNpZml0eSAtCisgICAgICAgICAgICB5LnNlbGVjdGlvblRvU2V0SWZDbGlja2VkLnNwZWNpY2lmaXR5OworICAgICAgfSk7CisKKyAgICAgIC8vIFRPRE8obmR1Y2EpOiBTdXBwb3J0IHNlbGVjdGluZyBOIHRoaW5ncyBhdCBvbmNlLgorICAgICAgdmFyIHF1YWRUb1NlbGVjdCA9IHNlbGVjdGFibGVRdWFkc1tzZWxlY3RhYmxlUXVhZHMubGVuZ3RoIC0gMV07CisgICAgICB0aGlzLnNlbGVjdGlvbiA9IHF1YWRUb1NlbGVjdC5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZDsKKyAgICB9LAorCisgICAgc2NoZWR1bGVVcGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMudXBkYXRlQ29udGVudHNQZW5kaW5nXykKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c1BlbmRpbmdfID0gdHJ1ZTsKKyAgICAgIHRyLmIucmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5UaGlzRnJhbWVJZlBvc3NpYmxlKAorICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfLCB0aGlzKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5sYXllclRyZWVJbXBsXykgeworICAgICAgICB0aGlzLnF1YWRTdGFja1ZpZXdfLmhlYWRlclRleHQgPSAnTm8gdHJlZSc7CisgICAgICAgIHRoaXMucXVhZFN0YWNrVmlld18ucXVhZHMgPSBbXTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisKKyAgICAgIHZhciBzdGF0dXMgPSB0aGlzLmNvbXB1dGVQaWN0dXJlTG9hZGluZ1N0YXR1c18oKTsKKyAgICAgIGlmICghc3RhdHVzLnBpY3R1cmVzQ29tcGxldGUpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGx0aGkgPSB0aGlzLmxheWVyVHJlZUltcGxfLmxheWVyVHJlZUhvc3RJbXBsOworICAgICAgdmFyIGx0aGlJbnN0YW5jZSA9IGx0aGkub2JqZWN0SW5zdGFuY2U7CisgICAgICB2YXIgd29ybGRWaWV3cG9ydFJlY3QgPSB0ci5iLlJlY3QuZnJvbVhZV0goCisgICAgICAgICAgMCwgMCwKKyAgICAgICAgICBsdGhpLmRldmljZVZpZXdwb3J0U2l6ZS53aWR0aCwgbHRoaS5kZXZpY2VWaWV3cG9ydFNpemUuaGVpZ2h0KTsKKyAgICAgIHRoaXMucXVhZFN0YWNrVmlld18uZGV2aWNlUmVjdCA9IHdvcmxkVmlld3BvcnRSZWN0OworICAgICAgaWYgKHRoaXMuaXNSZW5kZXJQYXNzUXVhZHNfKQorICAgICAgICB0aGlzLnF1YWRTdGFja1ZpZXdfLnF1YWRzID0gdGhpcy5nZW5lcmF0ZVJlbmRlclBhc3NRdWFkcygpOworICAgICAgZWxzZQorICAgICAgICB0aGlzLnF1YWRTdGFja1ZpZXdfLnF1YWRzID0gdGhpcy5nZW5lcmF0ZUxheWVyUXVhZHMoKTsKKworICAgICAgdGhpcy51cGRhdGVXaGF0UmFzdGVyaXplZExpbmtTdGF0ZV8oKTsKKworICAgICAgdmFyIG1lc3NhZ2UgPSAnJzsKKyAgICAgIGlmIChsdGhpLnRpbGVzSGF2ZUdwdU1lbW9yeVVzYWdlSW5mbykgeworICAgICAgICB2YXIgdGhpc1RyZWVVc2FnZUluQnl0ZXMgPSB0aGlzLmxheWVyVHJlZUltcGxfLmdwdU1lbW9yeVVzYWdlSW5CeXRlczsKKyAgICAgICAgdmFyIG90aGVyVHJlZVVzYWdlSW5CeXRlcyA9IGx0aGkuZ3B1TWVtb3J5VXNhZ2VJbkJ5dGVzIC0KKyAgICAgICAgICAgIHRoaXNUcmVlVXNhZ2VJbkJ5dGVzOworICAgICAgICBtZXNzYWdlICs9IGJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzKHRoaXNUcmVlVXNhZ2VJbkJ5dGVzKSArCisgICAgICAgICAgICAgICAgJ01CIG9uIHRoaXMgdHJlZSc7CisgICAgICAgIGlmIChvdGhlclRyZWVVc2FnZUluQnl0ZXMpIHsKKyAgICAgICAgICBtZXNzYWdlICs9ICcsICcgKworICAgICAgICAgICAgICBieXRlc1RvUm91bmRlZE1lZ2FieXRlcyhvdGhlclRyZWVVc2FnZUluQnl0ZXMpICsKKyAgICAgICAgICAgICAgJ01CIG9uIHRoZSBvdGhlciB0cmVlJzsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHRoaXMubGF5ZXJUcmVlSW1wbF8pIHsKKyAgICAgICAgICB2YXIgdGhpc1RyZWVVc2FnZUluQnl0ZXMgPSB0aGlzLmxheWVyVHJlZUltcGxfLmdwdU1lbW9yeVVzYWdlSW5CeXRlczsKKyAgICAgICAgICBtZXNzYWdlICs9IGJ5dGVzVG9Sb3VuZGVkTWVnYWJ5dGVzKHRoaXNUcmVlVXNhZ2VJbkJ5dGVzKSArCisgICAgICAgICAgICAgICdNQiBvbiB0aGlzIHRyZWUnOworCisgICAgICAgICAgaWYgKHRoaXMubGF5ZXJUcmVlSW1wbF8ub3RoZXJUcmVlKSB7CisgICAgICAgICAgICAvLyBPbGRlciBDaHJvbWVzIGRvbid0IHJlcG9ydCBlbm91Z2ggZGF0YSB0byBrbm93IGhvdyBtdWNoIG1lbW9yeSBpcworICAgICAgICAgICAgLy8gYmVpbmcgdXNlZCBhY3Jvc3MgYm90aCB0cmVlcy4gV2Uga25vdyB0aGUgbWVtb3J5IGNvbnN1bWVkIGJ5IGVhY2gKKyAgICAgICAgICAgIC8vIHRyZWUsIGJ1dCB0aGVyZSBpcyByZXNvdXJjZSBzaGFyaW5nICpiZXR3ZWVuIHRoZSB0cmVlcyogc28gd2UKKyAgICAgICAgICAgIC8vIGNhbid0IHNpbXBseSBzdW0gdXAgdGhlIHBlci10cmVlIGNvc3RzLiBXZSBuZWVkIGVpdGhlciB0aGUgdG90YWwKKyAgICAgICAgICAgIC8vIHBsdXMgb25lIHRyZWUsIHRvIGd1ZXNzIHRoZSB1bmlxdWUgb24gdGhlIG90aGVyIHRyZWUsIGV0Yy4gTmV3ZXIKKyAgICAgICAgICAgIC8vIGNocm9tZXMgcmVwb3J0IG1lbW9yeSBwZXIgdGlsZSwgd2hpY2ggYWxsb3dzIExUSEkgdG8gY29tcHV0ZSB0aGUKKyAgICAgICAgICAgIC8vIHRvdGFsIHRpbGUgbWVtb3J5IHVzYWdlLCBsZXR0aW5nIHVzIGZpZ3VyZSB0aGluZ3Mgb3V0IHByb3Blcmx5LgorICAgICAgICAgICAgbWVzc2FnZSArPSAnLCA/Pz9NQiBvbiBvdGhlciB0cmVlLiAnOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBpZiAobHRoaS5hcmdzLnRpbGVNYW5hZ2VyQmFzaWNTdGF0ZSkgeworICAgICAgICB2YXIgdG1ncyA9IGx0aGkuYXJncy50aWxlTWFuYWdlckJhc2ljU3RhdGUuZ2xvYmFsU3RhdGU7CisgICAgICAgIG1lc3NhZ2UgKz0gJyAoc29mdE1heD0nICsKKyAgICAgICAgICBieXRlc1RvUm91bmRlZE1lZ2FieXRlcyh0bWdzLnNvZnRNZW1vcnlMaW1pdEluQnl0ZXMpICsKKyAgICAgICAgICAnTUIsIGhhcmRNYXg9JyArCisgICAgICAgICAgYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXModG1ncy5oYXJkTWVtb3J5TGltaXRJbkJ5dGVzKSArICdNQiwgJyArCisgICAgICAgICAgdG1ncy5tZW1vcnlMaW1pdFBvbGljeSArICcpJzsKKworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gT2xkIENocm9tZXMgZG8gbm90IGhhdmUgYSBnbG9iYWxTdGF0ZSBvbiB0aGUgTFRISSBkdW1wLgorICAgICAgICAvLyBCdXQgdGhleSBkbyBpc3N1ZSBhIERpZE1hbmFnZSBldmVudCB3aWh0IHRoZSBnbG9iYWxzdGF0ZS4gRmluZCB0aGF0CisgICAgICAgIC8vIGV2ZW50IHNvIHRoYXQgd2Ugc2hvdyBzb21lIGdsb2JhbCBzdGF0ZS4KKyAgICAgICAgdmFyIHRocmVhZCA9IGx0aGkuc25hcHNob3R0ZWRPblRocmVhZDsKKyAgICAgICAgdmFyIGRpZE1hbmFnZVRpbGVzU2xpY2VzID0gdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzLmZpbHRlcihmdW5jdGlvbihzKSB7CisgICAgICAgICAgaWYgKHMuY2F0ZWdvcnkgIT09ICd0ci5lLmNjJykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICBpZiAocy50aXRsZSAhPT0gJ0RpZE1hbmFnZScpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgaWYgKHMuZW5kID4gbHRoaS50cykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAgICAgIGRpZE1hbmFnZVRpbGVzU2xpY2VzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICAgIHJldHVybiB4LmVuZCAtIHkuZW5kOworICAgICAgICB9KTsKKyAgICAgICAgaWYgKGRpZE1hbmFnZVRpbGVzU2xpY2VzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICB2YXIgbmV3ZXN0ID0gZGlkTWFuYWdlVGlsZXNTbGljZXNbZGlkTWFuYWdlVGlsZXNTbGljZXMubGVuZ3RoIC0gMV07CisgICAgICAgICAgdmFyIHRtZ3MgPSBuZXdlc3QuYXJncy5zdGF0ZS5nbG9iYWxfc3RhdGU7CisgICAgICAgICAgbWVzc2FnZSArPSAnIChzb2Z0TWF4PScgKworICAgICAgICAgICAgYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXModG1ncy5zb2Z0X21lbW9yeV9saW1pdF9pbl9ieXRlcykgKworICAgICAgICAgICAgJ01CLCBoYXJkTWF4PScgKworICAgICAgICAgICAgYnl0ZXNUb1JvdW5kZWRNZWdhYnl0ZXModG1ncy5oYXJkX21lbW9yeV9saW1pdF9pbl9ieXRlcykgKyAnTUIsICcgKworICAgICAgICAgICAgdG1ncy5tZW1vcnlfbGltaXRfcG9saWN5ICsgJyknOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGlmICh0aGlzLmxheWVyVHJlZUltcGxfLm90aGVyVHJlZSkKKyAgICAgICAgbWVzc2FnZSArPSAnIChBbm90aGVyIHRyZWUgZXhpc3RzKSc7CisKKworICAgICAgaWYgKG1lc3NhZ2UubGVuZ3RoKQorICAgICAgICB0aGlzLnF1YWRTdGFja1ZpZXdfLmhlYWRlclRleHQgPSBtZXNzYWdlOworICAgICAgZWxzZQorICAgICAgICB0aGlzLnF1YWRTdGFja1ZpZXdfLmhlYWRlclRleHQgPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMudXBkYXRlSW5mb0Jhcl8oc3RhdHVzLm1lc3NhZ2VzKTsKKyAgICB9LAorCisgICAgdXBkYXRlVGlsZXNTZWxlY3Rvcl86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGRhdGEgPSBjcmVhdGVUaWxlUmVjdHNTZWxlY3RvckJhc2VPcHRpb25zKCk7CisKKyAgICAgIGlmICh0aGlzLmxheWVyVHJlZUltcGxfKSB7CisgICAgICAgIC8vIEZpcnN0IGdldCBhbGwgb2YgdGhlIHNjYWxlcyBpbmZvcm1hdGlvbiBmcm9tIExUSEkuCisgICAgICAgIHZhciBsdGhpID0gdGhpcy5sYXllclRyZWVJbXBsXy5sYXllclRyZWVIb3N0SW1wbDsKKyAgICAgICAgdmFyIHNjYWxlTmFtZXMgPSBsdGhpLmdldENvbnRlbnRzU2NhbGVOYW1lcygpOworICAgICAgICBmb3IgKHZhciBzY2FsZSBpbiBzY2FsZU5hbWVzKSB7CisgICAgICAgICAgZGF0YS5wdXNoKHsKKyAgICAgICAgICAgIGxhYmVsOiAnU2NhbGUgJyArIHNjYWxlICsgJyAoJyArIHNjYWxlTmFtZXNbc2NhbGVdICsgJyknLAorICAgICAgICAgICAgdmFsdWU6IHNjYWxlCisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gVGhlbiBjcmVhdGUgYSBuZXcgc2VsZWN0b3IgYW5kIHJlcGxhY2UgdGhlIG9sZCBvbmUuCisgICAgICB2YXIgbmV3X3NlbGVjdG9yID0gdHIudWkuYi5jcmVhdGVTZWxlY3RvcigKKyAgICAgICAgICB0aGlzLCAnaG93VG9TaG93VGlsZXMnLAorICAgICAgICAgICdsYXllclZpZXcuaG93VG9TaG93VGlsZXMnLCAnbm9uZScsCisgICAgICAgICAgZGF0YSk7CisgICAgICB0aGlzLmNvbnRyb2xzXy5yZXBsYWNlQ2hpbGQobmV3X3NlbGVjdG9yLCB0aGlzLnRpbGVSZWN0c1NlbGVjdG9yXyk7CisgICAgICB0aGlzLnRpbGVSZWN0c1NlbGVjdG9yXyA9IG5ld19zZWxlY3RvcjsKKyAgICB9LAorCisgICAgY29tcHV0ZVBpY3R1cmVMb2FkaW5nU3RhdHVzXzogZnVuY3Rpb24oKSB7CisgICAgICAvLyBGaWd1cmUgb3V0IGlmIHdlIGNhbiBkcmF3IHRoZSBxdWFkcyB5ZXQuIFdoaWxlIHdlJ3JlIGF0IGl0LCBmaWd1cmUgb3V0CisgICAgICAvLyBpZiB3ZSBoYXZlIGFueSB3YXJuaW5ncyB3ZSBuZWVkIHRvIHNob3cuCisgICAgICB2YXIgbGF5ZXJzID0gdGhpcy5sYXllcnM7CisgICAgICB2YXIgc3RhdHVzID0geworICAgICAgICBtZXNzYWdlczogW10sCisgICAgICAgIHBpY3R1cmVzQ29tcGxldGU6IHRydWUKKyAgICAgIH07CisgICAgICBpZiAodGhpcy5zaG93Q29udGVudHMpIHsKKyAgICAgICAgdmFyIGhhc1BlbmRpbmdSYXN0ZXJpemVJbWFnZSA9IGZhbHNlOworICAgICAgICB2YXIgZmlyc3RQaWN0dXJlRXJyb3IgPSB1bmRlZmluZWQ7CisgICAgICAgIHZhciBoYXNNaXNzaW5nTGF5ZXJSZWN0ID0gZmFsc2U7CisgICAgICAgIHZhciBoYXNVbnJlc29sdmVkUGljdHVyZVJlZiA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBsYXllciA9IGxheWVyc1tpXTsKKyAgICAgICAgICBmb3IgKHZhciBpciA9IDA7IGlyIDwgbGF5ZXIucGljdHVyZXMubGVuZ3RoOyArK2lyKSB7CisgICAgICAgICAgICB2YXIgcGljdHVyZSA9IGxheWVyLnBpY3R1cmVzW2lyXTsKKworICAgICAgICAgICAgaWYgKHBpY3R1cmUuaWRSZWYpIHsKKyAgICAgICAgICAgICAgaGFzVW5yZXNvbHZlZFBpY3R1cmVSZWYgPSB0cnVlOworICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcGljdHVyZS5sYXllclJlY3QpIHsKKyAgICAgICAgICAgICAgaGFzTWlzc2luZ0xheWVyUmVjdCA9IHRydWU7CisgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgcGljdHVyZUFzSW1hZ2VEYXRhID0gdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfW3BpY3R1cmUuZ3VpZF07CisgICAgICAgICAgICBpZiAoIXBpY3R1cmVBc0ltYWdlRGF0YSkgeworICAgICAgICAgICAgICBoYXNQZW5kaW5nUmFzdGVyaXplSW1hZ2UgPSB0cnVlOworICAgICAgICAgICAgICB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV9bcGljdHVyZS5ndWlkXSA9CisgICAgICAgICAgICAgICAgICB0ci5lLmNjLlBpY3R1cmVBc0ltYWdlRGF0YS5QZW5kaW5nKHRoaXMpOworICAgICAgICAgICAgICBwaWN0dXJlLnJhc3Rlcml6ZSgKKyAgICAgICAgICAgICAgICAgIHtzdG9wSW5kZXg6IHVuZGVmaW5lZH0sCisgICAgICAgICAgICAgICAgICBmdW5jdGlvbihwaWN0dXJlSW1hZ2VEYXRhKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBwaWN0dXJlXyA9IHBpY3R1cmVJbWFnZURhdGEucGljdHVyZTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfW3BpY3R1cmVfLmd1aWRdID0gcGljdHVyZUltYWdlRGF0YTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGljdHVyZUFzSW1hZ2VEYXRhLmlzUGVuZGluZygpKSB7CisgICAgICAgICAgICAgIGhhc1BlbmRpbmdSYXN0ZXJpemVJbWFnZSA9IHRydWU7CisgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBpY3R1cmVBc0ltYWdlRGF0YS5lcnJvcikgeworICAgICAgICAgICAgICBpZiAoIWZpcnN0UGljdHVyZUVycm9yKQorICAgICAgICAgICAgICAgIGZpcnN0UGljdHVyZUVycm9yID0gcGljdHVyZUFzSW1hZ2VEYXRhLmVycm9yOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGhhc1BlbmRpbmdSYXN0ZXJpemVJbWFnZSkgeworICAgICAgICAgIHN0YXR1cy5waWN0dXJlc0NvbXBsZXRlID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgaWYgKGhhc1VucmVzb2x2ZWRQaWN0dXJlUmVmKSB7CisgICAgICAgICAgICBzdGF0dXMubWVzc2FnZXMucHVzaCh7CisgICAgICAgICAgICAgIGhlYWRlcjogJ01pc3NpbmcgcGljdHVyZScsCisgICAgICAgICAgICAgIGRldGFpbHM6ICdZb3VyIHRyYWNlIGRpZG50IGhhdmUgcGljdHVyZXMgZm9yIGV2ZXJ5IGxheWVyLiAnICsKKyAgICAgICAgICAgICAgICAgICdPbGQgY2hyb21lIHZlcnNpb25zIGhhZCB0aGlzIHByb2JsZW0nfSk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChoYXNNaXNzaW5nTGF5ZXJSZWN0KSB7CisgICAgICAgICAgICBzdGF0dXMubWVzc2FnZXMucHVzaCh7CisgICAgICAgICAgICAgIGhlYWRlcjogJ01pc3NpbmcgbGF5ZXIgcmVjdCcsCisgICAgICAgICAgICAgIGRldGFpbHM6ICdZb3VyIHRyYWNlIG1heSBiZSBjb3JydXB0IG9yIGZyb20gYSB2ZXJ5IG9sZCAnICsKKyAgICAgICAgICAgICAgICAgICdDaHJvbWUgcmV2aXNpb24uJ30pOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoZmlyc3RQaWN0dXJlRXJyb3IpIHsKKyAgICAgICAgICAgIHN0YXR1cy5tZXNzYWdlcy5wdXNoKHsKKyAgICAgICAgICAgICAgaGVhZGVyOiAnQ2Fubm90IHJhc3Rlcml6ZScsCisgICAgICAgICAgICAgIGRldGFpbHM6IGZpcnN0UGljdHVyZUVycm9yfSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgICBpZiAodGhpcy5zaG93SW5wdXRFdmVudHMgJiYgdGhpcy5sYXllclRyZWVJbXBsLnRyYWNlZElucHV0TGF0ZW5jaWVzICYmCisgICAgICAgICAgdGhpcy5pbnB1dEV2ZW50SW1hZ2VEYXRhXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHZhciBpbWFnZSA9IHRoaXMucXVlcnlTZWxlY3RvcignI2lucHV0LWV2ZW50Jyk7CisgICAgICAgIGlmICghaW1hZ2Uuc3JjKSB7CisgICAgICAgICAgdGhpcy5sb2FkRGF0YUZvckltYWdlRWxlbWVudF8oaW1hZ2UsIGZ1bmN0aW9uKGltYWdlRGF0YSkgeworICAgICAgICAgICAgdGhpcy5pbnB1dEV2ZW50SW1hZ2VEYXRhXyA9IGltYWdlRGF0YTsKKyAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudHNQZW5kaW5nXyA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdHVzLnBpY3R1cmVzQ29tcGxldGUgPSBmYWxzZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfSwKKworICAgIGdldCBzZWxlY3RlZFJlbmRlclBhc3MoKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3Rpb24pCisgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5yZW5kZXJQYXNzXzsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGVkTGF5ZXIoKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHsKKyAgICAgICAgdmFyIHNlbGVjdGVkTGF5ZXJJZCA9IHRoaXMuc2VsZWN0aW9uLmFzc29jaWF0ZWRMYXllcklkOworICAgICAgICByZXR1cm4gdGhpcy5sYXllclRyZWVJbXBsXy5maW5kTGF5ZXJXaXRoSWQoc2VsZWN0ZWRMYXllcklkKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZ2V0IHJlbmRlclBhc3NlcygpIHsKKyAgICAgIHZhciByZW5kZXJQYXNzZXMgPQorICAgICAgICAgIHRoaXMubGF5ZXJUcmVlSW1wbC5sYXllclRyZWVIb3N0SW1wbC5hcmdzLmZyYW1lLnJlbmRlclBhc3NlczsKKyAgICAgIGlmICghdGhpcy5zaG93T3RoZXJMYXllcnMpIHsKKyAgICAgICAgdmFyIHNlbGVjdGVkUmVuZGVyUGFzcyA9IHRoaXMuc2VsZWN0ZWRSZW5kZXJQYXNzOworICAgICAgICBpZiAoc2VsZWN0ZWRSZW5kZXJQYXNzKQorICAgICAgICAgIHJlbmRlclBhc3NlcyA9IFtzZWxlY3RlZFJlbmRlclBhc3NdOworICAgICAgfQorICAgICAgcmV0dXJuIHJlbmRlclBhc3NlczsKKyAgICB9LAorCisgICAgZ2V0IGxheWVycygpIHsKKyAgICAgIHZhciBsYXllcnMgPSB0aGlzLmxheWVyVHJlZUltcGwucmVuZGVyU3VyZmFjZUxheWVyTGlzdDsKKyAgICAgIGlmICghdGhpcy5zaG93T3RoZXJMYXllcnMpIHsKKyAgICAgICAgdmFyIHNlbGVjdGVkTGF5ZXIgPSB0aGlzLnNlbGVjdGVkTGF5ZXI7CisgICAgICAgIGlmIChzZWxlY3RlZExheWVyKQorICAgICAgICAgIGxheWVycyA9IFtzZWxlY3RlZExheWVyXTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBsYXllcnM7CisgICAgfSwKKworICAgIGFwcGVuZEltYWdlUXVhZHNfOiBmdW5jdGlvbihxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCkgeworICAgICAgLy8gR2VuZXJhdGUgaW1hZ2UgcXVhZHMgZm9yIHRoZSBsYXllcgorICAgICAgZm9yICh2YXIgaXIgPSAwOyBpciA8IGxheWVyLnBpY3R1cmVzLmxlbmd0aDsgKytpcikgeworICAgICAgICB2YXIgcGljdHVyZSA9IGxheWVyLnBpY3R1cmVzW2lyXTsKKyAgICAgICAgaWYgKCFwaWN0dXJlLmxheWVyUmVjdCkKKyAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICB2YXIgdW5pdFJlY3QgPSBwaWN0dXJlLmxheWVyUmVjdC5hc1VWUmVjdEluc2lkZShsYXllci5ib3VuZHMpOworICAgICAgICB2YXIgaXEgPSBsYXllclF1YWQucHJvamVjdFVuaXRSZWN0KHVuaXRSZWN0KTsKKworICAgICAgICB2YXIgcGljdHVyZURhdGEgPSB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV9bcGljdHVyZS5ndWlkXTsKKyAgICAgICAgaWYgKHRoaXMuc2hvd0NvbnRlbnRzICYmIHBpY3R1cmVEYXRhICYmIHBpY3R1cmVEYXRhLmltYWdlRGF0YSkgeworICAgICAgICAgIGlxLmltYWdlRGF0YSA9IHBpY3R1cmVEYXRhLmltYWdlRGF0YTsKKyAgICAgICAgICBpcS5ib3JkZXJDb2xvciA9ICdyZ2JhKDAsMCwwLDApJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBpcS5pbWFnZURhdGEgPSB1bmRlZmluZWQ7CisgICAgICAgIH0KKworICAgICAgICBpcS5zdGFja2luZ0dyb3VwSWQgPSBsYXllclF1YWQuc3RhY2tpbmdHcm91cElkOworICAgICAgICBxdWFkcy5wdXNoKGlxKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYXBwZW5kQW5pbWF0aW9uUXVhZHNfOiBmdW5jdGlvbihxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCkgeworICAgICAgaWYgKCFsYXllci5hbmltYXRpb25Cb3VuZHNSZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciByZWN0ID0gbGF5ZXIuYW5pbWF0aW9uQm91bmRzUmVjdDsKKyAgICAgIHZhciBhYnEgPSB0ci5iLlF1YWQuZnJvbVJlY3QocmVjdCk7CisKKyAgICAgIGFicS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgxNjQsMTkxLDQ4LDAuNSknOworICAgICAgYWJxLmJvcmRlckNvbG9yID0gJ3JnYmEoMjA1LDI1NSwwLDAuNzUpJzsKKyAgICAgIGFicS5ib3JkZXJXaWR0aCA9IDMuMDsKKyAgICAgIGFicS5zdGFja2luZ0dyb3VwSWQgPSBsYXllclF1YWQuc3RhY2tpbmdHcm91cElkOworICAgICAgYWJxLnNlbGVjdGlvblRvU2V0SWZDbGlja2VkID0gbmV3IGNjLkFuaW1hdGlvblJlY3RTZWxlY3Rpb24oCisgICAgICAgICAgbGF5ZXIsIHJlY3QpOworICAgICAgcXVhZHMucHVzaChhYnEpOworICAgIH0sCisKKyAgICBhcHBlbmRJbnZhbGlkYXRpb25RdWFkc186IGZ1bmN0aW9uKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkKSB7CisgICAgICBpZiAobGF5ZXIubGF5ZXJUcmVlSW1wbC5oYXNTb3VyY2VGcmFtZUJlZW5EcmF3bkJlZm9yZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBHZW5lcmF0ZSB0aGUgaW52YWxpZGF0aW9uIHJlY3QgcXVhZHMuCisgICAgICBmb3IgKHZhciBpciA9IDA7IGlyIDwgbGF5ZXIuYW5ub3RhdGVkSW52YWxpZGF0aW9uLnJlY3RzLmxlbmd0aDsgaXIrKykgeworICAgICAgICB2YXIgcmVjdCA9IGxheWVyLmFubm90YXRlZEludmFsaWRhdGlvbi5yZWN0c1tpcl07CisgICAgICAgIHZhciB1bml0UmVjdCA9IHJlY3QuYXNVVlJlY3RJbnNpZGUobGF5ZXIuYm91bmRzKTsKKyAgICAgICAgdmFyIGlxID0gbGF5ZXJRdWFkLnByb2plY3RVbml0UmVjdCh1bml0UmVjdCk7CisgICAgICAgIGlxLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDAsIDI1NSwgMCwgMC4xKSc7CisgICAgICAgIGlmIChyZWN0LnJlYXNvbiA9PT0gJ3JlbmRlcmVyIGluc2VydGlvbicpCisgICAgICAgICAgICBpcS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAyNTUsIDEyOCwgMC4xKSc7CisgICAgICAgIGlxLmJvcmRlckNvbG9yID0gJ3JnYmEoMCwgMjU1LCAwLCAxKSc7CisgICAgICAgIGlxLnN0YWNraW5nR3JvdXBJZCA9IGxheWVyUXVhZC5zdGFja2luZ0dyb3VwSWQ7CisgICAgICAgIGlxLnNlbGVjdGlvblRvU2V0SWZDbGlja2VkID0gbmV3IGNjLkxheWVyUmVjdFNlbGVjdGlvbigKKyAgICAgICAgICAgIGxheWVyLCAnSW52YWxpZGF0aW9uIHJlY3QgKCcgKyByZWN0LnJlYXNvbiArICcpJywgcmVjdCwgcmVjdCk7CisgICAgICAgIHF1YWRzLnB1c2goaXEpOworICAgICAgfQorCisgICAgICAvLyBTaG93IHVuYW5ub3RhdGVkIGludmFsaWRhdGlvbiByZWN0IHF1YWRzIGlmIG5vIGFubm90YXRlZCByZWN0cyBhcmUKKyAgICAgIC8vIGF2YWlsYWJsZS4KKyAgICAgIGlmIChsYXllci5hbm5vdGF0ZWRJbnZhbGlkYXRpb24ucmVjdHMubGVuZ3RoID09PSAwKSB7CisgICAgICAgIGZvciAodmFyIGlyID0gMDsgaXIgPCBsYXllci5pbnZhbGlkYXRpb24ucmVjdHMubGVuZ3RoOyBpcisrKSB7CisgICAgICAgICAgdmFyIHJlY3QgPSBsYXllci5pbnZhbGlkYXRpb24ucmVjdHNbaXJdOworICAgICAgICAgIHZhciB1bml0UmVjdCA9IHJlY3QuYXNVVlJlY3RJbnNpZGUobGF5ZXIuYm91bmRzKTsKKyAgICAgICAgICB2YXIgaXEgPSBsYXllclF1YWQucHJvamVjdFVuaXRSZWN0KHVuaXRSZWN0KTsKKyAgICAgICAgICBpcS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAyNTUsIDAsIDAuMSknOworICAgICAgICAgIGlxLmJvcmRlckNvbG9yID0gJ3JnYmEoMCwgMjU1LCAwLCAxKSc7CisgICAgICAgICAgaXEuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKKyAgICAgICAgICBpcS5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyBjYy5MYXllclJlY3RTZWxlY3Rpb24oCisgICAgICAgICAgICAgIGxheWVyLCAnSW52YWxpZGF0aW9uIHJlY3QnLCByZWN0LCByZWN0KTsKKyAgICAgICAgICBxdWFkcy5wdXNoKGlxKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBhcHBlbmRVbnJlY29yZGVkUmVnaW9uUXVhZHNfOiBmdW5jdGlvbihxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCkgeworICAgICAgLy8gR2VuZXJhdGUgdGhlIHVucmVjb3JkZWQgcmVnaW9uIHF1YWRzLgorICAgICAgZm9yICh2YXIgaXIgPSAwOyBpciA8IGxheWVyLnVucmVjb3JkZWRSZWdpb24ucmVjdHMubGVuZ3RoOyBpcisrKSB7CisgICAgICAgIHZhciByZWN0ID0gbGF5ZXIudW5yZWNvcmRlZFJlZ2lvbi5yZWN0c1tpcl07CisgICAgICAgIHZhciB1bml0UmVjdCA9IHJlY3QuYXNVVlJlY3RJbnNpZGUobGF5ZXIuYm91bmRzKTsKKyAgICAgICAgdmFyIGlxID0gbGF5ZXJRdWFkLnByb2plY3RVbml0UmVjdCh1bml0UmVjdCk7CisgICAgICAgIGlxLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDI0MCwgMjMwLCAxNDAsIDAuMyknOworICAgICAgICBpcS5ib3JkZXJDb2xvciA9ICdyZ2JhKDI0MCwgMjMwLCAxNDAsIDEpJzsKKyAgICAgICAgaXEuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKKyAgICAgICAgaXEuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQgPSBuZXcgY2MuTGF5ZXJSZWN0U2VsZWN0aW9uKAorICAgICAgICAgICAgbGF5ZXIsICdVbnJlY29yZGVkIGFyZWEnLCByZWN0LCByZWN0KTsKKyAgICAgICAgcXVhZHMucHVzaChpcSk7CisgICAgICB9CisgICAgfSwKKworICAgIGFwcGVuZEJvdHRsZW5lY2tRdWFkc186IGZ1bmN0aW9uKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBzdGFja2luZ0dyb3VwSWQpIHsKKyAgICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWdpb24ocmVnaW9uLCBsYWJlbCwgYm9yZGVyQ29sb3IpIHsKKyAgICAgICAgdmFyIGJhY2tncm91bmRDb2xvciA9IGJvcmRlckNvbG9yLmNsb25lKCk7CisgICAgICAgIGJhY2tncm91bmRDb2xvci5hID0gMC40ICogKGJvcmRlckNvbG9yLmEgfHwgMS4wKTsKKworICAgICAgICBpZiAoIXJlZ2lvbiB8fCAhcmVnaW9uLnJlY3RzKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKHZhciBpciA9IDA7IGlyIDwgcmVnaW9uLnJlY3RzLmxlbmd0aDsgaXIrKykgeworICAgICAgICAgIHZhciByZWN0ID0gcmVnaW9uLnJlY3RzW2lyXTsKKyAgICAgICAgICB2YXIgdW5pdFJlY3QgPSByZWN0LmFzVVZSZWN0SW5zaWRlKGxheWVyLmJvdW5kcyk7CisgICAgICAgICAgdmFyIGlxID0gbGF5ZXJRdWFkLnByb2plY3RVbml0UmVjdCh1bml0UmVjdCk7CisgICAgICAgICAgaXEuYmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZENvbG9yLnRvU3RyaW5nKCk7CisgICAgICAgICAgaXEuYm9yZGVyQ29sb3IgPSBib3JkZXJDb2xvci50b1N0cmluZygpOworICAgICAgICAgIGlxLmJvcmRlcldpZHRoID0gNC4wOworICAgICAgICAgIGlxLnN0YWNraW5nR3JvdXBJZCA9IHN0YWNraW5nR3JvdXBJZDsKKyAgICAgICAgICBpcS5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyBjYy5MYXllclJlY3RTZWxlY3Rpb24oCisgICAgICAgICAgICAgIGxheWVyLCBsYWJlbCwgcmVjdCwgcmVjdCk7CisgICAgICAgICAgcXVhZHMucHVzaChpcSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgcHJvY2Vzc1JlZ2lvbihsYXllci50b3VjaEV2ZW50SGFuZGxlclJlZ2lvbiwgJ1RvdWNoIGxpc3RlbmVyJywKKyAgICAgICAgICAgICAgICAgICAgdHIuYi5Db2xvci5mcm9tU3RyaW5nKCdyZ2IoMjI4LCAyMjYsIDI3KScpKTsKKyAgICAgIHByb2Nlc3NSZWdpb24obGF5ZXIud2hlZWxFdmVudEhhbmRsZXJSZWdpb24sICdXaGVlbCBsaXN0ZW5lcicsCisgICAgICAgICAgICAgICAgICAgIHRyLmIuQ29sb3IuZnJvbVN0cmluZygncmdiKDE3NiwgMjA1LCAyOSknKSk7CisgICAgICBwcm9jZXNzUmVnaW9uKGxheWVyLm5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLCAnUmVwYWludHMgb24gc2Nyb2xsJywKKyAgICAgICAgICAgICAgICAgICAgdHIuYi5Db2xvci5mcm9tU3RyaW5nKCdyZ2IoMjEzLCAxMzQsIDMyKScpKTsKKyAgICB9LAorCisgICAgYXBwZW5kVGlsZUNvdmVyYWdlUmVjdFF1YWRzXzogZnVuY3Rpb24oCisgICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBoZWF0bWFwVHlwZSkgeworICAgICAgaWYgKCFsYXllci50aWxlQ292ZXJhZ2VSZWN0cykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgdGlsZXMgPSBbXTsKKyAgICAgIGZvciAodmFyIGN0ID0gMDsgY3QgPCBsYXllci50aWxlQ292ZXJhZ2VSZWN0cy5sZW5ndGg7ICsrY3QpIHsKKyAgICAgICAgdmFyIHRpbGUgPSBsYXllci50aWxlQ292ZXJhZ2VSZWN0c1tjdF0udGlsZTsKKyAgICAgICAgaWYgKHRpbGUgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB0aWxlcy5wdXNoKHRpbGUpOworICAgICAgfQorCisgICAgICB2YXIgbHRoaSA9IHRoaXMubGF5ZXJUcmVlSW1wbF8ubGF5ZXJUcmVlSG9zdEltcGw7CisgICAgICB2YXIgbWluTWF4ID0KKyAgICAgICAgICB0aGlzLmdldE1pbk1heEZvckhlYXRtYXBfKGx0aGkuYWN0aXZlVGlsZXMsIGhlYXRtYXBUeXBlKTsKKyAgICAgIHZhciBoZWF0bWFwUmVzdWx0ID0KKyAgICAgICAgICB0aGlzLmNvbXB1dGVIZWF0bWFwQ29sb3JzXyh0aWxlcywgbWluTWF4LCBoZWF0bWFwVHlwZSk7CisgICAgICB2YXIgaGVhdEluZGV4ID0gMDsKKworICAgICAgZm9yICh2YXIgY3QgPSAwOyBjdCA8IGxheWVyLnRpbGVDb3ZlcmFnZVJlY3RzLmxlbmd0aDsgKytjdCkgeworICAgICAgICB2YXIgcmVjdCA9IGxheWVyLnRpbGVDb3ZlcmFnZVJlY3RzW2N0XS5nZW9tZXRyeVJlY3Q7CisgICAgICAgIHJlY3QgPSByZWN0LnNjYWxlKDEuMCAvIGxheWVyLmdlb21ldHJ5Q29udGVudHNTY2FsZSk7CisKKyAgICAgICAgdmFyIHRpbGUgPSBsYXllci50aWxlQ292ZXJhZ2VSZWN0c1tjdF0udGlsZTsKKworICAgICAgICB2YXIgdW5pdFJlY3QgPSByZWN0LmFzVVZSZWN0SW5zaWRlKGxheWVyLmJvdW5kcyk7CisgICAgICAgIHZhciBxdWFkID0gbGF5ZXJRdWFkLnByb2plY3RVbml0UmVjdCh1bml0UmVjdCk7CisKKyAgICAgICAgcXVhZC5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAwLCAwLCAwKSc7CisgICAgICAgIHF1YWQuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKKyAgICAgICAgdmFyIHR5cGUgPSB0ci5lLmNjLnRpbGVUeXBlcy5taXNzaW5nOworICAgICAgICBpZiAodGlsZSkgeworICAgICAgICAgIHR5cGUgPSB0aWxlLmdldFR5cGVGb3JMYXllcihsYXllcik7CisgICAgICAgICAgcXVhZC5iYWNrZ3JvdW5kQ29sb3IgPSBoZWF0bWFwUmVzdWx0W2hlYXRJbmRleF0uY29sb3I7CisgICAgICAgICAgKytoZWF0SW5kZXg7CisgICAgICAgIH0KKworICAgICAgICBxdWFkLmJvcmRlckNvbG9yID0gdHIuZS5jYy50aWxlQm9yZGVyW3R5cGVdLmNvbG9yOworICAgICAgICBxdWFkLmJvcmRlcldpZHRoID0gdHIuZS5jYy50aWxlQm9yZGVyW3R5cGVdLndpZHRoOworICAgICAgICB2YXIgbGFiZWw7CisgICAgICAgIGlmICh0aWxlKQorICAgICAgICAgIGxhYmVsID0gJ2NvdmVyYWdlUmVjdCc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBsYWJlbCA9ICdjaGVja2VyYm9hcmQgY292ZXJhZ2VSZWN0JzsKKyAgICAgICAgcXVhZC5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyBjYy5MYXllclJlY3RTZWxlY3Rpb24oCisgICAgICAgICAgICBsYXllciwgbGFiZWwsIHJlY3QsIGxheWVyLnRpbGVDb3ZlcmFnZVJlY3RzW2N0XSk7CisKKyAgICAgICAgcXVhZHMucHVzaChxdWFkKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYXBwZW5kTGF5b3V0UmVjdFF1YWRzXzogZnVuY3Rpb24ocXVhZHMsIGxheWVyLCBsYXllclF1YWQpIHsKKyAgICAgIGlmICghbGF5ZXIubGF5b3V0UmVjdHMpIHsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBmb3IgKHZhciBjdCA9IDA7IGN0IDwgbGF5ZXIubGF5b3V0UmVjdHMubGVuZ3RoOyArK2N0KSB7CisgICAgICAgIHZhciByZWN0ID0gbGF5ZXIubGF5b3V0UmVjdHNbY3RdLmdlb21ldHJ5UmVjdDsKKyAgICAgICAgcmVjdCA9IHJlY3Quc2NhbGUoMS4wIC8gbGF5ZXIuZ2VvbWV0cnlDb250ZW50c1NjYWxlKTsKKworICAgICAgICB2YXIgdW5pdFJlY3QgPSByZWN0LmFzVVZSZWN0SW5zaWRlKGxheWVyLmJvdW5kcyk7CisgICAgICAgIHZhciBxdWFkID0gbGF5ZXJRdWFkLnByb2plY3RVbml0UmVjdCh1bml0UmVjdCk7CisKKyAgICAgICAgcXVhZC5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgwLCAwLCAwLCAwKSc7CisgICAgICAgIHF1YWQuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKKworICAgICAgICBxdWFkLmJvcmRlckNvbG9yID0gJ3JnYmEoMCwgMCwgMjAwLCAwLjcpJzsKKyAgICAgICAgcXVhZC5ib3JkZXJXaWR0aCA9IDI7CisgICAgICAgIHZhciBsYWJlbDsKKyAgICAgICAgbGFiZWwgPSAnTGF5b3V0IHJlY3QnOworICAgICAgICBxdWFkLnNlbGVjdGlvblRvU2V0SWZDbGlja2VkID0gbmV3IGNjLkxheWVyUmVjdFNlbGVjdGlvbigKKyAgICAgICAgICAgIGxheWVyLCBsYWJlbCwgcmVjdCk7CisKKyAgICAgICAgcXVhZHMucHVzaChxdWFkKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZ2V0VmFsdWVGb3JIZWF0bWFwXzogZnVuY3Rpb24odGlsZSwgaGVhdG1hcFR5cGUpIHsKKyAgICAgIGlmIChoZWF0bWFwVHlwZSA9PSBUSUxFX0hFQVRNQVBfVFlQRS5TQ0hFRFVMRURfUFJJT1JJVFkpIHsKKyAgICAgICAgcmV0dXJuIHRpbGUuc2NoZWR1bGVkUHJpb3JpdHkgPT0gMCA/CisgICAgICAgICAgICB1bmRlZmluZWQgOgorICAgICAgICAgICAgdGlsZS5zY2hlZHVsZWRQcmlvcml0eTsKKyAgICAgIH0gZWxzZSBpZiAoaGVhdG1hcFR5cGUgPT0gVElMRV9IRUFUTUFQX1RZUEUuVVNJTkdfR1BVX01FTU9SWSkgeworICAgICAgICBpZiAodGlsZS5pc1NvbGlkQ29sb3IpCisgICAgICAgICAgcmV0dXJuIDAuNTsKKyAgICAgICAgcmV0dXJuIHRpbGUuaXNVc2luZ0dwdU1lbW9yeSA/IDAgOiAxOworICAgICAgfQorICAgIH0sCisKKyAgICBnZXRNaW5NYXhGb3JIZWF0bWFwXzogZnVuY3Rpb24odGlsZXMsIGhlYXRtYXBUeXBlKSB7CisgICAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOworICAgICAgaWYgKGhlYXRtYXBUeXBlID09IFRJTEVfSEVBVE1BUF9UWVBFLlVTSU5HX0dQVV9NRU1PUlkpIHsKKyAgICAgICAgcmFuZ2UuYWRkVmFsdWUoMCk7CisgICAgICAgIHJhbmdlLmFkZFZhbHVlKDEpOworICAgICAgICByZXR1cm4gcmFuZ2U7CisgICAgICB9CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5nZXRWYWx1ZUZvckhlYXRtYXBfKHRpbGVzW2ldLCBoZWF0bWFwVHlwZSk7CisgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByYW5nZS5hZGRWYWx1ZSh2YWx1ZSk7CisgICAgICB9CisgICAgICBpZiAocmFuZ2UucmFuZ2UgPT09IDApCisgICAgICAgIHJhbmdlLmFkZFZhbHVlKDEpOworICAgICAgcmV0dXJuIHJhbmdlOworICAgIH0sCisKKyAgICBjb21wdXRlSGVhdG1hcENvbG9yc186IGZ1bmN0aW9uKHRpbGVzLCBtaW5NYXgsIGhlYXRtYXBUeXBlKSB7CisgICAgICB2YXIgbWluID0gbWluTWF4Lm1pbjsKKyAgICAgIHZhciBtYXggPSBtaW5NYXgubWF4OworCisgICAgICB2YXIgY29sb3IgPSBmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICB2YXIgaHVlID0gMTIwICogKDEgLSAodmFsdWUgLSBtaW4pIC8gKG1heCAtIG1pbikpOworICAgICAgICBpZiAoaHVlIDwgMCkKKyAgICAgICAgICBodWUgPSAwOworICAgICAgICByZXR1cm4gJ2hzbGEoJyArIGh1ZSArICcsIDEwMCUsIDUwJSwgMC41KSc7CisgICAgICB9OworCisgICAgICB2YXIgdmFsdWVzID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciB0aWxlID0gdGlsZXNbaV07CisgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGb3JIZWF0bWFwXyh0aWxlLCBoZWF0bWFwVHlwZSk7CisgICAgICAgIHZhciByZXMgPSB7CisgICAgICAgICAgdmFsdWU6IHZhbHVlLAorICAgICAgICAgIGNvbG9yOiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gY29sb3IodmFsdWUpIDogdW5kZWZpbmVkCisgICAgICAgIH07CisgICAgICAgIHZhbHVlcy5wdXNoKHJlcyk7CisgICAgICB9CisKKyAgICAgIHJldHVybiB2YWx1ZXM7CisgICAgfSwKKworICAgIGFwcGVuZFRpbGVzV2l0aFNjYWxlUXVhZHNfOiBmdW5jdGlvbigKKyAgICAgICAgcXVhZHMsIGxheWVyLCBsYXllclF1YWQsIHNjYWxlLCBoZWF0bWFwVHlwZSkgeworICAgICAgdmFyIGx0aGkgPSB0aGlzLmxheWVyVHJlZUltcGxfLmxheWVyVHJlZUhvc3RJbXBsOworCisgICAgICB2YXIgdGlsZXMgPSBbXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbHRoaS5hY3RpdmVUaWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgdGlsZSA9IGx0aGkuYWN0aXZlVGlsZXNbaV07CisKKyAgICAgICAgaWYgKE1hdGguYWJzKHRpbGUuY29udGVudHNTY2FsZSAtIHNjYWxlKSA+IDFlLTYpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gVE9ETyh2bXBzdHIpOiBNYWtlIHRoZSBzdGljaGluZyBvZiB0aWxlcyBhbmQgbGF5ZXJzIGEgcGFydCBvZgorICAgICAgICAvLyB0aWxlIGNvbnN0cnVjdGlvbiAoaXNzdWUgMzQ2KQorICAgICAgICBpZiAobGF5ZXIubGF5ZXJJZCAhPSB0aWxlLmxheWVySWQpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdGlsZXMucHVzaCh0aWxlKTsKKyAgICAgIH0KKworICAgICAgdmFyIG1pbk1heCA9CisgICAgICAgICAgdGhpcy5nZXRNaW5NYXhGb3JIZWF0bWFwXyhsdGhpLmFjdGl2ZVRpbGVzLCBoZWF0bWFwVHlwZSk7CisgICAgICB2YXIgaGVhdG1hcFJlc3VsdCA9CisgICAgICAgICAgdGhpcy5jb21wdXRlSGVhdG1hcENvbG9yc18odGlsZXMsIG1pbk1heCwgaGVhdG1hcFR5cGUpOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciB0aWxlID0gdGlsZXNbaV07CisgICAgICAgIHZhciByZWN0ID0gdGlsZS5sYXllclJlY3Q7CisgICAgICAgIGlmICghdGlsZS5sYXllclJlY3QpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciB1bml0UmVjdCA9IHJlY3QuYXNVVlJlY3RJbnNpZGUobGF5ZXIuYm91bmRzKTsKKyAgICAgICAgdmFyIHF1YWQgPSBsYXllclF1YWQucHJvamVjdFVuaXRSZWN0KHVuaXRSZWN0KTsKKworICAgICAgICBxdWFkLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDAsIDAsIDAsIDApJzsKKyAgICAgICAgcXVhZC5zdGFja2luZ0dyb3VwSWQgPSBsYXllclF1YWQuc3RhY2tpbmdHcm91cElkOworCisgICAgICAgIHZhciB0eXBlID0gdGlsZS5nZXRUeXBlRm9yTGF5ZXIobGF5ZXIpOworICAgICAgICBxdWFkLmJvcmRlckNvbG9yID0gdHIuZS5jYy50aWxlQm9yZGVyW3R5cGVdLmNvbG9yOworICAgICAgICBxdWFkLmJvcmRlcldpZHRoID0gdHIuZS5jYy50aWxlQm9yZGVyW3R5cGVdLndpZHRoOworCisgICAgICAgIHF1YWQuYmFja2dyb3VuZENvbG9yID0gaGVhdG1hcFJlc3VsdFtpXS5jb2xvcjsKKyAgICAgICAgdmFyIGRhdGEgPSB7CisgICAgICAgICAgdGlsZVR5cGU6IHR5cGUKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKGhlYXRtYXBUeXBlICE9PSBUSUxFX0hFQVRNQVBfVFlQRS5OT05FKQorICAgICAgICAgIGRhdGFbaGVhdG1hcFR5cGVdID0gaGVhdG1hcFJlc3VsdFtpXS52YWx1ZTsKKyAgICAgICAgcXVhZC5zZWxlY3Rpb25Ub1NldElmQ2xpY2tlZCA9IG5ldyBjYy5UaWxlU2VsZWN0aW9uKHRpbGUsIGRhdGEpOworICAgICAgICBxdWFkcy5wdXNoKHF1YWQpOworICAgICAgfQorICAgIH0sCisKKyAgICBhcHBlbmRIaWdobGlnaHRRdWFkc0ZvckxheWVyXzogZnVuY3Rpb24oCisgICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBoaWdobGlnaHRzKSB7CisgICAgICBoaWdobGlnaHRzLmZvckVhY2goZnVuY3Rpb24oaGlnaGxpZ2h0KSB7CisgICAgICAgIHZhciByZWN0ID0gaGlnaGxpZ2h0LnJlY3Q7CisKKyAgICAgICAgdmFyIHVuaXRSZWN0ID0gcmVjdC5hc1VWUmVjdEluc2lkZShsYXllci5ib3VuZHMpOworICAgICAgICB2YXIgcXVhZCA9IGxheWVyUXVhZC5wcm9qZWN0VW5pdFJlY3QodW5pdFJlY3QpOworCisgICAgICAgIHZhciBjb2xvcklkID0gdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoCisgICAgICAgICAgICBoaWdobGlnaHQuY29sb3JLZXkpOworICAgICAgICBjb2xvcklkICs9IHRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlSGlnaGxpZ2h0SWRCb29zdCgpOworCisgICAgICAgIHZhciBjb2xvciA9IHRyLmIuQ29sb3IuZnJvbVN0cmluZyh0ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpW2NvbG9ySWRdKTsKKworICAgICAgICB2YXIgcXVhZEZvckRyYXdpbmcgPSBxdWFkLmNsb25lKCk7CisgICAgICAgIHF1YWRGb3JEcmF3aW5nLmJhY2tncm91bmRDb2xvciA9IGNvbG9yLndpdGhBbHBoYSgwLjUpLnRvU3RyaW5nKCk7CisgICAgICAgIHF1YWRGb3JEcmF3aW5nLmJvcmRlckNvbG9yID0gY29sb3Iud2l0aEFscGhhKDEuMCkuZGFya2VuKCkudG9TdHJpbmcoKTsKKyAgICAgICAgcXVhZEZvckRyYXdpbmcuc3RhY2tpbmdHcm91cElkID0gbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZDsKKyAgICAgICAgcXVhZHMucHVzaChxdWFkRm9yRHJhd2luZyk7CisKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICBnZW5lcmF0ZVJlbmRlclBhc3NRdWFkczogZnVuY3Rpb24oKSB7CisgICAgICBpZiAoIXRoaXMubGF5ZXJUcmVlSW1wbC5sYXllclRyZWVIb3N0SW1wbC5hcmdzLmZyYW1lKQorICAgICAgICByZXR1cm4gW107CisgICAgICB2YXIgcmVuZGVyUGFzc2VzID0gdGhpcy5yZW5kZXJQYXNzZXM7CisgICAgICBpZiAoIXJlbmRlclBhc3NlcykKKyAgICAgICAgcmV0dXJuIFtdOworCisgICAgICB2YXIgcXVhZHMgPSBbXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVuZGVyUGFzc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBxdWFkTGlzdCA9IHJlbmRlclBhc3Nlc1tpXS5xdWFkTGlzdDsKKyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBxdWFkTGlzdC5sZW5ndGg7ICsraikgeworICAgICAgICAgIHZhciBkcmF3UXVhZCA9IHF1YWRMaXN0W2pdOworICAgICAgICAgIHZhciBxdWFkID0gZHJhd1F1YWQucmVjdEFzVGFyZ2V0U3BhY2VRdWFkLmNsb25lKCk7CisgICAgICAgICAgcXVhZC5ib3JkZXJDb2xvciA9ICdyZ2IoMTcwLCAyMDQsIDIzOCknOworICAgICAgICAgIHF1YWQuYm9yZGVyV2lkdGggPSAyOworICAgICAgICAgIHF1YWQuc3RhY2tpbmdHcm91cElkID0gaTsKKyAgICAgICAgICBxdWFkcy5wdXNoKHF1YWQpOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gcXVhZHM7CisgICAgfSwKKworICAgIGdlbmVyYXRlTGF5ZXJRdWFkczogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzUGVuZGluZ18gPSBmYWxzZTsKKworICAgICAgLy8gR2VuZXJhdGUgdGhlIHF1YWRzIGZvciB0aGUgdmlldy4KKyAgICAgIHZhciBsYXllcnMgPSB0aGlzLmxheWVyczsKKyAgICAgIHZhciBxdWFkcyA9IFtdOworICAgICAgdmFyIG5leHRTdGFja2luZ0dyb3VwSWQgPSAwOworICAgICAgdmFyIGFscmVhZHlWaXNpdGVkTGF5ZXJJZHMgPSB7fTsKKworCisgICAgICB2YXIgc2VsZWN0aW9uSGlnaGxpZ2h0c0J5TGF5ZXJJZDsKKyAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikKKyAgICAgICAgc2VsZWN0aW9uSGlnaGxpZ2h0c0J5TGF5ZXJJZCA9IHRoaXMuc2VsZWN0aW9uLmhpZ2hsaWdodHNCeUxheWVySWQ7CisgICAgICBlbHNlCisgICAgICAgIHNlbGVjdGlvbkhpZ2hsaWdodHNCeUxheWVySWQgPSB7fTsKKworICAgICAgdmFyIGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZCA9IHRoaXMuZXh0cmFIaWdobGlnaHRzQnlMYXllcklkIHx8IHt9OworCisgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBsYXllcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgLy8gR2VuZXJhdGUgcXVhZHMgYmFjay10by1mcm9udC4KKyAgICAgICAgdmFyIGxheWVyID0gbGF5ZXJzW2xheWVycy5sZW5ndGggLSBpXTsKKyAgICAgICAgYWxyZWFkeVZpc2l0ZWRMYXllcklkc1tsYXllci5sYXllcklkXSA9IHRydWU7CisgICAgICAgIGlmIChsYXllci5vYmplY3RJbnN0YW5jZS5uYW1lID09ICdjYzo6TmluZVBhdGNoTGF5ZXJJbXBsJykKKyAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICB2YXIgbGF5ZXJRdWFkID0gbGF5ZXIubGF5ZXJRdWFkLmNsb25lKCk7CisgICAgICAgIGlmIChsYXllci51c2luZ0dwdVJhc3Rlcml6YXRpb24pIHsKKyAgICAgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgICAgICAgbGF5ZXJRdWFkLmJvcmRlcldpZHRoID0gMi4wICogcGl4ZWxSYXRpbzsKKyAgICAgICAgICBsYXllclF1YWQuYm9yZGVyQ29sb3IgPSAncmdiYSgxNTQsMjA1LDUwLDAuNzUpJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBsYXllclF1YWQuYm9yZGVyQ29sb3IgPSAncmdiYSgwLDAsMCwwLjc1KSc7CisgICAgICAgIH0KKyAgICAgICAgbGF5ZXJRdWFkLnN0YWNraW5nR3JvdXBJZCA9IG5leHRTdGFja2luZ0dyb3VwSWQrKzsKKyAgICAgICAgbGF5ZXJRdWFkLnNlbGVjdGlvblRvU2V0SWZDbGlja2VkID0gbmV3IGNjLkxheWVyU2VsZWN0aW9uKGxheWVyKTsKKyAgICAgICAgbGF5ZXJRdWFkLmxheWVyID0gbGF5ZXI7CisgICAgICAgIGlmICh0aGlzLnNob3dPdGhlckxheWVycyAmJiB0aGlzLnNlbGVjdGVkTGF5ZXIgPT0gbGF5ZXIpCisgICAgICAgICAgbGF5ZXJRdWFkLnVwcGVyQm9yZGVyQ29sb3IgPSAncmdiKDE1NiwxODksNDUpJzsKKworICAgICAgICBpZiAodGhpcy5zaG93QW5pbWF0aW9uQm91bmRzKQorICAgICAgICAgIHRoaXMuYXBwZW5kQW5pbWF0aW9uUXVhZHNfKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkKTsKKworICAgICAgICB0aGlzLmFwcGVuZEltYWdlUXVhZHNfKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkKTsKKyAgICAgICAgcXVhZHMucHVzaChsYXllclF1YWQpOworCisKKyAgICAgICAgaWYgKHRoaXMuc2hvd0ludmFsaWRhdGlvbnMpCisgICAgICAgICAgdGhpcy5hcHBlbmRJbnZhbGlkYXRpb25RdWFkc18ocXVhZHMsIGxheWVyLCBsYXllclF1YWQpOworICAgICAgICBpZiAodGhpcy5zaG93VW5yZWNvcmRlZFJlZ2lvbikKKyAgICAgICAgICB0aGlzLmFwcGVuZFVucmVjb3JkZWRSZWdpb25RdWFkc18ocXVhZHMsIGxheWVyLCBsYXllclF1YWQpOworICAgICAgICBpZiAodGhpcy5zaG93Qm90dGxlbmVja3MpCisgICAgICAgICAgdGhpcy5hcHBlbmRCb3R0bGVuZWNrUXVhZHNfKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllclF1YWQuc3RhY2tpbmdHcm91cElkKTsKKyAgICAgICAgaWYgKHRoaXMuc2hvd0xheW91dFJlY3RzKQorICAgICAgICAgIHRoaXMuYXBwZW5kTGF5b3V0UmVjdFF1YWRzXyhxdWFkcywgbGF5ZXIsIGxheWVyUXVhZCk7CisKKyAgICAgICAgaWYgKHRoaXMuaG93VG9TaG93VGlsZXMgPT09ICdjb3ZlcmFnZScpIHsKKyAgICAgICAgICB0aGlzLmFwcGVuZFRpbGVDb3ZlcmFnZVJlY3RRdWFkc18oCisgICAgICAgICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCB0aGlzLnRpbGVIZWF0bWFwVHlwZSk7CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ob3dUb1Nob3dUaWxlcyAhPT0gJ25vbmUnKSB7CisgICAgICAgICAgdGhpcy5hcHBlbmRUaWxlc1dpdGhTY2FsZVF1YWRzXygKKyAgICAgICAgICAgICAgcXVhZHMsIGxheWVyLCBsYXllclF1YWQsCisgICAgICAgICAgICAgIHRoaXMuaG93VG9TaG93VGlsZXMsIHRoaXMudGlsZUhlYXRtYXBUeXBlKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBoaWdobGlnaHRzOworICAgICAgICBoaWdobGlnaHRzID0gZXh0cmFIaWdobGlnaHRzQnlMYXllcklkW2xheWVyLmxheWVySWRdOworICAgICAgICBpZiAoaGlnaGxpZ2h0cykgeworICAgICAgICAgIHRoaXMuYXBwZW5kSGlnaGxpZ2h0UXVhZHNGb3JMYXllcl8oCisgICAgICAgICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBoaWdobGlnaHRzKTsKKyAgICAgICAgfQorCisgICAgICAgIGhpZ2hsaWdodHMgPSBzZWxlY3Rpb25IaWdobGlnaHRzQnlMYXllcklkW2xheWVyLmxheWVySWRdOworICAgICAgICBpZiAoaGlnaGxpZ2h0cykgeworICAgICAgICAgIHRoaXMuYXBwZW5kSGlnaGxpZ2h0UXVhZHNGb3JMYXllcl8oCisgICAgICAgICAgICAgIHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBoaWdobGlnaHRzKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICB0aGlzLmxheWVyVHJlZUltcGwuaXRlckxheWVycyhmdW5jdGlvbihsYXllciwgZGVwdGgsIGlzTWFzaywgaXNSZXBsaWNhKSB7CisgICAgICAgIGlmICghdGhpcy5zaG93T3RoZXJMYXllcnMgJiYgdGhpcy5zZWxlY3RlZExheWVyICE9IGxheWVyKQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGFscmVhZHlWaXNpdGVkTGF5ZXJJZHNbbGF5ZXIubGF5ZXJJZF0pCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgbGF5ZXJRdWFkID0gbGF5ZXIubGF5ZXJRdWFkOworICAgICAgICB2YXIgc3RhY2tpbmdHcm91cElkID0gbmV4dFN0YWNraW5nR3JvdXBJZCsrOworICAgICAgICBpZiAodGhpcy5zaG93Qm90dGxlbmVja3MpCisgICAgICAgICAgdGhpcy5hcHBlbmRCb3R0bGVuZWNrUXVhZHNfKHF1YWRzLCBsYXllciwgbGF5ZXJRdWFkLCBzdGFja2luZ0dyb3VwSWQpOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIHZhciB0cmFjZWRJbnB1dExhdGVuY2llcyA9IHRoaXMubGF5ZXJUcmVlSW1wbC50cmFjZWRJbnB1dExhdGVuY2llczsKKyAgICAgIGlmICh0aGlzLnNob3dJbnB1dEV2ZW50cyAmJiB0cmFjZWRJbnB1dExhdGVuY2llcykgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyYWNlZElucHV0TGF0ZW5jaWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIGNvb3JkaW5hdGVzQXJyYXkgPSB0cmFjZWRJbnB1dExhdGVuY2llc1tpXS5hcmdzLmRhdGEuY29vcmRpbmF0ZXM7CisgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZGluYXRlc0FycmF5Lmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICB2YXIgaW5wdXRRdWFkID0gdHIuYi5RdWFkLmZyb21YWVdIKAorICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzQXJyYXlbal0ueCAtIDI1LAorICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzQXJyYXlbal0ueSAtIDI1LAorICAgICAgICAgICAgICAgIDUwLAorICAgICAgICAgICAgICAgIDUwKTsKKyAgICAgICAgICAgIGlucHV0UXVhZC5ib3JkZXJDb2xvciA9ICdyZ2JhKDAsIDAsIDAsIDApJzsKKyAgICAgICAgICAgIGlucHV0UXVhZC5pbWFnZURhdGEgPSB0aGlzLmlucHV0RXZlbnRJbWFnZURhdGFfOworICAgICAgICAgICAgcXVhZHMucHVzaChpbnB1dFF1YWQpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorCisgICAgICByZXR1cm4gcXVhZHM7CisgICAgfSwKKworICAgIHVwZGF0ZUluZm9CYXJfOiBmdW5jdGlvbihpbmZvQmFyTWVzc2FnZXMpIHsKKyAgICAgIGlmIChpbmZvQmFyTWVzc2FnZXMubGVuZ3RoKSB7CisgICAgICAgIHRoaXMuaW5mb0Jhcl8ucmVtb3ZlQWxsQnV0dG9ucygpOworICAgICAgICB0aGlzLmluZm9CYXJfLm1lc3NhZ2UgPSAnU29tZSBwcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkLi4uJzsKKyAgICAgICAgdGhpcy5pbmZvQmFyXy5hZGRCdXR0b24oJ01vcmUgaW5mby4uLicsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB2YXIgb3ZlcmxheSA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICAgICAgICBvdmVybGF5LnRleHRDb250ZW50ID0gJyc7CisgICAgICAgICAgaW5mb0Jhck1lc3NhZ2VzLmZvckVhY2goZnVuY3Rpb24obWVzc2FnZSkgeworICAgICAgICAgICAgdmFyIHRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTsKKyAgICAgICAgICAgIHRpdGxlLnRleHRDb250ZW50ID0gbWVzc2FnZS5oZWFkZXI7CisKKyAgICAgICAgICAgIHZhciBkZXRhaWxzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBkZXRhaWxzLnRleHRDb250ZW50ID0gbWVzc2FnZS5kZXRhaWxzOworCisgICAgICAgICAgICBvdmVybGF5LmFwcGVuZENoaWxkKHRpdGxlKTsKKyAgICAgICAgICAgIG92ZXJsYXkuYXBwZW5kQ2hpbGQoZGV0YWlscyk7CisgICAgICAgICAgfSk7CisgICAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKKworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9KTsKKyAgICAgICAgdGhpcy5pbmZvQmFyXy52aXNpYmxlID0gdHJ1ZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMuaW5mb0Jhcl8ucmVtb3ZlQWxsQnV0dG9ucygpOworICAgICAgICB0aGlzLmluZm9CYXJfLm1lc3NhZ2UgPSAnJzsKKyAgICAgICAgdGhpcy5pbmZvQmFyXy52aXNpYmxlID0gZmFsc2U7CisgICAgICB9CisgICAgfSwKKworICAgIGdldFdoYXRSYXN0ZXJpemVkXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgbHRoaSA9IHRoaXMubGF5ZXJUcmVlSW1wbF8ubGF5ZXJUcmVlSG9zdEltcGw7CisgICAgICB2YXIgcmVuZGVyUHJvY2VzcyA9IGx0aGkub2JqZWN0SW5zdGFuY2UucGFyZW50OworICAgICAgdmFyIHRhc2tzID0gW107CisgICAgICByZW5kZXJQcm9jZXNzLml0ZXJhdGVBbGxFdmVudHMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiB0ci5tb2RlbC5TbGljZSkpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciB0aWxlID0gdHIuZS5jYy5nZXRUaWxlRnJvbVJhc3RlclRhc2tTbGljZShldmVudCk7CisgICAgICAgIGlmICh0aWxlID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICh0aWxlLmNvbnRhaW5pbmdTbmFwc2hvdCA9PSBsdGhpKQorICAgICAgICAgIHRhc2tzLnB1c2goZXZlbnQpOworICAgICAgfSwgdGhpcyk7CisgICAgICByZXR1cm4gdGFza3M7CisgICAgfSwKKworICAgIHVwZGF0ZVdoYXRSYXN0ZXJpemVkTGlua1N0YXRlXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGFza3MgPSB0aGlzLmdldFdoYXRSYXN0ZXJpemVkXygpOworICAgICAgaWYgKHRhc2tzLmxlbmd0aCkgeworICAgICAgICB0aGlzLndoYXRSYXN0ZXJpemVkTGlua18udGV4dENvbnRlbnQgPSB0YXNrcy5sZW5ndGggKyAnIHJhc3RlciB0YXNrcyc7CisgICAgICAgIHRoaXMud2hhdFJhc3Rlcml6ZWRMaW5rXy5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLndoYXRSYXN0ZXJpemVkTGlua18udGV4dENvbnRlbnQgPSAnJzsKKyAgICAgICAgdGhpcy53aGF0UmFzdGVyaXplZExpbmtfLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICB9CisgICAgfSwKKworICAgIG9uV2hhdFJhc3Rlcml6ZWRMaW5rQ2xpY2tlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHRhc2tzID0gdGhpcy5nZXRXaGF0UmFzdGVyaXplZF8oKTsKKyAgICAgIHZhciBldmVudCA9IG5ldyB0ci5tb2RlbC5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTsKKyAgICAgIGV2ZW50LnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCh0YXNrcyk7CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIExheWVyVHJlZVF1YWRTdGFja1ZpZXc6IExheWVyVHJlZVF1YWRTdGFja1ZpZXcKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9xdWFkX3N0YWNrX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfcXVhZF9zdGFja192aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2IyYzdjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfcXVhZF9zdGFja192aWV3X3Rlc3QuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL2NjLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfcXVhZF9zdGFja192aWV3Lmh0bWwiPgorCis8c2NyaXB0IHNyYz0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdF9kYXRhLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ3RpbGVDb3ZlcmFnZVJlY3RDb3VudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKworICAgIHZhciBpbnN0YW5jZSA9IHAub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNOYW1lZCgnY2M6OkxheWVyVHJlZUhvc3RJbXBsJylbMF07CisgICAgdmFyIGx0aGkgPSBpbnN0YW5jZS5zbmFwc2hvdHNbMF07CisgICAgdmFyIG51bUxheWVycyA9IGx0aGkuYWN0aXZlVHJlZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0Lmxlbmd0aDsKKyAgICB2YXIgbGF5ZXIgPSBsdGhpLmFjdGl2ZVRyZWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdFtudW1MYXllcnMgLSAxXTsKKworICAgIHZhciB2aWV3ID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLkxheWVyVHJlZVF1YWRTdGFja1ZpZXcoKTsKKyAgICB2aWV3LmxheWVyVHJlZUltcGwgPSBsdGhpLmFjdGl2ZVRyZWU7CisgICAgdmlldy5zZWxlY3Rpb24gPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuTGF5ZXJTZWxlY3Rpb24obGF5ZXIpOworICAgIHZpZXcuaG93VG9TaG93VGlsZXMgPSAnbm9uZSc7CisgICAgdmlldy5zaG93SW52YWxpZGF0aW9ucyA9IGZhbHNlOworICAgIHZpZXcuc2hvd0NvbnRlbnRzID0gZmFsc2U7CisgICAgdmlldy5zaG93T3RoZXJMQXllcnMgPSBmYWxzZTsKKworICAgIC8vIFRoZXJlIHNob3VsZCBiZSBzb21lIHF1YWRzIGRyYXduIHdpdGggYWxsICJzaG93IiBjaGVja2JveGVzIG9mZiwKKyAgICAvLyBidXQgdGhhdCBudW1iZXIgY2FuIGNoYW5nZSB3aXRoIG5ldyBmZWF0dXJlcyBhZGRlZC4KKyAgICB2YXIgYVF1YWRzID0gdmlldy5nZW5lcmF0ZUxheWVyUXVhZHMoKTsKKyAgICB2aWV3Lmhvd1RvU2hvd1RpbGVzID0gJ2NvdmVyYWdlJzsKKyAgICB2YXIgYlF1YWRzID0gdmlldy5nZW5lcmF0ZUxheWVyUXVhZHMoKTsKKyAgICB2YXIgbnVtQ292ZXJhZ2VSZWN0cyA9IGJRdWFkcy5sZW5ndGggLSBhUXVhZHMubGVuZ3RoOworCisgICAgLy8gV2Uga25vdyB3ZSBoYXZlIDUgY292ZXJhZ2UgcmVjdHMgaW4gbHRoaSBjYXRzLgorICAgIGFzc2VydC5lcXVhbChudW1Db3ZlcmFnZVJlY3RzLCA1KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMmRiYzIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdmlldy5jc3MKQEAgLTAsMCArMSwzMSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyAqLworCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1sYXllci12aWV3IHsKKyAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICBkaXNwbGF5OiAgLXdlYmtpdC1mbGV4OworICBsZWZ0OiAwOworICBwb3NpdGlvbjogcmVsYXRpdmU7CisgIHRvcDogMDsKK30KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtbGF5ZXItdmlldyA+CisgICAgICB0ci11aS1lLWNocm9tZS1jYy1sYXllci10cmVlLXF1YWQtc3RhY2stdmlldyB7CisgIC13ZWJraXQtZmxleDogMSAxIDEwMCU7CisgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgbWluLWhlaWdodDogMDsKKyAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICB3aWR0aDogMTAwJTsKK30KKworKiAvZGVlcC90ci11aS1lLWNocm9tZS1jYy0gbGF5ZXItdmlldyA+IHRyLXVpLWUtY2hyb21lLWNjLWxheWVyLXZpZXctYW5hbHlzaXMgeworICBoZWlnaHQ6IDE1MHB4OyAvKiBmaXhlZCBoZWlnaHQgZ2l2ZW4gYnkgZHJhZyBjb250cm9sICovCisgIG92ZXJmbG93LXk6IGF1dG87Cit9CisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLWxheWVyLXZpZXcgPgorICAgICAgdHItdWktZS1jaHJvbWUtY2MtbGF5ZXItdmlldy1hbmFseXNpcyAqIHsKKyAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ODkyN2QKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdmlldy5odG1sCkBAIC0wLDAgKzEsMTQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3LmNzcyI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYWYuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvY29uc3RhbnRzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kcmFnX2hhbmRsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX3F1YWRfc3RhY2tfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IExheWVyVmlldyBjb29yZGluYXRlcyBncmFwaGljYWwgYW5kIGFuYWx5c2lzIHZpZXdzIG9mIGxheWVycy4KKyAqLworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuY2MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIGNvbnN0YW50cyA9IHRyLmUuY2MuY29uc3RhbnRzOworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBMYXllclZpZXcgPSB0ci51aS5iLmRlZmluZSgndHItdWktZS1jaHJvbWUtY2MtbGF5ZXItdmlldycpOworCisgIExheWVyVmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3XyA9CisgICAgICAgICAgbmV3IHRyLnVpLmUuY2hyb21lLmNjLkxheWVyVHJlZVF1YWRTdGFja1ZpZXcoKTsKKyAgICAgIHRoaXMuZHJhZ0Jhcl8gPSBuZXcgdHIudWkuYi5EcmFnSGFuZGxlKCk7CisgICAgICB0aGlzLmFuYWx5c2lzRWxfID0KKyAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLWNocm9tZS1jYy1sYXllci12aWV3LWFuYWx5c2lzJyk7CisgICAgICB0aGlzLmFuYWx5c2lzRWxfLmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLAorICAgICAgICAgIHRoaXMub25SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRnJvbUFuYWx5c2lzRWxfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLmRyYWdCYXJfLnRhcmdldCA9IHRoaXMuYW5hbHlzaXNFbF87CisKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xyk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuZHJhZ0Jhcl8pOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmFuYWx5c2lzRWxfKTsKKworICAgICAgdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xy5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb24tY2hhbmdlJywKKyAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld1NlbGVjdGlvbkNoYW5nZWRfKCk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld1NlbGVjdGlvbkNoYW5nZWRfKCk7CisgICAgfSwKKworICAgIGdldCBsYXllclRyZWVJbXBsKCkgeworICAgICAgcmV0dXJuIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld18ubGF5ZXJUcmVlSW1wbDsKKyAgICB9LAorCisgICAgc2V0IGxheWVyVHJlZUltcGwobmV3VmFsdWUpIHsKKyAgICAgIHJldHVybiB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLmxheWVyVHJlZUltcGwgPSBuZXdWYWx1ZTsKKyAgICB9LAorCisgICAgc2V0IGlzUmVuZGVyUGFzc1F1YWRzKG5ld1ZhbHVlKSB7CisgICAgICByZXR1cm4gdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xy5pc1JlbmRlclBhc3NRdWFkcyA9IG5ld1ZhbHVlOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld18uc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKG5ld1ZhbHVlKSB7CisgICAgICB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLnNlbGVjdGlvbiA9IG5ld1ZhbHVlOworICAgIH0sCisKKyAgICByZWdlbmVyYXRlQ29udGVudDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLnJlZ2VuZXJhdGVDb250ZW50KCk7CisgICAgfSwKKworICAgIGxheWVyVHJlZVF1YWRTdGFja1ZpZXdTZWxlY3Rpb25DaGFuZ2VkXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xy5zZWxlY3Rpb247CisgICAgICBpZiAoc2VsZWN0aW9uKSB7CisgICAgICAgIHRoaXMuZHJhZ0Jhcl8uc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgICB0aGlzLmFuYWx5c2lzRWxfLnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgICAgdGhpcy5hbmFseXNpc0VsXy50ZXh0Q29udGVudCA9ICcnOworCisgICAgICAgIHZhciBsYXllciA9IHNlbGVjdGlvbi5sYXllcjsKKyAgICAgICAgaWYgKGxheWVyICYmIGxheWVyLmFyZ3MgJiYgbGF5ZXIuYXJncy5waWN0dXJlcykgeworICAgICAgICAgIHRoaXMuYW5hbHlzaXNFbF8uYXBwZW5kQ2hpbGQoCisgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGljdHVyZUJ0bl8obGF5ZXIuYXJncy5waWN0dXJlcykpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGFuYWx5c2lzID0gc2VsZWN0aW9uLmNyZWF0ZUFuYWx5c2lzKCk7CisgICAgICAgIHRoaXMuYW5hbHlzaXNFbF8uYXBwZW5kQ2hpbGQoYW5hbHlzaXMpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5kcmFnQmFyXy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICB0aGlzLmFuYWx5c2lzRWxfLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgIHZhciBhbmFseXNpcyA9IHRoaXMuYW5hbHlzaXNFbF8uZmlyc3RDaGlsZDsKKyAgICAgICAgaWYgKGFuYWx5c2lzKQorICAgICAgICAgIHRoaXMuYW5hbHlzaXNFbF8ucmVtb3ZlQ2hpbGQoYW5hbHlzaXMpOworICAgICAgICB0aGlzLmxheWVyVHJlZVF1YWRTdGFja1ZpZXdfLnN0eWxlLmhlaWdodCA9CisgICAgICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7CisgICAgICB9CisgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2UnKTsKKyAgICB9LAorCisgICAgY3JlYXRlUGljdHVyZUJ0bl86IGZ1bmN0aW9uKHBpY3R1cmVzKSB7CisgICAgICBpZiAoIShwaWN0dXJlcyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAgICAgcGljdHVyZXMgPSBbcGljdHVyZXNdOworCisgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWEtYW5hbHlzaXMtbGluaycpOworICAgICAgbGluay5zZWxlY3Rpb24gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGxheWVyZWRQaWN0dXJlID0gbmV3IHRyLmUuY2MuTGF5ZXJlZFBpY3R1cmUocGljdHVyZXMpOworICAgICAgICB2YXIgc25hcHNob3QgPSBuZXcgdHIuZS5jYy5QaWN0dXJlU25hcHNob3QobGF5ZXJlZFBpY3R1cmUpOworICAgICAgICBzbmFwc2hvdC5waWN0dXJlID0gbGF5ZXJlZFBpY3R1cmU7CisKKyAgICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgICBzZWxlY3Rpb24ucHVzaChzbmFwc2hvdCk7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb247CisgICAgICB9OworICAgICAgbGluay50ZXh0Q29udGVudCA9ICdWaWV3IGluIFBpY3R1cmUgRGVidWdnZXInOworICAgICAgcmV0dXJuIGxpbms7CisgICAgfSwKKworICAgIG9uUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUZyb21BbmFseXNpc0VsXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKCEoZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiB0ci51aS5lLmNocm9tZS5jYy5TZWxlY3Rpb24pKQorICAgICAgICByZXR1cm47CisKKyAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICB0aGlzLnNlbGVjdGlvbiA9IGUuc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBnZXQgZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKCkgeworICAgICAgcmV0dXJuIHRoaXMubGF5ZXJUcmVlUXVhZFN0YWNrVmlld18uZXh0cmFIaWdobGlnaHRzQnlMYXllcklkOworICAgIH0sCisKKyAgICBzZXQgZXh0cmFIaWdobGlnaHRzQnlMYXllcklkKGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZCkgeworICAgICAgdGhpcy5sYXllclRyZWVRdWFkU3RhY2tWaWV3Xy5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQgPQorICAgICAgICAgIGV4dHJhSGlnaGxpZ2h0c0J5TGF5ZXJJZDsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBMYXllclZpZXc6IExheWVyVmlldworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl92aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWQxNzgwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL2xheWVyX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvY2MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdmlldy5odG1sIj4KKworPHNjcmlwdCBzcmM9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKworICAgIHZhciBpbnN0YW5jZSA9IHAub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNOYW1lZCgnY2M6OkxheWVyVHJlZUhvc3RJbXBsJylbMF07CisgICAgdmFyIGx0aGkgPSBpbnN0YW5jZS5zbmFwc2hvdHNbMF07CisgICAgdmFyIG51bUxheWVycyA9IGx0aGkuYWN0aXZlVHJlZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0Lmxlbmd0aDsKKyAgICB2YXIgbGF5ZXIgPSBsdGhpLmFjdGl2ZVRyZWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdFtudW1MYXllcnMgLSAxXTsKKworICAgIHZhciB2aWV3ID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLkxheWVyVmlldygpOworICAgIHZpZXcuc3R5bGUuaGVpZ2h0ID0gJzUwMHB4JzsKKyAgICB2aWV3LmxheWVyVHJlZUltcGwgPSBsdGhpLmFjdGl2ZVRyZWU7CisgICAgdmlldy5zZWxlY3Rpb24gPSBuZXcgdHIudWkuZS5jaHJvbWUuY2MuTGF5ZXJTZWxlY3Rpb24obGF5ZXIpOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoVGlsZUhpZ2hsaWdodCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7CisgICAgdmFyIHAgPSBtLnByb2Nlc3Nlc1sxXTsKKworICAgIHZhciBpbnN0YW5jZSA9IHAub2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNOYW1lZCgnY2M6OkxheWVyVHJlZUhvc3RJbXBsJylbMF07CisgICAgdmFyIGx0aGkgPSBpbnN0YW5jZS5zbmFwc2hvdHNbMF07CisgICAgdmFyIG51bUxheWVycyA9IGx0aGkuYWN0aXZlVHJlZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0Lmxlbmd0aDsKKyAgICB2YXIgbGF5ZXIgPSBsdGhpLmFjdGl2ZVRyZWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdFtudW1MYXllcnMgLSAxXTsKKyAgICB2YXIgdGlsZSA9IGx0aGkuYWN0aXZlVGlsZXNbMF07CisKKyAgICB2YXIgdmlldyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5MYXllclZpZXcoKTsKKyAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc1MDBweCc7CisgICAgdmlldy5sYXllclRyZWVJbXBsID0gbHRoaS5hY3RpdmVUcmVlOworICAgIHZpZXcuc2VsZWN0aW9uID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLlRpbGVTZWxlY3Rpb24odGlsZSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9kZWJ1Z2dlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWYwOWI1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbApAQCAtMCwwICsxLDQ5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RyYWdfaGFuZGxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2luZm9fYmFyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hvdGtleV9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2xpc3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL292ZXJsYXkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIKKyAgICAgIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3N1bW1hcnlfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5odG1sIj4KKworPHRlbXBsYXRlIGlkPSJ0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLWRlYnVnZ2VyLXRlbXBsYXRlIj4KKyAgPHN0eWxlPgorICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLWRlYnVnZ2VyIHsKKyAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgIH0KKworICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLWRlYnVnZ2VyID4gdHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3IHsKKyAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIHdpZHRoOiA0MDBweDsKKyAgfQorCisgICogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtZGVidWdnZXIgPiBsZWZ0LXBhbmVsIHsKKyAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgIG1pbi13aWR0aDogMzAwcHg7CisgIH0KKworICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLWRlYnVnZ2VyID4gbGVmdC1wYW5lbCA+IHBpY3R1cmUtaW5mbyB7CisgICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bzsKKyAgICBwYWRkaW5nLXRvcDogMnB4OworICB9CisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1kZWJ1Z2dlciA+IGxlZnQtcGFuZWwgPgorICAgICAgICBwaWN0dXJlLWluZm8gLnRpdGxlIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBtYXJnaW4tbGVmdDogNXB4OworICAgIG1hcmdpbi1yaWdodDogNXB4OworICB9CisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1kZWJ1Z2dlciA+IHgtZHJhZy1oYW5kbGUgeworICAgIC13ZWJraXQtZmxleDogMCAwIGF1dG87CisgIH0KKworICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLWRlYnVnZ2VyIC5maWxlbmFtZSB7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKKyAgICBtYXJnaW4tbGVmdDogNXB4OworICB9CisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1kZWJ1Z2dlciA+IHJpZ2h0LXBhbmVsIHsKKyAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgIH0KKworICAqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLWRlYnVnZ2VyID4gcmlnaHQtcGFuZWwgPgorICAgICAgICB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1jaGFydC12aWV3IHsKKyAgICBtaW4taGVpZ2h0OiAxNTBweDsKKyAgICBtaW4td2lkdGggOiAwOworICAgIG92ZXJmbG93LXg6IGF1dG87CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9CisKKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1kZWJ1Z2dlciByYXN0ZXItYXJlYSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKKyAgICBtaW4taGVpZ2h0OiAyMDBweDsKKyAgICBtaW4td2lkdGg6IDIwMHB4OworICAgIG92ZXJmbG93LXk6IGF1dG87CisgICAgcGFkZGluZy1sZWZ0OiA1cHg7CisgIH0KKyAgPC9zdHlsZT4KKworICA8bGVmdC1wYW5lbD4KKyAgICA8cGljdHVyZS1pbmZvPgorICAgICAgPGRpdj4KKyAgICAgICAgPHNwYW4gY2xhc3M9J3RpdGxlJz5Ta2lhIFBpY3R1cmU8L3NwYW4+CisgICAgICAgIDxzcGFuIGNsYXNzPSdzaXplJz48L3NwYW4+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXY+CisgICAgICAgIDxpbnB1dCBjbGFzcz0nZmlsZW5hbWUnIHR5cGU9J3RleHQnIHZhbHVlPSdza3BpY3R1cmUuc2twJyAvPgorICAgICAgICA8YnV0dG9uIGNsYXNzPSdleHBvcnQnPkV4cG9ydDwvYnV0dG9uPgorICAgICAgPC9kaXY+CisgICAgPC9waWN0dXJlLWluZm8+CisgIDwvbGVmdC1wYW5lbD4KKyAgPHJpZ2h0LXBhbmVsPgorICAgIDx0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1jaGFydC12aWV3PgorICAgIDwvdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtY2hhcnQtdmlldz4KKyAgICA8cmFzdGVyLWFyZWE+PGNhbnZhcz48L2NhbnZhcz48L3Jhc3Rlci1hcmVhPgorICA8L3JpZ2h0LXBhbmVsPgorPC90ZW1wbGF0ZT4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmUuY2hyb21lLmNjJywgZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQub3duZXJEb2N1bWVudDsKKworICAvKioKKyAgICogUGljdHVyZURlYnVnZ2VyIGlzIGEgdmlldyBvZiBhIFBpY3R1cmVTbmFwc2hvdCBmb3IgaW5zcGVjdGluZworICAgKiB0aGUgcGljdHVyZSBpbiBkZXRhaWwuIChlLmcuLCB0aW1pbmcgaW5mb3JtYXRpb24sIGV0Yy4pCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIFBpY3R1cmVEZWJ1Z2dlciA9IHRyLnVpLmIuZGVmaW5lKCd0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLWRlYnVnZ2VyJyk7CisKKyAgUGljdHVyZURlYnVnZ2VyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgbm9kZSA9IHRyLnVpLmIuaW5zdGFudGlhdGVUZW1wbGF0ZSgKKyAgICAgICAgICAnI3RyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtZGVidWdnZXItdGVtcGxhdGUnLCBUSElTX0RPQyk7CisKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobm9kZSk7CisKKyAgICAgIHRoaXMucGljdHVyZUFzSW1hZ2VEYXRhXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuc2hvd092ZXJkcmF3XyA9IGZhbHNlOworICAgICAgdGhpcy56b29tU2NhbGVWYWx1ZV8gPSAxOworCisgICAgICB0aGlzLnNpemVJbmZvXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLnNpemUnKTsKKyAgICAgIHRoaXMucmFzdGVyQXJlYV8gPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3Jhc3Rlci1hcmVhJyk7CisgICAgICB0aGlzLnJhc3RlckNhbnZhc18gPSB0aGlzLnJhc3RlckFyZWFfLnF1ZXJ5U2VsZWN0b3IoJ2NhbnZhcycpOworICAgICAgdGhpcy5yYXN0ZXJDdHhfID0gdGhpcy5yYXN0ZXJDYW52YXNfLmdldENvbnRleHQoJzJkJyk7CisKKyAgICAgIHRoaXMuZmlsZW5hbWVfID0gdGhpcy5xdWVyeVNlbGVjdG9yKCcuZmlsZW5hbWUnKTsKKworICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRTdW1tYXJ5Vmlld18gPQorICAgICAgICAgIG5ldyB0ci51aS5lLmNocm9tZS5jYy5QaWN0dXJlT3BzQ2hhcnRTdW1tYXJ5VmlldygpOworICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRWaWV3XyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5QaWN0dXJlT3BzQ2hhcnRWaWV3KCk7CisgICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgdGhpcy5vbkNoYXJ0QmFyQ2xpY2tlZF8uYmluZCh0aGlzKSk7CisKKyAgICAgIHRoaXMuZXhwb3J0QnV0dG9uXyA9IHRoaXMucXVlcnlTZWxlY3RvcignLmV4cG9ydCcpOworICAgICAgdGhpcy5leHBvcnRCdXR0b25fLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ2NsaWNrJywgdGhpcy5vblNhdmVBc1NrUGljdHVyZUNsaWNrZWRfLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLnRyYWNrTW91c2VfKCk7CisKKyAgICAgIHZhciBvdmVyZHJhd0NoZWNrYm94ID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCgKKyAgICAgICAgICB0aGlzLCAnc2hvd092ZXJkcmF3JywKKyAgICAgICAgICAncGljdHVyZVZpZXcuc2hvd092ZXJkcmF3JywgZmFsc2UsCisgICAgICAgICAgJ1Nob3cgb3ZlcmRyYXcnKTsKKworICAgICAgdmFyIGNoYXJ0Q2hlY2tib3ggPSB0ci51aS5iLmNyZWF0ZUNoZWNrQm94KAorICAgICAgICAgIHRoaXMsICdzaG93U3VtbWFyeUNoYXJ0JywKKyAgICAgICAgICAncGljdHVyZVZpZXcuc2hvd1N1bW1hcnlDaGFydCcsIGZhbHNlLAorICAgICAgICAgICdTaG93IHRpbWluZyBzdW1tYXJ5Jyk7CisKKyAgICAgIHZhciBwaWN0dXJlSW5mbyA9IHRoaXMucXVlcnlTZWxlY3RvcigncGljdHVyZS1pbmZvJyk7CisgICAgICBwaWN0dXJlSW5mby5hcHBlbmRDaGlsZChvdmVyZHJhd0NoZWNrYm94KTsKKyAgICAgIHBpY3R1cmVJbmZvLmFwcGVuZENoaWxkKGNoYXJ0Q2hlY2tib3gpOworCisgICAgICB0aGlzLmRyYXdPcHNWaWV3XyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5QaWN0dXJlT3BzTGlzdFZpZXcoKTsKKyAgICAgIHRoaXMuZHJhd09wc1ZpZXdfLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgdGhpcy5vbkNoYW5nZURyYXdPcHNfLmJpbmQodGhpcykpOworCisgICAgICB2YXIgbGVmdFBhbmVsID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdsZWZ0LXBhbmVsJyk7CisgICAgICBsZWZ0UGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5kcmF3T3BzQ2hhcnRTdW1tYXJ5Vmlld18pOworICAgICAgbGVmdFBhbmVsLmFwcGVuZENoaWxkKHRoaXMuZHJhd09wc1ZpZXdfKTsKKworICAgICAgdmFyIG1pZGRsZURyYWdIYW5kbGUgPSBuZXcgdHIudWkuYi5EcmFnSGFuZGxlKCk7CisgICAgICBtaWRkbGVEcmFnSGFuZGxlLmhvcml6b250YWwgPSBmYWxzZTsKKyAgICAgIG1pZGRsZURyYWdIYW5kbGUudGFyZ2V0ID0gbGVmdFBhbmVsOworCisgICAgICB2YXIgcmlnaHRQYW5lbCA9IHRoaXMucXVlcnlTZWxlY3RvcigncmlnaHQtcGFuZWwnKTsKKyAgICAgIHJpZ2h0UGFuZWwucmVwbGFjZUNoaWxkKAorICAgICAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18sCisgICAgICAgICAgcmlnaHRQYW5lbC5xdWVyeVNlbGVjdG9yKCd0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1jaGFydC12aWV3JykpOworCisgICAgICB0aGlzLmluZm9CYXJfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi1pbmZvLWJhcicpOworICAgICAgdGhpcy5yYXN0ZXJBcmVhXy5hcHBlbmRDaGlsZCh0aGlzLmluZm9CYXJfKTsKKworICAgICAgdGhpcy5pbnNlcnRCZWZvcmUobWlkZGxlRHJhZ0hhbmRsZSwgcmlnaHRQYW5lbCk7CisKKyAgICAgIHRoaXMucGljdHVyZV8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHZhciBoa2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0di11aS1iLWhvdGtleS1jb250cm9sbGVyJyk7CisgICAgICBoa2MuYWRkSG90S2V5KG5ldyB0ci51aS5iLkhvdEtleSh7CisgICAgICAgIGV2ZW50VHlwZTogJ2tleXByZXNzJywKKyAgICAgICAgdGhpc0FyZzogdGhpcywKKyAgICAgICAga2V5Q29kZTogJ2gnLmNoYXJDb2RlQXQoMCksCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhpcy5tb3ZlU2VsZWN0ZWRPcEJ5KC0xKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KSk7CisgICAgICBoa2MuYWRkSG90S2V5KG5ldyB0ci51aS5iLkhvdEtleSh7CisgICAgICAgIGV2ZW50VHlwZTogJ2tleXByZXNzJywKKyAgICAgICAgdGhpc0FyZzogdGhpcywKKyAgICAgICAga2V5Q29kZTogJ2wnLmNoYXJDb2RlQXQoMCksCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhpcy5tb3ZlU2VsZWN0ZWRPcEJ5KDEpOworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgIH0pKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoaGtjKTsKKworICAgICAgLy8gQWRkIGEgbXV0YXRpb24gb2JzZXJ2ZXIgc28gdGhhdCB3aGVuIHRoZSB2aWV3IGlzIHJlc2l6ZWQgd2UgY2FuCisgICAgICAvLyB1cGRhdGUgdGhlIGNoYXJ0IHN1bW1hcnkgdmlldy4KKyAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcigKKyAgICAgICAgICB0aGlzLm9uTXV0YXRpb25fLmJpbmQodGhpcykpOworICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyXy5vYnNlcnZlKGxlZnRQYW5lbCwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pOworICAgIH0sCisKKyAgICBvbk11dGF0aW9uXzogZnVuY3Rpb24obXV0YXRpb25zKSB7CisKKyAgICAgIGZvciAodmFyIG0gPSAwOyBtIDwgbXV0YXRpb25zLmxlbmd0aDsgbSsrKSB7CisgICAgICAgIC8vIEEgc3R5bGUgY2hhbmdlIHdvdWxkIGluZGljYXRlIHRoYXQgdGhlIGVsZW1lbnQgaGFzIHJlc2l6ZWQKKyAgICAgICAgLy8gc28gd2Ugc2hvdWxkIHJlLXJlbmRlciB0aGUgY2hhcnQuCisgICAgICAgIGlmIChtdXRhdGlvbnNbbV0uYXR0cmlidXRlTmFtZSA9PT0gJ3N0eWxlJykgeworICAgICAgICAgIHRoaXMuZHJhd09wc0NoYXJ0U3VtbWFyeVZpZXdfLnJlcXVpcmVzUmVkcmF3ID0gdHJ1ZTsKKyAgICAgICAgICB0aGlzLmRyYXdPcHNDaGFydFN1bW1hcnlWaWV3Xy51cGRhdGVDaGFydENvbnRlbnRzKCk7CisKKyAgICAgICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLmRpbWVuc2lvbnNIYXZlQ2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRWaWV3Xy51cGRhdGVDaGFydENvbnRlbnRzKCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9LAorCisgICAgb25TYXZlQXNTa1BpY3R1cmVDbGlja2VkXzogZnVuY3Rpb24oKSB7CisgICAgICAvLyBEZWNvZGUgYmFzZTY0IGRhdGEgaW50byBhIFN0cmluZworICAgICAgdmFyIHJhd0RhdGEgPSBhdG9iKHRoaXMucGljdHVyZV8uZ2V0QmFzZTY0U2twRGF0YSgpKTsKKworICAgICAgLy8gQ29udmVydCB0aGlzIFN0cmluZyBpbnRvIGFuIFVpbnQ4QXJyYXkKKyAgICAgIHZhciBsZW5ndGggPSByYXdEYXRhLmxlbmd0aDsKKyAgICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGgpOworICAgICAgdmFyIHVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7CisgICAgICBmb3IgKHZhciBjID0gMDsgYyA8IGxlbmd0aDsgYysrKQorICAgICAgICB1aW50OEFycmF5W2NdID0gcmF3RGF0YS5jaGFyQ29kZUF0KGMpOworCisgICAgICAvLyBDcmVhdGUgYSBibG9iIFVSTCBmcm9tIHRoZSBiaW5hcnkgYXJyYXkuCisgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50OEFycmF5XSwge3R5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnknfSk7CisgICAgICB2YXIgYmxvYlVybCA9IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOworCisgICAgICAvLyBDcmVhdGUgYSBsaW5rIGFuZCBjbGljayBvbiBpdC4gQkVTVCBBUEkgRVZBUiEKKyAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2EnKTsKKyAgICAgIGxpbmsuaHJlZiA9IGJsb2JVcmw7CisgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy5maWxlbmFtZV8udmFsdWU7CisgICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudHMnKTsKKyAgICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50KAorICAgICAgICAgICdjbGljaycsIHRydWUsIGZhbHNlLCB3aW5kb3csIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpOworICAgICAgbGluay5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB9LAorCisgICAgZ2V0IHBpY3R1cmUoKSB7CisgICAgICByZXR1cm4gdGhpcy5waWN0dXJlXzsKKyAgICB9LAorCisgICAgc2V0IHBpY3R1cmUocGljdHVyZSkgeworICAgICAgdGhpcy5kcmF3T3BzVmlld18ucGljdHVyZSA9IHBpY3R1cmU7CisgICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLnBpY3R1cmUgPSBwaWN0dXJlOworICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRTdW1tYXJ5Vmlld18ucGljdHVyZSA9IHBpY3R1cmU7CisgICAgICB0aGlzLnBpY3R1cmVfID0gcGljdHVyZTsKKworICAgICAgdGhpcy5leHBvcnRCdXR0b25fLmRpc2FibGVkID0gIXRoaXMucGljdHVyZV8uY2FuU2F2ZTsKKworICAgICAgaWYgKHBpY3R1cmUpIHsKKyAgICAgICAgdmFyIHNpemUgPSB0aGlzLmdldFJhc3RlckNhbnZhc1NpemVfKCk7CisgICAgICAgIHRoaXMucmFzdGVyQ2FudmFzXy53aWR0aCA9IHNpemUud2lkdGg7CisgICAgICAgIHRoaXMucmFzdGVyQ2FudmFzXy5oZWlnaHQgPSBzaXplLmhlaWdodDsKKyAgICAgIH0KKworICAgICAgdmFyIGJvdW5kcyA9IHRoaXMucmFzdGVyQXJlYV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgc2VsZWN0b3JCb3VuZHMgPSB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnBvcyA9IHsKKyAgICAgICAgeDogKGJvdW5kcy5yaWdodCAtIHNlbGVjdG9yQm91bmRzLndpZHRoIC0gMTApLAorICAgICAgICB5OiBib3VuZHMudG9wCisgICAgICB9OworCisgICAgICB0aGlzLnJhc3Rlcml6ZV8oKTsKKworICAgICAgdGhpcy5zY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXRSYXN0ZXJDYW52YXNTaXplXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJhc3RlckFyZWFfKTsKKyAgICAgIHZhciB3aWR0aCA9CisgICAgICAgICAgTWF0aC5tYXgocGFyc2VJbnQoc3R5bGUud2lkdGgpLCB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdC53aWR0aCk7CisgICAgICB2YXIgaGVpZ2h0ID0KKyAgICAgICAgICBNYXRoLm1heChwYXJzZUludChzdHlsZS5oZWlnaHQpLCB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdC5oZWlnaHQpOworCisgICAgICByZXR1cm4geworICAgICAgICB3aWR0aDogd2lkdGgsCisgICAgICAgIGhlaWdodDogaGVpZ2h0CisgICAgICB9OworICAgIH0sCisKKyAgICBzY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy51cGRhdGVDb250ZW50c1BlbmRpbmdfKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzUGVuZGluZ18gPSB0cnVlOworICAgICAgdHIuYi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVJblRoaXNGcmFtZUlmUG9zc2libGUoCisgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18uYmluZCh0aGlzKQorICAgICAgKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNQZW5kaW5nXyA9IGZhbHNlOworCisgICAgICBpZiAodGhpcy5waWN0dXJlXykgeworICAgICAgICB0aGlzLnNpemVJbmZvXy50ZXh0Q29udGVudCA9ICcoJyArCisgICAgICAgICAgICB0aGlzLnBpY3R1cmVfLmxheWVyUmVjdC53aWR0aCArICcgeCAnICsKKyAgICAgICAgICAgIHRoaXMucGljdHVyZV8ubGF5ZXJSZWN0LmhlaWdodCArICcpJzsKKyAgICAgIH0KKworICAgICAgdGhpcy5kcmF3T3BzQ2hhcnRWaWV3Xy51cGRhdGVDaGFydENvbnRlbnRzKCk7CisgICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLnNjcm9sbFNlbGVjdGVkSXRlbUludG9WaWV3SWZOZWNlc3NhcnkoKTsKKworICAgICAgLy8gUmV0dXJuIGlmIHBpY3R1cmUgaGFzbid0IGZpbmlzaGVkIHJhc3Rlcml6aW5nLgorICAgICAgaWYgKCF0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8pCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5pbmZvQmFyXy52aXNpYmxlID0gZmFsc2U7CisgICAgICB0aGlzLmluZm9CYXJfLnJlbW92ZUFsbEJ1dHRvbnMoKTsKKyAgICAgIGlmICh0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uZXJyb3IpIHsKKyAgICAgICAgdGhpcy5pbmZvQmFyXy5tZXNzYWdlID0gJ0Nhbm5vdCByYXN0ZXJpemUuLi4nOworICAgICAgICB0aGlzLmluZm9CYXJfLmFkZEJ1dHRvbignTW9yZSBpbmZvLi4uJywgZnVuY3Rpb24oZSkgeworICAgICAgICAgIHZhciBvdmVybGF5ID0gbmV3IHRyLnVpLmIuT3ZlcmxheSgpOworICAgICAgICAgIG92ZXJsYXkudGV4dENvbnRlbnQgPSB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uZXJyb3I7CisgICAgICAgICAgb3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5pbmZvQmFyXy52aXNpYmxlID0gdHJ1ZTsKKyAgICAgIH0KKworICAgICAgdGhpcy5kcmF3UGljdHVyZV8oKTsKKyAgICB9LAorCisgICAgZHJhd1BpY3R1cmVfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzaXplID0gdGhpcy5nZXRSYXN0ZXJDYW52YXNTaXplXygpOworICAgICAgaWYgKHNpemUud2lkdGggIT09IHRoaXMucmFzdGVyQ2FudmFzXy53aWR0aCkKKyAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLndpZHRoID0gc2l6ZS53aWR0aDsKKyAgICAgIGlmIChzaXplLmhlaWdodCAhPT0gdGhpcy5yYXN0ZXJDYW52YXNfLmhlaWdodCkKKyAgICAgICAgdGhpcy5yYXN0ZXJDYW52YXNfLmhlaWdodCA9IHNpemUuaGVpZ2h0OworCisgICAgICB0aGlzLnJhc3RlckN0eF8uY2xlYXJSZWN0KDAsIDAsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTsKKworICAgICAgaWYgKCF0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uaW1hZ2VEYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBpbWdDYW52YXMgPSB0aGlzLnBpY3R1cmVBc0ltYWdlRGF0YV8uYXNDYW52YXMoKTsKKyAgICAgIHZhciB3ID0gaW1nQ2FudmFzLndpZHRoOworICAgICAgdmFyIGggPSBpbWdDYW52YXMuaGVpZ2h0OworICAgICAgdGhpcy5yYXN0ZXJDdHhfLmRyYXdJbWFnZShpbWdDYW52YXMsIDAsIDAsIHcsIGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIHcgKiB0aGlzLnpvb21TY2FsZVZhbHVlXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCAqIHRoaXMuem9vbVNjYWxlVmFsdWVfKTsKKyAgICB9LAorCisgICAgcmFzdGVyaXplXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5waWN0dXJlXykgeworICAgICAgICB0aGlzLnBpY3R1cmVfLnJhc3Rlcml6ZSgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgc3RvcEluZGV4OiB0aGlzLmRyYXdPcHNWaWV3Xy5zZWxlY3RlZE9wSW5kZXgsCisgICAgICAgICAgICAgIHNob3dPdmVyZHJhdzogdGhpcy5zaG93T3ZlcmRyYXdfCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdGhpcy5vblJhc3RlckNvbXBsZXRlXy5iaW5kKHRoaXMpKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgb25SYXN0ZXJDb21wbGV0ZV86IGZ1bmN0aW9uKHBpY3R1cmVBc0ltYWdlRGF0YSkgeworICAgICAgdGhpcy5waWN0dXJlQXNJbWFnZURhdGFfID0gcGljdHVyZUFzSW1hZ2VEYXRhOworICAgICAgdGhpcy5zY2hlZHVsZVVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBtb3ZlU2VsZWN0ZWRPcEJ5OiBmdW5jdGlvbihpbmNyZW1lbnQpIHsKKyAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3BJbmRleCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuc2VsZWN0ZWRPcEluZGV4ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXggPSB0ci5iLmNsYW1wKAorICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcEluZGV4ICsgaW5jcmVtZW50LAorICAgICAgICAgIDAsIHRoaXMubnVtT3BzKTsKKyAgICB9LAorCisgICAgZ2V0IG51bU9wcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmRyYXdPcHNWaWV3Xy5udW1PcHM7CisgICAgfSwKKworICAgIGdldCBzZWxlY3RlZE9wSW5kZXgoKSB7CisgICAgICByZXR1cm4gdGhpcy5kcmF3T3BzVmlld18uc2VsZWN0ZWRPcEluZGV4OworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0ZWRPcEluZGV4KGluZGV4KSB7CisgICAgICB0aGlzLmRyYXdPcHNWaWV3Xy5zZWxlY3RlZE9wSW5kZXggPSBpbmRleDsKKyAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18uc2VsZWN0ZWRPcEluZGV4ID0gaW5kZXg7CisgICAgfSwKKworICAgIG9uQ2hhcnRCYXJDbGlja2VkXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5kcmF3T3BzVmlld18uc2VsZWN0ZWRPcEluZGV4ID0KKyAgICAgICAgICB0aGlzLmRyYXdPcHNDaGFydFZpZXdfLnNlbGVjdGVkT3BJbmRleDsKKyAgICB9LAorCisgICAgb25DaGFuZ2VEcmF3T3BzXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5yYXN0ZXJpemVfKCk7CisgICAgICB0aGlzLnNjaGVkdWxlVXBkYXRlQ29udGVudHNfKCk7CisKKyAgICAgIHRoaXMuZHJhd09wc0NoYXJ0Vmlld18uc2VsZWN0ZWRPcEluZGV4ID0KKyAgICAgICAgICB0aGlzLmRyYXdPcHNWaWV3Xy5zZWxlY3RlZE9wSW5kZXg7CisgICAgfSwKKworICAgIHNldCBzaG93T3ZlcmRyYXcodikgeworICAgICAgdGhpcy5zaG93T3ZlcmRyYXdfID0gdjsKKyAgICAgIHRoaXMucmFzdGVyaXplXygpOworICAgIH0sCisKKyAgICBzZXQgc2hvd1N1bW1hcnlDaGFydChjaGFydFNob3VsZEJlVmlzaWJsZSkgeworICAgICAgaWYgKGNoYXJ0U2hvdWxkQmVWaXNpYmxlKQorICAgICAgICB0aGlzLmRyYXdPcHNDaGFydFN1bW1hcnlWaWV3Xy5zaG93KCk7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMuZHJhd09wc0NoYXJ0U3VtbWFyeVZpZXdfLmhpZGUoKTsKKyAgICB9LAorCisgICAgdHJhY2tNb3VzZV86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICd0ci11aS1iLW1vdXNlLW1vZGUtc2VsZWN0b3InKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnRhcmdldEVsZW1lbnQgPSB0aGlzLnJhc3RlckFyZWFfOworICAgICAgdGhpcy5yYXN0ZXJBcmVhXy5hcHBlbmRDaGlsZCh0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXyk7CisKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnN1cHBvcnRlZE1vZGVNYXNrID0KKyAgICAgICAgICB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREUuWk9PTTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLm1vZGUgPSB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREUuWk9PTTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmRlZmF1bHRNb2RlID0gdHIudWkuYi5NT1VTRV9TRUxFQ1RPUl9NT0RFLlpPT007CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXR0aW5nc0tleSA9ICdwaWN0dXJlRGVidWdnZXIubW91c2VNb2RlU2VsZWN0b3InOworCisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnpvb20nLAorICAgICAgICAgIHRoaXMub25CZWdpblpvb21fLmJpbmQodGhpcykpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlem9vbScsCisgICAgICAgICAgdGhpcy5vblVwZGF0ZVpvb21fLmJpbmQodGhpcykpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW5kem9vbScsCisgICAgICAgICAgdGhpcy5vbkVuZFpvb21fLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBvbkJlZ2luWm9vbV86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMuaXNab29taW5nXyA9IHRydWU7CisKKyAgICAgIHRoaXMubGFzdE1vdXNlVmlld1Bvc18gPSB0aGlzLmV4dHJhY3RSZWxhdGl2ZU1vdXNlUG9zaXRpb25fKGUpOworCisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwKKworICAgIG9uVXBkYXRlWm9vbV86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGlmICghdGhpcy5pc1pvb21pbmdfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBjdXJyZW50TW91c2VWaWV3UG9zID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKKworICAgICAgLy8gVGFrZSB0aGUgZGlzdGFuY2UgdGhlIG1vdXNlIGhhcyBtb3ZlZCBhbmQgd2Ugd2FudCB0byB6b29tIGF0IGFib3V0CisgICAgICAvLyAxLzEwMDB0aCBvZiB0aGF0IHNwZWVkLiAwLjAxIGZlZWxzIGp1bXB5LiBUaGlzIGNvdWxkIHBvc3NpYmx5IGJlIHR1bmVkCisgICAgICAvLyBtb3JlIGlmIHBlb3BsZSBmZWVsIGl0J3MgdG9vIHNsb3cuCisgICAgICB0aGlzLnpvb21TY2FsZVZhbHVlXyArPQorICAgICAgICAgICgodGhpcy5sYXN0TW91c2VWaWV3UG9zXy55IC0gY3VycmVudE1vdXNlVmlld1Bvcy55KSAqIDAuMDAxKTsKKyAgICAgIHRoaXMuem9vbVNjYWxlVmFsdWVfID0gTWF0aC5tYXgodGhpcy56b29tU2NhbGVWYWx1ZV8sIDAuMSk7CisKKyAgICAgIHRoaXMuZHJhd1BpY3R1cmVfKCk7CisKKyAgICAgIHRoaXMubGFzdE1vdXNlVmlld1Bvc18gPSBjdXJyZW50TW91c2VWaWV3UG9zOworICAgIH0sCisKKyAgICBvbkVuZFpvb21fOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5pc1pvb21pbmdfID0gZmFsc2U7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwKKworICAgIGV4dHJhY3RSZWxhdGl2ZU1vdXNlUG9zaXRpb25fOiBmdW5jdGlvbihlKSB7CisgICAgICByZXR1cm4geworICAgICAgICB4OiBlLmNsaWVudFggLSB0aGlzLnJhc3RlckFyZWFfLm9mZnNldExlZnQsCisgICAgICAgIHk6IGUuY2xpZW50WSAtIHRoaXMucmFzdGVyQXJlYV8ub2Zmc2V0VG9wCisgICAgICB9OworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFBpY3R1cmVEZWJ1Z2dlcjogUGljdHVyZURlYnVnZ2VyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMjZjOTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9kZWJ1Z2dlcl90ZXN0Lmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBwaWN0dXJlID0gbmV3IHRyLmUuY2MuUGljdHVyZVNuYXBzaG90KHtpZDogJzMxNDE1J30sIDEwLCB7CisgICAgICAncGFyYW1zJzogeworICAgICAgICAnb3BhcXVlX3JlY3QnOiBbLTE1LCAtMTUsIDAsIDBdLAorICAgICAgICAnbGF5ZXJfcmVjdCc6IFstMTUsIC0xNSwgNDYsIDgzM10KKyAgICAgIH0sCisgICAgICAnc2twNjQnOiAnREFBQUFIWUVBQUR6QVFBQUJ3QUFBQUZrWVdWeThBQUFBQWdBQUI0REFBQUFEQUFBSUFBQWdEOEFBSUEvQ0FBQUhnTUFBQUFjQUFBREFBQUFBQUFBQUFBQXdJNUVBSUQ1UXdFQUFBRG9BQUFBQ0FBQUhnTUFBQUFNQUFBakFBQUFBQUFBQUFBTUFBQWpBQUFBQUFBQUFBQWNBQUFEQUFBQUFBQUFBQUFBd0k1RUFJRDVRd0VBQUFEa0FBQUFHQUFBRlFFQUFBQUFBQUFBQUFBQUFBREFqa1FBZ1BsREdBQUFGUUlBQUFBQUFBQUFBQUFBQUFEQWprUUFnUGxEQ0FBQUhnTUFBQUFjQUFBREFBQUFBQUFBQUFBQXdJNUVBSUQ1UXdFQUFBRGdBQUFBR0FBQUZRTUFBQUFBQUtCQUFBQ2dRQUFBZ0VJQUFJQkNCQUFBSEFRQUFCd0VBQUFjQkFBQUhIUmpZV1lCQUFBQURWTnJVM0pqV0dabGNtMXZaR1ZqWm5CMEFBQUFBSGxoY21HZ0FBQUFJSFJ1Y0FNQUFBQUFBRUJCQUFDQVB3QUFBQUFBQUlBL0FBQUFBQUFBZ0VBQUFQLy9BREFCQUFBQUFBQUFBRUJCQUFDQVB3QUFBQUFBQUlBL0FBQUFBQUFBZ0VELy8vLy9BakFCQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRRUVBQUlBL0FBQUFBQUFBZ0Q4QUFBQUFBQUNBUVA4QUFQOEFNQUVBQUFBQUFDQm1iMlU9JyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICAgIH0pOworICAgIHBpY3R1cmUucHJlSW5pdGlhbGl6ZSgpOworICAgIHBpY3R1cmUuaW5pdGlhbGl6ZSgpOworCisgICAgdmFyIGRiZyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5QaWN0dXJlRGVidWdnZXIoKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGJnKTsKKyAgICBkYmcucGljdHVyZSA9IHBpY3R1cmU7CisgICAgZGJnLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF9zdW1tYXJ5X3ZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkYzkzZTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3LmNzcwpAQCAtMCwwICsxLDE4IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorICovCisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtb3BzLWNoYXJ0LXN1bW1hcnktdmlldyB7CisgIC13ZWJraXQtZmxleDogMCAwIGF1dG87CisgIGZvbnQtc2l6ZTogMDsKKyAgbWFyZ2luOiAwOworICBtaW4taGVpZ2h0OiAyMDBweDsKKyAgbWluLXdpZHRoOiAyMDBweDsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgcGFkZGluZzogMDsKK30KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtY2hhcnQtc3VtbWFyeS12aWV3LmhpZGRlbiB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfY2hhcnRfc3VtbWFyeV92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNjNjhjYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF9zdW1tYXJ5X3ZpZXcuaHRtbApAQCAtMCwwICsxLDQ3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIKKyAgICBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF9zdW1tYXJ5X3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuY2MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIE9QU19USU1JTkdfSVRFUkFUSU9OUyA9IDM7CisgIHZhciBDSEFSVF9QQURESU5HX0xFRlQgPSA2NTsKKyAgdmFyIENIQVJUX1BBRERJTkdfUklHSFQgPSA0MDsKKyAgdmFyIEFYSVNfUEFERElOR19MRUZUID0gNjA7CisgIHZhciBBWElTX1BBRERJTkdfUklHSFQgPSAzNTsKKyAgdmFyIEFYSVNfUEFERElOR19UT1AgPSAyNTsKKyAgdmFyIEFYSVNfUEFERElOR19CT1RUT00gPSA0NTsKKyAgdmFyIEFYSVNfTEFCRUxfUEFERElORyA9IDU7CisgIHZhciBBWElTX1RJQ0tfU0laRSA9IDEwOworICB2YXIgTEFCRUxfUEFERElORyA9IDU7CisgIHZhciBMQUJFTF9JTlRFUkxFQVZFX09GRlNFVCA9IDE1OworICB2YXIgQkFSX1BBRERJTkcgPSA1OworICB2YXIgVkVSVElDQUxfVElDS1MgPSA1OworICB2YXIgSFVFX0NIQVJfQ09ERV9BREpVU1RNRU5UID0gNS43OworCisgIC8qKgorICAgKiBQcm92aWRlcyBhIGNoYXJ0IHNob3dpbmcgdGhlIGN1bXVsYXRpdmUgdGltZSBzcGVudCBpbiBTa2lhIG9wZXJhdGlvbnMKKyAgICogZHVyaW5nIHBpY3R1cmUgcmFzdGVyaXphdGlvbi4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgUGljdHVyZU9wc0NoYXJ0U3VtbWFyeVZpZXcgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICd0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1jaGFydC1zdW1tYXJ5LXZpZXcnKTsKKworICBQaWN0dXJlT3BzQ2hhcnRTdW1tYXJ5Vmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5waWN0dXJlXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMucGljdHVyZURhdGFQcm9jZXNzZWRfID0gZmFsc2U7CisKKyAgICAgIHRoaXMuY2hhcnRTY2FsZV8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbzsKKworICAgICAgdGhpcy5jaGFydF8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICAgIHRoaXMuY2hhcnRDdHhfID0gdGhpcy5jaGFydF8uZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5jaGFydF8pOworCisgICAgICB0aGlzLm9wc1RpbWluZ0RhdGFfID0gW107CisKKyAgICAgIHRoaXMuY2hhcnRXaWR0aF8gPSAwOworICAgICAgdGhpcy5jaGFydEhlaWdodF8gPSAwOworICAgICAgdGhpcy5yZXF1aXJlc1JlZHJhd18gPSB0cnVlOworCisgICAgICB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID0gbnVsbDsKKworICAgICAgdGhpcy5jaGFydF8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZV8uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGdldCByZXF1aXJlc1JlZHJhdygpIHsKKyAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVzUmVkcmF3XzsKKyAgICB9LAorCisgICAgc2V0IHJlcXVpcmVzUmVkcmF3KHJlcXVpcmVzUmVkcmF3KSB7CisgICAgICB0aGlzLnJlcXVpcmVzUmVkcmF3XyA9IHJlcXVpcmVzUmVkcmF3OworICAgIH0sCisKKyAgICBnZXQgcGljdHVyZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfOworICAgIH0sCisKKyAgICBzZXQgcGljdHVyZShwaWN0dXJlKSB7CisgICAgICB0aGlzLnBpY3R1cmVfID0gcGljdHVyZTsKKyAgICAgIHRoaXMucGljdHVyZURhdGFQcm9jZXNzZWRfID0gZmFsc2U7CisKKyAgICAgIGlmICh0aGlzLmNsYXNzTGlzdC5jb250YWlucygnaGlkZGVuJykpCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5wcm9jZXNzUGljdHVyZURhdGFfKCk7CisgICAgICB0aGlzLnJlcXVpcmVzUmVkcmF3ID0gdHJ1ZTsKKyAgICAgIHRoaXMudXBkYXRlQ2hhcnRDb250ZW50cygpOworICAgIH0sCisKKyAgICBoaWRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CisgICAgfSwKKworICAgIHNob3c6IGZ1bmN0aW9uKCkgeworCisgICAgICB0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOworCisgICAgICBpZiAodGhpcy5waWN0dXJlRGF0YVByb2Nlc3NlZF8pCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5wcm9jZXNzUGljdHVyZURhdGFfKCk7CisgICAgICB0aGlzLnJlcXVpcmVzUmVkcmF3ID0gdHJ1ZTsKKyAgICAgIHRoaXMudXBkYXRlQ2hhcnRDb250ZW50cygpOworCisgICAgfSwKKworICAgIG9uTW91c2VNb3ZlXzogZnVuY3Rpb24oZSkgeworCisgICAgICB2YXIgbGFzdEJhck1vdXNlT3ZlclRhcmdldCA9IHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF87CisgICAgICB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID0gbnVsbDsKKworICAgICAgdmFyIHggPSBlLm9mZnNldFg7CisgICAgICB2YXIgeSA9IGUub2Zmc2V0WTsKKworICAgICAgdmFyIGNoYXJ0TGVmdCA9IENIQVJUX1BBRERJTkdfTEVGVDsKKyAgICAgIHZhciBjaGFydFJpZ2h0ID0gdGhpcy5jaGFydFdpZHRoXyAtIENIQVJUX1BBRERJTkdfUklHSFQ7CisgICAgICB2YXIgY2hhcnRUb3AgPSBBWElTX1BBRERJTkdfVE9QOworICAgICAgdmFyIGNoYXJ0Qm90dG9tID0gdGhpcy5jaGFydEhlaWdodF8gLSBBWElTX1BBRERJTkdfQk9UVE9NOworICAgICAgdmFyIGNoYXJ0SW5uZXJXaWR0aCA9IGNoYXJ0UmlnaHQgLSBjaGFydExlZnQ7CisKKyAgICAgIGlmICh4ID4gY2hhcnRMZWZ0ICYmIHggPCBjaGFydFJpZ2h0ICYmIHkgPiBjaGFydFRvcCAmJiB5IDwgY2hhcnRCb3R0b20pIHsKKworICAgICAgICB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID0gTWF0aC5mbG9vcigKKyAgICAgICAgICAgICh4IC0gY2hhcnRMZWZ0KSAvIGNoYXJ0SW5uZXJXaWR0aCAqIHRoaXMub3BzVGltaW5nRGF0YV8ubGVuZ3RoKTsKKworICAgICAgICB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID0gdHIuYi5jbGFtcCgKKyAgICAgICAgICAgIHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF8sIDAsIHRoaXMub3BzVGltaW5nRGF0YV8ubGVuZ3RoIC0gMSk7CisKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF8gPT09IGxhc3RCYXJNb3VzZU92ZXJUYXJnZXQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5kcmF3Q2hhcnRDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ2hhcnRDb250ZW50czogZnVuY3Rpb24oKSB7CisKKyAgICAgIGlmICh0aGlzLnJlcXVpcmVzUmVkcmF3KQorICAgICAgICB0aGlzLnVwZGF0ZUNoYXJ0RGltZW5zaW9uc18oKTsKKworICAgICAgdGhpcy5kcmF3Q2hhcnRDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ2hhcnREaW1lbnNpb25zXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNoYXJ0V2lkdGhfID0gdGhpcy5vZmZzZXRXaWR0aDsKKyAgICAgIHRoaXMuY2hhcnRIZWlnaHRfID0gdGhpcy5vZmZzZXRIZWlnaHQ7CisKKyAgICAgIC8vIFNjYWxlIHVwIHRoZSBjYW52YXMgYWNjb3JkaW5nIHRvIHRoZSBkZXZpY2VQaXhlbFJhdGlvLCB0aGVuIHJlZHVjZSBpdAorICAgICAgLy8gZG93biBhZ2FpbiB2aWEgQ1NTLiBGaW5hbGx5IHdlIGFwcGx5IGEgc2NhbGUgdG8gdGhlIGNhbnZhcyBzbyB0aGF0CisgICAgICAvLyB0aGluZ3MgYXJlIGRyYXduIGF0IHRoZSBjb3JyZWN0IHNpemUuCisgICAgICB0aGlzLmNoYXJ0Xy53aWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gKiB0aGlzLmNoYXJ0U2NhbGVfOworICAgICAgdGhpcy5jaGFydF8uaGVpZ2h0ID0gdGhpcy5jaGFydEhlaWdodF8gKiB0aGlzLmNoYXJ0U2NhbGVfOworCisgICAgICB0aGlzLmNoYXJ0Xy5zdHlsZS53aWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gKyAncHgnOworICAgICAgdGhpcy5jaGFydF8uc3R5bGUuaGVpZ2h0ID0gdGhpcy5jaGFydEhlaWdodF8gKyAncHgnOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zY2FsZSh0aGlzLmNoYXJ0U2NhbGVfLCB0aGlzLmNoYXJ0U2NhbGVfKTsKKyAgICB9LAorCisgICAgcHJvY2Vzc1BpY3R1cmVEYXRhXzogZnVuY3Rpb24oKSB7CisKKyAgICAgIHRoaXMucmVzZXRPcHNUaW1pbmdEYXRhXygpOworICAgICAgdGhpcy5waWN0dXJlRGF0YVByb2Nlc3NlZF8gPSB0cnVlOworCisgICAgICBpZiAoIXRoaXMucGljdHVyZV8pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIG9wcyA9IHRoaXMucGljdHVyZV8uZ2V0T3BzKCk7CisgICAgICBpZiAoIW9wcykKKyAgICAgICAgcmV0dXJuOworCisgICAgICBvcHMgPSB0aGlzLnBpY3R1cmVfLnRhZ09wc1dpdGhUaW1pbmdzKG9wcyk7CisKKyAgICAgIC8vIENoZWNrIHRoYXQgdGhlcmUgYXJlIHZhbGlkIHRpbWVzLgorICAgICAgaWYgKG9wc1swXS5jbWRfdGltZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuY29sbGFwc2VPcHNUb1RpbWluZ0J1Y2tldHNfKG9wcyk7CisgICAgfSwKKworICAgIGRyYXdDaGFydENvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisKKyAgICAgIHRoaXMuY2xlYXJDaGFydENvbnRlbnRzXygpOworCisgICAgICBpZiAodGhpcy5vcHNUaW1pbmdEYXRhXy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgdGhpcy5zaG93Tm9UaW1pbmdEYXRhTWVzc2FnZV8oKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB0aGlzLmRyYXdDaGFydEF4ZXNfKCk7CisgICAgICB0aGlzLmRyYXdCYXJzXygpOworICAgICAgdGhpcy5kcmF3TGluZUF0Qm90dG9tT2ZDaGFydF8oKTsKKworICAgICAgaWYgKHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF8gPT09IG51bGwpCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5kcmF3VG9vbHRpcF8oKTsKKyAgICB9LAorCisgICAgZHJhd0xpbmVBdEJvdHRvbU9mQ2hhcnRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZVN0eWxlID0gJyNBQUEnOworICAgICAgdGhpcy5jaGFydEN0eF8ubW92ZVRvKDAsIHRoaXMuY2hhcnRIZWlnaHRfIC0gMC41KTsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmxpbmVUbyh0aGlzLmNoYXJ0V2lkdGhfLCB0aGlzLmNoYXJ0SGVpZ2h0XyAtIDAuNSk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2UoKTsKKyAgICB9LAorCisgICAgZHJhd1Rvb2x0aXBfOiBmdW5jdGlvbigpIHsKKworICAgICAgdmFyIHRvb2x0aXBEYXRhID0gdGhpcy5vcHNUaW1pbmdEYXRhX1t0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfXTsKKyAgICAgIHZhciB0b29sdGlwVGl0bGUgPSB0b29sdGlwRGF0YS5jbWRfc3RyaW5nOworICAgICAgdmFyIHRvb2x0aXBUaW1lID0gdG9vbHRpcERhdGEuY21kX3RpbWUudG9GaXhlZCg0KTsKKworICAgICAgdmFyIHRvb2x0aXBXaWR0aCA9IDExMDsKKyAgICAgIHZhciB0b29sdGlwSGVpZ2h0ID0gNDA7CisgICAgICB2YXIgY2hhcnRJbm5lcldpZHRoID0gdGhpcy5jaGFydFdpZHRoXyAtIENIQVJUX1BBRERJTkdfUklHSFQgLQorICAgICAgICAgIENIQVJUX1BBRERJTkdfTEVGVDsKKyAgICAgIHZhciBiYXJXaWR0aCA9IGNoYXJ0SW5uZXJXaWR0aCAvIHRoaXMub3BzVGltaW5nRGF0YV8ubGVuZ3RoOworICAgICAgdmFyIHRvb2x0aXBPZmZzZXQgPSBNYXRoLnJvdW5kKCh0b29sdGlwV2lkdGggLSBiYXJXaWR0aCkgKiAwLjUpOworCisgICAgICB2YXIgbGVmdCA9IENIQVJUX1BBRERJTkdfTEVGVCArIHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF8gKgorICAgICAgICAgIGJhcldpZHRoIC0gdG9vbHRpcE9mZnNldDsKKyAgICAgIHZhciB0b3AgPSBNYXRoLnJvdW5kKCh0aGlzLmNoYXJ0SGVpZ2h0XyAtIHRvb2x0aXBIZWlnaHQpICogMC41KTsKKworICAgICAgdGhpcy5jaGFydEN0eF8uc2F2ZSgpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zaGFkb3dPZmZzZXRYID0gMDsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnNoYWRvd09mZnNldFkgPSA1OworICAgICAgdGhpcy5jaGFydEN0eF8uc2hhZG93Qmx1ciA9IDQ7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zaGFkb3dDb2xvciA9ICdyZ2JhKDAsMCwwLDAuNCknOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2VTdHlsZSA9ICcjODg4JzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjRUVFJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxSZWN0KGxlZnQsIHRvcCwgdG9vbHRpcFdpZHRoLCB0b29sdGlwSGVpZ2h0KTsKKworICAgICAgdGhpcy5jaGFydEN0eF8uc2hhZG93Q29sb3IgPSAndHJhbnNwYXJlbnQnOworICAgICAgdGhpcy5jaGFydEN0eF8udHJhbnNsYXRlKDAuNSwgMC41KTsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZVJlY3QobGVmdCwgdG9wLCB0b29sdGlwV2lkdGgsIHRvb2x0aXBIZWlnaHQpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5yZXN0b3JlKCk7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjMjIyJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRCYXNlbGluZSA9ICd0b3AnOworICAgICAgdGhpcy5jaGFydEN0eF8uZm9udCA9ICc4MDAgMTJweCBBcmlhbCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsVGV4dCh0b29sdGlwVGl0bGUsIGxlZnQgKyA4LCB0b3AgKyA4KTsKKworICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gJyM1NTUnOworICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEJhc2VsaW5lID0gJ3RvcCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5mb250ID0gJzQwMCBpdGFsaWMgMTBweCBBcmlhbCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsVGV4dCgnVG90YWw6ICcgKyB0b29sdGlwVGltZSArICdtcycsCisgICAgICAgICAgbGVmdCArIDgsIHRvcCArIDIyKTsKKyAgICB9LAorCisgICAgZHJhd0JhcnNfOiBmdW5jdGlvbigpIHsKKworICAgICAgdmFyIGxlbiA9IHRoaXMub3BzVGltaW5nRGF0YV8ubGVuZ3RoOworICAgICAgdmFyIG1heCA9IHRoaXMub3BzVGltaW5nRGF0YV9bMF0uY21kX3RpbWU7CisgICAgICB2YXIgbWluID0gdGhpcy5vcHNUaW1pbmdEYXRhX1tsZW4gLSAxXS5jbWRfdGltZTsKKworICAgICAgdmFyIHdpZHRoID0gdGhpcy5jaGFydFdpZHRoXyAtIENIQVJUX1BBRERJTkdfTEVGVCAtIENIQVJUX1BBRERJTkdfUklHSFQ7CisgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5jaGFydEhlaWdodF8gLSBBWElTX1BBRERJTkdfVE9QIC0gQVhJU19QQURESU5HX0JPVFRPTTsKKyAgICAgIHZhciBiYXJXaWR0aCA9IE1hdGguZmxvb3Iod2lkdGggLyBsZW4pOworCisgICAgICB2YXIgb3BEYXRhOworICAgICAgdmFyIG9wVGltaW5nOworICAgICAgdmFyIG9wSGVpZ2h0OworICAgICAgdmFyIG9wTGFiZWw7CisgICAgICB2YXIgYmFyTGVmdDsKKworICAgICAgZm9yICh2YXIgYiA9IDA7IGIgPCBsZW47IGIrKykgeworCisgICAgICAgIG9wRGF0YSA9IHRoaXMub3BzVGltaW5nRGF0YV9bYl07CisgICAgICAgIG9wVGltaW5nID0gb3BEYXRhLmNtZF90aW1lIC8gbWF4OworCisgICAgICAgIG9wSGVpZ2h0ID0gTWF0aC5yb3VuZChNYXRoLm1heCgxLCBvcFRpbWluZyAqIGhlaWdodCkpOworICAgICAgICBvcExhYmVsID0gb3BEYXRhLmNtZF9zdHJpbmc7CisgICAgICAgIGJhckxlZnQgPSBDSEFSVF9QQURESU5HX0xFRlQgKyBiICogYmFyV2lkdGg7CisKKyAgICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gdGhpcy5nZXRPcENvbG9yXyhvcExhYmVsKTsKKworICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsUmVjdChiYXJMZWZ0ICsgQkFSX1BBRERJTkcsIEFYSVNfUEFERElOR19UT1AgKworICAgICAgICAgICAgaGVpZ2h0IC0gb3BIZWlnaHQsIGJhcldpZHRoIC0gMiAqIEJBUl9QQURESU5HLCBvcEhlaWdodCk7CisgICAgICB9CisKKyAgICB9LAorCisgICAgZ2V0T3BDb2xvcl86IGZ1bmN0aW9uKG9wTmFtZSkgeworCisgICAgICB2YXIgY2hhcmFjdGVycyA9IG9wTmFtZS5zcGxpdCgnJyk7CisgICAgICB2YXIgaHVlID0gY2hhcmFjdGVycy5yZWR1Y2UodGhpcy5yZWR1Y2VOYW1lVG9IdWUsIDApICUgMzYwOworCisgICAgICByZXR1cm4gJ2hzbCgnICsgaHVlICsgJywgMzAlLCA1MCUpJzsKKyAgICB9LAorCisgICAgcmVkdWNlTmFtZVRvSHVlOiBmdW5jdGlvbihwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUsIGluZGV4LCBhcnJheSkgeworICAgICAgLy8gR2V0IHRoZSBjaGFyIGNvZGUgYW5kIGFwcGx5IGEgbWFnaWMgYWRqdXN0bWVudCB2YWx1ZSBzbyB3ZSBnZXQKKyAgICAgIC8vIHByZXR0eSBjb2xvcnMgZnJvbSBhcm91bmQgdGhlIHJhaW5ib3cuCisgICAgICByZXR1cm4gTWF0aC5yb3VuZChwcmV2aW91c1ZhbHVlICsgY3VycmVudFZhbHVlLmNoYXJDb2RlQXQoMCkgKgorICAgICAgICAgIEhVRV9DSEFSX0NPREVfQURKVVNUTUVOVCk7CisgICAgfSwKKworICAgIGRyYXdDaGFydEF4ZXNfOiBmdW5jdGlvbigpIHsKKworICAgICAgdmFyIGxlbiA9IHRoaXMub3BzVGltaW5nRGF0YV8ubGVuZ3RoOworICAgICAgdmFyIG1heCA9IHRoaXMub3BzVGltaW5nRGF0YV9bMF0uY21kX3RpbWU7CisgICAgICB2YXIgbWluID0gdGhpcy5vcHNUaW1pbmdEYXRhX1tsZW4gLSAxXS5jbWRfdGltZTsKKworICAgICAgdmFyIHdpZHRoID0gdGhpcy5jaGFydFdpZHRoXyAtIEFYSVNfUEFERElOR19MRUZUIC0gQVhJU19QQURESU5HX1JJR0hUOworICAgICAgdmFyIGhlaWdodCA9IHRoaXMuY2hhcnRIZWlnaHRfIC0gQVhJU19QQURESU5HX1RPUCAtIEFYSVNfUEFERElOR19CT1RUT007CisKKyAgICAgIHZhciB0b3RhbEJhcldpZHRoID0gdGhpcy5jaGFydFdpZHRoXyAtIENIQVJUX1BBRERJTkdfTEVGVCAtCisgICAgICAgICAgQ0hBUlRfUEFERElOR19SSUdIVDsKKyAgICAgIHZhciBiYXJXaWR0aCA9IE1hdGguZmxvb3IodG90YWxCYXJXaWR0aCAvIGxlbik7CisgICAgICB2YXIgdGlja1lJbnRlcnZhbCA9IGhlaWdodCAvIChWRVJUSUNBTF9USUNLUyAtIDEpOworICAgICAgdmFyIHRpY2tZUG9zaXRpb24gPSAwOworICAgICAgdmFyIHRpY2tWYWxJbnRlcnZhbCA9IChtYXggLSBtaW4pIC8gKFZFUlRJQ0FMX1RJQ0tTIC0gMSk7CisgICAgICB2YXIgdGlja1ZhbCA9IDA7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjMzMzJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZVN0eWxlID0gJyM3NzcnOworICAgICAgdGhpcy5jaGFydEN0eF8uc2F2ZSgpOworCisgICAgICAvLyBUcmFuc2xhdGUgaGFsZiBhIHBpeGVsIHRvIGF2b2lkIGJsdXJyeSBsaW5lcy4KKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRyYW5zbGF0ZSgwLjUsIDAuNSk7CisKKyAgICAgIC8vIFNpZGVzLgorCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zYXZlKCk7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRyYW5zbGF0ZShBWElTX1BBRERJTkdfTEVGVCwgQVhJU19QQURESU5HX1RPUCk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5tb3ZlVG8oMCwgMCk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5saW5lVG8oMCwgaGVpZ2h0KTsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmxpbmVUbyh3aWR0aCwgaGVpZ2h0KTsKKworICAgICAgLy8gWS1heGlzIHRpY2tzLgorICAgICAgdGhpcy5jaGFydEN0eF8uZm9udCA9ICcxMHB4IEFyaWFsJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRBbGlnbiA9ICdyaWdodCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJzsKKworICAgICAgZm9yICh2YXIgdCA9IDA7IHQgPCBWRVJUSUNBTF9USUNLUzsgdCsrKSB7CisKKyAgICAgICAgdGlja1lQb3NpdGlvbiA9IE1hdGgucm91bmQodCAqIHRpY2tZSW50ZXJ2YWwpOworICAgICAgICB0aWNrVmFsID0gKG1heCAtIHQgKiB0aWNrVmFsSW50ZXJ2YWwpLnRvRml4ZWQoNCk7CisKKyAgICAgICAgdGhpcy5jaGFydEN0eF8ubW92ZVRvKDAsIHRpY2tZUG9zaXRpb24pOworICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5saW5lVG8oLUFYSVNfVElDS19TSVpFLCB0aWNrWVBvc2l0aW9uKTsKKyAgICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFRleHQodGlja1ZhbCwKKyAgICAgICAgICAgIC1BWElTX1RJQ0tfU0laRSAtIEFYSVNfTEFCRUxfUEFERElORywgdGlja1lQb3NpdGlvbik7CisKKyAgICAgIH0KKworICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlKCk7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnJlc3RvcmUoKTsKKworCisgICAgICAvLyBMYWJlbHMuCisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnNhdmUoKTsKKworICAgICAgdGhpcy5jaGFydEN0eF8udHJhbnNsYXRlKENIQVJUX1BBRERJTkdfTEVGVCArIE1hdGgucm91bmQoYmFyV2lkdGggKiAwLjUpLAorICAgICAgICAgIEFYSVNfUEFERElOR19UT1AgKyBoZWlnaHQgKyBMQUJFTF9QQURESU5HKTsKKworICAgICAgdGhpcy5jaGFydEN0eF8uZm9udCA9ICcxMHB4IEFyaWFsJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRBbGlnbiA9ICdjZW50ZXInOworICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEJhc2VsaW5lID0gJ3RvcCc7CisKKyAgICAgIHZhciBsYWJlbFRpY2tMZWZ0OworICAgICAgdmFyIGxhYmVsVGlja0JvdHRvbTsKKyAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgbGVuOyBsKyspIHsKKworICAgICAgICBsYWJlbFRpY2tMZWZ0ID0gTWF0aC5yb3VuZChsICogYmFyV2lkdGgpOworICAgICAgICBsYWJlbFRpY2tCb3R0b20gPSBsICUgMiAqIExBQkVMX0lOVEVSTEVBVkVfT0ZGU0VUOworCisgICAgICAgIHRoaXMuY2hhcnRDdHhfLnNhdmUoKTsKKyAgICAgICAgdGhpcy5jaGFydEN0eF8ubW92ZVRvKGxhYmVsVGlja0xlZnQsIC1MQUJFTF9QQURESU5HKTsKKyAgICAgICAgdGhpcy5jaGFydEN0eF8ubGluZVRvKGxhYmVsVGlja0xlZnQsIGxhYmVsVGlja0JvdHRvbSk7CisgICAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZSgpOworICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5yZXN0b3JlKCk7CisKKyAgICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFRleHQodGhpcy5vcHNUaW1pbmdEYXRhX1tsXS5jbWRfc3RyaW5nLAorICAgICAgICAgICAgbGFiZWxUaWNrTGVmdCwgbGFiZWxUaWNrQm90dG9tKTsKKyAgICAgIH0KKworICAgICAgdGhpcy5jaGFydEN0eF8ucmVzdG9yZSgpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5yZXN0b3JlKCk7CisgICAgfSwKKworICAgIGNsZWFyQ2hhcnRDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jaGFydEN0eF8uY2xlYXJSZWN0KDAsIDAsIHRoaXMuY2hhcnRXaWR0aF8sIHRoaXMuY2hhcnRIZWlnaHRfKTsKKyAgICB9LAorCisgICAgc2hvd05vVGltaW5nRGF0YU1lc3NhZ2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZvbnQgPSAnODAwIGl0YWxpYyAxNHB4IEFyaWFsJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjMzMzJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRBbGlnbiA9ICdjZW50ZXInOworICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsVGV4dCgnTm8gdGltaW5nIGRhdGEgYXZhaWxhYmxlLicsCisgICAgICAgICAgdGhpcy5jaGFydFdpZHRoXyAqIDAuNSwgdGhpcy5jaGFydEhlaWdodF8gKiAwLjUpOworICAgIH0sCisKKyAgICBjb2xsYXBzZU9wc1RvVGltaW5nQnVja2V0c186IGZ1bmN0aW9uKG9wcykgeworCisgICAgICB2YXIgb3BzVGltaW5nRGF0YUluZGV4SGFzaF8gPSB7fTsKKyAgICAgIHZhciB0aW1pbmdEYXRhID0gdGhpcy5vcHNUaW1pbmdEYXRhXzsKKyAgICAgIHZhciBvcDsKKyAgICAgIHZhciBvcEluZGV4OworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykgeworCisgICAgICAgIG9wID0gb3BzW2ldOworCisgICAgICAgIGlmIChvcC5jbWRfdGltZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIFRyeSB0byBsb2NhdGUgdGhlIGVudHJ5IGZvciB0aGUgY3VycmVudCBvcGVyYXRpb24KKyAgICAgICAgLy8gYmFzZWQgb24gaXRzIG5hbWUuIElmIHRoYXQgZmFpbHMsIHRoZW4gY3JlYXRlIG9uZSBmb3IgaXQuCisgICAgICAgIG9wSW5kZXggPSBvcHNUaW1pbmdEYXRhSW5kZXhIYXNoX1tvcC5jbWRfc3RyaW5nXSB8fCBudWxsOworCisgICAgICAgIGlmIChvcEluZGV4ID09PSBudWxsKSB7CisgICAgICAgICAgdGltaW5nRGF0YS5wdXNoKHsKKyAgICAgICAgICAgIGNtZF90aW1lOiAwLAorICAgICAgICAgICAgY21kX3N0cmluZzogb3AuY21kX3N0cmluZworICAgICAgICAgIH0pOworCisgICAgICAgICAgb3BJbmRleCA9IHRpbWluZ0RhdGEubGVuZ3RoIC0gMTsKKyAgICAgICAgICBvcHNUaW1pbmdEYXRhSW5kZXhIYXNoX1tvcC5jbWRfc3RyaW5nXSA9IG9wSW5kZXg7CisgICAgICAgIH0KKworICAgICAgICB0aW1pbmdEYXRhW29wSW5kZXhdLmNtZF90aW1lICs9IG9wLmNtZF90aW1lOworCisgICAgICB9CisKKyAgICAgIHRpbWluZ0RhdGEuc29ydCh0aGlzLnNvcnRUaW1pbmdCdWNrZXRzQnlPcFRpbWVEZXNjZW5kaW5nXyk7CisKKyAgICAgIHRoaXMuY29sbGFwc2VUaW1pbmdCdWNrZXRzVG9PdGhlcl8oNCk7CisgICAgfSwKKworICAgIGNvbGxhcHNlVGltaW5nQnVja2V0c1RvT3RoZXJfOiBmdW5jdGlvbihjb3VudCkgeworCisgICAgICB2YXIgdGltaW5nRGF0YSA9IHRoaXMub3BzVGltaW5nRGF0YV87CisgICAgICB2YXIgb3RoZXJTb3VyY2UgPSB0aW1pbmdEYXRhLnNwbGljZShjb3VudCwgdGltaW5nRGF0YS5sZW5ndGggLSBjb3VudCk7CisgICAgICB2YXIgb3RoZXJEZXN0aW5hdGlvbiA9IG51bGw7CisKKyAgICAgIGlmICghb3RoZXJTb3VyY2UubGVuZ3RoKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRpbWluZ0RhdGEucHVzaCh7CisgICAgICAgIGNtZF90aW1lOiAwLAorICAgICAgICBjbWRfc3RyaW5nOiAnT3RoZXInCisgICAgICB9KTsKKworICAgICAgb3RoZXJEZXN0aW5hdGlvbiA9IHRpbWluZ0RhdGFbdGltaW5nRGF0YS5sZW5ndGggLSAxXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3RoZXJTb3VyY2UubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgb3RoZXJEZXN0aW5hdGlvbi5jbWRfdGltZSArPSBvdGhlclNvdXJjZVtpXS5jbWRfdGltZTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgc29ydFRpbWluZ0J1Y2tldHNCeU9wVGltZURlc2NlbmRpbmdfOiBmdW5jdGlvbihhLCBiKSB7CisgICAgICByZXR1cm4gYi5jbWRfdGltZSAtIGEuY21kX3RpbWU7CisgICAgfSwKKworICAgIHJlc2V0T3BzVGltaW5nRGF0YV86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5vcHNUaW1pbmdEYXRhXy5sZW5ndGggPSAwOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFBpY3R1cmVPcHNDaGFydFN1bW1hcnlWaWV3OiBQaWN0dXJlT3BzQ2hhcnRTdW1tYXJ5VmlldworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF92aWV3LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjE5NDNlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuY3NzCkBAIC0wLDAgKzEsMTggQEAKKy8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgKi8KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtY2hhcnQtdmlldyB7CisgIGRpc3BsYXk6IGJsb2NrOworICBoZWlnaHQ6IDE4MHB4OworICBtYXJnaW46IDA7CisgIHBhZGRpbmc6IDA7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtY2hhcnQtdmlldyA+IC51c2UtcGVyY2VudGlsZS1zY2FsZSB7CisgIGxlZnQ6IDA7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiAwOworfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg3MzY1YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19jaGFydF92aWV3Lmh0bWwKQEAgLTAsMCArMSw1MDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2NoYXJ0X3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuY2MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEJBUl9QQURESU5HID0gMTsKKyAgdmFyIEJBUl9XSURUSCA9IDU7CisgIHZhciBDSEFSVF9QQURESU5HX0xFRlQgPSA2NTsKKyAgdmFyIENIQVJUX1BBRERJTkdfUklHSFQgPSAzMDsKKyAgdmFyIENIQVJUX1BBRERJTkdfQk9UVE9NID0gMzU7CisgIHZhciBDSEFSVF9QQURESU5HX1RPUCA9IDIwOworICB2YXIgQVhJU19QQURESU5HX0xFRlQgPSA1NTsKKyAgdmFyIEFYSVNfUEFERElOR19SSUdIVCA9IDMwOworICB2YXIgQVhJU19QQURESU5HX0JPVFRPTSA9IDM1OworICB2YXIgQVhJU19QQURESU5HX1RPUCA9IDIwOworICB2YXIgQVhJU19USUNLX1NJWkUgPSA1OworICB2YXIgQVhJU19MQUJFTF9QQURESU5HID0gNTsKKyAgdmFyIFZFUlRJQ0FMX1RJQ0tTID0gNTsKKyAgdmFyIEhVRV9DSEFSX0NPREVfQURKVVNUTUVOVCA9IDUuNzsKKworICAvKioKKyAgICogUHJvdmlkZXMgYSBjaGFydCBzaG93aW5nIHRoZSBjdW11bGF0aXZlIHRpbWUgc3BlbnQgaW4gU2tpYSBvcGVyYXRpb25zCisgICAqIGR1cmluZyBwaWN0dXJlIHJhc3Rlcml6YXRpb24uCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIFBpY3R1cmVPcHNDaGFydFZpZXcgPQorICAgICAgdHIudWkuYi5kZWZpbmUoJ3RyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtb3BzLWNoYXJ0LXZpZXcnKTsKKworICBQaWN0dXJlT3BzQ2hhcnRWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnBpY3R1cmVfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5waWN0dXJlT3BzXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMub3BDb3N0c18gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMuY2hhcnRTY2FsZV8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbzsKKworICAgICAgdGhpcy5jaGFydF8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICAgIHRoaXMuY2hhcnRDdHhfID0gdGhpcy5jaGFydF8uZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5jaGFydF8pOworCisgICAgICB0aGlzLnNlbGVjdGVkT3BJbmRleF8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmNoYXJ0V2lkdGhfID0gMDsKKyAgICAgIHRoaXMuY2hhcnRIZWlnaHRfID0gMDsKKyAgICAgIHRoaXMuZGltZW5zaW9uc0hhdmVDaGFuZ2VkXyA9IHRydWU7CisKKyAgICAgIHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMubmluZXR5RmlmdGhQZXJjZW50aWxlQ29zdF8gPSAwOworICAgICAgdGhpcy50b3RhbE9wQ29zdF8gPSAwOworCisgICAgICB0aGlzLmNoYXJ0Xy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25DbGlja18uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLmNoYXJ0Xy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMpKTsKKworICAgICAgdGhpcy51c2VQZXJjZW50aWxlU2NhbGVfID0gZmFsc2U7CisgICAgICB0aGlzLnVzZVBlcmNlbnRpbGVTY2FsZUNoZWNrYm94XyA9IHRyLnVpLmIuY3JlYXRlQ2hlY2tCb3goCisgICAgICAgICAgdGhpcywgJ3VzZVBlcmNlbnRpbGVTY2FsZScsCisgICAgICAgICAgJ1BpY3R1cmVPcHNDaGFydFZpZXcudXNlUGVyY2VudGlsZVNjYWxlJywgZmFsc2UsCisgICAgICAgICAgJ0xpbWl0IHRvIDk1JS1pbGUnKTsKKyAgICAgIHRoaXMudXNlUGVyY2VudGlsZVNjYWxlQ2hlY2tib3hfLmNsYXNzTGlzdC5hZGQoJ3VzZS1wZXJjZW50aWxlLXNjYWxlJyk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMudXNlUGVyY2VudGlsZVNjYWxlQ2hlY2tib3hfKTsKKyAgICB9LAorCisgICAgZ2V0IGRpbWVuc2lvbnNIYXZlQ2hhbmdlZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmRpbWVuc2lvbnNIYXZlQ2hhbmdlZF87CisgICAgfSwKKworICAgIHNldCBkaW1lbnNpb25zSGF2ZUNoYW5nZWQoZGltZW5zaW9uc0hhdmVDaGFuZ2VkKSB7CisgICAgICB0aGlzLmRpbWVuc2lvbnNIYXZlQ2hhbmdlZF8gPSBkaW1lbnNpb25zSGF2ZUNoYW5nZWQ7CisgICAgfSwKKworICAgIGdldCB1c2VQZXJjZW50aWxlU2NhbGUoKSB7CisgICAgICByZXR1cm4gdGhpcy51c2VQZXJjZW50aWxlU2NhbGVfOworICAgIH0sCisKKyAgICBzZXQgdXNlUGVyY2VudGlsZVNjYWxlKHVzZVBlcmNlbnRpbGVTY2FsZSkgeworICAgICAgdGhpcy51c2VQZXJjZW50aWxlU2NhbGVfID0gdXNlUGVyY2VudGlsZVNjYWxlOworICAgICAgdGhpcy5kcmF3Q2hhcnRDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IG51bU9wcygpIHsKKyAgICAgIHJldHVybiB0aGlzLm9wQ29zdHNfLmxlbmd0aDsKKyAgICB9LAorCisgICAgZ2V0IHNlbGVjdGVkT3BJbmRleCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3BJbmRleF87CisgICAgfSwKKworICAgIHNldCBzZWxlY3RlZE9wSW5kZXgoc2VsZWN0ZWRPcEluZGV4KSB7CisgICAgICBpZiAoc2VsZWN0ZWRPcEluZGV4IDwgMCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGluZGV4Jyk7CisgICAgICBpZiAoc2VsZWN0ZWRPcEluZGV4ID49IHRoaXMubnVtT3BzKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5kZXgnKTsKKworICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXhfID0gc2VsZWN0ZWRPcEluZGV4OworICAgIH0sCisKKyAgICBnZXQgcGljdHVyZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnBpY3R1cmVfOworICAgIH0sCisKKyAgICBzZXQgcGljdHVyZShwaWN0dXJlKSB7CisgICAgICB0aGlzLnBpY3R1cmVfID0gcGljdHVyZTsKKyAgICAgIHRoaXMucGljdHVyZU9wc18gPSBwaWN0dXJlLnRhZ09wc1dpdGhUaW1pbmdzKHBpY3R1cmUuZ2V0T3BzKCkpOworICAgICAgdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMucHJvY2Vzc1BpY3R1cmVEYXRhXygpOworICAgICAgdGhpcy5kaW1lbnNpb25zSGF2ZUNoYW5nZWQgPSB0cnVlOworICAgIH0sCisKKyAgICBwcm9jZXNzUGljdHVyZURhdGFfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLnBpY3R1cmVPcHNfID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHRvdGFsT3BDb3N0ID0gMDsKKworICAgICAgLy8gVGFrZSBhIGNvcHkgb2YgdGhlIHBpY3R1cmUgb3BzIGRhdGEgZm9yIHNvcnRpbmcuCisgICAgICB0aGlzLm9wQ29zdHNfID0gdGhpcy5waWN0dXJlT3BzXy5tYXAoZnVuY3Rpb24ob3ApIHsKKyAgICAgICAgdG90YWxPcENvc3QgKz0gb3AuY21kX3RpbWU7CisgICAgICAgIHJldHVybiBvcC5jbWRfdGltZTsKKyAgICAgIH0pOworICAgICAgdGhpcy5vcENvc3RzXy5zb3J0KCk7CisKKyAgICAgIHZhciBuaW5ldHlGaWZ0aFBlcmNlbnRpbGVDb3N0SW5kZXggPSBNYXRoLmZsb29yKAorICAgICAgICAgIHRoaXMub3BDb3N0c18ubGVuZ3RoICogMC45NSk7CisgICAgICB0aGlzLm5pbmV0eUZpZnRoUGVyY2VudGlsZUNvc3RfID0KKyAgICAgICAgICB0aGlzLm9wQ29zdHNfW25pbmV0eUZpZnRoUGVyY2VudGlsZUNvc3RJbmRleF07CisgICAgICB0aGlzLm1heENvc3RfID0gdGhpcy5vcENvc3RzX1t0aGlzLm9wQ29zdHNfLmxlbmd0aCAtIDFdOworCisgICAgICB0aGlzLnRvdGFsT3BDb3N0XyA9IHRvdGFsT3BDb3N0OworICAgIH0sCisKKyAgICBleHRyYWN0QmFySW5kZXhfOiBmdW5jdGlvbihlKSB7CisKKyAgICAgIHZhciBpbmRleCA9IHVuZGVmaW5lZDsKKworICAgICAgaWYgKHRoaXMucGljdHVyZU9wc18gPT09IHVuZGVmaW5lZCB8fAorICAgICAgICAgIHRoaXMucGljdHVyZU9wc18ubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm4gaW5kZXg7CisKKyAgICAgIHZhciB4ID0gZS5vZmZzZXRYOworICAgICAgdmFyIHkgPSBlLm9mZnNldFk7CisKKyAgICAgIHZhciB0b3RhbEJhcldpZHRoID0gKEJBUl9XSURUSCArIEJBUl9QQURESU5HKSAqIHRoaXMucGljdHVyZU9wc18ubGVuZ3RoOworCisgICAgICB2YXIgY2hhcnRMZWZ0ID0gQ0hBUlRfUEFERElOR19MRUZUOworICAgICAgdmFyIGNoYXJ0VG9wID0gMDsKKyAgICAgIHZhciBjaGFydEJvdHRvbSA9IHRoaXMuY2hhcnRIZWlnaHRfIC0gQ0hBUlRfUEFERElOR19CT1RUT007CisgICAgICB2YXIgY2hhcnRSaWdodCA9IGNoYXJ0TGVmdCArIHRvdGFsQmFyV2lkdGg7CisKKyAgICAgIGlmICh4IDwgY2hhcnRMZWZ0IHx8IHggPiBjaGFydFJpZ2h0IHx8IHkgPCBjaGFydFRvcCB8fCB5ID4gY2hhcnRCb3R0b20pCisgICAgICAgIHJldHVybiBpbmRleDsKKworICAgICAgaW5kZXggPSBNYXRoLmZsb29yKCh4IC0gY2hhcnRMZWZ0KSAvIHRvdGFsQmFyV2lkdGggKgorICAgICAgICAgIHRoaXMucGljdHVyZU9wc18ubGVuZ3RoKTsKKworICAgICAgaW5kZXggPSB0ci5iLmNsYW1wKGluZGV4LCAwLCB0aGlzLnBpY3R1cmVPcHNfLmxlbmd0aCAtIDEpOworCisgICAgICByZXR1cm4gaW5kZXg7CisgICAgfSwKKworICAgIG9uQ2xpY2tfOiBmdW5jdGlvbihlKSB7CisKKyAgICAgIHZhciBiYXJDbGlja2VkID0gdGhpcy5leHRyYWN0QmFySW5kZXhfKGUpOworCisgICAgICBpZiAoYmFyQ2xpY2tlZCA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIElmIHdlIGNsaWNrIG9uIHRoZSBhbHJlYWR5IHNlbGVjdGVkIGl0ZW0gd2Ugc2hvdWxkIGRlc2VsZWN0LgorICAgICAgaWYgKGJhckNsaWNrZWQgPT09IHRoaXMuc2VsZWN0ZWRPcEluZGV4KQorICAgICAgICB0aGlzLnNlbGVjdGVkT3BJbmRleCA9IHVuZGVmaW5lZDsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXggPSBiYXJDbGlja2VkOworCisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisKKyAgICAgIHRyLmIuZGlzcGF0Y2hTaW1wbGVFdmVudCh0aGlzLCAnc2VsZWN0aW9uLWNoYW5nZWQnLCBmYWxzZSk7CisgICAgfSwKKworICAgIG9uTW91c2VNb3ZlXzogZnVuY3Rpb24oZSkgeworCisgICAgICB2YXIgbGFzdEJhck1vdXNlT3ZlclRhcmdldCA9IHRoaXMuY3VycmVudEJhck1vdXNlT3ZlclRhcmdldF87CisgICAgICB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfID0gdGhpcy5leHRyYWN0QmFySW5kZXhfKGUpOworCisgICAgICBpZiAodGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9PT0gbGFzdEJhck1vdXNlT3ZlclRhcmdldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLmRyYXdDaGFydENvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBzY3JvbGxTZWxlY3RlZEl0ZW1JbnRvVmlld0lmTmVjZXNzYXJ5OiBmdW5jdGlvbigpIHsKKworICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcEluZGV4ID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHdpZHRoID0gdGhpcy5vZmZzZXRXaWR0aDsKKyAgICAgIHZhciBsZWZ0ID0gdGhpcy5zY3JvbGxMZWZ0OworICAgICAgdmFyIHJpZ2h0ID0gbGVmdCArIHdpZHRoOworICAgICAgdmFyIHRhcmdldExlZnQgPSBDSEFSVF9QQURESU5HX0xFRlQgKworICAgICAgICAgIChCQVJfV0lEVEggKyBCQVJfUEFERElORykgKiB0aGlzLnNlbGVjdGVkT3BJbmRleDsKKworICAgICAgaWYgKHRhcmdldExlZnQgPiBsZWZ0ICYmIHRhcmdldExlZnQgPCByaWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLnNjcm9sbExlZnQgPSAodGFyZ2V0TGVmdCAtIHdpZHRoICogMC41KTsKKyAgICB9LAorCisgICAgdXBkYXRlQ2hhcnRDb250ZW50czogZnVuY3Rpb24oKSB7CisKKyAgICAgIGlmICh0aGlzLmRpbWVuc2lvbnNIYXZlQ2hhbmdlZCkKKyAgICAgICAgdGhpcy51cGRhdGVDaGFydERpbWVuc2lvbnNfKCk7CisKKyAgICAgIHRoaXMuZHJhd0NoYXJ0Q29udGVudHNfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNoYXJ0RGltZW5zaW9uc186IGZ1bmN0aW9uKCkgeworCisgICAgICBpZiAoIXRoaXMucGljdHVyZU9wc18pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHdpZHRoID0gQ0hBUlRfUEFERElOR19MRUZUICsgQ0hBUlRfUEFERElOR19SSUdIVCArCisgICAgICAgICAgKChCQVJfV0lEVEggKyBCQVJfUEFERElORykgKiB0aGlzLnBpY3R1cmVPcHNfLmxlbmd0aCk7CisKKyAgICAgIGlmICh3aWR0aCA8IHRoaXMub2Zmc2V0V2lkdGgpCisgICAgICAgIHdpZHRoID0gdGhpcy5vZmZzZXRXaWR0aDsKKworICAgICAgLy8gQWxsb3cgdGhlIGVsZW1lbnQgdG8gYmUgaXRzIG5hdHVyYWwgc2l6ZSBhcyBzZXQgYnkgZmxleGJveCwgdGhlbiBsb2NrCisgICAgICAvLyB0aGUgd2lkdGggaW4gYmVmb3JlIHdlIHNldCB0aGUgd2lkdGggb2YgdGhlIGNhbnZhcy4KKyAgICAgIHRoaXMuY2hhcnRXaWR0aF8gPSB3aWR0aDsKKyAgICAgIHRoaXMuY2hhcnRIZWlnaHRfID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7CisKKyAgICAgIC8vIFNjYWxlIHVwIHRoZSBjYW52YXMgYWNjb3JkaW5nIHRvIHRoZSBkZXZpY2VQaXhlbFJhdGlvLCB0aGVuIHJlZHVjZSBpdAorICAgICAgLy8gZG93biBhZ2FpbiB2aWEgQ1NTLiBGaW5hbGx5IHdlIGFwcGx5IGEgc2NhbGUgdG8gdGhlIGNhbnZhcyBzbyB0aGF0CisgICAgICAvLyB0aGluZ3MgYXJlIGRyYXduIGF0IHRoZSBjb3JyZWN0IHNpemUuCisgICAgICB0aGlzLmNoYXJ0Xy53aWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gKiB0aGlzLmNoYXJ0U2NhbGVfOworICAgICAgdGhpcy5jaGFydF8uaGVpZ2h0ID0gdGhpcy5jaGFydEhlaWdodF8gKiB0aGlzLmNoYXJ0U2NhbGVfOworCisgICAgICB0aGlzLmNoYXJ0Xy5zdHlsZS53aWR0aCA9IHRoaXMuY2hhcnRXaWR0aF8gKyAncHgnOworICAgICAgdGhpcy5jaGFydF8uc3R5bGUuaGVpZ2h0ID0gdGhpcy5jaGFydEhlaWdodF8gKyAncHgnOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zY2FsZSh0aGlzLmNoYXJ0U2NhbGVfLCB0aGlzLmNoYXJ0U2NhbGVfKTsKKworICAgICAgdGhpcy5kaW1lbnNpb25zSGF2ZUNoYW5nZWQgPSBmYWxzZTsKKyAgICB9LAorCisgICAgZHJhd0NoYXJ0Q29udGVudHNfOiBmdW5jdGlvbigpIHsKKworICAgICAgdGhpcy5jbGVhckNoYXJ0Q29udGVudHNfKCk7CisKKyAgICAgIGlmICh0aGlzLnBpY3R1cmVPcHNfID09PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICB0aGlzLnBpY3R1cmVPcHNfLmxlbmd0aCA9PT0gMCB8fAorICAgICAgICAgIHRoaXMucGljdHVyZU9wc19bMF0uY21kX3RpbWUgPT09IHVuZGVmaW5lZCkgeworCisgICAgICAgIHRoaXMuc2hvd05vVGltaW5nRGF0YU1lc3NhZ2VfKCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdGhpcy5kcmF3U2VsZWN0aW9uXygpOworICAgICAgdGhpcy5kcmF3QmFyc18oKTsKKyAgICAgIHRoaXMuZHJhd0NoYXJ0QXhlc18oKTsKKyAgICAgIHRoaXMuZHJhd0xpbmVzQXRUaWNrTWFya3NfKCk7CisgICAgICB0aGlzLmRyYXdMaW5lQXRCb3R0b21PZkNoYXJ0XygpOworCisgICAgICBpZiAodGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuZHJhd1Rvb2x0aXBfKCk7CisgICAgfSwKKworICAgIGRyYXdTZWxlY3Rpb25fOiBmdW5jdGlvbigpIHsKKworICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcEluZGV4ID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHdpZHRoID0gKEJBUl9XSURUSCArIEJBUl9QQURESU5HKSAqIHRoaXMuc2VsZWN0ZWRPcEluZGV4OworICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gJ3JnYigyMjMsIDIzNSwgMjMwKSc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsUmVjdChDSEFSVF9QQURESU5HX0xFRlQsIENIQVJUX1BBRERJTkdfVE9QLAorICAgICAgICAgIHdpZHRoLCB0aGlzLmNoYXJ0SGVpZ2h0XyAtIENIQVJUX1BBRERJTkdfVE9QIC0gQ0hBUlRfUEFERElOR19CT1RUT00pOworICAgIH0sCisKKyAgICBkcmF3Q2hhcnRBeGVzXzogZnVuY3Rpb24oKSB7CisKKyAgICAgIHZhciBtaW4gPSB0aGlzLm9wQ29zdHNfWzBdOworICAgICAgdmFyIG1heCA9IHRoaXMub3BDb3N0c19bdGhpcy5vcENvc3RzXy5sZW5ndGggLSAxXTsKKyAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmNoYXJ0SGVpZ2h0XyAtIEFYSVNfUEFERElOR19UT1AgLSBBWElTX1BBRERJTkdfQk9UVE9NOworCisgICAgICB2YXIgdGlja1lJbnRlcnZhbCA9IGhlaWdodCAvIChWRVJUSUNBTF9USUNLUyAtIDEpOworICAgICAgdmFyIHRpY2tZUG9zaXRpb24gPSAwOworICAgICAgdmFyIHRpY2tWYWxJbnRlcnZhbCA9IChtYXggLSBtaW4pIC8gKFZFUlRJQ0FMX1RJQ0tTIC0gMSk7CisgICAgICB2YXIgdGlja1ZhbCA9IDA7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjMzMzJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZVN0eWxlID0gJyM3NzcnOworICAgICAgdGhpcy5jaGFydEN0eF8uc2F2ZSgpOworCisgICAgICAvLyBUcmFuc2xhdGUgaGFsZiBhIHBpeGVsIHRvIGF2b2lkIGJsdXJyeSBsaW5lcy4KKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRyYW5zbGF0ZSgwLjUsIDAuNSk7CisKKyAgICAgIC8vIFNpZGVzLgorICAgICAgdGhpcy5jaGFydEN0eF8uYmVnaW5QYXRoKCk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5tb3ZlVG8oQVhJU19QQURESU5HX0xFRlQsIEFYSVNfUEFERElOR19UT1ApOworICAgICAgdGhpcy5jaGFydEN0eF8ubGluZVRvKEFYSVNfUEFERElOR19MRUZULCB0aGlzLmNoYXJ0SGVpZ2h0XyAtCisgICAgICAgICAgQVhJU19QQURESU5HX0JPVFRPTSk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5saW5lVG8odGhpcy5jaGFydFdpZHRoXyAtIEFYSVNfUEFERElOR19SSUdIVCwKKyAgICAgICAgICB0aGlzLmNoYXJ0SGVpZ2h0XyAtIEFYSVNfUEFERElOR19CT1RUT00pOworICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlKCk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5jbG9zZVBhdGgoKTsKKworICAgICAgLy8gWS1heGlzIHRpY2tzLgorICAgICAgdGhpcy5jaGFydEN0eF8udHJhbnNsYXRlKEFYSVNfUEFERElOR19MRUZULCBBWElTX1BBRERJTkdfVE9QKTsKKworICAgICAgdGhpcy5jaGFydEN0eF8uZm9udCA9ICcxMHB4IEFyaWFsJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRBbGlnbiA9ICdyaWdodCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJzsKKworICAgICAgdGhpcy5jaGFydEN0eF8uYmVnaW5QYXRoKCk7CisgICAgICBmb3IgKHZhciB0ID0gMDsgdCA8IFZFUlRJQ0FMX1RJQ0tTOyB0KyspIHsKKworICAgICAgICB0aWNrWVBvc2l0aW9uID0gTWF0aC5yb3VuZCh0ICogdGlja1lJbnRlcnZhbCk7CisgICAgICAgIHRpY2tWYWwgPSAobWF4IC0gdCAqIHRpY2tWYWxJbnRlcnZhbCkudG9GaXhlZCg0KTsKKworICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5tb3ZlVG8oMCwgdGlja1lQb3NpdGlvbik7CisgICAgICAgIHRoaXMuY2hhcnRDdHhfLmxpbmVUbygtQVhJU19USUNLX1NJWkUsIHRpY2tZUG9zaXRpb24pOworICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsVGV4dCh0aWNrVmFsLAorICAgICAgICAgICAgLUFYSVNfVElDS19TSVpFIC0gQVhJU19MQUJFTF9QQURESU5HLCB0aWNrWVBvc2l0aW9uKTsKKworICAgICAgfQorCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2UoKTsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmNsb3NlUGF0aCgpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5yZXN0b3JlKCk7CisgICAgfSwKKworICAgIGRyYXdMaW5lc0F0VGlja01hcmtzXzogZnVuY3Rpb24oKSB7CisKKyAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmNoYXJ0SGVpZ2h0XyAtIEFYSVNfUEFERElOR19UT1AgLSBBWElTX1BBRERJTkdfQk9UVE9NOworICAgICAgdmFyIHdpZHRoID0gdGhpcy5jaGFydFdpZHRoXyAtIEFYSVNfUEFERElOR19MRUZUIC0gQVhJU19QQURESU5HX1JJR0hUOworICAgICAgdmFyIHRpY2tZSW50ZXJ2YWwgPSBoZWlnaHQgLyAoVkVSVElDQUxfVElDS1MgLSAxKTsKKyAgICAgIHZhciB0aWNrWVBvc2l0aW9uID0gMDsKKworICAgICAgdGhpcy5jaGFydEN0eF8uc2F2ZSgpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy50cmFuc2xhdGUoQVhJU19QQURESU5HX0xFRlQgKyAwLjUsIEFYSVNfUEFERElOR19UT1AgKyAwLjUpOworICAgICAgdGhpcy5jaGFydEN0eF8uYmVnaW5QYXRoKCk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zdHJva2VTdHlsZSA9ICdyZ2JhKDAsMCwwLDAuMDUpJzsKKworICAgICAgZm9yICh2YXIgdCA9IDA7IHQgPCBWRVJUSUNBTF9USUNLUzsgdCsrKSB7CisgICAgICAgIHRpY2tZUG9zaXRpb24gPSBNYXRoLnJvdW5kKHQgKiB0aWNrWUludGVydmFsKTsKKworICAgICAgICB0aGlzLmNoYXJ0Q3R4Xy5tb3ZlVG8oMCwgdGlja1lQb3NpdGlvbik7CisgICAgICAgIHRoaXMuY2hhcnRDdHhfLmxpbmVUbyh3aWR0aCwgdGlja1lQb3NpdGlvbik7CisgICAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZSgpOworICAgICAgfQorCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5yZXN0b3JlKCk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5jbG9zZVBhdGgoKTsKKyAgICB9LAorCisgICAgZHJhd0xpbmVBdEJvdHRvbU9mQ2hhcnRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZVN0eWxlID0gJyNBQUEnOworICAgICAgdGhpcy5jaGFydEN0eF8uYmVnaW5QYXRoKCk7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5tb3ZlVG8oMCwgdGhpcy5jaGFydEhlaWdodF8gLSAwLjUpOworICAgICAgdGhpcy5jaGFydEN0eF8ubGluZVRvKHRoaXMuY2hhcnRXaWR0aF8sIHRoaXMuY2hhcnRIZWlnaHRfIC0gMC41KTsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZSgpOworICAgICAgdGhpcy5jaGFydEN0eF8uY2xvc2VQYXRoKCk7CisgICAgfSwKKworICAgIGRyYXdUb29sdGlwXzogZnVuY3Rpb24oKSB7CisKKyAgICAgIHZhciB0b29sdGlwRGF0YSA9IHRoaXMucGljdHVyZU9wc19bdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0X107CisgICAgICB2YXIgdG9vbHRpcFRpdGxlID0gdG9vbHRpcERhdGEuY21kX3N0cmluZzsKKyAgICAgIHZhciB0b29sdGlwVGltZSA9IHRvb2x0aXBEYXRhLmNtZF90aW1lLnRvRml4ZWQoNCk7CisgICAgICB2YXIgdG9vbFRpcFRpbWVQZXJjZW50YWdlID0KKyAgICAgICAgICAoKHRvb2x0aXBEYXRhLmNtZF90aW1lIC8gdGhpcy50b3RhbE9wQ29zdF8pICogMTAwKS50b0ZpeGVkKDIpOworCisgICAgICB2YXIgdG9vbHRpcFdpZHRoID0gMTIwOworICAgICAgdmFyIHRvb2x0aXBIZWlnaHQgPSA0MDsKKyAgICAgIHZhciBjaGFydElubmVyV2lkdGggPSB0aGlzLmNoYXJ0V2lkdGhfIC0gQ0hBUlRfUEFERElOR19SSUdIVCAtCisgICAgICAgICAgQ0hBUlRfUEFERElOR19MRUZUOworICAgICAgdmFyIGJhcldpZHRoID0gQkFSX1dJRFRIICsgQkFSX1BBRERJTkc7CisgICAgICB2YXIgdG9vbHRpcE9mZnNldCA9IE1hdGgucm91bmQoKHRvb2x0aXBXaWR0aCAtIGJhcldpZHRoKSAqIDAuNSk7CisKKyAgICAgIHZhciBsZWZ0ID0gQ0hBUlRfUEFERElOR19MRUZUICsgdGhpcy5jdXJyZW50QmFyTW91c2VPdmVyVGFyZ2V0XyAqCisgICAgICAgICAgYmFyV2lkdGggLSB0b29sdGlwT2Zmc2V0OworICAgICAgdmFyIHRvcCA9IE1hdGgucm91bmQoKHRoaXMuY2hhcnRIZWlnaHRfIC0gdG9vbHRpcEhlaWdodCkgKiAwLjUpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zYXZlKCk7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnNoYWRvd09mZnNldFggPSAwOworICAgICAgdGhpcy5jaGFydEN0eF8uc2hhZG93T2Zmc2V0WSA9IDU7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zaGFkb3dCbHVyID0gNDsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnNoYWRvd0NvbG9yID0gJ3JnYmEoMCwwLDAsMC40KSc7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnN0cm9rZVN0eWxlID0gJyM4ODgnOworICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gJyNFRUUnOworICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFJlY3QobGVmdCwgdG9wLCB0b29sdGlwV2lkdGgsIHRvb2x0aXBIZWlnaHQpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5zaGFkb3dDb2xvciA9ICd0cmFuc3BhcmVudCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy50cmFuc2xhdGUoMC41LCAwLjUpOworICAgICAgdGhpcy5jaGFydEN0eF8uc3Ryb2tlUmVjdChsZWZ0LCB0b3AsIHRvb2x0aXBXaWR0aCwgdG9vbHRpcEhlaWdodCk7CisKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnJlc3RvcmUoKTsKKworICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFN0eWxlID0gJyMyMjInOworICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEFsaWduID0gJ2xlZnQnOworICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEJhc2VsaW5lID0gJ3RvcCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5mb250ID0gJzgwMCAxMnB4IEFyaWFsJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxUZXh0KHRvb2x0aXBUaXRsZSwgbGVmdCArIDgsIHRvcCArIDgpOworCisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsU3R5bGUgPSAnIzU1NSc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5mb250ID0gJzQwMCBpdGFsaWMgMTBweCBBcmlhbCc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsVGV4dCh0b29sdGlwVGltZSArICdtcyAoJyArCisgICAgICAgICAgdG9vbFRpcFRpbWVQZXJjZW50YWdlICsgJyUpJywgbGVmdCArIDgsIHRvcCArIDIyKTsKKyAgICB9LAorCisgICAgZHJhd0JhcnNfOiBmdW5jdGlvbigpIHsKKworICAgICAgdmFyIG9wOworICAgICAgdmFyIG9wQ29sb3IgPSAwOworICAgICAgdmFyIG9wSGVpZ2h0ID0gMDsKKyAgICAgIHZhciBvcFdpZHRoID0gQkFSX1dJRFRIICsgQkFSX1BBRERJTkc7CisgICAgICB2YXIgb3BIb3ZlciA9IGZhbHNlOworCisgICAgICB2YXIgYm90dG9tID0gdGhpcy5jaGFydEhlaWdodF8gLSBDSEFSVF9QQURESU5HX0JPVFRPTTsKKyAgICAgIHZhciBtYXhIZWlnaHQgPSB0aGlzLmNoYXJ0SGVpZ2h0XyAtIENIQVJUX1BBRERJTkdfQk9UVE9NIC0KKyAgICAgICAgICBDSEFSVF9QQURESU5HX1RPUDsKKworICAgICAgdmFyIG1heFZhbHVlOworICAgICAgaWYgKHRoaXMudXNlUGVyY2VudGlsZVNjYWxlKQorICAgICAgICBtYXhWYWx1ZSA9IHRoaXMubmluZXR5RmlmdGhQZXJjZW50aWxlQ29zdF87CisgICAgICBlbHNlCisgICAgICAgIG1heFZhbHVlID0gdGhpcy5tYXhDb3N0XzsKKworICAgICAgZm9yICh2YXIgYiA9IDA7IGIgPCB0aGlzLnBpY3R1cmVPcHNfLmxlbmd0aDsgYisrKSB7CisKKyAgICAgICAgb3AgPSB0aGlzLnBpY3R1cmVPcHNfW2JdOworICAgICAgICBvcEhlaWdodCA9IE1hdGgucm91bmQoCisgICAgICAgICAgICAob3AuY21kX3RpbWUgLyBtYXhWYWx1ZSkgKiBtYXhIZWlnaHQpOworICAgICAgICBvcEhlaWdodCA9IE1hdGgubWF4KG9wSGVpZ2h0LCAxKTsKKyAgICAgICAgb3BIb3ZlciA9IChiID09PSB0aGlzLmN1cnJlbnRCYXJNb3VzZU92ZXJUYXJnZXRfKTsKKyAgICAgICAgb3BDb2xvciA9IHRoaXMuZ2V0T3BDb2xvcl8ob3AuY21kX3N0cmluZywgb3BIb3Zlcik7CisKKyAgICAgICAgaWYgKGIgPT09IHRoaXMuc2VsZWN0ZWRPcEluZGV4KQorICAgICAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjRkZGRjAwJzsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9IG9wQ29sb3I7CisKKyAgICAgICAgdGhpcy5jaGFydEN0eF8uZmlsbFJlY3QoQ0hBUlRfUEFERElOR19MRUZUICsgYiAqIG9wV2lkdGgsCisgICAgICAgICAgICBib3R0b20gLSBvcEhlaWdodCwgQkFSX1dJRFRILCBvcEhlaWdodCk7CisgICAgICB9CisKKyAgICB9LAorCisgICAgZ2V0T3BDb2xvcl86IGZ1bmN0aW9uKG9wTmFtZSwgaG92ZXIpIHsKKworICAgICAgdmFyIGNoYXJhY3RlcnMgPSBvcE5hbWUuc3BsaXQoJycpOworCisgICAgICB2YXIgaHVlID0gY2hhcmFjdGVycy5yZWR1Y2UodGhpcy5yZWR1Y2VOYW1lVG9IdWUsIDApICUgMzYwOworICAgICAgdmFyIHNhdHVyYXRpb24gPSAzMDsKKyAgICAgIHZhciBsaWdodG5lc3MgPSBob3ZlciA/ICc3NSUnIDogJzUwJSc7CisKKyAgICAgIHJldHVybiAnaHNsKCcgKyBodWUgKyAnLCAnICsgc2F0dXJhdGlvbiArICclLCAnICsgbGlnaHRuZXNzICsgJyUpJzsKKyAgICB9LAorCisgICAgcmVkdWNlTmFtZVRvSHVlOiBmdW5jdGlvbihwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUsIGluZGV4LCBhcnJheSkgeworICAgICAgLy8gR2V0IHRoZSBjaGFyIGNvZGUgYW5kIGFwcGx5IGEgbWFnaWMgYWRqdXN0bWVudCB2YWx1ZSBzbyB3ZSBnZXQKKyAgICAgIC8vIHByZXR0eSBjb2xvcnMgZnJvbSBhcm91bmQgdGhlIHJhaW5ib3cuCisgICAgICByZXR1cm4gTWF0aC5yb3VuZChwcmV2aW91c1ZhbHVlICsgY3VycmVudFZhbHVlLmNoYXJDb2RlQXQoMCkgKgorICAgICAgICAgIEhVRV9DSEFSX0NPREVfQURKVVNUTUVOVCk7CisgICAgfSwKKworICAgIGNsZWFyQ2hhcnRDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jaGFydEN0eF8uY2xlYXJSZWN0KDAsIDAsIHRoaXMuY2hhcnRXaWR0aF8sIHRoaXMuY2hhcnRIZWlnaHRfKTsKKyAgICB9LAorCisgICAgc2hvd05vVGltaW5nRGF0YU1lc3NhZ2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZvbnQgPSAnODAwIGl0YWxpYyAxNHB4IEFyaWFsJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLmZpbGxTdHlsZSA9ICcjMzMzJzsKKyAgICAgIHRoaXMuY2hhcnRDdHhfLnRleHRBbGlnbiA9ICdjZW50ZXInOworICAgICAgdGhpcy5jaGFydEN0eF8udGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7CisgICAgICB0aGlzLmNoYXJ0Q3R4Xy5maWxsVGV4dCgnTm8gdGltaW5nIGRhdGEgYXZhaWxhYmxlLicsCisgICAgICAgICAgdGhpcy5jaGFydFdpZHRoXyAqIDAuNSwgdGhpcy5jaGFydEhlaWdodF8gKiAwLjUpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFBpY3R1cmVPcHNDaGFydFZpZXc6IFBpY3R1cmVPcHNDaGFydFZpZXcKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkZDc3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3LmNzcwpAQCAtMCwwICsxLDYyIEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorICovCisKKyogKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtbGlzdC12aWV3IHsKKyAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JleTsKKyAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1saXN0LXZpZXcgPiAueC1saXN0LXZpZXcgeworICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOworICBvdmVyZmxvdzogYXV0bzsKK30KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtbGlzdC12aWV3ID4gLngtbGlzdC12aWV3IC5saXN0LWl0ZW0geworICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU1NTsKKyAgZm9udC1zaXplOiBzbWFsbDsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIHBhZGRpbmctYm90dG9tOiA1cHg7CisgIHBhZGRpbmctbGVmdDogNXB4OworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1saXN0LXZpZXcgPgorICAgICAgLngtbGlzdC12aWV3IC5saXN0LWl0ZW06aG92ZXIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOworICBjdXJzb3I6IHBvaW50ZXI7Cit9CisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtb3BzLWxpc3QtdmlldyA+CisgICAgICAueC1saXN0LXZpZXcgLmxpc3QtaXRlbSA+ICogeworICBjb2xvcjogIzc3NzsKKyAgZm9udC1zaXplOiB4LXNtYWxsOworICBmb250LXdlaWdodDogbm9ybWFsOworICBtYXJnaW4tbGVmdDogMWVtOworICBtYXgtd2lkdGg6IDMwMHB4OyAvKiBmb3JjZSBsb25nIHN0cmluZ3MgdG8gd3JhcCAqLworfQorCisqIC9kZWVwLyB0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLW9wcy1saXN0LXZpZXcgPgorICAgICAgLngtbGlzdC12aWV3IC5saXN0LWl0ZW0gPiAuZWxlbWVudEluZm8geworICBjb2xvcjogcHVycGxlOworICBmb250LXNpemU6IHNtYWxsOworICBmb250LXdlaWdodDogYm9sZDsKK30KKworKiAvZGVlcC8gdHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1vcHMtbGlzdC12aWV3ID4KKyAgICAgIC54LWxpc3QtdmlldyAubGlzdC1pdGVtID4gLnRpbWUgeworICBjb2xvcjogcmdiKDEzNiwgMCwgMCk7Cit9CisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtb3BzLWxpc3QtdmlldyAueC1saXN0LXZpZXc6Zm9jdXMgPgorICAgICAgLmxpc3QtaXRlbVtiZWZvcmVTZWxlY3Rpb25dIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MSwgMjE3LCAyMDIpOworICBvdXRsaW5lOiAxcHggZG90dGVkIHJnYmEoMCwgMCwgMCwgMC4xKTsKKyAgb3V0bGluZS1vZmZzZXQ6IDA7Cit9CisKKyogL2RlZXAvIHRyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtb3BzLWxpc3QtdmlldyAueC1saXN0LXZpZXcgPgorICAgICAgLmxpc3QtaXRlbVtiZWZvcmVTZWxlY3Rpb25dIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMywgMTk5LCAxNjUpOworfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ODc5N2QKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV9vcHNfbGlzdF92aWV3Lmh0bWwKQEAgLTAsMCArMSwyMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlldy5jc3MiPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvY29uc3RhbnRzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2xpc3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9zZWxlY3Rpb24uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmNocm9tZS5jYycsIGZ1bmN0aW9uKCkgeworICB2YXIgT1BTX1RJTUlOR19JVEVSQVRJT05TID0gMzsgLy8gSXRlcmF0aW9ucyB0byBhdmVyYWdlIG9wIHRpbWluZyBpbmZvIG92ZXIuCisgIHZhciBBTk5PVEFUSU9OID0gJ0NvbW1lbnQnOworICB2YXIgQkVHSU5fQU5OT1RBVElPTiA9ICdCZWdpbkNvbW1lbnRHcm91cCc7CisgIHZhciBFTkRfQU5OT1RBVElPTiA9ICdFbmRDb21tZW50R3JvdXAnOworICB2YXIgQU5OT1RBVElPTl9JRCA9ICdJRDogJzsKKyAgdmFyIEFOTk9UQVRJT05fQ0xBU1MgPSAnQ0xBU1M6ICc7CisgIHZhciBBTk5PVEFUSU9OX1RBRyA9ICdUQUc6ICc7CisKKyAgdmFyIGNvbnN0YW50cyA9IHRyLmUuY2MuY29uc3RhbnRzOworCisgIC8qKgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBQaWN0dXJlT3BzTGlzdFZpZXcgPQorICAgICAgdHIudWkuYi5kZWZpbmUoJ3RyLXVpLWUtY2hyb21lLWNjLXBpY3R1cmUtb3BzLWxpc3QtdmlldycpOworCisgIFBpY3R1cmVPcHNMaXN0Vmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBIVE1MVW5rbm93bkVsZW1lbnQucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5vcHNMaXN0XyA9IG5ldyB0ci51aS5iLkxpc3RWaWV3KCk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMub3BzTGlzdF8pOworCisgICAgICB0aGlzLnNlbGVjdGVkT3BfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXhfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5vcHNMaXN0Xy5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICdzZWxlY3Rpb24tY2hhbmdlZCcsIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpKTsKKworICAgICAgdGhpcy5waWN0dXJlXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IHBpY3R1cmUoKSB7CisgICAgICByZXR1cm4gdGhpcy5waWN0dXJlXzsKKyAgICB9LAorCisgICAgc2V0IHBpY3R1cmUocGljdHVyZSkgeworICAgICAgdGhpcy5waWN0dXJlXyA9IHBpY3R1cmU7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5vcHNMaXN0Xy5jbGVhcigpOworCisgICAgICBpZiAoIXRoaXMucGljdHVyZV8pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIG9wcyA9IHRoaXMucGljdHVyZV8uZ2V0T3BzKCk7CisgICAgICBpZiAoIW9wcykKKyAgICAgICAgcmV0dXJuOworCisgICAgICBvcHMgPSB0aGlzLnBpY3R1cmVfLnRhZ09wc1dpdGhUaW1pbmdzKG9wcyk7CisKKyAgICAgIG9wcyA9IHRoaXMub3BzVGFnZ2VkV2l0aEFubm90YXRpb25zXyhvcHMpOworCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgb3AgPSBvcHNbaV07CisgICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGl0ZW0ub3BJbmRleCA9IG9wLm9wSW5kZXg7CisgICAgICAgIGl0ZW0udGV4dENvbnRlbnQgPSBpICsgJykgJyArIG9wLmNtZF9zdHJpbmc7CisKKyAgICAgICAgLy8gRGlzcGxheSB0aGUgZWxlbWVudCBpbmZvIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3AsIGlmIGF2YWlsYWJsZS4KKyAgICAgICAgaWYgKG9wLmVsZW1lbnRJbmZvLnRhZyB8fCBvcC5lbGVtZW50SW5mby5pZCB8fCBvcC5lbGVtZW50SW5mby5jbGFzcykgeworICAgICAgICAgIHZhciBlbGVtZW50SW5mbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAgICBlbGVtZW50SW5mby5jbGFzc0xpc3QuYWRkKCdlbGVtZW50SW5mbycpOworICAgICAgICAgIHZhciB0YWcgPSBvcC5lbGVtZW50SW5mby50YWcgPyBvcC5lbGVtZW50SW5mby50YWcgOiAndW5rbm93bic7CisgICAgICAgICAgdmFyIGlkID0gb3AuZWxlbWVudEluZm8uaWQgPyAnaWQ9JyArIG9wLmVsZW1lbnRJbmZvLmlkIDogdW5kZWZpbmVkOworICAgICAgICAgIHZhciBjbGFzc05hbWUgPSBvcC5lbGVtZW50SW5mby5jbGFzcyA/ICdjbGFzcz0nICsKKyAgICAgICAgICAgICAgb3AuZWxlbWVudEluZm8uY2xhc3MgOiB1bmRlZmluZWQ7CisgICAgICAgICAgZWxlbWVudEluZm8udGV4dENvbnRlbnQgPQorICAgICAgICAgICAgICAnPCcgKyB0YWcgKyAoaWQgPyAnICcgOiAnJykgKworICAgICAgICAgICAgICAoaWQgPyBpZCA6ICcnKSArIChjbGFzc05hbWUgPyAnICcgOiAnJykgKworICAgICAgICAgICAgICAoY2xhc3NOYW1lID8gY2xhc3NOYW1lIDogJycpICsgJz4nOworICAgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZWxlbWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgLy8gRGlzcGxheSB0aGUgU2tpYSBwYXJhbXMuCisgICAgICAgIC8vIEZJWE1FOiBub3cgdGhhdCB3ZSBoYXZlIHN0cnVjdHVyZWQgZGF0YSwgd2Ugc2hvdWxkIGZvcm1hdCBpdC4KKyAgICAgICAgLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvdHJhY2Utdmlld2VyL2lzc3Vlcy83ODIpCisgICAgICAgIGlmIChvcC5pbmZvLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICB2YXIgaW5mb0l0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICBpbmZvSXRlbS50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KG9wLmluZm8pOworICAgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW5mb0l0ZW0pOworICAgICAgICB9CisKKyAgICAgICAgLy8gRGlzcGxheSB0aGUgb3AgdGltaW5nLCBpZiBhdmFpbGFibGUuCisgICAgICAgIGlmIChvcC5jbWRfdGltZSAmJiBvcC5jbWRfdGltZSA+PSAwLjAwMDEpIHsKKyAgICAgICAgICB2YXIgdGltZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAgICB0aW1lLmNsYXNzTGlzdC5hZGQoJ3RpbWUnKTsKKyAgICAgICAgICB2YXIgcm91bmRlZCA9IG9wLmNtZF90aW1lLnRvRml4ZWQoNCk7CisgICAgICAgICAgdGltZS50ZXh0Q29udGVudCA9ICcoJyArIHJvdW5kZWQgKyAnbXMpJzsKKyAgICAgICAgICBpdGVtLmFwcGVuZENoaWxkKHRpbWUpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5vcHNMaXN0Xy5hcHBlbmRDaGlsZChpdGVtKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgb25TZWxlY3Rpb25DaGFuZ2VkXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIGJlZm9yZVNlbGVjdGVkT3AgPSB0cnVlOworCisgICAgICAvLyBEZXNlbGVjdCBvbiByZS1zZWxlY3Rpb24uCisgICAgICBpZiAodGhpcy5vcHNMaXN0Xy5zZWxlY3RlZEVsZW1lbnQgPT09IHRoaXMuc2VsZWN0ZWRPcF8pIHsKKyAgICAgICAgdGhpcy5vcHNMaXN0Xy5zZWxlY3RlZEVsZW1lbnQgPSB1bmRlZmluZWQ7CisgICAgICAgIGJlZm9yZVNlbGVjdGVkT3AgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXhfID0gdW5kZWZpbmVkOworICAgICAgfQorCisgICAgICB0aGlzLnNlbGVjdGVkT3BfID0gdGhpcy5vcHNMaXN0Xy5zZWxlY3RlZEVsZW1lbnQ7CisKKyAgICAgIC8vIFNldCBzZWxlY3Rpb24gb24gYWxsIHByZXZpb3VzIG9wcy4KKyAgICAgIHZhciBvcHMgPSB0aGlzLm9wc0xpc3RfLmNoaWxkcmVuOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIG9wID0gb3BzW2ldOworICAgICAgICBpZiAob3AgPT09IHRoaXMuc2VsZWN0ZWRPcF8pIHsKKyAgICAgICAgICBiZWZvcmVTZWxlY3RlZE9wID0gZmFsc2U7CisgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wSW5kZXhfID0gb3Aub3BJbmRleDsKKyAgICAgICAgfSBlbHNlIGlmIChiZWZvcmVTZWxlY3RlZE9wKSB7CisgICAgICAgICAgb3Auc2V0QXR0cmlidXRlKCdiZWZvcmVTZWxlY3Rpb24nLCAnYmVmb3JlU2VsZWN0aW9uJyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgb3AucmVtb3ZlQXR0cmlidXRlKCdiZWZvcmVTZWxlY3Rpb24nKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICB0ci5iLmRpc3BhdGNoU2ltcGxlRXZlbnQodGhpcywgJ3NlbGVjdGlvbi1jaGFuZ2VkJywgZmFsc2UpOworICAgIH0sCisKKyAgICBnZXQgbnVtT3BzKCkgeworICAgICAgcmV0dXJuIHRoaXMub3BzTGlzdF8uY2hpbGRyZW4ubGVuZ3RoOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0ZWRPcEluZGV4KCkgeworICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcEluZGV4XzsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGVkT3BJbmRleChzKSB7CisgICAgICB0aGlzLnNlbGVjdGVkT3BJbmRleF8gPSBzOworCisgICAgICBpZiAocyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMub3BzTGlzdF8uc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5zZWxlY3RlZE9wXzsKKyAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKCk7CisgICAgICB9IGVsc2UgeworICAgICAgICBpZiAocyA8IDApIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbmRleCcpOworICAgICAgICBpZiAocyA+PSB0aGlzLm51bU9wcykgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGluZGV4Jyk7CisgICAgICAgIHRoaXMub3BzTGlzdF8uc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5vcHNMaXN0Xy5nZXRFbGVtZW50QnlJbmRleChzICsgMSk7CisgICAgICAgIHRyLnVpLmIuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCh0aGlzLm9wc0xpc3RfLnNlbGVjdGVkRWxlbWVudCk7CisgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFJldHVybiBTa2lhIG9wZXJhdGlvbnMgdGFnZ2VkIGJ5IGFubm90YXRpb24uCisgICAgICoKKyAgICAgKiBUaGUgb3BzIHJldHVybmVkIGZyb20gUGljdHVyZS5nZXRPcHMoKSBjb250YWluIGJvdGggU2tpYSBvcHMgYW5kCisgICAgICogYW5ub3RhdGlvbnMgdGhyZWFkZWQgdG9nZXRoZXIuIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyBhbGwgYW5ub3RhdGlvbnMKKyAgICAgKiBmcm9tIHRoZSBsaXN0IGFuZCB0YWdzIGVhY2ggb3Agd2l0aCB0aGUgYXNzb2NpYXRlZCBhbm5vdGF0aW9ucy4KKyAgICAgKiBBZGRpdGlvbmFsbHksIHRoZSBsYXN0IHt0YWcsIGlkLCBjbGFzc30gaXMgc3RvcmVkIGFzIGVsZW1lbnRJbmZvIG9uCisgICAgICogZWFjaCBvcC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB7QXJyYXl9IG9wcyBBcnJheSBvZiBTa2lhIG9wZXJhdGlvbnMgYW5kIGFubm90YXRpb25zLgorICAgICAqIEByZXR1cm4ge0FycmF5fSBTa2lhIG9wcyB3aGVyZSBvcC5hbm5vdGF0aW9ucyBjb250YWlucyB0aGUgYXNzb2NpYXRlZAorICAgICAqICAgICAgICAgYW5ub3RhdGlvbnMgZm9yIGEgZ2l2ZW4gb3AuCisgICAgICovCisgICAgb3BzVGFnZ2VkV2l0aEFubm90YXRpb25zXzogZnVuY3Rpb24ob3BzKSB7CisgICAgICAvLyBUaGlzIGFsZ29yaXRobSB3b3JrcyBieSB3YWxraW5nIGFsbCB0aGUgb3BzIGFuZCBwdXNoaW5nIGFueQorICAgICAgLy8gYW5ub3RhdGlvbnMgb250byBhIHN0YWNrLiBXaGVuIGEgbm9uLWFubm90YXRpb24gb3AgaXMgZm91bmQsIHRoZQorICAgICAgLy8gYW5ub3RhdGlvbnMgc3RhY2sgaXMgdHJhdmVyc2VkIGFuZCBzdG9yZWQgd2l0aCB0aGUgb3AuCisgICAgICB2YXIgYW5ub3RhdGlvbkdyb3VwcyA9IG5ldyBBcnJheSgpOworICAgICAgdmFyIG9wc1dpdGhvdXRBbm5vdGF0aW9ucyA9IG5ldyBBcnJheSgpOworICAgICAgZm9yICh2YXIgb3BJbmRleCA9IDA7IG9wSW5kZXggPCBvcHMubGVuZ3RoOyBvcEluZGV4KyspIHsKKyAgICAgICAgdmFyIG9wID0gb3BzW29wSW5kZXhdOworICAgICAgICBvcC5vcEluZGV4ID0gb3BJbmRleDsKKyAgICAgICAgc3dpdGNoIChvcC5jbWRfc3RyaW5nKSB7CisgICAgICAgICAgY2FzZSBCRUdJTl9BTk5PVEFUSU9OOgorICAgICAgICAgICAgYW5ub3RhdGlvbkdyb3Vwcy5wdXNoKG5ldyBBcnJheSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgRU5EX0FOTk9UQVRJT046CisgICAgICAgICAgICBhbm5vdGF0aW9uR3JvdXBzLnBvcCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSBBTk5PVEFUSU9OOgorICAgICAgICAgICAgYW5ub3RhdGlvbkdyb3Vwc1thbm5vdGF0aW9uR3JvdXBzLmxlbmd0aCAtIDFdLnB1c2gob3ApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHZhciBhbm5vdGF0aW9ucyA9IG5ldyBBcnJheSgpOworICAgICAgICAgICAgdmFyIGVsZW1lbnRJbmZvID0ge307CisgICAgICAgICAgICBhbm5vdGF0aW9uR3JvdXBzLmZvckVhY2goZnVuY3Rpb24oYW5ub3RhdGlvbkdyb3VwKSB7CisgICAgICAgICAgICAgIGVsZW1lbnRJbmZvID0ge307CisgICAgICAgICAgICAgIGFubm90YXRpb25Hcm91cC5mb3JFYWNoKGZ1bmN0aW9uKGFubm90YXRpb24pIHsKKyAgICAgICAgICAgICAgICBhbm5vdGF0aW9uLmluZm8uZm9yRWFjaChmdW5jdGlvbihpbmZvKSB7CisgICAgICAgICAgICAgICAgICBpZiAoaW5mby5pbmRleE9mKEFOTk9UQVRJT05fVEFHKSAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudEluZm8udGFnID0gaW5mby5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmluZGV4T2YoQU5OT1RBVElPTl9UQUcpICsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFOTk9UQVRJT05fVEFHLmxlbmd0aCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGluZm8uaW5kZXhPZihBTk5PVEFUSU9OX0lEKSAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudEluZm8uaWQgPSBpbmZvLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uaW5kZXhPZihBTk5PVEFUSU9OX0lEKSArCisgICAgICAgICAgICAgICAgICAgICAgICBBTk5PVEFUSU9OX0lELmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpbmZvLmluZGV4T2YoQU5OT1RBVElPTl9DTEFTUykgIT0gLTEpCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRJbmZvLmNsYXNzID0gaW5mby5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmluZGV4T2YoQU5OT1RBVElPTl9DTEFTUykgKworICAgICAgICAgICAgICAgICAgICAgICAgQU5OT1RBVElPTl9DTEFTUy5sZW5ndGgpOworCisgICAgICAgICAgICAgICAgICBhbm5vdGF0aW9ucy5wdXNoKGluZm8pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgb3AuYW5ub3RhdGlvbnMgPSBhbm5vdGF0aW9uczsKKyAgICAgICAgICAgIG9wLmVsZW1lbnRJbmZvID0gZWxlbWVudEluZm87CisgICAgICAgICAgICBvcHNXaXRob3V0QW5ub3RhdGlvbnMucHVzaChvcCk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgcmV0dXJuIG9wc1dpdGhvdXRBbm5vdGF0aW9uczsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQaWN0dXJlT3BzTGlzdFZpZXc6IFBpY3R1cmVPcHNMaXN0VmlldworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfb3BzX2xpc3Rfdmlld190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE1ODBjYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX29wc19saXN0X3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQgc3JjPSIvZXh0cmFzL2Nocm9tZS9jYy9sYXllcl90cmVlX2hvc3RfaW1wbF90ZXN0X2RhdGEuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFBpY3R1cmVPcHNMaXN0VmlldyA9IHRyLnVpLmUuY2hyb21lLmNjLlBpY3R1cmVPcHNMaXN0VmlldzsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIGlmICghdHIuZS5jYy5QaWN0dXJlU25hcHNob3QuQ2FuUmFzdGVyaXplKCkpCisgICAgICByZXR1cm47CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKKyAgICB2YXIgcCA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyhtLnByb2Nlc3NlcylbMF07CisKKyAgICB2YXIgaW5zdGFuY2UgPSBwLm9iamVjdHMuZ2V0QWxsSW5zdGFuY2VzTmFtZWQoJ2NjOjpQaWN0dXJlJylbMF07CisgICAgdmFyIHNuYXBzaG90ID0gaW5zdGFuY2Uuc25hcHNob3RzWzBdOworCisgICAgdmFyIHZpZXcgPSBuZXcgUGljdHVyZU9wc0xpc3RWaWV3KCk7CisgICAgdmlldy5waWN0dXJlID0gc25hcHNob3Q7CisgICAgYXNzZXJ0LmVxdWFsKHZpZXcub3BzTGlzdF8uY2hpbGRyZW4ubGVuZ3RoLCAxNDIpOworICB9KTsKKworICB0ZXN0KCdzZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICBpZiAoIXRyLmUuY2MuUGljdHVyZVNuYXBzaG90LkNhblJhc3Rlcml6ZSgpKQorICAgICAgcmV0dXJuOworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKGdfY2F0TFRISUV2ZW50cyk7CisgICAgdmFyIHAgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXMobS5wcm9jZXNzZXMpWzBdOworCisgICAgdmFyIGluc3RhbmNlID0gcC5vYmplY3RzLmdldEFsbEluc3RhbmNlc05hbWVkKCdjYzo6UGljdHVyZScpWzBdOworICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLnNuYXBzaG90c1swXTsKKworICAgIHZhciB2aWV3ID0gbmV3IFBpY3R1cmVPcHNMaXN0VmlldygpOworICAgIHZpZXcucGljdHVyZSA9IHNuYXBzaG90OworICAgIHZhciBkaWRTZWxlY3Rpb25DaGFuZ2UgPSAwOworICAgIHZpZXcuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uLWNoYW5nZWQnLCBmdW5jdGlvbigpIHsKKyAgICAgIGRpZFNlbGVjdGlvbkNoYW5nZSA9IHRydWU7CisgICAgfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoZGlkU2VsZWN0aW9uQ2hhbmdlKTsKKyAgICB2aWV3Lm9wc0xpc3RfLnNlbGVjdGVkRWxlbWVudCA9IHZpZXcub3BzTGlzdF8uY2hpbGRyZW5bM107CisgICAgYXNzZXJ0LmlzVHJ1ZShkaWRTZWxlY3Rpb25DaGFuZ2UpOworICB9KTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfdmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY4OTNmMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuY3NzCkBAIC0wLDAgKzEsOSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyAqLworCisqIC9kZWVwLyAudHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1zbmFwc2hvdC12aWV3IHsKKyAgLXdlYmtpdC1mbGV4OiAwIDEgYXV0byAhaW1wb3J0YW50OworICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcGljdHVyZV92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQzMjkxYwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9waWN0dXJlX3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2dlbmVyaWNfb2JqZWN0X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL29iamVjdF9zbmFwc2hvdF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3BpY3R1cmVfZGVidWdnZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmNocm9tZS5jYycsIGZ1bmN0aW9uKCkgeworICAvKgorICAgKiBEaXNwbGF5cyBhIHBpY3R1cmUgc25hcHNob3QgaW4gYSBodW1hbiByZWFkYWJsZSBmb3JtLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBQaWN0dXJlU25hcHNob3RWaWV3ID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAndHItdWktZS1jaHJvbWUtY2MtcGljdHVyZS1zbmFwc2hvdC12aWV3JywKKyAgICAgIHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldyk7CisKKyAgUGljdHVyZVNuYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0ci11aS1lLWNocm9tZS1jYy1waWN0dXJlLXNuYXBzaG90LXZpZXcnKTsKKyAgICAgIHRoaXMucGljdHVyZURlYnVnZ2VyXyA9IG5ldyB0ci51aS5lLmNocm9tZS5jYy5QaWN0dXJlRGVidWdnZXIoKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5waWN0dXJlRGVidWdnZXJfKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMub2JqZWN0U25hcHNob3RfICYmIHRoaXMucGljdHVyZURlYnVnZ2VyXykKKyAgICAgICAgdGhpcy5waWN0dXJlRGVidWdnZXJfLnBpY3R1cmUgPSB0aGlzLm9iamVjdFNuYXBzaG90XzsKKyAgICB9CisgIH07CisKKyAgdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAorICAgICAgUGljdHVyZVNuYXBzaG90VmlldywKKyAgICAgIHsKKyAgICAgICAgdHlwZU5hbWVzOiBbJ2NjOjpQaWN0dXJlJywgJ2NjOjpMYXllcmVkUGljdHVyZSddLAorICAgICAgICBzaG93SW5zdGFuY2VzOiBmYWxzZQorICAgICAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBQaWN0dXJlU25hcHNob3RWaWV3OiBQaWN0dXJlU25hcHNob3RWaWV3CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3NlbGVjdGlvbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3NlbGVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkN2UwOGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uLmh0bWwKQEAgLTAsMCArMSwxMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9zaW5nbGVfZXZlbnRfc3ViX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2Mvc2VsZWN0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLmNocm9tZS5jYycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBSYXN0ZXJUYXNrU2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgIHRyLnVpLmUuY2hyb21lLmNjLlNlbGVjdGlvbi5jYWxsKHRoaXMpOworICAgIHZhciB3aHlTdXBwb3J0ZWQgPSBSYXN0ZXJUYXNrU2VsZWN0aW9uLndoeVN1cG9ydGVkKHNlbGVjdGlvbik7CisgICAgaWYgKCF3aHlTdXBwb3J0ZWQub2spCisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWw6ICcgKyB3aHlTdXBwb3J0ZWQud2h5KTsKKyAgICB0aGlzLnNsaWNlc18gPSB0ci5iLmFzQXJyYXkoc2VsZWN0aW9uKTsKKyAgICB0aGlzLnRpbGVzXyA9IHRoaXMuc2xpY2VzXy5tYXAoZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgIHZhciB0aWxlID0gdHIuZS5jYy5nZXRUaWxlRnJvbVJhc3RlclRhc2tTbGljZShzbGljZSk7CisgICAgICBpZiAodGlsZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBkdWUgdG8gLnN1cHBvcnRzIGNoZWNrLicpOworICAgICAgcmV0dXJuIHRpbGU7CisgICAgfSk7CisgIH0KKyAgUmFzdGVyVGFza1NlbGVjdGlvbi53aHlTdXBvcnRlZCA9IGZ1bmN0aW9uKHNlbGVjdGlvbikgeworICAgIGlmICghKHNlbGVjdGlvbiBpbnN0YW5jZW9mIHRyLm1vZGVsLkV2ZW50U2V0KSkKKyAgICAgIHJldHVybiB7b2s6IGZhbHNlLCB3aHk6ICdNdXN0IGJlIHNlbGVjdGlvbid9OworCisgICAgaWYgKHNlbGVjdGlvbi5sZW5ndGggPT09IDApCisgICAgICByZXR1cm4ge29rOiBmYWxzZSwgd2h5OiAnU2VsZWN0aW9uIG11c3QgYmUgbm9uIGVtcHR5J307CisKKyAgICB2YXIgdGlsZTA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3Rpb24ubGVuZ3RoOyBpKyspIHsKKyAgICAgIHZhciBldmVudCA9IHNlbGVjdGlvbltpXTsKKyAgICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuU2xpY2UpKQorICAgICAgICByZXR1cm4ge29rOiBmYWxzZSwgd2h5OiAnTm90IGEgc2xpY2UnfTsKKworICAgICAgdmFyIHRpbGUgPSB0ci5lLmNjLmdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKHNlbGVjdGlvbltpXSk7CisgICAgICBpZiAodGlsZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4ge29rOiBmYWxzZSwgd2h5OiAnTm8gdGlsZSBmb3VuZCd9OworCisgICAgICBpZiAoaSA9PT0gMCkgeworICAgICAgICB0aWxlMCA9IHRpbGU7CisgICAgICB9IGVsc2UgeworICAgICAgICBpZiAodGlsZS5jb250YWluaW5nU25hcHNob3QgIT0gdGlsZTAuY29udGFpbmluZ1NuYXBzaG90KSB7CisgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIG9rOiBmYWxzZSwKKyAgICAgICAgICAgIHdoeTogJ1Jhc3RlciB0YXNrcyBhcmUgZnJvbSBkaWZmZXJlbnQgY29tcG9zaXRvciBpbnN0YW5jZXMnCisgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICByZXR1cm4ge29rOiB0cnVlfTsKKyAgfQorCisgIFJhc3RlclRhc2tTZWxlY3Rpb24uc3VwcG9ydHMgPSBmdW5jdGlvbihzZWxlY3Rpb24pIHsKKyAgICByZXR1cm4gUmFzdGVyVGFza1NlbGVjdGlvbi53aHlTdXBvcnRlZChzZWxlY3Rpb24pLm9rOworICB9OworCisgIFJhc3RlclRhc2tTZWxlY3Rpb24ucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkuZS5jaHJvbWUuY2MuU2VsZWN0aW9uLnByb3RvdHlwZSwKKworICAgIGdldCBzcGVjaWNpZml0eSgpIHsKKyAgICAgIHJldHVybiAzOworICAgIH0sCisKKyAgICBnZXQgYXNzb2NpYXRlZExheWVySWQoKSB7CisgICAgICB2YXIgdGlsZTAgPSB0aGlzLnRpbGVzX1swXTsKKyAgICAgIHZhciBhbGxTYW1lTGF5ZXIgPSB0aGlzLnRpbGVzXy5ldmVyeShmdW5jdGlvbih0aWxlKSB7CisgICAgICAgIHRpbGUubGF5ZXJJZCA9PSB0aWxlMC5sYXllcklkOworICAgICAgfSk7CisgICAgICBpZiAoYWxsU2FtZUxheWVyKQorICAgICAgICByZXR1cm4gdGlsZTAubGF5ZXJJZDsKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBleHRyYUhpZ2hsaWdodHNCeUxheWVySWQoKSB7CisgICAgICB2YXIgaGlnaGxpZ2h0cyA9IHt9OworICAgICAgdGhpcy50aWxlc18uZm9yRWFjaChmdW5jdGlvbih0aWxlLCBpKSB7CisgICAgICAgIGlmIChoaWdobGlnaHRzW3RpbGUubGF5ZXJJZF0gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBoaWdobGlnaHRzW3RpbGUubGF5ZXJJZF0gPSBbXTsKKyAgICAgICAgdmFyIHNsaWNlID0gdGhpcy5zbGljZXNfW2ldOworICAgICAgICBoaWdobGlnaHRzW3RpbGUubGF5ZXJJZF0ucHVzaCh7CisgICAgICAgICAgY29sb3JLZXk6IHNsaWNlLnRpdGxlLAorICAgICAgICAgIHJlY3Q6IHRpbGUubGF5ZXJSZWN0CisgICAgICAgIH0pOworICAgICAgfSwgdGhpcyk7CisgICAgICByZXR1cm4gaGlnaGxpZ2h0czsKKyAgICB9LAorCisgICAgY3JlYXRlQW5hbHlzaXM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgdGhpcy5zbGljZXNfLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgc2VsLnB1c2goc2xpY2UpOworICAgICAgfSk7CisKKyAgICAgIHZhciBhbmFseXNpczsKKyAgICAgIGlmIChzZWwubGVuZ3RoID09IDEpCisgICAgICAgIGFuYWx5c2lzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1zaW5nbGUtZXZlbnQtc3ViLXZpZXcnKTsKKyAgICAgIGVsc2UKKyAgICAgICAgYW5hbHlzaXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLWNocm9tZS1jYy1yYXN0ZXItdGFzay12aWV3Jyk7CisgICAgICBhbmFseXNpcy5zZWxlY3Rpb24gPSBzZWw7CisgICAgICByZXR1cm4gYW5hbHlzaXM7CisgICAgfSwKKworICAgIGZpbmRFcXVpdmFsZW50OiBmdW5jdGlvbihsdGhpKSB7CisgICAgICAvLyBSYXN0ZXIgdGFza3MgYXJlIG9ubHkgdmFsaWQgaW4gb25lIExUSEkuCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICAvLyBSYXN0ZXJUYXNrU2VsZWN0aW9uIHNwZWNpZmljIHN0dWZmIGZvbGxvd3MuCisgICAgZ2V0IGNvbnRhaW5pbmdTbmFwc2hvdCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnRpbGVzX1swXS5jb250YWluaW5nU25hcHNob3Q7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgUmFzdGVyVGFza1NlbGVjdGlvbjogUmFzdGVyVGFza1NlbGVjdGlvbgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza19zZWxlY3Rpb25fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3NlbGVjdGlvbl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVlZjY4NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza19zZWxlY3Rpb25fdGVzdC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvaW1wb3J0ZXIvdHJhY2VfZXZlbnRfaW1wb3J0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfc2VsZWN0aW9uLmh0bWwiPgorCis8c2NyaXB0IHNyYz0iL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdGVzdF9kYXRhLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2Jhc2ljJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIHZhciByYXN0ZXJUYXNrcyA9IHAudGhyZWFkc1sxXS5zbGljZUdyb3VwLnNsaWNlcy5maWx0ZXIoZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgIHJldHVybiBzbGljZS50aXRsZSA9PSAnUmFzdGVyVGFzayc7CisgICAgfSk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgc2VsZWN0aW9uLnB1c2gocmFzdGVyVGFza3NbMF0pOworICAgIHNlbGVjdGlvbi5wdXNoKHJhc3RlclRhc2tzWzFdKTsKKworICAgIGFzc2VydC5pc1RydWUodHIudWkuZS5jaHJvbWUuY2MuUmFzdGVyVGFza1NlbGVjdGlvbi5zdXBwb3J0cyhzZWxlY3Rpb24pKTsKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLlJhc3RlclRhc2tTZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICB2YXIgaGlnaGxpZ2h0cyA9IHNlbGVjdGlvbi5leHRyYUhpZ2hsaWdodHNCeUxheWVySWQ7CisgICAgYXNzZXJ0LmVxdWFsKHRyLmIuZGljdGlvbmFyeUxlbmd0aChoaWdobGlnaHRzKSwgMSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza192aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4MTY3OTkKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfdmlldy5odG1sCkBAIC0wLDAgKzEsMjE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFzay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc19zdWJfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9zZWxlY3Rpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbi5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS1lLWNocm9tZS1jYy1yYXN0ZXItdGFzay12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICB9CisgICAgI2hlYWRpbmcgeworICAgICAgZmxleDogMCAwIGF1dG87CisgICAgfQorICAgIDwvc3R5bGU+CisKKyAgICA8ZGl2IGlkPSJoZWFkaW5nIj4KKyAgICAgIFJhc3Rlcml6YXRpb24gY29zdHMgaW4KKyAgICAgIDx0ci11aS1hLWFuYWx5c2lzLWxpbmsgaWQ9ImxpbmsiPjwvdHItdWktYS1hbmFseXNpcy1saW5rPgorICAgIDwvZGl2PgorICAgIDx0ci11aS1iLXRhYmxlIGlkPSJjb250ZW50Ij48L3RyLXVpLWItdGFibGU+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29sdW1uc186IGZ1bmN0aW9uKGhhZENwdUR1cmF0aW9ucykgeworICAgICAgdmFyIHRpbWVTcGFuQ29uZmlnID0ge293bmVyRG9jdW1lbnQ6IHRoaXMub3duZXJEb2N1bWVudH07CisKKyAgICAgIHZhciBjb2x1bW5zID0gWworICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdMYXllcicsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeworICAgICAgICAgICAgaWYgKHJvdy5pc1RvdGFscykKKyAgICAgICAgICAgICAgcmV0dXJuICdUb3RhbHMnOworICAgICAgICAgICAgaWYgKHJvdy5sYXllcikgeworICAgICAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgICAgICAgIGxpbmtFbC5zZXRTZWxlY3Rpb25BbmRDb250ZW50KAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB0ci51aS5lLmNocm9tZS5jYy5MYXllclNlbGVjdGlvbihjb3N0cy5sYXllcik7CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnTGF5ZXIgJyArIHJvdy5sYXllcklkKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGxpbmtFbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiAnTGF5ZXIgJyArIHJvdy5sYXllcklkOworICAgICAgICAgICAgfQorICAgICAgICAgIH0sCisgICAgICAgICAgd2lkdGg6ICcyNTBweCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnTnVtIFRpbGVzJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cubnVtVGlsZXM7IH0sCisgICAgICAgICAgY21wOiBmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhLm51bVRpbGVzIC0gYi5udW1UaWxlczsgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdOdW0gQW5hbHlzaXMgVGFza3MnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5udW1BbmFseXNpc1Rhc2tzOyB9LAorICAgICAgICAgIGNtcDogZnVuY3Rpb24oYSwgYikgeworICAgICAgICAgICAgcmV0dXJuIGEubnVtQW5hbHlzaXNUYXNrcyAtIGIubnVtQW5hbHlzaXNUYXNrczsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ051bSBSYXN0ZXIgVGFza3MnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5udW1SYXN0ZXJUYXNrczsgfSwKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEubnVtUmFzdGVyVGFza3MgLSBiLm51bVJhc3RlclRhc2tzOyB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ1dhbGwgRHVyYXRpb24gKG1zKScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHJvdykgeworICAgICAgICAgICAgcmV0dXJuIHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVEdXJhdGlvblNwYW4oCisgICAgICAgICAgICAgICAgcm93LmR1cmF0aW9uLCB0aW1lU3BhbkNvbmZpZyk7CisgICAgICAgICAgfSwKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEuZHVyYXRpb24gLSBiLmR1cmF0aW9uOyB9CisgICAgICAgIH0KKyAgICAgIF07CisKKyAgICAgIGlmIChoYWRDcHVEdXJhdGlvbnMpIHsKKyAgICAgICAgY29sdW1ucy5wdXNoKHsKKyAgICAgICAgICB0aXRsZTogJ0NQVSBEdXJhdGlvbiAobXMpJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgICByZXR1cm4gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3BhbigKKyAgICAgICAgICAgICAgICByb3cuZHVyYXRpb24sIHRpbWVTcGFuQ29uZmlnKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIGNtcDogZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS5jcHVEdXJhdGlvbiAtIGIuY3B1RHVyYXRpb247IH0KKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIHZhciBjb2xXaWR0aFBlcmNlbnRhZ2U7CisgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT0gMSkKKyAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gJzEwMCUnOworICAgICAgZWxzZQorICAgICAgICBjb2xXaWR0aFBlcmNlbnRhZ2UgPSAoMTAwIC8gKGNvbHVtbnMubGVuZ3RoIC0gMSkpLnRvRml4ZWQoMykgKyAnJSc7CisKKyAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykKKyAgICAgICAgY29sdW1uc1tpXS53aWR0aCA9IGNvbFdpZHRoUGVyY2VudGFnZTsKKworICAgICAgdGhpcy4kLmNvbnRlbnQudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICAgIHRoaXMuJC5jb250ZW50LnNvcnRDb2x1bW5JbmRleCA9IGNvbHVtbnMubGVuZ3RoIC0gMTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC5jb250ZW50OworCisgICAgICBpZiAodGhpcy5zZWxlY3Rpb25fLmxlbmd0aCA9PT0gMCkgeworICAgICAgICB0aGlzLiQubGluay5zZXRTZWxlY3Rpb25BbmRDb250ZW50KHVuZGVmaW5lZCwgJycpOworICAgICAgICB0YWJsZS50YWJsZVJvd3MgPSBbXTsKKyAgICAgICAgdGFibGUuZm9vdGVyUm93cyA9IFtdOworICAgICAgICB0YWJsZS5yZWJ1aWxkKCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgLy8gTFRISSBsaW5rLgorICAgICAgdmFyIGx0aGkgPSB0ci5lLmNjLmdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKAorICAgICAgICAgIHRoaXMuc2VsZWN0aW9uX1swXSkuY29udGFpbmluZ1NuYXBzaG90OworICAgICAgdGhpcy4kLmxpbmsuc2V0U2VsZWN0aW9uQW5kQ29udGVudChmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KGx0aGkpOworICAgICAgfSwgbHRoaS51c2VyRnJpZW5kbHlOYW1lKTsKKworICAgICAgLy8gR2V0IGNvc3RzIGJ5IGxheWVyLgorICAgICAgdmFyIGNvc3RzQnlMYXllcklkID0ge307CisgICAgICBmdW5jdGlvbiBnZXRDdXJyZW50Q29zdHNGb3JMYXllcklkKHRpbGUpIHsKKyAgICAgICAgdmFyIGxheWVySWQgPSB0aWxlLmxheWVySWQ7CisgICAgICAgIHZhciBsdGhpID0gdGlsZS5jb250YWluaW5nU25hcHNob3Q7CisgICAgICAgIHZhciBsYXllcjsKKyAgICAgICAgaWYgKGx0aGkuYWN0aXZlVHJlZSkKKyAgICAgICAgICBsYXllciA9IGx0aGkuYWN0aXZlVHJlZS5maW5kTGF5ZXJXaXRoSWQobGF5ZXJJZCk7CisgICAgICAgIGlmIChsYXllciA9PT0gdW5kZWZpbmVkICYmIGx0aGkucGVuZGluZ1RyZWUpCisgICAgICAgICAgbGF5ZXIgPSBsdGhpLnBlbmRpbmdUcmVlLmZpbmRMYXllcldpdGhJZChsYXllcklkKTsKKyAgICAgICAgaWYgKGNvc3RzQnlMYXllcklkW2xheWVySWRdID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICBjb3N0c0J5TGF5ZXJJZFtsYXllcklkXSA9IHsKKyAgICAgICAgICAgIGxheWVySWQ6IGxheWVySWQsCisgICAgICAgICAgICBsYXllcjogbGF5ZXIsCisgICAgICAgICAgICBudW1UaWxlczogMCwKKyAgICAgICAgICAgIG51bUFuYWx5c2lzVGFza3M6IDAsCisgICAgICAgICAgICBudW1SYXN0ZXJUYXNrczogMCwKKyAgICAgICAgICAgIGR1cmF0aW9uOiAwLAorICAgICAgICAgICAgY3B1RHVyYXRpb246IDAKKyAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBjb3N0c0J5TGF5ZXJJZFtsYXllcklkXTsKKyAgICAgIH0KKworICAgICAgdmFyIHRvdGFsRHVyYXRpb24gPSAwOworICAgICAgdmFyIHRvdGFsQ3B1RHVyYXRpb24gPSAwOworICAgICAgdmFyIHRvdGFsTnVtQW5hbHl6ZVRhc2tzID0gMDsKKyAgICAgIHZhciB0b3RhbE51bVJhc3Rlcml6ZVRhc2tzID0gMDsKKyAgICAgIHZhciBoYWRDcHVEdXJhdGlvbnMgPSBmYWxzZTsKKworICAgICAgdmFyIHRpbGVzVGhhdFdlSGF2ZVNlZW4gPSB7fTsKKworICAgICAgdGhpcy5zZWxlY3Rpb25fLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgdmFyIHRpbGUgPSB0ci5lLmNjLmdldFRpbGVGcm9tUmFzdGVyVGFza1NsaWNlKHNsaWNlKTsKKyAgICAgICAgdmFyIGN1ckNvc3RzID0gZ2V0Q3VycmVudENvc3RzRm9yTGF5ZXJJZCh0aWxlKTsKKworICAgICAgICBpZiAoIXRpbGVzVGhhdFdlSGF2ZVNlZW5bdGlsZS5vYmplY3RJbnN0YW5jZS5pZF0pIHsKKyAgICAgICAgICB0aWxlc1RoYXRXZUhhdmVTZWVuW3RpbGUub2JqZWN0SW5zdGFuY2UuaWRdID0gdHJ1ZTsKKyAgICAgICAgICBjdXJDb3N0cy5udW1UaWxlcyArPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRyLmUuY2MuaXNTbGljZURvaW5nQW5hbHlzaXMoc2xpY2UpKSB7CisgICAgICAgICAgY3VyQ29zdHMubnVtQW5hbHlzaXNUYXNrcyArPSAxOworICAgICAgICAgIHRvdGFsTnVtQW5hbHl6ZVRhc2tzICs9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgY3VyQ29zdHMubnVtUmFzdGVyVGFza3MgKz0gMTsKKyAgICAgICAgICB0b3RhbE51bVJhc3Rlcml6ZVRhc2tzICs9IDE7CisgICAgICAgIH0KKyAgICAgICAgY3VyQ29zdHMuZHVyYXRpb24gKz0gc2xpY2UuZHVyYXRpb247CisgICAgICAgIHRvdGFsRHVyYXRpb24gKz0gc2xpY2UuZHVyYXRpb247CisgICAgICAgIGlmIChzbGljZS5jcHVEdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgY3VyQ29zdHMuY3B1RHVyYXRpb24gKz0gc2xpY2UuY3B1RHVyYXRpb247CisgICAgICAgICAgdG90YWxDcHVEdXJhdGlvbiArPSBzbGljZS5jcHVEdXJhdGlvbjsKKyAgICAgICAgICBoYWRDcHVEdXJhdGlvbnMgPSB0cnVlOworICAgICAgICB9CisgICAgICB9KTsKKworICAgICAgLy8gQXBwbHkgdG8gdGhlIHRhYmxlLgorICAgICAgdGhpcy51cGRhdGVDb2x1bW5zXyhoYWRDcHVEdXJhdGlvbnMpOworICAgICAgdGFibGUudGFibGVSb3dzID0gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKGNvc3RzQnlMYXllcklkKTsKKyAgICAgIHRhYmxlLnJlYnVpbGQoKTsKKworICAgICAgLy8gRm9vdGVyLgorICAgICAgdGFibGUuZm9vdGVyUm93cyA9IFsKKyAgICAgICAgeworICAgICAgICAgIGlzVG90YWxzOiB0cnVlLAorICAgICAgICAgIG51bVRpbGVzOiB0ci5iLmRpY3Rpb25hcnlMZW5ndGgodGlsZXNUaGF0V2VIYXZlU2VlbiksCisgICAgICAgICAgbnVtQW5hbHlzaXNUYXNrczogdG90YWxOdW1BbmFseXplVGFza3MsCisgICAgICAgICAgbnVtUmFzdGVyVGFza3M6IHRvdGFsTnVtUmFzdGVyaXplVGFza3MsCisgICAgICAgICAgZHVyYXRpb246IHRvdGFsRHVyYXRpb24sCisgICAgICAgICAgY3B1RHVyYXRpb246IHRvdGFsQ3B1RHVyYXRpb24KKyAgICAgICAgfQorICAgICAgXTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXdfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3Jhc3Rlcl90YXNrX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNmFjNWIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfdmlld190ZXN0Lmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9ldmVudF90YXJnZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvYnJ1c2hpbmdfc3RhdGVfY29udHJvbGxlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvbGF5ZXJfdHJlZV9ob3N0X2ltcGxfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9jYy9yYXN0ZXJfdGFza19zZWxlY3Rpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9jaHJvbWUvY2MvcmFzdGVyX3Rhc2tfdmlldy5odG1sIj4KKworPHNjcmlwdCBzcmM9Ii9leHRyYXMvY2hyb21lL2NjL2xheWVyX3RyZWVfaG9zdF9pbXBsX3Rlc3RfZGF0YS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBjcmVhdGVTZWxlY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoZ19jYXRMVEhJRXZlbnRzKTsKKyAgICB2YXIgcCA9IG0ucHJvY2Vzc2VzWzFdOworICAgIHZhciByYXN0ZXJUYXNrcyA9IHAudGhyZWFkc1sxXS5zbGljZUdyb3VwLnNsaWNlcy5maWx0ZXIoZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgIHJldHVybiBzbGljZS50aXRsZSA9PSAnUmFzdGVyVGFzaycgfHwgc2xpY2UudGl0bGUgPT0gJ0FuYWx5emVUYXNrJzsKKyAgICB9KTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBzZWxlY3Rpb24ubW9kZWwgPSBtOworCisgICAgc2VsZWN0aW9uLnB1c2gocmFzdGVyVGFza3NbMF0pOworICAgIHNlbGVjdGlvbi5wdXNoKHJhc3RlclRhc2tzWzFdKTsKKyAgICByZXR1cm4gc2VsZWN0aW9uOworICB9CisKKyAgdGVzdCgnYmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VsZWN0aW9uID0gY3JlYXRlU2VsZWN0aW9uKCk7CisgICAgdmFyIHZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLWNocm9tZS1jYy1yYXN0ZXItdGFzay12aWV3Jyk7CisgICAgdmlldy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHZpZXcpOworICB9KTsKKworICB0ZXN0KCdhbmFseXNpc1ZpZXdJbnRlZ3JhdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWxlY3Rpb24gPSBjcmVhdGVTZWxlY3Rpb24oKTsKKworICAgIHZhciB0aW1lbGluZVZpZXcgPSB7bW9kZWw6IHNlbGVjdGlvbi5tb2RlbH07CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0KKyAgICAgICAgbmV3IHRyLmMuQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIodGltZWxpbmVWaWV3KTsKKworICAgIHZhciBhbmFseXNpc0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy12aWV3Jyk7CisgICAgYW5hbHlzaXNFbC5icnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IGJydXNoaW5nU3RhdGVDb250cm9sbGVyOworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmNoYW5nZVNlbGVjdGlvbkZyb21UaW1lbGluZShzZWxlY3Rpb24pOworCisgICAgYXNzZXJ0LmlzRGVmaW5lZChhbmFseXNpc0VsLnF1ZXJ5U2VsZWN0b3IoCisgICAgICAgICd0ci11aS1lLWNocm9tZS1jYy1yYXN0ZXItdGFzay12aWV3JykpOworCisgICAgdmFyIHN2ID0gdHIuYi5maW5kRGVlcEVsZW1lbnRNYXRjaGluZygKKyAgICAgICAgYW5hbHlzaXNFbCwgJ3RyLXVpLWEtbXVsdGktdGhyZWFkLXNsaWNlLXN1Yi12aWV3Jyk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzdi5yZXF1aXJlc1RhbGxWaWV3KTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoYW5hbHlzaXNFbCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9zZWxlY3Rpb24uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy9zZWxlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzgyMDRlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3NlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMzAyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9nZW5lcmljX29iamVjdF92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuY2MnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gU2VsZWN0aW9uKCkgeworICAgIHRoaXMuc2VsZWN0aW9uVG9TZXRJZkNsaWNrZWQgPSB1bmRlZmluZWQ7CisgIH07CisgIFNlbGVjdGlvbi5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogV2hlbiB0d28gdGhpbmdzIGFyZSBwaWNrZWQgaW4gdGhlIFVJLCBvbmUgbXVzdCBvY2Nhc2lvbmFsbHkgdGllLWJyZWFrCisgICAgICogYmV0d2VlbiB0aGVtIHRvIGRlY2lkZSB3aGF0IHdhcyByZWFsbHkgY2xpY2tlZC4gVGhpbmdzIHdpdGggaGlnaGVyCisgICAgICogc3BlY2ljaWZpdHkgd2lsbCB3aW4uCisgICAgICovCisgICAgZ2V0IHNwZWNpY2lmaXR5KCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogSWYgYSBzZWxlY3Rpb24gaXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIGxheWVyLCB0aGVuIHRoaXMgcmV0dXJucyB0aGUKKyAgICAgKiBsYXllcklkIG9mIHRoYXQgbGF5ZXIuIElmIHRoZSBzZWxlY3Rpb24gaXMgbm90IHJlbGF0ZWQgdG8gYSBsYXllciwgZm9yCisgICAgICogZXhhbXBsZSBpZiB0aGUgZGV2aWNlIHZpZXdwb3J0IGlzIHNlbGVjdGVkLCB0aGVuIHRoaXMgcmV0dXJucyB1bmRlZmluZWQuCisgICAgICovCisgICAgZ2V0IGFzc29jaWF0ZWRMYXllcklkKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogSWYgYSBzZWxlY3Rpb24gaXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIHJlbmRlciBwYXNzLCB0aGVuIHRoaXMgcmV0dXJucworICAgICAqIHRoZSBsYXllcklkIG9mIHRoYXQgbGF5ZXIuIElmIHRoZSBzZWxlY3Rpb24gaXMgbm90IHJlbGF0ZWQgdG8gYSBsYXllciwKKyAgICAgKiBmb3IgZXhhbXBsZSBpZiB0aGUgZGV2aWNlIHZpZXdwb3J0IGlzIHNlbGVjdGVkLCB0aGVuIHRoaXMgcmV0dXJucworICAgICAqIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBnZXQgYXNzb2NpYXRlZFJlbmRlclBhc3NJZCgpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworCisgICAgZ2V0IGhpZ2hsaWdodHNCeUxheWVySWQoKSB7CisgICAgICByZXR1cm4ge307CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENhbGxlZCB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgbWFkZSBhY3RpdmUgaW4gdGhlIGxheWVyIHZpZXcuIE11c3QgcmV0dXJuCisgICAgICogYW4gSFRNTEVsZW1lbnQgdGhhdCBleHBsYWlucyB0aGlzIHNlbGVjdGlvbiBpbiBkZXRhaWwuCisgICAgICovCisgICAgY3JlYXRlQW5hbHlzaXM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogU2hvdWxkIHRyeSB0byBjcmVhdGUgdGhlIGVxdWl2YWxlbnQgc2VsZWN0aW9uIGluIHRoZSBwcm92aWRlZCBMVEhJLAorICAgICAqIG9yIHVuZGVmaW5lZCBpZiBpdCBjYW4ndCBiZSBkb25lLgorICAgICAqLworICAgIGZpbmRFcXVpdmFsZW50OiBmdW5jdGlvbihsdGhpKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBSZW5kZXJQYXNzU2VsZWN0aW9uKHJlbmRlclBhc3MsIHJlbmRlclBhc3NJZCkgeworICAgIGlmICghcmVuZGVyUGFzcyB8fCAocmVuZGVyUGFzc0lkID09PSB1bmRlZmluZWQpKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZW5kZXIgcGFzcyAod2l0aCBpZCkgaXMgcmVxdWlyZWQnKTsKKyAgICB0aGlzLnJlbmRlclBhc3NfID0gcmVuZGVyUGFzczsKKyAgICB0aGlzLnJlbmRlclBhc3NJZF8gPSByZW5kZXJQYXNzSWQ7CisgIH0KKworICBSZW5kZXJQYXNzU2VsZWN0aW9uLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFNlbGVjdGlvbi5wcm90b3R5cGUsCisKKyAgICBnZXQgc3BlY2ljaWZpdHkoKSB7CisgICAgICByZXR1cm4gMTsKKyAgICB9LAorCisgICAgZ2V0IGFzc29jaWF0ZWRMYXllcklkKCkgeworICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IGFzc29jaWF0ZWRSZW5kZXJQYXNzSWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5yZW5kZXJQYXNzSWRfOworICAgIH0sCisKKyAgICBnZXQgcmVuZGVyUGFzcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnJlbmRlclBhc3NfOworICAgIH0sCisKKyAgICBjcmVhdGVBbmFseXNpczogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZGF0YVZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICd0ci11aS1hLWdlbmVyaWMtb2JqZWN0LXZpZXctd2l0aC1sYWJlbCcpOworICAgICAgZGF0YVZpZXcubGFiZWwgPSAnUmVuZGVyUGFzcyAnICsgdGhpcy5yZW5kZXJQYXNzSWRfOworICAgICAgZGF0YVZpZXcub2JqZWN0ID0gdGhpcy5yZW5kZXJQYXNzXy5hcmdzOworICAgICAgcmV0dXJuIGRhdGFWaWV3OworICAgIH0sCisKKyAgICBnZXQgdGl0bGUoKSB7CisgICAgICByZXR1cm4gdGhpcy5yZW5kZXJQYXNzXy5vYmplY3RJbnN0YW5jZS50eXBlTmFtZTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gTGF5ZXJTZWxlY3Rpb24obGF5ZXIpIHsKKyAgICBpZiAoIWxheWVyKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCdMYXllciBpcyByZXF1aXJlZCcpOworICAgIHRoaXMubGF5ZXJfID0gbGF5ZXI7CisgIH0KKworICBMYXllclNlbGVjdGlvbi5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBTZWxlY3Rpb24ucHJvdG90eXBlLAorCisgICAgZ2V0IHNwZWNpY2lmaXR5KCkgeworICAgICAgcmV0dXJuIDE7CisgICAgfSwKKworICAgIGdldCBhc3NvY2lhdGVkTGF5ZXJJZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmxheWVyXy5sYXllcklkOworICAgIH0sCisKKyAgICBnZXQgYXNzb2NpYXRlZFJlbmRlclBhc3NJZCgpIHsKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBsYXllcigpIHsKKyAgICAgIHJldHVybiB0aGlzLmxheWVyXzsKKyAgICB9LAorCisgICAgY3JlYXRlQW5hbHlzaXM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGRhdGFWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgICAndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3LXdpdGgtbGFiZWwnKTsKKyAgICAgIGRhdGFWaWV3LmxhYmVsID0gJ0xheWVyICcgKyB0aGlzLmxheWVyXy5sYXllcklkOworICAgICAgaWYgKHRoaXMubGF5ZXJfLnVzaW5nR3B1UmFzdGVyaXphdGlvbikKKyAgICAgICAgZGF0YVZpZXcubGFiZWwgKz0gJyAoR1BVLXJhc3Rlcml6ZWQpJzsKKyAgICAgIGRhdGFWaWV3Lm9iamVjdCA9IHRoaXMubGF5ZXJfLmFyZ3M7CisgICAgICByZXR1cm4gZGF0YVZpZXc7CisgICAgfSwKKworICAgIGdldCB0aXRsZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmxheWVyXy5vYmplY3RJbnN0YW5jZS50eXBlTmFtZTsKKyAgICB9LAorCisgICAgZmluZEVxdWl2YWxlbnQ6IGZ1bmN0aW9uKGx0aGkpIHsKKyAgICAgIHZhciBsYXllciA9IGx0aGkuYWN0aXZlVHJlZS5maW5kTGF5ZXJXaXRoSWQodGhpcy5sYXllcl8ubGF5ZXJJZCkgfHwKKyAgICAgICAgICBsdGhpLnBlbmRpbmdUcmVlLmZpbmRMYXllcldpdGhJZCh0aGlzLmxheWVyXy5sYXllcklkKTsKKyAgICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gbmV3IExheWVyU2VsZWN0aW9uKGxheWVyKTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gVGlsZVNlbGVjdGlvbih0aWxlLCBvcHRfZGF0YSkgeworICAgIHRoaXMudGlsZV8gPSB0aWxlOworICAgIHRoaXMuZGF0YV8gPSBvcHRfZGF0YSB8fCB7fTsKKyAgfQorCisgIFRpbGVTZWxlY3Rpb24ucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogU2VsZWN0aW9uLnByb3RvdHlwZSwKKworICAgIGdldCBzcGVjaWNpZml0eSgpIHsKKyAgICAgIHJldHVybiAyOworICAgIH0sCisKKyAgICBnZXQgYXNzb2NpYXRlZExheWVySWQoKSB7CisgICAgICByZXR1cm4gdGhpcy50aWxlXy5sYXllcklkOworICAgIH0sCisKKyAgICBnZXQgaGlnaGxpZ2h0c0J5TGF5ZXJJZCgpIHsKKyAgICAgIHZhciBoaWdobGlnaHRzID0ge307CisgICAgICBoaWdobGlnaHRzW3RoaXMudGlsZV8ubGF5ZXJJZF0gPSBbCisgICAgICAgIHsKKyAgICAgICAgICBjb2xvcktleTogdGhpcy50aWxlXy5vYmplY3RJbnN0YW5jZS50eXBlTmFtZSwKKyAgICAgICAgICByZWN0OiB0aGlzLnRpbGVfLmxheWVyUmVjdAorICAgICAgICB9CisgICAgICBdOworICAgICAgcmV0dXJuIGhpZ2hsaWdodHM7CisgICAgfSwKKworICAgIGNyZWF0ZUFuYWx5c2lzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhbmFseXNpcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3Qtdmlldy13aXRoLWxhYmVsJyk7CisgICAgICBhbmFseXNpcy5sYWJlbCA9ICdUaWxlICcgKyB0aGlzLnRpbGVfLm9iamVjdEluc3RhbmNlLmlkICsgJyBvbiBsYXllciAnICsKKyAgICAgICAgICB0aGlzLnRpbGVfLmxheWVySWQ7CisgICAgICBpZiAodGhpcy5kYXRhXykgeworICAgICAgICBhbmFseXNpcy5vYmplY3QgPSB7CisgICAgICAgICAgbW9yZUluZm86IHRoaXMuZGF0YV8sCisgICAgICAgICAgdGlsZUFyZ3M6IHRoaXMudGlsZV8uYXJncworICAgICAgICB9OworICAgICAgfSBlbHNlIHsKKyAgICAgICAgYW5hbHlzaXMub2JqZWN0ID0gdGhpcy50aWxlXy5hcmdzOworICAgICAgfQorICAgICAgcmV0dXJuIGFuYWx5c2lzOworICAgIH0sCisKKyAgICBmaW5kRXF1aXZhbGVudDogZnVuY3Rpb24obHRoaSkgeworICAgICAgdmFyIHRpbGVJbnN0YW5jZSA9IHRoaXMudGlsZV8udGlsZUluc3RhbmNlOworICAgICAgaWYgKGx0aGkudHMgPCB0aWxlSW5zdGFuY2UuY3JlYXRpb25UcyB8fAorICAgICAgICAgIGx0aGkudHMgPj0gdGlsZUluc3RhbmNlLmRlbGV0aW9uVHMpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICB2YXIgdGlsZVNuYXBzaG90ID0gdGlsZUluc3RhbmNlLmdldFNuYXBzaG90QXQobHRoaS50cyk7CisgICAgICBpZiAoIXRpbGVTbmFwc2hvdCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiBuZXcgVGlsZVNlbGVjdGlvbih0aWxlU25hcHNob3QpOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBMYXllclJlY3RTZWxlY3Rpb24obGF5ZXIsIHJlY3RUeXBlLCByZWN0LCBvcHRfZGF0YSkgeworICAgIHRoaXMubGF5ZXJfID0gbGF5ZXI7CisgICAgdGhpcy5yZWN0VHlwZV8gPSByZWN0VHlwZTsKKyAgICB0aGlzLnJlY3RfID0gcmVjdDsKKyAgICB0aGlzLmRhdGFfID0gb3B0X2RhdGEgIT09IHVuZGVmaW5lZCA/IG9wdF9kYXRhIDogcmVjdDsKKyAgfQorCisgIExheWVyUmVjdFNlbGVjdGlvbi5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBTZWxlY3Rpb24ucHJvdG90eXBlLAorCisgICAgZ2V0IHNwZWNpY2lmaXR5KCkgeworICAgICAgcmV0dXJuIDI7CisgICAgfSwKKworICAgIGdldCBhc3NvY2lhdGVkTGF5ZXJJZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmxheWVyXy5sYXllcklkOworICAgIH0sCisKKworICAgIGdldCBoaWdobGlnaHRzQnlMYXllcklkKCkgeworICAgICAgdmFyIGhpZ2hsaWdodHMgPSB7fTsKKyAgICAgIGhpZ2hsaWdodHNbdGhpcy5sYXllcl8ubGF5ZXJJZF0gPSBbCisgICAgICAgIHsKKyAgICAgICAgICBjb2xvcktleTogdGhpcy5yZWN0VHlwZV8sCisgICAgICAgICAgcmVjdDogdGhpcy5yZWN0XworICAgICAgICB9CisgICAgICBdOworICAgICAgcmV0dXJuIGhpZ2hsaWdodHM7CisgICAgfSwKKworICAgIGNyZWF0ZUFuYWx5c2lzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhbmFseXNpcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgJ3RyLXVpLWEtZ2VuZXJpYy1vYmplY3Qtdmlldy13aXRoLWxhYmVsJyk7CisgICAgICBhbmFseXNpcy5sYWJlbCA9IHRoaXMucmVjdFR5cGVfICsgJyBvbiBsYXllciAnICsgdGhpcy5sYXllcl8ubGF5ZXJJZDsKKyAgICAgIGFuYWx5c2lzLm9iamVjdCA9IHRoaXMuZGF0YV87CisgICAgICByZXR1cm4gYW5hbHlzaXM7CisgICAgfSwKKworICAgIGZpbmRFcXVpdmFsZW50OiBmdW5jdGlvbihsdGhpKSB7CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBBbmltYXRpb25SZWN0U2VsZWN0aW9uKGxheWVyLCByZWN0KSB7CisgICAgdGhpcy5sYXllcl8gPSBsYXllcjsKKyAgICB0aGlzLnJlY3RfID0gcmVjdDsKKyAgfQorCisgIEFuaW1hdGlvblJlY3RTZWxlY3Rpb24ucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogU2VsZWN0aW9uLnByb3RvdHlwZSwKKworICAgIGdldCBzcGVjaWNpZml0eSgpIHsKKyAgICAgIHJldHVybiAwOworICAgIH0sCisKKyAgICBnZXQgYXNzb2NpYXRlZExheWVySWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5sYXllcl8ubGF5ZXJJZDsKKyAgICB9LAorCisgICAgY3JlYXRlQW5hbHlzaXM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGFuYWx5c2lzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgICAndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3LXdpdGgtbGFiZWwnKTsKKyAgICAgIGFuYWx5c2lzLmxhYmVsID0gJ0FuaW1hdGlvbiBCb3VuZHMgb2YgbGF5ZXIgJyArIHRoaXMubGF5ZXJfLmxheWVySWQ7CisgICAgICBhbmFseXNpcy5vYmplY3QgPSB0aGlzLnJlY3RfOworICAgICAgcmV0dXJuIGFuYWx5c2lzOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFNlbGVjdGlvbjogU2VsZWN0aW9uLAorICAgIFJlbmRlclBhc3NTZWxlY3Rpb246IFJlbmRlclBhc3NTZWxlY3Rpb24sCisgICAgTGF5ZXJTZWxlY3Rpb246IExheWVyU2VsZWN0aW9uLAorICAgIFRpbGVTZWxlY3Rpb246IFRpbGVTZWxlY3Rpb24sCisgICAgTGF5ZXJSZWN0U2VsZWN0aW9uOiBMYXllclJlY3RTZWxlY3Rpb24sCisgICAgQW5pbWF0aW9uUmVjdFNlbGVjdGlvbjogQW5pbWF0aW9uUmVjdFNlbGVjdGlvbgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9jYy90aWxlX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTZmOWM1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2NjL3RpbGVfdmlldy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9jaHJvbWUvY2MvdGlsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvb2JqZWN0X3NuYXBzaG90X3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmUuY2hyb21lLmNjJywgZnVuY3Rpb24oKSB7CisgIC8qCisgICAqIERpc3BsYXlzIGEgdGlsZSBpbiBhIGh1bWFuIHJlYWRhYmxlIGZvcm0uCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIFRpbGVTbmFwc2hvdFZpZXcgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICd0ci11aS1lLWNocm9tZS1jYy10aWxlLXNuYXBzaG90LXZpZXcnLAorICAgICAgdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3KTsKKworICBUaWxlU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3RyLXVpLWUtY2hyb21lLWNjLXRpbGUtc25hcHNob3QtdmlldycpOworICAgICAgdGhpcy5sYXllclRyZWVWaWV3XyA9CisgICAgICAgICAgbmV3IHRyLnVpLmUuY2hyb21lLmNjLkxheWVyVHJlZUhvc3RJbXBsU25hcHNob3RWaWV3KCk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMubGF5ZXJUcmVlVmlld18pOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50czogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdGlsZSA9IHRoaXMub2JqZWN0U25hcHNob3RfOworICAgICAgdmFyIGxheWVyVHJlZUhvc3RJbXBsID0gdGlsZS5jb250YWluaW5nU25hcHNob3Q7CisgICAgICBpZiAoIWxheWVyVHJlZUhvc3RJbXBsKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMubGF5ZXJUcmVlVmlld18ub2JqZWN0U25hcHNob3QgPSBsYXllclRyZWVIb3N0SW1wbDsKKyAgICAgIHRoaXMubGF5ZXJUcmVlVmlld18uc2VsZWN0aW9uID0gbmV3IHRyLnVpLmUuY2hyb21lLmNjLlRpbGVTZWxlY3Rpb24odGlsZSk7CisgICAgfQorICB9OworCisgIHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5yZWdpc3RlcigKKyAgICAgIFRpbGVTbmFwc2hvdFZpZXcsCisgICAgICB7CisgICAgICAgIHR5cGVOYW1lOiAnY2M6OlRpbGUnLAorICAgICAgICBzaG93SW5UcmFja1ZpZXc6IGZhbHNlCisgICAgICB9KTsKKworICByZXR1cm4geworICAgIFRpbGVTbmFwc2hvdFZpZXc6IFRpbGVTbmFwc2hvdFZpZXcKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvZ3B1L2dwdS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2dwdS9ncHUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjc1NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2dwdS9ncHUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9ncHUvZ3B1X2FzeW5jX3NsaWNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV92aWV3Lmh0bWwiPgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9leHRyYXMvY2hyb21lL2dwdS9pbWFnZXMvY2hlY2tlcmJvYXJkLnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9ncHUvaW1hZ2VzL2NoZWNrZXJib2FyZC5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL2Nocm9tZS9ncHUvaW1hZ2VzL2NoZWNrZXJib2FyZC5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9ncHUvaW1hZ2VzL2NoZWNrZXJib2FyZC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvY2hyb21lL2dwdS9zdGF0ZV92aWV3LmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY2ZGJiNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdmlldy5jc3MKQEAgLTAsMCArMSwxNSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyAqLworCisudHItdWktZS1jaHJvbWUtZ3B1LXN0YXRlLXNuYXBzaG90LXZpZXcgeworICBiYWNrZ3JvdW5kOiB1cmwoJy4vaW1hZ2VzL2NoZWNrZXJib2FyZC5wbmcnKTsKKyAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICBvdmVyZmxvdzogYXV0bzsKK30KKworLnRyLXVpLWUtY2hyb21lLWdwdS1zdGF0ZS1zbmFwc2hvdC12aWV3IGltZyB7CisgIGRpc3BsYXk6IGJsb2NrOworICBtYXJnaW46IDE2cHggYXV0byAxNnB4IGF1dG87Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3OWJkOGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9jaHJvbWUvZ3B1L3N0YXRlX3ZpZXcuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvZXh0cmFzL2Nocm9tZS9ncHUvc3RhdGVfdmlldy5jc3MiPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL29iamVjdF9zbmFwc2hvdF92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5jaHJvbWUuZ3B1JywgZnVuY3Rpb24oKSB7CisgIC8qCisgICAqIERpc3BsYXlzIGEgR1BVIHN0YXRlIHNuYXBzaG90IGluIGEgaHVtYW4gcmVhZGFibGUgZm9ybS4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgU3RhdGVTbmFwc2hvdFZpZXcgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICd0ci11aS1lLWNocm9tZS1ncHUtc3RhdGUtc25hcHNob3QtdmlldycsCisgICAgICB0ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcpOworCisgIFN0YXRlU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldy5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3RyLXVpLWUtY2hyb21lLWdwdS1zdGF0ZS1zbmFwc2hvdC12aWV3Jyk7CisgICAgICB0aGlzLnNjcmVlbnNob3RJbWFnZV8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5zY3JlZW5zaG90SW1hZ2VfKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMub2JqZWN0U25hcHNob3RfICYmIHRoaXMub2JqZWN0U25hcHNob3RfLnNjcmVlbnNob3QpIHsKKyAgICAgICAgdGhpcy5zY3JlZW5zaG90SW1hZ2VfLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArCisgICAgICAgICAgICB0aGlzLm9iamVjdFNuYXBzaG90Xy5zY3JlZW5zaG90OworICAgICAgfQorICAgIH0KKyAgfTsKKyAgdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAorICAgIFN0YXRlU25hcHNob3RWaWV3LAorICAgIHt0eXBlTmFtZTogJ2dwdTo6U3RhdGUnfSk7CisKKyAgcmV0dXJuIHsKKyAgICBTdGF0ZVNuYXBzaG90VmlldzogU3RhdGVTbmFwc2hvdFZpZXcKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kZWVwX3JlcG9ydHMvaHRtbF9yZXN1bHRzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kZWVwX3JlcG9ydHMvaHRtbF9yZXN1bHRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY5YmI4MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2RlZXBfcmVwb3J0cy9odG1sX3Jlc3VsdHMuaHRtbApAQCAtMCwwICsxLDExNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKworPCEtLQorVGhpcyBjbGFzcyB0cmllcyB0byAoc2ltcGx5KSBjb3B5IHRoZSB0ZWxlbWV0cnkgUmVzdWx0cyBvYmplY3QsIGJ1dCBvdXRwdXRzCitkaXJlY3RseSB0byBhbiBIVE1MIHRhYmxlLiBJdCB0YWtlcyB0aGluZ3MgdGhhdCBsb29rIGxpa2UgVGVsZW1ldHJ5IHZhbHVlcywKK2FuZCB1cGRhdGVzIHRoZSB0YWJsZSBpbnRlcm5hbGx5LgorLS0+Cis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLWUtZGVlcC1yZXBvcnRzLWh0bWwtcmVzdWx0cyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0idGFibGUiPjwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5oYXNDb2x1bW5OYW1lZF8gPSB7fTsKKyAgICAgIHRoaXMucGFnZVRvUm93TWFwXyA9IG5ldyBXZWFrTWFwKCk7CisgICAgfSwKKworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciB0YWJsZSA9IHRoaXMuJC50YWJsZTsKKyAgICAgIHRhYmxlLnRhYmxlQ29sdW1ucyA9IFsKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnTGFiZWwnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5sYWJlbDsgfSwKKyAgICAgICAgICB3aWR0aDogJzM1MHB4JworICAgICAgICB9CisgICAgICBdOworICAgICAgdGhpcy5jbGVhcigpOworICAgIH0sCisKKyAgICBjbGVhcjogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gW107CisgICAgfSwKKworICAgIGFkZENvbHVtbklmTmVlZGVkXzogZnVuY3Rpb24oY29sdW1uTmFtZSkgeworICAgICAgaWYgKHRoaXMuaGFzQ29sdW1uTmFtZWRfW2NvbHVtbk5hbWVdKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLmhhc0NvbHVtbk5hbWVkX1tjb2x1bW5OYW1lXSA9IHRydWU7CisKKyAgICAgIHZhciBjb2x1bW4gPSB7CisgICAgICAgIHRpdGxlOiBjb2x1bW5OYW1lLAorICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7CisgICAgICAgICAgaWYgKHJvd1tjb2x1bW5OYW1lXSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgcmV0dXJuICcnOworICAgICAgICAgIHJldHVybiByb3dbY29sdW1uTmFtZV07CisgICAgICAgIH0KKyAgICAgIH07CisKKyAgICAgIHZhciBjb2x1bW5zID0gdGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1uczsKKyAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pOworCisgICAgICAvLyBVcGRhdGUgd2lkdGhzLgorICAgICAgdmFyIGNvbFdpZHRoUGVyY2VudGFnZTsKKyAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PSAxKQorICAgICAgICBjb2xXaWR0aFBlcmNlbnRhZ2UgPSAnMTAwJSc7CisgICAgICBlbHNlCisgICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICgxMDAgLyAoY29sdW1ucy5sZW5ndGggLSAxKSkudG9GaXhlZCgzKSArICclJzsKKworICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKQorICAgICAgICBjb2x1bW5zW2ldLndpZHRoID0gY29sV2lkdGhQZXJjZW50YWdlOworCisgICAgICB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICB9LAorCisgICAgZ2V0Um93Rm9yUGFnZV86IGZ1bmN0aW9uKHBhZ2UpIHsKKyAgICAgIGlmICghdGhpcy5wYWdlVG9Sb3dNYXBfLmhhcyhwYWdlKSkgeworICAgICAgICB2YXIgaSA9IHBhZ2UudXJsLmxhc3RJbmRleE9mKCcvJyk7CisgICAgICAgIHZhciBiYXNlTmFtZSA9IHBhZ2UudXJsLnN1YnN0cmluZyhpICsgMSk7CisKKyAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CisgICAgICAgIGxpbmsuaHJlZiA9ICd0cmFjZV92aWV3ZXIuaHRtbCMnICsgcGFnZS51cmw7CisgICAgICAgIGxpbmsudGV4dENvbnRlbnQgPSBiYXNlTmFtZTsKKworICAgICAgICB2YXIgcm93ID0geworICAgICAgICAgIGxhYmVsOiBsaW5rLAorICAgICAgICAgIHZhbHVlOiAnJywKKyAgICAgICAgICBzdWJSb3dzOiBbXSwKKyAgICAgICAgICBpc0V4cGFuZGVkOiB0cnVlCisgICAgICAgIH07CisgICAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MucHVzaChyb3cpOworICAgICAgICB0aGlzLnBhZ2VUb1Jvd01hcF8uc2V0KHBhZ2UsIHJvdyk7CisKKyAgICAgICAgLy8gS2ljayB0YWJsZSByZWJ1aWxkLgorICAgICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gdGhpcy4kLnRhYmxlLnRhYmxlUm93czsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzLnBhZ2VUb1Jvd01hcF8uZ2V0KHBhZ2UpOworICAgIH0sCisKKyAgICBhZGRWYWx1ZTogZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgIC8qIFZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIGEgc2NhbGFyIHRlbGVtZXRyeS1zdHlsZSBWYWx1ZS4gKi8KKyAgICAgIGlmICh2YWx1ZS50eXBlICE9PSAnc2NhbGFyJykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3YXQnKTsKKworICAgICAgdGhpcy5hZGRDb2x1bW5JZk5lZWRlZF8odmFsdWUubmFtZSk7CisgICAgICB2YXIgcm93Rm9yUGFnZSA9IHRoaXMuZ2V0Um93Rm9yUGFnZV8odmFsdWUucGFnZSk7CisgICAgICByb3dGb3JQYWdlW3ZhbHVlLm5hbWVdID0gdmFsdWUudmFsdWU7CisKKyAgICAgIC8vIEtpY2sgdGFibGUgcmVidWlsZC4KKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSB0aGlzLiQudGFibGUudGFibGVSb3dzOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kZWVwX3JlcG9ydHMvbWFpbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvZGVlcF9yZXBvcnRzL21haW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDc4ZThkCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvZGVlcF9yZXBvcnRzL21haW4uaHRtbApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvaXRlcmF0aW9uX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9kZWVwX3JlcG9ydHMvc2NhbGFyX3ZhbHVlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3hoci5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmUuZGVlcF9yZXBvcnRzJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBSdW5zIGRlZXAgcmVwb3J0cyBvbiB0aGUgcHJvdmlkZWQgZmlsZXMsIGFuZCBwdXNoZXMgdGVsZW1ldHJ5LXN0eWxlCisgICAqIHZhbHVlcyB0byB0aGUgcmVzdWx0cyBvYmplY3QuCisgICAqLworICBmdW5jdGlvbiBtYWluKHJlc3VsdHMsIGZpbGVzSW5EaXIpIHsKKyAgICB2YXIgbGFzdFAgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7IHJlc29sdmUoKTsgfSk7CisKKyAgICBmaWxlc0luRGlyLmZvckVhY2goZnVuY3Rpb24oZmlsZW5hbWUpIHsKKyAgICAgIC8vIFRPRE8obmR1Y2EpOiBNYWtlIHRoaXMgbGlrZSB0ZWxlbWV0cnkgcGFnZS4KKyAgICAgIHZhciBwYWdlID0geworICAgICAgICB1cmw6IGZpbGVuYW1lCisgICAgICB9OworICAgICAgbGFzdFAgPSBsYXN0UC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gbG9hZE1vZGVsRnJvbUZpbGVBc3luYyhmaWxlbmFtZSk7CisgICAgICB9KTsKKyAgICAgIGxhc3RQID0gbGFzdFAudGhlbihmdW5jdGlvbihtb2RlbCkgeworICAgICAgICBwcm9jZXNzTW9kZWwocmVzdWx0cywgcGFnZSwgbW9kZWwpOworICAgICAgfSk7CisgICAgfSk7CisgICAgcmV0dXJuIGxhc3RQOworICB9CisKKyAgZnVuY3Rpb24gbG9hZE1vZGVsRnJvbUZpbGVBc3luYyhmaWxlbmFtZSkgeworICAgIHJldHVybiB0ci5iLmdldEFzeW5jKGZpbGVuYW1lKS50aGVuKGZ1bmN0aW9uKHRyYWNlKSB7CisgICAgICB2YXIgaW8gPSBuZXcgdHIuSW1wb3J0T3B0aW9ucygpOworICAgICAgaW8uc2hpZnRXb3JsZFRvWmVybyA9IHRydWU7CisgICAgICBpby5wcnVuZUVtcHR5Q29udGFpbmVycyA9IGZhbHNlOworCisgICAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgICAgdHJ5IHsKKyAgICAgICAgbS5pbXBvcnRUcmFjZXMoW3RyYWNlXSwgaW8pOworICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1doaWxlIGxvYWRpbmcgJyArIGZpbGVuYW1lICsgJyBnb3Q6ICcgKyBlLnRvU3RyaW5nKCkpOworICAgICAgfQorICAgICAgcmV0dXJuIG07CisgICAgfSk7CisgIH0KKworICBmdW5jdGlvbiBwcm9jZXNzTW9kZWwocmVzdWx0cywgcGFnZSwgbW9kZWwpIHsKKyAgICB2YXIgcmFpbFNjb3JlID0gdHIuZS5yYWlsLlJBSUxTY29yZS5mcm9tTW9kZWwobW9kZWwpOworICAgIGlmIChyYWlsU2NvcmUgPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybjsKKworICAgIHJlc3VsdHMuYWRkVmFsdWUoCisgICAgICAgIG5ldyB0ci51aS5lLmRlZXBfcmVwb3J0cy5TY2FsYXJWYWx1ZSgKKyAgICAgICAgICAgIHBhZ2UsICdudW1SYWlsSVJzJywgJ21zJywgcmFpbFNjb3JlLmludGVyYWN0aW9uUmVjb3Jkcy5sZW5ndGgpKTsKKyAgICByZXN1bHRzLmFkZFZhbHVlKAorICAgICAgbmV3IHRyLnVpLmUuZGVlcF9yZXBvcnRzLlNjYWxhclZhbHVlKAorICAgICAgICBwYWdlLCAncmFpbFNjb3JlJywgJ3JhaWxzJywgcmFpbFNjb3JlLm92ZXJhbGxTY29yZSkpOworICB9CisKKyAgcmV0dXJuIHsKKyAgICBtYWluOiBtYWluCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvZGVlcF9yZXBvcnRzL3NjYWxhcl92YWx1ZS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvZGVlcF9yZXBvcnRzL3NjYWxhcl92YWx1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZmY5NTQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kZWVwX3JlcG9ydHMvc2NhbGFyX3ZhbHVlLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS5kZWVwX3JlcG9ydHMnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gU2NhbGFyVmFsdWUocGFnZSwgbmFtZSwgdW5pdHMsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICBvcHRfaW1wb3J0YW50LCBvcHRfZGVzY3JpcHRpb24pIHsKKyAgICB0aGlzLnR5cGUgPSAnc2NhbGFyJzsKKyAgICB0aGlzLnBhZ2UgPSBwYWdlOworICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgdGhpcy51bml0cyA9IHVuaXRzOworICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICB0aGlzLmltcG9ydGFudCA9IG9wdF9pbXBvcnRhbnQgIT09IHVuZGVmaW5lZCA/IG9wdF9pbXBvcnRhbnQgOiBmYWxzZTsKKyAgICB0aGlzLmRlc2NyaXB0aW9uID0gb3B0X2Rlc2NyaXB0aW9uIHx8ICcnOworICB9CisgIFNjYWxhclZhbHVlLmZyb21EaWN0ID0gZnVuY3Rpb24ocGFnZSwgZGljdCkgeworICAgIGlmIChkaWN0LnR5cGUgIT09ICdzY2FsYXInKQorICAgICAgdGhyb3cgbmV3IEVycm9yKCd3YXQnKTsKKyAgICB2YXIgdiA9IG5ldyBTY2FsYXJWYWx1ZShwYWdlLCBkaWN0Lm5hbWUsIGRpY3QudW5pdHMsIGRpY3QudmFsdWUpOworICAgIHYuaW1wb3J0YW50ID0gZGljdC5pbXBvcnRhbnQ7CisgICAgdi5kZXNjcmlwdGlvbiA9IGRpY3QuZGVzY3JpcHRpb247CisgICAgdi52YWx1ZSA9IGRpY3QudmFsdWU7CisgICAgcmV0dXJuIHY7CisgIH0KKworICBTY2FsYXJWYWx1ZS5wcm90b3R5cGUgPSB7CisKKyAgfTsKKworICByZXR1cm4geworICAgIFNjYWxhclZhbHVlOiBTY2FsYXJWYWx1ZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2RyaXZlL2NvbW1lbnRfZWxlbWVudC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvZHJpdmUvY29tbWVudF9lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwZjJjZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2RyaXZlL2NvbW1lbnRfZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktZS1kcml2ZS1jb21tZW50LWVsZW1lbnQiIGF0dHJpYnV0ZXM9ImNvbW1lbnQiPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAgICAjY29tbWVudC1hcmVhIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOGU4ZTg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgICAgIHBhZGRpbmc6IDZweDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKKyAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMyk7CisgICAgICBib3JkZXItcmFkaXVzOiAycHg7CisgICAgICBmb250LXNpemU6IHNtYWxsOworICAgIH0KKyAgICAjY29tbWVudC1oZWFkZXIgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OworICAgIH0KKyAgICAjY29tbWVudC1oZWFkZXItdGV4dCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICAgIHBhZGRpbmctbGVmdDogMTBweDsKKyAgICB9CisgICAgI2NvbW1lbnQtaW1nIHsKKyAgICAgIHdpZHRoOiAzMnB4OworICAgICAgaGVpZ2h0OiAzMnB4OworICAgIH0KKyAgICAjY29tbWVudC10ZXh0LWF1dGhvciB7CisgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4OworICAgIH0KKyAgICAjY29tbWVudC1kYXRlIHsKKyAgICAgIGNvbG9yOiAjNzc3OworICAgICAgZm9udC1zaXplOiAxMXB4OworICAgIH0KKyAgICAjY29tbWVudC1jb250ZW50IHsKKyAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8ZGl2IGlkPSJjb21tZW50LWFyZWEiPgorICAgICAgPGRpdiBpZD0iY29tbWVudC1oZWFkZXIiPgorICAgICAgICA8aW1nIGlkPSJjb21tZW50LWltZyIgc3JjPSJ7eyBjb21tZW50LmF1dGhvci5waWN0dXJlLnVybCB9fSIgLz4KKyAgICAgICAgPGRpdiBpZD0iY29tbWVudC1oZWFkZXItdGV4dCI+CisgICAgICAgICAgPGRpdiBpZD0iY29tbWVudC10ZXh0LWF1dGhvciI+e3sgY29tbWVudC5hdXRob3IuZGlzcGxheU5hbWUgfX08L2Rpdj4KKyAgICAgICAgICA8ZGl2IGlkPSJjb21tZW50LWRhdGUiPnt7IGNyZWF0ZWREYXRlIH19PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGlkPSJjb21tZW50LWNvbnRlbnQiPnt7IGNvbW1lbnQuYW5jaG9yID8gJyYjOTg3NTsmbmJzcDsnIDogJycgfX0KKyAgICAgICAgICB7eyBjb21tZW50LmNvbnRlbnQgfX08L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworICBQb2x5bWVyKHsKKyAgICBjb21tZW50Q2hhbmdlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNyZWF0ZWREYXRlID0gbmV3IERhdGUodGhpcy5jb21tZW50LmNyZWF0ZWREYXRlKS50b0xvY2FsZVN0cmluZygpOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNmMTE3NwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2RyaXZlL2NvbW1lbnRzX3NpZGVfcGFuZWwuaHRtbApAQCAtMCwwICsxLDE4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvZHJpdmUvY29tbWVudF9lbGVtZW50Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLXVpLWUtZHJpdmUtY29tbWVudHMtc2lkZS1wYW5lbCcKKyAgICBleHRlbmRzPSd0ci11aS1zaWRlLXBhbmVsJz4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIHdpZHRoOiAyOTBweDsKKyAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKKyAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7CisgICAgfQorICAgIHRvb2xiYXIgeworICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICByZXN1bHQtYXJlYSB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgbWluLWhlaWdodDogMDsKKyAgICAgIHBhZGRpbmc6IDRweDsKKyAgICB9CisgICAgI2NvbW1lbnRzLXRleHRhcmVhLWNvbnRhaW5lciB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICAjY29tbWVudGlucHV0IHsKKyAgICAgIHdpZHRoOiAxMDAlOworICAgIH0KKyAgICA8L3N0eWxlPgorCisgICAgPHRvb2xiYXIgaWQ9J3Rvb2xiYXInPjwvdG9vbGJhcj4KKyAgICA8cmVzdWx0LWFyZWEgaWQ9J3Jlc3VsdF9hcmVhJz4KKyAgICAgIDx0ZW1wbGF0ZSByZXBlYXQ9Int7IGNvbW1lbnQgaW4gY29tbWVudHNfIH19Ij4KKyAgICAgICAgPHRyLXVpLWUtZHJpdmUtY29tbWVudC1lbGVtZW50IGNvbW1lbnQ9Int7Y29tbWVudH19IgorICAgICAgICAgICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJ7e2NvbW1lbnRDbGlja319Ij4KKyAgICAgICAgPC90ci11aS1lLWRyaXZlLWNvbW1lbnQtZWxlbWVudD4KKyAgICAgIDwvdGVtcGxhdGU+CisgICAgICA8ZGl2IGlkPSJjb21tZW50cy10ZXh0YXJlYS1jb250YWluZXIiPgorICAgICAgICA8dGV4dGFyZWEgaWQ9ImNvbW1lbnRpbnB1dCIgb24tZm9jdXM9J3t7dGV4dEFyZWFGb2N1c319JworICAgICAgICAgICAgb24tYmx1cj0ne3t0ZXh0QXJlYUJsdXJ9fScKKyAgICAgICAgICAgIG9uLWtleXByZXNzPSJ7e3RleHRhcmVhS2V5cHJlc3N9fSI+PC90ZXh0YXJlYT4KKyAgICAgIDwvZGl2PgorICAgIDwvcmVzdWx0LWFyZWE+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmNvbW1lbnRzXyA9IFtdOworICAgICAgdGhpcy5hbm5vdGF0aW9uRnJvbUNvbW1lbnRfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy50ZXh0QXJlYUZvY3VzZWQgPSBmYWxzZTsKKyAgICB9LAorCisgICAgc2V0Q29tbWVudFByb3ZpZGVyOiBmdW5jdGlvbihjb21tZW50UHJvdmlkZXIpIHsKKyAgICAgIHRoaXMuY29tbWVudFByb3ZpZGVyXyA9IGNvbW1lbnRQcm92aWRlcjsKKyAgICB9LAorCisgICAgYXR0YWNoZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuY29tbWVudFByb3ZpZGVyXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuY29tbWVudFByb3ZpZGVyXyA9CisgICAgICAgICAgICBuZXcgdHIudWkuZS5kcml2ZS5hbmFseXNpcy5EZWZhdWx0Q29tbWVudFByb3ZpZGVyKCk7CisgICAgICB9CisgICAgICB0aGlzLmNvbW1lbnRQcm92aWRlcl8uYXR0YWNoVG9FbGVtZW50KHRoaXMpOworICAgIH0sCisKKyAgICBkZXRhY2hlZDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNvbW1lbnRQcm92aWRlcl8uZGV0YWNoRnJvbUVsZW1lbnQoKTsKKyAgICB9LAorCisgICAgY29tbWVudENsaWNrOiBmdW5jdGlvbihldmVudCwgZGV0YWlsLCBzZW5kZXIpIHsKKyAgICAgIHZhciBhbmNob3IgPSBzZW5kZXIuY29tbWVudC5hbmNob3I7CisgICAgICBpZiAoYW5jaG9yID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHVpU3RhdGUgPQorICAgICAgICAgIEpTT04ucGFyc2UoYW5jaG9yKS5hWzBdW3RyLnVpLmUuZHJpdmUuY29uc3RhbnRzLkFOQ0hPUl9OQU1FXTsKKworICAgICAgdmFyIG15RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ25hdmlnYXRlVG9VSVN0YXRlJywgeyBkZXRhaWw6CisgICAgICAgICAgbmV3IHRyLnVpLmIuVUlTdGF0ZShuZXcgdHIubW9kZWwuTG9jYXRpb24odWlTdGF0ZS5sb2NhdGlvbi54V29ybGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aVN0YXRlLmxvY2F0aW9uLnlDb21wb25lbnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpU3RhdGUuc2NhbGVYKQorICAgICAgICAgIH0pOworICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChteUV2ZW50KTsKKworICAgICAgaWYgKHRoaXMuYW5ub3RhdGlvbkZyb21Db21tZW50XykKKyAgICAgICAgdGhpcy5tb2RlbC5yZW1vdmVBbm5vdGF0aW9uKHRoaXMuYW5ub3RhdGlvbkZyb21Db21tZW50Xyk7CisgICAgICB2YXIgbG9jID0gbmV3IHRyLm1vZGVsLkxvY2F0aW9uKHVpU3RhdGUubG9jYXRpb24ueFdvcmxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpU3RhdGUubG9jYXRpb24ueUNvbXBvbmVudHMpOworCisgICAgICB2YXIgdGV4dCA9IHNlbmRlci5jb21tZW50LmF1dGhvci5kaXNwbGF5TmFtZSArICc6ICcgKworICAgICAgICAgIHNlbmRlci5jb21tZW50LmNvbnRlbnQ7CisgICAgICB0aGlzLmFubm90YXRpb25Gcm9tQ29tbWVudF8gPQorICAgICAgICAgIG5ldyB0ci5tb2RlbC5Db21tZW50Qm94QW5ub3RhdGlvbihsb2MsIHRleHQpOworICAgICAgdGhpcy5tb2RlbC5hZGRBbm5vdGF0aW9uKHRoaXMuYW5ub3RhdGlvbkZyb21Db21tZW50Xyk7CisgICAgfSwKKworICAgIHRleHRhcmVhS2V5cHJlc3M6IGZ1bmN0aW9uKGV2ZW50LCBkZXRhaWwsIHNlbmRlcikgeworICAgICAgLy8gQ2hlY2sgZm9yIHJldHVybiBrZXkuCisgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgJiYgIWV2ZW50LmN0cmxLZXkpIHsKKyAgICAgICAgdGhpcy5jb21tZW50UHJvdmlkZXJfLmFkZENvbW1lbnQodGhpcy4kLmNvbW1lbnRpbnB1dC52YWx1ZSk7CisgICAgICAgIHRoaXMuJC5jb21tZW50aW5wdXQudmFsdWUgPSAnJzsKKyAgICAgIH0KKyAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHRleHRBcmVhRm9jdXM6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICB0aGlzLnRleHRBcmVhRm9jdXNlZCA9IHRydWU7CisgICAgfSwKKworICAgIHRleHRBcmVhQmx1cjogZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHRoaXMudGV4dEFyZWFGb2N1c2VkID0gZmFsc2U7CisgICAgfSwKKworICAgIGdldCByYW5nZU9mSW50ZXJlc3QoKSB7CisgICAgICByZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOworICAgIH0sCisKKyAgICBzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlT2ZJbnRlcmVzdCkgeworICAgICAgdGhpcy5yYW5nZU9mSW50ZXJlc3RfID0gcmFuZ2VPZkludGVyZXN0OworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IGN1cnJlbnRSYW5nZU9mSW50ZXJlc3QoKSB7CisgICAgICBpZiAodGhpcy5yYW5nZU9mSW50ZXJlc3RfLmlzRW1wdHkpCisgICAgICAgIHJldHVybiB0aGlzLm1vZGVsXy5ib3VuZHM7CisgICAgICBlbHNlCisgICAgICAgIHJldHVybiB0aGlzLnJhbmdlT2ZJbnRlcmVzdF87CisgICAgfSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICB9LAorCisgICAgc2V0IG1vZGVsKG1vZGVsKSB7CisgICAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHNlbGVjdGlvbjsKKyAgICB9LAorCisgICAgZ2V0IGxpc3RlbmluZ1RvS2V5cygpIHsKKyAgICAgIHJldHVybiB0aGlzLnRleHRBcmVhRm9jdXNlZDsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY29tbWVudFByb3ZpZGVyXy51cGRhdGVDb21tZW50cygpOworICAgIH0sCisKKyAgICBzdXBwb3J0c01vZGVsOiBmdW5jdGlvbihtKSB7CisgICAgICBpZiAobSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSwKKyAgICAgICAgICByZWFzb246ICdVbmtub3duIHRyYWNpbmcgbW9kZWwnCisgICAgICAgIH07CisgICAgICB9CisgICAgICByZXR1cm4geworICAgICAgICBzdXBwb3J0ZWQ6IHRydWUKKyAgICAgIH07CisgICAgfSwKKworICAgIGdldCB0ZXh0TGFiZWwoKSB7CisgICAgICByZXR1cm4gJ0NvbW1lbnRzJzsKKyAgICB9CisgIH0pOworCisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2RyaXZlL2NvbW1lbnRzX3NpZGVfcGFuZWxfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YzgzNWUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsX3Rlc3QuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBTdHViQ29tbWVudFByb3ZpZGVyKCkgeworICAgIHRoaXMuYWRkRHVtbXlDb21tZW50KCdMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCcpOworICAgIHRoaXMuYWRkRHVtbXlDb21tZW50KCdjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQnKTsKKyAgICB0aGlzLmFkZER1bW15Q29tbWVudCgnc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0ICcgKworICAgICAgICAnZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCAnICsKKyAgICAgICAgJ2V4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gJyArCisgICAgICAgICdjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSAnICsKKyAgICAgICAgJ3ZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50ICcgKworICAgICAgICAnb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCAnICsKKyAgICAgICAgJ21vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLicpOworICB9CisKKyAgU3R1YkNvbW1lbnRQcm92aWRlci5wcm90b3R5cGUgPSB7CisgICAgY29tbWVudHNfOiBbXSwKKworICAgIGF0dGFjaFRvRWxlbWVudDogZnVuY3Rpb24oYXR0YWNoZWRFbGVtZW50KSB7CisgICAgICB0aGlzLmF0dGFjaGVkRWxlbWVudF8gPSBhdHRhY2hlZEVsZW1lbnQ7CisgICAgICB0aGlzLnVwZGF0ZUNvbW1lbnRzKCk7CisgICAgfSwKKworICAgIGRldGFjaEZyb21FbGVtZW50OiBmdW5jdGlvbigpIHsKKyAgICB9LAorCisgICAgdXBkYXRlQ29tbWVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5hdHRhY2hlZEVsZW1lbnRfLmNvbW1lbnRzXyA9IHRoaXMuY29tbWVudHNfOworICAgIH0sCisKKyAgICBhZGREdW1teUNvbW1lbnQ6IGZ1bmN0aW9uKGNvbnRlbnQpIHsKKyAgICAgIHZhciBuZXdDb21tZW50ID0geworICAgICAgICAgIGF1dGhvcjogeworICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdDYXNwZXIgdGhlIEZyaWVuZGx5IEdob3N0JywKKyAgICAgICAgICAgIHBpY3R1cmU6IHsKKyAgICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy1YZFVJcWRNa0NXQS8nICsKKyAgICAgICAgICAgICAgICAgICAgICAnQUFBQUFBQUFBQUkvQUFBQUFBQUFBQUEvNDI1MnJzY2J2NU0vczEyOC9waG90by5qcGcnCisgICAgICAgICAgICB9CisgICAgICAgICAgfSwKKyAgICAgICAgICBjcmVhdGVkRGF0ZTogRGF0ZS5ub3coKSwKKyAgICAgICAgICBhbmNob3I6ICh0aGlzLmNvbW1lbnRzXy5sZW5ndGgpICUgMiA/IDEgOiAwLAorICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQKKyAgICAgIH07CisKKyAgICAgIHRoaXMuY29tbWVudHNfLnB1c2gobmV3Q29tbWVudCk7CisgICAgfSwKKworICAgIGFkZENvbW1lbnQ6IGZ1bmN0aW9uKGJvZHkpIHsKKyAgICAgIHRoaXMuYWRkRHVtbXlDb21tZW50KGJvZHkpOworICAgICAgdGhpcy51cGRhdGVDb21tZW50cygpOworICAgIH0KKyAgfTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBwYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWUtZHJpdmUtY29tbWVudHMtc2lkZS1wYW5lbCcpOworICAgIHBhbmVsLnNldENvbW1lbnRQcm92aWRlcihuZXcgU3R1YkNvbW1lbnRQcm92aWRlcik7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHBhbmVsKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvZHJpdmUvZHJpdmVfY29tbWVudF9wcm92aWRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvZHJpdmUvZHJpdmVfY29tbWVudF9wcm92aWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxYjViMmUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9kcml2ZV9jb21tZW50X3Byb3ZpZGVyLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvc2lkZV9wYW5lbC9zaWRlX3BhbmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9jb21tZW50X2JveF9hbm5vdGF0aW9uLmh0bWwiPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy9kcml2ZS9jb21tZW50c19zaWRlX3BhbmVsLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisoZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGFkZERyaXZlQ29tbWVudFdpdGhVSVN0YXRlXyh0ZXh0LCB1aVN0YXRlKSB7CisgICAgZ2FwaS5jbGllbnQubG9hZCgnZHJpdmUnLCAndjInLCBmdW5jdGlvbigpIHsKKyAgICAgIHZhciByZXF1ZXN0ID0gZ2FwaS5jbGllbnQuZHJpdmUucmV2aXNpb25zLmdldCh7CisgICAgICAgICdmaWxlSWQnOiB0ci51aS5lLmRyaXZlLmdldERyaXZlRmlsZUlkKCksCisgICAgICAgICdyZXZpc2lvbklkJzogJ2hlYWQnCisgICAgICB9KTsKKyAgICAgIHJlcXVlc3QuZXhlY3V0ZShmdW5jdGlvbihyZXNwKSB7CisgICAgICAgIHZhciBhbmNob3JPYmplY3QgPSB7fTsKKyAgICAgICAgYW5jaG9yT2JqZWN0W3RyLnVpLmUuZHJpdmUuY29uc3RhbnRzLkFOQ0hPUl9OQU1FXSA9IHVpU3RhdGU7CisgICAgICAgIHZhciBhbmNob3IgPSB7CisgICAgICAgICAgJ3InOiByZXNwLmlkLAorICAgICAgICAgICdhJzogW2FuY2hvck9iamVjdF0KKyAgICAgICAgfTsKKyAgICAgICAgYW5jaG9yID0gSlNPTi5zdHJpbmdpZnkoYW5jaG9yKTsKKyAgICAgICAgZ2FwaS5jbGllbnQubG9hZCgnZHJpdmUnLCAndjInLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdCA9IGdhcGkuY2xpZW50LmRyaXZlLmNvbW1lbnRzLmluc2VydCh7CisgICAgICAgICAgICAnZmlsZUlkJzogdHIudWkuZS5kcml2ZS5nZXREcml2ZUZpbGVJZCgpLAorICAgICAgICAgICAgJ3Jlc291cmNlJzogeydjb250ZW50JzogdGV4dCwgJ2FuY2hvcic6IGFuY2hvcn0KKyAgICAgICAgICB9KTsKKyAgICAgICAgICByZXF1ZXN0LmV4ZWN1dGUoKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfTsKKworICBmdW5jdGlvbiBvbkNvbW1lbnRXaXRoVUlTdGF0ZShlKSB7CisgICAgYWRkRHJpdmVDb21tZW50V2l0aFVJU3RhdGVfKGUuZGV0YWlsLm5hbWUsIGUuZGV0YWlsLmxvY2F0aW9uKTsKKyAgfTsKKworICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb21tZW50V2l0aFVJU3RhdGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29tbWVudFdpdGhVSVN0YXRlLmJpbmQodGhpcykpOworfSgpKTsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmUuZHJpdmUuYW5hbHlzaXMnLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gRGVmYXVsdENvbW1lbnRQcm92aWRlcigpIHsgfQorCisgIERlZmF1bHRDb21tZW50UHJvdmlkZXIucHJvdG90eXBlID0geworICAgIGF0dGFjaFRvRWxlbWVudDogZnVuY3Rpb24oYXR0YWNoZWRFbGVtZW50KSB7CisgICAgICB0aGlzLmF0dGFjaGVkRWxlbWVudF8gPSBhdHRhY2hlZEVsZW1lbnQ7CisgICAgICB0aGlzLmNvbW1lbnRzQ2hlY2tUaW1lcl8gPSBzZXRUaW1lb3V0KHRoaXMuY2hlY2tGb3JDb21tZW50c18uYmluZCh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwMCk7CisgICAgfSwKKworICAgIGRldGFjaEZyb21FbGVtZW50OiBmdW5jdGlvbigpIHsKKyAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNvbW1lbnRzQ2hlY2tUaW1lcl8pOworICAgIH0sCisKKyAgICBjaGVja0ZvckNvbW1lbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnVwZGF0ZUNvbW1lbnRzKCk7CisgICAgICB0aGlzLmNvbW1lbnRzQ2hlY2tUaW1lcl8gPSBzZXRUaW1lb3V0KHRoaXMuY2hlY2tGb3JDb21tZW50c18uYmluZCh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwMCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbW1lbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgIGdhcGkuY2xpZW50LmxvYWQoJ2RyaXZlJywgJ3YyJywgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gZ2FwaS5jbGllbnQuZHJpdmUuY29tbWVudHMubGlzdCh7CisgICAgICAgICAgJ2ZpbGVJZCc6IHRyLnVpLmUuZHJpdmUuZ2V0RHJpdmVGaWxlSWQoKQorICAgICAgICB9KTsKKyAgICAgICAgcmVxdWVzdC5leGVjdXRlKGZ1bmN0aW9uKHJlc3VsdHMpIHsKKyAgICAgICAgICBzZWxmLmF0dGFjaGVkRWxlbWVudF8uY29tbWVudHNfID0gcmVzdWx0cy5pdGVtczsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgYWRkQ29tbWVudDogZnVuY3Rpb24oYm9keSkgeworICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgZ2FwaS5jbGllbnQubG9hZCgnZHJpdmUnLCAndjInLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBnYXBpLmNsaWVudC5kcml2ZS5jb21tZW50cy5pbnNlcnQoeworICAgICAgICAgICdmaWxlSWQnOiB0ci51aS5lLmRyaXZlLmdldERyaXZlRmlsZUlkKCksCisgICAgICAgICAgJ3Jlc291cmNlJzogeydjb250ZW50JzogYm9keX0KKyAgICAgICAgfSk7CisgICAgICAgIHJlcXVlc3QuZXhlY3V0ZShmdW5jdGlvbihyZXNwKSB7CisgICAgICAgICAgc2VsZi51cGRhdGVDb21tZW50cygpOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIERlZmF1bHRDb21tZW50UHJvdmlkZXI6IERlZmF1bHRDb21tZW50UHJvdmlkZXIKKyAgfTsKK30pOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL2RyaXZlL2luZGV4Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNDg0YTEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9kcml2ZS9pbmRleC5odG1sCkBAIC0wLDAgKzEsNDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKworICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2FwaXMuZ29vZ2xlLmNvbS9qcy9hcGkuanMiPjwvc2NyaXB0PgorCisgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29tcG9uZW50cy9wb2x5bWVyL3BvbHltZXIuaHRtbCI+CisgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Z1bGxfY29uZmlnLmh0bWwiPgorICA8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXcuaHRtbCI+CisgIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2RyaXZlL2RyaXZlX2NvbW1lbnRfcHJvdmlkZXIuaHRtbCI+CisKKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAgICAgcGFkZGluZzogMDsKKyAgICAgIHdpZHRoOiAxMDAlOworICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIH0KKyAgICBib2R5ID4geC10aW1lbGluZS12aWV3IHsKKyAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgdG9wOiAwcHg7CisgICAgICBib3R0b206IDA7CisgICAgICBsZWZ0OiAwOworICAgICAgcmlnaHQ6IDA7CisgICAgfQorICAgIGJvZHkgPiB4LXRpbWVsaW5lLXZpZXc6Zm9jdXMgeworICAgICAgb3V0bGluZTogbm9uZTsKKyAgICB9CisgICAgbmF2IHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OworICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKKyAgICB9CisgICAgI25hdmJhciBidXR0b24geworICAgICAgaGVpZ2h0OiAyNHB4OworICAgICAgcGFkZGluZy1ib3R0b206IDNweDsKKyAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgICBib3gtc2hhZG93OiBub25lOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkOTBmZTsKKyAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCM0Nzg3ZWQpOworICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMwNzllZDsKKyAgICAgIGNvbG9yOiAjZmZmOworICAgICAgYm9yZGVyLXJhZGl1czogMnB4OworICAgICAgY3Vyc29yOiBkZWZhdWx0OworICAgICAgZm9udC1zaXplOiAxMXB4OworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7CisgICAgICBtaW4td2lkdGg6IDU0cHg7CisgICAgICBvdXRsaW5lOiAwcHg7CisgICAgICBwYWRkaW5nOiAwIDhweDsKKyAgICAgIGZvbnQ6IG5vcm1hbCAxM3B4IGFyaWFsLHNhbnMtc2VyaWY7CisgICAgICBtYXJnaW46IDVweDsKKyAgICB9CisgICAgI2NvbGxhYnMgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgfQorICAgIC5jb2xsYWJvcmF0b3ItZGl2IHsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgICBtaW4taGVpZ2h0OiAwOworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgZm9udC1zaXplOiAxMXB4OworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICBmb250OiBub3JtYWwgMTNweCBhcmlhbCxzYW5zLXNlcmlmOworICAgICAgbWFyZ2luOiAxMHB4OworICAgIH0KKyAgICAuY29sbGFib3JhdG9yLWltZyB7CisgICAgICBtYXJnaW46IDJweDsKKyAgICB9CisgICAgLmNvbGxhYm9yYXRvci10b29sdGlwIHsKKyAgICAgIHotaW5kZXg6IDEwMDAwOworICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwLG9wYWNpdHkgLjEzcyBlYXNlLWluOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJhMmEyYTsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7CisgICAgICBjb2xvcjogI2ZmZjsKKyAgICAgIGN1cnNvcjogZGVmYXVsdDsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmOworICAgICAgZm9udC1zaXplOiAxMXB4OworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICBtYXJnaW4tbGVmdDogLTFweDsKKyAgICAgIG9wYWNpdHk6IDE7CisgICAgICBwYWRkaW5nOiA3cHggOXB4OworICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB9CisgICAgLmNvbGxhYm9yYXRvci10b29sdGlwLWNvbnRlbnQgeworICAgICAgY29sb3I6ICNmZmY7CisgICAgfQorICAgIC5jb2xsYWJvcmF0b3ItdG9vbHRpcC1hcnJvdyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB0b3A6IC02cHg7CisgICAgfQorICAgIC5jb2xsYWJvcmF0b3ItdG9vbHRpcC1hcnJvdy1iZWZvcmUgeworICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CisgICAgICBsZWZ0OiAtNnB4OworICAgICAgYm9yZGVyOiA2cHggc29saWQ7CisgICAgICBib3JkZXItdG9wLXdpZHRoOiAwOworICAgICAgY29udGVudDogJyc7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIGhlaWdodDogMDsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHdpZHRoOiAwOworICAgIH0KKyAgICAuY29sbGFib3JhdG9yLXRvb2x0aXAtYXJyb3ctYWZ0ZXIgeworICAgICAgdG9wOiAxcHg7CisgICAgICBib3JkZXItY29sb3I6ICMyYTJhMmEgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKKyAgICAgIGxlZnQ6IC01cHg7CisgICAgICBib3JkZXI6IDVweCBzb2xpZDsKKyAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7CisgICAgICBjb250ZW50OiAnJzsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgaGVpZ2h0OiAwOworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgd2lkdGg6IDA7CisgICAgfQorCisgIDwvc3R5bGU+CisgIDx0aXRsZT5UcmFjZSBWaWV3ZXI8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxuYXYgaWQ9Im5hdmJhciI+CisgICAgPGRpdiBpZD0iY29sbGFicyI+PC9kaXY+CisgICAgPGJ1dHRvbiBpZD0ieC1kcml2ZS1zYXZlLXRvLWRpc2siPlNhdmUgdG8gZGlzazwvYnV0dG9uPgorICAgIDxidXR0b24gaWQ9IngtZHJpdmUtc2F2ZS10by1kcml2ZSI+U2F2ZSB0byBEcml2ZTwvYnV0dG9uPgorICAgIDxidXR0b24gaWQ9IngtZHJpdmUtbG9hZC1mcm9tLWRyaXZlIj5Mb2FkIGZyb20gRHJpdmU8L2J1dHRvbj4KKyAgICA8YnV0dG9uIGlkPSJ4LWRyaXZlLXNoYXJlIj5TaGFyZTwvYnV0dG9uPgorICA8L25hdj4KKyAgPHgtdGltZWxpbmUtdmlldz4KKyAgPC94LXRpbWVsaW5lLXZpZXc+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIE5lZWRzIHRvIGJlIGdsb2JhbCBhcyBpdCdzIHBhc3NlZCB0aHJvdWdoIHRoZSBHb29nbGUgQVBJIGFzIGEKKyAgLy8gR0VUIHBhcmFtZXRlci4KKyAgdmFyIG9uQVBJQ2xpZW50TG9hZGVkXyA9IG51bGw7CisKKyAgKGZ1bmN0aW9uKCkgeworCisgICAgdHIuZXhwb3J0VG8oJ3RyLnVpLmUuZHJpdmUnLCBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhcHBJZCA9ICcyMzk4NjQwNjg4NDQnOworICAgICAgdmFyIGNvbnN0YW50cyA9IHsKKyAgICAgICAgQVBQX0lEOiBhcHBJZCwKKyAgICAgICAgQU5DSE9SX05BTUU6IGFwcElkICsgJy50cmFjZV92aWV3ZXInLAorICAgICAgICBERVZFTE9QRVJfS0VZOiAnQUl6YVN5RFItNl93TDl2SGcxX296NEpIazhJUUFrdjJfWTBZOC1NJywKKyAgICAgICAgQ0xJRU5UX0lEOiAnMjM5ODY0MDY4ODQ0LWM3Z2VmYmZkY3AwajZncmx0dWxoMnI4OHRzdmwxOGMxLmFwcHMuJyArCisgICAgICAgICAgICAnZ29vZ2xldXNlcmNvbnRlbnQuY29tJywKKyAgICAgICAgU0NPUEU6IFsKKyAgICAgICAgICAgICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RyaXZlJywKKyAgICAgICAgICAgICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RyaXZlLmluc3RhbGwnLAorICAgICAgICAgICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvZHJpdmUuZmlsZScsCisgICAgICAgICAgICAncHJvZmlsZScKKyAgICAgICAgXQorICAgICAgfTsKKworICAgICAgcmV0dXJuIHsKKyAgICAgICAgZ2V0RHJpdmVGaWxlSWQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gZHJpdmVGaWxlSWRfOyB9LAorICAgICAgICBjb25zdGFudHM6IGNvbnN0YW50cworICAgICAgfTsKKyAgICB9KTsKKworCisgICAgdmFyIHBpY2tlckFwaUxvYWRlZF8gPSBmYWxzZTsKKyAgICB2YXIgb2F1dGhUb2tlbl8gPSBudWxsOworCisgICAgdmFyIHRpbWVsaW5lVmlld0VsXyA9IG51bGw7CisgICAgdmFyIGRyaXZlRG9jdW1lbnRfID0gbnVsbDsKKyAgICB2YXIgc2hhcmVDbGllbnRfID0gbnVsbDsKKyAgICB2YXIgZmlsZUlkVG9Mb2FkXyA9IG51bGw7CisgICAgdmFyIGRyaXZlRmlsZUlkXyA9IG51bGw7CisKKyAgICBmdW5jdGlvbiBwYXJzZUdFVFBhcmFtZXRlcih2YWwpIHsKKyAgICAgIHZhciByZXN1bHQgPSBudWxsOworICAgICAgdmFyIHRtcCA9IFtdOworICAgICAgbG9jYXRpb24uc2VhcmNoLnN1YnN0cigxKS5zcGxpdCgnJicpLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAgICAgICB0bXAgPSBpdGVtLnNwbGl0KCc9Jyk7CisgICAgICAgIGlmICh0bXBbMF0gPT09IHZhbCkKKyAgICAgICAgICByZXN1bHQgPSBkZWNvZGVVUklDb21wb25lbnQodG1wWzFdKTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBVc2UgdGhlIEdvb2dsZSBBUEkgTG9hZGVyIHNjcmlwdCB0byBsb2FkIHRoZSBnb29nbGUucGlja2VyIHNjcmlwdC4KKyAgICBvbkFQSUNsaWVudExvYWRlZF8gPSBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBkcml2ZVN0YXRlID0gcGFyc2VHRVRQYXJhbWV0ZXIoJ3N0YXRlJyk7CisgICAgICBpZiAoZHJpdmVTdGF0ZSAhPSBudWxsKSB7CisgICAgICAgIHZhciBkcml2ZVN0YXRlSnNvbiA9IEpTT04ucGFyc2UoZHJpdmVTdGF0ZSk7CisgICAgICAgIGZpbGVJZFRvTG9hZF8gPSBTdHJpbmcoZHJpdmVTdGF0ZUpzb24uaWRzKTsKKyAgICAgIH0KKworICAgICAgZ2FwaS5sb2FkKCdwaWNrZXInLCB7J2NhbGxiYWNrJzogb25QaWNrZXJBcGlMb2FkfSk7CisgICAgICBnYXBpLmxvYWQoJ2F1dGgnLCB7J2NhbGxiYWNrJzogZnVuY3Rpb24oKSB7CisgICAgICAgIG9uQXV0aEFwaUxvYWQodHJ1ZSwgb25BdXRoUmVzdWx0U3VjY2Vzcyk7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gb25SZXBlYXRBdXRoQXBpTG9hZCgpIHsKKyAgICAgICAgICBvbkF1dGhBcGlMb2FkKHRydWUsIGZ1bmN0aW9uKCkge30pOworICAgICAgICAgIHNldFRpbWVvdXQob25SZXBlYXRBdXRoQXBpTG9hZCwgMzAwMDApOworICAgICAgICB9LCAzMDAwMCk7CisgICAgICB9fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25BdXRoQXBpTG9hZCh0cnlJbW1lZGlhdGUsIHJlc3VsdENhbGxiYWNrKSB7CisgICAgICB3aW5kb3cuZ2FwaS5hdXRoLmF1dGhvcml6ZSgKKyAgICAgICAgICB7J2NsaWVudF9pZCc6IHRyLnVpLmUuZHJpdmUuY29uc3RhbnRzLkNMSUVOVF9JRCwKKyAgICAgICAgICAgJ3Njb3BlJzogdHIudWkuZS5kcml2ZS5jb25zdGFudHMuU0NPUEUsICdpbW1lZGlhdGUnOiB0cnlJbW1lZGlhdGV9LAorICAgICAgICAgIGZ1bmN0aW9uKGF1dGhSZXN1bHQpIHsKKyAgICAgICAgICAgIGhhbmRsZUF1dGhSZXN1bHQoYXV0aFJlc3VsdCwgdHJ5SW1tZWRpYXRlLCByZXN1bHRDYWxsYmFjayk7CisgICAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25QaWNrZXJBcGlMb2FkKCkgeworICAgICAgcGlja2VyQXBpTG9hZGVkXyA9IHRydWU7CisgICAgICBpZiAoZmlsZUlkVG9Mb2FkXyA9PSBudWxsKQorICAgICAgICBjcmVhdGVQaWNrZXIoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkF1dGhSZXN1bHRTdWNjZXNzKCkgeworICAgICAgaWYgKGZpbGVJZFRvTG9hZF8gPT0gbnVsbCkKKyAgICAgICAgY3JlYXRlUGlja2VyKCk7CisgICAgICBlbHNlCisgICAgICAgIGxvYWRGaWxlRnJvbURyaXZlKGZpbGVJZFRvTG9hZF8pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGhhbmRsZUF1dGhSZXN1bHQoYXV0aFJlc3VsdCwgd2FzSW1tZWRpYXRlLCByZXN1bHRDYWxsYmFjaykgeworICAgICAgaWYgKGF1dGhSZXN1bHQgJiYgIWF1dGhSZXN1bHQuZXJyb3IpIHsKKyAgICAgICAgb2F1dGhUb2tlbl8gPSBhdXRoUmVzdWx0LmFjY2Vzc190b2tlbjsKKyAgICAgICAgcmVzdWx0Q2FsbGJhY2soKTsKKyAgICAgIH0gZWxzZSBpZiAod2FzSW1tZWRpYXRlKSB7CisgICAgICAgIG9uQXV0aEFwaUxvYWQoZmFsc2UpOworICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGNyZWF0ZVBpY2tlcigpIHsKKyAgICAgIGlmIChwaWNrZXJBcGlMb2FkZWRfICYmIG9hdXRoVG9rZW5fKSB7CisgICAgICAgIHZhciB2aWV3ID0gbmV3IGdvb2dsZS5waWNrZXIuVmlldyhnb29nbGUucGlja2VyLlZpZXdJZC5ET0NTKTsKKyAgICAgICAgdmlldy5zZXRNaW1lVHlwZXMoJ2FwcGxpY2F0aW9uL2pzb24sYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyk7CisgICAgICAgIHZhciBwaWNrZXIgPSBuZXcgZ29vZ2xlLnBpY2tlci5QaWNrZXJCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgLmVuYWJsZUZlYXR1cmUoZ29vZ2xlLnBpY2tlci5GZWF0dXJlLk5BVl9ISURERU4pCisgICAgICAgICAgICAgICAgICAgICAgIC5lbmFibGVGZWF0dXJlKGdvb2dsZS5waWNrZXIuRmVhdHVyZS5NVUxUSVNFTEVDVF9FTkFCTEVEKQorICAgICAgICAgICAgICAgICAgICAgICAuc2V0QXBwSWQodHIudWkuZS5kcml2ZS5jb25zdGFudHMuQVBQX0lEKQorICAgICAgICAgICAgICAgICAgICAgICAuc2V0T0F1dGhUb2tlbihvYXV0aFRva2VuXykKKyAgICAgICAgICAgICAgICAgICAgICAgLmFkZFZpZXcodmlldykKKyAgICAgICAgICAgICAgICAgICAgICAgLmFkZFZpZXcobmV3IGdvb2dsZS5waWNrZXIuRG9jc1VwbG9hZFZpZXcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgLnNldERldmVsb3BlcktleSh0ci51aS5lLmRyaXZlLmNvbnN0YW50cy5ERVZFTE9QRVJfS0VZKQorICAgICAgICAgICAgICAgICAgICAgICAuc2V0Q2FsbGJhY2socGlja2VyQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgICAgIC5idWlsZCgpOworICAgICAgICBwaWNrZXIuc2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBwaWNrZXJDYWxsYmFjayhkYXRhKSB7CisgICAgICBpZiAoZGF0YS5hY3Rpb24gPT0gZ29vZ2xlLnBpY2tlci5BY3Rpb24uUElDS0VEKSB7CisgICAgICAgIGxvYWRGaWxlRnJvbURyaXZlKGRhdGEuZG9jc1swXS5pZCk7CisgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5pdFNoYXJlQnV0dG9uKCkgeworICAgICAgc2hhcmVDbGllbnRfID0gbmV3IGdhcGkuZHJpdmUuc2hhcmUuU2hhcmVDbGllbnQoCisgICAgICAgICAgdHIudWkuZS5kcml2ZS5jb25zdGFudHMuQVBQX0lEKTsKKyAgICAgIHNoYXJlQ2xpZW50Xy5zZXRJdGVtSWRzKFtkcml2ZUZpbGVJZF9dKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2FkRmlsZUZyb21Ecml2ZShmaWxlSWQpIHsKKyAgICAgIGdhcGkuY2xpZW50LmxvYWQoJ2RyaXZlJywgJ3YyJywgZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gZ2FwaS5jbGllbnQuZHJpdmUuZmlsZXMuZ2V0KHsnZmlsZUlkJzogZmlsZUlkfSk7CisgICAgICAgIHJlcXVlc3QuZXhlY3V0ZShmdW5jdGlvbihyZXNwKSB7IGRvd25sb2FkRmlsZShyZXNwKTsgfSk7CisgICAgICAgIGRyaXZlRmlsZUlkXyA9IGZpbGVJZDsKKyAgICAgICAgZ2FwaS5sb2FkKCdkcml2ZS1zaGFyZScsIGluaXRTaGFyZUJ1dHRvbik7CisgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkb3dubG9hZEZpbGUoZmlsZSkgeworICAgICAgaWYgKGZpbGUuZG93bmxvYWRVcmwpIHsKKyAgICAgICAgdmFyIGRvd25sb2FkaW5nT3ZlcmxheSA9IHRyLnVpLmIuT3ZlcmxheSgpOworICAgICAgICBkb3dubG9hZGluZ092ZXJsYXkudGl0bGUgPSAnRG93bmxvYWRpbmcuLi4nOworICAgICAgICBkb3dubG9hZGluZ092ZXJsYXkudXNlckNhbkNsb3NlID0gZmFsc2U7CisgICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS5tc2dFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBkb3dubG9hZGluZ092ZXJsYXkuYXBwZW5kQ2hpbGQoZG93bmxvYWRpbmdPdmVybGF5Lm1zZ0VsKTsKKyAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5Lm1zZ0VsLnN0eWxlLm1hcmdpbiA9ICcyMHB4JzsKKyAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnVwZGF0ZSA9IGZ1bmN0aW9uKG1zZykgeworICAgICAgICAgIHRoaXMubXNnRWwudGV4dENvbnRlbnQgPSBtc2c7CisgICAgICAgIH0KKyAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnZpc2libGUgPSB0cnVlOworCisgICAgICAgIHZhciBhY2Nlc3NUb2tlbiA9IGdhcGkuYXV0aC5nZXRUb2tlbigpLmFjY2Vzc190b2tlbjsKKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub3BlbignR0VUJywgZmlsZS5kb3dubG9hZFVybCk7CisgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgYWNjZXNzVG9rZW4pOworICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnZpc2libGUgPSBmYWxzZTsKKyAgICAgICAgICBvbkRvd25sb2FkZWQoZmlsZS50aXRsZSwgeGhyLnJlc3BvbnNlVGV4dCk7CisgICAgICAgIH07CisgICAgICAgIHhoci5vbnByb2dyZXNzID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnVwZGF0ZSgKKyAgICAgICAgICAgICAgTWF0aC5mbG9vcihldnQucG9zaXRpb24gKiAxMDAgLyBmaWxlLmZpbGVTaXplKSArICclIGNvbXBsZXRlJyk7CisgICAgICAgIH07CisgICAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGFsZXJ0KCdGYWlsZWQgZG93bmxvYWRpbmchJyk7IH07CisgICAgICAgIHhoci5zZW5kKCk7CisgICAgICB9IGVsc2UgeworICAgICAgICBhbGVydCgnTm8gVVJMIScpOworICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGRpc3BsYXlBbGxDb2xsYWJvcmF0b3JzKCkgeworICAgICAgdmFyIGFsbENvbGxhYm9yYXRvcnMgPSBkcml2ZURvY3VtZW50Xy5nZXRDb2xsYWJvcmF0b3JzKCk7CisgICAgICB2YXIgY29sbGFib3JhdG9yQ291bnQgPSBhbGxDb2xsYWJvcmF0b3JzLmxlbmd0aDsKKyAgICAgIHZhciBjb2xsYWJzcGFuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbGxhYnMnKTsKKyAgICAgIGNvbGxhYnNwYW4uaW5uZXJIVE1MID0gJyc7CisgICAgICB2YXIgaW1hZ2VMaXN0ID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbGxhYm9yYXRvckNvdW50OyBpKyspIHsKKyAgICAgICAgdmFyIHVzZXIgPSBhbGxDb2xsYWJvcmF0b3JzW2ldOworCisgICAgICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgICAgICAgaW1nLnNyYyA9IHVzZXIucGhvdG9Vcmw7CisgICAgICAgIGltZy5hbHQgPSB1c2VyLmRpc3BsYXlOYW1lOworICAgICAgICBpbWcuaGVpZ2h0ID0gMzA7CisgICAgICAgIGltZy53aWR0aCA9IDMwOworICAgICAgICBpbWcuY2xhc3NOYW1lID0gJ2NvbGxhYm9yYXRvci1pbWcnOworICAgICAgICBjb2xsYWJzcGFuLmFwcGVuZENoaWxkKGltZyk7CisgICAgICAgIGltYWdlTGlzdC5wdXNoKHsnaW1hZ2UnOiBpbWcsICduYW1lJzogdXNlci5kaXNwbGF5TmFtZX0pOworICAgICAgfQorICAgICAgZm9yIChpID0gMDsgaSA8IGltYWdlTGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgY29sbGFiVG9vbHRpcCA9IHRyLnVpLmIuY3JlYXRlRGl2KHsKKyAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NvbGxhYm9yYXRvci10b29sdGlwJworICAgICAgICB9KTsKKyAgICAgICAgdmFyIGNvbGxhYlRvb2x0aXBDb250ZW50ID0gdHIudWkuYi5jcmVhdGVEaXYoeworICAgICAgICAgICAgY2xhc3NOYW1lOiAnY29sbGFib3JhdG9yLXRvb2x0aXAtY29udGVudCcKKyAgICAgICAgfSk7CisgICAgICAgIGNvbGxhYlRvb2x0aXBDb250ZW50LnRleHRDb250ZW50ID0gaW1hZ2VMaXN0W2ldLm5hbWU7CisgICAgICAgIGNvbGxhYlRvb2x0aXAuYXBwZW5kQ2hpbGQoY29sbGFiVG9vbHRpcENvbnRlbnQpOworICAgICAgICBjb2xsYWJzcGFuLmFwcGVuZENoaWxkKGNvbGxhYlRvb2x0aXApOworICAgICAgICB2YXIgY29sbGFiVG9vbHRpcEFycm93ID0gdHIudWkuYi5jcmVhdGVEaXYoeworICAgICAgICAgICAgY2xhc3NOYW1lOiAnY29sbGFib3JhdG9yLXRvb2x0aXAtYXJyb3cnfSk7CisgICAgICAgIGNvbGxhYlRvb2x0aXAuYXBwZW5kQ2hpbGQoY29sbGFiVG9vbHRpcEFycm93KTsKKyAgICAgICAgdmFyIGNvbGxhYlRvb2x0aXBBcnJvd0JlZm9yZSA9IHRyLnVpLmIuY3JlYXRlRGl2KHsKKyAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NvbGxhYm9yYXRvci10b29sdGlwLWFycm93LWJlZm9yZSd9KTsKKyAgICAgICAgY29sbGFiVG9vbHRpcEFycm93LmFwcGVuZENoaWxkKGNvbGxhYlRvb2x0aXBBcnJvd0JlZm9yZSk7CisgICAgICAgIHZhciBjb2xsYWJUb29sdGlwQXJyb3dBZnRlciA9IHRyLnVpLmIuY3JlYXRlRGl2KHsKKyAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NvbGxhYm9yYXRvci10b29sdGlwLWFycm93LWFmdGVyJ30pOworICAgICAgICBjb2xsYWJUb29sdGlwQXJyb3cuYXBwZW5kQ2hpbGQoY29sbGFiVG9vbHRpcEFycm93QWZ0ZXIpOworCisgICAgICAgIHZhciByZWN0ID0gaW1hZ2VMaXN0W2ldLmltYWdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBjb2xsYWJUb29sdGlwLnN0eWxlLnRvcCA9IChyZWN0LmJvdHRvbSAtIDYpICsgJ3B4JzsKKyAgICAgICAgY29sbGFiVG9vbHRpcC5zdHlsZS5sZWZ0ID0KKyAgICAgICAgICAgIChyZWN0LmxlZnQgKyAxNiAtIChjb2xsYWJUb29sdGlwLm9mZnNldFdpZHRoIC8gMikpICsgJ3B4JzsKKyAgICAgICAgY29sbGFiVG9vbHRpcEFycm93LnN0eWxlLmxlZnQgPSAoY29sbGFiVG9vbHRpcC5vZmZzZXRXaWR0aCAvIDIpICsgJ3B4JzsKKyAgICAgICAgY29sbGFiVG9vbHRpcC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7CisgICAgICAgIGZ1bmN0aW9uIHZpc2liaWxpdHlEZWxlZ2F0ZShlbGVtZW50LCB2aXNpYmlsaXR5KSB7CisgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gdmlzaWJpbGl0eTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW1hZ2VMaXN0W2ldLmltYWdlLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgICAnbW91c2VvdmVyJywgdmlzaWJpbGl0eURlbGVnYXRlKGNvbGxhYlRvb2x0aXAsICd2aXNpYmxlJykpOworICAgICAgICBpbWFnZUxpc3RbaV0uaW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICdtb3VzZW91dCcsIHZpc2liaWxpdHlEZWxlZ2F0ZShjb2xsYWJUb29sdGlwLCAnaGlkZGVuJykpOworICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIG9uUmVhbHRpbWVGaWxlTG9hZGVkKGRvYykgeworICAgICAgaWYgKGRyaXZlRG9jdW1lbnRfKQorICAgICAgICBkcml2ZURvY3VtZW50Xy5jbG9zZSgpOworICAgICAgZHJpdmVEb2N1bWVudF8gPSBkb2M7CisgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihnYXBpLmRyaXZlLnJlYWx0aW1lLkV2ZW50VHlwZS5DT0xMQUJPUkFUT1JfSk9JTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUFsbENvbGxhYm9yYXRvcnMpOworICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoZ2FwaS5kcml2ZS5yZWFsdGltZS5FdmVudFR5cGUuQ09MTEFCT1JBVE9SX0xFRlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5QWxsQ29sbGFib3JhdG9ycyk7CisKKyAgICAgIGRpc3BsYXlBbGxDb2xsYWJvcmF0b3JzKGRvYyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25SZWFsdGltZUVycm9yKGUpIHsKKyAgICAgIGFsZXJ0KCdFcnJvciBsb2FkaW5nIHJlYWx0aW1lOiAnICsgZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25Eb3dubG9hZGVkKGZpbGVuYW1lLCBjb250ZW50KSB7CisgICAgICBnYXBpLmxvYWQoJ2F1dGg6Y2xpZW50LGRyaXZlLXJlYWx0aW1lLGRyaXZlLXNoYXJlJywgZnVuY3Rpb24oKSB7CisgICAgICAgIGdhcGkuZHJpdmUucmVhbHRpbWUubG9hZChkcml2ZUZpbGVJZF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlYWx0aW1lRmlsZUxvYWRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlYWx0aW1lRXJyb3IpOworCisgICAgICB9KTsKKworICAgICAgdmFyIHRyYWNlcyA9IFtdOworICAgICAgdmFyIGZpbGVuYW1lcyA9IFtdOworICAgICAgZmlsZW5hbWVzLnB1c2goZmlsZW5hbWUpOworICAgICAgdHJhY2VzLnB1c2goY29udGVudCk7CisgICAgICBjcmVhdGVWaWV3RnJvbVRyYWNlcyhmaWxlbmFtZXMsIHRyYWNlcyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY3JlYXRlVmlld0Zyb21UcmFjZXMoZmlsZW5hbWVzLCB0cmFjZXMpIHsKKyAgICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgICB2YXIgcCA9IG0uaW1wb3J0VHJhY2VzV2l0aFByb2dyZXNzRGlhbG9nKHRyYWNlcywgdHJ1ZSk7CisgICAgICBwLnRoZW4oCisgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0aW1lbGluZVZpZXdFbF8ubW9kZWwgPSBtOworICAgICAgICAgICAgdGltZWxpbmVWaWV3RWxfLnVwZGF0ZURvY3VtZW50RmF2aWNvbigpOworICAgICAgICAgICAgdGltZWxpbmVWaWV3RWxfLmdsb2JhbE1vZGUgPSB0cnVlOworICAgICAgICAgICAgdGltZWxpbmVWaWV3RWxfLnZpZXdUaXRsZSA9ICcnOworICAgICAgICAgIH0sCisgICAgICAgICAgZnVuY3Rpb24oZXJyKSB7CisgICAgICAgICAgICB2YXIgZG93bmxvYWRpbmdPdmVybGF5ID0gbmV3IHRyLnVpLmIuT3ZlcmxheSgpOworICAgICAgICAgICAgZG93bmxvYWRpbmdPdmVybGF5LnRleHRDb250ZW50ID0KKyAgICAgICAgICAgICAgICB0ci5iLm5vcm1hbGl6ZUV4Y2VwdGlvbihlcnIpLm1lc3NhZ2U7CisgICAgICAgICAgICBkb3dubG9hZGluZ092ZXJsYXkudGl0bGUgPSAnSW1wb3J0IGVycm9yJzsKKyAgICAgICAgICAgIGRvd25sb2FkaW5nT3ZlcmxheS52aXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblNhdmVUb0Rpc2tDbGlja2VkKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblNhdmVUb0RyaXZlQ2xpY2tlZCgpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25Mb2FkRnJvbURyaXZlQ2xpY2tlZCgpIHsKKyAgICAgIGNyZWF0ZVBpY2tlcigpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uTG9hZCgpIHsKKyAgICAgIHRpbWVsaW5lVmlld0VsXyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3gtdGltZWxpbmUtdmlldycpOworICAgICAgdGltZWxpbmVWaWV3RWxfLmdsb2JhbE1vZGUgPSB0cnVlOworICAgICAgdmFyIG5hdmJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZiYXInKTsKKyAgICAgIHRpbWVsaW5lVmlld0VsXy5zdHlsZS50b3AgPSBuYXZiYXIub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsKKyAgICAgIHRyLnVpLmIuZGVjb3JhdGUodGltZWxpbmVWaWV3RWxfLCB0ci51aS5UaW1lbGluZVZpZXcpOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25Mb2FkKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4LWRyaXZlLXNhdmUtdG8tZGlzaycpLm9uY2xpY2sgPQorICAgICAgICBvblNhdmVUb0Rpc2tDbGlja2VkOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4LWRyaXZlLXNhdmUtdG8tZHJpdmUnKS5vbmNsaWNrID0KKyAgICAgICAgb25TYXZlVG9Ecml2ZUNsaWNrZWQ7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gtZHJpdmUtbG9hZC1mcm9tLWRyaXZlJykub25jbGljayA9CisgICAgICAgIG9uTG9hZEZyb21Ecml2ZUNsaWNrZWQ7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gtZHJpdmUtc2hhcmUnKS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CisgICAgICBzaGFyZUNsaWVudF8uc2hvd1NldHRpbmdzRGlhbG9nKCk7CisgICAgfTsKKworICB9KCkpOworCisgIDwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIKKyAgICAgICAgICBzcmM9Imh0dHBzOi8vYXBpcy5nb29nbGUuY29tL2pzL2NsaWVudC5qcz9vbmxvYWQ9b25BUElDbGllbnRMb2FkZWRfIj4KKyAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9oaWdobGlnaHRlci92c3luY19oaWdobGlnaHRlci5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvaGlnaGxpZ2h0ZXIvdnN5bmNfaGlnaGxpZ2h0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTM4MGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvaGlnaGxpZ2h0ZXIvdnN5bmNfaGlnaGxpZ2h0ZXIuaHRtbApAQCAtMCwwICsxLDEyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2hpZ2hsaWdodGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL21vZGVsX3RyYWNrLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgUHJvdmlkZXMgdGhlIFZTeW5jSGlnaGxpZ2h0ZXIgY2xhc3MuCisgKi8KK3RyLmV4cG9ydFRvKCd0ci51aS5lLmhpZ2hsaWdodGVyJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIEhpZ2hsaWdodGVyID0gdHIudWkudHJhY2tzLkhpZ2hsaWdodGVyOworCisgIC8qKgorICAgKiBIaWdobGlnaHRzIFZTeW5jIGV2ZW50cyBvbiB0aGUgbW9kZWwgdHJhY2sgKHVzaW5nICJ6ZWJyYSIgc3RyaXBpbmcpLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIGZ1bmN0aW9uIFZTeW5jSGlnaGxpZ2h0ZXIodmlld3BvcnQpIHsKKyAgICBIaWdobGlnaHRlci5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICB0aGlzLnRpbWVzXyA9IFtdOworICB9CisKKyAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ISUdITElHSFRfQ09MT1IgPSB7cjogMCwgZzogMCwgYjogMjU1fTsKKyAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ISUdITElHSFRfQUxQSEEgPSAwLjE7CisKKyAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ERU5TSVRZX1RSQU5TUEFSRU5UID0gMC4yMDsKKyAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ERU5TSVRZX09QQVFVRSA9IDAuMTA7CisgIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfREVOU0lUWV9SQU5HRSA9CisgICAgICBWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0RFTlNJVFlfVFJBTlNQQVJFTlQgLQorICAgICAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ERU5TSVRZX09QQVFVRTsKKworICAvKioKKyAgICogR2VuZXJhdGUgYSB6ZWJyYSBzdHJpcGluZyBmcm9tIGEgbGlzdCBvZiB0aW1lcy4KKyAgICovCisgIFZTeW5jSGlnaGxpZ2h0ZXIuZ2VuZXJhdGVTdHJpcGVzID0gZnVuY3Rpb24odGltZXMsIG1pblRpbWUsIG1heFRpbWUpIHsKKyAgICB2YXIgc3RyaXBlcyA9IFtdOworCisgICAgLy8gRmluZCB0aGUgbG93ZXN0IGFuZCBoaWdoZXN0IGluZGV4IHdpdGhpbiB0aGUgdmlld3BvcnQuCisgICAgdmFyIGxvd0luZGV4ID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAorICAgICAgICB0aW1lcywKKyAgICAgICAgZnVuY3Rpb24odGltZSkgeyByZXR1cm4gdGltZTsgfSwKKyAgICAgICAgbWluVGltZSk7CisgICAgaWYgKGxvd0luZGV4ID4gdGltZXMubGVuZ3RoKSB7CisgICAgICBsb3dJbmRleCA9IHRpbWVzLmxlbmd0aDsKKyAgICB9CisgICAgdmFyIGhpZ2hJbmRleCA9IGxvd0luZGV4IC0gMTsKKyAgICB3aGlsZSAodGltZXNbaGlnaEluZGV4ICsgMV0gPD0gbWF4VGltZSkgeworICAgICAgaGlnaEluZGV4Kys7CisgICAgfQorCisgICAgLy8gTXVzdCBzdGFydCBhdCBhbiBldmVuIGluZGV4IGFuZCBlbmQgYXQgYW4gb2RkIGluZGV4LgorICAgIGZvciAodmFyIGkgPSBsb3dJbmRleCAtIChsb3dJbmRleCAlIDIpOyBpIDw9IGhpZ2hJbmRleDsgaSArPSAyKSB7CisgICAgICB2YXIgbGVmdCA9IGkgPCBsb3dJbmRleCA/IG1pblRpbWUgOiB0aW1lc1tpXTsKKyAgICAgIHZhciByaWdodCA9IGkgKyAxID4gaGlnaEluZGV4ID8gbWF4VGltZSA6IHRpbWVzW2kgKyAxXTsKKyAgICAgIHN0cmlwZXMucHVzaChbbGVmdCwgcmlnaHRdKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RyaXBlczsKKyAgfQorCisgIFZTeW5jSGlnaGxpZ2h0ZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogSGlnaGxpZ2h0ZXIucHJvdG90eXBlLAorCisgICAgcHJvY2Vzc01vZGVsOiBmdW5jdGlvbihtb2RlbCkgeworICAgICAgdGhpcy50aW1lc18gPSBtb2RlbC5kZXZpY2UudlN5bmNUaW1lc3RhbXBzOworICAgIH0sCisKKyAgICBkcmF3SGlnaGxpZ2h0OiBmdW5jdGlvbihjdHgsIGR0LCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkLCB2aWV3SGVpZ2h0KSB7CisgICAgICBpZiAoIXRoaXMudmlld3BvcnRfLmhpZ2hsaWdodFZTeW5jKSB7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIHN0cmlwZXMgPSBWU3luY0hpZ2hsaWdodGVyLmdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgICB0aGlzLnRpbWVzXywgdmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICBpZiAoc3RyaXBlcy5sZW5ndGggPT0gMCkgeworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBzdHJpcGVSYW5nZSA9IHN0cmlwZXNbc3RyaXBlcy5sZW5ndGggLSAxXVsxXSAtIHN0cmlwZXNbMF1bMF07CisgICAgICB2YXIgc3RyaXBlRGVuc2l0eSA9IHN0cmlwZXMubGVuZ3RoIC8gKGR0LnNjYWxlWCAqIHN0cmlwZVJhbmdlKTsKKyAgICAgIHZhciBjbGFtcGVkU3RyaXBlRGVuc2l0eSA9IHRyLmIuY2xhbXAoc3RyaXBlRGVuc2l0eSwKKyAgICAgICAgICBWU3luY0hpZ2hsaWdodGVyLlZTWU5DX0RFTlNJVFlfT1BBUVVFLAorICAgICAgICAgIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfREVOU0lUWV9UUkFOU1BBUkVOVCk7CisgICAgICB2YXIgb3BhY2l0eSA9CisgICAgICAgICAgKFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfREVOU0lUWV9UUkFOU1BBUkVOVCAtIGNsYW1wZWRTdHJpcGVEZW5zaXR5KSAvCisgICAgICAgICAgVlN5bmNIaWdobGlnaHRlci5WU1lOQ19ERU5TSVRZX1JBTkdFOworICAgICAgaWYgKG9wYWNpdHkgPT0gMCkgeworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICAgIHZhciBoZWlnaHQgPSB2aWV3SGVpZ2h0ICogcGl4ZWxSYXRpbzsKKyAgICAgIGN0eC5maWxsU3R5bGUgPSB0ci51aS5iLmNvbG9yVG9SR0JBU3RyaW5nKAorICAgICAgICAgIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfSElHSExJR0hUX0NPTE9SLAorICAgICAgICAgIFZTeW5jSGlnaGxpZ2h0ZXIuVlNZTkNfSElHSExJR0hUX0FMUEhBICogb3BhY2l0eSk7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyaXBlcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgeExlZnRWaWV3ID0gZHQueFdvcmxkVG9WaWV3KHN0cmlwZXNbaV1bMF0pOworICAgICAgICB2YXIgeFJpZ2h0VmlldyA9IGR0LnhXb3JsZFRvVmlldyhzdHJpcGVzW2ldWzFdKTsKKyAgICAgICAgY3R4LmZpbGxSZWN0KHhMZWZ0VmlldywgMCwgeFJpZ2h0VmlldyAtIHhMZWZ0VmlldywgaGVpZ2h0KTsKKyAgICAgIH0KKyAgICB9CisgIH07CisKKyAgLy8gUmVnaXN0ZXIgdGhlIGhpZ2hsaWdodGVyLgorICB0ci51aS50cmFja3MuSGlnaGxpZ2h0ZXIucmVnaXN0ZXIoVlN5bmNIaWdobGlnaHRlcik7CisKKyAgcmV0dXJuIHsKKyAgICBWU3luY0hpZ2hsaWdodGVyOiBWU3luY0hpZ2hsaWdodGVyCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvaGlnaGxpZ2h0ZXIvdnN5bmNfaGlnaGxpZ2h0ZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvaGlnaGxpZ2h0ZXIvdnN5bmNfaGlnaGxpZ2h0ZXJfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMzE1ZGQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9oaWdobGlnaHRlci92c3luY19oaWdobGlnaHRlcl90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3RocmVhZC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL2hpZ2hsaWdodGVyL3ZzeW5jX2hpZ2hsaWdodGVyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKworICB2YXIgVlN5bmNIaWdobGlnaHRlciA9IHRyLnVpLmUuaGlnaGxpZ2h0ZXIuVlN5bmNIaWdobGlnaHRlcjsKKworICB2YXIgVklFV19MX1dPUkxEID0gMTAwOworICB2YXIgVklFV19SX1dPUkxEID0gMTAwMDsKKworICBmdW5jdGlvbiB0ZXN0R2VuZXJhdGVTdHJpcGVzKHRpbWVzLCBleHBlY3RlZFJhbmdlcykgeworICAgIHZhciByYW5nZXMgPSBWU3luY0hpZ2hsaWdodGVyLmdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgdGltZXMsIFZJRVdfTF9XT1JMRCwgVklFV19SX1dPUkxEKTsKKworICAgIGFzc2VydC5zYW1lRGVlcE1lbWJlcnMocmFuZ2VzLCBleHBlY3RlZFJhbmdlcyk7CisgIH0KKworICB0ZXN0KCdnZW5lcmF0ZUluc2lkZScsIGZ1bmN0aW9uKCkgeworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoW10sIFtdKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFsyMDAsIDUwMF0sIFtbMjAwLCA1MDBdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMjAwLCA1MDAsIDgwMCwgOTAwXSwgW1syMDAsIDUwMF0sIFs4MDAsIDkwMF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbMjAwLCA1MDAsIDgwMCwgOTAwLCA5OTgsIDk5OV0sCisgICAgICAgIFtbMjAwLCA1MDBdLCBbODAwLCA5MDBdLCBbOTk4LCA5OTldXSk7CisgIH0pOworCisgIHRlc3QoJ2dlbmVyYXRlT3V0c2lkZScsIGZ1bmN0aW9uKCkgeworICAgIC8vIEZhciBsZWZ0LgorICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDk5XSwgW10pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDEwLCA1MCwgOTldLCBbXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgOTksIDEwMSwgOTk5XSwgW1sxMDEsIDk5OV1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAxMCwgNTAsIDk5LCAxMDEsIDk5OV0sIFtbMTAxLCA5OTldXSk7CisKKyAgICAvLyBGYXIgcmlnaHQuCisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMTAwMSwgMjAwMF0sIFtdKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFsxMDAxLCAyMDAwLCAzMDAwLCA0MDAwXSwgW10pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzEwMSwgOTk5LCAxMDAxLCAyMDAwXSwgW1sxMDEsIDk5OV1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFsxMDEsIDk5OSwgMTAwMSwgMjAwMCwgMzAwMCwgNDAwMF0sIFtbMTAxLCA5OTldXSk7CisKKyAgICAvLyBGYXIgYm90aC4KKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCA5OSwgMTAwMSwgMjAwMF0sIFtdKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAxMCwgNTAsIDk5LCAxMDAxLCAyMDAwXSwgW10pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDEwLCA1MCwgOTksIDEwMDEsIDIwMDAsIDMwMDAsIDQwMDBdLCBbXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgOTksIDEwMSwgOTk5LCAxMDAxLCAyMDAwXSwgW1sxMDEsIDk5OV1dKTsKKyAgfSk7CisKKyAgdGVzdCgnZ2VuZXJhdGVPdmVybGFwJywgZnVuY3Rpb24oKSB7CisgICAgLy8gTGVmdCBvdmVybGFwLgorICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDEwMV0sIFtbVklFV19MX1dPUkxELCAxMDFdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgMSwgMiwgMTAxXSwgW1tWSUVXX0xfV09STEQsIDEwMV1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbMiwgMTAxLCAxMDIsIDEwM10sCisgICAgICAgIFtbVklFV19MX1dPUkxELCAxMDFdLCBbMTAyLCAxMDNdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgWzAsIDEsIDIsIDEwMSwgMTAyLCAxMDNdLAorICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMTAxXSwgWzEwMiwgMTAzXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCisgICAgICAgIFswLCAxLCAyLCAxMDEsIDEwMiwgMTAzLCAxMDAxLCAzMDAwXSwKKyAgICAgICAgW1tWSUVXX0xfV09STEQsIDEwMV0sIFsxMDIsIDEwM11dKTsKKworICAgIC8vIFJpZ2h0IG92ZXJsYXAuCisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbOTk5LCAyMDAwXSwgW1s5OTksIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFs5OTksIDIwMDAsIDMwMDAsIDQwMDBdLCBbWzk5OSwgVklFV19SX1dPUkxEXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCisgICAgICAgIFs5OTcsIDk5OCwgOTk5LCAyMDAwXSwKKyAgICAgICAgW1s5OTcsIDk5OF0sIFs5OTksIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbOTk3LCA5OTgsIDk5OSwgMjAwMCwgMzAwMCwgNDAwMF0sCisgICAgICAgIFtbOTk3LCA5OThdLCBbOTk5LCBWSUVXX1JfV09STERdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgWzAsIDEwLCA5OTcsIDk5OCwgOTk5LCAyMDAwLCAzMDAwLCA0MDAwXSwKKyAgICAgICAgW1s5OTcsIDk5OF0sIFs5OTksIFZJRVdfUl9XT1JMRF1dKTsKKworICAgIC8vIEJvdGggb3ZlcmxhcC4KKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCAyMDAwXSwgW1tWSUVXX0xfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbMCwgMTAxLCA5OTksIDIwMDBdLAorICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMTAxXSwgWzk5OSwgVklFV19SX1dPUkxEXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCisgICAgICAgIFswLCAxMDEsIDIwMCwgOTAwLCA5OTksIDIwMDBdLAorICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMTAxXSwgWzIwMCwgOTAwXSwgWzk5OSwgVklFV19SX1dPUkxEXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCisgICAgICAgIFswLCAxMCwgOTAsIDEwMSwgOTk5LCAyMDAwLCAzMDAwLCA0MDAwXSwKKyAgICAgICAgW1tWSUVXX0xfV09STEQsIDEwMV0sIFs5OTksIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbMCwgMTAsIDkwLCAxMDEsIDIwMCwgOTAwLCA5OTksIDIwMDAsIDMwMDAsIDQwMDBdLAorICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMTAxXSwgWzIwMCwgOTAwXSwgWzk5OSwgVklFV19SX1dPUkxEXV0pOworICB9KTsKKworICB0ZXN0KCdnZW5lcmF0ZU9kZCcsIGZ1bmN0aW9uKCkgeworICAgIC8vIE9uZSBWU3luYy4KKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswXSwgW1tWSUVXX0xfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFs1MDBdLCBbWzUwMCwgVklFV19SX1dPUkxEXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzE1MDBdLCBbXSk7CisKKyAgICAvLyBNdWx0aXBsZSBWU3luY3MuCisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcyhbMCwgMTAsIDIwXSwgW1tWSUVXX0xfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKFswLCA1MDAsIDIwMDBdLCBbW1ZJRVdfTF9XT1JMRCwgNTAwXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDEwLCA1MDBdLCBbWzUwMCwgVklFV19SX1dPUkxEXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIDEwLCAyMDAwXSwgW10pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCisgICAgICAgIFswLCAyMDAsIDUwMF0sCisgICAgICAgIFtbVklFV19MX1dPUkxELCAyMDBdLCBbNTAwLCBWSUVXX1JfV09STERdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgWzAsIDIwMCwgNTAwLCA5MDBdLAorICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgMjAwXSwgWzUwMCwgOTAwXV0pOworICB9KTsKKworICB0ZXN0KCdnZW5lcmF0ZUJvcmRlcicsIGZ1bmN0aW9uKCkgeworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoWzAsIFZJRVdfTF9XT1JMRF0sIFtbVklFV19MX1dPUkxELCBWSUVXX0xfV09STERdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgW1ZJRVdfTF9XT1JMRCwgVklFV19MX1dPUkxEXSwKKyAgICAgICAgW1tWSUVXX0xfV09STEQsIFZJRVdfTF9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbVklFV19SX1dPUkxELCAyMDAwXSwKKyAgICAgICAgW1tWSUVXX1JfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbVklFV19SX1dPUkxELCBWSUVXX1JfV09STERdLAorICAgICAgICBbW1ZJRVdfUl9XT1JMRCwgVklFV19SX1dPUkxEXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCisgICAgICAgIFtWSUVXX0xfV09STEQsIFZJRVdfUl9XT1JMRF0sCisgICAgICAgIFtbVklFV19MX1dPUkxELCBWSUVXX1JfV09STERdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgW1ZJRVdfTF9XT1JMRCwgMjAwLCA1MDAsIFZJRVdfUl9XT1JMRF0sCisgICAgICAgIFtbVklFV19MX1dPUkxELCAyMDBdLCBbNTAwLCBWSUVXX1JfV09STERdXSk7CisgICAgdGVzdEdlbmVyYXRlU3RyaXBlcygKKyAgICAgICAgWzAsIFZJRVdfTF9XT1JMRCwgVklFV19SX1dPUkxELCAyMDAwXSwKKyAgICAgICAgW1tWSUVXX0xfV09STEQsIFZJRVdfTF9XT1JMRF0sIFtWSUVXX1JfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbMCwgVklFV19MX1dPUkxELCBWSUVXX1JfV09STEQsIDIwMDBdLAorICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgVklFV19MX1dPUkxEXSwgW1ZJRVdfUl9XT1JMRCwgVklFV19SX1dPUkxEXV0pOworICAgIHRlc3RHZW5lcmF0ZVN0cmlwZXMoCisgICAgICAgIFswLCBWSUVXX0xfV09STEQsIDIwMCwgNTAwLCBWSUVXX1JfV09STEQsIDIwMDBdLAorICAgICAgICBbW1ZJRVdfTF9XT1JMRCwgVklFV19MX1dPUkxEXSwgWzIwMCwgNTAwXSwKKyAgICAgICAgIFtWSUVXX1JfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKKyAgICB0ZXN0R2VuZXJhdGVTdHJpcGVzKAorICAgICAgICBbMCwgMTAsIFZJRVdfTF9XT1JMRCwgVklFV19SX1dPUkxELCAyMDAwLCAzMDAwXSwKKyAgICAgICAgW1tWSUVXX0xfV09STEQsIFZJRVdfUl9XT1JMRF1dKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NpZGVfcGFuZWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zaWRlX3BhbmVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNkYmQ5MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zaWRlX3BhbmVsLmh0bWwKQEAgLTAsMCArMSwyNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL3JhaWwvcmFpbF9zY29yZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvaXJfY292ZXJhZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL2FuYWx5c2lzX2xpbmsuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29sb3JfbGVnZW5kLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RhYmxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NwYW4uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3NpZGVfcGFuZWwvc2lkZV9wYW5lbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLXVpLWUtcmFpbC1yYWlsLXNjb3JlLXNpZGUtcGFuZWwnCisgICAgZXh0ZW5kcz0ndHItdWktc2lkZS1wYW5lbCc+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICB3aWR0aDogNDUwcHg7CisgICAgICBvdmVyZmxvdy14OiBhdXRvOworICAgIH0KKworICAgICNzY29yZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2LCAyMzYsIDIzNikKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgIH0KKworICAgICNjb250ZW50IHsKKyAgICAgIG1pbi13aWR0aDogMDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleDogMSAxIGF1dG87CisgICAgfQorCisgICAgI2NvdmVyYWdlIHsKKyAgICAgIGZvbnQtc2l6ZTogMTBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKworICAgIDx0ci11aS1lLXJhaWwtcmFpbC1zY29yZS1zcGFuIGlkPSdzY29yZSc+PC90ci11aS1lLXJhaWwtcmFpbC1zY29yZS1zcGFuPgorICAgIDx0ci11aS1iLXRhYmxlIGlkPSJ0YWJsZSI+PC90ci11aS1iLXRhYmxlPgorCisgICAgPGRpdiBpZD0iY292ZXJhZ2UiPgorICAgICAgPGI+Q292ZXJhZ2U6PC9iPjxicj4KKyAgICAgIDx0ci11aS1hLWFuYWx5c2lzLWxpbmsgaWQ9J2Fzc29jaWF0ZWQtZXZlbnRzJz48L3RyLXVpLWEtYW5hbHlzaXMtbGluaz48YnI+CisgICAgICA8dHItdWktYS1hbmFseXNpcy1saW5rIGlkPSd1bmFzc29jaWF0ZWQtZXZlbnRzJz48L3RyLXVpLWEtYW5hbHlzaXMtbGluaz4KKyAgICA8L2Rpdj4KKyAgPC90ZW1wbGF0ZT4KKzwvcG9seW1lci1lbGVtZW50PgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBzZXRDb3ZlcmFnZUxpbmsoCisgICAgICBsaW5rLCBsYWJlbFN0cmluZywgZXZlbnRzLCBldmVudFJhdGlvLCBjcHVNcywgY3B1UmF0aW8pIHsKKyAgICBsaW5rLnNldFNlbGVjdGlvbkFuZENvbnRlbnQoZXZlbnRzKTsKKworICAgIGxhYmVsU3RyaW5nICs9ICcgJyArIGV2ZW50cy5sZW5ndGggKyAnIGV2ZW50cyc7CisgICAgbGFiZWxTdHJpbmcgKz0gJyAoJyArIHBhcnNlSW50KDEwMCAqIGV2ZW50UmF0aW8pICsgJyUpJzsKKyAgICBpZiAoY3B1UmF0aW8gIT09IHVuZGVmaW5lZCkKKyAgICAgIGxhYmVsU3RyaW5nICs9ICcsICc7CisgICAgbGluay5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsYWJlbFN0cmluZykpOworCisgICAgaWYgKGNwdVJhdGlvID09PSB1bmRlZmluZWQpCisgICAgICByZXR1cm47CisKKyAgICB2YXIgY3B1TXNTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICAvLyBUaGVyZSB3aWxsIGJlIHNvbWUgdGV4dCBhZnRlciB0aGUgY3B1TXNTcGFuLCB0aGF0IHNob3VsZCBiZSBvbiB0aGUgc2FtZQorICAgIC8vIGxpbmUgaWYgaXQgZml0cy4gVGhpcyAic3BhbiIgaGFzIGRpc3BsYXk6IGJsb2NrIGZvciBpdHMgc3BhcmtsaW5lLi4uIHNvIEkKKyAgICAvLyBndWVzcyBJJ2xsIHNldCBpdCBpbmxpbmUgaGVyZT8KKyAgICBjcHVNc1NwYW4uc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnOworICAgIGNwdU1zU3Bhbi5kdXJhdGlvbiA9IGNwdU1zOworICAgIC8vIFN0eWxlIHRoZSBjb250ZW50IGxpa2UgdGhlIGFuYWx5c2lzLWxpbmsuCisgICAgY3B1TXNTcGFuLiQuY29udGVudC5zdHlsZS50ZXh0RGVjb3JhdGlvbiA9ICd1bmRlcmxpbmUnOworICAgIGxpbmsuYXBwZW5kQ2hpbGQoY3B1TXNTcGFuKTsKKworICAgIHZhciBjcHVTdHJpbmcgPSAnICgnICsgcGFyc2VJbnQoMTAwICogY3B1UmF0aW8pICsgJyUpJzsKKyAgICBsaW5rLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNwdVN0cmluZykpOworICB9CisKKyAgUG9seW1lcigndHItdWktZS1yYWlsLXJhaWwtc2NvcmUtc2lkZS1wYW5lbCcsIHsKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnJhbmdlT2ZJbnRlcmVzdF8gPSBuZXcgdHIuYi5SYW5nZSgpOworICAgICAgdGhpcy5tb2RlbF8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLnJhaWxTY29yZV8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICB9LAorCisgICAgZ2V0IHRleHRMYWJlbCgpIHsKKyAgICAgcmV0dXJuICdSQUlMIEluZm8nOworICAgIH0sCisKKyAgICBzdXBwb3J0c01vZGVsOiBmdW5jdGlvbihtKSB7CisgICAgICBpZiAobSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSwKKyAgICAgICAgICByZWFzb246ICdVbmtub3duIHRyYWNpbmcgbW9kZWwnCisgICAgICAgIH07CisgICAgICB9CisKKyAgICAgIHZhciByYWlsU2NvcmUgPSB0ci5lLnJhaWwuUkFJTFNjb3JlLmZyb21Nb2RlbChtKTsKKyAgICAgIGlmIChyYWlsU2NvcmUgPT09IHVuZGVmaW5lZCkgeworICAgICAgICByZXR1cm4geworICAgICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCisgICAgICAgICAgcmVhc29uOiAnUkFJTCBpbnRlcmFjdGlvbnMgd2VyZSBub3QgZm91bmQgb24gdGhlIG1vZGVsJworICAgICAgICB9OworICAgICAgfQorCisgICAgICByZXR1cm4geworICAgICAgICBzdXBwb3J0ZWQ6IHRydWUKKyAgICAgIH07CisgICAgfSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICB9LAorCisgICAgc2V0IG1vZGVsKG1vZGVsKSB7CisgICAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOworICAgICAgdGhpcy5yYWlsU2NvcmVfID0gdHIuZS5yYWlsLlJBSUxTY29yZS5mcm9tTW9kZWwobW9kZWwpOworICAgICAgdGhpcy4kLnNjb3JlLnJhaWxTY29yZSA9IHRoaXMucmFpbFNjb3JlXzsKKworICAgICAgdmFyIGNvdmVyYWdlID0gdHIubW9kZWwuZ2V0SVJDb3ZlcmFnZUZyb21Nb2RlbChtb2RlbCk7CisgICAgICBpZiAoY292ZXJhZ2UpIHsKKyAgICAgICAgc2V0Q292ZXJhZ2VMaW5rKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjYXNzb2NpYXRlZC1ldmVudHMnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdBc3NvY2lhdGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdmVyYWdlLmFzc29jaWF0ZWRFdmVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3ZlcmFnZS5jb3ZlcmVkRXZlbnRzUmF0aW8sCisgICAgICAgICAgICAgICAgICAgICAgICBjb3ZlcmFnZS5hc3NvY2lhdGVkQ3B1TXMsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3ZlcmFnZS5jb3ZlcmVkQ3B1UmF0aW8pOworICAgICAgICBzZXRDb3ZlcmFnZUxpbmsodGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN1bmFzc29jaWF0ZWQtZXZlbnRzJyksCisgICAgICAgICAgICAgICAgICAgICAgICAnVW5hc3NvY2lhdGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdmVyYWdlLnVuYXNzb2NpYXRlZEV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdmVyYWdlLnVuY292ZXJlZEV2ZW50c1JhdGlvLAorICAgICAgICAgICAgICAgICAgICAgICAgY292ZXJhZ2UudW5hc3NvY2lhdGVkQ3B1TXMsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3ZlcmFnZS51bmNvdmVyZWRDcHVSYXRpbyk7CisgICAgICB9CisKKyAgICAgIHRoaXMudXBkYXRlVGFibGVfKCk7CisgICAgfSwKKworICAgIGdldCBsaXN0ZW5pbmdUb0tleXMoKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIHNldCByYW5nZU9mSW50ZXJlc3QocmFuZ2VPZkludGVyZXN0KSB7CisgICAgfSwKKworICAgIHVwZGF0ZVRhYmxlXzogZnVuY3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiB0b1RocmVlRGlnaXRMb2NhbGVTdHJpbmcodmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlU3RyaW5nKHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAzfSk7CisgICAgICB9CisKKyAgICAgIHZhciBjb2x1bW5zID0gWworICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdUeXBlJywKKyAgICAgICAgICB3aWR0aDogJzE1MHB4JywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24oaXIpIHsKKyAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItY29sb3ItbGVnZW5kJyk7CisgICAgICAgICAgICB2YXIgbGlua0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1hbmFseXNpcy1saW5rJyk7CisgICAgICAgICAgICBsaW5rRWwuc2V0U2VsZWN0aW9uQW5kQ29udGVudChuZXcgdHIubW9kZWwuRXZlbnRTZXQoW2lyXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpci5yYWlsVHlwZU5hbWUpOworICAgICAgICAgICAgZWwuc2V0TGFiZWxBbmRDb2xvcklkKGxpbmtFbCwgaXIuY29sb3JJZCk7CisgICAgICAgICAgICBlbC5jb21wb3VuZEV2ZW50U2VsZWN0aW9uU3RhdGUgPQorICAgICAgICAgICAgICAgIGlyLmNvbXB1dGVDb21wb3VuZEV2ZW5TZWxlY3Rpb25TdGF0ZSh0aGlzLnNlbGVjdGlvbl8pOworICAgICAgICAgICAgcmV0dXJuIGVsOworICAgICAgICAgIH0uYmluZCh0aGlzKSwKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBhLnJhaWxUeXBlTmFtZS5sb2NhbGVDb21wYXJlKGIucmFpbFR5cGVOYW1lKTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ0VmZmljaWVuY3knLAorICAgICAgICAgIHdpZHRoOiAnMzMlJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24oaXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b1RocmVlRGlnaXRMb2NhbGVTdHJpbmcoaXIubm9ybWFsaXplZEVmZmljaWVuY3kpOworICAgICAgICAgIH0sCisgICAgICAgICAgY21wOiBmdW5jdGlvbihhLCBiKSB7CisgICAgICAgICAgICByZXR1cm4gYS5ub3JtYWxpemVkRWZmaWNpZW5jeSAtIGIubm9ybWFsaXplZEVmZmljaWVuY3k7CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdQYWluJywKKyAgICAgICAgICB3aWR0aDogJzMzJScsCisgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKGlyKSB7CisgICAgICAgICAgICByZXR1cm4gdG9UaHJlZURpZ2l0TG9jYWxlU3RyaW5nKGlyLm5vcm1hbGl6ZWRVc2VyUGFpbik7CisgICAgICAgICAgfSwKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBhLm5vcm1hbGl6ZWRVc2VyUGFpbiAtIGIubm9ybWFsaXplZFVzZXJQYWluOworICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIHRpdGxlOiAnU2NvcmUnLAorICAgICAgICAgIHdpZHRoOiAnMzMlJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24oaXIpIHsKKyAgICAgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgICAgICAgc3Bhbi5zdHlsZS5mb250V2VpZ2h0ID0gJ2JvbGQnOworICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IHRvVGhyZWVEaWdpdExvY2FsZVN0cmluZyhpci5yYWlsU2NvcmUpOworICAgICAgICAgICAgcmV0dXJuIHNwYW47CisgICAgICAgICAgfSwKKyAgICAgICAgICBjbXA6IGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBhLnJhaWxTY29yZSAtIGIucmFpbFNjb3JlOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgXTsKKworICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlQ29sdW1ucyA9IGNvbHVtbnM7CisgICAgICBpZiAodGhpcy5yYWlsU2NvcmVfKQorICAgICAgICB0aGlzLiQudGFibGUudGFibGVSb3dzID0gdGhpcy5yYWlsU2NvcmVfLmludGVyYWN0aW9uUmVjb3JkczsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy4kLnRhYmxlLnRhYmxlUm93cyA9IFtdOworICAgICAgdGhpcy4kLnRhYmxlLnJlYnVpbGQoKTsKKyAgICB9LAorCisgICAgb25UYWJsZVNlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZWxlY3RlZElSID0gdGhpcy4kLnRhYmxlLnNlbGVjdGVkVGFibGVSb3c7CisKKyAgICAgIHZhciBldmVudCA9IG5ldyB0ci5jLlJlcXVlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOworICAgICAgZXZlbnQuc2VsZWN0aW9uID0gbmV3IHRyLmMuU2VsZWN0aW9uKFtzZWxlY3RlZElSXSk7CisgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgaWYgKHNlbGVjdGlvbiA9PT0gdW5kZWZpbmVkKQorICAgICAgICBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKworICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uXy5lcXVhbHMoc2VsZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSBzZWxlY3Rpb247CisgICAgICB0aGlzLnVwZGF0ZVRhYmxlXygpOworICAgIH0KKyAgfSk7Cit9KSgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfc2lkZV9wYW5lbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI3NjhiZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3JhaWwvcmFpbF9zY29yZV9zaWRlX3BhbmVsX3Rlc3QuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9yYWlsL3N0dWJfcmFpbF9pbnRlcmFjdGlvbl9yZWNvcmQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NpZGVfcGFuZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgdGVzdF91dGlscyA9IHRyLmMudGVzdF91dGlsczsKKyAgdmFyIENvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLkNvbXBvdW5kRXZlbnRTZWxlY3Rpb25TdGF0ZTsKKworICBmdW5jdGlvbiBjcmVhdGVNb2RlbChvcHRfY3VzdG9taXplTW9kZWxDYWxsYmFjaykgeworICAgIHJldHVybiB0ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBtb2RlbC5wMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIG1vZGVsLnQyID0gbW9kZWwucDEuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisKKyAgICAgIG1vZGVsLnMxID0gbW9kZWwudDIuc2xpY2VHcm91cC5wdXNoU2xpY2UodGVzdF91dGlscy5uZXdTbGljZUV4KHsKKyAgICAgICAgdGl0bGU6ICdhJywgc3RhcnQ6IDEwLCBlbmQ6IDIwCisgICAgICB9KSk7CisgICAgICBtb2RlbC5zMiA9IG1vZGVsLnQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKHRlc3RfdXRpbHMubmV3U2xpY2VFeCh7CisgICAgICAgIHRpdGxlOiAnYicsIHN0YXJ0OiAyMCwgZW5kOiAzMAorICAgICAgfSkpOworICAgICAgbW9kZWwuczMgPSBtb2RlbC50Mi5zbGljZUdyb3VwLnB1c2hTbGljZSh0ZXN0X3V0aWxzLm5ld1NsaWNlRXgoeworICAgICAgICB0aXRsZTogJ2MnLCBzdGFydDogMzAsIGVuZDogNDAKKyAgICAgIH0pKTsKKworICAgICAgbW9kZWwuaXIxID0gbmV3IHRyLmUucmFpbC5TdHViUkFJTEludGVyYWN0aW9uUmVjb3JkKHsKKyAgICAgICAgc3RhcnQ6IDAsIGVuZDogMTAwLAorICAgICAgICByYWlsVHlwZU5hbWU6ICdyYWlsX2lkbGUnLAorICAgICAgICBub3JtYWxpemVkRWZmaWNpZW5jeTogMC44LAorICAgICAgICBub3JtYWxpemVkVXNlclBhaW46IDAuMCwKKyAgICAgICAgYXNzb2NpYXRlZEV2ZW50czogWworICAgICAgICAgIHsKKyAgICAgICAgICAgIGd1aWQ6IDAsCisgICAgICAgICAgICBpc1RvcExldmVsOiB0cnVlLAorICAgICAgICAgICAgY3B1RHVyYXRpb246IDEKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0pOworICAgICAgbW9kZWwuYWRkSW50ZXJhY3Rpb25SZWNvcmQobW9kZWwuaXIxKTsKKyAgICAgIG1vZGVsLmlyMS5hc3NvY2lhdGVkRXZlbnRzLnB1c2gobW9kZWwuczEpOworCisgICAgICBtb2RlbC5pcjIgPSBuZXcgdHIuZS5yYWlsLlN0dWJSQUlMSW50ZXJhY3Rpb25SZWNvcmQoeworICAgICAgICBzdGFydDogMTAwLCBlbmQ6IDIwMCwKKyAgICAgICAgcmFpbFR5cGVOYW1lOiAncmFpbF9yZXNwb25zZScsCisgICAgICAgIG5vcm1hbGl6ZWRFZmZpY2llbmN5OiAwLjkyOTM1MjUyOTM5MjQyLAorICAgICAgICBub3JtYWxpemVkVXNlclBhaW46IDAuMjQxMjg0MzI4MjU4MjM1ODIsCisgICAgICAgIGFzc29jaWF0ZWRFdmVudHM6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICBndWlkOiAxLAorICAgICAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSwKKyAgICAgICAgICAgIGNwdUR1cmF0aW9uOiAxCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9KTsKKyAgICAgIG1vZGVsLmFkZEludGVyYWN0aW9uUmVjb3JkKG1vZGVsLmlyMik7CisKKyAgICAgIG1vZGVsLmlyMi5hc3NvY2lhdGVkRXZlbnRzLnB1c2gobW9kZWwuczIpOworICAgICAgbW9kZWwuaXIyLmFzc29jaWF0ZWRFdmVudHMucHVzaChtb2RlbC5zMyk7CisKKyAgICAgIGlmIChvcHRfY3VzdG9taXplTW9kZWxDYWxsYmFjaykKKyAgICAgICAgb3B0X2N1c3RvbWl6ZU1vZGVsQ2FsbGJhY2sobW9kZWwpOworICAgIH0pOworICB9CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLXJhaWwtcmFpbC1zY29yZS1zaWRlLXBhbmVsJyk7CisgICAgcGFuZWwubW9kZWwgPSBjcmVhdGVNb2RlbCgpOworICAgIHBhbmVsLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7CisKKyAgICB2YXIgcm93cyA9IHBhbmVsLiQudGFibGUudGFibGVSb3dzOworICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMik7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9yYWlsL3JhaWxfc2NvcmVfc3Bhbi5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NwYW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWJhOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvcmFpbC9yYWlsX3Njb3JlX3NwYW4uaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktZS1yYWlsLXJhaWwtc2NvcmUtc3BhbiI+CisgIDx0ZW1wbGF0ZT4KKyAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IHNwYW47CisgICAgfQorICA8L3N0eWxlPgorICA8c3BhbiBpZD0iY29udGVudCI+CisgICAgPHNwYW4+UkFJTCBTY29yZTogPC9zcGFuPjxzcGFuIGlkPSJzY29yZSI+PC9zcGFuPgorICA8L3NwYW4+CisgIDwvdGVtcGxhdGU+CisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucmFpbFNjb3JlXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy51cGRhdGVDb250ZW50XygpOworICAgIH0sCisKKyAgICBnZXQgcmFpbFNjb3JlKCkgeworICAgICAgcmV0dXJuIHRoaXMucmFpbFNjb3JlXzsKKyAgICB9LAorCisgICAgc2V0IHJhaWxTY29yZShyYWlsU2NvcmUpIHsKKyAgICAgIHRoaXMucmFpbFNjb3JlXyA9IHJhaWxTY29yZTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudF8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudF86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMucmFpbFNjb3JlXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuJC5jb250ZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHRoaXMuJC5jb250ZW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgIHZhciBvdmVyYWxsU2NvcmUgPSB0aGlzLnJhaWxTY29yZV8ub3ZlcmFsbFNjb3JlOworICAgICAgaWYgKG92ZXJhbGxTY29yZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLiQuc2NvcmUudGV4dENvbnRlbnQgPSBvdmVyYWxsU2NvcmUudG9Mb2NhbGVTdHJpbmcoCisgICAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICAgIHttaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDN9KTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc2lkZV9wYW5lbC9hbGVydHNfc2lkZV9wYW5lbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc2lkZV9wYW5lbC9hbGVydHNfc2lkZV9wYW5lbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2ZjU2ZWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2FsZXJ0c19zaWRlX3BhbmVsLmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zdGF0aXN0aWNzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2Nocm9tZV9tb2RlbF9oZWxwZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS90YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvc2lkZV9wYW5lbC9zaWRlX3BhbmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2xpbmVfY2hhcnQuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItdWktZS1zLWFsZXJ0cy1zaWRlLXBhbmVsJworICAgIGV4dGVuZHM9J3RyLXVpLXNpZGUtcGFuZWwnPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgd2lkdGg6IDI1MHB4OworICAgIH0KKyAgICAjY29udGVudCB7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgPC9zdHlsZT4KKworICAgIDxkaXYgaWQ9J2NvbnRlbnQnPgorICAgICAgPHRvb2xiYXIgaWQ9J3Rvb2xiYXInPjwvdG9vbGJhcj4KKyAgICAgIDxyZXN1bHQtYXJlYSBpZD0ncmVzdWx0X2FyZWEnPjwvcmVzdWx0LWFyZWE+CisgICAgPC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgICB0aGlzLnNlbGVjdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICB9LAorCisgICAgc2V0IG1vZGVsKG1vZGVsKSB7CisgICAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IGxpc3RlbmluZ1RvS2V5cygpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICB9LAorCisgICAgc2V0IHJhbmdlT2ZJbnRlcmVzdChyYW5nZU9mSW50ZXJlc3QpIHsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogRmlyZXMgYSBzZWxlY3Rpb24gZXZlbnQgc2VsZWN0aW5nIGFsbCBhbGVydHMgb2YgdGhlIHNwZWNpZmllZAorICAgICAqIHR5cGUuCisgICAgICovCisgICAgc2VsZWN0QWxlcnRzT2ZUeXBlOiBmdW5jdGlvbihhbGVydFR5cGVTdHJpbmcpIHsKKyAgICAgIHZhciBhbGVydHNPZlR5cGUgPSB0aGlzLm1vZGVsXy5hbGVydHMuZmlsdGVyKGZ1bmN0aW9uKGFsZXJ0KSB7CisgICAgICAgIHJldHVybiBhbGVydC50aXRsZSA9PT0gYWxlcnRUeXBlU3RyaW5nOworICAgICAgfSk7CisKKyAgICAgIHZhciBldmVudCA9IG5ldyB0ci5tb2RlbC5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTsKKyAgICAgIGV2ZW50LnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChhbGVydHNPZlR5cGUpOworICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG1hcCBmb3IgdGhlIHNwZWNpZmllZCBhbGVydHMgd2hlcmUgZWFjaCBrZXkgaXMgdGhlCisgICAgICogYWxlcnQgdHlwZSBzdHJpbmcgYW5kIGVhY2ggdmFsdWUgaXMgYSBsaXN0IG9mIGFsZXJ0cyB3aXRoIHRoYXQKKyAgICAgKiB0eXBlLgorICAgICAqLworICAgIGFsZXJ0c0J5VHlwZV86IGZ1bmN0aW9uKGFsZXJ0cykgeworICAgICAgdmFyIGFsZXJ0c0J5VHlwZSA9IHt9OworICAgICAgYWxlcnRzLmZvckVhY2goZnVuY3Rpb24oYWxlcnQpIHsKKyAgICAgICAgaWYgKCFhbGVydHNCeVR5cGVbYWxlcnQudGl0bGVdKQorICAgICAgICAgIGFsZXJ0c0J5VHlwZVthbGVydC50aXRsZV0gPSBbXTsKKworICAgICAgICBhbGVydHNCeVR5cGVbYWxlcnQudGl0bGVdLnB1c2goYWxlcnQpOworICAgICAgfSk7CisgICAgICByZXR1cm4gYWxlcnRzQnlUeXBlOworICAgIH0sCisKKyAgICBhbGVydHNUYWJsZVJvd3NfOiBmdW5jdGlvbihhbGVydHNCeVR5cGUpIHsKKyAgICAgIHJldHVybiBPYmplY3Qua2V5cyhhbGVydHNCeVR5cGUpLm1hcChmdW5jdGlvbihrZXkpIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICBhbGVydFR5cGU6IGtleSwKKyAgICAgICAgICBjb3VudDogYWxlcnRzQnlUeXBlW2tleV0ubGVuZ3RoCisgICAgICAgIH07CisgICAgICB9KTsKKyAgICB9LAorCisgICAgYWxlcnRzVGFibGVDb2x1bW5zXzogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gWworICAgICAgICB7CisgICAgICAgICAgdGl0bGU6ICdBbGVydCB0eXBlJywKKyAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24ocm93KSB7IHJldHVybiByb3cuYWxlcnRUeXBlOyB9LAorICAgICAgICAgIHdpZHRoOiAnMTgwcHgnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICB0aXRsZTogJ0NvdW50JywKKyAgICAgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihyb3cpIHsgcmV0dXJuIHJvdy5jb3VudDsgfQorICAgICAgICB9CisgICAgICBdOworICAgIH0sCisKKyAgICBjcmVhdGVBbGVydHNUYWJsZV86IGZ1bmN0aW9uKGFsZXJ0cykgeworICAgICAgdmFyIGFsZXJ0c0J5VHlwZSA9IHRoaXMuYWxlcnRzQnlUeXBlXyhhbGVydHMpOworCisgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1iLXRhYmxlJyk7CisgICAgICB0YWJsZS50YWJsZUNvbHVtbnMgPSB0aGlzLmFsZXJ0c1RhYmxlQ29sdW1uc18oKTsKKyAgICAgIHRhYmxlLnRhYmxlUm93cyA9IHRoaXMuYWxlcnRzVGFibGVSb3dzXyhhbGVydHNCeVR5cGUpOworICAgICAgdGFibGUuc3VwcG9ydHNTZWxlY3Rpb24gPSB0cnVlOworICAgICAgdGFibGUuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uLWNoYW5nZWQnLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciByb3cgPSB0YWJsZS5zZWxlY3RlZFRhYmxlUm93OworICAgICAgICBpZiAocm93KQorICAgICAgICAgIHRoaXMuc2VsZWN0QWxlcnRzT2ZUeXBlKHJvdy5hbGVydFR5cGUpOworICAgICAgfS5iaW5kKHRoaXMpKTsKKworICAgICAgcmV0dXJuIHRhYmxlOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLnJlc3VsdF9hcmVhLnRleHRDb250ZW50ID0gJyc7CisgICAgICBpZiAodGhpcy5tb2RlbF8gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgcGFuZWwgPSB0aGlzLmNyZWF0ZUFsZXJ0c1RhYmxlXyh0aGlzLm1vZGVsXy5hbGVydHMpOworICAgICAgdGhpcy4kLnJlc3VsdF9hcmVhLmFwcGVuZENoaWxkKHBhbmVsKTsKKyAgICB9LAorCisgICAgc3VwcG9ydHNNb2RlbDogZnVuY3Rpb24obSkgeworICAgICAgaWYgKG0gPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSwKKyAgICAgICAgICByZWFzb246ICdVbmtub3duIHRyYWNpbmcgbW9kZWwnCisgICAgICAgIH07CisgICAgICB9IGVsc2UgaWYgKG0uYWxlcnRzLmxlbmd0aCA9PT0gMCkgeworICAgICAgICByZXR1cm4geworICAgICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCisgICAgICAgICAgcmVhc29uOiAnTm8gYWxlcnRzIGluIHRyYWNpbmcgbW9kZWwnCisgICAgICAgIH07CisgICAgICB9CisKKyAgICAgIHJldHVybiB7CisgICAgICAgIHN1cHBvcnRlZDogdHJ1ZQorICAgICAgfTsKKyAgICB9LAorCisgICAgZ2V0IHRleHRMYWJlbCgpIHsKKyAgICAgIHJldHVybiAnQWxlcnRzJzsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc2lkZV9wYW5lbC9hbGVydHNfc2lkZV9wYW5lbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2FsZXJ0c19zaWRlX3BhbmVsX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGYxNmQzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc2lkZV9wYW5lbC9hbGVydHNfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL3NpZGVfcGFuZWwvYWxlcnRzX3NpZGVfcGFuZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgQUxFUlRfSU5GT18xID0gbmV3IHRyLm1vZGVsLkV2ZW50SW5mbygKKyAgICAnQWxlcnQgMScsICdDcml0aWNhbCBhbGVydCcpOworICB2YXIgQUxFUlRfSU5GT18yID0gbmV3IHRyLm1vZGVsLkV2ZW50SW5mbygKKyAgICAnQWxlcnQgMicsICdXYXJuaW5nIGFsZXJ0Jyk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLXMtYWxlcnRzLXNpZGUtcGFuZWwnKTsKKyAgICBwYW5lbC5tb2RlbCA9IGNyZWF0ZU1vZGVsV2l0aEFsZXJ0cyhbCisgICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCA1KSwKKyAgICAgIG5ldyB0ci5tb2RlbC5BbGVydChBTEVSVF9JTkZPXzIsIDM1KQorICAgIF0pOworICAgIHBhbmVsLnN0eWxlLmhlaWdodCA9ICcxMDBweCc7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOworICB9KTsKKworICB0ZXN0KCdzZWxlY3RBbGVydHNPZlR5cGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLXMtYWxlcnRzLXNpZGUtcGFuZWwnKTsKKyAgICB2YXIgYWxlcnRzID0gWworICAgICAgbmV3IHRyLm1vZGVsLkFsZXJ0KEFMRVJUX0lORk9fMSwgMSksCisgICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCAyKSwKKyAgICAgIG5ldyB0ci5tb2RlbC5BbGVydChBTEVSVF9JTkZPXzIsIDMpCisgICAgXTsKKyAgICBwYW5lbC5tb2RlbCA9IGNyZWF0ZU1vZGVsV2l0aEFsZXJ0cyhhbGVydHMpOworICAgIHBhbmVsLnN0eWxlLmhlaWdodCA9ICcxMDBweCc7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHBhbmVsKTsKKworICAgIHZhciBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcigncmVxdWVzdFNlbGVjdGlvbkNoYW5nZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSB0cnVlOworICAgICAgYXNzZXJ0Lmxlbmd0aE9mKGUuc2VsZWN0aW9uLCAyKTsKKyAgICAgIGFzc2VydC5lcXVhbChhbGVydHNbMF0sIGUuc2VsZWN0aW9uWzBdKTsKKyAgICAgIGFzc2VydC5lcXVhbChhbGVydHNbMV0sIGUuc2VsZWN0aW9uWzFdKTsKKyAgICB9KTsKKyAgICBwYW5lbC5zZWxlY3RBbGVydHNPZlR5cGUoQUxFUlRfSU5GT18xLnRpdGxlKTsKKworICAgIGFzc2VydC5pc1RydWUoc2VsZWN0aW9uQ2hhbmdlZCk7CisgIH0pOworCisgIGZ1bmN0aW9uIGNyZWF0ZU1vZGVsV2l0aEFsZXJ0cyhhbGVydHMpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uYWxlcnRzID0gYWxlcnRzOworICAgIHJldHVybiBtOworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2lucHV0X2xhdGVuY3lfc2lkZV9wYW5lbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzMWEyMjQKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2lucHV0X2xhdGVuY3lfc2lkZV9wYW5lbC5odG1sCkBAIC0wLDAgKzEsMzI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2Nocm9tZS9jaHJvbWVfbW9kZWxfaGVscGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3NpZGVfcGFuZWwvc2lkZV9wYW5lbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9saW5lX2NoYXJ0Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLXVpLWUtcy1pbnB1dC1sYXRlbmN5LXNpZGUtcGFuZWwnCisgICAgZXh0ZW5kcz0ndHItdWktc2lkZS1wYW5lbCc+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgfQorICAgIHRvb2xiYXIgeworICAgICAgZmxleDogMCAwIGF1dG87CisgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICByZXN1bHQtYXJlYSB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgbWluLWhlaWdodDogMDsKKyAgICAgIG92ZXJmbG93LXk6IGF1dG87CisgICAgfQorICAgIDwvc3R5bGU+CisKKyAgICA8dG9vbGJhciBpZD0ndG9vbGJhcic+PC90b29sYmFyPgorICAgIDxyZXN1bHQtYXJlYSBpZD0ncmVzdWx0X2FyZWEnPjwvcmVzdWx0LWFyZWE+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgICB0aGlzLmZyYW1ldGltZVR5cGVfID0gdHIuZS5hdWRpdHMuSU1QTF9GUkFNRVRJTUVfVFlQRTsKKyAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuZnJhbWV0aW1lQ2hhcnRfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3NJZF8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLm1vdXNlRG93bkluZGV4XyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuY3VyTW91c2VJbmRleF8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICB9LAorCisgICAgc2V0IG1vZGVsKG1vZGVsKSB7CisgICAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOworICAgICAgaWYgKHRoaXMubW9kZWxfKQorICAgICAgICB0aGlzLm1vZGVsSGVscGVyXyA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtb2RlbCk7CisgICAgICBlbHNlCisgICAgICAgIHRoaXMubW9kZWxIZWxwZXJfID0gdW5kZWZpbmVkOworCisgICAgICB0aGlzLnVwZGF0ZVRvb2xiYXJfKCk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgZnJhbWV0aW1lVHlwZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmZyYW1ldGltZVR5cGVfOworICAgIH0sCisKKyAgICBzZXQgZnJhbWV0aW1lVHlwZSh0eXBlKSB7CisgICAgICBpZiAodGhpcy5mcmFtZXRpbWVUeXBlXyA9PT0gdHlwZSkKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5mcmFtZXRpbWVUeXBlXyA9IHR5cGU7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgc2VsZWN0ZWRQcm9jZXNzSWQoKSB7CisgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFByb2Nlc3NJZF87CisgICAgfSwKKworICAgIHNldCBzZWxlY3RlZFByb2Nlc3NJZChwcm9jZXNzKSB7CisgICAgICBpZiAodGhpcy5zZWxlY3RlZFByb2Nlc3NJZF8gPT09IHByb2Nlc3MpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzSWRfID0gcHJvY2VzczsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICBpZiAodGhpcy5sYXRlbmN5Q2hhcnRfID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0Xy5icnVzaGVkUmFuZ2UgPSBzZWxlY3Rpb24uYm91bmRzOworICAgIH0sCisKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGZvciB0ZXN0aW5nIHB1cnBvc2UuCisgICAgc2V0QnJ1c2hlZEluZGljZXM6IGZ1bmN0aW9uKG1vdXNlRG93bkluZGV4LCBjdXJJbmRleCkgeworICAgICAgdGhpcy5tb3VzZURvd25JbmRleF8gPSBtb3VzZURvd25JbmRleDsKKyAgICAgIHRoaXMuY3VyTW91c2VJbmRleF8gPSBjdXJJbmRleDsKKyAgICAgIHRoaXMudXBkYXRlQnJ1c2hlZFJhbmdlXygpOworICAgIH0sCisKKyAgICB1cGRhdGVCcnVzaGVkUmFuZ2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmxhdGVuY3lDaGFydF8gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgciA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgICBpZiAodGhpcy5tb3VzZURvd25JbmRleF8gPT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLmxhdGVuY3lDaGFydF8uYnJ1c2hlZFJhbmdlID0gcjsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgciA9IHRoaXMubGF0ZW5jeUNoYXJ0Xy5jb21wdXRlQnJ1c2hSYW5nZUZyb21JbmRpY2VzKAorICAgICAgICAgIHRoaXMubW91c2VEb3duSW5kZXhfLCB0aGlzLmN1ck1vdXNlSW5kZXhfKTsKKyAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0Xy5icnVzaGVkUmFuZ2UgPSByOworCisgICAgICAvLyBCYXNlZCBvbiB0aGUgYnJ1c2hlZCByYW5nZSwgdXBkYXRlIHRoZSBzZWxlY3Rpb24gb2YgTGF0ZW5jeUluZm8gaW4KKyAgICAgIC8vIHRoZSB0aW1lbGluZSB2aWV3IGJ5IHNlbmRpbmcgYSBzZWxlY3Rpb25DaGFuZ2UgZXZlbnQuCisgICAgICB2YXIgbGF0ZW5jeVNsaWNlcyA9IFtdOworICAgICAgdGhpcy5tb2RlbF8uZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goZnVuY3Rpb24odGhyZWFkKSB7CisgICAgICAgIHRocmVhZC5pdGVyYXRlQWxsRXZlbnRzKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgaWYgKGV2ZW50LnRpdGxlLmluZGV4T2YoJ0lucHV0TGF0ZW5jeTonKSA9PT0gMCkKKyAgICAgICAgICAgIGxhdGVuY3lTbGljZXMucHVzaChldmVudCk7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgICBsYXRlbmN5U2xpY2VzID0gdHIuZS5hdWRpdHMuZ2V0U2xpY2VzSW50ZXJzZWN0aW5nUmFuZ2UociwgbGF0ZW5jeVNsaWNlcyk7CisKKyAgICAgIHZhciBldmVudCA9IG5ldyB0ci5tb2RlbC5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTsKKyAgICAgIGV2ZW50LnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChsYXRlbmN5U2xpY2VzKTsKKyAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0Xy5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB9LAorCisgICAgcmVnaXN0ZXJNb3VzZUV2ZW50Rm9yTGF0ZW5jeUNoYXJ0XzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmxhdGVuY3lDaGFydF8uYWRkRXZlbnRMaXN0ZW5lcignaXRlbS1tb3VzZWRvd24nLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHRoaXMubW91c2VEb3duSW5kZXhfID0gZS5pbmRleDsKKyAgICAgICAgdGhpcy5jdXJNb3VzZUluZGV4XyA9IGUuaW5kZXg7CisgICAgICAgIHRoaXMudXBkYXRlQnJ1c2hlZFJhbmdlXygpOworICAgICAgfS5iaW5kKHRoaXMpKTsKKworICAgICAgdGhpcy5sYXRlbmN5Q2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ2l0ZW0tbW91c2Vtb3ZlJywgZnVuY3Rpb24oZSkgeworICAgICAgICBpZiAoZS5idXR0b24gPT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5jdXJNb3VzZUluZGV4XyA9IGUuaW5kZXg7CisgICAgICAgIHRoaXMudXBkYXRlQnJ1c2hlZFJhbmdlXygpOworICAgICAgfS5iaW5kKHRoaXMpKTsKKworICAgICAgdGhpcy5sYXRlbmN5Q2hhcnRfLmFkZEV2ZW50TGlzdGVuZXIoJ2l0ZW0tbW91c2V1cCcsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGhpcy5jdXJNb3VzZUluZGV4ID0gZS5pbmRleDsKKyAgICAgICAgdGhpcy51cGRhdGVCcnVzaGVkUmFuZ2VfKCk7CisgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICB1cGRhdGVUb29sYmFyXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgYnJvd3NlclByb2Nlc3MgPSB0aGlzLm1vZGVsSGVscGVyXy5icm93c2VyUHJvY2VzczsKKyAgICAgIHZhciBsYWJlbHMgPSBbXTsKKworICAgICAgaWYgKGJyb3dzZXJQcm9jZXNzICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdmFyIGxhYmVsX3N0ciA9ICdCcm93c2VyOiAnICsgYnJvd3NlclByb2Nlc3MucGlkOworICAgICAgICBsYWJlbHMucHVzaCh7bGFiZWw6IGxhYmVsX3N0ciwgdmFsdWU6IGJyb3dzZXJQcm9jZXNzLnBpZH0pOworICAgICAgfQorCisgICAgICB0ci5iLml0ZXJJdGVtcyh0aGlzLm1vZGVsSGVscGVyXy5yZW5kZXJlckhlbHBlcnMsCisgICAgICAgIGZ1bmN0aW9uKHBpZCwgcmVuZGVyZXJIZWxwZXIpIHsKKyAgICAgICAgICB2YXIgcmVuZGVyZXJQcm9jZXNzID0gcmVuZGVyZXJIZWxwZXIucHJvY2VzczsKKyAgICAgICAgICB2YXIgbGFiZWxfc3RyID0gJ1JlbmRlcmVyOiAnICsgcmVuZGVyZXJQcm9jZXNzLnVzZXJGcmllbmRseU5hbWU7CisgICAgICAgICAgbGFiZWxzLnB1c2goe2xhYmVsOiBsYWJlbF9zdHIsIHZhbHVlOiByZW5kZXJlclByb2Nlc3MudXNlckZyaWVuZGx5TmFtZQorICAgICAgICB9KTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICBpZiAobGFiZWxzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzc0lkXyA9IGxhYmVsc1swXS52YWx1ZTsKKyAgICAgIHZhciB0b29sYmFyRWwgPSB0aGlzLiQudG9vbGJhcjsKKyAgICAgIHRvb2xiYXJFbC5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICAgIHRoaXMsICdmcmFtZXRpbWVUeXBlJywKKyAgICAgICAgICAnaW5wdXRMYXRlbmN5U2lkZVBhbmVsLmZyYW1ldGltZVR5cGUnLCB0aGlzLmZyYW1ldGltZVR5cGVfLAorICAgICAgICAgIFt7bGFiZWw6ICdNYWluIFRocmVhZCBGcmFtZSBUaW1lcycsCisgICAgICAgICAgICB2YWx1ZTogdHIuZS5hdWRpdHMuTUFJTl9GUkFNRVRJTUVfVFlQRX0sCisgICAgICAgICAgIHtsYWJlbDogJ0ltcGwgVGhyZWFkIEZyYW1lIFRpbWVzJywKKyAgICAgICAgICAgIHZhbHVlOiB0ci5lLmF1ZGl0cy5JTVBMX0ZSQU1FVElNRV9UWVBFfQorICAgICAgICAgIF0pKTsKKyAgICAgIHRvb2xiYXJFbC5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICAgIHRoaXMsICdzZWxlY3RlZFByb2Nlc3NJZCcsCisgICAgICAgICAgJ2lucHV0TGF0ZW5jeVNpZGVQYW5lbC5zZWxlY3RlZFByb2Nlc3NJZCcsCisgICAgICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3NJZF8sCisgICAgICAgICAgbGFiZWxzKSk7CisgICAgfSwKKworICAgIGdldCBjdXJyZW50UmFuZ2VPZkludGVyZXN0KCkgeworICAgICAgaWYgKHRoaXMucmFuZ2VPZkludGVyZXN0Xy5pc0VtcHR5KQorICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF8uYm91bmRzOworICAgICAgZWxzZQorICAgICAgICByZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOworICAgIH0sCisKKyAgICBjcmVhdGVMYXRlbmN5TGluZUNoYXJ0OiBmdW5jdGlvbihkYXRhLCB0aXRsZSkgeworICAgICAgdmFyIGNoYXJ0ID0gbmV3IHRyLnVpLmIuTGluZUNoYXJ0KCk7CisgICAgICB2YXIgd2lkdGggPSA2MDA7CisgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAhPSB1bmRlZmluZWQpCisgICAgICAgIHdpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAqIDAuNTsKKyAgICAgIGNoYXJ0LnNldFNpemUoe3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBjaGFydC5oZWlnaHR9KTsKKyAgICAgIGNoYXJ0LmNoYXJ0VGl0bGUgPSB0aXRsZTsKKyAgICAgIGNoYXJ0LmRhdGEgPSBkYXRhOworICAgICAgcmV0dXJuIGNoYXJ0OworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHJlc3VsdEFyZWEgPSB0aGlzLiQucmVzdWx0X2FyZWE7CisgICAgICB0aGlzLmxhdGVuY3lDaGFydF8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmZyYW1ldGltZUNoYXJ0XyA9IHVuZGVmaW5lZDsKKyAgICAgIHJlc3VsdEFyZWEudGV4dENvbnRlbnQgPSAnJzsKKworICAgICAgaWYgKHRoaXMubW9kZWxIZWxwZXJfID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHJhbmdlT2ZJbnRlcmVzdCA9IHRoaXMuY3VycmVudFJhbmdlT2ZJbnRlcmVzdDsKKworICAgICAgdmFyIGNocm9tZVByb2Nlc3M7CisgICAgICBpZiAodGhpcy5tb2RlbEhlbHBlcl8ucmVuZGVyZXJIZWxwZXJzW3RoaXMuc2VsZWN0ZWRQcm9jZXNzSWRfXSkKKyAgICAgICAgY2hyb21lUHJvY2VzcyA9IHRoaXMubW9kZWxIZWxwZXJfLnJlbmRlcmVySGVscGVyc1sKKyAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzc0lkXworICAgICAgICBdOworICAgICAgZWxzZQorICAgICAgICBjaHJvbWVQcm9jZXNzID0gdGhpcy5tb2RlbEhlbHBlcl8uYnJvd3NlckhlbHBlcjsKKworICAgICAgdmFyIGZyYW1lRXZlbnRzID0gY2hyb21lUHJvY2Vzcy5nZXRGcmFtZUV2ZW50c0luUmFuZ2UoCisgICAgICAgICAgdGhpcy5mcmFtZXRpbWVUeXBlLCByYW5nZU9mSW50ZXJlc3QpOworCisgICAgICB2YXIgZnJhbWV0aW1lRGF0YSA9IHRyLmUuYXVkaXRzLmdldEZyYW1ldGltZURhdGFGcm9tRXZlbnRzKGZyYW1lRXZlbnRzKTsKKyAgICAgIHZhciBhdmVyYWdlRnJhbWV0aW1lID0gdHIuYi5TdGF0aXN0aWNzLm1lYW4oZnJhbWV0aW1lRGF0YSwgZnVuY3Rpb24oZCkgeworICAgICAgICByZXR1cm4gZC5mcmFtZXRpbWU7CisgICAgICB9KTsKKworICAgICAgdmFyIGxhdGVuY3lFdmVudHMgPSB0aGlzLm1vZGVsSGVscGVyXy5icm93c2VySGVscGVyLgorICAgICAgICBnZXRMYXRlbmN5RXZlbnRzSW5SYW5nZSgKKyAgICAgICAgICByYW5nZU9mSW50ZXJlc3QpOworCisgICAgICB2YXIgbGF0ZW5jeURhdGEgPSBbXTsKKyAgICAgIGxhdGVuY3lFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldmVudCkgeworICAgICAgICBpZiAoZXZlbnQuaW5wdXRMYXRlbmN5ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgcmV0dXJuOworICAgICAgICBsYXRlbmN5RGF0YS5wdXNoKHsKKyAgICAgICAgICB4OiBldmVudC5zdGFydCwKKyAgICAgICAgICBsYXRlbmN5OiBldmVudC5pbnB1dExhdGVuY3kgLyAxMDAwCisgICAgICAgIH0pOworICAgICAgfSk7CisKKyAgICAgIHZhciBhdmVyYWdlTGF0ZW5jeSA9IHRyLmIuU3RhdGlzdGljcy5tZWFuKGxhdGVuY3lEYXRhLCBmdW5jdGlvbihkKSB7CisgICAgICAgIHJldHVybiBkLmxhdGVuY3k7CisgICAgICB9KTsKKworICAgICAgLy8gQ3JlYXRlIHN1bW1hcnkuCisgICAgICB2YXIgbGF0ZW5jeVN1bW1hcnlUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICBsYXRlbmN5U3VtbWFyeVRleHQuYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVTcGFuKHsKKyAgICAgICAgdGV4dENvbnRlbnQ6ICdBdmVyYWdlIExhdGVuY3kgJyArIGF2ZXJhZ2VMYXRlbmN5ICsgJyBtcycsCisgICAgICAgIGJvbGQ6IHRydWV9KSk7CisgICAgICByZXN1bHRBcmVhLmFwcGVuZENoaWxkKGxhdGVuY3lTdW1tYXJ5VGV4dCk7CisKKyAgICAgIHZhciBmcmFtZXRpbWVTdW1tYXJ5VGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgZnJhbWV0aW1lU3VtbWFyeVRleHQuYXBwZW5kQ2hpbGQodHIudWkuYi5jcmVhdGVTcGFuKHsKKyAgICAgICAgdGV4dENvbnRlbnQ6ICdBdmVyYWdlIEZyYW1lIFRpbWUgJyArIGF2ZXJhZ2VGcmFtZXRpbWUgKyAnIG1zJywKKyAgICAgICAgYm9sZDogdHJ1ZX0pKTsKKyAgICAgIHJlc3VsdEFyZWEuYXBwZW5kQ2hpbGQoZnJhbWV0aW1lU3VtbWFyeVRleHQpOworCisgICAgICBpZiAobGF0ZW5jeURhdGEubGVuZ3RoICE9PSAwKSB7CisgICAgICAgIHRoaXMubGF0ZW5jeUNoYXJ0XyA9IHRoaXMuY3JlYXRlTGF0ZW5jeUxpbmVDaGFydCgKKyAgICAgICAgICAgIGxhdGVuY3lEYXRhLCAnTGF0ZW5jeSBPdmVyIFRpbWUnKTsKKyAgICAgICAgdGhpcy5yZWdpc3Rlck1vdXNlRXZlbnRGb3JMYXRlbmN5Q2hhcnRfKCk7CisgICAgICAgIHJlc3VsdEFyZWEuYXBwZW5kQ2hpbGQodGhpcy5sYXRlbmN5Q2hhcnRfKTsKKyAgICAgIH0KKworICAgICAgaWYgKGZyYW1ldGltZURhdGEubGVuZ3RoICE9IDApIHsKKyAgICAgICAgdGhpcy5mcmFtZXRpbWVDaGFydF8gPSB0aGlzLmNyZWF0ZUxhdGVuY3lMaW5lQ2hhcnQoCisgICAgICAgICAgICBmcmFtZXRpbWVEYXRhLCAnRnJhbWUgVGltZXMnKTsKKyAgICAgICAgdGhpcy5mcmFtZXRpbWVDaGFydF8uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CisgICAgICAgIHJlc3VsdEFyZWEuYXBwZW5kQ2hpbGQodGhpcy5mcmFtZXRpbWVDaGFydF8pOworICAgICAgfQorICAgIH0sCisKKyAgICBnZXQgcmFuZ2VPZkludGVyZXN0KCkgeworICAgICAgcmV0dXJuIHRoaXMucmFuZ2VPZkludGVyZXN0XzsKKyAgICB9LAorCisgICAgc2V0IHJhbmdlT2ZJbnRlcmVzdChyYW5nZU9mSW50ZXJlc3QpIHsKKyAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IHJhbmdlT2ZJbnRlcmVzdDsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIHN1cHBvcnRzTW9kZWw6IGZ1bmN0aW9uKG0pIHsKKyAgICAgIGlmIChtID09IHVuZGVmaW5lZCkgeworICAgICAgICByZXR1cm4geworICAgICAgICAgIHN1cHBvcnRlZDogZmFsc2UsCisgICAgICAgICAgcmVhc29uOiAnVW5rbm93biB0cmFjaW5nIG1vZGVsJworICAgICAgICB9OworICAgICAgfQorCisgICAgICBpZiAoIXRyLmUuYXVkaXRzLkNocm9tZU1vZGVsSGVscGVyLnN1cHBvcnRzTW9kZWwobSkpIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlLAorICAgICAgICAgIHJlYXNvbjogJ05vIENocm9tZSBicm93c2VyIG9yIHJlbmRlcmVyIHByb2Nlc3MgZm91bmQnCisgICAgICAgIH07CisgICAgICB9CisKKyAgICAgIHZhciBtb2RlbEhlbHBlciA9IG5ldyB0ci5lLmF1ZGl0cy5DaHJvbWVNb2RlbEhlbHBlcihtKTsKKyAgICAgIGlmIChtb2RlbEhlbHBlci5icm93c2VySGVscGVyICYmCisgICAgICAgIG1vZGVsSGVscGVyLmJyb3dzZXJIZWxwZXIuaGFzTGF0ZW5jeUV2ZW50cykgeworICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBzdXBwb3J0ZWQ6IHRydWUKKyAgICAgICAgICB9OworICAgICAgfQorCisgICAgICByZXR1cm4geworICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlLAorICAgICAgICByZWFzb246ICdObyBJbnB1dExhdGVuY3kgZXZlbnRzIHRyYWNlLiBDb25zaWRlciBlbmFibGluZyAnICsKKyAgICAgICAgICAgICdiZW5jaG1hcmsiIGFuZCAiaW5wdXQiIGNhdGVnb3J5IHdoZW4gcmVjb3JkaW5nIHRoZSB0cmFjZScKKyAgICAgIH07CisgICAgfSwKKworICAgIGdldCB0ZXh0TGFiZWwoKSB7CisgICAgICByZXR1cm4gJ0lucHV0IExhdGVuY3knOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2lucHV0X2xhdGVuY3lfc2lkZV9wYW5lbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL2lucHV0X2xhdGVuY3lfc2lkZV9wYW5lbF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UxMmE1MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsX3Rlc3QuaHRtbApAQCAtMCwwICsxLDE0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL3NpZGVfcGFuZWwvaW5wdXRfbGF0ZW5jeV9zaWRlX3BhbmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvY2hyb21lL2NjL2lucHV0X2xhdGVuY3lfYXN5bmNfc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9pbXBvcnRlci90cmFjZV9ldmVudF9pbXBvcnRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2Jhc2ljJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGxhdGVuY3lEYXRhID0gWworICAgICAgeworICAgICAgICB4OiAxMDAwLAorICAgICAgICBsYXRlbmN5OiAxNgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgeDogMjAwMCwKKyAgICAgICAgbGF0ZW5jeTogMTcKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHg6IDMwMDAsCisgICAgICAgIGxhdGVuY3k6IDE0CisgICAgICB9LAorICAgICAgeworICAgICAgICB4OiA0MDAwLAorICAgICAgICBsYXRlbmN5OiAyMworICAgICAgfQorICAgIF07CisgICAgdmFyIGxjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktZS1zLWlucHV0LWxhdGVuY3ktc2lkZS1wYW5lbCcpOworICAgIHZhciBsYXRlbmN5Q2hhcnQgPSBsYy5jcmVhdGVMYXRlbmN5TGluZUNoYXJ0KGxhdGVuY3lEYXRhLCAnbGF0ZW5jeScpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChsYXRlbmN5Q2hhcnQpOworCisgICAgdmFyIGZyYW1ldGltZURhdGEgPSBbCisgICAgICB7CisgICAgICAgIHg6IDEwMDAsCisgICAgICAgIGZyYW1ldGltZTogMTYKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHg6IDIwMDAsCisgICAgICAgIGZyYW1ldGltZTogMTcKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHg6IDMwMDAsCisgICAgICAgIGZyYW1ldGltZTogMTQKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHg6IDQwMDAsCisgICAgICAgIGZyYW1ldGltZTogMjMKKyAgICAgIH0KKyAgICBdOworICAgIHZhciBsYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWUtcy1pbnB1dC1sYXRlbmN5LXNpZGUtcGFuZWwnKTsKKyAgICB2YXIgZnJhbWV0aW1lQ2hhcnQgPSBsYy5jcmVhdGVMYXRlbmN5TGluZUNoYXJ0KGZyYW1ldGltZURhdGEsICdmcmFtZXRpbWUnKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZnJhbWV0aW1lQ2hhcnQpOworICB9KTsKKworICB0ZXN0KCdicnVzaGVkUmFuZ2VDaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICB2YXIgc3RhcnRfdHMgPSBpICogMTAwMDA7CisgICAgICB2YXIgZW5kX3RzID0gc3RhcnRfdHMgKyAxMDAwICogKGkgJSAyKTsKKyAgICAgIGV2ZW50cy5wdXNoKAorICAgICAgICB7CisgICAgICAgICAgJ2NhdCc6ICdiZW5jaG1hcmsnLAorICAgICAgICAgICdwaWQnOiAzNTA3LAorICAgICAgICAgICd0aWQnOiAzNTA3LAorICAgICAgICAgICd0cyc6IHN0YXJ0X3RzLAorICAgICAgICAgICdwaCc6ICdTJywKKyAgICAgICAgICAnbmFtZSc6ICdJbnB1dExhdGVuY3knLAorICAgICAgICAgICdpZCc6IGkKKyAgICAgICAgfSk7CisgICAgICBldmVudHMucHVzaCgKKyAgICAgICAgeworICAgICAgICAgICdjYXQnOiAnYmVuY2htYXJrJywKKyAgICAgICAgICAncGlkJzogMzUwNywKKyAgICAgICAgICAndGlkJzogMzUwNywKKyAgICAgICAgICAndHMnOiBlbmRfdHMsCisgICAgICAgICAgJ3BoJzogJ1QnLAorICAgICAgICAgICduYW1lJzogJ0lucHV0TGF0ZW5jeScsCisgICAgICAgICAgJ2FyZ3MnOiB7J3N0ZXAnOiAnR2VzdHVyZVNjcm9sbFVwZGF0ZSd9LAorICAgICAgICAgICdpZCc6IGkKKyAgICAgICAgfSk7CisgICAgICBldmVudHMucHVzaCgKKyAgICAgICAgeworICAgICAgICAgICdjYXQnOiAnYmVuY2htYXJrJywKKyAgICAgICAgICAncGlkJzogMzUwNywKKyAgICAgICAgICAndGlkJzogMzUwNywKKyAgICAgICAgICAndHMnOiBlbmRfdHMsCisgICAgICAgICAgJ3BoJzogJ0YnLAorICAgICAgICAgICduYW1lJzogJ0lucHV0TGF0ZW5jeScsCisgICAgICAgICAgJ2FyZ3MnOiB7CisgICAgICAgICAgICAnZGF0YSc6IHsKKyAgICAgICAgICAgICAgJ0lOUFVUX0VWRU5UX0xBVEVOQ1lfT1JJR0lOQUxfQ09NUE9ORU5UJzogeworICAgICAgICAgICAgICAgICd0aW1lJzogc3RhcnRfdHMKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgJ0lOUFVUX0VWRU5UX0xBVEVOQ1lfVEVSTUlOQVRFRF9GUkFNRV9TV0FQX0NPTVBPTkVOVCc6IHsKKyAgICAgICAgICAgICAgICAndGltZSc6IGVuZF90cworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfSwKKyAgICAgICAgICAnaWQnOiBpCisgICAgICAgIH0pOworICAgIH0KKyAgICBldmVudHMucHVzaCh7J2NhdCc6ICdfX21ldGFkYXRhJywKKyAgICAgICdwaWQnOiAzNTA3LAorICAgICAgJ3RpZCc6IDM1MDcsCisgICAgICAndHMnOiAwLAorICAgICAgJ3BoJzogJ00nLAorICAgICAgJ25hbWUnOiAndGhyZWFkX25hbWUnLAorICAgICAgJ2FyZ3MnOiB7J25hbWUnOiAnQ3JCcm93c2VyTWFpbid9fSk7CisKKyAgICB2YXIgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLXMtaW5wdXQtbGF0ZW5jeS1zaWRlLXBhbmVsJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHBhbmVsKTsKKworICAgIHZhciBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgcGFuZWwubW9kZWwgPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICBmdW5jdGlvbiBsaXN0ZW5lcihlKSB7CisgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gdHJ1ZTsKKyAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvbi5sZW5ndGgsIDMpOworICAgICAgYXNzZXJ0LmVxdWFsKGUuc2VsZWN0aW9uWzBdLnN0YXJ0LCAyMCk7CisgICAgICBhc3NlcnQuZXF1YWwoZS5zZWxlY3Rpb25bMV0uc3RhcnQsIDMxKTsKKyAgICAgIGFzc2VydC5lcXVhbChlLnNlbGVjdGlvblsyXS5zdGFydCwgNDApOworICAgIH0KKyAgICBwYW5lbC5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBsaXN0ZW5lcik7CisgICAgdHJ5IHsKKyAgICAgIHBhbmVsLnNldEJydXNoZWRJbmRpY2VzKDIsIDQpOworICAgIH0gZmluYWxseSB7CisgICAgICBwYW5lbC5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ3JlcXVlc3RTZWxlY3Rpb25DaGFuZ2UnLCBsaXN0ZW5lcik7CisgICAgfQorICAgIGFzc2VydC5pc1RydWUoc2VsZWN0aW9uQ2hhbmdlZCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWwuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDFmMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc2lkZV9wYW5lbC90aW1lX3N1bW1hcnlfc2lkZV9wYW5lbC5odG1sCkBAIC0wLDAgKzEsNDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9kdXJhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3BpZV9jaGFydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvc2lkZV9wYW5lbC9zaWRlX3BhbmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy90aW1lX2R1cmF0aW9uX3NwYW4uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktZS1zLXRpbWUtc3VtbWFyeS1zaWRlLXBhbmVsIgorICAgIGV4dGVuZHM9InRyLXVpLXNpZGUtcGFuZWwiPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKyAgICB0b29sYmFyIHsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOworICAgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgcmVzdWx0LWFyZWEgeworICAgICAgZmxleDogMSAxIGF1dG87CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIG1pbi1oZWlnaHQ6IDA7CisgICAgICBvdmVyZmxvdy15OiBhdXRvOworICAgIH0KKyAgICA8L3N0eWxlPgorCisgICAgPHRvb2xiYXIgaWQ9J3Rvb2xiYXInPjwvdG9vbGJhcj4KKyAgICA8cmVzdWx0LWFyZWEgaWQ9J3Jlc3VsdF9hcmVhJz48L3Jlc3VsdC1hcmVhPgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKyAgKGZ1bmN0aW9uKCkgeworICAgIHZhciBHUk9VUF9CWV9QUk9DRVNTX05BTUUgPSAncHJvY2Vzcyc7CisgICAgdmFyIEdST1VQX0JZX1RIUkVBRF9OQU1FID0gJ3RocmVhZCc7CisKKyAgICB2YXIgV0FMTF9USU1FX0dST1VQSU5HX1VOSVQgPSAnV2FsbCB0aW1lJzsKKyAgICB2YXIgQ1BVX1RJTUVfR1JPVVBJTkdfVU5JVCA9ICdDUFUgdGltZSc7CisKKyAgICAvKioKKyAgICAgKiBAY29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBmdW5jdGlvbiBSZXN1bHRzRm9yR3JvdXAobW9kZWwsIG5hbWUpIHsKKyAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDsKKyAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICB0aGlzLnRvcExldmVsU2xpY2VzID0gW107CisgICAgICB0aGlzLmFsbFNsaWNlcyA9IFtdOworICAgIH0KKworICAgIFJlc3VsdHNGb3JHcm91cC5wcm90b3R5cGUgPSB7CisgICAgICBnZXQgd2FsbFRpbWUoKSB7CisgICAgICAgIHZhciB3YWxsU3VtID0gdHIuYi5TdGF0aXN0aWNzLnN1bSgKKyAgICAgICAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMsIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguZHVyYXRpb247IH0pOworICAgICAgICByZXR1cm4gd2FsbFN1bTsKKyAgICAgIH0sCisKKyAgICAgIGdldCBjcHVUaW1lKCkgeworICAgICAgICB2YXIgY3B1RHVyYXRpb24gPSAwOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudG9wTGV2ZWxTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgeCA9IHRoaXMudG9wTGV2ZWxTbGljZXNbaV07CisgICAgICAgICAgLy8gT25seSByZXBvcnQgdGhyZWFkLWR1cmF0aW9uIGlmIHdlIGhhdmUgaXQgZm9yIGFsbCBldmVudHMuCisgICAgICAgICAgLy8KKyAgICAgICAgICAvLyBBIHRocmVhZF9kdXJhdGlvbiBvZiAwIGlzIHZhbGlkLCBzbyB0aGlzIG9ubHkgcmV0dXJucyAwIGlmIGl0IGlzCisgICAgICAgICAgLy8gTm9uZS4KKyAgICAgICAgICBpZiAoeC5jcHVEdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICBpZiAoeC5kdXJhdGlvbiA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgIH0KKyAgICAgICAgICBjcHVEdXJhdGlvbiArPSB4LmNwdUR1cmF0aW9uOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjcHVEdXJhdGlvbjsKKyAgICAgIH0sCisKKyAgICAgIGFwcGVuZEdyb3VwQ29udGVudHM6IGZ1bmN0aW9uKGdyb3VwKSB7CisgICAgICAgIGlmIChncm91cC5tb2RlbCAhPSB0aGlzLm1vZGVsKQorICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kZWxzIG11c3QgYmUgdGhlIHNhbWUnKTsKKworICAgICAgICBncm91cC5hbGxTbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgeworICAgICAgICAgIHRoaXMuYWxsU2xpY2VzLnB1c2goc2xpY2UpOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgICAgZ3JvdXAudG9wTGV2ZWxTbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgeworICAgICAgICAgIHRoaXMudG9wTGV2ZWxTbGljZXMucHVzaChzbGljZSk7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfSwKKworICAgICAgYXBwZW5kVGhyZWFkU2xpY2VzOiBmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3QsIHRocmVhZCkgeworICAgICAgICB2YXIgdG1wID0gdGhpcy5nZXRTbGljZXNJbnRlcnNlY3RpbmdSYW5nZSgKKyAgICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdCwgdGhyZWFkLnNsaWNlR3JvdXAuc2xpY2VzKTsKKyAgICAgICAgdG1wLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgICB0aGlzLmFsbFNsaWNlcy5wdXNoKHNsaWNlKTsKKyAgICAgICAgfSwgdGhpcyk7CisgICAgICAgIHRtcCA9IHRoaXMuZ2V0U2xpY2VzSW50ZXJzZWN0aW5nUmFuZ2UoCisgICAgICAgICAgICByYW5nZU9mSW50ZXJlc3QsIHRocmVhZC5zbGljZUdyb3VwLnRvcExldmVsU2xpY2VzKTsKKyAgICAgICAgdG1wLmZvckVhY2goZnVuY3Rpb24oc2xpY2UpIHsKKyAgICAgICAgICB0aGlzLnRvcExldmVsU2xpY2VzLnB1c2goc2xpY2UpOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0sCisKKyAgICAgIGdldFNsaWNlc0ludGVyc2VjdGluZ1JhbmdlOiBmdW5jdGlvbihyYW5nZU9mSW50ZXJlc3QsIHNsaWNlcykgeworICAgICAgICB2YXIgc2xpY2VzSW5GaWx0ZXJSYW5nZSA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciBzbGljZSA9IHNsaWNlc1tpXTsKKyAgICAgICAgICBpZiAocmFuZ2VPZkludGVyZXN0LmludGVyc2VjdHNFeHBsaWNpdFJhbmdlKHNsaWNlLnN0YXJ0LCBzbGljZS5lbmQpKQorICAgICAgICAgICAgc2xpY2VzSW5GaWx0ZXJSYW5nZS5wdXNoKHNsaWNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2xpY2VzSW5GaWx0ZXJSYW5nZTsKKyAgICAgIH0KKyAgICB9OworCisgICAgUG9seW1lcih7CisgICAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgICAgIHRoaXMuc2VsZWN0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5ncm91cEJ5XyA9IEdST1VQX0JZX1BST0NFU1NfTkFNRTsKKyAgICAgICAgdGhpcy5ncm91cGluZ1VuaXRfID0gQ1BVX1RJTUVfR1JPVVBJTkdfVU5JVDsKKyAgICAgICAgdGhpcy5zaG93Q3B1SWRsZVRpbWVfID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5jaGFydF8gPSB1bmRlZmluZWQ7CisKKyAgICAgICAgdmFyIHRvb2xiYXJFbCA9IHRoaXMuJC50b29sYmFyOworICAgICAgICB0aGlzLmdyb3VwQnlTZWxlY3Rvcl8gPSB0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICAgICAgdGhpcywgJ2dyb3VwQnknLAorICAgICAgICAgICAgJ3RpbWVTdW1tYXJ5U2lkZVBhbmVsLmdyb3VwQnknLCB0aGlzLmdyb3VwQnlfLAorICAgICAgICAgICAgW3tsYWJlbDogJ0dyb3VwIGJ5IHByb2Nlc3MnLCB2YWx1ZTogR1JPVVBfQllfUFJPQ0VTU19OQU1FfSwKKyAgICAgICAgICAgICB7bGFiZWw6ICdHcm91cCBieSB0aHJlYWQnLCB2YWx1ZTogR1JPVVBfQllfVEhSRUFEX05BTUV9CisgICAgICAgICAgICBdKTsKKyAgICAgICAgdG9vbGJhckVsLmFwcGVuZENoaWxkKHRoaXMuZ3JvdXBCeVNlbGVjdG9yXyk7CisKKyAgICAgICAgdGhpcy5ncm91cGluZ1VuaXRTZWxlY3Rvcl8gPSB0ci51aS5iLmNyZWF0ZVNlbGVjdG9yKAorICAgICAgICAgICAgdGhpcywgJ2dyb3VwaW5nVW5pdCcsCisgICAgICAgICAgICAndGltZVN1bW1hcnlTaWRlUGFuZWwuZ3JvdXBpbmdVbml0JywgdGhpcy5ncm91cGluZ1VuaXRfLAorICAgICAgICAgICAgW3tsYWJlbDogJ1dhbGwgdGltZScsIHZhbHVlOiBXQUxMX1RJTUVfR1JPVVBJTkdfVU5JVH0sCisgICAgICAgICAgICAge2xhYmVsOiAnQ1BVIHRpbWUnLCB2YWx1ZTogQ1BVX1RJTUVfR1JPVVBJTkdfVU5JVH0KKyAgICAgICAgICAgIF0pOworICAgICAgICB0b29sYmFyRWwuYXBwZW5kQ2hpbGQodGhpcy5ncm91cGluZ1VuaXRTZWxlY3Rvcl8pOworCisgICAgICAgIHRoaXMuc2hvd0NwdUlkbGVUaW1lQ2hlY2tib3hfID0gdHIudWkuYi5jcmVhdGVDaGVja0JveCgKKyAgICAgICAgICAgIHRoaXMsICdzaG93Q3B1SWRsZVRpbWUnLAorICAgICAgICAgICAgJ3RpbWVTdW1tYXJ5U2lkZVBhbmVsLnNob3dDcHVJZGxlVGltZScsIHRoaXMuc2hvd0NwdUlkbGVUaW1lXywKKyAgICAgICAgICAgICdTaG93IENQVSBpZGxlIHRpbWUnKTsKKyAgICAgICAgdG9vbGJhckVsLmFwcGVuZENoaWxkKHRoaXMuc2hvd0NwdUlkbGVUaW1lQ2hlY2tib3hfKTsKKyAgICAgICAgdGhpcy51cGRhdGVTaG93Q3B1SWRsZVRpbWVDaGVja2JveFZpc2liaWxpdHlfKCk7CisgICAgICB9LAorCisgICAgICAvKioKKyAgICAgICAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gYXJyYXkgb2YgZ3JvdXBzIGFuZCBtZXJnZXMgc21hbGxlciBncm91cHMgaW50bworICAgICAgICogdGhlIHByb3ZpZGVkICdPdGhlcicgZ3JvdXAgaXRlbSBzdWNoIHRoYXQgdGhlIHJlbWFpbmluZyBpdGVtcyBhcmUgcmVhZHkKKyAgICAgICAqIGZvciBwaWUtY2hhcnQgY29uc3VtcHRpb24uIE90aGVyd2lzZSwgdGhlIHBpZSBjaGFydCBnZXRzIG92ZXJ3aGVsbWVkCisgICAgICAgKiB3aXRoIHRvbnMgb2YgbGl0dGxlIHNsaWNlcy4KKyAgICAgICAqLworICAgICAgdHJpbVBpZUNoYXJ0RGF0YTogZnVuY3Rpb24oZ3JvdXBzLCBvdGhlckdyb3VwLCBnZXRWYWx1ZSwgb3B0X2V4dHJhVmFsdWUpIHsKKyAgICAgICAgLy8gQ29weSB0aGUgYXJyYXkgc28gaXQgY2FuIGJlIG11dGF0ZWQuCisgICAgICAgIGdyb3VwcyA9IGdyb3Vwcy5maWx0ZXIoZnVuY3Rpb24oZCkgeworICAgICAgICAgIHJldHVybiBnZXRWYWx1ZShkKSAhPSAwOworICAgICAgICB9KTsKKworICAgICAgICAvLyBGaWd1cmUgb3V0IHRvdGFsIGFycmF5IHJhbmdlLgorICAgICAgICB2YXIgc3VtID0gdHIuYi5TdGF0aXN0aWNzLnN1bShncm91cHMsIGdldFZhbHVlKTsKKyAgICAgICAgaWYgKG9wdF9leHRyYVZhbHVlICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgc3VtICs9IG9wdF9leHRyYVZhbHVlOworCisgICAgICAgIC8vIFNvcnQgYnkgdmFsdWUuCisgICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVCeVZhbHVlKGEsIGIpIHsKKyAgICAgICAgICByZXR1cm4gZ2V0VmFsdWUoYSkgLSBnZXRWYWx1ZShiKTsKKyAgICAgICAgfQorICAgICAgICBncm91cHMuc29ydChjb21wYXJlQnlWYWx1ZSk7CisKKyAgICAgICAgLy8gTm93IHN0YXJ0IGZ1c2luZyBlbGVtZW50cyB1bnRpbCBub25lIGFyZSBsZXNzIHRoYW4gdGhyZXNob2xkIGluIHNpemUuCisgICAgICAgIHZhciB0aHJlc3Nob2xkID0gMC4xICogc3VtOworICAgICAgICB3aGlsZSAoZ3JvdXBzLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICB2YXIgZ3JvdXAgPSBncm91cHNbMF07CisgICAgICAgICAgaWYgKGdldFZhbHVlKGdyb3VwKSA+PSB0aHJlc3Nob2xkKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICB2YXIgdiA9IGdldFZhbHVlKGdyb3VwKTsKKyAgICAgICAgICBpZiAodiArIGdldFZhbHVlKG90aGVyR3JvdXApID4gdGhyZXNzaG9sZCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBncm91cCBmcm9tIHRoZSBsaXN0IGFuZCBhZGQgaXQgdG8gdGhlICdPdGhlcicgZ3JvdXAuCisgICAgICAgICAgZ3JvdXBzLnNwbGljZSgwLCAxKTsKKyAgICAgICAgICBvdGhlckdyb3VwLmFwcGVuZEdyb3VwQ29udGVudHMoZ3JvdXApOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluYWwgcmV0dXJuLgorICAgICAgICBpZiAoZ2V0VmFsdWUob3RoZXJHcm91cCkgPiAwKQorICAgICAgICAgIGdyb3Vwcy5wdXNoKG90aGVyR3JvdXApOworCisgICAgICAgIGdyb3Vwcy5zb3J0KGNvbXBhcmVCeVZhbHVlKTsKKworICAgICAgICByZXR1cm4gZ3JvdXBzOworICAgICAgfSwKKworICAgICAgZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXA6IGZ1bmN0aW9uKG1vZGVsLCBuYW1lKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzdWx0c0Zvckdyb3VwKG1vZGVsLCBuYW1lKTsKKyAgICAgIH0sCisKKyAgICAgIGNyZWF0ZVBpZUNoYXJ0RnJvbVJlc3VsdEdyb3VwczogZnVuY3Rpb24oCisgICAgICAgICAgZ3JvdXBzLCB0aXRsZSwgZ2V0VmFsdWUsIG9wdF9leHRyYURhdGEpIHsKKyAgICAgICAgdmFyIGNoYXJ0ID0gbmV3IHRyLnVpLmIuUGllQ2hhcnQoKTsKKworICAgICAgICBmdW5jdGlvbiBwdXNoRGF0YUZvckdyb3VwKGRhdGEsIHJlc3VsdHNGb3JHcm91cCwgdmFsdWUpIHsKKyAgICAgICAgICBkYXRhLnB1c2goeworICAgICAgICAgICAgbGFiZWw6IHJlc3VsdHNGb3JHcm91cC5uYW1lLAorICAgICAgICAgICAgdmFsdWU6IHZhbHVlLAorICAgICAgICAgICAgdmFsdWVUZXh0OiB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbi5mb3JtYXQodmFsdWUpLAorICAgICAgICAgICAgcmVzdWx0c0Zvckdyb3VwOiByZXN1bHRzRm9yR3JvdXAKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICBjaGFydC5hZGRFdmVudExpc3RlbmVyKCdpdGVtLWNsaWNrJywgZnVuY3Rpb24oY2xpY2tFdmVudCkgeworICAgICAgICAgIHZhciByZXN1bHRzRm9yR3JvdXAgPSBjbGlja0V2ZW50LmRhdGEucmVzdWx0c0Zvckdyb3VwOworICAgICAgICAgIGlmIChyZXN1bHRzRm9yR3JvdXAgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgIHZhciBldmVudCA9IG5ldyB0ci5tb2RlbC5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgICBldmVudC5zZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQocmVzdWx0c0Zvckdyb3VwLmFsbFNsaWNlcyk7CisgICAgICAgICAgZXZlbnQuc2VsZWN0aW9uLnRpbWVTdW1tYXJ5R3JvdXBOYW1lID0gcmVzdWx0c0Zvckdyb3VwLm5hbWU7CisgICAgICAgICAgY2hhcnQuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICAgIH0pOworCisKKyAgICAgICAgLy8gQnVpbGQgY2hhcnQgZGF0YS4KKyAgICAgICAgdmFyIGRhdGEgPSBbXTsKKyAgICAgICAgZ3JvdXBzLmZvckVhY2goZnVuY3Rpb24ocmVzdWx0c0Zvckdyb3VwKSB7CisgICAgICAgICAgdmFyIHZhbHVlID0gZ2V0VmFsdWUocmVzdWx0c0Zvckdyb3VwKTsKKyAgICAgICAgICBpZiAodmFsdWUgPT09IDApCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgcHVzaERhdGFGb3JHcm91cChkYXRhLCByZXN1bHRzRm9yR3JvdXAsIHZhbHVlKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlmIChvcHRfZXh0cmFEYXRhKQorICAgICAgICAgIGRhdGEucHVzaC5hcHBseShkYXRhLCBvcHRfZXh0cmFEYXRhKTsKKworICAgICAgICBjaGFydC5jaGFydFRpdGxlID0gdGl0bGU7CisgICAgICAgIGNoYXJ0LmRhdGEgPSBkYXRhOworICAgICAgICByZXR1cm4gY2hhcnQ7CisgICAgICB9LAorCisgICAgICBnZXQgbW9kZWwoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICAgIH0sCisKKyAgICAgIHNldCBtb2RlbChtb2RlbCkgeworICAgICAgICB0aGlzLm1vZGVsXyA9IG1vZGVsOworICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgfSwKKworICAgICAgZ2V0IGxpc3RlbmluZ1RvS2V5cygpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfSwKKworICAgICAgZ2V0IGdyb3VwQnkoKSB7CisgICAgICAgIHJldHVybiBncm91cEJ5XzsKKyAgICAgIH0sCisKKyAgICAgIHNldCBncm91cEJ5KGdyb3VwQnkpIHsKKyAgICAgICAgdGhpcy5ncm91cEJ5XyA9IGdyb3VwQnk7CisgICAgICAgIGlmICh0aGlzLmdyb3VwQnlTZWxlY3Rvcl8pCisgICAgICAgICAgdGhpcy5ncm91cEJ5U2VsZWN0b3JfLnNlbGVjdGVkVmFsdWUgPSBncm91cEJ5OworICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgfSwKKworICAgICAgZ2V0IGdyb3VwaW5nVW5pdCgpIHsKKyAgICAgICAgcmV0dXJuIGdyb3VwaW5nVW5pdF87CisgICAgICB9LAorCisgICAgICBzZXQgZ3JvdXBpbmdVbml0KGdyb3VwaW5nVW5pdCkgeworICAgICAgICB0aGlzLmdyb3VwaW5nVW5pdF8gPSBncm91cGluZ1VuaXQ7CisgICAgICAgIGlmICh0aGlzLmdyb3VwaW5nVW5pdFNlbGVjdG9yXykKKyAgICAgICAgICB0aGlzLmdyb3VwaW5nVW5pdFNlbGVjdG9yXy5zZWxlY3RlZFZhbHVlID0gZ3JvdXBpbmdVbml0OworICAgICAgICB0aGlzLnVwZGF0ZVNob3dDcHVJZGxlVGltZUNoZWNrYm94VmlzaWJpbGl0eV8oKTsKKyAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICAgIH0sCisKKyAgICAgIGdldCBzaG93Q3B1SWRsZVRpbWUoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnNob3dDcHVJZGxlVGltZV87CisgICAgICB9LAorCisgICAgICBzZXQgc2hvd0NwdUlkbGVUaW1lKHNob3dDcHVJZGxlVGltZSkgeworICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZV8gPSBzaG93Q3B1SWRsZVRpbWU7CisgICAgICAgIGlmICh0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94XykKKyAgICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94Xy5jaGVja2VkID0gc2hvd0NwdUlkbGVUaW1lOworICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgfSwKKworICAgICAgdXBkYXRlU2hvd0NwdUlkbGVUaW1lQ2hlY2tib3hWaXNpYmlsaXR5XzogZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICghdGhpcy5zaG93Q3B1SWRsZVRpbWVDaGVja2JveF8pCisgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgdmlzaWJsZSA9IHRoaXMuZ3JvdXBpbmdVbml0XyA9PSBDUFVfVElNRV9HUk9VUElOR19VTklUOworICAgICAgICBpZiAodmlzaWJsZSkKKyAgICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94Xy5zdHlsZS5kaXNwbGF5ID0gJyc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICB0aGlzLnNob3dDcHVJZGxlVGltZUNoZWNrYm94Xy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgfSwKKworICAgICAgZ2V0R3JvdXBOYW1lRm9yVGhyZWFkXzogZnVuY3Rpb24odGhyZWFkKSB7CisgICAgICAgIGlmICh0aGlzLmdyb3VwQnlfID09IEdST1VQX0JZX1RIUkVBRF9OQU1FKQorICAgICAgICAgIHJldHVybiB0aHJlYWQubmFtZSA/IHRocmVhZC5uYW1lIDogdGhyZWFkLnVzZXJGcmllbmRseU5hbWU7CisKKyAgICAgICAgaWYgKHRoaXMuZ3JvdXBCeV8gPT0gR1JPVVBfQllfUFJPQ0VTU19OQU1FKQorICAgICAgICAgIHJldHVybiB0aHJlYWQucGFyZW50LnVzZXJGcmllbmRseU5hbWU7CisgICAgICB9LAorCisgICAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcmVzdWx0QXJlYSA9IHRoaXMuJC5yZXN1bHRfYXJlYTsKKyAgICAgICAgdGhpcy5jaGFydF8gPSB1bmRlZmluZWQ7CisgICAgICAgIHJlc3VsdEFyZWEudGV4dENvbnRlbnQgPSAnJzsKKworICAgICAgICBpZiAodGhpcy5tb2RlbF8gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHJhbmdlT2ZJbnRlcmVzdDsKKyAgICAgICAgaWYgKHRoaXMucmFuZ2VPZkludGVyZXN0Xy5pc0VtcHR5KQorICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdCA9IHRoaXMubW9kZWxfLmJvdW5kczsKKyAgICAgICAgZWxzZQorICAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdCA9IHRoaXMucmFuZ2VPZkludGVyZXN0XzsKKworICAgICAgICB2YXIgYWxsR3JvdXAgPSB0aGlzLmdlbmVyYXRlUmVzdWx0c0Zvckdyb3VwKHRoaXMubW9kZWxfLCAnYWxsJyk7CisgICAgICAgIHZhciByZXN1bHRzQnlHcm91cE5hbWUgPSB7fTsKKyAgICAgICAgdGhpcy5tb2RlbF8uZ2V0QWxsVGhyZWFkcygpLmZvckVhY2goZnVuY3Rpb24odGhyZWFkKSB7CisgICAgICAgICAgdmFyIGdyb3VwTmFtZSA9IHRoaXMuZ2V0R3JvdXBOYW1lRm9yVGhyZWFkXyh0aHJlYWQpOworICAgICAgICAgIGlmIChyZXN1bHRzQnlHcm91cE5hbWVbZ3JvdXBOYW1lXSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICByZXN1bHRzQnlHcm91cE5hbWVbZ3JvdXBOYW1lXSA9IHRoaXMuZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXAoCisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbF8sIGdyb3VwTmFtZSk7CisgICAgICAgICAgfQorICAgICAgICAgIHJlc3VsdHNCeUdyb3VwTmFtZVtncm91cE5hbWVdLmFwcGVuZFRocmVhZFNsaWNlcygKKyAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0LCB0aHJlYWQpOworCisgICAgICAgICAgYWxsR3JvdXAuYXBwZW5kVGhyZWFkU2xpY2VzKHJhbmdlT2ZJbnRlcmVzdCwgdGhyZWFkKTsKKyAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB3b3JraW5nIHdpdGggdGhlIHByb2R1Y2VkIGdyb3VwLgorICAgICAgICB2YXIgZ2V0VmFsdWVGcm9tR3JvdXAgPSBmdW5jdGlvbihncm91cCkgeworICAgICAgICAgIGlmICh0aGlzLmdyb3VwaW5nVW5pdF8gPT0gV0FMTF9USU1FX0dST1VQSU5HX1VOSVQpCisgICAgICAgICAgICByZXR1cm4gZ3JvdXAud2FsbFRpbWU7CisgICAgICAgICAgcmV0dXJuIGdyb3VwLmNwdVRpbWU7CisgICAgICAgIH0uYmluZCh0aGlzKTsKKworICAgICAgICAvLyBDcmVhdGUgc3VtbWFyeS4KKyAgICAgICAgdmFyIHN1bW1hcnlUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIHN1bW1hcnlUZXh0LmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlU3Bhbih7CisgICAgICAgICAgdGV4dENvbnRlbnQ6ICdUb3RhbCAnICsgdGhpcy5ncm91cGluZ1VuaXRfICsgJzogJywKKyAgICAgICAgICBib2xkOiB0cnVlfSkpOworICAgICAgICBzdW1tYXJ5VGV4dC5hcHBlbmRDaGlsZCh0ci51aS51bml0cy5jcmVhdGVUaW1lRHVyYXRpb25TcGFuKAorICAgICAgICAgICAgZ2V0VmFsdWVGcm9tR3JvdXAoYWxsR3JvdXApLCB7b3duZXJEb2N1bWVudDogdGhpcy5vd25lckRvY3VtZW50fSkpOworICAgICAgICByZXN1bHRBcmVhLmFwcGVuZENoaWxkKHN1bW1hcnlUZXh0KTsKKworICAgICAgICAvLyBJZiBuZWVkZWQsIGFkZCBpbiB0aGUgaWRsZSB0aW1lLgorICAgICAgICB2YXIgZXh0cmFWYWx1ZSA9IDA7CisgICAgICAgIHZhciBleHRyYURhdGEgPSBbXTsKKyAgICAgICAgaWYgKHRoaXMuc2hvd0NwdUlkbGVUaW1lXyAmJgorICAgICAgICAgICAgdGhpcy5ncm91cGluZ1VuaXRfID09PSBDUFVfVElNRV9HUk9VUElOR19VTklUICYmCisgICAgICAgICAgICB0aGlzLm1vZGVsLmtlcm5lbC5iZXN0R3Vlc3NBdENwdUNvdW50ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICB2YXIgbWF4Q3B1VGltZSA9IHJhbmdlT2ZJbnRlcmVzdC5yYW5nZSAqCisgICAgICAgICAgICAgIHRoaXMubW9kZWwua2VybmVsLmJlc3RHdWVzc0F0Q3B1Q291bnQ7CisgICAgICAgICAgdmFyIGlkbGVUaW1lID0gTWF0aC5tYXgoMCwgbWF4Q3B1VGltZSAtIGFsbEdyb3VwLmNwdVRpbWUpOworICAgICAgICAgIGV4dHJhRGF0YS5wdXNoKHsKKyAgICAgICAgICAgIGxhYmVsOiAnQ1BVIElkbGUnLAorICAgICAgICAgICAgdmFsdWU6IGlkbGVUaW1lLAorICAgICAgICAgICAgdmFsdWVUZXh0OiB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbi5mb3JtYXQoaWRsZVRpbWUpCisgICAgICAgICAgfSk7CisgICAgICAgICAgZXh0cmFWYWx1ZSArPSBpZGxlVGltZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENyZWF0ZSB0aGUgYWN0dWFsIGNoYXJ0LgorICAgICAgICB2YXIgb3RoZXJHcm91cCA9IHRoaXMuZ2VuZXJhdGVSZXN1bHRzRm9yR3JvdXAodGhpcy5tb2RlbF8sICdPdGhlcicpOworICAgICAgICB2YXIgZ3JvdXBzID0gdGhpcy50cmltUGllQ2hhcnREYXRhKAorICAgICAgICAgICAgdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKHJlc3VsdHNCeUdyb3VwTmFtZSksCisgICAgICAgICAgICBvdGhlckdyb3VwLAorICAgICAgICAgICAgZ2V0VmFsdWVGcm9tR3JvdXAsCisgICAgICAgICAgICBleHRyYVZhbHVlKTsKKworICAgICAgICBpZiAoZ3JvdXBzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgcmVzdWx0QXJlYS5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZVNwYW4oe3RleHRDb250ZW50OiAnTm8gZGF0YSd9KSk7CisgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuY2hhcnRfID0gdGhpcy5jcmVhdGVQaWVDaGFydEZyb21SZXN1bHRHcm91cHMoCisgICAgICAgICAgICBncm91cHMsCisgICAgICAgICAgICB0aGlzLmdyb3VwaW5nVW5pdF8gKyAnIGJyZWFrZG93biBieSAnICsgdGhpcy5ncm91cEJ5XywKKyAgICAgICAgICAgIGdldFZhbHVlRnJvbUdyb3VwLCBleHRyYURhdGEpOworICAgICAgICByZXN1bHRBcmVhLmFwcGVuZENoaWxkKHRoaXMuY2hhcnRfKTsKKworICAgICAgICB0aGlzLmNoYXJ0Xy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBldmVudCA9IG5ldyB0ci5tb2RlbC5SZXF1ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgICBldmVudC5zZWxlY3Rpb24gPSBuZXcgdHIuYy5FdmVudFNldChbXSk7CisgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgfSk7CisgICAgICAgIHRoaXMuY2hhcnRfLnNldFNpemUodGhpcy5jaGFydF8uZ2V0TWluU2l6ZSgpKTsKKyAgICAgIH0sCisKKyAgICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb25fOworICAgICAgfSwKKworICAgICAgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgICAgdGhpcy5zZWxlY3Rpb25fID0gc2VsZWN0aW9uOworCisgICAgICAgIGlmICh0aGlzLmNoYXJ0XyA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoc2VsZWN0aW9uLnRpbWVTdW1tYXJ5R3JvdXBOYW1lKQorICAgICAgICAgIHRoaXMuY2hhcnRfLmhpZ2hsaWdodGVkTGVnZW5kS2V5ID0gc2VsZWN0aW9uLnRpbWVTdW1tYXJ5R3JvdXBOYW1lOworICAgICAgICBlbHNlCisgICAgICAgICAgdGhpcy5jaGFydF8uaGlnaGxpZ2h0ZWRMZWdlbmRLZXkgPSB1bmRlZmluZWQ7CisgICAgICB9LAorCisgICAgICBnZXQgcmFuZ2VPZkludGVyZXN0KCkgeworICAgICAgICByZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOworICAgICAgfSwKKworICAgICAgc2V0IHJhbmdlT2ZJbnRlcmVzdChyYW5nZU9mSW50ZXJlc3QpIHsKKyAgICAgICAgdGhpcy5yYW5nZU9mSW50ZXJlc3RfID0gcmFuZ2VPZkludGVyZXN0OworICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgfSwKKworICAgICAgc3VwcG9ydHNNb2RlbDogZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICBzdXBwb3J0ZWQ6IGZhbHNlCisgICAgICAgIH07CisgICAgICB9LAorCisgICAgICBnZXQgdGV4dExhYmVsKCkgeworICAgICAgICByZXR1cm4gJ1RpbWUgU3VtbWFyeSc7CisgICAgICB9CisgICAgfSk7CisgIH0oKSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL3RpbWVfc3VtbWFyeV9zaWRlX3BhbmVsX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWxfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlODE5MzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zaWRlX3BhbmVsL3RpbWVfc3VtbWFyeV9zaWRlX3BhbmVsX3Rlc3QuaHRtbApAQCAtMCwwICsxLDIwMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL3NpZGVfcGFuZWwvdGltZV9zdW1tYXJ5X3NpZGVfcGFuZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgbmV3U2xpY2VOYW1lZCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZU5hbWVkOworCisgIGZ1bmN0aW9uIGNyZWF0ZU1vZGVsKG9wdF9vcHRpb25zKSB7CisgICAgdmFyIG9wdGlvbnMgPSBvcHRfb3B0aW9ucyB8fCB7fTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgaWYgKG9wdGlvbnMucHJvdmlkZVNvZnR3YXJlTWVhc3VyZWRDcHVDb3VudCkKKyAgICAgICAgbS5rZXJuZWwuc29mdHdhcmVNZWFzdXJlZENwdUNvdW50ID0gMjsKKworICAgICAgdmFyIGJyb3dzZXJQcm9jZXNzID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgYnJvd3Nlck1haW4gPSBicm93c2VyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIGJyb3dzZXJNYWluLm5hbWUgPSAnQ3JCcm93c2VyTWFpbic7CisgICAgICBicm93c2VyTWFpbi5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ2NhdCcsICdUYXNrJywgMCwgdW5kZWZpbmVkLCAwKTsKKyAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuZW5kU2xpY2UoMTAsIDkpOworICAgICAgYnJvd3Nlck1haW4uc2xpY2VHcm91cC5iZWdpblNsaWNlKCdjYXQnLCAnVGFzaycsIDIwLCB1bmRlZmluZWQsIDEwKTsKKyAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuZW5kU2xpY2UoMzAsIDIwKTsKKworICAgICAgdmFyIHJlbmRlcmVyUHJvY2VzcyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDQpOworICAgICAgdmFyIHJlbmRlcmVyTWFpbiA9IHJlbmRlcmVyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg1KTsKKyAgICAgIHJlbmRlcmVyTWFpbi5uYW1lID0gJ0NyUmVuZGVyZXJNYWluJzsKKyAgICAgIHJlbmRlcmVyTWFpbi5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ2NhdCcsICdUYXNrJywgMCwgdW5kZWZpbmVkLCAwKTsKKyAgICAgIHJlbmRlcmVyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDMwLCAyNSk7CisgICAgICByZW5kZXJlck1haW4uc2xpY2VHcm91cC5iZWdpblNsaWNlKCdjYXQnLCAnVGFzaycsIDQwLCB1bmRlZmluZWQsIDQwKTsKKyAgICAgIHJlbmRlcmVyTWFpbi5zbGljZUdyb3VwLmVuZFNsaWNlKDYwLCA1MCk7CisgICAgfSk7CisgICAgcmV0dXJuIG07CisgIH0KKworICB0ZXN0KCdncm91cCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWUtcy10aW1lLXN1bW1hcnktc2lkZS1wYW5lbCcpOworICAgIHZhciBtID0gY3JlYXRlTW9kZWwoKTsKKyAgICB2YXIgZ3JvdXAgPSB0cy5nZW5lcmF0ZVJlc3VsdHNGb3JHcm91cChtLCAnZm9vJyk7CisgICAgZ3JvdXAuYXBwZW5kVGhyZWFkU2xpY2VzKG0uYm91bmRzLCBtLnByb2Nlc3Nlc1sxXS50aHJlYWRzWzJdKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAud2FsbFRpbWUsIDIwKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuY3B1VGltZSwgMTkpOworICB9KTsKKworICB0ZXN0KCd0cmltJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGdyb3VwRGF0YSA9IFsKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6IDIuODU0OTk5OTk5OTk5OTk3LAorICAgICAgICBsYWJlbDogJzE1Njk1OScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlOiA5Ljk0ODk5OTk5OTk5OTk5OCwKKyAgICAgICAgbGFiZWw6ICcxNjEzMScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlOiA0Mi4zMTQwMDAwMDAwMDA3MjUsCisgICAgICAgIGxhYmVsOiAnNTE1MTEnCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZTogMzEuMDY5MDAwMDAwMDAwMjgsCisgICAgICAgIGxhYmVsOiAnQXVkaW9PdXRwdXREZXZpY2UnCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZTogMS40MTgsCisgICAgICAgIGxhYmVsOiAnQnJvd3NlckJsb2NraW5nV29ya2VyMi81MDk1MScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlOiAwLjA0NCwKKyAgICAgICAgbGFiZWw6ICdCcm93c2VyQmxvY2tpbmdXb3JrZXIzLzUwNjk1JworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6IDE4LjUyNTk5OTk5OTk5OTkzLAorICAgICAgICBsYWJlbDogJ0Nocm9tZV9DaGlsZElPVGhyZWFkJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6IDIuODg4LAorICAgICAgICBsYWJlbDogJ0Nocm9tZV9GaWxlVGhyZWFkJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6IDAuMDY3LAorICAgICAgICBsYWJlbDogJ0Nocm9tZV9IaXN0b3J5VGhyZWFkJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6IDI1LjQyMTAwMDAwMDAwMDA0NiwKKyAgICAgICAgbGFiZWw6ICdDaHJvbWVfSU9UaHJlYWQnCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZTogMC4wMTksCisgICAgICAgIGxhYmVsOiAnQ2hyb21lX1Byb2Nlc3NMYXVuY2hlclRocmVhZCcKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlOiA2NDMuMDg3OTk5OTk5OTk1LAorICAgICAgICBsYWJlbDogJ0NvbXBvc2l0b3InCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZTogNC4wNDk5OTk5OTk5OTk5NzMsCisgICAgICAgIGxhYmVsOiAnQ29tcG9zaXRvclJhc3RlcldvcmtlcjEvMjIwMzEnCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZTogNTAuMDQwMDAwMDAwMDAwMTA2LAorICAgICAgICBsYWJlbDogJ0NyQnJvd3Nlck1haW4nCisgICAgICB9LAorICAgICAgeworICAgICAgICB2YWx1ZTogMTI1Ni41MTMwMDAwMDAwMDQyLAorICAgICAgICBsYWJlbDogJ0NyR3B1TWFpbicKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlOiA1NTAyLjE5NDk5OTk5OTk5LAorICAgICAgICBsYWJlbDogJ0NyUmVuZGVyZXJNYWluJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6IDE1LjU1Mjk5OTk5OTk5OTg2MiwKKyAgICAgICAgbGFiZWw6ICdGRm1wZWdEZW11eGVyJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgdmFsdWU6IDYzLjcwNjAwMDAwMDAwMTUyNCwKKyAgICAgICAgbGFiZWw6ICdNZWRpYScKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlOiAyLjc0MTk5OTk5OTk5OTk5ODcsCisgICAgICAgIGxhYmVsOiAnUG93ZXJTYXZlQmxvY2tlcicKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHZhbHVlOiAwLjExNTAwMDAwMDAwMDAwMDA1LAorICAgICAgICBsYWJlbDogJ1dhdGNoZG9nJworICAgICAgfQorICAgIF07CisKKyAgICB2YXIgdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLXMtdGltZS1zdW1tYXJ5LXNpZGUtcGFuZWwnKTsKKworICAgIHZhciBncm91cHMgPSBbXTsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHN0YXJ0ID0gMDsKKyAgICAgIGdyb3VwRGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGdyb3VwRGF0YSkgeworICAgICAgICB2YXIgZ3JvdXAgPSB0cy5nZW5lcmF0ZVJlc3VsdHNGb3JHcm91cChtLCBncm91cERhdGEubGFiZWwpOworCisgICAgICAgIHZhciBzbGljZSA9IG5ld1NsaWNlTmFtZWQoZ3JvdXBEYXRhLmxhYmVsLCBzdGFydCwgZ3JvdXBEYXRhLnZhbHVlKTsKKyAgICAgICAgc3RhcnQgKz0gZ3JvdXBEYXRhLnZhbHVlOworICAgICAgICBncm91cC5hbGxTbGljZXMucHVzaChzbGljZSk7CisgICAgICAgIGdyb3VwLnRvcExldmVsU2xpY2VzLnB1c2goc2xpY2UpOworCisgICAgICAgIGdyb3Vwcy5wdXNoKGdyb3VwKTsKKyAgICAgIH0pOworICAgIH0pOworCisgICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tR3JvdXAoZCkgeyByZXR1cm4gZC53YWxsVGltZTsgfQorCisgICAgdmFyIG90aGVyR3JvdXAgPSB0cy5nZW5lcmF0ZVJlc3VsdHNGb3JHcm91cChtLCAnT3RoZXInKTsKKyAgICB2YXIgbmV3R3JvdXBzID0gdHMudHJpbVBpZUNoYXJ0RGF0YShncm91cHMsIG90aGVyR3JvdXAsIGdldFZhbHVlRnJvbUdyb3VwKTsKKworICAgIC8vIFZpc3VhbGl6ZSB0aGUgZGF0YSBvbmNlIGl0cyB0cmltbWVkLgorICAgIHZhciBjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWUtcy10aW1lLXN1bW1hcnktc2lkZS1wYW5lbCcpOworICAgIHZhciBjaGFydCA9IGNlLmNyZWF0ZVBpZUNoYXJ0RnJvbVJlc3VsdEdyb3VwcygKKyAgICAgICAgbmV3R3JvdXBzLCAnVHJpbW1lZCcsIGdldFZhbHVlRnJvbUdyb3VwKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoY2hhcnQpOworICAgIGNoYXJ0LnNldFNpemUoY2hhcnQuZ2V0TWluU2l6ZSgpKTsKKyAgfSk7CisKKyAgdGVzdCgnYmFzaWNJbldhbGxUaW1lTW9kZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gY3JlYXRlTW9kZWwoKTsKKworICAgIHZhciBwYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWUtcy10aW1lLXN1bW1hcnktc2lkZS1wYW5lbCcpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dChwYW5lbCk7CisgICAgcGFuZWwubW9kZWwgPSBtOworICAgIHBhbmVsLmdyb3VwaW5nVW5pdCA9ICdXYWxsIHRpbWUnOworICAgIHBhbmVsLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOworICB9KTsKKworICB0ZXN0KCdiYXNpY0luQ3B1VGltZU1vZGVCdXROb0NwdURhdGEnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IGNyZWF0ZU1vZGVsKCk7CisKKyAgICB2YXIgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLXMtdGltZS1zdW1tYXJ5LXNpZGUtcGFuZWwnKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOworICAgIHBhbmVsLm1vZGVsID0gbTsKKyAgICBwYW5lbC5ncm91cGluZ1VuaXQgPSAnQ1BVIHRpbWUnOworICAgIHBhbmVsLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOworICB9KTsKKworICB0ZXN0KCdiYXNpY0luQ3B1VGltZU1vZGVBbmRDcHVEYXRhJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBjcmVhdGVNb2RlbCh7CisgICAgICBwcm92aWRlU29mdHdhcmVNZWFzdXJlZENwdUNvdW50OiB0cnVlCisgICAgfSk7CisKKyAgICB2YXIgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1lLXMtdGltZS1zdW1tYXJ5LXNpZGUtcGFuZWwnKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQocGFuZWwpOworICAgIHBhbmVsLm1vZGVsID0gbTsKKyAgICBwYW5lbC5ncm91cGluZ1VuaXQgPSAnQ1BVIHRpbWUnOworICAgIHBhbmVsLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE0MzNiMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHMuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IgorICAgICAgaHJlZj0iL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIKKyAgICAgIGhyZWY9Ii91aS9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5odG1sIj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAwOTZmNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suY3NzCkBAIC0wLDAgKzEsMTUgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgKi8KKworLnRyLXVpLWUtc3lzdGVtLXN0YXRzLWluc3RhbmNlLXRyYWNrIHsKKyAgaGVpZ2h0OiA1MDBweDsKK30KKworLnRyLXVpLWUtc3lzdGVtLXN0YXRzLWluc3RhbmNlLXRyYWNrIHVsIHsKKyAgbGlzdC1zdHlsZTogbm9uZTsKKyAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsKKyAgbWFyZ2luOiAwOworICBvdmVyZmxvdzogaGlkZGVuOworfQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjYWMzZmYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX2luc3RhbmNlX3RyYWNrLmh0bWwKQEAgLTAsMCArMSwzNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9InN0eWxlc2hlZXQiCisgICAgICBocmVmPSIvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2suY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3N0YWNrZWRfYmFyc190cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9ldmVudF9wcmVzZW50ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLnN5c3RlbV9zdGF0cycsIGZ1bmN0aW9uKCkgeworICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB0ci51aS5iLkV2ZW50UHJlc2VudGVyOworCisgIHZhciBwYWxldHRlID0gdHIudWkuYi5nZXRDb2xvclBhbGV0dGUoKTsKKyAgdmFyIGhpZ2hsaWdodElkQm9vc3QgPSB0ci51aS5iLmdldENvbG9yUGFsZXR0ZUhpZ2hsaWdodElkQm9vc3QoKTsKKworICB2YXIgc3RhdENvdW50OworCisgIHZhciBleGNsdWRlZFN0YXRzID0geydtZW1pbmZvJzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Bzd3Bpbic6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAncHN3cG91dCc6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAncGdtYWpmYXVsdCc6IDB9LAorICAgICAgICAgICAgICAgICAgICAgICdkaXNraW5mbyc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbyc6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAnaW9fdGltZSc6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAncmVhZF90aW1lJzogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZWFkcyc6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAncmVhZHNfbWVyZ2VkJzogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzZWN0b3JzX3JlYWQnOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NlY3RvcnNfd3JpdHRlbic6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAnd2VpZ2h0ZWRfaW9fdGltZSc6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAnd3JpdGVfdGltZSc6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAnd3JpdGVzJzogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICd3cml0ZXNfbWVyZ2VkJzogMH0sCisgICAgICAgICAgICAgICAgICAgICAgJ3N3YXBpbmZvJzoge30KKyAgICAgICAgICAgICAgICAgICAgICB9OworCisgIC8qKgorICAgKiBUcmFja3MgdGhhdCBkaXNwbGF5IHN5c3RlbSBzdGF0cyBkYXRhLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1N0YWNrZWRCYXJzVHJhY2t9CisgICAqLworCisgIHZhciBTeXN0ZW1TdGF0c0luc3RhbmNlVHJhY2sgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICd0ci11aS1lLXN5c3RlbS1zdGF0cy1pbnN0YW5jZS10cmFjaycsIHRyLnVpLnRyYWNrcy5TdGFja2VkQmFyc1RyYWNrKTsKKworICBTeXN0ZW1TdGF0c0luc3RhbmNlVHJhY2sucHJvdG90eXBlID0geworCisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuU3RhY2tlZEJhcnNUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5TdGFja2VkQmFyc1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndHItdWktZS1zeXN0ZW0tc3RhdHMtaW5zdGFuY2UtdHJhY2snKTsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gbnVsbDsKKyAgICB9LAorCisgICAgc2V0IG9iamVjdEluc3RhbmNlcyhvYmplY3RJbnN0YW5jZXMpIHsKKyAgICAgIGlmICghb2JqZWN0SW5zdGFuY2VzKSB7CisgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gW107CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIGlmIChvYmplY3RJbnN0YW5jZXMubGVuZ3RoICE9IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQmFkIG9iamVjdCBpbnN0YW5jZSBjb3VudC4nKTsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gb2JqZWN0SW5zdGFuY2VzWzBdOworICAgICAgaWYgKHRoaXMub2JqZWN0SW5zdGFuY2VfICE9PSBudWxsKSB7CisgICAgICAgIHRoaXMuY29tcHV0ZVJhdGVzXyh0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHMpOworICAgICAgICB0aGlzLm1heFN0YXRzXyA9IHRoaXMuY29tcHV0ZU1heFN0YXRzXygKKyAgICAgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfLnNuYXBzaG90cyk7CisgICAgICB9CisgICAgfSwKKworICAgIGNvbXB1dGVSYXRlc186IGZ1bmN0aW9uKHNuYXBzaG90cykgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbmFwc2hvdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHNuYXBzaG90ID0gc25hcHNob3RzW2ldOworICAgICAgICB2YXIgc3RhdHMgPSBzbmFwc2hvdC5nZXRTdGF0cygpOworICAgICAgICB2YXIgcHJldlNuYXBzaG90OworICAgICAgICB2YXIgcHJldlN0YXRzOworCisgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAvLyBEZWx0YXMgd2lsbCBiZSB6ZXJvLgorICAgICAgICAgIHByZXZTbmFwc2hvdCA9IHNuYXBzaG90c1swXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBwcmV2U25hcHNob3QgPSBzbmFwc2hvdHNbaSAtIDFdOworICAgICAgICB9CisgICAgICAgIHByZXZTdGF0cyA9IHByZXZTbmFwc2hvdC5nZXRTdGF0cygpOworICAgICAgICB2YXIgdGltZUludGVydmFsU2Vjb25kcyA9IChzbmFwc2hvdC50cyAtIHByZXZTbmFwc2hvdC50cykgLyAxMDAwOworICAgICAgICAvLyBQcmV2ZW50IGRpdmlkZSBieSB6ZXJvLgorICAgICAgICBpZiAodGltZUludGVydmFsU2Vjb25kcyA9PSAwKQorICAgICAgICAgIHRpbWVJbnRlcnZhbFNlY29uZHMgPSAxOworCisgICAgICAgIHRoaXMuY29tcHV0ZVJhdGVzUmVjdXJzaXZlXyhwcmV2U3RhdHMsIHN0YXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZUludGVydmFsU2Vjb25kcyk7CisgICAgICB9CisgICAgfSwKKworICAgIGNvbXB1dGVSYXRlc1JlY3Vyc2l2ZV86IGZ1bmN0aW9uKHByZXZTdGF0cywgc3RhdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZUludGVydmFsU2Vjb25kcykgeworICAgICAgZm9yICh2YXIgc3RhdE5hbWUgaW4gc3RhdHMpIHsKKyAgICAgICAgaWYgKHN0YXRzW3N0YXROYW1lXSBpbnN0YW5jZW9mIE9iamVjdCkgeworICAgICAgICAgIHRoaXMuY29tcHV0ZVJhdGVzUmVjdXJzaXZlXyhwcmV2U3RhdHNbc3RhdE5hbWVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0c1tzdGF0TmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVJbnRlcnZhbFNlY29uZHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGlmIChzdGF0TmFtZSA9PSAnc2VjdG9yc19yZWFkJykgeworICAgICAgICAgICAgc3RhdHNbJ2J5dGVzX3JlYWRfcGVyX3NlYyddID0gKHN0YXRzWydzZWN0b3JzX3JlYWQnXSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlN0YXRzWydzZWN0b3JzX3JlYWQnXSkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTEyIC8gdGltZUludGVydmFsU2Vjb25kczsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKHN0YXROYW1lID09ICdzZWN0b3JzX3dyaXR0ZW4nKSB7CisgICAgICAgICAgICBzdGF0c1snYnl0ZXNfd3JpdHRlbl9wZXJfc2VjJ10gPQorICAgICAgICAgICAgICAgIChzdGF0c1snc2VjdG9yc193cml0dGVuJ10gLQorICAgICAgICAgICAgICAgICBwcmV2U3RhdHNbJ3NlY3RvcnNfd3JpdHRlbiddKSAqCisgICAgICAgICAgICAgICAgNTEyIC8gdGltZUludGVydmFsU2Vjb25kczsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKHN0YXROYW1lID09ICdwZ21hamZhdWx0JykgeworICAgICAgICAgICAgc3RhdHNbJ3BnbWFqZmF1bHRfcGVyX3NlYyddID0gKHN0YXRzWydwZ21hamZhdWx0J10gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTdGF0c1sncGdtYWpmYXVsdCddKSAvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lSW50ZXJ2YWxTZWNvbmRzOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoc3RhdE5hbWUgPT0gJ3Bzd3BpbicpIHsKKyAgICAgICAgICAgIHN0YXRzWydieXRlc19zd3Bpbl9wZXJfc2VjJ10gPSAoc3RhdHNbJ3Bzd3BpbiddIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlN0YXRzWydwc3dwaW4nXSkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAgLyB0aW1lSW50ZXJ2YWxTZWNvbmRzOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoc3RhdE5hbWUgPT0gJ3Bzd3BvdXQnKSB7CisgICAgICAgICAgICBzdGF0c1snYnl0ZXNfc3dwb3V0X3Blcl9zZWMnXSA9IChzdGF0c1sncHN3cG91dCddIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTdGF0c1sncHN3cG91dCddKSAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAgLyB0aW1lSW50ZXJ2YWxTZWNvbmRzOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBjb21wdXRlTWF4U3RhdHNfOiBmdW5jdGlvbihzbmFwc2hvdHMpIHsKKyAgICAgIHZhciBtYXhTdGF0cyA9IG5ldyBPYmplY3QoKTsKKyAgICAgIHN0YXRDb3VudCA9IDA7CisKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc25hcHNob3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBzbmFwc2hvdCA9IHNuYXBzaG90c1tpXTsKKyAgICAgICAgdmFyIHN0YXRzID0gc25hcHNob3QuZ2V0U3RhdHMoKTsKKworICAgICAgICB0aGlzLmNvbXB1dGVNYXhTdGF0c1JlY3Vyc2l2ZV8oc3RhdHMsIG1heFN0YXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZWRTdGF0cyk7CisgICAgICB9CisKKyAgICAgIHJldHVybiBtYXhTdGF0czsKKyAgICB9LAorCisgICAgY29tcHV0ZU1heFN0YXRzUmVjdXJzaXZlXzogZnVuY3Rpb24oc3RhdHMsIG1heFN0YXRzLCBleGNsdWRlZFN0YXRzKSB7CisgICAgICBmb3IgKHZhciBzdGF0TmFtZSBpbiBzdGF0cykgeworICAgICAgICBpZiAoc3RhdHNbc3RhdE5hbWVdIGluc3RhbmNlb2YgT2JqZWN0KSB7CisgICAgICAgICAgaWYgKCEoc3RhdE5hbWUgaW4gbWF4U3RhdHMpKQorICAgICAgICAgICAgbWF4U3RhdHNbc3RhdE5hbWVdID0gbmV3IE9iamVjdCgpOworCisgICAgICAgICAgdmFyIGV4Y2x1ZGVkTmVzdGVkOworICAgICAgICAgIGlmIChleGNsdWRlZFN0YXRzICYmIHN0YXROYW1lIGluIGV4Y2x1ZGVkU3RhdHMpCisgICAgICAgICAgICBleGNsdWRlZE5lc3RlZCA9IGV4Y2x1ZGVkU3RhdHNbc3RhdE5hbWVdOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGV4Y2x1ZGVkTmVzdGVkID0gbnVsbDsKKworICAgICAgICAgIHRoaXMuY29tcHV0ZU1heFN0YXRzUmVjdXJzaXZlXyhzdGF0c1tzdGF0TmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFN0YXRzW3N0YXROYW1lXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZWROZXN0ZWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGlmIChleGNsdWRlZFN0YXRzICYmIHN0YXROYW1lIGluIGV4Y2x1ZGVkU3RhdHMpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICBpZiAoIShzdGF0TmFtZSBpbiBtYXhTdGF0cykpIHsKKyAgICAgICAgICAgIG1heFN0YXRzW3N0YXROYW1lXSA9IDA7CisgICAgICAgICAgICBzdGF0Q291bnQrKzsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKHN0YXRzW3N0YXROYW1lXSA+IG1heFN0YXRzW3N0YXROYW1lXSkKKyAgICAgICAgICAgIG1heFN0YXRzW3N0YXROYW1lXSA9IHN0YXRzW3N0YXROYW1lXTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBnZXQgaGVpZ2h0KCkgeworICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDsKKyAgICB9LAorCisgICAgc2V0IGhlaWdodChoZWlnaHQpIHsKKyAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0OworICAgIH0sCisKKyAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7CisgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDoKKyAgICAgICAgICB0aGlzLmRyYXdTdGF0QmFyc18odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfSwKKworICAgIGRyYXdTdGF0QmFyc186IGZ1bmN0aW9uKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKKyAgICAgIHZhciBjdHggPSB0aGlzLmNvbnRleHQoKTsKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKworICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgd2lkdGggPSBib3VuZHMud2lkdGggKiBwaXhlbFJhdGlvOworICAgICAgdmFyIGhlaWdodCA9IChib3VuZHMuaGVpZ2h0ICogcGl4ZWxSYXRpbykgLyBzdGF0Q291bnQ7CisKKyAgICAgIC8vIEN1bGxpbmcgcGFyYW1ldGVycy4KKyAgICAgIHZhciB2cCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisKKyAgICAgIC8vIFNjYWxlIGJ5IHRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IHNuYXBzaG90LgorICAgICAgdmFyIG1heFN0YXRzID0gdGhpcy5tYXhTdGF0c187CisKKyAgICAgIHZhciBvYmplY3RTbmFwc2hvdHMgPSB0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHM7CisgICAgICB2YXIgbG93SW5kZXggPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCisgICAgICAgICAgb2JqZWN0U25hcHNob3RzLAorICAgICAgICAgIGZ1bmN0aW9uKHNuYXBzaG90KSB7CisgICAgICAgICAgICByZXR1cm4gc25hcHNob3QudHM7CisgICAgICAgICAgfSwKKyAgICAgICAgICB2aWV3TFdvcmxkKTsKKworICAgICAgLy8gQXNzdXJlIHRoYXQgdGhlIHN0YWNrIHdpdGggdGhlIGxlZnQgZWRnZSBvZmYgc2NyZWVuIHN0aWxsIGdldHMgZHJhd24KKyAgICAgIGlmIChsb3dJbmRleCA+IDApCisgICAgICAgIGxvd0luZGV4IC09IDE7CisKKyAgICAgIGZvciAodmFyIGkgPSBsb3dJbmRleDsgaSA8IG9iamVjdFNuYXBzaG90cy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgc25hcHNob3QgPSBvYmplY3RTbmFwc2hvdHNbaV07CisgICAgICAgIHZhciB0cmFjZSA9IHNuYXBzaG90LmdldFN0YXRzKCk7CisgICAgICAgIHZhciBjdXJyZW50WSA9IGhlaWdodDsKKworICAgICAgICB2YXIgbGVmdCA9IHNuYXBzaG90LnRzOworICAgICAgICBpZiAobGVmdCA+IHZpZXdSV29ybGQpCisgICAgICAgICAgYnJlYWs7CisgICAgICAgIHZhciBsZWZ0VmlldyA9IHZwLnhXb3JsZFRvVmlldyhsZWZ0KTsKKyAgICAgICAgaWYgKGxlZnRWaWV3IDwgMCkKKyAgICAgICAgICBsZWZ0VmlldyA9IDA7CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgZWRnZXMgZm9yIHRoZSBjb2x1bW4gZ3JhcGggYmFyLgorICAgICAgICB2YXIgcmlnaHQ7CisgICAgICAgIGlmIChpICE9IG9iamVjdFNuYXBzaG90cy5sZW5ndGggLSAxKSB7CisgICAgICAgICAgcmlnaHQgPSBvYmplY3RTbmFwc2hvdHNbaSArIDFdLnRzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGxhc3Qgc25hcGhvdCBvZiBtdWx0aXBsZSBzbmFwc2hvdHMsIHVzZSB0aGUgd2lkdGggb2YKKyAgICAgICAgICAvLyB0aGUgcHJldmlvdXMgc25hcHNob3QgZm9yIHRoZSB3aWR0aC4KKyAgICAgICAgICBpZiAob2JqZWN0U25hcHNob3RzLmxlbmd0aCA+IDEpCisgICAgICAgICAgICByaWdodCA9IG9iamVjdFNuYXBzaG90c1tpXS50cyArIChvYmplY3RTbmFwc2hvdHNbaV0udHMgLQorICAgICAgICAgICAgICAgICAgICBvYmplY3RTbmFwc2hvdHNbaSAtIDFdLnRzKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG9ubHkgb25lIHNuYXBzaG90LCB1c2UgbWF4IGJvdW5kcyBhcyB0aGUgd2lkdGguCisgICAgICAgICAgICByaWdodCA9IHRoaXMub2JqZWN0SW5zdGFuY2VfLnBhcmVudC5tb2RlbC5ib3VuZHMubWF4OworICAgICAgICB9CisKKyAgICAgICAgdmFyIHJpZ2h0VmlldyA9IHZwLnhXb3JsZFRvVmlldyhyaWdodCk7CisgICAgICAgIGlmIChyaWdodFZpZXcgPiB3aWR0aCkKKyAgICAgICAgICByaWdodFZpZXcgPSB3aWR0aDsKKworICAgICAgICAvLyBGbG9vciB0aGUgYm91bmRzIHRvIGF2b2lkIGEgc21hbGwgZ2FwIGJldHdlZW4gc3RhY2tzLgorICAgICAgICBsZWZ0VmlldyA9IE1hdGguZmxvb3IobGVmdFZpZXcpOworICAgICAgICByaWdodFZpZXcgPSBNYXRoLmZsb29yKHJpZ2h0Vmlldyk7CisKKyAgICAgICAgLy8gRGVzY2VuZCBpbnRvIG5lc3RlZCBzdGF0cy4KKyAgICAgICAgdGhpcy5kcmF3U3RhdEJhcnNSZWN1cnNpdmVfKHNuYXBzaG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodFZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFN0YXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFkpOworCisgICAgICAgIGlmIChpID09IGxvd0luZGV4KQorICAgICAgICAgIHRoaXMuZHJhd1N0YXROYW1lc18obGVmdFZpZXcsIGhlaWdodCwgY3VycmVudFksICcnLCBtYXhTdGF0cyk7CisgICAgICB9CisgICAgICBjdHgubGluZVdpZHRoID0gMTsKKyAgICB9LAorCisgICAgZHJhd1N0YXRCYXJzUmVjdXJzaXZlXzogZnVuY3Rpb24oc25hcHNob3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhTdGF0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50WSkgeworICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOworCisgICAgICBmb3IgKHZhciBzdGF0TmFtZSBpbiBtYXhTdGF0cykgeworICAgICAgICBpZiAoc3RhdHNbc3RhdE5hbWVdIGluc3RhbmNlb2YgT2JqZWN0KSB7CisgICAgICAgICAgLy8gVXNlIHRoZSB5LXBvc2l0aW9uIHJldHVybmVkIGZyb20gdGhlIHJlY3Vyc2l2ZSBjYWxsLgorICAgICAgICAgIGN1cnJlbnRZID0gdGhpcy5kcmF3U3RhdEJhcnNSZWN1cnNpdmVfKHNuYXBzaG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0VmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHNbc3RhdE5hbWVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFN0YXRzW3N0YXROYW1lXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50WSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdmFyIG1heFN0YXQgPSBtYXhTdGF0c1tzdGF0TmFtZV07CisKKyAgICAgICAgICAvLyBEcmF3IGEgYmFyIGZvciB0aGUgc3RhdC4gVGhlIGhlaWdodCBvZiB0aGUgYmFyIGlzIHNjYWxlZAorICAgICAgICAgIC8vIGFnYWluc3QgdGhlIGxhcmdlc3QgdmFsdWUgb2YgdGhlIHN0YXQgYWNyb3NzIGFsbCBzbmFwc2hvdHMuCisgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldEJhclNuYXBzaG90Q29sb3IoCisgICAgICAgICAgICAgIHNuYXBzaG90LCBNYXRoLnJvdW5kKGN1cnJlbnRZIC8gaGVpZ2h0KSk7CisKKyAgICAgICAgICB2YXIgYmFySGVpZ2h0OworCisgICAgICAgICAgaWYgKG1heFN0YXQgPiAwKSB7CisgICAgICAgICAgICBiYXJIZWlnaHQgPSBoZWlnaHQgKiBNYXRoLm1heChzdGF0c1tzdGF0TmFtZV0sIDApIC8gbWF4U3RhdDsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFySGVpZ2h0ID0gMDsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBjdHguZmlsbFJlY3QobGVmdFZpZXcsIGN1cnJlbnRZIC0gYmFySGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChyaWdodFZpZXcgLSBsZWZ0VmlldywgMSksIGJhckhlaWdodCk7CisKKyAgICAgICAgICBjdXJyZW50WSArPSBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gUmV0dXJuIHRoZSB1cGRhdGVkIHktcG9zaXRpb24uCisgICAgICByZXR1cm4gY3VycmVudFk7CisgICAgfSwKKworICAgIGRyYXdTdGF0TmFtZXNfOiBmdW5jdGlvbihsZWZ0VmlldywgaGVpZ2h0LCBjdXJyZW50WSwgcHJlZml4LCBtYXhTdGF0cykgeworICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOworCisgICAgICBjdHgudGV4dEFsaWduID0gJ2VuZCc7CisgICAgICBjdHguZm9udCA9ICcxMnB4IEFyaWFsJzsKKyAgICAgIGN0eC5maWxsU3R5bGUgPSAnIzAwMDAwMCc7CisgICAgICBmb3IgKHZhciBzdGF0TmFtZSBpbiBtYXhTdGF0cykgeworICAgICAgICBpZiAobWF4U3RhdHNbc3RhdE5hbWVdIGluc3RhbmNlb2YgT2JqZWN0KSB7CisgICAgICAgICAgY3VycmVudFkgPSB0aGlzLmRyYXdTdGF0TmFtZXNfKGxlZnRWaWV3LCBoZWlnaHQsIGN1cnJlbnRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0TmFtZSwgbWF4U3RhdHNbc3RhdE5hbWVdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB2YXIgZnVsbG5hbWUgPSBzdGF0TmFtZTsKKworICAgICAgICAgIGlmIChwcmVmaXggIT0gJycpCisgICAgICAgICAgICBmdWxsbmFtZSA9IHByZWZpeCArICcgOjogJyArIHN0YXROYW1lOworCisgICAgICAgICAgY3R4LmZpbGxUZXh0KGZ1bGxuYW1lLCBsZWZ0VmlldyAtIDEwLCBjdXJyZW50WSAtIGhlaWdodCAvIDQpOworICAgICAgICAgIGN1cnJlbnRZICs9IGhlaWdodDsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICByZXR1cm4gY3VycmVudFk7CisgICAgfQorICB9OworCisgIHRyLnVpLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrLnJlZ2lzdGVyKAorICAgICAgU3lzdGVtU3RhdHNJbnN0YW5jZVRyYWNrLAorICAgICAge3R5cGVOYW1lOiAnYmFzZTo6VHJhY2VFdmVudFN5c3RlbVN0YXRzTW9uaXRvcjo6U3lzdGVtU3RhdHMnfSk7CisKKyAgcmV0dXJuIHsKKyAgICBTeXN0ZW1TdGF0c0luc3RhbmNlVHJhY2s6IFN5c3RlbVN0YXRzSW5zdGFuY2VUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19pbnN0YW5jZV90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjIyNDhhOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfaW5zdGFuY2VfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgU3lzdGVtU3RhdHNJbnN0YW5jZVRyYWNrID0gdHIudWkuZS5zeXN0ZW1fc3RhdHMuU3lzdGVtU3RhdHNJbnN0YW5jZVRyYWNrOworICB2YXIgVmlld3BvcnQgPSB0ci51aS5UaW1lbGluZVZpZXdwb3J0OworCisgIHZhciBjcmVhdGVPYmplY3RzID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG9iamVjdEluc3RhbmNlID0gbmV3IHRyLm1vZGVsLk9iamVjdEluc3RhbmNlKHt9KTsKKyAgICB2YXIgc25hcHNob3RzID0gW107CisKKyAgICB2YXIgc3RhdHMxID0gbmV3IE9iamVjdCgpOworICAgIHZhciBzdGF0czIgPSBuZXcgT2JqZWN0KCk7CisKKyAgICBzdGF0czFbJ2NvbW1pdHRlZF9tZW1vcnknXSA9IDIwMDAwMDA7CisgICAgc3RhdHMyWydjb21taXR0ZWRfbWVtb3J5J10gPSAzMDAwMDAwOworCisgICAgc3RhdHMxWydtZW1pbmZvJ10gPSBuZXcgT2JqZWN0KCk7CisgICAgc3RhdHMxLm1lbWluZm9bJ2ZyZWUnXSA9IDEwMDAwOworICAgIHN0YXRzMlsnbWVtaW5mbyddID0gbmV3IE9iamVjdCgpOworICAgIHN0YXRzMi5tZW1pbmZvWydmcmVlJ10gPSAyMDAwMDsKKworICAgIHNuYXBzaG90cy5wdXNoKG5ldyB0ci5lLnN5c3RlbV9zdGF0cy5TeXN0ZW1TdGF0c1NuYXBzaG90KG9iamVjdEluc3RhbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLCBzdGF0czEpKTsKKyAgICBzbmFwc2hvdHMucHVzaChuZXcgdHIuZS5zeXN0ZW1fc3RhdHMuU3lzdGVtU3RhdHNTbmFwc2hvdChvYmplY3RJbnN0YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCwgc3RhdHMyKSk7CisKKyAgICBvYmplY3RJbnN0YW5jZS5zbmFwc2hvdHMgPSBzbmFwc2hvdHM7CisKKyAgICByZXR1cm4gb2JqZWN0SW5zdGFuY2U7CisgIH07CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgb2JqZWN0SW5zdGFuY2VzID0gW107CisgICAgb2JqZWN0SW5zdGFuY2VzLnB1c2goY3JlYXRlT2JqZWN0cygpKTsKKworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFN5c3RlbVN0YXRzSW5zdGFuY2VUcmFjayh2aWV3cG9ydCk7CisgICAgdHJhY2sub2JqZWN0SW5zdGFuY2VzID0gb2JqZWN0SW5zdGFuY2VzOworICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7CisgICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7CisKKyAgICB0cmFjay5oZWFkaW5nID0gJ3Rlc3RCYXNpYyc7CisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA1MCwgdHJhY2suY2xpZW50V2lkdGgpOworICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3Rfdmlldy5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OThiMTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuY3NzCkBAIC0wLDAgKzEsMjggQEAKKy8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgKi8KKworLnRyLXVpLWUtc3lzdGVtLXN0YXRzLXNuYXBzaG90LXZpZXcgLnN1YmhlYWQgeworICBmb250LXNpemU6IHNtYWxsOworICBwYWRkaW5nLWJvdHRvbTogMTBweDsKK30KKworLnRyLXVpLWUtc3lzdGVtLXN0YXRzLXNuYXBzaG90LXZpZXcgdWwgeworICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDVweDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgY3Vyc29yOiBwb2ludGVyOworICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICBsaXN0LXN0eWxlOiBub25lOworICBtYXJnaW46IDA7CisgIHBhZGRpbmctbGVmdDogMTVweDsKK30KKworLnRyLXVpLWUtc3lzdGVtLXN0YXRzLXNuYXBzaG90LXZpZXcgbGkgeworICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDVweDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgY3Vyc29yOiBwb2ludGVyOworICBsaXN0LXN0eWxlOiBub25lOworICBtYXJnaW46IDA7CisgIHBhZGRpbmctbGVmdDogMTVweDsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3Rfdmlldy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvc3lzdGVtX3N0YXRzL3N5c3RlbV9zdGF0c19zbmFwc2hvdF92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGViZjcwZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3N5c3RlbV9zdGF0cy9zeXN0ZW1fc3RhdHNfc25hcHNob3Rfdmlldy5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9InN0eWxlc2hlZXQiCisgICAgaHJlZj0iL3VpL2V4dHJhcy9zeXN0ZW1fc3RhdHMvc3lzdGVtX3N0YXRzX3NuYXBzaG90X3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLmUuc3lzdGVtX3N0YXRzJywgZnVuY3Rpb24oKSB7CisgIC8qCisgICAqIERpc3BsYXlzIGEgc3lzdGVtIHN0YXRzIHNuYXBzaG90IGluIGEgaHVtYW4gcmVhZGFibGUgZm9ybS4gQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgU3lzdGVtU3RhdHNTbmFwc2hvdFZpZXcgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICd0ci11aS1lLXN5c3RlbS1zdGF0cy1zbmFwc2hvdC12aWV3JywgdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3KTsKKworICBTeXN0ZW1TdGF0c1NuYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0ci11aS1lLXN5c3RlbS1zdGF0cy1zbmFwc2hvdC12aWV3Jyk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzbmFwc2hvdCA9IHRoaXMub2JqZWN0U25hcHNob3RfOworICAgICAgaWYgKCFzbmFwc2hvdCB8fCAhc25hcHNob3QuZ2V0U3RhdHMoKSkgeworICAgICAgICB0aGlzLnRleHRDb250ZW50ID0gJ05vIHN5c3RlbSBzdGF0cyBzbmFwc2hvdCBmb3VuZC4nOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICAvLyBDbGVhciBvbGQgc25hcHNob3Qgdmlldy4KKyAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKKworICAgICAgdmFyIHN0YXRzID0gc25hcHNob3QuZ2V0U3RhdHMoKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5idWlsZExpc3RfKHN0YXRzKSk7CisgICAgfSwKKworICAgIGlzRmxvYXQ6IGZ1bmN0aW9uKG4pIHsKKyAgICAgIHJldHVybiB0eXBlb2YgbiA9PT0gJ251bWJlcicgJiYgbiAlIDEgIT09IDA7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgbmVzdGVkIGxpc3RzLgorICAgICAqCisgICAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRzIFRoZSBjdXJyZW50IHRyYWNlIHN5c3RlbSBzdGF0cyBlbnRyeS4KKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fSBBIHVsIGxpc3QgZWxlbWVudC4KKyAgICAgKi8KKyAgICBidWlsZExpc3RfOiBmdW5jdGlvbihzdGF0cykgeworICAgICAgdmFyIHN0YXRMaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKKworICAgICAgZm9yICh2YXIgc3RhdE5hbWUgaW4gc3RhdHMpIHsKKyAgICAgICAgdmFyIHN0YXRUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgc3RhdFRleHQudGV4dENvbnRlbnQgPSAnJyArIHN0YXROYW1lICsgJzogJzsKKyAgICAgICAgc3RhdExpc3QuYXBwZW5kQ2hpbGQoc3RhdFRleHQpOworCisgICAgICAgIGlmIChzdGF0c1tzdGF0TmFtZV0gaW5zdGFuY2VvZiBPYmplY3QpIHsKKyAgICAgICAgICBzdGF0TGlzdC5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkTGlzdF8oc3RhdHNbc3RhdE5hbWVdKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgaWYgKHRoaXMuaXNGbG9hdChzdGF0c1tzdGF0TmFtZV0pKQorICAgICAgICAgICAgc3RhdFRleHQudGV4dENvbnRlbnQgKz0gc3RhdHNbc3RhdE5hbWVdLnRvRml4ZWQoMik7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RhdFRleHQudGV4dENvbnRlbnQgKz0gc3RhdHNbc3RhdE5hbWVdOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHJldHVybiBzdGF0TGlzdDsKKyAgICB9CisgIH07CisKKyAgdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnJlZ2lzdGVyKAorICAgICAgU3lzdGVtU3RhdHNTbmFwc2hvdFZpZXcsCisgICAgICB7dHlwZU5hbWU6ICdiYXNlOjpUcmFjZUV2ZW50U3lzdGVtU3RhdHNNb25pdG9yOjpTeXN0ZW1TdGF0cyd9KTsKKworICByZXR1cm4geworICAgIFN5c3RlbVN0YXRzU25hcHNob3RWaWV3OiBTeXN0ZW1TdGF0c1NuYXBzaG90VmlldworICB9OworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy9oZWFwX2luc3RhbmNlX3RyYWNrLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTdkODIwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5jc3MKQEAgLTAsMCArMSwxNSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyAqLworCisudHItdWktZS10Y21hbGxvYy1oZWFwLWluc3RhbmNlLXRyYWNrIHsKKyAgaGVpZ2h0OiAxNTBweDsKK30KKworLnRyLXVpLWUtdGNtYWxsb2MtaGVhcC1pbnN0YW5jZS10cmFjayB1bCB7CisgIGxpc3Qtc3R5bGU6IG5vbmU7CisgIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7CisgIG1hcmdpbjogMDsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL2hlYXBfaW5zdGFuY2VfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL2hlYXBfaW5zdGFuY2VfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGFlMWVjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5odG1sCkBAIC0wLDAgKzEsMTc3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvZXh0cmFzL3RjbWFsbG9jL2hlYXBfaW5zdGFuY2VfdHJhY2suY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3N0YWNrZWRfYmFyc190cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9ldmVudF9wcmVzZW50ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLnRjbWFsbG9jJywgZnVuY3Rpb24oKSB7CisgIHZhciBFdmVudFByZXNlbnRlciA9IHRyLnVpLmIuRXZlbnRQcmVzZW50ZXI7CisKKyAgLyoqCisgICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBoZWFwIG1lbW9yeSBkYXRhLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1N0YWNrZWRCYXJzVHJhY2t9CisgICAqLworCisgIHZhciBIZWFwSW5zdGFuY2VUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ3RyLXVpLWUtdGNtYWxsb2MtaGVhcC1pbnN0YW5jZS10cmFjaycsIHRyLnVpLnRyYWNrcy5TdGFja2VkQmFyc1RyYWNrKTsKKworICBIZWFwSW5zdGFuY2VUcmFjay5wcm90b3R5cGUgPSB7CisKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5TdGFja2VkQmFyc1RyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLlN0YWNrZWRCYXJzVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0ci11aS1lLXRjbWFsbG9jLWhlYXAtaW5zdGFuY2UtdHJhY2snKTsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gbnVsbDsKKyAgICB9LAorCisgICAgc2V0IG9iamVjdEluc3RhbmNlcyhvYmplY3RJbnN0YW5jZXMpIHsKKyAgICAgIGlmICghb2JqZWN0SW5zdGFuY2VzKSB7CisgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gW107CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIGlmIChvYmplY3RJbnN0YW5jZXMubGVuZ3RoICE9IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQmFkIG9iamVjdCBpbnN0YW5jZSBjb3VudC4nKTsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gb2JqZWN0SW5zdGFuY2VzWzBdOworICAgICAgdGhpcy5tYXhCeXRlc18gPSB0aGlzLmNvbXB1dGVNYXhCeXRlc18oCisgICAgICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZV8uc25hcHNob3RzKTsKKyAgICB9LAorCisgICAgY29tcHV0ZU1heEJ5dGVzXzogZnVuY3Rpb24oc25hcHNob3RzKSB7CisgICAgICB2YXIgbWF4Qnl0ZXMgPSAwOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbmFwc2hvdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHNuYXBzaG90ID0gc25hcHNob3RzW2ldOworICAgICAgICAvLyBTdW0gYWxsIHRoZSBjdXJyZW50IGFsbG9jYXRpb25zIGluIHRoaXMgc25hcHNob3QuCisgICAgICAgIHZhciB0cmFjZU5hbWVzID0gT2JqZWN0LmtleXMoc25hcHNob3QuaGVhcF8uY2hpbGRyZW4pOworICAgICAgICB2YXIgc3VtQnl0ZXMgPSAwOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRyYWNlTmFtZXMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICBzdW1CeXRlcyArPSBzbmFwc2hvdC5oZWFwXy5jaGlsZHJlblt0cmFjZU5hbWVzW2pdXS5jdXJyZW50Qnl0ZXM7CisgICAgICAgIH0KKyAgICAgICAgLy8gS2VlcCB0cmFjayBvZiB0aGUgbWF4aW11bSBhY3Jvc3MgYWxsIHNuYXBzaG90cy4KKyAgICAgICAgaWYgKHN1bUJ5dGVzID4gbWF4Qnl0ZXMpCisgICAgICAgICAgbWF4Qnl0ZXMgPSBzdW1CeXRlczsKKyAgICAgIH0KKyAgICAgIHJldHVybiBtYXhCeXRlczsKKyAgICB9LAorCisgICAgZ2V0IGhlaWdodCgpIHsKKyAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5oZWlnaHQ7CisgICAgfSwKKworICAgIHNldCBoZWlnaHQoaGVpZ2h0KSB7CisgICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IGhlaWdodDsKKyAgICB9LAorCisgICAgZHJhdzogZnVuY3Rpb24odHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgeworICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6CisgICAgICAgICAgdGhpcy5kcmF3RXZlbnRzXyh2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZHJhd0V2ZW50c186IGZ1bmN0aW9uKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKKyAgICAgIHZhciBjdHggPSB0aGlzLmNvbnRleHQoKTsKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKworICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgd2lkdGggPSBib3VuZHMud2lkdGggKiBwaXhlbFJhdGlvOworICAgICAgdmFyIGhlaWdodCA9IGJvdW5kcy5oZWlnaHQgKiBwaXhlbFJhdGlvOworCisgICAgICAvLyBDdWxsaW5nIHBhcmFtZXRlcnMuCisgICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworCisgICAgICAvLyBTY2FsZSBieSB0aGUgc2l6ZSBvZiB0aGUgbGFyZ2VzdCBzbmFwc2hvdC4KKyAgICAgIHZhciBtYXhCeXRlcyA9IHRoaXMubWF4Qnl0ZXNfOworCisgICAgICB2YXIgb2JqZWN0U25hcHNob3RzID0gdGhpcy5vYmplY3RJbnN0YW5jZV8uc25hcHNob3RzOworICAgICAgdmFyIGxvd0luZGV4ID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAorICAgICAgICAgIG9iamVjdFNuYXBzaG90cywKKyAgICAgICAgICBmdW5jdGlvbihzbmFwc2hvdCkgeworICAgICAgICAgICAgcmV0dXJuIHNuYXBzaG90LnRzOworICAgICAgICAgIH0sCisgICAgICAgICAgdmlld0xXb3JsZCk7CisgICAgICAvLyBBc3N1cmUgdGhhdCB0aGUgc3RhY2sgd2l0aCB0aGUgbGVmdCBlZGdlIG9mZiBzY3JlZW4gc3RpbGwgZ2V0cyBkcmF3bgorICAgICAgaWYgKGxvd0luZGV4ID4gMCkKKyAgICAgICAgbG93SW5kZXggLT0gMTsKKworICAgICAgZm9yICh2YXIgaSA9IGxvd0luZGV4OyBpIDwgb2JqZWN0U25hcHNob3RzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBzbmFwc2hvdCA9IG9iamVjdFNuYXBzaG90c1tpXTsKKworICAgICAgICB2YXIgbGVmdCA9IHNuYXBzaG90LnRzOworICAgICAgICBpZiAobGVmdCA+IHZpZXdSV29ybGQpCisgICAgICAgICAgYnJlYWs7CisgICAgICAgIHZhciBsZWZ0VmlldyA9IGR0LnhXb3JsZFRvVmlldyhsZWZ0KTsKKyAgICAgICAgaWYgKGxlZnRWaWV3IDwgMCkKKyAgICAgICAgICBsZWZ0VmlldyA9IDA7CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgZWRnZXMgZm9yIHRoZSBjb2x1bW4gZ3JhcGggYmFyLgorICAgICAgICB2YXIgcmlnaHQ7CisgICAgICAgIGlmIChpICE9IG9iamVjdFNuYXBzaG90cy5sZW5ndGggLSAxKSB7CisgICAgICAgICAgcmlnaHQgPSBvYmplY3RTbmFwc2hvdHNbaSArIDFdLnRzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGxhc3Qgc25hcGhvdCBvZiBtdWx0aXBsZSBzbmFwc2hvdHMsIHVzZSB0aGUgd2lkdGggb2YKKyAgICAgICAgICAvLyB0aGUgcHJldmlvdXMgc25hcHNob3QgZm9yIHRoZSB3aWR0aC4KKyAgICAgICAgICBpZiAob2JqZWN0U25hcHNob3RzLmxlbmd0aCA+IDEpCisgICAgICAgICAgICByaWdodCA9IG9iamVjdFNuYXBzaG90c1tpXS50cyArIChvYmplY3RTbmFwc2hvdHNbaV0udHMgLQorICAgICAgICAgICAgICAgICAgICBvYmplY3RTbmFwc2hvdHNbaSAtIDFdLnRzKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG9ubHkgb25lIHNuYXBzaG90LCB1c2UgbWF4IGJvdW5kcyBhcyB0aGUgd2lkdGguCisgICAgICAgICAgICByaWdodCA9IHRoaXMub2JqZWN0SW5zdGFuY2VfLnBhcmVudC5tb2RlbC5ib3VuZHMubWF4OworICAgICAgICB9CisKKyAgICAgICAgdmFyIHJpZ2h0VmlldyA9IGR0LnhXb3JsZFRvVmlldyhyaWdodCk7CisgICAgICAgIGlmIChyaWdodFZpZXcgPiB3aWR0aCkKKyAgICAgICAgICByaWdodFZpZXcgPSB3aWR0aDsKKworICAgICAgICAvLyBGbG9vciB0aGUgYm91bmRzIHRvIGF2b2lkIGEgc21hbGwgZ2FwIGJldHdlZW4gc3RhY2tzLgorICAgICAgICBsZWZ0VmlldyA9IE1hdGguZmxvb3IobGVmdFZpZXcpOworICAgICAgICByaWdodFZpZXcgPSBNYXRoLmZsb29yKHJpZ2h0Vmlldyk7CisKKyAgICAgICAgLy8gRHJhdyBhIHN0YWNrZWQgYmFyIGdyYXBoLiBMYXJnZXN0IGl0ZW0gaXMgc3RvcmVkIGZpcnN0IGluIHRoZQorICAgICAgICAvLyBoZWFwIGRhdGEgc3RydWN0dXJlLCBzbyBpdGVyYXRlIGJhY2t3YXJkcy4gTGlrZXdpc2UgZHJhdyBmcm9tCisgICAgICAgIC8vIHRoZSBib3R0b20gb2YgdGhlIGJhciB1cHdhcmRzLgorICAgICAgICB2YXIgY3VycmVudFkgPSBoZWlnaHQ7CisgICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc25hcHNob3QuaGVhcF8uY2hpbGRyZW4pOworICAgICAgICBmb3IgKHZhciBrID0ga2V5cy5sZW5ndGggLSAxOyBrID49IDA7IGstLSkgeworICAgICAgICAgIHZhciB0cmFjZSA9IHNuYXBzaG90LmhlYXBfLmNoaWxkcmVuW2tleXNba11dOworICAgICAgICAgIGlmICh0aGlzLm9iamVjdEluc3RhbmNlXy5zZWxlY3RlZFRyYWNlcyAmJgorICAgICAgICAgICAgICB0aGlzLm9iamVjdEluc3RhbmNlXy5zZWxlY3RlZFRyYWNlcy5sZW5ndGggPiAwICYmCisgICAgICAgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfLnNlbGVjdGVkVHJhY2VzWzBdID09IGtleXNba10pIHsKKyAgICAgICAgICAgIC8vIEEgdHJhY2Ugc2VsZWN0ZWQgaW4gdGhlIGFuYWx5c2lzIHZpZXcgaXMgYnJpZ2h0IHllbGxvdy4KKyAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAncmdiKDIzOSwgMjQ4LCAyMDYpJzsKKyAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRCYXJTbmFwc2hvdENvbG9yKHNuYXBzaG90LCBrKTsKKworICAgICAgICAgIHZhciBiYXJIZWlnaHQgPSBoZWlnaHQgKiB0cmFjZS5jdXJyZW50Qnl0ZXMgLyBtYXhCeXRlczsKKyAgICAgICAgICBjdHguZmlsbFJlY3QobGVmdFZpZXcsIGN1cnJlbnRZIC0gYmFySGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1heChyaWdodFZpZXcgLSBsZWZ0VmlldywgMSksIGJhckhlaWdodCk7CisgICAgICAgICAgY3VycmVudFkgLT0gYmFySGVpZ2h0OworICAgICAgICB9CisgICAgICB9CisgICAgICBjdHgubGluZVdpZHRoID0gMTsKKyAgICB9CisgIH07CisKKyAgdHIudWkudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2sucmVnaXN0ZXIoCisgICAgICBIZWFwSW5zdGFuY2VUcmFjaywKKyAgICAgIHt0eXBlTmFtZTogJ21lbW9yeTo6SGVhcCd9KTsKKworICByZXR1cm4geworICAgIEhlYXBJbnN0YW5jZVRyYWNrOiBIZWFwSW5zdGFuY2VUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL2ltYWdlcy9jb2xsYXBzZS5wbmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy9pbWFnZXMvY29sbGFwc2UucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2V4dHJhcy90Y21hbGxvYy9pbWFnZXMvY29sbGFwc2UucG5nCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy9pbWFnZXMvY29sbGFwc2UucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL2ltYWdlcy9leHBhbmQucG5nIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvaW1hZ2VzL2V4cGFuZC5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvZXh0cmFzL3RjbWFsbG9jL2ltYWdlcy9leHBhbmQucG5nCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy9pbWFnZXMvZXhwYW5kLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvYy5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOThhYjM3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2MuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9leHRyYXMvdGNtYWxsb2MvaGVhcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19zbmFwc2hvdF92aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvdGNtYWxsb2MvaGVhcF9pbnN0YW5jZV90cmFjay5odG1sIj4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhOTQ1MQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuY3NzCkBAIC0wLDAgKzEsMzcgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgKi8KKworLnRyLXVpLWUtdGNtYWxsb2MtaW5zdGFuY2UtdmlldyAuc3ViaGVhZCB7CisgIGZvbnQtc2l6ZTogc21hbGw7CisgIHBhZGRpbmctYm90dG9tOiAxMHB4OworfQorCisudHItdWktZS10Y21hbGxvYy1pbnN0YW5jZS12aWV3ICNhcmdzIHsKKyAgd2hpdGUtc3BhY2U6IHByZTsKK30KKworLnRyLXVpLWUtdGNtYWxsb2MtaW5zdGFuY2UtdmlldyAjc25hcHNob3RzID4gKiB7CisgIGRpc3BsYXk6IGJsb2NrOworfQorCisudHItdWktZS10Y21hbGxvYy1pbnN0YW5jZS12aWV3IHsKKyAgb3ZlcmZsb3c6IGF1dG87Cit9CisKKy50ci11aS1lLXRjbWFsbG9jLWluc3RhbmNlLXZpZXcgKiB7CisgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Cit9CisKKy50ci11aS1lLXRjbWFsbG9jLWluc3RhbmNlLXZpZXcgLnRpdGxlIHsKKyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxMjgsIDEyOCwgMTI4KTsKKyAgZm9udC1zaXplOiAxMTAlOworICBmb250LXdlaWdodDogYm9sZDsKK30KKworLnRyLXVpLWUtdGNtYWxsb2MtaW5zdGFuY2UtdmlldyB0ZCwKKy50ci11aS1lLXRjbWFsbG9jLWluc3RhbmNlLXZpZXcgdGggeworICBmb250LXNpemU6IHNtYWxsOworICB0ZXh0LWFsaWduOiByaWdodDsKK30KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2M1ZThiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2NfaW5zdGFuY2Vfdmlldy5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX2luc3RhbmNlX3ZpZXcuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2FuYWx5c2lzL29iamVjdF9pbnN0YW5jZV92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkuZS50Y21hbGxvYycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogRGlzcGxheXMgdGNtYWxsb2MgaGVhcCBtZW1vcnkgaW5mb3JtYXRpb24gb3ZlciB0aW1lLiBBIHRjbWFsbG9jIGluc3RhbmNlCisgICAqIGhhcyBtdWx0aXBsZSBzbmFwc2hvdHMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIFRjbWFsbG9jSW5zdGFuY2VWaWV3ID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAndHItdWktZS10Y21hbGxvYy1pbnN0YW5jZS12aWV3JywgdHIudWkuYW5hbHlzaXMuT2JqZWN0SW5zdGFuY2VWaWV3KTsKKworICBUY21hbGxvY0luc3RhbmNlVmlldy5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5hbmFseXNpcy5PYmplY3RJbnN0YW5jZVZpZXcucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdHIudWkuYW5hbHlzaXMuT2JqZWN0SW5zdGFuY2VWaWV3LnByb3RvdHlwZS5kZWNvcmF0ZS5hcHBseSh0aGlzKTsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndHItdWktZS10Y21hbGxvYy1pbnN0YW5jZS12aWV3Jyk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBpbnN0YW5jZSA9IHRoaXMub2JqZWN0SW5zdGFuY2VfOworICAgICAgaWYgKCFpbnN0YW5jZSB8fCAhaW5zdGFuY2Uuc25hcHNob3RzIHx8IGluc3RhbmNlLnNuYXBzaG90cy5sZW5ndGggPT0gMCkgeworICAgICAgICB0aGlzLnRleHRDb250ZW50ID0gJ05vIGRhdGEgZm91bmQuJzsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgLy8gQ2xlYXIgb2xkIHZpZXcuCisgICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7CisKKyAgICAgIC8vIEZpcnN0LCBncmFiIHRoZSBsYXJnZXN0IE4gdHJhY2VzIGZyb20gdGhlIGZpcnN0IHNuYXBzaG90LgorICAgICAgdmFyIHNuYXBzaG90ID0gaW5zdGFuY2Uuc25hcHNob3RzWzBdOworICAgICAgdmFyIGhlYXBFbnRyeSA9IHNuYXBzaG90LmhlYXBfOworICAgICAgdmFyIHRyYWNlTmFtZXMgPSBPYmplY3Qua2V5cyhoZWFwRW50cnkuY2hpbGRyZW4pOworICAgICAgdHJhY2VOYW1lcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgICAgLy8gU29ydCBmcm9tIGxhcmdlIHRvIHNtYWxsLgorICAgICAgICByZXR1cm4gaGVhcEVudHJ5LmNoaWxkcmVuW2JdLmN1cnJlbnRCeXRlcyAtCisgICAgICAgICAgICBoZWFwRW50cnkuY2hpbGRyZW5bYV0uY3VycmVudEJ5dGVzOworICAgICAgfSk7CisgICAgICAvLyBPbmx5IHVzZSB0aGUgbGFyZ2VzdCA1IHRyYWNlcyB0byBzdGFydAorICAgICAgdHJhY2VOYW1lcyA9IHRyYWNlTmFtZXMuc2xpY2UoMCwgNSk7CisKKyAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RhYmxlJyk7CisgICAgICB2YXIgdGl0bGVzID0gWydUb3RhbCddOworICAgICAgdGl0bGVzID0gdGl0bGVzLmNvbmNhdCh0cmFjZU5hbWVzKTsKKyAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRoaXMuYnVpbGRSb3dfKG51bGwsIHRpdGxlcykpOworCisgICAgICAvLyBPbmUgYXJyYXkgcGVyIHRyYWNlIG5hbWUuCisgICAgICB2YXIgY2hhcnRBcnJheXMgPSBbW10sIFtdLCBbXSwgW10sIFtdXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5zdGFuY2Uuc25hcHNob3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBzbmFwc2hvdCA9IGluc3RhbmNlLnNuYXBzaG90c1tpXTsKKyAgICAgICAgdmFyIHJvd0RhdGEgPSBbc25hcHNob3QudG90YWxfLmN1cnJlbnRCeXRlc107CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgNTsgaisrKSB7CisgICAgICAgICAgdmFyIGJ5dGVzID0gc25hcHNob3QuaGVhcF8uY2hpbGRyZW5bdHJhY2VOYW1lc1tqXV0uY3VycmVudEJ5dGVzOworICAgICAgICAgIHJvd0RhdGEucHVzaChieXRlcyk7CisgICAgICAgICAgLy8gQXNzb2NpYXRlIGEgbWVnYWJ5dGUgY291bnQgd2l0aCBhIHRpbWUgaW4gc2Vjb25kcy4KKyAgICAgICAgICBjaGFydEFycmF5c1tqXS5wdXNoKAorICAgICAgICAgICAgICBbTWF0aC5yb3VuZChzbmFwc2hvdC50cyAvIDEwMDApLCBieXRlcyAvIDEwMjQgLyAxMDI0XSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJvdyA9IHRoaXMuYnVpbGRSb3dfKHNuYXBzaG90LCByb3dEYXRhKTsKKyAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQocm93KTsKKyAgICAgIH0KKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGFibGUpOworICAgIH0sCisKKyAgICBidWlsZFJvd186IGZ1bmN0aW9uKHNuYXBzaG90LCBpdGVtcykgeworICAgICAgdmFyIHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CisgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOworICAgICAgaWYgKHNuYXBzaG90KSB7CisgICAgICAgIHZhciBzbmFwc2hvdExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1hLWFuYWx5c2lzLWxpbmsnKTsKKyAgICAgICAgc25hcHNob3RMaW5rLnNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldChzbmFwc2hvdCk7CisgICAgICAgIHRkLmFwcGVuZENoaWxkKHNuYXBzaG90TGluayk7CisgICAgICB9CisgICAgICByb3cuYXBwZW5kQ2hpbGQodGQpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgZGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CisgICAgICAgIGRhdGEudGV4dENvbnRlbnQgPSBpdGVtc1tpXTsKKyAgICAgICAgcm93LmFwcGVuZENoaWxkKGRhdGEpOworICAgICAgfQorICAgICAgcmV0dXJuIHJvdzsKKyAgICB9LAorCisgICAgLyoKKyAgICAgKiBSZXR1cm5zIGEgaHVtYW4gcmVhZGFibGUgc3RyaW5nIGZvciBhIHNpemUgaW4gYnl0ZXMuCisgICAgICovCisgICAgZ2V0Qnl0ZVN0cmluZ186IGZ1bmN0aW9uKGJ5dGVzKSB7CisgICAgICB2YXIgbWIgPSBieXRlcyAvIDEwMjQgLyAxMDI0OworICAgICAgcmV0dXJuIG1iLnRvRml4ZWQoMSkgKyAnIE1CJzsKKyAgICB9CisgIH07CisKKyAgdHIudWkuYW5hbHlzaXMuT2JqZWN0SW5zdGFuY2VWaWV3LnJlZ2lzdGVyKAorICAgICAgVGNtYWxsb2NJbnN0YW5jZVZpZXcsCisgICAgICB7dHlwZU5hbWU6ICdtZW1vcnk6OkhlYXAnfSk7CisKKyAgcmV0dXJuIHsKKyAgICBUY21hbGxvY0luc3RhbmNlVmlldzogVGNtYWxsb2NJbnN0YW5jZVZpZXcKKyAgfTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX3NuYXBzaG90X3ZpZXcuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9leHRyYXMvdGNtYWxsb2MvdGNtYWxsb2Nfc25hcHNob3Rfdmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdmYzdhNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX3NuYXBzaG90X3ZpZXcuY3NzCkBAIC0wLDAgKzEsNTkgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisgKi8KKworLnRyLXVpLWUtdGNtYWxsb2MtaGVhcC1zbmFwc2hvdC12aWV3IC5zdWJoZWFkIHsKKyAgZm9udC1zaXplOiBzbWFsbDsKKyAgcGFkZGluZy1ib3R0b206IDEwcHg7Cit9CisKKy50ci11aS1lLXRjbWFsbG9jLWhlYXAtc25hcHNob3QtdmlldyB1bCB7CisgIGJhY2tncm91bmQtcG9zaXRpb246IDAgNXB4OworICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICBjdXJzb3I6IHBvaW50ZXI7CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgIGxpc3Qtc3R5bGU6IG5vbmU7CisgIG1hcmdpbjogMDsKKyAgcGFkZGluZy1sZWZ0OiAxNXB4OworfQorCisudHItdWktZS10Y21hbGxvYy1oZWFwLXNuYXBzaG90LXZpZXcgbGkgeworICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDVweDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgY3Vyc29yOiBwb2ludGVyOworICBsaXN0LXN0eWxlOiBub25lOworICBtYXJnaW46IDA7CisgIHBhZGRpbmctbGVmdDogMTVweDsKK30KKworLyogQ29sbGFwc2VkIHN0YXRlIGZvciBsaXN0IGVsZW1lbnQgKi8KKy50ci11aS1lLXRjbWFsbG9jLWhlYXAtc25hcHNob3QtdmlldyAuY29sbGFwc2VkIHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4vaW1hZ2VzL2V4cGFuZC5wbmcpOworfQorCisvKiBFeHBhbmRlZCBzdGF0ZSBmb3IgbGlzdCBlbGVtZW50LiBNdXN0IGJlIGxvY2F0ZWQgdW5kZXIgdGhlIGNvbGxhcHNlZCBvbmUuICovCisudHItdWktZS10Y21hbGxvYy1oZWFwLXNuYXBzaG90LXZpZXcgLmV4cGFuZGVkIHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4vaW1hZ2VzL2NvbGxhcHNlLnBuZyk7Cit9CisKKy8qIEFsbG9jYXRpb24gc2l6ZSBpbiBNQiwgcmlnaHQtYWxpZ25lZCBmb3IgZWFzaWVyIGNvbXBhcmlzb24gb2YgY29sdW1ucy4gKi8KKy50ci11aS1lLXRjbWFsbG9jLWhlYXAtc25hcHNob3QtdmlldyAudHJhY2UtYnl0ZXMgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIHBhZGRpbmctcmlnaHQ6IDEwcHg7CisgIHRleHQtYWxpZ246IHJpZ2h0OworICB3aWR0aDogODBweDsKK30KKworLyogVHJhY2UgYWxsb2NhdGlvbiBjb3VudC4gKi8KKy50ci11aS1lLXRjbWFsbG9jLWhlYXAtc25hcHNob3QtdmlldyAudHJhY2UtYWxsb2NzIHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBwYWRkaW5nLXJpZ2h0OiAxMHB4OworICB0ZXh0LWFsaWduOiByaWdodDsKKyAgd2lkdGg6IDEyMHB4OworfQorCisvKiBUcmFjZSBuYW1lLCBpbmxpbmUgc28gaXQgYXBwZWFycyB0byB0aGUgcmlnaHQgb2YgdGhlIGJ5dGUgY291bnQuICovCisudHItdWktZS10Y21hbGxvYy1oZWFwLXNuYXBzaG90LXZpZXcgLnRyYWNlLW5hbWUgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19zbmFwc2hvdF92aWV3Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19zbmFwc2hvdF92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYzMGFkMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZXh0cmFzL3RjbWFsbG9jL3RjbWFsbG9jX3NuYXBzaG90X3ZpZXcuaHRtbApAQCAtMCwwICsxLDE3NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL2V4dHJhcy90Y21hbGxvYy90Y21hbGxvY19zbmFwc2hvdF92aWV3LmNzcyI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvb2JqZWN0X3NuYXBzaG90X3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS5lLnRjbWFsbG9jJywgZnVuY3Rpb24oKSB7CisgIC8qCisgICAqIERpc3BsYXlzIGEgaGVhcCBtZW1vcnkgc25hcHNob3QgaW4gYSBodW1hbiByZWFkYWJsZSBmb3JtLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBUY21hbGxvY1NuYXBzaG90VmlldyA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ3RyLXVpLWUtdGNtYWxsb2MtaGVhcC1zbmFwc2hvdC12aWV3JywKKyAgICAgIHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90Vmlldyk7CisKKyAgVGNtYWxsb2NTbmFwc2hvdFZpZXcucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkuYW5hbHlzaXMuT2JqZWN0U25hcHNob3RWaWV3LnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndHItdWktZS10Y21hbGxvYy1oZWFwLXNuYXBzaG90LXZpZXcnKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNuYXBzaG90ID0gdGhpcy5vYmplY3RTbmFwc2hvdF87CisgICAgICBpZiAoIXNuYXBzaG90IHx8ICFzbmFwc2hvdC5oZWFwXykgeworICAgICAgICB0aGlzLnRleHRDb250ZW50ID0gJ05vIGhlYXAgZm91bmQuJzsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgLy8gQ2xlYXIgb2xkIHNuYXBzaG90IHZpZXcuCisgICAgICB0aGlzLnRleHRDb250ZW50ID0gJyc7CisKKyAgICAgIC8vIE5vdGU6ICJ0b3RhbCIgbWF5IGFjdHVhbGx5IGJlIGxlc3MgdGhhbiB0aGUgbGFyZ2VzdCBhbGxvY2F0aW9uIGJpbi4KKyAgICAgIC8vIFRoaXMgbWlnaHQgaGFwcGVuIGlmIG9uZSBzdGFjayBpcyBkb2luZyBhIGxvdCBvZiBhbGxvY2F0aW9uLCB0aGVuCisgICAgICAvLyBwYXNzaW5nIG9mZiB0byBhbm90aGVyIHN0YWNrIGZvciBkZWFsbG9jYXRpb24uICBUaGF0IHN0YWNrIHdpbGwKKyAgICAgIC8vIGhhdmUgYSBoaWdoICJjdXJyZW50IGJ5dGVzIiBjb3VudCBhbmQgdGhlIG90aGVyIG9uZSBtaWdodCBiZQorICAgICAgLy8gbmVnYXRpdmUgb3IgemVyby4gU28gInRvdGFsIiBtYXkgYmUgc21hbGxlciB0aGFuIHRoZSBsYXJnZXN0IHRyYWNlLgorICAgICAgdmFyIHN1YmhlYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIHN1YmhlYWQudGV4dENvbnRlbnQgPSAnUmV0YWluaW5nICcgKworICAgICAgICAgIHRoaXMuZ2V0Qnl0ZVN0cmluZ18oc25hcHNob3QudG90YWxfLmN1cnJlbnRCeXRlcykgKyAnIGluICcgKworICAgICAgICAgIHNuYXBzaG90LnRvdGFsXy5jdXJyZW50QWxsb2NzICsKKyAgICAgICAgICAnIGFsbG9jYXRpb25zLiBTaG93aW5nID4gMC4xIE1CLic7CisgICAgICBzdWJoZWFkLmNsYXNzTmFtZSA9ICdzdWJoZWFkJzsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoc3ViaGVhZCk7CisKKyAgICAgIC8vIEJ1aWxkIGEgbmVzdGVkIHRyZWUtdmlldyBvZiBhbGxvY2F0aW9ucworICAgICAgdmFyIG15TGlzdCA9IHRoaXMuYnVpbGRBbGxvY0xpc3RfKHNuYXBzaG90LmhlYXBfLCBmYWxzZSk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKG15TGlzdCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXN0ZWQgbGlzdCB3aXRoIGNsaWNrYWJsZSBlbnRyaWVzLgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBoZWFwRW50cnkgVGhlIGN1cnJlbnQgdHJhY2UgaGVhcCBlbnRyeS4KKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGhpZGUgV2hldGhlciB0aGlzIGxpc3QgaXMgaGlkZGVuIGJ5IGRlZmF1bHQuCisgICAgICogQHJldHVybiB7RWxlbWVudH0gQSA8dWw+IGxpc3QgZWxlbWVudC4KKyAgICAgKi8KKyAgICBidWlsZEFsbG9jTGlzdF86IGZ1bmN0aW9uKGhlYXBFbnRyeSwgaGlkZSkgeworICAgICAgdmFyIG15TGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VsJyk7CisgICAgICBteUxpc3QuaGlkZGVuID0gaGlkZTsKKyAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoaGVhcEVudHJ5LmNoaWxkcmVuKTsKKyAgICAgIGtleXMuc29ydChmdW5jdGlvbihhLCBiKSB7CisgICAgICAgIC8vIFNvcnQgZnJvbSBsYXJnZSB0byBzbWFsbC4KKyAgICAgICAgcmV0dXJuIGhlYXBFbnRyeS5jaGlsZHJlbltiXS5jdXJyZW50Qnl0ZXMgLQorICAgICAgICAgICAgaGVhcEVudHJ5LmNoaWxkcmVuW2FdLmN1cnJlbnRCeXRlczsKKyAgICAgIH0pOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciB0cmFjZU5hbWUgPSBrZXlzW2ldOworICAgICAgICB2YXIgdHJhY2UgPSBoZWFwRW50cnkuY2hpbGRyZW5bdHJhY2VOYW1lXTsKKyAgICAgICAgLy8gRG9uJ3Qgc2hvdyBzbWFsbCBub2RlcyAtIHRoZXkgbWFrZSB0aGluZ3MgaGFyZGVyIHRvIHNlZS4KKyAgICAgICAgaWYgKHRyYWNlLmN1cnJlbnRCeXRlcyA8IDEwMCAqIDEwMjQpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciBjaGlsZENvdW50ID0gT2JqZWN0LmtleXModHJhY2UuY2hpbGRyZW4pLmxlbmd0aDsKKyAgICAgICAgdmFyIGlzTGVhZiA9IGNoaWxkQ291bnQgPT0gMDsKKyAgICAgICAgdmFyIG15SXRlbSA9IHRoaXMuYnVpbGRJdGVtXygKKyAgICAgICAgICAgIHRyYWNlTmFtZSwgaXNMZWFmLCB0cmFjZS5jdXJyZW50Qnl0ZXMsIHRyYWNlLmN1cnJlbnRBbGxvY3MpOworICAgICAgICBteUxpc3QuYXBwZW5kQ2hpbGQobXlJdGVtKTsKKyAgICAgICAgLy8gQnVpbGQgYSBuZXN0ZWQgPHVsPiBsaXN0IG9mIG15IGNoaWxkcmVuLgorICAgICAgICBpZiAoY2hpbGRDb3VudCA+IDApCisgICAgICAgICAgbXlJdGVtLmFwcGVuZENoaWxkKHRoaXMuYnVpbGRBbGxvY0xpc3RfKHRyYWNlLCB0cnVlKSk7CisgICAgICB9CisgICAgICByZXR1cm4gbXlMaXN0OworICAgIH0sCisKKyAgICAvKgorICAgICAqIFJldHVybnMgYSA8bGk+IGZvciBhbiBhbGxvY2F0aW9uIHRyYWNlTmFtZSBvZiBzaXplIGJ5dGVzLgorICAgICAqLworICAgIGJ1aWxkSXRlbV86IGZ1bmN0aW9uKHRyYWNlTmFtZSwgaXNMZWFmLCBieXRlcywgYWxsb2NzKSB7CisgICAgICB2YXIgbXlJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgICAgIG15SXRlbS5jbGFzc05hbWUgPSAndHJhY2UtaXRlbSc7CisgICAgICBteUl0ZW0uaWQgPSB0cmFjZU5hbWU7CisKKyAgICAgIHZhciBieXRlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICBieXRlRGl2LnRleHRDb250ZW50ID0gdGhpcy5nZXRCeXRlU3RyaW5nXyhieXRlcyk7CisgICAgICBieXRlRGl2LmNsYXNzTmFtZSA9ICd0cmFjZS1ieXRlcyc7CisgICAgICBteUl0ZW0uYXBwZW5kQ2hpbGQoYnl0ZURpdik7CisKKyAgICAgIGlmICh0cmFjZU5hbWUubGVuZ3RoID09IDApIHsKKyAgICAgICAgLy8gVGhlIGVtcHR5IHRyYWNlIG5hbWUgaW5kaWNhdGVzIHRoYXQgdGhlIGFsbG9jYXRpb25zIG9jY3VycmVkIGF0CisgICAgICAgIC8vIHRoaXMgdHJhY2UgbGV2ZWwsIG5vdCBpbiBhIHN1Yi10cmFjZS4gVGhpcyBsb29rcyB3ZWlyZCBhcyB0aGUKKyAgICAgICAgLy8gZW1wdHkgc3RyaW5nLCBzbyByZXBsYWNlIGl0IHdpdGggc29tZXRoaW5nIG5vbi1lbXB0eSBhbmQgZG9uJ3QKKyAgICAgICAgLy8gZ2l2ZSB0aGF0IGxpbmUgYW4gZXhwYW5kZXIuCisgICAgICAgIHRyYWNlTmFtZSA9ICcoaGVyZSknOworICAgICAgfSBlbHNlIGlmICh0cmFjZU5hbWUuaW5kZXhPZignLi4nKSA9PSAwKSB7CisgICAgICAgIC8vIFRhc2tzIGluIFJ1blRhc2sgaGF2ZSBzcGVjaWFsIGhhbmRsaW5nLiBUaGV5IHNob3cgdGhlIHBhdGggb2YgdGhlCisgICAgICAgIC8vIGZpbGVuYW1lLiBDb252ZXJ0ICcuLi8uLi9mb28uY2MnIGludG8gJ1J1blRhc2sgZnJvbSBmb28uY2MnLgorICAgICAgICB2YXIgbGFzdFNsYXNoID0gdHJhY2VOYW1lLmxhc3RJbmRleE9mKCcvJyk7CisgICAgICAgIGlmIChsYXN0U2xhc2ggIT0gLTEpCisgICAgICAgICAgdHJhY2VOYW1lID0gJ1Rhc2sgZnJvbSAnICsgdHJhY2VOYW1lLnN1YnN0cihsYXN0U2xhc2ggKyAxKTsKKyAgICAgIH0KKyAgICAgIHZhciB0cmFjZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgdHJhY2VEaXYudGV4dENvbnRlbnQgPSB0cmFjZU5hbWU7CisgICAgICB0cmFjZURpdi5jbGFzc05hbWUgPSAndHJhY2UtbmFtZSc7CisgICAgICBteUl0ZW0uYXBwZW5kQ2hpbGQodHJhY2VEaXYpOworCisgICAgICAvLyBEb24ndCBhbGxvdyBsZWFmIG5vZGVzIHRvIGJlIGV4cGFuZGVkLgorICAgICAgaWYgKGlzTGVhZikKKyAgICAgICAgcmV0dXJuIG15SXRlbTsKKworICAgICAgLy8gRXhwYW5kIHRoZSBlbGVtZW50IHdoZW4gaXQgaXMgY2xpY2tlZC4KKyAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgIG15SXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIC8vIEFsbG93IGNsaWNrIG9uIHRoZSArLy0gaW1hZ2UgKGxpKSBvciBjaGlsZCBkaXZzLgorICAgICAgICBpZiAodGhpcyA9PSBldmVudC50YXJnZXQgfHwgdGhpcyA9PSBldmVudC50YXJnZXQucGFyZW50RWxlbWVudCkgeworICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgnZXhwYW5kZWQnKTsKKyAgICAgICAgICB2YXIgY2hpbGQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3VsJyk7CisgICAgICAgICAgY2hpbGQuaGlkZGVuID0gIWNoaWxkLmhpZGRlbjsKKyAgICAgICAgICAvLyBIaWdobGlnaHQgdGhpcyBzdGFjayB0cmFjZSBpbiB0aGUgdGltZWxpbmUgdmlldy4KKyAgICAgICAgICBzZWxmLm9uSXRlbUNsaWNrZWRfKHRoaXMpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIG15SXRlbS5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzZWQnKTsKKyAgICAgIHJldHVybiBteUl0ZW07CisgICAgfSwKKworICAgIG9uSXRlbUNsaWNrZWRfOiBmdW5jdGlvbih0cmFjZUl0ZW0pIHsKKyAgICAgIC8vIENvbXB1dGUgdGhlIGZ1bGwgc3RhY2sgdHJhY2UgdGhlIHVzZXIganVzdCBjbGlja2VkLgorICAgICAgdmFyIHRyYWNlcyA9IFtdOworICAgICAgd2hpbGUgKHRyYWNlSXRlbS5jbGFzc0xpc3QuY29udGFpbnMoJ3RyYWNlLWl0ZW0nKSkgeworICAgICAgICB2YXIgdHJhY2VOYW1lRGl2ID0gdHJhY2VJdGVtLmZpcnN0RWxlbWVudENoaWxkLm5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgdHJhY2VzLnVuc2hpZnQodHJhY2VOYW1lRGl2LnRleHRDb250ZW50KTsKKyAgICAgICAgdmFyIHRyYWNlTmFtZVVsID0gdHJhY2VJdGVtLnBhcmVudEVsZW1lbnQ7CisgICAgICAgIHRyYWNlSXRlbSA9IHRyYWNlTmFtZVVsLnBhcmVudEVsZW1lbnQ7CisgICAgICB9CisgICAgICAvLyBUZWxsIHRoZSBpbnN0YW5jZSB0aGF0IHRoaXMgc3RhY2sgdHJhY2UgaXMgc2VsZWN0ZWQuCisgICAgICB2YXIgaW5zdGFuY2UgPSB0aGlzLm9iamVjdFNuYXBzaG90Xy5vYmplY3RJbnN0YW5jZTsKKyAgICAgIGluc3RhbmNlLnNlbGVjdGVkVHJhY2VzID0gdHJhY2VzOworICAgICAgLy8gSW52YWxpZCB0aGUgdmlld3BvcnQgdG8gY2F1c2UgYSByZWRyYXcuCisgICAgICB2YXIgdHJhY2tWaWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRpbWVsaW5lLXRyYWNrLXZpZXcnKTsKKyAgICAgIHRyYWNrVmlldy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0sCisKKyAgICAvKgorICAgICAqIFJldHVybnMgYSBodW1hbiByZWFkYWJsZSBzdHJpbmcgZm9yIGEgc2l6ZSBpbiBieXRlcy4KKyAgICAgKi8KKyAgICBnZXRCeXRlU3RyaW5nXzogZnVuY3Rpb24oYnl0ZXMpIHsKKyAgICAgIHZhciBtYiA9IGJ5dGVzIC8gMTAyNCAvIDEwMjQ7CisgICAgICByZXR1cm4gbWIudG9GaXhlZCgxKSArICcgTUInOworICAgIH0KKyAgfTsKKworICB0ci51aS5hbmFseXNpcy5PYmplY3RTbmFwc2hvdFZpZXcucmVnaXN0ZXIoCisgICAgICBUY21hbGxvY1NuYXBzaG90VmlldywKKyAgICAgIHt0eXBlTmFtZTogJ21lbW9yeTo6SGVhcCd9KTsKKworICByZXR1cm4geworICAgIFRjbWFsbG9jU25hcHNob3RWaWV3OiBUY21hbGxvY1NuYXBzaG90VmlldworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZmluZF9jb250cm9sLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZGQ5YTYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbC5odG1sCkBAIC0wLDAgKzEsMTczIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hvdGtleV9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9maW5kX2NvbnRyb2xsZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktZmluZC1jb250cm9sIj4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICAgIDpob3N0IHsKKyAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICB9CisgICAgICBpbnB1dCB7CisgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IGF1dG87CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTsKKyAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICAgICAgbWFyZ2luOiAwOworICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICB3aWR0aDogMTcwcHg7CisgICAgICB9CisgICAgICBpbnB1dDpmb2N1cyB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgICAgfQorICAgICAgdHItdWktYi10b29sYmFyLWJ1dHRvbiB7CisgICAgICAgIGJvcmRlci1sZWZ0OiBub25lOworICAgICAgICBtYXJnaW46IDA7CisgICAgICB9CisgICAgICAjaGl0Q291bnQgeworICAgICAgICBsZWZ0OiAwOworICAgICAgICBvcGFjaXR5OiAwLjI1OworICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAgICAgICAgdG9wOiAycHg7CisgICAgICAgIHdpZHRoOiAxNjdweDsKKyAgICAgICAgei1pbmRleDogMTsKKyAgICAgIH0KKyAgICAgICNzcGlubmVyIHsKKyAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgICAgICB3aWR0aDogOHB4OworICAgICAgICBoZWlnaHQ6IDhweDsKKyAgICAgICAgbGVmdDogMTU0cHg7CisgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogNHB4OworICAgICAgICB6LWluZGV4OiAxOworCisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OworICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpOworICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNSk7CisgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKKworICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOworICAgICAgfQorICAgICAgQGtleWZyYW1lcyBzcGluIHsgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfQorICAgIDwvc3R5bGU+CisKKyAgICA8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2ZpbHRlcicKKyAgICAgICAgb24taW5wdXQ9Int7IGZpbHRlclRleHRDaGFuZ2VkIH19IgorICAgICAgICBvbi1rZXlkb3duPSJ7eyBmaWx0ZXJLZXlEb3duIH19IgorICAgICAgICBvbi1ibHVyPSJ7eyBmaWx0ZXJCbHVyIH19IgorICAgICAgICBvbi1mb2N1cz0ie3sgZmlsdGVyRm9jdXMgfX0iCisgICAgICAgIG9uLW1vdXNldXA9Int7IGZpbHRlck1vdXNlVXAgfX0iIC8+CisgICAgPGRpdiBpZD0ic3Bpbm5lciI+PC9kaXY+CisgICAgPHRyLXVpLWItdG9vbGJhci1idXR0b24gb24tY2xpY2s9Int7IGZpbmRQcmV2aW91cyB9fSI+CisgICAgICAmbGFycjsKKyAgICA8L3RyLXVpLWItdG9vbGJhci1idXR0b24+CisgICAgPHRyLXVpLWItdG9vbGJhci1idXR0b24gb24tY2xpY2s9Int7IGZpbmROZXh0IH19Ij4KKyAgICAgICZyYXJyOworICAgIDwvdHItdWktYi10b29sYmFyLWJ1dHRvbj4KKyAgICA8ZGl2IGlkPSJoaXRDb3VudCI+MCBvZiAwPC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGZpbHRlcktleURvd246IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGlmIChlLmtleUNvZGUgPT09IDI3KSB7CisgICAgICAgIHZhciBoa2MgPSB0ci5iLmdldEhvdGtleUNvbnRyb2xsZXJGb3JFbGVtZW50KHRoaXMpOworICAgICAgICBpZiAoaGtjKSB7CisgICAgICAgICAgaGtjLmNoaWxkUmVxdWVzdHNCbHVyKHRoaXMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHRoaXMuYmx1cigpOworICAgICAgICB9CisgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT09IDEzKSB7CisgICAgICAgIGlmIChlLnNoaWZ0S2V5KQorICAgICAgICAgIHRoaXMuZmluZFByZXZpb3VzKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICB0aGlzLmZpbmROZXh0KCk7CisgICAgICB9CisgICAgfSwKKworICAgIGZpbHRlckJsdXI6IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMudXBkYXRlSGl0Q291bnRFbCgpOworICAgIH0sCisKKyAgICBmaWx0ZXJGb2N1czogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy4kLmZpbHRlci5zZWxlY3QoKTsKKyAgICB9LAorCisgICAgLy8gUHJldmVudCB0aGF0IHRoZSBpbnB1dCB0ZXh0IGlzIGRlc2VsZWN0ZWQgYWZ0ZXIgZm9jdXNpbmcgdGhlIGZpbmQKKyAgICAvLyBjb250cm9sIHdpdGggdGhlIG1vdXNlLgorICAgIGZpbHRlck1vdXNlVXA6IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9LAorCisgICAgZ2V0IGNvbnRyb2xsZXIoKSB7CisgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyXzsKKyAgICB9LAorCisgICAgc2V0IGNvbnRyb2xsZXIoYykgeworICAgICAgdGhpcy5jb250cm9sbGVyXyA9IGM7CisgICAgICB0aGlzLnVwZGF0ZUhpdENvdW50RWwoKTsKKyAgICB9LAorCisgICAgZm9jdXM6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLmZpbHRlci5mb2N1cygpOworICAgIH0sCisKKyAgICBnZXQgaGFzRm9jdXMoKSB7CisgICAgICByZXR1cm4gdGhpcyA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsKKyAgICB9LAorCisgICAgZmlsdGVyVGV4dENoYW5nZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLmhpdENvdW50LnRleHRDb250ZW50ID0gJyc7CisgICAgICB0aGlzLiQuc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnOworICAgICAgdGhpcy5jb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKHRoaXMuJC5maWx0ZXIudmFsdWUpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuJC5zcGlubmVyLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsKKyAgICAgICAgdGhpcy51cGRhdGVIaXRDb3VudEVsKCk7CisgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBmaW5kTmV4dDogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5jb250cm9sbGVyKQorICAgICAgICB0aGlzLmNvbnRyb2xsZXIuZmluZE5leHQoKTsKKyAgICAgIHRoaXMudXBkYXRlSGl0Q291bnRFbCgpOworICAgIH0sCisKKyAgICBmaW5kUHJldmlvdXM6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHRoaXMuY29udHJvbGxlcikKKyAgICAgICAgdGhpcy5jb250cm9sbGVyLmZpbmRQcmV2aW91cygpOworICAgICAgdGhpcy51cGRhdGVIaXRDb3VudEVsKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUhpdENvdW50RWw6IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmNvbnRyb2xsZXIgfHwgIXRoaXMuaGFzRm9jdXMpIHsKKyAgICAgICAgdGhpcy4kLmhpdENvdW50LnRleHRDb250ZW50ID0gJyc7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIG4gPSB0aGlzLmNvbnRyb2xsZXIuZmlsdGVySGl0cy5sZW5ndGg7CisgICAgICB2YXIgaSA9IG4gPT09IDAgPyAtMSA6IHRoaXMuY29udHJvbGxlci5jdXJyZW50SGl0SW5kZXg7CisgICAgICB0aGlzLiQuaGl0Q291bnQudGV4dENvbnRlbnQgPSAoaSArIDEpICsgJyBvZiAnICsgbjsKKyAgICB9LAorCisgICAgc2V0VGV4dDogZnVuY3Rpb24oc3RyaW5nKSB7CisgICAgICB0aGlzLiQuZmlsdGVyLnZhbHVlID0gc3RyaW5nOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhN2QxMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZmluZF9jb250cm9sX3Rlc3QuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9maW5kX2NvbnRyb2wuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGN0bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWZpbmQtY29udHJvbCcpOworICAgIGN0bC5jb250cm9sbGVyID0geworICAgICAgZmluZE5leHQ6IGZ1bmN0aW9uKCkgeyB9LAorICAgICAgZmluZFByZXZpb3VzOiBmdW5jdGlvbigpIHsgfSwKKyAgICAgIHJlc2V0OiBmdW5jdGlvbigpIHt9LAorCisgICAgICBmaWx0ZXJIaXRzOiBbJ2EnLCAnYiddLAorCisgICAgICBjdXJyZW50SGl0SW5kZXg6IDAKKyAgICB9OworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGN0bCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZmluZF9jb250cm9sbGVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjOGEyM2QKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbGxlci5odG1sCkBAIC0wLDAgKzEsMTU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKKy8qKgorICogQGZpbGVvdmVydmlldyBGaW5kQ29udHJvbGxlci4KKyAqLwordHIuZXhwb3J0VG8oJ3RyLnVpJywgZnVuY3Rpb24oKSB7CisgIHZhciBUYXNrID0gdHIuYi5UYXNrOworCisgIGZ1bmN0aW9uIEZpbmRDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKSB7CisgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8gPSBicnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKyAgICB0aGlzLmZpbHRlckhpdHNfID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgdGhpcy5jdXJyZW50SGl0SW5kZXhfID0gLTE7CisgICAgdGhpcy5hY3RpdmVQcm9taXNlXyA9IFByb21pc2UucmVzb2x2ZSgpOworICAgIHRoaXMuYWN0aXZlVGFza18gPSB1bmRlZmluZWQ7CisgIH07CisKKyAgRmluZENvbnRyb2xsZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5tb2RlbDsKKyAgICB9LAorCisgICAgZ2V0IGJydXNoaW5nU3RhdGVDb250cm9sbGVyKCkgeworICAgICAgcmV0dXJuIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfOworICAgIH0sCisKKyAgICBlbnF1ZXVlT3BlcmF0aW9uXzogZnVuY3Rpb24ob3BlcmF0aW9uKSB7CisgICAgICB2YXIgdGFzazsKKyAgICAgIGlmIChvcGVyYXRpb24gaW5zdGFuY2VvZiB0ci5iLlRhc2spCisgICAgICAgIHRhc2sgPSBvcGVyYXRpb247CisgICAgICBlbHNlCisgICAgICAgIHRhc2sgPSBuZXcgdHIuYi5UYXNrKG9wZXJhdGlvbiwgdGhpcyk7CisgICAgICBpZiAodGhpcy5hY3RpdmVUYXNrXykgeworICAgICAgICB0aGlzLmFjdGl2ZVRhc2tfID0gdGhpcy5hY3RpdmVUYXNrXy5lbnF1ZXVlKHRhc2spOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gV2UncmUgZW5xdWV1aW5nIHRoZSBmaXJzdCB0YXNrLCBzY2hlZHVsZSBpdC4KKyAgICAgICAgdGhpcy5hY3RpdmVUYXNrXyA9IHRhc2s7CisgICAgICAgIHRoaXMuYWN0aXZlUHJvbWlzZV8gPSBUYXNrLlJ1bldoZW5JZGxlKHRoaXMuYWN0aXZlVGFza18pOworICAgICAgICB0aGlzLmFjdGl2ZVByb21pc2VfLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdGhpcy5hY3RpdmVQcm9taXNlXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgICB0aGlzLmFjdGl2ZVRhc2tfID0gdW5kZWZpbmVkOworICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBVcGRhdGVzIHRoZSBmaWx0ZXIgaGl0cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgfGZpbHRlclRleHR8LiBSZXR1cm5zIGEKKyAgICAgKiBwcm9taXNlIHdoaWNoIHJlc29sdmVzIHdoZW4gfGZpbHRlckhpdHN8IGhhcyBiZWVuIHJlZnJlc2hlZC4KKyAgICAgKi8KKyAgICBzdGFydEZpbHRlcmluZzogZnVuY3Rpb24oZmlsdGVyVGV4dCkgeworICAgICAgdmFyIHNjID0gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87CisgICAgICBpZiAoIXNjKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIFRPRE8oYmVhdWRvaW4pOiBDYW5jZWwgYW55dGhpbmcgbGVmdCBpbiB0aGUgdGFzayBxdWV1ZSwgd2l0aG91dAorICAgICAgLy8gaW52YWxpZGF0aW5nIHRoZSBwcm9taXNlLgorICAgICAgdGhpcy5lbnF1ZXVlT3BlcmF0aW9uXyhmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5maWx0ZXJIaXRzXyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgICB0aGlzLmN1cnJlbnRIaXRJbmRleF8gPSAtMTsKKyAgICAgIH0uYmluZCh0aGlzKSk7CisKKyAgICAgIC8vIFRyeSBjb25zdHJ1Y3RpbmcgYSBVSVN0YXRlIGZyb20gdGhlIGZpbHRlclRleHQuCisgICAgICAvLyBVSVN0YXRlLmZyb21Vc2VyRnJpZW5kbHlTdHJpbmcgd2lsbCB0aHJvdyBhbiBlcnJvciBvbmx5IGlmIHRoZSBzdHJpbmcKKyAgICAgIC8vIGlzIHN5bnRhY3RpY2FsbHkgY29ycmVjdCB0byBhIFVJIHN0YXRlIHN0cmluZyBidXQgd2l0aCBpbnZhbGlkIHZhbHVlcy4KKyAgICAgIC8vIEl0IHdpbGwgcmV0dXJuIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBubyBzeW50YWN0aWMgbWF0Y2guCisgICAgICB2YXIgc3RhdGVGcm9tU3RyaW5nOworICAgICAgdHJ5IHsKKyAgICAgICAgc3RhdGVGcm9tU3RyaW5nID0gc2MudWlTdGF0ZUZyb21TdHJpbmcoZmlsdGVyVGV4dCk7CisgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIG92ZXJsYXkgPSBuZXcgdHIudWkuYi5PdmVybGF5KCk7CisgICAgICAgICAgb3ZlcmxheS50ZXh0Q29udGVudCA9IGUubWVzc2FnZTsKKyAgICAgICAgICBvdmVybGF5LnRpdGxlID0gJ1VJIFN0YXRlIE5hdmlnYXRpb24gRXJyb3InOworICAgICAgICAgIG92ZXJsYXkudmlzaWJsZSA9IHRydWU7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQcm9taXNlXzsKKyAgICAgIH0KKworICAgICAgaWYgKHN0YXRlRnJvbVN0cmluZyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oCisgICAgICAgICAgICBzYy5uYXZUb1Bvc2l0aW9uLmJpbmQodGhpcywgc3RhdGVGcm9tU3RyaW5nLCB0cnVlKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBmaWx0ZXJUZXh0IGlzIG5vdCBhIG5hdlN0cmluZyBoZXJlIC0tIHByb2NlZWQgd2l0aCBmaW5kIGFuZCBmaWx0ZXIuCisgICAgICAgIGlmIChmaWx0ZXJUZXh0Lmxlbmd0aCA9PT0gMCkgeworICAgICAgICAgIHRoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oc2MuZmluZFRleHRDbGVhcmVkLmJpbmQoc2MpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB2YXIgZmlsdGVyID0gbmV3IHRyLmMuRnVsbFRleHRGaWx0ZXIoZmlsdGVyVGV4dCk7CisgICAgICAgICAgdmFyIGZpbHRlckhpdHMgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgICAgICB0aGlzLmVucXVldWVPcGVyYXRpb25fKHNjLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2soCisgICAgICAgICAgICAgIGZpbHRlciwgZmlsdGVySGl0cykpOworICAgICAgICAgIHRoaXMuZW5xdWV1ZU9wZXJhdGlvbl8oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0aGlzLmZpbHRlckhpdHNfID0gZmlsdGVySGl0czsKKyAgICAgICAgICAgIHNjLmZpbmRUZXh0Q2hhbmdlZFRvKGZpbHRlckhpdHMpOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVByb21pc2VfOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtb3N0IHJlY2VudCBmaWx0ZXIgaGl0cyBhcyBhIHRyLm1vZGVsLkV2ZW50U2V0LiBDYWxsCisgICAgICogfHN0YXJ0RmlsdGVyaW5nfCB0byBlbnN1cmUgdGhpcyBpcyB1cCB0byBkYXRlIGFmdGVyIHRoZSBmaWx0ZXIgc2V0dGluZ3MKKyAgICAgKiBoYXZlIGJlZW4gY2hhbmdlZC4KKyAgICAgKi8KKyAgICBnZXQgZmlsdGVySGl0cygpIHsKKyAgICAgIHJldHVybiB0aGlzLmZpbHRlckhpdHNfOworICAgIH0sCisKKyAgICBnZXQgY3VycmVudEhpdEluZGV4KCkgeworICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEhpdEluZGV4XzsKKyAgICB9LAorCisgICAgZmluZF86IGZ1bmN0aW9uKGRpcikgeworICAgICAgdmFyIGZpcnN0SGl0ID0gdGhpcy5jdXJyZW50SGl0SW5kZXhfID09PSAtMTsKKyAgICAgIGlmIChmaXJzdEhpdCAmJiBkaXIgPCAwKQorICAgICAgICB0aGlzLmN1cnJlbnRIaXRJbmRleF8gPSAwOworCisgICAgICB2YXIgTiA9IHRoaXMuZmlsdGVySGl0cy5sZW5ndGg7CisgICAgICB0aGlzLmN1cnJlbnRIaXRJbmRleF8gPSAodGhpcy5jdXJyZW50SGl0SW5kZXhfICsgZGlyICsgTikgJSBOOworCisgICAgICBpZiAoIXRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLmZpbmRGb2N1c0NoYW5nZWRUbygKKyAgICAgICAgICB0aGlzLmZpbHRlckhpdHMuc3ViRXZlbnRTZXQodGhpcy5jdXJyZW50SGl0SW5kZXhfLCAxKSk7CisgICAgfSwKKworICAgIGZpbmROZXh0OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZmluZF8oMSk7CisgICAgfSwKKworICAgIGZpbmRQcmV2aW91czogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmZpbmRfKC0xKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBGaW5kQ29udHJvbGxlcjogRmluZENvbnRyb2xsZXIKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbGxlcl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ZpbmRfY29udHJvbGxlcl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY5YjhiNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvZmluZF9jb250cm9sbGVyX3Rlc3QuaHRtbApAQCAtMCwwICsxLDMwOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS90YXNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZmluZF9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFRhc2sgPSB0ci5iLlRhc2s7CisKKyAgLyoKKyAgICogSnVzdCBlbm91Z2ggb2YgdGhlIEJydXNoaW5nU3RhdGVDb250cm9sbGVyIHRvIHN1cHBvcnQgdGhlIHRlc3RzIGJlbG93LgorICAgKi8KKyAgZnVuY3Rpb24gRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyKCkgeworICAgIHRoaXMuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlID0gW107CisKKyAgICB0aGlzLnZpZXdwb3J0ID0gdW5kZWZpbmVkOworICAgIHRoaXMubW9kZWwgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICB0aGlzLmZpbmRNYXRjaGVzID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgIH0KKworICBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIucHJvdG90eXBlID0geworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgICByZXR1cm4gbmV3IFRhc2soZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBuID0gdGhpcy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uUmV0dXJuVmFsdWUubGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKAorICAgICAgICAgICAgICB0aGlzLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25SZXR1cm5WYWx1ZVtpXSk7CisgICAgICAgIH0KKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICB1aVN0YXRlRnJvbVN0cmluZzogZnVuY3Rpb24oc3RyaW5nKSB7CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBmaW5kVGV4dENoYW5nZWRUbzogZnVuY3Rpb24oc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmZpbmRNYXRjaGVzID0gc2VsZWN0aW9uOworICAgICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICB9LAorCisgICAgZmluZEZvY3VzQ2hhbmdlZFRvOiBmdW5jdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuc2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBmaW5kVGV4dENsZWFyZWQ6IGZ1bmN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIHRoaXMuZmluZE1hdGNoZXMgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICB9CisgIH07CisKKyAgZnVuY3Rpb24gYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKGEsIGIsIG9wdF9tZXNzYWdlKSB7CisgICAgaWYgKGEubGVuZ3RoID09PSBiLmxlbmd0aCkgeworICAgICAgdmFyIG9rID0gdHJ1ZTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykgeworICAgICAgICBvayAmPSAoYVtpXSA9PT0gYltpXSk7CisgICAgICB9CisgICAgICBpZiAob2spCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2YXIgbWVzc2FnZSA9IG9wdF9tZXNzYWdlIHx8ICdFeHBlY3RlZCBhcnJheSAnICsgYSArICcsIGdvdCBhcnJheSAnICsgYjsKKyAgICB0aHJvdyBuZXcgdHIuYi51bml0dGVzdC5UZXN0RXJyb3IobWVzc2FnZSk7CisgIH07CisKKyAgdGVzdCgnZmluZENvbnRyb2xsZXJOb01vZGVsJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLnVpLkZpbmRDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKyAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7CisgICAgY29udHJvbGxlci5maW5kUHJldmlvdXMoKTsKKyAgfSk7CisKKyAgdGVzdCgnZmluZENvbnRyb2xsZXJFbXB0eUhpdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IG5ldyBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKTsKKyAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci51aS5GaW5kQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcik7CisKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5maW5kTWF0Y2hlcyA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKKyAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW10sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbik7CisgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5maW5kTWF0Y2hlcyk7CisgICAgY29udHJvbGxlci5maW5kUHJldmlvdXMoKTsKKyAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW10sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbik7CisgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5maW5kTWF0Y2hlcyk7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRDb250cm9sbGVyT25lSGl0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLnVpLkZpbmRDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciBzMSA9IHtndWlkOiAxfTsKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uUmV0dXJuVmFsdWUgPSBbCisgICAgICBzMQorICAgIF07CisgICAgdmFyIHByb21pc2UgPSBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCdhc2RmJyk7CisgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMV0sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRNYXRjaGVzKTsKKyAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMV0sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRNYXRjaGVzKTsKKyAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMV0sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRNYXRjaGVzKTsKKyAgICAgIGNvbnRyb2xsZXIuZmluZFByZXZpb3VzKCk7CisgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxXSwgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuc2VsZWN0aW9uKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5maW5kTWF0Y2hlcyk7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2U7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRDb250cm9sbGVyTXVsdGlwbGVIaXRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLnVpLkZpbmRDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciBzMSA9IHtndWlkOiAxfTsKKyAgICB2YXIgczIgPSB7Z3VpZDogMn07CisgICAgdmFyIHMzID0ge2d1aWQ6IDN9OworCisgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlID0gWworICAgICAgczEsIHMyLCBzMworICAgIF07CisgICAgdmFyIHByb21pc2UgPSBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCdhc2RmJyk7CisgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgLy8gTG9vcCB0aHJvdWdoIGhpdHMgdGhlbiB3aGVuIHdlIHdyYXAsIHRyeSBtb3ZpbmcgYmFja3dhcmQuCisgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW10sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbik7CisgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxLCBzMiwgczNdLAorICAgICAgICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRNYXRjaGVzKTsKKyAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgY29udHJvbGxlci5maW5kTmV4dCgpOworICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMl0sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbik7CisgICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7CisgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MzXSwgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuc2VsZWN0aW9uKTsKKyAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgY29udHJvbGxlci5maW5kUHJldmlvdXMoKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczNdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgY29udHJvbGxlci5maW5kUHJldmlvdXMoKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczJdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMSwgczIsIHMzXSwKKyAgICAgICAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5maW5kTWF0Y2hlcyk7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2U7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRDb250cm9sbGVyQ2hhbmdlRmlsdGVyQWZ0ZXJOZXh0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLnVpLkZpbmRDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciBzMSA9IHtndWlkOiAxfTsKKyAgICB2YXIgczIgPSB7Z3VpZDogMn07CisgICAgdmFyIHMzID0ge2d1aWQ6IDN9OworICAgIHZhciBzNCA9IHtndWlkOiA0fTsKKworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25SZXR1cm5WYWx1ZSA9IFsKKyAgICAgIHMxLCBzMiwgczMKKyAgICBdOworICAgIHZhciBwcm9taXNlID0gY29udHJvbGxlci5zdGFydEZpbHRlcmluZygnYXNkZicpOworICAgIHByb21pc2UudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIC8vIExvb3AgdGhyb3VnaCBoaXRzIHRoZW4gd2hlbiB3ZSB3cmFwLCB0cnkgbW92aW5nIGJhY2t3YXJkLgorICAgICAgY29udHJvbGxlci5maW5kTmV4dCgpOworICAgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuCisgICAgICAgICAgYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlID0gW3M0XTsKKworICAgICAgdmFyIG5leHRQcm9taXNlID0gY29udHJvbGxlci5zdGFydEZpbHRlcmluZygnYXNkZnNmJyk7CisgICAgICBuZXh0UHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7CisgICAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczRdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgfSk7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2U7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRDb250cm9sbGVyU2VsZWN0c0FsbEl0ZW1zRmlyc3QnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBuZXcgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyKCk7CisgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIudWkuRmluZENvbnRyb2xsZXIoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpOworCisgICAgdmFyIHMxID0ge2d1aWQ6IDF9OworICAgIHZhciBzMiA9IHtndWlkOiAyfTsKKyAgICB2YXIgczMgPSB7Z3VpZDogM307CisgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlID0gWworICAgICAgczEsIHMyLCBzMworICAgIF07CisgICAgdmFyIHByb21pc2UgPSBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCdhc2Rmc2YnKTsKKyAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW10sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbik7CisgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxLCBzMiwgczNdLAorICAgICAgICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRNYXRjaGVzKTsKKyAgICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKKyAgICAgIGFzc2VydEFycmF5U2hhbGxvd0VxdWFscyhbczFdLCBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24pOworICAgICAgY29udHJvbGxlci5maW5kTmV4dCgpOworICAgICAgYXNzZXJ0QXJyYXlTaGFsbG93RXF1YWxzKFtzMl0sIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbik7CisgICAgICBhc3NlcnRBcnJheVNoYWxsb3dFcXVhbHMoW3MxLCBzMiwgczNdLAorICAgICAgICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRNYXRjaGVzKTsKKyAgICB9KTsKKyAgICByZXR1cm4gcHJvbWlzZTsKKyAgfSk7CisKKyAgdGVzdCgnZmluZENvbnRyb2xsZXJXaXRoUmVhbFRpbWVsaW5lJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICAgIHQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgKKyAgICAgICAgICAnJywgJ2EnLCAwLCAxLCB7fSwgMykpOworICAgICAgbW9kZWwudDEgPSB0MTsKKyAgICB9KTsKKworICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cmFjay12aWV3LWNvbnRhaW5lcicpOworICAgIGNvbnRhaW5lci5pZCA9ICd0cmFja192aWV3X2NvbnRhaW5lcic7CisKKyAgICB2YXIgdGltZWxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS12aWV3Jyk7CisgICAgdGltZWxpbmUuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKKworICAgIC8vIFRoaXMgaXMgZm9yIHRlc3Rpbmcgb25seSwgaGF2ZSB0byBtYWtlIHN1cmUgdGhpbmdzIGxpbmsgdXAgcmlnaHQuCisgICAgdGltZWxpbmUudHJhY2tWaWV3Q29udGFpbmVyXyA9IGNvbnRhaW5lcjsKKworICAgIHRpbWVsaW5lLm1vZGVsID0gbW9kZWw7CisKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSB0aW1lbGluZS5icnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKyAgICB2YXIgY29udHJvbGxlciA9IHRpbWVsaW5lLmZpbmRDdGxfLmNvbnRyb2xsZXI7CisKKyAgICAvLyBUZXN0IGZpbmQgd2l0aCBubyBmaWx0ZXJUZXh0LgorICAgIGNvbnRyb2xsZXIuZmluZE5leHQoKTsKKworICAgIC8vIFRlc3QgZmluZCB3aXRoIGZpbHRlciB0eHQuCisgICAgdmFyIHByb21pc2UgPSBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCdhJyk7CisgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIGFzc2VydC5lcXVhbChicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24ubGVuZ3RoLCAwKTsKKyAgICAgIGFzc2VydC5kZWVwRXF1YWwodHIuYi5hc0FycmF5KGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRNYXRjaGVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwudDEuc2xpY2VHcm91cC5zbGljZXMpOworCisgICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7CisgICAgICBhc3NlcnQuZXF1YWwoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuc2VsZWN0aW9uLmxlbmd0aCwgMSk7CisgICAgICBhc3NlcnQuZXF1YWwoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuc2VsZWN0aW9uWzBdLAorICAgICAgICAgICAgICAgICAgIG1vZGVsLnQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKKworICAgICAgdmFyIG5leHRQcm9taXNlID0gY29udHJvbGxlci5zdGFydEZpbHRlcmluZygneHh4Jyk7CisgICAgICBuZXh0UHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnQuZXF1YWwoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuZmluZE1hdGNoZXMubGVuZ3RoLCAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGJydXNoaW5nU3RhdGVDb250cm9sbGVyLnNlbGVjdGlvbi5sZW5ndGgsIDEpOworICAgICAgICBjb250cm9sbGVyLmZpbmROZXh0KCk7CisgICAgICAgIGFzc2VydC5lcXVhbChicnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb24ubGVuZ3RoLCAwKTsKKyAgICAgICAgY29udHJvbGxlci5maW5kTmV4dCgpOworICAgICAgICBhc3NlcnQuZXF1YWwoYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuc2VsZWN0aW9uLmxlbmd0aCwgMCk7CisgICAgICB9KTsKKyAgICAgIHJldHVybiBuZXh0UHJvbWlzZTsKKyAgICB9KTsKKyAgICByZXR1cm4gcHJvbWlzZTsKKyAgfSk7CisKKyAgdGVzdCgnZmluZENvbnRyb2xsZXJOYXZpZ2F0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gbmV3IEZha2VCcnVzaGluZ1N0YXRlQ29udHJvbGxlcigpOworICAgIHZhciBjb250cm9sbGVyID0gbmV3IHRyLnVpLkZpbmRDb250cm9sbGVyKGJydXNoaW5nU3RhdGVDb250cm9sbGVyKTsKKworICAgIHZhciBuYXZUb1Bvc2l0aW9uQ2FsbENvdW50ID0gMDsKKyAgICB2YXIgZmluZFRleHRDbGVhcmVkQ2FsbENvdW50ID0gMDsKKyAgICB2YXIgZmFrZVVJU3RhdGUgPSB7fTsKKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci51aVN0YXRlRnJvbVN0cmluZyA9IGZ1bmN0aW9uKHN0cmluZykgeworICAgICAgaWYgKHN0cmluZyA9PT0gJycpCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICBhc3NlcnQuZXF1YWwoc3RyaW5nLCAnMjAwMEAxLjJ4NycpOworICAgICAgcmV0dXJuIGZha2VVSVN0YXRlOworICAgIH0KKyAgICBicnVzaGluZ1N0YXRlQ29udHJvbGxlci5uYXZUb1Bvc2l0aW9uID0gZnVuY3Rpb24odWlTdGF0ZSkgeworICAgICAgYXNzZXJ0LmVxdWFsKHVpU3RhdGUsIGZha2VVSVN0YXRlKTsKKyAgICAgIG5hdlRvUG9zaXRpb25DYWxsQ291bnQrKzsKKyAgICB9OworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRUZXh0Q2xlYXJlZCA9IGZ1bmN0aW9uKCkgeworICAgICAgZmluZFRleHRDbGVhcmVkQ2FsbENvdW50Kys7CisgICAgfTsKKworICAgIHZhciBwcm9taXNlID0gY29udHJvbGxlci5zdGFydEZpbHRlcmluZygnMjAwMEAxLjJ4NycpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnQuZXF1YWwobmF2VG9Qb3NpdGlvbkNhbGxDb3VudCwgMSk7CisgICAgfSk7CisgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbihjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nLmJpbmQoY29udHJvbGxlciwgJycpKTsKKyAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgYXNzZXJ0LmVxdWFsKGZpbmRUZXh0Q2xlYXJlZENhbGxDb3VudCwgMSk7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2U7CisgIH0pOworCisgIHRlc3QoJ2ZpbmRDb250cm9sbGVyQ2xlYXJBZnRlclNldCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBicnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IG5ldyBGYWtlQnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKTsKKyAgICB2YXIgY29udHJvbGxlciA9IG5ldyB0ci51aS5GaW5kQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcik7CisgICAgdmFyIGZpbmRUZXh0Q2hhbmdlZFRvQ2FsbGVkID0gZmFsc2U7CisgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuZmluZFRleHRDaGFuZ2VkVG8gPSBmdW5jdGlvbihzZWxlY3Rpb24pIHsKKyAgICAgIGZpbmRUZXh0Q2hhbmdlZFRvQ2FsbGVkID0gdHJ1ZTsKKyAgICB9OworICAgIGJydXNoaW5nU3RhdGVDb250cm9sbGVyLmZpbmRUZXh0Q2xlYXJlZCA9IGZ1bmN0aW9uKCkgeworICAgICAgYXNzZXJ0LmVxdWFsKGZpbmRUZXh0Q2hhbmdlZFRvQ2FsbGVkLCB0cnVlKTsKKyAgICB9OworICAgIGNvbnRyb2xsZXIuc3RhcnRGaWx0ZXJpbmcoJzEnKTsKKyAgICBjb250cm9sbGVyLnN0YXJ0RmlsdGVyaW5nKCcnKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2ltYWdlcy9jaHJvbWUtbGVmdC5wbmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ltYWdlcy9jaHJvbWUtbGVmdC5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvYmFzZS9pbWFnZXMvY2hyb21lLWxlZnQucG5nCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ltYWdlcy9jaHJvbWUtbGVmdC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2ltYWdlcy9jaHJvbWUtbWlkLnBuZyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvaW1hZ2VzL2Nocm9tZS1taWQucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvaW1hZ2VzL2Nocm9tZS1taWQucG5nCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ltYWdlcy9jaHJvbWUtbWlkLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvaW1hZ2VzL2Nocm9tZS1yaWdodC5wbmcgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ltYWdlcy9jaHJvbWUtcmlnaHQucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB0cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2Jhc2UvaW1hZ2VzL2Nocm9tZS1yaWdodC5wbmcKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvaW1hZ2VzL2Nocm9tZS1yaWdodC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2ltYWdlcy91aS1zdGF0ZXMucG5nIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9pbWFnZXMvdWktc3RhdGVzLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9iYXNlL2ltYWdlcy91aS1zdGF0ZXMucG5nCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL2ltYWdlcy91aS1zdGF0ZXMucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvc2NyaXB0aW5nX2NvbnRyb2wuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvc2NyaXB0aW5nX2NvbnRyb2wuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGEzMjI3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zY3JpcHRpbmdfY29udHJvbC5odG1sCkBAIC0wLDAgKzEsMTg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvc2NyaXB0aW5nX2NvbnRyb2xsZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy90cXVlcnkvdHF1ZXJ5Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50CisgICAgbmFtZT0idHItdWktc2NyaXB0aW5nLWNvbnRyb2wiPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgICAgOmhvc3QgeworICAgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIH0KKyAgICAgIC5yb290IHsKKyAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICAgICAgY3Vyc29yOiB0ZXh0OworCisgICAgICAgIHBhZGRpbmc6IDJweDsKKyAgICAgICAgbWFyZ2luOiAycHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTsKKyAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CisKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKKworICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCBoZWlnaHQsIHBhZGRpbmcsIG1hcmdpbjsKKyAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjJzOworICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7CisgICAgICB9CisgICAgICAuaGlkZGVuIHsKKyAgICAgICAgbWFyZ2luLXRvcDogMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CisgICAgICAgIHBhZGRpbmctdG9wOiAwcHg7CisgICAgICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CisgICAgICAgIGhlaWdodDogMHB4OworICAgICAgICBvcGFjaXR5OiAwOworICAgICAgfQorICAgICAgLmZvY3VzZWQgeworICAgICAgICBvdXRsaW5lOiBhdXRvIDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7CisgICAgICB9CisgICAgICAjaGlzdG9yeSB7CisgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CisgICAgICAgIGNvbG9yOiAjNzc3OworICAgICAgfQorICAgICAgI3Byb21wdCB7CisgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CisgICAgICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGUtcGxhaW50ZXh0LW9ubHk7CisgICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXAgIWltcG9ydGFudDsKKyAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CisgICAgICB9CisgICAgICAjcHJvbXB0OmZvY3VzIHsKKyAgICAgICAgb3V0bGluZTogbm9uZTsKKyAgICAgIH0KKyAgICAgICNwcm9tcHQgYnIgeworICAgICAgICBkaXNwbGF5OiBub25lOworICAgICAgfQorICAgICAgI3Byb21wdCA6OmJlZm9yZSB7CisgICAgICAgIGNvbnRlbnQ6ICI+IjsKKyAgICAgICAgY29sb3I6ICM0Njg7CisgICAgICB9CisgICAgPC9zdHlsZT4KKworICAgIDxkaXYgaWQ9InJvb3QiIGNsYXNzPSJyb290IGhpZGRlbiIgdGFiaW5kZXg9IjAiCisgICAgICAgICBvbi1mb2N1cz0ie3sgb25Db25zb2xlRm9jdXMgfX0iPgorICAgICAgPGRpdiBpZD0naGlzdG9yeSc+PC9kaXY+CisgICAgICA8ZGl2IGlkPSdwcm9tcHQnCisgICAgICAgICAgIG9uLWtleXByZXNzPSJ7eyBwcm9tcHRLZXlQcmVzcyB9fSIKKyAgICAgICAgICAgb24ta2V5ZG93bj0ie3sgcHJvbXB0S2V5RG93biB9fSIKKyAgICAgICAgICAgb24tYmx1cj0ie3sgb25Db25zb2xlQmx1ciB9fSI+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIF9pc0VudGVyS2V5OiBmdW5jdGlvbihldmVudCkgeworICAgICAgLy8gQ2hlY2sgaWYgaW4gSU1FLgorICAgICAgcmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDIyOSAmJiBldmVudC5rZXlJZGVudGlmaWVyID09PSAnRW50ZXInOworICAgIH0sCisKKyAgICBfc2V0Rm9jdXNlZDogZnVuY3Rpb24oZm9jdXNlZCkgeworICAgICAgdmFyIHByb21wdEVsID0gdGhpcy4kLnByb21wdDsKKyAgICAgIGlmIChmb2N1c2VkKSB7CisgICAgICAgIHByb21wdEVsLmZvY3VzKCk7CisgICAgICAgIHRoaXMuJC5yb290LmNsYXNzTGlzdC5hZGQoJ2ZvY3VzZWQnKTsKKyAgICAgICAgLy8gTW92ZSBjdXJzb3IgdG8gdGhlIGVuZCBvZiBhbnkgZXhpc3RpbmcgdGV4dC4KKyAgICAgICAgaWYgKHByb21wdEVsLmlubmVyVGV4dC5sZW5ndGggPiAwKSB7CisgICAgICAgICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICBzZWwuY29sbGFwc2UocHJvbXB0RWwuZmlyc3RDaGlsZCwgcHJvbXB0RWwuaW5uZXJUZXh0Lmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHByb21wdEVsLmJsdXIoKTsKKyAgICAgICAgdGhpcy4kLnJvb3QuY2xhc3NMaXN0LnJlbW92ZSgnZm9jdXNlZCcpOworICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBjcmJ1Zy5jb20vODkwMjYgdG8gZW5zdXJlIHRoZSBwcm9tcHQgZG9lc24ndCByZXRhaW4KKyAgICAgICAgLy8ga2V5Ym9hcmQgZm9jdXMuCisgICAgICAgIHZhciBwYXJlbnQgPSBwcm9tcHRFbC5wYXJlbnRFbGVtZW50OworICAgICAgICB2YXIgbmV4dEVsID0gcHJvbXB0RWwubmV4dFNpYmxpbmc7CisgICAgICAgIHByb21wdEVsLnJlbW92ZSgpOworICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHByb21wdEVsLCBuZXh0RWwpOworICAgICAgfQorICAgIH0sCisKKyAgICBvbkNvbnNvbGVGb2N1czogZnVuY3Rpb24oZSkgeworICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgIHRoaXMuX3NldEZvY3VzZWQodHJ1ZSk7CisgICAgfSwKKworICAgIG9uQ29uc29sZUJsdXI6IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICB0aGlzLl9zZXRGb2N1c2VkKGZhbHNlKTsKKyAgICB9LAorCisgICAgcHJvbXB0S2V5RG93bjogZnVuY3Rpb24oZSkgeworICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgIGlmICghdGhpcy5faXNFbnRlcktleShlKSkKKyAgICAgICAgcmV0dXJuOworICAgICAgdmFyIHByb21wdEVsID0gdGhpcy4kLnByb21wdDsKKyAgICAgIHZhciBjb21tYW5kID0gcHJvbXB0RWwuaW5uZXJUZXh0OworICAgICAgaWYgKGNvbW1hbmQubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm47CisgICAgICBwcm9tcHRFbC5pbm5lclRleHQgPSAnJzsKKyAgICAgIHRoaXMuYWRkTGluZV8oU3RyaW5nLmZyb21DaGFyQ29kZSgxODcpICsgJyAnICsgY29tbWFuZCk7CisKKyAgICAgIHRyeSB7CisgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLmNvbnRyb2xsZXJfLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQpOworICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXN1bHQgPSBlLnN0YWNrIHx8IGUuc3RhY2tUcmFjZTsKKyAgICAgIH0KKworICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIHRyLmIuVGFzaykgeworICAgICAgICAvLyBUT0RPKHNreW9zdGlsKTogU2hvdyBhIGNvb2wgc3Bpbm5lci4KKyAgICAgICAgdHIuYi5UYXNrLlJ1bldoZW5JZGxlKHJlc3VsdCk7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLmFkZExpbmVfKHJlc3VsdCk7CisgICAgICB9CisgICAgfSwKKworICAgIGFkZExpbmVfOiBmdW5jdGlvbihsaW5lKSB7CisgICAgICB2YXIgaGlzdG9yeUVsID0gdGhpcy4kLmhpc3Rvcnk7CisgICAgICBpZiAoaGlzdG9yeUVsLmlubmVyVGV4dC5sZW5ndGggIT09IDApCisgICAgICAgIGhpc3RvcnlFbC5pbm5lclRleHQgKz0gJ1xuJzsKKyAgICAgIGhpc3RvcnlFbC5pbm5lclRleHQgKz0gbGluZTsKKyAgICB9LAorCisgICAgcHJvbXB0S2V5UHJlc3M6IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgfSwKKworICAgIHRvZ2dsZVZpc2liaWxpdHk6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHJvb3QgPSB0aGlzLiQucm9vdDsKKyAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7CisgICAgICAgIHJvb3QuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7CisgICAgICAgIHRoaXMuX3NldEZvY3VzZWQodHJ1ZSk7CisgICAgICB9IGVsc2UgeworICAgICAgICByb290LmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOworICAgICAgICB0aGlzLl9zZXRGb2N1c2VkKGZhbHNlKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZ2V0IGhhc0ZvY3VzKCkgeworICAgICAgcmV0dXJuIHRoaXMgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7CisgICAgfSwKKworICAgIGdldCB2aXNpYmxlKCkgeworICAgICAgdmFyIHJvb3QgPSB0aGlzLiQucm9vdDsKKyAgICAgIHJldHVybiAhcm9vdC5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpOworICAgIH0sCisKKyAgICBnZXQgY29udHJvbGxlcigpIHsKKyAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXJfOworICAgIH0sCisKKyAgICBzZXQgY29udHJvbGxlcihjKSB7CisgICAgICB0aGlzLmNvbnRyb2xsZXJfID0gYzsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zY3JpcHRpbmdfY29udHJvbF90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3NjcmlwdGluZ19jb250cm9sX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzc1NjUxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zY3JpcHRpbmdfY29udHJvbF90ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvc2NyaXB0aW5nX2NvbnRyb2wuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGN0bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXNjcmlwdGluZy1jb250cm9sJyk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGN0bCk7CisgICAgY3RsLnRvZ2dsZVZpc2liaWxpdHkoKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3NpZGVfcGFuZWwvc2lkZV9wYW5lbC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjZiN2VjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWwuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLXVpLXNpZGUtcGFuZWwnPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgcmFuZ2VPZkludGVyZXN0KCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgc2V0IHJhbmdlT2ZJbnRlcmVzdChyYW5nZU9mSW50ZXJlc3QpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgZ2V0IG1vZGVsKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgc2V0IG1vZGVsKG1vZGVsKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpOworICAgIH0sCisKKyAgICBnZXQgbGlzdGVuaW5nVG9LZXlzKCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgc3VwcG9ydHNNb2RlbDogZnVuY3Rpb24obSkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3NpZGVfcGFuZWwvc2lkZV9wYW5lbF9jb250YWluZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjA1NWI1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyLmh0bWwKQEAgLTAsMCArMSwyNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3NpZGVfcGFuZWwvc2lkZV9wYW5lbC5odG1sIj4KKzxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvdWkvYmFzZS9wb2x5bWVyX3V0aWxzLmh0bWwnPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9J3RyLXVpLXNpZGUtcGFuZWwtY29udGFpbmVyJyBpcz0nSFRNTFVua25vd25FbGVtZW50Jz4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKKyAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICB9CisKKyAgICA6aG9zdChbZXhwYW5kZWRdKSA+IGFjdGl2ZS1wYW5lbC1jb250YWluZXIgeworICAgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgYmxhY2s7CisgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgfQorCisgICAgOmhvc3QoOm5vdChbZXhwYW5kZWRdKSkgPiBhY3RpdmUtcGFuZWwtY29udGFpbmVyIHsKKyAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorCisgICAgYWN0aXZlLXBhbmVsLWNvbnRhaW5lciB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgIH0KKworICAgIHRhYi1zdHJpcCB7CisgICAgICAtd2Via2l0LWZsZXg6IDAgMCBhdXRvOworICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYsIDIzNiwgMjM2KTsKKyAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgYmxhY2s7CisgICAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgICBtaW4td2lkdGg6IDE4cHg7IC8qIHdvcmthcm91bmQgZm9yIGZsZXhib3ggYW5kIHdyaXRpbmctbW9kZSBtaXhpbmcgYnVnICovCisgICAgICBwYWRkaW5nOiAxMHB4IDAgMTBweCAwOworICAgICAgZm9udC1zaXplOiAxMnB4OworICAgIH0KKworICAgIHRhYi1zdHJpcCA+IHRhYi1zdHJpcC1sYWJlbCB7CisgICAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7CisgICAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgICBtYXJnaW4tcmlnaHQ6IDFweDsKKyAgICAgIG1pbi1oZWlnaHQ6IDIwcHg7CisgICAgICBwYWRkaW5nOiAxNXB4IDNweCAxNXB4IDFweDsKKyAgICB9CisKKyAgICB0YWItc3RyaXAgPgorICAgICAgICB0YWItc3RyaXAtbGFiZWw6bm90KFtlbmFibGVkXSkgeworICAgICAgY29sb3I6IHJnYigxMjgsIDEyOCwgMTI4KTsKKyAgICB9CisKKyAgICB0YWItc3RyaXAgPiB0YWItc3RyaXAtbGFiZWxbc2VsZWN0ZWRdIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE2MywgMTYzLCAxNjMpOworICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CisgICAgICBwYWRkaW5nOiAxNHB4IDJweCAxNHB4IDFweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKworICAgIDxhY3RpdmUtcGFuZWwtY29udGFpbmVyIGlkPSdhY3RpdmVfcGFuZWxfY29udGFpbmVyJz4KKyAgICA8L2FjdGl2ZS1wYW5lbC1jb250YWluZXI+CisgICAgPHRhYi1zdHJpcCBpZD0ndGFiX3N0cmlwJz48L3RhYi1zdHJpcD4KKyAgPC90ZW1wbGF0ZT4KKworICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuYWN0aXZlUGFuZWxDb250YWluZXJfID0gdGhpcy4kLmFjdGl2ZV9wYW5lbF9jb250YWluZXI7CisgICAgICB0aGlzLnRhYlN0cmlwXyA9IHRoaXMuJC50YWJfc3RyaXA7CisKKyAgICAgIHRoaXMucmFuZ2VPZkludGVyZXN0XyA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXyA9IHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlZF8gPSB0aGlzLm9uTW9kZWxDaGFuZ2VkXy5iaW5kKHRoaXMpOworICAgIH0sCisKKyAgICBnZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKSB7CisgICAgICByZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87CisgICAgfSwKKworICAgIHNldCBicnVzaGluZ1N0YXRlQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcikgeworICAgICAgaWYgKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpIHsKKyAgICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8pOworICAgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5yZW1vdmVFdmVudExpc3RlbmVyKAorICAgICAgICAgICAgJ21vZGVsLWNoYW5nZWQnLCB0aGlzLm9uTW9kZWxDaGFuZ2VkXyk7CisgICAgICB9CisgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyA9IGJydXNoaW5nU3RhdGVDb250cm9sbGVyOworICAgICAgaWYgKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIpIHsKKyAgICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8pOworICAgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAgICAgJ21vZGVsLWNoYW5nZWQnLCB0aGlzLm9uTW9kZWxDaGFuZ2VkXyk7CisgICAgICB9CisgICAgfSwKKworICAgIGdldCBzZWxlY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBvblNlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmFjdGl2ZVBhbmVsKQorICAgICAgICB0aGlzLmFjdGl2ZVBhbmVsLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uOworICAgIH0sCisKKyAgICBnZXQgbW9kZWwoKSB7CisgICAgICByZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8ubW9kZWw7CisgICAgfSwKKworICAgIG9uTW9kZWxDaGFuZ2VkXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZV8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgZXhwYW5kZWQoKSB7CisgICAgICB0aGlzLmhhc0F0dHJpYnV0ZSgnZXhwYW5kZWQnKTsKKyAgICB9LAorCisgICAgZ2V0IGFjdGl2ZVBhbmVsKCkgeworICAgICAgaWYgKHRoaXMuYWN0aXZlUGFuZWxDb250YWluZXJfLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhbmVsQ29udGFpbmVyXy5jaGlsZHJlblswXTsKKyAgICB9LAorCisgICAgZ2V0IGFjdGl2ZVBhbmVsVHlwZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhbmVsVHlwZV87CisgICAgfSwKKworICAgIHNldCBhY3RpdmVQYW5lbFR5cGUocGFuZWxUeXBlKSB7CisgICAgICBpZiAodGhpcy5tb2RlbCA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhY3RpdmF0ZSBwYW5lbCB3aXRob3V0IGEgbW9kZWwnKTsKKworICAgICAgdmFyIHBhbmVsID0gdW5kZWZpbmVkOworICAgICAgaWYgKHBhbmVsVHlwZSkKKyAgICAgICAgICBwYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocGFuZWxUeXBlKTsKKworICAgICAgaWYgKHBhbmVsICE9PSB1bmRlZmluZWQgJiYgIXBhbmVsLnN1cHBvcnRzTW9kZWwodGhpcy5tb2RlbCkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFjdGl2YXRlIHBhbmVsOiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgbW9kZWwnKTsKKworICAgICAgaWYgKHRoaXMuYWN0aXZlUGFuZWxUeXBlKSB7CisgICAgICAgIHRoaXMuZ2V0TGFiZWxFbGVtZW50Rm9yUGFuZWxUeXBlXygKKyAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFuZWxUeXBlKS5yZW1vdmVBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7CisgICAgICB9CisgICAgICB0aGlzLmFjdGl2ZVBhbmVsQ29udGFpbmVyXy50ZXh0Q29udGVudCA9ICcnOworCisgICAgICBpZiAocGFuZWxUeXBlID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2V4cGFuZGVkJyk7CisgICAgICAgIHRoaXMuYWN0aXZlUGFuZWxUeXBlXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB0aGlzLmdldExhYmVsRWxlbWVudEZvclBhbmVsVHlwZV8ocGFuZWxUeXBlKS4KKyAgICAgICAgICBzZXRBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdHJ1ZSk7CisgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZXhwYW5kZWQnLCB0cnVlKTsKKworICAgICAgdGhpcy5hY3RpdmVQYW5lbENvbnRhaW5lcl8uYXBwZW5kQ2hpbGQocGFuZWwpOworICAgICAgcGFuZWwucmFuZ2VPZkludGVyZXN0ID0gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOworICAgICAgcGFuZWwuc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb25fOworICAgICAgcGFuZWwubW9kZWwgPSB0aGlzLm1vZGVsOworCisgICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZV8gPSBwYW5lbFR5cGU7CisgICAgfSwKKworICAgIGdldFBhbmVsVHlwZUZvckNvbnN0cnVjdG9yXzogZnVuY3Rpb24oY29uc3RydWN0b3IpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJTdHJpcF8uY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHRoaXMudGFiU3RyaXBfLmNoaWxkcmVuW2ldLnBhbmVsVHlwZS5jb25zdHJ1Y3RvciA9PSBjb25zdHJ1Y3RvcikKKyAgICAgICAgICByZXR1cm4gdGhpcy50YWJTdHJpcF8uY2hpbGRyZW5baV0ucGFuZWxUeXBlOworICAgICAgfQorICAgIH0sCisKKyAgICBnZXRMYWJlbEVsZW1lbnRGb3JQYW5lbFR5cGVfOiBmdW5jdGlvbihwYW5lbFR5cGUpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWJTdHJpcF8uY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHRoaXMudGFiU3RyaXBfLmNoaWxkcmVuW2ldLnBhbmVsVHlwZSA9PSBwYW5lbFR5cGUpCisgICAgICAgICAgcmV0dXJuIHRoaXMudGFiU3RyaXBfLmNoaWxkcmVuW2ldOworICAgICAgfQorICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBwcmV2aW91c2x5QWN0aXZlUGFuZWxUeXBlID0gdGhpcy5hY3RpdmVQYW5lbFR5cGU7CisKKyAgICAgIHRoaXMudGFiU3RyaXBfLnRleHRDb250ZW50ID0gJyc7CisgICAgICB2YXIgc3VwcG9ydGVkUGFuZWxUeXBlcyA9IFtdOworCisgICAgICB2YXIgcGFuZWxUeXBlcyA9CisgICAgICAgICAgdHIudWkuYi5nZXRQb2x5bWVyRWxlbWVudHNUaGF0U3ViY2xhc3MoJ3RyLXVpLXNpZGUtcGFuZWwnKTsKKyAgICAgIHBhbmVsVHlwZXMuZm9yRWFjaChmdW5jdGlvbihwYW5lbFR5cGUpIHsKKyAgICAgICAgdmFyIGxhYmVsRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWItc3RyaXAtbGFiZWwnKTsKKyAgICAgICAgdmFyIHBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChwYW5lbFR5cGUpOworCisgICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBwYW5lbC50ZXh0TGFiZWw7CisgICAgICAgIGxhYmVsRWwucGFuZWxUeXBlID0gcGFuZWxUeXBlOworCisgICAgICAgIHZhciBzdXBwb3J0ZWQgPSBwYW5lbC5zdXBwb3J0c01vZGVsKHRoaXMubW9kZWwpOworICAgICAgICBpZiAodGhpcy5tb2RlbCAmJiBzdXBwb3J0ZWQuc3VwcG9ydGVkKSB7CisgICAgICAgICAgc3VwcG9ydGVkUGFuZWxUeXBlcy5wdXNoKHBhbmVsVHlwZSk7CisgICAgICAgICAgbGFiZWxFbC5zZXRBdHRyaWJ1dGUoJ2VuYWJsZWQnLCB0cnVlKTsKKyAgICAgICAgICBsYWJlbEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZSA9CisgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVQYW5lbFR5cGUgPT09IHBhbmVsVHlwZSA/IHVuZGVmaW5lZCA6IHBhbmVsVHlwZTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGxhYmVsRWwudGl0bGUgPSAnTm90IHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgdHJhY2U6ICcgKworICAgICAgICAgICAgICBzdXBwb3J0ZWQucmVhc29uOworICAgICAgICAgIGxhYmVsRWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRhYlN0cmlwXy5hcHBlbmRDaGlsZChsYWJlbEVsKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBSZXN0b3JlIHRoZSBhY3RpdmUgcGFuZWwsIG9yIGNvbGxhcHNlCisgICAgICBpZiAocHJldmlvdXNseUFjdGl2ZVBhbmVsVHlwZSAmJgorICAgICAgICAgIHN1cHBvcnRlZFBhbmVsVHlwZXMuaW5kZXhPZihwcmV2aW91c2x5QWN0aXZlUGFuZWxUeXBlKSAhPSAtMSkgeworICAgICAgICB0aGlzLmFjdGl2ZVBhbmVsVHlwZSA9IHByZXZpb3VzbHlBY3RpdmVQYW5lbFR5cGU7CisgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdleHBhbmRlZCcsIHRydWUpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5hY3RpdmVQYW5lbENvbnRhaW5lcl8udGV4dENvbnRlbnQgPSAnJzsKKyAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2V4cGFuZGVkJyk7CisgICAgICB9CisgICAgfSwKKworICAgIGdldCByYW5nZU9mSW50ZXJlc3QoKSB7CisgICAgICByZXR1cm4gdGhpcy5yYW5nZU9mSW50ZXJlc3RfOworICAgIH0sCisKKyAgICBzZXQgcmFuZ2VPZkludGVyZXN0KHJhbmdlKSB7CisgICAgICBpZiAocmFuZ2UgPT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3Qgbm90IGJlIHVuZGVmaW5lZCcpOworICAgICAgdGhpcy5yYW5nZU9mSW50ZXJlc3RfID0gcmFuZ2U7CisgICAgICBpZiAodGhpcy5hY3RpdmVQYW5lbCkKKyAgICAgICAgdGhpcy5hY3RpdmVQYW5lbC5yYW5nZU9mSW50ZXJlc3QgPSByYW5nZTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3NpZGVfcGFuZWwvc2lkZV9wYW5lbF9jb250YWluZXJfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODhjOTgxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyX3Rlc3QuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9leHRyYXMvc2lkZV9wYW5lbC90aW1lX3N1bW1hcnlfc2lkZV9wYW5lbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvc2lkZV9wYW5lbC9zaWRlX3BhbmVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9zaWRlX3BhbmVsL3NpZGVfcGFuZWxfY29udGFpbmVyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyKCkgeworICAgIHRoaXMuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvblJldHVyblZhbHVlID0gW107CisKKyAgICB0aGlzLnZpZXdwb3J0ID0gdW5kZWZpbmVkOworICAgIHRoaXMubW9kZWwgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICB0aGlzLmhpZ2hsaWdodCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICB9CisKKyAgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKKyAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbihuYW1lLCBjYikgeworICAgIH0KKyAgfTsKKworICBmdW5jdGlvbiBjcmVhdGVNb2RlbCgpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIG0uaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGJyb3dzZXJQcm9jZXNzID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgICB2YXIgYnJvd3Nlck1haW4gPSBicm93c2VyUHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuYmVnaW5TbGljZSgnY2F0JywgJ1Rhc2snLCAwKTsKKyAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuZW5kU2xpY2UoMTApOworICAgICAgYnJvd3Nlck1haW4uc2xpY2VHcm91cC5iZWdpblNsaWNlKCdjYXQnLCAnVGFzaycsIDIwKTsKKyAgICAgIGJyb3dzZXJNYWluLnNsaWNlR3JvdXAuZW5kU2xpY2UoMzApOworICAgIH0pOworICAgIHJldHVybiBtOworICB9CisKKyAgdGVzdCgnaW5zdGFudGlhdGVDb2xsYXBzZWQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIgPSBuZXcgRmFrZUJydXNoaW5nU3RhdGVDb250cm9sbGVyKCk7CisgICAgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIubW9kZWwgPSBjcmVhdGVNb2RlbCgpOworCisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXNpZGUtcGFuZWwtY29udGFpbmVyJyk7CisgICAgY29udGFpbmVyLmJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXI7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGNvbnRhaW5lcik7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTNmNmEwCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybS5odG1sCkBAIC0wLDAgKzEsMTE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWknLCBmdW5jdGlvbigpIHsKKyAgZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKG9wdF90aGF0KSB7CisgICAgaWYgKG9wdF90aGF0KSB7CisgICAgICB0aGlzLnNldChvcHRfdGhhdCk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRoaXMuc2NhbGVYID0gMTsKKyAgICB0aGlzLnBhblggPSAwOworICAgIHRoaXMucGFuWSA9IDA7CisgIH0KKworICBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0ucHJvdG90eXBlID0geworICAgIHNldDogZnVuY3Rpb24odGhhdCkgeworICAgICAgdGhpcy5zY2FsZVggPSB0aGF0LnNjYWxlWDsKKyAgICAgIHRoaXMucGFuWCA9IHRoYXQucGFuWDsKKyAgICAgIHRoaXMucGFuWSA9IHRoYXQucGFuWTsKKyAgICB9LAorCisgICAgY2xvbmU6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0odGhpcyk7CisgICAgfSwKKworICAgIGVxdWFsczogZnVuY3Rpb24odGhhdCkgeworICAgICAgdmFyIGVxID0gdHJ1ZTsKKyAgICAgIGlmICh0aGF0ID09PSB1bmRlZmluZWQgfHwgdGhhdCA9PT0gbnVsbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgZXEgJj0gdGhpcy5wYW5YID09PSB0aGF0LnBhblg7CisgICAgICBlcSAmPSB0aGlzLnBhblkgPT09IHRoYXQucGFuWTsKKyAgICAgIGVxICY9IHRoaXMuc2NhbGVYID09PSB0aGF0LnNjYWxlWDsKKyAgICAgIHJldHVybiAhIWVxOworICAgIH0sCisKKyAgICBhbG1vc3RFcXVhbHM6IGZ1bmN0aW9uKHRoYXQpIHsKKyAgICAgIHZhciBlcSA9IHRydWU7CisgICAgICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkIHx8IHRoYXQgPT09IG51bGwpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGVxICY9IE1hdGguYWJzKHRoaXMucGFuWCAtIHRoYXQucGFuWCkgPCAwLjAwMTsKKyAgICAgIGVxICY9IE1hdGguYWJzKHRoaXMucGFuWSAtIHRoYXQucGFuWSkgPCAwLjAwMTsKKyAgICAgIGVxICY9IE1hdGguYWJzKHRoaXMuc2NhbGVYIC0gdGhhdC5zY2FsZVgpIDwgMC4wMDE7CisgICAgICByZXR1cm4gISFlcTsKKyAgICB9LAorCisgICAgaW5jcmVtZW50UGFuWEluVmlld1VuaXRzOiBmdW5jdGlvbih4RGVsdGFWaWV3KSB7CisgICAgICB0aGlzLnBhblggKz0gdGhpcy54Vmlld1ZlY3RvclRvV29ybGQoeERlbHRhVmlldyk7CisgICAgfSwKKworICAgIHhQYW5Xb3JsZFBvc1RvVmlld1BvczogZnVuY3Rpb24od29ybGRYLCB2aWV3WCwgdmlld1dpZHRoKSB7CisgICAgICBpZiAodHlwZW9mIHZpZXdYID09ICdzdHJpbmcnKSB7CisgICAgICAgIGlmICh2aWV3WCA9PT0gJ2xlZnQnKSB7CisgICAgICAgICAgdmlld1ggPSAwOworICAgICAgICB9IGVsc2UgaWYgKHZpZXdYID09PSAnY2VudGVyJykgeworICAgICAgICAgIHZpZXdYID0gdmlld1dpZHRoIC8gMjsKKyAgICAgICAgfSBlbHNlIGlmICh2aWV3WCA9PT0gJ3JpZ2h0JykgeworICAgICAgICAgIHZpZXdYID0gdmlld1dpZHRoIC0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZpZXdYIG11c3QgYmUgbGVmdHxjZW50ZXJ8cmlnaHQgb3IgbnVtYmVyLicpOworICAgICAgICB9CisgICAgICB9CisgICAgICB0aGlzLnBhblggPSAodmlld1ggLyB0aGlzLnNjYWxlWCkgLSB3b3JsZFg7CisgICAgfSwKKworICAgIHhQYW5Xb3JsZEJvdW5kc0ludG9WaWV3OiBmdW5jdGlvbih3b3JsZE1pbiwgd29ybGRNYXgsIHZpZXdXaWR0aCkgeworICAgICAgaWYgKHRoaXMueFdvcmxkVG9WaWV3KHdvcmxkTWluKSA8IDApCisgICAgICAgIHRoaXMueFBhbldvcmxkUG9zVG9WaWV3UG9zKHdvcmxkTWluLCAnbGVmdCcsIHZpZXdXaWR0aCk7CisgICAgICBlbHNlIGlmICh0aGlzLnhXb3JsZFRvVmlldyh3b3JsZE1heCkgPiB2aWV3V2lkdGgpCisgICAgICAgIHRoaXMueFBhbldvcmxkUG9zVG9WaWV3UG9zKHdvcmxkTWF4LCAncmlnaHQnLCB2aWV3V2lkdGgpOworICAgIH0sCisKKyAgICB4U2V0V29ybGRCb3VuZHM6IGZ1bmN0aW9uKHdvcmxkTWluLCB3b3JsZE1heCwgdmlld1dpZHRoKSB7CisgICAgICB2YXIgd29ybGRXaWR0aCA9IHdvcmxkTWF4IC0gd29ybGRNaW47CisgICAgICB2YXIgc2NhbGVYID0gdmlld1dpZHRoIC8gd29ybGRXaWR0aDsKKyAgICAgIHZhciBwYW5YID0gLXdvcmxkTWluOworICAgICAgdGhpcy5zZXRQYW5BbmRTY2FsZShwYW5YLCBzY2FsZVgpOworICAgIH0sCisKKyAgICBzZXRQYW5BbmRTY2FsZTogZnVuY3Rpb24ocCwgcykgeworICAgICAgdGhpcy5zY2FsZVggPSBzOworICAgICAgdGhpcy5wYW5YID0gcDsKKyAgICB9LAorCisgICAgeFdvcmxkVG9WaWV3OiBmdW5jdGlvbih4KSB7CisgICAgICByZXR1cm4gKHggKyB0aGlzLnBhblgpICogdGhpcy5zY2FsZVg7CisgICAgfSwKKworICAgIHhXb3JsZFZlY3RvclRvVmlldzogZnVuY3Rpb24oeCkgeworICAgICAgcmV0dXJuIHggKiB0aGlzLnNjYWxlWDsKKyAgICB9LAorCisgICAgeFZpZXdUb1dvcmxkOiBmdW5jdGlvbih4KSB7CisgICAgICByZXR1cm4gKHggLyB0aGlzLnNjYWxlWCkgLSB0aGlzLnBhblg7CisgICAgfSwKKworICAgIHhWaWV3VmVjdG9yVG9Xb3JsZDogZnVuY3Rpb24oeCkgeworICAgICAgcmV0dXJuIHggLyB0aGlzLnNjYWxlWDsKKyAgICB9LAorCisgICAgYXBwbHlUcmFuc2Zvcm1Ub0NhbnZhczogZnVuY3Rpb24oY3R4KSB7CisgICAgICBjdHgudHJhbnNmb3JtKHRoaXMuc2NhbGVYLCAwLCAwLCAxLCB0aGlzLnBhblggKiB0aGlzLnNjYWxlWCwgMCk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtOiBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0KKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtX2FuaW1hdGlvbnMuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fYW5pbWF0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NGRlMzYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtX2FuaW1hdGlvbnMuaHRtbApAQCAtMCwwICsxLDE3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvYW5pbWF0aW9uLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWknLCBmdW5jdGlvbigpIHsKKyAgdmFyIGtEZWZhdWx0UGFuQW5pbWF0b2luRHVyYXRpb25NcyA9IDEwMC4wOworCisgIC8qKgorICAgKiBQYW5zIGEgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtIGJ5IGEgZ2l2ZW4gYW1vdW50LgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge3RyLnVpLmIuQW5pbWF0aW9ufQorICAgKiBAcGFyYW0ge051bWJlcn0gZGVsdGFYIFRoZSB0b3RhbCBhbW91bnQgb2YgY2hhbmdlIHRvIHRoZSB0cmFuc2Zvcm0ncyBwYW5YLgorICAgKiBAcGFyYW0ge051bWJlcn0gZGVsdGFZIFRoZSB0b3RhbCBhbW91bnQgb2YgY2hhbmdlIHRvIHRoZSB0cmFuc2Zvcm0ncyBwYW5ZLgorICAgKiBAcGFyYW0ge051bWJlcj19IG9wdF9kdXJhdGlvbk1zIEhvdyBsb25nIHRoZSBwYW4gYW5pbWF0aW9uIHNob3VsZCBydW4uCisgICAqIERlZmF1bHRzIHRvIGtEZWZhdWx0UGFuQW5pbWF0b2luRHVyYXRpb25Ncy4KKyAgICovCisgIGZ1bmN0aW9uIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbigKKyAgICAgIGRlbHRhWCwgZGVsdGFZLCBvcHRfZHVyYXRpb25NcykgeworICAgIHRoaXMuZGVsdGFYID0gZGVsdGFYOworICAgIHRoaXMuZGVsdGFZID0gZGVsdGFZOworICAgIGlmIChvcHRfZHVyYXRpb25NcyA9PT0gdW5kZWZpbmVkKQorICAgICAgdGhpcy5kdXJhdGlvbk1zID0ga0RlZmF1bHRQYW5BbmltYXRvaW5EdXJhdGlvbk1zOworICAgIGVsc2UKKyAgICAgIHRoaXMuZHVyYXRpb25NcyA9IG9wdF9kdXJhdGlvbk1zOworCisgICAgdGhpcy5zdGFydFBhblggPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zdGFydFBhblkgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zdGFydFRpbWVNcyA9IHVuZGVmaW5lZDsKKyAgfQorCisgIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbi5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS5iLkFuaW1hdGlvbi5wcm90b3R5cGUsCisKKyAgICBnZXQgYWZmZWN0c1BhblkoKSB7CisgICAgICByZXR1cm4gdGhpcy5kZWx0YVkgIT09IDA7CisgICAgfSwKKworICAgIGNhblRha2VPdmVyRm9yOiBmdW5jdGlvbihleGlzdGluZ0FuaW1hdGlvbikgeworICAgICAgcmV0dXJuIGV4aXN0aW5nQW5pbWF0aW9uIGluc3RhbmNlb2YgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uOworICAgIH0sCisKKyAgICB0YWtlT3ZlckZvcjogZnVuY3Rpb24oZXhpc3RpbmcsIHRpbWVzdGFtcCwgdGFyZ2V0KSB7CisgICAgICB2YXIgcmVtYWluaW5nRGVsdGFYT25FeGlzdGluZyA9IGV4aXN0aW5nLmdvYWxQYW5YIC0gdGFyZ2V0LnBhblg7CisgICAgICB2YXIgcmVtYWluaW5nRGVsdGFZT25FeGlzdGluZyA9IGV4aXN0aW5nLmdvYWxQYW5ZIC0gdGFyZ2V0LnBhblk7CisgICAgICB2YXIgcmVtYWluaW5nVGltZU9uRXhpc3RpbmcgPSB0aW1lc3RhbXAgLSAoCisgICAgICAgICAgZXhpc3Rpbmcuc3RhcnRUaW1lTXMgKyBleGlzdGluZy5kdXJhdGlvbk1zKTsKKyAgICAgIHJlbWFpbmluZ1RpbWVPbkV4aXN0aW5nID0gTWF0aC5tYXgocmVtYWluaW5nVGltZU9uRXhpc3RpbmcsIDApOworCisgICAgICB0aGlzLmRlbHRhWCArPSByZW1haW5pbmdEZWx0YVhPbkV4aXN0aW5nOworICAgICAgdGhpcy5kZWx0YVkgKz0gcmVtYWluaW5nRGVsdGFZT25FeGlzdGluZzsKKyAgICAgIHRoaXMuZHVyYXRpb25NcyArPSByZW1haW5pbmdUaW1lT25FeGlzdGluZzsKKyAgICB9LAorCisgICAgc3RhcnQ6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7CisgICAgICB0aGlzLnN0YXJ0VGltZU1zID0gdGltZXN0YW1wOworICAgICAgdGhpcy5zdGFydFBhblggPSB0YXJnZXQucGFuWDsKKyAgICAgIHRoaXMuc3RhcnRQYW5ZID0gdGFyZ2V0LnBhblk7CisgICAgfSwKKworICAgIHRpY2s6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7CisgICAgICB2YXIgcGVyY2VudERvbmUgPSAodGltZXN0YW1wIC0gdGhpcy5zdGFydFRpbWVNcykgLyB0aGlzLmR1cmF0aW9uTXM7CisgICAgICBwZXJjZW50RG9uZSA9IHRyLmIuY2xhbXAocGVyY2VudERvbmUsIDAsIDEpOworCisgICAgICB0YXJnZXQucGFuWCA9IHRyLmIubGVycChwZXJjZW50RG9uZSwgdGhpcy5zdGFydFBhblgsIHRoaXMuZ29hbFBhblgpOworICAgICAgaWYgKHRoaXMuYWZmZWN0c1BhblkpCisgICAgICAgIHRhcmdldC5wYW5ZID0gdHIuYi5sZXJwKHBlcmNlbnREb25lLCB0aGlzLnN0YXJ0UGFuWSwgdGhpcy5nb2FsUGFuWSk7CisgICAgICByZXR1cm4gdGltZXN0YW1wID49IHRoaXMuc3RhcnRUaW1lTXMgKyB0aGlzLmR1cmF0aW9uTXM7CisgICAgfSwKKworICAgIGdldCBnb2FsUGFuWCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnN0YXJ0UGFuWCArIHRoaXMuZGVsdGFYOworICAgIH0sCisKKyAgICBnZXQgZ29hbFBhblkoKSB7CisgICAgICByZXR1cm4gdGhpcy5zdGFydFBhblkgKyB0aGlzLmRlbHRhWTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIFpvb21zIGluL291dCBvbiBhIHNwZWNpZmllZCBsb2NhdGlvbiBpbiB0aGUgd29ybGQuCisgICAqCisgICAqIFpvb21pbmcgaW4gYW5kIG91dCBpcyBhbGwgYWJvdXQga2VlcGluZyB0aGUgYXJlYSB1bmRlciB0aGUgbW91c2UgY3Vyc29yLAorICAgKiBoZXJlIGNhbGxlZCB0aGUgImZvY2FsIHBvaW50IiBpbiB0aGUgc2FtZSBwbGFjZSB1bmRlciB0aGUgem9vbS4gSWYgb25lCisgICAqIHNpbXBseSBjaGFuZ2VzIHRoZSBzY2FsZSwgdGhlIGFyZWEgdW5kZXIgdGhlIG1vdXNlIGN1cnNvciB3aWxsIGNoYW5nZS4gVG8KKyAgICoga2VlcCB0aGUgZm9jYWwgcG9pbnQgZnJvbSBtb3ZpbmcgZHVyaW5nIHRoZSB6b29tLCB0aGUgcGFuIG5lZWRzIHRvIGNoYW5nZQorICAgKiBpbiBvcmRlciB0byBjb21wZW5zYXRlLiBUaHVzLCBhIFpvb21UbyBhbmltYXRpb24gaXMgZ2l2ZW4gYm90aCBhIGZvY2FsCisgICAqIHBvaW50IGluIGFkZGl0aW9uIHRvIHRoZSBhbW91bnQgYnkgd2hpY2ggdG8gem9vbS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHt0ci51aS5iLkFuaW1hdGlvbn0KKyAgICogQHBhcmFtIHtOdW1iZXJ9IGdvYWxGb2NhbFBvaW50WFdvcmxkIFRoZSBYIGNvb3JkaW5hdGUgaW4gdGhlIHdvcmxkIHdoaWNoIGlzCisgICAqIG9mIGludGVyZXN0LgorICAgKiBAcGFyYW0ge051bWJlcn0gZ29hbEZvY2FsUG9pbnRYVmlldyBXaGVyZSBvbiB0aGUgc2NyZWVuIHRoZQorICAgKiBnb2FsRm9jYWxQb2ludFhXb3JsZCBzaG91bGQgc3RheSBjZW50ZXJlZCBkdXJpbmcgdGhlIHpvb20uCisgICAqIEBwYXJhbSB7TnVtYmVyfSBnb2FsRm9jYWxQb2ludFkgV2hlcmUgdGhlIHBhblkgc2hvdWxkIGJlIHdoZW4gdGhlIHpvb20KKyAgICogY29tcGxldGVzLgorICAgKiBAcGFyYW0ge051bWJlcn0gem9vbUluUmF0aW9YIFRoZSByYXRpbyBvZiB0aGUgY3VycmVudCBzY2FsZVggdG8gdGhlIGdvYWwKKyAgICogc2NhbGVYLgorICAgKi8KKyAgZnVuY3Rpb24gVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uKAorICAgICAgZ29hbEZvY2FsUG9pbnRYV29ybGQsCisgICAgICBnb2FsRm9jYWxQb2ludFhWaWV3LAorICAgICAgZ29hbEZvY2FsUG9pbnRZLAorICAgICAgem9vbUluUmF0aW9YLAorICAgICAgb3B0X2R1cmF0aW9uTXMpIHsKKyAgICB0aGlzLmdvYWxGb2NhbFBvaW50WFdvcmxkID0gZ29hbEZvY2FsUG9pbnRYV29ybGQ7CisgICAgdGhpcy5nb2FsRm9jYWxQb2ludFhWaWV3ID0gZ29hbEZvY2FsUG9pbnRYVmlldzsKKyAgICB0aGlzLmdvYWxGb2NhbFBvaW50WSA9IGdvYWxGb2NhbFBvaW50WTsKKyAgICB0aGlzLnpvb21JblJhdGlvWCA9IHpvb21JblJhdGlvWDsKKyAgICBpZiAob3B0X2R1cmF0aW9uTXMgPT09IHVuZGVmaW5lZCkKKyAgICAgIHRoaXMuZHVyYXRpb25NcyA9IGtEZWZhdWx0UGFuQW5pbWF0b2luRHVyYXRpb25NczsKKyAgICBlbHNlCisgICAgICB0aGlzLmR1cmF0aW9uTXMgPSBvcHRfZHVyYXRpb25NczsKKworICAgIHRoaXMuc3RhcnRUaW1lTXMgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zdGFydFNjYWxlWCA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmdvYWxTY2FsZVggPSB1bmRlZmluZWQ7CisgICAgdGhpcy5zdGFydFBhblkgPSB1bmRlZmluZWQ7CisgIH0KKworICBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24ucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkuYi5BbmltYXRpb24ucHJvdG90eXBlLAorCisgICAgZ2V0IGFmZmVjdHNQYW5ZKCkgeworICAgICAgcmV0dXJuIHRoaXMuc3RhcnRQYW5ZICE9IHRoaXMuZ29hbEZvY2FsUG9pbnRZOworICAgIH0sCisKKyAgICBjYW5UYWtlT3ZlckZvcjogZnVuY3Rpb24oZXhpc3RpbmdBbmltYXRpb24pIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgdGFrZU92ZXJGb3I6IGZ1bmN0aW9uKGV4aXN0aW5nQW5pbWF0aW9uLCB0aW1lc3RhbXAsIHRhcmdldCkgeworICAgICAgdGhpcy5nb2FsU2NhbGVYID0gdGFyZ2V0LnNjYWxlWCAqIHRoaXMuem9vbUluUmF0aW9YOworICAgIH0sCisKKyAgICBzdGFydDogZnVuY3Rpb24odGltZXN0YW1wLCB0YXJnZXQpIHsKKyAgICAgIHRoaXMuc3RhcnRUaW1lTXMgPSB0aW1lc3RhbXA7CisgICAgICB0aGlzLnN0YXJ0U2NhbGVYID0gdGFyZ2V0LnNjYWxlWDsKKyAgICAgIHRoaXMuZ29hbFNjYWxlWCA9IHRoaXMuem9vbUluUmF0aW9YICogdGFyZ2V0LnNjYWxlWDsKKyAgICAgIHRoaXMuc3RhcnRQYW5ZID0gdGFyZ2V0LnBhblk7CisgICAgfSwKKworICAgIHRpY2s6IGZ1bmN0aW9uKHRpbWVzdGFtcCwgdGFyZ2V0KSB7CisgICAgICB2YXIgcGVyY2VudERvbmUgPSAodGltZXN0YW1wIC0gdGhpcy5zdGFydFRpbWVNcykgLyB0aGlzLmR1cmF0aW9uTXM7CisgICAgICBwZXJjZW50RG9uZSA9IHRyLmIuY2xhbXAocGVyY2VudERvbmUsIDAsIDEpOworCisgICAgICB0YXJnZXQuc2NhbGVYID0gdHIuYi5sZXJwKHBlcmNlbnREb25lLCB0aGlzLnN0YXJ0U2NhbGVYLCB0aGlzLmdvYWxTY2FsZVgpOworICAgICAgaWYgKHRoaXMuYWZmZWN0c1BhblkpIHsKKyAgICAgICAgdGFyZ2V0LnBhblkgPSB0ci5iLmxlcnAoCisgICAgICAgICAgICBwZXJjZW50RG9uZSwgdGhpcy5zdGFydFBhblksIHRoaXMuZ29hbEZvY2FsUG9pbnRZKTsKKyAgICAgIH0KKworICAgICAgdGFyZ2V0LnhQYW5Xb3JsZFBvc1RvVmlld1BvcygKKyAgICAgICAgICB0aGlzLmdvYWxGb2NhbFBvaW50WFdvcmxkLCB0aGlzLmdvYWxGb2NhbFBvaW50WFZpZXcpOworICAgICAgcmV0dXJuIHRpbWVzdGFtcCA+PSB0aGlzLnN0YXJ0VGltZU1zICsgdGhpcy5kdXJhdGlvbk1zOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbjoKKyAgICAgICAgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uLAorICAgIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbjoKKyAgICAgICAgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV9hbmltYXRpb25zX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fYW5pbWF0aW9uc190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM0OTk4ZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fYW5pbWF0aW9uc190ZXN0Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9hbmltYXRpb25fY29udHJvbGxlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtX2FuaW1hdGlvbnMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeyAvLyBAc3VwcHJlc3MgbG9uZ0xpbmVDaGVjaworICB2YXIgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtID0gdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtOworICB2YXIgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uID0KKyAgICAgIHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbjsKKyAgdmFyIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbiA9CisgICAgICB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb247CisKKyAgdGVzdCgncGFuQmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIHRhcmdldC5jbG9uZUFuaW1hdGlvblN0YXRlID0gZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpOworICAgIH07CisKKyAgICB2YXIgYSA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb24oMTAsIDIwLCAxMDApOworCisgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIudWkuYi5BbmltYXRpb25Db250cm9sbGVyKCk7CisgICAgY29udHJvbGxlci50YXJnZXQgPSB0YXJnZXQ7CisgICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihhLCAwKTsKKworICAgIGFzc2VydC5pc1RydWUoYS5hZmZlY3RzUGFuWSk7CisgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDUwKTsKKyAgICBhc3NlcnQuaXNBYm92ZSh0YXJnZXQucGFuWCwgMCk7CisgICAgdHIuYi5mb3JjZVBlbmRpbmdSQUZUYXNrc1RvUnVuKDEwMCk7CisgICAgYXNzZXJ0LmlzRmFsc2UoY29udHJvbGxlci5oYXNBY3RpdmVBbmltYXRpb24pOworICAgIGFzc2VydC5lcXVhbCh0YXJnZXQucGFuWCwgMTApOworICAgIGFzc2VydC5lcXVhbCh0YXJnZXQucGFuWSwgMjApOworICB9KTsKKworICB0ZXN0KCd6b29tQmFzaWMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIHRhcmdldC5wYW5ZID0gMzA7CisgICAgdGFyZ2V0LmNsb25lQW5pbWF0aW9uU3RhdGUgPSBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmNsb25lKCk7CisgICAgfTsKKworICAgIHZhciBhID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbigxMCwgMjAsIDMwLCA1LCAxMDApOworCisgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIudWkuYi5BbmltYXRpb25Db250cm9sbGVyKCk7CisgICAgY29udHJvbGxlci50YXJnZXQgPSB0YXJnZXQ7CisgICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihhLCAwKTsKKworICAgIGFzc2VydC5pc0ZhbHNlKGEuYWZmZWN0c1BhblkpOworICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigxMDApOworICAgIGFzc2VydC5lcXVhbCh0YXJnZXQuc2NhbGVYLCA1KTsKKyAgfSk7CisKKyAgdGVzdCgncGFuVGFrZW92ZXInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIHRhcmdldC5jbG9uZUFuaW1hdGlvblN0YXRlID0gZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpOworICAgIH07CisKKyAgICB2YXIgYiA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb24oMTAsIDAsIDEwMCk7CisgICAgdmFyIGEgPSBuZXcgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKDEwLCAwLCAxMDApOworCisgICAgdmFyIGNvbnRyb2xsZXIgPSBuZXcgdHIudWkuYi5BbmltYXRpb25Db250cm9sbGVyKCk7CisgICAgY29udHJvbGxlci50YXJnZXQgPSB0YXJnZXQ7CisgICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihhLCAwKTsKKworICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1big1MCk7CisgICAgY29udHJvbGxlci5xdWV1ZUFuaW1hdGlvbihiLCA1MCk7CisKKyAgICB0ci5iLmZvcmNlUGVuZGluZ1JBRlRhc2tzVG9SdW4oMTAwKTsKKyAgICBhc3NlcnQuaXNUcnVlKGNvbnRyb2xsZXIuaGFzQWN0aXZlQW5pbWF0aW9uKTsKKworICAgIHRyLmIuZm9yY2VQZW5kaW5nUkFGVGFza3NUb1J1bigxNTApOworICAgIGFzc2VydC5pc0ZhbHNlKGNvbnRyb2xsZXIuaGFzQWN0aXZlQW5pbWF0aW9uKTsKKyAgICBhc3NlcnQuZXF1YWwodGFyZ2V0LnBhblgsIDIwKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDQwMTNlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybV90ZXN0Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtID0gdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtOworCisgIHRlc3QoJ2Jhc2ljcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGEucGFuWCA9IDA7CisgICAgYS5wYW5ZID0gMDsKKyAgICBhLnNjYWxlWCA9IDE7CisKKyAgICB2YXIgYiA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICBiLnBhblggPSAxMDsKKyAgICBiLnBhblkgPSAwOworICAgIGIuc2NhbGVYID0gMTsKKworICAgIGFzc2VydC5pc0ZhbHNlKGEuZXF1YWxzKGIpKTsKKyAgICBhc3NlcnQuaXNGYWxzZShhLmFsbW9zdEVxdWFscyhiKSk7CisKKyAgICB2YXIgYyA9IGIuY2xvbmUoKTsKKyAgICBhc3NlcnQuaXNUcnVlKGIuZXF1YWxzKGMpKTsKKyAgICBhc3NlcnQuaXNUcnVlKGIuYWxtb3N0RXF1YWxzKGMpKTsKKworICAgIGMuc2V0KGEpOworICAgIGFzc2VydC5pc1RydWUoYS5lcXVhbHMoYykpOworICAgIGFzc2VydC5pc1RydWUoYS5hbG1vc3RFcXVhbHMoYykpOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfaW50ZXJlc3RfcmFuZ2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfaW50ZXJlc3RfcmFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDA3MjU0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV9pbnRlcmVzdF9yYW5nZS5odG1sCkBAIC0wLDAgKzEsMjQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3JhbmdlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWknLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gU25hcEluZGljYXRvcih5LCBoZWlnaHQpIHsKKyAgICB0aGlzLnkgPSB5OworICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0OworICB9CisKKyAgLyoqCisgICAqIFRoZSBpbnRlcmVzdGluZyBwYXJ0IG9mIHRoZSB3b3JsZC4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBUaW1lbGluZUludGVyZXN0UmFuZ2UodnApIHsKKyAgICB0aGlzLnZpZXdwb3J0XyA9IHZwOworCisgICAgdGhpcy5yYW5nZV8gPSBuZXcgdHIuYi5SYW5nZSgpOworCisgICAgdGhpcy5sZWZ0U2VsZWN0ZWRfID0gZmFsc2U7CisgICAgdGhpcy5yaWdodFNlbGVjdGVkXyA9IGZhbHNlOworCisgICAgdGhpcy5sZWZ0U25hcEluZGljYXRvcl8gPSB1bmRlZmluZWQ7CisgICAgdGhpcy5yaWdodFNuYXBJbmRpY2F0b3JfID0gdW5kZWZpbmVkOworICB9CisKKyAgVGltZWxpbmVJbnRlcmVzdFJhbmdlLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgaXNFbXB0eSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnJhbmdlXy5pc0VtcHR5OworICAgIH0sCisKKyAgICByZXNldDogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnJhbmdlXy5yZXNldCgpOworICAgICAgdGhpcy5sZWZ0U2VsZWN0ZWRfID0gZmFsc2U7CisgICAgICB0aGlzLnJpZ2h0U2VsZWN0ZWRfID0gZmFsc2U7CisgICAgICB0aGlzLmxlZnRTbmFwSW5kaWNhdG9yXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMucmlnaHRTbmFwSW5kaWNhdG9yXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMudmlld3BvcnRfLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKKyAgICB9LAorCisgICAgZ2V0IG1pbigpIHsKKyAgICAgIHJldHVybiB0aGlzLnJhbmdlXy5taW47CisgICAgfSwKKworICAgIHNldCBtaW4obWluKSB7CisgICAgICB0aGlzLnJhbmdlXy5taW4gPSBtaW47CisgICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGdldCBtYXgoKSB7CisgICAgICByZXR1cm4gdGhpcy5yYW5nZV8ubWF4OworICAgIH0sCisKKyAgICBzZXQgbWF4KG1heCkgeworICAgICAgdGhpcy5yYW5nZV8ubWF4ID0gbWF4OworICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0sCisKKyAgICBzZXQ6IGZ1bmN0aW9uKHJhbmdlKSB7CisgICAgICB0aGlzLnJhbmdlXy5yZXNldCgpOworICAgICAgdGhpcy5yYW5nZV8uYWRkUmFuZ2UocmFuZ2UpOworICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0sCisKKyAgICBzZXRNaW5BbmRNYXg6IGZ1bmN0aW9uKG1pbiwgbWF4KSB7CisgICAgICB0aGlzLnJhbmdlXy5taW4gPSBtaW47CisgICAgICB0aGlzLnJhbmdlXy5tYXggPSBtYXg7CisgICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGdldCByYW5nZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnJhbmdlXy5yYW5nZTsKKyAgICB9LAorCisgICAgYXNSYW5nZU9iamVjdDogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgcmFuZ2UgPSBuZXcgdHIuYi5SYW5nZSgpOworICAgICAgcmFuZ2UuYWRkUmFuZ2UodGhpcy5yYW5nZV8pOworICAgICAgcmV0dXJuIHJhbmdlOworICAgIH0sCisKKyAgICBnZXQgbGVmdFNlbGVjdGVkKCkgeworICAgICAgcmV0dXJuIHRoaXMubGVmdFNlbGVjdGVkXzsKKyAgICB9LAorCisgICAgc2V0IGxlZnRTZWxlY3RlZChsZWZ0U2VsZWN0ZWQpIHsKKyAgICAgIGlmICh0aGlzLmxlZnRTZWxlY3RlZF8gPT0gbGVmdFNlbGVjdGVkKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLmxlZnRTZWxlY3RlZF8gPSBsZWZ0U2VsZWN0ZWQ7CisgICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGdldCByaWdodFNlbGVjdGVkKCkgeworICAgICAgcmV0dXJuIHRoaXMucmlnaHRTZWxlY3RlZF87CisgICAgfSwKKworICAgIHNldCByaWdodFNlbGVjdGVkKHJpZ2h0U2VsZWN0ZWQpIHsKKyAgICAgIGlmICh0aGlzLnJpZ2h0U2VsZWN0ZWRfID09IHJpZ2h0U2VsZWN0ZWQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMucmlnaHRTZWxlY3RlZF8gPSByaWdodFNlbGVjdGVkOworICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0sCisKKyAgICBnZXQgbGVmdFNuYXBJbmRpY2F0b3IoKSB7CisgICAgICByZXR1cm4gdGhpcy5sZWZ0U25hcEluZGljYXRvcl87CisgICAgfSwKKworICAgIHNldCBsZWZ0U25hcEluZGljYXRvcihsZWZ0U25hcEluZGljYXRvcikgeworICAgICAgdGhpcy5sZWZ0U25hcEluZGljYXRvcl8gPSBsZWZ0U25hcEluZGljYXRvcjsKKyAgICAgIHRoaXMudmlld3BvcnRfLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKKyAgICB9LAorCisgICAgZ2V0IHJpZ2h0U25hcEluZGljYXRvcigpIHsKKyAgICAgIHJldHVybiB0aGlzLnJpZ2h0U25hcEluZGljYXRvcl87CisgICAgfSwKKworICAgIHNldCByaWdodFNuYXBJbmRpY2F0b3IocmlnaHRTbmFwSW5kaWNhdG9yKSB7CisgICAgICB0aGlzLnJpZ2h0U25hcEluZGljYXRvcl8gPSByaWdodFNuYXBJbmRpY2F0b3I7CisgICAgICB0aGlzLnZpZXdwb3J0Xy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGRyYXc6IGZ1bmN0aW9uKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgeworICAgICAgaWYgKHRoaXMucmFuZ2VfLmlzRW1wdHkpCisgICAgICAgIHJldHVybjsKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworCisgICAgICB2YXIgbWFya2VyTFdvcmxkID0gdGhpcy5taW47CisgICAgICB2YXIgbWFya2VyUldvcmxkID0gdGhpcy5tYXg7CisKKyAgICAgIHZhciBtYXJrZXJMVmlldyA9IE1hdGgucm91bmQoZHQueFdvcmxkVG9WaWV3KG1hcmtlckxXb3JsZCkpOworICAgICAgdmFyIG1hcmtlclJWaWV3ID0gTWF0aC5yb3VuZChkdC54V29ybGRUb1ZpZXcobWFya2VyUldvcmxkKSk7CisKKyAgICAgIGN0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAwLCAwLCAwLjIpJzsKKyAgICAgIGlmIChtYXJrZXJMV29ybGQgPiB2aWV3TFdvcmxkKSB7CisgICAgICAgIGN0eC5maWxsUmVjdChkdC54V29ybGRUb1ZpZXcodmlld0xXb3JsZCksIDAsCisgICAgICAgICAgICBtYXJrZXJMVmlldywgY3R4LmNhbnZhcy5oZWlnaHQpOworICAgICAgfQorCisgICAgICBpZiAobWFya2VyUldvcmxkIDwgdmlld1JXb3JsZCkgeworICAgICAgICBjdHguZmlsbFJlY3QobWFya2VyUlZpZXcsIDAsCisgICAgICAgICAgICBkdC54V29ybGRUb1ZpZXcodmlld1JXb3JsZCksIGN0eC5jYW52YXMuaGVpZ2h0KTsKKyAgICAgIH0KKworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgY3R4LmxpbmVXaWR0aCA9IE1hdGgucm91bmQocGl4ZWxSYXRpbyk7CisgICAgICBpZiAodGhpcy5yYW5nZV8ucmFuZ2UgPiAwKSB7CisgICAgICAgIHRoaXMuZHJhd0xpbmVfKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgY3R4LmNhbnZhcy5oZWlnaHQsIHRoaXMubWluLCB0aGlzLmxlZnRTZWxlY3RlZF8pOworICAgICAgICB0aGlzLmRyYXdMaW5lXyhjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsCisgICAgICAgICAgICAgICAgICAgICAgIGN0eC5jYW52YXMuaGVpZ2h0LCB0aGlzLm1heCwgdGhpcy5yaWdodFNlbGVjdGVkXyk7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLmRyYXdMaW5lXyhjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsCisgICAgICAgICAgICAgICAgICAgICAgIGN0eC5jYW52YXMuaGVpZ2h0LCB0aGlzLm1pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZWZ0U2VsZWN0ZWRfIHx8IHRoaXMucmlnaHRTZWxlY3RlZF8pOworICAgICAgfQorICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7CisgICAgfSwKKworICAgIGRyYXdMaW5lXzogZnVuY3Rpb24oY3R4LCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkLCBoZWlnaHQsIHRzLCBzZWxlY3RlZCkgeworICAgICAgaWYgKHRzIDwgdmlld0xXb3JsZCB8fCB0cyA+PSB2aWV3UldvcmxkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworICAgICAgdmFyIHZpZXdYID0gTWF0aC5yb3VuZChkdC54V29ybGRUb1ZpZXcodHMpKTsKKworICAgICAgLy8gQXBwbHkgc3VicGl4ZWwgdHJhbnNsYXRlIHRvIGdldCBjcmlzcCBsaW5lcy4KKyAgICAgIC8vIGh0dHA6Ly93d3cubW9idG93ZXJzLmNvbS9odG1sNS1jYW52YXMtY3Jpc3AtbGluZXMtZXZlcnktdGltZS8KKyAgICAgIGN0eC5zYXZlKCk7CisgICAgICBjdHgudHJhbnNsYXRlKChNYXRoLnJvdW5kKGN0eC5saW5lV2lkdGgpICUgMikgLyAyLCAwKTsKKworICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgdHIudWkuYi5kcmF3TGluZShjdHgsIHZpZXdYLCAwLCB2aWV3WCwgaGVpZ2h0KTsKKyAgICAgIGlmIChzZWxlY3RlZCkKKyAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigyNTUsIDAsIDApJzsKKyAgICAgIGVsc2UKKyAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigwLCAwLCAwKSc7CisgICAgICBjdHguc3Ryb2tlKCk7CisKKyAgICAgIGN0eC5yZXN0b3JlKCk7CisgICAgfSwKKworICAgIGRyYXdJbmRpY2F0b3JzOiBmdW5jdGlvbihjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKKyAgICAgIGlmICh0aGlzLmxlZnRTbmFwSW5kaWNhdG9yXykgeworICAgICAgICB0aGlzLmRyYXdJbmRpY2F0b3JfKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJhbmdlXy5taW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZWZ0U25hcEluZGljYXRvcl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZWZ0U2VsZWN0ZWRfKTsKKyAgICAgIH0KKyAgICAgIGlmICh0aGlzLnJpZ2h0U25hcEluZGljYXRvcl8pIHsKKyAgICAgICAgdGhpcy5kcmF3SW5kaWNhdG9yXyhjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yYW5nZV8ubWF4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmlnaHRTbmFwSW5kaWNhdG9yXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0U2VsZWN0ZWRfKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZHJhd0luZGljYXRvcl86IGZ1bmN0aW9uKGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeFdvcmxkLCBzaSwgc2VsZWN0ZWQpIHsKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworCisgICAgICB2YXIgdmlld1ggPSBNYXRoLnJvdW5kKGR0LnhXb3JsZFRvVmlldyh4V29ybGQpKTsKKworICAgICAgLy8gQXBwbHkgc3VicGl4ZWwgdHJhbnNsYXRlIHRvIGdldCBjcmlzcCBsaW5lcy4KKyAgICAgIC8vIGh0dHA6Ly93d3cubW9idG93ZXJzLmNvbS9odG1sNS1jYW52YXMtY3Jpc3AtbGluZXMtZXZlcnktdGltZS8KKyAgICAgIGN0eC5zYXZlKCk7CisgICAgICBjdHgudHJhbnNsYXRlKChNYXRoLnJvdW5kKGN0eC5saW5lV2lkdGgpICUgMikgLyAyLCAwKTsKKworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgdmFyIHZpZXdZID0gc2kueSAqIGRldmljZVBpeGVsUmF0aW87CisgICAgICB2YXIgdmlld0hlaWdodCA9IHNpLmhlaWdodCAqIGRldmljZVBpeGVsUmF0aW87CisgICAgICB2YXIgYXJyb3dTaXplID0gNCAqIHBpeGVsUmF0aW87CisKKyAgICAgIGlmIChzZWxlY3RlZCkKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2IoMjU1LCAwLCAwKSc7CisgICAgICBlbHNlCisgICAgICAgIGN0eC5maWxsU3R5bGUgPSAncmdiKDAsIDAsIDApJzsKKyAgICAgIHRyLnVpLmIuZHJhd1RyaWFuZ2xlKGN0eCwKKyAgICAgICAgICB2aWV3WCAtIGFycm93U2l6ZSAqIDAuNzUsIHZpZXdZLAorICAgICAgICAgIHZpZXdYICsgYXJyb3dTaXplICogMC43NSwgdmlld1ksCisgICAgICAgICAgdmlld1gsIHZpZXdZICsgYXJyb3dTaXplKTsKKyAgICAgIGN0eC5maWxsKCk7CisgICAgICB0ci51aS5iLmRyYXdUcmlhbmdsZShjdHgsCisgICAgICAgICAgdmlld1ggLSBhcnJvd1NpemUgKiAwLjc1LCB2aWV3WSArIHZpZXdIZWlnaHQsCisgICAgICAgICAgdmlld1ggKyBhcnJvd1NpemUgKiAwLjc1LCB2aWV3WSArIHZpZXdIZWlnaHQsCisgICAgICAgICAgdmlld1gsIHZpZXdZICsgdmlld0hlaWdodCAtIGFycm93U2l6ZSk7CisgICAgICBjdHguZmlsbCgpOworCisgICAgICBjdHgucmVzdG9yZSgpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFNuYXBJbmRpY2F0b3I6IFNuYXBJbmRpY2F0b3IsCisgICAgVGltZWxpbmVJbnRlcmVzdFJhbmdlOiBUaW1lbGluZUludGVyZXN0UmFuZ2UKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjYTMyMTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbApAQCAtMCwwICsxLDExMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc2V0dGluZ3MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2ZpbHRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwveF9tYXJrZXJfYW5ub3RhdGlvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9ob3RrZXlfY29udHJvbGxlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9tb3VzZV9tb2RlX3NlbGVjdG9yLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3RpbWluZ190b29sLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm1fYW5pbWF0aW9ucy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvbW9kZWxfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9ydWxlcl90cmFjay5odG1sIj4KKworPCEtLQorICBJbnRlcmFjdGl2ZSB2aXN1YWxpemFpdG9uIG9mIE1vZGVsIG9iamVjdHMgYmFzZWQgbG9vc2VseSBvbiBnYW50dCBjaGFydHMuCisgIEVhY2ggdGhyZWFkIGluIHRoZSBNb2RlbCBpcyBnaXZlbiBhIHNldCBvZiBUcmFja3MsIG9uZSBwZXIgc3Vicm93IGluIHRoZQorICB0aHJlYWQuIFRoZSBUaW1lbGluZVRyYWNrVmlldyBjbGFzcyBhY3RzIGFzIGEgY29udHJvbGxlciwgY3JlYXRpbmcgdGhlCisgIGluZGl2aWR1YWwgdHJhY2tzLCB3aGlsZSBUcmFja3MgZG8gYWN0dWFsIGRyYXdpbmcuCisKKyAgVmlzdWFsbHksIHRoZSBUaW1lbGluZVRyYWNrVmlldyBwcm9kdWNlcyAocHJldHRpZXIpIHZpc3VhbGl6YXRpb25zIGxpa2UgdGhlCisgIGZvbGxvd2luZzoKKyAgICBUaHJlYWQxOiAgQUFBQUFBQUFBQSAgICAgICAgIEFBQUFBCisgICAgICAgICAgICAgICAgICBCQkJCICAgICAgICAgICAgICBCQgorICAgIFRocmVhZDI6ICAgICBDQ0NDQ0MgICAgICAgICAgICAgICAgIENDQ0NDCistLT4KKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0ndHItdWktdGltZWxpbmUtdHJhY2stdmlldyc+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKKyAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKworICAgIDpob3N0IDo6Y29udGVudCAqIHsKKyAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgfQorCisgICAgI2RyYWdfYm94IHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMjU1LCAwLjI1KTsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigwLCAwLCA5Nik7CisgICAgICBmb250LXNpemU6IDc1JTsKKyAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICB9CisKKyAgICAjaGludF90ZXh0IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGJvdHRvbTogNnB4OworICAgICAgcmlnaHQ6IDZweDsKKyAgICAgIGZvbnQtc2l6ZTogOHB0OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxjb250ZW50PjwvY29udGVudD4KKworICAgIDxkaXYgaWQ9J2RyYWdfYm94Jz48L2Rpdj4KKyAgICA8ZGl2IGlkPSdoaW50X3RleHQnPjwvZGl2PgorCisgICAgPHR2LXVpLWItaG90a2V5LWNvbnRyb2xsZXIgaWQ9J2hvdGtleV9jb250cm9sbGVyJz4KKyAgICA8L3R2LXVpLWItaG90a2V5LWNvbnRyb2xsZXI+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8gPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgICB0aGlzLm1vZGVsXyA9IHVuZGVmaW5lZDsKKworICAgICAgdGhpcy50aW1lbGluZVZpZXdfID0gdW5kZWZpbmVkOworCisgICAgICB0aGlzLnZpZXdwb3J0XyA9IG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KHRoaXMpOworICAgICAgdGhpcy52aWV3cG9ydERpc3BsYXlUcmFuc2Zvcm1BdE1vdXNlRG93bl8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyA9IHVuZGVmaW5lZDsKKworICAgICAgdGhpcy5ydWxlclRyYWNrQ29udGFpbmVyXyA9CisgICAgICAgICAgbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHRoaXMudmlld3BvcnRfKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5ydWxlclRyYWNrQ29udGFpbmVyXyk7CisgICAgICB0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfLmludmFsaWRhdGUoKTsKKworICAgICAgdGhpcy5ydWxlclRyYWNrXyA9IG5ldyB0ci51aS50cmFja3MuUnVsZXJUcmFjayh0aGlzLnZpZXdwb3J0Xyk7CisgICAgICB0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfLmFwcGVuZENoaWxkKHRoaXMucnVsZXJUcmFja18pOworCisgICAgICB0aGlzLnVwcGVyTW9kZWxUcmFja18gPSBuZXcgdHIudWkudHJhY2tzLk1vZGVsVHJhY2sodGhpcy52aWV3cG9ydF8pOworICAgICAgdGhpcy51cHBlck1vZGVsVHJhY2tfLnVwcGVyTW9kZSA9IHRydWU7CisgICAgICB0aGlzLnJ1bGVyVHJhY2tDb250YWluZXJfLmFwcGVuZENoaWxkKHRoaXMudXBwZXJNb2RlbFRyYWNrXyk7CisKKyAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8gPQorICAgICAgICAgIG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih0aGlzLnZpZXdwb3J0Xyk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8pOworICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKKyAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uaW52YWxpZGF0ZSgpOworCisgICAgICB0aGlzLnZpZXdwb3J0Xy5tb2RlbFRyYWNrQ29udGFpbmVyID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXzsKKworICAgICAgdGhpcy5tb2RlbFRyYWNrXyA9IG5ldyB0ci51aS50cmFja3MuTW9kZWxUcmFjayh0aGlzLnZpZXdwb3J0Xyk7CisgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmFwcGVuZENoaWxkKHRoaXMubW9kZWxUcmFja18pOworCisgICAgICB0aGlzLnRpbWluZ1Rvb2xfID0gbmV3IHRyLnVpLmIuVGltaW5nVG9vbCh0aGlzLnZpZXdwb3J0XywgdGhpcyk7CisKKyAgICAgIHRoaXMuaW5pdE1vdXNlTW9kZVNlbGVjdG9yKCk7CisKKyAgICAgIHRoaXMuaGlkZURyYWdCb3hfKCk7CisKKyAgICAgIHRoaXMuaW5pdEhpbnRUZXh0XygpOworCisgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8gPSB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8uYmluZCh0aGlzKTsKKworICAgICAgdGhpcy5vbkRibENsaWNrXyA9IHRoaXMub25EYmxDbGlja18uYmluZCh0aGlzKTsKKyAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCB0aGlzLm9uRGJsQ2xpY2tfKTsKKworICAgICAgdGhpcy5vbk1vdXNlV2hlZWxfID0gdGhpcy5vbk1vdXNlV2hlZWxfLmJpbmQodGhpcyk7CisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCB0aGlzLm9uTW91c2VXaGVlbF8pOworCisgICAgICB0aGlzLm9uTW91c2VEb3duXyA9IHRoaXMub25Nb3VzZURvd25fLmJpbmQodGhpcyk7CisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd25fKTsKKworICAgICAgdGhpcy5vbk1vdXNlTW92ZV8gPSB0aGlzLm9uTW91c2VNb3ZlXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlXyk7CisKKyAgICAgIHRoaXMub25Ub3VjaFN0YXJ0XyA9IHRoaXMub25Ub3VjaFN0YXJ0Xy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoU3RhcnRfKTsKKworICAgICAgdGhpcy5vblRvdWNoTW92ZV8gPSB0aGlzLm9uVG91Y2hNb3ZlXy5iaW5kKHRoaXMpOworICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlXyk7CisKKyAgICAgIHRoaXMub25Ub3VjaEVuZF8gPSB0aGlzLm9uVG91Y2hFbmRfLmJpbmQodGhpcyk7CisgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kXyk7CisKKworICAgICAgdGhpcy5hZGRIb3RLZXlzXygpOworCisgICAgICB0aGlzLm1vdXNlVmlld1Bvc0F0TW91c2VEb3duXyA9IHt4OiAwLCB5OiAwfTsKKyAgICAgIHRoaXMubGFzdE1vdXNlVmlld1Bvc18gPSB7eDogMCwgeTogMH07CisKKyAgICAgIHRoaXMubGFzdFRvdWNoVmlld1Bvc2l0aW9uc18gPSBbXTsKKworICAgICAgdGhpcy5hbGVydF8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMuaXNQYW5uaW5nQW5kU2Nhbm5pbmdfID0gZmFsc2U7CisgICAgICB0aGlzLmlzWm9vbWluZ18gPSBmYWxzZTsKKyAgICB9LAorCisgICAgaW5pdE1vdXNlTW9kZVNlbGVjdG9yOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgICAndHItdWktYi1tb3VzZS1tb2RlLXNlbGVjdG9yJyk7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy50YXJnZXRFbGVtZW50ID0gdGhpczsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8pOworCisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnBhbicsCisgICAgICAgICAgdGhpcy5vbkJlZ2luUGFuU2Nhbl8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVwYW4nLAorICAgICAgICAgIHRoaXMub25VcGRhdGVQYW5TY2FuXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHBhbicsCisgICAgICAgICAgdGhpcy5vbkVuZFBhblNjYW5fLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnNlbGVjdGlvbicsCisgICAgICAgICAgdGhpcy5vbkJlZ2luU2VsZWN0aW9uXy5iaW5kKHRoaXMpKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXNlbGVjdGlvbicsCisgICAgICAgICAgdGhpcy5vblVwZGF0ZVNlbGVjdGlvbl8uYmluZCh0aGlzKSk7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbmRzZWxlY3Rpb24nLAorICAgICAgICAgIHRoaXMub25FbmRTZWxlY3Rpb25fLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdiZWdpbnpvb20nLAorICAgICAgICAgIHRoaXMub25CZWdpblpvb21fLmJpbmQodGhpcykpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcigndXBkYXRlem9vbScsCisgICAgICAgICAgdGhpcy5vblVwZGF0ZVpvb21fLmJpbmQodGhpcykpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignZW5kem9vbScsCisgICAgICAgICAgdGhpcy5vbkVuZFpvb21fLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5hZGRFdmVudExpc3RlbmVyKCdlbnRlcnRpbWluZycsCisgICAgICAgICAgdGhpcy50aW1pbmdUb29sXy5vbkVudGVyVGltaW5nLmJpbmQodGhpcy50aW1pbmdUb29sXykpOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uYWRkRXZlbnRMaXN0ZW5lcignYmVnaW50aW1pbmcnLAorICAgICAgICAgIHRoaXMudGltaW5nVG9vbF8ub25CZWdpblRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZXRpbWluZycsCisgICAgICAgICAgdGhpcy50aW1pbmdUb29sXy5vblVwZGF0ZVRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZHRpbWluZycsCisgICAgICAgICAgdGhpcy50aW1pbmdUb29sXy5vbkVuZFRpbWluZy5iaW5kKHRoaXMudGltaW5nVG9vbF8pKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLmFkZEV2ZW50TGlzdGVuZXIoJ2V4aXR0aW1pbmcnLAorICAgICAgICAgIHRoaXMudGltaW5nVG9vbF8ub25FeGl0VGltaW5nLmJpbmQodGhpcy50aW1pbmdUb29sXykpOworCisgICAgICB2YXIgbSA9IHRyLnVpLmIuTU9VU0VfU0VMRUNUT1JfTU9ERTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnN1cHBvcnRlZE1vZGVNYXNrID0KKyAgICAgICAgICBtLlNFTEVDVElPTiB8IG0uUEFOU0NBTiB8IG0uWk9PTSB8IG0uVElNSU5HOworICAgICAgdGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8uc2V0dGluZ3NLZXkgPQorICAgICAgICAgICd0aW1lbGluZVRyYWNrVmlldy5tb3VzZU1vZGVTZWxlY3Rvcic7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRLZXlDb2RlRm9yTW9kZShtLlBBTlNDQU4sICcyJy5jaGFyQ29kZUF0KDApKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldEtleUNvZGVGb3JNb2RlKG0uU0VMRUNUSU9OLCAnMScuY2hhckNvZGVBdCgwKSk7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRLZXlDb2RlRm9yTW9kZShtLlpPT00sICczJy5jaGFyQ29kZUF0KDApKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldEtleUNvZGVGb3JNb2RlKG0uVElNSU5HLCAnNCcuY2hhckNvZGVBdCgwKSk7CisKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldE1vZGlmaWVyRm9yQWx0ZXJuYXRlTW9kZSgKKyAgICAgICAgICBtLlNFTEVDVElPTiwgdHIudWkuYi5NT0RJRklFUi5TSElGVCk7CisgICAgICB0aGlzLm1vdXNlTW9kZVNlbGVjdG9yXy5zZXRNb2RpZmllckZvckFsdGVybmF0ZU1vZGUoCisgICAgICAgICAgbS5QQU5TQ0FOLCB0ci51aS5iLk1PRElGSUVSLlNQQUNFKTsKKyAgICAgIHRoaXMubW91c2VNb2RlU2VsZWN0b3JfLnNldE1vZGlmaWVyRm9yQWx0ZXJuYXRlTW9kZSgKKyAgICAgICAgICBtLlpPT00sIHRyLnVpLmIuTU9ESUZJRVIuQ01EX09SX0NUUkwpOworICAgIH0sCisKKyAgICBnZXQgYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIoKSB7CisgICAgICByZXR1cm4gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87CisgICAgfSwKKworICAgIHNldCBicnVzaGluZ1N0YXRlQ29udHJvbGxlcihicnVzaGluZ1N0YXRlQ29udHJvbGxlcikgeworICAgICAgaWYgKHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKSB7CisgICAgICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZF8pOworICAgICAgfQorICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8gPSBicnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKyAgICAgIGlmICh0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXykgeworICAgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWRfKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgc2V0IHRpbWVsaW5lVmlldyh2aWV3KSB7CisgICAgICB0aGlzLnRpbWVsaW5lVmlld18gPSB2aWV3OworICAgIH0sCisKKyAgICBvblNlbGVjdGlvbkNoYW5nZWRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc2hvd0hpbnRUZXh0XygnUHJlc3MgXCdtXCcgdG8gbWFyayBjdXJyZW50IHNlbGVjdGlvbicpOworICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0sCisKKyAgICBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbikgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdETyBOT1QgQ0FMTCBUSElTJyk7CisgICAgfSwKKworICAgIHNldCBoaWdobGlnaHQoaGlnaGxpZ2h0KSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RPIE5PVCBDQUxMIFRISVMnKTsKKyAgICB9LAorCisgICAgZGV0YWNoOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMubW9kZWxUcmFja18uZGV0YWNoKCk7CisgICAgICB0aGlzLnVwcGVyTW9kZWxUcmFja18uZGV0YWNoKCk7CisKKyAgICAgIHRoaXMudmlld3BvcnRfLmRldGFjaCgpOworICAgIH0sCisKKyAgICBnZXQgdmlld3BvcnQoKSB7CisgICAgICByZXR1cm4gdGhpcy52aWV3cG9ydF87CisgICAgfSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsXzsKKyAgICB9LAorCisgICAgc2V0IG1vZGVsKG1vZGVsKSB7CisgICAgICBpZiAoIW1vZGVsKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZGVsIGNhbm5vdCBiZSB1bmRlZmluZWQnKTsKKworICAgICAgdmFyIG1vZGVsSW5zdGFuY2VDaGFuZ2VkID0gdGhpcy5tb2RlbF8gIT09IG1vZGVsOworICAgICAgdGhpcy5tb2RlbF8gPSBtb2RlbDsKKyAgICAgIHRoaXMubW9kZWxUcmFja18ubW9kZWwgPSBtb2RlbDsKKyAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXy5tb2RlbCA9IG1vZGVsOworCisgICAgICAvLyBTZXQgdXAgYSByZWFzb25hYmxlIHZpZXdwb3J0LgorICAgICAgaWYgKG1vZGVsSW5zdGFuY2VDaGFuZ2VkKQorICAgICAgICB0aGlzLnZpZXdwb3J0Xy5zZXRXaGVuUG9zc2libGUodGhpcy5zZXRJbml0aWFsVmlld3BvcnRfLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7CisgICAgICByZXR1cm4gdGhpcy5tb2RlbFRyYWNrXy5oYXNWaXNpYmxlQ29udGVudCB8fAorICAgICAgICAgIHRoaXMudXBwZXJNb2RlbFRyYWNrXy5oYXNWaXNpYmxlQ29udGVudDsKKyAgICB9LAorCisgICAgc2V0SW5pdGlhbFZpZXdwb3J0XzogZnVuY3Rpb24oKSB7CisgICAgICAvLyBXZSBuZWVkIHRoZSBjYW52YXMgc2l6ZSB0byBiZSB1cC10by1kYXRlIGF0IHRoaXMgcG9pbnQuIFdlIG1heWJlIGluCisgICAgICAvLyBoZXJlIGJlZm9yZSB0aGUgcmFmIGZpcmVzLCBzbyB0aGUgc2l6ZSBtYXkgaGF2ZSBub3QgYmVlbiB1cGRhdGVkIHNpbmNlCisgICAgICAvLyB0aGUgY2FudmFzIHdhcyByZXNpemVkLgorICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy51cGRhdGVDYW52YXNTaXplSWZOZWVkZWRfKCk7CisgICAgICB2YXIgdyA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoOworCisgICAgICB2YXIgbWluOworICAgICAgdmFyIHJhbmdlOworCisgICAgICBpZiAodGhpcy5tb2RlbF8uYm91bmRzLmlzRW1wdHkpIHsKKyAgICAgICAgbWluID0gMDsKKyAgICAgICAgcmFuZ2UgPSAxMDAwOworICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGVsXy5ib3VuZHMucmFuZ2UgPT09IDApIHsKKyAgICAgICAgbWluID0gdGhpcy5tb2RlbF8uYm91bmRzLm1pbjsKKyAgICAgICAgcmFuZ2UgPSAxMDAwOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgbWluID0gdGhpcy5tb2RlbF8uYm91bmRzLm1pbjsKKyAgICAgICAgcmFuZ2UgPSB0aGlzLm1vZGVsXy5ib3VuZHMucmFuZ2U7CisgICAgICB9CisKKyAgICAgIHZhciBib29zdCA9IHJhbmdlICogMC4xNTsKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2V0KHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtKTsKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8ueFNldFdvcmxkQm91bmRzKAorICAgICAgICAgIG1pbiAtIGJvb3N0LCBtaW4gKyByYW5nZSArIGJvb3N0LCB3KTsKKyAgICAgIHRoaXMudmlld3BvcnRfLnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseSh0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtGaWx0ZXJ9IGZpbHRlciBUaGUgZmlsdGVyIHRvIHVzZSBmb3IgZmluZGluZyBtYXRjaGVzLgorICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gVGhlIHNlbGVjdGlvbiB0byBhZGQgbWF0Y2hlcyB0by4KKyAgICAgKiBAcmV0dXJuIHtUYXNrfSB3aGljaCBwZXJmb3JtcyB0aGUgZmlsdGVyaW5nLgorICAgICAqLworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgICB2YXIgbW9kZWxUcmFjayA9IHRoaXMubW9kZWxUcmFja187CisgICAgICB2YXIgZmlyc3RUID0gbW9kZWxUcmFjay5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uQXNUYXNrKAorICAgICAgICAgIGZpbHRlciwgc2VsZWN0aW9uKTsKKyAgICAgIHZhciBsYXN0VCA9IGZpcnN0VC5hZnRlcihmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy51cHBlck1vZGVsVHJhY2tfLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oCisgICAgICAgICAgZmlsdGVyLCBzZWxlY3Rpb24pOworCisgICAgICB9LCB0aGlzKTsKKyAgICAgIHJldHVybiBmaXJzdFQ7CisgICAgfSwKKworICAgIG9uTW91c2VNb3ZlXzogZnVuY3Rpb24oZSkgeworICAgICAgLy8gWm9vbWluZyByZXF1aXJlcyB0aGUgZGVsdGEgc2luY2UgdGhlIGxhc3QgbW91c2Vtb3ZlIHNvIHdlIG5lZWQgdG8gYXZvaWQKKyAgICAgIC8vIHRyYWNraW5nIGl0IHdoZW4gdGhlIHpvb20gaW50ZXJhY3Rpb24gaXMgYWN0aXZlLgorICAgICAgaWYgKHRoaXMuaXNab29taW5nXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTsKKyAgICB9LAorCisgICAgb25Ub3VjaFN0YXJ0XzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5zdG9yZUxhc3RUb3VjaFBvc2l0aW9uc18oZSk7CisgICAgICB0aGlzLmZvY3VzRWxlbWVudHNfKCk7CisgICAgfSwKKworICAgIG9uVG91Y2hNb3ZlXzogZnVuY3Rpb24oZSkgeworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgdGhpcy5vblVwZGF0ZVRyYW5zZm9ybUZvclRvdWNoXyhlKTsKKyAgICB9LAorCisgICAgb25Ub3VjaEVuZF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMuc3RvcmVMYXN0VG91Y2hQb3NpdGlvbnNfKGUpOworICAgICAgdGhpcy5mb2N1c0VsZW1lbnRzXygpOworICAgIH0sCisKKyAgICBhZGRIb3RLZXlzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmFkZEtleURvd25Ib3RLZXlzXygpOworICAgICAgdGhpcy5hZGRLZXlQcmVzc0hvdEtleXNfKCk7CisgICAgfSwKKworICAgIGFkZEtleVByZXNzSG90S2V5c186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGFkZEJpbmRpbmcgPSBmdW5jdGlvbihkaWN0KSB7CisgICAgICAgIGRpY3QuZXZlbnRUeXBlID0gJ2tleXByZXNzJzsKKyAgICAgICAgZGljdC51c2VDYXB0dXJlID0gZmFsc2U7CisgICAgICAgIGRpY3QudGhpc0FyZyA9IHRoaXM7CisgICAgICAgIHZhciBiaW5kaW5nID0gbmV3IHRyLnVpLmIuSG90S2V5KGRpY3QpOworICAgICAgICB0aGlzLiQuaG90a2V5X2NvbnRyb2xsZXIuYWRkSG90S2V5KGJpbmRpbmcpOworICAgICAgfS5iaW5kKHRoaXMpOworCisgICAgICBhZGRCaW5kaW5nKHsKKyAgICAgICAga2V5Q29kZXM6IFsndycuY2hhckNvZGVBdCgwKSwgJywnLmNoYXJDb2RlQXQoMCldLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMuem9vbUJ5XygxLjUsIHRydWUpOworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgICAgICBhZGRCaW5kaW5nKHsKKyAgICAgICAga2V5Q29kZXM6IFsncycuY2hhckNvZGVBdCgwKSwgJ28nLmNoYXJDb2RlQXQoMCldLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMuem9vbUJ5XygxIC8gMS41LCB0cnVlKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KTsKKworICAgICAgYWRkQmluZGluZyh7CisgICAgICAgIGtleUNvZGU6ICdnJy5jaGFyQ29kZUF0KDApLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMub25HcmlkVG9nZ2xlXyh0cnVlKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KTsKKworICAgICAgYWRkQmluZGluZyh7CisgICAgICAgIGtleUNvZGU6ICdHJy5jaGFyQ29kZUF0KDApLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMub25HcmlkVG9nZ2xlXyhmYWxzZSk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGFkZEJpbmRpbmcoeworICAgICAgICBrZXlDb2RlczogWydXJy5jaGFyQ29kZUF0KDApLCAnPCcuY2hhckNvZGVBdCgwKV0sCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhpcy56b29tQnlfKDEwLCB0cnVlKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KTsKKworICAgICAgYWRkQmluZGluZyh7CisgICAgICAgIGtleUNvZGVzOiBbJ1MnLmNoYXJDb2RlQXQoMCksICdPJy5jaGFyQ29kZUF0KDApXSwKKyAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB0aGlzLnpvb21CeV8oMSAvIDEwLCB0cnVlKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KTsKKworICAgICAgYWRkQmluZGluZyh7CisgICAgICAgIGtleUNvZGU6ICdhJy5jaGFyQ29kZUF0KDApLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMucXVldWVTbW9vdGhQYW5fKHRoaXMudmlld1dpZHRoXyAqIDAuMywgMCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGFkZEJpbmRpbmcoeworICAgICAgICBrZXlDb2RlczogWydkJy5jaGFyQ29kZUF0KDApLCAnZScuY2hhckNvZGVBdCgwKV0sCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhpcy5xdWV1ZVNtb290aFBhbl8odGhpcy52aWV3V2lkdGhfICogLTAuMywgMCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGFkZEJpbmRpbmcoeworICAgICAgICBrZXlDb2RlOiAnQScuY2hhckNvZGVBdCgwKSwKKyAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB0aGlzLnF1ZXVlU21vb3RoUGFuXyh2aWV3V2lkdGggKiAwLjUsIDApOworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgICAgICBhZGRCaW5kaW5nKHsKKyAgICAgICAga2V5Q29kZTogJ0QnLmNoYXJDb2RlQXQoMCksCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhpcy5xdWV1ZVNtb290aFBhbl8odmlld1dpZHRoICogLTAuNSwgMCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGFkZEJpbmRpbmcoeworICAgICAgICBrZXlDb2RlOiAnMCcuY2hhckNvZGVBdCgwKSwKKyAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB0aGlzLnNldEluaXRpYWxWaWV3cG9ydF8oKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KTsKKworICAgICAgYWRkQmluZGluZyh7CisgICAgICAgIGtleUNvZGU6ICdmJy5jaGFyQ29kZUF0KDApLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMuem9vbVRvU2VsZWN0aW9uKCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGFkZEJpbmRpbmcoeworICAgICAgICBrZXlDb2RlOiAnbScuY2hhckNvZGVBdCgwKSwKKyAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB0aGlzLnNldEN1cnJlbnRTZWxlY3Rpb25Bc0ludGVyZXN0UmFuZ2VfKCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGFkZEJpbmRpbmcoeworICAgICAgICBrZXlDb2RlOiAnaCcuY2hhckNvZGVBdCgwKSwKKyAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICB0aGlzLnRvZ2dsZUhpZ2hEZXRhaWxzXygpOworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXQgdmlld1dpZHRoXygpIHsKKyAgICAgIHJldHVybiB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy5jbGllbnRXaWR0aDsKKyAgICB9LAorCisgICAgYWRkS2V5RG93bkhvdEtleXNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBhZGRCaW5kaW5nID0gZnVuY3Rpb24oZGljdCkgeworICAgICAgICBkaWN0LmV2ZW50VHlwZSA9ICdrZXlkb3duJzsKKyAgICAgICAgZGljdC51c2VDYXB0dXJlID0gZmFsc2U7CisgICAgICAgIGRpY3QudGhpc0FyZyA9IHRoaXM7CisgICAgICAgIHZhciBiaW5kaW5nID0gbmV3IHRyLnVpLmIuSG90S2V5KGRpY3QpOworICAgICAgICB0aGlzLiQuaG90a2V5X2NvbnRyb2xsZXIuYWRkSG90S2V5KGJpbmRpbmcpOworICAgICAgfS5iaW5kKHRoaXMpOworCisgICAgICBhZGRCaW5kaW5nKHsKKyAgICAgICAga2V5Q29kZTogMzcsIC8vIExlZnQgYXJyb3cuCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdmFyIGN1clNlbCA9IHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnNlbGVjdGlvbjsKKyAgICAgICAgICB2YXIgc2VsID0gdGhpcy52aWV3cG9ydC5nZXRTaGlmdGVkU2VsZWN0aW9uKGN1clNlbCwgLTEpOworCisgICAgICAgICAgaWYgKHNlbCkgeworICAgICAgICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsKTsKKyAgICAgICAgICAgIHRoaXMucGFuVG9TZWxlY3Rpb24oKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5xdWV1ZVNtb290aFBhbl8odGhpcy52aWV3V2lkdGhfICogMC4zLCAwKTsKKyAgICAgICAgICB9CisgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgICAgICBhZGRCaW5kaW5nKHsKKyAgICAgICAga2V5Q29kZTogMzksIC8vIFJpZ2h0IGFycm93LgorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHZhciBjdXJTZWwgPSB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5zZWxlY3Rpb247CisgICAgICAgICAgdmFyIHNlbCA9IHRoaXMudmlld3BvcnQuZ2V0U2hpZnRlZFNlbGVjdGlvbihjdXJTZWwsIDEpOworICAgICAgICAgIGlmIChzZWwpIHsKKyAgICAgICAgICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXIuY2hhbmdlU2VsZWN0aW9uRnJvbVRpbWVsaW5lKHNlbCk7CisgICAgICAgICAgICB0aGlzLnBhblRvU2VsZWN0aW9uKCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMucXVldWVTbW9vdGhQYW5fKC10aGlzLnZpZXdXaWR0aF8gKiAwLjMsIDApOworICAgICAgICAgIH0KKyAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgfSwKKworICAgIG9uRGJsQ2xpY2tfOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAodGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8ubW9kZSAhPT0KKyAgICAgICAgICB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBjdXJTZWxlY3Rpb24gPSB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5zZWxlY3Rpb247CisgICAgICBpZiAoIWN1clNlbGVjdGlvbi5sZW5ndGggfHwgIWN1clNlbGVjdGlvblswXS50aXRsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICB2YXIgZmlsdGVyID0gbmV3IHRyLmMuRXhhY3RUaXRsZUZpbHRlcihjdXJTZWxlY3Rpb25bMF0udGl0bGUpOworICAgICAgdGhpcy5tb2RlbFRyYWNrXy5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uKGZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uKTsKKworICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsZWN0aW9uKTsKKyAgICB9LAorCisgICAgb25Nb3VzZVdoZWVsXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKCFlLmFsdEtleSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgZGVsdGEgPSBlLndoZWVsRGVsdGEgLyAxMjA7CisgICAgICB2YXIgem9vbVNjYWxlID0gTWF0aC5wb3coMS41LCBkZWx0YSk7CisgICAgICB0aGlzLnpvb21CeV8oem9vbVNjYWxlKTsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9LAorCisgICAgb25Nb3VzZURvd25fOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAodGhpcy5tb3VzZU1vZGVTZWxlY3Rvcl8ubW9kZSAhPT0KKyAgICAgICAgICB0ci51aS5iLk1PVVNFX1NFTEVDVE9SX01PREUuU0VMRUNUSU9OKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIE1vdXNlIGRvd24gbXVzdCBzdGFydCBvbiBydWxlciB0cmFjayBmb3IgY3Jvc3NoYWlyIGd1aWRlIGxpbmVzIHRvIGRyYXcuCisgICAgICBpZiAoZS50YXJnZXQgIT09IHRoaXMucnVsZXJUcmFja18pCisgICAgICAgIHJldHVybjsKKworICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHN0YXJ0IGEgc2VsZWN0aW9uIGRyYWcgZXZlbnQgaGVyZS4KKyAgICAgIHRoaXMuZHJhZ0JlZ2luRXZlbnRfID0gdW5kZWZpbmVkOworCisgICAgICAvLyBSZW1vdmUgbmF2IHN0cmluZyBtYXJrZXIgaWYgaXQgZXhpc3RzLCBzaW5jZSB3ZSdyZSBjbGVhcmluZyB0aGUKKyAgICAgIC8vIGZpbmQgY29udHJvbCBib3guCisgICAgICBpZiAodGhpcy54TmF2U3RyaW5nTWFya2VyXykgeworICAgICAgICB0aGlzLm1vZGVsLnJlbW92ZUFubm90YXRpb24odGhpcy54TmF2U3RyaW5nTWFya2VyXyk7CisgICAgICAgIHRoaXMueE5hdlN0cmluZ01hcmtlcl8gPSB1bmRlZmluZWQ7CisgICAgICB9CisKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworICAgICAgdHIudWkuYi50cmFja01vdXNlTW92ZXNVbnRpbE1vdXNlVXAoZnVuY3Rpb24oZSkgeyAvLyBNb3VzZSBtb3ZlIGhhbmRsZXIuCisgICAgICAgIC8vIElmIG1vdXNlIGV2ZW50IGlzIG9uIHJ1bGVyLCBkb24ndCBkbyBhbnl0aGluZy4KKyAgICAgICAgaWYgKGUudGFyZ2V0ID09PSB0aGlzLnJ1bGVyVHJhY2tfKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgcmVsYXRpdmVQb3NpdGlvbiA9IHRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7CisgICAgICAgIHZhciBsb2MgPSB0ci5tb2RlbC5Mb2NhdGlvbi5mcm9tVmlld0Nvb3JkaW5hdGVzKAorICAgICAgICAgICAgdGhpcy52aWV3cG9ydF8sIHJlbGF0aXZlUG9zaXRpb24ueCwgcmVsYXRpdmVQb3NpdGlvbi55KTsKKyAgICAgICAgLy8gTm90IGFsbCBwb2ludHMgb24gdGhlIHRpbWVsaW5lIHJlcHJlc2VudHMgYSB2YWxpZCBsb2NhdGlvbi4KKyAgICAgICAgLy8gZXguIHByb2Nlc3MgaGVhZGVyIHRyYWNrcywgbGV0dGVyIGRvdCB0cmFja3MuCisgICAgICAgIGlmICghbG9jKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgdGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXyA9CisgICAgICAgICAgICAgIG5ldyB0ci5tb2RlbC5YTWFya2VyQW5ub3RhdGlvbihsb2MueFdvcmxkKTsKKyAgICAgICAgICB0aGlzLm1vZGVsLmFkZEFubm90YXRpb24odGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdGhpcy5ndWlkZUxpbmVBbm5vdGF0aW9uXy50aW1lc3RhbXAgPSBsb2MueFdvcmxkOworICAgICAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uaW52YWxpZGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2V0IHRoZSBmaW5kY29udHJvbCdzIHRleHQgdG8gbmF2IHN0cmluZyBvZiBjdXJyZW50IHN0YXRlLgorICAgICAgICB2YXIgc3RhdGUgPSBuZXcgdHIudWkuYi5VSVN0YXRlKGxvYywKKyAgICAgICAgICAgIHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnNjYWxlWCk7CisgICAgICAgIHRoaXMudGltZWxpbmVWaWV3Xy5zZXRGaW5kQ3RsVGV4dCgKKyAgICAgICAgICAgIHN0YXRlLnRvVXNlckZyaWVuZGx5U3RyaW5nKHRoaXMudmlld3BvcnRfKSk7CisgICAgICB9LmJpbmQodGhpcyksCisgICAgICB1bmRlZmluZWQsIC8vIE1vdXNlIHVwIGhhbmRsZXIuCisgICAgICBmdW5jdGlvbiBvbktleVVwRHVyaW5nRHJhZygpIHsKKyAgICAgICAgaWYgKHRoaXMuZHJhZ0JlZ2luRXZlbnRfKSB7CisgICAgICAgICAgdGhpcy5zZXREcmFnQm94UG9zaXRpb25fKHRoaXMuZHJhZ0JveFhTdGFydF8sIHRoaXMuZHJhZ0JveFlTdGFydF8sCisgICAgICAgICAgICAgIHRoaXMuZHJhZ0JveFhFbmRfLCB0aGlzLmRyYWdCb3hZRW5kXyk7CisgICAgICAgIH0KKyAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIHF1ZXVlU21vb3RoUGFuXzogZnVuY3Rpb24odmlld0RlbHRhWCwgZGVsdGFZKSB7CisgICAgICB2YXIgZGVsdGFYID0gdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdWZWN0b3JUb1dvcmxkKAorICAgICAgICAgIHZpZXdEZWx0YVgpOworICAgICAgdmFyIGFuaW1hdGlvbiA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1QYW5BbmltYXRpb24oCisgICAgICAgICAgZGVsdGFYLCBkZWx0YVkpOworICAgICAgdGhpcy52aWV3cG9ydF8ucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFpvb20gaW4gb3Igb3V0IG9uIHRoZSB0aW1lbGluZSBieSB0aGUgZ2l2ZW4gc2NhbGUgZmFjdG9yLgorICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzY2FsZSBUaGUgc2NhbGUgZmFjdG9yIHRvIGFwcGx5LiAgSWYgPDEsIHpvb21zIG91dC4KKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFdoZXRoZXIgdG8gY2hhbmdlIHRoZSB6b29tIGxldmVsIHNtb290aGx5LgorICAgICAqLworICAgIHpvb21CeV86IGZ1bmN0aW9uKHNjYWxlLCBzbW9vdGgpIHsKKyAgICAgIGlmIChzY2FsZSA8PSAwKSB7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgc21vb3RoID0gISFzbW9vdGg7CisgICAgICB2YXIgdnAgPSB0aGlzLnZpZXdwb3J0XzsKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKworICAgICAgdmFyIGdvYWxGb2NhbFBvaW50WFZpZXcgPSB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfLnggKiBwaXhlbFJhdGlvOworICAgICAgdmFyIGdvYWxGb2NhbFBvaW50WFdvcmxkID0gdnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKAorICAgICAgICAgIGdvYWxGb2NhbFBvaW50WFZpZXcpOworICAgICAgaWYgKHNtb290aCkgeworICAgICAgICB2YXIgYW5pbWF0aW9uID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVpvb21Ub0FuaW1hdGlvbigKKyAgICAgICAgICAgIGdvYWxGb2NhbFBvaW50WFdvcmxkLCBnb2FsRm9jYWxQb2ludFhWaWV3LAorICAgICAgICAgICAgdnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSwKKyAgICAgICAgICAgIHNjYWxlKTsKKyAgICAgICAgdnAucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnNldCh2cC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSk7CisgICAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2NhbGVYICo9IHNjYWxlOworICAgICAgICB0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnhQYW5Xb3JsZFBvc1RvVmlld1BvcygKKyAgICAgICAgICAgIGdvYWxGb2NhbFBvaW50WFdvcmxkLCBnb2FsRm9jYWxQb2ludFhWaWV3LCB0aGlzLnZpZXdXaWR0aF8pOworICAgICAgICB2cC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGhpcy5kaXNwbGF5VHJhbnNmb3JtXyk7CisgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFpvb20gaW50byB0aGUgY3VycmVudCBzZWxlY3Rpb24uCisgICAgICovCisgICAgem9vbVRvU2VsZWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb25PZkludGVyZXN0Lmxlbmd0aCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgYm91bmRzID0gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb25PZkludGVyZXN0LmJvdW5kczsKKyAgICAgIGlmICghYm91bmRzLnJhbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciB3b3JsZENlbnRlciA9IGJvdW5kcy5jZW50ZXI7CisgICAgICB2YXIgdmlld0NlbnRlciA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoIC8gMjsKKyAgICAgIHZhciBhZGp1c3RlZFdvcmxkUmFuZ2UgPSBib3VuZHMucmFuZ2UgKiAxLjI1OworICAgICAgdmFyIG5ld1NjYWxlID0gdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jYW52YXMud2lkdGggLworICAgICAgICAgIGFkanVzdGVkV29ybGRSYW5nZTsKKyAgICAgIHZhciB6b29tSW5SYXRpbyA9IG5ld1NjYWxlIC8KKyAgICAgICAgICB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5zY2FsZVg7CisKKyAgICAgIHZhciBhbmltYXRpb24gPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtWm9vbVRvQW5pbWF0aW9uKAorICAgICAgICAgIHdvcmxkQ2VudGVyLCB2aWV3Q2VudGVyLAorICAgICAgICAgIHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLnBhblksCisgICAgICAgICAgem9vbUluUmF0aW8pOworICAgICAgdGhpcy52aWV3cG9ydF8ucXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uKGFuaW1hdGlvbik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFBhbiB0aGUgdmlldyBzbyB0aGUgY3VycmVudCBzZWxlY3Rpb24gYmVjb21lcyB2aXNpYmxlLgorICAgICAqLworICAgIHBhblRvU2VsZWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb25PZkludGVyZXN0Lmxlbmd0aCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgYm91bmRzID0gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlci5zZWxlY3Rpb25PZkludGVyZXN0LmJvdW5kczsKKyAgICAgIHZhciB3b3JsZENlbnRlciA9IGJvdW5kcy5jZW50ZXI7CisgICAgICB2YXIgdmlld1dpZHRoID0gdGhpcy52aWV3V2lkdGhfOworCisgICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0Xy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKKyAgICAgIGlmIChmYWxzZSAmJiAhYm91bmRzLnJhbmdlKSB7CisgICAgICAgIGlmIChkdC54V29ybGRUb1ZpZXcoYm91bmRzLmNlbnRlcikgPCAwIHx8CisgICAgICAgICAgICBkdC54V29ybGRUb1ZpZXcoYm91bmRzLmNlbnRlcikgPiB2aWV3V2lkdGgpIHsKKyAgICAgICAgICB0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fLnNldChkdCk7CisgICAgICAgICAgdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy54UGFuV29ybGRQb3NUb1ZpZXdQb3MoCisgICAgICAgICAgICAgIHdvcmxkQ2VudGVyLCAnY2VudGVyJywgdmlld1dpZHRoKTsKKyAgICAgICAgICB2YXIgZGVsdGFYID0gdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5wYW5YIC0gZHQucGFuWDsKKyAgICAgICAgICB2YXIgYW5pbWF0aW9uID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybVBhbkFuaW1hdGlvbigKKyAgICAgICAgICAgICAgZGVsdGFYLCAwKTsKKyAgICAgICAgICB0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2V0KGR0KTsKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8ueFBhbldvcmxkQm91bmRzSW50b1ZpZXcoCisgICAgICAgICAgYm91bmRzLm1pbiwKKyAgICAgICAgICBib3VuZHMubWF4LAorICAgICAgICAgIHZpZXdXaWR0aCk7CisgICAgICB2YXIgZGVsdGFYID0gdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5wYW5YIC0gZHQucGFuWDsKKyAgICAgIHZhciBhbmltYXRpb24gPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtUGFuQW5pbWF0aW9uKAorICAgICAgICAgIGRlbHRhWCwgMCk7CisgICAgICB0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICB9LAorCisgICAgbmF2VG9Qb3NpdGlvbjogZnVuY3Rpb24odWlTdGF0ZSwgc2hvd05hdkxpbmUpIHsKKyAgICAgIHZhciBsb2NhdGlvbiA9IHVpU3RhdGUubG9jYXRpb247CisgICAgICB2YXIgc2NhbGVYID0gdWlTdGF0ZS5zY2FsZVg7CisgICAgICB2YXIgdHJhY2sgPSBsb2NhdGlvbi5nZXRDb250YWluaW5nVHJhY2sodGhpcy52aWV3cG9ydF8pOworCisgICAgICB2YXIgd29ybGRDZW50ZXIgPSBsb2NhdGlvbi54V29ybGQ7CisgICAgICB2YXIgdmlld0NlbnRlciA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uY2FudmFzLndpZHRoIC8gNTsKKyAgICAgIHZhciB6b29tSW5SYXRpbyA9IHNjYWxlWCAvCisgICAgICAgICAgdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0uc2NhbGVYOworCisgICAgICAvLyBWZXJ0aWNhbGx5IHNjcm9sbCBzbyB0cmFjayBpcyBpbiB2aWV3LgorICAgICAgdHJhY2suc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworCisgICAgICAvLyBQZXJmb3JtIHpvb20gYW5kIHBhblggYW5pbWF0aW9uLgorICAgICAgdmFyIGFuaW1hdGlvbiA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm1ab29tVG9BbmltYXRpb24oCisgICAgICAgICAgd29ybGRDZW50ZXIsIHZpZXdDZW50ZXIsCisgICAgICAgICAgdGhpcy52aWV3cG9ydF8uY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSwKKyAgICAgICAgICB6b29tSW5SYXRpbyk7CisgICAgICB0aGlzLnZpZXdwb3J0Xy5xdWV1ZURpc3BsYXlUcmFuc2Zvcm1BbmltYXRpb24oYW5pbWF0aW9uKTsKKworICAgICAgaWYgKCFzaG93TmF2TGluZSkKKyAgICAgICAgcmV0dXJuOworICAgICAgLy8gQWRkIGFuIFggTWFya2VyIEFubm90YXRpb24gYXQgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXAuCisgICAgICBpZiAodGhpcy54TmF2U3RyaW5nTWFya2VyXykKKyAgICAgICAgdGhpcy5tb2RlbC5yZW1vdmVBbm5vdGF0aW9uKHRoaXMueE5hdlN0cmluZ01hcmtlcl8pOworICAgICAgdGhpcy54TmF2U3RyaW5nTWFya2VyXyA9CisgICAgICAgICAgbmV3IHRyLm1vZGVsLlhNYXJrZXJBbm5vdGF0aW9uKHdvcmxkQ2VudGVyKTsKKyAgICAgIHRoaXMubW9kZWwuYWRkQW5ub3RhdGlvbih0aGlzLnhOYXZTdHJpbmdNYXJrZXJfKTsKKyAgICB9LAorCisgICAgc2V0Q3VycmVudFNlbGVjdGlvbkFzSW50ZXJlc3RSYW5nZV86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbGVjdGlvbkJvdW5kcyA9IHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnNlbGVjdGlvbi5ib3VuZHM7CisgICAgICBpZiAoc2VsZWN0aW9uQm91bmRzLmVtcHR5KSB7CisgICAgICAgIHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2UucmVzZXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBpZiAodGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5taW4gPT0gc2VsZWN0aW9uQm91bmRzLm1pbiAmJgorICAgICAgICAgIHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2UubWF4ID09IHNlbGVjdGlvbkJvdW5kcy5tYXgpCisgICAgICAgIHRoaXMudmlld3BvcnRfLmludGVyZXN0UmFuZ2UucmVzZXQoKTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy52aWV3cG9ydF8uaW50ZXJlc3RSYW5nZS5zZXQoc2VsZWN0aW9uQm91bmRzKTsKKyAgICB9LAorCisgICAgdG9nZ2xlSGlnaERldGFpbHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudmlld3BvcnRfLmhpZ2hEZXRhaWxzID0gIXRoaXMudmlld3BvcnRfLmhpZ2hEZXRhaWxzOworICAgIH0sCisKKyAgICBoaWRlRHJhZ0JveF86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy4kLmRyYWdfYm94LnN0eWxlLmxlZnQgPSAnLTEwMDBweCc7CisgICAgICB0aGlzLiQuZHJhZ19ib3guc3R5bGUudG9wID0gJy0xMDAwcHgnOworICAgICAgdGhpcy4kLmRyYWdfYm94LnN0eWxlLndpZHRoID0gMDsKKyAgICAgIHRoaXMuJC5kcmFnX2JveC5zdHlsZS5oZWlnaHQgPSAwOworICAgIH0sCisKKyAgICBzZXREcmFnQm94UG9zaXRpb25fOiBmdW5jdGlvbih4U3RhcnQsIHlTdGFydCwgeEVuZCwgeUVuZCkgeworICAgICAgdmFyIGxvWSA9IE1hdGgubWluKHlTdGFydCwgeUVuZCk7CisgICAgICB2YXIgaGlZID0gTWF0aC5tYXgoeVN0YXJ0LCB5RW5kKTsKKyAgICAgIHZhciBsb1ggPSBNYXRoLm1pbih4U3RhcnQsIHhFbmQpOworICAgICAgdmFyIGhpWCA9IE1hdGgubWF4KHhTdGFydCwgeEVuZCk7CisgICAgICB2YXIgbW9kZWxUcmFja1JlY3QgPSB0aGlzLm1vZGVsVHJhY2tfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgdmFyIGRyYWdSZWN0ID0ge2xlZnQ6IGxvWCwgdG9wOiBsb1ksIHdpZHRoOiBoaVggLSBsb1gsIGhlaWdodDogaGlZIC0gbG9ZfTsKKworICAgICAgZHJhZ1JlY3QucmlnaHQgPSBkcmFnUmVjdC5sZWZ0ICsgZHJhZ1JlY3Qud2lkdGg7CisgICAgICBkcmFnUmVjdC5ib3R0b20gPSBkcmFnUmVjdC50b3AgKyBkcmFnUmVjdC5oZWlnaHQ7CisKKyAgICAgIHZhciBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdCA9CisgICAgICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBjbGlwUmVjdCA9IHsKKyAgICAgICAgbGVmdDogbW9kZWxUcmFja0NvbnRhaW5lclJlY3QubGVmdCwKKyAgICAgICAgdG9wOiBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC50b3AsCisgICAgICAgIHJpZ2h0OiBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5yaWdodCwKKyAgICAgICAgYm90dG9tOiBtb2RlbFRyYWNrQ29udGFpbmVyUmVjdC5ib3R0b20KKyAgICAgIH07CisKKyAgICAgIHZhciBoZWFkaW5nV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSgKKyAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ2hlYWRpbmcnKSkud2lkdGg7CisgICAgICB2YXIgdHJhY2tUaXRsZVdpZHRoID0gcGFyc2VJbnQoaGVhZGluZ1dpZHRoKTsKKyAgICAgIGNsaXBSZWN0LmxlZnQgPSBjbGlwUmVjdC5sZWZ0ICsgdHJhY2tUaXRsZVdpZHRoOworCisgICAgICB2YXIgaW50ZXJzZWN0UmVjdF8gPSBmdW5jdGlvbihyMSwgcjIpIHsKKyAgICAgICAgaWYgKHIyLmxlZnQgPiByMS5yaWdodCB8fCByMi5yaWdodCA8IHIxLmxlZnQgfHwKKyAgICAgICAgICAgIHIyLnRvcCA+IHIxLmJvdHRvbSB8fCByMi5ib3R0b20gPCByMS50b3ApCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHZhciByZXN1bHRzID0ge307CisgICAgICAgIHJlc3VsdHMubGVmdCA9IE1hdGgubWF4KHIxLmxlZnQsIHIyLmxlZnQpOworICAgICAgICByZXN1bHRzLnRvcCA9IE1hdGgubWF4KHIxLnRvcCwgcjIudG9wKTsKKyAgICAgICAgcmVzdWx0cy5yaWdodCA9IE1hdGgubWluKHIxLnJpZ2h0LCByMi5yaWdodCk7CisgICAgICAgIHJlc3VsdHMuYm90dG9tID0gTWF0aC5taW4ocjEuYm90dG9tLCByMi5ib3R0b20pOworICAgICAgICByZXN1bHRzLndpZHRoID0gcmVzdWx0cy5yaWdodCAtIHJlc3VsdHMubGVmdDsKKyAgICAgICAgcmVzdWx0cy5oZWlnaHQgPSByZXN1bHRzLmJvdHRvbSAtIHJlc3VsdHMudG9wOworICAgICAgICByZXR1cm4gcmVzdWx0czsKKyAgICAgIH0KKworICAgICAgLy8gVE9ETyhkc2luY2xhaXIpOiBpbnRlcnNlY3RSZWN0XyBjYW4gcmV0dXJuIGZhbHNlICh3aGljaCBzaG91bGQgYWN0dWFsbHkKKyAgICAgIC8vIGJlIHVuZGVmaW5lZCkgYnV0IHdlIHVzZSBmaW5hbERyYWdCb3ggd2l0aG91dCBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlCisgICAgICAvLyB3aGljaCBjb3VsZCBwb3RlbnRpYWxseSBibG93dXAuIEZpeCB0aGlzIC4uLi4uCisgICAgICB2YXIgZmluYWxEcmFnQm94ID0gaW50ZXJzZWN0UmVjdF8oY2xpcFJlY3QsIGRyYWdSZWN0KTsKKworICAgICAgdGhpcy4kLmRyYWdfYm94LnN0eWxlLmxlZnQgPSBmaW5hbERyYWdCb3gubGVmdCArICdweCc7CisgICAgICB0aGlzLiQuZHJhZ19ib3guc3R5bGUud2lkdGggPSBmaW5hbERyYWdCb3gud2lkdGggKyAncHgnOworICAgICAgdGhpcy4kLmRyYWdfYm94LnN0eWxlLnRvcCA9IGZpbmFsRHJhZ0JveC50b3AgKyAncHgnOworICAgICAgdGhpcy4kLmRyYWdfYm94LnN0eWxlLmhlaWdodCA9IGZpbmFsRHJhZ0JveC5oZWlnaHQgKyAncHgnOworICAgICAgdGhpcy4kLmRyYWdfYm94LnN0eWxlLndoaXRlU3BhY2UgPSAnbm93cmFwJzsKKworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgdmFyIGNhbnYgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhczsKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnRfLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworICAgICAgdmFyIGxvV1ggPSBkdC54Vmlld1RvV29ybGQoCisgICAgICAgICAgKGxvWCAtIGNhbnYub2Zmc2V0TGVmdCkgKiBwaXhlbFJhdGlvKTsKKyAgICAgIHZhciBoaVdYID0gZHQueFZpZXdUb1dvcmxkKAorICAgICAgICAgIChoaVggLSBjYW52Lm9mZnNldExlZnQpICogcGl4ZWxSYXRpbyk7CisKKyAgICAgIHRoaXMuJC5kcmFnX2JveC50ZXh0Q29udGVudCA9IHRyLmIudW5pdHMuVGltZUR1cmF0aW9uLmZvcm1hdChoaVdYIC0gbG9XWCk7CisKKyAgICAgIHZhciBlID0gbmV3IHRyLmIuRXZlbnQoJ3NlbGVjdGlvbkNoYW5naW5nJyk7CisgICAgICBlLmxvV1ggPSBsb1dYOworICAgICAgZS5oaVdYID0gaGlXWDsKKyAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChlKTsKKyAgICB9LAorCisgICAgb25HcmlkVG9nZ2xlXzogZnVuY3Rpb24obGVmdCkgeworICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLnNlbGVjdGlvbjsKKyAgICAgIHZhciB0YiA9IGxlZnQgPyBzZWxlY3Rpb24uYm91bmRzLm1pbiA6IHNlbGVjdGlvbi5ib3VuZHMubWF4OworCisgICAgICAvLyBUb2dnbGUgdGhlIGdyaWQgb2ZmIGlmIHRoZSBncmlkIGlzIG9uLCB0aGUgbWFya2VyIHBvc2l0aW9uIGlzIHRoZSBzYW1lCisgICAgICAvLyBhbmQgdGhlIHNhbWUgZWxlbWVudCBpcyBzZWxlY3RlZCAoc2FtZSB0aW1lYmFzZSkuCisgICAgICBpZiAodGhpcy52aWV3cG9ydF8uZ3JpZEVuYWJsZWQgJiYKKyAgICAgICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkU2lkZSA9PT0gbGVmdCAmJgorICAgICAgICAgIHRoaXMudmlld3BvcnRfLmdyaWRJbml0aWFsVGltZWJhc2UgPT09IHRiKSB7CisgICAgICAgIHRoaXMudmlld3BvcnRfLmdyaWRzaWRlID0gdW5kZWZpbmVkOworICAgICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkRW5hYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLnZpZXdwb3J0Xy5ncmlkSW5pdGlhbFRpbWViYXNlID0gdW5kZWZpbmVkOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIC8vIFNoaWZ0IHRoZSB0aW1lYmFzZSBsZWZ0IHVudGlsIGl0cyBqdXN0IGxlZnQgb2YgbW9kZWxfLmJvdW5kcy5taW4uCisgICAgICB2YXIgbnVtSW50ZXJ2YWxzU2luY2VTdGFydCA9IE1hdGguY2VpbCgodGIgLSB0aGlzLm1vZGVsXy5ib3VuZHMubWluKSAvCisgICAgICAgICAgdGhpcy52aWV3cG9ydF8uZ3JpZFN0ZXBfKTsKKworICAgICAgdGhpcy52aWV3cG9ydF8uZ3JpZEVuYWJsZWQgPSB0cnVlOworICAgICAgdGhpcy52aWV3cG9ydF8uZ3JpZFNpZGUgPSBsZWZ0OworICAgICAgdGhpcy52aWV3cG9ydF8uZ3JpZEluaXRpYWxUaW1lYmFzZSA9IHRiOworICAgICAgdGhpcy52aWV3cG9ydF8uZ3JpZFRpbWViYXNlID0gdGIgLQorICAgICAgICAgIChudW1JbnRlcnZhbHNTaW5jZVN0YXJ0ICsgMSkgKiB0aGlzLnZpZXdwb3J0Xy5ncmlkU3RlcF87CisgICAgfSwKKworICAgIHN0b3JlTGFzdE1vdXNlUG9zXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5sYXN0TW91c2VWaWV3UG9zXyA9IHRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7CisgICAgfSwKKworICAgIHN0b3JlTGFzdFRvdWNoUG9zaXRpb25zXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5sYXN0VG91Y2hWaWV3UG9zaXRpb25zXyA9IHRoaXMuZXh0cmFjdFJlbGF0aXZlVG91Y2hQb3NpdGlvbnNfKGUpOworICAgIH0sCisKKyAgICBleHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIGNhbnYgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhczsKKyAgICAgIHJldHVybiB7CisgICAgICAgIHg6IGUuY2xpZW50WCAtIGNhbnYub2Zmc2V0TGVmdCwKKyAgICAgICAgeTogZS5jbGllbnRZIC0gY2Fudi5vZmZzZXRUb3AKKyAgICAgIH07CisgICAgfSwKKworICAgIGV4dHJhY3RSZWxhdGl2ZVRvdWNoUG9zaXRpb25zXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIGNhbnYgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhczsKKworICAgICAgdmFyIHRvdWNoZXMgPSBbXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZS50b3VjaGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHRvdWNoZXMucHVzaCh7CisgICAgICAgICAgeDogZS50b3VjaGVzW2ldLmNsaWVudFggLSBjYW52Lm9mZnNldExlZnQsCisgICAgICAgICAgeTogZS50b3VjaGVzW2ldLmNsaWVudFkgLSBjYW52Lm9mZnNldFRvcAorICAgICAgICB9KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0b3VjaGVzOworICAgIH0sCisKKyAgICBzdG9yZUluaXRpYWxNb3VzZURvd25Qb3NfOiBmdW5jdGlvbihlKSB7CisKKyAgICAgIHZhciBwb3NpdGlvbiA9IHRoaXMuZXh0cmFjdFJlbGF0aXZlTW91c2VQb3NpdGlvbl8oZSk7CisKKyAgICAgIHRoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fLnggPSBwb3NpdGlvbi54OworICAgICAgdGhpcy5tb3VzZVZpZXdQb3NBdE1vdXNlRG93bl8ueSA9IHBvc2l0aW9uLnk7CisgICAgfSwKKworICAgIGZvY3VzRWxlbWVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuJC5ob3RrZXlfY29udHJvbGxlci5jaGlsZFJlcXVlc3RzR2VuZXJhbEZvY3VzKHRoaXMpOworICAgIH0sCisKKyAgICBzdG9yZUluaXRpYWxJbnRlcmFjdGlvblBvc2l0aW9uc0FuZEZvY3VzXzogZnVuY3Rpb24oZSkgeworCisgICAgICB0aGlzLnN0b3JlSW5pdGlhbE1vdXNlRG93blBvc18oZSk7CisgICAgICB0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTsKKworICAgICAgdGhpcy5mb2N1c0VsZW1lbnRzXygpOworICAgIH0sCisKKyAgICBvbkJlZ2luUGFuU2Nhbl86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciB2cCA9IHRoaXMudmlld3BvcnRfOworICAgICAgdGhpcy52aWV3cG9ydERpc3BsYXlUcmFuc2Zvcm1BdE1vdXNlRG93bl8gPQorICAgICAgICAgIHZwLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLmNsb25lKCk7CisgICAgICB0aGlzLmlzUGFubmluZ0FuZFNjYW5uaW5nXyA9IHRydWU7CisKKyAgICAgIHRoaXMuc3RvcmVJbml0aWFsSW50ZXJhY3Rpb25Qb3NpdGlvbnNBbmRGb2N1c18oZSk7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwKKworICAgIG9uVXBkYXRlUGFuU2Nhbl86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGlmICghdGhpcy5pc1Bhbm5pbmdBbmRTY2FubmluZ18pCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHZpZXdXaWR0aCA9IHRoaXMudmlld1dpZHRoXzsKKworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgdmFyIHhEZWx0YVZpZXcgPSBwaXhlbFJhdGlvICogKHRoaXMubGFzdE1vdXNlVmlld1Bvc18ueCAtCisgICAgICAgICAgdGhpcy5tb3VzZVZpZXdQb3NBdE1vdXNlRG93bl8ueCk7CisKKyAgICAgIHZhciB5RGVsdGEgPSB0aGlzLmxhc3RNb3VzZVZpZXdQb3NfLnkgLQorICAgICAgICAgIHRoaXMubW91c2VWaWV3UG9zQXRNb3VzZURvd25fLnk7CisKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2V0KHRoaXMudmlld3BvcnREaXNwbGF5VHJhbnNmb3JtQXRNb3VzZURvd25fKTsKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8uaW5jcmVtZW50UGFuWEluVmlld1VuaXRzKHhEZWx0YVZpZXcpOworICAgICAgdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5wYW5ZIC09IHlEZWx0YTsKKyAgICAgIHRoaXMudmlld3BvcnRfLnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseSh0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fKTsKKworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKworICAgICAgdGhpcy5zdG9yZUxhc3RNb3VzZVBvc18oZSk7CisgICAgfSwKKworICAgIG9uRW5kUGFuU2Nhbl86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHRoaXMuaXNQYW5uaW5nQW5kU2Nhbm5pbmdfID0gZmFsc2U7CisKKyAgICAgIHRoaXMuc3RvcmVMYXN0TW91c2VQb3NfKGUpOworCisgICAgICBpZiAoIWUuaXNDbGljaykKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCisKKyAgICBvbkJlZ2luU2VsZWN0aW9uXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIGNhbnYgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhczsKKyAgICAgIHZhciByZWN0ID0gdGhpcy5tb2RlbFRyYWNrXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBjYW52UmVjdCA9IGNhbnYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisKKyAgICAgIHZhciBpbnNpZGUgPSByZWN0ICYmCisgICAgICAgICAgZS5jbGllbnRYID49IHJlY3QubGVmdCAmJgorICAgICAgICAgIGUuY2xpZW50WCA8IHJlY3QucmlnaHQgJiYKKyAgICAgICAgICBlLmNsaWVudFkgPj0gcmVjdC50b3AgJiYKKyAgICAgICAgICBlLmNsaWVudFkgPCByZWN0LmJvdHRvbSAmJgorICAgICAgICAgIGUuY2xpZW50WCA+PSBjYW52UmVjdC5sZWZ0ICYmCisgICAgICAgICAgZS5jbGllbnRYIDwgY2FudlJlY3QucmlnaHQ7CisKKyAgICAgIGlmICghaW5zaWRlKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuZHJhZ0JlZ2luRXZlbnRfID0gZTsKKworICAgICAgdGhpcy5zdG9yZUluaXRpYWxJbnRlcmFjdGlvblBvc2l0aW9uc0FuZEZvY3VzXyhlKTsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9LAorCisgICAgb25VcGRhdGVTZWxlY3Rpb25fOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMuZHJhZ0JlZ2luRXZlbnRfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIFVwZGF0ZSB0aGUgZHJhZyBib3gKKyAgICAgIHRoaXMuZHJhZ0JveFhTdGFydF8gPSB0aGlzLmRyYWdCZWdpbkV2ZW50Xy5jbGllbnRYOworICAgICAgdGhpcy5kcmFnQm94WEVuZF8gPSBlLmNsaWVudFg7CisgICAgICB0aGlzLmRyYWdCb3hZU3RhcnRfID0gdGhpcy5kcmFnQmVnaW5FdmVudF8uY2xpZW50WTsKKyAgICAgIHRoaXMuZHJhZ0JveFlFbmRfID0gZS5jbGllbnRZOworICAgICAgdGhpcy5zZXREcmFnQm94UG9zaXRpb25fKHRoaXMuZHJhZ0JveFhTdGFydF8sIHRoaXMuZHJhZ0JveFlTdGFydF8sCisgICAgICAgICAgdGhpcy5kcmFnQm94WEVuZF8sIHRoaXMuZHJhZ0JveFlFbmRfKTsKKworICAgIH0sCisKKyAgICBvbkVuZFNlbGVjdGlvbl86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKworICAgICAgaWYgKCF0aGlzLmRyYWdCZWdpbkV2ZW50XykKKyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBTdG9wIHRoZSBkcmFnZ2luZy4KKyAgICAgIHRoaXMuaGlkZURyYWdCb3hfKCk7CisgICAgICB2YXIgZURvd24gPSB0aGlzLmRyYWdCZWdpbkV2ZW50XzsKKyAgICAgIHRoaXMuZHJhZ0JlZ2luRXZlbnRfID0gdW5kZWZpbmVkOworCisgICAgICAvLyBGaWd1cmUgb3V0IGV4dGVudHMgb2YgdGhlIGRyYWcuCisgICAgICB2YXIgbG9ZID0gTWF0aC5taW4oZURvd24uY2xpZW50WSwgZS5jbGllbnRZKTsKKyAgICAgIHZhciBoaVkgPSBNYXRoLm1heChlRG93bi5jbGllbnRZLCBlLmNsaWVudFkpOworICAgICAgdmFyIGxvWCA9IE1hdGgubWluKGVEb3duLmNsaWVudFgsIGUuY2xpZW50WCk7CisgICAgICB2YXIgaGlYID0gTWF0aC5tYXgoZURvd24uY2xpZW50WCwgZS5jbGllbnRYKTsKKworICAgICAgLy8gQ29udmVydCB0byB3b3JsZHNwYWNlLgorICAgICAgdmFyIGNhbnYgPSB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhczsKKyAgICAgIHZhciB3b3JsZE9mZnNldCA9IGNhbnYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDsKKyAgICAgIHZhciBsb1ZYID0gbG9YIC0gd29ybGRPZmZzZXQ7CisgICAgICB2YXIgaGlWWCA9IGhpWCAtIHdvcmxkT2Zmc2V0OworCisgICAgICAvLyBGaWd1cmUgb3V0IHdoYXQgaGFzIGJlZW4gc2VsZWN0ZWQuCisgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICB0aGlzLm1vZGVsVHJhY2tfLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbigKKyAgICAgICAgICBsb1ZYLCBoaVZYLCBsb1ksIGhpWSwgc2VsZWN0aW9uKTsKKworICAgICAgLy8gQWN0aXZhdGUgdGhlIG5ldyBzZWxlY3Rpb24uCisgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXy5jaGFuZ2VTZWxlY3Rpb25Gcm9tVGltZWxpbmUoc2VsZWN0aW9uKTsKKyAgICB9LAorCisgICAgb25CZWdpblpvb21fOiBmdW5jdGlvbihlKSB7CisgICAgICB0aGlzLmlzWm9vbWluZ18gPSB0cnVlOworCisgICAgICB0aGlzLnN0b3JlSW5pdGlhbEludGVyYWN0aW9uUG9zaXRpb25zQW5kRm9jdXNfKGUpOworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCisKKyAgICBvblVwZGF0ZVpvb21fOiBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoIXRoaXMuaXNab29taW5nXykKKyAgICAgICAgcmV0dXJuOworICAgICAgdmFyIG5ld1Bvc2l0aW9uID0gdGhpcy5leHRyYWN0UmVsYXRpdmVNb3VzZVBvc2l0aW9uXyhlKTsKKworICAgICAgdmFyIHpvb21TY2FsZVZhbHVlID0gMSArICh0aGlzLmxhc3RNb3VzZVZpZXdQb3NfLnkgLQorICAgICAgICAgIG5ld1Bvc2l0aW9uLnkpICogMC4wMTsKKworICAgICAgdGhpcy56b29tQnlfKHpvb21TY2FsZVZhbHVlLCBmYWxzZSk7CisgICAgICB0aGlzLnN0b3JlTGFzdE1vdXNlUG9zXyhlKTsKKyAgICB9LAorCisgICAgb25FbmRab29tXzogZnVuY3Rpb24oZSkgeworICAgICAgdGhpcy5pc1pvb21pbmdfID0gZmFsc2U7CisKKyAgICAgIGlmICghZS5pc0NsaWNrKQorICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwKKworICAgIGNvbXB1dGVUb3VjaENlbnRlcl86IGZ1bmN0aW9uKHBvc2l0aW9ucykgeworICAgICAgdmFyIHhTdW0gPSAwOworICAgICAgdmFyIHlTdW0gPSAwOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3NpdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgeFN1bSArPSBwb3NpdGlvbnNbaV0ueDsKKyAgICAgICAgeVN1bSArPSBwb3NpdGlvbnNbaV0ueTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB7CisgICAgICAgIHg6IHhTdW0gLyBwb3NpdGlvbnMubGVuZ3RoLAorICAgICAgICB5OiB5U3VtIC8gcG9zaXRpb25zLmxlbmd0aAorICAgICAgfTsKKyAgICB9LAorCisgICAgY29tcHV0ZVRvdWNoU3Bhbl86IGZ1bmN0aW9uKHBvc2l0aW9ucykgeworICAgICAgdmFyIHhNaW4gPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgICAgdmFyIHlNaW4gPSBOdW1iZXIuTUFYX1ZBTFVFOworICAgICAgdmFyIHhNYXggPSBOdW1iZXIuTUlOX1ZBTFVFOworICAgICAgdmFyIHlNYXggPSBOdW1iZXIuTUlOX1ZBTFVFOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3NpdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgeE1pbiA9IE1hdGgubWluKHhNaW4sIHBvc2l0aW9uc1tpXS54KTsKKyAgICAgICAgeU1pbiA9IE1hdGgubWluKHlNaW4sIHBvc2l0aW9uc1tpXS55KTsKKyAgICAgICAgeE1heCA9IE1hdGgubWF4KHhNYXgsIHBvc2l0aW9uc1tpXS54KTsKKyAgICAgICAgeU1heCA9IE1hdGgubWF4KHlNYXgsIHBvc2l0aW9uc1tpXS55KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBNYXRoLnNxcnQoKHhNaW4gLSB4TWF4KSAqICh4TWluIC0geE1heCkgKworICAgICAgICAgICh5TWluIC0geU1heCkgKiAoeU1pbiAtIHlNYXgpKTsKKyAgICB9LAorCisgICAgb25VcGRhdGVUcmFuc2Zvcm1Gb3JUb3VjaF86IGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBuZXdQb3NpdGlvbnMgPSB0aGlzLmV4dHJhY3RSZWxhdGl2ZVRvdWNoUG9zaXRpb25zXyhlKTsKKyAgICAgIHZhciBjdXJyZW50UG9zaXRpb25zID0gdGhpcy5sYXN0VG91Y2hWaWV3UG9zaXRpb25zXzsKKworICAgICAgdmFyIG5ld0NlbnRlciA9IHRoaXMuY29tcHV0ZVRvdWNoQ2VudGVyXyhuZXdQb3NpdGlvbnMpOworICAgICAgdmFyIGN1cnJlbnRDZW50ZXIgPSB0aGlzLmNvbXB1dGVUb3VjaENlbnRlcl8oY3VycmVudFBvc2l0aW9ucyk7CisKKyAgICAgIHZhciBuZXdTcGFuID0gdGhpcy5jb21wdXRlVG91Y2hTcGFuXyhuZXdQb3NpdGlvbnMpOworICAgICAgdmFyIGN1cnJlbnRTcGFuID0gdGhpcy5jb21wdXRlVG91Y2hTcGFuXyhjdXJyZW50UG9zaXRpb25zKTsKKworICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydF87CisgICAgICB2YXIgdmlld1dpZHRoID0gdGhpcy52aWV3V2lkdGhfOworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworCisgICAgICB2YXIgeERlbHRhID0gcGl4ZWxSYXRpbyAqIChuZXdDZW50ZXIueCAtIGN1cnJlbnRDZW50ZXIueCk7CisgICAgICB2YXIgeURlbHRhID0gbmV3Q2VudGVyLnkgLSBjdXJyZW50Q2VudGVyLnk7CisgICAgICB2YXIgem9vbVNjYWxlVmFsdWUgPSBjdXJyZW50U3BhbiA+IDEwID8gbmV3U3BhbiAvIGN1cnJlbnRTcGFuIDogMTsKKworICAgICAgdmFyIHZpZXdGb2N1cyA9IHBpeGVsUmF0aW8gKiBuZXdDZW50ZXIueDsKKyAgICAgIHZhciB3b3JsZEZvY3VzID0gdnAuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKHZpZXdGb2N1cyk7CisKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2V0KHZwLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtKTsKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8uc2NhbGVYICo9IHpvb21TY2FsZVZhbHVlOworICAgICAgdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy54UGFuV29ybGRQb3NUb1ZpZXdQb3MoCisgICAgICAgICAgd29ybGRGb2N1cywgdmlld0ZvY3VzLCB2aWV3V2lkdGgpOworICAgICAgdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy5pbmNyZW1lbnRQYW5YSW5WaWV3VW5pdHMoeERlbHRhKTsKKyAgICAgIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8ucGFuWSAtPSB5RGVsdGE7CisgICAgICB2cC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkodGhpcy5kaXNwbGF5VHJhbnNmb3JtXyk7CisgICAgICB0aGlzLnN0b3JlTGFzdFRvdWNoUG9zaXRpb25zXyhlKTsKKyAgICB9LAorCisgICAgaW5pdEhpbnRUZXh0XzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLiQuaGludF90ZXh0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisKKyAgICAgIHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgc2hvd0hpbnRUZXh0XzogZnVuY3Rpb24odGV4dCkgeworICAgICAgaWYgKHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XykgeworICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0Xyk7CisgICAgICAgIHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XyA9IHVuZGVmaW5lZDsKKyAgICAgIH0KKyAgICAgIHRoaXMucGVuZGluZ0hpbnRUZXh0Q2xlYXJUaW1lb3V0XyA9IHNldFRpbWVvdXQoCisgICAgICAgICAgdGhpcy5oaWRlSGludFRleHRfLmJpbmQodGhpcyksIDEwMDApOworICAgICAgdGhpcy4kLmhpbnRfdGV4dC50ZXh0Q29udGVudCA9IHRleHQ7CisgICAgICB0aGlzLiQuaGludF90ZXh0LnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICB9LAorCisgICAgaGlkZUhpbnRUZXh0XzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnBlbmRpbmdIaW50VGV4dENsZWFyVGltZW91dF8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLiQuaGludF90ZXh0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgfQorICB9KTsKKyAgPC9zY3JpcHQ+Cis8L3BvbHltZXItZWxlbWVudD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdHJhY2tfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlZWYyMDMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvZXh0cmFzL2ltcG9ydGVyL3RyYWNlX2V2ZW50X2ltcG9ydGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKyAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7CisgIHZhciBUYXNrID0gdHIuYi5UYXNrOworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIG51bV90aHJlYWRzID0gNTAwOworICAgIG1vZGVsLmltcG9ydFRyYWNlcyhbXSwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBwMTAwID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEwMCk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV90aHJlYWRzOyBpKyspIHsKKyAgICAgICAgdmFyIHQgPSBwMTAwLmdldE9yQ3JlYXRlVGhyZWFkKDEwMSArIGkpOworICAgICAgICBpZiAoaSAlIDIgPT0gMCkgeworICAgICAgICAgIHQuc2xpY2VHcm91cC5iZWdpblNsaWNlKCdjYXQnLCAnYScsIDEwMCk7CisgICAgICAgICAgdC5zbGljZUdyb3VwLmVuZFNsaWNlKDExMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdC5zbGljZUdyb3VwLmJlZ2luU2xpY2UoJ2NhdCcsICdiJywgNTApOworICAgICAgICAgIHQuc2xpY2VHcm91cC5lbmRTbGljZSgxMjApOworICAgICAgICB9CisgICAgICB9CisgICAgfSk7CisKKyAgICB2YXIgdGltZWxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS10cmFjay12aWV3Jyk7CisgICAgdGltZWxpbmUubW9kZWwgPSBtb2RlbDsKKyAgICB0aW1lbGluZS5zdHlsZS5tYXhIZWlnaHQgPSAnNjAwcHgnOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lbGluZSk7CisgIH0pOworCisgIHRlc3QoJ2FkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2snLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMSk7CisKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2InLCAwLCAxLjEsIHt9LCAyLjgpKTsKKworICAgIHZhciB0MWFzZyA9IHQxLmFzeW5jU2xpY2VHcm91cDsKKyAgICB0MWFzZy5zbGljZXMucHVzaCgKKyAgICAgICAgdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2VOYW1lZCgnYScsIDAsIDEsIHQxLCB0MSkpOworICAgIHQxYXNnLnNsaWNlcy5wdXNoKAorICAgICAgICB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZU5hbWVkKCdiJywgMSwgMiwgdDEsIHQxKSk7CisKKyAgICB2YXIgdGltZWxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS10cmFjay12aWV3Jyk7CisgICAgdGltZWxpbmUubW9kZWwgPSBtb2RlbDsKKworICAgIHZhciBleHBlY3RlZCA9IFt0MWFzZy5zbGljZXNbMF0sCisgICAgICAgICAgICAgICAgICAgIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdXTsKKyAgICB2YXIgcmVzdWx0ID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0OworICAgIHZhciBmaWx0ZXJUYXNrID0gdGltZWxpbmUuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzaygKKyAgICAgICAgbmV3IHRyLmMuVGl0bGVPckNhdGVnb3J5RmlsdGVyKCdhJyksIHJlc3VsdCk7CisgICAgVGFzay5SdW5TeW5jaHJvbm91c2x5KGZpbHRlclRhc2spOworICAgIGFzc2VydC5lcXVhbChyZXN1bHQubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0WzBdLCBleHBlY3RlZFswXSk7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsxXSwgZXhwZWN0ZWRbMV0pOworCisgICAgdmFyIGV4cGVjdGVkID0gW3QxYXNnLnNsaWNlc1sxXSwKKyAgICAgICAgICAgICAgICAgICAgdDEuc2xpY2VHcm91cC5zbGljZXNbMV1dOworICAgIHZhciByZXN1bHQgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICB2YXIgZmlsdGVyVGFzayA9IHRpbWVsaW5lLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2soCisgICAgICAgIG5ldyB0ci5jLlRpdGxlT3JDYXRlZ29yeUZpbHRlcignYicpLCByZXN1bHQpOworICAgIFRhc2suUnVuU3luY2hyb25vdXNseShmaWx0ZXJUYXNrKTsKKyAgICBhc3NlcnQuZXF1YWwocmVzdWx0Lmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFswXSwgZXhwZWN0ZWRbMF0pOworICAgIGFzc2VydC5lcXVhbChyZXN1bHRbMV0sIGV4cGVjdGVkWzFdKTsKKyAgfSk7CisKKyAgdGVzdCgnZW1wdHlUaHJlYWRzRGVsZXRlZCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKworICAgIHZhciB0aW1lbGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXRpbWVsaW5lLXRyYWNrLXZpZXcnKTsKKyAgICB0aW1lbGluZS5tb2RlbCA9IG1vZGVsOworCisgICAgYXNzZXJ0LmlzRmFsc2UodGltZWxpbmUuaGFzVmlzaWJsZUNvbnRlbnQpOworICB9KTsKKworICB0ZXN0KCdmaWx0ZXJlZENvdW50ZXJzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIGMxID0gbW9kZWwua2VybmVsLmdldE9yQ3JlYXRlQ3B1KDApOworICAgIGMxLmdldE9yQ3JlYXRlQ291bnRlcignJywgJ2InKTsKKworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICB2YXIgY3RyID0gcDEuZ2V0T3JDcmVhdGVDb3VudGVyKCcnLCAnYScpOworICAgIHZhciBzZXJpZXMgPSBuZXcgdHIubW9kZWwuQ291bnRlclNlcmllcygnYScsIDApOworICAgIHNlcmllcy5hZGRDb3VudGVyU2FtcGxlKDAsIDEpOworICAgIGN0ci5hZGRTZXJpZXMoc2VyaWVzKTsKKworICAgIHZhciB0aW1lbGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXRpbWVsaW5lLXRyYWNrLXZpZXcnKTsKKyAgICB0aW1lbGluZS5tb2RlbCA9IG1vZGVsOworCisgICAgYXNzZXJ0LmlzVHJ1ZSh0aW1lbGluZS5oYXNWaXNpYmxlQ29udGVudCk7CisgIH0pOworCisgIHRlc3QoJ2ZpbHRlcmVkQ3B1cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBjMSA9IG1vZGVsLmtlcm5lbC5nZXRPckNyZWF0ZUNwdSgxKTsKKyAgICBjMS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsICdhJyk7CisKKyAgICB2YXIgdGltZWxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS10cmFjay12aWV3Jyk7CisgICAgdGltZWxpbmUubW9kZWwgPSBtb2RlbDsKKworICAgIGFzc2VydC5pc1RydWUodGltZWxpbmUuaGFzVmlzaWJsZUNvbnRlbnQpOworICB9KTsKKworICB0ZXN0KCdmaWx0ZXJlZFByb2Nlc3NlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICBwMS5nZXRPckNyZWF0ZUNvdW50ZXIoJycsICdhJyk7CisKKyAgICB2YXIgdGltZWxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS10cmFjay12aWV3Jyk7CisgICAgdGltZWxpbmUubW9kZWwgPSBtb2RlbDsKKworICAgIGFzc2VydC5pc1RydWUodGltZWxpbmUuaGFzVmlzaWJsZUNvbnRlbnQpOworICB9KTsKKworICB0ZXN0KCdmaWx0ZXJlZFRocmVhZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSk7CisgICAgdmFyIHQxID0gcDEuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UodHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlKDAsIDEpKTsKKworICAgIHZhciB0aW1lbGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXRpbWVsaW5lLXRyYWNrLXZpZXcnKTsKKyAgICB0aW1lbGluZS5tb2RlbCA9IG1vZGVsOworCisgICAgYXNzZXJ0LmlzVHJ1ZSh0aW1lbGluZS5oYXNWaXNpYmxlQ29udGVudCk7CisgIH0pOworCisgIHRlc3QoJ2ludGVyZXN0UmFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MjksIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MzEsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MzQsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXTsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgdHJhY2tWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdHJhY2stdmlldycpOworICAgIHRyYWNrVmlldy5tb2RlbCA9IG1vZGVsOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0cmFja1ZpZXcpOworCisgICAgdmFyIHNsaWNlID0gbW9kZWwucHJvY2Vzc2VzWzUyXS50aHJlYWRzWzUzXS5zbGljZUdyb3VwLnNsaWNlc1syXTsKKyAgICB0cmFja1ZpZXcudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5zZXRNaW5BbmRNYXgoc2xpY2Uuc3RhcnQsIHNsaWNlLmVuZCk7CisgIH0pOworCisgIHRlc3QoJ2VtcHR5SW50ZXJlc3RSYW5nZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBldmVudHMgPSBbCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDUyMCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDU2MCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdCJ30sCisgICAgICB7bmFtZTogJ2MnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYyOSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCisgICAgICB7bmFtZTogJ2InLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzMSwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30sCisgICAgICB7bmFtZTogJ2EnLCBhcmdzOiB7fSwgcGlkOiA1MiwgdHM6IDYzNCwgY2F0OiAnZm9vJywgdGlkOiA1MywgcGg6ICdFJ30KKyAgICBdOworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbChldmVudHMpOworICAgIHZhciB0cmFja1ZpZXcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS10cmFjay12aWV3Jyk7CisgICAgdHJhY2tWaWV3Lm1vZGVsID0gbW9kZWw7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRyYWNrVmlldyk7CisgICAgdHJhY2tWaWV3LnZpZXdwb3J0LmludGVyZXN0UmFuZ2UucmVzZXQoKTsKKyAgfSk7CisKKworICB0ZXN0KCd0aGlubmVzdEludGVyZXN0UmFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnRzID0gWworICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1MjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA1NjAsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnQid9LAorICAgICAge25hbWU6ICdjJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MjksIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdiJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MzEsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9LAorICAgICAge25hbWU6ICdhJywgYXJnczoge30sIHBpZDogNTIsIHRzOiA2MzQsIGNhdDogJ2ZvbycsIHRpZDogNTMsIHBoOiAnRSd9CisgICAgXTsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoZXZlbnRzKTsKKyAgICB2YXIgdHJhY2tWaWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdHJhY2stdmlldycpOworICAgIHRyYWNrVmlldy5tb2RlbCA9IG1vZGVsOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0cmFja1ZpZXcpOworICAgIHRyYWNrVmlldy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLnJlc2V0KCk7CisKKyAgICB2YXIgc2xpY2UgPSBtb2RlbC5wcm9jZXNzZXNbNTJdLnRocmVhZHNbNTNdLnNsaWNlR3JvdXAuc2xpY2VzWzJdOworICAgIHRyYWNrVmlldy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLnNldE1pbkFuZE1heChzbGljZS5zdGFydCwgc2xpY2Uuc3RhcnQpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMDJhYzgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXcuaHRtbApAQCAtMCwwICsxLDUxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zZXR0aW5ncy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9icnVzaGluZ19zdGF0ZV9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3NjcmlwdGluZ19jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9hbmFseXNpc192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RyYWdfaGFuZGxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2Ryb3Bkb3duLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2Zhdmljb25zLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hvdGtleV9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL292ZXJsYXkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdG9vbGJhcl9idXR0b24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2ZpbmRfY29udHJvbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvZmluZF9jb250cm9sbGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9zY3JpcHRpbmdfY29udHJvbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvc2lkZV9wYW5lbC9zaWRlX3BhbmVsX2NvbnRhaW5lci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdmlld19oZWxwX292ZXJsYXkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXdfbWV0YWRhdGFfb3ZlcmxheS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvcHJlZmVycmVkX2Rpc3BsYXlfdW5pdC5odG1sIj4KKworPHBvbHltZXItZWxlbWVudCBuYW1lPSd0ci11aS10aW1lbGluZS12aWV3Jz4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgICAgY3Vyc29yOiBkZWZhdWx0OworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICAgICAgcGFkZGluZzogMDsKKyAgICB9CisKKyAgICAjY29udHJvbCB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OworICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLAorICAgICAgICAgIGZyb20oI0U1RTVFNSksIHRvKCNEMUQxRDEpKTsKKyAgICAgIGZsZXg6IDAgMCBhdXRvOworICAgICAgb3ZlcmZsb3cteDogYXV0bzsKKyAgICB9CisKKyAgICAjY29udHJvbDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBoZWlnaHQ6IDBweDsgfQorCisgICAgI2NvbnRyb2wgPiAjYmFyIHsKKyAgICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OworICAgICAgbWFyZ2luOiAxcHg7CisgICAgfQorCisgICAgI2NvbnRyb2wgPiAjYmFyID4gI3RpdGxlIHsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7CisgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICB9CisKKyAgICAjY29udHJvbCA+ICNiYXIgPiAjbGVmdF9jb250cm9scywKKyAgICAjY29udHJvbCA+ICNiYXIgPiAjcmlnaHRfY29udHJvbHMgeworICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKKyAgICB9CisKKyAgICAjY29udHJvbCA+ICNiYXIgPiAjbGVmdF9jb250cm9scyA+ICogeyBtYXJnaW4tcmlnaHQ6IDJweDsgfQorICAgICNjb250cm9sID4gI2JhciA+ICNyaWdodF9jb250cm9scyA+ICogeyBtYXJnaW4tbGVmdDogMnB4OyB9CisgICAgI2NvbnRyb2wgPiAjY29sbGFwc2luZ19jb250cm9scyB7IGRpc3BsYXk6IGZsZXg7IH0KKworICAgIG1pZGRsZS1jb250YWluZXIgeworICAgICAgZmxleDogMSAxIGF1dG87CisgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OworICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4ZThlOGU7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgbWluLWhlaWdodDogMDsKKyAgICB9CisKKyAgICBtaWRkbGUtY29udGFpbmVyIDo6Y29udGVudCB0cmFjay12aWV3LWNvbnRhaW5lciB7CisgICAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICAgIGRpc3BsYXk6IGZsZXg7CisgICAgICBtaW4taGVpZ2h0OiAwOworICAgICAgbWluLXdpZHRoOiAwOworICAgIH0KKworICAgIG1pZGRsZS1jb250YWluZXIgOjpjb250ZW50IHRyYWNrLXZpZXctY29udGFpbmVyID4gKiB7IGZsZXg6IDEgMSBhdXRvOyB9CisgICAgbWlkZGxlLWNvbnRhaW5lciA+IHgtdGltZWxpbmUtdmlldy1zaWRlLXBhbmVsLWNvbnRhaW5lciB7IGZsZXg6IDAgMCBhdXRvOyB9CisgICAgeC1kcmFnLWhhbmRsZSB7IGZsZXg6IDAgMCBhdXRvOyB9CisgICAgdHItdWktYS1hbmFseXNpcy12aWV3IHsgZmxleDogMCAwIGF1dG87IH0KKyAgICA8L3N0eWxlPgorCisgICAgPHR2LXVpLWItaG90a2V5LWNvbnRyb2xsZXIgaWQ9ImhrYyI+PC90di11aS1iLWhvdGtleS1jb250cm9sbGVyPgorICAgIDxkaXYgaWQ9ImNvbnRyb2wiPgorICAgICAgPGRpdiBpZD0iYmFyIj4KKyAgICAgICAgPGRpdiBpZD0ibGVmdF9jb250cm9scyI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InRpdGxlIj5eX148L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmlnaHRfY29udHJvbHMiPgorICAgICAgICAgIDx0ci11aS1iLXRvb2xiYXItYnV0dG9uIGlkPSJ2aWV3X21ldGFkYXRhX2J1dHRvbiI+CisgICAgICAgICAgICBNCisgICAgICAgICAgPC90ci11aS1iLXRvb2xiYXItYnV0dG9uPgorICAgICAgICAgIDx0ci11aS1iLWRyb3Bkb3duIGlkPSJ2aWV3X29wdGlvbnNfZHJvcGRvd24iPjwvdHItdWktYi1kcm9wZG93bj4KKyAgICAgICAgICA8dHItdWktZmluZC1jb250cm9sIGlkPSJ2aWV3X2ZpbmRfY29udHJvbCI+PC90ci11aS1maW5kLWNvbnRyb2w+CisgICAgICAgICAgPHRyLXVpLWItdG9vbGJhci1idXR0b24gaWQ9InZpZXdfY29uc29sZV9idXR0b24iPgorICAgICAgICAgICAgJiMxODc7CisgICAgICAgICAgPC90ci11aS1iLXRvb2xiYXItYnV0dG9uPgorICAgICAgICAgIDx0ci11aS1iLXRvb2xiYXItYnV0dG9uIGlkPSJ2aWV3X2hlbHBfYnV0dG9uIj4KKyAgICAgICAgICAgID8KKyAgICAgICAgICA8L3RyLXVpLWItdG9vbGJhci1idXR0b24+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgICA8ZGl2IGlkPSJjb2xsYXBzaW5nX2NvbnRyb2xzIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8bWlkZGxlLWNvbnRhaW5lcj4KKyAgICAgIDxjb250ZW50PjwvY29udGVudD4KKworICAgICAgPHRyLXVpLXNpZGUtcGFuZWwtY29udGFpbmVyIGlkPSJzaWRlX3BhbmVsX2NvbnRhaW5lciI+CisgICAgICA8L3RyLXVpLXNpZGUtcGFuZWwtY29udGFpbmVyPgorICAgIDwvbWlkZGxlLWNvbnRhaW5lcj4KKyAgICA8eC1kcmFnLWhhbmRsZSBpZD0iZHJhZ19oYW5kbGUiPjwveC1kcmFnLWhhbmRsZT4KKyAgICA8dHItdWktYS1hbmFseXNpcy12aWV3IGlkPSJhbmFseXNpcyI+PC90ci11aS1hLWFuYWx5c2lzLXZpZXc+CisKKyAgICA8dHItdWktdS1wcmVmZXJyZWQtZGlzcGxheS11bml0IGlkPSJkaXNwbGF5X3VuaXQiPgorICAgIDwvdHItdWktdS1wcmVmZXJyZWQtZGlzcGxheS11bml0PgorICA8L3RlbXBsYXRlPgorCisgIDxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBQb2x5bWVyKHsKKyAgICByZWFkeTogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLnRhYkluZGV4ID0gMDsgLy8gTGV0IHRoZSB0aW1lbGluZSBhYmxlIHRvIHJlY2VpdmUga2V5IGV2ZW50cy4KKworICAgICAgdGhpcy50aXRsZUVsXyA9IHRoaXMuJC50aXRsZTsKKyAgICAgIHRoaXMubGVmdENvbnRyb2xzRWxfID0gdGhpcy4kLmxlZnRfY29udHJvbHM7CisgICAgICB0aGlzLnJpZ2h0Q29udHJvbHNFbF8gPSB0aGlzLiQucmlnaHRfY29udHJvbHM7CisgICAgICB0aGlzLmNvbGxhcHNpbmdDb250cm9sc0VsXyA9IHRoaXMuJC5jb2xsYXBzaW5nX2NvbnRyb2xzOworICAgICAgdGhpcy5zaWRlUGFuZWxDb250YWluZXJfID0gdGhpcy4kLnNpZGVfcGFuZWxfY29udGFpbmVyOworCisgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyA9IG5ldyB0ci5jLkJydXNoaW5nU3RhdGVDb250cm9sbGVyKHRoaXMpOworCisgICAgICB0aGlzLmZpbmRDdGxfID0gdGhpcy4kLnZpZXdfZmluZF9jb250cm9sOworICAgICAgdGhpcy5maW5kQ3RsXy5jb250cm9sbGVyID0gbmV3IHRyLnVpLkZpbmRDb250cm9sbGVyKAorICAgICAgICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfKTsKKworICAgICAgdGhpcy5zY3JpcHRpbmdDdGxfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktc2NyaXB0aW5nLWNvbnRyb2wnKTsKKyAgICAgIHRoaXMuc2NyaXB0aW5nQ3RsXy5jb250cm9sbGVyID0gbmV3IHRyLmMuU2NyaXB0aW5nQ29udHJvbGxlcigKKyAgICAgICAgICB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXyk7CisKKyAgICAgIHRoaXMuc2lkZVBhbmVsQ29udGFpbmVyXy5icnVzaGluZ1N0YXRlQ29udHJvbGxlciA9CisgICAgICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87CisKKyAgICAgIGlmICh3aW5kb3cudHIuZSAmJiB3aW5kb3cudHIuZS5yYWlsICYmIHdpbmRvdy50ci5lLnJhaWwuUkFJTFNjb3JlKSB7CisgICAgICAgIHRoaXMucmFpbFNjb3JlU3Bhbl8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KAorICAgICAgICAgICAgJ3RyLXVpLWUtcmFpbC1yYWlsLXNjb3JlLXNwYW4nKTsKKyAgICAgICAgdGhpcy5yaWdodENvbnRyb2xzLmFwcGVuZENoaWxkKHRoaXMucmFpbFNjb3JlU3Bhbl8pOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5yYWlsU2NvcmVTcGFuXyA9IHVuZGVmaW5lZDsKKyAgICAgIH0KKworICAgICAgdGhpcy5vcHRpb25zRHJvcGRvd25fID0gdGhpcy4kLnZpZXdfb3B0aW9uc19kcm9wZG93bjsKKyAgICAgIHRoaXMub3B0aW9uc0Ryb3Bkb3duXy5pY29uRWxlbWVudC50ZXh0Q29udGVudCA9ICdWaWV3IE9wdGlvbnMnOworCisgICAgICB0aGlzLnNob3dGbG93RXZlbnRzXyA9IGZhbHNlOworICAgICAgdGhpcy5vcHRpb25zRHJvcGRvd25fLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlQ2hlY2tCb3goCisgICAgICAgICAgdGhpcywgJ3Nob3dGbG93RXZlbnRzJywKKyAgICAgICAgICAndHIudWkuVGltZWxpbmVWaWV3LnNob3dGbG93RXZlbnRzJywgZmFsc2UsCisgICAgICAgICAgJ0Zsb3cgZXZlbnRzJykpOworICAgICAgdGhpcy5oaWdobGlnaHRWU3luY18gPSBmYWxzZTsKKyAgICAgIHRoaXMuaGlnaGxpZ2h0VlN5bmNDaGVja2JveF8gPSB0ci51aS5iLmNyZWF0ZUNoZWNrQm94KAorICAgICAgICAgIHRoaXMsICdoaWdobGlnaHRWU3luYycsCisgICAgICAgICAgJ3RyLnVpLlRpbWVsaW5lVmlldy5oaWdobGlnaHRWU3luYycsIGZhbHNlLAorICAgICAgICAgICdIaWdobGlnaHQgVlN5bmMnKTsKKyAgICAgIHRoaXMub3B0aW9uc0Ryb3Bkb3duXy5hcHBlbmRDaGlsZCh0aGlzLmhpZ2hsaWdodFZTeW5jQ2hlY2tib3hfKTsKKworICAgICAgdGhpcy5pbml0TWV0YWRhdGFCdXR0b25fKCk7CisgICAgICB0aGlzLmluaXRDb25zb2xlQnV0dG9uXygpOworICAgICAgdGhpcy5pbml0SGVscEJ1dHRvbl8oKTsKKworICAgICAgdGhpcy5jb2xsYXBzaW5nQ29udHJvbHMuYXBwZW5kQ2hpbGQodGhpcy5zY3JpcHRpbmdDdGxfKTsKKworICAgICAgdGhpcy5kcmFnRWxfID0gdGhpcy4kLmRyYWdfaGFuZGxlOworICAgICAgdHIudWkuYi5kZWNvcmF0ZSh0aGlzLmRyYWdFbF8sIHRyLnVpLmIuRHJhZ0hhbmRsZSk7CisKKyAgICAgIHRoaXMuYW5hbHlzaXNFbF8gPSB0aGlzLiQuYW5hbHlzaXM7CisgICAgICB0aGlzLmFuYWx5c2lzRWxfLmJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87CisKKyAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAncmVxdWVzdFNlbGVjdGlvbkNoYW5nZScsCisgICAgICAgICAgZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHNjID0gdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl87CisgICAgICAgICAgICBzYy5jaGFuZ2VTZWxlY3Rpb25Gcm9tUmVxdWVzdFNlbGVjdGlvbkNoYW5nZUV2ZW50KGUuc2VsZWN0aW9uKTsKKyAgICAgICAgICB9LmJpbmQodGhpcykpOworCisgICAgICAvLyBCb29ra2VlcGluZy4KKyAgICAgIHRoaXMub25WaWV3cG9ydENoYW5nZWRfID0gdGhpcy5vblZpZXdwb3J0Q2hhbmdlZF8uYmluZCh0aGlzKTsKKyAgICAgIHRoaXMuYmluZEtleUxpc3RlbmVyc18oKTsKKworICAgICAgdGhpcy5kcmFnRWxfLnRhcmdldCA9IHRoaXMuYW5hbHlzaXNFbF87CisgICAgfSwKKworICAgIGRvbVJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudHJhY2tWaWV3Q29udGFpbmVyXyA9IHRoaXMucXVlcnlTZWxlY3RvcignI3RyYWNrX3ZpZXdfY29udGFpbmVyJyk7CisgICAgfSwKKworICAgIGdldCBnbG9iYWxNb2RlKCkgeworICAgICAgcmV0dXJuIHRoaXMuaG90a2V5Q29udHJvbGxlci5nbG9iYWxNb2RlOworICAgIH0sCisKKyAgICBzZXQgZ2xvYmFsTW9kZShnbG9iYWxNb2RlKSB7CisgICAgICBnbG9iYWxNb2RlID0gISFnbG9iYWxNb2RlOworICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8uaGlzdG9yeUVuYWJsZWQgPSBnbG9iYWxNb2RlOworICAgICAgdGhpcy5ob3RrZXlDb250cm9sbGVyLmdsb2JhbE1vZGUgPSBnbG9iYWxNb2RlOworICAgIH0sCisKKyAgICBnZXQgaG90a2V5Q29udHJvbGxlcigpIHsKKyAgICAgIHJldHVybiB0aGlzLiQuaGtjOworICAgIH0sCisKKyAgICB1cGRhdGVEb2N1bWVudEZhdmljb246IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGh1ZTsKKyAgICAgIGlmICghdGhpcy5tb2RlbCkKKyAgICAgICAgaHVlID0gJ2JsdWUnOworICAgICAgZWxzZQorICAgICAgICBodWUgPSB0aGlzLm1vZGVsLmZhdmljb25IdWU7CisKKyAgICAgIHZhciBmYXZpY29uRGF0YSA9IHRyLnVpLmIuRmF2aWNvbnNCeUh1ZVtodWVdOworICAgICAgaWYgKGZhdmljb25EYXRhID09PSB1bmRlZmluZWQpCisgICAgICAgIGZhdmljb25EYXRhID0gdHIudWkuYi5GYXZpY29uc0J5SHVlWydibHVlJ107CisKKyAgICAgIC8vIEZpbmQgbGluayBpZiBpdHMgdGhlcmUKKyAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD0ic2hvcnRjdXQgaWNvbiJdJyk7CisgICAgICBpZiAoIWxpbmspIHsKKyAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKKyAgICAgICAgbGluay5yZWwgPSAnc2hvcnRjdXQgaWNvbic7CisgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGluayk7CisgICAgICB9CisgICAgICBsaW5rLmhyZWYgPSBmYXZpY29uRGF0YTsKKyAgICB9LAorCisgICAgZ2V0IHNob3dGbG93RXZlbnRzKCkgeworICAgICAgcmV0dXJuIHRoaXMuc2hvd0Zsb3dFdmVudHNfOworICAgIH0sCisKKyAgICBzZXQgc2hvd0Zsb3dFdmVudHMoc2hvd0Zsb3dFdmVudHMpIHsKKyAgICAgIHRoaXMuc2hvd0Zsb3dFdmVudHNfID0gc2hvd0Zsb3dFdmVudHM7CisgICAgICBpZiAoIXRoaXMudHJhY2tWaWV3XykKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LnNob3dGbG93RXZlbnRzID0gc2hvd0Zsb3dFdmVudHM7CisgICAgfSwKKworICAgIGdldCBoaWdobGlnaHRWU3luYygpIHsKKyAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodFZTeW5jXzsKKyAgICB9LAorCisgICAgc2V0IGhpZ2hsaWdodFZTeW5jKGhpZ2hsaWdodFZTeW5jKSB7CisgICAgICB0aGlzLmhpZ2hsaWdodFZTeW5jXyA9IGhpZ2hsaWdodFZTeW5jOworICAgICAgaWYgKCF0aGlzLnRyYWNrVmlld18pCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMudHJhY2tWaWV3Xy52aWV3cG9ydC5oaWdobGlnaHRWU3luYyA9IGhpZ2hsaWdodFZTeW5jOworICAgIH0sCisKKyAgICBpbml0SGVscEJ1dHRvbl86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGhlbHBCdXR0b25FbCA9IHRoaXMuJC52aWV3X2hlbHBfYnV0dG9uOworCisgICAgICBmdW5jdGlvbiBvbkNsaWNrKGUpIHsKKyAgICAgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICAgICAgZGxnLnRpdGxlID0gJ0Nocm9tZSBUcmFjaW5nIEhlbHAnOworICAgICAgICBkbGcuYXBwZW5kQ2hpbGQoCisgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS12aWV3LWhlbHAtb3ZlcmxheScpKTsKKyAgICAgICAgZGxnLnZpc2libGUgPSB0cnVlOworCisgICAgICAgIC8vIFN0b3AgZXZlbnQgc28gaXQgZG9lc24ndCB0cmlnZ2VyIG5ldyBjbGljayBsaXN0ZW5lciBvbiBkb2N1bWVudC4KKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgIH0KKyAgICAgIGhlbHBCdXR0b25FbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG9uQ2xpY2suYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGluaXRDb25zb2xlQnV0dG9uXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdG9nZ2xlRWwgPSB0aGlzLiQudmlld19jb25zb2xlX2J1dHRvbjsKKworICAgICAgZnVuY3Rpb24gb25DbGljayhlKSB7CisgICAgICAgIHRoaXMuc2NyaXB0aW5nQ3RsXy50b2dnbGVWaXNpYmlsaXR5KCk7CisgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIHRvZ2dsZUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25DbGljay5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgaW5pdE1ldGFkYXRhQnV0dG9uXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc2hvd0VsID0gdGhpcy4kLnZpZXdfbWV0YWRhdGFfYnV0dG9uOworCisgICAgICBmdW5jdGlvbiBvbkNsaWNrKGUpIHsKKyAgICAgICAgdmFyIGRsZyA9IG5ldyB0ci51aS5iLk92ZXJsYXkoKTsKKyAgICAgICAgZGxnLnRpdGxlID0gJ01ldGFkYXRhIGZvciB0cmFjZSc7CisKKyAgICAgICAgdmFyIG1ldGFkYXRhT3ZlcmxheSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoCisgICAgICAgICAgICAndHItdWktdGltZWxpbmUtdmlldy1tZXRhZGF0YS1vdmVybGF5Jyk7CisgICAgICAgIG1ldGFkYXRhT3ZlcmxheS5tZXRhZGF0YSA9IHRoaXMubW9kZWwubWV0YWRhdGE7CisKKyAgICAgICAgZGxnLmFwcGVuZENoaWxkKG1ldGFkYXRhT3ZlcmxheSk7CisgICAgICAgIGRsZy52aXNpYmxlID0gdHJ1ZTsKKworICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBzaG93RWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvbkNsaWNrLmJpbmQodGhpcykpOworCisgICAgICB0aGlzLnVwZGF0ZU1ldGFkYXRhQnV0dG9uVmlzaWJpbGl0eV8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlTWV0YWRhdGFCdXR0b25WaXNpYmlsaXR5XzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgc2hvd0VsID0gdGhpcy4kLnZpZXdfbWV0YWRhdGFfYnV0dG9uOworICAgICAgc2hvd0VsLnN0eWxlLmRpc3BsYXkgPQorICAgICAgICAgICh0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwubWV0YWRhdGEubGVuZ3RoKSA/ICcnIDogJ25vbmUnOworICAgIH0sCisKKyAgICBnZXQgbGVmdENvbnRyb2xzKCkgeworICAgICAgcmV0dXJuIHRoaXMubGVmdENvbnRyb2xzRWxfOworICAgIH0sCisKKyAgICBnZXQgcmlnaHRDb250cm9scygpIHsKKyAgICAgIHJldHVybiB0aGlzLnJpZ2h0Q29udHJvbHNFbF87CisgICAgfSwKKworICAgIGdldCBjb2xsYXBzaW5nQ29udHJvbHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5jb2xsYXBzaW5nQ29udHJvbHNFbF87CisgICAgfSwKKworICAgIGdldCB2aWV3VGl0bGUoKSB7CisgICAgICByZXR1cm4gdGhpcy50aXRsZUVsXy50ZXh0Q29udGVudC5zdWJzdHJpbmcoCisgICAgICAgICAgdGhpcy50aXRsZUVsXy50ZXh0Q29udGVudC5sZW5ndGggLSAyKTsKKyAgICB9LAorCisgICAgc2V0IHZpZXdUaXRsZSh0ZXh0KSB7CisgICAgICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMudGl0bGVFbF8udGV4dENvbnRlbnQgPSAnJzsKKyAgICAgICAgdGhpcy50aXRsZUVsXy5oaWRkZW4gPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB0aGlzLnRpdGxlRWxfLmhpZGRlbiA9IGZhbHNlOworICAgICAgdGhpcy50aXRsZUVsXy50ZXh0Q29udGVudCA9IHRleHQ7CisgICAgfSwKKworICAgIGdldCBtb2RlbCgpIHsKKyAgICAgIGlmICh0aGlzLnRyYWNrVmlld18pCisgICAgICAgIHJldHVybiB0aGlzLnRyYWNrVmlld18ubW9kZWw7CisgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBzZXQgbW9kZWwobW9kZWwpIHsKKyAgICAgIHZhciBtb2RlbEluc3RhbmNlQ2hhbmdlZCA9IG1vZGVsICE9IHRoaXMubW9kZWw7CisgICAgICB2YXIgbW9kZWxWYWxpZCA9IG1vZGVsICYmICFtb2RlbC5ib3VuZHMuaXNFbXB0eTsKKworICAgICAgLy8gUmVtb3ZlIG9sZCB0cmFja1ZpZXcgaWYgdGhlIG1vZGVsIGhhcyBjb21wbGV0ZWx5IGNoYW5nZWQuCisgICAgICBpZiAobW9kZWxJbnN0YW5jZUNoYW5nZWQpIHsKKyAgICAgICAgaWYgKHRoaXMucmFpbFNjb3JlU3Bhbl8pCisgICAgICAgICAgdGhpcy5yYWlsU2NvcmVTcGFuXy5yYWlsU2NvcmUgPSB1bmRlZmluZWQ7CisgICAgICAgIHRoaXMudHJhY2tWaWV3Q29udGFpbmVyXy50ZXh0Q29udGVudCA9ICcnOworICAgICAgICBpZiAodGhpcy50cmFja1ZpZXdfKSB7CisgICAgICAgICAgdGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uVmlld3BvcnRDaGFuZ2VkXyk7CisgICAgICAgICAgdGhpcy50cmFja1ZpZXdfLmJydXNoaW5nU3RhdGVDb250cm9sbGVyID0gdW5kZWZpbmVkOworICAgICAgICAgIHRoaXMudHJhY2tWaWV3Xy5kZXRhY2goKTsKKyAgICAgICAgICB0aGlzLnRyYWNrVmlld18gPSB1bmRlZmluZWQ7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcl8ubW9kZWxXaWxsQ2hhbmdlKCk7CisgICAgICB9CisKKyAgICAgIC8vIENyZWF0ZSBuZXcgdHJhY2tWaWV3IGlmIG5lZWRlZC4KKyAgICAgIGlmIChtb2RlbFZhbGlkICYmICF0aGlzLnRyYWNrVmlld18pIHsKKyAgICAgICAgdGhpcy50cmFja1ZpZXdfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdHJhY2stdmlldycpOworICAgICAgICB0aGlzLnRyYWNrVmlld18udGltZWxpbmVWaWV3ID0gdGhpczsKKworICAgICAgICB0aGlzLnRyYWNrVmlldy5icnVzaGluZ1N0YXRlQ29udHJvbGxlciA9IHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfOworCisgICAgICAgIHRoaXMudHJhY2tWaWV3Q29udGFpbmVyXy5hcHBlbmRDaGlsZCh0aGlzLnRyYWNrVmlld18pOworICAgICAgICB0aGlzLnRyYWNrVmlld18udmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICdjaGFuZ2UnLCB0aGlzLm9uVmlld3BvcnRDaGFuZ2VkXyk7CisgICAgICB9CisKKyAgICAgIC8vIFNldCB0aGUgbW9kZWwuCisgICAgICBpZiAobW9kZWxWYWxpZCkgeworICAgICAgICB0aGlzLnRyYWNrVmlld18ubW9kZWwgPSBtb2RlbDsKKyAgICAgICAgdGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LnNob3dGbG93RXZlbnRzID0gdGhpcy5zaG93Rmxvd0V2ZW50czsKKyAgICAgICAgdGhpcy50cmFja1ZpZXdfLnZpZXdwb3J0LmhpZ2hsaWdodFZTeW5jID0gdGhpcy5oaWdobGlnaHRWU3luYzsKKyAgICAgICAgaWYgKHRoaXMucmFpbFNjb3JlU3Bhbl8pIHsKKyAgICAgICAgICB2YXIgcmFpbFNjb3JlID0gdHIuZS5yYWlsLlJBSUxTY29yZS5mcm9tTW9kZWwobW9kZWwpOworICAgICAgICAgIHRoaXMucmFpbFNjb3JlU3Bhbl8ucmFpbFNjb3JlID0gcmFpbFNjb3JlOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy4kLmRpc3BsYXlfdW5pdC5wcmVmZXJyZWREaXNwbGF5VW5pdCA9IG1vZGVsLmludHJpbnNpY1RpbWVVbml0OworICAgICAgfQorCisgICAgICAvLyBEbyB0aGluZ3MgdGhhdCBhcmUgc2VsZWN0aW9uIHNwZWNpZmljCisgICAgICBpZiAobW9kZWxJbnN0YW5jZUNoYW5nZWQpIHsKKyAgICAgICAgdGhpcy51cGRhdGVNZXRhZGF0YUJ1dHRvblZpc2liaWxpdHlfKCk7CisgICAgICAgIHRoaXMuYnJ1c2hpbmdTdGF0ZUNvbnRyb2xsZXJfLm1vZGVsRGlkQ2hhbmdlKCk7CisgICAgICAgIHRoaXMub25WaWV3cG9ydENoYW5nZWRfKCk7CisgICAgICB9CisgICAgfSwKKworICAgIGdldCBicnVzaGluZ1N0YXRlQ29udHJvbGxlcigpIHsKKyAgICAgIHJldHVybiB0aGlzLmJydXNoaW5nU3RhdGVDb250cm9sbGVyXzsKKyAgICB9LAorCisgICAgZ2V0IHRyYWNrVmlldygpIHsKKyAgICAgIHJldHVybiB0aGlzLnRyYWNrVmlld187CisgICAgfSwKKworICAgIGdldCBzZXR0aW5ncygpIHsKKyAgICAgIGlmICghdGhpcy5zZXR0aW5nc18pCisgICAgICAgIHRoaXMuc2V0dGluZ3NfID0gbmV3IHRyLmIuU2V0dGluZ3MoKTsKKyAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzXzsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZC4gS2VwdCBhcm91bmQgYmVjYXVzZSB0aGlyZF9wYXJ0eSBjb2RlIG9jY2FzaW9uYWxseSBjYWxscworICAgICAqIHRoaXMgdG8gc2V0IHVwIGVtYmVkZGluZy4KKyAgICAgKi8KKyAgICBzZXQgZm9jdXNFbGVtZW50KHZhbHVlKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHNldCBnbG9iYWxNb2RlIHRvIHRydWUuJyk7CisgICAgfSwKKworICAgIGJpbmRLZXlMaXN0ZW5lcnNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBoa2MgPSB0aGlzLmhvdGtleUNvbnRyb2xsZXI7CisKKyAgICAgIC8vIFNob3J0Y3V0cyB0aGF0ICpjYW4qIHN0ZWFsIGZvY3VzIGZyb20gdGhlIGNvbnNvbGUgYW5kIHRoZSBmaWx0ZXIgdGV4dAorICAgICAgLy8gYm94LgorICAgICAgaGtjLmFkZEhvdEtleShuZXcgdHIudWkuYi5Ib3RLZXkoeworICAgICAgICBldmVudFR5cGU6ICdrZXlwcmVzcycsCisgICAgICAgIGtleUNvZGU6ICdgJy5jaGFyQ29kZUF0KDApLAorICAgICAgICB1c2VDYXB0dXJlOiB0cnVlLAorICAgICAgICB0aGlzQXJnOiB0aGlzLAorICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgeworICAgICAgICAgIHRoaXMuc2NyaXB0aW5nQ3RsXy50b2dnbGVWaXNpYmlsaXR5KCk7CisgICAgICAgICAgaWYgKCF0aGlzLnNjcmlwdGluZ0N0bF8uaGFzRm9jdXMpCisgICAgICAgICAgICB0aGlzLmZvY3VzKCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgfSkpOworCisgICAgICAvLyBTaG9ydGN1dHMgdGhhdCAqY2FuKiBzdGVhbCBmb2N1cyBmcm9tIHRoZSBmaWx0ZXIgdGV4dCBib3guCisgICAgICBoa2MuYWRkSG90S2V5KG5ldyB0ci51aS5iLkhvdEtleSh7CisgICAgICAgIGV2ZW50VHlwZTogJ2tleXByZXNzJywKKyAgICAgICAga2V5Q29kZTogJy8nLmNoYXJDb2RlQXQoMCksCisgICAgICAgIHVzZUNhcHR1cmU6IHRydWUsCisgICAgICAgIHRoaXNBcmc6IHRoaXMsCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgaWYgKHRoaXMuc2NyaXB0aW5nQ3RsXy5oYXNGb2N1cykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICBpZiAodGhpcy5maW5kQ3RsXy5oYXNGb2N1cykKKyAgICAgICAgICAgIHRoaXMuZm9jdXMoKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLmZpbmRDdGxfLmZvY3VzKCk7CisgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgIH0pKTsKKworICAgICAgLy8gU2hvcnRjdXRzIHRoYXQgKmNhbid0KiBzdGVhbCBmb2N1cy4KKyAgICAgIGhrYy5hZGRIb3RLZXkobmV3IHRyLnVpLmIuSG90S2V5KHsKKyAgICAgICAgZXZlbnRUeXBlOiAna2V5cHJlc3MnLAorICAgICAgICBrZXlDb2RlOiAnPycuY2hhckNvZGVBdCgwKSwKKyAgICAgICAgdXNlQ2FwdHVyZTogZmFsc2UsCisgICAgICAgIHRoaXNBcmc6IHRoaXMsCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhpcy4kLnZpZXdfaGVscF9idXR0b24uY2xpY2soKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KSk7CisKKyAgICAgIGhrYy5hZGRIb3RLZXkobmV3IHRyLnVpLmIuSG90S2V5KHsKKyAgICAgICAgZXZlbnRUeXBlOiAna2V5cHJlc3MnLAorICAgICAgICBrZXlDb2RlOiAndicuY2hhckNvZGVBdCgwKSwKKyAgICAgICAgdXNlQ2FwdHVyZTogZmFsc2UsCisgICAgICAgIHRoaXNBcmc6IHRoaXMsCisgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAgdGhpcy50b2dnbGVIaWdobGlnaHRWU3luY18oKTsKKyAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9CisgICAgICB9KSk7CisgICAgfSwKKworICAgIG9uVmlld3BvcnRDaGFuZ2VkXzogZnVuY3Rpb24oZSkgeworICAgICAgdmFyIHNwYyA9IHRoaXMuc2lkZVBhbmVsQ29udGFpbmVyXzsKKyAgICAgIGlmICghdGhpcy50cmFja1ZpZXdfKSB7CisgICAgICAgIHNwYy5yYW5nZU9mSW50ZXJlc3QucmVzZXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIgdnIgPSB0aGlzLnRyYWNrVmlld18udmlld3BvcnQuaW50ZXJlc3RSYW5nZS5hc1JhbmdlT2JqZWN0KCk7CisgICAgICBpZiAoIXNwYy5yYW5nZU9mSW50ZXJlc3QuZXF1YWxzKHZyKSkKKyAgICAgICAgc3BjLnJhbmdlT2ZJbnRlcmVzdCA9IHZyOworICAgIH0sCisKKyAgICB0b2dnbGVIaWdobGlnaHRWU3luY186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5oaWdobGlnaHRWU3luY0NoZWNrYm94Xy5jaGVja2VkID0KKyAgICAgICAgICAhdGhpcy5oaWdobGlnaHRWU3luY0NoZWNrYm94Xy5jaGVja2VkOworICAgIH0sCisKKyAgICBzZXRGaW5kQ3RsVGV4dDogZnVuY3Rpb24oc3RyaW5nKSB7CisgICAgICB0aGlzLmZpbmRDdGxfLnNldFRleHQoc3RyaW5nKTsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV92aWV3X2hlbHBfb3ZlcmxheS5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV92aWV3X2hlbHBfb3ZlcmxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMWRjYTAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdfaGVscF9vdmVybGF5Lmh0bWwKQEAgLTAsMCArMSwyMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2Uvb3ZlcmxheS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9tb3VzZV9tb2RlX2ljb24uaHRtbCI+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktdGltZWxpbmUtdmlldy1oZWxwLW92ZXJsYXkiPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87CisgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7CisgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgICB3aWR0aDogNzAwcHg7CisgICAgfQorICAgIC5jb2x1bW4geworICAgICAgd2lkdGg6IDUwJTsKKyAgICB9CisgICAgaDIgeworICAgICAgZm9udC1zaXplOiAxLjJlbTsKKyAgICAgIG1hcmdpbjogMDsKKyAgICAgIG1hcmdpbi10b3A6IDVweDsKKyAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICB9CisgICAgaDMgeworICAgICAgbWFyZ2luOiAwOworICAgICAgbWFyZ2luLWxlZnQ6IDEyNnB4OworICAgICAgbWFyZ2luLXRvcDogMTBweDsKKyAgICB9CisgICAgLnBhaXIgeworICAgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKKyAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICB9CisgICAgLmNvbW1hbmQgeworICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICAgIG1hcmdpbi1yaWdodDogNXB4OworICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CisgICAgICB3aWR0aDogMTUwcHg7CisgICAgfQorICAgIC5hY3Rpb24geworICAgICAgZm9udC1zaXplOiAwLjllbTsKKyAgICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgfQorICAgIHRyLXVpLWItbW91c2UtbW9kZS1pY29uIHsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM4ODg7CisgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CisgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMnB4IHJnYmEoMCwwLDAsMC4zKTsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIG1hcmdpbi1yaWdodDogMXB4OworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgdG9wOiA0cHg7CisgICAgfQorICAgIC5tb3VzZS1tb2RlLWljb24ucGFuLW1vZGUgeworICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTFweCAtMTFweDsKKyAgICB9CisgICAgLm1vdXNlLW1vZGUtaWNvbi5zZWxlY3QtbW9kZSB7CisgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXB4IC00MXB4OworICAgIH0KKyAgICAubW91c2UtbW9kZS1pY29uLnpvb20tbW9kZSB7CisgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXB4IC03MXB4OworICAgIH0KKyAgICAubW91c2UtbW9kZS1pY29uLnRpbWluZy1tb2RlIHsKKyAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xcHggLTEwMXB4OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgY2xhc3M9ImNvbHVtbiBsZWZ0Ij4KKyAgICAgIDxoMj5OYXZpZ2F0aW9uPC9oMj4KKyAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgorICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz53L3M8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5ab29tIGluL291dCAoK3NoaWZ0OiBmYXN0ZXIpPC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmEvZDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlBhbiBsZWZ0L3JpZ2h0ICgrc2hpZnQ6IGZhc3Rlcik8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+JnJhcnI7L3NoaWZ0LVRBQjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlNlbGVjdCBwcmV2aW91cyBldmVudDwvZGl2PgorICAgICAgPC9kaXY+CisKKyAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgorICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz4mbGFycjsvVEFCPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+U2VsZWN0IG5leHQgZXZlbnQ8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8aDI+TW91c2UgQ29udHJvbHM8L2gyPgorICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmNsaWNrPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+U2VsZWN0IGV2ZW50PC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgorICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5hbHQtbW91c2V3aGVlbDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlpvb20gaW4vb3V0PC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGgzPgorICAgICAgICA8dHItdWktYi1tb3VzZS1tb2RlLWljb24gbW9kZU5hbWU9IlNFTEVDVElPTiI+PC90ci11aS1iLW1vdXNlLW1vZGUtaWNvbj4KKyAgICAgICAgU2VsZWN0IG1vZGUKKyAgICAgIDwvaDM+CisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ZHJhZzwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPkJveCBzZWxlY3Q8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ZG91YmxlIGNsaWNrPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+U2VsZWN0IGFsbCBldmVudHMgd2l0aCBzYW1lIHRpdGxlPC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGgzPgorICAgICAgICA8dHItdWktYi1tb3VzZS1tb2RlLWljb24gbW9kZU5hbWU9IlBBTlNDQU4iPjwvdHItdWktYi1tb3VzZS1tb2RlLWljb24+CisgICAgICAgIFBhbiBtb2RlCisgICAgICA8L2gzPgorICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmRyYWc8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5QYW4gdGhlIHZpZXc8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8aDM+CisgICAgICAgIDx0ci11aS1iLW1vdXNlLW1vZGUtaWNvbiBtb2RlTmFtZT0iWk9PTSI+PC90ci11aS1iLW1vdXNlLW1vZGUtaWNvbj4KKyAgICAgICAgWm9vbSBtb2RlCisgICAgICA8L2gzPgorICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmRyYWc8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5ab29tIGluL291dCBieSBkcmFnZ2luZyB1cC9kb3duPC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGgzPgorICAgICAgICA8dHItdWktYi1tb3VzZS1tb2RlLWljb24gbW9kZU5hbWU9IlRJTUlORyI+PC90ci11aS1iLW1vdXNlLW1vZGUtaWNvbj4KKyAgICAgICAgVGltaW5nIG1vZGUKKyAgICAgIDwvaDM+CisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ZHJhZzwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPkNyZWF0ZSBvciBtb3ZlIG1hcmtlcnM8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ZG91YmxlIGNsaWNrPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+U2V0IG1hcmtlciByYW5nZSB0byBzbGljZTwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisKKyAgICA8ZGl2IGNsYXNzPSJjb2x1bW4gcmlnaHQiPgorICAgICAgPGgyPkdlbmVyYWw8L2gyPgorICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPjEtNDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlN3aXRjaCBtb3VzZSBtb2RlPC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPnNoaWZ0PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+SG9sZCBmb3IgdGVtcG9yYXJ5IHNlbGVjdDwvZGl2PgorICAgICAgPC9kaXY+CisKKyAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgorICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5zcGFjZTwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPkhvbGQgZm9yIHRlbXBvcmFyeSBwYW48L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+PHNwYW4gY2xhc3M9J21vZCc+PC9zcGFuPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPkhvbGQgZm9yIHRlbXBvcmFyeSB6b29tPC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPi88L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5TZWFyY2g8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ZW50ZXI8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0nYWN0aW9uJz5TdGVwIHRocm91Z2ggc2VhcmNoIHJlc3VsdHM8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ZjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlpvb20gaW50byBzZWxlY3Rpb248L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+ei8wPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+UmVzZXQgem9vbSBhbmQgcGFuPC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGRpdiBjbGFzcz0ncGFpcic+CisgICAgICAgIDxkaXYgY2xhc3M9J2NvbW1hbmQnPmcvRzwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlRvZ2dsZSA2MGh6IGdyaWQ8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+djwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPkhpZ2hsaWdodCBWU3luYzwvZGl2PgorICAgICAgPC9kaXY+CisKKyAgICAgIDxkaXYgY2xhc3M9J3BhaXInPgorICAgICAgICA8ZGl2IGNsYXNzPSdjb21tYW5kJz5oPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9J2FjdGlvbic+VG9nZ2xlIGxvdy9oaWdoIGRldGFpbHM8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+bTwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPk1hcmsgY3VycmVudCBzZWxlY3Rpb248L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+YDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlNob3cgb3IgaGlkZSB0aGUgc2NyaXB0aW5nIGNvbnNvbGU8L2Rpdj4KKyAgICAgIDwvZGl2PgorCisgICAgICA8ZGl2IGNsYXNzPSdwYWlyJz4KKyAgICAgICAgPGRpdiBjbGFzcz0nY29tbWFuZCc+PzwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSdhY3Rpb24nPlNob3cgaGVscDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgIDwvdGVtcGxhdGU+CisKKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoJ3RyLXVpLXRpbWVsaW5lLXZpZXctaGVscC1vdmVybGF5JywgeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBtb2QgPSB0ci5pc01hYyA/ICdjbWQgJyA6ICdjdHJsJzsKKyAgICAgIHZhciBzcGFucyA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuLm1vZCcpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzcGFucy5sZW5ndGg7IGkrKykgeworICAgICAgICBzcGFuc1tpXS50ZXh0Q29udGVudCA9IG1vZDsKKyAgICAgIH0KKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV92aWV3X2hlbHBfb3ZlcmxheV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdfaGVscF9vdmVybGF5X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTZlNTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV92aWV3X2hlbHBfb3ZlcmxheV90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXdfaGVscF9vdmVybGF5Lmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luYWN0aXZlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdmlldy1oZWxwLW92ZXJsYXknKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV92aWV3X21ldGFkYXRhX292ZXJsYXkuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdmlld19tZXRhZGF0YV9vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI1N2U2NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdmlld19tZXRhZGF0YV9vdmVybGF5Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9vdmVybGF5Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL21vdXNlX21vZGVfaWNvbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3Lmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXRpbWVsaW5lLXZpZXctbWV0YWRhdGEtb3ZlcmxheSI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3R5bGU+CisgICAgOmhvc3QgeworICAgICAgd2lkdGg6IDcwMHB4OworCisgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktdS1nZW5lcmljLXRhYmxlLXZpZXcgaWQ9Imd0diI+PC90ci11aS11LWdlbmVyaWMtdGFibGUtdmlldz4KKyAgPC90ZW1wbGF0ZT4KKworICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcigndHItdWktdGltZWxpbmUtdmlldy1tZXRhZGF0YS1vdmVybGF5JywgeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5tZXRhZGF0YV8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBtZXRhZGF0YSgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1ldGFkYXRhXzsKKyAgICB9LAorCisgICAgc2V0IG1ldGFkYXRhKG1ldGFkYXRhKSB7CisgICAgICB0aGlzLm1ldGFkYXRhXyA9IG1ldGFkYXRhOworICAgICAgdGhpcy4kLmd0di5pdGVtcyA9IHRoaXMubWV0YWRhdGFfOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdfbWV0YWRhdGFfb3ZlcmxheV90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdfbWV0YWRhdGFfb3ZlcmxheV90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VkYmQ1MgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdmlld19tZXRhZGF0YV9vdmVybGF5X3Rlc3QuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdmlld19tZXRhZGF0YV9vdmVybGF5Lmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luYWN0aXZlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdmlldy1tZXRhZGF0YS1vdmVybGF5Jyk7CisgICAgZWwubWV0YWRhdGEgPSBbCisgICAgICB7CisgICAgICAgIG5hbWU6ICdjbGllbnRJbmZvJywKKyAgICAgICAgdmFsdWU6IHsKKyAgICAgICAgICBjb21tYW5kX2xpbmU6ICcuL291dC9SZWxlYXNlL0Nocm9taXVtLmFwcC9Db250ZW50cy9NYWNPUy9DaHJvbWl1bSAtLWVuYWJsZS10aHJlYWRlZC1jb21wb3NpdGluZyAtLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUgLS1lbmFibGUtaW1wbC1zaWRlLXBhaW50aW5nIC0tZW5hYmxlLXNraWEtYmVuY2htYXJraW5nIC0tYWxsb3ctd2VidWktY29tcG9zaXRpbmcgLS1mbGFnLXN3aXRjaGVzLWJlZ2luIC0tZm9yY2UtY29tcG9zaXRpbmctbW9kZSAtLWRpc2FibGUtdGhyZWFkZWQtY29tcG9zaXRpbmcgLS1mbGFnLXN3aXRjaGVzLWVuZCcsIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgICAgICAgICAgdmVyc2lvbjogJ0Nocm9tZS8yOS4wLjE1MjEuMCcKKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgbmFtZTogJ3NvbWV0aGluZ0Vsc2UnLAorICAgICAgICB2YWx1ZTogJ2Zhc2NpbmF0aW5nIScKKyAgICAgIH0KKyAgICBdOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGVsKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdmlld190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YWFmMDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3Rhc2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7CisgIHZhciBUYXNrID0gdHIuYi5UYXNrOworCisgIGZ1bmN0aW9uIHNldHVwVGltZWxpbmUoKSB7CisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyYWNrLXZpZXctY29udGFpbmVyJyk7CisgICAgY29udGFpbmVyLmlkID0gJ3RyYWNrX3ZpZXdfY29udGFpbmVyJzsKKworICAgIHZhciB2aWV3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdGltZWxpbmUtdmlldycpOworICAgIHZpZXcuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKKyAgICB2aWV3LnRyYWNrVmlld0NvbnRhaW5lcl8gPSBjb250YWluZXI7CisgICAgcmV0dXJuIHZpZXc7CisgIH0KKworICB2YXIgY3JlYXRlRnVsbHlQb3B1bGF0ZWRNb2RlbCA9IGZ1bmN0aW9uKG9wdF93aXRoRXJyb3IsIG9wdF93aXRoTWV0YWRhdGEpIHsKKyAgICB2YXIgd2l0aEVycm9yID0gb3B0X3dpdGhFcnJvciAhPT0gdW5kZWZpbmVkID8gb3B0X3dpdGhFcnJvciA6IHRydWU7CisgICAgdmFyIHdpdGhNZXRhZGF0YSA9IG9wdF93aXRoTWV0YWRhdGEgIT09IHVuZGVmaW5lZCA/CisgICAgICAgIG9wdF93aXRoTWV0YWRhdGEgOiB0cnVlOworCisgICAgdmFyIG51bV90ZXN0cyA9IDUwOworICAgIHZhciB0ZXN0SW5kZXggPSAwOworICAgIHZhciBzdGFydFRpbWUgPSAwOworCisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgZm9yICh0ZXN0SW5kZXggPSAwOyB0ZXN0SW5kZXggPCBudW1fdGVzdHM7ICsrdGVzdEluZGV4KSB7CisgICAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMDAwMCArIHRlc3RJbmRleCk7CisgICAgICBpZiAodGVzdEluZGV4ICUgMiA9PSAwKSB7CisgICAgICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKCdUaHJlYWQgTmFtZSBIZXJlJyk7CisgICAgICAgIHRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgdHIubW9kZWwuU2xpY2UoCisgICAgICAgICAgICAnZm9vJywgJ2EnLCAwLCBzdGFydFRpbWUsIHt9LCAxKSk7CisgICAgICAgIHRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgdHIubW9kZWwuU2xpY2UoCisgICAgICAgICAgICAnYmFyJywgJ2InLCAwLCBzdGFydFRpbWUgKyAyMywge30sIDEwKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgnTmFtZScpOworICAgICAgICB0aHJlYWQuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3IHRyLm1vZGVsLlNsaWNlKAorICAgICAgICAgICAgJ2ZvbycsICdhJywgMCwgc3RhcnRUaW1lICsgNCwge30sIDExKSk7CisgICAgICAgIHRocmVhZC5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgdHIubW9kZWwuU2xpY2UoCisgICAgICAgICAgICAnYmFyJywgJ2InLCAwLCBzdGFydFRpbWUgKyAyMiwge30sIDE0KSk7CisgICAgICB9CisgICAgfQorICAgIHZhciBwMTAwMCA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMDAwKTsKKyAgICB2YXIgb2JqZWN0cyA9IHAxMDAwLm9iamVjdHM7CisgICAgb2JqZWN0cy5pZFdhc0NyZWF0ZWQoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgMTApOworICAgIG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAnc25hcHNob3QtMScpOworICAgIG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgMjUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc25hcHNob3QtMicpOworICAgIG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0xheWVyVHJlZUhvc3RJbXBsJywgNDAsCisgICAgICAgICAgICAgICAgICAgICAgICAnc25hcHNob3QtMycpOworICAgIG9iamVjdHMuaWRXYXNEZWxldGVkKCcweDEwMDAnLCAndHIuZS5jYycsICdMYXllclRyZWVIb3N0SW1wbCcsIDQ1KTsKKyAgICBtb2RlbC51cGRhdGVDYXRlZ29yaWVzXygpOworCisgICAgLy8gQWRkIGEga25vd24gcHJvYmxlbWF0aWMgcGllY2Ugb2YgZGF0YSB0byB0ZXN0IHRoZSBpbXBvcnQgZXJyb3JzIFVJLgorICAgIG1vZGVsLmltcG9ydFdhcm5pbmcoeworICAgICAgdHlwZTogJ3Rlc3RfZXJyb3InLAorICAgICAgbWVzc2FnZTogJ1N5bnRoZXRpYyBJbXBvcnQgRXJyb3InCisgICAgfSk7CisgICAgbW9kZWwudXBkYXRlQm91bmRzKCk7CisKKyAgICAvLyBBZGQgZGF0YSB3aXRoIG1ldGFkYXRhIGluZm9ybWF0aW9uIHN0b3JlZAorICAgIG1vZGVsLm1ldGFkYXRhLnB1c2goe25hbWU6ICdhJywgdmFsdWU6ICd0ZXN0QSd9KTsKKyAgICBtb2RlbC5tZXRhZGF0YS5wdXNoKHtuYW1lOiAnYicsIHZhbHVlOiAndGVzdEInfSk7CisgICAgbW9kZWwubWV0YWRhdGEucHVzaCh7bmFtZTogJ2MnLCB2YWx1ZTogJ3Rlc3RDJ30pOworCisgICAgcmV0dXJuIG1vZGVsOworICB9OworCisgIHZhciB2aXNpYmxlVHJhY2tzID0gZnVuY3Rpb24odHJhY2tCdXR0b25zKSB7CisgICAgcmV0dXJuIHRyYWNrQnV0dG9ucy5yZWR1Y2UoZnVuY3Rpb24obnVtVmlzaWJsZSwgYnV0dG9uKSB7CisgICAgICB2YXIgc3R5bGUgPSBidXR0b24ucGFyZW50RWxlbWVudC5zdHlsZTsKKyAgICAgIHZhciB2aXNpYmxlID0gKHN0eWxlLmRpc3BsYXkuaW5kZXhPZignbm9uZScpID09PSAtMSk7CisgICAgICByZXR1cm4gdmlzaWJsZSA/IG51bVZpc2libGUgKyAxIDogbnVtVmlzaWJsZTsKKyAgICB9LCAwKTsKKyAgfTsKKworICB2YXIgbW9kZWxzRXF1aXZhbGVudCA9IGZ1bmN0aW9uKGxocywgcmhzKSB7CisgICAgaWYgKGxocy5sZW5ndGggIT09IHJocy5sZW5ndGgpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGxocy5ldmVyeShmdW5jdGlvbihsaHNJdGVtLCBpbmRleCkgeworICAgICAgdmFyIHJoc0l0ZW0gPSByaHNbaW5kZXhdOworICAgICAgcmV0dXJuIHJoc0l0ZW0ucmVnZXhwVGV4dCA9PT0gbGhzSXRlbS5yZWdleHBUZXh0ICYmCisgICAgICAgICAgcmhzSXRlbS5pc09uID09PSBsaHNJdGVtLmlzT247CisgICAgfSk7CisgIH07CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwxMSA9IGNyZWF0ZUZ1bGx5UG9wdWxhdGVkTW9kZWwodHJ1ZSwgdHJ1ZSk7CisKKyAgICB2YXIgdmlldyA9IHNldHVwVGltZWxpbmUoKTsKKyAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc0MDBweCc7CisgICAgdmlldy5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkIGJsYWNrJzsKKyAgICB2aWV3Lm1vZGVsID0gbW9kZWwxMTsKKworICAgIHZhciBzaW1wbGVCdXR0b24xID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYi10b29sYmFyLWJ1dHRvbicpOworICAgIHNpbXBsZUJ1dHRvbjEudGV4dENvbnRlbnQgPSAnTSc7CisgICAgdmlldy5sZWZ0Q29udHJvbHMuYXBwZW5kQ2hpbGQoc2ltcGxlQnV0dG9uMSk7CisKKyAgICB2YXIgc2ltcGxlQnV0dG9uMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWItdG9vbGJhci1idXR0b24nKTsKKyAgICBzaW1wbGVCdXR0b24yLnRleHRDb250ZW50ID0gJ2FtIGJ1dHRvbic7CisgICAgdmlldy5sZWZ0Q29udHJvbHMuYXBwZW5kQ2hpbGQoc2ltcGxlQnV0dG9uMik7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodmlldyk7CisgIH0pOworCisgIHRlc3QoJ2NoYW5nZU1vZGVsVG9Tb21ldGhpbmdEaWZmZXJlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwwMCA9IGNyZWF0ZUZ1bGx5UG9wdWxhdGVkTW9kZWwoZmFsc2UsIGZhbHNlKTsKKyAgICB2YXIgbW9kZWwxMSA9IGNyZWF0ZUZ1bGx5UG9wdWxhdGVkTW9kZWwodHJ1ZSwgdHJ1ZSk7CisKKyAgICB2YXIgdmlldyA9IHNldHVwVGltZWxpbmUoKTsKKyAgICB2aWV3LnN0eWxlLmhlaWdodCA9ICc0MDBweCc7CisgICAgdmlldy5tb2RlbCA9IG1vZGVsMDA7CisgICAgdmlldy5tb2RlbCA9IHVuZGVmaW5lZDsKKyAgICB2aWV3Lm1vZGVsID0gbW9kZWwxMTsKKyAgICB2aWV3Lm1vZGVsID0gbW9kZWwwMDsKKyAgfSk7CisKKyAgdGVzdCgnc2V0TW9kZWxUb1NhbWVUaGluZ0FnYWluJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gY3JlYXRlRnVsbHlQb3B1bGF0ZWRNb2RlbChmYWxzZSwgZmFsc2UpOworCisgICAgLy8gQ3JlYXRlIGEgdmlldyB3aXRoIGFtIG1vZGVsLgorICAgIHZhciB2aWV3ID0gc2V0dXBUaW1lbGluZSgpOworICAgIHZpZXcuc3R5bGUuaGVpZ2h0ID0gJzQwMHB4JzsKKyAgICB2aWV3Lm1vZGVsID0gbW9kZWw7CisgICAgdmFyIHNjID0gdmlldy5icnVzaGluZ1N0YXRlQ29udHJvbGxlcjsKKworICAgIC8vIE11dGF0ZSB0aGUgbW9kZWwgYW5kIHVwZGF0ZSB0aGUgdmlldy4KKyAgICB2YXIgdDEyMyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpLmdldE9yQ3JlYXRlVGhyZWFkKDEyMyk7CisgICAgdDEyMy5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdzb21ldGhpbmdVbnVzdWFsJywgMCwgNSkpOworICAgIHZpZXcubW9kZWwgPSBtb2RlbDsKKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBuZXcgYml0cyBvZiB0aGUgbW9kZWwgc2hvdyB1cCBpbiB0aGUgdmlldy4KKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgdmFyIGZpbHRlciA9IG5ldyB0ci5jLlRpdGxlT3JDYXRlZ29yeUZpbHRlcignc29tZXRoaW5nVW51c3VhbCcpOworICAgIHZhciBmaWx0ZXJUYXNrID0gc2MuYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbkFzVGFzaygKKyAgICAgICAgZmlsdGVyLCBzZWxlY3Rpb24pOworICAgIFRhc2suUnVuU3luY2hyb25vdXNseShmaWx0ZXJUYXNrKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90aW1lbGluZV92aWV3cG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMjZlYWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwKQEAgLTAsMCArMSw0MjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9hbmltYXRpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvYW5pbWF0aW9uX2NvbnRyb2xsZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZHJhd19oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV9pbnRlcmVzdF9yYW5nZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jb250YWluZXJfdG9fdHJhY2tfbWFwLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZXZlbnRfdG9fdHJhY2tfbWFwLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgQ29kZSBmb3IgdGhlIHZpZXdwb3J0LgorICovCit0ci5leHBvcnRUbygndHIudWknLCBmdW5jdGlvbigpIHsKKyAgdmFyIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSA9IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybTsKKyAgdmFyIFRpbWVsaW5lSW50ZXJlc3RSYW5nZSA9IHRyLnVpLlRpbWVsaW5lSW50ZXJlc3RSYW5nZTsKKworICAvKioKKyAgICogVGhlIFRpbWVsaW5lVmlld3BvcnQgbWFuYWdlcyB0aGUgdHJhbnNmb3JtIHVzZWQgZm9yIG5hdmlnYXRpbmcKKyAgICogd2l0aGluIHRoZSB0aW1lbGluZS4gSXQgaXMgYSBzaW1wbGUgdHJhbnNmb3JtOgorICAgKiAgIHgnID0gKHgrcGFuKSAqIHNjYWxlCisgICAqCisgICAqIFRoZSB0aW1lbGluZSBjb2RlIHRyaWVzIHRvIGF2b2lkIGRpcmVjdGx5IGFjY2Vzc2luZyB0aGlzIHRyYW5zZm9ybSwKKyAgICogaW5zdGVhZCB1c2luZyB0aGlzIGNsYXNzIHRvIGRvIGNvbnZlcnNpb24gYmV0d2VlbiB3b3JsZCBhbmQgdmlld3NwYWNlLAorICAgKiBhcyB3ZWxsIGFzIHRoZSBtYXRoIGZvciBjZW50ZXJpbmcgdGhlIHZpZXdwb3J0IGluIHZhcmlvdXMgaW50ZXJlc3RpbmcKKyAgICogd2F5cy4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHt0ci5iLkV2ZW50VGFyZ2V0fQorICAgKi8KKyAgZnVuY3Rpb24gVGltZWxpbmVWaWV3cG9ydChwYXJlbnRFbCkgeworICAgIHRoaXMucGFyZW50RWxfID0gcGFyZW50RWw7CisgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXyA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXyA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICB0aGlzLmluaXRBbmltYXRpb25Db250cm9sbGVyXygpOworCisgICAgLy8gRmxvdyBldmVudHMKKyAgICB0aGlzLnNob3dGbG93RXZlbnRzXyA9IGZhbHNlOworCisgICAgLy8gSGlnaGxpZ2h0cy4KKyAgICB0aGlzLmhpZ2hsaWdodFZTeW5jXyA9IGZhbHNlOworCisgICAgLy8gSGlnaCBkZXRhaWxzLgorICAgIHRoaXMuaGlnaERldGFpbHNfID0gZmFsc2U7CisKKyAgICAvLyBHcmlkIHN5c3RlbS4KKyAgICB0aGlzLmdyaWRUaW1lYmFzZV8gPSAwOworICAgIHRoaXMuZ3JpZFN0ZXBfID0gMTAwMCAvIDYwOworICAgIHRoaXMuZ3JpZEVuYWJsZWRfID0gZmFsc2U7CisKKyAgICAvLyBJbml0IGxvZ2ljLgorICAgIHRoaXMuaGFzQ2FsbGVkU2V0dXBGdW5jdGlvbl8gPSBmYWxzZTsKKworICAgIHRoaXMub25SZXNpemVfID0gdGhpcy5vblJlc2l6ZV8uYmluZCh0aGlzKTsKKyAgICB0aGlzLm9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfID0KKyAgICAgICAgdGhpcy5vbk1vZGVsVHJhY2tDb250cm9sbGVyU2Nyb2xsXy5iaW5kKHRoaXMpOworCisgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIHVzZXMgYW4gaW50ZXJ2YWwgdG8gZGV0ZWN0IHdoZW4gdGhlIHBhcmVudCBlbGVtZW50CisgICAgLy8gaXMgYXR0YWNoZWQgdG8gdGhlIGRvY3VtZW50LiBUaGF0IGlzIGEgdHJpZ2dlciB0byBydW4gdGhlIHNldHVwIGZ1bmN0aW9uCisgICAgLy8gYW5kIGluc3RhbGwgYSByZXNpemUgbGlzdGVuZXIuCisgICAgdGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXyA9IHNldEludGVydmFsKAorICAgICAgICB0aGlzLmNoZWNrRm9yQXR0YWNoXy5iaW5kKHRoaXMpLCAyNTApOworCisgICAgdGhpcy5tYWpvck1hcmtQb3NpdGlvbnMgPSBbXTsKKyAgICB0aGlzLmludGVyZXN0UmFuZ2VfID0gbmV3IFRpbWVsaW5lSW50ZXJlc3RSYW5nZSh0aGlzKTsKKworICAgIHRoaXMuZXZlbnRUb1RyYWNrTWFwXyA9IG5ldyB0ci51aS50cmFja3MuRXZlbnRUb1RyYWNrTWFwKCk7CisgICAgdGhpcy5jb250YWluZXJUb1RyYWNrTWFwID0gbmV3IHRyLnVpLnRyYWNrcy5Db250YWluZXJUb1RyYWNrTWFwKCk7CisgIH0KKworICBUaW1lbGluZVZpZXdwb3J0LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLmIuRXZlbnRUYXJnZXQucHJvdG90eXBlLAorCisgICAgLyoqCisgICAgICogQWxsb3dzIGluaXRpYWxpemF0aW9uIG9mIHRoZSB2aWV3cG9ydCB3aGVuIHRoZSB2aWV3cG9ydCdzIHBhcmVudCBlbGVtZW50CisgICAgICogaGFzIGJlZW4gYXR0YWNoZWQgdG8gdGhlIGRvY3VtZW50IGFuZCBnaXZlbiBhIHNpemUuCisgICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gRnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSB2aWV3cG9ydCBjYW4gYmUgc2FmZWx5CisgICAgICogaW5pdGlhbGl6ZWQuCisgICAgICovCisgICAgc2V0V2hlblBvc3NpYmxlOiBmdW5jdGlvbihmbikgeworICAgICAgdGhpcy5wZW5kaW5nU2V0RnVuY3Rpb25fID0gZm47CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGN1cnJlbnQgdGltZWxpbmUgaXMgYXR0YWNoZWQgdG8gdGhlCisgICAgICogZG9jdW1lbnQuCisgICAgICovCisgICAgZ2V0IGlzQXR0YWNoZWRUb0RvY3VtZW50T3JJblRlc3RNb2RlKCkgeworICAgICAgLy8gQWxsb3cgbm90IHByb3ZpZGluZyBhIHBhcmVudCBlbGVtZW50LCB1c2VkIGJ5IHRlc3RzLgorICAgICAgaWYgKHRoaXMucGFyZW50RWxfID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHJldHVybiB0ci51aS5iLmlzRWxlbWVudEF0dGFjaGVkVG9Eb2N1bWVudCh0aGlzLnBhcmVudEVsXyk7CisgICAgfSwKKworICAgIG9uUmVzaXplXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHBhcmVudE5vZGUgaXMgYXR0YWNoZWQgdG8gdGhlIGRvY3VtZW50LgorICAgICAqIFdoZW4gaXQgaXMsIGl0IGluc3RhbGxzIHRoZSBpZnJhbWUtYmFzZWQgcmVzaXplIGRldGVjdGlvbiBob29rCisgICAgICogYW5kIHRoZW4gcnVucyB0aGUgcGVuZGluZ1NldEZ1bmN0aW9uXywgaWYgcHJlc2VudC4KKyAgICAgKi8KKyAgICBjaGVja0ZvckF0dGFjaF86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmlzQXR0YWNoZWRUb0RvY3VtZW50T3JJblRlc3RNb2RlIHx8IHRoaXMuY2xpZW50V2lkdGggPT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBpZiAoIXRoaXMuaWZyYW1lXykgeworICAgICAgICB0aGlzLmlmcmFtZV8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICAgICAgdGhpcy5pZnJhbWVfLnN0eWxlLmNzc1RleHQgPQorICAgICAgICAgICAgJ3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjA7Ym9yZGVyOjA7dmlzaWJpbGl0eTpoaWRkZW47JzsKKyAgICAgICAgdGhpcy5wYXJlbnRFbF8uYXBwZW5kQ2hpbGQodGhpcy5pZnJhbWVfKTsKKworICAgICAgICB0aGlzLmlmcmFtZV8uY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uUmVzaXplXyk7CisgICAgICB9CisKKyAgICAgIHZhciBjdXJTaXplID0gdGhpcy5wYXJlbnRFbF8uY2xpZW50V2lkdGggKyAneCcgKworICAgICAgICAgIHRoaXMucGFyZW50RWxfLmNsaWVudEhlaWdodDsKKyAgICAgIGlmICh0aGlzLnBlbmRpbmdTZXRGdW5jdGlvbl8pIHsKKyAgICAgICAgdGhpcy5sYXN0U2l6ZV8gPSBjdXJTaXplOworICAgICAgICB0cnkgeworICAgICAgICAgIHRoaXMucGVuZGluZ1NldEZ1bmN0aW9uXygpOworICAgICAgICB9IGNhdGNoIChleCkgeworICAgICAgICAgIGNvbnNvbGUubG9nKCdXaGlsZSBydW5uaW5nIHNldFdoZW5Qb3NzaWJsZTonLAorICAgICAgICAgICAgICBleC5tZXNzYWdlID8gZXgubWVzc2FnZSArICdcbicgKyBleC5zdGFjayA6IGV4LnN0YWNrKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnBlbmRpbmdTZXRGdW5jdGlvbl8gPSB1bmRlZmluZWQ7CisgICAgICB9CisKKyAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuY2hlY2tGb3JBdHRhY2hJbnRlcnZhbF8pOworICAgICAgdGhpcy5jaGVja0ZvckF0dGFjaEludGVydmFsXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogRmlyZXMgdGhlIGNoYW5nZSBldmVudCBvbiB0aGlzIHZpZXdwb3J0LiBVc2VkIHRvIG5vdGlmeSBsaXN0ZW5lcnMKKyAgICAgKiB0byByZWRyYXcgd2hlbiB0aGUgdW5kZXJseWluZyBtb2RlbCBoYXMgYmVlbiBtdXRhdGVkLgorICAgICAqLworICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnQ6IGZ1bmN0aW9uKCkgeworICAgICAgdHIuYi5kaXNwYXRjaFNpbXBsZUV2ZW50KHRoaXMsICdjaGFuZ2UnKTsKKyAgICB9LAorCisgICAgZGV0YWNoOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmNoZWNrRm9yQXR0YWNoSW50ZXJ2YWxfKSB7CisgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuY2hlY2tGb3JBdHRhY2hJbnRlcnZhbF8pOworICAgICAgICB0aGlzLmNoZWNrRm9yQXR0YWNoSW50ZXJ2YWxfID0gdW5kZWZpbmVkOworICAgICAgfQorICAgICAgaWYgKHRoaXMuaWZyYW1lXykgeworICAgICAgICB0aGlzLmlmcmFtZV8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vblJlc2l6ZV8pOworICAgICAgICB0aGlzLnBhcmVudEVsXy5yZW1vdmVDaGlsZCh0aGlzLmlmcmFtZV8pOworICAgICAgfQorICAgIH0sCisKKyAgICBpbml0QW5pbWF0aW9uQ29udHJvbGxlcl86IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5kdEFuaW1hdGlvbkNvbnRyb2xsZXJfID0gbmV3IHRyLnVpLmIuQW5pbWF0aW9uQ29udHJvbGxlcigpOworICAgICAgdGhpcy5kdEFuaW1hdGlvbkNvbnRyb2xsZXJfLmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgJ2RpZHRpY2snLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB0aGlzLm9uQ3VyZW50RGlzcGxheVRyYW5zZm9ybUNoYW5nZV8oZS5vbGRUYXJnZXRTdGF0ZSk7CisgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKworICAgICAgdmFyIHRoYXQgPSB0aGlzOworICAgICAgdGhpcy5kdEFuaW1hdGlvbkNvbnRyb2xsZXJfLnRhcmdldCA9IHsKKyAgICAgICAgZ2V0IHBhblgoKSB7CisgICAgICAgICAgcmV0dXJuIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnBhblg7CisgICAgICAgIH0sCisKKyAgICAgICAgc2V0IHBhblgocGFuWCkgeworICAgICAgICAgIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnBhblggPSBwYW5YOworICAgICAgICB9LAorCisgICAgICAgIGdldCBwYW5ZKCkgeworICAgICAgICAgIHJldHVybiB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5wYW5ZOworICAgICAgICB9LAorCisgICAgICAgIHNldCBwYW5ZKHBhblkpIHsKKyAgICAgICAgICB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5wYW5ZID0gcGFuWTsKKyAgICAgICAgfSwKKworICAgICAgICBnZXQgc2NhbGVYKCkgeworICAgICAgICAgIHJldHVybiB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5zY2FsZVg7CisgICAgICAgIH0sCisKKyAgICAgICAgc2V0IHNjYWxlWChzY2FsZVgpIHsKKyAgICAgICAgICB0aGF0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXy5zY2FsZVggPSBzY2FsZVg7CisgICAgICAgIH0sCisKKyAgICAgICAgY2xvbmVBbmltYXRpb25TdGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHRoYXQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLmNsb25lKCk7CisgICAgICAgIH0sCisKKyAgICAgICAgeFBhbldvcmxkUG9zVG9WaWV3UG9zOiBmdW5jdGlvbih4V29ybGQsIHhWaWV3KSB7CisgICAgICAgICAgdGhhdC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8ueFBhbldvcmxkUG9zVG9WaWV3UG9zKAorICAgICAgICAgICAgICB4V29ybGQsIHhWaWV3LCB0aGF0Lm1vZGVsVHJhY2tDb250YWluZXJfLmNhbnZhcy5jbGllbnRXaWR0aCk7CisgICAgICAgIH0KKyAgICAgIH07CisgICAgfSwKKworICAgIGdldCBjdXJyZW50RGlzcGxheVRyYW5zZm9ybSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtXzsKKyAgICB9LAorCisgICAgc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5OiBmdW5jdGlvbihkaXNwbGF5VHJhbnNmb3JtKSB7CisgICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8uY2FuY2VsQWN0aXZlQW5pbWF0aW9uKCk7CisKKyAgICAgIHZhciBvbGREaXNwbGF5VHJhbnNmb3JtID0KKyAgICAgICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8udGFyZ2V0LmNsb25lQW5pbWF0aW9uU3RhdGUoKTsKKyAgICAgIHRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm1fLnNldChkaXNwbGF5VHJhbnNmb3JtKTsKKyAgICAgIHRoaXMub25DdXJlbnREaXNwbGF5VHJhbnNmb3JtQ2hhbmdlXyhvbGREaXNwbGF5VHJhbnNmb3JtKTsKKyAgICB9LAorCisgICAgcXVldWVEaXNwbGF5VHJhbnNmb3JtQW5pbWF0aW9uOiBmdW5jdGlvbihhbmltYXRpb24pIHsKKyAgICAgIGlmICghKGFuaW1hdGlvbiBpbnN0YW5jZW9mIHRyLnVpLmIuQW5pbWF0aW9uKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbmltYXRpb24gbXVzdCBiZSBpbnN0YW5jZW9mIHRyLnVpLmIuQW5pbWF0aW9uJyk7CisgICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8ucXVldWVBbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICB9LAorCisgICAgb25DdXJlbnREaXNwbGF5VHJhbnNmb3JtQ2hhbmdlXzogZnVuY3Rpb24ob2xkRGlzcGxheVRyYW5zZm9ybSkgeworICAgICAgLy8gRW5zdXJlIHBhblkgc3RheXMgY2xhbXBlZCBpbiB0aGUgdHJhY2sgY29udGFpbmVyJ3Mgc2Nyb2xsIHJhbmdlLgorICAgICAgaWYgKHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8pIHsKKyAgICAgICAgdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZID0gdHIuYi5jbGFtcCgKKyAgICAgICAgICAgIHRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLnNjcm9sbEhlaWdodCAtCisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXy5jbGllbnRIZWlnaHQpOworICAgICAgfQorCisgICAgICB2YXIgY2hhbmdlZCA9ICF0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLmVxdWFscyhvbGREaXNwbGF5VHJhbnNmb3JtKTsKKyAgICAgIHZhciB5Q2hhbmdlZCA9IHRoaXMuY3VycmVudERpc3BsYXlUcmFuc2Zvcm0ucGFuWSAhPT0KKyAgICAgICAgICBvbGREaXNwbGF5VHJhbnNmb3JtLnBhblk7CisgICAgICBpZiAoeUNoYW5nZWQpCisgICAgICAgIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uc2Nyb2xsVG9wID0gdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5wYW5ZOworICAgICAgaWYgKGNoYW5nZWQpCisgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0sCisKKyAgICBvbk1vZGVsVHJhY2tDb250cm9sbGVyU2Nyb2xsXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKHRoaXMuZHRBbmltYXRpb25Db250cm9sbGVyXy5hY3RpdmVBbmltYXRpb24gJiYKKyAgICAgICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8uYWN0aXZlQW5pbWF0aW9uLmFmZmVjdHNQYW5ZKQorICAgICAgICB0aGlzLmR0QW5pbWF0aW9uQ29udHJvbGxlcl8uY2FuY2VsQWN0aXZlQW5pbWF0aW9uKCk7CisgICAgICB2YXIgcGFuWSA9IHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl8uc2Nyb2xsVG9wOworICAgICAgdGhpcy5jdXJyZW50RGlzcGxheVRyYW5zZm9ybV8ucGFuWSA9IHBhblk7CisgICAgfSwKKworICAgIGdldCBtb2RlbFRyYWNrQ29udGFpbmVyKCkgeworICAgICAgcmV0dXJuIHRoaXMubW9kZWxUcmFja0NvbnRhaW5lcl87CisgICAgfSwKKworICAgIHNldCBtb2RlbFRyYWNrQ29udGFpbmVyKG0pIHsKKyAgICAgIGlmICh0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfKQorICAgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsCisgICAgICAgICAgICB0aGlzLm9uTW9kZWxUcmFja0NvbnRyb2xsZXJTY3JvbGxfKTsKKworICAgICAgdGhpcy5tb2RlbFRyYWNrQ29udGFpbmVyXyA9IG07CisgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsCisgICAgICAgICAgdGhpcy5vbk1vZGVsVHJhY2tDb250cm9sbGVyU2Nyb2xsXyk7CisgICAgfSwKKworICAgIGdldCBzaG93Rmxvd0V2ZW50cygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNob3dGbG93RXZlbnRzXzsKKyAgICB9LAorCisgICAgc2V0IHNob3dGbG93RXZlbnRzKHNob3dGbG93RXZlbnRzKSB7CisgICAgICB0aGlzLnNob3dGbG93RXZlbnRzXyA9IHNob3dGbG93RXZlbnRzOworICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGdldCBoaWdobGlnaHRWU3luYygpIHsKKyAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodFZTeW5jXzsKKyAgICB9LAorCisgICAgc2V0IGhpZ2hsaWdodFZTeW5jKGhpZ2hsaWdodFZTeW5jKSB7CisgICAgICB0aGlzLmhpZ2hsaWdodFZTeW5jXyA9IGhpZ2hsaWdodFZTeW5jOworICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGdldCBoaWdoRGV0YWlscygpIHsKKyAgICAgIHJldHVybiB0aGlzLmhpZ2hEZXRhaWxzXzsKKyAgICB9LAorCisgICAgc2V0IGhpZ2hEZXRhaWxzKGhpZ2hEZXRhaWxzKSB7CisgICAgICB0aGlzLmhpZ2hEZXRhaWxzXyA9IGhpZ2hEZXRhaWxzOworICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGdldCBncmlkRW5hYmxlZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmdyaWRFbmFibGVkXzsKKyAgICB9LAorCisgICAgc2V0IGdyaWRFbmFibGVkKGVuYWJsZWQpIHsKKyAgICAgIGlmICh0aGlzLmdyaWRFbmFibGVkXyA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuZ3JpZEVuYWJsZWRfID0gZW5hYmxlZCAmJiB0cnVlOworICAgICAgdGhpcy5kaXNwYXRjaENoYW5nZUV2ZW50KCk7CisgICAgfSwKKworICAgIGdldCBncmlkVGltZWJhc2UoKSB7CisgICAgICByZXR1cm4gdGhpcy5ncmlkVGltZWJhc2VfOworICAgIH0sCisKKyAgICBzZXQgZ3JpZFRpbWViYXNlKHRpbWViYXNlKSB7CisgICAgICBpZiAodGhpcy5ncmlkVGltZWJhc2VfID09IHRpbWViYXNlKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLmdyaWRUaW1lYmFzZV8gPSB0aW1lYmFzZTsKKyAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0sCisKKyAgICBnZXQgZ3JpZFN0ZXAoKSB7CisgICAgICByZXR1cm4gdGhpcy5ncmlkU3RlcF87CisgICAgfSwKKworICAgIGdldCBpbnRlcmVzdFJhbmdlKCkgeworICAgICAgcmV0dXJuIHRoaXMuaW50ZXJlc3RSYW5nZV87CisgICAgfSwKKworICAgIGRyYXdNYWpvck1hcmtMaW5lczogZnVuY3Rpb24oY3R4KSB7CisgICAgICAvLyBBcHBseSBzdWJwaXhlbCB0cmFuc2xhdGUgdG8gZ2V0IGNyaXNwIGxpbmVzLgorICAgICAgLy8gaHR0cDovL3d3dy5tb2J0b3dlcnMuY29tL2h0bWw1LWNhbnZhcy1jcmlzcC1saW5lcy1ldmVyeS10aW1lLworICAgICAgY3R4LnNhdmUoKTsKKyAgICAgIGN0eC50cmFuc2xhdGUoKE1hdGgucm91bmQoY3R4LmxpbmVXaWR0aCkgJSAyKSAvIDIsIDApOworCisgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICBmb3IgKHZhciBpZHggaW4gdGhpcy5tYWpvck1hcmtQb3NpdGlvbnMpIHsKKyAgICAgICAgdmFyIHggPSBNYXRoLmZsb29yKHRoaXMubWFqb3JNYXJrUG9zaXRpb25zW2lkeF0pOworICAgICAgICB0ci51aS5iLmRyYXdMaW5lKGN0eCwgeCwgMCwgeCwgY3R4LmNhbnZhcy5oZWlnaHQpOworICAgICAgfQorICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyNkZGQnOworICAgICAgY3R4LnN0cm9rZSgpOworCisgICAgICBjdHgucmVzdG9yZSgpOworICAgIH0sCisKKyAgICBkcmF3R3JpZExpbmVzOiBmdW5jdGlvbihjdHgsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKKyAgICAgIGlmICghdGhpcy5ncmlkRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgZHQgPSB0aGlzLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworICAgICAgdmFyIHggPSB0aGlzLmdyaWRUaW1lYmFzZTsKKworICAgICAgLy8gQXBwbHkgc3VicGl4ZWwgdHJhbnNsYXRlIHRvIGdldCBjcmlzcCBsaW5lcy4KKyAgICAgIC8vIGh0dHA6Ly93d3cubW9idG93ZXJzLmNvbS9odG1sNS1jYW52YXMtY3Jpc3AtbGluZXMtZXZlcnktdGltZS8KKyAgICAgIGN0eC5zYXZlKCk7CisgICAgICBjdHgudHJhbnNsYXRlKChNYXRoLnJvdW5kKGN0eC5saW5lV2lkdGgpICUgMikgLyAyLCAwKTsKKworICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgd2hpbGUgKHggPCB2aWV3UldvcmxkKSB7CisgICAgICAgIGlmICh4ID49IHZpZXdMV29ybGQpIHsKKyAgICAgICAgICAvLyBEbyBjb252ZXJzaW9uIHRvIHZpZXdzcGFjZSBoZXJlIHJhdGhlciB0aGFuIG9uCisgICAgICAgICAgLy8geCB0byBhdm9pZCBwcmVjaXNpb24gaXNzdWVzLgorICAgICAgICAgIHZhciB2eCA9IE1hdGguZmxvb3IoZHQueFdvcmxkVG9WaWV3KHgpKTsKKyAgICAgICAgICB0ci51aS5iLmRyYXdMaW5lKGN0eCwgdngsIDAsIHZ4LCBjdHguY2FudmFzLmhlaWdodCk7CisgICAgICAgIH0KKworICAgICAgICB4ICs9IHRoaXMuZ3JpZFN0ZXA7CisgICAgICB9CisgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgyNTUsIDAsIDAsIDAuMjUpJzsKKyAgICAgIGN0eC5zdHJva2UoKTsKKworICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogSGVscGVyIGZvciBzZWxlY3Rpb24gcHJldmlvdXMgb3IgbmV4dC4KKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9mZnNldCBJZiBwb3NpdGl2ZSwgc2VsZWN0IG9uZSBmb3J3YXJkIChuZXh0KS4KKyAgICAgKiAgIEVsc2UsIHNlbGVjdCBwcmV2aW91cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgY3VycmVudCBzZWxlY3Rpb24gY2hhbmdlZC4KKyAgICAgKi8KKyAgICBnZXRTaGlmdGVkU2VsZWN0aW9uOiBmdW5jdGlvbihzZWxlY3Rpb24sIG9mZnNldCkgeworICAgICAgdmFyIG5ld1NlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3Rpb24ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGV2ZW50ID0gc2VsZWN0aW9uW2ldOworCisgICAgICAgIC8vIElmIHRoaXMgaXMgYSBmbG93IGV2ZW50LCB0aGVuIG1vdmUgdG8gaXRzIHNsaWNlIGJhc2VkIG9uIHRoZQorICAgICAgICAvLyBvZmZzZXQgZGlyZWN0aW9uLgorICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiB0ci5tb2RlbC5GbG93RXZlbnQpIHsKKyAgICAgICAgICBpZiAob2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnB1c2goZXZlbnQuZW5kU2xpY2UpOworICAgICAgICAgIH0gZWxzZSBpZiAob2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnB1c2goZXZlbnQuc3RhcnRTbGljZSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIERvIG5vdGhpbmcuIFplcm8gb2Zmc2V0cyBkb24ndCBkbyBhbnl0aGluZy4gKi8KKyAgICAgICAgICB9CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgdHJhY2sgPSB0aGlzLnRyYWNrRm9yRXZlbnQoZXZlbnQpOworICAgICAgICB0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKKyAgICAgICAgICAgIGV2ZW50LCBvZmZzZXQsIG5ld1NlbGVjdGlvbik7CisgICAgICB9CisKKyAgICAgIGlmIChuZXdTZWxlY3Rpb24ubGVuZ3RoID09IDApCisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICByZXR1cm4gbmV3U2VsZWN0aW9uOworICAgIH0sCisKKyAgICByZWJ1aWxkRXZlbnRUb1RyYWNrTWFwOiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIFRPRE8oY2hhcmxpZWEpOiBNYWtlIHRoZSBldmVudCB0byB0cmFjayBtYXAgaGF2ZSBhIHNpbWlsYXIgaW50ZXJmYWNlCisgICAgICAvLyB0byB0aGUgY29udGFpbmVyIHRvIHRyYWNrIG1hcCBzbyB0aGF0IHdlIGNhbiBqdXN0IGNsZWFyKCkgaGVyZS4KKyAgICAgIHRoaXMuZXZlbnRUb1RyYWNrTWFwXyA9IG5ldyB0ci51aS50cmFja3MuRXZlbnRUb1RyYWNrTWFwKCk7CisgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmFkZEV2ZW50c1RvVHJhY2tNYXAodGhpcy5ldmVudFRvVHJhY2tNYXBfKTsKKyAgICB9LAorCisgICAgcmVidWlsZENvbnRhaW5lclRvVHJhY2tNYXA6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jb250YWluZXJUb1RyYWNrTWFwLmNsZWFyKCk7CisgICAgICB0aGlzLm1vZGVsVHJhY2tDb250YWluZXJfLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKAorICAgICAgICAgIHRoaXMuY29udGFpbmVyVG9UcmFja01hcCk7CisgICAgfSwKKworICAgIHRyYWNrRm9yRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICByZXR1cm4gdGhpcy5ldmVudFRvVHJhY2tNYXBfW2V2ZW50Lmd1aWRdOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFRpbWVsaW5lVmlld3BvcnQ6IFRpbWVsaW5lVmlld3BvcnQKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdwb3J0X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdGltZWxpbmVfdmlld3BvcnRfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMzhiMDEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RpbWVsaW5lX3ZpZXdwb3J0X3Rlc3QuaHRtbApAQCAtMCwwICsxLDE0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2xvY2F0aW9uLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3NsaWNlX3RyYWNrLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIExvY2F0aW9uID0gdHIubW9kZWwuTG9jYXRpb247CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworCisgIHRlc3QoJ21lbW9pemF0aW9uJywgZnVuY3Rpb24oKSB7CisKKyAgICB2YXIgdnAgPSBuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CisKKyAgICB2YXIgc2xpY2UgPSB7IGd1aWQ6IDEgfTsKKworICAgIHZwLm1vZGVsVHJhY2tDb250YWluZXIgPSB7CisgICAgICBhZGRFdmVudHNUb1RyYWNrTWFwOiBmdW5jdGlvbihldmVudFRvVHJhY2tNYXApIHsKKyAgICAgICAgZXZlbnRUb1RyYWNrTWFwLmFkZEV2ZW50KHNsaWNlLCAndHJhY2snKTsKKyAgICAgIH0sCisgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigpIHt9CisgICAgfTsKKworICAgIGFzc2VydC5pc1VuZGVmaW5lZCh2cC50cmFja0ZvckV2ZW50KHNsaWNlKSk7CisgICAgdnAucmVidWlsZEV2ZW50VG9UcmFja01hcCgpOworCisgICAgYXNzZXJ0LmVxdWFsKHZwLnRyYWNrRm9yRXZlbnQoc2xpY2UpLCAndHJhY2snKTsKKyAgfSk7CisKKyAgdGVzdCgnc2hpZnRlZFNlbGVjdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZSgKKyAgICAgICAgbmV3IHRyLm1vZGVsLlRocmVhZFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAzKSk7CisgICAgdDEuc2xpY2VHcm91cC5wdXNoU2xpY2UoCisgICAgICAgIG5ldyB0ci5tb2RlbC5UaHJlYWRTbGljZSgnJywgJ2EnLCAwLCA1LCB7fSwgMSkpOworCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoKTsKKyAgICB2YXIgdHJhY2sgPSBuZXcgdHIudWkudHJhY2tzLlNsaWNlVHJhY2sodmlld3BvcnQpOworICAgIHZpZXdwb3J0Lm1vZGVsVHJhY2tDb250YWluZXIgPSB0cmFjazsKKyAgICB0cmFjay5zbGljZXMgPSB0MS5zbGljZUdyb3VwLnNsaWNlczsKKworICAgIHZpZXdwb3J0LnJlYnVpbGRFdmVudFRvVHJhY2tNYXAoKTsKKworCisgICAgdmFyIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgIHNlbC5wdXNoKHQxLnNsaWNlR3JvdXAuc2xpY2VzWzBdKTsKKworICAgIHZhciBzaGlmdGVkID0gdHJhY2sudmlld3BvcnQuZ2V0U2hpZnRlZFNlbGVjdGlvbihzZWwsIDEpOworICAgIGFzc2VydC5lcXVhbChzaGlmdGVkLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNoaWZ0ZWRbMF0sIHQxLnNsaWNlR3JvdXAuc2xpY2VzWzFdKTsKKyAgfSk7CisKKyAgdGVzdCgnbG9jYXRpb25PYmonLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOworICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7CisKKyAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goCisgICAgICAgIHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlTmFtZWQoJ2EnLCA4MCwgMjAsIHRocmVhZCwgdGhyZWFkKSk7CisgICAgICB0aHJlYWQuYXN5bmNTbGljZUdyb3VwLnB1c2goCisgICAgICAgIHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlTmFtZWQoJ2EnLCA4NSwgMTAsIHRocmVhZCwgdGhyZWFkKSk7CisgICAgfSk7CisKKyAgICB2YXIgdGltZWxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS10aW1lbGluZS10cmFjay12aWV3Jyk7CisgICAgdmFyIHZwID0gbmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQodGltZWxpbmUpOworICAgIHRpbWVsaW5lLm1vZGVsID0gbW9kZWw7CisgICAgdGltZWxpbmUuc3R5bGUubWF4SGVpZ2h0ID0gJzYwMHB4JzsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZWxpbmUpOworCisgICAgLy8gT3VyIHN0YWJsZUlkIHRvIHRyYWNrIG1hcCBpcyBub3QgYXV0b21hdGljYWxseSBidWlsdC4gV2UgbmVlZCB0bworICAgIC8vIHNlYXJjaCBmb3IgdGhlIHRyYWNrcyBhbmQgbWFudWFsbHkgYnVpbGQgdGhlIHN0YWJsZUlkIG1hcCBoZXJlLgorICAgIHZhciBwcm9jZXNzVHJhY2tzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncHJvY2Vzcy10cmFjay1iYXNlJyk7CisgICAgdnAubW9kZWxUcmFja0NvbnRhaW5lciA9IHsKKyAgICAgIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwOiBmdW5jdGlvbihjb250YWluZXJUb1RyYWNrTWFwKSB7CisgICAgICAgIC8vIEludm9raW5nIHRoZSBwcm9jZXNzIHRyYWNrJ3MgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAgaXMgZW5vdWdoIHRvCisgICAgICAgIC8vIGJ1aWxkIHRoZSBtYXAgZm9yIGFsbCBjaGlsZHJlbiAoaS5lLiBUaHJlYWRzLCBBc3luY1NsaWNlR3JvdXBzKQorICAgICAgICAvLyBhcyB3ZWxsLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2Nlc3NUcmFja3MubGVuZ3RoOyBpKyspCisgICAgICAgICAgcHJvY2Vzc1RyYWNrc1tpXS5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrTWFwKTsKKyAgICAgIH0sCisgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbigpIHt9LAorICAgICAgY2FudmFzOiB7CisgICAgICAgIG9mZnNldExlZnQ6IHRyLmMuY29uc3RhbnRzLkhFQURJTkdfV0lEVEgsCisgICAgICAgIG9mZnNldFRvcDogMAorICAgICAgfQorICAgIH07CisgICAgdnAucmVidWlsZENvbnRhaW5lclRvVHJhY2tNYXAoKTsKKworICAgIHZhciBhc3luY1RyYWNrID0KKyAgICAgICAgdnAuY29udGFpbmVyVG9UcmFja01hcC5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMy40NTYuQXN5bmNTbGljZUdyb3VwJyk7CisgICAgYXNzZXJ0LmlzRGVmaW5lZChhc3luY1RyYWNrKTsKKyAgICBhc3NlcnQuaXNGYWxzZShhc3luY1RyYWNrLmV4cGFuZGVkKTsgLy8gTWFrZSBzdXJlIHRoaXMgc3RhcnRzIHVuZXhwYW5kZWQuCisKKyAgICAvLyBIYWNrIHRvIGFsbG93IExvY2F0aW9uIHRvIGZpbmQgdGhlIGVsZW1lbnQgd2UncmUgbG9va2luZyBmb3IuCisgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSBjb3JyZWN0IGJlaGF2aW91ciBvZiBkb2N1bWVudC5lbGVtZW50RnJvbXBvaW50KHgseSkgb2YKKyAgICAvLyBhbiBvcmlnaW5hbGx5IG9mZi1zY3JlZW4gZWxlbWVudC4KKyAgICBhc3luY1RyYWNrLnNjcm9sbEludG9WaWV3KCk7CisKKyAgICB2YXIgYm91bmRSZWN0ID0gYXN5bmNUcmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICB2YXIgdmlld1ggPSBib3VuZFJlY3QubGVmdDsKKyAgICB2YXIgdmlld1kgPSBib3VuZFJlY3QudG9wICsgYm91bmRSZWN0LmhlaWdodCAvIDI7CisgICAgdmFyIGxvY2F0aW9uID0gTG9jYXRpb24uZnJvbVZpZXdDb29yZGluYXRlcyh2cCwgdmlld1gsIHZpZXdZKTsKKyAgICBhc3NlcnQuZXF1YWwoYXN5bmNUcmFjaywgbG9jYXRpb24uZ2V0Q29udGFpbmluZ1RyYWNrKHZwKSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChsb2NhdGlvbi50b1ZpZXdDb29yZGluYXRlcyh2cCksCisgICAgICAgICAgICAgICAgICAgICB7IHZpZXdYOiB2aWV3WCwgdmlld1k6IHZpZXdZIH0pOworCisgICAgLy8gVHJ5IGV4cGFuZGluZyB0aGUgbXVsdGktcm93IHRyYWNrIHNvIHRoYXQgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIHRocmVhZAorICAgIC8vIHRyYWNrIGNoYW5nZXMuCisgICAgYXN5bmNUcmFjay5leHBhbmRlZCA9IHRydWU7CisgICAgLy8gRXhwYW5kaW5nIHRoZSB0cmFjayBjYXVzZXMgdGhlIGhlaWdodCB0byBkb3VibGUuIFdlIGNhbiBjYWxjdWxhdGUgdGhlIG5ldworICAgIC8vIHZpZXdZIHdpdGggcmVzcGVjdCB0byB0aGUgdHJhY2sncyBvbGQgYm91bmRSZWN0LiBWaWV3WCByZW1haW5zIHVuY2hhbmdlZC4KKyAgICB2YXIgZXhwYW5kZWRWaWV3WSA9IGJvdW5kUmVjdC50b3AgKyBib3VuZFJlY3QuaGVpZ2h0OworICAgIGFzc2VydC5kZWVwRXF1YWwobG9jYXRpb24udG9WaWV3Q29vcmRpbmF0ZXModnApLAorICAgICAgICAgICAgICAgICAgICAgeyB2aWV3WDogdmlld1gsIHZpZXdZOiBleHBhbmRlZFZpZXdZIH0pOworCisgICAgLy8gVGVzdCB0aGUgZnVuY3Rpb25hbGl0eSBvZiBmcm9tU3RhYmxlSWRBbmRUaW1lc3RhbXAuCisgICAgdmFyIGxvY2F0aW9uRnJvbUNvb3JkID0KKyAgICAgICAgTG9jYXRpb24uZnJvbVZpZXdDb29yZGluYXRlcyh2cCwgdmlld1gsIGJvdW5kUmVjdC50b3ApOworICAgIHZhciBsb2NhdGlvbkZyb21TdGFibGVJZCA9CisgICAgICAgIExvY2F0aW9uLmZyb21TdGFibGVJZEFuZFRpbWVzdGFtcCh2cCwgJzEyMy40NTYuQXN5bmNTbGljZUdyb3VwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnhXb3JsZCk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChsb2NhdGlvbkZyb21Db29yZCwgbG9jYXRpb25Gcm9tU3RhYmxlSWQpOworCisgICAgLy8gVW5kbyBzY3JvbGwuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMtY29udGFpbmVyJykuc2Nyb2xsVG9wID0gMDsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9hbGVydF90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvYWxlcnRfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmQ0NzBhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvYWxlcnRfdHJhY2suaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvbGV0dGVyX2RvdF90cmFjay5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhbiBhcnJheSBvZiBhbGVydCBvYmplY3RzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0xldHRlckRvdFRyYWNrfQorICAgKi8KKyAgdmFyIEFsZXJ0VHJhY2sgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICdhbGVydC10cmFjaycsIHRyLnVpLnRyYWNrcy5MZXR0ZXJEb3RUcmFjayk7CisKKyAgQWxlcnRUcmFjay5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuTGV0dGVyRG90VHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuTGV0dGVyRG90VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy5oZWFkaW5nID0gJ0FsZXJ0cyc7CisgICAgICB0aGlzLmFsZXJ0c18gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBhbGVydHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5hbGVydHNfOworICAgIH0sCisKKyAgICBzZXQgYWxlcnRzKGFsZXJ0cykgeworICAgICAgdGhpcy5hbGVydHNfID0gYWxlcnRzOworICAgICAgaWYgKGFsZXJ0cyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuaXRlbXMgPSB1bmRlZmluZWQ7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmFsZXJ0c18ubWFwKGZ1bmN0aW9uKGFsZXJ0KSB7CisgICAgICAgIHJldHVybiBuZXcgdHIudWkudHJhY2tzLkxldHRlckRvdCgKKyAgICAgICAgICAgIGFsZXJ0LCBTdHJpbmcuZnJvbUNoYXJDb2RlKDk4ODgpLCBhbGVydC5jb2xvcklkLCBhbGVydC5zdGFydCk7CisgICAgICB9KTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBBbGVydFRyYWNrOiBBbGVydFRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvYWxlcnRfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvYWxlcnRfdHJhY2tfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliOGIwZDcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9hbGVydF90cmFja190ZXN0Lmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2dsb2JhbF9tZW1vcnlfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2VsZWN0aW9uX3N0YXRlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2FsZXJ0X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgQWxlcnRUcmFjayA9IHRyLnVpLnRyYWNrcy5BbGVydFRyYWNrOworICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKKyAgdmFyIFZpZXdwb3J0ID0gdHIudWkuVGltZWxpbmVWaWV3cG9ydDsKKworICB2YXIgQUxFUlRfSU5GT18xID0gbmV3IHRyLm1vZGVsLkV2ZW50SW5mbygKKyAgICAnQWxlcnQgMScsICdPbmUgYWxlcnQnKTsKKyAgdmFyIEFMRVJUX0lORk9fMiA9IG5ldyB0ci5tb2RlbC5FdmVudEluZm8oCisgICAgJ0FsZXJ0IDInLCAnQW5vdGhlciBhbGVydCcpOworCisgIHZhciBjcmVhdGVBbGVydHMgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgYWxlcnRzID0gWworICAgICAgbmV3IHRyLm1vZGVsLkFsZXJ0KEFMRVJUX0lORk9fMSwgNSksCisgICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18xLCAyMCksCisgICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18yLCAzNSksCisgICAgICBuZXcgdHIubW9kZWwuQWxlcnQoQUxFUlRfSU5GT18yLCA1MCkKKyAgICBdOworICAgIHJldHVybiBhbGVydHM7CisgIH07CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYWxlcnRzID0gY3JlYXRlQWxlcnRzKCk7CisgICAgYWxlcnRzWzFdLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7CisKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7CisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKKworICAgIHZhciB0cmFjayA9IEFsZXJ0VHJhY2sodmlld3BvcnQpOworICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7CisgICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7CisKKyAgICB0cmFjay5hbGVydHMgPSBhbGVydHM7CisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA1MCwgdHJhY2suY2xpZW50V2lkdGgpOworICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisKKworICAgIGFzc2VydC5lcXVhbCg1LCB0cmFjay5pdGVtc1swXS5zdGFydCk7CisgIH0pOworCisgIHRlc3QoJ21vZGVsTWFwcGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBhbGVydHMgPSBjcmVhdGVBbGVydHMoKTsKKworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgdHJhY2sgPSBBbGVydFRyYWNrKHZpZXdwb3J0KTsKKyAgICB0cmFjay5hbGVydHMgPSBhbGVydHM7CisKKyAgICB2YXIgYTAgPSB0cmFjay5pdGVtc1swXS5tb2RlbEl0ZW07CisgICAgYXNzZXJ0LmVxdWFsKGEwLCBhbGVydHNbMF0pOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2FzeW5jX3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9hc3luY19zbGljZV9ncm91cF90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3YjdmMTUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9hc3luY19zbGljZV9ncm91cF90cmFjay5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvbXVsdGlfcm93X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhIEFzeW5jU2xpY2VHcm91cC4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHtNdWx0aVJvd1RyYWNrfQorICAgKi8KKyAgdmFyIEFzeW5jU2xpY2VHcm91cFRyYWNrID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAnYXN5bmMtc2xpY2UtZ3JvdXAtdHJhY2snLAorICAgICAgdHIudWkudHJhY2tzLk11bHRpUm93VHJhY2spOworCisgIEFzeW5jU2xpY2VHcm91cFRyYWNrLnByb3RvdHlwZSA9IHsKKworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2FzeW5jLXNsaWNlLWdyb3VwLXRyYWNrJyk7CisgICAgICB0aGlzLmdyb3VwXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgYWRkU3ViVHJhY2tfOiBmdW5jdGlvbihzbGljZXMpIHsKKyAgICAgIHZhciB0cmFjayA9IG5ldyB0ci51aS50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgIHRyYWNrLnNsaWNlcyA9IHNsaWNlczsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgdHJhY2suYXN5bmNTdHlsZSA9IHRydWU7CisgICAgICByZXR1cm4gdHJhY2s7CisgICAgfSwKKworICAgIGdldCBncm91cCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmdyb3VwXzsKKyAgICB9LAorCisgICAgc2V0IGdyb3VwKGdyb3VwKSB7CisgICAgICB0aGlzLmdyb3VwXyA9IGdyb3VwOworICAgICAgdGhpcy5zZXRJdGVtc1RvR3JvdXAodGhpcy5ncm91cF8uc2xpY2VzLCB0aGlzLmdyb3VwXyk7CisgICAgfSwKKworICAgIGdldCBldmVudENvbnRhaW5lcigpIHsKKyAgICAgIHJldHVybiB0aGlzLmdyb3VwOworICAgIH0sCisKKyAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCkgeworICAgICAgY29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5ncm91cCwgdGhpcyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEJyZWFrcyB1cCB0aGUgbGlzdCBvZiBzbGljZXMgaW50byBOIHJvd3MsIGVhY2ggb2Ygd2hpY2ggaXMgYSBsaXN0IG9mCisgICAgICogc2xpY2VzIHRoYXQgYXJlIG5vbiBvdmVybGFwcGluZy4KKyAgICAgKgorICAgICAqIEl0IHVzZXMgYSB2ZXJ5IHNpbXBsZSBhcHByb2FjaDogd2FsayB0aHJvdWdoIHRoZSBzbGljZXMgaW4gc29ydGVkIG9yZGVyCisgICAgICogYnkgc3RhcnQgdGltZS4gRm9yIGVhY2ggc2xpY2UsIHRyeSB0byBmaXQgaXQgaW4gYW4gZXhpc3Rpbmcgc3ViUm93LiBJZgorICAgICAqIGl0IGRvZXNuJ3QgZml0IGluIGFueSBzdWJyb3csIG1ha2UgYW5vdGhlciBzdWJSb3cuIEl0IHRoZW4gZml0cyBuZXN0ZWQKKyAgICAgKiBzdWJTbGljZXMgcmVjdXJzaXZlbHkgaW50byByb3dzIGJlbG93IHBhcmVudCBzbGljZSBhY2NvcmRpbmcgdG8gd2hpY2gKKyAgICAgKiBuZXN0ZWQgbGV2ZWwgdGhlIGNoaWxkIGlzIGluLgorICAgICAqLworICAgIGJ1aWxkU3ViUm93c186IGZ1bmN0aW9uKHNsaWNlcywgb3B0X3NraXBTb3J0KSB7CisgICAgICBpZiAoIW9wdF9za2lwU29ydCkgeworICAgICAgICBzbGljZXMuc29ydChmdW5jdGlvbih4LCB5KSB7CisgICAgICAgICAgcmV0dXJuIHguc3RhcnQgLSB5LnN0YXJ0OworICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0cnVlIGlmIGl0IGNhbiBwdXQgdGhlIHNsaWNlIG9uIHJvdyBuLgorICAgICAgdmFyIGZpbmRMZXZlbCA9IGZ1bmN0aW9uKHNsaWNlVG9QdXQsIHJvd3MsIG4pIHsKKyAgICAgICAgaWYgKG4gPj0gcm93cy5sZW5ndGgpCisgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIFdlIGFsd2F5cyBjYW4gbWFrZSBlbXB0eSByb3dzIHRvIHB1dCB0aGUgc2xpY2UuCisgICAgICAgIHZhciBzdWJSb3cgPSByb3dzW25dOworICAgICAgICB2YXIgbGFzdFNsaWNlSW5TdWJSb3cgPSBzdWJSb3dbc3ViUm93Lmxlbmd0aCAtIDFdOworICAgICAgICBpZiAoc2xpY2VUb1B1dC5zdGFydCA+PSBsYXN0U2xpY2VJblN1YlJvdy5lbmQpIHsKKyAgICAgICAgICBpZiAoc2xpY2VUb1B1dC5zdWJTbGljZXMgPT09IHVuZGVmaW5lZCB8fAorICAgICAgICAgICAgICBzbGljZVRvUHV0LnN1YlNsaWNlcy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICAvLyBNYWtlIHN1cmUgbmVzdGVkIHN1YiBzbGljZXMgY2FuIGJlIGZpdHRlZCBpbiBhcyB3ZWxsLgorICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VUb1B1dC5zdWJTbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghZmluZExldmVsKHNsaWNlVG9QdXQuc3ViU2xpY2VzW2ldLCByb3dzLCBuICsgMSkpCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorCisgICAgICB2YXIgc3ViUm93cyA9IFtdOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHNsaWNlID0gc2xpY2VzW2ldOworCisgICAgICAgIHZhciBmb3VuZCA9IGZhbHNlOworICAgICAgICB2YXIgaW5kZXggPSBzdWJSb3dzLmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdWJSb3dzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgaWYgKGZpbmRMZXZlbChzbGljZSwgc3ViUm93cywgaikpIHsKKyAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIGluZGV4ID0gajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWZvdW5kKQorICAgICAgICAgIHN1YlJvd3MucHVzaChbXSk7CisgICAgICAgIHN1YlJvd3NbaW5kZXhdLnB1c2goc2xpY2UpOworCisgICAgICAgIC8vIEZpdCBzdWJTbGljZXMgcmVjdXJzaXZlbHkgaW50byByb3dzIGJlbG93IHBhcmVudC4KKyAgICAgICAgdmFyIGZpdFN1YlNsaWNlc1JlY3Vyc2l2ZWx5ID0gZnVuY3Rpb24oc3ViU2xpY2VzLCBsZXZlbCwgcm93cykgeworICAgICAgICAgIGlmIChzdWJTbGljZXMgPT09IHVuZGVmaW5lZCB8fCBzdWJTbGljZXMubGVuZ3RoID09PSAwKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIGlmIChsZXZlbCA9PT0gcm93cy5sZW5ndGgpCisgICAgICAgICAgICByb3dzLnB1c2goW10pOworICAgICAgICAgIGZvciAodmFyIGggPSAwOyBoIDwgc3ViU2xpY2VzLmxlbmd0aDsgaCsrKSB7CisgICAgICAgICAgICAgcm93c1tsZXZlbF0ucHVzaChzdWJTbGljZXNbaF0pOworICAgICAgICAgICAgIGZpdFN1YlNsaWNlc1JlY3Vyc2l2ZWx5KHN1YlNsaWNlc1toXS5zdWJTbGljZXMsIGxldmVsICsgMSwgcm93cyk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpdFN1YlNsaWNlc1JlY3Vyc2l2ZWx5KHNsaWNlLnN1YlNsaWNlcywgaW5kZXggKyAxLCBzdWJSb3dzKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBzdWJSb3dzOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEFzeW5jU2xpY2VHcm91cFRyYWNrOiBBc3luY1NsaWNlR3JvdXBUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2FzeW5jX3NsaWNlX2dyb3VwX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2FzeW5jX3NsaWNlX2dyb3VwX3RyYWNrX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmNjZjNiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvYXN5bmNfc2xpY2VfZ3JvdXBfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgLy8gQHN1cHByZXNzIGxvbmdMaW5lQ2hlY2sKKyAgdmFyIEFzeW5jU2xpY2VHcm91cCA9IHRyLm1vZGVsLkFzeW5jU2xpY2VHcm91cDsKKyAgdmFyIEFzeW5jU2xpY2VHcm91cFRyYWNrID0gdHIudWkudHJhY2tzLkFzeW5jU2xpY2VHcm91cFRyYWNrOworICB2YXIgUHJvY2VzcyA9IHRyLm1vZGVsLlByb2Nlc3M7CisgIHZhciBQcm9jZXNzVHJhY2sgPSB0ci51aS50cmFja3MuUHJvY2Vzc1RyYWNrOworICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOworICB2YXIgVGhyZWFkVHJhY2sgPSB0ci51aS50cmFja3MuVGhyZWFkVHJhY2s7CisgIHZhciBuZXdBc3luY1NsaWNlID0gdHIuYy50ZXN0X3V0aWxzLm5ld0FzeW5jU2xpY2U7CisgIHZhciBuZXdBc3luY1NsaWNlTmFtZWQgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZU5hbWVkOworCisgIHRlc3QoJ2ZpbHRlclN1YlJvd3MnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBuZXcgUHJvY2Vzcyhtb2RlbCwgMSk7CisgICAgdmFyIHQxID0gbmV3IFRocmVhZChwMSwgMSk7CisgICAgdmFyIGcgPSBuZXcgQXN5bmNTbGljZUdyb3VwKHQxKTsKKyAgICBnLnB1c2gobmV3QXN5bmNTbGljZSgwLCAxLCB0MSwgdDEpKTsKKyAgICB2YXIgdHJhY2sgPSBuZXcgQXN5bmNTbGljZUdyb3VwVHJhY2sobmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoKSk7CisgICAgdHJhY2suZ3JvdXAgPSBnOworCisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmNoaWxkcmVuLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0cmFjay5oYXNWaXNpYmxlQ29udGVudCk7CisgIH0pOworCisgIHRlc3QoJ3JlYnVpbGRTdWJSb3dzX3R3b05vbk92ZXJsYXBwaW5nU2xpY2VzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAxID0gbmV3IFByb2Nlc3MobW9kZWwsIDEpOworICAgIHZhciB0MSA9IG5ldyBUaHJlYWQocDEsIDEpOworICAgIHZhciBnID0gbmV3IEFzeW5jU2xpY2VHcm91cCh0MSk7CisgICAgdmFyIHMxID0gbmV3QXN5bmNTbGljZSgwLCAxLCB0MSwgdDEpOworICAgIHZhciBzdWJzMSA9IG5ld0FzeW5jU2xpY2VOYW1lZCgnYicsIDAsIDEsIHQxLCB0MSk7CisgICAgczEuc3ViU2xpY2VzID0gW3N1YnMxXTsKKyAgICBnLnB1c2goczEpOworICAgIGcucHVzaChuZXdBc3luY1NsaWNlKDEsIDEsIHQxLCB0MSkpOworICAgIHZhciB0cmFjayA9IG5ldyBBc3luY1NsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGc7CisgICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF0ubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1sxXS5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdWzBdLCBnLnNsaWNlc1swXS5zdWJTbGljZXNbMF0pOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhnLnNsaWNlc1sxXS5zdWJTbGljZXMsIFtdKTsKKyAgfSk7CisKKyAgdGVzdCgncmVidWlsZFN1YlJvd3NfdHdvT3ZlcmxhcHBpbmdTbGljZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBuZXcgUHJvY2Vzcyhtb2RlbCwgMSk7CisgICAgdmFyIHQxID0gbmV3IFRocmVhZChwMSwgMSk7CisgICAgdmFyIGcgPSBuZXcgQXN5bmNTbGljZUdyb3VwKHQxKTsKKworICAgIHZhciBzMSA9IG5ld0FzeW5jU2xpY2UoMCwgMSwgdDEsIHQxKTsKKyAgICB2YXIgc3ViczEgPSBuZXdBc3luY1NsaWNlTmFtZWQoJ2InLCAwLCAxLCB0MSwgdDEpOworICAgIHMxLnN1YlNsaWNlcyA9IFtzdWJzMV07CisgICAgdmFyIHMyID0gbmV3QXN5bmNTbGljZSgwLCAxLjUsIHQxLCB0MSk7CisgICAgdmFyIHN1YnMyID0gbmV3QXN5bmNTbGljZU5hbWVkKCdiJywgMCwgMSwgdDEsIHQxKTsKKyAgICBzMi5zdWJTbGljZXMgPSBbc3ViczJdOworICAgIGcucHVzaChzMSk7CisgICAgZy5wdXNoKHMyKTsKKworICAgIGcudXBkYXRlQm91bmRzKCk7CisKKyAgICB2YXIgdHJhY2sgPSBuZXcgQXN5bmNTbGljZUdyb3VwVHJhY2sobmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoKSk7CisgICAgdHJhY2suZ3JvdXAgPSBnOworCisgICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOworCisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCA0KTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMl0ubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1szXS5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdWzBdLCBnLnNsaWNlc1swXS5zdWJTbGljZXNbMF0pOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzNdWzBdLCBnLnNsaWNlc1sxXS5zdWJTbGljZXNbMF0pOworICB9KTsKKworICB0ZXN0KCdyZWJ1aWxkU3ViUm93c190aHJlZVBhcnRseU92ZXJsYXBwaW5nU2xpY2VzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAxID0gbmV3IFByb2Nlc3MobW9kZWwsIDEpOworICAgIHZhciB0MSA9IG5ldyBUaHJlYWQocDEsIDEpOworICAgIHZhciBnID0gbmV3IEFzeW5jU2xpY2VHcm91cCh0MSk7CisgICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMCwgMSwgdDEsIHQxKSk7CisgICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMCwgMS41LCB0MSwgdDEpKTsKKyAgICBnLnB1c2gobmV3QXN5bmNTbGljZSgxLCAxLjUsIHQxLCB0MSkpOworICAgIGcudXBkYXRlQm91bmRzKCk7CisgICAgdmFyIHRyYWNrID0gbmV3IEFzeW5jU2xpY2VHcm91cFRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHRyYWNrLmdyb3VwID0gZzsKKyAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7CisKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF1bMF0sIGcuc2xpY2VzWzBdKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXVsxXSwgZy5zbGljZXNbMl0pOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdWzBdLCBnLnNsaWNlc1sxXSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV0ubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuc2FtZU1lbWJlcnMoZy5zbGljZXNbMF0uc3ViU2xpY2VzLCBbXSk7CisgICAgYXNzZXJ0LnNhbWVNZW1iZXJzKGcuc2xpY2VzWzFdLnN1YlNsaWNlcywgW10pOworICAgIGFzc2VydC5zYW1lTWVtYmVycyhnLnNsaWNlc1syXS5zdWJTbGljZXMsIFtdKTsKKyAgfSk7CisKKyAgdGVzdCgncmVidWlsZFN1YlJvd3NfdGhyZWVPdmVybGFwcGluZ1NsaWNlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG5ldyBQcm9jZXNzKG1vZGVsLCAxKTsKKyAgICB2YXIgdDEgPSBuZXcgVGhyZWFkKHAxLCAxKTsKKyAgICB2YXIgZyA9IG5ldyBBc3luY1NsaWNlR3JvdXAodDEpOworCisgICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMCwgMSwgdDEsIHQxKSk7CisgICAgZy5wdXNoKG5ld0FzeW5jU2xpY2UoMCwgMS41LCB0MSwgdDEpKTsKKyAgICBnLnB1c2gobmV3QXN5bmNTbGljZSgyLCAxLCB0MSwgdDEpKTsKKyAgICBnLnVwZGF0ZUJvdW5kcygpOworCisgICAgdmFyIHRyYWNrID0gbmV3IEFzeW5jU2xpY2VHcm91cFRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHRyYWNrLmdyb3VwID0gZzsKKworICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV0ubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXVswXSwgZy5zbGljZXNbMF0pOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdWzBdLCBnLnNsaWNlc1sxXSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF1bMV0sIGcuc2xpY2VzWzJdKTsKKyAgfSk7CisKKyAgLy8gVGVzdHMgdGhhdCBubyBzbGljZXMgYW5kIHRoZWlyIHN1YiBzbGljZXMgb3ZlcmxhcC4KKyAgdGVzdCgncmVidWlsZFN1YlJvd3NfTm9uT3ZlcmxhcHBpbmdTdWJTbGljZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcDEgPSBuZXcgUHJvY2Vzcyhtb2RlbCwgMSk7CisgICAgdmFyIHQxID0gbmV3IFRocmVhZChwMSwgMSk7CisgICAgdmFyIGcgPSBuZXcgQXN5bmNTbGljZUdyb3VwKHQxKTsKKworICAgIHZhciBzbGljZTEgPSBuZXdBc3luY1NsaWNlKDAsIDUsIHQxLCB0MSk7CisgICAgdmFyIHNsaWNlMUNoaWxkID0gbmV3QXN5bmNTbGljZSgxLCAyLCB0MSwgdDEpOworICAgIHNsaWNlMS5zdWJTbGljZXMgPSBbc2xpY2UxQ2hpbGRdOworICAgIHZhciBzbGljZTIgPSBuZXdBc3luY1NsaWNlKDMsIDUsIHQxLCB0MSk7CisgICAgdmFyIHNsaWNlMyA9IG5ld0FzeW5jU2xpY2UoNSwgNCwgdDEsIHQxKTsKKyAgICB2YXIgc2xpY2UzQ2hpbGQgPSBuZXdBc3luY1NsaWNlKDYsIDIsIHQxLCB0MSk7CisgICAgc2xpY2UzLnN1YlNsaWNlcyA9IFtzbGljZTNDaGlsZF07CisgICAgZy5wdXNoKHNsaWNlMSk7CisgICAgZy5wdXNoKHNsaWNlMik7CisgICAgZy5wdXNoKHNsaWNlMyk7CisgICAgZy51cGRhdGVCb3VuZHMoKTsKKworICAgIHZhciB0cmFjayA9IG5ldyBBc3luY1NsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGc7CisKKyAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7CisgICAgLy8gQ2hlY2tzIGVhY2ggc3ViIHJvdyB0byBzZWUgdGhhdCB3ZSBkb24ndCBoYXZlIGFueSBvdmVybGFwcGluZyBzbGljZXMuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdWJSb3dzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgcm93ID0gc3ViUm93c1tpXTsKKyAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7CisgICAgICAgIGZvciAodmFyIGsgPSBqICsgMTsgayA8IHJvdy5sZW5ndGg7IGsrKykgeworICAgICAgICAgIGFzc2VydC5pc1RydWUocm93W2pdLmVuZCA8PSByb3dba10uc3RhcnQpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9KTsKKworICB0ZXN0KCdyZWJ1aWxkU3ViUm93c19Ob25PdmVybGFwcGluZ1N1YlNsaWNlc1RocmVlTmVzdGVkTGV2ZWxzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHAxID0gbmV3IFByb2Nlc3MobW9kZWwsIDEpOworICAgIHZhciB0MSA9IG5ldyBUaHJlYWQocDEsIDEpOworICAgIHZhciBnID0gbmV3IEFzeW5jU2xpY2VHcm91cCh0MSk7CisKKyAgICB2YXIgc2xpY2UxID0gbmV3QXN5bmNTbGljZSgwLCA0LCB0MSwgdDEpOworICAgIHZhciBzbGljZTFDaGlsZCA9IG5ld0FzeW5jU2xpY2UoMSwgMiwgdDEsIHQxKTsKKyAgICBzbGljZTEuc3ViU2xpY2VzID0gW3NsaWNlMUNoaWxkXTsKKyAgICB2YXIgc2xpY2UyID0gbmV3QXN5bmNTbGljZSgyLCA3LCB0MSwgdDEpOworICAgIHZhciBzbGljZTMgPSBuZXdBc3luY1NsaWNlKDUsIDUsIHQxLCB0MSk7CisgICAgdmFyIHNsaWNlM0NoaWxkID0gbmV3QXN5bmNTbGljZSg2LCAzLCB0MSwgdDEpOworICAgIHZhciBzbGljZTNDaGlsZDIgPSBuZXdBc3luY1NsaWNlKDcsIDEsIHQxLCB0MSk7CisgICAgc2xpY2UzLnN1YlNsaWNlcyA9IFtzbGljZTNDaGlsZF07CisgICAgc2xpY2UzQ2hpbGQuc3ViU2xpY2VzID0gW3NsaWNlM0NoaWxkMl07CisgICAgZy5wdXNoKHNsaWNlMSk7CisgICAgZy5wdXNoKHNsaWNlMik7CisgICAgZy5wdXNoKHNsaWNlMyk7CisgICAgZy51cGRhdGVCb3VuZHMoKTsKKworICAgIHZhciB0cmFjayA9IG5ldyBBc3luY1NsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGc7CisKKyAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7CisgICAgLy8gQ2hlY2tzIGVhY2ggc3ViIHJvdyB0byBzZWUgdGhhdCB3ZSBkb24ndCBoYXZlIGFueSBvdmVybGFwcGluZyBzbGljZXMuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdWJSb3dzLmxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgcm93ID0gc3ViUm93c1tpXTsKKyAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7CisgICAgICAgIGZvciAodmFyIGsgPSBqICsgMTsgayA8IHJvdy5sZW5ndGg7IGsrKykgeworICAgICAgICAgIGFzc2VydC5pc1RydWUocm93W2pdLmVuZCA8PSByb3dba10uc3RhcnQpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9KTsKKworICB0ZXN0KCdhc3luY1NsaWNlR3JvdXBDb250YWluZXJNYXAnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdnAgPSBuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpOworICAgIHZhciBjb250YWluZXJUb1RyYWNrID0gdnAuY29udGFpbmVyVG9UcmFja01hcDsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxMjMpOworICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDQ1Nik7CisgICAgdmFyIGdyb3VwID0gbmV3IEFzeW5jU2xpY2VHcm91cCh0aHJlYWQpOworCisgICAgdmFyIHByb2Nlc3NUcmFjayA9IG5ldyBQcm9jZXNzVHJhY2sodnApOworICAgIHZhciB0aHJlYWRUcmFjayA9IG5ldyBUaHJlYWRUcmFjayh2cCk7CisgICAgdmFyIGdyb3VwVHJhY2sgPSBuZXcgQXN5bmNTbGljZUdyb3VwVHJhY2sodnApOworICAgIHByb2Nlc3NUcmFjay5wcm9jZXNzID0gcHJvY2VzczsKKyAgICB0aHJlYWRUcmFjay50aHJlYWQgPSB0aHJlYWQ7CisgICAgZ3JvdXBUcmFjay5ncm91cCA9IGdyb3VwOworICAgIHByb2Nlc3NUcmFjay5hcHBlbmRDaGlsZCh0aHJlYWRUcmFjayk7CisgICAgdGhyZWFkVHJhY2suYXBwZW5kQ2hpbGQoZ3JvdXBUcmFjayk7CisKKyAgICBhc3NlcnQuZXF1YWwocHJvY2Vzc1RyYWNrLmV2ZW50Q29udGFpbmVyLCBwcm9jZXNzKTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkVHJhY2suZXZlbnRDb250YWluZXIsIHRocmVhZCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwVHJhY2suZXZlbnRDb250YWluZXIsIGdyb3VwKTsKKworICAgIGFzc2VydC5pc1VuZGVmaW5lZChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzJykpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzLjQ1NicpKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoCisgICAgICAgIGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMuNDU2LkFzeW5jU2xpY2VHcm91cCcpKTsKKworICAgIHZwLm1vZGVsVHJhY2tDb250YWluZXIgPSB7CisgICAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCkgeworICAgICAgICBwcm9jZXNzVHJhY2suYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoY29udGFpbmVyVG9UcmFja01hcCk7CisgICAgICB9LAorICAgICAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oKSB7fQorICAgIH07CisgICAgdnAucmVidWlsZENvbnRhaW5lclRvVHJhY2tNYXAoKTsKKworICAgIC8vIENoZWNrIHRoYXQgYWxsIHRyYWNrcyBjYWxsIGNoaWxkcycgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoKQorICAgIC8vIGJ5IGNoZWNraW5nIHRoZSByZXN1bHRpbmcgbWFwLgorICAgIGFzc2VydC5lcXVhbChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzJyksIHByb2Nlc3NUcmFjayk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMuNDU2JyksIHRocmVhZFRyYWNrKTsKKyAgICBhc3NlcnQuZXF1YWwoY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMy40NTYuQXN5bmNTbGljZUdyb3VwJyksCisgICAgICAgIGdyb3VwVHJhY2spOworCisgICAgLy8gQ2hlY2sgdGhlIHRyYWNrJ3MgZXZlbnRDb250YWluZXIgZ2V0dGVyLgorICAgIGFzc2VydC5lcXVhbChwcm9jZXNzVHJhY2suZXZlbnRDb250YWluZXIsIHByb2Nlc3MpOworICAgIGFzc2VydC5lcXVhbCh0aHJlYWRUcmFjay5ldmVudENvbnRhaW5lciwgdGhyZWFkKTsKKyAgICBhc3NlcnQuZXF1YWwoZ3JvdXBUcmFjay5ldmVudENvbnRhaW5lciwgZ3JvdXApOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF9heGlzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF9heGlzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQwNDEwMAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X2F4aXMuaHRtbApAQCAtMCwwICsxLDEyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYW5nZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworCisgIC8qKgorICAgKiBBIHZlcnRpY2FsIGF4aXMgZm9yIGEgKHNldCBvZikgY2hhcnQgc2VyaWVzIHdoaWNoIG1hcHMgYW4gYXJiaXRyYXJ5IHJhbmdlCisgICAqIG9mIHZhbHVlcyBbbWluLCBtYXhdIHRvIHRoZSB1bml0IHJhbmdlIFswLCAxXS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBDaGFydEF4aXMob3B0X21pbiwgb3B0X21heCkgeworICAgIHRoaXMuZ3VpZF8gPSB0ci5iLkdVSUQuYWxsb2NhdGUoKTsKKyAgICB0aGlzLmJvdW5kcyA9IG5ldyB0ci5iLlJhbmdlKCk7CisgICAgaWYgKG9wdF9taW4gIT09IHVuZGVmaW5lZCkKKyAgICAgIHRoaXMuYm91bmRzLmFkZFZhbHVlKG9wdF9taW4pOworICAgIGlmIChvcHRfbWF4ICE9PSB1bmRlZmluZWQpCisgICAgICB0aGlzLmJvdW5kcy5hZGRWYWx1ZShvcHRfbWF4KTsKKyAgfTsKKworICBDaGFydEF4aXMucHJvdG90eXBlID0geworICAgIGdldCBndWlkKCkgeworICAgICAgcmV0dXJuIHRoaXMuZ3VpZF87CisgICAgfSwKKworICAgIHZhbHVlVG9Vbml0UmFuZ2U6IGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICBpZiAodGhpcy5ib3VuZHMuaXNFbXB0eSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDaGFydCBheGlzIGJvdW5kcyBhcmUgZW1wdHknKTsKKyAgICAgIHZhciBib3VuZHMgPSB0aGlzLmJvdW5kczsKKyAgICAgIGlmIChib3VuZHMucmFuZ2UgPT09IDApCisgICAgICAgIHJldHVybiAwOworICAgICAgcmV0dXJuICh2YWx1ZSAtIGJvdW5kcy5taW4pIC8gYm91bmRzLnJhbmdlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBBdXRvbWF0aWNhbGx5IHNldCB0aGUgYXhpcyBib3VuZHMgZnJvbSB0aGUgcmFuZ2Ugb2YgdmFsdWVzIG9mIGFsbCBzZXJpZXMKKyAgICAgKiBpbiBhIGxpc3QuCisgICAgICoKKyAgICAgKiBTZWUgdGhlIGRlc2NyaXB0aW9uIG9mIGF1dG9TZXRGcm9tUmFuZ2UgZm9yIHRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uCisgICAgICogYXJndW1lbnQgZmxhZ3MuCisgICAgICovCisgICAgYXV0b1NldEZyb21TZXJpZXM6IGZ1bmN0aW9uKHNlcmllcywgb3B0X2NvbmZpZykgeworICAgICAgdmFyIHJhbmdlID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsKKyAgICAgICAgcmFuZ2UuYWRkUmFuZ2Uocy5yYW5nZSk7CisgICAgICB9LCB0aGlzKTsKKyAgICAgIHRoaXMuYXV0b1NldEZyb21SYW5nZShyYW5nZSwgb3B0X2NvbmZpZyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEF1dG9tYXRpY2FsbHkgc2V0IHRoZSBheGlzIGJvdW5kIGZyb20gYSByYW5nZSBvZiB2YWx1ZXMuCisgICAgICoKKyAgICAgKiBUaGUgZm9sbG93aW5nIGZvdXIgZmxhZ3MsIHdoaWNoIGFmZmVjdCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBtZXRob2Qgd2l0aAorICAgICAqIHJlc3BlY3QgdG8gYWxyZWFkeSBkZWZpbmVkIGJvdW5kcywgY2FuIGJlIHByZXNlbnQgaW4gdGhlIG9wdGlvbmFsCisgICAgICogY29uZmlndXJhdGlvbiAoYSBmbGFnIGlzIGFzc3VtZWQgdG8gYmUgZmFsc2UgaWYgaXQgaXMgbm90IHByb3ZpZGVkIG9yIGlmCisgICAgICogdGhlIGNvbmZpZ3VyYXRpb24gaXMgbm90IHByb3ZpZGVkKToKKyAgICAgKgorICAgICAqICAgLSBleHBhbmRNaW46IGFsbG93IGRlY3JlYXNpbmcgdGhlIG1pbiBib3VuZCAoaWYgcmFuZ2UubWluIDwgdGhpcy5taW4pCisgICAgICogICAtIHNocmlua01pbjogYWxsb3cgaW5jcmVhc2luZyB0aGUgbWluIGJvdW5kIChpZiByYW5nZS5taW4gPiB0aGlzLm1pbikKKyAgICAgKiAgIC0gZXhwYW5kTWF4OiBhbGxvdyBpbmNyZWFzaW5nIHRoZSBtYXggYm91bmQgKGlmIHJhbmdlLm1heCA+IHRoaXMubWF4KQorICAgICAqICAgLSBzaHJpbmtNYXg6IGFsbG93IGRlY3JlYXNpbmcgdGhlIG1heCBib3VuZCAoaWYgcmFuZ2UubWF4IDwgdGhpcy5tYXgpCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZXN1bHRpbmcgYm91bmRzIGFyZSBkZWZpbmVkIGFuZCB2YWxpZAorICAgICAqIChpLmUuIG1pbiA8PSBtYXgpIHByb3ZpZGVkIHRoYXQgdGhleSB3ZXJlIHZhbGlkIG9yIGVtcHR5IGJlZm9yZSBhbmQgdGhlCisgICAgICogdmFsdWUgcmFuZ2UgaXMgbm9uLWVtcHR5IGFuZCB2YWxpZC4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCB1bmxlc3MgZXhwYW5kaW5nL3Nocmlua2luZyBhIGJvdW5kIGlzIGV4cGxpY2l0bHkgZW5hYmxlZCBpbgorICAgICAqIHRoZSBjb25maWd1cmF0aW9uLCBub24tZW1wdHkgYm91bmRzIHdpbGwgbm90IGJlIGNoYW5nZWQgdW5kZXIgYW55CisgICAgICogY2lyY3Vtc3RhbmNlcy4KKyAgICAgKgorICAgICAqIE9ic2VydmUgdGhhdCBpZiBubyBjb25maWd1cmF0aW9uIGlzIHByb3ZpZGVkIChvciBhbGwgZmxhZ3MgYXJlIHNldCB0bworICAgICAqIGZhbHNlKSwgdGhpcyBtZXRob2Qgd2lsbCBvbmx5IG1vZGlmeSB0aGUgYXhpcyBib3VuZHMgaWYgdGhleSBhcmUgZW1wdHkuCisgICAgICovCisgICAgYXV0b1NldEZyb21SYW5nZTogZnVuY3Rpb24ocmFuZ2UsIG9wdF9jb25maWcpIHsKKyAgICAgIGlmIChyYW5nZS5pc0VtcHR5KQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBib3VuZHMgPSB0aGlzLmJvdW5kczsKKyAgICAgIGlmIChib3VuZHMuaXNFbXB0eSkgeworICAgICAgICBib3VuZHMuYWRkUmFuZ2UocmFuZ2UpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlmICghb3B0X2NvbmZpZykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgdXNlUmFuZ2VNaW4gPSAob3B0X2NvbmZpZy5leHBhbmRNaW4gJiYgcmFuZ2UubWluIDwgYm91bmRzLm1pbiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9jb25maWcuc2hyaW5rTWluICYmIHJhbmdlLm1pbiA+IGJvdW5kcy5taW4pOworICAgICAgdmFyIHVzZVJhbmdlTWF4ID0gKG9wdF9jb25maWcuZXhwYW5kTWF4ICYmIHJhbmdlLm1heCA+IGJvdW5kcy5tYXggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfY29uZmlnLnNocmlua01heCAmJiByYW5nZS5tYXggPCBib3VuZHMubWF4KTsKKworICAgICAgLy8gTmVpdGhlciBib3VuZCBpcyBtb2RpZmllZC4KKyAgICAgIGlmICghdXNlUmFuZ2VNaW4gJiYgIXVzZVJhbmdlTWF4KQorICAgICAgICByZXR1cm47CisKKyAgICAgIC8vIEJvdGggYm91bmRzIGFyZSBtb2RpZmllZC4gQXNzdW1pbmcgdGhlIHJhbmdlIGFyZ3VtZW50IGlzIGEgdmFsaWQKKyAgICAgIC8vIHJhbmdlLCBubyBleHRyYSBjaGVja3MgYXJlIG5lY2Vzc2FyeS4KKyAgICAgIGlmICh1c2VSYW5nZU1pbiAmJiB1c2VSYW5nZU1heCkgeworICAgICAgICBib3VuZHMubWluID0gcmFuZ2UubWluOworICAgICAgICBib3VuZHMubWF4ID0gcmFuZ2UubWF4OworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIC8vIE9ubHkgb25lIGJvdW5kIGlzIG1vZGlmaWVkLiBXZSBtdXN0IGVuc3VyZSB0aGF0IGl0IGRvZXNuJ3QgZ28KKyAgICAgIC8vIG92ZXIvdW5kZXIgdGhlIG90aGVyICh1bm1vZGlmaWVkKSBib3VuZC4KKyAgICAgIGlmICh1c2VSYW5nZU1pbikgeworICAgICAgICBib3VuZHMubWluID0gTWF0aC5taW4ocmFuZ2UubWluLCBib3VuZHMubWF4KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGJvdW5kcy5tYXggPSBNYXRoLm1heChyYW5nZS5tYXgsIGJvdW5kcy5taW4pOworICAgICAgfQorICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIENoYXJ0QXhpczogQ2hhcnRBeGlzCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfYXhpc190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF9heGlzX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDM2YzA3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfYXhpc190ZXN0Lmh0bWwKQEAgLTAsMCArMSwzMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X2F4aXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9wb2ludC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3Nlcmllcy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBDaGFydEF4aXMgPSB0ci51aS50cmFja3MuQ2hhcnRBeGlzOworICB2YXIgQ2hhcnRQb2ludCA9IHRyLnVpLnRyYWNrcy5DaGFydFBvaW50OworICB2YXIgQ2hhcnRTZXJpZXMgPSB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXM7CisgIHZhciBSYW5nZSA9IHRyLmIuUmFuZ2U7CisKKyAgZnVuY3Rpb24gYnVpbGRSYW5nZSgpIHsKKyAgICB2YXIgcmFuZ2UgPSBuZXcgUmFuZ2UoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykKKyAgICAgIHJhbmdlLmFkZFZhbHVlKGFyZ3VtZW50c1tpXSk7CisgICAgcmV0dXJuIHJhbmdlOworICB9CisKKyAgZnVuY3Rpb24gYnVpbGRTZXJpZXMoKSB7CisgICAgdmFyIHBvaW50cyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICBwb2ludHMucHVzaChuZXcgQ2hhcnRQb2ludCh1bmRlZmluZWQsIGksIGFyZ3VtZW50c1tpXSkpOworICAgIH0KKyAgICByZXR1cm4gbmV3IENoYXJ0U2VyaWVzKHBvaW50cywgbmV3IENoYXJ0QXhpcygpKTsKKyAgfQorCisgIHRlc3QoJ2luc3RhbnRpYXRlX2VtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfbm9uRW1wdHlCb3VuZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTIsIDEyKTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAtMik7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMTIpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV9lcXVhbEJvdW5kcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygyLjcyKTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAyLjcyKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCAyLjcyKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tWYWx1ZVRvVW5pdFJhbmdlX2VtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKCk7CisgICAgYXNzZXJ0LnRocm93cyhmdW5jdGlvbigpIHsgYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDQyKTsgfSk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrVmFsdWVUb1VuaXRSYW5nZV9ub25FbXB0eUJvdW5kcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygxMCwgMjApOworCisgICAgYXNzZXJ0LmVxdWFsKGF4aXMudmFsdWVUb1VuaXRSYW5nZSgwKSwgLTEpOworICAgIGFzc2VydC5lcXVhbChheGlzLnZhbHVlVG9Vbml0UmFuZ2UoMTApLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDE1KSwgMC41KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDIwKSwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMudmFsdWVUb1VuaXRSYW5nZSgzMCksIDIpOworICB9KTsKKworICB0ZXN0KCdjaGVja1ZhbHVlVG9Vbml0UmFuZ2VfZXF1YWxCb3VuZHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMy4xNCk7CisKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDApLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDMuMTQpLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy52YWx1ZVRvVW5pdFJhbmdlKDYuMjgpLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVJhbmdlX2VtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7CisgICAgLy8gRW1wdHkgcmFuZ2UuCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKCk7CisgICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoKSk7CisgICAgYXNzZXJ0LmlzVHJ1ZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKworICAgIC8vIE5vbi1lbXB0eSByYW5nZS4KKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgtMSwgMykpOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIC0xKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCAzKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVJhbmdlX25vbkVtcHR5Qm91bmRzJywgZnVuY3Rpb24oKSB7CisgICAgLy8gRW1wdHkgcmFuZ2UuCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDAsIDEpOworICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKCkpOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDApOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDEpOworCisgICAgLy8gTm8gY29uZmlndXJhdGlvbi4KKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMiwgMyk7CisgICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoMSwgNCkpOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDIpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDMpOworCisgICAgLy8gQWxsb3cgZXhwYW5kaW5nIG1pbi4KKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTIsIC0xKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgtMywgMCksIHtleHBhbmRNaW46IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAtMyk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgLTEpOworCisgICAgLy8gQWxsb3cgc2hyaW5raW5nIG1pbi4KKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTIsIC0xKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgtMS41LCAwLjUpLCB7c2hyaW5rTWluOiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgLTEuNSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgLTEpOworCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDcsIDgpOworICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDksIDEwKSwge3Nocmlua01pbjogdHJ1ZX0pOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDgpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDgpOworCisgICAgLy8gQWxsb3cgZXhwYW5kaW5nIG1heC4KKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMTksIDIwKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgxOCwgMjEpLCB7ZXhwYW5kTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgMTkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDIxKTsKKworICAgIC8vIEFsbG93IHNocmlua2luZyBtYXguCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDMwLCAzMik7CisgICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoMjksIDMxKSwge3Nocmlua01heDogdHJ1ZX0pOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDMwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCAzMSk7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNDEsIDQyKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgzOSwgNDApLCB7c2hyaW5rTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNDEpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDQxKTsKKworICAgIC8vIEFsbG93IHNocmlua2luZyBib3RoIGJvdW5kcy4KKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNTAsIDUzKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg1MSwgNTIpLAorICAgICAgICB7c2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA1MSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNTIpOworCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDUwLCA1Myk7CisgICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNDksIDUyKSwKKyAgICAgICAge3Nocmlua01pbjogdHJ1ZSwgc2hyaW5rTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNTApOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDUyKTsKKworICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg1MCwgNTMpOworICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDUxLCA1NCksCisgICAgICAgIHtzaHJpbmtNaW46IHRydWUsIHNocmlua01heDogdHJ1ZX0pOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDUxKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA1Myk7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNTAsIDUzKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg0OSwgNTQpLAorICAgICAgICB7c2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA1MCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNTMpOworCisgICAgLy8gQWxsb3cgZXhwYW5kaW5nIGJvdGggYm91bmRzLgorICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOworICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDAsIDEwMCksCisgICAgICAgIHtleHBhbmRNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZX0pOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDApOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDEwMCk7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MC41LCAxMDApLAorICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBleHBhbmRNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMTAwKTsKKworICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOworICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDAsIDYwLjUpLAorICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBleHBhbmRNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA2MSk7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MC4yLCA2MC44KSwKKyAgICAgICAge2V4cGFuZE1pbjogdHJ1ZSwgZXhwYW5kTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNjApOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDYxKTsKKworICAgIC8vIEFsbG93IHNocmlua2luZyBtaW4gYW5kIGV4cGFuZGluZyBtYXguCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDYwLCA2MSk7CisgICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNjIsIDYzKSwKKyAgICAgICAge3Nocmlua01pbjogdHJ1ZSwgZXhwYW5kTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNjIpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDYzKTsKKworICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOworICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDU5LCA2MyksCisgICAgICAgIHtzaHJpbmtNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZX0pOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDYwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA2Myk7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MC4yLCA2MC44KSwKKyAgICAgICAge3Nocmlua01pbjogdHJ1ZSwgZXhwYW5kTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNjAuMik7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjEpOworCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDYwLCA2MSk7CisgICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNTksIDYwLjUpLAorICAgICAgICB7c2hyaW5rTWluOiB0cnVlLCBleHBhbmRNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjEpOworCisgICAgLy8gQWxsb3cgZXhwYW5kaW5nIG1pbiBhbmQgc2hyaW5raW5nIG1heC4KKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg2MiwgNjMpLAorICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjEpOworCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDYwLCA2MSk7CisgICAgYXhpcy5hdXRvU2V0RnJvbVJhbmdlKGJ1aWxkUmFuZ2UoNTksIDYzKSwKKyAgICAgICAge2V4cGFuZE1pbjogdHJ1ZSwgc2hyaW5rTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmlzRmFsc2UoYXhpcy5ib3VuZHMuaXNFbXB0eSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgNTkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDYxKTsKKworICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcyg2MCwgNjEpOworICAgIGF4aXMuYXV0b1NldEZyb21SYW5nZShidWlsZFJhbmdlKDYwLjIsIDYwLjgpLAorICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCA2MCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgNjAuOCk7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoNjAsIDYxKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSg1OSwgNjAuNSksCisgICAgICAgIHtleHBhbmRNaW46IHRydWUsIHNocmlua01heDogdHJ1ZX0pOworICAgIGFzc2VydC5pc0ZhbHNlKGF4aXMuYm91bmRzLmlzRW1wdHkpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIDU5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWF4LCA2MC41KTsKKworICAgIC8vIEFsbG93IGV2ZXJ5dGhpbmcuCisgICAgdmFyIGF4aXMgPSBuZXcgQ2hhcnRBeGlzKDIwMCwgMjUwKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgxNTAsIDE3NSksCisgICAgICAgIHtleHBhbmRNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZSwgc2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAxNTApOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDE3NSk7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoMCwgMC4xKTsKKyAgICBheGlzLmF1dG9TZXRGcm9tUmFuZ2UoYnVpbGRSYW5nZSgwLjIsIDAuMyksCisgICAgICAgIHtleHBhbmRNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZSwgc2hyaW5rTWluOiB0cnVlLCBzaHJpbmtNYXg6IHRydWV9KTsKKyAgICBhc3NlcnQuaXNGYWxzZShheGlzLmJvdW5kcy5pc0VtcHR5KTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpcy5ib3VuZHMubWluLCAwLjIpOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5tYXgsIDAuMyk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrQXV0b1NldEZyb21TZXJpZXNfbm9TZXJpZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTEwMCwgMTAwKTsKKyAgICB2YXIgc2VyaWVzID0gW107CisKKyAgICBheGlzLmF1dG9TZXRGcm9tU2VyaWVzKHNlcmllcyk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgLTEwMCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMTAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVNlcmllc19vbmVTZXJpZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTEwMCwgMTAwKTsKKyAgICB2YXIgc2VyaWVzID0gW2J1aWxkU2VyaWVzKC04MCwgMTAwLCAtNDAsIDIwMCldOworCisgICAgYXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsIHtzaHJpbmtNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZX0pOworICAgIGFzc2VydC5lcXVhbChheGlzLmJvdW5kcy5taW4sIC04MCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMjAwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tBdXRvU2V0RnJvbVNlcmllc19tdWx0aXBsZVNlcmllcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygtMTAwLCAxMDApOworICAgIHZhciBzZXJpZXMgPSBbCisgICAgICBidWlsZFNlcmllcygwLCAyMCwgMTAsIDMwKSwKKyAgICAgIGJ1aWxkU2VyaWVzKCksCisgICAgICBidWlsZFNlcmllcygtNTAwKQorICAgIF07CisKKyAgICBheGlzLmF1dG9TZXRGcm9tU2VyaWVzKHNlcmllcywge2V4cGFuZE1pbjogdHJ1ZSwgc2hyaW5rTWF4OiB0cnVlfSk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1pbiwgLTUwMCk7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMuYm91bmRzLm1heCwgMzApOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF9wb2ludC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfcG9pbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDg4ZjZhCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfcG9pbnQuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW0uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogQSBwb2ludCBpbiBhIGNoYXJ0IHNlcmllcyB3aXRoIHggKHRpbWVzdGFtcCkgYW5kIHkgKHZhbHVlKSBjb29yZGluYXRlcworICAgKiBhbmQgYW4gYXNzb2NpYXRlZCBtb2RlbCBpdGVtLiBUaGUgcG9pbnQgY2FuIG9wdGlvbmFsbHkgYWxzbyBoYXZlIGEgYmFzZQorICAgKiB5IGNvb3JkaW5hdGUgKHdoaWNoIGZvciBleGFtcGxlIGNvcnJlc3BvbmRzIHRvIHRoZSBib3R0b20gZWRnZSBvZiB0aGUKKyAgICogYXNzb2NpYXRlZCBiYXIgaW4gYSBiYXIgY2hhcnQpLgorICAgKgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1Byb3h5U2VsZWN0YWJsZUl0ZW19CisgICAqLworICBmdW5jdGlvbiBDaGFydFBvaW50KG1vZGVsSXRlbSwgeCwgeSwgb3B0X3lCYXNlKSB7CisgICAgdHIubW9kZWwuUHJveHlTZWxlY3RhYmxlSXRlbS5jYWxsKHRoaXMsIG1vZGVsSXRlbSk7CisgICAgdGhpcy54ID0geDsKKyAgICB0aGlzLnkgPSB5OworCisgICAgLy8gSWYgdGhlIGJhc2UgeS1jb29yZGluYXRlIGlzIHVuZGVmaW5lZCwgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBhc3NvY2lhdGVkCisgICAgLy8gYmFyIGluIGEgYmFyIGNoYXJ0IHdpbGwgc3RhcnQgYXQgdGhlIG91dGVyIGJvdHRvbSBlZGdlICh3aGljaCBpcyBtb3N0CisgICAgLy8gbGlrZWx5IHNsaWdodGx5IGJlbG93IHplcm8pLgorICAgIHRoaXMueUJhc2UgPSBvcHRfeUJhc2U7CisgIH07CisKKyAgQ2hhcnRQb2ludC5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLnByb3RvdHlwZQorICB9OworCisgIHJldHVybiB7CisgICAgQ2hhcnRQb2ludDogQ2hhcnRQb2ludAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X3BvaW50X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X3BvaW50X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTFmMDkzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfcG9pbnRfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3BvaW50Lmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIENoYXJ0UG9pbnQgPSB0ci51aS50cmFja3MuQ2hhcnRQb2ludDsKKworICB0ZXN0KCdjaGVja0ZpZWxkc193aXRob3V0WUJhc2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZXZlbnQgPSB7fTsKKyAgICB2YXIgcG9pbnQgPSBuZXcgQ2hhcnRQb2ludChldmVudCwgNDIsIC03KTsKKworICAgIGFzc2VydC5lcXVhbChwb2ludC5tb2RlbEl0ZW0sIGV2ZW50KTsKKyAgICBhc3NlcnQuZXF1YWwocG9pbnQueCwgNDIpOworICAgIGFzc2VydC5lcXVhbChwb2ludC55LCAtNyk7CisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHBvaW50LnlCYXNlKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tGaWVsZHNfd2l0aFlCYXNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGV2ZW50ID0ge307CisgICAgdmFyIHBvaW50ID0gbmV3IENoYXJ0UG9pbnQoZXZlbnQsIDExMSwgMjIyLCAzMzMpOworCisgICAgYXNzZXJ0LmVxdWFsKHBvaW50Lm1vZGVsSXRlbSwgZXZlbnQpOworICAgIGFzc2VydC5lcXVhbChwb2ludC54LCAxMTEpOworICAgIGFzc2VydC5lcXVhbChwb2ludC55LCAyMjIpOworICAgIGFzc2VydC5lcXVhbChwb2ludC55QmFzZSwgMzMzKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfc2VyaWVzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDJlZGNiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfc2VyaWVzLmh0bWwKQEAgLTAsMCArMSw0OTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvcmFuZ2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZXZlbnRfcHJlc2VudGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9wcm94eV9zZWxlY3RhYmxlX2l0ZW0uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB0ci51aS5iLkV2ZW50UHJlc2VudGVyOworICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKKworICAvKioKKyAgICogVGhlIHR5cGUgb2YgYSBjaGFydCBzZXJpZXMuCisgICAqIEBlbnVtCisgICAqLworICB2YXIgQ2hhcnRTZXJpZXNUeXBlID0geworICAgIExJTkU6IDAsCisgICAgQVJFQTogMQorICB9OworCisgIC8vIFRoZSBkZWZhdWx0IHJlbmRlcmluZyBjb25maWd1cmF0aW9uIGZvciBDaGFydFNlcmllcy4KKyAgdmFyIERFRkFVTFRfUkVOREVSSU5HX0NPTkZJRyA9IHsKKyAgICAvLyBUaGUgdHlwZSBvZiB0aGUgY2hhcnQgc2VyaWVzLgorICAgIGNoYXJ0VHlwZTogQ2hhcnRTZXJpZXNUeXBlLkxJTkUsCisKKyAgICAvLyBUaGUgc2l6ZSBvZiBhIHNlbGVjdGVkIHBvaW50IGRvdCBpbiBkZXZpY2UtaW5kZXBlbmRlbnQgcGl4ZWxzIChjaXJjbGUKKyAgICAvLyBkaWFtZXRlcikuCisgICAgc2VsZWN0ZWRQb2ludFNpemU6IDQsCisKKyAgICAvLyBUaGUgc2l6ZSBvZiBhbiB1bnNlbGVjdGVkIHBvaW50IGRvdCBpbiBkZXZpY2UtaW5kZXBlbmRlbnQgcGl4ZWxzIChzcXVhcmUKKyAgICAvLyB3aWR0aC9oZWlnaHQpLgorICAgIHVuc2VsZWN0ZWRQb2ludFNpemU6IDMsCisKKyAgICAvLyBUaGUgY29sb3Igb2YgdGhlIGNoYXJ0LgorICAgIGNvbG9ySWQ6IDAsCisKKyAgICAvLyBUaGUgd2lkdGggb2YgdGhlIHRvcCBsaW5lIGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhlbHMuCisgICAgbGluZVdpZHRoOiAxLAorCisgICAgLy8gTWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHBvaW50cyBpbiBwaHlzaWNhbCBwaXhlbHMuIFBvaW50cyB3aGljaCBhcmUKKyAgICAvLyBjbG9zZXIgdGhhbiB0aGlzIGRpc3RhbmNlIHdpbGwgYmUgc2tpcHBlZC4KKyAgICBza2lwRGlzdGFuY2U6IDEsCisKKyAgICAvLyBEZW5zaXR5IGluIHBvaW50cyBwZXIgcGh5c2ljYWwgcGl4ZWwgYXQgd2hpY2ggdW5zZWxlY3RlZCBwb2ludCBkb3RzCisgICAgLy8gYmVjb21lIHRyYW5zcGFyZW50LgorICAgIHVuc2VsZWN0ZWRQb2ludERlbnNpdHlUcmFuc3BhcmVudDogMC4xMCwKKworICAgIC8vIERlbnNpdHkgaW4gcG9pbnRzIHBlciBwaHlzaWNhbCBwaXhlbCBhdCB3aGljaCB1bnNlbGVjdGVkIHBvaW50IGRvdHMKKyAgICAvLyBiZWNvbWUgZnVsbHkgb3BhcXVlLgorICAgIHVuc2VsZWN0ZWRQb2ludERlbnNpdHlPcGFxdWU6IDAuMDUsCisKKyAgICAvLyBPcGFjaXR5IG9mIGFyZWEgY2hhcnQgYmFja2dyb3VuZC4KKyAgICBiYWNrZ3JvdW5kT3BhY2l0eTogMC41CisgIH07CisKKyAgLy8gVGhlIHZpcnR1YWwgd2lkdGggb2YgdGhlIGxhc3QgcG9pbnQgaW4gYSBzZXJpZXMgKHdob3NlIHJlY3RhbmdsZSBoYXMgemVybworICAvLyB3aWR0aCkgaW4gd29ybGQgdGltZXN0YW1wcyBkaWZmZXJlbmNlIGZvciB0aGUgcHVycG9zZXMgb2Ygc2VsZWN0aW9uLgorICB2YXIgTEFTVF9QT0lOVF9XSURUSCA9IDE2OworCisgIC8qKgorICAgKiBWaXN1YWwgY29tcG9uZW50cyBvZiBhIENoYXJ0U2VyaWVzLgorICAgKiBAZW51bQorICAgKi8KKyAgdmFyIENoYXJ0U2VyaWVzQ29tcG9uZW50ID0geworICAgIEJBQ0tHUk9VTkQ6IDAsCisgICAgTElORTogMSwKKyAgICBET1RTOiAyCisgIH07CisKKyAgLyoqCisgICAqIEEgc2VyaWVzIG9mIHBvaW50cyBjb3JyZXNwb25kaW5nIHRvIGEgc2luZ2xlIGNoYXJ0IG9uIGEgY2hhcnQgdHJhY2suCisgICAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGRyYXdpbmcgdGhlIGFjdHVhbCBjaGFydCBvbnRvIGNhbnZhcy4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBDaGFydFNlcmllcyhwb2ludHMsIGF4aXMsIG9wdF9yZW5kZXJpbmdDb25maWcpIHsKKyAgICB0aGlzLnBvaW50cyA9IHBvaW50czsKKyAgICB0aGlzLmF4aXMgPSBheGlzOworCisgICAgdGhpcy51c2VSZW5kZXJpbmdDb25maWdfKG9wdF9yZW5kZXJpbmdDb25maWcpOworICB9CisKKyAgQ2hhcnRTZXJpZXMucHJvdG90eXBlID0geworICAgIHVzZVJlbmRlcmluZ0NvbmZpZ186IGZ1bmN0aW9uKG9wdF9yZW5kZXJpbmdDb25maWcpIHsKKyAgICAgIHZhciBjb25maWcgPSBvcHRfcmVuZGVyaW5nQ29uZmlnIHx8IHt9OworCisgICAgICAvLyBTdG9yZSBhbGwgY29uZmlndXJhdGlvbiBmbGFncyBhcyBwcml2YXRlIHByb3BlcnRpZXMuCisgICAgICB0ci5iLml0ZXJJdGVtcyhERUZBVUxUX1JFTkRFUklOR19DT05GSUcsIGZ1bmN0aW9uKGtleSwgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1trZXldOworICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgdGhpc1trZXkgKyAnXyddID0gdmFsdWU7CisgICAgICB9LCB0aGlzKTsKKworICAgICAgLy8gQXZvaWQgdW5uZWNlc3NhcnkgcmVjb21wdXRhdGlvbiBpbiBnZXR0ZXJzLgorICAgICAgdGhpcy50b3BQYWRkaW5nID0gdGhpcy5ib3R0b21QYWRkaW5nID0gTWF0aC5tYXgoCisgICAgICAgICAgdGhpcy5zZWxlY3RlZFBvaW50U2l6ZV8sIHRoaXMudW5zZWxlY3RlZFBvaW50U2l6ZV8pIC8gMjsKKyAgICB9LAorCisgICAgZ2V0IHJhbmdlKCkgeworICAgICAgdmFyIHJhbmdlID0gbmV3IHRyLmIuUmFuZ2UoKTsKKyAgICAgIHRoaXMucG9pbnRzLmZvckVhY2goZnVuY3Rpb24ocG9pbnQpIHsKKyAgICAgICAgcmFuZ2UuYWRkVmFsdWUocG9pbnQueSk7CisgICAgICB9LCB0aGlzKTsKKyAgICAgIHJldHVybiByYW5nZTsKKyAgICB9LAorCisgICAgZHJhdzogZnVuY3Rpb24oY3R4LCB0cmFuc2Zvcm0sIGhpZ2hEZXRhaWxzKSB7CisgICAgICBpZiAodGhpcy5wb2ludHMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnBvaW50cy5sZW5ndGggPT09IDApCisgICAgICAgIHJldHVybjsKKworICAgICAgLy8gRHJhdyB0aGUgYmFja2dyb3VuZC4KKyAgICAgIGlmICh0aGlzLmNoYXJ0VHlwZV8gPT09IENoYXJ0U2VyaWVzVHlwZS5BUkVBKSB7CisgICAgICAgIHRoaXMuZHJhd0NvbXBvbmVudF8oY3R4LCB0cmFuc2Zvcm0sIENoYXJ0U2VyaWVzQ29tcG9uZW50LkJBQ0tHUk9VTkQsCisgICAgICAgICAgICBoaWdoRGV0YWlscyk7CisgICAgICB9CisKKyAgICAgIC8vIERyYXcgdGhlIGxpbmUgYXQgdGhlIHRvcC4KKyAgICAgIGlmICh0aGlzLmNoYXJ0VHlwZV8gPT09IENoYXJ0U2VyaWVzVHlwZS5MSU5FIHx8IGhpZ2hEZXRhaWxzKSB7CisgICAgICAgIHRoaXMuZHJhd0NvbXBvbmVudF8oY3R4LCB0cmFuc2Zvcm0sIENoYXJ0U2VyaWVzQ29tcG9uZW50LkxJTkUsCisgICAgICAgICAgICBoaWdoRGV0YWlscyk7CisgICAgICB9CisKKyAgICAgIC8vIERyYXcgdGhlIHBvaW50cy4KKyAgICAgIHRoaXMuZHJhd0NvbXBvbmVudF8oY3R4LCB0cmFuc2Zvcm0sIENoYXJ0U2VyaWVzQ29tcG9uZW50LkRPVFMsCisgICAgICAgICAgaGlnaERldGFpbHMpOworICAgIH0sCisKKyAgICBkcmF3Q29tcG9uZW50XzogZnVuY3Rpb24oY3R4LCB0cmFuc2Zvcm0sIGNvbXBvbmVudCwgaGlnaERldGFpbHMpIHsKKyAgICAgIC8vIFdlIG5lZWQgdG8gY29uc2lkZXIgZXh0cmEgcGl4ZWxzIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSB0byBhdm9pZAorICAgICAgLy8gdmlzdWFsIGdsaXRjaGVzIGR1ZSB0byBub24temVybyB3aWR0aCBvZiBkb3RzLgorICAgICAgdmFyIGV4dHJhUGl4ZWxzID0gMDsKKyAgICAgIGlmIChjb21wb25lbnQgPT09IENoYXJ0U2VyaWVzQ29tcG9uZW50LkRPVFMpIHsKKyAgICAgICAgZXh0cmFQaXhlbHMgPSBNYXRoLm1heCgKKyAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQb2ludFNpemVfLCB0aGlzLnVuc2VsZWN0ZWRQb2ludFNpemVfKTsKKyAgICAgIH0KKyAgICAgIHZhciBsZWZ0Vmlld1ggPSB0cmFuc2Zvcm0ubGVmdFZpZXdYIC0gZXh0cmFQaXhlbHMgKiB0cmFuc2Zvcm0ucGl4ZWxSYXRpbzsKKyAgICAgIHZhciByaWdodFZpZXdYID0gdHJhbnNmb3JtLnJpZ2h0Vmlld1ggKworICAgICAgICAgIGV4dHJhUGl4ZWxzICogdHJhbnNmb3JtLnBpeGVsUmF0aW87CisgICAgICB2YXIgbGVmdFRpbWVzdGFtcCA9IHRyYW5zZm9ybS5sZWZ0VGltZXN0YW1wIC0gZXh0cmFQaXhlbHM7CisgICAgICB2YXIgcmlnaHRUaW1lc3RhbXAgPSB0cmFuc2Zvcm0ucmlnaHRUaW1lc3RhbXAgKyBleHRyYVBpeGVsczsKKworICAgICAgLy8gRmluZCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGFuZCBsYXN0IChwYXJ0aWFsbHkpIHZpc2libGUgcG9pbnRzLgorICAgICAgdmFyIGZpcnN0VmlzaWJsZUluZGV4ID0gdHIuYi5maW5kTG93SW5kZXhJblNvcnRlZEFycmF5KAorICAgICAgICAgIHRoaXMucG9pbnRzLAorICAgICAgICAgIGZ1bmN0aW9uKHBvaW50KSB7IHJldHVybiBwb2ludC54OyB9LAorICAgICAgICAgIGxlZnRUaW1lc3RhbXApOworICAgICAgdmFyIGxhc3RWaXNpYmxlSW5kZXggPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCisgICAgICAgICAgdGhpcy5wb2ludHMsCisgICAgICAgICAgZnVuY3Rpb24ocG9pbnQpIHsgcmV0dXJuIHBvaW50Lng7IH0sCisgICAgICAgICAgcmlnaHRUaW1lc3RhbXApOworICAgICAgaWYgKGxhc3RWaXNpYmxlSW5kZXggPj0gdGhpcy5wb2ludHMubGVuZ3RoIHx8CisgICAgICAgICAgdGhpcy5wb2ludHNbbGFzdFZpc2libGVJbmRleF0ueCA+IHJpZ2h0VGltZXN0YW1wKSB7CisgICAgICAgIGxhc3RWaXNpYmxlSW5kZXgtLTsKKyAgICAgIH0KKworICAgICAgLy8gUHJlLWNhbGN1bGF0ZSBjb21wb25lbnQgc3R5bGUgd2hpY2ggZG9lcyBub3QgZGVwZW5kIG9uIGluZGl2aWR1YWwKKyAgICAgIC8vIHBvaW50czoKKyAgICAgIC8vICAgKiBTa2lwIGRpc3RhbmNlIGJldHdlZW4gcG9pbnRzLAorICAgICAgLy8gICAqIFNlbGVjdGVkIChjaXJjbGUpIGFuZCB1bnNlbGVjdGVkIChzcXVhcmUpIGRvdCBzaXplLAorICAgICAgLy8gICAqIFVuc2VsZWN0ZWQgZG90IG9wYWNpdHksCisgICAgICAvLyAgICogU2VsZWN0ZWQgZG90IGVkZ2UgY29sb3IgYW5kIHdpZHRoLCBhbmQKKyAgICAgIC8vICAgKiBMaW5lIGNvbXBvbmVudCBjb2xvciBhbmQgd2lkdGguCisgICAgICB2YXIgdmlld1NraXBEaXN0YW5jZSA9IHRoaXMuc2tpcERpc3RhbmNlXyAqIHRyYW5zZm9ybS5waXhlbFJhdGlvOworICAgICAgdmFyIGNpcmNsZVJhZGl1czsKKyAgICAgIHZhciBzcXVhcmVTaXplOworICAgICAgdmFyIHNxdWFyZUhhbGZTaXplOworICAgICAgdmFyIHNxdWFyZU9wYWNpdHk7CisKKyAgICAgIHN3aXRjaCAoY29tcG9uZW50KSB7CisgICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuRE9UUzoKKyAgICAgICAgICAvLyBTZWxlY3RlZCBkb3QgZWRnZSBjb2xvciBhbmQgd2lkdGguCisgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gRXZlbnRQcmVzZW50ZXIuZ2V0Q291bnRlclNlcmllc0NvbG9yKAorICAgICAgICAgICAgICB0aGlzLmNvbG9ySWRfLCBTZWxlY3Rpb25TdGF0ZS5OT05FKTsKKyAgICAgICAgICBjdHgubGluZVdpZHRoID0gdHJhbnNmb3JtLnBpeGVsUmF0aW87CisKKyAgICAgICAgICAvLyBTZWxlY3RlZCAoY2lyY2xlKSBhbmQgdW5zZWxlY3RlZCAoc3F1YXJlKSBkb3Qgc2l6ZS4KKyAgICAgICAgICBjaXJjbGVSYWRpdXMgPSAodGhpcy5zZWxlY3RlZFBvaW50U2l6ZV8gLyAyKSAqIHRyYW5zZm9ybS5waXhlbFJhdGlvOworICAgICAgICAgIHNxdWFyZVNpemUgPSB0aGlzLnVuc2VsZWN0ZWRQb2ludFNpemVfICogdHJhbnNmb3JtLnBpeGVsUmF0aW87CisgICAgICAgICAgc3F1YXJlSGFsZlNpemUgPSBzcXVhcmVTaXplIC8gMjsKKworICAgICAgICAgIC8vIFVuc2VsZWN0ZWQgZG90IG9wYWNpdHkuCisgICAgICAgICAgaWYgKCFoaWdoRGV0YWlscykgeworICAgICAgICAgICAgLy8gVW5zZWxlY3RlZCBkb3RzIGFyZSBub3QgZGlzcGxheWVkIGluICdsb3cgZGV0YWlscycgbW9kZS4KKyAgICAgICAgICAgIHNxdWFyZU9wYWNpdHkgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIHZhciB2aXNpYmxlSW5kZXhSYW5nZSA9IGxhc3RWaXNpYmxlSW5kZXggLSBmaXJzdFZpc2libGVJbmRleDsKKyAgICAgICAgICBpZiAodmlzaWJsZUluZGV4UmFuZ2UgPD0gMCkgeworICAgICAgICAgICAgLy8gVGhlcmUgaXMgYXQgbW9zdCBvbmUgdmlzaWJsZSBwb2ludC4KKyAgICAgICAgICAgIHNxdWFyZU9wYWNpdHkgPSAxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIHZhciB2aXNpYmxlVmlld1hSYW5nZSA9CisgICAgICAgICAgICAgIHRyYW5zZm9ybS53b3JsZFhUb1ZpZXdYKHRoaXMucG9pbnRzW2xhc3RWaXNpYmxlSW5kZXhdLngpIC0KKyAgICAgICAgICAgICAgdHJhbnNmb3JtLndvcmxkWFRvVmlld1godGhpcy5wb2ludHNbZmlyc3RWaXNpYmxlSW5kZXhdLngpOworICAgICAgICAgIGlmICh2aXNpYmxlVmlld1hSYW5nZSA9PT0gMCkgeworICAgICAgICAgICAgLy8gTXVsdGlwbGUgdmlzaWJsZSBwb2ludHMgd2hpY2ggYWxsIGhhdmUgdGhlIHNhbWUgdGltZXN0YW1wLgorICAgICAgICAgICAgc3F1YXJlT3BhY2l0eSA9IDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgICAgdmFyIGRlbnNpdHkgPSB2aXNpYmxlSW5kZXhSYW5nZSAvIHZpc2libGVWaWV3WFJhbmdlOworICAgICAgICAgIHZhciBjbGFtcGVkRGVuc2l0eSA9IHRyLmIuY2xhbXAoZGVuc2l0eSwKKyAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdGVkUG9pbnREZW5zaXR5T3BhcXVlXywKKyAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdGVkUG9pbnREZW5zaXR5VHJhbnNwYXJlbnRfKTsKKyAgICAgICAgICB2YXIgZGVuc2l0eVJhbmdlID0gdGhpcy51bnNlbGVjdGVkUG9pbnREZW5zaXR5VHJhbnNwYXJlbnRfIC0KKyAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdGVkUG9pbnREZW5zaXR5T3BhcXVlXzsKKyAgICAgICAgICBzcXVhcmVPcGFjaXR5ID0KKyAgICAgICAgICAgICAgKHRoaXMudW5zZWxlY3RlZFBvaW50RGVuc2l0eVRyYW5zcGFyZW50XyAtIGNsYW1wZWREZW5zaXR5KSAvCisgICAgICAgICAgICAgIGRlbnNpdHlSYW5nZTsKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENoYXJ0U2VyaWVzQ29tcG9uZW50LkxJTkU6CisgICAgICAgICAgLy8gTGluZSBjb21wb25lbnQgY29sb3IgYW5kIHdpZHRoLgorICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldENvdW50ZXJTZXJpZXNDb2xvcigKKyAgICAgICAgICAgICAgdGhpcy5jb2xvcklkXywgU2VsZWN0aW9uU3RhdGUuTk9ORSk7CisgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IHRoaXMubGluZVdpZHRoXyAqIHRyYW5zZm9ybS5waXhlbFJhdGlvOworICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuQkFDS0dST1VORDoKKyAgICAgICAgICAvLyBTdHlsZSBkZXBlbmRzIG9uIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgaW5kaXZpZHVhbCBwb2ludHMuCisgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29tcG9uZW50OiAnICsgY29tcG9uZW50KTsKKyAgICAgIH0KKworICAgICAgLy8gVGhlIG1haW4gbG9vcCB3aGljaCBkcmF3cyB0aGUgZ2l2ZW4gY29tcG9uZW50IG9mIHZpc2libGUgcG9pbnRzIGZyb20KKyAgICAgIC8vIGxlZnQgdG8gcmlnaHQuIEdpdmVuIHRoZSBwb3RlbnRpYWxseSBsYXJnZSBudW1iZXIgb2YgcG9pbnRzIHRvIGRyYXcsCisgICAgICAvLyBpdCBzaG91bGQgYmUgY29uc2lkZXJlZCBwZXJmb3JtYW5jZS1jcml0aWNhbCBhbmQgZnVuY3Rpb24gY2FsbHMgc2hvdWxkCisgICAgICAvLyBiZSBhdm9pZGVkIHdoZW4gcG9zc2libGUuCisgICAgICAvLworICAgICAgLy8gTm90ZSB0aGF0IHRoZSBiYWNrZ3JvdW5kIGFuZCBsaW5lIGNvbXBvbmVudHMgYXJlIGRyYXduIGluIGEgZGVsYXllZAorICAgICAgLy8gZmFzaGlvbjogdGhlIHJlY3RhbmdsZS9saW5lIHRoYXQgd2UgZHJhdyBpbiBhbiBpdGVyYXRpb24gY29ycmVzcG9uZHMKKyAgICAgIC8vIHRvIHRoZSAqcHJldmlvdXMqIHBvaW50LiBUaGlzIGRvZXMgbm90IGFwcGx5IHRvIHRoZSBkb3RzLCB3aG9zZQorICAgICAgLy8gcG9zaXRpb24gaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHN1cnJvdW5kaW5nIGRvdHMuCisgICAgICB2YXIgcHJldmlvdXNWaWV3WCA9IHVuZGVmaW5lZDsKKyAgICAgIHZhciBwcmV2aW91c1ZpZXdZID0gdW5kZWZpbmVkOworICAgICAgdmFyIHByZXZpb3VzVmlld1lCYXNlID0gdW5kZWZpbmVkOworICAgICAgdmFyIGxhc3RTZWxlY3Rpb25TdGF0ZSA9IHVuZGVmaW5lZDsKKyAgICAgIHZhciBiYXNlU3RlcHMgPSB1bmRlZmluZWQ7CisgICAgICB2YXIgc3RhcnRJbmRleCA9IE1hdGgubWF4KGZpcnN0VmlzaWJsZUluZGV4IC0gMSwgMCk7CisKKyAgICAgIGZvciAodmFyIGkgPSBzdGFydEluZGV4OyBpIDwgdGhpcy5wb2ludHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGN1cnJlbnRQb2ludCA9IHRoaXMucG9pbnRzW2ldOworICAgICAgICB2YXIgY3VycmVudFZpZXdYID0gdHJhbnNmb3JtLndvcmxkWFRvVmlld1goY3VycmVudFBvaW50LngpOworCisgICAgICAgIC8vIFN0b3AgZHJhd2luZyB0aGUgcG9pbnRzIG9uY2Ugd2UgYXJlIHRvIHRoZSByaWdodCBvZiB0aGUgdmlzaWJsZSBhcmVhLgorICAgICAgICBpZiAoY3VycmVudFZpZXdYID4gcmlnaHRWaWV3WCkgeworICAgICAgICAgIGlmIChwcmV2aW91c1ZpZXdYICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHByZXZpb3VzVmlld1ggPSBjdXJyZW50Vmlld1ggPSByaWdodFZpZXdYOworICAgICAgICAgICAgaWYgKGNvbXBvbmVudCA9PT0gQ2hhcnRTZXJpZXNDb21wb25lbnQuQkFDS0dST1VORCB8fAorICAgICAgICAgICAgICAgIGNvbXBvbmVudCA9PT0gQ2hhcnRTZXJpZXNDb21wb25lbnQuTElORSkgeworICAgICAgICAgICAgICBjdHgubGluZVRvKGN1cnJlbnRWaWV3WCwgcHJldmlvdXNWaWV3WSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGkgKyAxIDwgdGhpcy5wb2ludHMubGVuZ3RoKSB7CisgICAgICAgICAgdmFyIG5leHRQb2ludCA9IHRoaXMucG9pbnRzW2kgKyAxXTsKKyAgICAgICAgICB2YXIgbmV4dFZpZXdYID0gdHJhbnNmb3JtLndvcmxkWFRvVmlld1gobmV4dFBvaW50LngpOworCisgICAgICAgICAgLy8gU2tpcCBwb2ludHMgdGhhdCBhcmUgdG9vIGNsb3NlIHRvIGVhY2ggb3RoZXIuCisgICAgICAgICAgaWYgKHByZXZpb3VzVmlld1ggIT09IHVuZGVmaW5lZCAmJgorICAgICAgICAgICAgICBuZXh0Vmlld1ggLSBwcmV2aW91c1ZpZXdYIDw9IHZpZXdTa2lwRGlzdGFuY2UgJiYKKyAgICAgICAgICAgICAgbmV4dFZpZXdYIDwgcmlnaHRWaWV3WCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gU3RhcnQgZHJhd2luZyByaWdodCBhdCB0aGUgbGVmdCBzaWRlIG9mIHRoZSB2aXNpYmxlIGFyZSAoaW5zdGVhZAorICAgICAgICAgIC8vIG9mIHBvdGVudGlhbGx5IHZlcnkgZmFyIHRvIHRoZSBsZWZ0KS4KKyAgICAgICAgICBpZiAoY3VycmVudFZpZXdYIDwgbGVmdFZpZXdYKSB7CisgICAgICAgICAgICBjdXJyZW50Vmlld1ggPSBsZWZ0Vmlld1g7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHByZXZpb3VzVmlld1ggIT09IHVuZGVmaW5lZCAmJgorICAgICAgICAgICAgY3VycmVudFZpZXdYIC0gcHJldmlvdXNWaWV3WCA8IHZpZXdTa2lwRGlzdGFuY2UpIHsKKyAgICAgICAgICAvLyBXZSBrbm93IHRoYXQgbmV4dFZpZXdYID4gcHJldmlvdXNWaWV3WCArIHZpZXdTa2lwRGlzdGFuY2UsIHNvIHdlCisgICAgICAgICAgLy8gY2FuIHNhZmVseSBtb3ZlIHRoaXMgcG9pbnRzJ3MgeCBvdmVyIHRoYXQgbXVjaCB3aXRob3V0IHBhc3NpbmcKKyAgICAgICAgICAvLyBuZXh0Vmlld1guIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBwcmV2aW91cyBwb2ludCBpcyB2aXNpYmxlIHdoZW4KKyAgICAgICAgICAvLyB6b29tZWQgb3V0IHZlcnkgZmFyLgorICAgICAgICAgIGN1cnJlbnRWaWV3WCA9IHByZXZpb3VzVmlld1ggKyB2aWV3U2tpcERpc3RhbmNlOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGN1cnJlbnRWaWV3WSA9IE1hdGgucm91bmQodHJhbnNmb3JtLndvcmxkWVRvVmlld1koY3VycmVudFBvaW50LnkpKTsKKyAgICAgICAgdmFyIGN1cnJlbnRWaWV3WUJhc2U7CisgICAgICAgIGlmIChjdXJyZW50UG9pbnQueUJhc2UgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGN1cnJlbnRWaWV3WUJhc2UgPSB0cmFuc2Zvcm0ub3V0ZXJCb3R0b21WaWV3WTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBjdXJyZW50Vmlld1lCYXNlID0gTWF0aC5yb3VuZCgKKyAgICAgICAgICAgICAgdHJhbnNmb3JtLndvcmxkWVRvVmlld1koY3VycmVudFBvaW50LnlCYXNlKSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGN1cnJlbnRTZWxlY3Rpb25TdGF0ZSA9IGN1cnJlbnRQb2ludC5zZWxlY3Rpb25TdGF0ZTsKKworICAgICAgICAvLyBBY3R1YWxseSBkcmF3IHRoZSBnaXZlbiBjb21wb25lbnQgb2YgdGhlIHBvaW50LgorICAgICAgICBzd2l0Y2ggKGNvbXBvbmVudCkgeworICAgICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuRE9UUzoKKyAgICAgICAgICAgIC8vIENoYW5nZSBkb3Qgc3R5bGUgd2hlbiB0aGUgc2VsZWN0aW9uIHN0YXRlIGNoYW5nZXMgKGFuZCBhdCB0aGUKKyAgICAgICAgICAgIC8vIGJlZ2lubmluZykuCisgICAgICAgICAgICBpZiAoY3VycmVudFNlbGVjdGlvblN0YXRlICE9PSBsYXN0U2VsZWN0aW9uU3RhdGUpIHsKKyAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTZWxlY3Rpb25TdGF0ZSA9PT0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQpIHsKKyAgICAgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gRXZlbnRQcmVzZW50ZXIuZ2V0Q291bnRlclNlcmllc0NvbG9yKAorICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbG9ySWRfLCBjdXJyZW50U2VsZWN0aW9uU3RhdGUpOworICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNxdWFyZU9wYWNpdHkgPiAwKSB7CisgICAgICAgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldENvdW50ZXJTZXJpZXNDb2xvcigKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvcklkXywgY3VycmVudFNlbGVjdGlvblN0YXRlLCBzcXVhcmVPcGFjaXR5KTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBEcmF3IHRoZSBkb3QgZm9yIHRoZSBjdXJyZW50IHBvaW50LgorICAgICAgICAgICAgaWYgKGN1cnJlbnRTZWxlY3Rpb25TdGF0ZSA9PT0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQpIHsKKyAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgICAgICAgICBjdHguYXJjKGN1cnJlbnRWaWV3WCwgY3VycmVudFZpZXdZLCBjaXJjbGVSYWRpdXMsIDAsIDIgKiBNYXRoLlBJKTsKKyAgICAgICAgICAgICAgY3R4LmZpbGwoKTsKKyAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzcXVhcmVPcGFjaXR5ID4gMCkgeworICAgICAgICAgICAgICBjdHguZmlsbFJlY3QoY3VycmVudFZpZXdYIC0gc3F1YXJlSGFsZlNpemUsCisgICAgICAgICAgICAgICAgICBjdXJyZW50Vmlld1kgLSBzcXVhcmVIYWxmU2l6ZSwgc3F1YXJlU2l6ZSwgc3F1YXJlU2l6ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuTElORToKKyAgICAgICAgICAgIC8vIERyYXcgdGhlIHRvcCBsaW5lIGZvciB0aGUgcHJldmlvdXMgcG9pbnQgKGlmIGFwcGxpY2FibGUpLCBvcgorICAgICAgICAgICAgLy8gcHJlcGFyZSBmb3IgZHJhd2luZyB0aGUgdG9wIGxpbmUgb2YgdGhlIGN1cnJlbnQgcG9pbnQgaW4gdGhlIG5leHQKKyAgICAgICAgICAgIC8vIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIGlmIChwcmV2aW91c1ZpZXdYID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgICAgICAgICBjdHgubW92ZVRvKGN1cnJlbnRWaWV3WCwgY3VycmVudFZpZXdZKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGN0eC5saW5lVG8oY3VycmVudFZpZXdYLCBwcmV2aW91c1ZpZXdZKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUgY3VycmVudCBwb2ludCBjb29yZGluYXRlLgorICAgICAgICAgICAgY3R4LmxpbmVUbyhjdXJyZW50Vmlld1gsIGN1cnJlbnRWaWV3WSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuQkFDS0dST1VORDoKKyAgICAgICAgICAgIC8vIERyYXcgdGhlIGJhY2tncm91bmQgZm9yIHRoZSBwcmV2aW91cyBwb2ludCAoaWYgYXBwbGljYWJsZSkuCisgICAgICAgICAgICBpZiAocHJldmlvdXNWaWV3WCAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICBjdHgubGluZVRvKGN1cnJlbnRWaWV3WCwgcHJldmlvdXNWaWV3WSk7CisKKyAgICAgICAgICAgIC8vIEZpbmlzaCB0aGUgYm90dG9tIHBhcnQgb2YgdGhlIGJhY2tnb3VuZCBwb2x5Z29uLCBjaGFuZ2UKKyAgICAgICAgICAgIC8vIGJhY2tncm91bmQgY29sb3IgYW5kIHN0YXJ0IGEgbmV3IHBvbHlnb24gd2hlbiB0aGUgc2VsZWN0aW9uIHN0YXRlCisgICAgICAgICAgICAvLyBjaGFuZ2VzIChhbmQgYXQgdGhlIGJlZ2lubmluZykuCisgICAgICAgICAgICBpZiAoY3VycmVudFNlbGVjdGlvblN0YXRlICE9PSBsYXN0U2VsZWN0aW9uU3RhdGUpIHsKKyAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmlld1ggIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIHZhciBwcmV2aW91c0Jhc2VTdGVwVmlld1ggPSBjdXJyZW50Vmlld1g7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IGJhc2VTdGVwcy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkgeworICAgICAgICAgICAgICAgICAgdmFyIGJhc2VTdGVwID0gYmFzZVN0ZXBzW2pdOworICAgICAgICAgICAgICAgICAgdmFyIGJhc2VTdGVwVmlld1ggPSBiYXNlU3RlcC52aWV3WDsKKyAgICAgICAgICAgICAgICAgIHZhciBiYXNlU3RlcFZpZXdZID0gYmFzZVN0ZXAudmlld1k7CisgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKHByZXZpb3VzQmFzZVN0ZXBWaWV3WCwgYmFzZVN0ZXBWaWV3WSk7CisgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKGJhc2VTdGVwVmlld1gsIGJhc2VTdGVwVmlld1kpOworICAgICAgICAgICAgICAgICAgcHJldmlvdXNCYXNlU3RlcFZpZXdYID0gYmFzZVN0ZXBWaWV3WDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3R4LmNsb3NlUGF0aCgpOworICAgICAgICAgICAgICAgIGN0eC5maWxsKCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gRXZlbnRQcmVzZW50ZXIuZ2V0Q291bnRlclNlcmllc0NvbG9yKAorICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvcklkXywgY3VycmVudFNlbGVjdGlvblN0YXRlLAorICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kT3BhY2l0eV8pOworICAgICAgICAgICAgICBjdHgubW92ZVRvKGN1cnJlbnRWaWV3WCwgY3VycmVudFZpZXdZQmFzZSk7CisgICAgICAgICAgICAgIGJhc2VTdGVwcyA9IFtdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY3VycmVudFZpZXdZQmFzZSAhPT0gcHJldmlvdXNWaWV3WUJhc2UgfHwKKyAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0aW9uU3RhdGUgIT09IGxhc3RTZWxlY3Rpb25TdGF0ZSkgeworICAgICAgICAgICAgICBiYXNlU3RlcHMucHVzaCh7dmlld1g6IGN1cnJlbnRWaWV3WCwgdmlld1k6IGN1cnJlbnRWaWV3WUJhc2V9KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUgY3VycmVudCBwb2ludCBjb29yZGluYXRlLgorICAgICAgICAgICAgY3R4LmxpbmVUbyhjdXJyZW50Vmlld1gsIGN1cnJlbnRWaWV3WSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCByZWFjaGFibGUnKTsKKyAgICAgICAgfQorCisgICAgICAgIHByZXZpb3VzVmlld1ggPSBjdXJyZW50Vmlld1g7CisgICAgICAgIHByZXZpb3VzVmlld1kgPSBjdXJyZW50Vmlld1k7CisgICAgICAgIHByZXZpb3VzVmlld1lCYXNlID0gY3VycmVudFZpZXdZQmFzZTsKKyAgICAgICAgbGFzdFNlbGVjdGlvblN0YXRlID0gY3VycmVudFNlbGVjdGlvblN0YXRlOworICAgICAgfQorCisgICAgICAvLyBJZiB3ZSBzdGlsbCBoYXZlIGFuIG9wZW4gYmFja2dyb3VuZCBvciB0b3AgbGluZSBwb2x5Z29uICh3aGljaCBpcworICAgICAgLy8gYWx3YXlzIHRoZSBjYXNlIG9uY2Ugd2UgaGF2ZSBzdGFydGVkIGRyYXdpbmcgZHVlIHRvIHRoZSBkZWxheWVkIGZhc2hpb24KKyAgICAgIC8vIG9mIGRyYXdpbmcpLCB3ZSBtdXN0IGNsb3NlIGl0LgorICAgICAgaWYgKHByZXZpb3VzVmlld1ggIT09IHVuZGVmaW5lZCkgeworICAgICAgICBzd2l0Y2ggKGNvbXBvbmVudCkgeworICAgICAgICAgIGNhc2UgQ2hhcnRTZXJpZXNDb21wb25lbnQuRE9UUzoKKyAgICAgICAgICAgIC8vIEFsbCBkb3RzIHdlcmUgZHJhd24gaW4gdGhlIG1haW4gbG9vcC4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSBDaGFydFNlcmllc0NvbXBvbmVudC5MSU5FOgorICAgICAgICAgICAgY3R4LnN0cm9rZSgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlIENoYXJ0U2VyaWVzQ29tcG9uZW50LkJBQ0tHUk9VTkQ6CisgICAgICAgICAgICB2YXIgcHJldmlvdXNCYXNlU3RlcFZpZXdYID0gY3VycmVudFZpZXdYOworICAgICAgICAgICAgZm9yICh2YXIgaiA9IGJhc2VTdGVwcy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkgeworICAgICAgICAgICAgICB2YXIgYmFzZVN0ZXAgPSBiYXNlU3RlcHNbal07CisgICAgICAgICAgICAgIHZhciBiYXNlU3RlcFZpZXdYID0gYmFzZVN0ZXAudmlld1g7CisgICAgICAgICAgICAgIHZhciBiYXNlU3RlcFZpZXdZID0gYmFzZVN0ZXAudmlld1k7CisgICAgICAgICAgICAgIGN0eC5saW5lVG8ocHJldmlvdXNCYXNlU3RlcFZpZXdYLCBiYXNlU3RlcFZpZXdZKTsKKyAgICAgICAgICAgICAgY3R4LmxpbmVUbyhiYXNlU3RlcFZpZXdYLCBiYXNlU3RlcFZpZXdZKTsKKyAgICAgICAgICAgICAgcHJldmlvdXNCYXNlU3RlcFZpZXdYID0gYmFzZVN0ZXBWaWV3WDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsKKyAgICAgICAgICAgIGN0eC5maWxsKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCByZWFjaGFibGUnKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6IGZ1bmN0aW9uKAorICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKSB7CisgICAgICB2YXIgcG9pbnRzID0gdGhpcy5wb2ludHM7CisKKyAgICAgIGZ1bmN0aW9uIGdldFBvaW50V2lkdGgocG9pbnQsIGkpIHsKKyAgICAgICAgaWYgKGkgPT09IHBvaW50cy5sZW5ndGggLSAxKQorICAgICAgICAgIHJldHVybiBMQVNUX1BPSU5UX1dJRFRIICogdmlld1BpeFdpZHRoV29ybGQ7CisgICAgICAgIHZhciBuZXh0UG9pbnQgPSBwb2ludHNbaSArIDFdOworICAgICAgICByZXR1cm4gbmV4dFBvaW50LnggLSBwb2ludC54OworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBzZWxlY3RQb2ludChwb2ludCkgeworICAgICAgICBwb2ludC5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOworICAgICAgfQorCisgICAgICB0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKAorICAgICAgICAgIHRoaXMucG9pbnRzLAorICAgICAgICAgIGZ1bmN0aW9uKHBvaW50KSB7IHJldHVybiBwb2ludC54IH0sCisgICAgICAgICAgZ2V0UG9pbnRXaWR0aCwKKyAgICAgICAgICBsb1dYLAorICAgICAgICAgIGhpV1gsCisgICAgICAgICAgc2VsZWN0UG9pbnQpOworICAgIH0sCisKKyAgICBhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24oZXZlbnQsIG9mZnNldCwgc2VsZWN0aW9uKSB7CisgICAgICBpZiAodGhpcy5wb2ludHMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgaW5kZXggPSB0ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheSh0aGlzLnBvaW50cywgZnVuY3Rpb24ocG9pbnQpIHsKKyAgICAgICAgcmV0dXJuIHBvaW50Lm1vZGVsSXRlbSA9PT0gZXZlbnQ7CisgICAgICB9LCB0aGlzKTsKKyAgICAgIGlmIChpbmRleCA9PT0gLTEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgdmFyIG5ld0luZGV4ID0gaW5kZXggKyBvZmZzZXQ7CisgICAgICBpZiAobmV3SW5kZXggPCAwIHx8IG5ld0luZGV4ID49IHRoaXMucG9pbnRzLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB0aGlzLnBvaW50c1tuZXdJbmRleF0uYWRkVG9TZWxlY3Rpb24oc2VsZWN0aW9uKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24od29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24pIHsKKyAgICAgIGlmICh0aGlzLnBvaW50cyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBpdGVtID0gdHIuYi5maW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5KAorICAgICAgICAgIHRoaXMucG9pbnRzLAorICAgICAgICAgIGZ1bmN0aW9uKHBvaW50KSB7IHJldHVybiBwb2ludC54IH0sCisgICAgICAgICAgd29ybGRYLAorICAgICAgICAgIHdvcmxkTWF4RGlzdCk7CisKKyAgICAgIGlmICghaXRlbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBpdGVtLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgQ2hhcnRTZXJpZXM6IENoYXJ0U2VyaWVzLAorICAgIENoYXJ0U2VyaWVzVHlwZTogQ2hhcnRTZXJpZXNUeXBlCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfc2VyaWVzX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X3Nlcmllc190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQxYzQ4MAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X3Nlcmllc190ZXN0Lmh0bWwKQEAgLTAsMCArMSwyOTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfZGlzcGxheV90cmFuc2Zvcm0uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9heGlzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY2hhcnRfcG9pbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF90cmFuc2Zvcm0uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKyAgdmFyIFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSA9IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybTsKKyAgdmFyIEV2ZW50ID0gdHIubW9kZWwuRXZlbnQ7CisgIHZhciBDaGFydEF4aXMgPSB0ci51aS50cmFja3MuQ2hhcnRBeGlzOworICB2YXIgQ2hhcnRQb2ludCA9IHRyLnVpLnRyYWNrcy5DaGFydFBvaW50OworICB2YXIgQ2hhcnRTZXJpZXMgPSB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXM7CisgIHZhciBDaGFydFRyYW5zZm9ybSA9IHRyLnVpLnRyYWNrcy5DaGFydFRyYW5zZm9ybTsKKyAgdmFyIENoYXJ0U2VyaWVzVHlwZSA9IHRyLnVpLnRyYWNrcy5DaGFydFNlcmllc1R5cGU7CisKKyAgdmFyIENBTlZBU19XSURUSCA9IDgwMDsKKyAgdmFyIENBTlZBU19IRUlHSFQgPSA4MDsKKworICBmdW5jdGlvbiBidWlsZFNlcmllcyhyZW5kZXJpbmdDb25maWcpIHsKKyAgICB2YXIgcG9pbnRzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA2MDsgaSsrKSB7CisgICAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoKTsKKyAgICAgIGV2ZW50LmluZGV4ID0gaTsKKyAgICAgIHZhciBwaGFzZSA9IGkgKiBNYXRoLlBJIC8gMTU7CisgICAgICB2YXIgdmFsdWUgPSBNYXRoLnNpbihwaGFzZSk7CisgICAgICB2YXIgcGVha0luZGV4ID0gTWF0aC5mbG9vcigocGhhc2UgKyBNYXRoLlBJIC8gMikgLyAoMiAqIE1hdGguUEkpKTsKKyAgICAgIHZhciBiYXNlID0gcGVha0luZGV4ICUgMiA9PT0gMCA/IHVuZGVmaW5lZCA6IC0xICsgdmFsdWUgLyAxLjU7CisgICAgICB2YXIgcG9pbnQgPSBuZXcgQ2hhcnRQb2ludChldmVudCwgaSAtIDMwLCB2YWx1ZSwgYmFzZSk7CisgICAgICBwb2ludHMucHVzaChwb2ludCk7CisgICAgfQorICAgIHZhciBheGlzID0gbmV3IENoYXJ0QXhpcygtMSwgMSk7CisgICAgcmV0dXJuIG5ldyBDaGFydFNlcmllcyhwb2ludHMsIGF4aXMsIHJlbmRlcmluZ0NvbmZpZyk7CisgIH0KKworICBmdW5jdGlvbiBkcmF3U2VyaWVzV2l0aERldGFpbHModGVzdCwgc2VyaWVzLCBoaWdoRGV0YWlscykgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgZGl2LmFwcGVuZENoaWxkKGNhbnZhcyk7CisKKyAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisKKyAgICBjYW52YXMud2lkdGggPSBDQU5WQVNfV0lEVEggKiBwaXhlbFJhdGlvOworICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IENBTlZBU19XSURUSCArICdweCc7CisgICAgY2FudmFzLmhlaWdodCA9IENBTlZBU19IRUlHSFQgKiBwaXhlbFJhdGlvOworICAgIGNhbnZhcy5zdHlsZS5oZWlnaHQgPSBDQU5WQVNfSEVJR0hUICsgJ3B4JzsKKworICAgIHZhciBkaXNwbGF5VHJhbnNmb3JtID0gbmV3IFRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGRpc3BsYXlUcmFuc2Zvcm0uc2NhbGVYID0gQ0FOVkFTX1dJRFRIICogcGl4ZWxSYXRpbyAvIDYwOworICAgIGRpc3BsYXlUcmFuc2Zvcm0ucGFuWCA9IDMwOworCisgICAgdmFyIHRyYW5zZm9ybSA9IG5ldyBDaGFydFRyYW5zZm9ybSgKKyAgICAgICAgZGlzcGxheVRyYW5zZm9ybSwKKyAgICAgICAgc2VyaWVzLmF4aXMsCisgICAgICAgIENBTlZBU19XSURUSCAqIHBpeGVsUmF0aW8sCisgICAgICAgIENBTlZBU19IRUlHSFQgKiBwaXhlbFJhdGlvLAorICAgICAgICAxMCAqIHBpeGVsUmF0aW8sCisgICAgICAgIDEwICogcGl4ZWxSYXRpbywKKyAgICAgICAgcGl4ZWxSYXRpbyk7CisKKyAgICBzZXJpZXMuZHJhdyhjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSwgdHJhbnNmb3JtLCBoaWdoRGV0YWlscyk7CisKKyAgICB0ZXN0LmFkZEhUTUxPdXRwdXQoZGl2KTsKKyAgfQorCisgIGZ1bmN0aW9uIGRyYXdTZXJpZXModGVzdCwgc2VyaWVzKSB7CisgICAgZHJhd1Nlcmllc1dpdGhEZXRhaWxzKHRlc3QsIHNlcmllcywgZmFsc2UpOworICAgIGRyYXdTZXJpZXNXaXRoRGV0YWlscyh0ZXN0LCBzZXJpZXMsIHRydWUpOworICB9CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfZGVmYXVsdENvbmZpZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcyh1bmRlZmluZWQpOworICAgIGRyYXdTZXJpZXModGhpcywgc2VyaWVzKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfbGluZUNoYXJ0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IGJ1aWxkU2VyaWVzKHsKKyAgICAgIGNoYXJ0VHlwZTogQ2hhcnRTZXJpZXNUeXBlLkxJTkUsCisgICAgICBjb2xvcklkOiA0LAorICAgICAgdW5zZWxlY3RlZFBvaW50U2l6ZTogNiwKKyAgICAgIGxpbmVXaWR0aDogMiwKKyAgICAgIHVuc2VsZWN0ZWRQb2ludERlbnNpdHlPcGFxdWU6IDAuMDgKKyAgICB9KTsKKyAgICBkcmF3U2VyaWVzKHRoaXMsIHNlcmllcyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX2FyZWFDaGFydCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcyh7CisgICAgICBjaGFydFR5cGU6IENoYXJ0U2VyaWVzVHlwZS5BUkVBLAorICAgICAgY29sb3JJZDogMiwKKyAgICAgIGJhY2tncm91bmRPcGFjaXR5OiAwLjIKKyAgICB9KTsKKyAgICBkcmF3U2VyaWVzKHRoaXMsIHNlcmllcyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX2xhcmdlU2tpcERpc3RhbmNlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IGJ1aWxkU2VyaWVzKHsKKyAgICAgIGNoYXJ0VHlwZTogQ2hhcnRTZXJpZXNUeXBlLkFSRUEsCisgICAgICBjb2xvcklkOiAxLAorICAgICAgc2tpcERpc3RhbmNlOiA0MCwKKyAgICAgIHVuc2VsZWN0ZWRQb2ludERlbnNpdHlUcmFuc3BhcmVudDogMC4wNworICAgIH0pOworICAgIGRyYXdTZXJpZXModGhpcywgc2VyaWVzKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfc2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IGJ1aWxkU2VyaWVzKHsKKyAgICAgIGNoYXJ0VHlwZTogQ2hhcnRTZXJpZXNUeXBlLkFSRUEsCisgICAgICBjb2xvcklkOiAxMAorICAgIH0pOworICAgIHNlcmllcy5wb2ludHMuZm9yRWFjaChmdW5jdGlvbihwb2ludCwgaW5kZXgpIHsKKyAgICAgIHBvaW50Lm1vZGVsSXRlbS5zZWxlY3Rpb25TdGF0ZSA9IGluZGV4ICUgNDsKKyAgICB9KTsKKyAgICBkcmF3U2VyaWVzKHRoaXMsIHNlcmllcyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3NlbGVjdGlvbldpdGhBbGxDb25maWdGbGFncycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcyh7CisgICAgICBjaGFydFR5cGU6IENoYXJ0U2VyaWVzVHlwZS5BUkVBLAorICAgICAgc2VsZWN0ZWRQb2ludFNpemU6IDEwLAorICAgICAgdW5zZWxlY3RlZFBvaW50U2l6ZTogNiwKKyAgICAgIGNvbG9ySWQ6IDE1LAorICAgICAgbGluZVdpZHRoOiAyLAorICAgICAgc2tpcERpc3RhbmNlOiAyNSwKKyAgICAgIHVuc2VsZWN0ZWRQb2ludERlbnNpdHlPcGFxdWU6IDAuMDcsCisgICAgICB1bnNlbGVjdGVkUG9pbnREZW5zaXR5VHJhbnNwYXJlbnQ6IDAuMDksCisgICAgICBiYWNrZ3JvdW5kT3BhY2l0eTogMC44CisgICAgfSk7CisgICAgc2VyaWVzLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKHBvaW50LCBpbmRleCkgeworICAgICAgcG9pbnQubW9kZWxJdGVtLnNlbGVjdGlvblN0YXRlID0gaW5kZXggJSA0OworICAgIH0pOworICAgIGRyYXdTZXJpZXModGhpcywgc2VyaWVzKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tSYW5nZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcygpOworICAgIHZhciByYW5nZSA9IHNlcmllcy5yYW5nZTsKKyAgICBhc3NlcnQuaXNGYWxzZShyYW5nZS5pc0VtcHR5KTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyYW5nZS5taW4sIC0xLCAwLjA1KTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyYW5nZS5tYXgsIDEsIDAuMDUpOworICB9KTsKKworICB0ZXN0KCdjaGVja2FkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBidWlsZFNlcmllcygpOworCisgICAgLy8gVG9vIGZhciBsZWZ0LgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAorICAgICAgICAtMTAwMCwgLTMwLjUsIDQwLCBzZWwpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDApOworCisgICAgLy8gU2VsZWN0IGZpcnN0IHBvaW50LgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAorICAgICAgICAtMzAuNSwgLTI5LjUsIDQwLCBzZWwpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOworICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDApOworCisgICAgLy8gU2VsZWN0IHNlY29uZCBwb2ludC4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VyaWVzLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKKyAgICAgICAgLTI4LjgsIC0yOC4yLCA0MCwgc2VsKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmluZGV4LCAxKTsKKworICAgIC8vIFNlbGVjdCBwb2ludHMgaW4gdGhlIG1pZGRsZS4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VyaWVzLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKKyAgICAgICAgLTAuOTksIDEuMDEsIDQwLCBzZWwpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDMpOworICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDI5KTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsWzFdLmluZGV4LCAzMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbFsyXS5pbmRleCwgMzEpOworCisgICAgLy8gU2VsZWN0IHRoZSBsYXN0IHBvaW50LgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAorICAgICAgICA2NjguOTksIDY2OC45OSwgNDAsIHNlbCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5pbmRleCwgNTkpOworCisgICAgLy8gVG9vIGZhciByaWdodC4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VyaWVzLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKKyAgICAgICAgNjY5LjAxLCAyMDAwLCA0MCwgc2VsKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAwKTsKKworICAgIC8vIFNlbGVjdCBldmVyeXRoaW5nLgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAorICAgICAgICAtMjkuMDEsIDY2OS4wMSwgNDAsIHNlbCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgNjApOworICB9KTsKKworICB0ZXN0KCdjaGVja2FkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlcmllcyA9IGJ1aWxkU2VyaWVzKCk7CisKKyAgICAvLyBJbnZhbGlkIGV2ZW50LgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBhc3NlcnQuaXNGYWxzZShzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgIG5ldyBFdmVudCgpLCAxLCBzZWwpKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAwKTsKKworICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBhc3NlcnQuaXNGYWxzZShzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgIG5ldyBFdmVudCgpLCAtMSwgc2VsKSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7CisKKyAgICAvLyBGaXJzdCBwb2ludC4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgIHNlcmllcy5wb2ludHNbMF0ubW9kZWxJdGVtLCAxLCBzZWwpKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmluZGV4LCAxKTsKKworICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBhc3NlcnQuaXNGYWxzZShzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgIHNlcmllcy5wb2ludHNbMF0ubW9kZWxJdGVtLCAtMSwgc2VsKSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7CisKKyAgICAvLyBNaWRkbGUgcG9pbnQuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIGFzc2VydC5pc1RydWUoc2VyaWVzLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICBzZXJpZXMucG9pbnRzWzMwXS5tb2RlbEl0ZW0sIDEsIHNlbCkpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOworICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDMxKTsKKworICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBhc3NlcnQuaXNUcnVlKHNlcmllcy5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKKyAgICAgICAgc2VyaWVzLnBvaW50c1szMF0ubW9kZWxJdGVtLCAtMSwgc2VsKSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5pbmRleCwgMjkpOworCisgICAgLy8gTGFzdCBwb2ludC4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgYXNzZXJ0LmlzRmFsc2Uoc2VyaWVzLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICBzZXJpZXMucG9pbnRzWzU5XS5tb2RlbEl0ZW0sIDEsIHNlbCkpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDApOworCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIGFzc2VydC5pc1RydWUoc2VyaWVzLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICBzZXJpZXMucG9pbnRzWzU5XS5tb2RlbEl0ZW0sIC0xLCBzZWwpKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmluZGV4LCA1OCk7CisgIH0pOworCisgIHRlc3QoJ2NoZWNrQWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VyaWVzID0gYnVpbGRTZXJpZXMoKTsKKworICAgIC8vIExlZnQgb2YgZmlyc3QgcG9pbnQuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIHNlcmllcy5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigtNDAsIDksIC0wLjUsIDAuNSwgc2VsKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAwKTsKKworICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oLTQwLCAxMSwgLTAuNSwgMC41LCBzZWwpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOworICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDApOworCisgICAgLy8gQmV0d2VlbiB0d28gcG9pbnRzLgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMC40LCAwLjMsIC0wLjUsIDAuNSwgc2VsKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAwKTsKKworICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMC40LCAwLjQsIC0wLjUsIDAuNSwgc2VsKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VsLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmluZGV4LCAzMCk7CisKKyAgICAvLyBSaWdodCBvZiBsYXN0IHBvaW50LgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBzZXJpZXMuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oNDAsIDEwLCAtMC41LCAwLjUsIHNlbCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMCk7CisKKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgc2VyaWVzLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDQwLCAxMiwgLTAuNSwgMC41LCBzZWwpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDEpOworICAgIGFzc2VydC5lcXVhbChzZWxbMF0uaW5kZXgsIDU5KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc4Y2QyOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwKQEAgLTAsMCArMSwyNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF90cmFuc2Zvcm0uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9oZWFkaW5nLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c3R5bGU+CisuY2hhcnQtdHJhY2sgeworICBoZWlnaHQ6IDMwcHg7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGEgY2hhcnQuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7VHJhY2t9CisgICAqLworICB2YXIgQ2hhcnRUcmFjayA9CisgICAgICB0ci51aS5iLmRlZmluZSgnY2hhcnQtdHJhY2snLCB0ci51aS50cmFja3MuVHJhY2spOworCisgIENoYXJ0VHJhY2sucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnY2hhcnQtdHJhY2snKTsKKyAgICAgIHRoaXMuc2VyaWVzXyA9IHVuZGVmaW5lZDsKKworICAgICAgLy8gR1VJRCAtPiB7YXhpczogQ2hhcnRBeGlzLCBzZXJpZXM6IFtDaGFydFNlcmllc119LgorICAgICAgdGhpcy5heGlzR3VpZFRvQXhpc0RhdGFfID0gdW5kZWZpbmVkOworCisgICAgICAvLyBUaGUgbWF4aW11bSB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIG9mIGFsbCBzZXJpZXMuCisgICAgICB0aGlzLnRvcFBhZGRpbmdfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5ib3R0b21QYWRkaW5nXyA9IHVuZGVmaW5lZDsKKworICAgICAgdGhpcy5oZWFkaW5nXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWhlYWRpbmcnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkaW5nXyk7CisgICAgfSwKKworICAgIHNldCBoZWFkaW5nKGhlYWRpbmcpIHsKKyAgICAgIHRoaXMuaGVhZGluZ18uaGVhZGluZyA9IGhlYWRpbmc7CisgICAgfSwKKworICAgIGdldCBoZWFkaW5nKCkgeworICAgICAgcmV0dXJuIHRoaXMuaGVhZGluZ18uaGVhZGluZzsKKyAgICB9LAorCisgICAgc2V0IHRvb2x0aXAodG9vbHRpcCkgeworICAgICAgdGhpcy5oZWFkaW5nXy50b29sdGlwID0gdG9vbHRpcDsKKyAgICB9LAorCisgICAgZ2V0IHNlcmllcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnNlcmllc187CisgICAgfSwKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbGlzdCBvZiBjaGFydCBzZXJpZXMgdG8gYmUgZGlzcGxheWVkIG9uIHRoaXMgdHJhY2suIFRoZSBsaXN0CisgICAgICogaXMgYXNzdW1lZCB0byBiZSBzb3J0ZWQgaW4gaW5jcmVhc2luZyB6LW9yZGVyIChpLmUuIHRoZSBsYXN0IHNlcmllcyBpbgorICAgICAqIHRoZSBsaXN0IHdpbGwgYmUgZHJhd24gYXQgdGhlIHRvcCkuCisgICAgICovCisgICAgc2V0IHNlcmllcyhzZXJpZXMpIHsKKyAgICAgIHRoaXMuc2VyaWVzXyA9IHNlcmllczsKKyAgICAgIHRoaXMuY2FsY3VsYXRlQXhpc0RhdGFBbmRQYWRkaW5nXygpOworICAgICAgdGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpOworICAgIH0sCisKKyAgICBnZXQgaGVpZ2h0KCkgeworICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDsKKyAgICB9LAorCisgICAgc2V0IGhlaWdodChoZWlnaHQpIHsKKyAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0OworICAgICAgdGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpOworICAgIH0sCisKKyAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7CisgICAgICByZXR1cm4gISF0aGlzLnNlcmllcyAmJiB0aGlzLnNlcmllcy5sZW5ndGggPiAwOworICAgIH0sCisKKyAgICBjYWxjdWxhdGVBeGlzRGF0YUFuZFBhZGRpbmdfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICghdGhpcy5zZXJpZXNfKSB7CisgICAgICAgIHRoaXMuYXhpc0d1aWRUb0F4aXNEYXRhXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy50b3BQYWRkaW5nXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5ib3R0b21QYWRkaW5nXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIgYXhpc0d1aWRUb0F4aXNEYXRhID0ge307CisgICAgICB2YXIgdG9wUGFkZGluZyA9IDA7CisgICAgICB2YXIgYm90dG9tUGFkZGluZyA9IDA7CisKKyAgICAgIHRoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgeworICAgICAgICB2YXIgYXhpcyA9IHNlcmllcy5heGlzOworICAgICAgICB2YXIgYXhpc0d1aWQgPSBheGlzLmd1aWQ7CisgICAgICAgIGlmICghKGF4aXNHdWlkIGluIGF4aXNHdWlkVG9BeGlzRGF0YSkpIHsKKyAgICAgICAgICBheGlzR3VpZFRvQXhpc0RhdGFbYXhpc0d1aWRdID0geworICAgICAgICAgICAgYXhpczogYXhpcywKKyAgICAgICAgICAgIHNlcmllczogW10KKyAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIGF4aXNHdWlkVG9BeGlzRGF0YVtheGlzR3VpZF0uc2VyaWVzLnB1c2goc2VyaWVzKTsKKyAgICAgICAgdG9wUGFkZGluZyA9IE1hdGgubWF4KHRvcFBhZGRpbmcsIHNlcmllcy50b3BQYWRkaW5nKTsKKyAgICAgICAgYm90dG9tUGFkZGluZyA9IE1hdGgubWF4KGJvdHRvbVBhZGRpbmcsIHNlcmllcy5ib3R0b21QYWRkaW5nKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICB0aGlzLmF4aXNHdWlkVG9BeGlzRGF0YV8gPSBheGlzR3VpZFRvQXhpc0RhdGE7CisgICAgICB0aGlzLnRvcFBhZGRpbmdfID0gdG9wUGFkZGluZzsKKyAgICAgIHRoaXMuYm90dG9tUGFkZGluZ18gPSBib3R0b21QYWRkaW5nOworICAgIH0sCisKKyAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7CisgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuR0VORVJBTF9FVkVOVDoKKyAgICAgICAgICB0aGlzLmRyYXdDaGFydF8odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfSwKKworICAgIGRyYXdDaGFydF86IGZ1bmN0aW9uKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKKyAgICAgIGlmICghdGhpcy5zZXJpZXNfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBjdHggPSB0aGlzLmNvbnRleHQoKTsKKworICAgICAgLy8gR2V0IHRyYWNrIGRyYXdpbmcgcGFyYW1ldGVycy4KKyAgICAgIHZhciBkaXNwbGF5VHJhbnNmb3JtID0gdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICAgIHZhciBib3VuZHMgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgdmFyIGhpZ2hEZXRhaWxzID0gdGhpcy52aWV3cG9ydC5oaWdoRGV0YWlsczsKKworICAgICAgLy8gUHJlLW11bHRpcGx5IGFsbCBkZXZpY2UtaW5kZXBlbmRlbnQgcGl4ZWwgcGFyYW1ldGVycyB3aXRoIHRoZSBwaXhlbAorICAgICAgLy8gcmF0aW8gdG8gYXZvaWQgdW5uZWNlc3NhcnkgcmVjb21wdXRhdGlvbiBpbiB0aGUgcGVyZm9ybWFuY2UtY3JpdGljYWwKKyAgICAgIC8vIGRyYXdpbmcgY29kZS4KKyAgICAgIHZhciB3aWR0aCA9IGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW87CisgICAgICB2YXIgaGVpZ2h0ID0gYm91bmRzLmhlaWdodCAqIHBpeGVsUmF0aW87CisgICAgICB2YXIgdG9wUGFkZGluZyA9IHRoaXMudG9wUGFkZGluZ18gKiBwaXhlbFJhdGlvOworICAgICAgdmFyIGJvdHRvbVBhZGRpbmcgPSB0aGlzLmJvdHRvbVBhZGRpbmdfICogcGl4ZWxSYXRpbzsKKworICAgICAgLy8gU2V0IHVwIGNsaXBwaW5nLgorICAgICAgY3R4LnNhdmUoKTsKKyAgICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICAgIGN0eC5yZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgICAgY3R4LmNsaXAoKTsKKworICAgICAgLy8gRHJhdyBhbGwgc2VyaWVzIGluIHRoZSBpbmNyZWFzaW5nIHotb3JkZXIuCisgICAgICB0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgdmFyIGNoYXJ0VHJhbnNmb3JtID0gbmV3IHRyLnVpLnRyYWNrcy5DaGFydFRyYW5zZm9ybSgKKyAgICAgICAgICAgIGRpc3BsYXlUcmFuc2Zvcm0sIHNlcmllcy5heGlzLCB3aWR0aCwgaGVpZ2h0LCB0b3BQYWRkaW5nLAorICAgICAgICAgICAgYm90dG9tUGFkZGluZywgcGl4ZWxSYXRpbyk7CisgICAgICAgIHNlcmllcy5kcmF3KGN0eCwgY2hhcnRUcmFuc2Zvcm0sIGhpZ2hEZXRhaWxzKTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICAvLyBTdG9wIGNsaXBwaW5nLgorICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICB9LAorCisgICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7CisgICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBDb25zaWRlciBhZGRpbmcgdGhlIHNlcmllcyB0byB0aGUgdHJhY2sgbWFwIGluc3RlYWQKKyAgICAgIC8vIG9mIHRoZSB0cmFjayAoYSBwb3RlbnRpYWwgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uKS4KKyAgICAgIHRoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgeworICAgICAgICBzZXJpZXMucG9pbnRzLmZvckVhY2goZnVuY3Rpb24ocG9pbnQpIHsKKyAgICAgICAgICBwb2ludC5hZGRUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCwgdGhpcyk7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTogZnVuY3Rpb24oCisgICAgICAgIGxvV1gsIGhpV1gsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuc2VyaWVzXy5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllcykgeworICAgICAgICBzZXJpZXMuYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAorICAgICAgICAgICAgbG9XWCwgaGlXWCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbik7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKGV2ZW50LCBvZmZzZXQsIHNlbGVjdGlvbikgeworICAgICAgdmFyIGZvdW5kSXRlbSA9IGZhbHNlOworICAgICAgdGhpcy5zZXJpZXNfLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzKSB7CisgICAgICAgIGZvdW5kSXRlbSA9IGZvdW5kSXRlbSB8fCBzZXJpZXMuYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgICAgICBldmVudCwgb2Zmc2V0LCBzZWxlY3Rpb24pOworICAgICAgfSwgdGhpcyk7CisgICAgICByZXR1cm4gZm91bmRJdGVtOworICAgIH0sCisKKyAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgeworICAgICAgLy8gRG8gbm90aGluZy4KKyAgICB9LAorCisgICAgYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLnNlcmllc18uZm9yRWFjaChmdW5jdGlvbihzZXJpZXMpIHsKKyAgICAgICAgc2VyaWVzLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICAgICAgd29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLCBzZWxlY3Rpb24pOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEF1dG9tYXRpY2FsbHkgc2V0IHRoZSBib3VuZHMgb2YgYWxsIGF4ZXMgb24gdGhpcyB0cmFjayBmcm9tIHRoZSByYW5nZSBvZgorICAgICAqIHZhbHVlcyBvZiBhbGwgc2VyaWVzIChpbiB0aGlzIHRyYWNrKSBhc3NvY2lhdGVkIHdpdGggZWFjaCBvZiB0aGVtLgorICAgICAqCisgICAgICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBDaGFydEF4aXMuYXV0b1NldEZyb21SYW5nZSBmb3IgdGhlIG9wdGlvbmFsCisgICAgICogY29uZmlndXJhdGlvbiBhcmd1bWVudCBmbGFncy4KKyAgICAgKi8KKyAgICBhdXRvU2V0QWxsQXhlczogZnVuY3Rpb24ob3B0X2NvbmZpZykgeworICAgICAgdHIuYi5pdGVySXRlbXModGhpcy5heGlzR3VpZFRvQXhpc0RhdGFfLCBmdW5jdGlvbihheGlzR3VpZCwgYXhpc0RhdGEpIHsKKyAgICAgICAgdmFyIGF4aXMgPSBheGlzRGF0YS5heGlzOworICAgICAgICB2YXIgc2VyaWVzID0gYXhpc0RhdGEuc2VyaWVzOworICAgICAgICBheGlzLmF1dG9TZXRGcm9tU2VyaWVzKHNlcmllcywgb3B0X2NvbmZpZyk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQXV0b21hdGljYWxseSBzZXQgdGhlIGJvdW5kcyBvZiB0aGUgcHJvdmlkZWQgYXhpcyBmcm9tIHRoZSByYW5nZSBvZgorICAgICAqIHZhbHVlcyBvZiBhbGwgc2VyaWVzIChpbiB0aGlzIHRyYWNrKSBhc3NvY2lhdGVkIHdpdGggaXQuCisgICAgICoKKyAgICAgKiBTZWUgdGhlIGRlc2NyaXB0aW9uIG9mIENoYXJ0QXhpcy5hdXRvU2V0RnJvbVJhbmdlIGZvciB0aGUgb3B0aW9uYWwKKyAgICAgKiBjb25maWd1cmF0aW9uIGFyZ3VtZW50IGZsYWdzLgorICAgICAqLworICAgIGF1dG9TZXRBeGlzOiBmdW5jdGlvbihheGlzLCBvcHRfY29uZmlnKSB7CisgICAgICB2YXIgc2VyaWVzID0gdGhpcy5heGlzR3VpZFRvQXhpc0RhdGFfW2F4aXMuZ3VpZF0uc2VyaWVzOworICAgICAgYXhpcy5hdXRvU2V0RnJvbVNlcmllcyhzZXJpZXMsIG9wdF9jb25maWcpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIENoYXJ0VHJhY2s6IENoYXJ0VHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE2ZTFiZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NoYXJ0X3RyYWNrX3Rlc3QuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zZWxlY3Rpb25fc3RhdGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9heGlzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY2hhcnRfcG9pbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2V2ZW50X3RvX3RyYWNrX21hcC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBDaGFydEF4aXMgPSB0ci51aS50cmFja3MuQ2hhcnRBeGlzOworICB2YXIgQ2hhcnRQb2ludCA9IHRyLnVpLnRyYWNrcy5DaGFydFBvaW50OworICB2YXIgQ2hhcnRTZXJpZXMgPSB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXM7CisgIHZhciBDaGFydFNlcmllc1R5cGUgPSB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXNUeXBlOworICB2YXIgQ2hhcnRUcmFjayA9IHRyLnVpLnRyYWNrcy5DaGFydFRyYWNrOworICB2YXIgRXZlbnQgPSB0ci5tb2RlbC5FdmVudDsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBFdmVudFRvVHJhY2tNYXAgPSB0ci51aS50cmFja3MuRXZlbnRUb1RyYWNrTWFwOworICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKKyAgdmFyIFZpZXdwb3J0ID0gdHIudWkuVGltZWxpbmVWaWV3cG9ydDsKKworICBmdW5jdGlvbiBidWlsZFBvaW50KHgsIHkpIHsKKyAgICB2YXIgZXZlbnQgPSBuZXcgRXZlbnQoKTsKKyAgICByZXR1cm4gbmV3IENoYXJ0UG9pbnQoZXZlbnQsIHgsIHkpOworICB9CisKKyAgZnVuY3Rpb24gYnVpbGRUcmFjayhvcHRfdmlld3BvcnQpIHsKKyAgICB2YXIgdmlld3BvcnQgPSBvcHRfdmlld3BvcnQgfHwgbmV3IFZpZXdwb3J0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKworICAgIHZhciBheGlzMSA9IG5ldyBDaGFydEF4aXMoMCwgMik7CisgICAgdmFyIGF4aXMyID0gbmV3IENoYXJ0QXhpcygtMTAwLCAxMDApOworCisgICAgdmFyIHBvaW50czEgPSBbCisgICAgICBidWlsZFBvaW50KC0yLjUsIDIpLAorICAgICAgYnVpbGRQb2ludCgtMS41LCAxKSwKKyAgICAgIGJ1aWxkUG9pbnQoLTAuNSwgMCksCisgICAgICBidWlsZFBvaW50KDAuNSwgMSksCisgICAgICBidWlsZFBvaW50KDEuNSwgMiksCisgICAgICBidWlsZFBvaW50KDIuNSwgMCkKKyAgICBdOworICAgIHZhciByZW5kZXJpbmdDb25maWcxID0geworICAgICAgY2hhcnRUeXBlOiBDaGFydFNlcmllc1R5cGUuQVJFQSwKKyAgICAgIGNvbG9ySWQ6IDYsCisgICAgICBzZWxlY3RlZFBvaW50U2l6ZTogNworICAgIH07CisgICAgdmFyIHNlcmllczEgPSBuZXcgQ2hhcnRTZXJpZXMocG9pbnRzMSwgYXhpczEsIHJlbmRlcmluZ0NvbmZpZzEpOworCisgICAgdmFyIHBvaW50czIgPSBbCisgICAgICBidWlsZFBvaW50KC0yLjMsIDAuMiksCisgICAgICBidWlsZFBvaW50KC0xLjMsIDEuMiksCisgICAgICBidWlsZFBvaW50KC0wLjMsIDIuMiksCisgICAgICBidWlsZFBvaW50KDAuMywgMS4yKSwKKyAgICAgIGJ1aWxkUG9pbnQoMS4zLCAwLjIpLAorICAgICAgYnVpbGRQb2ludCgyLjMsIDApCisgICAgXTsKKyAgICB2YXIgcmVuZGVyaW5nQ29uZmlnMiA9IHsKKyAgICAgIGNoYXJ0VHlwZTogQ2hhcnRTZXJpZXNUeXBlLkFSRUEsCisgICAgICBjb2xvcklkOiA0LAorICAgICAgc2VsZWN0ZWRQb2ludFNpemU6IDEwCisgICAgfTsKKyAgICB2YXIgc2VyaWVzMiA9IG5ldyBDaGFydFNlcmllcyhwb2ludHMyLCBheGlzMSwgcmVuZGVyaW5nQ29uZmlnMik7CisKKyAgICB2YXIgcG9pbnRzMyA9IFsKKyAgICAgIGJ1aWxkUG9pbnQoLTMsIC01MCksCisgICAgICBidWlsZFBvaW50KC0yLjQsIC00MCksCisgICAgICBidWlsZFBvaW50KC0xLjgsIC0zMCksCisgICAgICBidWlsZFBvaW50KC0xLjIsIC0yMCksCisgICAgICBidWlsZFBvaW50KC0wLjYsIC0xMCksCisgICAgICBidWlsZFBvaW50KDAsIDApLAorICAgICAgYnVpbGRQb2ludCgwLjYsIDEwKSwKKyAgICAgIGJ1aWxkUG9pbnQoMS4yLCAyMCksCisgICAgICBidWlsZFBvaW50KDEuOCwgMzApLAorICAgICAgYnVpbGRQb2ludCgyLjQsIDQwKSwKKyAgICAgIGJ1aWxkUG9pbnQoMywgNTApCisgICAgXTsKKyAgICB2YXIgcmVuZGVyaW5nQ29uZmlnMyA9IHsKKyAgICAgIGNoYXJ0VHlwZTogQ2hhcnRTZXJpZXNUeXBlLkxJTkUsCisgICAgICBsaW5lV2lkdGg6IDIKKyAgICB9OworICAgIHZhciBzZXJpZXMzID0gbmV3IENoYXJ0U2VyaWVzKHBvaW50czMsIGF4aXMyLCByZW5kZXJpbmdDb25maWczKTsKKworICAgIHZhciB0cmFjayA9IG5ldyBDaGFydFRyYWNrKHZpZXdwb3J0KTsKKyAgICB0cmFjay5zZXJpZXMgPSBbc2VyaWVzMSwgc2VyaWVzMiwgc2VyaWVzM107CisKKyAgICByZXR1cm4gdHJhY2s7CisgIH0KKworICB0ZXN0KCdpbnN0YW50aWF0ZV9sb3dEZXRhaWxzV2l0aG91dFNlbGVjdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOworCisgICAgdmFyIHRyYWNrID0gYnVpbGRUcmFjayh2aWV3cG9ydCk7CisgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmludmFsaWRhdGUoKTsKKworICAgIHZhciBkdCA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgZHQueFNldFdvcmxkQm91bmRzKC0zLCAzLCB0cmFjay5jbGllbnRXaWR0aCAqIHBpeGVsUmF0aW8pOworICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisKKyAgICB0cmFjay5oZWlnaHQgPSAnMTAwcHgnOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV9oaWdoRGV0YWlsc1dpdGhTZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7CisgICAgdmlld3BvcnQuaGlnaERldGFpbHMgPSB0cnVlOworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICB2YXIgdHJhY2sgPSBidWlsZFRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKworICAgIHRyYWNrLnNlcmllc1swXS5wb2ludHNbMV0ubW9kZWxJdGVtLnNlbGVjdGlvblN0YXRlID0KKyAgICAgIFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworICAgIHRyYWNrLnNlcmllc1sxXS5wb2ludHNbMV0ubW9kZWxJdGVtLnNlbGVjdGlvblN0YXRlID0KKyAgICAgIFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworICAgIHRyYWNrLnNlcmllc1syXS5wb2ludHNbM10ubW9kZWxJdGVtLnNlbGVjdGlvblN0YXRlID0KKyAgICAgIFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7CisgICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7CisKKyAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygtMywgMywgdHJhY2suY2xpZW50V2lkdGggKiBwaXhlbFJhdGlvKTsKKyAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworCisgICAgdHJhY2suaGVpZ2h0ID0gJzEwMHB4JzsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tQYWRkaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRyYWNrID0gYnVpbGRUcmFjaygpOworCisgICAgLy8gUGFkZGluZyBzaG91bGQgYmUgZXF1YWwgdG8gaGFsZiBtYXhpbXVtIHBvaW50IHNpemUuCisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnRvcFBhZGRpbmdfLCA1KTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2suYm90dG9tUGFkZGluZ18sIDUpOworICB9KTsKKworICB0ZXN0KCdjaGVja0FkZEV2ZW50c1RvVHJhY2tNYXAnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdHJhY2sgPSBidWlsZFRyYWNrKCk7CisgICAgdmFyIGV2ZW50VG9UcmFja01hcCA9IG5ldyBFdmVudFRvVHJhY2tNYXAoKTsKKyAgICB0cmFjay5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKE9iamVjdC5rZXlzKGV2ZW50VG9UcmFja01hcCksIDIzKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2thZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdHJhY2sgPSBidWlsZFRyYWNrKCk7CisKKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAorICAgICAgICAtMS4xLCAtMC43LCAwLjAxLCBzZWwpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDMpOworICAgIGFzc2VydC5lcXVhbChzZWxbMF0sIHRyYWNrLnNlcmllc1swXS5wb2ludHNbMV0ubW9kZWxJdGVtKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsWzFdLCB0cmFjay5zZXJpZXNbMV0ucG9pbnRzWzFdLm1vZGVsSXRlbSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbFsyXSwgdHJhY2suc2VyaWVzWzJdLnBvaW50c1szXS5tb2RlbEl0ZW0pOworICB9KTsKKworICB0ZXN0KCdjaGVja2FkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRyYWNrID0gYnVpbGRUcmFjaygpOworCisgICAgLy8gRmFpbCB0byBmaW5kIGEgbmVhciBpdGVtIHRvIHRoZSBsZWZ0IGluIGFueSBzZXJpZXMuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIGFzc2VydC5pc0ZhbHNlKHRyYWNrLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICB0cmFjay5zZXJpZXNbMF0ucG9pbnRzWzBdLm1vZGVsSXRlbSwgLTEsIHNlbCkpOworICAgIGFzc2VydC5sZW5ndGhPZihzZWwsIDApOworCisgICAgLy8gU3VjY2VlZCBhdCBmaW5kaW5nIGEgbmVhciBpdGVtIHRvIHRoZSByaWdodCBvZiBvbmUgc2VyaWVzLgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICBhc3NlcnQuaXNUcnVlKHRyYWNrLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICB0cmFjay5zZXJpZXNbMV0ucG9pbnRzWzFdLm1vZGVsSXRlbSwgMSwgc2VsKSk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbFswXSwgdHJhY2suc2VyaWVzWzFdLnBvaW50c1syXS5tb2RlbEl0ZW0pOworICB9KTsKKworICB0ZXN0KCdjaGVja0FkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRyYWNrID0gYnVpbGRUcmFjaygpOworCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKC0wLjgsIDAuNCwgMC41LCAxLjUsIHNlbCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlbCwgMik7CisgICAgYXNzZXJ0LmVxdWFsKHNlbFswXSwgdHJhY2suc2VyaWVzWzBdLnBvaW50c1syXS5tb2RlbEl0ZW0pOworICAgIGFzc2VydC5lcXVhbChzZWxbMV0sIHRyYWNrLnNlcmllc1syXS5wb2ludHNbNF0ubW9kZWxJdGVtKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tBdXRvU2V0QWxsQXhlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0cmFjayA9IGJ1aWxkVHJhY2soKTsKKyAgICB2YXIgYXhpczEgPSB0cmFjay5zZXJpZXNbMF0uYXhpczsKKyAgICB2YXIgYXhpczIgPSB0cmFjay5zZXJpZXNbMl0uYXhpczsKKworICAgIHRyYWNrLmF1dG9TZXRBbGxBeGVzKHtleHBhbmRNYXg6IHRydWUsIHNocmlua01heDogdHJ1ZX0pOworCisgICAgLy8gTWluIGJvdW5kcyBvZiBib3RoIGF4ZXMgc2hvdWxkIG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQuCisgICAgYXNzZXJ0LmVxdWFsKGF4aXMxLmJvdW5kcy5taW4sIDApOworICAgIGFzc2VydC5lcXVhbChheGlzMi5ib3VuZHMubWluLCAtMTAwKTsKKworICAgIC8vIE1heCBib3VuZHMgb2YgYm90aCBheGVzIHNob3VsZCBoYXZlIGJlZW4gbW9kaWZpZWQuCisgICAgYXNzZXJ0LmVxdWFsKGF4aXMxLmJvdW5kcy5tYXgsIDIuMik7CisgICAgYXNzZXJ0LmVxdWFsKGF4aXMyLmJvdW5kcy5tYXgsIDUwKTsKKyAgfSk7CisKKyAgdGVzdCgnY2hlY2tBdXRvU2V0QXhpcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0cmFjayA9IGJ1aWxkVHJhY2soKTsKKyAgICB2YXIgYXhpczEgPSB0cmFjay5zZXJpZXNbMF0uYXhpczsKKyAgICB2YXIgYXhpczIgPSB0cmFjay5zZXJpZXNbMl0uYXhpczsKKworICAgIHRyYWNrLmF1dG9TZXRBeGlzKGF4aXMyLAorICAgICAgICB7ZXhwYW5kTWluOiB0cnVlLCBzaHJpbmtNaW46IHRydWUsIGV4cGFuZE1heDogdHJ1ZSwgc2hyaW5rTWF4OiB0cnVlfSk7CisKKyAgICAvLyBGaXJzdCBheGlzIHNob3VsZCBub3QgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgIGFzc2VydC5lcXVhbChheGlzMS5ib3VuZHMubWluLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoYXhpczEuYm91bmRzLm1heCwgMik7CisKKyAgICAvLyBTZWNvbmQgYXhpcyBzaG91bGQgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgIGFzc2VydC5lcXVhbChheGlzMi5ib3VuZHMubWluLCAtNTApOworICAgIGFzc2VydC5lcXVhbChheGlzMi5ib3VuZHMubWF4LCA1MCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfdHJhbnNmb3JtLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF90cmFuc2Zvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmVkZDBiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfdHJhbnNmb3JtLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIEEgaGVscGVyIG9iamVjdCBlbmNhcHN1bGF0aW5nIGFsbCBwYXJhbWV0ZXJzIG5lY2Vzc2FyeSB0byBkcmF3IGEgY2hhcnQKKyAgICogc2VyaWVzIGFuZCBwcm92aWRlcyBjb252ZXJzaW9uIGJldHdlZW4gd29ybGQgY29vcmRpbmF0ZXMgYW5kIHBoeXNpY2FsCisgICAqIHBpeGVscy4KKyAgICoKKyAgICogQWxsIHBhcmFtZXRlcnMgKGV4Y2VwdCBmb3IgcGl4ZWxSYXRpbykgYXJlIGFzc3VtZWQgdG8gYmUgaW4gcGh5c2ljYWwgcGl4ZWxzCisgICAqIChpLmUuIGFscmVhZHkgcHJlLW11bHRpcGxpZWQgd2l0aCBwaXhlbFJhdGlvKS4KKyAgICoKKyAgICogVGhlIGRpYWdyYW0gYmVsb3cgZXhwbGFpbnMgdGhlIG1lYW5pbmcgb2YgdGhlIHJlc3VsdGluZyBmaWVsZHMgd2l0aAorICAgKiByZXNwZWN0IHRvIGEgY2hhcnQgdHJhY2s6CisgICAqCisgICAqICAgICAgb3V0ZXJUb3BWaWV3WSAtPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0vLVwtLS0tLS0tKyA8LSBUb3AgcGFkZGluZworICAgKiAgICAgIGlubmVyVG9wVmlld1kgLT4gKyAtIC0gLSAtIC0gLSAtIC0gLSAtfCB8LSAtIC0gLSsgPC0gQXhpcyBtYXgKKyAgICogICAgICAgICAgICAgICAgICAgICAgIHwgLi4gICAgICAgICAgICAgICA9PVwtLz09ICAgICB8CisgICAqICAgICAgICAgICAgICAgICAgICAgICB8ICAgPT0gICAgICAgU2VyaWVzICAgICAgID09ICAgfAorICAgKiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgPT0vLVw9PSAgICAgICAgICAgICAgIC4uIHwKKyAgICogICBpbm5lckJvdHRvbVZpZXdZIC0+ICsgLSAtIC1Qb2ludC0gLSAtIC0gLSAtIC0gLSAtIC0rIDwtIEF4aXMgbWluCisgICAqICAgb3V0ZXJCb3R0b21WaWV3WSAtPiArLS0tLS0tLVwtLy0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LSBCb3R0b20gcGFkZGluZworICAgKiAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICogICAgICAgICAgICAgICAgICAgbGVmdFZpZXdYICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0Vmlld1gKKyAgICogICAgICAgICAgICAgICAgIGxlZnRUaW1lU3RhbXAgICAgICAgICAgICAgICAgICByaWdodFRpbWVzdGFtcAorICAgKgorICAgKiBMYWJlbHMgc3RhcnRpbmcgd2l0aCBhIGxvd2VyIGNhc2UgbGV0dGVyIGFyZSB0aGUgcmVzdWx0aW5nIGZpZWxkcyBvZiB0aGUKKyAgICogdHJhbnNmb3JtIG9iamVjdC4gTGFiZWxzIHN0YXJ0aW5nIHdpdGggYW4gdXBwZXIgY2FzZSBsZXR0ZXIgY29ycmVzcG9uZAorICAgKiB0byB0aGUgcmVsZXZhbnQgY2hhcnQgdHJhY2sgY29uY2VwdHMuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ2hhcnRUcmFuc2Zvcm0oZGlzcGxheVRyYW5zZm9ybSwgYXhpcywgdHJhY2tXaWR0aCwKKyAgICAgIHRyYWNrSGVpZ2h0LCB0b3BQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBwaXhlbFJhdGlvKSB7CisgICAgdGhpcy5waXhlbFJhdGlvID0gcGl4ZWxSYXRpbzsKKworICAgIC8vIFggYXhpcy4KKyAgICB0aGlzLmxlZnRWaWV3WCA9IDA7CisgICAgdGhpcy5yaWdodFZpZXdYID0gdHJhY2tXaWR0aDsKKyAgICB0aGlzLmxlZnRUaW1lc3RhbXAgPSBkaXNwbGF5VHJhbnNmb3JtLnhWaWV3VG9Xb3JsZCh0aGlzLmxlZnRWaWV3WCk7CisgICAgdGhpcy5yaWdodFRpbWVzdGFtcCA9IGRpc3BsYXlUcmFuc2Zvcm0ueFZpZXdUb1dvcmxkKHRoaXMucmlnaHRWaWV3WCk7CisKKyAgICB0aGlzLmRpc3BsYXlUcmFuc2Zvcm1fID0gZGlzcGxheVRyYW5zZm9ybTsKKworICAgIC8vIFkgYXhpcy4KKyAgICB0aGlzLm91dGVyVG9wVmlld1kgPSAwOworICAgIHRoaXMuaW5uZXJUb3BWaWV3WSA9IHRvcFBhZGRpbmc7CisgICAgdGhpcy5pbm5lckJvdHRvbVZpZXdZID0gdHJhY2tIZWlnaHQgLSBib3R0b21QYWRkaW5nOworICAgIHRoaXMub3V0ZXJCb3R0b21WaWV3WSA9IHRyYWNrSGVpZ2h0OworCisgICAgdGhpcy5heGlzXyA9IGF4aXM7CisgICAgdGhpcy5pbm5lckhlaWdodF8gPSB0aGlzLmlubmVyQm90dG9tVmlld1kgLSB0aGlzLmlubmVyVG9wVmlld1k7CisgIH07CisKKyAgQ2hhcnRUcmFuc2Zvcm0ucHJvdG90eXBlID0geworICAgIHdvcmxkWFRvVmlld1g6IGZ1bmN0aW9uKHdvcmxkWCkgeworICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVRyYW5zZm9ybV8ueFdvcmxkVG9WaWV3KHdvcmxkWCk7CisgICAgfSwKKworICAgIHZpZXdYVG9Xb3JsZFg6IGZ1bmN0aW9uKHZpZXdYKSB7CisgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5VHJhbnNmb3JtXy54Vmlld1RvV29ybGQodmlld1gpOworICAgIH0sCisKKyAgICB3b3JsZFlUb1ZpZXdZOiBmdW5jdGlvbih3b3JsZFkpIHsKKyAgICAgIHZhciBpbm5lckhlaWdodENvZWZmaWNpZW50ID0gMSAtIHRoaXMuYXhpc18udmFsdWVUb1VuaXRSYW5nZSh3b3JsZFkpOworICAgICAgcmV0dXJuIGlubmVySGVpZ2h0Q29lZmZpY2llbnQgKiB0aGlzLmlubmVySGVpZ2h0XyArIHRoaXMuaW5uZXJUb3BWaWV3WTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDaGFydFRyYW5zZm9ybTogQ2hhcnRUcmFuc2Zvcm0KKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jaGFydF90cmFuc2Zvcm1fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfdHJhbnNmb3JtX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmU2OWUxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY2hhcnRfdHJhbnNmb3JtX3Rlc3QuaHRtbApAQCAtMCwwICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX2Rpc3BsYXlfdHJhbnNmb3JtLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY2hhcnRfYXhpcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3RyYW5zZm9ybS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0gPSB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm07CisgIHZhciBDaGFydFRyYW5zZm9ybSA9IHRyLnVpLnRyYWNrcy5DaGFydFRyYW5zZm9ybTsKKyAgdmFyIENoYXJ0QXhpcyA9IHRyLnVpLnRyYWNrcy5DaGFydEF4aXM7CisKKyAgZnVuY3Rpb24gYnVpbGRDaGFydFRyYW5zZm9ybSgpIHsKKyAgICB2YXIgZGlzcGxheVRyYW5zZm9ybSA9IG5ldyBUaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICBkaXNwbGF5VHJhbnNmb3JtLnBhblggPSAtMjA7CisgICAgZGlzcGxheVRyYW5zZm9ybS5zY2FsZVggPSAwLjU7CisKKyAgICB2YXIgYXhpcyA9IG5ldyBDaGFydEF4aXMoLTEwMCwgMTAwKTsKKworICAgIHZhciBjaGFydFRyYW5zZm9ybSA9IG5ldyBDaGFydFRyYW5zZm9ybSgKKyAgICAgICAgZGlzcGxheVRyYW5zZm9ybSwKKyAgICAgICAgYXhpcywKKyAgICAgICAgNTAwLCAvKiB0cmFja1dpZHRoICovCisgICAgICAgIDgwLCAvKiB0cmFja0hlaWdodCAqLworICAgICAgICAxNSwgLyogdG9wUGFkZGluZyAqLworICAgICAgICA1LCAvKiBib3R0b21QYWRkaW5nICovCisgICAgICAgIDMgLyogcGl4ZWxSYXRpbyAqLyk7CisKKyAgICByZXR1cm4gY2hhcnRUcmFuc2Zvcm07CisgIH0KKworICB0ZXN0KCdjaGVja0ZpZWxkcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0ID0gYnVpbGRDaGFydFRyYW5zZm9ybSgpOworCisgICAgYXNzZXJ0LmVxdWFsKHQucGl4ZWxSYXRpbywgMyk7CisKKyAgICBhc3NlcnQuZXF1YWwodC5sZWZ0Vmlld1gsIDApOworICAgIGFzc2VydC5lcXVhbCh0LnJpZ2h0Vmlld1gsIDUwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHQubGVmdFRpbWVzdGFtcCwgMjApOworICAgIGFzc2VydC5lcXVhbCh0LnJpZ2h0VGltZXN0YW1wLCAxMDIwKTsKKworICAgIGFzc2VydC5lcXVhbCh0Lm91dGVyVG9wVmlld1ksIDApOworICAgIGFzc2VydC5lcXVhbCh0LmlubmVyVG9wVmlld1ksIDE1KTsKKyAgICBhc3NlcnQuZXF1YWwodC5pbm5lckJvdHRvbVZpZXdZLCA3NSk7CisgICAgYXNzZXJ0LmVxdWFsKHQub3V0ZXJCb3R0b21WaWV3WSwgODApOworICB9KTsKKworICB0ZXN0KCdjaGVja1dvcmxkWFRvVmlld1gnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdCA9IGJ1aWxkQ2hhcnRUcmFuc2Zvcm0oKTsKKworICAgIGFzc2VydC5lcXVhbCh0LndvcmxkWFRvVmlld1goLTEwMCksIC02MCk7CisgICAgYXNzZXJ0LmVxdWFsKHQud29ybGRYVG9WaWV3WCgwKSwgLTEwKTsKKyAgICBhc3NlcnQuZXF1YWwodC53b3JsZFhUb1ZpZXdYKDUyMCksIDI1MCk7CisgICAgYXNzZXJ0LmVxdWFsKHQud29ybGRYVG9WaWV3WCgxMDIwKSwgNTAwKTsKKyAgICBhc3NlcnQuZXF1YWwodC53b3JsZFhUb1ZpZXdYKDEyMDApLCA1OTApOworICB9KTsKKworICB0ZXN0KCdjaGVja1ZpZXdYVG9Xb3JsZFgnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdCA9IGJ1aWxkQ2hhcnRUcmFuc2Zvcm0oKTsKKworICAgIGFzc2VydC5lcXVhbCh0LnZpZXdYVG9Xb3JsZFgoLTYwKSwgLTEwMCk7CisgICAgYXNzZXJ0LmVxdWFsKHQudmlld1hUb1dvcmxkWCgtMTApLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwodC52aWV3WFRvV29ybGRYKDI1MCksIDUyMCk7CisgICAgYXNzZXJ0LmVxdWFsKHQudmlld1hUb1dvcmxkWCg1MDApLCAxMDIwKTsKKyAgICBhc3NlcnQuZXF1YWwodC52aWV3WFRvV29ybGRYKDU5MCksIDEyMDApOworICB9KTsKKworICB0ZXN0KCdjaGVja1dvcmxkWVRvVmlld1knLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdCA9IGJ1aWxkQ2hhcnRUcmFuc2Zvcm0oKTsKKworICAgIGFzc2VydC5lcXVhbCh0LndvcmxkWVRvVmlld1koLTIwMCksIDEwNSk7CisgICAgYXNzZXJ0LmVxdWFsKHQud29ybGRZVG9WaWV3WSgtMTAwKSwgNzUpOworICAgIGFzc2VydC5lcXVhbCh0LndvcmxkWVRvVmlld1koMCksIDQ1KTsKKyAgICBhc3NlcnQuZXF1YWwodC53b3JsZFlUb1ZpZXdZKDEwMCksIDE1KTsKKyAgICBhc3NlcnQuZXF1YWwodC53b3JsZFlUb1ZpZXdZKDIwMCksIC0xNSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NvbnRhaW5lcl90b190cmFja19tYXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NvbnRhaW5lcl90b190cmFja19tYXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTU4MThiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY29udGFpbmVyX3RvX3RyYWNrX21hcC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvYmFzZS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworCisgIC8qKgorICAgKiBDb250YWluZXJUb1RyYWNrTWFwIGlzIGEgY2xhc3MgdG8gaGFuZGxlIGJ1aWxkaW5nIGFuZCBhY2Nlc3NpbmcgYSBtYXAKKyAgICogYmV0d2VlbiBhbiBFdmVudENvbnRhaW5lcidzIHN0YWJsZUlkIGFuZCBpdHMgaGFuZGxpbmcgdHJhY2suCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gQ29udGFpbmVyVG9UcmFja01hcCgpIHsKKyAgICB0aGlzLnN0YWJsZUlkVG9UcmFja01hcF8gPSB7fTsKKyAgfQorCisgIENvbnRhaW5lclRvVHJhY2tNYXAucHJvdG90eXBlID0geworICAgIGFkZENvbnRhaW5lcjogZnVuY3Rpb24oY29udGFpbmVyLCB0cmFjaykgeworICAgICAgaWYgKCF0cmFjaykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSB0cmFjay4nKTsKKyAgICAgIHRoaXMuc3RhYmxlSWRUb1RyYWNrTWFwX1tjb250YWluZXIuc3RhYmxlSWRdID0gdHJhY2s7CisgICAgfSwKKworICAgIGNsZWFyOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuc3RhYmxlSWRUb1RyYWNrTWFwXyA9IHt9OworICAgIH0sCisKKyAgICBnZXRUcmFja0J5U3RhYmxlSWQ6IGZ1bmN0aW9uKHN0YWJsZUlkKSB7CisgICAgICByZXR1cm4gdGhpcy5zdGFibGVJZFRvVHJhY2tNYXBfW3N0YWJsZUlkXTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDb250YWluZXJUb1RyYWNrTWFwOiBDb250YWluZXJUb1RyYWNrTWFwCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmM3YjZlCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwKQEAgLTAsMCArMSwxMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdGFzay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2ZpbHRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICB2YXIgVGFzayA9IHRyLmIuVGFzazsKKworICAvKioKKyAgICogQSBnZW5lcmljIHRyYWNrIHRoYXQgY29udGFpbnMgb3RoZXIgdHJhY2tzIGFzIGl0cyBjaGlsZHJlbi4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgQ29udGFpbmVyVHJhY2sgPSB0ci51aS5iLmRlZmluZSgnY29udGFpbmVyLXRyYWNrJywgdHIudWkudHJhY2tzLlRyYWNrKTsKKyAgQ29udGFpbmVyVHJhY2sucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICB9LAorCisgICAgZGV0YWNoOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKKyAgICB9LAorCisgICAgZ2V0IHRyYWNrc18oKSB7CisgICAgICB2YXIgdHJhY2tzID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCd0cmFjaycpKQorICAgICAgICAgIHRyYWNrcy5wdXNoKHRoaXMuY2hpbGRyZW5baV0pOworICAgICAgfQorICAgICAgcmV0dXJuIHRyYWNrczsKKyAgICB9LAorCisgICAgZHJhd1RyYWNrOiBmdW5jdGlvbih0eXBlKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCEodGhpcy5jaGlsZHJlbltpXSBpbnN0YW5jZW9mIHRyLnVpLnRyYWNrcy5UcmFjaykpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHRoaXMuY2hpbGRyZW5baV0uZHJhd1RyYWNrKHR5cGUpOworICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBBZGRzIGl0ZW1zIGludGVyc2VjdGluZyB0aGUgZ2l2ZW4gcmFuZ2UgdG8gYSBzZWxlY3Rpb24uCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxvVlggTG93ZXIgWCBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgorICAgICAqICAgICB2aWV3c3BhY2UuCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGhpVlggVXBwZXIgWCBib3VuZCBvZiB0aGUgaW50ZXJ2YWwgdG8gc2VhcmNoLCBpbgorICAgICAqICAgICB2aWV3c3BhY2UuCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxvWSBMb3dlciBZIGJvdW5kIG9mIHRoZSBpbnRlcnZhbCB0byBzZWFyY2gsIGluCisgICAgICogICAgIHZpZXdzcGFjZSBzcGFjZS4KKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaGlZIFVwcGVyIFkgYm91bmQgb2YgdGhlIGludGVydmFsIHRvIHNlYXJjaCwgaW4KKyAgICAgKiAgICAgdmlld3NwYWNlIHNwYWNlLgorICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gU2VsZWN0aW9uIHRvIHdoaWNoIHRvIGFkZCByZXN1bHRzLgorICAgICAqLworICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbjogZnVuY3Rpb24oCisgICAgICAgIGxvVlgsIGhpVlgsIGxvWSwgaGlZLCBzZWxlY3Rpb24pIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50cmFja3NfLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciB0cmFja0NsaWVudFJlY3QgPSB0aGlzLnRyYWNrc19baV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIHZhciBhID0gTWF0aC5tYXgobG9ZLCB0cmFja0NsaWVudFJlY3QudG9wKTsKKyAgICAgICAgdmFyIGIgPSBNYXRoLm1pbihoaVksIHRyYWNrQ2xpZW50UmVjdC5ib3R0b20pOworICAgICAgICBpZiAoYSA8PSBiKQorICAgICAgICAgIHRoaXMudHJhY2tzX1tpXS5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCisgICAgICAgICAgICAgIGxvVlgsIGhpVlgsIGxvWSwgaGlZLCBzZWxlY3Rpb24pOworICAgICAgfQorCisgICAgICB0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbi4KKyAgICAgICAgICBhcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgIH0sCisKKyAgICBhZGRFdmVudHNUb1RyYWNrTWFwOiBmdW5jdGlvbihldmVudFRvVHJhY2tNYXApIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7CisgICAgfSwKKworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudHJhY2tzXy5sZW5ndGg7IGkrKykKKyAgICAgICAgdGhpcy50cmFja3NfW2ldLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oCisgICAgICAgICAgICBmaWx0ZXIsIHNlbGVjdGlvbik7CisgICAgfSwKKworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb25Bc1Rhc2s6IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgICB2YXIgdGFzayA9IG5ldyBUYXNrKCk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudHJhY2tzXy5sZW5ndGg7IGkrKykgeworICAgICAgICB0YXNrLnN1YlRhc2soZnVuY3Rpb24oaSkgeyByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgdGhpcy50cmFja3NfW2ldLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oCisgICAgICAgICAgICAgIGZpbHRlciwgc2VsZWN0aW9uKTsKKyAgICAgICAgfSB9KGkpLCB0aGlzKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0YXNrOworICAgIH0sCisKKyAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24oCisgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwgc2VsZWN0aW9uKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudHJhY2tzXy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgdHJhY2tDbGllbnRSZWN0ID0gdGhpcy50cmFja3NfW2ldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICB2YXIgYSA9IE1hdGgubWF4KGxvWSwgdHJhY2tDbGllbnRSZWN0LnRvcCk7CisgICAgICAgIHZhciBiID0gTWF0aC5taW4oaGlZLCB0cmFja0NsaWVudFJlY3QuYm90dG9tKTsKKyAgICAgICAgaWYgKGEgPD0gYikgeworICAgICAgICAgIHRoaXMudHJhY2tzX1tpXS5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigKKyAgICAgICAgICAgICAgd29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLCBzZWxlY3Rpb24pOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uCisgICAgICAgICAgYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICB9LAorCisgICAgY2xlYXJUcmFja3NfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudHJhY2tzXy5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKSB7CisgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQodHJhY2spOworICAgICAgfSwgdGhpcyk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgQ29udGFpbmVyVHJhY2s6IENvbnRhaW5lclRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY291bnRlcl90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY291bnRlcl90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyZWQ5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jb3VudGVyX3RyYWNrLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X2F4aXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9wb2ludC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3Nlcmllcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhIENvdW50ZXIgb2JqZWN0LgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0NoYXJ0VHJhY2t9CisgICAqLworICB2YXIgQ291bnRlclRyYWNrID0gdHIudWkuYi5kZWZpbmUoJ2NvdW50ZXItdHJhY2snLCB0ci51aS50cmFja3MuQ2hhcnRUcmFjayk7CisKKyAgQ291bnRlclRyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5DaGFydFRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLkNoYXJ0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdjb3VudGVyLXRyYWNrJyk7CisgICAgfSwKKworICAgIGdldCBjb3VudGVyKCkgeworICAgICAgcmV0dXJuIHRoaXMuY2hhcnQ7CisgICAgfSwKKworICAgIHNldCBjb3VudGVyKGNvdW50ZXIpIHsKKyAgICAgIHRoaXMuaGVhZGluZyA9IGNvdW50ZXIubmFtZSArICc6ICc7CisgICAgICB0aGlzLnNlcmllcyA9IENvdW50ZXJUcmFjay5idWlsZENoYXJ0U2VyaWVzRnJvbUNvdW50ZXIoY291bnRlcik7CisgICAgICB0aGlzLmF1dG9TZXRBbGxBeGVzKHtleHBhbmRNYXg6IHRydWV9KTsKKyAgICB9LAorCisgICAgZ2V0TW9kZWxFdmVudEZyb21JdGVtOiBmdW5jdGlvbihjaGFydFZhbHVlKSB7CisgICAgICByZXR1cm4gY2hhcnRWYWx1ZTsKKyAgICB9CisgIH07CisKKyAgQ291bnRlclRyYWNrLmJ1aWxkQ2hhcnRTZXJpZXNGcm9tQ291bnRlciA9IGZ1bmN0aW9uKGNvdW50ZXIpIHsKKyAgICB2YXIgbnVtU2VyaWVzID0gY291bnRlci5zZXJpZXMubGVuZ3RoOworICAgIHZhciB0b3RhbHMgPSBjb3VudGVyLnRvdGFsczsKKworICAgIC8vIENyZWF0ZSBvbmUgY29tbW9uIGF4aXMgZm9yIGFsbCBzZXJpZXMuCisgICAgdmFyIGNoYXJ0QXhpcyA9IG5ldyB0ci51aS50cmFja3MuQ2hhcnRBeGlzKDAsIHVuZGVmaW5lZCk7CisKKyAgICAvLyBCdWlsZCBvbmUgY2hhcnQgc2VyaWVzIGZvciBlYWNoIGNvdW50ZXIgc2VyaWVzLgorICAgIHZhciBjaGFydFNlcmllcyA9IGNvdW50ZXIuc2VyaWVzLm1hcChmdW5jdGlvbihzZXJpZXMsIHNlcmllc0luZGV4KSB7CisgICAgICB2YXIgY2hhcnRQb2ludHMgPSBzZXJpZXMuc2FtcGxlcy5tYXAoZnVuY3Rpb24oc2FtcGxlLCBzYW1wbGVJbmRleCkgeworICAgICAgICB2YXIgdG90YWwgPSB0b3RhbHNbc2FtcGxlSW5kZXggKiBudW1TZXJpZXMgKyBzZXJpZXNJbmRleF07CisgICAgICAgIHJldHVybiBuZXcgdHIudWkudHJhY2tzLkNoYXJ0UG9pbnQoc2FtcGxlLCBzYW1wbGUudGltZXN0YW1wLCB0b3RhbCk7CisgICAgICB9KTsKKyAgICAgIHZhciByZW5kZXJpbmdDb25maWcgPSB7CisgICAgICAgIGNoYXJ0VHlwZTogdHIudWkudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZS5BUkVBLAorICAgICAgICBjb2xvcklkOiBzZXJpZXMuY29sb3IKKyAgICAgIH07CisgICAgICByZXR1cm4gbmV3IHRyLnVpLnRyYWNrcy5DaGFydFNlcmllcygKKyAgICAgICAgICBjaGFydFBvaW50cywgY2hhcnRBeGlzLCByZW5kZXJpbmdDb25maWcpOworICAgIH0pOworCisgICAgLy8gU2hvdyB0aGUgZmlyc3Qgc2VyaWVzICh3aXRoIHRoZSBzbWFsbGVzdCBjdW11bGF0aXZlIHZhbHVlKSBhdCB0aGUgdG9wLgorICAgIGNoYXJ0U2VyaWVzLnJldmVyc2UoKTsKKworICAgIHJldHVybiBjaGFydFNlcmllczsKKyAgfTsKKworICByZXR1cm4geworICAgIENvdW50ZXJUcmFjazogQ291bnRlclRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY291bnRlcl90cmFja19wZXJmX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NvdW50ZXJfdHJhY2tfcGVyZl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhYWRmOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NvdW50ZXJfdHJhY2tfcGVyZl90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9mdWxsX2NvbmZpZy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBnZXRTeW5jaHJvbm91cyh1cmwpIHsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOworICAgIC8vIFdpdGhvdXQgdGhlIG1pbWUgdHlwZSBzcGVjaWZpZWQgbGlrZSB0aGlzLCB0aGUgZmlsZSdzIGJ5dGVzIGFyZSBub3QKKyAgICAvLyByZXRyaWV2ZWQgY29ycmVjdGx5LgorICAgIHJlcS5vdmVycmlkZU1pbWVUeXBlKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7CisgICAgcmVxLnNlbmQobnVsbCk7CisgICAgcmV0dXJuIHJlcS5yZXNwb25zZVRleHQ7CisgIH0KKworICB2YXIgWk9PTV9TVEVQUyA9IDEwOworICB2YXIgWk9PTV9DT0VGRklDSUVOVCA9IDEuMjsKKworICB2YXIgbW9kZWwgPSB1bmRlZmluZWQ7CisKKyAgdmFyIGRyYXdpbmdDb250YWluZXI7CisgIHZhciB2aWV3cG9ydERpdjsKKworICB2YXIgdmlld3BvcnRXaWR0aDsKKyAgdmFyIHdvcmxkTWlkOworCisgIHZhciBzdGFydFNjYWxlID0gdW5kZWZpbmVkOworCisgIGZ1bmN0aW9uIHRpbWVkQ291bnRlclRyYWNrUGVyZlRlc3QobmFtZSwgdGVzdEZuLCBpdGVyYXRpb25zKSB7CisKKyAgICBmdW5jdGlvbiBzZXRVcE9uY2UoKSB7CisgICAgICBpZiAobW9kZWwgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworICAgICAgdmFyIGZpbGVVcmwgPSAnL3Rlc3RfZGF0YS9jb3VudGVyX3RyYWNrcy5odG1sJzsKKyAgICAgIHZhciBldmVudHMgPSBnZXRTeW5jaHJvbm91cyhmaWxlVXJsKTsKKyAgICAgIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW2V2ZW50c10sIHRydWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFVwKCkgeworICAgICAgc2V0VXBPbmNlKCk7CisgICAgICB2aWV3cG9ydERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworCisgICAgICB2YXIgdmlld3BvcnQgPSBuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCh2aWV3cG9ydERpdik7CisKKyAgICAgIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgICAgdmlld3BvcnQubW9kZWxUcmFja0NvbnRhaW5lciA9IGRyYXdpbmdDb250YWluZXI7CisKKyAgICAgIHZhciBtb2RlbFRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5Nb2RlbFRyYWNrKHZpZXdwb3J0KTsKKyAgICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQobW9kZWxUcmFjayk7CisKKyAgICAgIG1vZGVsVHJhY2subW9kZWwgPSBtb2RlbDsKKworICAgICAgdmlld3BvcnREaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICAgIHRoaXMuYWRkSFRNTE91dHB1dCh2aWV3cG9ydERpdik7CisKKyAgICAgIC8vIFNpemUgdGhlIGNhbnZhcy4KKyAgICAgIGRyYXdpbmdDb250YWluZXIudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpOworCisgICAgICAvLyBTaXplIHRoZSB2aWV3cG9ydC4KKyAgICAgIHZpZXdwb3J0V2lkdGggPSBkcmF3aW5nQ29udGFpbmVyLmNhbnZhcy53aWR0aDsKKyAgICAgIHZhciBtaW4gPSBtb2RlbC5ib3VuZHMubWluOworICAgICAgdmFyIHJhbmdlID0gbW9kZWwuYm91bmRzLnJhbmdlOworICAgICAgd29ybGRNaWQgPSBtaW4gKyByYW5nZSAvIDI7CisKKyAgICAgIHZhciBib29zdCA9IHJhbmdlICogMC4xNTsKKyAgICAgIHZhciBkdCA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICAgIGR0LnhTZXRXb3JsZEJvdW5kcyhtaW4gLSBib29zdCwgbWluICsgcmFuZ2UgKyBib29zdCwgdmlld3BvcnRXaWR0aCk7CisgICAgICBtb2RlbFRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisgICAgICBzdGFydFNjYWxlID0gZHQuc2NhbGVYOworCisgICAgICAvLyBTZWxlY3QgaGFsZiBvZiB0aGUgY291bnRlciBzYW1wbGVzLgorICAgICAgZm9yICh2YXIgcGlkIGluIG1vZGVsLnByb2Nlc3NlcykgeworICAgICAgICB2YXIgY291bnRlcnMgPSBtb2RlbC5wcm9jZXNzZXNbcGlkXS5jb3VudGVyczsKKyAgICAgICAgZm9yICh2YXIgY2lkIGluIGNvdW50ZXJzKSB7CisgICAgICAgICAgdmFyIHNlcmllcyA9IGNvdW50ZXJzW2NpZF0uc2VyaWVzOworICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgc2FtcGxlcyA9IHNlcmllc1tpXS5zYW1wbGVzOworICAgICAgICAgICAgZm9yICh2YXIgaiA9IE1hdGguZmxvb3Ioc2FtcGxlcy5sZW5ndGggLyAyKTsgaiA8IHNhbXBsZXMubGVuZ3RoOworICAgICAgICAgICAgICAgICBqKyspIHsKKyAgICAgICAgICAgICAgc2FtcGxlc1tqXS5zZWxlY3Rpb25TdGF0ZSA9CisgICAgICAgICAgICAgICAgICB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9OworCisgICAgZnVuY3Rpb24gdGVhckRvd24oKSB7CisgICAgICB2aWV3cG9ydERpdi5pbm5lclRleHQgPSAnJzsKKyAgICAgIGRyYXdpbmdDb250YWluZXIgPSB1bmRlZmluZWQ7CisgICAgfQorCisgICAgdGltZWRQZXJmVGVzdChuYW1lLCB0ZXN0Rm4sIHsKKyAgICAgIHNldFVwOiBzZXRVcCwKKyAgICAgIHRlYXJEb3duOiB0ZWFyRG93biwKKyAgICAgIGl0ZXJhdGlvbnM6IGl0ZXJhdGlvbnMKKyAgICB9KTsKKyAgfQorCisgIHZhciBuMTEwMTAwID0gWzEsIDEwLCAxMDBdOworICBuMTEwMTAwLmZvckVhY2goZnVuY3Rpb24odmFsKSB7CisgICAgdGltZWRDb3VudGVyVHJhY2tQZXJmVGVzdCgKKyAgICAgICAgJ2RyYXdfc29mdHdhcmVDYW52YXNfJyArIHZhbCwKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHNjYWxlID0gc3RhcnRTY2FsZTsKKyAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IFpPT01fU1RFUFM7IGkrKykgeworICAgICAgICAgICAgdmFyIGR0ID0gZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybS5jbG9uZSgpOworICAgICAgICAgICAgc2NhbGUgKj0gWk9PTV9DT0VGRklDSUVOVDsKKyAgICAgICAgICAgIGR0LnNjYWxlWCA9IHNjYWxlOworICAgICAgICAgICAgZHQueFBhbldvcmxkUG9zVG9WaWV3UG9zKHdvcmxkTWlkLCAnY2VudGVyJywgdmlld3BvcnRXaWR0aCk7CisgICAgICAgICAgICBkcmF3aW5nQ29udGFpbmVyLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisgICAgICAgICAgICBkcmF3aW5nQ29udGFpbmVyLmRyYXdfKCk7CisgICAgICAgICAgfQorICAgICAgICB9LCB2YWwpOworICB9KTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NvdW50ZXJfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY291bnRlcl90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM5M2RkMQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2NvdW50ZXJfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBDb3VudGVyID0gdHIubW9kZWwuQ291bnRlcjsKKyAgdmFyIFZpZXdwb3J0ID0gdHIudWkuVGltZWxpbmVWaWV3cG9ydDsKKyAgdmFyIENvdW50ZXJUcmFjayA9IHRyLnVpLnRyYWNrcy5Db3VudGVyVHJhY2s7CisKKyAgdmFyIHJ1blRlc3QgPSBmdW5jdGlvbih0aW1lc3RhbXBzLCBzYW1wbGVzLCB0ZXN0Rm4pIHsKKyAgICB2YXIgdGVzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICB2YXIgY3RyID0gbmV3IENvdW50ZXIodW5kZWZpbmVkLCAnZm9vJywgJycsICdmb28nKTsKKyAgICB2YXIgbiA9IHNhbXBsZXMubGVuZ3RoOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgIGN0ci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3ZhbHVlJyArIGksCisgICAgICAgICAgdHIudWkuYi5nZXRDb2xvcklkRm9yR2VuZXJhbFB1cnBvc2VTdHJpbmcoJ3ZhbHVlJyArIGkpKSk7CisgICAgfQorCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHRpbWVzdGFtcHMubGVuZ3RoOyArK2spIHsKKyAgICAgICAgY3RyLnNlcmllc1tpXS5hZGRDb3VudGVyU2FtcGxlKHRpbWVzdGFtcHNba10sIHNhbXBsZXNbaV1ba10pOworICAgICAgfQorICAgIH0KKworICAgIGN0ci51cGRhdGVCb3VuZHMoKTsKKworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh0ZXN0RWwpOworCisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgIHRlc3RFbC5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKKworICAgIHZhciB0cmFjayA9IG5ldyBDb3VudGVyVHJhY2sodmlld3BvcnQpOworICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0ZXN0RWwpOworCisgICAgLy8gRm9yY2UgdGhlIGNvbnRhaW5lciB0byB1cGRhdGUgc2l6ZXMgc28gdGhlIHRlc3QgY2FuIHVzZSBjb29yZGluYXRlcyB0aGF0CisgICAgLy8gbWFrZSBzZW5zZS4gVGhpcyBoYXMgdG8gYmUgYWZ0ZXIgdGhlIGFkZGluZyBvZiB0aGUgdHJhY2sgYXMgd2UgbmVlZCB0bworICAgIC8vIHVzZSB0aGUgdHJhY2sgaGVhZGVyIHRvIGZpZ3VyZSBvdXQgb3VyIHBvc2l0aW9uaW5nLgorICAgIGRyYXdpbmdDb250YWluZXIudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpOworCisgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworCisgICAgdHJhY2suaGVhZGluZyA9IGN0ci5uYW1lOworICAgIHRyYWNrLmNvdW50ZXIgPSBjdHI7CisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCAxMCwgdHJhY2suY2xpZW50V2lkdGggKiBwaXhlbFJhdGlvKTsKKyAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworCisgICAgdGVzdEZuKGN0ciwgZHJhd2luZ0NvbnRhaW5lciwgdHJhY2spOworICB9OworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGN0ciA9IG5ldyBDb3VudGVyKHVuZGVmaW5lZCwgJ3Rlc3RCYXNpY0NvdW50ZXInLCAnJywKKyAgICAgICAgJ3Rlc3RCYXNpY0NvdW50ZXInKTsKKyAgICBjdHIuYWRkU2VyaWVzKG5ldyB0ci5tb2RlbC5Db3VudGVyU2VyaWVzKCd2YWx1ZTEnLAorICAgICAgICB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZygndGVzdEJhc2ljQ291bnRlci52YWx1ZTEnKSkpOworICAgIGN0ci5hZGRTZXJpZXMobmV3IHRyLm1vZGVsLkNvdW50ZXJTZXJpZXMoJ3ZhbHVlMicsCisgICAgICAgIHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKCd0ZXN0QmFzaWNDb3VudGVyLnZhbHVlMicpKSk7CisKKyAgICB2YXIgdGltZXN0YW1wcyA9IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3XTsKKyAgICB2YXIgc2FtcGxlcyA9IFtbMCwgMywgMSwgMiwgMywgMSwgMywgMy4xXSwKKyAgICAgICAgICAgICAgICAgICBbNSwgMywgMSwgMS4xLCAwLCA3LCAwLCAwLjVdXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNhbXBsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGltZXN0YW1wcy5sZW5ndGg7ICsraykgeworICAgICAgICBjdHIuc2VyaWVzW2ldLmFkZENvdW50ZXJTYW1wbGUodGltZXN0YW1wc1trXSwgc2FtcGxlc1tpXVtrXSk7CisgICAgICB9CisgICAgfQorCisgICAgY3RyLnVwZGF0ZUJvdW5kcygpOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOworCisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKKworICAgIHZhciB0cmFjayA9IG5ldyBDb3VudGVyVHJhY2sodmlld3BvcnQpOworICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7CisgICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7CisKKyAgICB0cmFjay5oZWFkaW5nID0gY3RyLm5hbWU7CisgICAgdHJhY2suY291bnRlciA9IGN0cjsKKyAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDcuNywgdHJhY2suY2xpZW50V2lkdGgpOworICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisgIH0pOworCisgIHRlc3QoJ2Jhc2ljQ291bnRlclhQb2ludFBpY2tpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGltZXN0YW1wcyA9IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3XTsKKyAgICB2YXIgc2FtcGxlcyA9IFtbMCwgMywgMSwgMiwgMywgMSwgMywgMy4xXSwKKyAgICAgICAgICAgICAgICAgICBbNSwgMywgMSwgMS4xLCAwLCA3LCAwLCAwLjVdXTsKKworICAgIHJ1blRlc3QuY2FsbCh0aGlzLCB0aW1lc3RhbXBzLCBzYW1wbGVzLCBmdW5jdGlvbihjdHIsIGNvbnRhaW5lciwgdHJhY2spIHsKKyAgICAgIHZhciBjbGllbnRSZWN0ID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgeTc1ID0gY2xpZW50UmVjdC50b3AgKyAoMC43NSAqIGNsaWVudFJlY3QuaGVpZ2h0KTsKKworICAgICAgLy8gSW4gYm91bmRzLgorICAgICAgdmFyIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgdmFyIHggPSAwLjE1ICogY2xpZW50UmVjdC53aWR0aDsKKyAgICAgIHRyYWNrLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbigKKyAgICAgICAgICB4LCB4ICsgMSwgeTc1LCB5NzUgKyAxLCBzZWwpOworCisgICAgICBhc3NlcnQuZXF1YWwoc2VsLmxlbmd0aCwgMik7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLnNlcmllcy5jb3VudGVyLCBjdHIpOworICAgICAgYXNzZXJ0LmVxdWFsKHNlbFswXS5nZXRTYW1wbGVJbmRleCgpLCAxKTsKKyAgICAgIGFzc2VydC5lcXVhbChzZWxbMF0uc2VyaWVzLnNlcmllc0luZGV4LCAxKTsKKworICAgICAgYXNzZXJ0LmVxdWFsKHNlbFsxXS5zZXJpZXMuY291bnRlciwgY3RyKTsKKyAgICAgIGFzc2VydC5lcXVhbChzZWxbMV0uZ2V0U2FtcGxlSW5kZXgoKSwgMSk7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsWzFdLnNlcmllcy5zZXJpZXNJbmRleCwgMCk7CisKKyAgICAgIC8vIE91dHNpZGUgYm91bmRzLgorICAgICAgc2VsID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICB2YXIgeCA9IC0wLjUgKiBjbGllbnRSZWN0LndpZHRoOworICAgICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uKAorICAgICAgICAgIHgsIHggKyAxLCB5NzUsIHk3NSArIDEsIHNlbCk7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsLmxlbmd0aCwgMCk7CisKKyAgICAgIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgdmFyIHggPSAwLjggKiBjbGllbnRSZWN0LndpZHRoOworICAgICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uKAorICAgICAgICAgIHgsIHggKyAxLCB5NzUsIHk3NSArIDEsIHNlbCk7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsLmxlbmd0aCwgMCk7CisgICAgfSk7CisgIH0pOworCisgIHRlc3QoJ2NvdW50ZXJUcmFja0FkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRpbWVzdGFtcHMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgN107CisgICAgdmFyIHNhbXBsZXMgPSBbWzAsIDQsIDEsIDIsIDMsIDEsIDMsIDMuMV0sCisgICAgICAgICAgICAgICAgICAgWzUsIDMsIDEsIDEuMSwgMCwgNywgMCwgMC41XV07CisKKyAgICBydW5UZXN0LmNhbGwodGhpcywgdGltZXN0YW1wcywgc2FtcGxlcywgZnVuY3Rpb24oY3RyLCBjb250YWluZXIsIHRyYWNrKSB7CisgICAgICAvLyBCZWZvcmUgd2l0aCBub3QgcmFuZ2UuCisgICAgICB2YXIgc2VsID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigtMSwgMCwgMCwgMCwgc2VsKTsKKyAgICAgIGFzc2VydC5lcXVhbChzZWwubGVuZ3RoLCAwKTsKKworICAgICAgLy8gQmVmb3JlIHdpdGggbmVnYXRpdmUgcmFuZ2UuCisgICAgICB2YXIgc2VsID0gbmV3IHRyLm1vZGVsLkV2ZW50U2V0KCk7CisgICAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigtMSwgLTEwLCAwLCAwLCBzZWwpOworICAgICAgYXNzZXJ0LmVxdWFsKHNlbC5sZW5ndGgsIDApOworCisgICAgICAvLyBCZWZvcmUgZmlyc3Qgc2FtcGxlLgorICAgICAgdmFyIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oLTEsIDEsIDAsIDAsIHNlbCk7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsLmxlbmd0aCwgMik7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsWzBdLmdldFNhbXBsZUluZGV4KCksIDApOworCisgICAgICAvLyBCZXR3ZWVuIGFuZCBjbG9zZXIgdG8gc2FtcGxlIGJlZm9yZS4KKyAgICAgIHZhciBzZWwgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDEuMywgMSwgMCwgMCwgc2VsKTsKKyAgICAgIGFzc2VydC5lcXVhbChzZWxbMF0uZ2V0U2FtcGxlSW5kZXgoKSwgMSk7CisKKyAgICAgIC8vIEJldHdlZW4gc2FtcGxlcyB3aXRoIGJhZCByYW5nZS4KKyAgICAgIHZhciBzZWwgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDEuNDUsIDAuMjUsIDAsIDAsIHNlbCk7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsLmxlbmd0aCwgMCk7CisKKyAgICAgIC8vIEJldHdlZW4gYW5kIGNsb3NlciB0byBuZXh0IHNhbXBsZS4KKyAgICAgIHZhciBzZWwgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDQuNywgNiwgMCwgMCwgc2VsKTsKKyAgICAgIGFzc2VydC5lcXVhbChzZWxbMF0uZ2V0U2FtcGxlSW5kZXgoKSwgNSk7CisKKyAgICAgIC8vIEFmdGVyIGxhc3Qgc2FtcGxlIHdpdGggZ29vZCByYW5nZS4KKyAgICAgIHZhciBzZWwgPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDguNSwgMiwgMCwgMCwgc2VsKTsKKyAgICAgIGFzc2VydC5lcXVhbChzZWxbMF0uZ2V0U2FtcGxlSW5kZXgoKSwgNyk7CisKKyAgICAgIC8vIEFmdGVyIGxhc3Qgc2FtcGxlIHdpdGggYmFkIHJhbmdlLgorICAgICAgdmFyIHNlbCA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMTAsIDEsIDAsIDAsIHNlbCk7CisgICAgICBhc3NlcnQuZXF1YWwoc2VsLmxlbmd0aCwgMCk7CisgICAgfSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY3B1X3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jcHVfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDZmOWUxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY3B1X3RyYWNrLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvZmlsdGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogVmlzdWFsaXplcyBhIENwdSB1c2luZyBhIHNlcmllcyBvZiBvZiBTbGljZVRyYWNrcy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgQ3B1VHJhY2sgPQorICAgICAgdHIudWkuYi5kZWZpbmUoJ2NwdS10cmFjaycsIHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjayk7CisgIENwdVRyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2NwdS10cmFjaycpOworICAgICAgdGhpcy5kZXRhaWxlZE1vZGVfID0gdHJ1ZTsKKyAgICB9LAorCisgICAgZ2V0IGNwdSgpIHsKKyAgICAgIHJldHVybiB0aGlzLmNwdV87CisgICAgfSwKKworICAgIHNldCBjcHUoY3B1KSB7CisgICAgICB0aGlzLmNwdV8gPSBjcHU7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgZGV0YWlsZWRNb2RlKCkgeworICAgICAgcmV0dXJuIHRoaXMuZGV0YWlsZWRNb2RlXzsKKyAgICB9LAorCisgICAgc2V0IGRldGFpbGVkTW9kZShkZXRhaWxlZE1vZGUpIHsKKyAgICAgIHRoaXMuZGV0YWlsZWRNb2RlXyA9IGRldGFpbGVkTW9kZTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCB0b29sdGlwKCkgeworICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcF87CisgICAgfSwKKworICAgIHNldCB0b29sdGlwKHZhbHVlKSB7CisgICAgICB0aGlzLnRvb2x0aXBfID0gdmFsdWU7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7CisgICAgICBpZiAodGhpcy5jcHVfID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIHZhciBjcHUgPSB0aGlzLmNwdV87CisgICAgICBpZiAoY3B1LnNsaWNlcy5sZW5ndGgpCisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKGNwdS5zYW1wbGVzICYmIGNwdS5zYW1wbGVzLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICBpZiAodHIuYi5kaWN0aW9uYXJ5TGVuZ3RoKGNwdS5jb3VudGVycykgPiAwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZGV0YWNoKCk7CisgICAgICBpZiAoIXRoaXMuY3B1XykKKyAgICAgICAgcmV0dXJuOworICAgICAgdmFyIHNsaWNlcyA9IHRoaXMuY3B1Xy5zbGljZXM7CisgICAgICBpZiAoc2xpY2VzLmxlbmd0aCkgeworICAgICAgICB2YXIgdHJhY2sgPSBuZXcgdHIudWkudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7CisgICAgICAgIHRyYWNrLnNsaWNlcyA9IHNsaWNlczsKKyAgICAgICAgdHJhY2suaGVhZGluZyA9IHRoaXMuY3B1Xy51c2VyRnJpZW5kbHlOYW1lICsgJzonOworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuZGV0YWlsZWRNb2RlXykgeworICAgICAgICB0aGlzLmFwcGVuZFNhbXBsZXNUcmFja3NfKCk7CisKKyAgICAgICAgZm9yICh2YXIgY291bnRlck5hbWUgaW4gdGhpcy5jcHVfLmNvdW50ZXJzKSB7CisgICAgICAgICAgdmFyIGNvdW50ZXIgPSB0aGlzLmNwdV8uY291bnRlcnNbY291bnRlck5hbWVdOworICAgICAgICAgIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5Db3VudGVyVHJhY2sodGhpcy52aWV3cG9ydCk7CisgICAgICAgICAgdHJhY2suaGVhZGluZyA9IHRoaXMuY3B1Xy51c2VyRnJpZW5kbHlOYW1lICsgJyAnICsKKyAgICAgICAgICAgICAgY291bnRlci5uYW1lICsgJzonOworICAgICAgICAgIHRyYWNrLmNvdW50ZXIgPSBjb3VudGVyOworICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgICB9CisgICAgICB9CisgICAgfSwKKworICAgIGFwcGVuZFNhbXBsZXNUcmFja3NfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzYW1wbGVzID0gdGhpcy5jcHVfLnNhbXBsZXM7CisgICAgICBpZiAoc2FtcGxlcyA9PT0gdW5kZWZpbmVkIHx8IHNhbXBsZXMubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm47CisgICAgICB2YXIgc2FtcGxlc0J5VGl0bGUgPSB7fTsKKyAgICAgIHNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgICAgaWYgKHNhbXBsZXNCeVRpdGxlW3NhbXBsZS50aXRsZV0gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBzYW1wbGVzQnlUaXRsZVtzYW1wbGUudGl0bGVdID0gW107CisgICAgICAgIHNhbXBsZXNCeVRpdGxlW3NhbXBsZS50aXRsZV0ucHVzaChzYW1wbGUpOworICAgICAgfSk7CisKKyAgICAgIHZhciBzYW1wbGVUaXRsZXMgPSB0ci5iLmRpY3Rpb25hcnlLZXlzKHNhbXBsZXNCeVRpdGxlKTsKKyAgICAgIHNhbXBsZVRpdGxlcy5zb3J0KCk7CisKKyAgICAgIHNhbXBsZVRpdGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZVRpdGxlKSB7CisgICAgICAgIHZhciBzYW1wbGVzID0gc2FtcGxlc0J5VGl0bGVbc2FtcGxlVGl0bGVdOworICAgICAgICB2YXIgc2FtcGxlc1RyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5TbGljZVRyYWNrKHRoaXMudmlld3BvcnQpOworICAgICAgICBzYW1wbGVzVHJhY2suZ3JvdXAgPSB0aGlzLmNwdV87CisgICAgICAgIHNhbXBsZXNUcmFjay5zbGljZXMgPSBzYW1wbGVzOworICAgICAgICBzYW1wbGVzVHJhY2suaGVhZGluZyA9IHRoaXMuY3B1Xy51c2VyRnJpZW5kbHlOYW1lICsgJzogJyArCisgICAgICAgICAgICBzYW1wbGVUaXRsZTsKKyAgICAgICAgc2FtcGxlc1RyYWNrLnRvb2x0aXAgPSB0aGlzLmNwdV8udXNlckZyaWVuZGx5RGV0YWlsczsKKyAgICAgICAgc2FtcGxlc1RyYWNrLnNlbGVjdGlvbkdlbmVyYXRvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgdHIubW9kZWwuRXZlbnRTZXQoKTsKKyAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNhbXBsZXNUcmFjay5zbGljZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKHNhbXBsZXNUcmFjay5zbGljZXNbaV0pOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgICAgICB9OworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHNhbXBsZXNUcmFjayk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBDcHVUcmFjazogQ3B1VHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9jcHVfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY3B1X3RyYWNrX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjA5ZDRiCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvY3B1X3RyYWNrX3Rlc3QuaHRtbApAQCAtMCwwICsxLDk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIENwdSA9IHRyLm1vZGVsLkNwdTsKKyAgdmFyIENwdVRyYWNrID0gdHIudWkudHJhY2tzLkNwdVRyYWNrOworICB2YXIgU2xpY2UgPSB0ci5tb2RlbC5TbGljZTsKKyAgdmFyIFN0YWNrRnJhbWUgPSB0ci5tb2RlbC5TdGFja0ZyYW1lOworICB2YXIgU2FtcGxlID0gdHIubW9kZWwuU2FtcGxlOworICB2YXIgVGhyZWFkID0gdHIubW9kZWwuVGhyZWFkOworICB2YXIgVmlld3BvcnQgPSB0ci51aS5UaW1lbGluZVZpZXdwb3J0OworCisgIHRlc3QoJ2Jhc2ljQ3B1JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNwdSA9IG5ldyBDcHUoe30sIDcpOworICAgIGNwdS5zbGljZXMgPSBbCisgICAgICBuZXcgU2xpY2UoJycsICdhJywgMCwgMSwge30sIDEpLAorICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDIuMSwge30sIDQuOCkKKyAgICBdOworICAgIGNwdS51cGRhdGVCb3VuZHMoKTsKKworICAgIHZhciB0ZXN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQodGVzdEVsKTsKKworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKworICAgIHZhciB0cmFjayA9IG5ldyBDcHVUcmFjayh2aWV3cG9ydCk7CisgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICB0cmFjay5oZWFkaW5nID0gJ0NQVSAnICsgY3B1LmNwdU51bWJlcjsKKyAgICB0cmFjay5jcHUgPSBjcHU7CisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCAxMS4xLCB0cmFjay5jbGllbnRXaWR0aCk7CisgICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKyAgfSk7CisKKworICB0ZXN0KCd3aXRoU2FtcGxlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciB0aHJlYWQ7CisgICAgdmFyIGNwdTsKKyAgICBtb2RlbC5pbXBvcnRUcmFjZXMoW10sIGZhbHNlLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICBjcHUgPSBtb2RlbC5rZXJuZWwuZ2V0T3JDcmVhdGVDcHUoMSk7CisgICAgICB0aHJlYWQgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisKKyAgICAgIHZhciBmQSA9IG1vZGVsLmFkZFN0YWNrRnJhbWUobmV3IFN0YWNrRnJhbWUoCisgICAgICAgICAgdW5kZWZpbmVkLCAxLCAnY2F0JywgJ2EnLCA3KSk7CisgICAgICB2YXIgZkFCID0gbW9kZWwuYWRkU3RhY2tGcmFtZShuZXcgU3RhY2tGcmFtZSgKKyAgICAgICAgICBmQSwgMiwgJ2NhdCcsICdiJywgNykpOworICAgICAgdmFyIGZBQkMgPSBtb2RlbC5hZGRTdGFja0ZyYW1lKG5ldyBTdGFja0ZyYW1lKAorICAgICAgICAgIGZBQiwgMywgJ2NhdCcsICdjJywgNykpOworICAgICAgdmFyIGZBRCA9IG1vZGVsLmFkZFN0YWNrRnJhbWUobmV3IFN0YWNrRnJhbWUoCisgICAgICAgICAgZkEsIDQsICdjYXQnLCAnZCcsIDcpKTsKKworICAgICAgbW9kZWwuc2FtcGxlcy5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdpbnN0cnVjdGlvbnNfcmV0aXJlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgZkFCQywgMTApKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAsIGZBQiwgMTApKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAsIGZBQiwgMTApKTsKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIGZBRCwgMTApKTsKKworICAgICAgbW9kZWwuc2FtcGxlcy5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdwYWdlX2ZhdWx0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LCBmQUIsIDEwKSk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ3BhZ2VfZmF1bHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUsIGZBRCwgMTApKTsKKyAgICB9KTsKKworICAgIHZhciB0ZXN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQodGVzdEVsKTsKKworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKworICAgIHZhciB0cmFjayA9IG5ldyBDcHVUcmFjayh2aWV3cG9ydCk7CisgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICB0cmFjay5oZWFkaW5nID0gJ0NQVSAnICsgY3B1LmNwdU51bWJlcjsKKyAgICB0cmFjay5jcHUgPSBjcHU7CisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCAxMS4xLCB0cmFjay5jbGllbnRXaWR0aCk7CisgICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kZXZpY2VfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2RldmljZV90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlZDU3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kZXZpY2VfdHJhY2suaHRtbApAQCAtMCwwICsxLDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvcG93ZXJfc2VyaWVzX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3Mvc3BhY2luZ190cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworCisgIHZhciBDb250YWluZXJUcmFjayA9IHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjazsKKworICAvLyBUT0RPKGNoYXJsaWVhKTogTWFrZSB0aGlzIHRyYWNrIGNvbGxhcHNpYmxlLgorICAvKioKKyAgICogVHJhY2sgdG8gdmlzdWFsaXplIHRoZSBkZXZpY2UgbW9kZWwuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7Q29udGFpbmVyVHJhY2t9CisgICAqLworICB2YXIgRGV2aWNlVHJhY2sgPSB0ci51aS5iLmRlZmluZSgnZGV2aWNlLXRyYWNrJywgQ29udGFpbmVyVHJhY2spOworCisgIERldmljZVRyYWNrLnByb3RvdHlwZSA9IHsKKworICAgIF9fcHJvdG9fXzogQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICBDb250YWluZXJUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnZGV2aWNlLXRyYWNrJyk7CisgICAgICB0aGlzLmRldmljZV8gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLnBvd2VyU2VyaWVzVHJhY2tfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgZGV2aWNlKCkgeworICAgICAgcmV0dXJuIHRoaXMuZGV2aWNlXzsKKyAgICB9LAorCisgICAgc2V0IGRldmljZShkZXZpY2UpIHsKKyAgICAgIHRoaXMuZGV2aWNlXyA9IGRldmljZTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBwb3dlclNlcmllc1RyYWNrKCkgeworICAgICAgcmV0dXJuIHRoaXMucG93ZXJTZXJpZXNUcmFja187CisgICAgfSwKKworICAgIGdldCBoYXNWaXNpYmxlQ29udGVudCgpIHsKKyAgICAgIHJldHVybiAodGhpcy5wb3dlclNlcmllc1RyYWNrXyAmJgorICAgICAgICAgIHRoaXMucG93ZXJTZXJpZXNUcmFja18uaGFzVmlzaWJsZUNvbnRlbnQpOworICAgIH0sCisKKyAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCkgeworICAgICAgY29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5kZXZpY2UsIHRoaXMpOworICAgICAgdGhpcy50cmFja3NfLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKKyAgICAgICAgdHJhY2suYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoY29udGFpbmVyVG9UcmFja01hcCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7CisgICAgICB0aGlzLnRyYWNrc18uZm9yRWFjaChmdW5jdGlvbih0cmFjaykgeworICAgICAgICB0cmFjay5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgYXBwZW5kUG93ZXJTZXJpZXNUcmFja186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5wb3dlclNlcmllc1RyYWNrXyA9IG5ldyB0ci51aS50cmFja3MuUG93ZXJTZXJpZXNUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgIHRoaXMucG93ZXJTZXJpZXNUcmFja18ucG93ZXJTZXJpZXMgPSB0aGlzLmRldmljZS5wb3dlclNlcmllczsKKworICAgICAgaWYgKHRoaXMucG93ZXJTZXJpZXNUcmFja18uaGFzVmlzaWJsZUNvbnRlbnQpIHsKKyAgICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLnBvd2VyU2VyaWVzVHJhY2tfKTsKKyAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChuZXcgdHIudWkudHJhY2tzLlNwYWNpbmdUcmFjayh0aGlzLnZpZXdwb3J0KSk7CisgICAgICB9CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsZWFyVHJhY2tzXygpOworICAgICAgdGhpcy5hcHBlbmRQb3dlclNlcmllc1RyYWNrXygpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIERldmljZVRyYWNrOiBEZXZpY2VUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2RldmljZV90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kZXZpY2VfdHJhY2tfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NWNiNjUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kZXZpY2VfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSdpbXBvcnQnIGhyZWY9Jy9tb2RlbC9kZXZpY2UuaHRtbCc+Cis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL21vZGVsL21vZGVsLmh0bWwnPgorPGxpbmsgcmVsPSdpbXBvcnQnIGhyZWY9Jy91aS90aW1lbGluZV9kaXNwbGF5X3RyYW5zZm9ybS5odG1sJz4KKzxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvdWkvdGltZWxpbmVfdmlld3BvcnQuaHRtbCc+Cis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL3VpL3RyYWNrcy9kZXZpY2VfdHJhY2suaHRtbCc+Cis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sJz4KKzxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvdWkvdHJhY2tzL2V2ZW50X3RvX3RyYWNrX21hcC5odG1sJz4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisKKyAgdmFyIERldmljZSA9IHRyLm1vZGVsLkRldmljZTsKKyAgdmFyIERldmljZVRyYWNrID0gdHIudWkudHJhY2tzLkRldmljZVRyYWNrOworICB2YXIgTW9kZWwgPSB0ci5Nb2RlbDsKKyAgdmFyIFBvd2VyU2VyaWVzID0gdHIubW9kZWwuUG93ZXJTZXJpZXM7CisKKyAgdmFyIGNyZWF0ZURyYXdpbmdDb250YWluZXIgPSBmdW5jdGlvbihzZXJpZXMpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOworCisgICAgaWYgKHNlcmllcykgeworICAgICAgc2VyaWVzLnVwZGF0ZUJvdW5kcygpOworICAgICAgc2V0RGlzcGxheVRyYW5zZm9ybUZyb21Cb3VuZHModmlld3BvcnQsIHNlcmllcy5ib3VuZHMpOworICAgIH0KKworICAgIHJldHVybiBkcmF3aW5nQ29udGFpbmVyOworICB9OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBtYXBwaW5nIGJldHdlZW4gdGhlIGlucHV0IHJhbmdlIG9mIHRpbWVzdGFtcHMgYW5kIHRoZSBvdXRwdXQgcmFuZ2UKKyAgICogb2YgaG9yaXpvbnRhbCBwaXhlbHMuCisgICAqLworICB2YXIgc2V0RGlzcGxheVRyYW5zZm9ybUZyb21Cb3VuZHMgPSBmdW5jdGlvbih2aWV3cG9ydCwgYm91bmRzKSB7CisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICB2YXIgY2hhcnRQaXhlbFdpZHRoID0KKyAgICAgICAgKHdpbmRvdy5pbm5lcldpZHRoIC0gdHIuYy5jb25zdGFudHMuSEVBRElOR19XSURUSCkgKiBwaXhlbFJhdGlvOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcyhib3VuZHMubWluLCBib3VuZHMubWF4LCBjaGFydFBpeGVsV2lkdGgpOworICAgIHZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisgIH07CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGV2aWNlID0gbmV3IERldmljZShuZXcgTW9kZWwoKSk7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzID0gbmV3IFBvd2VyU2VyaWVzKGRldmljZSk7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAsIDEpOworICAgIGRldmljZS5wb3dlclNlcmllcy5hZGRQb3dlclNhbXBsZSgwLjUsIDIpOworICAgIGRldmljZS5wb3dlclNlcmllcy5hZGRQb3dlclNhbXBsZSgxLCAzKTsKKyAgICBkZXZpY2UucG93ZXJTZXJpZXMuYWRkUG93ZXJTYW1wbGUoMS41LCA0KTsKKworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gY3JlYXRlRHJhd2luZ0NvbnRhaW5lcihkZXZpY2UucG93ZXJTZXJpZXMpOworICAgIHZhciB0cmFjayA9IG5ldyBEZXZpY2VUcmFjayhkcmF3aW5nQ29udGFpbmVyLnZpZXdwb3J0KTsKKyAgICB0cmFjay5kZXZpY2UgPSBkZXZpY2U7CisgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZHJhd2luZ0NvbnRhaW5lcik7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX25vUG93ZXJTZXJpZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGV2aWNlID0gbmV3IERldmljZShuZXcgTW9kZWwoKSk7CisKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IGNyZWF0ZURyYXdpbmdDb250YWluZXIoZGV2aWNlLnBvd2VyU2VyaWVzKTsKKyAgICB2YXIgdHJhY2sgPSBuZXcgRGV2aWNlVHJhY2soZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydCk7CisgICAgdHJhY2suZGV2aWNlID0gZGV2aWNlOworICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOworCisgICAgLy8gQWRkaW5nIG91dHB1dCBzaG91bGQgdGhyb3cgZHVlIHRvIG5vIHZpc2libGUgY29udGVudC4KKyAgICBhc3NlcnQudGhyb3coZnVuY3Rpb24oKSB7IHRoaXMuYWRkSFRNTE91dHB1dChkcmF3aW5nQ29udGFpbmVyKTsgfSk7CisgIH0pOworCisgIHRlc3QoJ3NldERldmljZV9jbGVhcnNUcmFja0JlZm9yZVVwZGF0aW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRldmljZSA9IG5ldyBEZXZpY2UobmV3IE1vZGVsKCkpOworICAgIGRldmljZS5wb3dlclNlcmllcyA9IG5ldyBQb3dlclNlcmllcyhkZXZpY2UpOworICAgIGRldmljZS5wb3dlclNlcmllcy5hZGRQb3dlclNhbXBsZSgwLCAxKTsKKyAgICBkZXZpY2UucG93ZXJTZXJpZXMuYWRkUG93ZXJTYW1wbGUoMC41LCAyKTsKKyAgICBkZXZpY2UucG93ZXJTZXJpZXMuYWRkUG93ZXJTYW1wbGUoMSwgMyk7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzLmFkZFBvd2VyU2FtcGxlKDEuNSwgNCk7CisKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IGNyZWF0ZURyYXdpbmdDb250YWluZXIoZGV2aWNlLnBvd2VyU2VyaWVzKTsKKworICAgIC8vIFNldCB0aGUgZGV2aWNlIHR3aWNlIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGlzIGRvZXNuJ3QgcmVzdWx0IGluCisgICAgLy8gdGhlIHRyYWNrIGFwcGVhcmluZyB0d2ljZS4KKyAgICB2YXIgdHJhY2sgPSBuZXcgRGV2aWNlVHJhY2soZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydCk7CisgICAgdHJhY2suZGV2aWNlID0gZGV2aWNlOworICAgIHRyYWNrLmRldmljZSA9IGRldmljZTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChkcmF3aW5nQ29udGFpbmVyKTsKKworICAgIC8vIFRoZSBkZXZpY2UgdHJhY2sgc2hvdWxkIHN0aWxsIGhhdmUgdHdvIHN1YnRyYWNrczogb25lIGNvdW50ZXIgdHJhY2sgYW5kCisgICAgLy8gb25lIHNwYWNpbmcgdHJhY2suCisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnRyYWNrc18ubGVuZ3RoLCAyKTsKKyAgfSk7CisKKyAgdGVzdCgnYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGV2aWNlID0gbmV3IERldmljZShuZXcgTW9kZWwoKSk7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzID0gbmV3IFBvd2VyU2VyaWVzKGRldmljZSk7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAsIDEwMDApOworCisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBjcmVhdGVEcmF3aW5nQ29udGFpbmVyKGRldmljZS5zZXJpZXMpOworICAgIHZhciB0cmFjayA9IG5ldyBEZXZpY2VUcmFjayhkcmF3aW5nQ29udGFpbmVyLnZpZXdwb3J0KTsKKyAgICB0cmFjay5kZXZpY2UgPSBkZXZpY2U7CisKKyAgICB2YXIgY29udGFpbmVyVG9UcmFja01hcCA9IG5ldyB0ci51aS50cmFja3MuQ29udGFpbmVyVG9UcmFja01hcCgpOworICAgIHRyYWNrLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApOworCisgICAgYXNzZXJ0LmVxdWFsKGNvbnRhaW5lclRvVHJhY2tNYXAuZ2V0VHJhY2tCeVN0YWJsZUlkKCdEZXZpY2UnKSwgdHJhY2spOworICAgIGFzc2VydC5lcXVhbCgKKyAgICAgICAgY29udGFpbmVyVG9UcmFja01hcC5nZXRUcmFja0J5U3RhYmxlSWQoJ0RldmljZS5Qb3dlclNlcmllcycpLAorICAgICAgICB0cmFjay5wb3dlclNlcmllc1RyYWNrKTsKKyAgfSk7CisKKyAgdGVzdCgnYWRkRXZlbnRzVG9UcmFja01hcCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkZXZpY2UgPSBuZXcgRGV2aWNlKG5ldyBNb2RlbCgpKTsKKyAgICBkZXZpY2UucG93ZXJTZXJpZXMgPSBuZXcgUG93ZXJTZXJpZXMoZGV2aWNlKTsKKyAgICBkZXZpY2UucG93ZXJTZXJpZXMuYWRkUG93ZXJTYW1wbGUoMCwgMSk7CisgICAgZGV2aWNlLnBvd2VyU2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAuNSwgMik7CisKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IGNyZWF0ZURyYXdpbmdDb250YWluZXIoZGV2aWNlLnBvd2VyU2VyaWVzKTsKKyAgICB2YXIgdHJhY2sgPSBuZXcgRGV2aWNlVHJhY2soZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydCk7CisgICAgdHJhY2suZGV2aWNlID0gZGV2aWNlOworCisgICAgdmFyIGV2ZW50VG9UcmFja01hcCA9IG5ldyB0ci51aS50cmFja3MuRXZlbnRUb1RyYWNrTWFwKCk7CisgICAgdHJhY2suYWRkRXZlbnRzVG9UcmFja01hcChldmVudFRvVHJhY2tNYXApOworCisgICAgdmFyIGV4cGVjdGVkID0gbmV3IHRyLnVpLnRyYWNrcy5FdmVudFRvVHJhY2tNYXAoKTsKKyAgICBleHBlY3RlZFtkZXZpY2UucG93ZXJTZXJpZXMuc2FtcGxlc1swXS5ndWlkXSA9IHRyYWNrLnBvd2VyU2VyaWVzVHJhY2s7CisgICAgZXhwZWN0ZWRbZGV2aWNlLnBvd2VyU2VyaWVzLnNhbXBsZXNbMV0uZ3VpZF0gPSB0cmFjay5wb3dlclNlcmllc1RyYWNrOworCisgICAgYXNzZXJ0LmRlZXBFcXVhbChldmVudFRvVHJhY2tNYXAsIGV4cGVjdGVkKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvZHJhd2luZ19jb250YWluZXIuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0YTlhMDYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sCkBAIC0wLDAgKzEsMTgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmNzcyI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9yYWYuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICB2YXIgRHJhd1R5cGUgPSB7CisgICAgR0VORVJBTF9FVkVOVDogMSwKKyAgICBJTlNUQU5UX0VWRU5UOiAyLAorICAgIEJBQ0tHUk9VTkQ6IDMsCisgICAgR1JJRDogNCwKKyAgICBGTE9XX0FSUk9XUzogNSwKKyAgICBNQVJLRVJTOiA2LAorICAgIEhJR0hMSUdIVFM6IDcsCisgICAgQU5OT1RBVElPTlM6IDgKKyAgfTsKKworICB2YXIgRHJhd2luZ0NvbnRhaW5lciA9IHRyLnVpLmIuZGVmaW5lKCdkcmF3aW5nLWNvbnRhaW5lcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIudWkudHJhY2tzLlRyYWNrKTsKKworICBEcmF3aW5nQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2RyYXdpbmctY29udGFpbmVyJyk7CisKKyAgICAgIHRoaXMuY2FudmFzXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgICAgdGhpcy5jYW52YXNfLmNsYXNzTmFtZSA9ICdkcmF3aW5nLWNvbnRhaW5lci1jYW52YXMnOworICAgICAgdGhpcy5jYW52YXNfLnN0eWxlLmxlZnQgPSB0ci5jLmNvbnN0YW50cy5IRUFESU5HX1dJRFRIICsgJ3B4JzsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5jYW52YXNfKTsKKworICAgICAgdGhpcy5jdHhfID0gdGhpcy5jYW52YXNfLmdldENvbnRleHQoJzJkJyk7CisKKyAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2VfID0gdGhpcy52aWV3cG9ydENoYW5nZV8uYmluZCh0aGlzKTsKKyAgICAgIHRoaXMudmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy52aWV3cG9ydENoYW5nZV8pOworICAgIH0sCisKKyAgICAvLyBOZWVkZWQgdG8gc3VwcG9ydCB0aGUgY2FsbHMgaW4gVGltZWxpbmVUcmFja1ZpZXcuCisgICAgZ2V0IGNhbnZhcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmNhbnZhc187CisgICAgfSwKKworICAgIGNvbnRleHQ6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHRoaXMuY3R4XzsKKyAgICB9LAorCisgICAgdmlld3BvcnRDaGFuZ2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuaW52YWxpZGF0ZSgpOworICAgIH0sCisKKyAgICBpbnZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLnJhZlBlbmRpbmdfKQorICAgICAgICByZXR1cm47CisgICAgICB0aGlzLnJhZlBlbmRpbmdfID0gdHJ1ZTsKKworICAgICAgdHIuYi5yZXF1ZXN0UHJlQW5pbWF0aW9uRnJhbWUodGhpcy5wcmVEcmF3XywgdGhpcyk7CisgICAgfSwKKworICAgIHByZURyYXdfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMucmFmUGVuZGluZ18gPSBmYWxzZTsKKyAgICAgIHRoaXMudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpOworCisgICAgICB0ci5iLnJlcXVlc3RBbmltYXRpb25GcmFtZUluVGhpc0ZyYW1lSWZQb3NzaWJsZSh0aGlzLmRyYXdfLCB0aGlzKTsKKyAgICB9LAorCisgICAgZHJhd186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jdHhfLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc18ud2lkdGgsIHRoaXMuY2FudmFzXy5oZWlnaHQpOworCisgICAgICB2YXIgdHlwZXNUb0RyYXcgPSBbCisgICAgICAgIERyYXdUeXBlLkJBQ0tHUk9VTkQsCisgICAgICAgIERyYXdUeXBlLkhJR0hMSUdIVFMsCisgICAgICAgIERyYXdUeXBlLkdSSUQsCisgICAgICAgIERyYXdUeXBlLklOU1RBTlRfRVZFTlQsCisgICAgICAgIERyYXdUeXBlLkdFTkVSQUxfRVZFTlQsCisgICAgICAgIERyYXdUeXBlLk1BUktFUlMsCisgICAgICAgIERyYXdUeXBlLkFOTk9UQVRJT05TLAorICAgICAgICBEcmF3VHlwZS5GTE9XX0FSUk9XUworICAgICAgXTsKKworICAgICAgZm9yICh2YXIgaWR4IGluIHR5cGVzVG9EcmF3KSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7ICsraSkgeworICAgICAgICAgIGlmICghKHRoaXMuY2hpbGRyZW5baV0gaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5kcmF3VHJhY2sodHlwZXNUb0RyYXdbaWR4XSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuY2FudmFzXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisgICAgICB2YXIgdmlld0xXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCgwKTsKKyAgICAgIHZhciB2aWV3UldvcmxkID0gZHQueFZpZXdUb1dvcmxkKAorICAgICAgICAgIGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW8pOworCisgICAgICB0aGlzLnZpZXdwb3J0LmRyYXdHcmlkTGluZXModGhpcy5jdHhfLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgdmlzaWJsZUNoaWxkVHJhY2tzID0KKyAgICAgICAgICB0ci5iLmFzQXJyYXkodGhpcy5jaGlsZHJlbikuZmlsdGVyKHRoaXMudmlzaWJsZUZpbHRlcl8pOworCisgICAgICB2YXIgdGhpc0JvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisKKyAgICAgIHZhciBmaXJzdENoaWxkVHJhY2tCb3VuZHMgPSB2aXNpYmxlQ2hpbGRUcmFja3NbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgbGFzdENoaWxkVHJhY2tCb3VuZHMgPQorICAgICAgICAgIHZpc2libGVDaGlsZFRyYWNrc1t2aXNpYmxlQ2hpbGRUcmFja3MubGVuZ3RoIC0gMV0uCisgICAgICAgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworCisgICAgICB2YXIgaW5uZXJXaWR0aCA9IGZpcnN0Q2hpbGRUcmFja0JvdW5kcy53aWR0aCAtCisgICAgICAgICAgdHIuYy5jb25zdGFudHMuSEVBRElOR19XSURUSDsKKyAgICAgIHZhciBpbm5lckhlaWdodCA9IGxhc3RDaGlsZFRyYWNrQm91bmRzLmJvdHRvbSAtIGZpcnN0Q2hpbGRUcmFja0JvdW5kcy50b3A7CisKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICAgIGlmICh0aGlzLmNhbnZhc18ud2lkdGggIT0gaW5uZXJXaWR0aCAqIHBpeGVsUmF0aW8pIHsKKyAgICAgICAgdGhpcy5jYW52YXNfLndpZHRoID0gaW5uZXJXaWR0aCAqIHBpeGVsUmF0aW87CisgICAgICAgIHRoaXMuY2FudmFzXy5zdHlsZS53aWR0aCA9IGlubmVyV2lkdGggKyAncHgnOworICAgICAgfQorCisgICAgICBpZiAodGhpcy5jYW52YXNfLmhlaWdodCAhPSBpbm5lckhlaWdodCAqIHBpeGVsUmF0aW8pIHsKKyAgICAgICAgdGhpcy5jYW52YXNfLmhlaWdodCA9IGlubmVySGVpZ2h0ICogcGl4ZWxSYXRpbzsKKyAgICAgICAgdGhpcy5jYW52YXNfLnN0eWxlLmhlaWdodCA9IGlubmVySGVpZ2h0ICsgJ3B4JzsKKyAgICAgIH0KKyAgICB9LAorCisgICAgdmlzaWJsZUZpbHRlcl86IGZ1bmN0aW9uKGVsZW1lbnQpIHsKKyAgICAgIGlmICghKGVsZW1lbnQgaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlzcGxheSAhPT0gJ25vbmUnOworICAgIH0sCisKKyAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24oCisgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwgc2VsZWN0aW9uKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCEodGhpcy5jaGlsZHJlbltpXSBpbnN0YW5jZW9mIHRyLnVpLnRyYWNrcy5UcmFjaykpCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciB0cmFja0NsaWVudFJlY3QgPSB0aGlzLmNoaWxkcmVuW2ldLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICB2YXIgYSA9IE1hdGgubWF4KGxvWSwgdHJhY2tDbGllbnRSZWN0LnRvcCk7CisgICAgICAgIHZhciBiID0gTWF0aC5taW4oaGlZLCB0cmFja0NsaWVudFJlY3QuYm90dG9tKTsKKyAgICAgICAgaWYgKGEgPD0gYikgeworICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0uYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgICAgICAgIHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwgc2VsZWN0aW9uKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICB0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uLgorICAgICAgICAgIGFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgfSwKKworICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmICghKHRoaXMuY2hpbGRyZW5baV0gaW5zdGFuY2VvZiB0ci51aS50cmFja3MuVHJhY2spKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0aGlzLmNoaWxkcmVuW2ldLmFkZEV2ZW50c1RvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoISh0aGlzLmNoaWxkcmVuW2ldIGluc3RhbmNlb2YgdHIudWkudHJhY2tzLlRyYWNrKSkKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrTWFwKTsKKyAgICAgIH0KKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBEcmF3aW5nQ29udGFpbmVyOiBEcmF3aW5nQ29udGFpbmVyLAorICAgIERyYXdUeXBlOiBEcmF3VHlwZQorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyX3BlcmZfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvZHJhd2luZ19jb250YWluZXJfcGVyZl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWViNmI3NQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyX3BlcmZfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2V4dHJhcy9mdWxsX2NvbmZpZy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvbW9kZWwuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UveGhyLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsgIC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgIHZhciBnZW5lcmFsTW9kZWw7CisgIGZ1bmN0aW9uIGdldE9yQ3JlYXRlR2VuZXJhbE1vZGVsKCkgeworICAgIGlmIChnZW5lcmFsTW9kZWwgIT09IHVuZGVmaW5lZCkKKyAgICAgIGdlbmVyYWxNb2RlbDsKKyAgICB2YXIgZmlsZVVybCA9ICcvdGVzdF9kYXRhL3RocmVhZF90aW1lX3Zpc3VhbGlzYXRpb24uanNvbi5neic7CisgICAgdmFyIGV2ZW50cyA9IHRyLmIuZ2V0U3luYyhmaWxlVXJsKTsKKyAgICBnZW5lcmFsTW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICBnZW5lcmFsTW9kZWwuaW1wb3J0VHJhY2VzKFtldmVudHNdLCB0cnVlKTsKKyAgICByZXR1cm4gZ2VuZXJhbE1vZGVsOworICB9CisKKyAgZnVuY3Rpb24gRENQZXJmVGVzdENhc2UodGVzdE5hbWUsIG9wdF9vcHRpb25zKSB7CisgICAgdHIuYi51bml0dGVzdC5QZXJmVGVzdENhc2UuY2FsbCh0aGlzLCB0ZXN0TmFtZSwgdW5kZWZpbmVkLCBvcHRfb3B0aW9ucyk7CisgICAgdGhpcy52aWV3cG9ydERpdiA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmRyYXdpbmdDb250YWluZXIgPSB1bmRlZmluZWQ7CisgICAgdGhpcy52aWV3cG9ydCA9IHVuZGVmaW5lZDsKKyAgfQorICBEQ1BlcmZUZXN0Q2FzZS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci5iLnVuaXR0ZXN0LlBlcmZUZXN0Q2FzZS5wcm90b3R5cGUsCisKKyAgICBzZXRVcDogZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIHRoaXMudmlld3BvcnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgICAgdGhpcy52aWV3cG9ydCA9IG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KHRoaXMudmlld3BvcnREaXYpOworCisgICAgICB0aGlzLmRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodGhpcy52aWV3cG9ydCk7CisgICAgICB0aGlzLnZpZXdwb3J0Lm1vZGVsVHJhY2tDb250YWluZXIgPSB0aGlzLmRyYXdpbmdDb250YWluZXI7CisKKyAgICAgIHZhciBtb2RlbFRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5Nb2RlbFRyYWNrKHRoaXMudmlld3BvcnQpOworICAgICAgdGhpcy5kcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKG1vZGVsVHJhY2spOworCisgICAgICBtb2RlbFRyYWNrLm1vZGVsID0gbW9kZWw7CisKKyAgICAgIHRoaXMudmlld3BvcnREaXYuYXBwZW5kQ2hpbGQodGhpcy5kcmF3aW5nQ29udGFpbmVyKTsKKworICAgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRoaXMudmlld3BvcnREaXYpOworCisgICAgICAvLyBTaXplIHRoZSBjYW52YXMuCisgICAgICB0aGlzLmRyYXdpbmdDb250YWluZXIudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpOworCisgICAgICAvLyBTaXplIHRoZSB2aWV3cG9ydC4KKyAgICAgIHZhciB3ID0gdGhpcy5kcmF3aW5nQ29udGFpbmVyLmNhbnZhcy53aWR0aDsKKyAgICAgIHZhciBtaW4gPSBtb2RlbC5ib3VuZHMubWluOworICAgICAgdmFyIHJhbmdlID0gbW9kZWwuYm91bmRzLnJhbmdlOworCisgICAgICB2YXIgYm9vc3QgPSByYW5nZSAqIDAuMTU7CisgICAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgICBkdC54U2V0V29ybGRCb3VuZHMobWluIC0gYm9vc3QsIG1pbiArIHJhbmdlICsgYm9vc3QsIHcpOworICAgICAgdGhpcy52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworICAgIH0sCisKKyAgICBydW5PbmVJdGVyYXRpb246IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5kcmF3aW5nQ29udGFpbmVyLmRyYXdfKCk7CisgICAgfSwKKworICAgIHRlYXJEb3duOiBmdW5jdGlvbigpIHsKKyAgICB9CisgIH07CisKKworICBmdW5jdGlvbiBHZW5lcmFsRENQZXJmVGVzdENhc2UodGVzdE5hbWUsIG9wdF9vcHRpb25zKSB7CisgICAgRENQZXJmVGVzdENhc2UuY2FsbCh0aGlzLCB0ZXN0TmFtZSwgb3B0X29wdGlvbnMpOworICB9CisKKyAgR2VuZXJhbERDUGVyZlRlc3RDYXNlLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IERDUGVyZlRlc3RDYXNlLnByb3RvdHlwZSwKKworICAgIHNldFVwOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBtb2RlbCA9IGdldE9yQ3JlYXRlR2VuZXJhbE1vZGVsKCk7CisgICAgICBEQ1BlcmZUZXN0Q2FzZS5wcm90b3R5cGUuc2V0VXAuY2FsbCh0aGlzLCBtb2RlbCk7CisgICAgfQorICB9OworCisgIHRlc3QobmV3IEdlbmVyYWxEQ1BlcmZUZXN0Q2FzZSgnZHJhd19zb2Z0d2FyZUNhbnZhc19PbmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbnM6IDF9KSk7CisgIHRlc3QobmV3IEdlbmVyYWxEQ1BlcmZUZXN0Q2FzZSgnZHJhd19zb2Z0d2FyZUNhbnZhc19UZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbnM6IDEwfSkpOworICB0ZXN0KG5ldyBHZW5lcmFsRENQZXJmVGVzdENhc2UoJ2RyYXdfc29mdHdhcmVDYW52YXNfQUh1bmRyZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbnM6IDEwMH0pKTsKKworCisgIGZ1bmN0aW9uIEFzeW5jRENQZXJmVGVzdENhc2UodGVzdE5hbWUsIG9wdF9vcHRpb25zKSB7CisgICAgRENQZXJmVGVzdENhc2UuY2FsbCh0aGlzLCB0ZXN0TmFtZSwgb3B0X29wdGlvbnMpOworICB9CisKKyAgQXN5bmNEQ1BlcmZUZXN0Q2FzZS5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBEQ1BlcmZUZXN0Q2FzZS5wcm90b3R5cGUsCisKKyAgICBzZXRVcDogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgbW9kZWwgPSB0ci5jLnRlc3RfdXRpbHMubmV3TW9kZWwoZnVuY3Rpb24obSkgeworICAgICAgICB2YXIgcHJvYyA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgICAgICBmb3IgKHZhciB0aWQgPSAxOyB0aWQgPD0gNTsgdGlkKyspIHsKKyAgICAgICAgICB2YXIgdGhyZWFkID0gcHJvYy5nZXRPckNyZWF0ZVRocmVhZCh0aWQpOworICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTAwMDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgbW9kID0gTWF0aC5mbG9vcihpIC8gMTAwKSAlIDQ7CisgICAgICAgICAgICB2YXIgc2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZUV4KHsKKyAgICAgICAgICAgICAgbmFtZTogJ1Rlc3QnICsgaSwKKyAgICAgICAgICAgICAgY29sb3JJZDogdGlkICsgbW9kLAorICAgICAgICAgICAgICBpZDogdHIuYi5HVUlELmFsbG9jYXRlKCksCisgICAgICAgICAgICAgIHN0YXJ0OiBpICogMTAsCisgICAgICAgICAgICAgIGR1cmF0aW9uOiA5LAorICAgICAgICAgICAgICBpc1RvcExldmVsOiB0cnVlCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRocmVhZC5hc3luY1NsaWNlR3JvdXAucHVzaChzbGljZSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9KTsKKyAgICAgIERDUGVyZlRlc3RDYXNlLnByb3RvdHlwZS5zZXRVcC5jYWxsKHRoaXMsIG1vZGVsKTsKKworICAgICAgdmFyIHcgPSB0aGlzLmRyYXdpbmdDb250YWluZXIuY2FudmFzLndpZHRoOworCisgICAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgICBkdC54U2V0V29ybGRCb3VuZHMoLTIwMDAsIDU0MDAwLCB3KTsKKyAgICAgIHRoaXMudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKyAgICB9CisgIH07CisgIHRlc3QobmV3IEFzeW5jRENQZXJmVGVzdENhc2UoJ2RyYXdfYXN5bmNTbGljZUhlYXZ5X1R3ZW50eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uczogMjB9KSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9ldmVudF90b190cmFja19tYXAuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2V2ZW50X3RvX3RyYWNrX21hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNjkwMzEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9ldmVudF90b190cmFja19tYXAuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2Jhc2UuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKworICAvKioKKyAgICogRXZlbnRUb1RyYWNrTWFwIHByb3ZpZGVzIGEgbWFwcGluZyBtZWNoYW5pc20gYmV0d2VlbiBldmVudHMgYW5kIHRoZQorICAgKiB0cmFja3MgdGhvc2UgZXZlbnRzIGJlbG9uZyBvbi4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICBmdW5jdGlvbiBFdmVudFRvVHJhY2tNYXAoKSB7fQorCisgIEV2ZW50VG9UcmFja01hcC5wcm90b3R5cGUgPSB7CisgICAgYWRkRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50LCB0cmFjaykgeworICAgICAgaWYgKCF0cmFjaykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSB0cmFjay4nKTsKKyAgICAgIHRoaXNbZXZlbnQuZ3VpZF0gPSB0cmFjazsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBFdmVudFRvVHJhY2tNYXA6IEV2ZW50VG9UcmFja01hcAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2ZyYW1lX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9mcmFtZV90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0OWYzYWEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9mcmFtZV90cmFjay5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZXZlbnRfcHJlc2VudGVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvbGV0dGVyX2RvdF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIHBhbGV0dGUgPSB0ci51aS5iLmdldENvbG9yUGFsZXR0ZSgpOworCisgIHZhciBzdGFydENvbXBhcmUgPSBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4LnN0YXJ0IC0geS5zdGFydDsgfQorCisgIC8qKgorICAgKiBUcmFjayBlbmFibGluZyBxdWljayBzZWxlY3Rpb24gb2YgZnJhbWUgc2xpY2VzL2V2ZW50cy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgRnJhbWVUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ2ZyYW1lLXRyYWNrJywgdHIudWkudHJhY2tzLkxldHRlckRvdFRyYWNrKTsKKworICBGcmFtZVRyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5MZXR0ZXJEb3RUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5MZXR0ZXJEb3RUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmhlYWRpbmcgPSAnRnJhbWVzJzsKKworICAgICAgdGhpcy5mcmFtZXNfID0gdW5kZWZpbmVkOworICAgICAgdGhpcy5pdGVtcyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IGZyYW1lcygpIHsKKyAgICAgIHJldHVybiB0aGlzLmZyYW1lc187CisgICAgfSwKKworICAgIHNldCBmcmFtZXMoZnJhbWVzKSB7CisgICAgICB0aGlzLmZyYW1lc18gPSBmcmFtZXM7CisgICAgICBpZiAoZnJhbWVzID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5mcmFtZXNfID0gdGhpcy5mcmFtZXNfLnNsaWNlKCk7CisgICAgICB0aGlzLmZyYW1lc18uc29ydChzdGFydENvbXBhcmUpOworCisgICAgICAvLyBsZXR0ZXIgZG90cworICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZnJhbWVzXy5tYXAoZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBGcmFtZURvdChmcmFtZSk7CisgICAgICB9KTsKKyAgICB9CisgIH07CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7TGV0dGVyRG90fQorICAgKi8KKyAgZnVuY3Rpb24gRnJhbWVEb3QoZnJhbWUpIHsKKyAgICB0ci51aS50cmFja3MuTGV0dGVyRG90LmNhbGwodGhpcywgZnJhbWUsICdGJywgZnJhbWUuY29sb3JJZCwgZnJhbWUuc3RhcnQpOworICB9CisKKyAgRnJhbWVEb3QucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLkxldHRlckRvdC5wcm90b3R5cGUKKyAgfTsKKworICByZXR1cm4geworICAgIEZyYW1lVHJhY2s6IEZyYW1lVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9mcmFtZV90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9mcmFtZV90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU3MjJkZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2ZyYW1lX3RyYWNrX3Rlc3QuaHRtbApAQCAtMCwwICsxLDEwNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudF9zZXQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2ZyYW1lLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZnJhbWVfdHJhY2suaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgRnJhbWUgPSB0ci5tb2RlbC5GcmFtZTsKKyAgdmFyIEZyYW1lVHJhY2sgPSB0ci51aS50cmFja3MuRnJhbWVUcmFjazsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOworICB2YXIgVmlld3BvcnQgPSB0ci51aS5UaW1lbGluZVZpZXdwb3J0OworCisgIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7CisKKyAgdmFyIGNyZWF0ZUZyYW1lcyA9IGZ1bmN0aW9uKCkgeworICAgIHZhciBmcmFtZXMgPSB1bmRlZmluZWQ7CisgICAgdmFyIG1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDEpOworICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgdmFyIHNsaWNlID0gbmV3U2xpY2VOYW1lZCgnd29yayBmb3IgZnJhbWUnLCBpICogMjAsIDEwKTsKKyAgICAgICAgdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHNsaWNlKTsKKyAgICAgICAgdmFyIGV2ZW50cyA9IFtzbGljZV07CisgICAgICAgIHZhciB0aHJlYWRUaW1lUmFuZ2VzID0KKyAgICAgICAgICAgIFt7dGhyZWFkOiB0aHJlYWQsIHN0YXJ0OiBzbGljZS5zdGFydCwgZW5kOiBzbGljZS5lbmR9XTsKKyAgICAgICAgcHJvY2Vzcy5mcmFtZXMucHVzaChuZXcgRnJhbWUoZXZlbnRzLCB0aHJlYWRUaW1lUmFuZ2VzKSk7CisgICAgICB9CisgICAgICBmcmFtZXMgPSBwcm9jZXNzLmZyYW1lczsKKyAgICB9KTsKKyAgICByZXR1cm4gZnJhbWVzOworICB9OworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGZyYW1lcyA9IGNyZWF0ZUZyYW1lcygpOworICAgIGZyYW1lc1sxXS5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICB2YXIgdHJhY2sgPSBGcmFtZVRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOworICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOworCisgICAgdHJhY2suZnJhbWVzID0gZnJhbWVzOworICAgIHZhciBkdCA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgNTAsIHRyYWNrLmNsaWVudFdpZHRoKTsKKyAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworCisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLml0ZW1zWzBdLnN0YXJ0LCAyMCk7CisgIH0pOworCisgIHRlc3QoJ21vZGVsTWFwcGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBmcmFtZXMgPSBjcmVhdGVGcmFtZXMoKTsKKworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgdHJhY2sgPSBGcmFtZVRyYWNrKHZpZXdwb3J0KTsKKyAgICB0cmFjay5mcmFtZXMgPSBmcmFtZXM7CisKKyAgICB2YXIgYTAgPSB0cmFjay5pdGVtc1swXS5tb2RlbEl0ZW07CisgICAgYXNzZXJ0LmVxdWFsKGEwLCBmcmFtZXNbMF0pOworICB9KTsKKworICB0ZXN0KCdzZWxlY3Rpb25NYXBwaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGZyYW1lcyA9IGNyZWF0ZUZyYW1lcygpOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOworICAgIHZhciB0cmFjayA9IEZyYW1lVHJhY2sodmlld3BvcnQpOworICAgIHRyYWNrLmZyYW1lcyA9IGZyYW1lczsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5pdGVtc1swXS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOworCisgICAgLy8gc2VsZWN0IGJvdGggZnJhbWUsIGJ1dCBub3QgaXRzIGNvbXBvbmVudCBzbGljZQorICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAxKTsKKworICAgIHZhciBmcmFtZUNvdW50ID0gMDsKKyAgICB2YXIgZXZlbnRDb3VudCA9IDA7CisgICAgc2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEZyYW1lKSB7CisgICAgICAgIGFzc2VydC5lcXVhbChldmVudCwgZnJhbWVzWzBdKTsKKyAgICAgICAgZnJhbWVDb3VudCsrOworICAgICAgfSBlbHNlCisgICAgICAgIGV2ZW50Q291bnQrKzsKKyAgICB9KTsKKyAgICBhc3NlcnQuZXF1YWwoZnJhbWVDb3VudCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGV2ZW50Q291bnQsIDApOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9nbG9iYWxfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2dsb2JhbF9tZW1vcnlfZHVtcF90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MGViYzYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9nbG9iYWxfbWVtb3J5X2R1bXBfdHJhY2suaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvbGV0dGVyX2RvdF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKworICB2YXIgVVNFRF9NRU1PUllfVFJBQ0tfSEVJR0hUID0gNTA7CisgIHZhciBBTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCA9IDUwOworCisgIC8qKgorICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYW4gYXJyYXkgb2YgR2xvYmFsTWVtb3J5RHVtcCBvYmplY3RzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0NvbnRhaW5lclRyYWNrfQorICAgKi8KKyAgdmFyIEdsb2JhbE1lbW9yeUR1bXBUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ2dsb2JhbC1tZW1vcnktZHVtcC10cmFjaycsIHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjayk7CisKKyAgR2xvYmFsTWVtb3J5RHVtcFRyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLm1lbW9yeUR1bXBzXyA9IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IG1lbW9yeUR1bXBzKCkgeworICAgICAgcmV0dXJuIHRoaXMubWVtb3J5RHVtcHNfOworICAgIH0sCisKKyAgICBzZXQgbWVtb3J5RHVtcHMobWVtb3J5RHVtcHMpIHsKKyAgICAgIHRoaXMubWVtb3J5RHVtcHNfID0gbWVtb3J5RHVtcHM7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jbGVhclRyYWNrc18oKTsKKworICAgICAgLy8gU2hvdyBubyB0cmFja3MgaWYgdGhlcmUgYXJlIG5vIGR1bXBzLgorICAgICAgaWYgKCF0aGlzLm1lbW9yeUR1bXBzXyB8fCAhdGhpcy5tZW1vcnlEdW1wc18ubGVuZ3RoKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuYXBwZW5kRHVtcERvdHNUcmFja18oKTsKKyAgICAgIHRoaXMuYXBwZW5kVXNlZE1lbW9yeVRyYWNrXygpOworICAgICAgdGhpcy5hcHBlbmRBbGxvY2F0ZWRNZW1vcnlUcmFja18oKTsKKyAgICB9LAorCisgICAgYXBwZW5kRHVtcERvdHNUcmFja186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGl0ZW1zID0gdHIudWkudHJhY2tzLmJ1aWxkTWVtb3J5TGV0dGVyRG90cyh0aGlzLm1lbW9yeUR1bXBzXyk7CisgICAgICBpZiAoIWl0ZW1zKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciB0cmFjayA9IG5ldyB0ci51aS50cmFja3MuTGV0dGVyRG90VHJhY2sodGhpcy52aWV3cG9ydCk7CisgICAgICB0cmFjay5oZWFkaW5nID0gJ01lbW9yeSBEdW1wcyc7CisgICAgICB0cmFjay5pdGVtcyA9IGl0ZW1zOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7CisgICAgfSwKKworICAgIGFwcGVuZFVzZWRNZW1vcnlUcmFja186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlcmllcyA9IHRyLnVpLnRyYWNrcy5idWlsZEdsb2JhbFVzZWRNZW1vcnlDaGFydFNlcmllcygKKyAgICAgICAgICB0aGlzLm1lbW9yeUR1bXBzXyk7CisgICAgICBpZiAoIXNlcmllcykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgdHJhY2sgPSBuZXcgdHIudWkudHJhY2tzLkNoYXJ0VHJhY2sodGhpcy52aWV3cG9ydCk7CisgICAgICB0cmFjay5oZWFkaW5nID0gJ1VzZWQgbWVtb3J5IChwZXIgcHJvY2VzcyknOworICAgICAgdHJhY2suaGVpZ2h0ID0gVVNFRF9NRU1PUllfVFJBQ0tfSEVJR0hUICsgJ3B4JzsKKyAgICAgIHRyYWNrLnNlcmllcyA9IHNlcmllczsKKyAgICAgIHRyYWNrLmF1dG9TZXRBbGxBeGVzKHtleHBhbmRNYXg6IHRydWV9KTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgIH0sCisKKyAgICBhcHBlbmRBbGxvY2F0ZWRNZW1vcnlUcmFja186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlcmllcyA9IHRyLnVpLnRyYWNrcy5idWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKAorICAgICAgICAgIHRoaXMubWVtb3J5RHVtcHNfKTsKKyAgICAgIGlmICghc2VyaWVzKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciB0cmFjayA9IG5ldyB0ci51aS50cmFja3MuQ2hhcnRUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgIHRyYWNrLmhlYWRpbmcgPSAnQWxsb2NhdGVkIG1lbW9yeSAocGVyIGFsbG9jYXRvciknOworICAgICAgdHJhY2suaGVpZ2h0ID0gQUxMT0NBVEVEX01FTU9SWV9UUkFDS19IRUlHSFQgKyAncHgnOworICAgICAgdHJhY2suc2VyaWVzID0gc2VyaWVzOworICAgICAgdHJhY2suYXV0b1NldEFsbEF4ZXMoe2V4cGFuZE1heDogdHJ1ZX0pOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgR2xvYmFsTWVtb3J5RHVtcFRyYWNrOiBHbG9iYWxNZW1vcnlEdW1wVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9nbG9iYWxfbWVtb3J5X2R1bXBfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvZ2xvYmFsX21lbW9yeV9kdW1wX3RyYWNrX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTBiZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvZ2xvYmFsX21lbW9yeV9kdW1wX3RyYWNrX3Rlc3QuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3ZpZXdwb3J0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9nbG9iYWxfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja190ZXN0X3V0aWxzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFZpZXdwb3J0ID0gdHIudWkuVGltZWxpbmVWaWV3cG9ydDsKKyAgdmFyIEdsb2JhbE1lbW9yeUR1bXBUcmFjayA9IHRyLnVpLnRyYWNrcy5HbG9iYWxNZW1vcnlEdW1wVHJhY2s7CisgIHZhciBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHMgPSB0ci51aS50cmFja3MuY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzOworCisgIGZ1bmN0aW9uIGluc3RhbnRpYXRlVHJhY2sod2l0aFZNUmVnaW9ucywgd2l0aEFsbG9jYXRvckR1bXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkVHJhY2tDb3VudCkgeworICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyh3aXRoVk1SZWdpb25zLCB3aXRoQWxsb2NhdG9yRHVtcHMpOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICB2YXIgdHJhY2sgPSBuZXcgR2xvYmFsTWVtb3J5RHVtcFRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmludmFsaWRhdGUoKTsKKworICAgIHRyYWNrLm1lbW9yeUR1bXBzID0gZHVtcHM7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7CisKKyAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDUwLCB0cmFjay5jbGllbnRXaWR0aCk7CisgICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKworICAgIGFzc2VydC5sZW5ndGhPZih0cmFjay50cmFja3NfLCBleHBlY3RlZFRyYWNrQ291bnQpOworICB9OworCisgIHRlc3QoJ2luc3RhbnRpYXRlX2RvdHNPbmx5JywgZnVuY3Rpb24oKSB7CisgICAgaW5zdGFudGlhdGVUcmFjay5jYWxsKHRoaXMsIGZhbHNlLCBmYWxzZSwgMSk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhWTVJlZ2lvbnMnLCBmdW5jdGlvbigpIHsKKyAgICBpbnN0YW50aWF0ZVRyYWNrLmNhbGwodGhpcywgdHJ1ZSwgZmFsc2UsIDIpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoTWVtb3J5QWxsb2NhdG9yRHVtcHMnLCBmdW5jdGlvbigpIHsKKyAgICBpbnN0YW50aWF0ZVRyYWNrLmNhbGwodGhpcywgZmFsc2UsIHRydWUsIDIpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoQm90aCcsIGZ1bmN0aW9uKCkgeworICAgIGluc3RhbnRpYXRlVHJhY2suY2FsbCh0aGlzLCB0cnVlLCB0cnVlLCAzKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvaGlnaGxpZ2h0ZXIuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2hpZ2hsaWdodGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE0NjFmOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2hpZ2hsaWdodGVyLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9iYXNlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2V4dGVuc2lvbl9yZWdpc3RyeS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IEFsbG93cyBjdXN0b20gaGlnaGxpZ2h0aW5nIHRvIGJlIGFkZGVkIHRvIHRoZSBmdWxsIG1vZGVsIHRyYWNrLgorICovCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisKKyAgLyoqCisgICAqIEhpZ2hsaWdodHMgY2V0cmFpbiBmZWF0dXJlcyBvZiB0aGUgbW9kZWwuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgZnVuY3Rpb24gSGlnaGxpZ2h0ZXIodmlld3BvcnQpIHsKKyAgICBpZiAodmlld3BvcnQgPT09IHVuZGVmaW5lZCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCd2aWV3cG9ydCBtdXN0IGJlIHByb3ZpZGVkJyk7CisgICAgfQorICAgIHRoaXMudmlld3BvcnRfID0gdmlld3BvcnQ7CisgIH07CisKKyAgSGlnaGxpZ2h0ZXIucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogT2JqZWN0LnByb3RvdHlwZSwKKworICAgIHByb2Nlc3NNb2RlbDogZnVuY3Rpb24obW9kZWwpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzc01vZGVsIGltcGxlbWVudGF0aW9uIG1pc3NpbmcnKTsKKyAgICB9LAorCisgICAgZHJhd0hpZ2hsaWdodDogZnVuY3Rpb24oY3R4LCBkdCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwgdmlld0hlaWdodCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdkcmF3SGlnaGxpZ2h0IGltcGxlbWVudGF0aW9uIG1pc3NpbmcnKTsKKyAgICB9CisgIH07CisKKworICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucyh0ci5iLkJBU0lDX1JFR0lTVFJZX01PREUpOworICBvcHRpb25zLmRlZmF1bHRNZXRhZGF0YSA9IHt9OworICBvcHRpb25zLm1hbmRhdG9yeUJhc2VDbGFzcyA9IEhpZ2hsaWdodGVyOworICB0ci5iLmRlY29yYXRlRXh0ZW5zaW9uUmVnaXN0cnkoSGlnaGxpZ2h0ZXIsIG9wdGlvbnMpOworCisgIHJldHVybiB7CisgICAgSGlnaGxpZ2h0ZXI6IEhpZ2hsaWdodGVyCisgIH07Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9pbnRlcmFjdGlvbl90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvaW50ZXJhY3Rpb25fdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWRiYWUxCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvaW50ZXJhY3Rpb25fdHJhY2suaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RyYXdfaGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2FsZXJ0X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9oaWdobGlnaHRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2tlcm5lbF90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGFuIGFycmF5IG9mIGludGVyYWN0aW9uIHJlY29yZHMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7TXVsdGlSb3dUcmFja30KKyAgICovCisgIHZhciBJbnRlcmFjdGlvblRyYWNrID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAnaW50ZXJhY3Rpb24tdHJhY2snLCB0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjayk7CisKKyAgSW50ZXJhY3Rpb25UcmFjay5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICAgIHRoaXMuaGVhZGluZyA9ICdJbnRlcmFjdGlvbnMnOworICAgICAgdGhpcy5zdWJSb3dzXyA9IFtdOworICAgIH0sCisKKyAgICBzZXQgbW9kZWwobW9kZWwpIHsKKyAgICAgIHRoaXMuc2V0SXRlbXNUb0dyb3VwKG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMsIHsKKyAgICAgICAgZ3VpZDogdHIuYi5HVUlELmFsbG9jYXRlKCksCisgICAgICAgIG1vZGVsOiBtb2RlbCwKKyAgICAgICAgZ2V0U2V0dGluZ3NLZXk6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgIH0sCisKKyAgICBidWlsZFN1YlJvd3NfOiBmdW5jdGlvbihzbGljZXMpIHsKKyAgICAgIGlmICh0aGlzLnN1YlJvd3NfLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHRoaXMuc3ViUm93c187CisgICAgICB0aGlzLnN1YlJvd3NfLnB1c2guYXBwbHkodGhpcy5zdWJSb3dzXywKKyAgICAgICAgICB0ci51aS50cmFja3MuQXN5bmNTbGljZUdyb3VwVHJhY2sucHJvdG90eXBlLmJ1aWxkU3ViUm93c18uY2FsbCgKKyAgICAgICAgICB7fSwgc2xpY2VzLCB0cnVlKSk7CisgICAgICByZXR1cm4gdGhpcy5zdWJSb3dzXzsKKyAgICB9LAorCisgICAgYWRkU3ViVHJhY2tfOiBmdW5jdGlvbihzbGljZXMpIHsKKyAgICAgIHZhciB0cmFjayA9IG5ldyB0ci51aS50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgIHRyYWNrLnNsaWNlcyA9IHNsaWNlczsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgcmV0dXJuIHRyYWNrOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIEludGVyYWN0aW9uVHJhY2s6IEludGVyYWN0aW9uVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9pbnRlcmFjdGlvbl90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9pbnRlcmFjdGlvbl90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM5NGZhOQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2ludGVyYWN0aW9uX3RyYWNrX3Rlc3QuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2ludGVyYWN0aW9uX3RyYWNrLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgLy8gSW50ZXJhY3Rpb25SZWNvcmRzIHNob3VsZCBiZSBzb3J0ZWQgYnkgc3RhcnQgdGltZSwgbm90IHRpdGxlLCBzbyB0aGF0CisgIC8vIEFzeW5jU2xpY2VHcm91cFRyYWNrLmJ1aWxkU3ViUm93c18gY2FuIGxheSB0aGVtIG91dCBpbiBhcyBmZXcgdHJhY2tzIGFzCisgIC8vIHBvc3NpYmxlLCBzbyB0aGF0IHRoZXkgbWVzaCBpbnN0ZWFkIG9mIHN0YWNraW5nIHVubmVjZXNzYXJpbHkuCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciB2aWV3cG9ydCA9IG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KGRpdik7CisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKKyAgICB2YXIgdHJhY2sgPSBuZXcgdHIudWkudHJhY2tzLkludGVyYWN0aW9uVHJhY2sodmlld3BvcnQpOworICAgIHRyYWNrLm1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICB2YXIgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIHZhciB0aHJlYWQgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDEpOworICAgICAgdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKHRyLmMudGVzdF91dGlscy5uZXdTbGljZSgwLCAyMDApKTsKKyAgICAgIG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMucHVzaChuZXcgdHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQoCisgICAgICAgICAgICAnYScsIDAsIDEwMCwgMTAwKSk7CisgICAgICBtb2RlbC5pbnRlcmFjdGlvbl9yZWNvcmRzLnB1c2gobmV3IHRyLm1vZGVsLkludGVyYWN0aW9uUmVjb3JkKAorICAgICAgICAgICAgJ2InLCAxLCAwLCAxMDApKTsKKyAgICAgIG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMucHVzaChuZXcgdHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQoCisgICAgICAgICAgICAnYycsIDIsIDE1MCwgNTApKTsKKyAgICAgIG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMucHVzaChuZXcgdHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQoCisgICAgICAgICAgICAnZCcsIDMsIDUwLCAxMDApKTsKKyAgICAgIG1vZGVsLmludGVyYWN0aW9uX3JlY29yZHMucHVzaChuZXcgdHIubW9kZWwuSW50ZXJhY3Rpb25SZWNvcmQoCisgICAgICAgICAgICAnZScsIDQsIDAsIDUwKSk7CisgICAgICAvLyBNb2RlbC5jcmVhdGVJbXBvcnRUcmFjZXNUYXNrKCkgYXV0b21hdGljYWxseSBzb3J0cyBJUnMgYnkgc3RhcnQgdGltZS4KKyAgICB9KTsKKyAgICBhc3NlcnQuZXF1YWwoMiwgdHJhY2suc3ViUm93c18ubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwoMiwgdHJhY2suc3ViUm93c19bMF0ubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwoMywgdHJhY2suc3ViUm93c19bMV0ubGVuZ3RoKTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mva2VybmVsX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9rZXJuZWxfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjU0MGRmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mva2VybmVsX3RyYWNrLmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3Byb2Nlc3NfdHJhY2tfYmFzZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NwdV90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3NwYWNpbmdfdHJhY2suaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIENwdSA9IHRyLm1vZGVsLkNwdTsKKyAgdmFyIENwdVRyYWNrID0gdHIudWkudHJhY2tzLmNwdV90cmFjazsKKyAgdmFyIFByb2Nlc3NUcmFja0Jhc2UgPSB0ci51aS50cmFja3MuUHJvY2Vzc1RyYWNrQmFzZTsKKyAgdmFyIFNwYWNpbmdUcmFjayA9IHRyLnVpLnRyYWNrcy5TcGFjaW5nVHJhY2s7CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIEtlcm5lbFRyYWNrID0gdHIudWkuYi5kZWZpbmUoJ2tlcm5lbC10cmFjaycsIFByb2Nlc3NUcmFja0Jhc2UpOworCisgIEtlcm5lbFRyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFByb2Nlc3NUcmFja0Jhc2UucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICBQcm9jZXNzVHJhY2tCYXNlLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICB9LAorCisKKyAgICAvLyBLZXJuZWwgbWFwcyB0byBwcm9jZXNzQmFzZSBiZWNhdXNlIHdlIGRlcml2ZSBmcm9tIFByb2Nlc3NUcmFja0Jhc2UuCisgICAgc2V0IGtlcm5lbChrZXJuZWwpIHsKKyAgICAgIHRoaXMucHJvY2Vzc0Jhc2UgPSBrZXJuZWw7CisgICAgfSwKKworICAgIGdldCBrZXJuZWwoKSB7CisgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFzZTsKKyAgICB9LAorCisgICAgZ2V0IGV2ZW50Q29udGFpbmVyKCkgeworICAgICAgcmV0dXJuIHRoaXMua2VybmVsOworICAgIH0sCisKKyAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7CisgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAxOworICAgIH0sCisKKyAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCkgeworICAgICAgY29udGFpbmVyVG9UcmFja01hcC5hZGRDb250YWluZXIodGhpcy5rZXJuZWwsIHRoaXMpOworICAgIH0sCisKKyAgICB3aWxsQXBwZW5kVHJhY2tzXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgY3B1cyA9IHRyLmIuZGljdGlvbmFyeVZhbHVlcyh0aGlzLmtlcm5lbC5jcHVzKTsKKyAgICAgIGNwdXMuc29ydCh0ci5tb2RlbC5DcHUuY29tcGFyZSk7CisKKyAgICAgIHZhciBkaWRBcHBlbmRBdExlYXN0T25lVHJhY2sgPSBmYWxzZTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3B1cy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgY3B1ID0gY3B1c1tpXTsKKyAgICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5DcHVUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgICAgdHJhY2suZGV0YWlsZWRNb2RlID0gdGhpcy5leHBhbmRlZDsKKyAgICAgICAgdHJhY2suY3B1ID0gY3B1OworICAgICAgICBpZiAoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICAgICAgZGlkQXBwZW5kQXRMZWFzdE9uZVRyYWNrID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIGlmIChkaWRBcHBlbmRBdExlYXN0T25lVHJhY2spCisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobmV3IFNwYWNpbmdUcmFjayh0aGlzLnZpZXdwb3J0KSk7CisgICAgfQorICB9OworCisKKyAgcmV0dXJuIHsKKyAgICBLZXJuZWxUcmFjazogS2VybmVsVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODA0MmU5Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvbGV0dGVyX2RvdF90cmFjay5odG1sCkBAIC0wLDAgKzEsMjYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3NvcnRlZF9hcnJheV91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJveHlfc2VsZWN0YWJsZV9pdGVtLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2NvbG9yX3NjaGVtZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9ldmVudF9wcmVzZW50ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvaGVhZGluZy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3RyYWNrLmh0bWwiPgorCis8c3R5bGU+CisubGV0dGVyLWRvdC10cmFjayB7CisgIGhlaWdodDogMThweDsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEV2ZW50UHJlc2VudGVyID0gdHIudWkuYi5FdmVudFByZXNlbnRlcjsKKyAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7CisKKyAgLyoqCisgICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhbiBhcnJheSBvZiBkb3RzIHdpdGggZmlsbGVkIGxldHRlcnMgaW5zaWRlIHRoZW0uCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7VHJhY2t9CisgICAqLworICB2YXIgTGV0dGVyRG90VHJhY2sgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICdsZXR0ZXItZG90LXRyYWNrJywgdHIudWkudHJhY2tzLlRyYWNrKTsKKworICBMZXR0ZXJEb3RUcmFjay5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdsZXR0ZXItZG90LXRyYWNrJyk7CisgICAgICB0aGlzLml0ZW1zXyA9IHVuZGVmaW5lZDsKKworICAgICAgdGhpcy5oZWFkaW5nXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWhlYWRpbmcnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkaW5nXyk7CisgICAgfSwKKworICAgIHNldCBoZWFkaW5nKGhlYWRpbmcpIHsKKyAgICAgIHRoaXMuaGVhZGluZ18uaGVhZGluZyA9IGhlYWRpbmc7CisgICAgfSwKKworICAgIGdldCBoZWFkaW5nKCkgeworICAgICAgcmV0dXJuIHRoaXMuaGVhZGluZ18uaGVhZGluZzsKKyAgICB9LAorCisgICAgc2V0IHRvb2x0aXAodG9vbHRpcCkgeworICAgICAgdGhpcy5oZWFkaW5nXy50b29sdGlwID0gdG9vbHRpcDsKKyAgICB9LAorCisgICAgZ2V0IGl0ZW1zKCkgeworICAgICAgcmV0dXJuIHRoaXMuaXRlbXNfOworICAgIH0sCisKKyAgICBzZXQgaXRlbXMoaXRlbXMpIHsKKyAgICAgIHRoaXMuaXRlbXNfID0gaXRlbXM7CisgICAgICB0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7CisgICAgfSwKKworICAgIGdldCBoZWlnaHQoKSB7CisgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuaGVpZ2h0OworICAgIH0sCisKKyAgICBzZXQgaGVpZ2h0KGhlaWdodCkgeworICAgICAgdGhpcy5zdHlsZS5oZWlnaHQgPSBoZWlnaHQ7CisgICAgfSwKKworICAgIGdldCBkdW1wUmFkaXVzVmlldygpIHsKKyAgICAgIHJldHVybiA3ICogKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpOworICAgIH0sCisKKyAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7CisgICAgICBpZiAodGhpcy5pdGVtc18gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6CisgICAgICAgICAgdGhpcy5kcmF3TGV0dGVyRG90c18odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfSwKKworICAgIGRyYXdMZXR0ZXJEb3RzXzogZnVuY3Rpb24odmlld0xXb3JsZCwgdmlld1JXb3JsZCkgeworICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworCisgICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBoZWlnaHQgPSBib3VuZHMuaGVpZ2h0ICogcGl4ZWxSYXRpbzsKKyAgICAgIHZhciBoYWxmSGVpZ2h0ID0gaGVpZ2h0ICogMC41OworICAgICAgdmFyIHR3b1BpID0gTWF0aC5QSSAqIDI7CisgICAgICB2YXIgcGFsZXR0ZSA9IHRyLnVpLmIuZ2V0Q29sb3JQYWxldHRlKCk7CisgICAgICB2YXIgaGlnaGxpZ2h0SWRCb29zdCA9IHRyLnVpLmIucGFsZXR0ZVByb3BlcnRpZXMuaGlnaGxpZ2h0SWRCb29zdDsKKworICAgICAgLy8gQ3VsbGluZyBwYXJhbWV0ZXJzLgorICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKKyAgICAgIHZhciBkdW1wUmFkaXVzVmlldyA9IHRoaXMuZHVtcFJhZGl1c1ZpZXc7CisgICAgICB2YXIgaXRlbVJhZGl1c1dvcmxkID0gZHQueFZpZXdWZWN0b3JUb1dvcmxkKGhlaWdodCk7CisKKyAgICAgIC8vIERyYXcgdGhlIG1lbW9yeSBkdW1wcy4KKyAgICAgIHZhciBpdGVtcyA9IHRoaXMuaXRlbXNfOworICAgICAgdmFyIGxvSSA9IHRyLmIuZmluZExvd0luZGV4SW5Tb3J0ZWRBcnJheSgKKyAgICAgICAgICBpdGVtcywKKyAgICAgICAgICBmdW5jdGlvbihpdGVtKSB7IHJldHVybiBpdGVtLnN0YXJ0OyB9LAorICAgICAgICAgIHZpZXdMV29ybGQpOworCisgICAgICB2YXIgb2xkRm9udCA9IGN0eC5mb250OworICAgICAgY3R4LmZvbnQgPSAnNDAwICcgKyBNYXRoLmZsb29yKDkgKiBwaXhlbFJhdGlvKSArICdweCBBcmlhbCc7CisgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDAsMCwwKSc7CisgICAgICBjdHgudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7CisgICAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7CisKKyAgICAgIHZhciBkcmF3SXRlbXMgPSBmdW5jdGlvbihzZWxlY3RlZCkgeworICAgICAgICBmb3IgKHZhciBpID0gbG9JOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldOworICAgICAgICAgIHZhciB4ID0gaXRlbS5zdGFydDsKKyAgICAgICAgICBpZiAoeCAtIGl0ZW1SYWRpdXNXb3JsZCA+IHZpZXdSV29ybGQpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBpZiAoaXRlbS5zZWxlY3RlZCAhPT0gc2VsZWN0ZWQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB2YXIgeFZpZXcgPSBkdC54V29ybGRUb1ZpZXcoeCk7CisKKyAgICAgICAgICBjdHguZmlsbFN0eWxlID0gRXZlbnRQcmVzZW50ZXIuZ2V0U2VsZWN0YWJsZUl0ZW1Db2xvcihpdGVtKTsKKyAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICAgICAgY3R4LmFyYyh4VmlldywgaGFsZkhlaWdodCwgZHVtcFJhZGl1c1ZpZXcgKyAwLjUsIDAsIHR3b1BpKTsKKyAgICAgICAgICBjdHguZmlsbCgpOworICAgICAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7CisgICAgICAgICAgICBjdHgubGluZVdpZHRoID0gMzsKKyAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMTAwLDEwMCwwKSc7CisgICAgICAgICAgICBjdHguc3Ryb2tlKCk7CisKKyAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICAgICAgICAgIGN0eC5hcmMoeFZpZXcsIGhhbGZIZWlnaHQsIGR1bXBSYWRpdXNWaWV3LCAwLCB0d29QaSk7CisgICAgICAgICAgICBjdHgubGluZVdpZHRoID0gMS41OworICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigyNTUsMjU1LDApJzsKKyAgICAgICAgICAgIGN0eC5zdHJva2UoKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7CisgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDAsMCwwKSc7CisgICAgICAgICAgICBjdHguc3Ryb2tlKCk7CisgICAgICAgICAgfQorCisgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2IoMjU1LCAyNTUsIDI1NSknOworICAgICAgICAgIGN0eC5maWxsVGV4dChpdGVtLmRvdExldHRlciwgeFZpZXcsIGhhbGZIZWlnaHQpOworICAgICAgICB9CisgICAgICB9OworCisgICAgICAvLyBEcmF3IHVuc2VsZWN0ZWQgaXRlbXMgZmlyc3QgdG8gbWFrZSBzdXJlIHRoZXkgZG9uJ3Qgb2NjbHVkZSBzZWxlY3RlZAorICAgICAgLy8gaXRlbXMuCisgICAgICBkcmF3SXRlbXMoZmFsc2UpOworICAgICAgZHJhd0l0ZW1zKHRydWUpOworCisgICAgICBjdHgubGluZVdpZHRoID0gMTsKKyAgICAgIGN0eC5mb250ID0gb2xkRm9udDsKKyAgICB9LAorCisgICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7CisgICAgICBpZiAodGhpcy5pdGVtc18gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLml0ZW1zXy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsKKyAgICAgICAgaXRlbS5hZGRUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCwgdGhpcyk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlOiBmdW5jdGlvbigKKyAgICAgICAgbG9XWCwgaGlXWCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbikgeworICAgICAgaWYgKHRoaXMuaXRlbXNfID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGl0ZW1SYWRpdXNXb3JsZCA9IHZpZXdQaXhXaWR0aFdvcmxkICogdGhpcy5kdW1wUmFkaXVzVmlldzsKKyAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMoCisgICAgICAgICAgdGhpcy5pdGVtc18sCisgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5zdGFydCAtIGl0ZW1SYWRpdXNXb3JsZDsgfSwKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiAyICogaXRlbVJhZGl1c1dvcmxkOyB9LAorICAgICAgICAgIGxvV1gsIGhpV1gsCisgICAgICAgICAgZnVuY3Rpb24oaXRlbSkgeworICAgICAgICAgICAgaXRlbS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOworICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEFkZCB0aGUgaXRlbSB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgcHJvdmlkZWQgZXZlbnQsIGlmIGFueSwgdG8gdGhlCisgICAgICogc2VsZWN0aW9uLgorICAgICAqIEBwYXJhbSB7ZXZlbnR9IFRoZSBjdXJyZW50IGV2ZW50IGl0ZW0uCisgICAgICogQHBhcmFtIHtOdW1iZXJ9IG9mZnNldCBOdW1iZXIgb2Ygc2xpY2VzIGF3YXkgZnJvbSB0aGUgZXZlbnQgdG8gbG9vay4KKyAgICAgKiBAcGFyYW0ge1NlbGVjdGlvbn0gc2VsZWN0aW9uIFRoZSBzZWxlY3Rpb24gdG8gYWRkIGFuIGV2ZW50IHRvLAorICAgICAqIGlmIGZvdW5kLgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgYW4gZXZlbnQgd2FzIGZvdW5kLgorICAgICAqIEBwcml2YXRlCisgICAgICovCisgICAgYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKGV2ZW50LCBvZmZzZXQsIHNlbGVjdGlvbikgeworICAgICAgaWYgKHRoaXMuaXRlbXNfID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGl0ZW1zID0gdGhpcy5pdGVtc187CisgICAgICB2YXIgaW5kZXggPSB0ci5iLmZpbmRGaXJzdEluZGV4SW5BcnJheShpdGVtcywgZnVuY3Rpb24oaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS5tb2RlbEl0ZW0gPT09IGV2ZW50OworICAgICAgfSk7CisgICAgICBpZiAoaW5kZXggPT09IC0xKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHZhciBuZXdJbmRleCA9IGluZGV4ICsgb2Zmc2V0OworICAgICAgaWYgKG5ld0luZGV4ID49IDAgJiYgbmV3SW5kZXggPCBpdGVtcy5sZW5ndGgpIHsKKyAgICAgICAgaXRlbXNbbmV3SW5kZXhdLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgeworICAgIH0sCisKKyAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24od29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24pIHsKKyAgICAgIGlmICh0aGlzLml0ZW1zXyA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBpdGVtID0gdHIuYi5maW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5KAorICAgICAgICAgIHRoaXMuaXRlbXNfLAorICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguc3RhcnQ7IH0sCisgICAgICAgICAgd29ybGRYLAorICAgICAgICAgIHdvcmxkTWF4RGlzdCk7CisKKyAgICAgIGlmICghaXRlbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBpdGVtLmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgfQorICB9OworCisgIC8qKgorICAgKiBBIGZpbGxlZCBkb3Qgd2l0aCBhIGxldHRlciBpbnNpZGUgaXQuCisgICAqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7UHJveHlTZWxlY3RhYmxlSXRlbX0KKyAgICovCisgIGZ1bmN0aW9uIExldHRlckRvdChtb2RlbEl0ZW0sIGRvdExldHRlciwgY29sb3JJZCwgc3RhcnQpIHsKKyAgICB0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLmNhbGwodGhpcywgbW9kZWxJdGVtKTsKKyAgICB0aGlzLmRvdExldHRlciA9IGRvdExldHRlcjsKKyAgICB0aGlzLmNvbG9ySWQgPSBjb2xvcklkOworICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgfTsKKworICBMZXR0ZXJEb3QucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIubW9kZWwuUHJveHlTZWxlY3RhYmxlSXRlbS5wcm90b3R5cGUKKyAgfTsKKworICByZXR1cm4geworICAgIExldHRlckRvdFRyYWNrOiBMZXR0ZXJEb3RUcmFjaywKKyAgICBMZXR0ZXJEb3Q6IExldHRlckRvdAorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvbGV0dGVyX2RvdF90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUzYjEzNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL2xldHRlcl9kb3RfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2VsZWN0aW9uX3N0YXRlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvbGV0dGVyX2RvdF90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBMZXR0ZXJEb3RUcmFjayA9IHRyLnVpLnRyYWNrcy5MZXR0ZXJEb3RUcmFjazsKKyAgdmFyIExldHRlckRvdCA9IHRyLnVpLnRyYWNrcy5MZXR0ZXJEb3Q7CisgIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOworICB2YXIgVmlld3BvcnQgPSB0ci51aS5UaW1lbGluZVZpZXdwb3J0OworCisgIHZhciBjcmVhdGVJdGVtcyA9IGZ1bmN0aW9uKCkgeworICAgIHZhciBpdGVtcyA9IFsKKyAgICAgIG5ldyBMZXR0ZXJEb3Qoe3NlbGVjdGlvblN0YXRlOiBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRH0sICdhJywgNywgNSksCisgICAgICBuZXcgTGV0dGVyRG90KHtzZWxlY3Rpb25TdGF0ZTogU2VsZWN0aW9uU3RhdGUuU0VMRUNURUR9LCAnYicsIDIsIDIwKSwKKyAgICAgIG5ldyBMZXR0ZXJEb3Qoe3NlbGVjdGlvblN0YXRlOiBTZWxlY3Rpb25TdGF0ZS5OT05FfSwgJ2MnLCA0LCAzNSksCisgICAgICBuZXcgTGV0dGVyRG90KHtzZWxlY3Rpb25TdGF0ZTogU2VsZWN0aW9uU3RhdGUuTk9ORX0sICdkJywgNCwgNTApCisgICAgXTsKKyAgICByZXR1cm4gaXRlbXM7CisgIH07CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaXRlbXMgPSBjcmVhdGVJdGVtcygpOworCisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7CisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKKworICAgIHZhciB0cmFjayA9IExldHRlckRvdFRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOworICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOworCisgICAgdHJhY2suaXRlbXMgPSBpdGVtczsKKyAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDYwLCB0cmFjay5jbGllbnRXaWR0aCk7CisgICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKyAgfSk7CisKKyAgdGVzdCgnc2VsZWN0aW9uSGl0VGVzdGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBpdGVtcyA9IGNyZWF0ZUl0ZW1zKCk7CisKKyAgICB2YXIgdHJhY2sgPSBuZXcgTGV0dGVyRG90VHJhY2sobmV3IFZpZXdwb3J0KCkpOworICAgIHRyYWNrLml0ZW1zID0gaXRlbXM7CisKKyAgICAvLyBGYWtlIGEgdmlldyBwaXhlbCBzaXplLgorICAgIHZhciBkZXZpY2VQaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICB2YXIgdmlld1BpeFdpZHRoV29ybGQgPSAwLjEgLyBkZXZpY2VQaXhlbFJhdGlvOworCisgICAgLy8gSGl0IG91dHNpZGUgcmFuZ2UKKyAgICB2YXIgc2VsZWN0aW9uID0gW107CisgICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlKAorICAgICAgICAzLCA0LCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMCk7CisKKyAgICAvLyBIaXQgdGhlIGZpcnN0IGl0ZW0sIHZpYSBwaXhlbC1uZWFybmVzcy4KKyAgICBzZWxlY3Rpb24gPSBbXTsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCisgICAgICAgIDE5Ljk4LCAxOS45OSwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbik7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25bMF0sIGl0ZW1zWzFdLm1vZGVsSXRlbSk7CisKKyAgICAvLyBIaXQgdGhlIGluc3RhbmNlLCBiZXR3ZWVuIHRoZSAxc3QgYW5kIDJuZCBzbmFwc2hvdHMKKyAgICBzZWxlY3Rpb24gPSBbXTsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCisgICAgICAgIDMwLCA1MCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbik7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb25bMF0sIGl0ZW1zWzJdLm1vZGVsSXRlbSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvblsxXSwgaXRlbXNbM10ubW9kZWxJdGVtKTsKKyAgfSk7CisKKyAgdGVzdCgnYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaXRlbXMgPSBjcmVhdGVJdGVtcygpOworCisgICAgdmFyIHRyYWNrID0gbmV3IExldHRlckRvdFRyYWNrKG5ldyBWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5pdGVtcyA9IGl0ZW1zOworCisgICAgLy8gUmlnaHQgZnJvbSB0aGUgbWlkZGxlIG9mIGl0ZW1zLgorICAgIHZhciBzZWxlY3Rpb24xID0gW107CisgICAgYXNzZXJ0LmlzVHJ1ZSh0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKKyAgICAgICAgaXRlbXNbMl0ubW9kZWxJdGVtLCAxLCBzZWxlY3Rpb24xKSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbjEubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uMVswXSwgaXRlbXNbM10ubW9kZWxJdGVtKTsKKworICAgIC8vIExlZnQgZnJvbSB0aGUgbWlkZGxlIG9mIGl0ZW1zLgorICAgIHZhciBzZWxlY3Rpb24yID0gW107CisgICAgYXNzZXJ0LmlzVHJ1ZSh0cmFjay5hZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbigKKyAgICAgICAgaXRlbXNbMl0ubW9kZWxJdGVtLCAtMSwgc2VsZWN0aW9uMikpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24yLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbjJbMF0sIGl0ZW1zWzFdLm1vZGVsSXRlbSk7CisKKyAgICAvLyBSaWdodCBmcm9tIHRoZSByaWdodCBlZGdlIG9mIGl0ZW1zLgorICAgIHZhciBzZWxlY3Rpb24zID0gW107CisgICAgYXNzZXJ0LmlzRmFsc2UodHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgIGl0ZW1zWzNdLm1vZGVsSXRlbSwgMSwgc2VsZWN0aW9uMykpOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24zLmxlbmd0aCwgMCk7CisKKyAgICAvLyBMZWZ0IGZyb20gdGhlIGxlZnQgZWRnZSBvZiBpdGVtcy4KKyAgICB2YXIgc2VsZWN0aW9uNCA9IFtdOworICAgIGFzc2VydC5pc0ZhbHNlKHRyYWNrLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKAorICAgICAgICBpdGVtc1swXS5tb2RlbEl0ZW0sIC0xLCBzZWxlY3Rpb240KSk7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbjQubGVuZ3RoLCAwKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja190ZXN0X3V0aWxzLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja190ZXN0X3V0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc4NDZhMgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3Rlc3RfdXRpbHMuaHRtbApAQCAtMCwwICsxLDEyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvYXR0cmlidXRlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9nbG9iYWxfbWVtb3J5X2R1bXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21lbW9yeV9hbGxvY2F0b3JfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvcHJvY2Vzc19tZW1vcnlfZHVtcC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2VsZWN0aW9uX3N0YXRlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IEhlbHBlciBmdW5jdGlvbnMgZm9yIG1lbW9yeSBkdW1wIHRyYWNrIHRlc3RzLgorICovCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIHZhciBQcm9jZXNzTWVtb3J5RHVtcCA9IHRyLm1vZGVsLlByb2Nlc3NNZW1vcnlEdW1wOworICB2YXIgR2xvYmFsTWVtb3J5RHVtcCA9IHRyLm1vZGVsLkdsb2JhbE1lbW9yeUR1bXA7CisgIHZhciBNZW1vcnlBbGxvY2F0b3JEdW1wID0gdHIubW9kZWwuTWVtb3J5QWxsb2NhdG9yRHVtcDsKKyAgdmFyIFZNUmVnaW9uID0gdHIubW9kZWwuVk1SZWdpb247CisgIHZhciBWTVJlZ2lvbkJ5dGVTdGF0cyA9IHRyLm1vZGVsLlZNUmVnaW9uQnl0ZVN0YXRzOworICB2YXIgU2NhbGFyQXR0cmlidXRlID0gdHIubW9kZWwuU2NhbGFyQXR0cmlidXRlOworICB2YXIgU2VsZWN0aW9uU3RhdGUgPSB0ci5tb2RlbC5TZWxlY3Rpb25TdGF0ZTsKKworICBmdW5jdGlvbiBjcmVhdGVWTVJlZ2lvbnMocHNzVmFsdWVzKSB7CisgICAgcmV0dXJuIHBzc1ZhbHVlcy5tYXAoZnVuY3Rpb24ocHNzVmFsdWUsIGkpIHsKKyAgICAgIHJldHVybiBWTVJlZ2lvbi5mcm9tRGljdCh7CisgICAgICAgIHN0YXJ0QWRkcmVzczogMTAwMCAqIGksCisgICAgICAgIHNpemVJbkJ5dGVzOiAxMDAwLAorICAgICAgICBwcm90ZWN0aW9uRmxhZ3M6IFZNUmVnaW9uLlBST1RFQ1RJT05fRkxBR19SRUFELAorICAgICAgICBtYXBwZWRGaWxlOiAnW3N0YWNrJyArIGkgKyAnXScsCisgICAgICAgIGJ5dGVTdGF0czogeworICAgICAgICAgIHByaXZhdGVEaXJ0eVJlc2lkZW50OiBwc3NWYWx1ZSAvIDMsCisgICAgICAgICAgc3dhcHBlZDogcHNzVmFsdWUgKiAzLAorICAgICAgICAgIHByb3BvcnRpb25hbFJlc2lkZW50OiBwc3NWYWx1ZQorICAgICAgICB9CisgICAgICB9KTsKKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZUFsbG9jYXRvckR1bXBzKG1lbW9yeUR1bXAsIGR1bXBTaXplcykgeworICAgIHZhciBhbGxvY2F0b3JEdW1wcyA9IFtdOworICAgIHRyLmIuaXRlckl0ZW1zKGR1bXBTaXplcywgZnVuY3Rpb24oYWxsb2NhdG9yTmFtZSwgc2l6ZSkgeworICAgICAgdmFyIGR1bXAgPSBuZXcgTWVtb3J5QWxsb2NhdG9yRHVtcChtZW1vcnlEdW1wLCBhbGxvY2F0b3JOYW1lKTsKKyAgICAgIGR1bXAuYWRkQXR0cmlidXRlKCdzaXplJywgbmV3IFNjYWxhckF0dHJpYnV0ZSgnYnl0ZXMnLCBzaXplKSk7CisgICAgICBhbGxvY2F0b3JEdW1wcy5wdXNoKGR1bXApOworICAgIH0pOworICAgIHJldHVybiBhbGxvY2F0b3JEdW1wczsKKyAgfQorCisgIGZ1bmN0aW9uIGFkZFByb2Nlc3NNZW1vcnlEdW1wKGdsb2JhbE1lbW9yeUR1bXAsIHByb2Nlc3MsIHN0YXJ0LAorICAgICAgb3B0X3Bzc1ZhbHVlcywgb3B0X2R1bXBTaXplcykgeworICAgIHZhciBwbWQgPSBuZXcgUHJvY2Vzc01lbW9yeUR1bXAoZ2xvYmFsTWVtb3J5RHVtcCwgcHJvY2Vzcywgc3RhcnQpOworICAgIGlmIChvcHRfcHNzVmFsdWVzICE9PSB1bmRlZmluZWQpCisgICAgICBwbWQudm1SZWdpb25zID0gY3JlYXRlVk1SZWdpb25zKG9wdF9wc3NWYWx1ZXMpOworICAgIGlmIChvcHRfZHVtcFNpemVzICE9PSB1bmRlZmluZWQpCisgICAgICBwbWQubWVtb3J5QWxsb2NhdG9yRHVtcHMgPSBjcmVhdGVBbGxvY2F0b3JEdW1wcyhwbWQsIG9wdF9kdW1wU2l6ZXMpOworICAgIGdsb2JhbE1lbW9yeUR1bXAucHJvY2Vzc01lbW9yeUR1bXBzW3Byb2Nlc3MucGlkXSA9IHBtZDsKKyAgICBwcm9jZXNzLm1lbW9yeUR1bXBzLnB1c2gocG1kKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZU1vZGVsV2l0aER1bXBzKHdpdGhWTVJlZ2lvbnMsIHdpdGhBbGxvY2F0b3JEdW1wcykgeworICAgIHZhciBtYXliZVBzc1ZhbHVlcyA9IGZ1bmN0aW9uKHBzc1ZhbHVlcykgeworICAgICAgcmV0dXJuIHdpdGhWTVJlZ2lvbnMgPyBwc3NWYWx1ZXMgOiB1bmRlZmluZWQ7CisgICAgfTsKKyAgICB2YXIgbWF5YmVEdW1wU2l6ZXMgPSBmdW5jdGlvbihkdW1wU2l6ZXMpIHsKKyAgICAgIHJldHVybiB3aXRoQWxsb2NhdG9yRHVtcHMgPyBkdW1wU2l6ZXMgOiB1bmRlZmluZWQ7CisgICAgfTsKKyAgICByZXR1cm4gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICAvLyBDb25zdHJ1Y3QgYSBtb2RlbCB3aXRoIHRocmVlIHByb2Nlc3Nlcy4KKyAgICAgIHZhciBwYSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygzKTsKKyAgICAgIHZhciBwYiA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2Vzcyg2KTsKKyAgICAgIHZhciBwYyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2Vzcyg5KTsKKworICAgICAgdmFyIGdtZDEgPSBuZXcgR2xvYmFsTWVtb3J5RHVtcChtb2RlbCwgMCk7CisgICAgICBtb2RlbC5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdtZDEpOworICAgICAgYWRkUHJvY2Vzc01lbW9yeUR1bXAoZ21kMSwgcGEsIDAsIG1heWJlUHNzVmFsdWVzKFsxMTFdKSk7CisgICAgICBhZGRQcm9jZXNzTWVtb3J5RHVtcChnbWQxLCBwYiwgMC4yLCB1bmRlZmluZWQsCisgICAgICAgICAgbWF5YmVEdW1wU2l6ZXMoe29pbHBhbjogMTAyNH0pKTsKKworICAgICAgdmFyIGdtZDIgPSBuZXcgR2xvYmFsTWVtb3J5RHVtcChtb2RlbCwgNSk7CisgICAgICBtb2RlbC5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdtZDIpOworICAgICAgYWRkUHJvY2Vzc01lbW9yeUR1bXAoZ21kMiwgcGEsIDApOworICAgICAgYWRkUHJvY2Vzc01lbW9yeUR1bXAoZ21kMiwgcGIsIDQuOTksIG1heWJlUHNzVmFsdWVzKFsxMDAsIDUwXSksCisgICAgICAgICAgbWF5YmVEdW1wU2l6ZXMoe3Y4OiA1MTJ9KSk7CisgICAgICBhZGRQcm9jZXNzTWVtb3J5RHVtcChnbWQyLCBwYywgNS4xMiwgdW5kZWZpbmVkLAorICAgICAgICAgIG1heWJlRHVtcFNpemVzKHtvaWxwYW46IDEyOCwgdjg6IDI1NiwgdHJhY2luZzogNjU1MzZ9KSk7CisKKyAgICAgIHZhciBnbWQzID0gbmV3IEdsb2JhbE1lbW9yeUR1bXAobW9kZWwsIDE1KTsKKyAgICAgIG1vZGVsLmdsb2JhbE1lbW9yeUR1bXBzLnB1c2goZ21kMyk7CisgICAgICBhZGRQcm9jZXNzTWVtb3J5RHVtcChnbWQzLCBwYSwgMTUuNSwgbWF5YmVQc3NWYWx1ZXMoW10pLAorICAgICAgICAgIG1heWJlRHVtcFNpemVzKHt2ODogNzY4fSkpOworICAgICAgYWRkUHJvY2Vzc01lbW9yeUR1bXAoZ21kMywgcGMsIDE0LjUsIG1heWJlUHNzVmFsdWVzKFs3MCwgNzAsIDcwXSksCisgICAgICAgICAgbWF5YmVEdW1wU2l6ZXMoe29pbHBhbjogNTEyfSkpOworCisgICAgICB2YXIgZ21kNCA9IG5ldyBHbG9iYWxNZW1vcnlEdW1wKG1vZGVsLCAxOCk7CisgICAgICBtb2RlbC5nbG9iYWxNZW1vcnlEdW1wcy5wdXNoKGdtZDQpOworICAgIH0pOworICB9CisKKyAgZnVuY3Rpb24gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzKHdpdGhWTVJlZ2lvbnMsIHdpdGhBbGxvY2F0b3JEdW1wcykgeworICAgIHZhciBtb2RlbCA9IGNyZWF0ZU1vZGVsV2l0aER1bXBzKHdpdGhWTVJlZ2lvbnMsIHdpdGhBbGxvY2F0b3JEdW1wcyk7CisgICAgdmFyIGR1bXBzID0gbW9kZWwuZ2xvYmFsTWVtb3J5RHVtcHM7CisgICAgZHVtcHNbMV0uc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRDsKKyAgICBkdW1wc1syXS5zZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworICAgIHJldHVybiBkdW1wczsKKyAgfQorCisgIGZ1bmN0aW9uIGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMod2l0aFZNUmVnaW9ucywgd2l0aEFsbG9jYXRvckR1bXBzKSB7CisgICAgdmFyIG1vZGVsID0gY3JlYXRlTW9kZWxXaXRoRHVtcHMod2l0aFZNUmVnaW9ucywgd2l0aEFsbG9jYXRvckR1bXBzKTsKKyAgICB2YXIgZHVtcHMgPSBtb2RlbC5nZXRQcm9jZXNzKDkpLm1lbW9yeUR1bXBzOworICAgIGR1bXBzWzBdLnNlbGVjdGlvblN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7CisgICAgZHVtcHNbMV0uc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRDsKKyAgICByZXR1cm4gZHVtcHM7CisgIH0KKworICByZXR1cm4geworICAgIGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wczogY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzLAorICAgIGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHM6IGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja191dGlsLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja191dGlsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRlNzIxYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbApAQCAtMCwwICsxLDI1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X2F4aXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9wb2ludC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3Nlcmllcy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NoYXJ0X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvbGV0dGVyX2RvdF90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworCisgIC8vIFRPRE8ocGV0cmNlcm1hayk6IFRoaXMgY29uc3RhbnQgaXMgZGVmaW5lZCBhbmQvb3IgdXNlZCBpbiBtYW55IGZpbGVzLiBJdAorICAvLyBzaG91bGQgYmUgZGVmaW5lZCBvbmNlIG9ubHkuCisgIHZhciBBTExPQ0FUT1JfU0laRV9BVFRSSUJVVEVfTkFNRSA9ICdzaXplJzsKKworICAvKioKKyAgICogQWRkIG51bWVyaWMgdmFsdWVzIGZyb20gYSBzb3VyY2UgZGljdGlvbmFyeSB0byB0aGUgbnVtZXJpYyB2YWx1ZXMgaW4KKyAgICogYSBkZXN0aW5hdGlvbiBkaWN0aW9uYXJ5LiBVbmRlZmluZWQgdmFsdWVzIGFyZSB0cmVhdGVkIGFzIHplcm9zLiBOb3RlIHRoYXQKKyAgICogdGhpcyBtZXRob2QgbW9kaWZpZXMgdGhlIGRlc3RpbmF0aW9uIGRpY3Rpb25hcnkgaW4gcGxhY2UuCisgICAqCisgICAqIEV4YW1wbGU6IGFkZERpY3Rpb25hcnkoe2E6IDEsIGI6IDJ9LCB7YjogMywgYzogNH0pIHdpbGwgdXBkYXRlIHRoZQorICAgKiBkZXN0aW5hdGlvbiBkaWN0aW9uYXJ5IChmaXJzdCBhcmd1bWVudCkgdG8ge2E6IDEsIGI6IDUsIGM6IDR9LgorICAgKi8KKyAgZnVuY3Rpb24gYWRkRGljdGlvbmFyeShkc3REaWN0LCBzcmNEaWN0KSB7CisgICAgdHIuYi5pdGVySXRlbXMoc3JjRGljdCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgeworICAgICAgdmFyIGV4aXN0aW5nVmFsdWUgPSBkc3REaWN0W2tleV07CisgICAgICBpZiAoZXhpc3RpbmdWYWx1ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICBleGlzdGluZ1ZhbHVlID0gMDsKKyAgICAgIGRzdERpY3Rba2V5XSA9IGV4aXN0aW5nVmFsdWUgKyB2YWx1ZTsKKyAgICB9KTsKKyAgfQorCisgIC8qKgorICAgKiBHZXQgYSBkaWN0aW9uYXJ5IG1hcHBpbmcgcm9vdCBhbGxvY2F0b3IgbmFtZXMgKGUuZy4gJ3Y4JykgdG8gdGhlCisgICAqIGNvcnJlc3BvbmRpbmcgc2l6ZXMgKGUuZy4gMTAyNCkgaW4gYSBwcm9jZXNzIG1lbW9yeSBkdW1wLgorICAgKi8KKyAgZnVuY3Rpb24gZ2V0UHJvY2Vzc01lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyhwcm9jZXNzTWVtb3J5RHVtcCkgeworICAgIHZhciBhbGxvY2F0b3JEdW1wcyA9IHByb2Nlc3NNZW1vcnlEdW1wLm1lbW9yeUFsbG9jYXRvckR1bXBzOworICAgIGlmIChhbGxvY2F0b3JEdW1wcyA9PT0gdW5kZWZpbmVkKQorICAgICAgcmV0dXJuIHt9OworICAgIHZhciBhbGxvY2F0b3JTaXplcyA9IHt9OworICAgIGFsbG9jYXRvckR1bXBzLmZvckVhY2goZnVuY3Rpb24oYWxsb2NhdG9yRHVtcCkgeworICAgICAgLy8gRG9uJ3Qgc2hvdyB0cmFjaW5nIG92ZXJoZWFkIGluIHRoZSBjaGFydHMuCisgICAgICAvLyBUT0RPKHBldHJjZXJtYWspOiBGaW5kIGEgbGVzcyBoYWNreSB3YXkgdG8gZG8gdGhpcy4KKyAgICAgIGlmIChhbGxvY2F0b3JEdW1wLmZ1bGxOYW1lID09PSAndHJhY2luZycpCisgICAgICAgIHJldHVybjsKKyAgICAgIHZhciBhbGxvY2F0b3JTaXplID0gYWxsb2NhdG9yRHVtcC5hdHRyaWJ1dGVzWworICAgICAgICAgIEFMTE9DQVRPUl9TSVpFX0FUVFJJQlVURV9OQU1FXTsKKyAgICAgIGlmIChhbGxvY2F0b3JTaXplID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHZhciBhbGxvY2F0b3JTaXplVmFsdWUgPSBhbGxvY2F0b3JTaXplLnZhbHVlOworICAgICAgaWYgKGFsbG9jYXRvclNpemVWYWx1ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm47CisgICAgICBhbGxvY2F0b3JTaXplc1thbGxvY2F0b3JEdW1wLmZ1bGxOYW1lXSA9IGFsbG9jYXRvclNpemVWYWx1ZTsKKyAgICB9KTsKKyAgICByZXR1cm4gYWxsb2NhdG9yU2l6ZXM7CisgIH07CisKKyAgLyoqCisgICAqIEdldCBhIGRpY3Rpb25hcnkgbWFwcGluZyByb290IGFsbG9jYXRvciBuYW1lcyAoZS5nLiAndjgnKSB0byB0aGUKKyAgICogY29ycmVzcG9uZGluZyBzaXplcyAoZS5nLiAxMDI0KSBpbiBhIGdsb2JhbCBtZW1vcnkgZHVtcCAoaS5lLiBzdW1tZWQgb3ZlcgorICAgKiBhbGwgc2ltdWx0YW5lb3VzIHByb2Nlc3MgbWVtb3J5IGR1bXBzKS4KKyAgICovCisgIGZ1bmN0aW9uIGdldEdsb2JhbE1lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyhnbG9iYWxNZW1vcnlEdW1wKSB7CisgICAgdmFyIGdsb2JhbEFsbG9jYXRvclNpemVzID0ge307CisgICAgdHIuYi5pdGVySXRlbXMoZ2xvYmFsTWVtb3J5RHVtcC5wcm9jZXNzTWVtb3J5RHVtcHMsCisgICAgICAgIGZ1bmN0aW9uKHBpZCwgcHJvY2Vzc01lbW9yeUR1bXApIHsKKyAgICAgIGFkZERpY3Rpb25hcnkoZ2xvYmFsQWxsb2NhdG9yU2l6ZXMsCisgICAgICAgICAgZ2V0UHJvY2Vzc01lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyhwcm9jZXNzTWVtb3J5RHVtcCkpOworICAgIH0pOworICAgIHJldHVybiBnbG9iYWxBbGxvY2F0b3JTaXplczsKKyAgfQorCisgIC8qKgorICAgKiBBIGdlbmVyaWMgZnVuY3Rpb24gd2hpY2ggY29udmVydHMgYSBsaXN0IG9mIG1lbW9yeSBkdW1wcyB0byBhIGxpc3Qgb2YgY2hhcnQKKyAgICogc2VyaWVzIChvbmUgcGVyIHJvb3QgYWxsb2NhdG9yKS4gRWFjaCBzZXJpZXMgcmVwcmVzZW50cyB0aGUgZXZvbHV0aW9uIG9mCisgICAqIHRoZSBzaXplIG9mIGEgdGhlIGNvcnJlc3BvbmRpbmcgcm9vdCBhbGxvY2F0b3IgKGUuZy4gJ3Y4Jykgb3ZlciB0aW1lLgorICAgKi8KKyAgZnVuY3Rpb24gYnVpbGRBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyhtZW1vcnlEdW1wcywKKyAgICAgIG1lbW9yeUR1bXBUb0FsbG9jYXRvclNpemVzRm4pIHsKKyAgICB2YXIgYWxsb2NhdG9yTmFtZVRvUG9pbnRzID0ge307CisgICAgdmFyIGR1bXBzRGF0YSA9IG1lbW9yeUR1bXBzLm1hcChmdW5jdGlvbihtZW1vcnlEdW1wKSB7CisgICAgICB2YXIgYWxsb2NhdG9yU2l6ZXMgPSBtZW1vcnlEdW1wVG9BbGxvY2F0b3JTaXplc0ZuKG1lbW9yeUR1bXApOworICAgICAgdHIuYi5pdGVySXRlbXMoYWxsb2NhdG9yU2l6ZXMsIGZ1bmN0aW9uKGFsbG9jYXRvck5hbWUpIHsKKyAgICAgICAgYWxsb2NhdG9yTmFtZVRvUG9pbnRzW2FsbG9jYXRvck5hbWVdID0gW107CisgICAgICB9KTsKKyAgICAgIHJldHVybiB7ZHVtcDogbWVtb3J5RHVtcCwgc2l6ZXM6IGFsbG9jYXRvclNpemVzfTsKKyAgICB9KTsKKworICAgIC8vIERvIG5vdCBnZW5lcmF0ZSBhbnkgY2hhcnQgc2VyaWVzIGlmIG5vIHByb2Nlc3MgbWVtb3J5IGR1bXAgY29udGFpbnMgYW55CisgICAgLy8gYWxsb2NhdG9yIGR1bXBzLgorICAgIGlmIChPYmplY3Qua2V5cyhhbGxvY2F0b3JOYW1lVG9Qb2ludHMpLmxlbmd0aCA9PT0gMCkKKyAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICBkdW1wc0RhdGEuZm9yRWFjaChmdW5jdGlvbihkdW1wRGF0YSkgeworICAgICAgdmFyIG1lbW9yeUR1bXAgPSBkdW1wRGF0YS5kdW1wOworICAgICAgdmFyIGFsbG9jYXRvclNpemVzID0gZHVtcERhdGEuc2l6ZXM7CisgICAgICB0ci5iLml0ZXJJdGVtcyhhbGxvY2F0b3JOYW1lVG9Qb2ludHMsIGZ1bmN0aW9uKGFsbG9jYXRvck5hbWUsIHBvaW50cykgeworICAgICAgICB2YXIgYWxsb2NhdG9yU2l6ZSA9IGFsbG9jYXRvclNpemVzW2FsbG9jYXRvck5hbWVdIHx8IDA7CisgICAgICAgIHBvaW50cy5wdXNoKG5ldyB0ci51aS50cmFja3MuQ2hhcnRQb2ludCgKKyAgICAgICAgICAgIG1lbW9yeUR1bXAsIG1lbW9yeUR1bXAuc3RhcnQsIGFsbG9jYXRvclNpemUpKTsKKyAgICAgIH0pOworICAgIH0pOworCisgICAgLy8gQ3JlYXRlIG9uZSBjb21tb24gYXhpcyBmb3IgYWxsIGFsbG9jYXRlZCBtZW1vcnkgY2hhcnQgc2VyaWVzLgorICAgIHZhciBheGlzID0gbmV3IHRyLnVpLnRyYWNrcy5DaGFydEF4aXMoMCk7CisKKyAgICAvLyBCdWlsZCBhIGNoYXJ0IHNlcmllcyBmb3IgZWFjaCBhbGxvY2F0b3IuCisgICAgdmFyIHNlcmllcyA9IFtdOworICAgIHRyLmIuaXRlckl0ZW1zKGFsbG9jYXRvck5hbWVUb1BvaW50cywgZnVuY3Rpb24oYWxsb2NhdG9yTmFtZSwgcG9pbnRzKSB7CisgICAgICB2YXIgY29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKGFsbG9jYXRvck5hbWUpOworICAgICAgdmFyIHJlbmRlcmluZ0NvbmZpZyA9IHsKKyAgICAgICAgY2hhcnRUeXBlOiB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXNUeXBlLkxJTkUsCisgICAgICAgIGNvbG9ySWQ6IGNvbG9ySWQKKyAgICAgIH07CisgICAgICBzZXJpZXMucHVzaChuZXcgdHIudWkudHJhY2tzLkNoYXJ0U2VyaWVzKHBvaW50cywgYXhpcywgcmVuZGVyaW5nQ29uZmlnKSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gc2VyaWVzOworICB9CisKKyAgLyoqCisgICAqIFRyYW5zZm9ybSBhIGxpc3Qgb2YgbWVtb3J5IGR1bXBzIHRvIGEgbGlzdCBvZiBsZXR0ZXIgZG90cyAod2l0aCBsZXR0ZXIgJ00nCisgICAqIGluc2lkZSkuCisgICAqLworICBmdW5jdGlvbiBidWlsZE1lbW9yeUxldHRlckRvdHMobWVtb3J5RHVtcHMpIHsKKyAgICB2YXIgbWVtb3J5Q29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgnbWVtb3J5X2R1bXAnKTsKKyAgICByZXR1cm4gbWVtb3J5RHVtcHMubWFwKGZ1bmN0aW9uKG1lbW9yeUR1bXApIHsKKyAgICAgIHJldHVybiBuZXcgdHIudWkudHJhY2tzLkxldHRlckRvdCgKKyAgICAgICAgICBtZW1vcnlEdW1wLCAnTScsIG1lbW9yeUNvbG9ySWQsIG1lbW9yeUR1bXAuc3RhcnQpOworICAgIH0pOworICB9CisKKyAgLyoqCisgICAqIENvbnZlcnQgYSBsaXN0IG9mIGdsb2JhbCBtZW1vcnkgZHVtcHMgdG8gYSBsaXN0IG9mIGNoYXJ0IHNlcmllcyAob25lIHBlcgorICAgKiBwcm9jZXNzKS4gRWFjaCBzZXJpZXMgcmVwcmVzZW50cyB0aGUgZXZvbHV0aW9uIG9mIHRoZSBtZW1vcnkgdXNlZCBieSB0aGUKKyAgICogcHJvY2VzcyBvdmVyIHRpbWUuCisgICAqLworICBmdW5jdGlvbiBidWlsZEdsb2JhbFVzZWRNZW1vcnlDaGFydFNlcmllcyhnbG9iYWxNZW1vcnlEdW1wcykgeworICAgIC8vIERvIG5vdCBnZW5lcmF0ZSB0aGUgY2hhcnQgaWYgbm8gcHJvY2VzcyBtZW1vcnkgZHVtcCBjb250YWlucyBWTSByZWdpb25zLgorICAgIHZhciBjb250YWluc1ZtUmVnaW9ucyA9IGdsb2JhbE1lbW9yeUR1bXBzLnNvbWUoZnVuY3Rpb24oZ2xvYmFsRHVtcCkgeworICAgICAgZm9yICh2YXIgcGlkIGluIGdsb2JhbER1bXAucHJvY2Vzc01lbW9yeUR1bXBzKQorICAgICAgICBpZiAoZ2xvYmFsRHVtcC5wcm9jZXNzTWVtb3J5RHVtcHNbcGlkXS5tb3N0UmVjZW50Vm1SZWdpb25zKQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0pOworICAgIGlmICghY29udGFpbnNWbVJlZ2lvbnMpCisgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgLy8gRmluZCBhbGwgcHJvY2Vzc2VzIHRoYXQgZHVtcCBtZW1vcnkgYXQgbGVhc3Qgb25jZS4KKyAgICB2YXIgcGlkVG9Qcm9jZXNzID0ge307CisgICAgZ2xvYmFsTWVtb3J5RHVtcHMuZm9yRWFjaChmdW5jdGlvbihnbG9iYWxEdW1wKSB7CisgICAgICB0ci5iLml0ZXJJdGVtcyhnbG9iYWxEdW1wLnByb2Nlc3NNZW1vcnlEdW1wcywgZnVuY3Rpb24ocGlkLCBwcm9jZXNzRHVtcCkgeworICAgICAgICBwaWRUb1Byb2Nlc3NbcGlkXSA9IHByb2Nlc3NEdW1wLnByb2Nlc3M7CisgICAgICB9KTsKKyAgICB9KTsKKworICAgIC8vIEJ1aWxkIG9uZSBsaXN0IG9mIHBvaW50cyBmb3IgZWFjaCBpbnN0cnVtZW50ZWQgcHJvY2Vzcy4KKyAgICB2YXIgcGlkVG9Qb2ludHMgPSB7fTsKKyAgICB0ci5iLml0ZXJJdGVtcyhwaWRUb1Byb2Nlc3MsIGZ1bmN0aW9uKHBpZCwgcHJvY2VzcykgeworICAgICAgcGlkVG9Qb2ludHNbcGlkXSA9IFtdOworICAgIH0pOworCisgICAgLy8gRm9yIGV2ZXJ5IHRpbWVzdGFtcCwgY2FsY3VsYXRlIHRoZSB0b3RhbCBQU1MgKHByb3BvcnRpb25hbCBzZXQgc2l6ZSkgb2YKKyAgICAvLyBlYWNoIHByb2Nlc3MgYW5kIGFwcGVuZCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBsaXN0IG9mIHBvaW50cy4KKyAgICBnbG9iYWxNZW1vcnlEdW1wcy5mb3JFYWNoKGZ1bmN0aW9uKGdsb2JhbER1bXApIHsKKyAgICAgIHZhciBwc3NCYXNlID0gMDsKKyAgICAgIHRyLmIuaXRlckl0ZW1zKHBpZFRvUG9pbnRzLCBmdW5jdGlvbihwaWQsIHBvaW50cykgeworICAgICAgICB2YXIgcHJvY2Vzc01lbW9yeUR1bXAgPSBnbG9iYWxEdW1wLnByb2Nlc3NNZW1vcnlEdW1wc1twaWRdOworICAgICAgICB2YXIgcHNzOworICAgICAgICBpZiAocHJvY2Vzc01lbW9yeUR1bXAgPT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIC8vIElmIG5vIGR1bXAgd2FzIGZvdW5kLCBhc3N1bWUgdGhhdCB0aGUgcHJvY2VzcyBpcyBkZWFkLgorICAgICAgICAgIHBzcyA9IDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcHNzID0gcHJvY2Vzc01lbW9yeUR1bXAuZ2V0TW9zdFJlY2VudFRvdGFsVm1SZWdpb25TdGF0KAorICAgICAgICAgICAgICAncHJvcG9ydGlvbmFsUmVzaWRlbnQnKTsKKyAgICAgICAgICBpZiAocHNzID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBkdW1wIGRvZXMgbm90IHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiAobmFtZWx5CisgICAgICAgICAgICAvLyBtb3N0IHJlY2VudCBWTSByZWdpb25zKSwgYXNzdW1lIHplcm8uCisgICAgICAgICAgICBwc3MgPSAwOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB2YXIgY3VtdWxhdGl2ZVBzcyA9IHBzc0Jhc2UgKyBwc3M7CisgICAgICAgIHBvaW50cy5wdXNoKG5ldyB0ci51aS50cmFja3MuQ2hhcnRQb2ludCgKKyAgICAgICAgICAgIGdsb2JhbER1bXAsIGdsb2JhbER1bXAuc3RhcnQsIGN1bXVsYXRpdmVQc3MsIHBzc0Jhc2UpKTsKKyAgICAgICAgcHNzQmFzZSA9IGN1bXVsYXRpdmVQc3M7CisgICAgICB9KTsKKyAgICB9KTsKKworICAgIC8vIENyZWF0ZSBvbmUgY29tbW9uIGF4aXMgZm9yIGFsbCB1c2VkIG1lbW9yeSBjaGFydCBzZXJpZXMuCisgICAgdmFyIGF4aXMgPSBuZXcgdHIudWkudHJhY2tzLkNoYXJ0QXhpcygwKTsKKworICAgIC8vIEJ1aWxkIGEgY2hhcnQgc2VyaWVzIGZvciBlYWNoIGluc3RydW1lbnRlZCBwcm9jZXNzLgorICAgIHZhciBzZXJpZXMgPSBbXTsKKyAgICB0ci5iLml0ZXJJdGVtcyhwaWRUb1BvaW50cywgZnVuY3Rpb24ocGlkLCBwb2ludHMpIHsKKyAgICAgIHZhciBwcm9jZXNzID0gcGlkVG9Qcm9jZXNzW3BpZF07CisgICAgICB2YXIgY29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvckdlbmVyYWxQdXJwb3NlU3RyaW5nKAorICAgICAgICAgIHByb2Nlc3MudXNlckZyaWVuZGx5TmFtZSk7CisgICAgICB2YXIgcmVuZGVyaW5nQ29uZmlnID0geworICAgICAgICBjaGFydFR5cGU6IHRyLnVpLnRyYWNrcy5DaGFydFNlcmllc1R5cGUuQVJFQSwKKyAgICAgICAgY29sb3JJZDogY29sb3JJZCwKKyAgICAgICAgYmFja2dyb3VuZE9wYWNpdHk6IDAuOAorICAgICAgfTsKKyAgICAgIHNlcmllcy5wdXNoKG5ldyB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXMocG9pbnRzLCBheGlzLCByZW5kZXJpbmdDb25maWcpKTsKKyAgICB9KTsKKworICAgIC8vIFNob3cgdGhlIGZpcnN0IHNlcmllcyAod2l0aCB0aGUgc21hbGxlc3QgY3VtdWxhdGl2ZSB2YWx1ZSkgYXQgdGhlIHRvcC4KKyAgICBzZXJpZXMucmV2ZXJzZSgpOworCisgICAgcmV0dXJuIHNlcmllczsKKyAgfQorCisgIC8qKgorICAgKiBDb252ZXJ0IGEgbGlzdCBvZiBwcm9jZXNzIG1lbW9yeSBkdW1wcyB0byBhIGxpc3Qgb2YgY2hhcnQgc2VyaWVzIChvbmUgcGVyCisgICAqIHJvb3QgYWxsb2NhdG9yKS4gRWFjaCBzZXJpZXMgcmVwcmVzZW50cyB0aGUgZXZvbHV0aW9uIG9mIHRoZSBzaXplIG9mIGEgdGhlCisgICAqIGNvcnJlc3BvbmRpbmcgcm9vdCBhbGxvY2F0b3IgKGUuZy4gJ3Y4Jykgb3ZlciB0aW1lLgorICAgKi8KKyAgZnVuY3Rpb24gYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMocHJvY2Vzc01lbW9yeUR1bXBzKSB7CisgICAgcmV0dXJuIGJ1aWxkQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMocHJvY2Vzc01lbW9yeUR1bXBzLAorICAgICAgICBnZXRQcm9jZXNzTWVtb3J5RHVtcEFsbG9jYXRvclNpemVzKTsKKyAgfQorCisgIC8qKgorICAgKiBDb252ZXJ0IGEgbGlzdCBvZiBnbG9iYWwgbWVtb3J5IGR1bXBzIHRvIGEgbGlzdCBvZiBjaGFydCBzZXJpZXMgKG9uZSBwZXIKKyAgICogcm9vdCBhbGxvY2F0b3IpLiBFYWNoIHNlcmllcyByZXByZXNlbnRzIHRoZSBldm9sdXRpb24gb2YgdGhlIHNpemUgb2YgYSB0aGUKKyAgICogY29ycmVzcG9uZGluZyByb290IGFsbG9jYXRvciAoZS5nLiAndjgnKSBvdmVyIHRpbWUuCisgICAqLworICBmdW5jdGlvbiBidWlsZEdsb2JhbEFsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKGdsb2JhbE1lbW9yeUR1bXBzKSB7CisgICAgcmV0dXJuIGJ1aWxkQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMoZ2xvYmFsTWVtb3J5RHVtcHMsCisgICAgICAgIGdldEdsb2JhbE1lbW9yeUR1bXBBbGxvY2F0b3JTaXplcyk7CisgIH0KKworICByZXR1cm4geworICAgIGJ1aWxkTWVtb3J5TGV0dGVyRG90czoKKyAgICAgICAgYnVpbGRNZW1vcnlMZXR0ZXJEb3RzLAorICAgIGJ1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzOgorICAgICAgICBidWlsZEdsb2JhbFVzZWRNZW1vcnlDaGFydFNlcmllcywKKyAgICBidWlsZFByb2Nlc3NBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllczoKKyAgICAgICAgYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMsCisgICAgYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllczoKKyAgICAgICAgYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWxfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvbWVtb3J5X2R1bXBfdHJhY2tfdXRpbF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhlOTNlMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWxfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9tZW1vcnlfZHVtcF90cmFja191dGlsLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7CisgIHZhciBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHMgPSB0ci51aS50cmFja3MuY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzOworICB2YXIgY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wcyA9IHRyLnVpLnRyYWNrcy5jcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzOworCisgIHRlc3QoJ2J1aWxkTWVtb3J5TGV0dGVyRG90c193aXRob3V0Vk1SZWdpb25zJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGR1bXBzID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzKGZhbHNlLCBmYWxzZSk7CisgICAgdmFyIGl0ZW1zID0gdHIudWkudHJhY2tzLmJ1aWxkTWVtb3J5TGV0dGVyRG90cyhkdW1wcyk7CisKKyAgICBhc3NlcnQubGVuZ3RoT2YoaXRlbXMsIDQpOworICAgIGFzc2VydC5lcXVhbChpdGVtc1swXS5zdGFydCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzFdLnN0YXJ0LCA1KTsKKyAgICBhc3NlcnQuZXF1YWwoaXRlbXNbMl0uc3RhcnQsIDE1KTsKKyAgICBhc3NlcnQuZXF1YWwoaXRlbXNbM10uc3RhcnQsIDE4KTsKKworICAgIC8vIENoZWNrIG1vZGVsIG1hcHBpbmcuCisgICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzFdLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShpdGVtc1syXS5zZWxlY3RlZCk7CisgICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzNdLm1vZGVsSXRlbSwgZHVtcHNbM10pOworICB9KTsKKworICB0ZXN0KCdidWlsZE1lbW9yeUxldHRlckRvdHNfd2l0aFZNUmVnaW9ucycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyhmYWxzZSwgZmFsc2UpOworICAgIHZhciBpdGVtcyA9IHRyLnVpLnRyYWNrcy5idWlsZE1lbW9yeUxldHRlckRvdHMoZHVtcHMpOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKGl0ZW1zLCA0KTsKKyAgICBhc3NlcnQuZXF1YWwoaXRlbXNbMF0uc3RhcnQsIDApOworICAgIGFzc2VydC5lcXVhbChpdGVtc1sxXS5zdGFydCwgNSk7CisgICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzJdLnN0YXJ0LCAxNSk7CisgICAgYXNzZXJ0LmVxdWFsKGl0ZW1zWzNdLnN0YXJ0LCAxOCk7CisKKyAgICAvLyBDaGVjayBtb2RlbCBtYXBwaW5nLgorICAgIGFzc2VydC5lcXVhbChpdGVtc1sxXS5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQpOworICAgIGFzc2VydC5pc1RydWUoaXRlbXNbMl0uc2VsZWN0ZWQpOworICAgIGFzc2VydC5lcXVhbChpdGVtc1szXS5tb2RlbEl0ZW0sIGR1bXBzWzNdKTsKKyAgfSk7CisKKyAgdGVzdCgnYnVpbGRHbG9iYWxVc2VkTWVtb3J5Q2hhcnRTZXJpZXNfd2l0aG91dFZNUmVnaW9ucycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyhmYWxzZSwgZmFsc2UpOworICAgIHZhciBzZXJpZXMgPSB0ci51aS50cmFja3MuYnVpbGRHbG9iYWxVc2VkTWVtb3J5Q2hhcnRTZXJpZXMoZHVtcHMpOworCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHNlcmllcyk7CisgIH0pOworCisgIHRlc3QoJ2J1aWxkR2xvYmFsVXNlZE1lbW9yeUNoYXJ0U2VyaWVzX3dpdGhWTVJlZ2lvbnMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZHVtcHMgPSBjcmVhdGVUZXN0R2xvYmFsTWVtb3J5RHVtcHModHJ1ZSwgZmFsc2UpOworICAgIHZhciBzZXJpZXMgPSB0ci51aS50cmFja3MuYnVpbGRHbG9iYWxVc2VkTWVtb3J5Q2hhcnRTZXJpZXMoZHVtcHMpOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlcmllcywgMyk7CisKKyAgICB2YXIgc2EgPSBzZXJpZXNbMl07CisgICAgdmFyIHNiID0gc2VyaWVzWzFdOworICAgIHZhciBzYyA9IHNlcmllc1swXTsKKworICAgIGFzc2VydC5sZW5ndGhPZihzYS5wb2ludHMsIDQpOworICAgIGFzc2VydC5sZW5ndGhPZihzYi5wb2ludHMsIDQpOworICAgIGFzc2VydC5sZW5ndGhPZihzYy5wb2ludHMsIDQpOworCisgICAgLy8gUHJvY2VzcyBBOiBWTSByZWdpb25zIGRlZmluZWQgLT4gc3VtIHRoZWlyIFBTUyB2YWx1ZXMgKDExMSkuCisgICAgLy8gUHJvY2VzcyBCOiBWTSByZWdpb25zIHVuZGVmaW5lZCBhbmQgbm8gcHJldmlvdXMgdmFsdWUgLT4gYXNzdW1lIHplcm8uCisgICAgLy8gUHJvY2VzcyBDOiBNZW1vcnkgZHVtcCBub3QgcHJlc2VudCAtPiBhc3N1bWUgcHJvY2VzcyBub3QgYWxpdmUgKDApLgorICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMF0ueCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1swXS54LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2MucG9pbnRzWzBdLngsIDApOworICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMF0ueSwgMTExKTsKKyAgICBhc3NlcnQuZXF1YWwoc2IucG9pbnRzWzBdLnksIDExMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1swXS55LCAxMTEpOworICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMF0ueUJhc2UsIDApOworICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbMF0ueUJhc2UsIDExMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1swXS55QmFzZSwgMTExKTsKKworICAgIC8vIFByb2Nlc3MgQTogVk0gcmVnaW9ucyB1bmRlZmluZWQgLT4gYXNzdW1lIHByZXZpb3VzIHZhbHVlICgxMTEpLgorICAgIC8vIFByb2Nlc3MgQjogVk0gcmVnaW9ucyBkZWZpbmVkIC0+IHN1bSB0aGVpciBQU1MgdmFsdWVzICg1NTUpLgorICAgIC8vIFByb2Nlc3MgQzogVk0gcmVnaW9ucyB1bmRlZmluZWQgLT4gYXNzdW1lIHByZXZpb3VzIHZhbHVlICgwKS4KKyAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLngsIDUpOworICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbMV0ueCwgNSk7CisgICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1sxXS54LCA1KTsKKyAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLnksIDExMSk7CisgICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1sxXS55LCAyNjEpOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbMV0ueSwgMjYxKTsKKyAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLnlCYXNlLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2IucG9pbnRzWzFdLnlCYXNlLCAxMTEpOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbMV0ueUJhc2UsIDI2MSk7CisKKyAgICAvLyBQcm9jZXNzIEE6IFZNIHJlZ2lvbnMgZGVmaW5lZCAtPiBzdW0gdGhlaXIgUFNTIHZhbHVlcyAoMCkuCisgICAgLy8gUHJvY2VzcyBCOiBNZW1vcnkgZHVtcCBub3QgcHJlc2VudCAtPiBhc3N1bWUgcHJvY2VzcyBub3QgYWxpdmUgKDApLgorICAgIC8vIFByb2Nlc3MgQzogVk0gcmVnaW9ucyBkZWZpbmVkIC0+IHN1bSB0aGVpciBQU1MgdmFsdWVzICg5OTkpLgorICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMl0ueCwgMTUpOworICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbMl0ueCwgMTUpOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbMl0ueCwgMTUpOworICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbMl0ueSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1syXS55LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2MucG9pbnRzWzJdLnksIDIxMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNhLnBvaW50c1syXS55QmFzZSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1syXS55QmFzZSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNjLnBvaW50c1syXS55QmFzZSwgMCk7CisKKyAgICAvLyBBbGwgcHJvY2Vzc2VzOiBNZW1vcnkgZHVtcCBub3QgcHJlc2VudCAtPiBhc3N1bWUgcHJvY2VzcyBub3QgYWxpdmUgKDApLgorICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbM10ueCwgMTgpOworICAgIGFzc2VydC5lcXVhbChzYi5wb2ludHNbM10ueCwgMTgpOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueCwgMTgpOworICAgIGFzc2VydC5lcXVhbChzYS5wb2ludHNbM10ueSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHNiLnBvaW50c1szXS55LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc2MucG9pbnRzWzNdLnksIDApOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueUJhc2UsIDApOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueUJhc2UsIDApOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ueUJhc2UsIDApOworCisgICAgLy8gQ2hlY2sgbW9kZWwgbWFwcGluZy4KKyAgICBhc3NlcnQuZXF1YWwoc2EucG9pbnRzWzFdLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzYi5wb2ludHNbMl0uc2VsZWN0ZWQpOworICAgIGFzc2VydC5lcXVhbChzYy5wb2ludHNbM10ubW9kZWxJdGVtLCBkdW1wc1szXSk7CisgIH0pOworCisgIHRlc3QoJ2J1aWxkR2xvYmFsQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXNfd2l0aG91dE1lbW9yeUFsbG9jYXRvckR1bXBzJywKKyAgICAgIGZ1bmN0aW9uKCkgeworICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RHbG9iYWxNZW1vcnlEdW1wcyhmYWxzZSwgZmFsc2UpOworICAgIHZhciBzZXJpZXMgPSB0ci51aS50cmFja3MuYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllcyhkdW1wcyk7CisKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoc2VyaWVzKTsKKyAgfSk7CisKKyAgdGVzdCgnYnVpbGRHbG9iYWxBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllc193aXRoTWVtb3J5QWxsb2NhdG9yRHVtcHMnLAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgdmFyIGR1bXBzID0gY3JlYXRlVGVzdEdsb2JhbE1lbW9yeUR1bXBzKGZhbHNlLCB0cnVlKTsKKyAgICB2YXIgc2VyaWVzID0gdHIudWkudHJhY2tzLmJ1aWxkR2xvYmFsQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMoZHVtcHMpOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNlcmllcywgMik7CisKKyAgICB2YXIgc28gPSBzZXJpZXNbMF07CisgICAgdmFyIHN2ID0gc2VyaWVzWzFdOworCisgICAgYXNzZXJ0Lmxlbmd0aE9mKHNvLnBvaW50cywgNCk7CisgICAgYXNzZXJ0Lmxlbmd0aE9mKHN2LnBvaW50cywgNCk7CisKKyAgICAvLyBPaWxwYW46IE9ubHkgcHJvY2VzcyBCIGR1bXBzIGFsbG9jYXRlZCBvYmplY3RzIHNpemUgKDEwMjQpLgorICAgIC8vIFY4OiBObyBwcm9jZXNzIGR1bXBzIGFsbG9jYXRlZCBvYmplY3RzIHNpemUgKDApLgorICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMF0ueCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN2LnBvaW50c1swXS54LCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzBdLnksIDEwMjQpOworICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMF0ueSwgMCk7CisKKyAgICAvLyBPaWxwYW46IFByb2Nlc3MgQiBkaWQgbm90IHByb3ZpZGUgYSB2YWx1ZSBhbmQgcHJvY2VzcyBDIGR1bXBzICgxMjgpLgorICAgIC8vIFY4OiBQcm9jZXNzZXMgQiBhbmQgQyBkdW1wICg1MTIgKyAyNTYpLgorICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMV0ueCwgNSk7CisgICAgYXNzZXJ0LmVxdWFsKHN2LnBvaW50c1sxXS54LCA1KTsKKyAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzFdLnksIDEyOCk7CisgICAgYXNzZXJ0LmVxdWFsKHN2LnBvaW50c1sxXS55LCA3NjgpOworCisgICAgLy8gT2lscGFuOiBQcm9jZXNzIEIgYXNzdW1lZCBub3QgYWxpdmUgYW5kIHByb2Nlc3MgQyBkdW1wcyAoNTEyKQorICAgIC8vIFY4OiBQcm9jZXNzIEEgZHVtcHMgbm93LCBwcm9jZXNzIEIgYXNzdW1lZCBub3QgYWxpdmUsIHByb2Nlc3MgQyBkaWQgbm90CisgICAgLy8gcHJvdmlkZSBhIHZhbHVlICg3NjgpLgorICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMl0ueCwgMTUpOworICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMl0ueCwgMTUpOworICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMl0ueSwgNTEyKTsKKyAgICBhc3NlcnQuZXF1YWwoc3YucG9pbnRzWzJdLnksIDc2OCk7CisKKyAgICAvLyBBbGwgcHJvY2Vzc2VzOiBNZW1vcnkgZHVtcCBub3QgcHJlc2VudCAtPiBhc3N1bWUgcHJvY2VzcyBub3QgYWxpdmUgKDApLgorICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbM10ueCwgMTgpOworICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbM10ueCwgMTgpOworICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbM10ueSwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN2LnBvaW50c1szXS55LCAwKTsKKworICAgIC8vIENoZWNrIG1vZGVsIG1hcHBpbmcuCisgICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1sxXS5zZWxlY3Rpb25TdGF0ZSwgU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQpOworICAgIGFzc2VydC5pc1RydWUoc3YucG9pbnRzWzJdLnNlbGVjdGVkKTsKKyAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzNdLm1vZGVsSXRlbSwgZHVtcHNbM10pOworICB9KTsKKworICB0ZXN0KCdidWlsZFByb2Nlc3NBbGxvY2F0ZWRNZW1vcnlDaGFydFNlcmllc193aXRob3V0TWVtb3J5QWxsb2NhdG9yRHVtcHMnLAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgdmFyIGR1bXBzID0gY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wcyhmYWxzZSwgZmFsc2UpOworICAgIHZhciBzZXJpZXMgPSB0ci51aS50cmFja3MuYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMoZHVtcHMpOworCisgICAgYXNzZXJ0LmlzVW5kZWZpbmVkKHNlcmllcyk7CisgIH0pOworCisgIHRlc3QoJ2J1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzX3dpdGhNZW1vcnlBbGxvY2F0b3JEdW1wcycsCisgICAgICBmdW5jdGlvbigpIHsKKyAgICB2YXIgZHVtcHMgPSBjcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzKGZhbHNlLCB0cnVlKTsKKyAgICB2YXIgc2VyaWVzID0gdHIudWkudHJhY2tzLmJ1aWxkUHJvY2Vzc0FsbG9jYXRlZE1lbW9yeUNoYXJ0U2VyaWVzKGR1bXBzKTsKKworICAgIC8vIFRoZXJlIHNob3VsZCBiZSBvbmx5IDIgc2VyaWVzIChiZWNhdXNlICd0cmFjaW5nJyBpcyBub3Qgc2hvd24gaW4gdGhlCisgICAgLy8gY2hhcnRzKS4KKyAgICBhc3NlcnQubGVuZ3RoT2Yoc2VyaWVzLCAyKTsKKworICAgIHZhciBzbyA9IHNlcmllc1swXTsKKyAgICB2YXIgc3YgPSBzZXJpZXNbMV07CisKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc28ucG9pbnRzLCAyKTsKKyAgICBhc3NlcnQubGVuZ3RoT2Yoc3YucG9pbnRzLCAyKTsKKworICAgIC8vIE9pbHBhbjogUHJvY2VzcyBkdW1wcyAoMTI4KS4KKyAgICAvLyBWODogUHJvY2VzcyBkdW1wcyAoMjU2KS4KKyAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzBdLngsIDUuMTIpOworICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMF0ueCwgNS4xMik7CisgICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1swXS55LCAxMjgpOworICAgIGFzc2VydC5lcXVhbChzdi5wb2ludHNbMF0ueSwgMjU2KTsKKworICAgIC8vIE9pbHBhbjogUHJvY2VzcyBkdW1wcyAoNTEyKS4KKyAgICAvLyBWODogUHJvY2VzcyBkaWQgbm90IHByb3ZpZGUgYSB2YWx1ZSAoMCkuCisgICAgYXNzZXJ0LmVxdWFsKHNvLnBvaW50c1sxXS54LCAxNC41KTsKKyAgICBhc3NlcnQuZXF1YWwoc3YucG9pbnRzWzFdLngsIDE0LjUpOworICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMV0ueSwgNTEyKTsKKyAgICBhc3NlcnQuZXF1YWwoc3YucG9pbnRzWzFdLnksIDApOworCisgICAgLy8gQ2hlY2sgbW9kZWwgbWFwcGluZy4KKyAgICBhc3NlcnQuZXF1YWwoc28ucG9pbnRzWzFdLnNlbGVjdGlvblN0YXRlLCBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCk7CisgICAgYXNzZXJ0LmlzVHJ1ZShzdi5wb2ludHNbMF0uc2VsZWN0ZWQpOworICAgIGFzc2VydC5lcXVhbChzby5wb2ludHNbMV0ubW9kZWxJdGVtLCBkdW1wc1sxXSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL21vZGVsX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9tb2RlbF90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMzI4MGEKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9tb2RlbF90cmFjay5odG1sCkBAIC0wLDAgKzEsNDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RyYXdfaGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2FsZXJ0X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZGV2aWNlX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvZ2xvYmFsX21lbW9yeV9kdW1wX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvaGlnaGxpZ2h0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9pbnRlcmFjdGlvbl90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2tlcm5lbF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3Byb2Nlc3NfdHJhY2suaHRtbCI+CisKKzxzdHlsZT4KKy5tb2RlbC10cmFjayB7CisgIC13ZWJraXQtYm94LWZsZXg6IDE7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIHZhciBTZWxlY3Rpb25TdGF0ZSA9IHRyLm1vZGVsLlNlbGVjdGlvblN0YXRlOworICB2YXIgRXZlbnRQcmVzZW50ZXIgPSB0ci51aS5iLkV2ZW50UHJlc2VudGVyOworCisgIC8qKgorICAgKiBWaXN1YWxpemVzIGEgTW9kZWwgYnkgYnVpbGRpbmcgUHJvY2Vzc1RyYWNrcyBhbmQgQ3B1VHJhY2tzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBNb2RlbFRyYWNrID0gdHIudWkuYi5kZWZpbmUoJ21vZGVsLXRyYWNrJywgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrKTsKKworCisgIE1vZGVsVHJhY2sucHJvdG90eXBlID0geworCisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdtb2RlbC10cmFjaycpOworCisgICAgICB2YXIgdHlwZUluZm9zID0gdHIudWkudHJhY2tzLkhpZ2hsaWdodGVyLmdldEFsbFJlZ2lzdGVyZWRUeXBlSW5mb3MoKTsKKyAgICAgIHRoaXMuaGlnaGxpZ2h0ZXJzXyA9IHR5cGVJbmZvcy5tYXAoCisgICAgICAgIGZ1bmN0aW9uKHR5cGVJbmZvKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyB0eXBlSW5mby5jb25zdHJ1Y3Rvcih2aWV3cG9ydCk7CisgICAgICAgIH0pOworCisgICAgICB0aGlzLnVwcGVyTW9kZV8gPSBmYWxzZTsKKyAgICAgIHRoaXMuYW5ub3RhdGlvblZpZXdzXyA9IFtdOworICAgIH0sCisKKyAgICAvLyB1cHBlck1vZGUgaXMgdHJ1ZSBpZiB0aGUgdHJhY2sgaXMgYmVpbmcgdXNlZCBvbiB0aGUgcnVsZXIuCisgICAgZ2V0IHVwcGVyTW9kZSgpIHsKKyAgICAgIHJldHVybiB0aGlzLnVwcGVyTW9kZV87CisgICAgfSwKKworICAgIHNldCB1cHBlck1vZGUodXBwZXJNb2RlKSB7CisgICAgICB0aGlzLnVwcGVyTW9kZV8gPSB1cHBlck1vZGU7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBkZXRhY2g6IGZ1bmN0aW9uKCkgeworICAgICAgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKTsKKyAgICB9LAorCisgICAgZ2V0IG1vZGVsKCkgeworICAgICAgcmV0dXJuIHRoaXMubW9kZWxfOworICAgIH0sCisKKyAgICBzZXQgbW9kZWwobW9kZWwpIHsKKyAgICAgIHRoaXMubW9kZWxfID0gbW9kZWw7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworCisgICAgICB0aGlzLm1vZGVsXy5hZGRFdmVudExpc3RlbmVyKCdhbm5vdGF0aW9uQ2hhbmdlJywKKyAgICAgICAgICB0aGlzLnVwZGF0ZUFubm90YXRpb25zXy5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgZ2V0IGhhc1Zpc2libGVDb250ZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMDsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMudGV4dENvbnRlbnQgPSAnJzsKKyAgICAgIGlmICghdGhpcy5tb2RlbF8pCisgICAgICAgIHJldHVybjsKKworICAgICAgaWYgKHRoaXMudXBwZXJNb2RlXykKKyAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c0ZvclVwcGVyTW9kZV8oKTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c0Zvckxvd2VyTW9kZV8oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNGb3JVcHBlck1vZGVfOiBmdW5jdGlvbigpIHsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNGb3JMb3dlck1vZGVfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLm1vZGVsXy5pbnRlcmFjdGlvbl9yZWNvcmRzLmxlbmd0aCkgeworICAgICAgICB2YXIgbXJ0ID0gbmV3IHRyLnVpLnRyYWNrcy5JbnRlcmFjdGlvblRyYWNrKHRoaXMudmlld3BvcnRfKTsKKyAgICAgICAgbXJ0Lm1vZGVsID0gdGhpcy5tb2RlbF87CisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobXJ0KTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMubW9kZWxfLmFsZXJ0cy5sZW5ndGgpIHsKKyAgICAgICAgdmFyIGF0ID0gbmV3IHRyLnVpLnRyYWNrcy5BbGVydFRyYWNrKHRoaXMudmlld3BvcnRfKTsKKyAgICAgICAgYXQuYWxlcnRzID0gdGhpcy5tb2RlbF8uYWxlcnRzOworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKGF0KTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMubW9kZWxfLmdsb2JhbE1lbW9yeUR1bXBzLmxlbmd0aCkgeworICAgICAgICB2YXIgZ21kdCA9IG5ldyB0ci51aS50cmFja3MuR2xvYmFsTWVtb3J5RHVtcFRyYWNrKHRoaXMudmlld3BvcnRfKTsKKyAgICAgICAgZ21kdC5tZW1vcnlEdW1wcyA9IHRoaXMubW9kZWxfLmdsb2JhbE1lbW9yeUR1bXBzOworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKGdtZHQpOworICAgICAgfQorCisgICAgICB0aGlzLmFwcGVuZERldmljZVRyYWNrXygpOworICAgICAgdGhpcy5hcHBlbmRLZXJuZWxUcmFja18oKTsKKworICAgICAgLy8gR2V0IGEgc29ydGVkIGxpc3Qgb2YgcHJvY2Vzc2VzLgorICAgICAgdmFyIHByb2Nlc3NlcyA9IHRoaXMubW9kZWxfLmdldEFsbFByb2Nlc3NlcygpOworICAgICAgcHJvY2Vzc2VzLnNvcnQodHIubW9kZWwuUHJvY2Vzcy5jb21wYXJlKTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9jZXNzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb2Nlc3MgPSBwcm9jZXNzZXNbaV07CisKKyAgICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5Qcm9jZXNzVHJhY2sodGhpcy52aWV3cG9ydCk7CisgICAgICAgIHRyYWNrLnByb2Nlc3MgPSBwcm9jZXNzOworICAgICAgICBpZiAoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQorICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgfQorICAgICAgdGhpcy52aWV3cG9ydF8ucmVidWlsZEV2ZW50VG9UcmFja01hcCgpOworICAgICAgdGhpcy52aWV3cG9ydF8ucmVidWlsZENvbnRhaW5lclRvVHJhY2tNYXAoKTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmhpZ2hsaWdodGVyc18ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdGhpcy5oaWdobGlnaHRlcnNfW2ldLnByb2Nlc3NNb2RlbCh0aGlzLm1vZGVsXyk7CisgICAgICB9CisKKyAgICAgIHRoaXMudXBkYXRlQW5ub3RhdGlvbnNfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUFubm90YXRpb25zXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmFubm90YXRpb25WaWV3c18gPSBbXTsKKyAgICAgIHZhciBhbm5vdGF0aW9ucyA9IHRoaXMubW9kZWxfLmdldEFsbEFubm90YXRpb25zKCk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFubm90YXRpb25zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHRoaXMuYW5ub3RhdGlvblZpZXdzXy5wdXNoKAorICAgICAgICAgICAgYW5ub3RhdGlvbnNbaV0uZ2V0T3JDcmVhdGVWaWV3KHRoaXMudmlld3BvcnRfKSk7CisgICAgICB9CisgICAgICB0aGlzLmludmFsaWRhdGVEcmF3aW5nQ29udGFpbmVyKCk7CisgICAgfSwKKworICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgeworICAgICAgaWYgKCF0aGlzLm1vZGVsXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgdHJhY2tzID0gdGhpcy5jaGlsZHJlbjsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJhY2tzLmxlbmd0aDsgKytpKQorICAgICAgICB0cmFja3NbaV0uYWRkRXZlbnRzVG9UcmFja01hcChldmVudFRvVHJhY2tNYXApOworCisgICAgICBpZiAodGhpcy5pbnN0YW50RXZlbnRzID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydF87CisgICAgICB0aGlzLmluc3RhbnRFdmVudHMuZm9yRWFjaChmdW5jdGlvbihldikgeworICAgICAgICBldmVudFRvVHJhY2tNYXAuYWRkRXZlbnQoZXYsIHRoaXMpOworICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKKyAgICAgIHZhciB0cmFja3MgPSB0aGlzLmNoaWxkcmVuOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFja3MubGVuZ3RoOyArK2kpCisgICAgICAgIHRyYWNrc1tpXS5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrTWFwKTsKKyAgICB9LAorCisgICAgYXBwZW5kRGV2aWNlVHJhY2tfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBkZXZpY2UgPSB0aGlzLm1vZGVsLmRldmljZTsKKyAgICAgIHZhciB0cmFjayA9IG5ldyB0ci51aS50cmFja3MuRGV2aWNlVHJhY2sodGhpcy52aWV3cG9ydCk7CisgICAgICB0cmFjay5kZXZpY2UgPSB0aGlzLm1vZGVsLmRldmljZTsKKyAgICAgIGlmICghdHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgIH0sCisKKyAgICBhcHBlbmRLZXJuZWxUcmFja186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGtlcm5lbCA9IHRoaXMubW9kZWwua2VybmVsOworICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5LZXJuZWxUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgIHRyYWNrLmtlcm5lbCA9IHRoaXMubW9kZWwua2VybmVsOworICAgICAgaWYgKCF0cmFjay5oYXNWaXNpYmxlQ29udGVudCkKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7CisgICAgfSwKKworICAgIGRyYXdUcmFjazogZnVuY3Rpb24odHlwZSkgeworICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOworICAgICAgaWYgKCF0aGlzLm1vZGVsXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBjYW52YXNCb3VuZHMgPSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworCisgICAgICBjdHguc2F2ZSgpOworICAgICAgY3R4LnRyYW5zbGF0ZSgwLCBwaXhlbFJhdGlvICogKGJvdW5kcy50b3AgLSBjYW52YXNCb3VuZHMudG9wKSk7CisKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisgICAgICB2YXIgdmlld0xXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCgwKTsKKyAgICAgIHZhciB2aWV3UldvcmxkID0gZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW8pOworCisgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuR1JJRDoKKyAgICAgICAgICB0aGlzLnZpZXdwb3J0LmRyYXdNYWpvck1hcmtMaW5lcyhjdHgpOworICAgICAgICAgIC8vIFRoZSBtb2RlbCBpcyB0aGUgb25seSB0aGluZyB0aGF0IGRyYXdzIGdyaWQgbGluZXMuCisgICAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuRkxPV19BUlJPV1M6CisgICAgICAgICAgaWYgKHRoaXMubW9kZWxfLmZsb3dJbnRlcnZhbFRyZWUuc2l6ZSA9PT0gMCkgeworICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB0aGlzLmRyYXdGbG93QXJyb3dzXyh2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKKyAgICAgICAgICBjdHgucmVzdG9yZSgpOworICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIHRyLnVpLnRyYWNrcy5EcmF3VHlwZS5JTlNUQU5UX0VWRU5UOgorICAgICAgICAgIGlmICghdGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cyB8fAorICAgICAgICAgICAgICB0aGlzLm1vZGVsXy5pbnN0YW50RXZlbnRzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgdHIudWkuYi5kcmF3SW5zdGFudFNsaWNlc0FzTGluZXMoCisgICAgICAgICAgICAgIGN0eCwKKyAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSwKKyAgICAgICAgICAgICAgdmlld0xXb3JsZCwKKyAgICAgICAgICAgICAgdmlld1JXb3JsZCwKKyAgICAgICAgICAgICAgYm91bmRzLmhlaWdodCwKKyAgICAgICAgICAgICAgdGhpcy5tb2RlbF8uaW5zdGFudEV2ZW50cywKKyAgICAgICAgICAgICAgNCk7CisKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIHRyLnVpLnRyYWNrcy5EcmF3VHlwZS5NQVJLRVJTOgorICAgICAgICAgIGlmICghdGhpcy52aWV3cG9ydC5pbnRlcmVzdFJhbmdlLmlzRW1wdHkpIHsKKyAgICAgICAgICAgIHRoaXMudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5kcmF3KGN0eCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICAgICAgICB0aGlzLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuZHJhd0luZGljYXRvcnMoCisgICAgICAgICAgICAgICAgY3R4LCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKTsKKyAgICAgICAgICB9CisgICAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuSElHSExJR0hUUzoKKyAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaGlnaGxpZ2h0ZXJzXy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlcnNfW2ldLmRyYXdIaWdobGlnaHQoY3R4LCBkdCwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCwKKyAgICAgICAgICAgICAgICBib3VuZHMuaGVpZ2h0KTsKKyAgICAgICAgICB9CisgICAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSB0ci51aS50cmFja3MuRHJhd1R5cGUuQU5OT1RBVElPTlM6CisgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmFubm90YXRpb25WaWV3c18ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRoaXMuYW5ub3RhdGlvblZpZXdzX1tpXS5kcmF3KGN0eCk7CisgICAgICAgICAgfQorICAgICAgICAgIGN0eC5yZXN0b3JlKCk7CisgICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgY3R4LnJlc3RvcmUoKTsKKworICAgICAgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kcmF3VHJhY2suY2FsbCh0aGlzLCB0eXBlKTsKKyAgICB9LAorCisgICAgZHJhd0Zsb3dBcnJvd3NfOiBmdW5jdGlvbih2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7CisgICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7CisgICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworICAgICAgZHQuYXBwbHlUcmFuc2Zvcm1Ub0NhbnZhcyhjdHgpOworCisgICAgICB2YXIgcGl4V2lkdGggPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoMSk7CisKKyAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDAsIDAsIDAsIDAuNCknOworICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDAsIDAsIDAuNCknOworICAgICAgY3R4LmxpbmVXaWR0aCA9IHBpeFdpZHRoID4gMS4wID8gMSA6IHBpeFdpZHRoOworCisgICAgICB2YXIgZXZlbnRzID0KKyAgICAgICAgICB0aGlzLm1vZGVsXy5mbG93SW50ZXJ2YWxUcmVlLmZpbmRJbnRlcnNlY3Rpb24odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisKKyAgICAgIC8vIFdoZW4gbm90IHNob3dpbmcgZmxvdyBldmVudHMsIHNob3cgb25seSBoaWdobGlnaHRlZC9zZWxlY3RlZCBvbmVzLgorICAgICAgdmFyIG9ubHlIaWdobGlnaHRlZCA9ICF0aGlzLnZpZXdwb3J0LnNob3dGbG93RXZlbnRzOworICAgICAgdmFyIGNhbnZhc0JvdW5kcyA9IGN0eC5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAob25seUhpZ2hsaWdodGVkICYmCisgICAgICAgICAgICBldmVudHNbaV0uc2VsZWN0aW9uU3RhdGUgIT09IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEICYmCisgICAgICAgICAgICBldmVudHNbaV0uc2VsZWN0aW9uU3RhdGUgIT09IFNlbGVjdGlvblN0YXRlLkhJR0hMSUdIVEVEKQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0aGlzLmRyYXdGbG93QXJyb3dfKGN0eCwgZXZlbnRzW2ldLCBjYW52YXNCb3VuZHMsIHBpeFdpZHRoKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgZHJhd0Zsb3dBcnJvd186IGZ1bmN0aW9uKGN0eCwgZmxvd0V2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXNCb3VuZHMsIHBpeFdpZHRoKSB7CisgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisKKyAgICAgIHZhciBzdGFydFRyYWNrID0gdGhpcy52aWV3cG9ydC50cmFja0ZvckV2ZW50KGZsb3dFdmVudC5zdGFydFNsaWNlKTsKKyAgICAgIHZhciBlbmRUcmFjayA9IHRoaXMudmlld3BvcnQudHJhY2tGb3JFdmVudChmbG93RXZlbnQuZW5kU2xpY2UpOworCisgICAgICAvLyBUT0RPKG5kdWNhKTogRmlndXJlIG91dCBob3cgdG8gZHJhdyBmbG93IGFycm93cyBldmVuIHdoZW4KKyAgICAgIC8vIHByb2Nlc3NlcyBhcmUgY29sbGFwc2VkLCBidWcgIzkzMS4KKyAgICAgIGlmIChzdGFydFRyYWNrID09PSB1bmRlZmluZWQgfHwgZW5kVHJhY2sgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgc3RhcnRCb3VuZHMgPSBzdGFydFRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgdmFyIGVuZEJvdW5kcyA9IGVuZFRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworCisgICAgICBpZiAoZmxvd0V2ZW50LnNlbGVjdGlvblN0YXRlID09IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEKSB7CisgICAgICAgIGN0eC5zaGFkb3dCbHVyID0gMTsKKyAgICAgICAgY3R4LnNoYWRvd0NvbG9yID0gJ3JlZCc7CisgICAgICAgIGN0eC5zaGFkb3dPZmZzZXR5ID0gMjsKKyAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JlZCc7CisgICAgICB9IGVsc2UgaWYgKGZsb3dFdmVudC5zZWxlY3Rpb25TdGF0ZSA9PSBTZWxlY3Rpb25TdGF0ZS5ISUdITElHSFRFRCkgeworICAgICAgICBjdHguc2hhZG93Qmx1ciA9IDE7CisgICAgICAgIGN0eC5zaGFkb3dDb2xvciA9ICdyZWQnOworICAgICAgICBjdHguc2hhZG93T2Zmc2V0eSA9IDI7CisgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZWQnOworICAgICAgfSBlbHNlIGlmIChmbG93RXZlbnQuc2VsZWN0aW9uU3RhdGUgPT0gU2VsZWN0aW9uU3RhdGUuRElNTUVEKSB7CisgICAgICAgIGN0eC5zaGFkb3dCbHVyID0gMDsKKyAgICAgICAgY3R4LnNoYWRvd09mZnNldFggPSAwOworICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgwLCAwLCAwLCAwLjIpJzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBoYXNCb29zdCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhcnRTbGljZSA9IGZsb3dFdmVudC5zdGFydFNsaWNlOworICAgICAgICBoYXNCb29zdCB8PSBzdGFydFNsaWNlLnNlbGVjdGlvblN0YXRlID09PSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDsKKyAgICAgICAgaGFzQm9vc3QgfD0gc3RhcnRTbGljZS5zZWxlY3Rpb25TdGF0ZSA9PT0gU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQ7CisgICAgICAgIHZhciBlbmRTbGljZSA9IGZsb3dFdmVudC5lbmRTbGljZTsKKyAgICAgICAgaGFzQm9vc3QgfD0gZW5kU2xpY2Uuc2VsZWN0aW9uU3RhdGUgPT09IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEOworICAgICAgICBoYXNCb29zdCB8PSBlbmRTbGljZS5zZWxlY3Rpb25TdGF0ZSA9PT0gU2VsZWN0aW9uU3RhdGUuSElHSExJR0hURUQ7CisgICAgICAgIGlmIChoYXNCb29zdCkgeworICAgICAgICAgIGN0eC5zaGFkb3dCbHVyID0gMTsKKyAgICAgICAgICBjdHguc2hhZG93Q29sb3IgPSAncmdiYSgyNTUsIDAsIDAsIDAuNCknOworICAgICAgICAgIGN0eC5zaGFkb3dPZmZzZXR5ID0gMjsKKyAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgyNTUsIDAsIDAsIDAuNCknOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGN0eC5zaGFkb3dCbHVyID0gMDsKKyAgICAgICAgICBjdHguc2hhZG93T2Zmc2V0WCA9IDA7CisgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYmEoMCwgMCwgMCwgMC40KSc7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgdmFyIHN0YXJ0U2l6ZSA9IHN0YXJ0Qm91bmRzLmxlZnQgKyBzdGFydEJvdW5kcy50b3AgKworICAgICAgICAgIHN0YXJ0Qm91bmRzLmJvdHRvbSArIHN0YXJ0Qm91bmRzLnJpZ2h0OworICAgICAgdmFyIGVuZFNpemUgPSBlbmRCb3VuZHMubGVmdCArIGVuZEJvdW5kcy50b3AgKworICAgICAgICAgIGVuZEJvdW5kcy5ib3R0b20gKyBlbmRCb3VuZHMucmlnaHQ7CisgICAgICAvLyBOb3RoaW5nIHRvIGRvIGlmIGJvdGggZW5kcyBvZiB0aGUgdHJhY2sgYXJlIGNvbGxhcHNlZC4KKyAgICAgIGlmIChzdGFydFNpemUgPT09IDAgJiYgZW5kU2l6ZSA9PT0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB2YXIgc3RhcnRZID0gdGhpcy5jYWxjdWxhdGVUcmFja1lfKHN0YXJ0VHJhY2ssIGNhbnZhc0JvdW5kcyk7CisgICAgICB2YXIgZW5kWSA9IHRoaXMuY2FsY3VsYXRlVHJhY2tZXyhlbmRUcmFjaywgY2FudmFzQm91bmRzKTsKKworICAgICAgdmFyIHBpeGVsU3RhcnRZID0gcGl4ZWxSYXRpbyAqIHN0YXJ0WTsKKyAgICAgIHZhciBwaXhlbEVuZFkgPSBwaXhlbFJhdGlvICogZW5kWTsKKyAgICAgIHZhciBoYWxmID0gKGZsb3dFdmVudC5lbmQgLSBmbG93RXZlbnQuc3RhcnQpIC8gMjsKKworICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgY3R4Lm1vdmVUbyhmbG93RXZlbnQuc3RhcnQsIHBpeGVsU3RhcnRZKTsKKyAgICAgIGN0eC5iZXppZXJDdXJ2ZVRvKAorICAgICAgICAgIGZsb3dFdmVudC5zdGFydCArIGhhbGYsIHBpeGVsU3RhcnRZLAorICAgICAgICAgIGZsb3dFdmVudC5zdGFydCArIGhhbGYsIHBpeGVsRW5kWSwKKyAgICAgICAgICBmbG93RXZlbnQuZW5kLCBwaXhlbEVuZFkpOworICAgICAgY3R4LnN0cm9rZSgpOworCisgICAgICB2YXIgYXJyb3dXaWR0aCA9IDUgKiBwaXhXaWR0aCAqIHBpeGVsUmF0aW87CisgICAgICB2YXIgZGlzdGFuY2UgPSBmbG93RXZlbnQuZW5kIC0gZmxvd0V2ZW50LnN0YXJ0OworICAgICAgaWYgKGRpc3RhbmNlIDw9ICgyICogYXJyb3dXaWR0aCkpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHRpcFggPSBmbG93RXZlbnQuZW5kOworICAgICAgdmFyIHRpcFkgPSBwaXhlbEVuZFk7CisgICAgICB2YXIgYXJyb3dIZWlnaHQgPSAoZW5kQm91bmRzLmhlaWdodCAvIDQpICogcGl4ZWxSYXRpbzsKKyAgICAgIHRyLnVpLmIuZHJhd1RyaWFuZ2xlKGN0eCwKKyAgICAgICAgICB0aXBYLCB0aXBZLAorICAgICAgICAgIHRpcFggLSBhcnJvd1dpZHRoLCB0aXBZIC0gYXJyb3dIZWlnaHQsCisgICAgICAgICAgdGlwWCAtIGFycm93V2lkdGgsIHRpcFkgKyBhcnJvd0hlaWdodCk7CisgICAgICBjdHguZmlsbCgpOworICAgIH0sCisKKyAgICBjYWxjdWxhdGVUcmFja1lfOiBmdW5jdGlvbih0cmFjaywgY2FudmFzQm91bmRzKSB7CisgICAgICB2YXIgYm91bmRzID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgc2l6ZSA9IGJvdW5kcy5sZWZ0ICsgYm91bmRzLnRvcCArIGJvdW5kcy5ib3R0b20gKyBib3VuZHMucmlnaHQ7CisgICAgICBpZiAoc2l6ZSA9PT0gMCkKKyAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlVHJhY2tZXyh0cmFjay5wYXJlbnROb2RlLCBjYW52YXNCb3VuZHMpOworCisgICAgICByZXR1cm4gYm91bmRzLnRvcCAtIGNhbnZhc0JvdW5kcy50b3AgKyAoYm91bmRzLmhlaWdodCAvIDIpOworICAgIH0sCisKKyAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6IGZ1bmN0aW9uKAorICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKSB7CisgICAgICBmdW5jdGlvbiBvblBpY2tIaXQoaW5zdGFudEV2ZW50KSB7CisgICAgICAgIHNlbGVjdGlvbi5wdXNoKGluc3RhbnRFdmVudCk7CisgICAgICB9CisgICAgICB0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKHRoaXMubW9kZWxfLmluc3RhbnRFdmVudHMsCisgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5zdGFydDsgfSwKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LmR1cmF0aW9uOyB9LAorICAgICAgICAgIGxvV1gsIGhpV1gsCisgICAgICAgICAgb25QaWNrSGl0LmJpbmQodGhpcykpOworCisgICAgICB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLgorICAgICAgICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZS4KKyAgICAgICAgICBhcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgIH0sCisKKyAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24od29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24pIHsKKyAgICAgIHRoaXMuYWRkQ2xvc2VzdEluc3RhbnRFdmVudFRvU2VsZWN0aW9uKHRoaXMubW9kZWxfLmluc3RhbnRFdmVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JsZFgsIHdvcmxkTWF4RGlzdCwgc2VsZWN0aW9uKTsKKyAgICAgIHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uCisgICAgICAgICAgYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBNb2RlbFRyYWNrOiBNb2RlbFRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvbXVsdGlfcm93X3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9tdWx0aV9yb3dfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmIyNzA3Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvbXVsdGlfcm93X3RyYWNrLmh0bWwKQEAgLTAsMCArMSwyMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9tb2RlbF9zZXR0aW5ncy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGEgZ3JvdXAgb2Ygb2JqZWN0cyBpbiBtdWx0aXBsZSByb3dzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0NvbnRhaW5lclRyYWNrfQorICAgKi8KKyAgdmFyIE11bHRpUm93VHJhY2sgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICdtdWx0aS1yb3ctdHJhY2snLCB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2spOworCisgIE11bHRpUm93VHJhY2sucHJvdG90eXBlID0geworCisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy50b29sdGlwXyA9ICcnOworICAgICAgdGhpcy5oZWFkaW5nXyA9ICcnOworCisgICAgICB0aGlzLmdyb3VwaW5nU291cmNlXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuaXRlbXNUb0dyb3VwXyA9IHVuZGVmaW5lZDsKKworICAgICAgdGhpcy5kZWZhdWx0VG9Db2xsYXBzZWRXaGVuU3ViUm93Q291bnRNb3JlVGhhbiA9IDE7CisKKyAgICAgIHRoaXMuaXRlbXNHcm91cGVkT25MYXN0VXBkYXRlQ29udGVudHNfID0gdW5kZWZpbmVkOworCisgICAgICB0aGlzLmN1cnJlbnRTdWJSb3dzXyA9IFtdOworICAgICAgdGhpcy5leHBhbmRlZF8gPSB0cnVlOworICAgIH0sCisKKyAgICBnZXQgaXRlbXNUb0dyb3VwKCkgeworICAgICAgcmV0dXJuIHRoaXMuaXRlbXNUb0dyb3VwXzsKKyAgICB9LAorCisgICAgc2V0SXRlbXNUb0dyb3VwOiBmdW5jdGlvbihpdGVtc1RvR3JvdXAsIG9wdF9ncm91cGluZ1NvdXJjZSkgeworICAgICAgdGhpcy5pdGVtc1RvR3JvdXBfID0gaXRlbXNUb0dyb3VwOworICAgICAgdGhpcy5ncm91cGluZ1NvdXJjZV8gPSBvcHRfZ3JvdXBpbmdTb3VyY2U7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgdGhpcy51cGRhdGVFeHBhbmRlZFN0YXRlRnJvbUdyb3VwaW5nU291cmNlXygpOworICAgIH0sCisKKyAgICBnZXQgaGVhZGluZygpIHsKKyAgICAgIHJldHVybiB0aGlzLmhlYWRpbmdfOworICAgIH0sCisKKyAgICBzZXQgaGVhZGluZyhoKSB7CisgICAgICB0aGlzLmhlYWRpbmdfID0gaDsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCB0b29sdGlwKCkgeworICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcF87CisgICAgfSwKKworICAgIHNldCB0b29sdGlwKHQpIHsKKyAgICAgIHRoaXMudG9vbHRpcF8gPSB0OworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgZ2V0IHN1YlJvd3MoKSB7CisgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U3ViUm93c187CisgICAgfSwKKworICAgIGdldCBoYXNWaXNpYmxlQ29udGVudCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDA7CisgICAgfSwKKworICAgIGdldCBleHBhbmRlZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkXzsKKyAgICB9LAorCisgICAgc2V0IGV4cGFuZGVkKGV4cGFuZGVkKSB7CisgICAgICBpZiAodGhpcy5leHBhbmRlZF8gPT0gZXhwYW5kZWQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMuZXhwYW5kZWRfID0gZXhwYW5kZWQ7CisgICAgICB0aGlzLmV4cGFuZGVkU3RhdGVDaGFuZ2VkXygpOworICAgIH0sCisKKyAgICBvbkhlYWRpbmdDbGlja2VkXzogZnVuY3Rpb24oZSkgeworICAgICAgaWYgKHRoaXMuc3ViUm93cy5sZW5ndGggPD0gMSkKKyAgICAgICAgcmV0dXJuOworICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkOworCisgICAgICBpZiAodGhpcy5ncm91cGluZ1NvdXJjZV8pIHsKKyAgICAgICAgdmFyIG1vZGVsU2V0dGluZ3MgPSBuZXcgdHIubW9kZWwuTW9kZWxTZXR0aW5ncygKKyAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdTb3VyY2VfLm1vZGVsKTsKKyAgICAgICAgbW9kZWxTZXR0aW5ncy5zZXRTZXR0aW5nRm9yKHRoaXMuZ3JvdXBpbmdTb3VyY2VfLCAnZXhwYW5kZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBhbmRlZCk7CisgICAgICB9CisKKyAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUV4cGFuZGVkU3RhdGVGcm9tR3JvdXBpbmdTb3VyY2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLmdyb3VwaW5nU291cmNlXykgeworICAgICAgICB2YXIgbnVtU3ViUm93cyA9IHRoaXMuc3ViUm93cy5sZW5ndGg7CisgICAgICAgIHZhciBtb2RlbFNldHRpbmdzID0gbmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3MoCisgICAgICAgICAgICB0aGlzLmdyb3VwaW5nU291cmNlXy5tb2RlbCk7CisgICAgICAgIGlmIChudW1TdWJSb3dzID4gMSkgeworICAgICAgICAgIHZhciBkZWZhdWx0RXhwYW5kZWQ7CisgICAgICAgICAgaWYgKG51bVN1YlJvd3MgPiB0aGlzLmRlZmF1bHRUb0NvbGxhcHNlZFdoZW5TdWJSb3dDb3VudE1vcmVUaGFuKSB7CisgICAgICAgICAgICBkZWZhdWx0RXhwYW5kZWQgPSBmYWxzZTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVmYXVsdEV4cGFuZGVkID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IG1vZGVsU2V0dGluZ3MuZ2V0U2V0dGluZ0ZvcigKKyAgICAgICAgICAgICAgdGhpcy5ncm91cGluZ1NvdXJjZV8sICdleHBhbmRlZCcsIGRlZmF1bHRFeHBhbmRlZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHVuZGVmaW5lZDsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisKKyAgICBleHBhbmRlZFN0YXRlQ2hhbmdlZF86IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIG1pbkggPSBNYXRoLm1heCgyLCBNYXRoLmNlaWwoMTggLyB0aGlzLmNoaWxkcmVuLmxlbmd0aCkpOworICAgICAgdmFyIGggPSAodGhpcy5leHBhbmRlZF8gPyAxOCA6IG1pbkgpICsgJ3B4JzsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHRoaXMuY2hpbGRyZW5baV0uaGVpZ2h0ID0gaDsKKyAgICAgICAgaWYgKGkgPT09IDApCisgICAgICAgICAgdGhpcy5jaGlsZHJlbltpXS5hcnJvd1Zpc2libGUgPSB0cnVlOworICAgICAgICB0aGlzLmNoaWxkcmVuW2ldLmV4cGFuZGVkID0gdGhpcy5leHBhbmRlZDsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7CisgICAgICAgIHRoaXMuY2hpbGRyZW5bMF0uZXhwYW5kZWQgPSB0cnVlOworICAgICAgICB0aGlzLmNoaWxkcmVuWzBdLmFycm93VmlzaWJsZSA9IGZhbHNlOworICAgICAgfQorICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS51cGRhdGVDb250ZW50c18uY2FsbCh0aGlzKTsKKyAgICAgIGlmICghdGhpcy5pdGVtc1RvR3JvdXBfKSB7CisgICAgICAgIHRoaXMudXBkYXRlSGVhZGluZ0FuZFRvb2x0aXBfKCk7CisgICAgICAgIHRoaXMuY3VycmVudFN1YlJvd3NfID0gW107CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMuYXJlQXJyYXlDb250ZW50c1NhbWVfKHRoaXMuaXRlbXNHcm91cGVkT25MYXN0VXBkYXRlQ29udGVudHNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNUb0dyb3VwXykpIHsKKyAgICAgICAgdGhpcy51cGRhdGVIZWFkaW5nQW5kVG9vbHRpcF8oKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB0aGlzLml0ZW1zR3JvdXBlZE9uTGFzdFVwZGF0ZUNvbnRlbnRzXyA9IHRoaXMuaXRlbXNUb0dyb3VwXzsKKworICAgICAgdGhpcy5kZXRhY2goKTsKKyAgICAgIGlmICghdGhpcy5pdGVtc1RvR3JvdXBfLmxlbmd0aCkgeworICAgICAgICB0aGlzLmN1cnJlbnRTdWJSb3dzXyA9IFtdOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB2YXIgc3ViUm93cyA9IHRoaXMuYnVpbGRTdWJSb3dzXyh0aGlzLml0ZW1zVG9Hcm91cF8pOworICAgICAgdGhpcy5jdXJyZW50U3ViUm93c18gPSBzdWJSb3dzOworICAgICAgZm9yICh2YXIgc3JJID0gMDsgc3JJIDwgc3ViUm93cy5sZW5ndGg7IHNySSsrKSB7CisgICAgICAgIHZhciBzdWJSb3cgPSBzdWJSb3dzW3NySV07CisgICAgICAgIGlmICghc3ViUm93Lmxlbmd0aCkKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIHRyYWNrID0gdGhpcy5hZGRTdWJUcmFja18oc3ViUm93KTsKKyAgICAgICAgdHJhY2suYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAnaGVhZGluZy1jbGlja2VkJywgdGhpcy5vbkhlYWRpbmdDbGlja2VkXy5iaW5kKHRoaXMpKTsKKyAgICAgIH0KKyAgICAgIHRoaXMudXBkYXRlSGVhZGluZ0FuZFRvb2x0aXBfKCk7CisgICAgICB0aGlzLmV4cGFuZGVkU3RhdGVDaGFuZ2VkXygpOworICAgIH0sCisKKyAgICB1cGRhdGVIZWFkaW5nQW5kVG9vbHRpcF86IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmZpcnN0Q2hpbGQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMuZmlyc3RDaGlsZC5oZWFkaW5nID0gdGhpcy5oZWFkaW5nXzsKKyAgICAgIHRoaXMuZmlyc3RDaGlsZC50b29sdGlwID0gdGhpcy50b29sdGlwXzsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQnJlYWtzIHVwIHRoZSBsaXN0IG9mIHNsaWNlcyBpbnRvIE4gcm93cywgZWFjaCBvZiB3aGljaCBpcyBhIGxpc3Qgb2YKKyAgICAgKiBzbGljZXMgdGhhdCBhcmUgbm9uIG92ZXJsYXBwaW5nLgorICAgICAqLworICAgIGJ1aWxkU3ViUm93c186IGZ1bmN0aW9uKGl0ZW1zVG9Hcm91cCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgYWRkU3ViVHJhY2tfOiBmdW5jdGlvbihzdWJSb3dJdGVtcykgeworICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTsKKyAgICB9LAorCisgICAgYXJlQXJyYXlDb250ZW50c1NhbWVfOiBmdW5jdGlvbihhLCBiKSB7CisgICAgICBpZiAoIWEgfHwgIWIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGlmICghYS5sZW5ndGggfHwgIWIubGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICBpZiAoYS5sZW5ndGggIT0gYi5sZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoYVtpXSAhPSBiW2ldKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIE11bHRpUm93VHJhY2s6IE11bHRpUm93VHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfZ3JvdXBfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV9ncm91cF90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YjYzZDgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfZ3JvdXBfdHJhY2suaHRtbApAQCAtMCwwICsxLDg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9hbmFseXNpcy9vYmplY3Rfc25hcHNob3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvb2JqZWN0X2luc3RhbmNlX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9tdWx0aV9yb3dfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYSBPYmplY3RJbnN0YW5jZUdyb3VwLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge0NvbnRhaW5lclRyYWNrfQorICAgKi8KKyAgdmFyIE9iamVjdEluc3RhbmNlR3JvdXBUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ29iamVjdC1pbnN0YW5jZS1ncm91cC10cmFjaycsIHRyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrKTsKKworICBPYmplY3RJbnN0YW5jZUdyb3VwVHJhY2sucHJvdG90eXBlID0geworCisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5NdWx0aVJvd1RyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnb2JqZWN0LWluc3RhbmNlLWdyb3VwLXRyYWNrJyk7CisgICAgICB0aGlzLm9iamVjdEluc3RhbmNlc18gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBvYmplY3RJbnN0YW5jZXMoKSB7CisgICAgICByZXR1cm4gdGhpcy5pdGVtc1RvR3JvdXA7CisgICAgfSwKKworICAgIHNldCBvYmplY3RJbnN0YW5jZXMob2JqZWN0SW5zdGFuY2VzKSB7CisgICAgICB0aGlzLnNldEl0ZW1zVG9Hcm91cChvYmplY3RJbnN0YW5jZXMpOworICAgIH0sCisKKyAgICBhZGRTdWJUcmFja186IGZ1bmN0aW9uKG9iamVjdEluc3RhbmNlcykgeworICAgICAgdmFyIGhhc011bHRpcGxlUm93cyA9IHRoaXMuc3ViUm93cy5sZW5ndGggPiAxOworICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrKHRoaXMudmlld3BvcnQpOworICAgICAgdHJhY2sub2JqZWN0SW5zdGFuY2VzID0gb2JqZWN0SW5zdGFuY2VzOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7CisgICAgICByZXR1cm4gdHJhY2s7CisgICAgfSwKKworICAgIGJ1aWxkU3ViUm93c186IGZ1bmN0aW9uKG9iamVjdEluc3RhbmNlcykgeworICAgICAgb2JqZWN0SW5zdGFuY2VzLnNvcnQoZnVuY3Rpb24oeCwgeSkgeworICAgICAgICByZXR1cm4geC5jcmVhdGlvblRzIC0geS5jcmVhdGlvblRzOworICAgICAgfSk7CisKKyAgICAgIHZhciBzdWJSb3dzID0gW107CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdEluc3RhbmNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgb2JqZWN0SW5zdGFuY2UgPSBvYmplY3RJbnN0YW5jZXNbaV07CisKKyAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3ViUm93cy5sZW5ndGg7IGorKykgeworICAgICAgICAgIHZhciBzdWJSb3cgPSBzdWJSb3dzW2pdOworICAgICAgICAgIHZhciBsYXN0SXRlbUluU3ViUm93ID0gc3ViUm93W3N1YlJvdy5sZW5ndGggLSAxXTsKKyAgICAgICAgICBpZiAob2JqZWN0SW5zdGFuY2UuY3JlYXRpb25UcyA+PSBsYXN0SXRlbUluU3ViUm93LmRlbGV0aW9uVHMpIHsKKyAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIHN1YlJvdy5wdXNoKG9iamVjdEluc3RhbmNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgdmFyIHN1YlJvdyA9IFtvYmplY3RJbnN0YW5jZV07CisgICAgICAgICAgc3ViUm93cy5wdXNoKHN1YlJvdyk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHJldHVybiBzdWJSb3dzOworICAgIH0sCisgICAgdXBkYXRlSGVhZGluZ0FuZFRvb2x0aXBfOiBmdW5jdGlvbigpIHsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBPYmplY3RJbnN0YW5jZUdyb3VwVHJhY2s6IE9iamVjdEluc3RhbmNlR3JvdXBUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmNzcwpyZW5hbWUgdG8gdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjIyNDYyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmh0bWwKQEAgLTAsMCArMSwyOTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii91aS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX3RyYWNrLmNzcyI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9leHRlbnNpb25fcmVnaXN0cnkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9ldmVudF9wcmVzZW50ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvaGVhZGluZy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3RyYWNrLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIFNlbGVjdGlvblN0YXRlID0gdHIubW9kZWwuU2VsZWN0aW9uU3RhdGU7CisgIHZhciBFdmVudFByZXNlbnRlciA9IHRyLnVpLmIuRXZlbnRQcmVzZW50ZXI7CisKKyAgLyoqCisgICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhbiBhcnJheSBvZiBTbGljZSBvYmplY3RzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1RyYWNrfQorICAgKi8KKyAgdmFyIE9iamVjdEluc3RhbmNlVHJhY2sgPSB0ci51aS5iLmRlZmluZSgKKyAgICAgICdvYmplY3QtaW5zdGFuY2UtdHJhY2snLCB0ci51aS50cmFja3MuVHJhY2spOworCisgIE9iamVjdEluc3RhbmNlVHJhY2sucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnb2JqZWN0LWluc3RhbmNlLXRyYWNrJyk7CisgICAgICB0aGlzLm9iamVjdEluc3RhbmNlc18gPSBbXTsKKyAgICAgIHRoaXMub2JqZWN0U25hcHNob3RzXyA9IFtdOworCisgICAgICB0aGlzLmhlYWRpbmdfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktaGVhZGluZycpOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhlYWRpbmdfKTsKKyAgICB9LAorCisgICAgc2V0IGhlYWRpbmcoaGVhZGluZykgeworICAgICAgdGhpcy5oZWFkaW5nXy5oZWFkaW5nID0gaGVhZGluZzsKKyAgICB9LAorCisgICAgZ2V0IGhlYWRpbmcoKSB7CisgICAgICByZXR1cm4gdGhpcy5oZWFkaW5nXy5oZWFkaW5nOworICAgIH0sCisKKyAgICBzZXQgdG9vbHRpcCh0b29sdGlwKSB7CisgICAgICB0aGlzLmhlYWRpbmdfLnRvb2x0aXAgPSB0b29sdGlwOworICAgIH0sCisKKyAgICBnZXQgb2JqZWN0SW5zdGFuY2VzKCkgeworICAgICAgcmV0dXJuIHRoaXMub2JqZWN0SW5zdGFuY2VzXzsKKyAgICB9LAorCisgICAgc2V0IG9iamVjdEluc3RhbmNlcyhvYmplY3RJbnN0YW5jZXMpIHsKKyAgICAgIGlmICghb2JqZWN0SW5zdGFuY2VzIHx8IG9iamVjdEluc3RhbmNlcy5sZW5ndGggPT0gMCkgeworICAgICAgICB0aGlzLmhlYWRpbmcgPSAnJzsKKyAgICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZXNfID0gW107CisgICAgICAgIHRoaXMub2JqZWN0U25hcHNob3RzXyA9IFtdOworICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB0aGlzLmhlYWRpbmcgPSBvYmplY3RJbnN0YW5jZXNbMF0udHlwZU5hbWU7CisgICAgICB0aGlzLm9iamVjdEluc3RhbmNlc18gPSBvYmplY3RJbnN0YW5jZXM7CisgICAgICB0aGlzLm9iamVjdFNuYXBzaG90c18gPSBbXTsKKyAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VzXy5mb3JFYWNoKGZ1bmN0aW9uKGluc3RhbmNlKSB7CisgICAgICAgIHRoaXMub2JqZWN0U25hcHNob3RzXy5wdXNoLmFwcGx5KAorICAgICAgICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdHNfLCBpbnN0YW5jZS5zbmFwc2hvdHMpOworICAgICAgfSwgdGhpcyk7CisgICAgICB0aGlzLm9iamVjdFNuYXBzaG90c18uc29ydChmdW5jdGlvbihhLCBiKSB7CisgICAgICAgIHJldHVybiBhLnRzIC0gYi50czsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBnZXQgaGVpZ2h0KCkgeworICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDsKKyAgICB9LAorCisgICAgc2V0IGhlaWdodChoZWlnaHQpIHsKKyAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0OworICAgIH0sCisKKyAgICBnZXQgc25hcHNob3RSYWRpdXNWaWV3KCkgeworICAgICAgcmV0dXJuIDcgKiAod2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMSk7CisgICAgfSwKKworICAgIGRyYXc6IGZ1bmN0aW9uKHR5cGUsIHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKKyAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIHRyLnVpLnRyYWNrcy5EcmF3VHlwZS5HRU5FUkFMX0VWRU5UOgorICAgICAgICAgIHRoaXMuZHJhd0xldHRlckRvdHNfKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0sCisKKyAgICBkcmF3TGV0dGVyRG90c186IGZ1bmN0aW9uKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpIHsKKyAgICAgIHZhciBjdHggPSB0aGlzLmNvbnRleHQoKTsKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKworICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgaGVpZ2h0ID0gYm91bmRzLmhlaWdodCAqIHBpeGVsUmF0aW87CisgICAgICB2YXIgaGFsZkhlaWdodCA9IGhlaWdodCAqIDAuNTsKKyAgICAgIHZhciB0d29QaSA9IE1hdGguUEkgKiAyOworCisgICAgICAvLyBDdWxsaW5nIHBhcmFtZXRlcnMuCisgICAgICB2YXIgZHQgPSB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworICAgICAgdmFyIHNuYXBzaG90UmFkaXVzVmlldyA9IHRoaXMuc25hcHNob3RSYWRpdXNWaWV3OworICAgICAgdmFyIHNuYXBzaG90UmFkaXVzV29ybGQgPSBkdC54Vmlld1ZlY3RvclRvV29ybGQoaGVpZ2h0KTsKKyAgICAgIHZhciBsb0k7CisKKyAgICAgIC8vIEJlZ2luIHJlbmRlcmluZyBpbiB3b3JsZCBzcGFjZS4KKyAgICAgIGN0eC5zYXZlKCk7CisgICAgICBkdC5hcHBseVRyYW5zZm9ybVRvQ2FudmFzKGN0eCk7CisKKyAgICAgIC8vIEluc3RhbmNlcworICAgICAgdmFyIG9iamVjdEluc3RhbmNlcyA9IHRoaXMub2JqZWN0SW5zdGFuY2VzXzsKKyAgICAgIHZhciBsb0kgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCisgICAgICAgICAgb2JqZWN0SW5zdGFuY2VzLAorICAgICAgICAgIGZ1bmN0aW9uKGluc3RhbmNlKSB7CisgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UuZGVsZXRpb25UczsKKyAgICAgICAgICB9LAorICAgICAgICAgIHZpZXdMV29ybGQpOworICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigwLDAsMCknOworICAgICAgZm9yICh2YXIgaSA9IGxvSTsgaSA8IG9iamVjdEluc3RhbmNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgaW5zdGFuY2UgPSBvYmplY3RJbnN0YW5jZXNbaV07CisgICAgICAgIHZhciB4ID0gaW5zdGFuY2UuY3JlYXRpb25UczsKKyAgICAgICAgaWYgKHggPiB2aWV3UldvcmxkKQorICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHZhciByaWdodCA9IGluc3RhbmNlLmRlbGV0aW9uVHMgPT0gTnVtYmVyLk1BWF9WQUxVRSA/CisgICAgICAgICAgICB2aWV3UldvcmxkIDogaW5zdGFuY2UuZGVsZXRpb25UczsKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9IEV2ZW50UHJlc2VudGVyLmdldE9iamVjdEluc3RhbmNlQ29sb3IoaW5zdGFuY2UpOworICAgICAgICBjdHguZmlsbFJlY3QoeCwgcGl4ZWxSYXRpbywgcmlnaHQgLSB4LCBoZWlnaHQgLSAyICogcGl4ZWxSYXRpbyk7CisgICAgICB9CisgICAgICBjdHgucmVzdG9yZSgpOworCisgICAgICAvLyBTbmFwc2hvdHMuIEhhcyB0byBydW4gaW4gd29ybGRzcGFjZSBiZWNhdXNlIGN0eC5hcmMgZ2V0cyB0cmFuc2Zvcm1lZC4KKyAgICAgIHZhciBvYmplY3RTbmFwc2hvdHMgPSB0aGlzLm9iamVjdFNuYXBzaG90c187CisgICAgICBsb0kgPSB0ci5iLmZpbmRMb3dJbmRleEluU29ydGVkQXJyYXkoCisgICAgICAgICAgb2JqZWN0U25hcHNob3RzLAorICAgICAgICAgIGZ1bmN0aW9uKHNuYXBzaG90KSB7CisgICAgICAgICAgICByZXR1cm4gc25hcHNob3QudHMgKyBzbmFwc2hvdFJhZGl1c1dvcmxkOworICAgICAgICAgIH0sCisgICAgICAgICAgdmlld0xXb3JsZCk7CisgICAgICBmb3IgKHZhciBpID0gbG9JOyBpIDwgb2JqZWN0U25hcHNob3RzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBzbmFwc2hvdCA9IG9iamVjdFNuYXBzaG90c1tpXTsKKyAgICAgICAgdmFyIHggPSBzbmFwc2hvdC50czsKKyAgICAgICAgaWYgKHggLSBzbmFwc2hvdFJhZGl1c1dvcmxkID4gdmlld1JXb3JsZCkKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgdmFyIHhWaWV3ID0gZHQueFdvcmxkVG9WaWV3KHgpOworCisgICAgICAgIGN0eC5maWxsU3R5bGUgPSBFdmVudFByZXNlbnRlci5nZXRPYmplY3RTbmFwc2hvdENvbG9yKHNuYXBzaG90KTsKKyAgICAgICAgY3R4LmJlZ2luUGF0aCgpOworICAgICAgICBjdHguYXJjKHhWaWV3LCBoYWxmSGVpZ2h0LCBzbmFwc2hvdFJhZGl1c1ZpZXcsIDAsIHR3b1BpKTsKKyAgICAgICAgY3R4LmZpbGwoKTsKKyAgICAgICAgaWYgKHNuYXBzaG90LnNlbGVjdGVkKSB7CisgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDU7CisgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigxMDAsMTAwLDApJzsKKyAgICAgICAgICBjdHguc3Ryb2tlKCk7CisKKyAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICAgICAgY3R4LmFyYyh4VmlldywgaGFsZkhlaWdodCwgc25hcHNob3RSYWRpdXNWaWV3IC0gMSwgMCwgdHdvUGkpOworICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAyOworICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMjU1LDI1NSwwKSc7CisgICAgICAgICAgY3R4LnN0cm9rZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAxOworICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2IoMCwwLDApJzsKKyAgICAgICAgICBjdHguc3Ryb2tlKCk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGN0eC5saW5lV2lkdGggPSAxOworCisgICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucyB3ZSBvbmx5IGNoZWNrIHRoZSBTZWxlY3Rpb25TdGF0ZSBvZiB0aGUgZmlyc3QKKyAgICAgIC8vIGluc3RhbmNlLiBJZiBpdCdzIERJTU1FRCB3ZSBhc3N1bWUgdGhhdCBhbGwgYXJlIERJTU1FRC4KKyAgICAgIC8vIFRPRE8oZWdyYWV0aGVyKTogQWxsb3cgcGFydGlhbCBoaWdobGlnaHQuCisgICAgICB2YXIgc2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5OT05FOworICAgICAgaWYgKG9iamVjdEluc3RhbmNlcy5sZW5ndGggJiYKKyAgICAgICAgICBvYmplY3RJbnN0YW5jZXNbMF0uc2VsZWN0aW9uU3RhdGUgPT09IFNlbGVjdGlvblN0YXRlLkRJTU1FRCkgeworICAgICAgICBzZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkRJTU1FRDsKKyAgICAgIH0KKworICAgICAgLy8gRGltIHRoZSB0cmFjayB3aGVuIHRoZXJlIGlzIGFuIGFjdGl2ZSBoaWdobGlnaHQuCisgICAgICBpZiAoc2VsZWN0aW9uU3RhdGUgPT09IFNlbGVjdGlvblN0YXRlLkRJTU1FRCkgeworICAgICAgICB2YXIgd2lkdGggPSBib3VuZHMud2lkdGggKiBwaXhlbFJhdGlvOworICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMjU1LDI1NSwyNTUsMC41KSc7CisgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7CisgICAgICBpZiAodGhpcy5vYmplY3RJbnN0YW5jZV8gIT09IHVuZGVmaW5lZCkgeworICAgICAgICB0aGlzLm9iamVjdEluc3RhbmNlXy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikgeworICAgICAgICAgIGV2ZW50VG9UcmFja01hcC5hZGRFdmVudChvYmosIHRoaXMpOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMub2JqZWN0U25hcHNob3RzXyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMub2JqZWN0U25hcHNob3RzXy5mb3JFYWNoKGZ1bmN0aW9uKG9iaikgeworICAgICAgICAgIGV2ZW50VG9UcmFja01hcC5hZGRFdmVudChvYmosIHRoaXMpOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlOiBmdW5jdGlvbigKKyAgICAgICAgbG9XWCwgaGlXWCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbikgeworICAgICAgLy8gUGljayBzbmFwc2hvdHMgZmlyc3QuCisgICAgICB2YXIgZm91bmRTbmFwc2hvdCA9IGZhbHNlOworICAgICAgZnVuY3Rpb24gb25TbmFwc2hvdChzbmFwc2hvdCkgeworICAgICAgICBzZWxlY3Rpb24ucHVzaChzbmFwc2hvdCk7CisgICAgICAgIGZvdW5kU25hcHNob3QgPSB0cnVlOworICAgICAgfQorICAgICAgdmFyIHNuYXBzaG90UmFkaXVzVmlldyA9IHRoaXMuc25hcHNob3RSYWRpdXNWaWV3OworICAgICAgdmFyIHNuYXBzaG90UmFkaXVzV29ybGQgPSB2aWV3UGl4V2lkdGhXb3JsZCAqIHNuYXBzaG90UmFkaXVzVmlldzsKKyAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHMoCisgICAgICAgICAgdGhpcy5vYmplY3RTbmFwc2hvdHNfLAorICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHgudHMgLSBzbmFwc2hvdFJhZGl1c1dvcmxkOyB9LAorICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIDIgKiBzbmFwc2hvdFJhZGl1c1dvcmxkOyB9LAorICAgICAgICAgIGxvV1gsIGhpV1gsCisgICAgICAgICAgb25TbmFwc2hvdCk7CisgICAgICBpZiAoZm91bmRTbmFwc2hvdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBUcnkgcGlja2luZyBpbnN0YW5jZXMuCisgICAgICB0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKAorICAgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VzXywKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LmNyZWF0aW9uVHM7IH0sCisgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5kZWxldGlvblRzIC0geC5jcmVhdGlvblRzOyB9LAorICAgICAgICAgIGxvV1gsIGhpV1gsCisgICAgICAgICAgc2VsZWN0aW9uLnB1c2guYmluZChzZWxlY3Rpb24pKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBwcm92aWRlZCBldmVudCwgaWYgYW55LCB0byB0aGUKKyAgICAgKiBzZWxlY3Rpb24uCisgICAgICogQHBhcmFtIHtldmVudH0gVGhlIGN1cnJlbnQgZXZlbnQgaXRlbS4KKyAgICAgKiBAcGFyYW0ge051bWJlcn0gb2Zmc2V0IE51bWJlciBvZiBzbGljZXMgYXdheSBmcm9tIHRoZSBldmVudCB0byBsb29rLgorICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gVGhlIHNlbGVjdGlvbiB0byBhZGQgYW4gZXZlbnQgdG8sCisgICAgICogaWYgZm91bmQuCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciBhbiBldmVudCB3YXMgZm91bmQuCisgICAgICogQHByaXZhdGUKKyAgICAgKi8KKyAgICBhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24oZXZlbnQsIG9mZnNldCwgc2VsZWN0aW9uKSB7CisgICAgICB2YXIgZXZlbnRzOworICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0U25hcHNob3QpCisgICAgICAgIGV2ZW50cyA9IHRoaXMub2JqZWN0U25hcHNob3RzXzsKKyAgICAgIGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UpCisgICAgICAgIGV2ZW50cyA9IHRoaXMub2JqZWN0SW5zdGFuY2VzXzsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgZXZlbnQnKTsKKworICAgICAgdmFyIGluZGV4ID0gZXZlbnRzLmluZGV4T2YoZXZlbnQpOworICAgICAgdmFyIG5ld0luZGV4ID0gaW5kZXggKyBvZmZzZXQ7CisgICAgICBpZiAobmV3SW5kZXggPj0gMCAmJiBuZXdJbmRleCA8IGV2ZW50cy5sZW5ndGgpIHsKKyAgICAgICAgc2VsZWN0aW9uLnB1c2goZXZlbnRzW25ld0luZGV4XSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBhZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uOiBmdW5jdGlvbihmaWx0ZXIsIHNlbGVjdGlvbikgeworICAgIH0sCisKKyAgICBhZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24od29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24pIHsKKyAgICAgIHZhciBzbmFwc2hvdCA9IHRyLmIuZmluZENsb3Nlc3RFbGVtZW50SW5Tb3J0ZWRBcnJheSgKKyAgICAgICAgICB0aGlzLm9iamVjdFNuYXBzaG90c18sCisgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC50czsgfSwKKyAgICAgICAgICB3b3JsZFgsCisgICAgICAgICAgd29ybGRNYXhEaXN0KTsKKworICAgICAgaWYgKCFzbmFwc2hvdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICBzZWxlY3Rpb24ucHVzaChzbmFwc2hvdCk7CisKKyAgICAgIC8vIFRPRE8oZWdyYWV0aGVyKTogU2VhcmNoIGZvciBvYmplY3QgaW5zdGFuY2VzIGFzIHdlbGwsIHdoaWNoIHdhcyBub3QKKyAgICAgIC8vIGltcGxlbWVudGVkIGJlY2F1c2UgaXQgbWFrZXMgbGl0dGxlIHNlbnNlIHdpdGggdGhlIGN1cnJlbnQgdmlzdWFsIGFuZAorICAgICAgLy8gbmVlZHMgdG8gdGFrZSBjYXJlIG9mIG92ZXJsYXBwaW5nIGludGVydmFscy4KKyAgICB9CisgIH07CisKKworICB2YXIgb3B0aW9ucyA9IG5ldyB0ci5iLkV4dGVuc2lvblJlZ2lzdHJ5T3B0aW9ucygKKyAgICAgIHRyLmIuVFlQRV9CQVNFRF9SRUdJU1RSWV9NT0RFKTsKKyAgdHIuYi5kZWNvcmF0ZUV4dGVuc2lvblJlZ2lzdHJ5KE9iamVjdEluc3RhbmNlVHJhY2ssIG9wdGlvbnMpOworCisgIHJldHVybiB7CisgICAgT2JqZWN0SW5zdGFuY2VUcmFjazogT2JqZWN0SW5zdGFuY2VUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2tfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwZjZmMWYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9vYmplY3RfaW5zdGFuY2VfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTA3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvb2JqZWN0X2NvbGxlY3Rpb24uaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3NlbGVjdGlvbl9zdGF0ZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdmlld3BvcnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9kcmF3aW5nX2NvbnRhaW5lci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL29iamVjdF9pbnN0YW5jZV90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7IC8vIEBzdXBwcmVzcyBsb25nTGluZUNoZWNrCisgIHZhciBFdmVudFNldCA9IHRyLm1vZGVsLkV2ZW50U2V0OworICB2YXIgT2JqZWN0SW5zdGFuY2VUcmFjayA9IHRyLnVpLnRyYWNrcy5PYmplY3RJbnN0YW5jZVRyYWNrOworICB2YXIgVmlld3BvcnQgPSB0ci51aS5UaW1lbGluZVZpZXdwb3J0OworCisgIHZhciBjcmVhdGVPYmplY3RzID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIG9iamVjdHMgPSBuZXcgdHIubW9kZWwuT2JqZWN0Q29sbGVjdGlvbih7fSk7CisgICAgb2JqZWN0cy5pZFdhc0NyZWF0ZWQoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0ZyYW1lJywgMTApOworICAgIG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMCcsICd0ci5lLmNjJywgJ0ZyYW1lJywgMTAsICdzbmFwc2hvdC0xJyk7CisgICAgb2JqZWN0cy5hZGRTbmFwc2hvdCgnMHgxMDAwJywgJ3RyLmUuY2MnLCAnRnJhbWUnLCAyNSwgJ3NuYXBzaG90LTInKTsKKyAgICBvYmplY3RzLmFkZFNuYXBzaG90KCcweDEwMDAnLCAndHIuZS5jYycsICdGcmFtZScsIDQwLCAnc25hcHNob3QtMycpOworICAgIG9iamVjdHMuaWRXYXNEZWxldGVkKCcweDEwMDAnLCAndHIuZS5jYycsICdGcmFtZScsIDQ1KTsKKworICAgIG9iamVjdHMuaWRXYXNDcmVhdGVkKCcweDEwMDEnLCAnc2tpYScsICdQaWN0dXJlJywgMjApOworICAgIG9iamVjdHMuYWRkU25hcHNob3QoJzB4MTAwMScsICdza2lhJywgJ1BpY3R1cmUnLCAyMCwgJ3NuYXBzaG90LTEnKTsKKyAgICBvYmplY3RzLmlkV2FzRGVsZXRlZCgnMHgxMDAxJywgJ3NraWEnLCAnUGljdHVyZScsIDI1KTsKKyAgICByZXR1cm4gb2JqZWN0czsKKyAgfTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBvYmplY3RzID0gY3JlYXRlT2JqZWN0cygpOworICAgIHZhciBmcmFtZXMgPSBvYmplY3RzLmdldEFsbEluc3RhbmNlc0J5VHlwZU5hbWUoKVsnRnJhbWUnXTsKKyAgICBmcmFtZXNbMF0uc25hcHNob3RzWzFdLnNlbGVjdGlvblN0YXRlID0KKyAgICAgICAgdHIubW9kZWwuU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7CisKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOworCisgICAgdmFyIHRyYWNrID0gT2JqZWN0SW5zdGFuY2VUcmFjayh2aWV3cG9ydCk7CisgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmludmFsaWRhdGUoKTsKKworICAgIHRyYWNrLmhlYWRpbmcgPSAndGVzdEJhc2ljJzsKKyAgICB0cmFjay5vYmplY3RJbnN0YW5jZXMgPSBmcmFtZXM7CisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA1MCwgdHJhY2suY2xpZW50V2lkdGgpOworICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisgIH0pOworCisgIHRlc3QoJ3NlbGVjdGlvbkhpdFRlc3RpbmdXaXRoVGhyZWFkVHJhY2snLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgb2JqZWN0cyA9IGNyZWF0ZU9iamVjdHMoKTsKKyAgICB2YXIgZnJhbWVzID0gb2JqZWN0cy5nZXRBbGxJbnN0YW5jZXNCeVR5cGVOYW1lKClbJ0ZyYW1lJ107CisKKyAgICB2YXIgdHJhY2sgPSBPYmplY3RJbnN0YW5jZVRyYWNrKG5ldyBWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5vYmplY3RJbnN0YW5jZXMgPSBmcmFtZXM7CisKKyAgICAvLyBIaXQgb3V0c2lkZSByYW5nZQorICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCisgICAgICAgIDgsIDguMSwgMC4xLCBzZWxlY3Rpb24pOworICAgIGFzc2VydC5lcXVhbChzZWxlY3Rpb24ubGVuZ3RoLCAwKTsKKworICAgIC8vIEhpdCB0aGUgZmlyc3Qgc25hcHNob3QsIHZpYSBwaXhlbC1uZWFybmVzcy4KKyAgICBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCisgICAgICAgIDkuOTgsIDkuOTksIDAuMSwgc2VsZWN0aW9uKTsKKyAgICBhc3NlcnQuZXF1YWwoc2VsZWN0aW9uLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2Yoc2VsZWN0aW9uWzBdLCB0ci5tb2RlbC5PYmplY3RTbmFwc2hvdCk7CisKKyAgICAvLyBIaXQgdGhlIGluc3RhbmNlLCBiZXR3ZWVuIHRoZSAxc3QgYW5kIDJuZCBzbmFwc2hvdHMKKyAgICBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UoCisgICAgICAgIDIwLCAyMC4xLCAwLjEsIHNlbGVjdGlvbik7CisgICAgYXNzZXJ0LmVxdWFsKHNlbGVjdGlvbi5sZW5ndGgsIDEpOworICAgIGFzc2VydC5pbnN0YW5jZU9mKHNlbGVjdGlvblswXSwgdHIubW9kZWwuT2JqZWN0SW5zdGFuY2UpOworICB9KTsKKworICB0ZXN0KCdhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBvYmplY3RzID0gY3JlYXRlT2JqZWN0cygpOworICAgIHZhciBmcmFtZXMgPSBvYmplY3RzLmdldEFsbEluc3RhbmNlc0J5VHlwZU5hbWUoKVsnRnJhbWUnXTsKKworICAgIHZhciB0cmFjayA9IE9iamVjdEluc3RhbmNlVHJhY2sobmV3IFZpZXdwb3J0KCkpOworICAgIHRyYWNrLm9iamVjdEluc3RhbmNlcyA9IGZyYW1lczsKKworICAgIHZhciBpbnN0YW5jZSA9IG5ldyB0ci5tb2RlbC5PYmplY3RJbnN0YW5jZSgKKyAgICAgICAge30sICcweDEwMDAnLCAnY2F0JywgJ24nLCAxMCk7CisKKyAgICBhc3NlcnQuZG9lc05vdFRocm93KGZ1bmN0aW9uKCkgeworICAgICAgdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oaW5zdGFuY2UsIDAsIHVuZGVmaW5lZCk7CisgICAgfSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcG93ZXJfc2VyaWVzX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9wb3dlcl9zZXJpZXNfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTRiYTJmCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcG93ZXJfc2VyaWVzX3RyYWNrLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9heGlzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY2hhcnRfcG9pbnQuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF9zZXJpZXMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF90cmFjay5odG1sIj4KKworPHN0eWxlPgorLnBvd2VyLXNlcmllcy10cmFjayB7CisgIGhlaWdodDogOTBweDsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKworICB2YXIgQ2hhcnRUcmFjayA9IHRyLnVpLnRyYWNrcy5DaGFydFRyYWNrOworCisgIC8qKgorICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYSBQb3dlclNlcmllcy4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHtDaGFydFRyYWNrfQorICAgKi8KKyAgdmFyIFBvd2VyU2VyaWVzVHJhY2sgPSB0ci51aS5iLmRlZmluZSgncG93ZXItc2VyaWVzLXRyYWNrJywgQ2hhcnRUcmFjayk7CisKKyAgUG93ZXJTZXJpZXNUcmFjay5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiBDaGFydFRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgQ2hhcnRUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3Bvd2VyLXNlcmllcy10cmFjaycpOworICAgICAgdGhpcy5oZWFkaW5nID0gJ1Bvd2VyJzsKKyAgICAgIHRoaXMucG93ZXJTZXJpZXNfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBzZXQgcG93ZXJTZXJpZXMocG93ZXJTZXJpZXMpIHsKKyAgICAgIHRoaXMucG93ZXJTZXJpZXNfID0gcG93ZXJTZXJpZXM7CisKKyAgICAgIHRoaXMuc2VyaWVzID0gdGhpcy5idWlsZENoYXJ0U2VyaWVzXygpOworICAgICAgdGhpcy5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OiB0cnVlfSk7CisgICAgfSwKKworICAgIGdldCBoYXNWaXNpYmxlQ29udGVudCgpIHsKKyAgICAgIHJldHVybiAodGhpcy5wb3dlclNlcmllc18gJiYgdGhpcy5wb3dlclNlcmllc18uc2FtcGxlcy5sZW5ndGggPiAwKTsKKyAgICB9LAorCisgICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKKyAgICAgIGNvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMucG93ZXJTZXJpZXNfLCB0aGlzKTsKKyAgICB9LAorCisgICAgYnVpbGRDaGFydFNlcmllc186IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzLmhhc1Zpc2libGVDb250ZW50KQorICAgICAgICByZXR1cm4gW107CisKKyAgICAgIHZhciBheGlzID0gbmV3IHRyLnVpLnRyYWNrcy5DaGFydEF4aXMoMCwgdW5kZWZpbmVkKTsKKyAgICAgIHZhciBwdHMgPSB0aGlzLnBvd2VyU2VyaWVzXy5zYW1wbGVzLm1hcChmdW5jdGlvbihzbXBsKSB7CisgICAgICAgIHJldHVybiBuZXcgdHIudWkudHJhY2tzLkNoYXJ0UG9pbnQoc21wbCwgc21wbC5zdGFydCwgc21wbC5wb3dlcik7CisgICAgICB9KTsKKyAgICAgIHZhciByZW5kZXJpbmdDb25maWcgPSB7CisgICAgICAgIGNoYXJ0VHlwZTogdHIudWkudHJhY2tzLkNoYXJ0U2VyaWVzVHlwZS5BUkVBLAorICAgICAgICBjb2xvcklkOiB0ci51aS5iLmdldENvbG9ySWRGb3JHZW5lcmFsUHVycG9zZVN0cmluZyh0aGlzLmhlYWRpbmcpCisgICAgICB9OworCisgICAgICByZXR1cm4gW25ldyB0ci51aS50cmFja3MuQ2hhcnRTZXJpZXMocHRzLCBheGlzLCByZW5kZXJpbmdDb25maWcpXTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQb3dlclNlcmllc1RyYWNrOiBQb3dlclNlcmllc1RyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcG93ZXJfc2VyaWVzX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Bvd2VyX3Nlcmllc190cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVjMTVmMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Bvd2VyX3Nlcmllc190cmFja190ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL21vZGVsL2RldmljZS5odG1sJz4KKzxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvbW9kZWwvbW9kZWwuaHRtbCc+Cis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL21vZGVsL3Bvd2VyX3Nlcmllcy5odG1sJz4KKzxsaW5rIHJlbD0naW1wb3J0JyBocmVmPScvdWkvdGltZWxpbmVfdmlld3BvcnQuaHRtbCc+Cis8bGluayByZWw9J2ltcG9ydCcgaHJlZj0nL3VpL3RyYWNrcy9jb250YWluZXJfdG9fdHJhY2tfbWFwLmh0bWwnPgorPGxpbmsgcmVsPSdpbXBvcnQnIGhyZWY9Jy91aS90cmFja3MvZHJhd2luZ19jb250YWluZXIuaHRtbCc+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9wb3dlcl9zZXJpZXNfdHJhY2suaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworCisgIHZhciBEZXZpY2UgPSB0ci5tb2RlbC5EZXZpY2U7CisgIHZhciBNb2RlbCA9IHRyLk1vZGVsOworICB2YXIgUG93ZXJTZXJpZXMgPSB0ci5tb2RlbC5Qb3dlclNlcmllczsKKyAgdmFyIFBvd2VyU2VyaWVzVHJhY2sgPSB0ci51aS50cmFja3MuUG93ZXJTZXJpZXNUcmFjazsKKworICB2YXIgY3JlYXRlRHJhd2luZ0NvbnRhaW5lciA9IGZ1bmN0aW9uKHNlcmllcykgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydChkaXYpOworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICBpZiAoc2VyaWVzKSB7CisgICAgICBzZXJpZXMudXBkYXRlQm91bmRzKCk7CisgICAgICBzZXREaXNwbGF5VHJhbnNmb3JtRnJvbUJvdW5kcyh2aWV3cG9ydCwgc2VyaWVzLmJvdW5kcyk7CisgICAgfQorCisgICAgcmV0dXJuIGRyYXdpbmdDb250YWluZXI7CisgIH07CisKKyAgLyoqCisgICAqIFNldHMgdGhlIG1hcHBpbmcgYmV0d2VlbiB0aGUgaW5wdXQgcmFuZ2Ugb2YgdGltZXN0YW1wcyBhbmQgdGhlIG91dHB1dCByYW5nZQorICAgKiBvZiBob3Jpem9udGFsIHBpeGVscy4KKyAgICovCisgIHZhciBzZXREaXNwbGF5VHJhbnNmb3JtRnJvbUJvdW5kcyA9IGZ1bmN0aW9uKHZpZXdwb3J0LCBib3VuZHMpIHsKKyAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgIHZhciBjaGFydFBpeGVsV2lkdGggPQorICAgICAgICAod2luZG93LmlubmVyV2lkdGggLSB0ci5jLmNvbnN0YW50cy5IRUFESU5HX1dJRFRIKSAqIHBpeGVsUmF0aW87CisgICAgZHQueFNldFdvcmxkQm91bmRzKGJvdW5kcy5taW4sIGJvdW5kcy5tYXgsIGNoYXJ0UGl4ZWxXaWR0aCk7CisgICAgdmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKyAgfTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBuZXcgUG93ZXJTZXJpZXMobmV3IE1vZGVsKCkuZGV2aWNlKTsKKyAgICBzZXJpZXMuYWRkUG93ZXJTYW1wbGUoMCwgMSk7CisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAuNSwgMik7CisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDEsIDMpOworICAgIHNlcmllcy5hZGRQb3dlclNhbXBsZSgxLjUsIDQpOworCisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBjcmVhdGVEcmF3aW5nQ29udGFpbmVyKHNlcmllcyk7CisgICAgdmFyIHRyYWNrID0gbmV3IFBvd2VyU2VyaWVzVHJhY2soZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydCk7CisgICAgdHJhY2sucG93ZXJTZXJpZXMgPSBzZXJpZXM7CisgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZHJhd2luZ0NvbnRhaW5lcik7CisgIH0pOworCisgIHRlc3QoJ2hhc1Zpc2libGVDb250ZW50X3RydWVXaXRoUG93ZXJTYW1wbGVzUHJlc2VudCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBuZXcgUG93ZXJTZXJpZXMobmV3IE1vZGVsKCkuZGV2aWNlKTsKKyAgICBzZXJpZXMuYWRkUG93ZXJTYW1wbGUoMCwgMSk7CisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDAuNSwgMik7CisgICAgc2VyaWVzLmFkZFBvd2VyU2FtcGxlKDEsIDMpOworICAgIHNlcmllcy5hZGRQb3dlclNhbXBsZSgxLjUsIDQpOworCisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBjcmVhdGVEcmF3aW5nQ29udGFpbmVyKHNlcmllcyk7CisgICAgdmFyIHRyYWNrID0gbmV3IFBvd2VyU2VyaWVzVHJhY2soZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydCk7CisgICAgdHJhY2sucG93ZXJTZXJpZXMgPSBzZXJpZXM7CisKKyAgICBhc3NlcnQuaXNUcnVlKHRyYWNrLmhhc1Zpc2libGVDb250ZW50KTsKKyAgfSk7CisKKyAgdGVzdCgnaGFzVmlzaWJsZUNvbnRlbnRfZmFsc2VXaXRoVW5kZWZpbmVkUG93ZXJTZXJpZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IGNyZWF0ZURyYXdpbmdDb250YWluZXIodW5kZWZpbmVkKTsKKyAgICB2YXIgdHJhY2sgPSBuZXcgUG93ZXJTZXJpZXNUcmFjayhkcmF3aW5nQ29udGFpbmVyLnZpZXdwb3J0KTsKKyAgICB0cmFjay5wb3dlclNlcmllcyA9IHVuZGVmaW5lZDsKKworICAgIGFzc2VydC5ub3RPayh0cmFjay5oYXNWaXNpYmxlQ29udGVudCk7CisgIH0pOworCisgIHRlc3QoJ2hhc1Zpc2libGVDb250ZW50X2ZhbHNlV2l0aEVtcHR5UG93ZXJTZXJpZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc2VyaWVzID0gbmV3IFBvd2VyU2VyaWVzKG5ldyBNb2RlbCgpLmRldmljZSk7CisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBjcmVhdGVEcmF3aW5nQ29udGFpbmVyKHNlcmllcyk7CisgICAgdmFyIHRyYWNrID0gbmV3IFBvd2VyU2VyaWVzVHJhY2soZHJhd2luZ0NvbnRhaW5lci52aWV3cG9ydCk7CisgICAgdHJhY2sucG93ZXJTZXJpZXMgPSBzZXJpZXM7CisKKyAgICBhc3NlcnQubm90T2sodHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpOworICB9KTsKKworICB0ZXN0KCdhZGRDb250YWluZXJzVG9UcmFja01hcCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzZXJpZXMgPSBuZXcgUG93ZXJTZXJpZXMobmV3IE1vZGVsKCkuZGV2aWNlKTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IGNyZWF0ZURyYXdpbmdDb250YWluZXIoc2VyaWVzKTsKKyAgICB2YXIgcG93ZXJTZXJpZXNUcmFjayA9IG5ldyBQb3dlclNlcmllc1RyYWNrKGRyYXdpbmdDb250YWluZXIudmlld3BvcnQpOworICAgIHBvd2VyU2VyaWVzVHJhY2sucG93ZXJTZXJpZXMgPSBzZXJpZXM7CisKKyAgICB2YXIgY29udGFpbmVyVG9UcmFja01hcCA9IG5ldyB0ci51aS50cmFja3MuQ29udGFpbmVyVG9UcmFja01hcCgpOworICAgIHBvd2VyU2VyaWVzVHJhY2suYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoY29udGFpbmVyVG9UcmFja01hcCk7CisKKyAgICBhc3NlcnQuZXF1YWwoCisgICAgICAgIGNvbnRhaW5lclRvVHJhY2tNYXAuZ2V0VHJhY2tCeVN0YWJsZUlkKCdEZXZpY2UuUG93ZXJTZXJpZXMnKSwKKyAgICAgICAgcG93ZXJTZXJpZXNUcmFjayk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzU1MzhjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcHJvY2Vzc19tZW1vcnlfZHVtcF90cmFjay5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jaGFydF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2NvbnRhaW5lcl90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3V0aWwuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKworICB2YXIgQUxMT0NBVEVEX01FTU9SWV9UUkFDS19IRUlHSFQgPSA1MDsKKworICAvKioKKyAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGFuIGFycmF5IG9mIFByb2Nlc3NNZW1vcnlEdW1wIG9iamVjdHMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7Q29udGFpbmVyVHJhY2t9CisgICAqLworICB2YXIgUHJvY2Vzc01lbW9yeUR1bXBUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ3Byb2Nlc3MtbWVtb3J5LWR1bXAtdHJhY2snLCB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2spOworCisgIFByb2Nlc3NNZW1vcnlEdW1wVHJhY2sucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICAgIHRoaXMubWVtb3J5RHVtcHNfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgbWVtb3J5RHVtcHMoKSB7CisgICAgICByZXR1cm4gdGhpcy5tZW1vcnlEdW1wc187CisgICAgfSwKKworICAgIHNldCBtZW1vcnlEdW1wcyhtZW1vcnlEdW1wcykgeworICAgICAgdGhpcy5tZW1vcnlEdW1wc18gPSBtZW1vcnlEdW1wczsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmNsZWFyVHJhY2tzXygpOworCisgICAgICAvLyBTaG93IG5vIHRyYWNrcyBpZiB0aGVyZSBhcmUgbm8gZHVtcHMuCisgICAgICBpZiAoIXRoaXMubWVtb3J5RHVtcHNfIHx8ICF0aGlzLm1lbW9yeUR1bXBzXy5sZW5ndGgpCisgICAgICAgIHJldHVybjsKKworICAgICAgdGhpcy5hcHBlbmRBbGxvY2F0ZWRNZW1vcnlUcmFja18oKTsKKyAgICB9LAorCisgICAgYXBwZW5kQWxsb2NhdGVkTWVtb3J5VHJhY2tfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZXJpZXMgPSB0ci51aS50cmFja3MuYnVpbGRQcm9jZXNzQWxsb2NhdGVkTWVtb3J5Q2hhcnRTZXJpZXMoCisgICAgICAgICAgdGhpcy5tZW1vcnlEdW1wc18pOworICAgICAgaWYgKCFzZXJpZXMpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5DaGFydFRyYWNrKHRoaXMudmlld3BvcnQpOworICAgICAgdHJhY2suaGVhZGluZyA9ICdBbGxvY2F0ZWQgbWVtb3J5IChwZXIgYWxsb2NhdG9yKSc7CisgICAgICB0cmFjay5oZWlnaHQgPSBBTExPQ0FURURfTUVNT1JZX1RSQUNLX0hFSUdIVCArICdweCc7CisgICAgICB0cmFjay5zZXJpZXMgPSBzZXJpZXM7CisgICAgICB0cmFjay5hdXRvU2V0QWxsQXhlcyh7ZXhwYW5kTWF4OiB0cnVlfSk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrOiBQcm9jZXNzTWVtb3J5RHVtcFRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcHJvY2Vzc19tZW1vcnlfZHVtcF90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9wcm9jZXNzX21lbW9yeV9kdW1wX3RyYWNrX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGQ3MjJjCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcHJvY2Vzc19tZW1vcnlfZHVtcF90cmFja190ZXN0Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvcHJvY2Vzc19tZW1vcnlfZHVtcF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL21lbW9yeV9kdW1wX3RyYWNrX3Rlc3RfdXRpbHMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgVmlld3BvcnQgPSB0ci51aS5UaW1lbGluZVZpZXdwb3J0OworICB2YXIgUHJvY2Vzc01lbW9yeUR1bXBUcmFjayA9IHRyLnVpLnRyYWNrcy5Qcm9jZXNzTWVtb3J5RHVtcFRyYWNrOworICB2YXIgY3JlYXRlVGVzdFByb2Nlc3NNZW1vcnlEdW1wcyA9IHRyLnVpLnRyYWNrcy5jcmVhdGVUZXN0UHJvY2Vzc01lbW9yeUR1bXBzOworCisgIGZ1bmN0aW9uIGluc3RhbnRpYXRlVHJhY2sod2l0aFZNUmVnaW9ucywgd2l0aEFsbG9jYXRvckR1bXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkVHJhY2tDb3VudCkgeworICAgIHZhciBkdW1wcyA9IGNyZWF0ZVRlc3RQcm9jZXNzTWVtb3J5RHVtcHMod2l0aFZNUmVnaW9ucywgd2l0aEFsbG9jYXRvckR1bXBzKTsKKworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFByb2Nlc3NNZW1vcnlEdW1wVHJhY2sodmlld3BvcnQpOworICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOworICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOworCisgICAgdHJhY2subWVtb3J5RHVtcHMgPSBkdW1wczsKKworICAgIC8vIFRPRE8ocGV0cmNlcm1hayk6IENoZWNrIHRoYXQgdGhlIGRpdiBoYXMgaW5kZWVkIHplcm8gc2l6ZS4KKyAgICBpZiAoZXhwZWN0ZWRUcmFja0NvdW50ID4gMCkKKyAgICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOworCisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA1MCwgdHJhY2suY2xpZW50V2lkdGgpOworICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisKKyAgICBhc3NlcnQubGVuZ3RoT2YodHJhY2sudHJhY2tzXywgZXhwZWN0ZWRUcmFja0NvdW50KTsKKyAgfTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRob3V0TWVtb3J5QWxsb2NhdG9yRHVtcHMnLCBmdW5jdGlvbigpIHsKKyAgICBpbnN0YW50aWF0ZVRyYWNrLmNhbGwodGhpcywgZmFsc2UsIGZhbHNlLCAwKTsKKyAgfSk7CisgIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhNZW1vcnlBbGxvY2F0b3JEdW1wcycsIGZ1bmN0aW9uKCkgeworICAgIGluc3RhbnRpYXRlVHJhY2suY2FsbCh0aGlzLCBmYWxzZSwgdHJ1ZSwgMSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcHJvY2Vzc19zdW1tYXJ5X3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE5YjE4YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFjay5odG1sCkBAIC0wLDAgKzEsMTI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvcmVjdF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9jb2xvcl9zY2hlbWUuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIFZpc3VhbGl6ZXMgYSBQcm9jZXNzJ3Mgc3RhdGUgdXNpbmcgYSBzZXJpZXMgb2YgcmVjdHMgdG8gcmVwcmVzZW50IGFjdGl2aXR5LgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBQcm9jZXNzU3VtbWFyeVRyYWNrID0gdHIudWkuYi5kZWZpbmUoJ3Byb2Nlc3Mtc3VtbWFyeS10cmFjaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIudWkudHJhY2tzLlJlY3RUcmFjayk7CisKKyAgUHJvY2Vzc1N1bW1hcnlUcmFjay5idWlsZFJlY3RzRnJvbVByb2Nlc3MgPSBmdW5jdGlvbihwcm9jZXNzKSB7CisgICAgaWYgKCFwcm9jZXNzKQorICAgICAgcmV0dXJuIFtdOworCisgICAgdmFyIG9wcyA9IFtdOworICAgIC8vIGJ1aWxkIGxpc3Qgb2Ygc3RhcnQvZW5kIG9wcyBmb3IgZWFjaCB0b3AgbGV2ZWwgb3IgaW1wb3J0YW50IHNsaWNlCisgICAgdmFyIHB1c2hPcCA9IGZ1bmN0aW9uKGlzU3RhcnQsIHRpbWUsIHNsaWNlKSB7CisgICAgICBvcHMucHVzaCh7CisgICAgICAgIGlzU3RhcnQ6IGlzU3RhcnQsCisgICAgICAgIHRpbWU6IHRpbWUsCisgICAgICAgIHNsaWNlOiBzbGljZQorICAgICAgfSk7CisgICAgfTsKKyAgICBmb3IgKHZhciB0aWQgaW4gcHJvY2Vzcy50aHJlYWRzKSB7CisgICAgICB2YXIgc2xpY2VHcm91cCA9IHByb2Nlc3MudGhyZWFkc1t0aWRdLnNsaWNlR3JvdXA7CisKKyAgICAgIHNsaWNlR3JvdXAudG9wTGV2ZWxTbGljZXMuZm9yRWFjaChmdW5jdGlvbihzbGljZSkgeworICAgICAgICBwdXNoT3AodHJ1ZSwgc2xpY2Uuc3RhcnQsIHVuZGVmaW5lZCk7CisgICAgICAgIHB1c2hPcChmYWxzZSwgc2xpY2UuZW5kLCB1bmRlZmluZWQpOworICAgICAgfSk7CisgICAgICBzbGljZUdyb3VwLnNsaWNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNsaWNlKSB7CisgICAgICAgIGlmIChzbGljZS5pbXBvcnRhbnQpIHsKKyAgICAgICAgICBwdXNoT3AodHJ1ZSwgc2xpY2Uuc3RhcnQsIHNsaWNlKTsKKyAgICAgICAgICBwdXNoT3AoZmFsc2UsIHNsaWNlLmVuZCwgc2xpY2UpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICB9CisgICAgb3BzLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS50aW1lIC0gYi50aW1lOyB9KTsKKworICAgIHZhciByZWN0cyA9IFtdOworICAgIC8qKgorICAgICAqIEJ1aWxkIGEgcm93IG9mIHJlY3RzIHdoaWNoIGRpc3BsYXkgb25lIHdheSBmb3IgdW5pbXBvcnRhbnQgYWN0aXZpdHksCisgICAgICogYW5kIGR1cmluZyBpbXBvcnRhbnQgc2xpY2VzLCBzaG93IHVwIGFzIHRob3NlIGltcG9ydGFudCBzbGljZXMuCisgICAgICoKKyAgICAgKiBJZiBhbiBpbXBvcnRhbnQgc2xpY2Ugc3RhcnRzIGluIHRoZSBtaWRkbGUgb2YgYW5vdGhlciwKKyAgICAgKiBqdXN0IGRyb3AgaXQgb24gdGhlIGZsb29yLgorICAgICAqLworICAgIHZhciBnZW5lcmljQ29sb3JJZCA9IHRyLnVpLmIuZ2V0Q29sb3JJZEZvclJlc2VydmVkTmFtZSgnZ2VuZXJpY193b3JrJyk7CisgICAgdmFyIHB1c2hSZWN0ID0gZnVuY3Rpb24oc3RhcnQsIGVuZCwgc2xpY2UpIHsKKyAgICAgIHJlY3RzLnB1c2gobmV3IHRyLnVpLnRyYWNrcy5SZWN0KAorICAgICAgICAgIHNsaWNlLCAvKiBtb2RlbEl0ZW06IHNob3cgc2VsZWN0aW9uIHN0YXRlIG9mIHNsaWNlIGlmIHByZXNlbnQgKi8KKyAgICAgICAgICBzbGljZSA/IHNsaWNlLnRpdGxlIDogJycsIC8qIHRpdGxlICovCisgICAgICAgICAgc2xpY2UgPyBzbGljZS5jb2xvcklkIDogZ2VuZXJpY0NvbG9ySWQsIC8qIGNvbG9ySWQgKi8KKyAgICAgICAgICBzdGFydCwgLyogc3RhcnQgKi8KKyAgICAgICAgICBlbmQgLSBzdGFydCAvKiBkdXJhdGlvbiAqLykpOworICAgIH0KKyAgICB2YXIgZGVwdGggPSAwOworICAgIHZhciBjdXJyZW50U2xpY2UgPSB1bmRlZmluZWQ7CisgICAgdmFyIGxhc3RTdGFydCA9IHVuZGVmaW5lZDsKKyAgICBvcHMuZm9yRWFjaChmdW5jdGlvbihvcCkgeworICAgICAgZGVwdGggKz0gb3AuaXNTdGFydCA/IDEgOiAtMTsKKworICAgICAgaWYgKGN1cnJlbnRTbGljZSkgeworICAgICAgICAvLyBzaW1wbHkgZmluZCBlbmQgb2YgY3VycmVudCBpbXBvcnRhbnQgc2xpY2UKKyAgICAgICAgaWYgKCFvcC5pc1N0YXJ0ICYmIG9wLnNsaWNlID09IGN1cnJlbnRTbGljZSkgeworICAgICAgICAgIC8vIGltcG9ydGFudCBzbGljZSBoYXMgZW5kZWQKKyAgICAgICAgICBwdXNoUmVjdChsYXN0U3RhcnQsIG9wLnRpbWUsIGN1cnJlbnRTbGljZSk7CisgICAgICAgICAgbGFzdFN0YXJ0ID0gZGVwdGggPj0gMSA/IG9wLnRpbWUgOiB1bmRlZmluZWQ7CisgICAgICAgICAgY3VycmVudFNsaWNlID0gdW5kZWZpbmVkOworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICBpZiAob3AuaXNTdGFydCkgeworICAgICAgICAgIGlmIChkZXB0aCA9PSAxKSB7CisgICAgICAgICAgICBsYXN0U3RhcnQgPSBvcC50aW1lOworICAgICAgICAgICAgY3VycmVudFNsaWNlID0gb3Auc2xpY2U7CisgICAgICAgICAgfSBlbHNlIGlmIChvcC5zbGljZSkgeworICAgICAgICAgICAgLy8gc3dpdGNoIHRvIHNsaWNlCisgICAgICAgICAgICBpZiAob3AudGltZSAhPSBsYXN0U3RhcnQpIHsKKyAgICAgICAgICAgICAgcHVzaFJlY3QobGFzdFN0YXJ0LCBvcC50aW1lLCB1bmRlZmluZWQpOworICAgICAgICAgICAgICBsYXN0U3RhcnQgPSBvcC50aW1lOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFNsaWNlID0gb3Auc2xpY2U7CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGlmIChkZXB0aCA9PSAwKSB7CisgICAgICAgICAgICBwdXNoUmVjdChsYXN0U3RhcnQsIG9wLnRpbWUsIHVuZGVmaW5lZCk7CisgICAgICAgICAgICBsYXN0U3RhcnQgPSB1bmRlZmluZWQ7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfSk7CisgICAgcmV0dXJuIHJlY3RzOworICB9OworCisgIFByb2Nlc3NTdW1tYXJ5VHJhY2sucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgIH0sCisKKyAgICBnZXQgcHJvY2VzcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NfOworICAgIH0sCisKKyAgICBzZXQgcHJvY2Vzcyhwcm9jZXNzKSB7CisgICAgICB0aGlzLnByb2Nlc3NfID0gcHJvY2VzczsKKyAgICAgIHRoaXMucmVjdHMgPSBQcm9jZXNzU3VtbWFyeVRyYWNrLmJ1aWxkUmVjdHNGcm9tUHJvY2Vzcyhwcm9jZXNzKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQcm9jZXNzU3VtbWFyeVRyYWNrOiBQcm9jZXNzU3VtbWFyeVRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcHJvY2Vzc19zdW1tYXJ5X3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkwNTI1YgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFja190ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3Byb2Nlc3Nfc3VtbWFyeV90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2VfZ3JvdXAuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsKKyAgdmFyIFByb2Nlc3NTdW1tYXJ5VHJhY2sgPSB0ci51aS50cmFja3MuUHJvY2Vzc1N1bW1hcnlUcmFjazsKKyAgdmFyIG5ld1NsaWNlID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlOworICB2YXIgbmV3U2xpY2VOYW1lZCA9IHRyLmMudGVzdF91dGlscy5uZXdTbGljZU5hbWVkOworCisgIHRlc3QoJ2J1aWxkUmVjdFNpbXBsZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBwcm9jZXNzOworICAgIHZhciBtb2RlbCA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgeworICAgICAgcHJvY2VzcyA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICAgIC8vIFhYWFgKKyAgICAgIC8vICAgIFhYWFgKKyAgICAgIHZhciB0aHJlYWQxID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICAgIHRocmVhZDEuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2UoMSwgNCkpOworICAgICAgdmFyIHRocmVhZDIgPSBwcm9jZXNzLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgICAgdGhyZWFkMi5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZSg0LCA0KSk7CisgICAgfSk7CisKKyAgICB2YXIgcmVjdHMgPSBQcm9jZXNzU3VtbWFyeVRyYWNrLmJ1aWxkUmVjdHNGcm9tUHJvY2Vzcyhwcm9jZXNzKTsKKworICAgIGFzc2VydC5lcXVhbChyZWN0cy5sZW5ndGgsIDEpOworICAgIHZhciByZWN0ID0gcmVjdHNbMF07CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdC5zdGFydCwgMSwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdC5lbmQsIDgsIDFlLTUpOworICB9KTsKKworICB0ZXN0KCdidWlsZFJlY3RDb21wbGV4JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHByb2Nlc3M7CisgICAgdmFyIG1vZGVsID0gdHIuYy50ZXN0X3V0aWxzLm5ld01vZGVsKGZ1bmN0aW9uKG1vZGVsKSB7CisgICAgICBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgICAgLy8gWFhYWCAgICBYIFggWFgKKyAgICAgIC8vICAgIFhYWFggWFhYICAgIFgKKyAgICAgIHZhciB0aHJlYWQxID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICAgIHRocmVhZDEuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2UoMSwgNCkpOworICAgICAgdGhyZWFkMS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZSg5LCAxKSk7CisgICAgICB0aHJlYWQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDExLCAxKSk7CisgICAgICB0aHJlYWQxLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDEzLCAyKSk7CisgICAgICB2YXIgdGhyZWFkMiA9IHByb2Nlc3MuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgICB0aHJlYWQyLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlKDQsIDQpKTsKKyAgICAgIHRocmVhZDIuc2xpY2VHcm91cC5wdXNoU2xpY2UobmV3U2xpY2UoOSwgMykpOworICAgICAgdGhyZWFkMi5zbGljZUdyb3VwLnB1c2hTbGljZShuZXdTbGljZSgxNiwgMSkpOworICAgIH0pOworCisgICAgdmFyIHJlY3RzID0gUHJvY2Vzc1N1bW1hcnlUcmFjay5idWlsZFJlY3RzRnJvbVByb2Nlc3MocHJvY2Vzcyk7CisKKyAgICBhc3NlcnQuZXF1YWwoNCwgcmVjdHMubGVuZ3RoKTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1swXS5zdGFydCwgMSwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMF0uZW5kLCA4LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1sxXS5zdGFydCwgOSwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMV0uZW5kLCAxMiwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMl0uc3RhcnQsIDEzLCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1syXS5lbmQsIDE1LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1szXS5zdGFydCwgMTYsIDFlLTUpOworICAgIGFzc2VydC5jbG9zZVRvKHJlY3RzWzNdLmVuZCwgMTcsIDFlLTUpOworICB9KTsKKworICB0ZXN0KCdidWlsZFJlY3RJbXBvcnRhbnRTbGljZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBwcm9jZXNzOworICAgIHZhciBtb2RlbCA9IHRyLmMudGVzdF91dGlscy5uZXdNb2RlbChmdW5jdGlvbihtb2RlbCkgeworICAgICAgLy8gICAgWyAgICB1bmltcG9ydGFudCAgICBdCisgICAgICAvLyAgICAgICAgIFtpbXBvcnRhbnRdCisgICAgICB2YXIgYSA9IG5ld1NsaWNlTmFtZWQoJ3VuaW1wb3J0YW50JywgNCwgMjEpOworICAgICAgdmFyIGIgPSBuZXdTbGljZU5hbWVkKCdpbXBvcnRhbnQnLCA5LCAxMSk7CisgICAgICBiLmltcG9ydGFudCA9IHRydWU7CisgICAgICBwcm9jZXNzID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpOworICAgICAgcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCgxKS5zbGljZUdyb3VwLnB1c2hTbGljZXMoW2EsIGJdKTsKKworICAgICAgbW9kZWwuaW1wb3J0YW50U2xpY2UgPSBiOworICAgIH0pOworCisgICAgdmFyIHJlY3RzID0gUHJvY2Vzc1N1bW1hcnlUcmFjay5idWlsZFJlY3RzRnJvbVByb2Nlc3MocHJvY2Vzcyk7CisKKyAgICBhc3NlcnQuZXF1YWwoMywgcmVjdHMubGVuZ3RoKTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1swXS5zdGFydCwgNCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMF0uZW5kLCA5LCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1sxXS5zdGFydCwgOSwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMV0uZW5kLCAyMCwgMWUtNSk7CisgICAgYXNzZXJ0LmNsb3NlVG8ocmVjdHNbMl0uc3RhcnQsIDIwLCAxZS01KTsKKyAgICBhc3NlcnQuY2xvc2VUbyhyZWN0c1syXS5lbmQsIDI1LCAxZS01KTsKKworICAgIC8vIG1pZGRsZSByZWN0IHJlcHJlc2VudHMgaW1wb3J0YW50IHNsaWNlLCBzbyBjb2xvcklkICYgdGl0bGUgYXJlIHByZXNlcnZlZAorICAgIGFzc2VydC5lcXVhbChyZWN0c1sxXS50aXRsZSwgbW9kZWwuaW1wb3J0YW50U2xpY2UudGl0bGUpOworICAgIGFzc2VydC5lcXVhbChyZWN0c1sxXS5jb2xvcklkLCBtb2RlbC5pbXBvcnRhbnRTbGljZS5jb2xvcklkKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9wcm9jZXNzX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9wcm9jZXNzX3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYzMTU2YwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3NfdHJhY2suaHRtbApAQCAtMCwwICsxLDE1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3Byb2Nlc3NfbWVtb3J5X2R1bXBfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZHJhd19oZWxwZXJzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIHZhciBQcm9jZXNzVHJhY2tCYXNlID0gdHIudWkudHJhY2tzLlByb2Nlc3NUcmFja0Jhc2U7CisKKyAgLyoqCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKi8KKyAgdmFyIFByb2Nlc3NUcmFjayA9IHRyLnVpLmIuZGVmaW5lKCdwcm9jZXNzLXRyYWNrJywgUHJvY2Vzc1RyYWNrQmFzZSk7CisKKyAgUHJvY2Vzc1RyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFByb2Nlc3NUcmFja0Jhc2UucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuUHJvY2Vzc1RyYWNrQmFzZS5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgfSwKKworICAgIGRyYXdUcmFjazogZnVuY3Rpb24odHlwZSkgeworICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLklOU1RBTlRfRVZFTlQ6CisgICAgICAgICAgaWYgKCF0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHMgfHwKKyAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQmFzZS5pbnN0YW50RXZlbnRzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOworCisgICAgICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgICAgIHZhciBib3VuZHMgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgIHZhciBjYW52YXNCb3VuZHMgPSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworCisgICAgICAgICAgY3R4LnNhdmUoKTsKKyAgICAgICAgICBjdHgudHJhbnNsYXRlKDAsIHBpeGVsUmF0aW8gKiAoYm91bmRzLnRvcCAtIGNhbnZhc0JvdW5kcy50b3ApKTsKKworICAgICAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisgICAgICAgICAgdmFyIHZpZXdMV29ybGQgPSBkdC54Vmlld1RvV29ybGQoMCk7CisgICAgICAgICAgdmFyIHZpZXdSV29ybGQgPSBkdC54Vmlld1RvV29ybGQoCisgICAgICAgICAgICAgIGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW8pOworCisgICAgICAgICAgdHIudWkuYi5kcmF3SW5zdGFudFNsaWNlc0FzTGluZXMoCisgICAgICAgICAgICAgIGN0eCwKKyAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSwKKyAgICAgICAgICAgICAgdmlld0xXb3JsZCwKKyAgICAgICAgICAgICAgdmlld1JXb3JsZCwKKyAgICAgICAgICAgICAgYm91bmRzLmhlaWdodCwKKyAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQmFzZS5pbnN0YW50RXZlbnRzLAorICAgICAgICAgICAgICAyKTsKKworICAgICAgICAgIGN0eC5yZXN0b3JlKCk7CisKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIHRyLnVpLnRyYWNrcy5EcmF3VHlwZS5CQUNLR1JPVU5EOgorICAgICAgICAgIHRoaXMuZHJhd0JhY2tncm91bmRfKCk7CisgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIHJlY3Vyc2luZyBmdXJ0aGVyLCBQcm9jZXNzIGlzIHRoZSBvbmx5IGxldmVsIHRoYXQKKyAgICAgICAgICAvLyBkcmF3cyBiYWNrZ3JvdW5kcy4KKyAgICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuZHJhd1RyYWNrLmNhbGwodGhpcywgdHlwZSk7CisgICAgfSwKKworICAgIGRyYXdCYWNrZ3JvdW5kXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7CisgICAgICB2YXIgY2FudmFzQm91bmRzID0gY3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKworICAgICAgdmFyIGRyYXcgPSBmYWxzZTsKKyAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2VlZSc7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCEodGhpcy5jaGlsZHJlbltpXSBpbnN0YW5jZW9mIHRyLnVpLnRyYWNrcy5UcmFjaykgfHwKKyAgICAgICAgICAgICh0aGlzLmNoaWxkcmVuW2ldIGluc3RhbmNlb2YgdHIudWkudHJhY2tzLlNwYWNpbmdUcmFjaykpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZHJhdyA9ICFkcmF3OworICAgICAgICBpZiAoIWRyYXcpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuY2hpbGRyZW5baV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGN0eC5maWxsUmVjdCgwLCBwaXhlbFJhdGlvICogKGJvdW5kcy50b3AgLSBjYW52YXNCb3VuZHMudG9wKSwKKyAgICAgICAgICAgIGN0eC5jYW52YXMud2lkdGgsIHBpeGVsUmF0aW8gKiBib3VuZHMuaGVpZ2h0KTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgLy8gUHJvY2VzcyBtYXBzIHRvIHByb2Nlc3NCYXNlIGJlY2F1c2Ugd2UgZGVyaXZlIGZyb20gUHJvY2Vzc1RyYWNrQmFzZS4KKyAgICBzZXQgcHJvY2Vzcyhwcm9jZXNzKSB7CisgICAgICB0aGlzLnByb2Nlc3NCYXNlID0gcHJvY2VzczsKKyAgICB9LAorCisgICAgZ2V0IHByb2Nlc3MoKSB7CisgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFzZTsKKyAgICB9LAorCisgICAgZ2V0IGV2ZW50Q29udGFpbmVyKCkgeworICAgICAgcmV0dXJuIHRoaXMucHJvY2VzczsKKyAgICB9LAorCisgICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKKyAgICAgIGNvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMucHJvY2VzcywgdGhpcyk7CisgICAgICB0aGlzLnRyYWNrc18uZm9yRWFjaChmdW5jdGlvbih0cmFjaykgeworICAgICAgICB0cmFjay5hZGRDb250YWluZXJzVG9UcmFja01hcChjb250YWluZXJUb1RyYWNrTWFwKTsKKyAgICAgIH0pOworICAgIH0sCisKKyAgICBhcHBlbmRNZW1vcnlEdW1wVHJhY2tfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBwcm9jZXNzTWVtb3J5RHVtcHMgPSB0aGlzLnByb2Nlc3MubWVtb3J5RHVtcHM7CisgICAgICBpZiAocHJvY2Vzc01lbW9yeUR1bXBzLmxlbmd0aCkgeworICAgICAgICB2YXIgcG1kdCA9IG5ldyB0ci51aS50cmFja3MuUHJvY2Vzc01lbW9yeUR1bXBUcmFjayh0aGlzLnZpZXdwb3J0Xyk7CisgICAgICAgIHBtZHQubWVtb3J5RHVtcHMgPSBwcm9jZXNzTWVtb3J5RHVtcHM7CisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQocG1kdCk7CisgICAgICB9CisgICAgfSwKKworICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTogZnVuY3Rpb24oCisgICAgICAgIGxvV1gsIGhpV1gsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pIHsKKyAgICAgIGZ1bmN0aW9uIG9uUGlja0hpdChpbnN0YW50RXZlbnQpIHsKKyAgICAgICAgc2VsZWN0aW9uLnB1c2goaW5zdGFudEV2ZW50KTsKKyAgICAgIH0KKyAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5wcm9jZXNzQmFzZS5pbnN0YW50RXZlbnRzLAorICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguc3RhcnQ7IH0sCisgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5kdXJhdGlvbjsgfSwKKyAgICAgICAgICBsb1dYLCBoaVdYLAorICAgICAgICAgIG9uUGlja0hpdC5iaW5kKHRoaXMpKTsKKworICAgICAgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS4KKyAgICAgICAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2UuCisgICAgICAgICAgYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICB9LAorCisgICAgYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKHdvcmxkWCwgd29ybGRNYXhEaXN0LCBsb1ksIGhpWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uKSB7CisgICAgICB0aGlzLmFkZENsb3Nlc3RJbnN0YW50RXZlbnRUb1NlbGVjdGlvbih0aGlzLnByb2Nlc3NCYXNlLmluc3RhbnRFdmVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JsZFgsIHdvcmxkTWF4RGlzdCwgc2VsZWN0aW9uKTsKKyAgICAgIHRyLnVpLnRyYWNrcy5Db250YWluZXJUcmFjay5wcm90b3R5cGUuYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24uCisgICAgICAgICAgYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBQcm9jZXNzVHJhY2s6IFByb2Nlc3NUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcHJvY2Vzc190cmFja19iYXNlLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3Byb2Nlc3NfdHJhY2tfYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyYWZiNjIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuaHRtbApAQCAtMCwwICsxLDI3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL3RyYWNrcy9wcm9jZXNzX3RyYWNrX2Jhc2UuY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY29udGFpbmVyX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvY291bnRlcl90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2ZyYW1lX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3Mvb2JqZWN0X2luc3RhbmNlX2dyb3VwX3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvcHJvY2Vzc19zdW1tYXJ5X3RyYWNrLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3Mvc3BhY2luZ190cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3RocmVhZF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS9maWx0ZXIuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL21vZGVsX3NldHRpbmdzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RvbV9oZWxwZXJzLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisKKyAgdmFyIE9iamVjdFNuYXBzaG90VmlldyA9IHRyLnVpLmFuYWx5c2lzLk9iamVjdFNuYXBzaG90VmlldzsKKyAgdmFyIE9iamVjdEluc3RhbmNlVmlldyA9IHRyLnVpLmFuYWx5c2lzLk9iamVjdEluc3RhbmNlVmlldzsKKyAgdmFyIFNwYWNpbmdUcmFjayA9IHRyLnVpLnRyYWNrcy5TcGFjaW5nVHJhY2s7CisKKyAgLyoqCisgICAqIFZpc3VhbGl6ZXMgYSBQcm9jZXNzIGJ5IGJ1aWxkaW5nIFRocmVhZFRyYWNrcyBhbmQgQ291bnRlclRyYWNrcy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgUHJvY2Vzc1RyYWNrQmFzZSA9CisgICAgICB0ci51aS5iLmRlZmluZSgncHJvY2Vzcy10cmFjay1iYXNlJywgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrKTsKKworICBQcm9jZXNzVHJhY2tCYXNlLnByb3RvdHlwZSA9IHsKKworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLkNvbnRhaW5lclRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKworICAgICAgdGhpcy5wcm9jZXNzQmFzZV8gPSB1bmRlZmluZWQ7CisKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgncHJvY2Vzcy10cmFjay1iYXNlJyk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJyk7CisKKyAgICAgIHRoaXMucHJvY2Vzc05hbWVFbF8gPSB0ci51aS5iLmNyZWF0ZVNwYW4oKTsKKyAgICAgIHRoaXMucHJvY2Vzc05hbWVFbF8uY2xhc3NMaXN0LmFkZCgncHJvY2Vzcy10cmFjay1uYW1lJyk7CisKKyAgICAgIHRoaXMuaGVhZGVyRWxfID0gdHIudWkuYi5jcmVhdGVEaXYoe2NsYXNzTmFtZTogJ3Byb2Nlc3MtdHJhY2staGVhZGVyJ30pOworICAgICAgdGhpcy5oZWFkZXJFbF8uYXBwZW5kQ2hpbGQodGhpcy5wcm9jZXNzTmFtZUVsXyk7CisgICAgICB0aGlzLmhlYWRlckVsXy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25IZWFkZXJDbGlja18uYmluZCh0aGlzKSk7CisKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkZXJFbF8pOworICAgIH0sCisKKyAgICBnZXQgcHJvY2Vzc0Jhc2UoKSB7CisgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFzZV87CisgICAgfSwKKworICAgIHNldCBwcm9jZXNzQmFzZShwcm9jZXNzQmFzZSkgeworICAgICAgdGhpcy5wcm9jZXNzQmFzZV8gPSBwcm9jZXNzQmFzZTsKKworICAgICAgaWYgKHRoaXMucHJvY2Vzc0Jhc2VfKSB7CisgICAgICAgIHZhciBtb2RlbFNldHRpbmdzID0gbmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3ModGhpcy5wcm9jZXNzQmFzZV8ubW9kZWwpOworICAgICAgICB2YXIgZGVmYXVsdFZhbHVlID0gdGhpcy5wcm9jZXNzQmFzZV8uaW1wb3J0YW50OworICAgICAgICB0aGlzLmV4cGFuZGVkID0gbW9kZWxTZXR0aW5ncy5nZXRTZXR0aW5nRm9yKAorICAgICAgICAgICAgdGhpcy5wcm9jZXNzQmFzZV8sICdleHBhbmRlZCcsIGRlZmF1bHRWYWx1ZSk7CisgICAgICB9CisKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBleHBhbmRlZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLmNsYXNzTGlzdC5jb250YWlucygnZXhwYW5kZWQnKTsKKyAgICB9LAorCisgICAgc2V0IGV4cGFuZGVkKGV4cGFuZGVkKSB7CisgICAgICBleHBhbmRlZCA9ICEhZXhwYW5kZWQ7CisKKyAgICAgIGlmICh0aGlzLmV4cGFuZGVkID09PSBleHBhbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLmNsYXNzTGlzdC50b2dnbGUoJ2V4cGFuZGVkJyk7CisKKyAgICAgIC8vIEV4cGFuZGluZyBhbmQgY29sbGFwc2luZyB0cmFja3MgaXMsIGVzc2VudGlhbGx5LCBncm93aW5nIGFuZCBzaHJpbmtpbmcKKyAgICAgIC8vIHRoZSB2aWV3cG9ydC4gV2UgZGlzcGF0Y2ggYSBjaGFuZ2UgZXZlbnQgdG8gdHJpZ2dlciBhbnkgcHJvY2Vzc2luZworICAgICAgLy8gdG8gaGFwcGVuLgorICAgICAgdGhpcy52aWV3cG9ydF8uZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworCisgICAgICBpZiAoIXRoaXMucHJvY2Vzc0Jhc2VfKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciBtb2RlbFNldHRpbmdzID0gbmV3IHRyLm1vZGVsLk1vZGVsU2V0dGluZ3ModGhpcy5wcm9jZXNzQmFzZV8ubW9kZWwpOworICAgICAgbW9kZWxTZXR0aW5ncy5zZXRTZXR0aW5nRm9yKHRoaXMucHJvY2Vzc0Jhc2VfLCAnZXhwYW5kZWQnLCBleHBhbmRlZCk7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgICAgdGhpcy52aWV3cG9ydC5yZWJ1aWxkRXZlbnRUb1RyYWNrTWFwKCk7CisgICAgICB0aGlzLnZpZXdwb3J0LnJlYnVpbGRDb250YWluZXJUb1RyYWNrTWFwKCk7CisgICAgfSwKKworICAgIGdldCBoYXNWaXNpYmxlQ29udGVudCgpIHsKKyAgICAgIGlmICh0aGlzLmV4cGFuZGVkKQorICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAxOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIG9uSGVhZGVyQ2xpY2tfOiBmdW5jdGlvbihlKSB7CisgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50c186IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5jbGVhclRyYWNrc18oKTsKKworICAgICAgaWYgKCF0aGlzLnByb2Nlc3NCYXNlXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLnByb2Nlc3NOYW1lRWxfLnRleHRDb250ZW50ID0gdGhpcy5wcm9jZXNzQmFzZV8udXNlckZyaWVuZGx5TmFtZTsKKyAgICAgIHRoaXMuaGVhZGVyRWxfLnRpdGxlID0gdGhpcy5wcm9jZXNzQmFzZV8udXNlckZyaWVuZGx5RGV0YWlsczsKKworICAgICAgLy8gQ3JlYXRlIHRoZSBvYmplY3QgaW5zdGFuY2UgdHJhY2tzIGZvciB0aGlzIHByb2Nlc3MuCisgICAgICB0aGlzLndpbGxBcHBlbmRUcmFja3NfKCk7CisgICAgICBpZiAodGhpcy5leHBhbmRlZCkgeworICAgICAgICB0aGlzLmFwcGVuZE1lbW9yeUR1bXBUcmFja18oKTsKKyAgICAgICAgdGhpcy5hcHBlbmRPYmplY3RJbnN0YW5jZVRyYWNrc18oKTsKKyAgICAgICAgdGhpcy5hcHBlbmRDb3VudGVyVHJhY2tzXygpOworICAgICAgICB0aGlzLmFwcGVuZEZyYW1lVHJhY2tfKCk7CisgICAgICAgIHRoaXMuYXBwZW5kVGhyZWFkVHJhY2tzXygpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5hcHBlbmRTdW1tYXJ5VHJhY2tfKCk7CisgICAgICB9CisgICAgICB0aGlzLmRpZEFwcGVuZFRyYWNrc18oKTsKKyAgICB9LAorCisgICAgYWRkRXZlbnRzVG9UcmFja01hcDogZnVuY3Rpb24oZXZlbnRUb1RyYWNrTWFwKSB7CisgICAgICB0aGlzLnRyYWNrc18uZm9yRWFjaChmdW5jdGlvbih0cmFjaykgeworICAgICAgICB0cmFjay5hZGRFdmVudHNUb1RyYWNrTWFwKGV2ZW50VG9UcmFja01hcCk7CisgICAgICB9KTsKKyAgICB9LAorCisgICAgd2lsbEFwcGVuZFRyYWNrc186IGZ1bmN0aW9uKCkgeworICAgIH0sCisKKyAgICBkaWRBcHBlbmRUcmFja3NfOiBmdW5jdGlvbigpIHsKKyAgICB9LAorCisgICAgYXBwZW5kTWVtb3J5RHVtcFRyYWNrXzogZnVuY3Rpb24oKSB7CisgICAgfSwKKworICAgIGFwcGVuZFN1bW1hcnlUcmFja186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5Qcm9jZXNzU3VtbWFyeVRyYWNrKHRoaXMudmlld3BvcnQpOworICAgICAgdHJhY2sucHJvY2VzcyA9IHRoaXMucHJvY2VzczsKKyAgICAgIGlmICghdHJhY2suaGFzVmlzaWJsZUNvbnRlbnQpCisgICAgICAgIHJldHVybjsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgLy8gbm8gc3BhY2luZyB0cmFjaywgc2luY2UgdGhpcyB0cmFjayBvbmx5IHNob3duIGluIGNvbGxhcHNlZCBzdGF0ZQorICAgIH0sCisKKyAgICBhcHBlbmRGcmFtZVRyYWNrXzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZnJhbWVzID0gdGhpcy5wcm9jZXNzID8gdGhpcy5wcm9jZXNzLmZyYW1lcyA6IHVuZGVmaW5lZDsKKyAgICAgIGlmICghZnJhbWVzIHx8ICFmcmFtZXMubGVuZ3RoKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHZhciB0cmFjayA9IG5ldyB0ci51aS50cmFja3MuRnJhbWVUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgIHRyYWNrLmZyYW1lcyA9IGZyYW1lczsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgdGhpcy5iYWNrZ3JvdW5kUHJvdmlkZXIgPSB0cmFjazsKKyAgICB9LAorCisgICAgYXBwZW5kT2JqZWN0SW5zdGFuY2VUcmFja3NfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBpbnN0YW5jZXNCeVR5cGVOYW1lID0KKyAgICAgICAgICB0aGlzLnByb2Nlc3NCYXNlXy5vYmplY3RzLmdldEFsbEluc3RhbmNlc0J5VHlwZU5hbWUoKTsKKyAgICAgIHZhciBpbnN0YW5jZVR5cGVOYW1lcyA9IHRyLmIuZGljdGlvbmFyeUtleXMoaW5zdGFuY2VzQnlUeXBlTmFtZSk7CisgICAgICBpbnN0YW5jZVR5cGVOYW1lcy5zb3J0KCk7CisKKyAgICAgIHZhciBkaWRBcHBlbmRBdExlYXN0T25lVHJhY2sgPSBmYWxzZTsKKyAgICAgIGluc3RhbmNlVHlwZU5hbWVzLmZvckVhY2goZnVuY3Rpb24odHlwZU5hbWUpIHsKKyAgICAgICAgdmFyIGFsbEluc3RhbmNlcyA9IGluc3RhbmNlc0J5VHlwZU5hbWVbdHlwZU5hbWVdOworCisgICAgICAgIC8vIElmIGEgb2JqZWN0IHNuYXBzaG90IGhhcyBhIHZpZXcgaXQgd2lsbCBiZSBzaG93biwKKyAgICAgICAgLy8gdW5sZXNzIHRoZSB2aWV3IGFza2VkIGZvciBpdCB0byBub3QgYmUgc2hvd24uCisgICAgICAgIHZhciBpbnN0YW5jZVZpZXdJbmZvID0gT2JqZWN0SW5zdGFuY2VWaWV3LmdldFR5cGVJbmZvKAorICAgICAgICAgICAgdW5kZWZpbmVkLCB0eXBlTmFtZSk7CisgICAgICAgIHZhciBzbmFwc2hvdFZpZXdJbmZvID0gT2JqZWN0U25hcHNob3RWaWV3LmdldFR5cGVJbmZvKAorICAgICAgICAgICAgdW5kZWZpbmVkLCB0eXBlTmFtZSk7CisgICAgICAgIGlmIChpbnN0YW5jZVZpZXdJbmZvICYmICFpbnN0YW5jZVZpZXdJbmZvLm1ldGFkYXRhLnNob3dJblRyYWNrVmlldykKKyAgICAgICAgICBpbnN0YW5jZVZpZXdJbmZvID0gdW5kZWZpbmVkOworICAgICAgICBpZiAoc25hcHNob3RWaWV3SW5mbyAmJiAhc25hcHNob3RWaWV3SW5mby5tZXRhZGF0YS5zaG93SW5UcmFja1ZpZXcpCisgICAgICAgICAgc25hcHNob3RWaWV3SW5mbyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdmFyIGhhc1ZpZXdJbmZvID0gaW5zdGFuY2VWaWV3SW5mbyB8fCBzbmFwc2hvdFZpZXdJbmZvOworCisgICAgICAgIC8vIFRoZXJlIGFyZSBzb21lIGluc3RhbmNlcyB0aGF0IGRvbid0IG1lcml0IHRoZWlyIG93biB0cmFjayBpbgorICAgICAgICAvLyB0aGUgVUkuIEZpbHRlciB0aGVtIG91dC4KKyAgICAgICAgdmFyIHZpc2libGVJbnN0YW5jZXMgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxJbnN0YW5jZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBhbGxJbnN0YW5jZXNbaV07CisKKyAgICAgICAgICAvLyBEbyBub3QgY3JlYXRlIHRyYWNrcyBmb3IgaW5zdGFuY2VzIHRoYXQgaGF2ZSBubyBzbmFwc2hvdHMuCisgICAgICAgICAgaWYgKGluc3RhbmNlLnNuYXBzaG90cy5sZW5ndGggPT09IDApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIC8vIERvIG5vdCBjcmVhdGUgdHJhY2tzIGZvciBpbnN0YW5jZXMgdGhhdCBoYXZlIGltcGxpY2l0IHNuYXBzaG90cworICAgICAgICAgIC8vIGFuZCBkb24ndCBoYXZlIGEgdmlldy4KKyAgICAgICAgICBpZiAoaW5zdGFuY2UuaGFzSW1wbGljaXRTbmFwc2hvdHMgJiYgIWhhc1ZpZXdJbmZvKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICB2aXNpYmxlSW5zdGFuY2VzLnB1c2goaW5zdGFuY2UpOworICAgICAgICB9CisgICAgICAgIGlmICh2aXNpYmxlSW5zdGFuY2VzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gTG9vayB1cCB0aGUgY29uc3RydWN0b3IgZm9yIHRoaXMgdHJhY2ssIG9yIHVzZSB0aGUgZGVmYXVsdAorICAgICAgICAvLyBjb25zdHJ1Y3RvciBpZiBub25lIGV4aXN0cy4KKyAgICAgICAgdmFyIHRyYWNrQ29uc3RydWN0b3IgPQorICAgICAgICAgICAgdHIudWkudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2suZ2V0Q29uc3RydWN0b3IoCisgICAgICAgICAgICAgICAgdW5kZWZpbmVkLCB0eXBlTmFtZSk7CisgICAgICAgIGlmICghdHJhY2tDb25zdHJ1Y3RvcikgeworICAgICAgICAgIHZhciBzbmFwc2hvdFZpZXdJbmZvID0gT2JqZWN0U25hcHNob3RWaWV3LmdldFR5cGVJbmZvKAorICAgICAgICAgICAgICB1bmRlZmluZWQsIHR5cGVOYW1lKTsKKyAgICAgICAgICBpZiAoc25hcHNob3RWaWV3SW5mbyAmJiBzbmFwc2hvdFZpZXdJbmZvLm1ldGFkYXRhLnNob3dJbnN0YW5jZXMpIHsKKyAgICAgICAgICAgIHRyYWNrQ29uc3RydWN0b3IgPSB0ci51aS50cmFja3MuT2JqZWN0SW5zdGFuY2VHcm91cFRyYWNrOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0cmFja0NvbnN0cnVjdG9yID0gdHIudWkudHJhY2tzLk9iamVjdEluc3RhbmNlVHJhY2s7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciB0cmFjayA9IG5ldyB0cmFja0NvbnN0cnVjdG9yKHRoaXMudmlld3BvcnQpOworICAgICAgICB0cmFjay5vYmplY3RJbnN0YW5jZXMgPSB2aXNpYmxlSW5zdGFuY2VzOworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICAgICAgZGlkQXBwZW5kQXRMZWFzdE9uZVRyYWNrID0gdHJ1ZTsKKyAgICAgIH0sIHRoaXMpOworICAgICAgaWYgKGRpZEFwcGVuZEF0TGVhc3RPbmVUcmFjaykKKyAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChuZXcgU3BhY2luZ1RyYWNrKHRoaXMudmlld3BvcnQpKTsKKyAgICB9LAorCisgICAgYXBwZW5kQ291bnRlclRyYWNrc186IGZ1bmN0aW9uKCkgeworICAgICAgLy8gQWRkIGNvdW50ZXIgdHJhY2tzIGZvciB0aGlzIHByb2Nlc3MuCisgICAgICB2YXIgY291bnRlcnMgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5wcm9jZXNzQmFzZS5jb3VudGVycyk7CisgICAgICBjb3VudGVycy5zb3J0KHRyLm1vZGVsLkNvdW50ZXIuY29tcGFyZSk7CisKKyAgICAgIC8vIENyZWF0ZSB0aGUgY291bnRlcnMgZm9yIHRoaXMgcHJvY2Vzcy4KKyAgICAgIGNvdW50ZXJzLmZvckVhY2goZnVuY3Rpb24oY291bnRlcikgeworICAgICAgICB2YXIgdHJhY2sgPSBuZXcgdHIudWkudHJhY2tzLkNvdW50ZXJUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgICAgdHJhY2suY291bnRlciA9IGNvdW50ZXI7CisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBTcGFjaW5nVHJhY2sodGhpcy52aWV3cG9ydCkpOworICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgYXBwZW5kVGhyZWFkVHJhY2tzXzogZnVuY3Rpb24oKSB7CisgICAgICAvLyBHZXQgYSBzb3J0ZWQgbGlzdCBvZiB0aHJlYWRzLgorICAgICAgdmFyIHRocmVhZHMgPSB0ci5iLmRpY3Rpb25hcnlWYWx1ZXModGhpcy5wcm9jZXNzQmFzZS50aHJlYWRzKTsKKyAgICAgIHRocmVhZHMuc29ydCh0ci5tb2RlbC5UaHJlYWQuY29tcGFyZSk7CisKKyAgICAgIC8vIENyZWF0ZSB0aGUgdGhyZWFkcy4KKyAgICAgIHRocmVhZHMuZm9yRWFjaChmdW5jdGlvbih0aHJlYWQpIHsKKyAgICAgICAgdmFyIHRyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5UaHJlYWRUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgICAgdHJhY2sudGhyZWFkID0gdGhyZWFkOworICAgICAgICBpZiAoIXRyYWNrLmhhc1Zpc2libGVDb250ZW50KQorICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0cmFjayk7CisgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQobmV3IFNwYWNpbmdUcmFjayh0aGlzLnZpZXdwb3J0KSk7CisgICAgICB9LmJpbmQodGhpcykpOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFByb2Nlc3NUcmFja0Jhc2U6IFByb2Nlc3NUcmFja0Jhc2UKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3JlY3RfdHJhY2suY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcmVjdF90cmFjay5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvcmVjdF90cmFjay5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3JlY3RfdHJhY2suY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9yZWN0X3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9yZWN0X3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU0NDk2ZAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3JlY3RfdHJhY2suaHRtbApAQCAtMCwwICsxLDI0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL3RyYWNrcy9yZWN0X3RyYWNrLmNzcyI+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS9zb3J0ZWRfYXJyYXlfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL3Byb3h5X3NlbGVjdGFibGVfaXRlbS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kcmF3X2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZmFzdF9yZWN0X3JlbmRlcmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hlYWRpbmcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworCisgIC8qKgorICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYW4gYXJyYXkgb2YgUmVjdCBvYmplY3RzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1RyYWNrfQorICAgKi8KKyAgdmFyIFJlY3RUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ3JlY3QtdHJhY2snLCB0ci51aS50cmFja3MuVHJhY2spOworCisgIFJlY3RUcmFjay5wcm90b3R5cGUgPSB7CisKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3JlY3QtdHJhY2snKTsKKyAgICAgIHRoaXMuYXN5bmNTdHlsZV8gPSBmYWxzZTsKKyAgICAgIHRoaXMucmVjdHNfID0gbnVsbDsKKworICAgICAgdGhpcy5oZWFkaW5nXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLWhlYWRpbmcnKTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGhpcy5oZWFkaW5nXyk7CisgICAgfSwKKworICAgIHNldCBoZWFkaW5nKGhlYWRpbmcpIHsKKyAgICAgIHRoaXMuaGVhZGluZ18uaGVhZGluZyA9IGhlYWRpbmc7CisgICAgfSwKKworICAgIGdldCBoZWFkaW5nKCkgeworICAgICAgcmV0dXJuIHRoaXMuaGVhZGluZ18uaGVhZGluZzsKKyAgICB9LAorCisgICAgc2V0IHRvb2x0aXAodG9vbHRpcCkgeworICAgICAgdGhpcy5oZWFkaW5nXy50b29sdGlwID0gdG9vbHRpcDsKKyAgICB9LAorCisgICAgc2V0IHNlbGVjdGlvbkdlbmVyYXRvcihnZW5lcmF0b3IpIHsKKyAgICAgIHRoaXMuaGVhZGluZ18uc2VsZWN0aW9uR2VuZXJhdG9yID0gZ2VuZXJhdG9yOworICAgIH0sCisKKyAgICBzZXQgZXhwYW5kZWQoZXhwYW5kZWQpIHsKKyAgICAgIHRoaXMuaGVhZGluZ18uZXhwYW5kZWQgPSAhIWV4cGFuZGVkOworICAgIH0sCisKKyAgICBzZXQgYXJyb3dWaXNpYmxlKGFycm93VmlzaWJsZSkgeworICAgICAgdGhpcy5oZWFkaW5nXy5hcnJvd1Zpc2libGUgPSAhIWFycm93VmlzaWJsZTsKKyAgICB9LAorCisgICAgZ2V0IGV4cGFuZGVkKCkgeworICAgICAgcmV0dXJuIHRoaXMuaGVhZGluZ18uZXhwYW5kZWQ7CisgICAgfSwKKworICAgIGdldCBhc3luY1N0eWxlKCkgeworICAgICAgcmV0dXJuIHRoaXMuYXN5bmNTdHlsZV87CisgICAgfSwKKworICAgIHNldCBhc3luY1N0eWxlKHYpIHsKKyAgICAgIHRoaXMuYXN5bmNTdHlsZV8gPSAhIXY7CisgICAgfSwKKworICAgIGdldCByZWN0cygpIHsKKyAgICAgIHJldHVybiB0aGlzLnJlY3RzXzsKKyAgICB9LAorCisgICAgc2V0IHJlY3RzKHJlY3RzKSB7CisgICAgICB0aGlzLnJlY3RzXyA9IHJlY3RzIHx8IFtdOworICAgICAgdGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpOworICAgIH0sCisKKyAgICBnZXQgaGVpZ2h0KCkgeworICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmhlaWdodDsKKyAgICB9LAorCisgICAgc2V0IGhlaWdodChoZWlnaHQpIHsKKyAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0OworICAgICAgdGhpcy5pbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcigpOworICAgIH0sCisKKyAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7CisgICAgICByZXR1cm4gdGhpcy5yZWN0c18ubGVuZ3RoID4gMDsKKyAgICB9LAorCisgICAgZHJhdzogZnVuY3Rpb24odHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgeworICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkdFTkVSQUxfRVZFTlQ6CisgICAgICAgICAgdGhpcy5kcmF3UmVjdHNfKHZpZXdMV29ybGQsIHZpZXdSV29ybGQpOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0sCisKKyAgICBkcmF3UmVjdHNfOiBmdW5jdGlvbih2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7CisgICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0KCk7CisKKyAgICAgIGN0eC5zYXZlKCk7CisgICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHRyLnVpLmIuZHJhd1NsaWNlcygKKyAgICAgICAgICBjdHgsCisgICAgICAgICAgdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybSwKKyAgICAgICAgICB2aWV3TFdvcmxkLAorICAgICAgICAgIHZpZXdSV29ybGQsCisgICAgICAgICAgYm91bmRzLmhlaWdodCwKKyAgICAgICAgICB0aGlzLnJlY3RzXywKKyAgICAgICAgICB0aGlzLmFzeW5jU3R5bGVfKTsKKyAgICAgIGN0eC5yZXN0b3JlKCk7CisKKyAgICAgIGlmIChib3VuZHMuaGVpZ2h0IDw9IDYpCisgICAgICAgIHJldHVybjsKKworICAgICAgdmFyIGZvbnRTaXplLCB5T2Zmc2V0OworICAgICAgaWYgKGJvdW5kcy5oZWlnaHQgPCAxNSkgeworICAgICAgICBmb250U2l6ZSA9IDY7CisgICAgICAgIHlPZmZzZXQgPSAxLjA7CisgICAgICB9IGVsc2UgeworICAgICAgICBmb250U2l6ZSA9IDEwOworICAgICAgICB5T2Zmc2V0ID0gMi41OworICAgICAgfQorICAgICAgdHIudWkuYi5kcmF3TGFiZWxzKAorICAgICAgICAgIGN0eCwKKyAgICAgICAgICB0aGlzLnZpZXdwb3J0LmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtLAorICAgICAgICAgIHZpZXdMV29ybGQsCisgICAgICAgICAgdmlld1JXb3JsZCwKKyAgICAgICAgICB0aGlzLnJlY3RzXywKKyAgICAgICAgICB0aGlzLmFzeW5jU3R5bGVfLAorICAgICAgICAgIGZvbnRTaXplLAorICAgICAgICAgIHlPZmZzZXQpOworICAgIH0sCisKKyAgICBhZGRFdmVudHNUb1RyYWNrTWFwOiBmdW5jdGlvbihldmVudFRvVHJhY2tNYXApIHsKKyAgICAgIGlmICh0aGlzLnJlY3RzXyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjdHNfID09PSBudWxsKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMucmVjdHNfLmZvckVhY2goZnVuY3Rpb24ocmVjdCkgeworICAgICAgICByZWN0LmFkZFRvVHJhY2tNYXAoZXZlbnRUb1RyYWNrTWFwLCB0aGlzKTsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb25JbldvcmxkU3BhY2U6IGZ1bmN0aW9uKAorICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKSB7CisgICAgICBmdW5jdGlvbiBvblJlY3QocmVjdCkgeworICAgICAgICByZWN0LmFkZFRvU2VsZWN0aW9uKHNlbGVjdGlvbik7CisgICAgICB9CisgICAgICBvblJlY3QgPSBvblJlY3QuYmluZCh0aGlzKTsKKyAgICAgIHRyLmIuaXRlcmF0ZU92ZXJJbnRlcnNlY3RpbmdJbnRlcnZhbHModGhpcy5yZWN0c18sCisgICAgICAgICAgZnVuY3Rpb24oeCkgeyByZXR1cm4geC5zdGFydDsgfSwKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LmR1cmF0aW9uOyB9LAorICAgICAgICAgIGxvV1gsIGhpV1gsCisgICAgICAgICAgb25SZWN0KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBpdGVtIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBwcm92aWRlZCBldmVudCwgaWYgYW55LCB0byB0aGUKKyAgICAgKiBzZWxlY3Rpb24uCisgICAgICogQHBhcmFtIHtyZWN0fSBUaGUgY3VycmVudCByZWN0LgorICAgICAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIHJlY3RzIGF3YXkgZnJvbSB0aGUgZXZlbnQgdG8gbG9vay4KKyAgICAgKiBAcGFyYW0ge1NlbGVjdGlvbn0gc2VsZWN0aW9uIFRoZSBzZWxlY3Rpb24gdG8gYWRkIGFuIGV2ZW50IHRvLAorICAgICAqIGlmIGZvdW5kLgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgYW4gZXZlbnQgd2FzIGZvdW5kLgorICAgICAqIEBwcml2YXRlCisgICAgICovCisgICAgYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb246IGZ1bmN0aW9uKGV2ZW50LCBvZmZzZXQsIHNlbGVjdGlvbikgeworICAgICAgdmFyIGluZGV4ID0gdHIuYi5maW5kRmlyc3RJbmRleEluQXJyYXkodGhpcy5yZWN0c18sIGZ1bmN0aW9uKHJlY3QpIHsKKyAgICAgICAgcmV0dXJuIHJlY3QubW9kZWxJdGVtID09PSBldmVudDsKKyAgICAgIH0pOworICAgICAgaWYgKGluZGV4ID09PSAtMSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICB2YXIgbmV3SW5kZXggPSBpbmRleCArIG9mZnNldDsKKyAgICAgIGlmIChuZXdJbmRleCA8IDAgfHwgbmV3SW5kZXggPj0gdGhpcy5yZWN0c18ubGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIHRoaXMucmVjdHNfW25ld0luZGV4XS5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucmVjdHNfLmxlbmd0aDsgKytpKSB7CisgICAgICAgIC8vIFRPRE8ocGV0cmNlcm1hayk6IFJhdGhlciB0aGFuIHVucGFja2luZyB0aGUgcHJveHkgaXRlbSBoZXJlLAorICAgICAgICAvLyB3ZSBzaG91bGQgcHJvYmFibHkgYWRkIGFuIGFkZFRvU2VsZWN0aW9uSWZNYXRjaGluZyhzZWxlY3Rpb24sIGZpbHRlcikKKyAgICAgICAgLy8gbWV0aG9kIHRvIFNlbGVjdGFibGVJdGVtICgjOTAwKS4KKyAgICAgICAgdmFyIG1vZGVsSXRlbSA9IHRoaXMucmVjdHNfW2ldLm1vZGVsSXRlbTsKKyAgICAgICAgaWYgKCFtb2RlbEl0ZW0pCisgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChmaWx0ZXIubWF0Y2hTbGljZShtb2RlbEl0ZW0pKQorICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKG1vZGVsSXRlbSk7CisgICAgICB9CisgICAgfSwKKworICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbih3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbikgeworICAgICAgdmFyIHJlY3QgPSB0ci5iLmZpbmRDbG9zZXN0SW50ZXJ2YWxJblNvcnRlZEludGVydmFscygKKyAgICAgICAgICB0aGlzLnJlY3RzXywKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LnN0YXJ0OyB9LAorICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguZW5kOyB9LAorICAgICAgICAgIHdvcmxkWCwKKyAgICAgICAgICB3b3JsZE1heERpc3QpOworCisgICAgICBpZiAoIXJlY3QpCisgICAgICAgIHJldHVybjsKKworICAgICAgcmVjdC5hZGRUb1NlbGVjdGlvbihzZWxlY3Rpb24pOworICAgIH0KKyAgfTsKKworICAvKioKKyAgICogQSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGggYSB0aXRsZS4KKyAgICoKKyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleHRlbmRzIHtQcm94eVNlbGVjdGFibGVJdGVtfQorICAgKi8KKyAgZnVuY3Rpb24gUmVjdChtb2RlbEl0ZW0sIHRpdGxlLCBjb2xvcklkLCBzdGFydCwgZHVyYXRpb24pIHsKKyAgICB0ci5tb2RlbC5Qcm94eVNlbGVjdGFibGVJdGVtLmNhbGwodGhpcywgbW9kZWxJdGVtKTsKKyAgICB0aGlzLnRpdGxlID0gdGl0bGU7CisgICAgdGhpcy5jb2xvcklkID0gY29sb3JJZDsKKyAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uOworICAgIHRoaXMuZW5kID0gc3RhcnQgKyBkdXJhdGlvbjsKKyAgfTsKKworICBSZWN0LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLm1vZGVsLlByb3h5U2VsZWN0YWJsZUl0ZW0ucHJvdG90eXBlCisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBSZWN0VHJhY2s6IFJlY3RUcmFjaywKKyAgICBSZWN0OiBSZWN0CisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcmVjdF90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9yZWN0X3RyYWNrX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmUyZDU0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcmVjdF90cmFja190ZXN0Lmh0bWwKQEAgLTAsMCArMSw0MDggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2NvcmUvdGVzdF91dGlscy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kcmF3X2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvZG9tX2hlbHBlcnMuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgRXZlbnRTZXQgPSB0ci5tb2RlbC5FdmVudFNldDsKKyAgdmFyIFJlY3RUcmFjayA9IHRyLnVpLnRyYWNrcy5SZWN0VHJhY2s7CisgIHZhciBSZWN0ID0gdHIudWkudHJhY2tzLlJlY3Q7CisgIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOworICB2YXIgVmlld3BvcnQgPSB0ci51aS5UaW1lbGluZVZpZXdwb3J0OworCisgIHRlc3QoJ2luc3RhbnRpYXRlX3dpdGhSZWN0cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydChkaXYpOworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICB2YXIgdHJhY2sgPSBSZWN0VHJhY2sodmlld3BvcnQpOworICAgIGRyYXdpbmdDb250YWluZXIuYXBwZW5kQ2hpbGQodHJhY2spOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7CisgICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7CisKKyAgICB0cmFjay5oZWFkaW5nID0gJ3Rlc3RCYXNpY1JlY3RzJzsKKyAgICB0cmFjay5yZWN0cyA9IFsKKyAgICAgIG5ldyBSZWN0KHVuZGVmaW5lZCwgJ2EnLCAwLCAxLCAxKSwKKyAgICAgIG5ldyBSZWN0KHVuZGVmaW5lZCwgJ2InLCAxLCAyLjEsIDQuOCksCisgICAgICBuZXcgUmVjdCh1bmRlZmluZWQsICdiJywgMSwgNywgMC41KSwKKyAgICAgIG5ldyBSZWN0KHVuZGVmaW5lZCwgJ2MnLCAyLCA3LjYsIDAuNCkKKyAgICBdOworCisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA4LjgsIHRyYWNrLmNsaWVudFdpZHRoKTsKKyAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV93aXRoU2xpY2VzJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7CisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKKworICAgIHZhciB0cmFjayA9IFJlY3RUcmFjayh2aWV3cG9ydCk7CisgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmludmFsaWRhdGUoKTsKKworICAgIHRyYWNrLmhlYWRpbmcgPSAndGVzdEJhc2ljU2xpY2VzJzsKKyAgICB0cmFjay5yZWN0cyA9IFsKKyAgICAgIG5ldyBTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMSksCisgICAgICBuZXcgU2xpY2UoJycsICdiJywgMSwgMi4xLCB7fSwgNC44KSwKKyAgICAgIG5ldyBTbGljZSgnJywgJ2InLCAxLCA3LCB7fSwgMC41KSwKKyAgICAgIG5ldyBTbGljZSgnJywgJ2MnLCAyLCA3LjYsIHt9LCAwLjQpCisgICAgXTsKKworICAgIHZhciBkdCA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgOC44LCB0cmFjay5jbGllbnRXaWR0aCk7CisgICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVfc2hyaW5raW5nUmVjdFNpemUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQoZGl2KTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOworCisgICAgdmFyIHRyYWNrID0gUmVjdFRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKworICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOworICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOworCisgICAgdHJhY2suaGVhZGluZyA9ICd0ZXN0U2hyaW5raW5nUmVjdFNpemVzJzsKKyAgICB2YXIgeCA9IDA7CisgICAgdmFyIHdpZHRocyA9IFsxMCwgNSwgNCwgMywgMiwgMSwgMC41LCAwLjQsIDAuMywgMC4yLCAwLjEsIDAuMDVdOworICAgIHZhciBzbGljZXMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpZHRocy5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIHMgPSBuZXcgUmVjdCh1bmRlZmluZWQsICdhJywgMSwgeCwgd2lkdGhzW2ldKTsKKyAgICAgIHggKz0gcy5kdXJhdGlvbiArIDAuNTsKKyAgICAgIHNsaWNlcy5wdXNoKHMpOworICAgIH0KKyAgICB0cmFjay5yZWN0cyA9IHNsaWNlczsKKyAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDEuMSAqIHgsIHRyYWNrLmNsaWVudFdpZHRoKTsKKyAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZV9lbGlkZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBvcHREaWN0cyA9IFt7IHRyYWNrTmFtZTogJ2VsaWRlT2ZmJywgZWxpZGU6IGZhbHNlIH0sCisgICAgICAgICAgICAgICAgICAgIHsgdHJhY2tOYW1lOiAnZWxpZGVPbicsIGVsaWRlOiB0cnVlIH1dOworCisgICAgdmFyIHRvb0xvbmdUaXRsZSA9ICdVbmxlc3MgZWxpZGluZyB0aGlzIFNIT1VMRCBOT1QgQkUgRElTUExBWUVELiAgJzsKKyAgICB2YXIgYmlnVGl0bGUgPSAnVmVyeSBiaWcgdGl0bGUgbmFtZSB0aGF0IGdvZXMgb24gbG9uZ2VyICcgKworICAgICAgICAgICAgICAgICAgICd0aGFuIHlvdSBtYXkgZXhwZWN0JzsKKworICAgIGZvciAodmFyIGRpY3RJbmRleCBpbiBvcHREaWN0cykgeworICAgICAgdmFyIGRpY3QgPSBvcHREaWN0c1tkaWN0SW5kZXhdOworCisgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZGljdC50cmFja05hbWUpKTsKKworICAgICAgdmFyIHZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KGRpdik7CisgICAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgICBkaXYuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICAgIHZhciB0cmFjayA9IG5ldyBSZWN0VHJhY2sodmlld3BvcnQpOworICAgICAgZHJhd2luZ0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0cmFjayk7CisKKyAgICAgIHRoaXMuYWRkSFRNTE91dHB1dChkaXYpOworICAgICAgZHJhd2luZ0NvbnRhaW5lci5pbnZhbGlkYXRlKCk7CisKKyAgICAgIHRyYWNrLlNIT1VMRF9FTElERV9URVhUID0gZGljdC5lbGlkZTsKKyAgICAgIHRyYWNrLmhlYWRpbmcgPSAnVmlzdWFsOiAnICsgZGljdC50cmFja05hbWU7CisgICAgICB0cmFjay5yZWN0cyA9IFsKKyAgICAgICAgLy8gdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24KKyAgICAgICAgbmV3IFJlY3QodW5kZWZpbmVkLCAnYSAnICsgdG9vTG9uZ1RpdGxlICsgYmlnVGl0bGUsIDAsIDEsIDEpLAorICAgICAgICBuZXcgUmVjdCh1bmRlZmluZWQsIGJpZ1RpdGxlLCAxLCAyLjEsIDQuOCksCisgICAgICAgIG5ldyBSZWN0KHVuZGVmaW5lZCwgJ2NjY2MgY2NjYyBjY2NjJywgMSwgNywgMC41KSwKKyAgICAgICAgbmV3IFJlY3QodW5kZWZpbmVkLCAnZCcsIDIsIDcuNiwgMS4wKQorICAgICAgXTsKKyAgICAgIHZhciBkdCA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCA5LjUsIHRyYWNrLmNsaWVudFdpZHRoKTsKKyAgICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisgICAgfQorICB9KTsKKworICB0ZXN0KCdmaW5kQWxsT2JqZWN0c01hdGNoaW5nSW5SZWN0VHJhY2snLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdHJhY2sgPSBuZXcgUmVjdFRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHRyYWNrLnJlY3RzID0gWworICAgICAgbmV3IFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAxKSwKKyAgICAgIG5ldyBTbGljZSgnJywgJ2InLCAxLCAyLjEsIHt9LCA0LjgpLAorICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDcsIHt9LCAwLjUpLAorICAgICAgbmV3IFNsaWNlKCcnLCAnYycsIDIsIDcuNiwge30sIDAuNCkKKyAgICBdOworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uKAorICAgICAgICBuZXcgdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2InKSwgc2VsZWN0aW9uKTsKKworICAgIGFzc2VydC5lcXVhbCgyLCBzZWxlY3Rpb24ubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbMV0ubW9kZWxJdGVtLCBzZWxlY3Rpb25bMF0pOworICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1syXS5tb2RlbEl0ZW0sIHNlbGVjdGlvblsxXSk7CisgIH0pOworCisgIHRlc3QoJ3NlbGVjdGlvbkhpdFRlc3RpbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGVzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGVzdEVsLmFwcGVuZENoaWxkKHRyLnVpLmIuY3JlYXRlU2NvcGVkU3R5bGUoJ2hlYWRpbmcgeyB3aWR0aDogMTAwcHg7IH0nKSk7CisgICAgdGVzdEVsLnN0eWxlLndpZHRoID0gJzYwMHB4JzsKKworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh0ZXN0RWwpOworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKyAgICB0ZXN0RWwuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICB2YXIgdHJhY2sgPSBuZXcgUmVjdFRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGVzdEVsKTsKKworICAgIGRyYXdpbmdDb250YWluZXIudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpOworCisgICAgdHJhY2suaGVhZGluZyA9ICd0ZXN0U2VsZWN0aW9uSGl0VGVzdGluZyc7CisgICAgdHJhY2sucmVjdHMgPSBbCisgICAgICBuZXcgU2xpY2UoJycsICdhJywgMCwgMSwge30sIDEpLAorICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDUsIHt9LCA0LjgpCisgICAgXTsKKyAgICB2YXIgeSA9IHRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIDU7CisgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgIHZhciB3VyA9IDEwOworICAgIHZhciB2VyA9IGRyYXdpbmdDb250YWluZXIuY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOworCisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnhTZXRXb3JsZEJvdW5kcygwLCB3VywgdlcgKiBwaXhlbFJhdGlvKTsKKyAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHZhciB4ID0gKDEuNSAvIHdXKSAqIHZXOworICAgIHRyYWNrLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbigKKyAgICAgICAgeCwgeCArIDEsIHksIHkgKyAxLCBzZWxlY3Rpb24pOworICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1swXS5tb2RlbEl0ZW0sIHNlbGVjdGlvblswXSk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgeCA9ICgyLjEgLyB3VykgKiB2VzsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCisgICAgICAgIHgsIHggKyAxLCB5LCB5ICsgMSwgc2VsZWN0aW9uKTsKKyAgICBhc3NlcnQuZXF1YWwoMCwgc2VsZWN0aW9uLmxlbmd0aCk7CisKKyAgICB2YXIgc2VsZWN0aW9uID0gbmV3IEV2ZW50U2V0KCk7CisgICAgeCA9ICg2LjggLyB3VykgKiB2VzsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCisgICAgICAgIHgsIHggKyAxLCB5LCB5ICsgMSwgc2VsZWN0aW9uKTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbMV0ubW9kZWxJdGVtLCBzZWxlY3Rpb25bMF0pOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHggPSAoOS45IC8gd1cpICogdlc7CisgICAgdHJhY2suYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uKAorICAgICAgICB4LCB4ICsgMSwgeSwgeSArIDEsIHNlbGVjdGlvbik7CisgICAgYXNzZXJ0LmVxdWFsKDAsIHNlbGVjdGlvbi5sZW5ndGgpOworICB9KTsKKworICB0ZXN0KCdlbGlkZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0ZXN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh0ZXN0RWwpOworICAgIHZhciBkcmF3aW5nQ29udGFpbmVyID0gbmV3IHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKHZpZXdwb3J0KTsKKyAgICB0ZXN0RWwuYXBwZW5kQ2hpbGQoZHJhd2luZ0NvbnRhaW5lcik7CisKKyAgICB2YXIgdHJhY2sgPSBuZXcgUmVjdFRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGVzdEVsKTsKKworICAgIGRyYXdpbmdDb250YWluZXIudXBkYXRlQ2FudmFzU2l6ZUlmTmVlZGVkXygpOworCisgICAgdmFyIGJpZ3RpdGxlID0gJ1N1cGVyIGR1cGVyIGxvbmcgbG9uZyB0aXRsZSAnICsKKyAgICAgICAgJ2hvbHkgbW9seSB3aGVuIGRpZCB5b3UgZ2V0IHNvIHZlcmJvc2U/JzsKKyAgICB2YXIgc21hbGx0aXRsZSA9ICdzbWFsbCc7CisgICAgdHJhY2suaGVhZGluZyA9ICd0ZXN0RWxpZGUnOworICAgIHRyYWNrLnJlY3RzID0gWworICAgICAgLy8gdGl0bGUsIGNvbG9ySWQsIHN0YXJ0LCBhcmdzLCBvcHRfZHVyYXRpb24KKyAgICAgIG5ldyBTbGljZSgnJywgYmlndGl0bGUsIDAsIDEsIHt9LCAxKSwKKyAgICAgIG5ldyBTbGljZSgnJywgc21hbGx0aXRsZSwgMSwgMiwge30sIDEpCisgICAgXTsKKyAgICB2YXIgZHQgPSBuZXcgdHIudWkuVGltZWxpbmVEaXNwbGF5VHJhbnNmb3JtKCk7CisgICAgZHQueFNldFdvcmxkQm91bmRzKDAsIDMuMywgdHJhY2suY2xpZW50V2lkdGgpOworICAgIHRyYWNrLnZpZXdwb3J0LnNldERpc3BsYXlUcmFuc2Zvcm1JbW1lZGlhdGVseShkdCk7CisKKyAgICB2YXIgc3RyaW5nV2lkdGhQYWlyID0gdW5kZWZpbmVkOworICAgIHZhciBwaXhXaWR0aCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTsKKworICAgIC8vIFNtYWxsIHRpdGxlcyBvbiBiaWcgc2xpY2VzIGFyZSBub3QgZWxpZGVkLgorICAgIHN0cmluZ1dpZHRoUGFpciA9CisgICAgICAgIHRyLnVpLmIuZWxpZGVkVGl0bGVDYWNoZV8uZ2V0KAorICAgICAgICAgICAgdHJhY2suY29udGV4dCgpLAorICAgICAgICAgICAgcGl4V2lkdGgsCisgICAgICAgICAgICBzbWFsbHRpdGxlLAorICAgICAgICAgICAgdHIudWkuYi5lbGlkZWRUaXRsZUNhY2hlXy5sYWJlbFdpZHRoKAorICAgICAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKKyAgICAgICAgICAgICAgICBzbWFsbHRpdGxlKSwKKyAgICAgICAgICAgIDEpOworICAgIGFzc2VydC5lcXVhbChzbWFsbHRpdGxlLCBzdHJpbmdXaWR0aFBhaXIuc3RyaW5nKTsKKworICAgIC8vIEtlZXAgc2hyaW5raW5nIHRoZSBzbGljZSB1bnRpbCBlbGlkaW5nIHN0YXJ0cy4KKyAgICB2YXIgZWxpZGVkV2hlblNtYWxsRW5vdWdoID0gZmFsc2U7CisgICAgZm9yICh2YXIgc2xpY2VMZW5ndGggPSAxOyBzbGljZUxlbmd0aCA+PSAwLjAwMDAxOyBzbGljZUxlbmd0aCAvPSAyLjApIHsKKyAgICAgIHN0cmluZ1dpZHRoUGFpciA9CisgICAgICAgICAgdHIudWkuYi5lbGlkZWRUaXRsZUNhY2hlXy5nZXQoCisgICAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKKyAgICAgICAgICAgICAgcGl4V2lkdGgsCisgICAgICAgICAgICAgIHNtYWxsdGl0bGUsCisgICAgICAgICAgICAgIHRyLnVpLmIuZWxpZGVkVGl0bGVDYWNoZV8ubGFiZWxXaWR0aCgKKyAgICAgICAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKKyAgICAgICAgICAgICAgICAgIHNtYWxsdGl0bGUpLAorICAgICAgICAgICAgICBzbGljZUxlbmd0aCk7CisgICAgICBpZiAoc3RyaW5nV2lkdGhQYWlyLnN0cmluZy5sZW5ndGggPCBzbWFsbHRpdGxlLmxlbmd0aCkgeworICAgICAgICBlbGlkZWRXaGVuU21hbGxFbm91Z2ggPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisgICAgYXNzZXJ0LmlzVHJ1ZShlbGlkZWRXaGVuU21hbGxFbm91Z2gpOworCisgICAgLy8gQmlnIHRpdGxlcyBhcmUgZWxpZGVkIGltbWVkaWF0ZWx5LgorICAgIHZhciBzdXBlckJpZ1RpdGxlID0gJyc7CisgICAgZm9yICh2YXIgeCA9IDA7IHggPCAxMDsgeCsrKSB7CisgICAgICBzdXBlckJpZ1RpdGxlICs9IGJpZ3RpdGxlOworICAgIH0KKyAgICBzdHJpbmdXaWR0aFBhaXIgPQorICAgICAgICB0ci51aS5iLmVsaWRlZFRpdGxlQ2FjaGVfLmdldCgKKyAgICAgICAgICAgIHRyYWNrLmNvbnRleHQoKSwKKyAgICAgICAgICAgIHBpeFdpZHRoLAorICAgICAgICAgICAgc3VwZXJCaWdUaXRsZSwKKyAgICAgICAgICAgIHRyLnVpLmIuZWxpZGVkVGl0bGVDYWNoZV8ubGFiZWxXaWR0aCgKKyAgICAgICAgICAgICAgICB0cmFjay5jb250ZXh0KCksCisgICAgICAgICAgICAgICAgc3VwZXJCaWdUaXRsZSksCisgICAgICAgICAgICAxKTsKKyAgICBhc3NlcnQuaXNUcnVlKHN0cmluZ1dpZHRoUGFpci5zdHJpbmcubGVuZ3RoIDwgc3VwZXJCaWdUaXRsZS5sZW5ndGgpOworCisgICAgLy8gQW5kIGVsaWRlZCB0ZXh0IGVuZHMgd2l0aCAuLi4KKyAgICB2YXIgbGVuID0gc3RyaW5nV2lkdGhQYWlyLnN0cmluZy5sZW5ndGg7CisgICAgYXNzZXJ0LmVxdWFsKCcuLi4nLCBzdHJpbmdXaWR0aFBhaXIuc3RyaW5nLnN1YnN0cmluZyhsZW4gLSAzLCBsZW4pKTsKKyAgfSk7CisKKyAgdGVzdCgncmVjdFRyYWNrQWRkSXRlbU5lYXJUb1Byb3ZpZGVkRXZlbnQnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdHJhY2sgPSBuZXcgUmVjdFRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHRyYWNrLnJlY3RzID0gWworICAgICAgbmV3IFNsaWNlKCcnLCAnYScsIDAsIDEsIHt9LCAxKSwKKyAgICAgIG5ldyBTbGljZSgnJywgJ2InLCAxLCAyLjEsIHt9LCA0LjgpLAorICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDcsIHt9LCAwLjUpLAorICAgICAgbmV3IFNsaWNlKCcnLCAnYycsIDIsIDcuNiwge30sIDAuNCkKKyAgICBdOworICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRBbGxFdmVudHNNYXRjaGluZ0ZpbHRlclRvU2VsZWN0aW9uKAorICAgICAgICBuZXcgdHIuYy5UaXRsZU9yQ2F0ZWdvcnlGaWx0ZXIoJ2InKSwgc2VsKTsKKyAgICB2YXIgcmV0OworCisgICAgLy8gU2VsZWN0IHRvIHRoZSByaWdodCBvZiBCLgorICAgIHZhciBzZWxSaWdodCA9IG5ldyBFdmVudFNldCgpOworICAgIHJldCA9IHRyYWNrLmFkZEV2ZW50TmVhclRvUHJvdmlkZWRFdmVudFRvU2VsZWN0aW9uKHNlbFswXSwgMSwgc2VsUmlnaHQpOworICAgIGFzc2VydC5pc1RydWUocmV0KTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbMl0ubW9kZWxJdGVtLCBzZWxSaWdodFswXSk7CisKKyAgICAvLyBTZWxlY3QgdG8gdGhlIHJpZ2h0IG9mIHRoZSAybmQgYi4KKyAgICB2YXIgc2VsUmlnaHQyID0gbmV3IEV2ZW50U2V0KCk7CisgICAgcmV0ID0gdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oc2VsWzBdLCAyLCBzZWxSaWdodDIpOworICAgIGFzc2VydC5pc1RydWUocmV0KTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbM10ubW9kZWxJdGVtLCBzZWxSaWdodDJbMF0pOworCisgICAgLy8gU2VsZWN0IHRvIDIgdG8gdGhlIHJpZ2h0IG9mIHRoZSAybmQgYi4KKyAgICB2YXIgc2VsUmlnaHRPZlJpZ2h0ID0gbmV3IEV2ZW50U2V0KCk7CisgICAgcmV0ID0gdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgIHNlbFJpZ2h0WzBdLCAxLCBzZWxSaWdodE9mUmlnaHQpOworICAgIGFzc2VydC5pc1RydWUocmV0KTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbM10ubW9kZWxJdGVtLCBzZWxSaWdodE9mUmlnaHRbMF0pOworCisgICAgLy8gU2VsZWN0IHRvIHRoZSByaWdodCBvZiB0aGUgcmlnaHRtb3N0IHNsaWNlLgorICAgIHZhciBzZWxOb25lID0gbmV3IEV2ZW50U2V0KCk7CisgICAgcmV0ID0gdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oCisgICAgICAgIHNlbFJpZ2h0T2ZSaWdodFswXSwgMSwgc2VsTm9uZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UocmV0KTsKKyAgICBhc3NlcnQuZXF1YWwoMCwgc2VsTm9uZS5sZW5ndGgpOworCisgICAgLy8gU2VsZWN0IEEgYW5kIHRoZW4gc2VsZWN0IGxlZnQuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIHRyYWNrLmFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb24oCisgICAgICAgIG5ldyB0ci5jLlRpdGxlT3JDYXRlZ29yeUZpbHRlcignYScpLCBzZWwpOworICAgIHZhciByZXQ7CisKKyAgICBzZWxOb25lID0gbmV3IEV2ZW50U2V0KCk7CisgICAgcmV0ID0gdHJhY2suYWRkRXZlbnROZWFyVG9Qcm92aWRlZEV2ZW50VG9TZWxlY3Rpb24oc2VsWzBdLCAtMSwgc2VsTm9uZSk7CisgICAgYXNzZXJ0LmlzRmFsc2UocmV0KTsKKyAgICBhc3NlcnQuZXF1YWwoMCwgc2VsTm9uZS5sZW5ndGgpOworICB9KTsKKworICB0ZXN0KCdyZWN0VHJhY2tBZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0cmFjayA9IG5ldyBSZWN0VHJhY2sobmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoKSk7CisgICAgdHJhY2sucmVjdHMgPSBbCisgICAgICBuZXcgU2xpY2UoJycsICdhJywgMCwgMSwge30sIDEpLAorICAgICAgbmV3IFNsaWNlKCcnLCAnYicsIDEsIDIuMSwge30sIDQuOCksCisgICAgICBuZXcgU2xpY2UoJycsICdiJywgMSwgNywge30sIDAuNSksCisgICAgICBuZXcgU2xpY2UoJycsICdjJywgMiwgNy42LCB7fSwgMC40KQorICAgIF07CisKKyAgICAvLyBCZWZvcmUgd2l0aCBub3QgcmFuZ2UuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDAsIDAsIDAsIDAsIHNlbCk7CisgICAgYXNzZXJ0LmVxdWFsKDAsIHNlbC5sZW5ndGgpOworCisgICAgLy8gQmVmb3JlIHdpdGggbmVnYXRpdmUgcmFuZ2UuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDEuNSwgLTEwLCAwLCAwLCBzZWwpOworICAgIGFzc2VydC5lcXVhbCgwLCBzZWwubGVuZ3RoKTsKKworICAgIC8vIEJlZm9yZSBmaXJzdCBzbGljZS4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMC41LCAxLCAwLCAwLCBzZWwpOworICAgIGFzc2VydC5lcXVhbCgxLCBzZWwubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbMF0ubW9kZWxJdGVtLCBzZWxbMF0pOworCisgICAgLy8gV2l0aGluIGZpcnN0IHNsaWNlIGNsb3NlciB0byBzdGFydC4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMS4zLCAxLCAwLCAwLCBzZWwpOworICAgIGFzc2VydC5lcXVhbCh0cmFjay5yZWN0c1swXS5tb2RlbEl0ZW0sIHNlbFswXSk7CisKKyAgICAvLyBCZXR3ZWVuIHNsaWNlcyB3aXRoIGdvb2QgcmFuZ2UuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDIuMDgsIDMsIDAsIDAsIHNlbCk7CisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnJlY3RzWzFdLm1vZGVsSXRlbSwgc2VsWzBdKTsKKworICAgIC8vIEJldHdlZW4gc2xpY2VzIHdpdGggYmFkIHJhbmdlLgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbigyLjA1LCAwLjAzLCAwLCAwLCBzZWwpOworICAgIGFzc2VydC5lcXVhbCgwLCBzZWwubGVuZ3RoKTsKKworICAgIC8vIFdpdGhpbiBzbGljZSBjbG9zZXIgdG8gZW5kLgorICAgIHZhciBzZWwgPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRDbG9zZXN0RXZlbnRUb1NlbGVjdGlvbig2LCAxMDAsIDAsIDAsIHNlbCk7CisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLnJlY3RzWzFdLm1vZGVsSXRlbSwgc2VsWzBdKTsKKworICAgIC8vIFdpdGhpbiBzbGljZSB3aXRoIGJhZCByYW5nZS4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMS44LCAwLjEsIDAsIDAsIHNlbCk7CisgICAgYXNzZXJ0LmVxdWFsKDAsIHNlbC5sZW5ndGgpOworCisgICAgLy8gQWZ0ZXIgbGFzdCBzbGljZSB3aXRoIGdvb2QgcmFuZ2UuCisgICAgdmFyIHNlbCA9IG5ldyBFdmVudFNldCgpOworICAgIHRyYWNrLmFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uKDguNSwgMSwgMCwgMCwgc2VsKTsKKyAgICBhc3NlcnQuZXF1YWwodHJhY2sucmVjdHNbM10ubW9kZWxJdGVtLCBzZWxbMF0pOworCisgICAgLy8gQWZ0ZXIgbGFzdCBzbGljZSB3aXRoIGJhZCByYW5nZS4KKyAgICB2YXIgc2VsID0gbmV3IEV2ZW50U2V0KCk7CisgICAgdHJhY2suYWRkQ2xvc2VzdEV2ZW50VG9TZWxlY3Rpb24oMTAsIDEsIDAsIDAsIHNlbCk7CisgICAgYXNzZXJ0LmVxdWFsKDAsIHNlbC5sZW5ndGgpOworICB9KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3J1bGVyX3RyYWNrLmNzcyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3J1bGVyX3RyYWNrLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy9ydWxlcl90cmFjay5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3J1bGVyX3RyYWNrLmNzcwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcnVsZXJfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3J1bGVyX3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYzYzI2NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3J1bGVyX3RyYWNrLmh0bWwKQEAgLTAsMCArMSwzNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii91aS90cmFja3MvcnVsZXJfdHJhY2suY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2NvbnN0YW50cy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kcmF3X2hlbHBlcnMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvaGVhZGluZy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3RyYWNrLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgdGhlIHJ1bGVyLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1RyYWNrfQorICAgKi8KKyAgdmFyIFJ1bGVyVHJhY2sgPSB0ci51aS5iLmRlZmluZSgncnVsZXItdHJhY2snLCB0ci51aS50cmFja3MuVHJhY2spOworCisgIHZhciBsb2dPZjEwID0gTWF0aC5sb2coMTApOworICBmdW5jdGlvbiBsb2cxMCh4KSB7CisgICAgcmV0dXJuIE1hdGgubG9nKHgpIC8gbG9nT2YxMDsKKyAgfQorCisgIFJ1bGVyVHJhY2sucHJvdG90eXBlID0geworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkudHJhY2tzLlRyYWNrLnByb3RvdHlwZS5kZWNvcmF0ZS5jYWxsKHRoaXMsIHZpZXdwb3J0KTsKKyAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgncnVsZXItdHJhY2snKTsKKyAgICAgIHRoaXMuc3RyaW5nc19zZWNzXyA9IFtdOworICAgICAgdGhpcy5zdHJpbmdzX21zZWNzXyA9IFtdOworICAgICAgdGhpcy5zdHJpbmdzX3VzZWNzXyA9IFtdOworICAgICAgdGhpcy5zdHJpbmdzX25zZWNzXyA9IFtdOworCisgICAgICB0aGlzLnZpZXdwb3J0Q2hhbmdlXyA9IHRoaXMudmlld3BvcnRDaGFuZ2VfLmJpbmQodGhpcyk7CisgICAgICB2aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLnZpZXdwb3J0Q2hhbmdlXyk7CisKKyAgICAgIHZhciBoZWFkaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktaGVhZGluZycpOworICAgICAgaGVhZGluZy5hcnJvd1Zpc2libGUgPSBmYWxzZTsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CisgICAgfSwKKworICAgIGRldGFjaDogZnVuY3Rpb24oKSB7CisgICAgICB0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmRldGFjaC5jYWxsKHRoaXMpOworICAgICAgdGhpcy52aWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2VfKTsKKyAgICB9LAorCisgICAgdmlld3BvcnRDaGFuZ2VfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuaXNFbXB0eSkKKyAgICAgICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCd0YWxsLW1vZGUnKTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0YWxsLW1vZGUnKTsKKyAgICB9LAorCisgICAgZHJhdzogZnVuY3Rpb24odHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCkgeworICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLkdSSUQ6CisgICAgICAgICAgdGhpcy5kcmF3R3JpZF8odmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdHIudWkudHJhY2tzLkRyYXdUeXBlLk1BUktFUlM6CisgICAgICAgICAgaWYgKCF0aGlzLnZpZXdwb3J0LmludGVyZXN0UmFuZ2UuaXNFbXB0eSkKKyAgICAgICAgICAgIHRoaXMudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5kcmF3KHRoaXMuY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfSwKKworICAgIGRyYXdHcmlkXzogZnVuY3Rpb24odmlld0xXb3JsZCwgdmlld1JXb3JsZCkgeworICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworCisgICAgICB2YXIgY2FudmFzQm91bmRzID0gY3R4LmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciB0cmFja0JvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICB2YXIgd2lkdGggPSBjYW52YXNCb3VuZHMud2lkdGggKiBwaXhlbFJhdGlvOworICAgICAgdmFyIGhlaWdodCA9IHRyYWNrQm91bmRzLmhlaWdodCAqIHBpeGVsUmF0aW87CisKKyAgICAgIHZhciBoYXNJbnRlcmVzdFJhbmdlID0gIXRoaXMudmlld3BvcnQuaW50ZXJlc3RSYW5nZS5pc0VtcHR5OworCisgICAgICB2YXIgcnVsZXJIZWlnaHQgPSBoYXNJbnRlcmVzdFJhbmdlID8gKGhlaWdodCAqIDIpIC8gNSA6IGhlaWdodDsKKworICAgICAgdmFyIHZwID0gdGhpcy52aWV3cG9ydDsKKyAgICAgIHZhciBkdCA9IHZwLmN1cnJlbnREaXNwbGF5VHJhbnNmb3JtOworCisgICAgICB2YXIgaWRlYWxNYWpvck1hcmtEaXN0YW5jZVBpeCA9IDE1MCAqIHBpeGVsUmF0aW87CisgICAgICB2YXIgaWRlYWxNYWpvck1hcmtEaXN0YW5jZVdvcmxkID0KKyAgICAgICAgICBkdC54Vmlld1ZlY3RvclRvV29ybGQoaWRlYWxNYWpvck1hcmtEaXN0YW5jZVBpeCk7CisKKyAgICAgIHZhciBtYWpvck1hcmtEaXN0YW5jZVdvcmxkOworCisgICAgICAvLyBUaGUgY29uc2VydmF0aXZlIGd1ZXNzIGlzIHRoZSBuZWFyZXN0IGVuY2xvc2luZyAwLjEsIDEsIDEwLCAxMDAsIGV0Yy4KKyAgICAgIHZhciBjb25zZXJ2YXRpdmVHdWVzcyA9CisgICAgICAgICAgTWF0aC5wb3coMTAsIE1hdGguY2VpbChsb2cxMChpZGVhbE1ham9yTWFya0Rpc3RhbmNlV29ybGQpKSk7CisKKyAgICAgIC8vIE9uY2Ugd2UgaGF2ZSBhIGNvbnNlcnZhdGl2ZSBndWVzcywgY29uc2lkZXIgdGhpbmdzIHRoYXQgZXZlbmx5IGFkZCB1cAorICAgICAgLy8gdG8gdGhlIGNvbnNlcnZhdGl2ZSBndWVzcywgZS5nLiAwLjUsIDAuMiwgMC4xIFBpY2sgdGhlIG9uZSB0aGF0IHN0aWxsCisgICAgICAvLyBleGNlZWRzIHRoZSBpZGVhbCBtYXJrIGRpc3RhbmNlLgorICAgICAgdmFyIGRpdmlzb3JzID0gWzEwLCA1LCAyLCAxXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2aXNvcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHRpZ2h0ZW5lZEd1ZXNzID0gY29uc2VydmF0aXZlR3Vlc3MgLyBkaXZpc29yc1tpXTsKKyAgICAgICAgaWYgKGR0LnhXb3JsZFZlY3RvclRvVmlldyh0aWdodGVuZWRHdWVzcykgPCBpZGVhbE1ham9yTWFya0Rpc3RhbmNlUGl4KQorICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBtYWpvck1hcmtEaXN0YW5jZVdvcmxkID0gY29uc2VydmF0aXZlR3Vlc3MgLyBkaXZpc29yc1tpIC0gMV07CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICB2YXIgdW5pdDsKKyAgICAgIHZhciB1bml0RGl2aXNvcjsKKyAgICAgIHZhciB0aWNrTGFiZWxzID0gdW5kZWZpbmVkOworICAgICAgaWYgKG1ham9yTWFya0Rpc3RhbmNlV29ybGQgPCAwLjAwMDEpIHsKKyAgICAgICAgdW5pdCA9ICducyc7CisgICAgICAgIHVuaXREaXZpc29yID0gMC4wMDAwMDE7CisgICAgICAgIHRpY2tMYWJlbHMgPSB0aGlzLnN0cmluZ3NfbnNlY3NfOworICAgICAgfSBlbHNlIGlmIChtYWpvck1hcmtEaXN0YW5jZVdvcmxkIDwgMC4xKSB7CisgICAgICAgIHVuaXQgPSAndXMnOworICAgICAgICB1bml0RGl2aXNvciA9IDAuMDAxOworICAgICAgICB0aWNrTGFiZWxzID0gdGhpcy5zdHJpbmdzX3VzZWNzXzsKKyAgICAgIH0gZWxzZSBpZiAobWFqb3JNYXJrRGlzdGFuY2VXb3JsZCA8IDEwMCkgeworICAgICAgICB1bml0ID0gJ21zJzsKKyAgICAgICAgdW5pdERpdmlzb3IgPSAxOworICAgICAgICB0aWNrTGFiZWxzID0gdGhpcy5zdHJpbmdzX21zZWNzXzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHVuaXQgPSAncyc7CisgICAgICAgIHVuaXREaXZpc29yID0gMTAwMDsKKyAgICAgICAgdGlja0xhYmVscyA9IHRoaXMuc3RyaW5nc19zZWNzXzsKKyAgICAgIH0KKworICAgICAgdmFyIG51bVRpY2tzUGVyTWFqb3IgPSA1OworICAgICAgdmFyIG1pbm9yTWFya0Rpc3RhbmNlV29ybGQgPSBtYWpvck1hcmtEaXN0YW5jZVdvcmxkIC8gbnVtVGlja3NQZXJNYWpvcjsKKyAgICAgIHZhciBtaW5vck1hcmtEaXN0YW5jZVB4ID0gZHQueFdvcmxkVmVjdG9yVG9WaWV3KG1pbm9yTWFya0Rpc3RhbmNlV29ybGQpOworCisgICAgICB2YXIgZmlyc3RNYWpvck1hcmsgPQorICAgICAgICAgIE1hdGguZmxvb3Iodmlld0xXb3JsZCAvIG1ham9yTWFya0Rpc3RhbmNlV29ybGQpICoKKyAgICAgICAgICAgICAgbWFqb3JNYXJrRGlzdGFuY2VXb3JsZDsKKworICAgICAgdmFyIG1pbm9yVGlja0ggPSBNYXRoLmZsb29yKHJ1bGVySGVpZ2h0ICogMC4yNSk7CisKKyAgICAgIGN0eC5zYXZlKCk7CisKKyAgICAgIHZhciBwaXhlbFJhdGlvID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKKyAgICAgIGN0eC5saW5lV2lkdGggPSBNYXRoLnJvdW5kKHBpeGVsUmF0aW8pOworCisgICAgICAvLyBBcHBseSBzdWJwaXhlbCB0cmFuc2xhdGUgdG8gZ2V0IGNyaXNwIGxpbmVzLgorICAgICAgLy8gaHR0cDovL3d3dy5tb2J0b3dlcnMuY29tL2h0bWw1LWNhbnZhcy1jcmlzcC1saW5lcy1ldmVyeS10aW1lLworICAgICAgdmFyIGNyaXNwTGluZUNvcnJlY3Rpb24gPSAoY3R4LmxpbmVXaWR0aCAlIDIpIC8gMjsKKyAgICAgIGN0eC50cmFuc2xhdGUoY3Jpc3BMaW5lQ29ycmVjdGlvbiwgLWNyaXNwTGluZUNvcnJlY3Rpb24pOworCisgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYigwLCAwLCAwKSc7CisgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiKDAsIDAsIDApJzsKKyAgICAgIGN0eC50ZXh0QWxpZ24gPSAnbGVmdCc7CisgICAgICBjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7CisKKyAgICAgIGN0eC5mb250ID0gKDkgKiBwaXhlbFJhdGlvKSArICdweCBzYW5zLXNlcmlmJzsKKworICAgICAgdnAubWFqb3JNYXJrUG9zaXRpb25zID0gW107CisKKyAgICAgIC8vIEVhY2ggaXRlcmF0aW9uIG9mIHRoaXMgbG9vcCBkcmF3cyBvbmUgbWFqb3IgbWFyaworICAgICAgLy8gYW5kIG51bVRpY2tzUGVyTWFqb3IgbWlub3IgdGlja3MuCisgICAgICAvLworICAgICAgLy8gUmVuZGVyaW5nIGNhbid0IGJlIGRvbmUgaW4gd29ybGQgc3BhY2UgYmVjYXVzZSBjYW52YXMgdHJhbnNmb3JtcworICAgICAgLy8gYWZmZWN0IGxpbmUgd2lkdGguIFNvLCBkbyB0aGUgY29udmVyc2lvbnMgbWFudWFsbHkuCisgICAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgICBmb3IgKHZhciBjdXJYID0gZmlyc3RNYWpvck1hcms7CisgICAgICAgICAgIGN1clggPCB2aWV3UldvcmxkOworICAgICAgICAgICBjdXJYICs9IG1ham9yTWFya0Rpc3RhbmNlV29ybGQpIHsKKworICAgICAgICB2YXIgY3VyWFZpZXcgPSBNYXRoLmZsb29yKGR0LnhXb3JsZFRvVmlldyhjdXJYKSk7CisKKyAgICAgICAgdmFyIHVuaXRWYWx1ZSA9IGN1clggLyB1bml0RGl2aXNvcjsKKyAgICAgICAgdmFyIHJvdW5kZWRVbml0VmFsdWUgPSBNYXRoLnJvdW5kKHVuaXRWYWx1ZSAqIDEwMDAwMCkgLyAxMDAwMDA7CisKKyAgICAgICAgaWYgKCF0aWNrTGFiZWxzW3JvdW5kZWRVbml0VmFsdWVdKQorICAgICAgICAgIHRpY2tMYWJlbHNbcm91bmRlZFVuaXRWYWx1ZV0gPSByb3VuZGVkVW5pdFZhbHVlICsgJyAnICsgdW5pdDsKKyAgICAgICAgY3R4LmZpbGxUZXh0KHRpY2tMYWJlbHNbcm91bmRlZFVuaXRWYWx1ZV0sCisgICAgICAgICAgICAgICAgICAgICBjdXJYVmlldyArICgyICogcGl4ZWxSYXRpbyksIDApOworCisgICAgICAgIHZwLm1ham9yTWFya1Bvc2l0aW9ucy5wdXNoKGN1clhWaWV3KTsKKworICAgICAgICAvLyBNYWpvciBtYXJrCisgICAgICAgIHRyLnVpLmIuZHJhd0xpbmUoY3R4LCBjdXJYVmlldywgMCwgY3VyWFZpZXcsIHJ1bGVySGVpZ2h0KTsKKworICAgICAgICAvLyBNaW5vciBtYXJrcworICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IG51bVRpY2tzUGVyTWFqb3I7ICsraSkgeworICAgICAgICAgIHZhciB4VmlldyA9IE1hdGguZmxvb3IoY3VyWFZpZXcgKyBtaW5vck1hcmtEaXN0YW5jZVB4ICogaSk7CisgICAgICAgICAgdHIudWkuYi5kcmF3TGluZShjdHgsCisgICAgICAgICAgICAgIHhWaWV3LCBydWxlckhlaWdodCAtIG1pbm9yVGlja0gsCisgICAgICAgICAgICAgIHhWaWV3LCBydWxlckhlaWdodCk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gRHJhdyBib3R0b20gYmFyLgorICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYigwLCAwLCAwKSc7CisgICAgICB0ci51aS5iLmRyYXdMaW5lKGN0eCwgMCwgaGVpZ2h0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgIGN0eC5zdHJva2UoKTsKKworICAgICAgLy8gR2l2ZSBkaXN0YW5jZSBiZXR3ZWVuIGRpcmVjdGx5IGFkamFjZW50IG1hcmtlcnMuCisgICAgICBpZiAoIWhhc0ludGVyZXN0UmFuZ2UpCisgICAgICAgIHJldHVybjsKKworICAgICAgLy8gRHJhdyBtaWRkbGUgYmFyLgorICAgICAgdHIudWkuYi5kcmF3TGluZShjdHgsIDAsIHJ1bGVySGVpZ2h0LCB3aWR0aCwgcnVsZXJIZWlnaHQpOworICAgICAgY3R4LnN0cm9rZSgpOworCisgICAgICAvLyBEaXN0YW5jZSBWYXJpYWJsZXMuCisgICAgICB2YXIgZGlzcGxheURpc3RhbmNlOworICAgICAgdmFyIGRpc3BsYXlUZXh0Q29sb3IgPSAncmdiKDAsMCwwKSc7CisKKyAgICAgIC8vIEFycm93IFZhcmlhYmxlcy4KKyAgICAgIHZhciBhcnJvd1NwYWNpbmcgPSAxMCAqIHBpeGVsUmF0aW87CisgICAgICB2YXIgYXJyb3dDb2xvciA9ICdyZ2IoMTI4LDEyMSwxMjEpJzsKKyAgICAgIHZhciBhcnJvd1Bvc1kgPSBydWxlckhlaWdodCAqIDEuNzU7CisgICAgICB2YXIgYXJyb3dXaWR0aFZpZXcgPSAzICogcGl4ZWxSYXRpbzsKKyAgICAgIHZhciBhcnJvd0xlbmd0aFZpZXcgPSAxMCAqIHBpeGVsUmF0aW87CisgICAgICB2YXIgc3BhY2VGb3JBcnJvd3NWaWV3ID0gMiAqIChhcnJvd1dpZHRoVmlldyArIGFycm93U3BhY2luZyk7CisKKyAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJzsKKyAgICAgIGN0eC5mb250ID0gKDE0ICogcGl4ZWxSYXRpbykgKyAncHggc2Fucy1zZXJpZic7CisgICAgICB2YXIgdGV4dFBvc1kgPSBhcnJvd1Bvc1k7CisKKyAgICAgIHZhciBpbnRlcmVzdFJhbmdlID0gdnAuaW50ZXJlc3RSYW5nZTsKKworICAgICAgLy8gSWYgdGhlIHJhbmdlIGlzIHplcm8sIGRyYXcgaXQncyBtaW4gdGltZXN0YW1wIG5leHQgdG8gdGhlIGxpbmUuCisgICAgICBpZiAoaW50ZXJlc3RSYW5nZS5yYW5nZSA9PT0gMCkgeworICAgICAgICB2YXIgbWFya2VyV29ybGQgPSBpbnRlcmVzdFJhbmdlLm1pbjsKKyAgICAgICAgdmFyIG1hcmtlclZpZXcgPSBkdC54V29ybGRUb1ZpZXcobWFya2VyV29ybGQpOworICAgICAgICB2YXIgZGlzcGxheVZhbHVlID0gbWFya2VyV29ybGQgLyB1bml0RGl2aXNvcjsKKyAgICAgICAgZGlzcGxheVZhbHVlID0gTWF0aC5hYnMoKE1hdGgucm91bmQoZGlzcGxheVZhbHVlICogMTAwMCkgLyAxMDAwKSk7CisKKyAgICAgICAgdmFyIHRleHRUb0RyYXcgPSBkaXNwbGF5VmFsdWUgKyAnICcgKyB1bml0OworICAgICAgICB2YXIgdGV4dExlZnRWaWV3ID0gbWFya2VyVmlldyArIDQgKiBwaXhlbFJhdGlvOworICAgICAgICB2YXIgdGV4dFdpZHRoVmlldyA9IGN0eC5tZWFzdXJlVGV4dCh0ZXh0VG9EcmF3KS53aWR0aDsKKworICAgICAgICAvLyBQdXQgdGV4dCB0byB0aGUgbGVmdCBpbiBjYXNlIGl0IGdldHMgY3V0IG9mZi4KKyAgICAgICAgaWYgKHRleHRMZWZ0VmlldyArIHRleHRXaWR0aFZpZXcgPiB3aWR0aCkKKyAgICAgICAgICB0ZXh0TGVmdFZpZXcgPSBtYXJrZXJWaWV3IC0gNCAqIHBpeGVsUmF0aW8gLSB0ZXh0V2lkdGhWaWV3OworCisgICAgICAgIGN0eC5maWxsU3R5bGUgPSBkaXNwbGF5VGV4dENvbG9yOworICAgICAgICBjdHguZmlsbFRleHQodGV4dFRvRHJhdywgdGV4dExlZnRWaWV3LCB0ZXh0UG9zWSk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgdmFyIGxlZnRNYXJrZXIgPSBpbnRlcmVzdFJhbmdlLm1pbjsKKyAgICAgIHZhciByaWdodE1hcmtlciA9IGludGVyZXN0UmFuZ2UubWF4OworCisgICAgICB2YXIgbGVmdE1hcmtlclZpZXcgPSBkdC54V29ybGRUb1ZpZXcobGVmdE1hcmtlcik7CisgICAgICB2YXIgcmlnaHRNYXJrZXJWaWV3ID0gZHQueFdvcmxkVG9WaWV3KHJpZ2h0TWFya2VyKTsKKworICAgICAgdmFyIGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnMgPSBpbnRlcmVzdFJhbmdlLnJhbmdlOworICAgICAgdmFyIGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3ID0KKyAgICAgICAgICBkdC54V29ybGRWZWN0b3JUb1ZpZXcoZGlzdGFuY2VCZXR3ZWVuTWFya2Vycyk7CisgICAgICB2YXIgcG9zaXRpb25Jbk1pZGRsZU9mTWFya2Vyc1ZpZXcgPQorICAgICAgICAgIGxlZnRNYXJrZXJWaWV3ICsgKGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3IC8gMik7CisKKyAgICAgIC8vIERldGVybWluZSB1bml0cy4KKyAgICAgIGlmIChkaXN0YW5jZUJldHdlZW5NYXJrZXJzIDwgMC4wMDAxKSB7CisgICAgICAgIHVuaXQgPSAnbnMnOworICAgICAgICB1bml0RGl2aXNvciA9IDAuMDAwMDAxOworICAgICAgfSBlbHNlIGlmIChkaXN0YW5jZUJldHdlZW5NYXJrZXJzIDwgMC4xKSB7CisgICAgICAgIHVuaXQgPSAndXMnOworICAgICAgICB1bml0RGl2aXNvciA9IDAuMDAxOworICAgICAgfSBlbHNlIGlmIChkaXN0YW5jZUJldHdlZW5NYXJrZXJzIDwgMTAwKSB7CisgICAgICAgIHVuaXQgPSAnbXMnOworICAgICAgICB1bml0RGl2aXNvciA9IDE7CisgICAgICB9IGVsc2UgeworICAgICAgICB1bml0ID0gJ3MnOworICAgICAgICB1bml0RGl2aXNvciA9IDEwMDA7CisgICAgICB9CisKKyAgICAgIC8vIENhbGN1bGF0ZSBkaXNwbGF5IHZhbHVlIHRvIHByaW50LgorICAgICAgZGlzcGxheURpc3RhbmNlID0gZGlzdGFuY2VCZXR3ZWVuTWFya2VycyAvIHVuaXREaXZpc29yOworICAgICAgdmFyIHJvdW5kZWREaXNwbGF5RGlzdGFuY2UgPQorICAgICAgICAgIE1hdGguYWJzKChNYXRoLnJvdW5kKGRpc3BsYXlEaXN0YW5jZSAqIDEwMDApIC8gMTAwMCkpOworICAgICAgdmFyIHRleHRUb0RyYXcgPSByb3VuZGVkRGlzcGxheURpc3RhbmNlICsgJyAnICsgdW5pdDsKKyAgICAgIHZhciB0ZXh0V2lkdGhWaWV3ID0gY3R4Lm1lYXN1cmVUZXh0KHRleHRUb0RyYXcpLndpZHRoOworICAgICAgdmFyIHNwYWNlRm9yQXJyb3dzQW5kVGV4dFZpZXcgPQorICAgICAgICAgIHRleHRXaWR0aFZpZXcgKyBzcGFjZUZvckFycm93c1ZpZXcgKyBhcnJvd1NwYWNpbmc7CisKKyAgICAgIC8vIFNldCB0ZXh0IHBvc2l0aW9ucy4KKyAgICAgIHZhciB0ZXh0TGVmdFZpZXcgPSBwb3NpdGlvbkluTWlkZGxlT2ZNYXJrZXJzVmlldyAtIHRleHRXaWR0aFZpZXcgLyAyOworICAgICAgdmFyIHRleHRSaWdodFZpZXcgPSB0ZXh0TGVmdFZpZXcgKyB0ZXh0V2lkdGhWaWV3OworCisgICAgICBpZiAoc3BhY2VGb3JBcnJvd3NBbmRUZXh0VmlldyA+IGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3KSB7CisgICAgICAgIC8vIFByaW50IHRoZSBkaXNwbGF5IGRpc3RhbmNlIHRleHQgcmlnaHQgb2YgdGhlIDIgbWFya2Vycy4KKyAgICAgICAgdGV4dExlZnRWaWV3ID0gcmlnaHRNYXJrZXJWaWV3ICsgMiAqIGFycm93U3BhY2luZzsKKworICAgICAgICAvLyBQdXQgdGV4dCB0byB0aGUgbGVmdCBpbiBjYXNlIGl0IGdldHMgY3V0IG9mZi4KKyAgICAgICAgaWYgKHRleHRMZWZ0VmlldyArIHRleHRXaWR0aFZpZXcgPiB3aWR0aCkKKyAgICAgICAgICB0ZXh0TGVmdFZpZXcgPSBsZWZ0TWFya2VyVmlldyAtIDIgKiBhcnJvd1NwYWNpbmcgLSB0ZXh0V2lkdGhWaWV3OworCisgICAgICAgIGN0eC5maWxsU3R5bGUgPSBkaXNwbGF5VGV4dENvbG9yOworICAgICAgICBjdHguZmlsbFRleHQodGV4dFRvRHJhdywgdGV4dExlZnRWaWV3LCB0ZXh0UG9zWSk7CisKKyAgICAgICAgLy8gRHJhdyB0aGUgYXJyb3dzIHBvaW50aW5nIGZyb20gb3V0c2lkZSBpbiBhbmQgYSBsaW5lIGluIGJldHdlZW4uCisgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IGFycm93Q29sb3I7CisgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICAgICAgdHIudWkuYi5kcmF3TGluZShjdHgsIGxlZnRNYXJrZXJWaWV3LCBhcnJvd1Bvc1ksIHJpZ2h0TWFya2VyVmlldywKKyAgICAgICAgICAgIGFycm93UG9zWSk7CisgICAgICAgIGN0eC5zdHJva2UoKTsKKworICAgICAgICBjdHguZmlsbFN0eWxlID0gYXJyb3dDb2xvcjsKKyAgICAgICAgdHIudWkuYi5kcmF3QXJyb3coY3R4LAorICAgICAgICAgICAgbGVmdE1hcmtlclZpZXcgLSAxLjUgKiBhcnJvd1NwYWNpbmcsIGFycm93UG9zWSwKKyAgICAgICAgICAgIGxlZnRNYXJrZXJWaWV3LCBhcnJvd1Bvc1ksCisgICAgICAgICAgICBhcnJvd0xlbmd0aFZpZXcsIGFycm93V2lkdGhWaWV3KTsKKyAgICAgICAgdHIudWkuYi5kcmF3QXJyb3coY3R4LAorICAgICAgICAgICAgcmlnaHRNYXJrZXJWaWV3ICsgMS41ICogYXJyb3dTcGFjaW5nLCBhcnJvd1Bvc1ksCisgICAgICAgICAgICByaWdodE1hcmtlclZpZXcsIGFycm93UG9zWSwKKyAgICAgICAgICAgIGFycm93TGVuZ3RoVmlldywgYXJyb3dXaWR0aFZpZXcpOworCisgICAgICB9IGVsc2UgaWYgKHNwYWNlRm9yQXJyb3dzVmlldyA8PSBkaXN0YW5jZUJldHdlZW5NYXJrZXJzVmlldykgeworICAgICAgICB2YXIgbGVmdEFycm93U3RhcnQ7CisgICAgICAgIHZhciByaWdodEFycm93U3RhcnQ7CisgICAgICAgIGlmIChzcGFjZUZvckFycm93c0FuZFRleHRWaWV3IDw9IGRpc3RhbmNlQmV0d2Vlbk1hcmtlcnNWaWV3KSB7CisgICAgICAgICAgLy8gUHJpbnQgdGhlIGRpc3BsYXkgZGlzdGFuY2UgdGV4dC4KKyAgICAgICAgICBjdHguZmlsbFN0eWxlID0gZGlzcGxheVRleHRDb2xvcjsKKyAgICAgICAgICBjdHguZmlsbFRleHQodGV4dFRvRHJhdywgdGV4dExlZnRWaWV3LCB0ZXh0UG9zWSk7CisKKyAgICAgICAgICBsZWZ0QXJyb3dTdGFydCA9IHRleHRMZWZ0VmlldyAtIGFycm93U3BhY2luZzsKKyAgICAgICAgICByaWdodEFycm93U3RhcnQgPSB0ZXh0UmlnaHRWaWV3ICsgYXJyb3dTcGFjaW5nOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGxlZnRBcnJvd1N0YXJ0ID0gcG9zaXRpb25Jbk1pZGRsZU9mTWFya2Vyc1ZpZXc7CisgICAgICAgICAgcmlnaHRBcnJvd1N0YXJ0ID0gcG9zaXRpb25Jbk1pZGRsZU9mTWFya2Vyc1ZpZXc7CisgICAgICAgIH0KKworICAgICAgICAvLyBEcmF3IHRoZSBhcnJvd3MgcG9pbnRpbmcgaW5zaWRlIG91dC4KKyAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gYXJyb3dDb2xvcjsKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGFycm93Q29sb3I7CisgICAgICAgIHRyLnVpLmIuZHJhd0Fycm93KGN0eCwKKyAgICAgICAgICAgIGxlZnRBcnJvd1N0YXJ0LCBhcnJvd1Bvc1ksCisgICAgICAgICAgICBsZWZ0TWFya2VyVmlldywgYXJyb3dQb3NZLAorICAgICAgICAgICAgYXJyb3dMZW5ndGhWaWV3LCBhcnJvd1dpZHRoVmlldyk7CisgICAgICAgIHRyLnVpLmIuZHJhd0Fycm93KGN0eCwKKyAgICAgICAgICAgIHJpZ2h0QXJyb3dTdGFydCwgYXJyb3dQb3NZLAorICAgICAgICAgICAgcmlnaHRNYXJrZXJWaWV3LCBhcnJvd1Bvc1ksCisgICAgICAgICAgICBhcnJvd0xlbmd0aFZpZXcsIGFycm93V2lkdGhWaWV3KTsKKyAgICAgIH0KKworICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQWRkcyBpdGVtcyBpbnRlcnNlY3RpbmcgdGhlIGdpdmVuIHJhbmdlIHRvIGEgc2VsZWN0aW9uLgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsb1ZYIExvd2VyIFggYm91bmQgb2YgdGhlIGludGVydmFsIHRvIHNlYXJjaCwgaW4KKyAgICAgKiAgICAgdmlld3NwYWNlLgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoaVZYIFVwcGVyIFggYm91bmQgb2YgdGhlIGludGVydmFsIHRvIHNlYXJjaCwgaW4KKyAgICAgKiAgICAgdmlld3NwYWNlLgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsb1ZZIExvd2VyIFkgYm91bmQgb2YgdGhlIGludGVydmFsIHRvIHNlYXJjaCwgaW4KKyAgICAgKiAgICAgdmlld3NwYWNlLgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoaVZZIFVwcGVyIFkgYm91bmQgb2YgdGhlIGludGVydmFsIHRvIHNlYXJjaCwgaW4KKyAgICAgKiAgICAgdmlld3NwYWNlLgorICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gU2VsZWN0aW9uIHRvIHdoaWNoIHRvIGFkZCByZXN1bHRzLgorICAgICAqLworICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbjogZnVuY3Rpb24oCisgICAgICAgIGxvVlgsIGhpVlgsIGxvWSwgaGlZLCBzZWxlY3Rpb24pIHsKKyAgICAgIC8vIERvZXMgbm90aGluZy4gVGhlcmUncyBub3RoaW5nIGludGVyZXN0aW5nIHRvIHBpY2sgb24gdGhlIHJ1bGVyCisgICAgICAvLyB0cmFjay4KKyAgICB9LAorCisgICAgYWRkQWxsRXZlbnRzTWF0Y2hpbmdGaWx0ZXJUb1NlbGVjdGlvbjogZnVuY3Rpb24oZmlsdGVyLCBzZWxlY3Rpb24pIHsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBSdWxlclRyYWNrOiBSdWxlclRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcnVsZXJfdHJhY2tfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvcnVsZXJfdHJhY2tfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzJlYTAKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9ydWxlcl90cmFja190ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV92aWV3cG9ydC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL2RyYXdpbmdfY29udGFpbmVyLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvcnVsZXJfdHJhY2suaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKworICAgIHZhciB2aWV3cG9ydCA9IG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KGRpdik7CisgICAgdmFyIGRyYXdpbmdDb250YWluZXIgPSBuZXcgdHIudWkudHJhY2tzLkRyYXdpbmdDb250YWluZXIodmlld3BvcnQpOworICAgIGRpdi5hcHBlbmRDaGlsZChkcmF3aW5nQ29udGFpbmVyKTsKKworICAgIHZhciB0cmFjayA9IHRyLnVpLnRyYWNrcy5SdWxlclRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoZGl2KTsKKworICAgIGRyYXdpbmdDb250YWluZXIuaW52YWxpZGF0ZSgpOworCisgICAgdmFyIGR0ID0gbmV3IHRyLnVpLlRpbWVsaW5lRGlzcGxheVRyYW5zZm9ybSgpOworICAgIGR0LnNldFBhbkFuZFNjYWxlKDAsIHRyYWNrLmNsaWVudFdpZHRoIC8gMTAwMCk7CisgICAgdHJhY2sudmlld3BvcnQuc2V0RGlzcGxheVRyYW5zZm9ybUltbWVkaWF0ZWx5KGR0KTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zYW1wbGVfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NhbXBsZV90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NWVhMjcKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zYW1wbGVfdHJhY2suaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvcmVjdF90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIGFuIGFycmF5IG9mIFNhbXBsZSBvYmplY3RzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1JlY3RUcmFja30KKyAgICovCisgIHZhciBTYW1wbGVUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ3NhbXBsZS10cmFjaycsIHRyLnVpLnRyYWNrcy5SZWN0VHJhY2spOworCisgIFNhbXBsZVRyYWNrLnByb3RvdHlwZSA9IHsKKworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgIH0sCisKKyAgICBnZXQgc2FtcGxlcygpIHsKKyAgICAgIHJldHVybiB0aGlzLnJlY3RzOworICAgIH0sCisKKyAgICBzZXQgc2FtcGxlcyhzYW1wbGVzKSB7CisgICAgICB0aGlzLnJlY3RzID0gc2FtcGxlczsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBTYW1wbGVUcmFjazogU2FtcGxlVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NhbXBsZV90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zYW1wbGVfdHJhY2tfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MzExNTgKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zYW1wbGVfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2FtcGxlLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zdGFja19mcmFtZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3NhbXBsZV90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBTYW1wbGVUcmFjayA9IHRyLnVpLnRyYWNrcy5TYW1wbGVUcmFjazsKKyAgdmFyIFNhbXBsZSA9IHRyLm1vZGVsLlNhbXBsZTsKKyAgdmFyIFN0YWNrRnJhbWUgPSB0ci5tb2RlbC5TdGFja0ZyYW1lOworCisgIHRlc3QoJ21vZGVsTWFwcGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0cmFjayA9IG5ldyBTYW1wbGVUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB2YXIgZkEgPSBuZXcgU3RhY2tGcmFtZSh1bmRlZmluZWQsIDEsICdjYXQnLCAnYScsIDcpOworICAgIHZhciBzYW1wbGUgPSBuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLCBmQSwgMTApOworICAgIHRyYWNrLnNhbXBsZXMgPSBbc2FtcGxlXTsKKyAgICB2YXIgbWUwID0gdHJhY2sucmVjdHNbMF0ubW9kZWxJdGVtOworICAgIGFzc2VydC5lcXVhbChtZTAsIHNhbXBsZSk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvc2xpY2VfZ3JvdXBfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI4MzUxMwotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrLmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9tdWx0aV9yb3dfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc29ydGVkX2FycmF5X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBBIHRyYWNrIHRoYXQgZGlzcGxheXMgYSBTbGljZUdyb3VwLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge011bHRpUm93VHJhY2t9CisgICAqLworICB2YXIgU2xpY2VHcm91cFRyYWNrID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAnc2xpY2UtZ3JvdXAtdHJhY2snLCB0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjayk7CisKKyAgU2xpY2VHcm91cFRyYWNrLnByb3RvdHlwZSA9IHsKKworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLk11bHRpUm93VHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuTXVsdGlSb3dUcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3NsaWNlLWdyb3VwLXRyYWNrJyk7CisgICAgICB0aGlzLmdyb3VwXyA9IHVuZGVmaW5lZDsKKyAgICAgIC8vIFNldCB0aGUgY29sbGFwc2UgdGhyZXNob2xkIHNvIHdlIGRvbid0IGNvbGxhcHNlIGJ5IGRlZmF1bHQsIGJ1dCB0aGUKKyAgICAgIC8vIHVzZXIgY2FuIGV4cGxpY2l0bHkgY29sbGFwc2UgaWYgdGhleSB3YW50IGl0LgorICAgICAgdGhpcy5kZWZhdWx0VG9Db2xsYXBzZWRXaGVuU3ViUm93Q291bnRNb3JlVGhhbiA9IDEwMDsKKyAgICB9LAorCisgICAgYWRkU3ViVHJhY2tfOiBmdW5jdGlvbihzbGljZXMpIHsKKyAgICAgIHZhciB0cmFjayA9IG5ldyB0ci51aS50cmFja3MuU2xpY2VUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgIHRyYWNrLnNsaWNlcyA9IHNsaWNlczsKKyAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJhY2spOworICAgICAgcmV0dXJuIHRyYWNrOworICAgIH0sCisKKyAgICBnZXQgZ3JvdXAoKSB7CisgICAgICByZXR1cm4gdGhpcy5ncm91cF87CisgICAgfSwKKworICAgIHNldCBncm91cChncm91cCkgeworICAgICAgdGhpcy5ncm91cF8gPSBncm91cDsKKyAgICAgIHRoaXMuc2V0SXRlbXNUb0dyb3VwKHRoaXMuZ3JvdXBfLnNsaWNlcywgdGhpcy5ncm91cF8pOworICAgIH0sCisKKyAgICBnZXQgZXZlbnRDb250YWluZXIoKSB7CisgICAgICByZXR1cm4gdGhpcy5ncm91cDsKKyAgICB9LAorCisgICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKKyAgICAgIGNvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMuZ3JvdXAsIHRoaXMpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBCcmVha3MgdXAgdGhlIGxpc3Qgb2Ygc2xpY2VzIGludG8gTiByb3dzLCBlYWNoIG9mIHdoaWNoIGlzIGEgbGlzdCBvZgorICAgICAqIHNsaWNlcyB0aGF0IGFyZSBub24gb3ZlcmxhcHBpbmcuCisgICAgICovCisgICAgYnVpbGRTdWJSb3dzXzogZnVuY3Rpb24oc2xpY2VzKSB7CisgICAgICB2YXIgcHJlY2lzaW9uVW5pdCA9IHRoaXMuZ3JvdXAubW9kZWwuaW50cmluc2ljVGltZVVuaXQ7CisKKyAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd29ya3MgYnkgd2Fsa2luZyB0aHJvdWdoIHNsaWNlcyBieSBzdGFydCB0aW1lLgorICAgICAgLy8KKyAgICAgIC8vIFRoZSBiYXNpYyBpZGVhIGhlcmUgaXMgdG8gaW5zZXJ0IGVhY2ggc2xpY2UgYXMgZGVlcCBpbnRvIHRoZSBzdWJyb3cKKyAgICAgIC8vIGxpc3QgYXMgaXQgY2FuIGdvIHN1Y2ggdGhhdCBldmVyeSBzdWJTbGljZSBpcyBmdWxseSBjb250YWluZWQgYnkgaXRzCisgICAgICAvLyBwYXJlbnQgc2xpY2UuCisgICAgICAvLworICAgICAgLy8gVmlzdWFsbHksIGlmIHdlIHN0YXJ0IHdpdGggdGhpczoKKyAgICAgIC8vICAwOiAgWyAgICBhICAgICAgIF0KKyAgICAgIC8vICAxOiAgICBbICBiICBdCisgICAgICAvLyAgMjogICAgW2NdW2RdCisgICAgICAvLworICAgICAgLy8gVG8gcGxhY2UgdGhpcyBzbGljZToKKyAgICAgIC8vICAgICAgICAgICAgICAgW2VdCisgICAgICAvLyBXZSBmaXJzdCBjaGVjayByb3cgMidzIGxhc3QgaXRlbSwgW2RdLiBbZV0gd29udCBmaXQgaW50byBbZF0gKHRoZXkgZG9udAorICAgICAgLy8gZXZlbiBpbnRlcnNlY3QpLiBTbyB3ZSBnbyB0byByb3cgMS4gVGhhdCBnaXZlcyB1cyBbYl0sIGFuZCBbZF0gd29udCBmaXQKKyAgICAgIC8vIGludG8gdGhhdCBlaXRoZXIuIFNvLCB3ZSBnbyB0byByb3cgMCBhbmQgaXRzIGxhc3Qgc2xpY2UsIFthXS4gVGhhdCBjYW4KKyAgICAgIC8vIGNvbXBsZXRlbHkgY29udGFpbiBbZV0sIHNvIHRoYXQgbWVhbnMgd2Ugc2hvdWxkIGFkZCBbZV0gYXMgYSBzdWJjaGlsZAorICAgICAgLy8gb2YgW2FdLiBUaGF0IHB1dHMgaXQgb24gcm93IDEsIHlpZWxkaW5nOgorICAgICAgLy8gIDA6ICBbICAgIGEgICAgICAgXQorICAgICAgLy8gIDE6ICAgIFsgIGIgIF1bZV0KKyAgICAgIC8vICAyOiAgICBbY11bZF0KKyAgICAgIC8vCisgICAgICAvLyBJZiB3ZSB0aGVuIGdldCB0aGlzIHNsaWNlOgorICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgW2ZdCisgICAgICAvLyBXZSBkbyB0aGUgc2FtZSBkZWVwZXN0LXRvLXNoYWxsb3dlc3Qgd2FsayBvZiB0aGUgc3Vicm93cyB0cnlpbmcgdG8gZml0CisgICAgICAvLyBpdC4gVGhpcyB0aW1lLCBpdCBkb2Vzbid0IGZpdCBpbiBhbnkgb3BlbiBzbGljZS4gU28sIHdlIHNpbXBseSBhcHBlbmQKKyAgICAgIC8vIGl0IHRvIHJvdyAwOgorICAgICAgLy8gIDA6ICBbICAgIGEgICAgICAgXSAgW2ZdCisgICAgICAvLyAgMTogICAgWyAgYiAgXVtlXQorICAgICAgLy8gIDI6ICAgIFtjXVtkXQorICAgICAgaWYgKCFzbGljZXMubGVuZ3RoKQorICAgICAgICByZXR1cm4gW107CisKKyAgICAgIHZhciBvcHMgPSBbXTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChzbGljZXNbaV0uc3ViU2xpY2VzKQorICAgICAgICAgIHNsaWNlc1tpXS5zdWJTbGljZXMuc3BsaWNlKDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2VzW2ldLnN1YlNsaWNlcy5sZW5ndGgpOworICAgICAgICBvcHMucHVzaChpKTsKKyAgICAgIH0KKworICAgICAgb3BzLnNvcnQoZnVuY3Rpb24oaXgsIGl5KSB7CisgICAgICAgIHZhciB4ID0gc2xpY2VzW2l4XTsKKyAgICAgICAgdmFyIHkgPSBzbGljZXNbaXldOworICAgICAgICBpZiAoeC5zdGFydCAhPSB5LnN0YXJ0KQorICAgICAgICAgIHJldHVybiB4LnN0YXJ0IC0geS5zdGFydDsKKworICAgICAgICAvLyBFbGVtZW50cyBnZXQgaW5zZXJ0ZWQgaW50byB0aGUgc2xpY2VzIGFycmF5IGluIG9yZGVyIG9mIHdoZW4gdGhlCisgICAgICAgIC8vIHNsaWNlcyBzdGFydC4gQmVjYXVzZSBzbGljZXMgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQsIHdlIGJyZWFrCisgICAgICAgIC8vIHN0YXJ0LXRpbWUgdGllcyBieSBhc3N1bWluZyB0aGF0IHRoZSBlbGVtZW50cyBhcHBlYXJpbmcgZWFybGllciBpbgorICAgICAgICAvLyB0aGUgc2xpY2VzIGFycmF5IChhbmQgdGh1cyBlbmRpbmcgZWFybGllcikgc3RhcnQgZWFybGllci4KKyAgICAgICAgcmV0dXJuIGl4IC0gaXk7CisgICAgICB9KTsKKworICAgICAgdmFyIHN1YlJvd3MgPSBbW11dOworICAgICAgdGhpcy5iYWRTbGljZXNfID0gW107ICAvLyBUT0RPKHNpbW9uamFtKTogQ29ubmVjdCB0aGlzIGFnYWluLgorCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgb3AgPSBvcHNbaV07CisgICAgICAgIHZhciBzbGljZSA9IHNsaWNlc1tvcF07CisKKyAgICAgICAgLy8gVHJ5IHRvIGZpdCB0aGUgc2xpY2UgaW50byB0aGUgZXhpc3Rpbmcgc3Vicm93cy4KKyAgICAgICAgdmFyIGluc2VydGVkID0gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGogPSBzdWJSb3dzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7CisgICAgICAgICAgaWYgKHN1YlJvd3Nbal0ubGVuZ3RoID09IDApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIHZhciBpbnNlcnRlZFNsaWNlID0gc3ViUm93c1tqXVtzdWJSb3dzW2pdLmxlbmd0aCAtIDFdOworICAgICAgICAgIGlmIChzbGljZS5zdGFydCA8IGluc2VydGVkU2xpY2Uuc3RhcnQpIHsKKyAgICAgICAgICAgIHRoaXMuYmFkU2xpY2VzXy5wdXNoKHNsaWNlKTsKKyAgICAgICAgICAgIGluc2VydGVkID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGluc2VydGVkU2xpY2UuYm91bmRzKHNsaWNlLCBwcmVjaXNpb25Vbml0KSkgeworICAgICAgICAgICAgLy8gSW5zZXJ0IGl0IGludG8gc3ViUm93IGogKyAxLgorICAgICAgICAgICAgd2hpbGUgKHN1YlJvd3MubGVuZ3RoIDw9IGogKyAxKQorICAgICAgICAgICAgICBzdWJSb3dzLnB1c2goW10pOworICAgICAgICAgICAgc3ViUm93c1tqICsgMV0ucHVzaChzbGljZSk7CisgICAgICAgICAgICBpZiAoaW5zZXJ0ZWRTbGljZS5zdWJTbGljZXMpCisgICAgICAgICAgICAgIGluc2VydGVkU2xpY2Uuc3ViU2xpY2VzLnB1c2goc2xpY2UpOworICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbnNlcnRlZCkKKyAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBBcHBlbmQgaXQgdG8gc3ViUm93WzBdIGFzIGEgcm9vdC4KKyAgICAgICAgc3ViUm93c1swXS5wdXNoKHNsaWNlKTsKKyAgICAgIH0KKworICAgICAgcmV0dXJuIHN1YlJvd3M7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgU2xpY2VHcm91cFRyYWNrOiBTbGljZUdyb3VwVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zbGljZV9ncm91cF90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zbGljZV9ncm91cF90cmFja190ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY1ZGNmZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX2dyb3VwX3RyYWNrX3Rlc3QuaHRtbApAQCAtMCwwICsxLDI5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvY29yZS90ZXN0X3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90aW1lbGluZV90cmFja192aWV3Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9tb2RlbC9zbGljZV9ncm91cC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBQcm9jZXNzVHJhY2sgPSB0ci51aS50cmFja3MuUHJvY2Vzc1RyYWNrOworICB2YXIgVGhyZWFkVHJhY2sgPSB0ci51aS50cmFja3MuVGhyZWFkVHJhY2s7CisgIHZhciBTbGljZUdyb3VwID0gdHIubW9kZWwuU2xpY2VHcm91cDsKKyAgdmFyIFNsaWNlR3JvdXBUcmFjayA9IHRyLnVpLnRyYWNrcy5TbGljZUdyb3VwVHJhY2s7CisgIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7CisKKyAgdGVzdCgnc3ViUm93QnVpbGRlckJhc2ljJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOworICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMikpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMywgMSkpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGdyb3VwOworICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKKworICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NBLCBzQl0pOworICB9KTsKKworICB0ZXN0KCdzdWJSb3dCdWlsZGVyQmFzaWMyJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOworICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgNCkpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMywgMSkpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGdyb3VwOworICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKKworICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzdWJSb3dzWzBdLCBbc0FdKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMV0sIFtzQl0pOworICB9KTsKKworICB0ZXN0KCdzdWJSb3dCdWlsZGVyTmVzdGVkRXhhY3RseScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKKworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMSwgNCkpOworICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgNCkpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGdyb3VwOworICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKKworICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDEpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzFdLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmRlZXBFcXVhbChzdWJSb3dzWzBdLCBbc0JdKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMV0sIFtzQV0pOworICB9KTsKKworICB0ZXN0KCdzdWJSb3dCdWlsZGVySW5zdGFudEV2ZW50cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKKworICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMCkpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMiwgMCkpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGdyb3VwOworICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKKworICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93c1swXS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NBLCBzQl0pOworICB9KTsKKworICB0ZXN0KCdzdWJSb3dCdWlsZGVyVHdvSW5zdGFudEV2ZW50cycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKKworICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMCkpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMSwgMCkpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGdyb3VwOworICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKKworICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQV0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1sxXSwgW3NCXSk7CisgIH0pOworCisgIHRlc3QoJ3N1YlJvd0J1aWxkZXJPdXRPZk9yZGVyQWRkaXRpb24nLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciB0MSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgIHZhciBncm91cCA9IHQxLnNsaWNlR3JvdXA7CisKKyAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKKyAgICAvLyBbICAgIGEgICAgIF1bICAgYiAgIF0KKyAgICAvLyBXaGVyZSBpbnNlcnRpb24gaXMgZG9uZSBiYWNrd2FyZC4KKyAgICB2YXIgc0IgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYicsIDMsIDEpKTsKKyAgICB2YXIgc0EgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYScsIDEsIDIpKTsKKworICAgIHZhciB0cmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sobmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoKSk7CisgICAgdHJhY2suZ3JvdXAgPSBncm91cDsKKyAgICB2YXIgc3ViUm93cyA9IHRyYWNrLnN1YlJvd3M7CisKKyAgICBhc3NlcnQuZXF1YWwodHJhY2suYmFkU2xpY2VzXy5sZW5ndGgsIDApOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMF0ubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQSwgc0JdKTsKKyAgfSk7CisKKyAgdGVzdCgnc3ViUm93QnVpbGRlck91dE9mT3JkZXJBZGRpdGlvbjInLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciB0MSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgIHZhciBncm91cCA9IHQxLnNsaWNlR3JvdXA7CisKKyAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKKyAgICAvLyBbICAgIGEgICAgIF0KKyAgICAvLyAgIFsgIGIgICBdCisgICAgLy8gV2hlcmUgaW5zZXJ0aW9uIGlzIGRvbmUgYmFja3dhcmQuCisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAzLCAxKSk7CisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCA1KSk7CisKKyAgICB2YXIgdHJhY2sgPSBuZXcgU2xpY2VHcm91cFRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHRyYWNrLmdyb3VwID0gZ3JvdXA7CisgICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOworCisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJhZFNsaWNlc18ubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcXVhbChzdWJSb3dzWzBdLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3NbMV0ubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQV0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1sxXSwgW3NCXSk7CisgIH0pOworCisgIHRlc3QoJ3N1YlJvd0J1aWxkZXJPbk5lc3RlZFplcm9MZW5ndGgnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbSA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciB0MSA9IG0uZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworICAgIHZhciBncm91cCA9IHQxLnNsaWNlR3JvdXA7CisKKyAgICAvLyBQYXR0ZXJuIGJlaW5nIHRlc3RlZDoKKyAgICAvLyBbICAgIGEgICAgXQorICAgIC8vIFsgIGIxIF0gIFtdPC0gYjIgd2hlcmUgYjIuZHVyYXRpb24gPSAwIGFuZCBiMi5lbmQgPT0gYS5lbmQuCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7CisgICAgdmFyIHNCMSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiMScsIDEsIDIpKTsKKyAgICB2YXIgc0IyID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2IyJywgNCwgMCkpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGdyb3VwOworICAgIHZhciBzdWJSb3dzID0gdHJhY2suc3ViUm93czsKKworICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQV0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1sxXSwgW3NCMSwgc0IyXSk7CisgIH0pOworCisgIHRlc3QoJ3N1YlJvd0J1aWxkZXJPbkdyb3VwMScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKKworICAgIC8vIFBhdHRlcm4gYmVpbmcgdGVzdGVkOgorICAgIC8vIFsgICAgYSAgICAgXSAgIFsgIGMgICBdCisgICAgLy8gICBbICBiICAgXQorICAgIHZhciBzQSA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdhJywgMSwgMykpOworICAgIHZhciBzQiA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdiJywgMS41LCAxKSk7CisgICAgdmFyIHNDID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2MnLCA1LCAwKSk7CisKKyAgICB2YXIgdHJhY2sgPSBuZXcgU2xpY2VHcm91cFRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHRyYWNrLmdyb3VwID0gZ3JvdXA7CisgICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOworCisgICAgYXNzZXJ0LmVxdWFsKHRyYWNrLmJhZFNsaWNlc18ubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnQuZXF1YWwoc3ViUm93cy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1swXSwgW3NBLCBzQ10pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1sxXSwgW3NCXSk7CisgIH0pOworCisgIHRlc3QoJ3N1YlJvd0J1aWxkZXJPbkdyb3VwMicsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHQxID0gbS5nZXRPckNyZWF0ZVByb2Nlc3MoMSkuZ2V0T3JDcmVhdGVUaHJlYWQoMik7CisgICAgdmFyIGdyb3VwID0gdDEuc2xpY2VHcm91cDsKKworICAgIC8vIFBhdHRlcm4gYmVpbmcgdGVzdGVkOgorICAgIC8vIFsgICAgYSAgICAgXSAgIFsgIGQgICBdCisgICAgLy8gICBbICBiICAgXQorICAgIC8vICAgIFsgYyBdCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7CisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLjUsIDEpKTsKKyAgICB2YXIgc0MgPSBncm91cC5wdXNoU2xpY2UobmV3U2xpY2VOYW1lZCgnYycsIDEuNzUsIDAuNSkpOworICAgIHZhciBzRCA9IGdyb3VwLnB1c2hTbGljZShuZXdTbGljZU5hbWVkKCdjJywgNSwgMC4yNSkpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFNsaWNlR3JvdXBUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0cmFjay5ncm91cCA9IGdyb3VwOworCisgICAgdmFyIHN1YlJvd3MgPSB0cmFjay5zdWJSb3dzOworICAgIGFzc2VydC5lcXVhbCh0cmFjay5iYWRTbGljZXNfLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0LmVxdWFsKHN1YlJvd3MubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMF0sIFtzQSwgc0RdKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHN1YlJvd3NbMV0sIFtzQl0pOworICAgIGFzc2VydC5kZWVwRXF1YWwoc3ViUm93c1syXSwgW3NDXSk7CisgIH0pOworCisgIHRlc3QoJ3RyYWNrRmlsdGVyaW5nJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIG0gPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgdDEgPSBtLmdldE9yQ3JlYXRlUHJvY2VzcygxKS5nZXRPckNyZWF0ZVRocmVhZCgyKTsKKyAgICB2YXIgZ3JvdXAgPSB0MS5zbGljZUdyb3VwOworCisgICAgdmFyIHNBID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAxLCAzKSk7CisgICAgdmFyIHNCID0gZ3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2InLCAxLjUsIDEpKTsKKworICAgIHZhciB0cmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sobmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoKSk7CisgICAgdHJhY2suZ3JvdXAgPSBncm91cDsKKworICAgIGFzc2VydC5lcXVhbCh0cmFjay5zdWJSb3dzLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmlzVHJ1ZSh0cmFjay5oYXNWaXNpYmxlQ29udGVudCk7CisgIH0pOworCit0ZXN0KCdzbGljZUdyb3VwQ29udGFpbmVyTWFwJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHZwID0gbmV3IHRyLnVpLlRpbWVsaW5lVmlld3BvcnQoKTsKKyAgICB2YXIgY29udGFpbmVyVG9UcmFjayA9IHZwLmNvbnRhaW5lclRvVHJhY2tNYXA7CisgICAgdmFyIG1vZGVsID0gbmV3IHRyLk1vZGVsKCk7CisgICAgdmFyIHByb2Nlc3MgPSBtb2RlbC5nZXRPckNyZWF0ZVByb2Nlc3MoMTIzKTsKKyAgICB2YXIgdGhyZWFkID0gcHJvY2Vzcy5nZXRPckNyZWF0ZVRocmVhZCg0NTYpOworICAgIHZhciBncm91cCA9IG5ldyBTbGljZUdyb3VwKHRocmVhZCk7CisKKyAgICB2YXIgcHJvY2Vzc1RyYWNrID0gbmV3IFByb2Nlc3NUcmFjayh2cCk7CisgICAgdmFyIHRocmVhZFRyYWNrID0gbmV3IFRocmVhZFRyYWNrKHZwKTsKKyAgICB2YXIgZ3JvdXBUcmFjayA9IG5ldyBTbGljZUdyb3VwVHJhY2sodnApOworICAgIHByb2Nlc3NUcmFjay5wcm9jZXNzID0gcHJvY2VzczsKKyAgICB0aHJlYWRUcmFjay50aHJlYWQgPSB0aHJlYWQ7CisgICAgZ3JvdXBUcmFjay5ncm91cCA9IGdyb3VwOworICAgIHByb2Nlc3NUcmFjay5hcHBlbmRDaGlsZCh0aHJlYWRUcmFjayk7CisgICAgdGhyZWFkVHJhY2suYXBwZW5kQ2hpbGQoZ3JvdXBUcmFjayk7CisKKyAgICBhc3NlcnQuZXF1YWwocHJvY2Vzc1RyYWNrLmV2ZW50Q29udGFpbmVyLCBwcm9jZXNzKTsKKyAgICBhc3NlcnQuZXF1YWwodGhyZWFkVHJhY2suZXZlbnRDb250YWluZXIsIHRocmVhZCk7CisgICAgYXNzZXJ0LmVxdWFsKGdyb3VwVHJhY2suZXZlbnRDb250YWluZXIsIGdyb3VwKTsKKworICAgIGFzc2VydC5pc1VuZGVmaW5lZChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzJykpOworICAgIGFzc2VydC5pc1VuZGVmaW5lZChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzLjQ1NicpKTsKKyAgICBhc3NlcnQuaXNVbmRlZmluZWQoCisgICAgICAgIGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMuNDU2LlNsaWNlR3JvdXAnKSk7CisKKyAgICB2cC5tb2RlbFRyYWNrQ29udGFpbmVyID0geworICAgICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKKyAgICAgICAgcHJvY2Vzc1RyYWNrLmFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKGNvbnRhaW5lclRvVHJhY2tNYXApOworICAgICAgfSwKKyAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKCkge30KKyAgICB9OworICAgIHZwLnJlYnVpbGRDb250YWluZXJUb1RyYWNrTWFwKCk7CisKKyAgICAvLyBDaGVjayB0aGF0IGFsbCB0cmFja3MgY2FsbCBjaGlsZHMnIGFkZENvbnRhaW5lcnNUb1RyYWNrTWFwKCkKKyAgICAvLyBieSBjaGVja2luZyB0aGUgcmVzdWx0aW5nIG1hcC4KKyAgICBhc3NlcnQuZXF1YWwoY29udGFpbmVyVG9UcmFjay5nZXRUcmFja0J5U3RhYmxlSWQoJzEyMycpLCBwcm9jZXNzVHJhY2spOworICAgIGFzc2VydC5lcXVhbChjb250YWluZXJUb1RyYWNrLmdldFRyYWNrQnlTdGFibGVJZCgnMTIzLjQ1NicpLCB0aHJlYWRUcmFjayk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbnRhaW5lclRvVHJhY2suZ2V0VHJhY2tCeVN0YWJsZUlkKCcxMjMuNDU2LlNsaWNlR3JvdXAnKSwKKyAgICAgICAgZ3JvdXBUcmFjayk7CisKKyAgICAvLyBDaGVjayB0aGUgdHJhY2sncyBldmVudENvbnRhaW5lciBnZXR0ZXIuCisgICAgYXNzZXJ0LmVxdWFsKHByb2Nlc3NUcmFjay5ldmVudENvbnRhaW5lciwgcHJvY2Vzcyk7CisgICAgYXNzZXJ0LmVxdWFsKHRocmVhZFRyYWNrLmV2ZW50Q29udGFpbmVyLCB0aHJlYWQpOworICAgIGFzc2VydC5lcXVhbChncm91cFRyYWNrLmV2ZW50Q29udGFpbmVyLCBncm91cCk7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvc2xpY2VfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkZjQyZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX3RyYWNrLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3JlY3RfdHJhY2suaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmV4cG9ydFRvKCd0ci51aS50cmFja3MnLCBmdW5jdGlvbigpIHsKKyAgLyoqCisgICAqIEEgdHJhY2sgdGhhdCBkaXNwbGF5cyBhbiBhcnJheSBvZiBTbGljZSBvYmplY3RzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICogQGV4dGVuZHMge1JlY3RUcmFja30KKyAgICovCisgIHZhciBTbGljZVRyYWNrID0gdHIudWkuYi5kZWZpbmUoCisgICAgICAnc2xpY2UtdHJhY2snLCB0ci51aS50cmFja3MuUmVjdFRyYWNrKTsKKworICBTbGljZVRyYWNrLnByb3RvdHlwZSA9IHsKKworICAgIF9fcHJvdG9fXzogdHIudWkudHJhY2tzLlJlY3RUcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5SZWN0VHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgIH0sCisKKyAgICBnZXQgc2xpY2VzKCkgeworICAgICAgcmV0dXJuIHRoaXMucmVjdHM7CisgICAgfSwKKworICAgIHNldCBzbGljZXMoc2xpY2VzKSB7CisgICAgICB0aGlzLnJlY3RzID0gc2xpY2VzOworICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFNsaWNlVHJhY2s6IFNsaWNlVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX3RyYWNrX3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NsaWNlX3RyYWNrX3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTM3YTQzCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvc2xpY2VfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvc2xpY2UuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RpbWVsaW5lX3RyYWNrX3ZpZXcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9zbGljZV90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBTbGljZVRyYWNrID0gdHIudWkudHJhY2tzLlNsaWNlVHJhY2s7CisgIHZhciBTbGljZSA9IHRyLm1vZGVsLlNsaWNlOworCisgIHRlc3QoJ21vZGVsTWFwcGluZycsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0cmFjayA9IG5ldyBTbGljZVRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHZhciBzbGljZSA9IG5ldyBTbGljZSgnJywgJ2EnLCAwLCAxLCB7fSwgMSk7CisgICAgdHJhY2suc2xpY2VzID0gW3NsaWNlXTsKKyAgICB2YXIgbWUwID0gdHJhY2sucmVjdHNbMF0ubW9kZWxJdGVtOworICAgIGFzc2VydC5lcXVhbChzbGljZSwgbWUwKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2Vfdmlld2VyL2NvcmUvdHJhY2tzL3NwYWNpbmdfdHJhY2suY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvc3BhY2luZ190cmFjay5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3Mvc3BhY2luZ190cmFjay5jc3MKcmVuYW1lIHRvIHRyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NwYWNpbmdfdHJhY2suY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zcGFjaW5nX3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy9zcGFjaW5nX3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTljNzAzYgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3NwYWNpbmdfdHJhY2suaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdWkvdHJhY2tzL3NwYWNpbmdfdHJhY2suY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hlYWRpbmcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgU3BhY2luZ1RyYWNrID0gdHIudWkuYi5kZWZpbmUoJ3NwYWNpbmctdHJhY2snLCB0ci51aS50cmFja3MuVHJhY2spOworCisgIFNwYWNpbmdUcmFjay5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzcGFjaW5nLXRyYWNrJyk7CisKKyAgICAgIHRoaXMuaGVhZGluZ18gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS1oZWFkaW5nJyk7CisgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuaGVhZGluZ18pOworICAgIH0sCisKKyAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7CisgICAgfSwKKworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgU3BhY2luZ1RyYWNrOiBTcGFjaW5nVHJhY2sKKyAgfTsKK30pOworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3N0YWNrZWRfYmFyc190cmFjay5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3Mvc3RhY2tlZF9iYXJzX3RyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ3M2Q2YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3N0YWNrZWRfYmFyc190cmFjay5odG1sCkBAIC0wLDAgKzEsMTMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2hlYWRpbmcuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdWkuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuZXhwb3J0VG8oJ3RyLnVpLnRyYWNrcycsIGZ1bmN0aW9uKCkgeworICAvKioKKyAgICogQSB0cmFjayB0aGF0IGRpc3BsYXlzIHRyYWNlcyBhcyBzdGFja2VkIGJhcnMuCisgICAqIEBjb25zdHJ1Y3RvcgorICAgKiBAZXh0ZW5kcyB7VHJhY2t9CisgICAqLworICB2YXIgU3RhY2tlZEJhcnNUcmFjayA9IHRyLnVpLmIuZGVmaW5lKAorICAgICAgJ3N0YWNrZWQtYmFycy10cmFjaycsIHRyLnVpLnRyYWNrcy5UcmFjayk7CisKKyAgU3RhY2tlZEJhcnNUcmFjay5wcm90b3R5cGUgPSB7CisKKyAgICBfX3Byb3RvX186IHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUsCisKKyAgICBkZWNvcmF0ZTogZnVuY3Rpb24odmlld3BvcnQpIHsKKyAgICAgIHRyLnVpLnRyYWNrcy5UcmFjay5wcm90b3R5cGUuZGVjb3JhdGUuY2FsbCh0aGlzLCB2aWV3cG9ydCk7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3N0YWNrZWQtYmFycy10cmFjaycpOworICAgICAgdGhpcy5vYmplY3RJbnN0YW5jZV8gPSBudWxsOworCisgICAgICB0aGlzLmhlYWRpbmdfID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktaGVhZGluZycpOworICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLmhlYWRpbmdfKTsKKyAgICB9LAorCisgICAgc2V0IGhlYWRpbmcoaGVhZGluZykgeworICAgICAgdGhpcy5oZWFkaW5nXy5oZWFkaW5nID0gaGVhZGluZzsKKyAgICB9LAorCisgICAgZ2V0IGhlYWRpbmcoKSB7CisgICAgICByZXR1cm4gdGhpcy5oZWFkaW5nXy5oZWFkaW5nOworICAgIH0sCisKKyAgICBzZXQgdG9vbHRpcCh0b29sdGlwKSB7CisgICAgICB0aGlzLmhlYWRpbmdfLnRvb2x0aXAgPSB0b29sdGlwOworICAgIH0sCisKKyAgICBhZGRFdmVudHNUb1RyYWNrTWFwOiBmdW5jdGlvbihldmVudFRvVHJhY2tNYXApIHsKKyAgICAgIHZhciBvYmplY3RTbmFwc2hvdHMgPSB0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHM7CisgICAgICBvYmplY3RTbmFwc2hvdHMuZm9yRWFjaChmdW5jdGlvbihvYmopIHsKKyAgICAgICAgZXZlbnRUb1RyYWNrTWFwLmFkZEV2ZW50KG9iaiwgdGhpcyk7CisgICAgICB9LCB0aGlzKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogVXNlZCB0byBoaXQtdGVzdCBjbGlja3MgaW4gdGhlIGdyYXBoLgorICAgICAqLworICAgIGFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZTogZnVuY3Rpb24oCisgICAgICAgIGxvV1gsIGhpV1gsIHZpZXdQaXhXaWR0aFdvcmxkLCBzZWxlY3Rpb24pIHsKKyAgICAgIGZ1bmN0aW9uIG9uU25hcHNob3Qoc25hcHNob3QpIHsKKyAgICAgICAgc2VsZWN0aW9uLnB1c2goc25hcHNob3QpOworICAgICAgfQorCisgICAgICB2YXIgc25hcHNob3RzID0gdGhpcy5vYmplY3RJbnN0YW5jZV8uc25hcHNob3RzOworICAgICAgdmFyIG1heEJvdW5kcyA9IHRoaXMub2JqZWN0SW5zdGFuY2VfLnBhcmVudC5tb2RlbC5ib3VuZHMubWF4OworCisgICAgICB0ci5iLml0ZXJhdGVPdmVySW50ZXJzZWN0aW5nSW50ZXJ2YWxzKAorICAgICAgICAgIHNuYXBzaG90cywKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LnRzOyB9LAorICAgICAgICAgIGZ1bmN0aW9uKHgsIGkpIHsKKyAgICAgICAgICAgIGlmIChpID09IHNuYXBzaG90cy5sZW5ndGggLSAxKSB7CisgICAgICAgICAgICAgIGlmIChzbmFwc2hvdHMubGVuZ3RoID09IDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1heEJvdW5kczsKKworICAgICAgICAgICAgICByZXR1cm4gc25hcHNob3RzW2ldLnRzIC0gc25hcHNob3RzW2kgLSAxXS50czsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHNuYXBzaG90c1tpICsgMV0udHMgLSBzbmFwc2hvdHNbaV0udHM7CisgICAgICAgICAgfSwKKyAgICAgICAgICBsb1dYLCBoaVdYLAorICAgICAgICAgIG9uU25hcHNob3QpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGl0ZW0gdG8gdGhlIGxlZnQgb3IgcmlnaHQgb2YgdGhlIHByb3ZpZGVkIGl0ZW0sIGlmIGFueSwgdG8gdGhlCisgICAgICogc2VsZWN0aW9uLgorICAgICAqIEBwYXJhbSB7c2xpY2V9IFRoZSBjdXJyZW50IHNsaWNlLgorICAgICAqIEBwYXJhbSB7TnVtYmVyfSBvZmZzZXQgTnVtYmVyIG9mIHNsaWNlcyBhd2F5IGZyb20gdGhlIG9iamVjdCB0byBsb29rLgorICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gVGhlIHNlbGVjdGlvbiB0byBhZGQgYW4gZXZlbnQgdG8sCisgICAgICogaWYgZm91bmQuCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciBhbiBldmVudCB3YXMgZm91bmQuCisgICAgICogQHByaXZhdGUKKyAgICAgKi8KKyAgICBhZGRFdmVudE5lYXJUb1Byb3ZpZGVkRXZlbnRUb1NlbGVjdGlvbjogZnVuY3Rpb24oZXZlbnQsIG9mZnNldCwgc2VsZWN0aW9uKSB7CisgICAgICBpZiAoIShldmVudCBpbnN0YW5jZW9mIHRyLm1vZGVsLk9iamVjdFNuYXBzaG90KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgZXZlbnQnKTsKKyAgICAgIHZhciBvYmplY3RTbmFwc2hvdHMgPSB0aGlzLm9iamVjdEluc3RhbmNlXy5zbmFwc2hvdHM7CisgICAgICB2YXIgaW5kZXggPSBvYmplY3RTbmFwc2hvdHMuaW5kZXhPZihldmVudCk7CisgICAgICB2YXIgbmV3SW5kZXggPSBpbmRleCArIG9mZnNldDsKKyAgICAgIGlmIChuZXdJbmRleCA+PSAwICYmIG5ld0luZGV4IDwgb2JqZWN0U25hcHNob3RzLmxlbmd0aCkgeworICAgICAgICBzZWxlY3Rpb24ucHVzaChvYmplY3RTbmFwc2hvdHNbbmV3SW5kZXhdKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGFkZEFsbEV2ZW50c01hdGNoaW5nRmlsdGVyVG9TZWxlY3Rpb246IGZ1bmN0aW9uKGZpbHRlciwgc2VsZWN0aW9uKSB7CisgICAgfSwKKworICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbih3b3JsZFgsIHdvcmxkTWF4RGlzdCwgbG9ZLCBoaVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbikgeworICAgICAgdmFyIHNuYXBzaG90ID0gdHIuYi5maW5kQ2xvc2VzdEVsZW1lbnRJblNvcnRlZEFycmF5KAorICAgICAgICAgIHRoaXMub2JqZWN0SW5zdGFuY2VfLnNuYXBzaG90cywKKyAgICAgICAgICBmdW5jdGlvbih4KSB7IHJldHVybiB4LnRzOyB9LAorICAgICAgICAgIHdvcmxkWCwKKyAgICAgICAgICB3b3JsZE1heERpc3QpOworCisgICAgICBpZiAoIXNuYXBzaG90KQorICAgICAgICByZXR1cm47CisKKyAgICAgIHNlbGVjdGlvbi5wdXNoKHNuYXBzaG90KTsKKyAgICB9CisgIH07CisKKyAgcmV0dXJuIHsKKyAgICBTdGFja2VkQmFyc1RyYWNrOiBTdGFja2VkQmFyc1RyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy90aHJlYWRfdHJhY2suY3NzIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS90cmFja3MvdGhyZWFkX3RyYWNrLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy90aHJlYWRfdHJhY2suY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90aHJlYWRfdHJhY2suY3NzCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90aHJlYWRfdHJhY2suaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3RocmVhZF90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNGZjNGYKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90aHJlYWRfdHJhY2suaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL3RyYWNrcy90aHJlYWRfdHJhY2suY3NzIj4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL2ZpbHRlci5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvZXZlbnRfc2V0Lmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL3VpLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS90cmFja3MvYXN5bmNfc2xpY2VfZ3JvdXBfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9jb250YWluZXJfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9zYW1wbGVfdHJhY2suaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL3RyYWNrcy9zbGljZV9ncm91cF90cmFjay5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3NsaWNlX3RyYWNrLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBWaXN1YWxpemVzIGEgVGhyZWFkIHVzaW5nIGEgc2VyaWVzIG9mIFNsaWNlVHJhY2tzLgorICAgKiBAY29uc3RydWN0b3IKKyAgICovCisgIHZhciBUaHJlYWRUcmFjayA9IHRyLnVpLmIuZGVmaW5lKCd0aHJlYWQtdHJhY2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2spOworICBUaHJlYWRUcmFjay5wcm90b3R5cGUgPSB7CisgICAgX19wcm90b19fOiB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLAorCisgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKHZpZXdwb3J0KSB7CisgICAgICB0ci51aS50cmFja3MuQ29udGFpbmVyVHJhY2sucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcywgdmlld3BvcnQpOworICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCd0aHJlYWQtdHJhY2snKTsKKyAgICB9LAorCisgICAgZ2V0IHRocmVhZCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnRocmVhZF87CisgICAgfSwKKworICAgIHNldCB0aHJlYWQodGhyZWFkKSB7CisgICAgICB0aGlzLnRocmVhZF8gPSB0aHJlYWQ7CisgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRzXygpOworICAgIH0sCisKKyAgICBnZXQgaGFzVmlzaWJsZUNvbnRlbnQoKSB7CisgICAgICByZXR1cm4gdGhpcy50cmFja3NfLmxlbmd0aCA+IDA7CisgICAgfSwKKworICAgIGdldCBldmVudENvbnRhaW5lcigpIHsKKyAgICAgIHJldHVybiB0aGlzLnRocmVhZDsKKyAgICB9LAorCisgICAgYWRkQ29udGFpbmVyc1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGNvbnRhaW5lclRvVHJhY2tNYXApIHsKKyAgICAgIGNvbnRhaW5lclRvVHJhY2tNYXAuYWRkQ29udGFpbmVyKHRoaXMudGhyZWFkLCB0aGlzKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZE5vZGVzLmxlbmd0aDsgKytpKQorICAgICAgICB0aGlzLmNoaWxkTm9kZXNbaV0uYWRkQ29udGFpbmVyc1RvVHJhY2tNYXAoY29udGFpbmVyVG9UcmFja01hcCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgICB0aGlzLmRldGFjaCgpOworCisgICAgICBpZiAoIXRoaXMudGhyZWFkXykKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLmhlYWRpbmcgPSB0aGlzLnRocmVhZF8udXNlckZyaWVuZGx5TmFtZSArICc6ICc7CisgICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRocmVhZF8udXNlckZyaWVuZGx5RGV0YWlsczsKKworICAgICAgaWYgKHRoaXMudGhyZWFkXy5hc3luY1NsaWNlR3JvdXAubGVuZ3RoKQorICAgICAgICB0aGlzLmFwcGVuZEFzeW5jU2xpY2VUcmFja3NfKCk7CisKKyAgICAgIHRoaXMuYXBwZW5kVGhyZWFkU2FtcGxlc1RyYWNrc18oKTsKKworICAgICAgaWYgKHRoaXMudGhyZWFkXy50aW1lU2xpY2VzKSB7CisgICAgICAgIHZhciB0aW1lU2xpY2VzVHJhY2sgPSBuZXcgdHIudWkudHJhY2tzLlNsaWNlVHJhY2sodGhpcy52aWV3cG9ydCk7CisgICAgICAgIHRpbWVTbGljZXNUcmFjay5oZWFkaW5nID0gJyc7CisgICAgICAgIHRpbWVTbGljZXNUcmFjay5oZWlnaHQgPSB0ci51aS5iLlRISU5fU0xJQ0VfSEVJR0hUICsgJ3B4JzsKKyAgICAgICAgdGltZVNsaWNlc1RyYWNrLnNsaWNlcyA9IHRoaXMudGhyZWFkXy50aW1lU2xpY2VzOworICAgICAgICBpZiAodGltZVNsaWNlc1RyYWNrLmhhc1Zpc2libGVDb250ZW50KQorICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQodGltZVNsaWNlc1RyYWNrKTsKKyAgICAgIH0KKworICAgICAgaWYgKHRoaXMudGhyZWFkXy5zbGljZUdyb3VwLmxlbmd0aCkgeworICAgICAgICB2YXIgdHJhY2sgPSBuZXcgdHIudWkudHJhY2tzLlNsaWNlR3JvdXBUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgICAgdHJhY2suaGVhZGluZyA9IHRoaXMudGhyZWFkXy51c2VyRnJpZW5kbHlOYW1lOworICAgICAgICB0cmFjay50b29sdGlwID0gdGhpcy50aHJlYWRfLnVzZXJGcmllbmRseURldGFpbHM7CisgICAgICAgIHRyYWNrLmdyb3VwID0gdGhpcy50aHJlYWRfLnNsaWNlR3JvdXA7CisgICAgICAgIGlmICh0cmFjay5oYXNWaXNpYmxlQ29udGVudCkKKyAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICAgIH0KKyAgICB9LAorCisgICAgYXBwZW5kQXN5bmNTbGljZVRyYWNrc186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHN1Ykdyb3VwcyA9IHRoaXMudGhyZWFkXy5hc3luY1NsaWNlR3JvdXAudmlld1N1Ykdyb3VwczsKKyAgICAgIHN1Ykdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKHN1Ykdyb3VwKSB7CisgICAgICAgIHZhciBhc3luY1RyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5Bc3luY1NsaWNlR3JvdXBUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgICAgdmFyIHRpdGxlID0gc3ViR3JvdXAuc2xpY2VzWzBdLnZpZXdTdWJHcm91cFRpdGxlOworICAgICAgICBhc3luY1RyYWNrLmdyb3VwID0gc3ViR3JvdXA7CisgICAgICAgIGFzeW5jVHJhY2suaGVhZGluZyA9IHRpdGxlOworICAgICAgICBpZiAoYXN5bmNUcmFjay5oYXNWaXNpYmxlQ29udGVudCkKKyAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKGFzeW5jVHJhY2spOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIGFwcGVuZFRocmVhZFNhbXBsZXNUcmFja3NfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciB0aHJlYWRTYW1wbGVzID0gdGhpcy50aHJlYWRfLnNhbXBsZXM7CisgICAgICBpZiAodGhyZWFkU2FtcGxlcyA9PT0gdW5kZWZpbmVkIHx8IHRocmVhZFNhbXBsZXMubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm47CisgICAgICB2YXIgc2FtcGxlc0J5VGl0bGUgPSB7fTsKKyAgICAgIHRocmVhZFNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihzYW1wbGUpIHsKKyAgICAgICAgaWYgKHNhbXBsZXNCeVRpdGxlW3NhbXBsZS50aXRsZV0gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBzYW1wbGVzQnlUaXRsZVtzYW1wbGUudGl0bGVdID0gW107CisgICAgICAgIHNhbXBsZXNCeVRpdGxlW3NhbXBsZS50aXRsZV0ucHVzaChzYW1wbGUpOworICAgICAgfSk7CisKKyAgICAgIHZhciBzYW1wbGVUaXRsZXMgPSB0ci5iLmRpY3Rpb25hcnlLZXlzKHNhbXBsZXNCeVRpdGxlKTsKKyAgICAgIHNhbXBsZVRpdGxlcy5zb3J0KCk7CisKKyAgICAgIHNhbXBsZVRpdGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZVRpdGxlKSB7CisgICAgICAgIHZhciBzYW1wbGVzID0gc2FtcGxlc0J5VGl0bGVbc2FtcGxlVGl0bGVdOworICAgICAgICB2YXIgc2FtcGxlc1RyYWNrID0gbmV3IHRyLnVpLnRyYWNrcy5TYW1wbGVUcmFjayh0aGlzLnZpZXdwb3J0KTsKKyAgICAgICAgc2FtcGxlc1RyYWNrLmdyb3VwID0gdGhpcy50aHJlYWRfOworICAgICAgICBzYW1wbGVzVHJhY2suc2FtcGxlcyA9IHNhbXBsZXM7CisgICAgICAgIHNhbXBsZXNUcmFjay5oZWFkaW5nID0gdGhpcy50aHJlYWRfLnVzZXJGcmllbmRseU5hbWUgKyAnOiAnICsKKyAgICAgICAgICAgIHNhbXBsZVRpdGxlOworICAgICAgICBzYW1wbGVzVHJhY2sudG9vbHRpcCA9IHRoaXMudGhyZWFkXy51c2VyRnJpZW5kbHlEZXRhaWxzOworICAgICAgICBzYW1wbGVzVHJhY2suc2VsZWN0aW9uR2VuZXJhdG9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyB0ci5tb2RlbC5FdmVudFNldCgpOworICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2FtcGxlc1RyYWNrLnNhbXBsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKHNhbXBsZXNUcmFjay5zYW1wbGVzW2ldKTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICAgICAgfTsKKyAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzYW1wbGVzVHJhY2spOworICAgICAgfSwgdGhpcyk7CisgICAgfSwKKworICAgIGNvbGxhcHNlZERpZENoYW5nZTogZnVuY3Rpb24oY29sbGFwc2VkKSB7CisgICAgICBpZiAoY29sbGFwc2VkKSB7CisgICAgICAgIHZhciBoID0gcGFyc2VJbnQodGhpcy50cmFja3NbMF0uaGVpZ2h0KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRyYWNrcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgIGlmIChoID4gMikgeworICAgICAgICAgICAgdGhpcy50cmFja3NbaV0uaGVpZ2h0ID0gTWF0aC5mbG9vcihoKSArICdweCc7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMudHJhY2tzW2ldLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgICAgfQorICAgICAgICAgIGggPSBoICogMC41OworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudHJhY2tzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgdGhpcy50cmFja3NbaV0uaGVpZ2h0ID0gdGhpcy50cmFja3NbMF0uaGVpZ2h0OworICAgICAgICAgIHRoaXMudHJhY2tzW2ldLnN0eWxlLmRpc3BsYXkgPSAnJzsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgfTsKKworICByZXR1cm4geworICAgIFRocmVhZFRyYWNrOiBUaHJlYWRUcmFjaworICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3RocmVhZF90cmFja190ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90aHJlYWRfdHJhY2tfdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwZDBkYTIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90aHJlYWRfdHJhY2tfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9jb3JlL3Rlc3RfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL21vZGVsL2V2ZW50X3NldC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvbW9kZWwvaW5zdGFudF9ldmVudC5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kb21faGVscGVycy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdGltZWxpbmVfdHJhY2tfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdHJhY2tzL3RocmVhZF90cmFjay5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBIaWdobGlnaHRJbnN0YW50RXZlbnQgPSB0ci5tb2RlbC5UaHJlYWRIaWdobGlnaHRJbnN0YW50RXZlbnQ7CisgIHZhciBQcm9jZXNzID0gdHIubW9kZWwuUHJvY2VzczsKKyAgdmFyIEV2ZW50U2V0ID0gdHIubW9kZWwuRXZlbnRTZXQ7CisgIHZhciBTdGFja0ZyYW1lID0gdHIubW9kZWwuU3RhY2tGcmFtZTsKKyAgdmFyIFNhbXBsZSA9IHRyLm1vZGVsLlNhbXBsZTsKKyAgdmFyIFRocmVhZCA9IHRyLm1vZGVsLlRocmVhZDsKKyAgdmFyIFRocmVhZFNsaWNlID0gdHIubW9kZWwuVGhyZWFkU2xpY2U7CisgIHZhciBUaHJlYWRUcmFjayA9IHRyLnVpLnRyYWNrcy5UaHJlYWRUcmFjazsKKyAgdmFyIFZpZXdwb3J0ID0gdHIudWkuVGltZWxpbmVWaWV3cG9ydDsKKyAgdmFyIG5ld0FzeW5jU2xpY2UgPSB0ci5jLnRlc3RfdXRpbHMubmV3QXN5bmNTbGljZTsKKyAgdmFyIG5ld0FzeW5jU2xpY2VOYW1lZCA9IHRyLmMudGVzdF91dGlscy5uZXdBc3luY1NsaWNlTmFtZWQ7CisgIHZhciBuZXdTbGljZU5hbWVkID0gdHIuYy50ZXN0X3V0aWxzLm5ld1NsaWNlTmFtZWQ7CisKKyAgdGVzdCgnc2VsZWN0aW9uSGl0VGVzdGluZ1dpdGhUaHJlYWRUcmFjaycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciBwMSA9IG1vZGVsLmdldE9yQ3JlYXRlUHJvY2VzcygxKTsKKyAgICB2YXIgdDEgPSBwMS5nZXRPckNyZWF0ZVRocmVhZCgxKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJycsICdhJywgMCwgMSwge30sIDQpKTsKKyAgICB0MS5zbGljZUdyb3VwLnB1c2hTbGljZShuZXcgVGhyZWFkU2xpY2UoJycsICdiJywgMCwgNS4xLCB7fSwgNCkpOworCisgICAgdmFyIHRlc3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRlc3RFbC5hcHBlbmRDaGlsZCh0ci51aS5iLmNyZWF0ZVNjb3BlZFN0eWxlKCdoZWFkaW5nIHsgd2lkdGg6IDEwMHB4OyB9JykpOworICAgIHRlc3RFbC5zdHlsZS53aWR0aCA9ICc2MDBweCc7CisKKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgVmlld3BvcnQodGVzdEVsKTsKKyAgICB2YXIgZHJhd2luZ0NvbnRhaW5lciA9IG5ldyB0ci51aS50cmFja3MuRHJhd2luZ0NvbnRhaW5lcih2aWV3cG9ydCk7CisgICAgdGVzdEVsLmFwcGVuZENoaWxkKGRyYXdpbmdDb250YWluZXIpOworCisgICAgdmFyIHRyYWNrID0gbmV3IFRocmVhZFRyYWNrKHZpZXdwb3J0KTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrKTsKKyAgICBkcmF3aW5nQ29udGFpbmVyLnVwZGF0ZUNhbnZhc1NpemVJZk5lZWRlZF8oKTsKKyAgICB0cmFjay50aHJlYWQgPSB0MTsKKworICAgIHZhciB5ID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOworICAgIHZhciBoID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0OworICAgIHZhciB3VyA9IDEwOworICAgIHZhciB2VyA9IGRyYXdpbmdDb250YWluZXIuY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOworICAgIHZhciBkdCA9IG5ldyB0ci51aS5UaW1lbGluZURpc3BsYXlUcmFuc2Zvcm0oKTsKKyAgICBkdC54U2V0V29ybGRCb3VuZHMoMCwgd1csIHZXKTsKKyAgICB0cmFjay52aWV3cG9ydC5zZXREaXNwbGF5VHJhbnNmb3JtSW1tZWRpYXRlbHkoZHQpOworCisgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBFdmVudFNldCgpOworICAgIHZhciB4ID0gKDEuNSAvIHdXKSAqIHZXOworICAgIHRyYWNrLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbigKKyAgICAgICAgeCwgeCArIDEsIHksIHkgKyAxLCBzZWxlY3Rpb24pOworICAgIGFzc2VydC5lcXVhbCh0MS5zbGljZUdyb3VwLnNsaWNlc1swXSwgc2VsZWN0aW9uWzBdKTsKKworICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgRXZlbnRTZXQoKTsKKyAgICB0cmFjay5hZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb24oCisgICAgICAgICgxLjUgLyB3VykgKiB2VywgKDEuOCAvIHdXKSAqIHZXLAorICAgICAgICB5LCB5ICsgaCwgc2VsZWN0aW9uKTsKKyAgICBhc3NlcnQuZXF1YWwodDEuc2xpY2VHcm91cC5zbGljZXNbMF0sIHNlbGVjdGlvblswXSk7CisgIH0pOworCisgIHRlc3QoJ2ZpbHRlclRocmVhZFNsaWNlcycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBtb2RlbCA9IG5ldyB0ci5Nb2RlbCgpOworICAgIHZhciB0aHJlYWQgPSBuZXcgVGhyZWFkKG5ldyBQcm9jZXNzKG1vZGVsLCA3KSwgMSk7CisgICAgdGhyZWFkLnNsaWNlR3JvdXAucHVzaFNsaWNlKG5ld1NsaWNlTmFtZWQoJ2EnLCAwLCAwKSk7CisgICAgdGhyZWFkLmFzeW5jU2xpY2VHcm91cC5wdXNoKG5ld0FzeW5jU2xpY2VOYW1lZCgnYScsIDAsIDUsIHQsIHQpKTsKKworICAgIHZhciB0ID0gbmV3IFRocmVhZFRyYWNrKG5ldyB0ci51aS5UaW1lbGluZVZpZXdwb3J0KCkpOworICAgIHQudGhyZWFkID0gdGhyZWFkOworCisgICAgYXNzZXJ0LmVxdWFsKHQudHJhY2tzXy5sZW5ndGgsIDIpOworICAgIGFzc2VydC5pbnN0YW5jZU9mKHQudHJhY2tzX1swXSwgdHIudWkudHJhY2tzLkFzeW5jU2xpY2VHcm91cFRyYWNrKTsKKyAgICBhc3NlcnQuaW5zdGFuY2VPZih0LnRyYWNrc19bMV0sIHRyLnVpLnRyYWNrcy5TbGljZUdyb3VwVHJhY2spOworICB9KTsKKworICB0ZXN0KCdzYW1wbGVUaHJlYWRTbGljZXMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgbW9kZWwgPSBuZXcgdHIuTW9kZWwoKTsKKyAgICB2YXIgdGhyZWFkOworICAgIHZhciBjcHU7CisgICAgbW9kZWwuaW1wb3J0VHJhY2VzKFtdLCBmYWxzZSwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgY3B1ID0gbW9kZWwua2VybmVsLmdldE9yQ3JlYXRlQ3B1KDEpOworICAgICAgdGhyZWFkID0gbW9kZWwuZ2V0T3JDcmVhdGVQcm9jZXNzKDEpLmdldE9yQ3JlYXRlVGhyZWFkKDIpOworCisgICAgICB2YXIgZkEgPSBtb2RlbC5hZGRTdGFja0ZyYW1lKG5ldyBTdGFja0ZyYW1lKAorICAgICAgICAgIHVuZGVmaW5lZCwgMSwgJ2NhdCcsICdhJywgNykpOworICAgICAgdmFyIGZBQiA9IG1vZGVsLmFkZFN0YWNrRnJhbWUobmV3IFN0YWNrRnJhbWUoCisgICAgICAgICAgZkEsIDIsICdjYXQnLCAnYicsIDcpKTsKKyAgICAgIHZhciBmQUJDID0gbW9kZWwuYWRkU3RhY2tGcmFtZShuZXcgU3RhY2tGcmFtZSgKKyAgICAgICAgICBmQUIsIDMsICdjYXQnLCAnYycsIDcpKTsKKyAgICAgIHZhciBmQUQgPSBtb2RlbC5hZGRTdGFja0ZyYW1lKG5ldyBTdGFja0ZyYW1lKAorICAgICAgICAgIGZBLCA0LCAnY2F0JywgJ2QnLCA3KSk7CisKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAnaW5zdHJ1Y3Rpb25zX3JldGlyZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIGZBQkMsIDEwKSk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2luc3RydWN0aW9uc19yZXRpcmVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLCBmQUIsIDEwKSk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2luc3RydWN0aW9uc19yZXRpcmVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLCBmQUIsIDEwKSk7CisgICAgICBtb2RlbC5zYW1wbGVzLnB1c2gobmV3IFNhbXBsZSh1bmRlZmluZWQsIHRocmVhZCwgJ2luc3RydWN0aW9uc19yZXRpcmVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwLCBmQUQsIDEwKSk7CisKKyAgICAgIG1vZGVsLnNhbXBsZXMucHVzaChuZXcgU2FtcGxlKHVuZGVmaW5lZCwgdGhyZWFkLCAncGFnZV9mYXVsdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNSwgZkFCLCAxMCkpOworICAgICAgbW9kZWwuc2FtcGxlcy5wdXNoKG5ldyBTYW1wbGUodW5kZWZpbmVkLCB0aHJlYWQsICdwYWdlX2ZhdWx0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LCBmQUQsIDEwKSk7CisgICAgfSk7CisKKyAgICB2YXIgdCA9IG5ldyBUaHJlYWRUcmFjayhuZXcgdHIudWkuVGltZWxpbmVWaWV3cG9ydCgpKTsKKyAgICB0LnRocmVhZCA9IHRocmVhZDsKKyAgICBhc3NlcnQuZXF1YWwodC50cmFja3NfLmxlbmd0aCwgMik7CisKKyAgICAvLyBJbnN0cnVjdGlvbnMgcmV0aXJlZAorICAgIHZhciB0MCA9IHQudHJhY2tzX1swXTsKKyAgICBhc3NlcnQubm90RXF1YWwodDAuaGVhZGluZy5pbmRleE9mKCdpbnN0cnVjdGlvbnNfcmV0aXJlZCcpLCAtMSk7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2YodDAsIHRyLnVpLnRyYWNrcy5TYW1wbGVUcmFjayk7CisgICAgYXNzZXJ0LmVxdWFsKHQwLnNhbXBsZXMubGVuZ3RoLCA0KTsKKyAgICB0MC5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24ocykgeworICAgICAgYXNzZXJ0Lmluc3RhbmNlT2YocywgdHIubW9kZWwuU2FtcGxlKTsKKyAgICB9KTsKKworICAgIC8vIHBhZ2VfZmF1bHQKKyAgICB2YXIgdDEgPSB0LnRyYWNrc19bMV07CisgICAgYXNzZXJ0Lm5vdEVxdWFsKHQxLmhlYWRpbmcuaW5kZXhPZigncGFnZV9mYXVsdCcpLCAtMSk7CisgICAgYXNzZXJ0Lmluc3RhbmNlT2YodDEsIHRyLnVpLnRyYWNrcy5TYW1wbGVUcmFjayk7CisgICAgYXNzZXJ0LmVxdWFsKHQxLnNhbXBsZXMubGVuZ3RoLCAyKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNlX3ZpZXdlci9jb3JlL3RyYWNrcy90cmFjay5jc3MgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90cmFjay5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRyYWNlLXZpZXdlci90cmFjZV92aWV3ZXIvY29yZS90cmFja3MvdHJhY2suY3NzCnJlbmFtZSB0byB0cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90cmFjay5jc3MKZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdHJhY2tzL3RyYWNrLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYWNjODIKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3RyYWNrcy90cmFjay5odG1sCkBAIC0wLDAgKzEsMTY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3VpL3RyYWNrcy90cmFjay5jc3MiPgorCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvY29udGFpbmVyX3RoYXRfZGVjb3JhdGVzX2l0c19jaGlsZHJlbi5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS91aS5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLyoqCisgKiBAZmlsZW92ZXJ2aWV3IFJlbmRlcnMgYW4gYXJyYXkgb2Ygc2xpY2VzIGludG8gdGhlIHByb3ZpZGVkIGRpdiwKKyAqIHVzaW5nIGEgY2hpbGQgY2FudmFzIGVsZW1lbnQuIFVzZXMgYSBGYXN0UmVjdFJlbmRlcmVyIHRvIGRyYXcgb25seQorICogdGhlIHZpc2libGUgc2xpY2VzLgorICovCit0ci5leHBvcnRUbygndHIudWkudHJhY2tzJywgZnVuY3Rpb24oKSB7CisgIC8qKgorICAgKiBUaGUgYmFzZSBjbGFzcyBmb3IgYWxsIHRyYWNrcy4KKyAgICogQGNvbnN0cnVjdG9yCisgICAqLworICB2YXIgVHJhY2sgPSB0ci51aS5iLmRlZmluZSgndHJhY2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci51aS5iLkNvbnRhaW5lclRoYXREZWNvcmF0ZXNJdHNDaGlsZHJlbik7CisgIFRyYWNrLnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IHRyLnVpLmIuQ29udGFpbmVyVGhhdERlY29yYXRlc0l0c0NoaWxkcmVuLnByb3RvdHlwZSwKKworICAgIGRlY29yYXRlOiBmdW5jdGlvbih2aWV3cG9ydCkgeworICAgICAgdHIudWkuYi5Db250YWluZXJUaGF0RGVjb3JhdGVzSXRzQ2hpbGRyZW4ucHJvdG90eXBlLmRlY29yYXRlLmNhbGwodGhpcyk7CisgICAgICBpZiAodmlld3BvcnQgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2aWV3cG9ydCBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIGEgVHJhY2suJyk7CisKKyAgICAgIHRoaXMudmlld3BvcnRfID0gdmlld3BvcnQ7CisgICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3RyYWNrJyk7CisgICAgfSwKKworICAgIGdldCB2aWV3cG9ydCgpIHsKKyAgICAgIHJldHVybiB0aGlzLnZpZXdwb3J0XzsKKyAgICB9LAorCisgICAgZ2V0IGRyYXdpbmdDb250YWluZXIoKSB7CisgICAgICB2YXIgY3VyID0gdGhpczsKKyAgICAgIHdoaWxlIChjdXIpIHsKKyAgICAgICAgaWYgKGN1ciBpbnN0YW5jZW9mIHRyLnVpLnRyYWNrcy5EcmF3aW5nQ29udGFpbmVyKQorICAgICAgICAgIHJldHVybiBjdXI7CisgICAgICAgIGN1ciA9IGN1ci5wYXJlbnRFbGVtZW50OworICAgICAgfQorICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgZ2V0IGV2ZW50Q29udGFpbmVyKCkgeworICAgIH0sCisKKyAgICBpbnZhbGlkYXRlRHJhd2luZ0NvbnRhaW5lcjogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZGMgPSB0aGlzLmRyYXdpbmdDb250YWluZXI7CisgICAgICBpZiAoZGMpCisgICAgICAgIGRjLmludmFsaWRhdGUoKTsKKyAgICB9LAorCisgICAgY29udGV4dDogZnVuY3Rpb24oKSB7CisgICAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIHdlaXJkIGhlcmUsIGJ1dCB3ZSBoYXZlIHRvIGJlIGFibGUgdG8gd2FsayB1cCB0aGUKKyAgICAgIC8vIHBhcmVudCB0cmVlIHRvIGdldCB0aGUgY29udGV4dC4KKyAgICAgIGlmICghdGhpcy5wYXJlbnROb2RlKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgaWYgKCF0aGlzLnBhcmVudE5vZGUuY29udGV4dCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJlbnQgY29udGFpbmVyIGRvZXMgbm90IHN1cHBvcnQgY29udGV4dCgpIG1ldGhvZC4nKTsKKyAgICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGUuY29udGV4dCgpOworICAgIH0sCisKKyAgICBkZWNvcmF0ZUNoaWxkXzogZnVuY3Rpb24oY2hpbGRUcmFjaykgeworICAgIH0sCisKKyAgICB1bmRlY29yYXRlQ2hpbGRfOiBmdW5jdGlvbihjaGlsZFRyYWNrKSB7CisgICAgICBpZiAoY2hpbGRUcmFjay5kZXRhY2gpCisgICAgICAgIGNoaWxkVHJhY2suZGV0YWNoKCk7CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRzXzogZnVuY3Rpb24oKSB7CisgICAgfSwKKworICAgIGRyYXdUcmFjazogZnVuY3Rpb24odHlwZSkgeworICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dCgpOworCisgICAgICB2YXIgcGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CisgICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgIHZhciBjYW52YXNCb3VuZHMgPSBjdHguY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworCisgICAgICBjdHguc2F2ZSgpOworICAgICAgY3R4LnRyYW5zbGF0ZSgwLCBwaXhlbFJhdGlvICogKGJvdW5kcy50b3AgLSBjYW52YXNCb3VuZHMudG9wKSk7CisKKyAgICAgIHZhciBkdCA9IHRoaXMudmlld3BvcnQuY3VycmVudERpc3BsYXlUcmFuc2Zvcm07CisgICAgICB2YXIgdmlld0xXb3JsZCA9IGR0LnhWaWV3VG9Xb3JsZCgwKTsKKyAgICAgIHZhciB2aWV3UldvcmxkID0gZHQueFZpZXdUb1dvcmxkKGJvdW5kcy53aWR0aCAqIHBpeGVsUmF0aW8pOworCisgICAgICB0aGlzLmRyYXcodHlwZSwgdmlld0xXb3JsZCwgdmlld1JXb3JsZCk7CisgICAgICBjdHgucmVzdG9yZSgpOworICAgIH0sCisKKyAgICBkcmF3OiBmdW5jdGlvbih0eXBlLCB2aWV3TFdvcmxkLCB2aWV3UldvcmxkKSB7CisgICAgfSwKKworICAgIGFkZEV2ZW50c1RvVHJhY2tNYXA6IGZ1bmN0aW9uKGV2ZW50VG9UcmFja01hcCkgeworICAgIH0sCisKKyAgICBhZGRDb250YWluZXJzVG9UcmFja01hcDogZnVuY3Rpb24oY29udGFpbmVyVG9UcmFja01hcCkgeworICAgIH0sCisKKyAgICBhZGRJbnRlcnNlY3RpbmdFdmVudHNJblJhbmdlVG9TZWxlY3Rpb246IGZ1bmN0aW9uKAorICAgICAgICBsb1ZYLCBoaVZYLCBsb1ZZLCBoaVZZLCBzZWxlY3Rpb24pIHsKKworICAgICAgdmFyIHBpeGVsUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOworICAgICAgdmFyIGR0ID0gdGhpcy52aWV3cG9ydC5jdXJyZW50RGlzcGxheVRyYW5zZm9ybTsKKyAgICAgIHZhciB2aWV3UGl4V2lkdGhXb3JsZCA9IGR0LnhWaWV3VmVjdG9yVG9Xb3JsZCgxKTsKKyAgICAgIHZhciBsb1dYID0gZHQueFZpZXdUb1dvcmxkKGxvVlggKiBwaXhlbFJhdGlvKTsKKyAgICAgIHZhciBoaVdYID0gZHQueFZpZXdUb1dvcmxkKGhpVlggKiBwaXhlbFJhdGlvKTsKKworICAgICAgdmFyIGNsaWVudFJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgdmFyIGEgPSBNYXRoLm1heChsb1ZZLCBjbGllbnRSZWN0LnRvcCk7CisgICAgICB2YXIgYiA9IE1hdGgubWluKGhpVlksIGNsaWVudFJlY3QuYm90dG9tKTsKKyAgICAgIGlmIChhID4gYikKKyAgICAgICAgcmV0dXJuOworCisgICAgICB0aGlzLmFkZEludGVyc2VjdGluZ0V2ZW50c0luUmFuZ2VUb1NlbGVjdGlvbkluV29ybGRTcGFjZSgKKyAgICAgICAgICBsb1dYLCBoaVdYLCB2aWV3UGl4V2lkdGhXb3JsZCwgc2VsZWN0aW9uKTsKKyAgICB9LAorCisgICAgYWRkSW50ZXJzZWN0aW5nRXZlbnRzSW5SYW5nZVRvU2VsZWN0aW9uSW5Xb3JsZFNwYWNlOiBmdW5jdGlvbigKKyAgICAgICAgbG9XWCwgaGlXWCwgdmlld1BpeFdpZHRoV29ybGQsIHNlbGVjdGlvbikgeworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBHZXRzIGltcGxlbWVudGVkIGJ5IHN1cHBvcnRpbmcgdHJhY2sgdHlwZXMuIFRoZSBtZXRob2QgYWRkcyB0aGUgZXZlbnQKKyAgICAgKiBjbG9zZXN0IHRvIHdvcmxkWCB0byB0aGUgc2VsZWN0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHdvcmxkWCBUaGUgcG9zaXRpb24gdGhhdCBpcyBsb29rZWQgZm9yLgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3b3JsZE1heERpc3QgVGhlIG1heGltdW0gZGlzdGFuY2UgYWxsb3dlZCBmcm9tIHdvcmxkWCB0bworICAgICAqICAgICB0aGUgZXZlbnQuCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxvWSBMb3dlciBZIGJvdW5kIG9mIHRoZSBzZWFyY2ggaW50ZXJ2YWwgaW4gdmlldyBzcGFjZS4KKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaGlZIFVwcGVyIFkgYm91bmQgb2YgdGhlIHNlYXJjaCBpbnRlcnZhbCBpbiB2aWV3IHNwYWNlLgorICAgICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWxlY3Rpb24gU2VsZWN0aW9uIHRvIHdoaWNoIHRvIGFkZCBoaXRzLgorICAgICAqLworICAgIGFkZENsb3Nlc3RFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbigKKyAgICAgICAgd29ybGRYLCB3b3JsZE1heERpc3QsIGxvWSwgaGlZLCBzZWxlY3Rpb24pIHsKKyAgICB9LAorCisgICAgYWRkQ2xvc2VzdEluc3RhbnRFdmVudFRvU2VsZWN0aW9uOiBmdW5jdGlvbihpbnN0YW50RXZlbnRzLCB3b3JsZFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JsZE1heERpc3QsIHNlbGVjdGlvbikgeworICAgICAgdmFyIGluc3RhbnRFdmVudCA9IHRyLmIuZmluZENsb3Nlc3RFbGVtZW50SW5Tb3J0ZWRBcnJheSgKKyAgICAgICAgICBpbnN0YW50RXZlbnRzLAorICAgICAgICAgIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguc3RhcnQ7IH0sCisgICAgICAgICAgd29ybGRYLAorICAgICAgICAgIHdvcmxkTWF4RGlzdCk7CisKKyAgICAgIGlmICghaW5zdGFudEV2ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAgIHNlbGVjdGlvbi5wdXNoKGluc3RhbnRFdmVudCk7CisgICAgfQorICB9OworCisgIHJldHVybiB7CisgICAgVHJhY2s6IFRyYWNrCisgIH07Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9hcnJheV9vZl9udW1iZXJzX3NwYW4uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvYXJyYXlfb2ZfbnVtYmVyc19zcGFuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE5OGVkNAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvYXJyYXlfb2ZfbnVtYmVyc19zcGFuLmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2Uvc3RhdGlzdGljcy5odG1sIj4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7Cit0ci5leHBvcnRUbygndHIudWkudW5pdHMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIEFycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzID0geworICAgIEFWRVJBR0VfTU9ERTogJ2F2ZXJhZ2UtbW9kZScsCisgICAgVE9UQUxfTU9ERTogJ3RvdGFsLW1vZGUnCisgIH07CisgIHJldHVybiB7CisgICAgQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXM6IEFycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzCisgIH07Cit9KTsKKzwvc2NyaXB0PgorPHBvbHltZXItZWxlbWVudCBuYW1lPSJ0ci11aS11LWFycmF5LW9mLW51bWJlcnMtc3BhbiI+CisgIDx0ZW1wbGF0ZT4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy5udW1iZXJzXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMuc3VtbWFyeU1vZGVfID0gdHIudWkudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMuQVZFUkFHRV9NT0RFOworICAgIH0sCisKKyAgICBnZXQgc3VtbWFyeU1vZGUoKSB7CisgICAgICByZXR1cm4gdGhpcy5zdW1tYXJ5TW9kZV87CisgICAgfSwKKworICAgIHNldCBzdW1tYXJ5TW9kZShzdW1tYXJ5TW9kZSkgeworICAgICAgdGhpcy5zdW1tYXJ5TW9kZV8gPSBzdW1tYXJ5TW9kZTsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudHNfKCk7CisgICAgfSwKKworICAgIGdldCBudW1iZXJzKCkgeworICAgICAgcmV0dXJuIHRoaXMubnVtYmVyc187CisgICAgfSwKKworICAgIHNldCBudW1iZXJzKG51bWJlcnMpIHsKKyAgICAgIGlmIChudW1iZXJzID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5udW1iZXJzXyA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgaWYgKCEobnVtYmVycyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYW4gYXJyYXknKTsKKyAgICAgIHRoaXMubnVtYmVyc18gPSBudW1iZXJzOworICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIGlmICh0aGlzLm51bWJlcnNfID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgdGhpcy5zaGFkb3dSb290LnRleHRDb250ZW50ID0gJy0nOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIHZhciBBcnJheU9mTnVtYmVyc1N1bW1hcnlNb2RlcyA9IHRyLnVpLnVuaXRzLkFycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzOworICAgICAgdmFyIHZhbHVlOworICAgICAgaWYgKHRoaXMuc3VtbWFyeU1vZGVfID09PSBBcnJheU9mTnVtYmVyc1N1bW1hcnlNb2Rlcy5BVkVSQUdFX01PREUpCisgICAgICAgIHZhbHVlID0gdHIuYi5TdGF0aXN0aWNzLm1lYW4odGhpcy5udW1iZXJzXyk7CisgICAgICBlbHNlCisgICAgICAgIHZhbHVlID0gdHIuYi5TdGF0aXN0aWNzLnN1bSh0aGlzLm51bWJlcnNfKTsKKworICAgICAgdmFyIHZhbHVlUm91bmRlZCA9IE1hdGgucm91bmQodmFsdWUgKiAxMDAwLjApIC8gMTAwMC4wOworICAgICAgdGhpcy5zaGFkb3dSb290LnRleHRDb250ZW50ID0gdmFsdWVSb3VuZGVkOworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL2FycmF5X29mX251bWJlcnNfc3Bhbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL2FycmF5X29mX251bWJlcnNfc3Bhbl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZmZGU4NAotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvYXJyYXlfb2ZfbnVtYmVyc19zcGFuX3Rlc3QuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvYXJyYXlfb2ZfbnVtYmVyc19zcGFuLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHRlc3QoJ2luc3RhbnRpYXRlSW5BdmVyYWdlTW9kZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS1hcnJheS1vZi1udW1iZXJzLXNwYW4nKTsKKyAgICBzcGFuLm51bWJlcnMgPSBbMSwgMiwgM107CisgICAgc3Bhbi5zdW1tYXJ5TW9kZSA9IHRyLnVpLnVuaXRzLkFycmF5T2ZOdW1iZXJzU3VtbWFyeU1vZGVzLkFWRVJBR0VfTU9ERTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3Bhbik7CisgICAgYXNzZXJ0LmVxdWFsKHNwYW4uc2hhZG93Um9vdC50ZXh0Q29udGVudCwgJzInKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGVJblRvdGFsc01vZGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtYXJyYXktb2YtbnVtYmVycy1zcGFuJyk7CisgICAgc3Bhbi5udW1iZXJzID0gWzEsIDIsIDNdOworICAgIHNwYW4uc3VtbWFyeU1vZGUgPSB0ci51aS51bml0cy5BcnJheU9mTnVtYmVyc1N1bW1hcnlNb2Rlcy5UT1RBTFNfTU9ERTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQoc3Bhbik7CisgICAgYXNzZXJ0LmVxdWFsKHNwYW4uc2hhZG93Um9vdC50ZXh0Q29udGVudCwgJzYnKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9nZW5lcmljX3RhYmxlX3ZpZXcuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU4YjE0ZgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3Lmh0bWwKQEAgLTAsMCArMSwyMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0tPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL2l0ZXJhdGlvbl9oZWxwZXJzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3N0YXRpc3RpY3MuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL3VpL2Jhc2UvdGFibGUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvZ2VuZXJpY190YWJsZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYW5hbHlzaXMvZ2VuZXJpY19vYmplY3Rfdmlldy5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvYXJyYXlfb2ZfbnVtYmVyc19zcGFuLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXUtZ2VuZXJpYy10YWJsZS12aWV3Ij4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICB9CisgICAgI3RhYmxlIHsKKyAgICAgIGZsZXg6IDEgMSBhdXRvOworICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8dHItdWktYi10YWJsZSBpZD0idGFibGUiPjwvdHItdWktYi10YWJsZT4KKyAgPC90ZW1wbGF0ZT4KKzwvcG9seW1lci1lbGVtZW50PgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ci5leHBvcnRUbygndHIudWkudW5pdHMnLCBmdW5jdGlvbigpIHsKKyAgdmFyIFRFWFRfQ09MVU1OX01PREUgPSAxOworICB2YXIgTlVNRVJJQ19DT0xVTU5fTU9ERSA9IDI7CisKKyAgZnVuY3Rpb24gaXNOdW1lcmljKHZhbHVlKSB7CisgICAgLy8gVE9ETyhuZHVjYSk6IEFsc28gY29uc2lkZXIgb3RoZXIgdW5pdHMgdGhhdCBhcmUgbnVtZXJpYy4KKyAgICBpZiAoKHR5cGVvZiB2YWx1ZSkgPT09ICdudW1iZXInKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBOdW1iZXIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBmdW5jdGlvbiBHZW5lcmljVGFibGVWaWV3VG90YWxzSXRlbShvcHRfdmFsdWVzKSB7CisgICAgaWYgKG9wdF92YWx1ZXMgIT09IHVuZGVmaW5lZCkKKyAgICAgIHRoaXMudmFsdWVzID0gb3B0X3ZhbHVlczsKKyAgICBlbHNlCisgICAgICB0aGlzLnZhbHVlcyA9IFtdOworICB9CisKKyAgZnVuY3Rpb24gR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IoZmllbGROYW1lLCBmaXJzdEZpZWxkVmFsdWUpIHsKKyAgICB0aGlzLnRpdGxlID0gZmllbGROYW1lOworICAgIHRoaXMuZmllbGROYW1lID0gZmllbGROYW1lOworCisgICAgdGhpcy51cGRhdGVNb2RlR2l2ZW5WYWx1ZShmaXJzdEZpZWxkVmFsdWUpOworICB9CisKKyAgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IucHJvdG90eXBlID0geworICAgIGdldCBjb2x1bW5Nb2RlKCkgeworICAgICAgcmV0dXJuIHRoaXMuY29sdW1uTW9kZV87CisgICAgfSwKKworICAgIGdldCBpc0luTnVtZXJpY01vZGUoKSB7CisgICAgICByZXR1cm4gdGhpcy5jb2x1bW5Nb2RlXyA9PT0gTlVNRVJJQ19DT0xVTU5fTU9ERTsKKyAgICB9LAorCisgICAgY21wOiBmdW5jdGlvbihhLCBiKSB7CisgICAgICByZXR1cm4gdHIuYi5jb21wYXJlUG9zc2libHlVbmRlZmluZWRWYWx1ZXMoYSwgYiwgZnVuY3Rpb24oYSwgYikgeworICAgICAgICB2YXIgdkEgPSBhW3RoaXMuZmllbGROYW1lXTsKKyAgICAgICAgdmFyIHZCID0gYlt0aGlzLmZpZWxkTmFtZV07CisgICAgICAgIHJldHVybiB0ci5iLmNvbXBhcmVQb3NzaWJseVVuZGVmaW5lZFZhbHVlcyh2QSwgdkIsIGZ1bmN0aW9uKHZBLCB2QikgeworICAgICAgICAgIGlmICh2QS5sb2NhbGVDb21wYXJlKQorICAgICAgICAgICAgcmV0dXJuIHZBLmxvY2FsZUNvbXBhcmUodkIpOworICAgICAgICAgIHJldHVybiB2QSAtIHZCOworICAgICAgICB9LCB0aGlzKTsKKyAgICAgIH0sIHRoaXMpOworICAgIH0sCisKKyAgICB1cGRhdGVNb2RlR2l2ZW5WYWx1ZTogZnVuY3Rpb24oZmllbGRWYWx1ZSkgeworICAgICAgaWYgKHRoaXMuY29sdW1uTW9kZV8gPT09IHVuZGVmaW5lZCkgeworICAgICAgICBpZiAoZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkVmFsdWUgPT09IG51bGwpCisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChpc051bWVyaWMoZmllbGRWYWx1ZSkpCisgICAgICAgICAgdGhpcy5jb2x1bW5Nb2RlXyA9IE5VTUVSSUNfQ09MVU1OX01PREU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICB0aGlzLmNvbHVtbk1vZGVfID0gVEVYVF9DT0xVTU5fTU9ERTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICAvLyBVbmRlZmluZWRzICYgbnVsbHMgc2hvdWxkbid0IGNoYW5nZSB0aGUgbW9kZS4KKyAgICAgIGlmIChmaWVsZFZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGRWYWx1ZSA9PT0gbnVsbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgICAvLyBJZiB3ZSB3ZXJlIGFscmVhZHkgaW4gbnVtZXJpYyBtb2RlLCB0aGVuIHdlIGRvbid0CisgICAgICAvLyBuZWVkIHRvIHB1dCBpdCBpbnRvIG51bWVyaWMgbW9kZSBhZ2Fpbi4gQW5kLCBpZiB3ZSB3ZXJlCisgICAgICAvLyBwcmV2aW91c2x5IGluIHRleHQgbW9kZSwgdGhlbiB3ZSBjYW4ndCBnbyBpbnRvIG51bWVyaWMgbW9kZSBub3cuCisgICAgICBpZiAoaXNOdW1lcmljKGZpZWxkVmFsdWUpKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuY29sdW1uTW9kZV8gPSBURVhUX0NPTFVNTl9NT0RFOworICAgIH0sCisKKyAgICB2YWx1ZTogZnVuY3Rpb24oaXRlbSkgeworICAgICAgdmFyIGZpZWxkVmFsdWUgPSBpdGVtW3RoaXMuZmllbGROYW1lXTsKKyAgICAgIGlmIChmaWVsZFZhbHVlIGluc3RhbmNlb2YgR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0pIHsKKyAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LWFycmF5LW9mLW51bWJlcnMtc3BhbicpOworICAgICAgICBzcGFuLnN1bW1hcnlNb2RlID0gdHIudWkudW5pdHMuQXJyYXlPZk51bWJlcnNTdW1tYXJ5TW9kZXMuVE9UQUxfTU9ERTsKKyAgICAgICAgc3Bhbi5udW1iZXJzID0gZmllbGRWYWx1ZS52YWx1ZXM7CisgICAgICAgIHJldHVybiBzcGFuOworICAgICAgfQorCisgICAgICBpZiAoZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICByZXR1cm4gJy0nOworCisgICAgICBpZiAoZmllbGRWYWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkgeworICAgICAgICB2YXIgZ292ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktYS1nZW5lcmljLW9iamVjdC12aWV3Jyk7CisgICAgICAgIGdvdi5vYmplY3QgPSBmaWVsZFZhbHVlOworICAgICAgICByZXR1cm4gZ292OworICAgICAgfQorCisgICAgICAvLyBUT0RPKG5kdWNhKTogVXNlIHVuaXRzIG9iamVjdHMgaWYgYXBwbGljYWJsZS4KKyAgICAgIHJldHVybiBmaWVsZFZhbHVlOworICAgIH0KKyAgfTsKKworICBQb2x5bWVyKCd0ci11aS11LWdlbmVyaWMtdGFibGUtdmlldycsIHsKKyAgICBjcmVhdGVkOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuaXRlbXNfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgaXRlbXMoKSB7CisgICAgICByZXR1cm4gdGhpcy5pdGVtc187CisgICAgfSwKKworICAgIHNldCBpdGVtcyhpdGVtc09yR2VuZXJpY1RhYmxlKSB7CisgICAgICBpZiAoaXRlbXNPckdlbmVyaWNUYWJsZSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuaXRlbXNfID0gdW5kZWZpbmVkOworICAgICAgfSBlbHNlIGlmIChpdGVtc09yR2VuZXJpY1RhYmxlIGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgdGhpcy5pdGVtc18gPSBpdGVtc09yR2VuZXJpY1RhYmxlOworICAgICAgfSBlbHNlIGlmIChpdGVtc09yR2VuZXJpY1RhYmxlIGluc3RhbmNlb2YgdHIuYi51bml0cy5HZW5lcmljVGFibGUpIHsKKyAgICAgICAgdGhpcy5pdGVtc18gPSBpdGVtc09yR2VuZXJpY1RhYmxlLml0ZW1zOworICAgICAgfQorICAgICAgdGhpcy51cGRhdGVDb250ZW50c18oKTsKKyAgICB9LAorCisgICAgY3JlYXRlQ29sdW1uc186IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNvbHVtbnNCeU5hbWUgPSB7fTsKKyAgICAgIHRoaXMuaXRlbXNfLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAgICAgICB0ci5iLml0ZXJJdGVtcyhpdGVtLCBmdW5jdGlvbihpdGVtRmllbGROYW1lLCBpdGVtRmllbGRWYWx1ZSkgeworICAgICAgICAgIHZhciBjb2xEZXNjID0gY29sdW1uc0J5TmFtZVtpdGVtRmllbGROYW1lXTsKKyAgICAgICAgICBpZiAoY29sRGVzYyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICBjb2xEZXNjLnVwZGF0ZU1vZGVHaXZlblZhbHVlKGl0ZW1GaWVsZFZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBjb2xEZXNjID0gbmV3IEdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yKAorICAgICAgICAgICAgICBpdGVtRmllbGROYW1lLCBpdGVtRmllbGRWYWx1ZSk7CisgICAgICAgICAgY29sdW1uc0J5TmFtZVtpdGVtRmllbGROYW1lXSA9IGNvbERlc2M7CisgICAgICAgIH0sIHRoaXMpOworICAgICAgfSwgdGhpcyk7CisKKyAgICAgIHZhciBjb2x1bW5zID0gdHIuYi5kaWN0aW9uYXJ5VmFsdWVzKGNvbHVtbnNCeU5hbWUpOworICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSAwKQorICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICAvLyBTb3J0IGJ5IG5hbWUuCisgICAgICBjb2x1bW5zLnNvcnQoZnVuY3Rpb24oYSwgYikgeworICAgICAgICByZXR1cm4gYS50aXRsZS5sb2NhbGVDb21wYXJlKGIudGl0bGUpOworICAgICAgfSk7CisKKyAgICAgIC8vIFNldCBzaXplcy4gVGhpcyBpcyBjb252b2x1dGVkIGJ5IHRoZSBmYWN0IHRoYXQgdGhlIGZpcnN0CisgICAgICAvLyB0YWJsZSBjb2x1bW4gbXVzdCBoYXZlIGZpeGVkIHNpemUuCisgICAgICB2YXIgY29sV2lkdGhQZXJjZW50YWdlOworICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09IDEpCisgICAgICAgIGNvbFdpZHRoUGVyY2VudGFnZSA9ICcxMDAlJzsKKyAgICAgIGVsc2UKKyAgICAgICAgY29sV2lkdGhQZXJjZW50YWdlID0gKDEwMCAvIChjb2x1bW5zLmxlbmd0aCAtIDEpKS50b0ZpeGVkKDMpICsgJyUnOworICAgICAgY29sdW1uc1swXS53aWR0aCA9ICcyNTBweCc7CisgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspCisgICAgICAgIGNvbHVtbnNbaV0ud2lkdGggPSBjb2xXaWR0aFBlcmNlbnRhZ2U7CisKKyAgICAgIHJldHVybiBjb2x1bW5zOworICAgIH0sCisKKyAgICBjcmVhdGVGb290ZXJSb3dzSWZOZWVkZWRfOiBmdW5jdGlvbihjb2x1bW5zKSB7CisgICAgICAvLyBNYWtlIHRvdGFscyByb3cgaWYgbmVlZGVkLgorICAgICAgdmFyIGhhc0NvbHVtblRoYXRJc051bWVyaWMgPSBjb2x1bW5zLnNvbWUoZnVuY3Rpb24oY29sdW1uKSB7CisgICAgICAgIHJldHVybiBjb2x1bW4uaXNJbk51bWVyaWNNb2RlOworICAgICAgfSk7CisgICAgICBpZiAoIWhhc0NvbHVtblRoYXRJc051bWVyaWMpCisgICAgICAgIHJldHVybiBbXTsKKworICAgICAgdmFyIHRvdGFsc0l0ZW1zID0ge307CisgICAgICBjb2x1bW5zLmZvckVhY2goZnVuY3Rpb24oY29sdW1uKSB7CisgICAgICAgIGlmICghY29sdW1uLmlzSW5OdW1lcmljTW9kZSkKKyAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB0b3RhbHNJdGVtID0gbmV3IEdlbmVyaWNUYWJsZVZpZXdUb3RhbHNJdGVtKCk7CisgICAgICAgIHRoaXMuaXRlbXNfLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAgICAgICAgIHZhciBmaWVsZFZhbHVlID0gaXRlbVtjb2x1bW4uZmllbGROYW1lXTsKKyAgICAgICAgICBpZiAoZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkVmFsdWUgPT09IG51bGwpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgdG90YWxzSXRlbS52YWx1ZXMucHVzaChmaWVsZFZhbHVlKTsKKyAgICAgICAgfSk7CisgICAgICAgIHRvdGFsc0l0ZW1zW2NvbHVtbi5maWVsZE5hbWVdID0gdG90YWxzSXRlbTsKKyAgICAgIH0sIHRoaXMpOworCisgICAgICByZXR1cm4gW3RvdGFsc0l0ZW1zXTsKKyAgICB9LAorCisgICAgdXBkYXRlQ29udGVudHNfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBjb2x1bW5zOworICAgICAgaWYgKHRoaXMuaXRlbXNfICE9PSB1bmRlZmluZWQpCisgICAgICAgIGNvbHVtbnMgPSB0aGlzLmNyZWF0ZUNvbHVtbnNfKCk7CisKKyAgICAgIGlmICghY29sdW1ucykgeworICAgICAgICB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zID0gW107CisgICAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSBbXTsKKyAgICAgICAgdGhpcy4kLnRhYmxlLmZvb3RlclJvd3MgPSBbXTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB0aGlzLiQudGFibGUudGFibGVDb2x1bW5zID0gY29sdW1uczsKKyAgICAgIHRoaXMuJC50YWJsZS50YWJsZVJvd3MgPSB0aGlzLml0ZW1zXzsKKyAgICAgIHRoaXMuJC50YWJsZS5mb290ZXJSb3dzID0gdGhpcy5jcmVhdGVGb290ZXJSb3dzSWZOZWVkZWRfKGNvbHVtbnMpOworICAgICAgdGhpcy4kLnRhYmxlLnJlYnVpbGQoKTsKKyAgICB9CisgIH0pOworCisgIHJldHVybiB7CisgICAgR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW06IEdlbmVyaWNUYWJsZVZpZXdUb3RhbHNJdGVtLAorICAgIEdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yOiBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvcgorICB9OworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3X3Rlc3QuaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvZ2VuZXJpY190YWJsZV92aWV3X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTA3YzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9nZW5lcmljX3RhYmxlX3ZpZXdfdGVzdC5odG1sCkBAIC0wLDAgKzEsMTgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy9nZW5lcmljX3RhYmxlX3ZpZXcuaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB2YXIgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IgPQorICAgICAgdHIudWkudW5pdHMuR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3I7CisgIHZhciBHZW5lcmljVGFibGVWaWV3VG90YWxzSXRlbSA9IHRyLnVpLnVuaXRzLkdlbmVyaWNUYWJsZVZpZXdUb3RhbHNJdGVtOworCisgIHRlc3QoJ2Rlc2NCYXNpY051bWVyaWNNb2RlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbERlc2MgPSBuZXcgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IoJ2EnKTsKKyAgICBhc3NlcnQuaXNGYWxzZShjb2xEZXNjLmlzSW5OdW1lcmljTW9kZSk7CisKKyAgICBjb2xEZXNjLnVwZGF0ZU1vZGVHaXZlblZhbHVlKDQpOworICAgIGFzc2VydC5pc1RydWUoY29sRGVzYy5pc0luTnVtZXJpY01vZGUpOworCisgICAgY29sRGVzYy51cGRhdGVNb2RlR2l2ZW5WYWx1ZSg0KTsKKyAgICBhc3NlcnQuaXNUcnVlKGNvbERlc2MuaXNJbk51bWVyaWNNb2RlKTsKKworICAgIGNvbERlc2MudXBkYXRlTW9kZUdpdmVuVmFsdWUodW5kZWZpbmVkKTsKKyAgICBjb2xEZXNjLnVwZGF0ZU1vZGVHaXZlblZhbHVlKG51bGwpOworICAgIGFzc2VydC5pc1RydWUoY29sRGVzYy5pc0luTnVtZXJpY01vZGUpOworCisgICAgY29sRGVzYy51cGRhdGVNb2RlR2l2ZW5WYWx1ZSgnYScpOworICAgIGFzc2VydC5pc0ZhbHNlKGNvbERlc2MuaXNJbk51bWVyaWNNb2RlKTsKKyAgfSk7CisKKyAgdGVzdCgnZGVzY0Jhc2ljTm9uTnVtZXJpY01vZGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgY29sRGVzYyA9IG5ldyBHZW5lcmljVGFibGVWaWV3Q29sdW1uRGVzY3JpcHRvcignYScpOworICAgIGFzc2VydC5pc0ZhbHNlKGNvbERlc2MuaXNJbk51bWVyaWNNb2RlKTsKKyAgICBjb2xEZXNjLnVwZGF0ZU1vZGVHaXZlblZhbHVlKDQpOworICAgIGFzc2VydC5pc1RydWUoY29sRGVzYy5pc0luTnVtZXJpY01vZGUpOworICAgIGNvbERlc2MudXBkYXRlTW9kZUdpdmVuVmFsdWUoJ2EnKTsKKyAgICBhc3NlcnQuaXNGYWxzZShjb2xEZXNjLmlzSW5OdW1lcmljTW9kZSk7CisgIH0pOworCisgIHRlc3QoJ2Rlc2NDbXBXaXRoTnVtYmVycycsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2xEZXNjID0gbmV3IEdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yKCdhJywgMSk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbERlc2MuY21wKHthOiAxfSwge2E6IDJ9KSwgLTEpOworICAgIGFzc2VydC5lcXVhbChjb2xEZXNjLmNtcCh7YTogMX0sIHVuZGVmaW5lZCksIC0xKTsKKyAgfSk7CisKKyAgdGVzdCgnZGVzY0NtcFdpdGhUZXh0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbERlc2MgPSBuZXcgR2VuZXJpY1RhYmxlVmlld0NvbHVtbkRlc2NyaXB0b3IoJ2EnLCAndGV4dCcpOworICAgIGFzc2VydC5lcXVhbChjb2xEZXNjLmNtcCh7YTogJ2EnfSwge2E6ICdiJ30pLCAtMSk7CisgICAgYXNzZXJ0LmVxdWFsKGNvbERlc2MuY21wKHthOiAnYSd9LCB1bmRlZmluZWQpLCAtMSk7CisgIH0pOworCisgIHRlc3QoJ2Rlc2NWYWx1ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciBjb2xEZXNjID0gbmV3IEdlbmVyaWNUYWJsZVZpZXdDb2x1bW5EZXNjcmlwdG9yKCdhJywgMSk7CisgICAgdmFyIHZhbHVlID0gY29sRGVzYy52YWx1ZSh7YTogdW5kZWZpbmVkfSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLCAnLScpOworCisgICAgdmFsdWUgPSBjb2xEZXNjLnZhbHVlKHthOiAzfSk7CisgICAgYXNzZXJ0LmVxdWFsKHZhbHVlLCAzKTsKKworICAgIHZhciB0b3RhbHNWYWx1ZSA9IGNvbERlc2MudmFsdWUoCisgICAgICAgIHthOiBuZXcgR2VuZXJpY1RhYmxlVmlld1RvdGFsc0l0ZW0oWzEsIDIsIDNdKX0pOworICAgIGFzc2VydC5lcXVhbCh0b3RhbHNWYWx1ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCksCisgICAgICAgICAgICAgICAgICAndHItdWktdS1hcnJheS1vZi1udW1iZXJzLXNwYW4nKTsKKyAgICBhc3NlcnQuZGVlcEVxdWFsKHRvdGFsc1ZhbHVlLm51bWJlcnMsIFsxLCAyLCAzXSk7CisgIH0pOworCisgIHRlc3QoJ2V2ZXJ5dGhpbmdUb2dldGhlcicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtZ2VuZXJpYy10YWJsZS12aWV3Jyk7CisgICAgdGFibGUuaXRlbXMgPSBbCisgICAgICB7CisgICAgICAgIGE6ICdzb21lU3RyaW5nJywKKyAgICAgICAgYjogMiwKKyAgICAgICAgYzogJ2Fkc2YnCisgICAgICB9LAorICAgICAgeworICAgICAgICBhOiAnc29tZU90aGVyU3RyaW5nJywKKyAgICAgICAgYjogMiwKKyAgICAgICAgYzogJ2Fkc2YnCisgICAgICB9CisgICAgXTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGFibGUpOworICB9KTsKKworICB0ZXN0KCdzdW1tYWJsZUNvbHVtbicsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtZ2VuZXJpYy10YWJsZS12aWV3Jyk7CisgICAgdGFibGUuaXRlbXMgPSBbCisgICAgICB7CisgICAgICAgIGE6IDEKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGE6IDIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGE6IDMKKyAgICAgIH0KKyAgICBdOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuJC50YWJsZS50YWJsZUNvbHVtbnMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuJC50YWJsZS50YWJsZVJvd3MubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuaXNUcnVlKHRhYmxlLiQudGFibGUudGFibGVDb2x1bW5zWzBdLmlzSW5OdW1lcmljTW9kZSk7CisgICAgYXNzZXJ0LmVxdWFsKHRhYmxlLiQudGFibGUudGFibGVDb2x1bW5zWzBdLmZpZWxkTmFtZSwgJ2EnKTsKKyAgICB2YXIgdG90YWxzSXRlbSA9IHRhYmxlLiQudGFibGUuZm9vdGVyUm93c1swXS5hOworICAgIGFzc2VydC5kZWVwRXF1YWwodG90YWxzSXRlbS52YWx1ZXMsIFsxLCAyLCAzXSk7CisgIH0pOworCisKKyAgdGVzdCgndXNpbmdHZW5lcmljVGFibGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LWdlbmVyaWMtdGFibGUtdmlldycpOworICAgIHRhYmxlLml0ZW1zID0gbmV3IHRyLmIudW5pdHMuR2VuZXJpY1RhYmxlKFsKKyAgICAgIHsKKyAgICAgICAgYTogMQorICAgICAgfQorICAgIF0pOworICAgIGFzc2VydC5lcXVhbCh0YWJsZS5pdGVtcy5sZW5ndGgsIDEpOworICB9KTsKKworICB0ZXN0KCd2YWx1ZUlzT2JqZWN0JywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS1nZW5lcmljLXRhYmxlLXZpZXcnKTsKKyAgICB0YWJsZS5pdGVtcyA9IG5ldyB0ci5iLnVuaXRzLkdlbmVyaWNUYWJsZShbCisgICAgICB7CisgICAgICAgIGE6IHt4OiAxLCB5OiAnc3RyaW5nJ30KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGE6ICdzb21ldGhpbmcnCisgICAgICB9CisgICAgXSk7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuaXRlbXMubGVuZ3RoLCAyKTsKKyAgfSk7CisKKyAgdGVzdCgnbWl4ZWRUeXBlVGFibGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LWdlbmVyaWMtdGFibGUtdmlldycpOworICAgIHRhYmxlLml0ZW1zID0gWworICAgICAgeworICAgICAgICBhOiAxCisgICAgICB9LAorICAgICAgeworICAgICAgICBhOiAyCisgICAgICB9LAorICAgICAgeworICAgICAgICBiOiAnYycKKyAgICAgIH0KKyAgICBdOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0YWJsZSk7CisgIH0pOworCisgIHRlc3QoJ2VtcHR5VGFibGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LWdlbmVyaWMtdGFibGUtdmlldycpOworICAgIHRhYmxlLml0ZW1zID0gW3t9XTsKKyAgICBhc3NlcnQuZXF1YWwodGFibGUuJC50YWJsZS50YWJsZUNvbHVtbnMubGVuZ3RoLCAwKTsKKyAgfSk7CisKKyAgdGVzdCgndW5kZWZpbmVkQW5kVmFsdWUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LWdlbmVyaWMtdGFibGUtdmlldycpOworICAgIHRhYmxlLml0ZW1zID0gWworICAgICAgeworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgYTogMgorICAgICAgfQorICAgIF07CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKyAgfSk7CisKKyAgdGVzdCgndW5kZWZpbmVkT25seScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtZ2VuZXJpYy10YWJsZS12aWV3Jyk7CisgICAgdGFibGUuaXRlbXMgPSBbCisgICAgICB7CisgICAgICAgIGE6IHVuZGVmaW5lZAorICAgICAgfQorICAgIF07CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRhYmxlKTsKKyAgfSk7Cit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9wcmVmZXJyZWRfZGlzcGxheV91bml0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3ByZWZlcnJlZF9kaXNwbGF5X3VuaXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTFlZmMyCi0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9wcmVmZXJyZWRfZGlzcGxheV91bml0Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+DQorPCEtLQ0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlDQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4NCistLT4NCis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4NCisNCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXUtcHJlZmVycmVkLWRpc3BsYXktdW5pdCI+DQorICA8c2NyaXB0Pg0KKyAgJ3VzZSBzdHJpY3QnOw0KKyAgUG9seW1lcih7DQorICAgIHJlYWR5OiBmdW5jdGlvbigpIHsNCisgICAgICB0aGlzLnVuaXRfID0gdW5kZWZpbmVkOw0KKyAgICB9LA0KKw0KKyAgICBhdHRhY2hlZDogZnVuY3Rpb24oKSB7DQorICAgICAgdHIuYi51bml0cy5UaW1lLmRpZFByZWZlcnJlZFVuaXRDaGFuZ2UoKTsNCisgICAgfSwNCisNCisgICAgZGV0YWNoZWQ6IGZ1bmN0aW9uKCkgew0KKyAgICAgIHRyLmIudW5pdHMuVGltZS5kaWRQcmVmZXJyZWRVbml0Q2hhbmdlKCk7DQorICAgIH0sDQorDQorICAgIC8vIG51bGwgbWVhbnMgbm8tcHJlZmVyZW5jZQ0KKyAgICBnZXQgcHJlZmVycmVkRGlzcGxheVVuaXQoKSB7DQorICAgICAgcmV0dXJuIHRoaXMudW5pdF87DQorICAgIH0sDQorDQorICAgIHNldCBwcmVmZXJyZWREaXNwbGF5VW5pdCh2KSB7DQorICAgICAgaWYgKHRoaXMudW5pdF8gPT09IHYpDQorICAgICAgICByZXR1cm47DQorICAgICAgdGhpcy51bml0XyA9IHY7DQorICAgICAgdHIuYi51bml0cy5UaW1lLmRpZFByZWZlcnJlZFVuaXRDaGFuZ2UoKTsNCisgICAgfQ0KKw0KKyAgfSk7DQorICA8L3NjcmlwdD4NCis8L3BvbHltZXItZWxlbWVudD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3ByZWZlcnJlZF9kaXNwbGF5X3VuaXRfdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9wcmVmZXJyZWRfZGlzcGxheV91bml0X3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjQxY2I1Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9wcmVmZXJyZWRfZGlzcGxheV91bml0X3Rlc3QuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4NCis8IS0tDQorQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUNCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLg0KKy0tPg0KKw0KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lLmh0bWwiPg0KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvcHJlZmVycmVkX2Rpc3BsYXlfdW5pdC5odG1sIj4NCisNCis8c2NyaXB0Pg0KKyd1c2Ugc3RyaWN0JzsNCisNCit0ci5iLnVuaXR0ZXN0LnRlc3RTdWl0ZShmdW5jdGlvbigpIHsNCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7DQorICAgIHZhciB1bml0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS1wcmVmZXJyZWQtZGlzcGxheS11bml0Jyk7DQorICAgIHZhciBtcyA9IHRyLmIudW5pdHMuVGltZS5zdXBwb3J0ZWRVbml0cy5tczsNCisgICAgdW5pdC5wcmVmZXJyZWREaXNwbGF5VW5pdCA9IG1zOw0KKyAgICBhc3NlcnQuZXF1YWwodW5pdC5wcmVmZXJyZWREaXNwbGF5VW5pdCwgbXMpOw0KKyAgfSk7DQorfSk7DQorPC9zY3JpcHQ+DQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy9zaXplX2luX2J5dGVzX3NwYW4uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UxNWEyNQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy9zaXplX2luX2J5dGVzLmh0bWwiPgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXUtc2l6ZS1pbi1ieXRlcy1zcGFuIj4KKyAgPHRlbXBsYXRlPgorICAgIDxzdHlsZT4KKyAgICA6aG9zdCB7CisgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNwYW4gaWQ9ImNvbnRlbnQiPjwvc3Bhbj4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gU3RyaW5nLmZyb21DaGFyQ29kZSg5ODg4KTsKKyAgICAgIHRoaXMubnVtQnl0ZXNfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgbnVtQnl0ZXMoKSB7CisgICAgICByZXR1cm4gdGhpcy5udW1CeXRlc187CisgICAgfSwKKworICAgIHNldCBudW1CeXRlcyhudW1CeXRlc09yU2l6ZUluQnl0ZXMpIHsKKyAgICAgIGlmIChudW1CeXRlc09yU2l6ZUluQnl0ZXMgaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlNpemVJbkJ5dGVzKQorICAgICAgICB0aGlzLm51bUJ5dGVzXyA9IG51bUJ5dGVzT3JTaXplSW5CeXRlcy5udW1CeXRlczsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5udW1CeXRlc18gPSBudW1CeXRlc09yU2l6ZUluQnl0ZXM7CisKKyAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0KKyAgICAgICAgICB0ci5iLnVuaXRzLlNpemVJbkJ5dGVzLmZvcm1hdCh0aGlzLm51bUJ5dGVzXyk7CisgICAgfSwKKworICAgIGdldCBzdHJpbmdDb250ZW50KCkgeworICAgICAgcmV0dXJuIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50OworICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3NpemVfaW5fYnl0ZXNfc3Bhbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3NpemVfaW5fYnl0ZXNfc3Bhbl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNlZjZkZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvc2l6ZV9pbl9ieXRlc19zcGFuX3Rlc3QuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS91bml0cy9zaXplX2luX2J5dGVzX3NwYW4uaHRtbCI+CisKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3RyLmIudW5pdHRlc3QudGVzdFN1aXRlKGZ1bmN0aW9uKCkgeworICB0ZXN0KCdpbnN0YW50aWF0ZScsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0aW1lU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtc2l6ZS1pbi1ieXRlcy1zcGFuJyk7CisgICAgdGltZVNwYW4ubnVtQnl0ZXMgPSA1ICogMTAyNDsKKyAgICBhc3NlcnQuZXF1YWwodGltZVNwYW4ubnVtQnl0ZXMsIDUgKiAxMDI0KTsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZVNwYW4pOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZVdpdGhPYmplY3QnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGltZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXNpemUtaW4tYnl0ZXMtc3BhbicpOworICAgIHRpbWVTcGFuLm51bUJ5dGVzID0gbmV3IHRyLmIudW5pdHMuU2l6ZUluQnl0ZXMoNSAqIDEwMjQpOworICAgIGFzc2VydC5lcXVhbCh0aW1lU3Bhbi5udW1CeXRlcywgNSAqIDEwMjQpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lU3Bhbik7CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZTZmODUKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbi5odG1sCkBAIC0wLDAgKzEsMTU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KK0NvcHlyaWdodCAoYykgMjAxNSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKK2ZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistLT4KKworPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii91aS9iYXNlL2RlZXBfdXRpbHMuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwiPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBUT0RPKHBldHJjZXJtYWspOiBTaW1pbGFybHkgdG8gYmFzZS91bml0cy90aW1lX2R1cmF0aW9uLmh0bWwgYW5kCisvLyBiYXNlL3VuaXRzL3RpbWVfc3RhbXAuaHRtbCwgdGhlIGNsYXNzZXMgZGVmaW5lZCBpbiB0aGlzIGZpbGUgYXJlIGFsbW9zdAorLy8gaWRlbnRpY2FsIHRvIHRoZSBvbmVzIGRlZmluZWQgaW4gdGltZV9zdGFtcF9zcGFuLiBDb25zaWRlciBzaGFyaW5nIG1vcmUKKy8vIGNvZGUgYmV0d2VlbiB0aGUgdHdvIGZpbGVzLgordHIuZXhwb3J0VG8oJ3RyLnVpLnVuaXRzJywgZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGNyZWF0ZVRpbWVEdXJhdGlvblNwYW4oZHVyYXRpb24sIG9wdF9jb25maWcpIHsKKyAgICBpZiAoZHVyYXRpb24gPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiAnJzsKKyAgICB2YXIgY29uZmlnID0gb3B0X2NvbmZpZyB8fCB7fTsKKyAgICB2YXIgb3duZXJEb2N1bWVudCA9IGNvbmZpZy5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50OworICAgIHZhciBzcGFuID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtZHVyYXRpb24tc3BhbicpOworICAgIGlmIChjb25maWcudG90YWwpCisgICAgICBzcGFuLnBlcmNlbnRhZ2UgPSBkdXJhdGlvbiAvIGNvbmZpZy50b3RhbDsKKyAgICBzcGFuLmR1cmF0aW9uID0gZHVyYXRpb247CisgICAgLy8gVE9ETyhwZXRyY2VybWFrKTogR2V0IHJpZCBvZiB0aGlzIGJvb2xlYW4gb25jZSB3ZSd2ZSBjbGVhbmVkIHVwIHVuaXRzLgorICAgIGlmIChjb25maWcucmlnaHRBbGlnbikKKyAgICAgIHNwYW4ucmlnaHRBbGlnbiA9IHRydWU7CisgICAgcmV0dXJuIHNwYW47CisgIH0KKworICB0ci5iLnVuaXRzLlRpbWUuYWRkRXZlbnRMaXN0ZW5lcignZGlzcGxheS11bml0LWNoYW5nZWQnLCBmdW5jdGlvbihlKSB7CisgICAgdHIuYi5maW5kRGVlcEVsZW1lbnRzTWF0Y2hpbmcoZG9jdW1lbnQuYm9keSwKKyAgICAgICd0ci11aS11LXRpbWUtZHVyYXRpb24tc3BhbicpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKKyAgICAgICAgZWwudXBkYXRlQ29udGVudF8oKTsKKyAgICAgIH0pOworICB9KTsKKworICByZXR1cm4geworICAgIGNyZWF0ZVRpbWVEdXJhdGlvblNwYW46IGNyZWF0ZVRpbWVEdXJhdGlvblNwYW4KKyAgfTsKK30pOworPC9zY3JpcHQ+CisKKzxwb2x5bWVyLWVsZW1lbnQgbmFtZT0idHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4iPgorICA8dGVtcGxhdGU+CisgICAgPHN0eWxlPgorICAgIDpob3N0IHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAgICAjY29udGVudC5yaWdodC1hbGlnbiB7CisgICAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAgICAjc3BhcmtsaW5lIHsKKyAgICAgIHdpZHRoOiAwJTsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGJvdHRvbTogMDsKKyAgICAgIHJpZ2h0OiAwOworICAgICAgZGlzcGxheTogbm9uZTsKKyAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTYsIDEwMCUsIDk0LjUlKTsKKyAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgaHNsKDIxNiwgMTAwJSwgODklKTsKKyAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQorICAgICN3YXJuaW5nIHsKKyAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CisgICAgICBmb250LXNpemU6IDY2JTsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c3BhbiBpZD0ic3BhcmtsaW5lIj48L3NwYW4+CisgICAgPHNwYW4gaWQ9ImNvbnRlbnQiPjwvc3Bhbj4KKyAgICA8c3BhbiBpZD0id2FybmluZyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+JiM5ODg4Ozwvc3Bhbj4KKyAgPC90ZW1wbGF0ZT4KKyAgPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIFBvbHltZXIoeworICAgIHJlYWR5OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMud2FybmluZ18gPSB1bmRlZmluZWQ7CisgICAgICB0aGlzLmR1cmF0aW9uXyA9IHVuZGVmaW5lZDsKKyAgICAgIHRoaXMucGVyY2VudGFnZV8gPSB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIGdldCBkdXJhdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmR1cmF0aW9uXzsKKyAgICB9LAorCisgICAgc2V0IGR1cmF0aW9uKGR1cmF0aW9uKSB7CisgICAgICBpZiAoZHVyYXRpb24gaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlRpbWVEdXJhdGlvbikKKyAgICAgICAgdGhpcy5kdXJhdGlvbl8gPSBkdXJhdGlvbi5kdXJhdGlvbjsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy5kdXJhdGlvbl8gPSBkdXJhdGlvbjsKKyAgICAgIHRoaXMudXBkYXRlQ29udGVudF8oKTsKKyAgICB9LAorCisgICAgZ2V0IHBlcmNlbnRhZ2UoKSB7CisgICAgICByZXR1cm4gdGhpcy5wZXJjZW50YWdlXzsKKyAgICB9LAorCisgICAgc2V0IHBlcmNlbnRhZ2UocGVyY2VudGFnZSkgeworICAgICAgdGhpcy5wZXJjZW50YWdlXyA9IHBlcmNlbnRhZ2U7CisgICAgICB0aGlzLnVwZGF0ZVNwYXJrbGluZV8oKTsKKyAgICB9LAorCisgICAgZ2V0IHJpZ2h0QWxpZ24oKSB7CisgICAgICByZXR1cm4gdGhpcy4kLmNvbnRlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdyaWdodC1hbGlnbicpOworICAgIH0sCisKKyAgICBzZXQgcmlnaHRBbGlnbihyaWdodEFsaWduKSB7CisgICAgICBpZiAocmlnaHRBbGlnbikKKyAgICAgICAgdGhpcy4kLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCgncmlnaHQtYWxpZ24nKTsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy4kLmNvbnRlbnQuY2xhc3NMaXN0LnJlbW92ZSgncmlnaHQtYWxpZ24nKTsKKyAgICB9LAorCisgICAgdXBkYXRlU3BhcmtsaW5lXzogZnVuY3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5wZXJjZW50YWdlXyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHRoaXMuJC5zcGFya2xpbmUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgdGhpcy4kLnNwYXJrbGluZS5zdHlsZS53aWR0aCA9ICcwJzsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMuJC5zcGFya2xpbmUuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CisgICAgICAgIHRoaXMuJC5zcGFya2xpbmUuc3R5bGUud2lkdGggPSAodGhpcy5wZXJjZW50YWdlXyAqIDEwMCkgKyAnJSc7CisgICAgICB9CisgICAgfSwKKworICAgIHVwZGF0ZUNvbnRlbnRfOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBjb250ZW50ID0gdHIuYi51bml0cy5UaW1lRHVyYXRpb24uZm9ybWF0KHRoaXMuZHVyYXRpb25fKTsKKyAgICAgIHRoaXMuJC5jb250ZW50LnRleHRDb250ZW50ID0gY29udGVudDsKKyAgICB9LAorCisgICAgZ2V0IHdhcm5pbmcoKSB7CisgICAgICByZXR1cm4gdGhpcy53YXJuaW5nXzsKKyAgICB9LAorCisgICAgc2V0IHdhcm5pbmcod2FybmluZykgeworICAgICAgdGhpcy53YXJuaW5nXyA9IHdhcm5pbmc7CisgICAgICB2YXIgd2FybmluZ0VsID0gdGhpcy4kLndhcm5pbmc7CisgICAgICBpZiAodGhpcy53YXJuaW5nXykgeworICAgICAgICB3YXJuaW5nRWwudGl0bGUgPSB3YXJuaW5nOworICAgICAgICB3YXJuaW5nRWwuc3R5bGUuZGlzcGxheSA9ICcnOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgd2FybmluZ0VsLnRpdGxlID0gJyc7CisgICAgICAgIHdhcm5pbmdFbC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgfQorICAgIH0KKyAgfSk7CisgIDwvc2NyaXB0PgorPC9wb2x5bWVyLWVsZW1lbnQ+CmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbl90ZXN0Lmh0bWwgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3RpbWVfZHVyYXRpb25fc3Bhbl90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI2MzE5NgotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuX3Rlc3QuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9kdXJhdGlvbl9zcGFuLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50Ll9jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7CisKKyAgdGVzdCgnY3JlYXRlVGltZUR1cmF0aW9uU3BhbicsIGZ1bmN0aW9uKCkgeworICAgIC8vIERlZmF1bHQgb3duZXIgZG9jdW1lbnQuCisgICAgdmFyIHRpbWVTdGFtcCA9IHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVEdXJhdGlvblNwYW4oMy4xNCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRpbWVTdGFtcC50YWdOYW1lLCAnVFItVUktVS1USU1FLURVUkFUSU9OLVNQQU4nKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGltZVN0YW1wLmR1cmF0aW9uLCAzLjE0KTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGltZVN0YW1wLm93bmVyRG9jdW1lbnQsIGRvY3VtZW50KTsKKworICAgIC8vIEN1c3RvbSBvd25lciBkb2N1bWVudC4KKyAgICB2YXIgY29uZmlnID0ge293bmVyRG9jdW1lbnQ6IFRISVNfRE9DfTsKKyAgICB2YXIgdGltZVN0YW1wID0gdHIudWkudW5pdHMuY3JlYXRlVGltZUR1cmF0aW9uU3BhbigtMjczLjE1LCBjb25maWcpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0aW1lU3RhbXAudGFnTmFtZSwgJ1RSLVVJLVUtVElNRS1EVVJBVElPTi1TUEFOJyk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRpbWVTdGFtcC5kdXJhdGlvbiwgLTI3My4xNSk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRpbWVTdGFtcC5vd25lckRvY3VtZW50LCBUSElTX0RPQyk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRpbWVTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICB0aW1lU3Bhbi5kdXJhdGlvbiA9IDczOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lU3Bhbik7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlV2l0aE9iamVjdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0aW1lU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7CisgICAgdGltZVNwYW4uZHVyYXRpb24gPSBuZXcgdHIuYi51bml0cy5UaW1lRHVyYXRpb24oNzMpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lU3Bhbik7CisgICAgYXNzZXJ0LmVxdWFsKHRpbWVTcGFuLmR1cmF0aW9uLCA3Myk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlV2l0aFdhcm5pbmcnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGltZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtZHVyYXRpb24tc3BhbicpOworICAgIHRpbWVTcGFuLmR1cmF0aW9uID0gNDAwOworICAgIHRpbWVTcGFuLndhcm5pbmcgPSAndGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhpcyB0aW1lJzsKKyAgICB0aGlzLmFkZEhUTUxPdXRwdXQodGltZVNwYW4pOworICB9KTsKKworICB0ZXN0KCdpbnN0YW50aWF0ZVdpdGhQZXJjZW50YWdlJywgZnVuY3Rpb24oKSB7CisgICAgdmFyIHRpbWVTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICB0aW1lU3Bhbi5wZXJjZW50YWdlID0gMC41OworICAgIHRpbWVTcGFuLmR1cmF0aW9uID0gNDA7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTcGFuKTsKKyAgfSk7CisKKyAgdGVzdCgnd2FybmluZ0FuZE5vbldhcm5pbmdIYXZlU2ltaWxhckhlaWdodHMnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3BhbkEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtZHVyYXRpb24tc3BhbicpOworICAgIHNwYW5BLmR1cmF0aW9uID0gNDAwOworCisgICAgdmFyIHNwYW5CID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLWR1cmF0aW9uLXNwYW4nKTsKKyAgICBzcGFuQi5kdXJhdGlvbiA9IDQwMDsKKyAgICBzcGFuQi53YXJuaW5nID0gJ3RoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoaXMgdGltZSc7CisKKyAgICB2YXIgb3ZlcmFsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIG92ZXJhbGwuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsKKyAgICBvdmVyYWxsLmFwcGVuZENoaWxkKHNwYW5BKTsKKyAgICBzcGFuQi5zdHlsZS5tYXJnaW5MZWZ0ID0gJzRweCc7CisgICAgb3ZlcmFsbC5hcHBlbmRDaGlsZChzcGFuQik7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KG92ZXJhbGwpOworICB9KTsKKworCisgIHRlc3QoJ3Jlc3BlY3RDdXJyZW50RGlzcGxheVVuaXQnLCBmdW5jdGlvbigpIHsKKyAgICB0cnkgeworICAgICAgdmFyIFRpbWUgPSB0ci5iLnVuaXRzLlRpbWU7CisgICAgICBUaW1lLmN1cnJlbnREaXNwbGF5VW5pdCA9IFRpbWUuc3VwcG9ydGVkVW5pdHMubnM7CisKKyAgICAgIHZhciB0aW1lU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7CisgICAgICB0aW1lU3Bhbi5kdXJhdGlvbiA9IDczOworICAgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTcGFuKTsKKworICAgICAgYXNzZXJ0LmlzVHJ1ZSh0aW1lU3Bhbi4kLmNvbnRlbnQudGV4dENvbnRlbnQuaW5kZXhPZignbnMnKSA+IDApOworICAgICAgVGltZS5jdXJyZW50RGlzcGxheVVuaXQgPSBUaW1lLnN1cHBvcnRlZFVuaXRzLm1zOworICAgICAgYXNzZXJ0LmlzVHJ1ZSh0aW1lU3Bhbi4kLmNvbnRlbnQudGV4dENvbnRlbnQuaW5kZXhPZignbXMnKSA+IDApOworICAgIH0gZmluYWxseSB7CisgICAgICBUaW1lLnJlc2V0KCk7CisgICAgfQorICB9KTsKKworCisgIHRlc3QoJ2Rpc3BsYXlTcGFya2xpbmUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZGl2LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKworICAgIHZhciB0aW1lU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyLXVpLXUtdGltZS1kdXJhdGlvbi1zcGFuJyk7CisgICAgdGltZVNwYW4uZHVyYXRpb24gPSA0MDsKKyAgICBkaXYuYXBwZW5kQ2hpbGQodGltZVNwYW4pOworCisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KGRpdik7CisKKyAgICBmdW5jdGlvbiBjaGVja1NwYXJrbGluZShleHBlY3RlZERpc3BsYXksIGV4cGVjdGVkV2lkdGgpIHsKKyAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aW1lU3Bhbi4kLnNwYXJrbGluZSk7CisgICAgICBhc3NlcnQuZXF1YWwoY29tcHV0ZWRTdHlsZS5kaXNwbGF5LCBleHBlY3RlZERpc3BsYXkpOworICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlSW50KGNvbXB1dGVkU3R5bGUud2lkdGgpLCBleHBlY3RlZFdpZHRoKTsKKyAgICB9CisKKyAgICAvLyBObyBwZXJjZW50YWdlIHNldC4KKyAgICBjaGVja1NwYXJrbGluZSgnbm9uZScsIDApOworCisgICAgLy8gWmVybyBwZXJjZW50YWdlIHNldC4KKyAgICB0aW1lU3Bhbi5wZXJjZW50YWdlID0gMDsKKyAgICBjaGVja1NwYXJrbGluZSgnYmxvY2snLCAxKTsKKworICAgIC8vIFVuZGVmaW5lZCBwZXJjZW50YWdlIHNldC4KKyAgICB0aW1lU3Bhbi5wZXJjZW50YWdlID0gdW5kZWZpbmVkOworICAgIGNoZWNrU3BhcmtsaW5lKCdub25lJywgMCk7CisKKyAgICAvLyBVbmRlZmluZWQgcGVyY2VudGFnZSBzZXQuCisgICAgdGltZVNwYW4ucGVyY2VudGFnZSA9IDAuNTsKKyAgICBjaGVja1NwYXJrbGluZSgnYmxvY2snLCA1MCk7CisgIH0pOworCit9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy90aW1lX3N0YW1wX3NwYW4uaHRtbCBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvdGltZV9zdGFtcF9zcGFuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ2MjUzYQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmcvdWkvdW5pdHMvdGltZV9zdGFtcF9zcGFuLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+CisKKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvYmFzZS9kZWVwX3V0aWxzLmh0bWwiPgorPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9Ii9iYXNlL3VuaXRzL3RpbWUuaHRtbCI+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZV9zdGFtcC5odG1sIj4KKworPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKK3RyLmV4cG9ydFRvKCd0ci51aS51bml0cycsIGZ1bmN0aW9uKCkgeworICBmdW5jdGlvbiBjcmVhdGVUaW1lU3RhbXBTcGFuKHRpbWVzdGFtcCwgb3B0X2NvbmZpZykgeworICAgIGlmICh0aW1lc3RhbXAgPT09IHVuZGVmaW5lZCkKKyAgICAgIHJldHVybiAnJzsKKyAgICB2YXIgY29uZmlnID0gb3B0X2NvbmZpZyB8fCB7fTsKKyAgICB2YXIgb3duZXJEb2N1bWVudCA9IGNvbmZpZy5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50OworICAgIHZhciBzcGFuID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtc3RhbXAtc3BhbicpOworICAgIHNwYW4udGltZXN0YW1wID0gdGltZXN0YW1wOworICAgIHJldHVybiBzcGFuOworICB9CisKKyAgdHIuYi51bml0cy5UaW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2Rpc3BsYXktdW5pdC1jaGFuZ2VkJywgZnVuY3Rpb24oZSkgeworICAgIHRyLmIuZmluZERlZXBFbGVtZW50c01hdGNoaW5nKGRvY3VtZW50LmJvZHksCisgICAgICAndHItdWktdS10aW1lLXN0YW1wLXNwYW4nKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7CisgICAgICAgIGVsLnVwZGF0ZUNvbnRlbnRfKCk7CisgICAgICB9KTsKKyAgfSk7CisKKyAgcmV0dXJuIHsKKyAgICBjcmVhdGVUaW1lU3RhbXBTcGFuOiBjcmVhdGVUaW1lU3RhbXBTcGFuCisgIH07Cit9KTsKKzwvc2NyaXB0PgorCis8cG9seW1lci1lbGVtZW50IG5hbWU9InRyLXVpLXUtdGltZS1zdGFtcC1zcGFuIj4KKyAgPHRlbXBsYXRlPgorICA8L3RlbXBsYXRlPgorICA8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKyAgUG9seW1lcih7CisgICAgcmVhZHk6IGZ1bmN0aW9uKCkgeworICAgICAgdGhpcy50aW1lc3RhbXBfID0gdW5kZWZpbmVkOworICAgIH0sCisKKyAgICBnZXQgdGltZXN0YW1wKCkgeworICAgICAgcmV0dXJuIHRoaXMudGltZXN0YW1wXzsKKyAgICB9LAorCisgICAgc2V0IHRpbWVzdGFtcCh0aW1lc3RhbXApIHsKKyAgICAgIGlmICh0aW1lc3RhbXAgaW5zdGFuY2VvZiB0ci5iLnVuaXRzLlRpbWVTdGFtcCkKKyAgICAgICAgdGhpcy50aW1lc3RhbXBfID0gdGltZXN0YW1wLnRpbWVzdGFtcDsKKyAgICAgIGVsc2UKKyAgICAgICAgdGhpcy50aW1lc3RhbXBfID0gdGltZXN0YW1wOworICAgICAgdGhpcy51cGRhdGVDb250ZW50XygpOworICAgIH0sCisKKyAgICB1cGRhdGVDb250ZW50XzogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgY29udGVudCA9IHRyLmIudW5pdHMuVGltZVN0YW1wLmZvcm1hdCh0aGlzLnRpbWVzdGFtcF8pOworICAgICAgdGhpcy5zaGFkb3dSb290LnRleHRDb250ZW50ID0gY29udGVudDsKKyAgICB9CisgIH0pOworICA8L3NjcmlwdD4KKzwvcG9seW1lci1lbGVtZW50PgpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy90aW1lX3N0YW1wX3NwYW5fdGVzdC5odG1sIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZy91aS91bml0cy90aW1lX3N0YW1wX3NwYW5fdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkOWI4MjMKLS0tIC9kZXYvbnVsbAorKysgYi90cmFjZS12aWV3ZXIvdHJhY2luZy90cmFjaW5nL3VpL3VuaXRzL3RpbWVfc3RhbXBfc3Bhbl90ZXN0Lmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCitDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCitmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLS0+Cis8bGluayByZWw9ImltcG9ydCIgaHJlZj0iL2Jhc2UvdW5pdHMvdGltZS5odG1sIj4KKzxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIvdWkvdW5pdHMvdGltZV9zdGFtcF9zcGFuLmh0bWwiPgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwordHIuYi51bml0dGVzdC50ZXN0U3VpdGUoZnVuY3Rpb24oKSB7CisgIHZhciBUSElTX0RPQyA9IGRvY3VtZW50Ll9jdXJyZW50U2NyaXB0Lm93bmVyRG9jdW1lbnQ7CisKKyAgdGVzdCgnY3JlYXRlVGltZVN0YW1wU3BhbicsIGZ1bmN0aW9uKCkgeworICAgIC8vIERlZmF1bHQgb3duZXIgZG9jdW1lbnQuCisgICAgdmFyIHRpbWVTdGFtcCA9IHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oMy4xNCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRpbWVTdGFtcC50YWdOYW1lLCAnVFItVUktVS1USU1FLVNUQU1QLVNQQU4nKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGltZVN0YW1wLnRpbWVzdGFtcCwgMy4xNCk7CisgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRpbWVTdGFtcC5vd25lckRvY3VtZW50LCBkb2N1bWVudCk7CisKKyAgICAvLyBDdXN0b20gb3duZXIgZG9jdW1lbnQuCisgICAgdmFyIGNvbmZpZyA9IHtvd25lckRvY3VtZW50OiBUSElTX0RPQ307CisgICAgdmFyIHRpbWVTdGFtcCA9IHRyLnVpLnVuaXRzLmNyZWF0ZVRpbWVTdGFtcFNwYW4oLTI3My4xNSwgY29uZmlnKTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGltZVN0YW1wLnRhZ05hbWUsICdUUi1VSS1VLVRJTUUtU1RBTVAtU1BBTicpOworICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0aW1lU3RhbXAudGltZXN0YW1wLCAtMjczLjE1KTsKKyAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGltZVN0YW1wLm93bmVyRG9jdW1lbnQsIFRISVNfRE9DKTsKKyAgfSk7CisKKyAgdGVzdCgnaW5zdGFudGlhdGUnLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgdGltZVN0YW1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHItdWktdS10aW1lLXN0YW1wLXNwYW4nKTsKKyAgICB0aW1lU3RhbXAudGltZXN0YW1wID0gNzM7CisgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTdGFtcCk7CisgIH0pOworCisgIHRlc3QoJ2luc3RhbnRpYXRlV2l0aE9iamVjdCcsIGZ1bmN0aW9uKCkgeworICAgIHZhciB0aW1lU3RhbXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtc3RhbXAtc3BhbicpOworICAgIHRpbWVTdGFtcC50aW1lc3RhbXAgPSBuZXcgdHIuYi51bml0cy5UaW1lU3RhbXAoNzMpOworICAgIHRoaXMuYWRkSFRNTE91dHB1dCh0aW1lU3RhbXApOworICAgIGFzc2VydC5lcXVhbCh0aW1lU3RhbXAudGltZXN0YW1wLCA3Myk7CisgIH0pOworCisgIHRlc3QoJ3Jlc3BlY3RDdXJyZW50RGlzcGxheVVuaXQnLCBmdW5jdGlvbigpIHsKKyAgICB0cnkgeworICAgICAgdmFyIFRpbWUgPSB0ci5iLnVuaXRzLlRpbWU7CisgICAgICBUaW1lLmN1cnJlbnREaXNwbGF5VW5pdCA9IFRpbWUuc3VwcG9ydGVkVW5pdHMubnM7CisKKyAgICAgIHZhciB0aW1lU3RhbXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ci11aS11LXRpbWUtc3RhbXAtc3BhbicpOworICAgICAgdGltZVN0YW1wLnRpbWVzdGFtcCA9IDczOworICAgICAgdGhpcy5hZGRIVE1MT3V0cHV0KHRpbWVTdGFtcCk7CisKKyAgICAgIGFzc2VydC5pc1RydWUodGltZVN0YW1wLnNoYWRvd1Jvb3QudGV4dENvbnRlbnQuaW5kZXhPZignbnMnKSA+IDApOworICAgICAgVGltZS5jdXJyZW50RGlzcGxheVVuaXQgPSBUaW1lLnN1cHBvcnRlZFVuaXRzLm1zOworICAgICAgYXNzZXJ0LmlzVHJ1ZSh0aW1lU3RhbXAuc2hhZG93Um9vdC50ZXh0Q29udGVudC5pbmRleE9mKCdtcycpID4gMCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgIFRpbWUucmVzZXQoKTsKKyAgICB9CisgIH0pOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmdfcHJvamVjdC5weSBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3RyYWNpbmdfcHJvamVjdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzI3NDI2Ci0tLSAvZGV2L251bGwKKysrIGIvdHJhY2Utdmlld2VyL3RyYWNpbmcvdHJhY2luZ19wcm9qZWN0LnB5CkBAIC0wLDAgKzEsMTcwIEBACisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCByZQorCitmcm9tIHR2Y20gaW1wb3J0IHByb2plY3QgYXMgcHJvamVjdF9tb2R1bGUKKworCitkZWYgX0ZpbmRBbGxGaWxlc1JlY3Vyc2l2ZShzb3VyY2VfcGF0aHMpOgorICBhc3NlcnQgaXNpbnN0YW5jZShzb3VyY2VfcGF0aHMsIGxpc3QpCisgIGFsbF9maWxlbmFtZXMgPSBzZXQoKQorICBmb3Igc291cmNlX3BhdGggaW4gc291cmNlX3BhdGhzOgorICAgIGZvciBkaXJwYXRoLCBfLCBmaWxlbmFtZXMgaW4gb3Mud2Fsayhzb3VyY2VfcGF0aCk6CisgICAgICBmb3IgZiBpbiBmaWxlbmFtZXM6CisgICAgICAgIGlmIGYuc3RhcnRzd2l0aCgnLicpOgorICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGRpcnBhdGgsIGYpKQorICAgICAgICBhbGxfZmlsZW5hbWVzLmFkZCh4KQorICByZXR1cm4gYWxsX2ZpbGVuYW1lcworCitkZWYgX0lzRmlsZW5hbWVBVGVzdChsb2FkZXIsIHgpOiAgIyBweWxpbnQ6IGRpc2FibGU9dW51c2VkLWFyZ3VtZW50CisgIGlmIHguZW5kc3dpdGgoJ190ZXN0LmpzJyk6CisgICAgcmV0dXJuIFRydWUKKworICBpZiB4LmVuZHN3aXRoKCdfdGVzdC5odG1sJyk6CisgICAgcmV0dXJuIFRydWUKKworICBpZiB4LmVuZHN3aXRoKCdfdW5pdHRlc3QuanMnKToKKyAgICByZXR1cm4gVHJ1ZQorCisgIGlmIHguZW5kc3dpdGgoJ191bml0dGVzdC5odG1sJyk6CisgICAgcmV0dXJuIFRydWUKKworICAjIFRPRE8obmR1Y2EpOiBBZGQgY29udGVudCB0ZXN0PworICByZXR1cm4gRmFsc2UKKworCitjbGFzcyBUcmFjaW5nUHJvamVjdChwcm9qZWN0X21vZHVsZS5Qcm9qZWN0KToKKyAgdHJhY2luZ19wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkKKyAgdHJhY2luZ19yb290X3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHRyYWNpbmdfcGF0aCwgJ3RyYWNpbmcnKSkKKyAgdHJhY2luZ19zcmNfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4odHJhY2luZ19yb290X3BhdGgsICd0cmFjaW5nJykpCisgIGV4dHJhc19wYXRoID0gb3MucGF0aC5qb2luKHRyYWNpbmdfc3JjX3BhdGgsICdleHRyYXMnKQorCisgIHRyYWNpbmdfdGhpcmRfcGFydHlfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCisgICAgICB0cmFjaW5nX3Jvb3RfcGF0aCwgJ3RoaXJkX3BhcnR5JykpCisKKyAganN6aXBfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4odHJhY2luZ190aGlyZF9wYXJ0eV9wYXRoLCAnanN6aXAnKSkKKworICBnbG1hdHJpeF9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbigKKyAgICAgIHRyYWNpbmdfdGhpcmRfcGFydHlfcGF0aCwgJ2dsLW1hdHJpeCcsICdkaXN0JykpCisKKyAgdWlfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4odHJhY2luZ19zcmNfcGF0aCwgJ3VpJykpCisgIGQzX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHRyYWNpbmdfdGhpcmRfcGFydHlfcGF0aCwgJ2QzJykpCisgIGNoYWlfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4odHJhY2luZ190aGlyZF9wYXJ0eV9wYXRoLCAnY2hhaScpKQorICBtb2NoYV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbih0cmFjaW5nX3RoaXJkX3BhcnR5X3BhdGgsICdtb2NoYScpKQorICBwYXJzZTVfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCisgICAgICB0cmFjaW5nX3RoaXJkX3BhcnR5X3BhdGgsICd2aW5uJywgJ3RoaXJkX3BhcnR5JywgJ3BhcnNlNScpKQorCisgIHRlc3RfZGF0YV9wYXRoID0gb3MucGF0aC5qb2luKHRyYWNpbmdfcm9vdF9wYXRoLCAndGVzdF9kYXRhJykKKyAgc2twX2RhdGFfcGF0aCA9IG9zLnBhdGguam9pbih0cmFjaW5nX3Jvb3RfcGF0aCwgJ3NrcF9kYXRhJykKKworICByanNtaW5fcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oCisgICAgICB0cmFjaW5nX3RoaXJkX3BhcnR5X3BhdGgsICd0dmNtJywgJ3RoaXJkX3BhcnR5JywgJ3Jqc21pbicpKQorICByY3NzbWluX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKAorICAgICAgdHJhY2luZ190aGlyZF9wYXJ0eV9wYXRoLCAndHZjbScsICd0aGlyZF9wYXJ0eScsICdyY3NzbWluJykpCisKKyAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgc3VwZXIoVHJhY2luZ1Byb2plY3QsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICBzZWxmLnNvdXJjZV9wYXRocy5hcHBlbmQoc2VsZi50cmFjaW5nX3NyY19wYXRoKQorICAgIHNlbGYuc291cmNlX3BhdGhzLmFwcGVuZChzZWxmLnRyYWNpbmdfcm9vdF9wYXRoKQorICAgIHNlbGYuc291cmNlX3BhdGhzLmFwcGVuZChzZWxmLnRyYWNpbmdfdGhpcmRfcGFydHlfcGF0aCkKKyAgICBzZWxmLnNvdXJjZV9wYXRocy5hcHBlbmQoc2VsZi5qc3ppcF9wYXRoKQorICAgIHNlbGYuc291cmNlX3BhdGhzLmFwcGVuZChzZWxmLmdsbWF0cml4X3BhdGgpCisgICAgc2VsZi5zb3VyY2VfcGF0aHMuYXBwZW5kKHNlbGYuZDNfcGF0aCkKKyAgICBzZWxmLnNvdXJjZV9wYXRocy5hcHBlbmQoc2VsZi5jaGFpX3BhdGgpCisgICAgc2VsZi5zb3VyY2VfcGF0aHMuYXBwZW5kKHNlbGYubW9jaGFfcGF0aCkKKworCisgIGRlZiBJc0Q4Q29tcGF0aWJsZUZpbGUoc2VsZiwgZmlsZW5hbWUpOgorICAgIHJldHVybiBub3QgZmlsZW5hbWUuc3RhcnRzd2l0aChzZWxmLnVpX3BhdGgpCisKKyAgZGVmIEZpbmRBbGxUZXN0TW9kdWxlUmVzb3VyY2VzKHNlbGYpOgorICAgIGFsbF9maWxlbmFtZXMgPSBfRmluZEFsbEZpbGVzUmVjdXJzaXZlKFtzZWxmLnRyYWNpbmdfc3JjX3BhdGhdKQorICAgIHRlc3RfbW9kdWxlX2ZpbGVuYW1lcyA9IFt4IGZvciB4IGluIGFsbF9maWxlbmFtZXMgaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0lzRmlsZW5hbWVBVGVzdChzZWxmLmxvYWRlciwgeCldCisgICAgdGVzdF9tb2R1bGVfZmlsZW5hbWVzLnNvcnQoKQorCisgICAgIyBGaW5kIHRoZSBlcXVpdmFsZW50IHJlc291cmNlcy4KKyAgICByZXR1cm4gW3NlbGYubG9hZGVyLkZpbmRSZXNvdXJjZUdpdmVuQWJzb2x1dGVQYXRoKHgpCisgICAgICAgICAgICBmb3IgeCBpbiB0ZXN0X21vZHVsZV9maWxlbmFtZXNdCisKKyAgZGVmIEZpbmRBbGxEOFRlc3RNb2R1bGVSZXNvdXJjZXMoc2VsZik6CisgICAgYWxsX3Rlc3RfbW9kdWxlX3Jlc291cmNlcyA9IHNlbGYuRmluZEFsbFRlc3RNb2R1bGVSZXNvdXJjZXMoKQorICAgIHJldHVybiBbeCBmb3IgeCBpbiBhbGxfdGVzdF9tb2R1bGVfcmVzb3VyY2VzCisgICAgICAgICAgICBpZiBzZWxmLklzRDhDb21wYXRpYmxlRmlsZSh4LmFic29sdXRlX3BhdGgpXQorCisgIGRlZiBHZXRDb25maWdOYW1lcyhzZWxmKToKKyAgICBjb25maWdfZmlsZXMgPSBbCisgICAgICAgIG9zLnBhdGguam9pbihzZWxmLmV4dHJhc19wYXRoLCB4KSBmb3IgeCBpbiBvcy5saXN0ZGlyKHNlbGYuZXh0cmFzX3BhdGgpCisgICAgICAgIGlmIHguZW5kc3dpdGgoJ19jb25maWcuaHRtbCcpCisgICAgXQorCisgICAgY29uZmlnX2ZpbGVzID0gW3ggZm9yIHggaW4gY29uZmlnX2ZpbGVzIGlmIG9zLnBhdGguaXNmaWxlKHgpXQorCisgICAgY29uZmlnX2Jhc2VuYW1lcyA9IFtvcy5wYXRoLmJhc2VuYW1lKHgpIGZvciB4IGluIGNvbmZpZ19maWxlc10KKyAgICBjb25maWdfbmFtZXMgPSBbcmUubWF0Y2goJyguKylfY29uZmlnLmh0bWwkJywgeCkuZ3JvdXAoMSkKKyAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gY29uZmlnX2Jhc2VuYW1lc10KKyAgICByZXR1cm4gY29uZmlnX25hbWVzCisKKyAgZGVmIEdldERlZmF1bHRDb25maWdOYW1lKHNlbGYpOgorICAgIGFzc2VydCAnZnVsbCcgaW4gc2VsZi5HZXRDb25maWdOYW1lcygpCisgICAgcmV0dXJuICdmdWxsJworCisgIGRlZiBBZGRDb25maWdOYW1lT3B0aW9uVG9QYXJzZXIoc2VsZiwgcGFyc2VyKToKKyAgICBjaG9pY2VzID0gc2VsZi5HZXRDb25maWdOYW1lcygpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgICAgICctLWNvbmZpZycsIGRlc3Q9J2NvbmZpZ19uYW1lJywKKyAgICAgICAgdHlwZT0nY2hvaWNlJywgY2hvaWNlcz1jaG9pY2VzLAorICAgICAgICBkZWZhdWx0PXNlbGYuR2V0RGVmYXVsdENvbmZpZ05hbWUoKSwKKyAgICAgICAgaGVscD0nUGlja3MgYSBicm93c2VyIGNvbmZpZy4gVmFsaWQgY2hvaWNlczogJXMnICUgJywgJy5qb2luKGNob2ljZXMpKQorICAgIHJldHVybiBjaG9pY2VzCisKKyAgZGVmIEdldE1vZHVsZU5hbWVGb3JDb25maWdOYW1lKHNlbGYsIGNvbmZpZ19uYW1lKToKKyAgICByZXR1cm4gJ2V4dHJhcy4lc19jb25maWcnICUgY29uZmlnX25hbWUKKworICBAY2xhc3NtZXRob2QKKyAgZGVmIElzSWdub3JlZEZpbGUoY2xzLCBhZmZlY3RlZF9maWxlKToKKyAgICBpZiBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLmVuZHN3aXRoKCcucG5nJyk6CisgICAgICByZXR1cm4gVHJ1ZQorCisgICAgaWYgYWZmZWN0ZWRfZmlsZS5Mb2NhbFBhdGgoKS5lbmRzd2l0aCgnLnN2ZycpOgorICAgICAgcmV0dXJuIFRydWUKKworICAgIGlmIGFmZmVjdGVkX2ZpbGUuTG9jYWxQYXRoKCkuZW5kc3dpdGgoJy5za3AnKToKKyAgICAgIHJldHVybiBUcnVlCisKKyAgICBpZiAoYWZmZWN0ZWRfZmlsZS5Mb2NhbFBhdGgoKS5lbmRzd2l0aCgnLmd5cGknKSBvcgorICAgICAgICBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLmVuZHN3aXRoKCcuZ3lwJykgb3IKKyAgICAgICAgYWZmZWN0ZWRfZmlsZS5Mb2NhbFBhdGgoKS5lbmRzd2l0aCgnLmduJykpOgorICAgICAgcmV0dXJuIFRydWUKKworICAgIGlmIFRyYWNpbmdQcm9qZWN0LklzVGhpcmRQYXJ0eShhZmZlY3RlZF9maWxlKToKKyAgICAgIHJldHVybiBUcnVlCisKKyAgICAjIElzIHRlc3QgZGF0YT8KKyAgICBpZiBhZmZlY3RlZF9maWxlLkFic29sdXRlTG9jYWxQYXRoKCkuc3RhcnRzd2l0aChjbHMudGVzdF9kYXRhX3BhdGgpOgorICAgICAgcmV0dXJuIFRydWUKKworICAgIGlmIChhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLnN0YXJ0c3dpdGgoJy5naXRpZ25vcmUnKSBvcgorICAgICAgICBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLnN0YXJ0c3dpdGgoJ2NvZGVyZXZpZXcuc2V0dGluZ3MnKSBvcgorICAgICAgICBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLnN0YXJ0c3dpdGgoJ3RyYWNpbmcvLmFsbG93LWRldnRvb2xzLXNhdmUnKSBvcgorICAgICAgICBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLnN0YXJ0c3dpdGgoJ3RyYWNpbmcvQVVUSE9SUycpIG9yCisgICAgICAgIGFmZmVjdGVkX2ZpbGUuTG9jYWxQYXRoKCkuc3RhcnRzd2l0aCgndHJhY2luZy9MSUNFTlNFJykgb3IKKyAgICAgICAgYWZmZWN0ZWRfZmlsZS5Mb2NhbFBhdGgoKS5zdGFydHN3aXRoKCd0cmFjaW5nL09XTkVSUycpIG9yCisgICAgICAgIGFmZmVjdGVkX2ZpbGUuTG9jYWxQYXRoKCkuc3RhcnRzd2l0aCgndHJhY2luZy9ib3dlci5qc29uJykgb3IKKyAgICAgICAgYWZmZWN0ZWRfZmlsZS5Mb2NhbFBhdGgoKS5zdGFydHN3aXRoKCd0cmFjaW5nLy5naXRpZ25vcmUnKSBvcgorICAgICAgICBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLnN0YXJ0c3dpdGgoJ3RyYWNpbmcvLmJvd2VycmMnKSBvcgorICAgICAgICBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLnN0YXJ0c3dpdGgoJ3RyYWNpbmcvUkVBRE1FLm1kJykgb3IKKyAgICAgICAgYWZmZWN0ZWRfZmlsZS5Mb2NhbFBhdGgoKS5zdGFydHN3aXRoKAorICAgICAgICAgICAgJ3RyYWNpbmcvZXhhbXBsZXMvc3RyaW5nX2NvbnZlcnQuanMnKSk6CisgICAgICByZXR1cm4gVHJ1ZQorCisgICAgcmV0dXJuIEZhbHNlCisKKyAgQHN0YXRpY21ldGhvZAorICBkZWYgSXNUaGlyZFBhcnR5KGFmZmVjdGVkX2ZpbGUpOgorICAgIHJldHVybiBhZmZlY3RlZF9maWxlLkxvY2FsUGF0aCgpLnN0YXJ0c3dpdGgoJ3RyYWNpbmcvdGhpcmRfcGFydHknKQpkaWZmIC0tZ2l0IGEvdHJhY2Utdmlld2VyL3RyYWNpbmcvdnVsY2FuaXplX3RyYWNlX3ZpZXdlciBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWE1MmNjZQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3Z1bGNhbml6ZV90cmFjZV92aWV3ZXIKQEAgLTAsMCArMSwxMSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgc3lzCisKK2Zyb20gYnVpbGQgaW1wb3J0IHZ1bGNhbml6ZV90cmFjZV92aWV3ZXIKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgc3lzLmV4aXQodnVsY2FuaXplX3RyYWNlX3ZpZXdlci5NYWluKHN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdHJhY2luZy93aHlfaW1wb3J0ZWQgYi90cmFjZS12aWV3ZXIvdHJhY2luZy93aHlfaW1wb3J0ZWQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzM5MGI5YQotLS0gL2Rldi9udWxsCisrKyBiL3RyYWNlLXZpZXdlci90cmFjaW5nL3doeV9pbXBvcnRlZApAQCAtMCwwICsxLDQyIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworIiIiUHJvZHVjZXMgYSBkb3QgZmlsZSBzaG93aW5nIGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIG1vZHVsZXMuCisKK1RoZSBkb3QgZmlsZSBjb250YWlucyBhIHRleHQtYmFzZWQgcmVwcmVzZW50YXRpb24gb2YgYSBkaXJlY3RlZCBncmFwaCB0aGF0CitleHBsYWlucyB3aHkgZ2l2ZW4gbW9kdWxlIG5hbWVzIHdlcmUgaW5jbHVkZWQgaW4gYSB0cmFjZV92aWV3ZXIgY29uZmlnLgorCitFeGFtcGxlIHVzYWdlOgorJCAuL3doeV9pbXBvcnRlZCB1aS5hbmFseXNpcy5hbmFseXNpc192aWV3ID4gfi9hbmFseXNpc192aWV3LmRvdAorCitUaGlzIGNhbiB0aGVuIGJlIGNvbnZlcnRlZCB0byBhIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiB3aXRoIHRoZSBkb3QgdG9vbDoKKyQgZG90IC1HcmFua2Rpcj1MUiAtVHBuZyB+L2FuYWx5c2lzX3ZpZXcuZG90IC1vIH4vYW5hbHlzaXNfdmlldy5wbmcKKyIiIgorCitpbXBvcnQgc3lzCitpbXBvcnQgb3B0cGFyc2UKKworZnJvbSB0cmFjaW5nIGltcG9ydCB0cmFjaW5nX3Byb2plY3QKKworZGVmIE1haW4oYXJncyk6CisgIHByb2plY3QgPSB0cmFjaW5nX3Byb2plY3QuVHJhY2luZ1Byb2plY3QoKQorCisgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigKKyAgICAgIHVzYWdlPSclcHJvZyA8b3B0aW9ucz4gbW9kdWxlTmFtZXMnLCBlcGlsb2c9X19kb2NfXykKKyAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgICAnLS1jb25maWcnLCB0eXBlPSdjaG9pY2UnLCBjaG9pY2VzPXByb2plY3QuR2V0Q29uZmlnTmFtZXMoKSkKKyAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCisKKyAgaWYgb3B0aW9ucy5jb25maWc6CisgICAgbmFtZXMgPSBbJ3RyYWNpbmcnLAorICAgICAgICAgICAgIHByb2plY3QuR2V0TW9kdWxlTmFtZUZvckNvbmZpZ05hbWUob3B0aW9ucy5jb25maWcpXQorICAgIGxvYWRfc2VxdWVuY2UgPSBwcm9qZWN0LkNhbGNMb2FkU2VxdWVuY2VGb3JNb2R1bGVOYW1lcyhuYW1lcykKKyAgZWxzZToKKyAgICBwYXJzZXIucGFyc2VfZXJyKCdVbnN1cHBvcnRlZCcpCisgIHByaW50IHByb2plY3QuR2V0RG9taW5hdG9yR3JhcGhGb3JNb2R1bGVzTmFtZWQoYXJncywgbG9hZF9zZXF1ZW5jZSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICBzeXMuZXhpdChNYWluKHN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvdnVsY2FuaXplX3RyYWNlX3ZpZXdlciBiL3RyYWNlLXZpZXdlci92dWxjYW5pemVfdHJhY2Vfdmlld2VyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1YzU1YjVjLi4wMDAwMDAwCi0tLSBhL3RyYWNlLXZpZXdlci92dWxjYW5pemVfdHJhY2Vfdmlld2VyCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgc3lzCi0KLWZyb20gdHJhY2Vfdmlld2VyLmJ1aWxkIGltcG9ydCB2dWxjYW5pemVfdHJhY2Vfdmlld2VyCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgc3lzLmV4aXQodnVsY2FuaXplX3RyYWNlX3ZpZXdlci5NYWluKHN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS90cmFjZS12aWV3ZXIvd2h5X2ltcG9ydGVkIGIvdHJhY2Utdmlld2VyL3doeV9pbXBvcnRlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzZlOWRiOC4uMDAwMDAwMAotLS0gYS90cmFjZS12aWV3ZXIvd2h5X2ltcG9ydGVkCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAyMDE1IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLSIiIlByb2R1Y2VzIGEgZG90IGZpbGUgc2hvd2luZyBkZXBlbmRlbmN5IHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBtb2R1bGVzLgotCi1UaGUgZG90IGZpbGUgY29udGFpbnMgYSB0ZXh0LWJhc2VkIHJlcHJlc2VudGF0aW9uIG9mIGEgZGlyZWN0ZWQgZ3JhcGggdGhhdAotZXhwbGFpbnMgd2h5IGdpdmVuIG1vZHVsZSBuYW1lcyB3ZXJlIGluY2x1ZGVkIGluIGEgdHJhY2Vfdmlld2VyIGNvbmZpZy4KLQotRXhhbXBsZSB1c2FnZToKLSQgLi93aHlfaW1wb3J0ZWQgY29yZS5hbmFseXNpcy5hbmFseXNpc192aWV3ID4gfi9hbmFseXNpc192aWV3LmRvdAotCi1UaGlzIGNhbiB0aGVuIGJlIGNvbnZlcnRlZCB0byBhIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiB3aXRoIHRoZSBkb3QgdG9vbDoKLSQgZG90IC1HcmFua2Rpcj1MUiAtVHBuZyB+L2FuYWx5c2lzX3ZpZXcuZG90IC1vIH4vYW5hbHlzaXNfdmlldy5wbmcKLSIiIgotCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3B0cGFyc2UKLQotZnJvbSB0cmFjZV92aWV3ZXIgaW1wb3J0IHRyYWNlX3ZpZXdlcl9wcm9qZWN0Ci0KLQotZGVmIE1haW4oYXJncyk6Ci0gIHByb2plY3QgPSB0cmFjZV92aWV3ZXJfcHJvamVjdC5UcmFjZVZpZXdlclByb2plY3QoKQotCi0gIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigKLSAgICAgIHVzYWdlPSclcHJvZyA8b3B0aW9ucz4gbW9kdWxlTmFtZXMnLCBlcGlsb2c9X19kb2NfXykKLSAgcGFyc2VyLmFkZF9vcHRpb24oCi0gICAgICAnLS1jb25maWcnLCB0eXBlPSdjaG9pY2UnLCBjaG9pY2VzPXByb2plY3QuR2V0Q29uZmlnTmFtZXMoKSkKLSAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCi0KLSAgaWYgb3B0aW9ucy5jb25maWc6Ci0gICAgbmFtZXMgPSBbJ3RyYWNlX3ZpZXdlcicsCi0gICAgICAgICAgICAgcHJvamVjdC5HZXRNb2R1bGVOYW1lRm9yQ29uZmlnTmFtZShvcHRpb25zLmNvbmZpZyldCi0gICAgbG9hZF9zZXF1ZW5jZSA9IHByb2plY3QuQ2FsY0xvYWRTZXF1ZW5jZUZvck1vZHVsZU5hbWVzKG5hbWVzKQotICBlbHNlOgotICAgIGxvYWRfc2VxdWVuY2UgPSBOb25lCi0gIHByaW50IHByb2plY3QuR2V0RG9taW5hdG9yR3JhcGhGb3JNb2R1bGVzTmFtZWQoYXJncywgbG9hZF9zZXF1ZW5jZSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICBzeXMuZXhpdChNYWluKHN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS91cGRhdGUucHkgYi91cGRhdGUucHkKaW5kZXggOGE2NjA2Ni4uNzcwZmE2YyAxMDA3NTUKLS0tIGEvdXBkYXRlLnB5CisrKyBiL3VwZGF0ZS5weQpAQCAtNTQsNyArNTQsNyBAQAogYnVpbGRfZGlyID0gb3MucGF0aC5qb2luKHRyYWNlX3ZpZXdlcl9kaXIpCiBzeXMucGF0aC5hcHBlbmQoYnVpbGRfZGlyKQogCi1mcm9tIHRyYWNlX3ZpZXdlci5idWlsZCBpbXBvcnQgdnVsY2FuaXplX3RyYWNlX3ZpZXdlcgorZnJvbSB0cmFjaW5nLmJ1aWxkIGltcG9ydCB2dWxjYW5pemVfdHJhY2Vfdmlld2VyCiB3aXRoIGNvZGVjcy5vcGVuKG91dHB1dF9odG1sX2ZpbGUsIGVuY29kaW5nPSd1dGYtOCcsIG1vZGU9J3cnKSBhcyBmOgogICB2dWxjYW5pemVfdHJhY2Vfdmlld2VyLldyaXRlVHJhY2VWaWV3ZXIoCiAgICAgICBmLAo=